From xen-devel-bounces@lists.xenproject.org Fri Aug 01 00:08:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Aug 2025 00:08:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1066631.1431785 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhdJt-0000gy-Iy; Fri, 01 Aug 2025 00:08:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1066631.1431785; Fri, 01 Aug 2025 00:08: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 1uhdJt-0000gr-FR; Fri, 01 Aug 2025 00:08:21 +0000
Received: by outflank-mailman (input) for mailman id 1066631;
 Fri, 01 Aug 2025 00:08:20 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=u8vk=2N=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1uhdJr-0000gl-So
 for xen-devel@lists.xenproject.org; Fri, 01 Aug 2025 00:08:20 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a041f6dc-6e6b-11f0-a320-13f23c93f187;
 Fri, 01 Aug 2025 02:08:18 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id B6ADF6112C;
 Fri,  1 Aug 2025 00:08:16 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id BC0B3C4CEEF;
 Fri,  1 Aug 2025 00:08: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>
X-Inumbo-ID: a041f6dc-6e6b-11f0-a320-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1754006896;
	bh=lJQIBzNL1lvveTPl1/GpzzTgX4flsXoy5JpFVJH4sek=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=iqWHlRiaSt5EM0sRYeejujFmrdzm0tBI25YtuXqKpxT8qgXBrPECDHxFNP0IDOBeO
	 bF+Ofpq4l+llH5muq6xAuPGNfOPEi4NOaKVpSYkeiFd0zQ/0BRW4Jg00p/psW1Cs5A
	 nf1XdR5eArUZq6In7wUcXrCNmdWrUK3nnRMaZDX25gnfBZTIGlvLmUreI5eLUb0cRW
	 zWAvmQG1EiZ2LxT4QhxftnvBuKQZG/jxddlPSrJhG8oknpkXsYYqkl8FmD8GM40rX7
	 oAAbx3+7mLRdwr2WxuzZ91MKIjaGXy7I4LqPfOxhV6G6VZQv9EqJ/v/HjG9w7GXyBK
	 p3DjEBogUxZwg==
Date: Thu, 31 Jul 2025 17:08:12 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: dmkhn@proton.me
cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, 
    anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, 
    michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, 
    dmukhin@ford.com
Subject: Re: [PATCH v4 2/8] emul/vuart: introduce framework for UART
 emulators
In-Reply-To: <20250731192130.3948419-3-dmukhin@ford.com>
Message-ID: <alpine.DEB.2.22.394.2507311659220.468590@ubuntu-linux-20-04-desktop>
References: <20250731192130.3948419-1-dmukhin@ford.com> <20250731192130.3948419-3-dmukhin@ford.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 31 Jul 2025, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com> 
> 
> Introduce a driver framework to abstract UART emulators in the hypervisor.
> 
> That allows for architecture-independent handling of virtual UARTs in the
> console driver and simplifies enabling new UART emulators.
> 
> The framework is built under CONFIG_HAS_VUART, which will be automatically
> enabled once the user enables any UART emulator.
> 
> Current implementation supports maximum of one vUART of each kind per domain.
> 
> Use new domain_has_vuart() in the console driver code to check whether to
> forward console input to the domain using vUART.
> 
> Note: existing vUARTs are deliberately *not* hooked to the new framework to
> minimize the scope of the patch: vpl011 (i.e. SBSA) emulator and "vuart" (i.e.
> minimalistic MMIO-mapped dtuart for hwdoms on Arm) are kept unmodified.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
> Changes since v3:
> - new patch
> - original patch from ML: https://lore.kernel.org/xen-devel/20250624035443.344099-16-dmukhin@ford.com/
> ---
>  xen/arch/arm/xen.lds.S         |   1 +
>  xen/arch/ppc/xen.lds.S         |   1 +
>  xen/arch/riscv/xen.lds.S       |   1 +
>  xen/arch/x86/xen.lds.S         |   1 +
>  xen/common/Kconfig             |   2 +
>  xen/common/Makefile            |   1 +
>  xen/common/emul/Kconfig        |   6 ++
>  xen/common/emul/Makefile       |   1 +
>  xen/common/emul/vuart/Kconfig  |   6 ++
>  xen/common/emul/vuart/Makefile |   1 +
>  xen/common/emul/vuart/vuart.c  | 112 +++++++++++++++++++++++++++++++++
>  xen/common/keyhandler.c        |   3 +
>  xen/drivers/char/console.c     |   4 ++
>  xen/include/xen/vuart.h        |  84 +++++++++++++++++++++++++
>  xen/include/xen/xen.lds.h      |  10 +++
>  15 files changed, 234 insertions(+)
>  create mode 100644 xen/common/emul/Kconfig
>  create mode 100644 xen/common/emul/Makefile
>  create mode 100644 xen/common/emul/vuart/Kconfig
>  create mode 100644 xen/common/emul/vuart/Makefile
>  create mode 100644 xen/common/emul/vuart/vuart.c
>  create mode 100644 xen/include/xen/vuart.h
> 
> diff --git a/xen/arch/arm/xen.lds.S b/xen/arch/arm/xen.lds.S
> index 9f30c3a13ed1..bdba7eaa4f65 100644
> --- a/xen/arch/arm/xen.lds.S
> +++ b/xen/arch/arm/xen.lds.S
> @@ -58,6 +58,7 @@ SECTIONS
>         *(.rodata)
>         *(.rodata.*)
>         VPCI_ARRAY
> +       VUART_ARRAY
>         *(.data.rel.ro)
>         *(.data.rel.ro.*)
>  
> diff --git a/xen/arch/ppc/xen.lds.S b/xen/arch/ppc/xen.lds.S
> index 1de0b77fc6b9..f9d4e5b0dcd8 100644
> --- a/xen/arch/ppc/xen.lds.S
> +++ b/xen/arch/ppc/xen.lds.S
> @@ -52,6 +52,7 @@ SECTIONS
>          *(.rodata)
>          *(.rodata.*)
>          VPCI_ARRAY
> +        VUART_ARRAY
>          *(.data.rel.ro)
>          *(.data.rel.ro.*)
>  
> diff --git a/xen/arch/riscv/xen.lds.S b/xen/arch/riscv/xen.lds.S
> index edcadff90bfe..59dcaa5fef9a 100644
> --- a/xen/arch/riscv/xen.lds.S
> +++ b/xen/arch/riscv/xen.lds.S
> @@ -47,6 +47,7 @@ SECTIONS
>          *(.rodata)
>          *(.rodata.*)
>          VPCI_ARRAY
> +        VUART_ARRAY
>          *(.data.rel.ro)
>          *(.data.rel.ro.*)
>  
> diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
> index 8e9cac75b09e..43426df33092 100644
> --- a/xen/arch/x86/xen.lds.S
> +++ b/xen/arch/x86/xen.lds.S
> @@ -136,6 +136,7 @@ SECTIONS
>         *(.rodata)
>         *(.rodata.*)
>         VPCI_ARRAY
> +       VUART_ARRAY
>         *(.data.rel.ro)
>         *(.data.rel.ro.*)
>  
> diff --git a/xen/common/Kconfig b/xen/common/Kconfig
> index 16936418a6e6..4e0bd524dc43 100644
> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -1,6 +1,8 @@
>  
>  menu "Common Features"
>  
> +source "common/emul/Kconfig"
> +
>  config COMPAT
>  	bool
>  	help
> diff --git a/xen/common/Makefile b/xen/common/Makefile
> index c316957fcb36..c0734480ee4b 100644
> --- a/xen/common/Makefile
> +++ b/xen/common/Makefile
> @@ -11,6 +11,7 @@ obj-$(filter-out $(CONFIG_X86),$(CONFIG_ACPI)) += device.o
>  obj-$(CONFIG_DEVICE_TREE_PARSE) += device-tree/
>  obj-$(CONFIG_IOREQ_SERVER) += dm.o
>  obj-y += domain.o
> +obj-y += emul/
>  obj-y += event_2l.o
>  obj-y += event_channel.o
>  obj-$(CONFIG_EVTCHN_FIFO) += event_fifo.o
> diff --git a/xen/common/emul/Kconfig b/xen/common/emul/Kconfig
> new file mode 100644
> index 000000000000..7c6764d1756b
> --- /dev/null
> +++ b/xen/common/emul/Kconfig
> @@ -0,0 +1,6 @@
> +menu "Domain Emulation Features"
> +	visible if EXPERT
> +
> +source "common/emul/vuart/Kconfig"
> +
> +endmenu
> diff --git a/xen/common/emul/Makefile b/xen/common/emul/Makefile
> new file mode 100644
> index 000000000000..670682102c13
> --- /dev/null
> +++ b/xen/common/emul/Makefile
> @@ -0,0 +1 @@
> +obj-$(CONFIG_HAS_VUART) += vuart/
> diff --git a/xen/common/emul/vuart/Kconfig b/xen/common/emul/vuart/Kconfig
> new file mode 100644
> index 000000000000..02f7dd6dc1a1
> --- /dev/null
> +++ b/xen/common/emul/vuart/Kconfig
> @@ -0,0 +1,6 @@
> +config HAS_VUART
> +	bool
> +
> +menu "UART Emulation"
> +
> +endmenu
> diff --git a/xen/common/emul/vuart/Makefile b/xen/common/emul/vuart/Makefile
> new file mode 100644
> index 000000000000..c6400b001e85
> --- /dev/null
> +++ b/xen/common/emul/vuart/Makefile
> @@ -0,0 +1 @@
> +obj-$(CONFIG_HAS_VUART) += vuart.o
> diff --git a/xen/common/emul/vuart/vuart.c b/xen/common/emul/vuart/vuart.c
> new file mode 100644
> index 000000000000..14a7f8bd8b79
> --- /dev/null
> +++ b/xen/common/emul/vuart/vuart.c
> @@ -0,0 +1,112 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * UART emulator framework.
> + *
> + * Copyright 2025 Ford Motor Company
> + */
> +
> +#include <xen/errno.h>
> +#include <xen/sched.h>
> +#include <xen/vuart.h>
> +
> +#define VUART_ARRAY_SIZE    (__start_vuart_end - __start_vuart_array)
> +
> +#define for_each_vuart(vdev) \
> +    for (unsigned __i = 0; \
> +         __i < VUART_ARRAY_SIZE && (vdev = __start_vuart_array[__i], 1); \
> +         __i++)
> +
> +extern const struct vuart_ops *const __start_vuart_array[];
> +extern const struct vuart_ops *const __start_vuart_end[];
> +
> +int vuart_add_node(struct domain *d, const void *node)
> +{
> +    const struct vuart_ops *vdev;
> +    int rc;
> +
> +    for_each_vuart(vdev)
> +    {
> +        if ( !vdev->add_node )
> +            continue;
> +
> +        rc = vdev->add_node(d, node);
> +        if ( rc )
> +            return rc;
> +    }
> +
> +    return 0;
> +}

Maybe skip this function until we needed? Without the reference
implementation of vuart-ns16550.c it is hard to tell what it is supposed
to do.


> +int vuart_init(struct domain *d, struct vuart_params *params)
> +{
> +    const struct vuart_ops *vdev;
> +    int rc;
> +
> +    if ( !domain_has_vuart(d) )
> +        return 0;
> +
> +    for_each_vuart(vdev)
> +    {
> +        rc = vdev->init(d, params);
> +        if ( rc )
> +            return rc;
> +    }
> +
> +    d->console.input_allowed = true;

This works because there is only one emulator (NS16550) but if there
were multiple possible emulators, I think we would want to only
initialize the emulator enabled in the specific domain.

One domain could only have NS16550 and another domain could only have
PL011, while both NS16550 and PL011 might be possible.

I think it is OK for now and this function can be fixed/improved when
adding the second emulator.


> +    return 0;
> +}
> +
> +/*
> + * Release any resources taken by UART emulators.
> + *
> + * NB: no flags are cleared, since currently exit() is called only during
> + * domain destroy.
> + */
> +void vuart_deinit(struct domain *d)
> +{
> +    const struct vuart_ops *vdev;
> +
> +    for_each_vuart(vdev)
> +        vdev->deinit(d);
> +}
> +
> +void vuart_dump_state(const struct domain *d)
> +{
> +    const struct vuart_ops *vdev;
> +
> +    for_each_vuart(vdev)
> +        vdev->dump_state(d);
> +}
> +
> +/*
> + * Put character to the first suitable emulated UART's FIFO.
> + */
> +int vuart_put_rx(struct domain *d, char c)
> +{
> +    const struct vuart_ops *vdev = NULL;
> +
> +    ASSERT(domain_has_vuart(d));
> +
> +    for_each_vuart(vdev)
> +        if ( vdev->put_rx )
> +            break;
> +
> +    return vdev ? vdev->put_rx(d, c) : -ENODEV;

I don't think this would work with multiple emulators possible, maybe
enable or maybe not, for the same domain.

In a situation where there is both PL011 and NS16550 enable in the Xen
kconfig, but only NS16550 enabled for this specific domain,
for_each_vuart might find PL011 as the first emulator with a put_rx
implementation, but it is not actually the one the domain can use.

I think this is OK for now, but it would have to be fixed when adding a
second emulator.


> +}
> +
> +bool domain_has_vuart(const struct domain *d)
> +{
> +    uint32_t mask = 0;
> +
> +    return !!(d->emulation_flags & mask);
> +}
> +
> +/*
> + * Local variables:
> + * mode: C
> + * c-file-style: "BSD"
> + * c-basic-offset: 4
> + * indent-tabs-mode: nil
> + * End:
> + */
> diff --git a/xen/common/keyhandler.c b/xen/common/keyhandler.c
> index eccd97c565c6..af427d25dc0d 100644
> --- a/xen/common/keyhandler.c
> +++ b/xen/common/keyhandler.c
> @@ -22,6 +22,7 @@
>  #include <xen/mm.h>
>  #include <xen/watchdog.h>
>  #include <xen/init.h>
> +#include <xen/vuart.h>
>  #include <asm/div64.h>
>  
>  static unsigned char keypress_key;
> @@ -354,6 +355,8 @@ static void cf_check dump_domains(unsigned char key)
>                             v->periodic_period / 1000000);
>              }
>          }
> +
> +        vuart_dump_state(d);
>      }
>  
>      for_each_domain ( d )
> diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
> index 963c7b043cd8..93254979817b 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/vuart.h>
>  
>  #ifdef CONFIG_X86
>  #include <asm/guest.h>
> @@ -601,6 +602,7 @@ static void __serial_rx(char c)
>          /*
>           * Deliver input to the hardware domain buffer, unless it is
>           * already full.
> +         * NB: must be the first check: hardware domain may have emulated UART.
>           */
>          if ( (serial_rx_prod - serial_rx_cons) != SERIAL_RX_SIZE )
>              serial_rx_ring[SERIAL_RX_MASK(serial_rx_prod++)] = c;
> @@ -611,6 +613,8 @@ static void __serial_rx(char c)
>           */
>          send_global_virq(VIRQ_CONSOLE);
>      }
> +    else if ( domain_has_vuart(d) )
> +        rc = vuart_put_rx(d, c);
>  #ifdef CONFIG_SBSA_VUART_CONSOLE
>      else
>          /* Deliver input to the emulated UART. */
> diff --git a/xen/include/xen/vuart.h b/xen/include/xen/vuart.h
> new file mode 100644
> index 000000000000..e843026df4b1
> --- /dev/null
> +++ b/xen/include/xen/vuart.h
> @@ -0,0 +1,84 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * UART emulator framework.
> + *
> + * Copyright 2025 Ford Motor Company
> + */
> +
> +#ifndef XEN_VUART_H
> +#define XEN_VUART_H
> +
> +#include <public/xen.h>
> +#include <public/event_channel.h>
> +#include <xen/types.h>
> +
> +struct vuart_params {
> +    domid_t console_domid;
> +    gfn_t gfn;
> +    evtchn_port_t evtchn;
> +};
> +
> +struct vuart_ops {
> +    int (*add_node)(struct domain *d, const void *node);
> +    int (*init)(struct domain *d, struct vuart_params *params);
> +    void (*deinit)(struct domain *d);
> +    void (*dump_state)(const struct domain *d);
> +    int (*put_rx)(struct domain *d, char c);
> +};
> +
> +#define VUART_REGISTER(name, x) \
> +    static const struct vuart_ops *const __name##_entry \
> +        __used_section(".data.vuart." #name) = (x);
> +
> +#ifdef CONFIG_HAS_VUART
> +
> +int vuart_add_node(struct domain *d, const void *node);
> +int vuart_init(struct domain *d, struct vuart_params *params);
> +void vuart_deinit(struct domain *d);
> +void vuart_dump_state(const struct domain *d);
> +int vuart_put_rx(struct domain *d, char c);
> +bool domain_has_vuart(const struct domain *d);
> +
> +#else
> +
> +static inline int vuart_add_node(struct domain *d, const void *node)
> +{
> +    return 0;
> +}
> +
> +static inline int vuart_init(struct domain *d, struct vuart_params *params)
> +{
> +    return 0;
> +}
> +
> +static inline void vuart_deinit(struct domain *d)
> +{
> +}
> +
> +static inline void vuart_dump_state(const struct domain *d)
> +{
> +}
> +
> +static inline int vuart_put_rx(struct domain *d, char c)
> +{
> +    ASSERT_UNREACHABLE();
> +    return -ENODEV;
> +}
> +
> +static inline bool domain_has_vuart(const struct domain *d)
> +{
> +    return false;
> +}
> +
> +#endif /* CONFIG_HAS_VUART */
> +
> +#endif /* XEN_VUART_H */
> +
> +/*
> + * Local variables:
> + * mode: C
> + * c-file-style: "BSD"
> + * c-basic-offset: 4
> + * indent-tabs-mode: nil
> + * End:
> + */
> diff --git a/xen/include/xen/xen.lds.h b/xen/include/xen/xen.lds.h
> index b126dfe88792..c2da180948ca 100644
> --- a/xen/include/xen/xen.lds.h
> +++ b/xen/include/xen/xen.lds.h
> @@ -194,4 +194,14 @@
>  #define VPCI_ARRAY
>  #endif
>  
> +#ifdef CONFIG_HAS_VUART
> +#define VUART_ARRAY     \
> +       . = ALIGN(POINTER_ALIGN); \
> +       __start_vuart_array = .;  \
> +       *(SORT(.data.vuart.*))    \
> +       __start_vuart_end = .;
> +#else
> +#define VUART_ARRAY
> +#endif
> +
>  #endif /* __XEN_LDS_H__ */
> -- 
> 2.34.1
> 
> 


From xen-devel-bounces@lists.xenproject.org Fri Aug 01 00:10:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Aug 2025 00:10:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1066638.1431795 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhdLn-0002AL-UT; Fri, 01 Aug 2025 00:10:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1066638.1431795; Fri, 01 Aug 2025 00:10:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhdLn-0002AE-RF; Fri, 01 Aug 2025 00:10:19 +0000
Received: by outflank-mailman (input) for mailman id 1066638;
 Fri, 01 Aug 2025 00:10:18 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=u8vk=2N=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1uhdLm-0002A8-Od
 for xen-devel@lists.xenproject.org; Fri, 01 Aug 2025 00:10:18 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e763c998-6e6b-11f0-a320-13f23c93f187;
 Fri, 01 Aug 2025 02:10:17 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id CD21B61132;
 Fri,  1 Aug 2025 00:10:16 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id EB335C4CEF7;
 Fri,  1 Aug 2025 00:10: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>
X-Inumbo-ID: e763c998-6e6b-11f0-a320-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1754007016;
	bh=ABITAMX6yrmcnsQg+uqPo44MlCfP6dZUlwqGmgZN1s8=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Ew2+r1fpQQ5doti1EOh678reX4CB+QcADL7/ihsqOU1OyE6us1honi+b78jOFk+H0
	 TF318gn8ve1qlemQ/F0Tds60pXE7HDngKYS3kUsyayHUytPBHkvppyAu9jz3CSKHAt
	 OPjPc3dOfcs37Bx36FASfH/Ni0XLWp4t/35o9iNF3wV0U5lqwUx136CQ37objdxKHA
	 wAv2RjlkEYXPuaALFzvh6JU1Oy+wfWU2T6tjVOUeeQ2MJRch5WbdSvq30CrTiP7fbB
	 ugOjnRy7ltxKYnmTcAjt316g5GtX8cTvutiDb0kRtkEKe+hRLYStvamRpF9ER0xchL
	 E2Fj18x17sI6w==
Date: Thu, 31 Jul 2025 17:10:12 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: dmkhn@proton.me
cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, 
    anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, 
    michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, 
    dmukhin@ford.com
Subject: Re: [PATCH v4 8/8] emul/vuart: introduce console forwarding enforcement
 via vUART
In-Reply-To: <20250731192130.3948419-9-dmukhin@ford.com>
Message-ID: <alpine.DEB.2.22.394.2507311709221.468590@ubuntu-linux-20-04-desktop>
References: <20250731192130.3948419-1-dmukhin@ford.com> <20250731192130.3948419-9-dmukhin@ford.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 31 Jul 2025, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com> 
> 
> It may be useful to enforce console forwarding over the virtual UART. E.g.
> hardware domain uses PV console by default, but it may be necessary to have
> console forwarded to the hardware domain via emulated UART.
> 
> Add CONFIG_VUART_CONSOLE_FOCUS to enforce such behavior.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>

I realize that hyperlaunch is not merged yet, but I think this one would
be best as a hyperlaunch configuration option rather than a kconfig. But
it is certainly useful for testing until Hyperlaunch is merged!


> ---
> Changes since v3:
> - new patch
> ---
>  xen/arch/x86/domain.c         | 6 ++++++
>  xen/common/emul/vuart/Kconfig | 5 +++++
>  xen/drivers/char/console.c    | 2 +-
>  3 files changed, 12 insertions(+), 1 deletion(-)
> 
> diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
> index 39b0c0b199b9..40ff92ad6c61 100644
> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -848,6 +848,12 @@ int arch_domain_create(struct domain *d,
>      if ( is_hardware_domain(d) && is_pv_domain(d) )
>          emflags |= XEN_X86_EMU_PIT;
>  
> +    if ( IS_ENABLED(CONFIG_VUART_CONSOLE_FOCUS) &&
> +         IS_ENABLED(CONFIG_VUART_NS16550) &&
> +         is_hardware_domain(d) &&
> +         is_hvm_domain(d) )
> +        emflags |= XEN_X86_EMU_NS16550;
> +
>      if ( emflags & ~XEN_X86_EMU_ALL )
>      {
>          printk(XENLOG_G_ERR
> diff --git a/xen/common/emul/vuart/Kconfig b/xen/common/emul/vuart/Kconfig
> index ebefd90d913e..1069ca95f2db 100644
> --- a/xen/common/emul/vuart/Kconfig
> +++ b/xen/common/emul/vuart/Kconfig
> @@ -51,4 +51,9 @@ config VUART_NS16550_DEBUG
>  	help
>  	  Enable development debugging.
>  
> +config VUART_CONSOLE_FOCUS
> +	bool "Console input forwarding via UART emulator"
> +	help
> +	  Enable physical console input forwarding to guest OS via emulated UART.
> +
>  endmenu
> diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
> index 93254979817b..d142f5511d61 100644
> --- a/xen/drivers/char/console.c
> +++ b/xen/drivers/char/console.c
> @@ -597,7 +597,7 @@ static void __serial_rx(char c)
>      if ( !d )
>          return;
>  
> -    if ( is_hardware_domain(d) )
> +    if ( !IS_ENABLED(CONFIG_VUART_CONSOLE_FOCUS) && is_hardware_domain(d) )
>      {
>          /*
>           * Deliver input to the hardware domain buffer, unless it is
> -- 
> 2.34.1
> 
> 


From xen-devel-bounces@lists.xenproject.org Fri Aug 01 00:46:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Aug 2025 00:46:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1066645.1431806 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhdv4-0006Tw-F1; Fri, 01 Aug 2025 00:46:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1066645.1431806; Fri, 01 Aug 2025 00:46: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 1uhdv4-0006Tp-CE; Fri, 01 Aug 2025 00:46:46 +0000
Received: by outflank-mailman (input) for mailman id 1066645;
 Fri, 01 Aug 2025 00:46:45 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=u8vk=2N=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1uhdv3-0006Tg-7Y
 for xen-devel@lists.xenproject.org; Fri, 01 Aug 2025 00:46:45 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org
 [2600:3c04:e001:324:0:1991:8:25])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fdd3cfb9-6e70-11f0-a320-13f23c93f187;
 Fri, 01 Aug 2025 02:46:43 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 680536020E;
 Fri,  1 Aug 2025 00:46:41 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id E5CCDC4CEEF;
 Fri,  1 Aug 2025 00:46:39 +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>
X-Inumbo-ID: fdd3cfb9-6e70-11f0-a320-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1754009201;
	bh=CCe2GZHM4uVATboKMdjFdbk2lwhfV2iwx9tR1JVkoiw=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=J0bp/24nPISprMc84zATF5LGaYN34pjygGGNjDi0pazLNDJGnEF2ClQKAOavx21Zo
	 ibwirPqFttW6qFHeAlOaTck0zwL8kCCKXBGTt/ODeOmfughk7gl0HOK3IAskmb0Rm7
	 96+tLbUHFkWPwCLJi0nkiL+JaY6CQ5cmdhkeAhe0WE+riVTw6TorIcMj3ZggPAZsUf
	 kEwToXiwtlGYBgSvnd9Hy0DKt02YbMV1M4fZVnY5Af1y6kwEnnUzUQx+DtQnP9LP+m
	 IAX2XyOU8VlMKch1oisT5HDNf97aIvYWu18a4MS7KfYmjjKG2jnvCeTJUwr2SIbJm9
	 Zb1ZMePL2Schg==
Date: Thu, 31 Jul 2025 17:46:37 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: dmkhn@proton.me
cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, 
    anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, 
    michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, 
    dmukhin@ford.com
Subject: Re: [PATCH v4 7/8] tools/xl: enable NS16550-compatible UART emulator
 for PVH (x86)
In-Reply-To: <20250731192130.3948419-8-dmukhin@ford.com>
Message-ID: <alpine.DEB.2.22.394.2507311745340.468590@ubuntu-linux-20-04-desktop>
References: <20250731192130.3948419-1-dmukhin@ford.com> <20250731192130.3948419-8-dmukhin@ford.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 31 Jul 2025, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com> 
> 
> Enable virtual NS16550 for PVH domains in xl.
> 
> {map,unmap}_domain_emuirq_pirq() infrastructure is modified by adding new
> type of interrupt resources 'IRQ_EMU' which means 'emulated device IRQ'
> (similarly to IRQ_MSI_EMU).
> 
> This is necessary to for IOAPIC emulation code to skip IRQ->PIRQ mapping
> (vioapic_hwdom_map_gsi()) when guest OS unmasks vIOAPIC pin corresponding to
> virtual device's IRQ.
> 
> Also, hvm_gsi_eoi() is modified to trigger assertion in hvm_gsi_deassert()
> path for ISA IRQs.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
> Changes since v3:
> - new patch
> ---
>  tools/libs/light/libxl_x86.c          |  2 +-
>  xen/arch/x86/domain.c                 |  2 ++
>  xen/arch/x86/hvm/vioapic.c            | 10 ++++++++++
>  xen/arch/x86/include/asm/irq.h        |  1 +
>  xen/common/emul/vuart/vuart-ns16550.c | 27 +++++++++++++++++++++++++--
>  xen/drivers/passthrough/x86/hvm.c     |  9 ++++-----
>  6 files changed, 43 insertions(+), 8 deletions(-)
> 
> diff --git a/tools/libs/light/libxl_x86.c b/tools/libs/light/libxl_x86.c
> index 0f039ca65a88..a40647c06cb9 100644
> --- a/tools/libs/light/libxl_x86.c
> +++ b/tools/libs/light/libxl_x86.c
> @@ -54,7 +54,7 @@ int libxl__arch_domain_prepare_config(libxl__gc *gc,
>          break;
>      case LIBXL_DOMAIN_TYPE_PVH:
>          config->arch.emulation_flags = XEN_X86_EMU_LAPIC;
> -        libxl__arch_domain_vuart_unsupported(gc, d_config, config);
> +        libxl__arch_domain_vuart_enable(gc, d_config, config);
>          break;
>      case LIBXL_DOMAIN_TYPE_PV:
>          config->arch.emulation_flags = 0;
> diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
> index 6a010a509a60..39b0c0b199b9 100644
> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -769,12 +769,14 @@ static bool emulation_flags_ok(const struct domain *d, uint32_t emflags)
>          {
>              .caps   = CAP_HVM | CAP_HWDOM,
>              .min    = X86_EMU_LAPIC | X86_EMU_IOAPIC | X86_EMU_VPCI,
> +            .opt    = X86_EMU_NS16550,
>          },
>  
>          /* PVH domU */
>          {
>              .caps   = CAP_HVM | CAP_DOMU,
>              .min    = X86_EMU_LAPIC,
> +            .opt    = X86_EMU_NS16550,
>          },
>  
>          /* HVM domU */
> diff --git a/xen/arch/x86/hvm/vioapic.c b/xen/arch/x86/hvm/vioapic.c
> index 7c725f9e471f..86fe3aa4a201 100644
> --- a/xen/arch/x86/hvm/vioapic.c
> +++ b/xen/arch/x86/hvm/vioapic.c
> @@ -177,6 +177,16 @@ static int vioapic_hwdom_map_gsi(unsigned int gsi, unsigned int trig,
>  
>      ASSERT(is_hardware_domain(currd));
>  
> +    /*
> +     * Interrupt is claimed by one of the platform virtual devices (e.g.
> +     * NS16550); do nothing.
> +     */
> +    read_lock(&currd->event_lock);
> +    ret = domain_pirq_to_emuirq(currd, gsi);
> +    read_unlock(&currd->event_lock);
> +    if ( ret != IRQ_UNBOUND )
> +        return 0;
> +
>      /* Interrupt has been unmasked, bind it now. */
>      ret = mp_register_gsi(gsi, trig, pol);
>      if ( ret == -EEXIST )
> diff --git a/xen/arch/x86/include/asm/irq.h b/xen/arch/x86/include/asm/irq.h
> index 8c81f66434a8..731d2bbbb1b4 100644
> --- a/xen/arch/x86/include/asm/irq.h
> +++ b/xen/arch/x86/include/asm/irq.h
> @@ -221,6 +221,7 @@ void cleanup_domain_irq_mapping(struct domain *d);
>  #define IRQ_UNBOUND (-1)
>  #define IRQ_PT      (-2)
>  #define IRQ_MSI_EMU (-3)
> +#define IRQ_EMU     (-4)
>  
>  bool cpu_has_pending_apic_eoi(void);
>  
> diff --git a/xen/common/emul/vuart/vuart-ns16550.c b/xen/common/emul/vuart/vuart-ns16550.c
> index 48bbf58264fe..9ec9aed2c594 100644
> --- a/xen/common/emul/vuart/vuart-ns16550.c
> +++ b/xen/common/emul/vuart/vuart-ns16550.c
> @@ -355,7 +355,9 @@ static void ns16550_irq_assert(const struct vuart_ns16550 *vdev)
>      struct domain *d = vdev->owner;
>      int vector;
>  
> -    if ( has_vpic(d) ) /* HVM */
> +    if ( has_vioapic(d) && !has_vpic(d) ) /* PVH */
> +        vector = hvm_ioapic_assert(d, vdev->irq, false);
> +    else if ( has_vpic(d) ) /* HVM */
>          vector = hvm_isa_irq_assert(d, vdev->irq, vioapic_get_vector);
>      else
>          ASSERT_UNREACHABLE();
> @@ -367,7 +369,9 @@ static void ns16550_irq_deassert(const struct vuart_ns16550 *vdev)
>  {
>      struct domain *d = vdev->owner;
>  
> -    if ( has_vpic(d) ) /* HVM */
> +    if ( has_vioapic(d) && !has_vpic(d) ) /* PVH */
> +        hvm_ioapic_deassert(d, vdev->irq);
> +    else if ( has_vpic(d) ) /* HVM */
>          hvm_isa_irq_deassert(d, vdev->irq);
>      else
>          ASSERT_UNREACHABLE();
> @@ -889,6 +893,17 @@ static int cf_check ns16550_init(struct domain *d,
>                  return rc;
>              }
>  
> +            /* Claim virtual IRQ */
> +            write_lock(&d->event_lock);
> +            rc = map_domain_emuirq_pirq(d, r->addr, IRQ_EMU);
> +            write_unlock(&d->event_lock);
> +            if ( rc )
> +            {
> +                pr_err("%s: virtual IRQ#%"PRIu64": cannot claim: %d\n",
> +                        desc->name, r->addr, rc);
> +                return rc;
> +            }
> +
>              vdev->irq = r->addr;
>          }
>          else
> @@ -919,12 +934,20 @@ static int cf_check ns16550_init(struct domain *d,
>  static void cf_check ns16550_deinit(struct domain *d)
>  {
>      struct vuart_ns16550 *vdev = d->arch.hvm.vuart;
> +    int rc;
>  
>      if ( !vdev )
>          return;
>  
>      spin_lock(&vdev->lock);
>  
> +    rc = unmap_domain_pirq_emuirq(vdev->owner, vdev->irq);
> +    if ( rc )
> +    {
> +        pr_err("%s: virtual IRQ#%d: cannot unclaim: %d\n",
> +                vdev->name, vdev->irq, rc);
> +    }

write_lock(&d->event_lock); ?


>      ns16550_fifo_tx_flush(vdev);
>  
>      spin_unlock(&vdev->lock);
> diff --git a/xen/drivers/passthrough/x86/hvm.c b/xen/drivers/passthrough/x86/hvm.c
> index a2ca7e0e570c..22905cd86f95 100644
> --- a/xen/drivers/passthrough/x86/hvm.c
> +++ b/xen/drivers/passthrough/x86/hvm.c
> @@ -924,12 +924,11 @@ static void hvm_gsi_eoi(struct domain *d, unsigned int gsi)
>  {
>      struct pirq *pirq = pirq_info(d, gsi);
>  
> -    /* Check if GSI is actually mapped. */
> -    if ( !pirq_dpci(pirq) )
> -        return;
> -
>      hvm_gsi_deassert(d, gsi);
> -    hvm_pirq_eoi(pirq);
> +
> +    /* Check if GSI is actually mapped. */
> +    if ( pirq_dpci(pirq) )
> +        hvm_pirq_eoi(pirq);
>  }
>  
>  static int cf_check _hvm_dpci_isairq_eoi(
> -- 
> 2.34.1
> 
> 


From xen-devel-bounces@lists.xenproject.org Fri Aug 01 01:51:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Aug 2025 01:51:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1066685.1431816 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhevd-0005l7-1e; Fri, 01 Aug 2025 01:51:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1066685.1431816; Fri, 01 Aug 2025 01:51:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhevc-0005l0-Ue; Fri, 01 Aug 2025 01:51:24 +0000
Received: by outflank-mailman (input) for mailman id 1066685;
 Fri, 01 Aug 2025 01:51:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=GtvS=2N=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1uheva-0005ku-Jb
 for xen-devel@lists.xenproject.org; Fri, 01 Aug 2025 01:51:23 +0000
Received: from mail-24417.protonmail.ch (mail-24417.protonmail.ch
 [109.224.244.17]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fdd16f3f-6e79-11f0-a320-13f23c93f187;
 Fri, 01 Aug 2025 03:51:08 +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>
X-Inumbo-ID: fdd16f3f-6e79-11f0-a320-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1754013066; x=1754272266;
	bh=0xESLbD1ZJxvO3CUMi0tBcjXxp8/N3CEHGKLWJ5NzCA=;
	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=dxJMVrjQbaF1QtJFbQrvQW65cBj9tDFKKY13JOAXXNZTUNgQt9rlvZDB4vApvd62/
	 JCb8WBn9lGKXcP/4Anjjv7bLpLgRb65i8qaAjz4xIirgJLOdbniTgAC18Lb2otPsuo
	 5NbWPla+IrA0eU4U4m1OclwI9hJPSECsj/UXuIYeSRZewWMJ05Qf2Pgoc0YSUSzALg
	 8xAHN7euaXNfW+5cHkIYiXpI0Wtwsk0svdW28DtGVD9ZJ8WfLgjlU3Su7EuSPwt/vb
	 kdC0KV57OKnYO/plZX2XXF/3ELiJ8ySd3pbgm5rbJbhNvlzqqlp789laLabnNWiL28
	 BWDfFygmo2xrQ==
Date: Fri, 01 Aug 2025 01:51:00 +0000
To: Stefano Stabellini <sstabellini@kernel.org>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, dmukhin@ford.com
Subject: Re: [PATCH v4 8/8] emul/vuart: introduce console forwarding enforcement via vUART
Message-ID: <aIwdfl/d8scL5MBQ@kraken>
In-Reply-To: <alpine.DEB.2.22.394.2507311709221.468590@ubuntu-linux-20-04-desktop>
References: <20250731192130.3948419-1-dmukhin@ford.com> <20250731192130.3948419-9-dmukhin@ford.com> <alpine.DEB.2.22.394.2507311709221.468590@ubuntu-linux-20-04-desktop>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 4561cb6ae269565d3fa516fbdaefecf25185ec8c
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Thu, Jul 31, 2025 at 05:10:12PM -0700, Stefano Stabellini wrote:
> On Thu, 31 Jul 2025, dmkhn@proton.me wrote:
> > From: Denis Mukhin <dmukhin@ford.com>
> >
> > It may be useful to enforce console forwarding over the virtual UART. E=
.g.
> > hardware domain uses PV console by default, but it may be necessary to =
have
> > console forwarded to the hardware domain via emulated UART.
> >
> > Add CONFIG_VUART_CONSOLE_FOCUS to enforce such behavior.
> >
> > Signed-off-by: Denis Mukhin <dmukhin@ford.com>
>=20
> I realize that hyperlaunch is not merged yet, but I think this one would
> be best as a hyperlaunch configuration option rather than a kconfig. But
> it is certainly useful for testing until Hyperlaunch is merged!

Yep, I used that to test PVH dom0 w/ emulator.

re: configuration option: I agree and, initially I wanted to hook a flag to=
 xl
/ dom0 command line opton which will say that emulated UART can accept
physical input.

But then decided to hook such capability via Kconfig for simplicity.

>=20
>=20
> > ---
> > Changes since v3:
> > - new patch
> > ---
> >  xen/arch/x86/domain.c         | 6 ++++++
> >  xen/common/emul/vuart/Kconfig | 5 +++++
> >  xen/drivers/char/console.c    | 2 +-
> >  3 files changed, 12 insertions(+), 1 deletion(-)
> >
> > diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
> > index 39b0c0b199b9..40ff92ad6c61 100644
> > --- a/xen/arch/x86/domain.c
> > +++ b/xen/arch/x86/domain.c
> > @@ -848,6 +848,12 @@ int arch_domain_create(struct domain *d,
> >      if ( is_hardware_domain(d) && is_pv_domain(d) )
> >          emflags |=3D XEN_X86_EMU_PIT;
> >
> > +    if ( IS_ENABLED(CONFIG_VUART_CONSOLE_FOCUS) &&
> > +         IS_ENABLED(CONFIG_VUART_NS16550) &&
> > +         is_hardware_domain(d) &&
> > +         is_hvm_domain(d) )
> > +        emflags |=3D XEN_X86_EMU_NS16550;
> > +
> >      if ( emflags & ~XEN_X86_EMU_ALL )
> >      {
> >          printk(XENLOG_G_ERR
> > diff --git a/xen/common/emul/vuart/Kconfig b/xen/common/emul/vuart/Kcon=
fig
> > index ebefd90d913e..1069ca95f2db 100644
> > --- a/xen/common/emul/vuart/Kconfig
> > +++ b/xen/common/emul/vuart/Kconfig
> > @@ -51,4 +51,9 @@ config VUART_NS16550_DEBUG
> >  =09help
> >  =09  Enable development debugging.
> >
> > +config VUART_CONSOLE_FOCUS
> > +=09bool "Console input forwarding via UART emulator"
> > +=09help
> > +=09  Enable physical console input forwarding to guest OS via emulated=
 UART.
> > +
> >  endmenu
> > diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
> > index 93254979817b..d142f5511d61 100644
> > --- a/xen/drivers/char/console.c
> > +++ b/xen/drivers/char/console.c
> > @@ -597,7 +597,7 @@ static void __serial_rx(char c)
> >      if ( !d )
> >          return;
> >
> > -    if ( is_hardware_domain(d) )
> > +    if ( !IS_ENABLED(CONFIG_VUART_CONSOLE_FOCUS) && is_hardware_domain=
(d) )
> >      {
> >          /*
> >           * Deliver input to the hardware domain buffer, unless it is
> > --
> > 2.34.1
> >
> >



From xen-devel-bounces@lists.xenproject.org Fri Aug 01 01:53:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Aug 2025 01:53:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1066692.1431826 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhexb-0006Fs-BZ; Fri, 01 Aug 2025 01:53:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1066692.1431826; Fri, 01 Aug 2025 01:53: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 1uhexb-0006Fl-8s; Fri, 01 Aug 2025 01:53:27 +0000
Received: by outflank-mailman (input) for mailman id 1066692;
 Fri, 01 Aug 2025 01:53:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=GtvS=2N=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1uhexZ-0006Fd-Bi
 for xen-devel@lists.xenproject.org; Fri, 01 Aug 2025 01:53:25 +0000
Received: from mail-10630.protonmail.ch (mail-10630.protonmail.ch
 [79.135.106.30]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4c93842b-6e7a-11f0-b895-0df219b8e170;
 Fri, 01 Aug 2025 03:53:20 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4c93842b-6e7a-11f0-b895-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1754013198; x=1754272398;
	bh=7nYRYqyTpkgbjg/kvxtm6yMNGst/fiy6u+RTeI0aUws=;
	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=jpDsMic2y/zW2RVS0DfcNfKXUJswslWWPT6hyUFFY+1aDO96R3d01b14LiB6Kz2m2
	 jzMD0l84kQEx29FbmUDG0T3UxcrbMdlGnU9Y18D9KReOxfdbtZVy5riiqvFzpfBzx2
	 yqW7pHQrrbVvZmeFN572mCagij61QtI8IAEkU07Cgao9hCZVITuVtTsyadLMQ3XkPX
	 yqzbLCpNCtpWvvyfPyXmr4cgixkTgeh8Tw3r4BIRKSA4IAJGTH/GCSR9rqv3c8DxVV
	 jZrr5QSx/XzmKdvHZxPV1oYBtfnL2MhJPUs76eUTrAr3AYT+HWIzbYZR40AmDHno4T
	 BOmLLYJ5JmU/w==
Date: Fri, 01 Aug 2025 01:53:15 +0000
To: Stefano Stabellini <sstabellini@kernel.org>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, dmukhin@ford.com
Subject: Re: [PATCH v4 7/8] tools/xl: enable NS16550-compatible UART emulator for PVH (x86)
Message-ID: <aIweBxdXJ3Rt2UO5@kraken>
In-Reply-To: <alpine.DEB.2.22.394.2507311745340.468590@ubuntu-linux-20-04-desktop>
References: <20250731192130.3948419-1-dmukhin@ford.com> <20250731192130.3948419-8-dmukhin@ford.com> <alpine.DEB.2.22.394.2507311745340.468590@ubuntu-linux-20-04-desktop>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 8f4c468e05c200e7f27a76b99b5a5a339d6daabc
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Thu, Jul 31, 2025 at 05:46:37PM -0700, Stefano Stabellini wrote:
> On Thu, 31 Jul 2025, dmkhn@proton.me wrote:
> > From: Denis Mukhin <dmukhin@ford.com>
> >
> > Enable virtual NS16550 for PVH domains in xl.
> >
> > {map,unmap}_domain_emuirq_pirq() infrastructure is modified by adding n=
ew
> > type of interrupt resources 'IRQ_EMU' which means 'emulated device IRQ'
> > (similarly to IRQ_MSI_EMU).
> >
> > This is necessary to for IOAPIC emulation code to skip IRQ->PIRQ mappin=
g
> > (vioapic_hwdom_map_gsi()) when guest OS unmasks vIOAPIC pin correspondi=
ng to
> > virtual device's IRQ.
> >
> > Also, hvm_gsi_eoi() is modified to trigger assertion in hvm_gsi_deasser=
t()
> > path for ISA IRQs.
> >
> > Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> > ---
> > Changes since v3:
> > - new patch
> > ---
> >  tools/libs/light/libxl_x86.c          |  2 +-
> >  xen/arch/x86/domain.c                 |  2 ++
> >  xen/arch/x86/hvm/vioapic.c            | 10 ++++++++++
> >  xen/arch/x86/include/asm/irq.h        |  1 +
> >  xen/common/emul/vuart/vuart-ns16550.c | 27 +++++++++++++++++++++++++--
> >  xen/drivers/passthrough/x86/hvm.c     |  9 ++++-----
> >  6 files changed, 43 insertions(+), 8 deletions(-)
> >
> > diff --git a/tools/libs/light/libxl_x86.c b/tools/libs/light/libxl_x86.=
c
> > index 0f039ca65a88..a40647c06cb9 100644
> > --- a/tools/libs/light/libxl_x86.c
> > +++ b/tools/libs/light/libxl_x86.c
> > @@ -54,7 +54,7 @@ int libxl__arch_domain_prepare_config(libxl__gc *gc,
> >          break;
> >      case LIBXL_DOMAIN_TYPE_PVH:
> >          config->arch.emulation_flags =3D XEN_X86_EMU_LAPIC;
> > -        libxl__arch_domain_vuart_unsupported(gc, d_config, config);
> > +        libxl__arch_domain_vuart_enable(gc, d_config, config);
> >          break;
> >      case LIBXL_DOMAIN_TYPE_PV:
> >          config->arch.emulation_flags =3D 0;
> > diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
> > index 6a010a509a60..39b0c0b199b9 100644
> > --- a/xen/arch/x86/domain.c
> > +++ b/xen/arch/x86/domain.c
> > @@ -769,12 +769,14 @@ static bool emulation_flags_ok(const struct domai=
n *d, uint32_t emflags)
> >          {
> >              .caps   =3D CAP_HVM | CAP_HWDOM,
> >              .min    =3D X86_EMU_LAPIC | X86_EMU_IOAPIC | X86_EMU_VPCI,
> > +            .opt    =3D X86_EMU_NS16550,
> >          },
> >
> >          /* PVH domU */
> >          {
> >              .caps   =3D CAP_HVM | CAP_DOMU,
> >              .min    =3D X86_EMU_LAPIC,
> > +            .opt    =3D X86_EMU_NS16550,
> >          },
> >
> >          /* HVM domU */
> > diff --git a/xen/arch/x86/hvm/vioapic.c b/xen/arch/x86/hvm/vioapic.c
> > index 7c725f9e471f..86fe3aa4a201 100644
> > --- a/xen/arch/x86/hvm/vioapic.c
> > +++ b/xen/arch/x86/hvm/vioapic.c
> > @@ -177,6 +177,16 @@ static int vioapic_hwdom_map_gsi(unsigned int gsi,=
 unsigned int trig,
> >
> >      ASSERT(is_hardware_domain(currd));
> >
> > +    /*
> > +     * Interrupt is claimed by one of the platform virtual devices (e.=
g.
> > +     * NS16550); do nothing.
> > +     */
> > +    read_lock(&currd->event_lock);
> > +    ret =3D domain_pirq_to_emuirq(currd, gsi);
> > +    read_unlock(&currd->event_lock);
> > +    if ( ret !=3D IRQ_UNBOUND )
> > +        return 0;
> > +
> >      /* Interrupt has been unmasked, bind it now. */
> >      ret =3D mp_register_gsi(gsi, trig, pol);
> >      if ( ret =3D=3D -EEXIST )
> > diff --git a/xen/arch/x86/include/asm/irq.h b/xen/arch/x86/include/asm/=
irq.h
> > index 8c81f66434a8..731d2bbbb1b4 100644
> > --- a/xen/arch/x86/include/asm/irq.h
> > +++ b/xen/arch/x86/include/asm/irq.h
> > @@ -221,6 +221,7 @@ void cleanup_domain_irq_mapping(struct domain *d);
> >  #define IRQ_UNBOUND (-1)
> >  #define IRQ_PT      (-2)
> >  #define IRQ_MSI_EMU (-3)
> > +#define IRQ_EMU     (-4)
> >
> >  bool cpu_has_pending_apic_eoi(void);
> >
> > diff --git a/xen/common/emul/vuart/vuart-ns16550.c b/xen/common/emul/vu=
art/vuart-ns16550.c
> > index 48bbf58264fe..9ec9aed2c594 100644
> > --- a/xen/common/emul/vuart/vuart-ns16550.c
> > +++ b/xen/common/emul/vuart/vuart-ns16550.c
> > @@ -355,7 +355,9 @@ static void ns16550_irq_assert(const struct vuart_n=
s16550 *vdev)
> >      struct domain *d =3D vdev->owner;
> >      int vector;
> >
> > -    if ( has_vpic(d) ) /* HVM */
> > +    if ( has_vioapic(d) && !has_vpic(d) ) /* PVH */
> > +        vector =3D hvm_ioapic_assert(d, vdev->irq, false);
> > +    else if ( has_vpic(d) ) /* HVM */
> >          vector =3D hvm_isa_irq_assert(d, vdev->irq, vioapic_get_vector=
);
> >      else
> >          ASSERT_UNREACHABLE();
> > @@ -367,7 +369,9 @@ static void ns16550_irq_deassert(const struct vuart=
_ns16550 *vdev)
> >  {
> >      struct domain *d =3D vdev->owner;
> >
> > -    if ( has_vpic(d) ) /* HVM */
> > +    if ( has_vioapic(d) && !has_vpic(d) ) /* PVH */
> > +        hvm_ioapic_deassert(d, vdev->irq);
> > +    else if ( has_vpic(d) ) /* HVM */
> >          hvm_isa_irq_deassert(d, vdev->irq);
> >      else
> >          ASSERT_UNREACHABLE();
> > @@ -889,6 +893,17 @@ static int cf_check ns16550_init(struct domain *d,
> >                  return rc;
> >              }
> >
> > +            /* Claim virtual IRQ */
> > +            write_lock(&d->event_lock);
> > +            rc =3D map_domain_emuirq_pirq(d, r->addr, IRQ_EMU);
> > +            write_unlock(&d->event_lock);
> > +            if ( rc )
> > +            {
> > +                pr_err("%s: virtual IRQ#%"PRIu64": cannot claim: %d\n"=
,
> > +                        desc->name, r->addr, rc);
> > +                return rc;
> > +            }
> > +
> >              vdev->irq =3D r->addr;
> >          }
> >          else
> > @@ -919,12 +934,20 @@ static int cf_check ns16550_init(struct domain *d=
,
> >  static void cf_check ns16550_deinit(struct domain *d)
> >  {
> >      struct vuart_ns16550 *vdev =3D d->arch.hvm.vuart;
> > +    int rc;
> >
> >      if ( !vdev )
> >          return;
> >
> >      spin_lock(&vdev->lock);
> >
> > +    rc =3D unmap_domain_pirq_emuirq(vdev->owner, vdev->irq);
> > +    if ( rc )
> > +    {
> > +        pr_err("%s: virtual IRQ#%d: cannot unclaim: %d\n",
> > +                vdev->name, vdev->irq, rc);
> > +    }
>=20
> write_lock(&d->event_lock); ?

Thanks

>=20
>=20
> >      ns16550_fifo_tx_flush(vdev);
> >
> >      spin_unlock(&vdev->lock);
> > diff --git a/xen/drivers/passthrough/x86/hvm.c b/xen/drivers/passthroug=
h/x86/hvm.c
> > index a2ca7e0e570c..22905cd86f95 100644
> > --- a/xen/drivers/passthrough/x86/hvm.c
> > +++ b/xen/drivers/passthrough/x86/hvm.c
> > @@ -924,12 +924,11 @@ static void hvm_gsi_eoi(struct domain *d, unsigne=
d int gsi)
> >  {
> >      struct pirq *pirq =3D pirq_info(d, gsi);
> >
> > -    /* Check if GSI is actually mapped. */
> > -    if ( !pirq_dpci(pirq) )
> > -        return;
> > -
> >      hvm_gsi_deassert(d, gsi);
> > -    hvm_pirq_eoi(pirq);
> > +
> > +    /* Check if GSI is actually mapped. */
> > +    if ( pirq_dpci(pirq) )
> > +        hvm_pirq_eoi(pirq);
> >  }
> >
> >  static int cf_check _hvm_dpci_isairq_eoi(
> > --
> > 2.34.1
> >
> >



From xen-devel-bounces@lists.xenproject.org Fri Aug 01 02:55:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Aug 2025 02:55:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1066714.1431837 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhfvT-0004Sc-Lb; Fri, 01 Aug 2025 02:55:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1066714.1431837; Fri, 01 Aug 2025 02:55: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 1uhfvT-0004SR-Go; Fri, 01 Aug 2025 02:55:19 +0000
Received: by outflank-mailman (input) for mailman id 1066714;
 Fri, 01 Aug 2025 02:55:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=GtvS=2N=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1uhfvR-0004SL-MF
 for xen-devel@lists.xenproject.org; Fri, 01 Aug 2025 02:55:18 +0000
Received: from mail-10630.protonmail.ch (mail-10630.protonmail.ch
 [79.135.106.30]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id eb451092-6e82-11f0-b895-0df219b8e170;
 Fri, 01 Aug 2025 04:55:02 +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>
X-Inumbo-ID: eb451092-6e82-11f0-b895-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1754016900; x=1754276100;
	bh=Napq1dcokFlHl192BT4BGuzTFYfN6exzUs9vCudnwY8=;
	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=LFEq/YdJiiofRgjY5jso45nxvBYe8QVLqUjMMhJ3uXBieJcs7OjXeDheEHNY3dD95
	 +h0OlBjgjJFH1SUauv0lY/l7bBoE7L8Eqe15MB9fvyuK7S+ipHYPrOOTIaA+QzV0DI
	 fvIZbORYUmvcKI0IkeExHk4ICQRoL0k4eEhiOpDPDBRsM1nszBLNp0+CDQc4/cPBxf
	 3vf+MnhxN/KFTJlJ3plkvxYrvyShR+ZBn77kTlwUJbzUKS5IKQBsjVu9lD2HCM6lAW
	 2IUS3MsjWT7r2KijgjhQnLrCBwRh1rfVX44KDaNSW81pSTf+WX2bMwK1uzHlUvbDxe
	 tgrCs6RVRCIFw==
Date: Fri, 01 Aug 2025 02:54:55 +0000
To: Stefano Stabellini <sstabellini@kernel.org>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, dmukhin@ford.com
Subject: Re: [PATCH v4 2/8] emul/vuart: introduce framework for UART emulators
Message-ID: <aIwseX+rI00yXa+9@kraken>
In-Reply-To: <alpine.DEB.2.22.394.2507311659220.468590@ubuntu-linux-20-04-desktop>
References: <20250731192130.3948419-1-dmukhin@ford.com> <20250731192130.3948419-3-dmukhin@ford.com> <alpine.DEB.2.22.394.2507311659220.468590@ubuntu-linux-20-04-desktop>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 34bc334a8b66cd8bd857de2903400591bf71ecef
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Thu, Jul 31, 2025 at 05:08:12PM -0700, Stefano Stabellini wrote:
> On Thu, 31 Jul 2025, dmkhn@proton.me wrote:
> > From: Denis Mukhin <dmukhin@ford.com>
> >
> > Introduce a driver framework to abstract UART emulators in the hypervis=
or.
> >
> > That allows for architecture-independent handling of virtual UARTs in t=
he
> > console driver and simplifies enabling new UART emulators.
> >
> > The framework is built under CONFIG_HAS_VUART, which will be automatica=
lly
> > enabled once the user enables any UART emulator.
> >
> > Current implementation supports maximum of one vUART of each kind per d=
omain.
> >
> > Use new domain_has_vuart() in the console driver code to check whether =
to
> > forward console input to the domain using vUART.
> >
> > Note: existing vUARTs are deliberately *not* hooked to the new framewor=
k to
> > minimize the scope of the patch: vpl011 (i.e. SBSA) emulator and "vuart=
" (i.e.
> > minimalistic MMIO-mapped dtuart for hwdoms on Arm) are kept unmodified.
> >
> > Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> > ---
> > Changes since v3:
> > - new patch
> > - original patch from ML: https://lore.kernel.org/xen-devel/20250624035=
443.344099-16-dmukhin@ford.com/
> > ---
> >  xen/arch/arm/xen.lds.S         |   1 +
> >  xen/arch/ppc/xen.lds.S         |   1 +
> >  xen/arch/riscv/xen.lds.S       |   1 +
> >  xen/arch/x86/xen.lds.S         |   1 +
> >  xen/common/Kconfig             |   2 +
> >  xen/common/Makefile            |   1 +
> >  xen/common/emul/Kconfig        |   6 ++
> >  xen/common/emul/Makefile       |   1 +
> >  xen/common/emul/vuart/Kconfig  |   6 ++
> >  xen/common/emul/vuart/Makefile |   1 +
> >  xen/common/emul/vuart/vuart.c  | 112 +++++++++++++++++++++++++++++++++
> >  xen/common/keyhandler.c        |   3 +
> >  xen/drivers/char/console.c     |   4 ++
> >  xen/include/xen/vuart.h        |  84 +++++++++++++++++++++++++
> >  xen/include/xen/xen.lds.h      |  10 +++
> >  15 files changed, 234 insertions(+)
> >  create mode 100644 xen/common/emul/Kconfig
> >  create mode 100644 xen/common/emul/Makefile
> >  create mode 100644 xen/common/emul/vuart/Kconfig
> >  create mode 100644 xen/common/emul/vuart/Makefile
> >  create mode 100644 xen/common/emul/vuart/vuart.c
> >  create mode 100644 xen/include/xen/vuart.h
> >
> > diff --git a/xen/arch/arm/xen.lds.S b/xen/arch/arm/xen.lds.S
> > index 9f30c3a13ed1..bdba7eaa4f65 100644
> > --- a/xen/arch/arm/xen.lds.S
> > +++ b/xen/arch/arm/xen.lds.S
> > @@ -58,6 +58,7 @@ SECTIONS
> >         *(.rodata)
> >         *(.rodata.*)
> >         VPCI_ARRAY
> > +       VUART_ARRAY
> >         *(.data.rel.ro)
> >         *(.data.rel.ro.*)
> >
> > diff --git a/xen/arch/ppc/xen.lds.S b/xen/arch/ppc/xen.lds.S
> > index 1de0b77fc6b9..f9d4e5b0dcd8 100644
> > --- a/xen/arch/ppc/xen.lds.S
> > +++ b/xen/arch/ppc/xen.lds.S
> > @@ -52,6 +52,7 @@ SECTIONS
> >          *(.rodata)
> >          *(.rodata.*)
> >          VPCI_ARRAY
> > +        VUART_ARRAY
> >          *(.data.rel.ro)
> >          *(.data.rel.ro.*)
> >
> > diff --git a/xen/arch/riscv/xen.lds.S b/xen/arch/riscv/xen.lds.S
> > index edcadff90bfe..59dcaa5fef9a 100644
> > --- a/xen/arch/riscv/xen.lds.S
> > +++ b/xen/arch/riscv/xen.lds.S
> > @@ -47,6 +47,7 @@ SECTIONS
> >          *(.rodata)
> >          *(.rodata.*)
> >          VPCI_ARRAY
> > +        VUART_ARRAY
> >          *(.data.rel.ro)
> >          *(.data.rel.ro.*)
> >
> > diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
> > index 8e9cac75b09e..43426df33092 100644
> > --- a/xen/arch/x86/xen.lds.S
> > +++ b/xen/arch/x86/xen.lds.S
> > @@ -136,6 +136,7 @@ SECTIONS
> >         *(.rodata)
> >         *(.rodata.*)
> >         VPCI_ARRAY
> > +       VUART_ARRAY
> >         *(.data.rel.ro)
> >         *(.data.rel.ro.*)
> >
> > diff --git a/xen/common/Kconfig b/xen/common/Kconfig
> > index 16936418a6e6..4e0bd524dc43 100644
> > --- a/xen/common/Kconfig
> > +++ b/xen/common/Kconfig
> > @@ -1,6 +1,8 @@
> >
> >  menu "Common Features"
> >
> > +source "common/emul/Kconfig"
> > +
> >  config COMPAT
> >  =09bool
> >  =09help
> > diff --git a/xen/common/Makefile b/xen/common/Makefile
> > index c316957fcb36..c0734480ee4b 100644
> > --- a/xen/common/Makefile
> > +++ b/xen/common/Makefile
> > @@ -11,6 +11,7 @@ obj-$(filter-out $(CONFIG_X86),$(CONFIG_ACPI)) +=3D d=
evice.o
> >  obj-$(CONFIG_DEVICE_TREE_PARSE) +=3D device-tree/
> >  obj-$(CONFIG_IOREQ_SERVER) +=3D dm.o
> >  obj-y +=3D domain.o
> > +obj-y +=3D emul/
> >  obj-y +=3D event_2l.o
> >  obj-y +=3D event_channel.o
> >  obj-$(CONFIG_EVTCHN_FIFO) +=3D event_fifo.o
> > diff --git a/xen/common/emul/Kconfig b/xen/common/emul/Kconfig
> > new file mode 100644
> > index 000000000000..7c6764d1756b
> > --- /dev/null
> > +++ b/xen/common/emul/Kconfig
> > @@ -0,0 +1,6 @@
> > +menu "Domain Emulation Features"
> > +=09visible if EXPERT
> > +
> > +source "common/emul/vuart/Kconfig"
> > +
> > +endmenu
> > diff --git a/xen/common/emul/Makefile b/xen/common/emul/Makefile
> > new file mode 100644
> > index 000000000000..670682102c13
> > --- /dev/null
> > +++ b/xen/common/emul/Makefile
> > @@ -0,0 +1 @@
> > +obj-$(CONFIG_HAS_VUART) +=3D vuart/
> > diff --git a/xen/common/emul/vuart/Kconfig b/xen/common/emul/vuart/Kcon=
fig
> > new file mode 100644
> > index 000000000000..02f7dd6dc1a1
> > --- /dev/null
> > +++ b/xen/common/emul/vuart/Kconfig
> > @@ -0,0 +1,6 @@
> > +config HAS_VUART
> > +=09bool
> > +
> > +menu "UART Emulation"
> > +
> > +endmenu
> > diff --git a/xen/common/emul/vuart/Makefile b/xen/common/emul/vuart/Mak=
efile
> > new file mode 100644
> > index 000000000000..c6400b001e85
> > --- /dev/null
> > +++ b/xen/common/emul/vuart/Makefile
> > @@ -0,0 +1 @@
> > +obj-$(CONFIG_HAS_VUART) +=3D vuart.o
> > diff --git a/xen/common/emul/vuart/vuart.c b/xen/common/emul/vuart/vuar=
t.c
> > new file mode 100644
> > index 000000000000..14a7f8bd8b79
> > --- /dev/null
> > +++ b/xen/common/emul/vuart/vuart.c
> > @@ -0,0 +1,112 @@
> > +/* SPDX-License-Identifier: GPL-2.0-only */
> > +/*
> > + * UART emulator framework.
> > + *
> > + * Copyright 2025 Ford Motor Company
> > + */
> > +
> > +#include <xen/errno.h>
> > +#include <xen/sched.h>
> > +#include <xen/vuart.h>
> > +
> > +#define VUART_ARRAY_SIZE    (__start_vuart_end - __start_vuart_array)
> > +
> > +#define for_each_vuart(vdev) \
> > +    for (unsigned __i =3D 0; \
> > +         __i < VUART_ARRAY_SIZE && (vdev =3D __start_vuart_array[__i],=
 1); \
> > +         __i++)
> > +
> > +extern const struct vuart_ops *const __start_vuart_array[];
> > +extern const struct vuart_ops *const __start_vuart_end[];
> > +
> > +int vuart_add_node(struct domain *d, const void *node)
> > +{
> > +    const struct vuart_ops *vdev;
> > +    int rc;
> > +
> > +    for_each_vuart(vdev)
> > +    {
> > +        if ( !vdev->add_node )
> > +            continue;
> > +
> > +        rc =3D vdev->add_node(d, node);
> > +        if ( rc )
> > +            return rc;
> > +    }
> > +
> > +    return 0;
> > +}
>=20
> Maybe skip this function until we needed? Without the reference
> implementation of vuart-ns16550.c it is hard to tell what it is supposed
> to do.

Ack
>=20
>=20
> > +int vuart_init(struct domain *d, struct vuart_params *params)
> > +{
> > +    const struct vuart_ops *vdev;
> > +    int rc;
> > +
> > +    if ( !domain_has_vuart(d) )
> > +        return 0;
> > +
> > +    for_each_vuart(vdev)
> > +    {
> > +        rc =3D vdev->init(d, params);
> > +        if ( rc )
> > +            return rc;
> > +    }
> > +
> > +    d->console.input_allowed =3D true;
>=20
> This works because there is only one emulator (NS16550) but if there
> were multiple possible emulators, I think we would want to only
> initialize the emulator enabled in the specific domain.

There are two emulators simultenously on Arm: "vuart", i.e. hwdom
dtuart for earlycon and "vpl011", i.e. SBSA.

>=20
> One domain could only have NS16550 and another domain could only have
> PL011, while both NS16550 and PL011 might be possible.
>=20
> I think it is OK for now and this function can be fixed/improved when
> adding the second emulator.
>=20
>=20
> > +    return 0;
> > +}
> > +
> > +/*
> > + * Release any resources taken by UART emulators.
> > + *
> > + * NB: no flags are cleared, since currently exit() is called only dur=
ing
> > + * domain destroy.
> > + */
> > +void vuart_deinit(struct domain *d)
> > +{
> > +    const struct vuart_ops *vdev;
> > +
> > +    for_each_vuart(vdev)
> > +        vdev->deinit(d);
> > +}
> > +
> > +void vuart_dump_state(const struct domain *d)
> > +{
> > +    const struct vuart_ops *vdev;
> > +
> > +    for_each_vuart(vdev)
> > +        vdev->dump_state(d);
> > +}
> > +
> > +/*
> > + * Put character to the first suitable emulated UART's FIFO.
> > + */
> > +int vuart_put_rx(struct domain *d, char c)
> > +{
> > +    const struct vuart_ops *vdev =3D NULL;
> > +
> > +    ASSERT(domain_has_vuart(d));
> > +
> > +    for_each_vuart(vdev)
> > +        if ( vdev->put_rx )
> > +            break;
> > +
> > +    return vdev ? vdev->put_rx(d, c) : -ENODEV;
>=20
> I don't think this would work with multiple emulators possible, maybe
> enable or maybe not, for the same domain.
>=20
> In a situation where there is both PL011 and NS16550 enable in the Xen
> kconfig, but only NS16550 enabled for this specific domain,
> for_each_vuart might find PL011 as the first emulator with a put_rx
> implementation, but it is not actually the one the domain can use.

Yes, multiple vUARTs will need more work.

>=20
> I think this is OK for now, but it would have to be fixed when adding a
> second emulator.
>=20
>=20
> > +}
> > +
> > +bool domain_has_vuart(const struct domain *d)
> > +{
> > +    uint32_t mask =3D 0;
> > +
> > +    return !!(d->emulation_flags & mask);
> > +}
> > +
> > +/*
> > + * Local variables:
> > + * mode: C
> > + * c-file-style: "BSD"
> > + * c-basic-offset: 4
> > + * indent-tabs-mode: nil
> > + * End:
> > + */
> > diff --git a/xen/common/keyhandler.c b/xen/common/keyhandler.c
> > index eccd97c565c6..af427d25dc0d 100644
> > --- a/xen/common/keyhandler.c
> > +++ b/xen/common/keyhandler.c
> > @@ -22,6 +22,7 @@
> >  #include <xen/mm.h>
> >  #include <xen/watchdog.h>
> >  #include <xen/init.h>
> > +#include <xen/vuart.h>
> >  #include <asm/div64.h>
> >
> >  static unsigned char keypress_key;
> > @@ -354,6 +355,8 @@ static void cf_check dump_domains(unsigned char key=
)
> >                             v->periodic_period / 1000000);
> >              }
> >          }
> > +
> > +        vuart_dump_state(d);
> >      }
> >
> >      for_each_domain ( d )
> > diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
> > index 963c7b043cd8..93254979817b 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/vuart.h>
> >
> >  #ifdef CONFIG_X86
> >  #include <asm/guest.h>
> > @@ -601,6 +602,7 @@ static void __serial_rx(char c)
> >          /*
> >           * Deliver input to the hardware domain buffer, unless it is
> >           * already full.
> > +         * NB: must be the first check: hardware domain may have emula=
ted UART.
> >           */
> >          if ( (serial_rx_prod - serial_rx_cons) !=3D SERIAL_RX_SIZE )
> >              serial_rx_ring[SERIAL_RX_MASK(serial_rx_prod++)] =3D c;
> > @@ -611,6 +613,8 @@ static void __serial_rx(char c)
> >           */
> >          send_global_virq(VIRQ_CONSOLE);
> >      }
> > +    else if ( domain_has_vuart(d) )
> > +        rc =3D vuart_put_rx(d, c);
> >  #ifdef CONFIG_SBSA_VUART_CONSOLE
> >      else
> >          /* Deliver input to the emulated UART. */
> > diff --git a/xen/include/xen/vuart.h b/xen/include/xen/vuart.h
> > new file mode 100644
> > index 000000000000..e843026df4b1
> > --- /dev/null
> > +++ b/xen/include/xen/vuart.h
> > @@ -0,0 +1,84 @@
> > +/* SPDX-License-Identifier: GPL-2.0-only */
> > +/*
> > + * UART emulator framework.
> > + *
> > + * Copyright 2025 Ford Motor Company
> > + */
> > +
> > +#ifndef XEN_VUART_H
> > +#define XEN_VUART_H
> > +
> > +#include <public/xen.h>
> > +#include <public/event_channel.h>
> > +#include <xen/types.h>
> > +
> > +struct vuart_params {
> > +    domid_t console_domid;
> > +    gfn_t gfn;
> > +    evtchn_port_t evtchn;
> > +};
> > +
> > +struct vuart_ops {
> > +    int (*add_node)(struct domain *d, const void *node);
> > +    int (*init)(struct domain *d, struct vuart_params *params);
> > +    void (*deinit)(struct domain *d);
> > +    void (*dump_state)(const struct domain *d);
> > +    int (*put_rx)(struct domain *d, char c);
> > +};
> > +
> > +#define VUART_REGISTER(name, x) \
> > +    static const struct vuart_ops *const __name##_entry \
> > +        __used_section(".data.vuart." #name) =3D (x);
> > +
> > +#ifdef CONFIG_HAS_VUART
> > +
> > +int vuart_add_node(struct domain *d, const void *node);
> > +int vuart_init(struct domain *d, struct vuart_params *params);
> > +void vuart_deinit(struct domain *d);
> > +void vuart_dump_state(const struct domain *d);
> > +int vuart_put_rx(struct domain *d, char c);
> > +bool domain_has_vuart(const struct domain *d);
> > +
> > +#else
> > +
> > +static inline int vuart_add_node(struct domain *d, const void *node)
> > +{
> > +    return 0;
> > +}
> > +
> > +static inline int vuart_init(struct domain *d, struct vuart_params *pa=
rams)
> > +{
> > +    return 0;
> > +}
> > +
> > +static inline void vuart_deinit(struct domain *d)
> > +{
> > +}
> > +
> > +static inline void vuart_dump_state(const struct domain *d)
> > +{
> > +}
> > +
> > +static inline int vuart_put_rx(struct domain *d, char c)
> > +{
> > +    ASSERT_UNREACHABLE();
> > +    return -ENODEV;
> > +}
> > +
> > +static inline bool domain_has_vuart(const struct domain *d)
> > +{
> > +    return false;
> > +}
> > +
> > +#endif /* CONFIG_HAS_VUART */
> > +
> > +#endif /* XEN_VUART_H */
> > +
> > +/*
> > + * Local variables:
> > + * mode: C
> > + * c-file-style: "BSD"
> > + * c-basic-offset: 4
> > + * indent-tabs-mode: nil
> > + * End:
> > + */
> > diff --git a/xen/include/xen/xen.lds.h b/xen/include/xen/xen.lds.h
> > index b126dfe88792..c2da180948ca 100644
> > --- a/xen/include/xen/xen.lds.h
> > +++ b/xen/include/xen/xen.lds.h
> > @@ -194,4 +194,14 @@
> >  #define VPCI_ARRAY
> >  #endif
> >
> > +#ifdef CONFIG_HAS_VUART
> > +#define VUART_ARRAY     \
> > +       . =3D ALIGN(POINTER_ALIGN); \
> > +       __start_vuart_array =3D .;  \
> > +       *(SORT(.data.vuart.*))    \
> > +       __start_vuart_end =3D .;
> > +#else
> > +#define VUART_ARRAY
> > +#endif
> > +
> >  #endif /* __XEN_LDS_H__ */
> > --
> > 2.34.1
> >
> >



From xen-devel-bounces@lists.xenproject.org Fri Aug 01 02:57:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Aug 2025 02:57:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1066724.1431845 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhfxG-00050p-2S; Fri, 01 Aug 2025 02:57:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1066724.1431845; Fri, 01 Aug 2025 02:57: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 1uhfxF-00050i-Ve; Fri, 01 Aug 2025 02:57:09 +0000
Received: by outflank-mailman (input) for mailman id 1066724;
 Fri, 01 Aug 2025 02:57:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=GtvS=2N=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1uhfxF-00050a-CP
 for xen-devel@lists.xenproject.org; Fri, 01 Aug 2025 02:57:09 +0000
Received: from mail-10630.protonmail.ch (mail-10630.protonmail.ch
 [79.135.106.30]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 35ab08b6-6e83-11f0-a320-13f23c93f187;
 Fri, 01 Aug 2025 04:57: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>
X-Inumbo-ID: 35ab08b6-6e83-11f0-a320-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1754017025; x=1754276225;
	bh=CbLxfbhmKTEJANfkftWsM0RVXlGMNTWhuSK7vBajsd8=;
	h=Date:To:From:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector;
	b=BFeaqeQOXBhjQXAuHGIsd4jPEdD6Y7ssvCgcQZmecEk9v6Dugcdm6XIDcNz83FYu8
	 U0iX8MKLyBat4aPR3+JsJJSAt8lfA5OpRyb/rSAMC9O3M6uE1pT/gR0qrdYl3I5aE0
	 dQxxfgBjAwTF0hI4BHssYAc+O8ek6cIhfNWw3596aOSEtkLEbIyv9RXEhjPUzOXkuO
	 ZoyUlO9TzhmfhT/u5gEZjmWoYLqkDvFEwpDivrNJ/3sD/cOFpF6HvA3C8LVe0NB7EO
	 5A7PP1beLvTCWUDZzu7M8To+glghjO8udlnMdlJxnNafW3fL5kWZdzexU9rBenElhh
	 R+qIzgyQ1p5Kw==
Date: Fri, 01 Aug 2025 02:57:01 +0000
To: Grygorii Strashko <grygorii_strashko@epam.com>, xen-devel@lists.xenproject.org
From: dmkhn@proton.me
Subject: Re: [PATCH v4 3/8] x86/domain: allocate d->{iomem,irq}_caps before arch-specific initialization
Message-ID: <aIws+i2V3UIkzXR3@kraken>
In-Reply-To: <aIvQQX6IqHfyHsyW@kraken>
References: <20250731192130.3948419-1-dmukhin@ford.com> <20250731192130.3948419-4-dmukhin@ford.com> <6f209ee9-cf3c-473f-92d5-0c1f0fbc2e49@epam.com> <aIvQQX6IqHfyHsyW@kraken>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 87fbc0b7c86ebca73383c85ec2487ed2facda496
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Thu, Jul 31, 2025 at 08:21:24PM +0000, dmkhn@proton.me wrote:
> On Thu, Jul 31, 2025 at 10:52:08PM +0300, Grygorii Strashko wrote:
> > Hi Denis,
> >
> > On 31.07.25 22:21, dmkhn@proton.me wrote:
> > > From: Denis Mukhin <dmukhin@ford.com>
> > >
> > > Move IRQ/IOMEM rangesets allocation before arch_domain_create().
> > >
> > > That guarantees that arch-specific code could access those rangesets =
to
> > > register traps for emulation.
> > >
> > > It is necessary for those emulators registering trap handlers and ens=
uring
> > > that emulated IRQs are not shared with the physical IRQs.
> > >
> > > Move dom0_setup_permissions() call right after I/O rangesets are allo=
cated.
> > >
> > > Move pvh_setup_mmcfg() inside dom0_setup_permissions() close to the p=
lace
> > > where MMCFG ranges are initialized.
> > >
> > > Not a functional change.
> > >
> > > Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> > > ---
> > > Chanhes since v3:
> > > - new patch
> > > ---
> > >   xen/arch/x86/dom0_build.c     | 26 +++++++++++++++++++++++
> > >   xen/arch/x86/hvm/dom0_build.c | 39 --------------------------------=
---
> > >   xen/arch/x86/hvm/hvm.c        | 16 ++++++++++++++
> > >   xen/common/domain.c           | 12 +++++------
> > >   4 files changed, 48 insertions(+), 45 deletions(-)
> > >
> > > diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
> > > index 0b467fd4a4fc..e965f506a3c8 100644
> > > --- a/xen/arch/x86/dom0_build.c
> > > +++ b/xen/arch/x86/dom0_build.c
> > > @@ -471,6 +471,24 @@ static void __init process_dom0_ioports_disable(=
struct domain *dom0)
> > >       }
> > >   }
> > >
> > > +static void __hwdom_init setup_mmcfg(struct domain *d)
> > > +{
> > > +    unsigned int i;
> > > +    int rc;
> > > +
> > > +    for ( i =3D 0; i < pci_mmcfg_config_num; i++ )
> > > +    {
> > > +        rc =3D register_vpci_mmcfg_handler(d, pci_mmcfg_config[i].ad=
dress,
> > > +                                         pci_mmcfg_config[i].start_b=
us_number,
> > > +                                         pci_mmcfg_config[i].end_bus=
_number,
> > > +                                         pci_mmcfg_config[i].pci_seg=
ment);
> > > +        if ( rc )
> > > +            printk("Unable to setup MMCFG handler at %#lx for segmen=
t %u\n",
> > > +                   pci_mmcfg_config[i].address,
> > > +                   pci_mmcfg_config[i].pci_segment);
> > > +    }
> > > +}
> > > +
> > >   int __init dom0_setup_permissions(struct domain *d)
> >
> > It could be i'm missing smth, but ^ function is __init while ...
> >
> > >   {
> > >       unsigned long mfn;
> > > @@ -480,6 +498,14 @@ int __init dom0_setup_permissions(struct domain =
*d)
> > >       if ( pv_shim )
> > >           return 0;
> > >
> > > +    /*
> > > +     * MMCFG initialization must be performed before setting domain
> > > +     * permissions, as the MCFG areas must not be part of the domain=
 IOMEM
> > > +     * accessible regions.
> > > +     */
> > > +    if ( is_hvm_domain(d) )
> > > +        setup_mmcfg(d);
> > > +
> > >       /* The hardware domain is initially permitted full I/O capabili=
ties. */
> > >       rc =3D ioports_permit_access(d, 0, 0xFFFF);
> > >       rc |=3D iomem_permit_access(d, 0UL,
> > > diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_bu=
ild.c
> > > index 5551f9044836..6f47c9eeeaa6 100644
> > > --- a/xen/arch/x86/hvm/dom0_build.c
> > > +++ b/xen/arch/x86/hvm/dom0_build.c
> > > @@ -1310,24 +1310,6 @@ static int __init pvh_setup_acpi(struct domain=
 *d, paddr_t start_info)
> > >       return 0;
> > >   }
> > >
> > > -static void __hwdom_init pvh_setup_mmcfg(struct domain *d)
> > > -{
> > > -    unsigned int i;
> > > -    int rc;
> > > -
> > > -    for ( i =3D 0; i < pci_mmcfg_config_num; i++ )
> > > -    {
> > > -        rc =3D register_vpci_mmcfg_handler(d, pci_mmcfg_config[i].ad=
dress,
> > > -                                         pci_mmcfg_config[i].start_b=
us_number,
> > > -                                         pci_mmcfg_config[i].end_bus=
_number,
> > > -                                         pci_mmcfg_config[i].pci_seg=
ment);
> > > -        if ( rc )
> > > -            printk("Unable to setup MMCFG handler at %#lx for segmen=
t %u\n",
> > > -                   pci_mmcfg_config[i].address,
> > > -                   pci_mmcfg_config[i].pci_segment);
> > > -    }
> > > -}
> > > -
> > >   int __init dom0_construct_pvh(const struct boot_domain *bd)
> > >   {
> > >       paddr_t entry, start_info;
> > > @@ -1339,27 +1321,6 @@ int __init dom0_construct_pvh(const struct boo=
t_domain *bd)
> > >       if ( bd->kernel =3D=3D NULL )
> > >           panic("Missing kernel boot module for %pd construction\n", =
d);
> > >
> > > -    if ( is_hardware_domain(d) )
> > > -    {
> > > -        /*
> > > -         * MMCFG initialization must be performed before setting dom=
ain
> > > -         * permissions, as the MCFG areas must not be part of the do=
main IOMEM
> > > -         * accessible regions.
> > > -         */
> > > -        pvh_setup_mmcfg(d);
> > > -
> > > -        /*
> > > -         * Setup permissions early so that calls to add MMIO regions=
 to the
> > > -         * p2m as part of vPCI setup don't fail due to permission ch=
ecks.
> > > -         */
> > > -        rc =3D dom0_setup_permissions(d);
> > > -        if ( rc )
> > > -        {
> > > -            printk("%pd unable to setup permissions: %d\n", d, rc);
> > > -            return rc;
> > > -        }
> > > -    }
> > > -
> > >       /*
> > >        * Craft dom0 physical memory map and set the paging allocation=
. This must
> > >        * be done before the iommu initializion, since iommu initializ=
ation code
> > > diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
> > > index cb8ecd050d41..b7edb1d6555d 100644
> > > --- a/xen/arch/x86/hvm/hvm.c
> > > +++ b/xen/arch/x86/hvm/hvm.c
> > > @@ -35,6 +35,7 @@
> > >   #include <asm/hap.h>
> > >   #include <asm/current.h>
> > >   #include <asm/debugreg.h>
> > > +#include <asm/dom0_build.h>
> > >   #include <asm/e820.h>
> > >   #include <asm/regs.h>
> > >   #include <asm/cpufeature.h>
> > > @@ -651,6 +652,17 @@ int hvm_domain_initialise(struct domain *d,
> > >               goto fail1;
> > >           }
> > >           memset(d->arch.hvm.io_bitmap, ~0, HVM_IOBITMAP_SIZE);
> > > +
> > > +        /*
> > > +         * Setup permissions early so that calls to add MMIO regions=
 to the
> > > +         * p2m as part of vPCI setup don't fail due to permission ch=
ecks.
> > > +         */
> > > +        rc =3D dom0_setup_permissions(d);
> >
> > ... here hvm_domain_initialise() is not __init?
>=20
> No, you're right, I missed this, thanks!
>=20
> Good catch!

So addressing it will require some code movement, like
dom0_setup_permissions() outside of arch/x86/dom0_build.c...

>=20
> >
> > [...]
> >
> >
> > --
> > Best regards,
> > -grygorii
> >
>=20
>=20



From xen-devel-bounces@lists.xenproject.org Fri Aug 01 03:28:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Aug 2025 03:28:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1066749.1431856 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhgRV-0000cl-AA; Fri, 01 Aug 2025 03:28:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1066749.1431856; Fri, 01 Aug 2025 03:28: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 1uhgRV-0000ce-78; Fri, 01 Aug 2025 03:28:25 +0000
Received: by outflank-mailman (input) for mailman id 1066749;
 Fri, 01 Aug 2025 03:28:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=GtvS=2N=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1uhgRS-0000cY-FK
 for xen-devel@lists.xenproject.org; Fri, 01 Aug 2025 03:28:23 +0000
Received: from mail-10629.protonmail.ch (mail-10629.protonmail.ch
 [79.135.106.29]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 91f51ed7-6e87-11f0-a320-13f23c93f187;
 Fri, 01 Aug 2025 05:28: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>
X-Inumbo-ID: 91f51ed7-6e87-11f0-a320-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1754018898; x=1754278098;
	bh=xpQcuWE2Srq1OrS6YWkW2AaQ+rh9ZESSnvzioC/47bg=;
	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=aXFlDKW6XiLn5mn5n51o9ytQjN3y+Ngyfb5XE5BxOYIX9rwQg7KdN/dBJKVx5dVDz
	 taU9RQ1pU6exuHLZW/Z+ibs2ChhtvkQcmm1IGa6qAd0aZvDZZvHHHGddezQaNWH1TJ
	 /1hn+P768GCaEYoGgebiBJ/HXptutyy0JBuo3fr7hkJqXppDlem0pw876g8ILhWDW3
	 THZQm4yUCrq7PujEVq3u4fSDZUEwrHuBlXm0lbc7Sn1jGOkppkjyEj7LzM9VP1Qfz2
	 W8BgohT+WN4gdFzAlllPd+mbgP679cuRTCm7jAR3qoAY5ojkE2ZMef84SaP/c8SHVZ
	 CsXZOrIY4Mgmg==
Date: Fri, 01 Aug 2025 03:28:14 +0000
To: Stefano Stabellini <sstabellini@kernel.org>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, dmukhin@ford.com
Subject: Re: [PATCH v4 5/8] emul/vuart-ns16550: introduce NS16550-compatible UART emulator (x86)
Message-ID: <aIw0SmU8RIbClWCD@kraken>
In-Reply-To: <alpine.DEB.2.22.394.2507311647480.468590@ubuntu-linux-20-04-desktop>
References: <20250731192130.3948419-1-dmukhin@ford.com> <20250731192130.3948419-6-dmukhin@ford.com> <alpine.DEB.2.22.394.2507311647480.468590@ubuntu-linux-20-04-desktop>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 3e8cdafa9f9802db10a97ac9263de613a8921cb0
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Thu, Jul 31, 2025 at 04:57:00PM -0700, Stefano Stabellini wrote:
> On Thu, 31 Jul 2025, dmkhn@proton.me wrote:

[..]

> > +/*
> > + * Emulate 8-bit write access to NS16550 register.
> > + */
> > +static int ns16550_io_write8(
> > +    struct vuart_ns16550 *vdev, uint32_t reg, uint8_t *data)
> > +{
> > +    uint8_t *regs =3D vdev->regs;
> > +    uint8_t val =3D *data;
> > +    int rc =3D 0;
> > +
> > +    if ( ns16550_dlab_get(vdev) && (reg =3D=3D UART_DLL || reg =3D=3D =
UART_DLM) )
> > +        regs[NS16550_REGS_NUM + reg] =3D val;
> > +    else
> > +    {
> > +        switch ( reg )
> > +        {
> > +        case UART_THR:
> > +            if ( regs[UART_MCR] & UART_MCR_LOOP )
> > +            {
> > +                (void)ns16550_fifo_rx_putchar(vdev, val);
> > +                regs[UART_LSR] |=3D UART_LSR_OE;
>=20
> Why is UART_LSR_OE set unconditionally here instead of checking if
> ns16550_fifo_rx_putchar returned -ENOSPC?

Thanks!
Yes, overrun condition should be emulated once FIFO is full.

[..]

> > +
> > +            /* Calculate changes in modem status */
> > +            if ( (msr_curr & UART_MSR_CTS) ^ (msr_next & UART_MSR_CTS)=
 )
> > +                msr_delta |=3D UART_MSR_DCTS;
> > +            if ( (msr_curr & UART_MCR_RTS) ^ (msr_next & UART_MCR_RTS)=
 )
> > +                msr_delta |=3D UART_MSR_DDSR;
>=20
> Should we check UART_MSR_DSR instead of UART_MCR_RTS to set
> UART_MSR_DDSR ?

Good catch!
Thanks.

[..]



From xen-devel-bounces@lists.xenproject.org Fri Aug 01 05:27:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Aug 2025 05:27:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1066804.1431866 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhiIE-0006TT-8G; Fri, 01 Aug 2025 05:26:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1066804.1431866; Fri, 01 Aug 2025 05:26:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhiIE-0006TM-3m; Fri, 01 Aug 2025 05:26:58 +0000
Received: by outflank-mailman (input) for mailman id 1066804;
 Fri, 01 Aug 2025 05:26:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=zRMe=2N=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1uhiIC-0006TC-Fh
 for xen-devel@lists.xenproject.org; Fri, 01 Aug 2025 05:26:56 +0000
Received: from mail-wr1-x42b.google.com (mail-wr1-x42b.google.com
 [2a00:1450:4864:20::42b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 22d49b7b-6e98-11f0-a320-13f23c93f187;
 Fri, 01 Aug 2025 07:26:54 +0200 (CEST)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-3b792b0b829so356074f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 31 Jul 2025 22:26:54 -0700 (PDT)
Received: from ?IPV6:2003:e5:872d:3c00:27e3:fc0:fb5:67a3?
 (p200300e5872d3c0027e30fc00fb567a3.dip0.t-ipconnect.de.
 [2003:e5:872d:3c00:27e3:fc0:fb5:67a3])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4589ee4f0f8sm50821145e9.15.2025.07.31.22.26.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 31 Jul 2025 22:26: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>
X-Inumbo-ID: 22d49b7b-6e98-11f0-a320-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754026014; x=1754630814; 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=xyc8VfwE+9GoTYTlyessa6tXeEN09Y4rCFfq14fq/+k=;
        b=M2ulkEhrItK9s5B42Sa8ZR6VH8D+0BNE3WKb+H6YhaH0SAd6LtPCePk967EZ0K8F7J
         oCdcoDBh5CCv17P9WWcPntPCcasi7fD0NlOf8qmKcMPB6T7TlslsLormtSPdhlYe2qY9
         DUGHTbyg94WPgGPhYKA/OcErtorTEsWGnmyKopQjtmZO7GMQjkfX+c0Cf2yP2vmWhLuX
         Ruzk4yy3lNSd/omm37WAo2XTCF+lNSA5xF/EX8E7SAf0g7SEUvudYbOie2ORyNlxdA9N
         KN+GBbsWZhAD6jgG+TVpUM29061o60jrdEphiQ+uX1ckIsdB/zheqSZIBwYf2ihVhhj2
         Gp6Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754026014; x=1754630814;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=xyc8VfwE+9GoTYTlyessa6tXeEN09Y4rCFfq14fq/+k=;
        b=g40VFEutP2hq8RE3Qs6xK5Zhi4QjAL/OXf8hvPXvb6cBPzn60KgqXvJzGFJaNfMpj0
         bpkzLvinf4LFyaniLIE7uN9GfFvRKdOnAsdddx4bdhtNSGKS+gmS/ritcFVBHNb7PJ20
         WwvfakGQyeTqzLLksuNEaJGPesPKqu32apVCvD484ENXRlVpWrnNisjMO9ub3Yzwe0h4
         FP0x96EXMs2rA4gQNXzBgpCIU45WUe7o1JPy6gMHfDf5UEWDDu/AsmZ7Ay0wobhjEJcS
         +Br+UTva3SLW1C+0I1vYmj2xU1315d22Q8smQgs6ePCedd1n+JCYSWQijV5sEb0d6bBj
         hNXA==
X-Forwarded-Encrypted: i=1; AJvYcCWQ742zLZ/d8UGm8fV3piWh4ve0udSaOBwHz3k3KtqiEloi/WawiQ48alSSNNOLdfPGgEreHiL6i10=@lists.xenproject.org
X-Gm-Message-State: AOJu0YweP31ZKarLOk/g/SCOrJUq9YjkBHkKBRFWhMl8p0rQEsdm2slQ
	LqhuQIdEUToPOMpq5rCkRUzrdgULWMEP/k/KRJxuEdvE0b2zvZq/M44ICAVxAfrpUCs=
X-Gm-Gg: ASbGncsdaGVFZ1De6UVoPe/h9s1CInTjGKKaU7M+x4zpezzTNRwsy+qiHBXJ02BacQB
	AOFMJ5RWEKhF/5mtJx3vK/KKZdANeeXzgpsHg9KKfLcw4CNcMzKGuGCqz43zb/g4JSfhP3sCiSO
	a2BnU0sRpyteLVP6P2xWzMIjQ9RWxELZkAEwbw1+LM8c/j+KALUad9m9pzVRphLR3ZkFDjQVx1g
	NGR6kuFSPtYEpaYg6WBWPm0WaaVKkdPbNhc+/KoCgYbCxB9vJFDUkGZ7LZyffzxLvHIQEXlbLDk
	SOl3NPuoUg0jm6Hd66GcXX979UPLzYkulXGsKXmNr6Wcp3b/0fxxBsmOVqkuaoYlEh8VX55RI4h
	+N3DzuJ9r2SNYdUydnGWh2VjIsZr56qofTs5nfhBb4Ae5x5ncII7VMe/ZDoY+VhGV/n2x6Cu42e
	xlnaZkMN8FZy9WLzENocehH2YrW+/vActH9BoRQRkQww==
X-Google-Smtp-Source: AGHT+IEkhhECVd/9Q9WcSDDtqAO+UydUniWZXbdW6cAtkTYsNoggy7Q/0cFNREp9robtYztteWpPNw==
X-Received: by 2002:a5d:5f85:0:b0:3b7:87be:d9d8 with SMTP id ffacd0b85a97d-3b79500ef36mr7394064f8f.43.1754026014166;
        Thu, 31 Jul 2025 22:26:54 -0700 (PDT)
Message-ID: <2dd66d50-0804-4c4b-b5e9-5dd8efb27da1@suse.com>
Date: Fri, 1 Aug 2025 07:26:52 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] misra: fix violations in macros GVA_INFO, TRACE_TIME
To: Jan Beulich <jbeulich@suse.com>,
 Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <73cfc8a2d4d66042b49f44c69e672ce8ad0556ce.1753971749.git.dmytro_prokopchuk1@epam.com>
 <34320c56-8c79-45d4-910c-2faa5ed4ac0b@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: <34320c56-8c79-45d4-910c-2faa5ed4ac0b@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------dgUcIXRa1XjzNC9A0HdOtVz2"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------dgUcIXRa1XjzNC9A0HdOtVz2
Content-Type: multipart/mixed; boundary="------------kv3oNgFE2TsryMcUjS7I9f2s";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>,
 Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Message-ID: <2dd66d50-0804-4c4b-b5e9-5dd8efb27da1@suse.com>
Subject: Re: [PATCH] misra: fix violations in macros GVA_INFO, TRACE_TIME
References: <73cfc8a2d4d66042b49f44c69e672ce8ad0556ce.1753971749.git.dmytro_prokopchuk1@epam.com>
 <34320c56-8c79-45d4-910c-2faa5ed4ac0b@suse.com>
In-Reply-To: <34320c56-8c79-45d4-910c-2faa5ed4ac0b@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=

--------------kv3oNgFE2TsryMcUjS7I9f2s
Content-Type: multipart/mixed; boundary="------------tN95QAGW1W4FT3ZXMOFobS74"

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

T24gMzEuMDcuMjUgMTc6MzIsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAzMS4wNy4yMDI1
IDE3OjE2LCBEbXl0cm8gUHJva29wY2h1azEgd3JvdGU6DQo+PiAtLS0gYS94ZW4vYXJjaC9h
cm0vZ3Vlc3Rjb3B5LmMNCj4+ICsrKyBiL3hlbi9hcmNoL2FybS9ndWVzdGNvcHkuYw0KPj4g
QEAgLTEwOSwyNyArMTA5LDMxIEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIGNvcHlfZ3Vlc3Qo
dm9pZCAqYnVmLCB1aW50NjRfdCBhZGRyLCB1bnNpZ25lZCBpbnQgbGVuLA0KPj4gICANCj4+
ICAgdW5zaWduZWQgbG9uZyByYXdfY29weV90b19ndWVzdCh2b2lkICp0bywgY29uc3Qgdm9p
ZCAqZnJvbSwgdW5zaWduZWQgaW50IGxlbikNCj4+ICAgew0KPj4gKyAgICBzdHJ1Y3QgdmNw
dSAqY3VycmVudF92Y3B1ID0gY3VycmVudDsNCj4gDQo+IFRoZSBjb21tb25seSB1c2VkIG5h
bWUgZm9yIHRoaXMga2luZCBvZiB2YXJpYWJsZSBpcyBjdXJyLiBBbHNvIHdoZXJldmVyDQo+
IHlvdSBpbnRyb2R1Y2Ugb25lIGFuZXcsIGl0IHdvdWxkIHByZWZlcmFibHkgYmUgcG9pbnRl
ci10by1jb25zdCB3aGVuDQo+IHBvc3NpYmxlLiAoVGhpcyBpc24ndCBhIHJlcXVlc3QgdG8g
cmVuYW1lIG9yIHJlLXR5cGUgZXhpc3RpbmcgdmFyaWFibGVzDQo+IHJpZ2h0IGhlcmUuKQ0K
PiANCj4+IEBAIC0xODk5LDYgKzE4OTksNyBAQCB0eXBlZGVmIGxvbmcgcmV0X3Q7DQo+PiAg
IHJldF90IGRvX3NjaGVkX29wKGludCBjbWQsIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9p
ZCkgYXJnKQ0KPj4gICB7DQo+PiAgICAgICByZXRfdCByZXQgPSAwOw0KPj4gKyAgICBzdHJ1
Y3QgdmNwdSAqdiA9IGN1cnJlbnQ7DQo+IA0KPiBJIHdvbmRlciBpZiB0aGlzIHdhc24ndCBi
ZXR0ZXIgaW50cm9kdWNlZCBpbiB0aGUgdHdvIHNjb3BlcyB0aGF0IGFjdHVhbGx5DQo+IG5l
ZWQgaXQuDQoNCkknZCBiZSBpbiBmYXZvciBvZiBrZWVwaW5nIGl0IGluIGZ1bmN0aW9uIHNj
b3BlLCBidXQgd2l0aCByZXBsYWNpbmcgYWxsDQpyZWZlcmVuY2VzIG9mICJjdXJyZW50IiBp
biB0aGlzIGZ1bmN0aW9uIHdpdGggInYiLiBEb2luZyB0aGUgc2FtZSBpbg0KdmNwdV95aWVs
ZCgpIHNob3dzIHRoZSBmb2xsb3dpbmcgY29kZSByZWR1Y3Rpb25zOg0KDQpibG9hdC1vLW1l
dGVyIGNvcmUtb3JpZy5vIGNvcmUubw0KYWRkL3JlbW92ZTogMC8wIGdyb3cvc2hyaW5rOiAw
LzMgdXAvZG93bjogMC8tMTYwICgtMTYwKQ0KRnVuY3Rpb24gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgb2xkICAgICBuZXcgICBkZWx0YQ0KdmNwdV95aWVsZCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDU1ICAgICA0NDkgICAgICAtNg0KZG9f
c2NoZWRfb3AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMjE2ICAgIDExMzkg
ICAgIC03Nw0KY29tcGF0X3NjaGVkX29wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAx
MjExICAgIDExMzQgICAgIC03Nw0KVG90YWw6IEJlZm9yZT0zNjE3NCwgQWZ0ZXI9MzYwMTQs
IGNoZyAtMC40NCUNCg0KRG15dHJvLCB3aXRoIEFuZHJldydzIHJlc3BvbnNlIHJlZ2FyZGlu
ZyB0aGUgTWlzcmEgInZpb2xhdGlvbiIgd2l0aCAiY3VycmVudCIsDQppdHMgdXAgdG8geW91
IHdoZXRoZXIgeW91IHdhbnQgdG8gc2VuZCBhbm90aGVyIHBhdGNoIGZvciBjb21tb24vc2No
ZWQvY29yZS5jLg0KDQpJbiBjYXNlIHlvdSBkb24ndCB3YW50IHRvIGRvIHRoYXQsIHBsZWFz
ZSB0ZWxsIG1lIGFuZCBJJ2xsIHNlbmQgdGhhdCBwYXRjaC4NCg0KDQpKdWVyZ2VuDQo=
--------------tN95QAGW1W4FT3ZXMOFobS74
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-----

--------------tN95QAGW1W4FT3ZXMOFobS74--

--------------kv3oNgFE2TsryMcUjS7I9f2s--

--------------dgUcIXRa1XjzNC9A0HdOtVz2
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/Ey8FAmiMUBwFAwAAAAAACgkQsN6d1ii/Ey/3
HwgAmgKZ+K69YPBlTBs6lvbYCr2+GVfaycim7/JRBo+bb4wySij9JjoGDrSjEcmxkk6ULKukseLn
gBg22J3rvObgC86IfopP073uDVp6SYPniU2VI98sBqa/Sy0q/JNU8fEDszEjgfcfJcZYF5hFuQYV
Xuln+dW/DlNcWJxSjzBNRWalOhUsp21XKf2iOF9BMtYMmIXr+RfeCbEteijo3h1GPWy8QByYtwx9
2PLELOde63Abu43oekd6Z+G87FHwiB5bR02OM3dJ7lg1HtcraPXro8N5/zbNcRJZqfk66ggzMM7Z
9rwlMZJzTTLgG5k0QG5ymp96ipR99MiWlFjePerCiA==
=5Mmq
-----END PGP SIGNATURE-----

--------------dgUcIXRa1XjzNC9A0HdOtVz2--


From xen-devel-bounces@lists.xenproject.org Fri Aug 01 05:55:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Aug 2025 05:55:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1066814.1431876 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhijk-0001vI-Bk; Fri, 01 Aug 2025 05:55:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1066814.1431876; Fri, 01 Aug 2025 05: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 1uhijk-0001vB-9C; Fri, 01 Aug 2025 05:55:24 +0000
Received: by outflank-mailman (input) for mailman id 1066814;
 Fri, 01 Aug 2025 05:55:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=zIvO=2N=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uhiji-0001v5-PD
 for xen-devel@lists.xenproject.org; Fri, 01 Aug 2025 05:55:22 +0000
Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com
 [2a00:1450:4864:20::431])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1bf86781-6e9c-11f0-a320-13f23c93f187;
 Fri, 01 Aug 2025 07:55:21 +0200 (CEST)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-3b78a034f17so370718f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 31 Jul 2025 22:55:21 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-241e899b5e5sm33201385ad.124.2025.07.31.22.55.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 31 Jul 2025 22:55: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>
X-Inumbo-ID: 1bf86781-6e9c-11f0-a320-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754027721; x=1754632521; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=OeMBKb7OWna1CoAfKsX4bSslW07EGIW7m/Wk47pqeNI=;
        b=QUacE5GF+ixr9FqDOJFOaF9ZSW8OCo67zUhmTCSInAhrnHt1GbJL300/H6AjPwubUr
         ziLaRvkVKlGa8OXml79hgmcOWyZRGGId5J0exG6MwTVkWlKTCgRUhLsornyqLjf0CDxp
         C1UWnBM4k/omDGRo++BLD+geTWoK/AC1ZfeMIxxjqPekcIf6S+HhIhU7ink1plx+2qUl
         199D3nznW/l+eWKhjPCoSmJ/EnuuT32gcx+t2kWP+m4BQzd3iVgbOxnXrGBSgbgp2hEl
         JwGxjm4XwcGrO6r1nVAdWDyGYe+0qnbBvAp14zjVZPsLsFUHco8Q+LVYscSWqIHpBNXu
         QAzw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754027721; x=1754632521;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=OeMBKb7OWna1CoAfKsX4bSslW07EGIW7m/Wk47pqeNI=;
        b=hrOdxOnIuC8qoFagfYLsbBogmEekxoTdaPmZ6hfrfvrhX2jtmxBTFGg8URhHGHPLPs
         4g0Aek7G5rAMxCVtfrCcIEVXw/buedgRaRpZqIuD+PXR9FnPKBD7Zdxw9Wya+Xy2YsNv
         26fe+ebatVoCqx8L+gf7mehj8FsBRaX1DpuVib62ukhNqcHq4KJDWdk/itKxwtfis7pI
         NsAEBqFO5KOGonF8j7rrYaWzt9AN+rJQbhxtfEN/qfsliLQADmDrnHonq/EZDzTW5T7G
         Dc0oMPZjYcIRbp2AeVVz6Wths2AtW0BGmWvMtqw2+7/gKHmXUFY/8PsX5EU3fRI5MeeF
         cuxw==
X-Forwarded-Encrypted: i=1; AJvYcCWsADkNBXhV9IsqNOhW859EWir8frv/G3h/YKuiypOkYu5eUfkOuMkmREIqVVSW1WczsxrRt79Q6Tk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzeAiGfdzTk0BW39qFPfv8VbPYdXEeiNoK3+HS59uhHP8kPleII
	TpoB7RJucuxKbG/RdVQ/OBO/a4X1R0pACOGHNUaCZw9CB1vaX3OTaOlfj0fafPW+ug==
X-Gm-Gg: ASbGnctFqrS55+4S6ypRa7Vvr7lm2YQmh/BkqVUZMLZaGnvAGxBVTTOA172kJrpIkUH
	v68gD2Wv9OQb5CRAHKOkRDUV4KHF8z903MfGLxzn1oEjqy8jzQDmri7yoIqiWKcYhr6kNWp74gv
	NL+nf3BTrAXReRUuzzbTnWyG+Qx6r9/9Mgh8Nnsqux4NDsAFTKKGfXVT12L6BxmT3RmZJHt7WWe
	7hLrvvLN/1e6zorTGC5CDydRuMzD7JOx5M3XwYIbqJCPGEXUL+AU8BANvp7p4md8JfbwQsQY/19
	eMpBaweGEcgArpUYBqxcQ1GVTa+iL+Pw2Qs85GnOxiDchQsd+Vp8EaCd7Jo2ZakK1aMiYYR1BqH
	5q8Wu5yXanhjIW7Yzjl8ce9N3KvlvdkTAAU7ZrnJ+wqcE6CGg3ckv+01lq1U+JS07CY9xh8hOct
	qUxjVKiH4=
X-Google-Smtp-Source: AGHT+IGU3nhlkHP+8ZTq24z4kTPWBEx1Yyjn/MSMbP16VvM8sDhfqB9/k2NXx3pxgUuuQsZ7enp29A==
X-Received: by 2002:adf:fa11:0:b0:3b7:925b:571c with SMTP id ffacd0b85a97d-3b795025c18mr5787090f8f.57.1754027720712;
        Thu, 31 Jul 2025 22:55:20 -0700 (PDT)
Message-ID: <4f12dbce-29a2-4fba-9a44-669109fed450@suse.com>
Date: Fri, 1 Aug 2025 07:55:10 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] misra: allow discarding 'noreturn' during function
 pointer conversions
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <63d5d311e6502d5b957009be59e1c97599015b46.1753911912.git.dmytro_prokopchuk1@epam.com>
 <46e8dd16-11e4-4d96-95cb-f13b652e7317@suse.com>
 <0999ccba-37cf-4222-8b6e-82aa95371b75@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: <0999ccba-37cf-4222-8b6e-82aa95371b75@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 31.07.2025 18:48, Dmytro Prokopchuk1 wrote:
> 
> 
> On 7/31/25 10:20, Jan Beulich wrote:
>> On 30.07.2025 23:47, Dmytro Prokopchuk1 wrote:
>>> --- a/docs/misra/deviations.rst
>>> +++ b/docs/misra/deviations.rst
>>> @@ -342,6 +342,12 @@ Deviations related to MISRA C:2012 Rules:
>>>          semantics that do not lead to unexpected behaviour.
>>>        - Tagged as `safe` for ECLAIR.
>>>   
>>> +   * - R11.1
>>> +     - The conversion from 'void noreturn (*)(void *)' to 'void (*)(void *)'
>>> +       is safe because the semantics of the 'noreturn' attribute do not alter
>>> +       the calling convention or behavior of the resulting code.
>>> +     - Tagged as `safe` for ECLAIR.
>>
>> As before, imo such a deviation should be generic, i.e. here independent
>> of what parameters a function takes. If that can't be easily expressed
>> to Eclair, then that wants stating as a justification for the
>> deviations.ecl change to not fully cover the deviation we put in place.
>> Having the textual deviation generic means later possible needs can be
>> easily addressed by just a deviations.ecl change, without any adjustment
>> to the deviations themselves.
>>
>> Jan
> 
> Hi, Jan
> 
> Currently Eclair checks exact pointer type 'void (*)(void *)', as 
> described in the configuration:
> 
> to(type(pointer(inner(return(builtin(void))&&all_param(1, 
> pointer(builtin(void)))))))
> 
> Nicola wrote: "then if it needs to be extended when more cases emerge I 
> can do that".
> 
> So, for clarification.
> 
> 1. In the file "deviations.ecl" I leave exist description and config:
> "The conversion from 'void noreturn (*)(void *)' to 'void (*)(void *)' 
> is safe because the semantics of the 'noreturn' attribute do not alter 
> the calling convention or behavior of the resulting code."
> 
> 2. In the file "deviations.rst" I change the description to:
> "The conversion from `void noreturn (*)(...)` to `void (*)(...)`
> is safe because the semantics of the 'noreturn' attribute do not alter
> the calling convention or behavior of the resulting code, parameter 
> handling remain consistent."
> 
> 3. In the file "rules.rst" I change the description to:
> "Conversions from 'void noreturn (*)(...)' to 'void (*)(...)' are 
> permitted."
> 
> It means that only "deviations.ecl" needs to be updated if a new 
> deviation needs to be addressed.
> 
> 
> Is it OK?

Yes, with the patch description also suitably adjusted.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 01 05:59:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Aug 2025 05:59:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1066821.1431886 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhinl-0002Tm-SR; Fri, 01 Aug 2025 05:59:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1066821.1431886; Fri, 01 Aug 2025 05:59: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 1uhinl-0002Tf-OO; Fri, 01 Aug 2025 05:59:33 +0000
Received: by outflank-mailman (input) for mailman id 1066821;
 Fri, 01 Aug 2025 05:59:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=zIvO=2N=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uhink-0002TZ-Bf
 for xen-devel@lists.xenproject.org; Fri, 01 Aug 2025 05:59:32 +0000
Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com
 [2a00:1450:4864:20::433])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b10239d0-6e9c-11f0-a320-13f23c93f187;
 Fri, 01 Aug 2025 07:59:31 +0200 (CEST)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-3b77673fd78so714205f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 31 Jul 2025 22:59: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
 d2e1a72fcca58-76bcce6f6bfsm3186912b3a.23.2025.07.31.22.59.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 31 Jul 2025 22:59: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>
X-Inumbo-ID: b10239d0-6e9c-11f0-a320-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754027971; x=1754632771; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4/0v1tmnV7HIQqvmy3mH/pRHBTmHyoMQNOpz1PhJQc0=;
        b=Iu89HoXcpN5d3V92s5g3KgLvkfK6qk7H6wZVNFQntQkZNtV0EEThAb/+vyMD2CpDIR
         ViWmWyaqxO+7jL5DdoP3Hvkm0llH7Kgr8CeC6lugs+aXfa9RXmiT1UQeB1emZodAsbRn
         HmifKtcmwef7BjDnADijKKLVQO92mh73/DxdENxjj6qEPOTVW5PmRNhB/KM87s8jyO3i
         VZ3oFhDCRODxE2eWeOqCid9gFGpLzxdu89RBb99d1E9sbhrhM7WxD/4howGIJ1FrsmWQ
         tbMphCItaSAtopJJzJ+iRYVuZ4tbGWBPympBoAw/U4cwARodUGY3D+rlmBKLYIf+mUsM
         TJSQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754027971; x=1754632771;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4/0v1tmnV7HIQqvmy3mH/pRHBTmHyoMQNOpz1PhJQc0=;
        b=E5oJCN9v57Qa74o9nFnkGX4ieS3qBuYw31Ika6nxlKGu3vpqOF1WW1So59g/hXDIvd
         ymo5WzRR0+JD8zuqU3vJzSM1t+r5JUhfEUn/4dlY5EMgbxX1O0Nm7RpFDbQ+ntpd3If3
         E4oo8K7bbCYbE0iADfqFgaE/Txb953bLVAQU+tZbplv8egS15rMG0hLRmTuC5K5w7Cgu
         YE9CTjxj+UxqgWePOiHda5sf5nYjuN4mCnmOdlwyi9DJZYGa0YI3xJW5loDXaUWFNIbW
         Kvuouwx2OD8WmM0lacHrKI73gnVuNfVpCiRMHL86uwjfwyKgg0pUWF7GKyR6X+/ydaua
         Iirw==
X-Forwarded-Encrypted: i=1; AJvYcCXIcJ5Yhwhm11vEK5DuHGhh3dAwF3SXuQH8e8EfcumFrP9N9WJpuTqKtinkqqfDpIhozrxYOYd78Vc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwTwpaUBUwJrMcu8qGcZPjqylTslAzArAq5239EbyUeBgM7UMzB
	xQOdaW4qAObN9Ao1p+QzGVhCwnHPsz+3C7drd8HI/JIymKsLsNOwnqL7dsD2Evby131/YZz+naQ
	dXV4=
X-Gm-Gg: ASbGncu9jUIR4t9U/3gb/uaK7w2+Z+RZRJ95hMIkYLIROFTCGRl6FyyJcMyiythA/iy
	iUk1+TDKJGs9AkPKHqkONZTlTT+poSuurWcj5nzMcdUAo47IN54GihYioyNeBBos0CqUoGcO7D1
	fwsx1k3ocQM2OJ+P/hLRTbfISUaSPwnaySPLNi0DQQdvwXSTNwtMNug2B8imlPFjsOhr9Ig2Qtq
	pfSEFHtU77Y+KTLpmHS5OHQB2i+kj7ovtO7cowUWJDS+h1/dG9eicVcS5Hy3n8kUIpGzitGKp/A
	GXggX/OJhYcIS7rEiPqnGltdni2uBN/l+0VOk5MXNKj9RZCza5I4o2h88OjdcXRV+rgU2N8wtt8
	EMMRbW0QTznvhxTT8HEMRFoJZdTFruX/kZI3iklNl5FmgGBGZkvMsncwrvMOJD9i2/cmPmhh/Wj
	GZI3potEcJznEBS7rSsg==
X-Google-Smtp-Source: AGHT+IFKCcj9Q+pZOm/XMW38YxdKv1fOdfAjaayhVPr264gvAP3yK+VcFAXwAfzPGc03TyyddDEwtw==
X-Received: by 2002:a05:6000:1886:b0:3b7:9d83:50ef with SMTP id ffacd0b85a97d-3b8d34b2a39mr1067171f8f.55.1754027970762;
        Thu, 31 Jul 2025 22:59:30 -0700 (PDT)
Message-ID: <69c7e79b-944a-432c-b86a-6cc73d94fc08@suse.com>
Date: Fri, 1 Aug 2025 07:59:23 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v3 1/3] vmx: Rewrite vpid_sync_vcpu_gva
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.1750770621.git.teddy.astie@vates.tech>
 <f92b18bd9ec6b5b83a4b8a66dea2440b65060c27.1750770621.git.teddy.astie@vates.tech>
 <edb8bd9d-e5ca-42ad-a551-b7162d5e0f80@suse.com>
 <b708c59f-353a-418a-a859-c8b0aef428eb@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: <b708c59f-353a-418a-a859-c8b0aef428eb@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 31.07.2025 18:18, Teddy Astie wrote:
> Le 31/07/2025 Ã  17:54, Jan Beulich a Ã©critÂ :
>> On 26.06.2025 16:01, Teddy Astie wrote:
>>> Rewrite this function such as it doesn't rely on goto, also change the
>>> type of "type" to match the __invvpid function call.
>>
>> While this type change is probably okay (and benign to code generation), ...
>>
>>> --- a/xen/arch/x86/include/asm/hvm/vmx/vmx.h
>>> +++ b/xen/arch/x86/include/asm/hvm/vmx/vmx.h
>>> @@ -287,10 +287,10 @@ extern uint8_t posted_intr_vector;
>>>   #define cpu_has_vmx_vpid_invvpid_single_context_retaining_global    \
>>>       (vmx_caps.vpid & VMX_VPID_INVVPID_SINGLE_CONTEXT_RETAINING_GLOBAL)
>>>   
>>> -#define INVVPID_INDIVIDUAL_ADDR                 0
>>> -#define INVVPID_SINGLE_CONTEXT                  1
>>> -#define INVVPID_ALL_CONTEXT                     2
>>> -#define INVVPID_SINGLE_CONTEXT_RETAINING_GLOBAL 3
>>> +#define INVVPID_INDIVIDUAL_ADDR                 0UL
>>> +#define INVVPID_SINGLE_CONTEXT                  1UL
>>> +#define INVVPID_ALL_CONTEXT                     2UL
>>> +#define INVVPID_SINGLE_CONTEXT_RETAINING_GLOBAL 3UL
>>
>> ... I don't follow the need for these extra adjustments. Preferably with
>> them dropped
> 
> With the type change from int to unsigned long to match __invvpid() 
> parameter, IIUC MISRA rule 7.2 requires that integer literals that are 
> used for unsigned must have the proper suffix.

No, it doesn't. Please re-read carefully what docs/misra/rules.rst says
in this regard.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 01 06:03:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Aug 2025 06:03:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1066828.1431895 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhirF-00047x-8l; Fri, 01 Aug 2025 06:03:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1066828.1431895; Fri, 01 Aug 2025 06:03:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhirF-00047q-6A; Fri, 01 Aug 2025 06:03:09 +0000
Received: by outflank-mailman (input) for mailman id 1066828;
 Fri, 01 Aug 2025 06:03:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=zIvO=2N=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uhirE-00047k-NS
 for xen-devel@lists.xenproject.org; Fri, 01 Aug 2025 06:03:08 +0000
Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com
 [2a00:1450:4864:20::429])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3171bb52-6e9d-11f0-b895-0df219b8e170;
 Fri, 01 Aug 2025 08:03:06 +0200 (CEST)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-3b79bddd604so875890f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 31 Jul 2025 23:03: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
 d9443c01a7336-241e8976a11sm34073125ad.86.2025.07.31.23.02.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 31 Jul 2025 23:03: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>
X-Inumbo-ID: 3171bb52-6e9d-11f0-b895-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754028186; x=1754632986; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=t2oy/vUHQ3NgceX5p1XREkfi7ws15n/qjJaWLZdpnhY=;
        b=A8SGs30MR1s/hpG6AYmi5vcvhAUt+mh5/fmV6AnKxBdgBsj7mtD/Iw6LVye4FKDs2h
         fgrjHA3Y4/VDOfsvoFFTovZ8Ifai+NzaB30umjMILYv6DVFattIU6NoSTINh4OFi+ZDD
         bYyPp1aKsV09o3eyJKETCd7vHrA+lEdtcJWI4nu4Q5vxdIQeREkUXQUt/lfN4Up/WSw4
         YM1Tyy9tck3/ESd5mVVUg6ohFvyriXUjPORPJUOOxoTw8dS5w85OZcljOiWPSIPvMzWT
         uJkGboJdUUCDtE+MA4u/CFad9A4ZT1D4dQaQzLcau7SV+mE3CHJe7MfFaJg9Dts1EmQn
         pIjw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754028186; x=1754632986;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=t2oy/vUHQ3NgceX5p1XREkfi7ws15n/qjJaWLZdpnhY=;
        b=IL97x1k8IWIfh+0x+iVdA8JqE+u7NGnRbmJDWBlbm00tCDZhHlk+VokE/H8xOx4xiA
         53U/ZZQ1HuaDZexV0gvGx3G5WHjTtA7jsL/vjFHVx/VBA2F1kBNgJTlbODFdFHd05q+I
         NNbqMjWk7idWUBsDw9pw/2ovlAkMEEYtNFoyIXfIitaLk1BwSxSQaRF2ga1QEDlzzh8M
         fN0OtkJrhrlMIizesUC6yHJdHJMQbkU582OR+aZw2UElnFPPQ3+rV5QSVu0ws3P4onyb
         bMufeFk8bUhgYf/wRWafEYylidAnpq+xiRfDv5rLWsZhpWq8Zp6owXkoEsY6Qb4KTkTn
         3wLw==
X-Forwarded-Encrypted: i=1; AJvYcCUA8oE2Ee8j9ejxLF+RYSGkTxrF68WagPdLS7K3hlhWnFXWRMYIYiBptwrU1wDHzGqoW0mPIPnDqvE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YynyRZzg4LM2sKMj+i/oNv2DwjQIZ3S7XCcmb+TiTCKrxh7URYT
	RX62LBMhZ2lXD1FdjXAdBXcglQ1l+Bm6H7CKJeJEZMNjOvaAfy+rRK6q/kxj+Tc3UQ==
X-Gm-Gg: ASbGncszEl55Pq2k4AFntYc8Fi+oSCuG01fuVP3em5MVczLwTDWUMyqvr59ySxFQBM8
	WLuWBl97piujpzhj6KLx8EE6QtgXj28fQNUx99YQzb5SbGXliCvnr1sUHh1coYHF+kqEmC3NXpb
	J+kU1vmb2gMWK7SADNoGvRGKFXgt1YrSn2z+eLT6ir14OdmsE3mPoQw2R3rhCZ2OawZstt2t0lL
	magyAjfyZ3Xs7RBRsC1pyyVOlqhr90Fz2lvPhDuPdcC8Dvhe1BKW8DxUzGWMudag6BHhh2fHf7O
	aPa1ukmaOTsFUNkM4AB55Csu/Q4pwTIwlD7G5aLmaMiixjklix6LkQ9lhXIBcMrciaxBq8y21tL
	3gH2qy88WIgWLLdtC4ev1u4qt8S5LfyJkRrTm6nIW7oNQCDJ96gALj+oSJdhAFEGWaBbYMHZgP8
	zbmQZvjn8=
X-Google-Smtp-Source: AGHT+IFSuQBr+ZZs8AmmvVB36WJ2E8r50DfJo5kxNHwmF1+JvqHWeSvcI8nqcO9akufYzxZ66r+tKQ==
X-Received: by 2002:adf:a1dc:0:b0:3b7:96cb:2271 with SMTP id ffacd0b85a97d-3b796cb245emr4799567f8f.37.1754028186014;
        Thu, 31 Jul 2025 23:03:06 -0700 (PDT)
Message-ID: <65e288b7-d8fe-409e-a287-69b4dc29f0c2@suse.com>
Date: Fri, 1 Aug 2025 08:02:56 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 12/16] xen/domain: introduce domain-emu.h
To: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org,
 michal.orzel@amd.com, oleksii.kurochko@gmail.com, roger.pau@citrix.com,
 sstabellini@kernel.org, dmukhin@ford.com, xen-devel@lists.xenproject.org
References: <20250624035443.344099-1-dmukhin@ford.com>
 <20250624035443.344099-13-dmukhin@ford.com>
 <33f98fe5-9b29-43e4-a87d-19eafb30f281@suse.com> <aIvYSn2ZwyWTwIzm@kraken>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aIvYSn2ZwyWTwIzm@kraken>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 31.07.2025 22:55, dmkhn@proton.me wrote:
> On Wed, Jul 09, 2025 at 04:57:44PM +0200, Jan Beulich wrote:
>> On 24.06.2025 05:56, dmkhn@proton.me wrote:
>>> @@ -458,16 +459,16 @@ struct arch_domain
>>>  } __cacheline_aligned;
>>>
>>>  #ifdef CONFIG_HVM
>>> -#define X86_EMU_LAPIC    XEN_X86_EMU_LAPIC
>>> -#define X86_EMU_HPET     XEN_X86_EMU_HPET
>>> -#define X86_EMU_PM       XEN_X86_EMU_PM
>>> -#define X86_EMU_RTC      XEN_X86_EMU_RTC
>>> -#define X86_EMU_IOAPIC   XEN_X86_EMU_IOAPIC
>>> -#define X86_EMU_PIC      XEN_X86_EMU_PIC
>>> -#define X86_EMU_VGA      XEN_X86_EMU_VGA
>>> -#define X86_EMU_IOMMU    XEN_X86_EMU_IOMMU
>>> -#define X86_EMU_USE_PIRQ XEN_X86_EMU_USE_PIRQ
>>> -#define X86_EMU_VPCI     XEN_X86_EMU_VPCI
>>
>> The old code deliberately used values from the public interface.
> 
> In next version I am building, I moved all of XEN_X86_EMU_XXX definitions as
> is to a new public header under include/public/xen-emu.h:
> 
>   https://gitlab.com/xen-project/people/dmukhin/xen/-/commit/9b0bc5ffa5710114df8523ae2aa7680b7c6f0942
> 
> That looks less invasive.
> 
> Will that work?
> 
> There should be a common header with emulation flags somewhere, since
> there will be SBSA and hwdom vUART definitions there.

Yet will there be a strict need for any constants to be identical (i.e.
not only have the same name, but also the same value) across architectures?

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 01 07:11:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Aug 2025 07:11:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1066871.1431906 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhjvA-0004Lf-03; Fri, 01 Aug 2025 07:11:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1066871.1431906; Fri, 01 Aug 2025 07: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 1uhjv9-0004LY-SB; Fri, 01 Aug 2025 07:11:15 +0000
Received: by outflank-mailman (input) for mailman id 1066871;
 Fri, 01 Aug 2025 07:11:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jpGp=2N=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1uhjv8-0004LS-OW
 for xen-devel@lists.xenproject.org; Fri, 01 Aug 2025 07:11:15 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b013a7d1-6ea6-11f0-b895-0df219b8e170;
 Fri, 01 Aug 2025 09:11:04 +0200 (CEST)
Received: from CWLP265CA0353.GBRP265.PROD.OUTLOOK.COM (2603:10a6:401:5a::29)
 by AS8PR08MB9337.eurprd08.prod.outlook.com (2603:10a6:20b:5a5::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.12; Fri, 1 Aug
 2025 07:11:01 +0000
Received: from AM3PEPF0000A78E.eurprd04.prod.outlook.com
 (2603:10a6:401:5a:cafe::fc) by CWLP265CA0353.outlook.office365.com
 (2603:10a6:401:5a::29) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.16 via Frontend Transport; Fri,
 1 Aug 2025 07:11:01 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM3PEPF0000A78E.mail.protection.outlook.com (10.167.16.117) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9009.8
 via Frontend Transport; Fri, 1 Aug 2025 07:11:00 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com (2603:10a6:10:25a::24)
 by DU0PR08MB9653.eurprd08.prod.outlook.com (2603:10a6:10:449::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.12; Fri, 1 Aug
 2025 07:10:28 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a]) by DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a%2]) with mapi id 15.20.8989.015; Fri, 1 Aug 2025
 07:10:27 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b013a7d1-6ea6-11f0-b895-0df219b8e170
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=p+GXfYzy6PSKJZo+e2ouzmtuaOfdpccth5BVwfmLqvG5YNR/fSlSM2fBrq9j8tNKuXyoo4LPv+r751WTnWIcxEqAW7Gldj+fYwBRmbyjZaooR2RUt1cmNk15QT2UpxrP6nmYpcGblx3s1phqqG2MBvC7AwxJKQEIGErB2jV5gGJBbqc8pkjYJgjU4hML/NHmbCPiw6TTjBMWMOR7PtsX2dVKKRZwVUoGnqebZ2vcIytN2WIVLDJJVhvdvwnGylrnVpGKNbJO08HUIrKSAH0u3z5wfGafDWW1hCJBKy8QxDQ37kJ+6ruRBUN6QKs/hrUTLdT3mD0wEkt32cqLP75IJQ==
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=fkzy3umRnmqtfIGARryYAc4SJikWAU+EFjxAQcqS3Qg=;
 b=NWmgzcgNG8+lB7bJqEdjLoPcBS6RGdfiE/3brtvCIsvEbkb5jbpVyGJ15Q1TMUl+o3w+v2HXLVLE8pI8wEE1jNp5TgcINlGtMFPyQw5DKFT07ztCOGIMj9J8TZ5opiDDow3S2tVDQiV/I3t75xmGn5xv3+DqIqWphlszWdrNBskWGH/vFj8Ud3FHWPBREtksfi2wu3M7cBwU6JOR02dUx5F0u55AHJdPJ4rJDmpqUFBxnR+ZRYK9Euu2/7d5BOEdIoVWN3ZpmqYOE/Qec0KP+5bVhnoBlcCzwzEQ6EyxLnbgbU1ambMX1bOd591Hf40Y9t0KGyrdfbfkeM/+NycpWQ==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=lists.xenproject.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=fkzy3umRnmqtfIGARryYAc4SJikWAU+EFjxAQcqS3Qg=;
 b=OV3zYUbJQDdaaFjN36IOWyzgHqWvV2tDr8wf4ITcmC+gggnGKgCqheUbBfXdwLjsSEF0vQyX/0wmV3BfghnRfmywWMRt0G3EWm5ySDeY9xoly+8LuD99kIzdSHLzJFJXCYFHXeIuc+Ov9e2VwmO7czF2ZhVmjOEwmotSTa8Jts4=
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=cJ7S5MT41L6slKCJJdyNo6kUHd+sVQXMN3ugvW4+Zm+A5FMlUjHwwRGwgrRa3Io0yV/NdH0qejdUjqvDL9TDWFR/z6dywqxjYUbYdWW3IWt+F5Xe52z3jZlKTpSyYKqkQJFYat8MXNs5F7d+tEfZpp453RwWaaO7lIoAn9m2RxfMBzcQqvDEMh5eaAyo8jXhbpqFh4sq+ykH2J4RdowMFz6AhPmQXRa7S2V/RA1i5TNdMSLycoc3tzAb+EWE9RTmCPhlTioZ3G0ht0fkVm4mTLw58fIxdyMzLai4C0oLG9cU/swjloYFqCi3nncFmSCjZxY7P2MHq8LJJi/w4LdzHw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fkzy3umRnmqtfIGARryYAc4SJikWAU+EFjxAQcqS3Qg=;
 b=CQveCUl7K51L5OyXaj4+Ko+KFT+zk/DsmY4WqtyZa0cpXq5SKfk1sYjYYrdoLmNlBoEZTOLSSMoEuhJOugkwMNFryLRyacJPhp+3lkzRc/jS6c5JSGHdJt7eLnjytB5vnQAMRqfhlmB+XAgZvaSlxYIPPST+WhuobNXSoarcljnB2yBJSuvM/GVRrgkLPDsGNDctu9oesTYR6XdHYjWOuUcYE+wj82rzFw3K9N8vIWvpRf0AJKP2K4tCH+fDfmZDlMPG29Fsr1NSbzCyrfsvAMYayK7+rgyY+iu/K388xIskXa71kZVpNdNpX4a53Zlnzf1OGq13a73K5KZDYOOwlA==
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=fkzy3umRnmqtfIGARryYAc4SJikWAU+EFjxAQcqS3Qg=;
 b=OV3zYUbJQDdaaFjN36IOWyzgHqWvV2tDr8wf4ITcmC+gggnGKgCqheUbBfXdwLjsSEF0vQyX/0wmV3BfghnRfmywWMRt0G3EWm5ySDeY9xoly+8LuD99kIzdSHLzJFJXCYFHXeIuc+Ov9e2VwmO7czF2ZhVmjOEwmotSTa8Jts4=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "jens.wiklander@linaro.org" <jens.wiklander@linaro.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 v7 3/6] xen/arm: ffa: Introduce VM to VM support
Thread-Topic: [PATCH v7 3/6] xen/arm: ffa: Introduce VM to VM support
Thread-Index: AQHb9xP9tgnM92Sxpk+5sdmAsJMirrRNeIKA
Date: Fri, 1 Aug 2025 07:10:27 +0000
Message-ID: <83336841-32E9-498F-8D72-13F7B07A9DB3@arm.com>
References: <cover.1752754016.git.bertrand.marquis@arm.com>
 <50224eb7cca4eaef2646ad8e33f689d912704733.1752754016.git.bertrand.marquis@arm.com>
In-Reply-To:
 <50224eb7cca4eaef2646ad8e33f689d912704733.1752754016.git.bertrand.marquis@arm.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.600.51.1.1)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB9PR08MB6588:EE_|DU0PR08MB9653:EE_|AM3PEPF0000A78E:EE_|AS8PR08MB9337:EE_
X-MS-Office365-Filtering-Correlation-Id: 348d5070-5d8a-419f-ec06-08ddd0ca91ea
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|10070799003|1800799024|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?us-ascii?Q?iliutpi+AvY3ObuvtylNLXpFWpHOungRXwwVx22eW+inUTwsdxn4KXz85Owv?=
 =?us-ascii?Q?j+dMOUgmKktsK+VX04koaQsXYXuOuVMVb9M1JghTsDEJtItJwyGXl28zPFIw?=
 =?us-ascii?Q?p/3DoCEWkyXNEvK5h7ujmHFKNyTAr6HWWahF2gNxfrPR25ZNzwLrfJGc+o1R?=
 =?us-ascii?Q?wYyknlJIb/SDJ6aIqMn5VAUXu63ZUfUYagzd0GGrAxypf9nYzgn3ctDUEGL/?=
 =?us-ascii?Q?9RvmrmDAqDtMsK/gqPky58Qp2P5anabhj5trfXlkBWXz5p625cttd1hUjPHk?=
 =?us-ascii?Q?cOksqr7/G3fIHgTEq/5TXJL7wm9MC6x4NdgpWVQkSm8o8m3YS4Fa/QfbIqwg?=
 =?us-ascii?Q?WZ8ZwbVmBuom3eRV+emAzjZVNcp1J9lXbYxcPu3Vew4LWFQla7Rv8G28ARU1?=
 =?us-ascii?Q?s+EPUzKBORyo01PaoxvnSlXG1qZ+37dik3xbRBAYUbBJUWB/TphLWd6CZb94?=
 =?us-ascii?Q?FxvBtvY4muejQcOxv+BbcW9rBK9FIcvk22EB6ZUZItnmz1WWCmWpPpkdRy1v?=
 =?us-ascii?Q?lnruVupao48KCJAsRdMrK1D8vkqVQ8kDSWeOL0ktlK6reMT/dVE2QaekMwGa?=
 =?us-ascii?Q?KQGMhYtmylcU+Aty0eniN3stLxAW4+qX7cRWKvZjv4b/cgKS2PMRHch1OTTr?=
 =?us-ascii?Q?vGHA955kHgHWnCXRI3KqMvyjK+5AYVCbljX3sKra0vB66qof0OxxBqHvDvzz?=
 =?us-ascii?Q?R6IJkXKW9W5lCJfgNUWhrxen1bY//PvFHdo+KYQlXAb8EhNzNBpILlkVeB5T?=
 =?us-ascii?Q?sCE6WRhbFw4wuWiOnqq5jIvpfW1ZapLh17UO4dIlwvSEf92Vnlb1OicH+HFh?=
 =?us-ascii?Q?2q3UKPryc9jCp1NiSvQmRjs6SajpYJmKd2tIa2XJRn6P+7jUux12gnhxlac7?=
 =?us-ascii?Q?eyBgxcDzDdAwoTMWdB+g7mYNmyDBcARIkvpeKbWhlswMChtUJ0Prhai60r8x?=
 =?us-ascii?Q?00SSdO4bAKZDzUU/KF7ddb1uS9+60v96GuXeMoPeHbs8tNr6DGYkgZq9R9Jf?=
 =?us-ascii?Q?qJm/GPzLSw9QGy+aGWGZlchcgNYnXnLT8yUqWwRdstN3RBl3WkvZRUE8m5Fg?=
 =?us-ascii?Q?8erlLjsItSx2vW4qVBqFlVJntlICCaogC08cArSc4y+NwD831uI+gQ5ib1LO?=
 =?us-ascii?Q?DHVW0Fetuo9n0987LPxojzd7cIrBWpm5lLcfCJn276aa0/EeQxCwR+/gM46N?=
 =?us-ascii?Q?K11Vqthb8XwFZVOTTcoG3KjJq6cFEbjALIn5VeEV/7hBZStJ5OUseu3Mo1lX?=
 =?us-ascii?Q?irxqtEmxTJ2y0fdZoao1oVyxcJ65DlkHi1bsEpJw9srdjwztQzTMSvUHianU?=
 =?us-ascii?Q?/axOk7g6i0ZM+moBzfvNGTgB4139ytpd+u+6mhsDgldSIyhE1Wq3Tl/VqGKO?=
 =?us-ascii?Q?ilKi0AZzBI92dEDChbV8Qlw3h7+qd+BzeN/v9K0DjN43TINLvx3uoYDCQ7+W?=
 =?us-ascii?Q?+lKuttBUTtnSzq0aE7Oh0JC/Ggim4lYuYfHnou4QSmNM8KzvqcoK4TYP5hZP?=
 =?us-ascii?Q?ueAwH8qQ+CyIRGM=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR08MB6588.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(10070799003)(1800799024)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <89809D960E9CD34B9FC38AAE487B887F@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB9653
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM3PEPF0000A78E.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	3a011ef5-b17d-4abe-2598-08ddd0ca7e5e
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|36860700013|35042699022|82310400026|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?FPubN1RT7lDyH7qj7jpA+h6AfX7E0qxEoXY+fUlEx8d93ROzYVcKCgwOhlt4?=
 =?us-ascii?Q?xIsqtEiXsf4z/9JX1cBz2zXllhNS/7iHMw3ffvPHxnniBPtNXydzSo6+gSPK?=
 =?us-ascii?Q?8DFsgkVyysNhle3Rg37drWtJCEbARFwFUY7IcaNFYGeetUHiplwvma2brxyo?=
 =?us-ascii?Q?C5O+HEeuREPCDcjDRPUb2GSmXNBJrj06XI3RAJiFS9c+ur09qnwCVw7w72zj?=
 =?us-ascii?Q?xIqhfb7KLalNJUyrIR2phORsGalZEsb61RdJphWh4Uvrqluij1BUKJBx8Qxt?=
 =?us-ascii?Q?ppZL0Z9gE1Kqe6M83Q5K2itBej30tcIT63a03EQFQdmVijrVNL50osOziowt?=
 =?us-ascii?Q?uYc9f/tckDnI54nGLTrbDXR87MEFoKiVJYGuvFCw62QPgxIhZCsmy/aCEmP/?=
 =?us-ascii?Q?0hnKkTilWVvv5ZWOCfI/Qvcvr2bRi3RBBnJcO9OKDOWTLQosgWVUOEicFDf1?=
 =?us-ascii?Q?mcnBO+7fU0OFzfO26Efz/jMTUTyTANWQ6cm5Ob8KK6wrn8CbIPNBc7Qzsk+k?=
 =?us-ascii?Q?bX8kcE0EZD02xsYT0xxEiyJ6IE5kXwWnx8pQJVnWsDGKxkUhlYp4LLPv7cc8?=
 =?us-ascii?Q?P3rrArK5xul+aRXaNu3z53exkniwc12G0/P8QuopMh6vZYBrwCLlflLG6u64?=
 =?us-ascii?Q?KanRUGarDZmHiRbNVqowE2HJDTbH6e07tqQtHvDs6BcD4PTqsh5BJzxQ0BVH?=
 =?us-ascii?Q?GiulvpunxrQjurn3BV6SAj1doV5KBeMjqFBNm//Xes6N7t48OwwnF21+9VSv?=
 =?us-ascii?Q?4qK6XP+sKM3pZeJ+McIj/mLrE2vKOFwHxtpeE8Ww1LvXq2yrAmFzm323Usvo?=
 =?us-ascii?Q?r834hOvY5rp+Nk3RqxzFvBb9zKDzhtAFoqmaRyahDSQfYd4pkACFV53NBqsQ?=
 =?us-ascii?Q?RvGdvFTXKt6OqTfyILtEAAzbKrP4723w4E6vQje3XlpGKh7ujktfubJNae9i?=
 =?us-ascii?Q?DiJDqVW2FbbFc9q3+NlSAQ1QNykwFXFvz2Vt1rUSdg22XRYzgQHcbUAfZodu?=
 =?us-ascii?Q?pPTySUVQTAWM8LDvTQDV8HffByLbuUwalJqBUE0uiYG+CBSrE2JHBdw/lcHy?=
 =?us-ascii?Q?CX+VFrGrAooKrHLURtsXxzHnbwaQIkAMfG/t25C0Lb1Vb6/PsCZgINlC7g0i?=
 =?us-ascii?Q?QvQhLjI3RUIJYLfz1Gb+cBmFdxbaDxaSSbgTJ4IMCL86ReUM4QjRNWIWcsge?=
 =?us-ascii?Q?tI2MQnrMVbN4WFAOMNXI5kBG1zFrouXbDK0e0ztP9QZtjfPXFbXJ9VMXWgnY?=
 =?us-ascii?Q?znyGRySBIcrk5SsINYSghi38bMBlcEAq7WkT9pX1ns3vJr1VZwVSuu5RZEp6?=
 =?us-ascii?Q?RBP7aWq5oQ7+vMmy+hm9fMOJNbcBxlQrRHvkV4+U60COmmu4ysZovPiJ5ZoM?=
 =?us-ascii?Q?P6xpfQDSInIfFm5OMJzzwgYtBA7a8hg9bOsy90Ru8Q3pSPePB095PDjF+DnD?=
 =?us-ascii?Q?z+FaaemY1ShohsTVHK7FYCQDYEF+EcRJs7iPTcela2akl5OXBFcrMbHnp3j3?=
 =?us-ascii?Q?ZwzIVIoLJ0s2xVu1MiAAtJxK5f5PVWGiHg7eDLtv9FtlI0597f8wPGbv/w?=
 =?us-ascii?Q?=3D=3D?=
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)(36860700013)(35042699022)(82310400026)(376014)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Aug 2025 07:11:00.5512
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 348d5070-5d8a-419f-ec06-08ddd0ca91ea
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:
	AM3PEPF0000A78E.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB9337

Hi,

A gentle ping for someone to review this :-)

Thanks
Bertrand

> On 17 Jul 2025, at 14:11, Bertrand Marquis <Bertrand.Marquis@arm.com> wro=
te:
>=20
> Create a CONFIG_FFA_VM_TO_VM parameter to activate FFA communication
> between VMs.
> When activated list VMs in the system with FF-A support in part_info_get.
>=20
> When VM to VM is activated, Xen will be tainted as Insecure and a
> message is displayed to the user during the boot as there is no
> filtering of VMs in FF-A so any VM can communicate or see any other VM
> in the system.
>=20
> WARNING: There is no filtering for now and all VMs are listed !!
>=20
> This patch is reorganizing the ffa_ctx structure to make clear which
> lock is protecting what parts.
>=20
> This patch is introducing a chain list of the ffa_ctx with a FFA Version
> negociated allowing to create the partinfo results for VMs in parallel
> by using rwlock which only ensure addition/removal of entries are
> protected.
>=20
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
> Changes in v7:
> - protect ffa_ctx list with a rw lock to allow several partinfo_get in
>  parallel but protect adding/removing entries.
> Changes in v6:
> - remove ACCESS_ONCE for guest_vers access and take the context lock
>  before modifying it
> - move guest_vers in context declaration to fields protected by the
>  context lock and add a comment to state that lock in only needed when
>  modifying it
> Changes in v5:
> - remove invalid comment about 1.1 firmware support
> - rename variables from d and dom to curr_d and dest_d (Julien)
> - add a TODO in the code for potential holding for long of the CPU
>  (Julien)
> - use an atomic global variable to store the number of VMs instead of
>  recomputing the value each time (Julien)
> - add partinfo information in ffa_ctx (id, cpus and 64bit) and create a
>  chain list of ctx. Use this chain list to create the partinfo result
>  without holding a global lock to prevent concurrency issues.
> - Move some changes in a preparation patch modifying partinfo for sps to
>  reduce this patch size and make the review easier
> Changes in v4:
> - properly handle SPMC version 1.0 header size case in partinfo_get
> - switch to local counting variables instead of *pointer +=3D 1 form
> - coding style issue with missing spaces in if ()
> Changes in v3:
> - break partinfo_get in several sub functions to make the implementation
>  easier to understand and lock handling easier
> - rework implementation to check size along the way and prevent previous
>  implementation limits which had to check that the number of VMs or SPs
>  did not change
> - taint Xen as INSECURE when VM to VM is enabled
> Changes in v2:
> - Switch ifdef to IS_ENABLED
> - dom was not switched to d as requested by Jan because there is already
>  a variable d pointing to the current domain and it must not be
>  shadowed.
> ---
> xen/arch/arm/tee/Kconfig        |  11 +++
> xen/arch/arm/tee/ffa.c          |  47 +++++++++++++
> xen/arch/arm/tee/ffa_partinfo.c | 100 ++++++++++++++++++++++++---
> xen/arch/arm/tee/ffa_private.h  | 117 ++++++++++++++++++++++++++------
> 4 files changed, 245 insertions(+), 30 deletions(-)
>=20
> diff --git a/xen/arch/arm/tee/Kconfig b/xen/arch/arm/tee/Kconfig
> index c5b0f88d7522..88a4c4c99154 100644
> --- a/xen/arch/arm/tee/Kconfig
> +++ b/xen/arch/arm/tee/Kconfig
> @@ -28,5 +28,16 @@ config FFA
>=20
>  [1] https://developer.arm.com/documentation/den0077/latest
>=20
> +config FFA_VM_TO_VM
> +    bool "Enable FF-A between VMs (UNSUPPORTED)" if UNSUPPORTED
> +    default n
> +    depends on FFA
> +    help
> +      This option enables to use FF-A between VMs.
> +      This is experimental and there is no access control so any
> +      guest can communicate with any other guest.
> +
> +      If unsure, say N.
> +
> endmenu
>=20
> diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
> index 3bbdd7168a6b..be71eda4869f 100644
> --- a/xen/arch/arm/tee/ffa.c
> +++ b/xen/arch/arm/tee/ffa.c
> @@ -118,6 +118,13 @@ void *ffa_tx __read_mostly;
> DEFINE_SPINLOCK(ffa_rx_buffer_lock);
> DEFINE_SPINLOCK(ffa_tx_buffer_lock);
>=20
> +struct list_head ffa_ctx_head;
> +/* RW Lock to protect addition/removal and reading in ffa_ctx_head */
> +rwlock_t ffa_ctx_list_rwlock;
> +
> +#ifdef CONFIG_FFA_VM_TO_VM
> +atomic_t ffa_vm_count;
> +#endif
>=20
> /* Used to track domains that could not be torn down immediately. */
> static struct timer ffa_teardown_timer;
> @@ -151,6 +158,7 @@ static void handle_version(struct cpu_user_regs *regs=
)
>     struct domain *d =3D current->domain;
>     struct ffa_ctx *ctx =3D d->arch.tee;
>     uint32_t vers =3D get_user_reg(regs, 1);
> +    uint32_t old_vers;
>=20
>     /*
>      * Guest will use the version it requested if it is our major and min=
or
> @@ -160,10 +168,23 @@ static void handle_version(struct cpu_user_regs *re=
gs)
>      */
>     if ( FFA_VERSION_MAJOR(vers) =3D=3D FFA_MY_VERSION_MAJOR )
>     {
> +        spin_lock(&ctx->lock);
> +        old_vers =3D ctx->guest_vers;
> +
>         if ( FFA_VERSION_MINOR(vers) > FFA_MY_VERSION_MINOR )
>             ctx->guest_vers =3D FFA_MY_VERSION;
>         else
>             ctx->guest_vers =3D vers;
> +        spin_unlock(&ctx->lock);
> +
> +        if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) && !old_vers )
> +        {
> +            /* One more VM with FF-A support available */
> +            inc_ffa_vm_count();
> +            write_lock(&ffa_ctx_list_rwlock);
> +            list_add_tail(&ctx->ctx_list, &ffa_ctx_head);
> +            write_unlock(&ffa_ctx_list_rwlock);
> +        }
>     }
>     ffa_set_regs(regs, FFA_MY_VERSION, 0, 0, 0, 0, 0, 0, 0);
> }
> @@ -345,6 +366,10 @@ static int ffa_domain_init(struct domain *d)
>     ctx->teardown_d =3D d;
>     INIT_LIST_HEAD(&ctx->shm_list);
>=20
> +    ctx->ffa_id =3D ffa_get_vm_id(d);
> +    ctx->num_vcpus =3D d->max_vcpus;
> +    ctx->is_64bit =3D is_64bit_domain(d);
> +
>     /*
>      * ffa_domain_teardown() will be called if ffa_domain_init() returns =
an
>      * error, so no need for cleanup in this function.
> @@ -421,6 +446,14 @@ static int ffa_domain_teardown(struct domain *d)
>     if ( !ctx )
>         return 0;
>=20
> +    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) && ctx->guest_vers )
> +    {
> +        dec_ffa_vm_count();
> +        write_lock(&ffa_ctx_list_rwlock);
> +        list_del(&ctx->ctx_list);
> +        write_unlock(&ffa_ctx_list_rwlock);
> +    }
> +
>     ffa_rxtx_domain_destroy(d);
>     ffa_notif_domain_destroy(d);
>=20
> @@ -464,6 +497,18 @@ static bool ffa_probe(void)
>     printk(XENLOG_INFO "ARM FF-A Mediator version %u.%u\n",
>            FFA_MY_VERSION_MAJOR, FFA_MY_VERSION_MINOR);
>=20
> +    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
> +    {
> +        /*
> +         * When FFA VM to VM is enabled, the current implementation does=
 not
> +         * offer any way to limit which VM can communicate with which VM=
 using
> +         * FF-A.
> +         * Signal this in the xen console and taint the system as insecu=
re.
> +         * TODO: Introduce a solution to limit what a VM can do through =
FFA.
> +         */
> +        printk(XENLOG_ERR "ffa: VM to VM is enabled, system is insecure =
!!\n");
> +        add_taint(TAINT_MACHINE_INSECURE);
> +    }
>     /*
>      * psci_init_smccc() updates this value with what's reported by EL-3
>      * or secure world.
> @@ -538,6 +583,8 @@ static bool ffa_probe(void)
>=20
>     ffa_notif_init();
>     INIT_LIST_HEAD(&ffa_teardown_head);
> +    INIT_LIST_HEAD(&ffa_ctx_head);
> +    rwlock_init(&ffa_ctx_list_rwlock);
>     init_timer(&ffa_teardown_timer, ffa_teardown_timer_callback, NULL, 0)=
;
>=20
>     return true;
> diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_parti=
nfo.c
> index dfa0b23eaf38..fa56b1587e3b 100644
> --- a/xen/arch/arm/tee/ffa_partinfo.c
> +++ b/xen/arch/arm/tee/ffa_partinfo.c
> @@ -150,6 +150,73 @@ out:
>     return ret;
> }
>=20
> +static int32_t ffa_get_vm_partinfo(uint32_t *vm_count, void *dst_buf,
> +                                   void *end_buf, uint32_t dst_size)
> +{
> +    struct ffa_ctx *curr_ctx =3D current->domain->arch.tee;
> +    struct ffa_ctx *dest_ctx;
> +    uint32_t count =3D 0;
> +    int32_t ret =3D FFA_RET_OK;
> +
> +    /*
> +     * There could potentially be a lot of VMs in the system and we coul=
d
> +     * hold the CPU for long here.
> +     * Right now there is no solution in FF-A specification to split
> +     * the work in this case.
> +     * TODO: Check how we could delay the work or have preemption checks=
.
> +     */
> +    read_lock(&ffa_ctx_list_rwlock);
> +    list_for_each_entry(dest_ctx, &ffa_ctx_head, ctx_list)
> +    {
> +        /*
> +         * Do not include an entry for the caller VM as the spec is not
> +         * clearly mandating it and it is not supported by Linux.
> +         */
> +        if ( dest_ctx !=3D curr_ctx )
> +        {
> +            /*
> +             * We do not have UUID info for VMs so use
> +             * the 1.0 structure so that we set UUIDs to
> +             * zero using memset
> +             */
> +            struct ffa_partition_info_1_0 info;
> +
> +            if  ( dst_buf > (end_buf - dst_size) )
> +            {
> +                ret =3D FFA_RET_NO_MEMORY;
> +                goto out;
> +            }
> +
> +            /*
> +             * Context might has been removed since we go it or being re=
moved
> +             * right now so we might return information for a VM not exi=
sting
> +             * anymore. This is acceptable as we return a view of the sy=
stem
> +             * which could change at any time.
> +             */
> +            info.id =3D dest_ctx->ffa_id;
> +            info.execution_context =3D dest_ctx->num_vcpus;
> +            info.partition_properties =3D FFA_PART_VM_PROP;
> +            if ( dest_ctx->is_64bit )
> +                info.partition_properties |=3D FFA_PART_PROP_AARCH64_STA=
TE;
> +
> +            memcpy(dst_buf, &info, MIN(sizeof(info), dst_size));
> +
> +            if ( dst_size > sizeof(info) )
> +                memset(dst_buf + sizeof(info), 0,
> +                       dst_size - sizeof(info));
> +
> +            dst_buf +=3D dst_size;
> +            count++;
> +        }
> +    }
> +    *vm_count =3D count;
> +
> +out:
> +    read_unlock(&ffa_ctx_list_rwlock);
> +
> +    return ret;
> +}
> +
> void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
> {
>     int32_t ret =3D FFA_RET_OK;
> @@ -164,7 +231,7 @@ void ffa_handle_partition_info_get(struct cpu_user_re=
gs *regs)
>     };
>     uint32_t dst_size =3D 0;
>     void *dst_buf, *end_buf;
> -    uint32_t ffa_sp_count =3D 0;
> +    uint32_t ffa_vm_count =3D 0, ffa_sp_count =3D 0;
>=20
>     /*
>      * If the guest is v1.0, he does not get back the entry size so we mu=
st
> @@ -191,15 +258,18 @@ void ffa_handle_partition_info_get(struct cpu_user_=
regs *regs)
>         }
>=20
>         if ( ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) )
> +        {
>             ret =3D ffa_get_sp_count(uuid, &ffa_sp_count);
> +            if ( ret )
> +                goto out;
> +        }
>=20
> -        goto out;
> -    }
> +        /*
> +         * Do not count the caller VM as the spec is not clearly mandati=
ng it
> +         * and it is not supported by Linux.
> +         */
> +        ffa_vm_count =3D get_ffa_vm_count() - 1;
>=20
> -    if ( !ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) )
> -    {
> -        /* Just give an empty partition list to the caller */
> -        ret =3D FFA_RET_OK;
>         goto out;
>     }
>=20
> @@ -224,9 +294,19 @@ void ffa_handle_partition_info_get(struct cpu_user_r=
egs *regs)
>         goto out_rx_release;
>     }
>=20
> -    ret =3D ffa_get_sp_partinfo(uuid, &ffa_sp_count, dst_buf, end_buf,
> -                              dst_size);
> +    if ( ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) )
> +    {
> +        ret =3D ffa_get_sp_partinfo(uuid, &ffa_sp_count, dst_buf, end_bu=
f,
> +                                  dst_size);
> +
> +        if ( ret )
> +            goto out_rx_release;
> +
> +        dst_buf +=3D ffa_sp_count * dst_size;
> +    }
>=20
> +    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
> +        ret =3D ffa_get_vm_partinfo(&ffa_vm_count, dst_buf, end_buf, dst=
_size);
>=20
> out_rx_release:
>     if ( ret )
> @@ -235,7 +315,7 @@ out:
>     if ( ret )
>         ffa_set_regs_error(regs, ret);
>     else
> -        ffa_set_regs_success(regs, ffa_sp_count, dst_size);
> +        ffa_set_regs_success(regs, ffa_sp_count + ffa_vm_count, dst_size=
);
> }
>=20
> static int32_t ffa_direct_req_send_vm(uint16_t sp_id, uint16_t vm_id,
> diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_privat=
e.h
> index 0a9c1082db28..1a1dcabcdc28 100644
> --- a/xen/arch/arm/tee/ffa_private.h
> +++ b/xen/arch/arm/tee/ffa_private.h
> @@ -195,6 +195,18 @@
>  */
> #define FFA_PARTITION_INFO_GET_COUNT_FLAG BIT(0, U)
>=20
> +/*
> + * Partition properties we give for a normal world VM:
> + * - can send direct message but not receive them
> + * - can handle indirect messages
> + * - can receive notifications
> + * 32/64 bit flag is set depending on the VM
> + */
> +#define FFA_PART_VM_PROP    (FFA_PART_PROP_DIRECT_REQ_SEND | \
> +                             FFA_PART_PROP_INDIRECT_MSGS | \
> +                             FFA_PART_PROP_RECV_NOTIF | \
> +                             FFA_PART_PROP_IS_PE_ID)
> +
> /* Flags used in calls to FFA_NOTIFICATION_GET interface  */
> #define FFA_NOTIF_FLAG_BITMAP_SP        BIT(0, U)
> #define FFA_NOTIF_FLAG_BITMAP_VM        BIT(1, U)
> @@ -297,36 +309,72 @@ struct ffa_ctx_notif {
> };
>=20
> struct ffa_ctx {
> -    void *rx;
> -    const void *tx;
> -    struct page_info *rx_pg;
> -    struct page_info *tx_pg;
> +    /*
> +     * Chain list of all FF-A contexts.
> +     * As we might have several read from the list of context through pa=
rallel
> +     * partinfo_get but fewer additions/removal as those happen only dur=
ing a
> +     * version negociation or guest shutdown, access to this list is pro=
tected
> +     * through a rwlock (addition/removal with write lock, reading throu=
gh a
> +     * read lock).
> +     */
> +    struct list_head ctx_list; /* chain list of all FF-A contexts */
> +
> +    /*
> +     * Data access unlocked (mainly for part_info_get in VM to VM).
> +     * Those should be set before the ctx is added in the list.
> +     */
> +    /* FF-A Endpoint ID */
> +    uint16_t ffa_id;
> +    uint16_t num_vcpus;
> +    bool is_64bit;
> +
> +    /*
> +     * Global data accessed atomically or using ACCES_ONCE.
> +     */
> +    struct ffa_ctx_notif notif;
> +
> +    /*
> +     * Global data accessed with lock locked.
> +     */
> +    spinlock_t lock;
> +    /*
> +     * FF-A version negociated by the guest, only modifications to
> +     * this field are done with the lock held as this is expected to
> +     * be done once at init by a guest.
> +     */
> +    uint32_t guest_vers;
>     /* Number of 4kB pages in each of rx/rx_pg and tx/tx_pg */
>     unsigned int page_count;
> -    /* FF-A version used by the guest */
> -    uint32_t guest_vers;
> -    bool rx_is_free;
> -    /* Used shared memory objects, struct ffa_shm_mem */
> -    struct list_head shm_list;
>     /* Number of allocated shared memory object */
>     unsigned int shm_count;
> -    struct ffa_ctx_notif notif;
> +    /* Used shared memory objects, struct ffa_shm_mem */
> +    struct list_head shm_list;
> +
>     /*
> -     * tx_lock is used to serialize access to tx
> -     * rx_lock is used to serialize access to rx_is_free
> -     * lock is used for the rest in this struct
> +     * Rx buffer, accessed with rx_lock locked.
> +     * rx_is_free is used to serialize access.
>      */
> -    spinlock_t tx_lock;
>     spinlock_t rx_lock;
> -    spinlock_t lock;
> -    /* Used if domain can't be torn down immediately */
> +    bool rx_is_free;
> +    void *rx;
> +    struct page_info *rx_pg;
> +
> +    /*
> +     * Tx buffer, access with tx_lock locked.
> +     */
> +    spinlock_t tx_lock;
> +    const void *tx;
> +    struct page_info *tx_pg;
> +
> +
> +    /*
> +     * Domain teardown handling if data shared or used by other domains
> +     * do not allow to teardown the domain immediately.
> +     */
>     struct domain *teardown_d;
>     struct list_head teardown_list;
>     s_time_t teardown_expire;
> -    /*
> -     * Used for ffa_domain_teardown() to keep track of which SPs should =
be
> -     * notified that this guest is being destroyed.
> -     */
> +    /* Keep track of SPs that should be notified of VM destruction */
>     unsigned long *vm_destroy_bitmap;
> };
>=20
> @@ -336,6 +384,12 @@ extern spinlock_t ffa_rx_buffer_lock;
> extern spinlock_t ffa_tx_buffer_lock;
> extern DECLARE_BITMAP(ffa_fw_abi_supported, FFA_ABI_BITMAP_SIZE);
>=20
> +extern struct list_head ffa_ctx_head;
> +extern rwlock_t ffa_ctx_list_rwlock;
> +#ifdef CONFIG_FFA_VM_TO_VM
> +extern atomic_t ffa_vm_count;
> +#endif
> +
> bool ffa_shm_domain_destroy(struct domain *d);
> void ffa_handle_mem_share(struct cpu_user_regs *regs);
> int ffa_handle_mem_reclaim(uint64_t handle, uint32_t flags);
> @@ -368,6 +422,29 @@ int ffa_handle_notification_set(struct cpu_user_regs=
 *regs);
> void ffa_handle_msg_send_direct_req(struct cpu_user_regs *regs, uint32_t =
fid);
> int32_t ffa_handle_msg_send2(struct cpu_user_regs *regs);
>=20
> +#ifdef CONFIG_FFA_VM_TO_VM
> +static inline uint16_t get_ffa_vm_count(void)
> +{
> +    return atomic_read(&ffa_vm_count);
> +}
> +
> +static inline void inc_ffa_vm_count(void)
> +{
> +    atomic_inc(&ffa_vm_count);
> +}
> +
> +static inline void dec_ffa_vm_count(void)
> +{
> +    ASSERT(atomic_read(&ffa_vm_count) > 0);
> +    atomic_dec(&ffa_vm_count);
> +}
> +#else
> +/* Only count the caller VM */
> +#define get_ffa_vm_count()  ((uint16_t)1UL)
> +#define inc_ffa_vm_count()  do {} while(0)
> +#define dec_ffa_vm_count()  do {} while(0)
> +#endif
> +
> static inline uint16_t ffa_get_vm_id(const struct domain *d)
> {
>     /* +1 since 0 is reserved for the hypervisor in FF-A */
> --=20
> 2.47.1
>=20
>=20



From xen-devel-bounces@lists.xenproject.org Fri Aug 01 07:11:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Aug 2025 07:11:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1066875.1431917 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhjvc-0004kL-Bx; Fri, 01 Aug 2025 07:11:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1066875.1431917; Fri, 01 Aug 2025 07:11: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 1uhjvc-0004kE-7K; Fri, 01 Aug 2025 07:11:44 +0000
Received: by outflank-mailman (input) for mailman id 1066875;
 Fri, 01 Aug 2025 07:11:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jpGp=2N=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1uhjva-0004LS-N4
 for xen-devel@lists.xenproject.org; Fri, 01 Aug 2025 07:11:42 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c5b914b1-6ea6-11f0-b895-0df219b8e170;
 Fri, 01 Aug 2025 09:11:41 +0200 (CEST)
Received: from AM6P192CA0073.EURP192.PROD.OUTLOOK.COM (2603:10a6:209:8d::14)
 by DB9PR08MB6377.eurprd08.prod.outlook.com (2603:10a6:10:259::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.16; Fri, 1 Aug
 2025 07:11:27 +0000
Received: from AMS1EPF00000047.eurprd04.prod.outlook.com
 (2603:10a6:209:8d:cafe::d9) by AM6P192CA0073.outlook.office365.com
 (2603:10a6:209:8d::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.16 via Frontend Transport; Fri,
 1 Aug 2025 07:11:27 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS1EPF00000047.mail.protection.outlook.com (10.167.16.135) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9009.8
 via Frontend Transport; Fri, 1 Aug 2025 07:11:26 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com (2603:10a6:10:25a::24)
 by DU0PR08MB9653.eurprd08.prod.outlook.com (2603:10a6:10:449::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.12; Fri, 1 Aug
 2025 07:10:54 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a]) by DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a%2]) with mapi id 15.20.8989.015; Fri, 1 Aug 2025
 07:10: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>
X-Inumbo-ID: c5b914b1-6ea6-11f0-b895-0df219b8e170
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=c5kCaFbIMkM5lYLK6rZNBZZATg0cQq4WY6qvshTYKOCY4rN7FnoSAfB0hoLJSlKWzbPB5bjPwGF7Nim0YXvoOWNaWq1kX/gK3ecgnBCOi5X/HM1F/JgSVPdwSquwj8WfBLFns4S+6X1fmzWbD32HNY55d2X/gBkF4NSsOrPeAbWNA67eUkiYdtxSbux3E02K0jYmV7vUyqGtBiFbRG22nLc4MiVhCMkIRkKK+BotGjuyLYQDfKkKrbn3Vft4FASVWm/yJt/5n303Yl3nOBRGhUWuYcB1j5SX0QmR5I0cM8PSgsbXX2rb+5Yy/qDiA9fAtj38Hy8ki55yCscyghoj7Q==
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=ALOs//xUM8fOs/AdT4f1GGnMIeqL+0xTf/QhGePVeE4=;
 b=Tkf30MOEbxSYP0hWfgucquPEmDBLh2oFGcny+YHwaFXIM6AZjOXFPBwMFqKnz/EZt8bOT9G2f9Ftk5s/UZ5SHrfPwYpQzqkJ1SkGKkvGmS7+NlFc0NAp/JpA3IETc/hVunWtcQHJWisUMtTYVyP7AwgoDZqgfxt271f7bZKRDX21yhmDDxk3uchhPNkF+jphy3EGOXSCnnQLQzbMls2yM9kMemzj6t+fXvyg4X01Rs5JwB/j531c1jkLTPI5onExIv04hk5RmqicgxZehfvOm7SLrxF7Xg0hFBvPcdQOk0stJMGWU/aXh6UlQ0Nb+JSRAHxkUrfyIr2FoKFluAyTzQ==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=lists.xenproject.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=ALOs//xUM8fOs/AdT4f1GGnMIeqL+0xTf/QhGePVeE4=;
 b=FOZNiMRnYY5M1Fl6XboXT1WthBG4SVUYu+ZoRw8kpJWlG1XmzU7T3oSDJW5qDQXJIM1ZKEX4vYJl3tnNQbNXU2zAMNvT3b/SNTiY43H5cXn4KN3OUtHDcuhqguHgwpalY7heYIbAkJf+5fkdct80iV7ooRN1AsxvvVMIQgOETmM=
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=RnZYnHjZWc+BNQoldV5fVhrQuf6XrR7MkauN2d8X/z2Kg0t6x58abeg5gYr6+zRJdq+4vibz9GRcXRxFJbAnG6AN95B22YipX+Dpv/VjN2vcoxqyztDOiA+d3xqEt4WZ/5Tag9DEgdZWtdkpyYm0aIGGce89yIKCcbYpXJpeo7q9aSE32k2zU6RWw/9UyFWDG9AzCTJrQc/6sTNNlWiP1FSuDs3ULSe1YVDS38kl3HtzK3jQykI3TPp4E4wnQHUFyNec6/9FSzgETco/y2p/dBFmLoJRnL3r24S3edX/FImkSk6bA/jqiyoGkGAlAC1arto6HmfPluZHoQ0yfhCRhw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ALOs//xUM8fOs/AdT4f1GGnMIeqL+0xTf/QhGePVeE4=;
 b=aRcEVH+eTDh30/2BCear2LHhVImuJFZ9V+2K/zE7JBvsXGGFFELU8DdU2jyOKEMGM8bsU2Lqd4jKYdT2g9z/AKa5hcseWXE5of8d6LTzUy8RVVNVkIW6lIbYIk+IbefhLAnO15yOjYj2gvG4m9T6rSyXPUAVpyDLShMFx7+aJTCtlw+iutRjZdpm3ZYtqIax2ZYQY7y0/NOqFnHr6aHI8KmqFb0PS8olE8XwPx26h7Nlcl3HonOyId+9rsjgBTyCp5NchReifab1OLVN+wDjBrbFfBucR0S0v5Kcle8S/lqIAt/N9Pzgz0uAbsosIHitxo+moJ78SMEBce8yAedpiw==
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=ALOs//xUM8fOs/AdT4f1GGnMIeqL+0xTf/QhGePVeE4=;
 b=FOZNiMRnYY5M1Fl6XboXT1WthBG4SVUYu+ZoRw8kpJWlG1XmzU7T3oSDJW5qDQXJIM1ZKEX4vYJl3tnNQbNXU2zAMNvT3b/SNTiY43H5cXn4KN3OUtHDcuhqguHgwpalY7heYIbAkJf+5fkdct80iV7ooRN1AsxvvVMIQgOETmM=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "jens.wiklander@linaro.org" <jens.wiklander@linaro.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 v7 6/6] xen/arm: ffa: Enable VM to VM without firmware
Thread-Topic: [PATCH v7 6/6] xen/arm: ffa: Enable VM to VM without firmware
Thread-Index: AQHb9xP7T/VoLAfGvk2gcX5wpv2f7LRNeKMA
Date: Fri, 1 Aug 2025 07:10:54 +0000
Message-ID: <A9B4FBBC-1FFE-4473-AB46-FE04C997A515@arm.com>
References: <cover.1752754016.git.bertrand.marquis@arm.com>
 <9ed199ef3be4b6dc665f19f96ba4063c61ccbf00.1752754016.git.bertrand.marquis@arm.com>
In-Reply-To:
 <9ed199ef3be4b6dc665f19f96ba4063c61ccbf00.1752754016.git.bertrand.marquis@arm.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.600.51.1.1)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB9PR08MB6588:EE_|DU0PR08MB9653:EE_|AMS1EPF00000047:EE_|DB9PR08MB6377:EE_
X-MS-Office365-Filtering-Correlation-Id: a7b7b228-0210-48e9-cea5-08ddd0caa13e
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|10070799003|1800799024|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?us-ascii?Q?cCyegifALqocElyUaAe46eU50QyNAo5cROWZFoYe6vOVRiRRdXoJagkWZsh3?=
 =?us-ascii?Q?XjjoQ67urWiIOflOOde5LFo0UA4gx+d9p5iYTrHt84DpM1hD3IWV1AQdH1k6?=
 =?us-ascii?Q?NFHhFGvzv5TbAjKRRApeP1ZJvtua7GTWn3SSzU/H9Qh0worDm3mCszpf6kEo?=
 =?us-ascii?Q?/n9eD0Yh0MxDNd6mMqJd0PoglwZLskqwUtPEY0sJ3iGZ1Szvfq5dVrARnkww?=
 =?us-ascii?Q?/A9IACCTJ2rQt6dBpsWo4ANq5Nips1ZhgoEXjyDTzw1IGBP/TiDVsIVSM3nI?=
 =?us-ascii?Q?BNS7ahXf5Bjoc1ER9+o21XlJ9vw/EQldhcTuAL12R9GTlPxvy8pYo0zNuhI4?=
 =?us-ascii?Q?3g8ZWUMS6r3C4s/UmCCfLC1JSmLdWp9eB70o8UCini9dKEVMDYp9JxHYaIQ1?=
 =?us-ascii?Q?EgwI6UdykSF8ydlvprCvM8iFg9eDHCe51KffybzjRtVww+oTJHp153gqoIhL?=
 =?us-ascii?Q?PQk+FBuf+lBZAKX4oLfRI9xNWrsUm9ylvVzuRxxUbnF5gW9BYsXSM2+3v4D2?=
 =?us-ascii?Q?s23RNzGTb08nA+ixixlenrJsCox5E5ff+t/09LwfZck7ujfgpYfv0wnNy9P9?=
 =?us-ascii?Q?HyO9i9M3ElITSLdVyq2ilimBAhc/8XDF/xavtgbTIb0k9KUy0NhWzc/I+2Yi?=
 =?us-ascii?Q?Z9GQLtCgMQuTSi1JKsni7+KS9Q7PoF7A23aHmT+x8xu83PK7/jBbI5lvultP?=
 =?us-ascii?Q?z9+xQAYuNGRCOGg2hB3snh7aw36rgkWCwEu4yU1aTfasNK86GBo/EaVGcghw?=
 =?us-ascii?Q?vBRUB3SJblsfRnnAXnjmzDJ3eAGnt09Cp8yHso/B0sCnerhncOg7SEocNVJO?=
 =?us-ascii?Q?N+dDXGI/tv3u7fjt58gRhzvINL8b4IkJELWaUiIqcpv9UWAhGy+OyU4178Mb?=
 =?us-ascii?Q?SUfx/1dL0YiCwofWOpl+bz0xNpMdA9rNPahatXsGZjEl/WTgEjyMGeOFSjKu?=
 =?us-ascii?Q?BtmS/UPHVAPxPRhfOr3IZGY+9nmQ/ntrcDskg24nmVYiSXBVsUH01lpJo5c4?=
 =?us-ascii?Q?vSKGn2lal11hzcgJXt3+byzlXg4liJxkqbuoc/92veXubgTztmJpYRzstjr2?=
 =?us-ascii?Q?+I1Kt1ZAC2bc4DfyKKDtAChrvnCSvJU6lzZPJvEPY2XaZl9Bjiw++H7yThjX?=
 =?us-ascii?Q?msyY6yXNE9aybBTqJGMpQ9LPccR0RDmFF7C7g6NIriXBRA5HYJ0Qw3n5veZN?=
 =?us-ascii?Q?mgyMIhF1WX81e0zgYd1KdbItm2uS8eARDYFKYAH060Ke+/4H+gW0ShDAnWAy?=
 =?us-ascii?Q?/zvexke9xx0wZYPUJ9j+hR7xu72TtTbVkVHQyKoVSl5Yp9nbRYUmbSE59QcI?=
 =?us-ascii?Q?D2rIYVIHBK5dXm30rgiRQkDqymcbK97Met7GcF7j8JAeEr7uvd4DkitqK25V?=
 =?us-ascii?Q?T3dWzD6WzgbYAPGCofH/I7KypXKwu/HbTEe01EVSyVEkXB6M45ohCk0R2GgB?=
 =?us-ascii?Q?R8NmU4Hh7Ev0jTiLjZI0wiSkep2eWMisYGqoeu55RUOtWWM8Cf/ccQ=3D=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR08MB6588.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(10070799003)(1800799024)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <E3A3070771BED74FB4DDFB5112FCACAA@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB9653
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS1EPF00000047.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	8c4528c2-197b-49d5-853b-08ddd0ca8e2e
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|376014|82310400026|35042699022|14060799003;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?zsc73R4kb8TJJ7X9ezOXuVZUHoUVSN2Gr5Cw0Hsypw6BCBfWt63meyetDF/D?=
 =?us-ascii?Q?4ap7+TCnmhbb0tnvmN7jv1Yb2j45Aits2F4c6NPuMjCgjPmOltwfxhzvvV1Y?=
 =?us-ascii?Q?E1YczBzbnKdIcWZGpNb95Rl6CMGedbHDSmjaefvpGIApHWHT1DQ4NJjs55GD?=
 =?us-ascii?Q?G4fDssLHhmJS7j30OvsuklTkyIJTomWJmEChUjUxFQLP67anLVBoxft9lxIu?=
 =?us-ascii?Q?dY5axZDa9ORUJUDNTDSCe5i/o6LGkgInSd9uOJBUeS5adp0gRI4zyqlTw1uY?=
 =?us-ascii?Q?I2vHlpZhRSYN9gi+P7cfU54ymv2+nzKZXApx62CrxuC3RalDdDPAjesY4M8v?=
 =?us-ascii?Q?DEipIOoturL3Wvoaem7i+ED7fVupBPOsgUCYiKtE7EfKLVKMUU5RTN18eBJU?=
 =?us-ascii?Q?uopH/hW4u1fDsVbiCxIPTEFWqEkMSySIaUbzt5SuI9+dLzeDUGXyvJDLNM06?=
 =?us-ascii?Q?HKx/KMrm+8G1L/9SC2mV2T2PjElMvwwM1s2ACAUFubSeQT64P7/+UK+FHxsI?=
 =?us-ascii?Q?sp8fKqiiobC4D+iv96SXQZm6hYRAKs2BjrzykgANG2eeLcBC5PIPAfqUYQl/?=
 =?us-ascii?Q?MtYL7rP0LaXxA3NNyOrtqstXCLnq54W07QDSe9MY8q71GT4xFSP7EUYbbxWb?=
 =?us-ascii?Q?L0d+tNyeX8N/pA2kExT9guk/G2D18IYSr8ciUgXjQbgNKYgNkNDPgo5gIJY5?=
 =?us-ascii?Q?hzy36v7pxa/M+HcbVJLwXev4veaqFnwp/wMcCec+CqfU1JebmRdPmGEpG0qo?=
 =?us-ascii?Q?kMZQQkNtfH9Kit+6Mwzap2yHSFhfLkAnsHcmXgxLtUW2xWOmUGOsOnDWO2FB?=
 =?us-ascii?Q?2fd2NXsC4LK7yj2O75f1pk12VxVjWnJiCAnRd98FjbxVjB7IoudJ9SXTIz1z?=
 =?us-ascii?Q?woa8LFr5hRMAcm/DgpZbh+bAJXZGjQPzpKxBxnBAimrjJ8FUSe/kCuE0XUGg?=
 =?us-ascii?Q?n7zzuIeGRjIg/WseQxb3egLVq/hyhwO4fBppd76LEXK9x61rD4HMG5Wj2Ary?=
 =?us-ascii?Q?2CldHMN9UpooIlNZrTErWHpGDyvFh7qMy2dST7nu+S8RTfYhX0/d+BNFKALe?=
 =?us-ascii?Q?YdCtM1O2L81gmGxCgJnLlAV6XlFSFBLg1bsO/n08A2O6zBtlFBn2ThdurAko?=
 =?us-ascii?Q?o0ugKXCc6YjB8XeQveLd/I791H5u8xedxDAUgQhe2S+5q3egVnhRCI+bzrD0?=
 =?us-ascii?Q?LXZUjpB0PHbtSLosPbk1GcS4pVsKLymnr6C2nf1jhR6KnUmKROd+XMmv0r+Y?=
 =?us-ascii?Q?3GggAKZB7u9mgRx5z/OAgl8EWcWO5s6LsW4wQlRIrziLR/FzfvXiQNd+F55R?=
 =?us-ascii?Q?2sKgnObeul5WfcrlPhs5slyUMhazSeM7/TpwthwUInguoO27tNLBqQjzzsci?=
 =?us-ascii?Q?IbiGFJjFkhxv/slzlHgp/QYzWR4gUfQmiaX+q1q1sRAnUwXe3sV/7hs7uvFp?=
 =?us-ascii?Q?gAfx/Uf9yfwN8Xmu+8EOx1ggqZCesCe7SU0/awcDoTScU1VFqfy9INjigBdk?=
 =?us-ascii?Q?kZNkC6Pu5kCsp0OF2qzlnX87sVpVPMPtaeds?=
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)(36860700013)(376014)(82310400026)(35042699022)(14060799003);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Aug 2025 07:11:26.2712
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a7b7b228-0210-48e9-cea5-08ddd0caa13e
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:
	AMS1EPF00000047.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB6377

Hi,

A gentle ping for someone to review this :-)

Thanks
Bertrand

> On 17 Jul 2025, at 14:11, Bertrand Marquis <Bertrand.Marquis@arm.com> wro=
te:
>=20
> When VM to VM support is activated and there is no suitable FF-A support
> in the firmware, enable FF-A support for VMs to allow using it for VM to
> VM communications.
> If there is OP-TEE running in the secure world and using the non FF-A
> communication system, having CONFIG_FFA_VM_TO_VM could be non functional
> (if optee is probed first) or OP-TEE could be non functional (if FF-A is
> probed first) so it is not recommended to activate the configuration
> option for such systems.
>=20
> To make buffer full notification work between VMs when there is no
> firmware, rework the notification handling and modify the global flag to
> only be used as check for firmware notification support instead.
>=20
> Also split probe function into one for firmware and one for vm to vm to
> make the implementation clearer.
>=20
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
>=20
> ---
> Changes in v7:
> - add Jens R-b
> Changes in v6:
> - split probe into fw and vm_to_vm probe
> Changes in v5:
> - init ctx list when there is no firmware
> - rework init a bit to prevent duplicates
> - Remove Jens R-b due to changes done
> Changes in v4:
> - Fix Optee to OP-TEE in commit message
> - Add Jens R-b
> Changes in v3:
> - fix typos in commit message
> - add spaces around <<
> - move notification id fix back into buffer full patch
> - fix | position in if
> Changes in v2:
> - replace ifdef with IS_ENABLED when possible
> ---
> xen/arch/arm/tee/ffa.c       |  93 ++++++++++++++++++-------------
> xen/arch/arm/tee/ffa_notif.c | 104 ++++++++++++++++-------------------
> 2 files changed, 104 insertions(+), 93 deletions(-)
>=20
> diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
> index be71eda4869f..df38b4e15b36 100644
> --- a/xen/arch/arm/tee/ffa.c
> +++ b/xen/arch/arm/tee/ffa.c
> @@ -345,8 +345,9 @@ static int ffa_domain_init(struct domain *d)
>     struct ffa_ctx *ctx;
>     int ret;
>=20
> -    if ( !ffa_fw_version )
> +    if ( !IS_ENABLED(CONFIG_FFA_VM_TO_VM) && !ffa_fw_version )
>         return -ENODEV;
> +
>     /*
>      * We are using the domain_id + 1 as the FF-A ID for VMs as FF-A ID 0=
 is
>      * reserved for the hypervisor and we only support secure endpoints u=
sing
> @@ -477,38 +478,12 @@ static void ffa_init_secondary(void)
>     ffa_notif_init_interrupt();
> }
>=20
> -static bool ffa_probe(void)
> +static bool ffa_probe_fw(void)
> {
>     uint32_t vers;
>     unsigned int major_vers;
>     unsigned int minor_vers;
>=20
> -    /*
> -     * FF-A often works in units of 4K pages and currently it's assumed
> -     * that we can map memory using that granularity. See also the comme=
nt
> -     * above the FFA_PAGE_SIZE define.
> -     *
> -     * It is possible to support a PAGE_SIZE larger than 4K in Xen, but
> -     * until that is fully handled in this code make sure that we only u=
se
> -     * 4K page sizes.
> -     */
> -    BUILD_BUG_ON(PAGE_SIZE !=3D FFA_PAGE_SIZE);
> -
> -    printk(XENLOG_INFO "ARM FF-A Mediator version %u.%u\n",
> -           FFA_MY_VERSION_MAJOR, FFA_MY_VERSION_MINOR);
> -
> -    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
> -    {
> -        /*
> -         * When FFA VM to VM is enabled, the current implementation does=
 not
> -         * offer any way to limit which VM can communicate with which VM=
 using
> -         * FF-A.
> -         * Signal this in the xen console and taint the system as insecu=
re.
> -         * TODO: Introduce a solution to limit what a VM can do through =
FFA.
> -         */
> -        printk(XENLOG_ERR "ffa: VM to VM is enabled, system is insecure =
!!\n");
> -        add_taint(TAINT_MACHINE_INSECURE);
> -    }
>     /*
>      * psci_init_smccc() updates this value with what's reported by EL-3
>      * or secure world.
> @@ -527,11 +502,6 @@ static bool ffa_probe(void)
>         goto err_no_fw;
>     }
>=20
> -    /* Some sanity check in case we update the version we support */
> -    BUILD_BUG_ON(FFA_MIN_SPMC_VERSION > FFA_MY_VERSION);
> -    BUILD_BUG_ON(FFA_VERSION_MAJOR(FFA_MIN_SPMC_VERSION) !=3D
> -                                   FFA_MY_VERSION_MAJOR);
> -
>     major_vers =3D FFA_VERSION_MAJOR(vers);
>     minor_vers =3D FFA_VERSION_MINOR(vers);
>=20
> @@ -582,10 +552,6 @@ static bool ffa_probe(void)
>         goto err_rxtx_destroy;
>=20
>     ffa_notif_init();
> -    INIT_LIST_HEAD(&ffa_teardown_head);
> -    INIT_LIST_HEAD(&ffa_ctx_head);
> -    rwlock_init(&ffa_ctx_list_rwlock);
> -    init_timer(&ffa_teardown_timer, ffa_teardown_timer_callback, NULL, 0=
);
>=20
>     return true;
>=20
> @@ -599,6 +565,59 @@ err_no_fw:
>     return false;
> }
>=20
> +static bool ffa_probe_vm_to_vm(void)
> +{
> +    if ( !IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
> +        return false;
> +
> +    /*
> +     * When FFA VM to VM is enabled, the current implementation does not
> +     * offer any way to limit which VM can communicate with which VM usi=
ng
> +     * FF-A.
> +     * Signal this in the xen console and taint the system as insecure.
> +     * TODO: Introduce a solution to limit what a VM can do through FFA.
> +     */
> +    printk(XENLOG_ERR "ffa: VM to VM is enabled, system is insecure !!\n=
");
> +    add_taint(TAINT_MACHINE_INSECURE);
> +
> +    return true;
> +}
> +
> +static bool ffa_probe(void)
> +{
> +    /*
> +     * FF-A often works in units of 4K pages and currently it's assumed
> +     * that we can map memory using that granularity. See also the comme=
nt
> +     * above the FFA_PAGE_SIZE define.
> +     *
> +     * It is possible to support a PAGE_SIZE larger than 4K in Xen, but
> +     * until that is fully handled in this code make sure that we only u=
se
> +     * 4K page sizes.
> +     */
> +    BUILD_BUG_ON(PAGE_SIZE !=3D FFA_PAGE_SIZE);
> +
> +    /* Some sanity check in case we update the version we support */
> +    BUILD_BUG_ON(FFA_MIN_SPMC_VERSION > FFA_MY_VERSION);
> +    BUILD_BUG_ON(FFA_VERSION_MAJOR(FFA_MIN_SPMC_VERSION) !=3D
> +                                   FFA_MY_VERSION_MAJOR);
> +
> +    printk(XENLOG_INFO "ARM FF-A Mediator version %u.%u\n",
> +           FFA_MY_VERSION_MAJOR, FFA_MY_VERSION_MINOR);
> +
> +    if ( !ffa_probe_fw() && !ffa_probe_vm_to_vm() )
> +        return false;
> +
> +    if ( !ffa_fw_version )
> +        printk(XENLOG_INFO "ARM FF-A only available between VMs\n");
> +
> +    INIT_LIST_HEAD(&ffa_teardown_head);
> +    INIT_LIST_HEAD(&ffa_ctx_head);
> +    rwlock_init(&ffa_ctx_list_rwlock);
> +    init_timer(&ffa_teardown_timer, ffa_teardown_timer_callback, NULL, 0=
);
> +
> +    return true;
> +}
> +
> static const struct tee_mediator_ops ffa_ops =3D
> {
>     .probe =3D ffa_probe,
> diff --git a/xen/arch/arm/tee/ffa_notif.c b/xen/arch/arm/tee/ffa_notif.c
> index f6df2f15bb00..86bef6b3b2ab 100644
> --- a/xen/arch/arm/tee/ffa_notif.c
> +++ b/xen/arch/arm/tee/ffa_notif.c
> @@ -16,7 +16,7 @@
>=20
> #include "ffa_private.h"
>=20
> -static bool __ro_after_init notif_enabled;
> +static bool __ro_after_init fw_notif_enabled;
> static unsigned int __ro_after_init notif_sri_irq;
>=20
> int ffa_handle_notification_bind(struct cpu_user_regs *regs)
> @@ -27,21 +27,17 @@ int ffa_handle_notification_bind(struct cpu_user_regs=
 *regs)
>     uint32_t bitmap_lo =3D get_user_reg(regs, 3);
>     uint32_t bitmap_hi =3D get_user_reg(regs, 4);
>=20
> -    if ( !notif_enabled )
> -        return FFA_RET_NOT_SUPPORTED;
> -
>     if ( (src_dst & 0xFFFFU) !=3D ffa_get_vm_id(d) )
>         return FFA_RET_INVALID_PARAMETERS;
>=20
>     if ( flags )    /* Only global notifications are supported */
>         return FFA_RET_DENIED;
>=20
> -    /*
> -     * We only support notifications from SP so no need to check the sen=
der
> -     * endpoint ID, the SPMC will take care of that for us.
> -     */
> -    return ffa_simple_call(FFA_NOTIFICATION_BIND, src_dst, flags, bitmap=
_lo,
> -                           bitmap_hi);
> +    if ( FFA_ID_IS_SECURE(src_dst >> 16) && fw_notif_enabled )
> +        return ffa_simple_call(FFA_NOTIFICATION_BIND, src_dst, flags,
> +                               bitmap_lo, bitmap_hi);
> +
> +    return FFA_RET_NOT_SUPPORTED;
> }
>=20
> int ffa_handle_notification_unbind(struct cpu_user_regs *regs)
> @@ -51,18 +47,14 @@ int ffa_handle_notification_unbind(struct cpu_user_re=
gs *regs)
>     uint32_t bitmap_lo =3D get_user_reg(regs, 3);
>     uint32_t bitmap_hi =3D get_user_reg(regs, 4);
>=20
> -    if ( !notif_enabled )
> -        return FFA_RET_NOT_SUPPORTED;
> -
>     if ( (src_dst & 0xFFFFU) !=3D ffa_get_vm_id(d) )
>         return FFA_RET_INVALID_PARAMETERS;
>=20
> -    /*
> -     * We only support notifications from SP so no need to check the
> -     * destination endpoint ID, the SPMC will take care of that for us.
> -     */
> -    return  ffa_simple_call(FFA_NOTIFICATION_UNBIND, src_dst, 0, bitmap_=
lo,
> -                            bitmap_hi);
> +    if ( FFA_ID_IS_SECURE(src_dst >> 16) && fw_notif_enabled )
> +        return  ffa_simple_call(FFA_NOTIFICATION_UNBIND, src_dst, 0, bit=
map_lo,
> +                                bitmap_hi);
> +
> +    return FFA_RET_NOT_SUPPORTED;
> }
>=20
> void ffa_handle_notification_info_get(struct cpu_user_regs *regs)
> @@ -71,7 +63,7 @@ void ffa_handle_notification_info_get(struct cpu_user_r=
egs *regs)
>     struct ffa_ctx *ctx =3D d->arch.tee;
>     bool notif_pending;
>=20
> -    if ( !notif_enabled )
> +    if ( !IS_ENABLED(CONFIG_FFA_VM_TO_VM) && !fw_notif_enabled )
>     {
>         ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
>         return;
> @@ -108,7 +100,7 @@ void ffa_handle_notification_get(struct cpu_user_regs=
 *regs)
>     uint32_t w6 =3D 0;
>     uint32_t w7 =3D 0;
>=20
> -    if ( !notif_enabled )
> +    if ( !IS_ENABLED(CONFIG_FFA_VM_TO_VM) && !fw_notif_enabled )
>     {
>         ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
>         return;
> @@ -120,7 +112,8 @@ void ffa_handle_notification_get(struct cpu_user_regs=
 *regs)
>         return;
>     }
>=20
> -    if ( flags & ( FFA_NOTIF_FLAG_BITMAP_SP | FFA_NOTIF_FLAG_BITMAP_SPM =
) )
> +    if ( fw_notif_enabled && (flags & ( FFA_NOTIF_FLAG_BITMAP_SP |
> +                                        FFA_NOTIF_FLAG_BITMAP_SPM )) )
>     {
>         struct arm_smccc_1_2_regs arg =3D {
>             .a0 =3D FFA_NOTIFICATION_GET,
> @@ -177,15 +170,14 @@ int ffa_handle_notification_set(struct cpu_user_reg=
s *regs)
>     uint32_t bitmap_lo =3D get_user_reg(regs, 3);
>     uint32_t bitmap_hi =3D get_user_reg(regs, 4);
>=20
> -    if ( !notif_enabled )
> -        return FFA_RET_NOT_SUPPORTED;
> -
>     if ( (src_dst >> 16) !=3D ffa_get_vm_id(d) )
>         return FFA_RET_INVALID_PARAMETERS;
>=20
> -    /* Let the SPMC check the destination of the notification */
> -    return ffa_simple_call(FFA_NOTIFICATION_SET, src_dst, flags, bitmap_=
lo,
> -                           bitmap_hi);
> +    if ( FFA_ID_IS_SECURE(src_dst >> 16) && fw_notif_enabled )
> +        return ffa_simple_call(FFA_NOTIFICATION_SET, src_dst, flags, bit=
map_lo,
> +                               bitmap_hi);
> +
> +    return FFA_RET_NOT_SUPPORTED;
> }
>=20
> #ifdef CONFIG_FFA_VM_TO_VM
> @@ -371,7 +363,7 @@ void ffa_notif_init_interrupt(void)
> {
>     int ret;
>=20
> -    if ( notif_enabled && notif_sri_irq < NR_GIC_SGI )
> +    if ( fw_notif_enabled && notif_sri_irq < NR_GIC_SGI )
>     {
>         /*
>          * An error here is unlikely since the primary CPU has already
> @@ -402,41 +394,41 @@ void ffa_notif_init(void)
>     int ret;
>=20
>     /* Only enable fw notification if all ABIs we need are supported */
> -    if ( !(ffa_fw_supports_fid(FFA_NOTIFICATION_BITMAP_CREATE) &&
> -           ffa_fw_supports_fid(FFA_NOTIFICATION_BITMAP_DESTROY) &&
> -           ffa_fw_supports_fid(FFA_NOTIFICATION_GET) &&
> -           ffa_fw_supports_fid(FFA_NOTIFICATION_INFO_GET_64)) )
> -        return;
> -
> -    arm_smccc_1_2_smc(&arg, &resp);
> -    if ( resp.a0 !=3D FFA_SUCCESS_32 )
> -        return;
> -
> -    irq =3D resp.a2;
> -    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", NULL);
> -    if ( ret )
> +    if ( ffa_fw_supports_fid(FFA_NOTIFICATION_BITMAP_CREATE) &&
> +         ffa_fw_supports_fid(FFA_NOTIFICATION_BITMAP_DESTROY) &&
> +         ffa_fw_supports_fid(FFA_NOTIFICATION_GET) &&
> +         ffa_fw_supports_fid(FFA_NOTIFICATION_INFO_GET_64) )
>     {
> -        printk(XENLOG_ERR "ffa: request_irq irq %u failed: error %d\n",
> -               irq, ret);
> -        return;
> -    }
> +        arm_smccc_1_2_smc(&arg, &resp);
> +        if ( resp.a0 !=3D FFA_SUCCESS_32 )
> +            return;
>=20
> -    notif_enabled =3D true;
> +        irq =3D resp.a2;
> +        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", NUL=
L);
> +        if ( ret )
> +        {
> +            printk(XENLOG_ERR "ffa: request_irq irq %u failed: error %d\=
n",
> +                   irq, ret);
> +            return;
> +        }
> +        fw_notif_enabled =3D true;
> +    }
> }
>=20
> int ffa_notif_domain_init(struct domain *d)
> {
>     int32_t res;
>=20
> -    if ( !notif_enabled )
> -        return 0;
> +    if ( fw_notif_enabled )
> +    {
>=20
> -    res =3D ffa_notification_bitmap_create(ffa_get_vm_id(d), d->max_vcpu=
s);
> -    if ( res )
> -        return -ENOMEM;
> +        res =3D ffa_notification_bitmap_create(ffa_get_vm_id(d), d->max_=
vcpus);
> +        if ( res )
> +            return -ENOMEM;
> +    }
>=20
>     return 0;
> }
> @@ -447,6 +439,6 @@ void ffa_notif_domain_destroy(struct domain *d)
>      * Call bitmap_destroy even if bitmap create failed as the SPMC will
>      * return a DENIED error that we will ignore.
>      */
> -    if ( notif_enabled )
> +    if ( fw_notif_enabled )
>         ffa_notification_bitmap_destroy(ffa_get_vm_id(d));
> }
> --=20
> 2.47.1
>=20
>=20



From xen-devel-bounces@lists.xenproject.org Fri Aug 01 07:11:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Aug 2025 07:11:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1066877.1431925 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhjvf-00050N-H5; Fri, 01 Aug 2025 07:11:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1066877.1431925; Fri, 01 Aug 2025 07:11:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhjvf-00050E-EU; Fri, 01 Aug 2025 07:11:47 +0000
Received: by outflank-mailman (input) for mailman id 1066877;
 Fri, 01 Aug 2025 07:11:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jpGp=2N=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1uhjve-0004LS-2U
 for xen-devel@lists.xenproject.org; Fri, 01 Aug 2025 07:11:46 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c7d770e2-6ea6-11f0-b895-0df219b8e170;
 Fri, 01 Aug 2025 09:11:44 +0200 (CEST)
Received: from DU7P191CA0010.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:54e::35)
 by DU0PR08MB9582.eurprd08.prod.outlook.com (2603:10a6:10:44a::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.16; Fri, 1 Aug
 2025 07:11:40 +0000
Received: from DB1PEPF000509FA.eurprd03.prod.outlook.com
 (2603:10a6:10:54e:cafe::ca) by DU7P191CA0010.outlook.office365.com
 (2603:10a6:10:54e::35) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.16 via Frontend Transport; Fri,
 1 Aug 2025 07:11:40 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB1PEPF000509FA.mail.protection.outlook.com (10.167.242.36) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9009.8
 via Frontend Transport; Fri, 1 Aug 2025 07:11:39 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com (2603:10a6:10:25a::24)
 by DU0PR08MB9653.eurprd08.prod.outlook.com (2603:10a6:10:449::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.12; Fri, 1 Aug
 2025 07:11:07 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a]) by DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a%2]) with mapi id 15.20.8989.015; Fri, 1 Aug 2025
 07:11: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>
X-Inumbo-ID: c7d770e2-6ea6-11f0-b895-0df219b8e170
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=x4VHkDqyN71OnMrJJHPHimQb/FkqJvEyqp4GVU/rJLpUnqS7B/EdLrVjC2aL3jjCdFD6PmtljGN/Kv9Os06KIW5qRgwSevBg9F4CV7s8Y31p1I062kOWPAyiin+UHG16fqQj8wxewdEy0vv9zpTy/K7HI2WtFsGvtWqL8muZEUSTTL+RIZd8qWJkdz1zmeUeFbVKZvCY30z0AY5WhXbAYLBHvjo+C97C4REPOlhj2TVsMObyD+416OODmfN0Hpa0BTHG3Z7g7g+dbIQzWLcHiOqACzM+85hwlfmwC3DQ+HzpyDxCEPXcNgoKj2I5R69fQBJGTJ3dEqUe5akFeiSQtA==
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=L6uLJbDflK3g1YEpqtCmMHOkZCFWEKxWzHhlvwB/FTk=;
 b=KuGvURduKQ7kriPg1n8luIHBI9Kdx4xQABdR4bNTsqu2wgIscRmrVdLgV2OHXF1R8/O0schHymnVw63Co3QSGUHvVBoSgvgCNzzuaOojjqKrm6SMExa7vXQ61BfZadF6BJFWE0WyZhGgJ2lZkbAMb8o3wAoug55GgprVlMMHjQke+dxTpjn6sKwKR7HQBSFT1SsFhBiPqR3iKPQInceBL006qjjlM1NWlw5iqYHixzlD7+R924WM2KxY44JL5aFM1MwwHFoYOwB12SsEXC0/o48FufLtDZ9w8yz2xk3YaSjOI0y2xDA5eCyImwo27Voa304vU1nCxeG4lcmgRQ9rNA==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=lists.xenproject.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=L6uLJbDflK3g1YEpqtCmMHOkZCFWEKxWzHhlvwB/FTk=;
 b=K71QhJDpZN+fs99ZtatY4nrkVSF3M0kIs9oX8ZCQ6Bk7gkCtOMbdKSSjjXhzk6R2v8eV6j+gUCfCF71enVmVchFTtgQm0GwMB2oIfjVENGuFdej+rUZ/klVNKcLo2E2lZYA6r7t5B69HVCOZkfQghH7xDCIsmYHz2yAYNK7eojc=
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=fyIZbIxjmLwiRU819OUPNcG8ImLPVDuEO1xTtZx7Sep32X6xt/YqfKtR0C81hGbimH+9EPc6AVjziT7vbw7Q0AtWqVvQta9k4gaue1kAPy097GRqblwDzUPyj+NoQPirWAJLawFXuoAFngrC9TGQd1CzsF6EbphAl1heQCVRXrto61Ijeq5fVBBqvPNA0J2ZkjAl4M2Ps5na2cbIMh2y6yFhkDm6ix2BLvtF4fnU4xbK4zh4wKAY13HtapbxSe9YToQlCVGldYLSWQKU8ClvKTuHmej1tg+1zQsWC74WtxwPpkm4lnCuY/uIgZjqM+Qiuqy/2vOxNZvHhYgORPGxcQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=L6uLJbDflK3g1YEpqtCmMHOkZCFWEKxWzHhlvwB/FTk=;
 b=kvBhnMXIQjx0RcHx3j3QOvWTMGVo+ypAhXzgKSMuwHd3hdZLqN3yylpghm/16DZhMscC9Zv8y7GUsi7P6tnDkYXtryGumdX3LK6I/YOig6it2E1mxh3nj9SkFgIqPnLJmgL5sTGxtBzjm0rh+JCYp5W8R5hCQdRwgOFJS1eruCIg7wJZ0NU02FItp2JMfwBhpFL4L4KTgiUN6CK5bpIi+03fbIUh5T0elocXf+IZjWpvS6hMdQILaueXDxQQNZLdcsDGHzoQ9ZgZZCXIikW81afyyt6/0pXtArPak/PI3G4H+/0HDMDnC8SLgBQvH8c4kS2mQMwTNx0o9sk2czOQAQ==
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=L6uLJbDflK3g1YEpqtCmMHOkZCFWEKxWzHhlvwB/FTk=;
 b=K71QhJDpZN+fs99ZtatY4nrkVSF3M0kIs9oX8ZCQ6Bk7gkCtOMbdKSSjjXhzk6R2v8eV6j+gUCfCF71enVmVchFTtgQm0GwMB2oIfjVENGuFdej+rUZ/klVNKcLo2E2lZYA6r7t5B69HVCOZkfQghH7xDCIsmYHz2yAYNK7eojc=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "jens.wiklander@linaro.org" <jens.wiklander@linaro.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 v7 5/6] xen/arm: ffa: Add indirect message between VM
Thread-Topic: [PATCH v7 5/6] xen/arm: ffa: Add indirect message between VM
Thread-Index: AQHb9xP63AO3xKXxGUS6VQz+IbmVObRNeLKA
Date: Fri, 1 Aug 2025 07:11:07 +0000
Message-ID: <24F6DA9F-7FFD-407F-A695-420F0EF5242D@arm.com>
References: <cover.1752754016.git.bertrand.marquis@arm.com>
 <1a5ef965eca870918a120221667e2f26c7604afc.1752754016.git.bertrand.marquis@arm.com>
In-Reply-To:
 <1a5ef965eca870918a120221667e2f26c7604afc.1752754016.git.bertrand.marquis@arm.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.600.51.1.1)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB9PR08MB6588:EE_|DU0PR08MB9653:EE_|DB1PEPF000509FA:EE_|DU0PR08MB9582:EE_
X-MS-Office365-Filtering-Correlation-Id: 78d0bf0e-c725-4151-9f38-08ddd0caa938
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|10070799003|1800799024|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?us-ascii?Q?hD44Xg7IyT5iaxgvEWmJj/J+STjTpi+duvdMcysiM0B3ca88aUHZL/EQImeo?=
 =?us-ascii?Q?kDqH7capkheUnNIHgkwmsPYdszKzti1MHMs2Ed7/6FLo4vm6YxwW13VfBCIK?=
 =?us-ascii?Q?k49mYgokx9qcDPy0FkILAgcOHoJoMlmnIGYEKgpYOvUXpDDrpH0Tg49rY+aK?=
 =?us-ascii?Q?MDpTzo+hQm0H8FReWk7+lV861RejypkXCAsU7st1Gx0/jHhXigcf0ofL8Eh7?=
 =?us-ascii?Q?Z5UWh8sMN7bJ7dofQzAIsJPTumUEHupHJQzRx7TDi9e57ZX0n4dQfhovweIl?=
 =?us-ascii?Q?/s5Zy+hKUJpcp0eY6Ks0VrHoBV/CZ2j52NcaZGgHEF6UQS7aekSUUQIihAgo?=
 =?us-ascii?Q?BGdZDL6NaHiw/Wpgu54KdQWbFJxYx9sWjiZfBZkt3UKqM/WPGVkWf71au8CF?=
 =?us-ascii?Q?tyeM79220sY5bqBLPoldQQv7CyepKb/9aFW/XOyGC2SzYJiQ/25Oaefozu8W?=
 =?us-ascii?Q?Fh2giLoF99/SvRv0BXqUHbxAJyHaOmYtLSBLZMRgt4lxUn551UHHjpb8rezU?=
 =?us-ascii?Q?7MsU0aoQsaa39whpyE+fspFxTl5Ajce529HDVMahWkia0jjfBfDILxvPoFYc?=
 =?us-ascii?Q?Pa9PF6LCCRUIJKZzU2PvEomgfSRDQR4MYzRIRGPT2Kf6TIsOVnBcWUyXMgbo?=
 =?us-ascii?Q?4pRR1AbMQkD6H29NHxyDiiCUVyZydD9HZT4dAMtLpAsloMOonXBAo5Eql3D3?=
 =?us-ascii?Q?WbX/e+Fjk7KIcObir8xYc8JXmek+Qm54Hu9kKkVO6LJbwvM7n4Y7YQm5t4k1?=
 =?us-ascii?Q?UOMGpO0jGZrMTbB/gsor9B3R9BU2W7lIeigVpOz0bD35GU7+qzZpWeVULs9q?=
 =?us-ascii?Q?KTuun6mjfi4sDCiBHLRRcKWf5WwlA+Xahgdonz/+uRjR8Wa947H728lSaGpF?=
 =?us-ascii?Q?/qvtFfZ0hc7ae8RaN3ATUF4ULnd5VfMaQI2BOzQoOTg1bzEXoqCEZ08cgaD6?=
 =?us-ascii?Q?mFTbj3x0L4S+16M8PuwC/SWfNomb0AlYNJ9BYnNMhC74JQOiDFE6X/VBGD5I?=
 =?us-ascii?Q?X1HeigFhsCgUEfJ4RwKd/vbQFD+1ZiYGebW6KQ1TM+NaO0U6kV10fyGPyzAV?=
 =?us-ascii?Q?v1q1pDc/8FhL8XxCvKIgM+4FVRfixUm0PovWsv4h2ny1vMVZSlzzUNZ+Wol8?=
 =?us-ascii?Q?Jl+aE1JU3wshZx/AOHEtuayKoWPQGaZJVbzlkS/kA4M5eEyQLUJRFTsUdZC0?=
 =?us-ascii?Q?PWq8kS9Zkq0H+3KVOdPf7Zt0ebALjivL5Q5irEdvunVZPln0Bk+EHfc+JoeA?=
 =?us-ascii?Q?3JfYtr79v/J1Bo0Vqe7bVdDslG4m+5NG8wx7n3gcAeQAnizz1qxRudlSE4Yj?=
 =?us-ascii?Q?jnFg9aEoAgjZlUzL5E/eL+pdU+xK4Az/+xiBbUwTshu8UesLWcSt6YIqMR2y?=
 =?us-ascii?Q?tFYHSmoxAtMbbBXRPKpiZGIwhGPGfwkjAT1rVMaAWPJeyQ1f9T3Q2YwADIOW?=
 =?us-ascii?Q?Ognw3vPe7YPxLROyjP+wCHPRnaBEd8tKLB9Xggf2Yhz/wNe6Yg/hUw=3D=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR08MB6588.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(10070799003)(1800799024)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <BC86B44259B3694886B56694063C3308@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB9653
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB1PEPF000509FA.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	94e5ccd8-bfc3-4deb-242a-08ddd0ca962c
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|35042699022|82310400026|36860700013|1800799024|376014|14060799003;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?7iJw/Tyge+y3WFTnCI8i7bvXZZQJsqAwtNtpxsth5ty1T5AQTW7JzAfrO8+w?=
 =?us-ascii?Q?ifFLA+wMcVyMc6iGXlmWm7ULtr0Hi8NZZEU5LDB1RnL11YeiAQU59L8he5O8?=
 =?us-ascii?Q?jfvvvKjuqeZeWK16QNXfxYcp1qTuJNA+PSjRWxTFlDbAkHeu+6Igs1LqzJCh?=
 =?us-ascii?Q?Ce9I12rqW60O4QcKsB9DE0cuBEUkHQQ0Q2NJiCwuxA7dlwbKcrQR7z1U4HhP?=
 =?us-ascii?Q?BumVWHaqt2q39SkgScjSCwh9hpxGOoFhJ7NrDmKtA+QasYTr2Ze0v15lzxdl?=
 =?us-ascii?Q?Be9xRPCogaAHfpdxWe1aTLbQmTT3P5YRoE/tTj3I/XfrRZurrVey4s5btuQL?=
 =?us-ascii?Q?cELfZ+8SIk96MFKJYac2khaKKA/1Nfu1pq76ZEa6SOVdNIxApbDmmKd6MSln?=
 =?us-ascii?Q?iADphv1kKELz829WjZvCg6rgYFMBBKfBdkfS+OlWuKoJNNJM/wuc2t8AT7dA?=
 =?us-ascii?Q?LlPSrL/iAOh2S4wYbFrR3bNVqsAGenrSaqnb0Ybk6OL0AAWe7QFroEOcoW2L?=
 =?us-ascii?Q?mCEIY1zbuaeLdC6ams6aG8nZMeHdJ0q7vbGVbnQs5m2uHtfqOPW3r/Yx7/M5?=
 =?us-ascii?Q?n1dUj9PHk0uEp0tv/m3/WXhFvKYb4ki0Ha7q6kUQ6OiT7MJIcu67UeUmjb/e?=
 =?us-ascii?Q?S1FgCnZ9e+HtnaTn60SiaDU6QmDc4V/r3LFm+0uPR3gE/hNvOv0dmp1zvYRn?=
 =?us-ascii?Q?kZOqqItiY5ONNtqiVEwoTFJHhPoDj/mYvRVgd/qlI/u7ocxWgDlH5Rh7uYuP?=
 =?us-ascii?Q?wzZ5WeWl6SUkrD5tMoEf8pxv7FcLAScx54r62wRWTPkf+yP0wJS5gLfcct7K?=
 =?us-ascii?Q?L9gTFihuX28ERSbbGUNH84x4Lux1JJ6GTHNVFEFrd1B5Ipi6jL6y8Ucu7vC8?=
 =?us-ascii?Q?vt6uOUT/Lxmu4Ad1rx1c2uj65PMJQRAoPcPTQvULeJ7yej1BSmkZW1ss/5wq?=
 =?us-ascii?Q?OtN9pYJLAcrqMjdnJxDtAG4r+2kbzGCzvJuQaiAi63XdmIfEbcwTzhBTdvcO?=
 =?us-ascii?Q?kq4jk5oBumUUk/YFBl0L03qNFnGy/jjG0J3GDjLtLA22xAc729yOW21srinD?=
 =?us-ascii?Q?Dw9VT6fAjDFsApAofTWwcXNFB4Zu+khb/MFZ9LNGLH3d5UMhebYuryVEOTXP?=
 =?us-ascii?Q?eN1i7rUE+1/hJjPfT2FZV6+2TgO9sLEllZ0zueunO0uPoU1ZPiBPzDeg8lKl?=
 =?us-ascii?Q?1iRUsiHsPOQbjUZy+ZBeVpkBvR4FzGHMossxNvoHcIJzX8/3EhTSmg1o6FXR?=
 =?us-ascii?Q?LU2WLACSFUxp6ET7ba2VulzlYKCL6WEbf2Dgj0u/ywneljLR49t/b+5m1NID?=
 =?us-ascii?Q?RWFo9DZha1/BaMnBMInGFm0p96KoY3SdgV46t/DZiLgEl/OvZ6NMGZFA7n8z?=
 =?us-ascii?Q?8LukztBhpEZD4hYYplwA6Lzirbvj+0tVO5Ihf5lRb37F+rse1u+PuWwWfHzM?=
 =?us-ascii?Q?PokT4E/u3oL6dtPCkFN2RA6LlldmHQFlipuuOn2zEsMqrBPU9TUSjUZ8vwka?=
 =?us-ascii?Q?ntCQBt2yENm1m75VlteS4VCx8UxIC5/JiyTY?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(35042699022)(82310400026)(36860700013)(1800799024)(376014)(14060799003);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Aug 2025 07:11:39.6424
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 78d0bf0e-c725-4151-9f38-08ddd0caa938
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:
	DB1PEPF000509FA.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB9582

Hi,

A gentle ping for someone to review this :-)

Thanks
Bertrand

> On 17 Jul 2025, at 14:11, Bertrand Marquis <Bertrand.Marquis@arm.com> wro=
te:
>=20
> Add support for indirect messages between VMs.
> This is only enabled if CONFIG_FFA_VM_TO_VM is selected.
>=20
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
> ---
> Changes in v6:
> - fix code alignment (Jens)
> - add Jens R-b
> Changes in v5:
> - Prevent potential overflow in send2 handling (Julien)
> - Only use page_count with rx lock acquired
> - Fix an issue where send2 between VMs was not doing the copy from the
>  tx buffer but from a wrong location in the stack. This bug was
>  introduced in v4 when switching to a local copy for the header.
> Changes in v4:
> - Use a local copy of the message header to prevent a TOC/TOU possible
>  issue when using the payload size
> Changes in v3:
> - Move vm to vm indirect message handling in a sub function to simplify
>  lock handling and make implementation easier to read
> Changes in v2:
> - Switch ifdef to IS_ENABLED
> ---
> xen/arch/arm/tee/ffa_msg.c | 117 ++++++++++++++++++++++++++++++++-----
> 1 file changed, 102 insertions(+), 15 deletions(-)
>=20
> diff --git a/xen/arch/arm/tee/ffa_msg.c b/xen/arch/arm/tee/ffa_msg.c
> index ee594e737fc7..c20c5bec0f76 100644
> --- a/xen/arch/arm/tee/ffa_msg.c
> +++ b/xen/arch/arm/tee/ffa_msg.c
> @@ -88,43 +88,130 @@ out:
>                  resp.a7 & mask);
> }
>=20
> +static int32_t ffa_msg_send2_vm(uint16_t dst_id, const void *src_buf,
> +                                struct ffa_part_msg_rxtx *src_msg)
> +{
> +    struct domain *dst_d;
> +    struct ffa_ctx *dst_ctx;
> +    struct ffa_part_msg_rxtx *dst_msg;
> +    int err;
> +    int32_t ret;
> +
> +    if ( dst_id =3D=3D 0 )
> +        /* FF-A ID 0 is the hypervisor, this is not valid */
> +        return FFA_RET_INVALID_PARAMETERS;
> +
> +    /* This is also checking that dest is not src */
> +    err =3D rcu_lock_live_remote_domain_by_id(dst_id - 1, &dst_d);
> +    if ( err )
> +        return FFA_RET_INVALID_PARAMETERS;
> +
> +    if ( dst_d->arch.tee =3D=3D NULL )
> +    {
> +        ret =3D FFA_RET_INVALID_PARAMETERS;
> +        goto out_unlock;
> +    }
> +
> +    dst_ctx =3D dst_d->arch.tee;
> +    if ( !dst_ctx->guest_vers )
> +    {
> +        ret =3D FFA_RET_INVALID_PARAMETERS;
> +        goto out_unlock;
> +    }
> +
> +    /* This also checks that destination has set a Rx buffer */
> +    ret =3D ffa_rx_acquire(dst_d);
> +    if ( ret )
> +        goto out_unlock;
> +
> +    /* we need to have enough space in the destination buffer */
> +    if ( (dst_ctx->page_count * FFA_PAGE_SIZE -
> +          sizeof(struct ffa_part_msg_rxtx)) < src_msg->msg_size )
> +    {
> +        ret =3D FFA_RET_NO_MEMORY;
> +        ffa_rx_release(dst_d);
> +        goto out_unlock;
> +    }
> +
> +    dst_msg =3D dst_ctx->rx;
> +
> +    /* prepare destination header */
> +    dst_msg->flags =3D 0;
> +    dst_msg->reserved =3D 0;
> +    dst_msg->msg_offset =3D sizeof(struct ffa_part_msg_rxtx);
> +    dst_msg->send_recv_id =3D src_msg->send_recv_id;
> +    dst_msg->msg_size =3D src_msg->msg_size;
> +
> +    memcpy(dst_ctx->rx + sizeof(struct ffa_part_msg_rxtx),
> +           src_buf + src_msg->msg_offset, src_msg->msg_size);
> +
> +    /* receiver rx buffer will be released by the receiver*/
> +
> +out_unlock:
> +    rcu_unlock_domain(dst_d);
> +    if ( !ret )
> +        ffa_raise_rx_buffer_full(dst_d);
> +
> +    return ret;
> +}
> +
> int32_t ffa_handle_msg_send2(struct cpu_user_regs *regs)
> {
>     struct domain *src_d =3D current->domain;
>     struct ffa_ctx *src_ctx =3D src_d->arch.tee;
> -    const struct ffa_part_msg_rxtx *src_msg;
> +    struct ffa_part_msg_rxtx src_msg;
>     uint16_t dst_id, src_id;
>     int32_t ret;
>=20
> -    if ( !ffa_fw_supports_fid(FFA_MSG_SEND2) )
> -        return FFA_RET_NOT_SUPPORTED;
> +    BUILD_BUG_ON(sizeof(struct ffa_part_msg_rxtx) >=3D FFA_PAGE_SIZE);
>=20
>     if ( !spin_trylock(&src_ctx->tx_lock) )
>         return FFA_RET_BUSY;
>=20
> -    src_msg =3D src_ctx->tx;
> -    src_id =3D src_msg->send_recv_id >> 16;
> -    dst_id =3D src_msg->send_recv_id & GENMASK(15,0);
> +    /* create a copy of the message header */
> +    memcpy(&src_msg, src_ctx->tx, sizeof(src_msg));
>=20
> -    if ( src_id !=3D ffa_get_vm_id(src_d) || !FFA_ID_IS_SECURE(dst_id) )
> +    src_id =3D src_msg.send_recv_id >> 16;
> +    dst_id =3D src_msg.send_recv_id & GENMASK(15,0);
> +
> +    if ( src_id !=3D ffa_get_vm_id(src_d) )
>     {
>         ret =3D FFA_RET_INVALID_PARAMETERS;
> -        goto out_unlock_tx;
> +        goto out;
>     }
>=20
>     /* check source message fits in buffer */
> -    if ( src_ctx->page_count * FFA_PAGE_SIZE <
> -         src_msg->msg_offset + src_msg->msg_size ||
> -         src_msg->msg_offset < sizeof(struct ffa_part_msg_rxtx) )
> +    if ( src_msg.msg_offset < sizeof(struct ffa_part_msg_rxtx) ||
> +            src_msg.msg_size =3D=3D 0 ||
> +            src_msg.msg_offset > src_ctx->page_count * FFA_PAGE_SIZE ||
> +            src_msg.msg_size > (src_ctx->page_count * FFA_PAGE_SIZE -
> +                                src_msg.msg_offset) )
>     {
>         ret =3D FFA_RET_INVALID_PARAMETERS;
> -        goto out_unlock_tx;
> +        goto out;
>     }
>=20
> -    ret =3D ffa_simple_call(FFA_MSG_SEND2,
> -                          ((uint32_t)ffa_get_vm_id(src_d)) << 16, 0, 0, =
0);
> +    if ( FFA_ID_IS_SECURE(dst_id) )
> +    {
> +        /* Message for a secure partition */
> +        if ( !ffa_fw_supports_fid(FFA_MSG_SEND2) )
> +        {
> +            ret =3D FFA_RET_NOT_SUPPORTED;
> +            goto out;
> +        }
> +
> +        ret =3D ffa_simple_call(FFA_MSG_SEND2,
> +                              ((uint32_t)ffa_get_vm_id(src_d)) << 16, 0,=
 0, 0);
> +    }
> +    else if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
> +    {
> +        /* Message for a VM */
> +        ret =3D ffa_msg_send2_vm(dst_id, src_ctx->tx, &src_msg);
> +    }
> +    else
> +        ret =3D FFA_RET_INVALID_PARAMETERS;
>=20
> -out_unlock_tx:
> +out:
>     spin_unlock(&src_ctx->tx_lock);
>     return ret;
> }
> --=20
> 2.47.1
>=20
>=20



From xen-devel-bounces@lists.xenproject.org Fri Aug 01 07:30:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Aug 2025 07:30:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1066915.1431935 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhkE3-0008N4-5z; Fri, 01 Aug 2025 07:30:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1066915.1431935; Fri, 01 Aug 2025 07:30: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 1uhkE3-0008Mx-2n; Fri, 01 Aug 2025 07:30:47 +0000
Received: by outflank-mailman (input) for mailman id 1066915;
 Fri, 01 Aug 2025 07:30:45 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=zIvO=2N=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uhkE1-0008Mo-Rq
 for xen-devel@lists.xenproject.org; Fri, 01 Aug 2025 07:30:45 +0000
Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com
 [2a00:1450:4864:20::433])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6f4ddb52-6ea9-11f0-a320-13f23c93f187;
 Fri, 01 Aug 2025 09:30:44 +0200 (CEST)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-3b79bddd604so935044f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 01 Aug 2025 00:30: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
 98e67ed59e1d1-3210286bee5sm334038a91.0.2025.08.01.00.30.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 01 Aug 2025 00:30: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>
X-Inumbo-ID: 6f4ddb52-6ea9-11f0-a320-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754033444; x=1754638244; 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=6/e+JhRH2lcZDBUew+aru8b82UlqGQVqS+S/t091hyw=;
        b=BljF9eDKAS981XuzgBQ75ktjecJbYjKk+M/K7aOhilPbBn3u+fs26LjoWfnmmOM/AG
         sFwiOqLkrxKDToZ3UDqVGV0G/QflgxyHZ3AjAzsrB73MNA1kzwvS6U9Hl00SuisIgcRC
         ifZyTrLMI2HPwiv7sHkaBMpISx8IaaFB1cD6Uq8I1Mgt6t1vr2osooOh+zl8bovmKpBR
         rnMMlZBsVGIkfDCCuCQ8psWNYYDEZQxFzoeVaPEFPTPcIRvcVoMeeAVnkUDGfLT7/Ay2
         p6BOGvQpq9zzHOvdrYsyHat+nVJ+8GmrA3uTLXa1sjWfoMnNtzPZzkFvi5y0w32pT7w0
         Xpug==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754033444; x=1754638244;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=6/e+JhRH2lcZDBUew+aru8b82UlqGQVqS+S/t091hyw=;
        b=LGXq0DRlBo6K9mDIcLM3qJCIbOCtO8f/imwqNhqIcfgBri1/R2RwL+5YZUG9trv6pm
         gFkeiw+gnZ6Jjdv9LkCueQ7vrIrSMk6UFHCxTJ5vqlVzQLIo+jKGL+1dqoavp7+76Y/z
         Di2Nfv+OWOupsLbWqbhtsOeq8C2FL37GlpqO9EjTJS7aRUfY79uSjsFD6frN+ZQVRKyJ
         eNWK+d6/8gTYxGJH6ECtqAnTpNWrUXfLrOaLeqf0sSJPMj0AW8xkl1j000ykUxKQVX7N
         7JJ0Uq314bq3b8kd0jtn2bxrD4S5SLIL5+wjp7Yr0wIIBaGpcw1V8d6EHktASdweYI8z
         5RgQ==
X-Gm-Message-State: AOJu0YzXwjODnh13V6YF4b6K+sUNMXhwkVdXJ5KBadiYmwEcyib7bS45
	nnTyxp78zJin8Yf9/l6dNIfkXkD8dxvL2bDA77vrhAlGWVtm8APKlVMVlQgEBt/WzDKN2Sy9dww
	yi+M=
X-Gm-Gg: ASbGncuTsetgrroR7yMPuk/lqMI74XwifncNERyIb/gHK/yGoprBHbFMrSYvfKp0MY6
	E3VUTRtycL27DwccT4RZ0fpWc/O756mJNYolWS0fXwAoU7n2WIFVKz0ou6Lob2K1Ku8pHU/s5Y9
	pvHVFQ2kOAoOgFCTMtDPvFxUqvW8yBpGdpQOHZHmPLif/g70XL/LAYgeCWj3yLBVRo7sVweDmUP
	jLlT3lhNTlf6v728+NBX94bEM/EJFKQemNaFMQWK75vOMVF36JRACqMUM39hQPW1mMFPZZZ7AUU
	e3WBbdnrQ7dq8VcBHL3GiEFiLhq1hqAYUZCylbgRi4UueHQYuYPfKSXtWiwbOzF99aqZZxr04nK
	PLMu7T9Oe70Pnh/2G8CDcGsz4YanKnn4lUyZi9QB3JxXCvYhELeR5+xGJHKVLe3vvk0fK2l9NLs
	HuYIvBw6g=
X-Google-Smtp-Source: AGHT+IH0SXmqR8Rp/remuIe9n3I7KGR2Y4sHgVwuogGDb7z55jgVtjRvAaBCopm7VQV73KoniDUL4w==
X-Received: by 2002:adf:a297:0:b0:3b7:970d:a565 with SMTP id ffacd0b85a97d-3b7970da81bmr6002061f8f.46.1754033443892;
        Fri, 01 Aug 2025 00:30:43 -0700 (PDT)
Message-ID: <5fcd1c68-6c18-4a1d-8a1d-f056bdb6cde9@suse.com>
Date: Fri, 1 Aug 2025 09:30:34 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] console: make printk_ratelimit_{burst,ms} const
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

Them not being altered by any means, their __read_mostly attribute is
actually counter-productive: It causes the compiler to instantiate the
variables, when already with just the attributes dropped the compiler
can constant-propagate the values into the sole use site. Make the
situation yet more explicit by adding const.

Also switch the variables away from being plain int, and have the
parameters of __printk_ratelimit() follow suit. While there also
similarly adjust the type of "missed" and "lost", and - while touching
the adjacent line - increase lost_str[] to accommodate any unsigned
32-bit number.

Fixes: a8b1845a7845 ("Miscellaneous data placement adjustments")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
In principle {__,}printk_ratelimit() may also want to have their return
type changed to bool, but I think doing so would go too far here: This
would have knock-on effects elsewhere, and it would want considering to
actually flip polarity.

Despite the Fixes: tag I wouldn't consider this for backport.

--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -1268,12 +1268,12 @@ void console_end_sync(void)
  * This enforces a rate limit: not more than one kernel message
  * every printk_ratelimit_ms (millisecs).
  */
-int __printk_ratelimit(int ratelimit_ms, int ratelimit_burst)
+int __printk_ratelimit(unsigned int ratelimit_ms, unsigned int ratelimit_burst)
 {
     static DEFINE_SPINLOCK(ratelimit_lock);
     static unsigned long toks = 10 * 5 * 1000;
     static unsigned long last_msg;
-    static int missed;
+    static unsigned int missed;
     unsigned long flags;
     unsigned long long now = NOW(); /* ns */
     unsigned long ms;
@@ -1288,14 +1288,16 @@ int __printk_ratelimit(int ratelimit_ms,
         toks = ratelimit_burst * ratelimit_ms;
     if ( toks >= ratelimit_ms )
     {
-        int lost = missed;
+        unsigned int lost = missed;
+
         missed = 0;
         toks -= ratelimit_ms;
         spin_unlock(&ratelimit_lock);
         if ( lost )
         {
-            char lost_str[8];
-            snprintf(lost_str, sizeof(lost_str), "%d", lost);
+            char lost_str[10];
+
+            snprintf(lost_str, sizeof(lost_str), "%u", lost);
             /* console_lock may already be acquired by printk(). */
             rspin_lock(&console_lock);
             printk_start_of_line(CONSOLE_PREFIX);
@@ -1312,11 +1314,11 @@ int __printk_ratelimit(int ratelimit_ms,
     return 0;
 }
 
-/* minimum time in ms between messages */
-static int __read_mostly printk_ratelimit_ms = 5 * 1000;
+/* Minimum time in ms between messages */
+static const unsigned int printk_ratelimit_ms = 5 * 1000;
 
-/* number of messages we send before ratelimiting */
-static int __read_mostly printk_ratelimit_burst = 10;
+/* Number of messages we send before ratelimiting */
+static const unsigned int printk_ratelimit_burst = 10;
 
 int printk_ratelimit(void)
 {
--- a/xen/include/xen/lib.h
+++ b/xen/include/xen/lib.h
@@ -80,7 +80,8 @@ extern void guest_printk(const struct do
     __attribute__ ((format (printf, 2, 3)));
 extern void noreturn panic(const char *fmt, ...)
     __attribute__ ((format (printf, 1, 2)));
-extern int __printk_ratelimit(int ratelimit_ms, int ratelimit_burst);
+extern int __printk_ratelimit(unsigned int ratelimit_ms,
+                              unsigned int ratelimit_burst);
 extern int printk_ratelimit(void);
 
 #define gprintk(lvl, fmt, args...) \


From xen-devel-bounces@lists.xenproject.org Fri Aug 01 07:32:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Aug 2025 07:32:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1066922.1431945 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhkFU-0000Vw-Fb; Fri, 01 Aug 2025 07:32:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1066922.1431945; Fri, 01 Aug 2025 07:32: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 1uhkFU-0000Vp-Cv; Fri, 01 Aug 2025 07:32:16 +0000
Received: by outflank-mailman (input) for mailman id 1066922;
 Fri, 01 Aug 2025 07:32:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=zIvO=2N=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uhkFT-0000Vh-2a
 for xen-devel@lists.xenproject.org; Fri, 01 Aug 2025 07:32:15 +0000
Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com
 [2a00:1450:4864:20::42f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a44b222f-6ea9-11f0-b895-0df219b8e170;
 Fri, 01 Aug 2025 09:32:13 +0200 (CEST)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-3b78bca0890so1230142f8f.3
 for <xen-devel@lists.xenproject.org>; Fri, 01 Aug 2025 00:32: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
 d9443c01a7336-241e8aab53dsm35587165ad.170.2025.08.01.00.32.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 01 Aug 2025 00:32: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>
X-Inumbo-ID: a44b222f-6ea9-11f0-b895-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754033532; x=1754638332; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=2b67bWBoJF+scvThy2PBo/iMaedszGZcsn14iUlxQnc=;
        b=Pt60jXdMah4PRiLUxpCx4OjLVw1W08QvMT7lTEntdNUD6Bb3GqXtqNHrmoEAvnqQOt
         vhYeYb+caAy9e3kC0f+Ze4RIDVe0Mdo4kMNXDeImA9UxU3FJ83XebRmWrH/RJjI8c3CF
         yFal/PD5UAyMG0pXx1tYHDa2SdDAlhPG9G/uSWoWAW+6XSzeHuwinFUSvCZTqbcClufT
         DG8f6X18d6QW9ahgvcn7wcaLgiue+SUz0ZmEzWKFHtVDLGz6Tp6kbxtWvcuV/1aF8fai
         TrOnTDOO0MZfD6/jWphaKRGauKlEWhYMw8WdWzOSvVK/jTqz+S+vvgxlBczA6+uwDGW0
         TACw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754033532; x=1754638332;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2b67bWBoJF+scvThy2PBo/iMaedszGZcsn14iUlxQnc=;
        b=mbR0MCkdtklMukAMbVCXybJEvzSvic7B3B8ndXHy1Ijccz4Ndt9mB0lOkkynoDPazu
         j39AGliu1NUf03HMEPAW/fHFgRxA7EmKEjDgnhfaO2++MpdVrDiIUhsPXIrEwHnW1gsx
         0NSDgCb4SIxxo0YrNNFp0vZSfK87th8ZEbE92lWvLLjoXVQC+CaUcsFTe6MiA0OP3Uy3
         fKIaZ8bDLedwULGLPvrgXLb+99PgdZ92J20R8YKBVDPHEmlMkWS/PSyb08tq5r2iQjqp
         xV1kw6DcWGDT/qICvHf0lSZFJquJjGUA0Jhgx1f7dJk2BN4/ADgftY8h5CbD+u3Zgugs
         CRVA==
X-Forwarded-Encrypted: i=1; AJvYcCWFVREGWTBfNbPoVcXkV6Q0PjczHbz4p9PuM/Bobm0X/UwOeNcpgSiiqZOFo1A8UBZ8ZxSA/5hvwiU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YznDbBBJWn/e6g+LCO4l6So7EsGVcsElxRSROa0Xaa7vOI0hMzx
	jYunVy/FpHxRAmGAoSNVkinY1QMHyt/wSgruBWCArLpPTxJ9g6sYC60BesLjjSSDqg0r2r8bvqn
	Jr3w=
X-Gm-Gg: ASbGncsqemNH3ZMv9wUPSk5zCfQ6iljUqjXRhfoMV6YTYWLJBSZAZ8NrX1ifa+3rfn3
	trDDwFiyKFlx/N8GeH62zdefWV7zoktnp4Z/KI2pTMzIwo2vta9RyffuCmmUJva2VlE97u/izdl
	pYdEf6+rlb+VqZGlofeI6+uvlJoQoXmSZj1ztX99GV7Doas6pMv1FK91d3a5RosCID3z65KbcPY
	qtshibs2vsfJ8hRkFOLGt7S7TYp+t6QLhzT/yeeUqH436So6th3ijUfGdCaPM+sdZdnabJy/HIR
	OxtKDLo9XjLV3a9Q0DmDHuYZtEG3YVnbPCIFnNp0kjsEoS93jsdWHhdwgTRnXbKjr1PWZGxG7S+
	h+r4d270NGCTSJoKb2gBz28DLZb7T722s8GKl4M9iCGhVQpyGQv6bXPGtBOjawAn54ipsOyeM1Z
	+C1SbJggCD1tZ0NQXJ/Q==
X-Google-Smtp-Source: AGHT+IEkXkMy42GWKskwXMrnY5nHLiWnBU3+JA8de7e3rvTZl/vL1puVkOR78ak55mJ9aIarn1w8wA==
X-Received: by 2002:a05:6000:4212:b0:3a3:63d3:369a with SMTP id ffacd0b85a97d-3b794fc182dmr8985694f8f.25.1754033532510;
        Fri, 01 Aug 2025 00:32:12 -0700 (PDT)
Message-ID: <d325eb5c-dba1-4063-a311-aefc3f84b620@suse.com>
Date: Fri, 1 Aug 2025 09:32:02 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] xen/console: remove __printk_ratelimit()
To: dmkhn@proton.me
Cc: Julien Grall <julien@xen.org>, andrew.cooper3@citrix.com,
 anthony.perard@vates.tech, michal.orzel@amd.com, roger.pau@citrix.com,
 sstabellini@kernel.org, dmukhin@ford.com, xen-devel@lists.xenproject.org
References: <20250725212235.753363-1-dmukhin@ford.com>
 <290ae958-4fba-42d8-a64b-d44845b85491@xen.org>
 <aade04e0-737f-481c-9ed1-1275969c2ef7@suse.com> <aIlIm7F5L3WQLoWd@kraken>
 <4292abbe-28b1-4545-87af-b37dd4ace53e@suse.com> <aIpfH5Cy10o8VMCu@kraken>
 <528f4bd1-4a2f-4fa1-94cc-363a5f5fdbea@suse.com> <aIvf+FHRFgqZmQgA@kraken>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aIvf+FHRFgqZmQgA@kraken>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 31.07.2025 23:28, dmkhn@proton.me wrote:
> On Thu, Jul 31, 2025 at 08:23:16AM +0200, Jan Beulich wrote:
>> On 30.07.2025 20:06, dmkhn@proton.me wrote:
>>> On Wed, Jul 30, 2025 at 07:35:04AM +0200, Jan Beulich wrote:
>>>> On 30.07.2025 00:18, dmkhn@proton.me wrote:
>>>>> On Mon, Jul 28, 2025 at 11:32:43AM +0200, Jan Beulich wrote:
>>>>>> On 26.07.2025 11:20, Julien Grall wrote:
>>>>>>> On 25/07/2025 22:24, dmkhn@proton.me wrote:
>>>>>>>> From: Denis Mukhin <dmukhin@ford.com>
>>>>>>>>
>>>>>>>> __printk_ratelimit() is never used outside of the console driver.
>>>>>>>> Remove it from the lib.h and merge with the public printk_ratelimit().
>>>>>>>
>>>>>>> Is this solving any sort of violation? Asking because even if the
>>>>>>> function is only used by one caller, I could see a benefit to be able to
>>>>>>> use different value for the ratelimit. So I leaning towards keep the
>>>>>>> code as-is.
>>>>>>
>>>>>> +1
>>>>>>
>>>>>> In fact I'm surprised (or maybe not) that we still don't make better use
>>>>>> the rate limiting functionality.
>>>>>
>>>>> Out of curiosity, do you have any ideas re: make better use of the rate
>>>>> limiting functionality?
>>>>
>>>> No concrete ones; thinking about this has been way too long ago.
>>>>
>>>>> Build-time parameterization?
>>>>
>>>> That and/or command line controls.
>>>
>>> Got it.
>>>
>>> Can you please explain why exporting __printk_ratelimit() is still required
>>> for implementation of build/command line settings in console.c?
>>
>> I didn't say console.c, did I? Whatever subsystem wanted to do proper rate
> 
> But you also did not say anything about idea of having per-subsystem rate
> limiting.
> 
>> limiting would need to gain some way of controlling this (as said, build
>> time or cmdline driven), and it'll then need that function: How would it
>> effect the behavior with custom ms and/or burst values, without having
>> that function to call? (It is another thing that the function, using static
>> variables rather than per-caller state, may not be quite ready for that
>> kind of use. Also the arbitrary and hard-coded 10 * 5 * 1000 there would
>> probably also want to be customizable.)
>>
>> What you may want to do for Misra's sake is make the function static for
>> the time being. The compiler will then fold it into its sole caller,
>> until some new user appears. (At that occasion dropping one of the
>> underscores may also be reasonable.)
> 
> Do I understand it correctly that you will accept the following submission:
>  1) make __printk_ratelimit() static
>  2) drop one underscore from the name

Yes, if you really think that's worth it.

Jan

>  3) keep the only call __printk_ratelimit() in a hope of there will be
>     per-subsystem rate limiting in the future?
> 
> --
> Denis
> 
>>
>> Jan
>>
> 



From xen-devel-bounces@lists.xenproject.org Fri Aug 01 07:34:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Aug 2025 07:34:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1066929.1431955 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhkI3-000150-RV; Fri, 01 Aug 2025 07:34:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1066929.1431955; Fri, 01 Aug 2025 07:34: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 1uhkI3-00014r-OR; Fri, 01 Aug 2025 07:34:55 +0000
Received: by outflank-mailman (input) for mailman id 1066929;
 Fri, 01 Aug 2025 07:34:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=zIvO=2N=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uhkI2-00014g-Mr
 for xen-devel@lists.xenproject.org; Fri, 01 Aug 2025 07:34:54 +0000
Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com
 [2a00:1450:4864:20::436])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 035cb61d-6eaa-11f0-b895-0df219b8e170;
 Fri, 01 Aug 2025 09:34:53 +0200 (CEST)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-3b78127c5d1so903880f8f.3
 for <xen-devel@lists.xenproject.org>; Fri, 01 Aug 2025 00:34:52 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-241e897716bsm36096025ad.112.2025.08.01.00.34.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 01 Aug 2025 00:34: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>
X-Inumbo-ID: 035cb61d-6eaa-11f0-b895-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754033692; x=1754638492; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Kxm3lXM7pDmrwdxmM1hDCMHJDqVvUQCcV3H3roPEu7g=;
        b=A0P72WJRk0VY0ptxhBR3WiWv7NQdOrImjDkY/PJ8dF3pZhQTtvPBv7qFQtr2OfxdF/
         f4j9Xtz5PSj18U47//0sNd1R/5VIkYX8mVHfuKV8wX/7RpJIVN9ymwpVVNvUusbsX4L2
         RwbskZeyQoH+VUWNB2mVQKGyswDQQBzLWiaUKpM1kDYvT97vHpauid+m3XsmU6LODAhl
         CJp8Y/bthw4tXjx1xLmvjoy5je/WjKd+R+i9CAFMSFXRLSSH2qexafJfWAAq465AeTkj
         4K8GNHLHtM8YRyxVVykGqxecWE+Yklb+B9qhTKTccRbwA4Iz7/BEBJb27oLGdkizXHWx
         GCdA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754033692; x=1754638492;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Kxm3lXM7pDmrwdxmM1hDCMHJDqVvUQCcV3H3roPEu7g=;
        b=cEpIVguJFpVcgRGdbMdqqZ+S1uNfHbUZfMkwrqMXeGfOmxOQfycd/nJwJlRTCGvxkd
         ALtGt6U23d9raO77ugo4oICVfYuW10CdcAkMm+8uFUAVaOgoiSNyWWgi6G72XjJii4hV
         MJT9GyLiGjGEKN2ZG8TcVsgyoug0i4PrE850sjOCAQO+RPX1byhOXZdu1So3jRvwY2iS
         F8n0/HizXN1QJ9KcunaardvlvrpiLWWaIEkhjGoc1m2tMVFW2udC8CI4/artc/WRSntm
         P+0sYeN2xx7H7cb5PUJVqLfSNZWVq4qbdOqQttBNV2RE9I3In3RlosTo7sB4Jgmpyfxw
         b5mg==
X-Forwarded-Encrypted: i=1; AJvYcCX/LvQ8nsq15CSULE0jMFPj9yWRhHEs7lruwW+ItKgHeMXizwUTczxi5YzcCdq0b19MuF9RUJlH0JY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxkyT3nzQ5+4ly1nArQ4kKiA656OmFcr5/rSgX19xlPXNTDDRvO
	6tUzi3Zd3x7QyWDDLQvjwypCNOqyAYligoD0U6BKatnuPrF71XkLSJmBpr74MFgR/A==
X-Gm-Gg: ASbGncv2eqWWj0i3xBvyozWuwqKTuLG7Pg8yeLk2u2uL7yiDrw3Sv0OnU8yxjJ/c4vA
	mQwptQzWvUeM9yrEzgp238f/Kw/pyoIfKm/Bc8kcITBauXGz3n7viwbmrc4g31ALIJuJi/aX/wb
	YQTmPNyy1gxvnM5QZXCVoXWhcRM2wTgDAnJQOM8dZ0gvQe0whjC0fDaY7q9WSnPcGYaByJoOzDC
	vCSwpl/vsquOYjl2aUBkDYSjnQp1pEzW54IEPMMN+vrEUkiX9qXjlEMc7FyDAtBJ/xEtKQe072U
	Zr1z+GrnEMb8ZtC9Zresf/SP/nVR+Plxqqz89XSlrNGHG5GWJ3v8+mb0zsyPrXAW1ijuYZHEZ6Z
	m+SPZ1nfOs3RuWEuCwYXJPfOu0gr8w2FaggjsbrPj+rZWeer7egph1NVnJEuGiD/dHJDZnpmged
	9vVZXJ4mc=
X-Google-Smtp-Source: AGHT+IGc8/XSOoI/e9fV9iLt7iwwpkt9DaKzZEsWk9grXlu0S4wbl0t1jLSKKm5xXMVfJb0daVoxwA==
X-Received: by 2002:a05:6000:2302:b0:3b5:dc05:79b with SMTP id ffacd0b85a97d-3b8d3445909mr1404883f8f.14.1754033692017;
        Fri, 01 Aug 2025 00:34:52 -0700 (PDT)
Message-ID: <cc3812ca-b929-416c-af75-78c3c3b0d664@suse.com>
Date: Fri, 1 Aug 2025 09:34:42 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] ns16550: ensure polling timer is disarmed
To: dmkhn@proton.me
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
References: <20250730031249.1613142-1-dmukhin@ford.com>
 <5a4dc92b-139d-4fa5-9baf-2ebc41bba758@suse.com> <aIplBkq7BL52Fn/Q@kraken>
 <78128ec6-b79f-4d4c-a298-72315b190036@suse.com> <aIvjJP6bpJpsQRtQ@kraken>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aIvjJP6bpJpsQRtQ@kraken>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 31.07.2025 23:42, dmkhn@proton.me wrote:
> On Thu, Jul 31, 2025 at 08:54:10AM +0200, Jan Beulich wrote:
>> On 30.07.2025 20:31, dmkhn@proton.me wrote:
>>> On Wed, Jul 30, 2025 at 10:12:54AM +0200, Jan Beulich wrote:
>>>> On 30.07.2025 05:13, dmkhn@proton.me wrote:
>>>>> From: Denis Mukhin <dmukhin@ford.com>
>>>>>
>>>>> As it stands, polling timer is kept in the list of timers even after the
>>>>> interrupts have been enabled / polling disabled on ns16550-compatible UART.
>>>>>
>>>>> Ensure polling timer is removed from the timer list once UART interrupts are
>>>>> enabled.
>>>>>
>>>>> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
>>>>
>>>> Wasn't it Andrew(?) who suggested something along these lines? That would
>>>> want reflecting by a tag then.
>>>
>>> Yes, indeed.
>>>
>>>>
>>>> Also, what's the real problem you want to solve here? The timer function
>>>> would be run one more time after ->intr_works is set, and then the timer
>>>> will be permanently inactive (up to a possible S3 resume). Is it being on
>>>> an inactive list an actual problem? (IOW I'd like to understand if the
>>>> change is merely cosmetic, or if there is some actual benefit.)
>>>
>>> My understanding is running polling timer one more time after the interrupts
>>> are enabled is the issue: if there's a pending timer when it is known the
>>> timer not needed, then the timer should be canceled.
>>
>> And the effort of canceling outweighs the one extra running of the timer?
> 
> I think so, because intr_works will not flip at run-time once set.
> If so, no need to keep the timer ready to be rearmed.

Well, to me it looks like a code size increase with extremely limited benefit.
Hence while likely I wouldn't outright NAK such a change, I also wouldn't ACK
it.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 01 09:22:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Aug 2025 09:22:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1067002.1431970 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhlyT-0006Kh-8Q; Fri, 01 Aug 2025 09:22:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1067002.1431970; Fri, 01 Aug 2025 09:22: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 1uhlyT-0006Ka-5i; Fri, 01 Aug 2025 09:22:49 +0000
Received: by outflank-mailman (input) for mailman id 1067002;
 Fri, 01 Aug 2025 09:22:47 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=j0QZ=2N=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1uhlyR-0006KP-C0
 for xen-devel@lists.xenproject.org; Fri, 01 Aug 2025 09:22:47 +0000
Received: from AM0PR83CU005.outbound.protection.outlook.com
 (mail-westeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c201::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 15d0b99e-6eb9-11f0-a320-13f23c93f187;
 Fri, 01 Aug 2025 11:22:46 +0200 (CEST)
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 (2603:10a6:20b:57a::22) by VI1PR03MB6144.eurprd03.prod.outlook.com
 (2603:10a6:800:141::12) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.16; Fri, 1 Aug
 2025 09:22:42 +0000
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::52f0:1815:60c9:8873]) by AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::52f0:1815:60c9:8873%5]) with mapi id 15.20.8964.023; Fri, 1 Aug 2025
 09:22: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>
X-Inumbo-ID: 15d0b99e-6eb9-11f0-a320-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wOdqgXYZkxcTQR75XTMrOwVzDYH0LzfbrJXPtnoGcdSQgv8XUFUAvsMCSDkF3o+Eb0bhZ0ECBVVu3EZ/SEUsBH+Hcrk+DnuRCcuc4Qbl1jqGr8MvqTNZ65w35pj4eMhnMHXGu+OOdadL7EDtVhBHAObHuznLLdHWHH38Wi5QO2MSm7R/UHoz2KOwhSycKJpUP7E8uwLEVOgY/0xX3SIqf/DtwoG4L2SJuqBNni1GrR9aDip5ggZMuoFQTDPGMhF0aO7140r9wR6v+BFmAJGGHrqPKcKZdnozJ03aKyUvcO8vVaTjKFVzzztyIYv/9DQcTm6ciIJ1Vd35bOHPWOrLSg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Dtx8p9qHm8yinBn9Qrplu2+CNXgBCVcnXs1ePwe02dA=;
 b=sbwuAp64lp6E0CIFjaLPt2tRVp3b31msygZTrnyRvJRWzqFIaG9CCnkaQyGyBa6im/g9nSQ5AEJg/dJpi1HM2j78m6qtEheR9+hTRGRZ+I+xdaLx/t1sXwzaZ2UIJmsuEm0+/894vNJNdHiln7ToyHah0741tHZ+ApJHdRisKrc0Lkb1VyyEstsMQEYW8h/QKG2G0OpYApAu9n2A5uOg8ooDnX8A6qMaV/gTzx/SuMJLO3lr0SbgfA1aJ2htUvaSEn3MaJZjW0zu3KHl/BZqlqCr741YXsXDfuZkiBFYirDZ1fELgGEMWWGa05O+e6h0yPuxW7Q05rf1+FX642xD/A==
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=Dtx8p9qHm8yinBn9Qrplu2+CNXgBCVcnXs1ePwe02dA=;
 b=M/SrNqRODOCuA7FkiBcf0pJu4v3b+ig1Ks6n9zlGXPT24w25ACKVeLEPmTq7B3TUY+MFYCPtekpguh42PTQroeY9saM2gGjbyFaehG/RM4ejk9APBRxoAyZjBKhPj7vZsSPaRiDJNPobFtMlNyBSVqHgsewV4sN/ddWL01Gr0SABo2aoZbTOgdcgY26HMqQ3OB5fnZU+xkj0jIySGO8U9UcfQkFWAMAKAnxc0GPA13E6wMDrLQqe8C9WrA7vXL7JEvKgxAtJhmDsuWgqhcA5O2rqI2mI++kAUtiCzPoa2rwzIHa5uCH6Qjunmz0Affxxc8z0FdDv78CJ86v0S4NTGQ==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Mykyta Poturai <Mykyta_Poturai@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>
Subject: [PATCH v1 0/3] dom0less pci passthrough support on Arm part 1
Thread-Topic: [PATCH v1 0/3] dom0less pci passthrough support on Arm part 1
Thread-Index: AQHcAsXVF02fN3kgykGEDkz2yi/slw==
Date: Fri, 1 Aug 2025 09:22:42 +0000
Message-ID: <cover.1753968306.git.mykyta_poturai@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AS2PR03MB10110:EE_|VI1PR03MB6144:EE_
x-ms-office365-filtering-correlation-id: 5b3d8938-b0df-4bb7-367b-08ddd0dcf7ad
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|376014|7416014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?YcpsI6BMsaAY9rz/sTOl7KwVM1SnS+pskGjixWgiFoAl8V6TYPPQjuVdPX?=
 =?iso-8859-1?Q?im/g5np6Unek0oSkU/H/gWRz1sokzwh18glNO4IcY8efFxUUhuilB8pBk6?=
 =?iso-8859-1?Q?Rgi4msvGJZSWkbfIMqwFh6oee/pSVdA5ndU7/liHywWpTvXgEHbBssuF5r?=
 =?iso-8859-1?Q?2tSrZko+rWfBi82OJE2HfNUSR7TQ3fQz91M4fQlgxef5ySNqXrDlehVwdO?=
 =?iso-8859-1?Q?Q2hwkOQx+7DSkQkH0i5srm3MpRnH6G63b/Zdsq6DO4AtefirhTGUUp8Igv?=
 =?iso-8859-1?Q?G+7SRzDO+dkpXO+6YgDpX8OwJGJMklG1bLXMMvT9X5N4pBp8FRIHXloFG4?=
 =?iso-8859-1?Q?MlMZ36hBgdBQtc6t/+6o/7h/xDW5mH2moNOb1aEQvLWTC0RyBsz8zudK3Z?=
 =?iso-8859-1?Q?xeb9kK1q93GocA3cn4pujTYLIrUNaGMXuTn62Lk3YvJdlGYEZaeJg8TZBj?=
 =?iso-8859-1?Q?dXt5Cc/4HxRmtRfK2XZp+a5mGNoV0P5hIwcK84mfTYLlUbeC/MEmufiFDC?=
 =?iso-8859-1?Q?a/mwZly2k/QhJL3dWxMWrv+dMCeb/Jt9QRK4YJ21Q8X1P72F7vVQl2eR2C?=
 =?iso-8859-1?Q?9ashNSvhmpozIky0PDocpzLInDH96w48NVU6YcUXYEoxfn/ocMw67CcAqZ?=
 =?iso-8859-1?Q?zkCFSIlcsmahmWZXUeLfYCjVmv7QQ6ToEvo2p4F49SxfE19VNCWBFVZBwO?=
 =?iso-8859-1?Q?fNcQs8XIYm51Ps2Fi7PggiYO/ZhimwL1cocxkBVYKjvu9VNDsrlVG6xOO8?=
 =?iso-8859-1?Q?tt6oFWDOb/Jxtgn+7wyWmpp+bhYpqkWIjvnM9oqfFEAH3uljvpfeEKzEVO?=
 =?iso-8859-1?Q?rKXz4J2Bl7iISnjGrXH2+GBdcgjR1buo69dEd0OiyOMr1EmCDh8Mni+jt2?=
 =?iso-8859-1?Q?5T/KnNeY4awWLcj1miEGECeoQZUZuxbMI66BGD7gjRQCpw8m9uXBHWyF8R?=
 =?iso-8859-1?Q?MmaAgoteyBbYZ8db5VFZm9CiZdhqgevcUIJr7iEYVvNbdn8736BwJWZi17?=
 =?iso-8859-1?Q?r9gNMAjI4swcebji1KkaJ9N750zQjk0O09zWbGYaV5/Oou/dFWgXh2X7p0?=
 =?iso-8859-1?Q?6oJfTNVWF9fx7FTH33CmGpD2jGLxCilPy/zALpuLsf0cDGQI+Tt4jKGG0w?=
 =?iso-8859-1?Q?AP/kJ9nME7NPD/xLiUnm8BxIFUP2zWvcJndF1Y/frrlBb0iV/kfS2gjK+e?=
 =?iso-8859-1?Q?2o7bom3Kah1FBOISZux+E5WBGYrq2KLCtpal5FVbuwlvLRElBnnYg5diHb?=
 =?iso-8859-1?Q?RHodSS101+OS2pigJ0teYC3X0Xv9wb0FQ/IpR+xfYAKftb8KOqGjgDKqwn?=
 =?iso-8859-1?Q?pZcB6cpekGaHqzPs9IFw9uctNX08PazkpGO1crV/hRCN6O+FcMRmdQtIP2?=
 =?iso-8859-1?Q?1z7hlzjRfetzLjtLr80MPSYUG+ica6F3m6fB2GzmEi+41gjZe/QnKzUvme?=
 =?iso-8859-1?Q?Oiu8fYvrtBRvanmLOonuoW2r6s6clmIX4E8NVjsbU77M2PBzj3cIDSX3L0?=
 =?iso-8859-1?Q?ZHlLzmb2ry40IwBhrmDtP89FsvE/1DPCpfuIXCDz/kpQ=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB10110.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?ZnxHf72lx0a6F29HTtAyJ2yVGVDfMSw0xAIbqkcSmC6vBfh+/Y6wiMxwHF?=
 =?iso-8859-1?Q?OqwAg6QVxNAIzBiT+qPNhs0ZBJ41+qLEC1+Rzto1UlvpjoVxrNzYnxv5hQ?=
 =?iso-8859-1?Q?X55Eho3V+l4HyxDXHfceWVaEl/02sTkHH9jZmzt/GlncaxQ2YUkQI21xbI?=
 =?iso-8859-1?Q?Q1Qm2slZy9F+656q5VoQu23aML6lM1EUhWj1Ze3/Nix0fJsy5JbMcjqQDg?=
 =?iso-8859-1?Q?F5+fCGn1o2pXfD0V0SkTJaQmZsBvoBe4xMpVW283BymrUi6PaJsvgguA/y?=
 =?iso-8859-1?Q?kN87/FJHE9yykZFiymWMHqadhpxVLeb7Y/S9PT3GS4WV6Ed6OITojHAiRE?=
 =?iso-8859-1?Q?6bd4x51413NuJbMwihXmUkIXiDPmAY1H4P0nyHqRhnJ9DvwjI4+KleFEAK?=
 =?iso-8859-1?Q?Un46qJVMOhJ0X8gt3CZqsrhTD4k3R32gx9S7CpyOBWUkEQzD4i81OQInRy?=
 =?iso-8859-1?Q?KilLSyb7FRBTqQpl38s8hKdufaAsDvvkpX7EmoaAhxA/ioA0i7nnuztTZy?=
 =?iso-8859-1?Q?StCQ9HxrRnMeWKstIRGDpTqbtsc6XCJJuM4DETwPfs/EL07NPxYrV38GNO?=
 =?iso-8859-1?Q?rWa9THvv1Tq7jviQ11bytnWMEuoRfbw4RhXkgCHEtuebJ/MeE/GoJ76oJu?=
 =?iso-8859-1?Q?IJCQute+xlzsI53Tq3Y7PZ5YSis6FoUZILcYkNSKBxAphBkASSeDE/DGgL?=
 =?iso-8859-1?Q?kXwyXHYmDk4ft6CeTCekeuQKrtNkok1+FJQQRnjFvLYRO+qL1h+WKhpKkH?=
 =?iso-8859-1?Q?bjBDzKifrDE0jPdU1mKMVHIvIcFQcT9NHy5IR5hA5I4C6dFWnzkc+Au9OM?=
 =?iso-8859-1?Q?MvU010Cbps9hVl9tAMiMdVPBmyj7/PDySDTdwAQ2V881JHlQYzY8zN+MO6?=
 =?iso-8859-1?Q?vuf1pffMu+EplbTcPOsstdkyQOd+Orw+abmOEne14jWB77fn3nNVO5dMir?=
 =?iso-8859-1?Q?8dNAhSc8NR6Wi8RP9zOcnIm8GhrwUq3kJ+xGaZMHbKBQJz9WpIXiT4PWPV?=
 =?iso-8859-1?Q?yh9o5y7A61mVYP5feBhx67h45gVQeeHHgpGw98ogC3YZfXY85DeswzgSmd?=
 =?iso-8859-1?Q?rnKsaArb5n/69RumG8nLhV4yOeez0zKwRNLmOIJFyw8lmhEjLlWq+CeD4w?=
 =?iso-8859-1?Q?axu7hWmV5bcZ5IGEKzQ1PJJhji4VRPSqDQeoV1Agq3LrnilHgjZ/JUJ4d7?=
 =?iso-8859-1?Q?bKyFbqL5xBEH5zeMoH94vGCJW0XR6BNFpn8iFfE5H6+fJq2xEQP/t7HG47?=
 =?iso-8859-1?Q?Uhy1CtHosrTj4nG2h/lZMKEKtCbXYzvvLoi0DMWJ8NIoy6jCkDjLDnsQpZ?=
 =?iso-8859-1?Q?DR2tX/8QD5/Xv4T5RsL01N7UgWckf9jr2KDRDFo3vnXxHQdHzz63ngF6T0?=
 =?iso-8859-1?Q?A72vkMaLItmHzwpir12jraWn7xDLdH3CA2uHhxXYDBUFlgUIWiZQZ40Xx1?=
 =?iso-8859-1?Q?HvH7av+a83vJ+k+5LDLv/wKr/ABKJ9A2F+oqbP//EPjzLUgRDSgmorqFpP?=
 =?iso-8859-1?Q?RUBva9sGBirjX9wJHTBKV4ipZGydqUupQLGIFNPvU35JhKn29WpBzLdZh0?=
 =?iso-8859-1?Q?tY321A9Q0qBv+CQkrs6q34VfSE2ISwAOmcC5VQYFp4GIDWSl33fpgqbW2C?=
 =?iso-8859-1?Q?xIBHuXQONj8VSp+fGa7uCGclW5C0IoiYFmmj7q5rehAaWFq/Mv7hsD2w?=
 =?iso-8859-1?Q?=3D=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: AS2PR03MB10110.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5b3d8938-b0df-4bb7-367b-08ddd0dcf7ad
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Aug 2025 09:22:42.2747
 (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: UAM7G/W93dXWmXq3s6ZsczgFpXf7ZYsgxHnbixO/c6s+ZT5Rx/+d+eg7ATQdrhjZTkgAzNMcPJmnj0kpcAc2tQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR03MB6144

This series adds basic PCI device enumeration in Xen. This will allow us to=
 not
rely on Dom0 enumeration for supported controllers, which will enable PCI
passthrough for dom0less setups.

Enumeration is disabled by default and can be enabled with "pci-scan" cmdli=
ne
option. Discovered devices are added to Xen and assigned to dom_io by defau=
lt.

Edward Pickup (1):
  arm/pci: Add pci-scan boot argument

Luca Fancellu (2):
  xen/pci: modify pci_add_device to handle device add by Xen
  xen/pci: add discovered PCI device at boot

 docs/misc/xen-command-line.pandoc  |  7 ++++
 xen/arch/arm/include/asm/pci.h     | 11 ++++++
 xen/arch/arm/pci/pci-host-common.c |  1 +
 xen/arch/arm/pci/pci.c             | 27 ++++++++++++-
 xen/arch/x86/physdev.c             |  9 ++---
 xen/drivers/passthrough/pci.c      | 62 +++++++++++++++++++++++-------
 xen/drivers/pci/physdev.c          |  3 +-
 xen/include/xen/pci.h              |  4 +-
 8 files changed, 102 insertions(+), 22 deletions(-)

--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Fri Aug 01 09:22:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Aug 2025 09:22:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1067003.1431979 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhlyV-0006Yb-KC; Fri, 01 Aug 2025 09:22:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1067003.1431979; Fri, 01 Aug 2025 09:22:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhlyV-0006YU-HI; Fri, 01 Aug 2025 09:22:51 +0000
Received: by outflank-mailman (input) for mailman id 1067003;
 Fri, 01 Aug 2025 09:22:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=j0QZ=2N=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1uhlyU-0006Wd-CT
 for xen-devel@lists.xenproject.org; Fri, 01 Aug 2025 09:22:50 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 16fe0891-6eb9-11f0-b895-0df219b8e170;
 Fri, 01 Aug 2025 11:22:48 +0200 (CEST)
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 (2603:10a6:20b:57a::22) by VI1PR03MB10032.eurprd03.prod.outlook.com
 (2603:10a6:800:1c7::10) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.13; Fri, 1 Aug
 2025 09:22:43 +0000
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::52f0:1815:60c9:8873]) by AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::52f0:1815:60c9:8873%5]) with mapi id 15.20.8964.023; Fri, 1 Aug 2025
 09:22: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>
X-Inumbo-ID: 16fe0891-6eb9-11f0-b895-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lKoIukvHor2GWksWgFDwCcUdFSXFjLTkTyy179S/xnefcXs4n2ZoYKTL/wN9rXgQXQgqwq8yh0sN1xlfoyjucysrhhQIZT3qO38OC9EQOGVzSuTsjn3ir9rMv/j+ok9YnvBdVwpt74sveeGd7Y+ucPrwy4YwMzQNkDA526eq3zC77SLaEaCXmLbZwxp8qN72iojVySxln7GClbPk1XJbA/bIWyr3x8wi4p3OqXNt+6f0cWfm7aLIh4Fz9+6VJ7qZpjLJHm2Lsz2kMNgSEpeD5NALP1P2nq5peHpaT2esikx8jiu/CIN5TpdIzeUk50hXmDsKAOSFsjBEivGzIZGnAA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=BanVMEjZRx8aOaNUyzbBjnmHksdpZUi3wpwgwjwI8Ts=;
 b=wwR6194Yxmg39KPd89kVWLI22g7UqtDOUzmEBjO+qYDIKb2brcbcQD27fvqM4mgNrmPE9eXdhNPA+tS56UCyEfZOi8Txn2XO2p1NotSDWRCvGVZ2L2hFx7UKipqzkeOoACGzwD/W2jz54S85bQ4bZDifVk9/8eFeCA1qoh5XTpeOi1RaQu1hCJyVeRNY9ZQJYFpFZPL/l9INBnoLndG334I6UPqgztjuoKnLMHuETmsHVi6P9Rgtw5j+Q456FN0szZDLq++EWt0bkE/mZw6a7QroJsxWmjDZUdrcaaOXRMiw03QaFqN09M/Wae5roE3UWLPGNEYKJdKq+YpctllPJg==
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=BanVMEjZRx8aOaNUyzbBjnmHksdpZUi3wpwgwjwI8Ts=;
 b=azufd/HJo99V295DXIK/Or3Ol7rOJ4WSRXK5eUnlu85or00B7gfkGclmSmRgnhWTPY5ASoeALfT0pWNwmRoZbooMuWzCzN0q1w/lo/VrsPQw7SI9bzDzfJkBkLqT11fEY2mUzNtnap0gpv+xpd+WKnr784wmAE8ptvi2T+SVcL8XwmJ9Ub273LjELMUgiBlQHyu+avs/TQoB7uQJc79Mm9lhGAedpapcWRY8dVZuo5uXtnxVs+cxZNyGyno+pel3R7N6aoXMZySfNwJESvmOb2f8Ytyp1j+QpRPj4FqGolEtA9WF5NwmVzmDC+KKISgcxp9C0mKj7B4GpCTwB1hf3g==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Edward Pickup <Edward.Pickup@arm.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Luca Fancellu <luca.fancellu@arm.com>, Mykyta
 Poturai <Mykyta_Poturai@epam.com>, Stewart Hildebrand
	<stewart.hildebrand@amd.com>
Subject: [PATCH v1 1/3] arm/pci: Add pci-scan boot argument
Thread-Topic: [PATCH v1 1/3] arm/pci: Add pci-scan boot argument
Thread-Index: AQHcAsXViqFNiGIadUqVpLIjHx6cnw==
Date: Fri, 1 Aug 2025 09:22:42 +0000
Message-ID:
 <98c8889e07d6c82067309d8458e15dd52145b467.1753968306.git.mykyta_poturai@epam.com>
References: <cover.1753968306.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1753968306.git.mykyta_poturai@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AS2PR03MB10110:EE_|VI1PR03MB10032:EE_
x-ms-office365-filtering-correlation-id: a3558229-a14a-40ba-93ba-08ddd0dcf80c
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|7416014|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?vkjDhpB8nkXoFKeTwgSg/GqQE45tNaUw7yLgQGYurPMiJFAaenlA35j4wn?=
 =?iso-8859-1?Q?XYUXRU7lq1nHoY3mApFBt4RlkbvoMN6x/ZzRqrIKLGMg7RjWeI94ZcMbQY?=
 =?iso-8859-1?Q?xnblMjUI7yZlnstsDvvz+f33ufZLd9TCnxiBJhuue9NMZYVrr0ms8EFRkq?=
 =?iso-8859-1?Q?rgBWEBKFmusLP5XF0KG5unt9N8dwKX4dWGgQvAxBIpcEkyGwEw2OEXt45a?=
 =?iso-8859-1?Q?BGnTwUH+9WySncpc4/VDN7ABkBezUoasTjtZH76SbOud4r1cd1TxRup/Dg?=
 =?iso-8859-1?Q?0Qr+VzfkaAvrZTnKLvtyI3aeYPOfCbQUrok2snYGYMzEKwAp7W4oCh5AmR?=
 =?iso-8859-1?Q?sRjIBzHNzWVBQh9CHmj0BjtMlk0GH+0f2DOVzmuUq/HFgB+KywbCGHSUDU?=
 =?iso-8859-1?Q?Pe91QvC6SacIU2qU7HG4FXaepqIz2FjN1oKbg6MvX0H94hTjrIEqzonsS7?=
 =?iso-8859-1?Q?vbYeYMCfnJK9dnuoOyxKnmWB9EQQ361e1rzY7bqm4KZkQKPSeQJ0uhIfCC?=
 =?iso-8859-1?Q?XbpkjTLicvR8CkqnkrrH4q898i/wbF4Id2GTieY8lPhnZs39yXv7nB52UP?=
 =?iso-8859-1?Q?sZfFremX7ceUr8OjpfW/hgeOvDGK5cg0mue1PusgGAN1f/IUHET+D3XU03?=
 =?iso-8859-1?Q?zrh/NWz8NHLMGMiZbiAxcqQuGutlChsjtVjvjT5cxwu1i2StjzQ+ezzu+r?=
 =?iso-8859-1?Q?RWcNaOt3wMUIxTbAjW4ZPkXMHjrj8ul43yf9R8gL4B5cAz4R2yCHQuXWI4?=
 =?iso-8859-1?Q?AWd6ATbmtO8H28mE6Dz3kpI8xhTHS4BdRQMesURFRb+CZn9ngP/C51pEiF?=
 =?iso-8859-1?Q?vM0pzOWAH71ufmZSiXxK/qPbhEq6k+8Sc+qAoUKoEIckfn4sQPYPaaWYH9?=
 =?iso-8859-1?Q?DbiacnQiDcZ2jfF+c59tFPMmHqM+sPisr7z9gckcV/JCSNlZeu6fEVbRPA?=
 =?iso-8859-1?Q?nZeXLbcreqVwWr3ZCXFROxf8RmcSfVVW8GnLvHev6bUZTl0y47HHgPnPa6?=
 =?iso-8859-1?Q?Er4TPctnEuhu1TyTHU54BZpRoXJHMSgwgKmsQw61jT9ek53eoIzXvgaClZ?=
 =?iso-8859-1?Q?EhTL/wJ5agdemMxsZ1t+c2tdIAkrRgwoLTexubhClZarK1h/Fxjcn91FDX?=
 =?iso-8859-1?Q?MAq4X+bSjIAKyyPS1KbMjrhDfLDI8JtG+sWHU8GOlFJqQaSCHudXSe+NUj?=
 =?iso-8859-1?Q?YRplQpac18o9/HxsNsOZ+QjxT0cxhQR5BaPMTMuS32JrSrooWzmtBt23Vn?=
 =?iso-8859-1?Q?GVKEKRTHaItG+mJ0sbVre6o0tBw1lQcUai4KEcip+IrIUwpx6i7OtCmq8F?=
 =?iso-8859-1?Q?6yj+R3f9ItBDu4JjWk2lt7evCR8tAQW+6wEhEsJ8DSrnwQy5wJhn3qJ01R?=
 =?iso-8859-1?Q?XEPJv4JLQ4VLUA+PO0Azi3LavpKDLwQCZm+HCiyB1NqhTXa5hhY2hHbN4m?=
 =?iso-8859-1?Q?HkMXO5kfL9i1TvOk71Cy3bI6kvW5Th/QmVUYr9H0aP+kVlNoMaA3Gezey3?=
 =?iso-8859-1?Q?MvHaG0egNeGGDITDaCYernlilLIwisNQpNAzSrC9831UYRyrSNGouYEA5l?=
 =?iso-8859-1?Q?/72JuoI=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB10110.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?5khTiqiQ9MCdb6XB1n34rWYi5ssjJfiufwXOJ79ZB7P3CkBmNcH2j19lac?=
 =?iso-8859-1?Q?uN4AATenip6mCjXnpVF761YPOAdvyDprnk/Tb79QMqRa2ui6yp89WiG3TD?=
 =?iso-8859-1?Q?+icn0znMsgZStG2iQVDKXl18vpthlbAwy2xpkZd1bKnqAzG4oOsOJiq807?=
 =?iso-8859-1?Q?NipG3TAz5BDIWiIoBL1LJjiGwJQUA+EElXIpZnh1wj0CUtmQSDMxcjYeqa?=
 =?iso-8859-1?Q?i3kU7ggj24bYQ3XwcLLgcY8g+uf70+x+uWklwb1+Pe9nFQUHisLzYm+uKD?=
 =?iso-8859-1?Q?WImfTC8PBFMZVUTyD+FvuSUSmK+1NIgi+HU4sODZWRcHleLdBC24Gyp0i9?=
 =?iso-8859-1?Q?jpeGpQvQBS18WuN0zgyHW3BwRVaVTMqCWznQXqm8Ppdjg2CsIwxtXLCJJ9?=
 =?iso-8859-1?Q?y1Gv6lM6fXLwO4kWflGfKKJvdYiPt5Iar3Bgsm6nq/9X92nd8GO8ASFNEs?=
 =?iso-8859-1?Q?QHhCgYN9gnyFXK24azaUEbRslXnFJ9iaKEsQpMqfbeNcHiRr8B98HeDTNS?=
 =?iso-8859-1?Q?8gn4uqLoMdGaVWSBrqmEd0sfdWJoTLzrdzw5Qu5/bBlj7oI97UX5vPxAR3?=
 =?iso-8859-1?Q?L863e3GNmvoNskzXoQwgQQTTtklwYXTx2NVY5iv9HMGSYX2sfknc+QUkFG?=
 =?iso-8859-1?Q?Y+eR06R9Vw4Kb/Oiz8eHdZymYMBzqESuOgBHOJ6Wf7LJqBTIQ14x0etOEN?=
 =?iso-8859-1?Q?W5FBC2erb6jx6rUKYv8L5A3PH7K1OU4ImzY+zQ54MkBsf7yeaHN5TW9plu?=
 =?iso-8859-1?Q?gcuI0/GvDcPpufBG3BzjGrfAjKKzW5N4aCQ0xmumlJL1gcHVmulnVFrOZb?=
 =?iso-8859-1?Q?XcrnyO8dXBoG/NGZLa0IXAry8fY8FxziADRIpxDVRvHYd4AlMBxAeTPTIu?=
 =?iso-8859-1?Q?db3yejgQ+y1fSVZgEgmVaFHwWh7ruLMJuBX/ki+ZEzWBQEtU/4/S73uacV?=
 =?iso-8859-1?Q?U1BObNTrsp31HAor3gkd7FFHXt//xx1igD+ieuSIiMztzFfyvLbmVMfvUe?=
 =?iso-8859-1?Q?PrS8VBnWSedLj1lnHAAjkZBr8dv3G0BbpTtlpPXPJbiKnTITnIEkYt9QOi?=
 =?iso-8859-1?Q?B3SPpALvFb70+Ai39ID4iAO64a67V4E0EJ4RdyjXV1O7O8HnM56hZ8nkiH?=
 =?iso-8859-1?Q?8GycIzkoIaNwW08Ga0f7k1svFcVyoQ6ZAjIh+VvYo8kN4CpZ7k4LmN5n2Y?=
 =?iso-8859-1?Q?jZoKw3mUXCsNEntz/qQrb2DJ0Q6kT+nSWACUDMakN08lcXhOYiqTCjkGLv?=
 =?iso-8859-1?Q?OR2KWd9mWwuUEdHqbBNJ0LUj3PXL8VPe9Y279OWM77tmrMAiqLwQ5gV89l?=
 =?iso-8859-1?Q?XP+8fmW1P60QEZwNkQ6qAd64Ae9sJhEVTqn70zqfWamZnHrr98NS31Fci3?=
 =?iso-8859-1?Q?KrcZwhmTGPSZFRBsZx4oBN2uTV1cT4qz1rK5zsAw4iNfoWq4vNMn8/EADJ?=
 =?iso-8859-1?Q?Ty0Ykr4XnCiEfQW659DG4P2aB/zm0bJzWbAJzQ0MhJ0WXzZc+Zt+3uTSkw?=
 =?iso-8859-1?Q?pWaeWFeUIca9iFWMwhpkEeCOU5u/9oH6ISK0RajMsFaYgdTFCxI+4uV/3C?=
 =?iso-8859-1?Q?OU+k8mV9VicW/1+rcO+/NMlSBTzsTY0a0pHg3fADKidfs69bALE5ZyI44d?=
 =?iso-8859-1?Q?oQVIePgBmQU7C6I8Ls+3KH7yB62F3C6zaODxnXnqhPmJhGQC8yNGEO3w?=
 =?iso-8859-1?Q?=3D=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: AS2PR03MB10110.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a3558229-a14a-40ba-93ba-08ddd0dcf80c
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Aug 2025 09:22:42.7687
 (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: 4tlqLzpDlpN8ckIrqlWBS98Uuij3EKWnilJDXBtf6vzIDlnesUt33hDHqoPvkSPbN7SzLMmgBkgoJnnSbKyp1w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR03MB10032

From: Edward Pickup <Edward.Pickup@arm.com>

This patch adds a Xen boot arguments that, if enabled, causes a call to
existing code to scan pci devices enumerated by the firmware.

This patch also makes an existing debug function viewable outside its
translation unit, and uses this to dump the PCI devices found.
The debug message is controlled by config DEBUG.

Additionally, this patch modifies segment loading to ensure that PCI
devices on other segments are properly found.

This will be needed ahead of dom0less support for pci passthrough on
arm.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
Signed-off-by: Edward Pickup <Edward.Pickup@arm.com>
Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
(cherry picked from commit bce463e1588a45e1bfdf59fc0d5f88b16604e439 from
 the downstream branch poc/pci-passthrough from
 https://gitlab.com/xen-project/people/bmarquis/xen-arm-poc.git)

changes since cherry-pick:
* s/always_inline/inline/
* replace additional kconfig option with config DEBUG

Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
---
 docs/misc/xen-command-line.pandoc  |  7 +++++++
 xen/arch/arm/include/asm/pci.h     | 11 +++++++++++
 xen/arch/arm/pci/pci-host-common.c |  1 +
 xen/arch/arm/pci/pci.c             | 26 ++++++++++++++++++++++++--
 xen/drivers/passthrough/pci.c      |  2 +-
 xen/include/xen/pci.h              |  1 +
 6 files changed, 45 insertions(+), 3 deletions(-)

diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line=
.pandoc
index 6865a61220..72c122ea32 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -2058,6 +2058,13 @@ This option can be specified more than once (up to 8=
 times at present).
=20
 Flag to enable or disable support for PCI passthrough
=20
+### pci-scan (arm)
+> `=3D <boolean>`
+
+> Default: `false`
+
+Flag to enable or disable Xen PCI scan at boot.
+
 ### pcid (x86)
 > `=3D <boolean> | xpti=3D<bool>`
=20
diff --git a/xen/arch/arm/include/asm/pci.h b/xen/arch/arm/include/asm/pci.=
h
index 08ffcd4438..0afdc90de0 100644
--- a/xen/arch/arm/include/asm/pci.h
+++ b/xen/arch/arm/include/asm/pci.h
@@ -23,6 +23,7 @@
 #define pci_to_dev(pcidev) (&(pcidev)->arch.dev)
=20
 extern bool pci_passthrough_enabled;
+extern bool pci_scan_enabled;
=20
 struct rangeset;
=20
@@ -128,6 +129,11 @@ static always_inline bool is_pci_passthrough_enabled(v=
oid)
     return pci_passthrough_enabled;
 }
=20
+static inline bool is_pci_scan_enabled(void)
+{
+    return pci_scan_enabled;
+}
+
 void arch_pci_init_pdev(struct pci_dev *pdev);
=20
 int pci_get_new_domain_nr(void);
@@ -155,6 +161,11 @@ bool arch_pci_device_physdevop(void);
=20
 #else   /*!CONFIG_HAS_PCI*/
=20
+static inline bool is_pci_scan_enabled(void)
+{
+    return false;
+}
+
 struct pci_dev;
=20
 static inline void arch_pci_init_pdev(struct pci_dev *pdev) {}
diff --git a/xen/arch/arm/pci/pci-host-common.c b/xen/arch/arm/pci/pci-host=
-common.c
index 487c545f3a..d3481b05eb 100644
--- a/xen/arch/arm/pci/pci-host-common.c
+++ b/xen/arch/arm/pci/pci-host-common.c
@@ -284,6 +284,7 @@ pci_host_common_probe(struct dt_device_node *dev,
     }
=20
     pci_add_host_bridge(bridge);
+    pci_add_segment(bridge->segment);
=20
     return bridge;
=20
diff --git a/xen/arch/arm/pci/pci.c b/xen/arch/arm/pci/pci.c
index beb1f971fa..eea264db0e 100644
--- a/xen/arch/arm/pci/pci.c
+++ b/xen/arch/arm/pci/pci.c
@@ -91,8 +91,13 @@ bool arch_pci_device_physdevop(void)
 bool __read_mostly pci_passthrough_enabled;
 boolean_param("pci-passthrough", pci_passthrough_enabled);
=20
+/* By default pci scan is disabled. */
+bool __read_mostly pci_scan_enabled;
+boolean_param("pci-scan", pci_scan_enabled);
+
 static int __init pci_init(void)
 {
+    int ret;
     /*
      * Enable PCI passthrough when has been enabled explicitly
      * (pci-passthrough=3Don).
@@ -104,9 +109,26 @@ static int __init pci_init(void)
         panic("Could not initialize PCI segment 0\n");
=20
     if ( acpi_disabled )
-        return dt_pci_init();
+        ret =3D dt_pci_init();
     else
-        return acpi_pci_init();
+        ret =3D acpi_pci_init();
+
+    if ( ret < 0 )
+        return ret;
+
+    if ( is_pci_scan_enabled() )
+    {
+        ret =3D scan_pci_devices();
+
+        if ( ret < 0 )
+            return ret;
+
+#ifdef DEBUG
+        dump_pci_devices('c');
+#endif
+    }
+
+    return 0;
 }
 __initcall(pci_init);
=20
diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
index 3edcfa8a04..fa03dafac7 100644
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -1384,7 +1384,7 @@ static int cf_check _dump_pci_devices(struct pci_seg =
*pseg, void *arg)
     return 0;
 }
=20
-static void cf_check dump_pci_devices(unsigned char ch)
+void cf_check dump_pci_devices(unsigned char ch)
 {
     printk("=3D=3D=3D=3D PCI devices =3D=3D=3D=3D\n");
     pcidevs_lock();
diff --git a/xen/include/xen/pci.h b/xen/include/xen/pci.h
index 130c2a8c1a..5c242278b9 100644
--- a/xen/include/xen/pci.h
+++ b/xen/include/xen/pci.h
@@ -217,6 +217,7 @@ static always_inline bool pcidevs_trylock(void)
 bool pci_known_segment(u16 seg);
 bool pci_device_detect(u16 seg, u8 bus, u8 dev, u8 func);
 int scan_pci_devices(void);
+void dump_pci_devices(unsigned char ch);
 enum pdev_type pdev_type(u16 seg, u8 bus, u8 devfn);
 int find_upstream_bridge(u16 seg, u8 *bus, u8 *devfn, u8 *secbus);
=20
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Fri Aug 01 09:22:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Aug 2025 09:22:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1067005.1432000 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhlyY-00071O-7V; Fri, 01 Aug 2025 09:22:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1067005.1432000; Fri, 01 Aug 2025 09:22: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 1uhlyY-00071F-3s; Fri, 01 Aug 2025 09:22:54 +0000
Received: by outflank-mailman (input) for mailman id 1067005;
 Fri, 01 Aug 2025 09:22:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=j0QZ=2N=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1uhlyX-0006Wd-2T
 for xen-devel@lists.xenproject.org; Fri, 01 Aug 2025 09:22:53 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 190dc2da-6eb9-11f0-b895-0df219b8e170;
 Fri, 01 Aug 2025 11:22:51 +0200 (CEST)
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 (2603:10a6:20b:57a::22) by VI1PR03MB10032.eurprd03.prod.outlook.com
 (2603:10a6:800:1c7::10) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.13; Fri, 1 Aug
 2025 09:22:45 +0000
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::52f0:1815:60c9:8873]) by AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::52f0:1815:60c9:8873%5]) with mapi id 15.20.8964.023; Fri, 1 Aug 2025
 09:22: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>
X-Inumbo-ID: 190dc2da-6eb9-11f0-b895-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nxt0oiV0uEVZqmxLq8xkIOpJF1b4v2sv9ABS1ORdNUX+P7VcC1485jEMYgY+QA1W/glyUIu4Vz7/0pKWO5j1vsKr9MHpMEQEP3UX6SGKqCXi97sDXX3tqw786v0+smqWw7hzY/pyViRmDW2R2R0V9DYwJbTaLRJwDDxLGR8LqqTa7hUFk9yVC0ZmxRIVBb62WdI/65phDzdgB51QRrvJLSsFXWHPGoHokLEKysVZtUWeY6pEcU2xS7V+UHTA0NdhvZr0fe1GYrlVoRmlMC036rWbGM89MSJu29fQuFQZSPiz5od0+XjBIFj8z4zND4pauGrRGcnXZwPhBcFpqtXgbg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=e64OALVPA2DRTruFZiGWQJ7H25VJryTEDwAJlln/x14=;
 b=SiHWIbr+BAwMUY+XOfyhWOcCMw4SxuUtMtdFKG0JVe4BlayMAbRvfOHHVDAJU+cMapu6zkhOaWNZ4vrkQ+Ea6UyHR4q17+hyJyczvI/0bMnN9M8it4MdXyylOYgrdM6mnPsMTvM5+XzY2uAA/WTzthCpbjlSpGMWFuW+l4MASkzAuGYuXOH7UpJrka+g0oEwDUfujmX4wkASnLIoj1QNlQTWjwngPkWF1UZwqLblb/ihmxEy8VCd8f+xKxCy+ux1GkAIpQhnS+pgOZjQ5uVQTkROxpV6a72dkKaJIObCwxRzOuvZcA/7+t9+mug0lR7lRyD+th1oObUTb41pw+VgTQ==
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=e64OALVPA2DRTruFZiGWQJ7H25VJryTEDwAJlln/x14=;
 b=H3RZZT/GXAe3uLdb0BTpCHCcV45v9Zs7aGpdMQvaFmms3VtMFGjtJtExEk47u99ztBDbp89cYNwixnwF8fdiu1AYIp6OHsoistCuqPB6GhtDr0KilIGMitI8iiiqIFv5WJvSnrgvWn+vZnWZcgRVCHvF1bU0ZYBvxz7jSD6SbGgIDsJJ5TAbuKQwCxilOARjLK0L1ax0tkCqIZhKvBLTuMdV4IE+ebaj2lHFBhYuoQ/ur9GfTf1Ztb/grNTSj490I9E8s9RNWyhYOHDqdUZh9qTWt0a1nOHFkVJ9+QSvYnzhaIgKyU12rsG7B6VrMTOpSYnncMJ6ldWegt13bnL/AQ==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Luca Fancellu <luca.fancellu@arm.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Jan
 Beulich <jbeulich@suse.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Mykyta Poturai <Mykyta_Poturai@epam.com>
Subject: [PATCH v1 3/3] xen/pci: add discovered PCI device at boot
Thread-Topic: [PATCH v1 3/3] xen/pci: add discovered PCI device at boot
Thread-Index: AQHcAsXVA3qngHqyPEewy8MzwqQRRg==
Date: Fri, 1 Aug 2025 09:22:43 +0000
Message-ID:
 <5097b76acf0a5c64cc78522f6af6233370c948e6.1753968306.git.mykyta_poturai@epam.com>
References: <cover.1753968306.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1753968306.git.mykyta_poturai@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AS2PR03MB10110:EE_|VI1PR03MB10032:EE_
x-ms-office365-filtering-correlation-id: 519d7477-261b-45d8-8870-08ddd0dcf8d1
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|7416014|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?BiBTUu918+4Z+i13Sd9mo9Taend7nlnBZ6N5eu5dYtNGM5sdKHZeregX9d?=
 =?iso-8859-1?Q?uRvXCKs8GScUOdJxHk+ZEX1XmeA+r7+V38PHdIycToWrMBGlmr24JHyDvI?=
 =?iso-8859-1?Q?FK1I2VG4LBIinTwF6PtdzGRh4/U9KrQUP9jq0eCTjxsHWKgadPjWAFYnXv?=
 =?iso-8859-1?Q?9yGszImv/Y0Doo0GtpHn4RZhBEziWPlqz6KKNZrgZTEOrVmphwSj7AgrTV?=
 =?iso-8859-1?Q?wPhSqjTnkJTgXsFeHELT52I7EX2nj0sMAW1wuiMay5mQSj50ojR8fs0ALS?=
 =?iso-8859-1?Q?HlDcbK+BoXDu0iI0lvmfmXjwz7fbmqtW1MmZIR3ORhQNX+882wYFjDAv7+?=
 =?iso-8859-1?Q?VnDFvVFMV8k7xIQm4v2hAu/I1T52BnTg2DZZkujPAu5TYtB5tvcYOMg0cw?=
 =?iso-8859-1?Q?gebaBCxto3uS0hw1TsDANE5BcsSZNJ2bFpbOQHCChbGrpvm1uCm7nZK6AB?=
 =?iso-8859-1?Q?X3uWOEdf+KJn1Xn4b1ll91OQmgQkWkccuAj//RvdcUKBizTgZlTLiS3hHQ?=
 =?iso-8859-1?Q?YQWVVPnFlnJOlia7iZ1qr1Pes5DP7GhlKq8lPZNOc9/yuJBEZnOBS5t6L4?=
 =?iso-8859-1?Q?5PEd55m8SSz45MtvburgOt1eTqG5Le4K0Ty4fD2djIjPUwX5rQr/4+zEUf?=
 =?iso-8859-1?Q?c8lxfwKE+M4GFxbBl0DNNOCD8lFQGrJEbdBobhdDlJQv3azLyK566n8APs?=
 =?iso-8859-1?Q?RYSVUOjUTJPzWkxNKzzjg3N/wu8r8vY3hpVLhDDvNPMoPIZgzIuVNiVMVy?=
 =?iso-8859-1?Q?5e3AL9sQ+4Rol6qWULPhPYtY8NgK6aBXRES0gHAUikX1S33pVvdle2kwN3?=
 =?iso-8859-1?Q?WvTJtkhfDvn4LEqV9Vlavzl8rtHfDmYY5DGO6f4d8caK4b5cZad4L6z/jl?=
 =?iso-8859-1?Q?A+Sdk5rZ4OYWlqBEvoWjjdTMRCv6X0vPl3q95IaGhYFm2/5ohEjiV/MROw?=
 =?iso-8859-1?Q?3zo0fVPKEweQL284v7OkwOzcsHDjmZXg9gCvaHUtKzhXkfrsxwJ4a4GcT6?=
 =?iso-8859-1?Q?ynbpMjHGMaXGdKmdUjpIGDtw98i2VWsxKq0heRUnqgu8Uelq615BmTmWeR?=
 =?iso-8859-1?Q?qYMLS/OGivMatycdr/3RjcPEBGk75HKTszPS6yuAT9axFDkFrAJMu/zehg?=
 =?iso-8859-1?Q?4PEXoKNSo/FNymiKFxNtD6uYSSIazf2iVqmwoXQ887fZK+IbcpB7JZo+td?=
 =?iso-8859-1?Q?VFjD6Wr9sgd9yAeH+9yEG0lt6PNc6oGAkesl2B9x2hLArqBxgcc1zN6CD6?=
 =?iso-8859-1?Q?+8qURqdet5QB7h0SvoLztIjm0vNYcC3hK5CpsBTz8gGARIgiyRZUgmd4zQ?=
 =?iso-8859-1?Q?Zl/4Z0xAvrtEliG2RaFkIgj4dbJLWPNO0tPFes+IgQ7ulfWL6Nu6Tjz/0k?=
 =?iso-8859-1?Q?NqU6PM12ronPe0S1EHyCf4BYDtVeftFWKnVdnLBG25i8AGmH2ZZDBMeSPD?=
 =?iso-8859-1?Q?6k+/rThcrF7Tr15ASzRUjZTslti0YkJP2Y1F+QFjaT/btejOp0AnvozNTG?=
 =?iso-8859-1?Q?TY3NlpsRrNxBIz3PteFdbiUGo1692irxodFkis6dsAfT18cbuNYLYP00LJ?=
 =?iso-8859-1?Q?Hx91dTg=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB10110.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?9RzHnKVxpHdPkNIJ6mgfYJKUREQiohuo73GdIoDf5oe6bQVfBxuhtO1HtO?=
 =?iso-8859-1?Q?H2Jfz3P+eXX7tV1bDmNsBKx4x3cnTY4POwWz4VWWbHEuVeoArXgH+0WTfG?=
 =?iso-8859-1?Q?kaYrWvhhiiLdhGEV9LVYWfOzoMekeU4QGuL50/RkacQCsaoZTei6P0XFAU?=
 =?iso-8859-1?Q?veIC0utb31pGI9WEqsmQ1efCEEGAYYrJgxA5pVXDN3HMPvGcXGi5cLGnaI?=
 =?iso-8859-1?Q?l1xvOpZUolpg9GTJFyUw42xfyu12yvdPzmIV7Sbs2q6xQCoN2jjfpgZ3Jt?=
 =?iso-8859-1?Q?PfHLBPxBGtuyBykJHAvrve/aYGEqBDz4rjOvn/zigfg0vhRsQAauon3LtE?=
 =?iso-8859-1?Q?xuyMpZY3MzDseXSZD4mmPFxb+LLS+nOEjC0DQoXW3R4s/U+hcDIxgBFxjF?=
 =?iso-8859-1?Q?umkayQhf3up0iAhJDnj+4fhlGP/4A+yqgA5KAnGnvfH/SERNNPUbes/p29?=
 =?iso-8859-1?Q?QtqHSmRpOIownQLmj8/fl7ZD/Igaarb51z0tGhzgyiY0opOFWAy7rVBQ65?=
 =?iso-8859-1?Q?iPqZ1vSz6Hsj142SRXmRoeEm/Lz2cWN1FYgcsSoEl5aoskeuhDZKpdK44b?=
 =?iso-8859-1?Q?ISQa5ZuB0DxQ+E0u4xzypt97qwRvPy5VqIHaSTbFX2D+1b6SB/EEuU0Mcc?=
 =?iso-8859-1?Q?IwRp9wRq6U4bn7u+NPZC976UyE2IxiR9/3OuXLFoVVL0Hm0H/LzDMTyy95?=
 =?iso-8859-1?Q?PyxLwQ24MwB6hM0e1dyjJYoclPyeqR11IpSDdQ0f3OOAE4ZK705ErTbJZf?=
 =?iso-8859-1?Q?HWAuNoTk4tx1MIlVNjU2bzoFsU+Jes2HpNy3Qbnp+6veHVsx3/8dKxfK0t?=
 =?iso-8859-1?Q?4po1e3Irf22Q9e+hWWwQSYlZ2gEv+c5hhcA+IPSTL1L1LfvdRZpwMJvrwS?=
 =?iso-8859-1?Q?+sL7iQ86pXJyH3boFYW8Sb3aQYHsy4CgtRXXLGyFkDkhZMC/9ADhw0KAAW?=
 =?iso-8859-1?Q?CdnJtjr+cx3TzFYSSwCPyWCyV1LetN8IOkAwUSZRei6zCXZzg6w5ucSA72?=
 =?iso-8859-1?Q?hiAKTdZgY3Pq9t2wBWUrYAR+BtyRNEZG7/5hnrA/TrZCcn9M7+HBUY6yx7?=
 =?iso-8859-1?Q?sYbf1f3kgFWxubpogd4GukkG/D45b7tccwhl8vZwz6voy+LOjradEx4JqI?=
 =?iso-8859-1?Q?Z2zghZqbcHNpuSWSts5ITqNo3qGz5aoTOAKvgIP8kyZAJLPmob6k8tmhQ6?=
 =?iso-8859-1?Q?A35UO6sht/KDUInSByppZAuIyuixtNdYchnRWntsZ9Ty1HdZhYi6O1BTpu?=
 =?iso-8859-1?Q?p7HDNsnyQ4MTYRrr+YkcsovYplcaUlXNWaayjnLkr8QB8WyIrE4xDry9Zg?=
 =?iso-8859-1?Q?GrF/s92Smt5VR4NF6kNcAf/r2dI/51lzme10O8ygteg1SI4B/twvMAywwT?=
 =?iso-8859-1?Q?C8XYg5wlKALR67HuUw+jB7InXHZMFjQawdTSF/yw1/UxyvbXJ3aI5Rktit?=
 =?iso-8859-1?Q?mNligUVkpCQGp6Ebe6xfbvWQc091yWXWIN6Lx9u4sCGBXgdCEy2D8pQ1rA?=
 =?iso-8859-1?Q?IZ2+OCb9BzsSwvGDz+oTwlbuP2AlaJCTXNXfKrkxTQbo67l+l8IlfXjJhz?=
 =?iso-8859-1?Q?OAGWGFOif9GiDh/Z0RCRNzHmVnOGYdF6BKU1GdwrvfMp5wOXWqBRHmmP0V?=
 =?iso-8859-1?Q?SYRMUlaSpvyzbm9T8tvTow2L3ODmDBqUTS2xDemrgpsUwr4SxAv7VJOQ?=
 =?iso-8859-1?Q?=3D=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: AS2PR03MB10110.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 519d7477-261b-45d8-8870-08ddd0dcf8d1
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Aug 2025 09:22:43.6923
 (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: xuQ6ahSRdINkBeeN5rYgu6evqCSZbfF6OCzLGHm387PKm/GeLXSu8Quv8rcrBcp3BSzsrSd1Dmx+7sb1t5KYvg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR03MB10032

From: Luca Fancellu <luca.fancellu@arm.com>

Create add_discovered_pci_devices function that calls pci_device_add
on every PCI device discovered.
The devices will be added to dom_io so that they can be assigned
later to other domains.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
(cherry picked from commit eff51e50021b75f5a50533f7de681b2ce044f5bd from
 the downstream branch poc/pci-passthrough from
 https://gitlab.com/xen-project/people/bmarquis/xen-arm-poc.git)
---
 xen/arch/arm/pci/pci.c        |  1 +
 xen/drivers/passthrough/pci.c | 28 ++++++++++++++++++++++++++++
 xen/include/xen/pci.h         |  1 +
 3 files changed, 30 insertions(+)

diff --git a/xen/arch/arm/pci/pci.c b/xen/arch/arm/pci/pci.c
index eea264db0e..b2426878ee 100644
--- a/xen/arch/arm/pci/pci.c
+++ b/xen/arch/arm/pci/pci.c
@@ -123,6 +123,7 @@ static int __init pci_init(void)
         if ( ret < 0 )
             return ret;
=20
+        add_discovered_pci_devices();
 #ifdef DEBUG
         dump_pci_devices('c');
 #endif
diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
index 49a39d69db..d6f1c78701 100644
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -1180,6 +1180,34 @@ int __init scan_pci_devices(void)
     return ret;
 }
=20
+static int __init _add_discovered_pci_devices(struct pci_seg *pseg, void *=
arg)
+{
+    struct pci_dev *pdev;
+    int ret =3D 0;
+
+    list_for_each_entry ( pdev, &pseg->alldevs_list, alldevs_list )
+    {
+        ret =3D pci_add_device(dom_io, pdev->seg, pdev->bus, pdev->devfn, =
NULL,
+                             NUMA_NO_NODE);
+        if ( ret < 0 )
+        {
+            printk(XENLOG_ERR
+                   "%pp: Failure adding the discovered pci device (Error %=
d)\n",
+                   &pdev->sbdf, ret);
+            break;
+        }
+    }
+
+    return ret;
+}
+
+void __init add_discovered_pci_devices(void)
+{
+    pcidevs_lock();
+    pci_segments_iterate(_add_discovered_pci_devices, NULL);
+    pcidevs_unlock();
+}
+
 struct setup_hwdom {
     struct domain *d;
     int (*handler)(uint8_t devfn, struct pci_dev *pdev);
diff --git a/xen/include/xen/pci.h b/xen/include/xen/pci.h
index 77a44aea70..81c0c23604 100644
--- a/xen/include/xen/pci.h
+++ b/xen/include/xen/pci.h
@@ -217,6 +217,7 @@ static always_inline bool pcidevs_trylock(void)
 bool pci_known_segment(u16 seg);
 bool pci_device_detect(u16 seg, u8 bus, u8 dev, u8 func);
 int scan_pci_devices(void);
+void add_discovered_pci_devices(void);
 void dump_pci_devices(unsigned char ch);
 enum pdev_type pdev_type(u16 seg, u8 bus, u8 devfn);
 int find_upstream_bridge(u16 seg, u8 *bus, u8 *devfn, u8 *secbus);
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Fri Aug 01 09:22:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Aug 2025 09:22:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1067004.1431990 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhlyW-0006mX-SA; Fri, 01 Aug 2025 09:22:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1067004.1431990; Fri, 01 Aug 2025 09:22: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 1uhlyW-0006mQ-Ou; Fri, 01 Aug 2025 09:22:52 +0000
Received: by outflank-mailman (input) for mailman id 1067004;
 Fri, 01 Aug 2025 09:22:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=j0QZ=2N=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1uhlyV-0006Wd-KC
 for xen-devel@lists.xenproject.org; Fri, 01 Aug 2025 09:22:51 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1825ef52-6eb9-11f0-b895-0df219b8e170;
 Fri, 01 Aug 2025 11:22:50 +0200 (CEST)
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 (2603:10a6:20b:57a::22) by VI1PR03MB10032.eurprd03.prod.outlook.com
 (2603:10a6:800:1c7::10) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.13; Fri, 1 Aug
 2025 09:22:43 +0000
Received: from AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::52f0:1815:60c9:8873]) by AS2PR03MB10110.eurprd03.prod.outlook.com
 ([fe80::52f0:1815:60c9:8873%5]) with mapi id 15.20.8964.023; Fri, 1 Aug 2025
 09:22: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>
X-Inumbo-ID: 1825ef52-6eb9-11f0-b895-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=htXMl8gFRBj3SLuhJjO77sE76IParomrBpfrZ7mHESjhFCZA9V7gUFdD8oCam0Od2z3TDt/iin4LS5AcCsRu2AT6cDUmZGFTRfMLZr9rU++h3DofUNAyWpzZwbpOGuHegveWkE5vpszA0oyCdvXnbsEj5lwf1XKimpGmhlUtTLZLlLB92MIXg3RDYGJxt2fAVu91OQGMiHbephZTWMrFHIdARjMJrx4O1Ea10ONgeJKoN/FBu0YtmvmIrENn+Fo5AeN3BjsHy3cH5TsLm5XB6t/IS/i2VVbG+udbxDV9rJByokQH+ikg9HFL+ZaA9rkfRZj6uzEA/99kOQhSMf1dPQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=9zlQ9RsmD85LL2B66MlIxD5xfPP4ETtjgZvJ6aWslpI=;
 b=Yla8oTQ6gxG5F1eGI1WSNlSoeROvIYyZKHGvB5ZruT1pZTVM0AA8uOpMUHMlST/p/lrx/JFEBrRBIQYU9IQ8X981g2aPGuzdzXP+qGPYvqor+PSKkvK1dIx2w915X2zkA14rZn7wtvF1nwY3Dybz8bUh9Jw/tGzJUm2se1/rk6ojcoPI2oOkUejyMHpdrxtcfm9DR+gzaDMBcdOhif7EJPboHPl4OvXnxgYDz+IcfG1bgUyHZl+NuUV78ic9AWW4SvusDo2L66d3fHFp1476bFGiAmCwyOlZXbdqVIF2qLySZoWHSxhyPvgeecplXMVTCnHiLcHQZpIxMftDzHJh9g==
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=9zlQ9RsmD85LL2B66MlIxD5xfPP4ETtjgZvJ6aWslpI=;
 b=GR9XyI4wY0mVAnrgLh6STd2ogC9v4+wvQRFl8u3RLCcHo1L9bRiGWWOnoulRVaLAP7ipoKRhacjJvm6vDfL3f6cLbuPm1DdqEULY/T7TJUK09sbvCIR/8VIyAdKgEbgmGh+KEXUROQFt1qYaeCKGax/Bt545kZmtoJYcOSWlk8cfofC950nr9SMIe3oGUqbh5jxs5eA5W6tuagbPkRC0EYAbnn8caDN93WlJq+2hYL2kkqSAQlbARAdilifsOURVsBQi/ERXqMr4JmVJoq8lQDVwXvOoaeIzxGNCOorX7xlKlSFo9aqnNMavPIbyBD8x74KK3j0qMl8waUI+mjF8/w==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Luca Fancellu <luca.fancellu@arm.com>, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<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>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, Mykyta Poturai <Mykyta_Poturai@epam.com>
Subject: [PATCH v1 2/3] xen/pci: modify pci_add_device to handle device add by
 Xen
Thread-Topic: [PATCH v1 2/3] xen/pci: modify pci_add_device to handle device
 add by Xen
Thread-Index: AQHcAsXVSnyGYKO2WEup/omKSt+BHQ==
Date: Fri, 1 Aug 2025 09:22:43 +0000
Message-ID:
 <32cf834e95664805604b13d10bcaa857897f0890.1753968306.git.mykyta_poturai@epam.com>
References: <cover.1753968306.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1753968306.git.mykyta_poturai@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: AS2PR03MB10110:EE_|VI1PR03MB10032:EE_
x-ms-office365-filtering-correlation-id: e0adab0a-389b-49e2-2b06-08ddd0dcf887
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|7416014|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?lzt0XJvpf5GNBAVYxzS8XNBUyLFEOTwfoHpQUVhxclER5ZqLkb8pu02XRl?=
 =?iso-8859-1?Q?L0ORC9V4g8aNPnsT8GSOYB9Wrbm4ntrzdNnzkNVjxl04l0Zgvm5xA4CK31?=
 =?iso-8859-1?Q?vMRWECCAtrVU7ygn+l3ZunOnzPqMhPCdYXjxozoVrJRUAE/KHjGI9YebL6?=
 =?iso-8859-1?Q?ciwVBvJC7Hm5q1r563gWa6XxtrYHyTVnrrvD+NN2Se0locup8YJyL2+X5n?=
 =?iso-8859-1?Q?Ixs+NbMTNj8HojjCrgsCLIjWjPpCJcnzp2qmxEZrSR5Jmo4HJ1L2tPX1kI?=
 =?iso-8859-1?Q?CdW2FQqkWCHdCH5Q2257fUx738BExELy581rJEr6tGN3zUXR+YQVCbwboL?=
 =?iso-8859-1?Q?S+YM7pgh/rBN7Ul2wbCn5nxZI28kv0aLXZVtkfNxn0QGK2nS7Vffevd2Ii?=
 =?iso-8859-1?Q?sl6PNcCagCEXUXgVpYk2OCTJgMsu8dJRbzFfH77+CcOIUnBSuIUeRlQTmp?=
 =?iso-8859-1?Q?wW5RCCSKbznmvPWoZSTd4FSvPPPSLkeBvlJ030MO4TRzKLKcUzOn/ieJ/S?=
 =?iso-8859-1?Q?HBqMzEQkEaF+MDE8fgrAQNXPVgMucyzDb3EdVeGjLmaVZwIiM5Z6Spa+FV?=
 =?iso-8859-1?Q?ud8MKoc1tVY9ARN4a/dMKfL8uZp3Ch39aCW2Z777hq9DrbcTmt70b65OjE?=
 =?iso-8859-1?Q?3v9UweWAXVuVTNnObE41cRDida4gclOmr30xKrgWWwTsV15cSH9F4PFEM2?=
 =?iso-8859-1?Q?wTxz+yBgIkgBBGZ94PjWIZoSB3vfKmTu8cX4JDqhCobT6SwnFvYw/hSn5T?=
 =?iso-8859-1?Q?0XGBnyZ1k7qQP/AM2pMCT7nKulh5PSVgOpGg6XmAecxqXO+ri6DhQEDCp2?=
 =?iso-8859-1?Q?f+btlxWa9XZflx25osfqWS5DR6ZAQ9zMFH1kWV1yN9h2PULHrZt7lMfyTt?=
 =?iso-8859-1?Q?S0+vv8c+ahSAMw03lZflQDs70w2m2bO7XPuDeDWIVj9ciKzOz52Bp2AkWQ?=
 =?iso-8859-1?Q?4tB38OiDE+g9uoksCG8fktljryjLtMhGZK/O4d2kIPHVUSvBLt5cCWDOxi?=
 =?iso-8859-1?Q?DnMhxxeandxNM+E0jXYj++VIydbL9kFzRZlzEAWxzV92G/eVhiUUyu1X7I?=
 =?iso-8859-1?Q?Z9wkjx9LpLA4KdZsP3ECtv9CgHzhtbv/QIjFJhLcvf0FwfNZIF0I7rqzG/?=
 =?iso-8859-1?Q?xdV84BJpyV8tVtc4eKmmnvYmOEcOjzXPwK7cIlT+plmjhNwy20iUsgLPPT?=
 =?iso-8859-1?Q?Qc0VlzDN0zLD/pgthIz9VxvGcoiY8mINiKyhsmzbGROIJBT8VuKWgh32nv?=
 =?iso-8859-1?Q?1z8Dr3AMw502cYiVfyx0MtyeG4fXqIVYwd73b+3cNgSNVf4Id5lf95lTrI?=
 =?iso-8859-1?Q?RB3/gEI5vXRiNiVKvZz1b0yu7KBYA1RGzU/aSwfejfZ73znPSMla1aIhjo?=
 =?iso-8859-1?Q?mV9HASUxXVPwQaJ2GIKGX1M+PnQQvcDRK4+BZmp0ICEZNRD7k2fDZ6t1pi?=
 =?iso-8859-1?Q?HiQ/yFr/Wp78eI9h4HY6uw39wboWYSAE1Av9EES4kBEcTtXR4VBaY58lLe?=
 =?iso-8859-1?Q?EFM67FuQnZXixIxWniz1Jf0n/0J0XmddAgY52sNpU/EjTD+AcXFqo7Tgtp?=
 =?iso-8859-1?Q?bIoqtlw=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB10110.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?LKKh5X2TOAZqS97An7R1JDl3zU8JyvH91rsjWC5P8fFzuZB9wyY0/Q2pjI?=
 =?iso-8859-1?Q?9SpYH4j6dsmIAVO4VVqwsxonEUnzY2QsaATYc4G60thkbEhGK+V6GFRBmT?=
 =?iso-8859-1?Q?tiaPgl3UbiD8hjn0Hf8S3cLeQ6JtSp/si9d+Imwk6em1547K65Zh6witPR?=
 =?iso-8859-1?Q?0E+QCdvL8w0lTyo8JgevgcZA2roAMbymgx6okglN9nkx4/nuy+ZNbZf0PV?=
 =?iso-8859-1?Q?Dpko7g6pduOBKtoh/JrlVS94V3jWkBeu2wcLOuQ+g8ztvm2uhSaeb41T3p?=
 =?iso-8859-1?Q?Hfbj8ApwhIU+ZRW/BpHCbkjkumvV2OmT3JGsGVglBIZsuj+/IHNMgD4Bf+?=
 =?iso-8859-1?Q?2iPuSgMtdWau7Obcq8aDsjgkZ+1Z+wfSgE9GPWlTj31hsVyt+E0VDdnauV?=
 =?iso-8859-1?Q?awv5L3aErwsSS6e2kEWwDpNYixXbfVsLgm5ey6z20qOUN1h41kkcqpKl+s?=
 =?iso-8859-1?Q?Zv9QgffdPNVg+n40jcxWkvqdfp4E18a5CE12SJ/V3NKFWjctW+6OELC3Pg?=
 =?iso-8859-1?Q?2DDlsrS0NC9rYuc6rvgCCb0x2JeZj32jwbs8YEH/OVUhS3PumRE0zT0Hhe?=
 =?iso-8859-1?Q?NERPzi6R5L2BUBFjB8PU8UcCRlzHolwYvybq2f2FS/o/3cOy7Qh4yCYOLl?=
 =?iso-8859-1?Q?DrlGVHlexNCw61sU9v5u/T6HrAc3xyxip+30a3GwDzyuDVlgyNF1aQWG8A?=
 =?iso-8859-1?Q?sir5+BRQpVnjgZtpT6yMfsG3jK7Jbsw66qVbsOlfAjpBGC5sFjnmPi0HFc?=
 =?iso-8859-1?Q?6md9vNKiGo2lmYfx8gCPzpDmD/b9F66f4IaAl1JMU4hQWwKXUhWoYCfDyQ?=
 =?iso-8859-1?Q?9wSY0PzoKmA379EhI7r99zBn8PwpkIymbDjoGjxef87YbPwhkUAUSvavvq?=
 =?iso-8859-1?Q?i61cMffoveGNTahqntzsDJqmfK2HyBfV6VgDFK/2W/fiMo8Y/vnV2jSiPK?=
 =?iso-8859-1?Q?cU2UNfri7DkL3z/hBH6zxb83ZT4nv3J4+YBMFIb+Fy2+md/DgAE6FoQY/F?=
 =?iso-8859-1?Q?ZUPI/qhR0fAHmZbjw8RVoUI4Ndi9XDl9T5awznwD3MyUAjVcgQBvhwcddh?=
 =?iso-8859-1?Q?t9o+XjwRGQAnrEjdBheCpGbI8AYgPJKUUXVMIpn3gQb7rjWBaF+L2SmH66?=
 =?iso-8859-1?Q?ArSvym/aRoRCGqhhGvsZS6nWtPIyUPW3WKNE/kul4Al21IH5HPnuvVF7ws?=
 =?iso-8859-1?Q?Fk5ANpJoyCbk/Yc6bhjvqp2XjlsVFdHSsKdbofvnlxNakdGtuYGT/qqqzz?=
 =?iso-8859-1?Q?oF/CtCm6/IgvfB+MmdZYcKzWRVo/hMzwhTm8NcG4ZiszNo8QIMaBTmqerZ?=
 =?iso-8859-1?Q?qP8Dv8QUhfXCW6T0XqT0MRsDldUWY9YyA4Jwt+++xOebp4nEVhrbM3E00d?=
 =?iso-8859-1?Q?KwZxjF1MtvHyTrKa2vM+thVTC9m7F/TkgZRes3TEI9VwmWytUmimJ/Fqhj?=
 =?iso-8859-1?Q?fjH97maCAWZcLV7jIyKaoU7eRIOzSlstChduoTq9IM32db1y2LEeScvUSd?=
 =?iso-8859-1?Q?jXVO8Ly/C0+7mbJMt/pokT3E13wXDf8VisKEQNc6Gxf30wGAqoDJkvXLv1?=
 =?iso-8859-1?Q?Apum4gz4XYMkZAN0ugyF/TyT3N9y4oBDjeLjswGigmehqrbaRuMewdrzM1?=
 =?iso-8859-1?Q?oq0SIGS7jOWSUZrXwj+J0jicLUAnD6F+sFpdpIxM0tUOjefv83D/KL+Q?=
 =?iso-8859-1?Q?=3D=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: AS2PR03MB10110.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e0adab0a-389b-49e2-2b06-08ddd0dcf887
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Aug 2025 09:22:43.2717
 (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: dbZZQK/UQt/EQAnTtI2KXvP5z4n7WFq53WAoQ49sX86/4cf0pSOOiVSrbAQ1wLrU/uuw5rMCougVGu/kt6nZiA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR03MB10032

From: Luca Fancellu <luca.fancellu@arm.com>

Currently pci_add_device is called from hypercalls requested by Dom0
to add pci devices and when the device has no domain associated with
it, it is assumed that hardware_domain is the owner.

On the dom0less scenario, the enumeration is performed by the
firmware and Xen at boot time might want to assign some pci devices
to guests, so it has to firstly add the device and then assign it to
the final guest.

Modify pci_add_device to have the owner domain passed as a parameter
to the function, so that when it is called from the hypercall the
owner would be the hardware domain, otherwise when Xen is calling it,
it would be another domain since hw domain could not be there
(dom0less guests without Dom0 use case).

In pci_add_device there is a call to xsm that doesn't consider the
requester of the function to be Xen itself, so add a check to skip
the call if the owner domain is dom_io, since it means the call is
coming directly from Xen.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
(cherry picked from commit f0c85d9043f7c9402e85b73361c8a13c683428ca from
 the downstream branch poc/pci-passthrough from
 https://gitlab.com/xen-project/people/bmarquis/xen-arm-poc.git)

changes since cherry-pick:
* s/hardware_domain/d/ in some write_unlock calls in xen/drivers/passthroug=
h/pci.c
---
 xen/arch/x86/physdev.c        |  9 ++++-----
 xen/drivers/passthrough/pci.c | 32 ++++++++++++++++++++------------
 xen/drivers/pci/physdev.c     |  3 ++-
 xen/include/xen/pci.h         |  2 +-
 4 files changed, 27 insertions(+), 19 deletions(-)

diff --git a/xen/arch/x86/physdev.c b/xen/arch/x86/physdev.c
index 4dfa1c0191..9e894ce665 100644
--- a/xen/arch/x86/physdev.c
+++ b/xen/arch/x86/physdev.c
@@ -446,8 +446,8 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(voi=
d) arg)
         if ( copy_from_guest(&manage_pci, arg, 1) !=3D 0 )
             break;
=20
-        ret =3D pci_add_device(0, manage_pci.bus, manage_pci.devfn,
-                             NULL, NUMA_NO_NODE);
+        ret =3D pci_add_device(hardware_domain, 0, manage_pci.bus,
+                             manage_pci.devfn, NULL, NUMA_NO_NODE);
         break;
     }
=20
@@ -477,9 +477,8 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(voi=
d) arg)
         pdev_info.is_virtfn =3D manage_pci_ext.is_virtfn;
         pdev_info.physfn.bus =3D manage_pci_ext.physfn.bus;
         pdev_info.physfn.devfn =3D manage_pci_ext.physfn.devfn;
-        ret =3D pci_add_device(0, manage_pci_ext.bus,
-                             manage_pci_ext.devfn,
-                             &pdev_info, NUMA_NO_NODE);
+        ret =3D pci_add_device(hardware_domain, 0, manage_pci_ext.bus,
+                             manage_pci_ext.devfn, &pdev_info, NUMA_NO_NOD=
E);
         break;
     }
=20
diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
index fa03dafac7..49a39d69db 100644
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -654,7 +654,7 @@ unsigned int pci_size_mem_bar(pci_sbdf_t sbdf, unsigned=
 int pos,
     return is64bits ? 2 : 1;
 }
=20
-int pci_add_device(u16 seg, u8 bus, u8 devfn,
+int pci_add_device(struct domain *d, u16 seg, u8 bus, u8 devfn,
                    const struct pci_dev_info *info, nodeid_t node)
 {
     struct pci_seg *pseg;
@@ -672,9 +672,12 @@ int pci_add_device(u16 seg, u8 bus, u8 devfn,
     else
         type =3D "device";
=20
-    ret =3D xsm_resource_plug_pci(XSM_PRIV, (seg << 16) | (bus << 8) | dev=
fn);
-    if ( ret )
-        return ret;
+    if ( d !=3D dom_io )
+    {
+        ret =3D xsm_resource_plug_pci(XSM_PRIV, (seg << 16) | (bus << 8) |=
 devfn);
+        if ( ret )
+            return ret;
+    }
=20
     ret =3D -ENOMEM;
=20
@@ -767,9 +770,9 @@ int pci_add_device(u16 seg, u8 bus, u8 devfn,
     ret =3D 0;
     if ( !pdev->domain )
     {
-        pdev->domain =3D hardware_domain;
-        write_lock(&hardware_domain->pci_lock);
-        list_add(&pdev->domain_list, &hardware_domain->pdev_list);
+        pdev->domain =3D d;
+        write_lock(&d->pci_lock);
+        list_add(&pdev->domain_list, &pdev->domain->pdev_list);
=20
         /*
          * For devices not discovered by Xen during boot, add vPCI handler=
s
@@ -779,25 +782,30 @@ int pci_add_device(u16 seg, u8 bus, u8 devfn,
         if ( ret )
         {
             list_del(&pdev->domain_list);
-            write_unlock(&hardware_domain->pci_lock);
+            write_unlock(&d->pci_lock);
             pdev->domain =3D NULL;
             printk(XENLOG_ERR "Setup of vPCI failed: %d\n", ret);
             goto out;
         }
-        write_unlock(&hardware_domain->pci_lock);
+        write_unlock(&d->pci_lock);
         ret =3D iommu_add_device(pdev);
         if ( ret )
         {
-            write_lock(&hardware_domain->pci_lock);
+            write_lock(&d->pci_lock);
             vpci_deassign_device(pdev);
             list_del(&pdev->domain_list);
-            write_unlock(&hardware_domain->pci_lock);
+            write_unlock(&d->pci_lock);
             pdev->domain =3D NULL;
             goto out;
         }
     }
-    else
+    else if ( pdev->domain =3D=3D d )
         iommu_enable_device(pdev);
+    else
+    {
+        ret =3D -EINVAL;
+        goto out;
+    }
=20
     pci_enable_acs(pdev);
=20
diff --git a/xen/drivers/pci/physdev.c b/xen/drivers/pci/physdev.c
index d46501b884..1b59bf1246 100644
--- a/xen/drivers/pci/physdev.c
+++ b/xen/drivers/pci/physdev.c
@@ -50,7 +50,8 @@ ret_t pci_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void=
) arg)
         }
 #endif
=20
-        ret =3D pci_add_device(add.seg, add.bus, add.devfn, &pdev_info, no=
de);
+        ret =3D pci_add_device(hardware_domain, add.seg, add.bus, add.devf=
n,
+                             &pdev_info, node);
         break;
     }
=20
diff --git a/xen/include/xen/pci.h b/xen/include/xen/pci.h
index 5c242278b9..77a44aea70 100644
--- a/xen/include/xen/pci.h
+++ b/xen/include/xen/pci.h
@@ -227,7 +227,7 @@ void setup_hwdom_pci_devices(struct domain *d,
 int pci_release_devices(struct domain *d);
 int pci_add_segment(u16 seg);
 const unsigned long *pci_get_ro_map(u16 seg);
-int pci_add_device(u16 seg, u8 bus, u8 devfn,
+int pci_add_device(struct domain *d, u16 seg, u8 bus, u8 devfn,
                    const struct pci_dev_info *info, nodeid_t node);
 int pci_remove_device(u16 seg, u8 bus, u8 devfn);
 int pci_ro_device(int seg, int bus, int devfn);
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Fri Aug 01 09:54:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Aug 2025 09:54:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1067058.1432014 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhmSj-0003hK-J4; Fri, 01 Aug 2025 09:54:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1067058.1432014; Fri, 01 Aug 2025 09:54: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 1uhmSj-0003hD-G6; Fri, 01 Aug 2025 09:54:05 +0000
Received: by outflank-mailman (input) for mailman id 1067058;
 Fri, 01 Aug 2025 09:54:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=3S8h=2N=cloud.com=edwin.torok@srs-se1.protection.inumbo.net>)
 id 1uhmSi-0003h7-Vb
 for xen-devel@lists.xenproject.org; Fri, 01 Aug 2025 09:54:04 +0000
Received: from mail-vk1-xa30.google.com (mail-vk1-xa30.google.com
 [2607:f8b0:4864:20::a30])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6e7d2c7d-6ebd-11f0-b895-0df219b8e170;
 Fri, 01 Aug 2025 11:53:53 +0200 (CEST)
Received: by mail-vk1-xa30.google.com with SMTP id
 71dfb90a1353d-5393d190351so671748e0c.1
 for <xen-devel@lists.xenproject.org>; Fri, 01 Aug 2025 02:53: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>
X-Inumbo-ID: 6e7d2c7d-6ebd-11f0-b895-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1754042032; x=1754646832; 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=rLxdK62h5Z5+hXxH7sgLi5WNFN/I/fN31BLN7hMZ91Y=;
        b=bGhLghtIO4JWBwFQVP1LZEUUXX67vaRIck/FxZMPCquCOST/k91b5yg2I6/RbmEhyF
         p1RT1YRuJMYGcTjySGz1Wybe4BWYTOoVqzs/uTHN7nJG3PlF6sr27NQ0Ej6rLj0Hs0cv
         4THgfLlNb3BnlQN+Cy7umX/OEhyBl8wTq/Rdg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754042032; x=1754646832;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=rLxdK62h5Z5+hXxH7sgLi5WNFN/I/fN31BLN7hMZ91Y=;
        b=Li4sowgEJVMq0eRbbdv0663KPfVQ5vws1MAwStaQHlgOr3tcNtFS+fNmXHgeWbQsNI
         5FsqAu8T+yDufLLB8WeKs6539Uy3ER18HkwZK+E4LPmREqGW5n5Rwn8IKXJ12K8pJoTi
         fWzAX6TRhSpRAg+gNilNA+uiGwAgNW5T5Co4cW1vdBIjqM3Vspa2tkmvezNxV4C2CJgk
         c9kpGr2jaufPo3VPg/IbekWbwaJXOD7uoCyxvdoJH576KGEsfem1Ov05ycEUQLRuAOet
         LUb1kcdeMOoTyFuVFzCy9VLRN3sBXEEC845ePucsYBasmTRNqyr6hQ0ACH7wuMOkHbG/
         eLkg==
X-Forwarded-Encrypted: i=1; AJvYcCUufS4mYGSFJDZ4XrALiLzatSnVh9CZL+V+PVuzP6+KtuehuoWUfJduU2WwGkxvwiny8kn4eTG0odg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxEYg860a5rM6/getLWGnJDYP+VLNfGFqSxvg6X7jVm0IVWvmwf
	0p7tJC3ShXd8oBhRGU3c+4Tbowf3SqztnjK5oVlxgaVN9vDE024PaZesjOKFY8SNigeuxVNpN8P
	hRvhJLBm9o/YFZ3IIcZU548s7FhmihHBpMH0RT6cSlw==
X-Gm-Gg: ASbGncv+/YF8JnBcvY4y/2xVj4iyxrXyQs70wepN0aQCC5VwhK9tmfZhtw+OOUxhgX3
	YTqDiN5VfdGhGXMAnsiAq54WnUMdiHe1K2MaIgrGjjmiwO1gWTHLnvDtocrgYodDFKcGvvUAsOH
	24t8kXDj658xslM5YAAtlM1rViqq2Sy8Fa0CUtUH1jH0CYWone7DKxP2uc1E4YJZxzC1jPF2Z0H
	rTJ6NSdTg==
X-Google-Smtp-Source: AGHT+IFGMUFapmrZBzfTS/pSe/Orn6DNsdKFDQj1claoZubANUQT5ioNoRvTciRcGrRoMV2CpcDi9gwfn6PCfVkZVww=
X-Received: by 2002:a05:6122:2513:b0:539:1a61:9058 with SMTP id
 71dfb90a1353d-5391ce96bc1mr6908804e0c.3.1754042032134; Fri, 01 Aug 2025
 02:53:52 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1753372928.git.edwin.torok@cloud.com> <8d7f3eb14bee79c63af02b228fa02761ae2db6c5.1753372928.git.edwin.torok@cloud.com>
 <1b8a754f-608f-4439-9dca-1e18e12af1b4@suse.com>
In-Reply-To: <1b8a754f-608f-4439-9dca-1e18e12af1b4@suse.com>
From: Edwin Torok <edwin.torok@cloud.com>
Date: Fri, 1 Aug 2025 10:53:41 +0100
X-Gm-Features: Ac12FXxVlupEbgZ8QkTw163mDQQX0fj3oCeaV9xB18ST-ae4N_204fUPmkpOfys
Message-ID: <CAEfZLv=PH2d5JRTA_pcU1vaeuc2rshsYMxiDM-5PcBep4iA+_g@mail.gmail.com>
Subject: Re: [RFC PATCH v1 06/10] arch-x86/pmu.h: convert ascii art diagram to Unicode
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>, 
	Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, 
	Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, andriy.sultanov@vates.tech, 
	boris.ostrovsky@oracle.com, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, Jul 31, 2025 at 4:35=E2=80=AFPM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> On 25.07.2025 17:06, Edwin T=C3=B6r=C3=B6k wrote:
> > Using `aa2u` tool.
> >
> > Signed-off-by: Edwin T=C3=B6r=C3=B6k <edwin.torok@cloud.com>
>
> How come the use of that tool made ...
>
> > --- a/xen/include/public/arch-x86/pmu.h
> > +++ b/xen/include/public/arch-x86/pmu.h
> > @@ -75,8 +75,10 @@ DEFINE_XEN_GUEST_HANDLE(xen_pmu_regs_t);
> >  #define PMU_SAMPLE_PV      (1<<3) /* Sample from a PV guest */
> >
> >  /*
> > - * Architecture-specific information describing the state of the guest=
 at
> > - * the time of a PMU interrupt.
> > + * Architecture-specific information describing state of the guest at
> > + * the time of PMU interrupt.
> > + * Even if the interrupt arrived while inside Xen, this will always co=
ntain
> > + * the guest's state.
> >   */
> >  struct xen_pmu_arch_guest {

Thanks for spotting, according to my evolog this one ended up here
while fixing a rebase conflict:
```
=E2=97=8B  lrwoxosk hidden edwin.torok@cloud.com 2025-07-24 13:20:56 215f9e=
58
=E2=94=82  arch-x86/pmu.h: convert ascii art diagram to Unicode
=E2=94=82  -- operation 073584199528 (2025-07-24 13:20:56) snapshot working=
 copy
=E2=94=82  diff --git a/xen/include/public/arch-x86/pmu.h
b/xen/include/public/arch-x86/pmu.h
=E2=94=82  index 0000000000..4dc3d9a20a 100644
=E2=94=82  --- a/xen/include/public/arch-x86/pmu.h
=E2=94=82  +++ b/xen/include/public/arch-x86/pmu.h
=E2=94=82  @@ -75,8 +75,10 @@
=E2=94=82   #define PMU_SAMPLE_PV      (1<<3) /* Sample from a PV guest */
=E2=94=82
=E2=94=82   /*
=E2=94=82  - * Architecture-specific information describing the state of th=
e guest at
=E2=94=82  - * the time of a PMU interrupt.
=E2=94=82  + * Architecture-specific information describing state of the gu=
est at
=E2=94=82  + * the time of PMU interrupt.
=E2=94=82  + * Even if the interrupt arrived while inside Xen, this will al=
ways contain
=E2=94=82  + * the guest's state.
=E2=94=82    */
=E2=94=82   struct xen_pmu_arch_guest {
=E2=94=82       union {
=E2=94=82  @@ -149,178 +151,89 @@
=E2=94=82   typedef struct xen_pmu_arch xen_pmu_arch_t;
=E2=94=82   DEFINE_XEN_GUEST_HANDLE(xen_pmu_arch_t);
=E2=94=82
=E2=94=82  -
=E2=94=82   /* Memory layout:
=E2=94=82  -<<<<<<< Conflict 1 of 1
=E2=94=82  -+++++++ Contents of side #1
```

>
> ... this comment change, or yet more interesting, ...
>
> > --- a/xen/include/public/pmu.h
> > +++ b/xen/include/public/pmu.h
> > @@ -148,7 +148,7 @@ struct xen_pmu_hv_stacktrace {
> >      * arrives while in Xen.
> >      * */
> >      struct xen_pmu_arch_guest guest;
> > -#define XEN_PMU_STACKTRACE_PAD 48
> > +#define XEN_PMU_STACKTRACE_PAD 56
> >      uint8_t pad2[XEN_PMU_STACKTRACE_PAD];
> >  };
>
> ... this value in the public interface?

Thanks for spotting, it doesn't belong in this commit.

I would assume that this happened by squashing a commit into the wrong
place, or by editing the wrong commit while rebasing.
Luckily I use 'jj', and it has an evolog that stores the full history
of how a commit changed over split/squash/rebase, so I don't have to
guess, but can give you a precise answer.

My evolog says that this change came from editing the source code
while having the wrong commit checked out (I kept tweaking those
values):
```
=E2=97=8B  lrwoxosk hidden edwin.torok@cloud.com 2025-07-24 13:46:44 bfa295=
64
=E2=94=82  arch-x86/pmu.h: convert ascii art diagram to Unicode
=E2=94=82  -- operation 3f48136a1b6a (2025-07-24 13:46:44) snapshot working=
 copy
=E2=94=82  diff --git a/xen/include/public/pmu.h b/xen/include/public/pmu.h
=E2=94=82  index 1879914ea6..6366a79169 100644
=E2=94=82  --- a/xen/include/public/pmu.h
=E2=94=82  +++ b/xen/include/public/pmu.h
=E2=94=82  @@ -148,7 +148,7 @@
=E2=94=82       * arrives while in Xen.
=E2=94=82       * */
=E2=94=82       struct xen_pmu_arch_guest guest;
=E2=94=82  -#define XEN_PMU_STACKTRACE_PAD 48
=E2=94=82  +#define XEN_PMU_STACKTRACE_PAD 56
=E2=94=82       uint8_t pad2[XEN_PMU_STACKTRACE_PAD];
=E2=94=82   };
```

Before I submit the next version I'll check whether the other hunks
ended up in the right place  after all the
squashing/rebasing/splitting

Best regards,
--Edwin
>
> Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 01 10:09:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Aug 2025 10:09:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1067065.1432024 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhmhA-0005WW-SS; Fri, 01 Aug 2025 10:09:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1067065.1432024; Fri, 01 Aug 2025 10:09: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 1uhmhA-0005WP-Nx; Fri, 01 Aug 2025 10:09:00 +0000
Received: by outflank-mailman (input) for mailman id 1067065;
 Fri, 01 Aug 2025 10:08:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=eZgs=2N=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1uhmh9-0005WC-A3
 for xen-devel@lists.xenproject.org; Fri, 01 Aug 2025 10:08:59 +0000
Received: from AM0PR83CU005.outbound.protection.outlook.com
 (mail-westeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c201::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 89f89f57-6ebf-11f0-a320-13f23c93f187;
 Fri, 01 Aug 2025 12:08:58 +0200 (CEST)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by PR3PR03MB6604.eurprd03.prod.outlook.com (2603:10a6:102:7e::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.11; Fri, 1 Aug
 2025 10:08:55 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%4]) with mapi id 15.20.8989.015; Fri, 1 Aug 2025
 10:08: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>
X-Inumbo-ID: 89f89f57-6ebf-11f0-a320-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yevSkz9Otk/SyS4IdXXtnHuSucxD2uFDLZEDGj1p1PIbm5J3fte4+MG/0+PvRGYKKVMcP0UDg0wlfoTaxno90nrqfgWLZhYndvhN+Gg2NVxnHLdbM0QHeUZM+N4AhB0j3PTjtZXYhsDXlclzhSH6EIty1/yK+vM6PRwIU00fgmltST9Op23ZxS+CpEEgG1Bev6+WhIoTMv5u8tD8jvuD74b5j0Tu/+3u5WCiAlfhmM3lBOZMxsigQO72nzgbVLSzxJG+hltjuwJcI6bCbsgaAqMcK1EoJOSzO7SY8kVWstxtXnHqRcX7LpcUgyJUNdJIoek4uzyL1d+kiyl7ZBuW1A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=i7flGp/8/Dq0Hg7DY3mxIdpXEngEztiNgXG9DX2dJxw=;
 b=gZVBxvfZNws1gO3PgQutDMStDgfWOansgph5mWhjjqaWGT2sUkhS9RZmXefZpXNqNXDq+TGiHdYTLs0XM8Xv7W3qnknO8pdjkjHDnOCabO+M6KY9UiS0E6TiUvLyO3CSi3iYrTqMEm7Z/oBqFE7tOZicoepwkLaejCNP1QDb8xjjAlkzPkzrobSgdyZhsq+ecO94Mmk9Hpq5J+ED8PO9jf9oT5wRTwbfd/v2fC9LU7S2kpd34np5Jn3vJGY6GhyVGAhLo3ypccwoUScnY4RxyDKQVpNUOTyL8UdGDjOz0JCSlXkXEfpVMGLmdo0bcF9N5SyQxyFv9NIrigZx/WF/fQ==
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=i7flGp/8/Dq0Hg7DY3mxIdpXEngEztiNgXG9DX2dJxw=;
 b=Xf2GAv5FahQflCffKiE+ECH5/FTnkJ7jFGDit8EOTegjD8rKiclo54SkxXirT+xQFSyTOCFOfo22gPQI3zcGZl28oF8e5WtNLjAE+YzJxi3wSKf6wi0VspxgATU/kQZXf3qNunwhyiMPoP3PSi4CYosehVUQzOal/sl8qyM8ENfqnD5uBr7tNyGJTqlLm1RX9bO1CF08G0+n55GiU/QJYB9/SWTQVyCVPxLfTrFEqf7ty9ndjARiCL7Zg7LsTYrvFHuoJxgnvhVzSNCVklsM+VesjaBPmqt1Vfe1ulZunmMAyM/rev0yXFCyDTzsNHbuQQr5Tc9VKnQngKW2WteDJw==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@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>, Shawn Anastasio
	<sanastasio@raptorengineering.com>, Alistair Francis
	<alistair.francis@wdc.com>, Bob Eshleman <bobbyeshleman@gmail.com>, Connor
 Davis <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.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: [XEN][PATCH 0/3] xen/arch: irq: drop unreachable pirq callbacks
Thread-Topic: [XEN][PATCH 0/3] xen/arch: irq: drop unreachable pirq callbacks
Thread-Index: AQHcAsxJHjfjEhDPRUmYxo3s3ZWyfA==
Date: Fri, 1 Aug 2025 10:08:54 +0000
Message-ID: <20250801100852.1260544-1-grygorii_strashko@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: AS2PR03MB8907:EE_|PR3PR03MB6604:EE_
x-ms-office365-filtering-correlation-id: 3327ac93-cfce-4ea6-aad7-08ddd0e36c0c
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|7416014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?v42kM4wzA6nlkv336+hA0FficO8Quj6ZJlP9KEiZfXO43vcZC+sp71exRA?=
 =?iso-8859-1?Q?zb9lIlGifgb69WGA4vwcDFPHHEiKq0UKNHswaGkj2JYqYGMM3a4REnMhoB?=
 =?iso-8859-1?Q?xnUCA6YsPQja/3r0Hg/dcDbH/IF3fFRcbhb0DoofLbbZyKYycJinKRyB15?=
 =?iso-8859-1?Q?FzHSuCszAW5nxJrqO0YpkFvvWLyxO3W7+8QgL8X/p35XBP5uM7e/mnDPlw?=
 =?iso-8859-1?Q?vlAxBfueoTB6EeGyJF4Y0qvZX2eQoMJqzSQYhUIxoPnPlDeKiqoe3pHPs9?=
 =?iso-8859-1?Q?7dIsye9+Bg40sYcDKbhKEOuIDJkERwo9RVJe2aVEOMgHfQxXbFBUJ/W5z6?=
 =?iso-8859-1?Q?7LrwLCHevOEft4biBxxbhYHLNWmsNX3E6rfNt2n64dV5DNfged5odjtkUV?=
 =?iso-8859-1?Q?MCt3OYNJlaMqnLV7uOQlTgNMrttCMV1YGw7nQugUADdriaKZgmWuGlKgdr?=
 =?iso-8859-1?Q?WYepj4g04rHB0buFv1OBsMzQ/wa11bHGPZlOqxrC3qlBm9SLUDkU+wiQEg?=
 =?iso-8859-1?Q?n/I9OJ+gZFAAl5WAI6u2mzZXhbCSy2TKWXqIaFBaRrIW84tbKvsVWY0yIx?=
 =?iso-8859-1?Q?gBlnRQVNVd+fPI840qBTS4uYaT7yApBP0x9BfWWrZh66Sv1u+fQrsXgCGW?=
 =?iso-8859-1?Q?bupSVH3PMYhGQWKZoFS20MIlUkYJhyMuHg2NeCxDONBRM1xgGjTTIlGOTX?=
 =?iso-8859-1?Q?POrLUpw/3X26SEIgIcX9pmZwsnWxULNO/pUMr7klaL95IEsGlKmz4aXBl+?=
 =?iso-8859-1?Q?zz2MT377Estu1ZK0YmRfl0i99oTzMsjSvB6kIkQxAyz2CYOZLoQOYcwEaP?=
 =?iso-8859-1?Q?i6cs/7MzchhmSpLleRZEv3Zi3Hg+Kzpj4wPL4M2Jzx0TUYI+3pihkhwqKW?=
 =?iso-8859-1?Q?H51qYAbWzMrwjsHV4oxFZc19OG9XbLudKaQIuqbJNwh8eos0HJVFyZsqKg?=
 =?iso-8859-1?Q?c6WJG/jI5EyTFYDLJ14TD7DxxNWKK+6XgJ74ArMOvWQ2uFVIU7CGKiiNvx?=
 =?iso-8859-1?Q?R3VfO7L020H+iZ1ter2kF3QoqKw7TNHuOlUvQAeSOIV2YDvABxEA/VEJsW?=
 =?iso-8859-1?Q?jqaz7PL47S71qXp47sgnRXbUKFgYQstzcqXlrGZPsL+8LhCGEzA0yPB1j3?=
 =?iso-8859-1?Q?7Iz7WMlmUHctvfhz4BcxL1tTQ8UWmIKVb1in2K8afIHfYTCJqShQUUP0B4?=
 =?iso-8859-1?Q?EJNw1IjD85oanr4/eWdMCH5+6CfsddKIFZl4uiATHAIyu89QFxUKfvv3jw?=
 =?iso-8859-1?Q?xD4zxJGrJLncIb5KsoE2oRYPfoATjw/TItnC6XdyNlrHmRP8NPYPYIKont?=
 =?iso-8859-1?Q?gE47IXhw2pEMZk8seFrqixB8vP4z3XuZE1lx9cpppA5PpK+oFx2Vfl7TPS?=
 =?iso-8859-1?Q?r+2zmh3mPMLv4hKUQqgcCVfg8ehGeBQgi0AlDtqxTUc0QbIC6PSfgT0el4?=
 =?iso-8859-1?Q?u6NFtR15QTt3L0Pq2sXBbx1XexU0CSpMVc/yI+SBQDWLc7CZN7CcnACqIB?=
 =?iso-8859-1?Q?yxo37Hpnzy9GtmWmg4EdQYPckTaIrYI+TVMCFruJAbxA=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?PiPSqgjuidfEwKQDSIrl5rE2QSqoSB/W02SwqTQIdg3xjossUUsc+TiV3q?=
 =?iso-8859-1?Q?k/2AcVnhMBf+n7jecoReNKgJOIMEdYn6hen3LKIvzXkaknpTJiCCYoJoh+?=
 =?iso-8859-1?Q?/GR0uj8r1MHFE0Y01pgdgsK+n8FEdvNtJ6irHWDWYgqlFQQR0poAEuTwJ3?=
 =?iso-8859-1?Q?04OQiRHQre+WilHAzd/prwDy23xSWc7HY1ZEvnQqZE5Md3eLFLMDL6F+Ps?=
 =?iso-8859-1?Q?y602g1k+YHyjrOpLdHx/CyPswEP8y2CRcV1CSJHr1pzP26LZuIhBkOTAhY?=
 =?iso-8859-1?Q?cOrpvFAL/gWCPvVugEwbgIeQEjxL4wll4aFfEfyWTua9MphV2GU5B7HbFt?=
 =?iso-8859-1?Q?84uV3RuN4JNg7OfGkPeTOTNuLIGp7//IydeNo5gTBT+jfEzc5S13sHkACj?=
 =?iso-8859-1?Q?b8EIsWgrUBdYfmhMdcfguqTvpNwYSLVtsjA97IRLkHe/LQ1RGhSO4kvYjZ?=
 =?iso-8859-1?Q?dXpSLXaNaBgeO61bLYADT4PeW8nLNOyQv/8vY57LiabwV5BILlvyaiXJ9D?=
 =?iso-8859-1?Q?47XtFg2iqKlXB2OskDuxmsL36J3mVaiNI1CXfPFTp/oIwro5ehOz6l0H/1?=
 =?iso-8859-1?Q?dpy6j7Lb7/NjjG5N2BKYQ2avjka+M7KhvnjQhYuOMqkJUrM59bjyDasqNO?=
 =?iso-8859-1?Q?4xeZqVB6v1Fy/A6011xgnmlDlSnvupIm3FkZrYo/iyruGoioIEJgvldKQI?=
 =?iso-8859-1?Q?k2gRrALKlJyM1jUkT/d/Sj0DwxEjsgSOk59JP/Iyft8qbZDGyKtwxZZ6YL?=
 =?iso-8859-1?Q?3TYe0tL64D/XIDQo3Sxye40XuFKRa73sQKUMwmIEhUZ+QHD9vaN7lAnPMT?=
 =?iso-8859-1?Q?3UWdIwT5ZuM5jSLBM2FFbKvL1izWjVFfkgOt8WBf2bSeuLT8yJxlGs+H9I?=
 =?iso-8859-1?Q?WjdLfQwlyXJMx1vRPhoSWAdEJeix5w4O9btxS9JkjZEvvPyW8CjLqSfqOj?=
 =?iso-8859-1?Q?qliDQigomeWp3MzjoYI13QcE2SjH5IK2gehdSciYJDYwpqvS/Cl4TTa+/W?=
 =?iso-8859-1?Q?9+x3wtyo33YmiVdA49T313zRFfo/y9VFoC2e6I7JDMa3y6RrKRpX4U6+4+?=
 =?iso-8859-1?Q?eq7XDzK4+ZlefD6Em7827tgEUphQNueDCu/pAwQ/AmHzBWbsNYEinJ+7aq?=
 =?iso-8859-1?Q?PDPQvgLpGl+f7Ay05myUHYU5YAnY2j/FfC//XvFcsMQKp0TXtN8rTYiW/x?=
 =?iso-8859-1?Q?KIVQiHMxj69kMpa9HL8U1BfWw0/OOZZ1e3pQNCokCx7HooaISAoFTm3rLV?=
 =?iso-8859-1?Q?Rfuk3rFP4HT9FyrP2yNeeZLSnxalUprKS4IdCPuXsQ210zulCLD2dReipN?=
 =?iso-8859-1?Q?+uHmWki3lkxNLzO1BCHCBQZu+eZga4pb2/L4fP/H2CgJJzWI1uUm4LvhL8?=
 =?iso-8859-1?Q?+ln0Gh4e63OOR2cB+pMs0zGCZwE/Y01aKo/yAGTQ4tkYwr6pLNkNIhl/3l?=
 =?iso-8859-1?Q?c3gdMluclXoD7+nr84hgsupYlTlQ3zHPSaLBhS9GooOSS0H2RlXl1LygKD?=
 =?iso-8859-1?Q?wKzQ2gTochg+97xEmXtMNqj79miPPdSuFwh1j8sw/Ggm3KmSyTxfMHLXNY?=
 =?iso-8859-1?Q?5LOu2hmrDx6Gjfc+vmIueL9HjvdVSzjQ+K8gnb/TBnuydbQjP0gboJi7u9?=
 =?iso-8859-1?Q?EYJFRJmSTu8a0W0mpMW4Vf1EeMhHC78zn3iOmK3Xz+yP6FoLqVseecDQ?=
 =?iso-8859-1?Q?=3D=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: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3327ac93-cfce-4ea6-aad7-08ddd0e36c0c
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Aug 2025 10:08:54.5086
 (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: Hvhgm4K5C1175Q98gW95BNzz6sRDSGzqXnAVfXT1NJhy4/xa3mwMyerHRzfpr/CAeFa9Kltq4S4p7ccBVb4b/bLV9cCDCmtNN7Euf+8xfZk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR03MB6604

From: Grygorii Strashko <grygorii_strashko@epam.com>

Hence prerequisite patch was merged [1] arch specific pIRQ callback can now
be dropped for arches without pIRQ support as those callback become unreach=
able.

[1] commit 341f271cf86f ("xen/evtchn: fully restrict concept of pIRQ for ar=
ches with pIRQ support only")

Grygorii Strashko (3):
  xen/arm: irq: drop unreachable pirq callbacks
  xen/ppc: irq: drop unreachable pirq callbacks
  xen/riscv: irq: drop unreachable pirq callbacks

 xen/arch/arm/irq.c     | 29 -----------------------------
 xen/arch/ppc/stubs.c   | 20 --------------------
 xen/arch/riscv/stubs.c | 20 --------------------
 3 files changed, 69 deletions(-)

--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Fri Aug 01 10:09:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Aug 2025 10:09:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1067066.1432030 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhmhB-0005Zi-4n; Fri, 01 Aug 2025 10:09:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1067066.1432030; Fri, 01 Aug 2025 10:09: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 1uhmhA-0005ZN-VY; Fri, 01 Aug 2025 10:09:00 +0000
Received: by outflank-mailman (input) for mailman id 1067066;
 Fri, 01 Aug 2025 10:09:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=eZgs=2N=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1uhmh9-0005WC-Vi
 for xen-devel@lists.xenproject.org; Fri, 01 Aug 2025 10:08:59 +0000
Received: from AM0PR83CU005.outbound.protection.outlook.com
 (mail-westeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c201::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8a582ccd-6ebf-11f0-a320-13f23c93f187;
 Fri, 01 Aug 2025 12:08:58 +0200 (CEST)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by PR3PR03MB6604.eurprd03.prod.outlook.com (2603:10a6:102:7e::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.11; Fri, 1 Aug
 2025 10:08:55 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%4]) with mapi id 15.20.8989.015; Fri, 1 Aug 2025
 10:08:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8a582ccd-6ebf-11f0-a320-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=y9MdfkDwcFcajH7GPqTmJBRXSDtCKrH4Kt9msnhE+DwrPoJ2iVntZfEruBhaBIRQ4ZZAN/fPMQaaC++dScF6ITbUrJTJKizvtW45hhs68JtEAjTPaP4rlCDhNMi30at7BwpHxxG/RwirbK/4YESwOlwyKIvOaMVa3wcGQnHDfPA6i8cP2ACx1aZDKCJ0X52RHfm8LTGK/mlBqdhql0tA3pM00fKVf63YvF5x0SvGF1wmO1u4WH5q9/+XuUjZzXk8z5a324b7qmW7VWOe9qRlr4t2Zzv+CKRn+4EKGS2iKIs79vMk0sr81GEsf8p/3cm3aSOpj1pMm/QYGsOIpWrqgQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=qhrW+V/hemzoP+DtXLKMsqG2TgRmcS68TWrkcQYa+0M=;
 b=gxTc8WwJGQCngfsve9GeYvjEaHEk8cj9Fz1T7oiDDI1xba6VJKjSGLiMUOvR8cOPXntyhw+XMDjCNRTJ/2m4b5aDBabOtj/pfsFIJfA+8otnZ4taWAPASDKTrXTjv6Isi7fvZKaWjhVqkneKZ4s/nBoFw6Gex3S7FKyBXQB88zlCL3p8cy6w3Sv6y4G8Diub1bQB0X9J7EZ5GxTE99E09/ZQG8pw78NLFjn7BGwrDS+38UqeFzw+hX5gyuZUyjIT+c8tI+Kk4xugWTDNgi2dLQyxrpoYsaiyJI8ri+rkZjgqXhg3EloEPJQmEgkyhHAu+Zu/yZQzIWUupwdU/4Z2BA==
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=qhrW+V/hemzoP+DtXLKMsqG2TgRmcS68TWrkcQYa+0M=;
 b=PrlXsv8y4Gu0CDSDkvUj8cSjvC5NwEizF9waqg9K1XCQcAm1nkzFpxIct89fCpBsZnlpONwMNbOQlWHJJ3lrfrCrnyUvTqU3RoKPkJ535Euw5k4C9lUpjgNKSOQDjb7HSwHpD3c0h9k+EQXKJGeWol7IqXNpttZdPgVeg16h+50pRgydIBR9B85Qn3FK6CNgrFub0AkvJFv36CnNKixzaeuvOqRY2pJzoZZ4vwtHs6iJQIEd2A6Dy9CDtPkT4YE4FJs77VB8EwfYkjfk5cjI9QN+Mxh8MYpX2Ptw0RWpP55KZO7W2IuiHkiG6amSRrgf49EBehF1gutwxCl1Q0suFg==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@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: [XEN][PATCH 1/3] xen/arm: irq: drop unreachable pirq callbacks
Thread-Topic: [XEN][PATCH 1/3] xen/arm: irq: drop unreachable pirq callbacks
Thread-Index: AQHcAsxJ/8w0RwTi1Uey9StkpEJ5yQ==
Date: Fri, 1 Aug 2025 10:08:54 +0000
Message-ID: <20250801100852.1260544-2-grygorii_strashko@epam.com>
References: <20250801100852.1260544-1-grygorii_strashko@epam.com>
In-Reply-To: <20250801100852.1260544-1-grygorii_strashko@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: AS2PR03MB8907:EE_|PR3PR03MB6604:EE_
x-ms-office365-filtering-correlation-id: 577b1e57-9776-4cc6-8942-08ddd0e36cb0
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?VT9R5gy1Wef667O0S+iXWrGM5Dp+ffps1h6NP2WD0qUlihF9wD1SptOlXx?=
 =?iso-8859-1?Q?qz0SNP/bw+PTPlysainnoJZGqZCIljok7yl/UZk55PHeFEoFHk9Dk+lA80?=
 =?iso-8859-1?Q?kEVKh/zrCK7/D28t+BkN6HOMXJ42vi1Q169hr3lFYsuqVs0jCThotscMbw?=
 =?iso-8859-1?Q?aQnHyO2TzNu2NM3AAHIGLUwOV8mWxuUrbSEGcCE1ZvQvMfnqNDip04TYGk?=
 =?iso-8859-1?Q?WWsg3M8x9//e+vMlyDjfIsVJz8gOHNct/T1B/9cSxWhnv7YElTMu5biHgL?=
 =?iso-8859-1?Q?+dx7NxwvyMWf5SVo7J9tNn7z0Q5dmGGeuUorBMWM9UHS5N2tx7x35mRCTo?=
 =?iso-8859-1?Q?AxV6oBiN61NoppWPqQghAXHg9N9XojWvNGqngLnfmGWSK0r1ycEciUQLOm?=
 =?iso-8859-1?Q?KCpxIBtG8B82fcX+BW71G01xzQrJ6WfT1gIf6fWSxANYHYjzfyHKE49o/w?=
 =?iso-8859-1?Q?6vLYmiIY2rzsuWD4dtEho2x3sVVE82YCAaj+42TnhQVM/QUrAM3fuVX9RJ?=
 =?iso-8859-1?Q?ctIm8bINotDD1KNFmNm7EpEH1E+5y0Qx6zoxHQvNftR35O1lgSqNMZ07Y2?=
 =?iso-8859-1?Q?5ycWdcJGeD+ubKp271fL+aFOl0m8WQrpZm4JI8QkhgPthBYQ9lasDleimc?=
 =?iso-8859-1?Q?IvsqKcz+fnMGYXUV5+YV4zzriir+m2V+R4plhXS66ZsOM6SearibWCw1wl?=
 =?iso-8859-1?Q?i2mvpNVPO6u+g65N91/o4akRpa5fURNgWshBRgbZanSnG1xabs21mL+DRn?=
 =?iso-8859-1?Q?lPk457cZuP0zjyKUa0+ur+oEH0cAcjZYF4D10Fcse+pYTf2p0NZa0HJhau?=
 =?iso-8859-1?Q?+8A3XRo47L1qNFfgZbaURXsYiLNEhXiVeoZHE5lTRsj9E9MalMfsrh2npn?=
 =?iso-8859-1?Q?ZzjKf5yvLrTNfDtUZj/5Aip5InD2pcY//gRQ/EiismHJ4fIa/esSlm/d9y?=
 =?iso-8859-1?Q?4EYsuR46Ub3+AFn/yn498YUUSnjZwxYRXcCLcR/CFp44hU5o8hqoo69Jr9?=
 =?iso-8859-1?Q?vqXCUemLZf2cKw42IJD066wxR7Dn/sR2MAryP97ndbbzWOve3onp5jY2mH?=
 =?iso-8859-1?Q?0PSvgbxfx5WY9MuojYRPN852os00PE31meANTsEJb78Rr23pIH2NgBod/B?=
 =?iso-8859-1?Q?aLCBRJCWkTCzIvwAm6DXj9z+odg2EUmYZ0JBBag38fR/vmyH4vxYe+TfL4?=
 =?iso-8859-1?Q?683VWKIHIJsYVWtpdVzvlbc1VUSRg4yGoBklhGEU2N7LHKZVVLQ/+VwI5l?=
 =?iso-8859-1?Q?Wgh1NSykMjoRrvlYx+DvifYnV53AeNJ+ibwTbRy8IMdWoNorXH1xqUXYww?=
 =?iso-8859-1?Q?SAG6DrgR6yNK4BNIisJjo6cTmEe2yAiImGunouN9TdaNkzbXmf82bdIVTC?=
 =?iso-8859-1?Q?dYMPecRBH+AGX+qe+GUj6ZPAqk39VYEGZ5unkd6dPRt7COA+2RL9tfiOqH?=
 =?iso-8859-1?Q?XcbNWKgBwqwpYEQ7z1haxSXznKAzWrn/j6sPjt17anSrXhHm91kdXeTtFe?=
 =?iso-8859-1?Q?cbr3oBzPCgNl5NhpRGhG9/bkpWTRunPWXO9r6MCss3lQ=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?e5G25lDLfrUO0GOicXRTEpfwURHyctiDipca6LV19dMrneFIZkMJJXM1qx?=
 =?iso-8859-1?Q?CMeb3PhlSsPlJoyDaRGvCNrFgGDTd/X8Ur9FR+K4UUWY9R3sdSzeEUS6dX?=
 =?iso-8859-1?Q?dj5L9tEdV6GZHjMR5bKY4BSuoFjW1jUgACu+rgsGP0upzORPtkHqernTM9?=
 =?iso-8859-1?Q?5KCCE6zgqN9LQAzujJ77kt53sgg+Y2MxNkmTvE9sQ9s2zCao/54F+NfuMj?=
 =?iso-8859-1?Q?3vBk/cQnU7gMfo6l9I4xQcCTZP15e/e3H8icR7gzCco8dtt8JSjZDVkkCz?=
 =?iso-8859-1?Q?U85//M0hGguJyloYQYCDUIyCEgxRZnlVzMbjQMVLiHFWjEO/uelWeSHYAe?=
 =?iso-8859-1?Q?ZjZAiBpmC6uatF11yx97pDciXp1JFWu2azXONsxUmqEDf1zfWA8gCLuFmq?=
 =?iso-8859-1?Q?PBsGLyzWRVatUsGwOLKtQhFgV9RdA0oJTDFJDkFFjMMUyJXDckqpiTm3AP?=
 =?iso-8859-1?Q?Jx7ofrbkXiS6GYMEdN8d8XQqeCuipABQ0LhZKmlcbmqc9pA/6ifED1SrVm?=
 =?iso-8859-1?Q?4rRfuKSqsozyG4nP/ffyVD3Wur3WpEIDi+pq0sjz1L7RRVIgg2+BxKQhVJ?=
 =?iso-8859-1?Q?LDcagYfXk2VuJ2swN6NNwxgzEGf70OBRXwieXX1HQ+bh4mYVjp+rZqzF3x?=
 =?iso-8859-1?Q?5LXRxSHJ+83larjfEFPiReNuv2sflMlSR5TZkok9e7H94oqXebprvG+1Fd?=
 =?iso-8859-1?Q?DjRgao0qPgl7sBx9jiJfUsEkFjjVBVQUw6yupOdkwYeMFVT4CfWfvCE0cc?=
 =?iso-8859-1?Q?180TX37Zop/36mQXV6r4a70W9JfZLRAd8vnfDIi5asdTmCQI/JiPd9jlWa?=
 =?iso-8859-1?Q?X7CsxwJxS8/00t0rbAU26zFce8fZ036T1HAyT/ELJ6e5vpB62bWR3Q0uS+?=
 =?iso-8859-1?Q?Jt0qyk/ixCtRqZ6OCan/+E9JYZflW7Giaj55S24xV46MIzecxu3gtHDOMk?=
 =?iso-8859-1?Q?TtZRoeYF0oiM69HnHlxj2MelY7TWatEAONnpNJJUgwbLpEfX7SUPA55GEM?=
 =?iso-8859-1?Q?I28X6kb7rofJuZbXKu0Ypx2xQ7qcX59YD760P5NdDo74IliV6YELKtTLLJ?=
 =?iso-8859-1?Q?n98mvShlqb/5kISpg+rIU5W+5lmBZ+hjfip6QdpvfdtgKHm7aFOVUR/VGE?=
 =?iso-8859-1?Q?ea1sx8P4QuxlRzdad8qwSXUB4r6X176YT1CzlnIXy/n+Fnm66+zvmPF/v2?=
 =?iso-8859-1?Q?5j+KS9lfQlRL3iE/Ii+nVCO1Y2g4IEmmQ5DUqsrfpEpM9yTrLvkoKkKrXf?=
 =?iso-8859-1?Q?xbdavUHQVBmWVzI10mg/exdkvRe3A8ZYsqIzYHIhr9CCO39bVBIlXZWAY7?=
 =?iso-8859-1?Q?uDgNFv4M1MeMKdY9Oznl/1XfN5izL8CY4uXEnBcuAHwxSlUkFRTw2RCpX6?=
 =?iso-8859-1?Q?0HIOiGmmtCijP/2GDjS5j/cih1GzfarQgxBnvSTm6QES9bk4jCxAtyZJfs?=
 =?iso-8859-1?Q?xMua4HfFkGcF8zKG2HDwU7/sXI1xoeVswUaIj4bhQaW1psZ2aNTcLYN7SX?=
 =?iso-8859-1?Q?6509QjhikZYHmvjduNhlEsPl8XMxyOq+TeL3I8H9qOiHZdtysnXqNKfqpk?=
 =?iso-8859-1?Q?0fx8qriIJn6D9V8/uSpwDtTTeGP612dKTmGom/8y0MQYR3NZ+H1mhXZUmt?=
 =?iso-8859-1?Q?BfdLzH2krbpGk+7vczCuf1sreZUZcC9MmT/+gQgf/25Bfes4W3Vzvp6A?=
 =?iso-8859-1?Q?=3D=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: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 577b1e57-9776-4cc6-8942-08ddd0e36cb0
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Aug 2025 10:08:54.9786
 (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: UqG8pTQ4VpenTvCN4bhPlAxicEiqj768lqJeb4MB3FCfevFxEKQmb5TszRrZArAJiaiXkWxops7qAJPTSe8WftnlZCXqupqFrgWDGhdKkoA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR03MB6604

From: Grygorii Strashko <grygorii_strashko@epam.com>

Hence all common pIRQ code is under CONFIG_HAS_PIRQ idefs corresponding Arm
arch pIRQ callbacks become unreachable, so drop them.

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
---
 xen/arch/arm/irq.c | 29 -----------------------------
 1 file changed, 29 deletions(-)

diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
index 03fbb90c6c43..4bbf0b0664df 100644
--- a/xen/arch/arm/irq.c
+++ b/xen/arch/arm/irq.c
@@ -595,35 +595,6 @@ unlock:
     return ret;
 }
=20
-/*
- * pirq event channels. We don't use these on ARM, instead we use the
- * features of the GIC to inject virtualised normal interrupts.
- */
-struct pirq *alloc_pirq_struct(struct domain *d)
-{
-    return NULL;
-}
-
-/*
- * These are all unreachable given an alloc_pirq_struct
- * which returns NULL, all callers try to lookup struct pirq first
- * which will fail.
- */
-int pirq_guest_bind(struct vcpu *v, struct pirq *pirq, int will_share)
-{
-    BUG();
-}
-
-void pirq_guest_unbind(struct domain *d, struct pirq *pirq)
-{
-    BUG();
-}
-
-void pirq_set_affinity(struct domain *d, int pirq, const cpumask_t *mask)
-{
-    BUG();
-}
-
 static bool irq_validate_new_type(unsigned int curr, unsigned int new)
 {
     return (curr =3D=3D IRQ_TYPE_INVALID || curr =3D=3D new );
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Fri Aug 01 10:09:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Aug 2025 10:09:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1067068.1432049 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhmhC-00060C-MI; Fri, 01 Aug 2025 10:09:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1067068.1432049; Fri, 01 Aug 2025 10:09: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 1uhmhC-0005ze-Gn; Fri, 01 Aug 2025 10:09:02 +0000
Received: by outflank-mailman (input) for mailman id 1067068;
 Fri, 01 Aug 2025 10:09:02 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=eZgs=2N=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1uhmhB-0005WC-Vk
 for xen-devel@lists.xenproject.org; Fri, 01 Aug 2025 10:09:01 +0000
Received: from AM0PR83CU005.outbound.protection.outlook.com
 (mail-westeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c201::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8ac81a28-6ebf-11f0-a320-13f23c93f187;
 Fri, 01 Aug 2025 12:08:59 +0200 (CEST)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by PR3PR03MB6604.eurprd03.prod.outlook.com (2603:10a6:102:7e::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.11; Fri, 1 Aug
 2025 10:08:56 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%4]) with mapi id 15.20.8989.015; Fri, 1 Aug 2025
 10:08: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>
X-Inumbo-ID: 8ac81a28-6ebf-11f0-a320-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=JCKsWRakLwyYzf4BTYs5H1H1zUCCpImRQV5w5PFHnffAngJIQuKJPp62EktN4WP5PSW3qsk26dj2Q38g4lXOaoxrRlTPG1X6AEBZ7Crtw8MmfUe3Otkk486Li+s5Jofa5RBBMGKXJXi/IyF3aU5zQIXNfejjmDyuhTnUymIUsDtMx5lnd5SUBYtajvJXMjaILl3wyFINcJ/wzDLvn5X7bv+1UOSA1hujGo/rxeZUd+yEj9lstyWKV+aFr2Xq2I4dIOVYBDnAu4xduqwOsXQ/8AaE2TqZYvffCOr74w/8ePToxtBkwTlIDMkBh6Rhp2GsrAZDmYJiGnJ0R2Yk4Kh+kQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wrNY2qY3WqE1c+RRbuRXMYRfegzBRCI7aEFy15xy6dw=;
 b=re3jIyab3tH2RTDII9RkyzeirmGZfzi9xK32UwWG7rv+b1Ahrk0yKIBFJZnOS1HFISEICRBZdLaPfEGDPmtcN89CaA8074r6CbxmAYoToF1b2Rh09S5dGUzLx99NqZyHgWqSJ6zpSQkmvxr7tjCzaP/LtXpW/jIeoQAaJ3u96oRo7BZwzf72fJi4YSzmQdIKsMKmKNS1M8mXUnMuKWw9CBLh6GBw10Bzgq3Wt6RyEuet8QG6qn7jQhxdfSpSTJOtiSLBGDFiRVJLof6FeT0R665kIKOVmYA+FGuaxSq7+rmAr752Ar9dAI1gmJM3WcCMjUwsxNoJ4fYWC0YLL3wewQ==
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=wrNY2qY3WqE1c+RRbuRXMYRfegzBRCI7aEFy15xy6dw=;
 b=LcwbJ0BMr4AizCH6XM4mNw1xsFZYxUfdYYtqSirVCeUqupdBRTAe9h9nI244Wpdcnf8+NKXmkYD+8eWyUSgtc7TQkHqq5KQ7deMm1oXJdBSH+mPk81eOPawUc4co+wp7muNucLLpzYsbio+T8dvJvCmok6r3eTdKXxOTtzn8F7K1CfZeEcs4YLxIT6i8fxfeLcyU6ZEJVZOprY6aodxt6mOrUvjLfO9l8wIVPK3pTlaCM9Q4WMDK3yBG8WjbjxZ0iHM8WpJWsGIJwic64I5Ic6O/45eLKGOAUc8bzKD8h78HDyC8FmOgEI9tsZo0OQKSHlhdAR64ReFrdDTZ/eWaXg==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Alistair Francis
	<alistair.francis@wdc.com>, Bob Eshleman <bobbyeshleman@gmail.com>, Connor
 Davis <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Stefano Stabellini
	<sstabellini@kernel.org>
Subject: [XEN][PATCH 3/3] xen/riscv: irq: drop unreachable pirq callbacks
Thread-Topic: [XEN][PATCH 3/3] xen/riscv: irq: drop unreachable pirq callbacks
Thread-Index: AQHcAsxKoBNPnM+NO0mt/czZMWhDgg==
Date: Fri, 1 Aug 2025 10:08:55 +0000
Message-ID: <20250801100852.1260544-4-grygorii_strashko@epam.com>
References: <20250801100852.1260544-1-grygorii_strashko@epam.com>
In-Reply-To: <20250801100852.1260544-1-grygorii_strashko@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: AS2PR03MB8907:EE_|PR3PR03MB6604:EE_
x-ms-office365-filtering-correlation-id: 54cab3d1-c786-4819-7b75-08ddd0e36d00
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|7416014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?5XH+YROZARqVBuCmeMVdOGKnX3oQ26Kg9aSl9SFLAg5J37c2eyUwDj9XjK?=
 =?iso-8859-1?Q?Gj5H/0pT0I8irstW7XgxK3spClZFMdN1445CtK+KebCG07J1GPq8njezcx?=
 =?iso-8859-1?Q?Jdb2Bt8GPaGiBzaKc3M6IwyQheKZfmiIHqYDL4WSyBWrMkHHMuQ4ecSFDq?=
 =?iso-8859-1?Q?8l2Jon8FLB7CyC6aAYHgKWdioRxlFAUsaP5X/JMcqykECzjOsuEBWqMVxD?=
 =?iso-8859-1?Q?r5LHtrxRRVZSketFsaV0HQSROydzPeKhDm89ib7piMnkvYsY19Qrftznfh?=
 =?iso-8859-1?Q?nyT0sOyG+rM01TobdpqpP9LBGbAvJ3pualNzbnOWafJZYhsVwm6agi1ZFg?=
 =?iso-8859-1?Q?D3kqOM5y+t29EcZjyXbWsehvwDS+8wRxXa5ph8NdgBS3P3x2ebmmbGZDcg?=
 =?iso-8859-1?Q?KO5Q0m/oBqQM0Q9p6Bk0tD2fbz9+8UyTKNLOhZE+xB+2NKbzmR1J0OwCD/?=
 =?iso-8859-1?Q?6Aksn67uESir83j9wxnSctT70udEF1w0/BKYofs7kkmGUy9emaxUmvzkxQ?=
 =?iso-8859-1?Q?WJoPrH2d2Wgd/WnAGy5R0Lx1YtjglQXKe4KjNJkaAydzBWMmNMmxHmNBKf?=
 =?iso-8859-1?Q?yP1z+ET179FTPr07i0+V5f4lDb0uQ2zKET8jIvzK5VX4K5A2ctDICjNxtP?=
 =?iso-8859-1?Q?ybLpxhamGZxWl9f7qa6l3X2TFbBZPyCpQOuk3eUhTatm8iIEHDLBPtkx/v?=
 =?iso-8859-1?Q?gNY+cjcWBijLknzIoWNTN/6lxKPU4RtJgwRbmH1ZMFS/SLYv5l+Jt1Daeu?=
 =?iso-8859-1?Q?spHhPof8Uf3Mwfiu2zaTIivmFA7hcnxZerNCA8jEEPnAknlhBQLHfC30eI?=
 =?iso-8859-1?Q?E9ud8tsU2ZshfQQxafitt+QU0W4UgXDwg1FWGdcSCcUFhHtgzCmB0ptgJk?=
 =?iso-8859-1?Q?EJVWDerhk7ZxAVf1wkUZFbiH+jByJxpl9Kqk9djQTegIN9T12/HCzcfpWW?=
 =?iso-8859-1?Q?nFrr7R32WglSkOJatwQDR7e7vVXPO7q7PFrG4O17+TfU99cOQgv3a3hMOR?=
 =?iso-8859-1?Q?xxsafkEzi/SlEXgqs/kvaRogTvMJIIUm0MTfbbj0diMOfBBid2mn8gmz6b?=
 =?iso-8859-1?Q?N71xhpPiJsSmTpAmSVzMkf+IM8BhG72g/AIsjan/GfHIMShjCl0C93AedK?=
 =?iso-8859-1?Q?qg/strH3iKT2ggaBlmc99i/VsdiPJZnumO/58zWSRhugAMT5TMtHvPjBOm?=
 =?iso-8859-1?Q?F8Kb06hFmRFLb/xUsh1nxq2MAXSvLxfrD3tJXeYVvCLgAe91xcbwOWRqnn?=
 =?iso-8859-1?Q?0jjME4iKaPub5N33+AeEV1s+7oGqsWeGvdsCkISdE3F3qXu1jeVFK12hEA?=
 =?iso-8859-1?Q?GM5iNkT6P2bXy2u9jqB6gRnTdCc2noL/mW8zG54wqBhCeYmX6lr4GtVgi2?=
 =?iso-8859-1?Q?Q69VilLQCVYvYQKJusHdLAzgmQ8sAI5To6g/28rkJGyzdqeLVaOc0GE35a?=
 =?iso-8859-1?Q?uWE3JwfpcRCmLoeHtlN126CaNs/v3DlMj3RYw6zIUE5A1ae/9ybNlzC1xz?=
 =?iso-8859-1?Q?F8kog6WC2t/m1lDmvttJfPbZPK2q2BkWx1zofY5Ao9uw=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?eMJomuLNs0KAWW6ceqcDoyBGUQiKKdrw9KXx7SvR/Bra5xr6sg4Z8eemAX?=
 =?iso-8859-1?Q?x923XbfTyV0hNJwvV4mFEKX1ZCsE9KzzOeGe8TXq4yh83q9a8H30vdZo0F?=
 =?iso-8859-1?Q?pnX78WWJcVD0BihTH7CGGdWbeW6xocREwWYUdkdhBIi8zRKHDIEcf7o6G0?=
 =?iso-8859-1?Q?P+qd9bra/HXnPgT4gxrOX7rpslRA/UaIQtUMvwBirmXGruaXVxsJ0TgD6v?=
 =?iso-8859-1?Q?hXjfvHA4/8IRkQ3KdLhQQLzcuzLrupw/PFQfA6tvaBZ7WjeuLbhQoeo7+l?=
 =?iso-8859-1?Q?BhF6GCzJ4T4zKaFoHoH+ToaKYXd6uO9bGLkBw+xdAkDo2lXLKFAZrp8gev?=
 =?iso-8859-1?Q?qLYBo32VSzn6KmMMIM1Nbp3BVnAEqjRiLO3n7QMcUm0KB16mVLC0cQhxXB?=
 =?iso-8859-1?Q?Igdq28obUW5cw23qgLWXCX03zwI3HaxfTrj2FPJpuNwYtBLqaucSDHne/Y?=
 =?iso-8859-1?Q?N8cMHnt94sP+urA/RjR2Xx2vA5tHxon7jg+XbEJtzTkQwfPL0BWYoIdV4q?=
 =?iso-8859-1?Q?dhEZ8vilUDjeQuBd+mLLOBzXZbY+ZcorOmWzWlLFLt0kD2xC3ViyIIOsH5?=
 =?iso-8859-1?Q?6iV7OlyYHz+WqDV4BI2sJD1OZEPzS/21wx9cPxTZH07TP1/xdtTfzYSROP?=
 =?iso-8859-1?Q?g8Ef5dDwInFmIygTWHQ1Whe+BBj2hqfe+WkYqEFOBSIjqgCm68QI5sB/Qs?=
 =?iso-8859-1?Q?+Z6f/bc4im3PPfmRQXi4Oj3cE+hTqKYaqyQk0HY5YbQlm5Q7h2bo9+3Neo?=
 =?iso-8859-1?Q?AWTIvEty4gO2Wv1j9ihq8d4DDmXtI/2Kdki4sIkiCNDYxy50iBWj7x9w74?=
 =?iso-8859-1?Q?JfcfubUtC2IeNaeOifF+3hr0nBYQZdD6jcxg2+WLN2F0Td2bWs7S+m4VTo?=
 =?iso-8859-1?Q?fOLK1U32wuwE7wRXm+2L5fM6sg6KkD3gCedmD2MIEMyzPal1Rc2OOcr/nR?=
 =?iso-8859-1?Q?x3I7wxFvzfG3iogueKN1HzrN/SgQ4OWG5cxACBrS43H3jQwbMAy4Ldxv4a?=
 =?iso-8859-1?Q?EaU+nAPwu0/uojKXsssVQBBvv7ob5F4U/dnFCCpETh4NgWf78HA7DuMxUf?=
 =?iso-8859-1?Q?a0Ue3P0gWaWiLOmcjNKbyTgmgX6XGvH8F8RlA6HMecPEN5G0EDxbQolxTz?=
 =?iso-8859-1?Q?aRmOyCAggzK+gGbsvjCkUryCwSLzv75rzoXQfAMQliBhJrGEDjn8ZebTLk?=
 =?iso-8859-1?Q?of7gT6up60KxsIZJV+tQzfZYxKI4WprmIitzQtRaldjWQwpj9QR/Ublzl4?=
 =?iso-8859-1?Q?Q/IGAxLMvC6ExoLRaJRtMo2Z/FVfofPGryAeIsqZHKib3GFTJr9POh53Nb?=
 =?iso-8859-1?Q?veDhNj4dNP9IWiMqQdKCrNfcFivEBwf2eGwQKumcaI/LJOQo2l4GOtgf40?=
 =?iso-8859-1?Q?Xu5h3osKhnwyKt++rf02y6akUJT9Xwyf+P3Q9Z2JCnQse70VRpDzZBjUKm?=
 =?iso-8859-1?Q?djBJ5svvlIIzx4mkQrLXrLnWYhZtvFVKnbINK8aRGGuhY+5IkOVdWkI3IO?=
 =?iso-8859-1?Q?ZU0jlGihsqCithkiMsLubURaQeCvKgSHScaXKYE9/3zRsGOz8XS6xsrIev?=
 =?iso-8859-1?Q?f9e8/k4FGoTY6gE6sk92Schu4iP1hxrUuvBF/GLkP5lemV7b1rGEtBqSGv?=
 =?iso-8859-1?Q?06BWVmgNctSEFseCFzoQP1q5KdCyv9gewjRRw0JL9EA481mpFIueKzLg?=
 =?iso-8859-1?Q?=3D=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: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 54cab3d1-c786-4819-7b75-08ddd0e36d00
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Aug 2025 10:08:55.6840
 (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: R514XdBWZSAbClVlvqXQQu42eGb3pw1aT4JIcIA3SxJJSs7H+igddqoHg64OiIuSSr5gt14pbCF0peeF/7D+MIyfTUoy1IdICajgVGCnCcM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR03MB6604

From: Grygorii Strashko <grygorii_strashko@epam.com>

Hence all common pIRQ code is under CONFIG_HAS_PIRQ idefs corresponding
RISCV arch pIRQ callbacks become unreachable, so drop them.

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
---
 xen/arch/riscv/stubs.c | 20 --------------------
 1 file changed, 20 deletions(-)

diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index 8918cebf35c6..1a8c86cd8da2 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -82,26 +82,6 @@ void smp_send_call_function_mask(const cpumask_t *mask)
=20
 /* irq.c */
=20
-struct pirq *alloc_pirq_struct(struct domain *d)
-{
-    BUG_ON("unimplemented");
-}
-
-int pirq_guest_bind(struct vcpu *v, struct pirq *pirq, int will_share)
-{
-    BUG_ON("unimplemented");
-}
-
-void pirq_guest_unbind(struct domain *d, struct pirq *pirq)
-{
-    BUG_ON("unimplemented");
-}
-
-void pirq_set_affinity(struct domain *d, int pirq, const cpumask_t *mask)
-{
-    BUG_ON("unimplemented");
-}
-
 void irq_ack_none(struct irq_desc *desc)
 {
     BUG_ON("unimplemented");
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Fri Aug 01 10:09:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Aug 2025 10:09:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1067067.1432043 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhmhC-0005yE-D9; Fri, 01 Aug 2025 10:09:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1067067.1432043; Fri, 01 Aug 2025 10:09: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 1uhmhC-0005y7-9n; Fri, 01 Aug 2025 10:09:02 +0000
Received: by outflank-mailman (input) for mailman id 1067067;
 Fri, 01 Aug 2025 10:09:01 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=eZgs=2N=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1uhmhA-0005WC-Vk
 for xen-devel@lists.xenproject.org; Fri, 01 Aug 2025 10:09:00 +0000
Received: from AM0PR83CU005.outbound.protection.outlook.com
 (mail-westeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c201::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8a914b1f-6ebf-11f0-a320-13f23c93f187;
 Fri, 01 Aug 2025 12:08:59 +0200 (CEST)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by PR3PR03MB6604.eurprd03.prod.outlook.com (2603:10a6:102:7e::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.11; Fri, 1 Aug
 2025 10:08:55 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%4]) with mapi id 15.20.8989.015; Fri, 1 Aug 2025
 10:08:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8a914b1f-6ebf-11f0-a320-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GnzmmPibU4A3vpohfgHoCmw2j9zLQJ+PvcN1BSvmFhliTY04DWcGpwhfFcy1iuAIolzt9z0R9cFcRNOcFWFL35W64+TXBatuOTUlwba358cXj0WVqDROw7C3ZUuubeAme9cTrf/yhymcaymYme4uV3WFbbJMOkkLpLMJAEAFepZcLCexCIhTKRGzDMc6blhKBnxTyApbpimOSGM2UGXzFdIlthuwxmgxifmfkSEz9V2JZJOHx/1YsNywA2vJ19qcyCnhW7jAoOuWHIJDU1T/FnFyxOAYj/dARKDbo/HeYqnCNfVt9foSBdtOStBfjiUV6UYXrkWuTZq5ZO7munLk5A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=FqUtdEBzonvA7w6wXArFRE0JOCfTp97yglL5Tec73yo=;
 b=pzeCOhjwSRt3QxFOJ9ElpbKk7NWATQL3tqpaNoD1jtVehazuzeed8xsT252tL2qySQcINX8BeVBAIIv4wF9ZreN8IU7JyxuHE4StKiL5IfIDExXAM+Gfn0yQfnh/O/g/GsP3w7UsvoM5H0hTDjzmhzyG395EcgTZCjorvEYMtUqJFiYeRG55W1y1iwDDVseABuukjV1ACPo4rPnYOJ3hq7K5+IBkf319mYCtIRhm0Kxu0j1SjprVQ7JwZVF0fHYOJHW/8TWQ9ha1z7w3La5e0ytY+xNrbJhmkr8y2k1rQZRkEeQi1Tafff1FF9t9AzaJ49qjlxVpiey3X2TZxqHxiw==
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=FqUtdEBzonvA7w6wXArFRE0JOCfTp97yglL5Tec73yo=;
 b=RjAr+umqQVc8iw/+ZklHTKc5+C7WJaUwzClOlzsk88hpfuOB6n95ZlY/qFtDlOhdArd73v/QPzU4PsW/K8FO/0AC/hX8gvMVOi3uSiR36ZI10Op9Ol4AbfDNmL1uiKh5sYE7rKfkiCZVijra4DvJ9t9yBDPfme3KopNikUd9FfSjiP5wF46c4dVsAImFa6aSz0JQ59lzXKwmx3X9gSpfvLzGGLkbMGRiLupEJqa6M+a+FnP1gF/ZYILe9XCy8CPY8da0OrxtsIQtDxQ9feIkWGY7Wpad/hQ+kKqsut31LQO83tHbSyjqfAD51DY7PkAITOxKe/xNu0182ZlDVqw1dA==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Shawn Anastasio
	<sanastasio@raptorengineering.com>
Subject: [XEN][PATCH 2/3] xen/ppc: irq: drop unreachable pirq callbacks
Thread-Topic: [XEN][PATCH 2/3] xen/ppc: irq: drop unreachable pirq callbacks
Thread-Index: AQHcAsxKTnRncYzOaU+l30HRezRgVQ==
Date: Fri, 1 Aug 2025 10:08:55 +0000
Message-ID: <20250801100852.1260544-3-grygorii_strashko@epam.com>
References: <20250801100852.1260544-1-grygorii_strashko@epam.com>
In-Reply-To: <20250801100852.1260544-1-grygorii_strashko@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: AS2PR03MB8907:EE_|PR3PR03MB6604:EE_
x-ms-office365-filtering-correlation-id: 079e3fc7-c7bb-47b4-91ff-08ddd0e36cd5
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?GjvjJS/Fssz5nWDZRBIL6IphhgiFdYab9xVPDXaoZXHmoqAQQC8cTTmxGS?=
 =?iso-8859-1?Q?kMGnrdW+jMOmLG5TsQzamwPveiqiuLa5CcrRlsjH9RN3tcRxkfqcx9lr2V?=
 =?iso-8859-1?Q?3mAlE87yipoKLYVm1YkX3U1QQfudBIECNKWzHw7I9+Mwx5o63YUUDbk3D0?=
 =?iso-8859-1?Q?BNOgsVv9/fCin9rNNGSABPXH0ycIww/W1E2gEkLjLKbPeFejfyGH2rpjdf?=
 =?iso-8859-1?Q?TK7IPvjuatco8ETeDc+qk3HtPynUEGzrCUN6OTZCpwQXXceTsYSPl00DA0?=
 =?iso-8859-1?Q?ftKHdpqCFmfhNFN/ZzHWCoTbJV5M5soAE9wUJrjgIThcQyTNG3LyR6uYb4?=
 =?iso-8859-1?Q?qwrmyrDABTLEK9T3RWLHC70k+X1OalfkY8XD8fkQ5w2W3LRqJkEbq+gzC6?=
 =?iso-8859-1?Q?MGFRHuxU8pmWFnzDJQ6ddUTinHXlEMlNd/QkI3f3pBatPS7mkD39AaANqS?=
 =?iso-8859-1?Q?r0E7gYj5OH3MCpMai12Il3CG/0dLM7bekgcYETogMHDX6bhUuEm+1za/Lr?=
 =?iso-8859-1?Q?BehpGtVCoMK7M/3YWu5iljJBsrDDyfbKjZmK3HaEYX6A8DGZv7tkcMmxOn?=
 =?iso-8859-1?Q?6WMuXq6wGzCgj3nA8niAGQxBvQG/RY70n3XKinD7XGLUkyiTsAZsdYx3s7?=
 =?iso-8859-1?Q?xH7DZSk9VYJnfzo62hHvJIiAWvxJmiSrC2qhBS8wat7fev6v+cpcEhe3Fn?=
 =?iso-8859-1?Q?xc/C3TQd1pSzp/otccRJltoJiNT9OvzX1ZaCscCFN19Hkza5OnVYIJmVJb?=
 =?iso-8859-1?Q?YGTTx+eVX1b32QCRDbJWu0OpjwqgmhkbFIVp+El40RYL5TGCvZeSRWfYBU?=
 =?iso-8859-1?Q?qEuD/eEiNQLVgmQyZQizjjnhDDPxVfX8yjSnpvwTh5XeScNYrH8N2AjQbr?=
 =?iso-8859-1?Q?50wS4/CERJd6t0MrAzYBBw9TxPsfjX4EtiFBKbzvBCnr0um68D2EnL0l1h?=
 =?iso-8859-1?Q?cRiTCmdOIJsttwadQyvb5u67djQle69+CbaelGAMq2paA6/5srxtJArouO?=
 =?iso-8859-1?Q?O32ZsrJPpJgiU3jmIn6OgCVGFD8v5fRHmAJXWE0y5Z+LTbWaK9ISaXQMQD?=
 =?iso-8859-1?Q?JWdmPWi82d72JuaogiMBO2deXbYl5t7fpAS+IF+X1NrT8Beves0SxwW+A6?=
 =?iso-8859-1?Q?LyY1l7itBOn3aBV8ddQkdXNeOe9wG9Gs4XYE9bbX142TDLUBd/kjiilxk1?=
 =?iso-8859-1?Q?VZHZte2mounfp2kcE1mUQ5S5tzNwgOtPC48gAptfpUozXNB0oU+pvjqfzQ?=
 =?iso-8859-1?Q?aZAFIH0gcNVUyUMUMa9bM/zESr5lJeXA7qYYsoQOEqoYUl2jVdCy58g/fA?=
 =?iso-8859-1?Q?pYxQqsV49SemF+S4mxXZFe+fzU1Zf9HzTIf3Rt9jxmBjTeM2NFDjJnrmtD?=
 =?iso-8859-1?Q?Bsh78C7iVT10mANIXCUCZGnFemg3Jodh+6gWRr0J+jUPrQQnkBx0bZ4TmF?=
 =?iso-8859-1?Q?KzyrvWQQjIwHfVfEc4UDyqHuskslm0kn5cm9maYMWn4T5OQ7fkQD8LGjiZ?=
 =?iso-8859-1?Q?/L/IWEycLJznNccpZEOP+dA20QvMK1mvN3RTi1QwfLRw=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?WR+nd3+b+8W7Tqx+vlQ3/lQTdXcxAb8CPMElKQVwLweGzJBiHoNqwO4Op6?=
 =?iso-8859-1?Q?MXr+9DbgMLxwds8LEEP7ldA0PiCBvV7dPZlXC9ur5aeCIlpkLuNHZ6GWWn?=
 =?iso-8859-1?Q?k5zHk8mUK8Ws3/Z2CJZkSwTgLyuGhtgFY1PG4wLsk+JaqXWEatpiaH2PjY?=
 =?iso-8859-1?Q?W1CGbV0ua0pEepzPz+8UWTL93Arhh1D9m56zo5ef4YW6NeWZOU8bzjNwDY?=
 =?iso-8859-1?Q?Nn2PUDAVUom6H6lFJvsS+efhMMQGDWj0DKhlcIsvyvrLnpHg5ucKwXLQLm?=
 =?iso-8859-1?Q?K0dfpxn7Uvs74Q5rK3h+CmQhmk6/ImRDrIlLSXcgymQXzVk8ciQSd6WU3b?=
 =?iso-8859-1?Q?brRGlz4lElQ31tuhEbjBHeF7qKQgOdeV4JTQbwiLdakoKUU06y8kfEX61d?=
 =?iso-8859-1?Q?+H2evm7Wp8NDZM62HKnvjYfkgdZ6V5NOUMCrX4DWAmw7xz6IDtvU9NmQdH?=
 =?iso-8859-1?Q?d9T34R/mU4y8ph854RZPl9CLUC2QDkvEmi9cYSXyXgRvJgKfZ2PkLv+BRF?=
 =?iso-8859-1?Q?Sg0LAjFpTYoRMDl+68LicgVTFyPlWySDVmpvggtLBFk8vVfaEYfrS/CvZ8?=
 =?iso-8859-1?Q?3d8JR3H/Yh0PD8aWNZBA1VQRxBId2qDZKQ1xSW10qCCgTnkqUw2L07/lyF?=
 =?iso-8859-1?Q?Fid0wGPDouoLchs7NO04P1+8nYmamf/yVF3quRKM2Yv+Fx6XpQrfi+bVrl?=
 =?iso-8859-1?Q?d/xlhLO6ZJMFKymGkxL3ebpTtbRMn81YeZrn54GMVJTFl5AIaUXx4jCAGl?=
 =?iso-8859-1?Q?8dnbZw4+Wct4lTMreA9FhtgWRWUKQdaw+5ulGfsqy2ugGg5rlfbZH95oj8?=
 =?iso-8859-1?Q?awFmvICKOXkp9KePV8NPHnrcsxHfMUwDbdWdL1jOGxCHyg+lP2PRlKiP7E?=
 =?iso-8859-1?Q?NhKa02Q0w97UKbiAvDfFvBgrJRkN0Asqinlypx5TGEYblxye12tJlR47J0?=
 =?iso-8859-1?Q?gqRomR7SY1Xi2qrN7wVNOEI6BWZYquW6mxDE524hDsAZmDaDtc8+Q8MZld?=
 =?iso-8859-1?Q?UP7EXfv0+l4ZSK2cJgqhrpLTmjk6eRIhHk+b3sLR6pV6QLvTPdWcsQpM+t?=
 =?iso-8859-1?Q?et8wrvzDxD/zUtSwbS0XiOGT9vuCRsS29q+XLHvcX42cLqwMwFkWPkN3kH?=
 =?iso-8859-1?Q?jJ2QSHSFypD5IlGCwguF1ihe5lid4862k+pu40mDhOkrvDw7UU5kmxawB8?=
 =?iso-8859-1?Q?MISKP7lqfKBxnsoRZYjy90ZG1VDhONgz4LFJTLlWCPCR0nUcHkhZ/l+bCO?=
 =?iso-8859-1?Q?AdOjHqRzSgTJf+1HYuBNFXJ9uaseBLK710FyFqtqFdpLH/rfacFAHswBFV?=
 =?iso-8859-1?Q?WJJcBhMAQIHd0c1XX1NaLnQJ9PDgLNDoqg32Qt1wbP9/OD4HU6Oss1pVGN?=
 =?iso-8859-1?Q?BLJZxkqe7BF+bmvbgqisMlU4jlwuGclUwEIDdYhwkkniH3ReB9n10Iywdl?=
 =?iso-8859-1?Q?U8RR97YLUeAeKm9n29FJ/U4wCFqzuZxcY0Gudrm0oH528+NwZsDK1sRrYA?=
 =?iso-8859-1?Q?qvARYpWZADE1+Q6Anm6aqqDhJBsH9NCdQkXeaKBsjV2QHi2hlUOU0m4qOG?=
 =?iso-8859-1?Q?G83ZokEeHqAQFM48hfY0nU+wXNfkHsar5eFsqZIbyANNJETO642vqgoyLN?=
 =?iso-8859-1?Q?ieA5r3MUyi+SDxAM9Az1pLRcmssWuqjHxl5Ntil3uDjcThqJwkWfdDAw?=
 =?iso-8859-1?Q?=3D=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: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 079e3fc7-c7bb-47b4-91ff-08ddd0e36cd5
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Aug 2025 10:08:55.3603
 (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: WN29ZiglIWazQCgutMmdbt7H5DQQvpJXo49bYPREvmGkxAW3RWigJB5eu41c2tnTE+A+L7EZpnv/ZbsXz0kOmTLBi+0VcLq+l8IA6prngEY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR03MB6604

From: Grygorii Strashko <grygorii_strashko@epam.com>

Hence all common pIRQ code is under CONFIG_HAS_PIRQ idefs corresponding PPC
arch pIRQ callbacks become unreachable, so drop them.

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
---
 xen/arch/ppc/stubs.c | 20 --------------------
 1 file changed, 20 deletions(-)

diff --git a/xen/arch/ppc/stubs.c b/xen/arch/ppc/stubs.c
index 671e71aa0a60..bdaf474c5cc0 100644
--- a/xen/arch/ppc/stubs.c
+++ b/xen/arch/ppc/stubs.c
@@ -103,26 +103,6 @@ void smp_send_call_function_mask(const cpumask_t *mask=
)
=20
 /* irq.c */
=20
-struct pirq *alloc_pirq_struct(struct domain *d)
-{
-    BUG_ON("unimplemented");
-}
-
-int pirq_guest_bind(struct vcpu *v, struct pirq *pirq, int will_share)
-{
-    BUG_ON("unimplemented");
-}
-
-void pirq_guest_unbind(struct domain *d, struct pirq *pirq)
-{
-    BUG_ON("unimplemented");
-}
-
-void pirq_set_affinity(struct domain *d, int pirq, const cpumask_t *mask)
-{
-    BUG_ON("unimplemented");
-}
-
 void irq_ack_none(struct irq_desc *desc)
 {
     BUG_ON("unimplemented");
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Fri Aug 01 10:15:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Aug 2025 10:15:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1067098.1432064 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhmnD-0000Uz-B4; Fri, 01 Aug 2025 10:15:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1067098.1432064; Fri, 01 Aug 2025 10:15: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 1uhmnD-0000Us-8I; Fri, 01 Aug 2025 10:15:15 +0000
Received: by outflank-mailman (input) for mailman id 1067098;
 Fri, 01 Aug 2025 10:15:13 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ZYZz=2N=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1uhmnB-0000Um-Ra
 for xen-devel@lists.xenproject.org; Fri, 01 Aug 2025 10:15:13 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 694d6e7e-6ec0-11f0-a320-13f23c93f187;
 Fri, 01 Aug 2025 12:15:13 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-45617887276so4269715e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 01 Aug 2025 03:15:13 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4589ee4f0f8sm59904655e9.15.2025.08.01.03.15.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 01 Aug 2025 03:15: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>
X-Inumbo-ID: 694d6e7e-6ec0-11f0-a320-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754043312; x=1754648112; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=yidv0Cd3rKy5pI+cfhbX0suUINr7h95CBN5pEZNQxRQ=;
        b=sGAalYJ9PnNH2RN9oUW7ZsSrGQ65uY4Y7tiL7xxJrVd5t56HvtAaqg5ZvPyyF0A5Ln
         sZQI0CVDhOw26mklaqa4m4BkDp396Z75VA/FjZDMmsyuMOgTjWqSwk8Y4e28vtz8cHct
         kt/ggoI2FZjTzoHA/YFSzSqqlfg02pPblsM34=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754043312; x=1754648112;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yidv0Cd3rKy5pI+cfhbX0suUINr7h95CBN5pEZNQxRQ=;
        b=rp+Ua6r33EjvrDs4EjJVWbrAiYWdKqGxOksUxGDX8XJdw1pMigTyxfJhRzGMX3z569
         9RkEuqfAN0PQKAHjaloZN4k/RnmteHcR6yF6IVzlsJRZxj59Be0di0YIJwwXwuBExiyV
         Pvbk31tgs+SHX4icysANRqnPELH+U/jXvCTCSzZFykxkd6pYb3Hg37kZ3snZS+qGsjMS
         G7uvBoQT+XAi028qMykkqoO9ny5Ayzr3EWUnjs5/D8SrdrjH26NWBNBfni8mRHEcHrzU
         zpM4iUqZVn8PD6tnvx3MfcwzuzVTcC1rAs5rfKW1M6S414yp6/JRra1/KpvZRLRlenlO
         RwGg==
X-Forwarded-Encrypted: i=1; AJvYcCXLyk6iOW1WZD48bgohU7ISLDQ4PPXX7IEWDpHDg/cYK2yGD+aGhcd1un+p7grFbL517LjBvuAjMsQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyw6YpGXAg7UkuQxVAJkqc/i3DAVnrByJoJJVatMtzKlWLJ55aY
	iy3JCwH/A2XEX7/DXRFblfGvk7vci7Rp4zzjQplC5SPC2do4IBrwJt5hQih4SazuJjo=
X-Gm-Gg: ASbGncvkiOridxYpWmPn1ZZu92nyK3A14ZWZkVQL4AGBcG6lJigVhaJduyp8uYyVnLX
	/VUepeHpWuT2pd1gIRepZQzOrTAuSUPx/+lSKnHELP2GN/Ou5q2rqaxdb88Y7tVRyLz7lhbUHt2
	IQVvdMhrWeLo8ZM9wB4j8lwdvPRuC5JsTkw7p0n6Bfy4w/3sqfXQebbi4R+AEo8pyj9jBUQgYEB
	EiR3qDLBxcbF0dUdSp0Q9DbGmYS7SIBzSrvO1OLwbzUWmwu2f5CtqBRZMTywO0m3sPcXXaki6yB
	wEiI4+BRWgzqzV6Boug6nm9fzGMNePF1vWa+mcm4SKq2e4SbeClzbkhyEdqr95TdFK3t5It3J1p
	Oc4kLbVV3fkuMvWxARhaXTyVHy49i086m0ueFIeCfujjd2AFR2c3ILD9iB1uMYfzmoj1G
X-Google-Smtp-Source: AGHT+IGitORPTxo5pokTPaxEDGFbmrVatKtOhwx34IhznsCjQ4f0A7pDjs13xq2uhg/mGNC3jIPYPw==
X-Received: by 2002:a05:600c:138e:b0:439:86fb:7340 with SMTP id 5b1f17b1804b1-45892be15d4mr108489475e9.30.1754043312284;
        Fri, 01 Aug 2025 03:15:12 -0700 (PDT)
Message-ID: <090231b0-6fd9-4ad5-a735-aff7a766ddff@citrix.com>
Date: Fri, 1 Aug 2025 11:15:10 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH 0/3] xen/arch: irq: drop unreachable pirq callbacks
To: Grygorii Strashko <grygorii_strashko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.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: <20250801100852.1260544-1-grygorii_strashko@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: <20250801100852.1260544-1-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 01/08/2025 11:08 am, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
>
> Hence prerequisite patch was merged [1] arch specific pIRQ callback can now
> be dropped for arches without pIRQ support as those callback become unreachable.
>
> [1] commit 341f271cf86f ("xen/evtchn: fully restrict concept of pIRQ for arches with pIRQ support only")
>
> Grygorii Strashko (3):
>   xen/arm: irq: drop unreachable pirq callbacks
>   xen/ppc: irq: drop unreachable pirq callbacks
>   xen/riscv: irq: drop unreachable pirq callbacks

In the individual commit messages, it would be helpful to explicitly say:

Since commit 341f271cf86f ("xen/evtchn: fully restrict concept of pIRQ
for arches with pIRQ support only"), the $ARCH callbacks ...

Having it only in the cover letter is not great for future archaeologists.

With something to that effect, Acked-by: Andrew Cooper
<andrew.cooper3@citrix.com>.Â  It's always lovely to see diffstats like this.

~Andrew

>
>  xen/arch/arm/irq.c     | 29 -----------------------------
>  xen/arch/ppc/stubs.c   | 20 --------------------
>  xen/arch/riscv/stubs.c | 20 --------------------
>  3 files changed, 69 deletions(-)
>



From xen-devel-bounces@lists.xenproject.org Fri Aug 01 10:48:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Aug 2025 10:48:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1067123.1432074 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhnJJ-0004jn-Q3; Fri, 01 Aug 2025 10:48:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1067123.1432074; Fri, 01 Aug 2025 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 1uhnJJ-0004jg-NX; Fri, 01 Aug 2025 10:48:25 +0000
Received: by outflank-mailman (input) for mailman id 1067123;
 Fri, 01 Aug 2025 10:48:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Wfco=2N=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1uhnJI-0004ja-Gm
 for xen-devel@lists.xenproject.org; Fri, 01 Aug 2025 10:48:24 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0bc861da-6ec5-11f0-a320-13f23c93f187;
 Fri, 01 Aug 2025 12:48:23 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by AM9PR03MB6916.eurprd03.prod.outlook.com (2603:10a6:20b:2d7::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.14; Fri, 1 Aug
 2025 10:48:21 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.8989.011; Fri, 1 Aug 2025
 10:48:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0bc861da-6ec5-11f0-a320-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gsmMG+kkxp3RaEUQla0+TIyeUCggUgwKpqY3Rni8O8vucmVmNtjT4NtRVnnywGDkrnj22iB2x69Um/XIhkn4Chj3TXuHplAaT2tXrxfNqGdtEaowIPVnROcLkE5IYQ5irkRH7e0I30M0u740vOkEJj1CP0+WqYnf0/bIgUSBgXXuLUictywwCbEAubmJNc5c9YGaVOSAIVOpmoMPz5IZXn0epiFuKucgOHb7ExFXI4A4oBGhhSmulKwIM8Hf8B8qXyi8zITJOYZu4YXkE78HSav2vncHsbyRPBOBdsIxRqXQJ3tXvG26ZV6CuH+H7awvOxphm959EE/mJw0j57TnUQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4obgRldKztBeedY3Mhnyl9hDQzwLPM0SxQl0RNo53Iw=;
 b=ierXCsV2YNi954oVLtSeth+1NnVVy7K5ccn8RipB5aGEm115f2GnrQ1MBfpoROqoHpiyIcr9OPz4NW4nEIoFobiVy5zZTP88sATt3FNaJgthEii1sdeWa766vtmitZ8i5Md1UgW7iDJXFeaM2DcODJUGYHsRarVxTOnA2vs1IDh9v5XVZvetfI+VeZPp0L56mEI7W2kzbyeHTCENbfqgaw1IiRLe4p2p7imrcOfxfANvrzZzbMiY6JqCE/Z/1nuXj3bg7r7sPVYOgX4+2Zom2GiwReA2fvMg8ylsYTnV56zYNjZFjPfW+Oeq1K16VUGyhrgIjeDzaX3Bad+RIg608A==
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=4obgRldKztBeedY3Mhnyl9hDQzwLPM0SxQl0RNo53Iw=;
 b=H8wLvQCVvY6wB3JNSXbrcJN4J2oiSalqtvdygX8/olA5NxgYRByUjokYEjaTNampPWI/1taCqZOn5M/k32EUEI0CQ/5OJRGucY0oQO24lG8Nho/AlsHHk3tEXKtdiwz+KW/UWUURNs3AK+xzK2s+nffYtzdeUSdoekTjpKDom5RbYVWzCqTLakfYIhMMv2S6DfWFRFHmEYVGj+hYQBklfOXqIzy+BAixSeWQnmYWlfPhN/Xan1nhq65QtvH3HCzYPiG4j5vTtcYo0slzNnbzjIR9BAI89wuB94KxJXqzOCaI39+IG64/Z67j/DBIixkWdVUzu1XwbOJF+0TfDxuZRw==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, Nicola Vetrini
	<nicola.vetrini@bugseng.com>, Doug Goldstein <cardoe@cardoe.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>
Subject: [PATCH v4] misra: allow discarding 'noreturn' during conversions
Thread-Topic: [PATCH v4] misra: allow discarding 'noreturn' during conversions
Thread-Index: AQHcAtHLnxwOVXCUr02VFN3cMhRppA==
Date: Fri, 1 Aug 2025 10:48:20 +0000
Message-ID:
 <c68de6862ee6d3d6f33eee4db278096c833c17e0.1754043159.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: GV2PR03MB9572:EE_|AM9PR03MB6916:EE_
x-ms-office365-filtering-correlation-id: 5f687e44-4b66-4295-36f4-08ddd0e8ee82
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|7416014|42112799006|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?5HeFsIoqTa+Z8VklrJoeApo74smVI+mllO5sgkOoJuttvq4AzqZd0uPDVy?=
 =?iso-8859-1?Q?KniqRLkHMzXtyR5tSUcNWXe/p+n2kydkRgTXqlMQRi6LxgYH5JrCJhDN7J?=
 =?iso-8859-1?Q?7CJc+I6/gpeK4gGvSTpqMKVK6zu6dMTHyH7pXMxrGGYLYOUqLbVKD3WLQV?=
 =?iso-8859-1?Q?nPam+eOeIFf5+1nZdRKWh+3DUMTEoOKO0DxL7m2yLEYgvF+oXEup6qw9ty?=
 =?iso-8859-1?Q?TJXVvHDE6DCoeSS5lPmvPVjXIFSisEJL+dOxw8GsKVy6xrcu2HF4N5ZK/J?=
 =?iso-8859-1?Q?gZbazer4qi7FiNfazYupLGkgXJS5OgjCNoVjV7WmTu1PwY+YgcLu2lup+e?=
 =?iso-8859-1?Q?QZdn9QQU02GMyXmm4TVlFeVEqbeKX1UK1fYTsENkjAnVYSlZtsPYofqezK?=
 =?iso-8859-1?Q?1Am8yCf3sarnsLpO2ooKWrJuieE3jmfCW1QJzjcF9q+Mnwim82s6P1zbl/?=
 =?iso-8859-1?Q?5ROkUId8o8djzq2XlkcJmjt8RuaDjf8m6e2CETS4K9Y+VKD3OIDL+mwDPZ?=
 =?iso-8859-1?Q?zXDTygElTpHl0Vkrwd1LFZJ3A6cR/fQ0dLTT3t+MK7dAm1a6oKEsWmrPAL?=
 =?iso-8859-1?Q?9zOnALV+0EWy7BAIuyXoVtIBhg3qld48jKZv6597SGhu3t64y3rdWbmN8q?=
 =?iso-8859-1?Q?32Hmd81hQfdFigtOzsffrjuX24vKSJfPMoEvyPmJ5dDjcFNCnG9qq6FOwu?=
 =?iso-8859-1?Q?bzDmfRBkjoUpYSi+qohAm03Y7b1NceRXulfq5GUBZgQWikt5AXAfZtvBvR?=
 =?iso-8859-1?Q?9BiCuMJGexQmIbkgcmUKKjmfedNxEye7hyk1+kUWgUH4lxaAndIy6TeKXF?=
 =?iso-8859-1?Q?QFHJJAhD3jXCCaC2yDsGwzVXikw9P1QtDuh7tLEpB8CbGEBQ0+ViGwIMbO?=
 =?iso-8859-1?Q?KxD2UyH0m47YSj+/AR861Dvr7foJp5bKetla6SuNLRdcgjNK117DKBXHZW?=
 =?iso-8859-1?Q?4Ll1u9zbs0u6wGFuci16dPLgYAQ9ZO4cT+MoXWvLq4SPmNWEDckmH/rRWX?=
 =?iso-8859-1?Q?F0K8DRba/Fvw33/MaeYO4jEJGbvdWHOMIgqYIm8G9vZrvVoOYcU8Y2wZI8?=
 =?iso-8859-1?Q?yljL55x7F6B4PHZSJ4IJ/lsVeasr0ia7m1SWRRuHXLk16OTr40ykdHnAwS?=
 =?iso-8859-1?Q?7PD+VV1cvxfIKNVuzZlxWJzJ3wm6UbmOz+0AUV3IlEFHMNCtQXkoYXCfmT?=
 =?iso-8859-1?Q?uaKW4IwUconNIwWBR1lYa5tYoQrPKkmp0J8BLwa69i7u4vjlCqhS/A3Hzq?=
 =?iso-8859-1?Q?gDzmj1JYUOwpFwUcYUOBHC9m+2yV3AhncYgTkdf9sm5rpQHtNV6mqyNV0w?=
 =?iso-8859-1?Q?zhZQVElHS0N51C7XhLjAEAAPI7SoJ1HBxW2sOCQ8uc+uWG9781Fk4AEJce?=
 =?iso-8859-1?Q?ax1R8jHw1AHrr4ZgO4zxjyyNwo0PrXUwqGMKxZl4cFT4vIFlyybhH/yi1I?=
 =?iso-8859-1?Q?PCKk6Higxg197AAHt8qTMdA8nZbiwCLmCQauGglva0SFqO4fHGmKcB+Pjk?=
 =?iso-8859-1?Q?w=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(42112799006)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?WPR85SObvGvn16I1Rzz53tJARFAm45WDANxNXHmZghyUq/bybE56+Bqi3W?=
 =?iso-8859-1?Q?Jk1dvVdZiuNBC0mWbCNI8SlEQigCt+YTwAOX1pWqfaX8ulIjbixbGhiFhI?=
 =?iso-8859-1?Q?1dN1xz7A+BCtWkCJg2kU3GOG8XTP763Md88V+TjjArT6oRvBvRheLLYuVW?=
 =?iso-8859-1?Q?TE2+3SkGktSvrwbjNwsUsjRcwha6oSeDf6XpK1R3K8TSqVFeDpD7uiWq8M?=
 =?iso-8859-1?Q?pT3a/ZhcDgkeq6Di7qs+dpunZGoKp8F2b1zotFz2dD9xvhZXZ5yDAiPfQw?=
 =?iso-8859-1?Q?atMn3t7CQPdAyYiYDEMZjTfLH06hQmz/C+Jwuk3k528I3Y/AeOsDujcdsm?=
 =?iso-8859-1?Q?4lSxm+Sn+mEDsALpmpQ4CQqkntIaNqO302M8lFI2nHZGYWO4UGuo2LDqx4?=
 =?iso-8859-1?Q?GPfbSUHgf2bQ/L8JEjcvtlSonGOl8vIpzVj/xEL9j9Kz7C9kvZBd1ZnoTW?=
 =?iso-8859-1?Q?GZDJw0bxAA94jKJecTa4s82UQya4MZOXWYcLoswTQvF97+L+eURk3EJnA5?=
 =?iso-8859-1?Q?YL6TMbbW/Y+WRAIwlA7j8IM3ao3WJuatYjZe62wszOqYh+BCJnzNKs/dss?=
 =?iso-8859-1?Q?bATVG2/DYchBFqrh2OP3rAsioL5ZKNhdKaJyKwXKcmDD/6ZS9Rc6IDlDvP?=
 =?iso-8859-1?Q?oum//aqg1EoonBCR2falijY6Aa7URp9IsbR8vbrHLdKHGxh4n/EyLJA6Vu?=
 =?iso-8859-1?Q?H00qFglYMlvCIHnptCw+x/Kw86mJAjuq7BspAMiDeFmF4snm+5QFkbGiJQ?=
 =?iso-8859-1?Q?3N7gdh/XrMB6b2fW47Lr+NmLA1jeSAThfkdJ6ahYcyzcWHIwh9QV2OEYXq?=
 =?iso-8859-1?Q?ICtSNTWDsCP01hMBjICVoZlxhJ5i/jkFQVP/yrWwiluUF2ncXu9MthZuGj?=
 =?iso-8859-1?Q?exiVv26ys7yaZfxQcCTcSK7sLaN2EFs3GTszNJD4rSV2VuToJTqstT+Z33?=
 =?iso-8859-1?Q?LR4hP21/H/mb+ffwe8TQx20UV37ksVvM1ys/CuuTvJg93HP6c8pQIkgbdq?=
 =?iso-8859-1?Q?bQEiYgyjL4JY0We6a5FrX4KyiDFNIvqKU0yegMYgjlAr4A8VZ5SjAls4Oh?=
 =?iso-8859-1?Q?CKe4CTU12WD59QEnUmf1EKeXuWFDgLj689bGI10LUqx+8nkh04gpVy2vpG?=
 =?iso-8859-1?Q?V0YrNzXL+x4jbjFFjFqYLZiIGh2POxUCeHo2MKi93pC8gQhvG1vtyGdWUH?=
 =?iso-8859-1?Q?wqCqivDeaeVcnrHKksRN6UKdu9E0bvIyvIsmOmaF0qiS2U4mC0SfP9fg/3?=
 =?iso-8859-1?Q?B/dc5d9oiqMcKDRqVeOj2znpXaL5EpqV1VXTghCzceOEJHGX9hHcY+vOxK?=
 =?iso-8859-1?Q?Qh3PteHFMmS7qHGWRmlFT7YCqSY+AiABJ4iLaM3AVaf70LLwGN00MCPcbr?=
 =?iso-8859-1?Q?JHmleZmy8beQmxJb/cAKyxlkXiysh2kY6J7IwIkJZaXH7P1PpfWRerBn1M?=
 =?iso-8859-1?Q?n/v3z2C6RkNbgHfGnmfstAic7ZMSm11irJnXHc/DQ/wB8IDMyu2WGfajpY?=
 =?iso-8859-1?Q?YTQE6M01hVXQCJBOS4O7vAVDIUYrPxwU5o/gkVobFKbCMh39CbjojUyaUA?=
 =?iso-8859-1?Q?p7rTC5rC/SxH3svcguivHo12ZdIFCnTGxGN9Th+ZGQSGJrm2p4YZsrujiw?=
 =?iso-8859-1?Q?6kJutUBDi6SqbsO+uvr8+M4TD9R6iyGrcPo0M3POhatcBxIssJQyWJrw?=
 =?iso-8859-1?Q?=3D=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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5f687e44-4b66-4295-36f4-08ddd0e8ee82
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Aug 2025 10:48:20.8648
 (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: iT/QshlyVvj2kjFILc8mTohm+oxMIVkjdrgKx4qp4ZjKlR+WDryfHohhPrbKke0wucrh9kPGrM512BqhdTiiYrbTb0MTxHQ1zSyElzHDC4g=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB6916

The conversion from a function pointer with the 'noreturn' attribute
('void noreturn (*)(...)') to a function pointer type ('void (*)(...)'
causes type incompatibility according to MISRA C Rule 11.1, which
forbids conversions between incompatible function pointer types.

The violation occurs at the call site:
    smp_call_function(halt_this_cpu, NULL, 0);
where 'halt_this_cpu' with type 'void noreturn (*)(void *)' is passed to
'smp_call_function' expecting function pointer of type 'void (*)(void *)'.

The 'noreturn' attribute does not change the function calling convention
or parameter handling at runtime, making the conversion safe.

Configure ECLAIR to treat implicit conversions that lose the "noreturn"
attribute on a function 'void (*)(void*)' as safe.

Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
Changes in v4:
- removed words "function pointer" in subject (to fit in 50 chars)
- wrote deviation description more generic
- adjusted commit message
- adjusted of line capacity

Link to v3:
https://lists.xenproject.org/archives/html/xen-devel/2025-08/msg00009.html
---
 automation/eclair_analysis/ECLAIR/deviations.ecl | 7 +++++++
 docs/misra/deviations.rst                        | 7 +++++++
 docs/misra/rules.rst                             | 9 +++++----
 3 files changed, 19 insertions(+), 4 deletions(-)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/=
eclair_analysis/ECLAIR/deviations.ecl
index 483507e7b9..0e04681c4c 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -367,6 +367,13 @@ constant expressions are required.\""
 }
 -doc_end
=20
+-doc_begin=3D"The conversion from 'void noreturn (*)(void *)' to 'void (*)=
(void *)' is safe
+because the semantics of the 'noreturn' attribute do not alter the calling=
 convention or behavior of the resulting code."
+-config=3DMC3A2.R11.1,casts+=3D{safe,
+  "kind(bitcast)&&to(type(pointer(inner(return(builtin(void))&&all_param(1=
, pointer(builtin(void)))))))&&from(expr(skip(!syntactic(),
+   ref(property(noreturn)))))"}=20
+-doc_end
+
 -doc_begin=3D"The conversion from a pointer to an incomplete type to unsig=
ned long does not lose any information, provided that the target type has e=
nough bits to store it."
 -config=3DMC3A2.R11.2,casts+=3D{safe,
   "from(type(any()))
diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
index e78179fcb8..38b536dfe4 100644
--- a/docs/misra/deviations.rst
+++ b/docs/misra/deviations.rst
@@ -342,6 +342,13 @@ Deviations related to MISRA C:2012 Rules:
        semantics that do not lead to unexpected behaviour.
      - Tagged as `safe` for ECLAIR.
=20
+   * - R11.1
+     - The conversion from 'void noreturn (*)(...)' to 'void (*)(...)' is =
safe
+       because the semantics of the 'noreturn' attribute do not alter the =
calling
+       convention or behavior of the resulting code, parameters handling r=
emain
+       consistent.
+     - Tagged as `safe` for ECLAIR.
+
    * - R11.2
      - The conversion from a pointer to an incomplete type to unsigned lon=
g
        does not lose any information, provided that the target type has en=
ough
diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst
index 3e014a6298..2b6f30e56d 100644
--- a/docs/misra/rules.rst
+++ b/docs/misra/rules.rst
@@ -400,11 +400,12 @@ maintainers if you want to suggest a change.
=20
    * - `Rule 11.1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-S=
uite/-/blob/master/R_11_01.c>`_
      - Required
-     - Conversions shall not be performed between a pointer to a
-       function and any other type
+     - Conversions shall not be performed between a pointer to a function
+       and any other type
      - All conversions to integer types are permitted if the destination
-       type has enough bits to hold the entire value. Conversions to
-       bool and void* are permitted.
+       type has enough bits to hold the entire value. Conversions to bool
+       and void* are permitted. Conversions from 'void noreturn (*)(...)'
+       to 'void (*)(...)' are permitted.
=20
    * - `Rule 11.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-S=
uite/-/blob/master/R_11_02.c>`_
      - Required
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Fri Aug 01 10:54:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Aug 2025 10:54:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1067130.1432084 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhnOt-0006L5-D9; Fri, 01 Aug 2025 10:54:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1067130.1432084; Fri, 01 Aug 2025 10:54: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 1uhnOt-0006Ky-9y; Fri, 01 Aug 2025 10:54:11 +0000
Received: by outflank-mailman (input) for mailman id 1067130;
 Fri, 01 Aug 2025 10:54:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=zIvO=2N=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uhnOr-0006Ks-Rd
 for xen-devel@lists.xenproject.org; Fri, 01 Aug 2025 10:54:09 +0000
Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com
 [2a00:1450:4864:20::436])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d0f6045f-6ec5-11f0-b896-0df219b8e170;
 Fri, 01 Aug 2025 12:53:54 +0200 (CEST)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-3b792b0b829so657103f8f.3
 for <xen-devel@lists.xenproject.org>; Fri, 01 Aug 2025 03:53: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
 d9443c01a7336-241e8976faesm40101985ad.90.2025.08.01.03.53.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 01 Aug 2025 03:53: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>
X-Inumbo-ID: d0f6045f-6ec5-11f0-b896-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754045633; x=1754650433; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Dzw0jvoYpBumudTdyTSssK3nPxuNuukPGO7ijvXwNjM=;
        b=SsGWirhacVbDOcEavzyjkV/xT0gTKbBB7GsuBQHXs2YJcQ5+iyUrW12E5+52dAXxk7
         VxHDFFsHmV5gIwSu0EkQmKVNKFS/2uII00aN9jmH+KLZFlGk39VgAT2y8O5mNuFTFMMF
         /OBJePBqQl6oF7K8NcsWYneffzHgpzqsPOnvpiqgFFJpbEmxrOGhJLkUMCKtjnGNfgaH
         fQGEDXKXp/OPycaoc7ZsVa1+zjqnSewmyUS884549h3Wpx/bFyJFXddmpOIiGK2fZVYz
         EdcxcXVUud1JjKI4Req4R0kmXqVmmkGDhakP/2CqwWEiCEXDVzM8hZFmhJZno+EIqh1K
         7S4w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754045633; x=1754650433;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Dzw0jvoYpBumudTdyTSssK3nPxuNuukPGO7ijvXwNjM=;
        b=Dd71xPfNmNpeh9kzU3+Eshl10cQKsLUkVRx6aqP+/SjbY12adtrQrMIeIQ8fVIh382
         llyDCF+x3KK0As2ql5Bo4ksDsAmFUS6S6t2WamHs5mSdPhqN9Xskpy36ZOVO4nMA7KW8
         ItJArGiLY+rDfwLjytsl3ZjKJJ67c4LYr2wsw75QUphEZeHICziHRZpjsTnaVM3t+6vD
         LKpM+qHreVDLZmzSoQ115hcaKW52DS8a1ouN9ppWWULsA4HjFMTnhT0760HB7vHTUNal
         N/DvU6JL0go8cH7LPiE7GpBLvaiDhe1eDZEvHfcq420jxTN8MaiSVsNCFS8yGdX/lp57
         JkrA==
X-Forwarded-Encrypted: i=1; AJvYcCVmjtcIni4g8rbsQpOSr1k099ITtKJmlVNuWjaolIAeUhoYKXlk28o3G9xHHeO06xhMlz08EWvkCTg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwWgc9sTpSDJ4FxfdD66PxvXJvh7wL6LgvxJCvW9NbCGJTvlu/f
	FZKSoe14lJvCmTlzvYmMtu/fMxLO0we5xvWZOeaj2O9d9Yi33MGhDbF3d4xoGAftmA==
X-Gm-Gg: ASbGncuZ08IGJUE46CvuP9yJV411FkByZlFqbZscvZJ0MZ1+TemppmBh3+lniHvR3ZK
	d9gJYy4BgSxmSKT7MkS1skS/gBvWT5Elb3XLn5Tj5rU9kalP6hg8wkIlp0u8WmCHIlrwcqAvaXE
	Vz2EyO+m6YTSIjQUDFQzIwkbJWn7ZPXM3PvKE0BPZ3yJAAf5q2kqMDNp6Pa/kv7DwuvLMUERGq3
	yImkycBhD1XFP34AwT7jSjumQ3JGzpOVNEm8yeP8u+6CyxNeUyS8BptJbxS7J1bmOhEikF83o3i
	iqL49h2aBxdCof+JF51BydjszwVe8lalltEFBqUdCBpjfJSyeMAXPH0qsq+H98a9SN+4shmn4eJ
	tJ1SZEkxsk4wLZUS8jgP6l0mwsrXzxLSY44XT2UVsTXWHsXlXIU3wsDFkPS/tgL10BiKtKKOpSm
	x+Khc4BaE=
X-Google-Smtp-Source: AGHT+IFoGClV3mYZ7SNTCb5HDE+z5tHV2CswugLxr/m7879iPjphg/wGuUVKjALoojmKH+RBoxUx+w==
X-Received: by 2002:a05:6000:2584:b0:3b7:5cd3:fc44 with SMTP id ffacd0b85a97d-3b794fc2bd5mr8303471f8f.4.1754045633448;
        Fri, 01 Aug 2025 03:53:53 -0700 (PDT)
Message-ID: <4475f575-91df-4f9d-ad05-41a4864baa11@suse.com>
Date: Fri, 1 Aug 2025 12:53:43 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4] misra: allow discarding 'noreturn' during conversions
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <c68de6862ee6d3d6f33eee4db278096c833c17e0.1754043159.git.dmytro_prokopchuk1@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <c68de6862ee6d3d6f33eee4db278096c833c17e0.1754043159.git.dmytro_prokopchuk1@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.08.2025 12:48, Dmytro Prokopchuk1 wrote:
> The conversion from a function pointer with the 'noreturn' attribute
> ('void noreturn (*)(...)') to a function pointer type ('void (*)(...)'
> causes type incompatibility according to MISRA C Rule 11.1, which
> forbids conversions between incompatible function pointer types.

This wider deviation ...

> The violation occurs at the call site:
>     smp_call_function(halt_this_cpu, NULL, 0);
> where 'halt_this_cpu' with type 'void noreturn (*)(void *)' is passed to
> 'smp_call_function' expecting function pointer of type 'void (*)(void *)'.
> 
> The 'noreturn' attribute does not change the function calling convention
> or parameter handling at runtime, making the conversion safe.
> 
> Configure ECLAIR to treat implicit conversions that lose the "noreturn"
> attribute on a function 'void (*)(void*)' as safe.

... wants connecting to this more narrow Eclair configuration. That's what
I meant when I said "description also suitably adjusted". For example, the
last sentence above could start "For now, configure Eclair to just treat
...". Can adjust when committing, assuming an ack for the .ecl change
appears.

> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>

Acked-by: Jan Beulich <jbeulich@suse.com> # docs


From xen-devel-bounces@lists.xenproject.org Fri Aug 01 10:58:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Aug 2025 10:58:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1067140.1432094 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhnTL-0006xm-2A; Fri, 01 Aug 2025 10:58:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1067140.1432094; Fri, 01 Aug 2025 10:58:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhnTK-0006xf-Uw; Fri, 01 Aug 2025 10:58:46 +0000
Received: by outflank-mailman (input) for mailman id 1067140;
 Fri, 01 Aug 2025 10:58:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9BkY=2N=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1uhnTJ-0006xZ-Cy
 for xen-devel@lists.xenproject.org; Fri, 01 Aug 2025 10:58:45 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7b506f5b-6ec6-11f0-b896-0df219b8e170;
 Fri, 01 Aug 2025 12:58:40 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id DC3C14EE3C02;
 Fri,  1 Aug 2025 12:58:38 +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>
X-Inumbo-ID: 7b506f5b-6ec6-11f0-b896-0df219b8e170
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=1754045919;
	b=ll4kwhdjSNCe6bybhotPTKvFBtb/tcyaQiSfiSuE6dWU3WsgIpI4gimSJGUYngaNi4dD
	 grgOIZnR968aaUQGTSt5/7PbhPpJEh9rojoTmSiEp9880Hk+OVx56YVecgtEZEQmZXy23
	 W1gxxNX4qhWDVV1l0hfUlUnLxKZjF1o5hjG9aiDc4NMMopcBXv0ctmZT7ZZNpfLK3J/7t
	 /nQILbm4+RMJdoDZ5tNyFSxjJD/JDronqsjK2Tg7mPuMdSumpamAR+DlIzpWgQVzPwMpy
	 L2fKMQ8JgbiZJXmC4G6eU3bdGAGeDdufORJ9LDPfj3ucx2y1j6kt8oXW+mtunYoP7n4n9
	 3sW+gwT+RuHTk2Sv8wMZ1KiytSYt+sUjaYcr5D1lQmpMYL+0/jt8X3nyUB9cXWcptahcL
	 6ZHNxZCbPAlW6u4WCqwXaRHYUmh6RkgE55qfSOX2KU3Wj4G2PjwEECRFOY+MnBaTm5Yit
	 ii0lBSMJjbCFPlH1E/bnRfiicCJF170zM8KLd2GFeOOqoKiL4wfP5dyU1eJbTbVLCPssk
	 S/DG8cDmJr7rhh3fn83VxUnYujE0xcHIkjayqKr6pqSZzf6afjU483o5mR4NkppnIKnDm
	 advmIgsNVXTfq7KVnDQqY0ME6ShM2sIOG13zaffPmatB5tbQuA0TpNKl3gyFVo8=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1754045919;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=l9zcpOkubj5IU7vpaTeU1fz2oeyMx4q6+I0OukzjbtU=;
	b=boU6akOiD27uUM/26UfM7GQbjcJFhX5swxNrxiAbp/8zeqCBcdvuz7ig0Blpt/jTVQes
	 6EUi+Kx0wOkGUPrV/rjQQuOnwqo2zhOCDUyH1kvcewoBqekjiZhNWzslFvL532JNG4VaQ
	 fvtnO4w8WHUpjW+pjGs8YHYXY2xDukPtEk8L0oXqIXPqLjEF5bKc9jwDNW2up1wBKhpzw
	 d9Gfor5s4zOWwgs0Fw/93uYZxk/1LVtVhkzrHO673aDWZt8H9gZ/tUnDpbVIjpHOlZ4GE
	 iST+GCOGHhHaa8zwrUzWuAutLFt0AUb4Ma7Tm5Lvd3h5CZpTLWy72VTaKRzkKG/ssnT/I
	 DC0h2X5lnzI/yd53F8EszRY6Ehb5qU5KoOOupFoQgAnUfrxoyTh57rQZTtKyNJZhowv13
	 gJIzLLfXfXSCzjZrXFJuJDvEGIJsmN8iDE/7XAxsbM3B3NjwvKq8pabyTEbP4n3+FeWcG
	 ls4SESQ55zbJgSlEWznHKghqQQMJvisH380mhJTYTIMSVVLi03qOHZsImRNfqLA2K9M4X
	 votkvruasNVDIaYLyt7ZNNSvrPc9by4Kw6oel1sIksM5KyhfzVnOiv0zxuO7F0AbZyI1Q
	 r2rWedQtzZsYADbTDlQ2+30+uzsghOaju6qchi+jHYdf8mHa7PyCLXL28AGQmQA=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1754045919; bh=1NgS/HPFX/e6Pq8rJJ74P0lYqDY2Vje7bDk7P3Eb7LY=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=rfXZF9qhunYVsgapGlwRLCXY70YEsUZ6DveYLshT/QfL+vBRvNaThaJSzj8QcNZSj
	 cVkAMXk0UW1l9DrPIUcXtk9y+tLWsb4nnhkHtKiOe6V1LZ27yphWOMSUXvla5r7ozz
	 EvhNAWmYOZ6YUiTyWJZQcXdteBGyx0ezAJpoJH1zhQT/vjMmleaIZbB3miWjpoGsN1
	 MQSWpNGvevNg1DNiOyYg7WNcz+DgTfqw1ngpFh+26HYVsIdRGjqt8CdYWk/4AjZz9n
	 uTW1NBuEFAoHNEBH0PYpp/s7zWYKCtRvsRYkNAd6UmaHagKkZdBw7asyIIDctNl9on
	 QCq/Cj3hRfDMw==
MIME-Version: 1.0
Date: Fri, 01 Aug 2025 12:58:38 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, Doug Goldstein
 <cardoe@cardoe.com>, Stefano Stabellini <sstabellini@kernel.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
 <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien
 Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4] misra: allow discarding 'noreturn' during conversions
In-Reply-To: <4475f575-91df-4f9d-ad05-41a4864baa11@suse.com>
References: <c68de6862ee6d3d6f33eee4db278096c833c17e0.1754043159.git.dmytro_prokopchuk1@epam.com>
 <4475f575-91df-4f9d-ad05-41a4864baa11@suse.com>
Message-ID: <ab80c9d2e8840a6e84d58596064816cb@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

On 2025-08-01 12:53, Jan Beulich wrote:
> On 01.08.2025 12:48, Dmytro Prokopchuk1 wrote:
>> The conversion from a function pointer with the 'noreturn' attribute
>> ('void noreturn (*)(...)') to a function pointer type ('void (*)(...)'
>> causes type incompatibility according to MISRA C Rule 11.1, which
>> forbids conversions between incompatible function pointer types.
> 
> This wider deviation ...
> 
>> The violation occurs at the call site:
>>     smp_call_function(halt_this_cpu, NULL, 0);
>> where 'halt_this_cpu' with type 'void noreturn (*)(void *)' is passed 
>> to
>> 'smp_call_function' expecting function pointer of type 'void (*)(void 
>> *)'.
>> 
>> The 'noreturn' attribute does not change the function calling 
>> convention
>> or parameter handling at runtime, making the conversion safe.
>> 
>> Configure ECLAIR to treat implicit conversions that lose the 
>> "noreturn"
>> attribute on a function 'void (*)(void*)' as safe.
> 
> ... wants connecting to this more narrow Eclair configuration. That's 
> what
> I meant when I said "description also suitably adjusted". For example, 
> the
> last sentence above could start "For now, configure Eclair to just 
> treat
> ...". Can adjust when committing, assuming an ack for the .ecl change
> appears.
> 
>> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
> 
> Acked-by: Jan Beulich <jbeulich@suse.com> # docs

Feels weird to review my own ecl honestly, but for the sake of the patch 
I verified that it is indeed what I wrote, so

Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com> # ECLAIR

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Fri Aug 01 11:22:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Aug 2025 11:22:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1067161.1432104 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhnqR-0002aS-SA; Fri, 01 Aug 2025 11:22:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1067161.1432104; Fri, 01 Aug 2025 11:22: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 1uhnqR-0002aL-Oq; Fri, 01 Aug 2025 11:22:39 +0000
Received: by outflank-mailman (input) for mailman id 1067161;
 Fri, 01 Aug 2025 11:22:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Wfco=2N=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1uhnqQ-0002aF-GS
 for xen-devel@lists.xenproject.org; Fri, 01 Aug 2025 11:22:38 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d12534ca-6ec9-11f0-b896-0df219b8e170;
 Fri, 01 Aug 2025 13:22:32 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by DBBPR03MB6955.eurprd03.prod.outlook.com (2603:10a6:10:205::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.14; Fri, 1 Aug
 2025 11:22:30 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.8989.011; Fri, 1 Aug 2025
 11:22: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>
X-Inumbo-ID: d12534ca-6ec9-11f0-b896-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NVOOshQy1rmE+lXk7paxvK0C7ZzWb3Q2Q+xxkhFD1Obl9sWr6HjPAm0syVDv0S8KGkrkkSmdCX9TEyyeqbewy1R7jFke0N6yrRYYkMIT959E4njNl2G1oR7btaLG0ps8skPjVAgyN+j51s+GNRRwimGp2zpCCegHykOUJaIdWroQ5OFYS3ZhNq9bEl2MfOw+4vAaCB7RjPvEK4uIr7xRMLvADTRjbtm+BieBGENSV76ypifQ6ee4OzYD6pZwn3Fyg9wR+mvARkB9QOVEAg5N6ct111nlFGYLO0cY9b4jP64JpJpN5MLSuFMivyMtnlO/FkygnNvBjE73WKi434WiSA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=dsTFf/tfByx5PqbHucxZxW7daYfm0tCQX/MW+M8PHH4=;
 b=nBNzJpXMwGzwPl2S0WzTQNTnjBU8PzM2b6dRnm+Cta0NQ1njAa12zYVw+MOYUBRKxOgEnsEVUx8x1E6H109vCmiMyyehmuMcLtq+AwY5EAndeLmWDr8s4y4tIkQaEHRdEOLWlRULL7SREAB+iEbT7YWpgg0GP12Vd34kBgyalhAjqB1jFiwt11X2jY4Cb2qCZDycnfZBjIIESB2iOHKzaxWS0mPvvUakL6EKn12TZ/GxKg06QXmFF/aHd1DOJ09Ck/eUM+KsSBWZyM5i9IlCLJ+s/QmzXoL5szJTpvECmXOIfdjvSXczuM0ctvvlGrNJ7+IwAdrItzdpq77FuYCufA==
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=dsTFf/tfByx5PqbHucxZxW7daYfm0tCQX/MW+M8PHH4=;
 b=YQtMy5R+9xEsrvUNaFihdWoMLn/b1fw7TLlaoXYS2GQXx3iPzObLJh+m29wL9k1R52/qoni7WbvWGXYy9uwO0RFpLcUPYgK+xaew8VeshMJ/ibK91FBGcUQtcEV5oLMNFN4dITAF6iVVaOMfEM060a8Bt0YuVlHUH+AYI0ZrP8D5mQTfh0bpHiVJvs4Y6T28my1YddDmXOdE260HhBvg6yISMT6lUedmm2tGz0NOF5fL8KLSDOUhaO7NpOp+qjKzVO6J9eETtSWPjg085cnQJZz7fww3jvCNN6244NQTy04caCQlq3PPecfEPasfva42zhM9viFM8uyUNRzNLNAKAA==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Nicola Vetrini <nicola.vetrini@bugseng.com>, Doug Goldstein
	<cardoe@cardoe.com>, Stefano Stabellini <sstabellini@kernel.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien
 Grall <julien@xen.org>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v4] misra: allow discarding 'noreturn' during conversions
Thread-Topic: [PATCH v4] misra: allow discarding 'noreturn' during conversions
Thread-Index: AQHcAtHLnxwOVXCUr02VFN3cMhRppLRNn3SAgAAICoA=
Date: Fri, 1 Aug 2025 11:22:30 +0000
Message-ID: <cc10c5b0-316d-4ee7-9861-36ed7825aaf8@epam.com>
References:
 <c68de6862ee6d3d6f33eee4db278096c833c17e0.1754043159.git.dmytro_prokopchuk1@epam.com>
 <4475f575-91df-4f9d-ad05-41a4864baa11@suse.com>
In-Reply-To: <4475f575-91df-4f9d-ad05-41a4864baa11@suse.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV2PR03MB9572:EE_|DBBPR03MB6955:EE_
x-ms-office365-filtering-correlation-id: 1315492f-a3da-4747-f9c5-08ddd0edb3ea
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|7416014|376014|42112799006|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?NjI3WmZGS1NiYUhEVklEMmtGc1M2VEZGU3F1RjhhYXZnTmY4dzFYQ3VCS3J3?=
 =?utf-8?B?OUpUSDUwZHVTMkVMNFc0dVkrODIrZ0FQWWREL3k0VVRMalRZVFJnU1R4M3I3?=
 =?utf-8?B?MzBER2RNL2Jlbzk3am4xMTErbVpSYkhDRktjTFBvZmdnaTUyclluTHVkclY5?=
 =?utf-8?B?MTJNaTkyQkYzaThKSll1dGh0MlhSMEVrdkhKY1c2MnBhOE4zTitlRmdWME9C?=
 =?utf-8?B?RElHT3hDY29GeEFaNVlmVlAzUEhNYkVsblR6N2E2Smk2ZkVmWU52UjEydjVG?=
 =?utf-8?B?NGhrZ2Q0OTUzdmFKRHRCNThHVmdtaHpSSDJOc2VQN3lVMHZJaXdwVU91S2dh?=
 =?utf-8?B?VGZSZnFZMlNyUjhzRUN0TEFUMU45aklkYWprNHU4S29TUG9nSEVzdldxeVhY?=
 =?utf-8?B?MUVHQnRkdmo2WUZ2cWt1MXJPdUFQZlNueEw5d3c5c2dKcGhMdWJscXZ5Q2JG?=
 =?utf-8?B?MTduUS81cG5rWk1HTVJ5OTF4cHlGVUM4a2J4alFxdzA3WU9va2RySGkwbnFr?=
 =?utf-8?B?ZW14dk84RWZtRytTWEEwSWI1NTJSdkR6TmQzSDQzY2l5YmVJenNpVlpmc2RE?=
 =?utf-8?B?V3NMV2RSZUN0VllGU0dYNFZ1SzUrajl3ZDlpandQSGxic0I1TCtRL2VHRjRG?=
 =?utf-8?B?cVc0U0hGbDlOblo5bjI1SVBLREFkRVlqTGxFTmpXTDk0UEpDOEQyTnNFNTFt?=
 =?utf-8?B?dmxHak5ReWREMGg2QUJlejVmQzBNWDZEWFVBZUcxSTd3Y1ExUmhXRnRlRGFB?=
 =?utf-8?B?Z3pFU1JjMzY1Y0YvUWc0RTlIdm5YNHJBV3BLTzREc0lrVjdyaVJlQ25oQmRH?=
 =?utf-8?B?MFRCU1ZjQ0Ryamo4clhxSDdxN3VmUzl5YU5DV3JBai9TSmxkSnkxcEVIU0dN?=
 =?utf-8?B?d21BcEVxMW90T0NMbThZRGZ1M3l5Qm4vS2FFVHlZN1ZxeE9ObVhnUHlKVkxU?=
 =?utf-8?B?eFBTWW13NmxJT05kWmpTT1QyZytVUGgwU3lOQkorak9SRHh2R2JCMTJ3M2kx?=
 =?utf-8?B?d0NLdVRRT1VNU3EwT2dVelYybVgyRkFucUlTTVBsdzNMNDNaT1J5L3V5TkNY?=
 =?utf-8?B?MWZzVm9wOWdLU0NmRDJJMWVlcDRFajNWM2cyZWVNQ1VMWjNJd3EvWWhqeU5Q?=
 =?utf-8?B?WVM0UmVtYUFobEhRRXBqSEx3Qm5DUGo1Sk5BMGdPaEJmU29HdVVWeE0vNUt1?=
 =?utf-8?B?NXVUamF4elFLL1c4OUhGaFFyZ2JMNDBRUmY0YlFFTUNLZnpvdmNuR200Q2N1?=
 =?utf-8?B?LzVzbFFQQUs5QVFiZU9VWmxVRlJZeEtIS2FTd3pweDhMMVUxaUtxM0dqQ1hO?=
 =?utf-8?B?ZXBWSDN0UGYrdkJsWWd2bmRheGx4R2NNa2ljdWJkMEsxUlpYRGl5NW5Sb21P?=
 =?utf-8?B?TTlsTDgzdWRRb2FVWkNHVS9FVlpNT201WnlXejMyWi9DblBVdENmMDFlYXI1?=
 =?utf-8?B?MWszdjVvOU1pU0p5ci82S2J4TWNGdzFtVkRpK1dXeERLcHNqY3BRakhJejZQ?=
 =?utf-8?B?YU04TWk4cnEwa2JwcVAydXRhN2lRZG1QTG1qcFdqdkpUaEMwVlVMRGJYeElK?=
 =?utf-8?B?UUJRTUlzcUdvNTlQakRUU1pZeHNNQVNiZjZtNEludUhLcllQa2YyWk84djJu?=
 =?utf-8?B?bzkwWGpDWW55OEcxWHBOVGtVb1kxNHJBZjgrT2VJRnE5ejVXNHlWU3VMK1Fy?=
 =?utf-8?B?WWZ4Zm1ZN3cvWnJmVjRTdExOMytUbXBxeWZyZFNUaWt3U2trLzcyaHREMWgv?=
 =?utf-8?B?TXVMYkJjTzluaGgwYWhlZTZCQ0tQMFVlT1hQZEppLzZzUzBBNUhrWEE3NHBG?=
 =?utf-8?B?eGo4N0dpdFJFNHR0TFBrZkNaaG1lcXBTMVA5MmNZYUlQOUU1Ym44Mkd6Y1l4?=
 =?utf-8?B?VkVIdzlacWRIQ3VvbmUzcEdLY2UvRGFkdW44ZnUwcjN2dXFsQjQvZTlRaW11?=
 =?utf-8?B?b3VZcGlkTzI5UlprempmaC9zMzF0WmRsTE9NUlg2NVkzeGxwckRKRFB2eHF5?=
 =?utf-8?B?WFBUUXdhZEh3PT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014)(42112799006)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?SXBOTTIzSElQVng5ZFYxQzkwbEFTSStUNDZBUVBocmE0cE9vTVI0UGFHNDVw?=
 =?utf-8?B?REZZNEtpaUhVQS80UXg4MGZSZ2VuMHM1SmJBTW5CSjBwVmJ0cjJQUDZLelhD?=
 =?utf-8?B?dWsycVM1Z3k2NHV1cG1hMWNoVm1PcDlaeDE3L3lFRHd3d1N2c0pWNlF3UGN2?=
 =?utf-8?B?WURqeUJEUlBQSlpsaVRjMlhlTE9IVkYwN1lGakhGUDk1eTNUa1duWWpxcUQr?=
 =?utf-8?B?YStsbXVtN2VkcGdOd2lnQzFCRCtRZEJITXJ2L2NCRXJLQzdmY3BCbGxKOHRj?=
 =?utf-8?B?emxRT2dPMURUdHQ1R1NQUW0rN0phOXVKbytEOHpJUjAvbUFNZitIalBvKzB6?=
 =?utf-8?B?bWZiZ0I4VUNIZzFEeE1teWVLdHpoYlNpdlEvUlFiMjFGT2x1UjRmbWc4bHZQ?=
 =?utf-8?B?M2ZUcG80b2VsRzFxN1lmWS9makF4UDNTSjE1TDluRnJzbUxBZzEzV1M5VnZh?=
 =?utf-8?B?NkxqQ1JwZTcyZ1Q2N3JJMkJaaURpN0NOZGZEZzhCR3o3cFVlZXBlVnZha0p5?=
 =?utf-8?B?dGZ6ckFHYzVEV29XYjd3cEZnMVZhaWh6aDcwTzlXUDdWMDNtajFabnRKN2Zz?=
 =?utf-8?B?eUVCcFN5NERZayttRCsvOGdSRFFZMXg4RXl5OHdTTnllVlR5WEJjY1dFS0VS?=
 =?utf-8?B?RjhYcXltVGlNZmNLdmZpS3pkb0hQRCtRR2dVV3JXblNZejQ2Vjc1eXgvUnJj?=
 =?utf-8?B?TXhCNUJYYURnbTFmYy9vKzlPc1A0eFJXT3NMa3lQRmpNSm83LzBZZ0tpWWs4?=
 =?utf-8?B?M1hXdFJiSWdMMGpMS0w3dm55NjVFWDF2KzRhLy9Pem80ZHY4YjRBbGZ3Smd6?=
 =?utf-8?B?dzZsd3p2TDlXdzNRUTdqY2RPNk5kYi9rNi9HUFcrQVdPaFNrN3dGWWNvWXJ4?=
 =?utf-8?B?TkNWaURyeU9BNDZlQVlvUUtiQ0dYa0F1cVBTU3hMSTRLbTc3VGV2MG4vN3o1?=
 =?utf-8?B?UExDTkNtQWxrU2Jtc3lQSUdqVnE4NWR1aDV6WjhlQzBqUnJISmt1MzBQK29k?=
 =?utf-8?B?MWhMV2JCOXZIYVczbUt6ZzNJdXl2UEZSY2ZPalpLcm54bE9RWXZpVW5rTU9D?=
 =?utf-8?B?OUJpbERSWkxPODFFRjhvSTFYYWJadHRweE5WYXdFMVorN3VzSVRjMVJrbVJX?=
 =?utf-8?B?YkR1THFFYVRSbllsUFlsTE9Ib0dTcnRLVWtvY1pRSVR3YU9ZZmEwcjhyZmUv?=
 =?utf-8?B?RkhvRGd4VzNWZnEwZFhoL0ZrZHpwejM4NzdHdW1pZUErNHdlK1dvdi9NNWd0?=
 =?utf-8?B?TzQweHhEQk9iaGp1NWREQVRKV3VNeUdTSjRnV3A2MWVoWFRZMUxSRFowMEpF?=
 =?utf-8?B?TTNLRmFYOXJGbkI0b2laZ3hGS3IzUHJaeW04SkZjZDRkQmZzd08yUitNOXUy?=
 =?utf-8?B?MmFLTUJaRWp0bkN3RThhU1ZIVzlqaFpUc0ZRZHByS08wNFduTU53Wm9OWlFM?=
 =?utf-8?B?T2xyOTNtSklLL2o2VnFNYlg4WVNQcHpoZGl6dlBCYW1XbEk2YTVGcGVSZkx1?=
 =?utf-8?B?L2RwRUtpWDdOc0NENGZReTdySlV3Tm52cXR5clYxQmxuZ0ZNVU1BQ01TNjFN?=
 =?utf-8?B?ZWJNSUE3c085WUcwSjdNWXpxN3VmazBMVlRnL1luVkpGV1JlOXVQTWFHVnN5?=
 =?utf-8?B?M2ZDSktUZk43M1loY05aNTVlaW1YaWlGNWFEY1YwUTdacTBaNklsa25YcGNL?=
 =?utf-8?B?SnNlSVRvN25sMjdXS25tdEQzbnN6T3RxdlBibkFRR3FZVXp6cjJlTXd5M1p4?=
 =?utf-8?B?eWVkVXFVZXdWN2Q5c1RubTRxYVRKZ25CN3BoeXZENnFaUVJTb09XTHcxaWZl?=
 =?utf-8?B?U2lwU2orL2k0OXVlOS9HcTFzRXQrMDJldmJ0UGM2QWdsWGY3ZEVZaVZWelkw?=
 =?utf-8?B?STdkdlFSdC9oS0d5c05LNGh5aWlac1JiamxxUnI1R0hzWlZHaXlHRzd3MGxO?=
 =?utf-8?B?NlR4WUc3NW4xV2g2R0xpODZlVHoyVElMOHVacE9VTjdGZkhpTmMzei9EUTIv?=
 =?utf-8?B?UUtZdzBnRlhITmRjR0xhdzZyKzNUemNMMDZ3eXN1VXhIcGx6RTVTMDZJYlo5?=
 =?utf-8?B?cndQeHN3QURxaXJGeW1jZ21JL0Q2ZzZubnoyVjMrQlRPWENMTVFRT1VYdDQ2?=
 =?utf-8?B?eUlHczB1bmJFcTFadUk0ZVhwU0UrNnU5dENPcG0xcDlldDkrU202QlFwbEcy?=
 =?utf-8?B?ZEE9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <804EAB63A0789A45B130AC4AF57F690F@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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1315492f-a3da-4747-f9c5-08ddd0edb3ea
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Aug 2025 11:22:30.0608
 (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: 0s2MyWqlJrm4IXLM+DrTwvXG5rUIRs8K8hIkJJMDSPkCgPF65LHFvFVOJqAHetlfeW3BrFfSmRTq+9IXvCd5qIAPW7ApSd4TH+DL6pDlaDs=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR03MB6955

DQoNCk9uIDgvMS8yNSAxMzo1MywgSmFuIEJldWxpY2ggd3JvdGU6DQo+IE9uIDAxLjA4LjIwMjUg
MTI6NDgsIERteXRybyBQcm9rb3BjaHVrMSB3cm90ZToNCj4+IFRoZSBjb252ZXJzaW9uIGZyb20g
YSBmdW5jdGlvbiBwb2ludGVyIHdpdGggdGhlICdub3JldHVybicgYXR0cmlidXRlDQo+PiAoJ3Zv
aWQgbm9yZXR1cm4gKCopKC4uLiknKSB0byBhIGZ1bmN0aW9uIHBvaW50ZXIgdHlwZSAoJ3ZvaWQg
KCopKC4uLiknDQo+PiBjYXVzZXMgdHlwZSBpbmNvbXBhdGliaWxpdHkgYWNjb3JkaW5nIHRvIE1J
U1JBIEMgUnVsZSAxMS4xLCB3aGljaA0KPj4gZm9yYmlkcyBjb252ZXJzaW9ucyBiZXR3ZWVuIGlu
Y29tcGF0aWJsZSBmdW5jdGlvbiBwb2ludGVyIHR5cGVzLg0KPiANCj4gVGhpcyB3aWRlciBkZXZp
YXRpb24gLi4uDQo+IA0KPj4gVGhlIHZpb2xhdGlvbiBvY2N1cnMgYXQgdGhlIGNhbGwgc2l0ZToN
Cj4+ICAgICAgc21wX2NhbGxfZnVuY3Rpb24oaGFsdF90aGlzX2NwdSwgTlVMTCwgMCk7DQo+PiB3
aGVyZSAnaGFsdF90aGlzX2NwdScgd2l0aCB0eXBlICd2b2lkIG5vcmV0dXJuICgqKSh2b2lkICop
JyBpcyBwYXNzZWQgdG8NCj4+ICdzbXBfY2FsbF9mdW5jdGlvbicgZXhwZWN0aW5nIGZ1bmN0aW9u
IHBvaW50ZXIgb2YgdHlwZSAndm9pZCAoKikodm9pZCAqKScuDQo+Pg0KPj4gVGhlICdub3JldHVy
bicgYXR0cmlidXRlIGRvZXMgbm90IGNoYW5nZSB0aGUgZnVuY3Rpb24gY2FsbGluZyBjb252ZW50
aW9uDQo+PiBvciBwYXJhbWV0ZXIgaGFuZGxpbmcgYXQgcnVudGltZSwgbWFraW5nIHRoZSBjb252
ZXJzaW9uIHNhZmUuDQo+Pg0KPj4gQ29uZmlndXJlIEVDTEFJUiB0byB0cmVhdCBpbXBsaWNpdCBj
b252ZXJzaW9ucyB0aGF0IGxvc2UgdGhlICJub3JldHVybiINCj4+IGF0dHJpYnV0ZSBvbiBhIGZ1
bmN0aW9uICd2b2lkICgqKSh2b2lkKiknIGFzIHNhZmUuDQo+IA0KPiAuLi4gd2FudHMgY29ubmVj
dGluZyB0byB0aGlzIG1vcmUgbmFycm93IEVjbGFpciBjb25maWd1cmF0aW9uLiBUaGF0J3Mgd2hh
dA0KPiBJIG1lYW50IHdoZW4gSSBzYWlkICJkZXNjcmlwdGlvbiBhbHNvIHN1aXRhYmx5IGFkanVz
dGVkIi4gRm9yIGV4YW1wbGUsIHRoZQ0KPiBsYXN0IHNlbnRlbmNlIGFib3ZlIGNvdWxkIHN0YXJ0
ICJGb3Igbm93LCBjb25maWd1cmUgRWNsYWlyIHRvIGp1c3QgdHJlYXQNCj4gLi4uIi4gQ2FuIGFk
anVzdCB3aGVuIGNvbW1pdHRpbmcsIGFzc3VtaW5nIGFuIGFjayBmb3IgdGhlIC5lY2wgY2hhbmdl
DQo+IGFwcGVhcnMuDQo+IA0KPj4gU2lnbmVkLW9mZi1ieTogRG15dHJvIFByb2tvcGNodWsgPGRt
eXRyb19wcm9rb3BjaHVrMUBlcGFtLmNvbT4NCj4gDQo+IEFja2VkLWJ5OiBKYW4gQmV1bGljaCA8
amJldWxpY2hAc3VzZS5jb20+ICMgZG9jcw0KDQpTb3JyeSwgSSBtaXN1bmRlcnN0b29kLg0KDQpG
ZWVsIGZyZWUgdG8gdXBkYXRlIHRoZSBjb21taXQgbWVzc2FnZS4NClRoYW5rIHlvdSE=


From xen-devel-bounces@lists.xenproject.org Fri Aug 01 11:25:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Aug 2025 11:25:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1067169.1432114 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhnsz-00038U-7V; Fri, 01 Aug 2025 11:25:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1067169.1432114; Fri, 01 Aug 2025 11:25:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhnsz-00038N-4n; Fri, 01 Aug 2025 11:25:17 +0000
Received: by outflank-mailman (input) for mailman id 1067169;
 Fri, 01 Aug 2025 11:25:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ZYZz=2N=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1uhnsy-00038E-AS
 for xen-devel@lists.xenproject.org; Fri, 01 Aug 2025 11:25:16 +0000
Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com
 [2a00:1450:4864:20::436])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2f576e42-6eca-11f0-b896-0df219b8e170;
 Fri, 01 Aug 2025 13:25:10 +0200 (CEST)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-3b79bddd604so1131041f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 01 Aug 2025 04:25:10 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4589ee4f0easm63027195e9.16.2025.08.01.04.25.08
 for <xen-devel@lists.xenproject.org>
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 01 Aug 2025 04:25: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>
X-Inumbo-ID: 2f576e42-6eca-11f0-b896-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754047510; x=1754652310; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:subject:from:to
         :content-language:user-agent:mime-version:date:message-id:from:to:cc
         :subject:date:message-id:reply-to;
        bh=0StIsGSq261gefJP6NHZmfvZQo3NODpE+T+uQM4u284=;
        b=if8HSb725wUqjuW2+oKX0WnoRiiijGLHN1kOUQ0AWYmvxJCfrKCuCIjEcOlOD12meC
         Tn3O1/vpkKY2r8APSl2YA9/obzPbb9DSr3OqBAmLW0JI1GUuyR3z3hcT++sBOYqcbd6b
         ANpdIkBEPlP8pNq8Vxg4JCUGn05FchIiOhe8g=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754047510; x=1754652310;
        h=content-transfer-encoding:autocrypt:subject:from:to
         :content-language:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=0StIsGSq261gefJP6NHZmfvZQo3NODpE+T+uQM4u284=;
        b=BQQ2bZDzQXsWd9zsFa2d3J/nOg0dIxIznu0jKrqvqt/VJuqlX4U8fOBRDe406O+6mu
         CabvxeapLcEJnfdvVjAFDByYTAGzILUkBwTFZcVdAoqqNPqzSZPoJGssWgn6ufEhsGQT
         dOT1dn56zQ3yD2c9zBtO3/pox9dWDbrb3nQ8zAM7s6rIO8X0rnxUSN/bnm1UU/zv6uYl
         ozSHL1A2YHA1VKEyAfVWIwysTKLA93xT5UfK9jkSCZt49cy9T5GPyGOwiE7NxnQzd8X8
         jPz2QeTa8DqcEzjQxV6hpYk3cpdkYgOa6VPdtKTfqYN13yfRUTCdH18U7wF56um7EirJ
         pVpQ==
X-Gm-Message-State: AOJu0YwlnEMfAnpat+yc6hFGVkyxr+tFI1mU3UyP+crtAMAYkulOGngx
	/fNwBO8zBsul/PRiKkt/0c0LESiRfP5lPR9ySyLvJmxuHbZooUcqk59bH/HLT+2xwT3hKhmQ55J
	BUDtTs38=
X-Gm-Gg: ASbGnctyQX4VU/RQGjR0zEus2AQ8WhsNYij0nLaynuyTN9NLMR8/IpO00LyRw6dQE9n
	Au0wEi/j17Mxh15ACQDatgoFxzweX3Hq1dxcDceV7YgyCnkS5yNKmLEGE0Q9GHBR7Xq1zEek2Xa
	itPp9qABrhsXbPDt92csJ6ad0WWXd5ycN10oH8PiBuR8uxNoYAEAyGCKme1v3b2I/CLU8CVMTZo
	3kzXxME1qVGcFigz8D+19x429mkipE6U9uGKDUnsZvUcLIxYIbkp5KUaKFi5P9+bqPrmGzTKjs6
	erR3xG0ni7DH+cfWOLw5ULChAddSpkQUUBscEdyqbAC8t9HkBiPL3VfexRqsG+MBDmva8/jY3fF
	Guzc7rXJKSLlBECZu7JnQlU/eHFZoouMgb9gwAT8ScxdShBQGbo6+qA369hfCRfGQ+DoK
X-Google-Smtp-Source: AGHT+IFlyS0f0sruAKsFjJU5urJlVWiY7p/7VJLssKo3A9u26xxu82c9gtvgbvqH9uqPYpW6rVjKuQ==
X-Received: by 2002:adf:a297:0:b0:3b7:970d:a565 with SMTP id ffacd0b85a97d-3b7970da81bmr6750756f8f.46.1754047509607;
        Fri, 01 Aug 2025 04:25:09 -0700 (PDT)
Message-ID: <e742cee1-450d-4df0-a3a6-af635a940472@citrix.com>
Date: Fri, 1 Aug 2025 12:25:08 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-GB
To: xen-devel <xen-devel@lists.xenproject.org>
From: Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Console vs serial
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==
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Hello,

There's a long-standing irritation in Xen, whereby printk()'s which
occur prior to console_init_preirq() get half-lost.

They end up in the console ring, and hence are available via `xl dmesg`,
but they're missing from serial console.

e.g. these 4 lines don't escape

Â Â Â  (XEN) Enabling lockdown mode because Secure Boot is enabled
Â Â Â  (XEN) Lockdown mode is enabled
Â Â Â  (XEN) Ignoring cmdline option 'hap_2mb' in lockdown mode
Â Â Â  (XEN) Ignoring cmdline option 'hap_1gb' in lockdown mode
Â Â  Â  __Â  __Â Â Â Â Â Â Â Â Â Â Â  _Â  _Â Â Â  _Â  ___Â Â  ____
Â Â  Â  \ \/ /___ _ __Â Â  | || |Â  / |/ _ \ |___ \


This is from a testcase failure I've just debugged, but the issue is not
specific to secureboot.Â  More generally, any diagnostic from cmdline
parsing ends up in this state.

For PVShim, we did a gross hack to assume the PV console is usable right
from the outset, but all other console configurations don't start
working until the cmdline has been parsed.

Is anything stopping us from feeding the current contents of the console
ring into serial in console_init_preirq()?

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Aug 01 11:45:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Aug 2025 11:45:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1067196.1432124 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhoCG-000616-PB; Fri, 01 Aug 2025 11:45:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1067196.1432124; Fri, 01 Aug 2025 11:45: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 1uhoCG-00060z-MN; Fri, 01 Aug 2025 11:45:12 +0000
Received: by outflank-mailman (input) for mailman id 1067196;
 Fri, 01 Aug 2025 11:45:11 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=N9B3=2N=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1uhoCF-00060t-9x
 for xen-devel@lists.xenproject.org; Fri, 01 Aug 2025 11:45:11 +0000
Received: from mail-oi1-x22e.google.com (mail-oi1-x22e.google.com
 [2607:f8b0:4864:20::22e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f988a163-6ecc-11f0-b896-0df219b8e170;
 Fri, 01 Aug 2025 13:45:09 +0200 (CEST)
Received: by mail-oi1-x22e.google.com with SMTP id
 5614622812f47-41b4ebb15e2so978854b6e.3
 for <xen-devel@lists.xenproject.org>; Fri, 01 Aug 2025 04:45: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>
X-Inumbo-ID: f988a163-6ecc-11f0-b896-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1754048708; x=1754653508; 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=1OlFcRTGjo+XBPKGhcZipxmDk8NlzuRt/DeJY9bvaKw=;
        b=lV1tGSscx/L9ad2Eb1otJGCUJjaRjpEnPqWKr5Oi6ErXWXxwQYcGE4lE4TQKLGN9/p
         KsGT+Bmh9P6RLFPHnt5HUoGoK4VQ9IAb+rMDX2NMLrvNEZYyIZRcI16vwguQEoMNH1/C
         h0tU4eSC9CuaBiUiv7EPscZfyRe/8kXQJN174=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754048708; x=1754653508;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=1OlFcRTGjo+XBPKGhcZipxmDk8NlzuRt/DeJY9bvaKw=;
        b=UdqFLhl3vf2/dmT7z4Fqr7k4vfesI5Ux46JTzpHFk2aDMgCp8RCQBwS12Yh9VZrguC
         FVpMNjifNSZ2PknBhuvqL2sG93oNl9X6VMJlV4jJAcluhJcpRzwkezHPlW9VKKuqCy5j
         V7KVDnh0PKUvlR2YRIU3Cp3bIwzNKJqpJ3HnOmB/SvzVavyofNTlDTWyFRic4S3hy2qy
         YE/78SPZavl17urAMiRBe56eIV9R0V+nGyHmmQA8hmzl+/lUJplXpyoIVT6lK1EvgQ0n
         kuv01WqP/DsyQRy+Mowt57liCXoQNCnQwgVsYFxs9vGgEj4Px+BHGVm2u6XK9pPcBxxH
         7fCg==
X-Gm-Message-State: AOJu0YwukYM38CRRBmGyoDOt6xDSrOr/Qz2kEql1b5vI27rAImALDV+B
	Pb+OW0yLh7+KPJ+vgoAvAbw7xL5fpHjjVU56v7z4tmD7J3HcjPLIRjWRrtYO7AcMnzmqyCmY2vx
	7Mrs7wC52ph+5nqKt7dXM6VfZZcYm5Mekl5D0DOzZ6Q==
X-Gm-Gg: ASbGnctqXl2+CHUJW8wOcWcCebpYBp+sJuEPLqWWnm/zeUcoRCUpOrRvRRq1PmWH/Md
	rxlcznu5ZaOGXrn69D/cAg0ov3sDwXaTBAAwmhftPAAePoszEaZD201l9MlxQAfJ70gSRYp6EhF
	EeGH70LssCdkPHcH709QwAmD/kZ2Q2FrOqVj/laORgUMjstKQqhblZnT4mp3s09oQnSvoPCd8/B
	2g0qx8=
X-Google-Smtp-Source: AGHT+IFtF4y0tnfNuIHefeNb52zUFGW2wkiQ9ClS+SpSJ1xKaLd07vJyTMsmfLtt3DHf0+HHevJAfxPJWnNfn6tAcoY=
X-Received: by 2002:a05:6808:6702:b0:406:45ae:b0 with SMTP id
 5614622812f47-4319c1ef726mr7322580b6e.35.1754048707922; Fri, 01 Aug 2025
 04:45:07 -0700 (PDT)
MIME-Version: 1.0
References: <e742cee1-450d-4df0-a3a6-af635a940472@citrix.com>
In-Reply-To: <e742cee1-450d-4df0-a3a6-af635a940472@citrix.com>
From: Frediano Ziglio <frediano.ziglio@cloud.com>
Date: Fri, 1 Aug 2025 12:44:57 +0100
X-Gm-Features: Ac12FXw4kXbLuRe8A2LolUx6iP80Z629ue7VAKmsl9g1-T6ipHV4GHC3pNTBY80
Message-ID: <CACHz=ZhOnnCAZ9W=j0fTWnpy7BzqjZF7B-X0sxLagKa-7q1ZiQ@mail.gmail.com>
Subject: Re: Console vs serial
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, Aug 1, 2025 at 12:25=E2=80=AFPM Andrew Cooper <andrew.cooper3@citri=
x.com> wrote:
>
> Hello,
>
> There's a long-standing irritation in Xen, whereby printk()'s which
> occur prior to console_init_preirq() get half-lost.
>
> They end up in the console ring, and hence are available via `xl dmesg`,
> but they're missing from serial console.
>
> e.g. these 4 lines don't escape
>
>     (XEN) Enabling lockdown mode because Secure Boot is enabled
>     (XEN) Lockdown mode is enabled
>     (XEN) Ignoring cmdline option 'hap_2mb' in lockdown mode
>     (XEN) Ignoring cmdline option 'hap_1gb' in lockdown mode
>      __  __            _  _    _  ___   ____
>      \ \/ /___ _ __   | || |  / |/ _ \ |___ \
>
>
> This is from a testcase failure I've just debugged, but the issue is not
> specific to secureboot.  More generally, any diagnostic from cmdline
> parsing ends up in this state.
>
> For PVShim, we did a gross hack to assume the PV console is usable right
> from the outset, but all other console configurations don't start
> working until the cmdline has been parsed.
>
> Is anything stopping us from feeding the current contents of the console
> ring into serial in console_init_preirq()?
>
> ~Andrew
>

I don't think there's a problem replaying the console logs into the
serial once the serial is set up.
It will slow down the boot maybe but beside that it should be fine.

Frediano


From xen-devel-bounces@lists.xenproject.org Fri Aug 01 12:55:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Aug 2025 12:55:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1067240.1432138 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhpIU-0006Ce-RD; Fri, 01 Aug 2025 12:55:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1067240.1432138; Fri, 01 Aug 2025 12:55: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 1uhpIU-0006CX-OP; Fri, 01 Aug 2025 12:55:42 +0000
Received: by outflank-mailman (input) for mailman id 1067240;
 Fri, 01 Aug 2025 12:55:42 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mF25=2N=net-space.pl=dkiper@srs-se1.protection.inumbo.net>)
 id 1uhpIU-0006CR-5q
 for xen-devel@lists.xenproject.org; Fri, 01 Aug 2025 12:55:42 +0000
Received: from dibed.net-space.pl (dibed.net-space.pl [84.10.22.86])
 by se1-gles-sth1.inumbo.com (Halon) with SMTP
 id d355f362-6ed6-11f0-a320-13f23c93f187;
 Fri, 01 Aug 2025 14:55:39 +0200 (CEST)
Received: from router-fw.i.net-space.pl ([192.168.52.1]:48616 "EHLO
 tomti.i.net-space.pl") by router-fw-old.i.net-space.pl with ESMTP
 id S998191AblHAMzh (ORCPT <rfc822;xen-devel@lists.xenproject.org>);
 Fri, 1 Aug 2025 14:55:37 +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>
X-Inumbo-ID: d355f362-6ed6-11f0-a320-13f23c93f187
X-Comment: RFC 2476 MSA function at dibed.net-space.pl logged sender identity as: dkiper
Date:	Fri, 1 Aug 2025 14:55:36 +0200
From:	Daniel Kiper <dkiper@net-space.pl>
To:	Aaron Rainbolt <arraybolt3@gmail.com>
Cc:	grub-devel@gnu.org, xen-devel@lists.xenproject.org
Subject: Re: [RESEND PATCH v3 1/1] kern/xen: Add Xen command line parsing
Message-ID: <20250801125536.mc2sjrdyikljzea6@tomti.i.net-space.pl>
References: <20250725153012.1dd46644@kf-m2g5>
 <20250725153112.4ea25243@kf-m2g5>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250725153112.4ea25243@kf-m2g5>
User-Agent: NeoMutt/20170113 (1.7.2)

On Fri, Jul 25, 2025 at 03:31:12PM -0500, Aaron Rainbolt wrote:
> Xen traditionally allows customizing guest behavior by passing arguments
> to the VM kernel via the kernel command line. This is no longer possible
> when using GRUB with Xen, as the kernel command line is decided by the
> GRUB configuration file within the guest, not data passed to the guest
> by Xen.
>
> To work around this limitation, enable GRUB to parse a command line
> passed to it by Xen, and expose data from the command line to the GRUB
> configuration as environment variables. These variables can be used in
> the GRUB configuration for any desired purpose, such as extending the
> kernel command line passed to the guest. The command line format is
> inspired by the Linux kernel's command line format.
>
> To reduce the risk of misuse, abuse, or accidents in production, the
> command line will only be parsed if it consists entirely of 7-bit ASCII
> characters, only alphabetical characters and underscores are permitted
> in variable names, and all variable names must start with the string
> "xen_grub_env_". This also allows room for expanding the command line
> arguments accepted by GRUB in the future, should other arguments end up
> becoming desirable in the future.
>
> Signed-off-by: Aaron Rainbolt <arraybolt3@gmail.com>
> ---
>  docs/grub.texi                |  50 +++++
>  grub-core/Makefile.core.def   |   2 +
>  grub-core/kern/i386/xen/pvh.c |  14 ++
>  grub-core/kern/main.c         |  12 ++
>  grub-core/kern/xen/cmdline.c  | 343 ++++++++++++++++++++++++++++++++++
>  include/grub/xen.h            |   2 +
>  6 files changed, 423 insertions(+)
>  create mode 100644 grub-core/kern/xen/cmdline.c
>
> diff --git a/docs/grub.texi b/docs/grub.texi
> index 34b3484..ce82483 100644
> --- a/docs/grub.texi
> +++ b/docs/grub.texi
> @@ -3271,6 +3271,7 @@ GRUB.  Others may be used freely in GRUB configuration files.
>  @menu
>  * Special environment variables::
>  * Environment block::
> +* Passing environment variables through Xen::
>  @end menu
>
>
> @@ -3871,6 +3872,55 @@ using BIOS or EFI functions (no ATA, USB or IEEE1275).
>  @command{grub-mkconfig} uses this facility to implement
>  @samp{GRUB_SAVEDEFAULT} (@pxref{Simple configuration}).
>
> +@node Passing environment variables through Xen
> +@section Passing environment variables through Xen
> +
> +If you are using a GRUB image as the kernel for a PV or PVH Xen virtual
> +machine, you can pass environment variables from Xen's dom0 to the VM through
> +the Xen-provided kernel command line. When combined with a properly configured
> +guest, this can be used to customize the guest's behavior on bootup via the
> +VM's Xen configuration file.
> +
> +GRUB will parse the kernel command line passed to it by Xen during bootup.
> +The command line will be split into space-delimited words. Single and
> +double quotes may be used to quote words or portions of words that contain
> +spaces. Arbitrary characters may be backslash-escaped to make them a literal
> +component of a word rather than being parsed as quotes or word separators. The
> +command line must consist entirely of printable 7-bit ASCII characters and
> +spaces. If a non-printing ASCII character is found anywhere in the command
> +line, the entire command line will be ignored by GRUB.
> +
> +Each word should be a variable assignment in the format ``variable'' or
> +``variable=value''. Variable names must contain only the characters A-Z, a-z,
> +and underscore (``_''). Variable names must begin with the string
> +``xen_grub_env_''. Variable values can contain arbitrary printable 7-bit
> +ASCII characters and space. If any variable contains an illegal name, that
> +variable will be ignored.
> +
> +If a variable name and value are both specified, the variable will be set to
> +the specified value. If only a variable name is specified, the variable's
> +value will be set to ``1''.
> +
> +The following is a simple example of how to use this functionality to append
> +arbitrary variables to a guest's kernel command line:
> +
> +@example
> +# In the Xen configuration file for the guest
> +name = "linux_vm"
> +type = "pvh"
> +kernel = "/path/to/grub-i386-xen_pvh.bin"
> +extra = "xen_grub_env_kernelappend='loglevel=3'"

s/kernelappend/kernel_append/

or maybe even

s/kernelappend/linux_append/

to make it clear it is appended to the "linux" command line...

> +memory = 1024
> +disk = [ "file:/srv/vms/linux_vm.img,sda,w" ]
> +
> +# In the guest's GRUB configuration file
> +menuentry "Linux VM with dom0-specified kernel parameters" @{
> +    search --set=root --label linux_vm --hint hd0,msdos1
> +    linux /boot/vmlinuz root=LABEL=linux_vm $@{xen_grub_env_kernelappend@}

Ditto...

> +    initrd /boot/initrd.img
> +@}
> +@end example
> +
>  @node Modules
>  @chapter Modules
>
> diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def
> index b3f7119..df0f266 100644
> --- a/grub-core/Makefile.core.def
> +++ b/grub-core/Makefile.core.def
> @@ -248,6 +248,7 @@ kernel = {
>    xen = term/xen/console.c;
>    xen = disk/xen/xendisk.c;
>    xen = commands/boot.c;
> +  xen = kern/xen/cmdline.c;
>
>    i386_xen_pvh = commands/boot.c;
>    i386_xen_pvh = disk/xen/xendisk.c;
> @@ -255,6 +256,7 @@ kernel = {
>    i386_xen_pvh = kern/i386/xen/tsc.c;
>    i386_xen_pvh = kern/i386/xen/pvh.c;
>    i386_xen_pvh = kern/xen/init.c;
> +  i386_xen_pvh = kern/xen/cmdline.c;
>    i386_xen_pvh = term/xen/console.c;
>
>    ia64_efi = kern/ia64/efi/startup.S;
> diff --git a/grub-core/kern/i386/xen/pvh.c b/grub-core/kern/i386/xen/pvh.c
> index 91fbca8..12df2d8 100644
> --- a/grub-core/kern/i386/xen/pvh.c
> +++ b/grub-core/kern/i386/xen/pvh.c
> @@ -321,6 +321,8 @@ void
>  grub_xen_setup_pvh (void)
>  {
>    grub_addr_t par;
> +  const char *xen_cmdline;
> +  int i;
>
>    grub_xen_cpuid_base ();
>    grub_xen_setup_hypercall_page ();
> @@ -352,6 +354,18 @@ grub_xen_setup_pvh (void)
>    grub_xen_mm_init_regions ();
>
>    grub_rsdp_addr = pvh_start_info->rsdp_paddr;
> +
> +  xen_cmdline = (const char *) pvh_start_info->cmdline_paddr;
> +  for (i = 0; i < MAX_GUEST_CMDLINE; i++)

Oh, MAX_GUEST_CMDLINE is a too generic. May I ask you to rename it to
GRUB_XEN_MAX_GUEST_CMDLINE? This should be done in separate patch
preceding this one.

> +    {
> +      if (xen_cmdline[i] == '\0')

I cannot see much sense in this check. Please look below...

> +        {
> +          grub_strncpy ((char *) grub_xen_start_page_addr->cmd_line,
> +			(char *) pvh_start_info->cmdline_paddr,

s/char */const char */

Is it always guaranteed that pvh_start_info->cmdline_paddr have
MAX_GUEST_CMDLINE size? If yes then...

grub_memset ((void *) pvh_start_info->cmdline_paddr, 0, MAX_GUEST_CMDLINE);
grub_strncpy ((char *) grub_xen_start_page_addr->cmd_line,
              (const char *) pvh_start_info->cmdline_paddr,
	      MAX_GUEST_CMDLINE - 1);

... and you are done...

> +			MAX_GUEST_CMDLINE);
> +          break;
> +        }
> +    }
>  }
>
>  grub_err_t
> diff --git a/grub-core/kern/main.c b/grub-core/kern/main.c
> index 143a232..b4377d3 100644
> --- a/grub-core/kern/main.c
> +++ b/grub-core/kern/main.c
> @@ -37,6 +37,10 @@
>  #include <grub/machine/memory.h>
>  #endif
>
> +#if defined (GRUB_MACHINE_XEN) || defined (GRUB_MACHINE_XEN_PVH)
> +#include <grub/xen.h>
> +#endif
> +
>  static bool cli_disabled = false;
>  static bool cli_need_auth = false;
>
> @@ -351,6 +355,14 @@ grub_main (void)
>    grub_env_export ("root");
>    grub_env_export ("prefix");
>
> +  /*
> +   * Parse command line parameters from Xen and export them as environment
> +   * variables
> +   */
> +#if defined (GRUB_MACHINE_XEN) || defined (GRUB_MACHINE_XEN_PVH)
> +  grub_parse_xen_cmdline ();

Please move this call to the grub-core/kern/xen/init.c:grub_machine_init().

> +#endif
> +
>    /* Reclaim space used for modules.  */
>    reclaim_module_space ();
>
> diff --git a/grub-core/kern/xen/cmdline.c b/grub-core/kern/xen/cmdline.c
> new file mode 100644
> index 0000000..03dd88f
> --- /dev/null
> +++ b/grub-core/kern/xen/cmdline.c
> @@ -0,0 +1,343 @@
> +/*
> + *  GRUB  --  GRand Unified Bootloader
> + *  Copyright (C) 2025  Free Software Foundation, Inc.
> + *
> + *  GRUB 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 3 of the License, or
> + *  (at your option) any later version.
> + *
> + *  GRUB 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 GRUB.  If not, see <http://www.gnu.org/licenses/>.
> + */
> +
> +#include <grub/env.h>
> +#include <grub/misc.h>
> +#include <grub/mm.h>
> +#include <grub/xen.h>
> +
> +enum parse_flags
> +{
> +  PARSER_HIT_BACKSLASH = 0x1,
> +  PARSER_IN_SINGLE_QUOTES = 0x2,
> +  PARSER_IN_DOUBLE_QUOTES = 0x4,
> +};
typedef parse_flags parse_flags_t;

... and use parse_flags_t instead below...

And probably this should be a local variable...

> +
> +#define PARSER_BASE_WORD_LEN 16

This constant begs for a few words of comment...

> +static grub_size_t word_list_len;
> +static char **word_list;
> +static grub_size_t current_word_len;
> +static grub_size_t current_word_pos;
> +static char *current_word;
> +static char current_char;

I have a feeling that most if not all of this variables should be
local in a given function...

> +static bool
> +append_char_to_word (bool allow_null)
> +{
> +  /*
> +   * Fail if the current char is outside of the range 0x20 to 0x7E. If
> +   * allow_null is true, make an exception for 0x00. This is a safeguard

Could you elaborate here when allow_null == true is useful?

> +   * against likely-invalid data.
> +   */
> +  if ( (!(current_char >= 0x20) || !(current_char <= 0x7E) )

grub_isprint()?

> +      && (current_char != '\0' || allow_null == false))

I would drop redundant spaces between "(" and ")" and move "&&" to the
end of first line of "if".

> +    return false;
> +
> +  if (current_word_pos == current_word_len)
> +    {
> +      current_word_len *= 2;

You can do this in the argument of the function below...

> +      current_word = grub_realloc (current_word, current_word_len);
> +      if (current_word == NULL)
> +        {
> +          current_word_len /= 2;
> +          return false;
> +        }
> +    }
> +
> +  current_word[current_word_pos] = current_char;
> +  current_word_pos++;

Again, you can do this operation in the "[]" above...

> +  return true;
> +}
> +
> +static bool
> +append_word_to_list (void)
> +{
> +  /* No-op on empty words. */
> +  if (current_word_pos == 0)

This should be probably an argument for the function...

> +    return true;
> +
> +  current_char = '\0';
> +  if (append_char_to_word (true) == false)
> +    {
> +      grub_error (GRUB_ERR_BUG,
> +		  "couldn't append null terminator to word during Xen cmdline parsing");
> +      grub_print_error ();
> +      grub_exit ();
> +    }
> +
> +  current_word_len = grub_strlen (current_word) + 1;
> +  current_word = grub_realloc (current_word, current_word_len);
> +  if (current_word == NULL)
> +    return false;
> +  word_list_len++;

Again this, OK ++word_list_len to be precise, can be done in a function
argument below...

> +  word_list = grub_realloc (word_list, word_list_len * sizeof (char *));
> +  if (word_list == NULL)
> +    return false;
> +  word_list[word_list_len - 1] = current_word;
> +
> +  current_word_len = PARSER_BASE_WORD_LEN;
> +  current_word_pos = 0;
> +  current_word = grub_malloc (current_word_len);
> +  if (current_word == NULL)
> +    return false;
> +
> +  return true;
> +}
> +
> +static bool
> +check_key_is_safe (char *key, grub_size_t len)
> +{
> +  grub_size_t i;
> +
> +  for (i = 0; i < len; i++)
> +  {
> +    /*
> +     * Ensure only a-z, A-Z, and _ are allowed.
> +     */
> +    if (! ( (key[i] >= 'A' && key[i] <= 'Z')
> +          || (key[i] >= 'a' && key[i] <= 'z')

You have whole family of grub_isalpha() functions. Could not use them
here and there?

> +          || (key[i] == '_') ) )
> +      return false;
> +  }
> +  return true;
> +}
> +
> +void
> +grub_parse_xen_cmdline (void)
> +{
> +  const char *cmdline = (const char *) grub_xen_start_page_addr->cmd_line;
> +  grub_size_t cmdline_len;
> +  bool cmdline_valid = false;
> +  char **param_keys = NULL;
> +  char **param_vals = NULL;
> +  grub_size_t param_dict_len = 0;
> +  grub_size_t param_dict_pos = 0;
> +  enum parse_flags parse_flags = 0;
> +  grub_size_t i = 0;
> +
> +  /*
> +   * The following algorithm is used to parse the Xen command line:
> +   *
> +   * - The command line is split into space-separated words.
> +   *   - Single and double quotes may be used to suppress the splitting
> +   *     behavior of spaces.
> +   *   - Double quotes are appended to the current word verbatim if they
> +   *     appear within a single-quoted string portion, and vice versa.
> +   *   - Backslashes may be used to cause the next character to be
> +   *     appended to the current word verbatim. This is only useful when
> +   *     used to escape quotes, spaces, and backslashes, but for simplicity
> +   *     we allow backslash-escaping anything.
> +   * - After splitting the command line into words, each word is checked to
> +   *   see if it contains an equals sign.
> +   *   - If it does, it is split on the equals sign into a key-value pair. The
> +   *     key is then treated as an variable name, and the value is treated as
> +   *     the variable's value.
> +   *   - If it does not, the entire word is treated as a variable name. The
> +   *     variable's value is implicitly considered to be `1`.
> +   * - All variables detected on the command line are checked to see if their
> +   *   names begin with the string `xen_grub_env_`. Variables that do not pass
> +   *   this check are discarded, variables that do pass this check are
> +   *   exported so they are available to the GRUB configuration.

I think not all from this valuable comment landed in the documentation.
Please fix it...

> +   */
> +
> +  current_word_len = PARSER_BASE_WORD_LEN;
> +  current_word = grub_malloc (current_word_len);
> +  if (current_word == NULL)
> +    goto cleanup;
> +
> +  for (i = 0; i < MAX_GUEST_CMDLINE; i++)
> +    {
> +      if (cmdline[i] == '\0')
> +        {
> +          cmdline_valid = true;
> +          break;
> +        }
> +    }
> +
> +  if (cmdline_valid == false)
> +    {
> +      grub_error (GRUB_ERR_BAD_ARGUMENT,
> +		  "Command line from Xen is not NUL-terminated");

GRUB errors usually start with lowercase...

> +      grub_print_error ();
> +      goto cleanup;
> +    }
> +
> +  cmdline_len = grub_strlen (cmdline);
> +  for (i = 0; i < cmdline_len; i++)
> +    {
> +      current_char = cmdline[i];
> +
> +      /*
> +       * If the previous character was a backslash, append the current
> +       * character to the word verbatim
> +       */
> +      if (parse_flags & PARSER_HIT_BACKSLASH)

s/parse_flags/parser_state/

> +        {
> +          parse_flags &= ~PARSER_HIT_BACKSLASH;
> +          if (append_char_to_word (false) == false)
> +            goto cleanup;
> +          continue;
> +        }
> +
> +      switch (current_char)
> +        {
> +        case '\\':
> +          /* Backslashes escape arbitrary characters. */
> +          parse_flags |= PARSER_HIT_BACKSLASH;
> +          continue;
> +
> +        case '\'':
> +          /*
> +           * Single quotes suppress word splitting and double quoting until
> +           * the next single quote is encountered.
> +           */
> +          if (parse_flags & PARSER_IN_DOUBLE_QUOTES)
> +            {
> +              if (append_char_to_word (false) == false)
> +                goto cleanup;
> +              continue;
> +            }
> +
> +          parse_flags ^= PARSER_IN_SINGLE_QUOTES;
> +          continue;
> +
> +        case '"':
> +          /*
> +           * Double quotes suppress word splitting and single quoting until
> +           * the next double quote is encountered.
> +           */
> +          if (parse_flags & PARSER_IN_SINGLE_QUOTES)
> +            {
> +              if (append_char_to_word (false) == false)
> +                goto cleanup;
> +              continue;
> +            }
> +
> +          parse_flags ^= PARSER_IN_DOUBLE_QUOTES;
> +          continue;
> +
> +        case ' ':
> +          /* Spaces separate words in the command line from each other. */
> +          if (parse_flags & PARSER_IN_SINGLE_QUOTES
> +              || parse_flags & PARSER_IN_DOUBLE_QUOTES)

I prefer "||" and "&&" at the end of the lines...

> +            {
> +              if (append_char_to_word (false) == false)
> +                goto cleanup;
> +              continue;
> +            }
> +
> +          if (append_word_to_list () == false)

This shows nicely that the function misses arguments...

> +            goto cleanup;
> +          continue;
> +        }
> +
> +      if (append_char_to_word (false) == false)

Ditto...

> +        goto cleanup;
> +    }
> +
> +  if (append_word_to_list () == false)

Ditto...

> +    goto cleanup;
> +
> +  param_keys = grub_malloc (word_list_len * sizeof (char *));
> +  if (param_keys == NULL)
> +    goto cleanup;
> +  param_vals = grub_malloc (word_list_len * sizeof (char *));
> +  if (param_vals == NULL)
> +    goto cleanup;
> +
> +  for (i = 0; i < word_list_len; i++)
> +    {
> +      char *current_word_eq_ptr;
> +
> +      current_word = word_list[i];
> +      current_word_len = grub_strlen (current_word) + 1;
> +      current_word_eq_ptr = grub_strchr (current_word, '=');
> +
> +      if (current_word_eq_ptr)

current_word_eq_ptr != NULL

> +        {
> +          grub_size_t eq_idx = (grub_size_t)(current_word_eq_ptr - current_word);

Missing space after "(grub_size_t)"...

> +          grub_size_t post_eq_len = current_word_len - (eq_idx);

You can drop "()" from eq_idx

> +
> +          if (check_key_is_safe (current_word, eq_idx))

check_key_is_safe() == true

s/check_key_is_safe/is_key_safe/

> +            {
> +              param_dict_pos = param_dict_len;
> +              param_dict_len++;
> +              param_keys[param_dict_pos] = grub_malloc (eq_idx + 1);
> +              if (param_keys == NULL)
> +                goto cleanup;
> +              param_vals[param_dict_pos] = grub_malloc (post_eq_len + 1);
> +              if (param_vals == NULL)
> +                goto cleanup;
> +
> +              grub_strncpy (param_keys[param_dict_pos], current_word,
> +			    eq_idx);

Please do not wrap line here...

> +              grub_strncpy (param_vals[param_dict_pos],
> +			    current_word + eq_idx + 1, post_eq_len);

Please remember that grub_strncpy() may return non-NUL terminated
strings... You should check this everywhere...

> +              param_keys[param_dict_pos][eq_idx] = '\0';
> +              param_vals[param_dict_pos][post_eq_len] = '\0';
> +            }
> +        }
> +      else
> +        {
> +          if (check_key_is_safe (current_word, current_word_len - 1))

check_key_is_safe() == true

> +            {
> +              param_dict_pos = param_dict_len;
> +              param_dict_len++;
> +              param_keys[param_dict_pos] = grub_malloc (current_word_len);
> +              if (param_keys == NULL)
> +                goto cleanup;
> +              param_vals[param_dict_pos] = grub_malloc (2);
> +              if (param_vals == NULL)
> +                goto cleanup;
> +
> +              grub_strncpy (param_keys[param_dict_pos], current_word,
> +			    current_word_len);
> +              grub_strcpy (param_vals[param_dict_pos], "1");
> +            }
> +        }
> +    }
> +
> +  for (i = 0; i < param_dict_len; i++)
> +    {
> +      /*
> +       * Find keys that start with "xen_grub_env_" and export them
> +       * as environment variables.
> +       */
> +      if (grub_strncmp (param_keys[i],
> +			"xen_grub_env_",
> +			sizeof ("xen_grub_env_") - 1) != 0)
> +        continue;
> +      grub_env_set (param_keys[i], param_vals[i]);
> +      grub_env_export (param_keys[i]);

Both functions may fail. Don't we care about that? Should not we print a warning?

> +    }
> +
> + cleanup:
> +  for (i = 0; i < word_list_len; i++)
> +    grub_free (word_list[i]);
> +
> +  for (i = 0; i < param_dict_len; i++)
> +    {
> +      grub_free (param_keys[i]);
> +      grub_free (param_vals[i]);
> +    }
> +
> +  grub_free (param_keys);
> +  grub_free (param_vals);
> +  grub_free (word_list);
> +}

Daniel


From xen-devel-bounces@lists.xenproject.org Fri Aug 01 15:54:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Aug 2025 15:54:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1067311.1432152 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhs5e-0001ju-TU; Fri, 01 Aug 2025 15:54:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1067311.1432152; Fri, 01 Aug 2025 15:54: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 1uhs5e-0001jn-Qf; Fri, 01 Aug 2025 15:54:38 +0000
Received: by outflank-mailman (input) for mailman id 1067311;
 Fri, 01 Aug 2025 15:54:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=eZgs=2N=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1uhs5d-0001jh-5W
 for xen-devel@lists.xenproject.org; Fri, 01 Aug 2025 15:54:37 +0000
Received: from DB3PR0202CU003.outbound.protection.outlook.com
 (mail-northeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c200::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d0b3a4dc-6eef-11f0-b897-0df219b8e170;
 Fri, 01 Aug 2025 17:54:35 +0200 (CEST)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by VI1PR03MB6256.eurprd03.prod.outlook.com (2603:10a6:800:132::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.13; Fri, 1 Aug
 2025 15:54:30 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%4]) with mapi id 15.20.8989.015; Fri, 1 Aug 2025
 15:54: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>
X-Inumbo-ID: d0b3a4dc-6eef-11f0-b897-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rLQwBtsgYIOz8TZcIqDyZwEoct7NIFkMebD+w8l3kFJEcK9slvj2CmesjIA2gap718DBfFW5bS7RdvDCdc+AhHzD1E5ggbDpgUbwPglFBdgkYerp9klGrvP9/nzkVIucj6XiLtnV51zDqLdZNoCYpJH6A0J/xzSkD10FaowMAUUtUBjK7SXxwmxJ9UqwynPB9wxkau0TxK3Ep1dA8tQZT6ZFkICf5uh1Bap/1UePVg9/p3uWROeJh6cHah+EyjNREPbjuMd6/631tJaTJ39IvVfkA7ZBB64XrVy+ai1VvLGIrhys4QhN5zln5+vvXPh6jH/opzCO/zYxaf2wPJzILA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=1txnkNA9XkWs7+KkGsJh9zAHr2VJctTrXf7Kp842qRk=;
 b=q5tKUnDHZ7gwNirCIum49D4aVAhbGNPu6MOwq3ffjXji0q7kOi8JggG0EbYoluAwVTaPfltS88iaLEpNyLB6uy0UUUdANH75e8ukCuTX9W7l0lfvSYMtzXiBaVCVwZ0K3uVNtCD+g6LkU+H4BHgqke75JyaikeJDQAWCNsHbzImHB2eikyCqKMWIrwvgCMEQURmxkvyofnfQtDOLLHv/xzmc23SC9HUlTOaQBq50nmvz8Fmm65Ftf2+TCJ6qA+C0AiSu+3n1Q+u/AiWdGBFMgWNOpbtMbGi1P52HrNZ882rpw7E/QbqPZR9WIzyUsrp/zQSf9UDwqFFYLDtE5iaWdQ==
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=1txnkNA9XkWs7+KkGsJh9zAHr2VJctTrXf7Kp842qRk=;
 b=iArffmrG6whVM3EYdNTID++fP8s3MPJmFFp/hYP6ZMM58UEYBJVEbyfcbE/XK/MJgtyCiERvxreSBo/PqPVeoIieGLAjeLv1aob31e7nRpwTO6s8OC/9VLjIzJb5z8wjfNUN/4PjdDqJdTc/ssTtMNlpCrZpIvNLhiTyRiNi3rUVhKNwSULHLcWE9sucZKMKX3u9SowJ6Ie/Ca+TFuLGnNbVn5Giz/P8doVzA2Xnaxd8lVc/wSY/JDkb1WiMo1zMpUNapRBtHN1RW5drJZJolhUc6sMN7A93aC+LxLaYncsoR0Vv3B1r9bJormHGU7FNe1pnClK+uStSLvhr09J1AQ==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>, Grygorii Strashko
	<grygorii_strashko@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: [XEN][PATCH] xen/dom0less: arm: fix hwdom 1:1 low memory allocation
Thread-Topic: [XEN][PATCH] xen/dom0less: arm: fix hwdom 1:1 low memory
 allocation
Thread-Index: AQHcAvyR/OgiYXqFFUajtgPjc1Xchg==
Date: Fri, 1 Aug 2025 15:54:30 +0000
Message-ID: <20250801155429.1402395-1-grygorii_strashko@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: AS2PR03MB8907:EE_|VI1PR03MB6256:EE_
x-ms-office365-filtering-correlation-id: d792ad7c-8d91-4cc4-896b-08ddd113b3a5
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|376014|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?TSLRCAm7wYq5y3fu7aGPqQWo/nCqk3Bc4QZzlPozBYIeaD6pfu90vfncD/?=
 =?iso-8859-1?Q?e2OhxQUsqZjpUE+hVRGANxePPPMapkKmErBIPbqzntyD7Q6NASD3JoeIqV?=
 =?iso-8859-1?Q?VCzGBB0EUpCD9/NhWzs/MMYo/R+RdmsrsqtEWH/FkxNSs0HfjG1OzkJwRn?=
 =?iso-8859-1?Q?UWrKnFElFNdk4Z2gCOnHuCEoC80qf5qV5QxvegogsFhkm7/iGEJiSOE0kK?=
 =?iso-8859-1?Q?Xb+2uhBi8D1Q7+1xyTl/yNcEEgnolO0949v7bIU+6IUhsC207P8P+7HvHU?=
 =?iso-8859-1?Q?ysift3L5Z77qsBfaQnAsi24I7oB0ioVWOXo/PzhsJiJNaP+MAr2vUPrc2h?=
 =?iso-8859-1?Q?CCJMdezu7bly3TMQY92hx8bbbQmFyaMDEAuxEGzdkCNwxXQRDipni7TXZi?=
 =?iso-8859-1?Q?z7oEbBiRVHYrPc3L6RX0x+wyiJsDd4VIGwwYfztSpwAR1rNzWAhM8GHjkI?=
 =?iso-8859-1?Q?azofEde/BEVD36Z1O+S2oQUIQZ+gP676mY1YXdx6y3/ktWn8Xheni/2B1Q?=
 =?iso-8859-1?Q?0y9OBUE4DuhN5OeBiZ4ilKoS2vjfO/UmkkSGTM7B5A1wmhBPutRfXtcMUf?=
 =?iso-8859-1?Q?LdleMaKHbtxN1+h7ur0Qb6+ZcfJRvnXw4hhLfRvfHmaPeldMhHKc5yKGpB?=
 =?iso-8859-1?Q?8792qWplBOw1eB/jKBXVTnGqhKm6LGsgd+DKB83S4WAz2DAjCFQSghZKpa?=
 =?iso-8859-1?Q?oacGVONdgD5Xq3INVUi1zdc9VOJooYFwPWq/whzFe3ucBR0CqsQKS6l/fD?=
 =?iso-8859-1?Q?a8as+vQhZN9GYnhAfLHLEd4fLWOl8o8MTg7b6m3sUU+cYCHlvaAZ2mI81i?=
 =?iso-8859-1?Q?rznwdWZi4wDcN3ZNtOWA0mfMSDj9jQQpBDKGUTdNN68qzWMuH72NGjw5+k?=
 =?iso-8859-1?Q?bKhEqxmpXlKwlpTfWDE9eJYMXvUGrZX8QNqPAU868S0rB8bREDQR8IOR/3?=
 =?iso-8859-1?Q?gSOF4NDxxs6fwpS9zB04cwpC62HS7gYhZvZKHint8BEaN37GugmNk/8zSg?=
 =?iso-8859-1?Q?/7SVnZrdJPgbZCPiB8S0CUp1sUW1Q3K/vAkGm66l9LuW56tGhDhAlRL0hz?=
 =?iso-8859-1?Q?y+I2H5GSY1itfxOjAEmY4iB2CmgdyS8b3ELBav0A0t3QJRZVcoPgOknooE?=
 =?iso-8859-1?Q?xYSwgMMOdtpLpFNZCYiMzZNlsSW8IH8stUkDx7ZrZ6GhR6PtXRdGce1DS9?=
 =?iso-8859-1?Q?gqsAeEfoSfSA7IjVSUm8ev1WwkDmWHCuUr7ji08CARB4IUU9kmo5SxTP8v?=
 =?iso-8859-1?Q?5UEc0C4LDqSZq5Mzdn1CSpmu026jUvZeilhERk1FF+tgTqeN0oSfS3IdXh?=
 =?iso-8859-1?Q?ZBq81TUsJ3nAspAFMKPFkyUyJeoLm3zE9RH7EIF0JVpxc7CBGTzTU1LJFu?=
 =?iso-8859-1?Q?+71b6ErOw84dtNilkPz3FMcVyi+rl21pNlyMPH1btCAqXOUqVqfZsoWaaO?=
 =?iso-8859-1?Q?9dLgD3OKSR7QazhQ7eSubhbEojKefuJtCRqZgeqOrVEGL49bUzgqkmXOnT?=
 =?iso-8859-1?Q?Z9/1RopLV7HP3Jrh0JyfdQnkYPyCfi2gCwBZBDsoRQRA=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?y5K8Apg2orbMQKiDXsHN4EwHunG/NEv6HPi2mK7kZwKl1g2+pPTXVIrmNR?=
 =?iso-8859-1?Q?54uMYU25Iw97fC25VuL4wTORxF1lvAS5YF+utcpSG6Eo65WV6njpe8N8Uy?=
 =?iso-8859-1?Q?lyhJOdyhnIhLMMLLh+A5iDyK8yK1IJEy9ceLKydRyVK/v+nOmwiZt495Td?=
 =?iso-8859-1?Q?aZa4OCeU0ms0NrCexFM2+2HQmNhNSccNy3Ki5KWqcOyB+o78IpTmzN/rcg?=
 =?iso-8859-1?Q?/lkOrhrn+oyrgkpYyW0Vbmj096utkAN1UfU56wIRGQaJmbw6VonMKi/soO?=
 =?iso-8859-1?Q?2zhNIFw5G+VLaFAPwvr+76KQHdKmcRBhu7/pnvumRBbpNfMZh6d0BBSwWP?=
 =?iso-8859-1?Q?2duwJJGlCHVkgOKBdDY0yKTwFKM4W42Omvd73IzxfLsMvhRYT20+vDLoxc?=
 =?iso-8859-1?Q?fg0GkDWTtW8n2dbMpQX+Woz2GMLVIGyXssALlo+m0tEKGEOxRN3dYF/Mv6?=
 =?iso-8859-1?Q?KftRLlFbzd4QSjFZl/1C7u1eiYsrzj82zHUuobCT55Wl5cBjWUmWlqon6p?=
 =?iso-8859-1?Q?rF5BpchZbRdIhinTdSAPO8QQGB/Wxd5G6mMEDzT1nyf+5Wh6I7qGTEiBVC?=
 =?iso-8859-1?Q?KzsSOi6r5bVTPBZTd52n6aI6p/8X3fE8OmWIGfpCMQlbYX9gIkBWX9SyCT?=
 =?iso-8859-1?Q?G2wM1QrUupyEenr0ET+Tv6RT7IKDU1vVGHyUL0TaGMFXRD1MrgvRctm8U8?=
 =?iso-8859-1?Q?ymbm0cfLn/C8lgq2WSRg8QcZl2Yd9bwIbLDhJ+6DLXN82AphaKELgp2X9r?=
 =?iso-8859-1?Q?ulnamqNX+q/a8Jnrlipn/NmeP0lCVCiPrcLBpIZkk9loJDJs07dFzgYkf2?=
 =?iso-8859-1?Q?m7Fhi8BESLzD8BeOSXU6dtUzehD1rRnpShsm0iYHbTBhu8Q0oUkM5gwH4H?=
 =?iso-8859-1?Q?AuC8vF66/SLO1BGJHNAIIAUuWMZvKTohl6Iho1ejiTAjb8EU4Sa9MhSO8k?=
 =?iso-8859-1?Q?QEXJu279hnDeKT2hMFcQXttf2ltfoQKIImV29s931Xd00LgOA+iGHGou6U?=
 =?iso-8859-1?Q?pzxIDnQaOxUOl8Co+4gxBN39h5JO7Tq8SEtISUPJgcHJmJktbYKycHU4GZ?=
 =?iso-8859-1?Q?S4p3m4+VgqYOfTyJ0n6rXCUxTspW183XhMv3MzS7ty+AmaAINTYggx9TOF?=
 =?iso-8859-1?Q?idpjIYGJrgDbUz7VlDwN8QVAJ1ppeipnIwgYvJoBfURDhIWQyozqz/DV7Q?=
 =?iso-8859-1?Q?wxOnCTcRPcr3PhqqZkYuP9Z8Nw0qeNcGamnV1BpeIJKGcFSDb0kCTTiLMY?=
 =?iso-8859-1?Q?S5iof4DrWaygJnm8DoyeENH82s7AF6DNiJQqNDuWj75fPzLEH3P1zciCkH?=
 =?iso-8859-1?Q?b4pwth7zPFptHsmgm2N3fGy7pZgDX4NN8DwGoxBn9nBKGCJJcT8BDPy8Hg?=
 =?iso-8859-1?Q?8OxlqaTi894W63mdzHciE8v3z4gaHDRV4R2b3UvFm6a5ZT00chfJpG/eGS?=
 =?iso-8859-1?Q?9PzPpAnEJAzXgPrU31DsPq8ZsHYjVTgWH86KVZlUtP4arkBUnmVqTkk6vP?=
 =?iso-8859-1?Q?cd88nYhxp43xea/j8C7BYCmMB+IVNHxOjNKotZdFNaqTi+YUlfln4Vv5kX?=
 =?iso-8859-1?Q?tIZT62GMFkZRRwpe5ZXOgc3lMsILjY6p9C1ACcLmnhGn1P3opG5yEhCzU7?=
 =?iso-8859-1?Q?qDrvtuRagAdoYDPKevUQqMzUc0v7wTyVykeyW9Qhce+H6oTsX7OVLoeg?=
 =?iso-8859-1?Q?=3D=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: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d792ad7c-8d91-4cc4-896b-08ddd113b3a5
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Aug 2025 15:54:30.4519
 (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: lU8lp1iDpPGe63N7QS8S9Wt/vo8RE0H2Pb4DEJqEjjacLaefoHJhoGstyAsB+165DAtesyCwEqFJ3vN6tdKNMxazyFbOV584P32kAFr8Dv0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR03MB6256

From: Grygorii Strashko <grygorii_strashko@epam.com>

Call stack for dom0less hwdom case (1:1) memory:
create_domUs
|-construct_domU
  |-construct_hwdom()
    |-allocate_memory_11()

And allocate_memory_11() uses "dom0_mem" as:
min_low_order =3D
  get_order_from_bytes(min_t(paddr_t, dom0_mem, MB(128)));

In case of dom0less boot the "dom0_mem" is not used and defaulted to 0,
which causes min_low_order to get high value > order and so no allocations
happens from low memory.

Fix it, by using kinfo->unassigned_mem instead of "dom0_mem" has correct
memory size in both cases: regular dom0 boot and dom0less boot.

Fixes: 43afe6f030244 ("xen/common: dom0less: introduce common dom0less-buil=
d.c")
Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
---
 xen/arch/arm/domain_build.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 801a09071a50..0a555d1ae0e5 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -278,7 +278,7 @@ static void __init allocate_memory_11(struct domain *d,
                                       struct kernel_info *kinfo)
 {
     const unsigned int min_low_order =3D
-        get_order_from_bytes(min_t(paddr_t, dom0_mem, MB(128)));
+        get_order_from_bytes(min_t(paddr_t, kinfo->unassigned_mem, MB(128)=
));
     const unsigned int min_order =3D get_order_from_bytes(MB(4));
     struct membanks *mem =3D kernel_info_get_mem(kinfo);
     struct page_info *pg;
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Fri Aug 01 18:50:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Aug 2025 18:50:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1067458.1432186 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhupc-00081w-50; Fri, 01 Aug 2025 18:50:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1067458.1432186; Fri, 01 Aug 2025 18:50: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 1uhupc-00081p-1M; Fri, 01 Aug 2025 18:50:16 +0000
Received: by outflank-mailman (input) for mailman id 1067458;
 Fri, 01 Aug 2025 18:50:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=GtvS=2N=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1uhupZ-00081j-9f
 for xen-devel@lists.xenproject.org; Fri, 01 Aug 2025 18:50:14 +0000
Received: from mail-24418.protonmail.ch (mail-24418.protonmail.ch
 [109.224.244.18]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 57f32641-6f08-11f0-b897-0df219b8e170;
 Fri, 01 Aug 2025 20:50: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>
X-Inumbo-ID: 57f32641-6f08-11f0-b897-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1754074204; x=1754333404;
	bh=tkU2ubEKzRvgEXI9JXDaJnb41qMKQwm4UGvogAWMJn8=;
	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=DZNZBVeTNfGGez/CNz+5eEy93SqqSKGM2jLF2xaUPcZjnIsK7AZuhm0jHD87ymZRZ
	 oqXalu8ZEVt2wqzfZEwh1OFF2dPEyQKHsW8QK/wSFJpUazM/ZwKmQSCQtOELY0y/PI
	 laYuC4xMudhm8kAWozgCCItc27GL4DzbD/KjtRM7kIUlNWkjMcqeSjQxXexrz9prKj
	 PcYtRSm4ySR+D/bwuyR4+NUwt5dDQHD7QYYbBtNFMrEIPK+N4AnHy/csdhx/AwX5iw
	 yR0vp/uJR8/pgbMuHDTMLzq8Z8xlMHzaflxFQFCZo3s+uyv7KL3tMlQ16/WPpIQc35
	 3cVD8cmdQw8VA==
Date: Fri, 01 Aug 2025 18:49:59 +0000
To: Frediano Ziglio <frediano.ziglio@cloud.com>
From: dmkhn@proton.me
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: Console vs serial
Message-ID: <aI0MUW9xzGZAU3P7@kraken>
In-Reply-To: <CACHz=ZhOnnCAZ9W=j0fTWnpy7BzqjZF7B-X0sxLagKa-7q1ZiQ@mail.gmail.com>
References: <e742cee1-450d-4df0-a3a6-af635a940472@citrix.com> <CACHz=ZhOnnCAZ9W=j0fTWnpy7BzqjZF7B-X0sxLagKa-7q1ZiQ@mail.gmail.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: d8d11fae8628742bb4eb795e17aac2deb94f8a3a
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Fri, Aug 01, 2025 at 12:44:57PM +0100, Frediano Ziglio wrote:
> On Fri, Aug 1, 2025 at 12:25=E2=80=AFPM Andrew Cooper <andrew.cooper3@cit=
rix.com> wrote:
> >
> > Hello,
> >
> > There's a long-standing irritation in Xen, whereby printk()'s which
> > occur prior to console_init_preirq() get half-lost.
> >
> > They end up in the console ring, and hence are available via `xl dmesg`=
,
> > but they're missing from serial console.
> >
> > e.g. these 4 lines don't escape
> >
> >     (XEN) Enabling lockdown mode because Secure Boot is enabled
> >     (XEN) Lockdown mode is enabled
> >     (XEN) Ignoring cmdline option 'hap_2mb' in lockdown mode
> >     (XEN) Ignoring cmdline option 'hap_1gb' in lockdown mode
> >      __  __            _  _    _  ___   ____
> >      \ \/ /___ _ __   | || |  / |/ _ \ |___ \
> >
> >
> > This is from a testcase failure I've just debugged, but the issue is no=
t
> > specific to secureboot.  More generally, any diagnostic from cmdline
> > parsing ends up in this state.
> >
> > For PVShim, we did a gross hack to assume the PV console is usable righ=
t
> > from the outset, but all other console configurations don't start
> > working until the cmdline has been parsed.
> >
> > Is anything stopping us from feeding the current contents of the consol=
e
> > ring into serial in console_init_preirq()?
> >
> > ~Andrew
> >
>=20
> I don't think there's a problem replaying the console logs into the
> serial once the serial is set up.
> It will slow down the boot maybe but beside that it should be fine.

Replaying console logs into the serial is already a case on staging branch:
console_init_preirq() calls conring_flush(..), which will replay everything
from conring into all available console devices.

--
Denis

>=20
> Frediano
>=20



From xen-devel-bounces@lists.xenproject.org Fri Aug 01 18:58:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Aug 2025 18:58:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1067483.1432195 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhuxr-0000Fv-TC; Fri, 01 Aug 2025 18:58:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1067483.1432195; Fri, 01 Aug 2025 18:58:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhuxr-0000Fo-QV; Fri, 01 Aug 2025 18:58:47 +0000
Received: by outflank-mailman (input) for mailman id 1067483;
 Fri, 01 Aug 2025 18:58:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=GtvS=2N=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1uhuxr-0000Fi-Bp
 for xen-devel@lists.xenproject.org; Fri, 01 Aug 2025 18:58:47 +0000
Received: from mail-10630.protonmail.ch (mail-10630.protonmail.ch
 [79.135.106.30]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8c776738-6f09-11f0-b897-0df219b8e170;
 Fri, 01 Aug 2025 20:58:45 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8c776738-6f09-11f0-b897-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1754074724; x=1754333924;
	bh=hF3fXRRemikXKpysMLkzFHck5hyY9cjkXpdyVpV7cYI=;
	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=hj6rLPnsHphwTNFp5Dv9JNEdAZ+Dde8RuHn4Mvi5T2SJonLdWGj+pBkZzJk1+mmeY
	 4J3qL80DIqEXEmALoRyvuVGmh9ESEywJFrTBstKF4r1vg3RuUvP8YsIL2PP1Zy9r8x
	 kWMn8zkCK68UjvDhuYCgxCVZmNPU8GJZF6MwbWYhxEumA8SHtSVLvrlTere0nAL6Aw
	 06q21q3150bziToFsY4iTgyFwk5yZIRFAuw3hQsv2Re9CqVTn2WU6Vk97A4UzOdt8u
	 EEC2+J/V+znX48fs+MUkN/bx1iUjlJdxBIxmOZeAS6ySb8G8S0/qJ93ulniNTsjL0t
	 d9AzdV+TbPKMA==
Date: Fri, 01 Aug 2025 18:58:39 +0000
To: Jan Beulich <jbeulich@suse.com>
From: dmkhn@proton.me
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, =?utf-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH] console: make printk_ratelimit_{burst,ms} const
Message-ID: <aI0OWwWkr0wg6FKw@kraken>
In-Reply-To: <5fcd1c68-6c18-4a1d-8a1d-f056bdb6cde9@suse.com>
References: <5fcd1c68-6c18-4a1d-8a1d-f056bdb6cde9@suse.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: ea52ee6d97e7d2fb159eae61bf75f796d4b8517f
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Fri, Aug 01, 2025 at 09:30:34AM +0200, Jan Beulich wrote:
> Them not being altered by any means, their __read_mostly attribute is
> actually counter-productive: It causes the compiler to instantiate the
> variables, when already with just the attributes dropped the compiler
> can constant-propagate the values into the sole use site. Make the
> situation yet more explicit by adding const.
>=20
> Also switch the variables away from being plain int, and have the
> parameters of __printk_ratelimit() follow suit. While there also
> similarly adjust the type of "missed" and "lost", and - while touching
> the adjacent line - increase lost_str[] to accommodate any unsigned
> 32-bit number.
>=20
> Fixes: a8b1845a7845 ("Miscellaneous data placement adjustments")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> In principle {__,}printk_ratelimit() may also want to have their return
> type changed to bool, but I think doing so would go too far here: This
> would have knock-on effects elsewhere, and it would want considering to
> actually flip polarity.
>=20
> Despite the Fixes: tag I wouldn't consider this for backport.
>=20
> --- a/xen/drivers/char/console.c
> +++ b/xen/drivers/char/console.c
> @@ -1268,12 +1268,12 @@ void console_end_sync(void)
>   * This enforces a rate limit: not more than one kernel message
>   * every printk_ratelimit_ms (millisecs).
>   */
> -int __printk_ratelimit(int ratelimit_ms, int ratelimit_burst)
> +int __printk_ratelimit(unsigned int ratelimit_ms, unsigned int ratelimit=
_burst)
>  {
>      static DEFINE_SPINLOCK(ratelimit_lock);
>      static unsigned long toks =3D 10 * 5 * 1000;
>      static unsigned long last_msg;
> -    static int missed;
> +    static unsigned int missed;
>      unsigned long flags;
>      unsigned long long now =3D NOW(); /* ns */
>      unsigned long ms;
> @@ -1288,14 +1288,16 @@ int __printk_ratelimit(int ratelimit_ms,
>          toks =3D ratelimit_burst * ratelimit_ms;
>      if ( toks >=3D ratelimit_ms )
>      {
> -        int lost =3D missed;
> +        unsigned int lost =3D missed;
> +
>          missed =3D 0;
>          toks -=3D ratelimit_ms;
>          spin_unlock(&ratelimit_lock);
>          if ( lost )
>          {
> -            char lost_str[8];
> -            snprintf(lost_str, sizeof(lost_str), "%d", lost);
> +            char lost_str[10];
> +
> +            snprintf(lost_str, sizeof(lost_str), "%u", lost);

Since this code is touched, I would also simplify the entire `if ( lost )`
block (I have it done in another experiment):
=20
            char lost_str[64];
            size_t lost_len =3D snprintf(lost_str, sizeof(lost_str),
                                       "printk: %d messages suppressed.\n",
                                       lost_str);

            /* console_lock may already be acquired by printk(). */
            rspin_lock(&console_lock);
            printk_start_of_line(CONSOLE_PREFIX, cflags);
            __putstr(lost_str, lost_len);
            ...

What do you think?

--
Denis



From xen-devel-bounces@lists.xenproject.org Fri Aug 01 19:05:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Aug 2025 19:05:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1067491.1432206 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhv49-0001vD-IU; Fri, 01 Aug 2025 19:05:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1067491.1432206; Fri, 01 Aug 2025 19:05: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 1uhv49-0001v6-FV; Fri, 01 Aug 2025 19:05:17 +0000
Received: by outflank-mailman (input) for mailman id 1067491;
 Fri, 01 Aug 2025 19:05:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=GtvS=2N=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1uhv48-0001ux-9a
 for xen-devel@lists.xenproject.org; Fri, 01 Aug 2025 19:05:16 +0000
Received: from mail-10628.protonmail.ch (mail-10628.protonmail.ch
 [79.135.106.28]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 744a9bc4-6f0a-11f0-b897-0df219b8e170;
 Fri, 01 Aug 2025 21:05:14 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 744a9bc4-6f0a-11f0-b897-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1754075112; x=1754334312;
	bh=oLeSik1vUwLPTmknUiN5N0jEWWDWQv90PmqFTYaDqLQ=;
	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=k9YalSSQLYPzlPZusKOlu4ZrDR24sEyKTBhem6SEkNAW1313b9NkepOG/Nodz/hDK
	 KU7SsoKvj+RlHWQGWPgmSp2OTZUe9wPzra1p3ChB06/Cu6gdgCOBXkWwl5MVH3qoEN
	 tbk7wbB0uCGMrfEzXIjOpj4a0YSwJJZWtReSqhh3ZDgVLK7rmrPbpOap655tcMK/FI
	 SKsrH4C9OcPuW5nptsewX8qyYjCI8AQn+EjiXLc9hYGwQq1K+MZGLUDs247CYBOPHb
	 oGxCr+pQWZO64pv7muRmY4fB4GOFlEwWYwbN7V3BuOwEoodyQdzdaPlMZLEJZL1Cs3
	 MxXpVssTuSVgA==
Date: Fri, 01 Aug 2025 19:05:06 +0000
To: Grygorii Strashko <grygorii_strashko@epam.com>
From: dmkhn@proton.me
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 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>
Subject: Re: [XEN][PATCH] xen/dom0less: arm: fix hwdom 1:1 low memory allocation
Message-ID: <aI0P3dT6Lz/WNU4B@kraken>
In-Reply-To: <20250801155429.1402395-1-grygorii_strashko@epam.com>
References: <20250801155429.1402395-1-grygorii_strashko@epam.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 81cd4bc29104ca0f73b7d5332f5b502769dad235
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Fri, Aug 01, 2025 at 03:54:30PM +0000, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
>=20
> Call stack for dom0less hwdom case (1:1) memory:
> create_domUs
> |-construct_domU
>   |-construct_hwdom()
>     |-allocate_memory_11()
>=20
> And allocate_memory_11() uses "dom0_mem" as:
> min_low_order =3D
>   get_order_from_bytes(min_t(paddr_t, dom0_mem, MB(128)));
>=20
> In case of dom0less boot the "dom0_mem" is not used and defaulted to 0,
> which causes min_low_order to get high value > order and so no allocation=
s
> happens from low memory.
>=20
> Fix it, by using kinfo->unassigned_mem instead of "dom0_mem" has correct
> memory size in both cases: regular dom0 boot and dom0less boot.
>=20
> Fixes: 43afe6f030244 ("xen/common: dom0less: introduce common dom0less-bu=
ild.c")
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>

Reviewed-by: Denis Mukhin <dmukhin@ford.com>=20

> ---
>  xen/arch/arm/domain_build.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>=20
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index 801a09071a50..0a555d1ae0e5 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -278,7 +278,7 @@ static void __init allocate_memory_11(struct domain *=
d,
>                                        struct kernel_info *kinfo)
>  {
>      const unsigned int min_low_order =3D
> -        get_order_from_bytes(min_t(paddr_t, dom0_mem, MB(128)));
> +        get_order_from_bytes(min_t(paddr_t, kinfo->unassigned_mem, MB(12=
8)));
>      const unsigned int min_order =3D get_order_from_bytes(MB(4));
>      struct membanks *mem =3D kernel_info_get_mem(kinfo);
>      struct page_info *pg;
> --
> 2.34.1
>=20



From xen-devel-bounces@lists.xenproject.org Fri Aug 01 19:08:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Aug 2025 19:08:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1067497.1432216 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhv77-0002SM-Uw; Fri, 01 Aug 2025 19:08:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1067497.1432216; Fri, 01 Aug 2025 19:08: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 1uhv77-0002SF-S9; Fri, 01 Aug 2025 19:08:21 +0000
Received: by outflank-mailman (input) for mailman id 1067497;
 Fri, 01 Aug 2025 19:08:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=GtvS=2N=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1uhv76-0002S9-Em
 for xen-devel@lists.xenproject.org; Fri, 01 Aug 2025 19:08:20 +0000
Received: from mail-10629.protonmail.ch (mail-10629.protonmail.ch
 [79.135.106.29]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e253e0d0-6f0a-11f0-b897-0df219b8e170;
 Fri, 01 Aug 2025 21:08:18 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e253e0d0-6f0a-11f0-b897-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1754075297; x=1754334497;
	bh=O/9rQTItbmmPiut5omOiVaAe3GzkJF9rX6QV5aKd9TE=;
	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=JGeqDrZLNDKJxA7pVAJtE45wMS2WVXzob7DG7KM+WyP7L+ZOr8akvWm4w0EtxF0K4
	 MXKGGFOlpucoEm575UECc49b8Av3rGKQpoochzXeBnFAiuoZgbWAdddXZEQWOeFmFA
	 6crRlF1e80l8fiGFShnVk7EPPGJ9qxuUfJjDU5eRDmM08xm6UB2H19Ad3axN0ftl43
	 WLcy8krTtMSGssTRrvSnxn3iieKl0DZWirM1Z9hzRdj79drTAH9HRUVWCK8Xa5U9fh
	 VH2Xdop086hHUR3g8UG8K2EoMd+cztN92t9EHi6RiuyuwyZaiojpPmVtQaC2iSVpD3
	 vWhP7e2RURXdA==
Date: Fri, 01 Aug 2025 19:08:12 +0000
To: Grygorii Strashko <grygorii_strashko@epam.com>
From: dmkhn@proton.me
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>, Shawn Anastasio <sanastasio@raptorengineering.com>, Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.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>
Subject: Re: [XEN][PATCH 0/3] xen/arch: irq: drop unreachable pirq callbacks
Message-ID: <aI0QkuCAVYSUkFjN@kraken>
In-Reply-To: <20250801100852.1260544-1-grygorii_strashko@epam.com>
References: <20250801100852.1260544-1-grygorii_strashko@epam.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 66f93876a661dea359311dd98a898789654bbe5a
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Fri, Aug 01, 2025 at 10:08:54AM +0000, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
>=20
> Hence prerequisite patch was merged [1] arch specific pIRQ callback can n=
ow
> be dropped for arches without pIRQ support as those callback become unrea=
chable.
>=20
> [1] commit 341f271cf86f ("xen/evtchn: fully restrict concept of pIRQ for =
arches with pIRQ support only")
>=20
> Grygorii Strashko (3):
>   xen/arm: irq: drop unreachable pirq callbacks
>   xen/ppc: irq: drop unreachable pirq callbacks
>   xen/riscv: irq: drop unreachable pirq callbacks

Please consider

Reviewed-by: Denis Mukhin <dmukhin@ford.com>=20

for the series with or without further corrections for commit messages
(there was a separate request).

>=20
>  xen/arch/arm/irq.c     | 29 -----------------------------
>  xen/arch/ppc/stubs.c   | 20 --------------------
>  xen/arch/riscv/stubs.c | 20 --------------------
>  3 files changed, 69 deletions(-)
>=20
> --
> 2.34.1
>=20



From xen-devel-bounces@lists.xenproject.org Fri Aug 01 19:30:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Aug 2025 19:30:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1067505.1432226 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhvSj-0006JO-KV; Fri, 01 Aug 2025 19:30:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1067505.1432226; Fri, 01 Aug 2025 19:30: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 1uhvSj-0006JH-Gm; Fri, 01 Aug 2025 19:30:41 +0000
Received: by outflank-mailman (input) for mailman id 1067505;
 Fri, 01 Aug 2025 19:30:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=GtvS=2N=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1uhvSg-0006J0-Vh
 for xen-devel@lists.xenproject.org; Fri, 01 Aug 2025 19:30:39 +0000
Received: from mail-10628.protonmail.ch (mail-10628.protonmail.ch
 [79.135.106.28]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ff5f2a9c-6f0d-11f0-b897-0df219b8e170;
 Fri, 01 Aug 2025 21:30:36 +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>
X-Inumbo-ID: ff5f2a9c-6f0d-11f0-b897-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1754076634; x=1754335834;
	bh=BXrfkVJajnM8+5TEJnfsv1KbBVPEsL6OqjTqeJBMUWs=;
	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=Li3PQW1F/zQNKtNNMiAYQjnqJM6NNlPTgPIIEdvdbm+ukl0jyZVPLfR5o2AMZiifY
	 xXtPfIcbhZxrEqRV8PzHnczF19GnrvHsk4xj9t7Cm4R37ZiAASq0nbMFsXBVKw7r1y
	 6opGFcZ1KTx7rfFQUnSvpaiU5NXrcFEa7V9RI7GyqXObs6aPrZEb4F8lgeCxUjWkK0
	 7DwbZa44ZXN7PjKChbhq+HVy4GlTT4rtzCCSIO+N5wNIL7fQAjaSl8LMOt8mwC3Iw1
	 YAoM4ub+HtkeMJwbHE71iuwrem2KqC1iNTOVRlSpT+tnntkAZyqlHA6TC6dw/4BQsL
	 5x68VK1MA1BCA==
Date: Fri, 01 Aug 2025 19:30:30 +0000
To: Jan Beulich <jbeulich@suse.com>
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org, michal.orzel@amd.com, oleksii.kurochko@gmail.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 12/16] xen/domain: introduce domain-emu.h
Message-ID: <aI0V0v0yltODw5bs@kraken>
In-Reply-To: <65e288b7-d8fe-409e-a287-69b4dc29f0c2@suse.com>
References: <20250624035443.344099-1-dmukhin@ford.com> <20250624035443.344099-13-dmukhin@ford.com> <33f98fe5-9b29-43e4-a87d-19eafb30f281@suse.com> <aIvYSn2ZwyWTwIzm@kraken> <65e288b7-d8fe-409e-a287-69b4dc29f0c2@suse.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: e4490218c319029c70d51aa0e441fc0694d22c6b
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Fri, Aug 01, 2025 at 08:02:56AM +0200, Jan Beulich wrote:
> On 31.07.2025 22:55, dmkhn@proton.me wrote:
> > On Wed, Jul 09, 2025 at 04:57:44PM +0200, Jan Beulich wrote:
> >> On 24.06.2025 05:56, dmkhn@proton.me wrote:
> >>> @@ -458,16 +459,16 @@ struct arch_domain
> >>>  } __cacheline_aligned;
> >>>
> >>>  #ifdef CONFIG_HVM
> >>> -#define X86_EMU_LAPIC    XEN_X86_EMU_LAPIC
> >>> -#define X86_EMU_HPET     XEN_X86_EMU_HPET
> >>> -#define X86_EMU_PM       XEN_X86_EMU_PM
> >>> -#define X86_EMU_RTC      XEN_X86_EMU_RTC
> >>> -#define X86_EMU_IOAPIC   XEN_X86_EMU_IOAPIC
> >>> -#define X86_EMU_PIC      XEN_X86_EMU_PIC
> >>> -#define X86_EMU_VGA      XEN_X86_EMU_VGA
> >>> -#define X86_EMU_IOMMU    XEN_X86_EMU_IOMMU
> >>> -#define X86_EMU_USE_PIRQ XEN_X86_EMU_USE_PIRQ
> >>> -#define X86_EMU_VPCI     XEN_X86_EMU_VPCI
> >>
> >> The old code deliberately used values from the public interface.
> >
> > In next version I am building, I moved all of XEN_X86_EMU_XXX definitio=
ns as
> > is to a new public header under include/public/xen-emu.h:
> >
> >   https://gitlab.com/xen-project/people/dmukhin/xen/-/commit/9b0bc5ffa5=
710114df8523ae2aa7680b7c6f0942
> >
> > That looks less invasive.
> >
> > Will that work?
> >
> > There should be a common header with emulation flags somewhere, since
> > there will be SBSA and hwdom vUART definitions there.
>=20
> Yet will there be a strict need for any constants to be identical (i.e.
> not only have the same name, but also the same value) across architecture=
s?

I don't think there's strict need for identical values across achitectures.
But some of the constants _may_ be reused for non-x86 arches, like VPCI bit
and, perhaps, IOMMU, PIRQ and future NS16550 (after adding MMIO).



From xen-devel-bounces@lists.xenproject.org Fri Aug 01 20:24:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Aug 2025 20:24:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1067537.1432236 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhwIt-0004Mx-Dn; Fri, 01 Aug 2025 20:24:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1067537.1432236; Fri, 01 Aug 2025 20:24:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhwIt-0004Mq-AS; Fri, 01 Aug 2025 20:24:35 +0000
Received: by outflank-mailman (input) for mailman id 1067537;
 Fri, 01 Aug 2025 20:24:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=maRn=2N=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1uhwIr-0004Mk-NT
 for xen-devel@lists.xenproject.org; Fri, 01 Aug 2025 20:24:33 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on2061f.outbound.protection.outlook.com
 [2a01:111:f403:2418::61f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8586a991-6f15-11f0-b897-0df219b8e170;
 Fri, 01 Aug 2025 22:24:28 +0200 (CEST)
Received: from BL1P222CA0018.NAMP222.PROD.OUTLOOK.COM (2603:10b6:208:2c7::23)
 by CY8PR12MB8362.namprd12.prod.outlook.com (2603:10b6:930:7e::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.11; Fri, 1 Aug
 2025 20:24:23 +0000
Received: from BN1PEPF00004685.namprd03.prod.outlook.com
 (2603:10b6:208:2c7:cafe::9a) by BL1P222CA0018.outlook.office365.com
 (2603:10b6:208:2c7::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.14 via Frontend Transport; Fri,
 1 Aug 2025 20:24:22 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BN1PEPF00004685.mail.protection.outlook.com (10.167.243.86) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Fri, 1 Aug 2025 20:24:22 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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; Fri, 1 Aug
 2025 15:24:20 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Fri, 1 Aug
 2025 15:24:20 -0500
Received: from ubuntu.mshome.net (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Fri, 1 Aug 2025 15:24: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>
X-Inumbo-ID: 8586a991-6f15-11f0-b897-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=vG0Ps1IRCqOZ1Hp4ytJx0np1v4O8IXHTR5yfEIftIGcHO4Lio3Za1Rb/B4UoP07fUoyX4XRe/dT7Fau59RLctAE/pAvMQYwR50mODVr46UCV4sB4UW42DMnpEzYVW4inQxmZg9bzPISy+ttYs5WhhX6OR2Ph+GhHwe4MVZKLUllJOTyHYcSFGInp24hEIciTi6kH1doTxWPgkMfE06ogy04nkfEHA4ygua1nG11hcviCw9wxsaz3eMsp8fJM0/NK1ZlE57aaDCfI1XfRqxJRACJu1kzMcu8Mi65W3sUW0mE9vkKccoas90hfYm1BuOKdsyltT+whyQ0K2BH46LdQ6w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=nuuNhzl+CLRgolTrlm0kKbEa3pU9+4fwb6K6xxKAvbo=;
 b=MFvpX9Qqa2n5udP2/WW7Ioc35EgpmJpUN2ktCbHulmh2iZ5Jc6lDVjN55pb/2AbUmlzf0xZ+vC2ujcXypG1jCmqBzdBzvP0MBqZOL9yYuXnffGDsbTEaGc/eOwsb0w+X0UUfOFpQgR5CXK3eBt7ANcHUQyK3/HoaB4sQi21AIRWzLDGzJdNaBYLjEVngdCZoj5gAytRM9NlVSyux9/BaMWGlxLhcWGW/yokwk6fUWrLBS8j7/MJPfItOoARv9BbhsaKZxyYLnj3chYkR6sPKUTa0rvmG2gcoXXUUt0HGXapRiiGfiztqG30vW+d6d1Mh1FOxLCSzPvKUGJRQCDeVuw==
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=nuuNhzl+CLRgolTrlm0kKbEa3pU9+4fwb6K6xxKAvbo=;
 b=k2bhBdIL6cire2Ers4IIgdJOQzwzmj8ehEgQkqu0EQSLJtSH3Kwv8TrrakK9gqZr87HUsa8T5W7MNelphpGYTlI4qbHcn7rdk1TlzcBCAiq3zClowi9nd6HoOtr7mbhacd0uMRFDwytHy8LjbTUvU2/O6r1Y8smCKg74DnIjr2s=
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=SATLEXMB03.amd.com; pr=C
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, "Dario
 Faggioli" <dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>, "George
 Dunlap" <gwd@xenproject.org>
Subject: [PATCH v2] xen: rework error handling in vcpu_create
Date: Fri, 1 Aug 2025 16:24:16 -0400
Message-ID: <20250801202418.38977-1-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.50.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB05.amd.com: stewart.hildebrand@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN1PEPF00004685:EE_|CY8PR12MB8362:EE_
X-MS-Office365-Filtering-Correlation-Id: 58a08fdf-99db-4fa3-35c7-08ddd139669f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|7416014|376014|36860700013|82310400026|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?+FCbhjffFNRkxTYAbFN5M0zZYd0VxapA6Ac8uei/n5+v8NBEIH1EjJhptaIz?=
 =?us-ascii?Q?xDztuFOTrQ0rZH3FeigTuaVtKhGz5TzZdIoO1iWF85nf6sOSCowMvoDjVVjU?=
 =?us-ascii?Q?qKkNT3sA01GoN2/o4QS0kma6M6prL3tZ78BmiEeef9HtnLXdMQc/+zSvdcx8?=
 =?us-ascii?Q?vkZqMbL9W6XLHl+r+gLB4RNkDxNbxErtxQDq8c8vJmTOYCHBb9EttOLo9nAR?=
 =?us-ascii?Q?ATEt15U23k6/X8ZjBkWkVDewb8i8izBSKUFoxKyWGLVxTR86001E6SyoS/t5?=
 =?us-ascii?Q?RluHMaZ4SGKiO3Zj3G97fmO81XnP4PSXVP1P/SZd0D2iFgZfkvdwWq88gc0w?=
 =?us-ascii?Q?nCNZBHoJ8LYjIMQOi8fDR5VWcm6oWpfqHHgJWCSyp60o672qHBMh+N2GH5uh?=
 =?us-ascii?Q?e3F2d85IAQfZztImJMTBX9RjcecC2JkU2YDOq4gqiT32e8deR+BpGMuiqGH3?=
 =?us-ascii?Q?U9OK0tHxb4kRuGhkk2hf2O2hcQjZ9WuDqdjiBFQK24kfQHuB58Hl4hC0PhHh?=
 =?us-ascii?Q?jjKKUP/SzRGKo+oBXzg7zGXlBvB/VwStWhDWNCVvuxlY8Z25ZCoQ+IZIq16y?=
 =?us-ascii?Q?zw+t/sqYlEgftPje3dyiFDxFK1ksXJFVSwBX5lB3P2OpoBhzgLivm99JLk6r?=
 =?us-ascii?Q?Wls1E12dovw8Ho6dcrisWpWZwFWdTzd06lots8MrFYpkW7iGZAq1RR5y4m6e?=
 =?us-ascii?Q?wzsF9/oDAmS9hLr2zC32jq1nuuVA9MYP7LwJsvuUZkyNMWQFjILgqIBMx/Rf?=
 =?us-ascii?Q?6NInpjQCWG6NwniqjH2zBfLY1YeLd3DCTe9+yos6Zp2NpB6pEw/5CX+SfsUn?=
 =?us-ascii?Q?BblFGj/+gnl73PGLjRE+v6sLqbBAQU+9IFZuCdLSpyJVRIVzKtnUQJG+5XE8?=
 =?us-ascii?Q?7D3yPGfQihhMHFWeKf03jN1BldS0VbCLHg0PJQvlujUXCm9Ewu7EzXCMOjad?=
 =?us-ascii?Q?T0yoCgiuHv6vemhsgPfxTHhfNronJKLG3XP/27A9zm7Rn/YczRKOVzERhZue?=
 =?us-ascii?Q?DvJmHvSmPglTNwhFa/SDEYTk90GgzQM5RacOprxv7TysbIWPfX1NVLG7ljmh?=
 =?us-ascii?Q?8EhNpYAzmejjSO8p1ZM2fBlKI0S+x17mKf11z4mbXol2xA/ooTiFnNpPW4Sk?=
 =?us-ascii?Q?jWiDif5DIR3RfqYHMrih9E+IDtQTcXwG7YnHFmfbvUjkJT1F6dd78Y7ZtRm3?=
 =?us-ascii?Q?u9aeykCXBo5M8tXpTDODP8ZmWFxq9enXAJUHHPKqih+HjABjNqCegSJ/A/i1?=
 =?us-ascii?Q?KLLBJ+hThi7u7GnWdlzigvB+wCI9O2B0fSyXmarQ1cbs2v+eUZ+hj/uzjsf3?=
 =?us-ascii?Q?8VDYoFFLQzqr0wL6KrMEFnzBMO6shKbpbqaCkApoTL8vCjra5ybBtJq13JRB?=
 =?us-ascii?Q?5mr1KyB/bQtnZGE/KrJrMTNIn+WwHpj/xJCfElTez4CfWX/fQsQRvtyBMkEQ?=
 =?us-ascii?Q?MXPubzsl290lNPiiz0lch5Wf9lB6J5XjE6CzjRXq5cFzLKzQ7xvgfOzNC37w?=
 =?us-ascii?Q?NMNgeAFbxmXvLBScrEogB/N49Zw8Dd2w4LeR?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(7416014)(376014)(36860700013)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Aug 2025 20:24:22.1103
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 58a08fdf-99db-4fa3-35c7-08ddd139669f
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF00004685.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB8362

In vcpu_create after scheduler data is allocated, if
vmtrace_alloc_buffer fails, it will jump to the wrong cleanup label
resulting in a memory leak.

Move sched_destroy_vcpu and destroy_waitqueue_vcpu to vcpu_teardown.
Make vcpu_teardown idempotent: deal with NULL unit.

Fix vcpu_runstate_get (called during XEN_SYSCTL_getdomaininfolist post
vcpu_teardown) when v->sched_unit is NULL.

Fixes: 217dd79ee292 ("xen/domain: Add vmtrace_size domain creation parameter")
Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
---
v1->v2:
* move cleanup functions to vcpu_teardown
* renamed, was ("xen: fix memory leak on error in vcpu_create")
---
 xen/common/domain.c     | 14 ++++++--------
 xen/common/sched/core.c |  5 ++++-
 2 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/xen/common/domain.c b/xen/common/domain.c
index 5241a1629eeb..9c65c2974ea3 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -388,6 +388,8 @@ static int vmtrace_alloc_buffer(struct vcpu *v)
 static int vcpu_teardown(struct vcpu *v)
 {
     vmtrace_free_buffer(v);
+    sched_destroy_vcpu(v);
+    destroy_waitqueue_vcpu(v);
 
     return 0;
 }
@@ -448,13 +450,13 @@ struct vcpu *vcpu_create(struct domain *d, unsigned int vcpu_id)
     }
 
     if ( sched_init_vcpu(v) != 0 )
-        goto fail_wq;
+        goto fail;
 
     if ( vmtrace_alloc_buffer(v) != 0 )
-        goto fail_wq;
+        goto fail;
 
     if ( arch_vcpu_create(v) != 0 )
-        goto fail_sched;
+        goto fail;
 
     d->vcpu[vcpu_id] = v;
     if ( vcpu_id != 0 )
@@ -472,11 +474,7 @@ struct vcpu *vcpu_create(struct domain *d, unsigned int vcpu_id)
 
     return v;
 
- fail_sched:
-    sched_destroy_vcpu(v);
- fail_wq:
-    destroy_waitqueue_vcpu(v);
-
+ fail:
     /* Must not hit a continuation in this context. */
     if ( vcpu_teardown(v) )
         ASSERT_UNREACHABLE();
diff --git a/xen/common/sched/core.c b/xen/common/sched/core.c
index 2ab4313517c3..fb7c99b05360 100644
--- a/xen/common/sched/core.c
+++ b/xen/common/sched/core.c
@@ -321,7 +321,7 @@ void vcpu_runstate_get(const struct vcpu *v,
      */
     unit = is_idle_vcpu(v) ? get_sched_res(v->processor)->sched_unit_idle
                            : v->sched_unit;
-    lock = likely(v == current) ? NULL : unit_schedule_lock_irq(unit);
+    lock = likely(v == current || !unit) ? NULL : unit_schedule_lock_irq(unit);
     memcpy(runstate, &v->runstate, sizeof(*runstate));
     delta = NOW() - runstate->state_entry_time;
     if ( delta > 0 )
@@ -839,6 +839,9 @@ void sched_destroy_vcpu(struct vcpu *v)
 {
     struct sched_unit *unit = v->sched_unit;
 
+    if ( !unit )
+        return;
+
     kill_timer(&v->periodic_timer);
     kill_timer(&v->singleshot_timer);
     kill_timer(&v->poll_timer);

base-commit: f6c990ac3cddc2d1965a7ab09324d821b05e4b6c
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 01 21:06:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 01 Aug 2025 21:06:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1067586.1432246 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uhwxf-00013d-Km; Fri, 01 Aug 2025 21:06:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1067586.1432246; Fri, 01 Aug 2025 21:06: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 1uhwxf-00013W-Hj; Fri, 01 Aug 2025 21:06:43 +0000
Received: by outflank-mailman (input) for mailman id 1067586;
 Fri, 01 Aug 2025 21:06:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=maRn=2N=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1uhwxe-00013Q-VV
 for xen-devel@lists.xenproject.org; Fri, 01 Aug 2025 21:06:43 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on2061f.outbound.protection.outlook.com
 [2a01:111:f403:2406::61f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6a59e824-6f1b-11f0-a320-13f23c93f187;
 Fri, 01 Aug 2025 23:06:39 +0200 (CEST)
Received: from DM6PR01CA0020.prod.exchangelabs.com (2603:10b6:5:296::25) by
 BL4PR12MB9533.namprd12.prod.outlook.com (2603:10b6:208:58f::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.14; Fri, 1 Aug
 2025 21:06:33 +0000
Received: from DS2PEPF0000343D.namprd02.prod.outlook.com
 (2603:10b6:5:296:cafe::de) by DM6PR01CA0020.outlook.office365.com
 (2603:10b6:5:296::25) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.17 via Frontend Transport; Fri,
 1 Aug 2025 21:06:10 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 DS2PEPF0000343D.mail.protection.outlook.com (10.167.18.40) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Fri, 1 Aug 2025 21:06:32 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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; Fri, 1 Aug
 2025 16:06:32 -0500
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Fri, 1 Aug
 2025 16:06:32 -0500
Received: from [172.17.155.73] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Fri, 1 Aug 2025 16:06:31 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6a59e824-6f1b-11f0-a320-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=RYIzoWFm4Oc46Qse/ZCf9gziEP147iiVMz9Y+XXbQX4mZd8yFXrtfs7+zjZZ0XYNiw18mcFRUqdSDGfj424aW1506NXottRfRA0bm6+8Ola1GyNifoMUSakGYLfx+ZuZJ/Co3Ckmvb0TOFaaLZ2sRIPu7LVdF1MeqK0//6nw2JDunBkqLp+Hasgcx3vyekuIualhsnX9f2tzmnhvsulLu7l+4uX63R3y71og1TxavpyrwvxfUS/2TJiorGR/zIBzyE5odcPqgvM+aMGkn0eCV8VqEv9vcCCcSUmjb44+ya9gQdMqmaiwlc5Vl2HiVOEx8g/Myy6zVzsTCWv2hcc4UQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=F8t24WWrL1IVFSvnBebqfO7cUxnvvM/ynMjtQbQUX8s=;
 b=izLN9pSIvOWLQQ4M/erbmhY7JKvgv41SEFi47yuwjfO3y4oGHKDJc1TW4UXokQ1Hssd6VQjZGBP6psWaDLEMW2IA1idjzaZkfgIzboNXfJnASlwcp3IfSQplEkUBiRi67Rq1a2f1tAmnULsTdq5d1HkoqvLRHCquDlz5c9zl+up2TOVxuYaoC6WraCChI2BxHvufCO+fDlhIRTmMH6cQgKjIoKCyd6jyS6XBWYMv1kxfQ5TGUSCSok2y2E5UTb3oakSa5uvj4IIrV0O2NJRBtOPca+ZvkcwqOxqfDr/vCEf2cal65WGa1Q/StzwYl2IejtkUGj92FsUoybdg0cxXWA==
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=F8t24WWrL1IVFSvnBebqfO7cUxnvvM/ynMjtQbQUX8s=;
 b=jvMZZcS6mhQN79cQvn4+W+3UNAhyU9N62fKpWby5x3bzlhXf5jtj6UfS7meuz5My6mHFSP25Nyw2uDncr8Qvt+JIACb46jeWklvosD3kH42Uh3yKt3K5q5f1MlvpL02lo98NiVbnHA2REPio+IwCLVpCQri3KwOY17qaQGirQj8=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <6d5545a2-bbf0-4cf9-9820-5eaf6d8530f8@amd.com>
Date: Fri, 1 Aug 2025 17:06:32 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/3] vpci: allow queueing of mapping operations
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>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
References: <20250723163744.13095-1-stewart.hildebrand@amd.com>
 <20250723163744.13095-2-stewart.hildebrand@amd.com>
 <aIJi8E2BC-dzAIz8@macbook.local> <aIM5IR-d4_u19JVe@macbook.local>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <aIM5IR-d4_u19JVe@macbook.local>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB05.amd.com: stewart.hildebrand@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS2PEPF0000343D:EE_|BL4PR12MB9533:EE_
X-MS-Office365-Filtering-Correlation-Id: df187537-9d65-45ac-726d-08ddd13f4b1d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?UjVDSDQwNFo0dGNzYWpCWHhhSmoyZGtydGV3ZTdnRlc5STJvWmlqenJiNXNk?=
 =?utf-8?B?TlVFbnljS2xOdDI5d2hLUDVUbk9nT1cxKzZTdHAvZmlPWC9OT2hmMVVkMVBF?=
 =?utf-8?B?dk1IWGVzQTVFb2pPYlhsTm9YZmZzZ3VDbHU0aUFxUW9paGh3czh5MGVkNzRo?=
 =?utf-8?B?R042cTArcmJDL2ovU29uVHBaelJMOHVSdVF2em9QTlY1NVA4WVFLdTJRT2pD?=
 =?utf-8?B?ZVRKVTU5dDJwY0JjalhzK3FTZkJ5R05MYXcyWjBQaG52cFRlRloycjBGMWpo?=
 =?utf-8?B?dEcxQnhmNTBKRXlLSCsvZlhuRVN0TGN2R29YaDlvUElHaURIR2duYi9zdmts?=
 =?utf-8?B?aVRwTndGQ1NPUlQ3enE4Q0pUbENiSGt5YzlUVDJ1cDlWR1NtdDl5NmlUTFNQ?=
 =?utf-8?B?OWpBdDEyUGdGd3JPWTIyV0RnUHNCL2RMcytiL2NsRW5LVFN4dlliYjFYRDRr?=
 =?utf-8?B?Qis1cTBBUThZL2YzbVR4ZlB0NkpRUVlZUjFQdGd3SzR1a2tFNGdzeFVoWWxz?=
 =?utf-8?B?UE9LZkZKSUoweFY2ZTlIWDBLLytDRmZkcVduTm1oZjJlaXdwdzFYa0s0RENa?=
 =?utf-8?B?TDNyRmN0c1JzTWcrUmFGU1NUSUtyTXlWV0tLdFpkcnV2c3UydUlFSkF3cW4r?=
 =?utf-8?B?NDRZcFl6T3FQdTVWS1VaSzE2MmtjOGk1QThtS2gzZkg5alFRcHB2cHFHZjR0?=
 =?utf-8?B?MEFMTm9nYmh1VTduVE9VUWJPQXBVLzQ3ZVNoQXRCMWpHamY1TU9aL3RwcVpN?=
 =?utf-8?B?M0I5am1DM0F2eW5KVjYvT0hURHFYdUloT251eVBLc1Q1a1hXTllPRTFsOEhQ?=
 =?utf-8?B?KzhyWENBSnNSWW1wblIwSHN5N0orQTlDM3pYSGM1Nys5NngxTkxPb2tqZ2xQ?=
 =?utf-8?B?WW9peGYzSm5IdkRRR29vdGlkeFJQTDdvem9TVEczZzBLNWloUDE3U3c4c204?=
 =?utf-8?B?aE8rcmJId3piZm93VkZNVUhUa0Fqcm1FS28wUVpad2RpMmEzU0ZJdHZweU02?=
 =?utf-8?B?RnZPVWFUWE9yWG1PdjNzZTJrMXpVeE5kcmwvZGFQdFg0aHhjV2NMaGEvOUQ1?=
 =?utf-8?B?cnN0NE5QSDV3Nk0ycHpudGpiWE9UbUZOcU1jeTZGak83eDZEOGVBT1NTNTRM?=
 =?utf-8?B?MGRmcTZjR3JvVEkwaDFDUldyS1gzS2hTNm5YVGFGS2s3YXdvVVp4ZGFyZ093?=
 =?utf-8?B?RHNrenZJZ0VYSjNUcnJ5Tng4VHRBK3pIRXZsQUlBNGQ4K1YwcjBkdWo4TnhP?=
 =?utf-8?B?ZUVMRS9QUW5SYmYwSjBLcG9tS0Z2SDBoOG9kYkVYbi9jVGR1Q2d2Y0ZVZlZq?=
 =?utf-8?B?akFnamhvRGM1M1BRSVJiZFE3amtxWjM1RzFPWTJnSVNCWnRqTERiQ29WN2Zt?=
 =?utf-8?B?Z1FaNmd2cUUzdzY5ekJpMUsrMjBicVpiSTR4UVVEd0FJZGZvZkhpVVZTSzNH?=
 =?utf-8?B?K1U4M2I5QVdPM2p4dUd2VE1GR1hmNnJ2WkxRS0U2ODU0akMybVU1YWIwT1dS?=
 =?utf-8?B?Zkx2MVUwSytjNW5RQ2xuRWZxRkFiZzdxVC9IcDdMM3VWc21vdWxKOVpKZ21B?=
 =?utf-8?B?YW1LMWFIamR4RndSVFNRdEJBcTNlUVY0RGZzcHB6bFBLWHE1aGljaUljNW5O?=
 =?utf-8?B?SjR4SmhpYzB3TGpIUEFsTGUrQVUwRHAwUDVLeWNHaURkNGk4RUtoRDh3cVor?=
 =?utf-8?B?a2Q3c2NRdFY3MllIMk9QTEMrdWZIZnZPWlhJVnJFMTlBRHJqbGZRcVZDWHNa?=
 =?utf-8?B?SmRuUmVseFdsL0lTNllqWW1leTdrUzBSNDQxQTJTeXFYMEV2dTY3NlF2V2Rj?=
 =?utf-8?B?R05vSjBQcjhMWUhibkdZV0F2aWdreC9mVDdWcm9hOUZFbkVhYzJaVWc1emYz?=
 =?utf-8?B?SFRxK1hQREZGYnd2MmFsNHhHbmcvUVV2Nk44dDFDR0dCN3lEWDhGRjhqOTVm?=
 =?utf-8?B?ZEFzSmhEU1FKZnhrTVBjZUg5YTJ0NFdYVGFNY01hZDdmUFpmeVUxSDJvMTFi?=
 =?utf-8?B?aTRGR2FaZHhqRWtPM0JjVEMzcmFmMlJZMjBCR2dNeWY4aWVIdEpGQ1Z0MjBC?=
 =?utf-8?Q?53BcLe?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(1800799024)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Aug 2025 21:06:32.9022
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: df187537-9d65-45ac-726d-08ddd13f4b1d
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS2PEPF0000343D.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL4PR12MB9533

On 7/25/25 03:58, Roger Pau MonnÃ© wrote:
> On Thu, Jul 24, 2025 at 06:44:32PM +0200, Roger Pau MonnÃ© wrote:
>> On Wed, Jul 23, 2025 at 12:37:41PM -0400, Stewart Hildebrand wrote:
>>> @@ -283,7 +297,48 @@ static int __init apply_map(struct domain *d, const struct pci_dev *pdev,
>>>      return rc;
>>>  }
>>>  
>>> -static void defer_map(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
>>> +static struct vpci_map_task *alloc_map_task(const struct pci_dev *pdev,
>>> +                                            uint16_t cmd, bool rom_only)
>>> +{
>>> +    struct vpci_map_task *task = xzalloc(struct vpci_map_task);
>>
>> xvzalloc() preferably.
>>
>> This however introduces run-time allocations as a result of guest
>> actions, which is not ideal IMO.  It would be preferable to do those
>> allocations as part of the header initialization, and re-use them.
> 
> I've been thinking over this, as I've realized that while commenting
> on it, I didn't provide any alternatives.
> 
> The usage of rangesets to figure out the regions to map is already not
> optimal, as adding/removing from a rangeset can lead to memory
> allocations.  It would be good if we could create rangesets with a
> pre-allocated number of ranges (iow: a pool of struct ranges), but
> that's for another patchset.  I think Jan already commented on this
> aspect long time ago.

+1

> I'm considering whether to allocate the deferred mapping structures
> per-vCPU instead of per-device.  That would for example mean moving
> the current vpci_bar->mem rangeset so it's allocated in vpci_vcpu
> struct instead.  The point would be to not have the rangesets per
> device (because there can be a lot of devices, specially for the
> hardware domain), but instead have those per-vCPU.  This should work
> because a vCPU can only queue a single vPCI operation, from a single
> device.
> 
> It should then be possible to allocate the deferred mapping structures
> at vCPU creation.  I also ponder if we really need a linked list to
> queue them; AFAIK there can only ever be an unmapping and a mapping
> operation pending (so 2 operations at most).  Hence we could use a
> more "fixed" structure like an array.  For example in struct vpci_vcpu
> you could introduce a struct vpci_map_task task[2] field?
> 
> Sorry, I know this is not a minor change to request.  It shouldn't
> change the overall logic much, but it would inevitably affect the
> code.  Let me know what you think.

Thanks for the feedback and suggestion. Yeah, I'll give this a try.
Here's roughly what I'm thinking so far. I'll keep playing with it.

diff --git a/xen/common/domain.c b/xen/common/domain.c
index 5241a1629eeb..942c9fe7d364 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -387,6 +387,16 @@ static int vmtrace_alloc_buffer(struct vcpu *v)
  */
 static int vcpu_teardown(struct vcpu *v)
 {
+#ifdef CONFIG_HAS_VPCI
+    for ( unsigned int i = 0; i < ARRAY_SIZE(v->vpci.task); i++ )
+    {
+        struct vpci_map_task *task = &v->vpci.task[i];
+
+        for ( unsigned int j = 0; j < ARRAY_SIZE(task->bars); j++ )
+            rangeset_destroy(task->bars[j].mem);
+    }
+#endif
+
     vmtrace_free_buffer(v);
 
     return 0;
@@ -467,6 +477,26 @@ struct vcpu *vcpu_create(struct domain *d, unsigned int vcpu_id)
         d->vcpu[prev_id]->next_in_list = v;
     }
 
+#ifdef CONFIG_HAS_VPCI
+    for ( unsigned int i = 0; i < ARRAY_SIZE(v->vpci.task); i++ )
+    {
+        struct vpci_map_task *task = &v->vpci.task[i];
+
+        for ( unsigned int j = 0; j < ARRAY_SIZE(task->bars); j++ )
+        {
+            struct vpci_bar_map *bar = &task->bars[j];
+            char str[32];
+
+            snprintf(str, sizeof(str), "PCI map vcpu %u task %u BAR %u", vcpu_id, i, j);
+
+            bar->mem = rangeset_new(v->domain, str, RANGESETF_no_print);
+
+            if ( !bar->mem )
+                goto fail_sched;
+        }
+    }
+#endif
+
     /* Must be called after making new vcpu visible to for_each_vcpu(). */
     vcpu_check_shutdown(v);
 
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index 17cfecb0aabf..afe78b00ffc9 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -116,7 +116,6 @@ struct vpci {
             uint64_t guest_addr;
             uint64_t size;
             uint64_t resizable_sizes;
-            struct rangeset *mem;
             enum {
                 VPCI_BAR_EMPTY,
                 VPCI_BAR_IO,
@@ -207,14 +206,23 @@ struct vpci {
 #endif
 };
 
+#ifdef __XEN__
 struct vpci_vcpu {
     /* Per-vcpu structure to store state while {un}mapping of PCI BARs. */
     const struct pci_dev *pdev;
-    uint16_t cmd;
-    bool rom_only : 1;
+    struct domain *domain;
+    unsigned int nr_pending_ops;
+    struct vpci_map_task {
+        struct vpci_bar_map {
+            uint64_t addr;
+            uint64_t guest_addr;
+            struct rangeset *mem;
+        } bars[PCI_HEADER_NORMAL_NR_BARS + 1];
+        uint16_t cmd;
+        bool rom_only : 1;
+    } task[2];
 };
 
-#ifdef __XEN__
 void vpci_dump_msi(void);
 
 /* Make sure there's a hole in the p2m for the MSIX mmio areas. */


From xen-devel-bounces@lists.xenproject.org Sat Aug 02 17:48:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Aug 2025 17:48:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068037.1432256 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiGLD-0002cf-GT; Sat, 02 Aug 2025 17:48:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068037.1432256; Sat, 02 Aug 2025 17:48:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiGLD-0002cN-BP; Sat, 02 Aug 2025 17:48:19 +0000
Received: by outflank-mailman (input) for mailman id 1068037;
 Sat, 02 Aug 2025 17:48:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=l9RL=2O=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1uiGLB-0002cE-P9
 for xen-devel@lists.xenproject.org; Sat, 02 Aug 2025 17:48:17 +0000
Received: from DB3PR0202CU003.outbound.protection.outlook.com
 (mail-northeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c200::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id de532c6e-6fc8-11f0-a321-13f23c93f187;
 Sat, 02 Aug 2025 19:48:16 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by DU2PR03MB7862.eurprd03.prod.outlook.com (2603:10a6:10:2d1::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.18; Sat, 2 Aug
 2025 17:48:12 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.8989.017; Sat, 2 Aug 2025
 17:48:11 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: de532c6e-6fc8-11f0-a321-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Baf5S2iZh5NGSiXqyfb0uw3VT0wW0yB6Nl/UJByL/gNYW6vNxgahcVuo5AmK/JrjySLjc97uSigt5zJ5j2rDII+K7nUIPAH3arudarovD9KVMwCyBfeyj/iUbGQh8Iw2XhjkYwWVmMNUKNJ150olALmykUO0tNKJ18Rh8DS0nn3XL2dL/blDwH75p+EpqYlDlCw5e4cvUm3l5uEdnXQm4Bggvy0gZmAjnDGVd3GltLXn4/mxjQRiTb1GiG29l3XF/T1EE2hc8fP4VRfxQdYGh/Ko3L4AkRwT0g9DDmaJbzyJ4dfny4EsbxID+fxHNTMbyCvKR8ADdRR4sH4/UHqy2Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Ej0Bymq+pXP4vV+9sbVFLLMVo4Hx7NOfVgawxm5lS0g=;
 b=BaAv/+/XGofOOuv6SeLWAhwYJKhxwv3foW2AgPCEkWv+aZmKoJ2Zs3MWEbfIvySUINF5Jn2lf+Knv3Q/claItE22udux03KAT6M8Dc5btviaRh20f7njDLekecjxRqb127MDINpr56k0/z4y5225PqvxnixOotYbftRHoYJwP1z9SVEdiNC6yDlHaK9QQSPVfQ0UjV9956rWKqFthSRtFwWjX6kDJbHhfXsn/hKdZ1bOxQ6MttVrLXGemOv6UNX1EC/Rn5z2aJyLLziAxltYzPqR/Fjd+AnG/p0L1M2yzdcyqG18f4XzZGG7U3VOS0ycHOfFnbVqClD9yebwcdny0w==
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=Ej0Bymq+pXP4vV+9sbVFLLMVo4Hx7NOfVgawxm5lS0g=;
 b=JI1+Wbt2iEWdRWuxOvyM/QlI+gFJqXUaiz2k0iv5x1zGonMteHfOQ3C+XZOH+3M0B+YZXVKLR986F9QQb9ABxt7oGzMuSfs2ekuGzKlffow1aFrV2QMcXD69r1GEeRGEmbe7jebwCLL3ggXyA71T6D4OfPLjgM0TRtvr2uYkP11B+8AELAFoz5forKWf5cVQ1WEc0I7qsSwBwmAtYYnvL8oUCg4TLtDgSr5IvF7lHQooa3MxOR6rImVksvyD/uYD+Ajk1rLb3oGBMuxPOIrKr2bBCnfX8+EKVhv46ScoSb5AIQD6nE1Cn1bYIfcfbpAD2Fd2m07LL7LkHGP3bvFuRQ==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Nicola Vetrini
	<nicola.vetrini@bugseng.com>
Subject: [RFC] Next steps for MISRA C Rule 17.7 in XEN
Thread-Topic: [RFC] Next steps for MISRA C Rule 17.7 in XEN
Thread-Index: AQHcA9WdQBGGn1ngVkiEBTFhozxERA==
Date: Sat, 2 Aug 2025 17:48:11 +0000
Message-ID: <6d622813-1617-4af3-876e-52a551518f68@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: GV2PR03MB9572:EE_|DU2PR03MB7862:EE_
x-ms-office365-filtering-correlation-id: b55346fe-2f11-45df-66cc-08ddd1ecbfb0
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|376014|42112799006|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?eWMyY2FBVm5zM0plNUxXbmU3U3NHakRBaHBXSkNUb2xROXZJMzR0YjB5cmVt?=
 =?utf-8?B?dkREYXd0T1lwUTZUMDA1Nk4vYllFWU5PMGRUREJPQ1k2UkIwS1Y4L1JVSHJy?=
 =?utf-8?B?WjRxRU9GNTZVKzF5TzVjQmRUYVZiUWNsVWNDSUQzNlYrSWJDUWd2RURRdVdu?=
 =?utf-8?B?RkQvOGI4cjZkQlZiUGR3QktGWitra0dCREQxdXFvWWttRW5ETDhkTGZ4NDVq?=
 =?utf-8?B?NFg0Nm80TzQ1OU9XdmJ4WnVjQnBxUlVINnIwQnZzMG96aGFyWUpNM1UyK1V0?=
 =?utf-8?B?WVhVeGYxeG93elFEVWJ1WmVuNit2eWhJOUZVZnM1LzJ0bldMbTlFZnBOczVP?=
 =?utf-8?B?UnNlOG1Cb2ZLWTBYN3E1bCtxVlRXU2NSWWlrTkdjNmdFZ0tzSGhETkhrWDRr?=
 =?utf-8?B?UzR0clJzWFkvSWRIMkxEeFQ4UHlCOXNSMklxSXYvRDVNUUE1MnQ5VEd1YTlX?=
 =?utf-8?B?d0I4V2VLUFBWcDFHcEc3V25hazZ0ekxucis5d3JydVJkbTBiZkxkbEFuUDBJ?=
 =?utf-8?B?andOUUJPelFYSFpEcHh4VVZGWHZNNFB3RStqcmtLemVnZ0V2dHM3Y2pubklW?=
 =?utf-8?B?cFRTd1F2RVVFSW1RS2tzSDllYnJWejZSTEtCY1JiaFpDWE1IcUlRamQ0a2Rk?=
 =?utf-8?B?aEdXQ0NPdy9acDR5NFNsUU5PNmc5M1dVU3RGY1doQUJCUW1QdXhNQ3FUenJI?=
 =?utf-8?B?SEVVVnhuYUtyeUlXcWVzVVBWSE9YMWRVSXpEeXhBTDBnd2FBa0g2T0VTK1Rv?=
 =?utf-8?B?WS9Pa0tJaHlhV0htSm9kYllhdGQ3MjVsUElYVjZvMHMwemFZVW9TQ2Y1L0Fp?=
 =?utf-8?B?akhPbzAxOE1leVBQRzA2L2p0czMzSHNseFZqS0FaL29IZm9hQlR2QTlXbi9N?=
 =?utf-8?B?aTBtc2d6NWdzQVozMnlGSWtNRXZnL3BCQWJ4eUlrSXhSWGF2SllMQ2poK1NC?=
 =?utf-8?B?WEw3YXZIRzRrWmQwbElscm5UNEhOaVI5cEhOWWlHOWEzVUtNYkJEWll0Mmdo?=
 =?utf-8?B?SzV4Nmo0QVNLZmRXNFZkRzQ0NjRFbDNGenZLVHRicWk4TWdnejlaVUVZTmpk?=
 =?utf-8?B?dVVOVTR4eGIwb3c5Zk9NcWMrZEZ2WUtLZENoZmpHRE9Ha3RLYldtaUo4VDlQ?=
 =?utf-8?B?NlMzaW9UamJ6RVBnUk4yTVJQQmtHUWdabnV0cVJsdWlXYm9mZ1ZSTEVYSWV6?=
 =?utf-8?B?YmVhbFVkQzNDOEJhV2FRdXF1SkxIL2ZVZnVpTlhGc3JzaWlSdVc4T2cxQitF?=
 =?utf-8?B?Zis4WTc4SFlKWmEyRldjY0E3QlJIVkRCN3hoOVZVKzNnM1BTQ2QxWHF6V1Q4?=
 =?utf-8?B?UHJiQjRPb3ZMT3FsYXFLTGVZbndISGZPdHZPSTNMdDA1VTdQaTdwbEx1V2lQ?=
 =?utf-8?B?QVQwVU1rczlTQmQrcXJYV3JkeVNpUjk0dERuV0NpRGdRVXFoK3RCTmltMzFm?=
 =?utf-8?B?aGhhK3RsRDVFMHI5WHJmVGFtVU5HMzdXc1RiZGxUWDAxN2hWZ2JWb1hQa1lF?=
 =?utf-8?B?NThGWFQ5LzBRZmNMWmFjYUZvYXl4TWM5cjlCNHFNWlZXWW9DWjZ3empkdW5p?=
 =?utf-8?B?RWhZeEQrQTljaUNpQVNIOHdLS2Q3cmV6VUl3YTBTay9lVjQrWTZzVEZrZUU0?=
 =?utf-8?B?TkJEdGdWRHZpWXRsMHkvVlRkTVYrU3h5MG9jcU4rcFFLeHl0RjYzbE9PZndY?=
 =?utf-8?B?aGZ1Y2FjWHFYNm85SXBhK1VxOEN3K1Y4WXl4ZzNBK1hOSUZQczlUajkrY3JK?=
 =?utf-8?B?V2w0aHBNUFVzMFErRG91YXZUeGl2YURkWjNTdFBUWGRvZDRkWjdsa01QOXQx?=
 =?utf-8?B?ZDNJRHZvdTcxbzhybWF6RFI0a0ZaZ2pEcEY2L3o3UUkwQnhxOWZqOFpKQ1hJ?=
 =?utf-8?B?Qi9ha2hqNlF0K20rNWRhRUtaek8wWUIxWlNTT2JJTm51c1BYdHJYUFdGZ201?=
 =?utf-8?B?Z3RlTlRWamFTbFNINGYxeGV6MnJRa0FZNjdZUGVGZUp6MzAwekxhdHk2UzJR?=
 =?utf-8?B?bkZVdXBiSGp3PT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(42112799006)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?cG0wOU9XZ2hNNlJLMnNscitUNmp0VnhYS1JVVWM0cjl4K21WU3dvK3hiS01S?=
 =?utf-8?B?bWlyMGxPbWdsekx4d1FNdnM2eUdlRm80ZmtPRkowSnVNSUVEcjlNaXQ0KytG?=
 =?utf-8?B?RzNqN3A3RVNPZG5rbnltcTVVNWRvbUZmVWdvVG5nN0tUR2NFbGlGZ3BSWU5t?=
 =?utf-8?B?VGlYc21CbjdUSlRLak9zVkpyQjFoME90RUkxRzRLc0JHd2xuYkc4NXkvM3dh?=
 =?utf-8?B?TmFXVUIzQldJbERDVTc5S2VRQ1FlVTh2eFpRYlk4Q1JMVlk1aWVrWXhNcWJ6?=
 =?utf-8?B?TmNCRG9iWDFUc1R4YWVyRXZveUhQS0FaZHpDQXBiUDhSZ3NrTG52TkhWeFo3?=
 =?utf-8?B?ZmpNR09zcVdPdDhNaXN3WHZ1Zyt1WU1jdDlJNXlxbEQwcklYYmtRSi9NeEdw?=
 =?utf-8?B?cjJPalE5K2xPb3JyZ2NRL1laSGljbzNVWmRUN3FKcC9aNVZ0T09HT0pVODZB?=
 =?utf-8?B?b0llNlZmYUVGN0tPYU54OGZIU3JjSmFSYjM4Unh2cTdGQlFYZmE2Q2FRTEhJ?=
 =?utf-8?B?SEswaGJHUGdXM0ZnN1o5eUEzK0pzNk5PTFErV3VpK2JyZjVvbktrL2dLOFQz?=
 =?utf-8?B?NlVnbzJjL0swcmREclA1Z1FHeXJtN0hCQnBraU13K05FeSttMW5acUlhZHRM?=
 =?utf-8?B?bFFIVlVkbTZTRllqYjN3bXpyTDNxUklFSkg2em4vU0tIOUc2MHphVys3blZE?=
 =?utf-8?B?SVJYZG9pMG1BNnBxK2RZNEFxMFpxMURGUlpXMEtWRCsxWTdzM2tXaFNQeUJG?=
 =?utf-8?B?NHRJSkZaMkdIMVE2ME9UK2x0blFKUWdDT1BFeFJ5L0FGSG0zYWI2V2dUSVhU?=
 =?utf-8?B?WkEyT2xIL09ZajJUeG94NzlrTitBZ09GVWc1TDVkKzBnb3Jhd21RV3FKUzRl?=
 =?utf-8?B?MkQ0RFFoRWQybkxsSWF0YXU1L21uNzNhV0pPL2JKK0pDZ2xTL0dUY29zOVJt?=
 =?utf-8?B?SUFjaWdxazJkaFZIeHMxbytuZDRLdVJuQUFrby9WUG5XTmhLcnlmN3hDSmEr?=
 =?utf-8?B?M2hmcnJMcUIyU2lPTHhnY3pDZjlMaGJ2c3Y1SFVQOHVEY2ZzbkNtNmZ2SVlG?=
 =?utf-8?B?MUhVeThRYXF3WkxuZDlzdXEyTjdkWXdXUC9vaGZTNGVJc1ZHWThhNWIzR1Nk?=
 =?utf-8?B?NmZrMi9KOE9FZ1Y4YzN1QWlLYWwwSlpqQVU3TVpxRXhSRUp4NDZWTk40c2dm?=
 =?utf-8?B?eXlaR0haTm9TS3RRVGFHZW5TOUc4aEVIYlJxejVFS0E1OGNjQnUwTm9lQTZp?=
 =?utf-8?B?bHdaMXFrM29pbnQ2aVhYN05EVmdoRDZ3b2x6RXJOQXpDemQ4Q0JqTHZpNzRI?=
 =?utf-8?B?M0FDTVV3MEFQNUtLc2ZWMnVVMDd3T1VsM3p3UjJYM2djMm1UWlJIdldTNTFZ?=
 =?utf-8?B?c3VWYU9WY1Zla283MUx3OVhWek50NnFlaUliVWZXTzAyeHRZTnRrdCtsM0tM?=
 =?utf-8?B?dmtpZUxGdklmajA3T2xONXVEQXdRTXhlbmNhdDBvL1V3R254dmxESmpDNjVW?=
 =?utf-8?B?VnBpTW5pY242K2V1Rm1TSVBDK1VKL0lya3lDS3JhdGhvQWRVbjFVRVRCRmVH?=
 =?utf-8?B?clVLOVJRR3FhTHZRaXY4eTlHTVNMTS9QMGxuM1dhdThJcGYzY1k1aXlCRTda?=
 =?utf-8?B?U0xJdUlRWXhqa3R6cXAxeEhvQThJd2JpTTM4azdVOWplWU1Sb3dQTnBhR1pJ?=
 =?utf-8?B?aTk4TytRY2JaSGIrTTQ2QVRRMGh5dnZ6bFBsWGg2d2lyRE04S2lsTzNLWEN1?=
 =?utf-8?B?SFgxUTNON2ZuYlQ0WitvTzExSDhIbWw1cmVzb2paazdIb3V6Z0k1NHR4aHVS?=
 =?utf-8?B?QWo2enRGTjQ1UFkrVkVwNmduakhHNUkzZW03NFFaazBWcVFyckRTWjNncnhS?=
 =?utf-8?B?NmpsbHZIWE96RWtWb0ZGY0Z4eU10bTIwckhhbnd4azlabnZrL3ZjUlEyaldN?=
 =?utf-8?B?QjVuaXdhMWxReE9yQ2ZvS2c2WTRaWXZnQkZYbDNtWWZ2dXUvMldjT01HUGNn?=
 =?utf-8?B?QnQvNHlCeFpUWmZ5Q0JVZTQvTHNQbEFKWFNZNkJDenBXSDRhTXhyQTREUkh3?=
 =?utf-8?B?VFc5NEhIOWJYb0xUMnpTdlM1OXBwb1EzSXRvdlo3Z0g5d0REcENaaXk2MGF4?=
 =?utf-8?B?MFVQMW1wY2R5UXFhUWU3ZHdmRjJYWmM0QVJhZ0UrREltTEJzWkFCM2xocVkx?=
 =?utf-8?B?MWc9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <21AFAE7C30C83949915313C946841006@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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b55346fe-2f11-45df-66cc-08ddd1ecbfb0
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Aug 2025 17:48:11.4604
 (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: WTQfJNVtCB4PphkTRDQQ9wrUBOfj6LOBjz0y2isNqeTpKxysQlnlAsQAMnl4WpBn6k01H7B2BPjxnaByIv0ZiwwpxrzmT/ef3g0xaBns3ZE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR03MB7862

SGVsbG8gZm9sa3MhDQoNClRoZXJlIGFyZSBhIGxvdCBvZiBNSVNSQSBDIFIxNy43IHZpb2xhdGlv
bnMgaW4gdGhlIFhFTi4NClRoaXMgcnVsZSBzdGF0ZXM6ICJUaGUgdmFsdWUgcmV0dXJuZWQgYnkg
YSBmdW5jdGlvbiBoYXZpbmcgbm9uLXZvaWQgDQpyZXR1cm4gdHlwZSBzaGFsbCBiZSB1c2VkIi4N
Cg0KQWN0dWFsbHksIG5lZWQgdG8gZGVjaWRlIGhvdyB0byBkZWFsIHdpdGggdGhlc2UgdmlvbGF0
aW9ucy4NClF1aWNrIGFuYWx5emUgc2hvd24gdGhhdCB0aGVyZSBhcmUgZGlmZmVyZW50IGNhc2Vz
IGluIFhFTiBjb2RlIGJhc2UuDQpMaWtlLCBmb3IgZXhhbXBsZToNCg0KdGhlIHJldHVybiB2YWx1
ZSBvZiBmdW5jdGlvbiBgY2xlYW5fYW5kX2ludmFsaWRhdGVfZGNhY2hlX3ZhX3JhbmdlKGNvbnN0
IA0Kdm9pZCosIHVuc2lnbmVkIGxvbmcpJyAodW5pdCBgeGVuL2FyY2gvYXJtL2FsdGVybmF0aXZl
LmMnIHdpdGggdGFyZ2V0IA0KYHhlbi9hcmNoL2FybS9hbHRlcm5hdGl2ZS5vJykgaXMgdW5leHBl
Y3RlZGx5IGlnbm9yZWQNCg0KVGhlIHJldHVybiB2YWx1ZSBvZiB0aGlzIGZ1bmN0aW9uICdjbGVh
bl9hbmRfaW52YWxpZGF0ZV9kY2FjaGVfdmFfcmFuZ2UnIA0KaXMgY2hlY2tlZCBvbmx5IGluIG9u
ZSBwbGFjZS4gUHJvYmFibHksIGFmdGVyIGRlZXBlciBhbmFseXplIHRoZSByZXR1cm4gDQp2YWx1
ZSBjYW4gYmUgZHJvcHBlZCBhbmQgZnVuY3Rpb24gcHJvdG90eXBlIGNhbiBiZSBjaGFuZ2VkIHRv
DQoNCnN0YXRpYyBpbmxpbmUgdm9pZCBjbGVhbl9hbmRfaW52YWxpZGF0ZV9kY2FjaGVfdmFfcmFu
Z2UNCiAgICAgKGNvbnN0IHZvaWQgKnAsIHVuc2lnbmVkIGxvbmcgc2l6ZSk7DQoNCg0KTmV4dCBj
YXNlIGlzIHZpY2UgdmVyc2E6DQoNCnRoZSByZXR1cm4gdmFsdWUgb2YgZnVuY3Rpb24gYHZnaWNf
cmVzZXJ2ZV92aXJxKHN0cnVjdCBkb21haW4qLCANCnVuc2lnbmVkKScgaXMgdW5leHBlY3RlZGx5
IGlnbm9yZWQNCg0KVGhlcmUgaXMgb25seSBvbmUgcGxhY2Ugd2hlcmUgdGhlIHJldHVybiB2YWx1
ZSBpcyBub3QgY2hlY2tlZC4NClByb2JhYmx5LCBpbiB0aGlzIHBsYWNlIGNvZGUgbWF5IGJlIGNo
YW5nZWQgdG86DQoNCiAgICAgKHZvaWQpdmdpY19yZXNlcnZlX3ZpcnEoZCwgaXJxKTsNCg0KDQpG
b3IgdGhlIGNhc2Ugd2l0aCAnbWVtc2V0JyBmdW5jdGlvbjoNCg0KdGhlIHJldHVybiB2YWx1ZSBv
ZiBmdW5jdGlvbiBgbWVtc2V0KHZvaWQqLCBpbnQsIHNpemVfdCknIGlzIA0KdW5leHBlY3RlZGx5
IGlnbm9yZWQNCg0KSSBndWVzcyBpdCdzIGJldHRlciB0byBjcmVhdGUgZGV2aWF0aW9uLCBzb21l
dGhpbmcgbGlrZToNCg0KIlRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIGZ1bmN0aW9uIG1lbXNldCh2
b2lkICosIGludCwgc2l6ZV90KSBpcyBpZ25vcmVkIA0KYmVjYXVzZSB0aGUgcHJpbWFyeSBwdXJw
b3NlIG9mIHRoZSBmdW5jdGlvbiBpcyB0byBzZXQgYSBibG9jayBvZiBtZW1vcnkgDQp0byBhIHNw
ZWNpZmljIHZhbHVlLCBub3QgdG8gdXNlIHRoZSBwb2ludGVyIHJldHVybmVkIGJ5IHRoZSBmdW5j
dGlvbi4iDQoNCg0KQnV0IGR1ZSB0byB0aGUgbGFyZ2UgbnVtYmVyIG9mIHZpb2xhdGlvbnMsIGl0
IHdpbGwgYmUgdHJpY2t5IHRvIGFkZHJlc3MgDQphbGwgb2YgdGhlbS4NCkkgZG9uJ3Qga25vdywg
bWF5YmUgdGhlIG9ubHkgcmlnaHQgc29sdXRpb24gaXMgdG8gZGV2aWF0ZSBhbGwuDQoNCg0KVGhh
bmtzIQ0KRG15dHJvLg==


From xen-devel-bounces@lists.xenproject.org Sat Aug 02 19:10:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 02 Aug 2025 19:10:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068072.1432266 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiHcT-00054Z-1R; Sat, 02 Aug 2025 19:10:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068072.1432266; Sat, 02 Aug 2025 19:10: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 1uiHcS-00054S-Tu; Sat, 02 Aug 2025 19:10:12 +0000
Received: by outflank-mailman (input) for mailman id 1068072;
 Sat, 02 Aug 2025 19:10:11 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=EIgm=2O=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1uiHcR-00048f-EI
 for xen-devel@lists.xenproject.org; Sat, 02 Aug 2025 19:10:11 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4eb3e514-6fd4-11f0-b897-0df219b8e170;
 Sat, 02 Aug 2025 21:10:09 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 3E2074EE0748;
 Sat,  2 Aug 2025 21:10:08 +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>
X-Inumbo-ID: 4eb3e514-6fd4-11f0-b897-0df219b8e170
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=1754161808;
	b=Hhxpm0HI6MojEjSGhmHl4qa6Q0BaiE2g0pVYP2GlNPJpdZv7svCoA1g6qAlfWmA3k5Hy
	 I+SxEsEHvhBoSltFsSyZJjWAHMkBniUT7rAj4XCmnCEv822iEA4/2K8E5BKNrxTSQYB64
	 y/nefQMMvJbhll3U1x80KcqoJxPBpBqLRYDX+ucxvewu2SBTrWmqcURBzD+n/zBw/l3xk
	 W77Dk1Cp22mLGHr9A+jk2pXzqc6YcHZelZlKRQIBxtWocaK2wSf1HNuKHw7/t4QeSaq1q
	 4A1xkAADUckIDZQcCNOnAtZrvMEXasBM2EgVdMPJqPIhrR1KGDRHufFaTk2n/BNzCre4b
	 qdqyzBXj0Q/cVI2lJacE2mCquv4qFJpcKC/esQXcemCmuIvK3PI5rVEgBaLQc65DZzCPj
	 PqPurCkhqpZDJMqaTH1RQMdRd0HXqQ9/d4W0OvmXJDVytBgATelgBAr+kQhA5sZxDT6Zi
	 izkZ+fSpoaNONcyL4YoTFEYOa/jCtsZ+lF+VfRsIDtGrhCNylo3+jvl+5q12jvuDWvvsF
	 J7B3lsSDHnI9D4kleFsnPZBRajhPIh2MyFAHd78WUbavkyUCG4HZtX7sS4fB88a+I41F8
	 PoyHNUN3YHpe1S3U+0Xd7DXmIdYeqfL9AuZA0p+qfNZmWmNxGoEsbp763f7MsFs=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1754161808;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=88nOKc8o+VBGXlOwxgIr1tnB5w2iH0oea7Ab0M9yOQQ=;
	b=eyh43HmnW7YzQVbyiEIcTB6dYu0zn/K8E/nZiTcnyt9I3c3+P45bvZh2Dd+ZpqbEmHoF
	 h6vIsQd9mrZCaGyh+J5nNUC4jobPanJRoXfurwTEIycNyWPxjdzg34OHDr4cnt75p6zfq
	 SsL7K+SeVsKssBSD0jVCY/jU0ssnnI2CLDSCuqAVM9g7TY9iVX31/Dat/4EA9smDdLBnd
	 EsUUtEE07kENPkiE4mFZNLb6ousI59MFmIr9swNmysxrH9JaDQOORO4qFHN7MjQluSDj1
	 Rk2ED+lIfpZn+9pu23s2a2CGXWImmbBNe2PLPHMTDY6A8IF0No9/lftmGjqE0Nt2Lc+YR
	 EONYWsOGd3mg3Kn6A/veci5Uc7vPC84fJzasaiPaDnTFtDBBKwVi/h4cvlRTW6b0ewm98
	 JEUbjC9cqd2L0RJvqRUeoXRGRGEydF1wc0le58SSKP/PsgMdmarp1NvSgUgO4B1mQdkB9
	 eWkOS8KAoYxJE668BEh2UjLkLhDh6tPALokwcAkn22PWGFH5/yPw+yNRZ4USPyDVmyfkk
	 mHyPw7MSVh5FS6abpkVztSBGFfZMNkjsd4Nf9Wtv9vqFlOwVrd8F68BhKi7M9RQcsOLM3
	 99ARvErLp37jM+B1phWYNR1GgZRjnAATfckzgZRsGUV2cAVj4erv0noOr7l1BX4=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1754161808; bh=3zW3+kMHj8v/g7CQloeTL/9yWVXx4YDrLTSLqD+dl5E=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=PkmQoVw1o9gkfry9jvShK8+OjfPMWGbUhjSJiL2N4qgSW5MYOZMiu6fBlFWe41Wsg
	 D0r2IMTMI5lWpciiHnecEGycUM81ge50nG1DLDcWz2uXSystofF8KDToTXyI+1aVR6
	 MwMAud+wft6kaECtOTynchowWr72YUfLupUgWgsSf3+IYy+f8JF3JgeF65GCAUi7x7
	 yEdCJ6XWFEYUT+ItKlMNcRbIfdYPzzhfqWuDVneRuk6Zuqk3tx/9vXgE/dKSOk0d9u
	 J65Wt7veR7Nr1DUNKhqOS9CNhbnlLPzFyClPHxWYgKoIuAFPuwHJcNQfK4So1V7Rvm
	 zSDxsFdy22/EQ==
MIME-Version: 1.0
Date: Sat, 02 Aug 2025 21:10:08 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: xen-devel@lists.xenproject.org, Stefano Stabellini
 <sstabellini@kernel.org>
Subject: Re: [RFC] Next steps for MISRA C Rule 17.7 in XEN
In-Reply-To: <6d622813-1617-4af3-876e-52a551518f68@epam.com>
References: <6d622813-1617-4af3-876e-52a551518f68@epam.com>
Message-ID: <42f485a1e32536f3d905c9564b6fdebb@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

On 2025-08-02 19:48, Dmytro Prokopchuk1 wrote:
> Hello folks!
> 
> There are a lot of MISRA C R17.7 violations in the XEN.
> This rule states: "The value returned by a function having non-void
> return type shall be used".
> 
> Actually, need to decide how to deal with these violations.
> Quick analyze shown that there are different cases in XEN code base.
> Like, for example:
> 
> the return value of function 
> `clean_and_invalidate_dcache_va_range(const
> void*, unsigned long)' (unit `xen/arch/arm/alternative.c' with target
> `xen/arch/arm/alternative.o') is unexpectedly ignored
> 

This thread [1] has some discussions around the cache invalidation 
helpers, so it may be useful to consider the points raised there in this 
discussion

[1] 
https://lore.kernel.org/xen-devel/cc6bf44701c808645c69bacaf4463295e2cb0fba.1708354388.git.nicola.vetrini@bugseng.com/

> The return value of this function 
> 'clean_and_invalidate_dcache_va_range'
> is checked only in one place. Probably, after deeper analyze the return
> value can be dropped and function prototype can be changed to
> 
> static inline void clean_and_invalidate_dcache_va_range
>      (const void *p, unsigned long size);
> 
> 
> Next case is vice versa:
> 
> the return value of function `vgic_reserve_virq(struct domain*,
> unsigned)' is unexpectedly ignored
> 
> There is only one place where the return value is not checked.
> Probably, in this place code may be changed to:
> 
>      (void)vgic_reserve_virq(d, irq);
> 
> 
> For the case with 'memset' function:
> 
> the return value of function `memset(void*, int, size_t)' is
> unexpectedly ignored
> 
> I guess it's better to create deviation, something like:
> 
> "The return value of the function memset(void *, int, size_t) is 
> ignored
> because the primary purpose of the function is to set a block of memory
> to a specific value, not to use the pointer returned by the function."
> 
> 
> But due to the large number of violations, it will be tricky to address
> all of them.
> I don't know, maybe the only right solution is to deviate all.
> 
> 
> Thanks!
> Dmytro.

-- 
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 Sun Aug 03 01:05:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 Aug 2025 01:05:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068175.1432276 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiN9l-0002cg-E4; Sun, 03 Aug 2025 01:04:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068175.1432276; Sun, 03 Aug 2025 01:04: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 1uiN9l-0002cV-9C; Sun, 03 Aug 2025 01:04:57 +0000
Received: by outflank-mailman (input) for mailman id 1068175;
 Sun, 03 Aug 2025 01:04:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=4692=2P=bootlin.com=alexandre.belloni@srs-se1.protection.inumbo.net>)
 id 1uiN9j-0002cJ-UO
 for xen-devel@lists.xenproject.org; Sun, 03 Aug 2025 01:04:56 +0000
Received: from relay4-d.mail.gandi.net (relay4-d.mail.gandi.net
 [217.70.183.196]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dc7965a2-7005-11f0-b897-0df219b8e170;
 Sun, 03 Aug 2025 03:04:52 +0200 (CEST)
Received: by mail.gandi.net (Postfix) with ESMTPSA id 395D841DE2;
 Sun,  3 Aug 2025 01:04: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>
X-Inumbo-ID: dc7965a2-7005-11f0-b897-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1;
	t=1754183092;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references;
	bh=IG2HpXzsqu+NkhilqnbEM95yf9B6n+TV1enjTn2IGB8=;
	b=ibJLf44Stz+KQ8z1BIhUrXB8Hx8q3mDVJsoazKdnF5cGuJvjReExXK4mcEOGy+KCLeZn/+
	kiZ6ksHecS6yzjenen9Bap4+NogZvlkX8LS/fcaTLx2nCLDMs16sjfVWHO2BVoee+7W6h1
	UEJQo/hhQZmslKN2uXNBIo6f/iV7i4i2ULavQeZYg9xJlgn+4UWyifl1oqRN5FdvDOipjo
	Anoil5WSqw3fdSJJkxGIZeUHKgePK471C7AqiXKnuTl4IJNxiRavQiZ+ZSEcB4GlH//Ny4
	WFnmiHTOQORQeOxW5S5sx2Fjc6aV8soQemag6oeQvhlj/yfB9gN8N5R45YYCkg==
Date: Sun, 3 Aug 2025 03:04:49 +0200
From: Alexandre Belloni <alexandre.belloni@bootlin.com>
To: Ard Biesheuvel <ardb+git@google.com>
Cc: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	Ard Biesheuvel <ardb@kernel.org>,
	Heinrich Schuchardt <heinrich.schuchardt@canonical.com>,
	Feng Tang <feng.tang@linux.alibaba.com>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Sunil V L <sunilvl@ventanamicro.com>,
	Bibo Mao <maobibo@loongson.cn>, linux-rtc@vger.kernel.org,
	linux-efi@vger.kernel.org, xen-devel@lists.xenproject.org,
	x86@kernel.org, linux-riscv@lists.infradead.org,
	loongarch@lists.linux.dev
Subject: Re: [RFC PATCH 1/3] efi-rtc: Remove wakeup functionality
Message-ID: <20250803010449df1f5cfb@mail.local>
References: <20250714060843.4029171-5-ardb+git@google.com>
 <20250714060843.4029171-6-ardb+git@google.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250714060843.4029171-6-ardb+git@google.com>
X-GND-State: clean
X-GND-Score: -100
X-GND-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgddutdektdekucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuifetpfffkfdpucggtfgfnhhsuhgsshgtrhhisggvnecuuegrihhlohhuthemuceftddunecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpeffhffvvefukfhfgggtuggjsehttdertddttddvnecuhfhrohhmpeetlhgvgigrnhgurhgvuceuvghllhhonhhiuceorghlvgigrghnughrvgdrsggvlhhlohhnihessghoohhtlhhinhdrtghomheqnecuggftrfgrthhtvghrnhepgeeiudeuteehhfekgeejveefhfeiudejuefhgfeljefgjeegkeeujeeugfehgefgnecuffhomhgrihhnpegsohhothhlihhnrdgtohhmnecukfhppedvrgdtudemvgdtrgemvdgumeeifeejtdemjeekvgdtmegttdgvkeemvdektdeimeekrggtieenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepihhnvghtpedvrgdtudemvgdtrgemvdgumeeifeejtdemjeekvgdtmegttdgvkeemvdektdeimeekrggtiedphhgvlhhopehlohgtrghlhhhoshhtpdhmrghilhhfrhhomheprghlvgigrghnughrvgdrsggvlhhlohhnihessghoohhtlhhinhdrtghomhdpnhgspghrtghpthhtohepudejpdhrtghpthhtoheprghruggsodhgihhtsehgohhoghhlvgdrtghomhdprhgtphhtthhopehlihhnuhigqdhkvghrnhgvlhesvhhgvghrrdhkvghrnhgvlhdrohhrghdprhgtphhtthhopehli
 hhnuhigqdgrrhhmqdhkvghrnhgvlheslhhishhtshdrihhnfhhrrgguvggrugdrohhrghdprhgtphhtthhopegrrhgusgeskhgvrhhnvghlrdhorhhgpdhrtghpthhtohephhgvihhnrhhitghhrdhstghhuhgthhgrrhguthestggrnhhonhhitggrlhdrtghomhdprhgtphhtthhopehfvghnghdrthgrnhhgsehlihhnuhigrdgrlhhisggrsggrrdgtohhmpdhrtghpthhtohepjhhgrhhoshhssehsuhhsvgdrtghomhdprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvghrnhgvlhdrohhrgh
X-GND-Sasl: alexandre.belloni@bootlin.com

Hello,

Apart from the topic that should be "rtc: efi:...", I'm ready to apply
this patch.

On 14/07/2025 08:08:45+0200, Ard Biesheuvel wrote:
> From: Ard Biesheuvel <ardb@kernel.org>
> 
> The EFI rtc driver is used by non-x86 architectures only, and exposes
> the get/set wakeup time functionality provided by the underlying
> platform. This is usually broken on most platforms, and not widely used
> to begin with [if at all], so let's just remove it.
> 
> Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
> ---
>  drivers/rtc/rtc-efi.c | 76 +-------------------
>  1 file changed, 2 insertions(+), 74 deletions(-)
> 
> diff --git a/drivers/rtc/rtc-efi.c b/drivers/rtc/rtc-efi.c
> index fa8bf82df948..b4f44999ef0f 100644
> --- a/drivers/rtc/rtc-efi.c
> +++ b/drivers/rtc/rtc-efi.c
> @@ -112,48 +112,6 @@ convert_from_efi_time(efi_time_t *eft, struct rtc_time *wtime)
>  	return true;
>  }
>  
> -static int efi_read_alarm(struct device *dev, struct rtc_wkalrm *wkalrm)
> -{
> -	efi_time_t eft;
> -	efi_status_t status;
> -
> -	/*
> -	 * As of EFI v1.10, this call always returns an unsupported status
> -	 */
> -	status = efi.get_wakeup_time((efi_bool_t *)&wkalrm->enabled,
> -				     (efi_bool_t *)&wkalrm->pending, &eft);
> -
> -	if (status != EFI_SUCCESS)
> -		return -EINVAL;
> -
> -	if (!convert_from_efi_time(&eft, &wkalrm->time))
> -		return -EIO;
> -
> -	return rtc_valid_tm(&wkalrm->time);
> -}
> -
> -static int efi_set_alarm(struct device *dev, struct rtc_wkalrm *wkalrm)
> -{
> -	efi_time_t eft;
> -	efi_status_t status;
> -
> -	convert_to_efi_time(&wkalrm->time, &eft);
> -
> -	/*
> -	 * XXX Fixme:
> -	 * As of EFI 0.92 with the firmware I have on my
> -	 * machine this call does not seem to work quite
> -	 * right
> -	 *
> -	 * As of v1.10, this call always returns an unsupported status
> -	 */
> -	status = efi.set_wakeup_time((efi_bool_t)wkalrm->enabled, &eft);
> -
> -	dev_warn(dev, "write status is %d\n", (int)status);
> -
> -	return status == EFI_SUCCESS ? 0 : -EINVAL;
> -}
> -
>  static int efi_read_time(struct device *dev, struct rtc_time *tm)
>  {
>  	efi_status_t status;
> @@ -188,17 +146,13 @@ static int efi_set_time(struct device *dev, struct rtc_time *tm)
>  
>  static int efi_procfs(struct device *dev, struct seq_file *seq)
>  {
> -	efi_time_t        eft, alm;
> +	efi_time_t        eft;
>  	efi_time_cap_t    cap;
> -	efi_bool_t        enabled, pending;
> -	struct rtc_device *rtc = dev_get_drvdata(dev);
>  
>  	memset(&eft, 0, sizeof(eft));
> -	memset(&alm, 0, sizeof(alm));
>  	memset(&cap, 0, sizeof(cap));
>  
>  	efi.get_time(&eft, &cap);
> -	efi.get_wakeup_time(&enabled, &pending, &alm);
>  
>  	seq_printf(seq,
>  		   "Time\t\t: %u:%u:%u.%09u\n"
> @@ -214,26 +168,6 @@ static int efi_procfs(struct device *dev, struct seq_file *seq)
>  		/* XXX fixme: convert to string? */
>  		seq_printf(seq, "Timezone\t: %u\n", eft.timezone);
>  
> -	if (test_bit(RTC_FEATURE_ALARM, rtc->features)) {
> -		seq_printf(seq,
> -			   "Alarm Time\t: %u:%u:%u.%09u\n"
> -			   "Alarm Date\t: %u-%u-%u\n"
> -			   "Alarm Daylight\t: %u\n"
> -			   "Enabled\t\t: %s\n"
> -			   "Pending\t\t: %s\n",
> -			   alm.hour, alm.minute, alm.second, alm.nanosecond,
> -			   alm.year, alm.month, alm.day,
> -			   alm.daylight,
> -			   enabled == 1 ? "yes" : "no",
> -			   pending == 1 ? "yes" : "no");
> -
> -		if (alm.timezone == EFI_UNSPECIFIED_TIMEZONE)
> -			seq_puts(seq, "Timezone\t: unspecified\n");
> -		else
> -			/* XXX fixme: convert to string? */
> -			seq_printf(seq, "Timezone\t: %u\n", alm.timezone);
> -	}
> -
>  	/*
>  	 * now prints the capabilities
>  	 */
> @@ -249,8 +183,6 @@ static int efi_procfs(struct device *dev, struct seq_file *seq)
>  static const struct rtc_class_ops efi_rtc_ops = {
>  	.read_time	= efi_read_time,
>  	.set_time	= efi_set_time,
> -	.read_alarm	= efi_read_alarm,
> -	.set_alarm	= efi_set_alarm,
>  	.proc		= efi_procfs,
>  };
>  
> @@ -271,11 +203,7 @@ static int __init efi_rtc_probe(struct platform_device *dev)
>  	platform_set_drvdata(dev, rtc);
>  
>  	rtc->ops = &efi_rtc_ops;
> -	clear_bit(RTC_FEATURE_UPDATE_INTERRUPT, rtc->features);
> -	if (efi_rt_services_supported(EFI_RT_SUPPORTED_WAKEUP_SERVICES))
> -		set_bit(RTC_FEATURE_ALARM_WAKEUP_ONLY, rtc->features);
> -	else
> -		clear_bit(RTC_FEATURE_ALARM, rtc->features);
> +	clear_bit(RTC_FEATURE_ALARM, rtc->features);
>  
>  	device_init_wakeup(&dev->dev, true);
>  
> -- 
> 2.50.0.727.gbf7dc18ff4-goog
> 

-- 
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com


From xen-devel-bounces@lists.xenproject.org Sun Aug 03 04:25:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 Aug 2025 04:25:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068234.1432285 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiQHO-000121-Ug; Sun, 03 Aug 2025 04:25:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068234.1432285; Sun, 03 Aug 2025 04:25: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 1uiQHO-00011u-Rn; Sun, 03 Aug 2025 04:25:02 +0000
Received: by outflank-mailman (input) for mailman id 1068234;
 Sun, 03 Aug 2025 04:25:01 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Qzru=2P=gmail.com=demiobenour@srs-se1.protection.inumbo.net>)
 id 1uiQHN-00011o-LG
 for xen-devel@lists.xenproject.org; Sun, 03 Aug 2025 04:25:01 +0000
Received: from mail-qt1-x82a.google.com (mail-qt1-x82a.google.com
 [2607:f8b0:4864:20::82a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d0dcd19f-7021-11f0-a321-13f23c93f187;
 Sun, 03 Aug 2025 06:24:59 +0200 (CEST)
Received: by mail-qt1-x82a.google.com with SMTP id
 d75a77b69052e-4ab8e2c85d7so44717241cf.2
 for <xen-devel@lists.xenproject.org>; Sat, 02 Aug 2025 21:24:59 -0700 (PDT)
Received: from [10.138.10.6] ([89.187.178.201])
 by smtp.gmail.com with ESMTPSA id
 d75a77b69052e-4aeeedd7e08sm38777441cf.55.2025.08.02.21.24.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sat, 02 Aug 2025 21:24: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>
X-Inumbo-ID: d0dcd19f-7021-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754195098; x=1754799898; 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=ML/St5fhdd2VGMDk6Z03hKUNuPaU+OuUrJDIvZYA7ls=;
        b=fcnQmFt9NMqlXldkGQPm4PS1vwn7pSRb7TXGWZBQ+fwvFGOlEEklfiCyGVo+UCvWub
         nnLDh+pVHmvbFn7EdYu5lIjDp681MjMfQSCrpAQZn6QgkkWlcCxluXGmxS1MnrRMEfP+
         9apubFa3A5xLRDIBSOdr6ow6rOfNkIe+oU4eU6nIXOWKzqYJBwdNbt2v5rPKtrLzUOFC
         KvrudWLMe7G9oFhfqkXcRlu0wUZfOGmjXvNMaYI/NklFXwu5X3WOzlSSy3H+w4XDKVp1
         ttzRWoX6V6KpfWWOU2q4yd7dur/cZWvlOxhs0gDeT+Xg9+4FeTyC9nC8IUN25dK2pZOM
         3l7A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754195098; x=1754799898;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=ML/St5fhdd2VGMDk6Z03hKUNuPaU+OuUrJDIvZYA7ls=;
        b=S8TBHUBqPncJaiwbbm8Go6OqDXL6gK2BszDI6k7NwqQt8rnmNZ/A9w235mwBDLbnEo
         PCYdLClpvkbLyNgAjFtcYYPB5sETfQ7rQY3vC1sZxzsUsrJLxAObzFiH/nVXomxmQ5aR
         7dlSfp98RMuvwqhyxTO9+BoyNN0hsL06dj6qDfSrWtObAd/Pfy+M+SlyAZUTBiuDYDXK
         JD3BYhtaYQIMr8bNKQoYbjOeAW/9wSIRCRrGAx9Ng0HmLVXNjAp2+tyhe6cdy96liasd
         PvwNjBshYza+M2gdAhZ1hJC66j277CPkWwga2DmrzzpQtniurzykIyRrZB2noldQqlDb
         jfIg==
X-Forwarded-Encrypted: i=1; AJvYcCU5T34+bw6LRzLjGMt14MvymHnzdvw6+JSC0oJY1BqQhszORih9cwqktwrMYvP4cnLUYaxlLjJN03g=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwIEMB8vk+GsXrWXPQFXxn5dp4hNQuDMutkVs+u9t0EMeCqhw6Y
	bE+4T74wH4OwoEo/cEd8gYTPj5uJ7TKjse6AugQzJ8iQfRqGjHN9n6Hd
X-Gm-Gg: ASbGncuDE5Oi07cuPT/5FGjzEXtCfj3ueEdud0nE/SN1bvIWOU0IPSZ+usdZl/d504z
	7vN0jr/itJIuOtjDfdafSks6xWH4nBb46PgoUjjT1ZqU0sAfwZCFxQ73B4Q2cxznZWUuRK3qYfq
	47u4I6oQlOo7UAl2okrIt+6bMXqmZEMTi07kMmxlRvtiV928wEhJoXwl9CsvwPWA1klsHQ7GhoV
	NffByWWA/jGpcO6POZlQJ+KPHGz1l51HgNVkynPrTv2SIHJmXTL11xht7fO/E9ylnT7FfW1DTnt
	ykP9O8+hRa80kPPFfGJms8rEZOCcMflJUeeoIgpEczbOfctRd+Q0kstyB04KK6x49ktIQEQZzEk
	x3ZVcegMbOg4WFbt3LSE4mRBVLEI=
X-Google-Smtp-Source: AGHT+IHTh+NTcF0lV4XrcWWK1bmWpHNHA2YswZ/T9n/7EgSQGp+qAW8PB4qcJqOZiXaUxMPG1jvPtw==
X-Received: by 2002:a05:622a:1181:b0:4ab:a631:5544 with SMTP id d75a77b69052e-4af1097ac17mr73741251cf.21.1754195098243;
        Sat, 02 Aug 2025 21:24:58 -0700 (PDT)
Message-ID: <af3983f8-6d45-4cc7-8523-53d104edb0c1@gmail.com>
Date: Sun, 3 Aug 2025 00:24:51 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 3/6] xen/arm: ffa: Introduce VM to VM support
To: Bertrand Marquis <bertrand.marquis@arm.com>,
 xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org, Volodymyr Babchuk
 <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
References: <cover.1752754016.git.bertrand.marquis@arm.com>
 <50224eb7cca4eaef2646ad8e33f689d912704733.1752754016.git.bertrand.marquis@arm.com>
Content-Language: en-US
From: Demi Marie Obenour <demiobenour@gmail.com>
Autocrypt: addr=demiobenour@gmail.com; keydata=
 xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49yB+l2nipd
 aq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYfbWpr/si88QKgyGSV
 Z7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/UorR+FaSuVwT7rqzGrTlscnT
 DlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7MMPCJwI8JpPlBedRpe9tfVyfu3euTPLPx
 wcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9Hzx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR
 6h3nBc3eyuZ+q62HS1pJ5EvUT1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl
 5FMWo8TCniHynNXsBtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2
 Bkg1b//r6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
 9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nSm9BBff0N
 m0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQABzTxEZW1pIE1hcmll
 IE9iZW5vdXIgKGxvdmVyIG9mIGNvZGluZykgPGRlbWlvYmVub3VyQGdtYWlsLmNvbT7CwXgE
 EwECACIFAlp+A0oCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJELKItV//nCLBhr8Q
 AK/xrb4wyi71xII2hkFBpT59ObLN+32FQT7R3lbZRjVFjc6yMUjOb1H/hJVxx+yo5gsSj5LS
 9AwggioUSrcUKldfA/PKKai2mzTlUDxTcF3vKx6iMXKA6AqwAw4B57ZEJoMM6egm57TV19kz
 PMc879NV2nc6+elaKl+/kbVeD3qvBuEwsTe2Do3HAAdrfUG/j9erwIk6gha/Hp9yZlCnPTX+
 VK+xifQqt8RtMqS5R/S8z0msJMI/ajNU03kFjOpqrYziv6OZLJ5cuKb3bZU5aoaRQRDzkFIR
 6aqtFLTohTo20QywXwRa39uFaOT/0YMpNyel0kdOszFOykTEGI2u+kja35g9TkH90kkBTG+a
 EWttIht0Hy6YFmwjcAxisSakBuHnHuMSOiyRQLu43ej2+mDWgItLZ48Mu0C3IG1seeQDjEYP
 tqvyZ6bGkf2Vj+L6wLoLLIhRZxQOedqArIk/Sb2SzQYuxN44IDRt+3ZcDqsPppoKcxSyd1Ny
 2tpvjYJXlfKmOYLhTWs8nwlAlSHX/c/jz/ywwf7eSvGknToo1Y0VpRtoxMaKW1nvH0OeCSVJ
 itfRP7YbiRVc2aNqWPCSgtqHAuVraBRbAFLKh9d2rKFB3BmynTUpc1BQLJP8+D5oNyb8Ts4x
 Xd3iV/uD8JLGJfYZIR7oGWFLP4uZ3tkneDfYzsFNBFp+A0oBEAC9ynZI9LU+uJkMeEJeJyQ/
 8VFkCJQPQZEsIGzOTlPnwvVna0AS86n2Z+rK7R/usYs5iJCZ55/JISWd8xD57ue0eB47bcJv
 VqGlObI2DEG8TwaW0O0duRhDgzMEL4t1KdRAepIESBEA/iPpI4gfUbVEIEQuqdqQyO4GAe+M
 kD0Hy5JH/0qgFmbaSegNTdQg5iqYjRZ3ttiswalql1/iSyv1WYeC1OAs+2BLOAT2NEggSiVO
 txEfgewsQtCWi8H1SoirakIfo45Hz0tk/Ad9ZWh2PvOGt97Ka85o4TLJxgJJqGEnqcFUZnJJ
 riwoaRIS8N2C8/nEM53jb1sH0gYddMU3QxY7dYNLIUrRKQeNkF30dK7V6JRH7pleRlf+wQcN
 fRAIUrNlatj9TxwivQrKnC9aIFFHEy/0mAgtrQShcMRmMgVlRoOA5B8RTulRLCmkafvwuhs6
 dCxN0GNAORIVVFxjx9Vn7OqYPgwiofZ6SbEl0hgPyWBQvE85klFLZLoj7p+joDY1XNQztmfA
 rnJ9x+YV4igjWImINAZSlmEcYtd+xy3Li/8oeYDAqrsnrOjb+WvGhCykJk4urBog2LNtcyCj
 kTs7F+WeXGUo0NDhbd3Z6AyFfqeF7uJ3D5hlpX2nI9no/ugPrrTVoVZAgrrnNz0iZG2DVx46
 x913pVKHl5mlYQARAQABwsFfBBgBAgAJBQJafgNKAhsMAAoJELKItV//nCLBwNIP/AiIHE8b
 oIqReFQyaMzxq6lE4YZCZNj65B/nkDOvodSiwfwjjVVE2V3iEzxMHbgyTCGA67+Bo/d5aQGj
 gn0TPtsGzelyQHipaUzEyrsceUGWYoKXYyVWKEfyh0cDfnd9diAm3VeNqchtcMpoehETH8fr
 RHnJdBcjf112PzQSdKC6kqU0Q196c4Vp5HDOQfNiDnTf7gZSj0BraHOByy9LEDCLhQiCmr+2
 E0rW4tBtDAn2HkT9uf32ZGqJCn1O+2uVfFhGu6vPE5qkqrbSE8TG+03H8ecU2q50zgHWPdHM
 OBvy3EhzfAh2VmOSTcRK+tSUe/u3wdLRDPwv/DTzGI36Kgky9MsDC5gpIwNbOJP2G/q1wT1o
 Gkw4IXfWv2ufWiXqJ+k7HEi2N1sree7Dy9KBCqb+ca1vFhYPDJfhP75I/VnzHVssZ/rYZ9+5
 1yDoUABoNdJNSGUYl+Yh9Pw9pE3Kt4EFzUlFZWbE4xKL/NPno+z4J9aWemLLszcYz/u3XnbO
 vUSQHSrmfOzX3cV4yfmjM5lewgSstoxGyTx2M8enslgdXhPthZlDnTnOT+C+OTsh8+m5tos8
 HQjaPM01MKBiAqdPgksm1wu2DrrwUi6ChRVTUBcj6+/9IJ81H2P2gJk3Ls3AVIxIffLoY34E
 +MYSfkEjBz0E8CLOcAw7JIwAaeBT
In-Reply-To: <50224eb7cca4eaef2646ad8e33f689d912704733.1752754016.git.bertrand.marquis@arm.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------1gFvVR9xjY5GAdqPj6Vym0sn"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------1gFvVR9xjY5GAdqPj6Vym0sn
Content-Type: multipart/mixed; boundary="------------tqmSlId12aASw5ET13epmu6A";
 protected-headers="v1"
From: Demi Marie Obenour <demiobenour@gmail.com>
To: Bertrand Marquis <bertrand.marquis@arm.com>,
 xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org, Volodymyr Babchuk
 <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Message-ID: <af3983f8-6d45-4cc7-8523-53d104edb0c1@gmail.com>
Subject: Re: [PATCH v7 3/6] xen/arm: ffa: Introduce VM to VM support
References: <cover.1752754016.git.bertrand.marquis@arm.com>
 <50224eb7cca4eaef2646ad8e33f689d912704733.1752754016.git.bertrand.marquis@arm.com>
In-Reply-To: <50224eb7cca4eaef2646ad8e33f689d912704733.1752754016.git.bertrand.marquis@arm.com>

--------------tqmSlId12aASw5ET13epmu6A
Content-Type: multipart/mixed; boundary="------------bqBHrF0KlkMQcY9Dc2SWglro"

--------------bqBHrF0KlkMQcY9Dc2SWglro
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On 7/17/25 08:11, Bertrand Marquis wrote:
> Create a CONFIG_FFA_VM_TO_VM parameter to activate FFA communication
> between VMs.
> When activated list VMs in the system with FF-A support in part_info_ge=
t.
>=20
> When VM to VM is activated, Xen will be tainted as Insecure and a
> message is displayed to the user during the boot as there is no
> filtering of VMs in FF-A so any VM can communicate or see any other VM
> in the system.
>=20
> WARNING: There is no filtering for now and all VMs are listed !!
I'm pretty sure that there is already no filtering for things like grant
tables and event channels, so this doesn't make things any worse.  That
said, FF-A is quite tricky to implement without integer overflow/wraparou=
nd
or denial of service bugs.  In particular, code in Hafnium (Secure Partit=
ion
Monitor running in S-EL2) requires quadratic time because of repeated lin=
ear
searches.  Xen is allowed to use dynamic memory allocation, so it can, sh=
ould,
and must do better.
--=20
Sincerely,
Demi Marie Obenour (she/her/hers)
--------------bqBHrF0KlkMQcY9Dc2SWglro
Content-Type: application/pgp-keys; name="OpenPGP_0xB288B55FFF9C22C1.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB288B55FFF9C22C1.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

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

xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49y
B+l2nipdaq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYf
bWpr/si88QKgyGSVZ7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/
UorR+FaSuVwT7rqzGrTlscnTDlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7M
MPCJwI8JpPlBedRpe9tfVyfu3euTPLPxwcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9H
zx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR6h3nBc3eyuZ+q62HS1pJ5EvU
T1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl5FMWo8TCniHynNXs
BtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2Bkg1b//r
6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nS
m9BBff0Nm0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQAB
zTxEZW1pIE9iZW5vdXIgKElUTCBFbWFpbCBLZXkpIDxhdGhlbmFAaW52aXNpYmxl
dGhpbmdzbGFiLmNvbT7CwY4EEwEIADgWIQR2h02fEza6IlkHHHGyiLVf/5wiwQUC
X6YJvQIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRCyiLVf/5wiwWRhD/0Y
R+YYC5Kduv/2LBgQJIygMsFiRHbR4+tWXuTFqgrxxFSlMktZ6gQrQCWe38WnOXkB
oY6n/5lSJdfnuGd2UagZ/9dkaGMUkqt+5WshLFly4BnP7pSsWReKgMP7etRTwn3S
zk1OwFx2lzY1EnnconPLfPBc6rWG2moA6l0WX+3WNR1B1ndqpl2hPSjT2jUCBWDV
rGOUSX7r5f1WgtBeNYnEXPBCUUM51pFGESmfHIXQrqFDA7nBNiIVFDJTmQzuEqIy
Jl67pKNgooij5mKzRhFKHfjLRAH4mmWZlB9UjDStAfFBAoDFHwd1HL5VQCNQdqEc
/9lZDApqWuCPadZN+pGouqLysesIYsNxUhJ7dtWOWHl0vs7/3qkWmWun/2uOJMQh
ra2u8nA9g91FbOobWqjrDd6x3ZJoGQf4zLqjmn/P514gb697788e573WN/MpQ5XI
Fl7aM2d6/GJiq6LC9T2gSUW4rbPBiqOCeiUx7Kd/sVm41p9TOA7fEG4bYddCfDsN
xaQJH6VRK3NOuBUGeL+iQEVF5Xs6Yp+U+jwvv2M5Lel3EqAYo5xXTx4ls0xaxDCu
fudcAh8CMMqx3fguSb7Mi31WlnZpk0fDuWQVNKyDP7lYpwc4nCCGNKCj622ZSocH
AcQmX28L8pJdLYacv9pU3jPy4fHcQYvmTavTqowGnM08RGVtaSBNYXJpZSBPYmVu
b3VyIChsb3ZlciBvZiBjb2RpbmcpIDxkZW1pb2Jlbm91ckBnbWFpbC5jb20+wsF4
BBMBAgAiBQJafgNKAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRCyiLVf
/5wiwYa/EACv8a2+MMou9cSCNoZBQaU+fTmyzft9hUE+0d5W2UY1RY3OsjFIzm9R
/4SVccfsqOYLEo+S0vQMIIIqFEq3FCpXXwPzyimotps05VA8U3Bd7yseojFygOgK
sAMOAee2RCaDDOnoJue01dfZMzzHPO/TVdp3OvnpWipfv5G1Xg96rwbhMLE3tg6N
xwAHa31Bv4/Xq8CJOoIWvx6fcmZQpz01/lSvsYn0KrfEbTKkuUf0vM9JrCTCP2oz
VNN5BYzqaq2M4r+jmSyeXLim922VOWqGkUEQ85BSEemqrRS06IU6NtEMsF8EWt/b
hWjk/9GDKTcnpdJHTrMxTspExBiNrvpI2t+YPU5B/dJJAUxvmhFrbSIbdB8umBZs
I3AMYrEmpAbh5x7jEjoskUC7uN3o9vpg1oCLS2ePDLtAtyBtbHnkA4xGD7ar8mem
xpH9lY/i+sC6CyyIUWcUDnnagKyJP0m9ks0GLsTeOCA0bft2XA6rD6aaCnMUsndT
ctrab42CV5XypjmC4U1rPJ8JQJUh1/3P48/8sMH+3krxpJ06KNWNFaUbaMTGiltZ
7x9DngklSYrX0T+2G4kVXNmjaljwkoLahwLla2gUWwBSyofXdqyhQdwZsp01KXNQ
UCyT/Pg+aDcm/E7OMV3d4lf7g/CSxiX2GSEe6BlhSz+Lmd7ZJ3g32M1ARGVtaSBN
YXJpZSBPYmVub3VyIChJVEwgRW1haWwgS2V5KSA8ZGVtaUBpbnZpc2libGV0aGlu
Z3NsYWIuY29tPsLBjgQTAQgAOBYhBHaHTZ8TNroiWQcccbKItV//nCLBBQJgOEV+
AhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJELKItV//nCLBKwoP/1WSnFdv
SAD0g7fD0WlF+oi7ISFT7oqJnchFLOwVHK4Jg0e4hGn1ekWsF3Ha5tFLh4V/7UUu
obYJpTfBAA2CckspYBqLtKGjFxcaqjjpO1I2W/jeNELVtSYuCOZICjdNGw2Hl9yH
KRZiBkqc9u8lQcHDZKq4LIpVJj6ZQV/nxttDX90ax2No1nLLQXFbr5wb465LAPpU
lXwunYDij7xJGye+VUASQh9datye6orZYuJvNo8Tr3mAQxxkfR46LzWgxFCPEAZJ
5P56Nc0IMHdJZj0Uc9+1jxERhOGppp5jlLgYGK7faGB/jTV6LaRQ4Ad+xiqokDWp
mUOZsmA+bMbtPfYjDZBz5mlyHcIRKIFpE1l3Y8F7PhJuzzMUKkJi90CYakCV4x/a
Zs4pzk5E96c2VQx01RIEJ7fzHF7lwFdtfTS4YsLtAbQFsKayqwkGcVv2B1AHeqdo
TMX+cgDvjd1ZganGlWA8Sv9RkNSMchn1hMuTwERTyFTr2dKPnQdA1F480+jUap41
ClXgn227WkCIMrNhQGNyJsnwyzi5wS8rBVRQ3BOTMyvGM07j3axUOYaejEpg7wKi
wTPZGLGH1sz5GljD/916v5+v2xLbOo5606j9dWf5/tAhbPuqrQgWv41wuKDi+dDD
EKkODF7DHes8No+QcHTDyETMn1RYm7t0RKR4zsFNBFp+A0oBEAC9ynZI9LU+uJkM
eEJeJyQ/8VFkCJQPQZEsIGzOTlPnwvVna0AS86n2Z+rK7R/usYs5iJCZ55/JISWd
8xD57ue0eB47bcJvVqGlObI2DEG8TwaW0O0duRhDgzMEL4t1KdRAepIESBEA/iPp
I4gfUbVEIEQuqdqQyO4GAe+MkD0Hy5JH/0qgFmbaSegNTdQg5iqYjRZ3ttiswalq
l1/iSyv1WYeC1OAs+2BLOAT2NEggSiVOtxEfgewsQtCWi8H1SoirakIfo45Hz0tk
/Ad9ZWh2PvOGt97Ka85o4TLJxgJJqGEnqcFUZnJJriwoaRIS8N2C8/nEM53jb1sH
0gYddMU3QxY7dYNLIUrRKQeNkF30dK7V6JRH7pleRlf+wQcNfRAIUrNlatj9Txwi
vQrKnC9aIFFHEy/0mAgtrQShcMRmMgVlRoOA5B8RTulRLCmkafvwuhs6dCxN0GNA
ORIVVFxjx9Vn7OqYPgwiofZ6SbEl0hgPyWBQvE85klFLZLoj7p+joDY1XNQztmfA
rnJ9x+YV4igjWImINAZSlmEcYtd+xy3Li/8oeYDAqrsnrOjb+WvGhCykJk4urBog
2LNtcyCjkTs7F+WeXGUo0NDhbd3Z6AyFfqeF7uJ3D5hlpX2nI9no/ugPrrTVoVZA
grrnNz0iZG2DVx46x913pVKHl5mlYQARAQABwsFfBBgBAgAJBQJafgNKAhsMAAoJ
ELKItV//nCLBwNIP/AiIHE8boIqReFQyaMzxq6lE4YZCZNj65B/nkDOvodSiwfwj
jVVE2V3iEzxMHbgyTCGA67+Bo/d5aQGjgn0TPtsGzelyQHipaUzEyrsceUGWYoKX
YyVWKEfyh0cDfnd9diAm3VeNqchtcMpoehETH8frRHnJdBcjf112PzQSdKC6kqU0
Q196c4Vp5HDOQfNiDnTf7gZSj0BraHOByy9LEDCLhQiCmr+2E0rW4tBtDAn2HkT9
uf32ZGqJCn1O+2uVfFhGu6vPE5qkqrbSE8TG+03H8ecU2q50zgHWPdHMOBvy3Ehz
fAh2VmOSTcRK+tSUe/u3wdLRDPwv/DTzGI36Kgky9MsDC5gpIwNbOJP2G/q1wT1o
Gkw4IXfWv2ufWiXqJ+k7HEi2N1sree7Dy9KBCqb+ca1vFhYPDJfhP75I/VnzHVss
Z/rYZ9+51yDoUABoNdJNSGUYl+Yh9Pw9pE3Kt4EFzUlFZWbE4xKL/NPno+z4J9aW
emLLszcYz/u3XnbOvUSQHSrmfOzX3cV4yfmjM5lewgSstoxGyTx2M8enslgdXhPt
hZlDnTnOT+C+OTsh8+m5tos8HQjaPM01MKBiAqdPgksm1wu2DrrwUi6ChRVTUBcj
6+/9IJ81H2P2gJk3Ls3AVIxIffLoY34E+MYSfkEjBz0E8CLOcAw7JIwAaeBTzsFN
BGbyLVgBEACqClxh50hmBepTSVlan6EBq3OAoxhrAhWZYEwN78k+ENhK68KhqC5R
IsHzlL7QHW1gmfVBQZ63GnWiraM6wOJqFTL4ZWvRslga9u28FJ5XyK860mZLgYhK
9BzoUk4s+dat9jVUbq6LpQ1Ot5I9vrdzo2p1jtQ8h9WCIiFxSYy8s8pZ3hHh5T64
GIj1m/kY7lG3VIdUgoNiREGf/iOMjUFjwwE9ZoJ26j9p7p1U+TkKeF6wgswEB1T3
J8KCAtvmRtqJDq558IU5jhg5fgN+xHB8cgvUWulgK9FIF9oFxcuxtaf/juhHWKMO
RtL0bHfNdXoBdpUDZE+mLBUAxF6KSsRrvx6AQyJs7VjgXJDtQVWvH0PUmTrEswgb
49nNU+dLLZQAZagxqnZ9Dp5l6GqaGZCHERJcLmdY/EmMzSf5YazJ6c0vO8rdW27M
kn73qcWAplQn5mOXaqbfzWkAUPyUXppuRHfrjxTDz3GyJJVOeMmMrTxH4uCaGpOX
Z8tN6829J1roGw4oKDRUQsaBAeEDqizXMPRc+6U9vI5FXzbAsb+8lKW65G7JWHym
YPOGUt2hK4DdTA1PmVo0DxH00eWWeKxqvmGyX+Dhcg+5e191rPsMRGsDlH6KihI6
+3JIuc0y6ngdjcp6aalbuvPIGFrCRx3tnRtNc7He6cBWQoH9RPwluwARAQABwsOs
BBgBCgAgFiEEdodNnxM2uiJZBxxxsoi1X/+cIsEFAmbyLVgCGwICQAkQsoi1X/+c
IsHBdCAEGQEKAB0WIQSilC2pUlbVp66j3+yzNoc6synyUwUCZvItWAAKCRCzNoc6
synyU85gD/0T1QDtPhovkGwoqv4jUbEMMvpeYQf+oWgm/TjWPeLwdjl7AtY0G9Ml
ZoyGniYkoHi37Gnn/ShLT3B5vtyI58ap2+SSa8SnGftdAKRLiWFWCiAEklm9FRk8
N3hwxhmSFF1KR/AIDS4g+HIsZn7YEMubBSgLlZZ9zHl4O4vwuXlREBEW97iL/FSt
VownU2V39t7PtFvGZNk+DJH7eLO3jmNRYB0PL4JOyyda3NH/J92iwrFmjFWWmmWb
/Xz8l9DIs+Z59pRCVTTwbBEZhcUc7rVMCcIYL+q1WxBG2e6lMn15OQJ5WfiE6E0I
sGirAEDnXWx92JNGx5l+mMpdpsWhBZ5iGTtttZesibNkQfd48/eCgFi4cxJUC4PT
UQwfD9AMgzwSTGJrkI5XGy+XqxwOjL8UA0iIrtTpMh49zw46uV6kwFQCgkf32jZM
OLwLTNSzclbnA7GRd8tKwezQ/XqeK3dal2n+cOr+o+Eka7yGmGWNUqFbIe8cjj9T
JeF3mgOCmZOwMI+wIcQYRSf+e5VTMO6TNWH5BI3vqeHSt7HkYuPlHT0pGum88d4a
pWqhulH4rUhEMtirX1hYx8Q4HlUOQqLtxzmwOYWkhl1C+yPObAvUDNiHCLf9w28n
uihgEkzHt9J4VKYulyJM9fe3ENcyU6rpXD7iANQqcr87ogKXFxknZ97uEACvSucc
RbnnAgRqZ7GDzgoBerJ2zrmhLkeREZ08iz1zze1JgyW3HEwdr2UbyAuqvSADCSUU
GN0vtQHsPzWl8onRc7lOPqPDF8OO+UfN9NAfA4wl3QyChD1GXl9rwKQOkbvdlYFV
UFx9u86LNi4ssTmU8p9NtHIGpz1SYMVYNoYy9NU7EVqypGMguDCL7gJt6GUmA0sw
p+YCroXiwL2BJ7RwRqTpgQuFL1gShkA17D5jK4mDPEetq1d8kz9rQYvAR/sTKBsR
ImC3xSfn8zpWoNTTB6lnwyP5Ng1bu6esS7+SpYprFTe7ZqGZF6xhvBPf1Ldi9UAm
U2xPN1/eeWxEa2kusidmFKPmN8lcT4miiAvwGxEnY7Oww9CgZlUB+LP4dl5VPjEt
sFeAhrgxLdpVTjPRRwTd9VQF3/XYl83j5wySIQKIPXgT3sG3ngAhDhC8I8GpM36r
8WJJ3x2yVzyJUbBPO0GBhWE2xPNIfhxVoU4cGGhpFqz7dPKSTRDGq++MrFgKKGpI
ZwT3CPTSSKc7ySndEXWkOYArDIdtyxdE1p5/c3aoz4utzUU7NDHQ+vVIwlnZSMiZ
jek2IJP3SZ+COOIHCVxpUaZ4lnzWT4eDqABhMLpIzw6NmGfg+kLBJhouqz81WITr
EtJuZYM5blWncBOJCoWMnBEcTEo/viU3GgcVRw=3D=3D
=3Dx94R
-----END PGP PUBLIC KEY BLOCK-----

--------------bqBHrF0KlkMQcY9Dc2SWglro--

--------------tqmSlId12aASw5ET13epmu6A--

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

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

iQIzBAEBCAAdFiEEopQtqVJW1aeuo9/sszaHOrMp8lMFAmiO5JQACgkQszaHOrMp
8lPhRA//RxahrmHLIgb1/zvQ3YPLHB5/a92E0IV3yYbs5ymrFTsf0AKyJRBqQzUh
GDPzdIf2cE4pSxEc6Kk/TtDBcM3pXpD44mZQwgOAGppFwm02y1J1YUcbLr59XA22
YS3+ZRuVK5ELHDQsX2UWjRNRxIxV5OOBcWmjxAaNB1/Qp/ohydy/Uc0rYhb5Tvjr
UUG5kXcxTef+3Cr122YLKk0Si7x1LVb0XWSpMP2yPCsrtOvVxOvcMdTKoNOB/RNM
y0IGnxz7lIzWFAHnyZhD+XRPsc44gQmL+EySEEOjDRb7NW6ZBTF5o9FlIzH7QzYE
zb0Byf6j5SvZps797+myFLXPF4AEJfjFOuJmaihmpvZ2kjirQQsTM2sA8rxXZHoo
rGOiU05yUTmPj2EZ/r9thbnVjsG2OND27T1nRAe09yso7SjJy3VYDZ5P1FL9obar
E/+7j1omQl+HZmMZPU5laYcmqK4f9uFB7MhB0a1m+g+paiU/9z2nX752hb8nq6i1
ufEuWM7EtN4DKliDHc+3hF+5eFM4nj6s5iq+c1mxjq04O58Cx6saowZawsh1tge6
5yQxGNfkv4aevZEq28sM508SIT0t2YKGYMGoKm5dcyMjZRMmQYC4b/irS/VvF/yk
n2nql+yvNR3r7o3+J3UcTF/UJhCN2BbCxBOxzsvZ6/VCJzVuHjM=
=38xY
-----END PGP SIGNATURE-----

--------------1gFvVR9xjY5GAdqPj6Vym0sn--


From xen-devel-bounces@lists.xenproject.org Sun Aug 03 09:11:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 Aug 2025 09:11:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068287.1432296 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiUkU-0001Oq-CT; Sun, 03 Aug 2025 09:11:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068287.1432296; Sun, 03 Aug 2025 09: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 1uiUkU-0001Oi-8h; Sun, 03 Aug 2025 09:11:22 +0000
Received: by outflank-mailman (input) for mailman id 1068287;
 Sun, 03 Aug 2025 07:56:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oNBg=2P=grueninger.de=foss@srs-se1.protection.inumbo.net>)
 id 1uiTaU-0000E0-0Q
 for xen-devel@lists.xenproject.org; Sun, 03 Aug 2025 07:56:58 +0000
Received: from mo4-p00-ob.smtp.rzone.de (mo4-p00-ob.smtp.rzone.de
 [85.215.255.24]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6c7e33ad-703f-11f0-a321-13f23c93f187;
 Sun, 03 Aug 2025 09:56:55 +0200 (CEST)
Received: from [IPV6:2001:9e8:a0be:6a00:96e6:f7ff:fed5:1fce]
 by smtp.strato.de (RZmta 52.1.2 AUTH) with ESMTPSA id I5c4521737usMHU
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits))
 (Client did not present a certificate)
 for <xen-devel@lists.xenproject.org>;
 Sun, 3 Aug 2025 09:56:54 +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>
X-Inumbo-ID: 6c7e33ad-703f-11f0-a321-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; t=1754207814; cv=none;
    d=strato.com; s=strato-dkim-0002;
    b=l7/gIZbqhbUd/Jek7SDRLb3HCoGVbyb5+WFOyuRgOw6A33WjmludgjkXU9bNxDX1Cu
    fQ8vivlLCYoPKrtkOO7jRWYUAxrIYHo7NYo5GjFOnbROWUhIPs/VKQSOyAZLi8FPNiI+
    F00fcfg6jTACs0oFoon6aGfbU+vWvALRXBIGNrWjKiELil5/HD7o89xLh0S27NHen5yL
    Vd606J5AcdxfCwdsgWEkDtxkMOi1jzeC6VnoOf4n/gdvUKC5MLaOk9DgQ1G/pxwi8rjn
    OajiuHt95VKwwsy0ZL5tIrE14StRdhTMWQzn49Hb3hrpxBjvTj4/2gh+Lna3dE75NvpA
    VgSQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; t=1754207814;
    s=strato-dkim-0002; d=strato.com;
    h=Subject:From:To:Date:Message-ID:Cc:Date:From:Subject:Sender;
    bh=oxRyrRdMFbMhmCe0eq97BCX9Ag5zxLASFk7yCih8xD8=;
    b=QhQf99972d6oA9vx9kfR4fYSR0qLmGltJWNFfR4OnOqh7UdUC3/71+Dc8u3z0/l6HH
    tbyXWzOM9yoid0ZcfuWw39TFeXbg69YByaUsb7dAEyLfhAKAL13zQ4uw4xneJk4fymxK
    iMjqt/XstPqh68DK025l8Sop9ZDUkm8uldAVrpB45bX6OConI2I1JdPMAbjRioiqV6MS
    HcEpfsVlji+ZljOaUG2lOzVNKWgzwGp45HbgtS5ydakAgFTN2lWoGqTSFWn0ulfBSKbX
    jk8GO8ydl4M6oIsZBkmn9tgTzkcLHjapkFtyO3XbHJoBkhe5mW0+MtCPH4Vdlf0P7jaF
    WiHg==
ARC-Authentication-Results: i=1; strato.com;
    arc=none;
    dkim=none
X-RZG-CLASS-ID: mo00
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1754207814;
    s=strato-dkim-0002; d=grueninger.de;
    h=Subject:From:To:Date:Message-ID:Cc:Date:From:Subject:Sender;
    bh=oxRyrRdMFbMhmCe0eq97BCX9Ag5zxLASFk7yCih8xD8=;
    b=rSyl7eU2W6yjoqmKZ4pKvmz7QaS7vTg/S1p5fshtRHqskT/tC8/+yhpBQ/0zrgSoYk
    XBQlSynlqU7yjSy9fHJWAC+pduK2S14+0iM6A9xOB7PyWhqZSXIuE05YQatjCSUP2Yuz
    RSzINemRCZpFRLGoMrhKi9+5lflAb/T88A3Lgvf8lfkoU1mKL5v+beWwqJijMm1QcN/U
    ptbqOZwI+abEdwcgI0A+TV5reZU3mCTXBuXYBAq/WwEDLBqPehBuHWWM+kHSWR0II1JQ
    hmdcqQGx0SekiuYRoD+oUHOZ7b504zdortEEQvYC61N0TE+82qY98X4A1PwrTQOmwGi8
    Gnsg==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; t=1754207814;
    s=strato-dkim-0003; d=grueninger.de;
    h=Subject:From:To:Date:Message-ID:Cc:Date:From:Subject:Sender;
    bh=oxRyrRdMFbMhmCe0eq97BCX9Ag5zxLASFk7yCih8xD8=;
    b=5RK8Bsmf7+FSi5kS3oJ12SycQLvkL5XMLtqrbEMbBIhKyRe46XnoDKjvOa1ArzUoEj
    ZKf0jPz+I71qVJaDK2Bg==
X-RZG-AUTH: ":KmMXZmCvaeohc7VigFhGhYQlaG+8Y2WlGQK9xTU69ffPMhoFOSeiO+VI+ciLbGc4IjutRIFZHx2sq+HYevetoU0qrrbpApDaHjU="
Message-ID: <d49ad645-35dd-4bd2-b166-d1803b2d95ba@grueninger.de>
Date: Sun, 3 Aug 2025 10:52:37 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
To: xen-devel@lists.xenproject.org
Content-Language: de-DE, en-US
From: =?UTF-8?Q?Christoph_Gr=C3=BCninger?= <foss@grueninger.de>
Subject: Fork or replace dependency yajl?
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Dear Xen developers,

you are using the dependency yajl (yet another json library, [1]) to 
parse JSON files. The project seems abandoned with the last commit 10 
years ago, the last release over 11 years ago, and 75 open pull 
requests. Packaging yajl requires patches, e.g., to make it compatible 
with CMake 4.0.
There are some forks but none has replaced the old one yet [2].

I think there are three paths forward:
1. Xen could pick a prominent fork and use it as its main dependency.
2. Xen could create a fork of its own, hopefully attracting more people 
interested in an maintained successor of yajl.
3. Switch to a different JSON parser library that remained healthy.

Sure, you could stick to option 4., do nothing an offload the burden to 
fix yajl to distribution packagers.

Xen is an important project and its decision can create momentum that 
might lead other projects.

[1] https://github.com/lloyd/yajl
[2] https://github.com/lloyd/yajl/issues/252

Kind regards,
Christoph

-- 
Most customers will not accept source code with compile errors in it.
                  Dan Saks, CppCon 2016 (https://youtu.be/D7Sd8A6_fYU)



From xen-devel-bounces@lists.xenproject.org Sun Aug 03 09:48:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 Aug 2025 09:48:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068339.1432315 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiVKE-0005Ya-A7; Sun, 03 Aug 2025 09:48:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068339.1432315; Sun, 03 Aug 2025 09:48:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiVKE-0005YT-7K; Sun, 03 Aug 2025 09:48:18 +0000
Received: by outflank-mailman (input) for mailman id 1068339;
 Sun, 03 Aug 2025 09:48:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f/pN=2P=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1uiVKC-0005K3-VN
 for xen-devel@lists.xenproject.org; Sun, 03 Aug 2025 09:48:16 +0000
Received: from NAM02-BN1-obe.outbound.protection.outlook.com
 (mail-bn1nam02on20624.outbound.protection.outlook.com
 [2a01:111:f403:2407::624])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fa7685a1-704e-11f0-a321-13f23c93f187;
 Sun, 03 Aug 2025 11:48:16 +0200 (CEST)
Received: from SJ0PR03CA0258.namprd03.prod.outlook.com (2603:10b6:a03:3a0::23)
 by DS2PR12MB9823.namprd12.prod.outlook.com (2603:10b6:8:2ad::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.18; Sun, 3 Aug
 2025 09:48:12 +0000
Received: from SJ1PEPF0000231C.namprd03.prod.outlook.com
 (2603:10b6:a03:3a0:cafe::6) by SJ0PR03CA0258.outlook.office365.com
 (2603:10b6:a03:3a0::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.20 via Frontend Transport; Sun,
 3 Aug 2025 09:48:12 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF0000231C.mail.protection.outlook.com (10.167.242.233) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Sun, 3 Aug 2025 09:48:11 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) 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; Sun, 3 Aug 2025 04:48: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>
X-Inumbo-ID: fa7685a1-704e-11f0-a321-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=c0m/qG1tmFSkKg8cBXdBedElg+l6UQ0Qq6i2XutMu98toKzdvRzV8KG0HkrW3gewcZ51xz9rUW0veRzw0cw4SRRfF5JegNAj1k58fXmusQfEhdPOdNcEf4sbE9XeSAHu5UalEh+BVgntwLESNCrIT8Ug2Wd1J8y1SM0wTqcO58DgE7RFsma5xCrkbOJ8yEPdDk5JP4j11xeMOGU2Ra8F+R/d9kJ3OSLobrWwB1zv5tGNdYBMC/oq9gdBdmqRFM/863a7r4p7r7kQe5kSL137V7NwIvUM+FPguOQFeXh+rkYBZ0LgzM5sOag9daVMLPI/YqUR3xTrhqWGxfPruNcjKw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wMenH/9InGy31gRbO7Zt6kQeOlelkssdQv5WC1YzgYM=;
 b=jy6LBqOL7AGjs6rMqyOqNvXOePVWb9Fyf36Dot5cj9LriZw7w4vCwHDx7wRiyAoZzagACfcH9x+DeLMmOnkG528ueMXP4Z4HsBi9qX3rRJhWygJKUIiRP6TYvHQpPCYVL+fjJeKwQw2kaZKXLv+Q8fhGxro0lNa3iSvV8o5XlPgA1P8evq5un3h2vyAjfRZ4hYH25rvBY2EtCZjXN3IOVqnODimiIX1CqLzC294rGxJ7O5JM6RbZsSSIJFIwfyypHRfVl47X4YE7AcgNg6LqD62HczUIObzuII3iIEBVkYcblT9NHSTH4i1ktvCnEchzdxwWbW0vxleMRie02lwqgQ==
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=wMenH/9InGy31gRbO7Zt6kQeOlelkssdQv5WC1YzgYM=;
 b=29ddRivhTTAezUFe85aYMqQGxww+teKFngczXQ0ehnR/V7MOUJTIQXDkPDvXMJdV7SOWuh2bPm2kjDTyjrQPCHPF4puSKbAHV4+dCQXMDs5f050W/cu31+PQYn3SCWoner2P/72ZVX2CzahUKKcTLithPionVgErWiw7/ajbto4=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v1 02/25] xen/x86: consolidate vram tracking support
Date: Sun, 3 Aug 2025 17:47:15 +0800
Message-ID: <20250803094738.3625269-3-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250803094738.3625269-1-Penny.Zheng@amd.com>
References: <20250803094738.3625269-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: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF0000231C:EE_|DS2PR12MB9823:EE_
X-MS-Office365-Filtering-Correlation-Id: e91c1bc7-7004-4748-fd97-08ddd272dbe2
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?O3aToYzGtR3S1RoZDociDoTttKhSZ6hGS4l5daEiouiP97c85Vy2UBZ/q20l?=
 =?us-ascii?Q?OVlJysAVCyvJfwP0JekUi4+Tb1f7tGSima7ciztu1l817aIpQolf6yoWEcEZ?=
 =?us-ascii?Q?B+CQOg9dm02K4socorcong6n2VxBb7zDMZn+9+mC9FT4opbuUQBLPjzJlhbt?=
 =?us-ascii?Q?ntH4Bl8DF2rREZNXsjtXvZY+T+6C8lPqRPZYlHlr1mgB6qli5ktlwJroM4tQ?=
 =?us-ascii?Q?xBq1IdBY0toc6gL/Fy9ipIDFUpb0j8QSYKRmxfQolXuTT+OyG9aWasKic41+?=
 =?us-ascii?Q?XpiAuSRBlFOWxnntw5FxymlC3MihfrjmZpMqXfcyIrqK2CSHf5OSa1NkO5EI?=
 =?us-ascii?Q?ZeCiWIjVk0ka/aVTz1tILViMMFWOvAjDEJ8G5gPi1wI2oK9v0g7Dn9dEek7p?=
 =?us-ascii?Q?R8z6OjHYr32pmqVKBHuzKSM6mQR4WyDwPdtGfGjYv9pLxleZe686j+SlxT81?=
 =?us-ascii?Q?9p4CZgQShom2UdEZhxdmPFyTGi5zHegqYdPPwIjx9guyBxABn0fhA2LuUH7h?=
 =?us-ascii?Q?XPnbk9omrRroV4LHqSXwej2HMvSqIHm8962o4a8d4YbUubQ5XD9dvrQ8ACsB?=
 =?us-ascii?Q?vCRXfL5w2gxs4t5XW6r2s93y040WrLdcRn8xg+qnImDi1zWP94zMK44tBofH?=
 =?us-ascii?Q?PTE3NAv7nXPipqCn5u5eYs7gyXpUZ9ahO4CaA75h1c50ZVwEy5Xtz9F3tQfm?=
 =?us-ascii?Q?Ca1W938RAkyz5SusThxFIv9I1OUc821JzxCe8Ci2vXPP5ZfbYVk71pscot/y?=
 =?us-ascii?Q?onkd1ohUIxX2SD4HP0aaRt6dZlmxRQtkuppvVxDe9VejnCvWc02hzp3LLp3x?=
 =?us-ascii?Q?lULjDYXUWz+D+t90wpnnKdlkI1s+1jRmHM2Sf6IpoC3WT4cJnPxi3UZkgcRx?=
 =?us-ascii?Q?s8ahsgWe2lP9+ATE6Gl9ezJ1OlSB1v6rv5YhCyk0kLzwU+fb/kycaSaKUmEb?=
 =?us-ascii?Q?Q9NLzxEDl/6xaDBXWVI0SoGrEpebStI//Cj0R0HrdGdaVkkZ+toFib6XpcXD?=
 =?us-ascii?Q?DfpFqZX4rd9AK1QJYlBgASJu63uraXZGtshD8nGypkqIcyl0H9acnCCF4LqX?=
 =?us-ascii?Q?fiJpL6bF0QCz0xO9OqqxYbcoivLh/rCZ/ApWPSMxaNhj9J0pV6nq8geGccg3?=
 =?us-ascii?Q?vZr22f+gXhOjIznprijUnPX7dWbRGR0f7BZq6mG8TPMYCz5+PLaPMqdzpc4q?=
 =?us-ascii?Q?c6pD9nzL9TEwAyhSJWh7hvtWyInhpgGsCInjknhXx7fdO7rS5pXMnArHRoPH?=
 =?us-ascii?Q?qtMp0cN5DTyxzO90rAzUTy31dz1CABi0Yr2xJBeQL6CONzIUDMA0qrYYUhJc?=
 =?us-ascii?Q?AtNyIXYyNgaTzMGKYhJzgiliRETt42b0o8u3iLlVMsDbWzPbM0FNwDrHNbLq?=
 =?us-ascii?Q?YaxDISYKQ0j6D85tTAjjOp4358D556kEoeB3Mij04/Zd15sodZuCdWAGwbUT?=
 =?us-ascii?Q?Dzj9KF/+ziblR7+4mesM+RjlvZyHhRz+5C+UAP6DuGH3P7PcQx+ewiF1mJnU?=
 =?us-ascii?Q?71K2qADh30ZbOrMeh3uM26RDDiVW6UDSHDrD?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(376014)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2025 09:48:11.2327
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e91c1bc7-7004-4748-fd97-08ddd272dbe2
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF0000231C.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS2PR12MB9823

Flag PG_log_dirty is for paging log dirty support, not vram tracking support.
However data structure sh_dirty_vram{} and function paging_log_dirty_range()
designed for vram tracking support, are guarded with PG_log_dirty.
We release both from PG_log_dirty, and also move paging_log_dirty_range() into
hap.c, to make it static.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
 xen/arch/x86/include/asm/paging.h | 32 +++++++++++++------------------
 xen/arch/x86/mm/hap/hap.c         | 32 +++++++++++++++++++++++++++++++
 xen/arch/x86/mm/paging.c          | 32 -------------------------------
 3 files changed, 45 insertions(+), 51 deletions(-)

diff --git a/xen/arch/x86/include/asm/paging.h b/xen/arch/x86/include/asm/paging.h
index 8a2a0af408..173a569610 100644
--- a/xen/arch/x86/include/asm/paging.h
+++ b/xen/arch/x86/include/asm/paging.h
@@ -133,13 +133,20 @@ struct paging_mode {
     (DIV_ROUND_UP(PADDR_BITS - PAGE_SHIFT - (PAGE_SHIFT + 3), \
                   PAGE_SHIFT - ilog2(sizeof(mfn_t))) + 1)
 
-#if PG_log_dirty
+#ifdef CONFIG_HVM
+/* VRAM dirty tracking support */
+struct sh_dirty_vram {
+    unsigned long begin_pfn;
+    unsigned long end_pfn;
+#ifdef CONFIG_SHADOW_PAGING
+    paddr_t *sl1ma;
+    uint8_t *dirty_bitmap;
+    s_time_t last_dirty;
+#endif
+};
+#endif
 
-/* get the dirty bitmap for a specific range of pfns */
-void paging_log_dirty_range(struct domain *d,
-                            unsigned long begin_pfn,
-                            unsigned long nr,
-                            uint8_t *dirty_bitmap);
+#if PG_log_dirty
 
 /* log dirty initialization */
 void paging_log_dirty_init(struct domain *d, const struct log_dirty_ops *ops);
@@ -171,19 +178,6 @@ bool paging_mfn_is_dirty(const struct domain *d, mfn_t gmfn);
 #define L4_LOGDIRTY_IDX(pfn) ((pfn_x(pfn) >> (PAGE_SHIFT + 3 + PAGETABLE_ORDER * 2)) & \
                               (LOGDIRTY_NODE_ENTRIES-1))
 
-#ifdef CONFIG_HVM
-/* VRAM dirty tracking support */
-struct sh_dirty_vram {
-    unsigned long begin_pfn;
-    unsigned long end_pfn;
-#ifdef CONFIG_SHADOW_PAGING
-    paddr_t *sl1ma;
-    uint8_t *dirty_bitmap;
-    s_time_t last_dirty;
-#endif
-};
-#endif
-
 #else /* !PG_log_dirty */
 
 static inline void paging_log_dirty_init(struct domain *d,
diff --git a/xen/arch/x86/mm/hap/hap.c b/xen/arch/x86/mm/hap/hap.c
index ec5043a8aa..668a233923 100644
--- a/xen/arch/x86/mm/hap/hap.c
+++ b/xen/arch/x86/mm/hap/hap.c
@@ -36,6 +36,38 @@
 /*          HAP VRAM TRACKING SUPPORT           */
 /************************************************/
 
+#ifdef CONFIG_HVM
+static void paging_log_dirty_range(struct domain *d,
+                                   unsigned long begin_pfn,
+                                   unsigned long nr,
+                                   uint8_t *dirty_bitmap)
+{
+    struct p2m_domain *p2m = p2m_get_hostp2m(d);
+    int i;
+    unsigned long pfn;
+
+    /*
+     * Set l1e entries of P2M table to be read-only.
+     *
+     * On first write, it page faults, its entry is changed to read-write,
+     * and on retry the write succeeds.
+     *
+     * We populate dirty_bitmap by looking for entries that have been
+     * switched to read-write.
+     */
+
+    p2m_lock(p2m);
+
+    for ( i = 0, pfn = begin_pfn; pfn < begin_pfn + nr; i++, pfn++ )
+        if ( !p2m_change_type_one(d, pfn, p2m_ram_rw, p2m_ram_logdirty) )
+            dirty_bitmap[i >> 3] |= (1 << (i & 7));
+
+    p2m_unlock(p2m);
+
+    guest_flush_tlb_mask(d, d->dirty_cpumask);
+}
+#endif /* CONFIG_HVM */
+
 /*
  * hap_track_dirty_vram()
  * Create the domain's dv_dirty_vram struct on demand.
diff --git a/xen/arch/x86/mm/paging.c b/xen/arch/x86/mm/paging.c
index c77f4c1dac..1216a181c3 100644
--- a/xen/arch/x86/mm/paging.c
+++ b/xen/arch/x86/mm/paging.c
@@ -583,38 +583,6 @@ static int paging_log_dirty_op(struct domain *d,
     return rv;
 }
 
-#ifdef CONFIG_HVM
-void paging_log_dirty_range(struct domain *d,
-                           unsigned long begin_pfn,
-                           unsigned long nr,
-                           uint8_t *dirty_bitmap)
-{
-    struct p2m_domain *p2m = p2m_get_hostp2m(d);
-    int i;
-    unsigned long pfn;
-
-    /*
-     * Set l1e entries of P2M table to be read-only.
-     *
-     * On first write, it page faults, its entry is changed to read-write,
-     * and on retry the write succeeds.
-     *
-     * We populate dirty_bitmap by looking for entries that have been
-     * switched to read-write.
-     */
-
-    p2m_lock(p2m);
-
-    for ( i = 0, pfn = begin_pfn; pfn < begin_pfn + nr; i++, pfn++ )
-        if ( !p2m_change_type_one(d, pfn, p2m_ram_rw, p2m_ram_logdirty) )
-            dirty_bitmap[i >> 3] |= (1 << (i & 7));
-
-    p2m_unlock(p2m);
-
-    guest_flush_tlb_mask(d, d->dirty_cpumask);
-}
-#endif
-
 /*
  * Callers must supply log_dirty_ops for the log dirty code to call. This
  * function usually is invoked when paging is enabled. Check shadow_enable()
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sun Aug 03 09:48:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 Aug 2025 09:48:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068338.1432306 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiVK9-0005KG-3n; Sun, 03 Aug 2025 09:48:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068338.1432306; Sun, 03 Aug 2025 09:48: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 1uiVK9-0005K9-0J; Sun, 03 Aug 2025 09:48:13 +0000
Received: by outflank-mailman (input) for mailman id 1068338;
 Sun, 03 Aug 2025 09:48:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f/pN=2P=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1uiVK7-0005K3-QM
 for xen-devel@lists.xenproject.org; Sun, 03 Aug 2025 09:48:12 +0000
Received: from NAM04-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam04on2062b.outbound.protection.outlook.com
 [2a01:111:f403:2409::62b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f639656b-704e-11f0-a321-13f23c93f187;
 Sun, 03 Aug 2025 11:48:10 +0200 (CEST)
Received: from BYAPR21CA0003.namprd21.prod.outlook.com (2603:10b6:a03:114::13)
 by SA1PR12MB7367.namprd12.prod.outlook.com (2603:10b6:806:2b5::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8964.21; Sun, 3 Aug
 2025 09:48:04 +0000
Received: from SJ1PEPF0000231A.namprd03.prod.outlook.com
 (2603:10b6:a03:114:cafe::c5) by BYAPR21CA0003.outlook.office365.com
 (2603:10b6:a03:114::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9031.0 via Frontend Transport; Sun, 3
 Aug 2025 09:48:03 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF0000231A.mail.protection.outlook.com (10.167.242.231) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Sun, 3 Aug 2025 09:48:03 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) 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; Sun, 3 Aug 2025 04:47: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>
X-Inumbo-ID: f639656b-704e-11f0-a321-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Gl/6lGs5VL+yis+ga1yMNVqxbqFgrKOffGFlrWNE2heOykgPN0NSJbL1mxwmSuUi52eA5pbt5Y3C70gU2iIqMqMzLWxIc+N2VOuIWfjo3oIz7yx6OJbjp0ORA2ux7S7+vEWoGF8OTIlbiM2xZDeUKgD+O+39AcUoJLEGIvLXfU9daZ0FaKKWphfGSViddkrBjgRUcbEgUAO2JdbekWUePETr7MS7LrcipK6pFnJ8WpHB0fuHu76Ef8Ufk3AypZ2pjcp6EvQVZw6qwrUvFly0I0AIvQrBywdZwlQJubn7eavmAxY5iBgo9JlTez8j94viey8DsJC/WNEK2NiM3N9Qsw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=L979/F3k7RovmtHHOlf03f4PubJLrDTXgd8cZ0e9Eqw=;
 b=Z7UQ/LzDm2dcXbghMXUgXdepSi5H4LFdJLYE/bs2r9k+lvhvR+aNSWpcK+Lfy5Q0+Hu7f8SmTvMJgKttbK7ZzYCFRTxrD/awThRwqdwM8RFiRTbAN4a9xFTpRBlUmJCIJtPwjKZEhve+REvn5yNBWQNHra1CGYMajXjnKYWTeaIQxTr3FteF3fXFp5s08MDwfTbM3LF8DyhRyxGGpr0LL+t4ENfoNRVdev7r5Y3P055mCLckrNeH7EULIr9Hgi3a80h+J6wGZEmH5qHByVTyazZq2Ow+P4g5/aFM8Fhu/BZBm7FSEDGMtR1HDZzH/0/gxCRjiZ2XvYH1YVT+k7OEBg==
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=L979/F3k7RovmtHHOlf03f4PubJLrDTXgd8cZ0e9Eqw=;
 b=njGnhzZpD/4LFtM53y2VKSzxAvG/e10czwTnEeeYZ00DI65H7ICw72TWiZBnxuDEbRmgFeblwSyRV8zq877UKkcwCQjc9kes6WGUsuVG/omYmWHfsSRFkpcZ2GXn6rklMH9E1PXJnqmXoMkOcbKNgGe/xfS/B0mgsFpMfN4YbFU=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>, <xen-devel@dornerworks.com>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, "Tim
 Deegan" <tim@xen.org>, "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	"Shawn Anastasio" <sanastasio@raptorengineering.com>, Tamas K Lengyel
	<tamas@tklengyel.com>, Alexandru Isaila <aisaila@bitdefender.com>, "Petre
 Pircalabu" <ppircalabu@bitdefender.com>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman
	<bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, "Oleksii
 Kurochko" <oleksii.kurochko@gmail.com>, Christopher Clark
	<christopher.w.clark@gmail.com>, Dario Faggioli <dfaggioli@suse.com>,
	"Juergen Gross" <jgross@suse.com>, George Dunlap <gwd@xenproject.org>, Nathan
 Studer <nathan.studer@dornerworks.com>, Stewart Hildebrand <stewart@stew.dk>,
	"Meng Xu" <mengxu@cis.upenn.edu>, Rahul Singh <rahul.singh@arm.com>
Subject: [PATCH v1 00/25] Introduce CONFIG_DOMCTL
Date: Sun, 3 Aug 2025 17:47:13 +0800
Message-ID: <20250803094738.3625269-1-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF0000231A:EE_|SA1PR12MB7367:EE_
X-MS-Office365-Filtering-Correlation-Id: 171da079-ae70-4ada-63e3-08ddd272d6ff
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|82310400026|36860700013|7416014|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?4YJLWg53YuXRRbHewNJp1/ay/aZTIRmTCfeBuTVt1o6jH5q/nskB3DJwHd0z?=
 =?us-ascii?Q?MQV6swaYV+Agd6MxNsy37pFZRd423m88CizRRFJ937NTCTJo9VhgE7PzFbAX?=
 =?us-ascii?Q?Jw5r+tQ5037ztVLpbRpw8TPExO4I/FGoZd3VlF5NtHmdurz6VUJBcCu6tPmV?=
 =?us-ascii?Q?hIHNsdEiAMdpRekc8+Bgzs7nMCg1puYNmYT/AINBGQB6DhIXvL7DLE/8qjDE?=
 =?us-ascii?Q?ilcJ2Tae2SCG/USDUR72Yc5jOmZchtrupucDRnG3wnxOyrelLXKWswK3aOu/?=
 =?us-ascii?Q?ps/YzSChlezuvA/iqDb3EaRGRa0FLG/LzSo4SvQc55mBMnbXCDq/pOk40f4V?=
 =?us-ascii?Q?iG5ztomHS+EP7aZGXP1I09GvFOVURiQzyA8cbotsMT2k+lNQKC+r6VfF6iHE?=
 =?us-ascii?Q?Zs2Ui09CKZapU1OkS74zRuU1eglt5DvyTT8Lu+od8bfVLZw5vY9we6mqTmAr?=
 =?us-ascii?Q?7VzmZhWQ+65a+xyHiq8FSidAeyrDPRNxvCr+7JJvTl6N3QqwOeY0CJ+KAqyv?=
 =?us-ascii?Q?QbzYTQunR5sX4O9pYgNJtum+TkzmZkKRn4q23vbny8fhE2BnWoxOV/1YTdo/?=
 =?us-ascii?Q?VL2UOuV5MLul3bnmPF4VFfurVhQmtHe0GHaowp7etP8JU0qCr9CB1qQMedPU?=
 =?us-ascii?Q?9aq1WGPb7Ckgkm2Ga8svlUrVupLlsat3AWUo5anLSS4YFKNyKeobWIm/Wv/U?=
 =?us-ascii?Q?QFgcU8MJIOIF5FZlpis/3j7KGv+fPSYaz6ADGRxN0NFNoMSQTyrnxZVxNljX?=
 =?us-ascii?Q?Z2+GR9pHsJnnfeyU9GYVhkAOz/lk9j5EwlXB4MiH+sbOjL0jcBaMdlYJpfa5?=
 =?us-ascii?Q?3P8C9Ad9jXv480h0AaF4N+0Tb7N2zeCYE04beKfsU+TAVuMZmXNX6jgaeYIT?=
 =?us-ascii?Q?R72NDa95ULeKsXDQ6f53FIJd3scMDpt8WwAZAE+/1k5Cuo/E4Z5GcVbiAo8g?=
 =?us-ascii?Q?8Rkc4w1DC1Q12ODUi4dnADtyodcwhp60gMVVUg61BipZv41QuxLooyo2h6t5?=
 =?us-ascii?Q?i4weDD1cI5XZ4Gah+uEW0qfZKaRI+w1ttL9qWoOmFVG6bC7IqdOgjszpxikX?=
 =?us-ascii?Q?5oqiTrG9qoPxalj21VUUAXvF+6PR+sVs7SUdP7XMt9wr6z4NRm7hPOVlKyfj?=
 =?us-ascii?Q?iPJadFAxqnHYk5DndHyTkaQuej4ct7e6wHev2F4xS6S6l5WXfUFXkWZ9ds+f?=
 =?us-ascii?Q?5Bax2S1O4L7d88AKGCcbeccNCrBd2EwzNTSJqzSJ5ZD9lVagqEq7uVpoQE3U?=
 =?us-ascii?Q?DEQnUl02UeAnhU6yLSHzpXwRnhaKdItIBsjl2XOoySk4M8NYnfQ+O4rMO7NN?=
 =?us-ascii?Q?LrqCWtW/MXrNPkV1wJqepaddcHzUsuXdHYNC04R6CaD7Bz2W3keQUPvq+uVk?=
 =?us-ascii?Q?/4fvdOSjSufpRYanMc07zUcWcsZ0M3NVd7ONeBaJvKnxsMMh/cEgaJi019Ns?=
 =?us-ascii?Q?Qpz9NbODRP8+AxFWZ1EynWvD+pyHl42FyKnz/T8DAT/9fkFTzEwhpdRgq4V7?=
 =?us-ascii?Q?da7DjE1yu6t7tEUW4vvi5zDOwve6uUClAWnS?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(82310400026)(36860700013)(7416014)(13003099007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2025 09:48:03.0302
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 171da079-ae70-4ada-63e3-08ddd272d6ff
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF0000231A.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB7367

It can be beneficial for some dom0less systems to further reduce Xen footprint
via disabling some hypercalls handling code, which may not to be used &
required in such systems. Each hypercall has a separate option to keep
configuration flexible.

Options to disable hypercalls:
- sysctl
- domctl
- hvm
- physdev
- platform

This patch serie is only focusing on introducing CONFIG_DOMCTL. Different
options will be covered in different patch serie.

Features, like VM event, or paging log-dirty support, which fully rely on
domctl op, will be wrapped with CONFIG_SYSCTL, to reduce Xen footprint as
much as possible.

It is derived from Stefano Stabellini's commit "xen: introduce kconfig options to
disable hypercalls"(
https://lore.kernel.org/xen-devel/20241219092917.3006174-1-Sergiy_Kibrik@epam.com)

Penny Zheng (25):
  xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE
  xen/x86: consolidate vram tracking support
  xen/x86: complement PG_log_dirty wrapping
  xen: consolidate CONFIG_VM_EVENT
  xen: introduce CONFIG_DOMCTL
  xen/domctl: provide stub for domctl_lock_{acquire,release}
  xen/domctl: wrap around XEN_DOMCTL_pausedomain
  xen/domctl: wrap around XEN_DOMCTL_soft_reset
  xen/domctl: wrap around XEN_DOMCTL_destroydomain
  xen/domctl: wrap around XEN_DOMCTL_setnodeaffinity
  xen/domctl: wrap around XEN_DOMCTL_{getvcpuaffinity,setvcpuaffinity}
  xen/domctl: wrap around XEN_DOMCTL_scheduler_op
  xen/domctl: wrap around XEN_DOMCTL_getvcpucontext
  xen/domctl: wrap around XEN_DOMCTL_{irq_permission,iomem_permission}
  xen/domctl: wrap around XEN_DOMCTL_settimeoffset
  xen/domctl: wrap around XEN_DOMCTL_set_target
  xen: add stub for XEN_DOMCTL_getdomaininfo
  xen/domctl: wrap around XEN_DOMCTL_set_access_required
  xen: make CONFIG_VM_EVENT depend on DOMCTL
  xen/domctl: wrap around XEN_DOMCTL_set_virq_handler
  xen/domctl: wrap aound iommu-related domctl op
  xen/domctl: wrap around XEN_DOMCTL_{get,set}_paging_mempool_size
  xen/x86: make CONFIG_X86_PSR depend on SYSCTL || DOMCTL
  xen/domctl: wrap around arch-specific domctl op
  xen/domctl: wrap around domctl hypercall

 xen/arch/arm/arm32/Makefile                 |  2 +-
 xen/arch/arm/arm64/Makefile                 |  2 +-
 xen/arch/arm/domain.c                       |  5 ++
 xen/arch/arm/include/asm/tee/tee.h          |  2 +
 xen/arch/arm/mem_access.c                   |  2 +
 xen/arch/arm/mmu/p2m.c                      |  8 +++
 xen/arch/arm/mpu/p2m.c                      |  2 +
 xen/arch/arm/tee/ffa.c                      |  4 ++
 xen/arch/arm/tee/optee.c                    |  4 ++
 xen/arch/arm/tee/tee.c                      |  2 +
 xen/arch/arm/time.c                         |  2 +
 xen/arch/ppc/stubs.c                        |  6 ++
 xen/arch/riscv/stubs.c                      |  2 +
 xen/arch/x86/Kconfig                        |  1 +
 xen/arch/x86/Makefile                       |  4 +-
 xen/arch/x86/configs/pvshim_defconfig       |  1 +
 xen/arch/x86/domain.c                       |  4 ++
 xen/arch/x86/domctl.c                       |  4 ++
 xen/arch/x86/emul-i8254.c                   |  2 +
 xen/arch/x86/gdbsx.c                        |  4 ++
 xen/arch/x86/hvm/Makefile                   |  4 +-
 xen/arch/x86/hvm/hvm.c                      |  4 ++
 xen/arch/x86/hvm/pmtimer.c                  |  2 +
 xen/arch/x86/hvm/save.c                     |  2 +
 xen/arch/x86/hvm/svm/svm.c                  |  8 +++
 xen/arch/x86/hvm/vmx/vmx.c                  | 16 +++++
 xen/arch/x86/include/asm/hvm/hvm.h          | 22 +++++++
 xen/arch/x86/include/asm/hvm/monitor.h      | 65 ++++++++++++++++++++-
 xen/arch/x86/include/asm/hvm/vm_event.h     |  4 ++
 xen/arch/x86/include/asm/hypercall.h        |  2 +
 xen/arch/x86/include/asm/mem_access.h       |  9 +++
 xen/arch/x86/include/asm/monitor.h          | 15 +++++
 xen/arch/x86/include/asm/p2m.h              |  8 ++-
 xen/arch/x86/include/asm/paging.h           | 34 +++++------
 xen/arch/x86/mm/hap/hap.c                   | 38 ++++++++++++
 xen/arch/x86/mm/mem_access.c                |  2 +
 xen/arch/x86/mm/mem_paging.c                |  2 +
 xen/arch/x86/mm/mem_sharing.c               |  4 ++
 xen/arch/x86/mm/p2m-pod.c                   |  2 +
 xen/arch/x86/mm/p2m.c                       |  2 +
 xen/arch/x86/mm/paging.c                    | 36 ++----------
 xen/arch/x86/mm/shadow/common.c             |  8 +++
 xen/arch/x86/mm/shadow/none.c               |  4 ++
 xen/arch/x86/psr.c                          | 18 ------
 xen/arch/x86/time.c                         |  2 +
 xen/common/Kconfig                          |  9 ++-
 xen/common/Makefile                         |  5 +-
 xen/common/argo.c                           |  2 +
 xen/common/device-tree/device-tree.c        |  2 +
 xen/common/domain.c                         | 10 ++++
 xen/common/event_channel.c                  |  2 +
 xen/common/grant_table.c                    |  2 +
 xen/common/sched/arinc653.c                 |  2 +
 xen/common/sched/core.c                     |  6 ++
 xen/common/sched/credit.c                   |  4 ++
 xen/common/sched/credit2.c                  |  4 ++
 xen/common/sched/private.h                  |  4 ++
 xen/common/sched/rt.c                       |  4 ++
 xen/common/vm_event.c                       |  2 +
 xen/drivers/passthrough/amd/pci_amd_iommu.c |  8 +++
 xen/drivers/passthrough/arm/ipmmu-vmsa.c    |  6 ++
 xen/drivers/passthrough/arm/smmu-v3.c       |  4 ++
 xen/drivers/passthrough/arm/smmu.c          |  4 ++
 xen/drivers/passthrough/device_tree.c       |  6 ++
 xen/drivers/passthrough/iommu.c             |  2 +
 xen/drivers/passthrough/pci.c               |  6 ++
 xen/drivers/passthrough/vtd/iommu.c         |  6 ++
 xen/include/hypercall-defs.c                | 10 +++-
 xen/include/xen/domain.h                    | 18 ++++--
 xen/include/xen/mem_access.h                | 36 +++++++++++-
 xen/include/xen/monitor.h                   |  8 ++-
 xen/include/xen/vm_event.h                  | 24 +++++++-
 xen/include/xsm/dummy.h                     |  2 +
 xen/include/xsm/xsm.h                       | 40 ++++++++++---
 xen/lib/x86/Makefile                        |  2 +-
 xen/xsm/dummy.c                             | 16 ++++-
 xen/xsm/flask/hooks.c                       | 36 +++++++++---
 77 files changed, 550 insertions(+), 118 deletions(-)

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sun Aug 03 09:48:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 Aug 2025 09:48:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068340.1432326 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiVKG-0005nd-Kw; Sun, 03 Aug 2025 09:48:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068340.1432326; Sun, 03 Aug 2025 09:48:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiVKG-0005nB-Hf; Sun, 03 Aug 2025 09:48:20 +0000
Received: by outflank-mailman (input) for mailman id 1068340;
 Sun, 03 Aug 2025 09:48:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f/pN=2P=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1uiVKF-0005hH-55
 for xen-devel@lists.xenproject.org; Sun, 03 Aug 2025 09:48:19 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on2061a.outbound.protection.outlook.com
 [2a01:111:f403:2414::61a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fa39aed4-704e-11f0-b897-0df219b8e170;
 Sun, 03 Aug 2025 11:48:16 +0200 (CEST)
Received: from BYAPR21CA0017.namprd21.prod.outlook.com (2603:10b6:a03:114::27)
 by SJ2PR12MB8182.namprd12.prod.outlook.com (2603:10b6:a03:4fd::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.18; Sun, 3 Aug
 2025 09:48:10 +0000
Received: from SJ1PEPF0000231A.namprd03.prod.outlook.com
 (2603:10b6:a03:114:cafe::e1) by BYAPR21CA0017.outlook.office365.com
 (2603:10b6:a03:114::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9031.1 via Frontend Transport; Sun, 3
 Aug 2025 09:48:10 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF0000231A.mail.protection.outlook.com (10.167.242.231) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Sun, 3 Aug 2025 09:48:10 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) 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; Sun, 3 Aug 2025 04:48:01 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fa39aed4-704e-11f0-b897-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=WEYtYo4cK4NN2NLq29evqs4m5ANUxwzJGoMyn7RrNhPUGMdzsXxmRSiQ4qTYNfjL0jvlkFWHBmz+UxyTSVZxBO5+mWlMbnugFqzg2q52HCeu9RImu2I+/CIEzfJUmx9EJnZ8rhsKFBOJXlg1pm6frMY2myCC5aA5EvPZOu750M0DhsVEl+AmAdVL9rZlT+0MLkrZE4J8nmM52dF0Dt1BYYw+ggVyXOWhtlD+9wnbW9gRcOabV4YgTLKka/Dg+BT8jFcfzX+qLVA6hgSoIyN5hWOEchCdFZoiCKangkOP6xDjLE7+rCawVsqIWKeOcHyHmPwHbd4Y6W0WkrqsmwO+wQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=SFOt+PCzlFzbUDdrbC/A6T41ntOa9X+pZCsEOSsCT40=;
 b=VeSrGkQFhtjmrYBDlngbp1roUikEx9r4Y4DUTBL1vsMpyz8wZ54REz2P7Sw+DUUe8DX1IoZ0hEAscrvOjn8exbLTEim9BQg9q2IXLoTCzKi+pPJVrKJrNfbCboHBFzX3h4Y6Fj5JON1CFDf7PdOBmC/uRvSoMB6oYbuaI8m73fNLQuB1SDYzXqJCBLY4Rx/GirR7B9BdgomgPykBN7M94yzXkderAemIumqdk+Pr/7w26tln1eeSAL/YvgIgE+uGKokZ7GhXSYcTIYsVl78A1TNi6zTrUvlU026E/YY2X+faBixFDGmnNTQowjVp49/hxvGQZO+6j+goFci2bXvRqw==
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=SFOt+PCzlFzbUDdrbC/A6T41ntOa9X+pZCsEOSsCT40=;
 b=FRPuTqH0TUpTm5JBe+xsTMxHdGK+kdoNOB9w35+G/5Ibq9vfQ8TJ7YJLLho7xNBeQwJ9sYLBJM6CzSQ5McIf6wq2CoUYHcjZZOM9+yIOz/YZbhRZjm0qiTE+vdQefLaSKoag12LZHWbFPtYPBAufkvdW2WN6bFTdRFccxvtXFdQ=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 01/25] xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE
Date: Sun, 3 Aug 2025 17:47:14 +0800
Message-ID: <20250803094738.3625269-2-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250803094738.3625269-1-Penny.Zheng@amd.com>
References: <20250803094738.3625269-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: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF0000231A:EE_|SJ2PR12MB8182:EE_
X-MS-Office365-Filtering-Correlation-Id: 35a77a8c-7231-4743-9d25-08ddd272db7c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|82310400026|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?JxsVR9tR3AxbvdiAOCcP4ZRwwb9PQ9h6iPlqKe60DM1o3c7a4f55wTHD7jV6?=
 =?us-ascii?Q?UqmXg5CtHyWMr9OLS/Dnwg6GWZpzP40y5zY4g0WOp6UD0uNtnJWMoRU/aDZ7?=
 =?us-ascii?Q?OHj7LTkL6u/GwmkkHBB9kcwwAKJZOqWKGB6MFM5FE6+CflECt5sYMO/G0tO8?=
 =?us-ascii?Q?CTymen0fGfFe0yxm/bqUfsn2vSMi7jzphd2YoedKhKWNGDhgb3uX3nKNnUeK?=
 =?us-ascii?Q?chv9U33qDwJkQ2Xbm6fWK4hyVBW4OEy2tcZ9ITTtIrtf91Iuz266jqJYy4bn?=
 =?us-ascii?Q?LG6ASsxOb90PrZjKJI7+ZjQLTVhBNlUJwDOfCPpNfF5THmkXm895v+hfurjD?=
 =?us-ascii?Q?YcYXOiU7aw2v55sQ4S4QvNXP9zjICnmQUovRPDpORh+pUmzBp9HwmjnWbpWQ?=
 =?us-ascii?Q?6qQA6ssn+fySJPgcsPbmQUcvoVEFeJU2hJhlHRK9PktSeyP2tJQ6gc5SYToE?=
 =?us-ascii?Q?zflgUMuy+jbMno/iEQofffk09N+1k43NgIFoyrJ8+88/ggZb3qi9c0OihYYx?=
 =?us-ascii?Q?W+L5bXiflTqUtRWJu52Usp21ORCzTHGljyaIE7t/uV7z8OdiUKROs1Ed3kri?=
 =?us-ascii?Q?xkROF6WoVjfTZMsepB7das8jMVz/TFAkgag+ggZv/E7k2RNNqaeXEL7F+kME?=
 =?us-ascii?Q?7bEFEGt0egIFG8CmLlUYKvWrc3YFkOgwDIIfGqQgN3LfO1fxfkEtQupPTojo?=
 =?us-ascii?Q?lsyJGaeToPW0+qcY2biL4BG58uaESJMOOEmHhWPqzFZ6mSMgxnHawtwlhsRW?=
 =?us-ascii?Q?cHtB0y87cJ+eBWKy/hqQcqkA4ALpwyWY8iBwZgEA/RVUmyCSZuTRMkC4I7mN?=
 =?us-ascii?Q?5qJGq/iD/BU1szJzEY9LUujp1l0/wklvQ6FDGMPZ+ZvbGpzFRuIZyRo1HjLr?=
 =?us-ascii?Q?vtLkMW+TLvgSOWz8P17vTF4+tVzrASoHuuJ4TozrGKGstFA3zcBHbOZhL7sg?=
 =?us-ascii?Q?P3aHL9FwL98jaG53EjfgPE3cEzJgpvNuz9oG9Y9r4VDKNwj0bDd/2+yoaDTE?=
 =?us-ascii?Q?3eQyNz6B41d/magiJu4couQ3fBT28xPS1Twrp0+iGsrOIW3otKex7lAb7Qp8?=
 =?us-ascii?Q?NMSNs12Qq8TxNJnDWL1+J+UJzQ46Wy9r/gSlbvQ3pceWEPhcvdS3xt8fOfcQ?=
 =?us-ascii?Q?3GjsZ7Tuej0xh3b5LDcN9ygts2EmmZ9erpRPstdn3ROO9WqYGZo05b8roh6a?=
 =?us-ascii?Q?RpvdPZtsyG8jHsHsBKocpWHDRepA+WsVck4CO35dVsEhRvP/PnqcWobM4YTB?=
 =?us-ascii?Q?f9Xc1Oj2sA0kkaCvUw1+/UqBUBog7AGGqcn/ToUJNJObNv1TieiaGpDOu66z?=
 =?us-ascii?Q?E2yvpHKKWVWFQmkkYo5OESoe+XYhrIBnRnoXi6ver4kLI9nyuyfFtHmLKdR4?=
 =?us-ascii?Q?9dqIS1C0j14ihlTnuncgs7hVpFKIiTH9K/X8bdumTbLPXzTtVp66cMs/igoq?=
 =?us-ascii?Q?JzkK10ZTX/HVQs+xCTsZcpCZZsv1ANIq226z0QkvG1PEFfQm+7ktEWV2Rekh?=
 =?us-ascii?Q?wgRIbzWaUDpS5Uw9dTGvHbYwZ3gIjbV1yo0+?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2025 09:48:10.5614
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 35a77a8c-7231-4743-9d25-08ddd272db7c
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF0000231A.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB8182

In order to fix CI error of a randconfig picking both PV_SHIM_EXCLUSIVE=y and
HVM=y results in hvm.c being built, but domctl.c not being built, which leaves
a few functions, like domctl_lock_acquire/release() undefined, causing linking
to fail.
To fix that, we intend to move domctl.o out of the PV_SHIM_EXCLUSIVE Makefile
/hypercall-defs section, with this adjustment, we also need to release
redundant vnuma_destroy() stub definition and paging_domctl hypercall-defs
from PV_SHIM_EXCLUSIVE guardian, to not break compilation
Above change will leave dead code in the shim binary temporarily and will be
fixed with the introduction of CONFIG_DOMCTL.

Fixes: 568f806cba4c ("xen/x86: remove "depends on !PV_SHIM_EXCLUSIVE"")
Reported-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v1 -> v2:
- remove paging_domctl hypercall-defs
---
 xen/arch/x86/Makefile        | 2 +-
 xen/common/Makefile          | 5 +----
 xen/include/hypercall-defs.c | 6 +-----
 xen/include/xen/domain.h     | 4 ----
 4 files changed, 3 insertions(+), 14 deletions(-)

diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 5aab30a0c4..7676d7cdd8 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -28,6 +28,7 @@ obj-y += delay.o
 obj-y += desc.o
 obj-bin-y += dmi_scan.init.o
 obj-y += domain.o
+obj-y += domctl.o
 obj-bin-y += dom0_build.init.o
 obj-y += domain_page.o
 obj-y += e820.o
@@ -79,7 +80,6 @@ obj-y += vm_event.o
 obj-y += xstate.o
 
 ifneq ($(CONFIG_PV_SHIM_EXCLUSIVE),y)
-obj-y += domctl.o
 obj-y += platform_hypercall.o
 obj-$(CONFIG_COMPAT) += x86_64/platform_hypercall.o
 endif
diff --git a/xen/common/Makefile b/xen/common/Makefile
index c316957fcb..756ddf52c3 100644
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -11,6 +11,7 @@ obj-$(filter-out $(CONFIG_X86),$(CONFIG_ACPI)) += device.o
 obj-$(CONFIG_DEVICE_TREE_PARSE) += device-tree/
 obj-$(CONFIG_IOREQ_SERVER) += dm.o
 obj-y += domain.o
+obj-y += domctl.o
 obj-y += event_2l.o
 obj-y += event_channel.o
 obj-$(CONFIG_EVTCHN_FIFO) += event_fifo.o
@@ -69,10 +70,6 @@ obj-bin-$(CONFIG_X86) += $(foreach n,decompress bunzip2 unxz unlzma lzo unlzo un
 
 obj-$(CONFIG_COMPAT) += $(addprefix compat/,domain.o memory.o multicall.o xlat.o)
 
-ifneq ($(CONFIG_PV_SHIM_EXCLUSIVE),y)
-obj-y += domctl.o
-endif
-
 extra-y := symbols-dummy.o
 
 obj-$(CONFIG_COVERAGE) += coverage/
diff --git a/xen/include/hypercall-defs.c b/xen/include/hypercall-defs.c
index c1081d87a2..a2f2a7fa75 100644
--- a/xen/include/hypercall-defs.c
+++ b/xen/include/hypercall-defs.c
@@ -197,9 +197,9 @@ dm_op(domid_t domid, unsigned int nr_bufs, xen_dm_op_buf_t *bufs)
 #ifdef CONFIG_SYSCTL
 sysctl(xen_sysctl_t *u_sysctl)
 #endif
-#ifndef CONFIG_PV_SHIM_EXCLUSIVE
 domctl(xen_domctl_t *u_domctl)
 paging_domctl_cont(xen_domctl_t *u_domctl)
+#ifndef CONFIG_PV_SHIM_EXCLUSIVE
 platform_op(xen_platform_op_t *u_xenpf_op)
 #endif
 #ifdef CONFIG_HVM
@@ -278,9 +278,7 @@ hvm_op                             do       do       do       do       do
 #ifdef CONFIG_SYSCTL
 sysctl                             do       do       do       do       do
 #endif
-#ifndef CONFIG_PV_SHIM_EXCLUSIVE
 domctl                             do       do       do       do       do
-#endif
 #ifdef CONFIG_KEXEC
 kexec_op                           compat   do       -        -        -
 #endif
@@ -296,8 +294,6 @@ dm_op                              compat   do       compat   do       do
 hypfs_op                           do       do       do       do       do
 #endif
 mca                                do       do       -        -        -
-#ifndef CONFIG_PV_SHIM_EXCLUSIVE
 paging_domctl_cont                 do       do       do       do       -
-#endif
 
 #endif /* !CPPCHECK */
diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
index e10baf2615..33dd90357c 100644
--- a/xen/include/xen/domain.h
+++ b/xen/include/xen/domain.h
@@ -182,11 +182,7 @@ struct vnuma_info {
     struct xen_vmemrange *vmemrange;
 };
 
-#ifndef CONFIG_PV_SHIM_EXCLUSIVE
 void vnuma_destroy(struct vnuma_info *vnuma);
-#else
-static inline void vnuma_destroy(struct vnuma_info *vnuma) { ASSERT(!vnuma); }
-#endif
 
 extern bool vmtrace_available;
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sun Aug 03 09:48:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 Aug 2025 09:48:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068341.1432336 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiVKH-000637-Uv; Sun, 03 Aug 2025 09:48:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068341.1432336; Sun, 03 Aug 2025 09:48:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiVKH-00062u-RW; Sun, 03 Aug 2025 09:48:21 +0000
Received: by outflank-mailman (input) for mailman id 1068341;
 Sun, 03 Aug 2025 09:48:20 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f/pN=2P=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1uiVKG-0005K3-HD
 for xen-devel@lists.xenproject.org; Sun, 03 Aug 2025 09:48:20 +0000
Received: from NAM02-BN1-obe.outbound.protection.outlook.com
 (mail-bn1nam02on20617.outbound.protection.outlook.com
 [2a01:111:f403:2407::617])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fc0d94fd-704e-11f0-a321-13f23c93f187;
 Sun, 03 Aug 2025 11:48:19 +0200 (CEST)
Received: from BYAPR21CA0018.namprd21.prod.outlook.com (2603:10b6:a03:114::28)
 by CH1PPF6D0742E7B.namprd12.prod.outlook.com
 (2603:10b6:61f:fc00::613) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.18; Sun, 3 Aug
 2025 09:48:11 +0000
Received: from SJ1PEPF0000231A.namprd03.prod.outlook.com
 (2603:10b6:a03:114:cafe::b) by BYAPR21CA0018.outlook.office365.com
 (2603:10b6:a03:114::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9031.0 via Frontend Transport; Sun, 3
 Aug 2025 09:48:11 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF0000231A.mail.protection.outlook.com (10.167.242.231) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Sun, 3 Aug 2025 09:48:11 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) 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; Sun, 3 Aug 2025 04:48:06 -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>
X-Inumbo-ID: fc0d94fd-704e-11f0-a321-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=IC0NaRaDI2pu/xzL5DuhIccR8iIPDArRIDuf0laeJyyLigOMcdc78IhEollBIMyCvhAHxvz3LVPvlxxhdMjUt739gwseXU/t47IBUH3waIz9WmD/aJWPb2WexZYvKF/78TA1D/QtO2vDKISRaFOTorbbFJWjs8sfAJc59eHLtjzE1Qmk8/ZvIlYWmtos9Rj8AyvLBGHzsilKSLBk6omaIjjv3vpS8BKVZxTVXi98Fr0lRcuxwFf2CRp0cZYSZiNtLCVXQPktOPggwKTCaph+et+xU2eo507FEJ1z+b1M62/iNyW6pQa4t3impYb/T04+MOVkvXRG3vHA2TlkYYpb+w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=zKfaBv21hy3PX6mTeeZ/7uP64ANF3Yth3995UwDHufA=;
 b=IasKbFx7FM7HgS5gS0BF1sSYl9r7vcZVe/Na7/p99c5Wz99bnb9UCN/o1UZb18z5BwU/dOyb/qJDMjBXGZp/1NoQH0pWQDa7p6/D4c7ovT1ioPPuIrN+WTpthKRbbrzQ5AQNiUIzEwOMU7ff67QceC/BBXzGdZHRumAAgkQa9uddk7qUHVhSfR0SftL4WL8XFqakdPFrXH0ZMvloOR0FjkZq9Q9UnjfSNoGCyhzIKkb/YxgWzP/UlM0UZ6Q+u5VQXIHzm6VS64vzMJGo6bmgaM99qmntv8mu1hrH92uunZbBfZHNiWNeR+/4dQdm/ghRuXMQt2Bo3t5m/RHmiCNsPg==
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=zKfaBv21hy3PX6mTeeZ/7uP64ANF3Yth3995UwDHufA=;
 b=F5wx4QJXy5dWPoiOlC25MUJgKI57YSBpPqTLK55yKK1fsAM1ghAgzlxI6x5MKzY5bnk87DO+SZqqM1w35lYphJPNn4DHfPze01byw/PvAn4/Ww3BAOnUYiS/aKF+9/SL/yi51YB3MkS2GN40c0qoD1TUFJAe3k6i0h8IicxwFpQ=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, "Tim
 Deegan" <tim@xen.org>, "Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH v1 03/25] xen/x86: complement PG_log_dirty wrapping
Date: Sun, 3 Aug 2025 17:47:16 +0800
Message-ID: <20250803094738.3625269-4-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250803094738.3625269-1-Penny.Zheng@amd.com>
References: <20250803094738.3625269-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: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF0000231A:EE_|CH1PPF6D0742E7B:EE_
X-MS-Office365-Filtering-Correlation-Id: 6067b92f-dc78-4a64-2d08-08ddd272dbcb
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|376014|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?GroV81B/IAcb3fGo5yeEWjymRA6wFRGfSON/lzd10fWY94pP8ivf4FVQNk7v?=
 =?us-ascii?Q?RSLxHCgeHtYYACwuWwdirdKSRBJDkhLSOgYeTJKlgw+iogTrAfI6FKzWrQ6A?=
 =?us-ascii?Q?jY9alHFnL9n+RgqEgniH1Q4dHDq7mWdLKKZnJEDXc+iFPdro1z5jngVboi11?=
 =?us-ascii?Q?gxHrRbK7YwIiqN0pFEj1wqY2xTeerBI6i2/64aHf5XtXqSx7HgfEszfCjMwl?=
 =?us-ascii?Q?V750CTQ1t0WN/C7PgU9qU+fiVrzMwP1N0DJ/cQHkwTF4MN9ZMXu5RYlhYtgB?=
 =?us-ascii?Q?4sn/X3lo5xgK94gSB5FJ4Bd9wSv4n+Qcir8IqtYx1warMPkWP+LppYJoC+ga?=
 =?us-ascii?Q?TZrQzzWAjQXibV9oo1uyDllNb2fBCURHmryBzl4eUri/UFJMRQ1PCEoyq640?=
 =?us-ascii?Q?A55Lu9NC1xL9YzPR6Ljbi7nSbVlI/Sifc8ZpvxSHW9xXxJQpPgajUEQu/3rq?=
 =?us-ascii?Q?QEJT8eZK/gYzoBh4SvHV0R92NlcJqbOxNJA+BbctzTe40WDRujVcB17mcTzI?=
 =?us-ascii?Q?zYGU6yNGhrZLPhFjI4ShOlduXctkAr1zA2n0+FbU9sIa1zYlsbzfm3nQs/P3?=
 =?us-ascii?Q?7Rr9YvCnrfJOIFwjORx3lZtKqwGcPb1tvrOGVV6FlPasc8k+5u/4JxKhpZPW?=
 =?us-ascii?Q?YY+3M4Q3VUXWzJdN8BskjX4aqtQ2di0O5YalcCfDH9nbq6YIFqCl652fZNcq?=
 =?us-ascii?Q?etv6Z+WDqLZXm345PwzDH46BFDCYxt9QEfGrtzzTTvbZT0UDVx7mKjg6y4Dg?=
 =?us-ascii?Q?y8X9uLfdIfjy1gl0RYs1SL3fUY5BFV31wzosATX9jBgCfnk5c/z+SYKYfpD4?=
 =?us-ascii?Q?U/cxZ8/cTJx5yplQWv9NqVbtRmTyjzkkALWAAfuMDxWGi0nhY4oDW8bFppd1?=
 =?us-ascii?Q?NVg7n1l85H/s+oZurMLzsVq/go6e4HFzLTlheBJQjfiXiGPaDKk/Eg4BEYn5?=
 =?us-ascii?Q?qcKNEAaPRxC3vGGMc6aqnBS+lV9vgMVD5eXghLgSBMqeYNHwivcv6aeiZF2g?=
 =?us-ascii?Q?rNwvsUa8OuKl4WbQkPOLBPQDXE4vZWuLyJFEDKpueEHGW1p/fuWXBqcJNbh0?=
 =?us-ascii?Q?h734kHmtKIr+4G+ML959skVAPLYQJi7DXroMeUwQu3hxFq0X7icRoosxv+zR?=
 =?us-ascii?Q?MqFtHmypAz0SDtHU8jaFLP5V7KiH9iH8jGhHAJYsGKhPmbrzLV4+IoLteYaH?=
 =?us-ascii?Q?h+6SohpXIU2oAChylHDHh6TewUlAu8afOp8E9dp0M3/3riSnZXco6tMzdnRo?=
 =?us-ascii?Q?ndyQK9ULtqYOHYdK/5I655RdiS/JPregkJv+IbJMcRGSF7rliCWeZJLaNoFT?=
 =?us-ascii?Q?6mcZn8Nq+vlPYM8t80yl2NFqx6ITBN7wIXEvT0esz6memQzNf9Ss/49vbHGG?=
 =?us-ascii?Q?iwKd8YRd5z6V2ZhgTS2tZ3m1arK/FkMzTQJehDBZp2Lptofy/SnGyrasIVR8?=
 =?us-ascii?Q?0vWLKmdJ5ypTId8ESSNNd0sMjz6pofCbczTQddcyttNK+HeJDD0NV5o4hFON?=
 =?us-ascii?Q?WYbXnws6s8y/XBJdBUQuaYEMCpSsPvpJJCp4?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2025 09:48:11.0770
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 6067b92f-dc78-4a64-2d08-08ddd272dbcb
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF0000231A.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH1PPF6D0742E7B

We have PG_log_dirty flag to wrap codes about paging log-dirty support.
The main entry is paging_domctl(), and tracking its call chain, the
following functions needs wrapping too:
- xsm_shadow_control
- hvm_mapped_guest_frames_mark_dirty
- hap_domctl
- shadow_domctl
  - shadow_test_disable
    - shadow_one_bit_disable
  - shadow_test_enable
  - shadow_get_allocation
- log_dirty_ops.enable
  - hap_enable_log_dirty
  - sh_enable_log_dirty
  - _toggle_log_dirty
- log_dirty_ops.disable
  - hap_disable_log_dirty
  - sh_disable_log_dirty
- log_dirty_ops.clean
  - hap_clean_dirty_bitmap
  - sh_clean_dirty_bitmap
  - _clean_dirty_bitmap
Wrap paging_domctl hypercall-defs with PG_log_dirty and release PG_log_dirty
from PV_SHIM_EXCLUSIVE, as PV_SHIM_EXCLUSIVE will be cleaned up in the future.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
 xen/arch/x86/domctl.c                | 4 ++++
 xen/arch/x86/hvm/hvm.c               | 2 ++
 xen/arch/x86/include/asm/hypercall.h | 2 ++
 xen/arch/x86/include/asm/paging.h    | 2 +-
 xen/arch/x86/mm/hap/hap.c            | 6 ++++++
 xen/arch/x86/mm/shadow/common.c      | 8 ++++++++
 xen/arch/x86/mm/shadow/none.c        | 4 ++++
 xen/include/hypercall-defs.c         | 4 ++++
 xen/include/xsm/xsm.h                | 4 ++++
 xen/xsm/dummy.c                      | 2 ++
 xen/xsm/flask/hooks.c                | 4 ++++
 11 files changed, 41 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c
index 3044f706de..156c74e07a 100644
--- a/xen/arch/x86/domctl.c
+++ b/xen/arch/x86/domctl.c
@@ -213,10 +213,14 @@ long arch_do_domctl(
     {
 
     case XEN_DOMCTL_shadow_op:
+#if PG_log_dirty
         ret = paging_domctl(d, &domctl->u.shadow_op, u_domctl, 0);
         if ( ret == -ERESTART )
             return hypercall_create_continuation(
                        __HYPERVISOR_paging_domctl_cont, "h", u_domctl);
+#else
+        ret = -EOPNOTSUPP;
+#endif /* PG_log_dirty */
         copyback = true;
         break;
 
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index cb8ecd050d..ea97815deb 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -2831,6 +2831,7 @@ void hvm_unmap_guest_frame(void *p, bool permanent)
     put_page(page);
 }
 
+#if PG_log_dirty
 void hvm_mapped_guest_frames_mark_dirty(struct domain *d)
 {
     struct hvm_write_map *track;
@@ -2840,6 +2841,7 @@ void hvm_mapped_guest_frames_mark_dirty(struct domain *d)
         paging_mark_dirty(d, page_to_mfn(track->page));
     spin_unlock(&d->arch.hvm.write_map.lock);
 }
+#endif /* PG_log_dirty */
 
 static void *hvm_map_entry(unsigned long va, bool *writable)
 {
diff --git a/xen/arch/x86/include/asm/hypercall.h b/xen/arch/x86/include/asm/hypercall.h
index f6e9e2313b..fac93527ce 100644
--- a/xen/arch/x86/include/asm/hypercall.h
+++ b/xen/arch/x86/include/asm/hypercall.h
@@ -16,7 +16,9 @@
 #include <public/arch-x86/xen-mca.h> /* for do_mca */
 #include <asm/paging.h>
 
+#if PG_log_dirty
 #define __HYPERVISOR_paging_domctl_cont __HYPERVISOR_arch_1
+#endif
 
 #ifdef CONFIG_PV
 void pv_hypercall(struct cpu_user_regs *regs);
diff --git a/xen/arch/x86/include/asm/paging.h b/xen/arch/x86/include/asm/paging.h
index 173a569610..956b83215c 100644
--- a/xen/arch/x86/include/asm/paging.h
+++ b/xen/arch/x86/include/asm/paging.h
@@ -55,7 +55,7 @@
 #define PG_translate   0
 #define PG_external    0
 #endif
-#if defined(CONFIG_HVM) || !defined(CONFIG_PV_SHIM_EXCLUSIVE)
+#if defined(CONFIG_HVM)
 /* Enable log dirty mode */
 #define PG_log_dirty   (XEN_DOMCTL_SHADOW_ENABLE_LOG_DIRTY << PG_mode_shift)
 #else
diff --git a/xen/arch/x86/mm/hap/hap.c b/xen/arch/x86/mm/hap/hap.c
index 668a233923..ccbc9128dd 100644
--- a/xen/arch/x86/mm/hap/hap.c
+++ b/xen/arch/x86/mm/hap/hap.c
@@ -189,6 +189,7 @@ out:
     return rc;
 }
 
+#if PG_log_dirty
 /************************************************/
 /*            HAP LOG DIRTY SUPPORT             */
 /************************************************/
@@ -254,6 +255,7 @@ static void cf_check hap_clean_dirty_bitmap(struct domain *d)
     p2m_change_entry_type_global(d, p2m_ram_rw, p2m_ram_logdirty);
     guest_flush_tlb_mask(d, d->dirty_cpumask);
 }
+#endif /* PG_log_dirty */
 
 /************************************************/
 /*             HAP SUPPORT FUNCTIONS            */
@@ -468,9 +470,11 @@ static bool cf_check flush_tlb(const unsigned long *vcpu_bitmap);
 void hap_domain_init(struct domain *d)
 {
     static const struct log_dirty_ops hap_ops = {
+#if PG_log_dirty
         .enable  = hap_enable_log_dirty,
         .disable = hap_disable_log_dirty,
         .clean   = hap_clean_dirty_bitmap,
+#endif
     };
 
     /* Use HAP logdirty mechanism. */
@@ -662,6 +666,7 @@ out:
     paging_unlock(d);
 }
 
+#if PG_log_dirty
 int hap_domctl(struct domain *d, struct xen_domctl_shadow_op *sc,
                XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
 {
@@ -692,6 +697,7 @@ int hap_domctl(struct domain *d, struct xen_domctl_shadow_op *sc,
         return -EINVAL;
     }
 }
+#endif /* PG_log_dirty */
 
 static const struct paging_mode hap_paging_real_mode;
 static const struct paging_mode hap_paging_protected_mode;
diff --git a/xen/arch/x86/mm/shadow/common.c b/xen/arch/x86/mm/shadow/common.c
index 0176e33bc9..f678e7b149 100644
--- a/xen/arch/x86/mm/shadow/common.c
+++ b/xen/arch/x86/mm/shadow/common.c
@@ -69,9 +69,11 @@ const uint8_t sh_type_to_size[] = {
 
 DEFINE_PER_CPU(uint32_t,trace_shadow_path_flags);
 
+#if PG_log_dirty
 static int cf_check sh_enable_log_dirty(struct domain *);
 static int cf_check sh_disable_log_dirty(struct domain *);
 static void cf_check sh_clean_dirty_bitmap(struct domain *);
+#endif
 
 static void cf_check shadow_update_paging_modes(struct vcpu *);
 
@@ -80,9 +82,11 @@ static void cf_check shadow_update_paging_modes(struct vcpu *);
 int shadow_domain_init(struct domain *d)
 {
     static const struct log_dirty_ops sh_ops = {
+#if PG_log_dirty
         .enable  = sh_enable_log_dirty,
         .disable = sh_disable_log_dirty,
         .clean   = sh_clean_dirty_bitmap,
+#endif
     };
 
     INIT_PAGE_LIST_HEAD(&d->arch.paging.shadow.pinned_shadows);
@@ -1414,6 +1418,7 @@ int shadow_set_allocation(struct domain *d, unsigned int pages, bool *preempted)
     return 0;
 }
 
+#if PG_log_dirty
 /* Return the size of the shadow pool, rounded up to the nearest MB */
 static unsigned int shadow_get_allocation(struct domain *d)
 {
@@ -1422,6 +1427,7 @@ static unsigned int shadow_get_allocation(struct domain *d)
     return ((pg >> (20 - PAGE_SHIFT))
             + ((pg & ((1 << (20 - PAGE_SHIFT)) - 1)) ? 1 : 0));
 }
+#endif /* PG_log_dirty */
 
 /**************************************************************************/
 /* Hash table for storing the guest->shadow mappings.
@@ -2958,6 +2964,7 @@ static int shadow_one_bit_enable(struct domain *d, u32 mode)
     return 0;
 }
 
+#if PG_log_dirty
 static int shadow_one_bit_disable(struct domain *d, u32 mode)
 /* Turn off a single shadow mode feature */
 {
@@ -3158,6 +3165,7 @@ int shadow_domctl(struct domain *d,
     }
 }
 
+#endif /* PG_log_dirty */
 
 /**************************************************************************/
 /* Auditing shadow tables */
diff --git a/xen/arch/x86/mm/shadow/none.c b/xen/arch/x86/mm/shadow/none.c
index 2a4005a795..6c6971b458 100644
--- a/xen/arch/x86/mm/shadow/none.c
+++ b/xen/arch/x86/mm/shadow/none.c
@@ -1,6 +1,7 @@
 #include <xen/mm.h>
 #include <asm/shadow.h>
 
+#if PG_log_dirty
 static int cf_check _toggle_log_dirty(struct domain *d)
 {
     ASSERT(is_pv_domain(d));
@@ -11,6 +12,7 @@ static void cf_check _clean_dirty_bitmap(struct domain *d)
 {
     ASSERT(is_pv_domain(d));
 }
+#endif /* PG_log_dirty */
 
 static void cf_check _update_paging_modes(struct vcpu *v)
 {
@@ -21,9 +23,11 @@ int shadow_domain_init(struct domain *d)
 {
     /* For HVM set up pointers for safety, then fail. */
     static const struct log_dirty_ops sh_none_ops = {
+#if PG_log_dirty
         .enable  = _toggle_log_dirty,
         .disable = _toggle_log_dirty,
         .clean   = _clean_dirty_bitmap,
+#endif
     };
 
     paging_log_dirty_init(d, &sh_none_ops);
diff --git a/xen/include/hypercall-defs.c b/xen/include/hypercall-defs.c
index a2f2a7fa75..c70f745ac2 100644
--- a/xen/include/hypercall-defs.c
+++ b/xen/include/hypercall-defs.c
@@ -198,7 +198,9 @@ dm_op(domid_t domid, unsigned int nr_bufs, xen_dm_op_buf_t *bufs)
 sysctl(xen_sysctl_t *u_sysctl)
 #endif
 domctl(xen_domctl_t *u_domctl)
+#if PG_log_dirty
 paging_domctl_cont(xen_domctl_t *u_domctl)
+#endif
 #ifndef CONFIG_PV_SHIM_EXCLUSIVE
 platform_op(xen_platform_op_t *u_xenpf_op)
 #endif
@@ -294,6 +296,8 @@ dm_op                              compat   do       compat   do       do
 hypfs_op                           do       do       do       do       do
 #endif
 mca                                do       do       -        -        -
+#if PG_log_dirty
 paging_domctl_cont                 do       do       do       do       -
+#endif
 
 #endif /* !CPPCHECK */
diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
index 9a23d2827c..dad69905c9 100644
--- a/xen/include/xsm/xsm.h
+++ b/xen/include/xsm/xsm.h
@@ -173,7 +173,9 @@ struct xsm_ops {
 
 #ifdef CONFIG_X86
     int (*do_mca)(void);
+#if PG_log_dirty
     int (*shadow_control)(struct domain *d, uint32_t op);
+#endif
     int (*mem_sharing_op)(struct domain *d, struct domain *cd, int op);
     int (*apic)(struct domain *d, int cmd);
     int (*machine_memory_map)(void);
@@ -687,11 +689,13 @@ static inline int xsm_do_mca(xsm_default_t def)
     return alternative_call(xsm_ops.do_mca);
 }
 
+#if PG_log_dirty
 static inline int xsm_shadow_control(
     xsm_default_t def, struct domain *d, uint32_t op)
 {
     return alternative_call(xsm_ops.shadow_control, d, op);
 }
+#endif
 
 static inline int xsm_mem_sharing_op(
     xsm_default_t def, struct domain *d, struct domain *cd, int op)
diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
index 8b7e01b506..8a893c6eee 100644
--- a/xen/xsm/dummy.c
+++ b/xen/xsm/dummy.c
@@ -132,7 +132,9 @@ static const struct xsm_ops __initconst_cf_clobber dummy_ops = {
     .platform_op                   = xsm_platform_op,
 #ifdef CONFIG_X86
     .do_mca                        = xsm_do_mca,
+#if PG_log_dirty
     .shadow_control                = xsm_shadow_control,
+#endif
     .mem_sharing_op                = xsm_mem_sharing_op,
     .apic                          = xsm_apic,
     .machine_memory_map            = xsm_machine_memory_map,
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index b0308e1b26..0382182f94 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -1605,6 +1605,7 @@ static int cf_check flask_do_mca(void)
     return domain_has_xen(current->domain, XEN__MCA_OP);
 }
 
+#if PG_log_dirty
 static int cf_check flask_shadow_control(struct domain *d, uint32_t op)
 {
     uint32_t perm;
@@ -1631,6 +1632,7 @@ static int cf_check flask_shadow_control(struct domain *d, uint32_t op)
 
     return current_has_perm(d, SECCLASS_SHADOW, perm);
 }
+#endif /* PG_log_dirty */
 
 struct ioport_has_perm_data {
     uint32_t ssid;
@@ -2003,7 +2005,9 @@ static const struct xsm_ops __initconst_cf_clobber flask_ops = {
     .platform_op = flask_platform_op,
 #ifdef CONFIG_X86
     .do_mca = flask_do_mca,
+#if PG_log_dirty
     .shadow_control = flask_shadow_control,
+#endif
     .mem_sharing_op = flask_mem_sharing_op,
     .apic = flask_apic,
     .machine_memory_map = flask_machine_memory_map,
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sun Aug 03 09:48:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 Aug 2025 09:48:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068342.1432346 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiVKJ-0006Iv-AD; Sun, 03 Aug 2025 09:48:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068342.1432346; Sun, 03 Aug 2025 09:48:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiVKJ-0006Io-6t; Sun, 03 Aug 2025 09:48:23 +0000
Received: by outflank-mailman (input) for mailman id 1068342;
 Sun, 03 Aug 2025 09:48:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f/pN=2P=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1uiVKI-0005K3-9K
 for xen-devel@lists.xenproject.org; Sun, 03 Aug 2025 09:48:22 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on20616.outbound.protection.outlook.com
 [2a01:111:f403:2406::616])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fce075e8-704e-11f0-a321-13f23c93f187;
 Sun, 03 Aug 2025 11:48:21 +0200 (CEST)
Received: from BYAPR21CA0019.namprd21.prod.outlook.com (2603:10b6:a03:114::29)
 by SA1PR12MB6677.namprd12.prod.outlook.com (2603:10b6:806:250::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.18; Sun, 3 Aug
 2025 09:48:13 +0000
Received: from SJ1PEPF0000231A.namprd03.prod.outlook.com
 (2603:10b6:a03:114:cafe::ef) by BYAPR21CA0019.outlook.office365.com
 (2603:10b6:a03:114::29) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9031.1 via Frontend Transport; Sun, 3
 Aug 2025 09:48:13 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF0000231A.mail.protection.outlook.com (10.167.242.231) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Sun, 3 Aug 2025 09:48:13 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) 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; Sun, 3 Aug 2025 04:48:09 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fce075e8-704e-11f0-a321-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=kfoZlCjQKi0Q41R8y5EPVdQdCmy697IBYCjQiRvXZsgqFR0VKlSWE+QJjzAKElt1Hg+wCnnPTDjTTIUB81BFPOo+qR/W+vOm8qdRm4ExM3rWYVr2SZfZVGUAecqn7Q6VtW7h6gmYJAIjI5Xh77mcowA/saD9TPqGWpP9pWTZ26aaXkHtPWLIBotxB+GrFKjXl+qel6zzao8evSGtiZ8m+TYnxNuSI+5FIJ+vQxAaylgnXiu1zMAVimYsFX7cGmFWvDQzhaBxaj5wShQ75MLQ6VAuJ+jSDG9ak3006vPkYOse8sak3Y48l2tsMCi3jNKWqD5vThsq1IMC4DtYATn1PQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=MV3wGFTRYAMafdJvIGfoiQrNKsxtOc6bfvGSnYb3iL4=;
 b=qgd4CNqHZ2dAWQ0Ak3SBHJGK7crzFTieYTc4r3+LR8t9yDpGlEYHCRI7BJd9KIRIRtTO9Ik8/FFh08LchGlyh49aBRzpysw+YsJwW20FeWoOuo18zS/BkrR90RM79GBec0+6OzMM08f/vJ0LIf9I4rMysXM71Hc20UZfQ0ZZuS3HNCqFhIIJ/8HZC5iiKGuKZFUFa72HM+Edc9qYmU1sZXJgZM+KzvAuTbEsLfvCSEjaJcTOq6bs6jtT6b7eIRzwYxDj7isHEZnTWzZ1fDSjwXl836XamwAL9Wjt6jrtBJc9vWYdSjiB/D5qW7CllAvS15qEewDZM+D/M/34g1PBaw==
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=MV3wGFTRYAMafdJvIGfoiQrNKsxtOc6bfvGSnYb3iL4=;
 b=nH3yye/2iWjkdhxqAKkunQMFffHNvS/W4DO84r5PbQ0n+7JzCDozZgkxsQ14gR7svDQnrY0Lz6JB8q0Q2qzgzYb3MFob3FL+41AWYFWGHnezLMA0iMpzDht6Znv1trg/a6VQUi9N9i/HJDILPmA87O4eAcHHoR2hhYqD+wMr/ZY=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Shawn Anastasio
	<sanastasio@raptorengineering.com>, Jan Beulich <jbeulich@suse.com>, "Andrew
 Cooper" <andrew.cooper3@citrix.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Tamas K Lengyel <tamas@tklengyel.com>, "Alexandru
 Isaila" <aisaila@bitdefender.com>, Petre Pircalabu
	<ppircalabu@bitdefender.com>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>
Subject: [PATCH v1 04/25] xen: consolidate CONFIG_VM_EVENT
Date: Sun, 3 Aug 2025 17:47:17 +0800
Message-ID: <20250803094738.3625269-5-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250803094738.3625269-1-Penny.Zheng@amd.com>
References: <20250803094738.3625269-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: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF0000231A:EE_|SA1PR12MB6677:EE_
X-MS-Office365-Filtering-Correlation-Id: 8f7c965d-0ae3-42e5-9ab3-08ddd272dcf7
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|376014|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?sOK1cK9PyVxFxAwd1fCtobDgkZvMOw3FYkjk5zIfc35mQZVbJveAUJ5RdT4q?=
 =?us-ascii?Q?Saq7OsJfVlK5p+VYPo3n4eaExYnhNC/t316xjq9Vcs8zngUXxiuG5PlPnhMa?=
 =?us-ascii?Q?9XUhFMu8QKozLKC5fxLJxvmagUgAS+QLJO0ccaDOZ4GHbO+mt5boaChpBlJj?=
 =?us-ascii?Q?cM7GpIpB/Mp4D5BZ4KTD2CY/GxzxLEsy7/3HxfafFLyp3kbqfq/Ii2o6kalf?=
 =?us-ascii?Q?+ytFV4g1gBUUItYhUAohhWqjvZg0cOoPrLfSD9p7O+rCCo6GZiS191jS+e1M?=
 =?us-ascii?Q?CaK/l1fh1x3XUoiAN3A+eCc3grVqt09KB0INSMVcSYq8iVKRmn1a7njDqhQz?=
 =?us-ascii?Q?7owRmIMNnhE2PaN8sGgK9FvBDgFhj5hrTCft6z3iM968dC9Wrud/G/0wRrPH?=
 =?us-ascii?Q?Qiox/j0mJxDfcvfMKoxvn1AqgDA/K2S0KFMper6HRqZPdgoyy2ZfpCwsvbPa?=
 =?us-ascii?Q?SRpid4QXdqSeZbm8ta2F09+p0KX/6uvcczEi/XzgK5TBf6zTo1WIos27A+nf?=
 =?us-ascii?Q?TCF10JcbUXtnGIP4spuEyrqY2bxutD5//xPvJUgTk0zuGB7uxUvQxuap0EJY?=
 =?us-ascii?Q?+UbOQ01WnGDpadQnAPOfZ3jiYqAn5+Cnn8wxuxTThhCM5g2AGP+jy4TjCBwo?=
 =?us-ascii?Q?NEE5RFTVAC8fwjeFCGLrkQhZrAfrR11BDLLmTrpu7doVVnNMxEh0zuDB5WI1?=
 =?us-ascii?Q?Uz2dJoie3SPISkGrch4k9eUuzUDHT6zJ31U6W2zvdWHJY4FdNPIWZisj7WGu?=
 =?us-ascii?Q?0yX3f6MZk9M0rglS/yWL0afL2AwmFxlJGdQccGLYIBlOJwWeyzFTwPVRCrid?=
 =?us-ascii?Q?7pmuXngcmMQveBLCygZiruzRw2NZ0G8H5jxFATIIQazRv+ULCRo5I112Qb0H?=
 =?us-ascii?Q?EU7g2QEBx+r8bdbm71kffJRoTV4AKW4EJZBLuM7oSesCfPSGzJBhTVgFCo+N?=
 =?us-ascii?Q?knptIDjsGlZvXf/tZiulMe5C0LKxz/o/H7m56htdfnpcZHPP/OK0rsbaj+bH?=
 =?us-ascii?Q?OOhyYlpTfie/iOqMAHFjC9k1eqdHUFADWXAUPTl8kioG3daiQM/TPYwTNfpu?=
 =?us-ascii?Q?GsXVPLKzDNr9PY1MbGWs/yOqilA8C4elVr2h9/T8C3L2an9AR4r2NHWh8gae?=
 =?us-ascii?Q?c/hvA22ZrBy+jNvOyCtqVkB+b/qamasiwEFCSzo/irCT7BWdRSdqTaNXJJde?=
 =?us-ascii?Q?W4mrhE1kpZg2+TAk1UyK7fBHsgSW/+xFA48D03HUMFnu9JsBYN4FT1M9gu1T?=
 =?us-ascii?Q?jaKYlZcRXGNS0mrtbsXMlnvWBaYveYnXguFEtn3iumGctmibnoHlKyPIAsz/?=
 =?us-ascii?Q?9fqnGKXrBUDie7Q+QyXfY9W4y/dWoTKsYPmlGtFPVRP1U2Znpw2y8aTywjp8?=
 =?us-ascii?Q?O42meopJccPe5PcFPEXhylpKSGvVrlHKwjQAJOpZGSGLQ2/QS7JiowBNgar+?=
 =?us-ascii?Q?FAu30MFkLG0MURccCHh0qW99f6LnMwaY2PDTefjLQrK1F65967MBdfaGzn6W?=
 =?us-ascii?Q?PZpEYixM3pV+MtaKKrI4YeRLN4lihS8CbuUy?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2025 09:48:13.0457
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8f7c965d-0ae3-42e5-9ab3-08ddd272dcf7
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF0000231A.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB6677

File hvm/vm_event.c and x86/vm_event.c are the extend to vm_event handling
routines, and its compilation shall be guarded by CONFIG_VM_EVENT too.
Futhermore, features about monitor_op and memory access are both based on
vm event subsystem, so monitor.o/mem_access.o shall be wrapped under
CONFIG_VM_EVENT.

Although CONFIG_VM_EVENT is forcibly enabled on x86, we could disable it
through disabling CONFIG_DOMCTL in the future.
In consequence, a few functions, like the ones defined in hvm/monitor.h,
needs stub to pass compilation when CONFIG_VM_EVENT=n.
Remove the CONFIG_VM_EVENT wrapper for "#include <asm/mem_access.h>", as
we need declaration there to pass compilation when CONFIG_VM_EVENT=n

The following functions are developed on the basis of vm event framework, or
only invoked by vm_event.c/monitor.c/mem_access.c, so they all shall be
wrapped with CONFIG_VM_EVENT:
- hvm_toggle_singlestep
- hvm_fast_singlestep
- p2m_mem_paging_drop_page
- p2m_mem_paging_populate_page
- p2m_mem_paging_resume
- hvm_enable_msr_interception
  - hvm_function_table.enable_msr_interception
- hvm_has_set_descriptor_access_existing
  - hvm_function_table.set_descriptor_access_existing
- xsm_vm_event_control

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
 xen/arch/ppc/stubs.c                    |  2 +
 xen/arch/x86/Makefile                   |  2 +-
 xen/arch/x86/hvm/Makefile               |  4 +-
 xen/arch/x86/hvm/hvm.c                  |  2 +
 xen/arch/x86/hvm/svm/svm.c              |  8 +++
 xen/arch/x86/hvm/vmx/vmx.c              | 10 ++++
 xen/arch/x86/include/asm/hvm/hvm.h      | 10 ++++
 xen/arch/x86/include/asm/hvm/monitor.h  | 65 ++++++++++++++++++++++++-
 xen/arch/x86/include/asm/hvm/vm_event.h |  4 ++
 xen/arch/x86/include/asm/mem_access.h   |  9 ++++
 xen/arch/x86/include/asm/monitor.h      | 15 ++++++
 xen/arch/x86/include/asm/p2m.h          |  6 +++
 xen/arch/x86/mm/mem_paging.c            |  2 +
 xen/include/xen/mem_access.h            | 36 ++++++++++++--
 xen/include/xen/monitor.h               |  8 ++-
 xen/include/xen/vm_event.h              | 24 ++++++++-
 xen/include/xsm/xsm.h                   |  4 +-
 xen/xsm/dummy.c                         |  2 +-
 xen/xsm/flask/hooks.c                   |  4 +-
 19 files changed, 200 insertions(+), 17 deletions(-)

diff --git a/xen/arch/ppc/stubs.c b/xen/arch/ppc/stubs.c
index 671e71aa0a..4679cf9360 100644
--- a/xen/arch/ppc/stubs.c
+++ b/xen/arch/ppc/stubs.c
@@ -60,6 +60,7 @@ void vcpu_show_execution_state(struct vcpu *v)
     BUG_ON("unimplemented");
 }
 
+#ifdef CONFIG_VM_EVENT
 /* vm_event.c */
 
 void vm_event_fill_regs(vm_event_request_t *req)
@@ -76,6 +77,7 @@ void vm_event_monitor_next_interrupt(struct vcpu *v)
 {
     /* Not supported on PPC. */
 }
+#endif /* CONFIG_VM_EVENT */
 
 /* domctl.c */
 void arch_get_domain_info(const struct domain *d,
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 7676d7cdd8..17f0e1dbc9 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -76,7 +76,7 @@ obj-y += usercopy.o
 obj-y += x86_emulate.o
 obj-$(CONFIG_TBOOT) += tboot.o
 obj-y += hpet.o
-obj-y += vm_event.o
+obj-$(CONFIG_VM_EVENT) += vm_event.o
 obj-y += xstate.o
 
 ifneq ($(CONFIG_PV_SHIM_EXCLUSIVE),y)
diff --git a/xen/arch/x86/hvm/Makefile b/xen/arch/x86/hvm/Makefile
index 6ec2c8f2db..952db00dd7 100644
--- a/xen/arch/x86/hvm/Makefile
+++ b/xen/arch/x86/hvm/Makefile
@@ -16,7 +16,7 @@ obj-y += io.o
 obj-y += ioreq.o
 obj-y += irq.o
 obj-y += mmio.o
-obj-y += monitor.o
+obj-$(CONFIG_VM_EVENT) += monitor.o
 obj-y += mtrr.o
 obj-y += nestedhvm.o
 obj-y += pmtimer.o
@@ -26,7 +26,7 @@ obj-y += save.o
 obj-y += stdvga.o
 obj-y += vioapic.o
 obj-y += vlapic.o
-obj-y += vm_event.o
+obj-$(CONFIG_VM_EVENT) += vm_event.o
 obj-y += vmsi.o
 obj-y += vpic.o
 obj-y += vpt.o
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index ea97815deb..f464f401aa 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -5251,6 +5251,7 @@ int hvm_debug_op(struct vcpu *v, int32_t op)
     return rc;
 }
 
+#ifdef CONFIG_VM_EVENT
 void hvm_toggle_singlestep(struct vcpu *v)
 {
     ASSERT(atomic_read(&v->pause_count));
@@ -5275,6 +5276,7 @@ void hvm_fast_singlestep(struct vcpu *v, uint16_t p2midx)
     v->arch.hvm.fast_single_step.enabled = true;
     v->arch.hvm.fast_single_step.p2midx = p2midx;
 }
+#endif /* CONFIG_VM_EVENT */
 
 /*
  * Segment caches in VMCB/VMCS are inconsistent about which bits are checked,
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index fce750ca1f..d71f499986 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -297,6 +297,7 @@ void svm_intercept_msr(struct vcpu *v, uint32_t msr, int flags)
         __clear_bit(msr * 2 + 1, msr_bit);
 }
 
+#ifdef CONFIG_VM_EVENT
 static void cf_check svm_enable_msr_interception(struct domain *d, uint32_t msr)
 {
     struct vcpu *v;
@@ -304,6 +305,7 @@ static void cf_check svm_enable_msr_interception(struct domain *d, uint32_t msr)
     for_each_vcpu ( d, v )
         svm_intercept_msr(v, msr, MSR_INTERCEPT_WRITE);
 }
+#endif /* CONFIG_VM_EVENT */
 
 static void svm_save_dr(struct vcpu *v)
 {
@@ -824,6 +826,7 @@ static void cf_check svm_set_rdtsc_exiting(struct vcpu *v, bool enable)
     vmcb_set_general2_intercepts(vmcb, general2_intercepts);
 }
 
+#ifdef CONFIG_VM_EVENT
 static void cf_check svm_set_descriptor_access_exiting(
     struct vcpu *v, bool enable)
 {
@@ -841,6 +844,7 @@ static void cf_check svm_set_descriptor_access_exiting(
 
     vmcb_set_general1_intercepts(vmcb, general1_intercepts);
 }
+#endif /* CONFIG_VM_EVENT */
 
 static unsigned int cf_check svm_get_insn_bytes(struct vcpu *v, uint8_t *buf)
 {
@@ -2455,9 +2459,13 @@ static struct hvm_function_table __initdata_cf_clobber svm_function_table = {
     .fpu_dirty_intercept  = svm_fpu_dirty_intercept,
     .msr_read_intercept   = svm_msr_read_intercept,
     .msr_write_intercept  = svm_msr_write_intercept,
+#ifdef CONFIG_VM_EVENT
     .enable_msr_interception = svm_enable_msr_interception,
+#endif
     .set_rdtsc_exiting    = svm_set_rdtsc_exiting,
+#ifdef CONFIG_VM_EVENT
     .set_descriptor_access_exiting = svm_set_descriptor_access_exiting,
+#endif
     .get_insn_bytes       = svm_get_insn_bytes,
 
     .nhvm_vcpu_initialise = nsvm_vcpu_initialise,
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index cb82d52ef0..9e4ad864fa 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -1515,6 +1515,7 @@ static void cf_check vmx_set_rdtsc_exiting(struct vcpu *v, bool enable)
     vmx_vmcs_exit(v);
 }
 
+#ifdef CONFIG_VM_EVENT
 static void cf_check vmx_set_descriptor_access_exiting(
     struct vcpu *v, bool enable)
 {
@@ -1529,6 +1530,7 @@ static void cf_check vmx_set_descriptor_access_exiting(
     vmx_update_secondary_exec_control(v);
     vmx_vmcs_exit(v);
 }
+#endif /* CONFIG_VM_EVENT */
 
 static void cf_check vmx_init_hypercall_page(void *p)
 {
@@ -2408,6 +2410,7 @@ static void cf_check vmx_handle_eoi(uint8_t vector, int isr)
         printk_once(XENLOG_WARNING "EOI for %02x but SVI=%02x\n", vector, old_svi);
 }
 
+#ifdef CONFIG_VM_EVENT
 static void cf_check vmx_enable_msr_interception(struct domain *d, uint32_t msr)
 {
     struct vcpu *v;
@@ -2415,6 +2418,7 @@ static void cf_check vmx_enable_msr_interception(struct domain *d, uint32_t msr)
     for_each_vcpu ( d, v )
         vmx_set_msr_intercept(v, msr, VMX_MSR_W);
 }
+#endif /* CONFIG_VM_EVENT */
 
 static void cf_check vmx_vcpu_update_eptp(struct vcpu *v)
 {
@@ -2862,7 +2866,9 @@ static struct hvm_function_table __initdata_cf_clobber vmx_function_table = {
     .nhvm_domain_relinquish_resources = nvmx_domain_relinquish_resources,
     .update_vlapic_mode = vmx_vlapic_msr_changed,
     .nhvm_hap_walk_L1_p2m = nvmx_hap_walk_L1_p2m,
+#ifdef CONFIG_VM_EVENT
     .enable_msr_interception = vmx_enable_msr_interception,
+#endif
     .altp2m_vcpu_update_p2m = vmx_vcpu_update_eptp,
     .altp2m_vcpu_update_vmfunc_ve = vmx_vcpu_update_vmfunc_ve,
     .altp2m_vcpu_emulate_ve = vmx_vcpu_emulate_ve,
@@ -3068,9 +3074,11 @@ const struct hvm_function_table * __init start_vmx(void)
 
     vmx_function_table.caps.singlestep = cpu_has_monitor_trap_flag;
 
+#ifdef CONFIG_VM_EVENT
     if ( cpu_has_vmx_dt_exiting )
         vmx_function_table.set_descriptor_access_exiting =
             vmx_set_descriptor_access_exiting;
+#endif
 
     /*
      * Do not enable EPT when (!cpu_has_vmx_pat), to prevent security hole
@@ -3141,8 +3149,10 @@ void __init vmx_fill_funcs(void)
     if ( !cpu_has_xen_ibt )
         return;
 
+#ifdef CONFIG_VM_EVENT
     vmx_function_table.set_descriptor_access_exiting =
         vmx_set_descriptor_access_exiting;
+#endif
 
     vmx_function_table.update_eoi_exit_bitmap = vmx_update_eoi_exit_bitmap;
     vmx_function_table.process_isr            = vmx_process_isr;
diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/asm/hvm/hvm.h
index bf8bc2e100..bd53fcf155 100644
--- a/xen/arch/x86/include/asm/hvm/hvm.h
+++ b/xen/arch/x86/include/asm/hvm/hvm.h
@@ -191,7 +191,9 @@ struct hvm_function_table {
     void (*handle_cd)(struct vcpu *v, unsigned long value);
     void (*set_info_guest)(struct vcpu *v);
     void (*set_rdtsc_exiting)(struct vcpu *v, bool enable);
+#ifdef CONFIG_VM_EVENT
     void (*set_descriptor_access_exiting)(struct vcpu *v, bool enable);
+#endif
 
     /* Nested HVM */
     int (*nhvm_vcpu_initialise)(struct vcpu *v);
@@ -223,7 +225,9 @@ struct hvm_function_table {
                                 paddr_t *L1_gpa, unsigned int *page_order,
                                 uint8_t *p2m_acc, struct npfec npfec);
 
+#ifdef CONFIG_VM_EVENT
     void (*enable_msr_interception)(struct domain *d, uint32_t msr);
+#endif
 
     /* Alternate p2m */
     void (*altp2m_vcpu_update_p2m)(struct vcpu *v);
@@ -430,10 +434,12 @@ static inline bool using_svm(void)
 
 #define hvm_long_mode_active(v) (!!((v)->arch.hvm.guest_efer & EFER_LMA))
 
+#ifdef CONFIG_VM_EVENT
 static inline bool hvm_has_set_descriptor_access_exiting(void)
 {
     return hvm_funcs.set_descriptor_access_exiting;
 }
+#endif /* CONFIG_VM_EVENT */
 
 static inline void hvm_domain_creation_finished(struct domain *d)
 {
@@ -680,10 +686,12 @@ static inline int nhvm_hap_walk_L1_p2m(
         v, L2_gpa, L1_gpa, page_order, p2m_acc, npfec);
 }
 
+#ifdef CONFIG_VM_EVENT
 static inline void hvm_enable_msr_interception(struct domain *d, uint32_t msr)
 {
     alternative_vcall(hvm_funcs.enable_msr_interception, d, msr);
 }
+#endif /* CONFIG_VM_EVENT */
 
 static inline bool hvm_is_singlestep_supported(void)
 {
@@ -923,10 +931,12 @@ static inline void hvm_inject_hw_exception(unsigned int vector, int errcode)
     ASSERT_UNREACHABLE();
 }
 
+#ifdef CONFIG_VM_EVENT
 static inline bool hvm_has_set_descriptor_access_exiting(void)
 {
     return false;
 }
+#endif /* CONFIG_VM_EVENT */
 
 static inline int hvm_vmtrace_control(struct vcpu *v, bool enable, bool reset)
 {
diff --git a/xen/arch/x86/include/asm/hvm/monitor.h b/xen/arch/x86/include/asm/hvm/monitor.h
index 02021be47b..561ca2e585 100644
--- a/xen/arch/x86/include/asm/hvm/monitor.h
+++ b/xen/arch/x86/include/asm/hvm/monitor.h
@@ -17,14 +17,16 @@ enum hvm_monitor_debug_type
     HVM_MONITOR_DEBUG_EXCEPTION,
 };
 
+#define hvm_monitor_crX(cr, new, old) \
+                        hvm_monitor_cr(VM_EVENT_X86_##cr, new, old)
+
+#ifdef CONFIG_VM_EVENT
 /*
  * Called for current VCPU on crX/MSR changes by guest. Bool return signals
  * whether emulation should be postponed.
  */
 bool hvm_monitor_cr(unsigned int index, unsigned long value,
                     unsigned long old);
-#define hvm_monitor_crX(cr, new, old) \
-                        hvm_monitor_cr(VM_EVENT_X86_##cr, new, old)
 bool hvm_monitor_msr(unsigned int msr, uint64_t new_value, uint64_t old_value);
 void hvm_monitor_descriptor_access(uint64_t exit_info,
                                    uint64_t vmx_exit_qualification,
@@ -45,6 +47,65 @@ int hvm_monitor_vmexit(unsigned long exit_reason,
 
 int hvm_monitor_io(unsigned int port, unsigned int bytes,
                    bool in, bool str);
+#else
+static inline bool hvm_monitor_cr(unsigned int index, unsigned long value,
+                                  unsigned long old)
+{
+    return false;
+}
+
+static inline bool hvm_monitor_msr(unsigned int msr, uint64_t new_value,
+                                   uint64_t old_value)
+{
+    return false;
+}
+
+static inline void hvm_monitor_descriptor_access(uint64_t exit_info,
+                                        uint64_t vmx_exit_qualification,
+                                        uint8_t descriptor, bool is_write) {}
+
+static inline int hvm_monitor_debug(unsigned long rip,
+                                    enum hvm_monitor_debug_type type,
+                                    unsigned int trap_type,
+                                    unsigned int insn_length,
+                                    unsigned int pending_dbg)
+{
+    return -EOPNOTSUPP;
+}
+
+static inline int hvm_monitor_cpuid(unsigned long insn_length,
+                                    unsigned int leaf, unsigned int subleaf)
+{
+    return -EOPNOTSUPP;
+}
+
+static inline void hvm_monitor_interrupt(unsigned int vector,
+                                         unsigned int type,
+                                         unsigned int err, uint64_t cr2) {}
+
+static inline bool hvm_monitor_emul_unimplemented(void)
+{
+    return false;
+}
+
+static inline bool hvm_monitor_check_p2m(unsigned long gla, gfn_t gfn,
+                                         uint32_t pfec, uint16_t kind)
+{
+    return false;
+}
+
+static inline int hvm_monitor_vmexit(unsigned long exit_reason,
+                                     unsigned long exit_qualification)
+{
+    return -EOPNOTSUPP;
+}
+
+static inline int hvm_monitor_io(unsigned int port, unsigned int bytes,
+                                 bool in, bool str)
+{
+    return -EOPNOTSUPP;
+}
+#endif /* CONFIG_VM_EVENT */
 
 #endif /* __ASM_X86_HVM_MONITOR_H__ */
 
diff --git a/xen/arch/x86/include/asm/hvm/vm_event.h b/xen/arch/x86/include/asm/hvm/vm_event.h
index 506a85c774..1628230182 100644
--- a/xen/arch/x86/include/asm/hvm/vm_event.h
+++ b/xen/arch/x86/include/asm/hvm/vm_event.h
@@ -8,7 +8,11 @@
 #ifndef __ASM_X86_HVM_VM_EVENT_H__
 #define __ASM_X86_HVM_VM_EVENT_H__
 
+#ifdef CONFIG_VM_EVENT
 void hvm_vm_event_do_resume(struct vcpu *v);
+#else
+static inline void hvm_vm_event_do_resume(struct vcpu *v) {}
+#endif /* CONFIG_VM_EVENT */
 
 #endif /* __ASM_X86_HVM_VM_EVENT_H__ */
 
diff --git a/xen/arch/x86/include/asm/mem_access.h b/xen/arch/x86/include/asm/mem_access.h
index 1a52a10322..c786116310 100644
--- a/xen/arch/x86/include/asm/mem_access.h
+++ b/xen/arch/x86/include/asm/mem_access.h
@@ -14,6 +14,7 @@
 #ifndef __ASM_X86_MEM_ACCESS_H__
 #define __ASM_X86_MEM_ACCESS_H__
 
+#ifdef CONFIG_VM_EVENT
 /*
  * Setup vm_event request based on the access (gla is -1ull if not available).
  * Handles the rw2rx conversion. Boolean return value indicates if event type
@@ -25,6 +26,14 @@
 bool p2m_mem_access_check(paddr_t gpa, unsigned long gla,
                           struct npfec npfec,
                           struct vm_event_st **req_ptr);
+#else
+static inline bool p2m_mem_access_check(paddr_t gpa, unsigned long gla,
+                                        struct npfec npfec,
+                                        struct vm_event_st **req_ptr)
+{
+    return false;
+}
+#endif /* CONFIG_VM_EVENT */
 
 /* Check for emulation and mark vcpu for skipping one instruction
  * upon rescheduling if required. */
diff --git a/xen/arch/x86/include/asm/monitor.h b/xen/arch/x86/include/asm/monitor.h
index 3c64d8258f..815de8fda2 100644
--- a/xen/arch/x86/include/asm/monitor.h
+++ b/xen/arch/x86/include/asm/monitor.h
@@ -71,6 +71,7 @@ int arch_monitor_domctl_op(struct domain *d, struct xen_domctl_monitor_op *mop)
     return rc;
 }
 
+#ifdef CONFIG_VM_EVENT
 static inline uint32_t arch_monitor_get_capabilities(struct domain *d)
 {
     uint32_t capabilities = 0;
@@ -102,6 +103,13 @@ static inline uint32_t arch_monitor_get_capabilities(struct domain *d)
 
     return capabilities;
 }
+#else
+static inline uint32_t arch_monitor_get_capabilities(struct domain *d)
+{
+    ASSERT_UNREACHABLE();
+    return 0;
+}
+#endif /* CONFIG_VM_EVENT */
 
 int arch_monitor_domctl_event(struct domain *d,
                               struct xen_domctl_monitor_op *mop);
@@ -123,7 +131,14 @@ static inline void arch_monitor_cleanup_domain(struct domain *d) {}
 
 #endif
 
+#ifdef CONFIG_VM_EVENT
 bool monitored_msr(const struct domain *d, u32 msr);
+#else
+static inline bool monitored_msr(const struct domain *d, u32 msr)
+{
+    return false;
+}
+#endif
 bool monitored_msr_onchangeonly(const struct domain *d, u32 msr);
 
 #endif /* __ASM_X86_MONITOR_H__ */
diff --git a/xen/arch/x86/include/asm/p2m.h b/xen/arch/x86/include/asm/p2m.h
index 58b56e575e..9c92f67443 100644
--- a/xen/arch/x86/include/asm/p2m.h
+++ b/xen/arch/x86/include/asm/p2m.h
@@ -775,10 +775,16 @@ 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, mfn_t mfn);
 
+#ifdef CONFIG_VM_EVENT
 /* 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);
+#else
+static inline void p2m_mem_paging_drop_page(struct domain *d, gfn_t gfn,
+                                            p2m_type_t p2mt) {}
+static inline void p2m_mem_paging_populate(struct domain *d, gfn_t gfn) {}
+#endif /* CONFIG_VM_EVENT */
 /* 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);
diff --git a/xen/arch/x86/mm/mem_paging.c b/xen/arch/x86/mm/mem_paging.c
index ac8d34ffa0..636c0533b3 100644
--- a/xen/arch/x86/mm/mem_paging.c
+++ b/xen/arch/x86/mm/mem_paging.c
@@ -15,6 +15,7 @@
 
 #include "mm-locks.h"
 
+#ifdef CONFIG_VM_EVENT
 /*
  * p2m_mem_paging_drop_page - Tell pager to drop its reference to a paged page
  * @d: guest domain
@@ -186,6 +187,7 @@ void p2m_mem_paging_resume(struct domain *d, vm_event_response_t *rsp)
         gfn_unlock(p2m, gfn, 0);
     }
 }
+#endif /* CONFIG_VM_EVENT */
 
 /*
  * nominate - Mark a guest page as to-be-paged-out
diff --git a/xen/include/xen/mem_access.h b/xen/include/xen/mem_access.h
index 4de651038d..e9aaa7b321 100644
--- a/xen/include/xen/mem_access.h
+++ b/xen/include/xen/mem_access.h
@@ -33,9 +33,7 @@
  */
 struct vm_event_st;
 
-#ifdef CONFIG_VM_EVENT
 #include <asm/mem_access.h>
-#endif
 
 /*
  * Additional access types, which are used to further restrict
@@ -73,6 +71,7 @@ typedef enum {
     /* NOTE: Assumed to be only 4 bits right now on x86. */
 } p2m_access_t;
 
+#ifdef CONFIG_VM_EVENT
 struct p2m_domain;
 bool xenmem_access_to_p2m_access(const struct p2m_domain *p2m,
                                  xenmem_access_t xaccess,
@@ -99,10 +98,41 @@ long p2m_set_mem_access_multi(struct domain *d,
 int p2m_get_mem_access(struct domain *d, gfn_t gfn, xenmem_access_t *access,
                        unsigned int altp2m_idx);
 
-#ifdef CONFIG_VM_EVENT
 int mem_access_memop(unsigned long cmd,
                      XEN_GUEST_HANDLE_PARAM(xen_mem_access_op_t) arg);
 #else
+struct p2m_domain;
+static inline bool xenmem_access_to_p2m_access(const struct p2m_domain *p2m,
+                                               xenmem_access_t xaccess,
+                                               p2m_access_t *paccess)
+{
+    return false;
+}
+
+static inline long p2m_set_mem_access(struct domain *d, gfn_t gfn, uint32_t nr,
+                                      uint32_t start, uint32_t mask,
+                                      xenmem_access_t access,
+                                      unsigned int altp2m_idx)
+{
+    return -EOPNOTSUPP;
+}
+
+static inline long p2m_set_mem_access_multi(struct domain *d,
+                            const XEN_GUEST_HANDLE(const_uint64) pfn_list,
+                            const XEN_GUEST_HANDLE(const_uint8) access_list,
+                            uint32_t nr, uint32_t start, uint32_t mask,
+                            unsigned int altp2m_idx)
+{
+    return -EOPNOTSUPP;
+}
+
+static inline int p2m_get_mem_access(struct domain *d, gfn_t gfn,
+                                     xenmem_access_t *access,
+                                     unsigned int altp2m_idx)
+{
+    return -EOPNOTSUPP;
+}
+
 static inline
 int mem_access_memop(unsigned long cmd,
                      XEN_GUEST_HANDLE_PARAM(xen_mem_access_op_t) arg)
diff --git a/xen/include/xen/monitor.h b/xen/include/xen/monitor.h
index c086c4390c..1b7984909e 100644
--- a/xen/include/xen/monitor.h
+++ b/xen/include/xen/monitor.h
@@ -30,6 +30,7 @@ struct xen_domctl_monitor_op;
 #ifdef CONFIG_VM_EVENT
 int monitor_domctl(struct domain *d, struct xen_domctl_monitor_op *mop);
 void monitor_guest_request(void);
+int monitor_traps(struct vcpu *v, bool sync, vm_event_request_t *req);
 #else /* !CONFIG_VM_EVENT */
 static inline int monitor_domctl(struct domain *d,
                                  struct xen_domctl_monitor_op *mop)
@@ -37,8 +38,11 @@ static inline int monitor_domctl(struct domain *d,
     return -EOPNOTSUPP;
 }
 static inline void monitor_guest_request(void) {}
+static inline int monitor_traps(struct vcpu *v, bool sync,
+                                vm_event_request_t *req)
+{
+    return -EOPNOTSUPP;
+}
 #endif /* !CONFIG_VM_EVENT */
 
-int monitor_traps(struct vcpu *v, bool sync, vm_event_request_t *req);
-
 #endif /* __XEN_MONITOR_H__ */
diff --git a/xen/include/xen/vm_event.h b/xen/include/xen/vm_event.h
index 27d0c74216..4b3d0d15ec 100644
--- a/xen/include/xen/vm_event.h
+++ b/xen/include/xen/vm_event.h
@@ -50,6 +50,7 @@ struct vm_event_domain
     unsigned int last_vcpu_wake_up;
 };
 
+#ifdef CONFIG_VM_EVENT
 /* Returns whether a ring has been set up */
 bool vm_event_check_ring(struct vm_event_domain *ved);
 
@@ -68,6 +69,20 @@ bool vm_event_check_ring(struct vm_event_domain *ved);
  */
 int __vm_event_claim_slot(struct domain *d, struct vm_event_domain *ved,
                           bool allow_sleep);
+#else
+static inline bool vm_event_check_ring(struct vm_event_domain *ved)
+{
+    return false;
+}
+
+static inline int __vm_event_claim_slot(struct domain *d,
+                                        struct vm_event_domain *ved,
+                                        bool allow_sleep)
+{
+    return -EOPNOTSUPP;
+}
+#endif /* CONFIG_VM_EVENT */
+
 static inline int vm_event_claim_slot(struct domain *d,
                                       struct vm_event_domain *ved)
 {
@@ -82,23 +97,28 @@ static inline int vm_event_claim_slot_nosleep(struct domain *d,
 
 void vm_event_cancel_slot(struct domain *d, struct vm_event_domain *ved);
 
+#ifdef CONFIG_VM_EVENT
 void vm_event_put_request(struct domain *d, struct vm_event_domain *ved,
                           vm_event_request_t *req);
 
-#ifdef CONFIG_VM_EVENT
 /* Clean up on domain destruction */
 void vm_event_cleanup(struct domain *d);
 int vm_event_domctl(struct domain *d, struct xen_domctl_vm_event_op *vec);
+
+void vm_event_vcpu_pause(struct vcpu *v);
 #else /* !CONFIG_VM_EVENT */
+static inline void vm_event_put_request(struct domain *d,
+                                        struct vm_event_domain *ved,
+                                        vm_event_request_t *req) {}
 static inline void vm_event_cleanup(struct domain *d) {}
 static inline int vm_event_domctl(struct domain *d,
                                   struct xen_domctl_vm_event_op *vec)
 {
     return -EOPNOTSUPP;
 }
+static inline void vm_event_vcpu_pause(struct vcpu *v) {};
 #endif /* !CONFIG_VM_EVENT */
 
-void vm_event_vcpu_pause(struct vcpu *v);
 void vm_event_vcpu_unpause(struct vcpu *v);
 
 void vm_event_fill_regs(vm_event_request_t *req);
diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
index dad69905c9..7c61f27366 100644
--- a/xen/include/xsm/xsm.h
+++ b/xen/include/xsm/xsm.h
@@ -155,9 +155,9 @@ struct xsm_ops {
     int (*hvm_altp2mhvm_op)(struct domain *d, uint64_t mode, uint32_t op);
     int (*get_vnumainfo)(struct domain *d);
 
+#ifdef CONFIG_VM_EVENT
     int (*vm_event_control)(struct domain *d, int mode, int op);
 
-#ifdef CONFIG_VM_EVENT
     int (*mem_access)(struct domain *d);
 #endif
 
@@ -651,13 +651,13 @@ static inline int xsm_get_vnumainfo(xsm_default_t def, struct domain *d)
     return alternative_call(xsm_ops.get_vnumainfo, d);
 }
 
+#ifdef CONFIG_VM_EVENT
 static inline int xsm_vm_event_control(
     xsm_default_t def, struct domain *d, int mode, int op)
 {
     return alternative_call(xsm_ops.vm_event_control, d, mode, op);
 }
 
-#ifdef CONFIG_VM_EVENT
 static inline int xsm_mem_access(xsm_default_t def, struct domain *d)
 {
     return alternative_call(xsm_ops.mem_access, d);
diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
index 8a893c6eee..6f8b06b45f 100644
--- a/xen/xsm/dummy.c
+++ b/xen/xsm/dummy.c
@@ -115,9 +115,9 @@ static const struct xsm_ops __initconst_cf_clobber dummy_ops = {
     .remove_from_physmap           = xsm_remove_from_physmap,
     .map_gmfn_foreign              = xsm_map_gmfn_foreign,
 
+#ifdef CONFIG_VM_EVENT
     .vm_event_control              = xsm_vm_event_control,
 
-#ifdef CONFIG_VM_EVENT
     .mem_access                    = xsm_mem_access,
 #endif
 
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index 0382182f94..fd7aea460f 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -1365,12 +1365,12 @@ static int cf_check flask_hvm_altp2mhvm_op(struct domain *d, uint64_t mode, uint
     return current_has_perm(d, SECCLASS_HVM, HVM__ALTP2MHVM_OP);
 }
 
+#ifdef CONFIG_VM_EVENT
 static int cf_check flask_vm_event_control(struct domain *d, int mode, int op)
 {
     return current_has_perm(d, SECCLASS_DOMAIN2, DOMAIN2__VM_EVENT);
 }
 
-#ifdef CONFIG_VM_EVENT
 static int cf_check flask_mem_access(struct domain *d)
 {
     return current_has_perm(d, SECCLASS_DOMAIN2, DOMAIN2__MEM_ACCESS);
@@ -1969,9 +1969,9 @@ static const struct xsm_ops __initconst_cf_clobber flask_ops = {
     .do_xsm_op = do_flask_op,
     .get_vnumainfo = flask_get_vnumainfo,
 
+#ifdef CONFIG_VM_EVENT
     .vm_event_control = flask_vm_event_control,
 
-#ifdef CONFIG_VM_EVENT
     .mem_access = flask_mem_access,
 #endif
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sun Aug 03 09:48:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 Aug 2025 09:48:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068343.1432352 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiVKJ-0006Mt-Nm; Sun, 03 Aug 2025 09:48:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068343.1432352; Sun, 03 Aug 2025 09:48:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiVKJ-0006MP-HE; Sun, 03 Aug 2025 09:48:23 +0000
Received: by outflank-mailman (input) for mailman id 1068343;
 Sun, 03 Aug 2025 09:48:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f/pN=2P=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1uiVKI-0005K3-Nl
 for xen-devel@lists.xenproject.org; Sun, 03 Aug 2025 09:48:22 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20631.outbound.protection.outlook.com
 [2a01:111:f403:2413::631])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fd6bfe01-704e-11f0-a321-13f23c93f187;
 Sun, 03 Aug 2025 11:48:22 +0200 (CEST)
Received: from MW4PR04CA0217.namprd04.prod.outlook.com (2603:10b6:303:87::12)
 by PH7PR12MB9128.namprd12.prod.outlook.com (2603:10b6:510:2f7::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.20; Sun, 3 Aug
 2025 09:48:17 +0000
Received: from SJ1PEPF00002319.namprd03.prod.outlook.com
 (2603:10b6:303:87:cafe::38) by MW4PR04CA0217.outlook.office365.com
 (2603:10b6:303:87::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.18 via Frontend Transport; Sun,
 3 Aug 2025 09:48:16 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF00002319.mail.protection.outlook.com (10.167.242.229) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Sun, 3 Aug 2025 09:48:16 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) 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; Sun, 3 Aug 2025 04:48:12 -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>
X-Inumbo-ID: fd6bfe01-704e-11f0-a321-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=I2+draGIXiUULd4BuJxjDr+4UJlN7cxXC3Tn5t+XlYPu9v6aQs9d2lSbHn9VldwLNVtApluQd1a4GrHSXdcXTnHwBQfgDJhq1ou+CTdAo4ov1kpiLgwLOHilYhAANr+BhJMNeIJihNUWg6sYc2GEWL67/aBluijWISVtOtAk3PY+O0f5BZpDU0nLHADq7GrYMWlDVNNHn0DBZ5Fr46PytPteJShVRgzpkvddqj2O49RmAXKGebF2bL46KpU9Byo++iMOo+nhgcsEaZ76pmP3i8FMDzx2ETzS7k15L3ago/8uEqUJgHHO1HV6LSL67wRC09HRvTBTOF+QVUhexGLMMw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=gZBfEkYMoH4wrGRGa6I6ddzO0izCEguxFLEC949T/Ek=;
 b=vsT2c54aR0eOkD7O1pmKJzOHikxrszrSvuDhfcT0rcdJsUQZxK6XpNGMLFDYQMLfIR/2/JvrhXZf4AMnmBiaHEJc1xDa7jQTvtu4UpDg91+vBPTggn8/biqUCUgVKsqQG8r7KKAWIUZQk9+RB2g/AIETbpGvtrCKv0ObPoogvFGHkhKzHYqSaeTK2/BhmLYkkoBxq6rnxtVxAPtsEb2vwGfaHBMr3zWnujCEnCOZHUetgvuMYmGO8TWkiZeJUzWpVHKkl8OrqOqOZ0n+IF8Aoruo45HBtCHWNpEuF7qdDQdCdhD0RhEco8cmFGAKB/QivoStZoELn8yQQf1iOvZ8Ag==
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=gZBfEkYMoH4wrGRGa6I6ddzO0izCEguxFLEC949T/Ek=;
 b=2fFa88aa5Z/QTrK3feO7pUGQVUCEYSj6k0QYAkEpcvQt7UxCFWfBSuCKpNWDG40Hu2ITVxQugXIGYyg4/FW7VhET8tOeqJjgN5dr2nuA8mabSbcXg1Di6PzjT+V5e3C1+O/g6Sfd3dcLvjLIneOKaEv7MherRsjUebTFSitWcT4=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 05/25] xen: introduce CONFIG_DOMCTL
Date: Sun, 3 Aug 2025 17:47:18 +0800
Message-ID: <20250803094738.3625269-6-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250803094738.3625269-1-Penny.Zheng@amd.com>
References: <20250803094738.3625269-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: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF00002319:EE_|PH7PR12MB9128:EE_
X-MS-Office365-Filtering-Correlation-Id: 0720f6ed-de54-471a-7313-08ddd272dedd
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?/ySx1zFFV57UAI72ebIdhCRo2PifHZ7MB9W9IgPd9wBnOlk+A0vyTZDAn8td?=
 =?us-ascii?Q?c6XNP6Egmj0ZbAmitpAUERRunsoddDdQTnG/qJTktz1glD8UGvTDAIga3Zq9?=
 =?us-ascii?Q?3AcW5+uCHpk31fxxCatRn7y05bBvE6WiDLykNdnPE0CAutikAmBsYuQdG6/e?=
 =?us-ascii?Q?llm46P1w3p6h6zoe0yQoWVvl5602WlcD4mYwNA/pCSUlnJ/QdtIfJHs6GjR1?=
 =?us-ascii?Q?5KNt3K2R5nDxrWEjm7CHxiCqq5POjcHX1/GBcWsO4+g8XHQwZUUJjEer2gv6?=
 =?us-ascii?Q?3QOt1UxRuI0x2RGAFWv9/oI8dMn2ZiPdSlEtaiJ7ISBp9Xpfgs10ZODe2mIx?=
 =?us-ascii?Q?c06W0GE6sPoseSn5Mb5Y2gda/uaNR2f0Gy9Ucc6poS4qv+16JsLvbOZjx6CY?=
 =?us-ascii?Q?iqHPr9kGWpmJrcF/2sWzSacNixao22XgGDxFY15hLthA9rgfid4JzD/KapOs?=
 =?us-ascii?Q?wldS4y0g2EXX+X6rsHok+1Lgj+AF8gOlCwSha/Yx6GyWIJ6awlvgUw4TFGMb?=
 =?us-ascii?Q?w5aFLyn+3+cFhzIhM0o/IxiSAzUu0AC/lXByOP6Sh/c6FXDwH+2Fq4+emRMe?=
 =?us-ascii?Q?cnB8iZc1x+3a9tQsKfYeuCKk13cEYU0JlmPpp/5lUPdF+pWQLf2zQ59Qvh1I?=
 =?us-ascii?Q?AGU12MAvi/7p8L6uotHVjB07a2E2kQRlQ4oayuBVCnhwmV0TtUExx/+CzWIt?=
 =?us-ascii?Q?4S35zbStiWkw/0crAFtA91gJy/dTgmXOqeqgcQxbkTOuPuzzMh82Z5iOdpAv?=
 =?us-ascii?Q?xMQ9Sjxm4lG1TtFWdP1TzEeAs2CY0IBGyUU4MbXd6SozPirz29CJdIyyM/GY?=
 =?us-ascii?Q?WrTCecQLvKpRsSlLuIfCqUtyKYYO4Ar0VnFOHiB+ALihq91hVjG+ZKlJzc/7?=
 =?us-ascii?Q?W9msbIXNv6/mOISW575g4ccSH4u4EctFd2IMimw7gxGqqBKMtYDugRbCZaiE?=
 =?us-ascii?Q?Hlg9YliibFeUdKYESoFr7V2WTQVhDnYhG9B7PquawYQzCT+DwHFiZR9mAbE1?=
 =?us-ascii?Q?a+SQmuK/1f9c14cNE46lCsAIA8z4TQXQr/JvnWJOyEn4p7dtHiWCvea56M3i?=
 =?us-ascii?Q?pWw1rDDE7Pr4etmQS0Xsenjyr0HCXWSpnaB5TQToGLOdtjXbLGM8n3PCuw0P?=
 =?us-ascii?Q?gEAQkvub5uq+RtwMbn4jQgviKkKX9ugWc89BGGVYPVwRPlj7MHUYoEUjaUba?=
 =?us-ascii?Q?n7r+dgVriXi4roe8PJ45Bc1uFDZ5y5NUgg7POXfNPM/rGxoIhDPpzHTLFIB/?=
 =?us-ascii?Q?XCoQbym65oGw71inER9sfC+A+ofSOQu406jIm7j9nRODp/9mg1ICwXoIlOfW?=
 =?us-ascii?Q?k24cIEguB88dtSadF2kbC8EG/RzXM2B/Al6vRGXGkGZOK0whp5CXb+HxnStE?=
 =?us-ascii?Q?43MVsEbOYwAIt/GJe5VSsPoTHC+oTiQ3Lzfc5Uh1ppXeWCxWxpP7IbXXRi+V?=
 =?us-ascii?Q?4Y9EwVU/pjCFmIx76BPsOWjof5Ygkb+ufqBYTA1jlDwWo8ZwY75iX7kbt6Ba?=
 =?us-ascii?Q?xCPi2vCGrYttl1AxLM8dms9eTpARl0FJ3GKn?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(1800799024)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2025 09:48:16.2300
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0720f6ed-de54-471a-7313-08ddd272dedd
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF00002319.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB9128

We introduce a new Kconfig CONFIG_DOMCTL, which shall only be disabled
on some dom0less systems or PV shim on x86, to reduce Xen footprint.

Making DOMCTL without prompt is transient and it will be adjusted in the final
patch. And the consequence of introducing "CONFIG_DOMCTL=y" in .config file
generated from pvshim_defconfig is transient too, which will also be adjusted
in the final patch.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
 xen/common/Kconfig | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 16936418a6..bf1850c154 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -627,6 +627,10 @@ config SYSCTL
 	  This option shall only be disabled on some dom0less systems, or
 	  PV shim on x86, to reduce Xen footprint.
 
+config DOMCTL
+	bool "Enable domctl hypercall"
+	def_bool y
+
 endmenu
 
 config PM_OP
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sun Aug 03 09:48:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 Aug 2025 09:48:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068346.1432366 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiVKP-0006vx-1r; Sun, 03 Aug 2025 09:48:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068346.1432366; Sun, 03 Aug 2025 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 1uiVKO-0006vo-U0; Sun, 03 Aug 2025 09:48:28 +0000
Received: by outflank-mailman (input) for mailman id 1068346;
 Sun, 03 Aug 2025 09:48:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f/pN=2P=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1uiVKN-0005K3-9t
 for xen-devel@lists.xenproject.org; Sun, 03 Aug 2025 09:48:27 +0000
Received: from NAM04-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam04on2060f.outbound.protection.outlook.com
 [2a01:111:f403:2409::60f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 005b4c65-704f-11f0-a321-13f23c93f187;
 Sun, 03 Aug 2025 11:48:26 +0200 (CEST)
Received: from SJ0PR03CA0244.namprd03.prod.outlook.com (2603:10b6:a03:3a0::9)
 by DS7PR12MB6359.namprd12.prod.outlook.com (2603:10b6:8:94::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.17; Sun, 3 Aug
 2025 09:48:21 +0000
Received: from SJ1PEPF0000231C.namprd03.prod.outlook.com
 (2603:10b6:a03:3a0:cafe::99) by SJ0PR03CA0244.outlook.office365.com
 (2603:10b6:a03:3a0::9) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.18 via Frontend Transport; Sun,
 3 Aug 2025 09:48:21 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF0000231C.mail.protection.outlook.com (10.167.242.233) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Sun, 3 Aug 2025 09:48:21 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) 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; Sun, 3 Aug 2025 04:48: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>
X-Inumbo-ID: 005b4c65-704f-11f0-a321-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HmSVrZMz97TpVBqP7OWNa5NuAtZURB4JO4BKd/y3F9MPZ5HAm5H9owi5Z9FA9lvG9aHoMUKPLWiZRnfqFeRDj88V3SV4XGXVOw5DmGSH9smLRZtur9A9dGTF2d3GEUhVlGXEGNEyMI0KxgLYlxJTPeKEZtEjABmrima1KaIsypE3zYOXAFg5crKvowlhsI6ZDabVz11wgAhDB5/pK+v9qbqU9VKUnBL+RVZoB3Fvji3+0yWl7WFeVYIATnZQ0yaE4UAgFf6aqabWV/Vz7cdRil8BU9QsjYvFmjELEr6Urc3Ay4ehI5OVBlnae1sAJDvKBpA9mnfRl1Dmfg626CxWPA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=HO40SAHo2CYI1R0WwB9j6q9Tlw1qyPHypuso9zukZM0=;
 b=xbDIUVuIkKL7y+0cuhjcUKveN/rNX1AqoOe8uSB9fJuYUBSDhom3sLubKJ0lfhAFXlYBAYNCua+7eS2TCnVnxaSwGjI1mukbgnLn7EtsTVABIE5M7ZguV6MjOFBa98qvVvEi7OXySQECtFCWYJe7FOUOLaq/QN88+H9ISeh+Ghwv84uWtzGX+smpnA20r5+EFjCbxNmZxRzTljeE/vgy1zJdVv257cNeqWhTK8rwANsZ177FETUKxj3OL9Yu+zgAvJNgVDNOMX0D1jFWQe8NCWsCmHb08VpZU9vI0aufbiTduP2Qh2bZEWrVcFLAqCRZr7IQ/UpelqI8zzk7shy1qg==
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=HO40SAHo2CYI1R0WwB9j6q9Tlw1qyPHypuso9zukZM0=;
 b=tWrQle79UKwn0UtRPGJ3TmzeNDygBexGbPj9vH0sIh5St6kVEoiPXtLHMbIFdVp4pYt9YFEqiPVk8gxVmYwokN6o0i+tfdf1Y+uZ6rQb1IN/fA9+TsntEaNzSIPA/xF2G/gzTwlcqzQ7ILSQIPVc/pEA+6aDFGGsOP2KvO13knc=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 07/25] xen/domctl: wrap around XEN_DOMCTL_pausedomain
Date: Sun, 3 Aug 2025 17:47:20 +0800
Message-ID: <20250803094738.3625269-8-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250803094738.3625269-1-Penny.Zheng@amd.com>
References: <20250803094738.3625269-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: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF0000231C:EE_|DS7PR12MB6359:EE_
X-MS-Office365-Filtering-Correlation-Id: 9c85368e-2432-4eb3-949a-08ddd272e1cf
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?zfXpkMfbUF3rNNxLa5V9THJNvcUUNQWrJBLG+kCSEFRSgIoukr9aj31asYJ2?=
 =?us-ascii?Q?lpZqevDxvhlsLMMJD7omdwzyliIfE4hJkQRRT3FC03ij0n4st4BynuUaUHkt?=
 =?us-ascii?Q?TUW3qbjHZUE7FNA5T7PV0/MK5JusfUPcjJeY/chEQFmpNV8VKo6jTZDVTZMs?=
 =?us-ascii?Q?wcem5y807Y5VwAV/a6/T/K7HhtsS/JA3GK/O1IZoc92PvlMTOgjDQyUFXyUu?=
 =?us-ascii?Q?iD/1koEId0xQbIp9ijAgbnG/SIUas8n8aH/v3MI9HYbuaZKakYXEWkH+bmwN?=
 =?us-ascii?Q?3ebk3UOWeBOWShJ1U+vrXUQM+GjYC7AUWtINlpR3gRleJvE08U8ctEHrr4i5?=
 =?us-ascii?Q?omhAeWdhR41Lc9NYx5eGMKh4CA6DbbX1pD/VrTk5M6k245r9sqWjCireVCP2?=
 =?us-ascii?Q?ckCIT01AipPi7a7xE4U9U4UIDhOk27k7cA6oiv8f+Gw64elFE1vtqU9iqbiI?=
 =?us-ascii?Q?n1D4ktBKok1/cmZ8ibD9ETwCodZ5QuNO2KyVam2++b4V/G+IZBdx0xXhdom3?=
 =?us-ascii?Q?0hbbZTJURIahK4kk8+IY6k31l02hBo/e9WJZjqtyK06HZsKE3WMZDwwQIK15?=
 =?us-ascii?Q?QPKmeVRDHiihfecIolzBpUe2M8elD/H9BH60vpe457bxWzQSWbmOmzez5k27?=
 =?us-ascii?Q?jBFQaHFNPdvRCTp11iCpmVz7ywVjeqTQ73+IX1qcSKDML3B3SKkvmNnT94NG?=
 =?us-ascii?Q?NSihfylv4TP36Xpn1ky0Rxz6g8AVblUHFoYl6ggw//rBjb3LX+Et7TVhjw5e?=
 =?us-ascii?Q?oA7y6shrEZhVsiHOnp/aIVS3RfqhuGniZxsfEXqHUEm7LNgd/PGN9N4FFsG6?=
 =?us-ascii?Q?NzprYo6MznxcIK2QlXL2ZaDzo8z11ml1Z3xCCeasWvTbZJOjGWNTvDdEUd8r?=
 =?us-ascii?Q?m47P5mPqoNEujtrYFdxjfLfF6BvfK4NmlfDnRJX7dISOzG8vXmV9VTklsGgX?=
 =?us-ascii?Q?92yC8cJyNh/bW8Vjm/5cjgPTVBijLR+NBFtO3v2dHnW3GnLMDxnolrP+9dTv?=
 =?us-ascii?Q?8EccGlMgTgA07tVDwiZ9iSZpQoEzT+9EDFp0DBu8yfDnHn9WwqBVN0/INPnU?=
 =?us-ascii?Q?Omoly1d1DyRUYQIV1KdVvgAZB+LzIaUY60IwfghmiPe71RBza44gABwqxFJ7?=
 =?us-ascii?Q?mvt/OJe0PXBdBYSZeDpQSvd/pk1WIAz8XBGyAwYk1WhTSWu3ytZoyC/J7w3F?=
 =?us-ascii?Q?sJ/P3BlLCLQB+TgERUGgEE3owTQnFinVVylSj8o/bpBx8Ap+lUoPn5lzRTA+?=
 =?us-ascii?Q?K7XmlI/NqrOHhKIG3rDekyyczECBLH/2XJnIeFgGmMR2MRp5Y0oaLIBaO0fA?=
 =?us-ascii?Q?GprPOG+F6h8xTyQRPdeet2RvWv7L0UUDcEuwBlkrdFk1bIxuhgPMpr5qGTKC?=
 =?us-ascii?Q?KMUPAFlXqjgo5r36pzGaaTm2kTmyCdmT3fNw3DJjx0uTvKwRe4cUaOjAvLLK?=
 =?us-ascii?Q?J1ISntk2Uw9uSlTavANFwKq59sRU+NVM5R+7SvM6N+7vAudm4HeK+fL8T5nV?=
 =?us-ascii?Q?F3arql3SSMrzMpTzX79gGsPSl/iMQe5thuzq?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2025 09:48:21.1703
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9c85368e-2432-4eb3-949a-08ddd272e1cf
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF0000231C.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB6359

Function domain_pause_by_systemcontroller() is responsible for
XEN_DOMCTL_pausedomain domctl-op, and shall be wrapped around with
CONFIG_DOMCTL

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
 xen/common/domain.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/xen/common/domain.c b/xen/common/domain.c
index 5241a1629e..e20fe2d40d 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -1598,10 +1598,12 @@ static int _domain_pause_by_systemcontroller(struct domain *d, bool sync)
     return 0;
 }
 
+#ifdef CONFIG_DOMCTL
 int domain_pause_by_systemcontroller(struct domain *d)
 {
     return _domain_pause_by_systemcontroller(d, true /* sync */);
 }
+#endif /* CONFIG_DOMCTL */
 
 int domain_pause_by_systemcontroller_nosync(struct domain *d)
 {
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sun Aug 03 09:48:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 Aug 2025 09:48:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068351.1432376 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiVKU-0007VB-CL; Sun, 03 Aug 2025 09:48:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068351.1432376; Sun, 03 Aug 2025 09:48: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 1uiVKU-0007V4-85; Sun, 03 Aug 2025 09:48:34 +0000
Received: by outflank-mailman (input) for mailman id 1068351;
 Sun, 03 Aug 2025 09:48:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f/pN=2P=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1uiVKS-0005K3-Lp
 for xen-devel@lists.xenproject.org; Sun, 03 Aug 2025 09:48:32 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on2062c.outbound.protection.outlook.com
 [2a01:111:f403:2418::62c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 03eb465a-704f-11f0-a321-13f23c93f187;
 Sun, 03 Aug 2025 11:48:32 +0200 (CEST)
Received: from MW2PR16CA0015.namprd16.prod.outlook.com (2603:10b6:907::28) by
 SA3PR12MB8024.namprd12.prod.outlook.com (2603:10b6:806:312::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.18; Sun, 3 Aug
 2025 09:48:27 +0000
Received: from SJ1PEPF0000231D.namprd03.prod.outlook.com
 (2603:10b6:907:0:cafe::a3) by MW2PR16CA0015.outlook.office365.com
 (2603:10b6:907::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.19 via Frontend Transport; Sun,
 3 Aug 2025 09:48:26 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF0000231D.mail.protection.outlook.com (10.167.242.234) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Sun, 3 Aug 2025 09:48:25 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) 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; Sun, 3 Aug 2025 04: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>
X-Inumbo-ID: 03eb465a-704f-11f0-a321-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=azcmPV1WUxrPHk1m/KGU78+S5aIClRoq9MqGYaZtU10oBOzPMvMcpSvYzoafQ0E2F2o/2PL6MdI6sbBBb987jM7ZBG7wijefbZRHEkgxHSfZJWj6H7mlpO/MtmPoTr3T0IEtcJ0gZQT0tp0R/9QHCl1zTO2bWTmWDiPNrCh4cHu+ECIu3oNg2REwzZpaY7Xhgq8Kt5oRePcssWn/7tso5868325JoIkDshBGxq6et99v4hwrqs8GDwx0Xnb6mzpesrVOQhx2ib7n6EvcsOkDxTzOOo17NRygJOgrFAUIAV3C9GkX3lxKJDx0fPCvW5jPOrz3CIC/ScStfYNd9YeQAw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=HDWkHlpI39c3TP608GAZB0w6tfc2X4mcFFWinzeznro=;
 b=VTGhga+yddrkDRbQtkn3vXeWViNdrmclJopgtmFtmsoiLmF5QPaqLsIy8qMnuXbrESl7dAT01bQXrOEWd6+WO+UrGAANOIATbCkdcsbwwDKwh3OrZczWXiUXQr2I5Of94JlMnsZuzaCEQePrfLoO1Ff58yfcYo0najX2GIigKJ/1s/brs8v+BZ7gGtOSv7AhxoWmRMnCh+EICfL1rwx2N7EV4aUscnHuhlVPOiSzaj6FfeLAdtKxHsswa6RNoTOBhHWwZswydE0kEM0BIBqL0mGmtlCS8zJwpQlZqUILrkkSaHw9xPvzcVogVzh8ux0g0g1HJzK1ec38wjwGLuSTBg==
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=HDWkHlpI39c3TP608GAZB0w6tfc2X4mcFFWinzeznro=;
 b=tDy2lh54b+amBaTmhnezMM2jmAP9AHzLOYotbUiGB2KnyooSXiMMVexzR+SV/2TtVm58hVw33IhI0Y9KxvP3dcdkwNutk1iXOgOTbyJiKx1Drri3TPGCQ1tHKf21h8A98rGJBnqbyMHSBQR13c1dwsjk9r52dUtM8ZdlY24Ehs8=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.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>, Shawn Anastasio <sanastasio@raptorengineering.com>,
	Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman
	<bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, "Oleksii
 Kurochko" <oleksii.kurochko@gmail.com>, Christopher Clark
	<christopher.w.clark@gmail.com>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>
Subject: [PATCH v1 08/25] xen/domctl: wrap around XEN_DOMCTL_soft_reset
Date: Sun, 3 Aug 2025 17:47:21 +0800
Message-ID: <20250803094738.3625269-9-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250803094738.3625269-1-Penny.Zheng@amd.com>
References: <20250803094738.3625269-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: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF0000231D:EE_|SA3PR12MB8024:EE_
X-MS-Office365-Filtering-Correlation-Id: c41198b9-fa94-47c1-1fc6-08ddd272e49b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|7416014|376014|1800799024|82310400026|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?lc86eHYoW09r0dyZphhLENMnVqVA+CisEPrttuaXqLPeO7O2mqMstB/S3PDf?=
 =?us-ascii?Q?JKfsofuMToHB1c0DR4bEiSgIbGWSe+Pfrr+X2Ye/RnFHKa76zT8Dnw1a0tOb?=
 =?us-ascii?Q?SAspPuPwQBC1KbX3Zj9Y3gZ5tD8VbuQpBQaZGD4CN0odNlAFD4Je/kgripmZ?=
 =?us-ascii?Q?0KWHMgH28QXXJ/b0AnaKxr6XnUzMUbtpiVzfGgqMJdTkE7G1Y931ZN1h8ka0?=
 =?us-ascii?Q?6xZe3Nver8QBDtpWmBW/fBikSNDo3bA1gLdUKYBw2mnL+f6l/iKhIbGlMJDF?=
 =?us-ascii?Q?LDh6nBeiqHefeX52+YHq/kiWrE+ORtC1DLWKhK38Xz3PEv3N8xgsdK08k7JG?=
 =?us-ascii?Q?82g+KzMou5+FBzuROWbeNPoSVYIDC6ZLTXTCkFRzDHt0fOCR/eDin0u1VQDZ?=
 =?us-ascii?Q?agEzVvtSVqFwST1kR5D+62sutCru5T9T5RmaJpcGR2WPGQqnbJEFysqQhAGe?=
 =?us-ascii?Q?UkImvgyRh8l3Mi/2dzQ748UUjLR6MgkSJ2Qw2Z9MDK9k8zwOHV2ZTG2XSn5W?=
 =?us-ascii?Q?+qiu8Z5CPbLqefxpDxwRf/qiwrPOmNeIF3yRMZnll1niamqPKoLIDopBVmRu?=
 =?us-ascii?Q?MgDGBbWJQbezn92uqqdU1FEqyyarm798F25mE1HQ/oxNKnkftablYV4l5Khq?=
 =?us-ascii?Q?sM3I1dH7ITwrOLT5q0SzJ5difjtg1HowepwXy7aEfAvAuLnYpiR/Bgg+7KmK?=
 =?us-ascii?Q?dH4UPjfYr+3326dv3pPvVe21nEF4d2EJgPW47VWRnCtCfAwvwr5CxvSnXgW5?=
 =?us-ascii?Q?GFSJC1dpZyhMeRTwsZmg6hhKHKeuMwbSxY+T07Pc2Np8Pr83jCF8Av36AKmf?=
 =?us-ascii?Q?gCGF9s6vQRSfGKTLwvihQZc2BmCCr3DjKI2BPX0CGm5H18yh7sQggIMHuZLO?=
 =?us-ascii?Q?QWhdPVhtKFefZqcPpWQBdP4WYmNBf2Pe3Oj93PTBbLunZ3zueKpl3a2fid2/?=
 =?us-ascii?Q?/2wgRTwvvF89GCqntaoLWSKUcLqj4Jhc7PxNonOE5D1/DMxWcPuUQp2ZKXXJ?=
 =?us-ascii?Q?VIVV1Er0lIQtbotcigZCk/2at+HSNTG4I+RYnOabmZvBf63WTVf0YnfeWiv+?=
 =?us-ascii?Q?cdSmyjE/s4QO2btcYDXtK2rpqHQEWUizkD7LikGv4geuhTv707KtlrvkY8kA?=
 =?us-ascii?Q?ScFaW/LUPZdy16/OHABEuy0tBl9DMGI3xOtirP4Z1cGIvRmy/3e4WflVfWGL?=
 =?us-ascii?Q?1s9IemuxvR9Q+wvGcoJgrGKSAaotJ4yYD5TvkfX3LjRHu5ZA3aqnBebqi6dz?=
 =?us-ascii?Q?9Nt+UDZ7dZ4Mqjsb3tUu40R2uwsF40R82ZxxV667UbYF8e/0Nl6z+ijTlevU?=
 =?us-ascii?Q?cGdLB4WF4QlQvT+t4eWc08VsIVVI0/A2jUeayyBvxH147bvtZdVAdFrc/GqS?=
 =?us-ascii?Q?Sib1G/BpWjGndmf4dAvh3ThfuyfRhMsP8Mw9pKVikwhN0U9sZ65EufIK9+6/?=
 =?us-ascii?Q?o6hzjEso9AKWnJQdLUo6ymzS9In0DNuTU8PaudJBmbcnLWyMDHPlxIrnpDUE?=
 =?us-ascii?Q?kh/wZwjUQOnloZXtsW9An+/fPtiZ+1OYdFFy?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2025 09:48:25.8604
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c41198b9-fa94-47c1-1fc6-08ddd272e49b
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF0000231D.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB8024

Function domain_soft_reset() is responsible for domain soft reset, tracking
its calling chain, and the following functions could also be wrapped:
- grant_table_warn_active_grants()
- argo_soft_reset()
- arch_domain_soft_reset()
- domain_resume(), another usage is in XEN_DOMCTL_resumedomain domctl-op.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
 xen/arch/arm/domain.c    | 2 ++
 xen/arch/ppc/stubs.c     | 2 ++
 xen/arch/riscv/stubs.c   | 2 ++
 xen/arch/x86/domain.c    | 2 ++
 xen/common/argo.c        | 2 ++
 xen/common/domain.c      | 4 ++++
 xen/common/grant_table.c | 2 ++
 7 files changed, 16 insertions(+)

diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index 310c578909..4124d201d1 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -870,10 +870,12 @@ void arch_domain_unpause(struct domain *d)
 {
 }
 
+#ifdef CONFIG_DOMCTL
 int arch_domain_soft_reset(struct domain *d)
 {
     return -ENOSYS;
 }
+#endif /* CONFIG_DOMCTL */
 
 void arch_domain_creation_finished(struct domain *d)
 {
diff --git a/xen/arch/ppc/stubs.c b/xen/arch/ppc/stubs.c
index 4679cf9360..b2b97c6eb7 100644
--- a/xen/arch/ppc/stubs.c
+++ b/xen/arch/ppc/stubs.c
@@ -236,10 +236,12 @@ void arch_domain_unpause(struct domain *d)
     BUG_ON("unimplemented");
 }
 
+#ifdef CONFIG_DOMCTL
 int arch_domain_soft_reset(struct domain *d)
 {
     BUG_ON("unimplemented");
 }
+#endif /* CONFIG_DOMCTL */
 
 void arch_domain_creation_finished(struct domain *d)
 {
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index 8918cebf35..4f817bfe83 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -208,10 +208,12 @@ void arch_domain_unpause(struct domain *d)
     BUG_ON("unimplemented");
 }
 
+#ifdef CONFIG_DOMCTL
 int arch_domain_soft_reset(struct domain *d)
 {
     BUG_ON("unimplemented");
 }
+#endif /* CONFIG_DOMCTL */
 
 void arch_domain_creation_finished(struct domain *d)
 {
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 56c3816187..13ccaf1c79 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -1001,6 +1001,7 @@ void arch_domain_unpause(struct domain *d)
         viridian_time_domain_thaw(d);
 }
 
+#ifdef CONFIG_DOMCTL
 int arch_domain_soft_reset(struct domain *d)
 {
     struct page_info *page = virt_to_page(d->shared_info), *new_page;
@@ -1102,6 +1103,7 @@ int arch_domain_soft_reset(struct domain *d)
 
     return ret;
 }
+#endif /* CONFIG_DOMCTL */
 
 void arch_domain_creation_finished(struct domain *d)
 {
diff --git a/xen/common/argo.c b/xen/common/argo.c
index cbe8911a43..932f9fde9b 100644
--- a/xen/common/argo.c
+++ b/xen/common/argo.c
@@ -2351,6 +2351,7 @@ argo_destroy(struct domain *d)
     write_unlock(&L1_global_argo_rwlock);
 }
 
+#ifdef CONFIG_DOMCTL
 void
 argo_soft_reset(struct domain *d)
 {
@@ -2374,3 +2375,4 @@ argo_soft_reset(struct domain *d)
 
     write_unlock(&L1_global_argo_rwlock);
 }
+#endif /* CONFIG_DOMCTL */
diff --git a/xen/common/domain.c b/xen/common/domain.c
index e20fe2d40d..604217d782 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -1343,6 +1343,7 @@ int domain_shutdown(struct domain *d, u8 reason)
     return 0;
 }
 
+#ifdef CONFIG_DOMCTL
 void domain_resume(struct domain *d)
 {
     struct vcpu *v;
@@ -1369,6 +1370,7 @@ void domain_resume(struct domain *d)
 
     domain_unpause(d);
 }
+#endif /* CONFIG_DOMCTL */
 
 int vcpu_start_shutdown_deferral(struct vcpu *v)
 {
@@ -1681,6 +1683,7 @@ void domain_unpause_except_self(struct domain *d)
         domain_unpause(d);
 }
 
+#ifdef CONFIG_DOMCTL
 int domain_soft_reset(struct domain *d, bool resuming)
 {
     struct vcpu *v;
@@ -1718,6 +1721,7 @@ int domain_soft_reset(struct domain *d, bool resuming)
 
     return rc;
 }
+#endif /* CONFIG_DOMCTL */
 
 int vcpu_reset(struct vcpu *v)
 {
diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
index cf131c43a1..bfb199be7f 100644
--- a/xen/common/grant_table.c
+++ b/xen/common/grant_table.c
@@ -3962,6 +3962,7 @@ int gnttab_release_mappings(struct domain *d)
     return 0;
 }
 
+#ifdef CONFIG_DOMCTL
 void grant_table_warn_active_grants(struct domain *d)
 {
     struct grant_table *gt = d->grant_table;
@@ -4006,6 +4007,7 @@ void grant_table_warn_active_grants(struct domain *d)
 
 #undef WARN_GRANT_MAX
 }
+#endif /* CONFIG_DOMCTL */
 
 void
 grant_table_destroy(
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sun Aug 03 09:48:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 Aug 2025 09:48:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068364.1432385 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiVKc-0008Un-U1; Sun, 03 Aug 2025 09:48:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068364.1432385; Sun, 03 Aug 2025 09:48: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 1uiVKc-0008Ua-Qs; Sun, 03 Aug 2025 09:48:42 +0000
Received: by outflank-mailman (input) for mailman id 1068364;
 Sun, 03 Aug 2025 09:48:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f/pN=2P=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1uiVKb-0005hH-9w
 for xen-devel@lists.xenproject.org; Sun, 03 Aug 2025 09:48:41 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20613.outbound.protection.outlook.com
 [2a01:111:f403:2412::613])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 074dbaa2-704f-11f0-b897-0df219b8e170;
 Sun, 03 Aug 2025 11:48:39 +0200 (CEST)
Received: from BYAPR11CA0055.namprd11.prod.outlook.com (2603:10b6:a03:80::32)
 by DM4PR12MB5964.namprd12.prod.outlook.com (2603:10b6:8:6b::6) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8989.18; Sun, 3 Aug 2025 09:48:35 +0000
Received: from SJ1PEPF0000231B.namprd03.prod.outlook.com
 (2603:10b6:a03:80:cafe::1a) by BYAPR11CA0055.outlook.office365.com
 (2603:10b6:a03:80::32) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.19 via Frontend Transport; Sun,
 3 Aug 2025 09:48:34 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF0000231B.mail.protection.outlook.com (10.167.242.232) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Sun, 3 Aug 2025 09:48:34 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) 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; Sun, 3 Aug 2025 04:48: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>
X-Inumbo-ID: 074dbaa2-704f-11f0-b897-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=y4Z4kimgvxmVvYYI7PUufM6lDLeqG8Pdecay6LRqvk5VF6IVHECh75R8p5/3bpPM1domIP0IKp+SI5H1oH79PK6hNTQ0bKtm3O6XkWhUJKf71ihCZjdU5UEBvCyOYfe9+VoSiauHkIo6y+EwX6y7ao/KVxbizynyRddOSR2n4EuThrW0oyIrSdJTWh1pqoE+our5dNggOOVM5txt/6GZnBSTBSo1KEcRx7VEcfQiYISeUIJSwdClGZfz2PAYTz+CjcSBk8bb3prHH/DurekRgvSWm5OJgt6IOqOdVoEBtTi8llaoEPelGBpYpmf5Yi4cJzhuVG2pFUqc9T0by23mjg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wXQ8n/zXbOYYZx6IWWGU89i8B3eWN2TJh2dK9/CAeFE=;
 b=GfXn12YZ78YtVQQlDYNSP2IOSb+UjLkH4GlXIC9xBWTXUlyw+xf2ZgyLqAkAIZ+uDNBy5PMqH9ijx+laioAblJZUFZGe0cFaBgQh8u7wYjy1gXfno9bPEOvgKhMMHP/4MfbQ3mF2BZ0HtvpnvRmQpS3Pm8kaXMnmeZJ1M/WFavqcdkldqJg3oQGcAHQoG+0/qssmkoM/ijW2uxVHTJSLet5Ctbg5dMw9gmaZBa88PPxy8qxbUWYvU49nJ6ty8ShVvDz2mtilfV5T3pPizEgJ8nLIHJcmbBQaSxMXkmvT3TOgbY8lSROHbl/JfpzG04Wrs9WlWmh6KtXw26FTYYgF/A==
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=wXQ8n/zXbOYYZx6IWWGU89i8B3eWN2TJh2dK9/CAeFE=;
 b=Xk3rjwf9HNbGvpc5j9yZT/OW+k8c3wJWhn7uBlc32SDtiqD37Mvt7/8fsOStjKzJGUOnDuStwVN39s0bYZyPEuO1NyyyrrVhxohfJerjYYPcp6oZCkEdi1TmawDxWFC5W2QAlLHqt69V+Wkh10BhzRF/5SSuHujrRD9rDv++tFU=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Dario Faggioli
	<dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>, George Dunlap
	<gwd@xenproject.org>
Subject: [PATCH v1 11/25] xen/domctl: wrap around XEN_DOMCTL_{getvcpuaffinity,setvcpuaffinity}
Date: Sun, 3 Aug 2025 17:47:24 +0800
Message-ID: <20250803094738.3625269-12-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250803094738.3625269-1-Penny.Zheng@amd.com>
References: <20250803094738.3625269-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: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF0000231B:EE_|DM4PR12MB5964:EE_
X-MS-Office365-Filtering-Correlation-Id: 95377582-44af-4d9d-2faa-08ddd272e9ce
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?I0G8eTue3q1D6Quw97AAGPbWIegxlGwEoqjwP6DIJyLieFYD/KCNiMd6Wqnn?=
 =?us-ascii?Q?qsaxMQC8XasUJngLROZzrdaa1P6q5OrkIBu7IBlcfqQ8OSMrAPSNb0MNxY+u?=
 =?us-ascii?Q?hb8lQlkrrH0D2lFtIMyJl9ZfofyDr5B6GtIfbwJHyQCnK3x3GW2cQgr+YQBd?=
 =?us-ascii?Q?5gLcNZzTDG9yeSgt//aTiZ+PRZS3jSm4gG+3u69bufz3JXiYUYd8S4Mztrdc?=
 =?us-ascii?Q?q+IwEZ9yzmluLwMIm33z/uaxLA5Bgu9MJzhEdKuSHq1Awk6q7NSg/iERROEw?=
 =?us-ascii?Q?aImR90q0MCxQWiKmXyatv2elKV8rfCsqDjPqdH6KHa8JdfEjVXwmdnjv+y7k?=
 =?us-ascii?Q?Pp3Y6xXBsnXqP2B90A8YuOfymuJKXmZyu4yjO+f2Ja3c2XsKsrJ44zPX/3hx?=
 =?us-ascii?Q?2x986k1ewjJfNPU6owTbtuDk7gH67goBamOkVVFkCvXWmwGQvJ/SYAhBHHHa?=
 =?us-ascii?Q?ZZs1xao++ltFVDN+BzmpH0skiBtoRQtP/ucuW0C69FYcGZNjE7SeiJVw0WvK?=
 =?us-ascii?Q?qFl7miBvtDwD9sOgGuXbb0CdkmzlBZsUCMoDlHBgU280YHMwICXmPzwOoB6r?=
 =?us-ascii?Q?yIs5msQtY2Mt3FqIhTTRKh1uDmf0irayzqGE3FpVD7OS2h+KN2ei91/dzuYL?=
 =?us-ascii?Q?KHXp/TMPIJHBezNVttA/eV9G5m5q6czgG5rF7sIcquw1F/HGAs0ekOahmihZ?=
 =?us-ascii?Q?z3a+lmKpuQhUOJoAcDY97tWNpQru7DYb7ocC5Vk2JKOWpDWcSREnltw4b6Sn?=
 =?us-ascii?Q?8qD/cY5gSghceos9uqFuUAaZ5aV4eMRLpclS6Xt33Ty8aH6pjkbPI6DYqsm4?=
 =?us-ascii?Q?z8Mu16ReAPS+ITA1z+7Xe9+biFaMYxGODkFpGrweB1IT7eEGbRCaennbsAwt?=
 =?us-ascii?Q?EkbhOwVg7X2PJ5uR16XD1Rl63CVx9JprOjTpkkyKBMVRFE3KTKd2PDhswYZ3?=
 =?us-ascii?Q?CTCPUdd4QM386dbVKFck6Gjusx79lW/M7u5STD8T838zW3tTMc+QPUwEsIqH?=
 =?us-ascii?Q?iLh6tvBOdhj7OPBSxbdqlKIihldAOK3K5PFqQphzrfsQz9FtHLgccMoJIr44?=
 =?us-ascii?Q?Zrcmp9ybmu8aKxO/UX5d0uRfACUHTDqbWlstruD2zzM74+wJdnrsOmNRQodn?=
 =?us-ascii?Q?Xn4lpi/F6ro+VEzNTYpuge08g71kskYPB5VeXLKUQ7QTJnYbFL0QQKINO5Zj?=
 =?us-ascii?Q?jfdIWZbRddETmgGLVfR8EqDdi34GTppOi09+T/+CRsm9wpvRt0Y6x7GXpUfq?=
 =?us-ascii?Q?L/4EX21t2PTE4u0i7tbxHEFS4bY/q58r/Objzpenjk2lirD8WXORuZn4J35X?=
 =?us-ascii?Q?K/CUq9UyTA8BCQosny1C6127g2kjDli1X1mujSP1TV6/WQk2flD6Amian2J7?=
 =?us-ascii?Q?FI3XJOIRbw9lTGntw2ya5V5dkOD+cDK24vs2zzF324wv3WEYLoEq7FR0twVP?=
 =?us-ascii?Q?C3aB2TD9CjGQAQphuI4DTj/fIjn2cgjSk6oxntvB0T6Yr/oGTzn5HGRbZPLU?=
 =?us-ascii?Q?wjANB7oOqJ+RGpxKpsgVCGqaTniZVS6vuCph?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2025 09:48:34.5839
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 95377582-44af-4d9d-2faa-08ddd272e9ce
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF0000231B.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5964

Function vcpu_affinity_domctl() is responsible for
XEN_DOMCTL_{getvcpuaffinity,setvcpuaffinity} domctl-op, tracking its calling
chain, the following function shall be wrapped too:
- vcpu_set_soft_affinity

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
 xen/common/sched/core.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/xen/common/sched/core.c b/xen/common/sched/core.c
index 2ab4313517..14f27fe70f 100644
--- a/xen/common/sched/core.c
+++ b/xen/common/sched/core.c
@@ -1402,10 +1402,12 @@ int vcpu_set_hard_affinity(struct vcpu *v, const cpumask_t *affinity)
     return vcpu_set_affinity(v, affinity, v->sched_unit->cpu_hard_affinity);
 }
 
+#ifdef CONFIG_DOMCTL
 static int vcpu_set_soft_affinity(struct vcpu *v, const cpumask_t *affinity)
 {
     return vcpu_set_affinity(v, affinity, v->sched_unit->cpu_soft_affinity);
 }
+#endif /* CONFIG_DOMCTL */
 
 /* Block the currently-executing domain until a pertinent event occurs. */
 void vcpu_block(void)
@@ -1693,6 +1695,7 @@ int vcpuaffinity_params_invalid(const struct xen_domctl_vcpuaffinity *vcpuaff)
             guest_handle_is_null(vcpuaff->cpumap_soft.bitmap));
 }
 
+#ifdef CONFIG_DOMCTL
 int vcpu_affinity_domctl(struct domain *d, uint32_t cmd,
                          struct xen_domctl_vcpuaffinity *vcpuaff)
 {
@@ -1802,6 +1805,7 @@ int vcpu_affinity_domctl(struct domain *d, uint32_t cmd,
 
     return ret;
 }
+#endif /* CONFIG_DOMCTL */
 
 bool alloc_affinity_masks(struct affinity_masks *affinity)
 {
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sun Aug 03 09:50:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 Aug 2025 09:50:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068378.1432396 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiVMY-0002eu-CL; Sun, 03 Aug 2025 09:50:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068378.1432396; Sun, 03 Aug 2025 09:50: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 1uiVMY-0002en-9N; Sun, 03 Aug 2025 09:50:42 +0000
Received: by outflank-mailman (input) for mailman id 1068378;
 Sun, 03 Aug 2025 09:50:40 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f/pN=2P=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1uiVKs-0005K3-AL
 for xen-devel@lists.xenproject.org; Sun, 03 Aug 2025 09:48:58 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on2061c.outbound.protection.outlook.com
 [2a01:111:f403:2415::61c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 121c9450-704f-11f0-a321-13f23c93f187;
 Sun, 03 Aug 2025 11:48:56 +0200 (CEST)
Received: from MW4P222CA0009.NAMP222.PROD.OUTLOOK.COM (2603:10b6:303:114::14)
 by DS4PR12MB9588.namprd12.prod.outlook.com (2603:10b6:8:282::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.18; Sun, 3 Aug
 2025 09:48:47 +0000
Received: from SJ1PEPF0000231E.namprd03.prod.outlook.com
 (2603:10b6:303:114:cafe::4c) by MW4P222CA0009.outlook.office365.com
 (2603:10b6:303:114::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.17 via Frontend Transport; Sun,
 3 Aug 2025 09:48:47 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF0000231E.mail.protection.outlook.com (10.167.242.230) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Sun, 3 Aug 2025 09:48:47 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) 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; Sun, 3 Aug 2025 04:48: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>
X-Inumbo-ID: 121c9450-704f-11f0-a321-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OzMtirBEoe24sQOgNjDwzrxAwjJlKknllu4u1Vy5I6c3x4AF2UoyHOtmXBxH+0bqVx0kqH0ifjskshA5+PHYHPl7w86KZs4820apdUcvc26P5sxNj4H85f2QQ3O1GND5j60V1L7Eir7B8tIycKBSnsGq1ru69zGClifwz5ZqUNuQ72YdcmhIWFsmuq0zunvnpdfNnjI5RZQrkZZj6EdZds2f76d1juoDm9i4etT/Fw7ANpXsm5p5X0AzkwPUQhwVFQP5Dm2RZk9Tapq1pbjrEVDs02GOffQxO5WRxF6aoGGsa9ugdeyltG51UscW5XKlpFKi5H/9d3b4iMwTTOWI2w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=MKCJ9vwLM3+NoLdeUojQBdoUwvP1C5l3ojylIEw6UR8=;
 b=kD/WKn6zgLTDP2vX+ENhrGoU5+zyi48Xc09gWEqIRfsW+5IiNVfBoFIp+p1SEke+bHw3L1iMrDIsPbBQobKLa70O3MLhMt1V0aC1b8Si1oeb8JFJAJVWjwkHhRwPp2/qvHW+5Jb4RyAoApd30bdyrBz6dGd0YKNMUCh0QT7cp6Wqze1f/+9UriGhu+y3acvNXPV6201cX048oI4QeFg+nRG/YhZrPyd2kDQQi9Ni/7yiyU8fxZ+j4r4Ht15Dutpk41N6KK8na9V6pBuWtSrEyOSaIGjdsgKdhzB2X4besLb4f4Pz+sdLqKCYcqCKsSxR4mz2aAfynCvtdg4fxz7pvA==
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=MKCJ9vwLM3+NoLdeUojQBdoUwvP1C5l3ojylIEw6UR8=;
 b=DVsRWEeq5R/DPrk9JksTDmewMnbQB13Lkuwi8n4iTTw/M44U2rJ6X65TJTM2TGsZKj7RQZHhWd0e8FTDkTxACh40Gb/3k0mwdve5TzeFkeke6h7tUC+RItJA3RUqyl6rlnNQak+iSBRDIO2GymN5v5i5EukXpdDRVW6oWnAQF3M=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>, Jan Beulich <jbeulich@suse.com>,
	"Andrew Cooper" <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v1 15/25] xen/domctl: wrap around XEN_DOMCTL_settimeoffset
Date: Sun, 3 Aug 2025 17:47:28 +0800
Message-ID: <20250803094738.3625269-16-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250803094738.3625269-1-Penny.Zheng@amd.com>
References: <20250803094738.3625269-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: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF0000231E:EE_|DS4PR12MB9588:EE_
X-MS-Office365-Filtering-Correlation-Id: 30f0ce4e-862b-42be-0317-08ddd272f141
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|82310400026|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?DX+6plCdkpKLe6Yul2h8kPO2wqJrtEOfmwTDKBOAy1s/NMqLxHuwHUV7ZYb2?=
 =?us-ascii?Q?eJdzgdBmpySm1JwZrF+Kn+uYMRCPJo29gxaxdEqvU5t4BzNBHJOnl1McDlI6?=
 =?us-ascii?Q?U34eOynvH6fBVct18q3TweEylDxa9JCTCC7PxeSWC0OeNnyA4XwFwrkjJcDW?=
 =?us-ascii?Q?JUjiJCyOxItiZV3VwuVpo3T1BxmxpcWPBs5cA9QoklYrTK9+v5hr8JeKw6bw?=
 =?us-ascii?Q?7GCwQwwV7aKG554GqRQ0qZRByJWwVgXoUoVULfaPgSefq34nTDXBvX0hIrMO?=
 =?us-ascii?Q?xyG2kC4RuD6HH2CFzwvyGAVaR34PQD0MvD+Ai4/6lgvi79IXydWiqKZb1skb?=
 =?us-ascii?Q?MtGCOeEjjGTeVbn33nCQ4e+yjPuYI3pqp3Pbpj1BJvuxlCRP/AefL640n0gV?=
 =?us-ascii?Q?LpIk8dgta6gIwKDLfhoMKx1H0S+18UVbSmxlXUaDeqvfAa93GaL5WAeB5qzK?=
 =?us-ascii?Q?6/Auc9YS8/eW5y+Hsx4zRKx8zFMyrj+YI6nyNP1CERapZzgMiEnlcy6UzXFl?=
 =?us-ascii?Q?y9uKVM1mRoAu17PGB/Q+tRL8zduJGYd5UZ2M/aCIVg05w/niaWPO30qs6gF5?=
 =?us-ascii?Q?pJq0wCAfTuq2Mqy+UmWII4IchVMAebpHkARBAQILdiQqCCq4NdxVywwImqk+?=
 =?us-ascii?Q?W/IWQV2HsgQOf4oSrvBtCJvdEjiXMqY4xHYHT7iYVhXWpscaOjJ3O4C3QFQY?=
 =?us-ascii?Q?OYCZWbJIZ3h2R8QWSzz08EXDwVKJlqFLJthmCGqFPC+QVF93jzip3SeBuyYi?=
 =?us-ascii?Q?a4KsopW5/8s1xFj0W0yz1n91fnZGCeLJEnOemen0C76YuzwZcPW/GA5sJjM+?=
 =?us-ascii?Q?RZeoSHF8E0ppJWPL4kJRu+kXhfYpeWR3NZCmb8E/ahrqLGfw4/B4zU7aercP?=
 =?us-ascii?Q?ScA7eKGpI5Sf6UFRms24AoLrpfHNYq2SeX5pAU27YrZAlPumLpZrUTIeAGUI?=
 =?us-ascii?Q?3dxkQv7T4G1Qnr5A3AswzvSKggp01kYQEnnYzp05hrOiEjgFtOYqJukSi9wW?=
 =?us-ascii?Q?fcUfLR+nyxprqQr2fpThjhc9unV/FxzrRU08ZnHladeT4NTPahAhen6d3AKD?=
 =?us-ascii?Q?H6cpdqn2TsBAGAvWYSHQD2X/N52Z7iKn0RfN9CCusI5kARLlGgET87EoJKGz?=
 =?us-ascii?Q?Yddn807MJ6UeycuXCWvz9OLXG4KOzuHIuEk/u5wxGZZ3OEA4L2yDS7cjY90i?=
 =?us-ascii?Q?bm6tjuAnqyeTk9X+OQicvh+tpLOWAqveqr2wNYB/yV5FTvDBKKepBf+jjgI2?=
 =?us-ascii?Q?tWxiGIwntAvIsXGnolOONaXMaBLt7j3JMsO2qOeU0ysO9z+hUGj1/vR7z3OZ?=
 =?us-ascii?Q?393qFEi5RpohIAwCPBH6/sR47zz+fehaHqVSrrA454R/IL+c9fIabEJrygiL?=
 =?us-ascii?Q?c83Gc7jrwEpRL1BTp9HcQfL4AuZzYFae5B53cV3jhcFS9NGpWb057YJKCb72?=
 =?us-ascii?Q?bmE5yMyLmLOY9OtdUaapLEfSN940qHGmMM3b8lzabm5Dwtlz6jDM5VKhj5NC?=
 =?us-ascii?Q?NWuEwX23NHdHmDeIrw5QpGawIZvWaTF9jUbN?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2025 09:48:47.0815
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 30f0ce4e-862b-42be-0317-08ddd272f141
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF0000231E.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR12MB9588

Arch-specific domain_set_time_offset() is responisble for
XEN_DOMCTL_settimeoffset domctl-op, and shall be wrapped.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
 xen/arch/arm/time.c | 2 ++
 xen/arch/x86/time.c | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/xen/arch/arm/time.c b/xen/arch/arm/time.c
index e74d30d258..5955c7ce7a 100644
--- a/xen/arch/arm/time.c
+++ b/xen/arch/arm/time.c
@@ -365,12 +365,14 @@ void force_update_vcpu_system_time(struct vcpu *v)
     update_vcpu_system_time(v);
 }
 
+#ifdef CONFIG_DOMCTL
 void domain_set_time_offset(struct domain *d, int64_t time_offset_seconds)
 {
     d->time_offset.seconds = time_offset_seconds;
     d->time_offset.set = true;
     /* XXX update guest visible wallclock time */
 }
+#endif /* CONFIG_DOMCTL */
 
 static int cpu_time_callback(struct notifier_block *nfb,
                              unsigned long action,
diff --git a/xen/arch/x86/time.c b/xen/arch/x86/time.c
index 59129f419d..c1411be64e 100644
--- a/xen/arch/x86/time.c
+++ b/xen/arch/x86/time.c
@@ -1841,6 +1841,7 @@ static void update_domain_rtc(void)
     rcu_read_unlock(&domlist_read_lock);
 }
 
+#ifdef CONFIG_DOMCTL
 void domain_set_time_offset(struct domain *d, int64_t time_offset_seconds)
 {
     d->time_offset.seconds = time_offset_seconds;
@@ -1849,6 +1850,7 @@ void domain_set_time_offset(struct domain *d, int64_t time_offset_seconds)
         rtc_update_clock(d);
     update_domain_wallclock_time(d);
 }
+#endif /* CONFIG_DOMCTL */
 
 int cpu_frequency_change(u64 freq)
 {
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sun Aug 03 09:50:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 Aug 2025 09:50:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068382.1432405 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiVMZ-0002vq-KU; Sun, 03 Aug 2025 09:50:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068382.1432405; Sun, 03 Aug 2025 09:50: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 1uiVMZ-0002vh-FY; Sun, 03 Aug 2025 09:50:43 +0000
Received: by outflank-mailman (input) for mailman id 1068382;
 Sun, 03 Aug 2025 09:50:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f/pN=2P=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1uiVL5-0005hH-Qs
 for xen-devel@lists.xenproject.org; Sun, 03 Aug 2025 09:49:11 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20631.outbound.protection.outlook.com
 [2a01:111:f403:200a::631])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 19969d3d-704f-11f0-b897-0df219b8e170;
 Sun, 03 Aug 2025 11:49:09 +0200 (CEST)
Received: from BY3PR05CA0027.namprd05.prod.outlook.com (2603:10b6:a03:254::32)
 by SN7PR12MB7955.namprd12.prod.outlook.com (2603:10b6:806:34d::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.19; Sun, 3 Aug
 2025 09:49:03 +0000
Received: from SJ1PEPF00002318.namprd03.prod.outlook.com
 (2603:10b6:a03:254:cafe::9) by BY3PR05CA0027.outlook.office365.com
 (2603:10b6:a03:254::32) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.13 via Frontend Transport; Sun,
 3 Aug 2025 09:49:02 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF00002318.mail.protection.outlook.com (10.167.242.228) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Sun, 3 Aug 2025 09:49:01 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) 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; Sun, 3 Aug 2025 04:48:58 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 19969d3d-704f-11f0-b897-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Nz/oL5RGmQAbWCdcv7qBaDl92+5+6EYAMdSHAim5vXJ7WyqitIUHkY40gYZEvxNxPpWmINQlA8DHhcWRVJ4ofIlD9sLV3Qu/p5MBQe1laaVwd7KgLCMzMD+lLq8ZRc+JrdlZhmkHY/rgG1XTMocJLibk+WKfZpcRtp8/x6fB39IcQxHWGCT7OzzToTgC2c2a+1FovcKL/MUY4/Vmq1kP/hyGdFyBBBsg03vhh9B0YX1brYIwKK5SMY9iq2AWQz6E61KG1wY1sI8e2hoFvYObHOOhv2Upt3muGMZccQYBkkyMAu/mwr2Nt99wZ9uwthZRdhW7107mAnh7yk075jM/Xg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=H8vNzoPBn1L4Q+rqW/xeDizhORsHZhqdEN60V84u228=;
 b=rSBMLvBQ986g4esNLoLE3v6mCDOCXwsTBP8ycEPwPzr6+HxqTM1wSKBveGNLz62s0E+2fZ7z1ngSo41R9YmCEKrtE0Ik8A2z4Nv/guWeTIKOpc24RGBzxCUVCQVYZ9J6/QSD4/DsHVQQVy5kybkPlPlZT32a5EJ52kwX12xbHFELnlbpBDjBXDEpiic8h/LNdCuBJYB7oPP0zz2qTGywOpyUqnLp27eQw5w7leclo5qo0MjSG5d+bV/g5YifOP6hmyMzub1ke7UTwW4uuMd4HTbz9IJDYlXvOCkIoTdHJQmM2XlzIH7UA/lgeEjuo3le2CbHUfx5u5aH1yvK2kh9jg==
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=H8vNzoPBn1L4Q+rqW/xeDizhORsHZhqdEN60V84u228=;
 b=NhjIZ6S5h0dJKmR1sTD2RNO49EJWRVE/moSN7yzfVArdpClDQWyv+vPwWrAWk+i3XpTHIVFBg21jSKYNgBpSLyUAPU5j1D4p63dXqdJNW74OmBVG0rxPqib/mq4cFqqaQP0ysIBKHjqUXUh3vPRySLEuHRry7ZoE5ikcRepViaU=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>, Rahul Singh <rahul.singh@arm.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH v1 21/25] xen/domctl: wrap aound iommu-related domctl op
Date: Sun, 3 Aug 2025 17:47:34 +0800
Message-ID: <20250803094738.3625269-22-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250803094738.3625269-1-Penny.Zheng@amd.com>
References: <20250803094738.3625269-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: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF00002318:EE_|SN7PR12MB7955:EE_
X-MS-Office365-Filtering-Correlation-Id: ac684bfe-09c0-41be-a548-08ddd272fa15
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|36860700013|376014|7416014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?KHceauyZxcgm2bK8ulWb2JJl9+GXas0OdWpBYnlXamuFD7iirxGYCVrB9qlz?=
 =?us-ascii?Q?aeaLEjomBZBRlD5OiQisKTAMiDnDymZwmfXbtvke68sn9rzIEWSrUKU/Agkz?=
 =?us-ascii?Q?xUPyFOb7rwD0+YB71v9f6WhQ1kXCANJGGmyqtPfPGizXkoOYU4jXFf21+ifw?=
 =?us-ascii?Q?b+PHkoyAS8YhSVLChX//roN23Awoz8DP2Vm77qYCx8pdR7Bd2+toItsGVTLB?=
 =?us-ascii?Q?n4thALLsvOJMosGS1LbwqoqvVmP5ZZHccm3md7ePhfpOE/g0Y8jhWOT/rT8U?=
 =?us-ascii?Q?1MxDa/cbzs2VpORA8wV6zFOKahvRJ/HH8YHrYgrCbHWfaIQvKdHmaRd/sMMz?=
 =?us-ascii?Q?e0mH4bA9+7VEus2fls3hqOIIADwnyCW4N8KqFWPHZyWDpvFf4CIK7G+Ro24K?=
 =?us-ascii?Q?lHnsp/2zwAXXB3kg/6h57ggSEiN1wiMkWx5nEQxB448YBDaWgL5tQtzuEMdy?=
 =?us-ascii?Q?1H+c2kQbOkeUshh6ppRoNfSMPWnjzlFI/gj5Qmo74NhTL6mw6yR1NwkQzU7T?=
 =?us-ascii?Q?Ygmd55jK48oDOnvHF2RQ3rqiT/3V2CVk8C3pqLgeGQUZpdMYFhLjNp7Qx+IC?=
 =?us-ascii?Q?MYtzJS0TGck42uyr1uzmuP10jMjRukWDT03m3MtiopXacPz5d/yTBTEEysOm?=
 =?us-ascii?Q?rvUF2isIspAN29ADeiujoRGVY2qUlLgzka8oDtDUlt6XrKUBqU9HxZY/pvfJ?=
 =?us-ascii?Q?3SJ1PtfChbDszFlFC/T5OjuqJBVtTNSU+L1qzLLaemswEHm8WcdprnqBhY1x?=
 =?us-ascii?Q?wb8/kursSYN+Saadgn7HsBsjbxgAgTpvQ5/lnM5xb3BG0PWNJe0wVDqbLC0R?=
 =?us-ascii?Q?aw5AsDOW/maGzArG7LYFIF0raiUt4v5KiK9G7gq13ikGI6V+7eu574M+DBEl?=
 =?us-ascii?Q?t9yO+l0KTmJ/FVu0sd5nsu456b7jJCcY0mYOgw5P52hKpdQ6L+fAQ5JpSo+9?=
 =?us-ascii?Q?MeNPZH95pdrM0mWiKgOnEgTWOL7J8qrvgDj3sI49NT9XiSVpkdYkp4ji/wv1?=
 =?us-ascii?Q?aRh9oiPt3Xm7WYH4mUKxdVR27Z5qQkwdGluCL0/uRguK90iUQZcUR5GqPIQN?=
 =?us-ascii?Q?uafnqJudFefq3oP1jPo2pAPt9/+IC9beB3EGIa9wOW5o88bijjzIWcOp71ER?=
 =?us-ascii?Q?kht4HEPTkLyxeifqAJBW/+Ce00CFwfVfusPyLzfF9dSm19wm/vnHSxJ28j08?=
 =?us-ascii?Q?Ju7LbFYBDiToRugx5GLG/qSe/n6qPizdAB6/04jsyNW80tSG0by21AIPgjzC?=
 =?us-ascii?Q?vmKbyvkFBgo33Wjr7eY+95vMRg2jzuJAZUWCSBx19yNiK4tLoOluEDzIzW/0?=
 =?us-ascii?Q?p9Ll1uw0o9iCqcZUXOcW7w025DzEKeIxQ4iWk4Z2FJIkUpAuXmlIAqWSkgYS?=
 =?us-ascii?Q?Uo2jg9N8vqva1u0mB+w9mNegKhoo5oBVIajP9rRj5ixMfMO8rkSa6WBdBhHg?=
 =?us-ascii?Q?6hkU1jmGCjgf9nZyDyTSHPefur0bzQoEI3JwfuOAcVoJyGZp3hJgFFVF+JHH?=
 =?us-ascii?Q?kQjWm67A2OYU92nbfkHTuONlwIU3aGKL3j4Z?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014)(7416014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2025 09:49:01.8960
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ac684bfe-09c0-41be-a548-08ddd272fa15
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF00002318.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7955

Function iommu_do_domctl() is the main entry for all iommu-related domctl-op.
Tracking its calling chaining, the following functions shall all be wrapped:
- iommu_do_pci_domctl
  - xsm_get_device_group
  - iommu_get_device_group
    - amd_iommu_group_id/intel_iommu_group_id
  - xsm_assign_device
  - device_assigned
  - assign_device
    - intel_iommu_assign_device/amd_iommu_assign_devic
  - xsm_deassign_device
  - deassign_device
    - reassign_device_ownership/reassign_device
- iommu_do_dt_domctl
  - xsm_assign_dtdevice
  - xsm_deassign_dtdevice
  - iommu_deassign_dt_device
    - arm_smmu_reassign_dev/arm_smmu_reassign_dev
    - ipmmu_reassign_dev
      - ipmmu_deassign_dev
        - ipmmu_detach_dev
  - dt_find_node_by_gpath

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
 xen/common/device-tree/device-tree.c        |  2 ++
 xen/drivers/passthrough/amd/pci_amd_iommu.c |  8 ++++++++
 xen/drivers/passthrough/arm/ipmmu-vmsa.c    |  6 ++++++
 xen/drivers/passthrough/arm/smmu-v3.c       |  4 ++++
 xen/drivers/passthrough/arm/smmu.c          |  4 ++++
 xen/drivers/passthrough/device_tree.c       |  4 ++++
 xen/drivers/passthrough/iommu.c             |  2 ++
 xen/drivers/passthrough/pci.c               |  6 +++++-
 xen/drivers/passthrough/vtd/iommu.c         |  6 ++++++
 xen/include/xsm/xsm.h                       | 12 ++++++------
 xen/xsm/dummy.c                             |  4 ++--
 xen/xsm/flask/hooks.c                       | 12 ++++++------
 12 files changed, 55 insertions(+), 15 deletions(-)

diff --git a/xen/common/device-tree/device-tree.c b/xen/common/device-tree/device-tree.c
index 0b5375f151..4ce6dce2ea 100644
--- a/xen/common/device-tree/device-tree.c
+++ b/xen/common/device-tree/device-tree.c
@@ -371,6 +371,7 @@ struct dt_device_node *dt_find_node_by_path_from(struct dt_device_node *from,
     return np;
 }
 
+#ifdef CONFIG_DOMCTL
 int dt_find_node_by_gpath(XEN_GUEST_HANDLE(char) u_path, uint32_t u_plen,
                           struct dt_device_node **node)
 {
@@ -386,6 +387,7 @@ int dt_find_node_by_gpath(XEN_GUEST_HANDLE(char) u_path, uint32_t u_plen,
 
     return (*node == NULL) ? -ESRCH : 0;
 }
+#endif /* CONFIG_DOMCTL */
 
 struct dt_device_node *dt_find_node_by_alias(const char *alias)
 {
diff --git a/xen/drivers/passthrough/amd/pci_amd_iommu.c b/xen/drivers/passthrough/amd/pci_amd_iommu.c
index 3a14770855..869d2bc3a2 100644
--- a/xen/drivers/passthrough/amd/pci_amd_iommu.c
+++ b/xen/drivers/passthrough/amd/pci_amd_iommu.c
@@ -461,6 +461,7 @@ static void amd_iommu_disable_domain_device(const struct domain *domain,
         spin_unlock_irqrestore(&iommu->lock, flags);
 }
 
+#ifdef CONFIG_DOMCTL
 static int cf_check reassign_device(
     struct domain *source, struct domain *target, u8 devfn,
     struct pci_dev *pdev)
@@ -550,6 +551,7 @@ static int cf_check amd_iommu_assign_device(
 
     return rc;
 }
+#endif /* CONFIG_DOMCTL */
 
 static void cf_check amd_iommu_clear_root_pgtable(struct domain *d)
 {
@@ -698,12 +700,14 @@ static int cf_check amd_iommu_remove_device(u8 devfn, struct pci_dev *pdev)
     return 0;
 }
 
+#ifdef CONFIG_DOMCTL
 static int cf_check amd_iommu_group_id(u16 seg, u8 bus, u8 devfn)
 {
     unsigned int bdf = PCI_BDF(bus, devfn);
 
     return (bdf < ivrs_bdf_entries) ? get_dma_requestor_id(seg, bdf) : bdf;
 }
+#endif /* CONFIG_DOMCTL */
 
 #include <asm/io_apic.h>
 
@@ -772,14 +776,18 @@ static const struct iommu_ops __initconst_cf_clobber _iommu_ops = {
     .quarantine_init = amd_iommu_quarantine_init,
     .add_device = amd_iommu_add_device,
     .remove_device = amd_iommu_remove_device,
+#ifdef CONFIG_DOMCTL
     .assign_device  = amd_iommu_assign_device,
+#endif
     .teardown = amd_iommu_domain_destroy,
     .clear_root_pgtable = amd_iommu_clear_root_pgtable,
     .map_page = amd_iommu_map_page,
     .unmap_page = amd_iommu_unmap_page,
     .iotlb_flush = amd_iommu_flush_iotlb_pages,
+#ifdef CONFIG_DOMCTL
     .reassign_device = reassign_device,
     .get_device_group_id = amd_iommu_group_id,
+#endif
     .enable_x2apic = iov_enable_xt,
     .update_ire_from_apic = amd_iommu_ioapic_update_ire,
     .update_ire_from_msi = amd_iommu_msi_msg_update_ire,
diff --git a/xen/drivers/passthrough/arm/ipmmu-vmsa.c b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
index dac0dd6d46..719f0a11cc 100644
--- a/xen/drivers/passthrough/arm/ipmmu-vmsa.c
+++ b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
@@ -726,6 +726,7 @@ static int ipmmu_attach_device(struct ipmmu_vmsa_domain *domain,
     return 0;
 }
 
+#ifdef CONFIG_DOMCTL
 static void ipmmu_detach_device(struct ipmmu_vmsa_domain *domain,
                                 struct device *dev)
 {
@@ -735,6 +736,7 @@ static void ipmmu_detach_device(struct ipmmu_vmsa_domain *domain,
     for ( i = 0; i < fwspec->num_ids; ++i )
         ipmmu_utlb_disable(domain, fwspec->ids[i]);
 }
+#endif /* CONFIG_DOMCTL */
 
 static int ipmmu_init_platform_device(struct device *dev,
                                       const struct dt_phandle_args *args)
@@ -1209,6 +1211,7 @@ out:
     return ret;
 }
 
+#ifdef CONFIG_DOMCTL
 static int ipmmu_deassign_device(struct domain *d, struct device *dev)
 {
     struct ipmmu_vmsa_xen_domain *xen_domain = dom_iommu(d)->arch.priv;
@@ -1264,6 +1267,7 @@ static int ipmmu_reassign_device(struct domain *s, struct domain *t,
 
     return 0;
 }
+#endif /* CONFIG_DOMCTL */
 
 static int ipmmu_dt_xlate(struct device *dev,
                           const struct dt_phandle_args *spec)
@@ -1367,7 +1371,9 @@ static const struct iommu_ops ipmmu_iommu_ops =
     .teardown        = ipmmu_iommu_domain_teardown,
     .iotlb_flush     = ipmmu_iotlb_flush,
     .assign_device   = ipmmu_assign_device,
+#ifdef CONFIG_DOMCTL
     .reassign_device = ipmmu_reassign_device,
+#endif
     .map_page        = arm_iommu_map_page,
     .unmap_page      = arm_iommu_unmap_page,
     .dt_xlate        = ipmmu_dt_xlate,
diff --git a/xen/drivers/passthrough/arm/smmu-v3.c b/xen/drivers/passthrough/arm/smmu-v3.c
index 5e9e3e048e..d3028d859e 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.c
+++ b/xen/drivers/passthrough/arm/smmu-v3.c
@@ -2780,6 +2780,7 @@ static int arm_smmu_deassign_dev(struct domain *d, uint8_t devfn, struct device
 	return 0;
 }
 
+#ifdef CONFIG_DOMCTL
 static int arm_smmu_reassign_dev(struct domain *s, struct domain *t,
 				u8 devfn,  struct device *dev)
 {
@@ -2807,6 +2808,7 @@ static int arm_smmu_reassign_dev(struct domain *s, struct domain *t,
 
 	return 0;
 }
+#endif /* CONFIG_DOMCTL */
 
 static int arm_smmu_iommu_xen_domain_init(struct domain *d)
 {
@@ -2843,7 +2845,9 @@ static const struct iommu_ops arm_smmu_iommu_ops = {
 	.teardown		= arm_smmu_iommu_xen_domain_teardown,
 	.iotlb_flush		= arm_smmu_iotlb_flush,
 	.assign_device		= arm_smmu_assign_dev,
+#ifdef CONFIG_DOMCTL
 	.reassign_device	= arm_smmu_reassign_dev,
+#endif
 	.map_page		= arm_iommu_map_page,
 	.unmap_page		= arm_iommu_unmap_page,
 	.dt_xlate		= arm_smmu_dt_xlate,
diff --git a/xen/drivers/passthrough/arm/smmu.c b/xen/drivers/passthrough/arm/smmu.c
index 22d306d0cb..f1d85ae91f 100644
--- a/xen/drivers/passthrough/arm/smmu.c
+++ b/xen/drivers/passthrough/arm/smmu.c
@@ -2891,6 +2891,7 @@ static int arm_smmu_deassign_dev(struct domain *d, uint8_t devfn,
 	return 0;
 }
 
+#ifdef CONFIG_DOMCTL
 static int arm_smmu_reassign_dev(struct domain *s, struct domain *t,
 				 u8 devfn,  struct device *dev)
 {
@@ -2918,6 +2919,7 @@ static int arm_smmu_reassign_dev(struct domain *s, struct domain *t,
 
 	return 0;
 }
+#endif /* CONFIG_DOMCTL */
 
 static int arm_smmu_iommu_domain_init(struct domain *d)
 {
@@ -2956,7 +2958,9 @@ static const struct iommu_ops arm_smmu_iommu_ops = {
     .teardown = arm_smmu_iommu_domain_teardown,
     .iotlb_flush = arm_smmu_iotlb_flush,
     .assign_device = arm_smmu_assign_dev,
+#ifdef CONFIG_DOMCTL
     .reassign_device = arm_smmu_reassign_dev,
+#endif
     .map_page = arm_iommu_map_page,
     .unmap_page = arm_iommu_unmap_page,
     .dt_xlate = arm_smmu_dt_xlate_generic,
diff --git a/xen/drivers/passthrough/device_tree.c b/xen/drivers/passthrough/device_tree.c
index 704910de3d..225aae2f29 100644
--- a/xen/drivers/passthrough/device_tree.c
+++ b/xen/drivers/passthrough/device_tree.c
@@ -59,6 +59,7 @@ fail:
     return rc;
 }
 
+#ifdef CONFIG_DOMCTL
 int iommu_deassign_dt_device(struct domain *d, struct dt_device_node *dev)
 {
     const struct domain_iommu *hd = dom_iommu(d);
@@ -86,6 +87,7 @@ fail:
 
     return rc;
 }
+#endif /* CONFIG_DOMCTL */
 
 static bool iommu_dt_device_is_assigned_locked(const struct dt_device_node *dev)
 {
@@ -320,6 +322,7 @@ int iommu_add_dt_device(struct dt_device_node *np)
     return rc;
 }
 
+#ifdef CONFIG_DOMCTL
 int iommu_do_dt_domctl(struct xen_domctl *domctl, struct domain *d,
                        XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
 {
@@ -431,3 +434,4 @@ int iommu_do_dt_domctl(struct xen_domctl *domctl, struct domain *d,
 
     return ret;
 }
+#endif /* CONFIG_DOMCTL */
diff --git a/xen/drivers/passthrough/iommu.c b/xen/drivers/passthrough/iommu.c
index c9425d6971..5035eb6e53 100644
--- a/xen/drivers/passthrough/iommu.c
+++ b/xen/drivers/passthrough/iommu.c
@@ -625,6 +625,7 @@ void iommu_resume(void)
         iommu_vcall(iommu_get_ops(), resume);
 }
 
+#ifdef CONFIG_DOMCTL
 int iommu_do_domctl(
     struct xen_domctl *domctl, struct domain *d,
     XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
@@ -645,6 +646,7 @@ int iommu_do_domctl(
 
     return ret;
 }
+#endif /* CONFIG_DOMCTL */
 
 void iommu_crash_shutdown(void)
 {
diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
index 41638b71d6..176c7502d6 100644
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -877,6 +877,7 @@ int pci_remove_device(u16 seg, u8 bus, u8 devfn)
     return ret;
 }
 
+#ifdef CONFIG_DOMCTL
 /* Caller should hold the pcidevs_lock */
 static int deassign_device(struct domain *d, uint16_t seg, uint8_t bus,
                            uint8_t devfn)
@@ -945,7 +946,6 @@ static int deassign_device(struct domain *d, uint16_t seg, uint8_t bus,
     return ret;
 }
 
-#ifdef CONFIG_DOMCTL
 int pci_release_devices(struct domain *d)
 {
     int combined_ret;
@@ -1483,6 +1483,7 @@ static int iommu_remove_device(struct pci_dev *pdev)
     return iommu_call(hd->platform_ops, remove_device, devfn, pci_to_dev(pdev));
 }
 
+#ifdef CONFIG_DOMCTL
 static int device_assigned(u16 seg, u8 bus, u8 devfn)
 {
     struct pci_dev *pdev;
@@ -1646,6 +1647,7 @@ static int iommu_get_device_group(
 
     return i;
 }
+#endif /* CONFIG_DOMCTL */
 
 void iommu_dev_iotlb_flush_timeout(struct domain *d, struct pci_dev *pdev)
 {
@@ -1671,6 +1673,7 @@ void iommu_dev_iotlb_flush_timeout(struct domain *d, struct pci_dev *pdev)
     pcidevs_unlock();
 }
 
+#ifdef CONFIG_DOMCTL
 int iommu_do_pci_domctl(
     struct xen_domctl *domctl, struct domain *d,
     XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
@@ -1804,6 +1807,7 @@ int iommu_do_pci_domctl(
 
     return ret;
 }
+#endif /* CONFIG_DOMCTL */
 
 struct segment_iter {
     int (*handler)(struct pci_dev *pdev, void *arg);
diff --git a/xen/drivers/passthrough/vtd/iommu.c b/xen/drivers/passthrough/vtd/iommu.c
index c55f02c97e..e9c074a649 100644
--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -2731,6 +2731,7 @@ static int __init cf_check vtd_setup(void)
     return ret;
 }
 
+#ifdef CONFIG_DOMCTL
 static int cf_check reassign_device_ownership(
     struct domain *source,
     struct domain *target,
@@ -2926,6 +2927,7 @@ static int cf_check intel_iommu_group_id(u16 seg, u8 bus, u8 devfn)
 
     return PCI_BDF(bus, devfn);
 }
+#endif /* CONFIG_DOMCTL */
 
 static int __must_check cf_check vtd_suspend(void)
 {
@@ -3234,14 +3236,18 @@ static const struct iommu_ops __initconst_cf_clobber vtd_ops = {
     .add_device = intel_iommu_add_device,
     .enable_device = intel_iommu_enable_device,
     .remove_device = intel_iommu_remove_device,
+#ifdef CONFIG_DOMCTL
     .assign_device  = intel_iommu_assign_device,
+#endif
     .teardown = iommu_domain_teardown,
     .clear_root_pgtable = iommu_clear_root_pgtable,
     .map_page = intel_iommu_map_page,
     .unmap_page = intel_iommu_unmap_page,
     .lookup_page = intel_iommu_lookup_page,
+#ifdef CONFIG_DOMCTL
     .reassign_device = reassign_device_ownership,
     .get_device_group_id = intel_iommu_group_id,
+#endif
     .enable_x2apic = intel_iommu_enable_eim,
     .disable_x2apic = intel_iommu_disable_eim,
     .update_ire_from_apic = io_apic_write_remap_rte,
diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
index db98496869..6bbf3df702 100644
--- a/xen/include/xsm/xsm.h
+++ b/xen/include/xsm/xsm.h
@@ -127,13 +127,13 @@ struct xsm_ops {
     int (*pci_config_permission)(struct domain *d, uint32_t machine_bdf,
                                  uint16_t start, uint16_t end, uint8_t access);
 
-#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_PCI)
+#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_PCI) && defined(CONFIG_DOMCTL)
     int (*get_device_group)(uint32_t machine_bdf);
     int (*assign_device)(struct domain *d, uint32_t machine_bdf);
     int (*deassign_device)(struct domain *d, uint32_t machine_bdf);
 #endif
 
-#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE_DISCOVERY)
+#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE_DISCOVERY) && defined(CONFIG_DOMCTL)
     int (*assign_dtdevice)(struct domain *d, const char *dtpath);
     int (*deassign_dtdevice)(struct domain *d, const char *dtpath);
 #endif
@@ -548,7 +548,7 @@ static inline int xsm_pci_config_permission(
     return alternative_call(xsm_ops.pci_config_permission, d, machine_bdf, start, end, access);
 }
 
-#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_PCI)
+#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_PCI) && defined(CONFIG_DOMCTL)
 static inline int xsm_get_device_group(xsm_default_t def, uint32_t machine_bdf)
 {
     return alternative_call(xsm_ops.get_device_group, machine_bdf);
@@ -565,9 +565,9 @@ static inline int xsm_deassign_device(
 {
     return alternative_call(xsm_ops.deassign_device, d, machine_bdf);
 }
-#endif /* HAS_PASSTHROUGH && HAS_PCI) */
+#endif /* HAS_PASSTHROUGH && HAS_PCI && DOMCTL */
 
-#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE_DISCOVERY)
+#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE_DISCOVERY) && defined(CONFIG_DOMCTL)
 static inline int xsm_assign_dtdevice(
     xsm_default_t def, struct domain *d, const char *dtpath)
 {
@@ -580,7 +580,7 @@ static inline int xsm_deassign_dtdevice(
     return alternative_call(xsm_ops.deassign_dtdevice, d, dtpath);
 }
 
-#endif /* HAS_PASSTHROUGH && HAS_DEVICE_TREE_DISCOVERY */
+#endif /* HAS_PASSTHROUGH && HAS_DEVICE_TREE_DISCOVERY && DOMCTL */
 
 static inline int xsm_resource_plug_pci(xsm_default_t def, uint32_t machine_bdf)
 {
diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
index b7eb061e9b..b5174e610b 100644
--- a/xen/xsm/dummy.c
+++ b/xen/xsm/dummy.c
@@ -85,13 +85,13 @@ static const struct xsm_ops __initconst_cf_clobber dummy_ops = {
     .pci_config_permission         = xsm_pci_config_permission,
     .get_vnumainfo                 = xsm_get_vnumainfo,
 
-#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_PCI)
+#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_PCI) && defined(CONFIG_DOMCTL)
     .get_device_group              = xsm_get_device_group,
     .assign_device                 = xsm_assign_device,
     .deassign_device               = xsm_deassign_device,
 #endif
 
-#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE_DISCOVERY)
+#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE_DISCOVERY) && defined(CONFIG_DOMCTL)
     .assign_dtdevice               = xsm_assign_dtdevice,
     .deassign_dtdevice             = xsm_deassign_dtdevice,
 #endif
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index 9f829aa53b..254e1323e5 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -1397,7 +1397,7 @@ static int cf_check flask_mem_sharing(struct domain *d)
 }
 #endif
 
-#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_PCI)
+#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_PCI) && defined(CONFIG_DOMCTL)
 static int cf_check flask_get_device_group(uint32_t machine_bdf)
 {
     uint32_t rsid;
@@ -1468,9 +1468,9 @@ static int cf_check flask_deassign_device(
 
     return avc_current_has_perm(rsid, SECCLASS_RESOURCE, RESOURCE__REMOVE_DEVICE, NULL);
 }
-#endif /* HAS_PASSTHROUGH && HAS_PCI */
+#endif /* HAS_PASSTHROUGH && HAS_PCI && DOMCTL */
 
-#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE_DISCOVERY)
+#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE_DISCOVERY) && defined(CONFIG_DOMCTL)
 static int flask_test_assign_dtdevice(const char *dtpath)
 {
     uint32_t rsid;
@@ -1531,7 +1531,7 @@ static int cf_check flask_deassign_dtdevice(
     return avc_current_has_perm(rsid, SECCLASS_RESOURCE, RESOURCE__REMOVE_DEVICE,
                                 NULL);
 }
-#endif /* HAS_PASSTHROUGH && HAS_DEVICE_TREE_DISCOVERY */
+#endif /* HAS_PASSTHROUGH && HAS_DEVICE_TREE_DISCOVERY && DOMCTL */
 
 static int cf_check flask_platform_op(uint32_t op)
 {
@@ -2003,13 +2003,13 @@ static const struct xsm_ops __initconst_cf_clobber flask_ops = {
     .remove_from_physmap = flask_remove_from_physmap,
     .map_gmfn_foreign = flask_map_gmfn_foreign,
 
-#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_PCI)
+#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_PCI) && defined(CONFIG_DOMCTL)
     .get_device_group = flask_get_device_group,
     .assign_device = flask_assign_device,
     .deassign_device = flask_deassign_device,
 #endif
 
-#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE_DISCOVERY)
+#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_DEVICE_TREE_DISCOVERY) && defined(CONFIG_DOMCTL)
     .assign_dtdevice = flask_assign_dtdevice,
     .deassign_dtdevice = flask_deassign_dtdevice,
 #endif
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sun Aug 03 09:50:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 Aug 2025 09:50:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068393.1432412 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiVMa-00031I-57; Sun, 03 Aug 2025 09:50:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068393.1432412; Sun, 03 Aug 2025 09:50:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiVMZ-0002zP-TY; Sun, 03 Aug 2025 09:50:43 +0000
Received: by outflank-mailman (input) for mailman id 1068393;
 Sun, 03 Aug 2025 09:50:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f/pN=2P=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1uiVKs-0005hH-Bn
 for xen-devel@lists.xenproject.org; Sun, 03 Aug 2025 09:48:58 +0000
Received: from NAM02-DM3-obe.outbound.protection.outlook.com
 (mail-dm3nam02on2061b.outbound.protection.outlook.com
 [2a01:111:f403:2405::61b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 11fcd8d7-704f-11f0-b897-0df219b8e170;
 Sun, 03 Aug 2025 11:48:56 +0200 (CEST)
Received: from MW4P222CA0016.NAMP222.PROD.OUTLOOK.COM (2603:10b6:303:114::21)
 by BL1PR12MB5732.namprd12.prod.outlook.com (2603:10b6:208:387::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.18; Sun, 3 Aug
 2025 09:48:53 +0000
Received: from SJ1PEPF0000231E.namprd03.prod.outlook.com
 (2603:10b6:303:114:cafe::1a) by MW4P222CA0016.outlook.office365.com
 (2603:10b6:303:114::21) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.18 via Frontend Transport; Sun,
 3 Aug 2025 09:48:53 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF0000231E.mail.protection.outlook.com (10.167.242.230) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Sun, 3 Aug 2025 09:48:53 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) 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; Sun, 3 Aug 2025 04:48:49 -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>
X-Inumbo-ID: 11fcd8d7-704f-11f0-b897-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ARczdvGYuOMPm4+UD8Li28EXZU04EKqD0O0n4/KmywKC4/CJPFqD+JfV/WIXHO+onF31bOv4JWWnybxXxRlqVRtXrvVPhrb0Cf/bnY4CkNGqJKaAkcjSsPK/U/MGPpD5yRljzlZElFSug3zCYm6r0kCYudgBjlM5i7df5VbE3gurr8+fwlLp7mt5OZ10cDVB1rHSrMgOopNcg/sKQwrHSfrIv0vDi47vwXz00Do4swVb7xnIR2gCbAmpWJr0gdAnBX1dba1+aIhKXatnv5oci8GcIpSXGpMqiBWbGwxADLWgJL4uTLHJ4RmugGjbBT311JsXvgQS3bIc2dnuv3ju/Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=JfYuMrYWad5Fva1XqLQuOeatNzy3wAWahlriJhtMNLA=;
 b=fGgd5JwW7Sh4587oqj7bP3pyb03YOITOmQsarL8ZlAgpwvsk0DlLl3G9JzosPsjQjnp/zDQ3wcMBJZ0VOC9Eth1/g9DV52mhnGapUD404mjv73oarigEIEckdFqJWkCfhZyHda0xd2l5JnWoz3X2l0PRPAylAFddP1QcSlEgAnDw/WO6HmN4nnY2N4rmCXWBE7AlUk1S5ZGlTWmfiM+YpQrBg2d2oRUjziZaFhxYP7g47tE/V8Ar6kPt1UgciKvmtAe0wb6LaXpKX118e7CO7bmHSO9XzVHxEmoBtDdS7L+D9/4zGqYt+ZQu6ZzGr4EAgrQaKCGV644uLMeqUMuAGA==
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=JfYuMrYWad5Fva1XqLQuOeatNzy3wAWahlriJhtMNLA=;
 b=thfgEEUfz8JMIF4iAA9a13udmQtYQYeXaJm30PdlSMl53uL65zTRpGxpAvnAyTc9+CwGJCkoCIAiFxt+3RsmT66RCBbiZklFh5ecsf6qgZhdaB5R9ozXYVTofZuhIPVCSyph3hirH6y2My1WzKoKBR9p2lTglwIAg497eaBwmUw=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Tamas K Lengyel
	<tamas@tklengyel.com>, Alexandru Isaila <aisaila@bitdefender.com>, "Petre
 Pircalabu" <ppircalabu@bitdefender.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>, Jan Beulich <jbeulich@suse.com>,
	"Andrew Cooper" <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v1 18/25] xen/domctl: wrap around XEN_DOMCTL_set_access_required
Date: Sun, 3 Aug 2025 17:47:31 +0800
Message-ID: <20250803094738.3625269-19-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250803094738.3625269-1-Penny.Zheng@amd.com>
References: <20250803094738.3625269-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: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF0000231E:EE_|BL1PR12MB5732:EE_
X-MS-Office365-Filtering-Correlation-Id: 0c5ce328-bfa4-4b86-2563-08ddd272f505
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|7416014|82310400026|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?Cz8AGoVZiUjlRed6BqehG2wU1rXHMAFtmhvwS0G1sJrC41xymyk99ZwoQpJC?=
 =?us-ascii?Q?ouNVenIrJt+0ojlBcOtCCpjy0d5YRm+xbnvQz8SOPxdfKzYC3i3IrDJc09oL?=
 =?us-ascii?Q?Vmv9WzZ8EAkhGAideXqZrv9YAXLZc6p4xjRh/Xa8XNVaJSf+RRGQcF6ZGFkW?=
 =?us-ascii?Q?HylO6mALkNw02a9ftOvUBjW0bMXx49vrTREYqjEZ/n3mjLxZgVjPkeAiUEuo?=
 =?us-ascii?Q?ntbOxSrK8roGZEtRJkJT0P2+wVg0MtQ5YJkfbgRVGRhP2PaF9un3q+GMIUu4?=
 =?us-ascii?Q?lsZyvzrwdXvWqJVETE07HGANmLnAQ/4Y6qhGZk3XKXbKlEXiBUZqwJ1ov07s?=
 =?us-ascii?Q?1+JSYMi+q4ZQ6Vs2fAJeMVMX9bZegGjjgruk776pczW8qvbvlj/JSR6rX6iR?=
 =?us-ascii?Q?CVSqZEmtTypQJAR6Tdjxipd031tkFKwK6vlsixZ7QQeJdK6Oh3I60X/eqj9f?=
 =?us-ascii?Q?LfjgJX2bJpm5jPujBdk19ZCjmW4N4SovCA0tpEYQACHXar0B7GbF8e1XkOTb?=
 =?us-ascii?Q?k7ERkOQrnGlSjH4ioaeFaM6uAHbM3tcK0eUjlDJsAmmHMdepOTG1+owW2MbS?=
 =?us-ascii?Q?tsvq0oPRDOTK/FrZqZn+SyhC8D9qYfhXeasnlqsztaUYMf7LsczVZsT1/Y78?=
 =?us-ascii?Q?qINSmRzhXNnFthtOM2T0mnyANMPzvcKrjwcww2G6QFmrJ/XZI/VHNpbwT5wm?=
 =?us-ascii?Q?ufZbJP+IjSwsQ5m9Et4AC5n/mJzl2HFNTnpYAlN2/VBgt/+/trl1xT6jp0Ak?=
 =?us-ascii?Q?N6eoB9Kxg0Ubthzyi6X1OrHeZXuAJzOo0GsWq6kf/6c5kLil/hGAc7fxONq3?=
 =?us-ascii?Q?a43Bc4a3Ryzqj8BUyyDSh6aKG+I8uKqbZ1AG2k67zA1gzRlrsC6ggWlmsUm6?=
 =?us-ascii?Q?c31OmhSxPLIvp7lCSQgbpI2IzNc65FQ/O1uAlCX9LI+GdxWjgpZxQnQjy8It?=
 =?us-ascii?Q?YuUJ+2bfcmeLLe/980CmrCJtdkHBoGS3biF1wCYbzBV7eWoa7mWw5U1dUjxr?=
 =?us-ascii?Q?OaK3rdKfmFRx0Iptc7/5FboIUGWUdFSVV2AeHYYGlhXTemTly1TPKjvSUmHk?=
 =?us-ascii?Q?z9NEnJjc2Ct77ubS+UMff7L6D9kq3z+OOZgEHhX49REjOMxhTxK3rVPGwl1c?=
 =?us-ascii?Q?myWvnFcLUpzKi04KVyxb5ft8eibBf7LT4vp6NPaUpO8c1b9yJMIsrGD1q+Tf?=
 =?us-ascii?Q?LndGegdYV/Ci1b6Z8UBc7jR2oyxV9S+n8y9lKtZaliqIR/5J9WTwhMXabIny?=
 =?us-ascii?Q?lCHvNTIDUP7D52jZDNmVnYQGxQVEIXlvsTER9bTk5n8xuR6ge5yrR0Im4wQo?=
 =?us-ascii?Q?Ycr+9L6mb59CX5HZcAcFmS3tukF/FeViuDoFLtkTcz/VtYER+CjMMPfVI9yZ?=
 =?us-ascii?Q?NhCadaBLSNq8IlrUMB/UlkHlhBnnmFhHBs5WzRmmn7G7NgUpJfb4XhdcAlKH?=
 =?us-ascii?Q?t9YBNzg6wE6xlvhas6sTjGlII9NEgHtvSzuLgTIY8Rg56AqV3/7M3WRrz8XH?=
 =?us-ascii?Q?Uudp73phuFIl0jkCpnZ+Q+CPpPcfa/9C046m?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2025 09:48:53.3989
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0c5ce328-bfa4-4b86-2563-08ddd272f505
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF0000231E.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5732

Arch-specific arch_p2m_set_access_required() is reponsible for
XEN_DOMCTL_set_access_required domctl-op, and shall be wrapped.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
 xen/arch/arm/mem_access.c    | 2 ++
 xen/arch/x86/mm/mem_access.c | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/xen/arch/arm/mem_access.c b/xen/arch/arm/mem_access.c
index 2af92bb402..e205b6be8f 100644
--- a/xen/arch/arm/mem_access.c
+++ b/xen/arch/arm/mem_access.c
@@ -450,11 +450,13 @@ int p2m_get_mem_access(struct domain *d, gfn_t gfn,
     return ret;
 }
 
+#ifdef CONFIG_DOMCTL
 void arch_p2m_set_access_required(struct domain *d, bool access_required)
 {
     ASSERT(atomic_read(&d->pause_count));
     p2m_get_hostp2m(d)->access_required = access_required;
 }
+#endif /* CONFIG_DOMCTL */
 
 /*
  * Local variables:
diff --git a/xen/arch/x86/mm/mem_access.c b/xen/arch/x86/mm/mem_access.c
index 21b5b7ecda..de694c16e9 100644
--- a/xen/arch/x86/mm/mem_access.c
+++ b/xen/arch/x86/mm/mem_access.c
@@ -480,6 +480,7 @@ int p2m_get_mem_access(struct domain *d, gfn_t gfn, xenmem_access_t *access,
     return _p2m_get_mem_access(p2m, gfn, access);
 }
 
+#ifdef CONFIG_DOMCTL
 void arch_p2m_set_access_required(struct domain *d, bool access_required)
 {
     ASSERT(atomic_read(&d->pause_count));
@@ -498,6 +499,7 @@ void arch_p2m_set_access_required(struct domain *d, bool access_required)
         }
     }
 }
+#endif /* CONFIG_DOMCTL */
 
 bool p2m_mem_access_sanity_check(const struct domain *d)
 {
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sun Aug 03 09:50:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 Aug 2025 09:50:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068395.1432424 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiVMb-0003Qw-D5; Sun, 03 Aug 2025 09:50:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068395.1432424; Sun, 03 Aug 2025 09:50:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiVMb-0003Pw-93; Sun, 03 Aug 2025 09:50:45 +0000
Received: by outflank-mailman (input) for mailman id 1068395;
 Sun, 03 Aug 2025 09:50:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f/pN=2P=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1uiVKg-0005hH-Av
 for xen-devel@lists.xenproject.org; Sun, 03 Aug 2025 09:48:46 +0000
Received: from NAM02-DM3-obe.outbound.protection.outlook.com
 (mail-dm3nam02on20628.outbound.protection.outlook.com
 [2a01:111:f403:2405::628])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0a83cb12-704f-11f0-b897-0df219b8e170;
 Sun, 03 Aug 2025 11:48:43 +0200 (CEST)
Received: from MW4P222CA0001.NAMP222.PROD.OUTLOOK.COM (2603:10b6:303:114::6)
 by SA0PR12MB4350.namprd12.prod.outlook.com (2603:10b6:806:92::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.17; Sun, 3 Aug
 2025 09:48:38 +0000
Received: from SJ1PEPF0000231E.namprd03.prod.outlook.com
 (2603:10b6:303:114:cafe::f7) by MW4P222CA0001.outlook.office365.com
 (2603:10b6:303:114::6) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.18 via Frontend Transport; Sun,
 3 Aug 2025 09:48:37 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF0000231E.mail.protection.outlook.com (10.167.242.230) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Sun, 3 Aug 2025 09:48:37 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) 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; Sun, 3 Aug 2025 04:48:34 -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>
X-Inumbo-ID: 0a83cb12-704f-11f0-b897-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=XrQRDFKcde1c9ujv2x+6ZrUY9+Rsks3odch0tpgSJdTsIRXXeU7WeV/50lSEdcxVLDfeYm9AnlvyF7TcAxcHpvBSyvqeBIRkn8YfOzC7iJ2vs5nOhv+CME1BhjeOJ8vngk7KURd+KqPnkRXPnuT+RNbCbCNu4E07xuA+WqWqYtWPzKoFCKPZlLs2T3AtTm1Ym63SaRRuRJ416EnflMdGr2qBYS34g/VUJ8CQTjlwBvmfTekbo0mEp/x7KlHYJl/F7rlhauGBleAS2GxW2EzOmRSwIEBlBunqqqsDIvv4XZVnFyiN3A420/HM6EnEVjI2TrNVDN/UTDSwWNQQQEZjFQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=qWgH4YhPyg3TcKtMkDuA1WrWEWJGpPsNfDVTM1mUQJg=;
 b=fVQsbSWn2QJczHQDYf6AWIKis1gsPjEldXSerPppxtTkPml/Aky8Zr9vnV4+i57lBYKH/SQT8VFhSh4u44ht2+Ac92pd7wp5rFq/cHgb5684z6lBnC1r92cGtW7mmV9Znkuv4qrW5wJsNn7s+vCM3gE0CW2XroLLLlYJi/ft3jAz5svKhNE5aClBpzoot25O3VYH7pcN1EN0dNGaOsy8r0NtkW+tAo+zlT0qogcCyWM9AXVvwwGNUzDhR2w0/ztXNl0pZXrWkTahg/xDZX7abvIUnjckpL8nKVvNquFu3icfKAtEjmlguzXSkINlxIggsr27KRcDMepxJfD/T/29iw==
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=qWgH4YhPyg3TcKtMkDuA1WrWEWJGpPsNfDVTM1mUQJg=;
 b=DfFRhWiN4VqkzU95obmzuM7kXokHQor3GPldDTiWRftmtDeyjd/oCtMN77fPNhn0RhcayNPoJMh0o2HJr2MVTkIKhWd+smyUaumUfDjqCMV1HC1QX/L/dNLI8X9nvgDOBgr1ea1g9lnNSdGu5I2rVDB4ZDuMeG25JMf2IhvYDHY=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>, <xen-devel@dornerworks.com>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Nathan Studer
	<nathan.studer@dornerworks.com>, Stewart Hildebrand <stewart@stew.dk>, "Dario
 Faggioli" <dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>, George
 Dunlap <gwd@xenproject.org>, Meng Xu <mengxu@cis.upenn.edu>, "Daniel P.
 Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH v1 12/25] xen/domctl: wrap around XEN_DOMCTL_scheduler_op
Date: Sun, 3 Aug 2025 17:47:25 +0800
Message-ID: <20250803094738.3625269-13-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250803094738.3625269-1-Penny.Zheng@amd.com>
References: <20250803094738.3625269-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: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF0000231E:EE_|SA0PR12MB4350:EE_
X-MS-Office365-Filtering-Correlation-Id: a1c423e1-6467-4f20-2fba-08ddd272eb8a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|1800799024|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?okL0322ES/R+GtBSB+Tv2hZ8GRKKZHw+jB7uuXiE+ErlyR8OM5R3iWFGxUK+?=
 =?us-ascii?Q?9GBud6est6j8iqPgW0tgoz/HeU53pRk6TEB0naQ4TwziqtzyHQ4MWgc6FJ4w?=
 =?us-ascii?Q?QED23QOOH4hWYW8QPmBEipaAuxSJNx4QzK8xU2omJ/FXibWa9lYHKioCzl9D?=
 =?us-ascii?Q?ujHsFL0vVIGIfq7N7z/nHa89iCteerKei+Wijxi1RMtrppH17VxoELHNjDFo?=
 =?us-ascii?Q?XnCAt5C77UoeBjmMXd+jOe62GH9l4sAyLL1bTerPAwO/3uwCLfqM2YFUTiy/?=
 =?us-ascii?Q?4r9uxTOJWqHh8LEso0qoQ/MsrLHBkc53XX7pj2u/xlKt6azu1pjPb3s+UAEy?=
 =?us-ascii?Q?HT5+EMMG1jsy10ewQ1gp2pRnRIrFHw62sMX5kKJpJLtnL17s+FfcEUbX56dt?=
 =?us-ascii?Q?puQCx0YEfFOaf4smhXvtAIWl9w3sJ+HGDQQU/Qz19/GdlHoYEMBa+nRwcU5R?=
 =?us-ascii?Q?FdU/rYJzNZfi/jEX54iab1i70WKfo7rkkxFVpMIAoGepoKCWXDBMbZVaKLiS?=
 =?us-ascii?Q?X5X1S/M/usQQsNmhq6tMA8jSpVZLDg8HRCqGIjNBrs8+AvuS9VD837obrYVm?=
 =?us-ascii?Q?oKkvTKFEJfqjLl2a42zD3kS1DgqhH9TpA7UjLn87HaWmZPoivcCsznROdLi/?=
 =?us-ascii?Q?4o7T0G/WXylvjhKLb5yZNI2qa97m/C4M5e2GhAQO1Hc0hetGQOmjHalvZMWT?=
 =?us-ascii?Q?LAK14gKHqTeSPSURfx3Q/RWJJGNVrwXQHUdwtu48ud9s2FXWVP7ZWoaUXVrm?=
 =?us-ascii?Q?pExefCvqm2I/3Ha4piblt+s1Iwfoxlda7mPkmFM4tNPBKdFhBX+D8P2sSCxQ?=
 =?us-ascii?Q?vDkNxgOzPo+/u1k0NDKnpFJ/75Mvj2lLKtVMdLNREQx01WZ7vwij0UsIZhT9?=
 =?us-ascii?Q?EvjDjstjMlf4jI8xLHYjzC10CzdLJBl4B7ILN2th3/jFpMGyoYNOT4MYa08/?=
 =?us-ascii?Q?S3FnjSA6HcuZwrIMnpZIvR57N6oN1t7V7vWJaebUUDwcdtnivcy7xTQNDHPh?=
 =?us-ascii?Q?PfDU2D5HI7iRn61CSaFDz/bbAr/p1sIZsIHk56wFOw7tSAq1SDp8ckVk5j1B?=
 =?us-ascii?Q?9Z6p3W/+pg+l/5OUqFOyv1bOAq0Nyb1LSIfiRam81dJbK+/zsdwHak/aik40?=
 =?us-ascii?Q?awOF1IHJIIHn9o6ptgKLQvyPKcTmZgmqnLDBZIQwmXDGW+qjBBFyJhFf2lAe?=
 =?us-ascii?Q?P6V9yGpN8Z6vhO/EFmyCy+hXPRlba8JoqOvimvX5V79KW2gjVBqBjlve6Nmw?=
 =?us-ascii?Q?J9iEwF2KlTFzv+gxjC61eLmILGkPMyxlE9RIjx00TJL9VUbBKp/47eAnUILy?=
 =?us-ascii?Q?64EgnDdagO6T+8agR3lABMGCXGsuRZWGWwnDnwb2fOfK5V3lr5A4VjRtRMOS?=
 =?us-ascii?Q?mXgnnCNtEmWRF6+46TfLpe/Vst6UyeiuEMwkucJqV7FOgjmygKOTahPLfCN2?=
 =?us-ascii?Q?ZxQuNd0mqUlYhltgMvNOihq0vEygtPYqDl9VPHUXzEzuzRKGTTxAiHfeBZH9?=
 =?us-ascii?Q?xaRDCxz63d5L5fa5adiBMdnj0MmDycWgDbAt?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2025 09:48:37.4941
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a1c423e1-6467-4f20-2fba-08ddd272eb8a
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF0000231E.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB4350

Function sched_adjust() is responsible for XEN_DOMCTL_scheduler_op domctl-op.
Tracing its calling chain, the following functions shall be wrapped too:
- xsm_domctl_scheduler_op()
- sched_adjust_dom()
- scheduler-specific .adjust() callback

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
 xen/common/sched/arinc653.c | 2 ++
 xen/common/sched/core.c     | 2 ++
 xen/common/sched/credit.c   | 4 ++++
 xen/common/sched/credit2.c  | 4 ++++
 xen/common/sched/private.h  | 4 ++++
 xen/common/sched/rt.c       | 4 ++++
 xen/include/xsm/xsm.h       | 4 ++++
 xen/xsm/dummy.c             | 2 ++
 xen/xsm/flask/hooks.c       | 4 ++++
 9 files changed, 30 insertions(+)

diff --git a/xen/common/sched/arinc653.c b/xen/common/sched/arinc653.c
index 8a4f4259d8..e73b0256a6 100644
--- a/xen/common/sched/arinc653.c
+++ b/xen/common/sched/arinc653.c
@@ -735,7 +735,9 @@ static const struct scheduler sched_arinc653_def = {
 
     .switch_sched   = a653_switch_sched,
 
+#ifdef CONFIG_DOMCTL
     .adjust         = NULL,
+#endif
 #ifdef CONFIG_SYSCTL
     .adjust_global  = a653sched_adjust_global,
 #endif
diff --git a/xen/common/sched/core.c b/xen/common/sched/core.c
index 14f27fe70f..896178b32f 100644
--- a/xen/common/sched/core.c
+++ b/xen/common/sched/core.c
@@ -2080,6 +2080,7 @@ int scheduler_id(void)
 }
 #endif
 
+#ifdef CONFIG_DOMCTL
 /* Adjust scheduling parameter for a given domain. */
 long sched_adjust(struct domain *d, struct xen_domctl_scheduler_op *op)
 {
@@ -2114,6 +2115,7 @@ long sched_adjust(struct domain *d, struct xen_domctl_scheduler_op *op)
 
     return ret;
 }
+#endif /* CONFIG_DOMCTL */
 
 #ifdef CONFIG_SYSCTL
 long sched_adjust_global(struct xen_sysctl_scheduler_op *op)
diff --git a/xen/common/sched/credit.c b/xen/common/sched/credit.c
index 6dcf6b2c8b..fff1af063e 100644
--- a/xen/common/sched/credit.c
+++ b/xen/common/sched/credit.c
@@ -1183,6 +1183,7 @@ csched_unit_yield(const struct scheduler *ops, struct sched_unit *unit)
     set_bit(CSCHED_FLAG_UNIT_YIELD, &svc->flags);
 }
 
+#ifdef CONFIG_DOMCTL
 static int cf_check
 csched_dom_cntl(
     const struct scheduler *ops,
@@ -1227,6 +1228,7 @@ csched_dom_cntl(
 
     return rc;
 }
+#endif /* CONFIG_DOMCTL */
 
 static void cf_check
 csched_aff_cntl(const struct scheduler *ops, struct sched_unit *unit,
@@ -2288,7 +2290,9 @@ static const struct scheduler sched_credit_def = {
     .wake           = csched_unit_wake,
     .yield          = csched_unit_yield,
 
+#ifdef CONFIG_DOMCTL
     .adjust         = csched_dom_cntl,
+#endif
     .adjust_affinity= csched_aff_cntl,
 #ifdef CONFIG_SYSCTL
     .adjust_global  = csched_sys_cntl,
diff --git a/xen/common/sched/credit2.c b/xen/common/sched/credit2.c
index 75316d42b7..51784d9aab 100644
--- a/xen/common/sched/credit2.c
+++ b/xen/common/sched/credit2.c
@@ -2909,6 +2909,7 @@ static void cf_check csched2_unit_migrate(
         sched_set_res(unit, get_sched_res(new_cpu));
 }
 
+#ifdef CONFIG_DOMCTL
 static int cf_check
 csched2_dom_cntl(
     const struct scheduler *ops,
@@ -3114,6 +3115,7 @@ csched2_dom_cntl(
 
     return rc;
 }
+#endif /* CONFIG_DOMCTL */
 
 static void cf_check
 csched2_aff_cntl(const struct scheduler *ops, struct sched_unit *unit,
@@ -4246,7 +4248,9 @@ static const struct scheduler sched_credit2_def = {
     .wake           = csched2_unit_wake,
     .yield          = csched2_unit_yield,
 
+#ifdef CONFIG_DOMCTL
     .adjust         = csched2_dom_cntl,
+#endif
     .adjust_affinity= csched2_aff_cntl,
 #ifdef CONFIG_SYSCTL
     .adjust_global  = csched2_sys_cntl,
diff --git a/xen/common/sched/private.h b/xen/common/sched/private.h
index d6884550cd..b8841c9308 100644
--- a/xen/common/sched/private.h
+++ b/xen/common/sched/private.h
@@ -349,9 +349,11 @@ struct scheduler {
     void         (*migrate)        (const struct scheduler *ops,
                                     struct sched_unit *unit,
                                     unsigned int new_cpu);
+#ifdef CONFIG_DOMCTL
     int          (*adjust)         (const struct scheduler *ops,
                                     struct domain *d,
                                     struct xen_domctl_scheduler_op *op);
+#endif
     void         (*adjust_affinity)(const struct scheduler *ops,
                                     struct sched_unit *unit,
                                     const struct cpumask *hard,
@@ -506,11 +508,13 @@ static inline void sched_adjust_affinity(const struct scheduler *s,
         s->adjust_affinity(s, unit, hard, soft);
 }
 
+#ifdef CONFIG_DOMCTL
 static inline int sched_adjust_dom(const struct scheduler *s, struct domain *d,
                                    struct xen_domctl_scheduler_op *op)
 {
     return s->adjust ? s->adjust(s, d, op) : 0;
 }
+#endif
 
 #ifdef CONFIG_SYSCTL
 static inline int sched_adjust_cpupool(const struct scheduler *s,
diff --git a/xen/common/sched/rt.c b/xen/common/sched/rt.c
index 7b1f64a779..fd677b4f09 100644
--- a/xen/common/sched/rt.c
+++ b/xen/common/sched/rt.c
@@ -1362,6 +1362,7 @@ out:
     unit_schedule_unlock_irq(lock, unit);
 }
 
+#ifdef CONFIG_DOMCTL
 /*
  * set/get each unit info of each domain
  */
@@ -1471,6 +1472,7 @@ rt_dom_cntl(
 
     return rc;
 }
+#endif /* CONFIG_DOMCTL */
 
 /*
  * The replenishment timer handler picks units
@@ -1572,7 +1574,9 @@ static const struct scheduler sched_rtds_def = {
     .insert_unit    = rt_unit_insert,
     .remove_unit    = rt_unit_remove,
 
+#ifdef CONFIG_DOMCTL
     .adjust         = rt_dom_cntl,
+#endif
 
     .pick_resource  = rt_res_pick,
     .do_schedule    = rt_schedule,
diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
index 7c61f27366..6444f0677b 100644
--- a/xen/include/xsm/xsm.h
+++ b/xen/include/xsm/xsm.h
@@ -56,7 +56,9 @@ struct xsm_ops {
                                 struct xen_domctl_getdomaininfo *info);
     int (*domain_create)(struct domain *d, uint32_t ssidref);
     int (*getdomaininfo)(struct domain *d);
+#ifdef CONFIG_DOMCTL
     int (*domctl_scheduler_op)(struct domain *d, int op);
+#endif
 #ifdef CONFIG_SYSCTL
     int (*sysctl_scheduler_op)(int op);
 #endif
@@ -242,11 +244,13 @@ static inline int xsm_get_domain_state(xsm_default_t def, struct domain *d)
     return alternative_call(xsm_ops.get_domain_state, d);
 }
 
+#ifdef CONFIG_DOMCTL
 static inline int xsm_domctl_scheduler_op(
     xsm_default_t def, struct domain *d, int cmd)
 {
     return alternative_call(xsm_ops.domctl_scheduler_op, d, cmd);
 }
+#endif
 
 #ifdef CONFIG_SYSCTL
 static inline int xsm_sysctl_scheduler_op(xsm_default_t def, int cmd)
diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
index 6f8b06b45f..b8a9b581b7 100644
--- a/xen/xsm/dummy.c
+++ b/xen/xsm/dummy.c
@@ -18,7 +18,9 @@ static const struct xsm_ops __initconst_cf_clobber dummy_ops = {
     .security_domaininfo           = xsm_security_domaininfo,
     .domain_create                 = xsm_domain_create,
     .getdomaininfo                 = xsm_getdomaininfo,
+#ifdef CONFIG_DOMCTL
     .domctl_scheduler_op           = xsm_domctl_scheduler_op,
+#endif
 #ifdef CONFIG_SYSCTL
     .sysctl_scheduler_op           = xsm_sysctl_scheduler_op,
 #endif
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index fd7aea460f..55da0a5ff7 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -609,6 +609,7 @@ static int cf_check flask_getdomaininfo(struct domain *d)
     return current_has_perm(d, SECCLASS_DOMAIN, DOMAIN__GETDOMAININFO);
 }
 
+#ifdef CONFIG_DOMCTL
 static int cf_check flask_domctl_scheduler_op(struct domain *d, int op)
 {
     switch ( op )
@@ -625,6 +626,7 @@ static int cf_check flask_domctl_scheduler_op(struct domain *d, int op)
         return avc_unknown_permission("domctl_scheduler_op", op);
     }
 }
+#endif /* CONFIG_DOMCTL */
 
 #ifdef CONFIG_SYSCTL
 static int cf_check flask_sysctl_scheduler_op(int op)
@@ -1890,7 +1892,9 @@ static const struct xsm_ops __initconst_cf_clobber flask_ops = {
     .security_domaininfo = flask_security_domaininfo,
     .domain_create = flask_domain_create,
     .getdomaininfo = flask_getdomaininfo,
+#ifdef CONFIG_DOMCTL
     .domctl_scheduler_op = flask_domctl_scheduler_op,
+#endif
 #ifdef CONFIG_SYSCTL
     .sysctl_scheduler_op = flask_sysctl_scheduler_op,
 #endif
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sun Aug 03 09:50:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 Aug 2025 09:50:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068396.1432432 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiVMb-0003Up-Rh; Sun, 03 Aug 2025 09:50:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068396.1432432; Sun, 03 Aug 2025 09:50:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiVMb-0003Sj-Hy; Sun, 03 Aug 2025 09:50:45 +0000
Received: by outflank-mailman (input) for mailman id 1068396;
 Sun, 03 Aug 2025 09:50:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f/pN=2P=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1uiVKn-0005K3-FH
 for xen-devel@lists.xenproject.org; Sun, 03 Aug 2025 09:48:53 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20615.outbound.protection.outlook.com
 [2a01:111:f403:200a::615])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0fa4fe3e-704f-11f0-a321-13f23c93f187;
 Sun, 03 Aug 2025 11:48:52 +0200 (CEST)
Received: from MW4P222CA0017.NAMP222.PROD.OUTLOOK.COM (2603:10b6:303:114::22)
 by PH8PR12MB6913.namprd12.prod.outlook.com (2603:10b6:510:1ca::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.18; Sun, 3 Aug
 2025 09:48:48 +0000
Received: from SJ1PEPF0000231E.namprd03.prod.outlook.com
 (2603:10b6:303:114:cafe::6a) by MW4P222CA0017.outlook.office365.com
 (2603:10b6:303:114::22) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.18 via Frontend Transport; Sun,
 3 Aug 2025 09:48:48 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF0000231E.mail.protection.outlook.com (10.167.242.230) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Sun, 3 Aug 2025 09:48:47 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) 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; Sun, 3 Aug 2025 04:48:44 -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>
X-Inumbo-ID: 0fa4fe3e-704f-11f0-a321-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fQaZneFadSuc8APs76FQqB1QYVLExvGGhGsMl7Cu4ydqW64wdXz3J9mKms3ZsoQUSiMBnbelCAFp6SpCwCjVsm81KZevs+yaVe81jvcHBeo3PCpBTUw6ogRUnfYowjeq4LpVgTb1VEWDP7BewF0EXoaFYHB/SZetM0rmvbv+XxSN+f3SVnh6tJx7u/0rkfC0wTOjU4ecRPjHM8qEBh4A0cfFNB8BU9pD5rVKnvP6IhXWKwml+9kqvYW07mcvkOsOIU6t4PUsAgRn6Mmok8EuR1wEmaYcUW4K4vGQQJ9U+yyZZrLohSiRukPUvr1zPF6UIirckVn72K1wGqj0Oxtong==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=UNw4NHXqbWOs8j23iJFcjSmDR7bG+jYlgp3Mfiza5hE=;
 b=mX+bNSlhigNT+AnVnwDHDtABdAGT5y5w13JZI7gdfLwKylTFhSl5ab4fS+pjviJU5d1iUf2+xlL3dAH2/w1REsruUj1B1MKyAHIO7Ynz2L8scq9bQN3yxzcfOM98aGusmW/HYsFxGl0XXop3ty3WICEsEr4y+UB9dkaM38cMy5Nt8r4wMU0121veJIjYae5WVnbqZ1HJWY4H4rvEcM4DCdZg4ykE/0m2WMBIXJ6N1XWsso5B7mXpclw30PbZ/J/XZkcm8rDzVppZ2IgIkrHsG8SbAeHuZhXes0Ef9YabS+wSOTlmwpGiDoRPDjpJBK/BLP0AMQ7WJprCQ5rf/08euw==
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=UNw4NHXqbWOs8j23iJFcjSmDR7bG+jYlgp3Mfiza5hE=;
 b=RiaqpB508P0WH8HEkTJIuhyHUePxZOQSHskhCafaIVD3+cq60DLzQEXotHMSAUTOeLqL8Hswz9rklzQagAUNoGqSUo4PWkwmL3T5OUq3WmxFQJZQsa1KRyDSN4XTIJ0YFOso1HgcLIHoeVniyibf8RCw2NfBaJuWtjwx3qjuyZ4=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>
Subject: [PATCH v1 16/25] xen/domctl: wrap around XEN_DOMCTL_set_target
Date: Sun, 3 Aug 2025 17:47:29 +0800
Message-ID: <20250803094738.3625269-17-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250803094738.3625269-1-Penny.Zheng@amd.com>
References: <20250803094738.3625269-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: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF0000231E:EE_|PH8PR12MB6913:EE_
X-MS-Office365-Filtering-Correlation-Id: ea3ce413-97c8-4ce5-d3fd-08ddd272f1cc
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|36860700013|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?eOhBBPQg059xJuxTN+DNL0n7YeKE1F+VhhGbuIU7mk3gnxcJvxGqooUXRa4s?=
 =?us-ascii?Q?enFmJBtHe1KQcerQlkVgOJ/91ztDd79Bom743/p5uhlKMIJUeNBpYfHoFUOC?=
 =?us-ascii?Q?ANnasmGTKQ0kBjxmEFllISZML+rKyaNOJTxwcJaw78w8yTonjvQGuWGkDRlg?=
 =?us-ascii?Q?r0uOo0mofUo0VbKRR/WoVSzZVw0lugjnZF7nngrSuMRHwH9pd2BSwnrkW40d?=
 =?us-ascii?Q?HVd311eUx7O5KCtCr910aYymU7/hIDQqxPdVQYieL9Dg4V+QwkJeePkakXpN?=
 =?us-ascii?Q?c2p4LR9Uqzt9HefWyeYVBKwz8Ou/BrAW6PgADaPb1ObonztibTGkMCCB2ysO?=
 =?us-ascii?Q?S5PFCtdQ6tnPmm+0DEqql7AvCzoIgf1+30qayOurK72j881fwXCgC8GvbNmL?=
 =?us-ascii?Q?6glTXYSfvyV+TNcCwE6y3kXZVpJFRrBfmJy/gc4BhajpcdStm6WLolqC6Q4N?=
 =?us-ascii?Q?pvkjiLMFQRujiKRMldTpkW0e8ZM8ClZsIOSWxEAO2v+S68j64ooBSynbjvqr?=
 =?us-ascii?Q?aSLYq/QNEu9+xFy/oTzf9YAQ4OOSN+e7u+zB2V5gcF/KcP0NcDaKFDOaPRqr?=
 =?us-ascii?Q?vRplaYCjCRctHFRf0LzdpbM71AXYVjmM8J1P0MR0bcEsVl+RC2SPT7nxBRay?=
 =?us-ascii?Q?fzztdx2olTTBZUUoq5Xgjn6G2lgdCaW4b48jOwYP+v7DXx4X0KxMmIBkWHNi?=
 =?us-ascii?Q?Ku/jcupdJDVwe+sx6HMuVcxvN9iUVclp5QZUnGoWb8N+Jpma1ojx56W5Akd6?=
 =?us-ascii?Q?27rzhGRXdd85+elizO9Zl816jHEOiFnux4xAjSka4iAMEFglrt/sJahOY0sB?=
 =?us-ascii?Q?7q55Y1OhI5HuRKKqoLm3++C8V8F1vcjABXVdnR3sSVYVGVQvbg9joUk2I0j5?=
 =?us-ascii?Q?t9R5hZzSfczQOg4+FeqsmtYAicBZL29FYKfpbu0PM9odZVABX2GGIVzByNmH?=
 =?us-ascii?Q?HGNWK77L9hQ6T+j3B5w6vgSv1KwhFWZ1I2A6pZJG/s+CC1y0xRfONFbMrkkY?=
 =?us-ascii?Q?JLsENdw4ahgV0nThLJlhNnF2lQDgDFme8wi7jt9rNfVi7PZQj1T9dsSlx/5j?=
 =?us-ascii?Q?crhs73ddW/rT7HZxZ1hO7WC5+YQ+gvgSCqLXxmVuWHSSfe/6IhPtKTRBZIxw?=
 =?us-ascii?Q?LAghgZlqM9k0nF1HDMk7SvtvR/RAn/AFR7JiyTz9MzAEVuB6BU5jIAUfDBtS?=
 =?us-ascii?Q?rnS67tAHWpPRZvpEDXdFwb/obP1SP0wOTnEL9/rhM+PHd+jNqHLUESjcvgi4?=
 =?us-ascii?Q?A0IHgnmL8hvsRqD1byQIrIY5IUPPLyS9tYmskRGqsughxehTBNKvF62dvU7K?=
 =?us-ascii?Q?KqWjBVZ379Qb42ltpIZJnemXeu5AZRpQetRbWOLVv8UVwQcS////AzXAQkiu?=
 =?us-ascii?Q?YvedyhFA14RqXZj9EBoNd5OjaLMgWPOLodxv1HqCtxY0eBr9eUxBgwVHeZoY?=
 =?us-ascii?Q?3ZShmlAUvD7FUeviet4a/zTq7SnTbO82EIf0Mwu5aWvbfjPy4Pxrryarkaos?=
 =?us-ascii?Q?Ay95k6A9Bk+5oLEEKTufWkPVmzeXNC0arX/c?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(36860700013)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2025 09:48:47.9964
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ea3ce413-97c8-4ce5-d3fd-08ddd272f1cc
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF0000231E.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB6913

Function xsm_set_target() is only invoked under XEN_DOMCTL_set_target
domctl-op, and shall be wrapped.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
 xen/include/xsm/xsm.h | 4 ++++
 xen/xsm/dummy.c       | 2 ++
 xen/xsm/flask/hooks.c | 4 ++++
 3 files changed, 10 insertions(+)

diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
index 1759d49aaa..55f8d0903e 100644
--- a/xen/include/xsm/xsm.h
+++ b/xen/include/xsm/xsm.h
@@ -62,7 +62,9 @@ struct xsm_ops {
 #ifdef CONFIG_SYSCTL
     int (*sysctl_scheduler_op)(int op);
 #endif
+#ifdef CONFIG_DOMCTL
     int (*set_target)(struct domain *d, struct domain *e);
+#endif
     int (*domctl)(struct domain *d, unsigned int cmd, uint32_t ssidref);
     int (*sysctl)(int cmd);
     int (*readconsole)(uint32_t clear);
@@ -261,11 +263,13 @@ static inline int xsm_sysctl_scheduler_op(xsm_default_t def, int cmd)
 }
 #endif
 
+#ifdef CONFIG_DOMCTL
 static inline int xsm_set_target(
     xsm_default_t def, struct domain *d, struct domain *e)
 {
     return alternative_call(xsm_ops.set_target, d, e);
 }
+#endif
 
 static inline int xsm_domctl(xsm_default_t def, struct domain *d,
                              unsigned int cmd, uint32_t ssidref)
diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
index 2798425de2..cd5358dd1e 100644
--- a/xen/xsm/dummy.c
+++ b/xen/xsm/dummy.c
@@ -24,7 +24,9 @@ static const struct xsm_ops __initconst_cf_clobber dummy_ops = {
 #ifdef CONFIG_SYSCTL
     .sysctl_scheduler_op           = xsm_sysctl_scheduler_op,
 #endif
+#ifdef CONFIG_DOMCTL
     .set_target                    = xsm_set_target,
+#endif
     .domctl                        = xsm_domctl,
 #ifdef CONFIG_SYSCTL
     .sysctl                        = xsm_sysctl,
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index 8361cf94f9..2975d2906f 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -645,6 +645,7 @@ static int cf_check flask_sysctl_scheduler_op(int op)
 }
 #endif /* CONFIG_SYSCTL */
 
+#ifdef CONFIG_DOMCTL
 static int cf_check flask_set_target(struct domain *d, struct domain *t)
 {
     int rc;
@@ -668,6 +669,7 @@ static int cf_check flask_set_target(struct domain *d, struct domain *t)
                                  &dsec->target_sid);
     return rc;
 }
+#endif /* CONFIG_DOMCTL */
 
 static int cf_check flask_domctl(struct domain *d, unsigned int cmd,
                                  uint32_t ssidref)
@@ -1900,7 +1902,9 @@ static const struct xsm_ops __initconst_cf_clobber flask_ops = {
 #ifdef CONFIG_SYSCTL
     .sysctl_scheduler_op = flask_sysctl_scheduler_op,
 #endif
+#ifdef CONFIG_DOMCTL
     .set_target = flask_set_target,
+#endif
     .domctl = flask_domctl,
 #ifdef CONFIG_SYSCTL
     .sysctl = flask_sysctl,
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sun Aug 03 09:50:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 Aug 2025 09:50:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068397.1432436 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiVMc-0003cM-Ac; Sun, 03 Aug 2025 09:50:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068397.1432436; Sun, 03 Aug 2025 09:50: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 1uiVMc-0003Zd-1l; Sun, 03 Aug 2025 09:50:46 +0000
Received: by outflank-mailman (input) for mailman id 1068397;
 Sun, 03 Aug 2025 09:50:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f/pN=2P=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1uiVKj-0005K3-SM
 for xen-devel@lists.xenproject.org; Sun, 03 Aug 2025 09:48:49 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20606.outbound.protection.outlook.com
 [2a01:111:f403:2009::606])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0da46d53-704f-11f0-a321-13f23c93f187;
 Sun, 03 Aug 2025 11:48:49 +0200 (CEST)
Received: from MW2PR16CA0019.namprd16.prod.outlook.com (2603:10b6:907::32) by
 SA0PR12MB4461.namprd12.prod.outlook.com (2603:10b6:806:9c::22) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8989.19; Sun, 3 Aug 2025 09:48:19 +0000
Received: from SJ1PEPF0000231D.namprd03.prod.outlook.com
 (2603:10b6:907:0:cafe::9b) by MW2PR16CA0019.outlook.office365.com
 (2603:10b6:907::32) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.19 via Frontend Transport; Sun,
 3 Aug 2025 09:48:19 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF0000231D.mail.protection.outlook.com (10.167.242.234) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Sun, 3 Aug 2025 09:48:18 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) 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; Sun, 3 Aug 2025 04:48: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>
X-Inumbo-ID: 0da46d53-704f-11f0-a321-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iS2X8YsZbNq3fb+rCJpyNwtVnx5xjMvpjt4mjSrWwLVgO5hoaHPQrkbYXUQsarr7sV2X88AE2eWw11+noSs37ka7Y5sHwXKOGunVmVng7aG4CGnJ2Lmcr1/bOpACF1H2l21djvB4g53UKH5omKGvZkPPjDjVEYdet5e1A7ibKMeW40PNHGzGDNV6kd3UNpMH7aYy8UmfRUj7m+VYvAVWVwtkL7RxIcrQfuAYpYf9E2pTjsRSKrWvJpgCzQJ/iNV2WODQ3OgLC3/Iv4M3vmz9GHOBB0+4lpAqAjus8mMcSvw5GExI6Z6hHSHfvaRG8HdVBqNo0RkI6kLKAv7yV3JJWA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=bZiU8v1gYjYKd6yc8FaXHrqpMcJ4UcE447WtvMO8tJs=;
 b=vrCguJP9Gd4lOJnVlI5bUrRItZaIvlhiIlVf7zOn7/s0pOw1Xucy48u600QoJlMFaniodU8IPtQM/O9qLfLpG0eru+4yweR12pNhVwg3acJB1Mp9wuBQyJQFh8MYU6YTj/ViY5q/wbXPTJ0qWfh2gRahMHdz+Jljw4LPPmf5Gg0PaHYc4FUfirvSCpyHmQnhaIe2WeET5gNO7ok8HYbCg3L4cJh8LGR/n+f3+VmOzFL/Q4UWtVWIse82S9alqpI0o5MfXP3My5wQz0yd8Y/hNc7aTx9mfigxbwr8VEIkguaKjM1h70r/OgzpTBGig7KZCjY/ZsLzhU9T+6vWO0/7eg==
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=bZiU8v1gYjYKd6yc8FaXHrqpMcJ4UcE447WtvMO8tJs=;
 b=r1tQisOlaSShZhn4pVCHkY6Tm1K1iJbULyx1ti+1ZpaaWaPAYBn6WMBuPMgpXgn7ZonEwX1gmeNCrza3urr1qhYQvbf1uTHNQftiss/NIv0zhF/kIAhidg4C/JxfNuVTIr3gg7x0SOIXHssYEW4O9D/H5nvtRPHarS7tdOqsrM0=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 06/25] xen/domctl: provide stub for domctl_lock_{acquire,release}
Date: Sun, 3 Aug 2025 17:47:19 +0800
Message-ID: <20250803094738.3625269-7-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250803094738.3625269-1-Penny.Zheng@amd.com>
References: <20250803094738.3625269-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: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF0000231D:EE_|SA0PR12MB4461:EE_
X-MS-Office365-Filtering-Correlation-Id: f8d7a918-c43e-452e-dd72-08ddd272e037
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|30052699003|82310400026|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?qgiHqDbFKUBUG9aBdJLQ1vJ9A4INDRvDDtwnJgi7UWxL5/2TfCMBFlxntOly?=
 =?us-ascii?Q?74PKBRyr554U+PUbXqGC7yvq/7pbVp8ALs5s3TM28P/TJTm3wOmBAaXgiIQL?=
 =?us-ascii?Q?i6pDq5XF7lUsRMsA9CH0b7k7z8Bw9+LpZKQ8WqC4wjkaRarSQ+8utAvTVOqb?=
 =?us-ascii?Q?dJrelHAQZSf3xwxOT0vyGbcFGeq3SNDctZ1cVOA8m9pwEPvjXOWq3WrmTFJe?=
 =?us-ascii?Q?c3v3ETFwAdhJlD8Ux0SDsSOuYUEbA8012ag0nnKJCtTVEcZ4H927JEyVSeEW?=
 =?us-ascii?Q?N4ARB+3ncZjZJhSaC+W6UiEkQ9PxpWODh5kQGQRFAV8FzRwfyBePKf7+kFKL?=
 =?us-ascii?Q?S1AfDjjozJWHfIhkxO51a4eHVw3QM7ECAtGiiTLX74YaxDohkt7vB6/NCH8v?=
 =?us-ascii?Q?1dzWCcQivVqeysRGdEIjzeL3d+81H7y+Nie0tVbwyngEbkKxziQOPEsdLGAD?=
 =?us-ascii?Q?17DJ9t1L2FtNyZKfEY5cPA0g60sSY1fpUWthE5rrXjdfMYD3S48WqpH2vH1/?=
 =?us-ascii?Q?x39JNkluPXCs0oL0dYZsFksGfR56B+Brk+ICu6kQQLu+T55wmamUMGQezvjq?=
 =?us-ascii?Q?Cy7d4SlMoSxjD6tNyHU01k6LSMU3L8lvXklpenuRDHLfdQxQ2rV0T1hw5jij?=
 =?us-ascii?Q?z1jAXbRfnjOY71At1/qqL9iCYzdsh7LNd1TvyCeyW42pWJt3KoedIHoo168H?=
 =?us-ascii?Q?ddu6Oa6JiScrntHAWzma/mX5BwWX8YhdyKmwXTaILVmrezcjohC0M9bN8fJi?=
 =?us-ascii?Q?2zQqoht8CCMF3+fSRqn5SiwKXxOgexBdrW+h40vDmP3JewEi5i2XBqg7h47H?=
 =?us-ascii?Q?nxv2Pu6K+/Vb9nT8DhTfOO2iaUFprzrIrk+Pc8IugYfrGtBUOq8rbLrRYAto?=
 =?us-ascii?Q?PZ+M0VuAcIaNUsz+rGi6iCE5e+4KqmtHLXNAQDaScK3SLgPPdHXg6ittBaxX?=
 =?us-ascii?Q?UQ2j3GePqi21AR3m0YpCF9FpZXSL5VEuBu+HcJHlpkohnarPe3j5iliFrcPe?=
 =?us-ascii?Q?7Ro4T/JCh/aeih+NBFVWTbBW+2GesSmd0P5k5vpBb70qNaIJUToQw06RuJOu?=
 =?us-ascii?Q?WAtT8yjj1GPonM09uCUDjHiYGK4BCOXllmx2/IgcPltsQUz2A+NFgSyyjt6/?=
 =?us-ascii?Q?8F2assdmFCFT5TJKa8c1GmS5YhJcZrMo07oi80yW4HC5wm5AnENwE5s/HDCy?=
 =?us-ascii?Q?PB/YfP7L3ckZb/WNBG7AC1FSxq0x+tTTfTiz6PzYTPDNDL0qBUupSH4Byq9w?=
 =?us-ascii?Q?90qNVMt/8ni2UN6kZzP/VekX3i11kVV3Jy03S7b6P8FRAeOXJIyDxqsGya/e?=
 =?us-ascii?Q?rFAvclWAtiIP6JvMZyrc56diYFmUbMIaY/fh+RMQWeaPCRV2/117jcu7fuHW?=
 =?us-ascii?Q?Vbnwfvg5+0sduYOdDgtrExIx04YYyJ2KVAd4YN2egefNPbdmcbF1b6J2Hhmg?=
 =?us-ascii?Q?hQlOfeyUPhxFkzV3z8L0ZRb6ESrSt2GOihgtT6RU3kzeeKaOteM/GSb1itWw?=
 =?us-ascii?Q?sqLjzx643h7I+bV5i5wOy4Sxwa+flsHgj0+f?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(30052699003)(82310400026)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2025 09:48:18.5009
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f8d7a918-c43e-452e-dd72-08ddd272e037
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF0000231D.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB4461

With DOMCTL=n, we need to provide stub for domctl_lock_{acquire,release}(),
as it may be invoked by hvm_set_param() in x86 PV shim mode. Although
PV_SHIM_EXCLUSIVE and HVM shall not be both enabled, randconfig stands
little chance to make it happen.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
 xen/include/xen/domain.h | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
index 33dd90357c..b45ac91760 100644
--- a/xen/include/xen/domain.h
+++ b/xen/include/xen/domain.h
@@ -148,8 +148,17 @@ void arch_dump_domain_info(struct domain *d);
 
 int arch_vcpu_reset(struct vcpu *v);
 
+#ifdef CONFIG_DOMCTL
 bool domctl_lock_acquire(void);
 void domctl_lock_release(void);
+#else
+static inline bool domctl_lock_acquire(void)
+{
+    return false;
+}
+
+static inline void domctl_lock_release(void) {}
+#endif /* CONFIG_DOMCTL */
 
 /*
  * Continue the current hypercall via func(data) on specified cpu.
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sun Aug 03 09:50:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 Aug 2025 09:50:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068399.1432443 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiVMd-0003mh-1L; Sun, 03 Aug 2025 09:50:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068399.1432443; Sun, 03 Aug 2025 09:50: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 1uiVMc-0003kk-Q1; Sun, 03 Aug 2025 09:50:46 +0000
Received: by outflank-mailman (input) for mailman id 1068399;
 Sun, 03 Aug 2025 09:50:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f/pN=2P=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1uiVLF-0005K3-DL
 for xen-devel@lists.xenproject.org; Sun, 03 Aug 2025 09:49:21 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20623.outbound.protection.outlook.com
 [2a01:111:f403:2418::623])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2048608c-704f-11f0-a321-13f23c93f187;
 Sun, 03 Aug 2025 11:49:20 +0200 (CEST)
Received: from BY3PR05CA0020.namprd05.prod.outlook.com (2603:10b6:a03:254::25)
 by IA1PR12MB6113.namprd12.prod.outlook.com (2603:10b6:208:3eb::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.16; Sun, 3 Aug
 2025 09:49:13 +0000
Received: from SJ1PEPF00002318.namprd03.prod.outlook.com
 (2603:10b6:a03:254:cafe::77) by BY3PR05CA0020.outlook.office365.com
 (2603:10b6:a03:254::25) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9009.9 via Frontend Transport; Sun, 3
 Aug 2025 09:49:13 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF00002318.mail.protection.outlook.com (10.167.242.228) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Sun, 3 Aug 2025 09:49:13 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) 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; Sun, 3 Aug 2025 04:49:06 -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>
X-Inumbo-ID: 2048608c-704f-11f0-a321-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=u+0Gis5ZuDhbnOduOrP3aEJbz4r/D7XP7Od8Jil6GiT9bFMxpRRoM1Lkkes2YDVWxazXlShs+KdodqRNeWFnPGnTjVZtUy2lJjr/N19b80gle01h8124kiyGbG3u8b0925owHN9zO1+RDGb3NrWIYoX/X5gQRLJ5IewEUCqax6zYyheMexNkYxCl1UeKZL0kR6jPeRI5+NMgjD5h5H4ZH/dMd6nXIOyOsxn3kPvDzrg4ooL5Mn5qyefOIAOWi5os7Ebf+9v7LN0wqNC/b8gWpkdUqcwUsft8zjsLwVvNanNBCnwzuroWEXpsdeYhRIHSOGxGes9RQeCqfUTBg1hhHQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wqsSafNY4ierJ81EwiM5+LNW4uoi1U1UYjSCIbvM1aU=;
 b=bHYHS0h9SAoEPp6uMCG8jYtf/0qKTLjWZ8ubx7AdiXHKCxNscESq+Fs7+io+1p1vl0/WH9JhIKWq31XuPEBVQ1TY/lgl8+hPNrYeSaL4lKF5lfJfkpl2irIYieKGLW/aE+krPqvhHwENad+m/SUnkFLyseZnzr/xES6yPnP5i4bwNuPtYN86JYKq0nA98jxe5N0od+37vxdXPkNEhcNad3zQdXuBW9cz3FjqajNzu48YWOgqBg4SZvxsSQj1vhX+wF2UsqOhiiNTG1iNgXs4P0RihY86LJnMDM5suNJ9+R9X/7wZF2V3bCGx9YwuA5GnvrO4PjTJeJBgx7wPIzjAlA==
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=wqsSafNY4ierJ81EwiM5+LNW4uoi1U1UYjSCIbvM1aU=;
 b=MTUAfBn8pNXPYjcdsR/7imYTkpUZAmjhwStf09KIaDAH99ViDWJsJPmZ43pyXzFif8+r9gUKSlAtmxL8mv1PLajUZa5dcM+4aqbj/UUWqmwfw1o/D0/lVwzBmQQv1l8bk+5OHGfXo3EYqjhKLC+A9NlIzoHu64NGccGPUuky+L8=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>, Jan Beulich <jbeulich@suse.com>,
	"Andrew Cooper" <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Tamas K Lengyel
	<tamas@tklengyel.com>, "Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH v1 24/25] xen/domctl: wrap around arch-specific domctl op
Date: Sun, 3 Aug 2025 17:47:37 +0800
Message-ID: <20250803094738.3625269-25-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250803094738.3625269-1-Penny.Zheng@amd.com>
References: <20250803094738.3625269-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: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF00002318:EE_|IA1PR12MB6113:EE_
X-MS-Office365-Filtering-Correlation-Id: 7740e4fc-b0a5-4c9b-f465-08ddd27300bb
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|7416014|376014|36860700013|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?vLR9Ocf/Cyx/1ZnKlLDgi6URU1motvfWrWdjfUIoZ71N/PE9Rv0ocDZuVaKA?=
 =?us-ascii?Q?Lx4vvZvNrppWXqFBGDwfqYOjYHPBJ0inQ7bsLMY2SUMLh7aWU1EMnEpBCdL2?=
 =?us-ascii?Q?MhJgS9f6KZPgJEK/A+QWVup4JJ2KHahnR0NBPWeVAwUvd87CXTTIu4M7rdUu?=
 =?us-ascii?Q?FxWbBNvCtyCunckLyBxLkgsLiaraFBH3WlHfR9+BMeoPU+bKhRCpuz20yBsh?=
 =?us-ascii?Q?Grd4xfUsKpLpjP+2LMpxlAmkxl+0ZPkTYl7BIUCCWp64IEdBQ4xntoMk/GJ1?=
 =?us-ascii?Q?OdgTpB4i2BasnnEeFRfwTGRsHRAHEXeCvGjiSM2aCj15NVz5hxJ7Hz47SpCQ?=
 =?us-ascii?Q?SOFpyDzLNc0R8+a5l974AV6brBMfHr/oqDt3urHIuH6LedX9M4GNu5CBX+iY?=
 =?us-ascii?Q?LG61nBM1FV/mKGdQp5ip5Z0Q5r21QXPvF1/pLLkwMnWO4MzwwMJO3iGGxA8U?=
 =?us-ascii?Q?Hm5NlG9LjtaDsNieeiYJ7t/8tvahpggk92wslZQTjmCqQjYCDyoUPAHMcUcf?=
 =?us-ascii?Q?dZZW03I5YV+UOi0VU2nbOXgNgh7i5Sf9Ez9tyRVrL6G8Zlv63G1LOThEw6mm?=
 =?us-ascii?Q?/RmE3IQuiF+yT/cNRp/uJD426LXRL31kT9hL+wivz5QnfD6xXmiHkYzEEKoj?=
 =?us-ascii?Q?xrwofK5jCfZykwf3m3CTHUaZDMmsTMb8mXCGsS65xj8LmpMkNuTqVsmydU8q?=
 =?us-ascii?Q?TnnnSEhCodWkRVr/ZxesyOrqeSq1YkEzrVTvCmIsJWnTtBE9zfJujLNXCXNZ?=
 =?us-ascii?Q?DKeg/gFR9aLrV62iORsADuPXMOLR0/i8mYq51LgCiDo3NGmxjZprrnf6fGTi?=
 =?us-ascii?Q?ZsmpZ+POeMFK4B9wQ9W6arvOf2lo2uOvBgLFRxK1QlNgl7fXMyk/E3LVr5Mh?=
 =?us-ascii?Q?GZN/72pRZ7+w8rYEV5bDeTeqZO/ajax0CiSvkZsRUWEmCYnZNTNeO1FIlqFK?=
 =?us-ascii?Q?PMqFMsXmQOadd++r4b3Kz4BcQ2TYw+RJcZT38lhP95wQR0aassOBZAC9w2me?=
 =?us-ascii?Q?b5tyjmN7Uayt6CggvOzrrSmRQMW7u12t+6Ys34xV9oQwLohllutt0DZ2LSxu?=
 =?us-ascii?Q?SKQS9rx95krIkk5euLBh2Mcx4g8c2PMAuxJqX8OJZknbSRqqBMyRUYx6T6Ek?=
 =?us-ascii?Q?oTh0Lg/uk+4tOuVpvYQsB+GPQVLQ8JalvoUXvB3vuQWvnyNbieWf1CufNflf?=
 =?us-ascii?Q?koaKOndGLJvM+KoLI7M8aZ9knU1fHTI0o1oY9xWK1zNIEolpC+ivvRahS3zz?=
 =?us-ascii?Q?JzgWSP20DhL9CvuXXh8Mj3fXWgnfuriAAY2nfIeYuASJqTLP7zipWCdgNXpJ?=
 =?us-ascii?Q?xo1uKDmi4/YPZRyaLMsSLXeVQa0sx882h1z6PpWg9+jL+4lUVRQTNLeApZVe?=
 =?us-ascii?Q?/ZKR+sNlWrZ9YLGipPVfJEOKi7rkpwyuHnaJ3aKdPkovPLMiAv6T86HnvJjC?=
 =?us-ascii?Q?9S3tf3mKgEyAA7J4x9dMLA6NTFkCaRgtuLlKVpGbDD4ou7Yxh7GkulsMTROi?=
 =?us-ascii?Q?HRDNSn2KMvHvvTmmCDJvysV2Q8K6R7wg0TXw?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(7416014)(376014)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2025 09:49:13.0520
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7740e4fc-b0a5-4c9b-f465-08ddd27300bb
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF00002318.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6113

Function arch_do_domctl() is responsible for arch-specific domctl-op,
and the following functions shall be wrapped:
- xsm_domctl
For x86:
- hvm_save_one
- hvm_acpi_power_button
- hvm_acpi_sleep_button
- xsm_{bind,unbind}_pt_irq
- xsm_ioport_permission
- xsm_ioport_mapping
- hvm_debug_op
- mem_sharing_domctl
- make P2M_AUDIT depend on CONFIG_DOMCTL
- make PG_log_dirty depend on CONFIG_DOMCTL
- gdbsx_domctl
  - gdbsx_guest_meminfo
    - dgb_rw_guest_mem
      - dbg_hvm_va2mfn
      - dbg_pv_va2mfn
- make policy.o depend on CONFIG_DOMCTL
- do_vmtrace_op
  - hvm_vmtrace_control
    - hvm_funcs.vmtrace_control
  - hvm_vmtrace_get_option
    - hvm_funcs.vmtrace_get_option
  - hvm_vmtrace_set_option
    - hvm_funcs.vmtrace_set_option
For ARM:
- subarch_do_domctl

Also, remove all #ifdef CONFIG_DOMCTL-s in arch-specific domctl.c, as
we put the guardian in Makefile for the whole file.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
 xen/arch/arm/arm32/Makefile        |  2 +-
 xen/arch/arm/arm64/Makefile        |  2 +-
 xen/arch/arm/domctl.c              |  2 --
 xen/arch/x86/Makefile              |  2 +-
 xen/arch/x86/domctl.c              |  2 --
 xen/arch/x86/gdbsx.c               |  4 ++++
 xen/arch/x86/hvm/hvm.c             |  2 +-
 xen/arch/x86/hvm/pmtimer.c         |  2 ++
 xen/arch/x86/hvm/save.c            |  2 ++
 xen/arch/x86/hvm/vmx/vmx.c         |  6 ++++++
 xen/arch/x86/include/asm/hvm/hvm.h | 12 ++++++++++++
 xen/arch/x86/include/asm/p2m.h     |  2 +-
 xen/arch/x86/include/asm/paging.h  |  2 +-
 xen/arch/x86/mm/mem_sharing.c      |  2 ++
 xen/include/xsm/xsm.h              | 12 ++++++++----
 xen/lib/x86/Makefile               |  2 +-
 xen/xsm/dummy.c                    |  6 ++++--
 xen/xsm/flask/hooks.c              | 12 ++++++++----
 18 files changed, 55 insertions(+), 21 deletions(-)

diff --git a/xen/arch/arm/arm32/Makefile b/xen/arch/arm/arm32/Makefile
index 531168f58a..384aaea398 100644
--- a/xen/arch/arm/arm32/Makefile
+++ b/xen/arch/arm/arm32/Makefile
@@ -4,7 +4,7 @@ obj-$(CONFIG_MPU) += mpu/
 
 obj-y += cache.o
 obj-$(CONFIG_EARLY_PRINTK) += debug.o
-obj-y += domctl.o
+obj-$(CONFIG_DOMCTL) += domctl.o
 obj-y += domain.o
 obj-y += entry.o
 obj-y += head.o
diff --git a/xen/arch/arm/arm64/Makefile b/xen/arch/arm/arm64/Makefile
index 6491c5350b..f2f547df9a 100644
--- a/xen/arch/arm/arm64/Makefile
+++ b/xen/arch/arm/arm64/Makefile
@@ -6,7 +6,7 @@ obj-y += cache.o
 obj-y += cpufeature.o
 obj-$(CONFIG_HARDEN_BRANCH_PREDICTOR) += bpi.o
 obj-$(CONFIG_EARLY_PRINTK) += debug.o
-obj-y += domctl.o
+obj-$(CONFIG_DOMCTL) += domctl.o
 obj-y += domain.o
 obj-y += entry.o
 obj-y += head.o
diff --git a/xen/arch/arm/domctl.c b/xen/arch/arm/domctl.c
index d508ee2880..ad914c915f 100644
--- a/xen/arch/arm/domctl.c
+++ b/xen/arch/arm/domctl.c
@@ -184,7 +184,6 @@ long arch_do_domctl(struct xen_domctl *domctl, struct domain *d,
     }
 }
 
-#ifdef CONFIG_DOMCTL
 void arch_get_info_guest(struct vcpu *v, vcpu_guest_context_u c)
 {
     struct vcpu_guest_context *ctxt = c.nat;
@@ -200,7 +199,6 @@ void arch_get_info_guest(struct vcpu *v, vcpu_guest_context_u c)
     if ( !test_bit(_VPF_down, &v->pause_flags) )
         ctxt->flags |= VGCF_online;
 }
-#endif /* CONFIG_DOMCTL */
 
 /*
  * Local variables:
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 17f0e1dbc9..c48759650c 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -28,7 +28,7 @@ obj-y += delay.o
 obj-y += desc.o
 obj-bin-y += dmi_scan.init.o
 obj-y += domain.o
-obj-y += domctl.o
+obj-$(CONFIG_DOMCTL) += domctl.o
 obj-bin-y += dom0_build.init.o
 obj-y += domain_page.o
 obj-y += e820.o
diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c
index 29f9db89a1..156c74e07a 100644
--- a/xen/arch/x86/domctl.c
+++ b/xen/arch/x86/domctl.c
@@ -1367,7 +1367,6 @@ long arch_do_domctl(
     return ret;
 }
 
-#ifdef CONFIG_DOMCTL
 #ifdef CONFIG_COMPAT
 #define xen_vcpu_guest_context vcpu_guest_context
 #define fpu_ctxt fpu_ctxt.x
@@ -1526,7 +1525,6 @@ void arch_get_info_guest(struct vcpu *v, vcpu_guest_context_u c)
     c(vm_assist = d->vm_assist);
 #undef c
 }
-#endif /* CONFIG_DOMCTL */
 
 /*
  * Local variables:
diff --git a/xen/arch/x86/gdbsx.c b/xen/arch/x86/gdbsx.c
index 21442f5dff..df1a3ce9fb 100644
--- a/xen/arch/x86/gdbsx.c
+++ b/xen/arch/x86/gdbsx.c
@@ -23,6 +23,7 @@
 #include <asm/gdbsx.h>
 #include <asm/p2m.h>
 
+#ifdef CONFIG_DOMCTL
 typedef unsigned long dbgva_t;
 typedef unsigned char dbgbyte_t;
 
@@ -166,6 +167,7 @@ static int gdbsx_guest_mem_io(
 
     return iop->remain ? -EFAULT : 0;
 }
+#endif /* CONFIG_DOMCTL */
 
 void domain_pause_for_debugger(void)
 {
@@ -179,6 +181,7 @@ void domain_pause_for_debugger(void)
         send_global_virq(VIRQ_DEBUGGER);
 }
 
+#ifdef CONFIG_DOMCTL
 int gdbsx_domctl(struct domain *d, struct xen_domctl *domctl, bool *copyback)
 {
     struct vcpu *v;
@@ -245,6 +248,7 @@ int gdbsx_domctl(struct domain *d, struct xen_domctl *domctl, bool *copyback)
 
     return ret;
 }
+#endif /* CONFIG_DOMCTL */
 
 /*
  * Local variables:
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index f464f401aa..aca1e5ba69 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -5212,6 +5212,7 @@ long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) arg)
     return rc;
 }
 
+#ifdef CONFIG_DOMCTL
 int hvm_debug_op(struct vcpu *v, int32_t op)
 {
     int rc = 0;
@@ -5251,7 +5252,6 @@ int hvm_debug_op(struct vcpu *v, int32_t op)
     return rc;
 }
 
-#ifdef CONFIG_VM_EVENT
 void hvm_toggle_singlestep(struct vcpu *v)
 {
     ASSERT(atomic_read(&v->pause_count));
diff --git a/xen/arch/x86/hvm/pmtimer.c b/xen/arch/x86/hvm/pmtimer.c
index 87a7a01c9f..e4d0f001ff 100644
--- a/xen/arch/x86/hvm/pmtimer.c
+++ b/xen/arch/x86/hvm/pmtimer.c
@@ -56,6 +56,7 @@ static void pmt_update_sci(PMTState *s)
         hvm_isa_irq_deassert(s->vcpu->domain, SCI_IRQ);
 }
 
+#ifdef CONFIG_DOMCTL
 void hvm_acpi_power_button(struct domain *d)
 {
     PMTState *s = &d->arch.hvm.pl_time->vpmt;
@@ -81,6 +82,7 @@ void hvm_acpi_sleep_button(struct domain *d)
     pmt_update_sci(s);
     spin_unlock(&s->lock);
 }
+#endif /* CONFIG_DOMCTL */
 
 /* Set the correct value in the timer, accounting for time elapsed
  * since the last time we did that. */
diff --git a/xen/arch/x86/hvm/save.c b/xen/arch/x86/hvm/save.c
index 8ab6405706..ffaf731ddc 100644
--- a/xen/arch/x86/hvm/save.c
+++ b/xen/arch/x86/hvm/save.c
@@ -121,6 +121,7 @@ size_t hvm_save_size(struct domain *d)
     return sz;
 }
 
+#ifdef CONFIG_DOMCTL
 /*
  * Extract a single instance of a save record, by marshalling all records of
  * that type and copying out the one we need.
@@ -195,6 +196,7 @@ int hvm_save_one(struct domain *d, unsigned int typecode, unsigned int instance,
     xfree(ctxt.data);
     return rv;
 }
+#endif /* CONFIG_DOMCTL */
 
 int hvm_save(struct domain *d, hvm_domain_context_t *h)
 {
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index 9e4ad864fa..f562ab90b6 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -2577,6 +2577,7 @@ static bool cf_check vmx_get_pending_event(
     (RTIT_STATUS_FILTER_EN | RTIT_STATUS_CONTEXT_EN | RTIT_STATUS_TRIGGER_EN | \
      RTIT_STATUS_ERROR | RTIT_STATUS_STOPPED)
 
+#ifdef CONFIG_DOMCTL
 static int cf_check vmtrace_get_option(
     struct vcpu *v, uint64_t key, uint64_t *output)
 {
@@ -2685,6 +2686,7 @@ static int cf_check vmtrace_control(struct vcpu *v, bool enable, bool reset)
 
     return 0;
 }
+#endif /* CONFIG_DOMCTL */
 
 static int cf_check vmtrace_output_position(struct vcpu *v, uint64_t *pos)
 {
@@ -2873,10 +2875,14 @@ static struct hvm_function_table __initdata_cf_clobber vmx_function_table = {
     .altp2m_vcpu_update_vmfunc_ve = vmx_vcpu_update_vmfunc_ve,
     .altp2m_vcpu_emulate_ve = vmx_vcpu_emulate_ve,
     .altp2m_vcpu_emulate_vmfunc = vmx_vcpu_emulate_vmfunc,
+#ifdef CONFIG_DOMCTL
     .vmtrace_control = vmtrace_control,
+#endif
     .vmtrace_output_position = vmtrace_output_position,
+#ifdef CONFIG_DOMCTL
     .vmtrace_set_option = vmtrace_set_option,
     .vmtrace_get_option = vmtrace_get_option,
+#endif
     .vmtrace_reset = vmtrace_reset,
 
     .get_reg = vmx_get_reg,
diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/asm/hvm/hvm.h
index bd53fcf155..dd106bac42 100644
--- a/xen/arch/x86/include/asm/hvm/hvm.h
+++ b/xen/arch/x86/include/asm/hvm/hvm.h
@@ -236,10 +236,14 @@ struct hvm_function_table {
     int (*altp2m_vcpu_emulate_vmfunc)(const struct cpu_user_regs *regs);
 
     /* vmtrace */
+#ifdef CONFIG_DOMCTL
     int (*vmtrace_control)(struct vcpu *v, bool enable, bool reset);
+#endif
     int (*vmtrace_output_position)(struct vcpu *v, uint64_t *pos);
+#ifdef CONFIG_DOMCTL
     int (*vmtrace_set_option)(struct vcpu *v, uint64_t key, uint64_t value);
     int (*vmtrace_get_option)(struct vcpu *v, uint64_t key, uint64_t *value);
+#endif
     int (*vmtrace_reset)(struct vcpu *v);
 
     uint64_t (*get_reg)(struct vcpu *v, unsigned int reg);
@@ -740,6 +744,7 @@ static inline bool altp2m_vcpu_emulate_ve(struct vcpu *v)
     return false;
 }
 
+#ifdef CONFIG_DOMCTL
 static inline int hvm_vmtrace_control(struct vcpu *v, bool enable, bool reset)
 {
     if ( hvm_funcs.vmtrace_control )
@@ -747,6 +752,7 @@ static inline int hvm_vmtrace_control(struct vcpu *v, bool enable, bool reset)
 
     return -EOPNOTSUPP;
 }
+#endif
 
 /* Returns -errno, or a boolean of whether tracing is currently active. */
 static inline int hvm_vmtrace_output_position(struct vcpu *v, uint64_t *pos)
@@ -757,6 +763,7 @@ static inline int hvm_vmtrace_output_position(struct vcpu *v, uint64_t *pos)
     return -EOPNOTSUPP;
 }
 
+#ifdef CONFIG_DOMCTL
 static inline int hvm_vmtrace_set_option(
     struct vcpu *v, uint64_t key, uint64_t value)
 {
@@ -774,6 +781,7 @@ static inline int hvm_vmtrace_get_option(
 
     return -EOPNOTSUPP;
 }
+#endif
 
 static inline int hvm_vmtrace_reset(struct vcpu *v)
 {
@@ -938,16 +946,19 @@ static inline bool hvm_has_set_descriptor_access_exiting(void)
 }
 #endif /* CONFIG_VM_EVENT */
 
+#ifdef CONFIG_DOMCTL
 static inline int hvm_vmtrace_control(struct vcpu *v, bool enable, bool reset)
 {
     return -EOPNOTSUPP;
 }
+#endif
 
 static inline int hvm_vmtrace_output_position(struct vcpu *v, uint64_t *pos)
 {
     return -EOPNOTSUPP;
 }
 
+#ifdef CONFIG_DOMCTL
 static inline int hvm_vmtrace_set_option(
     struct vcpu *v, uint64_t key, uint64_t value)
 {
@@ -959,6 +970,7 @@ static inline int hvm_vmtrace_get_option(
 {
     return -EOPNOTSUPP;
 }
+#endif /* CONFIG_DOMCTL */
 
 static inline uint64_t hvm_get_reg(struct vcpu *v, unsigned int reg)
 {
diff --git a/xen/arch/x86/include/asm/p2m.h b/xen/arch/x86/include/asm/p2m.h
index 9c92f67443..e20c1a0d4a 100644
--- a/xen/arch/x86/include/asm/p2m.h
+++ b/xen/arch/x86/include/asm/p2m.h
@@ -20,7 +20,7 @@
 #include <asm/page.h>    /* for pagetable_t */
 
 /* Debugging and auditing of the P2M code? */
-#if !defined(NDEBUG) && defined(CONFIG_HVM)
+#if !defined(NDEBUG) && defined(CONFIG_HVM) && defined(CONFIG_DOMCTL)
 #define P2M_AUDIT     1
 #else
 #define P2M_AUDIT     0
diff --git a/xen/arch/x86/include/asm/paging.h b/xen/arch/x86/include/asm/paging.h
index 956b83215c..c35ef44fff 100644
--- a/xen/arch/x86/include/asm/paging.h
+++ b/xen/arch/x86/include/asm/paging.h
@@ -55,7 +55,7 @@
 #define PG_translate   0
 #define PG_external    0
 #endif
-#if defined(CONFIG_HVM)
+#if defined(CONFIG_HVM) && defined(CONFIG_DOMCTL)
 /* Enable log dirty mode */
 #define PG_log_dirty   (XEN_DOMCTL_SHADOW_ENABLE_LOG_DIRTY << PG_mode_shift)
 #else
diff --git a/xen/arch/x86/mm/mem_sharing.c b/xen/arch/x86/mm/mem_sharing.c
index 7858565429..74706da2f9 100644
--- a/xen/arch/x86/mm/mem_sharing.c
+++ b/xen/arch/x86/mm/mem_sharing.c
@@ -2317,6 +2317,7 @@ out:
     return rc;
 }
 
+#ifdef CONFIG_DOMCTL
 int mem_sharing_domctl(struct domain *d, struct xen_domctl_mem_sharing_op *mec)
 {
     int rc;
@@ -2334,6 +2335,7 @@ int mem_sharing_domctl(struct domain *d, struct xen_domctl_mem_sharing_op *mec)
 
     return rc;
 }
+#endif /* CONFIG_DOMCTL */
 
 void arch_dump_shared_mem_info(void)
 {
diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
index 6bbf3df702..86a1aa5d06 100644
--- a/xen/include/xsm/xsm.h
+++ b/xen/include/xsm/xsm.h
@@ -64,8 +64,8 @@ struct xsm_ops {
 #endif
 #ifdef CONFIG_DOMCTL
     int (*set_target)(struct domain *d, struct domain *e);
-#endif
     int (*domctl)(struct domain *d, unsigned int cmd, uint32_t ssidref);
+#endif
     int (*sysctl)(int cmd);
     int (*readconsole)(uint32_t clear);
 
@@ -115,9 +115,9 @@ struct xsm_ops {
     int (*map_domain_irq)(struct domain *d, int irq, const void *data);
     int (*unmap_domain_pirq)(struct domain *d);
     int (*unmap_domain_irq)(struct domain *d, int irq, const void *data);
+#ifdef CONFIG_DOMCTL
     int (*bind_pt_irq)(struct domain *d, struct xen_domctl_bind_pt_irq *bind);
     int (*unbind_pt_irq)(struct domain *d, struct xen_domctl_bind_pt_irq *bind);
-#ifdef CONFIG_DOMCTL
     int (*irq_permission)(struct domain *d, int pirq, uint8_t allow);
     int (*iomem_permission)(struct domain *d, uint64_t s, uint64_t e,
                             uint8_t allow);
@@ -196,10 +196,12 @@ struct xsm_ops {
     int (*update_va_mapping)(struct domain *d, struct domain *f,
                              l1_pgentry_t pte);
     int (*priv_mapping)(struct domain *d, struct domain *t);
+#ifdef CONFIG_DOMCTL
     int (*ioport_permission)(struct domain *d, uint32_t s, uint32_t e,
                              uint8_t allow);
     int (*ioport_mapping)(struct domain *d, uint32_t s, uint32_t e,
                           uint8_t allow);
+#endif
     int (*pmu_op)(struct domain *d, unsigned int op);
 #endif
     int (*dm_op)(struct domain *d);
@@ -273,13 +275,13 @@ static inline int xsm_set_target(
 {
     return alternative_call(xsm_ops.set_target, d, e);
 }
-#endif
 
 static inline int xsm_domctl(xsm_default_t def, struct domain *d,
                              unsigned int cmd, uint32_t ssidref)
 {
     return alternative_call(xsm_ops.domctl, d, cmd, ssidref);
 }
+#endif /* CONFIG_DOMCTL */
 
 static inline int xsm_sysctl(xsm_default_t def, int cmd)
 {
@@ -509,6 +511,7 @@ static inline int xsm_unmap_domain_irq(
     return alternative_call(xsm_ops.unmap_domain_irq, d, irq, data);
 }
 
+#ifdef CONFIG_DOMCTL
 static inline int xsm_bind_pt_irq(
     xsm_default_t def, struct domain *d, struct xen_domctl_bind_pt_irq *bind)
 {
@@ -521,7 +524,6 @@ static inline int xsm_unbind_pt_irq(
     return alternative_call(xsm_ops.unbind_pt_irq, d, bind);
 }
 
-#ifdef CONFIG_DOMCTL
 static inline int xsm_irq_permission(
     xsm_default_t def, struct domain *d, int pirq, uint8_t allow)
 {
@@ -759,6 +761,7 @@ static inline int xsm_priv_mapping(
     return alternative_call(xsm_ops.priv_mapping, d, t);
 }
 
+#ifdef CONFIG_DOMCTL
 static inline int xsm_ioport_permission(
     xsm_default_t def, struct domain *d, uint32_t s, uint32_t e, uint8_t allow)
 {
@@ -770,6 +773,7 @@ static inline int xsm_ioport_mapping(
 {
     return alternative_call(xsm_ops.ioport_mapping, d, s, e, allow);
 }
+#endif /* CONFIG_DOMCTL */
 
 static inline int xsm_pmu_op(
     xsm_default_t def, struct domain *d, unsigned int op)
diff --git a/xen/lib/x86/Makefile b/xen/lib/x86/Makefile
index 780ea05db1..77f2831e84 100644
--- a/xen/lib/x86/Makefile
+++ b/xen/lib/x86/Makefile
@@ -1,3 +1,3 @@
 obj-y += cpuid.o
 obj-y += msr.o
-obj-y += policy.o
+obj-$(CONFIG_DOMCTL) += policy.o
diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
index b5174e610b..04b9b4e579 100644
--- a/xen/xsm/dummy.c
+++ b/xen/xsm/dummy.c
@@ -26,8 +26,8 @@ static const struct xsm_ops __initconst_cf_clobber dummy_ops = {
 #endif
 #ifdef CONFIG_DOMCTL
     .set_target                    = xsm_set_target,
-#endif
     .domctl                        = xsm_domctl,
+#endif
 #ifdef CONFIG_SYSCTL
     .sysctl                        = xsm_sysctl,
     .readconsole                   = xsm_readconsole,
@@ -75,9 +75,9 @@ static const struct xsm_ops __initconst_cf_clobber dummy_ops = {
     .map_domain_irq                = xsm_map_domain_irq,
     .unmap_domain_pirq             = xsm_unmap_domain_pirq,
     .unmap_domain_irq              = xsm_unmap_domain_irq,
+#ifdef CONFIG_DOMCTL
     .bind_pt_irq                   = xsm_bind_pt_irq,
     .unbind_pt_irq                 = xsm_unbind_pt_irq,
-#ifdef CONFIG_DOMCTL
     .irq_permission                = xsm_irq_permission,
     .iomem_permission              = xsm_iomem_permission,
 #endif
@@ -149,8 +149,10 @@ static const struct xsm_ops __initconst_cf_clobber dummy_ops = {
     .mmuext_op                     = xsm_mmuext_op,
     .update_va_mapping             = xsm_update_va_mapping,
     .priv_mapping                  = xsm_priv_mapping,
+#ifdef CONFIG_DOMCTL
     .ioport_permission             = xsm_ioport_permission,
     .ioport_mapping                = xsm_ioport_mapping,
+#endif
     .pmu_op                        = xsm_pmu_op,
 #endif
     .dm_op                         = xsm_dm_op,
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index 254e1323e5..00c4ac94e6 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -669,7 +669,6 @@ static int cf_check flask_set_target(struct domain *d, struct domain *t)
                                  &dsec->target_sid);
     return rc;
 }
-#endif /* CONFIG_DOMCTL */
 
 static int cf_check flask_domctl(struct domain *d, unsigned int cmd,
                                  uint32_t ssidref)
@@ -861,6 +860,7 @@ static int cf_check flask_domctl(struct domain *d, unsigned int cmd,
         return avc_unknown_permission("domctl", cmd);
     }
 }
+#endif /* CONFIG_DOMCTL */
 
 #ifdef CONFIG_SYSCTL
 static int cf_check flask_sysctl(int cmd)
@@ -1082,6 +1082,7 @@ static int cf_check flask_unmap_domain_irq(
     return rc;
 }
 
+#ifdef CONFIG_DOMCTL
 static int cf_check flask_bind_pt_irq(
     struct domain *d, struct xen_domctl_bind_pt_irq *bind)
 {
@@ -1115,7 +1116,6 @@ static int cf_check flask_unbind_pt_irq(
     return current_has_perm(d, SECCLASS_RESOURCE, RESOURCE__REMOVE);
 }
 
-#ifdef CONFIG_DOMCTL
 static int cf_check flask_irq_permission(
     struct domain *d, int pirq, uint8_t access)
 {
@@ -1640,6 +1640,7 @@ static int cf_check flask_shadow_control(struct domain *d, uint32_t op)
 }
 #endif /* PG_log_dirty */
 
+#ifdef CONFIG_DOMCTL
 struct ioport_has_perm_data {
     uint32_t ssid;
     uint32_t dsid;
@@ -1695,6 +1696,7 @@ static int cf_check flask_ioport_mapping(
 {
     return flask_ioport_permission(d, start, end, access);
 }
+#endif /* CONFIG_DOMCTL */
 
 static int cf_check flask_mem_sharing_op(
     struct domain *d, struct domain *cd, int op)
@@ -1904,8 +1906,8 @@ static const struct xsm_ops __initconst_cf_clobber flask_ops = {
 #endif
 #ifdef CONFIG_DOMCTL
     .set_target = flask_set_target,
-#endif
     .domctl = flask_domctl,
+#endif
 #ifdef CONFIG_SYSCTL
     .sysctl = flask_sysctl,
     .readconsole = flask_readconsole,
@@ -1953,9 +1955,9 @@ static const struct xsm_ops __initconst_cf_clobber flask_ops = {
     .map_domain_irq = flask_map_domain_irq,
     .unmap_domain_pirq = flask_unmap_domain_pirq,
     .unmap_domain_irq = flask_unmap_domain_irq,
+#ifdef CONFIG_DOMCTL
     .bind_pt_irq = flask_bind_pt_irq,
     .unbind_pt_irq = flask_unbind_pt_irq,
-#ifdef CONFIG_DOMCTL
     .irq_permission = flask_irq_permission,
     .iomem_permission = flask_iomem_permission,
 #endif
@@ -2028,8 +2030,10 @@ static const struct xsm_ops __initconst_cf_clobber flask_ops = {
     .mmuext_op = flask_mmuext_op,
     .update_va_mapping = flask_update_va_mapping,
     .priv_mapping = flask_priv_mapping,
+#ifdef CONFIG_DOMCTL
     .ioport_permission = flask_ioport_permission,
     .ioport_mapping = flask_ioport_mapping,
+#endif
     .pmu_op = flask_pmu_op,
 #endif
     .dm_op = flask_dm_op,
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sun Aug 03 09:50:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 Aug 2025 09:50:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068400.1432451 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiVMd-0003uU-Lg; Sun, 03 Aug 2025 09:50:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068400.1432451; Sun, 03 Aug 2025 09:50: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 1uiVMd-0003sW-9U; Sun, 03 Aug 2025 09:50:47 +0000
Received: by outflank-mailman (input) for mailman id 1068400;
 Sun, 03 Aug 2025 09:50:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f/pN=2P=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1uiVKi-0005hH-Ap
 for xen-devel@lists.xenproject.org; Sun, 03 Aug 2025 09:48:48 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on2060f.outbound.protection.outlook.com
 [2a01:111:f403:200a::60f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0a134efc-704f-11f0-b897-0df219b8e170;
 Sun, 03 Aug 2025 11:48:43 +0200 (CEST)
Received: from BYAPR11CA0065.namprd11.prod.outlook.com (2603:10b6:a03:80::42)
 by SA3PR12MB7903.namprd12.prod.outlook.com (2603:10b6:806:307::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.18; Sun, 3 Aug
 2025 09:48:31 +0000
Received: from SJ1PEPF0000231B.namprd03.prod.outlook.com
 (2603:10b6:a03:80:cafe::ae) by BYAPR11CA0065.outlook.office365.com
 (2603:10b6:a03:80::42) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.20 via Frontend Transport; Sun,
 3 Aug 2025 09:48:30 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF0000231B.mail.protection.outlook.com (10.167.242.232) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Sun, 3 Aug 2025 09:48:29 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) 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; Sun, 3 Aug 2025 04:48:25 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0a134efc-704f-11f0-b897-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=G0mpicNE+o958B61mbOoh7olUsugO5FEdZe7HOOR5YX6lYgdOhBOSYBzu0AxkKjxqEkjkCMtXCfMLkfwGBEA9+6KU4mhWBMoiNULgnMvbPqImQ/VQ+oFyqOLvfejrRCeH8XeeKmL+TAVSIT5Mex1hn+GIqlOp+5D4tWuosvaYb14hZgVmdTHzYNAb37a9eastFcuP4LCw7Q3GjGFLbtLbP9AcP0EaHd3XKS3Xyhc7VO5xnT5hNq/wQaiA0Hie/ewez3ECAZA0BOP+j63AZJtl9VOSEppKBzSbDb4yCzMPfHRd634ymyvIsuMVRvjgfWLfZj6FzrVIea6ZoL29fZCNA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=XhIqHQV3Qb/Ebi1H+4XtFjW5VqOztqqTnpXGMtgBrfE=;
 b=blRx8Uy7b2Aa9caPHkIRHCl50eEHwYfgeM6HBqcO+CqhIe7FmGUIl1bU+OY6851xPud52PhzfpUGot2n0Bo3AnxfJOIy7F75umYbfQj3lOcAdt6TjgvgYG90UulGrumd3IH/FErOKT/qPz4v0PDDPS+a0UeqKNaOjj2KiKxVUT3saVA2xSRhSON0ZX8iBhcj6jvK3LohFF3iDzFSZGINRhrsymES6adASUzDsltxXl51/2N1T/3LlrtcP88AYfM3XUNfp+DWFKLyKdPbELhfD3mYBNMrUxMaZ9hOcX4GUMI0GopS0HjmBJXQ5kYSespEyt2p5K41N16w3M+ckiSjLg==
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=XhIqHQV3Qb/Ebi1H+4XtFjW5VqOztqqTnpXGMtgBrfE=;
 b=k55rodgNnaLCsowUKOgv5xip9uOfS2ns7Mb+hJLO+BrD99xEVHiQZZyR3h8H8DDN/TytzzB73efNdcMpdR+DqO8RkC7etJcFs2d+88sv7+CRVeC6wJBzLx1zSsLioWqZaODcPUrMimvZ5UqHWG6Bg2eyEXq3ulSGJFfeUKDALm8=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.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>, Shawn Anastasio <sanastasio@raptorengineering.com>,
	Tamas K Lengyel <tamas@tklengyel.com>, Alexandru Isaila
	<aisaila@bitdefender.com>, Petre Pircalabu <ppircalabu@bitdefender.com>
Subject: [PATCH v1 09/25] xen/domctl: wrap around XEN_DOMCTL_destroydomain
Date: Sun, 3 Aug 2025 17:47:22 +0800
Message-ID: <20250803094738.3625269-10-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250803094738.3625269-1-Penny.Zheng@amd.com>
References: <20250803094738.3625269-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: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF0000231B:EE_|SA3PR12MB7903:EE_
X-MS-Office365-Filtering-Correlation-Id: 4c5869eb-f513-4f26-8017-08ddd272e700
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|7416014|82310400026|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?XvDi+oMbUl6xSi59Q6FcEV4RKl33gk6ZoIsJSLqy14IyMfRHoX1bD1L+su50?=
 =?us-ascii?Q?gLcoLBQsb8v6Ou/LkuFhHPFIiV4ppblnXwkfps4BsR88cOaJJgVRFk6/rF0X?=
 =?us-ascii?Q?w1OAPocqLyQe6JgM03syY7RTBoIonbj1cpPXF7cBfeUXCzrmGUUUSbdSM1Dc?=
 =?us-ascii?Q?k+mY7Ezp3G5F4Fkp2oh8ZGTKwb0sezECfY7LZDirsmF9yNPBd5wCcYlcFpYU?=
 =?us-ascii?Q?PqvbBvRucY/uwCZmkH4ozKK1HPReeP8UbSkCvcSdX3pi23kmyhrWeazm3kVN?=
 =?us-ascii?Q?Z/+xXvdxafnj4EMjH9sRy8FWASm7PoUisH8npP7EMOynkJnKJ3c5qC3dWF0M?=
 =?us-ascii?Q?bONtC3hN94OJvdjsahMHQtBzUv8CmgpdtoC9xzia5I8kW7aGquC3n0VRGUig?=
 =?us-ascii?Q?rRnVbt8Id/Cs5O/enp6m4LgalDE28Z6EivCx1hdI+I0zcaKJvdrsT3rzIAt1?=
 =?us-ascii?Q?yRwE8FC29fJuXhktDrv+aTndWUoOc1/D2Qk1rwkxVogmjP9ssTMq+SDS4CPG?=
 =?us-ascii?Q?BDl0dxrxz61lNgQFnOTEj4sZ1kPSUGEDKzRnQjTUGu/MoAcvHMpLKQRp3ZJ1?=
 =?us-ascii?Q?Kfpjx9rSzB9+wR6kCzo398M2kKmvy3J8UgX4RI3q0xFJtTtlrIXYhL9H2Q0y?=
 =?us-ascii?Q?w89dbd1DF0DdKU/yv3/Pd9V9Eg3NZ4d/GCIvzxmwazdgC4aUiyPpqGsSEACB?=
 =?us-ascii?Q?DdEljroqq9IrzmaaxU+Op6oBBqYs+gjNxRfHQ1yoYXdecKER0kcsAv86L3w8?=
 =?us-ascii?Q?JExmTX8JyscrMf3j0bvtv4Z1tV7Xw9eVV53+ROjsxpJXmke2R3cY8FyQXS9L?=
 =?us-ascii?Q?u3Vj+swHU4XB8QQ1zhdJHPRGNN4G+ojNkRHwCdqw1KBLFfZJk1V9yuwrb7/b?=
 =?us-ascii?Q?LWssYh4t3APxru7jDVNWaZ6+8Y56rSKWsQ8znDdZrXVeDXK+cvAMbV5hfF/3?=
 =?us-ascii?Q?E/YmrWIEPD+legphfuiGMoSDrWBsHNgg8rGQBNgVC0zYlCsACxmp8d9ekp6r?=
 =?us-ascii?Q?638UmjE2b+yDcJCgpyxSOXIuIssqWsyZwB8Ya9A+OvHnTicgvBbvsC/xmhGM?=
 =?us-ascii?Q?J9nUAn4AUoEeHSUCaK8/Yr/RUXCBKTVPH5izwL2PKupi+5CLBx0v0EZGwAHO?=
 =?us-ascii?Q?MzgG2jUKzWL1qwCHa/d0EwogznFNhcQT/PJvMZivBnVz70NHbJhB1g2gZA5J?=
 =?us-ascii?Q?yAAjHaN7HXG8bLtanojRyTPyucE6AyfTB/M4fLaohkdLQ3xJEtswgYalJ7W0?=
 =?us-ascii?Q?O2UaodBgMwDNhJ4A3ZsKM1xW3i7cnoNuK55y/RBG7jygLH2i9/bPKZo5PzJ8?=
 =?us-ascii?Q?SklUyw6OxpTPOfELySbkCs6/Aci5RFfgjP95awHKR/5u11GkuNfc7/TDaWNp?=
 =?us-ascii?Q?xiiG9QHrFFIfN1P1wQWI4xamgrmJYQOUTbkzBxtCuSmjzizWpD/106Vo18BB?=
 =?us-ascii?Q?jpslokiSVHZVbPu47dnqs9Q/ervNb8/C4/zSQzwi2nAbubuo6U7P68YhIUWa?=
 =?us-ascii?Q?EjHcJO/xfwCxDDuplgk19dDmMfzmQYoPme1+?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(7416014)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2025 09:48:29.8808
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4c5869eb-f513-4f26-8017-08ddd272e700
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF0000231B.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB7903

Function domain_kill() is responsible for killing domain and relinquish
domain-held resources. Tracking its calling chain, the following
functions shall also be wrapped:
- domain_relinquish_resource
  - pci_release_device
  - relinquish_shared_pages
  - paging_teardown
    - p2m_pod_empty_cache
  - relinquish_memory
  - pit_deinit
  - iommu_release_dt_devices
  - tee_relinquish_resources
    - ffa_relinquish_resources/optee_relinquish_resources
  - relinquish_p2m_mapping
  - p2m_clear_root_pages
- vm_event_cleanup

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
 xen/arch/arm/domain.c                 | 3 +++
 xen/arch/arm/include/asm/tee/tee.h    | 2 ++
 xen/arch/arm/mmu/p2m.c                | 4 ++++
 xen/arch/arm/mpu/p2m.c                | 2 ++
 xen/arch/arm/tee/ffa.c                | 4 ++++
 xen/arch/arm/tee/optee.c              | 4 ++++
 xen/arch/arm/tee/tee.c                | 2 ++
 xen/arch/ppc/stubs.c                  | 2 ++
 xen/arch/x86/domain.c                 | 2 ++
 xen/arch/x86/emul-i8254.c             | 2 ++
 xen/arch/x86/mm/mem_sharing.c         | 2 ++
 xen/arch/x86/mm/p2m-pod.c             | 2 ++
 xen/arch/x86/mm/p2m.c                 | 2 ++
 xen/arch/x86/mm/paging.c              | 2 ++
 xen/common/domain.c                   | 2 ++
 xen/common/vm_event.c                 | 2 ++
 xen/drivers/passthrough/device_tree.c | 2 ++
 xen/drivers/passthrough/pci.c         | 2 ++
 18 files changed, 43 insertions(+)

diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index 4124d201d1..e55ff966d2 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -990,6 +990,7 @@ int arch_vcpu_reset(struct vcpu *v)
     return 0;
 }
 
+#ifdef CONFIG_DOMCTL
 static int relinquish_memory(struct domain *d, struct page_list_head *list)
 {
     struct page_info *page, *tmp;
@@ -1135,6 +1136,8 @@ int domain_relinquish_resources(struct domain *d)
 
 #undef PROGRESS
 
+#endif /* CONFIG_DOMCTL */
+
 void arch_dump_domain_info(struct domain *d)
 {
     p2m_dump_info(d);
diff --git a/xen/arch/arm/include/asm/tee/tee.h b/xen/arch/arm/include/asm/tee/tee.h
index 0169fd746b..dc08e7e0ba 100644
--- a/xen/arch/arm/include/asm/tee/tee.h
+++ b/xen/arch/arm/include/asm/tee/tee.h
@@ -40,12 +40,14 @@ struct tee_mediator_ops {
     int (*domain_teardown)(struct domain *d);
     void (*free_domain_ctx)(struct domain *d);
 
+#ifdef CONFIG_DOMCTL
     /*
      * Called during domain destruction to relinquish resources used
      * by mediator itself. This function can return -ERESTART to indicate
      * that it does not finished work and should be called again.
      */
     int (*relinquish_resources)(struct domain *d);
+#endif
 
     /* Handle SMCCC call for current domain. */
     bool (*handle_call)(struct cpu_user_regs *regs);
diff --git a/xen/arch/arm/mmu/p2m.c b/xen/arch/arm/mmu/p2m.c
index 51abf3504f..4b13867fa2 100644
--- a/xen/arch/arm/mmu/p2m.c
+++ b/xen/arch/arm/mmu/p2m.c
@@ -1243,6 +1243,7 @@ static void p2m_invalidate_table(struct p2m_domain *p2m, mfn_t mfn)
     p2m->need_flush = true;
 }
 
+#ifdef CONFIG_DOMCTL
 /*
  * The domain will not be scheduled anymore, so in theory we should
  * not need to flush the TLBs. Do it for safety purpose.
@@ -1262,6 +1263,7 @@ void p2m_clear_root_pages(struct p2m_domain *p2m)
 
     p2m_write_unlock(p2m);
 }
+#endif /* CONFIG_DOMCTL */
 
 /*
  * Invalidate all entries in the root page-tables. This is
@@ -1556,6 +1558,7 @@ int p2m_init(struct domain *d)
     return 0;
 }
 
+#ifdef CONFIG_DOMCTL
 /*
  * The function will go through the p2m and remove page reference when it
  * is required. The mapping will be removed from the p2m.
@@ -1626,6 +1629,7 @@ int relinquish_p2m_mapping(struct domain *d)
 
     return rc;
 }
+#endif /* CONFIG_DOMCTL */
 
 /*
  * Clean & invalidate RAM associated to the guest vCPU.
diff --git a/xen/arch/arm/mpu/p2m.c b/xen/arch/arm/mpu/p2m.c
index f7fb58ab6a..e8c5665ab9 100644
--- a/xen/arch/arm/mpu/p2m.c
+++ b/xen/arch/arm/mpu/p2m.c
@@ -57,10 +57,12 @@ bool p2m_resolve_translation_fault(struct domain *d, gfn_t gfn)
 
 void p2m_flush_vm(struct vcpu *v) {}
 
+#ifdef CONFIG_DOMCTL
 int relinquish_p2m_mapping(struct domain *d)
 {
     return 0;
 }
+#endif /* CONFIG_DOMCTL */
 
 void p2m_domain_creation_finished(struct domain *d) {}
 
diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 3bbdd7168a..bb9b50932c 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -434,10 +434,12 @@ static void ffa_free_domain_ctx(struct domain *d)
     XFREE(d->arch.tee);
 }
 
+#ifdef CONFIG_DOMCTL
 static int ffa_relinquish_resources(struct domain *d)
 {
     return 0;
 }
+#endif /* CONFIG_DOMCTL */
 
 static void ffa_init_secondary(void)
 {
@@ -559,7 +561,9 @@ static const struct tee_mediator_ops ffa_ops =
     .domain_init = ffa_domain_init,
     .domain_teardown = ffa_domain_teardown,
     .free_domain_ctx = ffa_free_domain_ctx,
+#ifdef CONFIG_DOMCTL
     .relinquish_resources = ffa_relinquish_resources,
+#endif
     .handle_call = ffa_handle_call,
 };
 
diff --git a/xen/arch/arm/tee/optee.c b/xen/arch/arm/tee/optee.c
index 5151bd90ed..8d91df4e23 100644
--- a/xen/arch/arm/tee/optee.c
+++ b/xen/arch/arm/tee/optee.c
@@ -632,6 +632,7 @@ static void free_optee_shm_buf_pg_list(struct optee_domain *ctx,
                  cookie);
 }
 
+#ifdef CONFIG_DOMCTL
 static int optee_relinquish_resources(struct domain *d)
 {
     struct arm_smccc_res resp;
@@ -693,6 +694,7 @@ static int optee_relinquish_resources(struct domain *d)
 
     return 0;
 }
+#endif /* CONFIG_DOMCTL */
 
 #define PAGELIST_ENTRIES_PER_PAGE                       \
     ((OPTEE_MSG_NONCONTIG_PAGE_SIZE / sizeof(u64)) - 1)
@@ -1727,7 +1729,9 @@ static const struct tee_mediator_ops optee_ops =
     .probe = optee_probe,
     .domain_init = optee_domain_init,
     .domain_teardown = optee_domain_teardown,
+#ifdef CONFIG_DOMCTL
     .relinquish_resources = optee_relinquish_resources,
+#endif
     .handle_call = optee_handle_call,
 };
 
diff --git a/xen/arch/arm/tee/tee.c b/xen/arch/arm/tee/tee.c
index 3f65e45a78..c97b19cd6f 100644
--- a/xen/arch/arm/tee/tee.c
+++ b/xen/arch/arm/tee/tee.c
@@ -60,6 +60,7 @@ int tee_domain_teardown(struct domain *d)
     return cur_mediator->ops->domain_teardown(d);
 }
 
+#ifdef CONFIG_DOMCTL
 int tee_relinquish_resources(struct domain *d)
 {
     if ( !cur_mediator )
@@ -67,6 +68,7 @@ int tee_relinquish_resources(struct domain *d)
 
     return cur_mediator->ops->relinquish_resources(d);
 }
+#endif /* CONFIG_DOMCTL */
 
 uint16_t tee_get_type(void)
 {
diff --git a/xen/arch/ppc/stubs.c b/xen/arch/ppc/stubs.c
index b2b97c6eb7..0d8563f11f 100644
--- a/xen/arch/ppc/stubs.c
+++ b/xen/arch/ppc/stubs.c
@@ -263,10 +263,12 @@ int arch_vcpu_reset(struct vcpu *v)
     BUG_ON("unimplemented");
 }
 
+#ifdef CONFIG_DOMCTL
 int domain_relinquish_resources(struct domain *d)
 {
     BUG_ON("unimplemented");
 }
+#endif /* CONFIG_DOMCTL */
 
 void arch_dump_domain_info(struct domain *d)
 {
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 13ccaf1c79..a0d650cb86 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -2235,6 +2235,7 @@ void sync_vcpu_execstate(struct vcpu *v)
            read_atomic(&v->dirty_cpu) != dirty_cpu);
 }
 
+#ifdef CONFIG_DOMCTL
 static int relinquish_memory(
     struct domain *d, struct page_list_head *list, unsigned long type)
 {
@@ -2559,6 +2560,7 @@ int domain_relinquish_resources(struct domain *d)
 
     return 0;
 }
+#endif /* CONFIG_DOMCTL */
 
 void arch_dump_domain_info(struct domain *d)
 {
diff --git a/xen/arch/x86/emul-i8254.c b/xen/arch/x86/emul-i8254.c
index 144aa168a3..bb9718bb97 100644
--- a/xen/arch/x86/emul-i8254.c
+++ b/xen/arch/x86/emul-i8254.c
@@ -651,6 +651,7 @@ void pit_init(struct domain *d)
     pit_reset(d);
 }
 
+#ifdef CONFIG_DOMCTL
 void pit_deinit(struct domain *d)
 {
     PITState *pit = domain_vpit(d);
@@ -664,6 +665,7 @@ void pit_deinit(struct domain *d)
         destroy_periodic_time(&pit->pt0);
     }
 }
+#endif /* CONFIG_DOMCTL */
 
 /*
  * Local variables:
diff --git a/xen/arch/x86/mm/mem_sharing.c b/xen/arch/x86/mm/mem_sharing.c
index da28266ef0..7858565429 100644
--- a/xen/arch/x86/mm/mem_sharing.c
+++ b/xen/arch/x86/mm/mem_sharing.c
@@ -1391,6 +1391,7 @@ int __mem_sharing_unshare_page(struct domain *d,
     return rc;
 }
 
+#ifdef CONFIG_DOMCTL
 int relinquish_shared_pages(struct domain *d)
 {
     int rc = 0;
@@ -1447,6 +1448,7 @@ int relinquish_shared_pages(struct domain *d)
     p2m_unlock(p2m);
     return rc;
 }
+#endif /* CONFIG_DOMCTL */
 
 static int range_share(struct domain *d, struct domain *cd,
                        struct mem_sharing_op_range *range)
diff --git a/xen/arch/x86/mm/p2m-pod.c b/xen/arch/x86/mm/p2m-pod.c
index 05633fe2ac..98a846bb55 100644
--- a/xen/arch/x86/mm/p2m-pod.c
+++ b/xen/arch/x86/mm/p2m-pod.c
@@ -366,6 +366,7 @@ void p2m_pod_get_mem_target(const struct domain *d, xen_pod_target_t *target)
     pod_unlock(p2m);
 }
 
+#ifdef CONFIG_DOMCTL
 int p2m_pod_empty_cache(struct domain *d)
 {
     struct p2m_domain *p2m = p2m_get_hostp2m(d);
@@ -409,6 +410,7 @@ int p2m_pod_empty_cache(struct domain *d)
     unlock_page_alloc(p2m);
     return p2m->pod.count ? -ERESTART : 0;
 }
+#endif /* CONFIG_DOMCTL */
 
 int
 p2m_pod_offline_or_broken_hit(struct page_info *p)
diff --git a/xen/arch/x86/mm/p2m.c b/xen/arch/x86/mm/p2m.c
index b9a7c2dc53..c2840131ad 100644
--- a/xen/arch/x86/mm/p2m.c
+++ b/xen/arch/x86/mm/p2m.c
@@ -2088,6 +2088,7 @@ int xenmem_add_to_physmap_one(
     return rc;
 }
 
+#ifdef CONFIG_DOMCTL
 /*
  * Remove foreign mappings from the p2m, as that drops the page reference taken
  * when mapped.
@@ -2151,6 +2152,7 @@ int relinquish_p2m_mapping(struct domain *d)
 
     return rc;
 }
+#endif /* CONFIG_DOMCTL */
 
 /*
  * Local variables:
diff --git a/xen/arch/x86/mm/paging.c b/xen/arch/x86/mm/paging.c
index 1216a181c3..3da99ad371 100644
--- a/xen/arch/x86/mm/paging.c
+++ b/xen/arch/x86/mm/paging.c
@@ -768,6 +768,7 @@ void paging_vcpu_teardown(struct vcpu *v)
         shadow_vcpu_teardown(v);
 }
 
+#ifdef CONFIG_DOMCTL
 /* Call when destroying a domain */
 int paging_teardown(struct domain *d)
 {
@@ -794,6 +795,7 @@ int paging_teardown(struct domain *d)
 
     return rc;
 }
+#endif /* CONFIG_DOMCTL */
 
 /* Call once all of the references to the domain have gone away */
 void paging_final_teardown(struct domain *d)
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 604217d782..be722c9f09 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -1222,6 +1222,7 @@ int rcu_lock_live_remote_domain_by_id(domid_t dom, struct domain **d)
     return 0;
 }
 
+#ifdef CONFIG_DOMCTL
 int domain_kill(struct domain *d)
 {
     int rc = 0;
@@ -1272,6 +1273,7 @@ int domain_kill(struct domain *d)
 
     return rc;
 }
+#endif /* CONFIG_DOMCTL */
 
 
 void __domain_crash(struct domain *d)
diff --git a/xen/common/vm_event.c b/xen/common/vm_event.c
index 1666ff615f..102745117e 100644
--- a/xen/common/vm_event.c
+++ b/xen/common/vm_event.c
@@ -559,6 +559,7 @@ static void cf_check mem_sharing_notification(struct vcpu *v, unsigned int port)
 }
 #endif
 
+#ifdef CONFIG_DOMCTL
 /* Clean up on domain destruction */
 void vm_event_cleanup(struct domain *d)
 {
@@ -589,6 +590,7 @@ void vm_event_cleanup(struct domain *d)
     }
 #endif
 }
+#endif /* CONFIG_DOMCTL */
 
 int vm_event_domctl(struct domain *d, struct xen_domctl_vm_event_op *vec)
 {
diff --git a/xen/drivers/passthrough/device_tree.c b/xen/drivers/passthrough/device_tree.c
index f5850a2607..704910de3d 100644
--- a/xen/drivers/passthrough/device_tree.c
+++ b/xen/drivers/passthrough/device_tree.c
@@ -108,6 +108,7 @@ int iommu_dt_domain_init(struct domain *d)
     return 0;
 }
 
+#ifdef CONFIG_DOMCTL
 int iommu_release_dt_devices(struct domain *d)
 {
     const struct domain_iommu *hd = dom_iommu(d);
@@ -136,6 +137,7 @@ int iommu_release_dt_devices(struct domain *d)
 
     return 0;
 }
+#endif /* CONFIG_DOMCTL */
 
 static int iommu_dt_xlate(struct device *dev,
                           const struct dt_phandle_args *iommu_spec,
diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
index 3edcfa8a04..41638b71d6 100644
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -945,6 +945,7 @@ static int deassign_device(struct domain *d, uint16_t seg, uint8_t bus,
     return ret;
 }
 
+#ifdef CONFIG_DOMCTL
 int pci_release_devices(struct domain *d)
 {
     int combined_ret;
@@ -1003,6 +1004,7 @@ int pci_release_devices(struct domain *d)
 
     return combined_ret;
 }
+#endif /* CONFIG_DOMCTL */
 
 #define PCI_CLASS_BRIDGE_HOST    0x0600
 #define PCI_CLASS_BRIDGE_PCI     0x0604
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sun Aug 03 09:50:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 Aug 2025 09:50:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068406.1432476 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiVMg-0004lf-JV; Sun, 03 Aug 2025 09:50:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068406.1432476; Sun, 03 Aug 2025 09:50: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 1uiVMg-0004l4-5E; Sun, 03 Aug 2025 09:50:50 +0000
Received: by outflank-mailman (input) for mailman id 1068406;
 Sun, 03 Aug 2025 09:50:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f/pN=2P=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1uiVKt-0005K3-23
 for xen-devel@lists.xenproject.org; Sun, 03 Aug 2025 09:48:59 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20623.outbound.protection.outlook.com
 [2a01:111:f403:2414::623])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 132a664d-704f-11f0-a321-13f23c93f187;
 Sun, 03 Aug 2025 11:48:58 +0200 (CEST)
Received: from MW4P222CA0028.NAMP222.PROD.OUTLOOK.COM (2603:10b6:303:114::33)
 by DM6PR12MB4450.namprd12.prod.outlook.com (2603:10b6:5:28e::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.19; Sun, 3 Aug
 2025 09:48:50 +0000
Received: from SJ1PEPF0000231E.namprd03.prod.outlook.com
 (2603:10b6:303:114:cafe::d1) by MW4P222CA0028.outlook.office365.com
 (2603:10b6:303:114::33) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.18 via Frontend Transport; Sun,
 3 Aug 2025 09:48:50 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF0000231E.mail.protection.outlook.com (10.167.242.230) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Sun, 3 Aug 2025 09:48:49 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) 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; Sun, 3 Aug 2025 04:48:46 -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>
X-Inumbo-ID: 132a664d-704f-11f0-a321-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=DJCCcFQKtd/M/hJJOBghEGzWqpyMhumLwgPSb8bOiQqNBCf956s/B9msExdCfTmiDNCHmRplEx2YjOmtnp1rxv9+8BYtRKQnjb550NXhDSOXjkkTFEjO1aLIA++yQx9iXsmmhK954RbbNneuKd+JtYnp2dRBxU7IuRvqmDUjFQ9ZFMZ2KvnBSH2YvkMcdX4CP5RcccYJiCxzYQuNYHVrURBEa4BgkL1j98cIwo/sdC2Yl9l5lVOj+qMyAv56OfKfYklgkQROSAKKE6f5Td8M8NJQlum3j5JzYTQ9DSVhjvCMGb2C5JKB/FVAkOlezD6NSZXS+ogPi7JmVeNgdP2TgA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+h9q/PP5jXzGM6xOoOoRa7u5M0CRIcPBia1p5+URbJg=;
 b=yi4WVS/GYmwmQNBViuG0HGPCmVfhgQmk8pdq1JjReF+GVPUceU/4HdWmxPP91d6WqfacCVOgk0oSPN2oncPwdSb161BHXFlNoL90s+pgi9Wg9gQZwWqgLpd7eAVEILNOJS1MJd+/PyT5TKeHi1mX893MCROTcMqVN6LItdmqh+fIQ8FElODxBPbLLrNeCASUpUWGQl4lAmc17pRODfPRVK+Oj6xpWU9op5JBdlYxr6GUtrjQimR+kqdYoz6ND+9NEqYEVWv1v0hkX2fqY3YcwgDeJJSzrMTMfLd44LqkpE0ppiNlzlc43UTeo/uERR8EsEf9ZbA4nPeM66tkC+8rWw==
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=+h9q/PP5jXzGM6xOoOoRa7u5M0CRIcPBia1p5+URbJg=;
 b=5j7NdK7wf1te6WduJC2jw/jhtfMkWjHSdB4KJjuviE5T4FhMLRK/YBptyIoPybeZqk7+rs5Dd/QQXMGMiGyBdAtd4Otn4OWoONmCPzxlDqEqg/7rTrS1d5dOFwvEMi3UIs8KsDcJXOV0o73gCxs06w5iLs0HLjynI8RDdWqbDsw=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, =?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 v1 17/25] xen: add stub for XEN_DOMCTL_getdomaininfo
Date: Sun, 3 Aug 2025 17:47:30 +0800
Message-ID: <20250803094738.3625269-18-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250803094738.3625269-1-Penny.Zheng@amd.com>
References: <20250803094738.3625269-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: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF0000231E:EE_|DM6PR12MB4450:EE_
X-MS-Office365-Filtering-Correlation-Id: 2f44547e-348b-4287-c7b3-08ddd272f2e8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?hH3cN1bSLziJoOeZlSoapnFhBCJAAfYoBmsa75u+PvFVvPIwWfHwWrY0Fx6a?=
 =?us-ascii?Q?0Gt3+cjJrLgUKo6PzGKuwOoT0vv1+lXvWLc22vDenJY0wWryV4Sa8+PHZzZT?=
 =?us-ascii?Q?m+XvEf42FB/u2sV6lQ90asbNHu3YKHVb2R1jtqb3wmUgZPK+URRu52S32Cpg?=
 =?us-ascii?Q?SmLK8iYHQf1nelhQJaAC68QqrnvHvQ9/gj+yz+EsmhIUGXQfS1okIHTwjjxi?=
 =?us-ascii?Q?64+fhf1gjdtmPgsgu4z0jbpbk0N+Fd5l5csAg2EhgcOnifX0DTrJp5PqQxTM?=
 =?us-ascii?Q?St9IscFq9TEjR/sj8vmdSJCzkJcxF26ntV2q8aSSmaBhu/d17NppclvMO9Gl?=
 =?us-ascii?Q?AiYa4h78GRu4LHcSbKb24kSsfK6db7tHksgfmIeihrSNtcnpk4T1BZgk36X9?=
 =?us-ascii?Q?YHbevkd2fsZ4KlglRJhcjraxExJoyP7PYu1cQGexP7PHJza/RzFw6O8op4Xk?=
 =?us-ascii?Q?t2nuAY/PosjH5Loi1RgjJld/avD2TVMhnNEtWZ4UpS7nMXXAmZ76LOLGHbGP?=
 =?us-ascii?Q?tJ3mOPDjTOiUAsKPuWsCdEecx3MqzaIJvsFm1TeHCxktfqAhwJ7OmwimK8NU?=
 =?us-ascii?Q?3iBvwc2/WF8mhgnTJ3tqf+jpYW05X/MVP5ff+R9ffR3Hh1iBd1boybZ8RrzS?=
 =?us-ascii?Q?BXQj3mKPpD1bRTA5xkiGfWMlnw1giHDn99fI8O17yDAo8w1LUtdbT2H2TUxT?=
 =?us-ascii?Q?L5mzK+nlRyHtVcctwdGOGHW9nOQLEsi1vvQzWPn63MKFRPj5cgl4ximP6Iwe?=
 =?us-ascii?Q?s4aG6GDNAw11qf8/JjUZ+vGwC5K85Tf0P5TgJH4XCCiH6zFuiBjbew/6ERez?=
 =?us-ascii?Q?2JjEzsQKRGF/w0Oquhjl+dmQpJm2NiMfBh7miCozwv5rmvb4oHQL8lD5fOnS?=
 =?us-ascii?Q?9tGpUFlgRdoV6MlO4BjQBf22wBcqk7sl0SlYN5/IL/FPkUuSxfL2nprTOgmL?=
 =?us-ascii?Q?UajJcdl0dUX3A4UejA6D5tRtP4/zjj7cr+BdoL8g27rt1jAmvvaZa187zu8T?=
 =?us-ascii?Q?NoTDQbkMEus0yw2HokfDU4gq4/AlmFztxK939tKiUeYwWXIL45qmy9QGrK6V?=
 =?us-ascii?Q?x5BbS8LkABPQm6iXLbBe5YKNKf4LISNlX1jRpmtW/vWcyo/U3Imc8g1TnVcC?=
 =?us-ascii?Q?iuX4chB1dk8a1eQe4V1HWNHKIplI+UQteRUpinz/kRYCbaBiB7hS2Lwjto3f?=
 =?us-ascii?Q?jeIkLpyi9SA1kRzC6uspxhIPlmuifnaQci1aYWrvIBCWOSCf/JKUcKRky3w/?=
 =?us-ascii?Q?gF3mZBIv7IAdlKi2Ts8Nh/SwQLUxV/XkVbGCErkLZvRvJ2ZAXnyUJxAS11me?=
 =?us-ascii?Q?/muW+O3rWJyJQks0lGYs8suJkXD9jTxO9LiarGx9d/arxTxtvyCsFWLuNH82?=
 =?us-ascii?Q?I7nE4UeIXOY+799lWyUNsJ2sk5ENU8nXTu4fY96RO4udcbLMdIwDVmh4lQqZ?=
 =?us-ascii?Q?sK5yOuXurK/g1iqPv5gaXcvF9Prtfm98P+eV0vC/d1JU2KFlb0RooSGj8Aql?=
 =?us-ascii?Q?mbKnkLyGzqwgZZbH1r/lQzNHyfNPSNzwO1Ls?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2025 09:48:49.8566
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2f44547e-348b-4287-c7b3-08ddd272f2e8
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF0000231E.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4450

Function getdomaininfo() is designed for XEN_DOMCTL_getdomaininfo domctl-op
to get per-domain info in userspace, so it shall be guarded with CONFIG_DOMCTL.
We need to provide stub for getdomaininfo(), as it still could be invoked
by XEN_SYSCTL_getdomaininfolist sysctl-op when CONFIG_DOMCTL=n.
The same logic goes for xsm_getdomaininfo() too.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
 xen/include/xen/domain.h | 5 +++++
 xen/include/xsm/xsm.h    | 6 +++++-
 xen/xsm/dummy.c          | 2 +-
 xen/xsm/flask/hooks.c    | 4 ++--
 4 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
index b45ac91760..55befdb256 100644
--- a/xen/include/xen/domain.h
+++ b/xen/include/xen/domain.h
@@ -31,8 +31,13 @@ int vcpu_up(struct vcpu *v);
 
 void setup_system_domains(void);
 
+#ifdef CONFIG_DOMCTL
 struct xen_domctl_getdomaininfo;
 void getdomaininfo(struct domain *d, struct xen_domctl_getdomaininfo *info);
+#else
+static inline void getdomaininfo(struct domain *d,
+                                 struct xen_domctl_getdomaininfo *info) {}
+#endif /* CONFIG_DOMCTL */
 void arch_get_domain_info(const struct domain *d,
                           struct xen_domctl_getdomaininfo *info);
 
diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
index 55f8d0903e..db98496869 100644
--- a/xen/include/xsm/xsm.h
+++ b/xen/include/xsm/xsm.h
@@ -55,8 +55,8 @@ struct xsm_ops {
     void (*security_domaininfo)(struct domain *d,
                                 struct xen_domctl_getdomaininfo *info);
     int (*domain_create)(struct domain *d, uint32_t ssidref);
-    int (*getdomaininfo)(struct domain *d);
 #ifdef CONFIG_DOMCTL
+    int (*getdomaininfo)(struct domain *d);
     int (*domctl_scheduler_op)(struct domain *d, int op);
 #endif
 #ifdef CONFIG_SYSCTL
@@ -240,7 +240,11 @@ static inline int xsm_domain_create(
 
 static inline int xsm_getdomaininfo(xsm_default_t def, struct domain *d)
 {
+#ifdef CONFIG_DOMCTL
     return alternative_call(xsm_ops.getdomaininfo, d);
+#else
+    return -EOPNOTSUPP;
+#endif
 }
 
 static inline int xsm_get_domain_state(xsm_default_t def, struct domain *d)
diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
index cd5358dd1e..b7eb061e9b 100644
--- a/xen/xsm/dummy.c
+++ b/xen/xsm/dummy.c
@@ -17,8 +17,8 @@ static const struct xsm_ops __initconst_cf_clobber dummy_ops = {
     .set_system_active             = xsm_set_system_active,
     .security_domaininfo           = xsm_security_domaininfo,
     .domain_create                 = xsm_domain_create,
-    .getdomaininfo                 = xsm_getdomaininfo,
 #ifdef CONFIG_DOMCTL
+    .getdomaininfo                 = xsm_getdomaininfo,
     .domctl_scheduler_op           = xsm_domctl_scheduler_op,
 #endif
 #ifdef CONFIG_SYSCTL
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index 2975d2906f..9f829aa53b 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -604,12 +604,12 @@ static int cf_check flask_domain_create(struct domain *d, uint32_t ssidref)
     return rc;
 }
 
+#ifdef CONFIG_DOMCTL
 static int cf_check flask_getdomaininfo(struct domain *d)
 {
     return current_has_perm(d, SECCLASS_DOMAIN, DOMAIN__GETDOMAININFO);
 }
 
-#ifdef CONFIG_DOMCTL
 static int cf_check flask_domctl_scheduler_op(struct domain *d, int op)
 {
     switch ( op )
@@ -1895,8 +1895,8 @@ static const struct xsm_ops __initconst_cf_clobber flask_ops = {
     .set_system_active = flask_set_system_active,
     .security_domaininfo = flask_security_domaininfo,
     .domain_create = flask_domain_create,
-    .getdomaininfo = flask_getdomaininfo,
 #ifdef CONFIG_DOMCTL
+    .getdomaininfo = flask_getdomaininfo,
     .domctl_scheduler_op = flask_domctl_scheduler_op,
 #endif
 #ifdef CONFIG_SYSCTL
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sun Aug 03 09:50:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 Aug 2025 09:50:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068407.1432480 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiVMh-0004rS-4p; Sun, 03 Aug 2025 09:50:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068407.1432480; Sun, 03 Aug 2025 09:50: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 1uiVMg-0004ol-Is; Sun, 03 Aug 2025 09:50:50 +0000
Received: by outflank-mailman (input) for mailman id 1068407;
 Sun, 03 Aug 2025 09:50:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f/pN=2P=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1uiVLE-0005hH-Vc
 for xen-devel@lists.xenproject.org; Sun, 03 Aug 2025 09:49:20 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20629.outbound.protection.outlook.com
 [2a01:111:f403:2414::629])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1f71360c-704f-11f0-b897-0df219b8e170;
 Sun, 03 Aug 2025 11:49:19 +0200 (CEST)
Received: from BY3PR05CA0007.namprd05.prod.outlook.com (2603:10b6:a03:254::12)
 by MW6PR12MB8960.namprd12.prod.outlook.com (2603:10b6:303:23e::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.18; Sun, 3 Aug
 2025 09:49:14 +0000
Received: from SJ1PEPF00002318.namprd03.prod.outlook.com
 (2603:10b6:a03:254:cafe::10) by BY3PR05CA0007.outlook.office365.com
 (2603:10b6:a03:254::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9009.10 via Frontend Transport; Sun,
 3 Aug 2025 09:49:14 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF00002318.mail.protection.outlook.com (10.167.242.228) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Sun, 3 Aug 2025 09:49:14 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) 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; Sun, 3 Aug 2025 04:49:09 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1f71360c-704f-11f0-b897-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=omLfdGw7d2lSPMugLx9+uCTo8rtZ3J6yphdWm7PlennD0rmfvfb9U1OvUeWLxnirAbqboxhjPU5dXxbjgRoPvVxttRcLrI6pKEUUE66lRN/fDE3ACEkHx/L/GxIgGPd+TQFb7rDoQHFFuL2qNJWuPGAHCdk30PPAzYMfvrx71BbAeKxRuUq2KLLGJgVl3cKO+RwX0P/sFo5mfHb0el4rYhgKc8jDpTb8PKqV9yIgrso7HbPzNdSU0XeKqbp3GwiURkXbx5r8nQPOmZYwasa+2nS5RZLTu94CsSWgrQ/c9oDCwgcbJ9u39Bx+gzocuV+qHSE8I0Mm29BZ3joqvT2b6A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8+rKpnCb4beuXolnCadHRn5o8RnowLF7DFrmJ1YESoc=;
 b=bJXNbP+7uv/zV8B1RvhV1FRNtdDTqtbnHnzgOknftrJUrDeiP9FdO/E82A8iUYd3IG2HXEVLumUDx8CPuMeTklurZSxzyukMHo83d13k5BT/RFXzII3qmN3mRDcxgTnZMldXH7gjdZ4mRhERyieFNe6NVtD0nVLlTloo9zQVzEm1ZlbQ/R1rtCJhDIq/dUe/ZIb21YWWjA2PUQhXSDN8wU1nyJjwpjHjmlETKmfjTM6S/pbA81qK/yJOd3dtbIuGTw0ItAUdz5YHACy1yUOjV/4eupLIoqffpBLX5HHdu/6Nz4edavtk7fECOXqIOqnR+IGHrUgGzw+6BHBW0USNtQ==
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=8+rKpnCb4beuXolnCadHRn5o8RnowLF7DFrmJ1YESoc=;
 b=0QIibXCZjMDpVCtUYdscoonWZzoXEqThwxRgs01yUBVX7h28+Y7JQvyluy5mHg3kdrb29YERhwC9g66PXmOSrhIiVgPSEGqABxa5cTLHn6yib779jhgpT/TfidFrocf9A9LBkurXy86ayD7LYZsQ2Xh2SOqgws559FZAHOQHyzU=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 25/25] xen/domctl: wrap around domctl hypercall
Date: Sun, 3 Aug 2025 17:47:38 +0800
Message-ID: <20250803094738.3625269-26-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250803094738.3625269-1-Penny.Zheng@amd.com>
References: <20250803094738.3625269-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: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF00002318:EE_|MW6PR12MB8960:EE_
X-MS-Office365-Filtering-Correlation-Id: e210ab8b-0961-47d4-0682-08ddd2730189
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|82310400026|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?NSggJO7DJuJ4bYVxP683JoP5+dTN3h2HQpNPMyrVeesxNE1Lws+FSu5D9HxP?=
 =?us-ascii?Q?JidEhZUD/WVrdPLTFbtLWHSE1tLI08EXrorR9Jlsej6P2CUJXzA98O9KUii1?=
 =?us-ascii?Q?Zxo5DZt4WPUvoCCpTU8IUvtB+isMSeZhmPugsXTkRLTDTMKsbFU9GLKiSpcf?=
 =?us-ascii?Q?eEzA0SzJtBWR07YIh2cB+vzzVs+QnUzas2prhgdGKyfVWGP+tXs+YLiTkB/g?=
 =?us-ascii?Q?DPkkGwzubG0CsOeNX0rN9GfMy6nYQkjzpz55+uyWOfJTipQIwUbWtEsdGn43?=
 =?us-ascii?Q?LXrCMucTtLa8wm35ILTUdL5JdEEezLgmN+vLOZFPl9hSeJlxwNgxdhGh+9Jz?=
 =?us-ascii?Q?3kt0UVz0T0717Hs/nC7Xa7FJfr9YYmv1hvn6JMf5U7OOJUGTneQGCe5EZVrR?=
 =?us-ascii?Q?rlnRBLM+A5wZri2DU3PSKI4I/bqwNyZnL8q21aMLVhjmSqIku5VlSPMx56e4?=
 =?us-ascii?Q?2G6EXq9RuHHso8mObDiCfyCvMYaeOwLHaw/dH12AIb1SCH1iWFsPhE9rP6rN?=
 =?us-ascii?Q?wdPkX06Y1n6Oz6h1FhKD93hFnI1rbAsRTj6DYVWK/hxNNN+H1+j/AvcXfWE/?=
 =?us-ascii?Q?1Lj7syFpz531slYpkovw8wz6yHNfZVYmTcVCS6w/Uah8fLISkPad5lfFwIeC?=
 =?us-ascii?Q?6FfOWy4DyFXCi055OPRKShvtFr/cTbreiXzK+p5eoVFXlw4nQf9VLDixlz/7?=
 =?us-ascii?Q?pBjVSFRVVCMc9hE3xgJypIvEWOXpkHmvgB88mVFn0b+x7Y/uDkgErFe00TkV?=
 =?us-ascii?Q?zp5PBYKNmI2ydJU7YumBM95C2l9zSLILVMpAJiYvmi0ketSXvrLQpZ449LAc?=
 =?us-ascii?Q?AZhNRq/Q7A6UTKiw7idwqu5g4hPCZVXSs7rET71BpaJV6R22onwNGzRB65qM?=
 =?us-ascii?Q?T/DTs18GXGDejCDj1BL40ABS/bnapGe7cDH6sMiD+T3W/i4ih95xY+fS2lIG?=
 =?us-ascii?Q?pvZvLnZAH2dv7xtFgm/mmspFLFoVZNvBWQNMxFoerjlSYClYyEsEOe5eWUa5?=
 =?us-ascii?Q?kd8EPH9rU7VcppWCWqgEBDiOsxt5/kIOPdHWhsV430K7+Vu0QWPcHejaGEEA?=
 =?us-ascii?Q?bKQ1e7xhL0IrCYze6romGAsxsbxVyVwk6qD3T58k/BBroPZ2IYwPzT/eKmL/?=
 =?us-ascii?Q?f262hFfVZyuJcymxARte23gC+G8h2BbpEDhIJ/4dJodSpoHgOc33+eG/dueK?=
 =?us-ascii?Q?WZ/Im1+QbEnVD8F2GCIHeAMxZCGGKzYFnrkp7ysR9r+k9T9/SrtcXVRefdH8?=
 =?us-ascii?Q?oV9ddc62ew8VpvevqQRWigAdwe6Lnu0qFpqnT8p4mNx2mG5ekmetzarob0eq?=
 =?us-ascii?Q?difdBQ+uhdMgELD4Sv2Hef9tKucT0BRB8IY5pRYdGe4DqPJT8p5VWoqA+m0q?=
 =?us-ascii?Q?g+u/CSa7e+ZGZgsv9qA4phQODwyYXZ0vN1SQCzmaWe3UFrczKcuci/srYTf7?=
 =?us-ascii?Q?KPMd4fcIg0ChCerTh5+kHdddIzFmjuUBqvKdiLHibLRReCPUG7KHHX1AXPZl?=
 =?us-ascii?Q?N+kRoG2ZLSLgE+44JWrJjIWVAjrmm2KVNKHQ?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2025 09:49:14.3958
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e210ab8b-0961-47d4-0682-08ddd2730189
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF00002318.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW6PR12MB8960

Wrap domctl hypercall def and domctl.o with CONFIG_DOMCTL
We need to make DOMCTL with prompt back, add help info and set default
value as y. We shall at least provide "# CONFIG_DOMCTL is not set" in preset
configs for PV shim on x86.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
 xen/arch/x86/configs/pvshim_defconfig | 1 +
 xen/common/Kconfig                    | 5 ++++-
 xen/common/Makefile                   | 2 +-
 xen/include/hypercall-defs.c          | 4 ++++
 4 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/configs/pvshim_defconfig b/xen/arch/x86/configs/pvshim_defconfig
index c58c29adb0..c100b84fa8 100644
--- a/xen/arch/x86/configs/pvshim_defconfig
+++ b/xen/arch/x86/configs/pvshim_defconfig
@@ -25,3 +25,4 @@ CONFIG_EXPERT=y
 # CONFIG_DEBUG is not set
 # CONFIG_GDBSX is not set
 # CONFIG_SYSCTL is not set
+# CONFIG_DOMCTL is not set
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 24a7b83af9..31db3d448b 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -629,7 +629,10 @@ config SYSCTL
 
 config DOMCTL
 	bool "Enable domctl hypercall"
-	def_bool y
+	default y
+	help
+	  This option shall only be disabled on some dom0less systems, or
+	  PV shim on x86, to reduce Xen footprint.
 
 endmenu
 
diff --git a/xen/common/Makefile b/xen/common/Makefile
index 756ddf52c3..fc83a45b60 100644
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -11,7 +11,7 @@ obj-$(filter-out $(CONFIG_X86),$(CONFIG_ACPI)) += device.o
 obj-$(CONFIG_DEVICE_TREE_PARSE) += device-tree/
 obj-$(CONFIG_IOREQ_SERVER) += dm.o
 obj-y += domain.o
-obj-y += domctl.o
+obj-$(CONFIG_DOMCTL) += domctl.o
 obj-y += event_2l.o
 obj-y += event_channel.o
 obj-$(CONFIG_EVTCHN_FIFO) += event_fifo.o
diff --git a/xen/include/hypercall-defs.c b/xen/include/hypercall-defs.c
index c70f745ac2..ccc38e5e22 100644
--- a/xen/include/hypercall-defs.c
+++ b/xen/include/hypercall-defs.c
@@ -197,7 +197,9 @@ dm_op(domid_t domid, unsigned int nr_bufs, xen_dm_op_buf_t *bufs)
 #ifdef CONFIG_SYSCTL
 sysctl(xen_sysctl_t *u_sysctl)
 #endif
+#ifdef CONFIG_DOMCTL
 domctl(xen_domctl_t *u_domctl)
+#endif
 #if PG_log_dirty
 paging_domctl_cont(xen_domctl_t *u_domctl)
 #endif
@@ -280,7 +282,9 @@ hvm_op                             do       do       do       do       do
 #ifdef CONFIG_SYSCTL
 sysctl                             do       do       do       do       do
 #endif
+#ifdef CONFIG_DOMCTL
 domctl                             do       do       do       do       do
+#endif
 #ifdef CONFIG_KEXEC
 kexec_op                           compat   do       -        -        -
 #endif
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sun Aug 03 09:50:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 Aug 2025 09:50:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068410.1432490 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiVMi-0005Jg-Py; Sun, 03 Aug 2025 09:50:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068410.1432490; Sun, 03 Aug 2025 09:50: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 1uiVMi-0005I4-JL; Sun, 03 Aug 2025 09:50:52 +0000
Received: by outflank-mailman (input) for mailman id 1068410;
 Sun, 03 Aug 2025 09:50:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f/pN=2P=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1uiVKy-0005hH-7C
 for xen-devel@lists.xenproject.org; Sun, 03 Aug 2025 09:49:04 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20619.outbound.protection.outlook.com
 [2a01:111:f403:2412::619])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 155e1c43-704f-11f0-b897-0df219b8e170;
 Sun, 03 Aug 2025 11:49:02 +0200 (CEST)
Received: from SJ0PR03CA0267.namprd03.prod.outlook.com (2603:10b6:a03:3a0::32)
 by DS7PR12MB6144.namprd12.prod.outlook.com (2603:10b6:8:98::8) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8989.18; Sun, 3 Aug 2025 09:48:56 +0000
Received: from SJ1PEPF0000231C.namprd03.prod.outlook.com
 (2603:10b6:a03:3a0:cafe::48) by SJ0PR03CA0267.outlook.office365.com
 (2603:10b6:a03:3a0::32) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.19 via Frontend Transport; Sun,
 3 Aug 2025 09:48:55 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF0000231C.mail.protection.outlook.com (10.167.242.233) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Sun, 3 Aug 2025 09:48:55 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) 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; Sun, 3 Aug 2025 04:48: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>
X-Inumbo-ID: 155e1c43-704f-11f0-b897-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qwi/1JIilJ/I+fYlk1YYQ7u4jun7K2iAKHUjb3r460YqeWxxZfqBHFeluIfvQpnnxeums5EdnJQ4gnAXSMRkS5kUjd+SJd8RZNSteRbnBccWYXBvDsOtnAIeFTVUyVbnBJvQBanQByfRQkYR4B0wFvrbSCqvUINsZVY126n7tG5q2Vzk333Z+QmWrETjyCG9yNy+VLihHGjucf9DCfi59+CbL0Qnm76a6dJepOxF8K9L3jFhdAre/1ArxB2fb+f0OMtAyDwVVCV8CpYI37CO6sXSaTN3Yh444F9ngl2+y0TUpS+zT3zyY1tuJ02ZGTP1URmuseW4cBALwzDho/g5tQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=SkYdDzP8GNEvmLPt9pWU8qcnGzXOWDKR8gYNHnsWjrQ=;
 b=TRoVtTFUN3thKDa5xpYMvKQ4zsj+ty+FWq5UVednIdXTNJfTPsQCNzzX4wjHEBRVphE9OmPZ9niENWbI+EYwKSvAnyiKRp/ZBYFpljoAj4j4FwsUkzpEiQJmV0HiU/S24P6X9af3/WupLPGR2qsHdo7SMM4Yk+gsDmH9kT0Xsun0lxz4VgprDmkW0U/rAXBm+eSxZbbQL4MuJmGTpOqGTIuZxdsuhdQ4TLdUijXEV5LAKlfs7NShHReDj6r8Z7/NfnBXUoY8/BigrYTEkSrr03srJQ+70K1vECopxpvcPVUqgKufuw+7eTt6pmfqojW4QmXPhHZE5WyZnsNSyySzbw==
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=SkYdDzP8GNEvmLPt9pWU8qcnGzXOWDKR8gYNHnsWjrQ=;
 b=NXtE8CYR5eiWZXv25k114P5oSO5mVrmfusK8jN/o4zGGsPPmmV0IyEtdjU4E8f2vkNJC0GxTKibg0JtMdUd5IY5ho/+P+48ztAiIK2JfiWLP1RfgmIBuvF9uFKJ/Rz7K3EJ4KP7zJfWpK9svz/syroR7+wIerz+OgwQ0EXn9YAQ=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 19/25] xen: make CONFIG_VM_EVENT depend on DOMCTL
Date: Sun, 3 Aug 2025 17:47:32 +0800
Message-ID: <20250803094738.3625269-20-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250803094738.3625269-1-Penny.Zheng@amd.com>
References: <20250803094738.3625269-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: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF0000231C:EE_|DS7PR12MB6144:EE_
X-MS-Office365-Filtering-Correlation-Id: 5ab5d1a9-e408-48c8-61e3-08ddd272f670
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?oBULuB2hZsIyGgYxntJr+Z3C3hg/zzL1mZLYa2MDUy4/bfD+U8g3PuCVqjJC?=
 =?us-ascii?Q?Wj8NNmtabT92Pt/jCbG0i9rtTBncNJBuxziTsjoi6NbxLiXhleVb4kvJhTHR?=
 =?us-ascii?Q?1t12uOp7X4kHnJmWMXGCPN0hk8YQ9vlNKam9lnLR9rSDeqijoUcfz6ydEIJS?=
 =?us-ascii?Q?tPY3dW4fMOa8Bu9j2uRYfalNr8FJZiEJbxOrEdWZdNeKEqUUkwnriq6gKhSa?=
 =?us-ascii?Q?1QeZawr+TVurE7wkJZry1Ow8intdoUqSmtq6HpVr0KGzP1A+Ab4j3BXrnHy+?=
 =?us-ascii?Q?ONzuc5WfrKQpIaq9NUCId8XAmBOGhmFCOX5lOQ4ISyxz2V7paJfsKn3Yiu1b?=
 =?us-ascii?Q?CJokV9R7QVJC6iYqdPlJNMrZP2KoRzCDwNxJe4t1DZX6BOvcyExzAPjyoamg?=
 =?us-ascii?Q?n9Yv1uwloC0hHq1mL1lHCHGwDjg//8u++04U6SY7VHbaiClUBWvIO4cvzzKL?=
 =?us-ascii?Q?IcJBtOfKMCYzlFhIQJJxVKhx1RdBNMta2UJBlOF78rpZJV6fOzgKoL2j9MD8?=
 =?us-ascii?Q?SrJxVOqpXy5IMY3Yr5n3qipgdzXzadmDrX0/bsDaTmLHG630pXL2Ox3ygcfn?=
 =?us-ascii?Q?J+jNsQ4ZZxKPlqLFszknsdP2OaUXUL4+8DJCCAz8zf/7VZSYKHy8uVZHoKRF?=
 =?us-ascii?Q?r7LQM9d59MoOAqvaQe2V441pal/2301d25LKCcVmc5AMKTuJ78MnPin1cRw0?=
 =?us-ascii?Q?Ncvx2kbd7AdK4QVGoF1j6eu4oas0hHY3JFhfMz6aebmu45LNMGoJwYQIQLkm?=
 =?us-ascii?Q?4KpjZQjfmZ6qZ0C+BPaNzCsUF5EiSSp2uNTq1nNexLY0aob6W+Bugs2TkkXQ?=
 =?us-ascii?Q?XjwESIojzUGmvLmf6f66lBXLfrhifu4pe08QUuKDc6ho7yiaRHe3wqlXTDPF?=
 =?us-ascii?Q?TE3tDyGZhWJPaUoDQWLbYXOSogER3dUCNR0MjMrNNtR90/tdv5PpKUMldjip?=
 =?us-ascii?Q?S4fxLWcY6Wbe3HjoODlatRVJF0hVHZ/I+eCbc4oh9KBwxFsV928CoNfPNpff?=
 =?us-ascii?Q?a+r82ylONPgBZczmfSDyWumsH3Z30HSn/VDd8KAzPT7IN+U+eXr2uBGhe1Hr?=
 =?us-ascii?Q?LfxuSgyEbTsJXErGa8MZHfht5Nd5FVbH8RMwHjlJ7EEqUDamhnqEucbis4E/?=
 =?us-ascii?Q?dowC7wb55KB2/fRMKFn3Wkb9KBKnyidI/NlP/6AH72hAseITenw4nMf8Zk3U?=
 =?us-ascii?Q?CI87k/ByWxpa7f978H8ifJWGqK6PkkTNijYPFcFaq7CQ/997NSEqQ0mTi+tP?=
 =?us-ascii?Q?Z+aYIUNS03Eg1RvyTbX7k7Ak54SWb8c3TkHtIwV/vA5BZD6D1/Op/Fbq1LC1?=
 =?us-ascii?Q?RbjbFp9cHeeQkcbyppqYuWmgUCk2Wctu/hPVaVJYTUIgTpILxQByIxf4AAnw?=
 =?us-ascii?Q?/CYUrW4TSHjGst8HJMTgUzKLaNrW7d3xUo1OuqQgU02lpXLs9OEP9wTc0BeO?=
 =?us-ascii?Q?p7ydbaPVYVQSpwk83g26bG3LFmsd4DQ2aS56dveqtHIbv932cfWCn1NHswio?=
 =?us-ascii?Q?UQdFvo+N+bCX/OlNHCmvkspuPCMrvrYuXBTh?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(376014)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2025 09:48:55.7797
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5ab5d1a9-e408-48c8-61e3-08ddd272f670
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF0000231C.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB6144

VM event could only be enabled/disabled via vm_event domctl-op, so
CONFIG_VM_EVENT shall depend on CONFIG_DOMCTL

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
 xen/common/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index bf1850c154..24a7b83af9 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -145,7 +145,7 @@ config MEM_ACCESS_ALWAYS_ON
 config VM_EVENT
 	def_bool MEM_ACCESS_ALWAYS_ON
 	prompt "Memory Access and VM events" if !MEM_ACCESS_ALWAYS_ON
-	depends on HVM
+	depends on HVM && DOMCTL
 	help
 
 	  Framework to configure memory access types for guests and receive
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sun Aug 03 09:50:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 Aug 2025 09:50:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068419.1432503 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiVMl-0005oR-G6; Sun, 03 Aug 2025 09:50:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068419.1432503; Sun, 03 Aug 2025 09:50: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 1uiVMl-0005nM-3Z; Sun, 03 Aug 2025 09:50:55 +0000
Received: by outflank-mailman (input) for mailman id 1068419;
 Sun, 03 Aug 2025 09:50:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f/pN=2P=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1uiVKz-0005hH-AE
 for xen-devel@lists.xenproject.org; Sun, 03 Aug 2025 09:49:05 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on2061c.outbound.protection.outlook.com
 [2a01:111:f403:2415::61c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 162fb05f-704f-11f0-b897-0df219b8e170;
 Sun, 03 Aug 2025 11:49:03 +0200 (CEST)
Received: from BYAPR21CA0028.namprd21.prod.outlook.com (2603:10b6:a03:114::38)
 by CY3PR12MB9703.namprd12.prod.outlook.com (2603:10b6:930:102::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.20; Sun, 3 Aug
 2025 09:48:58 +0000
Received: from SJ1PEPF0000231A.namprd03.prod.outlook.com
 (2603:10b6:a03:114:cafe::e3) by BYAPR21CA0028.outlook.office365.com
 (2603:10b6:a03:114::38) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9031.2 via Frontend Transport; Sun, 3
 Aug 2025 09:48:58 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF0000231A.mail.protection.outlook.com (10.167.242.231) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Sun, 3 Aug 2025 09:48:58 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) 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; Sun, 3 Aug 2025 04:48: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>
X-Inumbo-ID: 162fb05f-704f-11f0-b897-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fC1OHj1cEdST+Sem+H/jGhJ/X/yidKNipd7iiDwyBGIobZmgq6oovEvKAlua7DjAYeGRMsyMZNJfHon5ZEhfQ57q4VLYT3dMDqFn5f1UNTwf5EOou0lyQ4umu1uCQiUxZaq698yX96e6DDVNSSlcS0vbiIgW2E1Z4lac8H7ehlOO61Qema0FXuD+iynhp+sv+LtirEb4unTcCZIh23chvLgnlLlSg1y49P4ZsdGIBslm8ClY+vnFaZvzPVofEXgNlmG6B9V2zJEfFq6aJS6CPNrl8F6TJ9mROD6dKEE/Ogkdtp/pHoCQSiCD+5D5mOvy1ExrKfgjPS9I+q4pFyESTQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=QxBVVuM9AFCNC1071z+SXo53e0F+nIHP1SBsQrWMLKg=;
 b=IJ3XW5phwL533XiKaSkIw1CMjebW/luFPHSNjQGCCcbhO3LnLf19WGIVXvs3VL0VOoMxFGMF93NQlJ9D0Sfu+oHk6xZkcWoL547BhCqSXD9qGnC9y9u/7mUMRp8OtKrvHTid1llmCzDKmXtWPoT1+Eua24XdpJgeHA2ledRN43MthaISwOc3a2bhwD4Ejj5VP6Vq4cFciP3x3vUAAhdiE8IX/xVdUbbZi/0lULrjFyMfmjOrUcypa6L/mA63PeMdj18zNF2fcBft5dQ1cHB1qXp/HfBS3Tdt+UKe13jBXgvyEKcrK8paXa6TaDlw6DN0u0Y2sGTIL28LwEJPTn7Ckw==
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=QxBVVuM9AFCNC1071z+SXo53e0F+nIHP1SBsQrWMLKg=;
 b=GGtkZP1h9KC59XMD9VfCYmndLSnSr4elVuGEhWoMck79Pc+SrbLwNnrwbwUxb03bbXLtr0ti65Zk1rvWE284RHTSO6k4/QfLT9HxraR7sEbAKrEoJ3xr5U0Z+hXAwfS2zZ1Qiy2wpBW2Uegb7jGLgtnnZW7qjZp/FRRS1TP6/KQ=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 20/25] xen/domctl: wrap around XEN_DOMCTL_set_virq_handler
Date: Sun, 3 Aug 2025 17:47:33 +0800
Message-ID: <20250803094738.3625269-21-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250803094738.3625269-1-Penny.Zheng@amd.com>
References: <20250803094738.3625269-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: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF0000231A:EE_|CY3PR12MB9703:EE_
X-MS-Office365-Filtering-Correlation-Id: 9c46e3e9-4a44-4a30-1aa0-08ddd272f814
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?Bzv1aLL0QRQT8x3cWbCO/sHIR7hFmbx0/YNtAGVqivZdEaUi/OIpcZPhBdbY?=
 =?us-ascii?Q?hFU8kNGYm2rTwg5wvCWpKCyYPAtpIi64TPBuhAyMO73BDV5xf2Yg6qEEdbIx?=
 =?us-ascii?Q?hHkMWWtgd63QzIWC+pWU3IQvHB69SvCUMAchUzj+J0Vmw8d5tp/Mj8WeODVB?=
 =?us-ascii?Q?6XsSGcD3LAy9ZEGeU4ct4NoLtFgAi4On6p5hjfhhPo7NTEN6cNyxfjpEKNPX?=
 =?us-ascii?Q?6oNLC88ds/+4FAwJ7/ULwx/IwuZfBRJ90OQoNa3Q6FS9XhXT9BbQvwmqpRek?=
 =?us-ascii?Q?NJ7xtmUTESCQ85PKStunvwysaow8dBXiVkDV06dYI/Rfc+vqKcwXzGT9oze/?=
 =?us-ascii?Q?ditKxSIHIB4Rrbw4C9V1w8vv5xqCGi2HGysHoBFzdRfB6p5QRVczAp6g0lgh?=
 =?us-ascii?Q?b0OAf76k6H7kaS/dBtbhm8psKTWj44oiRhCjAhHfMpvqz5rV9hEdRFJhQ2sQ?=
 =?us-ascii?Q?cIHgE1RMRG4ljYp8P6ObIgmOmIR/pFOnFWjS4UA4/UqCRr0m1vCQ/+YKENHR?=
 =?us-ascii?Q?AX4TgS0R2vQR8PPIEF1xIb+98idFtbYoGfgvR8ntaUci4rIaVXWVVJ+9heN4?=
 =?us-ascii?Q?X2gmPv/ujVSvbsFd2T8dZQnjJe9tQeDUdxMSp7hos7dwE+BvoF/PO+QYpqVQ?=
 =?us-ascii?Q?cXsY9IyFBWeXYIcSZN7Q+pZ6/WhNdH+uzttyVmOiqlVGjtMYxOt3jgLopYUv?=
 =?us-ascii?Q?NfJas9c6wd59AF67uTIJLR0B72kHEwOQyBAkd5WfV6vaXVSbCTJ9W4wzL3f6?=
 =?us-ascii?Q?L6dLYvkZO4DZhxMAB99PzXCUWyzCnMTQdfS6CbeV3FjetUKu3jkCh1a2VLQe?=
 =?us-ascii?Q?hDKz6ofXS7/FADxbwn+86bfr+F2pbND/GLGmqd0vm8eCgXdlGFLas/DcEge4?=
 =?us-ascii?Q?puUQYi16QWlUSubB8vtwKqzv2Z+HhXyasN0nDHw3pp0jwpnJJ7INnFMmaRvD?=
 =?us-ascii?Q?zR5QcA8XXmmtuLqHQXcBUwj1G2B54zvRYF9w+msJGaf38d4tpsOxYMgybxVh?=
 =?us-ascii?Q?vzPuS6FUUV66hKjq8+eB5VKvxam0DDSZ/3Cc9lXZYw2Mf6zpj7kuYR8IO5mg?=
 =?us-ascii?Q?tipmybRtrb/hcUvGztiXMwgxcNBIiMAo/FTyMesCty00181QY9n/zLD9bO4X?=
 =?us-ascii?Q?hNclewuy+q11F17Z9zJqV6088uSTRIEWo/Mh7Oh2l5/15cuvrVxs0QA5oaYq?=
 =?us-ascii?Q?V875CGIlR1mOtEjydcjMYWGXcrkjDCbUoQhuUrYT/bNxw0hKqjceYt6WYXuj?=
 =?us-ascii?Q?U8O2uzfCLb9oeT/QpV7eZC639Sxua9texeNOkUyUC7AAqErArlfhOKjKGfZc?=
 =?us-ascii?Q?tV+0Llil6Ilj0c+IkBIbKjyYCZ17Y+n9sep9A1nw1SsEt0Qbl07DolI3BoXp?=
 =?us-ascii?Q?MDAPkBaiIxHOKWLBAgrbjVDN+oI3TYVbJx7FPHYKoipyo23DVveS3gnycUzE?=
 =?us-ascii?Q?trpsrLhoJIaQ4+ZFWGXyc47RWsHbyKJGcTnb++wdzKg5/6oOt23RUXq6lJpC?=
 =?us-ascii?Q?OEa4vuqlVwENyD7/qJZXzlhnbyjdgNcwMcxT?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2025 09:48:58.5301
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9c46e3e9-4a44-4a30-1aa0-08ddd272f814
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF0000231A.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY3PR12MB9703

Function set_global_virq_handler() is reponsible for
XEN_DOMCTL_set_virq_handler domctl-op, and shall be wrapped.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
 xen/common/event_channel.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/xen/common/event_channel.c b/xen/common/event_channel.c
index 67700b050a..e11b677cac 100644
--- a/xen/common/event_channel.c
+++ b/xen/common/event_channel.c
@@ -1006,6 +1006,7 @@ void send_global_virq(uint32_t virq)
     send_guest_domain_virq(get_global_virq_handler(virq), virq);
 }
 
+#ifdef CONFIG_DOMCTL
 int set_global_virq_handler(struct domain *d, uint32_t virq)
 {
     struct domain *old, *hdl;
@@ -1068,6 +1069,7 @@ int set_global_virq_handler(struct domain *d, uint32_t virq)
 
     return rc;
 }
+#endif /* CONFIG_DOMCTL */
 
 static void clear_global_virq_handlers(struct domain *d)
 {
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sun Aug 03 09:50:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 Aug 2025 09:50:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068425.1432512 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiVMn-0006G9-IH; Sun, 03 Aug 2025 09:50:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068425.1432512; Sun, 03 Aug 2025 09:50: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 1uiVMn-0006E0-6X; Sun, 03 Aug 2025 09:50:57 +0000
Received: by outflank-mailman (input) for mailman id 1068425;
 Sun, 03 Aug 2025 09:50:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f/pN=2P=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1uiVKZ-0005K3-Pw
 for xen-devel@lists.xenproject.org; Sun, 03 Aug 2025 09:48:39 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20605.outbound.protection.outlook.com
 [2a01:111:f403:2414::605])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 078dab3e-704f-11f0-a321-13f23c93f187;
 Sun, 03 Aug 2025 11:48:38 +0200 (CEST)
Received: from BYAPR11CA0046.namprd11.prod.outlook.com (2603:10b6:a03:80::23)
 by DM4PR12MB5772.namprd12.prod.outlook.com (2603:10b6:8:63::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.18; Sun, 3 Aug
 2025 09:48:33 +0000
Received: from SJ1PEPF0000231B.namprd03.prod.outlook.com
 (2603:10b6:a03:80:cafe::7b) by BYAPR11CA0046.outlook.office365.com
 (2603:10b6:a03:80::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.19 via Frontend Transport; Sun,
 3 Aug 2025 09:48:32 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF0000231B.mail.protection.outlook.com (10.167.242.232) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Sun, 3 Aug 2025 09:48:32 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) 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; Sun, 3 Aug 2025 04:48: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>
X-Inumbo-ID: 078dab3e-704f-11f0-a321-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ew588I2azHyNP52LSvymHHJMI01ouCIAeK1roc713xDrAlA2W302kUVzH5atW+mtpaCQWN3r07tKgibx4S2buJSJfz2W0ot0S8MzzpzcFZyVuqtuTvA8ziwVMRxMTJnsmZFirNnJio4r96+ZeBLRZwue/cRnTF2+fhNBLw4hW/+KAWd5rtPTfaffANVk7DoXBaEnAttkgDlSRcphJP7/eeFzBHlHfZPIql2CfUX+2VOJ9/eFvEyzuqLunyO7G1g4o3ErDZo7QxVvsmc5DEhZYq5zDzzyY4LHX6HQ8iDrTZ8ZLFHML+dpAJY0jimogQwWaGbLnJOQ7ZEpNtmboIL5gA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=JjKk5H6CerbuMm5ScZNoQuw4IXN+Kw8YIwQRV0fVnL0=;
 b=E0Gc6dItEIq8jNgwQpbhh5+XEA0c1RuqJFN8eAadlOXOYYSq94t2+3hpOqwr8b6LBr8+crbPnUdBPI85ITe10ng7+eUDUHcFt2BrqIg/dAA9SO5p5OjSZsTKN5O4gbs2ogNOaex4WsZ7FFYcmwr3Ulr5Z6DMidzE+S7MeDsdPo7TNPXSXbUU9ic5QeElrTdpXVvqQlex7oKs6GUmmkl1Ny5cboJZpbREAX+z3Usjfxc63ne307BNZYYJNFbWQdB7yC9aSph705BNANPtZiNqXDCR5nn2VDbQVKjS6S67JB72LoiE5BeqbK1vO8/Pm3nmmMJZ3piaa6/hKqUuUVlzog==
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=JjKk5H6CerbuMm5ScZNoQuw4IXN+Kw8YIwQRV0fVnL0=;
 b=RHKx9g86QuSQCO/XzLxDDvwWDQVlfnNBD9jx/UDUMrZHzKFMJLCpWt3wDGHBw+RozU34RRVjBN/dRABsTivcK+JPd7DRrm8iJ/WWEPZTmb9kSe+yRKgpuaNyBnN55B5qK9pVb1SqSJWQubnoriEas/xGuFruvLFE+BwTGivgkS4=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 10/25] xen/domctl: wrap around XEN_DOMCTL_setnodeaffinity
Date: Sun, 3 Aug 2025 17:47:23 +0800
Message-ID: <20250803094738.3625269-11-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250803094738.3625269-1-Penny.Zheng@amd.com>
References: <20250803094738.3625269-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: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF0000231B:EE_|DM4PR12MB5772:EE_
X-MS-Office365-Filtering-Correlation-Id: fae9d576-6f7b-4258-ad12-08ddd272e8a1
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|36860700013|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?fFyzD7CB+PBrKDYb1cUOS+HEhlEAIhPu5/KZA2AX9vSQzuj67E5mAF5kCBCI?=
 =?us-ascii?Q?ItOsdm4eGyOPi8+HGxbNKmrYSwP6ze2COQvMwZOstzc2mLhVzaPbvkzYIx1T?=
 =?us-ascii?Q?Fw3SaQBXS1TRvN6wG5X4bueRff4L+rCMLhHYwKEhIl6RVPoQ7KHzCsv7J+jq?=
 =?us-ascii?Q?g+Hdw28QMW4EcL4LkNqfKjkZtFIR75F4ebi1ejoBSB4CWbTQO1+2zMncYAid?=
 =?us-ascii?Q?71N8EDBwc/UmZWrC70nUzBkEe1gFIAHt41w32mQxV5nO88A3dmPRJoxoh7FM?=
 =?us-ascii?Q?QM+rVsnfK9fjKPWcsQhxMOAyiCM4f98AEBE+SFYqHFaPZ+qkJCi4SpJccQLK?=
 =?us-ascii?Q?gIUvCnSQoMTJasiouTbQJc9V8Mc/p4bLjimaLfPSscVFUk7M64YBhcw9qqAr?=
 =?us-ascii?Q?tEQp7f2uGIF5f6EE56MpAb3Gc0uMrv+oxzVgfJ3DgR4OvIfoCM+XxRgbULpI?=
 =?us-ascii?Q?xTWwbNlD+R8PvWLtqyTlVcb7jlYysTOavbE/LzmXrIMdl6ZEsgj+tWUyxUfX?=
 =?us-ascii?Q?UDx7bzHBAOms6AYJ2YBfI8nPg06CvJ9h8TV7IZD5u1SIFJhESDSrzYl4bvsQ?=
 =?us-ascii?Q?iW7rYAhyuo48NoiiKBWQtNh6IVfM+axSTh/NehCMNM95eKSB2o5Mn2LAiznX?=
 =?us-ascii?Q?dSBMowt16mMMWqlQtkWuPWDY9HT4IY3iSm3vKqjoMLxEjImzebWYuXNMGdCf?=
 =?us-ascii?Q?5D8/rhzaTlGKmQT8SdKdmNhFh23uOTmMQODrojGUHfpD9zbA4kAdMfTF3Q0t?=
 =?us-ascii?Q?L9rFe0wAsJ4Rk2L/PktMoahk3rMsnFlk2aCG1QH4sejjJIxZ/6LnXk3X6y7b?=
 =?us-ascii?Q?qkzRgRZ5gQHPWb3wdH7RwYin8iDo5znIXvAEp7ruFmfiQuJCCT7IoUdR+hLm?=
 =?us-ascii?Q?ktcBKDgFNN+vBKmLI5etc20aBG+Sfi9AvyMwBppdON0WtDSnJiCp4kIZzRrX?=
 =?us-ascii?Q?tZpd2U62uoAJg0JhprYe3L516cDDX9XapnC2o1tDUEBAGPBj+8Pdbju5I6i0?=
 =?us-ascii?Q?2naSymv+z4Dh0EZyysLYd78k0Zp70WHX0/3coZ1+VxkDL3sdRwUI8NYUrFYo?=
 =?us-ascii?Q?Dyapi2kbKZdKu/yB0Xe9HZeg98vDUaUhrJYT6SAOPuonrOpvyRzO6ovP1LxF?=
 =?us-ascii?Q?xrk5VAepD/O8X6QPVlaZ+O/EVmxmli34kACkMVLRQzb5hlklRQ5TPp4crn5p?=
 =?us-ascii?Q?KwDFI1NSscZ62dPJkzv/DA5jChjLAeaXu1F7yyqfIVNVmpYQrqg5zGdUntLw?=
 =?us-ascii?Q?Hs1Pn445NRYCmRH6wRKsOGE+nE/Qe9BGkZEUO5OUKcopAeBTzT0nCs+Z/7Ul?=
 =?us-ascii?Q?xkYRfI924uOveW/7Fq71KXbMS0uCtcgNaAeWjJTWCEJ/a1MyYq9fuRpu5DQx?=
 =?us-ascii?Q?ABNGumMyTJVRQs49L9znmmQD2jkk62I3VOw02oCiLJjvpG/FAzJSzPmHjM8S?=
 =?us-ascii?Q?GI55rXjSgwacFbRhPugbwe7s2UVjze1E85oSGYpREvG8IngcQC6Sn3ekb0FS?=
 =?us-ascii?Q?31AeRn7OP2lPRoFXo8HhCFz0dsLWlI8Etazb?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2025 09:48:32.6151
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: fae9d576-6f7b-4258-ad12-08ddd272e8a1
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF0000231B.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5772

Function domain_set_node_affinity() is responsible for
XEN_DOMCTL_setnodeaffinity domctl-op, and shall be wrapped with CONFIG_DOMCTL

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
 xen/common/domain.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/xen/common/domain.c b/xen/common/domain.c
index be722c9f09..22313d761b 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -1097,6 +1097,7 @@ void __init setup_system_domains(void)
 #endif
 }
 
+#ifdef CONFIG_DOMCTL
 int domain_set_node_affinity(struct domain *d, const nodemask_t *affinity)
 {
     /* Being disjoint with the system is just wrong. */
@@ -1125,6 +1126,7 @@ out:
 
     return 0;
 }
+#endif /* CONFIG_DOMCTL */
 
 /* rcu_read_lock(&domlist_read_lock) must be held. */
 static struct domain *domid_to_domain(domid_t dom)
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sun Aug 03 09:50:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 Aug 2025 09:50:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068429.1432518 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiVMo-0006UL-LV; Sun, 03 Aug 2025 09:50:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068429.1432518; Sun, 03 Aug 2025 09:50: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 1uiVMo-0006QP-5z; Sun, 03 Aug 2025 09:50:58 +0000
Received: by outflank-mailman (input) for mailman id 1068429;
 Sun, 03 Aug 2025 09:50:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f/pN=2P=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1uiVKn-0005hH-IL
 for xen-devel@lists.xenproject.org; Sun, 03 Aug 2025 09:48:53 +0000
Received: from NAM02-DM3-obe.outbound.protection.outlook.com
 (mail-dm3nam02on20624.outbound.protection.outlook.com
 [2a01:111:f403:2405::624])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0f3168f4-704f-11f0-b897-0df219b8e170;
 Sun, 03 Aug 2025 11:48:51 +0200 (CEST)
Received: from MW4P222CA0010.NAMP222.PROD.OUTLOOK.COM (2603:10b6:303:114::15)
 by PH7PR12MB5593.namprd12.prod.outlook.com (2603:10b6:510:133::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.18; Sun, 3 Aug
 2025 09:48:44 +0000
Received: from SJ1PEPF0000231E.namprd03.prod.outlook.com
 (2603:10b6:303:114:cafe::27) by MW4P222CA0010.outlook.office365.com
 (2603:10b6:303:114::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.18 via Frontend Transport; Sun,
 3 Aug 2025 09:48:43 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF0000231E.mail.protection.outlook.com (10.167.242.230) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Sun, 3 Aug 2025 09:48:43 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) 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; Sun, 3 Aug 2025 04: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>
X-Inumbo-ID: 0f3168f4-704f-11f0-b897-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aO4CVW8W02G8de7PF5gTtosM5OzeNFSKLWhVlUFPlaWvFGRA2uYG1ucLDHzoLr1DvLGfHEhejcW/9oc2+ih5m/blisykzrKjZtIetqezPSms7dvtqKZG6aE1AGxzdFJSkWOnwPSbpanMJdvMV7+UI930Kh1UjAJv1G4CNXizqAB5ves+nJTE0f9H6vuBjr/uxAIGm771aUSnvAOtyPi4xDdvIUwjcuC+apq85Jj4Xm7VOV8pMHHtlfHEJDHD6A5qwlWitHiMGbXUMRTBto1fIGrAEmj/w9PH/YUS3PoXam1YsH68GY2Ij3PDDHnUtyAuvfNhRLz3EIJLZVijQA87gQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=9uypTt3YeP76QKjB++IJy5IqqCgfj2YHw5GtsGTyS4Q=;
 b=gOx/MK/qLpjevu1H09l6Ek4ngupAUCv7uFnuDcyLxsuZaOUqu1JxWBChS1zPw7PygJR9pcThYD29Cu68IjZQq3BAlEj/ZNxhNJtBcNzgg7NpgR7pICLlbnhL7cCL4+YHYHmcGjRXWMESLtJAh8wFze167sTW0ux0F9zTJe5+iWOS9bjL6VAvZJVyNDbeAiCL7Did+BUGp6jdvt2qYyCp0Ow6X0MgnRNXbMqn6z1YOy4Cs9ImQ1vMBDmFyTKNrXoBBkmkk9GLVNw90oxdYwS/myyElly5il4fXQJsRsC04Ql0mZhxuWYSQGiHY/L3S9LNZOBqct1eDxaRKLqKTVqBww==
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=9uypTt3YeP76QKjB++IJy5IqqCgfj2YHw5GtsGTyS4Q=;
 b=uzO9K1FFlH5jtX2RSOmPAxYFdkHXkJsV0Vox2+kgAmHKsywdxompRmwepYOjmaPW6BomdNaekR1M/e00UJleBZSP2eVdEVq68B8MR8zWwTVVKJGPX2tYEQ6WXrc/Tm2vEaVXFn5GszXhfTaGETS9Vamg1w1ZcGsTUVgQ2vy1ZoQ=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>
Subject: [PATCH v1 14/25] xen/domctl: wrap around XEN_DOMCTL_{irq_permission,iomem_permission}
Date: Sun, 3 Aug 2025 17:47:27 +0800
Message-ID: <20250803094738.3625269-15-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250803094738.3625269-1-Penny.Zheng@amd.com>
References: <20250803094738.3625269-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: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF0000231E:EE_|PH7PR12MB5593:EE_
X-MS-Office365-Filtering-Correlation-Id: 0277a6d2-5527-4af7-c3be-08ddd272ef43
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|376014|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?1iQTy6VvR/y7RXjnJfwO2WuEP+LdunD4EjYM5LWl9zb0RahEQxerjs3DPBZG?=
 =?us-ascii?Q?egXc0O5jsm5nQVrFrJfOvKdXIfSrkPU/kGmurtqQNTyA8MG9ElahEd+H+lli?=
 =?us-ascii?Q?aZ94Feadl4pDB9eskl1pvID9wkqlR//SWEt9fQa5sGWSvH5BE6viGAadR7T6?=
 =?us-ascii?Q?vxzIgSL5fU71py2u91ijesTjKU8k5+vQpwn7ti0R0YFoW/vSz049wO2Oqpe1?=
 =?us-ascii?Q?Q11bmbxUceoLjHg1C1mi2uyOpoGsvZqLIHYRYwWNew0WHt+ub9V8VKrcNGoE?=
 =?us-ascii?Q?HcyZdy3mt6tmiWU3EoEmHN16/gM5H6PYt6II8Y1ISYgRmd03M1/Yu6zqUqnd?=
 =?us-ascii?Q?QQZnaJoQD9PW3Iij7cfaT2tKEUv71UIiA3L3Klz50UTL9bCfEze1AiXv33Ph?=
 =?us-ascii?Q?bbGqwVEM0vY2NoIsWkAJrM18x163Pz2dv69o5+I1gLja/tV97LKLRg/rMq0C?=
 =?us-ascii?Q?6phC7/ETc/0UjpL1H9fS9Z+VDC+XuaLJRtO3eNznxuUaLGHm15vUnXv/RoOl?=
 =?us-ascii?Q?Iz/s2eVhJJ+opZct2XREx4nV+vAraeEBsHMZlbjCikFQGk4jyQSymQMP8ZX9?=
 =?us-ascii?Q?M9kynGiBzDkfnVH1ZwMX2ns4zz69+ChZGwwY6G2D7TOkCZYf0zQ36up9PmYF?=
 =?us-ascii?Q?71B969F+HJe6hX2N5eWuOmOp5QBh+q32jIQ0ZnEH2YZ7SJtezyUrQQ/xGB3S?=
 =?us-ascii?Q?Skwh3L0XlnfAymBP2ReCnxXKFbocTtz8NBmW16yHO9Tx3HO+VbxT7mm7kty2?=
 =?us-ascii?Q?65Q3C9q//mnAETdUs5V10lc2+2VMWsAQVgx8SUqmZBahB+6Y0O8FwmmaRkxs?=
 =?us-ascii?Q?dHRNw1HqWfZ5cMpCH+9edx+rKIigfyIsRjbCtTfYOEov9HZPlO9u9ajOVU2k?=
 =?us-ascii?Q?ssE8jpCTHJuPn+oGdlkxJouZ/ZcrYHFFF2TqBEXljdwyCI/87+GWSgyKKyF4?=
 =?us-ascii?Q?aG1+Rog0fKeJYD7xdCgf91inrBtaQsD1lYL3jgZO7EZehXDd86mTRGMC1YLx?=
 =?us-ascii?Q?QOCOMNXw8YUrmT8vbyrj1YakQL2gEm+b5xcI2C8+SAccSeexic0KXYE446SN?=
 =?us-ascii?Q?zM1t+FBMyfAu1MFyyq43o9G5/16/XsSV+m9inl9tbSFgfIhvhCsI8YcbxWna?=
 =?us-ascii?Q?DhetPcVdwkWRO1z9/Q2+JwA9lkojiV2PCK4s9lnkygKawY4broMo1nADe8E+?=
 =?us-ascii?Q?v/XWLBkZJEHSFwbuC8Ms7HWVVbzt2mpLuNUg0pHW3ZEIhcKEjxDOsdSXEX05?=
 =?us-ascii?Q?O/q+NJN1bu9DoRIhygT2HPMW2FCFiWFesUoooE1erkFgKR6ScMz1Rk0o/AWl?=
 =?us-ascii?Q?eXFci63hWUci0ryQNd+foFEslRv5PG7x2rHRjK8PPvrNX625SJ5QAK6m9ieL?=
 =?us-ascii?Q?FGiM4sTKN6sr4s5YIGKBVjvW0NkMLwxurni7fqK+teCE1oBIp12EIxcaEwSW?=
 =?us-ascii?Q?p6IphNQ1HgIvmIQ8BqmOzE29hOBYTQes43UWWqjpT2vk9+oadUkZrpud2Ez/?=
 =?us-ascii?Q?qDLIFVuJcT9xgEsntRlULZ8WDU7UrE5NzBWn?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2025 09:48:43.7436
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0277a6d2-5527-4af7-c3be-08ddd272ef43
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF0000231E.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB5593

The following functions are invoked only under
XEN_DOMCTL_{irq_permission,iomem_permission} domctl-op, and shall be wrapped:
- xsm_irq_permission
- xsm_iomem_permission

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
 xen/include/xsm/dummy.h | 2 ++
 xen/include/xsm/xsm.h   | 4 ++++
 xen/xsm/dummy.c         | 2 ++
 xen/xsm/flask/hooks.c   | 4 ++++
 4 files changed, 12 insertions(+)

diff --git a/xen/include/xsm/dummy.h b/xen/include/xsm/dummy.h
index 12792c3a43..55521c012b 100644
--- a/xen/include/xsm/dummy.h
+++ b/xen/include/xsm/dummy.h
@@ -556,6 +556,7 @@ static XSM_INLINE int cf_check xsm_unmap_domain_irq(
     return xsm_default_action(action, current->domain, d);
 }
 
+#ifdef CONFIG_DOMCTL
 static XSM_INLINE int cf_check xsm_irq_permission(
     XSM_DEFAULT_ARG struct domain *d, int pirq, uint8_t allow)
 {
@@ -569,6 +570,7 @@ static XSM_INLINE int cf_check xsm_iomem_permission(
     XSM_ASSERT_ACTION(XSM_HOOK);
     return xsm_default_action(action, current->domain, d);
 }
+#endif /* CONFIG_DOMCTL */
 
 static XSM_INLINE int cf_check xsm_iomem_mapping(
     XSM_DEFAULT_ARG struct domain *d, uint64_t s, uint64_t e, uint8_t allow)
diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
index 6444f0677b..1759d49aaa 100644
--- a/xen/include/xsm/xsm.h
+++ b/xen/include/xsm/xsm.h
@@ -115,9 +115,11 @@ struct xsm_ops {
     int (*unmap_domain_irq)(struct domain *d, int irq, const void *data);
     int (*bind_pt_irq)(struct domain *d, struct xen_domctl_bind_pt_irq *bind);
     int (*unbind_pt_irq)(struct domain *d, struct xen_domctl_bind_pt_irq *bind);
+#ifdef CONFIG_DOMCTL
     int (*irq_permission)(struct domain *d, int pirq, uint8_t allow);
     int (*iomem_permission)(struct domain *d, uint64_t s, uint64_t e,
                             uint8_t allow);
+#endif
     int (*iomem_mapping)(struct domain *d, uint64_t s, uint64_t e,
                          uint8_t allow);
     int (*pci_config_permission)(struct domain *d, uint32_t machine_bdf,
@@ -511,6 +513,7 @@ static inline int xsm_unbind_pt_irq(
     return alternative_call(xsm_ops.unbind_pt_irq, d, bind);
 }
 
+#ifdef CONFIG_DOMCTL
 static inline int xsm_irq_permission(
     xsm_default_t def, struct domain *d, int pirq, uint8_t allow)
 {
@@ -522,6 +525,7 @@ static inline int xsm_iomem_permission(
 {
     return alternative_call(xsm_ops.iomem_permission, d, s, e, allow);
 }
+#endif /* CONFIG_DOMCTL */
 
 static inline int xsm_iomem_mapping(
     xsm_default_t def, struct domain *d, uint64_t s, uint64_t e, uint8_t allow)
diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
index b8a9b581b7..2798425de2 100644
--- a/xen/xsm/dummy.c
+++ b/xen/xsm/dummy.c
@@ -75,8 +75,10 @@ static const struct xsm_ops __initconst_cf_clobber dummy_ops = {
     .unmap_domain_irq              = xsm_unmap_domain_irq,
     .bind_pt_irq                   = xsm_bind_pt_irq,
     .unbind_pt_irq                 = xsm_unbind_pt_irq,
+#ifdef CONFIG_DOMCTL
     .irq_permission                = xsm_irq_permission,
     .iomem_permission              = xsm_iomem_permission,
+#endif
     .iomem_mapping                 = xsm_iomem_mapping,
     .pci_config_permission         = xsm_pci_config_permission,
     .get_vnumainfo                 = xsm_get_vnumainfo,
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index 55da0a5ff7..8361cf94f9 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -1113,12 +1113,14 @@ static int cf_check flask_unbind_pt_irq(
     return current_has_perm(d, SECCLASS_RESOURCE, RESOURCE__REMOVE);
 }
 
+#ifdef CONFIG_DOMCTL
 static int cf_check flask_irq_permission(
     struct domain *d, int pirq, uint8_t access)
 {
     /* the PIRQ number is not useful; real IRQ is checked during mapping */
     return current_has_perm(d, SECCLASS_RESOURCE, resource_to_perm(access));
 }
+#endif /* CONFIG_DOMCTL */
 
 struct iomem_has_perm_data {
     uint32_t ssid;
@@ -1949,8 +1951,10 @@ static const struct xsm_ops __initconst_cf_clobber flask_ops = {
     .unmap_domain_irq = flask_unmap_domain_irq,
     .bind_pt_irq = flask_bind_pt_irq,
     .unbind_pt_irq = flask_unbind_pt_irq,
+#ifdef CONFIG_DOMCTL
     .irq_permission = flask_irq_permission,
     .iomem_permission = flask_iomem_permission,
+#endif
     .iomem_mapping = flask_iomem_mapping,
     .pci_config_permission = flask_pci_config_permission,
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sun Aug 03 09:51:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 Aug 2025 09:51:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068431.1432525 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiVMq-0006oT-H1; Sun, 03 Aug 2025 09:51:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068431.1432525; Sun, 03 Aug 2025 09:51: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 1uiVMp-0006lb-Qy; Sun, 03 Aug 2025 09:50:59 +0000
Received: by outflank-mailman (input) for mailman id 1068431;
 Sun, 03 Aug 2025 09:50:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f/pN=2P=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1uiVLD-0005hH-VK
 for xen-devel@lists.xenproject.org; Sun, 03 Aug 2025 09:49:19 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on2061e.outbound.protection.outlook.com
 [2a01:111:f403:2415::61e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1f058e51-704f-11f0-b897-0df219b8e170;
 Sun, 03 Aug 2025 11:49:17 +0200 (CEST)
Received: from BY3PR05CA0017.namprd05.prod.outlook.com (2603:10b6:a03:254::22)
 by LV3PR12MB9235.namprd12.prod.outlook.com (2603:10b6:408:1a4::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.18; Sun, 3 Aug
 2025 09:49:12 +0000
Received: from SJ1PEPF00002318.namprd03.prod.outlook.com
 (2603:10b6:a03:254:cafe::92) by BY3PR05CA0017.outlook.office365.com
 (2603:10b6:a03:254::22) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9009.9 via Frontend Transport; Sun, 3
 Aug 2025 09:49:12 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF00002318.mail.protection.outlook.com (10.167.242.228) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Sun, 3 Aug 2025 09:49:12 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) 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; Sun, 3 Aug 2025 04:49:04 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1f058e51-704f-11f0-b897-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=EoVfVpmYEdtcTjw1bHdMTOf3qA2L2KSGpYERIh6A21xYgqlmz64SyzdsHSjtdOVVPBaBf/TtjjsUT31qHaOMFadaC9c+AISRdc8BeK0xNaT+LvNsvvxM8HhBSIJ+c6xmkgUPqlYxzkRdqeRa3aJYSXuIEpmQdTfa6w2xZh7hYkooJbpqwvvMU64v+/aH07GOW232GixXmZFP9LKG7OvDP0uu7ERQ2q8/LpU6bWTB/RMsx1UFqPjkIWra86iXApgiOeG0jRqTHr9E9+e1qJ4dsany+yRCG+iPYZwSZeND03GO86HOWIBuuGaCl/cvzpR0bkp81y81n03+DBLthmRD2Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fkmjKkYefqtobgNH03iIRJVYC12nGUoQ3b5JMZ1dr/c=;
 b=CEihGbvrF/VWBu1z/B5TgC3Fdu5bMDBYPCwnEDzQZIBRjyhAKSk5YRDr9CmBlqL9TD1BoRA94hMYOudWGN/cE/1hKDm+9rSkIpnjg2ZhhvAD/bYIFD+ImaiSGLh1WMD7ImqzVdzf8zrDdHsFzhplnyJAoq6oAsPw0OnA/4aDh3FoioATWnFMN1jC6PH1A2ReuS3FbfWeflscQoQ7gEFo0mtmrYPF/w0aJZI7qE4J1tu8jYrxksk5RXMHj5tBDUEd5qTWykJIitNQTWZzgCIJOIKktdxvo5MhEH0FEq9QcQEXUVHRXjYcQUDeOpM+2UtBeTdyP6+eu6J95rtJOXxhjA==
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=fkmjKkYefqtobgNH03iIRJVYC12nGUoQ3b5JMZ1dr/c=;
 b=pafAS1V+EmRFAgoDSfvDoZ3SbHaBOJV8FGk/1J5e0tW9MgKvQl0nPX4fWbLjTZGUvGi6KCnOHVRvwD6fJCMDDFiVD63mTYCaVKgLRrJEek9KONrgcS6AfLBuIyUoQuAY8z0ccGsnXcbUTMLuvfC/YtPZZF8yF2X+0cTglpu0fxQ=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v1 23/25] xen/x86: make CONFIG_X86_PSR depend on SYSCTL || DOMCTL
Date: Sun, 3 Aug 2025 17:47:36 +0800
Message-ID: <20250803094738.3625269-24-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250803094738.3625269-1-Penny.Zheng@amd.com>
References: <20250803094738.3625269-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: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF00002318:EE_|LV3PR12MB9235:EE_
X-MS-Office365-Filtering-Correlation-Id: 5e769449-15ed-4713-b2eb-08ddd2730044
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|82310400026|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?VNBEZloTWHPaMddamAsaZ6dbCCUJAbwZmx234at7iBkWjw9bEvTpKHAqntj/?=
 =?us-ascii?Q?zi8mUyJbT7K42NQK2mPHvi4e05eWXrRkIWDWQp+8Mx9LRBYt3g2i/ZoXt3Oj?=
 =?us-ascii?Q?2NF/QV/dBlD05v44nYsHDgRVDzy4JAfuaAQZZI56zEM9jFeP9jK6NaddoxPw?=
 =?us-ascii?Q?n8Anc5m0tpMZBGJP49eMDowKl7iIzTPSCIBXqThzh/MXCof3OJRITW/sDADe?=
 =?us-ascii?Q?xxZupG6N2arFUmRAwGJz9UQSw8fHtyQDgvVO8SBREiDlv5QHYDTjYhXb0iO1?=
 =?us-ascii?Q?f1s0I/iOzH0Xa35sNeUk6ZJPU7QHbixpJcrKXh4ARuIHwQI4N6xS0/l5jJBb?=
 =?us-ascii?Q?mIXdHG+m40UeFDGGRBC7r6TEk/m8b6j+yamO2eTyhxAMw14C8jwaNeVLAGRt?=
 =?us-ascii?Q?HHdEG0TPWmLaDuT13D/1gMPSx9dOZFRueQih7AFonf8hpi61XuR/Om0nGim+?=
 =?us-ascii?Q?TErVTOyJ/bzjBtl0S2ZUmH/D6u4DexLL1pBNkjtEe4hMuyMUX+OLuZnpZdeH?=
 =?us-ascii?Q?XImULo4de5BAul345/w/m2bCiwB3/sFrzqYt33n9esX/BEp1Sty2mI4fRjoe?=
 =?us-ascii?Q?0n5R29mkIC7Ys/rR0VCg675tVS6cuC9kjfSglRR/Sgcb0LFLcCeZC3nl4+w5?=
 =?us-ascii?Q?PZPT0b2ZMisoYPCN0YKtWsWRnAJAA8s/eSfgFolNYx1PiBMlNibamwHBAagD?=
 =?us-ascii?Q?4DP2NTuScTAnut27hHRB4/+3pRCqJvcMMJwxAVHd2wzS9dhq2wxxWfmo7L1F?=
 =?us-ascii?Q?BCX1Lu7q7ESltQBOMxOjssGp51SP8lsYA9IJb5lF1KbqtIvUZZVmuKpR32GU?=
 =?us-ascii?Q?O32/6+Po30fTx620iREb0npk+Vwp6J27Sp2fquO/P5H4yOH/g4RnhYs5vkUA?=
 =?us-ascii?Q?53svRRaomZwDqe8tl6TTFfEjZ+hfx2386788ZhTrmmZ3ZnR8co2HP4fR3M1e?=
 =?us-ascii?Q?J0pI1e0HWDpQgfHrRwlVWGMepuUl4uB5pq1CwJTbad3JfCM1Co+2gNf8plOE?=
 =?us-ascii?Q?AJKYQTGWyKiqe1PMcozllnsa78XMWvBC9Vcl4o/4DkOcU2EYABdRrJmJcg3Q?=
 =?us-ascii?Q?+VAjhTBSoWlXeQXAeo4L8p/AeZs42L8w8s7BA7OPScEND4DwmjW/QaePx4aK?=
 =?us-ascii?Q?QrpE8OjwICv9PTyPeUf9svKDRZ+EJ6OcUDzGd2TEgjzYVUW0dpH6osmBWgZo?=
 =?us-ascii?Q?HtISAAPbCh1E3hMOnDGbvbNBQ8WnRPyKAdWUeMAy9mmDLM/ICfcnwKQIQ3ox?=
 =?us-ascii?Q?b6wVSe/AiIynvf1PQ7jJRdX67C3Jlc/wI5AKjNakcUry7/EKt0jgaflILaXb?=
 =?us-ascii?Q?fqLwS0u4K2RmJkDsS/7ylRDgH2qq7+jdadmDYlGzzxIXYP0xJ2ZO9PZ22rWw?=
 =?us-ascii?Q?B2QHyLQbTMyZtLQki1mHgIfu/dx3Ty/iotMEzJdmJzweBGu+JmbrSn+U22pl?=
 =?us-ascii?Q?+GywXgiju1Hwo7kKQONo1KkfWiRlMP9Go9V4PuNm+nquMDHVrerZRJDq0Tq6?=
 =?us-ascii?Q?tx9f9wvtmWzshzSPTrDRUIqtofWLNrFg47Ov?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2025 09:49:12.2707
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5e769449-15ed-4713-b2eb-08ddd2730044
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF00002318.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR12MB9235

Users control/monitor Intel Platform Shared Resource (PSR) through
related domctl-op or sysctl-op, so CONFIG_X86_PSR can be put under
SYSCTL or DOMCTL. with this change, we could remove SYSCTL-wrapping
in psr.c

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
 xen/arch/x86/Kconfig |  1 +
 xen/arch/x86/psr.c   | 18 ------------------
 2 files changed, 1 insertion(+), 18 deletions(-)

diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
index a45ce106e2..691edf8926 100644
--- a/xen/arch/x86/Kconfig
+++ b/xen/arch/x86/Kconfig
@@ -187,6 +187,7 @@ config TBOOT
 config X86_PSR
 	bool "Platform Shared Resource support" if EXPERT
 	default INTEL
+	depends on SYSCTL || DOMCTL
 	help
 	  Support of Platform Shared Resource technology, which is basis for
 	  monitoring and control of resources like cache and memory bandwidth.
diff --git a/xen/arch/x86/psr.c b/xen/arch/x86/psr.c
index 499d320e61..5815a35335 100644
--- a/xen/arch/x86/psr.c
+++ b/xen/arch/x86/psr.c
@@ -133,11 +133,9 @@ static const struct feat_props {
      */
     enum psr_type alt_type;
 
-#ifdef CONFIG_SYSCTL
     /* get_feat_info is used to return feature HW info through sysctl. */
     bool (*get_feat_info)(const struct feat_node *feat,
                           uint32_t data[], unsigned int array_len);
-#endif
 
     /* write_msr is used to write out feature MSR register. */
     void (*write_msr)(unsigned int cos, uint32_t val, enum psr_type type);
@@ -420,7 +418,6 @@ static bool mba_init_feature(const struct cpuid_leaf *regs,
     return true;
 }
 
-#ifdef CONFIG_SYSCTL
 static bool cf_check cat_get_feat_info(
     const struct feat_node *feat, uint32_t data[], unsigned int array_len)
 {
@@ -433,7 +430,6 @@ static bool cf_check cat_get_feat_info(
 
     return true;
 }
-#endif /* CONFIG_SYSCTL */
 
 /* L3 CAT props */
 static void cf_check l3_cat_write_msr(
@@ -446,14 +442,11 @@ static const struct feat_props l3_cat_props = {
     .cos_num = 1,
     .type[0] = PSR_TYPE_L3_CBM,
     .alt_type = PSR_TYPE_UNKNOWN,
-#ifdef CONFIG_SYSCTL
     .get_feat_info = cat_get_feat_info,
-#endif
     .write_msr = l3_cat_write_msr,
     .sanitize = cat_check_cbm,
 };
 
-#ifdef CONFIG_SYSCTL
 /* L3 CDP props */
 static bool cf_check l3_cdp_get_feat_info(
     const struct feat_node *feat, uint32_t data[], uint32_t array_len)
@@ -465,7 +458,6 @@ static bool cf_check l3_cdp_get_feat_info(
 
     return true;
 }
-#endif /* CONFIG_SYSCTL */
 
 static void cf_check l3_cdp_write_msr(
     unsigned int cos, uint32_t val, enum psr_type type)
@@ -481,9 +473,7 @@ static const struct feat_props l3_cdp_props = {
     .type[0] = PSR_TYPE_L3_DATA,
     .type[1] = PSR_TYPE_L3_CODE,
     .alt_type = PSR_TYPE_L3_CBM,
-#ifdef CONFIG_SYSCTL
     .get_feat_info = l3_cdp_get_feat_info,
-#endif
     .write_msr = l3_cdp_write_msr,
     .sanitize = cat_check_cbm,
 };
@@ -499,14 +489,11 @@ static const struct feat_props l2_cat_props = {
     .cos_num = 1,
     .type[0] = PSR_TYPE_L2_CBM,
     .alt_type = PSR_TYPE_UNKNOWN,
-#ifdef CONFIG_SYSCTL
     .get_feat_info = cat_get_feat_info,
-#endif
     .write_msr = l2_cat_write_msr,
     .sanitize = cat_check_cbm,
 };
 
-#ifdef CONFIG_SYSCTL
 /* MBA props */
 static bool cf_check mba_get_feat_info(
     const struct feat_node *feat, uint32_t data[], unsigned int array_len)
@@ -521,7 +508,6 @@ static bool cf_check mba_get_feat_info(
 
     return true;
 }
-#endif /* CONFIG_SYSCTL */
 
 static void cf_check mba_write_msr(
     unsigned int cos, uint32_t val, enum psr_type type)
@@ -559,9 +545,7 @@ static const struct feat_props mba_props = {
     .cos_num = 1,
     .type[0] = PSR_TYPE_MBA_THRTL,
     .alt_type = PSR_TYPE_UNKNOWN,
-#ifdef CONFIG_SYSCTL
     .get_feat_info = mba_get_feat_info,
-#endif
     .write_msr = mba_write_msr,
     .sanitize = mba_sanitize_thrtl,
 };
@@ -824,7 +808,6 @@ static struct psr_socket_info *get_socket_info(unsigned int socket)
     return socket_info + socket;
 }
 
-#ifdef CONFIG_SYSCTL
 int psr_get_info(unsigned int socket, enum psr_type type,
                  uint32_t data[], unsigned int array_len)
 {
@@ -856,7 +839,6 @@ int psr_get_info(unsigned int socket, enum psr_type type,
 
     return -EINVAL;
 }
-#endif /* CONFIG_SYSCTL */
 
 int psr_get_val(struct domain *d, unsigned int socket,
                 uint32_t *val, enum psr_type type)
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sun Aug 03 09:51:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 Aug 2025 09:51:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068440.1432541 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiVMu-0007pZ-JJ; Sun, 03 Aug 2025 09:51:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068440.1432541; Sun, 03 Aug 2025 09:51: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 1uiVMt-0007kw-RM; Sun, 03 Aug 2025 09:51:03 +0000
Received: by outflank-mailman (input) for mailman id 1068440;
 Sun, 03 Aug 2025 09:51:01 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f/pN=2P=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1uiVLC-0005hH-V3
 for xen-devel@lists.xenproject.org; Sun, 03 Aug 2025 09:49:18 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20623.outbound.protection.outlook.com
 [2a01:111:f403:2414::623])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1e6e233a-704f-11f0-b897-0df219b8e170;
 Sun, 03 Aug 2025 11:49:17 +0200 (CEST)
Received: from SJ0PR05CA0103.namprd05.prod.outlook.com (2603:10b6:a03:334::18)
 by IA0PR12MB7749.namprd12.prod.outlook.com (2603:10b6:208:432::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.17; Sun, 3 Aug
 2025 09:49:13 +0000
Received: from SJ1PEPF0000231F.namprd03.prod.outlook.com
 (2603:10b6:a03:334:cafe::a1) by SJ0PR05CA0103.outlook.office365.com
 (2603:10b6:a03:334::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9009.9 via Frontend Transport; Sun, 3
 Aug 2025 09:49:12 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF0000231F.mail.protection.outlook.com (10.167.242.235) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Sun, 3 Aug 2025 09:49:12 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) 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; Sun, 3 Aug 2025 04:49:01 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1e6e233a-704f-11f0-b897-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fNx/HqLu0Ch5wp486BoM5q7aFnCcAYma+ZcB+BXUgq8WSBIaegovLuVHdUDiw4T8Bfuu7eyLXaU1+CIOzxqSzIBXjS+eAtuBhtGBi271nDdjf3HpRDz0WigSofReUIpRcdI4yI3fcDAhiS0abuNUPiQXVXzWHX69pf7VCOd3/TUgUZUoalD+vYrL1QjAPi8oQgcMRprI2ywTgSShxoFAGoLLFKIObP7NXYWmI8I4Scguv0V+1UDO1EGshRNaFgjiqqW9dj6KfPdF/buuEAPZ9AF3crdvgv2/Pnc4bZ88JuyWuwwAkeCxFaYGPM5DzfMt2o0OOfm8S6rIOSOCj/0lZw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=s8bVld26wdPkUEIzQ96R8Mizbjv7EQdlxJtjjv8jsMk=;
 b=pU2aszVw698ftKiXe1KqLCLvx1fja263HTnzn95Ee+lIThwxLV5LPYVTcgDP+yPdihshFwsTQ0wOi2LDnE9693wgqZP0ZAf44A39oqpOEN4Mg2FyVzF1qvBvXDOL4eDC6qd7h0jgvg5PYoKh7OwA/Bvr0Oe/vOsnyrcy3YMI6hZwuquy3TqzTk0q0cD3YSffHVp75EkQPczAZeV/J1lYuzS0OVR2znNutYWPP+wwHzUlsmRLBwVJAn285VvSz3XhhlhUESaVji/YOzPdI2FF78+zJOtw+3lret3FgsnXWkctfdfMkDnR4qrJecQg7lUmmAkc8DZidfqSlwEx2KeTtA==
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=s8bVld26wdPkUEIzQ96R8Mizbjv7EQdlxJtjjv8jsMk=;
 b=CzxL+Hyj1tuNC2w7ws3LTk0MU58q1iMnGGtjVmF7FbPmt8KrR6Rey2Gf9LX3rxidbhlA8IsFLETxhzSFv0IQY/fQ36uZNevI5n+VuyAhc6pW6z82+BE9yBElBI7sEmF4JCTYE0Em+bfoSDTHZ2LGvHxVXYS7EIt8pIvFUUOH6Ic=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>, Jan Beulich <jbeulich@suse.com>,
	"Andrew Cooper" <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v1 22/25] xen/domctl: wrap around XEN_DOMCTL_{get,set}_paging_mempool_size
Date: Sun, 3 Aug 2025 17:47:35 +0800
Message-ID: <20250803094738.3625269-23-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250803094738.3625269-1-Penny.Zheng@amd.com>
References: <20250803094738.3625269-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: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF0000231F:EE_|IA0PR12MB7749:EE_
X-MS-Office365-Filtering-Correlation-Id: 798d91a7-c7bf-4e64-8798-08ddd273002a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|82310400026|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?+R+XYjgkL0AwIIt+o9yvN+Q41HMu/S/IfcAfiu6WguNEqB9+z3fSRMuvhfF7?=
 =?us-ascii?Q?RITE4r9KgfcZl8XOVXVb0+B0vXJtNiJfEGmQgVqcKUOQCI8yfScDX4DLs6m+?=
 =?us-ascii?Q?sKXLezNX99mk8yFjYuAzmh+5kJ0Tqxa6PYXXVlFBkKXk5P+Deo807xchlg4m?=
 =?us-ascii?Q?6GRjQ08YH27mShrubCn8StMq3EXxj3MS4AbQRZOWBvrA98jbgYO3J/u1pr4I?=
 =?us-ascii?Q?tw0oKu4g3nlEV/30+fvV1sN1KSqTv4tKPV67Pn8LI+FLHaQQaquPXhjGufMR?=
 =?us-ascii?Q?n2XLuh1SKhSnUY4mZleqAQ6NV5uBG9fqwx5cwySw+wlSxsxvC/28zyze/DNt?=
 =?us-ascii?Q?J4rGmQZCMHZIHjDOjvH5Ln0rek3jyec9WIhj4nh5J+do8E4AhsrOng3/6JNb?=
 =?us-ascii?Q?2D3aaK0Wz/tax5elwZRm/BOWfIiA5n8VWT+8N/qdw+OA7QtdTTjPop1TawyI?=
 =?us-ascii?Q?h7S1Eisp1njA3wkYhQABJQ1qyqWvxUtGnh4vVxo5p9waNtda2BEYWLOhVZ5A?=
 =?us-ascii?Q?94K61zuoXAKk5u6k69o4nIlZsg/7fizghJ/sYRkGQAg+8Djx2XCJa8wPoTMm?=
 =?us-ascii?Q?83eRICzB9zR6Eca+/wqMaGgp57JagF/eDy2M0awkQWXx48QwU2joGzHcMWO3?=
 =?us-ascii?Q?nFVDHJyCDZdliaZ8Ff6yaJlzvxJq6VxsF9x79NXuezLh8lAfwBSG8G0QDHdl?=
 =?us-ascii?Q?DnmTwdkXGufEbPiTVrlEOMFEoIFS+aMZqUwuOOkmicdUB3GbdqQ0ir3reapk?=
 =?us-ascii?Q?YAroL2Sr1qzRneIMElDTL5krxd/4usOUCif7aIF6FlGPMGafT1X4AdzrkDbT?=
 =?us-ascii?Q?J4IqRD4Np2AXcRNNnykZP2dtTVr8wEJl42rkSqdawwH5jgG/jWIA39ThSvJ2?=
 =?us-ascii?Q?bg836PhdPpbj/23KSl0Ioungzlwlsu83meB5ogLdox4xppbCR07Fou+N7kqT?=
 =?us-ascii?Q?9tV6rn6/XSAick/rY8UL5zbiOaz5a9pJTp9vNJRoAkRpMeS+pVhzT8w6/lFP?=
 =?us-ascii?Q?mybyP/ru1zqGXdXy0DD+BgHL0oY5ydfsRBY7lrh7lEmnyFakkadTsAdn01JI?=
 =?us-ascii?Q?dkH5n1S7jH1hBhmVVse5iWcxjwIQCWHBWtx5cAhkwWgcp0AvX5giocTK3fmh?=
 =?us-ascii?Q?VVicFcf28juKBFk4IfxtUwhGuGVomazkFS37QtjWjAI16O9yehPzO9qn2ERq?=
 =?us-ascii?Q?ZW3H+E1tc/znnxxjBXCsRf3eSpY5pBl48VuXQC5Fb0S++0SlRwnDMKg3aFHr?=
 =?us-ascii?Q?m65NFEgvorcW3YtgF3ajIXBSufCydA34eO1f2JhTjUZ62uAgwwnssTYqkBHi?=
 =?us-ascii?Q?r7QO38hfHFVHWvBSmdRtHzJ0gUlka4GuA3qx/JZ1Ni0SbOmhGoP915xDBtaf?=
 =?us-ascii?Q?BCR9nDeL5EQSNaPaSFv5sMo9ZYLcCMHhKFL5OQb9SM3gRp3KDKlrat2/WKBy?=
 =?us-ascii?Q?Wq61jnO7liOiO+2IbLg4+aMX0svPt7cFOUpCW08hCUK/V5lY9K2mbldx0f3U?=
 =?us-ascii?Q?HsS3NXjY/IHkutAL4K776lMRhArJFJkl17qH?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2025 09:49:12.0966
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 798d91a7-c7bf-4e64-8798-08ddd273002a
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF0000231F.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB7749

Arch-specific arch_{get,set}_paging_mempool_size() is responsible for
XEN_DOMCTL_{get,set}_paging_mempool_size domctl-op, and shall be wrapped.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
 xen/arch/arm/mmu/p2m.c   | 4 ++++
 xen/arch/x86/mm/paging.c | 2 ++
 2 files changed, 6 insertions(+)

diff --git a/xen/arch/arm/mmu/p2m.c b/xen/arch/arm/mmu/p2m.c
index 4b13867fa2..878ce205e2 100644
--- a/xen/arch/arm/mmu/p2m.c
+++ b/xen/arch/arm/mmu/p2m.c
@@ -58,12 +58,14 @@ static void p2m_free_page(struct domain *d, struct page_info *pg)
     }
 }
 
+#ifdef CONFIG_DOMCTL
 /* Return the size of the pool, in bytes. */
 int arch_get_paging_mempool_size(struct domain *d, uint64_t *size)
 {
     *size = (uint64_t)ACCESS_ONCE(d->arch.paging.p2m_total_pages) << PAGE_SHIFT;
     return 0;
 }
+#endif /* CONFIG_DOMCTL */
 
 /*
  * Set the pool of pages to the required number of pages.
@@ -122,6 +124,7 @@ int p2m_set_allocation(struct domain *d, unsigned long pages, bool *preempted)
     return 0;
 }
 
+#ifdef CONFIG_DOMCTL
 int arch_set_paging_mempool_size(struct domain *d, uint64_t size)
 {
     unsigned long pages = size >> PAGE_SHIFT;
@@ -140,6 +143,7 @@ int arch_set_paging_mempool_size(struct domain *d, uint64_t size)
 
     return rc;
 }
+#endif /* CONFIG_DOMCTL */
 
 int p2m_teardown_allocation(struct domain *d)
 {
diff --git a/xen/arch/x86/mm/paging.c b/xen/arch/x86/mm/paging.c
index 3da99ad371..e6eff60df1 100644
--- a/xen/arch/x86/mm/paging.c
+++ b/xen/arch/x86/mm/paging.c
@@ -955,6 +955,7 @@ int __init paging_set_allocation(struct domain *d, unsigned int pages,
 }
 #endif
 
+#ifdef CONFIG_DOMCTL
 int arch_get_paging_mempool_size(struct domain *d, uint64_t *size)
 {
     unsigned long pages;
@@ -997,6 +998,7 @@ int arch_set_paging_mempool_size(struct domain *d, uint64_t size)
 
     return preempted ? -ERESTART : rc;
 }
+#endif /* CONFIG_DOMCTL */
 
 /*
  * Local variables:
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sun Aug 03 09:51:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 Aug 2025 09:51:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068446.1432547 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiVMw-0008Aa-2G; Sun, 03 Aug 2025 09:51:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068446.1432547; Sun, 03 Aug 2025 09:51: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 1uiVMv-00088h-Mj; Sun, 03 Aug 2025 09:51:05 +0000
Received: by outflank-mailman (input) for mailman id 1068446;
 Sun, 03 Aug 2025 09:51:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f/pN=2P=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1uiVKk-0005hH-BL
 for xen-devel@lists.xenproject.org; Sun, 03 Aug 2025 09:48:50 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20630.outbound.protection.outlook.com
 [2a01:111:f403:2412::630])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0cdc835d-704f-11f0-b897-0df219b8e170;
 Sun, 03 Aug 2025 11:48:48 +0200 (CEST)
Received: from MW4P222CA0018.NAMP222.PROD.OUTLOOK.COM (2603:10b6:303:114::23)
 by SN7PR12MB7369.namprd12.prod.outlook.com (2603:10b6:806:298::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8964.27; Sun, 3 Aug
 2025 09:48:43 +0000
Received: from SJ1PEPF0000231E.namprd03.prod.outlook.com
 (2603:10b6:303:114:cafe::17) by MW4P222CA0018.outlook.office365.com
 (2603:10b6:303:114::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.18 via Frontend Transport; Sun,
 3 Aug 2025 09:48:42 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF0000231E.mail.protection.outlook.com (10.167.242.230) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Sun, 3 Aug 2025 09:48:42 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) 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; Sun, 3 Aug 2025 04:48: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>
X-Inumbo-ID: 0cdc835d-704f-11f0-b897-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rBJLQXF4GlP7Nv6zXStrnrnd+AcyvuvgcTeoRPd6gZNV1iDRk+szg+l9SKLL5aakBS9REFZtDJUaNoUg77HeMtNpYgz5dO5oNWK3aHpXPCg4oU1ReTTVVme2R2tpi2+F2z8BbDxDzchy0cIRgVysNXZZTl5+hdOcC+RN997U1+3Oaj2+QZ/qYis9w0EOS7GxLqlQM9KpfFtYBI9MS+BCb1MJGKV7b4GhHNRgL6bTFCjky7hsHZ0lgVGqqB+ye5FX4QVSwGo+HB+mtXpLbgdbapgansDih0+Wj3Es0z+ABLHL5YhYyp4CRXxJe/7AaLw/6Hqv95/neEb4JpfzjIwqYA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=avlH7/vHIF8/jEKa4bMiJ+1WqK3wvrYKHnTbp1Pn1L0=;
 b=gp3bXd6vG2JWgTeAGEWxeWMYSYhDVI6Ve83UG0BbCmpv01xNqOrQ+gqvkLPK12T88lnuImroHN6aqDDlyAYR0ETaRz2r1vagAZfEfNWxIg79+o+Vr+v5M0ECIVKQuRX4ziYtqNWLV+C157RgdMUncpz61s8TlDpgvAcmOQhOzbYG8VR8smRDLLCS/eu5oM0dx4IlD4uVjiwiWUh5YO+rovXmD5jkeDZ+sHZMIzWk/k16+LY92xiGskhk2snA9MHOe2pt4BGZBX3b01bswSO8VMrFgiKOX2XElvX5URPygYgvUWAqotQCu8I3VguhwPq927R+wT4bkfuHxXnIJaxndQ==
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=avlH7/vHIF8/jEKa4bMiJ+1WqK3wvrYKHnTbp1Pn1L0=;
 b=lqiCS99oZpUWArpwYrjngBEpCMVztWKvo+NwR3XpALOsdy5UfNklQUWc67gNzdrMbpXosbgoeJqgGvg3+DqtZkQDPZHcoqc0EYPOdyju2sEFIwcc6XqpM+EKV4W4Ac1jFPe9hnUGWJ0cX0XF29bF9bXGy5KAf4Lh9nh4amhbGQM=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>, Jan Beulich <jbeulich@suse.com>,
	"Andrew Cooper" <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v1 13/25] xen/domctl: wrap around XEN_DOMCTL_getvcpucontext
Date: Sun, 3 Aug 2025 17:47:26 +0800
Message-ID: <20250803094738.3625269-14-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250803094738.3625269-1-Penny.Zheng@amd.com>
References: <20250803094738.3625269-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: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF0000231E:EE_|SN7PR12MB7369:EE_
X-MS-Office365-Filtering-Correlation-Id: 1539411b-88c7-470b-73ce-08ddd272ee86
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|82310400026|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?eRMmRprW07VtdnfcUc6KeekzyP+KscAEVtZiP3/t+3DdU+SAHbsm6NkLLZbz?=
 =?us-ascii?Q?C7odjFtnA7/TeWIbR+NiwGw9Ziv+riCUC5Zf5VHRU/7/uzQM4SpyeBBZyDET?=
 =?us-ascii?Q?mSnVkxgC89b1Kjpl65G+Lll361QpeCh6KuV1nzG4Vf3O2Q6mu1YHtpwPrfBx?=
 =?us-ascii?Q?Ab/DrKhHCpi95x49LwgyFT6hf08AEG+THBImOsSwyLtKOSaLpjaTUvg4d/up?=
 =?us-ascii?Q?pnXxvHVlmlxFymsSVnc9PQIyzrJ/ZvR7lxsXWch6FM3wz+GVJaxfx+9NqYUH?=
 =?us-ascii?Q?HWA7u8ZE21SV4V2BlWJAkzdmDAUg9hU7dcJ7FNlhf0rbCDGRxpmnk62oIP5l?=
 =?us-ascii?Q?UU2P1vnuSkFBSJkj5fAADv/Oxbx801Q72VRzxICCRYHF1iZqXp+J8WZh/NIQ?=
 =?us-ascii?Q?2N20LMf2D4wPqYUrVb+DpLJtqaM8L+CIMFj5JTwKqvZ9ACFIbHYyVxfx2iCU?=
 =?us-ascii?Q?pMVqbXEuZwjV/pIek5T1PR+OrbJQrghWLbV4Al8W5vEip08GP0ut+R0PGvAL?=
 =?us-ascii?Q?AU2Ko7UTsU0xF/O/2pAB/HjyM14WpAl5q6wChuJsGRsDx/6AYFAh6PHGNZ86?=
 =?us-ascii?Q?+APaDGDzLZWjPgzvTWr5/NII4HJoLFcN2jN4H7jUnL7qhQGnXIAQtncoDCUb?=
 =?us-ascii?Q?YV/fK8fj0WreR/VBjr9NDGyelCDlEINKQgmVBjTgz2DUF/BAzHH3PcqyOvrs?=
 =?us-ascii?Q?aaBqw27rZ1oURSUuebSh5i/rVNpmiEnjIF/B+NHZaIw9mr3FG0gj/e+/zYvc?=
 =?us-ascii?Q?2Q6OLI413uSgXaL4eBpzslO/labpbJG03c0EfRPF2h3js8diw/4fEQMzZk35?=
 =?us-ascii?Q?Awagv0bD6wykU1ZJAdrnOKYHbz1JeLX8JAnBLlAjmMUAgWg9m0EZzOGGGAo9?=
 =?us-ascii?Q?slXa3TdO39mWmKyDypojJhcegBnkkDF2ttCUvLCmMV7Io8ZULTkcoPM/UTTH?=
 =?us-ascii?Q?Fkp5DBpSeb2HtbutjomOcIfMZKBBzdsWBymvF0SZX+EVhLeJBkc01yoeNT9I?=
 =?us-ascii?Q?0yyYz92vUGx1wUksXpFTSH3le1pbmzjy/kjaldk3Aay8B77rbf8eojpygJOL?=
 =?us-ascii?Q?03HQwn+nQ3FEFBn5Ltahj1nvWhreiZfsoLSd24804bO3/gd+SiV4K/3B3Ap6?=
 =?us-ascii?Q?Jn7NXn7iB+5BmBpLmZvRnyVxtlzcKTIa8QbGBINX2TSkiVf4vAdGbOLIf6Tr?=
 =?us-ascii?Q?BMPyMJa6eeEL7RfdjYu2SrrYwrG3E6tfS4aFEJUtVd8MQk6CipFakRlbLNb8?=
 =?us-ascii?Q?oGhjwfcpKmK8uEOK42d06kRhMHm5q7gXTKnMG7RbYvoCLUR6IM+CGJLOfO9K?=
 =?us-ascii?Q?BY4vXfjnfRzWyivngIxoYRv8zcsceQ8ldEYuz28VDapdpWstZ0MVqX7ffZP0?=
 =?us-ascii?Q?teZekr1A0Pw+G+IB4GhW5dvb/83NG/DawcUesIJ/6yCAOuVQpBBKASMYjSMS?=
 =?us-ascii?Q?Ics1PE2fMltvXxFNHn9+durEYbaiYaaVLjRipks6+a9izN5zryeDRpd0sv/y?=
 =?us-ascii?Q?5qsln87OkT4Y4Tu65LF2Xlvcv7Jfu23D4jod?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2025 09:48:42.5032
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 1539411b-88c7-470b-73ce-08ddd272ee86
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF0000231E.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7369

Arch-specific function arch_get_info_guest() is responsible for
XEN_DOMCTL_getvcpucontext domctl-op, and shall be wrapped

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
 xen/arch/arm/domctl.c | 2 ++
 xen/arch/x86/domctl.c | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/xen/arch/arm/domctl.c b/xen/arch/arm/domctl.c
index ad914c915f..d508ee2880 100644
--- a/xen/arch/arm/domctl.c
+++ b/xen/arch/arm/domctl.c
@@ -184,6 +184,7 @@ long arch_do_domctl(struct xen_domctl *domctl, struct domain *d,
     }
 }
 
+#ifdef CONFIG_DOMCTL
 void arch_get_info_guest(struct vcpu *v, vcpu_guest_context_u c)
 {
     struct vcpu_guest_context *ctxt = c.nat;
@@ -199,6 +200,7 @@ void arch_get_info_guest(struct vcpu *v, vcpu_guest_context_u c)
     if ( !test_bit(_VPF_down, &v->pause_flags) )
         ctxt->flags |= VGCF_online;
 }
+#endif /* CONFIG_DOMCTL */
 
 /*
  * Local variables:
diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c
index 156c74e07a..29f9db89a1 100644
--- a/xen/arch/x86/domctl.c
+++ b/xen/arch/x86/domctl.c
@@ -1367,6 +1367,7 @@ long arch_do_domctl(
     return ret;
 }
 
+#ifdef CONFIG_DOMCTL
 #ifdef CONFIG_COMPAT
 #define xen_vcpu_guest_context vcpu_guest_context
 #define fpu_ctxt fpu_ctxt.x
@@ -1525,6 +1526,7 @@ void arch_get_info_guest(struct vcpu *v, vcpu_guest_context_u c)
     c(vm_assist = d->vm_assist);
 #undef c
 }
+#endif /* CONFIG_DOMCTL */
 
 /*
  * Local variables:
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sun Aug 03 10:02:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 Aug 2025 10:02:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068533.1432566 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiVXf-0005Yc-33; Sun, 03 Aug 2025 10:02:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068533.1432566; Sun, 03 Aug 2025 10:02: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 1uiVXf-0005YV-00; Sun, 03 Aug 2025 10:02:11 +0000
Received: by outflank-mailman (input) for mailman id 1068533;
 Sun, 03 Aug 2025 10:02:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=f/pN=2P=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1uiVN0-0005C5-A7
 for xen-devel@lists.xenproject.org; Sun, 03 Aug 2025 09:51:10 +0000
Received: from NAM02-DM3-obe.outbound.protection.outlook.com
 (mail-dm3nam02on2060f.outbound.protection.outlook.com
 [2a01:111:f403:2405::60f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6109e952-704f-11f0-a321-13f23c93f187;
 Sun, 03 Aug 2025 11:51:09 +0200 (CEST)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 IA1PR12MB8520.namprd12.prod.outlook.com (2603:10b6:208:44d::5) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8989.18; Sun, 3 Aug 2025 09:51:06 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d%7]) with mapi id 15.20.8989.017; Sun, 3 Aug 2025
 09:51: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>
X-Inumbo-ID: 6109e952-704f-11f0-a321-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=e8EYFC4xu2bWWkLLDEEhKNV/29IogtOM0iD1aGF+P7rmg3yuC2nzESSG6sA8ZLrn7rcWaTnlIFmewKYHv303XFV4QGMsw7Pja0JLBEzfEBY+GW3nManEzn72veYseBxiEN05S5LTgwETt1TgKZ/diKY8SIcpzFjL09/17oFfwE1xt4Yi660hw4xYxLl7cLlSz7wNX660ScqSGzJxuuejDHTk82yhSyFcSIuQPglkvEGUl5ueG+MZaAdHvchPxDItFIYGsuP+0a5AIwwCZkNVfiW5WS7wMwkblScKRWpQKbJswn+6lMtNt2bNkiRcx0bLZh8QqlxCVIG2g1nnfmizlw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=31vOr+6hkU+kjHdDMaaud8RR0o+tMZNmuY0vWAWTTFM=;
 b=VjGauDdt2vPtdCzMdiU/eTNFhjUUyHavqxQI8LfyBMBs4mb7Ri96WUtUojJtqMMdU5HOILGTBAt3KcSGwD+U3uI4f2eDrrsnHQ8Kdn7fdCxcxE8/U0NcajIUZzUhtutKlKfzK72+kkQADQNmVz/yzmvbWbbaXaNOGYNPADNtNHxjGmaV4+f8066GqgaQVErx6IeKflV9bkMwcS6lKIS+Y0/ON7HsFZohtiWGQvEpERItf7zorDenQhtTMWb329J1wurg5w+jCZgoE+0evTuPGPriKYB/+6+FZ8rzdquTKXyGBlp8iTVRciOat+8D0g0uWFDmu4azy9M1RJ3J7DRSCw==
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=31vOr+6hkU+kjHdDMaaud8RR0o+tMZNmuY0vWAWTTFM=;
 b=cIyAXs0y9WsI9sVmom+ffnWppwu/rHZI874Z+V/sg+jVZkzHHkULrF/VP9jL6zer5dgCcTNAPtRMXFNyKJRaZ90Dt1HWCxiOl+PZ1edfGUd2oOrgQfPE2klJixxxiAXIqyK/azFahIpGHi70C2j7WPf3wg8TOPDJONDBOQ+Opv0=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, "Orzel, Michal" <Michal.Orzel@amd.com>, Julien
 Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"Stabellini, Stefano" <stefano.stabellini@amd.com>
Subject: RE: [PATCH v1] xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE
Thread-Topic: [PATCH v1] xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE
Thread-Index: AQHb/S2yWmLQISYx7E+NkBDkce1BCbRI8U4AgAfL0xA=
Date: Sun, 3 Aug 2025 09:51:05 +0000
Message-ID:
 <DM4PR12MB8451408263AB7A8C96FE691BE120A@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20250725063039.2526488-1-Penny.Zheng@amd.com>
 <ba091eb3-f1d4-4786-ab6c-c8636628a0b2@suse.com>
In-Reply-To: <ba091eb3-f1d4-4786-ab6c-c8636628a0b2@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-08-03T09:50:54.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|IA1PR12MB8520:EE_
x-ms-office365-filtering-correlation-id: 377bb8eb-2a9c-41af-ee41-08ddd27343cb
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?amxldTlmaVpUanU1K21YbmM3QXJyR0dhbW91ZEd3cE52Ti9DT0tzdEdVME5y?=
 =?utf-8?B?aWVVdUZlajRuZSt2UXhSbUhjTjB4c3Bka0ZDUjZGc0dKRjVkMUtSdUxpS2V3?=
 =?utf-8?B?MnVGMVpoWnVUdGZ5bXo2SlQvOVdUN2JMZUVnVmRhRzc3cTJycmx5MStuQUpS?=
 =?utf-8?B?SVNLL0J3dmRlRTR0VjVwZnZMRTNPU2NVSWdzZnhVanA2eWVtWmUrVnBEVXlO?=
 =?utf-8?B?NzBnR3Fia3p2RHFIWEpzVHNtbWR1TGZTaGlCOXYxV3p2M05jR3VXUWFMZUNp?=
 =?utf-8?B?d015WWlHN1pUUWlieEJOQWwvd0JJMUd4ZFBHV0U1VHJIeTdhZmNUMXcxRjdD?=
 =?utf-8?B?NXBFekpxMi9oaFUyNTAxbDJxempUNitSLzYvQml3UXB0S2xzZTNsWXhkd00r?=
 =?utf-8?B?MktoRTQxQmg1UEI1dnMrSEwyU09TanRneHJOVTFYb1dzTG9IbS9GbHJSMUw0?=
 =?utf-8?B?MnZMRVp5Tk42eWZ6TXRNVHdFSkV2NWdJMUw2VlZoT1ZtZVpLM0wzSnlncEpM?=
 =?utf-8?B?cEptYnhxMUtXMGMrek5qWk9BbU03VGxPbjhLMkwxUWhrL1ZYeGY3TCtlQ1M3?=
 =?utf-8?B?dlVsU0QvQ1FNU0ZTdTFrcTVtZVkySGU5NDJVanlZRDd2UGtueVdtOGJpWDFo?=
 =?utf-8?B?czZ1RDhDS0x2Sk96NzdmNGZUOGE1SVh6M1JuQ2V4VVhTV0ozNUZodHNQc1gy?=
 =?utf-8?B?KzNWYm5USUpRSEpuMmFhcU9rUzRmSXB2OHk3M3NzT3l0cWhoWENjdi9Oa1Yr?=
 =?utf-8?B?NnZDOEpKaklNWFlFd2RvT2JrK0JEem5LaUNUZVMybVJUYVFvVmNBd251SXFN?=
 =?utf-8?B?VWdqazFyTnJVOTNkWmFwRlR4TUE1U3lsZmQyQ0pFUXRwR0N3dG5rME90WUh4?=
 =?utf-8?B?NE1CMFlKOEVIYVJucFlBeWp3OHlhMWFtQ3JtZmpiMHdVU2Y2eFBIM3hqdkhQ?=
 =?utf-8?B?blkydzNBSDhnUVZBbmJ5TzRuMDBNMXU2S29NWmZPaDUvOTBSRUxNUUxQM3Ry?=
 =?utf-8?B?eDBpeGV3cEh0cUtLanNXUzFRSitxbmdCdGtLTWxFU25MbVkwVXJxWUtJWU5s?=
 =?utf-8?B?eUgyQWlhY2NsSVVTajBmSFBOcEl4ZmFPUzhUMjBSOG9VYjV3MW9NYjFPNkV4?=
 =?utf-8?B?U3NqcG5DNHQwWHQyOExFcmszQS9tUmNSZXZKMTJnWHpjNllGMDMzd2luRlJy?=
 =?utf-8?B?R09YaXQrT2h6SlpnSmJYcFk0eU5NeVEwaDdlQ0tieVZ3V3VLVUF2WmZmaTFV?=
 =?utf-8?B?QWh6VGFNNjJpRE8rSnh0b1RKSWVCazRHY3hrdzUyQVhPb3d5UzArekRQMUhz?=
 =?utf-8?B?eU53RDUwRThOaUozcWZpbzBQeXVRU0dLb1lNMzl1d3cyNGJNc3FyVGVqNEtE?=
 =?utf-8?B?NndCbzI4R3RGbU54WnlBbFBUQzhpUkVkYy9nMzh5U3Z6aytnclRweGh3Ky9U?=
 =?utf-8?B?eGoyMmt2MjA0MDY0ZmVFMkYyNmxvcDBKQnZPTUdwNk13L0FaMDdvSTJJOHdC?=
 =?utf-8?B?Ly8vUHg5R1BZMzhRVG1rRTI2Ky82d2VnNHJjdXk0alNEYjV2ci9NaUQvSDhD?=
 =?utf-8?B?UmVmaURpT2Y0RlpYUHlmczNHaXBJelB6Uks5cks0c0czRzB0R2VtU3Z1OTJk?=
 =?utf-8?B?cHBYN29MNGkzYmlIUXJUcmNxcGpwTElqMFdqVlFmYmhsRnRMbFgrUkNCZVo4?=
 =?utf-8?B?VTJIS3VBNU1CM040KzFuSVpNVkdaOExPNnZGNXEwN0x6a3M4SytMZkRSRnRF?=
 =?utf-8?B?QWNMWWplSnMycUhnQ3BNRTVlUUlJNFFKRUEwMlJBREdxNVdYMDRSRHc0R1cw?=
 =?utf-8?B?VTlXSzkxWitsSjhZT1d0b3VXY3lnNFV1cUtETXU5bE1ZSWxraTVlcExkVzJS?=
 =?utf-8?B?aUcwam9MU3l5cU5VeDJlLzFhcEN4bFZIT0xHc2pWUUJWU1hOWkJoOWpPTGxM?=
 =?utf-8?B?bEZ2emduSUVSS0JFUm5TbUR1UURyMUdOM0NoaGVpdTRMQnExcWwzYmE5RFll?=
 =?utf-8?B?VndEY29QcmZ3PT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?cmhIVEdUN2RJWFZzTnRJcUxyRit5Zkx2cnhKZEpIYnY3bU9keHNJY1FoVzVK?=
 =?utf-8?B?RXdVQWtWcnN3ZHUxaDMwVFVEeGVXM1h2b2R4TkVHMkU1Ukp2UGxZdWNVUXhz?=
 =?utf-8?B?VUlNdGx5V05oaVV4VXl4Tm94a0d6M0p1TXdPVXFEelQwdTFkSHloUm5GOTdH?=
 =?utf-8?B?WlJ1STMyNDF6MlU1cWRZcjhWVjBaTDAvOHBaRWVYbXNYSytLUGsvcTRIaXEx?=
 =?utf-8?B?TkFFNHBGcnZKbzU2Y3lLM0E0UnUrMWFTODVmbU9kdEVvZkh1TUdHTldzWkpY?=
 =?utf-8?B?dlRlb1h6OStxZDVCUG16cnF3NHNZUXJ2aUpLV3YvOE5vR0dCQjl4a1A1YXNF?=
 =?utf-8?B?VVJ1azE4UzJVYW1hT1BSYkRSYzh1aVVOWHJBMlkxZ0NKUklFbHJaMFdKZmdZ?=
 =?utf-8?B?S0JSNFZiYXhGOE1ubExZU0E5YS9QUHovUTBQaEZVaFZXQjNiSE4vcjJnbW1r?=
 =?utf-8?B?TEpIZ1J3Rzh2bmphQUorZUxFZzI2dGF0WEx3emxpOG1mUVJkSmRacE9JNHAr?=
 =?utf-8?B?YitjNGYzMmt2N1hCaTNJRVlPOHNqK3hCSXZhNENJYmJwVmRSeFhzQnJGdWN2?=
 =?utf-8?B?TTgxUWZpZjF3bnN3RkVXQlRqNnpHMmtUbzBZTXdDQTNCalNkTk03Ulh6RnA5?=
 =?utf-8?B?dVFBVXE5STVuZTFyTGFNWWRIK0gwd3RFT2EzaDVESE5wNWlLK3MwYXVmYjBW?=
 =?utf-8?B?ekpEYWZ4bUJmR1ExQjQ5bXBDSm9kYmdQLzFna2h6bHFmMmZrdTRNbVhEbEtG?=
 =?utf-8?B?N0IxQlhLb2o2L201QmhmWlBVSExJZG81TDhFbVB5VXBmYWlSalkrNzUwRU1N?=
 =?utf-8?B?MFVVYnVJOWQrUE5IQzFrdDY4WFRXcUwzdXNia3U0MEJEc3JLLzlmSmdYUmpO?=
 =?utf-8?B?b2xHRmZtZGFsK2RybzhyQTVjelhsOVN2eFNHYUxEcERHSGVSVE9KdXdwK0Rr?=
 =?utf-8?B?cXNLQXJ4U1FkdjQxWEdZUG9RNENiYUVqU0xxcmloZTk0TjVFOVBrd1p6aEhT?=
 =?utf-8?B?bkVzQXl5Wmc3WVlQL1ZVMmpaZkRGTDdZNFBJZktta0dQbFFUbGdNTm1sam5K?=
 =?utf-8?B?WTZVdXNxRnNSdDZKblhMdjJVbjU0QkpBWG8rMVZGTmxxNGhCWXYvS3U3cDZx?=
 =?utf-8?B?VExRYTJUcjJiUmEwc2d1MVVmY0x1MG8zWmVFZkFteVBEUUNxSjUwbTlYcTl5?=
 =?utf-8?B?RkFQbG1QT0VKUm9DQnFURlNRb2hLNWp3aFJXMmpvamNLRzJ4Y2d5R3ZDYkRB?=
 =?utf-8?B?a0tVb0JXMTJ4YVV0UGFUNWRTa25scWY4Wk8rUFVlalRLRHRSZ0ZLTTB5U3dE?=
 =?utf-8?B?c3FMNkxENzh3cG1uSE1UMzZwV3JYV3EyUDFvcTlLTXZPem5mR2FZR053ZlU1?=
 =?utf-8?B?RlVIUkZzdUkwbmVGZXN1dnJrcEJkT1pUYTFCcHYzSFNteWdNdEY1cmh6UzJp?=
 =?utf-8?B?UXNvYTV0WFd2ZCtqS2tXNFdtWkIrb1FkL2pIQlVMdjFBc1NXajRpMVVubzZw?=
 =?utf-8?B?UGNkSWdCamFMYWkyRGp5VlQrcFQ5Um5GNlNiV2JuOHdZUHMwaThIbHZPV2V6?=
 =?utf-8?B?T1J1YjI0ZWlJLzBDU1hXR09Rdk4yZXBhTkxnWk84VVU2SHBkaVcwNlIraStE?=
 =?utf-8?B?SldIUUlPdGxSYnJ6QmRwUTA0MzVnbnRrajRVZHZMMzhud1I3YzZGYnlzck5Z?=
 =?utf-8?B?QzNGQU9Tclc0b28wVmFTY211U0ZzVTB1Mnk4OHZPalVaN0pPaE85ekNzMmZZ?=
 =?utf-8?B?YlU2SFdTSDlaYkQvMzZwdjFlV2VKbWRHVkpnL1lHNm5RQmpxbWNBYng1SEdM?=
 =?utf-8?B?SFIwRi9EOXJlVGdkRUZCREFjck5RWjRlUWdFUFpiV1hNM0ZUR2h2N3AzRlRJ?=
 =?utf-8?B?bXgxdC9CMVllYng2RXRIVExndTl0WDdSYVI4R0Z0cTg4UjVKN2M1T2wvcVZi?=
 =?utf-8?B?RExlS3FXQ3JGRysxejk2bjdoc1ZNZ2VwUHJQN04yNmtzSFFZWG1rS0p0am5K?=
 =?utf-8?B?eEUrWWtGeS82TStUQU5DYzJhUE9CbDAxUVFyMWtaRExIb3dtN1k2bUViOGVT?=
 =?utf-8?B?ZjVKdTdQMmJzSE81cVdDUkh4MlB6ZzlIQnRqWmY5anl2em5wOGJDQUVYY1dE?=
 =?utf-8?Q?9RFY=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 377bb8eb-2a9c-41af-ee41-08ddd27343cb
X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Aug 2025 09:51:05.6537
 (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: NDctOXC7JBKP+/UxVEXIOGpeCBBrm5OOUrU5N8vuBoDy9k7pgwhk4nJjPrKC1ECHKapDXoz4GRqm2GJzQtGH8w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB8520

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFR1ZXNkYXksIEp1bHkgMjksIDIwMjUg
Njo0NSBQTQ0KPiBUbzogUGVubnksIFpoZW5nIDxwZW5ueS56aGVuZ0BhbWQuY29tPg0KPiBDYzog
QW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT47IFJvZ2VyIFBhdSBNb25u
w6kNCj4gPHJvZ2VyLnBhdUBjaXRyaXguY29tPjsgQW50aG9ueSBQRVJBUkQgPGFudGhvbnkucGVy
YXJkQHZhdGVzLnRlY2g+OyBPcnplbCwNCj4gTWljaGFsIDxNaWNoYWwuT3J6ZWxAYW1kLmNvbT47
IEp1bGllbiBHcmFsbCA8anVsaWVuQHhlbi5vcmc+OyBTdGVmYW5vDQo+IFN0YWJlbGxpbmkgPHNz
dGFiZWxsaW5pQGtlcm5lbC5vcmc+OyB4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmc7IFN0
YWJlbGxpbmksDQo+IFN0ZWZhbm8gPHN0ZWZhbm8uc3RhYmVsbGluaUBhbWQuY29tPg0KPiBTdWJq
ZWN0OiBSZTogW1BBVENIIHYxXSB4ZW4veDg2OiBtb3ZlIGRvbWN0bC5vIG91dCBvZiBQVl9TSElN
X0VYQ0xVU0lWRQ0KPg0KPiBPbiAyNS4wNy4yMDI1IDA4OjMwLCBQZW5ueSBaaGVuZyB3cm90ZToN
Cj4gPiBJbiBvcmRlciB0byBmaXggQ0kgZXJyb3Igb2YgYSByYW5kY29uZmlnIHBpY2tpbmcgYm90
aA0KPiA+IFBWX1NISU1fRVhDTFVTSVZFPXkgYW5kIEhWTT15IHJlc3VsdHMgaW4gaHZtLmMgYmVp
bmcgYnVpbHQsIGJ1dA0KPiA+IGRvbWN0bC5jIG5vdCBiZWluZyBidWlsdCwgd2hpY2ggbGVhdmVz
IGEgZmV3IGZ1bmN0aW9ucywgbGlrZQ0KPiA+IGRvbWN0bF9sb2NrX2FjcXVpcmUvcmVsZWFzZSgp
IHVuZGVmaW5lZCwgY2F1c2luZyBsaW5raW5nIHRvIGZhaWwuDQo+ID4gVG8gZml4IHRoYXQsIHdl
IGludGVuZCB0byBtb3ZlIGRvbWN0bC5vIG91dCBvZiB0aGUgUFZfU0hJTV9FWENMVVNJVkUNCj4g
PiBNYWtlZmlsZSAvaHlwZXJjYWxsLWRlZnMgc2VjdGlvbiwgd2l0aCB0aGlzIGFkanVzdG1lbnQs
IHdlIGFsc28gbmVlZA0KPiA+IHRvIHJlbW92ZSByZWR1bmRhbnQgdm51bWFfZGVzdHJveSgpIHN0
dWIgZGVmaW5pdGlvbiB0byBub3QgYnJlYWsgY29tcGlsYXRpb24uDQo+ID4gQWJvdmUgY2hhbmdl
IHdpbGwgbGVhdmUgZGVhZCBjb2RlIGluIHRoZSBzaGltIGJpbmFyeSB0ZW1wb3JhcmlseSBhbmQN
Cj4gPiB3aWxsIGJlIGZpeGVkIHdpdGggdGhlIGludHJvZHVjdGlvbiBvZiBDT05GSUdfRE9NQ1RM
Lg0KPiA+DQo+ID4gRml4ZXM6IDU2OGY4MDZjYmE0YyAoInhlbi94ODY6IHJlbW92ZSAiZGVwZW5k
cyBvbg0KPiA+ICFQVl9TSElNX0VYQ0xVU0lWRSIiKQ0KPiA+IFJlcG9ydGVkLWJ5OiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+ID4gU2lnbmVkLW9mZi1ieTogUGVubnkgWmhlbmcg
PFBlbm55LlpoZW5nQGFtZC5jb20+DQo+DQo+IEl0IHNlZW1zIHByZXR0eSBjbGVhciB0aGF0IHRo
aXMgcGF0Y2ggaXMgd2hhdCBjYXVzZXMNCj4NCj4gbGQ6IHByZWxpbmsubzogaW4gZnVuY3Rpb24g
YGFyY2hfZG9fZG9tY3RsJzoNCj4gKC50ZXh0KzB4NWI4NWQpOiB1bmRlZmluZWQgcmVmZXJlbmNl
IHRvIGBwYWdpbmdfZG9tY3RsJw0KPiAoLnRleHQrMHg1Yjg1ZCk6IHJlbG9jYXRpb24gdHJ1bmNh
dGVkIHRvIGZpdDogUl9YODZfNjRfUExUMzIgYWdhaW5zdCB1bmRlZmluZWQNCj4gc3ltYm9sIGBw
YWdpbmdfZG9tY3RsJw0KPiBsZDogLi8ueGVuLXN5bXMuMDogaGlkZGVuIHN5bWJvbCBgcGFnaW5n
X2RvbWN0bCcgaXNuJ3QgZGVmaW5lZA0KPiBsZDogZmluYWwgbGluayBmYWlsZWQ6IGJhZCB2YWx1
ZQ0KPg0KPiB0aHJvdWdob3V0IHRoZSB2YXJpb3VzIGJ1aWxkIGpvYnMgaW4gQ0kuIENvbnNpZGVy
aW5nIHByaW9yIGlzc3VlcyBJIGZlZWwgdXJnZWQgdG8NCj4gYXNrIHdoZXRoZXIgeW91IGFjdHVh
bGx5IHRlc3RlZCB5b3VyIGNoYW5nZS4NCj4NCg0KU28gc29ycnksIEkgdGVzdGVkIGl0IHdpdGgg
bXkgd2hvbGUgZG9tY3RsIHBhdGNoIHNlcmllIGFuZCB0aGUgZXJyb3IgZ290IGhpZGRlbi4NCkkg
cmUtc2VudCBpdCBpbiB0aGUgaGVhZCBvZiBkb21jdGwgcGF0Y2ggc2VyaWUgYW5kIHRlc3RlZCBp
dCBpbiBoaXMgb3duLg0KDQo+IEphbg0K


From xen-devel-bounces@lists.xenproject.org Sun Aug 03 13:19:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 Aug 2025 13:19:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068605.1432576 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiYcW-0004sc-Ee; Sun, 03 Aug 2025 13:19:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068605.1432576; Sun, 03 Aug 2025 13:19: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 1uiYcW-0004sV-BF; Sun, 03 Aug 2025 13:19:24 +0000
Received: by outflank-mailman (input) for mailman id 1068605;
 Sun, 03 Aug 2025 13:19:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=iRTh=2P=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1uiYcU-0004qs-EP
 for xen-devel@lists.xenproject.org; Sun, 03 Aug 2025 13:19:22 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 74fd357d-706c-11f0-b897-0df219b8e170;
 Sun, 03 Aug 2025 15:19:17 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-4561607166aso24929305e9.2
 for <xen-devel@lists.xenproject.org>; Sun, 03 Aug 2025 06:19:17 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45923c34af8sm30149645e9.24.2025.08.03.06.19.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 03 Aug 2025 06:19: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>
X-Inumbo-ID: 74fd357d-706c-11f0-b897-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754227156; x=1754831956; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=0d54vzT0IEtRJjFgIgZYJvAjoUZJMvrVl8H8Cakn0OM=;
        b=k1+WmqIA0hnxez+LCRxXVPOwzuvZ3ampx7uFbfemPF1U2OGRoSpOm9xX6Aiksl/oEY
         seanIwf05o2nUrLCd/kodyN65sEXdvlD8EMdy4rptCPCTy50ZHzMP7zD2xPKJd+Mb6wN
         9BzIx+q7mdGpX5ReDQgrEUC8ACUKmm+qCvpEA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754227156; x=1754831956;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0d54vzT0IEtRJjFgIgZYJvAjoUZJMvrVl8H8Cakn0OM=;
        b=wb8SRNo1PoJ6n2swuFbh2vbVrMNts0I0q1Pgi16BSgZb17kHKZVXyjLjCfHaAKsxND
         ejTUHRQgJI20QgnLIC/3j8l+ryEzNCES3IrNHE4zbiG3MMKvaMOwfkRBy/Pt3e5O0R2o
         hijU5bkGMZXvdiJvFPIB5LhtJwQdgyWYARlgkUKSfL1su1MWWQ02wiRk3R0SLeH+jzrs
         hnlvDtePUF4sG9KYSdOKRTd12Aivyx7aEZO6CTok0ImmLTuh0odWTbDdyd4iXVVLCii9
         6UU2n2DSI1hMLzKtDkg8zEoRvMK+jdBYhH9Yd2qBYNf935AUXxveLgp4kORc8axAdFHa
         ZSeA==
X-Forwarded-Encrypted: i=1; AJvYcCXr4cX0/z9JR13vSIVXfn3VBa6YfXhBFfEe5epyH3WkX2s5gpzwJk/0IEu+s7U76Y0TlSIMf1mws4s=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxyGmQNBOnaM1eaREm+VVAZcJLchPnYTlJkiy599z8vqP8g4fnZ
	+k49o2Xt1gkJG4ukzNUF1Ch1TGooP31GT1S+7vSbo++k9VF6dbqcPjRgBSqL8t9Rkks=
X-Gm-Gg: ASbGnctPYq2IrBBjqYzbWBFeTHbFdTBxV3jIqus6PvC3A1fcD9eny55UTWFCl5vRHuH
	kcafZtubZ/tGHEsFs4WgK0DWfwQf6c8iZwDC/zQLoTxmoOSjK/E9BErpPT2zXYDdKjorO8zBW9Q
	zw8C7ND/WR49eOHo525jXDaHt8dGo14IlQhVUw4PdP2N3xGpwBeIrJczJnZl9TCRE9/yQGWAx9w
	C8LmBOSeu6kjVmVg0++nPwXImlZdViStJxmktqXT4/QtZbpaESs55WhWPZZ03liCWp/XV9HG2j/
	Lj00JnH45RVibf62Mwfbba4ZMNDqvophK3jsnjQ9ULHPJomB/jtsKwiXKkrJ3tg6JGyqWoZS5mL
	36bVhYAHErFAm1EcothO78/ZKz+1ZgndMozzC1RGGg9HumAqMeQHp8mZb3FHKPDGAkhk3
X-Google-Smtp-Source: AGHT+IHD4uUFZrYfolaCwpwtvzGm8rIyaQRszIGouJe4P3K7KmojEQh5XJ9r//0tHaFemcyJedStJA==
X-Received: by 2002:a05:600c:1d05:b0:459:d709:e5c9 with SMTP id 5b1f17b1804b1-459d709e963mr8815925e9.6.1754227156362;
        Sun, 03 Aug 2025 06:19:16 -0700 (PDT)
Message-ID: <c1aff2d0-0542-48da-a0bd-30d0eae1eef4@citrix.com>
Date: Sun, 3 Aug 2025 14:19:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen: rework error handling in vcpu_create
To: Stewart Hildebrand <stewart.hildebrand@amd.com>,
 xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Dario Faggioli <dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>,
 George Dunlap <gwd@xenproject.org>
References: <20250801202418.38977-1-stewart.hildebrand@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: <20250801202418.38977-1-stewart.hildebrand@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 01/08/2025 9:24 pm, Stewart Hildebrand wrote:
> In vcpu_create after scheduler data is allocated, if
> vmtrace_alloc_buffer fails, it will jump to the wrong cleanup label
> resulting in a memory leak.
>
> Move sched_destroy_vcpu and destroy_waitqueue_vcpu to vcpu_teardown.
> Make vcpu_teardown idempotent: deal with NULL unit.
>
> Fix vcpu_runstate_get (called during XEN_SYSCTL_getdomaininfolist post
> vcpu_teardown) when v->sched_unit is NULL.

This is unfortunate.Â  It feels wrong to be updating stats on a domain
that's in the process of being destroyed, especially as a side effect of
a get call.

But, I wonder if we've uncovered an object lifecycle problem here.Â 
Previously any vCPU which was addressable in the system (i.e. domid was
addressable, a d->vcpu[x] was not NULL) had a unit.

>
> Fixes: 217dd79ee292 ("xen/domain: Add vmtrace_size domain creation parameter")
> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> ---
> v1->v2:
> * move cleanup functions to vcpu_teardown
> * renamed, was ("xen: fix memory leak on error in vcpu_create")
> ---
>  xen/common/domain.c     | 14 ++++++--------
>  xen/common/sched/core.c |  5 ++++-
>  2 files changed, 10 insertions(+), 9 deletions(-)
>
> diff --git a/xen/common/domain.c b/xen/common/domain.c
> index 5241a1629eeb..9c65c2974ea3 100644
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -388,6 +388,8 @@ static int vmtrace_alloc_buffer(struct vcpu *v)
>  static int vcpu_teardown(struct vcpu *v)
>  {
>      vmtrace_free_buffer(v);
> +    sched_destroy_vcpu(v);
> +    destroy_waitqueue_vcpu(v);
>  
>      return 0;
>  }

Along with this, you want a matching:

diff --git a/xen/common/domain.c b/xen/common/domain.c
index 5241a1629eeb..3fd75a6d6784 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -1412,8 +1412,6 @@ static void cf_check complete_domain_destroy(struct rcu_head *head)
Â Â Â Â Â Â Â Â Â Â Â Â  continue;
Â Â Â Â Â Â Â Â  tasklet_kill(&v->continue_hypercall_tasklet);
Â Â Â Â Â Â Â Â  arch_vcpu_destroy(v);
-Â Â Â Â Â Â Â  sched_destroy_vcpu(v);
-Â Â Â Â Â Â Â  destroy_waitqueue_vcpu(v);
Â Â Â Â  }
Â 
Â Â Â Â  grant_table_destroy(d);


> @@ -448,13 +450,13 @@ struct vcpu *vcpu_create(struct domain *d, unsigned int vcpu_id)
>      }
>  
>      if ( sched_init_vcpu(v) != 0 )
> -        goto fail_wq;
> +        goto fail;
>  
>      if ( vmtrace_alloc_buffer(v) != 0 )
> -        goto fail_wq;
> +        goto fail;
>  
>      if ( arch_vcpu_create(v) != 0 )
> -        goto fail_sched;
> +        goto fail;
>  
>      d->vcpu[vcpu_id] = v;
>      if ( vcpu_id != 0 )
> @@ -472,11 +474,7 @@ struct vcpu *vcpu_create(struct domain *d, unsigned int vcpu_id)
>  
>      return v;
>  
> - fail_sched:
> -    sched_destroy_vcpu(v);
> - fail_wq:
> -    destroy_waitqueue_vcpu(v);
> -
> + fail:
>      /* Must not hit a continuation in this context. */
>      if ( vcpu_teardown(v) )
>          ASSERT_UNREACHABLE();
> diff --git a/xen/common/sched/core.c b/xen/common/sched/core.c
> index 2ab4313517c3..fb7c99b05360 100644
> --- a/xen/common/sched/core.c
> +++ b/xen/common/sched/core.c
> @@ -321,7 +321,7 @@ void vcpu_runstate_get(const struct vcpu *v,
>       */
>      unit = is_idle_vcpu(v) ? get_sched_res(v->processor)->sched_unit_idle
>                             : v->sched_unit;
> -    lock = likely(v == current) ? NULL : unit_schedule_lock_irq(unit);
> +    lock = likely(v == current || !unit) ? NULL : unit_schedule_lock_irq(unit);

This is obfuscation for obfuscations sake.Â  The normal way of writing it
would be:

Â Â Â  if ( v != current && unit )
Â Â Â  Â Â Â  lock = unit_schedule_lock_irq(unit);

and that is precisely what the compiler emits.

Moreover it also matches the pattern for how the lock is released, later
in the function.

~Andrew


From xen-devel-bounces@lists.xenproject.org Sun Aug 03 13:36:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 Aug 2025 13:36:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068614.1432587 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiYtJ-0007eO-QZ; Sun, 03 Aug 2025 13:36:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068614.1432587; Sun, 03 Aug 2025 13:36: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 1uiYtJ-0007eH-MS; Sun, 03 Aug 2025 13:36:45 +0000
Received: by outflank-mailman (input) for mailman id 1068614;
 Sun, 03 Aug 2025 13:36:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=iRTh=2P=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1uiYtI-0007eB-Gb
 for xen-devel@lists.xenproject.org; Sun, 03 Aug 2025 13:36:44 +0000
Received: from mail-wr1-x443.google.com (mail-wr1-x443.google.com
 [2a00:1450:4864:20::443])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e4b5bce4-706e-11f0-a321-13f23c93f187;
 Sun, 03 Aug 2025 15:36:43 +0200 (CEST)
Received: by mail-wr1-x443.google.com with SMTP id
 ffacd0b85a97d-3b786421e36so2050659f8f.3
 for <xen-devel@lists.xenproject.org>; Sun, 03 Aug 2025 06:36:43 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3b79c3b9386sm12320444f8f.18.2025.08.03.06.36.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 03 Aug 2025 06:36: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>
X-Inumbo-ID: e4b5bce4-706e-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754228203; x=1754833003; 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=gcZ57Ju+AG87FAmYQ9GK17sdn22oACPVY3R5b3qBqjw=;
        b=vHb4TJ5MObqIBK4HS/A8B+w2eoAXh0s1FwU8/80t1RpFuoyDEQD39oW6O/c2+aOQCE
         kPqc/I8D1J7XVLmN7L7q5HNtanc54U9AxsFTA8H/63pDCyNoq4w/CLM4wsoVJABtCRSa
         z9pALEcIy72GZG1rcLDJMwadOH5YmnhM7x9ag=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754228203; x=1754833003;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc
         :content-language:references:to:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=gcZ57Ju+AG87FAmYQ9GK17sdn22oACPVY3R5b3qBqjw=;
        b=KS8gHsGSsijZrwAyRbROKr0hf9FEhvr9mSp6xcXiD22P4mn4Z438SRIP2uVlnpt9vR
         g+LTszI/B7FvkP6NmtPNleMO91wBHIuhTcwCi7lYjawfRm6CAtKu+XcDi0434z3pZ8dY
         zRCvGK9gC5f7qHGpjcOahLgo4XeDEbxCoEfVL0n/B06pngYXxs54o3RS6Zy0APWLy/N4
         5pRvEiNxthQ2mE76+nHTlr2S0H1z5ruwiuG8P+Es+wAR+RkRukSBId0U0umnGJiffvOt
         YubcOw0oesMaYA0kGymiTEnIybp4CZPGiyCT9vUweWBcJxGM3zGfiYVbzZso9875Eybn
         AR+g==
X-Forwarded-Encrypted: i=1; AJvYcCVa3vnUFHNabARIkucFKjcezXqDLetz20MOFboYN7IHmRu/EWbmlDlSqUtI15CA4xOAZ97ohJAYJGA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxtiKD1Bd4rts/lBt8JtJow34tiCMGh16ZNQokxKd3QE6r7uJjZ
	qGDxSIGI3DHBWrpBn+N4HZM+kmruvVgvJqJvAYR0LRoKxCL+bGo78CukDU8oOasZ4+0=
X-Gm-Gg: ASbGncuwS0cA3nhBtphE5qalpxAMTGIyeJcTmimuBw+ganUSAhcxFowB1Yr2z4FFJek
	q34vFXmjKgWTKloLMBfTLOWCpAc6YlJ9S0B7ZzODGJwcV/iTIzhJwPch8og1SN8zRgBX+xw3ZGd
	WdVyb3SalwDoapKeFcRMH1ONxs3pwBNFvIp8GZOqFBWPeAysnzK4pAszcEBEsCDGssJ00Msp3VR
	PlrZJoX0J4IpF6+wbGw0ECanHvoTTBRKiuWXFb7zPjXJ6cX93qN7tBgtyn+zsBXetvH2NzZk9Lm
	5o/xRdmzV7iXqYWnBm4f4DHjiOCbGpORBjxJOWPyWy6KH8OZaGXqMp5tLrxtta7fL98ZM1PMEy2
	nVqrslibZjNQCwAOyfjUEh7Ldg/KkzkZ3QOsGyz26hthMjhUrL5tfoHnVoyHWVA2ZYueg
X-Google-Smtp-Source: AGHT+IESOPAnau0u8S0AKGncn4+UuUNzqeKcgCeasLBX7eoVSx3Ebp/3yfgiRQWHlnfX9KYyCIZIsw==
X-Received: by 2002:a05:6000:2c11:b0:3b7:9214:6d73 with SMTP id ffacd0b85a97d-3b8d9472ee1mr4463794f8f.20.1754228202945;
        Sun, 03 Aug 2025 06:36:42 -0700 (PDT)
Message-ID: <25afca10-18e7-445c-b914-98d767016d70@citrix.com>
Date: Sun, 3 Aug 2025 14:36:41 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Fork or replace dependency yajl?
To: =?UTF-8?Q?Christoph_Gr=C3=BCninger?= <foss@grueninger.de>,
 xen-devel@lists.xenproject.org
References: <d49ad645-35dd-4bd2-b166-d1803b2d95ba@grueninger.de>
Content-Language: en-GB
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>
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: <d49ad645-35dd-4bd2-b166-d1803b2d95ba@grueninger.de>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 03/08/2025 9:52 am, Christoph GrÃ¼ninger wrote:
> Dear Xen developers,
>
> you are using the dependency yajl (yet another json library, [1]) to
> parse JSON files. The project seems abandoned with the last commit 10
> years ago, the last release over 11 years ago, and 75 open pull
> requests. Packaging yajl requires patches, e.g., to make it compatible
> with CMake 4.0.
> There are some forks but none has replaced the old one yet [2].
>
> I think there are three paths forward:
> 1. Xen could pick a prominent fork and use it as its main dependency.
> 2. Xen could create a fork of its own, hopefully attracting more
> people interested in an maintained successor of yajl.
> 3. Switch to a different JSON parser library that remained healthy.
>
> Sure, you could stick to option 4., do nothing an offload the burden
> to fix yajl to distribution packagers.
>
> Xen is an important project and its decision can create momentum that
> might lead other projects.
>
> [1] https://github.com/lloyd/yajl
> [2] https://github.com/lloyd/yajl/issues/252

CCing the libxl maintainers.

~Andrew


From xen-devel-bounces@lists.xenproject.org Sun Aug 03 15:57:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 Aug 2025 15:57:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068638.1432595 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uib5K-0007Vr-B8; Sun, 03 Aug 2025 15:57:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068638.1432595; Sun, 03 Aug 2025 15: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 1uib5K-0007Vk-8Z; Sun, 03 Aug 2025 15:57:18 +0000
Received: by outflank-mailman (input) for mailman id 1068638;
 Sun, 03 Aug 2025 15:57:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ISOZ=2P=gmail.com=arraybolt3@srs-se1.protection.inumbo.net>)
 id 1uib5J-0007Ve-4i
 for xen-devel@lists.xenproject.org; Sun, 03 Aug 2025 15:57:17 +0000
Received: from mail-il1-x135.google.com (mail-il1-x135.google.com
 [2607:f8b0:4864:20::135])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8556989f-7082-11f0-a321-13f23c93f187;
 Sun, 03 Aug 2025 17:57:14 +0200 (CEST)
Received: by mail-il1-x135.google.com with SMTP id
 e9e14a558f8ab-3e410fbf177so858635ab.0
 for <xen-devel@lists.xenproject.org>; Sun, 03 Aug 2025 08:57:14 -0700 (PDT)
Received: from kf-m2g5 ([2607:fb90:bf84:45ad:b4b9:dcb5:167d:696a])
 by smtp.gmail.com with ESMTPSA id
 8926c6da1cb9f-50a55764631sm2639888173.0.2025.08.03.08.57.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 03 Aug 2025 08:57: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>
X-Inumbo-ID: 8556989f-7082-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754236633; x=1754841433; darn=lists.xenproject.org;
        h=mime-version:references:in-reply-to:message-id:subject:cc:to:from
         :date:from:to:cc:subject:date:message-id:reply-to;
        bh=wRzireTjnjrnPS6ON0WABq/oEda5tFY0pfgOWvjdfPI=;
        b=U61C3Dpu5T6LWboXGdlcsQ/VQYgyPVlyDrXAfzCXZz3pulInWa/u6iHMMDcdxkHs+/
         Ubk3t88O1FPkMOUAev7fZH29ghz4eJ3eo0jxuBeT2sA3zaYJVKeGYHsXG1B2EkZQri/R
         eQf8E4VrzkDyKAI+7R5+4hvFgvesgLz22seGnYoTFhQUYA1MCP036OQAXs1LlBs8pTI3
         kqA82IPpnrsZ4CK0jTl2HUfRkBIrz+yU3EhqeRUZ0llBOzp2ABGqFu8fC9X8GUkadTgM
         QiB2D0yUgF+w+Y5nx9f8B2wkMm0M431qj5eb0rOegpZ0Bj4h8sNc0TAI/rnAnOaEoFD2
         A77w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754236633; x=1754841433;
        h=mime-version:references:in-reply-to:message-id:subject:cc:to:from
         :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=wRzireTjnjrnPS6ON0WABq/oEda5tFY0pfgOWvjdfPI=;
        b=cq1VEsCynrHdC0+yatijObEmc7PnulPrJ/XtN2U/ZX0mUg3KGlQXbbopRQz1kg67Y+
         NfEX1a9DfrG4ZXrpENrmu6qhYzZI6KOD+BTicPm3xCukm2CQSP2/ogpyajegi1vBSWMH
         e0GZhiscOh8A1kJ0QvfiCx8C5p/7R1leXAH9l2pj4p/G56neXct+TluLxFhEIhi8B1FZ
         Hwl8Qr7mfiWpGZFLwG9i02EQp7C84yrPQWx+bljg8PnfsMoE7C4o2v5fQt4vDtmfSyOH
         FerXvwqJmkdIu3xXswVQnHnkYkrUVrAoUiGj6/FEG0oZNloro58OwF3G2C25LYr0c4lj
         jWgQ==
X-Forwarded-Encrypted: i=1; AJvYcCXZCQ/wK9I4VzAxyi4N1blNV7fE5yxQeGfHzxZgnGdLfPjCZnK1wzt1gf0zqqKt+k5aNXvJpj+4j0E=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwoLRcVnhEUR4vuo9P1HJVhVWaQVAhLbF/FEotTnMxWHinp4/Xj
	7HySpKhLXnrO1LB22xnu2fP0WA6rDG/iFVI3c79Gk4/YguNSqZvjPtBs
X-Gm-Gg: ASbGncvoqmDYINxjVAk4DFZJJjYsRbK9UhPp94EAxcpEnejO+wUKZksMdo8taIz4uO3
	IYvCRmfNaVbNSfOiFv6wwbkAXjYqBkIN8I9iZ7Vx3/ZcpPWLGMVRno+RKbKOxRprSlqxiPnG54g
	tniOq/Rw4meo52ki8DjcpJ9Gp+K2s3oC7W9hnpTd6WRWzsTnbD+yP32CtX6h2H9ezXSlTi43ypQ
	gAaZMrtS9fQQ9FFbIuch/TuY1bzOUv1FVlyHTU6nfAkHWwcaZls6GETkHlvcGgInNUaSFZkYVnV
	SWBDoBMOQIaL3Qseg1Nb9LelxQPFSs69LW9WTY2vGg3uJZfzi27rArFn42q86IYUv0qq7lppOch
	veKHamrSgq0QaITfQKTSBVD/4jyeq86Q=
X-Google-Smtp-Source: AGHT+IFJkV/yhq6un/u65EgeHZIBGmVmdR/00A7B/jnsQgh/uwuP5x1U2c5Dil2c+VJKwuRXqWhcJQ==
X-Received: by 2002:a05:6e02:370e:b0:3e2:a082:7e4b with SMTP id e9e14a558f8ab-3e4161beca5mr32236065ab.4.1754236632239;
        Sun, 03 Aug 2025 08:57:12 -0700 (PDT)
Date: Sun, 3 Aug 2025 10:57:03 -0500
From: Aaron Rainbolt <arraybolt3@gmail.com>
To: Daniel Kiper <dkiper@net-space.pl>
Cc: grub-devel@gnu.org, xen-devel@lists.xenproject.org
Subject: Re: [RESEND PATCH v3 1/1] kern/xen: Add Xen command line parsing
Message-ID: <20250803105703.5c83d4b2@kf-m2g5>
In-Reply-To: <20250801125536.mc2sjrdyikljzea6@tomti.i.net-space.pl>
References: <20250725153012.1dd46644@kf-m2g5>
	<20250725153112.4ea25243@kf-m2g5>
	<20250801125536.mc2sjrdyikljzea6@tomti.i.net-space.pl>
X-Mailer: Claws Mail 4.3.1 (GTK 3.24.41; x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="Sig_/cDaFj_5U54ghyioulxMOsfG";
 protocol="application/pgp-signature"; micalg=pgp-sha512

--Sig_/cDaFj_5U54ghyioulxMOsfG
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

On Fri, 1 Aug 2025 14:55:36 +0200
Daniel Kiper <dkiper@net-space.pl> wrote:

> On Fri, Jul 25, 2025 at 03:31:12PM -0500, Aaron Rainbolt wrote:
> > Xen traditionally allows customizing guest behavior by passing
> > arguments to the VM kernel via the kernel command line. This is no
> > longer possible when using GRUB with Xen, as the kernel command
> > line is decided by the GRUB configuration file within the guest,
> > not data passed to the guest by Xen.
> >
> > To work around this limitation, enable GRUB to parse a command line
> > passed to it by Xen, and expose data from the command line to the
> > GRUB configuration as environment variables. These variables can be
> > used in the GRUB configuration for any desired purpose, such as
> > extending the kernel command line passed to the guest. The command
> > line format is inspired by the Linux kernel's command line format.
> >
> > To reduce the risk of misuse, abuse, or accidents in production, the
> > command line will only be parsed if it consists entirely of 7-bit
> > ASCII characters, only alphabetical characters and underscores are
> > permitted in variable names, and all variable names must start with
> > the string "xen_grub_env_". This also allows room for expanding the
> > command line arguments accepted by GRUB in the future, should other
> > arguments end up becoming desirable in the future.
> >
> > Signed-off-by: Aaron Rainbolt <arraybolt3@gmail.com>
> > ---
> >  docs/grub.texi                |  50 +++++
> >  grub-core/Makefile.core.def   |   2 +
> >  grub-core/kern/i386/xen/pvh.c |  14 ++
> >  grub-core/kern/main.c         |  12 ++
> >  grub-core/kern/xen/cmdline.c  | 343
> > ++++++++++++++++++++++++++++++++++ include/grub/xen.h            |
> >  2 + 6 files changed, 423 insertions(+)
> >  create mode 100644 grub-core/kern/xen/cmdline.c
> >
> > diff --git a/docs/grub.texi b/docs/grub.texi
> > index 34b3484..ce82483 100644
> > --- a/docs/grub.texi
> > +++ b/docs/grub.texi
> > @@ -3271,6 +3271,7 @@ GRUB.  Others may be used freely in GRUB
> > configuration files. @menu
> >  * Special environment variables::
> >  * Environment block::
> > +* Passing environment variables through Xen::
> >  @end menu
> >
> >
> > @@ -3871,6 +3872,55 @@ using BIOS or EFI functions (no ATA, USB or
> > IEEE1275). @command{grub-mkconfig} uses this facility to implement
> >  @samp{GRUB_SAVEDEFAULT} (@pxref{Simple configuration}).
> >
> > +@node Passing environment variables through Xen
> > +@section Passing environment variables through Xen
> > +
> > +If you are using a GRUB image as the kernel for a PV or PVH Xen
> > virtual +machine, you can pass environment variables from Xen's
> > dom0 to the VM through +the Xen-provided kernel command line. When
> > combined with a properly configured +guest, this can be used to
> > customize the guest's behavior on bootup via the +VM's Xen
> > configuration file. +
> > +GRUB will parse the kernel command line passed to it by Xen during
> > bootup. +The command line will be split into space-delimited words.
> > Single and +double quotes may be used to quote words or portions of
> > words that contain +spaces. Arbitrary characters may be
> > backslash-escaped to make them a literal +component of a word
> > rather than being parsed as quotes or word separators. The +command
> > line must consist entirely of printable 7-bit ASCII characters and
> > +spaces. If a non-printing ASCII character is found anywhere in the
> > command +line, the entire command line will be ignored by GRUB. +
> > +Each word should be a variable assignment in the format
> > ``variable'' or +``variable=3Dvalue''. Variable names must contain
> > only the characters A-Z, a-z, +and underscore (``_''). Variable
> > names must begin with the string +``xen_grub_env_''. Variable
> > values can contain arbitrary printable 7-bit +ASCII characters and
> > space. If any variable contains an illegal name, that +variable
> > will be ignored. +
> > +If a variable name and value are both specified, the variable will
> > be set to +the specified value. If only a variable name is
> > specified, the variable's +value will be set to ``1''.
> > +
> > +The following is a simple example of how to use this functionality
> > to append +arbitrary variables to a guest's kernel command line:
> > +
> > +@example
> > +# In the Xen configuration file for the guest
> > +name =3D "linux_vm"
> > +type =3D "pvh"
> > +kernel =3D "/path/to/grub-i386-xen_pvh.bin"
> > +extra =3D "xen_grub_env_kernelappend=3D'loglevel=3D3'" =20
>=20
> s/kernelappend/kernel_append/
>=20
> or maybe even
>=20
> s/kernelappend/linux_append/
>=20
> to make it clear it is appended to the "linux" command line...

Will do.

> > +memory =3D 1024
> > +disk =3D [ "file:/srv/vms/linux_vm.img,sda,w" ]
> > +
> > +# In the guest's GRUB configuration file
> > +menuentry "Linux VM with dom0-specified kernel parameters" @{
> > +    search --set=3Droot --label linux_vm --hint hd0,msdos1
> > +    linux /boot/vmlinuz root=3DLABEL=3Dlinux_vm
> > $@{xen_grub_env_kernelappend@} =20
>=20
> Ditto...

Will do.

> > +    initrd /boot/initrd.img
> > +@}
> > +@end example
> > +
> >  @node Modules
> >  @chapter Modules
> >
> > diff --git a/grub-core/Makefile.core.def
> > b/grub-core/Makefile.core.def index b3f7119..df0f266 100644
> > --- a/grub-core/Makefile.core.def
> > +++ b/grub-core/Makefile.core.def
> > @@ -248,6 +248,7 @@ kernel =3D {
> >    xen =3D term/xen/console.c;
> >    xen =3D disk/xen/xendisk.c;
> >    xen =3D commands/boot.c;
> > +  xen =3D kern/xen/cmdline.c;
> >
> >    i386_xen_pvh =3D commands/boot.c;
> >    i386_xen_pvh =3D disk/xen/xendisk.c;
> > @@ -255,6 +256,7 @@ kernel =3D {
> >    i386_xen_pvh =3D kern/i386/xen/tsc.c;
> >    i386_xen_pvh =3D kern/i386/xen/pvh.c;
> >    i386_xen_pvh =3D kern/xen/init.c;
> > +  i386_xen_pvh =3D kern/xen/cmdline.c;
> >    i386_xen_pvh =3D term/xen/console.c;
> >
> >    ia64_efi =3D kern/ia64/efi/startup.S;
> > diff --git a/grub-core/kern/i386/xen/pvh.c
> > b/grub-core/kern/i386/xen/pvh.c index 91fbca8..12df2d8 100644
> > --- a/grub-core/kern/i386/xen/pvh.c
> > +++ b/grub-core/kern/i386/xen/pvh.c
> > @@ -321,6 +321,8 @@ void
> >  grub_xen_setup_pvh (void)
> >  {
> >    grub_addr_t par;
> > +  const char *xen_cmdline;
> > +  int i;
> >
> >    grub_xen_cpuid_base ();
> >    grub_xen_setup_hypercall_page ();
> > @@ -352,6 +354,18 @@ grub_xen_setup_pvh (void)
> >    grub_xen_mm_init_regions ();
> >
> >    grub_rsdp_addr =3D pvh_start_info->rsdp_paddr;
> > +
> > +  xen_cmdline =3D (const char *) pvh_start_info->cmdline_paddr;
> > +  for (i =3D 0; i < MAX_GUEST_CMDLINE; i++) =20
>=20
> Oh, MAX_GUEST_CMDLINE is a too generic. May I ask you to rename it to
> GRUB_XEN_MAX_GUEST_CMDLINE? This should be done in separate patch
> preceding this one.

Sure.

> > +    {
> > +      if (xen_cmdline[i] =3D=3D '\0') =20
>=20
> I cannot see much sense in this check. Please look below...
>=20
> > +        {
> > +          grub_strncpy ((char *)
> > grub_xen_start_page_addr->cmd_line,
> > +			(char *) pvh_start_info->cmdline_paddr, =20
>=20
> s/char */const char */
>=20
> Is it always guaranteed that pvh_start_info->cmdline_paddr have
> MAX_GUEST_CMDLINE size? If yes then...

It is not guaranteed. I tested this under Qubes OS, and it is
unfortunately very possible to pass a guest command line longer than
MAX_GUEST_CMDLINE via pvh_start_info->cmdline_paddr. I do not know of
any documentation specifying what the "real" maximum length is in this
instance (if any), but in any event the string ultimately has to be
crammed into an array that is only MAX_GUEST_CMDLINE long. Originally I
wrote this to truncate the command line in this situation, but later
decided that discarding the command line would be safer than truncation.

(When booting a VM in PV mode, Xen does guarantee the command line will
not be longer than MAX_GUEST_CMDLINE and will simply return a truncated
command line. There is no way to detect this condition to my awareness,
so in PV mode, we simply live with the truncation since we aren't given
another option.)

> grub_memset ((void *) pvh_start_info->cmdline_paddr, 0,
> MAX_GUEST_CMDLINE); grub_strncpy ((char *)
> grub_xen_start_page_addr->cmd_line, (const char *)
> pvh_start_info->cmdline_paddr, MAX_GUEST_CMDLINE - 1);
>=20
> ... and you are done...

This would truncate the command line rather than discarding it. If the
goal is consistency with Xen's PV mode, then I can switch to this, but
I don't like the idea of booting a guest with corrupted data inserted
randomly into the grub.cfg file. (Like mentioned above, there isn't any
other option when using PV mode, but just because PV mode does things
dangerously doesn't mean we have to when running in PVH mode.)

> > +			MAX_GUEST_CMDLINE);
> > +          break;
> > +        }
> > +    }
> >  }
> >
> >  grub_err_t
> > diff --git a/grub-core/kern/main.c b/grub-core/kern/main.c
> > index 143a232..b4377d3 100644
> > --- a/grub-core/kern/main.c
> > +++ b/grub-core/kern/main.c
> > @@ -37,6 +37,10 @@
> >  #include <grub/machine/memory.h>
> >  #endif
> >
> > +#if defined (GRUB_MACHINE_XEN) || defined (GRUB_MACHINE_XEN_PVH)
> > +#include <grub/xen.h>
> > +#endif
> > +
> >  static bool cli_disabled =3D false;
> >  static bool cli_need_auth =3D false;
> >
> > @@ -351,6 +355,14 @@ grub_main (void)
> >    grub_env_export ("root");
> >    grub_env_export ("prefix");
> >
> > +  /*
> > +   * Parse command line parameters from Xen and export them as
> > environment
> > +   * variables
> > +   */
> > +#if defined (GRUB_MACHINE_XEN) || defined (GRUB_MACHINE_XEN_PVH)
> > +  grub_parse_xen_cmdline (); =20
>=20
> Please move this call to the
> grub-core/kern/xen/init.c:grub_machine_init().

Will do.

> > +#endif
> > +
> >    /* Reclaim space used for modules.  */
> >    reclaim_module_space ();
> >
> > diff --git a/grub-core/kern/xen/cmdline.c
> > b/grub-core/kern/xen/cmdline.c new file mode 100644
> > index 0000000..03dd88f
> > --- /dev/null
> > +++ b/grub-core/kern/xen/cmdline.c
> > @@ -0,0 +1,343 @@
> > +/*
> > + *  GRUB  --  GRand Unified Bootloader
> > + *  Copyright (C) 2025  Free Software Foundation, Inc.
> > + *
> > + *  GRUB 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 3 of the License,
> > or
> > + *  (at your option) any later version.
> > + *
> > + *  GRUB 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 GRUB.  If not, see <http://www.gnu.org/licenses/>.
> > + */
> > +
> > +#include <grub/env.h>
> > +#include <grub/misc.h>
> > +#include <grub/mm.h>
> > +#include <grub/xen.h>
> > +
> > +enum parse_flags
> > +{
> > +  PARSER_HIT_BACKSLASH =3D 0x1,
> > +  PARSER_IN_SINGLE_QUOTES =3D 0x2,
> > +  PARSER_IN_DOUBLE_QUOTES =3D 0x4,
> > +}; =20
> typedef parse_flags parse_flags_t;
>=20
> ... and use parse_flags_t instead below...

Will do.

> And probably this should be a local variable...

See below for comments on globals in the parser.

> > +
> > +#define PARSER_BASE_WORD_LEN 16 =20
>=20
> This constant begs for a few words of comment...

Will add. This is just the initial length of the dynamically allocated
buffer for storing each "word" of the command line, but it is confusing
as written. Perhaps it should be renamed to PARSER_WORD_BUF_START_LEN
or similar, to make it clear this isn't a string length, but a buffer
length?

> > +static grub_size_t word_list_len;
> > +static char **word_list;
> > +static grub_size_t current_word_len;
> > +static grub_size_t current_word_pos;
> > +static char *current_word;
> > +static char current_char; =20
>=20
> I have a feeling that most if not all of this variables should be
> local in a given function...

I made them globals because making them local would have required an
awful lot of parameter "shuttling" that I believed made the code less
readable. For instance, the `append_word_to_list` function right now
has no parameters and can be called very simply by the parser whenever
it is needed. If all variables used were local, the function would have
to have a signature akin to:

  static bool append_word_to_list(grub_size_t *current_word_pos_ref,
    grub_size_t *current_word_len_ref, char *current_word,
    grub_size_t *word_list_len_ref, char **word_list)

IMO this is difficult to read and frustrating to call (possibly even
error-prone). Ultimately the variables are "local" to the parser, and
the functions are just there to split up the parser's algorithm to
avoid repetition. They all ultimately operate on the same state, so
having the state variables static but global within the file fits the
current parser design well.

> > +static bool
> > +append_char_to_word (bool allow_null)
> > +{
> > +  /*
> > +   * Fail if the current char is outside of the range 0x20 to
> > 0x7E. If
> > +   * allow_null is true, make an exception for 0x00. This is a
> > safeguard =20
>=20
> Could you elaborate here when allow_null =3D=3D true is useful?

Usually when appending characters to a word, you aren't going to be
appending null characters, thus `append_char_to_word` usually rejects
those so as to make it harder to mess things up. However, the string
does need to be null-terminated, and thus once a command line word is
fully loaded into current_word, it is necessary to add the null
terminator on the end. In this instance the parser sets `current_char`
to '\0' and then calls the `append_char_to_word` function with
`allow_null` set to true, so that the function knows that the addition
of a null is intentional here.

(In retrospect, if allow_null is set to true, the only thing
`append_char_to_word` should append is a null character, it should
reject anything else in that instance. Otherwise someone could
accidentally append something other than a null when they meant to
append a null.)

> > +   * against likely-invalid data.
> > +   */
> > +  if ( (!(current_char >=3D 0x20) || !(current_char <=3D 0x7E) ) =20
>=20
> grub_isprint()?

That would work, I wasn't aware that existed. Maybe a mention of some
valuable GRUB internal API functions that are likely to remain stable
could be added to the GRUB development manual? (Or just a reference to
header files where useful things like this are defined.)

> > +      && (current_char !=3D '\0' || allow_null =3D=3D false)) =20
>=20
> I would drop redundant spaces between "(" and ")" and move "&&" to the
> end of first line of "if".

Will do, though I'm likely to rewrite this conditional anyway so that
anything other than '\0' will be rejected when `allow_null =3D=3D true`.

> > +    return false;
> > +
> > +  if (current_word_pos =3D=3D current_word_len)
> > +    {
> > +      current_word_len *=3D 2; =20
>=20
> You can do this in the argument of the function below...

I mean, yes, technically I can, but that's a lot less readable to me. I
can't find anywhere else in GRUB that uses that style (using
`grep -ri '\*=3D'` to search), and can find a few spots that use a style
similar to the one I've used here:

* `util/grub-install.c` in function `device_map_check_duplicates`
* `grub-core/osdep/windows/platform.c` in function `get_efi_variable`
* `grub-core/osdep/unix/platform.c` in function `get_ofpathname`

> > +      current_word =3D grub_realloc (current_word, current_word_len);
> > +      if (current_word =3D=3D NULL)
> > +        {
> > +          current_word_len /=3D 2;
> > +          return false;
> > +        }
> > +    }
> > +
> > +  current_word[current_word_pos] =3D current_char;
> > +  current_word_pos++; =20
>=20
> Again, you can do this operation in the "[]" above...

Will do. (This does seem to be a much more common way to write things
in GRUB than what I've done.)

> > +  return true;
> > +}
> > +
> > +static bool
> > +append_word_to_list (void)
> > +{
> > +  /* No-op on empty words. */
> > +  if (current_word_pos =3D=3D 0) =20
>=20
> This should be probably an argument for the function...

See above for parser state and global variables rationale.

> > +    return true;
> > +
> > +  current_char =3D '\0';
> > +  if (append_char_to_word (true) =3D=3D false)
> > +    {
> > +      grub_error (GRUB_ERR_BUG,
> > +		  "couldn't append null terminator to word during
> > Xen cmdline parsing");
> > +      grub_print_error ();
> > +      grub_exit ();
> > +    }
> > +
> > +  current_word_len =3D grub_strlen (current_word) + 1;
> > +  current_word =3D grub_realloc (current_word, current_word_len);
> > +  if (current_word =3D=3D NULL)
> > +    return false;
> > +  word_list_len++; =20
>=20
> Again this, OK ++word_list_len to be precise, can be done in a
> function argument below...

`grep -ri 'alloc.*++'` doesn't show me any instance of this style
anywhere else in the GRUB codebase, and I find it much more difficult
to read since now I have to think about incrementing `word_list_len`'s
value and returning it and multiplying the returned value all at the
same time. `grub-core/osdep/unix/platform.c` uses the style I've used
here.

> > +  word_list =3D grub_realloc (word_list, word_list_len * sizeof
> > (char *));
> > +  if (word_list =3D=3D NULL)
> > +    return false;
> > +  word_list[word_list_len - 1] =3D current_word;
> > +
> > +  current_word_len =3D PARSER_BASE_WORD_LEN;
> > +  current_word_pos =3D 0;
> > +  current_word =3D grub_malloc (current_word_len);
> > +  if (current_word =3D=3D NULL)
> > +    return false;
> > +
> > +  return true;
> > +}
> > +
> > +static bool
> > +check_key_is_safe (char *key, grub_size_t len)
> > +{
> > +  grub_size_t i;
> > +
> > +  for (i =3D 0; i < len; i++)
> > +  {
> > +    /*
> > +     * Ensure only a-z, A-Z, and _ are allowed.
> > +     */
> > +    if (! ( (key[i] >=3D 'A' && key[i] <=3D 'Z')
> > +          || (key[i] >=3D 'a' && key[i] <=3D 'z') =20
>=20
> You have whole family of grub_isalpha() functions. Could not use them
> here and there?

Those would almost certainly work here, I'll switch to using those
where possible (including here).=20

> > +          || (key[i] =3D=3D '_') ) )
> > +      return false;
> > +  }
> > +  return true;
> > +}
> > +
> > +void
> > +grub_parse_xen_cmdline (void)
> > +{
> > +  const char *cmdline =3D (const char *)
> > grub_xen_start_page_addr->cmd_line;
> > +  grub_size_t cmdline_len;
> > +  bool cmdline_valid =3D false;
> > +  char **param_keys =3D NULL;
> > +  char **param_vals =3D NULL;
> > +  grub_size_t param_dict_len =3D 0;
> > +  grub_size_t param_dict_pos =3D 0;
> > +  enum parse_flags parse_flags =3D 0;
> > +  grub_size_t i =3D 0;
> > +
> > +  /*
> > +   * The following algorithm is used to parse the Xen command line:
> > +   *
> > +   * - The command line is split into space-separated words.
> > +   *   - Single and double quotes may be used to suppress the
> > splitting
> > +   *     behavior of spaces.
> > +   *   - Double quotes are appended to the current word verbatim
> > if they
> > +   *     appear within a single-quoted string portion, and vice
> > versa.
> > +   *   - Backslashes may be used to cause the next character to be
> > +   *     appended to the current word verbatim. This is only
> > useful when
> > +   *     used to escape quotes, spaces, and backslashes, but for
> > simplicity
> > +   *     we allow backslash-escaping anything.
> > +   * - After splitting the command line into words, each word is
> > checked to
> > +   *   see if it contains an equals sign.
> > +   *   - If it does, it is split on the equals sign into a
> > key-value pair. The
> > +   *     key is then treated as an variable name, and the value is
> > treated as
> > +   *     the variable's value.
> > +   *   - If it does not, the entire word is treated as a variable
> > name. The
> > +   *     variable's value is implicitly considered to be `1`.
> > +   * - All variables detected on the command line are checked to
> > see if their
> > +   *   names begin with the string `xen_grub_env_`. Variables that
> > do not pass
> > +   *   this check are discarded, variables that do pass this check
> > are
> > +   *   exported so they are available to the GRUB configuration. =20
>=20
> I think not all from this valuable comment landed in the
> documentation. Please fix it...

Comparing the two side-by-side:

+----------------------------------+----------------------------------+
| Documentation                    | Comment                          |
+=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+
| The command line will be split   | The command line is split into   |
| into space-delimited words.      | space-separated words. Single    |
| Single and double quotes may be  | and double quotes may be used to |
| used to quote words or portions  | suppress the splitting behavior  |
| of words that contain spaces.    | of spaces.                       |
+----------------------------------+----------------------------------+
| (Self-evident, any other         | Double quotes are appended to    |
| behavior involving quotes would  | the current word verbatim if     |
| be extremely unexpected.)        | they appear within a single-     |
|                                  | quoted string, and vice versa.   |
+----------------------------------+----------------------------------+
| Arbitrary characters may be      | Backslashes may be used to cause |
| backslash-escaped to make them a | the next character to be         |
| literal component of a word      | appended to the current word     |
| rather than being parsed as      | verbatim. This is only useful    |
| quotes or word separators.       | when used to escape quotes,      |
|                                  | spaces, and backslashes, but for |
|                                  | simplicity we allow backslash-   |
|                                  | escaping anything.               |
+----------------------------------+----------------------------------+
| Each word should be a variable   | After splitting the command line |
| assignment in the format         | into words, each word is checked |
| ``variable'' or                  | to see if it contains an equals  |
| ``variable=3Dvalue''.              | sign.                            |
+----------------------------------+----------------------------------+
| If a variable name and value are | If it does, it is split on the   |
| both specified, the variable     | equals sign into a key-value     |
| will be set to the specified     | pair. The key is then treated as |
| value.                           | a variable name, and the value   |
|                                  | treated as the variable's value. |
+----------------------------------+----------------------------------+
| If only a variable name is       | If it does not, the entire word  |
| specified, the variable's value  | is treated as a variable name.   |
| will be set to ``1''.            | The variable's value is          |
|                                  | implicitly considered to be '1'. |
+----------------------------------+----------------------------------+
| Variable names must begin with   | All variables detected on the    |
| the string ``xen_grub_env_''...  | command line are checked to see  |
| If any variable contains an      | if their names begin with the    |
| illegal name, that variable will | string `xen_grub_env_`.          |
| be ignored.                      | Variables that do not pass this  |
|                                  | check are discarded,             |
+----------------------------------+----------------------------------+
| ...you can pass environment      | variables that do pass this      |
| variables from Xen's dom0 to the | check are exported so they are   |
| VM through the Xen-provided      | available to the GRUB            |
| kernel command line.             | configuration.                   |
+----------------------------------+----------------------------------+

The only missing detail I see is that single quotes are legal in
double-quoted strings and vice versa, though I guess I can make it more
explicit that the variables passed on the command line are exported
before getting to the example that shows this. Is there anything else
you see that's missing?

> > +   */
> > +
> > +  current_word_len =3D PARSER_BASE_WORD_LEN;
> > +  current_word =3D grub_malloc (current_word_len);
> > +  if (current_word =3D=3D NULL)
> > +    goto cleanup;
> > +
> > +  for (i =3D 0; i < MAX_GUEST_CMDLINE; i++)
> > +    {
> > +      if (cmdline[i] =3D=3D '\0')
> > +        {
> > +          cmdline_valid =3D true;
> > +          break;
> > +        }
> > +    }
> > +
> > +  if (cmdline_valid =3D=3D false)
> > +    {
> > +      grub_error (GRUB_ERR_BAD_ARGUMENT,
> > +		  "Command line from Xen is not NUL-terminated"); =20
>=20
> GRUB errors usually start with lowercase...

Will fix.

> > +      grub_print_error ();
> > +      goto cleanup;
> > +    }
> > +
> > +  cmdline_len =3D grub_strlen (cmdline);
> > +  for (i =3D 0; i < cmdline_len; i++)
> > +    {
> > +      current_char =3D cmdline[i];
> > +
> > +      /*
> > +       * If the previous character was a backslash, append the
> > current
> > +       * character to the word verbatim
> > +       */
> > +      if (parse_flags & PARSER_HIT_BACKSLASH) =20
>=20
> s/parse_flags/parser_state/

Hmm, I don't like 'parser_state' as a name because the parser's "state"
is the global variables in `grub-core/kern/xen/cmdline.`. Maybe
'splitter_state' instead, since this is just the bit of state that the
word splitter is concerned with?

> > +        {
> > +          parse_flags &=3D ~PARSER_HIT_BACKSLASH;
> > +          if (append_char_to_word (false) =3D=3D false)
> > +            goto cleanup;
> > +          continue;
> > +        }
> > +
> > +      switch (current_char)
> > +        {
> > +        case '\\':
> > +          /* Backslashes escape arbitrary characters. */
> > +          parse_flags |=3D PARSER_HIT_BACKSLASH;
> > +          continue;
> > +
> > +        case '\'':
> > +          /*
> > +           * Single quotes suppress word splitting and double
> > quoting until
> > +           * the next single quote is encountered.
> > +           */
> > +          if (parse_flags & PARSER_IN_DOUBLE_QUOTES)
> > +            {
> > +              if (append_char_to_word (false) =3D=3D false)
> > +                goto cleanup;
> > +              continue;
> > +            }
> > +
> > +          parse_flags ^=3D PARSER_IN_SINGLE_QUOTES;
> > +          continue;
> > +
> > +        case '"':
> > +          /*
> > +           * Double quotes suppress word splitting and single
> > quoting until
> > +           * the next double quote is encountered.
> > +           */
> > +          if (parse_flags & PARSER_IN_SINGLE_QUOTES)
> > +            {
> > +              if (append_char_to_word (false) =3D=3D false)
> > +                goto cleanup;
> > +              continue;
> > +            }
> > +
> > +          parse_flags ^=3D PARSER_IN_DOUBLE_QUOTES;
> > +          continue;
> > +
> > +        case ' ':
> > +          /* Spaces separate words in the command line from each
> > other. */
> > +          if (parse_flags & PARSER_IN_SINGLE_QUOTES
> > +              || parse_flags & PARSER_IN_DOUBLE_QUOTES) =20
>=20
> I prefer "||" and "&&" at the end of the lines...

Will fix. This is another thing that might be good to put in the GRUB
coding style docs. (My boss insists that I always put && and || at the
beginning of lines, so I've been instinctively doing that.)
>=20
> > +            {
> > +              if (append_char_to_word (false) =3D=3D false)
> > +                goto cleanup;
> > +              continue;
> > +            }
> > +
> > +          if (append_word_to_list () =3D=3D false) =20
>=20
> This shows nicely that the function misses arguments...

Will fix, and will also check my compiler warnings more closely (I
assume this generated a warning that I missed).

> > +            goto cleanup;
> > +          continue;
> > +        }
> > +
> > +      if (append_char_to_word (false) =3D=3D false) =20
>=20
> Ditto...
>=20
> > +        goto cleanup;
> > +    }
> > +
> > +  if (append_word_to_list () =3D=3D false) =20
>=20
> Ditto...
>=20
> > +    goto cleanup;
> > +
> > +  param_keys =3D grub_malloc (word_list_len * sizeof (char *));
> > +  if (param_keys =3D=3D NULL)
> > +    goto cleanup;
> > +  param_vals =3D grub_malloc (word_list_len * sizeof (char *));
> > +  if (param_vals =3D=3D NULL)
> > +    goto cleanup;
> > +
> > +  for (i =3D 0; i < word_list_len; i++)
> > +    {
> > +      char *current_word_eq_ptr;
> > +
> > +      current_word =3D word_list[i];
> > +      current_word_len =3D grub_strlen (current_word) + 1;
> > +      current_word_eq_ptr =3D grub_strchr (current_word, '=3D');
> > +
> > +      if (current_word_eq_ptr) =20
>=20
> current_word_eq_ptr !=3D NULL

Will change.

> > +        {
> > +          grub_size_t eq_idx =3D (grub_size_t)(current_word_eq_ptr -
> > current_word); =20
>=20
> Missing space after "(grub_size_t)"...

Will fix.=20

> > +          grub_size_t post_eq_len =3D current_word_len - (eq_idx); =20
>=20
> You can drop "()" from eq_idx

Will fix.

> > +
> > +          if (check_key_is_safe (current_word, eq_idx)) =20
>=20
> check_key_is_safe() =3D=3D true
>=20
> s/check_key_is_safe/is_key_safe/

Will fix and rename.

> > +            {
> > +              param_dict_pos =3D param_dict_len;
> > +              param_dict_len++;
> > +              param_keys[param_dict_pos] =3D grub_malloc (eq_idx +
> > 1);
> > +              if (param_keys =3D=3D NULL)
> > +                goto cleanup;
> > +              param_vals[param_dict_pos] =3D grub_malloc
> > (post_eq_len + 1);
> > +              if (param_vals =3D=3D NULL)
> > +                goto cleanup;
> > +
> > +              grub_strncpy (param_keys[param_dict_pos],
> > current_word,
> > +			    eq_idx); =20
>=20
> Please do not wrap line here...

Will fix.

> > +              grub_strncpy (param_vals[param_dict_pos],
> > +			    current_word + eq_idx + 1,
> > post_eq_len); =20
>=20
> Please remember that grub_strncpy() may return non-NUL terminated
> strings... You should check this everywhere...

The next two lines of the patch append the null terminators here.

> > +              param_keys[param_dict_pos][eq_idx] =3D '\0';
> > +              param_vals[param_dict_pos][post_eq_len] =3D '\0';

Making a note for myself here, I believe I'm unintentionally
double-null-terminating `param_vals[param_dict_pos]`, since
`post_eq_len` is the length of everything after the equals sign
including the null terminator. Thus post_eq_len - 2 is the index of the
last character of the string, post_eq_len - 1 is the index of the null
terminator, and then this is a second null terminator. I should skip
appending the null here and also should allocate a buffer one character
smaller for `param_vals[param_dict_pos]`. This will need comments to
explain.

> > +            }
> > +        }
> > +      else
> > +        {
> > +          if (check_key_is_safe (current_word, current_word_len -
> > 1)) =20
>=20
> check_key_is_safe() =3D=3D true

Will fix (and also rename as requested earlier).

> > +            {
> > +              param_dict_pos =3D param_dict_len;
> > +              param_dict_len++;
> > +              param_keys[param_dict_pos] =3D grub_malloc
> > (current_word_len);
> > +              if (param_keys =3D=3D NULL)
> > +                goto cleanup;
> > +              param_vals[param_dict_pos] =3D grub_malloc (2);
> > +              if (param_vals =3D=3D NULL)
> > +                goto cleanup;
> > +
> > +              grub_strncpy (param_keys[param_dict_pos],
> > current_word,
> > +			    current_word_len);
> > +              grub_strcpy (param_vals[param_dict_pos], "1");
> > +            }
> > +        }
> > +    }
> > +
> > +  for (i =3D 0; i < param_dict_len; i++)
> > +    {
> > +      /*
> > +       * Find keys that start with "xen_grub_env_" and export them
> > +       * as environment variables.
> > +       */
> > +      if (grub_strncmp (param_keys[i],
> > +			"xen_grub_env_",
> > +			sizeof ("xen_grub_env_") - 1) !=3D 0)
> > +        continue;
> > +      grub_env_set (param_keys[i], param_vals[i]);
> > +      grub_env_export (param_keys[i]); =20
>=20
> Both functions may fail. Don't we care about that? Should not we
> print a warning?

No other places in this file do so, but I'm happy to add warnings here
anyway.

--
Aaron

> > +    }
> > +
> > + cleanup:
> > +  for (i =3D 0; i < word_list_len; i++)
> > +    grub_free (word_list[i]);
> > +
> > +  for (i =3D 0; i < param_dict_len; i++)
> > +    {
> > +      grub_free (param_keys[i]);
> > +      grub_free (param_vals[i]);
> > +    }
> > +
> > +  grub_free (param_keys);
> > +  grub_free (param_vals);
> > +  grub_free (word_list);
> > +} =20
>=20
> Daniel


--Sig_/cDaFj_5U54ghyioulxMOsfG
Content-Type: application/pgp-signature
Content-Description: OpenPGP digital signature

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

iQIzBAEBCgAdFiEEudh48PFXwyPDa0wGpwkWDXPHkQkFAmiPhs8ACgkQpwkWDXPH
kQld6w//SUjwYMNqcIthXBnOq70qi7vPIFhZ/ZE90Ea1M0zgJXtnWmdbHSOYuT82
/NbhXiZO1y1Sm9BZsGBOWVKEPbzeJIze9W3leBI7vDrvXzofkPbp7Ibe4e5nO6U6
PeF5+ybrV65ydt5UpEYuXRJkWDNyTYvOUawyPhfA0Jr2gxc8QHMHsAMntaGn7oZv
GoRuFd3NzzKl3r/BV5JCHdvtPOFfsI3EgPx+O6TXBjzIOsXruLkAMBXj3AchKB7o
Ub3uPcvY9JCBqyr/4loyHl5qPmmMf/k2gHQ2CE1he/Nja9YnL5DsrlQPTdMr5ROW
kDkuaC22XuLDOWGkpePpACfmeJosfOdqpLAn+bINkVHhbUnggCK9aj4uFUc4X9/e
Fdb4BFAxXS4AhW4Tc5agWQDX61e4An7is4FDUqk9/K80+Ckv+XkigHg//M+A6NL/
C9UxYI/Z6LOq/EtStY5OKgAxVGNmw5kPY6UvxgK1aywhniOn80aJ5rrp/Ph3BkXD
4PlVZ2AuG3MUF8rrs1jYbXiwHa5TGHu55G4QNfhaC3dHTYP6eTMhWcrFd4J2AmGd
g1pKDLg2Y1RApNvoznr+yjYNEyfWgnC+GKpMmtrTqYpc/z5YgptHWKFYLmuGNa+9
q0nZ7bvAJyQpBtr8BS4WgOAPxUDriU8puUtL0YEA5kIFbbgErmU=
=gHpn
-----END PGP SIGNATURE-----

--Sig_/cDaFj_5U54ghyioulxMOsfG--


From xen-devel-bounces@lists.xenproject.org Sun Aug 03 20:16:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 03 Aug 2025 20:16:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068687.1432606 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uif83-0004FA-V7; Sun, 03 Aug 2025 20:16:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068687.1432606; Sun, 03 Aug 2025 20:16: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 1uif83-0004F2-QE; Sun, 03 Aug 2025 20:16:23 +0000
Received: by outflank-mailman (input) for mailman id 1068687;
 Sun, 03 Aug 2025 20:16:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+tsi=2P=contentwise.tech=evgeny@srs-se1.protection.inumbo.net>)
 id 1uif82-0004Eu-Jc
 for xen-devel@lists.xenproject.org; Sun, 03 Aug 2025 20:16:23 +0000
Received: from mailrelay-egress1.pub.mailoutpod3-cph3.one.com
 (mailrelay-egress1.pub.mailoutpod3-cph3.one.com [2a02:2350:5:420::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b7ee7e72-70a6-11f0-a321-13f23c93f187;
 Sun, 03 Aug 2025 22:16:20 +0200 (CEST)
Received: from onecom-webmail-backend-production-957f95bc8-m9fsv
 (service.pub.live1-k8s-cph3.one.com [46.30.212.67])
 by mailrelay2.pub.mailoutpod2-cph3.one.com (Halon) with ESMTPSA
 id b75d3b88-70a6-11f0-9572-e90f2b8e16ca;
 Sun, 03 Aug 2025 20:16:19 +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>
X-Inumbo-ID: b7ee7e72-70a6-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1754252179; x=1754856979;
	d=contentwise.tech; s=rsa1;
	h=content-type:subject:reply-to:cc:from:to:message-id:mime-version:date:
	 in-reply-to:from;
	bh=yaDO2zkeiZRQmNdej1F7o4pvt5aFjEGieQX3PkdBhME=;
	b=M3ioqw6iQT4GlZ/XkfcOX0RAJ2+EY2WUuzD4hDDhl3bV0rgknO14Z26XY8IbUy9YjY+8DHtBsyNBJ
	 CD4aQEpDKVpMKWqvWCAyn6nHSX+sKpQ0nvUhlSLkJ0F1Db5xmx6/ecBwTpa0/ZRZNavT9D7PINcamD
	 NPQFPTpk9Io20ROEbyUYqzfizXsMbxC05lc0arS4/UKGjng8Z6c6/Ts8DmG/p2QHEwgq/I8N406jIr
	 cUaU6Ki++tSdCmqLGd9AH/JdaNy2COhWuU5cju6DOEdipkVyjvOCx0qH3UqMBsooMPDwP4oKaN0/Gl
	 VkxgT81n5xBZd9XxGEZEyC2aihU/fvQ==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; t=1754252179; x=1754856979;
	d=contentwise.tech; s=ed1;
	h=content-type:subject:reply-to:cc:from:to:message-id:mime-version:date:
	 in-reply-to:from;
	bh=yaDO2zkeiZRQmNdej1F7o4pvt5aFjEGieQX3PkdBhME=;
	b=nMyy8RwnvQDEXSF1YI07fZ5XjTp5de7eOF9KQjHfYOdrrr09PxdD5wPZ/W2K7KVpqDRWa/JV7JLFS
	 F+ZSi48Bw==
X-HalOne-ID: b75d3b88-70a6-11f0-9572-e90f2b8e16ca
X-Originating-IP: 5.180.182.5
User-Agent: One.com webmail 49.1.9
In-Reply-To: <2d218180-4be4-4c3f-ab65-04a112141b0f@xen.org>
Date: Sun, 03 Aug 2025 23:16:18 +0300
MIME-Version: 1.0
Message-ID: <1754252178882.7.40484@webmail-backend-production-957f95bc8-4zxxx>
To: "Julien Grall" <julien@xen.org>
From: "Evgeny Beysembaev" <evgeny@contentwise.tech>
Cc: <xen-devel@lists.xenproject.org>, "Stefano Stabellini"
 <sstabellini@kernel.org>, "Bertrand Marquis" <bertrand.marquis@arm.com>,
 "Volodymyr Babchuk" <Volodymyr_Babchuk@epam.com>, <miro@contentwise.tech>
Reply-To: <evgeny@contentwise.tech>
Subject: Re: [PATCH] BCM2711 reboot fix
Content-Type: multipart/alternative;
 boundary="----------40482-1754252178882-1"

This is a multipart message in MIME format.

------------40482-1754252178882-1
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8

According to the commit b334c1afad17 ("ARM: dts: bcm2711: Use proper compat=
ible in PM/Watchdog node")
in Linux kernel, the `compatible` string for the watchdog peripheral in the=
 DTS has been modified from
`brcm,bcm2835-pm` to `brcm,bcm2711-pm`, which caused `rpi4_map_watchdog()` =
function to fail,
leading to inability to reboot the system under Xen hypervisor.

Signed-off-by: Evgeny Beysembaev <<evgeny@contentwise.tech>>
---
xen/arch/arm/platforms/brcm-raspberry-pi.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/platforms/brcm-raspberry-pi.c b/xen/arch/arm/plat=
forms/brcm-raspberry-pi.c
index 811b40b1a6..74fca7ecc5 100644
--- a/xen/arch/arm/platforms/brcm-raspberry-pi.c
+++ b/xen/arch/arm/platforms/brcm-raspberry-pi.c
@@ -60,9 +60,12 @@ static void __iomem *rpi4_map_watchdog(void)
paddr_t start, len;
int ret;

- node =3D dt_find_compatible_node(NULL, NULL, "brcm,bcm2835-pm");
- if ( !node )
- return NULL;
+ node =3D dt_find_compatible_node(NULL, NULL, "brcm,bcm2711-pm");
+ if ( !node ) {
+ node =3D dt_find_compatible_node(NULL, NULL, "brcm,bcm2835-pm");
+ if ( !node )
+ return NULL;
+ }

ret =3D dt_device_get_address(node, 0, &start, &len);
if ( ret )
--=20
2.47.2


On Friday, May 30, 2025 at 11:40:23 pm +03:00, Julien Grall <julien@xen.org=
> wrote:

> Hi Evgeny,
>=20
> Thank you for the patch. Let me start with the process,
> patches are submitted inline rather than in attachment.
>=20
> git-send-email commmand can do that for you.
>=20
> Now regarding the patch. I understand that newer kernel
> will use the new compatible. But I would assume there is
> still some device-tree out using the old property. So I
> think Xen needs to check both compatible.
>=20
> Lastly, for the future,when mentioning we commit, we tend to use a smalle=
r
> hash (12 digits) followed by the commit title. In your case,
> it would be:
>=20
> b334c1afad17 ("ARM: dts: bcm2711: Use proper compatible in PM/Watchdog no=
de").
> 
> Cheers,
> 
> -- 
> Julien Grall
> 


------------40482-1754252178882-1
Content-Type: multipart/related; boundary="----------40482-1754252178882-2"

------------40482-1754252178882-2
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset=UTF-8

<div><span class=3D"font" style=3D"font-family: monospace;"><span class=3D"=
highlight" style=3D"background-color: rgb(20, 22, 27);"><span class=3D"colo=
ur" style=3D"color: rgb(224, 226, 234);">According to the commit b334c1afad=
17 ("ARM: dts: bcm2711: Use proper compatible in PM/Watchdog node")</span><=
/span><span class=3D"highlight" style=3D"background-color: rgb(255, 255, 25=
5);"><span class=3D"colour" style=3D"color: rgb(0, 0, 0);"> </span></span><=
br><span class=3D"highlight" style=3D"background-color: rgb(20, 22, 27);"><=
span class=3D"colour" style=3D"color: rgb(224, 226, 234);">in Linux kernel,=
 the `compatible` string for the watchdog peripheral in the DTS has been mo=
dified from</span></span><span class=3D"highlight" style=3D"background-colo=
r: rgb(255, 255, 255);"><span class=3D"colour" style=3D"color: rgb(0, 0, 0)=
;"> </span></span><br><span class=3D"highlight" style=3D"background-color: =
rgb(20, 22, 27);"><span class=3D"colour" style=3D"color: rgb(224, 226, 234)=
;">`brcm,bcm2835-pm` to `brcm,bcm2711-pm`, which caused `rpi4_map_watchdog(=
)` function to fail,</span></span><span class=3D"highlight" style=3D"backgr=
ound-color: rgb(255, 255, 255);"><span class=3D"colour" style=3D"color: rgb=
(0, 0, 0);"> </span></span><br><span class=3D"highlight" style=3D"backgroun=
d-color: rgb(20, 22, 27);"><span class=3D"colour" style=3D"color: rgb(224, =
226, 234);">leading to inability to reboot the system under Xen hypervisor.=
</span></span><span class=3D"highlight" style=3D"background-color: rgb(255,=
 255, 255);"><span class=3D"colour" style=3D"color: rgb(0, 0, 0);"> </span>=
</span><br> <br><span class=3D"highlight" style=3D"background-color: rgb(20=
, 22, 27);"><span class=3D"colour" style=3D"color: rgb(224, 226, 234);">Sig=
ned-off-by: Evgeny Beysembaev &lt;</span><span class=3D"colour" style=3D"co=
lor: rgb(179, 246, 192);"><a href=3D"mailto:evgeny@contentwise.tech" target=
=3D"_blank">evgeny@contentwise.tech</a></span><span class=3D"colour" style=
=3D"color: rgb(224, 226, 234);">></span></span><span class=3D"highlight" style=
=3D"background-color: rgb(255, 255, 255);"><span class=3D"colour" style=3D"=
color: rgb(0, 0, 0);"> </span></span><br><span class=3D"highlight" style=
=3D"background-color: rgb(20, 22, 27);"><span class=3D"colour" style=3D"color:=
 rgb(224, 226, 234);">---</span></span><span class=3D"highlight" style=3D"b=
ackground-color: rgb(255, 255, 255);"><span class=3D"colour" style=3D"color=
: rgb(0, 0, 0);"> </span></span><br><span class=3D"highlight" style=3D"back=
ground-color: rgb(20, 22, 27);"><span class=3D"colour" style=3D"color: rgb(=
224, 226, 234);"> xen/arch/arm/platforms/brcm-raspberry-pi.c | 9 ++++++---<=
/span></span><span class=3D"highlight" style=3D"background-color: rgb(255, =
255, 255);"><span class=3D"colour" style=3D"color: rgb(0, 0, 0);"> </span><=
/span><br><span class=3D"highlight" style=3D"background-color: rgb(20, 22, =
27);"><span class=3D"colour" style=3D"color: rgb(224, 226, 234);"> 1 file c=
hanged, 6 insertions(+), 3 deletions(-)</span></span><span class=3D"highlig=
ht" style=3D"background-color: rgb(255, 255, 255);"><span class=3D"colour" =
style=3D"color: rgb(0, 0, 0);"> </span></span><br> <br><span class=3D"highl=
ight" style=3D"background-color: rgb(20, 22, 27);"><span class=3D"colour" s=
tyle=3D"color: rgb(224, 226, 234);">diff --git a/xen/arch/arm/platforms/brc=
m-raspberry-pi.c b/xen/arch/arm/platforms/brcm-raspberry-pi.c</span></span>=
<span class=3D"highlight" style=3D"background-color: rgb(255, 255, 255);"><=
span class=3D"colour" style=3D"color: rgb(0, 0, 0);"> </span></span><br><sp=
an class=3D"highlight" style=3D"background-color: rgb(20, 22, 27);"><span c=
lass=3D"colour" style=3D"color: rgb(224, 226, 234);">index 811b40b1a6..74fc=
a7ecc5 100644</span></span><span class=3D"highlight" style=3D"background-co=
lor: rgb(255, 255, 255);"><span class=3D"colour" style=3D"color: rgb(0, 0, =
0);"> </span></span><br><span class=3D"highlight" style=3D"background-color=
: rgb(20, 22, 27);"><span class=3D"colour" style=3D"color: rgb(224, 226, 23=
4);">--- a/xen/arch/arm/platforms/brcm-raspberry-pi.c</span></span><span cl=
ass=3D"highlight" style=3D"background-color: rgb(255, 255, 255);"><span cla=
ss=3D"colour" style=3D"color: rgb(0, 0, 0);"> </span></span><br><span class=
=3D"highlight" style=3D"background-color: rgb(20, 22, 27);"><span class=3D"=
colour" style=3D"color: rgb(224, 226, 234);">+++ b/xen/arch/arm/platforms/b=
rcm-raspberry-pi.c</span></span><span class=3D"highlight" style=3D"backgrou=
nd-color: rgb(255, 255, 255);"><span class=3D"colour" style=3D"color: rgb(0=
, 0, 0);"> </span></span><br><span class=3D"highlight" style=3D"background-=
color: rgb(20, 22, 27);"><span class=3D"colour" style=3D"color: rgb(224, 22=
6, 234);"><b>@@ -60,9 +60,12 @@</b> static void __iomem *rpi4_map_watchdog(=
void)</span></span><span class=3D"highlight" style=3D"background-color: rgb=
(255, 255, 255);"><span class=3D"colour" style=3D"color: rgb(0, 0, 0);"> </=
span></span><br><span class=3D"highlight" style=3D"background-color: rgb(20=
, 22, 27);"><span class=3D"colour" style=3D"color: rgb(224, 226, 234);"> =
=C2=A0=C2=A0=C2=A0=C2=A0paddr_t start, len;</span></span><span class=3D"highli=
ght" style=3D"background-color: rgb(255, 255, 255);"><span class=3D"colour"=
 style=3D"color: rgb(0, 0, 0);"> </span></span><br><span class=3D"highlight=
" style=3D"background-color: rgb(20, 22, 27);"><span class=3D"colour" style=
=3D"color: rgb(224, 226, 234);"> =C2=A0=C2=A0=C2=A0=C2=A0int ret;</span></s=
pan><span class=3D"highlight" style=3D"background-color: rgb(255, 255, 255)=
;"><span class=3D"colour" style=3D"color: rgb(0, 0, 0);"> </span></span><br=
> <br><span class=3D"highlight" style=3D"background-color: rgb(20, 22, 27);=
"><span class=3D"colour" style=3D"color: rgb(255, 192, 185);">- =C2=A0=C2=
=A0=C2=A0node =3D dt_find_compatible_node(NULL, NULL, "brcm,bcm2835-pm");</spa=
n></span><span class=3D"highlight" style=3D"background-color: rgb(255, 255,=
 255);"><span class=3D"colour" style=3D"color: rgb(0, 0, 0);"> </span></spa=
n><br><span class=3D"highlight" style=3D"background-color: rgb(20, 22, 27);=
"><span class=3D"colour" style=3D"color: rgb(255, 192, 185);">- =C2=A0=C2=
=A0=C2=A0if ( !node )</span></span><span class=3D"highlight" style=3D"backgrou=
nd-color: rgb(255, 255, 255);"><span class=3D"colour" style=3D"color: rgb(0=
, 0, 0);"> </span></span><br><span class=3D"highlight" style=3D"background-=
color: rgb(20, 22, 27);"><span class=3D"colour" style=3D"color: rgb(255, 19=
2, 185);">- =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0return NULL;</span></=
span><span class=3D"highlight" style=3D"background-color: rgb(255, 255, 255=
);"><span class=3D"colour" style=3D"color: rgb(0, 0, 0);"> </span></span><b=
r><span class=3D"highlight" style=3D"background-color: rgb(20, 22, 27);"><s=
pan class=3D"colour" style=3D"color: rgb(179, 246, 192);">+ =C2=A0=C2=A0=
=C2=A0node =3D dt_find_compatible_node(NULL, NULL, "brcm,bcm2711-pm");</span><=
/span><span class=3D"highlight" style=3D"background-color: rgb(255, 255, 25=
5);"><span class=3D"colour" style=3D"color: rgb(0, 0, 0);"> </span></span><=
br><span class=3D"highlight" style=3D"background-color: rgb(20, 22, 27);"><=
span class=3D"colour" style=3D"color: rgb(179, 246, 192);">+ =C2=A0=C2=A0=
=C2=A0if ( !node ) {</span></span><span class=3D"highlight" style=3D"backgroun=
d-color: rgb(255, 255, 255);"><span class=3D"colour" style=3D"color: rgb(0,=
 0, 0);"> </span></span><br><span class=3D"highlight" style=3D"background-c=
olor: rgb(20, 22, 27);"><span class=3D"colour" style=3D"color: rgb(179, 246=
, 192);">+ =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0node =3D dt_find_compa=
tible_node(NULL, NULL, "brcm,bcm2835-pm");</span></span><span class=3D"high=
light" style=3D"background-color: rgb(255, 255, 255);"><span class=3D"colou=
r" style=3D"color: rgb(0, 0, 0);"> </span></span><br><span class=3D"highlig=
ht" style=3D"background-color: rgb(20, 22, 27);"><span class=3D"colour" sty=
le=3D"color: rgb(179, 246, 192);">+ =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0if ( !node )</span></span><span class=3D"highlight" style=3D"background-=
color: rgb(255, 255, 255);"><span class=3D"colour" style=3D"color: rgb(0, 0=
, 0);"> </span></span><br><span class=3D"highlight" style=3D"background-col=
or: rgb(20, 22, 27);"><span class=3D"colour" style=3D"color: rgb(179, 246, =
192);">+ =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0return NULL;</span></span><span class=3D"highlight" style=3D"background-col=
or: rgb(255, 255, 255);"><span class=3D"colour" style=3D"color: rgb(0, 0, 0=
);"> </span></span><br><span class=3D"highlight" style=3D"background-color:=
 rgb(20, 22, 27);"><span class=3D"colour" style=3D"color: rgb(179, 246, 192=
);">+ =C2=A0=C2=A0=C2=A0}</span></span><span class=3D"highlight" style=3D"b=
ackground-color: rgb(255, 255, 255);"><span class=3D"colour" style=3D"color=
: rgb(0, 0, 0);"> </span></span><br> <br><span class=3D"highlight" style=
=3D"background-color: rgb(20, 22, 27);"><span class=3D"colour" style=3D"color:=
 rgb(224, 226, 234);"> =C2=A0=C2=A0=C2=A0=C2=A0ret =3D dt_device_get_addres=
s(node, 0, &start, &len);</span></span><span class=3D"highlight" style=3D"b=
ackground-color: rgb(255, 255, 255);"><span class=3D"colour" style=3D"color=
: rgb(0, 0, 0);"> </span></span><br><span class=3D"highlight" style=3D"back=
ground-color: rgb(20, 22, 27);"><span class=3D"colour" style=3D"color: rgb(=
224, 226, 234);"> =C2=A0=C2=A0=C2=A0=C2=A0if ( ret )</span></span><span cla=
ss=3D"highlight" style=3D"background-color: rgb(255, 255, 255);"><span clas=
s=3D"colour" style=3D"color: rgb(0, 0, 0);"> </span></span><br><span class=
=3D"highlight" style=3D"background-color: rgb(20, 22, 27);"><span class=3D"col=
our" style=3D"color: rgb(255, 192, 185);">-- </span></span><span class=3D"h=
ighlight" style=3D"background-color: rgb(255, 255, 255);"><span class=3D"co=
lour" style=3D"color: rgb(0, 0, 0);">=C2=A0</span></span><br><span class=
=3D"highlight" style=3D"background-color: rgb(20, 22, 27);"><span class=3D"col=
our" style=3D"color: rgb(224, 226, 234);"><b>2.47.2</b></span></span><span =
class=3D"highlight" style=3D"background-color: rgb(255, 255, 255);"><span c=
lass=3D"colour" style=3D"color: rgb(0, 0, 0);"></span></span></span></div><=
div><br></div><div><br></div><div><br></div><div>On Friday, May 30, 2025 at=
 11:40:23 pm +03:00, Julien Grall &lt;julien@xen.org> wrote:<br></div><bloc=
kquote><div class=3D"oneComWebmail-mail"><div class=3D"oneComWebmail-body">=
<div>Hi Evgeny,<br></div><div><br></div><div>Thank you for the patch. Let m=
e start with the process,<br></div><div>patches are submitted inline rather=
 than in attachment.<br></div><div><br></div><div>git-send-email commmand c=
an do that for you.<br></div><div><br></div><div>Now regarding the patch. I=
 understand that newer kernel<br></div><div>will use the new compatible. Bu=
t I would assume there is<br></div><div>still some device-tree out using th=
e old property. So I<br></div><div>think Xen needs to check both compatible=
.<br></div><div><br></div><div>Lastly, for the future,when mentioning we co=
mmit, we tend to use a smaller<br></div><div>hash (12 digits) followed by t=
he commit title. In your case,<br></div><div>it would be:<br></div><div><br=
></div><div>b334c1afad17 ("ARM: dts: bcm2711: Use proper compatible in PM/W=
atchdog node").<br></div><div><br></div><div>Cheers,<br></div><div><br></di=
v><div>-- <br></div><div>Julien Grall<br></div></div></div></blockquote><di=
v><br></div>

------------40482-1754252178882-2--
------------40482-1754252178882-1--



From xen-devel-bounces@lists.xenproject.org Mon Aug 04 05:48:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 05:48:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068753.1432616 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uio3I-0000qE-6v; Mon, 04 Aug 2025 05:48:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068753.1432616; Mon, 04 Aug 2025 05:48: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 1uio3I-0000q5-1T; Mon, 04 Aug 2025 05:48:04 +0000
Received: by outflank-mailman (input) for mailman id 1068753;
 Mon, 04 Aug 2025 05:48:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=owTc=2Q=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1uio3H-0000pz-2O
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 05:48:03 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20609.outbound.protection.outlook.com
 [2a01:111:f403:200a::609])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 91b02cf2-70f6-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 07:47:57 +0200 (CEST)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 CY8PR12MB8196.namprd12.prod.outlook.com (2603:10b6:930:78::17) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8989.20; Mon, 4 Aug 2025 05:47:51 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d%7]) with mapi id 15.20.8989.018; Mon, 4 Aug 2025
 05:47: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>
X-Inumbo-ID: 91b02cf2-70f6-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qPoxAldojGdiH0xBUrYHOx7Cof8F+VURFAcfPjy8rYL6frSiWcUfIQB5f/Hsts17bZiPnBGGlgrGNmBHw3FK10E43XFclpHcXOwpOdsHjbyi+5Wo0/FMtdkVh5IRCdxf4OUUlNb0XY7vVa/oNbnOISUSDd6IXeaxbj0Yt4AleuOahM7FS2vlwqfvrAPik4ygGJI+b0zXk6bBnK5VX2uaxLp+qIv/ZMzTr+VdBqUaS1r+s4AbxOw8om11QSPfmF4AOQwAad42y/5F+zF/eiQff9M2KhXqCVqouhNBaf1pCwVaB+rH61Ys9cV3TCimqiauA3MGu9YuoG6X/wcpfmdKpQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ZBK2kaKkvA0SGmUyLNgD1ovYSGR86Ql41qh9k1MT3Yw=;
 b=SO4CsSRSUBZcTTUwcV/zt/EzcLrJdwgjPVuscxnyD/I4cSrZUhSLdgLJXCcWfoNgPM8D9dS3X4C5yHT7/mF4p8kQkfvuDHfKtYGGAlIUnEJnQcseZ+QbAODiTQEIEdE4Nc3vDLz4/8dMS23cS4saGoXyCvcNgDYyj+FY70zwqO9inyc/J0jJPg96nKUeXQKt7pdYc4EHRfuIngCkUvBrLPQZj1w6RaEqdGC0ZUC284TgXSpVyFrKmd2PulQa/Vok1r3NX7Kq3zK4C4aDCFatqeD07/Pi1/IbCd0ONHFvSU9lYpmTUxzBdPQwRG4AodD66JmHYcC9PiiU8g4e949+Ew==
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=ZBK2kaKkvA0SGmUyLNgD1ovYSGR86Ql41qh9k1MT3Yw=;
 b=cVmWSeKmHBe+x9KkHQMsjkEmHnsmEJDlUASzrFcC5Z1atYLNSyXv6PoKibrvIQCZkyTBLyv7IXDxHF2lRBhBdavEniyV/tfvj1GItqeT2Tqq2/jXCJzPisV+sF+VcNdytswqqNjrvAZ1IbiFi7kEN+2mdFhbyV6i02PFXZi8N8s=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v6 05/19] xen/cpufreq: refactor cmdline "cpufreq=xxx"
Thread-Topic: [PATCH v6 05/19] xen/cpufreq: refactor cmdline "cpufreq=xxx"
Thread-Index: AQHb8hcZyJcOgUanrEKBu4lvlAPx+bQ04KUAgB0+LSA=
Date: Mon, 4 Aug 2025 05:47:50 +0000
Message-ID:
 <DM4PR12MB8451A993F94C92ED054A591FE123A@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20250711035106.2540522-1-Penny.Zheng@amd.com>
 <20250711035106.2540522-6-Penny.Zheng@amd.com>
 <e9bc1036-2ab4-4e9a-9d43-8e11d4f67776@suse.com>
In-Reply-To: <e9bc1036-2ab4-4e9a-9d43-8e11d4f67776@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-08-04T05:35:01.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|CY8PR12MB8196:EE_
x-ms-office365-filtering-correlation-id: 67cfb7b7-f0be-4500-7a1b-08ddd31a7306
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?dTdjQUx4Vm5LMjAxTk42MjczKzFIRUpqNW5tU0FPTkJsOFhhS0hpWVBJN3pD?=
 =?utf-8?B?N2NRZ0xXY0JHaTQvWk9uMGF2Tk1VMFNKWGxQbWJhMGNrMGxYZFBaUWVpK2xu?=
 =?utf-8?B?bHZVWkFYbUVzTmhqRXR0SUFrNU1TUUJLQUU2WlQzNmttbWpJUEpyNVloUnFu?=
 =?utf-8?B?MTZ3aVgwU1RYb082dkZRcU1uL2QvTS94cVg3MUhuQk9qRUtrN2h4MmFGSVVw?=
 =?utf-8?B?L21FeEJEL1Nvcmk2SnBmYmNiYVFBVmFIblNSUkFPWlYxSUcxNlUrd0ltMkF3?=
 =?utf-8?B?TC9LUGxaaFZ3SGVlSWNybHBsZVNSUG45OGpzNFdFODFzN0FlMVcxMG05YmNn?=
 =?utf-8?B?SXVHVnU5NnM2c1RUaXJiMEJmRE5GUlFsWkhLL2hlVEpPR2t5M0k1VnZxUDJG?=
 =?utf-8?B?NDdpL2ppQkExaTFDNjRzQ3luOE5sU2kwUXBBZzBZMmt4NzRMWTFESERlVk1x?=
 =?utf-8?B?a2xac1dOUVBLc1p3STVwZ0lFV0RRRjl0WE5JLytKS0N0OEFzVkhFZjdlc3pG?=
 =?utf-8?B?bll4R0NwVWRvUk9yUTlWN0hFc1J1N1NzVTdMRHlYU0FINXVmclc3N1lUWW4v?=
 =?utf-8?B?aHZJb0x3TlFxbkNwSzBhbWYxRXBmMm91bFFDdEk0Z00vMnR5aXd0c1lMY2Jx?=
 =?utf-8?B?RWN4SWR2TFROZlRhOUI5RU9wQmtHaFY5c2tXYVI2dVhsVUtxZkU4YjkwTUZx?=
 =?utf-8?B?SGFGYUdmNTdWaWpFVVVrQjF6NW9YVDAzTmExdERwWjJJbkVMYzJjTGdCS0Z1?=
 =?utf-8?B?cTM3dTRIbFZnOUdwZGZWekZFZ0JmNjBreUxCQ3V4Vm1MUjdSZDJpVVFpWk9W?=
 =?utf-8?B?QS96MVo4d1VLWmg5OWIyNFhFdGpRQU5OdkUweGtNb21vcWM2WUd5N3lDTjM4?=
 =?utf-8?B?SDBpblZ6MjAyam82Q1g0aHNwVkRFc0I4bUY0S0RpdmJIeFVQSmJRUjdCZlFq?=
 =?utf-8?B?bVFzU210TTNrYnpEQUNOTUVqTzZhUUw2TU4xK0YwckFIdEh2RXdscVdKZEFH?=
 =?utf-8?B?cmx2ZmE1a0V6dnNLNnhUVVVJcnpTa0lDbjZWOWlheXZadUxIdGd5Z3Y0bmI4?=
 =?utf-8?B?dE5BV2RCRU1JdndjVnNJa1NpcDZIS2s4Mmx0dFhDdnBDVi9jSGhVbCtnakQr?=
 =?utf-8?B?UE1LOVVuVUFFUzZGN0twWGI4WElmUDBtYnhzR093UEVHenI3UTlLZExyTUdS?=
 =?utf-8?B?a0tuejlSRzFmRG8vNC8xeXZyaUVCcXQ2YW9YT0FURXJOdzh0UUowYUI2anJ3?=
 =?utf-8?B?OStKemRGOFUxZ3kzVXBkbEdOUHdSaVVvUGFjK1V5Y3BOVHJUK3lQdFdGNUI4?=
 =?utf-8?B?dE5UM1MzNkxvbnFJSW5BZzVQOFhQUkh4SzJoMnhwaitmREVROHRXQ2hlUk5E?=
 =?utf-8?B?U0lUdGY1clJBRG92eTJTSDRyVlF4bUIwOGtOaXRwU0tBRTNaZGg2bkZHeENB?=
 =?utf-8?B?VzA2aWdRR2RqY25aU29INmkvQmpQWWt2QStoNExDZk1PSnpjWHVtQ3NQZUIy?=
 =?utf-8?B?YVoxSkNYbXQrL21BdXJkVkRCbFFpOXFCNDEyNzFLQVlsZlhub2lVek5ZaUR0?=
 =?utf-8?B?WTljbWVYSTZYOWIwdEc2dHJyRE1iaFQwN1lmV0lHeUhUeFBNK0t1ZXcrVDlZ?=
 =?utf-8?B?MHFDcFFwSUpVdWxUUWJXdE11N284T2VscmFDdWo3NDU3NDlqd0h1bVhYeEZB?=
 =?utf-8?B?Q0kycE1UZEd1RlQvTFI2eEorOVlwdXpUaFE2NE5qU3RvK1pCSU1MQlJBZ1hk?=
 =?utf-8?B?U09LejQwbHQ4YVN2b1Zmejl1Y0ZjSVJKS1JpaERacFdhNHkrTm1Mclh4YWE3?=
 =?utf-8?B?enUxbnBINEkrSmk1UVlGNXpYNW9DdUpTeHRKTlh6ZWd3NngzeGUrMEpidXZm?=
 =?utf-8?B?dlJ4aldVOXBqY2o0eVpPMGp3Y1Q4bEkwRzdBOTVsdGU4L0FqKzVqY1p4Z3pU?=
 =?utf-8?B?WUp5SE9VbkNHb1l5eHl0OEZYS2taRjBCZTlXa2pITTQ1Mk9jRGdXMWlEaTJ6?=
 =?utf-8?Q?O1eyFrALNqwmkEAA4V/nxZFx1BQdfE=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?WVo2RlJJU1RzZGFER2pMcFZBN2hRWG5LOXdHMHJBMU8wTWdjdmxDb1hRSDU3?=
 =?utf-8?B?U1FNNjVSZHppRlcrSlRsRUNQUmorVFBSUCttVHhQblluU0ZEbHRhZ1FKMmhG?=
 =?utf-8?B?blJMRU0zY0NhbTVPRWJjTEJFQTdZM1F4b0ZCd0dudWZQYjY5UXRNOUZPMGRS?=
 =?utf-8?B?T295VXR2S2VwYmllNk1xMnZsMkh5RDJrQTZOTFhTNXNPVXc4RmpPeDRIUlZ0?=
 =?utf-8?B?eDBGN21kVlZkUHRTbm9sN21ISWFtbEZHdjZBTElEeE9EZTRCbmptd1lpTE5O?=
 =?utf-8?B?MnJBQ0lGRForeERVWXN5QkNXWkNGL0UrWEhOdU9pNVpxUVQxV2ZKbk45eTIx?=
 =?utf-8?B?eEtYdDl2dTM5N3huTVQ1ek95OVV4Ly9kUFJ4Vi8xZUxDRVBUTHVYT2ZwTFVU?=
 =?utf-8?B?R3NDOWdUTitsS0RZaG0xZnlScml1ek9xS0dhdXU2akpzWXJwS3hFa2xtUWpM?=
 =?utf-8?B?czVEMGJsVUl5NGFvT1U2YXdKMkJKS3N1R1I0bW5Fd082ZHpVT1dUcDBJVXBY?=
 =?utf-8?B?VHU0YXRGYXFnRFBLL3ZWSjQ4TE0wbGtNK0pYZUw5ZWxtL0FxRzlqWmVvQnRZ?=
 =?utf-8?B?UnBPK1ZuaWg4czlXVTZwbDJwZERWVVFzWkVqOGx0S2gyTTZ4MFR0RHdheUNS?=
 =?utf-8?B?WWVRbktWakp4Y3poSEYvczdtSjdjemZVRy9kZndsKzV4S0RYQWhva0h4ZWUx?=
 =?utf-8?B?U1E2c2s5RUdLbldoZTBYdktCaXFJUTBzZzUwRFlXcmN0a052c0FkN093OExt?=
 =?utf-8?B?TWRFcFN4WTZXM1lZTVViVElnbXFBd3pDbng2MjNtOWIrcHNrdzl0NEs5SjJS?=
 =?utf-8?B?OGwxMzFGWWNkaHVYREF2cVFPU1pwanZsbzBGUU05dHBNSWh6b3NiZHI5QXUv?=
 =?utf-8?B?THdPQTc3c2hrOWhFRnRpcEU1OUF6UkhobVEzOTh4UzhhNCtIQmVLSHFQK2RQ?=
 =?utf-8?B?am5hWDAvU0RrTnFJZVBENEh2YjNObUMzbmRFRUN1ME1EclpPYWtwaFFFYXZB?=
 =?utf-8?B?SDNnOFVWb0p1UVdyRHI4SHp2dDdJRnBTQyt5QlNiaUZNQmFyb01RU0FwMDlT?=
 =?utf-8?B?ZzJXMm1wQmQ1VXczZXpIbkF4a1VSMGw5Y3p4ZDNla0lZLzY0cW0ySU1JWjRy?=
 =?utf-8?B?MzJzbVBFbVoxQlBLenYreGZYeStMaTU0dGxPWWdpbGlNa1lMZERWc0tzTGQ1?=
 =?utf-8?B?T0NlSEhHcU1OTmpuYkdQR21ocU1waUxUY1J5QTVxYy9PTWlzUTVRemRXNm1F?=
 =?utf-8?B?b29EYlN3TlUyZGpCY2JTSjZMcmNTd1Ura2t3Umh3c0FhbysyamZUbXErL240?=
 =?utf-8?B?YTJYbDU0QVJxWFFxRzRFMkpkK2hZRnQ4OVF1TzNpUEJTeEFpNVFHNGF6SnRu?=
 =?utf-8?B?M2UyVjIwblc1bFQ5NjRqd3l5SXZtVFRpSGRiU0NPUlhTa1RKSXg4c2NUZnMr?=
 =?utf-8?B?S3pRNHVqcURHcGZIZ1JXb2ZZaWNNL1Ixc01mMmJSZXZlLzN2aEgyNnNoOE8v?=
 =?utf-8?B?aFJxTW5XVW5kL2crNTNyODRXMGpYRVNEQUNPNTBpbjRPQ09KUXF6RGVGcUVv?=
 =?utf-8?B?REFNUVZKdWZjMGlqWmZIeFEwTnVIOEpIM1F5TzQ2RVJsa1VJS1MvbnRtbVl0?=
 =?utf-8?B?QUhOOGJSdFhQZ29KUzFqWnFkUjE1MjlPdjF5NGo3R01IMHNjMzdpOTBYNTIv?=
 =?utf-8?B?SUQ4RzRQQlk3ZThqQ0lNYzNKczd0NTNMeHBGMnQwSXhJa01IRHIzQVZWYUtp?=
 =?utf-8?B?a3lwUDZ5NkloMWNEQStwWFRxMlg2R01uMmRXNnpLdjhEMHR1MXYrMU1wK3Y4?=
 =?utf-8?B?SDJWaUVvMzVwMW94K3Q2WWNhaHFQT3JQS01NYkd3NEdBWUhqVHE3OHhjNHNQ?=
 =?utf-8?B?V1p6SkpuT0ltaVo1WXhWeFJGcDhyWXVxU0pDbUVDNksxOFZmZXNqNTFHTStS?=
 =?utf-8?B?Q1psRzhGRkszaFc3eVh2VjV5cXFuQTU1NWRHT3dpWTY4am5nSTc0YTZBdTdK?=
 =?utf-8?B?NUF3QVUrMHpKYzRZeXp3Q29Ca3piNndXd0NzL2lYUnhiY3hZdlcwdlo5Wndh?=
 =?utf-8?B?ek5rcVFHS0NOVEVPazZmazg5RlNsaGRtSzU2OFBORURBYi9LSUl3U1lDVjFX?=
 =?utf-8?Q?84bE=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 67cfb7b7-f0be-4500-7a1b-08ddd31a7306
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Aug 2025 05:47:50.8477
 (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: XWr3Gbq27kJ8aYHk2U7LPq3OwMahIIna7sZgb6bBbW4B3lNehJfnHdpcwu7fCIAT3GiubB71Y4y9cijWTCTQxw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB8196

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFdlZG5lc2RheSwgSnVseSAxNiwgMjAy
NSAxMTowMSBQTQ0KPiBUbzogUGVubnksIFpoZW5nIDxwZW5ueS56aGVuZ0BhbWQuY29tPg0KPiBD
YzogSHVhbmcsIFJheSA8UmF5Lkh1YW5nQGFtZC5jb20+OyB4ZW4tZGV2ZWxAbGlzdHMueGVucHJv
amVjdC5vcmcNCj4gU3ViamVjdDogUmU6IFtQQVRDSCB2NiAwNS8xOV0geGVuL2NwdWZyZXE6IHJl
ZmFjdG9yIGNtZGxpbmUgImNwdWZyZXE9eHh4Ig0KPg0KPiBPbiAxMS4wNy4yMDI1IDA1OjUwLCBQ
ZW5ueSBaaGVuZyB3cm90ZToNCj4gPiAtLS0gYS94ZW4vZHJpdmVycy9jcHVmcmVxL2NwdWZyZXEu
Yw0KPiA+ICsrKyBiL3hlbi9kcml2ZXJzL2NwdWZyZXEvY3B1ZnJlcS5jDQo+ID4gQEAgLTY0LDEy
ICs2NCw1MyBAQCBMSVNUX0hFQURfUkVBRF9NT1NUTFkoY3B1ZnJlcV9nb3Zlcm5vcl9saXN0KTsN
Cj4gPiAgLyogc2V0IHhlbiBhcyBkZWZhdWx0IGNwdWZyZXEgKi8NCj4gPiAgZW51bSBjcHVmcmVx
X2NvbnRyb2xsZXIgY3B1ZnJlcV9jb250cm9sbGVyID0gRlJFUUNUTF94ZW47DQo+ID4NCj4gPiAt
ZW51bSBjcHVmcmVxX3hlbl9vcHQgX19pbml0ZGF0YSBjcHVmcmVxX3hlbl9vcHRzWzJdID0geyBD
UFVGUkVRX3hlbiwNCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBDUFVGUkVRX25vbmUgfTsNCj4gPiArZW51bSBjcHVmcmVxX3hlbl9v
cHQgX19pbml0ZGF0YSBjcHVmcmVxX3hlbl9vcHRzW05SX0NQVUZSRVFfT1BUU10gPSB7DQo+ID4g
KyAgICBDUFVGUkVRX3hlbiwNCj4gPiArICAgIENQVUZSRVFfbm9uZQ0KPiA+ICt9Ow0KPiA+ICB1
bnNpZ25lZCBpbnQgX19pbml0ZGF0YSBjcHVmcmVxX3hlbl9jbnQgPSAxOw0KPg0KPiBHaXZlbiB0
aGlzLCBpc24ndCB0aGUgYXJyYXkgaW5kZXggMSBpbml0aWFsaXplciBxdWl0ZSBwb2ludGxlc3Mg
YWJvdmU/IE9yIGVsc2UsIGlmIHlvdQ0KPiByZWFsbHkgbWVhbiB0byBleHBsaWNpdGx5IGZpbGwg
YWxsIHNsb3RzIHdpdGggQ1BVRlJFUV9ub25lIChkZXNwaXRlIHRoYXQgZGVsaWJlcmF0ZWx5DQo+
IGhhdmluZyBudW1lcmljIHZhbHVlIDApLCB3aHkgbm90DQo+ICJbMSAuLi4gTlJfQ1BVRlJFUV9P
UFRTIC0gMV0gPSBDUFVGUkVRX25vbmUiIChvciB1c2luZyBBUlJBWV9TSVpFKCksIGFzDQo+IHBl
ciBiZWxvdyk/DQo+DQoNClRoZSBjcHVmcmVxX3hlbl9jbnQgaW5pdGlhbGl6ZWQgYXMgMSBpcyB0
byBoYXZlIGRlZmF1bHQgIENQVUZSRVFfeGVuIHZhbHVlIHdoZW4gdGhlcmUgaXMgbm8gImNwdWZy
ZXE9eHh4IiBjbWRsaW5lIG9wdGlvbg0KSSBzdXBwb3NlIHlvdSBhcmUgcG9pbnRpbmcgb3V0IHRo
YXQgdGhlIG1hY3JvIE5SX0NQVUZSRVFfT1BUUyBpcyBwb2ludGxlc3MsIGFzIHdlIGNvdWxkIHVz
ZSBBUlJBWV9TSVpFKCkuDQoNCj4gPiAgc3RhdGljIGludCBfX2luaXQgY3B1ZnJlcV9jbWRsaW5l
X3BhcnNlKGNvbnN0IGNoYXIgKnMsIGNvbnN0IGNoYXINCj4gPiAqZSk7DQo+ID4NCj4gPiArc3Rh
dGljIGJvb2wgX19pbml0IGNwdWZyZXFfb3B0c19jb250YWluKGVudW0gY3B1ZnJlcV94ZW5fb3B0
IG9wdGlvbikNCj4gPiArew0KPiA+ICsgICAgdW5zaWduZWQgaW50IGNvdW50ID0gY3B1ZnJlcV94
ZW5fY250Ow0KPiA+ICsNCj4gPiArICAgIHdoaWxlICggY291bnQtLSApDQo+ID4gKyAgICB7DQo+
ID4gKyAgICAgICAgaWYgKCBjcHVmcmVxX3hlbl9vcHRzW2NvdW50XSA9PSBvcHRpb24gKQ0KPiA+
ICsgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCj4gPiArICAgIH0NCj4gPiArDQo+ID4gKyAgICBy
ZXR1cm4gZmFsc2U7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBpbnQgX19pbml0IGhhbmRs
ZV9jcHVmcmVxX2NtZGxpbmUoZW51bSBjcHVmcmVxX3hlbl9vcHQgb3B0aW9uKQ0KPiA+ICt7DQo+
ID4gKyAgICBpbnQgcmV0ID0gMDsNCj4gPiArDQo+ID4gKyAgICBpZiAoIGNwdWZyZXFfb3B0c19j
b250YWluKG9wdGlvbikgKQ0KPiA+ICsgICAgICAgIHJldHVybiAwOw0KPiA+ICsNCj4gPiArICAg
IGNwdWZyZXFfY29udHJvbGxlciA9IEZSRVFDVExfeGVuOw0KPiA+ICsgICAgQVNTRVJUKGNwdWZy
ZXFfeGVuX2NudCA8IE5SX0NQVUZSRVFfT1BUUyk7DQo+DQo+IFRoaXMgd291bGQgYmV0dGVyIHVz
ZSBBUlJBWV9TSVpFKCksIGF0IHdoaWNoIHBvaW50IE5SX0NQVUZSRVFfT1BUUyBjYW4gZ28NCj4g
YXdheSBhZ2Fpbi4gV2hhdCdzIHdvcnNlLCB0aG91Z2gsIGlzIHRoYXQgb24gcmVsZWFzZSBidWls
ZHMgLi4uDQo+DQoNClVuZGVyc3Rvb2QsIHdpbGwgdXNlIEFSUkFZX1NJWkUoKSwgYW5kIHdpbGwg
dXNlIGlmKCkgdG8gZXJyb3Igb3V0DQoNCj4gPiArICAgIGNwdWZyZXFfeGVuX29wdHNbY3B1ZnJl
cV94ZW5fY250KytdID0gb3B0aW9uOw0KPg0KPiAuLi4geW91IHRoZW4gc3RpbGwgb3ZlcnJ1biB0
aGlzIGFycmF5IGlmIHNvbWV0aGluZydzIHdyb25nIGluIHRoaXMgcmVnYXJkLg0KPg0KPiBKYW4N
Cg==


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 06:04:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 06:04:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068765.1432626 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uioIt-0003hN-Hz; Mon, 04 Aug 2025 06:04:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068765.1432626; Mon, 04 Aug 2025 06:04: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 1uioIt-0003hG-Ex; Mon, 04 Aug 2025 06:04:11 +0000
Received: by outflank-mailman (input) for mailman id 1068765;
 Mon, 04 Aug 2025 06:04:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=owTc=2Q=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1uioIs-0003hA-8X
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 06:04:10 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20603.outbound.protection.outlook.com
 [2a01:111:f403:2412::603])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d3aa8eda-70f8-11f0-a321-13f23c93f187;
 Mon, 04 Aug 2025 08:04:08 +0200 (CEST)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 SN7PR12MB6716.namprd12.prod.outlook.com (2603:10b6:806:270::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.18; Mon, 4 Aug
 2025 06:04:02 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d%7]) with mapi id 15.20.8989.018; Mon, 4 Aug 2025
 06:04: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>
X-Inumbo-ID: d3aa8eda-70f8-11f0-a321-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=P+YLdtqLB4ehAwrMhBdwIZJMXRyXco+/CN00AjT19Ix9ACVHPqrV/KUe2Km9ona5yrFhkfURjldsavhWOgAQBiC3cJ3dFS0MscExfeGPaDT76INdWfbTKrjhJgOuXjQVaj4qQZxCFnj8LulnnWZdaMC1NVnFda5pHrFW4NU9dDzYDtbjcmf8gkqPeGAa1sGjlFibqh2DptW5dyc9bep0N0Lpx6oIBFLO3YW1PdjoeamPMebEc0EN9OVBFWUn+hSuufNUJrJCR5hEgNx8mAIpAY+QatwbhIZ4h8uIKHhbdWkbEzMCHuTtGnAsLyKfARNXV5EEsiyWSi6DzKVtXLW6jg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=nGnCakyqd8UMKZiuJ0iK2GF1Bhi+bRcqVYDKw5ml4zE=;
 b=DikHha9OmXc5ZjMVc5zML7xxtrEU+DWI87iaVyqHkBUdniEOtnrdZFXki39mSSnlOd0P48LoL696NGwWsuFWOVGMAheWpXHfOZtc2Fx4G2sNVWyVFkYZ/mJlpi0onYQ+M0721gSRxklxGJl1q3Lff/6zd+leyJ/iskyyKilo/usQtQcilTPjCyi3phpxVlyVWJWZ1Hh4O2tgdUG042PanFZrmQRIZQqm690fS7Te78MwhNTqT4mNjjz1kxxSK4a7MjuZJCp7TN3ERty/pS3EdzmsLabywFuNcFAxOGvk07rIYjG1dY5hoLRWY0mZyZKR9Y4W62ieagAN28j67UANag==
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=nGnCakyqd8UMKZiuJ0iK2GF1Bhi+bRcqVYDKw5ml4zE=;
 b=im0MwtTjcQe+1Ri/YqbFlJUsWYTUBfbZlp5bcETIRC72TUnKt2dTck9q5QneGkJt4ufFtdE2gVSudJ3a0gsYot3QHDWpDYbQKrtLSHn0D/OEssu3lHOsMqRo78Zsl2mxm5EsJp3UbpEH2GQUtZNl2usepPCeqVNdmDMnEIxQFl0=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v6 05/19] xen/cpufreq: refactor cmdline "cpufreq=xxx"
Thread-Topic: [PATCH v6 05/19] xen/cpufreq: refactor cmdline "cpufreq=xxx"
Thread-Index: AQHb8hcZyJcOgUanrEKBu4lvlAPx+bQ04KUAgB1EuoA=
Date: Mon, 4 Aug 2025 06:04:02 +0000
Message-ID:
 <DM4PR12MB8451C4DA5340306CAB9E6BE5E123A@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20250711035106.2540522-1-Penny.Zheng@amd.com>
 <20250711035106.2540522-6-Penny.Zheng@amd.com>
 <e9bc1036-2ab4-4e9a-9d43-8e11d4f67776@suse.com>
In-Reply-To: <e9bc1036-2ab4-4e9a-9d43-8e11d4f67776@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-08-04T05:58:27.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|SN7PR12MB6716:EE_
x-ms-office365-filtering-correlation-id: f8697494-1630-4972-5f82-08ddd31cb63f
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?Q203UXJZMjVvUUhlR0xaVDgwL3NFS3BPS0F2M1VaUkZEVWlacnFrOE5TRVVY?=
 =?utf-8?B?Y2JZMkZNdHBwM3dZZTJobTJTMnZRMkx3SVlWMDAzemZReVF5UUM4aE1HNm5r?=
 =?utf-8?B?OFZTTlFXbEpJeURFdG1oOEtKOVpNR1E1dnRRR013KzNJeFA5WUx6T0RkY29P?=
 =?utf-8?B?bVc0QXFCRTBDTXlpQkZSSExXdGVmc3BOcnMxbGFxM01oV3o1a0M4dnRwbkpo?=
 =?utf-8?B?ZzRvMGZUSDhPM004R0hDcDFwNkh5VUhSUUFNZzJ1OTEzU2pORkpYaW1xVGNm?=
 =?utf-8?B?QS9xRTgyeHpJV3YrT0NvUkZFRmdaOEJTTVhsdXlHUkV3ZmVzd1lMTkVrV0U0?=
 =?utf-8?B?UDRUazg1VWNFckl4ZjlVYjlMVkdUQWdVZGtVMlpRL25VUXppRVhVM25PVW1L?=
 =?utf-8?B?a1IrQURnL1BObXVvK1JSQnpQSlA5U1ZqK05KM2NkUXJsbWNBWmhjMU85cXRq?=
 =?utf-8?B?VjFQcnJxdEhpdS8vNGZLa2FzYmxrSytWaXJhUmZCU3lTc3NaS1pnMnhpYzIw?=
 =?utf-8?B?M0FWemV5UkFHWHVuYUdpQ01kdGY1VlF6VTN6bWk0N1psam5kN2RWb1NMTTNY?=
 =?utf-8?B?dkM5YVpTbncxa2dNS25wQjNYWEplOHdFbDJmcklydnlXMVdzMUZ6MXRISm1D?=
 =?utf-8?B?STBaYzArZ3ZzRDd6L1B3Z3djSFE0bjVTdEljTmprWFZTN2FvZUxkdlFjNXpK?=
 =?utf-8?B?NWJvQVhBS0tNUkhKM255bmZ6WnRRTVZzME14YzlNRzhzKzVFeHhkZ2FTREQ5?=
 =?utf-8?B?K2NvaXhDUHk4VXVGVDJac1pENHZSYTV5cVVJYVZNUlRDM2lUeW5WeGJYYVpD?=
 =?utf-8?B?cHJ6WFgzTGZYcVlrQ0xHeFpBRGJQTVVKQk9qRi9QdXpHVVJSeHhabTlQYW1a?=
 =?utf-8?B?eWMraThTcjc5Vlp1bU1vMFFaSXo4NHJDRnlkeUtTTVo1R1VmOWxydmdZZVRq?=
 =?utf-8?B?WEJhVnh5UDRic3VCWERrN2ZHZHJXamNVVFMwajUxUUY5ZHpRTXc0YkZBMFRp?=
 =?utf-8?B?djNzMXV6cDJ5L1JQRDNDcnR2N3hvcWVscUtmdC9kVmZNSWRIQXJqeFBkQ0Ew?=
 =?utf-8?B?eldLTlFTbmhtVUZiRmtWMGJ3SDMrcXZ3V3A1ZDRTMDhvb3FaMlB5bVFWZFpZ?=
 =?utf-8?B?WFJOR1YwWThkOUtpY3Z0SHJTelJoeFhJZTZJZzRrSHAweEJCTjcxd3RoalBI?=
 =?utf-8?B?YlN5VmZLV0FYTFVrYW5mNE1UdUt0UUpla240VGJ3RVZtYVhoWm4zcEJ0SFRN?=
 =?utf-8?B?bzhqZnp2MWs1aVRteE5wdGRkNHRxSjhta0pIWDZ0elE0SUVrbThzbGVkSit2?=
 =?utf-8?B?WTVQcEVaZXozL0ZvSFJEUnhuYnlvdjRUS3RKUzRvT3ZVaU4xQlRYRyt6ek9z?=
 =?utf-8?B?RmZ2c0ZNdElvY2NhQkJKaXV3cTBqWGNzeUhyUU9KeVZuRSs3bkVRckQvY2lS?=
 =?utf-8?B?akY0R3BaWjRVUFRBcEFUTWxSQlF6SXMxSloxWWlCSm9ha3ZwUSs3TFNsd05C?=
 =?utf-8?B?ODJUdktoaU1pZ0NtWi91SllXQm9WWmtDdkZySXFjbklBck9TbU9aUjBHdnBF?=
 =?utf-8?B?cnJjOUh3U2tvYm5CYW5EY010OVVVM25lU2U0am56akIvWmhVbitiaHU5WUNa?=
 =?utf-8?B?Vmg5b0ZCb1hreGxLbURoUEFseHYrUXcwTUpMNURlU29DaExsd3NQQVh1TEhM?=
 =?utf-8?B?SDRXeVlGWGJ1bWU1K2dzdUUxemJQUzduWEtheEU2V3FaZ0t6cVUzajFLYWFM?=
 =?utf-8?B?TW5QMjVrQ0lqVm00dm15S010VDJ4ZktHc0JoR0NCWEsyeUlYaXBrbHlBSlNL?=
 =?utf-8?B?WjBFMVNNZ3BUdUlDQlN0OS9MeVFjZFFCdlBYQnVrT3JrWVpwMzh0UkxoU0RX?=
 =?utf-8?B?WjlQWnVEVVVnT3h4WFFoelFVRmJsQkFFWExmdXBQY2grVTUrM3Y3Z052VVFv?=
 =?utf-8?B?aHNFS1RPYlUwVjhQVEE2NDl5Q09PRVEzd3BZNkVsSEVibGttb0xYbnU1R0FL?=
 =?utf-8?Q?BI9aeM6/YBD+acE9Lh8wy7uJqB+aYE=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?QXlPT09BcnRkQkRHb2ZCbDZGOWJtTlRVUUI4RFkwOE93djB2TmZpUWhaR1My?=
 =?utf-8?B?d25DWWthbWV6VHZMVUp2OU1tek5ZY3JRM3V1alRBUWdXcXpzSEltY3ZMMkIx?=
 =?utf-8?B?VW1TWldZb3YxZXljYS9BbUE1eE1MQW0zSlpKSFVyRXY3eWVVY0NIUFIzaVdH?=
 =?utf-8?B?Z3JWRjNWYVhodjBrM21kdUhwYmdoT0ljZ0dqelFwalNXRGc1eGZObHhRVTlk?=
 =?utf-8?B?bWl6TWlIRFJZSFBDZGcrMHM3U3dudFFnb09yNkY2UVBJK21WZjhvSm1Ba09m?=
 =?utf-8?B?Vmx0OERWOTIzREhOMU9QYmxaa09NZHJFOTREZGpidGdtMkNvSEw1TWM3TG9N?=
 =?utf-8?B?dDJpVk1wSGtMckhTV3B5Z1ErcmpJUkFISXo5ci81akhwZUxaL1BDRE9zSnh2?=
 =?utf-8?B?bVBRWFhvcUdHVnhjQmlEYjZiNjJoejNnZnorTnNiVU9VRGRJV1VmVk1Md2Jy?=
 =?utf-8?B?eHRqdjhBS0VqQndoenBvZER3bGc1VjI5cTFHQVpPa0JjaksvUHlhemE5cHhD?=
 =?utf-8?B?NkUxVG9vMWppRW5iNnZ3TXlqTVl3cXQxWU95bDFzTkNGN2grUE52R0hvNmM3?=
 =?utf-8?B?M2NuTUxXMWI4SE1HK1hkRmNEcUlYWjFLc2lMd1llU2hTRGNsY0lhVEN5dGlr?=
 =?utf-8?B?NCs0UU9IMzI5OGVjelJKakdoUjd3Qjc4TWpwMkNxaG91WUx0dXE1MUs4ZlNU?=
 =?utf-8?B?bm9peUxPem45cXRlTkFIK2J6TXFaWTJ2OFlKWU5hNkRleUlDbkpzaDd0QVQ3?=
 =?utf-8?B?UE1mOVRSUk5udzVUdXY3NmlRRzdPS3lDV0UrbjNvQTJyenJHRmc4aldJUFNU?=
 =?utf-8?B?bUdZR1dFR05mWDY4VlZ3TmhudWJuMTFwcUN6OGkvblRSdzFwOWZwTXhPS0l1?=
 =?utf-8?B?MHpRTWYxOUxidVVGdkUyS00yU3k4WXdibks5MUVRWXkrL1hKZ1RaQzA4NWN6?=
 =?utf-8?B?aXkralZ5TjQvNzl0SER1OFRmZTlxTGFyTE1rMVdHUTFTclFCdnFTVkdBTGN1?=
 =?utf-8?B?OWorYWlveW5Id29JcjdrZmhCV3RMeWNIaG9BRUgyN0RyZUk4WmYxbndQdFdU?=
 =?utf-8?B?b1NzbEZTOW1sL2hUVXZQRit6QkNTdGRxdW9wV3AwZGhic3F1b2lVQVpRNWww?=
 =?utf-8?B?azhYYmRyd0dobWdPUlg3bEhqaVVWQk9BU1hNUDdYMy9lQUZSdVljY1RLRmYr?=
 =?utf-8?B?TlFmOXBUekN6K3VnM0VhWEh1M28vL0FiV2I3a3dBUnhRRlR4TlBieEVFN0hO?=
 =?utf-8?B?NkEySGxYbVdoZ2tlVTNSRDdqYVNhaWl5SzkvbUI1RzJCNVdyV0xwZ1Z3UVlL?=
 =?utf-8?B?T3dOOVEwV0Z6UWVDeUFDSUxHVnB0Um9xU1R5QzQwdTB0SzZ1Si9CeGJPZGly?=
 =?utf-8?B?eVZZenNCdFZwMzFBb0FrVEtHRXQ1TlZaZFQ0MTZFMS9OUW13T0plY3h0cXNp?=
 =?utf-8?B?dDZiSmM1MzRHZTk5T1pkRjNSZDh5dkNIdU5mb3BVZGNQdU1ZRTVReWtUQjFJ?=
 =?utf-8?B?Y2JabkorZEUrSFNWc1lUa0VKSEFob3AvSnM3T3pnTXRlSG1icGpyUzdmZWwr?=
 =?utf-8?B?RG9hTlJmYkp1bkpMNVd2M1JXQVJZcWVud2pQVVI2RzFMV3E3cE55b1ZJYlpB?=
 =?utf-8?B?UlhUc1p5VEl6WWk3RXlFUHZDeTlLT1J6NGQxaGZ0OVRPcHpQZXV1RGMvdVo2?=
 =?utf-8?B?RHYrbjdzY1pFWW9rZlB6dU54NlpERWlsOXY5b1JNZlZ2VEs4NE14RWowc29U?=
 =?utf-8?B?NkZic0QrSmg2RlRwcmRKVG1SS2FWckxGTm8wYXJ3QmFGVk9EVzNWa2VRY3JP?=
 =?utf-8?B?MEpRWFhKbUJIcEFMbXBkNnY1Z1Exc2IzcEE4b1pGTVN6QW4yZDh2ODlWQjUr?=
 =?utf-8?B?ODRWejc2RVdzZHdsaG9jZC96T0ZhMkJ0ZmxqN2pucUVGRERTVFF2cGJLajIx?=
 =?utf-8?B?UmFhQjY2OEFJampVVm1LWG1VVFZRb1RYYUtLVWtDRENlcFVqL25FSE9McTlq?=
 =?utf-8?B?bG93UGt5ZHh5Mlp3cHEvQXA4d25lVC9pRmx4WUNKd3pzeGhxanRGSktONFo4?=
 =?utf-8?B?bXRUZGVDTVdzdjl3RFpyK25LbWpQMGVVcHBIcFh1OXJCckdLck9BK1lsVHVl?=
 =?utf-8?Q?mHTw=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f8697494-1630-4972-5f82-08ddd31cb63f
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Aug 2025 06:04:02.6524
 (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: emUn1uraUs1LG0SBQCsSRncAD0skiMRHGcUDySR++WrDFYHja3bAfI8nE5Sd46Ig+BFgL4XMGr27wwcVPnCx4w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB6716

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFdlZG5lc2RheSwgSnVseSAxNiwgMjAy
NSAxMTowMSBQTQ0KPiBUbzogUGVubnksIFpoZW5nIDxwZW5ueS56aGVuZ0BhbWQuY29tPg0KPiBD
YzogSHVhbmcsIFJheSA8UmF5Lkh1YW5nQGFtZC5jb20+OyB4ZW4tZGV2ZWxAbGlzdHMueGVucHJv
amVjdC5vcmcNCj4gU3ViamVjdDogUmU6IFtQQVRDSCB2NiAwNS8xOV0geGVuL2NwdWZyZXE6IHJl
ZmFjdG9yIGNtZGxpbmUgImNwdWZyZXE9eHh4Ig0KPg0KPiBPbiAxMS4wNy4yMDI1IDA1OjUwLCBQ
ZW5ueSBaaGVuZyB3cm90ZToNCj4gPiAtLS0gYS94ZW4vZHJpdmVycy9jcHVmcmVxL2NwdWZyZXEu
Yw0KPiA+ICsrKyBiL3hlbi9kcml2ZXJzL2NwdWZyZXEvY3B1ZnJlcS5jDQo+ID4gQEAgLTY0LDEy
ICs2NCw1MyBAQCBMSVNUX0hFQURfUkVBRF9NT1NUTFkoY3B1ZnJlcV9nb3Zlcm5vcl9saXN0KTsN
Cj4gPiAgLyogc2V0IHhlbiBhcyBkZWZhdWx0IGNwdWZyZXEgKi8NCj4gPiAgZW51bSBjcHVmcmVx
X2NvbnRyb2xsZXIgY3B1ZnJlcV9jb250cm9sbGVyID0gRlJFUUNUTF94ZW47DQo+ID4NCj4gPiAt
ZW51bSBjcHVmcmVxX3hlbl9vcHQgX19pbml0ZGF0YSBjcHVmcmVxX3hlbl9vcHRzWzJdID0geyBD
UFVGUkVRX3hlbiwNCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBDUFVGUkVRX25vbmUgfTsNCj4gPiArZW51bSBjcHVmcmVxX3hlbl9v
cHQgX19pbml0ZGF0YSBjcHVmcmVxX3hlbl9vcHRzW05SX0NQVUZSRVFfT1BUU10gPSB7DQo+ID4g
KyAgICBDUFVGUkVRX3hlbiwNCj4gPiArICAgIENQVUZSRVFfbm9uZQ0KPiA+ICt9Ow0KPiA+ICB1
bnNpZ25lZCBpbnQgX19pbml0ZGF0YSBjcHVmcmVxX3hlbl9jbnQgPSAxOw0KPg0KPiBHaXZlbiB0
aGlzLCBpc24ndCB0aGUgYXJyYXkgaW5kZXggMSBpbml0aWFsaXplciBxdWl0ZSBwb2ludGxlc3Mg
YWJvdmU/IE9yIGVsc2UsIGlmIHlvdQ0KPiByZWFsbHkgbWVhbiB0byBleHBsaWNpdGx5IGZpbGwg
YWxsIHNsb3RzIHdpdGggQ1BVRlJFUV9ub25lIChkZXNwaXRlIHRoYXQgZGVsaWJlcmF0ZWx5DQo+
IGhhdmluZyBudW1lcmljIHZhbHVlIDApLCB3aHkgbm90DQo+ICJbMSAuLi4gTlJfQ1BVRlJFUV9P
UFRTIC0gMV0gPSBDUFVGUkVRX25vbmUiIChvciB1c2luZyBBUlJBWV9TSVpFKCksIGFzDQo+IHBl
ciBiZWxvdyk/DQo+DQo+ID4gIHN0YXRpYyBpbnQgX19pbml0IGNwdWZyZXFfY21kbGluZV9wYXJz
ZShjb25zdCBjaGFyICpzLCBjb25zdCBjaGFyDQo+ID4gKmUpOw0KPiA+DQo+ID4gK3N0YXRpYyBi
b29sIF9faW5pdCBjcHVmcmVxX29wdHNfY29udGFpbihlbnVtIGNwdWZyZXFfeGVuX29wdCBvcHRp
b24pDQo+ID4gK3sNCj4gPiArICAgIHVuc2lnbmVkIGludCBjb3VudCA9IGNwdWZyZXFfeGVuX2Nu
dDsNCj4gPiArDQo+ID4gKyAgICB3aGlsZSAoIGNvdW50LS0gKQ0KPiA+ICsgICAgew0KPiA+ICsg
ICAgICAgIGlmICggY3B1ZnJlcV94ZW5fb3B0c1tjb3VudF0gPT0gb3B0aW9uICkNCj4gPiArICAg
ICAgICAgICAgcmV0dXJuIHRydWU7DQo+ID4gKyAgICB9DQo+ID4gKw0KPiA+ICsgICAgcmV0dXJu
IGZhbHNlOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50IF9faW5pdCBoYW5kbGVfY3B1
ZnJlcV9jbWRsaW5lKGVudW0gY3B1ZnJlcV94ZW5fb3B0IG9wdGlvbikNCj4gPiArew0KPiA+ICsg
ICAgaW50IHJldCA9IDA7DQo+ID4gKw0KPiA+ICsgICAgaWYgKCBjcHVmcmVxX29wdHNfY29udGFp
bihvcHRpb24pICkNCj4gPiArICAgICAgICByZXR1cm4gMDsNCj4gPiArDQo+ID4gKyAgICBjcHVm
cmVxX2NvbnRyb2xsZXIgPSBGUkVRQ1RMX3hlbjsNCj4gPiArICAgIEFTU0VSVChjcHVmcmVxX3hl
bl9jbnQgPCBOUl9DUFVGUkVRX09QVFMpOw0KPg0KPiBUaGlzIHdvdWxkIGJldHRlciB1c2UgQVJS
QVlfU0laRSgpLCBhdCB3aGljaCBwb2ludCBOUl9DUFVGUkVRX09QVFMgY2FuIGdvDQo+IGF3YXkg
YWdhaW4uIFdoYXQncyB3b3JzZSwgdGhvdWdoLCBpcyB0aGF0IG9uIHJlbGVhc2UgYnVpbGRzIC4u
Lg0KPg0KDQpJIGZvdW5kIHRoYXQgd2UgYWxyZWFkeSBoYXZlIGFycmF5IGluZGV4IGNoZWNrIGlu
IHNldHVwX2NwdWZyZXFfb3B0aW9uKCksIGJlZm9yZSBjYWxsaW5nIGhhbmRsZV9jcHVmcmVxX2Nt
ZGxpbmUoKQ0KVGhlbiBtYXliZSB0aGVyZSBpcyBubyBuZWVkIHRvIGRvIGl0IGFnYWluIGhlcmUN
Cg0KPiA+ICsgICAgY3B1ZnJlcV94ZW5fb3B0c1tjcHVmcmVxX3hlbl9jbnQrK10gPSBvcHRpb247
DQo+DQo+IC4uLiB5b3UgdGhlbiBzdGlsbCBvdmVycnVuIHRoaXMgYXJyYXkgaWYgc29tZXRoaW5n
J3Mgd3JvbmcgaW4gdGhpcyByZWdhcmQuDQo+DQo+IEphbg0K


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 06:47:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 06:47:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068776.1432635 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uioym-0000VL-JQ; Mon, 04 Aug 2025 06:47:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068776.1432635; Mon, 04 Aug 2025 06:47:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uioym-0000VE-GW; Mon, 04 Aug 2025 06:47:28 +0000
Received: by outflank-mailman (input) for mailman id 1068776;
 Mon, 04 Aug 2025 06:47:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=owTc=2Q=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1uioyk-0000V8-FH
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 06:47:26 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on2061e.outbound.protection.outlook.com
 [2a01:111:f403:2414::61e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dfd9b19d-70fe-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 08:47:23 +0200 (CEST)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 IA1PR12MB8333.namprd12.prod.outlook.com (2603:10b6:208:3fe::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.18; Mon, 4 Aug
 2025 06:47:18 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d%7]) with mapi id 15.20.8989.018; Mon, 4 Aug 2025
 06:47: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>
X-Inumbo-ID: dfd9b19d-70fe-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OlrPvP2pe6iMfaJIdDIKqaUObVxf7U54xvz06cb88cqvKN6/PSIYFs1dl5DNIWC9BrF1Bil1/OTnxjjlAaSLvJrwQuAEHq6WErY5xm7jKV1En6329Qdb/ZNzBvxrz+htZdMCZNRdIHValtpvzHSnv4t09klVtuWaEM0pW5+lNrtNIJa0tZ1ZdQoOLp4mR//iUTPWQtP/UzAmgu0lQoXXHAPKFYsaTnr0HumSpqU8gzNkD30G5x6IitcZvBejB7clHaaWlUpa3z1cdq0qLkytFo7GbdXKaN+6WiUs+BfMcZEZtgE2atYmyHd4EBtPUNV8Rz2CFV0yJKCNVk6katT9UA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=2xq/ReXY7puCQUxFZtlcfELrpwip3t48nwXBkwAwcZI=;
 b=b/5bcFoBfJ9TEAsGXAcCdXuqP8zW+HOHLt7TMSaWU2Y991/zQrKQK1KgM9Slf1QtSksOTeBzPsu9SYTfbi1b2TyIT+o8QDv+BipM1xIgy4Qvej+E/2o7ssCUI+YSskXBmm2U02OiN9/gTXznlbVw/M/qls4EcKITbkTvvyFEPRHXtfX6rMB6cXQm42YLjDi71TH9LVJzh3DBP8nCUJWpOWfT558SHD1eQRemJLRQcSFytmYSFU960uCpO4zcwjATj9l156zK+SETvequavCeQeovoSDuxQd9FPit/3gxrF+UCzTE2TJ7BSzi3QkLjasovImF3NTSEaLcErf5lujXbw==
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=2xq/ReXY7puCQUxFZtlcfELrpwip3t48nwXBkwAwcZI=;
 b=OuHr+khCpO90hx4BngKpF2RH7SuPHH72j30F6FlaNAtO9MnYCooL5Ujwhfa5x5WpG3iyqossd35BZqessG4TJ4TRaBM6V8eycVYXx/sqxgZDMnhpOnSZp+ejOEoqJlBCEl2fx+rL1rWghLS0H4vjnoSGOdBzTPJ3ht54F9tbLVE=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Orzel,
 Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v6 10/19] xen/cpufreq: introduce new sub-hypercall to
 propagate CPPC data
Thread-Topic: [PATCH v6 10/19] xen/cpufreq: introduce new sub-hypercall to
 propagate CPPC data
Thread-Index: AQHb8hcitzgUOLdI9E2rorZhWa2gA7Q061mAgB1EZAA=
Date: Mon, 4 Aug 2025 06:47:17 +0000
Message-ID:
 <DM4PR12MB845142B33B4AE40453161BF1E123A@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20250711035106.2540522-1-Penny.Zheng@amd.com>
 <20250711035106.2540522-11-Penny.Zheng@amd.com>
 <916162aa-01fa-42a3-82c6-42a2c635f082@suse.com>
In-Reply-To: <916162aa-01fa-42a3-82c6-42a2c635f082@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-08-04T06:47:11.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|IA1PR12MB8333:EE_
x-ms-office365-filtering-correlation-id: 1a0a1966-2020-4a74-b289-08ddd322c131
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?TW9xeUpPOGx1WnBzY2dhMUdnbnRibHNTdjdHUXY0SnhrSEhhRmZmdDNIYXRq?=
 =?utf-8?B?UmdZRWRvV2VTS1M0RXhYbXE2WUF3dWRpSVNsZERaMkR6ZFV6WkFkaXJMTEU2?=
 =?utf-8?B?VFBzWVd6UGg4d1dmV3hSWDBzNUlpL1V6QVA4ZWtPSEtBcXpLc0o2eXI1M0ty?=
 =?utf-8?B?L1dFMWU3OUdBdW1VdlBIQTFDNU1mWTgrdHdFNEcxL0FBUmk2Q00vbGI2Vloy?=
 =?utf-8?B?R1RUazlkRHpHR3hNdHUwR1lpWHNHVGJCYkM0aEdMZzUvbmdYQzlaRTBBcExt?=
 =?utf-8?B?dlBITVp1Wi9YdVVweU9laDl1eFh4cnYweGpmT1UzT1RDSlFxUlllektzUDcy?=
 =?utf-8?B?V0NVcElyVzVwUlIxbEo4aVV5U0dqdXRqQ1hEdU92dzhPRkw5bzZsanMvQ3BP?=
 =?utf-8?B?Wkw1QXg5OVRKckdNL1JFM2JXT0ladFFGQlRqTTZJZFVrM1Qrd3MxMkVRR2F1?=
 =?utf-8?B?TjVjekJ5aTVxSkNCc1hWSTRUSmFNakhteTZJSG0yV2ZiMWovWU5ZNXVVeWhV?=
 =?utf-8?B?T2dTeS9sV2VXcjg2eHBhcmZEb3BUT09oVUM5c2o2dWF0T1FOZFYxbHBoT1dv?=
 =?utf-8?B?aEhGRGtZbU44dURIcFNhaEpwdE8vdzBySFRmSERxYnM4VzZIdzZWZVZ1Z3V3?=
 =?utf-8?B?TnlVUTIxWVQ0dUtHcE0xTFRjelI2RG5pa2x4NjlXZkRqS1VEbTR1TWZTSTlS?=
 =?utf-8?B?YVQ1bGNBRjI1eFlleHBtMENXUFE3aEQ5VXJTcmpFVEZ0SlJvQnIvdEkrNGdL?=
 =?utf-8?B?WmIrSVNPY0NWZ3BtVWlEZk9WVzQvTEVmQU9QOGJ5bDhtcHRzMVFHL0g3L0pv?=
 =?utf-8?B?STVHYk9tekhobjY1RWVyQzJrdjNLUTZPbE4wMEtXM1IwamM3eFc4UmNWQ3VI?=
 =?utf-8?B?c05sd0RHQ20zOXBFRDVkU2tsUW9qcVZWM1NFdEtkdXJNbGx6MXdsLzh4UkVT?=
 =?utf-8?B?WlV6T3RzNkhhQldSVWtTSkpkUlZEVW9vdHBsZzlyTGozZG5YRWV5aDdHVUhy?=
 =?utf-8?B?N3JuYjZBZndZb0tsWXVsT3B1YmNHZ1FTTFNaVnhZSFVDY1pzWlRtUlhES1ZC?=
 =?utf-8?B?OHlvNDUySzdUQlNiY2N6UnFWckRMMGFiUjJVWllFdXMvdXdZRkRHY2E0MUM4?=
 =?utf-8?B?MXU5ekRvMVZQQ0IzTkZSMitCOGtSY0doUitpUXV1R2YzVDF2dHBCakFabEtm?=
 =?utf-8?B?OFlRTDlFQzVvRDZPa0lhbTlCSW5hb1dkcmIvdlN6Y0RERTJrYTd2Y2J4RVJt?=
 =?utf-8?B?ZHFVSlFEREs1K2Nmd0VEOWdqbW9Gb2NyQzYvbGlFbnFNRm1EK3lWaVBmZkZD?=
 =?utf-8?B?V1ZIWUh2bjVvZ0hGQkRKTXk3UWwvUEVpN0c5VXBBM0NNZnpKRUJoZzZyN3pK?=
 =?utf-8?B?enRmQU8zU2FCQTdkOVZNbDJiSmxqVDZldFNtSEdiUnVCZjNzSis2bVc1YWUy?=
 =?utf-8?B?Z3Y2OGF1U0RuL1hWYmwvaDZ0WTVWcG9abmhWeTRXZGhSR0NSc2FBVkRMRXFC?=
 =?utf-8?B?cjU1UXd6WXpyQlhhRXFWVEJieEExNis3NTVEUlBUWFI4Q1M5bWZ3Z3RtblZH?=
 =?utf-8?B?Rm5NakJ4VTlWaGN0U096ZktITmNyeElnbG0xbGM3dG1IYXR6MStsTDExdkQ3?=
 =?utf-8?B?LzM1RC9jd1VmN0VVVTVvNE1BdTRwWGZEQmJ5NnNxSEc5RDVhY1hWMkVmSS9C?=
 =?utf-8?B?NGJSMERtMmxXYWJ4VS81R2VsQkNWU2ZZRUNJYVZzUTQ1ODNyNk9RenRZOTFW?=
 =?utf-8?B?WGorN3ptK3hIT3hVdHRkK1VtRENzb3BOcS9ldys1VE5vTHVOZTkzcGtqVVZZ?=
 =?utf-8?B?OUcxMFRoWk9WdHVUb1ZoVlZvZEp6Sm4xK0FWWE0yek91OXkvWDlGMTZYaG9p?=
 =?utf-8?B?OWxLc1VzY2g2VDVNWmNEd2NwZDBrd2NubUw3TUlsSjR5VjhxYzB4M2FKOEFm?=
 =?utf-8?B?bUNwaEw5RFRQdTJZeDI3blJYUmhQeXJnSHBrVzhlYlVIMG53SkVLc3hEdUpy?=
 =?utf-8?Q?SOV1GulNmbP8LHI+7OM6WSQbtW6etc=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?MEVXVkl5N1hlY0NmTUFSWEpNdEtjS0ZVdG9JY1Vmc0FNWW5hcE9HTGxyNXZz?=
 =?utf-8?B?RmNUelRabTE4NTdUdXBBRnNFWDJzdXdkejU5ZzMxMU9nMENZZ0pNZFpDcUJz?=
 =?utf-8?B?dkV5MXlHSHk2NTdoNGRuWWJ3a1l4RmI5Zm9MbktWN1FsZEhWdG1NcTBCUWs4?=
 =?utf-8?B?UkE3bDB6OUd5ak9JM0tySWUzNTkxTjBPbUtLK2hnU1VrVTV5ZHp2UW9nNmtD?=
 =?utf-8?B?eElGMVJFdTdEa1BUS0FSTGEwN3llN0xzTUZ2WGkvc0ZoRVVDamR5ai9YQllC?=
 =?utf-8?B?UkZiWitFMHJrZllhZmwzRy9aKzE5SG5aUzN6MG5aektOODVWKzhpMXZKMWhi?=
 =?utf-8?B?Z3F6a2dabnNFajJVcUdNQ0JOMGJRZVVUU0pReFgyK0orQTJFQTdEZktlZU9v?=
 =?utf-8?B?Z1RTRnFZT0NvWE9lMTZDeE9XS2t2ek5sNC9hb1JDdk1ubC9oVnBrMzBIelho?=
 =?utf-8?B?Zlp1dFYycHBtbTNsb1AxMnF6YVlhUVQzcUt6aEtFbjhjZC9ZaU56TGoxb1Js?=
 =?utf-8?B?YWJxTGtJYmpVQXhGb21XQ3dvVERIL0RIOG9UQUFWTzZBbE8waTE3aTN2Z2JX?=
 =?utf-8?B?cDRuMTNMOFRXYS82ZlZVUjMxWGUxUFh4U1hweWQ2ZnpRNWF2U25zNVMyZkkx?=
 =?utf-8?B?NmsrRWYyT3p4cGcyeGFoaWc3VUxnL2dTMmhRdmIydEl2V0ppc243SGoxZGhS?=
 =?utf-8?B?UEg2azhwSUF3YTJKTVF1K0tVZm5tS1pLSDRna0RvLysrVnlBTUdFVmxxWTNN?=
 =?utf-8?B?Nll0NE85QjZsR0JSZy8xbWwydnlqTUYycVBXR1phRkt4cjBuQ29OTDNJbmpm?=
 =?utf-8?B?RkVBOC9iaEFtT2tyd2VBZnpKMkk4QTVjdVdFQUtqWFRxRk5sQmhjaGs1RGRL?=
 =?utf-8?B?WnEvQVNXNmtRcys3L0g1ZjF1d3B3b3VUZ3ZRY29Gd1NBMmxPM3h5c0s0RW1x?=
 =?utf-8?B?NzlHVDB4SFU3SVpibFZISHVGWVU5azl2bDJyQVQrUTJaUEZHSjEwdkNScmE5?=
 =?utf-8?B?UWhmakttWTBtMWY0MUtyUFdxWjVuN25oZ2hhYzZNVkZNaVR0dk92ZFdsVytN?=
 =?utf-8?B?ems3VmpUb3VDOFEvcmtGRHRDNjNQYW5MeHBBUG0vV0VYNFVBM0hMYTBtLzk2?=
 =?utf-8?B?R0JnRTVYM1A2clp2Rmg5N0RYbThHYkJ4VXY3ZzVsNUZIaXlXcXVxNitRelRk?=
 =?utf-8?B?eDNwazhDRlY1OVB4ZXBKTjFnaDl3N3RNR2dqS0dXRUZKWEs2djZMcUdCVm1K?=
 =?utf-8?B?Q0ZGOWNZSXhqVW5xOVdUd3B2TnJJdENLeUd3T3I1T0hWUHpPaXphQTlNY1pa?=
 =?utf-8?B?amRNT0s2TjNndEp3dW00cmtwZnlMWUEyZE1QV0tYaWxNTmhSRkNVRFNqUUJr?=
 =?utf-8?B?MVJONUNjcU81c3JRUGthaUM3MHl6emMrNzJ2VU9jaXljUENaZ1JleWlGRmlm?=
 =?utf-8?B?L3pqbXJIMUhlMkRmTUdWbHpkb0tkbURqVnMyT1JEMmMwODAzdllnZ01pL084?=
 =?utf-8?B?aFRCNkZLdzZHTk1aV29xbFVmOW5VZW9qNzlMc0s3MWhOZkJPc3d2UjF1RGox?=
 =?utf-8?B?eEovdloxQUVFTUIzU1FPRmVVdWhmZy9vWjUwdWxXd01HL3ZJWUI1cGFXYlNM?=
 =?utf-8?B?K2srU21VMkhQUGRGa3RaOWhyVldBSmUxeVBNakFwV1RNSVpvLy9sMldJVnNY?=
 =?utf-8?B?emlKMGZYY0ZPWWdHdXkvVFZpaytObVFMd2cyNjdpT1lWRTdnakZxRU1jbVgv?=
 =?utf-8?B?MDFGMURWRFZhZURjRVBoSmt5VFVoYytKSWJJdkJwZEtnN1RrZmxieGdwUnlh?=
 =?utf-8?B?VmdIVnJjT0d5SEo5cS9pdjl3YmFyVmkyRkY5Qld1VSthUElOc29YTnozcVh2?=
 =?utf-8?B?R0k1SWV6YUR4WXJIdTNXei9NSm1zRkkreTRpc1k5U1JWTEhWMkYxQkFEV2NB?=
 =?utf-8?B?bldEOUVJREhRSDdYUDlLOWZMc2JlaXlYSS9uWUprMHkybFJWSVcyY0g3ZmRS?=
 =?utf-8?B?NXhZOGxzU0JlcWFPUTFsSlhHR0NVRFE5UDBxTmZselRJK0p6b2ZMZEZ1UlNT?=
 =?utf-8?B?QWtQN0tTUFhCb3p3V3Jqd2ZVSG9JY0luWHAxZ0ptcUthU2t2OFBHejhVaUNr?=
 =?utf-8?Q?Nwqg=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1a0a1966-2020-4a74-b289-08ddd322c131
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Aug 2025 06:47:17.9807
 (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: i64R5QgdWhYBt8sJIZrlkTuWN6s93QihoBlKY8slg/CH9RvVp2I2a1rIf11l2leaeWN20X8KMl3Z4UKJJnLgHw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB8333

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFdlZG5lc2RheSwgSnVseSAxNiwgMjAy
NSAxMTozOSBQTQ0KPiBUbzogUGVubnksIFpoZW5nIDxwZW5ueS56aGVuZ0BhbWQuY29tPg0KPiBD
YzogSHVhbmcsIFJheSA8UmF5Lkh1YW5nQGFtZC5jb20+OyBBbmRyZXcgQ29vcGVyDQo+IDxhbmRy
ZXcuY29vcGVyM0BjaXRyaXguY29tPjsgUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJp
eC5jb20+Ow0KPiBBbnRob255IFBFUkFSRCA8YW50aG9ueS5wZXJhcmRAdmF0ZXMudGVjaD47IE9y
emVsLCBNaWNoYWwNCj4gPE1pY2hhbC5PcnplbEBhbWQuY29tPjsgSnVsaWVuIEdyYWxsIDxqdWxp
ZW5AeGVuLm9yZz47IFN0ZWZhbm8gU3RhYmVsbGluaQ0KPiA8c3N0YWJlbGxpbmlAa2VybmVsLm9y
Zz47IHhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBTdWJqZWN0OiBSZTogW1BBVENI
IHY2IDEwLzE5XSB4ZW4vY3B1ZnJlcTogaW50cm9kdWNlIG5ldyBzdWItaHlwZXJjYWxsIHRvDQo+
IHByb3BhZ2F0ZSBDUFBDIGRhdGENCj4NCj4gT24gMTEuMDcuMjAyNSAwNTo1MCwgUGVubnkgWmhl
bmcgd3JvdGU6DQo+ID4gKyAgICAgICAgICAgICBjcHBjX2RhdGEtPmNwYy5ub21pbmFsX3BlcmYg
PiBjcHBjX2RhdGEtPmNwYy5oaWdoZXN0X3BlcmYgKQ0KPiA+ICsgICAgICAgICAgICAvKg0KPiA+
ICsgICAgICAgICAgICAgKiBSaWdodCBub3csIFhlbiBkb2Vzbid0IGFjdHVhbGx5IHVzZSBoaWdo
ZXN0X3BlcmYvbm9taW5hbF9wZXJmLw0KPiA+ICsgICAgICAgICAgICAgKiBsb3dlc3Rfbm9ubGlu
ZWFyX3BlcmYvbG93ZXN0X3BlcmYgdmFsdWVzIHJlYWQgZnJvbSBBQ1BJIF9DUEMNCj4gPiArICAg
ICAgICAgICAgICogdGFibGUuIFhlbiByZWFkcyBDUFBDIGNhcGFiaWxpdHkgTVNSIHRvIGdldCB0
aGVzZSBmb3VyIHZhbHVlcy4NCj4gPiArICAgICAgICAgICAgICogU28gd2FybmluZyBpcyBlbm91
Z2guDQo+ID4gKyAgICAgICAgICAgICAqLw0KPiA+ICsgICAgICAgICAgICBwcmludGtfb25jZShY
RU5MT0dfV0FSTklORw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAiQnJva2VuIENQUEMg
cGVyZiB2YWx1ZXM6IGxvd2VzdCgldSksIG5vbmxpbmVhcl9sb3dlc3QoJXUpLA0KPiBub21pbmFs
KCV1KSwgaGlnaGVzdCgldSlcbiIsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIGNwcGNf
ZGF0YS0+Y3BjLmxvd2VzdF9wZXJmLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBjcHBj
X2RhdGEtPmNwYy5sb3dlc3Rfbm9ubGluZWFyX3BlcmYsDQo+ID4gKyAgICAgICAgICAgICAgICAg
ICAgICAgIGNwcGNfZGF0YS0+Y3BjLm5vbWluYWxfcGVyZiwNCj4gPiArICAgICAgICAgICAgICAg
ICAgICAgICAgY3BwY19kYXRhLT5jcGMuaGlnaGVzdF9wZXJmKTsNCj4gPiArDQo+ID4gKyAgICAg
ICAgLyogbG93ZXN0X21oeiBhbmQgbm9taW5hbF9taHogYXJlIG9wdGlvbmFsIHZhbHVlICovDQo+
ID4gKyAgICAgICAgaWYgKCBjcHBjX2RhdGEtPmNwYy5sb3dlc3RfbWh6ID4gY3BwY19kYXRhLT5j
cGMubm9taW5hbF9taHogKQ0KPg0KPiBJZiB0aGV5J3JlIG9wdGlvbmFsLCB3aGF0IGlmIGxvd2Vz
dF9taHogaXMgcHJvdmlkZWQgYnV0IG5vbWluYWxfbWh6IGlzbid0Pw0KPiBXb3VsZG4ndCB0aGUg
d2FybmluZyBuZWVkbGVzc2x5IHRyaWdnZXIgaW4gdGhhdCBjYXNlPw0KPg0KDQpZZXMsIG9ubHkg
Ym90aCBhcmUgcHJvdmlkZWQsIHRoaXMgY2hlY2sgaXMgbWVhbmluZ2Z1bA0KKyAgICAgICAgaWYg
KCBjcHBjX2RhdGEtPmNwYy5ub21pbmFsX21oeiAmJg0KKyAgICAgICAgICAgICBjcHBjX2RhdGEt
PmNwYy5sb3dlc3RfbWh6ID4gY3BwY19kYXRhLT5jcGMubm9taW5hbF9taHogKQ0KDQo+ID4gLS0t
IGEveGVuL2luY2x1ZGUvcHVibGljL3BsYXRmb3JtLmgNCj4gPiArKysgYi94ZW4vaW5jbHVkZS9w
dWJsaWMvcGxhdGZvcm0uaA0KPiA+IEBAIC0zNjMsNiArMzYzLDcgQEAgREVGSU5FX1hFTl9HVUVT
VF9IQU5ETEUoeGVucGZfZ2V0aWRsZXRpbWVfdCk7DQo+ID4gICNkZWZpbmUgWEVOX1BNX1BYICAg
MQ0KPiA+ICAjZGVmaW5lIFhFTl9QTV9UWCAgIDINCj4gPiAgI2RlZmluZSBYRU5fUE1fUERDICAz
DQo+ID4gKyNkZWZpbmUgWEVOX1BNX0NQUEMgNA0KPiA+DQo+ID4gIC8qIFB4IHN1YiBpbmZvIHR5
cGUgKi8NCj4gPiAgI2RlZmluZSBYRU5fUFhfUENUICAgMQ0KPiA+IEBAIC0zNzAsNiArMzcxLDEw
IEBAIERFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbnBmX2dldGlkbGV0aW1lX3QpOw0KPiA+ICAj
ZGVmaW5lIFhFTl9QWF9QUEMgICA0DQo+ID4gICNkZWZpbmUgWEVOX1BYX1BTRCAgIDgNCj4gPg0K
PiA+ICsvKiBDUFBDIHN1YiBpbmZvIHR5cGUgKi8NCj4gPiArI2RlZmluZSBYRU5fQ1BQQ19QU0Qg
ICAxDQo+ID4gKyNkZWZpbmUgWEVOX0NQUENfQ1BDICAgMg0KPg0KPiBBcyBwZXIgdGhpcywgLi4u
DQo+DQo+ID4gQEAgLTQ1Nyw2ICs0NjIsMjYgQEAgc3RydWN0IHhlbl9wcm9jZXNzb3JfcGVyZm9y
bWFuY2UgeyAgdHlwZWRlZg0KPiA+IHN0cnVjdCB4ZW5fcHJvY2Vzc29yX3BlcmZvcm1hbmNlIHhl
bl9wcm9jZXNzb3JfcGVyZm9ybWFuY2VfdDsNCj4gPiBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4
ZW5fcHJvY2Vzc29yX3BlcmZvcm1hbmNlX3QpOw0KPiA+DQo+ID4gK3N0cnVjdCB4ZW5fcHJvY2Vz
c29yX2NwcGMgew0KPiA+ICsgICAgdWludDhfdCBmbGFnczsgLyogSU46IFhFTl9DUFBDX3h4eCAq
Lw0KPg0KPiAuLi4gaXQncyBhIHR5cGUgdGhhdCdzIGxpdmluZyBoZXJlLCBub3QgYSBjb2xsZWN0
aW9uIG9mIGZsYWdzLiBBbnkgcmVhc29uIHRoZSBmaWVsZCBpc24ndA0KPiBuYW1lZCAidHlwZSI/
DQo+DQoNCkl0IGlzIGEgY29sbGVjdGlvbiBvZiBmbGFncy4gT25seSB3aGVuIGJvdGggWEVOX0NQ
UENfUFNEIGFuZCBYRU5fQ1BQQ19DUEMgYXJlIHNldCwgd2UgY291bGQgcnVuIGNwdWZyZXFfY3B1
X2luaXQoKSB0byBpbml0aWFsaXplIGNwdWZyZXEgY29yZS4NCg0KPiA+ICsgICAgdWludDhfdCBw
YWRbM107DQo+ID4gKyAgICAvKg0KPiA+ICsgICAgICogSU46IFN1YnNldCBfQ1BDIGZpZWxkcyB1
c2VmdWwgZm9yIENQUEMtY29tcGF0aWJsZSBjcHVmcmVxDQo+ID4gKyAgICAgKiBkcml2ZXIncyBp
bml0aWFsaXphdGlvbg0KPiA+ICsgICAgICovDQo+ID4gKyAgICBzdHJ1Y3Qgew0KPiA+ICsgICAg
ICAgIHVpbnQzMl90IGhpZ2hlc3RfcGVyZjsNCj4gPiArICAgICAgICB1aW50MzJfdCBub21pbmFs
X3BlcmY7DQo+ID4gKyAgICAgICAgdWludDMyX3QgbG93ZXN0X25vbmxpbmVhcl9wZXJmOw0KPiA+
ICsgICAgICAgIHVpbnQzMl90IGxvd2VzdF9wZXJmOw0KPiA+ICsgICAgICAgIHVpbnQzMl90IGxv
d2VzdF9taHo7DQo+ID4gKyAgICAgICAgdWludDMyX3Qgbm9taW5hbF9taHo7DQo+ID4gKyAgICB9
IGNwYzsNCj4NCj4gV2hhdCwgYWdhaW4sIHdhcyB0aGUgcmVhc29uIHRvIHdyYXAgdGhlc2UgaW50
byBhIHN1Yi1zdHJ1Y3Q/DQoNCkkgd2FudCB0byBtYWtlIHRoZXNlIGZpZWxkcyBkaWZmZXJlbnRp
YXRlZCBmcm9tIHRoZSBvdGhlciB0d28gKHNoYXJlZF90eXBlIGFuZCBkb21haW5faW5mbyksIGFz
IHN1Yi1zdHJ1Y3QgY3BjIGNvbnRhaW5zIF9DUEMgZmllbGQgaW5mbywgYW5kIHRoZSBvdGhlciB0
d28gY29udGFpbnMgX1BTRCBpbmZvDQoNCj4NCj4gSmFuDQo=


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 07:10:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 07:10:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068789.1432646 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uipLD-0004Ln-Fv; Mon, 04 Aug 2025 07:10:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068789.1432646; Mon, 04 Aug 2025 07:10: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 1uipLD-0004Lg-DE; Mon, 04 Aug 2025 07:10:39 +0000
Received: by outflank-mailman (input) for mailman id 1068789;
 Mon, 04 Aug 2025 07:10:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=c2vN=2Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uipLC-0004La-G7
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 07:10:38 +0000
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com
 [2a00:1450:4864:20::636])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1c8b373e-7102-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 09:10:33 +0200 (CEST)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-af949891d3aso220746266b.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 00:10: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
 a640c23a62f3a-af91a0761f2sm689951866b.11.2025.08.04.00.10.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Aug 2025 00:10: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>
X-Inumbo-ID: 1c8b373e-7102-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754291433; x=1754896233; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=kAbg2fpt8q7gSdAtEulXxegtVqA4Vtuy09atbtg1+zQ=;
        b=NgdwrTC3rI7K0vFhvEo+2PqKAShLWNrC9Ouktyp8pfgccv17pTRhhWtCNrXweg0VRj
         hYGbDN5kZEf05984wG0591PeclcFncouV6e4r6+6njB49LETy62WPEBGmgXrwYSeo1/s
         SbyK9thXDmsFtW2nN9bN8lX/vfb2LnyvG/CdLyWoGNicO03DjtoNLpB+hwneWjRjQMZG
         e4gwFWSiKkWZh2lVYYEfMvcSOc3kHrnqXQzlHUyDoHg4Q7TBqbS3hAYuiSPhrQkMNjEE
         2SfzhAwnXpxaeA2BsiyiJnnfqdramU5C+Ifq0GQV/lOrSNvlPC2nrYSW/alTRKj2yTTr
         oL7g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754291433; x=1754896233;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kAbg2fpt8q7gSdAtEulXxegtVqA4Vtuy09atbtg1+zQ=;
        b=EjKnN7Vo0ai6V/CGIgrGw/IHMB19DnErhJRsgkZzoQA2NDSmWLXYiINrW/TlNWPGja
         4OG6qEPbsxL0b48JiDABSvKGeIyt24tAM95ltYOZPZ0S+lqSz9UFSfF+cy8NOFwA76Is
         tLi2Aa/CD9LdHnWMgirDlBftNFicycFCfBUn5uzHg9n9OBdyASeukGi3W0Rbja5h3WUM
         RvNZgox6GecD2+WouYEofNMHdZ95hlNpN3BEbz3UtZUSqgbCeBo9VURYf/nUAofdJYh0
         PKbq0D1MFOXyZPGJTPHqGcclnPobUR4z8Z74gg5OPMk5Cdl6ait0sZ/SwpGXZCklxDnC
         3zLw==
X-Gm-Message-State: AOJu0YzL0rcZ0LIgfdNvg6W+54hKP/U2s1s+xq21Mc+2F+QzDJ+T2/0S
	yIFet9MTXIrJ9FchL3ByvMMw842lYEuoDAlUvQLc9FG7cSCrFOE2/30NiDJKLsCsig==
X-Gm-Gg: ASbGncsy1jMNboKD/we3g1nq9mAMc9Gxf0m9exSMTvkkhrVXdDCRHTF3lfHI1jgOnGz
	Xk4ywLFGWrkg/fC0YwKqFtrXTpECzn1ekkQ/1FShOM703tjyAQgsyRL3NDwuQmYNyOaarQixZux
	D9dk7qWCQ2A/PryW9PsuCaqqOPt56y/wD3kR+6rRp+Kf1wWIrubneYfm9rpcFrpjho7dHW+dfC+
	gCwxQxk53AD1ktzNozTaaFLo4aeGGv6wWu/LNwUOjnNfv2S3GNSa8L7nGJ1DH2JclK9e5Bm3YwQ
	CoykbTyFOPb4FaVmNEdXiLDL/M2J4fSNC76P6WurvJRBiUjOea8gUPCAKTDM5r31twHLFom7DmB
	sOMVYEIs+hHBkR/lu6hmuR6RJ4xG2IQpQWbViok1JU57EicOL9K+AW4dDDcDuYNIGsRh/CH7vKD
	JUCOLKD/g=
X-Google-Smtp-Source: AGHT+IF/gdQE7cmEfCcBw27sV0Xk1huFbm1Put0SBok+RCDsXA1ILi+LOetcEmIxrTB55zz/Ij0QGg==
X-Received: by 2002:a17:907:d86:b0:ae0:c976:cc84 with SMTP id a640c23a62f3a-af9400a94a6mr827921666b.24.1754291432690;
        Mon, 04 Aug 2025 00:10:32 -0700 (PDT)
Message-ID: <f0201ab2-db01-440a-98e9-acd3a29e91d3@suse.com>
Date: Mon, 4 Aug 2025 09:10:34 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] console: make printk_ratelimit_{burst,ms} const
To: dmkhn@proton.me
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <5fcd1c68-6c18-4a1d-8a1d-f056bdb6cde9@suse.com>
 <aI0OWwWkr0wg6FKw@kraken>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aI0OWwWkr0wg6FKw@kraken>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.08.2025 20:58, dmkhn@proton.me wrote:
> On Fri, Aug 01, 2025 at 09:30:34AM +0200, Jan Beulich wrote:
>> Them not being altered by any means, their __read_mostly attribute is
>> actually counter-productive: It causes the compiler to instantiate the
>> variables, when already with just the attributes dropped the compiler
>> can constant-propagate the values into the sole use site. Make the
>> situation yet more explicit by adding const.
>>
>> Also switch the variables away from being plain int, and have the
>> parameters of __printk_ratelimit() follow suit. While there also
>> similarly adjust the type of "missed" and "lost", and - while touching
>> the adjacent line - increase lost_str[] to accommodate any unsigned
>> 32-bit number.
>>
>> Fixes: a8b1845a7845 ("Miscellaneous data placement adjustments")
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> In principle {__,}printk_ratelimit() may also want to have their return
>> type changed to bool, but I think doing so would go too far here: This
>> would have knock-on effects elsewhere, and it would want considering to
>> actually flip polarity.
>>
>> Despite the Fixes: tag I wouldn't consider this for backport.
>>
>> --- a/xen/drivers/char/console.c
>> +++ b/xen/drivers/char/console.c
>> @@ -1268,12 +1268,12 @@ void console_end_sync(void)
>>   * This enforces a rate limit: not more than one kernel message
>>   * every printk_ratelimit_ms (millisecs).
>>   */
>> -int __printk_ratelimit(int ratelimit_ms, int ratelimit_burst)
>> +int __printk_ratelimit(unsigned int ratelimit_ms, unsigned int ratelimit_burst)
>>  {
>>      static DEFINE_SPINLOCK(ratelimit_lock);
>>      static unsigned long toks = 10 * 5 * 1000;
>>      static unsigned long last_msg;
>> -    static int missed;
>> +    static unsigned int missed;
>>      unsigned long flags;
>>      unsigned long long now = NOW(); /* ns */
>>      unsigned long ms;
>> @@ -1288,14 +1288,16 @@ int __printk_ratelimit(int ratelimit_ms,
>>          toks = ratelimit_burst * ratelimit_ms;
>>      if ( toks >= ratelimit_ms )
>>      {
>> -        int lost = missed;
>> +        unsigned int lost = missed;
>> +
>>          missed = 0;
>>          toks -= ratelimit_ms;
>>          spin_unlock(&ratelimit_lock);
>>          if ( lost )
>>          {
>> -            char lost_str[8];
>> -            snprintf(lost_str, sizeof(lost_str), "%d", lost);
>> +            char lost_str[10];
>> +
>> +            snprintf(lost_str, sizeof(lost_str), "%u", lost);
> 
> Since this code is touched, I would also simplify the entire `if ( lost )`
> block (I have it done in another experiment):
>  
>             char lost_str[64];
>             size_t lost_len = snprintf(lost_str, sizeof(lost_str),
>                                        "printk: %d messages suppressed.\n",
>                                        lost_str);
> 
>             /* console_lock may already be acquired by printk(). */
>             rspin_lock(&console_lock);
>             printk_start_of_line(CONSOLE_PREFIX, cflags);
>             __putstr(lost_str, lost_len);
>             ...
> 
> What do you think?

Maybe, but definitely not right in this patch.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 07:13:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 07:13:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068798.1432656 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uipNd-0004vH-Sy; Mon, 04 Aug 2025 07:13:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068798.1432656; Mon, 04 Aug 2025 07:13: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 1uipNd-0004vA-PK; Mon, 04 Aug 2025 07:13:09 +0000
Received: by outflank-mailman (input) for mailman id 1068798;
 Mon, 04 Aug 2025 07:13:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=c2vN=2Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uipNc-0004v4-Iz
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 07:13:08 +0000
Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com
 [2a00:1450:4864:20::52c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 77ff8387-7102-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 09:13:06 +0200 (CEST)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-61589705b08so8848317a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 00:13: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
 a640c23a62f3a-af91a23bedcsm689825966b.120.2025.08.04.00.13.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Aug 2025 00:13: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>
X-Inumbo-ID: 77ff8387-7102-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754291586; x=1754896386; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=F9sL4KOg9CuE7xg6Q3R/auyFJ3h+arscPSkuPTb1/UQ=;
        b=EeL3i2VL/Nrw1b8pVzaDz1NsANxQC+bLRRyRBe98ueENMqpNOLv4WW1JeIq0hl7YJz
         CyyMnrNkLjJm4ryU9yGMwdnqNAN1A4isjrswUsWegZxFGhXpUL9Cxr//2W5qJfxOsPVG
         SyX1YRKQGTIQKty4UxBYzUps80zpMnxdeKypDOOq/LOX/lsviJuVy8vFwgUMxqhrOHL5
         bozOf8HmVGYAhKHVWfAwu4zciBd34NR0cr7kfGNGhCWBGgh1Gmhjz3v7Tu1B50tEBAMW
         IX5hWo0uUy/KUqGZ7+avnqShd5B41A4QhljEPY+8aCsQ3i4QiDi9I51QKrQzs8lzk4BR
         oCrA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754291586; x=1754896386;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=F9sL4KOg9CuE7xg6Q3R/auyFJ3h+arscPSkuPTb1/UQ=;
        b=LLGyUCapsi2A7oGhr6akS3j2lzlf8wVaQd76jPPQWxBj9j+o2pLLQizBPPieiBxvEQ
         YZajqmpDLjTWb+qG43HpQbYJDRwcD3AsR3ovrrwQ41pocVKVM6yislOc2xAhTvtBcA/f
         4Fr1mqwbsVXzocTuYC0JhrywrTLIdS6ViKTiJwz9rDxglMExSp4Ooe4z6g2ISHt2wf5B
         aiDoOjUuf1TDjoSdmXO08HUregHve0EumuHiHVVY+9hb9TPCrM8paFZRa6OIp6+7S4vs
         b9c/4Zj6HrqR2dTX2Q4LmTUebEELGwcLcVpNhLz0DTmvWOj0sei+ltFz7VpTSp0zhypA
         wliA==
X-Forwarded-Encrypted: i=1; AJvYcCXFiAjkHyvgIuxY86eq3QKNGWVuclJtOtm0azjJDiI/fsjLqQfMk6SIhU2W7NHDcjzLtj50A9y0KnU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxCTDpj0uElG7QxZ5OfIHwPlgLxOIc7XU002ifCppdVxSdlh+h6
	maXf74ISXSoqcVsSkDd6uu1iyi1KeK5cs5sK3oUQgdnNVlFe8Vdm1V3lXHxL4LDRGA==
X-Gm-Gg: ASbGnctkShuUC78gxeJNKChIvAFh+R0uGOQtLuP6qr5sOQT9x1nfRrBXqbJqoNEo+pE
	BJxK4C12nVuAND+rkvEW+CaRWbN+iFv69IKfJkUu/ho9THa+qsPNr/JcqrRCsWHCDQjHEcylxxB
	iIl4/7VNxr2iI/hPLVq/aSeloK6V9oeH7wCrstYSnoRxXjercEGFspDWdTbXaPd5V8L7G0Kr/Pk
	2GJEhw2WYobDdGD35wYPYS7eC1rcjM2uB75GiNPG77XzUjGXPey8dYhUWbOUvo7qtDGMGBX8kf/
	49TzuGF5UoAV7Sp7spm/+yNKw6avTZ6r4HBiZ1+4kCGNSzO+rjwLBGoadCHa6rKCuO6pcfzVKAb
	GJ4H2luvzNc9wcbXV+dNCMHaefT9dXvoBpcWKI8zl9j8bJ0/BzVAd8Qi4D1FOxdx7/qBsTFZ5A5
	4gauceawU=
X-Google-Smtp-Source: AGHT+IGTXm91faOqQN9nSQajgLptXqREmpR8L6HaCfZjdMu771gvrgH1+6DmODtTlGIsr6uoSuVk3w==
X-Received: by 2002:a17:907:1c0a:b0:ae0:d38e:5852 with SMTP id a640c23a62f3a-af94016a045mr810434566b.39.1754291586089;
        Mon, 04 Aug 2025 00:13:06 -0700 (PDT)
Message-ID: <61efc085-a787-4ca9-82e4-032408532ba6@suse.com>
Date: Mon, 4 Aug 2025 09:13:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 12/16] xen/domain: introduce domain-emu.h
To: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org,
 michal.orzel@amd.com, oleksii.kurochko@gmail.com, roger.pau@citrix.com,
 sstabellini@kernel.org, dmukhin@ford.com, xen-devel@lists.xenproject.org
References: <20250624035443.344099-1-dmukhin@ford.com>
 <20250624035443.344099-13-dmukhin@ford.com>
 <33f98fe5-9b29-43e4-a87d-19eafb30f281@suse.com> <aIvYSn2ZwyWTwIzm@kraken>
 <65e288b7-d8fe-409e-a287-69b4dc29f0c2@suse.com> <aI0V0v0yltODw5bs@kraken>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aI0V0v0yltODw5bs@kraken>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.08.2025 21:30, dmkhn@proton.me wrote:
> On Fri, Aug 01, 2025 at 08:02:56AM +0200, Jan Beulich wrote:
>> On 31.07.2025 22:55, dmkhn@proton.me wrote:
>>> On Wed, Jul 09, 2025 at 04:57:44PM +0200, Jan Beulich wrote:
>>>> On 24.06.2025 05:56, dmkhn@proton.me wrote:
>>>>> @@ -458,16 +459,16 @@ struct arch_domain
>>>>>  } __cacheline_aligned;
>>>>>
>>>>>  #ifdef CONFIG_HVM
>>>>> -#define X86_EMU_LAPIC    XEN_X86_EMU_LAPIC
>>>>> -#define X86_EMU_HPET     XEN_X86_EMU_HPET
>>>>> -#define X86_EMU_PM       XEN_X86_EMU_PM
>>>>> -#define X86_EMU_RTC      XEN_X86_EMU_RTC
>>>>> -#define X86_EMU_IOAPIC   XEN_X86_EMU_IOAPIC
>>>>> -#define X86_EMU_PIC      XEN_X86_EMU_PIC
>>>>> -#define X86_EMU_VGA      XEN_X86_EMU_VGA
>>>>> -#define X86_EMU_IOMMU    XEN_X86_EMU_IOMMU
>>>>> -#define X86_EMU_USE_PIRQ XEN_X86_EMU_USE_PIRQ
>>>>> -#define X86_EMU_VPCI     XEN_X86_EMU_VPCI
>>>>
>>>> The old code deliberately used values from the public interface.
>>>
>>> In next version I am building, I moved all of XEN_X86_EMU_XXX definitions as
>>> is to a new public header under include/public/xen-emu.h:
>>>
>>>   https://gitlab.com/xen-project/people/dmukhin/xen/-/commit/9b0bc5ffa5710114df8523ae2aa7680b7c6f0942
>>>
>>> That looks less invasive.
>>>
>>> Will that work?
>>>
>>> There should be a common header with emulation flags somewhere, since
>>> there will be SBSA and hwdom vUART definitions there.
>>
>> Yet will there be a strict need for any constants to be identical (i.e.
>> not only have the same name, but also the same value) across architectures?
> 
> I don't think there's strict need for identical values across achitectures.

That's what I was expecting.

> But some of the constants _may_ be reused for non-x86 arches, like VPCI bit
> and, perhaps, IOMMU, PIRQ and future NS16550 (after adding MMIO).

Right, but as you say - they want to use the same name, but they could easily
have a different value there. I hope you understand that what I'm questioning
is the introduction of a single header covering all architectures.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 07:17:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 07:17:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068810.1432666 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uipRo-0005VL-Ct; Mon, 04 Aug 2025 07:17:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068810.1432666; Mon, 04 Aug 2025 07:17: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 1uipRo-0005VE-9q; Mon, 04 Aug 2025 07:17:28 +0000
Received: by outflank-mailman (input) for mailman id 1068810;
 Mon, 04 Aug 2025 07:17:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=c2vN=2Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uipRm-0005V8-GX
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 07:17:26 +0000
Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com
 [2a00:1450:4864:20::52d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 11b64a24-7103-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 09:17:24 +0200 (CEST)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-61530559887so5162760a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 00:17: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
 4fb4d7f45d1cf-615a8fe7a15sm6234192a12.40.2025.08.04.00.17.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Aug 2025 00:17: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>
X-Inumbo-ID: 11b64a24-7103-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754291844; x=1754896644; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=d8Zzm6iRwAjQSFzHFCHsjlipTKMqH5iUjf4H5vvmiS4=;
        b=N2DqGmT0iMJqU9tK0ZqicbZ1I+jVl44l1CLacw+Y5oxxRcB/PM2bXZ2MpLmYb9+Pwd
         lUH7NIxKRIAbQy06a+aETxDz6N82Y2/1gBB1PR5xkWUpSbRlYtdbKtzf/d6cDgdggctw
         yr0LjVLkkkgsVdY8UxyNz/UZdjz3rJEuux1hXkc6tUaDEq9w+DqZP0wj2HT73fHrHGrf
         rd8xgDvGh0pSREjr2ptJv03BXpmxKJzMKDDGP6z/bjXV8v+PWgm/nhCuzYA01TURkoJz
         1rTQ8MQoJMJSv6QLvvIJW0YJI0l2daOrj/ZN6gK5Tk8dVWHfZQnuFHYwWorG0PgRVj/6
         5Bgw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754291844; x=1754896644;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=d8Zzm6iRwAjQSFzHFCHsjlipTKMqH5iUjf4H5vvmiS4=;
        b=Q7WGl9NZgn7F/8lycFXhzEO47NF9od/gfMHyAXglQ/wtdZ1Y6LeGKP+lW93IkKVkRx
         3SnMBY1kNDi/r7UywvpCY30gkJXAwPxmTW1nNJvt6ZGrA/6YzNeoxR+GSpCd+FOrOGE3
         PEjJd5j/ZAxeLeF2i8FbWRqJb0bof5jQyi2YQCAVYqmo6cjHf/gDZ23Qm4NFL6phGKHv
         TJmlJKwGECriSJLdIy6lYmDaj0xG/xs40vhJsctyfOYsibk8CJZssKF05B/E9tTROK8q
         Wjt7Dg0fitqjCpFmS0nhwoy2/RkTyW8xhOcqInyegPYO7G0h6H5jWDC02DPXsHJ1Tn+e
         HC4w==
X-Forwarded-Encrypted: i=1; AJvYcCXWEh3pBNl3bcBvSwdzZFle4+Wz0IMGsnDPFb9lO9mikS7nqKPWNbB7Nyv36s7OPCeEZy64B2sJvMY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxSqu1N6cS/EwnqB/ognrvmSy6dT1zbS2B/pmDvwxs5E/hCNh2c
	4KtHoDHBFYl9mIuKErP2ZxUxIrH/loJXsYtQF+NA9fZk+pcByk/EDBGRRJb7VOVobA==
X-Gm-Gg: ASbGncsBnDkyRYyxNAFvkzXmdlawLQZ+EMWqQvBG7TTDwgOL0LIRkSFtsekZqPAdHLr
	hZ1F3H2V8x2sKfszmElPjz0xdu93IC2yxHdJe3kJQvWQwqAeymkWZyVaBJpHmNIZz1OugV4O2fd
	pfwcQjJA4LBKpmYY+ExzWXCYD1XGvCP6frFSM6YT4Zm1bFdD7VWCx6uuOCa5L4mDk2E0x/ono0I
	8YmLG1ApJdVQPGklHRUAsgH2OYxxpxNO389J8lkzZUK+4EsuVL6lLiSvsoOzK24Fyz2+ZofYxXs
	y6MDELWsPiyDO5peKGdhrpEXEIHb/Uwrim0IaDcaoOiRGKeeH1qEDmNad1pFiEeidl5icZCbnk0
	qnrO0bqOhcsg+QnXoaNHjebYse9ZTzId1K5i5YLS1RJjRM30/CEzC/JOgWQn9XyXz39bFF+kNn+
	tVhZTgMOo=
X-Google-Smtp-Source: AGHT+IGSL4cQ0r4D3kSCGd44cgH89CnGRAY2hKFh9VG5sjWgrZDjENQDywn0UuFrW4aIlt8Yiv9p4A==
X-Received: by 2002:a05:6402:3593:b0:60e:404:a931 with SMTP id 4fb4d7f45d1cf-615e6f015fcmr7200583a12.15.1754291844020;
        Mon, 04 Aug 2025 00:17:24 -0700 (PDT)
Message-ID: <9688eba1-d6f3-4d7b-8d4a-21f28ab152b1@suse.com>
Date: Mon, 4 Aug 2025 09:17:26 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 05/19] xen/cpufreq: refactor cmdline "cpufreq=xxx"
To: "Penny, Zheng" <penny.zheng@amd.com>
Cc: "Huang, Ray" <Ray.Huang@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20250711035106.2540522-1-Penny.Zheng@amd.com>
 <20250711035106.2540522-6-Penny.Zheng@amd.com>
 <e9bc1036-2ab4-4e9a-9d43-8e11d4f67776@suse.com>
 <DM4PR12MB8451C4DA5340306CAB9E6BE5E123A@DM4PR12MB8451.namprd12.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: <DM4PR12MB8451C4DA5340306CAB9E6BE5E123A@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04.08.2025 08:04, Penny, Zheng wrote:
>> -----Original Message-----
>> From: Jan Beulich <jbeulich@suse.com>
>> Sent: Wednesday, July 16, 2025 11:01 PM
>>
>> On 11.07.2025 05:50, Penny Zheng wrote:
>>> --- a/xen/drivers/cpufreq/cpufreq.c
>>> +++ b/xen/drivers/cpufreq/cpufreq.c
>>> @@ -64,12 +64,53 @@ LIST_HEAD_READ_MOSTLY(cpufreq_governor_list);
>>>  /* set xen as default cpufreq */
>>>  enum cpufreq_controller cpufreq_controller = FREQCTL_xen;
>>>
>>> -enum cpufreq_xen_opt __initdata cpufreq_xen_opts[2] = { CPUFREQ_xen,
>>> -                                                        CPUFREQ_none };
>>> +enum cpufreq_xen_opt __initdata cpufreq_xen_opts[NR_CPUFREQ_OPTS] = {
>>> +    CPUFREQ_xen,
>>> +    CPUFREQ_none
>>> +};
>>>  unsigned int __initdata cpufreq_xen_cnt = 1;
>>
>> Given this, isn't the array index 1 initializer quite pointless above? Or else, if you
>> really mean to explicitly fill all slots with CPUFREQ_none (despite that deliberately
>> having numeric value 0), why not
>> "[1 ... NR_CPUFREQ_OPTS - 1] = CPUFREQ_none" (or using ARRAY_SIZE(), as
>> per below)?
>>
>>>  static int __init cpufreq_cmdline_parse(const char *s, const char
>>> *e);
>>>
>>> +static bool __init cpufreq_opts_contain(enum cpufreq_xen_opt option)
>>> +{
>>> +    unsigned int count = cpufreq_xen_cnt;
>>> +
>>> +    while ( count-- )
>>> +    {
>>> +        if ( cpufreq_xen_opts[count] == option )
>>> +            return true;
>>> +    }
>>> +
>>> +    return false;
>>> +}
>>> +
>>> +static int __init handle_cpufreq_cmdline(enum cpufreq_xen_opt option)
>>> +{
>>> +    int ret = 0;
>>> +
>>> +    if ( cpufreq_opts_contain(option) )
>>> +        return 0;
>>> +
>>> +    cpufreq_controller = FREQCTL_xen;
>>> +    ASSERT(cpufreq_xen_cnt < NR_CPUFREQ_OPTS);
>>
>> This would better use ARRAY_SIZE(), at which point NR_CPUFREQ_OPTS can go
>> away again. What's worse, though, is that on release builds ...
> 
> I found that we already have array index check in setup_cpufreq_option(), before calling handle_cpufreq_cmdline()
> Then maybe there is no need to do it again here

Well, you will still need to deal with the release build aspect, as per your
earlier reply. At which point you can easily place an ASSERT_UNREACHABLE()
there as well.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 07:19:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 07:19:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068819.1432676 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uipU5-00063r-P2; Mon, 04 Aug 2025 07:19:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068819.1432676; Mon, 04 Aug 2025 07:19: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 1uipU5-00063k-LW; Mon, 04 Aug 2025 07:19:49 +0000
Received: by outflank-mailman (input) for mailman id 1068819;
 Mon, 04 Aug 2025 07:19:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=c2vN=2Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uipU4-00063X-1i
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 07:19:48 +0000
Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com
 [2a00:1450:4864:20::52f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 65a81659-7103-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 09:19:45 +0200 (CEST)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-615aa7de35bso8590675a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 00:19: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
 a640c23a62f3a-af91a0763d8sm697967866b.2.2025.08.04.00.19.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Aug 2025 00:19: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>
X-Inumbo-ID: 65a81659-7103-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754291985; x=1754896785; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=thBABlMUztZs/ScSwkyQTKbmuVqqDurKU4XGNU3O74o=;
        b=NyhDH5NBI9SNxfFg8wh2mSyjNu67mAJEk4GDvd9lg+TZ7r3zue9+e+9LYC5/OzoXUq
         iKm/Yfu9D1HwWcJnSIvIrhqmYpB5A4XGkLx+HmNDx7FkHBWGNulOMOQbzxRmdBmAoSBA
         Kw81Udkgldbhkoh4Pcu4Cp7FU6F9DL4TucOysWpZBBj38ukmxSgzPjQwV2Fepw9OozxD
         nuRF/T94+VkzDN65ZF0bY7nAGiqiRhpJFRw11W+1S+uQDrsqpmQWXYDgZtbQxEg0UFDi
         6Bq8mW2iOs0qk/95f/3z1hrOkjIT0t9DAQ+uybEo1RYiCOc+lAVIxnarrMS62Oug2YJa
         51vg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754291985; x=1754896785;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=thBABlMUztZs/ScSwkyQTKbmuVqqDurKU4XGNU3O74o=;
        b=aOOxQimBmyrKrfeiJyT+5kUA3vFAYGikfCaqqbrNK9LAjRsAQH9fljGzxU8+Y4EsX2
         n4hwlv2h298murAhmpQNQIylHqP+ZvjtJsw/kiOwFs1YCHZ3BkAXusPYHlR2VvInvG4c
         QBO1n5ZPsU2nQDRejSZbYER9b+0KY8RY+EM6DPC9hqp6oRNVjoiBMI6st3tfiW2AKGQY
         rGnED6dmLdFHwm8zc7a8fwTZht2JiSRh9QXA0QLE6NdabePFREa+snCg/SDQAvOLZGPJ
         WXpgkHm2nYOGFDUDVTlNe4PMRYR7fX/iWQxcZbjcqtcMuxCa4RIpv+SAB96VZlsfrSOv
         0eaA==
X-Forwarded-Encrypted: i=1; AJvYcCVYCtr+B+ye8lYelgN+vZ40FZbTuQpbHk9njKY7nXiYns2PSmoKPHAbFIgdnrObvhEJrPT/zVO1eYA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx1zornaZgP5n0sCQD1jPZxHOnw/+2i3HTYrLQrb13ffN3LFT2V
	5b1g4uEjkU+mcYcjWWVeCXqyATk2urEPcjCpi0wrp5YSBpLcgBuNeLt5zMtUtiO/oQ==
X-Gm-Gg: ASbGncu6Px+vrCNbYulAB9tywXR6JpOiZhjWLQJ6j18LOvk76D5/kwjMdpuvsrxF0+1
	QdCRHnV1/9LYYYnML58lPEo4s5RfVLuoZ5WKoYwS0QbxhHmFvz+VW3UAtPO0Ewte+tUInZg74gv
	0sXiRp9hxayqKKpwHocpLAm42+ZSabKgzdxiloy7f/PJEF7p6l8kDHs4H9Ebe1o6nrLNIv0dnQS
	e1MUBhY9eiY4K0kNew2XF30JE6eGmhqJ5d9hxtePdWwtvUrf2YUj4WEo7T7juxX+O+fIOWpw5Jx
	DlAwdczh1DOuN/sNvpWxtXAgXLGpoXEWRRSVQPQYDyVFRNx14cIiQeFJXAnhQrO2EreJgB7ZaCX
	BvLwpBM/bD1aqLzhD/YyO4jXnz8eKyYpPlty5mJ9tTGk3EuJtIDb0Jmqvl5hj54JktrSut58WyU
	FbhmsE2+rJNMYauEomTQ==
X-Google-Smtp-Source: AGHT+IHuU69DVs/thwOwZ4AeaPJJGVl54HXPEoYsOl5OZF8DhefIH5/DNDaBzozP0HXd3Wjcf0NeQw==
X-Received: by 2002:a17:907:944f:b0:ad5:7bc4:84be with SMTP id a640c23a62f3a-af94021d61cmr859930766b.52.1754291984474;
        Mon, 04 Aug 2025 00:19:44 -0700 (PDT)
Message-ID: <5ddd405b-b999-4dcc-8ba3-3d0db5f727bb@suse.com>
Date: Mon, 4 Aug 2025 09:19:46 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 05/19] xen/cpufreq: refactor cmdline "cpufreq=xxx"
To: "Penny, Zheng" <penny.zheng@amd.com>
Cc: "Huang, Ray" <Ray.Huang@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20250711035106.2540522-1-Penny.Zheng@amd.com>
 <20250711035106.2540522-6-Penny.Zheng@amd.com>
 <e9bc1036-2ab4-4e9a-9d43-8e11d4f67776@suse.com>
 <DM4PR12MB8451A993F94C92ED054A591FE123A@DM4PR12MB8451.namprd12.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: <DM4PR12MB8451A993F94C92ED054A591FE123A@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04.08.2025 07:47, Penny, Zheng wrote:
>> -----Original Message-----
>> From: Jan Beulich <jbeulich@suse.com>
>> Sent: Wednesday, July 16, 2025 11:01 PM
>>
>> On 11.07.2025 05:50, Penny Zheng wrote:
>>> --- a/xen/drivers/cpufreq/cpufreq.c
>>> +++ b/xen/drivers/cpufreq/cpufreq.c
>>> @@ -64,12 +64,53 @@ LIST_HEAD_READ_MOSTLY(cpufreq_governor_list);
>>>  /* set xen as default cpufreq */
>>>  enum cpufreq_controller cpufreq_controller = FREQCTL_xen;
>>>
>>> -enum cpufreq_xen_opt __initdata cpufreq_xen_opts[2] = { CPUFREQ_xen,
>>> -                                                        CPUFREQ_none };
>>> +enum cpufreq_xen_opt __initdata cpufreq_xen_opts[NR_CPUFREQ_OPTS] = {
>>> +    CPUFREQ_xen,
>>> +    CPUFREQ_none
>>> +};
>>>  unsigned int __initdata cpufreq_xen_cnt = 1;
>>
>> Given this, isn't the array index 1 initializer quite pointless above? Or else, if you
>> really mean to explicitly fill all slots with CPUFREQ_none (despite that deliberately
>> having numeric value 0), why not
>> "[1 ... NR_CPUFREQ_OPTS - 1] = CPUFREQ_none" (or using ARRAY_SIZE(), as
>> per below)?
>>
> 
> The cpufreq_xen_cnt initialized as 1 is to have default  CPUFREQ_xen value when there is no "cpufreq=xxx" cmdline option
> I suppose you are pointing out that the macro NR_CPUFREQ_OPTS is pointless, as we could use ARRAY_SIZE().

That I'm suggesting further down, yes. But here I'm questioning the array
initializer: As said, I think only slot 0 needs explicit initializing. Or
else the initializer would need touching again when the array size is
grown. Which would be nice to avoid, providing doing so is correct.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 07:26:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 07:26:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068832.1432686 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uipa0-0007ou-EY; Mon, 04 Aug 2025 07:25:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068832.1432686; Mon, 04 Aug 2025 07:25:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uipa0-0007on-BG; Mon, 04 Aug 2025 07:25:56 +0000
Received: by outflank-mailman (input) for mailman id 1068832;
 Mon, 04 Aug 2025 07:25:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=c2vN=2Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uipZz-0007oh-GT
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 07:25:55 +0000
Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com
 [2a00:1450:4864:20::52e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 414552a2-7104-11f0-a321-13f23c93f187;
 Mon, 04 Aug 2025 09:25:54 +0200 (CEST)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-6156463fae9so8378508a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 00:25: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
 a640c23a62f3a-af91a078a11sm699479566b.7.2025.08.04.00.25.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Aug 2025 00:25: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>
X-Inumbo-ID: 414552a2-7104-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754292353; x=1754897153; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Pj4P3QBJfUG2ESOk/WDB36aNWoVLWCUT/GmpowtzHbg=;
        b=Pm7HTqejPfDz73ZwZkvp76faXNAMmsf94FvKYvNFqq6Zurk6a9JiocbA/9fxaREXHq
         XKdPJfGkmhSNg5bOAZyY9+KtR8seV1BLBUh2xSW7lc0vNRP9G9L284AJ1rTgoZ8jreGD
         59XSAj7FARY9HhhDOBEb22gFzvdRhpNslDBaNary1UH2rNcyh09eQeVnEBFMMEAL0gV2
         F085YKEOxuQVsDeqahAyRHhZZQSDG4Ilmcu1PX4ETKOhC3unVp5ez4s4PCW3yS7TAsn1
         ZXs4Asy++MscoT86jdvzRC/lDf1zosCEmogn8DwMmFsnc6o6/d/20qtok3SGKQIu21Jq
         fFMw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754292353; x=1754897153;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Pj4P3QBJfUG2ESOk/WDB36aNWoVLWCUT/GmpowtzHbg=;
        b=IDng/0UsAYzet2Y0WHqQTweB9IL5A1XXuHqxcBfqWA4e6kb3Sz+VokG+XG/U/Oep8L
         Jg4BOzc2c31VvZWj+uRYF2z8fxgsdZR1Xa0QHZQjLyHv0z6OB+USbO6uldpyMZ2pYQ42
         7Vd+uXKuF5J8WS21UQ+/d/QzJxbANDJpJ0r5jIzDXwHmz+IVIsDFwyW6jVzhT/HodZEX
         CJDQVtv1665WM35V+j7PLOsVQFn3MZY5nCBamLSsdCXg3O91UG8Nfj2nQxS3TgwWq4LR
         e67AYyX1/i+l1CRQQIvUd26Bpda2+fZ76aEREhIGJyZYIL5lTAraNY+Uk19C4EhhPiqL
         LJ1w==
X-Forwarded-Encrypted: i=1; AJvYcCXPgOf/Stv4a5eLaY+OSgZUqvdou4Tw7Ilb/Y18bINFFmxGP3QYlXcpEv5p4r2ZFlU0NtQ3B5SY+QE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YznhIoP7xjJ9Kh9tGV0GO9B6+aDIVNjrbMdKbQVWOdco3n3X+2s
	qT45+OSzL7VpHi+LJ371Z9JlOltOJntiOyNcLV2hyTOnVnkuC/p2dbzKmRygdWnkxQ==
X-Gm-Gg: ASbGncug9m1vJSWxS3YvV5Mkry7/ndaZKGLk/DBy6sRcFzlNUuWiys6wzAbruLACvmR
	EQL1vk1SutBoU4pgIeL/dx45K5MaUGmmjEUcNSmgvSHQvvs5sYiVTTJGnv8rGjI/CyPAiHmpNOp
	gU5TDuZA0eGsAc7n6hGo9XqXjn0htIxx8VqVOKyFWXPcBYklToqqgPl7TfxDY8FyJFgUV2TV4+H
	rhg8pdevgRjHlOcc7Hc8h0QnJnIIY7ZPxuUOZgyM4B+dq9engi+YYkIRNnQ14b/pigV2ZtbbxMe
	CZJdUoz97Hej6zflivPs6MuxixyLJ0da/YHnfJWhzWRAPO82R0RSeOYeqdMQqRXfFIILEA4MZ90
	JtPUkEhKnb88V3ohLRrokjZp+V5iy2CUUeycAfZug5lQ7DuMpkVEmzU8zAUgGXhswtKH7fIVXIP
	T49f/AOQu2QtcO3Ha2bA==
X-Google-Smtp-Source: AGHT+IFANaOepWRVt6+vT9pQ9ELWEWMZR1c6BGKI9yj+Zhviis7K40Z9Cp6tGE3HA+HGWp+AKfFpmg==
X-Received: by 2002:a17:907:971e:b0:ae3:c777:6e5e with SMTP id a640c23a62f3a-af9408a1543mr851157566b.19.1754292353129;
        Mon, 04 Aug 2025 00:25:53 -0700 (PDT)
Message-ID: <5f6f16b9-3aea-4407-8938-2ce4cc6edcfd@suse.com>
Date: Mon, 4 Aug 2025 09:25:55 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 10/19] xen/cpufreq: introduce new sub-hypercall to
 propagate CPPC data
To: "Penny, Zheng" <penny.zheng@amd.com>
Cc: "Huang, Ray" <Ray.Huang@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 "Orzel, Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20250711035106.2540522-1-Penny.Zheng@amd.com>
 <20250711035106.2540522-11-Penny.Zheng@amd.com>
 <916162aa-01fa-42a3-82c6-42a2c635f082@suse.com>
 <DM4PR12MB845142B33B4AE40453161BF1E123A@DM4PR12MB8451.namprd12.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: <DM4PR12MB845142B33B4AE40453161BF1E123A@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.08.2025 08:47, Penny, Zheng wrote:
> [Public]
> 
>> -----Original Message-----
>> From: Jan Beulich <jbeulich@suse.com>
>> Sent: Wednesday, July 16, 2025 11:39 PM
>> To: Penny, Zheng <penny.zheng@amd.com>
>> Cc: Huang, Ray <Ray.Huang@amd.com>; Andrew Cooper
>> <andrew.cooper3@citrix.com>; Roger Pau MonnÃ© <roger.pau@citrix.com>;
>> Anthony PERARD <anthony.perard@vates.tech>; Orzel, Michal
>> <Michal.Orzel@amd.com>; Julien Grall <julien@xen.org>; Stefano Stabellini
>> <sstabellini@kernel.org>; xen-devel@lists.xenproject.org
>> Subject: Re: [PATCH v6 10/19] xen/cpufreq: introduce new sub-hypercall to
>> propagate CPPC data
>>
>> On 11.07.2025 05:50, Penny Zheng wrote:
>>> +             cppc_data->cpc.nominal_perf > cppc_data->cpc.highest_perf )
>>> +            /*
>>> +             * Right now, Xen doesn't actually use highest_perf/nominal_perf/
>>> +             * lowest_nonlinear_perf/lowest_perf values read from ACPI _CPC
>>> +             * table. Xen reads CPPC capability MSR to get these four values.
>>> +             * So warning is enough.
>>> +             */
>>> +            printk_once(XENLOG_WARNING
>>> +                        "Broken CPPC perf values: lowest(%u), nonlinear_lowest(%u),
>> nominal(%u), highest(%u)\n",
>>> +                        cppc_data->cpc.lowest_perf,
>>> +                        cppc_data->cpc.lowest_nonlinear_perf,
>>> +                        cppc_data->cpc.nominal_perf,
>>> +                        cppc_data->cpc.highest_perf);
>>> +
>>> +        /* lowest_mhz and nominal_mhz are optional value */
>>> +        if ( cppc_data->cpc.lowest_mhz > cppc_data->cpc.nominal_mhz )
>>
>> If they're optional, what if lowest_mhz is provided but nominal_mhz isn't?
>> Wouldn't the warning needlessly trigger in that case?
>>
> 
> Yes, only both are provided, this check is meaningful
> +        if ( cppc_data->cpc.nominal_mhz &&
> +             cppc_data->cpc.lowest_mhz > cppc_data->cpc.nominal_mhz )
> 
>>> --- a/xen/include/public/platform.h
>>> +++ b/xen/include/public/platform.h
>>> @@ -363,6 +363,7 @@ DEFINE_XEN_GUEST_HANDLE(xenpf_getidletime_t);
>>>  #define XEN_PM_PX   1
>>>  #define XEN_PM_TX   2
>>>  #define XEN_PM_PDC  3
>>> +#define XEN_PM_CPPC 4
>>>
>>>  /* Px sub info type */
>>>  #define XEN_PX_PCT   1
>>> @@ -370,6 +371,10 @@ DEFINE_XEN_GUEST_HANDLE(xenpf_getidletime_t);
>>>  #define XEN_PX_PPC   4
>>>  #define XEN_PX_PSD   8
>>>
>>> +/* CPPC sub info type */
>>> +#define XEN_CPPC_PSD   1
>>> +#define XEN_CPPC_CPC   2
>>
>> As per this, ...
>>
>>> @@ -457,6 +462,26 @@ struct xen_processor_performance {  typedef
>>> struct xen_processor_performance xen_processor_performance_t;
>>> DEFINE_XEN_GUEST_HANDLE(xen_processor_performance_t);
>>>
>>> +struct xen_processor_cppc {
>>> +    uint8_t flags; /* IN: XEN_CPPC_xxx */
>>
>> ... it's a type that's living here, not a collection of flags. Any reason the field isn't
>> named "type"?
> 
> It is a collection of flags. Only when both XEN_CPPC_PSD and XEN_CPPC_CPC are set, we could run cpufreq_cpu_init() to initialize cpufreq core.

Hmm, right. The next legitimate XEN_CPPC_* value to use would be 4, not 3.
That's not visible from how things are defined, though. May I suggest that
you use

/* CPPC sub info type */
#define XEN_CPPC_PSD   (1U << 0)
#define XEN_CPPC_CPC   (1U << 1)

instead then?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 07:28:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 07:28:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068841.1432696 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uipcT-0008Lt-Qf; Mon, 04 Aug 2025 07:28:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068841.1432696; Mon, 04 Aug 2025 07:28: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 1uipcT-0008Lm-NK; Mon, 04 Aug 2025 07:28:29 +0000
Received: by outflank-mailman (input) for mailman id 1068841;
 Mon, 04 Aug 2025 07:28:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5/Qs=2Q=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1uipcS-0008Lg-SZ
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 07:28:29 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9b3ce5cc-7104-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 09:28:25 +0200 (CEST)
Received: from AM0PR01CA0144.eurprd01.prod.exchangelabs.com
 (2603:10a6:208:168::49) by DU0PR08MB9558.eurprd08.prod.outlook.com
 (2603:10a6:10:44d::20) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.20; Mon, 4 Aug
 2025 07:21:42 +0000
Received: from AM4PEPF00027A61.eurprd04.prod.outlook.com
 (2603:10a6:208:168:cafe::ca) by AM0PR01CA0144.outlook.office365.com
 (2603:10a6:208:168::49) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.21 via Frontend Transport; Mon,
 4 Aug 2025 07:21:38 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM4PEPF00027A61.mail.protection.outlook.com (10.167.16.70) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9009.8
 via Frontend Transport; Mon, 4 Aug 2025 07:21:40 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com (2603:10a6:10:25a::24)
 by DB9PR08MB8699.eurprd08.prod.outlook.com (2603:10a6:10:3d1::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.20; Mon, 4 Aug
 2025 07:21:08 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a]) by DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a%2]) with mapi id 15.20.8989.015; Mon, 4 Aug 2025
 07:21: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>
X-Inumbo-ID: 9b3ce5cc-7104-11f0-b898-0df219b8e170
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=GrCO8xILQHowHRYIvrXBKgytW0Oeh7NoD16P1lANdK9e1QF9+qgSjxKAp5kDT/NNT/x33foNHHXQH197CDiQXvtTCBfGqBnV7bjQv1twN+3UiMX1Vd02w53I5wSJaQRM/9V34CicfXmQ36O4WkYXUzU8DVljlOSdACzjWbSgtNmjC1rvfxOuGVr7IhP83/8k9W6Ml9BZ+3THq/9guXyUnOKFuGu4IpVs0+Mk5DmSi5fcWTWYKTGxaH1gsx8d2v3iDD+mCDfVQ/lNL3Bs4099PHmugH7wU4XKGKvLML2Iu5k7L38G9NlNswHcpcrVcqkfT7H6PmATxVhAbCsMGdD72g==
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=geAkE7DB6wdH4evMbSTVt9r1MrUQTgXJvQJA+GSeqf0=;
 b=h2oWqCdbYBRMmuIt+hgfFUht3raXbSOjEGeLtJCfHtPd7Nf3qVAqQOfoa+xzGH1BOApuIIqXj+xo0mbawv0L6znU+/4gCxzWsdXLyZAP1+iygoMLz90W+lrStz1J/CrYerwErBes96lEtr9NwtwYRx3r9S1fRF3yHh5D5UfYBUednUGbEcCwo5AHx18I8smGBoS/iqIAcFNUafsPmzM3YyeKhZKNLdVnLpk1YMS/whGrz2zqsrgfCMiG3QcVUHopu+ortELw3xT207ij0BVoHq7UYhvx/eQFZTKC+ksa5M+vTI7ZDbBlrZLTUu4SEF3V9eZohxExdga/DdPTX4mZIQ==
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=geAkE7DB6wdH4evMbSTVt9r1MrUQTgXJvQJA+GSeqf0=;
 b=JYvBWJOCpyoVU3eObYbRIFwt+nsfd8l61Cg7jAmhEMKByxEXtGDtWMeG0cFeFH+i4XY4BXg2GVXl3qJB2vA0St96yCJPjCb2Xcpd+Q7rBElQV+KtXwe4al+p1LaCr3fpTMFDJxsocSRByueWzI/lao8Skjw7ji4YfUR/+g/yuFU=
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=UwKl8F25EOEteXawnbw8RLxIFwJiUBQMTmZMdw7Yomlw2zmsGc32JAe3fznfD04DVel2Z5uVH5LbfRjd3iFmJLPTa28exxagY1BPgSEXNejDqim/riuf6DhDYgQvCYS01CJO4LTmej6l2suCX01zFIrZWzGPPiP7osSAkTEa2gVUqF/24UJJ4sBBBBXWh38OaPSaH3sZXBRno7ItJ9GPjEHgTvKXcAnpN/OEbON+xtvZf9i5XVhJdWHvDKX29qCZJPxja2/Pcti7dyGZD/7tztCm523G3SKuiAHCoaxo+vpLvDoryHPHV5aDISttwZYTAB1X3K1mupE2LUAEn2VL7g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=geAkE7DB6wdH4evMbSTVt9r1MrUQTgXJvQJA+GSeqf0=;
 b=Lt77er1OYg2PiIir8xeSUACPFi8kFq+ObytLuL2BjidiLW6kfb4xuHT+zrnGGvwiQ2Q/6nIMK0OHwmGxugnoZ4MIp9YHB/akov91FDgYxOih3wMEzkYg7KTcYSVgAeqx0At8mYape1DIHYzqMA532AV5sYPU662xEFYmheZtTs3WN2HqdYDWCOrIPq4s3HYtWddWYiLsZljgxZoeI3B6QWsNfyDcpZaD82ULO04uP+ZI6ioMzEpoTEda024AkxMbKvkwa9slYSzJyIHH1tDd5VInhIhRLJMRryR+a8Jy9//ndD/0sGcOJ1ms741hQUz7KCcU/eLdl2oeOeY0ud3OhQ==
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=geAkE7DB6wdH4evMbSTVt9r1MrUQTgXJvQJA+GSeqf0=;
 b=JYvBWJOCpyoVU3eObYbRIFwt+nsfd8l61Cg7jAmhEMKByxEXtGDtWMeG0cFeFH+i4XY4BXg2GVXl3qJB2vA0St96yCJPjCb2Xcpd+Q7rBElQV+KtXwe4al+p1LaCr3fpTMFDJxsocSRByueWzI/lao8Skjw7ji4YfUR/+g/yuFU=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Demi Marie Obenour <demiobenour@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"jens.wiklander@linaro.org" <jens.wiklander@linaro.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 v7 3/6] xen/arm: ffa: Introduce VM to VM support
Thread-Topic: [PATCH v7 3/6] xen/arm: ffa: Introduce VM to VM support
Thread-Index: AQHb9xP9tgnM92Sxpk+5sdmAsJMirrRQbvOAgAHDiYA=
Date: Mon, 4 Aug 2025 07:21:07 +0000
Message-ID: <DA6D0021-A761-4EEF-8A45-712774B2568E@arm.com>
References: <cover.1752754016.git.bertrand.marquis@arm.com>
 <50224eb7cca4eaef2646ad8e33f689d912704733.1752754016.git.bertrand.marquis@arm.com>
 <af3983f8-6d45-4cc7-8523-53d104edb0c1@gmail.com>
In-Reply-To: <af3983f8-6d45-4cc7-8523-53d104edb0c1@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.600.51.1.1)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB9PR08MB6588:EE_|DB9PR08MB8699:EE_|AM4PEPF00027A61:EE_|DU0PR08MB9558:EE_
X-MS-Office365-Filtering-Correlation-Id: 3172c775-100c-4297-f8f7-08ddd3278eab
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|10070799003|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?us-ascii?Q?FZ7aPkX9eSZGUJWuB4uHLpqsZkIvCvPZoRIm0r6S9GycYywzzb/lo6CbQkWL?=
 =?us-ascii?Q?Y3/p4JHcLrFp4STgA7vPF1aVL/ZimXX/VVj1Wl29UnygZBsOeBwRLkGRi9mO?=
 =?us-ascii?Q?eFE48kQkFmk2bnVjP6HLyxG1S6O+D/6KjQZdVieaxxGdsx36bDPT0XPJ0aae?=
 =?us-ascii?Q?P8HSom9xopOt/TcaH+7XENK92F66JesOdK8PFxIJIbc33U6+MjBeqNVZJkJe?=
 =?us-ascii?Q?lzUQOwFwNk0+irkt09bfH4FDoytika5NE+nQ7xPbVcW2Rok7oA5ey/1e57PU?=
 =?us-ascii?Q?ABDLj/Rl8UfXDiTkZen1MDUiXBU/q4NHOqeEMWfLKPN4yFqMDASgWa0yrQYj?=
 =?us-ascii?Q?m2bGE4ANdvt17uYw3XcQEp0M69fPWmh0IVkqtSCjLdVlQCQYGB2L7tO0veVm?=
 =?us-ascii?Q?WDrXsyjZ5HxM8NbTjldRGCvKbzFabS7cp/oEj/k8qOEmC33F5Wp9AJSUJ3a2?=
 =?us-ascii?Q?/Nmf4bMD9SxpHWv1MMUDnwdR3nWk8ISF29NuFzbf1zZFkA86R+wRGh1y7oeI?=
 =?us-ascii?Q?dX+29DtQwv/sY78TJGrCU/zRsryI2aXYSv40I5/8G0lKoFLIEoYx0HmR060/?=
 =?us-ascii?Q?fXBTPCn2aETB1Of/KTlqSS9ck84usg1qGz6dUFIEAQ8tmIHP5axOW2RvX+k/?=
 =?us-ascii?Q?FyF4GL0psaHhZJETo2Z6vQyvD0utlty2gmGufKTx/P6jwMJgp13jBxuFwUjv?=
 =?us-ascii?Q?C1zkH2m4lvY1B22QCaYFg88gxhvtZe+os/yw9F6UitZn+4RcPtVj4BmIr7QJ?=
 =?us-ascii?Q?bKQhrrQXcepUv/xuTn1Y+QPLevG7dDrRVVNWhBQ3aJdi492pJjeJDFkD6vtr?=
 =?us-ascii?Q?tPd0cNZSSkvCIvbdaARH5p2ZVSS7btJ1BX0ONKSVt5/dLzFn6VqlI6mFI9xH?=
 =?us-ascii?Q?F8BHZRyYVvRO7Ik6pxtHEBzAhPqkaYcLyD0Ih7laR6k2vI8+0dQG37aezUW9?=
 =?us-ascii?Q?OS2XICEz22BHRjjwj+y6QkeHlTqAav3tOz2V+zV90cZZNGHQx5fVMguxxjtR?=
 =?us-ascii?Q?GyqsqJ+CuWTY55sTmU8MdnazUqgkxTLsXtGZEZalVj3NWzg0MfNYYm/TKb+h?=
 =?us-ascii?Q?YGUE8HHsJs2CAh3/cFcy7tRk+YN/qYIzy37LVvn7Gczxy8yAxx8Mrcdur4PA?=
 =?us-ascii?Q?nL1rTY8impn49RH3R3QoSonnuGz1l2bRgUPBAwMjQolAjd3MNwzo3E5KOjWX?=
 =?us-ascii?Q?pEfatZp34pLB6qxzwlmhqD9VgLnqUaWUBGHsQkg64u3zphIRdKKdTNAmBaaw?=
 =?us-ascii?Q?uCr5Qchdr9MZy93qSYXcfRUEhU7nf/f/ZhotUxZJnABLckQzJHKRukYMiu7w?=
 =?us-ascii?Q?g6A8jU1gQibTs+GH0PDMUrJKGkE210uYsOO2z8y9/RwYtcD26xJ62viK5e1t?=
 =?us-ascii?Q?416TZnNrBzKj+GnpID3i/ZfJK938o8NHgPGECK/4bx6JyT4pDmtrEvJLK83f?=
 =?us-ascii?Q?aPGmWZKxeLJeB1Hzda8sgguhbHpT2CKLMVPjzz9OXBKRzm2zF6+YHOiuGyok?=
 =?us-ascii?Q?oN454Y4TJWH5eRA=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR08MB6588.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(10070799003)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <2CAB79268E9F454491514D3690CD07DC@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB8699
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM4PEPF00027A61.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	78d25aa4-9418-448e-aade-08ddd3277b01
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|35042699022|36860700013|82310400026|1800799024|14060799003|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?d4Y6yJ4SYFYkqO7daR2JOYGLLHcs/rF8cj5gYJHrNKALSCncf75WWqlsWN13?=
 =?us-ascii?Q?1vJYfbx/Y2RvHKKEl8Ml4A2Gyt2KKVJq4M/5P6xIvHyy58VtPqsehmvnpjaK?=
 =?us-ascii?Q?Qm/DterM8SPtRo3udepKGnLmZwTuPWeENENljG7ngblOXrBpWJLN1GPAvmNq?=
 =?us-ascii?Q?DScXw139jc/llUPnLVM4OoL76RPVZt1ZyretdvKjYFDXXx1/2HJXLO6+YP+q?=
 =?us-ascii?Q?mAfYB92DZ6IyoiQ0wNR1oaAIUEvUTmqW7YTD+IH+gMxKGgzF562+b1M7fnZW?=
 =?us-ascii?Q?RxpoLsOelREpvdQ6XEdiu5DK4ksSssqWRbLDZgOzV+0Kz6+EmeI05SglNM9+?=
 =?us-ascii?Q?Cu8EJtWSjAZGOon8iyfJIH2XQfuEJ+aCLgv2KQr7DRVPuaZc1Y2xk/OQRFtA?=
 =?us-ascii?Q?9NjWEUNmwQF7vwbLgL99AOr3v7ljQlVhkcXEVijDbjDkOWMnVZK+PuREzzet?=
 =?us-ascii?Q?LiEwuitFlIklmeNUReExMn2O2yLHoPvmLESt2ygJnoDYk90JAEsCvnobb70u?=
 =?us-ascii?Q?xrmhKs8i38s6PXTzmeKuV3nLLytl8nqnEeHHcUazM7sGx8eSLSshHd9IPnkv?=
 =?us-ascii?Q?btRDbLESdM4FVIEQ03u/6puxNWPBGFKRMpdq1zLPdheBEPFkztXyeOoqL5GG?=
 =?us-ascii?Q?ZvUMIVnC1NWTIhMmSlmTORJfrpG4nBHvfhqjaNgoKcQub7kZHKAZpY6a/Ovd?=
 =?us-ascii?Q?3/pRuGweXp7O7xpkf/VZ31U70XL1sH5lny5nUb8RLMEWAUk+j4yop7EEHbf5?=
 =?us-ascii?Q?H4UWnA04MHQiWj3a8av8WkMBhxPW+ybeB0cdCjc/GQWcCVuZ8pu6YHA7wNnE?=
 =?us-ascii?Q?9N35gBZaNoIQNVxSi/KpaKi4fmMotWyiIsp/3DHcDgWFsuVHGvySYva/S16X?=
 =?us-ascii?Q?ht+QQY50984NN+faoziPtNevC+eeh2Pze5+09Rq85UzPghSLkHj56Gm1rWVd?=
 =?us-ascii?Q?LD/Mzezg+JYjChbJnr5GAjd3DPKRR+tUgJlcVL5dz9SbVVztriWu6NrE5+gA?=
 =?us-ascii?Q?g+/uumwqk6hhpmOwqfGOar47EXsfWtUjvl4MMTgRbbQiL2k0lfmlZV3y9OX/?=
 =?us-ascii?Q?69U1kMQT2/JN9Wt9PJLT50zZeeg/CWs0oJSgmOGAerz8GvS1KyAysXKmScfY?=
 =?us-ascii?Q?pULt5hEOyCowNPNgqyiJ9ngCXD9SahmSejNRDTw62W2CB7Out8bdQSTbFx3W?=
 =?us-ascii?Q?uBx5ZZXCGI/zqDkd32IYCDrmGnRBOC/eA6EbnZk47kiZ0aNrg0GT+wskgpca?=
 =?us-ascii?Q?nvm6jFYZi5LP6pC+uiMvZrQ5aPhEWRHszaIShsYHoKW6ImD1/zO456cYf6a9?=
 =?us-ascii?Q?6IT9yceMxVeQoNnt8VaiGo0kZBnAEWNi/Ym2z9h0+hdJZZoPuJ0tDIarHVxE?=
 =?us-ascii?Q?dSSVnBtT2+keIsumPpKqeFFwVfCRgns+BJCwBwqv66V+AYX5v00nkHXrbfay?=
 =?us-ascii?Q?W3qf0LLxdN2nxOacXawTswN/sv5r5VA4yJJcaRZmjO09wstViBz20k5lxUyy?=
 =?us-ascii?Q?Xl+VSmgrbbVKcHa93e+sZxvIJs8LzhiHT/On?=
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)(36860700013)(82310400026)(1800799024)(14060799003)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2025 07:21:40.6177
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3172c775-100c-4297-f8f7-08ddd3278eab
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:
	AM4PEPF00027A61.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB9558

Hi Demi,

> On 3 Aug 2025, at 06:24, Demi Marie Obenour <demiobenour@gmail.com> wrote=
:
>=20
> On 7/17/25 08:11, Bertrand Marquis wrote:
>> Create a CONFIG_FFA_VM_TO_VM parameter to activate FFA communication
>> between VMs.
>> When activated list VMs in the system with FF-A support in part_info_get=
.
>>=20
>> When VM to VM is activated, Xen will be tainted as Insecure and a
>> message is displayed to the user during the boot as there is no
>> filtering of VMs in FF-A so any VM can communicate or see any other VM
>> in the system.
>>=20
>> WARNING: There is no filtering for now and all VMs are listed !!
> I'm pretty sure that there is already no filtering for things like grant
> tables and event channels, so this doesn't make things any worse.  That
> said, FF-A is quite tricky to implement without integer overflow/wraparou=
nd
> or denial of service bugs.  In particular, code in Hafnium (Secure Partit=
ion
> Monitor running in S-EL2) requires quadratic time because of repeated lin=
ear
> searches.  Xen is allowed to use dynamic memory allocation, so it can, sh=
ould,
> and must do better.

I do agree but we still have tricky cases where we could end up in unbounde=
d loops.
Some are handled by adding some limits.

Dynamic allocation being available in Xen is helping a lot on some cases bu=
t for now
I try to prevent it when possible but we might have to review this later if=
 we want to
increase some capacities (for example the number of shared memories).

I plan to do a presentation at the Xen Summit and a design session to discu=
ss how
we could define a way to define by configuration or at runtime what secure =
endpoints
or VMs can be contacted by a VM with FF-A enabled.

Regards
Bertrand

> --=20
> Sincerely,
> Demi Marie Obenour (she/her/hers)<OpenPGP_0xB288B55FFF9C22C1.asc>




From xen-devel-bounces@lists.xenproject.org Mon Aug 04 07:40:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 07:40:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068848.1432705 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uipoS-0002u1-Q7; Mon, 04 Aug 2025 07:40:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068848.1432705; Mon, 04 Aug 2025 07: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 1uipoS-0002tu-Mc; Mon, 04 Aug 2025 07:40:52 +0000
Received: by outflank-mailman (input) for mailman id 1068848;
 Mon, 04 Aug 2025 07:40:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=c2vN=2Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uipoR-0002sG-Bt
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 07:40:51 +0000
Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com
 [2a00:1450:4864:20::530])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 579b0470-7106-11f0-a321-13f23c93f187;
 Mon, 04 Aug 2025 09:40:50 +0200 (CEST)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-61571192ba5so6016069a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 00:40:50 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a21c099sm679150566b.108.2025.08.04.00.40.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Aug 2025 00:40: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>
X-Inumbo-ID: 579b0470-7106-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754293250; x=1754898050; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=B9SF7RZMtoM3hYCSMqGBiDg2hhOtnjtDrsiw4g2HWks=;
        b=MGJY5xGjHWXMSG5ltdIVDzuzKZPfW9Q6lctL65EPOqte2F6YldPunz5SIpcff79GTA
         fDmWOBEP7uXNA1sA11VSSySlwEahrv0hxAJViabvQPaCw7yEvf3wG9jXIiyQ9Jpc4D17
         KiGEhkLnpiT3iRednw7Ce0gNAOcs1lJdEXNxvvI1BndBSCCJhMkL5wdLVEGaOdjTcxJV
         08UdJqPRe8s2CfMaNqAy9agB5desGuLi2VbHWjcQDplYf9PyQ001cbGB6vYGVltnQK45
         o8+TMkRJD/NGrRwMXciVJX9ozQKorP6oosDspBGcHDFK2E+3P6hJ7nPu4fpmiHlzfS3X
         yTBQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754293250; x=1754898050;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=B9SF7RZMtoM3hYCSMqGBiDg2hhOtnjtDrsiw4g2HWks=;
        b=o/7A3+SsylRrnRZ9wKbYmjnZi/DlW4RFbQjkZN+okFTIZEQeyvP9sK2fwZd5W3b4x/
         zwM2GklZE7nIL3wX8fzRYTWNiilMYrwmKpo/jPSjBqXdBW6hipN+awyJ9YgZOoNxj81E
         vheGLRJZHcT6kgyT6XTTXnK/fGD1Ez69UzORPdKmPY8MQr3Dkjw53AicLjd3a01cYFKk
         mKx2+84BS2ajIlsTtw3vpmp6Agl5vZ9OxOeBD4lIOUGxuJSIr7QSMMknrYJliD0MwyDl
         Q3h5/8v7Z9LSLy8wCJXlrxpRspTjoWd3+5UM4GN9Ry5FnVVqk06O67QFMgjnC+FV8IIZ
         sFbg==
X-Forwarded-Encrypted: i=1; AJvYcCXLCEkASqhefnkpLFvlcME1MjOqAPn+8/EWZMnGN9QqTErXh3xA5K6ly5IPLqRWiFV8zSkQM2C5j6k=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyJBYzbI2pnqlkkrcb/JBT9jZfiD8PkRbwb1j+HcQCR4RHXPG7h
	5dpCKqaOy6wS0iung8uRF/mL0J2Pfs+IZBq9TS3daE4efhy5PaydC3z1GWuZfKxnEw==
X-Gm-Gg: ASbGncv7cFAywMEa/XGCKCSfhtGaO7s8dumI6FvYMQ8VAs/QttBgP+K8dtZCP0lNON1
	iLY2h/haKKCbFWSMyYSPyo5LY+Fu8vlQ2O57UNF3dfkTwM7jUhuZnqGSf79E4YhSq0xN1UjczoZ
	DJ2WpQjzf71EuASuHsCaHuARornXb1n5amFK1lO21zuhf9Y7dCmOfVomhNXVnwsL3ZT04z1Z0WU
	kP6gDSctbbbhCI1BnI8IaRBHOkMFLPxhyfUcjxIHMRiBmiRuhsopgn/LGTvNItvWg406FQ8umis
	ZLMqM3G1PmxZ+RIZTvd2NlOmtZAVE6hRD6cV68r7+S/lcijCMv5lXeyixyMmongI9aQNHmh4gJZ
	73F/JLVnO4MoIL3GDPJN4jV7oRMoNpl5/1jkuvSuv+6ePsYVKuWZ3FYk24mUnMskwOvyK/kYNN6
	G360dVMIRaHE7oWRIAEg==
X-Google-Smtp-Source: AGHT+IHp45BE/jBmN4s/ABhjXU97ga54ghngbZuBA9MdMRmP88/9LLDDMQiDxNE2I2TP7/sNlinY3A==
X-Received: by 2002:a17:907:e2cd:b0:af9:566c:4cba with SMTP id a640c23a62f3a-af9566c59a9mr536463166b.9.1754293249714;
        Mon, 04 Aug 2025 00:40:49 -0700 (PDT)
Message-ID: <770f41e5-5d02-4358-8f91-e577f762cf58@suse.com>
Date: Mon, 4 Aug 2025 09:40:51 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 05/25] xen: introduce CONFIG_DOMCTL
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.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: <20250803094738.3625269-1-Penny.Zheng@amd.com>
 <20250803094738.3625269-6-Penny.Zheng@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: <20250803094738.3625269-6-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 03.08.2025 11:47, Penny Zheng wrote:
> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -627,6 +627,10 @@ config SYSCTL
>  	  This option shall only be disabled on some dom0less systems, or
>  	  PV shim on x86, to reduce Xen footprint.
>  
> +config DOMCTL
> +	bool "Enable domctl hypercall"
> +	def_bool y
> +

Just to re-iterate - we don't think we want things to be this fine-grained.
(As an aside, nit: "bool" and "def_bool" are partly redundant with one
another.)

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 07:42:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 07:42:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068858.1432716 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uipqK-0003bW-7p; Mon, 04 Aug 2025 07:42:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068858.1432716; Mon, 04 Aug 2025 07:42:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uipqK-0003bP-4W; Mon, 04 Aug 2025 07:42:48 +0000
Received: by outflank-mailman (input) for mailman id 1068858;
 Mon, 04 Aug 2025 07:42:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=c2vN=2Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uipqI-0003bH-U9
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 07:42:46 +0000
Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com
 [2a00:1450:4864:20::633])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9c8834b1-7106-11f0-a321-13f23c93f187;
 Mon, 04 Aug 2025 09:42:46 +0200 (CEST)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-adfb562266cso658753866b.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 00:42: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
 a640c23a62f3a-af91a219ecfsm692729266b.94.2025.08.04.00.42.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Aug 2025 00:42:45 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9c8834b1-7106-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754293365; x=1754898165; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=nUV/OspnpdUEhNBy8q0/kDN0riBTCkRUEONT43aOycs=;
        b=VUR4JytaaiSYENfe6KgQVoE7zUNVaL06zYAMVOqifMw8q9BSUEW42I8GpH/SzacZBo
         e+KGFMSY411QiP/+IUt2xeawsIzCMOpbUi9s4+hXR5fyXvtyjbJwMKnldo9SB2WeWn1V
         PgBADI57uV30eqCfC7YV3CjYteWwj3+kMvscEZZLK2LiP13o50im9t/q7/mFwg2bcujG
         LmPJGwwlPzB3O9Qw6Qzppzc4Ds8bQ+2BGIhJ/4HKb0sJ/bdd07doFEB4yQnUuKcfKvg5
         5Grdm1GNdctj0tJ1jAjdqbT1uJYkVBvg3vNbva7rjetioeS4BYIyjZJRLp5xq/3d8miQ
         N6FQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754293365; x=1754898165;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nUV/OspnpdUEhNBy8q0/kDN0riBTCkRUEONT43aOycs=;
        b=nW5p7TvGDFFI+R8ScIfQW09Jrmxo5tWFF6l1LHLmR4t55fmTMa9rk6KuiPTsVqJq8i
         lY96Hcx/NFLpMzimUXNMBChXN22s+OOHX+6/Dc/AE9Mk9xdfRC4kGnNoFkTR+FWG6TTD
         kTpTiRTFnsvoe0zlXViaW9E7qEiZxcybugKaCa1+HVm32aLVHG+KYH3aMF4CxLl6d5fm
         Mpjgmahk0YdCMK2XzYvwdaDYARDme2zCVs/ileqiuPMmFphnk2TUNmieMSylb9l02z8E
         457s8pg6PVkLr/SFltAsk+axjiA1ByzicB8n6d/BUApOlWTXNSWTUSPQoXIq6mbLONVc
         UdEw==
X-Forwarded-Encrypted: i=1; AJvYcCVsZaZ0NxzeEQY+LnL+g+3svHpzngvswBO/O18t4X+tERh3eq2Vh8Jo6T9cg0iC5OIwJwkUZU3QZ2U=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzFdgdLfVsq02kyt52tFmwE1ejv+ewNcpyn0ybHm7otlYvnOa0w
	fMcnQC7E00be2x08FwDh7gCrhA2IvhdUSs2I7HBXHbMVbYiY/oza/L9+eLFJ7I/0CA==
X-Gm-Gg: ASbGnctt2UtKS7l//PZZJQDIf1qbhfJIeuOLCJ7Sa7kM4ycOMCS2oLig7to5cx67p6l
	pB+nv1nDygddganHKXtcRl3H6tuZ3y5gjrcvj4AvUGrCM653BB/F+5W5jYTLTFUJRkyqpIdur+1
	X78b2FVXvK4H7+Q7/gJOzZCYMgNtmsMbkFDh+SrX3FKIFsYunIRqlAVlxDbyC54ygxYURcILyga
	BAlGNAdSzgvI4+W5mkcIlmoAFD92UbHVxOUx1lwo++bCf0QRhSwHdjJvwa9z7d7IA8VThUMSvyu
	Rp/n59I7rWJKU3Ndp85I70qElh+MfAheeEtNhRF8Yqy1gVjboAmJO9u9MpOycT19PGaPBY9KdPn
	vSnESY+nGnDHb2Fyu1hHhfyHJi8Eh/46OIYouUJk+vi/xOjvDI0ygYew5U8V5RLq88NujgtUAxe
	Rf7t+h+Mw=
X-Google-Smtp-Source: AGHT+IFOjux+LYfVhIt946IFpgEfKVmjOypXuRPto1LcwWRkHq4CuD5v+mgTKbcdnfX3BmRWfvuQBg==
X-Received: by 2002:a17:906:794a:b0:ae0:16c5:d429 with SMTP id a640c23a62f3a-af940248c62mr846235166b.58.1754293365330;
        Mon, 04 Aug 2025 00:42:45 -0700 (PDT)
Message-ID: <371bc812-acdb-41ef-950b-3c9e5feea48e@suse.com>
Date: Mon, 4 Aug 2025 09:42:47 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 01/25] xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, 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: <20250803094738.3625269-1-Penny.Zheng@amd.com>
 <20250803094738.3625269-2-Penny.Zheng@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: <20250803094738.3625269-2-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 03.08.2025 11:47, Penny Zheng wrote:
> In order to fix CI error of a randconfig picking both PV_SHIM_EXCLUSIVE=y and
> HVM=y results in hvm.c being built, but domctl.c not being built, which leaves
> a few functions, like domctl_lock_acquire/release() undefined, causing linking
> to fail.
> To fix that, we intend to move domctl.o out of the PV_SHIM_EXCLUSIVE Makefile
> /hypercall-defs section, with this adjustment, we also need to release
> redundant vnuma_destroy() stub definition and paging_domctl hypercall-defs
> from PV_SHIM_EXCLUSIVE guardian, to not break compilation
> Above change will leave dead code in the shim binary temporarily and will be
> fixed with the introduction of CONFIG_DOMCTL.
> 
> Fixes: 568f806cba4c ("xen/x86: remove "depends on !PV_SHIM_EXCLUSIVE"")
> Reported-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
> ---
> v1 -> v2:
> - remove paging_domctl hypercall-defs

And you've run this through a full round of testing this time, in isolation?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 07:47:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 07:47:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068865.1432726 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uipuj-0004C4-P4; Mon, 04 Aug 2025 07:47:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068865.1432726; Mon, 04 Aug 2025 07:47: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 1uipuj-0004Bx-Lj; Mon, 04 Aug 2025 07:47:21 +0000
Received: by outflank-mailman (input) for mailman id 1068865;
 Mon, 04 Aug 2025 07:47:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=c2vN=2Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uipui-0004Br-CP
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 07:47:20 +0000
Received: from mail-ed1-x534.google.com (mail-ed1-x534.google.com
 [2a00:1450:4864:20::534])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3ecc5728-7107-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 09:47:18 +0200 (CEST)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-615756b1e99so4523361a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 00:47: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
 4fb4d7f45d1cf-615a8fe7c88sm6447496a12.41.2025.08.04.00.47.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Aug 2025 00:47: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>
X-Inumbo-ID: 3ecc5728-7107-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754293638; x=1754898438; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=2UDRFzpvxKPEasMvNhqsQNQ/DiNWraBGrNUe11lrUM0=;
        b=Ru5m3aD1JhAjTk+IQsn8j2kARmEFXxC5TZCeNvxB7JzC90ZCPtuzyYeid/k5fT55PS
         Zz7sCF7yq64oL4patGfqnxlRExc4Iw3el6jRhM8TB0LhD3vSc1lnzSVRmqPKgJ4fUhyC
         5VGU5vuTKvQFIcMmfDSeqHzHBENAgv+DxupYXY+ifp2eWKDMHBzc5yRxipu3rV7R4Bxt
         /twg5MmaUUQzaJV9ny+XF6EXQO1KLBR+41oOOcD//hZcaHoKLDWnUoSTtCuBNk9/AdIA
         LiY0vUi1rdVMkv6dEjwdzL57DUy8qEtwv2wng+ddBuYnRGMZbCMlLPPedXExekFZAK2U
         64fQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754293638; x=1754898438;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2UDRFzpvxKPEasMvNhqsQNQ/DiNWraBGrNUe11lrUM0=;
        b=n3d6Todybqxm/DTcgv+ufWd3NjYu52bm7Dao+5HAXNT/15D6cMxqKv2ZdSukqACdZm
         rtRKw1XB8awCFTJ2Y6VIPjeVWb3dbzUK8TvuKlw14+CCrhSvV4ktEoiU/8W1xvKDKjUx
         xBmYOCkB8WTO2jlYTOQee3pMz1EkP5ql4/Es/DaxX+mLSNdY/aFUtYeP+Aet1G0BT2Qm
         B5Baotphl6UuC5xeMQzdaZ7DTcYKH3l/0Sp4KbDnhSIaXCNcOYgnIRJ+1osYV34d6yJl
         wcKoUAKgKoxfIIlmbl3zAa/zUr7PublO8Y+7Jg5TsWgARwmftrZWP9d2IqbMcXyHsiQG
         JC3Q==
X-Forwarded-Encrypted: i=1; AJvYcCX8Afa0ETzTuJvL/iiLHXhr57CHzlG8H3DC/+jh+mvpeql8MgCizehlk61+jfOUkCvuGJQD5evmdsU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxsTaYTNSyO/gZrvZ0uwS00ER+YZlqcrnuM321LDV/dpwg8TlMa
	eYQKlRU2tZoYx9aG0eW8Ep/2DncIjkjF9aHA+CpkseD/YPSLjyEDAN9z9uhFmtggiQ==
X-Gm-Gg: ASbGncsF4TGb08rKLhkYm/Z32HiuvIGkYh6p8RYPgcAhtT4EkBP9w56XRHp+doL6q+E
	7F76GBm8mqI8mDfZPeDH+SYDl7eYVjzj5gWNS3f+10zOPM9FmgYTDBMFv9L3+z0i6pcLTfeSVou
	vIO/c33t+qWm5hPPzVwpyFZErg30NoECyKoETUXsixlJFQXDWx/1wjLjjVTK0TCsmSjOY5nk15/
	tJ83tZIJH2kH2emFFNGkDEcvF8ozbBOC3Ers45e2HMSgUm3tfQURnmZJbsBapgKP15aUm8CrJz+
	4rbrkjX6nZ0IhrKWNfPjD3Bj5GkFzhkJfn8msufkRTRkBY2Tid20jJLn0b7cCRv+jLyWKa0drcH
	E6Oc9E9v/fDPQuOijvP0VUGjSwO4OepUzYbJfdwQjHQe3zv5rhnVZSslnWOmuJtsWZHYS2zUUR+
	yhuw//VBQ=
X-Google-Smtp-Source: AGHT+IE/3GALxsfmNfanTZmRT4jJe7hkA6z7M38co6zKHyOgOCET50A5GDpsE5r/WJaKVl5/Uz8SCw==
X-Received: by 2002:a05:6402:90c:b0:615:6fae:d766 with SMTP id 4fb4d7f45d1cf-615e73889a3mr7269078a12.26.1754293637540;
        Mon, 04 Aug 2025 00:47:17 -0700 (PDT)
Message-ID: <bb42b0a4-30b7-4c10-8320-ecd21aad5c2e@suse.com>
Date: Mon, 4 Aug 2025 09:47:18 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 00/25] Introduce CONFIG_DOMCTL
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Tim Deegan <tim@xen.org>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Tamas K Lengyel <tamas@tklengyel.com>,
 Alexandru Isaila <aisaila@bitdefender.com>,
 Petre Pircalabu <ppircalabu@bitdefender.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Christopher Clark <christopher.w.clark@gmail.com>,
 Dario Faggioli <dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>,
 George Dunlap <gwd@xenproject.org>,
 Nathan Studer <nathan.studer@dornerworks.com>,
 Stewart Hildebrand <stewart@stew.dk>, Meng Xu <mengxu@cis.upenn.edu>,
 Rahul Singh <rahul.singh@arm.com>, xen-devel@lists.xenproject.org,
 xen-devel@dornerworks.com
References: <20250803094738.3625269-1-Penny.Zheng@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: <20250803094738.3625269-1-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 03.08.2025 11:47, Penny Zheng wrote:
> It can be beneficial for some dom0less systems to further reduce Xen footprint
> via disabling some hypercalls handling code, which may not to be used &
> required in such systems. Each hypercall has a separate option to keep
> configuration flexible.
> 
> Options to disable hypercalls:
> - sysctl
> - domctl
> - hvm
> - physdev
> - platform
> 
> This patch serie is only focusing on introducing CONFIG_DOMCTL. Different
> options will be covered in different patch serie.
> 
> Features, like VM event, or paging log-dirty support, which fully rely on
> domctl op, will be wrapped with CONFIG_SYSCTL, to reduce Xen footprint as
> much as possible.
> 
> It is derived from Stefano Stabellini's commit "xen: introduce kconfig options to
> disable hypercalls"(
> https://lore.kernel.org/xen-devel/20241219092917.3006174-1-Sergiy_Kibrik@epam.com)
> 
> Penny Zheng (25):
>   xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE
>   xen/x86: consolidate vram tracking support
>   xen/x86: complement PG_log_dirty wrapping
>   xen: consolidate CONFIG_VM_EVENT
>   xen: introduce CONFIG_DOMCTL
>   xen/domctl: provide stub for domctl_lock_{acquire,release}
>   xen/domctl: wrap around XEN_DOMCTL_pausedomain
>   xen/domctl: wrap around XEN_DOMCTL_soft_reset
>   xen/domctl: wrap around XEN_DOMCTL_destroydomain
>   xen/domctl: wrap around XEN_DOMCTL_setnodeaffinity
>   xen/domctl: wrap around XEN_DOMCTL_{getvcpuaffinity,setvcpuaffinity}
>   xen/domctl: wrap around XEN_DOMCTL_scheduler_op
>   xen/domctl: wrap around XEN_DOMCTL_getvcpucontext
>   xen/domctl: wrap around XEN_DOMCTL_{irq_permission,iomem_permission}
>   xen/domctl: wrap around XEN_DOMCTL_settimeoffset
>   xen/domctl: wrap around XEN_DOMCTL_set_target
>   xen: add stub for XEN_DOMCTL_getdomaininfo
>   xen/domctl: wrap around XEN_DOMCTL_set_access_required
>   xen: make CONFIG_VM_EVENT depend on DOMCTL
>   xen/domctl: wrap around XEN_DOMCTL_set_virq_handler
>   xen/domctl: wrap aound iommu-related domctl op
>   xen/domctl: wrap around XEN_DOMCTL_{get,set}_paging_mempool_size
>   xen/x86: make CONFIG_X86_PSR depend on SYSCTL || DOMCTL
>   xen/domctl: wrap around arch-specific domctl op
>   xen/domctl: wrap around domctl hypercall

Hmm, I should have remembered to Cc you on this [1] reply of mine to Jiqian.
It applies here as well.

Jan

[1] https://lists.xen.org/archives/html/xen-devel/2025-07/msg01884.html


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 07:57:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 07:57:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068876.1432735 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiq4j-00065B-Lf; Mon, 04 Aug 2025 07:57:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068876.1432735; Mon, 04 Aug 2025 07:57:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiq4j-000654-Ik; Mon, 04 Aug 2025 07:57:41 +0000
Received: by outflank-mailman (input) for mailman id 1068876;
 Mon, 04 Aug 2025 07:57:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=c2vN=2Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uiq4i-00064x-6m
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 07:57:40 +0000
Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com
 [2a00:1450:4864:20::52b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b0621242-7108-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 09:57:38 +0200 (CEST)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-61580eb7995so9047360a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 00:57: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
 4fb4d7f45d1cf-615a8efffa5sm6352789a12.12.2025.08.04.00.57.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Aug 2025 00:57: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>
X-Inumbo-ID: b0621242-7108-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754294258; x=1754899058; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=MfvF4myRl9OGefF3nwNHUkjGFs4EEnO3ZCbH4ezUxEQ=;
        b=KgUCICyk0riqk7Adt3Upxnp11gNKDscag1lfnSva08gnxyuTaMrupaUsZcAnsAfZ54
         hUedUBlgakGh8ctWVewo+8UAJqucOwqBRSO+zUDzMZTu/u9LVqbzFdlC1cwOP0MmwSqi
         ont+T7HnAVxkVsV2AnTJlFY2E6qD9c0ZEZ0gfDRO1sEvGrTMnRRQJh4iNswfwBTdYypH
         YQ/dhGN3GZKewii1bvhJckjq9wWRhkQiQjs1hlfLB9/dAhTy68ochcvY1/hdXMl8zekQ
         2DK5spbzzWs5flDv/Z7893PoFqKcSDtBkmZ4QBN60dir2MOI6mFp8ycFL4pdeaReEXi8
         +I4w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754294258; x=1754899058;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MfvF4myRl9OGefF3nwNHUkjGFs4EEnO3ZCbH4ezUxEQ=;
        b=K8DeugOM6QRVh1CsPJnZfXQFgokfosLiszNWlvQfdRDLCrjxL1OnH8sRkqfh3Yp6D1
         kKXufQvyETqp3+nde3erdXl9PgDblJh3YCL4jVIUV0aPNGR5mLRcM3dZSdKLF8imgbi6
         HI4awwlPPxCpJNjHYOwxDOT4bmNAWjEYKL8LFbRDZdTYzCt7Y3otteez1+s0HONwNSLc
         OxhQQoMZyWU4Q9We2RAzC8+pBhbOO9dDgJbrnLA6sT6gHoYNkBd4YSyQBsnx2A9yCra1
         bVmC1S+DB5txFWS9Fo4308lwCafXopY0MGkLhBm0PvHwCmjojs3x6p0FaYpSZocPMKFx
         fQkQ==
X-Forwarded-Encrypted: i=1; AJvYcCWqoDfYF9eIwgv4/NnM0eGXLrmWHA6dr62U21zhMHohcy/4kCeQJjuya16y1BbHhxYjvcZumkfaKck=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwxeOrAxF/N7rz8vL2vCruwyit7Ata6uJ0S85lWF0fAIaUbDkad
	uaJ/EgCwH1pxdhFgJAIUhnFKopQEAl+wiJGFiXx2YzcJZhsi9T/XqLeFl2GDdBhaPA==
X-Gm-Gg: ASbGnctSXIdS4ClcIm6ZEnfnLzEdybL3eUtKiTzHXigl2TyUd+e75e56Va/j/NF5BL4
	+chdU7wKzn/IwIuuTyZESCerzA+EL8LILeg2Q+39vcCeJKaAx36hWXmRi8/bjwTq6HM54UsDYjd
	alxa/L6Ndj8sb6f4hJAGEcV4ocmSWCkp9+fAfmidLA+29HQBUZhzS3Lm7jmfUZNzR6OzOYJTivl
	vZLHkKy0bW8ZWUs2XjlFXhTvbPVrCyn5gYNtqQoxGJyUcp2Gc3r1+439BEp+ZM419OocdMKzung
	G1sC/+f4+pzBt2UZ+Zf8VMP3vxXsSc2CHCep1rrSBNQrgH57f/hBmAiEadK0Oq9ewOIDtWD9zTZ
	xiIYvKwoblbsMKhX/6kT4eh9CpN3uBzq+I0t1NbayKuibuk2n9qhl0FnfxRmkmzagkjCnUMxyaV
	DIEwuntzc=
X-Google-Smtp-Source: AGHT+IFdwf6cdCV1zGsA2CO75h4I88SRacVtUGrg1YIQQuezJf4EcvFycoLvEMkKYUTXl1S9NKBfWw==
X-Received: by 2002:a05:6402:13c9:b0:615:8b65:bfb6 with SMTP id 4fb4d7f45d1cf-615e5e5237amr7783767a12.13.1754294257645;
        Mon, 04 Aug 2025 00:57:37 -0700 (PDT)
Message-ID: <52ea4f10-26b4-447b-8753-0e4287a03408@suse.com>
Date: Mon, 4 Aug 2025 09:57:39 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen: rework error handling in vcpu_create
To: Stewart Hildebrand <stewart.hildebrand@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Dario Faggioli <dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>,
 George Dunlap <gwd@xenproject.org>, xen-devel@lists.xenproject.org
References: <20250801202418.38977-1-stewart.hildebrand@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: <20250801202418.38977-1-stewart.hildebrand@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.08.2025 22:24, Stewart Hildebrand wrote:
> @@ -839,6 +839,9 @@ void sched_destroy_vcpu(struct vcpu *v)
>  {
>      struct sched_unit *unit = v->sched_unit;
>  
> +    if ( !unit )
> +        return;
> +
>      kill_timer(&v->periodic_timer);
>      kill_timer(&v->singleshot_timer);
>      kill_timer(&v->poll_timer);

What if it's the 2nd error path in sched_init_vcpu() that is taken? Then we
might take this path (just out of context here)

    if ( unit->vcpu_list == v )
    {
        rcu_read_lock(&sched_res_rculock);

        sched_remove_unit(vcpu_scheduler(v), unit);
        sched_free_udata(vcpu_scheduler(v), unit->priv);

and at least Credit1's hook doesn't look to be safe against being passed NULL.
(Not to speak of the risk of unit->priv being used elsewhere while cleaning
up.)

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 08:02:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 08:02:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068887.1432746 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiq92-0008TJ-9Y; Mon, 04 Aug 2025 08:02:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068887.1432746; Mon, 04 Aug 2025 08:02:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiq92-0008TC-6Z; Mon, 04 Aug 2025 08:02:08 +0000
Received: by outflank-mailman (input) for mailman id 1068887;
 Mon, 04 Aug 2025 08:02:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=c2vN=2Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uiq91-0008T6-9O
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 08:02:07 +0000
Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com
 [2a00:1450:4864:20::52d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4f0206b1-7109-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 10:02:04 +0200 (CEST)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-615460d9897so4641335a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 01:02: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
 4fb4d7f45d1cf-615a8f2c265sm6424723a12.26.2025.08.04.01.02.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Aug 2025 01:02:03 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4f0206b1-7109-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754294524; x=1754899324; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=dtDDZ55iqJVKdgNl++fZQZljnsNij71/Adudn60Elas=;
        b=I1FGHIKF/E+5Qiskf/yLtQf2H7l/w4H9KR+MsnTE7SJ5HBzqZx9zb9q9nU7lyw6Kz6
         vVeA7GIoFP5vlCUA5NMbp2nZ6KCH5GksKsyf4CTTvEncM682JFYvACMJQXCN/rdSPTHj
         1Q1CA6bk0JojDhE4LdFYV3UfvbG5gtUewlaAUb2niPUUYuialQCuIhEu8HPsxSTGlujA
         cSbmL0pOtlZLtShWE2pNNLvF/igyxp0fbZehYvetHxu37UFkWc00tDsnm7vqugpske5y
         xqGmt9R26aiWwAcdndVNPqufN1reJbbRZx0rJsRAWMF/zwCRMG5BiQeGlg6FtaNAX64I
         0w3g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754294524; x=1754899324;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dtDDZ55iqJVKdgNl++fZQZljnsNij71/Adudn60Elas=;
        b=vJuaaRPdFPkEP1jGg1F/ULiOMxBIpJtUtniLC3oDZ5QHem+67dUBOKkMDRTIzzOYvb
         iJm84DqjSrCvC4Ibza5ReHSfXVZ3QgAG3SxtrW/B42ZTJEBil0/6mye6iZl0+9rYK5s0
         U1ZlKcPyYcBCkp0r6Y3FJhyrxldQoZhGK4SEL8ZqV7JtKZOmRmYpbrXBWjIAimBuXnVH
         OTXKJNuv183I4zYCDwrohxWzbxtUg28jvfRH49Hwgv2XsJpQIGOkPjvZU9Qp0aCoqLpV
         6aaO2nLk2jza5jtDbpQ6Se2FhXP45tozomqt5XT0romp/x+fAQx+vFVQDeJukT+TUzTp
         EBnQ==
X-Forwarded-Encrypted: i=1; AJvYcCUj8lstZq1HiQlGEKsm6PrYTAP6kvlo9sHafJ6XJJ/V5aWJuxzctsP4B7gtCypj/n1HRUShDP+B6hQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzlPNDy71+RcWts2icxMJrKgVuz+EGq0ms9jvHpoWTBIf82shwl
	UIHiHLcMZHl7zYparqWhEpWHLyUMJvC2j6Zob5ipw+ESQwpI5k4WDX7SJjeYU+n+vA==
X-Gm-Gg: ASbGncsBhOUxxQeL/QfW5fDzuUkvBcFBiTcrff1rQE1eH70R42ztQNnsdgMBh4o+eKi
	1k1EfW644FsT57lSiJ14S+5jmjG+YZMwD0h7vwJF9lQn1qX5xZ5HfngXA+bY1i6vaUzW/78DL8w
	ytoz1ZOyYE+R1xZkPpafDV7Nu3uj5JmFZMhnNx/qJCGvVKmrArbhCRZbvSA4cR4hLYrlPwrP8VN
	OFthedCaw70lVGeqxRPfRBYfy8TZucPc+rk908MqAx8Kncyje52XFkUPDYwhxblYKQZ4/23OLDj
	NAM37DM0FiSNS7AGW5gvoDnm+crdSElc/pbmPPnbdDa+1F3FivhuxfRC59Bc01PCHR705j00KzD
	8/lxYeedkCyO7S17Fyba7BVFzq0BiOj4rS8IAwr5RpLEDZ79AP/Tn2CX18ivPKJilXdlYeTo3/+
	4z/l7YX1I=
X-Google-Smtp-Source: AGHT+IFkqYGJQI+Tv4NBRLRPKsHgfsZRDNGiIYIxPQhzchtaAhKpn5ugLm/Fu6o+xnjvHNf+b6M8Hw==
X-Received: by 2002:a05:6402:2755:b0:607:116e:108d with SMTP id 4fb4d7f45d1cf-615e6f58258mr6554375a12.21.1754294523753;
        Mon, 04 Aug 2025 01:02:03 -0700 (PDT)
Message-ID: <9d71cc11-884d-4924-9de9-e3396801158a@suse.com>
Date: Mon, 4 Aug 2025 10:02:05 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC] Next steps for MISRA C Rule 17.7 in XEN
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <6d622813-1617-4af3-876e-52a551518f68@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: <6d622813-1617-4af3-876e-52a551518f68@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02.08.2025 19:48, Dmytro Prokopchuk1 wrote:
> There are a lot of MISRA C R17.7 violations in the XEN.
> This rule states: "The value returned by a function having non-void 
> return type shall be used".
> 
> Actually, need to decide how to deal with these violations.
> Quick analyze shown that there are different cases in XEN code base.

Long ago, when we discussed the rules in a mainly abstract way, there already
was quite a bit of discussion around this. Stefano - I wonder if you had
taken (and have kept) notes back at the time?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 08:10:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 08:10:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068897.1432756 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiqGZ-0000kR-4R; Mon, 04 Aug 2025 08:09:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068897.1432756; Mon, 04 Aug 2025 08:09: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 1uiqGZ-0000kK-1e; Mon, 04 Aug 2025 08:09:55 +0000
Received: by outflank-mailman (input) for mailman id 1068897;
 Mon, 04 Aug 2025 08:09:53 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=owTc=2Q=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1uiqGX-0000kE-B0
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 08:09:53 +0000
Received: from NAM04-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam04on20604.outbound.protection.outlook.com
 [2a01:111:f403:2409::604])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6408394a-710a-11f0-a321-13f23c93f187;
 Mon, 04 Aug 2025 10:09:50 +0200 (CEST)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 PH7PR12MB8825.namprd12.prod.outlook.com (2603:10b6:510:26a::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.20; Mon, 4 Aug
 2025 08:09:45 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d%7]) with mapi id 15.20.8989.018; Mon, 4 Aug 2025
 08:09: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>
X-Inumbo-ID: 6408394a-710a-11f0-a321-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QwC05vCN1asvQ91pqabdpS4EU7i6nJhr6DWuDW0tW1hRBJleU4WClPsofxkWZeM43n53IcYV3nzvE4S81F8/7n/fky35xmy1Gd0YnV3Cq5Bab/xDS9LRAGXGWMtJn0bFsRGuCNXt1LvOuCDbwzqlXzhp5BwMgi6ufrFYuHxbfa6saphJ0iyUK90aAxJt4wHjr8angzh6XAPr/IVU1N5ljZJerefvPWGOqfa+TCPSQL6EYc/A6KZycepWlj7w2war8PMfCW5ps56ncptfIj1/qQgmVMwc2f/V5+AMXiHXUtl1Fo9QkgkImOs/exf8fC2SKPSf7G7ll2qnBd+Wfj+Pfw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=EONlCrXEu+vl1MizfSkbUN73vCDvFetjTYiRA8ZlA5w=;
 b=CCgG1CiTuGW2FZ+DWVnWnY/nRKGb5zL80+W+Q4IB6Ahz+48+cd9G3BHFBmQ08ofWhuBzfddEtSj5DXEZqbLi5BxPgZF1pG2iwdKBceQbBLq1QHIY4+dLnRWtVFfBajNdKpmMPsr3YdQvmQGMq6YPvPCDp/RAQMvd+BrHzI7UqNMzMP/NoGqpxL3yUkFwkoilTGFSplddnVytTs7Bt3mNAGn+y9XL0uj3FwlOgdgSO5oeRX6YHL9np2ygw3dsHTzXCgKIq0b9jJq9/G2hCghogimzCExNwVJKahldc1qnDVwJVcE0himOflEFt9M81zkrinsiRLN1czUCARc2zsQk8w==
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=EONlCrXEu+vl1MizfSkbUN73vCDvFetjTYiRA8ZlA5w=;
 b=qnIsEC8/fRwNr3OLBW2IyeCMieo+yaIyY4yH6fJt2vdtqlpyF//dzMefgjQXYp6MVRVqpUP7fGg6xTr+YzCVK2/mCX95b/RMS/GanCZxLqVNooo909AvSW/PWHarQSlni+EAKYKz1REgH4F9Fyg3orqa61k00RpCtNQ5Q2kHQEk=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	"Orzel, Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Stefano
 Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v6 11/19] xen/x86: introduce "cpufreq=amd-cppc" xen
 cmdline and amd-cppc driver
Thread-Topic: [PATCH v6 11/19] xen/x86: introduce "cpufreq=amd-cppc" xen
 cmdline and amd-cppc driver
Thread-Index: AQHb8hcjpcuBQZ3yA0mXIz4rkVtX0bQ08RmAgB1Oq3A=
Date: Mon, 4 Aug 2025 08:09:44 +0000
Message-ID:
 <DM4PR12MB8451FD535917A84B3054C93CE123A@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20250711035106.2540522-1-Penny.Zheng@amd.com>
 <20250711035106.2540522-12-Penny.Zheng@amd.com>
 <a11aa19e-a151-469b-a58d-bc31fc4d7e01@suse.com>
In-Reply-To: <a11aa19e-a151-469b-a58d-bc31fc4d7e01@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-08-04T08:09:36.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|PH7PR12MB8825:EE_
x-ms-office365-filtering-correlation-id: f709049a-8db9-4b3a-8833-08ddd32e45da
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|376014|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?Y0l3ZGNGaVpyTVdxRDNwemg3dU1nZFp6VVNHWURNVzJPQjFzM0NrTVdFWGxF?=
 =?utf-8?B?dTF6TE53WkoyUU1udzFkVTFIQjJwU0FzUzBoZEtETy9VR1lZbFJ3ODZ3ZHNU?=
 =?utf-8?B?UDdCK2lVWG1hMXE5d1cvdkVYQXZvaFcxelRJOGs4SjY5NUZEMjBvOGJwZVBB?=
 =?utf-8?B?a0pQbElYNmNYck1wTXJBZlJ5SDRVdXV3MVhHbm10eFU4OUFZOVJ4dFVVREs3?=
 =?utf-8?B?MjRtWVg5d1FMZGZrbU0vTXExYWpPWFZMUVkrQmpDS1U5L0JjZzdWU2JTNEov?=
 =?utf-8?B?NVJqSFhNNzV2amxSSmJRaUNxayt3L3hxcTJzdVB2ZjNZbHdhalNHbHlRZHRG?=
 =?utf-8?B?YzdVQldrdUVvMVd1NE1Eb3RlckEzM2ZjbklEOHRoblgzOTMrQlRjTTFOY01S?=
 =?utf-8?B?bm5jWDJZenRCSnZvL2RMdVhnNzNHNytscFRDemdsd3NsWU5EdkVHaU5rTlpw?=
 =?utf-8?B?bElhM1JLclY0RFlzbXV5bEFzSUM1ZHBrc2NJNWVSQWNzTGQ3WW1LTmRMRGxT?=
 =?utf-8?B?aTYwNThkL05HY3VKd2VENFUxUG5SV2JjSGUvMlg4Qi9DTzVzTTF5N1JmalRm?=
 =?utf-8?B?MU8wQmxua2NLdzRYZ3ozUm5MWTh0dHl2L05Jc1dHUnFlTDJSRUN2cFNnSGt2?=
 =?utf-8?B?a09mKzRLME5EYUhZeUVNZUt2Wm5Dd3RJTnBvQWRkOEF0MEpWYjdvdFdnNTBU?=
 =?utf-8?B?Q0VpNGdqMEJtNkt1RDFrNUpsVjBtVWU2U3NMWWw4NmRrWWxmOHdZc2cvS25O?=
 =?utf-8?B?TnhhcDlyK3E1WEg3bXR0TVNXbVVXeTNQZjV0YUZicTNYS0ZKOUxFd2cveVdP?=
 =?utf-8?B?YzFpZFB6akFscDcwbm40Ym9hbWN1cGxXMFRqUU4wbTBqOVZQcTJGOFAzNXZ1?=
 =?utf-8?B?WklyTlVYVXRzSlZvTC90em9XUFl6bkNnTVVpemdVYTNSd0U5eVNTNG92ZnAr?=
 =?utf-8?B?bEJjdFVSdEUwSkFQUjhqeFJvdXhuWkpGS0VHL2FBVTVWUXVFTHIwcFg5ZE9v?=
 =?utf-8?B?Mnc2dUlQNTVJd0tmZ0Znek8ySktwMnByVDNKL0VBWDZLNHl4bHZLTlNIUjUr?=
 =?utf-8?B?UE5zRm5RSzZpTXFUOEpGb2FYYVJkeWlBRGZIKzlwQWNSNEpYMUozeGNlRzFI?=
 =?utf-8?B?alRsRi9KVTI3dXc2ZkVDYWVjcFZQRktDN2d0dWkvVTk5REl0L05jcmtIT0pN?=
 =?utf-8?B?TDByUFBVRXA0eGYrOHFWeDlBNW9XUzdxSjN1NU1sOEV6U3JjR2tkZjlEZHZK?=
 =?utf-8?B?enU0bHRCcEt4d2pwcVZDUWFWWGVVV3lleU9vT1daNHpnZ2ptNFJqMjVGK1VQ?=
 =?utf-8?B?eVdlcTg3RnpFSENpekdVc1FQQzU2SE03WXY1K2FpWnUrcm9lSWJWY081NHQr?=
 =?utf-8?B?VWZyU1VOT1U3dHp6Y0ZMY29JRkdES1QzaUxPS2cwODVLUFpiT00yOHljSVhy?=
 =?utf-8?B?bUpJU0Rqb3ZDeUVIck1KcnYzaVc4clFmYUdVSm1zRmlyem5PUnFQd0JsVDNW?=
 =?utf-8?B?eTFobVc0NzEveDZZVVk1MHNSSUFqQWZza252UU9pc3pialJBOVRacDJlV0My?=
 =?utf-8?B?VVhTVmtOT3lHc0g2RlU3L0xsYmJRNDN2UUdwNDZFWTBJMTV4bHoyMmY4SGZB?=
 =?utf-8?B?TFhTbktoeHZUNlJnRFRWdHQ3dnBRVytwL0p0ZTlNa0I3cDJzakdNMjZIRmVK?=
 =?utf-8?B?NjgxZjB1M2ZMWXR2SVNLdXR1U1Z0YmJpSVMzck5hTDBzMmF6a1FjWFdkUG51?=
 =?utf-8?B?dmpXYVFiTmFHTGtDTWRTUWpnem9qWEVGclVta1JUY2NVT1FUREVFcXJiK0VN?=
 =?utf-8?B?T29OSmxoampXaEhXRmZZcGtNOTJNT1phUkxMSmIxV1BCNElhWUIwV2dFUERZ?=
 =?utf-8?B?Uy8wQXRHakF3VCtBUFM4QTNvTzdDZEo4TnVNbDdwQW5HQldZUVkwRnVXWXU1?=
 =?utf-8?B?UGkwRVY4VjdFL052dUFndjZFZXVnVGpEanE0bGl3TW80dWZwVitLWWsrMUdh?=
 =?utf-8?Q?lbJroeALk4DI25PqqbGvcBkXS69UW4=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?em5nVGZqckRSMFk3aXA5enlnN0gzRU1jWkxNNkdNejY4aGxhTWpQQXVBdmtw?=
 =?utf-8?B?eWUxUlRZRndxMWZXdTIvSXRMdU1qOTVSQ0RQR1pQNTQzbUxxWXV0Q3hSK0Nr?=
 =?utf-8?B?Qk9LMGZZM00zMnFqUE0xY2gvQjFXdVhSUXRNa2ZocG5waHN6OGFtZFBVVTlx?=
 =?utf-8?B?QzNJWDl1czQrZjc2R2hUMXMyUUdpNytDTjRhRStwZDB3L2lrNWpPYzN2cDl6?=
 =?utf-8?B?bzgvOUFMcFJsUE1xUmtZcnB3SnNoTU1Yc1BDbFFxbXQ5bGNPdjV0ZTFRdXFy?=
 =?utf-8?B?VzZVL2F1akR0UXlnN2liWitiSFpDSHFHM2RRK1ZsRjdoWDdmQ0FnZmcwVzVF?=
 =?utf-8?B?RVlMb1FDYmR0dzlOSTFYNHMxQ0dVZGFvamJGUWh5aHA0dHIxZG0rYWJtUUVX?=
 =?utf-8?B?eTFLR3NQNW91ci8va1dnYnBURm43aHJ1d25uZ2lPQUl0eWZMWVl5QnB1dENF?=
 =?utf-8?B?OGhpUXZMMEZodGRRc0ltdUMrM0poSnBwS2U1Rk5pdG10ME5aQmJ5MjFFSTQ4?=
 =?utf-8?B?VXJXZnpFZXJROU9pVmFEVHh6NzV3UEQvUzllQXhHeUhsdXp0QXNLWGd1MlIx?=
 =?utf-8?B?ZGJWMkZjeGQybzY0OVhZbHBZcGFoaFNDZzNGZ1VzSzBuYlRob1JScExpQWh3?=
 =?utf-8?B?bGlFbFA3Ymdvd2pZWWNBSkFrTE80T0tKL0J4cWYyajRPdk1PUkdhMy9FTGlM?=
 =?utf-8?B?RzM0VTFKc1ZiVGFzbWsrbmtTbVN5dTBlUTJFcmJoakdoWXVvUjJFM0RoZnJo?=
 =?utf-8?B?aFVPd2EzWmxaV1pxcjhmdTNZV2dBYXZFY1JUYW9Edlp6clc4WlZPNGx5NXE3?=
 =?utf-8?B?dmtjWXdnTTNnWUs1TTM1NjlKSzBhVUNtWTIrb1I1YnMwQXN5OGhFMmJTaU10?=
 =?utf-8?B?SkZlOUhNWnJxM3hteWowaXhIYzM1c05NU3NONTVPTVhkaWRVdlcwMGtBa2c4?=
 =?utf-8?B?akNVY2FSZXVRWmFMRG1qNzRZeitLenlTY05qSU0vZXloM1kreFFvSUxsV0tt?=
 =?utf-8?B?V2luVUgyd3V6UVp6c3BiUkxBZEkrY3lDalQ1RmNEMVBVVzErTS8xQjJ4Nmgx?=
 =?utf-8?B?K2d6ckUyWDBXcjN5UEVuTDJWdXZzTVNrSVNwTzYra0MwWDRLZXBaOWI2OVBR?=
 =?utf-8?B?TGZlZzg1cWNTS1VKMGtrem04a0F5Nk94d3ZPQTRCNHNVTGdyaG9Nd0ZGK2sv?=
 =?utf-8?B?MTB5R2xFbWpYRWVNc0NlREZ6d21BL0YxMDIyQzUzVGRjUHhrUlV6cWFVVWNL?=
 =?utf-8?B?MTFVb1MwNy9BWXQyOTlYd2wveHo4Qk1CaUh0Z2luZUJmVE85U1UycVRGcXYw?=
 =?utf-8?B?bzY1NDdWS2xFZ3o4TlIzemE5aS9wWXM3NGZyUVk5L3M0REZOYnNCWlNobDJM?=
 =?utf-8?B?Qjk3S0VXT0NIWGhpL2xZSjJQQldTWmxwVDhNU2ZGZ21vYnlpOHYvWGp6eXVx?=
 =?utf-8?B?M09ZejVmUUxVVVcrMTdRbzdPUmlub2k3cURhV2pSVkJZSFNaUm9NdjVvWHQ3?=
 =?utf-8?B?RC8zbERuVVRSbklVZXlROTBWaDZneEoyeXZITEthczBEeXlFQ21WSDZqaG1t?=
 =?utf-8?B?UGtXTm9FTXNlZzNCS1RCRW9WRDVOeS9ISFVwTjVzb0hybGhiSEVxRFdRQ29E?=
 =?utf-8?B?eUUyT3lFSDl0bi9FTUFsblVDcnJVOHFxTkdJVVZZRHFUM29NcEF0OWpNcGFp?=
 =?utf-8?B?aW94VWRMcFNYWlg5N2hSQWd3eS8zL1pDdTVNcHFwMHpWSU14T3ZaRW5MNnZu?=
 =?utf-8?B?OUNRWllZZWhEdFJkZDVLUE5PZjBzVUNWN0VBTUU4eGFyZkg4U0pLTWExQmc4?=
 =?utf-8?B?RzFZS3FJMWVWWDhWbEVzdWp5Skx5UXJtUVVwcjJCcUxUQ3VITGtHMHRFblJk?=
 =?utf-8?B?MEltWTE5SWF1NVFMRDNMNzk0ZTh6RHZPcDBETUdkakRCdk5JU2RsTVZXTXRH?=
 =?utf-8?B?QjZVT0ZIdXJZN0w4Sytnc2pQanF4bFdDNEI1VHJHcEV0WFdIWUNaN1NFUlR3?=
 =?utf-8?B?b28xajNBRTkyK3FmTXllaTRSUGVraE1uUEJ4dUZXM2lZRDBwSVlOYXNtN3Nh?=
 =?utf-8?B?T0VDQlViZDZFNVFUbFFUU0Exc1VuZUFuQzYwSjZ4LzFJL0puSUtMaThrYTdJ?=
 =?utf-8?Q?My48=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f709049a-8db9-4b3a-8833-08ddd32e45da
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Aug 2025 08:09:45.0159
 (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: mYrmTZmy2Gq9fjclZQu8HGVKq4o/syegOJ447R8fYi9J6HfRxh3Rj4X7YxVlQkv+S3qVOqa124DVuJ8fZWTLag==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB8825

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFRodXJzZGF5LCBKdWx5IDE3LCAyMDI1
IDEyOjAwIEFNDQo+IFRvOiBQZW5ueSwgWmhlbmcgPHBlbm55LnpoZW5nQGFtZC5jb20+DQo+IENj
OiBIdWFuZywgUmF5IDxSYXkuSHVhbmdAYW1kLmNvbT47IEFuZHJldyBDb29wZXINCj4gPGFuZHJl
dy5jb29wZXIzQGNpdHJpeC5jb20+OyBBbnRob255IFBFUkFSRCA8YW50aG9ueS5wZXJhcmRAdmF0
ZXMudGVjaD47DQo+IE9yemVsLCBNaWNoYWwgPE1pY2hhbC5PcnplbEBhbWQuY29tPjsgSnVsaWVu
IEdyYWxsIDxqdWxpZW5AeGVuLm9yZz47IFJvZ2VyIFBhdQ0KPiBNb25uw6kgPHJvZ2VyLnBhdUBj
aXRyaXguY29tPjsgU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPjsg
eGVuLQ0KPiBkZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBTdWJqZWN0OiBSZTogW1BBVENI
IHY2IDExLzE5XSB4ZW4veDg2OiBpbnRyb2R1Y2UgImNwdWZyZXE9YW1kLWNwcGMiIHhlbiBjbWRs
aW5lDQo+IGFuZCBhbWQtY3BwYyBkcml2ZXINCj4NCj4gT24gMTEuMDcuMjAyNSAwNTo1MCwgUGVu
bnkgWmhlbmcgd3JvdGU6DQo+ID4gLS0tIGEveGVuL2FyY2gveDg2L2FjcGkvY3B1ZnJlcS9jcHVm
cmVxLmMNCj4gPiArKysgYi94ZW4vYXJjaC94ODYvYWNwaS9jcHVmcmVxL2NwdWZyZXEuYw0KPiA+
IEBAIC0xMjgsMTIgKzEyOCwxNCBAQCBzdGF0aWMgaW50IF9faW5pdCBjZl9jaGVjaw0KPiA+IGNw
dWZyZXFfZHJpdmVyX2luaXQodm9pZCkNCj4gPg0KPiA+ICAgICAgaWYgKCBjcHVmcmVxX2NvbnRy
b2xsZXIgPT0gRlJFUUNUTF94ZW4gKQ0KPiA+ICAgICAgew0KPiA+ICsgICAgICAgIHVuc2lnbmVk
IGludCBpID0gMDsNCj4NCj4gUG9pbnRsZXNzIGluaXRpYWxpemVyOyBib3RoIGZvcigpIGxvb3Bz
IHNldCBpIHRvIDAuIEJ1dCBhbHNvIHNlZSBmdXJ0aGVyIGRvd24uDQo+DQo+ID4gQEAgLTE1Nyw5
ICsxNjQsNzAgQEAgc3RhdGljIGludCBfX2luaXQgY2ZfY2hlY2sNCj4gPiBjcHVmcmVxX2RyaXZl
cl9pbml0KHZvaWQpDQo+ID4NCj4gPiAgICAgICAgICBjYXNlIFg4Nl9WRU5ET1JfQU1EOg0KPiA+
ICAgICAgICAgIGNhc2UgWDg2X1ZFTkRPUl9IWUdPTjoNCj4gPiAtICAgICAgICAgICAgcmV0ID0g
SVNfRU5BQkxFRChDT05GSUdfQU1EKSA/IHBvd2Vybm93X3JlZ2lzdGVyX2RyaXZlcigpIDogLQ0K
PiBFTk9ERVY7DQo+ID4gKyAgICAgICAgICAgIGlmICggIUlTX0VOQUJMRUQoQ09ORklHX0FNRCkg
KQ0KPiA+ICsgICAgICAgICAgICB7DQo+ID4gKyAgICAgICAgICAgICAgICByZXQgPSAtRU5PREVW
Ow0KPiA+ICsgICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4gKyAgICAgICAgICAgIH0NCj4gPiAr
ICAgICAgICAgICAgcmV0ID0gLUVOT0VOVDsNCj4NCj4gVGhlIGNvZGUgc3RydWN0dXJlIGlzIHN1
ZmZpY2llbnRseSBkaWZmZXJlbnQgZnJvbSB0aGUgSW50ZWwgY291bnRlcnBhcnQgZm9yIHRoaXMg
dG8NCj4gcGVyaGFwcyBiZXR0ZXIgbW92ZSAuLi4NCj4NCj4gPiArICAgICAgICAgICAgZm9yICgg
aSA9IDA7IGkgPCBjcHVmcmVxX3hlbl9jbnQ7IGkrKyApDQo+ID4gKyAgICAgICAgICAgIHsNCj4g
PiArICAgICAgICAgICAgICAgIHN3aXRjaCAoIGNwdWZyZXFfeGVuX29wdHNbaV0gKQ0KPiA+ICsg
ICAgICAgICAgICAgICAgew0KPiA+ICsgICAgICAgICAgICAgICAgY2FzZSBDUFVGUkVRX3hlbjoN
Cj4gPiArICAgICAgICAgICAgICAgICAgICByZXQgPSBwb3dlcm5vd19yZWdpc3Rlcl9kcml2ZXIo
KTsNCj4gPiArICAgICAgICAgICAgICAgICAgICBicmVhazsNCj4gPiArDQo+ID4gKyAgICAgICAg
ICAgICAgICBjYXNlIENQVUZSRVFfYW1kX2NwcGM6DQo+ID4gKyAgICAgICAgICAgICAgICAgICAg
cmV0ID0gYW1kX2NwcGNfcmVnaXN0ZXJfZHJpdmVyKCk7DQo+ID4gKyAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7DQo+ID4gKw0KPiA+ICsgICAgICAgICAgICAgICAgY2FzZSBDUFVGUkVRX25vbmU6
DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgcmV0ID0gMDsNCj4gPiArICAgICAgICAgICAgICAg
ICAgICBicmVhazsNCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAgICBkZWZhdWx0Og0KPiA+ICsg
ICAgICAgICAgICAgICAgICAgIHByaW50ayhYRU5MT0dfV0FSTklORw0KPiA+ICsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiVW5zdXBwb3J0ZWQgY3B1ZnJlcSBkcml2ZXIgZm9yIHZlbmRvciBB
TUQgb3IgSHlnb25cbiIpOw0KPiA+ICsgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KPg0KPiAu
Li4gaGVyZS4NCj4NCg0KQXJlIHdlIHN1Z2dlc3RpbmcgbW92aW5nDQoiDQogICAgICAgIGlmICgg
IUlTX0VOQUJMRUQoQ09ORklHX0FNRCkgKQ0KICAgICAgICB7DQogICAgICAgICAgICAgICAgcmV0
ID0gLUVOT0RFVjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KIiBoZXJlPyBJ
biB3aGljaCBjYXNlLCBXaGVuIENPTkZJR19BTUQ9biBhbmQgdXNlcnMgZG9lc24ndCBwcm92aWRl
ICJjcHVmcmVxPXh4eCIsIHdlIHdpbGwgaGF2ZSBjcHVmcmVxX3hlbl9jbnQgaW5pdGlhbGl6ZWQg
YXMgMSBhbmQgY3B1ZnJlcV94ZW5fb3B0c1swXSA9IENQVUZSRVFfeGVuLiBwb3dlcm5vd19yZWdp
c3Rlcl9kcml2ZXIoKSBoZW5jZSBnZXRzIGludm9rZWQuIFRoZSB0aGluZyBpcyB0aGF0IHdlIGRv
bid0IGhhdmUgc3R1YiBmb3IgaXQgYW5kIGl0IGlzIGNvbXBpbGVkIHVuZGVyIENPTkZJR19BTUQN
Ckkgc3VnZ2VzdCB0byBjaGFuZ2UgdG8gdXNlICNpZmRlZiBDT05GSUdfQU1EIGNvZGUgd3JhcHBp
bmcNCg0KPiA+ICsgICAgICAgICAgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgICAgICAgICAg
IGlmICggIXJldCB8fCByZXQgPT0gLUVCVVNZICkNCj4gPiArICAgICAgICAgICAgICAgICAgICBi
cmVhazsNCj4gPiArICAgICAgICAgICAgfQ0KPiA+ICsNCj4gPiAgICAgICAgICAgICAgYnJlYWs7
DQo+ID4gICAgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgICAvKg0KPiA+ICsgICAgICAgICAq
IEFmdGVyIHN1Y2Nlc3NmdWwgY3B1ZnJlcSBkcml2ZXIgcmVnaXN0ZXJhdGlvbiwNCj4gWEVOX1BS
T0NFU1NPUl9QTV9DUFBDDQo+ID4gKyAgICAgICAgICogYW5kIFhFTl9QUk9DRVNTT1JfUE1fUFgg
c2hhbGwgYmVjb21lIGV4Y2x1c2l2ZSBmbGFncy4NCj4gPiArICAgICAgICAgKi8NCj4gPiArICAg
ICAgICBpZiAoICFyZXQgKQ0KPiA+ICsgICAgICAgIHsNCj4gPiArICAgICAgICAgICAgQVNTRVJU
KGkgPCBjcHVmcmVxX3hlbl9jbnQpOw0KPiA+ICsgICAgICAgICAgICBzd2l0Y2ggKCBjcHVmcmVx
X3hlbl9vcHRzW2ldICkNCj4NCj4gSG1tLCB0aGlzIGlzIHVzaW5nIHRoZSB0aGUgaW5pdGlhbGl6
ZXIgb2YgaSB0aGF0IEkgY29tbWVudGVkIG9uLiBJIHRoaW5rIHRoZXJlJ3MNCj4gYW5vdGhlciBk
ZWZhdWx0OiBjYXNlIG1pc3NpbmcsIHdoZXJlIHlvdSBzaW1wbHkgInJldHVybiAwIiAodG8gcmV0
YWluIHByaW9yIGJlaGF2aW9yKS4NCj4gQnV0IGFnYWluIHNlZSBhbHNvIHlldCBmdXJ0aGVyIGRv
d24uDQo+DQo+DQo+ID4gKyAgICAgICAgICAgIC8qDQo+ID4gKyAgICAgICAgICAgICAqIE5vIGNw
dWZyZXEgZHJpdmVyIGdldHMgcmVnaXN0ZXJlZCwgY2xlYXIgYm90aA0KPiA+ICsgICAgICAgICAg
ICAgKiBYRU5fUFJPQ0VTU09SX1BNX0NQUEMgYW5kIFhFTl9QUk9DRVNTT1JfUE1fUFgNCj4gPiAr
ICAgICAgICAgICAgICovDQo+ID4gKyAgICAgICAgICAgICB4ZW5fcHJvY2Vzc29yX3BtYml0cyAm
PSB+KFhFTl9QUk9DRVNTT1JfUE1fQ1BQQyB8DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFhFTl9QUk9DRVNTT1JfUE1fUFgpOw0KPg0KPiBZZXQgbW9yZSBobW0g
LSB0aGlzIHBhdGggeW91IHdhbnQgdG8gZ2V0IHRocm91Z2ggZm9yIHRoZSBjYXNlIG1lbnRpb25l
ZCBhYm92ZS4NCj4gQnV0IG9ubHkgdGhpcyBjb2RlOyBzcGVjaWZpY2FsbHkgbm90IHRoZSAic3dp
dGNoICggY3B1ZnJlcV94ZW5fb3B0c1tpXSApIiwgd2hpY2ggcmVhbGx5DQo+IGlzICJzd2l0Y2gg
KCBjcHVmcmVxX3hlbl9vcHRzWzBdICkiIGluIHRoYXQgY2FzZSwgYW5kIHRoYXQncyBwcmV0dHkg
Y2xlYXJseSB3cm9uZyB0bw0KPiBldmFsdWF0ZSBpbiB0aGVuLg0KPg0KDQpDb3JyZWN0IG1lIGlm
IEkgdW5kZXJzdGFuZCB5b3Ugd3JvbmdseToNClRoZSBhYm92ZSAiY2FzZSBtaXNzaW5nIiAsIGFy
ZSB3ZSB0YWxraW5nIGFib3V0IGlzIGVudGVyaW5nICJjYXNlIENQVUZSRVFfbm9uZSIgPw0KSU1P
LCBpdCBtYXkgbmV2ZXIgYmUgZW50ZXJlZC4gSWYgdXNlcnMgZG9lc24ndCBwcm92aWRlICJjcHVm
cmVxPXh4eCIsIHdlIHdpbGwgaGF2ZSBjcHVmcmVxX3hlbl9jbnQgaW5pdGlhbGl6ZWQgYXMgMSBh
bmQgY3B1ZnJlcV94ZW5fb3B0c1swXSA9IENQVUZSRVFfeGVuLiBUaGF0IGlzLCB3ZSB3aWxsIGhh
dmUgcHggc3RhdGVzIGFzIGRlZmF1bHQgZHJpdmVyLiBFdmVuIGlmIHdlIGhhdmUgZmFpbGVkIHB4
LWRyaXZlciBpbml0aWFsaXphdGlvbiwgd2l0aCBjcHVmcmVxX3hlbl9jbnQgbGltaXRlZCB0byAx
LCB3ZSB3aWxsIG5vdCBlbnRlciBDUFVGUkVRX25vbmUuDQpDUFVGUkVRX25vbmUgb25seSBjb3Vs
ZCBiZSBzZXQgd2hlbiB1c2VycyBleHBsaWNpdGx5IHNldCAiY3B1ZnJlcT1kaXNhYmxlZC9ub25l
LzAiLCBidXQgaW4gd2hpY2ggY2FzZSwgY3B1ZnJlcV9jb250cm9sbGVyIHdpbGwgYmUgc2V0IHdp
dGggRlJFUUNUTF9ub25lLiBBbmQgdGhlIHdob2xlIGNwdWZyZXFfZHJpdmVyX2luaXQoKSBpcyB1
bmRlciAiIGNwdWZyZXFfY29udHJvbGxlciA9PSBGUkVRQ1RMX3hlbiAiIGNvbmRpdGlvbg0KT3Ig
ImNhc2UgbWlzc2luZyIgaXMgcmVmZXJyaW5nIGVudGVyaW5nIGRlZmF1bHQgY2FzZT8gSW4gd2hp
Y2ggY2FzZSwgd2Ugd2lsbCBoYXZlIC1FTk9FTlQgZXJybm8uIEFzIHdlIGhhdmUgcmV0PS1FTk9F
TlQgaW4gdGhlIHZlcnkgYmVnaW5uaW5nDQoNCj4gSmFuDQo=


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 08:11:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 08:11:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068905.1432766 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiqHW-0002HG-DZ; Mon, 04 Aug 2025 08:10:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068905.1432766; Mon, 04 Aug 2025 08:10: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 1uiqHW-0002H9-9j; Mon, 04 Aug 2025 08:10:54 +0000
Received: by outflank-mailman (input) for mailman id 1068905;
 Mon, 04 Aug 2025 08:10:53 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=c2vN=2Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uiqHV-0000kE-Aj
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 08:10:53 +0000
Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com
 [2a00:1450:4864:20::52d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 89db7b3e-710a-11f0-a321-13f23c93f187;
 Mon, 04 Aug 2025 10:10:52 +0200 (CEST)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-615c29fc31eso6277241a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 01:10:52 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-615a8effda1sm6412785a12.1.2025.08.04.01.10.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Aug 2025 01:10: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>
X-Inumbo-ID: 89db7b3e-710a-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754295052; x=1754899852; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=hqxcAycwW6jREDVQC4ZBaPk+EjKbTlU1RZEony0lA8s=;
        b=NWr2pKOzGoBAkmLVSvoxR9LegS/wTzeUtxVLthBBBguuOm2lV147cInPnmso6kTSAo
         G5KgjUCTWmdK98eEJlP6mB0/gvwklzU+iRLqQ+nCOL3VT1thDpxOEAwvS/hMIAHRYr9Z
         mPY/hNoeEjJn9DOpdC8V0KZhtVdV9vrZDtBJ6qDBGMw0ROo4jxpoN1ReoUVmpJZunhyO
         tnNE5JHw2VY5phZJjoQSrud2oDiBaG9aDltX2AlLRe3ZZm2xxvBwokJg9MAeunJQLbtX
         /76mawJZT6khzEJhWpwSdqpFwTYtJZluk5xmQCgNyos54eVBZqnoQ3kLJh2rjXyelTMu
         aAHw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754295052; x=1754899852;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hqxcAycwW6jREDVQC4ZBaPk+EjKbTlU1RZEony0lA8s=;
        b=dy3SOrD31aoziVVED9Q+/NrTv3T/EBuFui8ZrZlmc0om/kWL33CO/1p5Mc1MKGLImd
         6eRVylopoYl7k5a3k5Sy5tBddL3GhWmEB9bViaBTFNKK8AVH0lreBgRkFsBjS4C9bkjn
         2NEwC8joHBPE/ZwWGsi7G3ued8w6EnKK4Qu37fwuHqA827iLMOdKwQqwg1N/m0sU0/5m
         M55PtzB2s+qOJt1h6fiQD78QFISdDf6Kg54YMCrhHbCqNZ6TM8784iYJVCIMDU4nxG4d
         mDmw+ZSjzruJgRFQFUTzZakA/wiDHPeDFqKNdUQWpNA0dFjhQNID7UY3fBEbShuShI+h
         /+Tg==
X-Forwarded-Encrypted: i=1; AJvYcCVDHYa9rRjNHQzMTcwei7oYuOnFsnZostPS4fxem+n0euyMZAi8AcW6iRpj5Q4O7FDG6f6tyBGfAVo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwdeSylMazpx84uDBXfuBH9g6SoZq97+knCxVgOxw/pLhsAuR1r
	USnLjyC7ulTIr9pzqyWFhbH3ZQuiS2EyT3PA4rd3upb1pJ3nx2kbzyr+w8a/Pf53pg==
X-Gm-Gg: ASbGnctbEmkZ1iIISmDx/zAf2TBXQXu9tUQJLK0sY14NJygmQf59fwL0qsE/6pXb/o9
	0GmXIWjYCfpDSW7ISa5VNrRknv6qKmLWgEXLa9rbK/EdPk/V0ksNAt6SM+itJZ1czsd5m5VZ02F
	YK3f0mTm+Qphhj2OyOGAn5HXzSz6ufWridHNyPzR2+bCLS0HjcJQn4xYKDhapd4qrBSUn/PvT7b
	NOgda7v1PVqANMW9hOeUOK6YUBCskjd7+bIJ603+XsdlbuMAs9NFMn3X7/K+w4H8a9HLob+YeA8
	7ccZ8BS4NL0lzaXUa5oGjaNmNiYoHN1nRm2Ygxt9qw55Tg+jMGgIEIAdmtuluax9ELOYXE8db0E
	hqmZcOy2YizU27nL9LtlMFU4PG+JiOG27tzqn6VcvUevONzvAMrFxRC1NlJTr1Vy8fysQVcYgo1
	KTuWJV8lEM3WJu3JhmFA==
X-Google-Smtp-Source: AGHT+IEBQISzXP/6B35rUZqNFNgjUUDNsTKEZ2yH/7hGami6THUDsyjGE4OO30iwT+FipuVYHgZQ+g==
X-Received: by 2002:a05:6402:510d:b0:612:a507:5b23 with SMTP id 4fb4d7f45d1cf-615e6ed2c68mr7456566a12.11.1754295051954;
        Mon, 04 Aug 2025 01:10:51 -0700 (PDT)
Message-ID: <2464e97d-e950-4645-9aa9-5c2cddab72b2@suse.com>
Date: Mon, 4 Aug 2025 10:10:52 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 1/3] arm/pci: Add pci-scan boot argument
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: Edward Pickup <Edward.Pickup@arm.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>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Luca Fancellu <luca.fancellu@arm.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1753968306.git.mykyta_poturai@epam.com>
 <98c8889e07d6c82067309d8458e15dd52145b467.1753968306.git.mykyta_poturai@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <98c8889e07d6c82067309d8458e15dd52145b467.1753968306.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.08.2025 11:22, Mykyta Poturai wrote:
> From: Edward Pickup <Edward.Pickup@arm.com>
> 
> This patch adds a Xen boot arguments that, if enabled, causes a call to
> existing code to scan pci devices enumerated by the firmware.
> 
> This patch also makes an existing debug function viewable outside its
> translation unit, and uses this to dump the PCI devices found.
> The debug message is controlled by config DEBUG.
> 
> Additionally, this patch modifies segment loading to ensure that PCI
> devices on other segments are properly found.
> 
> This will be needed ahead of dom0less support for pci passthrough on
> arm.
> 
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> Signed-off-by: Edward Pickup <Edward.Pickup@arm.com>

Considering the From: above and this order of S-o-b: Who is it really that
was the original author here?

> --- a/xen/arch/arm/include/asm/pci.h
> +++ b/xen/arch/arm/include/asm/pci.h
> @@ -23,6 +23,7 @@
>  #define pci_to_dev(pcidev) (&(pcidev)->arch.dev)
>  
>  extern bool pci_passthrough_enabled;
> +extern bool pci_scan_enabled;

With the variable non-static, ...

> @@ -128,6 +129,11 @@ static always_inline bool is_pci_passthrough_enabled(void)
>      return pci_passthrough_enabled;
>  }
>  
> +static inline bool is_pci_scan_enabled(void)
> +{
> +    return pci_scan_enabled;
> +}
> +
>  void arch_pci_init_pdev(struct pci_dev *pdev);
>  
>  int pci_get_new_domain_nr(void);
> @@ -155,6 +161,11 @@ bool arch_pci_device_physdevop(void);
>  
>  #else   /*!CONFIG_HAS_PCI*/
>  
> +static inline bool is_pci_scan_enabled(void)
> +{
> +    return false;
> +}

... what's the point of the wrappers? Constrain the variable as such to
HAS_PCI=y, and use "#define pci_scan_enabled false" in the opposite case.
Just like we do elsewhere in a number of cases.

> --- a/xen/arch/arm/pci/pci.c
> +++ b/xen/arch/arm/pci/pci.c
> @@ -91,8 +91,13 @@ bool arch_pci_device_physdevop(void)
>  bool __read_mostly pci_passthrough_enabled;
>  boolean_param("pci-passthrough", pci_passthrough_enabled);
>  
> +/* By default pci scan is disabled. */
> +bool __read_mostly pci_scan_enabled;

__ro_after_init?

> +boolean_param("pci-scan", pci_scan_enabled);
> +
>  static int __init pci_init(void)
>  {
> +    int ret;
>      /*

Nit: Blank line please between declaration(s) and statement(s).

> @@ -104,9 +109,26 @@ static int __init pci_init(void)
>          panic("Could not initialize PCI segment 0\n");
>  
>      if ( acpi_disabled )
> -        return dt_pci_init();
> +        ret = dt_pci_init();
>      else
> -        return acpi_pci_init();
> +        ret = acpi_pci_init();
> +
> +    if ( ret < 0 )
> +        return ret;
> +
> +    if ( is_pci_scan_enabled() )
> +    {
> +        ret = scan_pci_devices();
> +
> +        if ( ret < 0 )
> +            return ret;
> +
> +#ifdef DEBUG
> +        dump_pci_devices('c');
> +#endif

If I was a maintainer of this code, I would request such to be dropped.
Or if there was a good reason to have such, I think it would want to be
arch-independent.

> --- a/xen/drivers/passthrough/pci.c
> +++ b/xen/drivers/passthrough/pci.c
> @@ -1384,7 +1384,7 @@ static int cf_check _dump_pci_devices(struct pci_seg *pseg, void *arg)
>      return 0;
>  }
>  
> -static void cf_check dump_pci_devices(unsigned char ch)
> +void cf_check dump_pci_devices(unsigned char ch)

Note the cf_check here. It, for some reason, ...

> --- a/xen/include/xen/pci.h
> +++ b/xen/include/xen/pci.h
> @@ -217,6 +217,7 @@ static always_inline bool pcidevs_trylock(void)
>  bool pci_known_segment(u16 seg);
>  bool pci_device_detect(u16 seg, u8 bus, u8 dev, u8 func);
>  int scan_pci_devices(void);
> +void dump_pci_devices(unsigned char ch);

... needs reproducing on the declaration. What about x86 though? It'll end up
as a non-static function with no caller outside of the defining CU, hence
violating some Misra rule.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 08:26:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 08:26:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068925.1432775 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiqWT-0004S7-QY; Mon, 04 Aug 2025 08:26:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068925.1432775; Mon, 04 Aug 2025 08:26: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 1uiqWT-0004S0-NV; Mon, 04 Aug 2025 08:26:21 +0000
Received: by outflank-mailman (input) for mailman id 1068925;
 Mon, 04 Aug 2025 08:26:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=c2vN=2Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uiqWR-0004Ru-QJ
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 08:26:19 +0000
Received: from mail-ej1-x631.google.com (mail-ej1-x631.google.com
 [2a00:1450:4864:20::631])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b15c2b28-710c-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 10:26:17 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-af8f5e38a9fso706529466b.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 01:26: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
 a640c23a62f3a-af938aa8275sm462991166b.57.2025.08.04.01.26.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Aug 2025 01:26: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>
X-Inumbo-ID: b15c2b28-710c-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754295977; x=1754900777; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=zzbJ4R48y9Crp9qGV5X/ShtJPGeeIWCQbX8njn+wAtc=;
        b=eFWgcFjueiHZx9SrhidnmnJTapykkIIGtCrqjUFMzglJ9C0FXOYj87qGmz1Ph7HyG3
         jlmC+5fO1TIwXw4iOsSNmKliDhdxXutlFEiBMpBzCwgP5C8xosYJCXBmmEowPJ3/w/J+
         PehaYWWkxRHrW4kmXuLKTvCQ17jqbund90I1udrBrtvN10uCQro55k0isHSppB+4sIP2
         LWkE7zeuNhtcmrtaVY7cCR9D7tLp2jqw3NQ1o2puTV7UTlW5tnO7xaTEFwuPtr50riME
         xhP/4d2zK2iY4G1oM9gSITglAUsOUb+8z//Az97aL80b5wip+UjhYKdypj+q8Aazn7Xp
         mJ1Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754295977; x=1754900777;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zzbJ4R48y9Crp9qGV5X/ShtJPGeeIWCQbX8njn+wAtc=;
        b=mr0YQx9oU6mMXAi/eqQ+KZaLXgLRkxPdTNgCQ+AzQlSXATkQIOvppG6c1F/nPLyR6h
         16/W2y6MDZbYhFkKniO4XagBZAfnsdusUoPt5z/YurHzHkiNrsVOxlvPZTE27YQprUpH
         xyufUaWpudjxLHlTO5pcjOXiLpiTKej5RFmXcb2ojniNooJAtb5wv3ZZO+5gd1wQ5JeG
         L2KfSRzb8/xGJiAS/0hIFOLNT7CMs6xaNDBHzmBRY0wtVTIKS74/fbmpowWxrKBJRnRK
         31cs6yT4gmv9Md+7LTUuqD84Bye8/V53Y+TUuac1wFXu+LB2oTvfD6ApI/CloGcvDspt
         qdwA==
X-Forwarded-Encrypted: i=1; AJvYcCWwO3pOCJ+PW+HvEQbhIx1PVro5gl0U9ip6d7WPRChoOra7Jei4X4XVPZWt6ymWTqZSj5DszfAsV+8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz7TSD7hOlYymq8FDvmbrI0VWOZenyUvK2FEd7xzYKPMLZUi3jz
	WiSW0qKpYfWtPFiQCTH5xJJlNggCf1iZ2mKXlC1n0a213FxpA6JwURbxJXvxhSXYlg==
X-Gm-Gg: ASbGnctqPUFh44NGUYG5ZEX4t+/njIDOETVkrwyUy4RxGNGmRZk38SZ4tUA3IhIQn2p
	HowRmePfKQyGc916YYKTYY0XPIYQvTlWpKqc9LvjkrldD3Z0g9Duv69udEm0eML48EL8SWeMKZH
	s9VNPThOFqR4v/lCdcc+QfHAEIASQSYCSuYVZF9UnoSm4F347rcpkYp/UOuCsXhUZusp0tj928u
	UVHdf2AM+DziOYBStpeEmpL+kTwVeb24pweR0Fvj8anKSXIg32CSZuJupMkUWjpbRZ8lorkuj4B
	jXuaVdhd0qzrzEqU7ul8aYWxcZurZv/jCnP3sz9qh4eBCG8KHTIFMwKX3N0SWc/Fl81yitY5g6C
	5PjBMcf0JrfZV6sKysrApMPPJElH+YHfxUd7YbNwKsvbZshh29/j6ikHE377N2BHpmNRf7W9TkB
	xVrg42xeI=
X-Google-Smtp-Source: AGHT+IH5yl6yyHkCRAZDJOdMJWfYAfylPNQnjas1tAc2/D3KNaq/BYw0Y5kW6Cpf4mEKaHQ1G9hXSA==
X-Received: by 2002:a17:907:2d93:b0:ad4:d00f:b4ca with SMTP id a640c23a62f3a-af9401f3c44mr897043966b.50.1754295977186;
        Mon, 04 Aug 2025 01:26:17 -0700 (PDT)
Message-ID: <0086c661-6365-4cb3-ae60-2d5bc86582c2@suse.com>
Date: Mon, 4 Aug 2025 10:26:18 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/3] xen/pci: modify pci_add_device to handle device
 add by Xen
To: Mykyta Poturai <Mykyta_Poturai@epam.com>,
 Luca Fancellu <luca.fancellu@arm.com>
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>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1753968306.git.mykyta_poturai@epam.com>
 <32cf834e95664805604b13d10bcaa857897f0890.1753968306.git.mykyta_poturai@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <32cf834e95664805604b13d10bcaa857897f0890.1753968306.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.08.2025 11:22, Mykyta Poturai wrote:
> From: Luca Fancellu <luca.fancellu@arm.com>
> 
> Currently pci_add_device is called from hypercalls requested by Dom0
> to add pci devices and when the device has no domain associated with
> it, it is assumed that hardware_domain is the owner.
> 
> On the dom0less scenario, the enumeration is performed by the
> firmware and Xen at boot time might want to assign some pci devices
> to guests, so it has to firstly add the device and then assign it to
> the final guest.
> 
> Modify pci_add_device to have the owner domain passed as a parameter
> to the function, so that when it is called from the hypercall the
> owner would be the hardware domain, otherwise when Xen is calling it,
> it would be another domain since hw domain could not be there
> (dom0less guests without Dom0 use case).
> 
> In pci_add_device there is a call to xsm that doesn't consider the
> requester of the function to be Xen itself, so add a check to skip
> the call if the owner domain is dom_io, since it means the call is
> coming directly from Xen.

I don't understand this particular aspect: All call sites pass
hardware_domain. Checking against dom_io therefore looks unnecessary, or
at least premature. In Misra's terms it is "dead code" that you add.

> --- a/xen/drivers/passthrough/pci.c
> +++ b/xen/drivers/passthrough/pci.c
> @@ -654,7 +654,7 @@ unsigned int pci_size_mem_bar(pci_sbdf_t sbdf, unsigned int pos,
>      return is64bits ? 2 : 1;
>  }
>  
> -int pci_add_device(u16 seg, u8 bus, u8 devfn,
> +int pci_add_device(struct domain *d, u16 seg, u8 bus, u8 devfn,
>                     const struct pci_dev_info *info, nodeid_t node)

For a pci_*() function I don't think it's appropriate to have a domain (not a
PCI domain, aka segment, which would be fine) as first parameter.

While you touch this it might also be nice if you switched u<N> to uint<N>_t.

> --- a/xen/drivers/pci/physdev.c
> +++ b/xen/drivers/pci/physdev.c
> @@ -50,7 +50,8 @@ ret_t pci_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>          }
>  #endif
>  
> -        ret = pci_add_device(add.seg, add.bus, add.devfn, &pdev_info, node);
> +        ret = pci_add_device(hardware_domain, add.seg, add.bus, add.devfn,
> +                             &pdev_info, node);

Here as well as in the x86-specific counterparts: Why hardware_domain, i.e.
why not current->domain? Yes, what you do is in line with how the code has
behaved so far, but now that you want to change it, it needs to be sorted
what it is that's really wanted. This btw also plays into the XSM aspect
that you're fiddling with.

Also, what if you end up passing NULL here in the dom0less case?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 08:29:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 08:29:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068936.1432786 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiqZK-00053I-D1; Mon, 04 Aug 2025 08:29:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068936.1432786; Mon, 04 Aug 2025 08:29: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 1uiqZK-00053B-9w; Mon, 04 Aug 2025 08:29:18 +0000
Received: by outflank-mailman (input) for mailman id 1068936;
 Mon, 04 Aug 2025 08:29:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=owTc=2Q=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1uiqZJ-000535-5u
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 08:29:17 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on2060f.outbound.protection.outlook.com
 [2a01:111:f403:2413::60f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1ac34c84-710d-11f0-a321-13f23c93f187;
 Mon, 04 Aug 2025 10:29:15 +0200 (CEST)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 PH7PR12MB7139.namprd12.prod.outlook.com (2603:10b6:510:1ef::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.17; Mon, 4 Aug
 2025 08:29:11 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d%7]) with mapi id 15.20.8989.018; Mon, 4 Aug 2025
 08:29: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>
X-Inumbo-ID: 1ac34c84-710d-11f0-a321-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dmLfBlKawHfVsyw3Jm1tk6I9skr0V0uGRmJmC6uwwcfOz1Bqu4j1inVuaM61H8BDxgdJ/NSEmALDjOdnuXue56BjX1P1f8w78dB/NAfPjqOsUhmP+XAEXzBqtkuiEn89XiCWRWuG9UUJH7eZ5kKcecTtUEZLrxALiqqdAAIo+H4O6gC1i1GS3JOWbzOffUmqs2gqiWzawgszdKLql6l9WnQRaOvDQwFrQcAhvlJWQ3MaOTlbgSbfukGDzpD8ra1McuZtKoL8ZnXUeslBeNNsN1T+SvrlqrZsdikS9ByI3gvM7DtLvDdcRsMICji0CIUejY271ePcnkRm0RzJt5b0TA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=YMC+cNg1cuk05Uw6D0cIVpXLmDasdBh0Km303e6AvN8=;
 b=cQHVxvQW/VVBjaWmCdaM/9+0wSMUYR8nIq/FqDrrXkgLXf7zczIopvWimhpJGtyo2q2C0Mp7WUb27tmow+8srTuvhVGacnhS+DQRk1V4JVVqsyPqk6q4VHh0CAR04W2Ih9Jz2soA2bxRXMklsNe1dhjA+N/sucfwOaCPB5oOu3YdipNAljhoATUBPRLv69zWri2Lt4Ngy46n1mkthXwva0D+eOhimCv/+J966wCtcUIp3nEL78eJ2qIPIe/8CWzEFAtT64PxAuO3rtLmeGFhvkjvxsxosNURGlu2xXu486G0RfoR3w4dk3FOGMHP8LPg1UdyVpoJXsIjeL+5kyqRpg==
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=YMC+cNg1cuk05Uw6D0cIVpXLmDasdBh0Km303e6AvN8=;
 b=cU7O8sZFMDic9g+ezKox2AwwAf8zX+rYspo+XXRvWd7FHot0OcX6tRjN+KnFjA1qGNnIG/amoH6izucD5ew5svSQ4Y1436FDzMSmRHq9qU6NV8iDTgq5hNkmGW0QWCmS/tuK6GinBl9+0etUYzceTLwWckY6ncPvq50WucnbxKk=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	"Orzel, Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Stefano
 Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v1 05/25] xen: introduce CONFIG_DOMCTL
Thread-Topic: [PATCH v1 05/25] xen: introduce CONFIG_DOMCTL
Thread-Index: AQHcBFvCe6jl5BDdFUqaZVGrjdEUNbRSHXyAgAAKwpA=
Date: Mon, 4 Aug 2025 08:29:11 +0000
Message-ID:
 <DM4PR12MB845118D11DCA4E169D294553E123A@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20250803094738.3625269-1-Penny.Zheng@amd.com>
 <20250803094738.3625269-6-Penny.Zheng@amd.com>
 <770f41e5-5d02-4358-8f91-e577f762cf58@suse.com>
In-Reply-To: <770f41e5-5d02-4358-8f91-e577f762cf58@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-08-04T08:24:51.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|PH7PR12MB7139:EE_
x-ms-office365-filtering-correlation-id: 0e785f94-7cc3-45e2-e85f-08ddd330fcfb
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?aWZ4YlB6UVdaS3VMM09HRFF5ZXFLdjVwdEtjcHRyVjF1eVY3bVN5SUlUbVRx?=
 =?utf-8?B?UDczbmZ3RTl5RHpoTGR6Tk9BdEJQZktGQ010dlRyNEFaOXY0dG11RGFTSXZB?=
 =?utf-8?B?Q1Q2VXBOZ0VqMUxTMUpSa2diS3BzeFVtQ2ZZR2laWWVCRGxaQkhISXE3QTRh?=
 =?utf-8?B?NEVBVFZaeExyT2crUzVoNCtpZlgvQk5QVTBDbVhPOHV3WnZuYlROQ1hHVUlp?=
 =?utf-8?B?UFhZWHlGeHdyTUNOSVlkdnhoTDgwWmZZSGR5bFNJT0trYmpGSjVTYTlEN3E5?=
 =?utf-8?B?NDh2OGY1djg5SnZGVHZvWkZpY1E1ZEZMNWh5elMwVzhsRldFYTRsOUhaTGRT?=
 =?utf-8?B?emFGYUR0ZTN0NHBuelVRZVVPeGFESkIxUU9pZ3JQb3dDa0VQY3hlQmVvc0JF?=
 =?utf-8?B?OThQRzRhS1ArTnoyQ1BFa2ZtMHRHa2xSRHJBeE93NEh3ZDdTQ0dlT3I3Z0VD?=
 =?utf-8?B?OFRmSXdidEtyWU5DNmxBLzE1M3h3VG9QeHBpOWloN0l1VWx4Z1JOaVlXNTht?=
 =?utf-8?B?ellkQ1lLVmFvRTNReHpNL3lrOFd4VG9ZVTFRMDNzdWY5SXJlMmc2WGx1bEVr?=
 =?utf-8?B?ak1BdFQrVWZOSTVhcFI0aWttMEJJdGR1bG1XbTRXR1FOOFZPYW13UWM4Y0Vq?=
 =?utf-8?B?M05DZkhQMFVTV0p0bzB2SnZpNE15bnUrS0ZBVm5RRW5JLzJwV3Zhd1RxWThT?=
 =?utf-8?B?cHJiZ0gwOWpDbXlra2hYTDlWK3NXanc1Q2x1S1o0VExqSW9WeklOZi9UUklD?=
 =?utf-8?B?c29laTdvTjlxKzdJbFd6MFNjSXVyRDhqR2QvUEFnbzVJVy9nTWtyUXIrRGx6?=
 =?utf-8?B?ekExVWQwU2EzcGtuN1Y2cjROQVJ2RFUrdW5mU1N6eE8zOGQ0aThET2VuZEdN?=
 =?utf-8?B?emZ1WGhOMXV0RkxwVUVBa1YrMUoxcEN5SXR3YTZTZTlacVpLZTloZlcvYzMx?=
 =?utf-8?B?OG1ubEhJc2VOQXlYRDdYOGlEWXZDT1AwekN3VFh4T0ZtS2lqdjJNK0dUdU9L?=
 =?utf-8?B?R2JEc3VNS0VTb2ZQUGVxMDdsc25mWEZKSUtjSXRrQVpBQVVHblJLTXNzaWNs?=
 =?utf-8?B?cnc4WTl3akdhNDBPWmY3RGRRWkV5WWl0S1RIU3V4ZmpYVS81SkVKNGxUY0hq?=
 =?utf-8?B?WHBFdS9UYXJybzB0ZDBFRkd5alNUVnVkeGNmMExCSHBjUzk1S015cmdrcytH?=
 =?utf-8?B?TzNLWm5FOHVjRThoRWwrMzNKZEJzK1ZDT1lRNGw5OEpHVmNXWlNqQTI3VnRR?=
 =?utf-8?B?cmFBYkFTcUlwanhpWDRXVTV6ZG8xR3NTNDFQK29vYnNNajFGMHpyYm5YMGV4?=
 =?utf-8?B?UWFFMUR3TXlXOHlVaE8yUVBaQ0xVd2xVdjBLc0VIb3JBNDNITU1GenNGRzBP?=
 =?utf-8?B?YTFlRmpNclYyb2xSZzdkYWRXV1VCdHNPUjZYNUtsRDlsYXRtcWV1MmVHa0JT?=
 =?utf-8?B?bDhtN0dMa2t0ZDN1V0FIdGlxTVc4cjMwL0k1cXEyTkFxcUZvdEhLTHgwL1Uz?=
 =?utf-8?B?TzJqdTBRSnVLbWJhcWVWdkNiZkFDMDRqN24rMndKZFV3SWJUNytpTXhLTDVM?=
 =?utf-8?B?azRURHFRdnhQMnN0ZUN6bm5POUhoLzhQRmgwQ2NVaWVCV3BVM21WblYwbUlN?=
 =?utf-8?B?cFdNSmVxQk5EUEE5c0x2clovV0hHenJMdWY5RUxqZlFOS29Bazc2TXdPM0c5?=
 =?utf-8?B?N09wWURmaFFvRnhqM2RycWRmb2dFT0djYlI0Um1BRmJGZms0TGNZUkJiRVcx?=
 =?utf-8?B?SW5tY2Nha2xwQzA0Vjg5STNmbkdseDVuR2lNSm42Y01paGJJRWRUcXYrVEl0?=
 =?utf-8?B?TTRENG9aOFk1dFpnK3U3dUcrWjVZaFNQZENMc2tqdGx0SHhWK0xRUTIyRFZS?=
 =?utf-8?B?ZHdQY1djUVM5eFFXVThFWklsTXFnN0dSUFlNV0ZsSThML2NUTmR1SlFTZTRq?=
 =?utf-8?B?TDNTVGFWWmtQcW9zOGtHSG9ZT3FiR0ZEdVVJVkxMY0xzd0xDeWNhWjdHU2hk?=
 =?utf-8?Q?+MTX9KFMQe0isEzjiTpfErRaq1CLSk=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?Q3MwZXVkUzBGSGNGbXNSbHVmdEdha1hIM3NJTFdhWU1vbGt0SkxXOVE1aHc1?=
 =?utf-8?B?WEVmcXBzeGt4eDZodm1JcUpUWFZzaGQ0anhJUjBJYnczdDFhd0ZmTXpSYmIv?=
 =?utf-8?B?bEtSdnNneHdRK1Q2TDgvRU56Q1VCODBES1hJcXBENVh6aFQ5UWRld0tFcmxP?=
 =?utf-8?B?ZTVBbmUrcW9TaTYxQjVHUmdHS2xPdjZvWmtIM0laOFNqcUNnYVF2UGJTcjlh?=
 =?utf-8?B?MXJuMktYT0d0K1FiNkxDSG0wdTZaNzVKK3FDcjFVaS84T1pVT2o5TnFSdnEx?=
 =?utf-8?B?UTc0bGZ6THlQcmVsYUljVUNlSDJaREJjZFdrdXBXZ2ZPSFFDTFdiWXZKVVE5?=
 =?utf-8?B?UTc1TWtCSGgvRE5VMlpsWGFTVy9ua1ZEbGNIZ0ovOC8rVHdROGI0YVFHYXFv?=
 =?utf-8?B?OFNqNGFlVHJBSTVoSXBDSnpvM0hiZ0I5d0wzYk55UVk1aDhveVBmZ0MxZzNP?=
 =?utf-8?B?N0pFVW0yek9MQ0FDOWFvaEhrUGpYd3h6eGNJRTVCYVlVaGJVSVhuMnA1NWtp?=
 =?utf-8?B?QUNHY09mR09xS3ZGNEMrNWxWVWxLQW84UjJCeVk5WHVqWmNtZVJCazN6Wnph?=
 =?utf-8?B?bDBFZitzck1LOVlxQ2lCZ0NMRSt5WnJDY3F2djNGWVhPRktqdGVseUJzbmg3?=
 =?utf-8?B?VzYrMGVod2QzUkcxZnBsNVhuZlg3RWF4bEpBelJaRklTb01PWkRJNXV0OGYr?=
 =?utf-8?B?YjQvUFdqRFBNRXQzTVpGVzZBbWxPc2kxVTdMQnlMMzdydHhKdXJoYmd4KzFq?=
 =?utf-8?B?aTE3bEI4TzJoWWVzbC80TDg1am4zNWVYOXJKclRVWUJhZEVQNUR1RURTUm90?=
 =?utf-8?B?c1JPMmI2N0FmRHB0Lzd6a2FBaHFaaXFrMTZUTXptcUUycUdGQ1prRitkRjJw?=
 =?utf-8?B?WXZtZ29ra3dmZzdKaklpM0JOcW4yaG5QNHQ3WlpMYmR2aCtaa0ViNU9OQkJp?=
 =?utf-8?B?YWsvMFQzdzJNRDdmWEJuV1QxQjZIa0ZkMEF6SDZ0WlloQ2pxQnVBYndIeUx2?=
 =?utf-8?B?c2RNMmdHL1B5bTI1RGpGblpjQm9GK2ExdjlyNVkxNWRxNkQyNk9PWC9XTzRW?=
 =?utf-8?B?aUFaUC9CMTd1UkFCY3pjRU9IUlc5L3g5UlYyRzljQ2l4ZWgvUy9sWVdEcTZi?=
 =?utf-8?B?ODlZL2FmUGtvNUVVOFJEdlZ5MTZaUC9wcmRHZFlnaWtXNnl5c3hNYmxmek9I?=
 =?utf-8?B?a3J3N0tyUHdjTUF6SlVzeWxPdzRhTlJ6TmNtOVltSnlYMXZhUzdnbU04WURC?=
 =?utf-8?B?aUlCYzRZZEdmOCt5K3QycFN2RFdzMzBoRzRKb1A2cDVyYXVnK0RJUnRYTng2?=
 =?utf-8?B?MGl0WTBIUkdMZFV2NFdlcmkwN0Y0TmhmVnlDS1F3TjZzYWFCb29jdURlRUZt?=
 =?utf-8?B?bGE5YmRGdlVOWXAzai95N2YvejFFNlhmV0pCMzYwdEFqZ1NqUVpia2x3WWhQ?=
 =?utf-8?B?Mnh2M1JPS0IyTi9JOVBVWkd3SHhFdzZSUjUyTEhRN0xtTHBNSFhDYlpGQWhx?=
 =?utf-8?B?T0dqVXZMbXA0Y1lVckREWkh2czFZY1lYNjcyWUdnOVppamhKelpDczJVR2Ns?=
 =?utf-8?B?eEEyQjE0VUxUbUZoMVRSUmRRRnE3L0lBRzNXMzFPMUJ0RnpKY1lrTVZwdUtD?=
 =?utf-8?B?UG1SM1BPbnpRb2s3THdMUHpUMWFVTFF4enR1a2RyNzZZcUh2ZGhVYVFVS0k0?=
 =?utf-8?B?WVNKeTBrSkVPcmpFZjkza1ZuK3dmbnFjQVRacVNjN1R6SC9XRlErMzhPS2s1?=
 =?utf-8?B?anlpMHF6SXdqS2hrcW5tVlBNczl5dEtmZ29IMWZpbkFZTEF4NzAzMmhoNjJW?=
 =?utf-8?B?WE9YVXpUcU55Vkt4cWZtZHQ1WVZjVWFuVmRycGpZVjJNbkRPTkdMcGJTTitN?=
 =?utf-8?B?ZWt2S3JSMzNycmdWMlJueHQrQjZIc1p0b0swOFh1SVAzTGtMb0swVVQ4bTJz?=
 =?utf-8?B?L0pDc2RBMjNiQmc3ZWFFR2o2SWozNW5UaUtxNWxXbWJLTEwzV1VUOUh3dUto?=
 =?utf-8?B?Z1NZL05OcXFtL096ZUN5TTlFOWgvYUlLQm1xZERFQVJOdmphamJOZGhRVzU1?=
 =?utf-8?B?RXlHbEhWRWRvY25ibHB1N2RUWC94d3ZRb2hxZDFyUjRaL1doOC9DamEvOGhH?=
 =?utf-8?Q?RWOo=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0e785f94-7cc3-45e2-e85f-08ddd330fcfb
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Aug 2025 08:29:11.2508
 (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: H0Up82158fXAD4MxGPGHpgd4MifsseLof3O0RqS8qTEaOYzdWOmGgQIvvvZ1tDBlVrtAJQB48mDOOr+lGglR7w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB7139

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IE1vbmRheSwgQXVndXN0IDQsIDIwMjUg
Mzo0MSBQTQ0KPiBUbzogUGVubnksIFpoZW5nIDxwZW5ueS56aGVuZ0BhbWQuY29tPg0KPiBDYzog
SHVhbmcsIFJheSA8UmF5Lkh1YW5nQGFtZC5jb20+OyBBbmRyZXcgQ29vcGVyDQo+IDxhbmRyZXcu
Y29vcGVyM0BjaXRyaXguY29tPjsgQW50aG9ueSBQRVJBUkQgPGFudGhvbnkucGVyYXJkQHZhdGVz
LnRlY2g+Ow0KPiBPcnplbCwgTWljaGFsIDxNaWNoYWwuT3J6ZWxAYW1kLmNvbT47IEp1bGllbiBH
cmFsbCA8anVsaWVuQHhlbi5vcmc+OyBSb2dlciBQYXUNCj4gTW9ubsOpIDxyb2dlci5wYXVAY2l0
cml4LmNvbT47IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz47IHhl
bi0NCj4gZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gU3ViamVjdDogUmU6IFtQQVRDSCB2
MSAwNS8yNV0geGVuOiBpbnRyb2R1Y2UgQ09ORklHX0RPTUNUTA0KPg0KPiBPbiAwMy4wOC4yMDI1
IDExOjQ3LCBQZW5ueSBaaGVuZyB3cm90ZToNCj4gPiAtLS0gYS94ZW4vY29tbW9uL0tjb25maWcN
Cj4gPiArKysgYi94ZW4vY29tbW9uL0tjb25maWcNCj4gPiBAQCAtNjI3LDYgKzYyNywxMCBAQCBj
b25maWcgU1lTQ1RMDQo+ID4gICAgICAgVGhpcyBvcHRpb24gc2hhbGwgb25seSBiZSBkaXNhYmxl
ZCBvbiBzb21lIGRvbTBsZXNzIHN5c3RlbXMsIG9yDQo+ID4gICAgICAgUFYgc2hpbSBvbiB4ODYs
IHRvIHJlZHVjZSBYZW4gZm9vdHByaW50Lg0KPiA+DQo+ID4gK2NvbmZpZyBET01DVEwNCj4gPiAr
ICAgYm9vbCAiRW5hYmxlIGRvbWN0bCBoeXBlcmNhbGwiDQo+ID4gKyAgIGRlZl9ib29sIHkNCj4g
PiArDQo+DQo+IEp1c3QgdG8gcmUtaXRlcmF0ZSAtIHdlIGRvbid0IHRoaW5rIHdlIHdhbnQgdGhp
bmdzIHRvIGJlIHRoaXMgZmluZS1ncmFpbmVkLg0KPiAoQXMgYW4gYXNpZGUsIG5pdDogImJvb2wi
IGFuZCAiZGVmX2Jvb2wiIGFyZSBwYXJ0bHkgcmVkdW5kYW50IHdpdGggb25lDQo+IGFub3RoZXIu
KQ0KPg0KDQpBcmUgd2Ugc3VnZ2VzdGluZyB0byB1c2Ugb25lIEtjb25maWcsIG1heWJlIGxpa2Ug
Q09ORklHX1hFTkNUTChub3QgYSBnb29kIGNob2ljZSwganVzdCBwb3BwaW5nIGluIG15IGhlYWQu
Li4pLCB0byB3cmFwIGFsbCBzY2VuYXJpb3MsIGluY2x1ZGluZyBzeXNjdGwtb3AsIGRvbWN0bC1v
cCwgamlxaWFuJ3MgcGxhdGZvcm0tb3AsIGV0YyA/IEluIHdoaWNoIGNhc2UsIG1heWJlIHdlIHN0
aWxsIHN1Ym1pdCBjb21taXRzKG9yIGZlYXR1cmVzKSBzZXJpZSBieSBzZXJpZSwgbW9yZSBlYXN5
IHRvIHJldmlldywgIGJ1dCBvbmx5IHdoZW4gYWxsIGlzIGNvbXBsZXRlZCwgd2UgbWFrZSB0aGlz
IEtjb25maWcgYXMgYW4gc2VsZWN0YWJsZSBvcHRpb24gPw0KDQo+IEphbg0K


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 08:35:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 08:35:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068946.1432795 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiqfV-0006vX-1G; Mon, 04 Aug 2025 08:35:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068946.1432795; Mon, 04 Aug 2025 08:35: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 1uiqfU-0006vQ-Ub; Mon, 04 Aug 2025 08:35:40 +0000
Received: by outflank-mailman (input) for mailman id 1068946;
 Mon, 04 Aug 2025 08:35:40 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=c2vN=2Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uiqfU-0006vK-9A
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 08:35:40 +0000
Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com
 [2a00:1450:4864:20::633])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ff99a0a7-710d-11f0-a321-13f23c93f187;
 Mon, 04 Aug 2025 10:35:38 +0200 (CEST)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-af93150f7c2so506454366b.3
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 01:35: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
 a640c23a62f3a-af91a0df10asm693128666b.59.2025.08.04.01.35.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Aug 2025 01:35: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>
X-Inumbo-ID: ff99a0a7-710d-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754296538; x=1754901338; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=w9uFjqO2ZuAOL1+QcWPRm8ZGsnP+qx6Q4AE1F3h/KMw=;
        b=WaqCryJKY+bDhzQEKam95pXJm7SnRhU2X6NC3kZDmfDOMTuR23h101QEotLfrH6PIm
         VAYfQn5TbI8ZvPs7LWjeAgg0x1XSQPThqxRaHXRG9YHufNhvKSpc8H40OydxqoZh5cYn
         OygqmFtbCNlIJcsfVYrcW8O8mlPW/jZ8/aZu0LqTgv4Z7SpraKY1W1GWxEM5z9kADSdn
         e8D1KKSknLj6f2YtA5oM3qdZeuSccf5WBQ2ng/mNk6yOlVnQgwojnUetmhQBSeGcUenR
         ubhAGBT9hVkOtkdxMvK/S+6POMx0wqauhFQA6i80ksfBvbx+QE3mozVuGGaEYBV6SnIw
         WMvQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754296538; x=1754901338;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=w9uFjqO2ZuAOL1+QcWPRm8ZGsnP+qx6Q4AE1F3h/KMw=;
        b=SZ/2vs16PmwGOj9Igf3zuX30bjGjzFncoQzr3PDHdfZ8e8dFrAG4rqUAKUPmfmZCJg
         ofTXilg03dP1cX52fLYCBGvkv6v0nER1m6q2QuQez0bd6mcMI9aHQ8hvVzCBYOCOunjh
         53d4/af3F3WXuzrqOPNZhFtu4nBd66ftviVzT7ejoX4ScOULKdPH+8Kzl8TmeJ1kY4L5
         o9GlfdzUowiASTWYhiI1rPWHTsq+xlIJ+wNrPF3YMMAMDJn9Fz5dyxALhhDysjsqYO1X
         EVXYNjJpNpKpZw2bHLIm1VcTmYnWuCsxNQh4vRxu0rWpevQzPjJEeXtZtNkk5q1C+l7a
         Q/ZA==
X-Forwarded-Encrypted: i=1; AJvYcCW3ySxgmpYJOCkcKFPoLZ23Lk3DsY/EhQd5vmZ/v2UT47oOjPLqNtMXMl8hUSvosHATxwZ6JlkhJq0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz3R+ar3kFFgRjneNbXmlVnpQxjNu4XiS2wtnw3ZIjeOwzW5wwz
	Xj5xGngztCtTaDG9yufA3tlRM4IHcURdclk+zvl0LnBo+nCRKSGpS/z8VeO2pgPfIA==
X-Gm-Gg: ASbGncsY4QTSxMARwY43SoC9PgWGJPlnFvwukx14615ayn6Ld5wzyedXekLy4Dd+wGA
	UFRIDNbG0G+Wr74QLTz74Ep/haijWX3gO5IvWzm852ZLFdRjtpq7p5xrGfVC+TxI2X8btlGLAhX
	wHVl9X6Nye87yxrNSwRqfDyobbA/IueSCtp1zr7Q/nZcgSCse7Pewnl8YqSZ6uNKvSQ4X0tHCpe
	zTawiVhhLD0R1iK0S+tArO7dK6p+EmVg9PgNEy0I7FtSG4kqiHudtMfxcFDDe1iON0fKnUgxW0c
	6BYiHAZYzh0rLmBHgAZq/Ln9cKO9RNCljmkme72HOTAOQZRarJNey2FL07cTeTCfyyPiEH9V1O1
	cJ+lMlANe7NB/C6k5WlkF2vp4lBGiY6Mswv0Woo8dhJqpw/YCuk4G/fi7PohUCh04RMUJx8hRSo
	UCFjo/RLg=
X-Google-Smtp-Source: AGHT+IGl2pFVk64BeQvpUplaH6ylJJ9kjKTIQhorjoT7CmO+2aMlqIKIUS2w3lcEISzMxQF4+ED9WA==
X-Received: by 2002:a17:907:7fa3:b0:ade:1863:6ff2 with SMTP id a640c23a62f3a-af9401f489dmr927532266b.52.1754296537971;
        Mon, 04 Aug 2025 01:35:37 -0700 (PDT)
Message-ID: <123626b4-3234-40e5-b1cf-bd5c2b19cbc8@suse.com>
Date: Mon, 4 Aug 2025 10:35:39 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 3/3] xen/pci: add discovered PCI device at boot
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: Luca Fancellu <luca.fancellu@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1753968306.git.mykyta_poturai@epam.com>
 <5097b76acf0a5c64cc78522f6af6233370c948e6.1753968306.git.mykyta_poturai@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <5097b76acf0a5c64cc78522f6af6233370c948e6.1753968306.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 01.08.2025 11:22, Mykyta Poturai wrote:
> Create add_discovered_pci_devices function that calls pci_device_add
> on every PCI device discovered.
> The devices will be added to dom_io so that they can be assigned
> later to other domains.

And why's the intermediate step necessary? IOW can't they be assigned to their
target domains right away, and only whatever's left would go to DOM_IO?

> --- a/xen/drivers/passthrough/pci.c
> +++ b/xen/drivers/passthrough/pci.c
> @@ -1180,6 +1180,34 @@ int __init scan_pci_devices(void)
>      return ret;
>  }
>  
> +static int __init _add_discovered_pci_devices(struct pci_seg *pseg, void *arg)
> +{
> +    struct pci_dev *pdev;
> +    int ret = 0;
> +
> +    list_for_each_entry ( pdev, &pseg->alldevs_list, alldevs_list )
> +    {
> +        ret = pci_add_device(dom_io, pdev->seg, pdev->bus, pdev->devfn, NULL,
> +                             NUMA_NO_NODE);
> +        if ( ret < 0 )
> +        {
> +            printk(XENLOG_ERR
> +                   "%pp: Failure adding the discovered pci device (Error %d)\n",
> +                   &pdev->sbdf, ret);
> +            break;
> +        }
> +    }
> +
> +    return ret;
> +}
> +
> +void __init add_discovered_pci_devices(void)
> +{
> +    pcidevs_lock();
> +    pci_segments_iterate(_add_discovered_pci_devices, NULL);
> +    pcidevs_unlock();
> +}

This looks to merely be a specialized form of what ...

>  struct setup_hwdom {
>      struct domain *d;
>      int (*handler)(uint8_t devfn, struct pci_dev *pdev);

... follows below here. By generalizing what we have (perhaps from the top, i.e.
iommu_hwdom_init()), you'd also avoid violating Misra rule 2.1 on x86, as you add
unreachable code there.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 08:38:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 08:38:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068955.1432805 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiqiD-0007TN-DQ; Mon, 04 Aug 2025 08:38:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068955.1432805; Mon, 04 Aug 2025 08:38: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 1uiqiD-0007TG-Ak; Mon, 04 Aug 2025 08:38:29 +0000
Received: by outflank-mailman (input) for mailman id 1068955;
 Mon, 04 Aug 2025 08:38:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=c2vN=2Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uiqiB-0007T9-IH
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 08:38:27 +0000
Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com
 [2a00:1450:4864:20::62d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 614e91b2-710e-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 10:38:22 +0200 (CEST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-ae6f8d3bcd4so855485866b.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 01:38: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
 a640c23a62f3a-af91a078cbasm704522866b.5.2025.08.04.01.38.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Aug 2025 01:38:21 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 614e91b2-710e-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754296702; x=1754901502; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=HXG7tHiAB743HpxKHieGihPuc05fpEEq3E3TZqq8f2c=;
        b=Pq8ph3SO5FcPEx1jqxywjKVJOEbwgFDx5ImpeEpqzWYV8+f60eEDVI7xw6UINrHMho
         Qhoo60v6TDiVhQaz9NzC8FRRG24D4xB13ZAhhzbB22EcdVdXtNM/4up+N8fYN+hxzfa4
         roLpG3iE+APwgxMBlXaiVUkOaU6RkMnlqulV+gT4JcuwElWButa7Ry3/ATOAEiYhTXiS
         8tZguMkRn3BmPZt/yyMFRgV94vwXr0Q/AD+pUYfjcKWnDJwtGDW2wjMM3GPWTMAlrm9I
         4mtKnxup59doQyWQcEDht6k4ja3b/MbOPZTCB1QWKBjaQwXta+jr+HbdGZ0/k+tqKDHX
         bOnQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754296702; x=1754901502;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HXG7tHiAB743HpxKHieGihPuc05fpEEq3E3TZqq8f2c=;
        b=UWoabz+60NLnIEjSZSbR0o49xlDHT4nblblOXCp7qmRlCsQJ5rcueLxxnP7kGYh6Uv
         SG1p1ehh+qGJzOBZqRBruJV7NAWar45acwOsJTbEs5sKTHcpmySQWO04JdCy42F6a4gJ
         3/Tk2lmGF0i97zNIHG+h/S4NC/St9jsXjbPs7Y5/nyDBZHrNqSbnl3drDZxG5e1pWjYX
         SS5HrA+aLuEnmYWLrHXtL/O/bGw/0GdVVHfMnGSoGU4wXCikbb8MSz6MTc25Cp76XUnr
         PesEGPVB/MRwJrZUlAaFn+gN6xHpdUpb/Jf9b+1sU3f4rhKD6Nfj289tePVdn6dKBWLQ
         egkg==
X-Forwarded-Encrypted: i=1; AJvYcCXgXlv87UJqRadlFx4clUfdN/uSMHMmX0HaMtyLQVWWW2KYWajQjDR2SM4f2J+Lxd3aIv05WAG0CfA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz/ZLuTuxnRLlu0/f2zqu6nOZF9pQ4Kfxc+ZPOaeIZSRBgjrFxm
	fK2EATPYiIo5BEXCO1kY+OQO5VudedSfkeomDJl8VcMqL9bUuFNby3RZaZ3P+R4MZA==
X-Gm-Gg: ASbGncvtYNbCrv6+QY0Nfrn9CRGe8qOE9DGYDCbeDrHtMPpdLCiV3I84qMQqPfwjFNv
	BBTtTpOlIIStpoYpIyU4v8EEvdy29nomdOBOFoq5pAvzMm78jt6cznwwdGFgGxiw/6uftRw/byd
	Xi0TPiNS31TiGSsYvJFcHNA/H5XXdhY4U27zFhbO2uMO4ae8q6hN6oJcikPwMO71K66B8pR6fUq
	Iy9UFmo8c+iHWNBETSm7gJdkOV9Xv1X3EBeFauyOqq8pdSBy+h27MR9J+PMiW75zNSxq76f7Wgo
	qxBB0Pxw4yCAKn6yXWoZmRsZelZdQ4dgiUdsXqL+QnMnlUhJBwM8WBbEbqBiezqCsBxyVcsLgk5
	jJ/SbJQDsZz9Tk4jB3WKbVZiUtEf+QUZpj2+sa+3UZaGOuU/X65vgkPS970uyqgE0xspwkSyIbg
	qkaDjy8ArDTVDoz52X+w==
X-Google-Smtp-Source: AGHT+IG5f3z2UY3eOHZULglTXhH4jpASMXUYbuUl4z+isOVUiPZ0WpRXfCo0YMLyZRWKK9HBbIK5bw==
X-Received: by 2002:a17:907:948c:b0:ade:9b52:4cc0 with SMTP id a640c23a62f3a-af94007889dmr857625266b.26.1754296701957;
        Mon, 04 Aug 2025 01:38:21 -0700 (PDT)
Message-ID: <f4b914ca-690f-45c8-b7f2-05dac1249074@suse.com>
Date: Mon, 4 Aug 2025 10:38:23 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 05/25] xen: introduce CONFIG_DOMCTL
To: "Penny, Zheng" <penny.zheng@amd.com>
Cc: "Huang, Ray" <Ray.Huang@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 "Orzel, Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20250803094738.3625269-1-Penny.Zheng@amd.com>
 <20250803094738.3625269-6-Penny.Zheng@amd.com>
 <770f41e5-5d02-4358-8f91-e577f762cf58@suse.com>
 <DM4PR12MB845118D11DCA4E169D294553E123A@DM4PR12MB8451.namprd12.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: <DM4PR12MB845118D11DCA4E169D294553E123A@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.08.2025 10:29, Penny, Zheng wrote:
> [Public]
> 
>> -----Original Message-----
>> From: Jan Beulich <jbeulich@suse.com>
>> Sent: Monday, August 4, 2025 3:41 PM
>> To: Penny, Zheng <penny.zheng@amd.com>
>> Cc: Huang, Ray <Ray.Huang@amd.com>; Andrew Cooper
>> <andrew.cooper3@citrix.com>; Anthony PERARD <anthony.perard@vates.tech>;
>> Orzel, Michal <Michal.Orzel@amd.com>; Julien Grall <julien@xen.org>; Roger Pau
>> MonnÃ© <roger.pau@citrix.com>; Stefano Stabellini <sstabellini@kernel.org>; xen-
>> devel@lists.xenproject.org
>> Subject: Re: [PATCH v1 05/25] xen: introduce CONFIG_DOMCTL
>>
>> On 03.08.2025 11:47, Penny Zheng wrote:
>>> --- a/xen/common/Kconfig
>>> +++ b/xen/common/Kconfig
>>> @@ -627,6 +627,10 @@ config SYSCTL
>>>       This option shall only be disabled on some dom0less systems, or
>>>       PV shim on x86, to reduce Xen footprint.
>>>
>>> +config DOMCTL
>>> +   bool "Enable domctl hypercall"
>>> +   def_bool y
>>> +
>>
>> Just to re-iterate - we don't think we want things to be this fine-grained.
>> (As an aside, nit: "bool" and "def_bool" are partly redundant with one
>> another.)
>>
> 
> Are we suggesting to use one Kconfig, maybe like CONFIG_XENCTL(not a good choice, just popping in my head...), to wrap all scenarios, including sysctl-op, domctl-op, jiqian's platform-op, etc ?

Yes, that's the thought that was circulated, and that I had hoped Stefano
would have conveyed.

> In which case, maybe we still submit commits(or features) serie by serie, more easy to review,  but only when all is completed, we make this Kconfig as an selectable option ?

Likely the best route, but that may then mean stepping back a little on
SYSCTL, before trying to deal with SYSCTL and maybe PLATFORM_OP (albeit I
raised further reservations there).

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 08:48:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 08:48:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068967.1432816 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiqrw-00012F-HX; Mon, 04 Aug 2025 08:48:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068967.1432816; Mon, 04 Aug 2025 08:48: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 1uiqrw-000128-EB; Mon, 04 Aug 2025 08:48:32 +0000
Received: by outflank-mailman (input) for mailman id 1068967;
 Mon, 04 Aug 2025 08:48:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=c2vN=2Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uiqru-000122-Sh
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 08:48:30 +0000
Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com
 [2a00:1450:4864:20::52c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ca814d5e-710f-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 10:48:28 +0200 (CEST)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-61553a028dfso3812128a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 01:48:28 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-615a8effda1sm6458526a12.1.2025.08.04.01.48.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Aug 2025 01:48:27 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ca814d5e-710f-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754297308; x=1754902108; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=rvSVJ95foTsBpRFS+4SvOU3DjjCK8hnlcDIJbxe2lE0=;
        b=JE1ExhIwQ0Z2cd5zJfyccnROduw3kLbBChFeZrOdE7UpIdKqmNrbdDmMvne/qKmBMS
         b0bmO64WKI77CbpbHnRQ37WRl57YaM27C5uupH5qmSMXUp1Two6hMmpbsb0x9qrj3dC0
         6HxzXdfOmTUf9zYz6pPufSStdH9jNdAFruKpXBCk31/w6fDnJVuqPXMUOE3Ume45Xeio
         ejfxjQ9JDCYdNj3wltkju6e58kIdJs7JLw0//3id5zbiW+IPkO74dINH+db97EnSc0c8
         ku10c9TnCkq7abOBOgxnNNDqRV6G1gJM5w0q3CBL3PYLqroJ5F9+XB1vT1Ytam1aV0DJ
         wwwQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754297308; x=1754902108;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rvSVJ95foTsBpRFS+4SvOU3DjjCK8hnlcDIJbxe2lE0=;
        b=AYosL9Hwo36GCAlCenHmvQA+QwOKhWvaiYylckXOuYQ2r6wxpANIElfOu5+5tCLQnd
         F6IzJe1l5SSxNjSltewwLt1hPFzSrimH8gC5AdiM4OMloxix7OXRqo5P2kUBD4rS0zdW
         eOP6iQw0c88BDOGWcJ9P3KE8qQC0FMV/2GnZSoOSJGvRrkpvxSvy8C7CG5gcBZrpeUnK
         hMY8LAnzkF31hb4HVZi+VRmueQTVO849Btxx6sI2FoUtcXJLdIJrjn5VvWN0jr+L//xO
         wrd/SZCW81dYXKckwq1Ivyk+5FLiCAtGj7SdFzN2E7SfLiySCxlk5kxtg3zY5nocLvoC
         +Z5w==
X-Forwarded-Encrypted: i=1; AJvYcCWOQfCjAIuKgRJE08GqEufktpJfH5qlebIMhXmSL54RfwJyPG04L8KYC1Urtf6x6ewfMWz5tIfizDI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxIJ3TCFsxPkZxflXASBzs4zLi3yLjaIhmjYLNM8n6dwO8v0QCP
	dMZDhSdOlJkbghcwKaK11WsFeQpccsNdYoeFTqWFobq5vPIOc/Waz34JHkwr1Wc+5g==
X-Gm-Gg: ASbGncuZz49ZTf5rP1Jv5JdVZeX97fhglfZsVo6iYPk8o50vR+7fX9O3ZG9cpbX7/kN
	go81OmqyLPhYZ3DMu4rbFdsV4abfr7gENQMrDNW34tbDXq9kX5piSaGNJ1zRdc7vagY/TcjvjcM
	lxmLjHII0Y4SiFjqLFQo00otFMAw9Dtv1tEudXaUhD4N7uTVxjWyFa8XkzEua8F7SVpjpnFugjQ
	4CWT+aM/6Xzkv06bevysnKcZp+yd7/F+cvCuGbELTn8yH6Kq4nr5zC3dIOTwQtW5OmuMYBi0WQx
	CPA510CckJvBvrRcAZCcJnUKZnj3fCuks1BH+7STSFkhorNpTgEim1EPzNqPtRJRfCon7Oxt7j7
	YKKpROpsvEBwZp2G4HIDSDleNNluaeI3mHR3LbPEZn+336yV2EFSVLZOJAhbKEyha8p+TjwudSq
	3vdj5JgCbEq/BObkjevw==
X-Google-Smtp-Source: AGHT+IG9INVx7HPbSjkfNR9Yg9TZA31ptT4Dr/p5609Q2k+8O2Vmuu8f5EDewgvXBsddWlOt+ZzQqQ==
X-Received: by 2002:a05:6402:26cf:b0:615:920d:4de5 with SMTP id 4fb4d7f45d1cf-615e6ed63a5mr6588882a12.12.1754297307921;
        Mon, 04 Aug 2025 01:48:27 -0700 (PDT)
Message-ID: <a2411fcd-d6b1-4912-b00a-b331ab472f50@suse.com>
Date: Mon, 4 Aug 2025 10:48:29 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 11/19] xen/x86: introduce "cpufreq=amd-cppc" xen
 cmdline and amd-cppc driver
To: "Penny, Zheng" <penny.zheng@amd.com>
Cc: "Huang, Ray" <Ray.Huang@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 "Orzel, Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20250711035106.2540522-1-Penny.Zheng@amd.com>
 <20250711035106.2540522-12-Penny.Zheng@amd.com>
 <a11aa19e-a151-469b-a58d-bc31fc4d7e01@suse.com>
 <DM4PR12MB8451FD535917A84B3054C93CE123A@DM4PR12MB8451.namprd12.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: <DM4PR12MB8451FD535917A84B3054C93CE123A@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.08.2025 10:09, Penny, Zheng wrote:
> [Public]
> 
>> -----Original Message-----
>> From: Jan Beulich <jbeulich@suse.com>
>> Sent: Thursday, July 17, 2025 12:00 AM
>> To: Penny, Zheng <penny.zheng@amd.com>
>> Cc: Huang, Ray <Ray.Huang@amd.com>; Andrew Cooper
>> <andrew.cooper3@citrix.com>; Anthony PERARD <anthony.perard@vates.tech>;
>> Orzel, Michal <Michal.Orzel@amd.com>; Julien Grall <julien@xen.org>; Roger Pau
>> MonnÃ© <roger.pau@citrix.com>; Stefano Stabellini <sstabellini@kernel.org>; xen-
>> devel@lists.xenproject.org
>> Subject: Re: [PATCH v6 11/19] xen/x86: introduce "cpufreq=amd-cppc" xen cmdline
>> and amd-cppc driver
>>
>> On 11.07.2025 05:50, Penny Zheng wrote:
>>> --- a/xen/arch/x86/acpi/cpufreq/cpufreq.c
>>> +++ b/xen/arch/x86/acpi/cpufreq/cpufreq.c
>>> @@ -128,12 +128,14 @@ static int __init cf_check
>>> cpufreq_driver_init(void)
>>>
>>>      if ( cpufreq_controller == FREQCTL_xen )
>>>      {
>>> +        unsigned int i = 0;
>>
>> Pointless initializer; both for() loops set i to 0. But also see further down.
>>
>>> @@ -157,9 +164,70 @@ static int __init cf_check
>>> cpufreq_driver_init(void)
>>>
>>>          case X86_VENDOR_AMD:
>>>          case X86_VENDOR_HYGON:
>>> -            ret = IS_ENABLED(CONFIG_AMD) ? powernow_register_driver() : -
>> ENODEV;
>>> +            if ( !IS_ENABLED(CONFIG_AMD) )
>>> +            {
>>> +                ret = -ENODEV;
>>> +                break;
>>> +            }
>>> +            ret = -ENOENT;
>>
>> The code structure is sufficiently different from the Intel counterpart for this to
>> perhaps better move ...
>>
>>> +            for ( i = 0; i < cpufreq_xen_cnt; i++ )
>>> +            {
>>> +                switch ( cpufreq_xen_opts[i] )
>>> +                {
>>> +                case CPUFREQ_xen:
>>> +                    ret = powernow_register_driver();
>>> +                    break;
>>> +
>>> +                case CPUFREQ_amd_cppc:
>>> +                    ret = amd_cppc_register_driver();
>>> +                    break;
>>> +
>>> +                case CPUFREQ_none:
>>> +                    ret = 0;
>>> +                    break;
>>> +
>>> +                default:
>>> +                    printk(XENLOG_WARNING
>>> +                           "Unsupported cpufreq driver for vendor AMD or Hygon\n");
>>> +                    break;
>>
>> ... here.
>>
> 
> Are we suggesting moving
> "
>         if ( !IS_ENABLED(CONFIG_AMD) )
>         {
>                 ret = -ENODEV;
>                 break;
>         }
> " here? In which case, When CONFIG_AMD=n and users doesn't provide "cpufreq=xxx", we will have cpufreq_xen_cnt initialized as 1 and cpufreq_xen_opts[0] = CPUFREQ_xen. powernow_register_driver() hence gets invoked. The thing is that we don't have stub for it and it is compiled under CONFIG_AMD
> I suggest to change to use #ifdef CONFIG_AMD code wrapping
> 
>>> +                }
>>> +
>>> +                if ( !ret || ret == -EBUSY )
>>> +                    break;
>>> +            }
>>> +
>>>              break;
>>>          }
>>> +
>>> +        /*
>>> +         * After successful cpufreq driver registeration,
>> XEN_PROCESSOR_PM_CPPC
>>> +         * and XEN_PROCESSOR_PM_PX shall become exclusive flags.
>>> +         */
>>> +        if ( !ret )
>>> +        {
>>> +            ASSERT(i < cpufreq_xen_cnt);
>>> +            switch ( cpufreq_xen_opts[i] )
>>
>> Hmm, this is using the the initializer of i that I commented on. I think there's
>> another default: case missing, where you simply "return 0" (to retain prior behavior).
>> But again see also yet further down.
>>
>>
>>> +            /*
>>> +             * No cpufreq driver gets registered, clear both
>>> +             * XEN_PROCESSOR_PM_CPPC and XEN_PROCESSOR_PM_PX
>>> +             */
>>> +             xen_processor_pmbits &= ~(XEN_PROCESSOR_PM_CPPC |
>>> +                                       XEN_PROCESSOR_PM_PX);
>>
>> Yet more hmm - this path you want to get through for the case mentioned above.
>> But only this code; specifically not the "switch ( cpufreq_xen_opts[i] )", which really
>> is "switch ( cpufreq_xen_opts[0] )" in that case, and that's pretty clearly wrong to
>> evaluate in then.
> 
> Correct me if I understand you wrongly:
> The above "case missing" , are we talking about is entering "case CPUFREQ_none" ?
> IMO, it may never be entered. If users doesn't provide "cpufreq=xxx", we will have cpufreq_xen_cnt initialized as 1 and cpufreq_xen_opts[0] = CPUFREQ_xen. That is, we will have px states as default driver. Even if we have failed px-driver initialization, with cpufreq_xen_cnt limited to 1, we will not enter CPUFREQ_none.
> CPUFREQ_none only could be set when users explicitly set "cpufreq=disabled/none/0", but in which case, cpufreq_controller will be set with FREQCTL_none. And the whole cpufreq_driver_init() is under " cpufreq_controller == FREQCTL_xen " condition
> Or "case missing" is referring entering default case? In which case, we will have -ENOENT errno. As we have ret=-ENOENT in the very beginning

Sorry, this is hard to follow. Plus I think I made the main requirement quite
clear: You want to "retain prior behavior" for all cases you don't deliberately
change to accommodate the new driver. Plus you want to watch out for pre-
existing incorrect behavior: Rather than proliferating any, such would want
adjusting.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 08:48:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 08:48:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068969.1432825 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiqsF-0001MK-Nq; Mon, 04 Aug 2025 08:48:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068969.1432825; Mon, 04 Aug 2025 08: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 1uiqsF-0001MD-LJ; Mon, 04 Aug 2025 08:48:51 +0000
Received: by outflank-mailman (input) for mailman id 1068969;
 Mon, 04 Aug 2025 08:48:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=c2vN=2Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uiqsE-000122-W1
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 08:48:50 +0000
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com
 [2a00:1450:4864:20::636])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d6f786df-710f-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 10:48:49 +0200 (CEST)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-af66f444488so541334266b.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 01:48:49 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a24365asm696790466b.137.2025.08.04.01.48.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Aug 2025 01:48:48 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d6f786df-710f-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754297329; x=1754902129; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=X3pzOVntHKUcKWR8z6U9pOBbDddhwgTd/XTq1OF+ttM=;
        b=JCDG3OrEzPhV5ruNar4aV3LOokqCWAyPuuP5KKzCsh+C7Ll/a6Oda+6D0fHVIYBQ+u
         VmyC0gqg9FbYZiqZCrmCCvNKZI5zPRSDmHC1a+JdeR491DRWsHDlg7ztYhJHzz8h16TV
         uOxVPJ6n+xX+ocI/bneDWa9E92AkD+Z4lUzbK1MVaBTKNH9eVDjAalxhbRKC4mni643D
         S5kFX8qpTKO3GWaOuc9lBowYbsLR8SJM9DVSW0O35njI0tDD93QBdPEMFQVmLgbM/cL4
         JvfW8n326fNdnh10u6aZGuzXsMyKVeNz5mHGBD1hKN1dmj71+4syfq4zF1ATWBFNExQl
         vJBQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754297329; x=1754902129;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=X3pzOVntHKUcKWR8z6U9pOBbDddhwgTd/XTq1OF+ttM=;
        b=LOvUSPGoRC8jSCuXAWGkvi1nEg5OzZBUJ9YjD5dk1cHmW41MA9Nv2+c0xbGYsqdS07
         ym1gHDas0xd1cwxiVK+Tl3/VAK9DaNGSw1SeJ+TLCKsKJHGZpX04Kk5EcKn/F0yPxQg1
         iidsgRzcpcaT4texNl6jpHrtmzga5YnZK91jA7bvt2fT1VB+UShPx+KmpDlW8v47OdQ1
         9Io8bvlwKwwGzs3rtbjsu2fCmlljaG10rvsZv9OQqqdky8cbAJWIW0H877T2FMy56MpD
         Vn4XVtsQXoES+47SF+6IK1WheT+Kw5tYJTTDW+cXdkPA5Hma8s8I9zjdYPbUNwkwn9RM
         VNXQ==
X-Forwarded-Encrypted: i=1; AJvYcCXVSKPsprZVMILvILtQFYpZ388sTqFDsU8Htbk5MdaIz8GPXmN1H2DNVIsaLtlYsBxow8BP8WQIgiU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy29Gy2ufS/WWFeN2WEEt7S8FuwgqinKH2VvYjTyf8Co1xd9+RN
	halM9/GwD0UnyYEfwMrNJrhj9xntNFnEjXaueH8H7RhZVgHwIf7/U9DLRNmAGGKV+A==
X-Gm-Gg: ASbGncuhK/Mr4UhSMhC2z/KLP4HyY0rlAH+V9KqCr6H5SrAvG5TheaXqL6lLuDyCEQK
	fdRT/Othbx8sM57rzR22M6FyY5piQKsbvSJqrm4L8V0uW3Jp8QwxbyWdLFHIMOuT0FYtGRZgJ+A
	xTwD6Lgj0rnvmnYVhwu1kJMZ86OoRqPPubxPA33F2Dd574/45I4b+cJQrn2UFYu+hWjdovtSIOy
	BcHB66vzBKDYeW3Pbba1uq9j0s9tJgGxxTi3SxAAr166A0Z9+XWIWf/zpRPQlVPh/gRzfQPJpqR
	ASVahNei7VaWyG4alOUlb8t/hYlOe3AQQaY3DoEU28zi8bmLp/hH/y9Nig2wu/cz8wINz4NmnhG
	9pnmEcDhne27yK3yonQCkSj1dki/ZWg+0UfIrZA8WZua6p0Qr6M840q3Me2UIO8f1Mpo3L1F7tJ
	ewSK+BrDPIM+xy/9BfulBAwyOS5CTe
X-Google-Smtp-Source: AGHT+IGxlSM3avoUbyb+fd3PwxjqQmuoDItEv/EngGr/UKLUC2ZTJ3kj75ONZCm617a8Z3F/IPG8Ig==
X-Received: by 2002:a17:906:c149:b0:ae6:e0a7:234c with SMTP id a640c23a62f3a-af940156652mr884752466b.33.1754297328851;
        Mon, 04 Aug 2025 01:48:48 -0700 (PDT)
Message-ID: <4df7c533-8d6e-4cf6-9ab2-90a00a31ebbb@suse.com>
Date: Mon, 4 Aug 2025 10:48:50 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 11/19] xen/x86: introduce "cpufreq=amd-cppc" xen
 cmdline and amd-cppc driver
To: "Penny, Zheng" <penny.zheng@amd.com>
Cc: "Huang, Ray" <Ray.Huang@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 "Orzel, Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20250711035106.2540522-1-Penny.Zheng@amd.com>
 <20250711035106.2540522-12-Penny.Zheng@amd.com>
 <a11aa19e-a151-469b-a58d-bc31fc4d7e01@suse.com>
 <DM4PR12MB8451FD535917A84B3054C93CE123A@DM4PR12MB8451.namprd12.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: <DM4PR12MB8451FD535917A84B3054C93CE123A@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.08.2025 10:09, Penny, Zheng wrote:
> [Public]
> 
>> -----Original Message-----
>> From: Jan Beulich <jbeulich@suse.com>
>> Sent: Thursday, July 17, 2025 12:00 AM
>> To: Penny, Zheng <penny.zheng@amd.com>
>> Cc: Huang, Ray <Ray.Huang@amd.com>; Andrew Cooper
>> <andrew.cooper3@citrix.com>; Anthony PERARD <anthony.perard@vates.tech>;
>> Orzel, Michal <Michal.Orzel@amd.com>; Julien Grall <julien@xen.org>; Roger Pau
>> MonnÃ© <roger.pau@citrix.com>; Stefano Stabellini <sstabellini@kernel.org>; xen-
>> devel@lists.xenproject.org
>> Subject: Re: [PATCH v6 11/19] xen/x86: introduce "cpufreq=amd-cppc" xen cmdline
>> and amd-cppc driver
>>
>> On 11.07.2025 05:50, Penny Zheng wrote:
>>> --- a/xen/arch/x86/acpi/cpufreq/cpufreq.c
>>> +++ b/xen/arch/x86/acpi/cpufreq/cpufreq.c
>>> @@ -128,12 +128,14 @@ static int __init cf_check
>>> cpufreq_driver_init(void)
>>>
>>>      if ( cpufreq_controller == FREQCTL_xen )
>>>      {
>>> +        unsigned int i = 0;
>>
>> Pointless initializer; both for() loops set i to 0. But also see further down.
>>
>>> @@ -157,9 +164,70 @@ static int __init cf_check
>>> cpufreq_driver_init(void)
>>>
>>>          case X86_VENDOR_AMD:
>>>          case X86_VENDOR_HYGON:
>>> -            ret = IS_ENABLED(CONFIG_AMD) ? powernow_register_driver() : -
>> ENODEV;
>>> +            if ( !IS_ENABLED(CONFIG_AMD) )
>>> +            {
>>> +                ret = -ENODEV;
>>> +                break;
>>> +            }
>>> +            ret = -ENOENT;
>>
>> The code structure is sufficiently different from the Intel counterpart for this to
>> perhaps better move ...
>>
>>> +            for ( i = 0; i < cpufreq_xen_cnt; i++ )
>>> +            {
>>> +                switch ( cpufreq_xen_opts[i] )
>>> +                {
>>> +                case CPUFREQ_xen:
>>> +                    ret = powernow_register_driver();
>>> +                    break;
>>> +
>>> +                case CPUFREQ_amd_cppc:
>>> +                    ret = amd_cppc_register_driver();
>>> +                    break;
>>> +
>>> +                case CPUFREQ_none:
>>> +                    ret = 0;
>>> +                    break;
>>> +
>>> +                default:
>>> +                    printk(XENLOG_WARNING
>>> +                           "Unsupported cpufreq driver for vendor AMD or Hygon\n");
>>> +                    break;
>>
>> ... here.
>>
> 
> Are we suggesting moving
> "
>         if ( !IS_ENABLED(CONFIG_AMD) )
>         {
>                 ret = -ENODEV;
>                 break;
>         }
> " here?

That's what I said, didn't I?

> In which case, When CONFIG_AMD=n and users doesn't provide "cpufreq=xxx", we will have cpufreq_xen_cnt initialized as 1 and cpufreq_xen_opts[0] = CPUFREQ_xen. powernow_register_driver() hence gets invoked. The thing is that we don't have stub for it and it is compiled under CONFIG_AMD
> I suggest to change to use #ifdef CONFIG_AMD code wrapping

Perhaps necessary, yes. As you know, we generally prefer IS_ENABLED() where possible,
but when not possible, #ifdef is certainly okay to use.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 09:34:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 09:34:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1068990.1432836 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiraW-0000zE-3g; Mon, 04 Aug 2025 09:34:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1068990.1432836; Mon, 04 Aug 2025 09:34: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 1uiraW-0000z7-0f; Mon, 04 Aug 2025 09:34:36 +0000
Received: by outflank-mailman (input) for mailman id 1068990;
 Mon, 04 Aug 2025 09:34:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=c2vN=2Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uiraV-0000ys-2r
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 09:34:35 +0000
Received: from mail-ej1-x62e.google.com (mail-ej1-x62e.google.com
 [2a00:1450:4864:20::62e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 39bcbdc3-7116-11f0-a321-13f23c93f187;
 Mon, 04 Aug 2025 11:34:32 +0200 (CEST)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-af925cbd73aso670545366b.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 02: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
 a640c23a62f3a-af91a0a3792sm701998966b.50.2025.08.04.02.34.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Aug 2025 02: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>
X-Inumbo-ID: 39bcbdc3-7116-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754300071; x=1754904871; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+GE+zGTv9O+mdDD0ctcHl8vIDE2iHIW9l++of6DZ9A8=;
        b=CCv/UqX4vPQR4LOcU/hHp8a5HfZYzRXC3h3d647KkuFrkOXuCrGx7I/k+ad8r/AIV4
         kGJ1B3feUXCbaI9kmdA3xufG3IIutOtCQ+Udk0j6xQj8Z72kZrOmOtKibtRmU86lkFpP
         dZNlGGYO+sC2CUR1cXEz6Rk7lkBz9rj7vfe0o8mOi+evC27VrLRIz8e/1n0y+unHjVjx
         6uWZzGUHGesoPvekgM6KVwEnWKcL4kfHz+4Nx1kRfCUQR1z/TAQJzUs44rTbbJ9keDVO
         ss0StQ4LlgZ3LvH5Cx2+Lw+FLbYabusGS/5TurbZbwrgioPaJHX3Hl7/rXfwXGcbhORG
         kKBA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754300071; x=1754904871;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+GE+zGTv9O+mdDD0ctcHl8vIDE2iHIW9l++of6DZ9A8=;
        b=v9Wf24Of1ZKn7mIlRqonn87VIvs1O9hz4OGWweFtk2dPtbnaxiU9+AB2gSEdkdLK3D
         B0cY6JduxW2Ao+JnUVHRebG9rWURRZbrTqKcXmszagCroWtwMn3pD++7JZV7jm14ErG6
         WFzvqwens0dkgfKE81nmwW9YLon8qPaxKTNm6AK5sbQJ3GCLyimyZHfZ8aAtAZQgkRPL
         vStlycIIv2KRevkHH1xEhyWQSImP+gy6CbHD8D84KR4zuR6ep/Rztb0gglgUwqjizyK7
         xXAXnsexkZe38aqu+YlUkPRivpkBe9WLJN9mUFqbI8Z60xG8QOQPO+FnivBLM+R7rPY1
         QgPg==
X-Forwarded-Encrypted: i=1; AJvYcCUTbSLX/rbHfHRnY8q+nW6yVxKhpQcDB2zNI0X2V0EUcMjRJxMvmJaFUp+siTHx5nTtFQcNMZRwCBE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwrDgYDj5Vznuswi00uBwFK4mJY5FGEppjftwpIi7niruYPoFfP
	16WMn1Bf1r886MHsTCMrO8HWUM7Rx+b98kkmPxZi4xH9+W7f+g7Okt++agkoJ9A4kg==
X-Gm-Gg: ASbGncvu8JF/rsMkdzdUfqiJG1DgCJj7wDSdA7ea0BB3QCmKS+2X2bNpbz9x/SGJjux
	YUQluaWcvPB63Ojlpda5HE5OWIqSFpBgqT/h0euAPwNrm0RkUBSh1prJI0nbO/WUV1a9JuUmUo9
	d/62Xk+mizAWDHVQ5a3H4Ej2KjpmcJiSSkRAm1EPoG97RZPCAoR7Eu2L0DpmHMmRrrlycvGAX14
	tJxZsqFvey/sfYUVpJ+NPlWo94E68RyTWY6Q7HZjuqAXUHKRpGpHrpGZz6TlnuFZcsTQpt0OvW9
	FZY58opPIiAwjpbdmxgDwfqR0e1DdGGpMB2mibRGiCRr8HRf52/IZzBkCxc+GUahoQHXo97NOyA
	ezl214o7+59S4r8hAZ4kSJYfRc7IbKluh69h4IBdjfrHse6N2DxzOJEW2BO5TtxPLpWi/ZdN6rO
	g1x4ovZ30=
X-Google-Smtp-Source: AGHT+IGRyfG0jEfscZ9nBBlqUPrcyGWQmWyVvnvNBVsoWBj/UsO5ktFFMlA9OZ5rrPYuZt2jnOd+lg==
X-Received: by 2002:a17:906:c10b:b0:af9:3d0a:f37d with SMTP id a640c23a62f3a-af9401679d4mr931111666b.37.1754300071508;
        Mon, 04 Aug 2025 02:34:31 -0700 (PDT)
Message-ID: <4ceb64fa-d7cb-4c77-8a60-1526046c037c@suse.com>
Date: Mon, 4 Aug 2025 11:34:33 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/x86: fix xen.efi boot crash from some bootloaders
To: Yann Sionneau <yann.sionneau@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: <20250724140731.1502774-1-yann.sionneau@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: <20250724140731.1502774-1-yann.sionneau@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.07.2025 16:07, Yann Sionneau wrote:
> xen.efi PE does not boot when loaded from shim or some patched
> downstream grub2.
> 
> What happens is the bootloader would honour the MEM_DISCARDABLE
> flag of the .reloc section meaning it would not load its content
> into memory.
> 
> But Xen is parsing the .reloc section content twice at boot:
> * https://elixir.bootlin.com/xen/v4.20.1/source/xen/common/efi/boot.c#L1362
> * https://elixir.bootlin.com/xen/v4.20.1/source/xen/arch/x86/efi/efi-boot.h#L237
> 
> Therefore it would crash with the following message:
> "Unsupported relocation type" as reported there:
> 
> * https://github.com/QubesOS/qubes-issues/issues/8206#issuecomment-2619048838
> * https://lore.kernel.org/xen-devel/7e039262-1f54-46e1-8f70-ac3f03607d5a@suse.com/T/#me122b9e6c27cd98db917da2c9f67e74a2c6ad7a5
> 
> This commit adds a small C host tool named keeprelocs
> that is called after xen.efi is produced by the build system
> in order to remove this bit from its .reloc section header.
> 
> Signed-off-by: Yann Sionneau <yann.sionneau@vates.tech>

So I found a way to deal with this at the linker side, without any new command
line options. Behavior is solely driven by the attributes of any incoming .reloc
sections (of which there would be none by default, retaining original behavior).
The important patch is [1], but at least the first patch of the series [2] would
in most cases also be wanted/needed (patch 04 is obviously a mechanical prereq
for the main patch). Need for other of the prereqs there depends on the scope
and purpose of one's binutils build(s).

Jan

[1] https://sourceware.org/pipermail/binutils/2025-August/143153.html
[2] https://sourceware.org/pipermail/binutils/2025-August/143141.html


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 09:46:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 09:46:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069002.1432846 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uirmG-0003x1-5a; Mon, 04 Aug 2025 09:46:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069002.1432846; Mon, 04 Aug 2025 09:46: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 1uirmG-0003wu-2g; Mon, 04 Aug 2025 09:46:44 +0000
Received: by outflank-mailman (input) for mailman id 1069002;
 Mon, 04 Aug 2025 09:46:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=c2vN=2Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uirmE-0003wY-9v
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 09:46:42 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e8b27213-7117-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 11:46:35 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-af93bcaf678so320813166b.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 02:46: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
 a640c23a62f3a-af919e96050sm710727066b.0.2025.08.04.02.46.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Aug 2025 02:46: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>
X-Inumbo-ID: e8b27213-7117-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754300794; x=1754905594; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=HdrvA9JI2A33aDBJxxfFF1vQBWdZKHdIZjz6ftvV8LI=;
        b=Mmn1Pbr6qLuSASMJy9O2QITp18DjnC9Ar/otaFnD6TsQjBUdg1NeKO890FCLB4p7CS
         B8T2GNEkkjPvxbcOoMJgoP2LSt5oufdv+kOQSTiPLEqNk5wKW2zl8Ako2+wlkR7F099G
         mrX8Jo2bmBXdnKdyXPb6G7wK41Z2PfsXZFQuqy+kTi8ZaNkJ4tElKsPv/1dAvyE/fKXw
         muKCru8dZaEdwPTZM3WHsjIbdaARQmGxFiYKIgOi47zaTJ7qBdOgIW0X8w5Vm54VFF+F
         ZK/0yAPZwNXc5MDODj4CWmiEARHnZZBd6NfAJQJQgpcWw/JRgHw9SPVPGR8YSzjc2d/2
         x3IA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754300794; x=1754905594;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HdrvA9JI2A33aDBJxxfFF1vQBWdZKHdIZjz6ftvV8LI=;
        b=FjMjF1iC/lrYlfAgoeq/ZGvq4Bu4/iDZu0oy2lyOSilTxIJ0ZwxCHlBSXslmkYLaIf
         nAJJzMZnBG3Zkm63rROqRn8UUzKrUa/hZfI35rG403F/lMPfybu4ud215QizKjYdfbmD
         Us8e4m8G0RgOoD1zUfw54/AUXiSm5OQ7dNcKS/sucjEY6SVRadFsQCqwFThY7eV+Esg+
         MjMSl+1qSxfKAKNYwqs39PPY3823uBQsktHF642utAL1aSkCTwjOPZVWBsI6Y9Il6kov
         akQK5rS1Tt/60z+YGCPUOZ8dwyXYm9vrifwyUlBNQKbu7/fvjZfSkod/wkBfFdC+/TS/
         KheA==
X-Forwarded-Encrypted: i=1; AJvYcCWU08GemqQOLzI6YKl6akH0W8nIWJS82R2zYLSkb+OuSoMAx8QlQRorlr3d1E4x+D2HZAhmA9evp6Q=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywk40eBdfTJ62B4xkcPaV9iY/GhVbRo1mE5OlUbDZl5isc97srv
	rJgXYM5f5lPTr3bQZ85vzAedhYqG5cFQjH9+ibVCWa5JEOra1BX+hI1if5QorxDHVA==
X-Gm-Gg: ASbGncsaxEmE/ONhibLZUBwaqufeSgmc6fVWEKIizG81tofeW5jwappBSyOTExx/Yqu
	Ej+F+b+6lz4Y1ff6iT6IpZaGhfuMUgeq5BcLvDWQNdVvgG8kXZO7hFFofl5kQCMIzqbX3bif0R9
	h0wr7pjiFiy2IZRJFT+ZXoFg8zF8ReLkK9ILaPzShlLQKUZnJLpqBi9g1UgoUeD8vsaqlQD0M19
	BPKV7PuchfQtqFPaaZjtZhvSJjZZ95uhhX2CdWlz2iX5rFqlEfdpMfdfHtgtgL71ANY07kLwdOH
	qLfrt7P2CFUFSJvxRKc8LHmtBO6lJeHNzFPJ3EVGe8Hj7QgKeSjC+HZLAeGz8JMnqNUdz9ovclB
	M+w6KW7TYTKKCUf2/QSZ/s1eWoaO5WV9gZz9C8w7dYE8ucSbQBOk/Gw7CUCRc2OQbw5MrM1nKph
	jcvqkNVk+9+MQyxheofA==
X-Google-Smtp-Source: AGHT+IG3qTXoyNCQM9iP3YXVvfWJA9kb9szxX7r9xgsqPEab9ctwU3slVu1ePPrP26wccyZaQY6bqw==
X-Received: by 2002:a17:906:9f92:b0:ae0:bff9:98de with SMTP id a640c23a62f3a-af9401ff12cmr770699566b.40.1754300794443;
        Mon, 04 Aug 2025 02:46:34 -0700 (PDT)
Message-ID: <f2be5a00-63e6-489d-a26a-7d48d6ae41ad@suse.com>
Date: Mon, 4 Aug 2025 11:46:36 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/8] xen/domain: introduce common emulation flags
To: dmkhn@proton.me
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
References: <20250731192130.3948419-1-dmukhin@ford.com>
 <20250731192130.3948419-2-dmukhin@ford.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: <20250731192130.3948419-2-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 31.07.2025 21:21, dmkhn@proton.me wrote:
> --- a/xen/include/xen/sched.h
> +++ b/xen/include/xen/sched.h
> @@ -652,6 +652,8 @@ struct domain
>      unsigned int *llc_colors;
>  #endif
>  
> +    uint32_t emulation_flags;

Just one further remark: The field probably never should have been of this
type; unsigned int will do, and imo will want switching to while the field
is being moved. (Before giving an x86 ack, I want to convince myself though
that this is moving us in the right direction.)

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 09:57:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 09:57:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069014.1432856 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uirwc-0006if-0n; Mon, 04 Aug 2025 09:57:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069014.1432856; Mon, 04 Aug 2025 09:57: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 1uirwb-0006iX-U9; Mon, 04 Aug 2025 09:57:25 +0000
Received: by outflank-mailman (input) for mailman id 1069014;
 Mon, 04 Aug 2025 09:57:24 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=OEzl=2Q=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1uirwa-0006iF-LC
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 09:57:24 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6880ec81-7119-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 11:57:19 +0200 (CEST)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-4538bc52a8dso25118915e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 02:57:19 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-459dcb86d6asm18645125e9.5.2025.08.04.02.57.17
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 04 Aug 2025 02: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>
X-Inumbo-ID: 6880ec81-7119-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754301438; x=1754906238; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=45MldcZFDZfa9n7F93O/FJSzHhJPk1R7jvKrUOH4Ac4=;
        b=sHTdD0nX6t5Oz/K16EnkjfA8wzinkuKF1021Iuk3PlIG1byxIFKqXem1vuAqcm2pdl
         9kylj75niXZkZrhF490fLQnUHqiGtR6eqJKwzEoN50Yyedj4JMHDdKzjsdrcCzasZekI
         RjOkZlObTR/xTmMl92RRIjbDh6JmWXZxOyxCo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754301438; x=1754906238;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=45MldcZFDZfa9n7F93O/FJSzHhJPk1R7jvKrUOH4Ac4=;
        b=IicoBjxPi7fmnIMxj/IxT80/f26ktEtea86wWqTAzG22X3XI2XYO+VNOnIQDtG0Ud5
         74sM3BvNSmNjYlFNUucEwc8APdL1EXaNiHyrhDA0DRCpsDKHECPjHoompgaWlqGB66Ep
         ZlRt3quEFUIcUjHa86H/knERQBeC+lz4uVsbzBZXjnrmk4t5K9a0NjXfkTQgGQfBBxcB
         wWu4lZ3ZXkOmNRx74igwlZGa957VBhPBCuztoJiMp6soJ/bUNaTOdTG8ad8qEQadzvjE
         KxIZ/+MRmlhkdZQXS1iX0zfKEYeiEBz2YvfnYk2Xuyk7fDu00st8NMgIo0DeVXazhj7T
         Q0yQ==
X-Gm-Message-State: AOJu0YwNr2DelU/t1TRHaCicDmNQ4deAOjUP3ZcoBj5BNgWcCkZfDGOU
	RDCDaRoVfAyq8uHWz26KO2nH6sez7J2m53DNNtnRAUvZhVw8T0IzoqlI7+22KvSAqco=
X-Gm-Gg: ASbGncvuAWtuEn5D9/Aklw4JBaIy3cUaQ4xp2abUsNcCcc37LJAV/ncUsNu/YTBPg7D
	6+n1j5beUjHsAiTlueirsMemLwQWiS2dcdJBrbaizu2SGfPz+berm/Magaiy10/VM3IguBX+a1M
	JHFt20U/dqAGIDvliWYTldXJFG7iWr+66iTqJy1ISvKM2ApIn9dmIErsR+1sFxyspjdAaFAT/V7
	MUeAaVRBJcCGz5IzYm5YSnfLhBbzACHuECEtsednl91oK7luOHUiAY2lH+oru9OZgCqD89kWuO+
	CRlC2BDG94zAMFccyiNb6SJh2JCtY+xzkN2wDElC56I1kaO35ecfAgT/C9sILgQfEoTK8+H7YFE
	UA2cHWwCCKvkpN2GN55ZQtX+GjkfF8CgDTXfJ/5vdIFisIpazsXXL4wtlFpaYvoyfJLgIlWvZhy
	zn
X-Google-Smtp-Source: AGHT+IFOOBmQqczUB5Wv1il1MnrmQncEDyobNOAK6ZBifpU7MHIhVb64NC22uOKz8bl1XjxJvuC6hA==
X-Received: by 2002:a05:600c:1554:b0:450:d37d:7c with SMTP id 5b1f17b1804b1-458b6b2ff8amr65187255e9.21.1754301438512;
        Mon, 04 Aug 2025 02:57:18 -0700 (PDT)
Date: Mon, 4 Aug 2025 11:57:17 +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] x86/CPU: correct reset_cpuinfo() comment
Message-ID: <aJCD_e_8eI1eBQIn@macbook.local>
References: <8b4e75c9-7633-4487-b56d-61218dfb93d9@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <8b4e75c9-7633-4487-b56d-61218dfb93d9@suse.com>

On Wed, Jul 23, 2025 at 02:00:55PM +0200, Jan Beulich wrote:
> Part of it stated the opposite of what actual behavior is.
> 
> Fixes: 7126b7f806d5 ("x86/CPU: re-work populating of cpu_data[]")
> Reported-by: Juergen Gross <jgross@suse.com>
> 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 Mon Aug 04 10:11:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 10:11:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069025.1432866 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uis9q-0002cq-5e; Mon, 04 Aug 2025 10:11:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069025.1432866; Mon, 04 Aug 2025 10:11:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uis9q-0002ci-2J; Mon, 04 Aug 2025 10:11:06 +0000
Received: by outflank-mailman (input) for mailman id 1069025;
 Mon, 04 Aug 2025 10:11:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=c2vN=2Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uis9p-0002cW-Ne
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 10:11:05 +0000
Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com
 [2a00:1450:4864:20::52d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 530c919d-711b-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 12:11:02 +0200 (CEST)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-61553a028dfso3904304a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 03:11: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
 4fb4d7f45d1cf-615a8f26cc6sm6633294a12.23.2025.08.04.03.11.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Aug 2025 03:11: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>
X-Inumbo-ID: 530c919d-711b-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754302261; x=1754907061; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=FnYaJI1V2XWrtQAK1N+wRN1uuvnOhji6nallZ3Lyaf4=;
        b=FWud6tk/q12mtfQs/HYTVqSprcSWbffBn5ITYiAplovoiL4obP5k6QkQ4dwo0tFe9j
         XY9rg8uSiIEgIJcrd4Cto+4CwioXuoCAQ1EQJIwFwO4SFzwz77aPcf14D7loJGOhMG2J
         SysLXABrin9w71sK2kLwPxjWFL+5c9PVQ5VUWxbatcdHFbHXkSTp7d9EnHxT1UTbKW8T
         3lQhN6a+bv2ryh+rG4HLqYoPnfozPAA7sU/ESolbtTOfKgdcdbUlBgwWLmp3uvT7QCMy
         wLulhG/DFF4TqXTf1bDnw2k5KNXIMgHpfyRTY+j1sXSD/kGLbNVkFOj2/2aUDmwBaoh3
         apKw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754302261; x=1754907061;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=FnYaJI1V2XWrtQAK1N+wRN1uuvnOhji6nallZ3Lyaf4=;
        b=wUgi8+asqVdctOtnSsjiFu2dXHwNyPft+DojDVgMXWKWKa7IPmKIAowFiFKnQkTZvZ
         qIX24+VH6oeZUbwYtDeYY8GRNGWgfj1MBrWX1uiK9TwOmP2M7CYlEDna2cT+JRZ8IJo/
         tCabKbZgtZIDXvhZd61h2uIVPUCDT93dWmvd2yr6xcQIxPLOxQXG5Y9yFJ7zLcKaWqBn
         N/E/YzvGurJlPp/l0Us42IvQn2hAyj8xYyZO6f/HlvGfyOFcu1O/+bIEPGOah5mTWrHK
         sDzbv+Q80iNiBiOOfaBFxSgn8dgcGHrBatPNkvVebgyBISvklyGEEY+d2ntukMI687LU
         NcMw==
X-Forwarded-Encrypted: i=1; AJvYcCUOqe8bizHKT6CyR5XJlvTMQgoaVPxlvIAZ/jtTIXLWbREvUV6ekIMbjxIy6ttu69h4V1QqrZ5IqU0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwQ1WMyVyrDAKY3b7vpffa/lLxES574PB98GxbSC5nvmKfpN/uk
	cVkI0LBFkIAb1dGR8/JP6bfp8foMxpD4ACCglnWlsHWojNwdsGzfc1Jlbg2oEeG2YQ==
X-Gm-Gg: ASbGncuCxjMTc9vE+vt8e+zZ2tLwC8RDgpYtuswGso9RjdPolti4yz9fA/Q/KH4ZDXL
	MQIw/GYaRJtGeRZJI4z3x5bTcJ0c7hVTQs2cYrZvIbiIrvlwZMDUjRWX7cMJ2hIa0oeZ/+J9zu3
	Fw+kdAkOiFmx8QDL4PAaRplp1ifW5lT7qXY7Geqi4oDa0ToHhxpzNodUrlD0t9+0FFUEIPJf/XW
	bypvD2X+s6qdgnT72o631cvSDcw5+VJVYOlESaGcd9L59MBvIxQQSRkYHXga/iJKFZ/G8R5aKke
	CGg/Bqj1tha9/jXgAaqyrA4nkJE+hWhuoG9Gxe9OToRcu1lijb2hoc0VG1mW5q8GdXl0N2s9yAb
	Gj7vXHZU0dGr4bJVRsA2/1ev9AVrD4+fZ79ga+DrfNVv9+997yQk3V1kdW80JYTlOzR29EtEpoM
	WqI4nHSzg=
X-Google-Smtp-Source: AGHT+IHfg8UkPao3X4ZCKd/GRrvOlp8iAmbzRvf9iVZtCTDK3F335VBwhMrDttEIt6p+/Xgbhk472w==
X-Received: by 2002:a17:907:9407:b0:af9:3eea:65bd with SMTP id a640c23a62f3a-af940248c89mr874133266b.61.1754302261413;
        Mon, 04 Aug 2025 03:11:01 -0700 (PDT)
Message-ID: <a416cc08-5970-433a-8015-5d2aa961a000@suse.com>
Date: Mon, 4 Aug 2025 12:11:03 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 2/8] emul/vuart: introduce framework for UART emulators
To: dmkhn@proton.me
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
References: <20250731192130.3948419-1-dmukhin@ford.com>
 <20250731192130.3948419-3-dmukhin@ford.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: <20250731192130.3948419-3-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 31.07.2025 21:21, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com> 
> 
> Introduce a driver framework to abstract UART emulators in the hypervisor.
> 
> That allows for architecture-independent handling of virtual UARTs in the
> console driver and simplifies enabling new UART emulators.
> 
> The framework is built under CONFIG_HAS_VUART, which will be automatically
> enabled once the user enables any UART emulator.

Yet then still - why "HAS"? Call it just VUART or VUART_FRAMEWORK or some such.

> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -1,6 +1,8 @@
>  
>  menu "Common Features"
>  
> +source "common/emul/Kconfig"
> +
>  config COMPAT

Why at the very top?

> --- a/xen/common/Makefile
> +++ b/xen/common/Makefile
> @@ -11,6 +11,7 @@ obj-$(filter-out $(CONFIG_X86),$(CONFIG_ACPI)) += device.o
>  obj-$(CONFIG_DEVICE_TREE_PARSE) += device-tree/
>  obj-$(CONFIG_IOREQ_SERVER) += dm.o
>  obj-y += domain.o
> +obj-y += emul/
>  obj-y += event_2l.o
>  obj-y += event_channel.o
>  obj-$(CONFIG_EVTCHN_FIFO) += event_fifo.o
> diff --git a/xen/common/emul/Kconfig b/xen/common/emul/Kconfig
> new file mode 100644
> index 000000000000..7c6764d1756b
> --- /dev/null
> +++ b/xen/common/emul/Kconfig
> @@ -0,0 +1,6 @@
> +menu "Domain Emulation Features"
> +	visible if EXPERT
> +
> +source "common/emul/vuart/Kconfig"
> +
> +endmenu
> diff --git a/xen/common/emul/Makefile b/xen/common/emul/Makefile
> new file mode 100644
> index 000000000000..670682102c13
> --- /dev/null
> +++ b/xen/common/emul/Makefile
> @@ -0,0 +1 @@
> +obj-$(CONFIG_HAS_VUART) += vuart/

With this you can ...

> --- /dev/null
> +++ b/xen/common/emul/vuart/Makefile
> @@ -0,0 +1 @@
> +obj-$(CONFIG_HAS_VUART) += vuart.o

... use the simpler obj-y here.

> --- /dev/null
> +++ b/xen/common/emul/vuart/vuart.c
> @@ -0,0 +1,112 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * UART emulator framework.
> + *
> + * Copyright 2025 Ford Motor Company
> + */
> +
> +#include <xen/errno.h>
> +#include <xen/sched.h>
> +#include <xen/vuart.h>
> +
> +#define VUART_ARRAY_SIZE    (__start_vuart_end - __start_vuart_array)
> +
> +#define for_each_vuart(vdev) \
> +    for (unsigned __i = 0; \
> +         __i < VUART_ARRAY_SIZE && (vdev = __start_vuart_array[__i], 1); \
> +         __i++)

Nit: Xen style please. Any preferably no leading underscores; in no case
two of them.

> +extern const struct vuart_ops *const __start_vuart_array[];
> +extern const struct vuart_ops *const __start_vuart_end[];

Is there an actual need for this extra level of indirection? It is in the
process of being done away with for vPCI.

> +int vuart_add_node(struct domain *d, const void *node)
> +{
> +    const struct vuart_ops *vdev;
> +    int rc;
> +
> +    for_each_vuart(vdev)
> +    {
> +        if ( !vdev->add_node )
> +            continue;
> +
> +        rc = vdev->add_node(d, node);

Here and below - shouldn't you call hooks only when the kind of driver is
actually enabled for the domkain in question?

> +        if ( rc )
> +            return rc;
> +    }
> +
> +    return 0;
> +}
> +
> +int vuart_init(struct domain *d, struct vuart_params *params)
> +{
> +    const struct vuart_ops *vdev;
> +    int rc;
> +
> +    if ( !domain_has_vuart(d) )
> +        return 0;
> +
> +    for_each_vuart(vdev)
> +    {
> +        rc = vdev->init(d, params);
> +        if ( rc )
> +            return rc;
> +    }
> +
> +    d->console.input_allowed = true;

Unconditionally?

> +void vuart_deinit(struct domain *d)
> +{
> +    const struct vuart_ops *vdev;
> +
> +    for_each_vuart(vdev)
> +        vdev->deinit(d);
> +}

I can perhaps see why this hook wants to uniformly be set, but ...

> +void vuart_dump_state(const struct domain *d)
> +{
> +    const struct vuart_ops *vdev;
> +
> +    for_each_vuart(vdev)
> +        vdev->dump_state(d);
> +}

... state dumping pretty surely wants to be optional?

> +/*
> + * Put character to the first suitable emulated UART's FIFO.
> + */

What's "suitable"? Along the lines of the earlier remark, what if the domain
has vUART kind A configured, ...

> +int vuart_put_rx(struct domain *d, char c)
> +{
> +    const struct vuart_ops *vdev = NULL;
> +
> +    ASSERT(domain_has_vuart(d));
> +
> +    for_each_vuart(vdev)
> +        if ( vdev->put_rx )

... but only kind B offers this hook?

> +            break;
> +
> +    return vdev ? vdev->put_rx(d, c) : -ENODEV;

The check for NULL helps for the "no vUART drivers" case, but it won't
help if you exhausted the array without finding a driver with the wanted
hook.

> +}
> +
> +bool domain_has_vuart(const struct domain *d)
> +{
> +    uint32_t mask = 0;

unsigned int?

> --- a/xen/common/keyhandler.c
> +++ b/xen/common/keyhandler.c
> @@ -22,6 +22,7 @@
>  #include <xen/mm.h>
>  #include <xen/watchdog.h>
>  #include <xen/init.h>
> +#include <xen/vuart.h>
>  #include <asm/div64.h>
>  
>  static unsigned char keypress_key;
> @@ -354,6 +355,8 @@ static void cf_check dump_domains(unsigned char key)
>                             v->periodic_period / 1000000);
>              }
>          }
> +
> +        vuart_dump_state(d);

How verbose is this going to get?

> --- /dev/null
> +++ b/xen/include/xen/vuart.h
> @@ -0,0 +1,84 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * UART emulator framework.
> + *
> + * Copyright 2025 Ford Motor Company
> + */
> +
> +#ifndef XEN_VUART_H
> +#define XEN_VUART_H
> +
> +#include <public/xen.h>
> +#include <public/event_channel.h>
> +#include <xen/types.h>

The order is wrong - types must be available before public headers are included.

> +struct vuart_params {
> +    domid_t console_domid;
> +    gfn_t gfn;
> +    evtchn_port_t evtchn;
> +};
> +
> +struct vuart_ops {
> +    int (*add_node)(struct domain *d, const void *node);
> +    int (*init)(struct domain *d, struct vuart_params *params);
> +    void (*deinit)(struct domain *d);
> +    void (*dump_state)(const struct domain *d);
> +    int (*put_rx)(struct domain *d, char c);
> +};
> +
> +#define VUART_REGISTER(name, x) \
> +    static const struct vuart_ops *const __name##_entry \
> +        __used_section(".data.vuart." #name) = (x);
> +
> +#ifdef CONFIG_HAS_VUART
> +
> +int vuart_add_node(struct domain *d, const void *node);
> +int vuart_init(struct domain *d, struct vuart_params *params);
> +void vuart_deinit(struct domain *d);
> +void vuart_dump_state(const struct domain *d);
> +int vuart_put_rx(struct domain *d, char c);
> +bool domain_has_vuart(const struct domain *d);
> +
> +#else
> +
> +static inline int vuart_add_node(struct domain *d, const void *node)
> +{
> +    return 0;
> +}
> +
> +static inline int vuart_init(struct domain *d, struct vuart_params *params)
> +{
> +    return 0;
> +}
> +
> +static inline void vuart_deinit(struct domain *d)
> +{
> +}
> +
> +static inline void vuart_dump_state(const struct domain *d)
> +{
> +}
> +
> +static inline int vuart_put_rx(struct domain *d, char c)
> +{
> +    ASSERT_UNREACHABLE();
> +    return -ENODEV;
> +}
> +
> +static inline bool domain_has_vuart(const struct domain *d)
> +{
> +    return false;
> +}

With this, some of the other stubs should not be necessary. Declarations
will suffice, e.g. for vuart_put_rx().

> --- a/xen/include/xen/xen.lds.h
> +++ b/xen/include/xen/xen.lds.h
> @@ -194,4 +194,14 @@
>  #define VPCI_ARRAY
>  #endif
>  
> +#ifdef CONFIG_HAS_VUART
> +#define VUART_ARRAY     \
> +       . = ALIGN(POINTER_ALIGN); \
> +       __start_vuart_array = .;  \
> +       *(SORT(.data.vuart.*))    \

This is r/o data afaict, so would want naming .rodata.vuart.*. Which in
turn means the uses of the macros need to move up in the linker scripts.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 10:20:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 10:20:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069034.1432876 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uisIf-0005P0-Vx; Mon, 04 Aug 2025 10:20:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069034.1432876; Mon, 04 Aug 2025 10:20:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uisIf-0005Ot-Sr; Mon, 04 Aug 2025 10:20:13 +0000
Received: by outflank-mailman (input) for mailman id 1069034;
 Mon, 04 Aug 2025 10:20:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=c2vN=2Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uisIe-0005OZ-KP
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 10:20:12 +0000
Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com
 [2a00:1450:4864:20::530])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9aa0f61f-711c-11f0-a321-13f23c93f187;
 Mon, 04 Aug 2025 12:20:11 +0200 (CEST)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-615c8ca53efso6590427a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 03:20: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
 4fb4d7f45d1cf-6176052d163sm944386a12.48.2025.08.04.03.20.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Aug 2025 03:20:10 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9aa0f61f-711c-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754302811; x=1754907611; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ngxG24gtmdeLe70doGO2EN3TZL4REuYZqRMoH/TkfnQ=;
        b=V8Osc/80GIERpkWWkqlqEtV6OIyW4tGxZY3YtODKkpnyhDenZ5rP+53idveTlK4Tbb
         4x7h5J9266XrUwpUkLowV7Lm7gzhiQh2E6PQRygDC82f3ezXs85qxHHYvQNS6b4z6T8P
         gJztG3J6N87ZjAG2iXZBNCdCxHptfDbuKM2nEBkaxQsfBm8LhD9ic9cPfymCIsr4Jyu9
         aUUOjXwWVJFXlFx4W4zbyEVF6vgLbBoVRz0tmUsRfnQpP5Nz76IBQbbOkmCfdKefGoIA
         kfalp7doQZgiCWranWeB+eCCcHjLLXlxTMGrIZBpE6LZQ12o695oFj/u7uFjbNCpJjhG
         vCdA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754302811; x=1754907611;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ngxG24gtmdeLe70doGO2EN3TZL4REuYZqRMoH/TkfnQ=;
        b=tfpjz3mcRqgul3zhxe0EXkdgRY1nrvlvYpWlZu4d3nUSnXCnB5NxXHF/NEvxTN0Q5E
         lOV/SZJ146lAZKsK0Fxsz2i17WfwVQdNfOSxDnjHCFZC81W1hZal4JV0coigZ5qFdb5I
         hy92bUbwVfaA2wHg813kuRUSA882WaFjVRVSt1nJS2P++/cTf+rYIDfHT8ML17WiLcdP
         l8OzPyHdChjUCbzzntys/wGKHs0boOFho/i/8zMI2v/tbqXHApmxc9AnS3tbTA/Y2xnG
         7a+QltgZZ9xQ4ZIOBNV5UsrkyiRiAhHM+b+2zD7Dq4cWcLwmYgRjHsvm+RqcjpXY1H11
         r/mw==
X-Forwarded-Encrypted: i=1; AJvYcCUopoOJHgyFh1vjbYpsJl5gTRXk/dIkIaXqv5bJJpcSbXxDIIZuER57LD5rnQLzjUam9+X4s26lKIQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwBObLcd7iSXWdwNvMYKHs0gpLRU4oPxEWWosVBEotNYvDttPIX
	AAlLxukOUH8GaY2VgCMuiiToMRZT9RqPF301X4tfuqSTzaIq9fFgrygJzA3tM46J5w==
X-Gm-Gg: ASbGncuLoiTeIfqh2eS+1+Y8CP5mZmeiM2UZNW4dN4SjF6ySpDvGfjDL82XEg3pbSLj
	iuSb2aNvjT4ESt3uKpNm2udGLrdFcLo0fjBuPLZDm2A0cWBdpGyEQDq8OJnh9RqsPWOnlTHlBtE
	y90ternadShqSslHSAo0P4hjlf1OVbnKJPdjFH36+SxH93ijP6inC0+5YYlb8ErvnZw4wNFwado
	dx4IscJOnW21KQl/Sl9SZCaruq3tFuZUt4sPsmZJjHqeaSURfp97KnAn1W/lfZCPR8IGGgt7Zi7
	V6WcSDvnSCI5tcGU9QjyQTMEF+Veu4U3oMNYbaCjN1RJOaX8+GvES46klyowVviooWcKwzinS5k
	Ng63dgiwf5YcTebnrjGpaE5BZXlPBS63fk7/03KTpjrRLm5KtB1VGWv70T/13HVFBHHJF4rb9CG
	RxHowDx5Q=
X-Google-Smtp-Source: AGHT+IEKY1Av/KABrUK8QD+D0aWKj+S8xbai1oAZMCW8YOWW6VIcl5KKgUB5yuUthxXO86WmOfyI5g==
X-Received: by 2002:a05:6402:1d4a:b0:615:b9cf:ef3b with SMTP id 4fb4d7f45d1cf-615e71749cemr7354078a12.34.1754302810973;
        Mon, 04 Aug 2025 03:20:10 -0700 (PDT)
Message-ID: <032daad1-29a0-48ca-9f50-5234d42a3ea1@suse.com>
Date: Mon, 4 Aug 2025 12:20:11 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 3/8] x86/domain: allocate d->{iomem,irq}_caps before
 arch-specific initialization
To: dmkhn@proton.me
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
References: <20250731192130.3948419-1-dmukhin@ford.com>
 <20250731192130.3948419-4-dmukhin@ford.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: <20250731192130.3948419-4-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 31.07.2025 21:21, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com> 
> 
> Move IRQ/IOMEM rangesets allocation before arch_domain_create().
> 
> That guarantees that arch-specific code could access those rangesets to
> register traps for emulation.
> 
> It is necessary for those emulators registering trap handlers and ensuring
> that emulated IRQs are not shared with the physical IRQs.
> 
> Move dom0_setup_permissions() call right after I/O rangesets are allocated.
> 
> Move pvh_setup_mmcfg() inside dom0_setup_permissions() close to the place
> where MMCFG ranges are initialized.

And this is just because you like doing so? I ask because first and foremost
I can't make the connection between this and the purpose of this patch.

> --- a/xen/arch/x86/dom0_build.c
> +++ b/xen/arch/x86/dom0_build.c
> @@ -471,6 +471,24 @@ static void __init process_dom0_ioports_disable(struct domain *dom0)
>      }
>  }
>  
> +static void __hwdom_init setup_mmcfg(struct domain *d)

Why __hwdom_init when ...

> @@ -480,6 +498,14 @@ int __init dom0_setup_permissions(struct domain *d)
>      if ( pv_shim )
>          return 0;
>  
> +    /*
> +     * MMCFG initialization must be performed before setting domain
> +     * permissions, as the MCFG areas must not be part of the domain IOMEM
> +     * accessible regions.
> +     */
> +    if ( is_hvm_domain(d) )
> +        setup_mmcfg(d);

... the sole caller is __init?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 10:23:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 10:23:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069046.1432885 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uisLw-0006az-GF; Mon, 04 Aug 2025 10:23:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069046.1432885; Mon, 04 Aug 2025 10:23: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 1uisLw-0006as-DZ; Mon, 04 Aug 2025 10:23:36 +0000
Received: by outflank-mailman (input) for mailman id 1069046;
 Mon, 04 Aug 2025 10:23:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=c2vN=2Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uisLv-0006ab-Iz
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 10:23:35 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 13060253-711d-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 12:23:33 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-af8f5e38a9fso725037266b.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 03:23: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
 a640c23a62f3a-af91a07643asm714519866b.15.2025.08.04.03.23.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Aug 2025 03:23: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>
X-Inumbo-ID: 13060253-711d-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754303013; x=1754907813; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=U4/17IAWRi9p7molx6IEgMqCYH29SaH9YLUZcXW9ikI=;
        b=CPXZKvmcqbmtgMXrWErJ84QkaDhRZV97irSCRoloG5TpBy3nwxcOLq4xcfPxxXnPMw
         0V5rIowjR9Z3+kOp+61qGjVjAS2BNVbnvgPMwPNFuRPdD022AQcQn5Je2bL57XAQe4/m
         +zJGUSbdJNcPfdCJ/gQ6+zuZ6IPXYTix2xONYqkihqK+/bBXVaiNxTRKev9eDSwIy1iY
         nXnYBUmz8MdthTIgw8zVrO1pPA4rFmQ5ikO4ja9D7O6nXRIqUFbjGIgfXM0s8uiOssOL
         wkUe+RZ7ybB14u9tUiVG9efTUTE1iSA8moqmmTvbXFKll1KFVQe20QXq+JgNToQN9Cnx
         xQIw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754303013; x=1754907813;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=U4/17IAWRi9p7molx6IEgMqCYH29SaH9YLUZcXW9ikI=;
        b=IL+sv5Qx9hr2NWI5970Q8FPHPzimf5tdmB8ViN+Z1SwIlmrexcGXQZo3aJOWqdo8xb
         TYyoFFsvbhZjigf4XiR/XUFMDJs8iOn4NSlI4kKqeKlQ50lxyzRmIyf9v0qFdTQIYM7A
         iDzkg1DyISyhGzcUHbqvuFImj5yaRp9481KOt1JY2SSjmZhPMOSwSaCvpuX+w+mMuJ+b
         qmopUjLU2qJAJShNrw1BuXZlb8DuhXtYmcjyG8Xmreuc1BWMT/0MwNVqckG47UUH90Y+
         JIHvNonwaiJldVPxPY+LKIdtAlvJlaeSylo1uEQixusNx33O0dQbjDESBR2kaUGMduev
         AfVQ==
X-Forwarded-Encrypted: i=1; AJvYcCX3EBXgRRLJCJk2gX+OIxwjC/qtzk2I4S78+BUZ9NKYp89oYpW9L8aHFBIv02pFMPWVjVpvfc1lzm4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxcSbWxj8ztI0cH2hVg3PKK8YGYOLqmMmOhz7JI23nAAYwnpwDU
	W9bzPU1hQXtKHDggk58DW8xW61ufSDfp3Lb+xSNqA7rW78zZmCMQLCQbF02uiTNa2g==
X-Gm-Gg: ASbGncsSz8fyGvU/ei3pau7L2cBQmIjNKFx0scxQL2bFqE/D4gWbupS6FPUila1crcu
	VJO669ZUtP3nP7+gPp16M0zPIrk9QznX4B1wu3hnGLOktIQs5nmOtZPxUTUhYdwvIRz7InfQ27K
	kUeO1MJpq56RNQcpDOenjRKrvphNu9kDOhFOISvHElSGJKJmvVGcILVJeNHeSESXtln+M9jyfH4
	cK/7j7rYUUAr/kEHQ9JpOHpMgn1xwRZQoNxtc9AikgiWPJPtJa/OKzQlVMXAiqndeKjSv5Uypp4
	VnAVTY/Tj2EYS3/UBnG/qlnG+zGS9za1APioAJQRi6OnjnBpljQ8PHG+qnFYiY70PYjBnvckWAQ
	rQrmjwTAPI2uonPYfxzCibUtqrAVRlnQYe9dZy53L1qtjc9CA136vUcBVHV+TljWzsNLcnYMlnr
	oKvRghTSGIAF5up9F63g==
X-Google-Smtp-Source: AGHT+IGAQwVMmL2ok3cQ9Djkh/UxhIOXjTupYD9FwM5Br73TQwm/JdbI+2SwNW9FBSI0FM3Sg/U8ng==
X-Received: by 2002:a17:906:1d47:b0:af9:5260:9ed6 with SMTP id a640c23a62f3a-af95260aa04mr610482866b.3.1754303013032;
        Mon, 04 Aug 2025 03:23:33 -0700 (PDT)
Message-ID: <b207d809-bd2a-43fb-9592-58e8c37de31a@suse.com>
Date: Mon, 4 Aug 2025 12:23:34 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 4/8] xen/8250-uart: update definitions
To: dmkhn@proton.me
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
References: <20250731192130.3948419-1-dmukhin@ford.com>
 <20250731192130.3948419-5-dmukhin@ford.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: <20250731192130.3948419-5-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 31.07.2025 21:22, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com> 
> 
> Added missing definitions needed for NS16550 UART emulator.
> 
> Newly introduced MSR definitions re-used in the existing ns16550 driver.
> 
> Also, corrected FCR DMA definition bit#3 (0x08) as per:
>   https://www.ti.com/lit/ds/symlink/tl16c550c.pdf
> See "7.7.2 FIFO Control Register (FCR)".
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
> Changes since v3:
> - feedback addressed
> - made use of new UART_MCR_XXX bits in ns16550 driver
> - Link to v3: https://lore.kernel.org/xen-devel/20250103-vuart-ns8250-v3-v1-19-c5d36b31d66c@ford.com/
> ---
>  xen/drivers/char/ns16550.c  |  6 ++---
>  xen/include/xen/8250-uart.h | 50 ++++++++++++++++++++++++++++++-------
>  2 files changed, 44 insertions(+), 12 deletions(-)
> 
> diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c
> index df7fff7f81df..a899711e2a8b 100644
> --- a/xen/drivers/char/ns16550.c
> +++ b/xen/drivers/char/ns16550.c
> @@ -739,9 +739,9 @@ static int __init check_existence(struct ns16550 *uart)
>       * Check to see if a UART is really there.
>       * Use loopback test mode.
>       */
> -    ns_write_reg(uart, UART_MCR, UART_MCR_LOOP | 0x0A);
> -    status = ns_read_reg(uart, UART_MSR) & 0xF0;
> -    return (status == 0x90);
> +    ns_write_reg(uart, UART_MCR, UART_MCR_LOOP | UART_MCR_RTS | UART_MCR_OUT2);
> +    status = ns_read_reg(uart, UART_MSR) & UART_MSR_STATUS;
> +    return (status == (UART_MSR_CTS | UART_MSR_DCD));
>  }
>  
>  #ifdef CONFIG_HAS_PCI
> diff --git a/xen/include/xen/8250-uart.h b/xen/include/xen/8250-uart.h
> index d13352940c13..bc11cdc376c9 100644
> --- a/xen/include/xen/8250-uart.h
> +++ b/xen/include/xen/8250-uart.h
> @@ -32,6 +32,7 @@
>  #define UART_MCR          0x04    /* Modem control        */
>  #define UART_LSR          0x05    /* line status          */
>  #define UART_MSR          0x06    /* Modem status         */
> +#define UART_SCR          0x07    /* Scratch pad          */
>  #define UART_USR          0x1f    /* Status register (DW) */
>  #define UART_DLL          0x00    /* divisor latch (ls) (DLAB=1) */
>  #define UART_DLM          0x01    /* divisor latch (ms) (DLAB=1) */
> @@ -42,6 +43,8 @@
>  #define UART_IER_ETHREI   0x02    /* tx reg. empty        */
>  #define UART_IER_ELSI     0x04    /* rx line status       */
>  #define UART_IER_EMSI     0x08    /* MODEM status         */
> +#define UART_IER_MASK \
> +    (UART_IER_ERDAI | UART_IER_ETHREI | UART_IER_ELSI | UART_IER_EMSI)

At the example of this: It having no users here, how are we to know it'll
gain some (and hence be useful)? Adding missing base definitions is imo
fine without immediate users, but for derived ones it's less clear.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 10:29:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 10:29:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069059.1432896 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uisRO-0007xP-3L; Mon, 04 Aug 2025 10:29:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069059.1432896; Mon, 04 Aug 2025 10: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 1uisRO-0007xG-0T; Mon, 04 Aug 2025 10:29:14 +0000
Received: by outflank-mailman (input) for mailman id 1069059;
 Mon, 04 Aug 2025 10:29:12 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=OEzl=2Q=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1uisRM-0007wy-MN
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 10:29:12 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dbfb706c-711d-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 12:29:10 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-458b2d9dba5so15265935e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 03:29:10 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-459db13fc9fsm30856485e9.7.2025.08.04.03.29.09
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 04 Aug 2025 03: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>
X-Inumbo-ID: dbfb706c-711d-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754303350; x=1754908150; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=8vClUXJhUpuoh7CnHcfaCZgW4SzxzXpIo0zCxVTo3fg=;
        b=URBuPBdy6nvEmEqH/5ZrdMiH+9WvxgYvRPEIUdlpfFLbi7GmUsl0KIgcGHoIcBMwX/
         LmpNq2XX7qQO9Pk8I/CFD4P0MwYJOmoHj9Y81p7FRNKF3qOh0nfd6uE9HT090dfjVcqW
         IUiD7MCffGbFkCgJ0DhnZAK8oBjfr021thXQ4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754303350; x=1754908150;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=8vClUXJhUpuoh7CnHcfaCZgW4SzxzXpIo0zCxVTo3fg=;
        b=hbWnLq2rtJIh49sKki6TswgixIIM40WEED5KO42Nq9EgLwMO86XMYyNm8BdtBoOcCt
         xSE6Uk+wgB8fIyAiU4KH89S9BWkrDKWxW8nuLv+Eo9vibL2U6cE70+M54AAZTwiNvJAQ
         mKDZFIHe8FgWpGHRT4R8u59Jj0RIBQOXb58OccGUN76LBUnDbydZaf0t0zt4JHdCMCDQ
         D+4kWifF6GccXAe8Ro2tFq9EkaApgXfya+b0WXx37VlD8BeIh5EJ9ghf1NhntUekLLpU
         7iad/W2A6/781R2SO4ldfbollnGSwzyieksQJd9V5XKEGloKlQkLLjPjuyEyoL5+Pu5G
         n61Q==
X-Gm-Message-State: AOJu0YyS2JxBNQqholZJW5ypqOPEEC2Oop5l2viU7TKKV4YGPIS8NDl6
	F+zOjD0TqdHEro7R3S7Fclwt+uoMUPOGGlD/pnpNTY1fsssezdiAnvJrQfifkqyw5Hw=
X-Gm-Gg: ASbGnctpOXwciyFtIHJIdJxG/vuFeVZDqcfD9s91+duCdt76L3RNZCIc7JgExzPBcWV
	8cfGCWg+xlDSOf9FrkSFC2+fFV/zKHpzSc0nQ9NEaw3WczpC6Xdl41+Fkb8PY0t2afgX9P9OWfb
	7osh5DnBV2SLQrLYUyqrNT3oQgDlC0bqh/3EzD5/066Fjc1kxv5nG8jYEkqI6HpY9gc3FF6+u6X
	so5qGhkuGla16scqApmBTcrYLfock+MeSe3ysQwkq66/ulTk3bU4Njl1SLX1dWf1I6yZr+NM2kb
	t82lvC7rIKNZyeBQERFVaDGeXdus1TP9nfdp6MLpwacX/trrbsfTyxm1oo0VGW1msRxHpOAKVp1
	Je0Mwpa5Wd20GrbYE+w94IcTd5sBUZso+IXt2r0QjXi2kcnArYOkKkyMQ2+unQTrKfg==
X-Google-Smtp-Source: AGHT+IEgLLRi277VF7PhGUVEIscnnyYelwd8YqyTSKre0u1CCFwQRh+iN671coCn7Yh5ObFJY6PaZQ==
X-Received: by 2002:a05:600c:1e87:b0:456:1121:3ad8 with SMTP id 5b1f17b1804b1-458b69de1e5mr72175415e9.10.1754303350190;
        Mon, 04 Aug 2025 03:29:10 -0700 (PDT)
Date: Mon, 4 Aug 2025 12:29:08 +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,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH v3 4/8] pdx: allow per-arch optimization of PDX
 conversion helpers
Message-ID: <aJCLdAF21yTc6_yZ@macbook.local>
References: <20250724110416.2081-1-roger.pau@citrix.com>
 <20250724110416.2081-5-roger.pau@citrix.com>
 <4a051d46-d2f9-4dd7-9927-146834054579@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <4a051d46-d2f9-4dd7-9927-146834054579@citrix.com>

On Tue, Jul 29, 2025 at 03:54:24PM +0100, Andrew Cooper wrote:
> On 24/07/2025 12:04 pm, Roger Pau Monne wrote:
> > diff --git a/xen/arch/arm/include/asm/Makefile b/xen/arch/arm/include/asm/Makefile
> > index 4565baca6a4d..cec13c889dab 100644
> > --- a/xen/arch/arm/include/asm/Makefile
> > +++ b/xen/arch/arm/include/asm/Makefile
> > @@ -5,6 +5,7 @@ generic-y += hardirq.h
> >  generic-y += iocap.h
> >  generic-y += irq-dt.h
> >  generic-y += paging.h
> > +generic-y += pdx.h
> >  generic-y += percpu.h
> >  generic-y += random.h
> >  generic-y += softirq.h
> 
> Please could I talk you into using __has_include__, as I'm slowly trying
> to purge asm-generic.
> 
> > diff --git a/xen/include/xen/pdx.h b/xen/include/xen/pdx.h
> > index 10153da98bf1..91fc32370f21 100644
> > --- a/xen/include/xen/pdx.h
> > +++ b/xen/include/xen/pdx.h
> > @@ -159,6 +159,14 @@ static inline paddr_t directmapoff_to_maddr(unsigned long offset)
> >  
> >  #endif /* CONFIG_PDX_MASK_COMPRESSION */
> >  
> > +/*
> > + * Allow each architecture to define it's (possibly optimized) versions of the
> > + * translation functions.
> > + *
> > + * Do not use _xlate suffixed functions, always use the non _xlate variants.
> > + */
> > +#include <asm/pdx.h>
> > +
> 
> You want:
> 
> #if __has_include__(<asm/pdx.h>)
> # include <asm/pdx.h>
> #else
> 
> // common defaults.
> 
> #endif
> 
> here.Â  This lets you implement the x86 special case only, and keeps all
> the common logic in one file.

Sure, I wasn't aware of this functionality.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 10:54:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 10:54:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069068.1432906 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uisp9-00065K-V3; Mon, 04 Aug 2025 10:53:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069068.1432906; Mon, 04 Aug 2025 10:53: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 1uisp9-00065D-SE; Mon, 04 Aug 2025 10:53:47 +0000
Received: by outflank-mailman (input) for mailman id 1069068;
 Mon, 04 Aug 2025 10:53:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=c2vN=2Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uisp8-000657-DX
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 10:53:46 +0000
Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com
 [2a00:1450:4864:20::536])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4596847f-7121-11f0-a321-13f23c93f187;
 Mon, 04 Aug 2025 12:53:36 +0200 (CEST)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-615378b42ecso5389876a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 03:53:36 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a1e8359sm713248066b.89.2025.08.04.03.53.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Aug 2025 03:53:35 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4596847f-7121-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754304816; x=1754909616; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=5thSatIIffGJF2EE/O1+kPAkc3FW/i8kZdo7nDThmU8=;
        b=Gcew6F6KbY3g+Ml3RSpChxoNzHvmIt4c+CZlmmVyWUuSNAm9JNOeo/jiC7IMO2NAD6
         XENkJO9oYjzHzGOhQZjdqCY9Ly5l9V3E7H/2lH6IvkEGLybCiXnv42wnSZqfJ70W/Go8
         ua6DUs6UjmRRIzqjzKAaH04OAnJHyXxQKwZNqUWDV+bteYEUHpstJPXm6Pmq87lwCapK
         2g1cuQfJbg1FCrJU2Ucf4tRJmiU1DRHoQTtW6sSRIF2l0D6oO8zO8mGGGlRb1PA9mgRl
         8jjgnqYw+E+bXI+1fmj4jT9DlFSqcgZHwOIh/9kQrlScGEv55UMwjwTbd8zami2f3LsU
         UZnQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754304816; x=1754909616;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5thSatIIffGJF2EE/O1+kPAkc3FW/i8kZdo7nDThmU8=;
        b=BvXf3wukB+qDeOfp/kcLg2g1Si7ohsYkkyZom7e1cjwRqj7VyWQ2BjHfPnxTaPQyfU
         VFc4tUr7wix2EVZDkRVt5aHrdsDNNxVUJb6goOw8pICTbzdGu44u7llRq+PTKZ2p+Akm
         hGsWKDDsmdOK3yiLFC+hdXeaR4hsw35CB2u5RJ+ERX+8cByPhW/DwwY+DfQPXEXLxdo1
         08utbLYufHkjIVeMoZvcSNu2kErI1E4QL/O56N0b9vj0j6q4PPSTbju6HPPTsezvYSst
         a3Wl8T6mj73IjxFuGcx1CmVR9wS7PBWWwlDP1Qa/CBUMM5a86sE2e+EjTqhcrfyxraPP
         9zcQ==
X-Forwarded-Encrypted: i=1; AJvYcCWcg44WHTff3Z0NOlCMgq8VrerQAsdT+hT9B4W+PGe4L5VWlxSBz8vrOps3jI8O2OlCvs+AtKiOHtM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxzV4NuCGkrS+V8yxa3Zd/mnCL6y7R2m6yEhJ/Hzc6v05KP7OxZ
	NqeMl9+qtDfpm+ftdJCYyzb/iZkRGpiQXt5j6ojDIzQUNY4MJb/eL8AeIGK9/Qpw1w==
X-Gm-Gg: ASbGncsbTOLq6BDDTXfqDgZca3/SMngB5++YfLW+tTdqhc6poBiQ4uWFiVWoQWvGhRE
	RAz73TBgQs3O9npA0wZ2xdCkrF+TMIIEctqCxfDBikQx8S9fmu01bgmxGWpnx/dZkkCrkXMVuPu
	6zaDn2UBjEHbki9WFAQ7qCtcigDcMm3usUuYNbw34UFgBOeOed9DtRPX7f9frLDf+5zxaOXVxtj
	rALVs+1iEYtEfRA7r0bCitO5w2M1VppkFB7Z3ajdA8gRZSd83CQjewHHrRC6IxUICqseOps1lvE
	2DZF9REQgAEmCQnPCfZ4bD1o+2hcPXyvG3WUVGfssaU/l9F0yYCV9h5Si7Yz79Q/8gr1NestDLM
	G6X/6IKPhMNjK8OneQCJRy6+ebssvD5QmJnPoSM0O+4YrXzy9KzLt7Ulmhs39PU19qO/s3ZJbhD
	92upIArmo=
X-Google-Smtp-Source: AGHT+IFd2dXEDINpICav9JHl3kbXZLHdq8muOONpwot7D1JgKZrXUhYmANTF2+BMDdxxjp8eZQsGCQ==
X-Received: by 2002:a17:907:724a:b0:af9:3c4d:e978 with SMTP id a640c23a62f3a-af94018ffdbmr870389366b.41.1754304815657;
        Mon, 04 Aug 2025 03:53:35 -0700 (PDT)
Message-ID: <5c0589a2-91fe-484d-bded-5a68a1626355@suse.com>
Date: Mon, 4 Aug 2025 12:53:36 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 5/8] emul/vuart-ns16550: introduce NS16550-compatible
 UART emulator (x86)
To: dmkhn@proton.me
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
References: <20250731192130.3948419-1-dmukhin@ford.com>
 <20250731192130.3948419-6-dmukhin@ford.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: <20250731192130.3948419-6-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 31.07.2025 21:22, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com> 
> 
> Add initial in-hypervisor emulator for NS8250/NS16x50-compatible UARTs under
> CONFIG_VUART_NS16550 for x86 port of Xen.
> 
> x86 port of Xen lacks vUART facility similar to Arm's SBSA emulator to support
> x86 guest OS bring up in the embedded setups.
> 
> In parallel domain creation scenario (hyperlaunch), NS16550 emulator helps
> early guest firmware and/or OS bringup debugging, because it eliminates
> dependency on the external emulator (qemu) being operational by the time
> domains are created.
> 
> The emulator also allows to forward the physical console input to the x86
> domain which is useful when a system has only one physical UART for early
> debugging and this UART is owned by Xen. Such functionality is limited to dom0
> use currently.
> 
> By default, CONFIG_VUART_NS16550 enables emulation of NS16550 at I/O port
> 0x3f8, IRQ#4 in guest OS (legacy COM1).
> 
> Legacy COM resources can be selected at built-time and cannot be configured
> per-domain via .cfg or DT yet.
> 
> Introduce new emulation flag for virtual UART on x86 and plumb it through
> domain creation code so NS16550 emulator can be instantiated properly.
> 
> Please refer to the NS16550 emulator code for full list of limitations.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
> Changes since v3:
> - feedback addressed
> - adjusted to new vUART framework APIs
> - Link to v3: https://lore.kernel.org/xen-devel/20250103-vuart-ns8250-v3-v1-21-c5d36b31d66c@ford.com/
> ---
>  xen/arch/x86/hvm/hvm.c                |    9 +
>  xen/arch/x86/include/asm/domain.h     |    4 +-
>  xen/arch/x86/include/asm/hvm/domain.h |    4 +
>  xen/common/emul/vuart/Kconfig         |   48 ++
>  xen/common/emul/vuart/Makefile        |    1 +
>  xen/common/emul/vuart/vuart-ns16550.c | 1009 +++++++++++++++++++++++++
>  xen/common/emul/vuart/vuart.c         |    4 +
>  xen/include/public/arch-x86/xen.h     |    4 +-
>  xen/include/xen/resource.h            |    3 +
>  9 files changed, 1084 insertions(+), 2 deletions(-)
>  create mode 100644 xen/common/emul/vuart/vuart-ns16550.c

Overall I think this patch is too large to sensibly review. Surely base structure
and then (incrementally) fleshing out of the hooks can be separated from one
another?

> --- a/xen/arch/x86/hvm/hvm.c
> +++ b/xen/arch/x86/hvm/hvm.c
> @@ -31,6 +31,7 @@
>  #include <xen/nospec.h>
>  #include <xen/vm_event.h>
>  #include <xen/console.h>
> +#include <xen/vuart.h>
>  #include <asm/shadow.h>
>  #include <asm/hap.h>
>  #include <asm/current.h>
> @@ -702,6 +703,10 @@ int hvm_domain_initialise(struct domain *d,
>      if ( rc != 0 )
>          goto fail1;
>  
> +    rc = vuart_init(d, NULL);
> +    if ( rc != 0 )
> +        goto out_vioapic_deinit;
> +
>      stdvga_init(d);
>  
>      rtc_init(d);
> @@ -725,6 +730,8 @@ int hvm_domain_initialise(struct domain *d,
>      return 0;
>  
>   fail2:
> +    vuart_deinit(d);
> + out_vioapic_deinit:
>      vioapic_deinit(d);
>   fail1:
>      if ( is_hardware_domain(d) )

Would be better if vuart_deinit() was idempotent, and hence could be called
unconditionally here.

> @@ -787,6 +794,8 @@ void hvm_domain_destroy(struct domain *d)
>      if ( hvm_funcs.domain_destroy )
>          alternative_vcall(hvm_funcs.domain_destroy, d);
>  
> +    vuart_deinit(d);

You require a fair level of idempotency already anyway, as a domain may not
have any vUART, so this call already needs to be "capabale" of doing nothing.

> --- a/xen/arch/x86/include/asm/hvm/domain.h
> +++ b/xen/arch/x86/include/asm/hvm/domain.h
> @@ -149,6 +149,10 @@ struct hvm_domain {
>  #ifdef CONFIG_MEM_SHARING
>      struct mem_sharing_domain mem_sharing;
>  #endif
> +
> +#ifdef CONFIG_VUART_NS16550
> +    void *vuart; /* Virtual UART handle. */
> +#endif
>  };

With your framework you allow for multiple vUART drivers. Either the field
looks misnamed or the CONFIG_* option checked is the wrong one.

Also, why's this x86-specific? NS16550s can exist anywhere, can't they?
(The present, but presumably temporary tying to x86 looks to be the use of
I/O ports.)

> --- a/xen/common/emul/vuart/Kconfig
> +++ b/xen/common/emul/vuart/Kconfig
> @@ -3,4 +3,52 @@ config HAS_VUART
>  
>  menu "UART Emulation"
>  
> +config VUART_NS16550
> +	bool "NS16550-compatible UART Emulation" if EXPERT
> +	depends on X86 && HVM
> +	select HAS_VUART
> +	help
> +	  In-hypervisor NS16550/NS16x50 UART emulation.
> +
> +	  Only legacy PC I/O ports are emulated.
> +
> +	  This is strictly for testing purposes (such as early HVM guest console),
> +	  and not appropriate for use in production.
> +
> +choice VUART_NS16550_PC
> +	prompt "IBM PC COM resources"
> +	depends on VUART_NS16550
> +	default VUART_NS16550_PC_COM1
> +	help
> +	  Default emulated NS16550 resources.
> +
> +config VUART_NS16550_PC_COM1
> +	bool "COM1 (I/O port 0x3f8, IRQ#4)"
> +
> +config VUART_NS16550_PC_COM2
> +	bool "COM2 (I/O port 0x2f8, IRQ#3)"
> +
> +config VUART_NS16550_PC_COM3
> +	bool "COM3 (I/O port 0x3e8, IRQ#4)"
> +
> +config VUART_NS16550_PC_COM4
> +	bool "COM4 (I/O port 0x2e8, IRQ#3)"
> +
> +endchoice
> +
> +config VUART_NS16550_LOG_LEVEL
> +	int "UART emulator verbosity level"
> +	range 0 3
> +	default "1"
> +	depends on VUART_NS16550
> +	help
> +	  Set the default log level of UART emulator.
> +	  See include/xen/config.h for more details.

For someone merely running kconfig but not otherwise knowing the sources,
this isn't an overly helful pointer. But I question the need for such a
control anyway, and I think I did say so already before.

> +config VUART_NS16550_DEBUG
> +	bool "UART emulator development debugging"
> +	depends on VUART_NS16550

&& DEBUG ?

> --- a/xen/common/emul/vuart/Makefile
> +++ b/xen/common/emul/vuart/Makefile
> @@ -1 +1,2 @@
>  obj-$(CONFIG_HAS_VUART) += vuart.o
> +obj-$(CONFIG_VUART_NS16550) += vuart-ns16550.o

I don't think files in this directory need a vuart- name prefix.

> --- /dev/null
> +++ b/xen/common/emul/vuart/vuart-ns16550.c
> @@ -0,0 +1,1009 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * NS16550-compatible UART Emulator.
> + *
> + * See:
> + * - Serial and UART Tutorial:
> + *     https://download.freebsd.org/doc/en/articles/serial-uart/serial-uart_en.pdf
> + * - UART w/ 16 byte FIFO:
> + *     https://www.ti.com/lit/ds/symlink/tl16c550c.pdf
> + * - UART w/ 64 byte FIFO:
> + *     https://www.ti.com/lit/ds/symlink/tl16c750.pdf
> + *
> + * Limitations:
> + * - Only x86;
> + * - Only HVM domains support (build-time), PVH domains are not supported yet;
> + * - Only legacy COM{1,2,3,4} resources via Kconfig, custom I/O ports/IRQs
> + *   are not supported;
> + * - Only Xen console as a backend, no inter-domain communication (similar to
> + *   vpl011 on Arm);
> + * - Only 8n1 emulation (8-bit data, no parity, 1 stop bit);
> + * - No toolstack integration;
> + * - No baud rate emulation (reports 115200 baud to the guest OS);
> + * - No FIFO-less mode emulation;
> + * - No RX FIFO interrupt moderation (FCR) emulation;
> + * - No integration w/ VM snapshotting (HVM_REGISTER_SAVE_RESTORE() and
> + *   friends);
> + * - No ISA IRQ sharing allowed;
> + * - No MMIO-based UART emulation.
> + */
> +
> +#define pr_prefix               "ns16550"
> +#define pr_fmt(fmt)             pr_prefix ": " fmt
> +#define pr_log_level            CONFIG_VUART_NS16550_LOG_LEVEL
> +
> +#include <xen/8250-uart.h>
> +#include <xen/console.h>
> +#include <xen/iocap.h>
> +#include <xen/ioreq.h>
> +#include <xen/resource.h>
> +#include <xen/vuart.h>
> +#include <xen/xvmalloc.h>
> +
> +#include <public/io/console.h>

Except for cases where Xen itself runs as a guest, I don't think any of these
headers should be used in Xen sources. If I'm not mistaken, ...

> +/*
> + * Virtual NS16550 device state.
> + */
> +struct vuart_ns16550 {
> +    struct xencons_interface cons;      /* Emulated RX/TX FIFOs */

... this also isn't to communicate with some remote, but merely to use some
of the fields conveniently.

> +    uint8_t regs[NS16550_EMU_REGS_NUM]; /* Emulated registers */
> +    unsigned int irq;                   /* Emulated IRQ# */
> +    uint64_t io_addr;                   /* Emulated I/O region base address */
> +    uint64_t io_size;                   /* Emulated I/O region size */

These are huge; for the size that's true even if considering future MMIO-
based emulation.

> +    const char *name;                   /* Device name */
> +    struct domain *owner;               /* Owner domain */
> +    spinlock_t lock;                    /* Protection */
> +};
> +
> +/*
> + * Virtual device description.
> + */
> +struct virtdev_desc {
> +    const char *name;
> +    const struct resource *res;
> +};
> +
> +/*
> + * Legacy IBM PC NS16550 resources.
> + * There are only 4 I/O port ranges, hardcoding all of them here.
> + */
> +static const struct virtdev_desc x86_pc_uarts[4] = {
> +    [0] = {
> +        .name = "COM1",
> +        .res = (const struct resource[]){
> +            { .type = IORESOURCE_IO,  .addr = 0x3f8, .size = NS16550_REGS_NUM },
> +            { .type = IORESOURCE_IRQ, .addr = 4,     .size = 1 },
> +            { .type = IORESOURCE_UNKNOWN },
> +        },
> +    },
> +    [1] = {
> +        .name = "COM2",
> +        .res = (const struct resource[]){
> +            { .type = IORESOURCE_IO,  .addr = 0x2f8, .size = NS16550_REGS_NUM },
> +            { .type = IORESOURCE_IRQ, .addr = 3,     .size = 1 },
> +            { .type = IORESOURCE_UNKNOWN },
> +        },
> +    },
> +    [2] = {
> +        .name = "COM3",
> +        .res = (const struct resource[]){
> +            { .type = IORESOURCE_IO,  .addr = 0x3e8, .size = NS16550_REGS_NUM },
> +            { .type = IORESOURCE_IRQ, .addr = 4,     .size = 1 },
> +            { .type = IORESOURCE_UNKNOWN },
> +        },
> +    },
> +    [3] = {
> +        .name = "COM4",
> +        .res = (const struct resource[]){
> +            { .type = IORESOURCE_IO,  .addr = 0x2e8, .size = NS16550_REGS_NUM },
> +            { .type = IORESOURCE_IRQ, .addr = 3,     .size = 1 },
> +            { .type = IORESOURCE_UNKNOWN },
> +        },
> +    },
> +};

The choice of COMn is at build time. Why do we need all four configurations
resident not only in the binary, but even at (post-init) runtime? Also, the
way you do initialization of .res, I think adding __initconst to the main
array wouldn't have the effect of pulling all those inti .init.* as well.
For the time being I simply don't see the need for the extra level of
indirection: All instances have two entries (plus the then likely not
necessary sentinel).

> +static bool cf_check ns16550_iir_check_lsi(const struct vuart_ns16550 *vdev)
> +{
> +    return !!(vdev->regs[UART_LSR] & UART_LSR_MASK);

No need for !! (also elsewhere).

> --- a/xen/include/xen/resource.h
> +++ b/xen/include/xen/resource.h
> @@ -31,4 +31,7 @@ struct resource {
>  
>  #define resource_size(res)      ((res)->size)
>  
> +#define for_each_resource(res) \
> +    for ( ; (res) && (res)->type != IORESOURCE_UNKNOWN; (res)++ )

I'm not sure this is a good generic #define; imo it wants keeping local to
the one file that uses it.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 10:54:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 10:54:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069077.1432915 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uispo-0006eC-AJ; Mon, 04 Aug 2025 10:54:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069077.1432915; Mon, 04 Aug 2025 10:54: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 1uispo-0006e5-7C; Mon, 04 Aug 2025 10:54:28 +0000
Received: by outflank-mailman (input) for mailman id 1069077;
 Mon, 04 Aug 2025 10:54:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=c2vN=2Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uispn-000657-Ej
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 10:54:27 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 636fa2fc-7121-11f0-a321-13f23c93f187;
 Mon, 04 Aug 2025 12:54:26 +0200 (CEST)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-6157ed5dc51so7488000a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 03:54: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
 4fb4d7f45d1cf-615a9113e40sm6652004a12.57.2025.08.04.03.54.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Aug 2025 03:54: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>
X-Inumbo-ID: 636fa2fc-7121-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754304866; x=1754909666; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=OWMy1QLMS8QVqQKIxkn064VO81eytC/ovozPl41ez88=;
        b=CqaElqEOzPC76TnO5qHKk7mTjvHtV38u7pUNTvP+OOBSlRnFRlr9mgJRT92VP6WwPr
         N9H/R2Rl40UMYtQ6SZguk3RlkuUfUK5i7oF7Qo2DfITJugIl/XT1ncDjcUehAebFulVj
         CKuy1YDl89uA1YWM6AsbxuMWbqnmr9WVD6rPXPB3ZLjvcixjhA/0AsOD6J2eXWfqXx+o
         DR5gMPkHvjZAloa4FH555PKXLQyna6IltJ4htWtrAhz+Tr0lHn+83M5xJ6bjUmUeeOj4
         51BP5bEgyDJ++QOlu2zvO1oKapzYt7s3I5kSYQKIb2sKl+an5R8iNWx+v0z5ibZpKR/t
         nlOw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754304866; x=1754909666;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=OWMy1QLMS8QVqQKIxkn064VO81eytC/ovozPl41ez88=;
        b=X4krhjst3K5UkwNy2AYDJGxNZBmd2oakcH3NDyzYbcMmHCEF2UaRmpqio0wRgXGiR9
         u5luZ2Rn3qsRMeDZAtW1OBCdlHNBlrsXJiwxk5uK1b834ATbnT/LuflcXnZJPVqBCScq
         Psfd0O6esmQYS8BxmlKpXs8SMbfHLD+wBpQ/E9MWdaPXOTZIsQxnYTDL2tLkjwWTO0Bt
         5OaUA6ojuWuFNHZpf+Nql2HNPxasxOITAhU8+WGFqYdW98WmGIf4a8QvZnEgewXcS3wu
         /WQveLvmAAuPYzHUvxEjJy+MMi7iOUL6Ew+0H5m/eOX8QG/Boh5H5KochlfiugBScKmw
         lHLQ==
X-Forwarded-Encrypted: i=1; AJvYcCWbQ5lf7dVZhChMUYJAwBvj6EzkjclOvfcY45U2JNZUrTrRX5mSfhVMyTJtsPFohtl878xgzfIm4JI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxDDqQyAZzUnMoYTmK3CdPgdn1IVRocqgSt9Ub2mtnrY2KuaykH
	j6wovbXWEf4ohN0T75hhI426OUcj6ju6upkeqHOWHoOlKhhga9h1SzubCdDNLaLpFg==
X-Gm-Gg: ASbGncuNEmR9qFtkIXJP/W7WPuwqoOv7wtYgs8XsImC3pe5ZiVnAoKk3YrbKPcWk66K
	oPNf5zm/AaNjtpB8h1yh88l/Jjwwou1Gy8MYjuN8rq+/cmSlEv1CFZHmMmcT58fauXA/Nhv3r4u
	F1QYCC+oGS8N4vCYqRElp0jTMB4z9aXwXGBvnZX8JjksYoG1Q+vsFMZMRV+YZIGNKzPnp7maTTX
	oHDR6BrPQlieMZeCWYGhCILnNOs7tZC1aUo9Rq2n3RqoObykUGIcteZi5MZe6RiaTPuO9d8lDug
	tvdGN3Zc+dQGgKvtw0z84rT5SwGNII9UhPzQAGXOPAKYhDdJLo34zl2qg+cJDgYhUCLLCJUMZW8
	dTnSvdrTNCca6jfhmVqa69JXJ9X9Hmx75uf85SErgflNU4EvosUyLpG17QiOB4X2gT3Syc5mg2+
	rpZDZLGa8=
X-Google-Smtp-Source: AGHT+IGJvRvXJe0KUXVpKnJXWkMunzFwD4YSSmPlWf1ejcH/HlSIQ946XrH41YiYhZmewK6aLBjaKg==
X-Received: by 2002:a05:6402:1ec8:b0:617:4a59:c5da with SMTP id 4fb4d7f45d1cf-6174a59c6bbmr3708450a12.23.1754304865893;
        Mon, 04 Aug 2025 03:54:25 -0700 (PDT)
Message-ID: <9564486c-19ff-427b-9d65-13ee4c8e429b@suse.com>
Date: Mon, 4 Aug 2025 12:54:27 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 6/8] tools/xl: enable NS16550-compatible UART emulator
 for HVM (x86)
To: dmkhn@proton.me
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
References: <20250731192130.3948419-1-dmukhin@ford.com>
 <20250731192130.3948419-7-dmukhin@ford.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: <20250731192130.3948419-7-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 31.07.2025 21:22, dmkhn@proton.me wrote:
> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -780,9 +780,10 @@ static bool emulation_flags_ok(const struct domain *d, uint32_t emflags)
>          /* HVM domU */
>          {
>              .caps   = CAP_HVM | CAP_DOMU,
> -            .min    = X86_EMU_ALL & ~(X86_EMU_VPCI | X86_EMU_USE_PIRQ),
> +            .min    = X86_EMU_ALL & ~(X86_EMU_VPCI | X86_EMU_USE_PIRQ |
> +                                      X86_EMU_NS16550),
>              /* HVM PIRQ feature is user-selectable. */
> -            .opt    = X86_EMU_USE_PIRQ,
> +            .opt    = X86_EMU_USE_PIRQ | X86_EMU_NS16550,

Rendering the comment partly stale.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 11:00:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 11:00:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069088.1432925 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uisw2-0008I3-UT; Mon, 04 Aug 2025 11:00:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069088.1432925; Mon, 04 Aug 2025 11:00: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 1uisw2-0008Hw-Rk; Mon, 04 Aug 2025 11:00:54 +0000
Received: by outflank-mailman (input) for mailman id 1069088;
 Mon, 04 Aug 2025 11:00:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gjR2=2Q=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1uisw2-0008Hq-7k
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 11:00:54 +0000
Received: from mail-wr1-x441.google.com (mail-wr1-x441.google.com
 [2a00:1450:4864:20::441])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4a036881-7122-11f0-a321-13f23c93f187;
 Mon, 04 Aug 2025 13:00:53 +0200 (CEST)
Received: by mail-wr1-x441.google.com with SMTP id
 ffacd0b85a97d-3b7961cf660so3196934f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 04:00:53 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3b79c47ae8esm15013323f8f.61.2025.08.04.04.00.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Aug 2025 04: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>
X-Inumbo-ID: 4a036881-7122-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754305253; x=1754910053; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=8JI/7IhwZs7Hqcjm8O30s4bK/f2d1Ldfc6WcKfzI7z8=;
        b=B6LECaHiPsUyJle2cdk8BbIt/qztlDjX2KlhPRww/TtnWN+QsDXIrwh45f87q0XPhZ
         zAUY0lrC/3fxvu/TSPIMElNn4PgqVZjt2xw5s54WBK5QwBY7Y5reSZrtqYjJ1toIuoRY
         M9cuYfpPi9d+aZ6irqniBl7RC8DgWZJ/me/6k=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754305253; x=1754910053;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8JI/7IhwZs7Hqcjm8O30s4bK/f2d1Ldfc6WcKfzI7z8=;
        b=YQeilejWPTynQN5hMBxJ6ariFVH+vxKvuHzaJoD3DLC9BtlM8pLMtN0fH5yhMRPPDR
         Y73yk0CjRAUwwHM3r1toeFvriQA1GRQDApeDvVrPQS3lIpvLSP7rB31LPkGoTPjaOyuw
         /gHPyKqyGTuMDibeEtDVUXMM9h6crk4PbcDBKyKVbxaGUho15qSIDsturMKUqgK7HH/N
         8eTgXLLDbludKBhyZDMG9mesglmb7ZhaAz4cp71IUXU1QqzU5WQMTrO7pJmSxoKtQ+uL
         DdYrsI7rxaV0VMYakj3RuuyHGE84N8miXCaHp3ncO4tgidYcXAfRE1seZhWs7ruitkCR
         e6MA==
X-Forwarded-Encrypted: i=1; AJvYcCVRvR2Mjm37//aICZBAIOLJUe5SMk1Jmn3fcdBGFqf2XB8rKw/onKHip1Cn7WQBvpwO/LvdSke2x2s=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy+zPDfLWV6kyO193t8akjN0Z9ICGpgKRCJ1TTXb3CxFxy6djQn
	RJAzlo8/kHwnio3LEabWHy7/zQb7926b9hgiZJxvZ1ZzHrPrR9556XnsegH0O+/sw3I=
X-Gm-Gg: ASbGncvVHBOwvbUsN95EQVaT6UyObNbiqnbqD8nfbWEnkXpQNKNTM06vh6HQzuSlsTO
	no2rq8Pywg9+sMRJfAVHLkxNVpJGpiCFuNKF4FkxctsRbUvraLPYhUldRW7lx+u7yTLHvIuAaJM
	6eglUHFQjqf+R57P/rorb39aJOX8P3OSGldt/QtF6Up6NjGSu+aagNFB4zAQFPMPNNo8yt8arJM
	jUlBY2OurUzO12fUBej9AuBYToqOmVubqPWTCcXAGuzyws2XiK0XyGak/FNxOMfA7mT4RCPa8XV
	KlIaC7oeS4KoUIhNb7RewqaYt9ahIfiGStnf7MOdz7E+5NVPm3g+kYhXbKX3GXKwXg08A2CSOXs
	UZMtRR7tR6Xno/gbHNvJlpEoRYNincz64cIomjMVfELlmph8oH39PRlFpuhCvOq/UYRc8s1bvtM
	AA9W8=
X-Google-Smtp-Source: AGHT+IFFTFZvWD+dR9TxsgKMqX/jiPzuSh0LWGmDFT77nIAqYoLCyhumbmTKaf3R05m2GuGZegx4ZQ==
X-Received: by 2002:a05:6000:2dc9:b0:3b7:8d70:dac5 with SMTP id ffacd0b85a97d-3b8d9464526mr7011626f8f.2.1754305252676;
        Mon, 04 Aug 2025 04:00:52 -0700 (PDT)
Message-ID: <0f4abbb4-aa7f-4c09-8652-bc9041a25a56@citrix.com>
Date: Mon, 4 Aug 2025 12:00:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/x86: fix xen.efi boot crash from some bootloaders
To: Jan Beulich <jbeulich@suse.com>, Yann Sionneau <yann.sionneau@vates.tech>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20250724140731.1502774-1-yann.sionneau@vates.tech>
 <4ceb64fa-d7cb-4c77-8a60-1526046c037c@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: <4ceb64fa-d7cb-4c77-8a60-1526046c037c@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04/08/2025 10:34 am, Jan Beulich wrote:
> On 24.07.2025 16:07, Yann Sionneau wrote:
>> xen.efi PE does not boot when loaded from shim or some patched
>> downstream grub2.
>>
>> What happens is the bootloader would honour the MEM_DISCARDABLE
>> flag of the .reloc section meaning it would not load its content
>> into memory.
>>
>> But Xen is parsing the .reloc section content twice at boot:
>> * https://elixir.bootlin.com/xen/v4.20.1/source/xen/common/efi/boot.c#L1362
>> * https://elixir.bootlin.com/xen/v4.20.1/source/xen/arch/x86/efi/efi-boot.h#L237
>>
>> Therefore it would crash with the following message:
>> "Unsupported relocation type" as reported there:
>>
>> * https://github.com/QubesOS/qubes-issues/issues/8206#issuecomment-2619048838
>> * https://lore.kernel.org/xen-devel/7e039262-1f54-46e1-8f70-ac3f03607d5a@suse.com/T/#me122b9e6c27cd98db917da2c9f67e74a2c6ad7a5
>>
>> This commit adds a small C host tool named keeprelocs
>> that is called after xen.efi is produced by the build system
>> in order to remove this bit from its .reloc section header.
>>
>> Signed-off-by: Yann Sionneau <yann.sionneau@vates.tech>
> So I found a way to deal with this at the linker side, without any new command
> line options. Behavior is solely driven by the attributes of any incoming .reloc
> sections (of which there would be none by default, retaining original behavior).
> The important patch is [1], but at least the first patch of the series [2] would
> in most cases also be wanted/needed (patch 04 is obviously a mechanical prereq
> for the main patch). Need for other of the prereqs there depends on the scope
> and purpose of one's binutils build(s).
>
> Jan
>
> [1] https://sourceware.org/pipermail/binutils/2025-August/143153.html
> [2] https://sourceware.org/pipermail/binutils/2025-August/143141.html

That's good to see.Â  Do we need any matching changes in Xen?

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 11:06:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 11:06:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069099.1432936 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uit1X-0000bD-Gq; Mon, 04 Aug 2025 11:06:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069099.1432936; Mon, 04 Aug 2025 11:06: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 1uit1X-0000b6-E4; Mon, 04 Aug 2025 11:06:35 +0000
Received: by outflank-mailman (input) for mailman id 1069099;
 Mon, 04 Aug 2025 11:06:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=c2vN=2Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uit1V-0000b0-OP
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 11:06:33 +0000
Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com
 [2a00:1450:4864:20::532])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 13860420-7123-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 13:06:31 +0200 (CEST)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-60bfcada295so5133936a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 04:06: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
 a640c23a62f3a-af91a2436easm716229766b.135.2025.08.04.04.06.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Aug 2025 04:06: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>
X-Inumbo-ID: 13860420-7123-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754305591; x=1754910391; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=YXp/tr9Kwb+JyuLu1wWJfvhuzU+rZTRPD+ep8IRX400=;
        b=SPR9ZXZ13HCZdryFaEs7F7x0oSLAoMewHmfkvXa0tPRqG7VTK5lVy+FtM+4KgUPtYn
         DYhggG/KqlJkfaeoJFRtxQ2zvekrdXWcPEvZ5a/KCxdZE3JJERYnixt1W5K4l9ZHT5m8
         eH9mIPeETFeVuLohokIiMdnB4eRcgI8cyxwPAFeJtNcRgrtMZQzZJue4z+qXyjbcvy6W
         BGk7+rLEv8e/AGqtEc9ldqquwcMp5uQaLptwGnw9cLLr5tyJVTWuxYz8yzZOx8iZs5cY
         j7JF/NIMIyFzTZQSrdjdTgTqzeHKLWFn4Qp9DA8BbONOCXm+kQyk6qtTTbpLAyCfuO5v
         oLlQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754305591; x=1754910391;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YXp/tr9Kwb+JyuLu1wWJfvhuzU+rZTRPD+ep8IRX400=;
        b=BagFvzc445NXuR4IHEGdiWWEiwPGwCX9S1IWJSlYzsnrK6fWjNfpcMFbwqboQfJZdo
         oiTIMjXl5DoGiyIdhXcFSFY6zgSnH05A7ZozZW5cQH6G88WiTNiNyP4MrIw3Ubg9fbfX
         ITBm8FJwpa8KqjY397vLkej6n0niAF20XtdsSxYn90IQpfIEpjYwzYudXFlOIalSpmXF
         F1vLDUIeWHJXH60gbHiSxqX1EQNpvGK8jHg84dQZRXGDnAl7O0Z1pDv5XMXQt6UM5iAZ
         1HAFXmG6rD/sp3mzEzzHiCAEkt+O3m7Ry9hrnZN7/fz86Zxo2G/33fl7duOZYpysuC8n
         Vwpw==
X-Forwarded-Encrypted: i=1; AJvYcCWsmGnni4rbIKuy6QrPYT4YX5t1FKRl5LYUskhZeUyloX2jDwRhRI0FoV56rhQJWZ+nLa/a9GUEUNw=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw+uKlRXE7/RAl1ZEWfSKusz+rynDb4Xo/mvHAhKz5NwyPEfhtQ
	fVRB0a9uBEyMsnrmPSMYIsbf/MbvrOgpNyvSH3FPzLNks7YIT++ieYedKo5CRo6Xmw==
X-Gm-Gg: ASbGncuzvzoIjrk7KcGhkiKcS+79CyckYznrmhMmfOgxlR2LbO3Mz4eTBKfG7zGkfeY
	tkbwGEpbdq3E5shaKxCJUC05QYneAS3eLs/syROhY7FxOLR8EPEX1sfdrY+7CDwBotpfjlw7xvq
	zYSk89PU3GgxfQp/TYuSx2N7UDhKssSQ1wKDdOllH3NOlfA6c9FOjDPycS3Sst1j8jCaQ80rEGm
	TvYMrtPub+AobY57ps253VRfdhT1Gg0Xha6Rgh+eCmJkHrGm7rXkILf0lKeeX7SQWQZIX069Z8o
	eyA/CqIQxMx7d7ljFcr/SgSkDva2WBS27AFuraFiGI3GMFKecaiXhuSnuVmb35duErbzUBgej3w
	TxJnvu2/VotlK5hOg32/4cKUzLxtfqbVf9+Tx/2RlaWQuPwF7QpP2weUC+0pMZNDVR5ZtkaI1x1
	Zl0ieYkgO9fzMy8SX8/A==
X-Google-Smtp-Source: AGHT+IH/pJHM6DMd+pen4bht6VxEt32yqOG2jbw/3SpbiIAUvMox9lvypCgSXNU92necwuEet9kQeQ==
X-Received: by 2002:a17:906:f205:b0:af9:467d:abc0 with SMTP id a640c23a62f3a-af9467dae3cmr737288566b.50.1754305590700;
        Mon, 04 Aug 2025 04:06:30 -0700 (PDT)
Message-ID: <549bde88-38a3-4920-9309-f898b48d3bda@suse.com>
Date: Mon, 4 Aug 2025 13:06:32 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 7/8] tools/xl: enable NS16550-compatible UART emulator
 for PVH (x86)
To: dmkhn@proton.me
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
References: <20250731192130.3948419-1-dmukhin@ford.com>
 <20250731192130.3948419-8-dmukhin@ford.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: <20250731192130.3948419-8-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 31.07.2025 21:22, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com> 
> 
> Enable virtual NS16550 for PVH domains in xl.
> 
> {map,unmap}_domain_emuirq_pirq() infrastructure is modified by adding new
> type of interrupt resources 'IRQ_EMU' which means 'emulated device IRQ'
> (similarly to IRQ_MSI_EMU).
> 
> This is necessary to for IOAPIC emulation code to skip IRQ->PIRQ mapping
> (vioapic_hwdom_map_gsi()) when guest OS unmasks vIOAPIC pin corresponding to
> virtual device's IRQ.
> 
> Also, hvm_gsi_eoi() is modified to trigger assertion in hvm_gsi_deassert()
> path for ISA IRQs.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
> Changes since v3:
> - new patch
> ---
>  tools/libs/light/libxl_x86.c          |  2 +-
>  xen/arch/x86/domain.c                 |  2 ++
>  xen/arch/x86/hvm/vioapic.c            | 10 ++++++++++
>  xen/arch/x86/include/asm/irq.h        |  1 +
>  xen/common/emul/vuart/vuart-ns16550.c | 27 +++++++++++++++++++++++++--
>  xen/drivers/passthrough/x86/hvm.c     |  9 ++++-----
>  6 files changed, 43 insertions(+), 8 deletions(-)

Given this diffstat, how come the patch prefix is "tools/xl:"? You don't even
touch xl ...

> --- a/xen/common/emul/vuart/vuart-ns16550.c
> +++ b/xen/common/emul/vuart/vuart-ns16550.c
> @@ -355,7 +355,9 @@ static void ns16550_irq_assert(const struct vuart_ns16550 *vdev)
>      struct domain *d = vdev->owner;
>      int vector;
>  
> -    if ( has_vpic(d) ) /* HVM */
> +    if ( has_vioapic(d) && !has_vpic(d) ) /* PVH */
> +        vector = hvm_ioapic_assert(d, vdev->irq, false);
> +    else if ( has_vpic(d) ) /* HVM */
>          vector = hvm_isa_irq_assert(d, vdev->irq, vioapic_get_vector);

Why not

    if ( has_vpic(d) ) /* HVM */
         vector = hvm_isa_irq_assert(d, vdev->irq, vioapic_get_vector);
    else if ( has_vioapic(d) ) /* PVH */
        vector = hvm_ioapic_assert(d, vdev->irq, false);

Less code churn and maybe even less generated code.

> @@ -367,7 +369,9 @@ static void ns16550_irq_deassert(const struct vuart_ns16550 *vdev)
>  {
>      struct domain *d = vdev->owner;
>  
> -    if ( has_vpic(d) ) /* HVM */
> +    if ( has_vioapic(d) && !has_vpic(d) ) /* PVH */
> +        hvm_ioapic_deassert(d, vdev->irq);
> +    else if ( has_vpic(d) ) /* HVM */
>          hvm_isa_irq_deassert(d, vdev->irq);

Same here then.

> --- a/xen/drivers/passthrough/x86/hvm.c
> +++ b/xen/drivers/passthrough/x86/hvm.c
> @@ -924,12 +924,11 @@ static void hvm_gsi_eoi(struct domain *d, unsigned int gsi)
>  {
>      struct pirq *pirq = pirq_info(d, gsi);
>  
> -    /* Check if GSI is actually mapped. */
> -    if ( !pirq_dpci(pirq) )
> -        return;
> -
>      hvm_gsi_deassert(d, gsi);
> -    hvm_pirq_eoi(pirq);
> +
> +    /* Check if GSI is actually mapped. */
> +    if ( pirq_dpci(pirq) )
> +        hvm_pirq_eoi(pirq);
>  }

The correctness of this change (in particular hvm_gsi_deassert() now always
running) wants reasoning about in the description.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 11:23:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 11:23:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069108.1432946 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uitHr-0003ZQ-P4; Mon, 04 Aug 2025 11:23:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069108.1432946; Mon, 04 Aug 2025 11: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 1uitHr-0003ZJ-M2; Mon, 04 Aug 2025 11:23:27 +0000
Received: by outflank-mailman (input) for mailman id 1069108;
 Mon, 04 Aug 2025 11:23:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=c2vN=2Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uitHq-0003ZC-4t
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 11:23:26 +0000
Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com
 [2a00:1450:4864:20::52c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6ee00d21-7125-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 13:23:23 +0200 (CEST)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-61568fbed16so4744365a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 04:23:23 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-615a8fe7a83sm6695602a12.32.2025.08.04.04.23.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Aug 2025 04:23: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>
X-Inumbo-ID: 6ee00d21-7125-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754306603; x=1754911403; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4H3sVxZQVuJuZBfj6ldymI2bSBltGEycy+PRbU7xvmU=;
        b=E8gXLFfXP+fi6Jd1P6DHa3fd0FfycHHxGQr/AGQ8jlV3AhSqlvKKZ94mO6ag5Uv0aE
         uOq1W2HJXo6e+/BFU2YT+xRsWy/EnQ/meLJNettgXzki2jIwPpM+7dAOXOXcmrlzmW+8
         gFVcUBdzwZ3j2gRrwJLgNqPlYTmVqBq+nZ0DH/JieMwjrI+huZEl3sMKQKMwWhmtpICR
         4RBpXFJKbGH4ftagQwflqJhRG8NpByuYWAnJD59s8N6ATR87968F1cVbU16luO+wqlDk
         JIEKZl+bq+9/ktnGiJOCVXkbdR2RGLmgMWLMhESDH6upYhWCuG/9IR4Aj9JIyoGyDu2Q
         Zs8A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754306603; x=1754911403;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4H3sVxZQVuJuZBfj6ldymI2bSBltGEycy+PRbU7xvmU=;
        b=AF9fFMQrajKo67cSjxoUkE6eePjbvFMVjCvCGDIRXRi6tRfJAdWnME7BeOhPHJHYGm
         j6ByEGv3BQ2MbcncqekMLW2wxBeB7voHPLHpQq1jU5a9gdsl7KDEoKrFp05nF2YS5Smc
         UNL399xMh6wReVkswuB0DFjrJmA5dcikU5v03QzzG86K54zvW43EBNcZuJOpEeuYzm0c
         7UCds6guEZJhs/Ecg9vhvP7mXB1N5KnSKqXpfspDVs2yWc9dyU1K2XOEaJd+ER8izI3y
         b5ZR7gsIc1Rqdu0Wctp4wljUu6/L6zxgYnpKwbffRfSmFbD79Vcmbfz/cxaUoovTnLrg
         amMg==
X-Forwarded-Encrypted: i=1; AJvYcCXXDc6+BVnLQszNfMaw/suUEuUKMS4BGc74tbFON+W9IxzaNUSMt1jzTxlknWySJkFMrYe6UkEAFRs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwK8BCDmPNYGmNemby9Um8Iag8MngvZu9CfPTmd+DTGuZ2+8lRF
	6uWIzYlmhtCNFLa1g/YMXvqIdsncxPj9rbqGPEEtpKkVyXbQFU+T00o+1mYkELNIAg==
X-Gm-Gg: ASbGncvEzoxEk7SQ+n2iksii2KUkAdojkOhrEE8H7ZHyzWA3NxLc9IwYHHJcoDyKyyM
	+iJglc5JjD1k8DCuhUiXMNx53w1Bhcd9fwd0UEkmt4qVh3zVOpz1fkjMFqGuVTjPzybdep4Be+b
	QwvSVhmXJsDCjiWqUtwiGL4mUb2XunLCsgPTNmDXgBdu2bUPihJSFNnuWLrgPKCTTzdmax7EFJ/
	892cs0TH0Db1NuIZR+BaMW6TdfNzfSjfeQs3GqorR0/yNBKDUJhuuDDVsIA1QMD73Np0+7Wzzsv
	Gu9tUl+6GDeIjlOppbkuhXuDu4yBcXbSkPfEp3pWNGMgxmquPEvrGnXhLkCU6KAEMPuZdxBo8vf
	DXYwaBln8NDB2DDICI/xTOuiHGAfu+xRglMdIHunMeHDR/tzF+AjplU28oHt30+fTXve7VUadgp
	I6qDeNPrw=
X-Google-Smtp-Source: AGHT+IGbRwzSHYFLLlCJgwlrrIsz2Br/dVRqRridgRMorrqRCNbL7GS+qBvw9NNMA0onAxfFQRcnjQ==
X-Received: by 2002:a05:6402:5210:b0:615:860d:7da8 with SMTP id 4fb4d7f45d1cf-615e6f10de3mr8220020a12.14.1754306603025;
        Mon, 04 Aug 2025 04:23:23 -0700 (PDT)
Message-ID: <1e83ed1c-6fa6-4295-9072-d4277f95f2a1@suse.com>
Date: Mon, 4 Aug 2025 13:23:22 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/x86: fix xen.efi boot crash from some bootloaders
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org,
 Yann Sionneau <yann.sionneau@vates.tech>
References: <20250724140731.1502774-1-yann.sionneau@vates.tech>
 <4ceb64fa-d7cb-4c77-8a60-1526046c037c@suse.com>
 <0f4abbb4-aa7f-4c09-8652-bc9041a25a56@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: <0f4abbb4-aa7f-4c09-8652-bc9041a25a56@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.08.2025 13:00, Andrew Cooper wrote:
> On 04/08/2025 10:34 am, Jan Beulich wrote:
>> On 24.07.2025 16:07, Yann Sionneau wrote:
>>> xen.efi PE does not boot when loaded from shim or some patched
>>> downstream grub2.
>>>
>>> What happens is the bootloader would honour the MEM_DISCARDABLE
>>> flag of the .reloc section meaning it would not load its content
>>> into memory.
>>>
>>> But Xen is parsing the .reloc section content twice at boot:
>>> * https://elixir.bootlin.com/xen/v4.20.1/source/xen/common/efi/boot.c#L1362
>>> * https://elixir.bootlin.com/xen/v4.20.1/source/xen/arch/x86/efi/efi-boot.h#L237
>>>
>>> Therefore it would crash with the following message:
>>> "Unsupported relocation type" as reported there:
>>>
>>> * https://github.com/QubesOS/qubes-issues/issues/8206#issuecomment-2619048838
>>> * https://lore.kernel.org/xen-devel/7e039262-1f54-46e1-8f70-ac3f03607d5a@suse.com/T/#me122b9e6c27cd98db917da2c9f67e74a2c6ad7a5
>>>
>>> This commit adds a small C host tool named keeprelocs
>>> that is called after xen.efi is produced by the build system
>>> in order to remove this bit from its .reloc section header.
>>>
>>> Signed-off-by: Yann Sionneau <yann.sionneau@vates.tech>
>> So I found a way to deal with this at the linker side, without any new command
>> line options. Behavior is solely driven by the attributes of any incoming .reloc
>> sections (of which there would be none by default, retaining original behavior).
>> The important patch is [1], but at least the first patch of the series [2] would
>> in most cases also be wanted/needed (patch 04 is obviously a mechanical prereq
>> for the main patch). Need for other of the prereqs there depends on the scope
>> and purpose of one's binutils build(s).
>>
>> [1] https://sourceware.org/pipermail/binutils/2025-August/143153.html
>> [2] https://sourceware.org/pipermail/binutils/2025-August/143141.html
> 
> That's good to see.Â  Do we need any matching changes in Xen?

Well, we'll need some (zero-size) contribution to .reloc then. For my
testing I hacked this into the linking rule (which is a mess already
anyway), but I hope / expect to find a cleaner solution for upstreaming.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 11:29:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 11:29:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069121.1432956 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uitNH-0004EO-GM; Mon, 04 Aug 2025 11:29:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069121.1432956; Mon, 04 Aug 2025 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 1uitNH-0004EH-DC; Mon, 04 Aug 2025 11:29:03 +0000
Received: by outflank-mailman (input) for mailman id 1069121;
 Mon, 04 Aug 2025 11:29:01 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=c2vN=2Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uitNF-0004Dv-Gf
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 11:29:01 +0000
Received: from mail-ed1-x535.google.com (mail-ed1-x535.google.com
 [2a00:1450:4864:20::535])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 37118024-7126-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 13:28:59 +0200 (CEST)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-61557997574so6436142a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 04:28: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
 4fb4d7f45d1cf-615a8fe77cfsm6796126a12.42.2025.08.04.04.28.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Aug 2025 04:28: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>
X-Inumbo-ID: 37118024-7126-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754306939; x=1754911739; 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=4tQDWXUl/GGUvwCEmhBVfJ90ztk2vRfzUXGib0Q+gbg=;
        b=cetFKnwoYrcJIGV+jUlCxNOVpXd85RTfD4wAjdylpfTB4V7ul1e9xDNZC1xJy6BFQR
         DaIhgMFvOXdzHUE6C61LlSndSz7hjtnTP0ZZc+9CczeCNKrC0UaswLwmK3uGLmBeKwRc
         cCSBc2bBCnfLgBBaIvkLKYJJXeOy5xPoEpztG51d6/Qk8ozyEfieTeBBUIhIMtphd/z4
         rZQHIFQhybPwg6trfHScvgASMZCBkjSYzlPgKHbPcWBMkdKmPYDNIHJ9h6/4LWK9v9gA
         YIcLgz5cJ9kqXqFvQRk6UOLOWsbb12iWvYFsyHVMe2f02ECeeJRhhAIHE1WPTemus5VB
         Hklg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754306939; x=1754911739;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=4tQDWXUl/GGUvwCEmhBVfJ90ztk2vRfzUXGib0Q+gbg=;
        b=deLW5luLU72JIoncrve4a7W/YC6PByR8PrSLGYpdUYg3v4HI2o01cHT99In5ooZprX
         npewE1znuIG/P/HMNAi5ChKMD5Eme5MLC6yfP12d3r5391tPcJ7s8QDa8Oo+mPl1NPPP
         NNdPdyvKquijFi53f1C0mgJ8nro5ZVl+Mbm3Mk5afq5wRCoNwnUz1KKAIv31mnmQj2Id
         hvd9CbXID1O4+U5wX48xz5HhFTkRApWhDTiSZHL9bmm6Rt7ubTsIwuRcf8ZmgvRFmhwf
         DOpoPm99PhonobmGc8+2TFwpyfEYOs3mTLMvAFPGPBzjEdG3XSU+c4rOXGQlJGJyKCTj
         fKZA==
X-Gm-Message-State: AOJu0YywUVH3IFOQr8alH2ol79olLpIRjWzvxVfcg+k18Lm3YiyDCLbZ
	0RUpHGnZWHwNVyMGEQle2MjUplFPs/W6W/t+Iak9xvB9W1wPhRMHSI+LiL7ImjFQgHJTI2qexiW
	SxrA=
X-Gm-Gg: ASbGncvfBs8zHHQ8zZNM08XRiNMmZmcK6N8S3WbAHCqzLNCFc+W5SEi+b3sGxICcx9L
	xcCAZA0iyzp60rHcXV87Lej7xYwix38wrNbPsl0vnIrbgvynoGnVe+VdQxGCoFXtq2eXBbf/WSK
	w9ZkdtG0BsQSjDvf0J3E6xcgx7rEqORRkuZ1p1FRNX1lDZ3s9vexnVBbQ1yv2JwWfKrPocAuVik
	x9iEPCOhqcHJ9NZqBukIi+3RgwMP6tVJSecrTHTYYVw+/dsw1lDGrGGXl9+iM8uTbYSKo9QMNSd
	hYT0Q/gF/ZZG3+ux4dsTrB7elHKx5zRxte6QBwop2+Rvai8QnqhG3Z41Nz6sRNKBoJWwGeKJgkA
	jid9gN1l3NsWaESSDU/VSR09Gr6B65WIJMGQzM3HGQ2JXly/vccgsy94FtsNpAycXzMtYc/D6Wf
	S4je/2DyevlGWw1qbppQ==
X-Google-Smtp-Source: AGHT+IGPpsnKx/zspjBOkezE2xrWpZCzUKKHIyv8n2GXqG5L/naHwtmxgFiaDyA9lkyd5Uudp9FTTA==
X-Received: by 2002:a05:6402:274c:b0:615:539b:7acf with SMTP id 4fb4d7f45d1cf-615e6eb694bmr7184812a12.2.1754306938220;
        Mon, 04 Aug 2025 04:28:58 -0700 (PDT)
Message-ID: <df6ce908-4c8e-4ac0-b663-95772d6ff9c9@suse.com>
Date: Mon, 4 Aug 2025 13:28:57 +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>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] x86/CPU: extend is_forced_cpu_cap()'s "reach"
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

"cpuid=no-rdrand" cannot actually be used to suppress the respective
boot warning on certain AMD hardware. That's because cleared_caps[] are
only applied after the ->c_init() hooks ran, i.e. cpu_has() still
returns true in init_amd().

Fixes: 93401e28a84b ("x86: clear RDRAND CPUID bit on AMD family 15h/16h")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
TBD: It's not clear whether doing it this way is actually a good idea;
     it may need to be two of the three call sites to be amended by a
     new is_cleared_cpu_cap().

Also relevant to "x86/AMD: disable RDSEED on Fam17 model 47 stepping 0".

--- a/xen/arch/x86/cpu/common.c
+++ b/xen/arch/x86/cpu/common.c
@@ -108,7 +108,7 @@ void __init setup_force_cpu_cap(unsigned
 
 bool __init is_forced_cpu_cap(unsigned int cap)
 {
-	return test_bit(cap, forced_caps);
+	return test_bit(cap, forced_caps) || test_bit(cap, cleared_caps);
 }
 
 static void cf_check default_init(struct cpuinfo_x86 * c)


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 12:20:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 12:20:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069140.1432967 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiuAk-0003A3-97; Mon, 04 Aug 2025 12:20:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069140.1432967; Mon, 04 Aug 2025 12:20:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiuAk-00039w-5D; Mon, 04 Aug 2025 12:20:10 +0000
Received: by outflank-mailman (input) for mailman id 1069140;
 Mon, 04 Aug 2025 12:20:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=c2vN=2Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uiuAj-00039q-4T
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 12:20:09 +0000
Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com
 [2a00:1450:4864:20::633])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5bc47152-712d-11f0-a321-13f23c93f187;
 Mon, 04 Aug 2025 14:20:07 +0200 (CEST)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-af949bdf36cso330991766b.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 05:20: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
 a640c23a62f3a-af91a075a74sm733348966b.17.2025.08.04.05.20.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Aug 2025 05:20: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>
X-Inumbo-ID: 5bc47152-712d-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754310007; x=1754914807; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Llc9HrEFInWQfjFA/aZmmY7nVD+1kUn46YVQTljLo4E=;
        b=PD9hT9MY12WPJTgidNK3nxgjtFbAuaWEeu39iCNmfGXQY5+K6fz+uU3911F5xTTKbn
         y6kwASHVNf743OCmY/7vooBZerOfS9B0lywato+JeVredsmavx3eERSufc2gUBcyjYVz
         JHRsOMZtZGVkzkmERbYL02+aTzJlYQ9bBsf7qAh2nP8oTC/HgXwLQHtvP6uDmt7D8dPm
         qzBo+Uv4rmDzU8Vq1nqCxOjtEczlF8fstW3pNAbVXzmnvmRHJzGLLtD7Lyj4Wqg2WW/8
         0x0XD+xb/WYrygQwJqUrbzBxvrmSEitPkObv4kf04OQFJFByX/hZxhiW5TyBqJFJ4vyD
         DR4g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754310007; x=1754914807;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Llc9HrEFInWQfjFA/aZmmY7nVD+1kUn46YVQTljLo4E=;
        b=JvwQtpgJ7cuv6LiqYqjaPltrCzPb0X1JzPwlzy2fjzzjf2wQIq+Wp12SJJsVRXpMNT
         MDm2wyIQueu3Nqx1RBI00/jFloRog7fK75JXilUrniyjPrSIawnadUuPd/Uc0DxLoasJ
         qIYj2Z7MbheR2ls27UZ6cMpF5nkPhwOfsEKKWR403L0qtrhg+e5qcodPwWqQjkM62C06
         3yU1oVY9P+7Yb4OkdVm2QnO/BOKJF/cnBlPkGWN/yNzAQ7fvCffvpHdc3phomoQkik83
         4QLSfKHZ/BW8K2aSEd+v1jPgVGjBgYIjs4+qTOmW6tLZSUF7MuGD8kI1dTFXS6eOiKbu
         PtLQ==
X-Forwarded-Encrypted: i=1; AJvYcCW1lD1RdZYOFSw00aezQYqoBCJKkB2hnh3L+vdUd7c5oVIiMB3NlH6vdAyx3egQZTO3USOCCBuBEFA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yya4b09uyqowwW2bfzFc29oN0cDuOEGRU1twRvDz4f0iCTKAYm9
	5XJILuEKJR32p+ZDGA4RLGZexfQWZ+XoSU97W5OhKq2PieR6ZHcfTtpUzz3UjrrAjw==
X-Gm-Gg: ASbGncu3gLh4uehSIjkD3UYirA3vHD0wqI6ZsRIu8KFFSRgdCIFXdKGxbiIjsIoWXsg
	H4hDNqT9kHwY2veQbgLQ37Ud7AWkMiH6AgxvNYN5urVc5XQ4YUPSx3So/DGU/h7dDeIgiwlULSF
	Hl0jP5dpkoVWcB3Mj/tAI4sDys3UkcU5BQxucUy6H6VemjXxbFjTpxPuIhwJhaw7XJENhJSowGS
	xmmxtdJS9uH1k5zwtuRYzaoPCho98U1ltvNefXIrJ8mFCGrJeVt97VgNM7ilLjSmX6mHw8Pf7yp
	0PQqUWKHWfk1A9iaiuqf3/CeRd5634/O6Dz9YG78bZm28SSZucftrAkcxfEJ7DH74dqonazuZHb
	wwLylUwimowJIrGDM5u+IIlDildEg4hT1JnF74f8N8ZYyhZ87GPTmTIzC0WthxzuAvCXt7WwSTe
	lE9rLlMOpUsWWMVyGddA==
X-Google-Smtp-Source: AGHT+IEEoUVe4vnggRjHdMjvJ681c8q4pidoRxnIUyDZUPTSbWdcyXpFhql+vGukTr2UXeB8/D7a7w==
X-Received: by 2002:a17:906:299b:b0:af9:6bfb:58b7 with SMTP id a640c23a62f3a-af96bfb6b8amr282370166b.5.1754310006999;
        Mon, 04 Aug 2025 05:20:06 -0700 (PDT)
Message-ID: <a6eec6d8-8b37-4beb-8ec5-77a3efe782f7@suse.com>
Date: Mon, 4 Aug 2025 14:20:05 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 02/25] xen/x86: consolidate vram tracking support
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20250803094738.3625269-1-Penny.Zheng@amd.com>
 <20250803094738.3625269-3-Penny.Zheng@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: <20250803094738.3625269-3-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 03.08.2025 11:47, Penny Zheng wrote:
> Flag PG_log_dirty is for paging log dirty support, not vram tracking support.
> However data structure sh_dirty_vram{} and function paging_log_dirty_range()
> designed for vram tracking support, are guarded with PG_log_dirty.

The struct decl is guarded by both, which is fine, merely a bit redundant.
I'm okay with moving it if that helps elsewhere.

> We release both from PG_log_dirty, and also move paging_log_dirty_range() into
> hap.c, to make it static.

This, I think, wants doing separately. paging.c isn't quite a correct home
for it, yes, but neither is hap/hap.c. This is noticeable first and foremost
from ...

> --- a/xen/arch/x86/mm/hap/hap.c
> +++ b/xen/arch/x86/mm/hap/hap.c
> @@ -36,6 +36,38 @@
>  /*          HAP VRAM TRACKING SUPPORT           */
>  /************************************************/
>  
> +#ifdef CONFIG_HVM
> +static void paging_log_dirty_range(struct domain *d,
> +                                   unsigned long begin_pfn,
> +                                   unsigned long nr,
> +                                   uint8_t *dirty_bitmap)
> +{
> +    struct p2m_domain *p2m = p2m_get_hostp2m(d);
> +    int i;
> +    unsigned long pfn;
> +
> +    /*
> +     * Set l1e entries of P2M table to be read-only.
> +     *
> +     * On first write, it page faults, its entry is changed to read-write,
> +     * and on retry the write succeeds.
> +     *
> +     * We populate dirty_bitmap by looking for entries that have been
> +     * switched to read-write.
> +     */
> +
> +    p2m_lock(p2m);

... the lock it uses. This function really wants to move to p2m.c imo, and
be suitably renamed (s/paging_/p2m_/). While there please also consider
switching i to unsigned int.

> +    for ( i = 0, pfn = begin_pfn; pfn < begin_pfn + nr; i++, pfn++ )
> +        if ( !p2m_change_type_one(d, pfn, p2m_ram_rw, p2m_ram_logdirty) )
> +            dirty_bitmap[i >> 3] |= (1 << (i & 7));
> +
> +    p2m_unlock(p2m);
> +
> +    guest_flush_tlb_mask(d, d->dirty_cpumask);
> +}
> +#endif /* CONFIG_HVM */

This #ifdef / #endif isn't needed. Neither when it lives in hap/hap.c
(the parent dir's Makefile has

obj-$(CONFIG_HVM) += hap/

) nor when in p2m.c. The function then still not being non-static is
acceptable; it living where it logically belongs is more important imo.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 12:35:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 12:35:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069153.1432975 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiuPD-0004tK-ET; Mon, 04 Aug 2025 12:35:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069153.1432975; Mon, 04 Aug 2025 12: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 1uiuPD-0004tD-Bi; Mon, 04 Aug 2025 12:35:07 +0000
Received: by outflank-mailman (input) for mailman id 1069153;
 Mon, 04 Aug 2025 12:35:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=c2vN=2Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uiuPC-0004t7-Dg
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 12:35:06 +0000
Received: from mail-ej1-x62e.google.com (mail-ej1-x62e.google.com
 [2a00:1450:4864:20::62e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 72aa9bc7-712f-11f0-a321-13f23c93f187;
 Mon, 04 Aug 2025 14:35:05 +0200 (CEST)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-af66f444488so579656366b.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 05:35: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
 a640c23a62f3a-af91a243795sm727279666b.133.2025.08.04.05.35.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Aug 2025 05:35: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>
X-Inumbo-ID: 72aa9bc7-712f-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754310904; x=1754915704; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=vFhG1S/5RjvlBUt76/bLDA0tsz6NYBSM5kuaOudpKWo=;
        b=J8iPqsvhuZWeOefpFBZtjUVGmi+j84lCgpM0I/rSUxfM8XggVXJZFuy82yR/o0JLvY
         nbKSqFj2SN45F1H/qDy4nLzeeOxrNCnUv/hTgvTZqThg2c4KSmHQvHHL2A4QD4EvnluE
         ze+ikODsCIwX/ZpaCGRys6QiaPB6TdsUiGTnuTKEz94a54vAfXh97H7773T5AnAHX7QW
         5vH8eW0XFA1Iaxhf+PHty1qw6kfQHRCkQ6cyHqjFIHlqg9ZoGZOD09T9t4INf2/uV4we
         KLT3yYfTeA77d+1+gbcLSNO1ea/9cepJwyrDZR4gr+g/t3KfUpIfBUOEbvCYZeN4j4qO
         BTrQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754310904; x=1754915704;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vFhG1S/5RjvlBUt76/bLDA0tsz6NYBSM5kuaOudpKWo=;
        b=pKzH5cUgTS2idugbHTLayV6zwcK2aua5hmd0CQUgdzEd3QS6WMABnKVE6D6lDeg+N8
         GOKoStJ7sRIGFcwoZPO8UmjyFp8Y3ABKIjVEWZsfgirAnFwwdfOT937V9iCkqkdGDmr+
         X8B2cmzJwfXXbW65Z7i/MeGGiEyBMsyXzvMP78tSStfP2aaaxKrPfIAC7uA1g0k3TULU
         /Xw8rlgYGlTiSl4BfKZ1iR//OG+iyN5TGmCJAgLuerkcxfICQ7inHN82kWcmn0xM8o4S
         OUOdIukmx5QykDkle+Zo0HNP1ssr+jNg0/qoMGm6jU3SS4Gb/gbefr8I4+miE/nCMP7f
         DZZg==
X-Forwarded-Encrypted: i=1; AJvYcCV1IzvijkGfW/K9H8KYgjNjcm6NIuE7embU4chFpLFjHNorTvZqtXYkbfNEydaL8kWT2AXXfEzKIh0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwTQkdGgOeGQqY/ieHcvWP/EhbXASdSvSWHSx5OefMert+giTJX
	6bD3Qvrduv360ZRpMOZguu2VpWc2ALEvDZeXc83YphaDIHYpJjoAOhW5iIskolegnA==
X-Gm-Gg: ASbGnctM3tRQJ6ba7iIrXc0b/b10LdyMvxoKQ4ObyjThfgyhlVJ7TF2MXt2s3NFIy/a
	L4x94DLcM3A0Vpf83SIfevPPHbtnaPW+pY0efCDcdMxWIkI2oRg7d5b+DcQVa3FX+s2uGK1m5W7
	X2Rdsz0BhJQDLCSrJ+FViz7xSf3jTLESqz60WivvrAw99WiG9Wk/XQzFOhORs8MDw4zyUNBX4S/
	738aSaSWnxYaq4/hvhFs9gRwsRzN+Uz/JS36RyyQMgGEZAX1u4IlhrUQSbhDiQCLQdO/nAAaa9T
	upqnjAEln3uROLBUV1N34ZimhOLMFnGfeioJkadvu65iySUOCSeB2YoRYGuwZslZBx8XUCAWHub
	j/PQxK6YTPSGUDyiQ6k1rhW7OiPbbsF1O31QyekZeKxpJ+qZMP0c1W8EmXeVA6D0eqf/mHnJVSO
	4flyDIw+OHRyq66HTqJw==
X-Google-Smtp-Source: AGHT+IFQws+/ozEyCpyAeo4+Pecr3MkSOuyyFaM3UHOQxACPKvQQFCNJfRAiBvdajyoloaRbWAy8tA==
X-Received: by 2002:a17:907:d78b:b0:aec:5a33:1549 with SMTP id a640c23a62f3a-af94018f2ffmr876699366b.40.1754310904373;
        Mon, 04 Aug 2025 05:35:04 -0700 (PDT)
Message-ID: <c0a0f5a4-7b58-43cd-82a7-7a6368070386@suse.com>
Date: Mon, 4 Aug 2025 14:35:03 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 03/25] xen/x86: complement PG_log_dirty wrapping
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Tim Deegan <tim@xen.org>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
References: <20250803094738.3625269-1-Penny.Zheng@amd.com>
 <20250803094738.3625269-4-Penny.Zheng@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: <20250803094738.3625269-4-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 03.08.2025 11:47, Penny Zheng wrote:
> We have PG_log_dirty flag to wrap codes about paging log-dirty support.
> The main entry is paging_domctl(),

Yet paging_domctl() serves other paging modes, too. In fact for the shim
PG_SH_forced is actually a mode that could plausibly come into use (even
if not by way of a toolstack requesting it). It was previously indicated
that it was wrong for SHADOW_PAGING to be forced off in shim-exclusive
mode. No patch ever surfaced, but that may want sorting before any new
boundaries are to be drawn. In fact, ...

> --- a/xen/arch/x86/include/asm/paging.h
> +++ b/xen/arch/x86/include/asm/paging.h
> @@ -55,7 +55,7 @@
>  #define PG_translate   0
>  #define PG_external    0
>  #endif
> -#if defined(CONFIG_HVM) || !defined(CONFIG_PV_SHIM_EXCLUSIVE)
> +#if defined(CONFIG_HVM)
>  /* Enable log dirty mode */
>  #define PG_log_dirty   (XEN_DOMCTL_SHADOW_ENABLE_LOG_DIRTY << PG_mode_shift)

... the conditional here likely wants to become

#if defined(CONFIG_HVM) || defined(CONFIG_SHADOW_PAGING)

instead. This might actually be a far more isolated change then, still
moving you in the direction that you want (I think).

> --- a/xen/arch/x86/mm/hap/hap.c
> +++ b/xen/arch/x86/mm/hap/hap.c
> @@ -189,6 +189,7 @@ out:
>      return rc;
>  }
>  
> +#if PG_log_dirty
>  /************************************************/
>  /*            HAP LOG DIRTY SUPPORT             */
>  /************************************************/
> @@ -254,6 +255,7 @@ static void cf_check hap_clean_dirty_bitmap(struct domain *d)
>      p2m_change_entry_type_global(d, p2m_ram_rw, p2m_ram_logdirty);
>      guest_flush_tlb_mask(d, d->dirty_cpumask);
>  }
> +#endif /* PG_log_dirty */

Please also don't go overboard with #ifdef-ary: Files built for HVM=y
only don't need these, as HVM=y implies non-zero PG_log_dirty. But maybe,
with the other change that I outlined, you won't even need all of this
anymore.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 12:43:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 12:43:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069163.1432995 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiuXD-0006iu-CN; Mon, 04 Aug 2025 12:43:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069163.1432995; Mon, 04 Aug 2025 12:43: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 1uiuXD-0006in-9h; Mon, 04 Aug 2025 12:43:23 +0000
Received: by outflank-mailman (input) for mailman id 1069163;
 Mon, 04 Aug 2025 12:43:21 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=lO+m=2Q=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1uiuXB-0006VD-NW
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 12:43:21 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org
 [2600:3c0a:e001:78e:0:1991:8:25])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 99425443-7130-11f0-a321-13f23c93f187;
 Mon, 04 Aug 2025 14:43:20 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 56FE04423C;
 Mon,  4 Aug 2025 12:43:18 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4B783C4CEF0;
 Mon,  4 Aug 2025 12:43: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>
X-Inumbo-ID: 99425443-7130-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1754311398;
	bh=rlkoLHmieI8GnOBig0uhL3NMd0vvRWDvv2oEih0mzFM=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=QrFIfUaOpq0zgYoSf2B1eOFHhzxa8uJ9rI7ao3LQ15JdOAmXwx/vS3c+eYH6QTWOC
	 CZmPIb28BNkyQUhEkXmvY3ou31ivX2Y6W+QyRQ5lEcadqA118EYMjd4CMO32TmndIt
	 q9x/mE/Grc0mkPr/feAp0D8366SSjD6FCJuMLM/iEpxRFuKKQJHqb6OZAv8QT4n2gA
	 l8UYQWJxtJiMLDORYH+k0vFOc3W5LIKBdC/UjGKILIXxW7YyF57t2tVDzjmI4Hs2SY
	 Y6Y7brOxqet5SSMB18NQiaM/FfQfmONk81U59gW5ymq8VCTWf5/3zTUjdvPe68z/B6
	 YFqU3TERLKLDQ==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v1 02/16] iommu/dma: handle MMIO path in dma_iova_link
Date: Mon,  4 Aug 2025 15:42:36 +0300
Message-ID: <52e39cd31d8f30e54a27afac84ea35f45ae4e422.1754292567.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1754292567.git.leon@kernel.org>
References: <cover.1754292567.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

Make sure that CPU is not synced if MMIO path is taken.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 drivers/iommu/dma-iommu.c | 21 ++++++++++++++++-----
 1 file changed, 16 insertions(+), 5 deletions(-)

diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
index ea2ef53bd4fef..399838c17b705 100644
--- a/drivers/iommu/dma-iommu.c
+++ b/drivers/iommu/dma-iommu.c
@@ -1837,13 +1837,20 @@ static int __dma_iova_link(struct device *dev, dma_addr_t addr,
 		phys_addr_t phys, size_t size, enum dma_data_direction dir,
 		unsigned long attrs)
 {
-	bool coherent = dev_is_dma_coherent(dev);
+	int prot;
 
-	if (!coherent && !(attrs & DMA_ATTR_SKIP_CPU_SYNC))
-		arch_sync_dma_for_device(phys, size, dir);
+	if (attrs & DMA_ATTR_MMIO)
+		prot = dma_info_to_prot(dir, false, attrs) | IOMMU_MMIO;
+	else {
+		bool coherent = dev_is_dma_coherent(dev);
+
+		if (!coherent && !(attrs & DMA_ATTR_SKIP_CPU_SYNC))
+			arch_sync_dma_for_device(phys, size, dir);
+		prot = dma_info_to_prot(dir, coherent, attrs);
+	}
 
 	return iommu_map_nosync(iommu_get_dma_domain(dev), addr, phys, size,
-			dma_info_to_prot(dir, coherent, attrs), GFP_ATOMIC);
+			prot, GFP_ATOMIC);
 }
 
 static int iommu_dma_iova_bounce_and_link(struct device *dev, dma_addr_t addr,
@@ -1949,9 +1956,13 @@ int dma_iova_link(struct device *dev, struct dma_iova_state *state,
 		return -EIO;
 
 	if (dev_use_swiotlb(dev, size, dir) &&
-	    iova_unaligned(iovad, phys, size))
+	    iova_unaligned(iovad, phys, size)) {
+		if (attrs & DMA_ATTR_MMIO)
+			return -EPERM;
+
 		return iommu_dma_iova_link_swiotlb(dev, state, phys, offset,
 				size, dir, attrs);
+	}
 
 	return __dma_iova_link(dev, state->addr + offset - iova_start_pad,
 			phys - iova_start_pad,
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 04 12:43:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 12:43:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069162.1432986 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiuXC-0006VQ-6h; Mon, 04 Aug 2025 12:43:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069162.1432986; Mon, 04 Aug 2025 12: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 1uiuXC-0006VJ-3A; Mon, 04 Aug 2025 12:43:22 +0000
Received: by outflank-mailman (input) for mailman id 1069162;
 Mon, 04 Aug 2025 12:43:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=lO+m=2Q=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1uiuXA-0006V7-Qe
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 12:43:20 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 969ae083-7130-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 14:43:15 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 030FAA55811;
 Mon,  4 Aug 2025 12:43:14 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 73ED3C4CEE7;
 Mon,  4 Aug 2025 12:43:12 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 969ae083-7130-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1754311393;
	bh=5JNlmVmGVDRpHLFMyx/IqEG6PVqYnGg8cLXnDHx1P9k=;
	h=From:To:Cc:Subject:Date:From;
	b=Ea6NngjAGEvyrXvmgnjdDyM3mXPSC8QQfT+nOKbotr6HcSnhW9BlM6zfns9p9k3kL
	 aHN1p5RrLF18qj2RnxxdzX8nS9REiqaWtNTzVJNCM1ShLOSb5FfV99ZaNORp06pQRf
	 K3R1pWS9saoxzj1xXJAIiMxruqRredF2Zi+OmY/oC+bQ4mzzuhWorXTUyup4qpTeuv
	 RrIC3bsvwJsKhiLKd060hGDOvjUq+dNjvySky2bOV6npAhY9wBNf0nitks6Cij982L
	 fFaJuAYxFYDUX0NP4XT5/rJMF9kRy2ZpZIT9BlCY9GVEvgTb44GAyAGaBkqZ5aGmE4
	 Sus5Is+qyLnxQ==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v1 00/16] dma-mapping: migrate to physical address-based API
Date: Mon,  4 Aug 2025 15:42:34 +0300
Message-ID: <cover.1754292567.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Changelog:
v1:
 * Added new DMA_ATTR_MMIO attribute to indicate
   PCI_P2PDMA_MAP_THRU_HOST_BRIDGE path.
 * Rewrote dma_map_* functions to use thus new attribute
v0: https://lore.kernel.org/all/cover.1750854543.git.leon@kernel.org/
------------------------------------------------------------------------

This series refactors the DMA mapping to use physical addresses
as the primary interface instead of page+offset parameters. This
change aligns the DMA API with the underlying hardware reality where
DMA operations work with physical addresses, not page structures.

The series maintains export symbol backward compatibility by keeping
the old page-based API as wrapper functions around the new physical
address-based implementations.

Thanks

Leon Romanovsky (16):
  dma-mapping: introduce new DMA attribute to indicate MMIO memory
  iommu/dma: handle MMIO path in dma_iova_link
  dma-debug: refactor to use physical addresses for page mapping
  dma-mapping: rename trace_dma_*map_page to trace_dma_*map_phys
  iommu/dma: rename iommu_dma_*map_page to iommu_dma_*map_phys
  iommu/dma: extend iommu_dma_*map_phys API to handle MMIO memory
  dma-mapping: convert dma_direct_*map_page to be phys_addr_t based
  kmsan: convert kmsan_handle_dma to use physical addresses
  dma-mapping: handle MMIO flow in dma_map|unmap_page
  xen: swiotlb: Open code map_resource callback
  dma-mapping: export new dma_*map_phys() interface
  mm/hmm: migrate to physical address-based DMA mapping API
  mm/hmm: properly take MMIO path
  block-dma: migrate to dma_map_phys instead of map_page
  block-dma: properly take MMIO path
  nvme-pci: unmap MMIO pages with appropriate interface

 Documentation/core-api/dma-api.rst        |   4 +-
 Documentation/core-api/dma-attributes.rst |   7 ++
 arch/powerpc/kernel/dma-iommu.c           |   4 +-
 block/blk-mq-dma.c                        |  15 ++-
 drivers/iommu/dma-iommu.c                 |  69 +++++++------
 drivers/nvme/host/pci.c                   |  18 +++-
 drivers/virtio/virtio_ring.c              |   4 +-
 drivers/xen/swiotlb-xen.c                 |  21 +++-
 include/linux/blk-mq-dma.h                |   6 +-
 include/linux/blk_types.h                 |   2 +
 include/linux/dma-direct.h                |   2 -
 include/linux/dma-map-ops.h               |   8 +-
 include/linux/dma-mapping.h               |  27 +++++
 include/linux/iommu-dma.h                 |  11 +--
 include/linux/kmsan.h                     |  12 ++-
 include/trace/events/dma.h                |   9 +-
 kernel/dma/debug.c                        |  71 ++++---------
 kernel/dma/debug.h                        |  37 ++-----
 kernel/dma/direct.c                       |  22 +----
 kernel/dma/direct.h                       |  50 ++++++----
 kernel/dma/mapping.c                      | 115 +++++++++++++---------
 kernel/dma/ops_helpers.c                  |   6 +-
 mm/hmm.c                                  |  19 ++--
 mm/kmsan/hooks.c                          |  36 +++++--
 rust/kernel/dma.rs                        |   3 +
 tools/virtio/linux/kmsan.h                |   2 +-
 26 files changed, 320 insertions(+), 260 deletions(-)

-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 04 12:43:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 12:43:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069164.1433006 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiuXI-0006zd-Ka; Mon, 04 Aug 2025 12:43:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069164.1433006; Mon, 04 Aug 2025 12:43: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 1uiuXI-0006zW-Gf; Mon, 04 Aug 2025 12:43:28 +0000
Received: by outflank-mailman (input) for mailman id 1069164;
 Mon, 04 Aug 2025 12:43:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=lO+m=2Q=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1uiuXG-0006V7-Rb
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 12:43:26 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9bc209eb-7130-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 14:43:24 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 2379744938;
 Mon,  4 Aug 2025 12:43:23 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id E414EC4CEE7;
 Mon,  4 Aug 2025 12:43:21 +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>
X-Inumbo-ID: 9bc209eb-7130-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1754311403;
	bh=G8yxKVCRAfrQOyuBUvZbEVDf24fip2a2X5oNwMglhAg=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=FLzGyKpimqZsvNAMkhEPYN2tkYm9wQ3h3UDHZHmuFev7Kdqx8jKIWoT3U85iOoM1k
	 aCTeOR/y2YoJkjQmGkC8nd0XlPwXp9ABDdnY25JZZV+pjTwrGx1BPI6jkGtfuWH3lH
	 cNTOlfe37YMJ7EbolofEK6cSqjVoJzRKIgDX9Rw/r/pSkJ6tgXx0mQMDPbB50Eo/tY
	 bSHgA0aJulzKtznrvuSvmEPJIYl7Z15YnjALIGKQEd37p0dEVK+inYE3ISZhcfRZD9
	 duEz6OdVIUPZ2RcrkaozjegB0lDsbcAcuJNUcsrkRMd4xE8ofRwae99SaFKf8HjV7j
	 9ur3CJw3QLkfA==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v1 03/16] dma-debug: refactor to use physical addresses for page mapping
Date: Mon,  4 Aug 2025 15:42:37 +0300
Message-ID: <9ba84c387ce67389cd80f374408eebb58326c448.1754292567.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1754292567.git.leon@kernel.org>
References: <cover.1754292567.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

Convert the DMA debug infrastructure from page-based to physical address-based
mapping as a preparation to rely on physical address for DMA mapping routines.

The refactoring renames debug_dma_map_page() to debug_dma_map_phys() and
changes its signature to accept a phys_addr_t parameter instead of struct page
and offset. Similarly, debug_dma_unmap_page() becomes debug_dma_unmap_phys().
A new dma_debug_phy type is introduced to distinguish physical address mappings
from other debug entry types. All callers throughout the codebase are updated
to pass physical addresses directly, eliminating the need for page-to-physical
conversion in the debug layer.

This refactoring eliminates the need to convert between page pointers and
physical addresses in the debug layer, making the code more efficient and
consistent with the DMA mapping API's physical address focus.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 Documentation/core-api/dma-api.rst |  4 ++--
 kernel/dma/debug.c                 | 28 +++++++++++++++++-----------
 kernel/dma/debug.h                 | 16 +++++++---------
 kernel/dma/mapping.c               | 15 ++++++++-------
 4 files changed, 34 insertions(+), 29 deletions(-)

diff --git a/Documentation/core-api/dma-api.rst b/Documentation/core-api/dma-api.rst
index 3087bea715ed2..ca75b35416792 100644
--- a/Documentation/core-api/dma-api.rst
+++ b/Documentation/core-api/dma-api.rst
@@ -761,7 +761,7 @@ example warning message may look like this::
 	[<ffffffff80235177>] find_busiest_group+0x207/0x8a0
 	[<ffffffff8064784f>] _spin_lock_irqsave+0x1f/0x50
 	[<ffffffff803c7ea3>] check_unmap+0x203/0x490
-	[<ffffffff803c8259>] debug_dma_unmap_page+0x49/0x50
+	[<ffffffff803c8259>] debug_dma_unmap_phys+0x49/0x50
 	[<ffffffff80485f26>] nv_tx_done_optimized+0xc6/0x2c0
 	[<ffffffff80486c13>] nv_nic_irq_optimized+0x73/0x2b0
 	[<ffffffff8026df84>] handle_IRQ_event+0x34/0x70
@@ -855,7 +855,7 @@ that a driver may be leaking mappings.
 dma-debug interface debug_dma_mapping_error() to debug drivers that fail
 to check DMA mapping errors on addresses returned by dma_map_single() and
 dma_map_page() interfaces. This interface clears a flag set by
-debug_dma_map_page() to indicate that dma_mapping_error() has been called by
+debug_dma_map_phys() to indicate that dma_mapping_error() has been called by
 the driver. When driver does unmap, debug_dma_unmap() checks the flag and if
 this flag is still set, prints warning message that includes call trace that
 leads up to the unmap. This interface can be called from dma_mapping_error()
diff --git a/kernel/dma/debug.c b/kernel/dma/debug.c
index e43c6de2bce4e..da6734e3a4ce9 100644
--- a/kernel/dma/debug.c
+++ b/kernel/dma/debug.c
@@ -39,6 +39,7 @@ enum {
 	dma_debug_sg,
 	dma_debug_coherent,
 	dma_debug_resource,
+	dma_debug_phy,
 };
 
 enum map_err_types {
@@ -141,6 +142,7 @@ static const char *type2name[] = {
 	[dma_debug_sg] = "scatter-gather",
 	[dma_debug_coherent] = "coherent",
 	[dma_debug_resource] = "resource",
+	[dma_debug_phy] = "phy",
 };
 
 static const char *dir2name[] = {
@@ -1201,9 +1203,8 @@ void debug_dma_map_single(struct device *dev, const void *addr,
 }
 EXPORT_SYMBOL(debug_dma_map_single);
 
-void debug_dma_map_page(struct device *dev, struct page *page, size_t offset,
-			size_t size, int direction, dma_addr_t dma_addr,
-			unsigned long attrs)
+void debug_dma_map_phys(struct device *dev, phys_addr_t phys, size_t size,
+		int direction, dma_addr_t dma_addr, unsigned long attrs)
 {
 	struct dma_debug_entry *entry;
 
@@ -1218,19 +1219,24 @@ void debug_dma_map_page(struct device *dev, struct page *page, size_t offset,
 		return;
 
 	entry->dev       = dev;
-	entry->type      = dma_debug_single;
-	entry->paddr	 = page_to_phys(page) + offset;
+	entry->type      = dma_debug_phy;
+	entry->paddr	 = phys;
 	entry->dev_addr  = dma_addr;
 	entry->size      = size;
 	entry->direction = direction;
 	entry->map_err_type = MAP_ERR_NOT_CHECKED;
 
-	check_for_stack(dev, page, offset);
+	if (!(attrs & DMA_ATTR_MMIO)) {
+		struct page *page = phys_to_page(phys);
+		size_t offset = offset_in_page(page);
 
-	if (!PageHighMem(page)) {
-		void *addr = page_address(page) + offset;
+		check_for_stack(dev, page, offset);
 
-		check_for_illegal_area(dev, addr, size);
+		if (!PageHighMem(page)) {
+			void *addr = page_address(page) + offset;
+
+			check_for_illegal_area(dev, addr, size);
+		}
 	}
 
 	add_dma_entry(entry, attrs);
@@ -1274,11 +1280,11 @@ void debug_dma_mapping_error(struct device *dev, dma_addr_t dma_addr)
 }
 EXPORT_SYMBOL(debug_dma_mapping_error);
 
-void debug_dma_unmap_page(struct device *dev, dma_addr_t dma_addr,
+void debug_dma_unmap_phys(struct device *dev, dma_addr_t dma_addr,
 			  size_t size, int direction)
 {
 	struct dma_debug_entry ref = {
-		.type           = dma_debug_single,
+		.type           = dma_debug_phy,
 		.dev            = dev,
 		.dev_addr       = dma_addr,
 		.size           = size,
diff --git a/kernel/dma/debug.h b/kernel/dma/debug.h
index f525197d3cae6..76adb42bffd5f 100644
--- a/kernel/dma/debug.h
+++ b/kernel/dma/debug.h
@@ -9,12 +9,11 @@
 #define _KERNEL_DMA_DEBUG_H
 
 #ifdef CONFIG_DMA_API_DEBUG
-extern void debug_dma_map_page(struct device *dev, struct page *page,
-			       size_t offset, size_t size,
-			       int direction, dma_addr_t dma_addr,
+extern void debug_dma_map_phys(struct device *dev, phys_addr_t phys,
+			       size_t size, int direction, dma_addr_t dma_addr,
 			       unsigned long attrs);
 
-extern void debug_dma_unmap_page(struct device *dev, dma_addr_t addr,
+extern void debug_dma_unmap_phys(struct device *dev, dma_addr_t addr,
 				 size_t size, int direction);
 
 extern void debug_dma_map_sg(struct device *dev, struct scatterlist *sg,
@@ -55,14 +54,13 @@ extern void debug_dma_sync_sg_for_device(struct device *dev,
 					 struct scatterlist *sg,
 					 int nelems, int direction);
 #else /* CONFIG_DMA_API_DEBUG */
-static inline void debug_dma_map_page(struct device *dev, struct page *page,
-				      size_t offset, size_t size,
-				      int direction, dma_addr_t dma_addr,
-				      unsigned long attrs)
+static inline void debug_dma_map_phys(struct device *dev, phys_addr_t phys,
+				      size_t size, int direction,
+				      dma_addr_t dma_addr, unsigned long attrs)
 {
 }
 
-static inline void debug_dma_unmap_page(struct device *dev, dma_addr_t addr,
+static inline void debug_dma_unmap_phys(struct device *dev, dma_addr_t addr,
 					size_t size, int direction)
 {
 }
diff --git a/kernel/dma/mapping.c b/kernel/dma/mapping.c
index 107e4a4d251df..4c1dfbabb8ae5 100644
--- a/kernel/dma/mapping.c
+++ b/kernel/dma/mapping.c
@@ -157,6 +157,7 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
 		unsigned long attrs)
 {
 	const struct dma_map_ops *ops = get_dma_ops(dev);
+	phys_addr_t phys = page_to_phys(page) + offset;
 	dma_addr_t addr;
 
 	BUG_ON(!valid_dma_direction(dir));
@@ -165,16 +166,15 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
 		return DMA_MAPPING_ERROR;
 
 	if (dma_map_direct(dev, ops) ||
-	    arch_dma_map_page_direct(dev, page_to_phys(page) + offset + size))
+	    arch_dma_map_page_direct(dev, phys + size))
 		addr = dma_direct_map_page(dev, page, offset, size, dir, attrs);
 	else if (use_dma_iommu(dev))
 		addr = iommu_dma_map_page(dev, page, offset, size, dir, attrs);
 	else
 		addr = ops->map_page(dev, page, offset, size, dir, attrs);
 	kmsan_handle_dma(page, offset, size, dir);
-	trace_dma_map_page(dev, page_to_phys(page) + offset, addr, size, dir,
-			   attrs);
-	debug_dma_map_page(dev, page, offset, size, dir, addr, attrs);
+	trace_dma_map_page(dev, phys, addr, size, dir, attrs);
+	debug_dma_map_phys(dev, phys, size, dir, addr, attrs);
 
 	return addr;
 }
@@ -194,7 +194,7 @@ void dma_unmap_page_attrs(struct device *dev, dma_addr_t addr, size_t size,
 	else
 		ops->unmap_page(dev, addr, size, dir, attrs);
 	trace_dma_unmap_page(dev, addr, size, dir, attrs);
-	debug_dma_unmap_page(dev, addr, size, dir);
+	debug_dma_unmap_phys(dev, addr, size, dir);
 }
 EXPORT_SYMBOL(dma_unmap_page_attrs);
 
@@ -712,7 +712,8 @@ struct page *dma_alloc_pages(struct device *dev, size_t size,
 	if (page) {
 		trace_dma_alloc_pages(dev, page_to_virt(page), *dma_handle,
 				      size, dir, gfp, 0);
-		debug_dma_map_page(dev, page, 0, size, dir, *dma_handle, 0);
+		debug_dma_map_phys(dev, page_to_phys(page), size, dir,
+				   *dma_handle, 0);
 	} else {
 		trace_dma_alloc_pages(dev, NULL, 0, size, dir, gfp, 0);
 	}
@@ -738,7 +739,7 @@ void dma_free_pages(struct device *dev, size_t size, struct page *page,
 		dma_addr_t dma_handle, enum dma_data_direction dir)
 {
 	trace_dma_free_pages(dev, page_to_virt(page), dma_handle, size, dir, 0);
-	debug_dma_unmap_page(dev, dma_handle, size, dir);
+	debug_dma_unmap_phys(dev, dma_handle, size, dir);
 	__dma_free_pages(dev, size, page, dma_handle, dir);
 }
 EXPORT_SYMBOL_GPL(dma_free_pages);
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 04 12:43:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 12:43:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069166.1433015 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiuXM-0007IJ-10; Mon, 04 Aug 2025 12:43:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069166.1433015; Mon, 04 Aug 2025 12:43: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 1uiuXL-0007IA-UE; Mon, 04 Aug 2025 12:43:31 +0000
Received: by outflank-mailman (input) for mailman id 1069166;
 Mon, 04 Aug 2025 12:43:31 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=lO+m=2Q=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1uiuXL-0006VD-5S
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 12:43:31 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9f577fea-7130-11f0-a321-13f23c93f187;
 Mon, 04 Aug 2025 14:43:30 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 28A9644938;
 Mon,  4 Aug 2025 12:43:29 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 96668C4CEF8;
 Mon,  4 Aug 2025 12:43:27 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9f577fea-7130-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1754311409;
	bh=B6ggJVOQfTYMCOE/nJsgZM614saTj7Qtn55LwfqKBMA=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=mACwCJwnciJCEbZnCrkOPhfxhxsK8nNGbFRTcuF/UprHjNhigkEBz4Qjo6q3nOYnE
	 NNEuUiRwpxiJJ+5+lJPFbBh1pz1NHdaolrAAyyFd/BDEth7WPdBMjVzrlmdIaxA3Qb
	 2RsWBm5LtpycB6Eoe6pJbVmXbTVoQjyF0BJrKzZPE5F7UARnqwUUZNfC3023xQAdCk
	 GMv+SVJ7lY8MSINtMTSQNgemwlQgadSRLsUt+7E2s6eroO/rhcn1uAVTTMaXvcyAt7
	 AFjFAFTQV2Ju8uDUJFNXpQWgxbDaQrFpkFb9ltCXITe4mMxj1t62jvARy38KRhJWAk
	 x4Lll22SY+E5Q==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v1 01/16] dma-mapping: introduce new DMA attribute to indicate MMIO memory
Date: Mon,  4 Aug 2025 15:42:35 +0300
Message-ID: <f749c597980592ecc7aeb5ecca974c8dfb76f834.1754292567.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1754292567.git.leon@kernel.org>
References: <cover.1754292567.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

This patch introduces the DMA_ATTR_MMIO attribute to mark DMA buffers
that reside in memory-mapped I/O (MMIO) regions, such as device BARs
exposed through the host bridge, which are accessible for peer-to-peer
(P2P) DMA.

This attribute is especially useful for exporting device memory to other
devices for DMA without CPU involvement, and avoids unnecessary or
potentially detrimental CPU cache maintenance calls.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 Documentation/core-api/dma-attributes.rst |  7 +++++++
 include/linux/dma-mapping.h               | 14 ++++++++++++++
 include/trace/events/dma.h                |  3 ++-
 rust/kernel/dma.rs                        |  3 +++
 4 files changed, 26 insertions(+), 1 deletion(-)

diff --git a/Documentation/core-api/dma-attributes.rst b/Documentation/core-api/dma-attributes.rst
index 1887d92e8e926..91acd2684e506 100644
--- a/Documentation/core-api/dma-attributes.rst
+++ b/Documentation/core-api/dma-attributes.rst
@@ -130,3 +130,10 @@ accesses to DMA buffers in both privileged "supervisor" and unprivileged
 subsystem that the buffer is fully accessible at the elevated privilege
 level (and ideally inaccessible or at least read-only at the
 lesser-privileged levels).
+
+DMA_ATTR_MMIO
+-------------
+
+This attribute is especially useful for exporting device memory to other
+devices for DMA without CPU involvement, and avoids unnecessary or
+potentially detrimental CPU cache maintenance calls.
diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h
index 55c03e5fe8cb3..afc89835c7457 100644
--- a/include/linux/dma-mapping.h
+++ b/include/linux/dma-mapping.h
@@ -58,6 +58,20 @@
  */
 #define DMA_ATTR_PRIVILEGED		(1UL << 9)
 
+/*
+ * DMA_ATTR_MMIO - Indicates memory-mapped I/O (MMIO) region for DMA mapping
+ *
+ * This attribute is used for MMIO memory regions that are exposed through
+ * the host bridge and are accessible for peer-to-peer (P2P) DMA. Memory
+ * marked with this attribute is not system RAM and may represent device
+ * BAR windows or peer-exposed memory.
+ *
+ * Typical usage is for mapping hardware memory BARs or exporting device
+ * memory to other devices for DMA without involving main system RAM.
+ * The attribute guarantees no CPU cache maintenance calls will be made.
+ */
+#define DMA_ATTR_MMIO		(1UL << 10)
+
 /*
  * A dma_addr_t can hold any valid DMA or bus address for the platform.  It can
  * be given to a device to use as a DMA source or target.  It is specific to a
diff --git a/include/trace/events/dma.h b/include/trace/events/dma.h
index d8ddc27b6a7c8..ee90d6f1dcf35 100644
--- a/include/trace/events/dma.h
+++ b/include/trace/events/dma.h
@@ -31,7 +31,8 @@ TRACE_DEFINE_ENUM(DMA_NONE);
 		{ DMA_ATTR_FORCE_CONTIGUOUS, "FORCE_CONTIGUOUS" }, \
 		{ DMA_ATTR_ALLOC_SINGLE_PAGES, "ALLOC_SINGLE_PAGES" }, \
 		{ DMA_ATTR_NO_WARN, "NO_WARN" }, \
-		{ DMA_ATTR_PRIVILEGED, "PRIVILEGED" })
+		{ DMA_ATTR_PRIVILEGED, "PRIVILEGED" }, \
+		{ DMA_ATTR_MMIO, "MMIO" })
 
 DECLARE_EVENT_CLASS(dma_map,
 	TP_PROTO(struct device *dev, phys_addr_t phys_addr, dma_addr_t dma_addr,
diff --git a/rust/kernel/dma.rs b/rust/kernel/dma.rs
index 2bc8ab51ec280..61d9eed7a786e 100644
--- a/rust/kernel/dma.rs
+++ b/rust/kernel/dma.rs
@@ -242,6 +242,9 @@ pub mod attrs {
     /// Indicates that the buffer is fully accessible at an elevated privilege level (and
     /// ideally inaccessible or at least read-only at lesser-privileged levels).
     pub const DMA_ATTR_PRIVILEGED: Attrs = Attrs(bindings::DMA_ATTR_PRIVILEGED);
+
+    /// Indicates that the buffer is MMIO memory.
+    pub const DMA_ATTR_MMIO: Attrs = Attrs(bindings::DMA_ATTR_MMIO);
 }
 
 /// An abstraction of the `dma_alloc_coherent` API.
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 04 12:43:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 12:43:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069168.1433026 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiuXT-0007il-Aj; Mon, 04 Aug 2025 12:43:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069168.1433026; Mon, 04 Aug 2025 12:43: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 1uiuXT-0007ie-6s; Mon, 04 Aug 2025 12:43:39 +0000
Received: by outflank-mailman (input) for mailman id 1069168;
 Mon, 04 Aug 2025 12:43:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=lO+m=2Q=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1uiuXR-0006V7-Nh
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 12:43:37 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a3062ad6-7130-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 14:43:36 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 46869A55826;
 Mon,  4 Aug 2025 12:43:35 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7673FC4CEE7;
 Mon,  4 Aug 2025 12:43:33 +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>
X-Inumbo-ID: a3062ad6-7130-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1754311414;
	bh=gXQfTddyrmH8Ixen8MMOQFcSDtf75ytBbFmEnbpkIK0=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=WRgsvRlFW0e77jc7NIsyBW2keN26coVZrkVCiSkqs4aw+XPWcg7vc+V1XlKoIcE88
	 IOIbPQelgEDLheM/qg7mVhJZzAqXm7CUjMAMKNzC+umg0g7DwYC9YBLyHXL0I66FCh
	 IFbMO71xVEUgxdJl2+IupUgaBpdkpCp+VfiDgWnzz0MMd73xSf4ctXSScspzbf7J4C
	 MQm70SnKxDBQEq6Qi5EQDhrkAfT+WwzTZQfsthVUSLn1pLEnK9pcRGmBAGcQOXI3DR
	 pSMdvMXvMDulNitg5dtAwYyxJ7hDxcGMKpGt6kEpCAlccx1SJGPya+SDEHg8s11i4i
	 u8QgrR2e/DTYQ==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v1 04/16] dma-mapping: rename trace_dma_*map_page to trace_dma_*map_phys
Date: Mon,  4 Aug 2025 15:42:38 +0300
Message-ID: <7e10dcba2f3108efc6af13bfdbe8f09073835838.1754292567.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1754292567.git.leon@kernel.org>
References: <cover.1754292567.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

As a preparation for following map_page -> map_phys API conversion,
let's rename trace_dma_*map_page() to be trace_dma_*map_phys().

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 include/trace/events/dma.h | 4 ++--
 kernel/dma/mapping.c       | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/include/trace/events/dma.h b/include/trace/events/dma.h
index ee90d6f1dcf35..84416c7d6bfaa 100644
--- a/include/trace/events/dma.h
+++ b/include/trace/events/dma.h
@@ -72,7 +72,7 @@ DEFINE_EVENT(dma_map, name, \
 		 size_t size, enum dma_data_direction dir, unsigned long attrs), \
 	TP_ARGS(dev, phys_addr, dma_addr, size, dir, attrs))
 
-DEFINE_MAP_EVENT(dma_map_page);
+DEFINE_MAP_EVENT(dma_map_phys);
 DEFINE_MAP_EVENT(dma_map_resource);
 
 DECLARE_EVENT_CLASS(dma_unmap,
@@ -110,7 +110,7 @@ DEFINE_EVENT(dma_unmap, name, \
 		 enum dma_data_direction dir, unsigned long attrs), \
 	TP_ARGS(dev, addr, size, dir, attrs))
 
-DEFINE_UNMAP_EVENT(dma_unmap_page);
+DEFINE_UNMAP_EVENT(dma_unmap_phys);
 DEFINE_UNMAP_EVENT(dma_unmap_resource);
 
 DECLARE_EVENT_CLASS(dma_alloc_class,
diff --git a/kernel/dma/mapping.c b/kernel/dma/mapping.c
index 4c1dfbabb8ae5..fe1f0da6dc507 100644
--- a/kernel/dma/mapping.c
+++ b/kernel/dma/mapping.c
@@ -173,7 +173,7 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
 	else
 		addr = ops->map_page(dev, page, offset, size, dir, attrs);
 	kmsan_handle_dma(page, offset, size, dir);
-	trace_dma_map_page(dev, phys, addr, size, dir, attrs);
+	trace_dma_map_phys(dev, phys, addr, size, dir, attrs);
 	debug_dma_map_phys(dev, phys, size, dir, addr, attrs);
 
 	return addr;
@@ -193,7 +193,7 @@ void dma_unmap_page_attrs(struct device *dev, dma_addr_t addr, size_t size,
 		iommu_dma_unmap_page(dev, addr, size, dir, attrs);
 	else
 		ops->unmap_page(dev, addr, size, dir, attrs);
-	trace_dma_unmap_page(dev, addr, size, dir, attrs);
+	trace_dma_unmap_phys(dev, addr, size, dir, attrs);
 	debug_dma_unmap_phys(dev, addr, size, dir);
 }
 EXPORT_SYMBOL(dma_unmap_page_attrs);
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 04 12:43:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 12:43:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069175.1433036 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiuXY-0008FI-Ix; Mon, 04 Aug 2025 12:43:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069175.1433036; Mon, 04 Aug 2025 12:43: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 1uiuXY-0008F0-EX; Mon, 04 Aug 2025 12:43:44 +0000
Received: by outflank-mailman (input) for mailman id 1069175;
 Mon, 04 Aug 2025 12:43:42 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=lO+m=2Q=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1uiuXW-0006VD-Il
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 12:43:42 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a60fbd40-7130-11f0-a321-13f23c93f187;
 Mon, 04 Aug 2025 14:43:41 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 5EDCF4423C;
 Mon,  4 Aug 2025 12:43:40 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id D6868C4CEF0;
 Mon,  4 Aug 2025 12:43:38 +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>
X-Inumbo-ID: a60fbd40-7130-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1754311420;
	bh=KuB85oQ1zEvHewxjvaa7TgR+vPeGP91gwiah2Yizc2c=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=hwpc/2Lt2D3anuuHX/CywReJ+JevkzY6FynhQNLZcPcidH3a8z4Y3cZmYKqJx40aB
	 HuWBeZEysO6t3oSzFklaWg8fzR58b4rw4vPFNALiUc9A9irWH9TDeW0nOLlTcNMjg5
	 8y75jvY8oofTniAsxP4pz8Mu3KaSfgmilMiaTliZ/mjlKSNBhY+c10mFYtQHZ4AR/7
	 Xmk6xDyL82OWzMQWw/B3tiObakK+I7qRBS7g9Wgz6viepi3WB5CZHiWKKRcEEGPKzI
	 Kj0BbJnhOLGzRPSZ09k5YVjeQRC0y6mBjsRtkaL/iwYbfSRrLhH2F4a0OA4eEyJn4C
	 wZIRnvkij7dkA==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v1 06/16] iommu/dma: extend iommu_dma_*map_phys API to handle MMIO memory
Date: Mon,  4 Aug 2025 15:42:40 +0300
Message-ID: <09c04e0428f422c1b13d2b054af16e719de318a3.1754292567.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1754292567.git.leon@kernel.org>
References: <cover.1754292567.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

Combine iommu_dma_*map_phys with iommu_dma_*map_resource interfaces in
order to allow single phys_addr_t flow.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 drivers/iommu/dma-iommu.c | 20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)

diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
index 11c5d5f8c0981..0a19ce50938b3 100644
--- a/drivers/iommu/dma-iommu.c
+++ b/drivers/iommu/dma-iommu.c
@@ -1193,12 +1193,17 @@ static inline size_t iova_unaligned(struct iova_domain *iovad, phys_addr_t phys,
 dma_addr_t iommu_dma_map_phys(struct device *dev, phys_addr_t phys, size_t size,
 		enum dma_data_direction dir, unsigned long attrs)
 {
-	bool coherent = dev_is_dma_coherent(dev);
-	int prot = dma_info_to_prot(dir, coherent, attrs);
 	struct iommu_domain *domain = iommu_get_dma_domain(dev);
 	struct iommu_dma_cookie *cookie = domain->iova_cookie;
 	struct iova_domain *iovad = &cookie->iovad;
 	dma_addr_t iova, dma_mask = dma_get_mask(dev);
+	bool coherent;
+	int prot;
+
+	if (attrs & DMA_ATTR_MMIO)
+		return __iommu_dma_map(dev, phys, size,
+				dma_info_to_prot(dir, false, attrs) | IOMMU_MMIO,
+				dma_get_mask(dev));
 
 	/*
 	 * If both the physical buffer start address and size are page aligned,
@@ -1211,6 +1216,9 @@ dma_addr_t iommu_dma_map_phys(struct device *dev, phys_addr_t phys, size_t size,
 			return DMA_MAPPING_ERROR;
 	}
 
+	coherent = dev_is_dma_coherent(dev);
+	prot = dma_info_to_prot(dir, coherent, attrs);
+
 	if (!coherent && !(attrs & DMA_ATTR_SKIP_CPU_SYNC))
 		arch_sync_dma_for_device(phys, size, dir);
 
@@ -1223,10 +1231,14 @@ dma_addr_t iommu_dma_map_phys(struct device *dev, phys_addr_t phys, size_t size,
 void iommu_dma_unmap_phys(struct device *dev, dma_addr_t dma_handle,
 		size_t size, enum dma_data_direction dir, unsigned long attrs)
 {
-	struct iommu_domain *domain = iommu_get_dma_domain(dev);
 	phys_addr_t phys;
 
-	phys = iommu_iova_to_phys(domain, dma_handle);
+	if (attrs & DMA_ATTR_MMIO) {
+		__iommu_dma_unmap(dev, dma_handle, size);
+		return;
+	}
+
+	phys = iommu_iova_to_phys(iommu_get_dma_domain(dev), dma_handle);
 	if (WARN_ON(!phys))
 		return;
 
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 04 12:43:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 12:43:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069181.1433046 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiuXc-0000DM-QL; Mon, 04 Aug 2025 12:43:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069181.1433046; Mon, 04 Aug 2025 12: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 1uiuXc-0000DC-Lh; Mon, 04 Aug 2025 12:43:48 +0000
Received: by outflank-mailman (input) for mailman id 1069181;
 Mon, 04 Aug 2025 12:43:47 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=lO+m=2Q=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1uiuXb-0006VD-5w
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 12:43:47 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org
 [2600:3c04:e001:324:0:1991:8:25])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a9037b29-7130-11f0-a321-13f23c93f187;
 Mon, 04 Aug 2025 14:43:46 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id AE031601FD;
 Mon,  4 Aug 2025 12:43:44 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9423FC4CEE7;
 Mon,  4 Aug 2025 12:43:43 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a9037b29-7130-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1754311424;
	bh=974P2mquMC7dLPtwo4RbF3aKdnRgjXusEE0OKr9VEPo=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=sRzNIswyOXbP49BscDBQ+94sPL3uQydFVa6yD3MLC4jh0WkntDIM+qnsOlQuXDIVr
	 wxnQwyeKJFQGPd7H59/m+DRXV9WGkkfngBQYFQnV2Vx5zdbDTmlp3SKPzzugttJ5wK
	 Y94WaLaho7OI9fqCDv7wnjA4LbMPxMu1m7XNoFz9vxQttjkrfNEZgFRlKOgE5FUG9O
	 9S+EDseCadKtr6Zd8jY55mBnPek99fWQfl0LLIwkcioEL+wWEh9akcqBS/aNmw3uOI
	 i2gfa9Kf8zAEiD7yipdlK7kOpCvN+05lo1g4pMkP27RWr31YBzoQ7Nv4fuU8IiE/Yw
	 SuLv6jnr2CKZg==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v1 07/16] dma-mapping: convert dma_direct_*map_page to be phys_addr_t based
Date: Mon,  4 Aug 2025 15:42:41 +0300
Message-ID: <882499bb37bf4af3dece27d9f791a8982ca4c6a7.1754292567.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1754292567.git.leon@kernel.org>
References: <cover.1754292567.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

Convert the DMA direct mapping functions to accept physical addresses
directly instead of page+offset parameters. The functions were already
operating on physical addresses internally, so this change eliminates
the redundant page-to-physical conversion at the API boundary.

The functions dma_direct_map_page() and dma_direct_unmap_page() are
renamed to dma_direct_map_phys() and dma_direct_unmap_phys() respectively,
with their calling convention changed from (struct page *page,
unsigned long offset) to (phys_addr_t phys).

Architecture-specific functions arch_dma_map_page_direct() and
arch_dma_unmap_page_direct() are similarly renamed to
arch_dma_map_phys_direct() and arch_dma_unmap_phys_direct().

The is_pci_p2pdma_page() checks are replaced with DMA_ATTR_MMIO checks
to allow integration with dma_direct_map_resource and dma_direct_map_phys()
is extended to support MMIO path either.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 arch/powerpc/kernel/dma-iommu.c |  4 +--
 include/linux/dma-map-ops.h     |  8 +++---
 kernel/dma/direct.c             |  6 ++--
 kernel/dma/direct.h             | 50 ++++++++++++++++++++-------------
 kernel/dma/mapping.c            |  8 +++---
 5 files changed, 44 insertions(+), 32 deletions(-)

diff --git a/arch/powerpc/kernel/dma-iommu.c b/arch/powerpc/kernel/dma-iommu.c
index 4d64a5db50f38..0359ab72cd3ba 100644
--- a/arch/powerpc/kernel/dma-iommu.c
+++ b/arch/powerpc/kernel/dma-iommu.c
@@ -14,7 +14,7 @@
 #define can_map_direct(dev, addr) \
 	((dev)->bus_dma_limit >= phys_to_dma((dev), (addr)))
 
-bool arch_dma_map_page_direct(struct device *dev, phys_addr_t addr)
+bool arch_dma_map_phys_direct(struct device *dev, phys_addr_t addr)
 {
 	if (likely(!dev->bus_dma_limit))
 		return false;
@@ -24,7 +24,7 @@ bool arch_dma_map_page_direct(struct device *dev, phys_addr_t addr)
 
 #define is_direct_handle(dev, h) ((h) >= (dev)->archdata.dma_offset)
 
-bool arch_dma_unmap_page_direct(struct device *dev, dma_addr_t dma_handle)
+bool arch_dma_unmap_phys_direct(struct device *dev, dma_addr_t dma_handle)
 {
 	if (likely(!dev->bus_dma_limit))
 		return false;
diff --git a/include/linux/dma-map-ops.h b/include/linux/dma-map-ops.h
index f48e5fb88bd5d..71f5b30254159 100644
--- a/include/linux/dma-map-ops.h
+++ b/include/linux/dma-map-ops.h
@@ -392,15 +392,15 @@ void *arch_dma_set_uncached(void *addr, size_t size);
 void arch_dma_clear_uncached(void *addr, size_t size);
 
 #ifdef CONFIG_ARCH_HAS_DMA_MAP_DIRECT
-bool arch_dma_map_page_direct(struct device *dev, phys_addr_t addr);
-bool arch_dma_unmap_page_direct(struct device *dev, dma_addr_t dma_handle);
+bool arch_dma_map_phys_direct(struct device *dev, phys_addr_t addr);
+bool arch_dma_unmap_phys_direct(struct device *dev, dma_addr_t dma_handle);
 bool arch_dma_map_sg_direct(struct device *dev, struct scatterlist *sg,
 		int nents);
 bool arch_dma_unmap_sg_direct(struct device *dev, struct scatterlist *sg,
 		int nents);
 #else
-#define arch_dma_map_page_direct(d, a)		(false)
-#define arch_dma_unmap_page_direct(d, a)	(false)
+#define arch_dma_map_phys_direct(d, a)		(false)
+#define arch_dma_unmap_phys_direct(d, a)	(false)
 #define arch_dma_map_sg_direct(d, s, n)		(false)
 #define arch_dma_unmap_sg_direct(d, s, n)	(false)
 #endif
diff --git a/kernel/dma/direct.c b/kernel/dma/direct.c
index 24c359d9c8799..fa75e30700730 100644
--- a/kernel/dma/direct.c
+++ b/kernel/dma/direct.c
@@ -453,7 +453,7 @@ void dma_direct_unmap_sg(struct device *dev, struct scatterlist *sgl,
 		if (sg_dma_is_bus_address(sg))
 			sg_dma_unmark_bus_address(sg);
 		else
-			dma_direct_unmap_page(dev, sg->dma_address,
+			dma_direct_unmap_phys(dev, sg->dma_address,
 					      sg_dma_len(sg), dir, attrs);
 	}
 }
@@ -476,8 +476,8 @@ int dma_direct_map_sg(struct device *dev, struct scatterlist *sgl, int nents,
 			 */
 			break;
 		case PCI_P2PDMA_MAP_NONE:
-			sg->dma_address = dma_direct_map_page(dev, sg_page(sg),
-					sg->offset, sg->length, dir, attrs);
+			sg->dma_address = dma_direct_map_phys(dev, sg_phys(sg),
+					sg->length, dir, attrs);
 			if (sg->dma_address == DMA_MAPPING_ERROR) {
 				ret = -EIO;
 				goto out_unmap;
diff --git a/kernel/dma/direct.h b/kernel/dma/direct.h
index d2c0b7e632fc0..2b442efc9b5a7 100644
--- a/kernel/dma/direct.h
+++ b/kernel/dma/direct.h
@@ -80,42 +80,54 @@ static inline void dma_direct_sync_single_for_cpu(struct device *dev,
 		arch_dma_mark_clean(paddr, size);
 }
 
-static inline dma_addr_t dma_direct_map_page(struct device *dev,
-		struct page *page, unsigned long offset, size_t size,
-		enum dma_data_direction dir, unsigned long attrs)
+static inline dma_addr_t dma_direct_map_phys(struct device *dev,
+		phys_addr_t phys, size_t size, enum dma_data_direction dir,
+		unsigned long attrs)
 {
-	phys_addr_t phys = page_to_phys(page) + offset;
-	dma_addr_t dma_addr = phys_to_dma(dev, phys);
+	bool is_mmio = attrs & DMA_ATTR_MMIO;
+	dma_addr_t dma_addr;
+	bool capable;
+
+	dma_addr = (is_mmio) ? phys : phys_to_dma(dev, phys);
+	capable = dma_capable(dev, dma_addr, size, is_mmio);
+	if (is_mmio) {
+	       if (unlikely(!capable))
+		       goto err_overflow;
+	       return dma_addr;
+	}
 
-	if (is_swiotlb_force_bounce(dev)) {
-		if (is_pci_p2pdma_page(page))
-			return DMA_MAPPING_ERROR;
+	if (is_swiotlb_force_bounce(dev))
 		return swiotlb_map(dev, phys, size, dir, attrs);
-	}
 
-	if (unlikely(!dma_capable(dev, dma_addr, size, true)) ||
-	    dma_kmalloc_needs_bounce(dev, size, dir)) {
-		if (is_pci_p2pdma_page(page))
-			return DMA_MAPPING_ERROR;
+	if (unlikely(!capable) || dma_kmalloc_needs_bounce(dev, size, dir)) {
 		if (is_swiotlb_active(dev))
 			return swiotlb_map(dev, phys, size, dir, attrs);
 
-		dev_WARN_ONCE(dev, 1,
-			     "DMA addr %pad+%zu overflow (mask %llx, bus limit %llx).\n",
-			     &dma_addr, size, *dev->dma_mask, dev->bus_dma_limit);
-		return DMA_MAPPING_ERROR;
+		goto err_overflow;
 	}
 
 	if (!dev_is_dma_coherent(dev) && !(attrs & DMA_ATTR_SKIP_CPU_SYNC))
 		arch_sync_dma_for_device(phys, size, dir);
 	return dma_addr;
+
+err_overflow:
+	dev_WARN_ONCE(
+		dev, 1,
+		"DMA addr %pad+%zu overflow (mask %llx, bus limit %llx).\n",
+		&dma_addr, size, *dev->dma_mask, dev->bus_dma_limit);
+	return DMA_MAPPING_ERROR;
 }
 
-static inline void dma_direct_unmap_page(struct device *dev, dma_addr_t addr,
+static inline void dma_direct_unmap_phys(struct device *dev, dma_addr_t addr,
 		size_t size, enum dma_data_direction dir, unsigned long attrs)
 {
-	phys_addr_t phys = dma_to_phys(dev, addr);
+	phys_addr_t phys;
+
+	if (attrs & DMA_ATTR_MMIO)
+		/* nothing to do: uncached and no swiotlb */
+		return;
 
+	phys = dma_to_phys(dev, addr);
 	if (!(attrs & DMA_ATTR_SKIP_CPU_SYNC))
 		dma_direct_sync_single_for_cpu(dev, addr, size, dir);
 
diff --git a/kernel/dma/mapping.c b/kernel/dma/mapping.c
index 58482536db9bb..80481a873340a 100644
--- a/kernel/dma/mapping.c
+++ b/kernel/dma/mapping.c
@@ -166,8 +166,8 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
 		return DMA_MAPPING_ERROR;
 
 	if (dma_map_direct(dev, ops) ||
-	    arch_dma_map_page_direct(dev, phys + size))
-		addr = dma_direct_map_page(dev, page, offset, size, dir, attrs);
+	    arch_dma_map_phys_direct(dev, phys + size))
+		addr = dma_direct_map_phys(dev, phys, size, dir, attrs);
 	else if (use_dma_iommu(dev))
 		addr = iommu_dma_map_phys(dev, phys, size, dir, attrs);
 	else
@@ -187,8 +187,8 @@ void dma_unmap_page_attrs(struct device *dev, dma_addr_t addr, size_t size,
 
 	BUG_ON(!valid_dma_direction(dir));
 	if (dma_map_direct(dev, ops) ||
-	    arch_dma_unmap_page_direct(dev, addr + size))
-		dma_direct_unmap_page(dev, addr, size, dir, attrs);
+	    arch_dma_unmap_phys_direct(dev, addr + size))
+		dma_direct_unmap_phys(dev, addr, size, dir, attrs);
 	else if (use_dma_iommu(dev))
 		iommu_dma_unmap_phys(dev, addr, size, dir, attrs);
 	else
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 04 12:45:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 12:45:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069196.1433056 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiuZW-0001k6-9P; Mon, 04 Aug 2025 12:45:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069196.1433056; Mon, 04 Aug 2025 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 1uiuZW-0001jz-6T; Mon, 04 Aug 2025 12:45:46 +0000
Received: by outflank-mailman (input) for mailman id 1069196;
 Mon, 04 Aug 2025 12:45:45 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=dY6Z=2Q=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1uiuZV-0001jt-9J
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 12:45:45 +0000
Received: from NAM02-DM3-obe.outbound.protection.outlook.com
 (mail-dm3nam02on2062b.outbound.protection.outlook.com
 [2a01:111:f403:2405::62b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ee2b35ee-7130-11f0-a321-13f23c93f187;
 Mon, 04 Aug 2025 14:45:42 +0200 (CEST)
Received: from BY1P220CA0011.NAMP220.PROD.OUTLOOK.COM (2603:10b6:a03:59d::11)
 by LV2PR12MB5776.namprd12.prod.outlook.com (2603:10b6:408:178::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.20; Mon, 4 Aug
 2025 12:45:39 +0000
Received: from SJ1PEPF00001CDF.namprd05.prod.outlook.com
 (2603:10b6:a03:59d:cafe::d4) by BY1P220CA0011.outlook.office365.com
 (2603:10b6:a03:59d::11) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.21 via Frontend Transport; Mon,
 4 Aug 2025 12:45:39 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF00001CDF.mail.protection.outlook.com (10.167.242.7) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Mon, 4 Aug 2025 12:45:39 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) 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 Aug
 2025 07:45:38 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 4 Aug
 2025 07:45:38 -0500
Received: from [10.71.195.192] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Mon, 4 Aug 2025 07:45:36 -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>
X-Inumbo-ID: ee2b35ee-7130-11f0-a321-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=S+Ihw8hd3PpnrBB4bGMHNG55dcCEneCdzGkvuFP3t96bzzOewbyOPUU9IXQ/xR5Di2ig7CLddhWWy9tCKKkF/nwTWFIeO+9R88Hal8wwe26NLZKNXEWfMkH+zNGhLNR6NxNydvEuA9s7VZqyUYHPnni6NoMbtCjdZsPaigyj9DRaPY+Qoi4x3UXxvw/vFG+YhgwiIjaiWEU9QgcnfOkeCCu7aOSTDgmFkoeUHAlbzgyxiNoGuRhOIHrKDnw2WYSrLtz7cJz7B5Ao6fTPeNN8r+Eo3z5O5v6I5nZIwPvlbqdHycn8KmZQeP+OnJ50i3FNmpb2mR1oQXDp3o6x0LHbAg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fwLSnjMkFOlKzzQ0qwoD9JTIwspxDpytCR2ap+l25Xw=;
 b=qQ6tgcEci7kazOvDmkz3/ZJhx9/PUNZfyq+xpF8OKmMbe761xsdik/gIV6Jj15BmSeRhEswjINUSDmOo6fjgxva2rXRld7SEhTYyt8ixS/Y7IWG7Gxv9txy3VgMpB0L2rg9qJrHMg3cHlEjeUXclGYQPhgPsWieShlgUb8Z/eXWdj26sfLxwIqzSI8RDcnud4oravGZoIS+vPyhG5kv3MaWTp6JtTrsdHzXjidOpAcjT1iFGdptd0JzzNFBrjzz4Mtpls4pnbCbcaxCBVz7v0IVsN50+yk4oH7FJlG8xyemhJEzF+GbY83n3BvcmbjcTsIXQHKzLoQDQTIgKh4b7mw==
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=fwLSnjMkFOlKzzQ0qwoD9JTIwspxDpytCR2ap+l25Xw=;
 b=Hfqax7NGMc68QHqojdXzEJ+EC4FT2wUUhIoXufB8XSKPuxtA8C/oXZLH/yLeCr5YFCqg7QbVgjokJiXoj67Lg1WnovIxeYepHhsF+ywF7ABOfWVZfVYnEltw9heDeRTAnR26a8mz9V497e0Bk8XiwfXIPJVLgNlMVoW7zWJVOiM=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <c21ba07a-2363-498e-a590-7a5b32659f84@amd.com>
Date: Mon, 4 Aug 2025 13:45:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/5] arm/mpu: Implement setup_frametable_mappings for MPU
 systems
Content-Language: en-GB
To: Hari Limaye <hari.limaye@arm.com>, <xen-devel@lists.xenproject.org>
CC: <luca.fancellu@arm.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
References: <cover.1753864612.git.hari.limaye@arm.com>
 <f08c240934fc126b651096a315da84d2d8e15197.1753864612.git.hari.limaye@arm.com>
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <f08c240934fc126b651096a315da84d2d8e15197.1753864612.git.hari.limaye@arm.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF00001CDF:EE_|LV2PR12MB5776:EE_
X-MS-Office365-Filtering-Correlation-Id: 9618c8da-d0e0-465e-b9ed-08ddd354d0f4
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|1800799024|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?NXVNVjZlSDhjVEhOYUVYOGtjOHFFZ2UzQklWb1l5bzE1MnJYYW9sUGRjK0Ju?=
 =?utf-8?B?ZldWYnpRdnVrZEZkZXFWV1doMDlOY1Z1Q3Z2aG4xOTVSa3hYRmpWNXFZejdE?=
 =?utf-8?B?dnJpVlQ5Y1g5NUpjWnJIczJJelFydWRhQWdNVTRPeGw2bjd0S2QySVRHVjBR?=
 =?utf-8?B?YlFTQjQreC9vQnNNVWpsQ1J0YkhLbGVaMEc1R3U3enVnRXE5Y283NWhuR2k4?=
 =?utf-8?B?L1hMOVV2ZExoTFNnYnpOVnNDR3BnejNPVDJsZ3N5T1lWS1dodWRaRC9TdUVz?=
 =?utf-8?B?MURzYnowa1d2UlRySlN2Si94U3pSMnpycXI5VXIxTjhEeUt3T25vSldqd2c4?=
 =?utf-8?B?eEhFMmV5M2Z5MS9zVEwwTVM4em5wbkorUHRrTmJHU1ZkRkNUekkzL3R3NU9U?=
 =?utf-8?B?cytGSmhJc1lkSVl3VHMwbXcrdEZhS2JGbTFZa0NHMDdpcm84SFZmaEx6MkJR?=
 =?utf-8?B?UnFnM05iUmZpc1o4ajI5MHNoLzBndTNub0ZWWHBKNTd1ZlVwai9MRlBJN3FX?=
 =?utf-8?B?NnNzeFBMeGJjdTFPUFBScU1NNVFpcHNjTTEvQ2ZYOVVBbmFuQ282TERDdFNs?=
 =?utf-8?B?MTdDQXBwVkFLV21CQmJrZFRndzNzZm54Z3J3SFpNcXl0cWVyOFJpM2cwZmFu?=
 =?utf-8?B?L2FXdW5oQ1M5cGllR3VLVzZPT0JUeTJ6VTRQTE1tMEdON2RKSUhkb3BETWVs?=
 =?utf-8?B?K29iZVlSdVNvT2IvOTh6b0xDV2l4NUNQbVNzU1ViTG8zUkkzMFRFUjU2bmpU?=
 =?utf-8?B?bHNCeGRZMHcyazlRTWFmY0gra0ZZdmdCNWhlWlBEbGlhQ0dnOXhSbmtmRDNH?=
 =?utf-8?B?RzM3VnV6Nk9KVGdnNG95cklMSmQxYXk2bXZmbHhCUlRpZGFxUXpnd2tSbzM3?=
 =?utf-8?B?OE1pSTFERjFKN3I2cVlJT242MGpRSnUwbkZDMXNBSzlublZTdHM2cm5MR054?=
 =?utf-8?B?QWN5dDFKTVpZR1BpcmtscXY5dGdzTmxKSCtQRFBhVDM4NHJHYlJ4cnRyNk5S?=
 =?utf-8?B?NXA3aHpkT1FDTUZ2TXdJTTZ4L1Q1dlRaMG0zNU0zME9ZWnVsZk5OVE1xWmFQ?=
 =?utf-8?B?RW9ncDE2bGJaY0tXU0IyaElwSWcwMUU3L0NtYkhKbjdlRGxRZzNQem1lU09R?=
 =?utf-8?B?UDRHdXRpQmJYZ3JIQWd6T2p3YXdFcWZac1g3M0ptNU1NdW9yY2ErMmNESTlJ?=
 =?utf-8?B?aXpkT0V5SXdiZGRpYVlObjBKc2J3NTNubG1lNHdxMmFVc0NNdm5GMXd4bncz?=
 =?utf-8?B?dGlXWUR1ZC90ZWx0WTA1Zk1ZSjJndnQ2cVRmcTZEclNBYmhYQ084M0NIdnFD?=
 =?utf-8?B?YzQyK1FWZ1lDOHpXTFNLeGtROXBZUnNVcEVIYU9ObjUvQ01UYlhvQVlzR2Ux?=
 =?utf-8?B?MHZmRlZqbWNGYll5YmxxOFZBQnpLUkhpOXozbXpOd1V4NnczYUhRb0U3Q1cy?=
 =?utf-8?B?NnhLT3JNZVFpUWE3ZGo1SjFEMkVJZ010N2hoMGRDMVVkMWRocE9HdGxncjk2?=
 =?utf-8?B?bmJFaFA5MHg3NXl5S0d0UlNSUmMxbjMxVDFSRm9aMjZsSWhoa0c5MHhHOGRz?=
 =?utf-8?B?SnJWTkk1d3hYY2xtUHk4Mld3a09jeU4zaTBFNkpUMXV2WUw3ZkVhbDVBTkhW?=
 =?utf-8?B?Nzdqam43MGxBN0FSVHdodjlVcEUwVi9sR0FRNDZCbEpBV1pnZUxIcWYzdjdR?=
 =?utf-8?B?VzkrcVBkSGVlbm1qUkFReUdoaWc5WXZlTGp6VUYyZTRYSTVLT1ArNXdNQmNN?=
 =?utf-8?B?QktBTUZSNDF6SWxzT0oxVWRuYU5DRTltRDhBZzNHZDBhTmJPZXArZit4dSsx?=
 =?utf-8?B?YjNvRENnM1NQSDRTK24rWUNCVDBoOXB3RitnejludU5iVEdRclhUbzNFWExM?=
 =?utf-8?B?a092WUN4VnlKU1hTaTRldWt3azRQTFlkazZHeUx0YnpaR2ZNRTZJdTRhWWNa?=
 =?utf-8?B?VmRSeitmNTArRFE1RDgrREloTnBOVWsvVjhUdWtKNFdWbzQvNTdwZGpmVnha?=
 =?utf-8?B?VDJ3MkcxdUxoSVkyOStoOTNmWW1mYWdoWHhjZTZHVGdWWDBab2hMelFFa0Yw?=
 =?utf-8?Q?BR5325?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(1800799024)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2025 12:45:39.1542
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9618c8da-d0e0-465e-b9ed-08ddd354d0f4
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF00001CDF.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV2PR12MB5776

Hi Hari,

On 30/07/2025 09:45, Hari Limaye wrote:
> CAUTION: This message has originated from an External Source. Please use proper judgment and caution when opening attachments, clicking links, or responding to this email.
>
>
> From: Luca Fancellu <luca.fancellu@arm.com>
>
> Implement the MPU variant of `setup_frametable_mappings`. This function
> will be called by `setup_mm` when an implementation for MPU systems is
> added in a follow up commit.
>
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> Signed-off-by: Hari Limaye <hari.limaye@arm.com>

Reviewed-by: Ayan Kumarb Halder <ayan.kumar.halder@amd.com>

Tested-by: Ayan Kumarb Halder <ayan.kumar.halder@amd.com>

(On R82 and R52 with some additional patches)

- Ayan


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 12:51:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 12:51:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069208.1433066 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiuee-0003Nv-SG; Mon, 04 Aug 2025 12:51:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069208.1433066; Mon, 04 Aug 2025 12:51: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 1uiuee-0003No-P6; Mon, 04 Aug 2025 12:51:04 +0000
Received: by outflank-mailman (input) for mailman id 1069208;
 Mon, 04 Aug 2025 12:51:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=lO+m=2Q=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1uiuY5-0006V7-E5
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 12:44:17 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id baab2ecc-7130-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 14:44:15 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 0920DA55826;
 Mon,  4 Aug 2025 12:44:15 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 58081C4CEF0;
 Mon,  4 Aug 2025 12:44:13 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: baab2ecc-7130-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1754311454;
	bh=qnVGWPERMw1BTa2/gk85Rr9nCLsamOSAPU4HKvyJS1c=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=OtgAnXB9G/hO4kHiG6lUbx1lGdhplK8QSnQvERbDkZeJ2rBPi5BohP2fOcU1EY1H0
	 LWK7JmM6eYjvDV85Iv2oqAeUvxpoecgv6pnhGevxoOAJjwoIKIBVlnyhDtWl6iMFdx
	 RkkwEUkNj1PK4RIEa7lvhblH+3HASR9LDXUdd9ooPuLmkTQNLafsqp7vExm+lHX79L
	 xgsW9Dlqtb1H+ROfUItFyQuMNgUa0HHgvJ+5cBoMm5E0OKANto/+eCMPooaSWD2S6k
	 W4Hqu5Itep2BtJPMCEt1CECg7NNUHsl45+R6007i0eogZT7o+A+uJhsGr5xPHo73g0
	 Vn+VRBXex4Xsg==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v1 10/16] xen: swiotlb: Open code map_resource callback
Date: Mon,  4 Aug 2025 15:42:44 +0300
Message-ID: <e69e9510d9024d664133dc788f5186aac414318e.1754292567.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1754292567.git.leon@kernel.org>
References: <cover.1754292567.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

General dma_direct_map_resource() is going to be removed
in next patch, so simply open-code it in xen driver.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 drivers/xen/swiotlb-xen.c | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)

diff --git a/drivers/xen/swiotlb-xen.c b/drivers/xen/swiotlb-xen.c
index da1a7d3d377cf..dd7747a2de879 100644
--- a/drivers/xen/swiotlb-xen.c
+++ b/drivers/xen/swiotlb-xen.c
@@ -392,6 +392,25 @@ xen_swiotlb_sync_sg_for_device(struct device *dev, struct scatterlist *sgl,
 	}
 }
 
+static dma_addr_t xen_swiotlb_direct_map_resource(struct device *dev,
+						  phys_addr_t paddr,
+						  size_t size,
+						  enum dma_data_direction dir,
+						  unsigned long attrs)
+{
+	dma_addr_t dma_addr = paddr;
+
+	if (unlikely(!dma_capable(dev, dma_addr, size, false))) {
+		dev_err_once(dev,
+			     "DMA addr %pad+%zu overflow (mask %llx, bus limit %llx).\n",
+			     &dma_addr, size, *dev->dma_mask, dev->bus_dma_limit);
+		WARN_ON_ONCE(1);
+		return DMA_MAPPING_ERROR;
+	}
+
+	return dma_addr;
+}
+
 /*
  * Return whether the given device DMA address mask can be supported
  * properly.  For example, if your device can only drive the low 24-bits
@@ -426,5 +445,5 @@ const struct dma_map_ops xen_swiotlb_dma_ops = {
 	.alloc_pages_op = dma_common_alloc_pages,
 	.free_pages = dma_common_free_pages,
 	.max_mapping_size = swiotlb_max_mapping_size,
-	.map_resource = dma_direct_map_resource,
+	.map_resource = xen_swiotlb_direct_map_resource,
 };
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 04 12:51:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 12:51:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069213.1433076 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiuer-0003kg-49; Mon, 04 Aug 2025 12:51:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069213.1433076; Mon, 04 Aug 2025 12:51:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiuer-0003kZ-0f; Mon, 04 Aug 2025 12:51:17 +0000
Received: by outflank-mailman (input) for mailman id 1069213;
 Mon, 04 Aug 2025 12:51:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=lO+m=2Q=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1uiuYE-0006V7-OZ
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 12:44:26 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bfe031d2-7130-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 14:44:24 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 91E5C5C5F4C;
 Mon,  4 Aug 2025 12:44:23 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5D115C4CEE7;
 Mon,  4 Aug 2025 12:44:22 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bfe031d2-7130-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1754311463;
	bh=vHoVz+WsFzZyOWz8hKi3gaHzcDQnMM6K5YlppZB3S5Q=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=CEWxy3DQJEv8tmWrU60JGu2vy2JC6Vy5gQ7dkMLe3WhDD80GhgtaPSi2T4O+uh/qX
	 dzCLBAG639t4BdY7iOVuiz/s1KjNeAuSDkQxAswKoB8Dlog8b4SWYXyCwMpjyJfJs/
	 N598nGgARAwbbzCyY7NB50l2J7JGzBArXzyzEB0gXQ+Arna+DrOW+E2PsAsdgJv7Pa
	 Xqf4bgAaoc0j7DzDpKnhtwqRE6JormvtT5/kXa44BjUbPKvgizXbhqf9ZKiiePFStu
	 qAJ3Rs9QlPzNZq5SwsxLYx3N0dkWN+PMHiDWxME92RHKujqBYmsalcvoVTj85/jbJK
	 SRTlNuuOgXchw==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v1 14/16] block-dma: migrate to dma_map_phys instead of map_page
Date: Mon,  4 Aug 2025 15:42:48 +0300
Message-ID: <9b8454a8a24ace186a22242e218e4f4fed103fdd.1754292567.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1754292567.git.leon@kernel.org>
References: <cover.1754292567.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

After introduction of dma_map_phys(), there is no need to convert
from physical address to struct page in order to map page. So let's
use it directly.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 block/blk-mq-dma.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/block/blk-mq-dma.c b/block/blk-mq-dma.c
index ad283017caef2..37e2142be4f7d 100644
--- a/block/blk-mq-dma.c
+++ b/block/blk-mq-dma.c
@@ -87,8 +87,8 @@ static bool blk_dma_map_bus(struct blk_dma_iter *iter, struct phys_vec *vec)
 static bool blk_dma_map_direct(struct request *req, struct device *dma_dev,
 		struct blk_dma_iter *iter, struct phys_vec *vec)
 {
-	iter->addr = dma_map_page(dma_dev, phys_to_page(vec->paddr),
-			offset_in_page(vec->paddr), vec->len, rq_dma_dir(req));
+	iter->addr = dma_map_phys(dma_dev, vec->paddr, vec->len,
+			rq_dma_dir(req), 0);
 	if (dma_mapping_error(dma_dev, iter->addr)) {
 		iter->status = BLK_STS_RESOURCE;
 		return false;
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 04 12:51:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 12:51:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069217.1433086 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiuez-000491-Aq; Mon, 04 Aug 2025 12:51:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069217.1433086; Mon, 04 Aug 2025 12:51:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiuez-00048s-7A; Mon, 04 Aug 2025 12:51:25 +0000
Received: by outflank-mailman (input) for mailman id 1069217;
 Mon, 04 Aug 2025 12:51:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=lO+m=2Q=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1uiuXu-0006VD-UT
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 12:44:07 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b4ec8bc0-7130-11f0-a321-13f23c93f187;
 Mon, 04 Aug 2025 14:44:06 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 53524A55807;
 Mon,  4 Aug 2025 12:44:05 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 53748C4CEE7;
 Mon,  4 Aug 2025 12:44:03 +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>
X-Inumbo-ID: b4ec8bc0-7130-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1754311445;
	bh=nQ8mJNz8JUVPh4M/Ljj9VN6K2zPf9ZLUUVJWTFyBl+A=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=GansV4O33RE7bTiUe/oNxZ1/j8JluPHS14/eOky1Kgw46PimC/h6BaSBUDGRq12+X
	 OkJSrxybJq/HteOgaIzllB8AsL+b7hRdM8DPNeLMHm+vZ/fR/LPNhiUazudBa3ty/O
	 EJ1x4V+MsfVg7VBwvSqZsZVLaRQf9qyLSmRUN2c8y+lw9M06rQodqLnlnf5jTmNx18
	 LT/LEEm6hKNG2HPfx5SHtIWCLoi1qnrPS19m9ncban08q3hx8pnsDFQqSQLhEQmP8F
	 DMTVJ/Ihc0ToY72sMUBykGK97puqzsvoLrLzWHM0oQIzdVjJNfPXuovmP6lgZeX5pc
	 fRToWSP6g+OEA==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v1 11/16] dma-mapping: export new dma_*map_phys() interface
Date: Mon,  4 Aug 2025 15:42:45 +0300
Message-ID: <b96c639433d3b614288be4b305ecba3a9fb2c00f.1754292567.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1754292567.git.leon@kernel.org>
References: <cover.1754292567.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

Introduce new DMA mapping functions dma_map_phys() and dma_unmap_phys()
that operate directly on physical addresses instead of page+offset
parameters. This provides a more efficient interface for drivers that
already have physical addresses available.

The new functions are implemented as the primary mapping layer, with
the existing dma_map_page_attrs() and dma_unmap_page_attrs() functions
converted to simple wrappers around the phys-based implementations.

The old page-based API is preserved in mapping.c to ensure that existing
code won't be affected by changing EXPORT_SYMBOL to EXPORT_SYMBOL_GPL
variant for dma_*map_phys().

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 drivers/iommu/dma-iommu.c   | 14 --------
 include/linux/dma-direct.h  |  2 --
 include/linux/dma-mapping.h | 13 +++++++
 include/linux/iommu-dma.h   |  4 ---
 include/trace/events/dma.h  |  2 --
 kernel/dma/debug.c          | 43 -----------------------
 kernel/dma/debug.h          | 21 ------------
 kernel/dma/direct.c         | 16 ---------
 kernel/dma/mapping.c        | 68 ++++++++++++++++++++-----------------
 9 files changed, 49 insertions(+), 134 deletions(-)

diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
index 0a19ce50938b3..69f85209be7ab 100644
--- a/drivers/iommu/dma-iommu.c
+++ b/drivers/iommu/dma-iommu.c
@@ -1556,20 +1556,6 @@ void iommu_dma_unmap_sg(struct device *dev, struct scatterlist *sg, int nents,
 		__iommu_dma_unmap(dev, start, end - start);
 }
 
-dma_addr_t iommu_dma_map_resource(struct device *dev, phys_addr_t phys,
-		size_t size, enum dma_data_direction dir, unsigned long attrs)
-{
-	return __iommu_dma_map(dev, phys, size,
-			dma_info_to_prot(dir, false, attrs) | IOMMU_MMIO,
-			dma_get_mask(dev));
-}
-
-void iommu_dma_unmap_resource(struct device *dev, dma_addr_t handle,
-		size_t size, enum dma_data_direction dir, unsigned long attrs)
-{
-	__iommu_dma_unmap(dev, handle, size);
-}
-
 static void __iommu_dma_free(struct device *dev, size_t size, void *cpu_addr)
 {
 	size_t alloc_size = PAGE_ALIGN(size);
diff --git a/include/linux/dma-direct.h b/include/linux/dma-direct.h
index f3bc0bcd70980..c249912456f96 100644
--- a/include/linux/dma-direct.h
+++ b/include/linux/dma-direct.h
@@ -149,7 +149,5 @@ void dma_direct_free_pages(struct device *dev, size_t size,
 		struct page *page, dma_addr_t dma_addr,
 		enum dma_data_direction dir);
 int dma_direct_supported(struct device *dev, u64 mask);
-dma_addr_t dma_direct_map_resource(struct device *dev, phys_addr_t paddr,
-		size_t size, enum dma_data_direction dir, unsigned long attrs);
 
 #endif /* _LINUX_DMA_DIRECT_H */
diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h
index afc89835c7457..2aa43a6bed92b 100644
--- a/include/linux/dma-mapping.h
+++ b/include/linux/dma-mapping.h
@@ -132,6 +132,10 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
 		unsigned long attrs);
 void dma_unmap_page_attrs(struct device *dev, dma_addr_t addr, size_t size,
 		enum dma_data_direction dir, unsigned long attrs);
+dma_addr_t dma_map_phys(struct device *dev, phys_addr_t phys, size_t size,
+		enum dma_data_direction dir, unsigned long attrs);
+void dma_unmap_phys(struct device *dev, dma_addr_t addr, size_t size,
+		enum dma_data_direction dir, unsigned long attrs);
 unsigned int dma_map_sg_attrs(struct device *dev, struct scatterlist *sg,
 		int nents, enum dma_data_direction dir, unsigned long attrs);
 void dma_unmap_sg_attrs(struct device *dev, struct scatterlist *sg,
@@ -186,6 +190,15 @@ static inline void dma_unmap_page_attrs(struct device *dev, dma_addr_t addr,
 		size_t size, enum dma_data_direction dir, unsigned long attrs)
 {
 }
+static inline dma_addr_t dma_map_phys(struct device *dev, phys_addr_t phys,
+		size_t size, enum dma_data_direction dir, unsigned long attrs)
+{
+	return DMA_MAPPING_ERROR;
+}
+static inline void dma_unmap_phys(struct device *dev, dma_addr_t addr,
+		size_t size, enum dma_data_direction dir, unsigned long attrs)
+{
+}
 static inline unsigned int dma_map_sg_attrs(struct device *dev,
 		struct scatterlist *sg, int nents, enum dma_data_direction dir,
 		unsigned long attrs)
diff --git a/include/linux/iommu-dma.h b/include/linux/iommu-dma.h
index 485bdffed9888..a92b3ff9b9343 100644
--- a/include/linux/iommu-dma.h
+++ b/include/linux/iommu-dma.h
@@ -42,10 +42,6 @@ size_t iommu_dma_opt_mapping_size(void);
 size_t iommu_dma_max_mapping_size(struct device *dev);
 void iommu_dma_free(struct device *dev, size_t size, void *cpu_addr,
 		dma_addr_t handle, unsigned long attrs);
-dma_addr_t iommu_dma_map_resource(struct device *dev, phys_addr_t phys,
-		size_t size, enum dma_data_direction dir, unsigned long attrs);
-void iommu_dma_unmap_resource(struct device *dev, dma_addr_t handle,
-		size_t size, enum dma_data_direction dir, unsigned long attrs);
 struct sg_table *iommu_dma_alloc_noncontiguous(struct device *dev, size_t size,
 		enum dma_data_direction dir, gfp_t gfp, unsigned long attrs);
 void iommu_dma_free_noncontiguous(struct device *dev, size_t size,
diff --git a/include/trace/events/dma.h b/include/trace/events/dma.h
index 84416c7d6bfaa..5da59fd8121db 100644
--- a/include/trace/events/dma.h
+++ b/include/trace/events/dma.h
@@ -73,7 +73,6 @@ DEFINE_EVENT(dma_map, name, \
 	TP_ARGS(dev, phys_addr, dma_addr, size, dir, attrs))
 
 DEFINE_MAP_EVENT(dma_map_phys);
-DEFINE_MAP_EVENT(dma_map_resource);
 
 DECLARE_EVENT_CLASS(dma_unmap,
 	TP_PROTO(struct device *dev, dma_addr_t addr, size_t size,
@@ -111,7 +110,6 @@ DEFINE_EVENT(dma_unmap, name, \
 	TP_ARGS(dev, addr, size, dir, attrs))
 
 DEFINE_UNMAP_EVENT(dma_unmap_phys);
-DEFINE_UNMAP_EVENT(dma_unmap_resource);
 
 DECLARE_EVENT_CLASS(dma_alloc_class,
 	TP_PROTO(struct device *dev, void *virt_addr, dma_addr_t dma_addr,
diff --git a/kernel/dma/debug.c b/kernel/dma/debug.c
index da6734e3a4ce9..06e31fd216e38 100644
--- a/kernel/dma/debug.c
+++ b/kernel/dma/debug.c
@@ -38,7 +38,6 @@ enum {
 	dma_debug_single,
 	dma_debug_sg,
 	dma_debug_coherent,
-	dma_debug_resource,
 	dma_debug_phy,
 };
 
@@ -141,7 +140,6 @@ static const char *type2name[] = {
 	[dma_debug_single] = "single",
 	[dma_debug_sg] = "scatter-gather",
 	[dma_debug_coherent] = "coherent",
-	[dma_debug_resource] = "resource",
 	[dma_debug_phy] = "phy",
 };
 
@@ -1448,47 +1446,6 @@ void debug_dma_free_coherent(struct device *dev, size_t size,
 	check_unmap(&ref);
 }
 
-void debug_dma_map_resource(struct device *dev, phys_addr_t addr, size_t size,
-			    int direction, dma_addr_t dma_addr,
-			    unsigned long attrs)
-{
-	struct dma_debug_entry *entry;
-
-	if (unlikely(dma_debug_disabled()))
-		return;
-
-	entry = dma_entry_alloc();
-	if (!entry)
-		return;
-
-	entry->type		= dma_debug_resource;
-	entry->dev		= dev;
-	entry->paddr		= addr;
-	entry->size		= size;
-	entry->dev_addr		= dma_addr;
-	entry->direction	= direction;
-	entry->map_err_type	= MAP_ERR_NOT_CHECKED;
-
-	add_dma_entry(entry, attrs);
-}
-
-void debug_dma_unmap_resource(struct device *dev, dma_addr_t dma_addr,
-			      size_t size, int direction)
-{
-	struct dma_debug_entry ref = {
-		.type           = dma_debug_resource,
-		.dev            = dev,
-		.dev_addr       = dma_addr,
-		.size           = size,
-		.direction      = direction,
-	};
-
-	if (unlikely(dma_debug_disabled()))
-		return;
-
-	check_unmap(&ref);
-}
-
 void debug_dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle,
 				   size_t size, int direction)
 {
diff --git a/kernel/dma/debug.h b/kernel/dma/debug.h
index 76adb42bffd5f..424b8f912aded 100644
--- a/kernel/dma/debug.h
+++ b/kernel/dma/debug.h
@@ -30,14 +30,6 @@ extern void debug_dma_alloc_coherent(struct device *dev, size_t size,
 extern void debug_dma_free_coherent(struct device *dev, size_t size,
 				    void *virt, dma_addr_t addr);
 
-extern void debug_dma_map_resource(struct device *dev, phys_addr_t addr,
-				   size_t size, int direction,
-				   dma_addr_t dma_addr,
-				   unsigned long attrs);
-
-extern void debug_dma_unmap_resource(struct device *dev, dma_addr_t dma_addr,
-				     size_t size, int direction);
-
 extern void debug_dma_sync_single_for_cpu(struct device *dev,
 					  dma_addr_t dma_handle, size_t size,
 					  int direction);
@@ -88,19 +80,6 @@ static inline void debug_dma_free_coherent(struct device *dev, size_t size,
 {
 }
 
-static inline void debug_dma_map_resource(struct device *dev, phys_addr_t addr,
-					  size_t size, int direction,
-					  dma_addr_t dma_addr,
-					  unsigned long attrs)
-{
-}
-
-static inline void debug_dma_unmap_resource(struct device *dev,
-					    dma_addr_t dma_addr, size_t size,
-					    int direction)
-{
-}
-
 static inline void debug_dma_sync_single_for_cpu(struct device *dev,
 						 dma_addr_t dma_handle,
 						 size_t size, int direction)
diff --git a/kernel/dma/direct.c b/kernel/dma/direct.c
index fa75e30700730..1062caac47e7b 100644
--- a/kernel/dma/direct.c
+++ b/kernel/dma/direct.c
@@ -502,22 +502,6 @@ int dma_direct_map_sg(struct device *dev, struct scatterlist *sgl, int nents,
 	return ret;
 }
 
-dma_addr_t dma_direct_map_resource(struct device *dev, phys_addr_t paddr,
-		size_t size, enum dma_data_direction dir, unsigned long attrs)
-{
-	dma_addr_t dma_addr = paddr;
-
-	if (unlikely(!dma_capable(dev, dma_addr, size, false))) {
-		dev_err_once(dev,
-			     "DMA addr %pad+%zu overflow (mask %llx, bus limit %llx).\n",
-			     &dma_addr, size, *dev->dma_mask, dev->bus_dma_limit);
-		WARN_ON_ONCE(1);
-		return DMA_MAPPING_ERROR;
-	}
-
-	return dma_addr;
-}
-
 int dma_direct_get_sgtable(struct device *dev, struct sg_table *sgt,
 		void *cpu_addr, dma_addr_t dma_addr, size_t size,
 		unsigned long attrs)
diff --git a/kernel/dma/mapping.c b/kernel/dma/mapping.c
index f5f051737e556..b747794448130 100644
--- a/kernel/dma/mapping.c
+++ b/kernel/dma/mapping.c
@@ -152,12 +152,10 @@ static inline bool dma_map_direct(struct device *dev,
 	return dma_go_direct(dev, *dev->dma_mask, ops);
 }
 
-dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
-		size_t offset, size_t size, enum dma_data_direction dir,
-		unsigned long attrs)
+dma_addr_t dma_map_phys(struct device *dev, phys_addr_t phys, size_t size,
+		enum dma_data_direction dir, unsigned long attrs)
 {
 	const struct dma_map_ops *ops = get_dma_ops(dev);
-	phys_addr_t phys = page_to_phys(page) + offset;
 	bool is_mmio = attrs & DMA_ATTR_MMIO;
 	dma_addr_t addr;
 
@@ -177,6 +175,9 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
 
 		addr = ops->map_resource(dev, phys, size, dir, attrs);
 	} else {
+		struct page *page = phys_to_page(phys);
+		size_t offset = offset_in_page(phys);
+
 		/*
 		 * All platforms which implement .map_page() don't support
 		 * non-struct page backed addresses.
@@ -190,9 +191,25 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
 
 	return addr;
 }
+EXPORT_SYMBOL_GPL(dma_map_phys);
+
+dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
+		size_t offset, size_t size, enum dma_data_direction dir,
+		unsigned long attrs)
+{
+	phys_addr_t phys = page_to_phys(page) + offset;
+
+	if (unlikely(attrs & DMA_ATTR_MMIO))
+		return DMA_MAPPING_ERROR;
+
+	if (IS_ENABLED(CONFIG_DMA_API_DEBUG))
+		WARN_ON_ONCE(!pfn_valid(PHYS_PFN(phys)));
+
+	return dma_map_phys(dev, phys, size, dir, attrs);
+}
 EXPORT_SYMBOL(dma_map_page_attrs);
 
-void dma_unmap_page_attrs(struct device *dev, dma_addr_t addr, size_t size,
+void dma_unmap_phys(struct device *dev, dma_addr_t addr, size_t size,
 		enum dma_data_direction dir, unsigned long attrs)
 {
 	const struct dma_map_ops *ops = get_dma_ops(dev);
@@ -212,6 +229,16 @@ void dma_unmap_page_attrs(struct device *dev, dma_addr_t addr, size_t size,
 	trace_dma_unmap_phys(dev, addr, size, dir, attrs);
 	debug_dma_unmap_phys(dev, addr, size, dir);
 }
+EXPORT_SYMBOL_GPL(dma_unmap_phys);
+
+void dma_unmap_page_attrs(struct device *dev, dma_addr_t addr, size_t size,
+		 enum dma_data_direction dir, unsigned long attrs)
+{
+	if (unlikely(attrs & DMA_ATTR_MMIO))
+		return;
+
+	dma_unmap_phys(dev, addr, size, dir, attrs);
+}
 EXPORT_SYMBOL(dma_unmap_page_attrs);
 
 static int __dma_map_sg_attrs(struct device *dev, struct scatterlist *sg,
@@ -337,41 +364,18 @@ EXPORT_SYMBOL(dma_unmap_sg_attrs);
 dma_addr_t dma_map_resource(struct device *dev, phys_addr_t phys_addr,
 		size_t size, enum dma_data_direction dir, unsigned long attrs)
 {
-	const struct dma_map_ops *ops = get_dma_ops(dev);
-	dma_addr_t addr = DMA_MAPPING_ERROR;
-
-	BUG_ON(!valid_dma_direction(dir));
-
-	if (WARN_ON_ONCE(!dev->dma_mask))
+	if (IS_ENABLED(CONFIG_DMA_API_DEBUG) &&
+	    WARN_ON_ONCE(pfn_valid(PHYS_PFN(phys_addr))))
 		return DMA_MAPPING_ERROR;
 
-	if (dma_map_direct(dev, ops))
-		addr = dma_direct_map_resource(dev, phys_addr, size, dir, attrs);
-	else if (use_dma_iommu(dev))
-		addr = iommu_dma_map_resource(dev, phys_addr, size, dir, attrs);
-	else if (ops->map_resource)
-		addr = ops->map_resource(dev, phys_addr, size, dir, attrs);
-
-	trace_dma_map_resource(dev, phys_addr, addr, size, dir, attrs);
-	debug_dma_map_resource(dev, phys_addr, size, dir, addr, attrs);
-	return addr;
+	return dma_map_phys(dev, phys_addr, size, dir, attrs | DMA_ATTR_MMIO);
 }
 EXPORT_SYMBOL(dma_map_resource);
 
 void dma_unmap_resource(struct device *dev, dma_addr_t addr, size_t size,
 		enum dma_data_direction dir, unsigned long attrs)
 {
-	const struct dma_map_ops *ops = get_dma_ops(dev);
-
-	BUG_ON(!valid_dma_direction(dir));
-	if (dma_map_direct(dev, ops))
-		; /* nothing to do: uncached and no swiotlb */
-	else if (use_dma_iommu(dev))
-		iommu_dma_unmap_resource(dev, addr, size, dir, attrs);
-	else if (ops->unmap_resource)
-		ops->unmap_resource(dev, addr, size, dir, attrs);
-	trace_dma_unmap_resource(dev, addr, size, dir, attrs);
-	debug_dma_unmap_resource(dev, addr, size, dir);
+	dma_unmap_phys(dev, addr, size, dir, attrs | DMA_ATTR_MMIO);
 }
 EXPORT_SYMBOL(dma_unmap_resource);
 
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 04 12:51:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 12:51:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069219.1433096 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiuf2-0004SQ-P9; Mon, 04 Aug 2025 12:51:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069219.1433096; Mon, 04 Aug 2025 12:51:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiuf2-0004SH-KP; Mon, 04 Aug 2025 12:51:28 +0000
Received: by outflank-mailman (input) for mailman id 1069219;
 Mon, 04 Aug 2025 12:51:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=lO+m=2Q=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1uiuXl-0006V7-OS
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 12:43:57 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id aeec951e-7130-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 14:43:56 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 52057A55826;
 Mon,  4 Aug 2025 12:43:55 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 91EBCC4CEF0;
 Mon,  4 Aug 2025 12:43: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>
X-Inumbo-ID: aeec951e-7130-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1754311435;
	bh=j/IXC/mk0CucPDkDZSOLBQ/UHxOlDcVl+SoZNP0e+X0=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=ihw3Mu90j8p2iuP5oqZQ0qRYRAR/2eX9T50SB8VLM/IpeY+W5wW61GhW3av4wc29C
	 5rQPXs1M+s6jjy1+nIw6SWxZuIavX26CaEl38gSuxVMHKz9Ozga++BdX/JbT+AreaD
	 thi1puaSRP5nUcta2FCkabbmnkHrUDPmtBsN8oUFKF0vUAnM1ZHd3jM+br9WjySLQ8
	 NTL3Vo53fSv59+EK2VgBP0cZFK4osZ7IM6oRQqchl8AnWygksQAVNXy453HYzPo2QW
	 I3SOs53kRy1kdIAph2yeNZ5VK6beeqdsIxQeMAXinFMWTJElchVQzM+2upe9a5Me8M
	 xXtsI8WERuQcg==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v1 09/16] dma-mapping: handle MMIO flow in dma_map|unmap_page
Date: Mon,  4 Aug 2025 15:42:43 +0300
Message-ID: <152745932ce4200e4baaedcc59ef45c230e47896.1754292567.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1754292567.git.leon@kernel.org>
References: <cover.1754292567.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

Extend base DMA page API to handle MMIO flow.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 kernel/dma/mapping.c | 24 ++++++++++++++++++++----
 1 file changed, 20 insertions(+), 4 deletions(-)

diff --git a/kernel/dma/mapping.c b/kernel/dma/mapping.c
index 709405d46b2b4..f5f051737e556 100644
--- a/kernel/dma/mapping.c
+++ b/kernel/dma/mapping.c
@@ -158,6 +158,7 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
 {
 	const struct dma_map_ops *ops = get_dma_ops(dev);
 	phys_addr_t phys = page_to_phys(page) + offset;
+	bool is_mmio = attrs & DMA_ATTR_MMIO;
 	dma_addr_t addr;
 
 	BUG_ON(!valid_dma_direction(dir));
@@ -166,12 +167,23 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
 		return DMA_MAPPING_ERROR;
 
 	if (dma_map_direct(dev, ops) ||
-	    arch_dma_map_phys_direct(dev, phys + size))
+	    (!is_mmio && arch_dma_map_phys_direct(dev, phys + size)))
 		addr = dma_direct_map_phys(dev, phys, size, dir, attrs);
 	else if (use_dma_iommu(dev))
 		addr = iommu_dma_map_phys(dev, phys, size, dir, attrs);
-	else
+	else if (is_mmio) {
+		if (!ops->map_resource)
+			return DMA_MAPPING_ERROR;
+
+		addr = ops->map_resource(dev, phys, size, dir, attrs);
+	} else {
+		/*
+		 * All platforms which implement .map_page() don't support
+		 * non-struct page backed addresses.
+		 */
 		addr = ops->map_page(dev, page, offset, size, dir, attrs);
+	}
+
 	kmsan_handle_dma(phys, size, dir);
 	trace_dma_map_phys(dev, phys, addr, size, dir, attrs);
 	debug_dma_map_phys(dev, phys, size, dir, addr, attrs);
@@ -184,14 +196,18 @@ void dma_unmap_page_attrs(struct device *dev, dma_addr_t addr, size_t size,
 		enum dma_data_direction dir, unsigned long attrs)
 {
 	const struct dma_map_ops *ops = get_dma_ops(dev);
+	bool is_mmio = attrs & DMA_ATTR_MMIO;
 
 	BUG_ON(!valid_dma_direction(dir));
 	if (dma_map_direct(dev, ops) ||
-	    arch_dma_unmap_phys_direct(dev, addr + size))
+	    (!is_mmio && arch_dma_unmap_phys_direct(dev, addr + size)))
 		dma_direct_unmap_phys(dev, addr, size, dir, attrs);
 	else if (use_dma_iommu(dev))
 		iommu_dma_unmap_phys(dev, addr, size, dir, attrs);
-	else
+	else if (is_mmio) {
+		if (ops->unmap_resource)
+			ops->unmap_resource(dev, addr, size, dir, attrs);
+	} else
 		ops->unmap_page(dev, addr, size, dir, attrs);
 	trace_dma_unmap_phys(dev, addr, size, dir, attrs);
 	debug_dma_unmap_phys(dev, addr, size, dir);
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 04 12:51:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 12:51:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069221.1433100 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiuf3-0004Vc-3A; Mon, 04 Aug 2025 12:51:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069221.1433100; Mon, 04 Aug 2025 12:51: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 1uiuf2-0004VC-T9; Mon, 04 Aug 2025 12:51:28 +0000
Received: by outflank-mailman (input) for mailman id 1069221;
 Mon, 04 Aug 2025 12:51:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=lO+m=2Q=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1uiuXg-0006VD-7A
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 12:43:52 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id abad2c6e-7130-11f0-a321-13f23c93f187;
 Mon, 04 Aug 2025 14:43:50 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id DB03EA55869;
 Mon,  4 Aug 2025 12:43:49 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 77632C4CEF8;
 Mon,  4 Aug 2025 12:43:48 +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>
X-Inumbo-ID: abad2c6e-7130-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1754311429;
	bh=fV/HgrK+DFqDLLsHNIEfHPO7ePKynetLmNvxMPUxMvM=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=Aa0MuxNBbcIy902+5pajDqLKZSF1w44g4nO478lMbvVmelIgJo9/XEVtOJdLolm32
	 q7aXDo/HichuVD7Pb+Aa/K/QU+jft9TqQt6qSowqpu9o7oVK33kF7h87bAMiCEuh7J
	 GTG4UxRiY9ThlFKl1TYW6avleePvBUl4DfH/vEF1Kr9msK2hTjqPSEBQo2CPPDN9XL
	 cmvQ+Y6RsY/GLJU2K2UCJxW/9snuDBWIgUSq51tLUxcQc4tM8wxjYyQbIJau+bNm5z
	 oI+I/YZiPTOQKrn1/OVrXurN2c10xr6JyOZLXzeR/bxU8ANAxJ8GIadB+SKB840EpC
	 wLychapzdplKg==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v1 05/16] iommu/dma: rename iommu_dma_*map_page to iommu_dma_*map_phys
Date: Mon,  4 Aug 2025 15:42:39 +0300
Message-ID: <9186ccefda5ea97b56ec006900127650f9e324b5.1754292567.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1754292567.git.leon@kernel.org>
References: <cover.1754292567.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

Rename the IOMMU DMA mapping functions to better reflect their actual
calling convention. The functions iommu_dma_map_page() and
iommu_dma_unmap_page() are renamed to iommu_dma_map_phys() and
iommu_dma_unmap_phys() respectively, as they already operate on physical
addresses rather than page structures.

The calling convention changes from accepting (struct page *page,
unsigned long offset) to (phys_addr_t phys), which eliminates the need
for page-to-physical address conversion within the functions. This
renaming prepares for the broader DMA API conversion from page-based
to physical address-based mapping throughout the kernel.

All callers are updated to pass physical addresses directly, including
dma_map_page_attrs(), scatterlist mapping functions, and DMA page
allocation helpers. The change simplifies the code by removing the
page_to_phys() + offset calculation that was previously done inside
the IOMMU functions.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 drivers/iommu/dma-iommu.c | 14 ++++++--------
 include/linux/iommu-dma.h |  7 +++----
 kernel/dma/mapping.c      |  4 ++--
 kernel/dma/ops_helpers.c  |  6 +++---
 4 files changed, 14 insertions(+), 17 deletions(-)

diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
index 399838c17b705..11c5d5f8c0981 100644
--- a/drivers/iommu/dma-iommu.c
+++ b/drivers/iommu/dma-iommu.c
@@ -1190,11 +1190,9 @@ static inline size_t iova_unaligned(struct iova_domain *iovad, phys_addr_t phys,
 	return iova_offset(iovad, phys | size);
 }
 
-dma_addr_t iommu_dma_map_page(struct device *dev, struct page *page,
-	      unsigned long offset, size_t size, enum dma_data_direction dir,
-	      unsigned long attrs)
+dma_addr_t iommu_dma_map_phys(struct device *dev, phys_addr_t phys, size_t size,
+		enum dma_data_direction dir, unsigned long attrs)
 {
-	phys_addr_t phys = page_to_phys(page) + offset;
 	bool coherent = dev_is_dma_coherent(dev);
 	int prot = dma_info_to_prot(dir, coherent, attrs);
 	struct iommu_domain *domain = iommu_get_dma_domain(dev);
@@ -1222,7 +1220,7 @@ dma_addr_t iommu_dma_map_page(struct device *dev, struct page *page,
 	return iova;
 }
 
-void iommu_dma_unmap_page(struct device *dev, dma_addr_t dma_handle,
+void iommu_dma_unmap_phys(struct device *dev, dma_addr_t dma_handle,
 		size_t size, enum dma_data_direction dir, unsigned long attrs)
 {
 	struct iommu_domain *domain = iommu_get_dma_domain(dev);
@@ -1341,7 +1339,7 @@ static void iommu_dma_unmap_sg_swiotlb(struct device *dev, struct scatterlist *s
 	int i;
 
 	for_each_sg(sg, s, nents, i)
-		iommu_dma_unmap_page(dev, sg_dma_address(s),
+		iommu_dma_unmap_phys(dev, sg_dma_address(s),
 				sg_dma_len(s), dir, attrs);
 }
 
@@ -1354,8 +1352,8 @@ static int iommu_dma_map_sg_swiotlb(struct device *dev, struct scatterlist *sg,
 	sg_dma_mark_swiotlb(sg);
 
 	for_each_sg(sg, s, nents, i) {
-		sg_dma_address(s) = iommu_dma_map_page(dev, sg_page(s),
-				s->offset, s->length, dir, attrs);
+		sg_dma_address(s) = iommu_dma_map_phys(dev, sg_phys(s),
+				s->length, dir, attrs);
 		if (sg_dma_address(s) == DMA_MAPPING_ERROR)
 			goto out_unmap;
 		sg_dma_len(s) = s->length;
diff --git a/include/linux/iommu-dma.h b/include/linux/iommu-dma.h
index 508beaa44c39e..485bdffed9888 100644
--- a/include/linux/iommu-dma.h
+++ b/include/linux/iommu-dma.h
@@ -21,10 +21,9 @@ static inline bool use_dma_iommu(struct device *dev)
 }
 #endif /* CONFIG_IOMMU_DMA */
 
-dma_addr_t iommu_dma_map_page(struct device *dev, struct page *page,
-		unsigned long offset, size_t size, enum dma_data_direction dir,
-		unsigned long attrs);
-void iommu_dma_unmap_page(struct device *dev, dma_addr_t dma_handle,
+dma_addr_t iommu_dma_map_phys(struct device *dev, phys_addr_t phys, size_t size,
+		enum dma_data_direction dir, unsigned long attrs);
+void iommu_dma_unmap_phys(struct device *dev, dma_addr_t dma_handle,
 		size_t size, enum dma_data_direction dir, unsigned long attrs);
 int iommu_dma_map_sg(struct device *dev, struct scatterlist *sg, int nents,
 		enum dma_data_direction dir, unsigned long attrs);
diff --git a/kernel/dma/mapping.c b/kernel/dma/mapping.c
index fe1f0da6dc507..58482536db9bb 100644
--- a/kernel/dma/mapping.c
+++ b/kernel/dma/mapping.c
@@ -169,7 +169,7 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
 	    arch_dma_map_page_direct(dev, phys + size))
 		addr = dma_direct_map_page(dev, page, offset, size, dir, attrs);
 	else if (use_dma_iommu(dev))
-		addr = iommu_dma_map_page(dev, page, offset, size, dir, attrs);
+		addr = iommu_dma_map_phys(dev, phys, size, dir, attrs);
 	else
 		addr = ops->map_page(dev, page, offset, size, dir, attrs);
 	kmsan_handle_dma(page, offset, size, dir);
@@ -190,7 +190,7 @@ void dma_unmap_page_attrs(struct device *dev, dma_addr_t addr, size_t size,
 	    arch_dma_unmap_page_direct(dev, addr + size))
 		dma_direct_unmap_page(dev, addr, size, dir, attrs);
 	else if (use_dma_iommu(dev))
-		iommu_dma_unmap_page(dev, addr, size, dir, attrs);
+		iommu_dma_unmap_phys(dev, addr, size, dir, attrs);
 	else
 		ops->unmap_page(dev, addr, size, dir, attrs);
 	trace_dma_unmap_phys(dev, addr, size, dir, attrs);
diff --git a/kernel/dma/ops_helpers.c b/kernel/dma/ops_helpers.c
index 9afd569eadb96..6f9d604d9d406 100644
--- a/kernel/dma/ops_helpers.c
+++ b/kernel/dma/ops_helpers.c
@@ -72,8 +72,8 @@ struct page *dma_common_alloc_pages(struct device *dev, size_t size,
 		return NULL;
 
 	if (use_dma_iommu(dev))
-		*dma_handle = iommu_dma_map_page(dev, page, 0, size, dir,
-						 DMA_ATTR_SKIP_CPU_SYNC);
+		*dma_handle = iommu_dma_map_phys(dev, page_to_phys(page), size,
+						 dir, DMA_ATTR_SKIP_CPU_SYNC);
 	else
 		*dma_handle = ops->map_page(dev, page, 0, size, dir,
 					    DMA_ATTR_SKIP_CPU_SYNC);
@@ -92,7 +92,7 @@ void dma_common_free_pages(struct device *dev, size_t size, struct page *page,
 	const struct dma_map_ops *ops = get_dma_ops(dev);
 
 	if (use_dma_iommu(dev))
-		iommu_dma_unmap_page(dev, dma_handle, size, dir,
+		iommu_dma_unmap_phys(dev, dma_handle, size, dir,
 				     DMA_ATTR_SKIP_CPU_SYNC);
 	else if (ops->unmap_page)
 		ops->unmap_page(dev, dma_handle, size, dir,
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 04 12:51:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 12:51:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069224.1433115 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiuf7-00056V-AZ; Mon, 04 Aug 2025 12:51:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069224.1433115; Mon, 04 Aug 2025 12:51: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 1uiuf7-00056M-64; Mon, 04 Aug 2025 12:51:33 +0000
Received: by outflank-mailman (input) for mailman id 1069224;
 Mon, 04 Aug 2025 12:51:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=lO+m=2Q=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1uiuY1-0006V7-B6
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 12:44:13 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org
 [2604:1380:45d1:ec00::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b7812cf0-7130-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 14:44:10 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id B24ACA55823;
 Mon,  4 Aug 2025 12:44:09 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 41354C4CEE7;
 Mon,  4 Aug 2025 12:44:08 +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>
X-Inumbo-ID: b7812cf0-7130-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1754311449;
	bh=71zLK4izXOep/KpMivpRm0s6UWtEl8Sf4NUkNJ/aIsU=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=jbu+qcbqIUowFpCDDbVzU+O+oDab7hCwuZ0M/xHzIA/m0ruu3KAVq7ylLBINY55If
	 bo9Tk+feiAbmQkF4YUkUgIp0MAGQcmiQI/Mcg1NkiXwovDTkgHpeGsJGSuvqbW4nNb
	 6fzLtf+WmA+A9sS3/Z9a3whJQW3+eizW1avVzK6HdjeWo/DTN9Zhf652jC0OiVqnIx
	 daQ4NzeFJg9jNTgGGI/AIUyWbdPkZPaelF6ZKtGOEKFXm1v4YI2nWf6GfMuCj7zPG3
	 LWho0rhThFQGEnh+1T8yylTXAtdwgRYiF8Q52vne/vV6b0+WWqLNv/LW3uBlxR2xc1
	 8NgN+JwChrndA==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v1 12/16] mm/hmm: migrate to physical address-based DMA mapping API
Date: Mon,  4 Aug 2025 15:42:46 +0300
Message-ID: <6d5896c3c1eb4d481b7d49f1eb661f61353bcfdb.1754292567.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1754292567.git.leon@kernel.org>
References: <cover.1754292567.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

Convert HMM DMA operations from the legacy page-based API to the new
physical address-based dma_map_phys() and dma_unmap_phys() functions.
This demonstrates the preferred approach for new code that should use
physical addresses directly rather than page+offset parameters.

The change replaces dma_map_page() and dma_unmap_page() calls with
dma_map_phys() and dma_unmap_phys() respectively, using the physical
address that was already available in the code. This eliminates the
redundant page-to-physical address conversion and aligns with the
DMA subsystem's move toward physical address-centric interfaces.

This serves as an example of how new code should be written to leverage
the more efficient physical address API, which provides cleaner interfaces
for drivers that already have access to physical addresses.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 mm/hmm.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/mm/hmm.c b/mm/hmm.c
index d545e24949949..015ab243f0813 100644
--- a/mm/hmm.c
+++ b/mm/hmm.c
@@ -775,8 +775,8 @@ dma_addr_t hmm_dma_map_pfn(struct device *dev, struct hmm_dma_map *map,
 		if (WARN_ON_ONCE(dma_need_unmap(dev) && !dma_addrs))
 			goto error;
 
-		dma_addr = dma_map_page(dev, page, 0, map->dma_entry_size,
-					DMA_BIDIRECTIONAL);
+		dma_addr = dma_map_phys(dev, paddr, map->dma_entry_size,
+					DMA_BIDIRECTIONAL, 0);
 		if (dma_mapping_error(dev, dma_addr))
 			goto error;
 
@@ -819,8 +819,8 @@ bool hmm_dma_unmap_pfn(struct device *dev, struct hmm_dma_map *map, size_t idx)
 		dma_iova_unlink(dev, state, idx * map->dma_entry_size,
 				map->dma_entry_size, DMA_BIDIRECTIONAL, attrs);
 	} else if (dma_need_unmap(dev))
-		dma_unmap_page(dev, dma_addrs[idx], map->dma_entry_size,
-			       DMA_BIDIRECTIONAL);
+		dma_unmap_phys(dev, dma_addrs[idx], map->dma_entry_size,
+			       DMA_BIDIRECTIONAL, 0);
 
 	pfns[idx] &=
 		~(HMM_PFN_DMA_MAPPED | HMM_PFN_P2PDMA | HMM_PFN_P2PDMA_BUS);
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 04 12:51:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 12:51:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069246.1433126 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiufN-00069a-KQ; Mon, 04 Aug 2025 12:51:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069246.1433126; Mon, 04 Aug 2025 12:51: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 1uiufN-00068j-Gl; Mon, 04 Aug 2025 12:51:49 +0000
Received: by outflank-mailman (input) for mailman id 1069246;
 Mon, 04 Aug 2025 12:51:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=lO+m=2Q=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1uiuY9-0006VD-Og
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 12:44:21 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org
 [2604:1380:4641:c500::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bd6de160-7130-11f0-a321-13f23c93f187;
 Mon, 04 Aug 2025 14:44:20 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 1404A5C5F2E;
 Mon,  4 Aug 2025 12:44:19 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id D4569C4CEE7;
 Mon,  4 Aug 2025 12:44: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>
X-Inumbo-ID: bd6de160-7130-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1754311458;
	bh=dqwhbGWVl/oipogVPAPlJyJScmypxjmriuJlNMDqMFM=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=twziXknBPqQkaMb4B7FpNHJ9HEUx7/M836/B/HOkWAaI0xU18AOGgranE1UPO3Z2A
	 qByqLoklhRYu6bnu+x5ETVJIc+P+0Ju1mUTlWesgsxm9Uw2nnAUHgWFFcvipLZWsPr
	 /X/Xgc0MrjwXWJE2eE8R2nPmVwtK2NoWOETrJzuVA7cF2pqqQw7TPbh3FX3McEN3on
	 SLv84u5z+pYu1j0JRSH5twhBbzvn9nXehFR206rnivCVd5lTNcN4IpS/pX3K4gEYJR
	 R30yvtOo8vlSCBPCeQNV8Tbj18sYkV187LjgCJFMSIphAwqv5UYBAvrh/Sqr87dLeL
	 XA2ufQWKM0AXg==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v1 13/16] mm/hmm: properly take MMIO path
Date: Mon,  4 Aug 2025 15:42:47 +0300
Message-ID: <79cf36301cc05d6dd1c88e9c3812ac5c3f57e32b.1754292567.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1754292567.git.leon@kernel.org>
References: <cover.1754292567.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

In case peer-to-peer transaction traverses through host bridge,
the IOMMU needs to have IOMMU_MMIO flag, together with skip of
CPU sync.

The latter was handled by provided DMA_ATTR_SKIP_CPU_SYNC flag,
but IOMMU flag was missed, due to assumption that such memory
can be treated as regular one.

Reuse newly introduced DMA attribute to properly take MMIO path.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 mm/hmm.c | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/mm/hmm.c b/mm/hmm.c
index 015ab243f0813..6556c0e074ba8 100644
--- a/mm/hmm.c
+++ b/mm/hmm.c
@@ -746,7 +746,7 @@ dma_addr_t hmm_dma_map_pfn(struct device *dev, struct hmm_dma_map *map,
 	case PCI_P2PDMA_MAP_NONE:
 		break;
 	case PCI_P2PDMA_MAP_THRU_HOST_BRIDGE:
-		attrs |= DMA_ATTR_SKIP_CPU_SYNC;
+		attrs |= DMA_ATTR_MMIO;
 		pfns[idx] |= HMM_PFN_P2PDMA;
 		break;
 	case PCI_P2PDMA_MAP_BUS_ADDR:
@@ -776,7 +776,7 @@ dma_addr_t hmm_dma_map_pfn(struct device *dev, struct hmm_dma_map *map,
 			goto error;
 
 		dma_addr = dma_map_phys(dev, paddr, map->dma_entry_size,
-					DMA_BIDIRECTIONAL, 0);
+					DMA_BIDIRECTIONAL, attrs);
 		if (dma_mapping_error(dev, dma_addr))
 			goto error;
 
@@ -811,16 +811,17 @@ bool hmm_dma_unmap_pfn(struct device *dev, struct hmm_dma_map *map, size_t idx)
 	if ((pfns[idx] & valid_dma) != valid_dma)
 		return false;
 
+	if (pfns[idx] & HMM_PFN_P2PDMA)
+		attrs |= DMA_ATTR_MMIO;
+
 	if (pfns[idx] & HMM_PFN_P2PDMA_BUS)
 		; /* no need to unmap bus address P2P mappings */
-	else if (dma_use_iova(state)) {
-		if (pfns[idx] & HMM_PFN_P2PDMA)
-			attrs |= DMA_ATTR_SKIP_CPU_SYNC;
+	else if (dma_use_iova(state))
 		dma_iova_unlink(dev, state, idx * map->dma_entry_size,
 				map->dma_entry_size, DMA_BIDIRECTIONAL, attrs);
-	} else if (dma_need_unmap(dev))
+	else if (dma_need_unmap(dev))
 		dma_unmap_phys(dev, dma_addrs[idx], map->dma_entry_size,
-			       DMA_BIDIRECTIONAL, 0);
+			       DMA_BIDIRECTIONAL, attrs);
 
 	pfns[idx] &=
 		~(HMM_PFN_DMA_MAPPED | HMM_PFN_P2PDMA | HMM_PFN_P2PDMA_BUS);
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 04 12:51:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 12:51:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069256.1433136 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiufQ-0006Zj-TH; Mon, 04 Aug 2025 12:51:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069256.1433136; Mon, 04 Aug 2025 12: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 1uiufQ-0006ZZ-PR; Mon, 04 Aug 2025 12:51:52 +0000
Received: by outflank-mailman (input) for mailman id 1069256;
 Mon, 04 Aug 2025 12:51:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=lO+m=2Q=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1uiuXt-0006V7-PH
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 12:44:05 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b19df0c1-7130-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 14:44:01 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id BB55A43C23;
 Mon,  4 Aug 2025 12:43:59 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 82117C4CEF8;
 Mon,  4 Aug 2025 12:43:58 +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>
X-Inumbo-ID: b19df0c1-7130-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1754311439;
	bh=KD5XpS99kfAtzNwNr0G2cKeknKa6uIV3HkFwkgt52Og=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=REzkJIVPP9gFnq006IpzWA33deEBq3gq/L07hYxS4b9Co9lY/j51ovFGlZKxGO1e5
	 4+8sYBN0i9v9K0mgKzmZ/QHCuA9Q46V87wtCzHKFC0ANzBr9PuysZxQhOrNozb4Qyk
	 VihVy8omfI8O2IRdV4Tyl6d0KjHEM3acEvXoNbj8+O8OXRRPHQMKadb9piVN0E1Wap
	 K/UpRFgSWAcvtvvkCiTXu1nv84wDzdAsa9r8/C/wTH34YjDjAVJPlKm4jsTlVi+zRC
	 U+eUEQKpw0KzkD87pD1mxwxAbEEaEpX1KJV4/DAHcK3vw7alfBmL84qIH19KHyRx/5
	 kND7FSCrGya4g==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v1 08/16] kmsan: convert kmsan_handle_dma to use physical addresses
Date: Mon,  4 Aug 2025 15:42:42 +0300
Message-ID: <5b40377b621e49ff4107fa10646c828ccc94e53e.1754292567.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1754292567.git.leon@kernel.org>
References: <cover.1754292567.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

Convert the KMSAN DMA handling function from page-based to physical
address-based interface.

The refactoring renames kmsan_handle_dma() parameters from accepting
(struct page *page, size_t offset, size_t size) to (phys_addr_t phys,
size_t size). A PFN_VALID check is added to prevent KMSAN operations
on non-page memory, preventing from non struct page backed address,

As part of this change, support for highmem addresses is implemented
using kmap_local_page() to handle both lowmem and highmem regions
properly. All callers throughout the codebase are updated to use the
new phys_addr_t based interface.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 drivers/virtio/virtio_ring.c |  4 ++--
 include/linux/kmsan.h        | 12 +++++++-----
 kernel/dma/mapping.c         |  2 +-
 mm/kmsan/hooks.c             | 36 +++++++++++++++++++++++++++++-------
 tools/virtio/linux/kmsan.h   |  2 +-
 5 files changed, 40 insertions(+), 16 deletions(-)

diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c
index f5062061c4084..c147145a65930 100644
--- a/drivers/virtio/virtio_ring.c
+++ b/drivers/virtio/virtio_ring.c
@@ -378,7 +378,7 @@ static int vring_map_one_sg(const struct vring_virtqueue *vq, struct scatterlist
 		 * is initialized by the hardware. Explicitly check/unpoison it
 		 * depending on the direction.
 		 */
-		kmsan_handle_dma(sg_page(sg), sg->offset, sg->length, direction);
+		kmsan_handle_dma(sg_phys(sg), sg->length, direction);
 		*addr = (dma_addr_t)sg_phys(sg);
 		return 0;
 	}
@@ -3157,7 +3157,7 @@ dma_addr_t virtqueue_dma_map_single_attrs(struct virtqueue *_vq, void *ptr,
 	struct vring_virtqueue *vq = to_vvq(_vq);
 
 	if (!vq->use_dma_api) {
-		kmsan_handle_dma(virt_to_page(ptr), offset_in_page(ptr), size, dir);
+		kmsan_handle_dma(virt_to_phys(ptr), size, dir);
 		return (dma_addr_t)virt_to_phys(ptr);
 	}
 
diff --git a/include/linux/kmsan.h b/include/linux/kmsan.h
index 2b1432cc16d59..6f27b9824ef77 100644
--- a/include/linux/kmsan.h
+++ b/include/linux/kmsan.h
@@ -182,8 +182,7 @@ void kmsan_iounmap_page_range(unsigned long start, unsigned long end);
 
 /**
  * kmsan_handle_dma() - Handle a DMA data transfer.
- * @page:   first page of the buffer.
- * @offset: offset of the buffer within the first page.
+ * @phys:   physical address of the buffer.
  * @size:   buffer size.
  * @dir:    one of possible dma_data_direction values.
  *
@@ -191,8 +190,11 @@ void kmsan_iounmap_page_range(unsigned long start, unsigned long end);
  * * checks the buffer, if it is copied to device;
  * * initializes the buffer, if it is copied from device;
  * * does both, if this is a DMA_BIDIRECTIONAL transfer.
+ *
+ * The function handles page lookup internally and supports both lowmem
+ * and highmem addresses.
  */
-void kmsan_handle_dma(struct page *page, size_t offset, size_t size,
+void kmsan_handle_dma(phys_addr_t phys, size_t size,
 		      enum dma_data_direction dir);
 
 /**
@@ -372,8 +374,8 @@ static inline void kmsan_iounmap_page_range(unsigned long start,
 {
 }
 
-static inline void kmsan_handle_dma(struct page *page, size_t offset,
-				    size_t size, enum dma_data_direction dir)
+static inline void kmsan_handle_dma(phys_addr_t phys, size_t size,
+				    enum dma_data_direction dir)
 {
 }
 
diff --git a/kernel/dma/mapping.c b/kernel/dma/mapping.c
index 80481a873340a..709405d46b2b4 100644
--- a/kernel/dma/mapping.c
+++ b/kernel/dma/mapping.c
@@ -172,7 +172,7 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
 		addr = iommu_dma_map_phys(dev, phys, size, dir, attrs);
 	else
 		addr = ops->map_page(dev, page, offset, size, dir, attrs);
-	kmsan_handle_dma(page, offset, size, dir);
+	kmsan_handle_dma(phys, size, dir);
 	trace_dma_map_phys(dev, phys, addr, size, dir, attrs);
 	debug_dma_map_phys(dev, phys, size, dir, addr, attrs);
 
diff --git a/mm/kmsan/hooks.c b/mm/kmsan/hooks.c
index 97de3d6194f07..eab7912a3bf05 100644
--- a/mm/kmsan/hooks.c
+++ b/mm/kmsan/hooks.c
@@ -336,25 +336,48 @@ static void kmsan_handle_dma_page(const void *addr, size_t size,
 }
 
 /* Helper function to handle DMA data transfers. */
-void kmsan_handle_dma(struct page *page, size_t offset, size_t size,
+void kmsan_handle_dma(phys_addr_t phys, size_t size,
 		      enum dma_data_direction dir)
 {
 	u64 page_offset, to_go, addr;
+	struct page *page;
+	void *kaddr;
 
-	if (PageHighMem(page))
+	if (!pfn_valid(PHYS_PFN(phys)))
 		return;
-	addr = (u64)page_address(page) + offset;
+
+	page = phys_to_page(phys);
+	page_offset = offset_in_page(phys);
+
 	/*
 	 * The kernel may occasionally give us adjacent DMA pages not belonging
 	 * to the same allocation. Process them separately to avoid triggering
 	 * internal KMSAN checks.
 	 */
 	while (size > 0) {
-		page_offset = offset_in_page(addr);
 		to_go = min(PAGE_SIZE - page_offset, (u64)size);
+
+		if (PageHighMem(page))
+			/* Handle highmem pages using kmap */
+			kaddr = kmap_local_page(page);
+		else
+			/* Lowmem pages can be accessed directly */
+			kaddr = page_address(page);
+
+		addr = (u64)kaddr + page_offset;
 		kmsan_handle_dma_page((void *)addr, to_go, dir);
-		addr += to_go;
+
+		if (PageHighMem(page))
+			kunmap_local(page);
+
+		phys += to_go;
 		size -= to_go;
+
+		/* Move to next page if needed */
+		if (size > 0) {
+			page = phys_to_page(phys);
+			page_offset = offset_in_page(phys);
+		}
 	}
 }
 EXPORT_SYMBOL_GPL(kmsan_handle_dma);
@@ -366,8 +389,7 @@ void kmsan_handle_dma_sg(struct scatterlist *sg, int nents,
 	int i;
 
 	for_each_sg(sg, item, nents, i)
-		kmsan_handle_dma(sg_page(item), item->offset, item->length,
-				 dir);
+		kmsan_handle_dma(sg_phys(item), item->length, dir);
 }
 
 /* Functions from kmsan-checks.h follow. */
diff --git a/tools/virtio/linux/kmsan.h b/tools/virtio/linux/kmsan.h
index 272b5aa285d5a..6cd2e3efd03dc 100644
--- a/tools/virtio/linux/kmsan.h
+++ b/tools/virtio/linux/kmsan.h
@@ -4,7 +4,7 @@
 
 #include <linux/gfp.h>
 
-inline void kmsan_handle_dma(struct page *page, size_t offset, size_t size,
+inline void kmsan_handle_dma(phys_addr_t phys, size_t size,
 			     enum dma_data_direction dir)
 {
 }
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 04 12:52:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 12:52:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069273.1433145 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiugG-00080F-AU; Mon, 04 Aug 2025 12:52:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069273.1433145; Mon, 04 Aug 2025 12:52: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 1uiugG-000808-7V; Mon, 04 Aug 2025 12:52:44 +0000
Received: by outflank-mailman (input) for mailman id 1069273;
 Mon, 04 Aug 2025 12:52:42 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=lO+m=2Q=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1uiuYM-0006VD-En
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 12:44:34 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c5682827-7130-11f0-a321-13f23c93f187;
 Mon, 04 Aug 2025 14:44:33 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 10CE7A5586C;
 Mon,  4 Aug 2025 12:44:33 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id DBBA4C4CEE7;
 Mon,  4 Aug 2025 12:44:31 +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>
X-Inumbo-ID: c5682827-7130-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1754311472;
	bh=Aje2MY5jLtJJ+XC6L21HodqK1MreNzlcX3KM+Qptt24=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=D+O9BFW9G3EUN02UNr+9W1wRCdRDfRkf0x3nKVoSKF3qgFSYQkjSJdutDyO+/GaXc
	 LGLcj33SDyJqVULCEM37MXdFVYsGALxSAZY0nHbzSQZTnFerxjcv8C6TboBXWH4naX
	 6ZVZnkDzbfO3eKo22J8zcBZLzmo4T9kxSkmi7f07Z+UGaRwrQIMopajJOg4vYfLx6+
	 jnSQUAfHfWhVCjNaPp3bPAtogKMoVHj2Hvn4dfigZthAzfffhOXJp1Yoe3nvVjUnC/
	 ShnNJR9ewOfC+QlOtWiwtM5Xx2GVbLWurX258r+SmOzIeAJTmd4uYs98RHNcdlwqdj
	 Y4q80UzvzmD6g==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v1 15/16] block-dma: properly take MMIO path
Date: Mon,  4 Aug 2025 15:42:49 +0300
Message-ID: <d9b092cde0f42bc6a8a1cb36ffee3478c46a3599.1754292567.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1754292567.git.leon@kernel.org>
References: <cover.1754292567.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

Make sure that CPU is not synced and IOMMU is configured to take
MMIO path by providing newly introduced DMA_ATTR_MMIO attribute.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 block/blk-mq-dma.c         | 13 +++++++++++--
 include/linux/blk-mq-dma.h |  6 +++++-
 include/linux/blk_types.h  |  2 ++
 3 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/block/blk-mq-dma.c b/block/blk-mq-dma.c
index 37e2142be4f7d..d415088ed9fd2 100644
--- a/block/blk-mq-dma.c
+++ b/block/blk-mq-dma.c
@@ -87,8 +87,13 @@ static bool blk_dma_map_bus(struct blk_dma_iter *iter, struct phys_vec *vec)
 static bool blk_dma_map_direct(struct request *req, struct device *dma_dev,
 		struct blk_dma_iter *iter, struct phys_vec *vec)
 {
+	unsigned int attrs = 0;
+
+	if (req->cmd_flags & REQ_MMIO)
+		attrs = DMA_ATTR_MMIO;
+
 	iter->addr = dma_map_phys(dma_dev, vec->paddr, vec->len,
-			rq_dma_dir(req), 0);
+			rq_dma_dir(req), attrs);
 	if (dma_mapping_error(dma_dev, iter->addr)) {
 		iter->status = BLK_STS_RESOURCE;
 		return false;
@@ -103,14 +108,17 @@ static bool blk_rq_dma_map_iova(struct request *req, struct device *dma_dev,
 {
 	enum dma_data_direction dir = rq_dma_dir(req);
 	unsigned int mapped = 0;
+	unsigned int attrs = 0;
 	int error;
 
 	iter->addr = state->addr;
 	iter->len = dma_iova_size(state);
+	if (req->cmd_flags & REQ_MMIO)
+		attrs = DMA_ATTR_MMIO;
 
 	do {
 		error = dma_iova_link(dma_dev, state, vec->paddr, mapped,
-				vec->len, dir, 0);
+				vec->len, dir, attrs);
 		if (error)
 			break;
 		mapped += vec->len;
@@ -176,6 +184,7 @@ bool blk_rq_dma_map_iter_start(struct request *req, struct device *dma_dev,
 			 * same as non-P2P transfers below and during unmap.
 			 */
 			req->cmd_flags &= ~REQ_P2PDMA;
+			req->cmd_flags |= REQ_MMIO;
 			break;
 		default:
 			iter->status = BLK_STS_INVAL;
diff --git a/include/linux/blk-mq-dma.h b/include/linux/blk-mq-dma.h
index c26a01aeae006..6c55f5e585116 100644
--- a/include/linux/blk-mq-dma.h
+++ b/include/linux/blk-mq-dma.h
@@ -48,12 +48,16 @@ static inline bool blk_rq_dma_map_coalesce(struct dma_iova_state *state)
 static inline bool blk_rq_dma_unmap(struct request *req, struct device *dma_dev,
 		struct dma_iova_state *state, size_t mapped_len)
 {
+	unsigned int attrs = 0;
+
 	if (req->cmd_flags & REQ_P2PDMA)
 		return true;
 
 	if (dma_use_iova(state)) {
+		if (req->cmd_flags & REQ_MMIO)
+			attrs = DMA_ATTR_MMIO;
 		dma_iova_destroy(dma_dev, state, mapped_len, rq_dma_dir(req),
-				 0);
+				 attrs);
 		return true;
 	}
 
diff --git a/include/linux/blk_types.h b/include/linux/blk_types.h
index 09b99d52fd365..283058bcb5b14 100644
--- a/include/linux/blk_types.h
+++ b/include/linux/blk_types.h
@@ -387,6 +387,7 @@ enum req_flag_bits {
 	__REQ_FS_PRIVATE,	/* for file system (submitter) use */
 	__REQ_ATOMIC,		/* for atomic write operations */
 	__REQ_P2PDMA,		/* contains P2P DMA pages */
+	__REQ_MMIO,		/* contains MMIO memory */
 	/*
 	 * Command specific flags, keep last:
 	 */
@@ -420,6 +421,7 @@ enum req_flag_bits {
 #define REQ_FS_PRIVATE	(__force blk_opf_t)(1ULL << __REQ_FS_PRIVATE)
 #define REQ_ATOMIC	(__force blk_opf_t)(1ULL << __REQ_ATOMIC)
 #define REQ_P2PDMA	(__force blk_opf_t)(1ULL << __REQ_P2PDMA)
+#define REQ_MMIO	(__force blk_opf_t)(1ULL << __REQ_MMIO)
 
 #define REQ_NOUNMAP	(__force blk_opf_t)(1ULL << __REQ_NOUNMAP)
 
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 04 12:53:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 12:53:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069277.1433156 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiugW-0008U7-JI; Mon, 04 Aug 2025 12:53:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069277.1433156; Mon, 04 Aug 2025 12:53:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiugW-0008Ty-FE; Mon, 04 Aug 2025 12:53:00 +0000
Received: by outflank-mailman (input) for mailman id 1069277;
 Mon, 04 Aug 2025 12:52:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=lO+m=2Q=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1uiuYH-0006VD-Vv
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 12:44:29 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c2bd95cf-7130-11f0-a321-13f23c93f187;
 Mon, 04 Aug 2025 14:44:29 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 91E81A55869;
 Mon,  4 Aug 2025 12:44:28 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 16A0CC4CEE7;
 Mon,  4 Aug 2025 12:44:27 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c2bd95cf-7130-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1754311468;
	bh=6qGcHzBt0dZoqM7CuRvm64zWhofh7owUAL+fgH12bgM=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=QrNeSbr2ETjZG5USk2ip6Q5L+o73xniNPTNqJfZmeQ0KuyCuSNG0LJiusWyclzjKr
	 cFFoKUr822PG8QqKCLTd5BeFqtuT5Wy83EgwLas9lgxaOVGp8D6uZ1DZl2tq1dbKx/
	 L+omTL0ofNOzbXoE9fyZGuqE2CSvotiwsuOKLhXV08+L7k2MaQEDPsb6OddrmQRn4z
	 PSjtn3F5+SFZ4HUEL0cLcskl4nbzTgDtlLNFq79lO3atdeVNqKCn/0JzVgj9R/u+Y+
	 m0zCkfJHRbZiqlPJoau9al8Hd9lK5yTnnQg10fAI/hDh0sKrsDMMIbG+18uzswU+JQ
	 8ketKVA4tFFWQ==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v1 16/16] nvme-pci: unmap MMIO pages with appropriate interface
Date: Mon,  4 Aug 2025 15:42:50 +0300
Message-ID: <5b0131f82a3d14acaa85f0d1dd608d2913af84e2.1754292567.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1754292567.git.leon@kernel.org>
References: <cover.1754292567.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

Block layer maps MMIO memory through dma_map_phys() interface
with help of DMA_ATTR_MMIO attribute. There is a need to unmap
that memory with the appropriate unmap function.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 drivers/nvme/host/pci.c | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c
index 071efec25346f..0b624247948c5 100644
--- a/drivers/nvme/host/pci.c
+++ b/drivers/nvme/host/pci.c
@@ -682,11 +682,15 @@ static void nvme_free_prps(struct request *req)
 {
 	struct nvme_iod *iod = blk_mq_rq_to_pdu(req);
 	struct nvme_queue *nvmeq = req->mq_hctx->driver_data;
+	unsigned int attrs = 0;
 	unsigned int i;
 
+	if (req->cmd_flags & REQ_MMIO)
+		attrs = DMA_ATTR_MMIO;
+
 	for (i = 0; i < iod->nr_dma_vecs; i++)
-		dma_unmap_page(nvmeq->dev->dev, iod->dma_vecs[i].addr,
-				iod->dma_vecs[i].len, rq_dma_dir(req));
+		dma_unmap_phys(nvmeq->dev->dev, iod->dma_vecs[i].addr,
+				iod->dma_vecs[i].len, rq_dma_dir(req), attrs);
 	mempool_free(iod->dma_vecs, nvmeq->dev->dmavec_mempool);
 }
 
@@ -699,15 +703,19 @@ static void nvme_free_sgls(struct request *req)
 	unsigned int sqe_dma_len = le32_to_cpu(iod->cmd.common.dptr.sgl.length);
 	struct nvme_sgl_desc *sg_list = iod->descriptors[0];
 	enum dma_data_direction dir = rq_dma_dir(req);
+	unsigned int attrs = 0;
+
+	if (req->cmd_flags & REQ_MMIO)
+		attrs = DMA_ATTR_MMIO;
 
 	if (iod->nr_descriptors) {
 		unsigned int nr_entries = sqe_dma_len / sizeof(*sg_list), i;
 
 		for (i = 0; i < nr_entries; i++)
-			dma_unmap_page(dma_dev, le64_to_cpu(sg_list[i].addr),
-				le32_to_cpu(sg_list[i].length), dir);
+			dma_unmap_phys(dma_dev, le64_to_cpu(sg_list[i].addr),
+				le32_to_cpu(sg_list[i].length), dir, attrs);
 	} else {
-		dma_unmap_page(dma_dev, sqe_dma_addr, sqe_dma_len, dir);
+		dma_unmap_phys(dma_dev, sqe_dma_addr, sqe_dma_len, dir, attrs);
 	}
 }
 
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 04 12:56:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 12:56:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069289.1433165 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiuk7-0000qY-2d; Mon, 04 Aug 2025 12:56:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069289.1433165; Mon, 04 Aug 2025 12:56:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiuk7-0000qR-00; Mon, 04 Aug 2025 12:56:43 +0000
Received: by outflank-mailman (input) for mailman id 1069289;
 Mon, 04 Aug 2025 12:56:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=dY6Z=2Q=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1uiuk5-0000qJ-In
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 12:56:41 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on2062d.outbound.protection.outlook.com
 [2a01:111:f403:200a::62d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 753322b8-7132-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 14:56:39 +0200 (CEST)
Received: from BN0PR04CA0112.namprd04.prod.outlook.com (2603:10b6:408:ec::27)
 by SA1PR12MB9515.namprd12.prod.outlook.com (2603:10b6:806:45a::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.20; Mon, 4 Aug
 2025 12:56:35 +0000
Received: from BL6PEPF0001AB74.namprd02.prod.outlook.com
 (2603:10b6:408:ec:cafe::2e) by BN0PR04CA0112.outlook.office365.com
 (2603:10b6:408:ec::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.21 via Frontend Transport; Mon,
 4 Aug 2025 12:56:35 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL6PEPF0001AB74.mail.protection.outlook.com (10.167.242.167) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Mon, 4 Aug 2025 12:56:34 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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 Aug
 2025 07:56:32 -0500
Received: from [10.71.195.192] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Mon, 4 Aug 2025 07:56:31 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 753322b8-7132-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AdV0SucYqnuHxMyPNFaRkJGJRV8PjY7vJOMbrbVjvVcAhSAzUiNrcLhk8cBtWp3UCotVZXSzCt3CX/uiyRYfG6TYCyQDRwJyl+wpE57fBvZWtJ+Om5bWyd2xVFWKrJP2mljgDmm7grm3dgULSZgzFdr2YzbHKCtZrvUFcszfYdLVm6Mk25uv5sz3fNHeOdFOs+Q9sWbSSx9nvMAISdVplEzGJtZRQuiGRdtMcpxhbBYCVjNepckl1/+aAo2sOo+tU7WvMcfQjca3rl7vXeL6sSyyEN9yAHQhekt3SOu8RCpGLXZUKzwuCpsbeVxjrVZ2kKcHSCgAOAwOOkhC9efppQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=q8jbsFFrcx6WeJJtmTA/I51ObKrXb0k2J4e1Bak5mr8=;
 b=oySNV9AET57vdtz2kx20esMHW98j9Wed3QmB2FLm1dtl+E2bE2WiziCPjcqFxKEzSs0AWcouiSJruJ8OW9t32lbBz7kWM6G1wqWzmFkZZrj9ot8GlzUd3f3snxIXpNRQ/qDJmXA1DjQVhgzRXkT1YnPGz0Wl0gsgoE4MOEN4tp3go54v1FokOUn6kK1jNcsWMlXsqAG3NQjknsm2G+r0Z1VisgyEEicf88p6nD3/2/iexvMg2bqjaU9VDCWX7C6C7T4q0ipzcysyO1Jvej8VtL8Px8/gp2NpqJhKmNS7Cx5/vk0ERt64U+e3Pil3DMoEFX1q4ga/3aW0Xj2/FF1iPw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=temperror (sender ip
 is 165.204.84.17) smtp.rcpttodomain=arm.com smtp.mailfrom=amd.com;
 dmarc=temperror 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=q8jbsFFrcx6WeJJtmTA/I51ObKrXb0k2J4e1Bak5mr8=;
 b=SxC7YWo8OkRsi6iN5wHXVkA1+As5VIUzgE9sl9/UG8ndpn0bhbYj3qXvSFcsqsBuIfKGTgVF2oj5L/+hZXEUkE/H3aOVv0H12GzG15QEVvprEyaau9SRPQfDTvd8u0Hwi1v+0nh8JkwvN9tS6oCo6JCvH7UJOVe/LPpUU0byOWo=
X-MS-Exchange-Authentication-Results: spf=temperror (sender IP is
 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=temperror action=none header.from=amd.com;
Received-SPF: TempError (protection.outlook.com: error in processing during
 lookup of amd.com: DNS Timeout)
Message-ID: <fc9e4345-3dd5-47c5-8052-c95ff67a49ca@amd.com>
Date: Mon, 4 Aug 2025 13:56:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/5] arm/mpu: Implement transient mapping
Content-Language: en-GB
To: Hari Limaye <hari.limaye@arm.com>, <xen-devel@lists.xenproject.org>
CC: <luca.fancellu@arm.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
References: <cover.1753864612.git.hari.limaye@arm.com>
 <d6bd97094991a08fb5ffb48f2642b510b55693e8.1753864612.git.hari.limaye@arm.com>
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <d6bd97094991a08fb5ffb48f2642b510b55693e8.1753864612.git.hari.limaye@arm.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB04.amd.com: ayankuma@amd.com does not designate
 permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB74:EE_|SA1PR12MB9515:EE_
X-MS-Office365-Filtering-Correlation-Id: ada36b5d-2fae-4ef3-51b3-08ddd356574d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?NFJvc1VIblM0Mnl3TEg2QmQ4M2JNcXhXaXFaWktGZ1Z4Vll6Ylc1dEZraXhi?=
 =?utf-8?B?WEdISURDMUdCQ3JmbEZhdnk5Ni80L1k0dzVxc3JYZ3FKVll5ZmR1WjNSK2JX?=
 =?utf-8?B?SnN6S1NYRTYzY1paL2V2RDE3ekR2SjFONkE1bFZoa0RTeTNkSS9iTDA3TDlt?=
 =?utf-8?B?b1EyZUlHZnRCZGxOYW5BbTkxdUlUZ3RJZFE0SnhhVUVJVGdRTW50RzM3UTZn?=
 =?utf-8?B?S0gyaVdadVZ1cGhYeWRuQlNSdXhhWHNzd2h4ZHV6V0ZBMGtwNzJKN1hHUWVy?=
 =?utf-8?B?UjlUdzFSb1lEa0xUbHpReitDSGI3M1RzRlBkK3FQSmtVMklTVzhReXREbkNQ?=
 =?utf-8?B?OFA5TE5rSW44R1c1eWJEdHlzUzBGVyttTWVKMU1PYzJZL2NYR1JwZW1KampC?=
 =?utf-8?B?ZmpCRlJhOTd5d2JuK3E5Vlg5UHlDdE5MRFU1aHh0NXo0L0I2RUlUSWZwL0Iw?=
 =?utf-8?B?dVg5ckxvWHd4SWhvRDFkUHpNYzd4RlRsM3lrQUxOc1cxRWZ1TzVXN0ZuYjNJ?=
 =?utf-8?B?VFNnclBVWkVtbUNwVFNFc3M1UXNhNjkwZUdLNEtkTXFGaXI0YTNyM3RxZnJI?=
 =?utf-8?B?WHFsV2lUN25peFpZbmxDVnJoVG4zTXN4OE1qdmhhM1dlMkl4RCthemFla3dI?=
 =?utf-8?B?WmNaU1hYQ3B2L2NQOFlSRkFFS0lkRzV6NENodUkvUEJCMlFNQWIvTjVaRmVT?=
 =?utf-8?B?MmpITzZ1WE1qWlEvR3lobVN0dnIvM3ZCeEF4bEN5cWd2M01VSkI5TUU3dmMx?=
 =?utf-8?B?SXV1bHNLOGQ1bSsyRHk2b1A2QXk4U3N6TUpLWVlrdllaSlJpdFFhQ3ZRaFYv?=
 =?utf-8?B?Y2VSR2dGeGhmSmlSMTZxeWttdE9vdFVIZm85YmNwREpwT3lLNG5sOVBJbWlP?=
 =?utf-8?B?TTRQVWo3WlNZOEkvSDNFOHd0WWtlQjNLL3FjUlZrMlFoK3J3U2IrWVJuSjhN?=
 =?utf-8?B?a2xPYSthSzlPay8rWEVUc0gzYnhrNFA4bTREUTQvbVVqRjd3aG1wTno2bkRx?=
 =?utf-8?B?UFdTZ21NenZPNDRsVzg1ZTNrUWJxMUlobkFMMit4NGEyR1ZCWXNzaFEzT282?=
 =?utf-8?B?TzZZTWlxU1Y2Q0xkV05HbmI5eFlPanRFeUZoMUFwS0p5ckpSTGVYVmlJNXhE?=
 =?utf-8?B?aXJrOUlCcXYvZUVQVkYwQ3JTdkdyOXBWaWxjZGxORjd1SkNINDF4SERTM2Mv?=
 =?utf-8?B?ZENHcEZXRml4WDdyMVRsR0lCdFZZYm4rSllaT3Z2MXAwQ05nRXdIdkhzeFpR?=
 =?utf-8?B?OUFFa0xZOG1EU2VrOCtjN0FQS0wrWTBRKzFEaEZqdklIOGlGbHlWK3I2QWt6?=
 =?utf-8?B?RlBaQjh0aWRwQlNaMSsyN0NtajFhRXJVOFRwQzNGcnhHRFc4a0MzUnlqNWdL?=
 =?utf-8?B?ajZiQlJTS3Z2NzQyZE9BcWNrd0NhNVduNTNhWFVJOTJKbXI2ditXR3FyeGp2?=
 =?utf-8?B?aFdHbnpYQ3BWSkY5RzFTdGptTnhkWGcycjlHTDl4MzBCbUR5akN3RUpZVS9z?=
 =?utf-8?B?QXM0c2xPZmxrbUJTS09aTkdPWFM2RS9NRHBjTVZUYzUzQ2Rzd3MrS1JjSTFQ?=
 =?utf-8?B?VVVpYXN6dCsvYTdzOE9NTnAwSnY4blpMMVZCcWgzL3lpeUk1Y0xtRU9rT3N2?=
 =?utf-8?B?a2JLVjRFK1lDRWQrZUJUMFJHbHlLWTQraEhLMkdMVjFiSm9rZDBveUpydWxG?=
 =?utf-8?B?eHJrWTREbk02S1VLemo1cG94MjIzTWsrSnZtUUZnYnlFalRnVmlDMU1va3Ez?=
 =?utf-8?B?UTNwWmVSbUVDRWIvS1ZkSTUzRUMvTFVEL1R5bWRCQUNzUm1TSlJKV0sxcUxa?=
 =?utf-8?B?Q1ZOZ0lnV053RjRkVFF3Mkp6YWxEbFhHdGVjYy9MRU1ybFZpdjRFVnN5WjdE?=
 =?utf-8?B?M0lXdnlyMVJ4QUtWRnpZRG9UVndpY2JERzhURzAxUkZ3Skw3MjN3aXBXSkVF?=
 =?utf-8?B?OFhZMFlNRmRmSm8xZ0dqb0t6LzM3K3c4WERWMVExWlZRN2NWK3RnRDczUzB4?=
 =?utf-8?B?dktYbzNGSHFhbFd3MEdBQUdtUUtLcFhTOVo3MUFwQzk5TGIwQTZlQmFhVGkx?=
 =?utf-8?Q?fSSW0T?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2025 12:56:34.1386
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ada36b5d-2fae-4ef3-51b3-08ddd356574d
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF0001AB74.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB9515

Hi Hari,

On 30/07/2025 09:45, Hari Limaye wrote:
> CAUTION: This message has originated from an External Source. Please use proper judgment and caution when opening attachments, clicking links, or responding to this email.
>
>
> From: Luca Fancellu <luca.fancellu@arm.com>
>
> Add a scheme to distinguish transient MPU regions, to identify MPU
> regions which will be mapped for a short period of time.
>
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> Signed-off-by: Hari Limaye <hari.limaye@arm.com>

Reviewed-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>

Tested-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>

(On R82 and R52 with some additional patches)

- Ayan



From xen-devel-bounces@lists.xenproject.org Mon Aug 04 12:59:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 12:59:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069297.1433176 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiunG-0001PC-Gs; Mon, 04 Aug 2025 12:59:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069297.1433176; Mon, 04 Aug 2025 12:59: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 1uiunG-0001P5-Dy; Mon, 04 Aug 2025 12:59:58 +0000
Received: by outflank-mailman (input) for mailman id 1069297;
 Mon, 04 Aug 2025 12:59:57 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=c2vN=2Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uiunF-0001Oz-Dh
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 12:59:57 +0000
Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com
 [2a00:1450:4864:20::634])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id eb478c6c-7132-11f0-a321-13f23c93f187;
 Mon, 04 Aug 2025 14:59:55 +0200 (CEST)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-af967835d0aso158910766b.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 05:59: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
 a640c23a62f3a-af91a241bdfsm731459166b.131.2025.08.04.05.59.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Aug 2025 05:59: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>
X-Inumbo-ID: eb478c6c-7132-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754312395; x=1754917195; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=uvRhfOKLa0jtmJMekP2DS/JttHDhPCFUw2z2lbg3hck=;
        b=gtMSxAClAGFmi7PYKZtz8Tn1CpD3TZT3+fN4GzlUNmcfqriX3mu6M2Sw94RLy+MF8B
         YPJw3Ty8yvVgANjkwvZ/bsvNNKVIrSmyQWpcfBs9gycUYBpssiJjsIu/4WLb/uY6CSzV
         4ApKrdfuDfeSfAXzyNx9amWlI3TCY7CokpPTdWkjBB36dCkBjYeVCyazV1VgsxonPoy7
         57jzRrPJQxR40GKL+aWZPf3bUyphj9P8SdjHcdY9ktBo+N1lNNe3rTjfBA+pGN0NY+kC
         bAHucUWH2/kLoOxKQcQkaIvCjvIVqtZGQcTznfaoz8L3zJZQ/6ZQT00zl0Bd96TQQraF
         kVjA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754312395; x=1754917195;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=uvRhfOKLa0jtmJMekP2DS/JttHDhPCFUw2z2lbg3hck=;
        b=Xfjk6EfGGEMDYnnWnjxXyAQO2cpEFFQ1Vcr0rRYf3IDOvjlYYJVn+1h/LPnmqqSGCh
         0aRmfymxpMAnr/4wMyiP93ksHb0JE/SUgyKoEnuoE5vuBMQ58kV0290t8W6ec6lHRVgf
         ZgdjtWGjcCrCqsfST7iemLn3ZRu6GGRwP3NUbCJRESRsAXgZt9dlfzqE/dR902Qrrjih
         tLUMZ371WS1axSv+d55nDTcLdo1O7kP6/nTGN2Q8cDoAkiYPobO+S2BJA6IcnGljgPwC
         Hv8g9BWwelfLZFYapKYt9LH1DcSju8uf5o2XlaZpom+zN7fn/b2yv6S8eCg37Zj/qrQu
         ayjQ==
X-Forwarded-Encrypted: i=1; AJvYcCUG69dM7jgFjfoJNnYlt0hISHSlI1sgQMJPSKPhYskZRH7tgzrNjzDX6v2HZfrJX6tzqtZWsV0bdfk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxMCr4J92NFOKGqvByEhgXV/TQ26uovbtjgYltFQGHjmYPebdlp
	T6tCNjTsYbA4VbdUqsWZCC/X0SrGYwJLOzYZcnj/SjJYPAy15h8UAchzbKG4Srelrg==
X-Gm-Gg: ASbGncsjxRev/S2U4DV2RZGejPCMjOqO3g7OlvtalAvu33Vj43kVXvzNEkbPqpEOitS
	Y7hsbgbXuwKjfSSygXD7X3iy+55Ks6ltcIGZK5eEBio//xsyAxZ0udmu+1PUfb7/lao/tB/Ndv0
	F/qo8Xa/HZ8v69Q1eq+PlBvpt5/kVGgy6okS7MdpjXaIdd9JG+1cqntbBYzDYloFc88tLtAut8R
	AjkUZHTWrW8boNq12W113ICpFrJnlIRvhoxKqkmbtdU24vGcMzNSyGTg2OJ8Lc5GIp1xDT7Pq9U
	wrFjfjozy+P1PPHtlSVa1s6bhOvzWt862JWPXD19zKlvlQjZ2a+lSsoCC4h66Lrq3rccUKbwck3
	osknzknT0pKgsB5n5/PE8sb54sGGmguf/HhTVdKRjW8qt0s8ea0aAxUp2l7w4fjdUaIdmCrzJzs
	Rz8S1MujE=
X-Google-Smtp-Source: AGHT+IE6vQL4mYMR/dzRatPgbthtdwsYnI2mlxFEV7HAm6gEpg+OEHO74CRkdy/Ivm/jAWLznGEITA==
X-Received: by 2002:a17:907:7f05:b0:ad8:9257:573a with SMTP id a640c23a62f3a-af93ffcc3bbmr993180966b.5.1754312395234;
        Mon, 04 Aug 2025 05:59:55 -0700 (PDT)
Message-ID: <b0ecb75b-1f2c-4d23-b830-38df310dcf35@suse.com>
Date: Mon, 4 Aug 2025 14:59:54 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 04/25] xen: consolidate CONFIG_VM_EVENT
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, Shawn Anastasio <sanastasio@raptorengineering.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Tamas K Lengyel <tamas@tklengyel.com>,
 Alexandru Isaila <aisaila@bitdefender.com>,
 Petre Pircalabu <ppircalabu@bitdefender.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
References: <20250803094738.3625269-1-Penny.Zheng@amd.com>
 <20250803094738.3625269-5-Penny.Zheng@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: <20250803094738.3625269-5-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 03.08.2025 11:47, Penny Zheng wrote:
> File hvm/vm_event.c and x86/vm_event.c are the extend to vm_event handling
> routines, and its compilation shall be guarded by CONFIG_VM_EVENT too.
> Futhermore, features about monitor_op and memory access are both based on
> vm event subsystem, so monitor.o/mem_access.o shall be wrapped under
> CONFIG_VM_EVENT.
> 
> Although CONFIG_VM_EVENT is forcibly enabled on x86, we could disable it
> through disabling CONFIG_DOMCTL in the future.
> In consequence, a few functions, like the ones defined in hvm/monitor.h,
> needs stub to pass compilation when CONFIG_VM_EVENT=n.
> Remove the CONFIG_VM_EVENT wrapper for "#include <asm/mem_access.h>", as
> we need declaration there to pass compilation when CONFIG_VM_EVENT=n
> 
> The following functions are developed on the basis of vm event framework, or
> only invoked by vm_event.c/monitor.c/mem_access.c, so they all shall be
> wrapped with CONFIG_VM_EVENT:
> - hvm_toggle_singlestep
> - hvm_fast_singlestep
> - p2m_mem_paging_drop_page
> - p2m_mem_paging_populate_page
> - p2m_mem_paging_resume
> - hvm_enable_msr_interception
>   - hvm_function_table.enable_msr_interception
> - hvm_has_set_descriptor_access_existing
>   - hvm_function_table.set_descriptor_access_existing
> - xsm_vm_event_control
> 
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
> ---
>  xen/arch/ppc/stubs.c                    |  2 +
>  xen/arch/x86/Makefile                   |  2 +-
>  xen/arch/x86/hvm/Makefile               |  4 +-
>  xen/arch/x86/hvm/hvm.c                  |  2 +
>  xen/arch/x86/hvm/svm/svm.c              |  8 +++
>  xen/arch/x86/hvm/vmx/vmx.c              | 10 ++++
>  xen/arch/x86/include/asm/hvm/hvm.h      | 10 ++++
>  xen/arch/x86/include/asm/hvm/monitor.h  | 65 ++++++++++++++++++++++++-
>  xen/arch/x86/include/asm/hvm/vm_event.h |  4 ++
>  xen/arch/x86/include/asm/mem_access.h   |  9 ++++
>  xen/arch/x86/include/asm/monitor.h      | 15 ++++++
>  xen/arch/x86/include/asm/p2m.h          |  6 +++
>  xen/arch/x86/mm/mem_paging.c            |  2 +
>  xen/include/xen/mem_access.h            | 36 ++++++++++++--
>  xen/include/xen/monitor.h               |  8 ++-
>  xen/include/xen/vm_event.h              | 24 ++++++++-
>  xen/include/xsm/xsm.h                   |  4 +-
>  xen/xsm/dummy.c                         |  2 +-
>  xen/xsm/flask/hooks.c                   |  4 +-
>  19 files changed, 200 insertions(+), 17 deletions(-)

Overall it looks like the patch could be split some. E.g. the XSM changes look
as if they could go separately.

> --- a/xen/arch/ppc/stubs.c
> +++ b/xen/arch/ppc/stubs.c
> @@ -60,6 +60,7 @@ void vcpu_show_execution_state(struct vcpu *v)
>      BUG_ON("unimplemented");
>  }
>  
> +#ifdef CONFIG_VM_EVENT
>  /* vm_event.c */
>  
>  void vm_event_fill_regs(vm_event_request_t *req)
> @@ -76,6 +77,7 @@ void vm_event_monitor_next_interrupt(struct vcpu *v)
>  {
>      /* Not supported on PPC. */
>  }
> +#endif /* CONFIG_VM_EVENT */

Is this really needed? I wouldn't bother editing stubs.c files unless really
necessary.

> --- a/xen/arch/x86/include/asm/monitor.h
> +++ b/xen/arch/x86/include/asm/monitor.h
> @@ -71,6 +71,7 @@ int arch_monitor_domctl_op(struct domain *d, struct xen_domctl_monitor_op *mop)
>      return rc;
>  }
>  
> +#ifdef CONFIG_VM_EVENT
>  static inline uint32_t arch_monitor_get_capabilities(struct domain *d)
>  {
>      uint32_t capabilities = 0;
> @@ -102,6 +103,13 @@ static inline uint32_t arch_monitor_get_capabilities(struct domain *d)
>  
>      return capabilities;
>  }
> +#else
> +static inline uint32_t arch_monitor_get_capabilities(struct domain *d)
> +{
> +    ASSERT_UNREACHABLE();
> +    return 0;
> +}

Instead of this, a mere declaration (with no definition) would make a possible
problem known at build time, rather than only at runtime.

> --- a/xen/arch/x86/include/asm/p2m.h
> +++ b/xen/arch/x86/include/asm/p2m.h
> @@ -775,10 +775,16 @@ 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, mfn_t mfn);
>  
> +#ifdef CONFIG_VM_EVENT
>  /* 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);
> +#else
> +static inline void p2m_mem_paging_drop_page(struct domain *d, gfn_t gfn,
> +                                            p2m_type_t p2mt) {}

This, I think, isn't needed. p2m_is_paging() is already short-circuited into
0 / false when MEM_PAGING=n (implying VM_EVENT=n in your supposed future
configuration, so the call site is being DCE-ed, and hence the declaration
that was already there will suffice.

> --- a/xen/arch/x86/mm/mem_paging.c
> +++ b/xen/arch/x86/mm/mem_paging.c
> @@ -15,6 +15,7 @@
>  
>  #include "mm-locks.h"
>  
> +#ifdef CONFIG_VM_EVENT
>  /*
>   * p2m_mem_paging_drop_page - Tell pager to drop its reference to a paged page
>   * @d: guest domain
> @@ -186,6 +187,7 @@ void p2m_mem_paging_resume(struct domain *d, vm_event_response_t *rsp)
>          gfn_unlock(p2m, gfn, 0);
>      }
>  }
> +#endif /* CONFIG_VM_EVENT */

As per the previous remark: Why would this be needed? We already have

obj-$(CONFIG_MEM_PAGING) += mem_paging.o

in the corresponding Makefile.

> --- a/xen/include/xen/mem_access.h
> +++ b/xen/include/xen/mem_access.h
> @@ -33,9 +33,7 @@
>   */
>  struct vm_event_st;
>  
> -#ifdef CONFIG_VM_EVENT
>  #include <asm/mem_access.h>
> -#endif

Why?

> @@ -73,6 +71,7 @@ typedef enum {
>      /* NOTE: Assumed to be only 4 bits right now on x86. */
>  } p2m_access_t;
>  
> +#ifdef CONFIG_VM_EVENT
>  struct p2m_domain;
>  bool xenmem_access_to_p2m_access(const struct p2m_domain *p2m,
>                                   xenmem_access_t xaccess,
> @@ -99,10 +98,41 @@ long p2m_set_mem_access_multi(struct domain *d,
>  int p2m_get_mem_access(struct domain *d, gfn_t gfn, xenmem_access_t *access,
>                         unsigned int altp2m_idx);
>  
> -#ifdef CONFIG_VM_EVENT
>  int mem_access_memop(unsigned long cmd,
>                       XEN_GUEST_HANDLE_PARAM(xen_mem_access_op_t) arg);
>  #else
> +struct p2m_domain;

No point in duplicating this; just move it ahead of the #ifdef.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 13:00:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 13:00:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069306.1433186 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiuo8-0002xt-UP; Mon, 04 Aug 2025 13:00:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069306.1433186; Mon, 04 Aug 2025 13:00:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiuo8-0002xm-Qy; Mon, 04 Aug 2025 13:00:52 +0000
Received: by outflank-mailman (input) for mailman id 1069306;
 Mon, 04 Aug 2025 13:00:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=dY6Z=2Q=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1uiufw-0003gP-LZ
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 12:52:24 +0000
Received: from NAM04-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam04on20622.outbound.protection.outlook.com
 [2a01:111:f403:240a::622])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dd0c7a92-7131-11f0-a321-13f23c93f187;
 Mon, 04 Aug 2025 14:52:23 +0200 (CEST)
Received: from SJ0PR03CA0044.namprd03.prod.outlook.com (2603:10b6:a03:33e::19)
 by IA0PR12MB8648.namprd12.prod.outlook.com (2603:10b6:208:486::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.20; Mon, 4 Aug
 2025 12:52:20 +0000
Received: from MWH0EPF000989E9.namprd02.prod.outlook.com
 (2603:10b6:a03:33e:cafe::e1) by SJ0PR03CA0044.outlook.office365.com
 (2603:10b6:a03:33e::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.16 via Frontend Transport; Mon,
 4 Aug 2025 12:52:19 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 MWH0EPF000989E9.mail.protection.outlook.com (10.167.241.136) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Mon, 4 Aug 2025 12:52:19 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) 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 Aug
 2025 07:52:19 -0500
Received: from [10.71.195.192] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Mon, 4 Aug 2025 07:52:17 -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>
X-Inumbo-ID: dd0c7a92-7131-11f0-a321-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=kjlkzf5lK5qpo/haG4LxK5IHsSHUBdlocKG2TvRKGQx0liZJc8ryaQq79uDg22MJMIY3VTw7GPOQp69+vT56qW/7ysvMA0ooQ3ICJi0u8CWqLTjYgIJUYfNGu7NM18iQ5STxBil4yp4lYoUPyugZKgHFOu1ioVYa5pdy5QtOHnRSAwq4muG02jvxujvikKNU+v/1BNAv8eDL3K1yMLK2Hmz9b69M2eYg0QnVTq05hdUYKhmfKe83bwDBFGdsIqkDa2Cs9tEFqEF25YJkMPGu3knsiatDnwTklVA/vak4J6sXAoNqT0Lk6laW8HIromaAxozMOjpWlZhNDptnVUU6+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=AGJp2Gz+KZrlL+Yrp2lXKbTfgXaOVfUOMZCh7zwC/X8=;
 b=PQoaXJ7ZtHIC5zmED01o44KWDVYQ4ebitb10Ndz7Qkn74d+ZHeso9baNDJ/weG3qnZnaTfuleAgnOrszF4gN5D3B80fv3OHTRP6PcwB/MqfqFzd8NWDW6ZJLXc2LSx0mIDWkgEc+fGaBeuI7OBySdWc50mWDxJmHzUPqHq/P/rvT/T4n1V00Dcyv9rvVxDhb0+IWSz8TDUYQtro3oT8lBWLMZ46XtGR79l2FZ9WqTJ3UNC54/fZ1ggDhPnhlYcnKcRdCMC487zABKCecoClnqI26musiZa4NIFqyEnJExPHq4XO1KFtOUREYt4XVdC7ttSi8sUcHQ1xbtS9NtwIt3A==
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=AGJp2Gz+KZrlL+Yrp2lXKbTfgXaOVfUOMZCh7zwC/X8=;
 b=SZTjJF0otAXWL9fuEPZjeKX3pVMMebFMVFGFAKwtOkpm5ieNBnj1kUJAqp+Smpg3W4x/3Sd84ftJbMB4SMLRy3IxwUGY4ydLFXZxfTdDI+643MrtaHptNiK/22Uf2JgFw2UJOSybQAtgU1eMebFIYp4StWwgJLRmV19/ZrKsvuU=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <7d416038-a867-4f80-8500-c0d6e1c6530b@amd.com>
Date: Mon, 4 Aug 2025 13:52:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/5] arm/mpu: Implement setup_mm for MPU systems
Content-Language: en-GB
To: Hari Limaye <hari.limaye@arm.com>, <xen-devel@lists.xenproject.org>
CC: <luca.fancellu@arm.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
References: <cover.1753864612.git.hari.limaye@arm.com>
 <d4dc1be6f581c0c090c0cecb6fd49049a46fefee.1753864612.git.hari.limaye@arm.com>
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <d4dc1be6f581c0c090c0cecb6fd49049a46fefee.1753864612.git.hari.limaye@arm.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB04.amd.com: ayankuma@amd.com does not designate
 permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MWH0EPF000989E9:EE_|IA0PR12MB8648:EE_
X-MS-Office365-Filtering-Correlation-Id: 97cd5dcf-0003-4eeb-6d1c-08ddd355bfa1
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|1800799024|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?TjRhOVpheHRCQUJwbktpTnc0VG9GNE5iTk9LUnNTNkFWZEdXa1pWT2FuT0w2?=
 =?utf-8?B?OTZsVjZIM0hEVEU3a1dyd0Z1UVpwSWRiY2Q2RkZYNlRkRlFpSlFwRU1UZXF1?=
 =?utf-8?B?VlZaNnZLL0ljb0FJdjdKM3J6VVVwVFRrK3NkcG01V1hBeVBIY2YzM2hqSEhF?=
 =?utf-8?B?UzJEMWtpck5WU2doc2lsOUhhc3VwQUdUSDFMN1ovRW80VktQS1A0RHE3ZnhK?=
 =?utf-8?B?WVBKekQ0R1N4TkRLWW92dkVQZGN0dE1ScEdGbTIxZ1MwNFVUUWRWUGNGQVhE?=
 =?utf-8?B?bCtoZXh2RWxXRnRmR2F6L082eHpXTzFOZkdISGlEK2F2MGpSVWx2OUZ6bjNS?=
 =?utf-8?B?U1hCMzNDYlloTnAvSXJEOEhLVHFjQnJuR055K1BJQnVveGs4TGZYRTVEZHlQ?=
 =?utf-8?B?VFAwRmxBK2R5dU5KOHVtK2lrUDRiUU1GOWFaRmIrTWI5M09ydlc3dnZHMkdC?=
 =?utf-8?B?YTY5UHFGd05yT3V3L09ZZWU3Z2NrY3o0Tm8reERabXFEQUNiZXlTMTd4ZjdP?=
 =?utf-8?B?NlZ4YTNaOVRRdVBTUndkTjJaMGptc05odHpKQTkxbmt3eHJOOWl4SHhnbkRr?=
 =?utf-8?B?S0VNS1JEVktGSjNNcWtZMTh2ci80WnREb2xLS0k2ZUlYOGxJRm5Yb01yOEN1?=
 =?utf-8?B?bHpIMGY4aDkyT0tpQ2wyVk9GTGZESFE3QTV0VVNxWUF4cjRCZ0duWGJlNFNn?=
 =?utf-8?B?eVF1UHE3K1RaMGc2cm05cUg1aVFKVVRNUEhBRkFQK1lsUUppSS9QSno1aEs0?=
 =?utf-8?B?VlBMVWdDU1FHVlRmTHdSNkgxWVlVUGQxQXlkM2dpWldaaXp3UUhrSHNldkw5?=
 =?utf-8?B?SlROL2JUcERFbzhZS1hKbG1iejRPWTFZaXk5T0JlNUJTVmw1OUx6TUQ2ZUNY?=
 =?utf-8?B?dnJybktZSTFyd2hTdGJ6dDN5eWlLbW5Sb3VMYk5SZjhqZU5Ba0tKbm9lTUxn?=
 =?utf-8?B?ZUFSalZ3OGdhenJYeVFod2RKNGJkaVRQY1NQWDR0Y2Faek1wMlJzUzdFR2xP?=
 =?utf-8?B?ejdEUUwzK0FQalk2VHEyN3BNVDhWam9jUEFiMmcxYm05VEZSMzB3T2dwc2Zm?=
 =?utf-8?B?S2p4MzBTemZxNkJlVVlYcEt6QkVKNTFybkJPcDFwTHRhREs4QlZJVVp4QkpM?=
 =?utf-8?B?MTVhOG5YSkFhQW5Wa3AvSjJNN2NoN2M0TVhqQlUyUzNVQmFGcUdZSkQrNjU2?=
 =?utf-8?B?U1c5NXBITlMwZS8vOTlWVGVMMWYybFlVZDY4UGlQQ2xPUitDNVhmVUEzdE9L?=
 =?utf-8?B?VXY5MmpXMGczT29kT0RuZXp6NWJEV3o0VHpSam9UUWY0SlM4QmROMTZyd3hJ?=
 =?utf-8?B?dFpRNjhiMnNqamtlSnBvMldUTDBBem1Hc21WaXdUT3FsczdGeUY3OEpvL0lU?=
 =?utf-8?B?U3oxcUc1RDd4amdaMDNZU2M2TUllTnlTQ3JHazBzT1hOVGhiaCtYODlMRTJO?=
 =?utf-8?B?U2p2eng2NnBUeHFyRU9vWTZadExjc2VKN3FkSzFqbnBoVXoyNXhzSnd2NDNj?=
 =?utf-8?B?Q3hjVW5PcjhCY3hHdjFrVitvZFRHdDgzN1hzcG1TUWJRYzN3ejFYRlhZKzNM?=
 =?utf-8?B?Qmt0R3M4d1F2YmNRQXhLZTJZOE11ZmpLQVExOHg0VTlSK3FwY2xaZUJqUDFU?=
 =?utf-8?B?Znd0bVMyUlpqYUFrd3Zic2xGNHdMT3IwVXhScnp4L25CMGEyYUp0c011ZXp5?=
 =?utf-8?B?d2pDQXlmSTNNOTVDTUQrTzhzamNGYjVmVlprVk9iTThReUVDdmp2NVBPMnFM?=
 =?utf-8?B?ZUpmK3dESzB4bk9DYUFhdzROWWNMWU5FOUZXV0R4cVJndzZNZHpQbi83cmp5?=
 =?utf-8?B?Tk9jdy9Td2xGTlViVU4yQjNmVnF2c3N6R1NFZ21MVjMyWXEvSWdOMVBHU1po?=
 =?utf-8?B?Qk83eGlidDhBbU1jQ0doTU91engvdXRCd0Q4ZzFYSHEzSmhvRTRpMC9jUkZo?=
 =?utf-8?B?RzNCS1lpSVU2Tm02RG50alNqNjd0bWJraCtLenNxd1BXdmo2cms3dzJLaU5a?=
 =?utf-8?B?Ynh5OXU3d3JqQlViZ2Y1M2U1aGloQ09DTFZFOHJIcm9tK0dkM1RpN1VCTDFZ?=
 =?utf-8?Q?KaIJ++?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(1800799024)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2025 12:52:19.5834
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 97cd5dcf-0003-4eeb-6d1c-08ddd355bfa1
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000989E9.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB8648

Hi Hari,

On 30/07/2025 09:45, Hari Limaye wrote:
> CAUTION: This message has originated from an External Source. Please use proper judgment and caution when opening attachments, clicking links, or responding to this email.
>
>
> From: Luca Fancellu <luca.fancellu@arm.com>
>
> Implement `setup_mm` for MPU systems. This variant doesn't need to set
> up the direct map.
>
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> Signed-off-by: Hari Limaye <hari.limaye@arm.com>
Reviewed-by: Ayan Kumarb Halder <ayan.kumar.halder@amd.com>

Tested-by: Ayan Kumarb Halder <ayan.kumar.halder@amd.com>

(On R82 and R52 with some additional patches)

- Ayan


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 13:04:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 13:04:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069323.1433196 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiur9-0003nA-BF; Mon, 04 Aug 2025 13:03:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069323.1433196; Mon, 04 Aug 2025 13:03: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 1uiur9-0003n3-8Y; Mon, 04 Aug 2025 13:03:59 +0000
Received: by outflank-mailman (input) for mailman id 1069323;
 Mon, 04 Aug 2025 13:03:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=dY6Z=2Q=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1uiur8-0003mx-6J
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 13:03:58 +0000
Received: from NAM04-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam04on20617.outbound.protection.outlook.com
 [2a01:111:f403:240a::617])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7a57c7f8-7133-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 15:03:56 +0200 (CEST)
Received: from MW4PR03CA0137.namprd03.prod.outlook.com (2603:10b6:303:8c::22)
 by IA0PR12MB8714.namprd12.prod.outlook.com (2603:10b6:208:488::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.18; Mon, 4 Aug
 2025 13:03:52 +0000
Received: from SJ1PEPF000026C5.namprd04.prod.outlook.com
 (2603:10b6:303:8c:cafe::3e) by MW4PR03CA0137.outlook.office365.com
 (2603:10b6:303:8c::22) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.21 via Frontend Transport; Mon,
 4 Aug 2025 13:03:51 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SJ1PEPF000026C5.mail.protection.outlook.com (10.167.244.102) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Mon, 4 Aug 2025 13:03:51 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) 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 Aug
 2025 08:03:50 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 4 Aug
 2025 08:03:50 -0500
Received: from [10.71.195.192] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Mon, 4 Aug 2025 08:03:49 -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>
X-Inumbo-ID: 7a57c7f8-7133-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jfcHviwfmCWlCFdj0KWOSrOcqUBd+lnpHZV7YZNNppTVTYnWaCVJywXasxJ2OQd4tnmnoZxhz0RBz+NXmGzDatU8Ufq1IPvt7pWtD+7D1lE86YKKbpg0hh40eq52WbmtRx2KwIrIjII9oa+klwwadPwcip8xOk+LWR3o80xjPjo4hlDRImqR5bGDuQ6lLyhn8amj6S+yiFC75ubwBPfd6OlYrhGPfDK+cZ/6buWxfqWdGKw3cMjW5cMOW6SuedLnofffR2mcxC/6F4VqapYhtM7O+RtLPzUaooqhwlhlfTXbPiw9ft8L2yCHh69eNiDN4FyEmRVmsMvJoPcJrN1VOg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=mW10x64aSYhluYGdKOeYklIiFyevOtNj18XdlURBPJ0=;
 b=yJb9qN6EjJsV51u2caUqD8y1STdmQColNyF124MpM6eC7iOOcwXSb5LLU6JOh31wuEeO7yC0JkzI0818eSMpMPiEL8PgXgA1PE1FXM+zxiYyovQZKc7sYFp2nbz6Lx054Xxf6D0YWgsPDQSyXuC4qPSyz65zQSWNF+2Jza0ynp7rom1hfnFbwa/x/lyKG6CkrOjlAp0WDBm4bGNCcbVIr1d99vkD5/pdb3WoF1ak1qnq0QLmqwmAizsdcSN8HZjaCFeTIPbWs4+v1GfJ95w09TZk0l0209eZsATKW5Qq2RIk7Vwi0r35G4eOUzzr34u6h9VpFHvxONtyRIcu73DNCQ==
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=mW10x64aSYhluYGdKOeYklIiFyevOtNj18XdlURBPJ0=;
 b=nEGn10p1xWo6dj9p2HYcES9qCo0cRDG88m0SIjMCBNq9xr2uQ0k2yGbRPtdECdHVfX//hBRSAXB9kAtHuwajkyoBfyc48FlOcEKv3dE1WfizMr66nVfDQ9k07nnpiW75FamvKlGZKusec5+UUJCa63PP0ixDnpEgY1fnbmKbWmI=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <f4e5d6fd-26c3-441e-bd56-e84627edafe5@amd.com>
Date: Mon, 4 Aug 2025 14:03:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/5] arm/mpu: Implement ioremap_attr for MPU
Content-Language: en-GB
To: Hari Limaye <hari.limaye@arm.com>, <xen-devel@lists.xenproject.org>
CC: <luca.fancellu@arm.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
References: <cover.1753864612.git.hari.limaye@arm.com>
 <ad8cc76fb027efa52e0eb51f6ba7a918fad0ae52.1753864612.git.hari.limaye@arm.com>
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <ad8cc76fb027efa52e0eb51f6ba7a918fad0ae52.1753864612.git.hari.limaye@arm.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF000026C5:EE_|IA0PR12MB8714:EE_
X-MS-Office365-Filtering-Correlation-Id: a7281cb1-e082-4af2-534e-08ddd3575bc0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|82310400026|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?MFBxOGNYV3ZyRWRBZ2psM2Rmc0gyMlNVVUphQmt1ZVIxb1Z4cEpyWkhQbUds?=
 =?utf-8?B?K2FVN0tlb0pkL1hDaVpDSFgzekVqbXBhV0I1YmszWm1xaTBCa3I1ZnJlYnFx?=
 =?utf-8?B?UFhYUHVMSEFVVFFSb24xcWZzcjJFa2VIemhaYkZKcFJ6NU9BZFE3MTYzWVZM?=
 =?utf-8?B?NDR2bGxOTXF3UkhCY2hjbDNSY0FPWk11U0tWdURqbVh2YTJveVNYV1JvWGtM?=
 =?utf-8?B?bnoxNU5FSmRTc3F1dzREbUxLdEZKSTRhRUY3eUZ0YWtTazViVXg4d1o0UW0y?=
 =?utf-8?B?NkZ4SlRMb3dkbmoveUY5Z25BdmVPQXVpOExPdzJPaUFVWUIxSnRBaXA1WHNI?=
 =?utf-8?B?b1dKb01xcFhKOUN6RXE1cGtQNWpaZ1VKU0R0b20yd1JsdkVCRGIvcFNzUHdB?=
 =?utf-8?B?K3cyTTNhTjlYN3E0V0ZXWnM3T3ZrdkJ5MEFad1d2akpqQlBidGhZNHJOVUU1?=
 =?utf-8?B?aGlMUG9JSVBpaDI5ZmZqRkxUaVhTMXpjdFJRQWxyNzFsQk5vSGU1K0tXck9x?=
 =?utf-8?B?WjVQeTFYT2pnclJmeW9EakE4M25Hb0l4YzZOSTJuM1FzQTZrNlpManZueTl6?=
 =?utf-8?B?V1BGUmE1NCtTVjFhNVJreU5XS1ZzdzlrRzVDTnZqcXdnUDlDMlk0UldBUmIw?=
 =?utf-8?B?MHR5aFZEcUQzbUhhdnFtZWNIVVlYRVV5ZjBzLytiSUdEaUlub2pYSE1PWlBr?=
 =?utf-8?B?cTdmK1RVTWROYWJtM3Zibldpek1hVHhHb1ZvWDdpY3lBV1VDdHNIUFliVWVW?=
 =?utf-8?B?Ukw1OVNEZDlYdkVtajB4OHNDODJCemx1WTRTb3QzM2dKOE5tcmRWTEZ0YlRH?=
 =?utf-8?B?RmxtTUlGbUVhYXpBVzUxaDJuZHViUHVMQWpCQjJteThWR1lNWGpxU0lMOEdi?=
 =?utf-8?B?OVhjVDYycVhKcGVnYUI4YVlaZXdobzZkdHluc0R4QXplSEZVQ1dIanBwR1Rl?=
 =?utf-8?B?MDdxTlhJZFBFR0U3SWloTWgzVzNYdjBoMDdRVHFkd0M5ZFVLK1RUUlZ4bThI?=
 =?utf-8?B?M2RaT0VoNFFaZTJ0L2NxTFpuVFlGT1dKRHYwOFp6bEVOcHhTRSs4dUF6U3ZW?=
 =?utf-8?B?QzJZZENiblRPVThUbnI1cUNsZ09GM1cxUVc3b1JmYWcvZlZWOVlkMVNTZ01w?=
 =?utf-8?B?MzJTOUU2MVMrUU01c2JaUmFUR1BVaVZNRVJvdzRDakRzZk03QlNnZE9CSGdm?=
 =?utf-8?B?c2JHZWRqL0JwSFZocUVjTllHVlhrR1NKeVFtTHNDS0Y3VHM5dzAxTFYxb2M5?=
 =?utf-8?B?ZktmMTkvbm1CSENEcThTL0V2VTZrMzIzN0svVWE3WTQvS3VuNTF2U1hNanBD?=
 =?utf-8?B?N0J1VTB6c3dUbTEvYWtYM285MWRDMmwwMzh4Y0VlSTM2UVVwaFNlTi9VZ1NW?=
 =?utf-8?B?ZG1kRlJvdVErTU04dVovYlhmTFhoMmc4VkFkNlFrMnlzTmN6dTJxSW9SVUJE?=
 =?utf-8?B?UEsybjBXR3BwU3p6c3NUYy95ZW51LzRoWTduOW9HK0g1aVgrUS9MZStRcXhM?=
 =?utf-8?B?OFRlbFQ2aGtYU2h2YlMrWTVTZ3FGTDNCNDhCRnpMQTIxRG13d1lqRHNZU1lo?=
 =?utf-8?B?VmRHV21TY0oxMnFHTU5wL25KRVRDZGZSdFY5Qjk3aWFTVHl6ekFBS2IzZTlV?=
 =?utf-8?B?OERweW9YTDc5M3N1UkVwc0c0SXlhbDkxcGM1RTMyNlFHbzdrRWQvN0pqWHRT?=
 =?utf-8?B?dE1PSVBUcEZPajYvOURxek9VR0xVaFRtdm5xQ2E5Y0xHWXQ2ZG9wbFo0UFRC?=
 =?utf-8?B?OHk5Z0x0R3lScDBibTJPZXlZNWY1OW1kdnNjY21mN2UzLyt1emJNYU9FVXQ2?=
 =?utf-8?B?cjZTVW9WYUl0NU1wLy9vNW82TU5xb2FSak1MbGdwRFRITGtWa2RDMUlpcHN1?=
 =?utf-8?B?VkJtTnNHTVVWYldEaXNJUC91Z0VVZjU4NmhHTEJmcW9FdE9TQitzbzQycm9a?=
 =?utf-8?B?UUE3Y0dneFdrQkx2ZEQ5SXZSa09jK3pIWFNKRFl0N0FOV3Y4UEhVcHBWcDlm?=
 =?utf-8?B?RmczOEtxS052M1crT2VyN2dZVzNxSUlVczZYa1NFK2FmZkpnZk5OQjZXWmtH?=
 =?utf-8?Q?GeRzbw?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(82310400026)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2025 13:03:51.0068
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a7281cb1-e082-4af2-534e-08ddd3575bc0
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF000026C5.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB8714

Hi Hari,

On 30/07/2025 09:45, Hari Limaye wrote:
> CAUTION: This message has originated from an External Source. Please use proper judgment and caution when opening attachments, clicking links, or responding to this email.
>
>
> From: Luca Fancellu <luca.fancellu@arm.com>
>
> Introduce helpers (un)map_mm_range() in order to allow the temporary
> mapping of a range of memory, and use these to implement the function
> `ioremap_attr` for MPU systems.
>
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> Signed-off-by: Hari Limaye <hari.limaye@arm.com>
Reviewed-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
Tested-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>

(On R82 and R52 with some additional patches)

- Ayan



From xen-devel-bounces@lists.xenproject.org Mon Aug 04 13:05:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 13:05:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069335.1433205 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiusZ-0004Xk-KG; Mon, 04 Aug 2025 13:05:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069335.1433205; Mon, 04 Aug 2025 13: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 1uiusZ-0004Xd-HY; Mon, 04 Aug 2025 13:05:27 +0000
Received: by outflank-mailman (input) for mailman id 1069335;
 Mon, 04 Aug 2025 13:05:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=dY6Z=2Q=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1uiusY-0004J4-9Y
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 13:05:26 +0000
Received: from NAM02-DM3-obe.outbound.protection.outlook.com
 (mail-dm3nam02on20607.outbound.protection.outlook.com
 [2a01:111:f403:2405::607])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id af2f7ae2-7133-11f0-a321-13f23c93f187;
 Mon, 04 Aug 2025 15:05:25 +0200 (CEST)
Received: from BN0PR10CA0018.namprd10.prod.outlook.com (2603:10b6:408:143::29)
 by DM6PR12MB4204.namprd12.prod.outlook.com (2603:10b6:5:212::23) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.20; Mon, 4 Aug
 2025 13:05:20 +0000
Received: from BL6PEPF0001AB4B.namprd04.prod.outlook.com
 (2603:10b6:408:143:cafe::cc) by BN0PR10CA0018.outlook.office365.com
 (2603:10b6:408:143::29) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.21 via Frontend Transport; Mon,
 4 Aug 2025 13:05:20 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL6PEPF0001AB4B.mail.protection.outlook.com (10.167.242.69) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Mon, 4 Aug 2025 13:05:19 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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 Aug
 2025 08:05:17 -0500
Received: from [10.71.195.192] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Mon, 4 Aug 2025 08:05: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>
X-Inumbo-ID: af2f7ae2-7133-11f0-a321-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Jt/+4CkBqZq9PfAvX4KmEU8ADTPulrtVm9w4B60fXn+5SmMYFg+9py1iD3+NqolwWgb+FNdqS9hiu65LJDsuopT1Q9dGgnJmkaErlPnmWktsnmZ6/Y6xiaw6ZocZSB+N/ofac8x4GqLS3DF2YonL7HHES+2GadvLhCPTL6egXBPIY+ZSlw+QuYsCgOeXLAzO0kkvqbR6mfTXcm6JIdt/vTXAUnaNgaWV9R0nEdIL1WtjNBRmFlyzZPHXrNfMSWjiyFV4p2C7ZHpGecCwx6sqw6aOS63Fxy7Sc3Z1XuM8CJfzNDsyb/VSql+w2HyrTL8VwAkEvvtvAQlvjAh9LjHrdA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=AyqMbx6RF2QMM1kzIOwOrAYT/PCGV3nj+5TDqGDxkGU=;
 b=ZcQ5kiDc7Z4hsFXf4xy4WjcDOJ1aQLfs+hSq7DbiKfNKbv662s6BTZQC+fG7USPvqST0gOmjdP07l7b4DiLEo0WaHfKDkAUvlu3dVAdZYb8IIf98LnnG8P/u6XhoIv+NtNREyIVE1PCHmn/ZPJHRCyyDNYbrvu5Ug9LxFH0o5O4FbM/fldjypYxOMZ9P4c4FwhiiSXYSeCs5tuc4Y2JU3PzYDcrnKkraC/AnYwgFbNB+f3heYHcmRofggdHh+5EFAJlSRqQJP4Ts8UPKiRp1AWqobvv6aZiPcNT6rI1cl66J+v1rFaiHs64yaw3H431e4HQUqUpkguHVDYWoUzgUFg==
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=AyqMbx6RF2QMM1kzIOwOrAYT/PCGV3nj+5TDqGDxkGU=;
 b=fCSGto2YTvLMl0wN7uErGf2Io1wibYawYcTqxxTVrlmZCop6ZoiBQr0H5+fCkSIvdscGYsw2SS0tMLTWLpucqzFb8VLD9U0S+UhEcWOb0TQrI+aiZLOrEqdVyCjgkZOT9UJ+ekplQXPYf6xyO28VzRAq3XH1/61Hg8T/AMmYaCM=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <4335b725-08fa-4a22-b79b-fb1e22aaa594@amd.com>
Date: Mon, 4 Aug 2025 14:05:15 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 5/5] xen/arm: map static memory on demand
Content-Language: en-GB
To: Hari Limaye <hari.limaye@arm.com>, <xen-devel@lists.xenproject.org>
CC: <luca.fancellu@arm.com>, 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>,
	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>, Wei Chen
	<wei.chen@arm.com>
References: <cover.1753864612.git.hari.limaye@arm.com>
 <c85ac9d6da3c13dabd26627faac90ea95feb3f95.1753864612.git.hari.limaye@arm.com>
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <c85ac9d6da3c13dabd26627faac90ea95feb3f95.1753864612.git.hari.limaye@arm.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB04.amd.com: ayankuma@amd.com does not designate
 permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB4B:EE_|DM6PR12MB4204:EE_
X-MS-Office365-Filtering-Correlation-Id: 58273b03-883f-4f68-2211-08ddd357909a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|376014|7416014|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?ZityT3lXUmZOa09XeFZtVGZGMlYxS2xlMWNMSDl2T210UmxjWnJ3c0l5YU85?=
 =?utf-8?B?ZjIyOU5NcDNmdUNvb2VwTjNBVWZGZFVSL3RiVlBBSUdLZkYwV2kvZWh3YVFp?=
 =?utf-8?B?a0RlWklRU2MvK0NIVWhBVUg0M3Q3bkdYMU05Mzd1WVMyMFZXMkxKL3A3NmV3?=
 =?utf-8?B?d1AyaFpLYit1YTQ1QnJ4Z2RaSnhQcWFPRnlYMkN0WllZWk1LWW1kYWI5WXNT?=
 =?utf-8?B?cDY2QXJFN25rUDVrd2llcG1DMi9MTlc1WUFCSE94WktHNlh6NThpTGRxQi9x?=
 =?utf-8?B?eWFQMkVaRFRCWW10cFNPdy9RQXMraTNZakpZd0tBeHdwY1N6SFlUWm81ay9U?=
 =?utf-8?B?a1AzUXZUMUZEc1plbHBPZWF6ZVVOS0hjbWR1UmIvVG5SNi8rc0tGOWRxVWsy?=
 =?utf-8?B?K3dhRTU1TzRFREE4ellIdGwrWDRGbWVVbUdSekg1RFh2UXNXVkhvcGhuZXpE?=
 =?utf-8?B?dTFDUE8rMW5MNy9mZ3lWNnhZaWt5RGpRN0ViNndvdmZ4c2sxeGhoY1B6QUtu?=
 =?utf-8?B?Mzc2Y1ljQll3ay9tQXJmb0NIT0dkR0g4U3V0aWkxTDkxZXFmK1FWdHR2ZVBD?=
 =?utf-8?B?R3lpNzBPNXp2STdnQmszbXVsK0lFUkEyOUg5d0RpVHBLSW5WL2Q5UGZEMklX?=
 =?utf-8?B?OThGRzY0YU9XcUthOGh1S0FuNmZSNW1ZcW1vRzBYVlpoZmNwcDlhWHM3QWFt?=
 =?utf-8?B?ZnRDdmFmVWF5WlJ6RkFHbkNSK3ExN1g3MC9KcGlZRmZxeUdZaHY4bWgxY0p1?=
 =?utf-8?B?d2hzSWpEMUkvaXVoMTdtVFJFVUdTZTNnaUNMakpDcE1QRG15ZnRGaWtXbnZt?=
 =?utf-8?B?NGlYK0ZkOTVLOXozSEhKYldBVlpEajdlWWtjWHlERW1EUjB2bFNVZkhxdS9n?=
 =?utf-8?B?bmp1ZVNJNkd1c3pHU3lLbm44R29EN0kxcy9pZEQ4ZmpzbVNhUkFCUzZoc1Ja?=
 =?utf-8?B?VmMvbVRCN0gyMitrMnk5TGJQd21oNUVGT2lFYXNWMWkzMTJFKzVRbjJvT1E4?=
 =?utf-8?B?UjRJc1BCSWRxenZLbTNhYnUra0FrbGMxSlJsMXhBRVd2NDNVMSt3U1laQW5y?=
 =?utf-8?B?cWl2OFBlZkIrU25jdlNlZkZldW1ydnlzQ3VETXpqdVU4S0I0YWEwVDR5VTQ2?=
 =?utf-8?B?VWozMUxMTW54OXRZdTZ5SzJFcDJHek02RFJMdkd1eDlrWk40bklZRGt6MVZN?=
 =?utf-8?B?elVLbEh6cnRQSHVyODFoaDRnaFp4L2ZNYzd6SW83VTBnK29YY0M2cDY3aFFa?=
 =?utf-8?B?QmxKMmFnL2cyTEFXZzZ1V2Nnam1uaXhiY2RuZmI2a0tkYXdYZThLL0UxSW1u?=
 =?utf-8?B?dVhENDVBb2F1S2RXTVZoWEd4QjBSK1lMVHlaVnVDV2J5d2NkaUVOL1FJRTdn?=
 =?utf-8?B?QlhsdG1VVmx1V3d4VmlOM25JZlJxY1Q5N0QxMDVXZi9hQmZvRVl2NmFHMHJo?=
 =?utf-8?B?cDlYMTgwbkM0MXAya3Jka3BtaHg5UTN5d2lTRHMxbE1NU0xnd05PQWR5TWIy?=
 =?utf-8?B?QVorK2VxUk9Fc2Z4NGtFa3A3alV2aHlhQTZPWUc5TjVOMkhraGtmdkxpdzAy?=
 =?utf-8?B?OE8xUVBhL3daVythQksxT3FQMXdrTjJKMWNHMXpEZmR0bk1hcGdIV1hCVEJk?=
 =?utf-8?B?di9XYTFleWMrOVhUNGsxUzFSR2JzSktZTkg0aVZTL0x3YmpjZE53N01JU3Rk?=
 =?utf-8?B?S0lSWTE3bWE3SDk5TGJUWm9YNDBHN3V2UWl3ZG4zaGNWZjhhbnRFcnR6ejNi?=
 =?utf-8?B?Zks0dWJFZFRXMG1MQ0h2ekFMRDIrN2QvdWVKRGtxOW9VMFhHaGYrdU9COUFW?=
 =?utf-8?B?YlVhM0ZoVHN5OXduTEpHMHdXdlE0Zllmdjc5Mk5kMzFWUjVQQmlHaENXNmlX?=
 =?utf-8?B?dnZoOHp1RW93QWNMM1lOOVJYbmNyMTBoT3ptaGhON2JOV0VyQzRpaEsxdlI0?=
 =?utf-8?B?cnFISjJETGh5Y1VvVmNQTm51VHRXSVAyL3V3U2RuTlI3Qk1pdVMxTVdqZm9l?=
 =?utf-8?B?STYvRlVJSGJWdDZiNDNxK0ZsdkJmdFJrZlduZ1BFajFsSWZqS0czaldscXFv?=
 =?utf-8?Q?laz0uG?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(376014)(7416014)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2025 13:05:19.7676
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 58273b03-883f-4f68-2211-08ddd357909a
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF0001AB4B.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4204

Hi Hari,

On 30/07/2025 09:45, Hari Limaye wrote:
> CAUTION: This message has originated from an External Source. Please use proper judgment and caution when opening attachments, clicking links, or responding to this email.
>
>
> From: Penny Zheng <Penny.Zheng@arm.com>
>
> In the function `init_staticmem_pages` we need to have mapped static
> memory banks for initialization. Unlike on an MMU system, we cannot map
> the entire RAM on an MPU system as we have a limited number of MPU
> memory regions. To solve this, transiently map the static memory banks
> for initialization.
>
> 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>
Reviewed-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
Tested-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
(On R82 and R52 with some additional patches)


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 13:06:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 13:06:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069354.1433215 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiutz-0005PG-0A; Mon, 04 Aug 2025 13:06:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069354.1433215; Mon, 04 Aug 2025 13:06: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 1uiuty-0005P9-TU; Mon, 04 Aug 2025 13:06:54 +0000
Received: by outflank-mailman (input) for mailman id 1069354;
 Mon, 04 Aug 2025 13:06:53 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vAb3=2Q=rein-hpcbdc09=jahan@srs-se1.protection.inumbo.net>)
 id 1uiutx-0005P3-Hr
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 13:06:53 +0000
Received: from rein-hpcbdc09 (unknown [1.6.89.6])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e180481f-7133-11f0-a321-13f23c93f187;
 Mon, 04 Aug 2025 15:06:50 +0200 (CEST)
Received: by rein-hpcbdc09 (Postfix, from userid 1000)
 id 6AF1380C0979; Mon,  4 Aug 2025 18:36:46 +0530 (IST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e180481f-7133-11f0-a321-13f23c93f187
From: Jahan Murudi <jahan.murudi.zg@renesas.com>
To: xen-devel@lists.xenproject.org
Cc: Jahan Murudi <jahan.murudi.zg@renesas.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [RFC PATCH v3] tools/xentop: Add physical CPU statistics support
Date: Mon,  4 Aug 2025 18:36:43 +0530
Message-Id: <20250804130643.1046157-1-jahan.murudi.zg@renesas.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Introduce a new '-p/--pcpus' flag to display physical CPU utilization metrics
using xc_interface. This provides hypervisor-level CPU usage insights alongside
existing domain statistics. This helps correlate VM resource usage with host CPU
load patterns.

Changes:
- Add pcpu.c/pcpu.h for PCPU stat collection logic
- Link against libxenctrl for xc_handle access
- Extend CLI with '-p' flag and output formatting
- Forward declare xenstat_handle to access xc_handle
- Include cleanup for PCPU resources in exit handler

Example usage:
  xentop -p  # Shows physical CPU stats
  xentop -bp # Batch mode
  xentop -d 1 -p # With different delays

Example output with '-p':
  NAME      STATE   CPU(%)  MEM(%)  VCPUS ...
  Domain-0  -----r    17.0     6.3      8
  DomD      -----r   767.0    38.1      8

  Physical CPU Usage:
  â”Œâ”€â”€â”€â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”
  â”‚ Core  â”‚ Usage  â”‚
  â”œâ”€â”€â”€â”€â”€â”€â”€â”¼â”€â”€â”€â”€â”€â”€â”€â”€â”¤
  â”‚ 0     â”‚  98.1% â”‚
  â”‚ ...   â”‚  ...   â”‚
  â”‚ 7     â”‚  97.3% â”‚
  â””â”€â”€â”€â”€â”€â”€â”€â”´â”€â”€â”€â”€â”€â”€â”€â”€â”˜

Signed-off-by: Jahan Murudi <jahan.murudi.zg@renesas.com>
---
 tools/xentop/Makefile |   5 +-
 tools/xentop/pcpu.c   | 152 ++++++++++++++++++++++++++++++++++++++++++
 tools/xentop/pcpu.h   |  15 +++++
 tools/xentop/xentop.c |  57 ++++++++++------
 4 files changed, 207 insertions(+), 22 deletions(-)
 create mode 100644 tools/xentop/pcpu.c
 create mode 100644 tools/xentop/pcpu.h

diff --git a/tools/xentop/Makefile b/tools/xentop/Makefile
index 70cc2211c5..f514a6f7a8 100644
--- a/tools/xentop/Makefile
+++ b/tools/xentop/Makefile
@@ -15,6 +15,7 @@ include $(XEN_ROOT)/tools/Rules.mk
 
 CFLAGS += -DGCC_PRINTF $(CFLAGS_libxenstat)
 LDLIBS += $(LDLIBS_libxenstat) $(CURSES_LIBS) $(TINFO_LIBS) $(SOCKET_LIBS) -lm
+LDLIBS += $(LDLIBS_libxenctrl)
 CFLAGS += -DHOST_$(XEN_OS)
 
 # Include configure output (config.h)
@@ -25,8 +26,8 @@ TARGETS := xentop
 .PHONY: all
 all: $(TARGETS)
 
-xentop: xentop.o
-	$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS) $(APPEND_LDFLAGS)
+xentop: xentop.o pcpu.o
+	$(CC) $(LDFLAGS) -o $@ $^ $(LDLIBS) $(APPEND_LDFLAGS)
 
 .PHONY: install
 install: all
diff --git a/tools/xentop/pcpu.c b/tools/xentop/pcpu.c
new file mode 100644
index 0000000000..53d6b9c30c
--- /dev/null
+++ b/tools/xentop/pcpu.c
@@ -0,0 +1,152 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright (C) 2025 Renesas Electronics Corporation
+ */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <sys/time.h>
+#include <xenctrl.h>
+#include "pcpu.h"
+
+#define MAX_PCPUS 128
+
+typedef struct {
+    float usage_pct;
+} pcpu_stat_t;
+
+static pcpu_stat_t *pcpu_stats = NULL;
+static uint64_t *prev_idle = NULL;
+static uint64_t *prev_time = NULL;
+static int allocated_pcpus = 0;
+static xc_interface *xc_handle = NULL;
+
+static void report_pcpu_error(const char *context)
+{
+    fprintf(stderr, "PCPU error: %s (%s)\n", context, strerror(errno));
+}
+
+int update_pcpu_stats(const struct timeval *now, unsigned int delay_sec)
+{
+    struct xen_sysctl_cpuinfo info[MAX_PCPUS];
+    int detected_cpus = 0;
+    int ret, i;
+    uint64_t current_time = (uint64_t)now->tv_sec * 1000000ULL + now->tv_usec;
+
+    if (!xc_handle) {
+        xc_handle = xc_interface_open(NULL, NULL, 0);
+        if (!xc_handle) {
+            report_pcpu_error("xc_interface_open failed");
+            return -1;
+        }
+    }
+
+    ret = xc_getcpuinfo(xc_handle, MAX_PCPUS, info, &detected_cpus);
+    if (ret < 0) {
+        report_pcpu_error("xc_getcpuinfo failed");
+        return -1;
+    }
+
+    /* Allocate/reallocate memory if needed */
+    if (!pcpu_stats || detected_cpus > allocated_pcpus) {
+        pcpu_stat_t *new_stats = realloc(pcpu_stats,
+                        detected_cpus * sizeof(*pcpu_stats));
+        if (!new_stats) goto alloc_error;
+
+        uint64_t *new_prev_idle = realloc(prev_idle,
+                        detected_cpus * sizeof(*prev_idle));
+        if (!new_prev_idle) {
+            free(new_stats);
+            goto alloc_error;
+        }
+
+        uint64_t *new_prev_time = realloc(prev_time,
+                        detected_cpus * sizeof(*prev_time));
+        if (!new_prev_time) {
+            free(new_stats);
+            free(new_prev_idle);
+            goto alloc_error;
+        }
+
+        pcpu_stats = new_stats;
+        prev_idle = new_prev_idle;
+        prev_time = new_prev_time;
+        allocated_pcpus = detected_cpus;
+
+        /* Initialize new entries */
+        for (i = 0; i < detected_cpus; i++) {
+            prev_idle[i] = info[i].idletime / 1000; /* ns->us */
+            prev_time[i] = current_time;
+            pcpu_stats[i].usage_pct = 0.0;
+        }
+        return 0;
+    }
+
+    /* Calculate CPU usage with delay normalization */
+    for (i = 0; i < detected_cpus; i++) {
+        uint64_t current_idle = info[i].idletime / 1000;
+        uint64_t idle_diff = current_idle - prev_idle[i];
+        uint64_t time_diff = current_time - prev_time[i];
+
+        /* Use configured delay when actual interval is too small */
+        if (time_diff < 100000) {
+            time_diff = delay_sec * 1000000ULL;
+        }
+
+        if (time_diff > 0) {
+            double usage = 100.0 * (1.0 - ((double)idle_diff / time_diff));
+            /* Clamp between 0-100% */
+            pcpu_stats[i].usage_pct = (usage < 0) ? 0.0 :
+                                     (usage > 100) ? 100.0 : usage;
+        } else {
+            pcpu_stats[i].usage_pct = 0.0;
+        }
+
+        prev_idle[i] = current_idle;
+        prev_time[i] = current_time;
+    }
+
+    return 0;
+
+alloc_error:
+    free_pcpu_stats();
+    errno = ENOMEM;
+    report_pcpu_error("memory allocation failed");
+    return -1;
+}
+
+void print_pcpu_stats(void)
+{
+    if (!pcpu_stats || allocated_pcpus == 0) {
+        printf("\r\nNo PCPU data available\r\n");
+        return;
+    }
+
+    printf("\r\nPhysical CPU Usage:\r\n");
+    printf("+-------+--------+\r\n");
+    printf("| Core  | Usage  |\r\n");
+    printf("+-------+--------+\r\n");
+
+    for (int i = 0; i < allocated_pcpus; i++) {
+        printf("| %-5d | %5.1f%% |\r\n", i, pcpu_stats[i].usage_pct);
+    }
+
+    printf("+-------+--------+\r\n");
+}
+
+void free_pcpu_stats(void)
+{
+    if (xc_handle) {
+        xc_interface_close(xc_handle);
+        xc_handle = NULL;
+    }
+    free(pcpu_stats);
+    free(prev_idle);
+    free(prev_time);
+    pcpu_stats = NULL;
+    prev_idle = NULL;
+    prev_time = NULL;
+    allocated_pcpus = 0;
+}
diff --git a/tools/xentop/pcpu.h b/tools/xentop/pcpu.h
new file mode 100644
index 0000000000..2ce86292a6
--- /dev/null
+++ b/tools/xentop/pcpu.h
@@ -0,0 +1,15 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright (C) 2025 Renesas Electronics Corporation
+ */
+
+#ifndef __XENTOP_PCPU_H__
+#define __XENTOP_PCPU_H__
+
+#include <sys/time.h>
+
+int update_pcpu_stats(const struct timeval *now, unsigned int delay);
+void print_pcpu_stats(void);
+void free_pcpu_stats(void);
+
+#endif /* __XENTOP_PCPU_H__ */
diff --git a/tools/xentop/xentop.c b/tools/xentop/xentop.c
index f5d6c19cf9..dcf2f69b59 100644
--- a/tools/xentop/xentop.c
+++ b/tools/xentop/xentop.c
@@ -37,6 +37,7 @@
 #endif
 
 #include <xenstat.h>
+#include "pcpu.h"
 
 #define XENTOP_VERSION "1.0"
 
@@ -205,6 +206,7 @@ field_id sort_field = FIELD_DOMID;
 unsigned int first_domain_index = 0;
 unsigned int delay = 3;
 unsigned int batch = 0;
+static unsigned int show_pcpus = 0;
 unsigned int loop = 1;
 unsigned int iterations = 0;
 int show_vcpus = 0;
@@ -230,22 +232,23 @@ static WINDOW *cwin;
 /* Print usage message, using given program name */
 static void usage(const char *program)
 {
-	printf("Usage: %s [OPTION]\n"
-	       "Displays ongoing information about xen vm resources \n\n"
-	       "-h, --help           display this help and exit\n"
-	       "-V, --version        output version information and exit\n"
-	       "-d, --delay=SECONDS  seconds between updates (default 3)\n"
-	       "-n, --networks       output vif network data\n"
-	       "-x, --vbds           output vbd block device data\n"
-	       "-r, --repeat-header  repeat table header before each domain\n"
-	       "-v, --vcpus          output vcpu data\n"
-	       "-b, --batch	     output in batch mode, no user input accepted\n"
-	       "-i, --iterations     number of iterations before exiting\n"
-	       "-f, --full-name      output the full domain name (not truncated)\n"
-	       "-z, --dom0-first     display dom0 first (ignore sorting)\n"
-	       "\n" XENTOP_BUGSTO,
-	       program);
-	return;
+    printf("Usage: %s [OPTION]\n"
+           "Displays ongoing information about xen vm resources \n\n"
+           "-h, --help           display this help and exit\n"
+           "-V, --version        output version information and exit\n"
+           "-d, --delay=SECONDS  seconds between updates (default 3)\n"
+           "-n, --networks       output vif network data\n"
+           "-x, --vbds           output vbd block device data\n"
+           "-r, --repeat-header  repeat table header before each domain\n"
+           "-v, --vcpus          output vcpu data\n"
+           "-b, --batch          output in batch mode, no user input accepted\n"
+           "-p, --pcpus          show physical CPU stats\n"
+           "-i, --iterations     number of iterations before exiting\n"
+           "-f, --full-name      output the full domain name (not truncated)\n"
+           "-z, --dom0-first     display dom0 first (ignore sorting)\n"
+           "\n" XENTOP_BUGSTO,
+           program);
+    return;
 }
 
 /* Print program version information */
@@ -267,6 +270,8 @@ static void cleanup(void)
 		xenstat_free_node(cur_node);
 	if(xhandle != NULL)
 		xenstat_uninit(xhandle);
+
+	free_pcpu_stats();
 }
 
 /* Display the given message and gracefully exit */
@@ -1189,7 +1194,7 @@ static void top(void)
 		fail("Failed to retrieve statistics from libxenstat\n");
 
 	/* dump summary top information */
-	if (!batch)
+	if (!batch && !show_pcpus)
 		do_summary();
 
 	/* Count the number of domains for which to report data */
@@ -1245,9 +1250,17 @@ static void top(void)
 			do_vbd(domains[i]);
 	}
 
-	if (!batch)
+	if (!batch && !show_pcpus)
 		do_bottom_line();
 
+    if (show_pcpus) {
+        if (update_pcpu_stats(&curtime, delay) == 0) {
+            print_pcpu_stats();
+        } else {
+            fail("Error getting PCPU stats\n");
+        }
+    }
+
 	free(domains);
 }
 
@@ -1271,13 +1284,14 @@ int main(int argc, char **argv)
 		{ "repeat-header", no_argument,       NULL, 'r' },
 		{ "vcpus",         no_argument,       NULL, 'v' },
 		{ "delay",         required_argument, NULL, 'd' },
-		{ "batch",	   no_argument,	      NULL, 'b' },
+		{ "batch",         no_argument,	      NULL, 'b' },
+		{ "pcpus",         no_argument,       NULL, 'p' },
 		{ "iterations",	   required_argument, NULL, 'i' },
 		{ "full-name",     no_argument,       NULL, 'f' },
 		{ "dom0-first",    no_argument,       NULL, 'z' },
 		{ 0, 0, 0, 0 },
 	};
-	const char *sopts = "hVnxrvd:bi:fz";
+	const char *sopts = "hVnxrvd:bpi:fz";
 
 	if (atexit(cleanup) != 0)
 		fail("Failed to install cleanup handler.\n");
@@ -1312,6 +1326,9 @@ int main(int argc, char **argv)
 		case 'b':
 			batch = 1;
 			break;
+		case 'p':
+			show_pcpus = 1;
+			break;
 		case 'i':
 			iterations = atoi(optarg);
 			loop = 0;
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 04 13:08:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 13:08:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069368.1433225 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiuvu-0006JN-C8; Mon, 04 Aug 2025 13:08:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069368.1433225; Mon, 04 Aug 2025 13:08: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 1uiuvu-0006JG-9C; Mon, 04 Aug 2025 13:08:54 +0000
Received: by outflank-mailman (input) for mailman id 1069368;
 Mon, 04 Aug 2025 13:08:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=OEzl=2Q=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1uiuvt-0006J9-KU
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 13:08:53 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 23ecdedd-7134-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 15:08:40 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-4563a57f947so17252435e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 06:08:40 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3b79c3b95f4sm15435084f8f.23.2025.08.04.06.08.38
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 04 Aug 2025 06:08: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>
X-Inumbo-ID: 23ecdedd-7134-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754312920; x=1754917720; 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=MSIZhFSRoFRHF6QoEa7m5+whRac4naGoL1s/P59JX60=;
        b=uOBSyMoy5d/6LMm+wF4D07MaHRxeA2Z1Id3ZtVua70bkNDp1yxd9jj3vczqSWZtDbB
         sfg/pRPC1QgmdD5IqAKPAl6mm/OeOL5uwTPUFii1+QtiIx32vd6kyrHQgo9X9i8CGVGZ
         y7xIl5GhBpYGPPS6ijBDQjKMvkmzxYnYzH0DM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754312920; x=1754917720;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MSIZhFSRoFRHF6QoEa7m5+whRac4naGoL1s/P59JX60=;
        b=cZR/K7JJ2tyV/0o4+qw3at/mUWhQZYvsWb5j5GRQsuV+3rXrcMRrp+bI5yyGZR7u8F
         5j99cZAPcfrtyCWEpz/yRpIWYkF8ogD22rbh22uzIKXZdEzX4ZNnD0EgMgVHchBxHr1A
         2BROkWG1Sp3s8fkURrRgMLj1eLo//xfdxpqvgVjTdehr0iUBk6PvZM255LSFdoiEQ+r6
         5Lh/PHWM8p/y6CELoH6OAnaOgPFFI6TfTIdk1FfBVWxI8ql/UuwD/xC0aFb1zZRXWbcy
         RUYm/Ux5sMJaTVZEgON6BVklTWrAgwm5i6bahT1ucKF5a0PpJSIHGFjJxtDHqrZXSYQX
         zQsQ==
X-Forwarded-Encrypted: i=1; AJvYcCVMzxNtYEyov9HFFUpx2rlHD16X42P9sDHuFxTUpmlCzdIbyrvCd9uGcvATp7NtN9A8lVmeYF42o48=@lists.xenproject.org
X-Gm-Message-State: AOJu0YylXxwJlG0GyIb1cv/qNpDuRJ3ldt3mc6GYGAoQB1PkXElciGje
	mn0FBRMH+Aj9YnnVqyyj7pvc24i7d9fFof4hJi01nU92rw6VEtuopsB2ur90bkYaVpE=
X-Gm-Gg: ASbGncuMq/cD7IlKPEjVD54TsNFAkIuSlh58NfRD2Nup50kQT4slMneZMGiRZefvK6t
	/whD/O3AVftAOZomU7g9lxkbGfQOYvQgHlwM3nVRj2BvoxfdzV6CP/AJ/9sN11iZq7QBwPR24Xj
	TwdW+tcR/7ts6vIt1XUfFM/wuTkbIg7GleKZtUFRKuP90NqWunZ9M3bqCKIaTAzN1dAUJdkxAts
	uCNqLqbw6lhnPzkoufB+/AZ1mHpTVFSqG59sYQb5jE8nVpwryC5llgPVE4vbgHqbDby+xtT8NaH
	SnChUytFtGjNI3AgvYG0w9Pw6x3BsmufI5Yg3jFgmckrcYEF0sa3IWvzg1tzb+XA1Xb7CXasGuG
	CofagEI0Q5kWg/aGtiTTPcKDgce5NuEeU19Xbkf6IkiFV2/y3D6LPWfu1gX8urN2R0h0HfJL7Aa
	RD
X-Google-Smtp-Source: AGHT+IGEs83Uj2/oRUpsAQ5N8R7Z63h/wcWyNwoTmH7LL4cVINCAZioNaJR54yJf3n7th86hOSO7wg==
X-Received: by 2002:a05:600c:46d3:b0:456:21f4:a0a3 with SMTP id 5b1f17b1804b1-458b59e3f41mr84967645e9.5.1754312919702;
        Mon, 04 Aug 2025 06:08:39 -0700 (PDT)
Date: Mon, 4 Aug 2025 15:08:34 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.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>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v3 7/8] pdx: introduce a new compression algorithm based
 on region offsets
Message-ID: <aJCw0vS2rw2CXJqq@macbook.local>
References: <20250724110416.2081-1-roger.pau@citrix.com>
 <20250724110416.2081-8-roger.pau@citrix.com>
 <87c1a72d-62cf-475a-8320-70e1954cd0f5@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <87c1a72d-62cf-475a-8320-70e1954cd0f5@suse.com>

On Tue, Jul 29, 2025 at 04:16:15PM +0200, Jan Beulich wrote:
> On 24.07.2025 13:04, Roger Pau Monne wrote:
> > --- a/xen/common/pdx.c
> > +++ b/xen/common/pdx.c
> > @@ -24,6 +24,7 @@
> >  #include <xen/param.h>
> >  #include <xen/pfn.h>
> >  #include <xen/sections.h>
> > +#include <xen/sort.h>
> >  
> >  /**
> >   * Maximum (non-inclusive) usable pdx. Must be
> > @@ -40,6 +41,12 @@ bool __mfn_valid(unsigned long mfn)
> >  
> >  #ifdef CONFIG_PDX_MASK_COMPRESSION
> >      invalid |= mfn & pfn_hole_mask;
> > +#elif defined(CONFIG_PDX_OFFSET_COMPRESSION)
> > +{
> > +    unsigned long base = pfn_bases[PFN_TBL_IDX(mfn)];
> > +
> > +    invalid |= mfn < base || mfn >= base + pdx_region_size;
> 
> Leveraging wrapping, this could be simplified to
> 
>     invalid |= mfn - base >= pdx_region_size;
> 
> I think. Considering it's a frequently used path, doing so may be worthwhile.

I don't think that would work for all cases, take the following
example:

PFN compression using lookup table shift 18 and region size 0x40000
 range   0 [0000000280000, 00000002bffff] PFN IDX  10 : 0000000280000

If you pass mfn 0 to mfn_valid() with your proposed adjustment, the
result of the subtraction would be:

0 - ~0UL == 1

Which wouldn't satisfy the >= condition, and hence pfn 0 would be
reported as a valid mfn.  I think we need to keep both sides of the
check.

> > @@ -75,6 +82,13 @@ void set_pdx_range(unsigned long smfn, unsigned long emfn)
> >  # error "Missing architecture maximum number of RAM ranges"
> >  #endif
> >  
> > +/* Some functions should be init when not using PDX mask compression. */
> > +#ifndef CONFIG_PDX_MASK_COMPRESSION
> > +# define __init_or_pdx_mask __init
> > +#else
> > +# define __init_or_pdx_mask
> > +#endif
> 
> Considering this is local to the CU, "pdx" in the name isn't very meaningful.
> Instead it being a compression type may be, so how about __init_or_mask_compr
> or some such? (If we gain further compression types, this may be getting
> unwieldy anyway.)

I'm fine with your proposal.  The current naming was derived from the
CONFIG_ define.

> > +static void __init cf_check swp_node(void *a, void *b, size_t size)
> > +{
> > +    SWAP(a, b);
> 
> This doesn't look right - you swap a and b, not what they point to.
> 
> > +static bool __init pfn_offset_sanitize_ranges(void)
> > +{
> > +    unsigned int i = 0;
> > +
> > +    if ( nr_ranges == 1 )
> > +    {
> > +        ASSERT(PFN_TBL_IDX(ranges[0].base) ==
> > +               PFN_TBL_IDX(ranges[0].base + ranges[0].size - 1));
> 
> I think this points out a naming issue in patch 2: "base" and "size" look
> as if these were address / byte count, when they're PFN / page count.
> Which caught my eye because of the values being passed to something that
> actually wants a PFN (and hence looked wrong at the first glance).

The struct name is pfn_range, I could rename the fields to base_pfn
and pages or similar, but my impression was that the struct name was
enough of a pointer that those are PFN ranges.  Do you have any
alternative proposal about how to name those?

> > +        return true;
> > +    }
> > +
> > +    while ( i + 1 < nr_ranges )
> > +    {
> > +        /*
> > +         * Ensure ranges [start, end] use the same offset table index.  Should
> > +         * be guaranteed by the logic that calculates the pfn shift.
> > +         */
> > +        if ( PFN_TBL_IDX(ranges[i].base) !=
> > +             PFN_TBL_IDX(ranges[i].base + ranges[i].size - 1) ||
> > +             PFN_TBL_IDX(ranges[i + 1].base) !=
> > +             PFN_TBL_IDX(ranges[i + 1].base + ranges[i + 1].size - 1) )
> 
> It feels a little odd to re-do the 2nd half of the checking here on the next
> iteration, when the table wouldn't have changed when ...
> 
> > +        {
> > +            ASSERT_UNREACHABLE();
> > +            return false;
> > +        }
> > +
> > +        if ( PFN_TBL_IDX(ranges[i].base) != PFN_TBL_IDX(ranges[i + 1].base) )
> > +        {
> > +            i++;
> > +            continue;
> 
> ... taking this path. Could I talk you into moving the latter half ...
> 
> > +        }
> 
> ... here? If that's needed at all, as ...
> 
> > +        /* Merge ranges with the same table index. */
> > +        ranges[i].size = ranges[i + 1].base + ranges[i + 1].size -
> > +                         ranges[i].base;
> 
> ... the new range should also fulfill the requirement. Just that the last
> such range then wouldn't be checked, unless ...
> 
> > +        memmove(&ranges[i + 1], &ranges[i + 2],
> > +                (nr_ranges - (i + 2)) * sizeof(ranges[0]));
> > +        nr_ranges--;
> > +    }
> 
> ... that checking was put past the loop. Which then would allow to remove
> the special casing of nr_ranges == 1 at the top of the function: You'd
> uniformly check the ranges[nr_ranges - 1] here.	

What about doing it like:

static bool __init pfn_offset_sanitize_ranges(void)
{
    unsigned int i = 0;

    if ( PFN_TBL_IDX(ranges[0].base) !=
         PFN_TBL_IDX(ranges[0].base + ranges[0].size - 1) )
    {
        ASSERT_UNREACHABLE();
        return false;
    }

    while ( i + 1 < nr_ranges )
    {
        /*
         * Ensure ranges [start, end] use the same offset table index.  Should
         * be guaranteed by the logic that calculates the pfn shift.
         */
        if ( PFN_TBL_IDX(ranges[i + 1].base) !=
             PFN_TBL_IDX(ranges[i + 1].base + ranges[i + 1].size - 1) )
        {
            ASSERT_UNREACHABLE();
            return false;
        }

        if ( PFN_TBL_IDX(ranges[i].base) != PFN_TBL_IDX(ranges[i + 1].base) )
        {
            i++;
            continue;
        }

        /* Merge ranges with the same table index. */
        ranges[i].size = ranges[i + 1].base + ranges[i + 1].size -
                         ranges[i].base;
        memmove(&ranges[i + 1], &ranges[i + 2],
                (nr_ranges - (i + 2)) * sizeof(ranges[0]));
        nr_ranges--;
    }

    return true;
}

I've pulled the index 0 check ahead of the loop, which then covers for
the case where nr_ranges == 1.  There's also no duplicate checking of
the ranges, since the range at i + 1 will always be a non-checked one;
either because the array has been shifted as a result of a range
merging, or the index has been advanced.

> > +        ranges[i].size = start + ranges[i].size - ranges[i].base;
> > +
> > +        /*
> > +         * Only merge overlapped regions now, leave adjacent regions separated.
> > +         * They would be merged later if both use the same index into the
> > +         * lookup table.
> > +         */
> > +        if ( !i || ranges[i].base >= (ranges[i - 1].base + ranges[i - 1].size) )
> > +        {
> > +            /*
> > +             * We might parse the region at position 0 more than once, as for
> > +             * index 0 we don't attempt to merge to keep this simple.
> > +             */
> > +            mask |= pdx_region_mask(ranges[i].base, ranges[i].size);
> > +            continue;
> 
> In how far is it relevant here that slot 0 may be looked at more than once?

Not really, just that someone might wonder about the possibly
inefficiency of this.  I will remove the comment then.

> > +        }
> > +
> > +        ranges[i - 1].size = ranges[i].base + ranges[i].size -
> > +                             ranges[i - 1].base;
> > +
> > +        if ( i + 1 < nr_ranges )
> > +            memmove(&ranges[i], &ranges[i + 1],
> > +                    (nr_ranges - (i + 1)) * sizeof(ranges[0]));
> > +        else /* last range */
> > +            mask |= pdx_region_mask(ranges[i].base, ranges[i].size);
> > +        nr_ranges--;
> > +        i--;
> > +    }
> > +
> > +    /*
> > +     * Populate a mask with the non-equal bits of the different ranges, do this
> > +     * to calculate the maximum PFN shift to use as the lookup table index.
> > +     */
> > +    for ( i = 0; i < nr_ranges; i++ )
> > +        for ( unsigned int j = 0; j < nr_ranges; j++ )
> > +            idx_mask |= (ranges[i].base & ~mask) ^ (ranges[j].base & ~mask);
> > +
> > +    if ( !idx_mask )
> > +        /* Single region case. */
> > +        pfn_index_shift = flsl(mask);
> > +    else if ( flsl(idx_mask) - ffsl(idx_mask) < CONFIG_PDX_OFFSET_TBL_ORDER )
> > +        /* The changed mask fits in the table index width. */
> > +        pfn_index_shift = ffsl(idx_mask) - 1;
> > +    else
> > +        /* Changed mask is wider than array size, use most significant bits. */
> > +        pfn_index_shift = flsl(idx_mask) - CONFIG_PDX_OFFSET_TBL_ORDER;
> 
> Perhaps emit a log message here to indicate that bigger PDX_OFFSET_TBL_ORDER
> may yield better results?

What about:

printk(XENLOG_DEBUG
       "PFN compression table index truncated, requires order %u\n",
       flsl(idx_mask) - ffsl(idx_mask) + 1);

> > +    /*
> > +     * Ensure correctness of the calculated values, plus merge ranges if they
> > +     * use the same lookup table index.
> > +     */
> > +    if ( !pfn_offset_sanitize_ranges() )
> > +    {
> > +        printk(XENLOG_DEBUG "PFN compression is invalid, disabling\n");
> > +        pfn_pdx_compression_reset();
> > +        return false;
> > +    }
> > +
> > +    /*
> > +     * Find the maximum PFN range size after having merged ranges with same
> > +     * index.  The rounded up region size will be the base for the PDX region
> > +     * size and shift.
> > +     */
> > +    for ( i = 0; i < nr_ranges; i++ )
> > +        size = max(size, ranges[i].size);
> > +
> > +    /* pdx_init_mask() already takes MAX_ORDER into account. */
> > +    mask = PFN_DOWN(pdx_init_mask(size << PAGE_SHIFT));
> 
> We're in arch-neutral code here, so I think you need to cast size to paddr_t
> before shifting.

Indeed, size is unsigned long here.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 13:41:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 13:41:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069400.1433248 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uivQz-00016h-SH; Mon, 04 Aug 2025 13:41:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069400.1433248; Mon, 04 Aug 2025 13:41:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uivQz-00016a-N5; Mon, 04 Aug 2025 13:41:01 +0000
Received: by outflank-mailman (input) for mailman id 1069400;
 Mon, 04 Aug 2025 13:41:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=c2vN=2Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uivQy-00016T-ED
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 13:41:00 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a6c1bf05-7138-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 15:40:58 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-af96fba3b37so139245766b.3
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 06:40: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
 a640c23a62f3a-af91a24364fsm718006766b.140.2025.08.04.06.40.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Aug 2025 06:40: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>
X-Inumbo-ID: a6c1bf05-7138-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754314857; x=1754919657; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=xoFaB6hOuROgJRMYJzJYnA17731w5us9zWBdDSdGBXU=;
        b=AGeX4BOjTN0dvv3/eWO1r4O8iwSl5nuRFO64J4H9Ix4pMq+bUXOqPHDyQtMOXzOi1/
         Y1imEr5Xg0Q/oOZfi5jvEvZKnsYU1rHltfD/Xu3+PGOFLdp4UUWmkgRGsEh7E4gPiABT
         VDAjv/XQ36rN7AoIyQERCT5pEmm5BJ/6C9AfhrwfINM6GtIfshluuYoujzQ/gN5GpGa8
         ci/yDgXgtZXqockjchYss1VhX3F5Mp65LgmFJCzPBOdmxzxdmB83oHtTcr3sWQHUk3dw
         6PRFGgPM5S4Q8KkS4+kR1NZy81AGiR4+FZYXKhk2BdbCpYexjoJ8XTY5LlX0rci+TmX9
         SXlg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754314857; x=1754919657;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xoFaB6hOuROgJRMYJzJYnA17731w5us9zWBdDSdGBXU=;
        b=gpGXgtMEZLC5U9RWZia9Df8SkTP2JsOxz3nmPRwisHUBwdKMpmxVHYK8KN3vNfRhdG
         n0wDN9xGHaH7Vbij3tO3jl/PTugmPQQ0rILpvHIYl7CghiYoPif8jjX5oahfnXz+SjWl
         aI1HxYrSGdmhJBUfMJ/Y2iPzlKtOA9Rcx6YkAGtDvBn0RyczyKFTfVQw2RALWFg80p7b
         F2azY72K0oFTLoJVSobsN3bFwwCeLAV/Wui8hfKl1/HMwXP9TOIY5mq4l4dR3Bxl4Tsm
         m6J+RpIz7kag6xWeTj2WBVYIZrAM63i457n+N2aN/V0dBdEVjcbk7KfBFarhhkr9znPG
         jwyg==
X-Forwarded-Encrypted: i=1; AJvYcCU2mPaYjmxVQ6boteylWqOAOacaPgfcleEtwr0KPk7FtoKXCkXkp//fLwrQOUBUmhXE0LVnXPysH+E=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwPSlmI0ZK8gB4qacpaECPGoGhpYBF0mJh0AV8NEhClbfTau3p8
	wSa9kx8oMUjRK/ToKC2SqBaodNGivwzExSgBX3uN5qeWMIPMYk8quJr2m4XIK6eK2w==
X-Gm-Gg: ASbGncsgms2M2x+PnlHQ82ijKQLXiyBAzts4H47Va4Ip3enMSWkF/eIIOpfC0OxnbNb
	7C8PwFKcbixUxzgoUGgDvejorOupK6rFRbWbic0cd9M8xBGjBGEQLjavgul8aqxtDYISNMC5I0D
	hKQLezugMoW+NYcfMvqWrERBYmNmiYali1LDmxN2fMGM5jwq2Sq49qscqzKjWFC5iirbOVQyDaY
	lQXBS784j820pZHTJWpUzDbU5o5OR6gOQCPfkxKx9deWBYNQa2atQTguN1q0MJLEUTsJgbfNYl7
	VtH9OB4K2vDfUziS6UX5+nxjepap8heioyuLD1wcv6pZwaew8xAabShbClNE6TL/lCRA0XWVCCk
	ml2+W+LH8oyosYA/RnUmnPfk1MfTK6QMQ3ua2PcMrex2tBfyBRrhUOW17HAyZf9LEsjjmCgazHk
	LwxI3I7ag=
X-Google-Smtp-Source: AGHT+IEPeWvAUILsdcqEOY+6AbHLE7TwVnkW5TKULyFG5VEPsaQ8onzppVWSq6FeGfYgOl/C4MPKUQ==
X-Received: by 2002:a17:906:478c:b0:ae6:f663:7232 with SMTP id a640c23a62f3a-af940258c08mr782419766b.61.1754314857116;
        Mon, 04 Aug 2025 06:40:57 -0700 (PDT)
Message-ID: <e1d00521-2a95-43bf-a5ea-61696d0c2023@suse.com>
Date: Mon, 4 Aug 2025 15:40:55 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 7/8] pdx: introduce a new compression algorithm based
 on region offsets
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <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>, xen-devel@lists.xenproject.org
References: <20250724110416.2081-1-roger.pau@citrix.com>
 <20250724110416.2081-8-roger.pau@citrix.com>
 <87c1a72d-62cf-475a-8320-70e1954cd0f5@suse.com>
 <aJCw0vS2rw2CXJqq@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: <aJCw0vS2rw2CXJqq@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.08.2025 15:08, Roger Pau MonnÃ© wrote:
> On Tue, Jul 29, 2025 at 04:16:15PM +0200, Jan Beulich wrote:
>> On 24.07.2025 13:04, Roger Pau Monne wrote:
>>> --- a/xen/common/pdx.c
>>> +++ b/xen/common/pdx.c
>>> @@ -24,6 +24,7 @@
>>>  #include <xen/param.h>
>>>  #include <xen/pfn.h>
>>>  #include <xen/sections.h>
>>> +#include <xen/sort.h>
>>>  
>>>  /**
>>>   * Maximum (non-inclusive) usable pdx. Must be
>>> @@ -40,6 +41,12 @@ bool __mfn_valid(unsigned long mfn)
>>>  
>>>  #ifdef CONFIG_PDX_MASK_COMPRESSION
>>>      invalid |= mfn & pfn_hole_mask;
>>> +#elif defined(CONFIG_PDX_OFFSET_COMPRESSION)
>>> +{
>>> +    unsigned long base = pfn_bases[PFN_TBL_IDX(mfn)];
>>> +
>>> +    invalid |= mfn < base || mfn >= base + pdx_region_size;
>>
>> Leveraging wrapping, this could be simplified to
>>
>>     invalid |= mfn - base >= pdx_region_size;
>>
>> I think. Considering it's a frequently used path, doing so may be worthwhile.
> 
> I don't think that would work for all cases, take the following
> example:
> 
> PFN compression using lookup table shift 18 and region size 0x40000
>  range   0 [0000000280000, 00000002bffff] PFN IDX  10 : 0000000280000
> 
> If you pass mfn 0 to mfn_valid() with your proposed adjustment, the
> result of the subtraction would be:
> 
> 0 - ~0UL == 1
> 
> Which wouldn't satisfy the >= condition, and hence pfn 0 would be
> reported as a valid mfn.  I think we need to keep both sides of the
> check.

Hmm, right - I keep forgetting that the start of a pfn_bases[x] isn't necessarily
a valid page itself.

>>> +static void __init cf_check swp_node(void *a, void *b, size_t size)
>>> +{
>>> +    SWAP(a, b);
>>
>> This doesn't look right - you swap a and b, not what they point to.
>>
>>> +static bool __init pfn_offset_sanitize_ranges(void)
>>> +{
>>> +    unsigned int i = 0;
>>> +
>>> +    if ( nr_ranges == 1 )
>>> +    {
>>> +        ASSERT(PFN_TBL_IDX(ranges[0].base) ==
>>> +               PFN_TBL_IDX(ranges[0].base + ranges[0].size - 1));
>>
>> I think this points out a naming issue in patch 2: "base" and "size" look
>> as if these were address / byte count, when they're PFN / page count.
>> Which caught my eye because of the values being passed to something that
>> actually wants a PFN (and hence looked wrong at the first glance).
> 
> The struct name is pfn_range, I could rename the fields to base_pfn
> and pages or similar, but my impression was that the struct name was
> enough of a pointer that those are PFN ranges.

Problem being that the struct name isn't anywhere in sight here.

>  Do you have any
> alternative proposal about how to name those?

Your suggested new naming looks good to me.

>>> +        return true;
>>> +    }
>>> +
>>> +    while ( i + 1 < nr_ranges )
>>> +    {
>>> +        /*
>>> +         * Ensure ranges [start, end] use the same offset table index.  Should
>>> +         * be guaranteed by the logic that calculates the pfn shift.
>>> +         */
>>> +        if ( PFN_TBL_IDX(ranges[i].base) !=
>>> +             PFN_TBL_IDX(ranges[i].base + ranges[i].size - 1) ||
>>> +             PFN_TBL_IDX(ranges[i + 1].base) !=
>>> +             PFN_TBL_IDX(ranges[i + 1].base + ranges[i + 1].size - 1) )
>>
>> It feels a little odd to re-do the 2nd half of the checking here on the next
>> iteration, when the table wouldn't have changed when ...
>>
>>> +        {
>>> +            ASSERT_UNREACHABLE();
>>> +            return false;
>>> +        }
>>> +
>>> +        if ( PFN_TBL_IDX(ranges[i].base) != PFN_TBL_IDX(ranges[i + 1].base) )
>>> +        {
>>> +            i++;
>>> +            continue;
>>
>> ... taking this path. Could I talk you into moving the latter half ...
>>
>>> +        }
>>
>> ... here? If that's needed at all, as ...
>>
>>> +        /* Merge ranges with the same table index. */
>>> +        ranges[i].size = ranges[i + 1].base + ranges[i + 1].size -
>>> +                         ranges[i].base;
>>
>> ... the new range should also fulfill the requirement. Just that the last
>> such range then wouldn't be checked, unless ...
>>
>>> +        memmove(&ranges[i + 1], &ranges[i + 2],
>>> +                (nr_ranges - (i + 2)) * sizeof(ranges[0]));
>>> +        nr_ranges--;
>>> +    }
>>
>> ... that checking was put past the loop. Which then would allow to remove
>> the special casing of nr_ranges == 1 at the top of the function: You'd
>> uniformly check the ranges[nr_ranges - 1] here.	
> 
> What about doing it like:
> 
> static bool __init pfn_offset_sanitize_ranges(void)
> {
>     unsigned int i = 0;
> 
>     if ( PFN_TBL_IDX(ranges[0].base) !=
>          PFN_TBL_IDX(ranges[0].base + ranges[0].size - 1) )
>     {
>         ASSERT_UNREACHABLE();
>         return false;
>     }
> 
>     while ( i + 1 < nr_ranges )
>     {
>         /*
>          * Ensure ranges [start, end] use the same offset table index.  Should
>          * be guaranteed by the logic that calculates the pfn shift.
>          */
>         if ( PFN_TBL_IDX(ranges[i + 1].base) !=
>              PFN_TBL_IDX(ranges[i + 1].base + ranges[i + 1].size - 1) )
>         {
>             ASSERT_UNREACHABLE();
>             return false;
>         }
> 
>         if ( PFN_TBL_IDX(ranges[i].base) != PFN_TBL_IDX(ranges[i + 1].base) )
>         {
>             i++;
>             continue;
>         }
> 
>         /* Merge ranges with the same table index. */
>         ranges[i].size = ranges[i + 1].base + ranges[i + 1].size -
>                          ranges[i].base;
>         memmove(&ranges[i + 1], &ranges[i + 2],
>                 (nr_ranges - (i + 2)) * sizeof(ranges[0]));
>         nr_ranges--;
>     }
> 
>     return true;
> }
> 
> I've pulled the index 0 check ahead of the loop, which then covers for
> the case where nr_ranges == 1.  There's also no duplicate checking of
> the ranges, since the range at i + 1 will always be a non-checked one;
> either because the array has been shifted as a result of a range
> merging, or the index has been advanced.

Looks good, thanks.

>>> +        ranges[i].size = start + ranges[i].size - ranges[i].base;
>>> +        ranges[i - 1].size = ranges[i].base + ranges[i].size -
>>> +                             ranges[i - 1].base;
>>> +
>>> +        if ( i + 1 < nr_ranges )
>>> +            memmove(&ranges[i], &ranges[i + 1],
>>> +                    (nr_ranges - (i + 1)) * sizeof(ranges[0]));
>>> +        else /* last range */
>>> +            mask |= pdx_region_mask(ranges[i].base, ranges[i].size);
>>> +        nr_ranges--;
>>> +        i--;
>>> +    }
>>> +
>>> +    /*
>>> +     * Populate a mask with the non-equal bits of the different ranges, do this
>>> +     * to calculate the maximum PFN shift to use as the lookup table index.
>>> +     */
>>> +    for ( i = 0; i < nr_ranges; i++ )
>>> +        for ( unsigned int j = 0; j < nr_ranges; j++ )
>>> +            idx_mask |= (ranges[i].base & ~mask) ^ (ranges[j].base & ~mask);
>>> +
>>> +    if ( !idx_mask )
>>> +        /* Single region case. */
>>> +        pfn_index_shift = flsl(mask);
>>> +    else if ( flsl(idx_mask) - ffsl(idx_mask) < CONFIG_PDX_OFFSET_TBL_ORDER )
>>> +        /* The changed mask fits in the table index width. */
>>> +        pfn_index_shift = ffsl(idx_mask) - 1;
>>> +    else
>>> +        /* Changed mask is wider than array size, use most significant bits. */
>>> +        pfn_index_shift = flsl(idx_mask) - CONFIG_PDX_OFFSET_TBL_ORDER;
>>
>> Perhaps emit a log message here to indicate that bigger PDX_OFFSET_TBL_ORDER
>> may yield better results?
> 
> What about:
> 
> printk(XENLOG_DEBUG
>        "PFN compression table index truncated, requires order %u\n",
>        flsl(idx_mask) - ffsl(idx_mask) + 1);

Again, fine with me.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 13:52:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 13:52:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069412.1433258 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uivby-0005Qp-SE; Mon, 04 Aug 2025 13:52:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069412.1433258; Mon, 04 Aug 2025 13:52: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 1uivby-0005Qi-PV; Mon, 04 Aug 2025 13:52:22 +0000
Received: by outflank-mailman (input) for mailman id 1069412;
 Mon, 04 Aug 2025 13:52:21 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=c2vN=2Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uivbx-0005OJ-3e
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 13:52:21 +0000
Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com
 [2a00:1450:4864:20::62b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3d2415ad-713a-11f0-a321-13f23c93f187;
 Mon, 04 Aug 2025 15:52:19 +0200 (CEST)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-af66f444488so596081466b.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 06:52: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
 a640c23a62f3a-af9215cdc53sm691622366b.78.2025.08.04.06.52.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Aug 2025 06:52: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>
X-Inumbo-ID: 3d2415ad-713a-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754315539; x=1754920339; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=/F1MKbyo2whIItkwM3f1Kx9gvYWDGVzVy/Y65aOS0wk=;
        b=KKBoiE+47cdTIleptPJhtzsoliIXw/m3dlAyUL9sZvvpQLqGodZ7/bArmTXTXzQqyw
         D4poXEhMJH9aE6XYXh1S0VtDEerZY2P+CyguEllcdFe0sxWJ+d56tSCWQxixFSMpZccP
         b7iR/lNGVSud+sBBhDmJce2f9xNCgwwB75FN/9U8nIulLfqSNRUJ94qTKPcVcxWrUUNk
         tdhAp4XZnVGvXt6JeOEvOVG8qvahJlwdZY6jCc2+4Teasky4sP4KbJpHCpbNDi1J2t10
         9e7lkld47Yfj1ZeUG37jv9BTv8cdlWfv3H+vmF5jWF4C4mjuuavW9K2GlTflggtYQb5p
         sXhg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754315539; x=1754920339;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/F1MKbyo2whIItkwM3f1Kx9gvYWDGVzVy/Y65aOS0wk=;
        b=gI8QTkc8R9GuibfTZWHrD3RMFc18a2Y1pKNtQ/LALIGufch5JJeweDFYY2aEyDEXDJ
         tsTzEASp8HjSCBK86B9O1+sbzujCbAhnM92zWNvlEkbzww2MO7q/dbg6asUIEr3GAMtR
         lnRXpK4WYwGgopV0aINKGqZ3n3IXOBZYLuXcBrCoPkcj6J0cBTQC0zPnuStzlA06zO7o
         JJvyhyDbouk4ch7UU2FwuP1zvvw/AQHIsRU3wPj7gieKcLYjdm/xHsT/4/89OYjhI82E
         G/Zv1sNjUhbFppKXWzVC90FKuKqkmsBr3rhbYDxu5CHW9I31NUo16qGkX/enbxkuQb5Q
         DkzQ==
X-Forwarded-Encrypted: i=1; AJvYcCWBrPbsKNQCriqziRq5rbWDb++gZpquXWR6/rq0OyAhnEPbvEhS+JpA0/iV1UicupqEkX56B86Ffdc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy5BO4HYC+GhJU59kt522qFqkqZMTswKJ0Rw3hR6ZTx9N7hVMqx
	YJF7ss1oItnO/Dy2Md+S3+GeJXaHkjXk4D+WkMRPMFlPdXVHph6suTcj8MYcsCAJNg==
X-Gm-Gg: ASbGncv6j0HkNIlaFQwMs/yci4pn0t7o0l54Ua5OzeWMCLD35yTQeNIF9KFF0nbIlDq
	ESgRuZ/NUfrtP0liMhENsjki/9p/nNz7TswpjWDxkBjsylqruaiMixKuzVF+g3J0gpQ45idSHpp
	8e+5NS4k0BQJ2F/SHJZYpsFN9BLMd3MbNzDMlWvY+ypw/5ZZwuzjB3AK6dXZj5wq6zlOr2YtfdB
	ThHezc2ES/WmB0vwaxqvPzn0d96DqzleH8Rmd6m5nkr9qL6XCHrwBoXEX9WuIDeaHUFDpI3y7s8
	kl2AdWsfZmESbUoAjGMa6NLUl4A3ftBTsbx/EJM0N0RcN4KEgFsaPg8KIpUUugl4vR9CJSNLh3x
	YzQgZPKzeGCt2R4536FD8afE5wdWl8C9S5cWFtkROL0pt8LAK9ApHAeelMYiBucv4Fp/aJkSzpd
	lfoEaKGuiAKyCGEZfBKw==
X-Google-Smtp-Source: AGHT+IHJxHUoohHWFrjuy5qfOCv55/tLt5fsA7q+Frsw3ncGw4xMD7FUVC2IWnhnkKFtD+RU8WaJ+Q==
X-Received: by 2002:a17:907:3e8d:b0:adb:23e0:9297 with SMTP id a640c23a62f3a-af940014680mr949623866b.17.1754315539092;
        Mon, 04 Aug 2025 06:52:19 -0700 (PDT)
Message-ID: <829f9477-2b18-47f0-8fb3-57bffa8d133d@suse.com>
Date: Mon, 4 Aug 2025 15:52:18 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 01/20] xen/riscv: implement sbi_remote_hfence_gvma()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <b0649cf7b071d0a1cdd7fc9b8d73abea5d0646b4.1753973161.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: <b0649cf7b071d0a1cdd7fc9b8d73abea5d0646b4.1753973161.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 31.07.2025 17:58, Oleksii Kurochko wrote:
> Instruct the remote harts to execute one or more HFENCE.GVMA instructions,
> covering the range of guest physical addresses between start_addr and
> start_addr + size for all VMIDs.
> 
> The remote fence operation applies to the entire address space if either:
>  - start_addr and size are both 0, or
>  - size is equal to 2^XLEN-1.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

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

However, ...

> --- a/xen/arch/riscv/include/asm/sbi.h
> +++ b/xen/arch/riscv/include/asm/sbi.h
> @@ -89,6 +89,25 @@ bool sbi_has_rfence(void);
>  int sbi_remote_sfence_vma(const cpumask_t *cpu_mask, vaddr_t start,
>                            size_t size);
>  
> +/*
> + * Instructs the remote harts to execute one or more HFENCE.GVMA
> + * instructions, covering the range of guest physical addresses
> + * between start_addr and start_addr + size for all VMIDs.

... I'd like to ask that you avoid fuzzy terminology like this one. Afaict
you mean [start, start + size). Help yourself and future readers by then
also saying it exactly like this. (Happy to make a respective edit while
committing.)

> + * Returns 0 if IPI was sent to all the targeted harts successfully
> + * or negative value if start_addr or size is not valid.

This similarly is ambiguous: The union of the success case stated and the
error case stated isn't obviously all possible states. The success
statement in particular alludes to the possibility of an IPI not actually
reaching its target.

> + * The remote fence operation applies to the entire address space if either:
> + *  - start_addr and size are both 0, or
> + *  - size is equal to 2^XLEN-1.

Whose XLEN is this? The guest's? The host's? (I assume the latter, but it's
not unambiguous, unless there's specific terminology that I'm unaware of,
yet which would make this unambiguous.)

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 13:55:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 13:55:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069419.1433267 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uivfM-0006k2-99; Mon, 04 Aug 2025 13:55:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069419.1433267; Mon, 04 Aug 2025 13:55: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 1uivfM-0006jv-6c; Mon, 04 Aug 2025 13:55:52 +0000
Received: by outflank-mailman (input) for mailman id 1069419;
 Mon, 04 Aug 2025 13:55:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=c2vN=2Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uivfK-0006jp-Cs
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 13:55:50 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b98d9f38-713a-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 15:55:48 +0200 (CEST)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-6152faff57eso7812538a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 06:55: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
 4fb4d7f45d1cf-615a8eff596sm6906762a12.5.2025.08.04.06.55.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Aug 2025 06:55: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>
X-Inumbo-ID: b98d9f38-713a-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754315748; x=1754920548; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+qsbDAu9n7j04Iuujn77wTlIrVSjN8SCrQfzwXDs46g=;
        b=K0IzVgjENtwZ0rBszd+Mmwpek0zNPZjtZsAQMHhkW9jy2O01qAPz3ohYkbXQivLQ7u
         CPVrjYvZnCge/e/GRGt56Gd+xmjfcHufYT7V5P8JHVG9RWEciQcCA5XL1LQ1+5UI/E8v
         W2BBiU6FJk2+QiFizy/EZ8RYNs2CaR4X4ICMjcXSLt4RyoXn9IJHNraNiYSVky80QVmh
         VeJ18kzH809y0SktbkLGfOTQwmyiyVMBprLic/QTdzR+gqOUrZLSO4MPFVZxoSHp7zC1
         ejQWBSU0H41j7X5TIEWE0yOAAdFdo5wvz90lF8GD2jDhpPZq8JFWxLU6Orv2L1LyhPHX
         aHrQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754315748; x=1754920548;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+qsbDAu9n7j04Iuujn77wTlIrVSjN8SCrQfzwXDs46g=;
        b=IOhlAYJ0BkMldvc9BGOPoEwBK5NpBRCN+xWb/wychD1Ttn3M61O0tUqFlSKyi8arzP
         xQ2/Ikw5pGNb/d0Zrv7mYdpZ49gst7cydpkLc7rg2GaTZ4RE2gp/V9WJdTEEvo3N+c+h
         HcWe+dCJmPYRLtem55/Vt5Yw/owPOst+RjwgfqMWIhdTV/nu7EjNfekndGumHixqqReo
         fbfvgh2zWsFzKOt9cxe6ZJsRMYzJ0GIW2BSN5xCC6dnLwF+C2Prh6OCw5ueTtkgmHuEi
         hcttz6+7eSOhxdeEnG9tiGkZJKXVdvYlD/A5ghDx6X7ZmmZeFGCIoe4nVCO/2fLLBqq9
         A0TA==
X-Forwarded-Encrypted: i=1; AJvYcCUEMJEv8RBMtchbRM4sjecE+6a9Qo2ShG4NYteIIFIodoPcVeJPbofFULAf+P9lqUKY+o2PIMjt4Nc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzzHUekPLWoXcTG9ZWqo4Wr0DoLfm+IqHR9pGFix4VOuGtcFpuY
	5h6rZaiYM0lA/xMHE93m1m62uhroKhdnZV5PErRanT8jplNOXfPWnnpjipyVChBpRQ==
X-Gm-Gg: ASbGncsRO7MMneFRW/r6R5SYTScxQlrOzgPtOfk5JSIth7YmD15XGopak0Z4MIS23el
	5jqjm+OIMvn7jE4n4kc8qEy67x3KWU3ywcjndSXJptdtCNFK6WeDNOzNHXec28mQ7Mk6UdDZcrR
	zbmArxr+Zr53zjjmgDSXK3DpoTwRva+gXBFps7Ht4vfuDqOo2DvqsdjO9ri23MlVFGEke3R4qf+
	QQmseVa6XzKpbTXhvoDQ2ucsNLUrtPGLs0BeFD5D4iy7QbHa03M3TRZBL53AzOD0ZS3AwNMYYQ4
	3H8ZyRj5jNnL0leFGSW/4TDzA5RG5et7YLupurq1ScKxu3uYHbXYhe/6Q8CrOLFvvRkVRhzR+AK
	1cNn2kfMspEwXEhx+0dU9+YNZjWwcvyiCjSEcglMpcynbLmS5s4Hemk/CjQh4xUygSO/a7GZ6AZ
	wBhux6HPQ=
X-Google-Smtp-Source: AGHT+IELEwfsQMhy+6a5o1zeJqyLeL06POL/645SlSNi10K5jJig7PKTI7OKZnDBKzQC3vSVRvtaPg==
X-Received: by 2002:a05:6402:5110:b0:615:7899:5734 with SMTP id 4fb4d7f45d1cf-615e716ed94mr9545459a12.28.1754315747734;
        Mon, 04 Aug 2025 06:55:47 -0700 (PDT)
Message-ID: <164e0f8e-3986-4c9a-8201-14ea006405c7@suse.com>
Date: Mon, 4 Aug 2025 15:55:46 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 02/20] xen/riscv: introduce
 sbi_remote_hfence_gvma_vmid()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <de83ed75b0d7109d007389ec4809320c59c10bf7.1753973161.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: <de83ed75b0d7109d007389ec4809320c59c10bf7.1753973161.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 31.07.2025 17:58, Oleksii Kurochko wrote:
> It instructs the remote harts to execute one or more HFENCE.GVMA instructions
> by making an SBI call, covering the range of guest physical addresses between
> start_addr and start_addr + size only for the given VMID.
> 
> The remote fence operation applies to the entire address space if either:
>   - start_addr and size are both 0, or
>   - size is equal to 2^XLEN-1.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Acked-by: Jan Beulich <jbeulich@suse.com>
with perhaps a similar on-commit edit as suggested for patch 1.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 13:55:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 13:55:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069420.1433277 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uivfS-0006zP-HK; Mon, 04 Aug 2025 13:55:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069420.1433277; Mon, 04 Aug 2025 13:55: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 1uivfS-0006zG-Dz; Mon, 04 Aug 2025 13:55:58 +0000
Received: by outflank-mailman (input) for mailman id 1069420;
 Mon, 04 Aug 2025 13:55:57 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=OEzl=2Q=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1uivfR-0006ys-DF
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 13:55:57 +0000
Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com
 [2a00:1450:4864:20::434])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id be6763ab-713a-11f0-a321-13f23c93f187;
 Mon, 04 Aug 2025 15:55:56 +0200 (CEST)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-3b78d729bb8so2875853f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 06:55:56 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-458953cfd10sm222481905e9.21.2025.08.04.06.55.55
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 04 Aug 2025 06:55: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>
X-Inumbo-ID: be6763ab-713a-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754315756; x=1754920556; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=fsI3gFn30N/s06axQ4heKlfLhQn0gveUpkn83xDaLI0=;
        b=dPkS0k4ugv1VN+H/9GBIrjG6NCLcs5q2hVdgeH5UZ3ortI7TqI/ZShdwbYPKMooEwy
         DZPqDMHLwu/TLO8i9XMu+oxz9z6ND/WBmJrdIxKWrWCCYilXDZa3gSxMrpSnJgUXYaRJ
         DDDnrAb5pV0719TNUh1H0V3TCQ5alCgFcmGnk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754315756; x=1754920556;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=fsI3gFn30N/s06axQ4heKlfLhQn0gveUpkn83xDaLI0=;
        b=bMhKnDvJAS51+cbpxs1WJF+DAhGplGjT/UvlqZgAjnnVE0ipyjQzzC2wCMeZZO3ZB6
         7A7EPB3hbqySy7YXaOtUVPK6vjOOQwvJn5RhkCevpUV8eL3vDqgQKlVWo1XpK87JPgu0
         UQ1XGx9rtcURtRvZpFWQMu/1+jsdHzAM5MsYIDhrJU66H7W+1+DxukdOCLCF8iepP20i
         Dn3/JYKUo8vSe/I0BW/8KaKBNln/8sDu17fGlqmi4pJfcs6r4ZNO0QTUKA/wBiAKqRdT
         5OsH6UDLLt/N5gJYOiKrZPYONc6twZWWE0Sq3M9iCAEJK7TTcAoJjaSezXdwbwLkdqcU
         j6pg==
X-Gm-Message-State: AOJu0Yy67pD7oEt/V/v7PyviqKrygqRXMkBiX7wbBMORyf6IOe4vW6f6
	2G7f9WOoop0a58yuuDgT2ZBuP8kc/YkdmDX8loC0AezS+Yq3jDcppCJ+7NpiajqmOW0=
X-Gm-Gg: ASbGncv8NzIycVMpMQD3KM9ht0R7P56qW8V9wgeBW5e/IFegd0HR+U34vQBWOjAqux1
	67ks/I4lRhp1oSRbUpPgAjz3VgNWE3175Nd0ji6wrbp08/qUc0SdXyyAyEh3p8NRysaHSmwOq/R
	u6rDBUcqf4QY4oMkw3Ur0i2ZsPYK7wbeuM8qHALtVo5rNIAjk2Kq+Jv/sdY6rrMRQ66R0X5mylo
	I7wKJ1tQKPG8JQC9Xemcuw7Wwdrt0An2UtQjuOmzs9fH8uXtucM6bDktiIyzA1LaAq+rKWN+A2L
	QKVm4IpQ/SalQayXAx98kYI2haSW0sTkDPxsrEt6RiL2s7xpqFgcG7YfLdQCznvTI2AiwySp+EX
	UPp9YHwVdWkjlzoCxLI+s9bHS2Zk3RlV7yBHEFpfMXjPLg1XjqA7u77YUAFnmrc2NypJBY4f/1k
	fi
X-Google-Smtp-Source: AGHT+IEn+3uWNjTtUCcggdKwlvKJZOdQh/qZ63hFIt0q/8twa97oI/n10Ogs/fDgjZLQJYokAp8GfQ==
X-Received: by 2002:a05:6000:26ca:b0:3b7:dd87:d73f with SMTP id ffacd0b85a97d-3b8d94c6708mr7064860f8f.43.1754315755964;
        Mon, 04 Aug 2025 06:55:55 -0700 (PDT)
Date: Mon, 4 Aug 2025 15:55:54 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Stewart Hildebrand <stewart.hildebrand@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>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v2 1/3] vpci: allow queueing of mapping operations
Message-ID: <aJC76twnBXNQnA3d@macbook.local>
References: <20250723163744.13095-1-stewart.hildebrand@amd.com>
 <20250723163744.13095-2-stewart.hildebrand@amd.com>
 <aIJi8E2BC-dzAIz8@macbook.local>
 <aIM5IR-d4_u19JVe@macbook.local>
 <6d5545a2-bbf0-4cf9-9820-5eaf6d8530f8@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <6d5545a2-bbf0-4cf9-9820-5eaf6d8530f8@amd.com>

On Fri, Aug 01, 2025 at 05:06:32PM -0400, Stewart Hildebrand wrote:
> On 7/25/25 03:58, Roger Pau MonnÃ© wrote:
> > On Thu, Jul 24, 2025 at 06:44:32PM +0200, Roger Pau MonnÃ© wrote:
> >> On Wed, Jul 23, 2025 at 12:37:41PM -0400, Stewart Hildebrand wrote:
> >>> @@ -283,7 +297,48 @@ static int __init apply_map(struct domain *d, const struct pci_dev *pdev,
> >>>      return rc;
> >>>  }
> >>>  
> >>> -static void defer_map(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
> >>> +static struct vpci_map_task *alloc_map_task(const struct pci_dev *pdev,
> >>> +                                            uint16_t cmd, bool rom_only)
> >>> +{
> >>> +    struct vpci_map_task *task = xzalloc(struct vpci_map_task);
> >>
> >> xvzalloc() preferably.
> >>
> >> This however introduces run-time allocations as a result of guest
> >> actions, which is not ideal IMO.  It would be preferable to do those
> >> allocations as part of the header initialization, and re-use them.
> > 
> > I've been thinking over this, as I've realized that while commenting
> > on it, I didn't provide any alternatives.
> > 
> > The usage of rangesets to figure out the regions to map is already not
> > optimal, as adding/removing from a rangeset can lead to memory
> > allocations.  It would be good if we could create rangesets with a
> > pre-allocated number of ranges (iow: a pool of struct ranges), but
> > that's for another patchset.  I think Jan already commented on this
> > aspect long time ago.
> 
> +1
> 
> > I'm considering whether to allocate the deferred mapping structures
> > per-vCPU instead of per-device.  That would for example mean moving
> > the current vpci_bar->mem rangeset so it's allocated in vpci_vcpu
> > struct instead.  The point would be to not have the rangesets per
> > device (because there can be a lot of devices, specially for the
> > hardware domain), but instead have those per-vCPU.  This should work
> > because a vCPU can only queue a single vPCI operation, from a single
> > device.
> > 
> > It should then be possible to allocate the deferred mapping structures
> > at vCPU creation.  I also ponder if we really need a linked list to
> > queue them; AFAIK there can only ever be an unmapping and a mapping
> > operation pending (so 2 operations at most).  Hence we could use a
> > more "fixed" structure like an array.  For example in struct vpci_vcpu
> > you could introduce a struct vpci_map_task task[2] field?
> > 
> > Sorry, I know this is not a minor change to request.  It shouldn't
> > change the overall logic much, but it would inevitably affect the
> > code.  Let me know what you think.
> 
> Thanks for the feedback and suggestion. Yeah, I'll give this a try.
> Here's roughly what I'm thinking so far. I'll keep playing with it.
> 
> diff --git a/xen/common/domain.c b/xen/common/domain.c
> index 5241a1629eeb..942c9fe7d364 100644
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -387,6 +387,16 @@ static int vmtrace_alloc_buffer(struct vcpu *v)
>   */
>  static int vcpu_teardown(struct vcpu *v)
>  {
> +#ifdef CONFIG_HAS_VPCI
> +    for ( unsigned int i = 0; i < ARRAY_SIZE(v->vpci.task); i++ )
> +    {
> +        struct vpci_map_task *task = &v->vpci.task[i];
> +
> +        for ( unsigned int j = 0; j < ARRAY_SIZE(task->bars); j++ )
> +            rangeset_destroy(task->bars[j].mem);

You might want to additionally do:

task->bars[j].mem = NULL;

> +    }
> +#endif
> +
>      vmtrace_free_buffer(v);
>  
>      return 0;
> @@ -467,6 +477,26 @@ struct vcpu *vcpu_create(struct domain *d, unsigned int vcpu_id)
>          d->vcpu[prev_id]->next_in_list = v;
>      }
>  
> +#ifdef CONFIG_HAS_VPCI
> +    for ( unsigned int i = 0; i < ARRAY_SIZE(v->vpci.task); i++ )
> +    {
> +        struct vpci_map_task *task = &v->vpci.task[i];
> +
> +        for ( unsigned int j = 0; j < ARRAY_SIZE(task->bars); j++ )
> +        {
> +            struct vpci_bar_map *bar = &task->bars[j];
> +            char str[32];
> +
> +            snprintf(str, sizeof(str), "PCI map vcpu %u task %u BAR %u", vcpu_id, i, j);
> +
> +            bar->mem = rangeset_new(v->domain, str, RANGESETF_no_print);

Not sure there's much point in naming those with that much detail -
those are scratch space for mapping calculations.  You already pass
RANGESETF_no_print, which means the contents of the rangeset won't be
dumped, and hence the name is kind of meaningless.  I shouldn't have
named those either when allocated in bar_add_rangeset().

> +
> +            if ( !bar->mem )
> +                goto fail_sched;
> +        }
> +    }
> +#endif
> +
>      /* Must be called after making new vcpu visible to for_each_vcpu(). */
>      vcpu_check_shutdown(v);
>  
> diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
> index 17cfecb0aabf..afe78b00ffc9 100644
> --- a/xen/include/xen/vpci.h
> +++ b/xen/include/xen/vpci.h
> @@ -116,7 +116,6 @@ struct vpci {
>              uint64_t guest_addr;
>              uint64_t size;
>              uint64_t resizable_sizes;
> -            struct rangeset *mem;
>              enum {
>                  VPCI_BAR_EMPTY,
>                  VPCI_BAR_IO,
> @@ -207,14 +206,23 @@ struct vpci {
>  #endif
>  };
>  
> +#ifdef __XEN__
>  struct vpci_vcpu {
>      /* Per-vcpu structure to store state while {un}mapping of PCI BARs. */
>      const struct pci_dev *pdev;
> -    uint16_t cmd;
> -    bool rom_only : 1;
> +    struct domain *domain;
> +    unsigned int nr_pending_ops;

Not sure you really need a pending ops counter?  Hard to tell without
seeing the code that makes use of it.

> +    struct vpci_map_task {
> +        struct vpci_bar_map {
> +            uint64_t addr;
> +            uint64_t guest_addr;
> +            struct rangeset *mem;
> +        } bars[PCI_HEADER_NORMAL_NR_BARS + 1];
> +        uint16_t cmd;
> +        bool rom_only : 1;
> +    } task[2];

Don't you need a way to differentiate between map/unmap operations?
Do you plan to use slot 0 as unmap and slot 1 as map?  Or would you
rather introduce a boolean field to signal it in struct vpci_map_task?

Overall seems OK, but obviously it all needs to fit together with the
current code :).

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 13:57:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 13:57:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069434.1433288 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uivgt-0007mL-Qv; Mon, 04 Aug 2025 13:57:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069434.1433288; Mon, 04 Aug 2025 13:57: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 1uivgt-0007mE-OE; Mon, 04 Aug 2025 13:57:27 +0000
Received: by outflank-mailman (input) for mailman id 1069434;
 Mon, 04 Aug 2025 13:57:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=c2vN=2Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uivgt-0007m8-6R
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 13:57:27 +0000
Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com
 [2a00:1450:4864:20::62f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f3d937f7-713a-11f0-a321-13f23c93f187;
 Mon, 04 Aug 2025 15:57:26 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-af95525bac4so359601366b.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 06:57: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
 a640c23a62f3a-af91a21c0f4sm726279766b.106.2025.08.04.06.57.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Aug 2025 06:57: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>
X-Inumbo-ID: f3d937f7-713a-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754315846; x=1754920646; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=eFAalWm0d5rltBK28JG41YzeiUOfA922D0o2OrM0abY=;
        b=K/18JBzuE93fgSmbxf7VDCgmUFmDlqBNv70p4Z7DN26Pv4G9nJV01yOilZAX25Y4fG
         JNGuYglKrm1D1kR9+uk6n7hivsZXpLLuO5vgIUAx0uDq4IALyP2lGVTsH7B1F80Vz+xA
         RkJ5hJ2XI+kfD9hlnrwIDYIom+Y2jcqAcSK+sTGMl/DM5ySsPUu/EzDxXEFtKf4UtFFw
         H89BUOH4oohWcc8UKnNngm/fs09tph5+lInJIuJjLo0eZ6yOqOe1e2r2IiKgWdS83OJa
         r8Ws4b6mxhLshe7EPQ1T/OgFEq7+VVKZRyCpyk83eC6dkTQdxnMI7bH4FG3awxXb8Uh/
         ZGgw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754315846; x=1754920646;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=eFAalWm0d5rltBK28JG41YzeiUOfA922D0o2OrM0abY=;
        b=qesdlmGPcMTjvBUcIpxChy5Ts5skcE2+23VzRX+XeiM53efmVpNMVX3ntHcICPSgcG
         r9x3WypHpybvPjZIy85zHHQc3uIIqnEG+WHHgmKH/ZGcmArQ9Hv11cs3g/MIai28d64c
         pz95OLCf3H7B3ECmeDwvw1dkSXGYvMa/f74ob8rQHlRdKo1cOl2KoASEFo7sardQXUa6
         lDP+Ezm3vc+BnYy3oReMuYcFpR6tCejy/U1mb/kuT10O/+kagfWD5VPI+Nk2WCbI+NlJ
         pyy3LSIDMYNWHG9VXg3DuBGRSE0O+My9zMtEYclJWVrhQRxZDzmXrGl2JYTe4lapfKhz
         pHRQ==
X-Gm-Message-State: AOJu0Yy5A5tV1BxtHPOrdTaBpnUN6J4x5x0N75jnXItM5IVX5QAnrc8G
	nwEcR//rCbp4cOaPeRf0D/bUj9CBd9iOV7JfWq5J2Rkfy6SOUmcRcozq6s9xxDfL7g==
X-Gm-Gg: ASbGncsBqyAGlNqYwbJSJSBk4YJolu3LrT3irfBbrY55Top3uM33lsE33D+w9+eUXNv
	L6tr6kNuCOgn4GXBpddx3iKWtNUiwQeTVWlVUU1gwhDrYzNzOLecvCYYnkmW3HKJWrW9E/mCNd9
	t2KQZ5q5OR1SpNybAJNFbe8y0Ii/VAK3PipMOV6Hpo6YsZSH/vbphOL63//B/Eq8gaAFUp48MZZ
	BlU4fZtMq1XidCd+6Qenheb0Lx7pw1Pw5b/N2aC3Z0MoL+KvFaoSCieXR3fPuhJCf1cxF0Ed5Kl
	8MSZxBtfxh1yLGJQtONmliiMomAekDJPjo0Or+KqEb0yxhhx2sZsma4rf/qe+RyMLSBw/0xu63z
	eeBCOEvkXJXFvCjt9RsDC/Ehcbmn/+ac8mWUmzNzVXK0IAiII6Ce10D17ghnNrXiL37EQXpQfQy
	GqDrW/ivRvJ+ckCLLnsw==
X-Google-Smtp-Source: AGHT+IH4YSADhxenBh8IsSxANv4E/55ihsyJBmDW82MrPRLZ5mYge7Kk43KvgZKYq9hFRdiTK7ID5w==
X-Received: by 2002:a17:907:c13:b0:ae4:85d:76fc with SMTP id a640c23a62f3a-af9401ee918mr1021818466b.30.1754315845529;
        Mon, 04 Aug 2025 06:57:25 -0700 (PDT)
Message-ID: <6b8a8631-14c5-4e57-91f9-22acdf7efa07@suse.com>
Date: Mon, 4 Aug 2025 15:57:24 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/3] vpci: allow queueing of mapping operations
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>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>
References: <20250723163744.13095-1-stewart.hildebrand@amd.com>
 <20250723163744.13095-2-stewart.hildebrand@amd.com>
 <aIJi8E2BC-dzAIz8@macbook.local> <aIM5IR-d4_u19JVe@macbook.local>
 <6d5545a2-bbf0-4cf9-9820-5eaf6d8530f8@amd.com>
 <aJC76twnBXNQnA3d@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: <aJC76twnBXNQnA3d@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.08.2025 15:55, Roger Pau MonnÃ© wrote:
> On Fri, Aug 01, 2025 at 05:06:32PM -0400, Stewart Hildebrand wrote:
>> On 7/25/25 03:58, Roger Pau MonnÃ© wrote:
>>> On Thu, Jul 24, 2025 at 06:44:32PM +0200, Roger Pau MonnÃ© wrote:
>>>> On Wed, Jul 23, 2025 at 12:37:41PM -0400, Stewart Hildebrand wrote:
>>>>> @@ -283,7 +297,48 @@ static int __init apply_map(struct domain *d, const struct pci_dev *pdev,
>>>>>      return rc;
>>>>>  }
>>>>>  
>>>>> -static void defer_map(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
>>>>> +static struct vpci_map_task *alloc_map_task(const struct pci_dev *pdev,
>>>>> +                                            uint16_t cmd, bool rom_only)
>>>>> +{
>>>>> +    struct vpci_map_task *task = xzalloc(struct vpci_map_task);
>>>>
>>>> xvzalloc() preferably.
>>>>
>>>> This however introduces run-time allocations as a result of guest
>>>> actions, which is not ideal IMO.  It would be preferable to do those
>>>> allocations as part of the header initialization, and re-use them.
>>>
>>> I've been thinking over this, as I've realized that while commenting
>>> on it, I didn't provide any alternatives.
>>>
>>> The usage of rangesets to figure out the regions to map is already not
>>> optimal, as adding/removing from a rangeset can lead to memory
>>> allocations.  It would be good if we could create rangesets with a
>>> pre-allocated number of ranges (iow: a pool of struct ranges), but
>>> that's for another patchset.  I think Jan already commented on this
>>> aspect long time ago.
>>
>> +1
>>
>>> I'm considering whether to allocate the deferred mapping structures
>>> per-vCPU instead of per-device.  That would for example mean moving
>>> the current vpci_bar->mem rangeset so it's allocated in vpci_vcpu
>>> struct instead.  The point would be to not have the rangesets per
>>> device (because there can be a lot of devices, specially for the
>>> hardware domain), but instead have those per-vCPU.  This should work
>>> because a vCPU can only queue a single vPCI operation, from a single
>>> device.
>>>
>>> It should then be possible to allocate the deferred mapping structures
>>> at vCPU creation.  I also ponder if we really need a linked list to
>>> queue them; AFAIK there can only ever be an unmapping and a mapping
>>> operation pending (so 2 operations at most).  Hence we could use a
>>> more "fixed" structure like an array.  For example in struct vpci_vcpu
>>> you could introduce a struct vpci_map_task task[2] field?
>>>
>>> Sorry, I know this is not a minor change to request.  It shouldn't
>>> change the overall logic much, but it would inevitably affect the
>>> code.  Let me know what you think.
>>
>> Thanks for the feedback and suggestion. Yeah, I'll give this a try.
>> Here's roughly what I'm thinking so far. I'll keep playing with it.
>>
>> diff --git a/xen/common/domain.c b/xen/common/domain.c
>> index 5241a1629eeb..942c9fe7d364 100644
>> --- a/xen/common/domain.c
>> +++ b/xen/common/domain.c
>> @@ -387,6 +387,16 @@ static int vmtrace_alloc_buffer(struct vcpu *v)
>>   */
>>  static int vcpu_teardown(struct vcpu *v)
>>  {
>> +#ifdef CONFIG_HAS_VPCI
>> +    for ( unsigned int i = 0; i < ARRAY_SIZE(v->vpci.task); i++ )
>> +    {
>> +        struct vpci_map_task *task = &v->vpci.task[i];
>> +
>> +        for ( unsigned int j = 0; j < ARRAY_SIZE(task->bars); j++ )
>> +            rangeset_destroy(task->bars[j].mem);
> 
> You might want to additionally do:
> 
> task->bars[j].mem = NULL;

Should we perhaps introduce RANGESET_DESTROY() along the lines of XFREE() et al?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 14:04:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 14:04:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069448.1433298 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uivnj-0001TK-Lc; Mon, 04 Aug 2025 14:04:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069448.1433298; Mon, 04 Aug 2025 14:04: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 1uivnj-0001TB-Hk; Mon, 04 Aug 2025 14:04:31 +0000
Received: by outflank-mailman (input) for mailman id 1069448;
 Mon, 04 Aug 2025 14:04:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YK6J=2Q=epam.com=Oleksii_Moisieiev@srs-se1.protection.inumbo.net>)
 id 1uivni-0001T5-7e
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 14:04:30 +0000
Received: from GVXPR05CU001.outbound.protection.outlook.com
 (mail-swedencentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c202::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ed0436b0-713b-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 16:04:24 +0200 (CEST)
Received: from DU0PR03MB8934.eurprd03.prod.outlook.com (2603:10a6:10:473::15)
 by DB9PR03MB9757.eurprd03.prod.outlook.com (2603:10a6:10:452::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.13; Mon, 4 Aug
 2025 14:04:21 +0000
Received: from DU0PR03MB8934.eurprd03.prod.outlook.com
 ([fe80::26fd:98f2:a1cc:be40]) by DU0PR03MB8934.eurprd03.prod.outlook.com
 ([fe80::26fd:98f2:a1cc:be40%7]) with mapi id 15.20.8989.018; Mon, 4 Aug 2025
 14:04: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>
X-Inumbo-ID: ed0436b0-713b-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YIQG6JtOMuN8liyCgsZDg5tr7V/M+LQiDFdoSsBQr1KmrdXcsJ1H7lnjB9yprpMRpdyfthQiNgQNnZiF7mwjjLXLVhO7dreS1JD24wHiFDB6bYB5fQihXLBQD7Q3telfwHDyWx7GwY28u3CycrlytgkXS5UD5csNUb5p986fF9Mnrt9cNqMsVv4AdJLHXvyPWlDQ1XXc73QDN58cUl8X3US4lr3Lzml84pmgkMKo2lF6S5OcGh3NhY3lJ3+AycEoewIbqWnHFpBsOOh9FB8FGbtKdApl9iQ7HPoM04GNIktXzNG+EoEpGnjDlCMCcuqMg+3jfXh9UbOu2QwHJ8FCzw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=9vu6MddREgGAtSNktMQMMOvj4GGfmyBeAArmHW3YLlE=;
 b=dqt9Z7LZcgoTG+FMv4FXJpc+GFPLiotl5AjEVfpz28jf/Pyhq1+uUc/Slu/xWIzRoqQI9Z6JybyknOmtTFHraFQft3ETOF4OqlOdbI1iQT0kXwne7vmtu1Cj9SI9b1Y4F+FjcA3h3l99qUKBBiwowRGGOYzzAAvTGxxjCTP2HWDdM/tb22xD8vsl0alK/KKn6QNaFrMkiYbF9iMgjlAx7v/qrCmGYneY5Rg9k/5WI/wY4I8iMmmCfWgcZAfLPU2+BGMoNDkwWZJbcLPX46c0+kzxuXyv16My6x35/qap4p0NoROP07ydH0WF9c2/YImEYsBGqE2NyITJ2Tnn1WFnRw==
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=9vu6MddREgGAtSNktMQMMOvj4GGfmyBeAArmHW3YLlE=;
 b=qaZoGCZIWwnC2xZp+ZFOjBr2sNuLLGOzWmPs+hpnSTVZ4SVBwBAMF3yZ78ud8rDGQ5WT4+CI5+xbxMJOAXAwfFJbkxvaM/gpcuJGEBKMNxJT/dILFXuCSu5c4oDiP7hmDr9DPm+zP6v2lAVeCgX/tZi8rxi3ZDnBVt2PMlegTDiryYvQxRxmur2WWxTjsrYgZzoVAz2hL0iFZM1BsIYPaI1/+sZyw81f9blc8pDbIqVXJiH0kVRNcuH51xLFab6MJnifn5lp1UM8m92lyAaVpH49tIxNkJd3j1ezCaQmeQcPAikFwn940RBKrqyHIaGuEQ1leItpymwofvxJk5TpZg==
From: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
To: "dmkhn@proton.me" <dmkhn@proton.me>, Jan Beulich <jbeulich@suse.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>
Subject: Re: [PATCH v2] xen/arm, xen/common: Add Kconfig option to control
 Dom0 boot
Thread-Topic: [PATCH v2] xen/arm, xen/common: Add Kconfig option to control
 Dom0 boot
Thread-Index: AQHb/+IacHiE2y5puk2LQertSkS3OrRIDWwAgAC2NwCAAOeoAIAI5joA
Date: Mon, 4 Aug 2025 14:04:20 +0000
Message-ID: <63781514-eef6-46c8-992f-56bde2f07e82@epam.com>
References:
 <90e79e175b5f703f33944415df3c7a73d6abc385.1753722403.git.oleksii_moisieiev@epam.com>
 <aIfrhfoaEBx2tyM3@kraken> <182d2b92-ba93-4916-a277-d7996b784fa2@suse.com>
 <aIlGtLz4ZxNwE/gO@kraken>
In-Reply-To: <aIlGtLz4ZxNwE/gO@kraken>
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: DU0PR03MB8934:EE_|DB9PR03MB9757:EE_
x-ms-office365-filtering-correlation-id: d21f964a-be22-450f-5795-08ddd35fcf2c
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|376014|7416014|1800799024|7053199007|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?QzcwS0FZdERmUnFUcUI4RlhobnZlR1JSS2RZVGJrT1ZlTUZXVjhpRko3U2Fs?=
 =?utf-8?B?cUJ2S0RzNjM4TmdOOE1BZ2NaR1hSYzI0cVBmMTdCcThRUXhyVytvQkl5VVB1?=
 =?utf-8?B?UnIrU1ZGdXlkUzFxN3JNd2ovdWxKMnFrUmRLOXRpbzM4d1UzSEtrNXRxZGhx?=
 =?utf-8?B?WExKejlpZkt6UUpTSjN6SDA0ei8wOW04VXRxR3MvcFFLV0lXSlFvOG1qNldF?=
 =?utf-8?B?TmMvRzRBbngrRjRTbE1YNnlUWmRzTktjUjZLQVB3a29oOVZPcVEwSEJBa1Bk?=
 =?utf-8?B?RTUzNGZXNDhCWFg3V2xNellrUmE0K2lMdlFoUmdZb2Noczh5cjY4TXpFbGNw?=
 =?utf-8?B?aFJqRHhXMDVyNDI3M0tjVld5MlJFenVHQWdtemhFSWljK3BMdFpsNkJzbDY1?=
 =?utf-8?B?T3hPSFNvR2tNak95ay9nalhzVnZTRHFES2gzdEhFelFBbGRUbGU2bTFKN0Ur?=
 =?utf-8?B?L1hOWnFhdkJKaU0rL0tlUldOSHJYTW1uUnNXTzZydXVZVVI2ZWowQnJHTU1s?=
 =?utf-8?B?SkNMVldTU3ZVdWFzem5mVHcrdG1rU1BoQ3dIaUY0cC9tc2ZJSG9DakZRT2Nu?=
 =?utf-8?B?V2FhUFNvTGZ0UG1CNCthZFlsT3U4amNGVFB2ZEY0SGVtRVplbnNNT0s3d05n?=
 =?utf-8?B?Yll2T2podDNRWFJXWGZ0Uy9pTlRrSnRsL2dSWllDandSWlpMRjdsUjNXRGxi?=
 =?utf-8?B?YU1RUGN4N0pRSGZ5bWNEQUdaWTZUa1crK1lLbE1YeUhackVBaWRuQitmcC9F?=
 =?utf-8?B?eS9Sa1hrWjRwZk8zdndmdGlYaGo4YjhuemlTbTBjNnVuR3pnWXBYSjB3Ni9M?=
 =?utf-8?B?c3dRUmtmRmVPSjBxeGVmb3BtTXgrMFJTckp2RjJ0SzNXSUV2OVJOSURnbmdD?=
 =?utf-8?B?cFVvZy8wOEZiYVVMVC9FZTlFNDdWSjZRdlY5ZWhBUTUyUzh5ZUxLY0ZIMVRH?=
 =?utf-8?B?NnFQcWdwYm1zYTNlTmdVTXN6dDA3NFJwYU02TU93c3ZLUWhBK1o4TkpaaFdV?=
 =?utf-8?B?SXUvcklaNy9VYldINlhrZUQ4S3E2Qzd2eDh4VWx2RG5PeTY4bDNTY1BkRk56?=
 =?utf-8?B?cUtRd0lpZ0ZocVhmMWxZZnVsc1RsbDhUNkp5bmFpZ2piWXdHMjlMTXNpZ0s2?=
 =?utf-8?B?NHQxbm5HMXJyV2hGV3ZHSC9GUkkrU2FSU1BoRytsQTRnNmU4SUxpZC9LUzh6?=
 =?utf-8?B?aFRFd1Y2ZTFweUtoSzZrWjlJdDVOMU1nRmpyR3g5S0Znd0xuNVl1UEtKZTJX?=
 =?utf-8?B?MTdKb29CMDNKeWJNcDc0SlY5bGRVcGNINkVKQzhuL0U3V1lBYklhQ1VJbWFJ?=
 =?utf-8?B?VTJPL1lxWVpxeFZaOHZ3RDFKeHdSYS90UE9oeXhtbmU3ejkraEhKQkx6aHBx?=
 =?utf-8?B?Z3cwcEhFNGVJVzFoUWw5SncxeFVTRHFDNXY3dHdkYXBhRnFTdHJ0NDJDTjVO?=
 =?utf-8?B?eXBTZlVRd1hGTFNTUUJWWlAxRVU3czVmQnUzeTNWQXNUS2gwWUZPeDRzVVhS?=
 =?utf-8?B?VUNvNmk5elBjV1puYTQzWWIwU0VVaHdpblJ1Ny9uMndXbVB6NUtiRlR4Mzg1?=
 =?utf-8?B?aTBucENaNlFiOW1xQzJWc3lpTTcrVng2NGIvS0J0dHF4a0hsRyttMVp5amRU?=
 =?utf-8?B?am81a2NGellDZEtSc1c3UkM0YWFtVEcxMUdjNkJkeGdJdkdxS2RPSTNiUUNt?=
 =?utf-8?B?azd3WkRKVDFhUDJzamZCT1RpUG1pOG1KR2hMZHFhb1RTaWlPNUVNS2dERTFr?=
 =?utf-8?B?ZFBGSG5MYU14S0VFWUhHam9aQUJyK1QxbUQvYTMyZTFWN0UrSVU1WEVvZlFh?=
 =?utf-8?B?d1Jzek5uU0JRSnRaRVNzSStzU0xjVkRXcXZLSHYwQS9IUTV0aldiTzQ5R2J2?=
 =?utf-8?B?VkpWSnFXa3ZHUmoyTW80ZWljNkp5dU8xOWZDbStNY3Z4QmJoSi94cE1yaGpF?=
 =?utf-8?B?aURXSUhOa21CVXEwSTJJdFJiTi96Qm55d0lGMy9QZ0lTZ2hrWjRiVWQ5VkRY?=
 =?utf-8?B?aFVLODRocS9nPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR03MB8934.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024)(7053199007)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?K1A4VnpDaEdFSUUvQUZCVFBJNXdTSjExeWhWd2VGd204aDdIOTNDQkZycnNC?=
 =?utf-8?B?RXA0ZkQ3RGZjWC9uSTA4MVE1Vnk5T2w2NHRMRnNUOGxTNGhJdmN4RGtrbTEv?=
 =?utf-8?B?OHFIMGcwMU9YMGZuUWh0RXFFbFBtNkRKK0hldlJXUzVhTEFnYms2SWZCSjlv?=
 =?utf-8?B?UGh5M1RSY1VTeVpySElUUytVZURTODJGS3MyVXBDWWxNczRmSE1qZUVIdkti?=
 =?utf-8?B?d1E5L2dJeWxRVmlVeTdKWGVwd0ZyaGVYVmdqRWdWNFltUlMvWFZjUHFuZ0hE?=
 =?utf-8?B?MnZSYXg3d2RLVHM0cXRFdVBSUURtdFNDemw0bXlGNktpOFkzdUlvVnJwMk5k?=
 =?utf-8?B?K2JuUCtiV2R0YmhoWjVScEZIUDNwaWNDLzlyMkFkNkNDMnExNlVOU1hYTmpH?=
 =?utf-8?B?VDhGSENuTnFEUml0UlMwU0NxdzRLNWJJSk5PZHU4eWlsNG1ENGFnRjhsclB1?=
 =?utf-8?B?eis2MUE1cDlOT0JVZTlZMHl4MWVaSitCZmhidkpVc2p1a2lYUHR3Rno3TFFy?=
 =?utf-8?B?WTkvTjNPbmJraWpmUFY4MUdVdEoyenF4aXh0MmtWZXpHT3FydkhSaGsvbStK?=
 =?utf-8?B?SDVzUy9HaWdtcVFJS0ptN09HVVBtU29ieGt2MTl2Z0orMEhwdHJibEoveXNh?=
 =?utf-8?B?NWpmNHJuNDZXY3BZOUp3MlRVK1lrcHp0anRVaHFVdkhiNnFDSXlkSDl2OXJM?=
 =?utf-8?B?K2R1T2VmMVNUVnVrTFdiL0xTWjVCZzcwMEp1aHhqQmhWNXoyUnZjMFB3TE1D?=
 =?utf-8?B?Rzh2VU91TjY0ekU1a2dyWVVNYXZXQUpwb0lCeGRScWZBYlBlNUhxbDQ1dzBt?=
 =?utf-8?B?YjRrQ3Bqa1A0eTRmMVlHRjh0S0xOekhHNWJUcENVRXVLZmNPNnpaQkdZVm5z?=
 =?utf-8?B?UkpRSURTV2VXV05kaFFGb0dCOGs3bEF1TElXZHpIU20rZzE1R1JjbnFReXNV?=
 =?utf-8?B?OUdZR0diNERQUWljZ1o5TFk5VmdVdmNjUXJYbFpSc1BTZ3h4Vk1WT3E2aE1h?=
 =?utf-8?B?N1A4NHI3eG15MXFlbTVrYW1nUE5pQXlVcWxBN0lsTDJHb2E3TDNnbUJGWXhp?=
 =?utf-8?B?U3pXYzBnNG9VVHZjSERrM0N4WHorMUZZVFBoamhiSUZkTXFKU0hyc3dpTkxX?=
 =?utf-8?B?VVBKeHFpbnd3M3EvaFU2N0EvWnBMVFBWRVl3R0NTL1ZGbXJ2ZDhGbmlRdmw0?=
 =?utf-8?B?RXhjMmk3THRHSER1SzBORmhjcTV0RGl1NDVGMU5aMktHeDlwRDlMS0xxc1kv?=
 =?utf-8?B?QURhemVXNk1pQXRCNnhYb0liblFyaHI1TkdSWEZXdml5VlNjWEs2MUxEZGtt?=
 =?utf-8?B?UUlsVUozVDc0WGF0ampNaGw3Z3JNNDlhUlNQTnk0M3I0OG1IVlRwYVVoTENV?=
 =?utf-8?B?MVpVWmFWVXppekEwdnkveVFsMWlOTXdRY0htQmkwZXFKNUpHMzB5NlFtZUdU?=
 =?utf-8?B?TWZoQlpxMCtTT0tOR3huclJuTFVhN2t4SGd0V2EwS3F4S1pCa2pDSDEwNnZP?=
 =?utf-8?B?OG91a3gybXBzTXFwR0VnWlJXMzNLejlWbEh3TjYrYStsNkg0WmI4MVoxNEda?=
 =?utf-8?B?dVRZQmp0eHM4cWE4YTVnWVNHb0VpWUJnNkk5TFZseUZ4MGxrbU52a3VPTklh?=
 =?utf-8?B?WTEwTDRuQWhuaUNMaTNVdlplMC9uSTlKUkIzSXovc1B6bkl6RUZRNXN5NG9Y?=
 =?utf-8?B?ejNYUmNzODE0WTNPRUJacXk2d0lLQmo2Vzhad0dYZFI2dStlYmJzNnI5RVJZ?=
 =?utf-8?B?WFRYS3VuWFgzUWtUM0lxWUR4YkMrL01rcUdma1JHMjNlQTNqeHkwNkx3VTlT?=
 =?utf-8?B?K1F2UzkzdlEwWXFvajljemJyVkx5Q241QmFzZlRzZloyNUx1RWZCcmlIVjRy?=
 =?utf-8?B?dmxSZDVvamJoNzJaaWhuRHdicHU0RG9YWnhDL1E0UkJ4N3VRQVJoK2xpQmlU?=
 =?utf-8?B?TldOc0dHb1pENDVpQlFmRXRLM0RzYXB0VzlXYnhHblBsTnNFakpTaS93THVu?=
 =?utf-8?B?WnZVUngxWFZzOGd0SUdLV3VoYkVieUIwdkVmTStQdEp1Q2xxaHBTdENDdlhZ?=
 =?utf-8?B?VVllTFJBRXFua3lkT1dJL0drOTRaWHA5Snd2ak1CWDB0YkFXdzRCUmhBUnhU?=
 =?utf-8?B?dmIrUzlTdEFvaFl5R0FOQm1ZTXI4WmlnTkNqSzZ2R05ML0hnWG1UYkk3Q2lQ?=
 =?utf-8?B?cXc9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <BF514D3A2BBD1943BFD5A4DD12617CF2@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: DU0PR03MB8934.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d21f964a-be22-450f-5795-08ddd35fcf2c
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Aug 2025 14:04:20.7392
 (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: IXME0W+u8GhTVCcYpHt7iydBaod12AZCcenEeUNFWU7KzNMzyXNN+phP+7/wo/HwhVZmANwY8etfz1xYfKILnCeP6nqiLg8cjVcPcwMujZg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB9757

DQoNCk9uIDMwLzA3LzIwMjUgMDE6MTAsIGRta2huQHByb3Rvbi5tZSB3cm90ZToNCj4gT24gVHVl
LCBKdWwgMjksIDIwMjUgYXQgMTA6MjA6NTRBTSArMDIwMCwgSmFuIEJldWxpY2ggd3JvdGU6DQo+
PiBPbiAyOC4wNy4yMDI1IDIzOjI4LCBkbWtobkBwcm90b24ubWUgd3JvdGU6DQo+Pj4gT24gTW9u
LCBKdWwgMjgsIDIwMjUgYXQgMDU6MDc6MzBQTSArMDAwMCwgT2xla3NpaSBNb2lzaWVpZXYgd3Jv
dGU6DQo+Pj4+IFRoaXMgY29tbWl0IGludHJvZHVjZXMgYSBuZXcgS2NvbmZpZyBvcHRpb24sIGBD
T05GSUdfRE9NMF9CT09UYCwgdG8NCj4+Pj4gYWxsb3cgZm9yIGJ1aWxkaW5nIFhlbiB3aXRob3V0
IHN1cHBvcnQgZm9yIGJvb3RpbmcgYSByZWd1bGFyIGRvbWFpbiAoRG9tMCkuDQo+Pj4+IFRoaXMg
ZnVuY3Rpb25hbGl0eSBpcyBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIHRoZSBBUk0gYXJjaGl0ZWN0
dXJlLg0KPj4+Pg0KPj4+PiBBIG5ldyBLY29uZmlnIHN5bWJvbCwgYEhBU19ET00wYCwgaGFzIGJl
ZW4gYWRkZWQgYW5kIGlzIHNlbGVjdGVkIGJ5DQo+Pj4+IGRlZmF1bHQgZm9yIEFSTSBhbmQgWDg2
IGFyY2hpdGVjdHVyZS4gVGhpcyBzeW1ib2wgc2lnbmlmaWVzIHRoYXQgYW4NCj4+Pj4gYXJjaGl0
ZWN0dXJlIGhhcyB0aGUgY2FwYWJpbGl0eSB0byBzdXBwb3J0IGEgRG9tMC4NCj4+Pj4NCj4+Pj4g
VGhlIGBET00wX0JPT1RgIG9wdGlvbiBkZXBlbmRzIG9uIGBIQVNfRE9NMGAgYW5kIGRlZmF1bHRz
IHRvICd5Jy4gRm9yDQo+Pj4+IGV4cGVydCB1c2VycywgdGhpcyBvcHRpb24gY2FuIGJlIGRpc2Fi
bGVkIChgQ09ORklHX0VYUEVSVD15YCBhbmQgbm8NCj4+Pj4gYENPTkZJR19ET00wX0JPT1RgIGlu
IHRoZSBjb25maWcpLCB3aGljaCB3aWxsIGNvbXBpbGUgb3V0IHRoZSBEb20wDQo+Pj4+IGNyZWF0
aW9uIGNvZGUgb24gQVJNLiBUaGlzIGlzIHVzZWZ1bCBmb3IgZW1iZWRkZWQgb3IgZG9tMGxlc3Mt
b25seQ0KPj4+PiBzY2VuYXJpb3MgdG8gcmVkdWNlIGJpbmFyeSBzaXplIGFuZCBjb21wbGV4aXR5
Lg0KPj4+Pg0KPj4+PiBUaGUgQVJNIGJvb3QgcGF0aCBoYXMgYmVlbiB1cGRhdGVkIHRvIHBhbmlj
IGlmIGl0IGRldGVjdHMgYSBub24tZG9tMGxlc3MNCj4+Pj4gY29uZmlndXJhdGlvbiB3aGlsZSBg
Q09ORklHX0RPTTBfQk9PVGAgaXMgZGlzYWJsZWQsIHByZXZlbnRpbmcgYW4gaW52YWxpZA0KPj4+
PiBib290Lg0KPj4+Pg0KPj4+PiBTaWduZWQtb2ZmLWJ5OiBPbGVrc2lpIE1vaXNpZWlldiA8b2xl
a3NpaV9tb2lzaWVpZXZAZXBhbS5jb20+DQo+Pj4+DQo+Pj4+IC0tLQ0KPj4+Pg0KPj4+PiAtLS0N
Cj4+Pj4gICB4ZW4vYXJjaC9hcm0vS2NvbmZpZyAgICAgICAgfCAgMSArDQo+Pj4+ICAgeGVuL2Fy
Y2gvYXJtL2RvbWFpbl9idWlsZC5jIHwgIDggKysrKysrKysNCj4+Pj4gICB4ZW4vYXJjaC9hcm0v
c2V0dXAuYyAgICAgICAgfCAxNCArKysrKysrKysrLS0tLQ0KPj4+PiAgIHhlbi9hcmNoL3g4Ni9L
Y29uZmlnICAgICAgICB8ICAxICsNCj4+Pj4gICB4ZW4vY29tbW9uL0tjb25maWcgICAgICAgICAg
fCAxMSArKysrKysrKysrKw0KPj4+PiAgIDUgZmlsZXMgY2hhbmdlZCwgMzEgaW5zZXJ0aW9ucygr
KSwgNCBkZWxldGlvbnMoLSkNCj4+PiBJIHRoaW5rIHRoZXJlIHNob3VsZCBiZSBjaGFuZ2VzIGlu
DQo+Pj4gICAgaW5jbHVkZS94ZW4vZG9tYWluLmgNCj4+PiBhbmQNCj4+PiAgICBhcmNoL2FybS9p
bmNsdWRlL2FzbS9zZXR1cC5oDQo+Pj4gdG8gY29tcGlsZSBvdXQgZGVjbGFyYXRpb25zIG9mIGRv
bTBfbWF4X3ZjcHVzKCkgYW5kIGNyZWF0ZV9kb20wKCkgdW5kZXIgbmV3DQo+Pj4gQ09ORklHX0RP
TTBfQk9PVC4NCj4+IEFkZGluZyAjaWZkZWYtYXJ5IGp1c3QgdG8gaGlkZSBkZWNsYXJhdGlvbnMg
aXMgb2Z0ZW4gbWVyZWx5IGFkZGluZyBjbHV0dGVyLA0KPj4gd2l0aG91dCBwcm92aWRpbmcgYSBj
bGVhciBiZW5lZml0LiBJIGRpZG4ndCBjaGVjayBpbiB0aGlzIGNhc2UsIGJ1dCBJIHRoaW5rDQo+
PiB3aGVuIG1ha2luZyBzdWNoIGEgcmVxdWVzdCB5b3Ugd2FudCB0byBjbGFyaWZ5IHdoYXQgdGhl
IGdhaW5zIHdvdWxkIGJlIG9mDQo+PiBhZGRpbmcgbW9yZSAjaWZkZWYuDQo+IHJlOiBjbHV0dGVy
OiBmdWxseSBhZ3JlZS4NCj4NCj4gSSB3YXMgdGhpbmtpbmcgYWJvdXQgdGhpcyBmb2xsb3dpbmcg
Y29kZSB3aGVyZSBpZmRlZi1lcnkgbWF5IGJlIG5lZWRlZDoNCj4NCj4gKyAgICBpZiAoIElTX0VO
QUJMRUQoQ09ORklHX0RPTTBfQk9PVCkgJiYgIWlzX2RvbTBsZXNzX21vZGUoKSApDQo+ICsgICAg
ew0KPiArICAgICAgICAvKiBDcmVhdGUgaW5pdGlhbCBkb21haW4gMC4gKi8NCj4gICAgICAgICAg
IGNyZWF0ZV9kb20wKCk7DQo+ICsgICAgfQ0KPg0KPiBCdXQgbG9va3MgbGlrZSBjb21waWxlciBp
cyBjb3JyZWN0bHkgdGhyb3dpbmcgYXdheSBjcmVhdGVfZG9tMCgpIGNhbGwuDQpZZXMsIGl0IGlz
LiBJdCBpcyBwcmVmZXJhYmxlIHRvIHVzZSBJU19FTkFCTEVEIGluIGlmIHN0YXRlbWVudHMgd2hl
bmV2ZXIgDQpwb3NzaWJsZS4NCj4+IEphbg0K


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 14:05:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 14:05:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069455.1433308 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uivol-00026p-UK; Mon, 04 Aug 2025 14:05:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069455.1433308; Mon, 04 Aug 2025 14:05: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 1uivol-00026i-R2; Mon, 04 Aug 2025 14:05:35 +0000
Received: by outflank-mailman (input) for mailman id 1069455;
 Mon, 04 Aug 2025 14:05:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YK6J=2Q=epam.com=Oleksii_Moisieiev@srs-se1.protection.inumbo.net>)
 id 1uivok-00026S-Cu
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 14:05:34 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 16342288-713c-11f0-a321-13f23c93f187;
 Mon, 04 Aug 2025 16:05:33 +0200 (CEST)
Received: from DU0PR03MB8934.eurprd03.prod.outlook.com (2603:10a6:10:473::15)
 by DB9PR03MB9757.eurprd03.prod.outlook.com (2603:10a6:10:452::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.13; Mon, 4 Aug
 2025 14:05:30 +0000
Received: from DU0PR03MB8934.eurprd03.prod.outlook.com
 ([fe80::26fd:98f2:a1cc:be40]) by DU0PR03MB8934.eurprd03.prod.outlook.com
 ([fe80::26fd:98f2:a1cc:be40%7]) with mapi id 15.20.8989.018; Mon, 4 Aug 2025
 14:05: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>
X-Inumbo-ID: 16342288-713c-11f0-a321-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yJX86y7O15VdeoAqjzLqUqv+ykvOppDreUO1vQwPRLk/9bXFcE02szUG6AaGFoC/P6V3hyAgAH0waymTswsNYSKzmO5sJo+VUqk7iRWaAh31C6WhVdzU7SSU6LvhB3n5dYZnCtRyg1X5lrgE3P6LsSLTeFgca8fm0ApC7i5UjGa9bSXpOUwnQAqpklmfC/O1lgLnv72ZzzKFDF6DBBsZrSirYs+xkWzeJQPy6lrCCJHLwniM32e/bMJf8Q32EW69Y9cs+SehoJoQF7Gd4DUGtc1C0wOWUMNTHDETN9BMfjKQnuNMNzWzVw9iF1sG1+RyOrqPAXLx/setNPRSaVF7bQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8RhVxxBH7o+C8vn1hh6QJ+PLQ8ZNuEZgESJG6mHsVA4=;
 b=qktHHdUxXO50ZSGHzNIeYCBASFHkzm7m+gt62kYttouQ58c7Y5MxZlPdb1rlfYGSp1g3VO3AbjCKmqqHlwwN1/0G/lorPXJkaKqcNhN1g6y4PvQFf2nqUWkx9EmyE0Nduo+hHQF2YSsumh3FyZgleSzs5pUDdyKVkAYOBYzk3N0frXei0wrCBJS037Z2oUQr0SQt7Q612lMK/GS6e9X2XoTl5+eXUkaa8MymOCmkFmAOnkG2V1BEPckFre/MulJ3VTksDjn492pcaRKwSOkrFjV1SfMvDokF6OSD5J+9fdsNBFoDY2zA8ZCQjofmvDu/UQIJnRERVpZN/K368s+BuQ==
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=8RhVxxBH7o+C8vn1hh6QJ+PLQ8ZNuEZgESJG6mHsVA4=;
 b=dMHWs/dhDvLM2k5KEMDFGQzQIXYrxm/QjuG8Utkk0nAUAynyAPdyD1RwTJbN72T+TdJRUcuHUFfFwHPR3ofr5mfZmOrmAmThr39kQRRIcVEbVEqBpopsGmVfDljq282EjCIo+2/6RcJTjzEsB2ro3XsqAWKcFd5WiRPKf92UMKd88PWkX9/ACtBsTOvICZpb5a3XDgNVx4I/3buJzjIfDhHmIApOMM7dQQ62OHcZtEE+wcBmvXRs6IahVZDMWXkD8LEVWyNTufja/YHajtBcXy8oQpJUoLqDt4yUgCaJK74Za3JLuIz4UaxHZC6zgaC3Fx5byXIN4AwDqCM/p036sA==
From: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
To: "Orzel, Michal" <michal.orzel@amd.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Bertrand Marquis <bertrand.marquis@arm.com>, Jan
 Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>
Subject: Re: [PATCH v2] xen/arm, xen/common: Add Kconfig option to control
 Dom0 boot
Thread-Topic: [PATCH v2] xen/arm, xen/common: Add Kconfig option to control
 Dom0 boot
Thread-Index: AQHb/+IacHiE2y5puk2LQertSkS3OrRIs0MAgAneo4A=
Date: Mon, 4 Aug 2025 14:05:30 +0000
Message-ID: <54971d77-e830-4320-87bc-a775c13b913a@epam.com>
References:
 <90e79e175b5f703f33944415df3c7a73d6abc385.1753722403.git.oleksii_moisieiev@epam.com>
 <ccaf6efb-3372-4fb7-8084-51d23b3fcc21@amd.com>
In-Reply-To: <ccaf6efb-3372-4fb7-8084-51d23b3fcc21@amd.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: DU0PR03MB8934:EE_|DB9PR03MB9757:EE_
x-ms-office365-filtering-correlation-id: 8b983f5e-5fd4-4095-c270-08ddd35ff8a7
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|376014|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?NDdITy9UUFpqZktvekN3T2t3c2VUeWx0c3VGOXgxWGkxN0FJQzRXb2crQTYr?=
 =?utf-8?B?RTdlNkUrdjZjZjlPSTR1RWVzK2p6VTNxOHhWK1dhc2hZODRrTStYczB3aXJC?=
 =?utf-8?B?Y290Ly9hWmtuVW1KS00yVjczOTZRQlpYNXN4N2dMVGFZWWhBWDR4S0hOZnFv?=
 =?utf-8?B?WFF6YVgwbkNxYkNqeTFaY1FkbnJJOHRaaDUwdXBReEEvMWZrdm1TbTB3L0VY?=
 =?utf-8?B?M0tzYm9NWHRVYkVHNTUxSndZWHZONzIyaWZEaEdZQU9UT1FDaFRxTkVHNjhn?=
 =?utf-8?B?OWdaYnpqcTlGQy9tbllzVTVCeTVTblllcjVITFU0M0N2VkFBZFZ4WjhyQkdZ?=
 =?utf-8?B?YkpoZmNadlRlSkdwU3A2anZWT3VKU0Vyb21qamc5TVFtbjVuTjZpNEYrTlpo?=
 =?utf-8?B?bSt5bUxobGp6dll5QXpBN0xrb3FMbVFPQ0V6Z1hQVUE0dk5lK3BjL1lKQkVa?=
 =?utf-8?B?MzA1aTE4QTltcGdJaDhLYVBpNVR3bUpEajZzOEljZXFmNEdJcytxYTlERnBl?=
 =?utf-8?B?eE9UMkN2aUZqQWlQc2cyc1NabzNLM2ZWODZtWDM3SCtVQWhwRFBqc1VBWUVO?=
 =?utf-8?B?c0FsWG5PWDU1ZWpqWk9tcG13L2FSeTRHcjNNbEtySlA5bnpzK2xvcG9xYmJx?=
 =?utf-8?B?ZUZRVHJKRnV1QXk3S2toR3ZLRm1sT1VwWXROMktYcGx4TXFtVk9TODNLZG9E?=
 =?utf-8?B?aTU3T1JsTTJOMzFmb0l3Y2liSnhkaDhmdCtpd0Fha1pPMk9lbnJyV3p2TUs4?=
 =?utf-8?B?Z09Da28xc1dGdGNUcnlnSUh2RmdZME5ScUdyMHIxNC8rVmlZeHVSb0dsR2w2?=
 =?utf-8?B?elRDK3JUR0VnUUVKNXdjZytmUnF2NVlaZ0VXZFN6RTkyK2ZOUmdQVkVSUlBz?=
 =?utf-8?B?eEI5enVQM2laRUIrTEU0eG9IdTI2Z01qLzArb3UxL1p0OWM5YkFLT2ZKTnlR?=
 =?utf-8?B?bTQwTFNLdEZ6SVo3cGJXWmRtenNWTUhYVmZBS2szcDNlbjZ0aGlta1hkQ3hX?=
 =?utf-8?B?UFJHd1ZUbXQrbVh1UEpLYVY3aUZzaElwQ29tc2FsTVJyQ2FoS2pFNHRHQThT?=
 =?utf-8?B?bm9ZQTFnRzVmcGYvdWU3MWxnK1ZWKzY1ZVRUUk9OcGRBUGRNZHJVRys3blpX?=
 =?utf-8?B?TVRXUkdwOFIvVDZQU3hBcVYyTEZFeVIwZzljd2RWWUl5NlJOdFUwYUt1cll5?=
 =?utf-8?B?ektzaGh6NVlDWEc2M1dDa1RSaGhNQWNvZjJ4V1RFWUF2V21WWk5CNGNkeDN2?=
 =?utf-8?B?aHEvYVFWSVFlSWVvTTJERlhqYnUwK3N3STVaTGJYaVR1UCtFd05nUXFLMWFN?=
 =?utf-8?B?QVZqVGJ2dTByNmNPYkZFWjJQV3R2Y3M5dnVVSHlGZ1B3NWxWcDIzSm5oeVYz?=
 =?utf-8?B?R29DUHVQRHNQTHBMNG1XS3ZmUnhwTUJpNUhrKzdNa3N4MjE0d29rRldMMG1t?=
 =?utf-8?B?dkthT2lmdzNyODloeHh0UitNemxPU0J4OUVzMURxKzlsUmphYXJWMjU5MURI?=
 =?utf-8?B?Ung4TGVvck82QmYyS0dLUk56Y3RJd2xnUXl1ZXBTcUFvaC9Va0JwRStLSGxo?=
 =?utf-8?B?UmNGeW84c1pESHAwQ0hIY21rU1Z5RnVtVVBtYllBUTdWT0lLK3NuZWEzOGk1?=
 =?utf-8?B?a0ZseHNaSkhIRmVXc24rTVJtOWNONHlxQVRaNThKU2psVDVkZXg2djhKb3M0?=
 =?utf-8?B?RVRSMXJuVXViTllmajc1ZGt2S1hSOTBlcndhUlFmbWNFb0tsTFFWcng5MDlj?=
 =?utf-8?B?ZW01R0ZRRkZtTzNxdzRpMkxXRG45L0dLMS9LMjRkcWhWZUM4SW5PYVNoTzJ2?=
 =?utf-8?B?N1FXVmsrRVdXWkNxYUJQR3k1LzZRZ3hZLzRlZjhNR0ZmLzZWV0JnVEFrTU1m?=
 =?utf-8?B?OUtKQk4rOC9BM2hnR0xOcWY2Y3lQZkFUU3Yyc0hyT05kWVU4TjRhUUsrckVq?=
 =?utf-8?B?TzdpYzdYU2hPWnpTbFBKcjJhaTlzakkvUWFLTmNnSzVVZCtYRWpjaU42M3B0?=
 =?utf-8?B?VnRsYjJEeklRPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR03MB8934.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?eWJjUFoyZzBIMWZLK05tQ01SQjVUN3doQmpEbzducGY5dC9EQ2c4V3hrU1lG?=
 =?utf-8?B?ekpVV3N0Q21PbEZWTHI5cHZwSVlzUVg1em1BVTFqMlRYM041R2lCQUE4Zk9u?=
 =?utf-8?B?TS96blowYTIrN1B5d200L3kxdDhtQkgzdEhpc3VITzNGN0hsL3VwV252SVBH?=
 =?utf-8?B?dFRwV0xpbVd2U0pWQUU1cnhjU2p1aU9TdXh3WDkwQ3F4TFJsRTZCR1RyZXR4?=
 =?utf-8?B?NVlaM1hzM2FzMk9aaS80RWRVREVaYmpZL21FeitMeForaktaRWhEU1VNOEU0?=
 =?utf-8?B?cGZnWFhSak5TL0MrU2hwYXJZSms5bGdGcjVBSngvbUU2dGhVYStGWVZNU0E2?=
 =?utf-8?B?UmR6Z1NJOTdFNzdlRWs3ZXJVSEVYU2UrOFR3TXc0eTg5QzdEWDBJZkJNNDB2?=
 =?utf-8?B?VEJWb1NhZm4rd3lOWFZ3MmFJTjY3MCtMVi9CR1ROMkNyeUljZHRmTE1DSXp1?=
 =?utf-8?B?MlJCeHd0U1VIRVBLQTZ5bVFzcm84bWpIQnlXSndzdnZ1WVlzR2tqekVURmly?=
 =?utf-8?B?ZUI4eStyMHJpaHQvNGZWaTJlNG5sS3UvTjQ0anpCSUtrMEpYZkVKcDhvdW53?=
 =?utf-8?B?MHRPd01QMXZJblRmWlVvK0xrbnNaVW9vWXd2dmxzZytOTkYwTUdDZ3YrZkx0?=
 =?utf-8?B?b1NmcGp2Rm0vcUVZMkpOK05qTythS3l2ME8zLzhKZVZGaVpzZFE3N3Z0em5U?=
 =?utf-8?B?cElRYk8xTWgrb1JWL2hoS2xkbGRobDlDeWNhSFZkMTkrY2FrWjZxNUtIYlY1?=
 =?utf-8?B?a1Vpbmx1UXliTXBMcjdrM2NaMlFBN1dGY3VYTGJmS21oUnMvOWp3cWFpR2ZZ?=
 =?utf-8?B?UnlEVVIrMkRTa2s0TlVZdlk4T2hJeG9jenM0MGt2TXZLZlY5ZU1FYTM5UDlw?=
 =?utf-8?B?bjBWZjdBbWw1RnFrcERBWWdITjFTbGh6Z1BsVmhyallCc0ZObjVzeXl3dGJH?=
 =?utf-8?B?Umoxc3Q3cWhyVlQ4bDBDK0xpVzRUWUZCNVo5L3h4S3hrOTlYQ083a2JNMHoz?=
 =?utf-8?B?Yzd5aHoxWDNQZ0hBUWdqUE53STBXcjhUMDBRekV6WldNeG1zRDhTUnZRci8z?=
 =?utf-8?B?c2RSaW9oYkdvTSsrK0RnTitQejJFSlNsd29HS1JyTUI0Tzh6a0hMV2kzY0dY?=
 =?utf-8?B?WCtPcTUxSVFEOC9uTitvbHpWcFVDU3ZpR2kxdlppUVZ1cEJjZTV1T3ZkZ2ZJ?=
 =?utf-8?B?Y3Z4RTBLemI4UnNpb1M5TG1JMVZRVFlvcm1kRG5CS29jYmRKS2k2emxSRlRY?=
 =?utf-8?B?Q1ptZWJ1OWI2RnBXbFRVR1NXdWhFajlya2szQkNzUUJMcUlLRyt5QXlIdVcr?=
 =?utf-8?B?TnVCcEZybXBZcG9obFErb1pCaWEvL1IwMVFKVVBpdFhCU3RPaHdvc0RvL09q?=
 =?utf-8?B?dm5URUlGYTFybHpqVmt6N0hJcGRuWUJ3NmtSc2lKcjl4WnBSSmdNZWhveTVN?=
 =?utf-8?B?MVkzNVhBUDBhQWZJbkJwbXd3amZqVWZvUnV1WU5vZ1hXdklKcmJaa2xwL3hp?=
 =?utf-8?B?cUVQdVBwbGJDSlRRMmFvWGtMNWplMnREaHhvTmZ6OExJK2lJeWlkUXI3b25x?=
 =?utf-8?B?QWdjZW5tRVpPVDFoS2RmcTZ4ckpDWnZiaThITkpaei9sRTNrbEJnMlM1MEFq?=
 =?utf-8?B?U1grVDUrZWlYWitwQmNqQm9ZNUZMRkpJcVYxOFpUUGZZc1p5M2hhcG5KcFJq?=
 =?utf-8?B?RVpnaDRNbEdsZHJyK0wrdWZ3Y3FZZUJUS1gwMHNNdzJWem5aMlJ1cDREVW95?=
 =?utf-8?B?TjZTNGpyaXp5cFlxSktvRTBOcHpMUDl6SlM1Tyt1QXMxZUVEcng1c1Vhek1X?=
 =?utf-8?B?VGp0eSt1aFY5SjUxQXJRUHI3WnBxK05tOUFsRHUxNnI5Y3dBcDFjMitUYWVI?=
 =?utf-8?B?K0MzMFNWSlZ0YjlLNGxzKzg5Tk5CVkhFOHh5a2pCTTc2OWxJT1hmM1ZWVS9Z?=
 =?utf-8?B?ME9WK1ZmNTR4RUZGNW5Vc0dobStUWkQ3TXE4dVROR2FHUkRTOUd3ZXMvMmxY?=
 =?utf-8?B?Y3BhOFQ1azZkRitnUitHa3l3bkEvV2tDa1ZzcmUxM0gxemZGZmlPTU1sWDVn?=
 =?utf-8?B?Nkx3TndLTHFLdWxrOEhBTzVBZVMyR2E2TjJtREpLUDFUWGdWWTFkRzFYcCtR?=
 =?utf-8?B?UXNMMWRiZGxKOFVNVjAvWFVCZkVQcXhoMHNlcWUwbXdLcE9FdXdQZFh5N0Rz?=
 =?utf-8?B?QVE9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <2EB6D18F6EF6DC46AC7B5C1D46DD80BC@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: DU0PR03MB8934.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8b983f5e-5fd4-4095-c270-08ddd35ff8a7
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Aug 2025 14:05:30.3299
 (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: vYHCz5X7ebcfmxEyCfSYFkmYqxWZe/65X8Ig7SwZpWSoApF11vLTDArL4xxbayrm+O6e81CQTXXeiR/AIL5zhuklpsWINdA4CZERb1yhU0s=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB9757

SGkgTWljaGFsLA0KDQpPbiAyOS8wNy8yMDI1IDEwOjIyLCBPcnplbCwgTWljaGFsIHdyb3RlOg0K
PiBPbiAyOC8wNy8yMDI1IDE5OjA3LCBPbGVrc2lpIE1vaXNpZWlldiB3cm90ZToNCj4+IFRoaXMg
Y29tbWl0IGludHJvZHVjZXMgYSBuZXcgS2NvbmZpZyBvcHRpb24sIGBDT05GSUdfRE9NMF9CT09U
YCwgdG8NCj4+IGFsbG93IGZvciBidWlsZGluZyBYZW4gd2l0aG91dCBzdXBwb3J0IGZvciBib290
aW5nIGEgcmVndWxhciBkb21haW4gKERvbTApLg0KPj4gVGhpcyBmdW5jdGlvbmFsaXR5IGlzIHBy
aW1hcmlseSBpbnRlbmRlZCBmb3IgdGhlIEFSTSBhcmNoaXRlY3R1cmUuDQo+Pg0KPj4gQSBuZXcg
S2NvbmZpZyBzeW1ib2wsIGBIQVNfRE9NMGAsIGhhcyBiZWVuIGFkZGVkIGFuZCBpcyBzZWxlY3Rl
ZCBieQ0KPj4gZGVmYXVsdCBmb3IgQVJNIGFuZCBYODYgYXJjaGl0ZWN0dXJlLiBUaGlzIHN5bWJv
bCBzaWduaWZpZXMgdGhhdCBhbg0KPj4gYXJjaGl0ZWN0dXJlIGhhcyB0aGUgY2FwYWJpbGl0eSB0
byBzdXBwb3J0IGEgRG9tMC4NCj4+DQo+PiBUaGUgYERPTTBfQk9PVGAgb3B0aW9uIGRlcGVuZHMg
b24gYEhBU19ET00wYCBhbmQgZGVmYXVsdHMgdG8gJ3knLiBGb3INCj4+IGV4cGVydCB1c2Vycywg
dGhpcyBvcHRpb24gY2FuIGJlIGRpc2FibGVkIChgQ09ORklHX0VYUEVSVD15YCBhbmQgbm8NCj4+
IGBDT05GSUdfRE9NMF9CT09UYCBpbiB0aGUgY29uZmlnKSwgd2hpY2ggd2lsbCBjb21waWxlIG91
dCB0aGUgRG9tMA0KPj4gY3JlYXRpb24gY29kZSBvbiBBUk0uIFRoaXMgaXMgdXNlZnVsIGZvciBl
bWJlZGRlZCBvciBkb20wbGVzcy1vbmx5DQo+PiBzY2VuYXJpb3MgdG8gcmVkdWNlIGJpbmFyeSBz
aXplIGFuZCBjb21wbGV4aXR5Lg0KPj4NCj4+IFRoZSBBUk0gYm9vdCBwYXRoIGhhcyBiZWVuIHVw
ZGF0ZWQgdG8gcGFuaWMgaWYgaXQgZGV0ZWN0cyBhIG5vbi1kb20wbGVzcw0KPj4gY29uZmlndXJh
dGlvbiB3aGlsZSBgQ09ORklHX0RPTTBfQk9PVGAgaXMgZGlzYWJsZWQsIHByZXZlbnRpbmcgYW4g
aW52YWxpZA0KPj4gYm9vdC4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBPbGVrc2lpIE1vaXNpZWll
djxvbGVrc2lpX21vaXNpZWlldkBlcGFtLmNvbT4NCj4+DQo+PiAtLS0NCj4+DQo+PiBDaGFuZ2Vz
IGluIHYyOg0KPj4gLSBkZWNpZGVkIG5vdCB0byByZW5hbWUgSEFTX0RPTTAgKEhBU19PUFRJT05B
TF9ET00wIHdhcyBhbm90aGVyIG9wdGlvbg0KPj4gc3VnZ2VzdGVkIGluIE1MKSBiZWNhdXNlIGlu
IHRoaXMgY2FzZSBIQVNfRE9NMExFU1Mgc2hvdWxkIGJlIHJlbmFtZWQNCj4+IGVpdGhlci4NCj4+
IC0gZml4IG9yZGVyIG9mIEhBU19ET00wIGNvbmZpZyBwYXJhbWV0ZXINCj4+IC0gYWRkIEhBU19E
T00wIG9wdGlvbiB0byB4ODYgYXJjaGl0ZWN0dXJlLg0KPj4NCj4+IENPTkZJR19ET00wX0JPT1Qg
S2NvbmZpZyBvcHRpb24gd2FzIGludHJvZHVjZWQgdG8gbWFrZSB0aGUgRG9tMA0KPj4gcmVndWxh
ciAobGVnYWN5KSBkb21haW4gYW4gb3B0aW9uYWwgZmVhdHVyZSB0aGF0IGNhbiBiZSBjb21waWxl
ZCBvdXQNCj4+IGZyb20gdGhlIFhlbiBoeXBlcnZpc29yIGJ1aWxkLg0KPj4NCj4+IFRoZSBwcmlt
YXJ5IG1vdGl2YXRpb24gZm9yIHRoaXMgY2hhbmdlIGlzIHRvIGVuaGFuY2UgbW9kdWxhcml0eSBh
bmQNCj4+IHByb2R1Y2UgYSBjbGVhbmVyLCBtb3JlIHNwZWNpYWxpemVkIGh5cGVydmlzb3IgYmlu
YXJ5IHdoZW4gYSBjb250cm9sDQo+PiBkb21haW4gaXMgbm90IG5lZWRlZC4gSW4gbWFueSBlbWJl
ZGRlZCBvciBkZWRpY2F0ZWQgc3lzdGVtcywgWGVuIGlzDQo+PiB1c2VkIGluIGEgImRvbTBsZXNz
IiBjb25maWd1cmF0aW9uIHdoZXJlIGd1ZXN0cyBhcmUgcHJlLWNvbmZpZ3VyZWQgYW5kDQo+PiBs
YXVuY2hlZCBkaXJlY3RseSBieSB0aGUgaHlwZXJ2aXNvci4gSW4gdGhlc2Ugc2NlbmFyaW9zLCB0
aGUgZW50aXJlDQo+PiBzdWJzeXN0ZW0gZm9yIGJvb3RpbmcgYW5kIG1hbmFnaW5nIERvbTAgaXMg
dW5uZWNlc3NhcnkuDQo+Pg0KPj4gVGhpcyBhcHByb2FjaCBhbGlnbnMgd2l0aCBzb2Z0d2FyZSBx
dWFsaXR5IHN0YW5kYXJkcyBsaWtlIE1JU1JBIEMsDQo+PiB3aGljaCBhZHZvY2F0ZSBmb3IgdGhl
IHJlbW92YWwgb2YgdW5yZWFjaGFibGUgb3IgdW5uZWNlc3NhcnkgY29kZSB0bw0KPj4gaW1wcm92
ZSBzYWZldHkgYW5kIG1haW50YWluYWJpbGl0eS4gU3BlY2lmaWNhbGx5LCB0aGlzIGNoYW5nZSBo
ZWxwcyBhZGhlcmUgdG86DQo+Pg0KPj4gTUlTUkEgQzoyMDEyLCBSdWxlIDIuMjogIlRoZXJlIHNo
YWxsIGJlIG5vIGRlYWQgY29kZSINCj4+DQo+PiBJbiBhIGJ1aWxkIGNvbmZpZ3VyZWQgZm9yIGEg
ZG9tMGxlc3MgZW52aXJvbm1lbnQsIHRoZSBjb2RlIHJlc3BvbnNpYmxlDQo+PiBmb3IgY3JlYXRp
bmcgRG9tMCB3b3VsZCBiZSBjb25zaWRlcmVkICJkZWFkIGNvZGUiIGFzIGl0IHdvdWxkIG5ldmVy
IGJlDQo+PiBleGVjdXRlZC4gQnkgdXNpbmcgdGhlIHByZXByb2Nlc3NvciB0byByZW1vdmUgaXQg
YmVmb3JlIGNvbXBpbGF0aW9uLA0KPj4gd2UgZW5zdXJlIHRoYXQgdGhlIGZpbmFsIGV4ZWN1dGFi
bGUgaXMgZnJlZSBmcm9tIHRoaXMgdW5yZWFjaGFibGUNCj4+IGNvZGUuIFRoaXMgc2ltcGxpZmll
cyBzdGF0aWMgYW5hbHlzaXMsIHJlZHVjZXMgdGhlIGF0dGFjayBzdXJmYWNlLA0KPj4gYW5kIG1h
a2VzIHRoZSBjb2RlYmFzZSBlYXNpZXIgdG8gdmVyaWZ5LCB3aGljaCBpcyBjcml0aWNhbCBmb3IN
Cj4+IHN5c3RlbXMgcmVxdWlyaW5nIGhpZ2ggbGV2ZWxzIG9mIHNhZmV0eSBhbmQgc2VjdXJpdHku
DQo+Pg0KPj4gLS0tDQo+PiAgIHhlbi9hcmNoL2FybS9LY29uZmlnICAgICAgICB8ICAxICsNCj4+
ICAgeGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jIHwgIDggKysrKysrKysNCj4+ICAgeGVuL2Fy
Y2gvYXJtL3NldHVwLmMgICAgICAgIHwgMTQgKysrKysrKysrKy0tLS0NCj4+ICAgeGVuL2FyY2gv
eDg2L0tjb25maWcgICAgICAgIHwgIDEgKw0KPj4gICB4ZW4vY29tbW9uL0tjb25maWcgICAgICAg
ICAgfCAxMSArKysrKysrKysrKw0KPj4gICA1IGZpbGVzIGNoYW5nZWQsIDMxIGluc2VydGlvbnMo
KyksIDQgZGVsZXRpb25zKC0pDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9LY29u
ZmlnIGIveGVuL2FyY2gvYXJtL0tjb25maWcNCj4+IGluZGV4IGJmNmQxY2Y4OGUuLjc0ZGE1NDQ5
MjUgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vYXJjaC9hcm0vS2NvbmZpZw0KPj4gKysrIGIveGVuL2Fy
Y2gvYXJtL0tjb25maWcNCj4+IEBAIC0xOCw2ICsxOCw3IEBAIGNvbmZpZyBBUk0NCj4+ICAgCXNl
bGVjdCBHRU5FUklDX1VBUlRfSU5JVA0KPj4gICAJc2VsZWN0IEhBU19BTFRFUk5BVElWRSBpZiBI
QVNfVk1BUA0KPj4gICAJc2VsZWN0IEhBU19ERVZJQ0VfVFJFRQ0KPj4gKwlzZWxlY3QgSEFTX0RP
TTANCj4+ICAgCXNlbGVjdCBIQVNfRE9NMExFU1MNCj4+ICAgCXNlbGVjdCBIQVNfR1JBTlRfQ0FD
SEVfRkxVU0ggaWYgR1JBTlRfVEFCTEUNCj4+ICAgCXNlbGVjdCBIQVNfU1RBQ0tfUFJPVEVDVE9S
DQo+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jIGIveGVuL2FyY2gv
YXJtL2RvbWFpbl9idWlsZC5jDQo+PiBpbmRleCBlZDY2OGJkNjFjLi45Yjg5OTNkZjgwIDEwMDY0
NA0KPj4gLS0tIGEveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jDQo+PiArKysgYi94ZW4vYXJj
aC9hcm0vZG9tYWluX2J1aWxkLmMNCj4+IEBAIC00MCw4ICs0MCwxMCBAQA0KPj4gICAjaW5jbHVk
ZSA8YXNtL2dyYW50X3RhYmxlLmg+DQo+PiAgICNpbmNsdWRlIDx4ZW4vc2VyaWFsLmg+DQo+PiAg
IA0KPj4gKyNpZmRlZiBDT05GSUdfRE9NMF9CT09UDQo+PiAgIHN0YXRpYyB1bnNpZ25lZCBpbnQg
X19pbml0ZGF0YSBvcHRfZG9tMF9tYXhfdmNwdXM7DQo+PiAgIGludGVnZXJfcGFyYW0oImRvbTBf
bWF4X3ZjcHVzIiwgb3B0X2RvbTBfbWF4X3ZjcHVzKTsNCj4+ICsjZW5kaWYNCj4+ICAgDQo+PiAg
IC8qDQo+PiAgICAqIElmIHRydWUsIHRoZSBleHRlbmRlZCByZWdpb25zIHN1cHBvcnQgaXMgZW5h
YmxlZCBmb3IgZG9tMCBhbmQNCj4+IEBAIC0xMDIsNiArMTA0LDcgQEAgaW50IF9faW5pdCBwYXJz
ZV9hcmNoX2RvbTBfcGFyYW0oY29uc3QgY2hhciAqcywgY29uc3QgY2hhciAqZSkNCj4gV2h5IGlz
IHRoaXMgYW5kIG90aGVyIGRvbTAgY21kbGluZSBwYXJzaW5nIGZ1bmN0aW9ucyBub3QgZGlzYWJs
ZWQ/DQo+IFdoYXQgaXMgeW91ciBtZXRob2Qgb2YgZGVjaWRpbmcgd2hhdCB0byBjb21waWxlIG91
dCBvciBub3Q/DQpJJ3ZlIGNvbXBpbGVkIHdpdGggdGhlIGZvbGxvd2luZyBmbGFnczoNCiItZmZ1
bmN0aW9uLXNlY3Rpb25zIC1XbCwtLWdjLXNlY3Rpb25zIC1XdW51c2VkLWZ1bmN0aW8iDQpBbHNv
IEkgd2FzIGFuYWx5emluZyBjb3ZlcmFnZSByZXBvcnRzLg0KPj4gICAgKi8NCj4+ICAgI2RlZmlu
ZSBET00wX0ZEVF9FWFRSQV9TSVpFICgxMjggKyBzaXplb2Yoc3RydWN0IGZkdF9yZXNlcnZlX2Vu
dHJ5KSkNCj4+ICAgDQo+PiArI2lmZGVmIENPTkZJR19ET00wX0JPT1QNCj4+ICAgdW5zaWduZWQg
aW50IF9faW5pdCBkb20wX21heF92Y3B1cyh2b2lkKQ0KPj4gICB7DQo+PiAgICAgICBpZiAoIG9w
dF9kb20wX21heF92Y3B1cyA9PSAwICkNCj4+IEBAIC0xMTQsNiArMTE3LDcgQEAgdW5zaWduZWQg
aW50IF9faW5pdCBkb20wX21heF92Y3B1cyh2b2lkKQ0KPj4gICANCj4+ICAgICAgIHJldHVybiBv
cHRfZG9tMF9tYXhfdmNwdXM7DQo+PiAgIH0NCj4+ICsjZW5kaWYNCj4+ICAgDQo+PiAgIC8qDQo+
PiAgICAqIEluc2VydCB0aGUgZ2l2ZW4gcGFnZXMgaW50byBhIG1lbW9yeSBiYW5rLCBiYW5rcyBh
cmUgb3JkZXJlZCBieSBhZGRyZXNzLg0KPj4gQEAgLTE5NTMsNiArMTk1Nyw3IEBAIGludCBfX2lu
aXQgY29uc3RydWN0X2RvbWFpbihzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3Qga2VybmVsX2luZm8g
KmtpbmZvKQ0KPj4gICAgICAgcmV0dXJuIDA7DQo+PiAgIH0NCj4+ICAgDQo+PiArI2lmZGVmIENP
TkZJR19ET00wX0JPT1QNCj4+ICAgc3RhdGljIGludCBfX2luaXQgY29uc3RydWN0X2RvbTAoc3Ry
dWN0IGRvbWFpbiAqZCkNCj4+ICAgew0KPj4gICAgICAgc3RydWN0IGtlcm5lbF9pbmZvIGtpbmZv
ID0gS0VSTkVMX0lORk9fSU5JVDsNCj4+IEBAIC0xOTg0LDYgKzE5ODksNyBAQCBzdGF0aWMgaW50
IF9faW5pdCBjb25zdHJ1Y3RfZG9tMChzdHJ1Y3QgZG9tYWluICpkKQ0KPj4gICANCj4+ICAgICAg
IHJldHVybiBjb25zdHJ1Y3RfaHdkb20oJmtpbmZvLCBOVUxMKTsNCj4+ICAgfQ0KPj4gKyNlbmRp
Zg0KPj4gICANCj4+ICAgaW50IF9faW5pdCBjb25zdHJ1Y3RfaHdkb20oc3RydWN0IGtlcm5lbF9p
bmZvICpraW5mbywNCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0
IGR0X2RldmljZV9ub2RlICpub2RlKQ0KPj4gQEAgLTIwMzcsNiArMjA0Myw3IEBAIGludCBfX2lu
aXQgY29uc3RydWN0X2h3ZG9tKHN0cnVjdCBrZXJuZWxfaW5mbyAqa2luZm8sDQo+PiAgICAgICBy
ZXR1cm4gY29uc3RydWN0X2RvbWFpbihkLCBraW5mbyk7DQo+PiAgIH0NCj4+ICAgDQo+PiArI2lm
ZGVmIENPTkZJR19ET00wX0JPT1QNCj4+ICAgdm9pZCBfX2luaXQgY3JlYXRlX2RvbTAodm9pZCkN
Cj4+ICAgew0KPj4gICAgICAgc3RydWN0IGRvbWFpbiAqZG9tMDsNCj4+IEBAIC0yMDg5LDYgKzIw
OTYsNyBAQCB2b2lkIF9faW5pdCBjcmVhdGVfZG9tMCh2b2lkKQ0KPj4gICANCj4+ICAgICAgIHNl
dF94c19kb21haW4oZG9tMCk7DQo+PiAgIH0NCj4+ICsjZW5kaWYgLyogQ09ORklHX0RPTTBfQk9P
VCAqLw0KPj4gICANCj4+ICAgLyoNCj4+ICAgICogTG9jYWwgdmFyaWFibGVzOg0KPj4gZGlmZiAt
LWdpdCBhL3hlbi9hcmNoL2FybS9zZXR1cC5jIGIveGVuL2FyY2gvYXJtL3NldHVwLmMNCj4+IGlu
ZGV4IDEyYjc2YTBhOTguLmMxNDYzZDY0N2EgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vYXJjaC9hcm0v
c2V0dXAuYw0KPj4gKysrIGIveGVuL2FyY2gvYXJtL3NldHVwLmMNCj4+IEBAIC00ODAsMTIgKzQ4
MCwxOCBAQCB2b2lkIGFzbWxpbmthZ2UgX19pbml0IHN0YXJ0X3hlbih1bnNpZ25lZCBsb25nIGZk
dF9wYWRkcikNCj4+ICAgICAgIGVuYWJsZV9lcnJhdGFfd29ya2Fyb3VuZHMoKTsNCj4+ICAgICAg
IGVuYWJsZV9jcHVfZmVhdHVyZXMoKTsNCj4+ICAgDQo+PiAtICAgIC8qIENyZWF0ZSBpbml0aWFs
IGRvbWFpbiAwLiAqLw0KPj4gLSAgICBpZiAoICFpc19kb20wbGVzc19tb2RlKCkgKQ0KPj4gKyAg
ICBpZiAoIElTX0VOQUJMRUQoQ09ORklHX0RPTTBfQk9PVCkgJiYgIWlzX2RvbTBsZXNzX21vZGUo
KSApDQo+PiArICAgIHsNCj4+ICsgICAgICAgIC8qIENyZWF0ZSBpbml0aWFsIGRvbWFpbiAwLiAq
Lw0KPj4gICAgICAgICAgIGNyZWF0ZV9kb20wKCk7DQo+PiArICAgIH0NCj4+ICAgICAgIGVsc2UN
Cj4+IC0gICAgICAgIHByaW50ayhYRU5MT0dfSU5GTyAiWGVuIGRvbTBsZXNzIG1vZGUgZGV0ZWN0
ZWRcbiIpOw0KPj4gLQ0KPj4gKyAgICB7DQo+PiArICAgICAgICBpZiAoIGlzX2RvbTBsZXNzX21v
ZGUoKSkNCj4+ICsgICAgICAgICAgICBwcmludGsoWEVOTE9HX0lORk8gIlhlbiBkb20wbGVzcyBt
b2RlIGRldGVjdGVkXG4iKTsNCj4+ICsgICAgICAgIGVsc2UNCj4+ICsgICAgICAgICAgICBwYW5p
YygiWGVuIGRvbTBsZXNzIG1vZGUgbm90IGRldGVjdGVkLCBhYm9ydGluZyBib290XG4iKTsNCj4g
SSB0aGluayBpdCBzaG91bGQgbWVudGlvbiB0aGF0IG5laXRoZXIgZG9tMCBub3IgZG9tMGxlc3Mg
bW9kZSBub3QgZGV0ZWN0ZWQNCj4NCj4+ICsgICAgfQ0KPj4gICAgICAgaWYgKCBhY3BpX2Rpc2Fi
bGVkICkNCj4+ICAgICAgIHsNCj4+ICAgICAgICAgICBjcmVhdGVfZG9tVXMoKTsNCj4+IGRpZmYg
LS1naXQgYS94ZW4vYXJjaC94ODYvS2NvbmZpZyBiL3hlbi9hcmNoL3g4Ni9LY29uZmlnDQo+PiBp
bmRleCBhNDVjZTEwNmUyLi4wNmUyODg4NzA3IDEwMDY0NA0KPj4gLS0tIGEveGVuL2FyY2gveDg2
L0tjb25maWcNCj4+ICsrKyBiL3hlbi9hcmNoL3g4Ni9LY29uZmlnDQo+PiBAQCAtMTgsNiArMTgs
NyBAQCBjb25maWcgWDg2DQo+PiAgIAlzZWxlY3QgSEFTX0NPTVBBVA0KPj4gICAJc2VsZWN0IEhB
U19DUFVGUkVRDQo+PiAgIAlzZWxlY3QgSEFTX0RJVA0KPj4gKwlzZWxlY3QgSEFTX0RPTTANCj4+
ICAgCXNlbGVjdCBIQVNfRUhDSQ0KPj4gICAJc2VsZWN0IEhBU19FWF9UQUJMRQ0KPj4gICAJc2Vs
ZWN0IEhBU19GQVNUX01VTFRJUExZDQo+PiBkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9LY29uZmln
IGIveGVuL2NvbW1vbi9LY29uZmlnDQo+PiBpbmRleCA2NDg2NTExMmExLi4yMmU4MTkyYTdkIDEw
MDY0NA0KPj4gLS0tIGEveGVuL2NvbW1vbi9LY29uZmlnDQo+PiArKysgYi94ZW4vY29tbW9uL0tj
b25maWcNCj4+IEBAIC0yMSw2ICsyMSwxNCBAQCBjb25maWcgRE9NMExFU1NfQk9PVA0KPj4gICAJ
ICBYZW4gYm9vdCB3aXRob3V0IHRoZSBuZWVkIG9mIGEgY29udHJvbCBkb21haW4gKERvbTApLCB3
aGljaCBjb3VsZCBiZQ0KPj4gICAJICBwcmVzZW50IGFueXdheS4NCj4+ICAgDQo+PiArY29uZmln
IERPTTBfQk9PVA0KPj4gKwlib29sICJEb20wIGJvb3Qgc3VwcG9ydCIgaWYgRVhQRVJUDQo+PiAr
CWRlcGVuZHMgb24gSEFTX0RPTTAgJiYgSEFTX0RFVklDRV9UUkVFICYmIERPTUFJTl9CVUlMRF9I
RUxQRVJTDQo+PiArCWRlZmF1bHQgeQ0KPj4gKwloZWxwDQo+PiArCSAgRG9tMCBib290IHN1cHBv
cnQgZW5hYmxlcyBYZW4gdG8gYm9vdCB0byB0aGUgY29udHJvbCBkb21haW4gKERvbTApIGFuZA0K
PiBkb20wIGlzIGFsc28gYSBoYXJkd2FyZSBhbmQgeGVuc3RvcmUgZG9tYWluIGlmIHlvdSB3YW50
IHRvIGxpc3QgYWxsDQo+IGNhcGFiaWxpdGllcy4gVGhhdCBzYWlkLCBkb20wIGlzIGEgdmVyeSBr
bm93biBjb25jZXB0LCBzbyB5b3UgY291bGQganVzdCB3cml0ZQ0KPiBhbGwtcG93ZXJmdWwgZG9t
YWluLg0KQWdyZWUuIHdpbGwgcmV3b3JkLg0KPj4gKwkgIG1hbmFnZSBkb21VIGd1ZXN0cyB1c2lu
ZyB0aGUgWGVuIHRvb2xzdGFjayB3aXRoIHByb3ZpZGVkIGNvbmZpZ3VyYXRpb25zLg0KPiBJJ20g
bm90IHN1cmUgd2UgbmVlZCB0aGlzIGxpbmUuIFdoeSB3b3VsZCB3ZSBtYWtlIGFzc3VtcHRpb24g
d2hhdCB1c2VyIHdhbnRzIHRvDQo+IHVzZSBkb20wIGZvcj8NCj4NCj4gfk1pY2hhbA0KPg0K


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 14:11:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 14:11:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069476.1433326 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uivuH-0004zf-Ni; Mon, 04 Aug 2025 14:11:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069476.1433326; Mon, 04 Aug 2025 14:11: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 1uivuH-0004zY-K9; Mon, 04 Aug 2025 14:11:17 +0000
Received: by outflank-mailman (input) for mailman id 1069476;
 Mon, 04 Aug 2025 14:11:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=c2vN=2Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uivuG-0004z5-IA
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 14:11:16 +0000
Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com
 [2a00:1450:4864:20::632])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e1828f84-713c-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 16:11:14 +0200 (CEST)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-af934d7c932so444770866b.3
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 07:11: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
 a640c23a62f3a-af91a1e820asm734329866b.90.2025.08.04.07.11.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Aug 2025 07:11: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>
X-Inumbo-ID: e1828f84-713c-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754316674; x=1754921474; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=aWUcRSxQ1NfAzjaIlR6NYYQ0pE/+POBSjsXAe//cB5o=;
        b=WQLQoVom0VbivAVnvitlLkc4lJz/czAJhMsQk6nvrUaQ3yhStDvPtE6TFda5HVvyub
         tk/qW58iC6u2H8ea64veentvLLO+l4dWpOnQUsifIWB+F/soayyDqSepbYETcz+BxxmL
         PV95xlw2UNkYifoVOiaIh+zLeVrRsVuSBe37E0EKw9lrb6DWt933MaFi2QMC0tY+0e+o
         eESKZFZRAV4D8jy8z+dRWXposYMAbRjw1FOuXb0M5jmEBltdXoeueCTRsFF0Tl3ofrZ3
         JvNdghubf0kmFUC5TLF1018IGAthDM7bI1oeNFGU4gTjhq/jXRbNpwAWM13XbDtZZ3ip
         3IcQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754316674; x=1754921474;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=aWUcRSxQ1NfAzjaIlR6NYYQ0pE/+POBSjsXAe//cB5o=;
        b=ciNzE3ZYeI4c1glmPtfQGtNfUJspFA8+gmt5Ynx3rJybox4HDheCS5UqZj8I/bnUN5
         5rCXv8x3YpN4kRHsWPwGkOD/QL7Q+XjT5vY5JhzmUpiOViJfLDEBIsdFA2e2yWdKDuQN
         zIyCqtuuSAD1Bl+J7mYwz6JHeYYOKhh/Xysn1yO2FQMOAAT3wOwe0NL9QqtwuQeFAnup
         91Nqng1TVWcUBOE29XTJ1hEyYfPFDFEQpk5XWJfSm13QCuXTUr5JRoMeytmqqXU41gUC
         ZZZY06PdaGx50zm5Lbguz/nPJsh7wpatu9H5F2gauyMFaGsb7kIxSpvK2j8gd7WYBngz
         wJlA==
X-Forwarded-Encrypted: i=1; AJvYcCW5ZTN08L53W5TEPfapnh/OGgrtBKH6EzWJaq23r2jkXt0P73MfEr9Fcg6hDqGE883duyWMIwL3pUk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzRpwnDljQXSKNxhxctojnlPedc/6YABf0LGICEFr0285x5UvW/
	GLppYWff8MnR6a7DcbQjfDz3uY0TGu4XUue6XhxP/PhDpsSoJONQkk1ofkZgqBrRnA==
X-Gm-Gg: ASbGncsLR3NCjKa3ETpmZWtFgf8G1KlsdNi3XLApTDS48gdbjpG+pRbBu+Pu/N/uTRR
	CdwG73dwKS88oNmZ21Dhf5MxgUoCuLNhTlF2MY6w+cQyH0DO4ksVSXO3og+l0iqCoK5ygd+yi+/
	9QB+oq8knNeHl7qZ/C3YF4VfnzLHYHp9z4d8RMufXP9QuYtLuGbgYyc/Xx52r6zr695EpXiib7z
	Ptt9fa1XZ70eVmBWTzfml3AD4uOxFxxtHdsswxqX7oirNuIjOhxmvahJp9DsdCfqE76JoOSsrBx
	7AkO9AygD36BmW98h6mMx+Fh08u/hToY2XXKOHeANzKc76zrSADra2QLkp6cYHlNaLL/97EuSft
	2mZ4vi75tVoC5+tzzmIYJoY+xHEfs8n166Hgb0AA8ivdMjtbXJZ47Dmxb3JsRDX/IfZ6AkwPXLz
	+fgYjl+80=
X-Google-Smtp-Source: AGHT+IH9CoZYqCB7Zk33rFlxDLCOtglCEGIzhxRkqdculDM6ruGxq8pwoPTjK/O/3z3oGMLXsad0MA==
X-Received: by 2002:a17:907:6d14:b0:af9:1be8:c2aa with SMTP id a640c23a62f3a-af94018ff02mr1062368866b.45.1754316673882;
        Mon, 04 Aug 2025 07:11:13 -0700 (PDT)
Message-ID: <01442213-1bcb-465c-9e0d-252864ba88c8@suse.com>
Date: Mon, 4 Aug 2025 16:11:12 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 09/20] xen/dom0less: abstract Arm-specific p2m type
 name for device MMIO mappings
To: Oleksii Kurochko <oleksii.kurochko@gmail.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>,
 xen-devel@lists.xenproject.org
References: <cover.1753973161.git.oleksii.kurochko@gmail.com>
 <b9f7a13262cb3b482fb3d5cbbee6c72781fbfdc2.1753973161.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: <b9f7a13262cb3b482fb3d5cbbee6c72781fbfdc2.1753973161.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 31.07.2025 17:58, Oleksii Kurochko wrote:
> Rename `p2m_mmio_direct_dev` to a more architecture-neutral alias
> `p2m_mmio_direct` to avoid leaking Arm-specific naming into common Xen code,
> such as dom0less passthrough property handling.
> 
> This helps reduce platform-specific terminology in shared logic and
> improves clarity for future non-Arm ports (e.g. RISC-V or PowerPC).
> 
> No functional changes â€” the definition is preserved via a macro alias
> for Arm.
> 
> Suggested-by: Jan Beulich <jbeulich@suse.com>

I'm sorry, but no, ...

> --- a/xen/arch/arm/include/asm/p2m.h
> +++ b/xen/arch/arm/include/asm/p2m.h
> @@ -137,6 +137,8 @@ typedef enum {
>      p2m_max_real_type,  /* Types after this won't be store in the p2m */
>  } p2m_type_t;
>  
> +#define p2m_mmio_direct p2m_mmio_direct_dev

... this isn't what I suggested. When Arm has three p2m_mmio_direct_*,
randomly aliasing one to p2m_mmio_direct is imo more likely to create
confusion than to help things. Imo you want to introduce ...

> --- a/xen/common/device-tree/dom0less-build.c
> +++ b/xen/common/device-tree/dom0less-build.c
> @@ -185,7 +185,7 @@ static int __init handle_passthrough_prop(struct kernel_info *kinfo,
>                                 gaddr_to_gfn(gstart),
>                                 PFN_DOWN(size),
>                                 maddr_to_mfn(mstart),
> -                               p2m_mmio_direct_dev);
> +                               p2m_mmio_direct);

... a per-arch inline function which returns the type to use here.
The name of the function would want to properly reflect the purpose;
my limited DT knowledge may make arch_dt_passthrough_p2m_type() an
entirely wrong suggestion.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 14:16:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 14:16:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069486.1433336 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uivzK-0007fE-7P; Mon, 04 Aug 2025 14:16:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069486.1433336; Mon, 04 Aug 2025 14:16: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 1uivzK-0007f7-4I; Mon, 04 Aug 2025 14:16:30 +0000
Received: by outflank-mailman (input) for mailman id 1069486;
 Mon, 04 Aug 2025 14:16:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=c2vN=2Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uivzJ-0007f0-5b
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 14:16:29 +0000
Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com
 [2a00:1450:4864:20::632])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9a106b96-713d-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 16:16:24 +0200 (CEST)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-ae401ebcbc4so768829166b.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 07:16: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
 a640c23a62f3a-af91aad117dsm734246266b.77.2025.08.04.07.16.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Aug 2025 07:16: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>
X-Inumbo-ID: 9a106b96-713d-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754316983; x=1754921783; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=/BdYIQmGgfqqyJ/IMGZ3Px4FQmDEzYeTe01cSWv4pwg=;
        b=F0FbYO4+Pebkj6061bktjZVCE+u2XQeatixkuFa8iZUWzDJCHTQjhBpE2malcLq6wg
         QfMhHbHUfCSP1qRL1zjUzX4wz5DWRKCC5DJ412eR/Ria3Vk0eT273+t5YaYkQHbXLBwf
         sCzFA0pl+bwMBtw9/b/k36Psd4yjQVy86T+Bl3FeMRwgFwgJLtVaPGLxdjNfVRgs2UkI
         d2tWtDGlayLVn9f+CGChQ03C/0R/+BYU27FPaDIpG/rDveqybmGWF3u2kj/bRLPvR2Az
         BXjoG6h8fuNKPVv26PFTg8CLS44W5dd3mk9QxiIDzEosUzvETQutyBdG9L9o3+09L1Nz
         nr4A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754316983; x=1754921783;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/BdYIQmGgfqqyJ/IMGZ3Px4FQmDEzYeTe01cSWv4pwg=;
        b=X3+dyN4eGgcHm6JobBMWXbEDLoZ7TA2BBWQzkhqsV080YYOF249XERKon05PMpdRXn
         9zLBUW+/aUotj0yRjkWD1L0rIazf0CMX7WqOa9LtgRjX80KTsM2VzdVBu52JTLZr6/iq
         l6Dz0bFeWvJab36vV1kqo1CG6Z0HgtaRqQaatNrooQxKEonFsfvGHmRS+LcesdfxZqHX
         ZK9mtpSrMazledoh4fgRcYN5EHVisR/bnrwcTdT2tMPfgh3PuRHYgxbCx/e+pi6tzPIP
         Ni0/RBY/oE4HlPf3IezQ0rhqyFRYpH5oRnnn876DfBRSqrghKotxrssut6vQ/UEwLInO
         io1g==
X-Forwarded-Encrypted: i=1; AJvYcCUTKtii0wmfrN2r23yO6gryhgCpwZIxsTQw5kVK55npRxX5axAvOen3a7JTjWFxpLPdYptKqjiynw0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxIj8h9R/NZ0yuRa9NyLU45yCWjEUsu++wlXRzsOgPbuX3SZdXT
	pTohXLMrh2QQQqvAcohdZ+MvdzVVHN49UZr766KowEtOsRWYTbxJCnqOB0R7XIB7oA==
X-Gm-Gg: ASbGncuWQGZU6QXvqpPe1ijAqIYJ/nrqsne465+mBd8LUOQLYlTfGy3E3qqku5+ZNal
	FIS5MGWTFUeGzvJKCCcHCQMWP+fwMQknaiG5/9PDsVJ7IpRzAFZ7R9Fwpa+Q8xJLA170FngKFTE
	RoS9zzF3HRQJm5g+1RET7Gy6dZ30CfQscG/GgQ2Dyr//3UaXZbpxQdfgnTCTTQQdo1Pgf2QKKnR
	xdCPKx/rS7reg/xkfIkRJSAS0/RxiZ//RItyViChw18jgF+YyqHdp07drN+bjLr2AglcRE+HJ6J
	VDhuY6r/EWiB4z1xSs9O9OE2O5aw+cj+Kt7Tygi7uGZbaaeS5n+ZvSGjpnhsjVKduywhClr+Rfl
	D4kO/vqdUQ9Odhkiv+CLkOEahrsMAvcmVp3/IQondAAiJB06UHIRATPUtcbV9DSdEVjlocLHjxy
	L64k7KVZE=
X-Google-Smtp-Source: AGHT+IGWFDy3SIXXdYLrwTP+uFNFe6+MqwFruVeDwkO3f0z+BIpZkJ/iUv5d0KfrCBmLkIhJI5T+xQ==
X-Received: by 2002:a17:907:d8d:b0:af9:2e26:4636 with SMTP id a640c23a62f3a-af940173110mr923964166b.32.1754316983481;
        Mon, 04 Aug 2025 07:16:23 -0700 (PDT)
Message-ID: <48dcca92-4dd8-4d6e-a4cb-c10a7ee80f19@suse.com>
Date: Mon, 4 Aug 2025 16:16:22 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 08/20] xen/riscv: add new p2m types and helper macros
 for type classification
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <3d35b6f4bb79048647020ed4e7b222585ca3a9a3.1753973161.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: <3d35b6f4bb79048647020ed4e7b222585ca3a9a3.1753973161.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 31.07.2025 17:58, Oleksii Kurochko wrote:
> - Extended p2m_type_t with additional types: p2m_mmio_direct,
>   p2m_grant_map_{rw,ro}.
> - Added macros to classify memory types: P2M_RAM_TYPES, P2M_GRANT_TYPES.
> - Introduced helper predicates: p2m_is_ram(), p2m_is_any_ram().
> - Define p2m_mmio_direct to tell handle_passthrough_prop() from common
>   code how to map device memory.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Almost ready to be acked, except for ...

> --- a/xen/arch/riscv/include/asm/p2m.h
> +++ b/xen/arch/riscv/include/asm/p2m.h
> @@ -62,8 +62,30 @@ struct p2m_domain {
>  typedef enum {
>      p2m_invalid = 0,    /* Nothing mapped here */
>      p2m_ram_rw,         /* Normal read/write domain RAM */
> +    p2m_mmio_direct_io, /* Read/write mapping of genuine Device MMIO area,
> +                           PTE_PBMT_IO will be used for such mappings */
> +    p2m_ext_storage,    /* Following types'll be stored outsude PTE bits: */
> +    p2m_grant_map_rw,   /* Read/write grant mapping */
> +    p2m_grant_map_ro,   /* Read-only grant mapping */
>  } p2m_type_t;
>  
> +#define p2m_mmio_direct p2m_mmio_direct_io

... this (see reply to patch 09).

> +/* We use bitmaps and mask to handle groups of types */
> +#define p2m_to_mask(t_) BIT(t_, UL)

I notice that you moved the underscore to the back of the parameters,
compared to how Arm has it. I wonder though: What use are these
underscores in the first place, here and below? (There are macros where
conflicts could arise, but the ones here don't fall in that group,
afaict.)

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 15:02:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 15:02:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069501.1433349 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiwhq-0003WI-Fi; Mon, 04 Aug 2025 15:02:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069501.1433349; Mon, 04 Aug 2025 15: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 1uiwhq-0003VD-CU; Mon, 04 Aug 2025 15:02:30 +0000
Received: by outflank-mailman (input) for mailman id 1069501;
 Mon, 04 Aug 2025 15:02:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=OEzl=2Q=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1uiwho-0003V7-P1
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 15:02:28 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 01ecb330-7144-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 17:02:15 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-459ddf83023so4976615e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 08:02:15 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3b79c47b10asm15546318f8f.60.2025.08.04.08.02.13
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 04 Aug 2025 08:02: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>
X-Inumbo-ID: 01ecb330-7144-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754319735; x=1754924535; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=Ra+2KvMwL1gIIILY0e8xcHmgCZ5EEzejiGz4ScwUAWY=;
        b=RdqC5eIXpM1TKFRLb5OsjgsDMveAHgEkxnaevmqWUi+FiCLhWqdOdsLPenlWAqerPC
         /0TirF8HzF6k3ScQVipw0FX7dLx2V9PnTm8fcK6yRKMG6q9dj1dTQEtBBvWDBECWEoOv
         dug9R9Z1IfabVEIX6K5gLGdcH5rKaqrluudJM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754319735; x=1754924535;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=Ra+2KvMwL1gIIILY0e8xcHmgCZ5EEzejiGz4ScwUAWY=;
        b=pK2vazwyeyYSyTH+RUgcvanzzPJl6gQTB1UKLBTIOP5HT5tzRMHST06vAksRDV6qX/
         MtGEfechBqDXTbShzcxgXCtH/0ya4ZfEeM/QIhKv+/JyMYdDQAzoIKh8ZDVV/r6Mgu78
         vU97Jncj34HHlDxjfn1izN+yVErCWx2PJFm5+NSqo+RvE9JTRkt6pZq+aOjgS1D9ttFr
         7lMRnOR7jRic6qAxUe1Z0il/XHk/yu42hxPVbIj6XT2AdqMRB1W1FS2t9HYN/PwCUGXt
         8RWE4tgJ7wvb8HWIU/7q63w+X+QpCuExgabKw46KpRIv0ESzKnlkiFI32rt2o/ojxZwG
         InfA==
X-Gm-Message-State: AOJu0YyETYlB0rVf5vig41vLGqz34DwcXhohcUpGesg6FCF7I5XBkQ3J
	fj+Ft3NpeCvFdT7rrHO1sGMLquaroGGq9GjYqosSJKdNvnPh9Yx9Yb5Xb4ikXuZJ35U=
X-Gm-Gg: ASbGncu3N7botJgt5MC4DxuZ1jZ0A8RNQNXy7dAnXjSBwGWo3zXQre7yc9KIQXuiDm4
	3Imx/JT+vKRIaOlQqzQxhj2hhG9UXdxFAlXsb+Js4BvkNLqPpa7uyMv6sBGFEGfRkQgi3PzLQZp
	C28qpZ2N+Nx6hBpHxcitpQK2yptPNrnC3l2gaJ1f4GN28awPqFl0ufqL/1egQY7JIAAnI9jrM6M
	bykwJoc/LQ11ulfz1RIvvUoR2pgShr+Qqq0ZbMUhcTbeCYJ60LM/cBr75JAQdpyrG7LFp63Q8e4
	oOTo5IDXCKMPrx8PhW4ytp1VukuHeFTFWsZ6eg1KB+YLYbxSjPb6ys4hE59hBYrJuzxxXGeDclh
	/b+eKfcFGifF1tClZ7YHDuZDp/TJSkp+aEhyfiVxlMJjcRaC/XK+Hh9kv6UUUyMr65g==
X-Google-Smtp-Source: AGHT+IF9Wwue/lSscaS6cVbgXxpWhyb6gs3+Hf4VDUamXB3dfd7reHIb8wT9ex2THYMkYIJXut5P+g==
X-Received: by 2002:a05:600c:3b93:b0:459:94a7:220f with SMTP id 5b1f17b1804b1-45994a72576mr49153515e9.26.1754319734525;
        Mon, 04 Aug 2025 08:02:14 -0700 (PDT)
Date: Mon, 4 Aug 2025 17:02:13 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org,
	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>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>
Subject: Re: [PATCH v2 1/3] vpci: allow queueing of mapping operations
Message-ID: <aJDLdb4wngFMJ7tA@macbook.local>
References: <20250723163744.13095-1-stewart.hildebrand@amd.com>
 <20250723163744.13095-2-stewart.hildebrand@amd.com>
 <aIJi8E2BC-dzAIz8@macbook.local>
 <aIM5IR-d4_u19JVe@macbook.local>
 <6d5545a2-bbf0-4cf9-9820-5eaf6d8530f8@amd.com>
 <aJC76twnBXNQnA3d@macbook.local>
 <6b8a8631-14c5-4e57-91f9-22acdf7efa07@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <6b8a8631-14c5-4e57-91f9-22acdf7efa07@suse.com>

On Mon, Aug 04, 2025 at 03:57:24PM +0200, Jan Beulich wrote:
> On 04.08.2025 15:55, Roger Pau MonnÃ© wrote:
> > On Fri, Aug 01, 2025 at 05:06:32PM -0400, Stewart Hildebrand wrote:
> >> On 7/25/25 03:58, Roger Pau MonnÃ© wrote:
> >>> On Thu, Jul 24, 2025 at 06:44:32PM +0200, Roger Pau MonnÃ© wrote:
> >>>> On Wed, Jul 23, 2025 at 12:37:41PM -0400, Stewart Hildebrand wrote:
> >>>>> @@ -283,7 +297,48 @@ static int __init apply_map(struct domain *d, const struct pci_dev *pdev,
> >>>>>      return rc;
> >>>>>  }
> >>>>>  
> >>>>> -static void defer_map(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
> >>>>> +static struct vpci_map_task *alloc_map_task(const struct pci_dev *pdev,
> >>>>> +                                            uint16_t cmd, bool rom_only)
> >>>>> +{
> >>>>> +    struct vpci_map_task *task = xzalloc(struct vpci_map_task);
> >>>>
> >>>> xvzalloc() preferably.
> >>>>
> >>>> This however introduces run-time allocations as a result of guest
> >>>> actions, which is not ideal IMO.  It would be preferable to do those
> >>>> allocations as part of the header initialization, and re-use them.
> >>>
> >>> I've been thinking over this, as I've realized that while commenting
> >>> on it, I didn't provide any alternatives.
> >>>
> >>> The usage of rangesets to figure out the regions to map is already not
> >>> optimal, as adding/removing from a rangeset can lead to memory
> >>> allocations.  It would be good if we could create rangesets with a
> >>> pre-allocated number of ranges (iow: a pool of struct ranges), but
> >>> that's for another patchset.  I think Jan already commented on this
> >>> aspect long time ago.
> >>
> >> +1
> >>
> >>> I'm considering whether to allocate the deferred mapping structures
> >>> per-vCPU instead of per-device.  That would for example mean moving
> >>> the current vpci_bar->mem rangeset so it's allocated in vpci_vcpu
> >>> struct instead.  The point would be to not have the rangesets per
> >>> device (because there can be a lot of devices, specially for the
> >>> hardware domain), but instead have those per-vCPU.  This should work
> >>> because a vCPU can only queue a single vPCI operation, from a single
> >>> device.
> >>>
> >>> It should then be possible to allocate the deferred mapping structures
> >>> at vCPU creation.  I also ponder if we really need a linked list to
> >>> queue them; AFAIK there can only ever be an unmapping and a mapping
> >>> operation pending (so 2 operations at most).  Hence we could use a
> >>> more "fixed" structure like an array.  For example in struct vpci_vcpu
> >>> you could introduce a struct vpci_map_task task[2] field?
> >>>
> >>> Sorry, I know this is not a minor change to request.  It shouldn't
> >>> change the overall logic much, but it would inevitably affect the
> >>> code.  Let me know what you think.
> >>
> >> Thanks for the feedback and suggestion. Yeah, I'll give this a try.
> >> Here's roughly what I'm thinking so far. I'll keep playing with it.
> >>
> >> diff --git a/xen/common/domain.c b/xen/common/domain.c
> >> index 5241a1629eeb..942c9fe7d364 100644
> >> --- a/xen/common/domain.c
> >> +++ b/xen/common/domain.c
> >> @@ -387,6 +387,16 @@ static int vmtrace_alloc_buffer(struct vcpu *v)
> >>   */
> >>  static int vcpu_teardown(struct vcpu *v)
> >>  {
> >> +#ifdef CONFIG_HAS_VPCI
> >> +    for ( unsigned int i = 0; i < ARRAY_SIZE(v->vpci.task); i++ )
> >> +    {
> >> +        struct vpci_map_task *task = &v->vpci.task[i];
> >> +
> >> +        for ( unsigned int j = 0; j < ARRAY_SIZE(task->bars); j++ )
> >> +            rangeset_destroy(task->bars[j].mem);
> > 
> > You might want to additionally do:
> > 
> > task->bars[j].mem = NULL;
> 
> Should we perhaps introduce RANGESET_DESTROY() along the lines of XFREE() et al?

Yes, I was wondering whether to recommend it here, but didn't want to
add noise, so was planning on adding this to my queue.  But yes, if
you can/will please do it Stewart.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 15:18:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 15:18:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069509.1433361 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiwwn-0007tN-Nt; Mon, 04 Aug 2025 15:17:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069509.1433361; Mon, 04 Aug 2025 15:17: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 1uiwwn-0007tG-Js; Mon, 04 Aug 2025 15:17:57 +0000
Received: by outflank-mailman (input) for mailman id 1069509;
 Mon, 04 Aug 2025 15:17:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ZEzI=2Q=net-space.pl=dkiper@srs-se1.protection.inumbo.net>)
 id 1uiwwl-0007tA-Mk
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 15:17:55 +0000
Received: from dibed.net-space.pl (dibed.net-space.pl [84.10.22.86])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2dd7547a-7146-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 17:17:48 +0200 (CEST)
Received: from router-fw.i.net-space.pl ([192.168.52.1]:41720 "EHLO
 tomti.i.net-space.pl") by router-fw-old.i.net-space.pl with ESMTP
 id S2271495AblHDPRq (ORCPT <rfc822;xen-devel@lists.xenproject.org>);
 Mon, 4 Aug 2025 17:17:46 +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>
X-Inumbo-ID: 2dd7547a-7146-11f0-b898-0df219b8e170
X-Comment: RFC 2476 MSA function at dibed.net-space.pl logged sender identity as: dkiper
Date:	Mon, 4 Aug 2025 17:17:43 +0200
From:	Daniel Kiper <dkiper@net-space.pl>
To:	Aaron Rainbolt <arraybolt3@gmail.com>
Cc:	grub-devel@gnu.org, xen-devel@lists.xenproject.org
Subject: Re: [RESEND PATCH v3 1/1] kern/xen: Add Xen command line parsing
Message-ID: <20250804151743.cjngftaseqesmht3@tomti.i.net-space.pl>
References: <20250725153012.1dd46644@kf-m2g5>
 <20250725153112.4ea25243@kf-m2g5>
 <20250801125536.mc2sjrdyikljzea6@tomti.i.net-space.pl>
 <20250803105703.5c83d4b2@kf-m2g5>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250803105703.5c83d4b2@kf-m2g5>
User-Agent: NeoMutt/20170113 (1.7.2)

On Sun, Aug 03, 2025 at 10:57:03AM -0500, Aaron Rainbolt wrote:
> On Fri, 1 Aug 2025 14:55:36 +0200 Daniel Kiper <dkiper@net-space.pl> wrote:
> > On Fri, Jul 25, 2025 at 03:31:12PM -0500, Aaron Rainbolt wrote:
> > > Xen traditionally allows customizing guest behavior by passing
> > > arguments to the VM kernel via the kernel command line. This is no
> > > longer possible when using GRUB with Xen, as the kernel command
> > > line is decided by the GRUB configuration file within the guest,
> > > not data passed to the guest by Xen.
> > >
> > > To work around this limitation, enable GRUB to parse a command line
> > > passed to it by Xen, and expose data from the command line to the
> > > GRUB configuration as environment variables. These variables can be
> > > used in the GRUB configuration for any desired purpose, such as
> > > extending the kernel command line passed to the guest. The command
> > > line format is inspired by the Linux kernel's command line format.
> > >
> > > To reduce the risk of misuse, abuse, or accidents in production, the
> > > command line will only be parsed if it consists entirely of 7-bit
> > > ASCII characters, only alphabetical characters and underscores are
> > > permitted in variable names, and all variable names must start with
> > > the string "xen_grub_env_". This also allows room for expanding the
> > > command line arguments accepted by GRUB in the future, should other
> > > arguments end up becoming desirable in the future.
> > >
> > > Signed-off-by: Aaron Rainbolt <arraybolt3@gmail.com>
> > > ---
> > >  docs/grub.texi                |  50 +++++
> > >  grub-core/Makefile.core.def   |   2 +
> > >  grub-core/kern/i386/xen/pvh.c |  14 ++
> > >  grub-core/kern/main.c         |  12 ++
> > >  grub-core/kern/xen/cmdline.c  | 343
> > > ++++++++++++++++++++++++++++++++++ include/grub/xen.h            |
> > >  2 + 6 files changed, 423 insertions(+)
> > >  create mode 100644 grub-core/kern/xen/cmdline.c
> > >
> > > diff --git a/docs/grub.texi b/docs/grub.texi
> > > index 34b3484..ce82483 100644
> > > --- a/docs/grub.texi
> > > +++ b/docs/grub.texi
> > > @@ -3271,6 +3271,7 @@ GRUB.  Others may be used freely in GRUB
> > > configuration files. @menu
> > >  * Special environment variables::
> > >  * Environment block::
> > > +* Passing environment variables through Xen::
> > >  @end menu
> > >
> > >
> > > @@ -3871,6 +3872,55 @@ using BIOS or EFI functions (no ATA, USB or
> > > IEEE1275). @command{grub-mkconfig} uses this facility to implement
> > >  @samp{GRUB_SAVEDEFAULT} (@pxref{Simple configuration}).
> > >
> > > +@node Passing environment variables through Xen
> > > +@section Passing environment variables through Xen
> > > +
> > > +If you are using a GRUB image as the kernel for a PV or PVH Xen
> > > virtual +machine, you can pass environment variables from Xen's
> > > dom0 to the VM through +the Xen-provided kernel command line. When
> > > combined with a properly configured +guest, this can be used to
> > > customize the guest's behavior on bootup via the +VM's Xen
> > > configuration file. +
> > > +GRUB will parse the kernel command line passed to it by Xen during
> > > bootup. +The command line will be split into space-delimited words.
> > > Single and +double quotes may be used to quote words or portions of
> > > words that contain +spaces. Arbitrary characters may be
> > > backslash-escaped to make them a literal +component of a word
> > > rather than being parsed as quotes or word separators. The +command
> > > line must consist entirely of printable 7-bit ASCII characters and
> > > +spaces. If a non-printing ASCII character is found anywhere in the
> > > command +line, the entire command line will be ignored by GRUB. +
> > > +Each word should be a variable assignment in the format
> > > ``variable'' or +``variable=value''. Variable names must contain
> > > only the characters A-Z, a-z, +and underscore (``_''). Variable
> > > names must begin with the string +``xen_grub_env_''. Variable
> > > values can contain arbitrary printable 7-bit +ASCII characters and
> > > space. If any variable contains an illegal name, that +variable
> > > will be ignored. +
> > > +If a variable name and value are both specified, the variable will
> > > be set to +the specified value. If only a variable name is
> > > specified, the variable's +value will be set to ``1''.
> > > +
> > > +The following is a simple example of how to use this functionality
> > > to append +arbitrary variables to a guest's kernel command line:
> > > +
> > > +@example
> > > +# In the Xen configuration file for the guest
> > > +name = "linux_vm"
> > > +type = "pvh"
> > > +kernel = "/path/to/grub-i386-xen_pvh.bin"
> > > +extra = "xen_grub_env_kernelappend='loglevel=3'"
> >
> > s/kernelappend/kernel_append/
> >
> > or maybe even
> >
> > s/kernelappend/linux_append/
> >
> > to make it clear it is appended to the "linux" command line...
>
> Will do.
>
> > > +memory = 1024
> > > +disk = [ "file:/srv/vms/linux_vm.img,sda,w" ]
> > > +
> > > +# In the guest's GRUB configuration file
> > > +menuentry "Linux VM with dom0-specified kernel parameters" @{
> > > +    search --set=root --label linux_vm --hint hd0,msdos1
> > > +    linux /boot/vmlinuz root=LABEL=linux_vm
> > > $@{xen_grub_env_kernelappend@}
> >
> > Ditto...
>
> Will do.
>
> > > +    initrd /boot/initrd.img
> > > +@}
> > > +@end example
> > > +
> > >  @node Modules
> > >  @chapter Modules
> > >
> > > diff --git a/grub-core/Makefile.core.def
> > > b/grub-core/Makefile.core.def index b3f7119..df0f266 100644
> > > --- a/grub-core/Makefile.core.def
> > > +++ b/grub-core/Makefile.core.def
> > > @@ -248,6 +248,7 @@ kernel = {
> > >    xen = term/xen/console.c;
> > >    xen = disk/xen/xendisk.c;
> > >    xen = commands/boot.c;
> > > +  xen = kern/xen/cmdline.c;
> > >
> > >    i386_xen_pvh = commands/boot.c;
> > >    i386_xen_pvh = disk/xen/xendisk.c;
> > > @@ -255,6 +256,7 @@ kernel = {
> > >    i386_xen_pvh = kern/i386/xen/tsc.c;
> > >    i386_xen_pvh = kern/i386/xen/pvh.c;
> > >    i386_xen_pvh = kern/xen/init.c;
> > > +  i386_xen_pvh = kern/xen/cmdline.c;
> > >    i386_xen_pvh = term/xen/console.c;
> > >
> > >    ia64_efi = kern/ia64/efi/startup.S;
> > > diff --git a/grub-core/kern/i386/xen/pvh.c
> > > b/grub-core/kern/i386/xen/pvh.c index 91fbca8..12df2d8 100644
> > > --- a/grub-core/kern/i386/xen/pvh.c
> > > +++ b/grub-core/kern/i386/xen/pvh.c
> > > @@ -321,6 +321,8 @@ void
> > >  grub_xen_setup_pvh (void)
> > >  {
> > >    grub_addr_t par;
> > > +  const char *xen_cmdline;
> > > +  int i;
> > >
> > >    grub_xen_cpuid_base ();
> > >    grub_xen_setup_hypercall_page ();
> > > @@ -352,6 +354,18 @@ grub_xen_setup_pvh (void)
> > >    grub_xen_mm_init_regions ();
> > >
> > >    grub_rsdp_addr = pvh_start_info->rsdp_paddr;
> > > +
> > > +  xen_cmdline = (const char *) pvh_start_info->cmdline_paddr;
> > > +  for (i = 0; i < MAX_GUEST_CMDLINE; i++)
> >
> > Oh, MAX_GUEST_CMDLINE is a too generic. May I ask you to rename it to
> > GRUB_XEN_MAX_GUEST_CMDLINE? This should be done in separate patch
> > preceding this one.
>
> Sure.
>
> > > +    {
> > > +      if (xen_cmdline[i] == '\0')
> >
> > I cannot see much sense in this check. Please look below...
> >
> > > +        {
> > > +          grub_strncpy ((char *)
> > > grub_xen_start_page_addr->cmd_line,
> > > +			(char *) pvh_start_info->cmdline_paddr,
> >
> > s/char */const char */
> >
> > Is it always guaranteed that pvh_start_info->cmdline_paddr have
> > MAX_GUEST_CMDLINE size? If yes then...
>
> It is not guaranteed. I tested this under Qubes OS, and it is
> unfortunately very possible to pass a guest command line longer than
> MAX_GUEST_CMDLINE via pvh_start_info->cmdline_paddr. I do not know of
> any documentation specifying what the "real" maximum length is in this
> instance (if any), but in any event the string ultimately has to be
> crammed into an array that is only MAX_GUEST_CMDLINE long. Originally I
> wrote this to truncate the command line in this situation, but later
> decided that discarding the command line would be safer than truncation.

I think you are confusing source, grub_xen_start_page_addr->cmd_line,
and destination, pvh_start_info->cmdline_paddr. I am asking about the
destination...

> (When booting a VM in PV mode, Xen does guarantee the command line will
> not be longer than MAX_GUEST_CMDLINE and will simply return a truncated
> command line. There is no way to detect this condition to my awareness,
> so in PV mode, we simply live with the truncation since we aren't given
> another option.)

OK...

> > grub_memset ((void *) pvh_start_info->cmdline_paddr, 0,
> > MAX_GUEST_CMDLINE); grub_strncpy ((char *)
> > grub_xen_start_page_addr->cmd_line, (const char *)
> > pvh_start_info->cmdline_paddr, MAX_GUEST_CMDLINE - 1);
> >
> > ... and you are done...
>
> This would truncate the command line rather than discarding it. If the
> goal is consistency with Xen's PV mode, then I can switch to this, but
> I don't like the idea of booting a guest with corrupted data inserted
> randomly into the grub.cfg file. (Like mentioned above, there isn't any
> other option when using PV mode, but just because PV mode does things
> dangerously doesn't mean we have to when running in PVH mode.)

OK, but please remember you have to ensure the string is NUL-terminated
after grub_strncpy(). Potentially you could also use grub_strlen() to
make a check and add NUL in proper place...

> > > +			MAX_GUEST_CMDLINE);
> > > +          break;
> > > +        }
> > > +    }
> > >  }
> > >
> > >  grub_err_t
> > > diff --git a/grub-core/kern/main.c b/grub-core/kern/main.c
> > > index 143a232..b4377d3 100644
> > > --- a/grub-core/kern/main.c
> > > +++ b/grub-core/kern/main.c
> > > @@ -37,6 +37,10 @@
> > >  #include <grub/machine/memory.h>
> > >  #endif
> > >
> > > +#if defined (GRUB_MACHINE_XEN) || defined (GRUB_MACHINE_XEN_PVH)
> > > +#include <grub/xen.h>
> > > +#endif
> > > +
> > >  static bool cli_disabled = false;
> > >  static bool cli_need_auth = false;
> > >
> > > @@ -351,6 +355,14 @@ grub_main (void)
> > >    grub_env_export ("root");
> > >    grub_env_export ("prefix");
> > >
> > > +  /*
> > > +   * Parse command line parameters from Xen and export them as
> > > environment
> > > +   * variables
> > > +   */
> > > +#if defined (GRUB_MACHINE_XEN) || defined (GRUB_MACHINE_XEN_PVH)
> > > +  grub_parse_xen_cmdline ();
> >
> > Please move this call to the
> > grub-core/kern/xen/init.c:grub_machine_init().
>
> Will do.
>
> > > +#endif
> > > +
> > >    /* Reclaim space used for modules.  */
> > >    reclaim_module_space ();
> > >
> > > diff --git a/grub-core/kern/xen/cmdline.c
> > > b/grub-core/kern/xen/cmdline.c new file mode 100644
> > > index 0000000..03dd88f
> > > --- /dev/null
> > > +++ b/grub-core/kern/xen/cmdline.c
> > > @@ -0,0 +1,343 @@
> > > +/*
> > > + *  GRUB  --  GRand Unified Bootloader
> > > + *  Copyright (C) 2025  Free Software Foundation, Inc.
> > > + *
> > > + *  GRUB 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 3 of the License,
> > > or
> > > + *  (at your option) any later version.
> > > + *
> > > + *  GRUB 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 GRUB.  If not, see <http://www.gnu.org/licenses/>.
> > > + */
> > > +
> > > +#include <grub/env.h>
> > > +#include <grub/misc.h>
> > > +#include <grub/mm.h>
> > > +#include <grub/xen.h>
> > > +
> > > +enum parse_flags
> > > +{
> > > +  PARSER_HIT_BACKSLASH = 0x1,
> > > +  PARSER_IN_SINGLE_QUOTES = 0x2,
> > > +  PARSER_IN_DOUBLE_QUOTES = 0x4,
> > > +};
> > typedef parse_flags parse_flags_t;
> >
> > ... and use parse_flags_t instead below...
>
> Will do.
>
> > And probably this should be a local variable...
>
> See below for comments on globals in the parser.
>
> > > +
> > > +#define PARSER_BASE_WORD_LEN 16
> >
> > This constant begs for a few words of comment...
>
> Will add. This is just the initial length of the dynamically allocated
> buffer for storing each "word" of the command line, but it is confusing
> as written. Perhaps it should be renamed to PARSER_WORD_BUF_START_LEN
> or similar, to make it clear this isn't a string length, but a buffer
> length?

s/length/size/ then... However, then why 16 not, e.g., 32?

> > > +static grub_size_t word_list_len;
> > > +static char **word_list;
> > > +static grub_size_t current_word_len;
> > > +static grub_size_t current_word_pos;
> > > +static char *current_word;
> > > +static char current_char;
> >
> > I have a feeling that most if not all of this variables should be
> > local in a given function...
>
> I made them globals because making them local would have required an
> awful lot of parameter "shuttling" that I believed made the code less
> readable. For instance, the `append_word_to_list` function right now
> has no parameters and can be called very simply by the parser whenever
> it is needed. If all variables used were local, the function would have
> to have a signature akin to:
>
>   static bool append_word_to_list(grub_size_t *current_word_pos_ref,
>     grub_size_t *current_word_len_ref, char *current_word,
>     grub_size_t *word_list_len_ref, char **word_list)
>
> IMO this is difficult to read and frustrating to call (possibly even
> error-prone). Ultimately the variables are "local" to the parser, and
> the functions are just there to split up the parser's algorithm to
> avoid repetition. They all ultimately operate on the same state, so
> having the state variables static but global within the file fits the
> current parser design well.

First of all, think about the design. If you are sure it is optimal then
please use struct and a pointer to pass as many argument as you need...

> > > +static bool
> > > +append_char_to_word (bool allow_null)
> > > +{
> > > +  /*
> > > +   * Fail if the current char is outside of the range 0x20 to
> > > 0x7E. If
> > > +   * allow_null is true, make an exception for 0x00. This is a
> > > safeguard
> >
> > Could you elaborate here when allow_null == true is useful?
>
> Usually when appending characters to a word, you aren't going to be
> appending null characters, thus `append_char_to_word` usually rejects

s/null/NUL/...

> those so as to make it harder to mess things up. However, the string
> does need to be null-terminated, and thus once a command line word is

Ditto... In general, even it is correct, I prefer to use NUL instead of
null/NULL to avoid confusion...

> fully loaded into current_word, it is necessary to add the null
> terminator on the end. In this instance the parser sets `current_char`
> to '\0' and then calls the `append_char_to_word` function with
> `allow_null` set to true, so that the function knows that the addition
> of a null is intentional here.
>
> (In retrospect, if allow_null is set to true, the only thing
> `append_char_to_word` should append is a null character, it should
> reject anything else in that instance. Otherwise someone could
> accidentally append something other than a null when they meant to
> append a null.)

Is not it simpler to open code this instead of complicating this function?

> > > +   * against likely-invalid data.
> > > +   */
> > > +  if ( (!(current_char >= 0x20) || !(current_char <= 0x7E) )
> >
> > grub_isprint()?
>
> That would work, I wasn't aware that existed. Maybe a mention of some
> valuable GRUB internal API functions that are likely to remain stable
> could be added to the GRUB development manual? (Or just a reference to
> header files where useful things like this are defined.)

Certainly it is a good idea. In general you can assume the GRUB has a lot
of POSIX compatible functions which names are prefixed with "grub_".

> > > +      && (current_char != '\0' || allow_null == false))
> >
> > I would drop redundant spaces between "(" and ")" and move "&&" to the
> > end of first line of "if".
>
> Will do, though I'm likely to rewrite this conditional anyway so that
> anything other than '\0' will be rejected when `allow_null == true`.
>
> > > +    return false;
> > > +
> > > +  if (current_word_pos == current_word_len)
> > > +    {
> > > +      current_word_len *= 2;
> >
> > You can do this in the argument of the function below...
>
> I mean, yes, technically I can, but that's a lot less readable to me. I
> can't find anywhere else in GRUB that uses that style (using
> `grep -ri '\*='` to search), and can find a few spots that use a style
> similar to the one I've used here:
>
> * `util/grub-install.c` in function `device_map_check_duplicates`
> * `grub-core/osdep/windows/platform.c` in function `get_efi_variable`
> * `grub-core/osdep/unix/platform.c` in function `get_ofpathname`
>
> > > +      current_word = grub_realloc (current_word, current_word_len);
> > > +      if (current_word == NULL)
> > > +        {
> > > +          current_word_len /= 2;
> > > +          return false;
> > > +        }
> > > +    }
> > > +
> > > +  current_word[current_word_pos] = current_char;
> > > +  current_word_pos++;
> >
> > Again, you can do this operation in the "[]" above...
>
> Will do. (This does seem to be a much more common way to write things
> in GRUB than what I've done.)
>
> > > +  return true;
> > > +}
> > > +
> > > +static bool
> > > +append_word_to_list (void)
> > > +{
> > > +  /* No-op on empty words. */
> > > +  if (current_word_pos == 0)
> >
> > This should be probably an argument for the function...
>
> See above for parser state and global variables rationale.
>
> > > +    return true;
> > > +
> > > +  current_char = '\0';
> > > +  if (append_char_to_word (true) == false)
> > > +    {
> > > +      grub_error (GRUB_ERR_BUG,
> > > +		  "couldn't append null terminator to word during
> > > Xen cmdline parsing");
> > > +      grub_print_error ();
> > > +      grub_exit ();
> > > +    }
> > > +
> > > +  current_word_len = grub_strlen (current_word) + 1;
> > > +  current_word = grub_realloc (current_word, current_word_len);
> > > +  if (current_word == NULL)
> > > +    return false;
> > > +  word_list_len++;
> >
> > Again this, OK ++word_list_len to be precise, can be done in a
> > function argument below...
>
> `grep -ri 'alloc.*++'` doesn't show me any instance of this style
> anywhere else in the GRUB codebase, and I find it much more difficult
> to read since now I have to think about incrementing `word_list_len`'s
> value and returning it and multiplying the returned value all at the
> same time. `grub-core/osdep/unix/platform.c` uses the style I've used
> here.
>
> > > +  word_list = grub_realloc (word_list, word_list_len * sizeof
> > > (char *));

word_list = grub_realloc (word_list, ++word_list_len * sizeof (char *a));

Is it really difficult to read? I do not think so...

[...]

> > > +void
> > > +grub_parse_xen_cmdline (void)
> > > +{
> > > +  const char *cmdline = (const char *)
> > > grub_xen_start_page_addr->cmd_line;
> > > +  grub_size_t cmdline_len;
> > > +  bool cmdline_valid = false;
> > > +  char **param_keys = NULL;
> > > +  char **param_vals = NULL;
> > > +  grub_size_t param_dict_len = 0;
> > > +  grub_size_t param_dict_pos = 0;
> > > +  enum parse_flags parse_flags = 0;
> > > +  grub_size_t i = 0;
> > > +
> > > +  /*
> > > +   * The following algorithm is used to parse the Xen command line:
> > > +   *
> > > +   * - The command line is split into space-separated words.
> > > +   *   - Single and double quotes may be used to suppress the
> > > splitting
> > > +   *     behavior of spaces.
> > > +   *   - Double quotes are appended to the current word verbatim
> > > if they
> > > +   *     appear within a single-quoted string portion, and vice
> > > versa.
> > > +   *   - Backslashes may be used to cause the next character to be
> > > +   *     appended to the current word verbatim. This is only
> > > useful when
> > > +   *     used to escape quotes, spaces, and backslashes, but for
> > > simplicity
> > > +   *     we allow backslash-escaping anything.
> > > +   * - After splitting the command line into words, each word is
> > > checked to
> > > +   *   see if it contains an equals sign.
> > > +   *   - If it does, it is split on the equals sign into a
> > > key-value pair. The
> > > +   *     key is then treated as an variable name, and the value is
> > > treated as
> > > +   *     the variable's value.
> > > +   *   - If it does not, the entire word is treated as a variable
> > > name. The
> > > +   *     variable's value is implicitly considered to be `1`.
> > > +   * - All variables detected on the command line are checked to
> > > see if their
> > > +   *   names begin with the string `xen_grub_env_`. Variables that
> > > do not pass
> > > +   *   this check are discarded, variables that do pass this check
> > > are
> > > +   *   exported so they are available to the GRUB configuration.
> >
> > I think not all from this valuable comment landed in the
> > documentation. Please fix it...
>
> Comparing the two side-by-side:
>
> +----------------------------------+----------------------------------+
> | Documentation                    | Comment                          |
> +==================================+==================================+
> | The command line will be split   | The command line is split into   |
> | into space-delimited words.      | space-separated words. Single    |
> | Single and double quotes may be  | and double quotes may be used to |
> | used to quote words or portions  | suppress the splitting behavior  |
> | of words that contain spaces.    | of spaces.                       |
> +----------------------------------+----------------------------------+
> | (Self-evident, any other         | Double quotes are appended to    |
> | behavior involving quotes would  | the current word verbatim if     |
> | be extremely unexpected.)        | they appear within a single-     |
> |                                  | quoted string, and vice versa.   |
> +----------------------------------+----------------------------------+
> | Arbitrary characters may be      | Backslashes may be used to cause |
> | backslash-escaped to make them a | the next character to be         |
> | literal component of a word      | appended to the current word     |
> | rather than being parsed as      | verbatim. This is only useful    |
> | quotes or word separators.       | when used to escape quotes,      |
> |                                  | spaces, and backslashes, but for |
> |                                  | simplicity we allow backslash-   |
> |                                  | escaping anything.               |
> +----------------------------------+----------------------------------+
> | Each word should be a variable   | After splitting the command line |
> | assignment in the format         | into words, each word is checked |
> | ``variable'' or                  | to see if it contains an equals  |
> | ``variable=value''.              | sign.                            |
> +----------------------------------+----------------------------------+
> | If a variable name and value are | If it does, it is split on the   |
> | both specified, the variable     | equals sign into a key-value     |
> | will be set to the specified     | pair. The key is then treated as |
> | value.                           | a variable name, and the value   |
> |                                  | treated as the variable's value. |
> +----------------------------------+----------------------------------+
> | If only a variable name is       | If it does not, the entire word  |
> | specified, the variable's value  | is treated as a variable name.   |
> | will be set to ``1''.            | The variable's value is          |
> |                                  | implicitly considered to be '1'. |
> +----------------------------------+----------------------------------+
> | Variable names must begin with   | All variables detected on the    |
> | the string ``xen_grub_env_''...  | command line are checked to see  |
> | If any variable contains an      | if their names begin with the    |
> | illegal name, that variable will | string `xen_grub_env_`.          |
> | be ignored.                      | Variables that do not pass this  |
> |                                  | check are discarded,             |
> +----------------------------------+----------------------------------+
> | ...you can pass environment      | variables that do pass this      |
> | variables from Xen's dom0 to the | check are exported so they are   |
> | VM through the Xen-provided      | available to the GRUB            |
> | kernel command line.             | configuration.                   |
> +----------------------------------+----------------------------------+
>
> The only missing detail I see is that single quotes are legal in
> double-quoted strings and vice versa, though I guess I can make it more
> explicit that the variables passed on the command line are exported
> before getting to the example that shows this. Is there anything else
> you see that's missing?

Exactly, I was thing about single/double quotes here. If other stuff is
in the documentation then OK...

> > > +   */
> > > +
> > > +  current_word_len = PARSER_BASE_WORD_LEN;
> > > +  current_word = grub_malloc (current_word_len);
> > > +  if (current_word == NULL)
> > > +    goto cleanup;
> > > +
> > > +  for (i = 0; i < MAX_GUEST_CMDLINE; i++)
> > > +    {
> > > +      if (cmdline[i] == '\0')
> > > +        {
> > > +          cmdline_valid = true;
> > > +          break;
> > > +        }
> > > +    }
> > > +
> > > +  if (cmdline_valid == false)
> > > +    {
> > > +      grub_error (GRUB_ERR_BAD_ARGUMENT,
> > > +		  "Command line from Xen is not NUL-terminated");
> >
> > GRUB errors usually start with lowercase...
>
> Will fix.
>
> > > +      grub_print_error ();
> > > +      goto cleanup;
> > > +    }
> > > +
> > > +  cmdline_len = grub_strlen (cmdline);
> > > +  for (i = 0; i < cmdline_len; i++)
> > > +    {
> > > +      current_char = cmdline[i];
> > > +
> > > +      /*
> > > +       * If the previous character was a backslash, append the
> > > current
> > > +       * character to the word verbatim
> > > +       */
> > > +      if (parse_flags & PARSER_HIT_BACKSLASH)
> >
> > s/parse_flags/parser_state/
>
> Hmm, I don't like 'parser_state' as a name because the parser's "state"
> is the global variables in `grub-core/kern/xen/cmdline.`. Maybe
> 'splitter_state' instead, since this is just the bit of state that the
> word splitter is concerned with?

I am OK with both...

Daniel


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 15:19:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 15:19:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069521.1433370 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiwyV-0008Vo-4P; Mon, 04 Aug 2025 15:19:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069521.1433370; Mon, 04 Aug 2025 15:19: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 1uiwyV-0008Vh-1K; Mon, 04 Aug 2025 15:19:43 +0000
Received: by outflank-mailman (input) for mailman id 1069521;
 Mon, 04 Aug 2025 15:19:41 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=c2vN=2Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uiwyT-0008VO-0P
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 15:19:41 +0000
Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com
 [2a00:1450:4864:20::52c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7062f0e9-7146-11f0-a321-13f23c93f187;
 Mon, 04 Aug 2025 17:19:39 +0200 (CEST)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-61553a028dfso4336771a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 08:19: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
 4fb4d7f45d1cf-615a8eff596sm7024315a12.5.2025.08.04.08.19.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Aug 2025 08:19: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>
X-Inumbo-ID: 7062f0e9-7146-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754320779; x=1754925579; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=5BEGIl+6nDFuNrPOpcnk+fWPKWWOAF540EnRgCpaDB8=;
        b=cXSaz3qRCMl9AYa6Kgs7RUHgr4rCt6SVXb647n2RJmeqfSo5WF7jtFKTSvJTQzD/IR
         7R6CS2ydzd+ta76Kzsg4NYqM9PghxZiTzjoFigoX864AlWCTcMigfbPMYh+xqrAws5Ip
         SYYwKqcC5nWpBtHDo73xGTJaZNujtRYUkMQykiRv+JOuonYtg9D7HFdAQ3l49bevJA5P
         nRObl8x0W1liiEi4Wt3uThN2FP/RE/DYV3F/53uEWqvzYk434+XjtXcAUjXhpH7xKae1
         963oWo5L53GdohVuSPRoGR9ujgqd1CTESlnn3ALJ0sZmTnmE5D4pD5lr9APlgF9b57be
         o7Kg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754320779; x=1754925579;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5BEGIl+6nDFuNrPOpcnk+fWPKWWOAF540EnRgCpaDB8=;
        b=Miqo7yv0DhYhQ3+Ywg7grLJemyKkqSmp7VASBP94RnILVmDDt4dX6AGbRhsgzPxpls
         5vZjdJdkO2lZPQ9qRCq/z3EuMOj1Qe0HfmtfvecGyHaYYSkaFhdUraaeLIc48WkW5EhL
         V/8zB0BBpTL2oqzb3iAcWPW0nlPRHCOUAcqTy1GDOgI3dZD02hWOcVtvrQfILLnQe3UD
         xyE4ESmPwN4lma3+RmpxLfKSyAao+/bNRCahiMaJFczpsmAv9r+nEuzmZMevvrhaWbV+
         kXRzp6p+x0APQFWz8nly4cEptaRhO+Faxfwv8+gqLG5IzLC7wjEJZUP6b7rKwoJLIIWB
         voiA==
X-Forwarded-Encrypted: i=1; AJvYcCUSHbBuaEAptnSuhMyv3wpNvqb06xtL2CBnWZ9S5sJiuA3/d1OAoMyBw3JSOhNpNJCxBiYh/OxUtBY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyLz9BP1t/ZWtu2hjljO34qeqxLL041LR29wjOHmcxmBngeMEAp
	eoJ8pC+gw1p+6h0HY+pq8vtiMmt80lhY+4AT9CXoqUYANHNZtCwVDSl86NTeGj4fKA==
X-Gm-Gg: ASbGncvJaM94NhQLe3cFwrXTKxCcZlSYK8p5l2BfpuUZY9BHxoxautDxFSQZWQtM4zg
	CyvIr514asBZQwx0IV0I2y06mk98D+56AlB3Oagyq+Nf+A+VQA5eW2GzuaSTbAIUcT//2d20HqZ
	vNAWuRw3UABFRe/gb5vrDCEkD75jqMJm/7tU3cDncuqOUpJm34AHuXAxb5EMUg1zTX9dDsjp2lN
	I/oRdgemWEjSzoPRzRCiiqI+7UlY/gtFsv4xlhtj+49FKzbJqNYn89LwQ36NlxDC8ODptEtKjFH
	aNR1gPuTWmxqrCv9FyoEhw+XTAJ6BM4d+JQb66zcYWAnu4kNLYxLPI/0o0u8l2hJ0/EbMiXmPpp
	F33L0b2kPzwXs+bA6u0r0cMVYZP6ECn/8wD4acIPdX5esU+hLSEy1MeLjMu8WULLOINH8IgWpAI
	NUkBxStq0=
X-Google-Smtp-Source: AGHT+IFkrjhlZsNmXiv9gkcTG5CtSpxqjZSuG6x1coryUFVcSbK8az8nDxf0raQNp41BBluLha4WAw==
X-Received: by 2002:a50:cc03:0:b0:615:b6b9:d873 with SMTP id 4fb4d7f45d1cf-615e715d669mr6751840a12.24.1754320778966;
        Mon, 04 Aug 2025 08:19:38 -0700 (PDT)
Message-ID: <cd1a0c64-49d7-4ae1-8dec-b3b1de3f1d09@suse.com>
Date: Mon, 4 Aug 2025 17:19:37 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 03/20] xen/riscv: introduce VMID allocation and
 manegement
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <d61f5f831ac8045055a1775ee710d4f2fe8dcc26.1753973161.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: <d61f5f831ac8045055a1775ee710d4f2fe8dcc26.1753973161.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 31.07.2025 17:58, Oleksii Kurochko wrote:
> Current implementation is based on x86's way to allocate VMIDs:
>   VMIDs partition the physical TLB. In the current implementation VMIDs are
>   introduced to reduce the number of TLB flushes.  Each time the guest's
>   virtual address space changes,

virtual?

> instead of flushing the TLB, a new VMID is
>   assigned.  This reduces the number of TLB flushes to at most 1/#VMIDs.
>   The biggest advantage is that hot parts of the hypervisor's code and data
>   retain in the TLB.
> 
>   VMIDs are a hart-local resource.  As preemption of VMIDs is not possible,
>   VMIDs are assigned in a round-robin scheme.  To minimize the overhead of
>   VMID invalidation, at the time of a TLB flush, VMIDs are tagged with a
>   64-bit generation. Only on a generation overflow the code needs to
>   invalidate all VMID information stored at the VCPUs with are run on the
>   specific physical processor.  This overflow appears after about 2^80
>   host processor cycles,

Where's this number coming from? (If you provide numbers, I think they will
want to be "reproducible" by the reader. Which I fear isn't the case here.)

> @@ -148,6 +149,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
>  
>      console_init_postirq();
>  
> +    vmid_init();

This lives here only temporarily, I assume? Every hart will need to execute
it, and hence (like we have it on x86) this may want to be a central place
elsewhere.

> --- /dev/null
> +++ b/xen/arch/riscv/vmid.c
> @@ -0,0 +1,165 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#include <xen/domain.h>
> +#include <xen/init.h>
> +#include <xen/sections.h>
> +#include <xen/lib.h>
> +#include <xen/param.h>
> +#include <xen/percpu.h>
> +
> +#include <asm/atomic.h>
> +#include <asm/csr.h>
> +#include <asm/flushtlb.h>
> +
> +/* Xen command-line option to enable VMIDs */
> +static bool __read_mostly opt_vmid_enabled = true;

__ro_after_init ?

> +boolean_param("vmid", opt_vmid_enabled);
> +
> +/*
> + * VMIDs partition the physical TLB. In the current implementation VMIDs are
> + * introduced to reduce the number of TLB flushes.  Each time the guest's
> + * virtual address space changes, instead of flushing the TLB, a new VMID is

The same odd "virtual" again? All the code here is about guest-physical, isn't
it?

> + * assigned. This reduces the number of TLB flushes to at most 1/#VMIDs.
> + * The biggest advantage is that hot parts of the hypervisor's code and data
> + * retain in the TLB.
> + *
> + * Sketch of the Implementation:
> + *
> + * VMIDs are a hart-local resource.  As preemption of VMIDs is not possible,
> + * VMIDs are assigned in a round-robin scheme.  To minimize the overhead of
> + * VMID invalidation, at the time of a TLB flush, VMIDs are tagged with a
> + * 64-bit generation. Only on a generation overflow the code needs to
> + * invalidate all VMID information stored at the VCPUs with are run on the
> + * specific physical processor.  This overflow appears after about 2^80

And the same interesting number again.

> + * host processor cycles, so we do not optimize this case, but simply disable
> + * VMID useage to retain correctness.
> + */
> +
> +/* Per-Hart VMID management. */
> +struct vmid_data {
> +   uint64_t hart_vmid_generation;

Any reason not to simply use "generation"?

> +   uint16_t next_vmid;
> +   uint16_t max_vmid;
> +   bool disabled;
> +};
> +
> +static DEFINE_PER_CPU(struct vmid_data, vmid_data);
> +
> +static unsigned long vmidlen_detect(void)

__init ? Or wait, are you (deliberately) permitting different VMIDLEN
across harts?

> +{
> +    unsigned long vmid_bits;

Why "long" (also for the function return type)?

> +    unsigned long old;
> +
> +    /* Figure-out number of VMID bits in HW */
> +    old = csr_read(CSR_HGATP);
> +
> +    csr_write(CSR_HGATP, old | HGATP_VMID_MASK);
> +    vmid_bits = csr_read(CSR_HGATP);
> +    vmid_bits =  MASK_EXTR(vmid_bits, HGATP_VMID_MASK);

Nit: Stray blank.

> +    vmid_bits = flsl(vmid_bits);
> +    csr_write(CSR_HGATP, old);
> +
> +    /*
> +     * We polluted local TLB so flush all guest TLB as
> +     * a speculative access can happen at any time.
> +     */
> +    local_hfence_gvma_all();

There's no guest running. If you wrote hgat.MODE as zero, as per my
understanding now new TLB entries could even purely theoretically appear.
In fact, with no guest running (yet) I'm having a hard time seeing why
you shouldn't be able to simply write the register with just
HGATP_VMID_MASK, i.e. without OR-ing in "old". It's even questionable
whether "old" needs restoring; writing plain zero afterwards ought to
suffice. You're in charcge of the register, after all.

> +    return vmid_bits;
> +}
> +
> +void vmid_init(void)
> +{
> +    static bool g_disabled = false;



> +    unsigned long vmid_len = vmidlen_detect();
> +    struct vmid_data *data = &this_cpu(vmid_data);
> +    unsigned long max_availalbe_bits = sizeof(data->max_vmid) << 3;

Nit: Typo in "available". Also now that we have it, better use
BITS_PER_BYTE here?

> +    if ( vmid_len > max_availalbe_bits )
> +        panic("%s: VMIDLEN is bigger then a type which represent VMID: %lu(%lu)\n",
> +              __func__, vmid_len, max_availalbe_bits);

This shouldn't be a runtime check imo. What you want to check (at build
time) is that the bits set in HGATP_VMID_MASK can be held in ->max_vmid.

> +    data->max_vmid = BIT(vmid_len, U) - 1;
> +    data->disabled = !opt_vmid_enabled || (vmid_len <= 1);

Actually, what exactly does it mean that "VMIDs are disabled"? There's
no enable bit that I could find anywhere. Isn't it rather that in this
case you need to arrange to flush always on VM entry (or always after a
P2M change, depending how the TLB is split between guest and host use)?
If you look at vmx_vmenter_helper(), its flipping of
SECONDARY_EXEC_ENABLE_VPID tweaks CPU behavior, such that the flush
would be implicit (when the bit is off). I don't expect RISC-V has any
such "implicit" flushing behavior?

> +    if ( g_disabled != data->disabled )
> +    {
> +        printk("%s: VMIDs %sabled.\n", __func__,
> +               data->disabled ? "dis" : "en");
> +        if ( !g_disabled )
> +            g_disabled = data->disabled;

This doesn't match x86 code. g_disabled is a tristate there, which only
the boot CPU would ever write to.

A clear shortcoming of the x86 code (that you copied) is that the log
message doesn't identify the CPU in question. A sequence of "disabled"
and "enabled" could thus result, without the last one (or in fact any
one) making clear what the overall state is. I think you want to avoid
this from the beginning.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 15:24:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 15:24:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069530.1433380 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uix2p-0002yE-KD; Mon, 04 Aug 2025 15:24:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069530.1433380; Mon, 04 Aug 2025 15:24: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 1uix2p-0002y7-HK; Mon, 04 Aug 2025 15:24:11 +0000
Received: by outflank-mailman (input) for mailman id 1069530;
 Mon, 04 Aug 2025 15:24:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=CyS6=2Q=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1uix2o-0002y1-Rg
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 15:24:10 +0000
Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com
 [2a00:1450:4864:20::62a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 10a939a0-7147-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 17:24:08 +0200 (CEST)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-acb5ec407b1so647906466b.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 08:24:08 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a21c0f4sm737650366b.106.2025.08.04.08.24.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Aug 2025 08:24: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>
X-Inumbo-ID: 10a939a0-7147-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754321048; x=1754925848; darn=lists.xenproject.org;
        h=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=oPslYb+1lD22zWCKi4qBzKLdBhSos4c2vDLxYVtWL6k=;
        b=aWiwsmp9wbV65FkXayxP4tl6DoNCWq6JHYkRJhMOx3RFD64KNokFeTJArwMXog3Vm1
         24MKCR+QakGzwhBTPZnjUgNI6DxrwSmSrqARrAar53SD/kThwKEf5oj+rPE4JjoB5oSA
         38FOvW6dICd7XRBkLjfpH36sotPCwH2fJ/M8gmC32qE3V3+32pS0myQzs4sxfMkRlbSc
         EWnQvsgESwTFsHFrQWYlyYM11SP1qPDiyEK7ZAJ9841o5w3cjdJNzoPPw6hX6U5sRUq/
         w19qGFJLtrlLxFv1yIyiT/2zAzbaXhy2AyioVVVb8cftceB8/KLN6WAO0PUsZ82f/ZAZ
         mRTg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754321048; x=1754925848;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=oPslYb+1lD22zWCKi4qBzKLdBhSos4c2vDLxYVtWL6k=;
        b=KbMvQ8aYtdr5lNkgt6SrtVe9AwDQrN1xPrRoWvw8e74dHR9+3MzZahmmYULmYwWBCA
         +in1V243Qr7/4bkj//4Qbgjv9Y72ZIr+mA5rEnWU+Byuv65VmICUC3p8AYdXO53f2bUT
         J+wxTpqDjjXKsVLu4C6nA+MXlqoOI2uvUm+S2QDtGXzkOIIPGLKX6026Mz37OVXeTX/a
         aDRjnDpcla6iBsInQHMrQvK4QcY5wCqt3/qdhj7L85tEMZbmzw1W/e+xp5Laq8Ol5x8/
         219UzuaHILwo13kAfH3UhKZ2RRxYQU7d2/5RR2bZqsRZm99jjD/FliboGPmV7X8pRZ1f
         Zx1A==
X-Forwarded-Encrypted: i=1; AJvYcCVjH/11aK0Gk0tnvceDI5HBJtFY9EnSe8o1digOR1PPkhtQjeTPuJINztIlN5cCg1DKspo740n7skM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxDVjcEupHRRhIrjwKXlkTlgYka9usTtUVDPYNgQ7eW476iHEpR
	0gQJh+jRbTydr23CQZZSnG9uazyMT2mv9ZJh3Ik0cyRTydmOyqGZvhT9
X-Gm-Gg: ASbGncs1689ROQHX4u0cHFGw7ORbPN+aPM2eJAQizV83EWov5PWi+ogig7RsXlSXOtP
	OQtAxXM0Cm7rr0N8aL0P9UC9l6GlKnIRvShSDIKVH8+qnF4GYVV/RYmjTuhohs5HuN+Lq5381xi
	EwsIQg5kgm7kSm+npxXk97og8ASIzgbP059iaS5mmIFe9h0jB5iF9pfvKlh0cPjiWUIQcFfbypz
	DRHLcZZwLlRt1pRJgKaEYeWyd+SWZRyYO8KYxfiRvjWRlD4suDDQjgLAzMpngjXHcD2o80g+NiG
	lpPezqvHSjaYxUasiJAUQ2wDuTRHEUQyDP06CvzpJYqJKaylxVybvJzCQD+lAfXfPD/YTse9gzQ
	nTmVeMdm9EuZktq6xoEtuvWwAainI/gCEdn7UtS7GGLxfx83wrRiC8AkKTJElEz8qYZLht4nIqu
	0e95pF5w==
X-Google-Smtp-Source: AGHT+IFvVPF/BRSCfcZGhAvoI8Ijtji9kGLeAwXoKyehRDzxPAxyYRRaXAbZce4/ph4vSe321XCCFA==
X-Received: by 2002:a17:906:f59f:b0:ae3:6cc8:e426 with SMTP id a640c23a62f3a-af93ffc9053mr853900066b.9.1754321047656;
        Mon, 04 Aug 2025 08:24:07 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------0o3XCAYF34QNn0CFpsFhcHsn"
Message-ID: <4c317d98-a17f-471e-9111-f28bc78924af@gmail.com>
Date: Mon, 4 Aug 2025 17:24:06 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH 3/3] xen/riscv: irq: drop unreachable pirq callbacks
To: Grygorii Strashko <grygorii_strashko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <20250801100852.1260544-1-grygorii_strashko@epam.com>
 <20250801100852.1260544-4-grygorii_strashko@epam.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <20250801100852.1260544-4-grygorii_strashko@epam.com>

This is a multi-part message in MIME format.
--------------0o3XCAYF34QNn0CFpsFhcHsn
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 8/1/25 12:08 PM, Grygorii Strashko wrote:
> From: Grygorii Strashko<grygorii_strashko@epam.com>
>
> Hence all common pIRQ code is under CONFIG_HAS_PIRQ idefs corresponding
> RISCV arch pIRQ callbacks become unreachable, so drop them.
>
> Signed-off-by: Grygorii Strashko<grygorii_strashko@epam.com>
> ---
>   xen/arch/riscv/stubs.c | 20 --------------------
>   1 file changed, 20 deletions(-)
>
> diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
> index 8918cebf35c6..1a8c86cd8da2 100644
> --- a/xen/arch/riscv/stubs.c
> +++ b/xen/arch/riscv/stubs.c
> @@ -82,26 +82,6 @@ void smp_send_call_function_mask(const cpumask_t *mask)
>   
>   /* irq.c */
>   
> -struct pirq *alloc_pirq_struct(struct domain *d)
> -{
> -    BUG_ON("unimplemented");
> -}
> -
> -int pirq_guest_bind(struct vcpu *v, struct pirq *pirq, int will_share)
> -{
> -    BUG_ON("unimplemented");
> -}
> -
> -void pirq_guest_unbind(struct domain *d, struct pirq *pirq)
> -{
> -    BUG_ON("unimplemented");
> -}
> -
> -void pirq_set_affinity(struct domain *d, int pirq, const cpumask_t *mask)
> -{
> -    BUG_ON("unimplemented");
> -}
> -
>   void irq_ack_none(struct irq_desc *desc)
>   {
>       BUG_ON("unimplemented");

LGTM: Reviewed-by: Oleksii Kurochko<oleksii.kurochko@gmail.com>

~ Oleksii

--------------0o3XCAYF34QNn0CFpsFhcHsn
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/1/25 12:08 PM, Grygorii Strashko
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:20250801100852.1260544-4-grygorii_strashko@epam.com">
      <pre wrap="" class="moz-quote-pre">From: Grygorii Strashko <a class="moz-txt-link-rfc2396E" href="mailto:grygorii_strashko@epam.com">&lt;grygorii_strashko@epam.com&gt;</a>

Hence all common pIRQ code is under CONFIG_HAS_PIRQ idefs corresponding
RISCV arch pIRQ callbacks become unreachable, so drop them.

Signed-off-by: Grygorii Strashko <a class="moz-txt-link-rfc2396E" href="mailto:grygorii_strashko@epam.com">&lt;grygorii_strashko@epam.com&gt;</a>
---
 xen/arch/riscv/stubs.c | 20 --------------------
 1 file changed, 20 deletions(-)

diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index 8918cebf35c6..1a8c86cd8da2 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -82,26 +82,6 @@ void smp_send_call_function_mask(const cpumask_t *mask)
 
 /* irq.c */
 
-struct pirq *alloc_pirq_struct(struct domain *d)
-{
-    BUG_ON("unimplemented");
-}
-
-int pirq_guest_bind(struct vcpu *v, struct pirq *pirq, int will_share)
-{
-    BUG_ON("unimplemented");
-}
-
-void pirq_guest_unbind(struct domain *d, struct pirq *pirq)
-{
-    BUG_ON("unimplemented");
-}
-
-void pirq_set_affinity(struct domain *d, int pirq, const cpumask_t *mask)
-{
-    BUG_ON("unimplemented");
-}
-
 void irq_ack_none(struct irq_desc *desc)
 {
     BUG_ON("unimplemented");
</pre>
    </blockquote>
    <pre>LGTM: Reviewed-by: Oleksii Kurochko <a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>

~ Oleksii</pre>
  </body>
</html>

--------------0o3XCAYF34QNn0CFpsFhcHsn--


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 15:31:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 15:31:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069539.1433390 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uix9f-0004d4-AC; Mon, 04 Aug 2025 15:31:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069539.1433390; Mon, 04 Aug 2025 15:31:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uix9f-0004cx-5v; Mon, 04 Aug 2025 15:31:15 +0000
Received: by outflank-mailman (input) for mailman id 1069539;
 Mon, 04 Aug 2025 15:31:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=OEzl=2Q=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1uix9e-0004cr-KB
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 15:31:14 +0000
Received: from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com
 [2a00:1450:4864:20::42e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 088c2b0c-7148-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 17:31:04 +0200 (CEST)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-3b7862bd22bso3104252f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 08:31:04 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3b79c3abedesm16051449f8f.3.2025.08.04.08.31.03
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 04 Aug 2025 08:31: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>
X-Inumbo-ID: 088c2b0c-7148-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754321464; x=1754926264; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=Q6QKNw0BvKcLrBRnTDRClrWwfu22ME003o3Z2eHBmgs=;
        b=dEwIukGhuKyFWMG9dnrECACeoSW8uDL4LIfnfr2NwTRnxkrGqFNFWmULAWuwI7VtHe
         Y0gtmWDh9epamKo8OYdChcWzLeZ8Tg9sfF2IA19QPURnSc1X8zcA8zl0yU/kw2te/PP4
         cmYQe+eB/4K5JBW3L/XuO8sjIcsE33ZxUNUac=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754321464; x=1754926264;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=Q6QKNw0BvKcLrBRnTDRClrWwfu22ME003o3Z2eHBmgs=;
        b=IVrG2K5huJWRxsimwlSNeK2NpztkKwfDYTN8779QqUZ2b3Cnmas9nZYhHEMO2wmcNn
         RqNCQGn7HHsVV+Kgzxr7KVydjFFVyKsmPjyM+M/HJH3SXOA4+HrK4+5LRhnOEA7pUNEV
         8e05UzD18gPBW5it8y9OalIXEdDqR1GWn+h1de5LuMRXt3MZSAuJgHJnb3j0t5YYuUEQ
         tJdQcBA4ylFl6pQviZBFky4Y1pp9WU5Qq2h2LNheQKZD1/6KFhQtZ3Ho1fubgBgDApf9
         I8Weu84uQpcl8UxkAF17xXDAnkagiBu5MGBYa840V2uBAM1pujXMyE8BNOF3weTB6WpR
         kTgg==
X-Forwarded-Encrypted: i=1; AJvYcCUoxQwvW9JWLi5bIp1yBn9e+Y0fb4Z/9Rm54mmf9joRUYvgqAOuVLmjzkmaIpG9QrMmRDVetgima30=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwEu5e8umZlY9iW7X4mXSV1QS/q9BlNrrp1q+SM4m64Fkb/uaZA
	hEXDGGE6tsUg8tGZGoRxJOvtwJe05SvQaqrxjjcdVbc/c48QQ+YpoFOd2+jenhTSOJI=
X-Gm-Gg: ASbGncsxMFBkMV+vnR3fLTqDO+Q7axnJDnlZSwmW4DFpXPFbquoc/zk0s3s2WlLU+Ec
	41150fQbjMP/EMzB9cKkPa4PndKAxA6dRE/CVm5Cbn3iYMZ7iVd6aWSF17/gRhXPf/uLg4TmIO3
	/jyjXQYRfwGytu8cbI77FfEwKt4ML4IFEfS53H0fkHiK7zDziKOU6RNiP6XrwMAH6Lu/BxCrXkd
	j+qbjGNmw0cV/U3vhCr/5aeZfjQLNst72JooOqHzj8n5W539csHUMZqptQWjC8ulX2P9yFWTAkw
	FCctrpT6GzYCpUrByoAorcRvAJYYpa9iHhGhv87zdeDLRiRxJqGjZaKGrWtgDQ9QFOOZllOZf1C
	7nSBi47cYPLnUJ4xLc8IxlOqwbCn6sfj35VPII4jxlXqh9cIsVjGVLSIva/UBFflGZw==
X-Google-Smtp-Source: AGHT+IEA0aWFF/SE+ZgQ1j4YYo7ZFOrPqxduQJUWD/WdPYFWDJMzKW/VY4VbyTOgbvtMyfK8jn230w==
X-Received: by 2002:a5d:5f4c:0:b0:3b7:8acf:1887 with SMTP id ffacd0b85a97d-3b79d4e387emr11114703f8f.13.1754321463874;
        Mon, 04 Aug 2025 08:31:03 -0700 (PDT)
Date: Mon, 4 Aug 2025 17:31:02 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"Huang, Ray" <Ray.Huang@amd.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH v9 5/8] vpci: Refactor vpci_remove_register to remove
 matched registers
Message-ID: <aJDSNon2CdBra9yT@macbook.local>
References: <20250728050401.329510-1-Jiqian.Chen@amd.com>
 <20250728050401.329510-6-Jiqian.Chen@amd.com>
 <89058017-141e-4837-a547-10b41b5d041b@citrix.com>
 <BL1PR12MB58499F7343CAC0206676E0BBE727A@BL1PR12MB5849.namprd12.prod.outlook.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <BL1PR12MB58499F7343CAC0206676E0BBE727A@BL1PR12MB5849.namprd12.prod.outlook.com>

On Thu, Jul 31, 2025 at 06:28:14AM +0000, Chen, Jiqian wrote:
> On 2025/7/30 19:23, Andrew Cooper wrote:
> > On 28/07/2025 6:03 am, Jiqian Chen wrote:
> >> vpci_remove_register() only supports removing a register in a time,
> >> but the follow-on changes need to remove all registers within a range.
> >> So, refactor it to support removing all registers in a given region.
> >>
> >> And it is no issue to remove a non exist register, so remove the
> >> __must_check prefix.
> >>
> >> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> >> Reviewed-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> > 
> > Bisection says this causes an assertion failure in the unit test.
> > 
> > Running /usr/lib/xen/tests/test_vpci
> > Assertion failed: vpci_remove_registers(test_pdev.vpci, 16, 2) (main.c:
> > main: 407)
> > FAILED: /usr/lib/xen/tests/test_vpci
> Thanks Andrew.
> This is because new function vpci_remove_registers() removes all registers inside (offset, offset + size) and returns failure when overlap happens.
> For tools/tests/vpci/main.c, there are layout:
>      *
>      * 32    24    16     8     0
>      *  +------+------+------+------+
>      *  |            r0             | 0
>      *  +------+------+------+------+
>      *  |  r7  |  r6  |  r5  |//////| 4
>      *  +------+------+------+------|
>      *  |///////////////////////////| 8
>      *  +-------------+-------------+
>      *  |/////////////|    r12      | 12
>      *  +------+------+------+------+
>      *  |r16[3]|r16[2]|r16[1]|r16[0]| 16
>      *  +------+------+------+------+
>      *  |    r20[1]   |    r20[0]   | 20
>      *  +-------------+-------------|
>      *  |            r24            | 24
>      *  +------+------+------+------+
>      *  |//////|  r30 |//////|  r28 | 28
>      *  +------+------+------+------+
>      *  |rsvdz |rsvdp | rw1c |  ro  | 32
>      *  +------+------+------+------+
>      *
> As for the last three test cases:
>     VPCI_REMOVE_INVALID_REG(20, 1);
>     This can success as this overlap with r20[0]
>     VPCI_REMOVE_INVALID_REG(16, 2);
>     VPCI_REMOVE_INVALID_REG(30, 2);
>     These two fail as there are r16[0], r16[1] and r30 inside them, so remove success and test cases fail.

Yes, given that vpci_remove_registers() can now remove multiple
handlers in one call those two tests are simply not correct given the
new behavior of the function.

> So, I think we need to change these two test cases to match the new function's logic, like:
> VPCI_REMOVE_INVALID_REG(0, 2);
> VPCI_REMOVE_INVALID_REG(2, 2);

Those two test exactly the same as the (20, 1) call, so I think they
don't add value to the testing.

I would convert them into valid test cases, so:

VPCI_REMOVE_REG(16, 2);
VPCI_REMOVE_REG(30, 2);

Because they now test the new functionality of removing multiple
handlers with a single call (or removing a handler while dealing with
padding on the sides).

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 15:42:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 15:42:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069680.1433455 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uixJx-0001W8-TA; Mon, 04 Aug 2025 15:41:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069680.1433455; Mon, 04 Aug 2025 15: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 1uixJx-0001W1-Q9; Mon, 04 Aug 2025 15:41:53 +0000
Received: by outflank-mailman (input) for mailman id 1069680;
 Mon, 04 Aug 2025 15:41:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=c2vN=2Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uixJv-0001VX-N8
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 15:41:51 +0000
Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com
 [2a00:1450:4864:20::62a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 886cdd11-7149-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 17:41:48 +0200 (CEST)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-adfb562266cso736115966b.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 08:41: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
 a640c23a62f3a-af91a1e82b0sm756737566b.87.2025.08.04.08.41.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Aug 2025 08:41: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>
X-Inumbo-ID: 886cdd11-7149-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754322108; x=1754926908; 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=hF+uact1MjumtddVYv5deeAkwW/D2/tEr3KBEzDcDH0=;
        b=RFo1oPWZPbmr/po7GLXV1e37IND41+GRjgQnEpVXhyP0SX9bAYQsWYX1rW4oioH/wH
         h6uNdnjS5VCq/uJA++KfBNilZ5y0aFleebKxxsz0bz0Er2BcHnb+CEZzTuAcMto5JTNj
         iaQvMiTg3ynC7zOdstQ9WA4wRgngDcXVNPArnAbGUsD/YOqnarsxMsnQz2hIigRZKWfe
         6ePnrbsUthpoKrWWkWQ6VhNpMLeTdChI+MqIMlgBjk5ceT2qumdgF1fJe7ZfNPSUYzaD
         uXALUYid9+HQZ3W7CJOa7/xj1BBqCF5RzExuKubEzMkl2U2myi3Uou3OlcZLGuzVvsUk
         oaLQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754322108; x=1754926908;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=hF+uact1MjumtddVYv5deeAkwW/D2/tEr3KBEzDcDH0=;
        b=a6ZvnrlqXxoh5ONCIJKMgyhbHetM9nLCngEwQrSN34r3s13VDHd2xm1Uox/6DrPV7Z
         aTL7xjqzv88U08Z16sBYQevl1Ha5kUk71oRcFisAxDaqD9egEwzEcGT/VEgaDzL86q4p
         I0PH9rM3uQbCVQPBvuT3JYuuAmSq38bMUGqni0ZOIcZnqHmr/IAM2Rn6/5o51MdjTyWl
         4rw7HYlvNa0tGupLw0C9tbeIRXxAPwDTn+4xstP+6htgHBQgl/cf9/m8g93ANrXGqno/
         SD7hjgQpsGIqDeMKCP8l0o6cWpTG4uUs2trJI9O7sWlUW4z6s6VY21CKMZTTg+zZsitO
         vRjw==
X-Gm-Message-State: AOJu0Yw0/7Vhwg8qf7SAXiI8bUUxivlYMrHnSsuENbs/F8EiKU1G9iT8
	0/HjOf0m0mXfemfKmmC02d86EmQMUsxtNJ6bvteuMUGor9zG+0jyDA8Qz5y7Kkfexgg6CmeKTal
	52XI=
X-Gm-Gg: ASbGnctjMVwR5TFQW35AszD4rI2ZxPcARNdCWptxDfJ1ZMbdJ7F25HUakIOyznRdwB/
	MFoiI24p0H8docHTE7mGUEgq4ZHYXn6EAkCSTbYUQu3ipvDrEjvctY/Pa9wt1YA1LgJLoKbXzxZ
	+kiiVYTnmDWbA7ezjeHhGXRTj8Nz66/EcWvnmTakI23FSCwWtU+zBx1x9gTWfVTzLLeGYYLyoYx
	nOxzZ3tdwF7W+sP05zNYAlxfAlH4sn6oHLuA2rtwDj3AVhhC0t8MX4wTGRvNN+hDg2FlPjAe/Kw
	BRohfLk4HVo16jDwSUWHw3z5fXG2od/CQzmnxuNclcprEQWCqBIB/eS09AjRKpY8atjb175OD8+
	xUAr6ysvQr7oRASJLuz1cQ+I0wyVyefLPUDYveK1fvBCOQyQtGt4z2R9FNnOQY6XWEjweCkrxGG
	nKhKkpkBU=
X-Google-Smtp-Source: AGHT+IHdT8D/nrzE79KAb9vmkktbHFXsH3QdyKg2LEEhNoIfIwmtFUGE90kUxbI464eexF0i0VABUQ==
X-Received: by 2002:a17:907:7fa3:b0:af9:116c:61cf with SMTP id a640c23a62f3a-af940208ce9mr1104180666b.43.1754322107894;
        Mon, 04 Aug 2025 08:41:47 -0700 (PDT)
Message-ID: <ec351aea-e2a0-4335-b8ee-51c6eface104@suse.com>
Date: Mon, 4 Aug 2025 17:41:47 +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>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] x86/HVM: polish hvm_asid_init() a little
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

While the logic there covers asymmetric cases, the resulting log
messages would likely raise more confusion than clarify anything. Split
the BSP action from the AP one, indicating the odd CPU in the AP log
message, thus avoiding the impression that global state would have
changed.

While there also
- move g_disabled into .data.ro_after_init; only the BSP will ever write
  to it,
- make the function's parameter unsigned; no negative values may be
  passed in. Also reflect this in svm_asid_init().

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

--- a/xen/arch/x86/hvm/asid.c
+++ b/xen/arch/x86/hvm/asid.c
@@ -48,20 +48,22 @@ struct hvm_asid_data {
 
 static DEFINE_PER_CPU(struct hvm_asid_data, hvm_asid_data);
 
-void hvm_asid_init(int nasids)
+void hvm_asid_init(unsigned int nasids)
 {
-    static int8_t g_disabled = -1;
+    static int8_t __ro_after_init g_disabled = -1;
     struct hvm_asid_data *data = &this_cpu(hvm_asid_data);
 
     data->max_asid = nasids - 1;
     data->disabled = !opt_asid_enabled || (nasids <= 1);
 
-    if ( g_disabled != data->disabled )
+    if ( g_disabled < 0 )
     {
-        printk("HVM: ASIDs %sabled.\n", data->disabled ? "dis" : "en");
-        if ( g_disabled < 0 )
-            g_disabled = data->disabled;
+        g_disabled = data->disabled;
+        printk("HVM: ASIDs %sabled\n", data->disabled ? "dis" : "en");
     }
+    else if ( g_disabled != data->disabled )
+        printk("HVM: CPU%u: ASIDs %sabled\n", smp_processor_id(),
+               data->disabled ? "dis" : "en");
 
     /* Zero indicates 'invalid generation', so we start the count at one. */
     data->core_asid_generation = 1;
--- a/xen/arch/x86/hvm/svm/asid.c
+++ b/xen/arch/x86/hvm/svm/asid.c
@@ -12,7 +12,7 @@
 
 void svm_asid_init(const struct cpuinfo_x86 *c)
 {
-    int nasids = 0;
+    unsigned int nasids = 0;
 
     /* Check for erratum #170, and leave ASIDs disabled if it's present. */
     if ( !cpu_has_amd_erratum(c, AMD_ERRATUM_170) )
--- a/xen/arch/x86/include/asm/hvm/asid.h
+++ b/xen/arch/x86/include/asm/hvm/asid.h
@@ -13,7 +13,7 @@ struct vcpu;
 struct hvm_vcpu_asid;
 
 /* Initialise ASID management for the current physical CPU. */
-void hvm_asid_init(int nasids);
+void hvm_asid_init(unsigned int nasids);
 
 /* Invalidate a particular ASID allocation: forces re-allocation. */
 void hvm_asid_flush_vcpu_asid(struct hvm_vcpu_asid *asid);


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 15:53:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 15:53:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069702.1433467 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uixUq-00048d-1p; Mon, 04 Aug 2025 15:53:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069702.1433467; Mon, 04 Aug 2025 15:53:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uixUp-00048W-TX; Mon, 04 Aug 2025 15:53:07 +0000
Received: by outflank-mailman (input) for mailman id 1069702;
 Mon, 04 Aug 2025 15:53:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=c2vN=2Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uixUp-00047I-4a
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 15:53:07 +0000
Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com
 [2a00:1450:4864:20::530])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1bb42055-714b-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 17:53:05 +0200 (CEST)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-615c29fc31eso7059956a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 08:53: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
 a640c23a62f3a-af9247845edsm683443166b.46.2025.08.04.08.53.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Aug 2025 08:53: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>
X-Inumbo-ID: 1bb42055-714b-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754322784; x=1754927584; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=EsAODfqZ3sep76Tn+MGFebB71CzByqg4OlXzxi1b1Bo=;
        b=e6k5utGv2a1LMYFzJDXDakvo2bjzJ7ng98HMOUftCbhrDusBPlj4uXLSjs+ZzO1WaT
         m646Fepj2qjCzne3ITjRCvw2gAkW98RKbu+uEIOucpsSkgpAFHaKCjo9kOcjpDvrjr+5
         nY5ntdlIoPqs33Zx60t1bTHS7ukJaZaXWFo7mEz4AS12/NvhVWxbUD5XMy8FHHKlZtzn
         8RUV4eNhjGGzxrFRjz/C7sH0xpP1f6c9cnn6Iu/Ue9OVfNZoJI4S5wrEojfDSN4bLAMd
         u9g2EmjIH7n4CAoO1OjYr3ro5cB1MWo6gnwxYWFExfYBBm4cJDnF6ue6H3xvG8NxFFJc
         3cpQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754322784; x=1754927584;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=EsAODfqZ3sep76Tn+MGFebB71CzByqg4OlXzxi1b1Bo=;
        b=US0HF6KOKvKacxlLAs2MyOEm1a7V6acb2ipXQ2hMqq1vrg/MTpecToo7xaC7psOWGR
         ylc3w2r7vme9qi/i7A8jjMTT6jRbSKZqG//zGO/9XyT6itnoq4TL4RhikDVZebJeKtOP
         G4JDLBKDMZL2FC7q8fxpEwRRMHB5vGCXuFPAaHMTDa9qQpNOgNP1Sh3c5dKYh0WiegFN
         pUz8H3QYbb0kWDjpUHoGBoDpj2uRhDBDNiW1M4IJRI29ub5ZQZlDbcmPMMvl1VC/Z1La
         1gmnnUW1rRG7OMiqlRbjckvW1k8yw7tRC3z7ttw2H0hYGGqY8fHhIOahKA+6l9zlV13/
         llkA==
X-Forwarded-Encrypted: i=1; AJvYcCXhPbP32BZ/jbAMsxclAtEr+ZFQfuxn7QUA/XJsQNZ0PbW6NSxERIN/obi9L6qFhfQpLCHFHJjoECY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyuqiIea7DBJkuzwH7yiLgPcJiUhpA/X5pcx8pWKONhq+giepnj
	C2QO0ge+sOxcY4VURZrXJsXbkHm8Y/M53rv2lTrTfpq2/tOHl6EGpKCHfSa0yuKqFw==
X-Gm-Gg: ASbGncsCLiojV1QfVi3jWtoMiH/xfwnbVa4jwX3YkImkdLWcw6UfIMthAbp+KtrEngg
	Pi6t078Mf9sMkYn0BnCXkS4d/putdE5p/3E2GnPIf9SkhsAZK3Ga0FC31/5wath9TUXJx339C1d
	RG+bYQzfRFP6ZSecSA7nSq6dAvutQFUH6rqeUCU2N4/mn0Z1hn/zbBqKgyn6750gcrj0N+3tCyD
	0QI7rJRxmogqVt2m60LsTMZjLfr4GvePpJGjS8YKdFHV/F/Dc+p7ih+/6ysHvIAYaDhTBAcvle4
	otpZAkLpydMO6o1946rVTuNkuRwGDbhgAg8CyqMKzvLGW/NeDhyYL0eCJQG4Snyyo/lf2pbo9m4
	jOD/HHmYF/7pRB9YhU7Se8zFT+bOzLgDyG8BgM/pdmdn+78qSiJkSXqNiat7vDcaW+aKSYNxu66
	2PhFHxG4A=
X-Google-Smtp-Source: AGHT+IH6EE/Ay87sTiqtTBrm7BVg/kV3FtbldzOKhykIZN9ZF4OGp7I880vxySOKNmoDYXq3ywrANw==
X-Received: by 2002:a17:907:7247:b0:ae0:df46:abd1 with SMTP id a640c23a62f3a-af9401c783emr1066689566b.45.1754322784199;
        Mon, 04 Aug 2025 08:53:04 -0700 (PDT)
Message-ID: <cff0fc63-f5f6-464e-b738-0de03661084a@suse.com>
Date: Mon, 4 Aug 2025 17:53:03 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 04/20] xen/riscv: introduce things necessary for p2m
 initialization
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <c526512aeda09527421e2d60bac7955a8c7c7c56.1753973161.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: <c526512aeda09527421e2d60bac7955a8c7c7c56.1753973161.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 31.07.2025 17:58, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/include/asm/p2m.h
> +++ b/xen/arch/riscv/include/asm/p2m.h
> @@ -3,11 +3,45 @@
>  #define ASM__RISCV__P2M_H
>  
>  #include <xen/errno.h>
> +#include <xen/mm.h>
> +#include <xen/rwlock.h>
> +#include <xen/types.h>
>  
>  #include <asm/page-bits.h>
>  
>  #define paddr_bits PADDR_BITS
>  
> +/* Get host p2m table */
> +#define p2m_get_hostp2m(d) (&(d)->arch.p2m)
> +
> +/* Per-p2m-table state */
> +struct p2m_domain {
> +    /*
> +     * Lock that protects updates to the p2m.
> +     */
> +    rwlock_t lock;
> +
> +    /* Pages used to construct the p2m */
> +    struct page_list_head pages;
> +
> +    /* Indicate if it is required to clean the cache when writing an entry */
> +    bool clean_pte;

I'm a little puzzled by this field still being here, despite the extensive
revlog commentary. If you really feel you need to keep it, please ...

> +    /* Back pointer to domain */
> +    struct domain *domain;
> +
> +    /*
> +     * P2M updates may required TLBs to be flushed (invalidated).
> +     *
> +     * Flushes may be deferred by setting 'need_flush' and then flushing
> +     * when the p2m write lock is released.
> +     *
> +     * If an immediate flush is required (e.g, if a super page is
> +     * shattered), call p2m_tlb_flush_sync().
> +     */
> +    bool need_flush;

... group booleans together, for better packing.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 15:59:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 15:59:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069713.1433476 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uixaU-0005Ew-K0; Mon, 04 Aug 2025 15:58:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069713.1433476; Mon, 04 Aug 2025 15: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 1uixaU-0005Ep-HR; Mon, 04 Aug 2025 15:58:58 +0000
Received: by outflank-mailman (input) for mailman id 1069713;
 Mon, 04 Aug 2025 15:58:57 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=c2vN=2Q=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uixaT-0005Ej-Ij
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 15:58:57 +0000
Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com
 [2a00:1450:4864:20::635])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ed3cc2e2-714b-11f0-a321-13f23c93f187;
 Mon, 04 Aug 2025 17:58:56 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-af958127df5so324736666b.2
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 08:58: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
 a640c23a62f3a-af91a0a3981sm753607666b.35.2025.08.04.08.58.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 04 Aug 2025 08:58: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>
X-Inumbo-ID: ed3cc2e2-714b-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754323136; x=1754927936; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=yI7Yb0AYIcmOD6mV+6lj+VTP26acA9tTSKKEj246r98=;
        b=AUq5MD+F5jOzp+VE6I6LRkwdQSuTPp6MR0T461Qdf4sc83t41wKkl0s3SAs6TvED8Y
         5Sip4jf/YalQ5spS6OKWP9/u1wN8pPaiVnt8msLwkpjn6HEz42XKEuJZq6BFzVIPBGWM
         GVfwTtRErqV3QTgKHXxE6YwL4CmFAvDE12p0o1KyGMonz/0Fw7DPgoPmU53ZS8az1TOw
         n/bpCHfl6OgPhUsqWqJH7Jvtfhi14dwFQ/b52VsqrDbUIN8STLwikStJeg0UeK3FH1zj
         g0/ssZeqX3ov4rqeBPZdMW05dInjZJCtyy0O4KpefXZvvGZGwLhaw9jdwooeRz8oYeMT
         NLrQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754323136; x=1754927936;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yI7Yb0AYIcmOD6mV+6lj+VTP26acA9tTSKKEj246r98=;
        b=mFriUrh6DCxM3JI8yALPJGi1WggIjNqbFvDQe7BLPif+EnqwND3dkfVYJXucKx6iT6
         QW16GfO8zb8ruz/riDH2nAtOzEKSk3h52MOhoH5JOztWBGJ4ZWYKS1BHF6NswN4eFoKA
         YG2yFv0ukLB4q3Cy0okJWOVWy4yG54EGQe1iH3ZONrm7pM/zrpEPxJy1Snk0xVh5OHcp
         OEhCrt4Jzl17CG4IJYEiL173XGkeEs4BJhXi+X1/s9kiBKXxYiXZu7c3G65+7hIyei8T
         e4B+lrCNQegRee4tz4+no6Sj66oNl0JvQTQyLa2TsRvmnaYRaJqsHJUVBGLgKAKXXqoO
         yj2w==
X-Forwarded-Encrypted: i=1; AJvYcCUCFi9ET8cpJwzF4V/JuyuArA4ZUfZ975akRQhhtE+Qvnht5YdWnAQKHAuh19o52c4c8JtwDasU1f8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx3BEo9YJyaNUkgQ47Z7/YU7xehVP0fZ6Q5Zu4RJzO0ZIywFt1X
	QDxnR4lv73lxXBgSSdmVZJ2HLY62/BwX/uHDyfPytyvY/j1BFnIxskqFLPPNMNMv9g==
X-Gm-Gg: ASbGncti4RptKdINZXnhUR3stVCqC8lqjVTB/ufhfADww8kUPIHdd79vfOtp7+0DDdL
	83AKXh3Up81ucrZjgofyAmmRMdJBYvm4HKKvMTRQeaRTtOt1xxtq4dGJMyUWV4ttMDtGmUnot1Y
	QRRe5EzNw7ifR4S3O2lwa2kqNC4fcjDBDJYspP4ygBpzUlCeWkcefGcjvps5NApuxTxVlDqjS6/
	ZHGF/DyAPzs7HP8/2p7nwXjYt/fgMKul9TMweRVU/SG1SZhyEXv809mLxMwN52QTNV+9DEV53kA
	26vK6munegoeGR9hBh+3lDCicEnk9EN0zSZ7ddhUfrecXUZso3BZId/8l7QX91kOsLaj5nxRe4F
	Ey+tLYRtKdCc7avppivfg7e7ws9y+hSI9xk0Vs8pCMxDMUmHlu41OAJ3HRJXl6Uxb90LHF6/y/0
	gH+5uU7XA=
X-Google-Smtp-Source: AGHT+IHN1EeEnNpNmRdZ9y/2EcbclvjVsGA7nR1zcI+jq78GBMd6fRHO12FOyKJrBCfO2sngY9flUw==
X-Received: by 2002:a17:906:c10b:b0:ae0:9fdf:25e8 with SMTP id a640c23a62f3a-af940243f74mr1227163366b.47.1754323135967;
        Mon, 04 Aug 2025 08:58:55 -0700 (PDT)
Message-ID: <db365e00-47ac-4586-9037-874f32af044e@suse.com>
Date: Mon, 4 Aug 2025 17:58:54 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 05/20] xen/riscv: construct the P2M pages pool for
 guests
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <4e7de8ffc929c1bdfa28b40fdd31b814acef103c.1753973161.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: <4e7de8ffc929c1bdfa28b40fdd31b814acef103c.1753973161.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 31.07.2025 17:58, Oleksii Kurochko wrote:
> Implement p2m_set_allocation() to construct p2m pages pool for guests
> based on required number of pages.
> 
> This is implemented by:
> - Adding a `struct paging_domain` which contains a freelist, a
>   counter variable and a spinlock to `struct arch_domain` to
>   indicate the free p2m pages and the number of p2m total pages in
>   the p2m pages pool.
> - Adding a helper `p2m_set_allocation` to set the p2m pages pool
>   size. This helper should be called before allocating memory for
>   a guest and is called from domain_p2m_set_allocation(), the latter
>   is a part of common dom0less code.
> - Adding paging_freelist_init() to struct paging_domain.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

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



From xen-devel-bounces@lists.xenproject.org Mon Aug 04 16:58:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 16:58:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069732.1433486 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiyVs-0002f8-NV; Mon, 04 Aug 2025 16:58:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069732.1433486; Mon, 04 Aug 2025 16:58: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 1uiyVs-0002f1-Kf; Mon, 04 Aug 2025 16:58:16 +0000
Received: by outflank-mailman (input) for mailman id 1069732;
 Mon, 04 Aug 2025 16:58:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=C33k=2Q=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1uiyVq-0002ev-Py
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 16:58:14 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20609.outbound.protection.outlook.com
 [2a01:111:f403:2417::609])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 323c5767-7154-11f0-b898-0df219b8e170;
 Mon, 04 Aug 2025 18:58:09 +0200 (CEST)
Received: from DS7PR03CA0180.namprd03.prod.outlook.com (2603:10b6:5:3b2::35)
 by CY5PR12MB9054.namprd12.prod.outlook.com (2603:10b6:930:36::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.16; Mon, 4 Aug
 2025 16:58:06 +0000
Received: from DS2PEPF00003448.namprd04.prod.outlook.com
 (2603:10b6:5:3b2:cafe::db) by DS7PR03CA0180.outlook.office365.com
 (2603:10b6:5:3b2::35) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.20 via Frontend Transport; Mon,
 4 Aug 2025 16:58:06 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 DS2PEPF00003448.mail.protection.outlook.com (10.167.17.75) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Mon, 4 Aug 2025 16:58:05 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) 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 Aug
 2025 11:58:05 -0500
Received: from [172.17.155.73] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Mon, 4 Aug 2025 11:58:03 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 323c5767-7154-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Q4bXGrT9+WF+39WDztp2o6qOtEhc+1seR95vCfuZbL6/LBK55HgmhVoAno5OtCrTcu2vE2AsckvP6U7PalN4ImceQ0sSCdnoztRkS+e3xQYthyERelYrXmByODVCeoVaRA07HwTCzyIBQsPJR7Ae7LeZ4Uq9KA2MH55hZtagPRmweBF69Wnoc/pQAQKM8DjXWy8DD71EZzKQelON++EUBKSuumbesHEfNyQmynu4tLWsp+2gEPStlmT2LP0GO/CTdlfRRHcHMFISWwsUQn1RiAiCTcBtziGUVECrkDwBfZ10GZ2V7QyzYQvWM25z5LCo/X0psqMxHV+VcU4Q8J9irw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fqGMlBKs+3cFuk9MO5pxVLxWp7p4+e30DX/UL1qUw1Y=;
 b=hJr2FV3mRKBLdKCsdnnyo//EL9zCzitTWoJOXccnnL6T1RwvoFrk5oCu1MZHD4i1oaXDzs/b7c+O2kBWmVB4zGtjy7ZG9rd4c2uGN5KOywJoe5+donCigYyHqph0IbxgusLi9Y/a6cyD6/Kr0i4mhPR/CcP3/ki2QalHrQDlHpYXw2ItrqHMLNa7nRQll6zfTU7Ck54197EWp+wEmt5RI5m4gOZp0fZDjz4iEiWgXOPdcWSxQ5I8r7Nj5BPIZOs/tOWGH7kRQWj5/GbmClXkSJRexnq3uoEiaZ+ZnZDg7ezWe5YAzwUY9FCA+OL0JZ8TnLvUDTHTb+PTVcokiEptFg==
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=fqGMlBKs+3cFuk9MO5pxVLxWp7p4+e30DX/UL1qUw1Y=;
 b=YV3FbpVS/uFH6ioQ/F+MYHdyvLRyS+TGKHn5uyK1jNzzLHRKnCn6yCI3nwyWZGv5U+BAYB4cMYOiF4ytLLT7YGU2j/bsiZXbKdEItL2RBn6jDCwsf4erR8PkvOsc7aSdT3YESqt4Av3/SQi+MPXAW2p+YOH176IwxBZ+DRfZHXM=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <e7344494-8ac1-42a6-94a8-52a46f7f691a@amd.com>
Date: Mon, 4 Aug 2025 12:57:57 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen: rework error handling in vcpu_create
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>, "Dario
 Faggioli" <dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>, George
 Dunlap <gwd@xenproject.org>, <xen-devel@lists.xenproject.org>
References: <20250801202418.38977-1-stewart.hildebrand@amd.com>
 <52ea4f10-26b4-447b-8753-0e4287a03408@suse.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <52ea4f10-26b4-447b-8753-0e4287a03408@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB03.amd.com: stewart.hildebrand@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS2PEPF00003448:EE_|CY5PR12MB9054:EE_
X-MS-Office365-Filtering-Correlation-Id: 8cf2b97f-30dc-4400-dfa8-08ddd378150e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|7416014|36860700013|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?UVpCNEk0ZTMyRWpGUHVmdDFsMFBHMFd5UDJRSXhTend3aEJCeDhia25ucVJt?=
 =?utf-8?B?T3FJSGEydkFCa1c3WGdsaDlubDdnN0tKbjdjSHorUGpDZk1JVFJmTTdxZEVq?=
 =?utf-8?B?QXk4NEE5V3dmODZTdWFBWmkwQ1VyajB1ck9QQkZrOHJvVE80SWRaVm94eS9X?=
 =?utf-8?B?bG11YWFnbUdHK2tvYTcranZsNE9XcW9LRWowdGQzUDk3RHljbW5JS2pvZzZv?=
 =?utf-8?B?NWlnSy9nYzdlZTNMSlpHcGhNMUFQd2dnQ21ONG1sb1RlZi9sRyswc2M0N3Fk?=
 =?utf-8?B?aXhBMHhRWDdjYklBbXhGdWFydnBoWXR2SFphMFBZQVcvYVQvMUErSlI0QnZ5?=
 =?utf-8?B?RTgwZ2Q3Z2RJVnFUeE9tVHh2TnpzdlBWdFQ2dDZoMktBNFNadEVMTk5Rc1gr?=
 =?utf-8?B?SVBTcGVYYm9vbm5JSXc1K3RJaVpKQVd5Z1JJa2xCOTYvME0zdWhlUjZIL2pH?=
 =?utf-8?B?dm9xWHhnMVpLU1VudnFRUm5LRnd3dDhsOGNDSGhjVTN4L1FJQnRWWG9vSjcr?=
 =?utf-8?B?c3NsVGlBeEE3SXdzb25HeG9VN0MrTGpCdXRIaER2WGVVZjU1WVNVT0JEandC?=
 =?utf-8?B?SW5TeFhaM2kzT3RnK0NldmdKRnJIRnFNZCthSHFCaVBHTy9nS3RtZ2FFVXI1?=
 =?utf-8?B?T01US1gyL1dMTC85MnZWK3gxMFRiWVU0QjFKT0NVWXV6WGRXdWRUTzNITXF3?=
 =?utf-8?B?eFM1RU83QTVSSVdKeHpOSll4UWxWd0EwNEJ2ZFBSV2ROUk9ad2hNcEFEd2Vl?=
 =?utf-8?B?M0wwclF6QlpWSU1QS0VvclNPNklpTXdDRGprZnFQbndEUTVGZG95MGlJRmN4?=
 =?utf-8?B?aUNSanZMdXdjOHBjdVRnNXNIYlBDVlNVdHcwZmkxYmlWT1ZpdGxRL2RlcHZS?=
 =?utf-8?B?dEl0M3F3STZQamdQcFlUWGtKTmU5WlRJdzFKR0ZDa2J5Zk81dmQwNThyZ3RZ?=
 =?utf-8?B?UCtOTTdvWVNwNEc3NGlzeFJ6NGhBSlV5VkVma1hRN0Z1Z3BPVUp3WXhvZ3BR?=
 =?utf-8?B?YzJhVnljd2NkM2dmbHpLVEpveHBYNEZtZFhGTmY4L1NMYm5PL1NVZUR1Y0x6?=
 =?utf-8?B?c05oQVlNWThnMTFHTzR2VjFMaEttZy9iN2lyeTVnMmM1enhaSElJRW55K0Jo?=
 =?utf-8?B?Tk9mMzYxQlpnTXIwWjBoQVlYdGdtUk1wT0FWRk5vYlgzSC80Y0lDalFzTUdm?=
 =?utf-8?B?OUl6ZTJqTVdFbEtoalZkUzRBbmlxSGZRWjZHdFlsK2VwSFcwbUdhT0dXMk5q?=
 =?utf-8?B?ZVVSaFprMSsyVWZFbjN6cTlkYjUzK2w0K0VQZW5SQ1g0ZVFzMTh6QTVUUkVP?=
 =?utf-8?B?VEEwdmErWGlMdEt3djYwTmZ5Zkt3R0ducjg3Rlk5K1NqV0xYWW85MGpSTDJS?=
 =?utf-8?B?NVl4RCtWalUzUWdFbnFnbnhMUGsrZE1zcTUvN3JCSEs2U1laYUdKZzZHTGtZ?=
 =?utf-8?B?RHhuL25nYSs0Y1dkMUk1UVM3amNnSXR2SVVJcm5LT3JJbVR3OC9FQjVHVHV2?=
 =?utf-8?B?ZVZSejg5RktpYm9jbjJocGRyK0lyM01hVWIxdGd0ekFkSWx3TEgvQSs1VzF5?=
 =?utf-8?B?aEdya29aVlArQTVnbGNMaDcwZHBOeUYzaU1PRXp0VTUvK3Ric1p4UFJ0VFRX?=
 =?utf-8?B?Vk56WVBDY1hla2ZvVlpBMWhQdURuaTZMQitNWUdIUUdubm5UMnprWkpxVVhH?=
 =?utf-8?B?SDRXbkVPNUJZZmhBRWJJY0tZaW15VFBuQzRwOEd0UWlibGE2OU42cTdRK0l1?=
 =?utf-8?B?VE1tUHFsWnBEeFdadUpqWlo5OFo0R3RmMHorbSt2L2thR1RIUy9ubTBKMzdo?=
 =?utf-8?B?cGJNRnBTYXJENWhHYzNsRERXQjdibGtNUnZMOTF3TnZ2eDcvVzZTZlBwV2VV?=
 =?utf-8?B?YXdlamNQWXY4N1V0d1BrZ21CcmVUb1JjQXNqS2g4TVk4V1VoVmtLUG91aHZT?=
 =?utf-8?B?NlE5ZGNxRU9CQXRmQ2V0c1RxYWlPSEZWZ0JPVW1rV0VCNmtTNDRvSWRiTkRE?=
 =?utf-8?B?NlhUSHdKY3V6SmNlRTJBKzJMcU5WaEtOU1V5V3JuSHJzVTlWQzh3TE1kbFRQ?=
 =?utf-8?Q?Z2pb6E?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(7416014)(36860700013)(376014)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2025 16:58:05.8490
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8cf2b97f-30dc-4400-dfa8-08ddd378150e
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS2PEPF00003448.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB9054

On 8/4/25 03:57, Jan Beulich wrote:
> On 01.08.2025 22:24, Stewart Hildebrand wrote:
>> @@ -839,6 +839,9 @@ void sched_destroy_vcpu(struct vcpu *v)
>>  {
>>      struct sched_unit *unit = v->sched_unit;
>>  
>> +    if ( !unit )
>> +        return;
>> +
>>      kill_timer(&v->periodic_timer);
>>      kill_timer(&v->singleshot_timer);
>>      kill_timer(&v->poll_timer);
> 
> What if it's the 2nd error path in sched_init_vcpu() that is taken? Then we
> might take this path (just out of context here)
> 
>     if ( unit->vcpu_list == v )
>     {
>         rcu_read_lock(&sched_res_rculock);
> 
>         sched_remove_unit(vcpu_scheduler(v), unit);
>         sched_free_udata(vcpu_scheduler(v), unit->priv);
> 
> and at least Credit1's hook doesn't look to be safe against being passed NULL.
> (Not to speak of the risk of unit->priv being used elsewhere while cleaning
> up.)
> 
> Jan


Are you referring to this error path in sched_init_vcpu?

    unit->priv = sched_alloc_udata(dom_scheduler(d), unit, d->sched_priv);
    if ( unit->priv == NULL )
    {
        sched_free_unit(unit, v);
        rcu_read_unlock(&sched_res_rculock);
        return 1;
    }

If so, my understanding is that sched_free_unit sets
v->sched_unit = NULL, so sched_destroy_vcpu (with this patch applied)
would return before reaching that just-out-of-context condition.

Albeit I have not yet tested this with any sort of non-default
scheduling granularity, so I could have missed something...


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 17:33:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 17:33:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069744.1433496 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uiz3v-0001Tk-EZ; Mon, 04 Aug 2025 17:33:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069744.1433496; Mon, 04 Aug 2025 17: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 1uiz3v-0001Td-Bb; Mon, 04 Aug 2025 17:33:27 +0000
Received: by outflank-mailman (input) for mailman id 1069744;
 Mon, 04 Aug 2025 17:33:25 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PTKV=2Q=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1uiz3t-0001TV-Cp
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 17:33:25 +0000
Received: from DB3PR0202CU003.outbound.protection.outlook.com
 (mail-northeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c200::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1f2e8a39-7159-11f0-a321-13f23c93f187;
 Mon, 04 Aug 2025 19:33:23 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by AS8PR03MB9510.eurprd03.prod.outlook.com (2603:10a6:20b:5a5::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.20; Mon, 4 Aug
 2025 17:33:21 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.8989.018; Mon, 4 Aug 2025
 17:33: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>
X-Inumbo-ID: 1f2e8a39-7159-11f0-a321-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uhZ5d4/tGhZmAOyqjNnkSvO3bmQX8Lmcg7dL0PLb+8f4EItzHnC8XHH5CnHweeg2jFVjebQZvIX5DFgzJo6a/qhm63z/7wTuVp1V/EF9W3UULnOKNowkNEpVqhLthsbMgiI58XfurP4nSUCrXDE1qOSVItdKNBQe7zBcaaz0EMQh+jJmKHwV5QqtQv4Z+YaUOnK4ZJ8nbmc8NjFuJ3noM/v6EuwxgE5I6qbYJiDYp8k0EI7TXO/tYEzR0WLtZbrZhLUisNE0DFUqxNFMhFUU6kE+zsCnZ6pucxiP4xdqYOd73zg3qbb155wb2SueztYBi1XVzlWt2RFt6jsJihVq5g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=VCZPBd82sPIbHgVPuRFNmG/aDYd22ULzwkmFP5Qxuis=;
 b=MAEd4x5h9o0CnUpSATy7gBDH/JnDsqUYrT1Js+AHpdIT9HYQSnojeeBOb0S1ZvYCyquM5jmxvMSe0F532oYWmcBfdLBjEbTEsKzj/gfjd8EWq1oYFfQK6687FBEt3W5jmk8EPP8AHeH0Sy5uR1gThdu+KLEKllmtBWteOCPZWQfpRZbUPi7CcaAgqQfRfQ0NWZH66DlL7lUEuprZbggkxF/bcLDWPP4d2vr3w8tBvesiR6iS2AgQbNISwmXkwTWAyeND6g6sZYS5hV+2MjVB/jzJUbobmf+Pav4GxEYlv4587p0cgp/5VNlW5haR02H7REMQzReZhgVwpLIhencV8A==
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=VCZPBd82sPIbHgVPuRFNmG/aDYd22ULzwkmFP5Qxuis=;
 b=gWF+co/TmfIJtA6erq+ztnwLOVtPsVlO5foowUITdLIGwlWy/VnFCjvt5Hgd+jX/SiFlkGtEmYIoCKlPhlprLBiYcRSheeEKz6LTfXZruRLg6Gzr3PUMFcZKUvG2bKm/yEfd5ufSZ+Ge+PL69IiIGg5zyhiZ0JT+z3wDKVRr6E9gG2h2CH1OSJ31OiN3qB2OdLcBCHXc202kn7pvDvYBr4CRZIR/CDrXZzuXTHnzWvoXvso7gkeOOLzwZ/uHDyY5j4JiWyPEM5P654aw5GQndRE56jyuCLGu/CFpxgXmnNQX4V8tv4Az6r9DYamwrA3wRs989gxQWh2zkjXIeVdASQ==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>
Subject: [PATCH] misra: remove default case in single-clause switch
Thread-Topic: [PATCH] misra: remove default case in single-clause switch
Thread-Index: AQHcBWXfPSyq9APrf0Os3CWQrCUztQ==
Date: Mon, 4 Aug 2025 17:33:21 +0000
Message-ID:
 <725ec86ac1aa883c35fb30b8f226c95cbe0934e9.1754322299.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: GV2PR03MB9572:EE_|AS8PR03MB9510:EE_
x-ms-office365-filtering-correlation-id: d9f165e6-0890-4e41-3275-08ddd37d01df
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|42112799006|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?xvNe53eZqnK4i61QnY7F9NBOZIPeUPvxDFeJLXjjgrNibt+fQzyvK4TR0b?=
 =?iso-8859-1?Q?W+EN0N7RF3AWBXPetNpEy8gCLvlOE8MRR1tl1SOgbzOGPIxf/B4+ZrSXTu?=
 =?iso-8859-1?Q?qbAn8Js79mRyqDZ2sESPXIMB4T0bqznnII4+1BOWyR1IividLHIUaSycYF?=
 =?iso-8859-1?Q?7xy/7qkzjsFC0PK0a/QwZ14AQHg+s5dwTBg+7Fy2p1y3e/O0j03Y7QBDek?=
 =?iso-8859-1?Q?w1GnXtlXRIlhcCimfThO0YpP8HcdT5QFPcz/5AfJOh9gcclgncFbhcyOj1?=
 =?iso-8859-1?Q?oJ9Q8UePBSOar7mVs0LQHDsrx1sA2vJ/jB5HCrSloKOEE75zFP47cicRXD?=
 =?iso-8859-1?Q?jtMK1aKP+KzxntSTXGywBUQun0ypOwCI5bnK0/OL79a6OdF6fNQVnZV5Gi?=
 =?iso-8859-1?Q?iLGJrqOs+cS81r7LgGTEIAxr85d8DnXqHPdYkUx/Y6WyGNBaLpT2sYVhtK?=
 =?iso-8859-1?Q?hTn/eJCsxtUJSqzi6wtmUIglZox2rdNc+oc076w0Dadnut1D7m2m2KLdfX?=
 =?iso-8859-1?Q?qULRJTg0AI7IShpSMSdu6xlxpzrirOWfnivan/tclN2axD3aZnOadshNta?=
 =?iso-8859-1?Q?neoB6UL3aChg8PHSExWtPd8U/RS3CIuj1Qnkm4ZWvlZhPG+6kqI/4dzNmx?=
 =?iso-8859-1?Q?40MP91I4q6vKvORgbV8q5Sottkq0isfrn/DtRM1UhNVoKM9H6xFYF55X91?=
 =?iso-8859-1?Q?Nho48JGV0enZx9IrAa+0/QZSHTnjKx1kjG43WpDSGRRX6ASvy4GjBMc5zt?=
 =?iso-8859-1?Q?R4bhRgQyeZVAuUsXPvPRINn410mTFpnj2/Kv0MBWWyUHKAOyxUipNAhdBN?=
 =?iso-8859-1?Q?9vEYT3ku6Pd5gQzRc1VQV3yqFhWubqBlFhRxrP5XigcPNFndKhZVNogFM6?=
 =?iso-8859-1?Q?U5VQYrzjyCLeniEqI8lJe1BgILxQYvqi6Rmlz1w7zdTt4a47rJUJU81Cfh?=
 =?iso-8859-1?Q?axQ5Zyzi01qyGTVO4KD/VlmbcdYZml3EiP06mEXv5xJufrtqmHpxMmBUBh?=
 =?iso-8859-1?Q?Y/8ci/0bKJE63vpVNSmlctNbIsPbeMMYcbjY1CTVRRc6uV7pyEB/T0GRGv?=
 =?iso-8859-1?Q?nvbdqL2bF4/r5xHwv5En4313drK2GdRmU0uwgf84T10pkAWZ3JjfxJcfPD?=
 =?iso-8859-1?Q?tzCzccFM2eFlXwtduxAEjPWVPrcaNvjGKDgUTpcT259fXu7n0Zv+O+791e?=
 =?iso-8859-1?Q?sWu7LQA2GGJMsYQ4a2Tfuqh97UJcQMmpc/Xq4LOAUo66iqZ5GEF0C8AX/z?=
 =?iso-8859-1?Q?NSMLNy1+US7Hv+45uCbbOw1867654e73GqP/xcdjSEhAKvKNttvFeVEfhb?=
 =?iso-8859-1?Q?NlXuhvIOgaJ0XeVcxu0PNq2qSa9f4Ktx6Zl5JDiSxgAy9BJVTChfInjAz/?=
 =?iso-8859-1?Q?K0gvWosJ21REWNsgZJ4sw2f9DRLIxC8JV/uXitjYUVXDCMvWduYKyCOZoo?=
 =?iso-8859-1?Q?PcC70LWuyAbZg18aX9NieSOGqEBweE7wzN83hyU70wt+a9vcwUswI85bVi?=
 =?iso-8859-1?Q?nqRhzlrH6513VO02LsVkbFDFc84Nqz9FnvAxAOfH/1RrY4crIVfuYD3fuv?=
 =?iso-8859-1?Q?GB+UXoA=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(42112799006)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?vA6UJEcU7Ld0ph9GIcB/Jf8d+cvXjeJTHAdG2yTdu/IeICcJwQxf18lPmK?=
 =?iso-8859-1?Q?lA5B2ogBGg5qtVG+DeAikFxSxhq0xWYNegfPZFvAtKkzA9Q2+JDV4Va9A6?=
 =?iso-8859-1?Q?UD6/SIudtqt/IqcZj2mluIAl/ZJ/Ep6zOHiP9MDRTFjPe7XsqYwDbEJXQd?=
 =?iso-8859-1?Q?OehFJz491BOxIf5swlt0iNGQ4tvLd4w/ihIAM91ntYgbX/iFn+mS7TQFf3?=
 =?iso-8859-1?Q?yQK1k7Ui7/sSStKhFUAAOX5zFLOdjRJZJezq/gXSF4XgXuT6Hp2MSgZTPj?=
 =?iso-8859-1?Q?/qLUf2l64Yk/dwB5d1oXiB0AO1AZ14LnqmsAo9GqPUym4XMxl9cJlsh2tC?=
 =?iso-8859-1?Q?Vr+ZCk/aF2SWuwZc7VZFfT/FR7Tm1a9P0cqJUQKxS0//A8/xbgOTaG7qJl?=
 =?iso-8859-1?Q?l3EP9z7A3n74RwWgM/4PUIOgNqkxoKySj8M6SMgFU1iee5ykmt9BssNajZ?=
 =?iso-8859-1?Q?LDmAP4fh39KjPIDxj9vzLvfafaYclNvBGn4V9CUcKBhomx1FvH+O0rGwFh?=
 =?iso-8859-1?Q?s7mogE9KpS8nIa9crNrjX7asnpNrhikVkZuaPu9G3uUVsaN/NSXiDrz9FD?=
 =?iso-8859-1?Q?F5d09FHOFKK+F13y+3WRZI+3CLnE9F6NwaqhMJfzuMsnr1/5KsdXFm8cK3?=
 =?iso-8859-1?Q?nmc43bvf17gC+gr7MTVzfsChqD2tXJHEz26N/wbobsK1xlgtXki+e+G4fF?=
 =?iso-8859-1?Q?g3AtIVAwJAThFmY6W9yYh4xPvcMpiJHp+CBv/Xc1q6obRKpfVw8jxyHzh1?=
 =?iso-8859-1?Q?SCwvdZbkGSO6Dapuu6QoBxLgKkP1Gpfac80TXFo8NkKRQ4VwgERIGo2558?=
 =?iso-8859-1?Q?cyh9oie2uL+nd7ryM6EZTKuBmqSyC9KhWAvF7ijObW1jTpo1ZECg+73I38?=
 =?iso-8859-1?Q?ZTfJQYAz6hTvsWu5Q2KVrpX0BRw2Yc1zeQ8hxm3gkk+ss7lFOZvXFy3HEW?=
 =?iso-8859-1?Q?nBbikKZgNljJoWRL0GqrZMvhia0buzxmwhcWlbfY+5uiQyDXST2hiqFgnw?=
 =?iso-8859-1?Q?ue7X1KX3tnALr+Gj7Kvw8MiU6duVoc3aVizv8nEdKXSf3uUlrvvtLTRpZL?=
 =?iso-8859-1?Q?Lx9SjK2Gj4WEJCv+gkVfe57/Br7esEgrZLHRysEc8nP5ifEScPnaH6cEA8?=
 =?iso-8859-1?Q?IyI/YgzaxuFGSGt3w5qrJuR9rZpaefAWLZJlk6KvfUQmzpQA4N3QEFu/Oq?=
 =?iso-8859-1?Q?sNvVtFcXUVv6cIOg1fHKrZWS21cFtFUkDEttWay6GNv4TRQTGcvhEDoexS?=
 =?iso-8859-1?Q?sahkowHCiqJPGZpEmVpVWEA2kQMA0Xe3AJ1JlsKLU/hBodejTJ0aW7m51T?=
 =?iso-8859-1?Q?d3caTcUBf2yXsTG/YUN0HxuocoOiNTRgqB9n5B8AGXqDXvpgm4lgKuriN5?=
 =?iso-8859-1?Q?rgs8tg710JE7xeti2IrAMxuAWJ0Vu7qZTUNY+Evj5wcvivFebNREcDg284?=
 =?iso-8859-1?Q?+kqAOu4QCBiMDtAPex6kM6Rs9XfFtDqgY7bMthhbaY3alzj031TcCEaT3O?=
 =?iso-8859-1?Q?aCD4af800nphrBRda90iu4dsjZyjos7+Fbe5EA7K5BRvnVKywZ0pv8vCDB?=
 =?iso-8859-1?Q?6wR1BdsGlEAWae1p3nusDMMZBMocalk06j1aDxGCZRcwL6zFUVG6K4LpVI?=
 =?iso-8859-1?Q?wiZ3E2H7lDPol7YG95moAodrh6cxm5vXnHRSEAKJVgZEY2dI9gst5i2w?=
 =?iso-8859-1?Q?=3D=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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d9f165e6-0890-4e41-3275-08ddd37d01df
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Aug 2025 17:33:21.1837
 (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: vQRBnUNWtXaRPWEhBlwkcETJto30R3olD9Y09FJ7fm/EiCG+m2KPdt3WNsHYxeAVvL9rIbsrvxTZCHxv4yBN5I2f2wbEzVTpx5cRoVwzWYM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB9510

MISRA Rule 16.4: Every switch statement shall have a default label.
The default clause must contain either a statement or a comment
prior to its terminating break statement.

However, there is a documented deviation for this rule in Xen:
'docs/misra/deviations.rst':
* - R16.4
  - A switch statement with a single clause and no default label
    may replace an equivalent if statement to improve readability.
  - Tagged as `deliberate` for ECLAIR.

This change removes empty default cases in single-clause switches
to avoid violations of the rule where the `default` clause lacks
a suitable comment or statement.

Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
Test CI pipeline:
https://gitlab.com/xen-project/people/dimaprkp4k/xen/-/pipelines/1965255558
---
 xen/arch/arm/cpuerrata.c | 2 --
 xen/arch/arm/gic.c       | 2 --
 xen/arch/arm/mmu/p2m.c   | 2 --
 xen/arch/arm/time.c      | 2 --
 xen/common/kexec.c       | 2 --
 5 files changed, 10 deletions(-)

diff --git a/xen/arch/arm/cpuerrata.c b/xen/arch/arm/cpuerrata.c
index 17cf134f1b..4e84bc66fc 100644
--- a/xen/arch/arm/cpuerrata.c
+++ b/xen/arch/arm/cpuerrata.c
@@ -734,8 +734,6 @@ static int cpu_errata_callback(struct notifier_block *n=
fb,
         ASSERT(system_state !=3D SYS_STATE_boot);
         rc =3D enable_nonboot_cpu_caps(arm_errata);
         break;
-    default:
-        break;
     }
=20
     return notifier_from_errno(rc);
diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
index e80fe0ca24..4f06ab9f0f 100644
--- a/xen/arch/arm/gic.c
+++ b/xen/arch/arm/gic.c
@@ -435,8 +435,6 @@ static int cpu_gic_callback(struct notifier_block *nfb,
         /* This is reverting the work done in init_maintenance_interrupt *=
/
         release_irq(gic_hw_ops->info->maintenance_irq, NULL);
         break;
-    default:
-        break;
     }
=20
     return NOTIFY_DONE;
diff --git a/xen/arch/arm/mmu/p2m.c b/xen/arch/arm/mmu/p2m.c
index 51abf3504f..f53b93847a 100644
--- a/xen/arch/arm/mmu/p2m.c
+++ b/xen/arch/arm/mmu/p2m.c
@@ -1827,8 +1827,6 @@ static int cpu_virt_paging_callback(struct notifier_b=
lock *nfb,
         ASSERT(system_state !=3D SYS_STATE_boot);
         setup_virt_paging_one(NULL);
         break;
-    default:
-        break;
     }
=20
     return NOTIFY_DONE;
diff --git a/xen/arch/arm/time.c b/xen/arch/arm/time.c
index e74d30d258..0ccfd3b12d 100644
--- a/xen/arch/arm/time.c
+++ b/xen/arch/arm/time.c
@@ -381,8 +381,6 @@ static int cpu_time_callback(struct notifier_block *nfb=
,
     case CPU_DYING:
         deinit_timer_interrupt();
         break;
-    default:
-        break;
     }
=20
     return NOTIFY_DONE;
diff --git a/xen/common/kexec.c b/xen/common/kexec.c
index 84fe8c3597..bb669da833 100644
--- a/xen/common/kexec.c
+++ b/xen/common/kexec.c
@@ -548,8 +548,6 @@ static int cf_check cpu_callback(
          * fail the CPU_UP_PREPARE */
         kexec_init_cpu_notes(cpu);
         break;
-    default:
-        break;
     }
     return NOTIFY_DONE;
 }
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 20:31:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 20:31:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069825.1433522 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uj1qJ-0007yZ-Ko; Mon, 04 Aug 2025 20:31:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069825.1433522; Mon, 04 Aug 2025 20:31:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uj1qJ-0007yS-H7; Mon, 04 Aug 2025 20:31:35 +0000
Received: by outflank-mailman (input) for mailman id 1069825;
 Mon, 04 Aug 2025 20:31:34 +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 1uj1qI-0007yM-GG
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 20:31:34 +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 1uj1qI-001D41-0r
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 20:31:34 +0000
Received: from mail-vk1-f176.google.com ([209.85.221.176])
 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 1uj1qI-0051Uo-0g
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 20:31:34 +0000
Received: by mail-vk1-f176.google.com with SMTP id
 71dfb90a1353d-539345ebfc8so1192096e0c.2
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 13:31: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>
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=H1rePiHkfAqey2t/WRsdoNGO+t3WxD5ZXuLow16apDc=; b=V6veAZ7
	FOwBaVp2msXkgNePs1wm588nQn3nks4Zgue+pywEoDJPZG0vuQCKyM7McGe7IjxpC7vO7DGB6LwnC
	g9fxN5K+IfbS1DQMoQDclOn+RnYNxg+HVttJTHn5PcKPKMI2oIx7asJBXAQPZ3cx6xg5VFIFHM+SV
	cql3DNKOro=;
X-Gm-Message-State: AOJu0YytqgiEWdX3/UIEO+QwZkyEF8fz6+cVDi16eVgwi4/jPCVUrEmJ
	FUoxRHvKGYwI/9lFfoCpUPersBfJVjugNfzl/HMN3eX56icaJzM1qRsyNOCbhFtSzg+A6HI2fds
	pCi9DXWKMW8I9BhnGzqogOtvz1xqKQw0=
X-Google-Smtp-Source: AGHT+IEXthC1bBvYUOsY1FYdAuW58wOsVVEmohxTJ2ZT7Ok01OBJk2D+RZQ0hOPkJGM9ktWoIYkWEsowgrOyQUg1h6Y=
X-Received: by 2002:a05:6122:91a:b0:539:1ddb:95c6 with SMTP id
 71dfb90a1353d-5395f101371mr4660981e0c.3.1754339493608; Mon, 04 Aug 2025
 13:31:33 -0700 (PDT)
MIME-Version: 1.0
From: Cody Zuschlag <cody.zuschlag@xenproject.org>
Date: Mon, 4 Aug 2025 22:31:22 +0200
X-Gmail-Original-Message-ID: <CAJbE=KyXNMgJSs6AU1T8kdE7_ShL+60wxxJ9+yRFx_R6WBYrqQ@mail.gmail.com>
X-Gm-Features: Ac12FXy27wlWyxQ1IEmTh701mEnI2dEQ9O-txjuSR0j8EiPLGWTvN7Yn6pnKHeY
Message-ID: <CAJbE=KyXNMgJSs6AU1T8kdE7_ShL+60wxxJ9+yRFx_R6WBYrqQ@mail.gmail.com>
Subject: [ANNOUNCE] Call for agenda items for August 7, 2025 Community Call @
 15:00 UTC
To: xen-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="0000000000005502cd063b8ffe41"

--0000000000005502cd063b8ffe41
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi everyone,

We=E2=80=99re getting ready for August's Xen Project Community Call on *Thu=
rsday, 7
August 2025* at *15:00 UTC* (4 pm UK time). We=E2=80=99d love for you to jo=
in. Feel
free to participate or just observe. This call is a great opportunity to
see what the community is working on, align our various efforts, and share
updates. Everyone is welcome!

*Preparation:*

   - Add any proposed agenda items or missing action items:
   https://cryptpad.fr/pad/#/2/pad/edit/ELpO7rzIdKPuQrSmizBUUf4L/
   - If any action items have been resolved or are no longer relevant, feel
   free to remove them from the doc.

*Call Details:*

   - *Date:* Thursday, 7 August 2025
   - *Time:* 15:00 UTC (agenda begins at 15:05 UTC)
      - Find your local timezone here
      <https://www.worldtimebuddy.com/?qm=3D1&lid=3D5368361,5128581,100,265=
3941,2988507,1850147&h=3D2988507&date=3D2025-8-7&sln=3D17-17.5&hf=3Dundefin=
ed&c=3D1639>
   - *Link to Join the Call:* https://meet.jit.si/XenProjectCommunityCall

We plan to open the meeting room at 15:00 UTC, but to allow time for
switching between meetings and handling any technical issues, we=E2=80=99ll
officially start discussing the agenda at 15:05 UTC.

*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 on thursday!


Cody Zuschlag
Xen Project - Community Manager

--0000000000005502cd063b8ffe41
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Hi everyone,</div><div><div><br></div><div>We=E2=80=
=99re getting ready for August&#39;s Xen Project=C2=A0<span class=3D"gmail-=
il">Community Call</span>=C2=A0on=C2=A0<b>Thursday, 7 August 2025</b>=C2=A0=
at=C2=A0<b>15:00 UTC</b>=C2=A0(4 pm UK time). We=E2=80=99d love for you to =
join. Feel free to participate or just observe. This=C2=A0<span class=3D"gm=
ail-il">call</span>=C2=A0is a great opportunity to see what the=C2=A0<span =
class=3D"gmail-il">community</span>=C2=A0is working on, align our various e=
fforts, and share updates. Everyone is welcome!</div><div><p><b>Preparation=
:</b></p></div><div><ul><li style=3D"margin-left:15px">Add any proposed age=
nda items or missing action items:=C2=A0<a href=3D"https://cryptpad.fr/pad/=
#/2/pad/edit/ELpO7rzIdKPuQrSmizBUUf4L/" target=3D"_blank">https://cryptpad.=
fr/pad/#/2/pad/edit/ELpO7rzIdKPuQrSmizBUUf4L/</a></li><li style=3D"margin-l=
eft:15px">If any action items have been resolved or are no longer relevant,=
 feel free to remove them from the doc.=C2=A0</li></ul></div><div><b><span =
class=3D"gmail-il">Call</span>=C2=A0Details:</b></div><div><ul><li style=3D=
"margin-left:15px"><b>Date:</b>=C2=A0Thursday, 7 August 2025</li><li style=
=3D"margin-left:15px"><b>Time:</b>=C2=A015:00 UTC (agenda begins at 15:05 U=
TC)</li><ul><li style=3D"margin-left:15px"><a href=3D"https://www.worldtime=
buddy.com/?qm=3D1&amp;lid=3D5368361,5128581,100,2653941,2988507,1850147&amp=
;h=3D2988507&amp;date=3D2025-8-7&amp;sln=3D17-17.5&amp;hf=3Dundefined&amp;c=
=3D1639" target=3D"_blank">Find your local timezone here</a></li></ul><li s=
tyle=3D"margin-left:15px"><b>Link to Join the=C2=A0<span class=3D"gmail-il"=
>Call</span>:</b>=C2=A0<a href=3D"https://meet.jit.si/XenProjectCommunityCa=
ll" target=3D"_blank">https://meet.jit.si/XenProjectCommunityCall</a></li><=
/ul></div><div><p>We plan to open the meeting room at 15:00 UTC, but to all=
ow time for switching between meetings and handling any technical issues, w=
e=E2=80=99ll officially start discussing the agenda at 15:05 UTC.</p><p><b>=
Want to be CC=E2=80=99d on future=C2=A0<span class=3D"gmail-il">calls</span=
>?</b><b></b></p><p>Add or remove yourself from our=C2=A0<a href=3D"https:/=
/cryptpad.fr/pad/#/2/pad/edit/D9vGzihPxxAOe6RFPz0sRCf+/" target=3D"_blank">=
Sign-up Sheet</a>.</p><ul></ul><div>See you on=C2=A0thursday!</div></div></=
div><div><br></div><div><div dir=3D"ltr" class=3D"gmail_signature" data-sma=
rtmail=3D"gmail_signature"><div dir=3D"ltr"><img src=3D"https://ci3.googleu=
sercontent.com/mail-sig/AIorK4x5nkRDCOFJDJAv9aMXdZ0mghItsp3D36JrwBCQtitBSW_=
0NeDS6mBmJ2F4vZVE2oBOqnY6IaJUrl12"><br><div>Cody Zuschlag</div><div>Xen Pro=
ject - Community Manager</div></div></div></div></div>

--0000000000005502cd063b8ffe41--


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 22:38:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 22:38:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069844.1433536 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uj3ok-0004u6-Ce; Mon, 04 Aug 2025 22:38:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069844.1433536; Mon, 04 Aug 2025 22:38: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 1uj3ok-0004tz-9Z; Mon, 04 Aug 2025 22:38:06 +0000
Received: by outflank-mailman (input) for mailman id 1069844;
 Mon, 04 Aug 2025 22:38:05 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=AKUP=2Q=gmail.com=arraybolt3@srs-se1.protection.inumbo.net>)
 id 1uj3oi-0004tt-M9
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 22:38:04 +0000
Received: from mail-il1-x12c.google.com (mail-il1-x12c.google.com
 [2607:f8b0:4864:20::12c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id adfeacd1-7183-11f0-a321-13f23c93f187;
 Tue, 05 Aug 2025 00:38:03 +0200 (CEST)
Received: by mail-il1-x12c.google.com with SMTP id
 e9e14a558f8ab-3e3ead8bb17so2660315ab.2
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 15:38:02 -0700 (PDT)
Received: from kf-m2g5 ([2607:fb90:bf84:45ad:2f41:d127:adbe:c0d6])
 by smtp.gmail.com with ESMTPSA id
 e9e14a558f8ab-3e40297c3d3sm46271305ab.6.2025.08.04.15.37.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 04 Aug 2025 15:38: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>
X-Inumbo-ID: adfeacd1-7183-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754347081; x=1754951881; darn=lists.xenproject.org;
        h=mime-version:references:in-reply-to:message-id:subject:cc:to:from
         :date:from:to:cc:subject:date:message-id:reply-to;
        bh=ZpzPXroFL9XWSTFAcpUp9VyIAZZY85T9RoTILyaLKv4=;
        b=YT3EZGRvudCi39wiszQHFdetACX2n/GkxVgN1paJPg09Vy6md/LMjYIHM9lBmtgqtB
         yq9BBlHbOCzrtQf/d84VRyeuts1iDe4LaCmU13ahdm6qfItDDBVeqdDXrrNyH4oOgJ+a
         MFFc19VyQ8pTsccOqd1LluFZvozYrJdjJ857ZBjyrRsw74JZExjZyH3Yd7pmjmxKq+se
         MYljPvC5dXT9zLicvewrOnc0L1J0dkIEW8E8paNnoet4pM0hYZcjj48ZLcLelxsT/RnZ
         WHPBcOK4/IFNydwL6d/YGXXNyO6FgpkUNlw5VcI/r0XTN2eohTv0idgYOqV0IfoHHZwP
         n+hg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754347081; x=1754951881;
        h=mime-version:references:in-reply-to:message-id:subject:cc:to:from
         :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=ZpzPXroFL9XWSTFAcpUp9VyIAZZY85T9RoTILyaLKv4=;
        b=YaqG/thyW4lmikQo/cK6WaPSGQZU1YgNN65fw7S+dz2LdkkJsmxXUUqeYTPqZcN9Wp
         UMX8rdTLcENPFjAK3LrCf/1RjrX/Xspb+HnForO3mawok0aVI/ncr1R+YNFo+UMhQwqm
         mU+pFvx3LBkZtbQPxxkeIDPvhCjmo9+sFFICq4fHJ7SzR66glMoxvD8kgLbGCUHtSJWr
         WVBXJHLQrLLf6HKX5rShSvW66lPZFTx6XXJ+FNUkmikYo4SD/PZCjJIz3R3ZnfoTTEjK
         qt1WcSLO01yGqwrVCEU1uItS6oTtaPvcn5ETLdrkHgcJU3950rYO3hweri7ZZqbkPqnZ
         D5WQ==
X-Forwarded-Encrypted: i=1; AJvYcCW0eMpaAJgVA8xlPjSTPgxoxMewhAB3+iY7hMz0ZD2H+tbJVeVBZdIy9UmPWgMr4R21PBWyB1YGE1s=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyQu/Z5nkrnBh5MaVbXLLuHtjbjeb7bHN1MgOdYGZl2YNgr0Pwl
	qXO7VoQIkn3irbVBM+6IWT1/DqpHlYs9GPCDwgB90vH6kZ5RaV49RJBL
X-Gm-Gg: ASbGncvs9XNggKvyDtubKfa53G0ICCpDAvKENDJ9npiUJRFRDyVY5pZn0DZlS0wySCE
	BWkZRq1YiQwPGT2gP8zCROTtb/nVbxTHnW0flqiD5QXuI6E4FMaaDokBrxFnDph86+c/jM8wFLZ
	pjWjOPKnIh14o6v4dwKzcr346cic3qGMMb3pvKpwSu/LRd4vc+gkQi3hsKyKlsFb+4NYrNelCjE
	N4HoG2mA2qflOXiDifaHbW4uFEiOLoRRwW0F+bsQgh2sSgKnev8s6aaxYLMhCjglY6cLXmbHtvA
	NR0c/kn+5f8qfCNmNJ+EapLB9QkdkvJ4WwiZlndcqn+1nAkdUc1gflvXpnv4l9sUiquqXGuOUre
	JeLT6rol/rZYpqdk6khlZqj1ALrgFKuc=
X-Google-Smtp-Source: AGHT+IGIRt+/55zfXDnTiuTwxerfvRDhwzXt4iVLfmNlFKTk4GeFn1ForaQGC155ZFHb1WmdoFCMRw==
X-Received: by 2002:a05:6e02:1b07:b0:3e3:ef43:294 with SMTP id e9e14a558f8ab-3e4161d7a6dmr60297825ab.7.1754347080973;
        Mon, 04 Aug 2025 15:38:00 -0700 (PDT)
Date: Mon, 4 Aug 2025 17:37:52 -0500
From: Aaron Rainbolt <arraybolt3@gmail.com>
To: Daniel Kiper <dkiper@net-space.pl>
Cc: grub-devel@gnu.org, xen-devel@lists.xenproject.org
Subject: Re: [RESEND PATCH v3 1/1] kern/xen: Add Xen command line parsing
Message-ID: <20250804173752.18611fec@kf-m2g5>
In-Reply-To: <20250804151743.cjngftaseqesmht3@tomti.i.net-space.pl>
References: <20250725153012.1dd46644@kf-m2g5>
	<20250725153112.4ea25243@kf-m2g5>
	<20250801125536.mc2sjrdyikljzea6@tomti.i.net-space.pl>
	<20250803105703.5c83d4b2@kf-m2g5>
	<20250804151743.cjngftaseqesmht3@tomti.i.net-space.pl>
X-Mailer: Claws Mail 4.3.1 (GTK 3.24.41; x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="Sig_/c21vzwXoh5w2G7dTvpTKCZK";
 protocol="application/pgp-signature"; micalg=pgp-sha512

--Sig_/c21vzwXoh5w2G7dTvpTKCZK
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

On Mon, 4 Aug 2025 17:17:43 +0200
Daniel Kiper <dkiper@net-space.pl> wrote:

> On Sun, Aug 03, 2025 at 10:57:03AM -0500, Aaron Rainbolt wrote:
> > On Fri, 1 Aug 2025 14:55:36 +0200 Daniel Kiper
> > <dkiper@net-space.pl> wrote: =20
> > > On Fri, Jul 25, 2025 at 03:31:12PM -0500, Aaron Rainbolt wrote: =20
> > > > Xen traditionally allows customizing guest behavior by passing
> > > > arguments to the VM kernel via the kernel command line. This is
> > > > no longer possible when using GRUB with Xen, as the kernel
> > > > command line is decided by the GRUB configuration file within
> > > > the guest, not data passed to the guest by Xen.
> > > >
> > > > To work around this limitation, enable GRUB to parse a command
> > > > line passed to it by Xen, and expose data from the command line
> > > > to the GRUB configuration as environment variables. These
> > > > variables can be used in the GRUB configuration for any desired
> > > > purpose, such as extending the kernel command line passed to
> > > > the guest. The command line format is inspired by the Linux
> > > > kernel's command line format.
> > > >
> > > > To reduce the risk of misuse, abuse, or accidents in
> > > > production, the command line will only be parsed if it consists
> > > > entirely of 7-bit ASCII characters, only alphabetical
> > > > characters and underscores are permitted in variable names, and
> > > > all variable names must start with the string "xen_grub_env_".
> > > > This also allows room for expanding the command line arguments
> > > > accepted by GRUB in the future, should other arguments end up
> > > > becoming desirable in the future.
> > > >
> > > > Signed-off-by: Aaron Rainbolt <arraybolt3@gmail.com>
> > > > ---
> > > >  docs/grub.texi                |  50 +++++
> > > >  grub-core/Makefile.core.def   |   2 +
> > > >  grub-core/kern/i386/xen/pvh.c |  14 ++
> > > >  grub-core/kern/main.c         |  12 ++
> > > >  grub-core/kern/xen/cmdline.c  | 343
> > > > ++++++++++++++++++++++++++++++++++ include/grub/xen.h
> > > >  | 2 + 6 files changed, 423 insertions(+)
> > > >  create mode 100644 grub-core/kern/xen/cmdline.c
> > > >
> > > > diff --git a/docs/grub.texi b/docs/grub.texi
> > > > index 34b3484..ce82483 100644
> > > > --- a/docs/grub.texi
> > > > +++ b/docs/grub.texi
> > > > @@ -3271,6 +3271,7 @@ GRUB.  Others may be used freely in GRUB
> > > > configuration files. @menu
> > > >  * Special environment variables::
> > > >  * Environment block::
> > > > +* Passing environment variables through Xen::
> > > >  @end menu
> > > >
> > > >
> > > > @@ -3871,6 +3872,55 @@ using BIOS or EFI functions (no ATA, USB
> > > > or IEEE1275). @command{grub-mkconfig} uses this facility to
> > > > implement @samp{GRUB_SAVEDEFAULT} (@pxref{Simple
> > > > configuration}).
> > > >
> > > > +@node Passing environment variables through Xen
> > > > +@section Passing environment variables through Xen
> > > > +
> > > > +If you are using a GRUB image as the kernel for a PV or PVH Xen
> > > > virtual +machine, you can pass environment variables from Xen's
> > > > dom0 to the VM through +the Xen-provided kernel command line.
> > > > When combined with a properly configured +guest, this can be
> > > > used to customize the guest's behavior on bootup via the +VM's
> > > > Xen configuration file. +
> > > > +GRUB will parse the kernel command line passed to it by Xen
> > > > during bootup. +The command line will be split into
> > > > space-delimited words. Single and +double quotes may be used to
> > > > quote words or portions of words that contain +spaces.
> > > > Arbitrary characters may be backslash-escaped to make them a
> > > > literal +component of a word rather than being parsed as quotes
> > > > or word separators. The +command line must consist entirely of
> > > > printable 7-bit ASCII characters and +spaces. If a non-printing
> > > > ASCII character is found anywhere in the command +line, the
> > > > entire command line will be ignored by GRUB. + +Each word
> > > > should be a variable assignment in the format ``variable'' or
> > > > +``variable=3Dvalue''. Variable names must contain only the
> > > > characters A-Z, a-z, +and underscore (``_''). Variable names
> > > > must begin with the string +``xen_grub_env_''. Variable values
> > > > can contain arbitrary printable 7-bit +ASCII characters and
> > > > space. If any variable contains an illegal name, that +variable
> > > > will be ignored. + +If a variable name and value are both
> > > > specified, the variable will be set to +the specified value. If
> > > > only a variable name is specified, the variable's +value will
> > > > be set to ``1''. +
> > > > +The following is a simple example of how to use this
> > > > functionality to append +arbitrary variables to a guest's
> > > > kernel command line: +
> > > > +@example
> > > > +# In the Xen configuration file for the guest
> > > > +name =3D "linux_vm"
> > > > +type =3D "pvh"
> > > > +kernel =3D "/path/to/grub-i386-xen_pvh.bin"
> > > > +extra =3D "xen_grub_env_kernelappend=3D'loglevel=3D3'" =20
> > >
> > > s/kernelappend/kernel_append/
> > >
> > > or maybe even
> > >
> > > s/kernelappend/linux_append/
> > >
> > > to make it clear it is appended to the "linux" command line... =20
> >
> > Will do.
> > =20
> > > > +memory =3D 1024
> > > > +disk =3D [ "file:/srv/vms/linux_vm.img,sda,w" ]
> > > > +
> > > > +# In the guest's GRUB configuration file
> > > > +menuentry "Linux VM with dom0-specified kernel parameters" @{
> > > > +    search --set=3Droot --label linux_vm --hint hd0,msdos1
> > > > +    linux /boot/vmlinuz root=3DLABEL=3Dlinux_vm
> > > > $@{xen_grub_env_kernelappend@} =20
> > >
> > > Ditto... =20
> >
> > Will do.
> > =20
> > > > +    initrd /boot/initrd.img
> > > > +@}
> > > > +@end example
> > > > +
> > > >  @node Modules
> > > >  @chapter Modules
> > > >
> > > > diff --git a/grub-core/Makefile.core.def
> > > > b/grub-core/Makefile.core.def index b3f7119..df0f266 100644
> > > > --- a/grub-core/Makefile.core.def
> > > > +++ b/grub-core/Makefile.core.def
> > > > @@ -248,6 +248,7 @@ kernel =3D {
> > > >    xen =3D term/xen/console.c;
> > > >    xen =3D disk/xen/xendisk.c;
> > > >    xen =3D commands/boot.c;
> > > > +  xen =3D kern/xen/cmdline.c;
> > > >
> > > >    i386_xen_pvh =3D commands/boot.c;
> > > >    i386_xen_pvh =3D disk/xen/xendisk.c;
> > > > @@ -255,6 +256,7 @@ kernel =3D {
> > > >    i386_xen_pvh =3D kern/i386/xen/tsc.c;
> > > >    i386_xen_pvh =3D kern/i386/xen/pvh.c;
> > > >    i386_xen_pvh =3D kern/xen/init.c;
> > > > +  i386_xen_pvh =3D kern/xen/cmdline.c;
> > > >    i386_xen_pvh =3D term/xen/console.c;
> > > >
> > > >    ia64_efi =3D kern/ia64/efi/startup.S;
> > > > diff --git a/grub-core/kern/i386/xen/pvh.c
> > > > b/grub-core/kern/i386/xen/pvh.c index 91fbca8..12df2d8 100644
> > > > --- a/grub-core/kern/i386/xen/pvh.c
> > > > +++ b/grub-core/kern/i386/xen/pvh.c
> > > > @@ -321,6 +321,8 @@ void
> > > >  grub_xen_setup_pvh (void)
> > > >  {
> > > >    grub_addr_t par;
> > > > +  const char *xen_cmdline;
> > > > +  int i;
> > > >
> > > >    grub_xen_cpuid_base ();
> > > >    grub_xen_setup_hypercall_page ();
> > > > @@ -352,6 +354,18 @@ grub_xen_setup_pvh (void)
> > > >    grub_xen_mm_init_regions ();
> > > >
> > > >    grub_rsdp_addr =3D pvh_start_info->rsdp_paddr;
> > > > +
> > > > +  xen_cmdline =3D (const char *) pvh_start_info->cmdline_paddr;
> > > > +  for (i =3D 0; i < MAX_GUEST_CMDLINE; i++) =20
> > >
> > > Oh, MAX_GUEST_CMDLINE is a too generic. May I ask you to rename
> > > it to GRUB_XEN_MAX_GUEST_CMDLINE? This should be done in separate
> > > patch preceding this one. =20
> >
> > Sure.
> > =20
> > > > +    {
> > > > +      if (xen_cmdline[i] =3D=3D '\0') =20
> > >
> > > I cannot see much sense in this check. Please look below...
> > > =20
> > > > +        {
> > > > +          grub_strncpy ((char *)
> > > > grub_xen_start_page_addr->cmd_line,
> > > > +			(char *)
> > > > pvh_start_info->cmdline_paddr, =20
> > >
> > > s/char */const char */
> > >
> > > Is it always guaranteed that pvh_start_info->cmdline_paddr have
> > > MAX_GUEST_CMDLINE size? If yes then... =20
> >
> > It is not guaranteed. I tested this under Qubes OS, and it is
> > unfortunately very possible to pass a guest command line longer than
> > MAX_GUEST_CMDLINE via pvh_start_info->cmdline_paddr. I do not know
> > of any documentation specifying what the "real" maximum length is
> > in this instance (if any), but in any event the string ultimately
> > has to be crammed into an array that is only MAX_GUEST_CMDLINE
> > long. Originally I wrote this to truncate the command line in this
> > situation, but later decided that discarding the command line would
> > be safer than truncation. =20
>=20
> I think you are confusing source, grub_xen_start_page_addr->cmd_line,
> and destination, pvh_start_info->cmdline_paddr. I am asking about the
> destination...

The destination is grub_xen_start_page_addr->cmd_line.
pvh_start_info->cmdline_paddr is the *source*, not the destination.
grub_xen_start_page_addr->cmd_line is a MAX_GUEST_CMDLINE-long int8_t
array, so yes, the destination is guaranteed to always have
MAX_GUEST_CMDLINE size.

> > (When booting a VM in PV mode, Xen does guarantee the command line
> > will not be longer than MAX_GUEST_CMDLINE and will simply return a
> > truncated command line. There is no way to detect this condition to
> > my awareness, so in PV mode, we simply live with the truncation
> > since we aren't given another option.) =20
>=20
> OK...
>=20
> > > grub_memset ((void *) pvh_start_info->cmdline_paddr, 0,
> > > MAX_GUEST_CMDLINE); grub_strncpy ((char *)
> > > grub_xen_start_page_addr->cmd_line, (const char *)
> > > pvh_start_info->cmdline_paddr, MAX_GUEST_CMDLINE - 1);
> > >
> > > ... and you are done... =20
> >
> > This would truncate the command line rather than discarding it. If
> > the goal is consistency with Xen's PV mode, then I can switch to
> > this, but I don't like the idea of booting a guest with corrupted
> > data inserted randomly into the grub.cfg file. (Like mentioned
> > above, there isn't any other option when using PV mode, but just
> > because PV mode does things dangerously doesn't mean we have to
> > when running in PVH mode.) =20
>=20
> OK, but please remember you have to ensure the string is
> NUL-terminated after grub_strncpy(). Potentially you could also use
> grub_strlen() to make a check and add NUL in proper place...

The code does ensure the string is NUL-terminated I believe, unless
grub_strncpy doesn't behave like POSIX strncpy. If a '\0' is found
anywhere in pvh_start_info->cmdline_paddr (the source), then we
grub_strncpy the string to grub_xen_start_page_addr->cmd_line,
specifying the size of the destination buffer as MAX_GUEST_CMDLINE.
strncpy pads the rest of the buffer with NUL bytes. In the worst case
scenario, the source is exactly MAX_GUEST_CMDLINE-1 bytes long plus a
NUL at the end, in which case strncpy will copy MAX_GUEST_CMDLINE-1
bytes and then add one byte of NUL padding. If the sources consists of
MAX_GUEST_CMDLINE non-NUL bytes, the copy won't happen at all because a
NUL will never be found in the first MAX_GUEST_CMDLINE bytes of the
source.

Using grub_strlen as a sanity check sounds good. If after the copy,
`grub_strlen((char *) grub_xen_start_page_addr->cmd_line) !=3D (i - 1)`,
then we know something is wrong and can halt the system.

> > > > +			MAX_GUEST_CMDLINE);
> > > > +          break;
> > > > +        }
> > > > +    }
> > > >  }
> > > >
> > > >  grub_err_t
> > > > diff --git a/grub-core/kern/main.c b/grub-core/kern/main.c
> > > > index 143a232..b4377d3 100644
> > > > --- a/grub-core/kern/main.c
> > > > +++ b/grub-core/kern/main.c
> > > > @@ -37,6 +37,10 @@
> > > >  #include <grub/machine/memory.h>
> > > >  #endif
> > > >
> > > > +#if defined (GRUB_MACHINE_XEN) || defined
> > > > (GRUB_MACHINE_XEN_PVH) +#include <grub/xen.h>
> > > > +#endif
> > > > +
> > > >  static bool cli_disabled =3D false;
> > > >  static bool cli_need_auth =3D false;
> > > >
> > > > @@ -351,6 +355,14 @@ grub_main (void)
> > > >    grub_env_export ("root");
> > > >    grub_env_export ("prefix");
> > > >
> > > > +  /*
> > > > +   * Parse command line parameters from Xen and export them as
> > > > environment
> > > > +   * variables
> > > > +   */
> > > > +#if defined (GRUB_MACHINE_XEN) || defined
> > > > (GRUB_MACHINE_XEN_PVH)
> > > > +  grub_parse_xen_cmdline (); =20
> > >
> > > Please move this call to the
> > > grub-core/kern/xen/init.c:grub_machine_init(). =20
> >
> > Will do.
> > =20
> > > > +#endif
> > > > +
> > > >    /* Reclaim space used for modules.  */
> > > >    reclaim_module_space ();
> > > >
> > > > diff --git a/grub-core/kern/xen/cmdline.c
> > > > b/grub-core/kern/xen/cmdline.c new file mode 100644
> > > > index 0000000..03dd88f
> > > > --- /dev/null
> > > > +++ b/grub-core/kern/xen/cmdline.c
> > > > @@ -0,0 +1,343 @@
> > > > +/*
> > > > + *  GRUB  --  GRand Unified Bootloader
> > > > + *  Copyright (C) 2025  Free Software Foundation, Inc.
> > > > + *
> > > > + *  GRUB 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 3 of the
> > > > License, or
> > > > + *  (at your option) any later version.
> > > > + *
> > > > + *  GRUB 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 GRUB.  If not, see
> > > > <http://www.gnu.org/licenses/>.
> > > > + */
> > > > +
> > > > +#include <grub/env.h>
> > > > +#include <grub/misc.h>
> > > > +#include <grub/mm.h>
> > > > +#include <grub/xen.h>
> > > > +
> > > > +enum parse_flags
> > > > +{
> > > > +  PARSER_HIT_BACKSLASH =3D 0x1,
> > > > +  PARSER_IN_SINGLE_QUOTES =3D 0x2,
> > > > +  PARSER_IN_DOUBLE_QUOTES =3D 0x4,
> > > > +}; =20
> > > typedef parse_flags parse_flags_t;
> > >
> > > ... and use parse_flags_t instead below... =20
> >
> > Will do.
> > =20
> > > And probably this should be a local variable... =20
> >
> > See below for comments on globals in the parser.
> > =20
> > > > +
> > > > +#define PARSER_BASE_WORD_LEN 16 =20
> > >
> > > This constant begs for a few words of comment... =20
> >
> > Will add. This is just the initial length of the dynamically
> > allocated buffer for storing each "word" of the command line, but
> > it is confusing as written. Perhaps it should be renamed to
> > PARSER_WORD_BUF_START_LEN or similar, to make it clear this isn't a
> > string length, but a buffer length? =20
>=20
> s/length/size/ then... However, then why 16 not, e.g., 32?

My original iteration of the patch didn't require `xen_grub_env_` at
the beginning of every variable name, so 16 was a reasonable estimate
of how long most "words" would end up, and I wanted to use the smallest
reasonable value here. That being said, `xen_grub_env_` is required
now, which is already 13 bytes long, so maybe 32 is a more reasonable
value. (Or, depending on where GRUB's allocator aligns things, maybe
this should be a large number like MAX_GUEST_CMDLINE, so that we don't
ever have to reallocate?)

> > > > +static grub_size_t word_list_len;
> > > > +static char **word_list;
> > > > +static grub_size_t current_word_len;
> > > > +static grub_size_t current_word_pos;
> > > > +static char *current_word;
> > > > +static char current_char; =20
> > >
> > > I have a feeling that most if not all of this variables should be
> > > local in a given function... =20
> >
> > I made them globals because making them local would have required an
> > awful lot of parameter "shuttling" that I believed made the code
> > less readable. For instance, the `append_word_to_list` function
> > right now has no parameters and can be called very simply by the
> > parser whenever it is needed. If all variables used were local, the
> > function would have to have a signature akin to:
> >
> >   static bool append_word_to_list(grub_size_t *current_word_pos_ref,
> >     grub_size_t *current_word_len_ref, char *current_word,
> >     grub_size_t *word_list_len_ref, char **word_list)
> >
> > IMO this is difficult to read and frustrating to call (possibly even
> > error-prone). Ultimately the variables are "local" to the parser,
> > and the functions are just there to split up the parser's algorithm
> > to avoid repetition. They all ultimately operate on the same state,
> > so having the state variables static but global within the file
> > fits the current parser design well. =20
>=20
> First of all, think about the design. If you are sure it is optimal
> then please use struct and a pointer to pass as many argument as you
> need...

Will do.

> > > > +static bool
> > > > +append_char_to_word (bool allow_null)
> > > > +{
> > > > +  /*
> > > > +   * Fail if the current char is outside of the range 0x20 to
> > > > 0x7E. If
> > > > +   * allow_null is true, make an exception for 0x00. This is a
> > > > safeguard =20
> > >
> > > Could you elaborate here when allow_null =3D=3D true is useful? =20
> >
> > Usually when appending characters to a word, you aren't going to be
> > appending null characters, thus `append_char_to_word` usually
> > rejects =20
>=20
> s/null/NUL/...

Will switch terminology from now on.

> > those so as to make it harder to mess things up. However, the string
> > does need to be null-terminated, and thus once a command line word
> > is =20
>=20
> Ditto... In general, even it is correct, I prefer to use NUL instead
> of null/NULL to avoid confusion...
>=20
> > fully loaded into current_word, it is necessary to add the null
> > terminator on the end. In this instance the parser sets
> > `current_char` to '\0' and then calls the `append_char_to_word`
> > function with `allow_null` set to true, so that the function knows
> > that the addition of a null is intentional here.
> >
> > (In retrospect, if allow_null is set to true, the only thing
> > `append_char_to_word` should append is a null character, it should
> > reject anything else in that instance. Otherwise someone could
> > accidentally append something other than a null when they meant to
> > append a null.) =20
>=20
> Is not it simpler to open code this instead of complicating this
> function?

Due to the possibility of having to reallocate the buffer, I don't
think so. If however we switch to using a buffer than doesn't need
reallocation, then it would be simpler to do that. I'll experiment with
it before sending the next patch version.

> > > > +   * against likely-invalid data.
> > > > +   */
> > > > +  if ( (!(current_char >=3D 0x20) || !(current_char <=3D 0x7E) ) =
=20
> > >
> > > grub_isprint()? =20
> >
> > That would work, I wasn't aware that existed. Maybe a mention of
> > some valuable GRUB internal API functions that are likely to remain
> > stable could be added to the GRUB development manual? (Or just a
> > reference to header files where useful things like this are
> > defined.) =20
>=20
> Certainly it is a good idea. In general you can assume the GRUB has a
> lot of POSIX compatible functions which names are prefixed with
> "grub_".

Nice, good to know.

> > > > +      && (current_char !=3D '\0' || allow_null =3D=3D false)) =20
> > >
> > > I would drop redundant spaces between "(" and ")" and move "&&"
> > > to the end of first line of "if". =20
> >
> > Will do, though I'm likely to rewrite this conditional anyway so
> > that anything other than '\0' will be rejected when `allow_null =3D=3D
> > true`.=20
> > > > +    return false;
> > > > +
> > > > +  if (current_word_pos =3D=3D current_word_len)
> > > > +    {
> > > > +      current_word_len *=3D 2; =20
> > >
> > > You can do this in the argument of the function below... =20
> >
> > I mean, yes, technically I can, but that's a lot less readable to
> > me. I can't find anywhere else in GRUB that uses that style (using
> > `grep -ri '\*=3D'` to search), and can find a few spots that use a
> > style similar to the one I've used here:
> >
> > * `util/grub-install.c` in function `device_map_check_duplicates`
> > * `grub-core/osdep/windows/platform.c` in function
> > `get_efi_variable`
> > * `grub-core/osdep/unix/platform.c` in function `get_ofpathname`
> > =20
> > > > +      current_word =3D grub_realloc (current_word,
> > > > current_word_len);
> > > > +      if (current_word =3D=3D NULL)
> > > > +        {
> > > > +          current_word_len /=3D 2;
> > > > +          return false;
> > > > +        }
> > > > +    }
> > > > +
> > > > +  current_word[current_word_pos] =3D current_char;
> > > > +  current_word_pos++; =20
> > >
> > > Again, you can do this operation in the "[]" above... =20
> >
> > Will do. (This does seem to be a much more common way to write
> > things in GRUB than what I've done.)
> > =20
> > > > +  return true;
> > > > +}
> > > > +
> > > > +static bool
> > > > +append_word_to_list (void)
> > > > +{
> > > > +  /* No-op on empty words. */
> > > > +  if (current_word_pos =3D=3D 0) =20
> > >
> > > This should be probably an argument for the function... =20
> >
> > See above for parser state and global variables rationale.
> > =20
> > > > +    return true;
> > > > +
> > > > +  current_char =3D '\0';
> > > > +  if (append_char_to_word (true) =3D=3D false)
> > > > +    {
> > > > +      grub_error (GRUB_ERR_BUG,
> > > > +		  "couldn't append null terminator to word
> > > > during Xen cmdline parsing");
> > > > +      grub_print_error ();
> > > > +      grub_exit ();
> > > > +    }
> > > > +
> > > > +  current_word_len =3D grub_strlen (current_word) + 1;
> > > > +  current_word =3D grub_realloc (current_word, current_word_len);
> > > > +  if (current_word =3D=3D NULL)
> > > > +    return false;
> > > > +  word_list_len++; =20
> > >
> > > Again this, OK ++word_list_len to be precise, can be done in a
> > > function argument below... =20
> >
> > `grep -ri 'alloc.*++'` doesn't show me any instance of this style
> > anywhere else in the GRUB codebase, and I find it much more
> > difficult to read since now I have to think about incrementing
> > `word_list_len`'s value and returning it and multiplying the
> > returned value all at the same time.
> > `grub-core/osdep/unix/platform.c` uses the style I've used here.
> > =20
> > > > +  word_list =3D grub_realloc (word_list, word_list_len * sizeof
> > > > (char *)); =20
>=20
> word_list =3D grub_realloc (word_list, ++word_list_len * sizeof (char
> *a));
>=20
> Is it really difficult to read? I do not think so...

I find it harder to read personally, but I'm fine with switching to it
if you'd prefer.

> [...]
>=20
> > > > +void
> > > > +grub_parse_xen_cmdline (void)
> > > > +{
> > > > +  const char *cmdline =3D (const char *)
> > > > grub_xen_start_page_addr->cmd_line;
> > > > +  grub_size_t cmdline_len;
> > > > +  bool cmdline_valid =3D false;
> > > > +  char **param_keys =3D NULL;
> > > > +  char **param_vals =3D NULL;
> > > > +  grub_size_t param_dict_len =3D 0;
> > > > +  grub_size_t param_dict_pos =3D 0;
> > > > +  enum parse_flags parse_flags =3D 0;
> > > > +  grub_size_t i =3D 0;
> > > > +
> > > > +  /*
> > > > +   * The following algorithm is used to parse the Xen command
> > > > line:
> > > > +   *
> > > > +   * - The command line is split into space-separated words.
> > > > +   *   - Single and double quotes may be used to suppress the
> > > > splitting
> > > > +   *     behavior of spaces.
> > > > +   *   - Double quotes are appended to the current word
> > > > verbatim if they
> > > > +   *     appear within a single-quoted string portion, and vice
> > > > versa.
> > > > +   *   - Backslashes may be used to cause the next character
> > > > to be
> > > > +   *     appended to the current word verbatim. This is only
> > > > useful when
> > > > +   *     used to escape quotes, spaces, and backslashes, but
> > > > for simplicity
> > > > +   *     we allow backslash-escaping anything.
> > > > +   * - After splitting the command line into words, each word
> > > > is checked to
> > > > +   *   see if it contains an equals sign.
> > > > +   *   - If it does, it is split on the equals sign into a
> > > > key-value pair. The
> > > > +   *     key is then treated as an variable name, and the
> > > > value is treated as
> > > > +   *     the variable's value.
> > > > +   *   - If it does not, the entire word is treated as a
> > > > variable name. The
> > > > +   *     variable's value is implicitly considered to be `1`.
> > > > +   * - All variables detected on the command line are checked
> > > > to see if their
> > > > +   *   names begin with the string `xen_grub_env_`. Variables
> > > > that do not pass
> > > > +   *   this check are discarded, variables that do pass this
> > > > check are
> > > > +   *   exported so they are available to the GRUB
> > > > configuration. =20
> > >
> > > I think not all from this valuable comment landed in the
> > > documentation. Please fix it... =20
> >
> > Comparing the two side-by-side:
> >
> > +----------------------------------+----------------------------------+
> > | Documentation                    | Comment
> >   |
> > +=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+
> > | The command line will be split   | The command line is split into
> >   | | into space-delimited words.      | space-separated words.
> > Single    | | Single and double quotes may be  | and double quotes
> > may be used to | | used to quote words or portions  | suppress the
> > splitting behavior  | | of words that contain spaces.    | of
> > spaces.                       |
> > +----------------------------------+----------------------------------+
> > | (Self-evident, any other         | Double quotes are appended to
> >   | | behavior involving quotes would  | the current word verbatim
> > if     | | be extremely unexpected.)        | they appear within a
> > single-     | |                                  | quoted string,
> > and vice versa.   |
> > +----------------------------------+----------------------------------+
> > | Arbitrary characters may be      | Backslashes may be used to
> > cause | | backslash-escaped to make them a | the next character to
> > be         | | literal component of a word      | appended to the
> > current word     | | rather than being parsed as      | verbatim.
> > This is only useful    | | quotes or word separators.       | when
> > used to escape quotes,      | |                                  |
> > spaces, and backslashes, but for | |
> >   | simplicity we allow backslash-   | |
> >       | escaping anything.               |
> > +----------------------------------+----------------------------------+
> > | Each word should be a variable   | After splitting the command
> > line | | assignment in the format         | into words, each word
> > is checked | | ``variable'' or                  | to see if it
> > contains an equals  | | ``variable=3Dvalue''.              | sign.
> >                         |
> > +----------------------------------+----------------------------------+
> > | If a variable name and value are | If it does, it is split on the
> >   | | both specified, the variable     | equals sign into a
> > key-value     | | will be set to the specified     | pair. The key
> > is then treated as | | value.                           | a
> > variable name, and the value   | |
> > | treated as the variable's value. |
> > +----------------------------------+----------------------------------+
> > | If only a variable name is       | If it does not, the entire
> > word  | | specified, the variable's value  | is treated as a
> > variable name.   | | will be set to ``1''.            | The
> > variable's value is          | |                                  |
> > implicitly considered to be '1'. |
> > +----------------------------------+----------------------------------+
> > | Variable names must begin with   | All variables detected on the
> >   | | the string ``xen_grub_env_''...  | command line are checked
> > to see  | | If any variable contains an      | if their names begin
> > with the    | | illegal name, that variable will | string
> > `xen_grub_env_`.          | | be ignored.                      |
> > Variables that do not pass this  | |
> >   | check are discarded,             |
> > +----------------------------------+----------------------------------+
> > | ...you can pass environment      | variables that do pass this
> >   | | variables from Xen's dom0 to the | check are exported so they
> > are   | | VM through the Xen-provided      | available to the GRUB
> >           | | kernel command line.             | configuration.
> >               |
> > +----------------------------------+----------------------------------+
> >
> > The only missing detail I see is that single quotes are legal in
> > double-quoted strings and vice versa, though I guess I can make it
> > more explicit that the variables passed on the command line are
> > exported before getting to the example that shows this. Is there
> > anything else you see that's missing? =20
>=20
> Exactly, I was thing about single/double quotes here. If other stuff
> is in the documentation then OK...

Will add.

--
Aaron

> > > > +   */
> > > > +
> > > > +  current_word_len =3D PARSER_BASE_WORD_LEN;
> > > > +  current_word =3D grub_malloc (current_word_len);
> > > > +  if (current_word =3D=3D NULL)
> > > > +    goto cleanup;
> > > > +
> > > > +  for (i =3D 0; i < MAX_GUEST_CMDLINE; i++)
> > > > +    {
> > > > +      if (cmdline[i] =3D=3D '\0')
> > > > +        {
> > > > +          cmdline_valid =3D true;
> > > > +          break;
> > > > +        }
> > > > +    }
> > > > +
> > > > +  if (cmdline_valid =3D=3D false)
> > > > +    {
> > > > +      grub_error (GRUB_ERR_BAD_ARGUMENT,
> > > > +		  "Command line from Xen is not
> > > > NUL-terminated"); =20
> > >
> > > GRUB errors usually start with lowercase... =20
> >
> > Will fix.
> > =20
> > > > +      grub_print_error ();
> > > > +      goto cleanup;
> > > > +    }
> > > > +
> > > > +  cmdline_len =3D grub_strlen (cmdline);
> > > > +  for (i =3D 0; i < cmdline_len; i++)
> > > > +    {
> > > > +      current_char =3D cmdline[i];
> > > > +
> > > > +      /*
> > > > +       * If the previous character was a backslash, append the
> > > > current
> > > > +       * character to the word verbatim
> > > > +       */
> > > > +      if (parse_flags & PARSER_HIT_BACKSLASH) =20
> > >
> > > s/parse_flags/parser_state/ =20
> >
> > Hmm, I don't like 'parser_state' as a name because the parser's
> > "state" is the global variables in `grub-core/kern/xen/cmdline.`.
> > Maybe 'splitter_state' instead, since this is just the bit of state
> > that the word splitter is concerned with? =20
>=20
> I am OK with both...
>
> Daniel


--Sig_/c21vzwXoh5w2G7dTvpTKCZK
Content-Type: application/pgp-signature
Content-Description: OpenPGP digital signature

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

iQIzBAEBCgAdFiEEudh48PFXwyPDa0wGpwkWDXPHkQkFAmiRNkAACgkQpwkWDXPH
kQkPSQ/9Frq2XLp0/YQsiM2+4usjCt0ms5BtnSXFaEMAk2CDAcyjgJ0Ui3IFZqPe
3kVCrb1tabXNC7BWRpV/bFwPk+mEHF3Uh0o79UqGrp7SY8x7X1tiD51fesAOjCVA
gy3USyqR4mxIeJA3qWuAODlzwl6rnNFACC81mxeYpFGP4XFP67Av+UKL6XeVF6vN
oWwVZx3rQ6jG6Bz6LbLnBTFsKclEeelVIzy5xLSAzdFY71ETr3bCCNNE4SFVvikp
8TA6ve21suqiIW/geyUAPoNwgvhJgJwHVRSRptxl+mUCeSwclWy6y1we2Z9J//5A
7g++IBadn9ZWFs6qpjKM/JNcyLECceWzhxFLutTupnjnHfR9BqjjpkRZKcbqDY1J
VqC4K1vMR9K8K4unKvL6iv8nc5jP3DM1waVqAq06zqrOq/KIjmbqOsSQK+fdLH+X
UrdQ8Ayy47nNH4FfeS+7FkTIw9ljI6l+EPfpGrlCLxgVpOHc+QNVRF2Vw08/GfOf
pMyC/rXCn51AkmLNwtjSOKNCIim6a1F9MhYzmabWJIYusjWCHHgCowBBm3ncy7gH
EO/H1avLBCRcnsQ77OpEohT721UdbzdKLFqXAW2TvTucSsS0mOGSd/qCcADqcBIw
MJjIZAlde5Lcs4reuwE+RsH44N1wWI8TrsFLM6WaMA0pRZn2Z90=
=2Iiy
-----END PGP SIGNATURE-----

--Sig_/c21vzwXoh5w2G7dTvpTKCZK--


From xen-devel-bounces@lists.xenproject.org Mon Aug 04 23:27:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 23:27:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069860.1433545 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uj4am-0002hX-1Z; Mon, 04 Aug 2025 23:27:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069860.1433545; Mon, 04 Aug 2025 23:27: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 1uj4al-0002gz-V4; Mon, 04 Aug 2025 23:27:43 +0000
Received: by outflank-mailman (input) for mailman id 1069860;
 Mon, 04 Aug 2025 23:27:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=25og=2Q=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1uj4ak-0002gt-Dm
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 23:27:43 +0000
Received: from mail-24417.protonmail.ch (mail-24417.protonmail.ch
 [109.224.244.17]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9ce51638-718a-11f0-a321-13f23c93f187;
 Tue, 05 Aug 2025 01:27:40 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9ce51638-718a-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1754350058; x=1754609258;
	bh=w3znrRy3Q3UPwv8hAmfKpkieJIJwL4RGvd+2kM8Zvcc=;
	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=hSrh4bGIoU0Fm/DnvyOIX+RaAkZg4PKbfPLqcqwjKuEDOmSsGtIdPgM83E5WhXO7p
	 UkXdlqsEtT0Vgmvz2DoWMbPp6F7oxTITGYMX1ArS6KCPKCUZ4hyQKCfkzXRCDMHT+v
	 S78Hfyys0VLwSfsG3PJ4Ulz/C+QZJGc5D9L1GP8RmfCFG6Pa/PlmnUOsWcyMFpEfN9
	 0FipfxmaPttk4fKWPayLazKFVpeug9qg1R8Pvb3tJkdnHbxl4oJR5s6dkfGYu4itjl
	 3w8m5L53izPxZk4gI8Cz46wOD8lb3Z8+xYh2W7h4Zor/NRLgsALknQvLIrbZQ8ii4U
	 DMe4b9PSlYBTg==
Date: Mon, 04 Aug 2025 23:27:34 +0000
To: Jan Beulich <jbeulich@suse.com>
From: dmkhn@proton.me
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>, Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, =?utf-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH] console: make printk_ratelimit_{burst,ms} const
Message-ID: <aJFB3wePhxL5a+xa@kraken>
In-Reply-To: <f0201ab2-db01-440a-98e9-acd3a29e91d3@suse.com>
References: <5fcd1c68-6c18-4a1d-8a1d-f056bdb6cde9@suse.com> <aI0OWwWkr0wg6FKw@kraken> <f0201ab2-db01-440a-98e9-acd3a29e91d3@suse.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 112008fd4bf757c4e1ff6d9d07ff165ed9ddada8
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Mon, Aug 04, 2025 at 09:10:34AM +0200, Jan Beulich wrote:
> On 01.08.2025 20:58, dmkhn@proton.me wrote:
> > On Fri, Aug 01, 2025 at 09:30:34AM +0200, Jan Beulich wrote:
> >> Them not being altered by any means, their __read_mostly attribute is
> >> actually counter-productive: It causes the compiler to instantiate the
> >> variables, when already with just the attributes dropped the compiler
> >> can constant-propagate the values into the sole use site. Make the
> >> situation yet more explicit by adding const.
> >>
> >> Also switch the variables away from being plain int, and have the
> >> parameters of __printk_ratelimit() follow suit. While there also
> >> similarly adjust the type of "missed" and "lost", and - while touching
> >> the adjacent line - increase lost_str[] to accommodate any unsigned
> >> 32-bit number.
> >>
> >> Fixes: a8b1845a7845 ("Miscellaneous data placement adjustments")
> >> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> >> ---
> >> In principle {__,}printk_ratelimit() may also want to have their retur=
n
> >> type changed to bool, but I think doing so would go too far here: This
> >> would have knock-on effects elsewhere, and it would want considering t=
o
> >> actually flip polarity.
> >>
> >> Despite the Fixes: tag I wouldn't consider this for backport.
> >>
> >> --- a/xen/drivers/char/console.c
> >> +++ b/xen/drivers/char/console.c
> >> @@ -1268,12 +1268,12 @@ void console_end_sync(void)
> >>   * This enforces a rate limit: not more than one kernel message
> >>   * every printk_ratelimit_ms (millisecs).
> >>   */
> >> -int __printk_ratelimit(int ratelimit_ms, int ratelimit_burst)
> >> +int __printk_ratelimit(unsigned int ratelimit_ms, unsigned int rateli=
mit_burst)
> >>  {
> >>      static DEFINE_SPINLOCK(ratelimit_lock);
> >>      static unsigned long toks =3D 10 * 5 * 1000;
> >>      static unsigned long last_msg;
> >> -    static int missed;
> >> +    static unsigned int missed;
> >>      unsigned long flags;
> >>      unsigned long long now =3D NOW(); /* ns */
> >>      unsigned long ms;
> >> @@ -1288,14 +1288,16 @@ int __printk_ratelimit(int ratelimit_ms,
> >>          toks =3D ratelimit_burst * ratelimit_ms;
> >>      if ( toks >=3D ratelimit_ms )
> >>      {
> >> -        int lost =3D missed;
> >> +        unsigned int lost =3D missed;
> >> +
> >>          missed =3D 0;
> >>          toks -=3D ratelimit_ms;
> >>          spin_unlock(&ratelimit_lock);
> >>          if ( lost )
> >>          {
> >> -            char lost_str[8];
> >> -            snprintf(lost_str, sizeof(lost_str), "%d", lost);
> >> +            char lost_str[10];
> >> +
> >> +            snprintf(lost_str, sizeof(lost_str), "%u", lost);
> >
> > Since this code is touched, I would also simplify the entire `if ( lost=
 )`
> > block (I have it done in another experiment):
> >
> >             char lost_str[64];
> >             size_t lost_len =3D snprintf(lost_str, sizeof(lost_str),
> >                                        "printk: %d messages suppressed.=
\n",
> >                                        lost_str);
> >
> >             /* console_lock may already be acquired by printk(). */
> >             rspin_lock(&console_lock);
> >             printk_start_of_line(CONSOLE_PREFIX, cflags);
> >             __putstr(lost_str, lost_len);
> >             ...
> >
> > What do you think?
>=20
> Maybe, but definitely not right in this patch.

Sure, please consider

Reviewed-by: Denis Mukhin <dmukhin@ford.com>=20



From xen-devel-bounces@lists.xenproject.org Mon Aug 04 23:36:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 04 Aug 2025 23:36:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069868.1433556 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uj4jP-0004LS-TS; Mon, 04 Aug 2025 23:36:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069868.1433556; Mon, 04 Aug 2025 23:36: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 1uj4jP-0004LL-PK; Mon, 04 Aug 2025 23:36:39 +0000
Received: by outflank-mailman (input) for mailman id 1069868;
 Mon, 04 Aug 2025 23:36:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=C33k=2Q=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1uj4jO-0004LF-TS
 for xen-devel@lists.xenproject.org; Mon, 04 Aug 2025 23:36:39 +0000
Received: from NAM02-BN1-obe.outbound.protection.outlook.com
 (mail-bn1nam02on20611.outbound.protection.outlook.com
 [2a01:111:f403:2407::611])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id da56f8e1-718b-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 01:36:33 +0200 (CEST)
Received: from CH0PR03CA0357.namprd03.prod.outlook.com (2603:10b6:610:11a::6)
 by SJ5PPF6D27E3EA3.namprd12.prod.outlook.com
 (2603:10b6:a0f:fc02::998) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.20; Mon, 4 Aug
 2025 23:36:27 +0000
Received: from CH2PEPF0000013B.namprd02.prod.outlook.com
 (2603:10b6:610:11a:cafe::26) by CH0PR03CA0357.outlook.office365.com
 (2603:10b6:610:11a::6) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.19 via Frontend Transport; Mon,
 4 Aug 2025 23:36:27 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH2PEPF0000013B.mail.protection.outlook.com (10.167.244.68) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Mon, 4 Aug 2025 23:36:27 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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 Aug
 2025 18:36:26 -0500
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 4 Aug
 2025 18:36:26 -0500
Received: from [172.17.155.73] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Mon, 4 Aug 2025 18:36:25 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: da56f8e1-718b-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iSbd4diBC5bIJk8qqb/jxPhH9YqqwTVHNq8dJxoxrnik8DfJGsFVzN0uwybsUYu+1vTMkxZ4rQRy8U+GoO7UmpskIonODE8n9Kx60xoAWM0I1FJLcv5PTPEbdt0SBMoM07TBW1FFsHH28XGdk0Zm7GtDJ/MQLry09pnj65rPlnOGNkw+9GCENWCePp2kL8WDXLoOMwDCbTHTxUbWIZJdVzn/B7Vuht1NI89kllD52nm0kqsNQMq5fa3OOdexdZs1HDPYVDMOlYW4aW5cq2m5zb3ofhc9tOZOPUabDnLHMmWb5M5zHm2lOGFEYRlTQpr1I+s9+NLPqSjWNruqTAqzgA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=j+FnWxTbd2sJ1Go3v5SfdpwD1SRiUC4hSQuQzT2VSow=;
 b=NFtFUmoS7hbY+jcvrn5mi8W0o35fGKW0+jkp5EMISkNDBLA4jSfLD8uIZ/8Yj4FD9WFmhPv8VUAyxClg+swpTe+ifVzrOpqwigapIDJReVJyPhzjyN85FGi6xTjGS0m7Q83rSwRm9724OOwNKCISjXuTCNoL6RfalQps8cxDTDrTUktSYmGBXFbGYUClK7O6GjXfC7nd8HgLq/FYxUq3t4y5uZIKGx93fpUUMC8NKPmypXg5f8aD9gfxlQTx2Eo8VoIM0lGAj9IGJCxQTebx6FornSWSjA8nsumyIzwMyw/eEy1ZqQt1pHLl/qUj3oSe3XalgkTzy7Ay0TaGkTmktQ==
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=j+FnWxTbd2sJ1Go3v5SfdpwD1SRiUC4hSQuQzT2VSow=;
 b=1I170uy7VH1ofWs82L9cyn43siqWiYdt3aATyYDn6wttD2ua8GqKsgGorTjRPa4l83PBrZJ0akSonIU96Kk68I25Iks2o6OQh5OEYp93dC43WBBGSKEH0S3vmjAmTclRmsNv5oJ/HfosNKYQru7uE0Wxe3rL/LAS63kpBmo5kzk=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <4f5009e6-3099-4f6d-af45-dc7c418f483c@amd.com>
Date: Mon, 4 Aug 2025 19:36:24 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen: rework error handling in vcpu_create
To: Andrew Cooper <andrew.cooper3@citrix.com>,
	<xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel
	<michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien Grall
	<julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>, Dario Faggioli
	<dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>, George Dunlap
	<gwd@xenproject.org>
References: <20250801202418.38977-1-stewart.hildebrand@amd.com>
 <c1aff2d0-0542-48da-a0bd-30d0eae1eef4@citrix.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <c1aff2d0-0542-48da-a0bd-30d0eae1eef4@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB05.amd.com: stewart.hildebrand@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH2PEPF0000013B:EE_|SJ5PPF6D27E3EA3:EE_
X-MS-Office365-Filtering-Correlation-Id: d9286db3-61a3-43c9-4663-08ddd3afbb5f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|1800799024|376014|7416014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?NEt2b0dqQXNDWkVZSVEyUFdRYVpNM0F5SDd6T0cxNHdqdmlkdWI0bGZvZVNw?=
 =?utf-8?B?Zy9kd2xBUTRRSnJycTFJMEc3ZHVnajI0RG1lWHRQdDJuQmx1ZmRlVGxiYk9n?=
 =?utf-8?B?RDE0M3AvOVZBRzBmZVNTb3RVdE1nM0pKZ2hWRUo1NXM4cjE0cUJlUmRMdFV1?=
 =?utf-8?B?ckFWL3pkWGwxWUZETGhuVE1jZ2NSVU1PVXRodE9ZV3NucEhkQlVONlltaHFG?=
 =?utf-8?B?WC95b2U3R29JZGcwVThiaTBPUmV1SEVPSE8vTjdpRUI4bjcrNGE1MzBBSW1T?=
 =?utf-8?B?OE11aHExM1B1TEdKUU8zMnJacDJxYnRtS21WVkF2OWlVVTBMNkhXa09pZ2hs?=
 =?utf-8?B?S01pUVZEaE1uekM1REJhMmRGU25HdFJoaHQ4Q2daaXY0VnphM1NnWXF1U1Fr?=
 =?utf-8?B?MWxUenBVQkpZSnJSWlBGQ1lmUE9tZUJtaTlNb3VTZ3JibjVXd0hYdDFiZmNX?=
 =?utf-8?B?T3ZMMEhCaENJK0pBMjhVc1J1dXFvZmRTR1p4Vkh3akg2TzVZRTh6UW5URm02?=
 =?utf-8?B?dXB3OUFoVnNHK1dKVHVuWkVlc3NERmdtUjRtR0dUOEFwNFgrNzRZbUNlTXhW?=
 =?utf-8?B?SEtqYnNtUzVpbE1uaFhmYmJ5cDQydVM0VW9EQ1grcFRHSDBEQmk5aStvVEIz?=
 =?utf-8?B?aVBvemphTnU5eFUwVEtjUERPZFdwNXA3UHN2TEl1SlpSU2NsWkUxMzZNUTVi?=
 =?utf-8?B?U1RUeklPR3lJTjg1Z04vTHJUaVhFby9LUFhLR05LOVN1aXpaajUwSzdkbjdQ?=
 =?utf-8?B?amNjWDh0M3RoT0ZpcXhjaXgxYS9NVnUwR1d2bEl4OElIcE1LMjVuYSt4ckF5?=
 =?utf-8?B?TVRESk1yUGx2UXRidmw5M2FFd2JaYkpRZE15LzM5TkN6MjZOQUJyV0YzVFY1?=
 =?utf-8?B?bVJ4NWhMWElKY1dwS3VLUkZReEQ0ajBNWm5NbWRuN25PQlJ4L1lzK3A1eHlD?=
 =?utf-8?B?SVNwVzdRbmhOd1ZkdU9BSWdwclU5VEhaSXFKUDJsRU9rMThDU0tmNDdoNG4x?=
 =?utf-8?B?a0pMR2tvZEZGNnl6VFBVN05HWk41MUpubGdQYXVHRUQ3c2NLN0hJYW9DQXNH?=
 =?utf-8?B?TVJDdDY2YktvaGdjTXdBejVLY05KRi9VQ3ljVmI1MHZvK3c2SUxFek9LYURw?=
 =?utf-8?B?L0lVUUIwckpmSTdaSEg3YkFxL3RMdVh1RFNCNzBPYkN3RWVUUW5mYWswVVZ5?=
 =?utf-8?B?Y3AvQlNUTmtMZEtFaVJRc2lVMG41WFFQYVdMRWpuOHlpbXFUSlh6cEhWS2Qx?=
 =?utf-8?B?MGZBOFdYLzJITExJVHJDK25iOHloNEpXQnh4L1haS1NjMDF4MnlQTlo1L0JX?=
 =?utf-8?B?SE1RTDl2SHlNaHVzVkJyaU5mSXN3bGRJeDRiY0ZWWk5YaWREcTJyVTQrZHB2?=
 =?utf-8?B?U3BFbzNoSVVzdlVFZ1ZYUU0zdVRRTlJ2cnA4Sy9nNjlGTnZYSms3cngwcjhF?=
 =?utf-8?B?TEtBM1F3WlI1VUJKeTlMRm8zbkZCRVozNVluNjRIejNWZjMzZTJ3Z1pIVzRr?=
 =?utf-8?B?RlE2bWNYd1YyblQxVHNWS2N4cmdqcHF4a2hKdWNaN1RrMWJkRVI4SDBNNkdT?=
 =?utf-8?B?djdjRzNZaTE0OXdPWkNrRDN0TzM2dy93TFZhYW9JZlMxK0VhNDNkTnNWbndY?=
 =?utf-8?B?UlJFVkJhcWRhTWQzZVhZOHNyT1dLeVMxZWdHMlcvOUxOYmNNd05vT0l5WTBh?=
 =?utf-8?B?bnhEcUNoYXdldFUyZ1Zoc2dneDAvRktndTR2em5JQW1QbDNGM2xQcm9Tc0Jw?=
 =?utf-8?B?UmN1TTBVVldWemFhSWFDV2RjTU9iRjB5TnAzNHpOdVhzcnFyVkppbEVJRjVC?=
 =?utf-8?B?R2pwT09Rd3k5bXo1LzJiR0tWeTc2SUVvR2M0cVp2U0N0RGFadGxqVGhTUmIw?=
 =?utf-8?B?NmtwUVZKZmVDMUxGSnl6ditRWFdlV3JXeElZeGtHWHl4QU9lQ1k5QjFLeU9H?=
 =?utf-8?B?UTVjeUt1YXVFQVVEd0I5cEh0cjBEUHg4ZktxcVJaS0twakFvVmFGMVNVYkVW?=
 =?utf-8?B?Zm91VEJFQjFlb2IybDhCb0dsQXRPOTdOUXE3ZStoL2U2dytmZnlMdlM5WVZo?=
 =?utf-8?Q?mgKJJ+?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(1800799024)(376014)(7416014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2025 23:36:27.2250
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d9286db3-61a3-43c9-4663-08ddd3afbb5f
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH2PEPF0000013B.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPF6D27E3EA3

On 8/3/25 09:19, Andrew Cooper wrote:
> On 01/08/2025 9:24 pm, Stewart Hildebrand wrote:
>> In vcpu_create after scheduler data is allocated, if
>> vmtrace_alloc_buffer fails, it will jump to the wrong cleanup label
>> resulting in a memory leak.
>>
>> Move sched_destroy_vcpu and destroy_waitqueue_vcpu to vcpu_teardown.
>> Make vcpu_teardown idempotent: deal with NULL unit.
>>
>> Fix vcpu_runstate_get (called during XEN_SYSCTL_getdomaininfolist post
>> vcpu_teardown) when v->sched_unit is NULL.
> 
> This is unfortunate.Â  It feels wrong to be updating stats on a domain
> that's in the process of being destroyed, especially as a side effect of
> a get call.
> 
> But, I wonder if we've uncovered an object lifecycle problem here.Â 
> Previously any vCPU which was addressable in the system (i.e. domid was
> addressable, a d->vcpu[x] was not NULL) had a unit.

Hm.

My understanding is that domain destruction happens in roughly two
parts. The first part finishes right away, e.g. before "xl destroy"
returns. The 2nd part may be deferred and happens in
complete_domain_destroy. There may pass a non-negligible amount of time
before complete_domain_destroy runs, giving opportunity for an admin to
invoke all sorts of hypercalls from dom0 in the meantime when
half-destroyed domains still exist. E.g. see 54fe207f29f8 ("sched/null:
avoid another crash after failed domU creation").

Currently, sched_destroy_vcpu happens in complete_domain_destroy (i.e.
it's deferred), so half-destroyed domains still have their vcpu data.
The present patch moves sched_destroy_vcpu to the first stage of domain
destruction, not deferred. A consequence of doing so is that it would
open up a non-negligible window for an admin to invoke all sorts of
hypercalls while there exists half-destroyed domains with freed vcpus.

This is getting to be a bit complex, and it appears there's potential
for more fallout. While I'd be happy to make the changes to address your
comments below, I wonder if we should consider taking v1 of the patch
for now.

>>
>> Fixes: 217dd79ee292 ("xen/domain: Add vmtrace_size domain creation parameter")
>> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
>> ---
>> v1->v2:
>> * move cleanup functions to vcpu_teardown
>> * renamed, was ("xen: fix memory leak on error in vcpu_create")
>> ---
>>  xen/common/domain.c     | 14 ++++++--------
>>  xen/common/sched/core.c |  5 ++++-
>>  2 files changed, 10 insertions(+), 9 deletions(-)
>>
>> diff --git a/xen/common/domain.c b/xen/common/domain.c
>> index 5241a1629eeb..9c65c2974ea3 100644
>> --- a/xen/common/domain.c
>> +++ b/xen/common/domain.c
>> @@ -388,6 +388,8 @@ static int vmtrace_alloc_buffer(struct vcpu *v)
>>  static int vcpu_teardown(struct vcpu *v)
>>  {
>>      vmtrace_free_buffer(v);
>> +    sched_destroy_vcpu(v);
>> +    destroy_waitqueue_vcpu(v);
>>  
>>      return 0;
>>  }
> 
> Along with this, you want a matching:
> 
> diff --git a/xen/common/domain.c b/xen/common/domain.c
> index 5241a1629eeb..3fd75a6d6784 100644
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -1412,8 +1412,6 @@ static void cf_check complete_domain_destroy(struct rcu_head *head)
> Â Â Â Â Â Â Â Â Â Â Â Â  continue;
> Â Â Â Â Â Â Â Â  tasklet_kill(&v->continue_hypercall_tasklet);
> Â Â Â Â Â Â Â Â  arch_vcpu_destroy(v);
> -Â Â Â Â Â Â Â  sched_destroy_vcpu(v);
> -Â Â Â Â Â Â Â  destroy_waitqueue_vcpu(v);
> Â Â Â Â  }
> Â 
> Â Â Â Â  grant_table_destroy(d);
> 
> 

OK

>> @@ -448,13 +450,13 @@ struct vcpu *vcpu_create(struct domain *d, unsigned int vcpu_id)
>>      }
>>  
>>      if ( sched_init_vcpu(v) != 0 )
>> -        goto fail_wq;
>> +        goto fail;
>>  
>>      if ( vmtrace_alloc_buffer(v) != 0 )
>> -        goto fail_wq;
>> +        goto fail;
>>  
>>      if ( arch_vcpu_create(v) != 0 )
>> -        goto fail_sched;
>> +        goto fail;
>>  
>>      d->vcpu[vcpu_id] = v;
>>      if ( vcpu_id != 0 )
>> @@ -472,11 +474,7 @@ struct vcpu *vcpu_create(struct domain *d, unsigned int vcpu_id)
>>  
>>      return v;
>>  
>> - fail_sched:
>> -    sched_destroy_vcpu(v);
>> - fail_wq:
>> -    destroy_waitqueue_vcpu(v);
>> -
>> + fail:
>>      /* Must not hit a continuation in this context. */
>>      if ( vcpu_teardown(v) )
>>          ASSERT_UNREACHABLE();
>> diff --git a/xen/common/sched/core.c b/xen/common/sched/core.c
>> index 2ab4313517c3..fb7c99b05360 100644
>> --- a/xen/common/sched/core.c
>> +++ b/xen/common/sched/core.c
>> @@ -321,7 +321,7 @@ void vcpu_runstate_get(const struct vcpu *v,
>>       */
>>      unit = is_idle_vcpu(v) ? get_sched_res(v->processor)->sched_unit_idle
>>                             : v->sched_unit;
>> -    lock = likely(v == current) ? NULL : unit_schedule_lock_irq(unit);
>> +    lock = likely(v == current || !unit) ? NULL : unit_schedule_lock_irq(unit);
> 
> This is obfuscation for obfuscations sake.Â  The normal way of writing it
> would be:
> 
> Â Â Â  if ( v != current && unit )
> Â Â Â  Â Â Â  lock = unit_schedule_lock_irq(unit);
> 
> and that is precisely what the compiler emits.
> 
> Moreover it also matches the pattern for how the lock is released, later
> in the function.

OK, but I'd need to initialize lock to NULL (or add "else lock = NULL;")
to avoid error: 'lock' may be used uninitialized in this function. Also,
would we want the condition enclosed in unlikely(...) ?

    if ( unlikely(v != current && unit) )
        lock = unit_schedule_lock_irq(unit);
    else
        lock = NULL;


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 00:25:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 00:25:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069881.1433566 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uj5U1-0002io-7E; Tue, 05 Aug 2025 00:24:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069881.1433566; Tue, 05 Aug 2025 00:24: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 1uj5U1-0002ih-4N; Tue, 05 Aug 2025 00:24:49 +0000
Received: by outflank-mailman (input) for mailman id 1069881;
 Tue, 05 Aug 2025 00:24:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=15pZ=2R=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1uj5Ty-0002iU-80
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 00:24:47 +0000
Received: from mail-24416.protonmail.ch (mail-24416.protonmail.ch
 [109.224.244.16]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9535d9a8-7192-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 02:24:43 +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>
X-Inumbo-ID: 9535d9a8-7192-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1754353482; x=1754612682;
	bh=jmSlZ+nH0HTo+SfNQ5zHTS2TQ6CtRkTRjHZXyfnPl1g=;
	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=Eyr1sesiqKxrBIG0RmqBFotQDjHzhHIhP7/gGixA5EfSvHeX+Y3cYnBdLr4/0aVdd
	 BxLxf9pZQxWusjeG3K/4CkwYvEcFHXbOHwFT/wt7UNnVTP90M2dqISf2uMZfooTedY
	 yd2QqaQW2tCU8PLGF74gh5tXm/C4payDCoOcnfAzaDTT7CKXbkLbNqwb7mLeugEAQm
	 GFv1xf567xzDaQQ4OaJyfanU4ewTmzDp6S2juh1zBlOnSHkFZyZNr7r/AcVsyeTsbB
	 Rrd0pmc8ciq9TKOqXOHK/IG9USOUNc2AJ1YFH+IMya4U34ibzbru6E33HpLfyDbL4f
	 UUxrMEMgnt5xQ==
Date: Tue, 05 Aug 2025 00:24:38 +0000
To: Jan Beulich <jbeulich@suse.com>
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org, michal.orzel@amd.com, oleksii.kurochko@gmail.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 12/16] xen/domain: introduce domain-emu.h
Message-ID: <aJFPQnxla7hzLbZW@kraken>
In-Reply-To: <61efc085-a787-4ca9-82e4-032408532ba6@suse.com>
References: <20250624035443.344099-1-dmukhin@ford.com> <20250624035443.344099-13-dmukhin@ford.com> <33f98fe5-9b29-43e4-a87d-19eafb30f281@suse.com> <aIvYSn2ZwyWTwIzm@kraken> <65e288b7-d8fe-409e-a287-69b4dc29f0c2@suse.com> <aI0V0v0yltODw5bs@kraken> <61efc085-a787-4ca9-82e4-032408532ba6@suse.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: f08b396511e3536fd51ca897b7d45d1beacc3ab8
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Mon, Aug 04, 2025 at 09:13:07AM +0200, Jan Beulich wrote:
> On 01.08.2025 21:30, dmkhn@proton.me wrote:
> > On Fri, Aug 01, 2025 at 08:02:56AM +0200, Jan Beulich wrote:
> >> On 31.07.2025 22:55, dmkhn@proton.me wrote:
> >>> On Wed, Jul 09, 2025 at 04:57:44PM +0200, Jan Beulich wrote:
> >>>> On 24.06.2025 05:56, dmkhn@proton.me wrote:
> >>>>> @@ -458,16 +459,16 @@ struct arch_domain
> >>>>>  } __cacheline_aligned;
> >>>>>
> >>>>>  #ifdef CONFIG_HVM
> >>>>> -#define X86_EMU_LAPIC    XEN_X86_EMU_LAPIC
> >>>>> -#define X86_EMU_HPET     XEN_X86_EMU_HPET
> >>>>> -#define X86_EMU_PM       XEN_X86_EMU_PM
> >>>>> -#define X86_EMU_RTC      XEN_X86_EMU_RTC
> >>>>> -#define X86_EMU_IOAPIC   XEN_X86_EMU_IOAPIC
> >>>>> -#define X86_EMU_PIC      XEN_X86_EMU_PIC
> >>>>> -#define X86_EMU_VGA      XEN_X86_EMU_VGA
> >>>>> -#define X86_EMU_IOMMU    XEN_X86_EMU_IOMMU
> >>>>> -#define X86_EMU_USE_PIRQ XEN_X86_EMU_USE_PIRQ
> >>>>> -#define X86_EMU_VPCI     XEN_X86_EMU_VPCI
> >>>>
> >>>> The old code deliberately used values from the public interface.
> >>>
> >>> In next version I am building, I moved all of XEN_X86_EMU_XXX definit=
ions as
> >>> is to a new public header under include/public/xen-emu.h:
> >>>
> >>>   https://gitlab.com/xen-project/people/dmukhin/xen/-/commit/9b0bc5ff=
a5710114df8523ae2aa7680b7c6f0942
> >>>
> >>> That looks less invasive.
> >>>
> >>> Will that work?
> >>>
> >>> There should be a common header with emulation flags somewhere, since
> >>> there will be SBSA and hwdom vUART definitions there.
> >>
> >> Yet will there be a strict need for any constants to be identical (i.e=
.
> >> not only have the same name, but also the same value) across architect=
ures?
> >
> > I don't think there's strict need for identical values across achitectu=
res.
>=20
> That's what I was expecting.
>=20
> > But some of the constants _may_ be reused for non-x86 arches, like VPCI=
 bit
> > and, perhaps, IOMMU, PIRQ and future NS16550 (after adding MMIO).
>=20
> Right, but as you say - they want to use the same name, but they could ea=
sily
> have a different value there. I hope you understand that what I'm questio=
ning
> is the introduction of a single header covering all architectures.

Yes, I understand your point wrt common header and identical values in
emulation flags.

I think I can add missing per-vUART fields to per-arch xen_arch_domainconfi=
g,
populate them by the toolstack and be done for now, i.e. I can drop that
patch.

--
Denis



From xen-devel-bounces@lists.xenproject.org Tue Aug 05 00:54:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 00:54:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069894.1433577 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uj5x3-0006ZM-Au; Tue, 05 Aug 2025 00:54:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069894.1433577; Tue, 05 Aug 2025 00: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 1uj5x3-0006ZF-6h; Tue, 05 Aug 2025 00:54:49 +0000
Received: by outflank-mailman (input) for mailman id 1069894;
 Tue, 05 Aug 2025 00:54:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=15pZ=2R=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1uj5x1-0006Z2-FA
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 00:54:48 +0000
Received: from mail-10630.protonmail.ch (mail-10630.protonmail.ch
 [79.135.106.30]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c38920fd-7196-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 02:54:39 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c38920fd-7196-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=nlfzmj5cnbgtrfqinrkr57pfqy.protonmail; t=1754355277; x=1754614477;
	bh=Gf/gUMS/DL3VWa3qxDAViy/wKvJEWViUk/wKkn4k5IA=;
	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=K+BLDedy8E0FJazuT6YimuDDqtiFPQoXEmFF7Z1wAUhdKTYT0vvIRtLWNLZ9jRwKK
	 L4hvxajIu/WDptnzN7eT4u/kOYySNl/4X7hRsyWBz3B/O4amx3Ut1//lgOhNCkL+e4
	 V4ivQ4FvriizDIFVwgJSSVRVOn1V8FoMXh39cTKbe89ffwNEQltfUyom3FzxQ9P/nh
	 dqvM+xrjRROnK2r5I40dl2SvrjyNgoVqNTGKSnq7wd4fDdu505GAW6yLPmT+mjW36h
	 b1YS21+2BQzu1k88S1GJSspaY2Lkuz8DThJig2fRmqp5DH3i0LY/5gDoS95OtiYLFP
	 Ld3jKlHdAiA7g==
Date: Tue, 05 Aug 2025 00:54:31 +0000
To: Jan Beulich <jbeulich@suse.com>
From: dmkhn@proton.me
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, oleksii.kurochko@gmail.com, dmukhin@ford.com, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 1/8] xen/domain: introduce common emulation flags
Message-ID: <aJFWQByvktADgYKu@kraken>
In-Reply-To: <f2be5a00-63e6-489d-a26a-7d48d6ae41ad@suse.com>
References: <20250731192130.3948419-1-dmukhin@ford.com> <20250731192130.3948419-2-dmukhin@ford.com> <f2be5a00-63e6-489d-a26a-7d48d6ae41ad@suse.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 832fb489d638f87ab26acd733321aad8886c7034
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

+ Cc: Oleskii

On Mon, Aug 04, 2025 at 11:46:36AM +0200, Jan Beulich wrote:
> On 31.07.2025 21:21, dmkhn@proton.me wrote:
> > --- a/xen/include/xen/sched.h
> > +++ b/xen/include/xen/sched.h
> > @@ -652,6 +652,8 @@ struct domain
> >      unsigned int *llc_colors;
> >  #endif
> >
> > +    uint32_t emulation_flags;
>=20
> Just one further remark: The field probably never should have been of thi=
s
> type; unsigned int will do, and imo will want switching to while the fiel=
d
> is being moved. (Before giving an x86 ack, I want to convince myself thou=
gh
> that this is moving us in the right direction.)

Hi Jan,

I can definitely use different mechanism for virt ns16550: add a new field =
in
xen_arch_domainconfig. That will also simplify some of the emulation_flags
checks on x86 and will be more flexible wrt emulator configuration (e.g. I =
can
allow passing I/O ports ranges).

Hi Arm/RISC-V maintainers,

Do you foresee any need in bubbling up emulation_flags to the common `struc=
t
domain`?

--
Denis



From xen-devel-bounces@lists.xenproject.org Tue Aug 05 03:39:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 03:39:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069914.1433586 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uj8Vr-0007RL-MH; Tue, 05 Aug 2025 03:38:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069914.1433586; Tue, 05 Aug 2025 03:38: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 1uj8Vr-0007RE-JX; Tue, 05 Aug 2025 03:38:55 +0000
Received: by outflank-mailman (input) for mailman id 1069914;
 Tue, 05 Aug 2025 03:38:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=KS29=2R=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1uj8Vq-0007R8-AM
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 03:38:54 +0000
Received: from NAM02-BN1-obe.outbound.protection.outlook.com
 (mail-bn1nam02on2062e.outbound.protection.outlook.com
 [2a01:111:f403:2407::62e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b3fd1e83-71ad-11f0-a321-13f23c93f187;
 Tue, 05 Aug 2025 05:38:52 +0200 (CEST)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 CH0PR12MB8530.namprd12.prod.outlook.com (2603:10b6:610:188::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.21; Tue, 5 Aug
 2025 03:38:47 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d%7]) with mapi id 15.20.8989.018; Tue, 5 Aug 2025
 03:38: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>
X-Inumbo-ID: b3fd1e83-71ad-11f0-a321-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=u+P1l2skQb/+MPoHaDQ9E6iTp2YDdI6LlRXjWSMkfcH62k/zvW1YFdvbpWSaJgRj4rTQAb2T6gFsPeLCiEXOBElJALz7QgF6egm0zWX8AhyZGsiqYlYArp95Pg0kk3fppUaetIkKjE8vNJECg2ApAj/3CFestJ1Atmuiqf8nVXz0TVQOJ0snZhCccmZN/HsmO4ocyMM2VsckF1hSlUAwZE1mQBMTbJ0snG1FeJc2e9YyejG/R4QE4a26P0hZ7eKFdv8iiH5UWX2I7OwUOP+iEcnOKk5vm8XO87A4IepBA6cH0GE//Nhbf7PIpko0LNiMhOq+8mjt1/QtcAv6z7jSkw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=86mT8uL4FvixMVJuXxW4Wj/wwv2wlMHOKFATAOBdTwQ=;
 b=hBhZn8EF3BPqexBNbif8mxhn1tABgxMM6CDrkZthgWG4G40bDL7dR9DvOXIV7PVQmpIlegT33Iftsa0oKoZH19LiuTPnB2lVcL46Bl1a8sn2qcFBIoSF9AoUC5xi8J5hiYprf1dp6ikDll2tiFxg4dE+AWBKUXo3BLo8nZ425hMxnArvt7wUNFYDtECQ4n72ZIb42I1RlidvNHzOpMFWSixIvsPanz6Y2mNlUo6nM4txRE1rYtpaAHdWN/OgjeQn/gFzyYZNkwU2C/c8ami2sttsKBq9N4EDyGsS3xLN0RHQjKiG9clXBjhtVuIlcjHm5wi8UBy8niOhPvXiP5cj7A==
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=86mT8uL4FvixMVJuXxW4Wj/wwv2wlMHOKFATAOBdTwQ=;
 b=XZoJv3xM/Tq2EghgPlq3JItXbwFg1uHRZP4BoCTufxt1U8MWTfQ+5URO372/9C2JZmy5bqqaETaHttC6rVwcx59Qeavq98qTL0StuupjO0hfqVLdmE6QjCqmTIxbx8Hpmp2rIfSybn40jBMpr4KU8P7HXFZfIz6hibWQ/J5/b4g=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Orzel,
 Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v1 01/25] xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE
Thread-Topic: [PATCH v1 01/25] xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE
Thread-Index: AQHcBFu8ZJDiUyPinUSx+WVIYPWedrRSHgaAgAAiBnA=
Date: Tue, 5 Aug 2025 03:38:46 +0000
Message-ID:
 <DM4PR12MB84510F1F89641B672916C055E122A@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20250803094738.3625269-1-Penny.Zheng@amd.com>
 <20250803094738.3625269-2-Penny.Zheng@amd.com>
 <371bc812-acdb-41ef-950b-3c9e5feea48e@suse.com>
In-Reply-To: <371bc812-acdb-41ef-950b-3c9e5feea48e@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-08-05T03:38:18.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|CH0PR12MB8530:EE_
x-ms-office365-filtering-correlation-id: d8991b83-a7d9-4829-4d64-08ddd3d195ab
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?eGlEdmN3MWs4cVhDdkhvOFVPSlQ4ZXB4VUpqcGhHTnU0dXVNTC9kZTh3eDJ5?=
 =?utf-8?B?VHF3R25CdDBqZzNpSW5MQjRrMDZOMFZPYnFsYVZvNmpucU5HRUJqNFRPV3pB?=
 =?utf-8?B?TElSZVNRLzJiaVRuN3NXKzVUWi9wVmtkODBHRVljSUl3cVREdGtXVVBpeEk1?=
 =?utf-8?B?UGE5eHZDbFZ1bWM4MGwrd3VLRWRqVFpTdXlDZXdhcVUxajhiWUF6YmxBYzFu?=
 =?utf-8?B?TEd6bmFVWndFdERRb1BWeDQ2bzVKV3AzTHhVcWQ2RVpTZVpZTy9CKzRSYjBY?=
 =?utf-8?B?Z0NlTkxBQlluTkxEV1FmK3hDUFUvTHBERmw3eW9tVUx0Vmk0TzR1ZTlxT0R4?=
 =?utf-8?B?emNwNHBGNStJWW4yeDFpYk5HbEd1VkNLY0hvd01odmJxUTFaZXJCeVpycTNH?=
 =?utf-8?B?cDJyU1VhZGpqN09WUjh6TmJrZWhRRnJmbmZHdWU5dGZaUU03WUs2M05IUWky?=
 =?utf-8?B?RHpRQXdnekIxWGdyU2ZTYTBIa3QxeVcvenRYbXl4NVNXZjZqdm42QlJzY2tE?=
 =?utf-8?B?MmJESmJOZHBiQVVrMjN1U0cvTmdCN1dPWEcwVzhLZTNVRWlMd3U3YnZWU1NC?=
 =?utf-8?B?WXBrcWFvTGtzZHgrRGYwTjBNL0JtQmxXWFJ5WWcxSGQvbGlqUWtQUFFhT1JH?=
 =?utf-8?B?bDJtNHhVZjE5b1RmbXNKTGZ6R21BZmZ5MkpaOUUybDZZT2pjYS9xdk4xN0Vp?=
 =?utf-8?B?Q2VvazBYaXdwb004VExDUVJaeVczL1JDa3FDOENUalVWV1hEdUh3ZWVjVnpk?=
 =?utf-8?B?a29USDlHdWpBeVFPK0xDUGtVN01TRjRRQ0p4WFpqZDU5bWxlS29lajhGUlJh?=
 =?utf-8?B?cndpSUU1V0lxd3dFTWprczBpSC93bngvejhwTmlUaGQ2Uk9kb0hXWHJCK0Ru?=
 =?utf-8?B?cUpKUk8rTkovYlBtU0hIRjBLNFFjY2t1RjFaQkMwM0E4ZTljYXZtN1RLYUsr?=
 =?utf-8?B?YzVtbURpaE5sK2xESWxFVXpWTjBwb0ovdXRnbkNGMjB5d0R5ZlhiSVlaZ1hn?=
 =?utf-8?B?Ym84MHVheEFYcmlWTis4a1Y4VXpYSk1VbVlOc3hrVGR2ZU5jTnZhWnNPOFRB?=
 =?utf-8?B?Q2pFUlgrT2FmNzdjakdTc09acUlxZDQxTTk1emxxNEh5bW5oN2FyNS9ZTEgr?=
 =?utf-8?B?ZlpDbTBDL3pmei9FVDRUUjQ2OFovbzl2cWpYNXpRcUxETVhZc3NLeGY0T2pW?=
 =?utf-8?B?bmRkS2ZnYkt1eEdCYTRmZ2Z2MHdTbkxXRVhyWm95TlZqT3Q3RlF0QStWYVRG?=
 =?utf-8?B?c2pDR1d6T1J2dWJDSmlwQk5YU2M4OVl2bjNDUVJFa3lhWEJmWUVuRWw1STIv?=
 =?utf-8?B?UytYYkZJR2ZhRDFibXMvWUNJb0lZVVBieFh6TW1Ub0ZFUUdKZVJIWHVGaVJZ?=
 =?utf-8?B?S1hGUFN2eThQL1h2TXBUc3R4dGRPMkZZOFZ3dU4reDNPcDNXUXZGQVh6WStP?=
 =?utf-8?B?WTRVdVpyLzNtR1RRZzdKNGdhQ1I3ZG0wRTVjQTVBZWdSUXdxaGtIeWp5ZEI4?=
 =?utf-8?B?a21FVTI3RzdQV1V3OE9zTkFzTWVrckN5MSt3ZUJSblFGejI3dDRNb2RYc2RT?=
 =?utf-8?B?bzI2bGNUMHR0czdUZHU2OGNjcytvcW9yT2psTHJ0UzZqMW1scDhPeDhiRExX?=
 =?utf-8?B?UkZrR0QraE50bmFuS3VoeVR4QmFwTUNJTk0vNHVyUklQSlBDMVZnWEFnWkRK?=
 =?utf-8?B?V3pIZWg2UUIreStDTnU2aEw0cEp6L2ROaHltSVNPVEFiMUp1UG02b08xV245?=
 =?utf-8?B?dmdtN3lGNlZNZG5tYzhLMDhHNzdIUGdmR09PN0RTZVJoS01SWE4wVXg3MEVn?=
 =?utf-8?B?MkdkczFhWFBFb0FROUVUVlR0RE9XeE1iakMwOGVFQjlrSndYR3ROdWI1TUtv?=
 =?utf-8?B?RGplSFFEeGRtNEt0WFVJUUhIc2VINkI2ck5GMGhVOVV3R0FiaWYxNktDQlMw?=
 =?utf-8?B?aEFmbmNaaHNaeDZKUUF3bTJHVHRDeGw0SEpmNWljWWhhSDJZSVB0RXl4NXNM?=
 =?utf-8?B?dDUxYTgra2RBPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?b1A0TU5wU3hmU2pPRm1hRFlDdWdERzg3NElRWEpWL0V1YVdrcHdoWjFZVVdh?=
 =?utf-8?B?eW85S3F1ajN3MkM2cmh6OU5pVWxYd1lTS2lMSDI3cGhuaEh2bUJhRytFR1k2?=
 =?utf-8?B?QmdQNjBYcGZTVnlxWE5kN1U3b0h2VlJPRzUvOTRiMVhWNlJYVkFXYjBBMEho?=
 =?utf-8?B?cEVWZENzbktLdFFrMlgrZldWVjFPaitDSWVJUHJ0OFlycXJrbCtVeDV4ZFNB?=
 =?utf-8?B?dWRKTG45bzVBdkZUekpDY00rT1V1cE1BOWR2cElxRis2bnJlbzBTRUdnMzM2?=
 =?utf-8?B?QXZFeHlXbnptSVhwcUp3OFJrMThVNjZ3Vjd5Mzd6cTB4Z0oyLzVVSTN0VkVv?=
 =?utf-8?B?UzE5M1l1L2lhemtoaEl6c2Z5U2NWWHBnVTBkaW9UbVRCUXZydUh3ZkRTbCtQ?=
 =?utf-8?B?MGkySzZNRi83NlZLVUk3ajF2ak5iMmxQSkRLRUxuRW5VWEYrNy9TZDJ6UzQ3?=
 =?utf-8?B?bGY5a0daT1NIMVdHYlpoUWJ0M0V4NllQNWxNYkNjcHZtMzBldWVjNkEvc2NI?=
 =?utf-8?B?V0hxT3p4ZGN3Wi9ZVElaOWhOWnU4MjVCQkJ3U2ExNExueW1UWjFNZGVoTzZJ?=
 =?utf-8?B?WnlHK2tSKzNBcks2YStDN2F0S3EzWmVYakxXYmEyTHBac0lLZW9JU3VLUWRs?=
 =?utf-8?B?RERqeTdGaHdCYWJEanR2ZFBOaFEzMGdjeG1uUlhsTWJOVFNrSkx2TkZHZytD?=
 =?utf-8?B?cXlhK0FIdFVsVU1sdTBhZ1h1VXcvWEQ2ZmZyUTVDRzJLOVF4c0tYQ0dvWGJD?=
 =?utf-8?B?dGRUUVIreUI1R2ZKWHhJTURJV0k4NDY5UzFGV3VBbVlST2Q0Rk1DNUZxWHRo?=
 =?utf-8?B?Y0EwM3J4SHZOUmZzV2h1T0V0cThLeG9SSEgvR3h1VXNFRGFxSTNGVTl1SWV6?=
 =?utf-8?B?T3gvdFN1VG1YNFM3RnlaeHpCa25iQ0dXN2l1R3JjQVQrVVhEV3hrZXJvNHZ0?=
 =?utf-8?B?M1hvaFF6NkNtOXJEbnhDaVg1T1k0Y1BIbzc5S1JQVThKM2YwU1I5Ui9jZEU5?=
 =?utf-8?B?VXZRRHBTb3dLNTNGWmlSeVg5K1gxMTIxVUVmVmVUUnVhanpNblJHL25kcW0y?=
 =?utf-8?B?Tm0yK1NhWmZ4L01pRFRRUU5DZkEwbzdSSklDclBjc3JwMjZDRUY2NURqN3h0?=
 =?utf-8?B?SlhzRHdOc1htUDBGV1hTMzMzWnIrTTR1WTJrRXhpQitkb0JHMTlhbElmSHBX?=
 =?utf-8?B?RExwTzRzbjI3eXhiSkk3ckZrKy9rT3dTT3doVTlTQ3MrRU8xdVN1R2JFWStH?=
 =?utf-8?B?blQ0a2JpQzFPUldEblBhU2J3RU9xTEdtZVZXbEVxOTE3bDA5WlZqa1hpa2Fo?=
 =?utf-8?B?RlNQQW9YNjV3V2lUcVdJN0s0OFhyTnY5ZC81T2VoYUhZY1Rmc2dZbzFheVdh?=
 =?utf-8?B?OUY3V0NRL3hIUS9QRlM1R3V4aHh4Q29xZFBJQU85aEJLdGF4dDBSZWNjaDNG?=
 =?utf-8?B?WHZwZ29vZVpubU5VSndxUk9kT0FIczBCcGpXUllEYVQvbTNHZ3BuenJWY3py?=
 =?utf-8?B?VXV0b1BDLzIyN1FLRm45SXRwMDVhTkdWajU2ZXh0NXoyYkpHRWx0V2F1b0FX?=
 =?utf-8?B?ZGFQZFIxL2libjhNeldGY2c5YUtTVVpzaDhKSlBnVUwvY3VYMVBvQWNsY1BJ?=
 =?utf-8?B?SEVXeE5OUGEzdXVOSDBNVXI0Y2ZQUElKVFhUZFM0aWJJSW5vNnhCWHJzcWl3?=
 =?utf-8?B?VlVHdnB1ZVJ4eGRvQWg4R1ZTVkhhS215cTZTcTFYYy95QWJ1NElOZ24zVGd4?=
 =?utf-8?B?VTc0K1VxWm0rSzA0Y1JGVTZqSS9OaGRkWU16RUFGeWxUUVlhSUJMNjlRdFFU?=
 =?utf-8?B?RHU4UUNvaXZjNUJQOTN3SnNiN2ZJcFFZREROZkpMaUVjNFlCSjRNdG5qSmZF?=
 =?utf-8?B?R1hrREJrSUQxa1pKTHdFSVBIZEZKZ2V4amZjYk9jK0hWSWdkQzlick9IS3FX?=
 =?utf-8?B?MktEaG9VbWZLVnJGd00veDJIK1JNc2hhRTVJcFZzMUpwbktYMmgrUVhyWTZs?=
 =?utf-8?B?WTVaVmdUbFZxM2hxRFdZV0ppV284VkhqMkpVMW9hQ3dKKzdkOVhvSmFuejhN?=
 =?utf-8?B?aUFpcUtFT1VWbTIreDhsL0s5VzcwWGJsbC96eHV3SjRSdXFJMVNBZGFOWC9p?=
 =?utf-8?Q?uvY8=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d8991b83-a7d9-4829-4d64-08ddd3d195ab
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Aug 2025 03:38:46.8561
 (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: fkKofvJEmR5tkCaMVHoDwDHYO3Z3FzkIzCGm53KjHQPhnK6xhb1q08ubO5zsYM5Bt8+FsJ/UjVZPJgXSAzmfsg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR12MB8530

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IE1vbmRheSwgQXVndXN0IDQsIDIwMjUg
Mzo0MyBQTQ0KPiBUbzogUGVubnksIFpoZW5nIDxwZW5ueS56aGVuZ0BhbWQuY29tPg0KPiBDYzog
SHVhbmcsIFJheSA8UmF5Lkh1YW5nQGFtZC5jb20+OyBBbmRyZXcgQ29vcGVyDQo+IDxhbmRyZXcu
Y29vcGVyM0BjaXRyaXguY29tPjsgUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5j
b20+Ow0KPiBBbnRob255IFBFUkFSRCA8YW50aG9ueS5wZXJhcmRAdmF0ZXMudGVjaD47IE9yemVs
LCBNaWNoYWwNCj4gPE1pY2hhbC5PcnplbEBhbWQuY29tPjsgSnVsaWVuIEdyYWxsIDxqdWxpZW5A
eGVuLm9yZz47IFN0ZWZhbm8gU3RhYmVsbGluaQ0KPiA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz47
IHhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHYx
IDAxLzI1XSB4ZW4veDg2OiBtb3ZlIGRvbWN0bC5vIG91dCBvZg0KPiBQVl9TSElNX0VYQ0xVU0lW
RQ0KPg0KPiBPbiAwMy4wOC4yMDI1IDExOjQ3LCBQZW5ueSBaaGVuZyB3cm90ZToNCj4gPiBJbiBv
cmRlciB0byBmaXggQ0kgZXJyb3Igb2YgYSByYW5kY29uZmlnIHBpY2tpbmcgYm90aA0KPiA+IFBW
X1NISU1fRVhDTFVTSVZFPXkgYW5kIEhWTT15IHJlc3VsdHMgaW4gaHZtLmMgYmVpbmcgYnVpbHQs
IGJ1dA0KPiA+IGRvbWN0bC5jIG5vdCBiZWluZyBidWlsdCwgd2hpY2ggbGVhdmVzIGEgZmV3IGZ1
bmN0aW9ucywgbGlrZQ0KPiA+IGRvbWN0bF9sb2NrX2FjcXVpcmUvcmVsZWFzZSgpIHVuZGVmaW5l
ZCwgY2F1c2luZyBsaW5raW5nIHRvIGZhaWwuDQo+ID4gVG8gZml4IHRoYXQsIHdlIGludGVuZCB0
byBtb3ZlIGRvbWN0bC5vIG91dCBvZiB0aGUgUFZfU0hJTV9FWENMVVNJVkUNCj4gPiBNYWtlZmls
ZSAvaHlwZXJjYWxsLWRlZnMgc2VjdGlvbiwgd2l0aCB0aGlzIGFkanVzdG1lbnQsIHdlIGFsc28g
bmVlZA0KPiA+IHRvIHJlbGVhc2UgcmVkdW5kYW50IHZudW1hX2Rlc3Ryb3koKSBzdHViIGRlZmlu
aXRpb24gYW5kIHBhZ2luZ19kb21jdGwNCj4gPiBoeXBlcmNhbGwtZGVmcyBmcm9tIFBWX1NISU1f
RVhDTFVTSVZFIGd1YXJkaWFuLCB0byBub3QgYnJlYWsNCj4gPiBjb21waWxhdGlvbiBBYm92ZSBj
aGFuZ2Ugd2lsbCBsZWF2ZSBkZWFkIGNvZGUgaW4gdGhlIHNoaW0gYmluYXJ5DQo+ID4gdGVtcG9y
YXJpbHkgYW5kIHdpbGwgYmUgZml4ZWQgd2l0aCB0aGUgaW50cm9kdWN0aW9uIG9mIENPTkZJR19E
T01DVEwuDQo+ID4NCj4gPiBGaXhlczogNTY4ZjgwNmNiYTRjICgieGVuL3g4NjogcmVtb3ZlICJk
ZXBlbmRzIG9uDQo+ID4gIVBWX1NISU1fRVhDTFVTSVZFIiIpDQo+ID4gUmVwb3J0ZWQtYnk6IEph
biBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBQZW5ueSBa
aGVuZyA8UGVubnkuWmhlbmdAYW1kLmNvbT4NCj4gPiAtLS0NCj4gPiB2MSAtPiB2MjoNCj4gPiAt
IHJlbW92ZSBwYWdpbmdfZG9tY3RsIGh5cGVyY2FsbC1kZWZzDQo+DQo+IEFuZCB5b3UndmUgcnVu
IHRoaXMgdGhyb3VnaCBhIGZ1bGwgcm91bmQgb2YgdGVzdGluZyB0aGlzIHRpbWUsIGluIGlzb2xh
dGlvbj8NCj4NCg0KVGhpcyBjb21taXQgc2hhbGwgYmUgY29tbWl0dGVkIHRvZ2V0aGVyIHdpdGgg
Inhlbi94ODY6IGNvbXBsZW1lbnQgUEdfbG9nX2RpcnR5IHdyYXBwaW5nIiwgKEkndmUgYWRkZWQg
aW4gY2hhbmdlIGxvZywgaWRrIHdoeSBpdCBkaWRuJ3QgZ2V0IGRlbGl2ZXJlZCBpbiB0aGUgbWFp
bCBsaXN0IGluIHRoZSBsYXN0KS4NCkFzIFBHX2xvZ19kaXJ0eSBpcyBkaXNhYmxlZCBvbiBQViBt
b2RlLCBwYWdpbmdfZG9tY3RsKCkgd2lsbCBzdGlsbCBoYXZlICJ1bmRlZmluZWQgcmVmZXJlbmNl
IiBvbiBQViBtb2RlLCB3aGljaCBnZXRzIGZpeGVkIGluICJ4ZW4veDg2OiBjb21wbGVtZW50IFBH
X2xvZ19kaXJ0eSB3cmFwcGluZyIuICBJIHRob3VnaHQgaXQgYmV0dGVyIHNpdHMgdGhlcmUuDQpJ
ZiBpdCBkb2Vzbid0IGNvbXBseSB3aXRoIHRoZSBjb21taXQgcG9saWN5LCBJJ2xsIG1vdmUgYWNj
b3JkaW5nIGZpeCBoZXJlLg0KDQo+IEphbg0K


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 03:49:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 03:49:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069923.1433596 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uj8g5-0000hr-Jk; Tue, 05 Aug 2025 03:49:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069923.1433596; Tue, 05 Aug 2025 03:49: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 1uj8g5-0000hk-Fs; Tue, 05 Aug 2025 03:49:29 +0000
Received: by outflank-mailman (input) for mailman id 1069923;
 Tue, 05 Aug 2025 03:49:28 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=aSY8=2R=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1uj8g4-0000he-TP
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 03:49:28 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20623.outbound.protection.outlook.com
 [2a01:111:f403:2418::623])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2ede75c6-71af-11f0-a321-13f23c93f187;
 Tue, 05 Aug 2025 05:49:26 +0200 (CEST)
Received: from CH0PR03CA0217.namprd03.prod.outlook.com (2603:10b6:610:e7::12)
 by IA1PR12MB6018.namprd12.prod.outlook.com (2603:10b6:208:3d6::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.18; Tue, 5 Aug
 2025 03:49:22 +0000
Received: from CH1PEPF0000A346.namprd04.prod.outlook.com
 (2603:10b6:610:e7:cafe::7f) by CH0PR03CA0217.outlook.office365.com
 (2603:10b6:610:e7::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.21 via Frontend Transport; Tue,
 5 Aug 2025 03:49:22 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH1PEPF0000A346.mail.protection.outlook.com (10.167.244.11) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Tue, 5 Aug 2025 03:49:22 +0000
Received: from cjq-desktop.amd.com (10.180.168.240) 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 Aug
 2025 22:49:20 -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>
X-Inumbo-ID: 2ede75c6-71af-11f0-a321-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QZVcV8fnXDZyLZAx8V7ZnDbi3ygpEPWeQYwuhbpHvxX4uO4Pm/SXwphEq2vHLPbpRjIslvuFVh9ET7X6AlM2lGSdnSedcaq5p/0p1a4GlutyhBimmmufteSjBMDB3Id5i6XNWXFFQEWqZgSeDuizDeTYK+I7E3V4VINEm46r0EtpXmA2qxj8XCQ5sgXE4TlzflINAeSCnPT8iWB41B/VLxP4f9wLNnm+lzYp16+foTYZMMfk/fRdTshVpFifSAdhm31cvjLU09iB0Q0jcqf7wzQ3q5anF1ZC/2d/ewRVmWQ32K27xuj+wjS1LO1d3aqCAKP3A9jYU3XkfsNxovoHsw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=eIvdSMN2omhfq0yx+IJ8lJOiSVYj9P8CbuCC0fJlf7g=;
 b=lmTOIEFqlzLt+BByJz+IfR4u3KuBHUFChCB6tRXApwSsCI6ryvRDEXxJAmXUYnS23+7rVF1lM6znlZXZ7A92Xty0mYsa0jTebwJ7rRDndtbYc7mCXVEtheb0nRt2JK+tG4BRNy0T5+ur1MYAD3Z5A+8zWHLSLPLnExsx8YbfqYSN6C8se+QpwQpf0n3xri65XFGjMferZRkJRDd5FhQRaPA7Al3WoCuAbeh4AXBEZUpJo1SletHE5kZ4bZjWbQ/CQiiHoruGU1K7pMWUwZH//UmiIIMnpm3YOYSYWTlx33Ym1RH5WCy7pOCzcVsqFJvg9BK8vGB1PAfOLx85ZWNZjg==
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=eIvdSMN2omhfq0yx+IJ8lJOiSVYj9P8CbuCC0fJlf7g=;
 b=KDZJ7K5Zu0da6haFblnGO/6WS8Kp6nxl/KZlwB1LdiWaJoAcKFmPnapop1rtEh1zdyFBfKDXrGqsa+sFJJdUPCrdDYXDy7iqK1A/3VAJLis7ReAN25td0hHvoa+IaEFsNDikF5WE2ib6fk7wlo9Dbh9sdcpXm/lm2T7Wk2fC0nk=
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=SATLEXMB04.amd.com; pr=C
From: Jiqian Chen <Jiqian.Chen@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>
Subject: [PATCH v10 0/4] Support hiding capability when its initialization fails
Date: Tue, 5 Aug 2025 11:49:02 +0800
Message-ID: <20250805034906.1014212-1-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH1PEPF0000A346:EE_|IA1PR12MB6018:EE_
X-MS-Office365-Filtering-Correlation-Id: f920b90c-d8d0-4480-f61d-08ddd3d31059
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Rk10ZUlTK1dUZUNVYkxDYlBrT0swaWN0WG5ydWd1eVBPSXhxN0JUd2Y3clFB?=
 =?utf-8?B?UDVIc2EyUTdyaERIN1ZlRGNFd09WVEtIRUw1WURBekpINHpmdnBUUXJHclF3?=
 =?utf-8?B?ZVY4WDkzcVMzS0YvM0psaVdOTWZJMHZCU2JKQW1PYm4waElvZmx1em1OOXNk?=
 =?utf-8?B?UnJqY2hVT3ZVMUd2VWtibUl3aG56OWowK0RiY0FlMjdQVU1mZ2QyaGZUV1Vz?=
 =?utf-8?B?a0ZBYjZJWmowM1NJVTkzME9ieFVQUnl0TmMrQWlqeEpTcUF1SGs2QVdzVjdp?=
 =?utf-8?B?RitXNzFQNUljM1VtWTRoOW5CSjNGMkhvMHVEZjhWTHBqZzMxWmJlODdwTjVm?=
 =?utf-8?B?QVZIZXl0ZWMxMGlBK2lja0RCNkhHNnFzaHk5R003VmdwZlV6bVVEOEpOamN2?=
 =?utf-8?B?U3RaSHRjb0R1N0hoQVVIS3AwZVBWV3Z6ajA1K1B6UHhCMXFoRmR4UGt3emJF?=
 =?utf-8?B?Q2k2U2FLTGJZK0c2eVljTHNTRzJiRzhsV3pjTFJMSkFEUXNvTEVEZWw2S0Nt?=
 =?utf-8?B?Z1RVenFBVE5RcllJMHlsU1IvSjV4ajdzbGpINHVlVHFSeDM1QXprcEdMT3lm?=
 =?utf-8?B?a2FEbnUrV3JRTnFnVENhN2FyR21uYWtrQ0diNllaOWdBdUNVRXlyU1pZd3Ba?=
 =?utf-8?B?SjRBdC9yOGpmcEVJRUUyU3U1U0xJd2w1TGpRa1NoVGVDZXdyb3Ewc0NoMHR2?=
 =?utf-8?B?WmVQV0hSdDAvb3p3UTdwNjRvSEIrdFJud2tUMURFVzBycnVlR2VkREx0VWs0?=
 =?utf-8?B?OFhCMjcvMFNwRUk4eHVpVXk2QVNWUVJhcHhGa2M0TTh5MWNMZ0Q3SHNVRUJ1?=
 =?utf-8?B?cEtCM1RXa2ZPT3JxVCtZYVVFQ252czZhcDNZak0wNFFSbDFjU0hRZzYxZWRN?=
 =?utf-8?B?MHRFL0Y2ZXpwNXJmenBBWG51bkhoVE9NTWlWVTlnS0o1cVh6My9DUnVmQlY1?=
 =?utf-8?B?TWplQnJ3ZTMvckFtVmtvZ251dmloZXByOG1LdnhKM0c1b3EyUFdUSzVIQ0FP?=
 =?utf-8?B?NzFiSngwMEpOSnRRQ0NUUmtEZW5NbnVLaEtqVWpoN0U0aGZUNEplTzBRNE9x?=
 =?utf-8?B?TVBrc1B0Z3IwL2QxdmtNY2krcGhZMGhVMGVNWnlCeXRkY1k1ZFhEMEVhSXFp?=
 =?utf-8?B?aHptKzdDeEhvSG5YbkZ1azdLeUNmUUoxc1JjVWU2NTNkYmVtN2hkb0hCaE9s?=
 =?utf-8?B?c0JYaTlPRHhiQktqRGFpS1U4MVJUVm1XSUF5c29yN1BHSUVVNmpWVzdYR3BO?=
 =?utf-8?B?SnpWOUNIVmZQOTRjYUxkbjFsK2xtdkRLQW11V2RMRTU1RkgzUEE0clBCVTVZ?=
 =?utf-8?B?T01vVVlVNkx6Zyt2a3JNRDZqZnF1d3NRQlpHemUzeW9kR2w5cWpTQk5ycjJ4?=
 =?utf-8?B?U1B5aExZQjZpT1FvVHZ3MFl6Sk1XVVltcHFpd29RNGFKNCtHdGRySEgrZjRU?=
 =?utf-8?B?YUJnc2FZR3JtZmR3Z2VPUEJjWmlMNkdSU1FaR3o1dE9RdlpnWmhSajVZVGxn?=
 =?utf-8?B?Z29VKzh4WVFLTjZBUjNGaDk2UXBuSDQwUWE4VEV0ZlhscjRKTnl0SnZjUG4z?=
 =?utf-8?B?TFF5WTVDUzhJMVc0bE9CTTk4clVRK0s2RmgwVmJtaVhiWFYwR3dRUlUrSkM2?=
 =?utf-8?B?bXZoZVliNjVRQnQ4Z0xUQkI5L3hsMGgveERuK1lLcmc3MFJVR254a0RmZjNU?=
 =?utf-8?B?cUtvR1h6QkpOR05QY29qdUkvZ0xxblVKZkJFK3VhL25lejBkSmY2VXhIalIv?=
 =?utf-8?B?YzAzTExCbmQ5WEUxQkRSR1dSSmtGVVU0a2szemxpL2pvUnUwaTVTYk92UU1L?=
 =?utf-8?B?bWxzaHdaYWhtUVIyV3NLdDdNZGgyVDMwQWkyRVNvZzhmVXN6aW1aNjYrV1Nw?=
 =?utf-8?B?SExoaTBHRks4YnlOY0g0RXpGV1FZa1RBaEszK2xWN1lUdUhDUFBkOTZGMUdw?=
 =?utf-8?B?TEMybzRxbHViRTNocTlDNFZtcFhYTUFxendQKzlHcWFoQUZEaTNsK3BKUUIz?=
 =?utf-8?B?MWRxbUdaMVErUHJPSDFvUmxqQnNTRngvWkVhejNvcEduUXAxZS9oMHlFUW5u?=
 =?utf-8?Q?BmnJsX?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(1800799024)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Aug 2025 03:49:22.1825
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f920b90c-d8d0-4480-f61d-08ddd3d31059
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH1PEPF0000A346.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6018

Hi,

This series is to
emulate extended capability list for dom0;
hide legacy and extended capability when its initialization fails;
above two parts had been merged.
remove all related registers and other resources when initializing capability fails, including patch #1, #2, #3, #4.

Best regards,
Jiqian Chen.
---
cc: "Roger Pau MonnÃ©" <roger.pau@citrix.com>
cc: Anthony PERARD <anthony.perard@vates.tech>
---
Jiqian Chen (4):
  vpci: Refactor vpci_remove_register to remove matched registers
  vpci/rebar: Free Rebar resources when init_rebar() fails
  vpci/msi: Free MSI resources when init_msi() fails
  vpci/msix: Free MSIX resources when init_msix() fails

 tools/tests/vpci/main.c  |  8 ++---
 xen/drivers/vpci/msi.c   | 46 ++++++++++++++++++++++++++-
 xen/drivers/vpci/msix.c  | 44 +++++++++++++++++++++++++-
 xen/drivers/vpci/rebar.c | 41 +++++++++++++++++-------
 xen/drivers/vpci/vpci.c  | 68 ++++++++++++++++++++++++----------------
 xen/include/xen/vpci.h   |  4 +--
 6 files changed, 165 insertions(+), 46 deletions(-)

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 05 03:49:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 03:49:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069924.1433606 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uj8g6-0000vS-Q6; Tue, 05 Aug 2025 03:49:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069924.1433606; Tue, 05 Aug 2025 03:49: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 1uj8g6-0000vL-Ms; Tue, 05 Aug 2025 03:49:30 +0000
Received: by outflank-mailman (input) for mailman id 1069924;
 Tue, 05 Aug 2025 03:49:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=aSY8=2R=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1uj8g6-0000he-05
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 03:49:30 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on2062e.outbound.protection.outlook.com
 [2a01:111:f403:2009::62e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3034ca4e-71af-11f0-a321-13f23c93f187;
 Tue, 05 Aug 2025 05:49:29 +0200 (CEST)
Received: from CH5P223CA0014.NAMP223.PROD.OUTLOOK.COM (2603:10b6:610:1f3::16)
 by DM4PR12MB7648.namprd12.prod.outlook.com (2603:10b6:8:104::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.20; Tue, 5 Aug
 2025 03:49:24 +0000
Received: from CH1PEPF0000A346.namprd04.prod.outlook.com
 (2603:10b6:610:1f3:cafe::78) by CH5P223CA0014.outlook.office365.com
 (2603:10b6:610:1f3::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.21 via Frontend Transport; Tue,
 5 Aug 2025 03:49:23 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH1PEPF0000A346.mail.protection.outlook.com (10.167.244.11) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Tue, 5 Aug 2025 03:49:23 +0000
Received: from cjq-desktop.amd.com (10.180.168.240) 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 Aug
 2025 22:49: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>
X-Inumbo-ID: 3034ca4e-71af-11f0-a321-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=vL7BS3/UQHhRWtNVwHwNbi9cF4Cqfax3g0Zo+Z2O7+ocBfmKdcWGv85GUvQ50xow5tPOTK3/HWSb7msJvlLnQdyvmpA+0rUWIsk/QKPcqGjMFQBrM0bxfVR+TkANIb09KE6Jev5nPHxMmsoehSqppTJAUjXarCqspqWLG3yEfpZ7K+BFs5MAJkybAG9yR5nThOyYUlPEUdYgoLQ9SzhQgjtxyxexIwPdxM+rdmGOwerCvlJiemRq+dHk6KaPhL0kO5hbt7KuTWYMA6R+ZmjrEu3CCRStp8b6G9JLaSmxoKww+/v49oQfZBvaWz2lwjKCEoIkAd6brXurGyxzl21Y9A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4iK1TrtKUBCqb43ttFvfm60c1NdIPQH0xJz5TrNUWEM=;
 b=y86vqyN6EGnQ44vT7OovzrLJa5YL2Hc20AjcCYoITArNpxugFkNTl9zdNWp4yenqHPJNFAR077fUwHX4g4Lld5M41IGj6byg7ZTZPK/ar1ghe4YTedt7X3C36Ovtlu0OkGRpXuEHfe5WT0QzaYAAYV4Tbq4pMWcGjAy0hY5jtw3/Revg6pB80GxA1RK+yjy0ZH0saZKr2wqlYlFJYXwI5NpDy7tThTIRB1QY6Y/7L31rXBmF516aHpC34adIvf9yzsI8RD2XWTkOgDYGvwHEE2d/nlUiPjFLNfuAtD2SsACgNWXHuocgpAzH0dGMVRLhh7ztoFtYhO/m6yUiLhW2Tg==
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=4iK1TrtKUBCqb43ttFvfm60c1NdIPQH0xJz5TrNUWEM=;
 b=qDYgXwOuLJarnhQLjSw+qXaGFPHmsTT7Q3WlqcbvhxDbIV5+zwAr2klFzdVyAr23LLDyKw9CkceTvIej2XztXp5mPt+/BGN24bL2xGgRN9+z7b+DcBJtOTA7M8lEDeqVkgDy8wZ54tqYWNyESq4tag9/Sgjtyq1ij/RegHw7yjU=
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=SATLEXMB04.amd.com; pr=C
From: Jiqian Chen <Jiqian.Chen@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>
Subject: [PATCH v10 1/4] vpci: Refactor vpci_remove_register to remove matched registers
Date: Tue, 5 Aug 2025 11:49:03 +0800
Message-ID: <20250805034906.1014212-2-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250805034906.1014212-1-Jiqian.Chen@amd.com>
References: <20250805034906.1014212-1-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH1PEPF0000A346:EE_|DM4PR12MB7648:EE_
X-MS-Office365-Filtering-Correlation-Id: 0368f18e-81ba-4a50-a6dd-08ddd3d31159
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Y3p3TDNDSXpFUFZRNmlRSUM4OFpsTGdpRTlyY0FHT01xNzgrOXV1ZDBXLzdQ?=
 =?utf-8?B?TVRObThRZFRnWTc5SHVaVmI5UW1rYUpQc1IrNis5dHdxdzF5S0VRVS9VTGdy?=
 =?utf-8?B?SWhodnoxWXMzT0pXM2YwQ1JxeVhSblh2eVBxK212TVFoRDJFRFFOeWxaZGNY?=
 =?utf-8?B?cXJyajkveXU5dE1jUkJGVjFuT01BVlpTTnNiSk4yRUlFOTl2UHNjRk9Nd2tQ?=
 =?utf-8?B?RzJrWFhGMGNCL2lwUzFwcGN4Q05QaUlSQ2ZZMThMZVBPcm5mQmxPc3VwcENP?=
 =?utf-8?B?MFZBNDVpMFN3S0s3U2JPVHM2TWJUY1JoZU5HMnZuTkljZ0NEQ3ZUSHR2MjI1?=
 =?utf-8?B?aktRWXN5dDZ1ZTNuWjFzakkxM05wei9weVJpakJTWTVTOW9wK1hGUzY3a3Vp?=
 =?utf-8?B?ZWRQVWNpTGpYYVRrMjZmdS9MdDFnRVNPbGZ6YVFwZGFod3N1Q2hHeVNwdGls?=
 =?utf-8?B?cVA0WmRyMHJJMCtyeWZPZXRJWHNGZm42SCtyOHlxQTBkTkhOT0JCcFp4dnBE?=
 =?utf-8?B?bENzUUM2YmEyendNUEg0cnEzdnhjdU13OURaZHBObCsxd1BORDM0bEpWNXBM?=
 =?utf-8?B?NEVIS3Vna2JLeUJGNVZqR0E3UFFZK3czbUt4Y2t1dTJOU3RwTmpDUTNGN3Bw?=
 =?utf-8?B?Z1hhNkNpWkpaYVp2ZjZyWWtrWFhwTGV0b282MHFIb3Fqa2VlZnJiaUxNYlBa?=
 =?utf-8?B?dnNIVnNkU2FEdU1zS0FsdVRxU29aTHRyOWFmZmNnZ2lHSUZRb0VTRXR2TVlK?=
 =?utf-8?B?UlVXOEpzU1BqTkxaTEtiZ0ZuRzhab21zYnN3Vk4yb3JWU25MM0xybEN0dzJm?=
 =?utf-8?B?M1FjckR0VWJldm9YcDVYK0lZU3Y5WEE1LzZKT25DU2p3SXhrYm1ESUdJbVBy?=
 =?utf-8?B?WlE4bmRLOEdyRlpsNHFzTWxVMS9NN3JFOVE2TUtPdDVJQ2hOOWdtQm5Cc3Az?=
 =?utf-8?B?VWNESUp4Q0tyQUtiV0dlTE9iL1paa1BjV3MvUWFWUzNaa2xKWmN5R2ljdXJF?=
 =?utf-8?B?OGZ2UVYxQnNqeXk2L1NyRTRTNEp1ZStWZHcrZkRhMGdVYUJBcXNxRW5XSGVH?=
 =?utf-8?B?NDNKdFNmUi9yeE1QdDZFclp0eVBkK2NObURmOThqd1JiSjkvdkxwZ3BUQzJC?=
 =?utf-8?B?aCsra1lodlBOMG5OQlRLS1NZT1pBWUxJWFNWakl6cERONjgzRDh0OXBEZ2cx?=
 =?utf-8?B?L3ZkTWppN0RTUTFFSlZ3dU9jNm5USDgrcDJQNXFFMCtFdnorWTIzTzJ6YWxX?=
 =?utf-8?B?Tmw3dDcrS0VzeUdIZGE0STYyTjlTclQ1WXlXbFc4YUY0M1B2cFpmOHJVVS9t?=
 =?utf-8?B?d1daM3pSMmcxL0J0eFZjRXhuc250MTREZldYc0tvSUhHUDFJbmVCdjBHRTlR?=
 =?utf-8?B?eGM1TjdGY3ZyaHdWREw0ZEhLZWVyY0tBbkhCVzJtWEVvd3dRbThUT0w1UGZY?=
 =?utf-8?B?aEpONTB4YlJDaXBka05lNjJnbE5PMm00eWM3UDh3TGdUVE1TV1JmZmptSGpk?=
 =?utf-8?B?cmUwZmg5V1pOa1MwNVJ6RS9LVW1NNUJ4dnFnbGlWdm1waDhsaUNXOStUNjY5?=
 =?utf-8?B?YkpyUDdFaDNBT0RqT2pyQW8rVmsxaDFMdmdQZWZLeFFod1hEMDI1Ykgzdi9N?=
 =?utf-8?B?WE43THF4dFY3TUUzSE56VnI2R2NvZzFIaDFpUmlLbURCYTVoWjZibjU0K2J6?=
 =?utf-8?B?MzhkVFFCenFFZDF0aVZBTlFuSTlndytEVVdERnMxcURwM01ZUTRCdG9BY1NX?=
 =?utf-8?B?cC9ZeFBuU1lCdXpFSEt1c29OalJkeVBzVjZyNjQ2K256NG5EekdoZGYzVVcr?=
 =?utf-8?B?TXUwYmpUUXNUNkxydUpaUUx4T3NSREEvNTZTVlRvQnJQeXlGS3VhN2p4VG5N?=
 =?utf-8?B?b2J1bzVUTHVreUExMEQwQWx2N1pCWWpiMVBtWVNtMm5yR29iTnp3Wjd4RnZY?=
 =?utf-8?B?cGxBZDhScUc3Y2pkQnBxM1dhNzVxSnpEUFRYU3pVWnZxdzUvMHAveVdXdTJ3?=
 =?utf-8?B?c0Q0dkxMUm9ZUU5aOUFQTnpKREtGc0luNCttL1BMdHJmVmlnLzM3NC9IRFB2?=
 =?utf-8?Q?IzYCje?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Aug 2025 03:49:23.8583
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0368f18e-81ba-4a50-a6dd-08ddd3d31159
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH1PEPF0000A346.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB7648

vpci_remove_register() only supports removing a register in a time,
but the follow-on changes need to remove all registers within a range.
So, refactor it to support removing all registers in a given region.

And it is no issue to remove a non exist register, so remove the
__must_check prefix.

Note: two test cases don't math the new logic of
vpci_remove_registers(), then modify them.

Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
---
cc: "Roger Pau MonnÃ©" <roger.pau@citrix.com>
cc: Anthony PERARD <anthony.perard@vates.tech>
---
v9->v10 changes:
* Since logic change of vpci_remove_registers() affect the test cases of
  tools/tests/vpci/main.c, change them to match the new function logic.
* Remove Roger's Reviewed-by since patch changed.

v8->v9 changes:
v7->v8 changes:
v6->v7 changes:
No.

v5->v6 changes:
* Modify commit message.
* Add Roger's Reviewed-by.

v4->v5 changes:
No.

v3->v4 changes:
* Use list_for_each_entry_safe instead of list_for_each_entry.
* Return ERANGE if overlap.

v2->v3 changes:
* Add new check to return error if registers overlap but not inside range.

v1->v2 changes:
new patch

Best regards,
Jiqian Chen.
---
 tools/tests/vpci/main.c |  8 ++++----
 xen/drivers/vpci/vpci.c | 38 ++++++++++++++++++++------------------
 xen/include/xen/vpci.h  |  4 ++--
 3 files changed, 26 insertions(+), 24 deletions(-)

diff --git a/tools/tests/vpci/main.c b/tools/tests/vpci/main.c
index 33223db3eb77..2ef8d4e03f1d 100644
--- a/tools/tests/vpci/main.c
+++ b/tools/tests/vpci/main.c
@@ -132,10 +132,10 @@ static void vpci_write32_mask(const struct pci_dev *pdev, unsigned int reg,
                                   rsvdz_mask))
 
 #define VPCI_REMOVE_REG(off, size)                                          \
-    assert(!vpci_remove_register(test_pdev.vpci, off, size))
+    assert(!vpci_remove_registers(test_pdev.vpci, off, size))
 
 #define VPCI_REMOVE_INVALID_REG(off, size)                                  \
-    assert(vpci_remove_register(test_pdev.vpci, off, size))
+    assert(vpci_remove_registers(test_pdev.vpci, off, size))
 
 /* Read a 32b register using all possible sizes. */
 void multiread4_check(unsigned int reg, uint32_t val)
@@ -402,10 +402,10 @@ main(int argc, char **argv)
     VPCI_REMOVE_REG(28, 1);
     VPCI_REMOVE_REG(24, 4);
     VPCI_REMOVE_REG(12, 2);
+    VPCI_REMOVE_REG(16, 2);
+    VPCI_REMOVE_REG(30, 2);
 
     VPCI_REMOVE_INVALID_REG(20, 1);
-    VPCI_REMOVE_INVALID_REG(16, 2);
-    VPCI_REMOVE_INVALID_REG(30, 2);
 
     return 0;
 }
diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index fd02718b47ea..91d40be5bc4c 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -152,7 +152,7 @@ static int vpci_capability_hide(const struct pci_dev *pdev, unsigned int cap)
 
     prev_r->private = next_r->private;
     /*
-     * Not calling vpci_remove_register() here is to avoid redoing
+     * Not calling vpci_remove_registers() here is to avoid redoing
      * the register search.
      */
     list_del(&next_r->node);
@@ -160,7 +160,7 @@ static int vpci_capability_hide(const struct pci_dev *pdev, unsigned int cap)
     xfree(next_r);
 
     if ( !is_hardware_domain(pdev->domain) )
-        return vpci_remove_register(vpci, offset + PCI_CAP_LIST_ID, 1);
+        return vpci_remove_registers(vpci, offset + PCI_CAP_LIST_ID, 1);
 
     return 0;
 }
@@ -549,34 +549,36 @@ int vpci_add_register_mask(struct vpci *vpci, vpci_read_t *read_handler,
     return 0;
 }
 
-int vpci_remove_register(struct vpci *vpci, unsigned int offset,
-                         unsigned int size)
+int vpci_remove_registers(struct vpci *vpci, unsigned int start,
+                          unsigned int size)
 {
-    const struct vpci_register r = { .offset = offset, .size = size };
-    struct vpci_register *rm;
+    struct vpci_register *rm, *tmp;
+    unsigned int end = start + size;
 
     spin_lock(&vpci->lock);
-    list_for_each_entry ( rm, &vpci->handlers, node )
+    list_for_each_entry_safe ( rm, tmp, &vpci->handlers, node )
     {
-        int cmp = vpci_register_cmp(&r, rm);
-
-        /*
-         * NB: do not use a switch so that we can use break to
-         * get out of the list loop earlier if required.
-         */
-        if ( !cmp && rm->offset == offset && rm->size == size )
+        /* Remove rm if rm is inside the range. */
+        if ( rm->offset >= start && rm->offset + rm->size <= end )
         {
             list_del(&rm->node);
-            spin_unlock(&vpci->lock);
             xfree(rm);
-            return 0;
+            continue;
         }
-        if ( cmp <= 0 )
+
+        /* Return error if registers overlap but not inside. */
+        if ( rm->offset + rm->size > start && rm->offset < end )
+        {
+            spin_unlock(&vpci->lock);
+            return -ERANGE;
+        }
+
+        if ( start < rm->offset )
             break;
     }
     spin_unlock(&vpci->lock);
 
-    return -ENOENT;
+    return 0;
 }
 
 /* Wrappers for performing reads/writes to the underlying hardware. */
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index 17cfecb0aabf..514a0ce39133 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -70,8 +70,8 @@ static inline int __must_check vpci_add_register(struct vpci *vpci,
                                   size, data, 0, 0, 0, 0);
 }
 
-int __must_check vpci_remove_register(struct vpci *vpci, unsigned int offset,
-                                      unsigned int size);
+int vpci_remove_registers(struct vpci *vpci, unsigned int start,
+                          unsigned int size);
 
 /* Generic read/write handlers for the PCI config space. */
 uint32_t vpci_read(pci_sbdf_t sbdf, unsigned int reg, unsigned int size);
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 05 03:49:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 03:49:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069925.1433616 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uj8gE-0001Dt-5C; Tue, 05 Aug 2025 03:49:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069925.1433616; Tue, 05 Aug 2025 03:49: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 1uj8gE-0001Di-2V; Tue, 05 Aug 2025 03:49:38 +0000
Received: by outflank-mailman (input) for mailman id 1069925;
 Tue, 05 Aug 2025 03:49:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=aSY8=2R=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1uj8gC-0001CQ-MO
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 03:49:36 +0000
Received: from NAM04-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam04on2062e.outbound.protection.outlook.com
 [2a01:111:f403:2409::62e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 30e387b2-71af-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 05:49:31 +0200 (CEST)
Received: from CH2PR16CA0015.namprd16.prod.outlook.com (2603:10b6:610:50::25)
 by SJ2PR12MB9137.namprd12.prod.outlook.com (2603:10b6:a03:562::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.20; Tue, 5 Aug
 2025 03:49:25 +0000
Received: from CH1PEPF0000A34C.namprd04.prod.outlook.com
 (2603:10b6:610:50:cafe::28) by CH2PR16CA0015.outlook.office365.com
 (2603:10b6:610:50::25) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.21 via Frontend Transport; Tue,
 5 Aug 2025 03:49:25 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH1PEPF0000A34C.mail.protection.outlook.com (10.167.244.6) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Tue, 5 Aug 2025 03:49:25 +0000
Received: from cjq-desktop.amd.com (10.180.168.240) 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 Aug
 2025 22:49: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>
X-Inumbo-ID: 30e387b2-71af-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PXOlZ5J0llFvYREC05FtH8Y+eKo+hQoRckiDBdRwxzIDy77GVieJph2GuFEKWO+6wYE6yr3PXRhM7LRhz/1Dm3YDqQnCdQM85mv5PtLZXT7mLP6EYO2PAOCMFMLmH1PbWFuSmfMCiV7P7TJbSsXAFA2HCo62vRPzTHDLHSUJjrvidxxSnAWJJFKSqiIPFwI0guYNkXH+sIisjkOMifWQ+YS/qJPosZv4WL37u4NTG+Be/mDpLyyOgfNIz1ShgRYOvubXzDWAP8lhwnx1+He8XVwpzX9KycYIkam7MpzYed722RC33l+redIaJnaXvCoXb2wX2S6zVrGyf/nQ4IL1Ew==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=hN9Hc3cFT88sicAIZfgw4XY51UQFRRCnT2wzAFpfTTc=;
 b=EZJV7sCrxA21/L014vPbRLkRWQ+zU2HaQLhtrhAaBMEHkjeIMKmAoMYX1oaTHiMTCYwsY73huptYWRMs/W0UtKVAAAm2S0dJ3VB6OgsJmG9MZKSkBFV3QgZvYu83vMBOD+A6oj2mMxiWqo9kapOYV/dXgm4yBCz9CM2GrQas1RU8Xt0QKqCcreKre4dqk6b1dSlDYJEer3bHmnJTFWnWFEGlXLEhdHhtaHIZyCgLrW2FxBFK5LW/XRGOR49Ow4B050nUiQM487xw3Uq8kbi+P9VXIVRGcHRoBFFx7ssYXDt2l9vRFmbS3/oafT6yjHT6dm2cBgWnwIyMdoSRIKHYzg==
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=hN9Hc3cFT88sicAIZfgw4XY51UQFRRCnT2wzAFpfTTc=;
 b=jeRt0MuWFLw6icri3mtyrW4mL7785LrVZPE/4+X1GCf879asFuIoFt0Qn2/cXRfzVw+cFARgm+zg75bGdVOZm+7jDaIue2HX95XcIkLTlSwB/bu3650DrrTEKju+3iJ26CYTYFAmRBhMsP6D7Yboyy8jF6c1CfsZv5RjjvPGLbo=
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=SATLEXMB04.amd.com; pr=C
From: Jiqian Chen <Jiqian.Chen@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v10 2/4] vpci/rebar: Free Rebar resources when init_rebar() fails
Date: Tue, 5 Aug 2025 11:49:04 +0800
Message-ID: <20250805034906.1014212-3-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250805034906.1014212-1-Jiqian.Chen@amd.com>
References: <20250805034906.1014212-1-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH1PEPF0000A34C:EE_|SJ2PR12MB9137:EE_
X-MS-Office365-Filtering-Correlation-Id: cf8f8bd5-ea21-46b8-729f-08ddd3d31249
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?eXU2aXlSQitCWDAwd08vL2dBZkFVTU1SdmFCYmYvajJKZkpSemkvSTBGL0JP?=
 =?utf-8?B?SXNMR1JhUUFqVm9wSEdoYlJKVG44Mm52WnBHd0RIQjcxWVFOMlNCNnNndWFS?=
 =?utf-8?B?U05pZVBaQzRRdEZhTllsR2luZEhVTTRqVDN3Ri9DMlZiVHFUL2NLYm5uOXhr?=
 =?utf-8?B?SDVvUTJBWUlSbDM1UUU3UTV1R2QvOC8vMHdaaG9PM0hmMkFxWnpia2VWWUxm?=
 =?utf-8?B?aldONFdBQmdSTFBFMVo0QTl6R014NFdpQ0pUQWpuNzRWb0dLR2JLa21VUzhj?=
 =?utf-8?B?T0Q0Wlo4ZWFUaEFucVJYc284OGhmMkkyaGdMQkpMaW1kZVpjcXY4aENYRTVP?=
 =?utf-8?B?bTRuanVhZ1ptaWY3OXpSRDZvTWh2WHV4UExZRS9GVmV0WTVCU2h3Y1lLYWZa?=
 =?utf-8?B?Y0lFL3lBS1dHazJ2MklNNm53MmsxSWM5RmJtVElZejZOYWFjNnZ4bGlGeVh2?=
 =?utf-8?B?VFRrRzhXMFovM1k4K3NEeCs1Q3VLa2ZuZnFVd0w4eEdCbnZUMW5KNWdTVk9l?=
 =?utf-8?B?YndsRjRxV0pnRWphMlo3ODQ1dTRnU0toR213WWNtbU5SVlBJQ3UzUDVqOW9m?=
 =?utf-8?B?UGN0eCs4ZDNRVFRiME9MVitFbkZsOE8ySUdxNnNudTdzQ3FPME5kUzZTbnJB?=
 =?utf-8?B?Um1TQytkMHVNK1k2SU1wQ1J4cDViTUJ0TkZkNlkrU0tJaGlmNUpLdlgvaTFJ?=
 =?utf-8?B?Y080MXg3K0Y3U3lrVnlyZVlqeis4YXZkT0E4S3p5aU5CRVBKdFY1Vmd6THBK?=
 =?utf-8?B?NU9XVnhvMHlUNHphQTIvM2hWWG4wZE5tV2poNUE1cE52MlJvN2Y0ZnBYcGE3?=
 =?utf-8?B?ajUvN0tYN1NFMGNGUDhMd3BIZVMwdXluUWZSWFFwRG5lR1lQemUwSUk2VlQv?=
 =?utf-8?B?VzdNK2JUYTFQbmppQlV1elN6TCtDSWRMbGhYR0JVdmt0U3RHTWFZVFhRYVBP?=
 =?utf-8?B?ejBFUXJGSzFyTk5YU0c2TjB2a3lFdkk3V1Vwc0lrOU9TZ3pRQzlCN2Q1QWNa?=
 =?utf-8?B?Mmc5MlB5MTRFZTZab3VpakIxVHdFVlhLcEVZNWUrYXp6dk40YVRZWXJ5VXlS?=
 =?utf-8?B?bHBMQi9ydHNJSjVXQjlLTXAyQ1pyZlU5Yi9mSDJtZlY3ME8yOGVkSENGcXo2?=
 =?utf-8?B?dENFbmRoZ2pKY0IrcnJYSnR5bTUvQitHNWpYbVNLUjVrUGk2SDdGOHdvS0da?=
 =?utf-8?B?T1FsNldENVRxblk4N2FXZWxjYjkzYUlUVU1EVDVmOU03T2w3cDFTaGJOMkE5?=
 =?utf-8?B?VUVkcDhFWFh1NDZiL0ZJWkZyVEg2TVF0TVBuTEFLWlJ4OGNmcThnaWF1ZjQx?=
 =?utf-8?B?djJGSFY3eFJIRUovNFdlMElRcGpTYW80MG5FaHYvQmY0YUhmTDQvNTAvMy9Y?=
 =?utf-8?B?MnlIczVNOG1TalVNSERseDRDcUlRbndNR3d6WlJyNnpTRHZQUTRyN3FubFh4?=
 =?utf-8?B?anlTOEllZ3dIblhmc01KSGxGNHpHTHYxWG5PMUI1dUVEOUNjeU8xcGY3WjND?=
 =?utf-8?B?VC9hQ3lXLy9RMTUwblk1ZElBTXAxN21LMnF0bGV3OTRlN3NNaDRxVzExbll1?=
 =?utf-8?B?N2FFYklmRGtCUVlhS09uMEdkTlhxME9VdUdlbnFaTWM2RCt1MW9vRC85MmdW?=
 =?utf-8?B?NFlnMVBLTGcxR2MzNHBWWDNwV3lJc29XWkZLNjdUWVkzT2crN0tIWVdWYXUy?=
 =?utf-8?B?cmE5RlM5bG1TL1ZFWXJwZVFQZ2FpTmpvZVhlT2pVSFVKbER0aXoyTW5CRG45?=
 =?utf-8?B?V2NYL0ZHYm1qQ2l4Vm1HaW12OEs1aHFzK0g3VXRNcTdweDRUNTVqdE9lbXkv?=
 =?utf-8?B?TmJYNi9RaHF4UDNFOXZNdGVXUGtkNk5UMG44UUVSeDZFYjlvUlpLbXY0enBl?=
 =?utf-8?B?WmxJeUtGTkJIVHFKU2pxWTVDM1JTa3BwWnlmRTAyQm4yNVc5NlFWTW5raWVq?=
 =?utf-8?B?RTlMTUJlNS9pWGM0UmRja2ZIbE1Sd0R1V2l1bmRZR3JqM3dPdG91VmFZWGxt?=
 =?utf-8?B?YThEN1RIN2I4a0xnYW5Yb1ZCS0t3MlBiRkNJaHpTSmxWUit1Y3h2VDh5Ty9F?=
 =?utf-8?Q?KOYLew?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Aug 2025 03:49:25.4279
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: cf8f8bd5-ea21-46b8-729f-08ddd3d31249
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH1PEPF0000A34C.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB9137

When init_rebar() fails, current logic return fail and free Rebar-related
resources in vpci_deassign_device(). But the previous new changes will
hide Rebar capability and return success, it can't reach
vpci_deassign_device() to remove resources if hiding success, so those
resources must be removed in cleanup function of Rebar.

To do that, implement cleanup function for Rebar.

Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
Reviewed-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
cc: "Roger Pau MonnÃ©" <roger.pau@citrix.com>
---
v9->v10 changes:
v8->v9 changes:
No.

v7->v8 changes:
* Add Roger's Reviewed-by.

v6->v7 changes:
* Change the pointer parameter of cleanup_rebar() to be const.
* Print error when vpci_remove_registers() fail in cleanup_rebar().

v5->v6 changes:
No.

v4->v5 changes:
* Change definition "static void cleanup_rebar" to "static int cf_check cleanup_rebar" since cleanup hook is changed to be int.

v3->v4 changes:
* Change function name from fini_rebar() to cleanup_rebar().
* Change the error number to be E2BIG and ENXIO in init_rebar().

v2->v3 changes:
* Use fini_rebar() to remove all register instead of in the failure path of init_rebar();

v1->v2 changes:
* Called vpci_remove_registers() to remove all possible registered registers instead of using a array to record all registered register.

Best regards,
Jiqian Chen.
---
 xen/drivers/vpci/rebar.c | 41 +++++++++++++++++++++++++++++-----------
 1 file changed, 30 insertions(+), 11 deletions(-)

diff --git a/xen/drivers/vpci/rebar.c b/xen/drivers/vpci/rebar.c
index 3c18792d9bcd..39ab9c2eb7d9 100644
--- a/xen/drivers/vpci/rebar.c
+++ b/xen/drivers/vpci/rebar.c
@@ -49,6 +49,32 @@ static void cf_check rebar_ctrl_write(const struct pci_dev *pdev,
     bar->guest_addr = bar->addr;
 }
 
+static int cf_check cleanup_rebar(const struct pci_dev *pdev)
+{
+    int rc;
+    uint32_t ctrl;
+    unsigned int nbars;
+    unsigned int rebar_offset = pci_find_ext_capability(pdev->sbdf,
+                                                        PCI_EXT_CAP_ID_REBAR);
+
+    if ( !rebar_offset || !is_hardware_domain(pdev->domain) )
+    {
+        ASSERT_UNREACHABLE();
+        return 0;
+    }
+
+    ctrl = pci_conf_read32(pdev->sbdf, rebar_offset + PCI_REBAR_CTRL(0));
+    nbars = MASK_EXTR(ctrl, PCI_REBAR_CTRL_NBAR_MASK);
+
+    rc = vpci_remove_registers(pdev->vpci, rebar_offset + PCI_REBAR_CAP(0),
+                               PCI_REBAR_CTRL(nbars - 1));
+    if ( rc )
+        printk(XENLOG_ERR "%pd %pp: fail to remove Rebar handlers rc=%d\n",
+               pdev->domain, &pdev->sbdf, rc);
+
+    return rc;
+}
+
 static int cf_check init_rebar(struct pci_dev *pdev)
 {
     uint32_t ctrl;
@@ -80,7 +106,7 @@ static int cf_check init_rebar(struct pci_dev *pdev)
         {
             printk(XENLOG_ERR "%pd %pp: too big BAR number %u in REBAR_CTRL\n",
                    pdev->domain, &pdev->sbdf, index);
-            continue;
+            return -E2BIG;
         }
 
         bar = &pdev->vpci->header.bars[index];
@@ -88,7 +114,7 @@ static int cf_check init_rebar(struct pci_dev *pdev)
         {
             printk(XENLOG_ERR "%pd %pp: BAR%u is not in memory space\n",
                    pdev->domain, &pdev->sbdf, index);
-            continue;
+            return -ENXIO;
         }
 
         rc = vpci_add_register(pdev->vpci, vpci_hw_read32, rebar_ctrl_write,
@@ -97,14 +123,7 @@ static int cf_check init_rebar(struct pci_dev *pdev)
         {
             printk(XENLOG_ERR "%pd %pp: BAR%u fail to add reg of REBAR_CTRL rc=%d\n",
                    pdev->domain, &pdev->sbdf, index, rc);
-            /*
-             * Ideally we would hide the ReBar capability on error, but code
-             * for doing so still needs to be written. Use continue instead
-             * to keep any already setup register hooks, as returning an
-             * error will cause the hardware domain to get unmediated access
-             * to all device registers.
-             */
-            continue;
+            return rc;
         }
 
         bar->resizable_sizes =
@@ -118,7 +137,7 @@ static int cf_check init_rebar(struct pci_dev *pdev)
 
     return 0;
 }
-REGISTER_VPCI_EXTCAP(REBAR, init_rebar, NULL);
+REGISTER_VPCI_EXTCAP(REBAR, init_rebar, cleanup_rebar);
 
 /*
  * Local variables:
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 05 03:49:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 03:49:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069926.1433626 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uj8gF-0001Sz-Dl; Tue, 05 Aug 2025 03:49:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069926.1433626; Tue, 05 Aug 2025 03:49: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 1uj8gF-0001Sq-9I; Tue, 05 Aug 2025 03:49:39 +0000
Received: by outflank-mailman (input) for mailman id 1069926;
 Tue, 05 Aug 2025 03:49:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=aSY8=2R=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1uj8gD-0001CQ-Bo
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 03:49:37 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on2061b.outbound.protection.outlook.com
 [2a01:111:f403:2009::61b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 32df1ce2-71af-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 05:49:33 +0200 (CEST)
Received: from CH0PR04CA0045.namprd04.prod.outlook.com (2603:10b6:610:77::20)
 by DS0PR12MB8344.namprd12.prod.outlook.com (2603:10b6:8:fe::7) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8989.20; Tue, 5 Aug 2025 03:49:27 +0000
Received: from CH1PEPF0000A349.namprd04.prod.outlook.com
 (2603:10b6:610:77:cafe::87) by CH0PR04CA0045.outlook.office365.com
 (2603:10b6:610:77::20) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.21 via Frontend Transport; Tue,
 5 Aug 2025 03:49:27 +0000
Received: from SATLEXMB04.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_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Tue, 5 Aug 2025 03:49:27 +0000
Received: from cjq-desktop.amd.com (10.180.168.240) 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 Aug
 2025 22:49:25 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 32df1ce2-71af-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Jn9P8DC/Su/wPrQWoExA8mg3dE9GImfXIDRp8kvXaM/txLfy2C05pYCPNBV0nBHmbnraEkVWrQk6CeAjEPyO/vDbzd3ZVaq6XOhzMb3u5jr/w4kYya+0O8KgRWxT/T743RvHt9g8+NoPZJsTgHnT+FbjLQ3xYTsLjDzChwHyrqFluGfx/nXiWP243rkLhxLpfl+BUZQhEAO8NwecuawjjdVg19VUuBOQBw5pbPnLr2STP0jAzZXcwYXNQgOdVCiXs2qaesJEZSzd0JPKtNnfeGeIW/8/UWrWU5n9fXq9lgXC0iYKW73xdXKkH4RhMJL0Se4eM9okYZ2xxEPDM+p8qA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=OEirtSDxahjpcMVfzlTj78FWKW2/EKvB4YH6q/kyPkk=;
 b=hn4xc0cPd4HKsYlYGOd1X69Lul21HzNdAZ2IJHAO0kyTBiVmmjgMpg5UO760nDnSRxNfHaaXCAYXPICDP1kO8RluS2aPxrCSMsQQnLZ67AP7lfxT+XOaNbaABHc5qxkKLoh69/rxc9zU4hIQCzJvxetZJ5Z7FP3E4H3jkLnE3orO+abZyUwWoGnme4RF2jiIBr+yE53JuarTya2gD79ayQlxSCTUYGd/+rD3g1iyfeXOYGRi7Fhfi/SyjbV3Is8b1MV1+VQnDoKSpFuqdB4xTs4G8PxJnT8YHbnKbv/dDCsfXPEHOjs2CW7lFXTMYs11EyXnFWylB9JglnMigcBUZw==
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=OEirtSDxahjpcMVfzlTj78FWKW2/EKvB4YH6q/kyPkk=;
 b=mRitk0BEau4Qm8BE5ALP2o2vdOOI4zG8YfZi4iWp92Oyn0QpjDfXZe6NOQXbuQqyIfENyLYhUVNLh6q2iSkdNCOG647m7zuuhu7cTue0P/xNpH5h2YfrEO6zDSH901vB67j6e1m6DV0fk3io6NGrSAIA36qbzKRexB38yuzQ30U=
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=SATLEXMB04.amd.com; pr=C
From: Jiqian Chen <Jiqian.Chen@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v10 3/4] vpci/msi: Free MSI resources when init_msi() fails
Date: Tue, 5 Aug 2025 11:49:05 +0800
Message-ID: <20250805034906.1014212-4-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250805034906.1014212-1-Jiqian.Chen@amd.com>
References: <20250805034906.1014212-1-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH1PEPF0000A349:EE_|DS0PR12MB8344:EE_
X-MS-Office365-Filtering-Correlation-Id: fa4f2d3b-4709-4791-56f5-08ddd3d3138c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?cWJud2xVNzJOdVV5OEpXcW1WVXExN2VyUnR3U1I3Rm5wblNhVmRjbTZrc3lK?=
 =?utf-8?B?dXYwckhEYWNjZ05OTzMrMFVLSVkySjQ0dmlrSHhSNEhkOEdEZkhsTUFSN0Mx?=
 =?utf-8?B?Ky9zdk9qUkEyTURMcWRxUjNKSFhxSjVFUlNaN2dxSThzbkVkekhGMC84dTMy?=
 =?utf-8?B?Y0pnVWd6UTRRWFljcHA5bWJaQVBLS0RlNUZFMGc4YU5xZ1FOOWtqL0FVbnVJ?=
 =?utf-8?B?dWVTYmFpemdjU1l2L01MRndlT0Q5TmZFMkxyYWt5bjk0TG5TYkpma3RrcjlS?=
 =?utf-8?B?NXpHVGsvWUt2a25mVUNXdmpaYi9yYmJNQU5NTXZSK0JYT20zQkppa1RNUEJF?=
 =?utf-8?B?b1hlZlRCem4zOWkvUGlvVnc1WWZrUWRSMkM2NERWQ0l4RWlDVmlqS3F1bnFX?=
 =?utf-8?B?VmMzYzh6YjBFeHlsUmh5c3Nha1RsRE9nSnVYbTh3a1BIVVhaSy82ZEJLdmVi?=
 =?utf-8?B?VjB4bWZYUmREa0tVY2QrZmNiRDZ0VGtRakdtTS9LVGx0UjRpRlFad0JxTm5z?=
 =?utf-8?B?R2RCK2dRMmd6WTM4TFNKMjJQejhwbVRYcGVPSzY0dUl2eHVBQUV2MVBUbWZk?=
 =?utf-8?B?NWlhei9Pek5BZ2JQei90ekRHS29USGhpa1FRK3Vpa1JzK3IwWXpzQ0V4SVNB?=
 =?utf-8?B?SDdLZkZZUnlmVVo0a01ta3crSnN5alA4b2pEeEhsa2xIU2ZaaHdaMWRTdDBH?=
 =?utf-8?B?WGhqUm52UXFXb2R4bkVrYXhkNGZ6QlBRWGN4RURsd1Z5WkpUN3pQMDNsaVQv?=
 =?utf-8?B?T3UzMWkxam5ld3lobUVucHhjNEhiNEd6cWN6NWN4c0owbFhLQlhTMG1vUlM1?=
 =?utf-8?B?VnJOWkRkSUlJdDVOeHdsakRNS0FIWnRva1ZVTkpKQVdYbHJGRVFhNWV1VzJH?=
 =?utf-8?B?eEtQdkVGWEtzWjJySGNrRFd3OGxLbU1FcjJjU254UlMrTithNSs4bUczcERE?=
 =?utf-8?B?Y3M5d0JlbzVKZ3M3Mkw3cC9uc0JIaTYxWnY0b0VYU3ZjTmFJVDZqVVlYS2sv?=
 =?utf-8?B?am8yKzdxbVk2bjRzZTV4S3kvWHJUS3BQbTI5VXhJSXR0WnlYdFFDWStIeGpl?=
 =?utf-8?B?SmNibEhBRU9LTGFwdmZmb0VROTBnNkc2SnRjeGtLS3oycWpkV3JydFc4U0xl?=
 =?utf-8?B?Q0d4OUVMa083VDl2UThtRm9RZW1nVG5Pa1JJTDV3blYzMXdsWWlVTk5iM3Ir?=
 =?utf-8?B?a1FiTHRMc3VEekorOTZqQldCRjMxam1QendINnkraVJCR0s5eU1sMUJOcS9I?=
 =?utf-8?B?ZkhmL1lwWWxLNW9BWUpSNDRPa2g3N1lHWStqY0o2am4rZjJ1azRJbWUveHlN?=
 =?utf-8?B?UDlMa1duMHorNVJ1QlFVVkVacGhqcDZuU1UvRjNFTVIwSllqNmt0cW9TWE9B?=
 =?utf-8?B?QkNMYlZad21mUGlFRTRqOHR2bDlFN0RuSnlPV3lKdmFIN3pjQ21nQTVHN295?=
 =?utf-8?B?RHlJNzVJL1pPcHMvenFFTVd1TXYzMUw0YlV5NVFFei9lTC9RTHp3VUtxcm5T?=
 =?utf-8?B?c25LVEVkeHhHVWhtSEEwTW5LWW1NWTRHS1IrM3pwSHplWmZYeEttYTE4dFgr?=
 =?utf-8?B?MlphMW9HeUZ5TUtzOVg3WTV4OC8vdnU3a3FveVkxMjFpdzZ2a251NTdub0Fh?=
 =?utf-8?B?b2hJMGNxOFMwYVEzRm0zWG9uTWpGMzhudW56VXF5d3lUVmN6enhUVkcwMHNw?=
 =?utf-8?B?eEg2emdjQ2Jka05vdytjMS82dmdSYXZDVmZ2a2tpSzR6bnlnOWt4Szd5Z1J2?=
 =?utf-8?B?ZkpZVWhpckFFREdON3NkNzBsTm1pZm4rT08wSUVaTzg0Yjh5MzBJSnptUk83?=
 =?utf-8?B?VmdYKzhxajJpR0FXaWRwcTJWbVdyaWQvM3NDK1p4OTB2U2t0NjJDa1diWGsy?=
 =?utf-8?B?WWFSenBUQURYY21hTzY2bU50MVk2VEhqTkoxaEFOVzlMTHJCdjJTMGJDdk50?=
 =?utf-8?B?UHRCRVlPWEV0cDBMSjhWMjB5UXd1aGFmbHhjRCtWNmViUEkwRnlhc1AzT2ZE?=
 =?utf-8?B?VmNaTSs1bVBsUWFaeC9TRG5TeEttVGZ6WWlRWFVkdmZMMUlaTFhoaGtJaUow?=
 =?utf-8?Q?fe+zrT?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Aug 2025 03:49:27.5447
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: fa4f2d3b-4709-4791-56f5-08ddd3d3138c
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=[SATLEXMB04.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: DS0PR12MB8344

When init_msi() fails, current logic return fail and free MSI-related
resources in vpci_deassign_device(). But the previous new changes will
hide MSI capability and return success, it can't reach
vpci_deassign_device() to remove resources if hiding success, so those
resources must be removed in cleanup function of MSI.

To do that, implement cleanup function for MSI.

Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
Reviewed-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
cc: "Roger Pau MonnÃ©" <roger.pau@citrix.com>
---
v9->v10 changes:
No.

v8->v9 changes:
* Add Roger's Reviewed-by.

v7->v8 changes:
* Add a comment to describe why "-2" in cleanup_msi().
* Given the code in vpci_remove_registers() an error in the removal of
  registers would likely imply memory corruption, at which point it's
  best to fully disable the device. So, Rollback the last two modifications of v7.

v6->v7 changes:
* Change the pointer parameter of cleanup_msi() to be const.
* When vpci_remove_registers() in cleanup_msi() fails, not to return
  directly, instead try to free msi and re-add ctrl handler.
* Pass pdev->vpci into vpci_add_register() instead of pdev->vpci->msi in
  init_msi() since we need that every handler realize that msi is NULL
  when msi is free but handlers are still in there.

v5->v6 changes:
No.

v4->v5 changes:
* Change definition "static void cleanup_msi" to "static int cf_check cleanup_msi"
  since cleanup hook is changed to be int.
* Add a read-only register for MSI Control Register in the end of cleanup_msi.

v3->v4 changes:
* Change function name from fini_msi() to cleanup_msi().
* Remove unnecessary comment.
* Change to use XFREE to free vpci->msi.

v2->v3 changes:
* Remove all fail path, and use fini_msi() hook instead.
* Change the method to calculating the size of msi registers.

v1->v2 changes:
* Added a new function fini_msi to free all MSI resources instead of using an array
  to record registered registers.

Best regards,
Jiqian Chen.
---
 xen/drivers/vpci/msi.c | 46 +++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 45 insertions(+), 1 deletion(-)

diff --git a/xen/drivers/vpci/msi.c b/xen/drivers/vpci/msi.c
index c3eba4e14870..ad5138c4cb5e 100644
--- a/xen/drivers/vpci/msi.c
+++ b/xen/drivers/vpci/msi.c
@@ -193,6 +193,50 @@ static void cf_check mask_write(
     msi->mask = val;
 }
 
+static int cf_check cleanup_msi(const struct pci_dev *pdev)
+{
+    int rc;
+    unsigned int end;
+    struct vpci *vpci = pdev->vpci;
+    const unsigned int msi_pos = pdev->msi_pos;
+    const unsigned int ctrl = msi_control_reg(msi_pos);
+
+    if ( !msi_pos || !vpci->msi )
+        return 0;
+
+    if ( vpci->msi->masking )
+        end = msi_pending_bits_reg(msi_pos, vpci->msi->address64);
+    else
+        /*
+         * "-2" here is to cut the reserved 2 bytes of Message Data when
+         * there is no masking support.
+         */
+        end = msi_mask_bits_reg(msi_pos, vpci->msi->address64) - 2;
+
+    rc = vpci_remove_registers(vpci, ctrl, end - ctrl);
+    if ( rc )
+    {
+        printk(XENLOG_ERR "%pd %pp: fail to remove MSI handlers rc=%d\n",
+               pdev->domain, &pdev->sbdf, rc);
+        ASSERT_UNREACHABLE();
+        return rc;
+    }
+
+    XFREE(vpci->msi);
+
+    /*
+     * The driver may not traverse the capability list and think device
+     * supports MSI by default. So here let the control register of MSI
+     * be Read-Only is to ensure MSI disabled.
+     */
+    rc = vpci_add_register(vpci, vpci_hw_read16, NULL, ctrl, 2, NULL);
+    if ( rc )
+        printk(XENLOG_ERR "%pd %pp: fail to add MSI ctrl handler rc=%d\n",
+               pdev->domain, &pdev->sbdf, rc);
+
+    return rc;
+}
+
 static int cf_check init_msi(struct pci_dev *pdev)
 {
     unsigned int pos = pdev->msi_pos;
@@ -270,7 +314,7 @@ static int cf_check init_msi(struct pci_dev *pdev)
 
     return 0;
 }
-REGISTER_VPCI_CAP(MSI, init_msi, NULL);
+REGISTER_VPCI_CAP(MSI, init_msi, cleanup_msi);
 
 void vpci_dump_msi(void)
 {
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 05 03:49:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 03:49:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069927.1433636 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uj8gG-0001iZ-LQ; Tue, 05 Aug 2025 03:49:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069927.1433636; Tue, 05 Aug 2025 03: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 1uj8gG-0001iO-Ho; Tue, 05 Aug 2025 03:49:40 +0000
Received: by outflank-mailman (input) for mailman id 1069927;
 Tue, 05 Aug 2025 03:49:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=aSY8=2R=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1uj8gE-0001CQ-Bq
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 03:49:38 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on2060a.outbound.protection.outlook.com
 [2a01:111:f403:2414::60a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 33d5b923-71af-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 05:49:36 +0200 (CEST)
Received: from CH0PR04CA0058.namprd04.prod.outlook.com (2603:10b6:610:77::33)
 by IA1PR12MB6652.namprd12.prod.outlook.com (2603:10b6:208:38a::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.20; Tue, 5 Aug
 2025 03:49:29 +0000
Received: from CH1PEPF0000A349.namprd04.prod.outlook.com
 (2603:10b6:610:77:cafe::d5) by CH0PR04CA0058.outlook.office365.com
 (2603:10b6:610:77::33) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.21 via Frontend Transport; Tue,
 5 Aug 2025 03:49:29 +0000
Received: from SATLEXMB04.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_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Tue, 5 Aug 2025 03:49:29 +0000
Received: from cjq-desktop.amd.com (10.180.168.240) 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 Aug
 2025 22:49:26 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 33d5b923-71af-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=V6ACMIboQsBgAHQvjEcLiR4h1EyOmuRdMryC1wDKc+Kuu6UhQwXU2U5m03CM3MrtiduOSawAnD7SR3dzyddFTSAqcFET4Vab6/MOLv/mrbcgGgYFH6Yn4U5Q15Y7aEVDKToG+l4A1amRFQDJoJ2auYEF1j0mKY4F2oGc0yUxAydqYOujhRHwO2gM6qkT1icXLrwGU+ghxe6QgY7iEhe8RjX6XW4SIyRM4quBMKgacx86uJZNv2TitpQDfnzumgmt/IFP9p7rc6P6ez6whDR3XTaHxo0Y81J3Cad+8BzZYaKXt0G3yq3DHjanLIh7/THDXGlAYkdWrsZkVpCq5lA8eQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=MZ6v18K9cJB5wFL8mBfFs9Yzg0CEIpTPfdJbjTkhztw=;
 b=QrJLF5GfEPKmfpCBTmx9KrFbHH2HD7ctLryB8QZq8oclv3Kue6J/63zujOtQcJqcXnFXMasZrSNj221/F1Y54wQukcAqxSb2FGifTZmQzZ6tXCd/kgxx6JcJhYePP5CECcaCb4bBV+oLQML9Ry05702V9Q2I0xBfW/nYHYo+OrZCJYNRR/ITLKLZcqSyZG6v7zVQus+DtfFvg+dz9HX3uP4GDyvv4rNrbLdY4Q+OiMym6h5dVVKXnSBmbMTlqJ+8iEx/qAV8nKvCR1BbvvyJYIPAB/mkSCVm70QX97w3laVG/1QWOGqM/j4coE4fduHaDkfVHQtSPQZ2JNUMjcW/CA==
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=MZ6v18K9cJB5wFL8mBfFs9Yzg0CEIpTPfdJbjTkhztw=;
 b=DXc9MjBso1N41ZHYbDuN7qrtSxosjDuyzu2aPsVt/mssUJYXqD5C0N78HizK2qt0gzdHkd0gk3bkPZqdkuCMrS20hBuxEcdEMkTW6hFWJrzqwVwrExRyjRBikAkx1/qnwg7P0Ys6vyx9NAw8V+I7p3l737Z/1wbCO8gunA8OXQM=
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=SATLEXMB04.amd.com; pr=C
From: Jiqian Chen <Jiqian.Chen@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v10 4/4] vpci/msix: Free MSIX resources when init_msix() fails
Date: Tue, 5 Aug 2025 11:49:06 +0800
Message-ID: <20250805034906.1014212-5-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250805034906.1014212-1-Jiqian.Chen@amd.com>
References: <20250805034906.1014212-1-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH1PEPF0000A349:EE_|IA1PR12MB6652:EE_
X-MS-Office365-Filtering-Correlation-Id: ddcd4363-4ae3-4df1-a19c-08ddd3d314e8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|36860700013|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?MDJtdm5ETDk1NHNnK25XdkVHZmx2cmdIeUNDamxoNmVhMU1xdHR2VHdQQThJ?=
 =?utf-8?B?TmZXam85RU90ZmlKTWh5Q2p1dEhpU1BqKzdicXBlTzd0Rm5nYkxVYXlFU3Rh?=
 =?utf-8?B?R1ZXQ2FVVVRlY2d2UkxGaU9PK1RrNVlXdWFpcmdweWtmaTZac05YWFNJMVFY?=
 =?utf-8?B?OGFtTFhXUFFGM051VG1zVUVBNmo1ZnJWd0ZVYVFNajdIN3FDb3M1ZWR6NEpS?=
 =?utf-8?B?aExqa1pTalltVDI2NEJuaE1xVTN5c1BFNGFhblVVWHpZUDl6NnpsN3hjWllI?=
 =?utf-8?B?ekdDRFIxM1dnbVJTaVlVbXluajVCZ2Vmc1ZIWTQ4SGtTVjVSSlZqOW9vdDlY?=
 =?utf-8?B?MlJFZUFWZHN1NndRbTVKV2NaVFdtaDhtVXlHZWMyY0htQ212VmdMWko4Nmc4?=
 =?utf-8?B?REFCRjBhTHZ5dkhrMHlYd3VPcXVkYzNic05SVUN1MzFwSkpOVE5nZDRQeWQ4?=
 =?utf-8?B?c3VVNGtGdEhUNm56emRxMW0vNFpRalE5T1JaemRWenV2RDBpTXJlR2lhdXRm?=
 =?utf-8?B?WHMrY0JkRmx5NiszQktGSlpUc0E5QW5IN0s5eXk0cERMclVNbC9xaHJsclZn?=
 =?utf-8?B?U1BPNExXdXVkSjNWZ3VjeTZVb09pVGFwTmFud0g1OWpXSHd3bFJ2bXJpZlVZ?=
 =?utf-8?B?YlNRSEpBR2N5ZU5HcGtrUitzaUUxeGdZcnlnRFVFczNFNjdiRUY1MC9Kd0Yx?=
 =?utf-8?B?UHNqVS9Oc0pBRkFDelNGNVF0SkduSWpVc1cyNDR0Ni8rdXkyUlVkdHRuVEho?=
 =?utf-8?B?RWpOaHJEOWxpYWZCNnpFdnk4OG14bFBtSkpuMFE2TzZDbGlCY2d6dmc2anlQ?=
 =?utf-8?B?NTNEeXF0K1dlSVRiYUQxa1FNVTc5SnJSWE5oTnBEZU5ZbGJSZ1VBV0I0Mmd0?=
 =?utf-8?B?ZTB4cW1UR1orTE5RTFFVVGpHd1NJWWZNdTJFOGk2S1ZNaXhEemE2eWl2c2lM?=
 =?utf-8?B?dm1nNm1tSWtGM3FtOHp6TjJGZC9IRTlHdnpneStWWkhSTVZsK1NsSFZhNlI0?=
 =?utf-8?B?MWdTZkp3UHErT0FzOWpwcHhjWjZ3ZmV6VWNTaEZkVXlhOWpkaGhYeEh6eWVP?=
 =?utf-8?B?ODlWczd0aTRqbXRQZEFOMDlOVlkwNFlUbFhpNDdQUllpeUUyUVh3Z29QOVNm?=
 =?utf-8?B?bVM0R3ZoTzdFUSt4WHRvSmo4Q0Z0a1VsS0w5eG4zYUF3OGhwTFUwVmk5OVRJ?=
 =?utf-8?B?WXo1b2lzQ0Nmd0p0bHBkU1g2ajJocjVJUFdkcC8yd1lMOVZaL3MvNkhZUC9z?=
 =?utf-8?B?SW1vQ25qQk51eXJzUjg3dk1NN216WjMyUGhoc254SGlUUEszNU1CQ0xva1lW?=
 =?utf-8?B?eWU2UHpIaVhZWStBV29JbHI5MVo5YkpOeDRnNi8xTlZzOHFqRFhoU09hRmNp?=
 =?utf-8?B?ZW94VktadSswbHdqUW9yRFV0RkVtYlR1eTBEOVpnMGRDNTQ5ZU0xU2VPOHpC?=
 =?utf-8?B?Njh0UG9mTVl0eWYyUUk5cXdOZlF6RUZmOTlFZFlOa2ZXRXVQaENya1owQXhU?=
 =?utf-8?B?ZlQ4MVU5MTA2dmJYNGtWSGY4RE4zS0NEQlRIYzBDMXJtamJ4aTgrdlNRTVoz?=
 =?utf-8?B?L21jM2tNQU5RN1ZEZlpXdTdkWG5xS0szZ2Q1SWtROHpRZnlNLzc2dlBwdVVG?=
 =?utf-8?B?RU5TMVFRdXUzRmN5YzBuY0ZQZjlqT2RYMEpxTGFnSTJNUTRiRnBLOTJzazA0?=
 =?utf-8?B?RkRQVm5BRVdPL0pxWFA1dkxvMUsyMHowZmJIUnI2MlZEMUI2SUIrNm9IcS92?=
 =?utf-8?B?ckRtVjlFYXRyWEdEaHlDa2lQTFB4Z29HT2FkS1BSZld0VjNIY0hWWjk2K2R1?=
 =?utf-8?B?SU9UL2dhc0JJeHVjcnZWd2ZzRVJFRXF3ZmVwbExBT1VjZjBTQzRJdHUxNlpZ?=
 =?utf-8?B?eGdITWtoaDVwWHBLNWZ1TnYzNWFOVlhQazc1bW8zMUp5cDJzZVJUVDA4WmZq?=
 =?utf-8?B?MGsrcU9YZWFHVnVaT3pIRjhibEdicGpxTENVcWNjRDNoOUdRRURYOTNhN3dK?=
 =?utf-8?B?YnZSd2I0N0h2MW1lTjJxMzEzeW10N3pvaWpXajdXL200ZUNTWjEwdG5MZDdv?=
 =?utf-8?Q?nV6dyS?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(36860700013)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Aug 2025 03:49:29.8274
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ddcd4363-4ae3-4df1-a19c-08ddd3d314e8
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=[SATLEXMB04.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: IA1PR12MB6652

When MSI-X initialization fails vPCI will hide the capability, but
remove of handlers and data won't be performed until the device is
deassigned.  Introduce a MSI-X cleanup hook that will be called when
initialization fails to cleanup MSI-X related hooks and free it's
associated data.

As all supported capabilities have been switched to use the cleanup
hooks call those from vpci_deassign_device() instead of open-code the
capability specific cleanup in there.

Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
---
cc: "Roger Pau MonnÃ©" <roger.pau@citrix.com>
---
v9->v10 changes:
* Call all cleanup hook in vpci_deassign_device() instead of cleanup_msix().

v8->v9 changes:
* Modify commit message.
* Call cleanup_msix() in vpci_deassign_device() to remove the open-code to cleanup msix datas.
* In cleanup_msix(), move "list_del(&vpci->msix->next);" above for loop of iounmap msix tables.

v7->v8 changes:
* Given the code in vpci_remove_registers() an error in the removal of
  registers would likely imply memory corruption, at which point it's
  best to fully disable the device. So, Rollback the last two modifications of v7.

v6->v7 changes:
* Change the pointer parameter of cleanup_msix() to be const.
* When vpci_remove_registers() in cleanup_msix() fails, not to return
  directly, instead try to free msix and re-add ctrl handler.
* Pass pdev->vpci into vpci_add_register() instead of pdev->vpci->msix in
  init_msix() since we need that every handler realize that msix is NULL
  when msix is freed but handlers are still in there.

v5->v6 changes:
* Change the logic to add dummy handler when !vpci->msix in cleanup_msix().

v4->v5 changes:
* Change definition "static void cleanup_msix" to "static int cf_check cleanup_msix"
  since cleanup hook is changed to be int.
* Add a read-only register for MSIX Control Register in the end of cleanup_msix().

v3->v4 changes:
* Change function name from fini_msix() to cleanup_msix().
* Change to use XFREE to free vpci->msix.
* In cleanup function, change the sequence of check and remove action according to
  init_msix().

v2->v3 changes:
* Remove unnecessary clean operations in fini_msix().

v1->v2 changes:
new patch.

Best regards,
Jiqian Chen.
---
 xen/drivers/vpci/msix.c | 44 ++++++++++++++++++++++++++++++++++++++++-
 xen/drivers/vpci/vpci.c | 30 +++++++++++++++++++---------
 2 files changed, 64 insertions(+), 10 deletions(-)

diff --git a/xen/drivers/vpci/msix.c b/xen/drivers/vpci/msix.c
index 54a5070733aa..3aa271445d12 100644
--- a/xen/drivers/vpci/msix.c
+++ b/xen/drivers/vpci/msix.c
@@ -655,6 +655,48 @@ int vpci_make_msix_hole(const struct pci_dev *pdev)
     return 0;
 }
 
+static int cf_check cleanup_msix(const struct pci_dev *pdev)
+{
+    int rc;
+    struct vpci *vpci = pdev->vpci;
+    const unsigned int msix_pos = pdev->msix_pos;
+
+    if ( !msix_pos )
+        return 0;
+
+    rc = vpci_remove_registers(vpci, msix_control_reg(msix_pos), 2);
+    if ( rc )
+    {
+        printk(XENLOG_ERR "%pd %pp: fail to remove MSIX handlers rc=%d\n",
+               pdev->domain, &pdev->sbdf, rc);
+        ASSERT_UNREACHABLE();
+        return rc;
+    }
+
+    if ( vpci->msix )
+    {
+        list_del(&vpci->msix->next);
+        for ( unsigned int i = 0; i < ARRAY_SIZE(vpci->msix->table); i++ )
+            if ( vpci->msix->table[i] )
+                iounmap(vpci->msix->table[i]);
+
+        XFREE(vpci->msix);
+    }
+
+    /*
+     * The driver may not traverse the capability list and think device
+     * supports MSIX by default. So here let the control register of MSIX
+     * be Read-Only is to ensure MSIX disabled.
+     */
+    rc = vpci_add_register(vpci, vpci_hw_read16, NULL,
+                           msix_control_reg(msix_pos), 2, NULL);
+    if ( rc )
+        printk(XENLOG_ERR "%pd %pp: fail to add MSIX ctrl handler rc=%d\n",
+               pdev->domain, &pdev->sbdf, rc);
+
+    return rc;
+}
+
 static int cf_check init_msix(struct pci_dev *pdev)
 {
     struct domain *d = pdev->domain;
@@ -710,7 +752,7 @@ static int cf_check init_msix(struct pci_dev *pdev)
      */
     return vpci_make_msix_hole(pdev);
 }
-REGISTER_VPCI_CAP(MSIX, init_msix, NULL);
+REGISTER_VPCI_CAP(MSIX, init_msix, cleanup_msix);
 
 /*
  * Local variables:
diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index 91d40be5bc4c..ebc4fdcd2600 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -321,6 +321,27 @@ void vpci_deassign_device(struct pci_dev *pdev)
                     &pdev->domain->vpci_dev_assigned_map);
 #endif
 
+    for ( i = 0; i < NUM_VPCI_INIT; i++ )
+    {
+        const vpci_capability_t *capability = &__start_vpci_array[i];
+        const unsigned int cap = capability->id;
+        unsigned int pos = 0;
+
+        if ( !capability->is_ext )
+            pos = pci_find_cap_offset(pdev->sbdf, cap);
+        else if ( is_hardware_domain(pdev->domain) )
+            pos = pci_find_ext_capability(pdev->sbdf, cap);
+
+        if ( pos && capability->cleanup )
+        {
+            int rc = capability->cleanup(pdev);
+            if ( rc )
+                printk(XENLOG_ERR "%pd %pp: clean %s cap %u fail rc=%d\n",
+                       pdev->domain, &pdev->sbdf,
+                       capability->is_ext ? "extended" : "legacy", cap, rc);
+        }
+    }
+
     spin_lock(&pdev->vpci->lock);
     while ( !list_empty(&pdev->vpci->handlers) )
     {
@@ -332,19 +353,10 @@ void vpci_deassign_device(struct pci_dev *pdev)
         xfree(r);
     }
     spin_unlock(&pdev->vpci->lock);
-    if ( pdev->vpci->msix )
-    {
-        list_del(&pdev->vpci->msix->next);
-        for ( i = 0; i < ARRAY_SIZE(pdev->vpci->msix->table); i++ )
-            if ( pdev->vpci->msix->table[i] )
-                iounmap(pdev->vpci->msix->table[i]);
-    }
 
     for ( i = 0; i < ARRAY_SIZE(pdev->vpci->header.bars); i++ )
         rangeset_destroy(pdev->vpci->header.bars[i].mem);
 
-    xfree(pdev->vpci->msix);
-    xfree(pdev->vpci->msi);
     xfree(pdev->vpci);
     pdev->vpci = NULL;
 }
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 05 04:48:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 04:48:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069979.1433645 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uj9bE-0002DD-0T; Tue, 05 Aug 2025 04:48:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069979.1433645; Tue, 05 Aug 2025 04:48:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uj9bD-0002D6-Tl; Tue, 05 Aug 2025 04:48:31 +0000
Received: by outflank-mailman (input) for mailman id 1069979;
 Tue, 05 Aug 2025 04:48:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8F9P=2R=gmail.com=arraybolt3@srs-se1.protection.inumbo.net>)
 id 1uj9bC-0002D0-Lc
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 04:48:30 +0000
Received: from mail-il1-x12c.google.com (mail-il1-x12c.google.com
 [2607:f8b0:4864:20::12c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6e0f574e-71b7-11f0-a321-13f23c93f187;
 Tue, 05 Aug 2025 06:48:29 +0200 (CEST)
Received: by mail-il1-x12c.google.com with SMTP id
 e9e14a558f8ab-3e3fdfa4c2aso2790365ab.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 21:48:29 -0700 (PDT)
Received: from kf-m2g5 ([2607:fb90:bf84:45ad:2f41:d127:adbe:c0d6])
 by smtp.gmail.com with ESMTPSA id
 e9e14a558f8ab-3e402b34532sm48015065ab.56.2025.08.04.21.48.27
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 04 Aug 2025 21:48:27 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6e0f574e-71b7-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754369308; x=1754974108; darn=lists.xenproject.org;
        h=mime-version:message-id:subject:to:from:date:from:to:cc:subject
         :date:message-id:reply-to;
        bh=fAeb9X+8AuYEPG8mHnlJ16wIPZcag0txnZ1arZNalQ0=;
        b=H3lAVRTeU+yBVc0fC01gLVj6lukHhLs+OePODKqUdbI0L1TtLhLvFDSrlRY1Y0Gd2x
         Vumdq+l6bGOWGFy0tFbIv3DmkACCIgBEZNl2ZlXvE6Q6CSepv3bbojTJzQG91Xhkintj
         0mcdUB8B5DnvcpEIZCRiNIHf38DTTEgPB8xt4rPG3mSg8eqKd+nSJjsQFA8fblPWQoGy
         MjuaMLNbPIx6BxCOn0++d2ZDKk8nawrrCCd+PJZaAAPyEO1TONV2jKnUQW8YtXGNtMEg
         6wT7Caq2pCkHNvu0KpTwW3TQWeCLohpC73fXBXt5SljxUM7cKuSTFzUHQLIZR4Xdaib3
         YqRA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754369308; x=1754974108;
        h=mime-version:message-id:subject:to:from:date:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=fAeb9X+8AuYEPG8mHnlJ16wIPZcag0txnZ1arZNalQ0=;
        b=FGQaTZjpAVozHaexu7EtS2wKlT4ZrsBe7fbZ/whQSMjMyKD5qW2cRcYrcbtaHM+W5p
         Wt3tAs2IGXhmsdCbu+M6I+Ix3nluf41yJfAG3xQD1/d9UrUY8PW5BTtlzzYEiwAZ0bF3
         Rik3odsjjKFStx8R2WuRQTSOT3dm/HkXp0J6KmUlCq5QgMAArG0RY2yJS2NJ7gfFWjlK
         IRch32yuoWPaTSW5F0S5ILlt2bxtp9dO2evkXSLn4Yi8H/jOvQJn3rEMWqGvT2rQEb7H
         PFOlK3K3SwRKvr2fmm63kEjBj5bUvU5F56CHYrINP18slWsYjG/ru3/eVCiwURIRVoWS
         SEug==
X-Forwarded-Encrypted: i=1; AJvYcCWbMXZFgvNbXspNNIWk65wfUbOWsDm1WVnqyTjRFhH6CPLvPwIvQyAcSZG9RGNM/Vtv9JH7FVVaxsI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy7WoZQSDYT9j9GdMAcB6WtsqhH1L+dR0RAIRwBNl3dV0bXTBWz
	TW5yT0WYVyv7gJRoHl4LHhu8XJOWwC7DkM/X4AmCzhYEnVE6frkvOHIO
X-Gm-Gg: ASbGncv65iBg7ERGSrdEYtd94Hf99vaTIG4m5WLty2tAlryHcCy23RBSWQCS//8coXP
	4NbbRY+UwEH+8ebME1H3rgpVYKzk1fQ/VqgqSazjpQfoFv50vNhPGbNhgK6BeJ8P+yMoo834Fp0
	Z9BZYjstVT7yqeUx/g5UwMC7BxfWLeKGwdTe0X0pbn/XZ5TPPhK51lSsAGw/+R5HO0sQIsZ2vH3
	UHTtub7eUj71FvVC2h7D7s59549jdWYkVitrYAZVWfggnHLtx3DFdC6WMcWQtRFkZStEcO3CZeg
	O2BDzcPGMFY1ctIkdPuzcyKXLVlxIh7GCPgF+6oEB2fwzJOHtuHOnSZyoff+3Ja7x0G57lm7+Vj
	uxYwpK7haFl9oyoZfnR1gfzXsSWpMGXitA0N0R2IRAw==
X-Google-Smtp-Source: AGHT+IEKeEi/gAby9VnxKw5TgC6XlozkOvfKVx6TrT+v3TIv3VnhHxTOSNY+bluWQN+20xgcwCOhjw==
X-Received: by 2002:a05:6e02:2482:b0:3e4:6c1:74a4 with SMTP id e9e14a558f8ab-3e416190916mr55764455ab.3.1754369308047;
        Mon, 04 Aug 2025 21:48:28 -0700 (PDT)
Date: Mon, 4 Aug 2025 23:48:16 -0500
From: Aaron Rainbolt <arraybolt3@gmail.com>
To: grub-devel@gnu.org, xen-devel@lists.xenproject.org
Subject: [PATCH v4 0/2] kern/xen: Add Xen command line parsing
Message-ID: <20250804234816.3d14f53f@kf-m2g5>
X-Mailer: Claws Mail 4.3.1 (GTK 3.24.41; x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="Sig_/xScQGjvbhehxfi4Rs=kQNRS";
 protocol="application/pgp-signature"; micalg=pgp-sha512

--Sig_/xScQGjvbhehxfi4Rs=kQNRS
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

The purpose of this patch is to allow the Xen hypervisor to pass extra
data to GRUB in the form of a kernel command line, allowing the host to
customize the boot process of the guest. The command line from Xen is
parsed, and any variables within that start with the string
`xen_grub_env_` are exposed as environment variables. The grub.cfg
script can then use those environment variables as it sees fit.

The main reason for doing this is to allow implementing boot modes in
Qubes OS while also using in-VM kernels. For more context on Qubes boot
modes, see [1]. In order for this to work with in-VM kernels, it is
necessary for dom0 to pass kernel parameters to the guest without
modifying the guest's grub.cfg manually. This patch allows this to be
done, by allowing dom0 to pass kernel parameters to GRUB, which then
provides them to grub.cfg as an environment variable. The grub.cfg
script within the VM can then append those variables to the kernel
command line.

All of the changes from version 3 of the patch are simply refinements
after a review from Daniel Kiper (coding style cleanups, avoiding
global variables, double-checking NUL-termination after using
grub_strncpy, etc.). The patch's functionality is unchanged.

Since there are substantial changes since version 3, I've re-run the
entire battery of tests that were used against the v3 patch, plus an
extra test to ensure an escaped control character won't be accepted in
variable values. The test results can be seen at [2]. As previously, the
tests were done by booting a patched GRUB in Xen with various different
parameters passed to it via the Xen-provided kernel command line. The
effects of these parameters on the bootloader's environment were then
tested, and then an Arch Linux image was booted to ensure that boot
still worked.

[1] https://github.com/QubesOS/qubes-linux-pvgrub2/pull/16
[2] https://bpa.st/3SBQ

Aaron Rainbolt (2):
  include/xen: Rename MAX_GUEST_CMDLINE to GRUB_XEN_MAX_GUEST_CMDLINE
  kern/xen: Add Xen command line parsing

 docs/grub.texi                |  51 +++++
 grub-core/Makefile.core.def   |   2 +
 grub-core/kern/i386/xen/pvh.c |  23 +++
 grub-core/kern/xen/cmdline.c  | 376 ++++++++++++++++++++++++++++++++++
 grub-core/kern/xen/init.c     |   2 +
 include/grub/xen.h            |   2 +
 include/xen/xen.h             |   4 +-
 7 files changed, 458 insertions(+), 2 deletions(-)
 create mode 100644 grub-core/kern/xen/cmdline.c

--=20
2.50.1


--Sig_/xScQGjvbhehxfi4Rs=kQNRS
Content-Type: application/pgp-signature
Content-Description: OpenPGP digital signature

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

iQIzBAEBCgAdFiEEudh48PFXwyPDa0wGpwkWDXPHkQkFAmiRjRAACgkQpwkWDXPH
kQmUcQ/+IK73jDnnYdHxMHW5n0qqZPpSkOK1mYaH7o9lzLGngg9ias2SqAML8aw+
Fyi+QQhVd7XRmPjZHe85yyVgEY3NM4WK7+T2PY4LfSAWq5xRKHVtm4mnhSMmXp95
/DPqL4k8Dyj8oVuu861gdSxGk3L8Bq8bW1ttMIxTn9j1A3lKZ7h3//z6aXu+fTgQ
MJuACkFJRGVjMnRXT40AKlRCM36KFktCC+C1r+a8Lh7rHhSzLWf6TbF+0A9Nt8vZ
foLAvqAGlYfLtyi5nCMPdC88VeOcVc2PjymhzCd2MdTc7Wumxhw/xUFsJcoggaZK
Al//2ekOjTjRP/Cirx6KBCe6eId3vk6YOC5HWKrHcFyCdYG3D+4MGXFPL9wQMEyN
c1QLWdIPtBtFXXHLjppX1gsd0Wi9Jt47K1Xr1glzLHs7b++Zhlz+/qtoguPHU74i
ilvAe8E4XRaCDZyFlxQofrfUVpa2OJOLHsoubS35X7DFpcNc+nHMYesDw4L6Bk0P
McjaJ1CAbsxfELJ82ReQajhjTLB10C26EUd+JolR3g6+6fU2L4Aiy+IwQw348Rmc
KKV429earA8F8Pu6UkgKEG8JQJlkbTts0wMs94+5pOslM5rqFqrbi/IDNJXV9e/2
fsU01RHTu4HKB6j8ryDi0Mgo5sPqfkJJJplfxQeaiRpeeo7Txj8=
=k+GH
-----END PGP SIGNATURE-----

--Sig_/xScQGjvbhehxfi4Rs=kQNRS--


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 04:49:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 04:49:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069988.1433656 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uj9by-0002g6-9N; Tue, 05 Aug 2025 04:49:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069988.1433656; Tue, 05 Aug 2025 04:49: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 1uj9by-0002fz-5n; Tue, 05 Aug 2025 04:49:18 +0000
Received: by outflank-mailman (input) for mailman id 1069988;
 Tue, 05 Aug 2025 04:49:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8F9P=2R=gmail.com=arraybolt3@srs-se1.protection.inumbo.net>)
 id 1uj9bw-0002fb-Nx
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 04:49:16 +0000
Received: from mail-il1-x133.google.com (mail-il1-x133.google.com
 [2607:f8b0:4864:20::133])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 89cd20e3-71b7-11f0-a321-13f23c93f187;
 Tue, 05 Aug 2025 06:49:16 +0200 (CEST)
Received: by mail-il1-x133.google.com with SMTP id
 e9e14a558f8ab-3e3df510580so1349615ab.0
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 21:49:16 -0700 (PDT)
Received: from kf-m2g5 ([2607:fb90:bf84:45ad:2f41:d127:adbe:c0d6])
 by smtp.gmail.com with ESMTPSA id
 8926c6da1cb9f-50ab153eeb3sm522662173.25.2025.08.04.21.49.13
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 04 Aug 2025 21:49: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>
X-Inumbo-ID: 89cd20e3-71b7-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754369355; x=1754974155; darn=lists.xenproject.org;
        h=mime-version:references:in-reply-to:message-id:subject:to:from:date
         :from:to:cc:subject:date:message-id:reply-to;
        bh=GXs9SwO4XSOIUWvjoKCrX+uREz6ahOCzhSla9A0bVUM=;
        b=KzamnNy77t/A5EhbLJHd4ZT6N1U6Ml18tIxW1FUTY51FMlOAMX/3ExPYmWDR+B9Tj4
         kD+Fv4HdrdZV+FGKzhGNsAGEFB0s2cguXyMPae/nn+qBd5XjWD0Ccm1oboZxH2d9BZS4
         rOqNN0+2JGt0EkMt5xpZjX/4OJ3TIdUkf16AFF6trcmF+KcR1yLLHWpMRnN0OPKKpvyV
         46NbQMtC1MtnyUjS81c5zyqBlK+sXkm9lAYsGJ3hCSl/33fFVbrwCTI7biFtjlBRpMlu
         bMKCH+X1xfTheh1jeofVJBClxbR+scLWrKTx11IJ9NciHzViyywMJJjDeNTtQOONmFag
         ruBA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754369355; x=1754974155;
        h=mime-version:references:in-reply-to:message-id:subject:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=GXs9SwO4XSOIUWvjoKCrX+uREz6ahOCzhSla9A0bVUM=;
        b=rUmMX0+7sMML0LOnHszn+Q20NCcixbfjMmhF/fxxBm5ZZQvyiO+eSfUdCMVfpT67sI
         YOrOaU24fcWPUEG3IdaZhsu1ei33A76HAxIv2dsbHqbQwM6dLDW0B7gtqxGExGUqlj3T
         Rs1XM7tPs+lIr+jMQ9pQEvqTNQj8S4oFcoJjp62x+/Qb00/1pWIU7J3JXIYNmcc3X9Yc
         3TqZOkEe3f4p9/T4DfXTn+zTGGrS16rP4FvmOaVakbfpugM+OrR/xxKcGsZUPgdxJQb6
         CLC4A/sXYzhHpDNpcGnIxymUHhlrAwU5vAOXsQ2xqdhNBKb8WLzJ/KEM0sTPexWCfxTd
         vCBA==
X-Forwarded-Encrypted: i=1; AJvYcCWwhjmvlMqJzwaqvwolCArgHTzsCy8m+GRswaKNWGfqHltTGcbcblM5s1tfP1yNy9OqJQufNSOUYCc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyszGocvBSSaacwD/SDMgs23DYzgFof10mCsNpUVxhVl5n1HCLk
	TrGo91GCZGce+Vfn1hethh53/MeVfUa+c4/3rUY7hof/yzUpjz00NJMP
X-Gm-Gg: ASbGncu94SRD9Q3063VBtwUkA32FSUtarkZX7ah3Zf7YG8urUHb4r3dW01ciIBd0Yd2
	2+6HnfgwI14h0HvLSQOv8rd3gXmTfJQo7Ih8gPLqT6t/J6xp1BH3m4gU5o0apDjOFTxbBlzCPHZ
	Waa4s6mC4wWALvsUObfB1d7FfaUBVVJEGm9S019LefWyd/OtWPx8OX1sZWoAQBztfi7mqkg8FZK
	IdIFg0fVghM3DJJR5WcCv1iwMAVONMvQXA4RwhWcWZbM8DglrwhlfF7WJasBDDHkc8svXa6AZhX
	oGxy7hKIstFsn+RcnWtJVajcepMDD7Hqtc4fwRtHsZvEempMlqpOFZdVZoL4YMX7yjahXzk0jkc
	HnPAqG4wJI1VJOeIGz071wcPHYwaddNs=
X-Google-Smtp-Source: AGHT+IH8VyvpMYmeKrfWuSB8PKhzo0cdcmlppy8+mTsfWjTZFGwyfCTjPHESrMmpxY3ES7MyKSnMtQ==
X-Received: by 2002:a05:6e02:b44:b0:3e3:c947:e323 with SMTP id e9e14a558f8ab-3e41610a3fbmr55523055ab.2.1754369354792;
        Mon, 04 Aug 2025 21:49:14 -0700 (PDT)
Date: Mon, 4 Aug 2025 23:49:11 -0500
From: Aaron Rainbolt <arraybolt3@gmail.com>
To: grub-devel@gnu.org, xen-devel@lists.xenproject.org
Subject: [PATCH v4 1/2] include/xen: Rename MAX_GUEST_CMDLINE to
 GRUB_XEN_MAX_GUEST_CMDLINE
Message-ID: <20250804234911.3cc3997c@kf-m2g5>
In-Reply-To: <20250804234816.3d14f53f@kf-m2g5>
References: <20250804234816.3d14f53f@kf-m2g5>
X-Mailer: Claws Mail 4.3.1 (GTK 3.24.41; x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="Sig_/cayLqM02C/AJXMYF4q/w2jR";
 protocol="application/pgp-signature"; micalg=pgp-sha512

--Sig_/cayLqM02C/AJXMYF4q/w2jR
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

The xen.h header was using an overly generic name to refer to the
maximum length of the command line passed from Xen to a guest. Rename it
to avoid confusion or conflicts in the future.

Signed-off-by: Aaron Rainbolt <arraybolt3@gmail.com>
---
 include/xen/xen.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/include/xen/xen.h b/include/xen/xen.h
index 692f97a..fdf0fc4 100644
--- a/include/xen/xen.h
+++ b/include/xen/xen.h
@@ -823,8 +823,8 @@ struct start_info {
                                 /* (PFN of pre-loaded module if           =
*/
                                 /*  SIF_MOD_START_PFN set in flags).      =
*/
     unsigned long mod_len;      /* Size (bytes) of pre-loaded module.     =
*/
-#define MAX_GUEST_CMDLINE 1024
-    int8_t cmd_line[MAX_GUEST_CMDLINE];
+#define GRUB_XEN_MAX_GUEST_CMDLINE 1024
+    int8_t cmd_line[GRUB_XEN_MAX_GUEST_CMDLINE];
     /* The pfn range here covers both page table and p->m table frames.   =
*/
     unsigned long first_p2m_pfn;/* 1st pfn forming initial P->M table.    =
*/
     unsigned long nr_p2m_frames;/* # of pfns forming initial P->M table.  =
*/
--=20
2.50.1


--Sig_/cayLqM02C/AJXMYF4q/w2jR
Content-Type: application/pgp-signature
Content-Description: OpenPGP digital signature

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

iQIzBAEBCgAdFiEEudh48PFXwyPDa0wGpwkWDXPHkQkFAmiRjUcACgkQpwkWDXPH
kQnPRhAAwD0BnZnH/WypxaZfvHSRWFj2A1vN+TZL4GAj8foEiE9r6ia/uPRVDR60
uayYCi0NQ35VfGYYA8Ok/ses+8kpCtFcNQaGOwu8DwzQu2+4gaTp5EKAz4cl189e
JsRds5jE8nLReqFxKhNbVMTMMlz91THrPM9vMlt3SJLnDveNhZgTCZl+JqQPV0wZ
FxBxb08f8fcA3k6MPZfZkY1su2ncLszFJUidDSjyA+8PHzxiT2n8PNCUJX06a60O
xPNnr9bfb9P13H4hk57gSazsc03iVnbw14njhssBYr2Aw/1J+gGWWRBXTyqFBFiu
JLsZPdFkEKo0CAsuNNW4teNXurCjLMjad/mVvfOUOw65NQUM9bpPAcm+SdgviVG/
Xj1m/fIKVRBoPwfDHXgcDVPIE8YtcP6kN3+YKeJrmHdT7sUPv9Rcbp+jNeRa6BC+
rzIVnkIPXYP95dV0Ycou0lYTBuFSTYAS7wPOotV/HxPp/Z1trRnYXmeWJieF6Iis
z6Ih4dywciqSfy5Q+xanxKC8vq17KZW49QQc/aWC9hJt45KnkcAFJeUFEbZfBWXV
FW/e59JWreNSNQ7IZ87j7Wk8zbBXShNAJ7uONiox00W3cJrglSBbOkI4DZ1zMt/Q
mI0uzhOJ4uAOrRZ3qFS+oei+C8jaz69jgG9PjtJ+HV/hxlzmBpQ=
=xDlH
-----END PGP SIGNATURE-----

--Sig_/cayLqM02C/AJXMYF4q/w2jR--


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 04:50:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 04:50:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1069995.1433666 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uj9cz-0004AM-J6; Tue, 05 Aug 2025 04:50:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1069995.1433666; Tue, 05 Aug 2025 04: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 1uj9cz-0004AF-Et; Tue, 05 Aug 2025 04:50:21 +0000
Received: by outflank-mailman (input) for mailman id 1069995;
 Tue, 05 Aug 2025 04:50:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8F9P=2R=gmail.com=arraybolt3@srs-se1.protection.inumbo.net>)
 id 1uj9cx-0003L0-Gp
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 04:50:19 +0000
Received: from mail-il1-x12b.google.com (mail-il1-x12b.google.com
 [2607:f8b0:4864:20::12b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id acaacf4a-71b7-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 06:50:14 +0200 (CEST)
Received: by mail-il1-x12b.google.com with SMTP id
 e9e14a558f8ab-3e3fdfa4c2aso2790675ab.1
 for <xen-devel@lists.xenproject.org>; Mon, 04 Aug 2025 21:50:14 -0700 (PDT)
Received: from kf-m2g5 ([2607:fb90:bf84:45ad:2f41:d127:adbe:c0d6])
 by smtp.gmail.com with ESMTPSA id
 e9e14a558f8ab-3e40297c3desm47951335ab.4.2025.08.04.21.50.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 04 Aug 2025 21:50: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>
X-Inumbo-ID: acaacf4a-71b7-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754369413; x=1754974213; darn=lists.xenproject.org;
        h=mime-version:references:in-reply-to:message-id:subject:to:from:date
         :from:to:cc:subject:date:message-id:reply-to;
        bh=nobIoytVmkyyXPb30UPJ/cP8wI2YAhOvo+EJoOF4y6k=;
        b=nQ2bIzbuGXsPsCWcy3yuwAYa1RVymCTo9T7MFgUZhHfSL7kiGcdBqWn6EVaLuej1cB
         qoVDbK7lkQNeBQDPyMN5bk3Jm7FJgjtQ7bH2hN06k/NJHk9TdWXcYrXR6rvsiYQMwVmM
         arPOQPEdxpL8u6C2I8whspY5KQeTLF3aJ50XkS1h1x+T155sgCkNVrVfN3AxQS2IDY1c
         zoEelzISAWtQAXaTfWCoTRSv+UnP+38y1tnsVHjlUZTdXBvA8UVT6atgsKFnwy+IV82x
         5PIpQc0oz0wrCHuLjxUjVk4bfzyxQNNU5msEooC42VLHWFUjtDW6BiTzdEvXkd2/0GDN
         iKzg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754369413; x=1754974213;
        h=mime-version:references:in-reply-to:message-id:subject:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=nobIoytVmkyyXPb30UPJ/cP8wI2YAhOvo+EJoOF4y6k=;
        b=tPn4THT3vc7/16K0lhiUz0C0KRRoT1s5Tvqfx9/f7oTuSHb5Vq04mVH/iDVPigLl3/
         LrtSXMrhoyohPQ5sVfqG77/mAodHTF6/Pzim/1Lzmr5E/Yz2pzvMW7mdWmo9jTLsDEQd
         Bjk0giZRpKgWPGbi4KPIKvH6M6KiAg+r5v3uX6/rKjlNxCkZ4TXqnix7NUXkZXEXk4b1
         5+nhdGa7/5gk6N4YUeuYfBxsdTX9/r5J1Y+JkYmGfkXf8NuDoTY65JGSuoBXSe+hvnS6
         OTWX6LkSieezDF9WTZVxBxM9e0YwfZqYbdrnO8aH+J09tc5afao8pEl+la36dPLdd93K
         4ACA==
X-Forwarded-Encrypted: i=1; AJvYcCV2AN/sqNbsu+Pw7q/dTnG3tC5G49h1bkN6VuFKQrMLHyk9ekpSmORf1Uj4zwyXyUqDnvSs13VbG6c=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxNR4egw7IcIWm9JNVRj2UrVmNCwN/ybkDY+SWpiYrqsIQkA/KR
	nIsc0msD0+J50iD9wFiOjaROjq+P8cS1CLRtCvtddOmmQpsQV1XVIDRR
X-Gm-Gg: ASbGncuXr/FImn34SbeaKHiZ1k3lPl7rGQj+e6m3vsIU4K3NT1En8sw9G0NWpCK/Pox
	0WLxEhcvSxTQzHImGCVhwulSlTxUrV1NawUqK7O6J9sInUdY4K4k5kd3N+kbADq73wWCLaiLx6R
	srhtN1JaY5hE/aMmTSc6kOzCh0p2KaRPHhveJh6WI7JkMk0PW0BgY8yNT52tMmLV5RW6JmX9Xmw
	I5XNYXxqDbp90O23GCB1wbFJfjScP6FHqZqQnEhsMKy4I6vMg5Dg1Ur1C9Rm4WuVchJ3un0+6fV
	VS1m0pk45QQ8nAUIS1BWLg80LJdlS8rrJTf3/FCvmjqWJo0bkI4HSVuzTUylYF6pocid5do8Znh
	pviXq0ZxneB96h1ZfvyIp+NlOCfHVNr0=
X-Google-Smtp-Source: AGHT+IGhaNezlhq2LxevMzF1cCPsat2A9zqMmRELaHI9a/VJK4nlrPX/Wl6AXiGOUWtg9lWL+kPz8A==
X-Received: by 2002:a05:6e02:350d:b0:3dd:c947:b3a7 with SMTP id e9e14a558f8ab-3e4161b80cdmr61153165ab.5.1754369412881;
        Mon, 04 Aug 2025 21:50:12 -0700 (PDT)
Date: Mon, 4 Aug 2025 23:50:09 -0500
From: Aaron Rainbolt <arraybolt3@gmail.com>
To: grub-devel@gnu.org, xen-devel@lists.xenproject.org
Subject: [PATCH v4 2/2] kern/xen: Add Xen command line parsing
Message-ID: <20250804235009.30e39bd9@kf-m2g5>
In-Reply-To: <20250804234911.3cc3997c@kf-m2g5>
References: <20250804234816.3d14f53f@kf-m2g5>
	<20250804234911.3cc3997c@kf-m2g5>
X-Mailer: Claws Mail 4.3.1 (GTK 3.24.41; x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="Sig_/ZnIhcNgyGpUwofXD.=Muf+N";
 protocol="application/pgp-signature"; micalg=pgp-sha512

--Sig_/ZnIhcNgyGpUwofXD.=Muf+N
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

Xen traditionally allows customizing guest behavior by passing arguments
to the VM kernel via the kernel command line. This is no longer possible
when using GRUB with Xen, as the kernel command line is decided by the
GRUB configuration file within the guest, not data passed to the guest
by Xen.

To work around this limitation, enable GRUB to parse a command line
passed to it by Xen, and expose data from the command line to the GRUB
configuration as environment variables. These variables can be used in
the GRUB configuration for any desired purpose, such as extending the
kernel command line passed to the guest. The command line format is
inspired by the Linux kernel's command line format.

To reduce the risk of misuse, abuse, or accidents in production, the
command line will only be parsed if it consists entirely of 7-bit ASCII
characters, only alphabetical characters and underscores are permitted
in variable names, and all variable names must start with the string
"xen_grub_env_". This also allows room for expanding the command line
arguments accepted by GRUB in the future, should other arguments end up
becoming desirable in the future.

Signed-off-by: Aaron Rainbolt <arraybolt3@gmail.com>
---
 docs/grub.texi                |  51 +++++
 grub-core/Makefile.core.def   |   2 +
 grub-core/kern/i386/xen/pvh.c |  23 +++
 grub-core/kern/xen/cmdline.c  | 376 ++++++++++++++++++++++++++++++++++
 grub-core/kern/xen/init.c     |   2 +
 include/grub/xen.h            |   2 +
 6 files changed, 456 insertions(+)
 create mode 100644 grub-core/kern/xen/cmdline.c

diff --git a/docs/grub.texi b/docs/grub.texi
index 34b3484..b58cf98 100644
--- a/docs/grub.texi
+++ b/docs/grub.texi
@@ -3271,6 +3271,7 @@ GRUB.  Others may be used freely in GRUB configuratio=
n files.
 @menu
 * Special environment variables::
 * Environment block::
+* Passing environment variables through Xen::
 @end menu
=20
=20
@@ -3871,6 +3872,56 @@ using BIOS or EFI functions (no ATA, USB or IEEE1275=
).
 @command{grub-mkconfig} uses this facility to implement
 @samp{GRUB_SAVEDEFAULT} (@pxref{Simple configuration}).
=20
+@node Passing environment variables through Xen
+@section Passing environment variables through Xen
+
+If you are using a GRUB image as the kernel for a PV or PVH Xen virtual
+machine, you can pass environment variables from Xen's dom0 to the VM thro=
ugh
+the Xen-provided kernel command line. When combined with a properly config=
ured
+guest, this can be used to customize the guest's behavior on bootup via the
+VM's Xen configuration file.
+
+GRUB will parse the kernel command line passed to it by Xen during bootup.
+The command line will be split into space-delimited words. Single and
+double quotes may be used to quote words or portions of words that contain
+spaces. Single quotes will be considered part of a word if inside double
+quotes, and vice versa. Arbitrary characters may be backslash-escaped to m=
ake
+them a literal component of a word rather than being parsed as quotes or w=
ord
+separators. The command line must consist entirely of printable 7-bit ASCII
+characters and spaces. If a non-printing ASCII character is found anywhere=
 in
+the command line, the entire command line will be ignored by GRUB.
+
+Each word should be a variable assignment in the format ``variable'' or
+``variable=3Dvalue''. Variable names must contain only the characters A-Z,=
 a-z,
+and underscore (``_''). Variable names must begin with the string
+``xen_grub_env_''. Variable values can contain arbitrary printable 7-bit
+ASCII characters and space. If any variable contains an illegal name, that
+variable will be ignored.
+
+If a variable name and value are both specified, the variable will be set =
to
+the specified value. If only a variable name is specified, the variable's
+value will be set to ``1''.
+
+The following is a simple example of how to use this functionality to appe=
nd
+arbitrary variables to a guest's kernel command line:
+
+@example
+# In the Xen configuration file for the guest
+name =3D "linux_vm"
+type =3D "pvh"
+kernel =3D "/path/to/grub-i386-xen_pvh.bin"
+extra =3D "xen_grub_env_linux_append=3D'loglevel=3D3'"
+memory =3D 1024
+disk =3D [ "file:/srv/vms/linux_vm.img,sda,w" ]
+
+# In the guest's GRUB configuration file
+menuentry "Linux VM with dom0-specified kernel parameters" @{
+    search --set=3Droot --label linux_vm --hint hd0,msdos1
+    linux /boot/vmlinuz root=3DLABEL=3Dlinux_vm $@{xen_grub_env_linux_appe=
nd@}
+    initrd /boot/initrd.img
+@}
+@end example
+
 @node Modules
 @chapter Modules
=20
diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def
index b3f7119..df0f266 100644
--- a/grub-core/Makefile.core.def
+++ b/grub-core/Makefile.core.def
@@ -248,6 +248,7 @@ kernel =3D {
   xen =3D term/xen/console.c;
   xen =3D disk/xen/xendisk.c;
   xen =3D commands/boot.c;
+  xen =3D kern/xen/cmdline.c;
=20
   i386_xen_pvh =3D commands/boot.c;
   i386_xen_pvh =3D disk/xen/xendisk.c;
@@ -255,6 +256,7 @@ kernel =3D {
   i386_xen_pvh =3D kern/i386/xen/tsc.c;
   i386_xen_pvh =3D kern/i386/xen/pvh.c;
   i386_xen_pvh =3D kern/xen/init.c;
+  i386_xen_pvh =3D kern/xen/cmdline.c;
   i386_xen_pvh =3D term/xen/console.c;
=20
   ia64_efi =3D kern/ia64/efi/startup.S;
diff --git a/grub-core/kern/i386/xen/pvh.c b/grub-core/kern/i386/xen/pvh.c
index 91fbca8..a8988d2 100644
--- a/grub-core/kern/i386/xen/pvh.c
+++ b/grub-core/kern/i386/xen/pvh.c
@@ -321,6 +321,8 @@ void
 grub_xen_setup_pvh (void)
 {
   grub_addr_t par;
+  const char *xen_cmdline;
+  int i;
=20
   grub_xen_cpuid_base ();
   grub_xen_setup_hypercall_page ();
@@ -352,6 +354,27 @@ grub_xen_setup_pvh (void)
   grub_xen_mm_init_regions ();
=20
   grub_rsdp_addr =3D pvh_start_info->rsdp_paddr;
+
+  xen_cmdline =3D (const char *) pvh_start_info->cmdline_paddr;
+  for (i =3D 0; i < GRUB_XEN_MAX_GUEST_CMDLINE; i++)
+    {
+      if (xen_cmdline[i] =3D=3D '\0')
+        {
+          grub_strncpy ((char *) grub_xen_start_page_addr->cmd_line,
+			(char *) pvh_start_info->cmdline_paddr,
+			GRUB_XEN_MAX_GUEST_CMDLINE);
+
+          if (grub_xen_start_page_addr->cmd_line[GRUB_XEN_MAX_GUEST_CMDLIN=
E - 1] !=3D '\0')
+            {
+              grub_error (GRUB_ERR_BUG,
+			  "Xen command line is not NUL-terminated");
+              grub_print_error ();
+              grub_exit ();
+            }
+
+          break;
+        }
+    }
 }
=20
 grub_err_t
diff --git a/grub-core/kern/xen/cmdline.c b/grub-core/kern/xen/cmdline.c
new file mode 100644
index 0000000..46a9998
--- /dev/null
+++ b/grub-core/kern/xen/cmdline.c
@@ -0,0 +1,376 @@
+/*
+ *  GRUB  --  GRand Unified Bootloader
+ *  Copyright (C) 2025  Free Software Foundation, Inc.
+ *
+ *  GRUB 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 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  GRUB 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 GRUB.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <grub/env.h>
+#include <grub/misc.h>
+#include <grub/mm.h>
+#include <grub/xen.h>
+
+enum splitter_state
+{
+  SPLITTER_HIT_BACKSLASH =3D 0x1,
+  SPLITTER_IN_SINGLE_QUOTES =3D 0x2,
+  SPLITTER_IN_DOUBLE_QUOTES =3D 0x4,
+};
+typedef enum splitter_state splitter_state_t;
+
+/*
+ * The initial size of the current_word buffer. The buffer may be resized =
as
+ * needed.
+ */
+#define PARSER_BASE_WORD_SIZE 32
+
+struct parser_state
+{
+  grub_size_t word_list_len;
+  char **word_list;
+  grub_size_t current_word_len;
+  grub_size_t current_word_pos;
+  char *current_word;
+};
+typedef struct parser_state parser_state_t;
+
+static bool
+append_char_to_word (parser_state_t *s, char c, bool allow_null)
+{
+  /*
+   * We ban any chars that are not in the ASCII printable range. If
+   * allow_null =3D=3D true, we make an exception for NUL. (This is needed=
 so that
+   * append_word_to_list can add a NUL terminator to the word).
+   */
+  if (grub_isprint (c) =3D=3D false && allow_null =3D=3D false)
+    return false;
+  else if (allow_null =3D=3D true && c !=3D '\0')
+    return false;
+
+  if (s->current_word_pos =3D=3D s->current_word_len)
+    {
+      s->current_word =3D grub_realloc (s->current_word, s->current_word_l=
en *=3D 2);
+      if (s->current_word =3D=3D NULL)
+        {
+          s->current_word_len /=3D 2;
+          return false;
+        }
+    }
+
+  s->current_word[s->current_word_pos++] =3D c;
+  return true;
+}
+
+static bool
+append_word_to_list (parser_state_t *s)
+{
+  /* No-op on empty words. */
+  if (s->current_word_pos =3D=3D 0)
+    return true;
+
+  if (append_char_to_word (s, '\0', true) =3D=3D false)
+    {
+      grub_error (GRUB_ERR_BUG,
+		  "couldn't append NUL terminator to word during Xen cmdline parsing");
+      grub_print_error ();
+      grub_exit ();
+    }
+
+  s->current_word_len =3D grub_strlen (s->current_word) + 1;
+  s->current_word =3D grub_realloc (s->current_word, s->current_word_len);
+  if (s->current_word =3D=3D NULL)
+    return false;
+  s->word_list =3D grub_realloc (s->word_list, ++s->word_list_len * sizeof=
 (char *));
+  if (s->word_list =3D=3D NULL)
+    return false;
+  s->word_list[s->word_list_len - 1] =3D s->current_word;
+
+  s->current_word_len =3D PARSER_BASE_WORD_SIZE;
+  s->current_word_pos =3D 0;
+  s->current_word =3D grub_malloc (s->current_word_len);
+  if (s->current_word =3D=3D NULL)
+    return false;
+
+  return true;
+}
+
+static bool
+is_key_safe (char *key, grub_size_t len)
+{
+  grub_size_t i;
+
+  for (i =3D 0; i < len; i++)
+    {
+      if (! (grub_isalpha (key[i]) || key[i] =3D=3D '_'))
+        return false;
+    }
+
+  return true;
+}
+
+void
+grub_parse_xen_cmdline (void)
+{
+  parser_state_t *s =3D NULL;
+
+  const char *cmdline =3D (const char *) grub_xen_start_page_addr->cmd_lin=
e;
+  grub_size_t cmdline_len;
+  bool cmdline_valid =3D false;
+  char **param_keys =3D NULL;
+  char **param_vals =3D NULL;
+  grub_size_t param_dict_len =3D 0;
+  grub_size_t param_dict_pos =3D 0;
+  splitter_state_t splitter_state =3D 0;
+  char current_char =3D '\0';
+  grub_size_t i =3D 0;
+
+  s =3D grub_malloc (sizeof (parser_state_t));
+  if (s =3D=3D NULL)
+    goto cleanup_final;
+
+  /*
+   * The following algorithm is used to parse the Xen command line:
+   *
+   * - The command line is split into space-separated words.
+   *   - Single and double quotes may be used to suppress the splitting
+   *     behavior of spaces.
+   *   - Double quotes are appended to the current word verbatim if they
+   *     appear within a single-quoted string portion, and vice versa.
+   *   - Backslashes may be used to cause the next character to be
+   *     appended to the current word verbatim. This is only useful when
+   *     used to escape quotes, spaces, and backslashes, but for simplicity
+   *     we allow backslash-escaping anything.
+   * - After splitting the command line into words, each word is checked to
+   *   see if it contains an equals sign.
+   *   - If it does, it is split on the equals sign into a key-value pair.=
 The
+   *     key is then treated as an variable name, and the value is treated=
 as
+   *     the variable's value.
+   *   - If it does not, the entire word is treated as a variable name. The
+   *     variable's value is implicitly considered to be `1`.
+   * - All variables detected on the command line are checked to see if th=
eir
+   *   names begin with the string `xen_grub_env_`. Variables that do not =
pass
+   *   this check are discarded, variables that do pass this check are
+   *   exported so they are available to the GRUB configuration.
+   */
+
+  s->current_word_len =3D PARSER_BASE_WORD_SIZE;
+  s->current_word =3D grub_malloc (s->current_word_len);
+  if (s->current_word =3D=3D NULL)
+    goto cleanup_main;
+
+  for (i =3D 0; i < GRUB_XEN_MAX_GUEST_CMDLINE; i++)
+    {
+      if (cmdline[i] =3D=3D '\0')
+        {
+          cmdline_valid =3D true;
+          break;
+        }
+    }
+
+  if (cmdline_valid =3D=3D false)
+    {
+      grub_error (GRUB_ERR_BAD_ARGUMENT,
+		  "command line from Xen is not NUL-terminated");
+      grub_print_error ();
+      goto cleanup_main;
+    }
+
+  cmdline_len =3D grub_strlen (cmdline);
+  for (i =3D 0; i < cmdline_len; i++)
+    {
+      current_char =3D cmdline[i];
+
+      /*
+       * If the previous character was a backslash, append the current
+       * character to the word verbatim
+       */
+      if (splitter_state & SPLITTER_HIT_BACKSLASH)
+        {
+          splitter_state &=3D ~SPLITTER_HIT_BACKSLASH;
+          if (append_char_to_word (s, current_char, false) =3D=3D false)
+            goto cleanup_main;
+          continue;
+        }
+
+      switch (current_char)
+        {
+        case '\\':
+          /* Backslashes escape arbitrary characters. */
+          splitter_state |=3D SPLITTER_HIT_BACKSLASH;
+          continue;
+
+        case '\'':
+          /*
+           * Single quotes suppress word splitting and double quoting until
+           * the next single quote is encountered.
+           */
+          if (splitter_state & SPLITTER_IN_DOUBLE_QUOTES)
+            {
+              if (append_char_to_word (s, current_char, false) =3D=3D fals=
e)
+                goto cleanup_main;
+              continue;
+            }
+
+          splitter_state ^=3D SPLITTER_IN_SINGLE_QUOTES;
+          continue;
+
+        case '"':
+          /*
+           * Double quotes suppress word splitting and single quoting until
+           * the next double quote is encountered.
+           */
+          if (splitter_state & SPLITTER_IN_SINGLE_QUOTES)
+            {
+              if (append_char_to_word (s, current_char, false) =3D=3D fals=
e)
+                goto cleanup_main;
+              continue;
+            }
+
+          splitter_state ^=3D SPLITTER_IN_DOUBLE_QUOTES;
+          continue;
+
+        case ' ':
+          /* Spaces separate words in the command line from each other. */
+          if (splitter_state & SPLITTER_IN_SINGLE_QUOTES ||
+              splitter_state & SPLITTER_IN_DOUBLE_QUOTES)
+            {
+              if (append_char_to_word (s, current_char, false) =3D=3D fals=
e)
+                goto cleanup_main;
+              continue;
+            }
+
+          if (append_word_to_list (s) =3D=3D false)
+            goto cleanup_main;
+          continue;
+        }
+
+      if (append_char_to_word (s, current_char, false) =3D=3D false)
+        goto cleanup_main;
+    }
+
+  if (append_word_to_list (s) =3D=3D false)
+    goto cleanup_main;
+
+  param_keys =3D grub_malloc (s->word_list_len * sizeof (char *));
+  if (param_keys =3D=3D NULL)
+    goto cleanup_main;
+  param_vals =3D grub_malloc (s->word_list_len * sizeof (char *));
+  if (param_vals =3D=3D NULL)
+    goto cleanup_main;
+
+  for (i =3D 0; i < s->word_list_len; i++)
+    {
+      char *current_word_eq_ptr;
+
+      s->current_word =3D s->word_list[i];
+      s->current_word_len =3D grub_strlen (s->current_word) + 1;
+      current_word_eq_ptr =3D grub_strchr (s->current_word, '=3D');
+
+      if (current_word_eq_ptr !=3D NULL)
+        {
+          /*
+           * Both pre_eq_len and post_eq_len represent substring lengths
+           * without a NUL terminator.
+           */
+          grub_size_t pre_eq_len =3D (grub_size_t) (current_word_eq_ptr - =
s->current_word);
+          /*
+           * s->current_word_len includes the NUL terminator, so we subtra=
ct
+           * one to get rid of the terminator, and one more to get rid of =
the
+           * equals sign.
+           */
+          grub_size_t post_eq_len =3D (s->current_word_len - 2) - pre_eq_l=
en;
+
+          if (is_key_safe (s->current_word, pre_eq_len) =3D=3D true)
+            {
+              param_dict_pos =3D param_dict_len++;
+              param_keys[param_dict_pos] =3D grub_malloc (pre_eq_len + 1);
+              if (param_keys =3D=3D NULL)
+                goto cleanup_main;
+              param_vals[param_dict_pos] =3D grub_malloc (post_eq_len + 1);
+              if (param_vals =3D=3D NULL)
+                goto cleanup_main;
+
+              grub_strncpy (param_keys[param_dict_pos], s->current_word, p=
re_eq_len);
+              grub_strncpy (param_vals[param_dict_pos],
+			    s->current_word + pre_eq_len + 1, post_eq_len);
+              param_keys[param_dict_pos][pre_eq_len] =3D '\0';
+              param_vals[param_dict_pos][post_eq_len] =3D '\0';
+            }
+        }
+      else
+        {
+          if (is_key_safe (s->current_word, s->current_word_len - 1) =3D=
=3D true)
+            {
+              param_dict_pos =3D param_dict_len++;
+              param_keys[param_dict_pos] =3D grub_malloc (s->current_word_=
len);
+              if (param_keys =3D=3D NULL)
+                goto cleanup_main;
+              param_vals[param_dict_pos] =3D grub_malloc (2);
+              if (param_vals =3D=3D NULL)
+                goto cleanup_main;
+
+              grub_strncpy (param_keys[param_dict_pos], s->current_word,
+			    s->current_word_len);
+              if (param_keys[param_dict_pos][s->current_word_len - 1] !=3D=
 '\0' )
+                {
+                  grub_error (GRUB_ERR_BUG,
+			      "NUL terminator missing from key during Xen cmdline parsing");
+                  grub_print_error ();
+                  grub_exit ();
+                }
+              grub_strcpy (param_vals[param_dict_pos], "1");
+            }
+        }
+    }
+
+  for (i =3D 0; i < param_dict_len; i++)
+    {
+      /*
+       * Find keys that start with "xen_grub_env_" and export them
+       * as environment variables.
+       */
+      if (grub_strncmp (param_keys[i],
+			"xen_grub_env_",
+			sizeof ("xen_grub_env_") - 1) !=3D 0)
+        continue;
+
+      if (grub_env_set (param_keys[i], param_vals[i]) !=3D GRUB_ERR_NONE)
+        {
+          grub_printf ("warning: could not set environment variable `%s' t=
o value `%s'\n",
+		       param_keys[i], param_vals[i]);
+          continue;
+        }
+
+      if (grub_env_export (param_keys[i]) !=3D GRUB_ERR_NONE)
+        grub_printf ("warning: could not export environment variable `%s'",
+		     param_keys[i]);
+    }
+
+ cleanup_main:
+  for (i =3D 0; i < s->word_list_len; i++)
+    grub_free (s->word_list[i]);
+
+  for (i =3D 0; i < param_dict_len; i++)
+    {
+      grub_free (param_keys[i]);
+      grub_free (param_vals[i]);
+    }
+
+  grub_free (param_keys);
+  grub_free (param_vals);
+  grub_free (s->word_list);
+
+ cleanup_final:
+  grub_free (s);
+}
diff --git a/grub-core/kern/xen/init.c b/grub-core/kern/xen/init.c
index 782ca72..69cf59f 100644
--- a/grub-core/kern/xen/init.c
+++ b/grub-core/kern/xen/init.c
@@ -581,6 +581,8 @@ grub_machine_init (void)
   grub_xendisk_init ();
=20
   grub_boot_init ();
+
+  grub_parse_xen_cmdline ();
 }
=20
 void
diff --git a/include/grub/xen.h b/include/grub/xen.h
index 91cb7cf..7f9efee 100644
--- a/include/grub/xen.h
+++ b/include/grub/xen.h
@@ -89,6 +89,8 @@ void grub_console_init (void);
 void grub_xendisk_fini (void);
 void grub_xendisk_init (void);
=20
+void grub_parse_xen_cmdline (void);
+
 #ifdef __x86_64__
 typedef grub_uint64_t grub_xen_mfn_t;
 #else
--=20
2.50.1


--Sig_/ZnIhcNgyGpUwofXD.=Muf+N
Content-Type: application/pgp-signature
Content-Description: OpenPGP digital signature

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

iQIzBAEBCgAdFiEEudh48PFXwyPDa0wGpwkWDXPHkQkFAmiRjYEACgkQpwkWDXPH
kQn+5xAAlgjplJumo0o1n94QXSoXn+01OtlfBIwAcISNvnW+yev/F/Pz+qK/e6aE
AxC+/P9weLyo0IgdYNSe22SMwgoEX89UgCU8lDkYK3Y0plDlc3QPEmEn9TlzgAwZ
WMcL7zanpfi1+tI+pUDnuyKQSzkrWeBNMHOFK37CKVjCNigNugX5G8QvrYGG2Mw/
dmPQCBiDpfiI4kZHIt8VO2A3kRCp0v1SAzs4UkWX1KG1RlEiL7Iwck59I/Mxs46p
4GMBhNvlCp24INVQExkggn5IMeVqyPEAXNp37UQyVTehCNTIYZFLxRmZy0Rg1jvc
HVI3geUauiPh3YrUPJHzrP/om9vPlcQPxSqh9Ym3ZxfNJLHwHW06292AoqYeu6HX
p2cN0YyA+wThyso0BrIQA2TcsFoDB2iLjIyMwsE1wRETt9YNogZuF2lon4TaHZQn
YJZ7ZDxmmehgQPc+hXBoznxsZV5EEWig92uMH9scHMTQMF3V5bgWmSnf8wrdBB8f
Q7Fw/iO7XeK9ISvrbv2TamGYqwP39QKstxi4OY2IjzcBrr+qYd9pgYcWX6fOmJAp
EMdyp/vsaE6wmqZcYOlqstVwt9LjHvdrBKI9m/jYXEWGCbPlNjIUB96l4K3gXdvU
Ni9cYw9/+2bgtcxdygyH7A8kD4ONUdmtND5M8Aw0LHU9SSduqbs=
=zAQ4
-----END PGP SIGNATURE-----

--Sig_/ZnIhcNgyGpUwofXD.=Muf+N--


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 06:32:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 06:32:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070015.1433676 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujBD3-0000Gy-PC; Tue, 05 Aug 2025 06:31:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070015.1433676; Tue, 05 Aug 2025 06:31: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 1ujBD3-0000Gj-LX; Tue, 05 Aug 2025 06:31:41 +0000
Received: by outflank-mailman (input) for mailman id 1070015;
 Tue, 05 Aug 2025 06:31:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=KS29=2R=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1ujBD2-0000Gc-1f
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 06:31:40 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on2062b.outbound.protection.outlook.com
 [2a01:111:f403:2414::62b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d48136a5-71c5-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 08:31:34 +0200 (CEST)
Received: from IA1PR12MB8467.namprd12.prod.outlook.com (2603:10b6:208:448::9)
 by SA1PR12MB8697.namprd12.prod.outlook.com (2603:10b6:806:385::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.20; Tue, 5 Aug
 2025 06:31:28 +0000
Received: from IA1PR12MB8467.namprd12.prod.outlook.com
 ([fe80::1633:cc45:8177:a91e]) by IA1PR12MB8467.namprd12.prod.outlook.com
 ([fe80::1633:cc45:8177:a91e%6]) with mapi id 15.20.8989.018; Tue, 5 Aug 2025
 06:31:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d48136a5-71c5-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tlqWktoYBvjdQysExzHkJ2g6fRAq/0IXwNcwM098H6qD1ETmpmzY9ixbT/KOMGB+xm6tw6zB4Z2kT6WVF77JWk0n9mKPAL4rsUoYoYAfcL0NJSC3Bv/cQkmM/77S6rnnLA3+YyVgImd6LX3BYWVpjAuLPGr6gUMuRQQL8H8g+Q02Bh8zGK8tM0pqYVy1azY0eFR6k0piDWy7ztx+2Khna6kckryfBkdgKnTLbkygcLOLrujljdZV2PtnRJnkj1HzY3s7RVyW4/Vb4ksYNHGU/RUZai91OA12ZN3ovSGfD/4vup8ace2V3b3ntCamrspvrHJ5dg683YBgCre9lqtsNA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=WRgPA7HXRRlMuHH7JUnOUjultWSweNdh4n/y+q4WFFM=;
 b=GxvcsBrWPAcy59B4L6B474XLat5qvypydb6gXbw1WU2FKN6SQKulpTnng4ioTdpcjjaxPW00vThZ/iMJogHoBt/htNRq+Q7HqQ3yl9YUdvZLQ/Dj9uV6sT348R/F4BuxRQH+MbpXIQgVx+kSC/srF9py/oHhLrgqYG5EG5lb5tm/rQk+c8r66u1jHjgA4FFMb4ODvqbbZktr/hegytUZ7a3N6HX7AkWdexHKA5UxLMt3a5ATapdrhjZCRkBBdQg+4gyDTDvdOhoJ7Q4LRN6PCIjwk+ur+VSJ7lu0rUILX7lqylmjhBTQlR1shtzco1yE2Ip6k34HpViEOzzFhDhKpw==
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=WRgPA7HXRRlMuHH7JUnOUjultWSweNdh4n/y+q4WFFM=;
 b=3RJEq98/Fi8r/VLjVsiXhTrwhwrkPIFiobSEbkE15U83b0r5rM6N3TJr5pCbTyK3NIApiiUFxOIrayxBSGBHXFs6rR1YA1bYGrpGKQIVZsZ0NdVI50AZ0HISFfY3EO4f5vzc+T1VspGQZ6JsMLpNroefdS4Cv4oXLvptfcnstV0=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	"Orzel, Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Stefano
 Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v6 11/19] xen/x86: introduce "cpufreq=amd-cppc" xen
 cmdline and amd-cppc driver
Thread-Topic: [PATCH v6 11/19] xen/x86: introduce "cpufreq=amd-cppc" xen
 cmdline and amd-cppc driver
Thread-Index: AQHb8hcjpcuBQZ3yA0mXIz4rkVtX0bQ08RmAgB1Oq3CAABUmgIABTe0g
Date: Tue, 5 Aug 2025 06:31:28 +0000
Message-ID:
 <IA1PR12MB84672B4C51012E35C09A981EE122A@IA1PR12MB8467.namprd12.prod.outlook.com>
References: <20250711035106.2540522-1-Penny.Zheng@amd.com>
 <20250711035106.2540522-12-Penny.Zheng@amd.com>
 <a11aa19e-a151-469b-a58d-bc31fc4d7e01@suse.com>
 <DM4PR12MB8451FD535917A84B3054C93CE123A@DM4PR12MB8451.namprd12.prod.outlook.com>
 <a2411fcd-d6b1-4912-b00a-b331ab472f50@suse.com>
In-Reply-To: <a2411fcd-d6b1-4912-b00a-b331ab472f50@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-08-05T06:31:22.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: IA1PR12MB8467:EE_|SA1PR12MB8697:EE_
x-ms-office365-filtering-correlation-id: ec033c0f-292f-45ff-66f7-08ddd3e9b595
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?bXhwS2EvMGx5K0JsclZkWUplbXdGb2NEQUpGOVpYWmtWdk9ock15QTJWL3Ax?=
 =?utf-8?B?UUFBWmF2M1FCQ0x1bzhIZnk2T1p4NDRLekxEWC9sbXdsUVpsdGluYmdPWTEz?=
 =?utf-8?B?UkxpTWtNLzMrc3l6dnFKMEpRc3Z0MURQdzZsckxXaUo3RzZCWWdNVFgvWXpN?=
 =?utf-8?B?cEtGVHVzKzNVUkFIV0x6OW5zUjJqOSttRXRhblM4Qk5zdWt1Q3IzaVJRSXV3?=
 =?utf-8?B?a0phUlQ2WG1HWHlqYVNhMmhrMzNzYjhodFRUT3Q0dzN6SmpRS3VGYVBIQTBh?=
 =?utf-8?B?eTU5aE83N1l0YUFwMTNKMHJISVR1ZmtmWHYraU9iQVdLc0J1QTVsU3F3M0RO?=
 =?utf-8?B?Z2h1enNvVGQ3K0xOdzlWRkEvS1VpdDY3L0hRREpsOGZyWTV1V1V3MUhJL3dJ?=
 =?utf-8?B?MVBDZGg5MVlEc2NhQnZPUHJJeFJUbTcrWGhVL2syYW12UTdIVXNQeFZ1Rm9z?=
 =?utf-8?B?SnhSVU9xbVhYUmo0aVhVM3VRSUxtbk5mb0xXaW03NmthUTk0SU04NFJ2UE0z?=
 =?utf-8?B?OFZGcjEzZVAyMGh1eGRtczJ4anZ1Y3o4SkxuczloU2JLcTFNY1JTR093V2R0?=
 =?utf-8?B?WkQvMGdjWTlVN0lEQTZkNUhSNGxlN09JRmo3cFIrOHZ1bktJdEF1aVRUMVZB?=
 =?utf-8?B?anVsenhvcCtPZTRzTDVMV0VWTU1HQUptM3grcGFvTU04eS9pa2V6YU9zcG9M?=
 =?utf-8?B?L2cwOU5VM25uemxqUHJTRENtR0hGWVNmYlVoRExmNXZhS1BNRVpmMEdqaktP?=
 =?utf-8?B?RzYyOEE5RlpkQ0FyOTl1QWRva2dQc2dGY2FEOU9rbWFWU2Y4YWtYQitQZ05S?=
 =?utf-8?B?TlBnejFSdThGS3laOUI2NUJMRnlVZmJ1VXp4YmhVS3hHY3NhWnF6RUVvemVV?=
 =?utf-8?B?QlYxK0RXdFJBS2pVc2hXS2NKMGEyQ0p3YUVRSTJLL2FRNGswTy9rRUhId0hk?=
 =?utf-8?B?OFE2ekI4dk05WGxWUU1uM0RXWW5MQUNGMnBxNlVsTVUxN1drb05wSTBTSkt3?=
 =?utf-8?B?SG5wTFNRZG5jVHU3RTRaMjMzeTJSU0MrbzJHd09rTUFPbDE4Yy9PQjNSbko1?=
 =?utf-8?B?NUltY1Q3MVFhZkx6RCtVVFRyS1A1U0YweHpmMzNrbFArMFhaOTRKWVV2cGpD?=
 =?utf-8?B?NUdhckZkZHljV2lOS2xUb254NGh2MkxRS05HRis5NzVVL0NUUks0clVKdGVo?=
 =?utf-8?B?Vy9UTTZGQVNxNXNpM2NsZmpTanNVc08yN1VOY0o0OUxtM01jT20zc2U4bkcy?=
 =?utf-8?B?bVQ3anI2bmxpb3IzQVppTWgxcm4wQTVxUm10RHdtV3RpWnZ5cHRBdFVRR0FX?=
 =?utf-8?B?ZXJvcW1ncmNtZDNNb1I4cmtPV1d2TXhpa0J1eTlmSHZ2SXhqbkh3NHBDRFBQ?=
 =?utf-8?B?RDZWQ0xOSjNiNG9GNDlHVVJqRVcwd25NWklTekJneUxsTkQ4VXNFeEx2RGps?=
 =?utf-8?B?T2paV2dXdWJEWSszbHFZK3lwRk5tVVNJRjlLaFMwbGpjTTVEeUJ0UVV4cVJp?=
 =?utf-8?B?YmNRREIwT3A0K29Ga2JBamw0S2daMnoveERmZkRjY2lkakdrREJuWnRFZVBI?=
 =?utf-8?B?Q1ZjYXlraXppeFdqbDErNE52eXhVSDVBTEhQaXlRa2dCVVdXQW1CUnNCWHFw?=
 =?utf-8?B?UmpjaVVkQVkyb2ZrL09YSFNBOW9vOGdmb0tOam9JelowZ3MzclZQU0JQalpo?=
 =?utf-8?B?RzBKRFpka1lYTEJsdUV2Tk5EY1dmeHExYTNCNmlkZmdmMElISlQ1Nzk2aXow?=
 =?utf-8?B?RnJlbW4zZFRGU2h1MnhwK0pWSWMyaEhuM1U2YVU4V3N6MjJ0a1o1bDRqakVF?=
 =?utf-8?B?VElNMkc5VjJKb0I4cXVIY1p2dUQ1UjdybWowMlM3ZGxwWGtEUjVuWDZWRk9i?=
 =?utf-8?B?di94K2MxcXFaazk5RVExRzY3QkhOY2ZrUDZDR05yMUlVZXFOR012WHJMNVdM?=
 =?utf-8?B?cWlNUHBCT1QxcnQyZkE5ZTlQdUdNYW9CS1ZnNVJ4a3d5YlU4dHhxWHkvTkw0?=
 =?utf-8?B?RE93ekdpYXhBPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA1PR12MB8467.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?SWMxYmtNOG5rS1c0RGNVTnY3eTZqdTVCQXozaEtsOFBlUGM2TWFDREljSE9T?=
 =?utf-8?B?UDFBNnlHOG5MQ3p4TUorT1RVMVZ5eWEvRzNIak5MOGZxTWdnbVNRMHFHSjUv?=
 =?utf-8?B?eHBrVzAwMXBnWVQ4S3NoRDFrMVZ5SzR4WGwzMTBWUUpVMUM4NDFqR25lZkJn?=
 =?utf-8?B?eFIvOHlZbEt1cVNoK3NDYXRJMXVoQktBVkttRHFSaUZVTkp4Vi9OMGl5YXFz?=
 =?utf-8?B?VGRPZlVNYU1QS2dyYkVxb0w2Q3JsYWFmc2tTT2V5T1h1dTNta1NLdTUwcXNG?=
 =?utf-8?B?N1M1T2ZTcklIaExMVHlzMm5IRXRQWTZUamk4MXBtVjA2MFJhbkt6d0tiM1Rv?=
 =?utf-8?B?MjB6TXFlak1WN1ZoOGhWWmtkSStMUVdyZjROY2c1bzBaVnRUTVRNaHRvVEVR?=
 =?utf-8?B?ckVTaktDK2lFNVdIMVVKeVMwT1JaTEJRc3BidG00UGY0eVNGdzhQWjBQMGwz?=
 =?utf-8?B?QVI4V1gwU0RUYVczYUZGK0VaV0FHeVZ1Z2RWdUh4Y0s0bE9jeEFhR1hlVHJI?=
 =?utf-8?B?OUNUeUxEUmNxcm5FbFM1QXo1K3htS3FlNVluWHlONDh0UTR2UGUxQ0xISmJB?=
 =?utf-8?B?bFRLRnEyblJTYnpxbVcySk1BWGlPWGErMjhWMU1JaWhPZk8vN0VvMzl3eTdp?=
 =?utf-8?B?TWt3djB6WWJxbUxYTCt6ZFlSYUNjckllbVVxc1pFK1YvbFltak1BN21TVUJE?=
 =?utf-8?B?WmxKZXR1c1pjMkp4MVJ6cHVvc3BpNkNPRU1Cb2tRdTM0SVJ2TnBzZzBwMHZt?=
 =?utf-8?B?YkZUZFB6YmVZbTZGY0o1ZXd5cTdqVzZ1WDV1YlBSdmNZamhwNU0zbmJaNldu?=
 =?utf-8?B?TlhBMGtKTUdlRFd3bUZHYXNGQXM0YkdSTDlQUWpTNjN2Y25zWDNXOXZqYXVE?=
 =?utf-8?B?NWtPOFA5OUQ5WVlTYkhsK2RIcm1McFU5bXdiUE5CNW4zb3NMbE5FbnozSCtS?=
 =?utf-8?B?b21LTnIyamJXQTdFa0pQUlVSV3NjbjhQWnBOQWVMSE9wVVR4eUwydEQ4aFBX?=
 =?utf-8?B?eXMzN3lkMklpTy9nZGNTZHhQdGZ2OXo3NkJkUGd5MllNRzJ0UTdLeENpNjNC?=
 =?utf-8?B?c3VhK05uT0JUNUYwcXBTNzR2eDJ1OGxaNjJHbzcyRFB6OEJyZVdOVVNhbm5i?=
 =?utf-8?B?NUxwZGU2MjZlY012eEcxeHYrNXlid1RraUpPcndmYUUxeGRtNENScnBvbytu?=
 =?utf-8?B?M0Nicjc4NEtyNDNoemNoRWdkamZnR0JhcUZHQVBVYnpWcVdXRG1PdnRHWDhH?=
 =?utf-8?B?NndOUVNaUUxMMm55anhTYzU1Yk41cDhRZHVFVnpwanlOR3VXNDhLcWN2V3VS?=
 =?utf-8?B?YVJvOVJaN0ZYWnc1NHBtMW9zbVNweEwwd2pvV01EUHZtL2FuRzk4ek1JOFlv?=
 =?utf-8?B?ekg0UDNlT3pwWUxQdjgwZ3RSNjJmSENBdEpIRTZlaDYzQ2xicWF1WXdrSDVt?=
 =?utf-8?B?VGE4eWtsM05sQTJ0S0dNUUszWFVYbFlTYU9ma3U0T2owOGRjK24zcmErVHhr?=
 =?utf-8?B?SFFrSEpEV2QxZlFVYXdVRE5YNy9qWFNaQmwrN0JVZktMVEh6Z1g1a1R4Z0xL?=
 =?utf-8?B?UFN3ZlVnWDdmVUZRVnFzLy83bGdmTkFHdDRyZmhXTnVUQXFTaUVFTVdXdXNW?=
 =?utf-8?B?YVpSa0xVVCtOTjVIa2lHaThERnhMYzREdi9YTTJZSnpzQy9ybWlsL21SUVFV?=
 =?utf-8?B?VUhPRUVqMzc4aTVzSVBKN2dNQnpEOEJ5MTMxYXFQTVB6Ry9kTFlzb3cycGtW?=
 =?utf-8?B?YU9CclNzNG1XLzV6U0Mvbnc1TVZ6L2FoTmVLbTUxV0daNzJCSCtkd3MyUWVY?=
 =?utf-8?B?Z2lCc3VxMC9vUERaZjVwNndBNk1WU0ZQT290N0d3TWxpdUtqMnZNelpubjdU?=
 =?utf-8?B?U0xCeFJPOVlleEdvMDEzZ0xDcUptZW5aTVgxbG5XdjB5RG5Xd3FsSC9IQTlj?=
 =?utf-8?B?RW5zSDNFSVcwd1E2MTc0UFpxR3ZUMUllcFk4bURGUjRPZkc2c2FYNWx2Zy9W?=
 =?utf-8?B?Ui82N3VKb3ZLMFdBVjRaQ0k5OU9aYmpsQ2ZKRkxxY00vNGl5ZFlpeDd3MDRH?=
 =?utf-8?B?bE9EeFB0VFhPQkRsMzkvVnFsWExVZkxhRFNvUDBaem5kRk02SDRnTjJyRU9i?=
 =?utf-8?Q?VJcM=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: IA1PR12MB8467.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ec033c0f-292f-45ff-66f7-08ddd3e9b595
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Aug 2025 06:31:28.3601
 (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: QoiAKuyNhoYKJE5aHVnd7WdeCU+MgsnvTH4W56f6yQCWtFAr1j2UCSmMdFkzhKNWsS+giHX4df3u3vfN7F/Mng==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB8697

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IE1vbmRheSwgQXVndXN0IDQsIDIwMjUg
NDo0OCBQTQ0KPiBUbzogUGVubnksIFpoZW5nIDxwZW5ueS56aGVuZ0BhbWQuY29tPg0KPiBDYzog
SHVhbmcsIFJheSA8UmF5Lkh1YW5nQGFtZC5jb20+OyBBbmRyZXcgQ29vcGVyDQo+IDxhbmRyZXcu
Y29vcGVyM0BjaXRyaXguY29tPjsgQW50aG9ueSBQRVJBUkQgPGFudGhvbnkucGVyYXJkQHZhdGVz
LnRlY2g+Ow0KPiBPcnplbCwgTWljaGFsIDxNaWNoYWwuT3J6ZWxAYW1kLmNvbT47IEp1bGllbiBH
cmFsbCA8anVsaWVuQHhlbi5vcmc+OyBSb2dlciBQYXUNCj4gTW9ubsOpIDxyb2dlci5wYXVAY2l0
cml4LmNvbT47IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz47IHhl
bi0NCj4gZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gU3ViamVjdDogUmU6IFtQQVRDSCB2
NiAxMS8xOV0geGVuL3g4NjogaW50cm9kdWNlICJjcHVmcmVxPWFtZC1jcHBjIiB4ZW4gY21kbGlu
ZQ0KPiBhbmQgYW1kLWNwcGMgZHJpdmVyDQo+DQo+IE9uIDA0LjA4LjIwMjUgMTA6MDksIFBlbm55
LCBaaGVuZyB3cm90ZToNCj4gPiBbUHVibGljXQ0KPiA+DQo+ID4+IC0tLS0tT3JpZ2luYWwgTWVz
c2FnZS0tLS0tDQo+ID4+IEZyb206IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4NCj4g
Pj4gU2VudDogVGh1cnNkYXksIEp1bHkgMTcsIDIwMjUgMTI6MDAgQU0NCj4gPj4gVG86IFBlbm55
LCBaaGVuZyA8cGVubnkuemhlbmdAYW1kLmNvbT4NCj4gPj4gQ2M6IEh1YW5nLCBSYXkgPFJheS5I
dWFuZ0BhbWQuY29tPjsgQW5kcmV3IENvb3Blcg0KPiA+PiA8YW5kcmV3LmNvb3BlcjNAY2l0cml4
LmNvbT47IEFudGhvbnkgUEVSQVJEDQo+ID4+IDxhbnRob255LnBlcmFyZEB2YXRlcy50ZWNoPjsg
T3J6ZWwsIE1pY2hhbCA8TWljaGFsLk9yemVsQGFtZC5jb20+Ow0KPiA+PiBKdWxpZW4gR3JhbGwg
PGp1bGllbkB4ZW4ub3JnPjsgUm9nZXIgUGF1IE1vbm7DqQ0KPiA+PiA8cm9nZXIucGF1QGNpdHJp
eC5jb20+OyBTdGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+Ow0KPiA+
PiB4ZW4tIGRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+ID4+IFN1YmplY3Q6IFJlOiBbUEFU
Q0ggdjYgMTEvMTldIHhlbi94ODY6IGludHJvZHVjZSAiY3B1ZnJlcT1hbWQtY3BwYyINCj4gPj4g
eGVuIGNtZGxpbmUgYW5kIGFtZC1jcHBjIGRyaXZlcg0KPiA+Pg0KPiA+PiBPbiAxMS4wNy4yMDI1
IDA1OjUwLCBQZW5ueSBaaGVuZyB3cm90ZToNCj4gPj4+IC0tLSBhL3hlbi9hcmNoL3g4Ni9hY3Bp
L2NwdWZyZXEvY3B1ZnJlcS5jDQo+ID4+PiArKysgYi94ZW4vYXJjaC94ODYvYWNwaS9jcHVmcmVx
L2NwdWZyZXEuYw0KPiA+Pj4gQEAgLTEyOCwxMiArMTI4LDE0IEBAIHN0YXRpYyBpbnQgX19pbml0
IGNmX2NoZWNrDQo+ID4+PiBjcHVmcmVxX2RyaXZlcl9pbml0KHZvaWQpDQo+ID4+Pg0KPiA+Pj4g
ICAgICBpZiAoIGNwdWZyZXFfY29udHJvbGxlciA9PSBGUkVRQ1RMX3hlbiApDQo+ID4+PiAgICAg
IHsNCj4gPj4+ICsgICAgICAgIHVuc2lnbmVkIGludCBpID0gMDsNCj4gPj4NCj4gPj4gUG9pbnRs
ZXNzIGluaXRpYWxpemVyOyBib3RoIGZvcigpIGxvb3BzIHNldCBpIHRvIDAuIEJ1dCBhbHNvIHNl
ZSBmdXJ0aGVyIGRvd24uDQo+ID4+DQo+ID4+PiBAQCAtMTU3LDkgKzE2NCw3MCBAQCBzdGF0aWMg
aW50IF9faW5pdCBjZl9jaGVjaw0KPiA+Pj4gY3B1ZnJlcV9kcml2ZXJfaW5pdCh2b2lkKQ0KPiA+
Pj4NCj4gPj4+ICAgICAgICAgIGNhc2UgWDg2X1ZFTkRPUl9BTUQ6DQo+ID4+PiAgICAgICAgICBj
YXNlIFg4Nl9WRU5ET1JfSFlHT046DQo+ID4+PiAtICAgICAgICAgICAgcmV0ID0gSVNfRU5BQkxF
RChDT05GSUdfQU1EKSA/IHBvd2Vybm93X3JlZ2lzdGVyX2RyaXZlcigpIDogLQ0KPiA+PiBFTk9E
RVY7DQo+ID4+PiArICAgICAgICAgICAgaWYgKCAhSVNfRU5BQkxFRChDT05GSUdfQU1EKSApDQo+
ID4+PiArICAgICAgICAgICAgew0KPiA+Pj4gKyAgICAgICAgICAgICAgICByZXQgPSAtRU5PREVW
Ow0KPiA+Pj4gKyAgICAgICAgICAgICAgICBicmVhazsNCj4gPj4+ICsgICAgICAgICAgICB9DQo+
ID4+PiArICAgICAgICAgICAgcmV0ID0gLUVOT0VOVDsNCj4gPj4NCj4gPj4gVGhlIGNvZGUgc3Ry
dWN0dXJlIGlzIHN1ZmZpY2llbnRseSBkaWZmZXJlbnQgZnJvbSB0aGUgSW50ZWwNCj4gPj4gY291
bnRlcnBhcnQgZm9yIHRoaXMgdG8gcGVyaGFwcyBiZXR0ZXIgbW92ZSAuLi4NCj4gPj4NCj4gPj4+
ICsgICAgICAgICAgICBmb3IgKCBpID0gMDsgaSA8IGNwdWZyZXFfeGVuX2NudDsgaSsrICkNCj4g
Pj4+ICsgICAgICAgICAgICB7DQo+ID4+PiArICAgICAgICAgICAgICAgIHN3aXRjaCAoIGNwdWZy
ZXFfeGVuX29wdHNbaV0gKQ0KPiA+Pj4gKyAgICAgICAgICAgICAgICB7DQo+ID4+PiArICAgICAg
ICAgICAgICAgIGNhc2UgQ1BVRlJFUV94ZW46DQo+ID4+PiArICAgICAgICAgICAgICAgICAgICBy
ZXQgPSBwb3dlcm5vd19yZWdpc3Rlcl9kcml2ZXIoKTsNCj4gPj4+ICsgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOw0KPiA+Pj4gKw0KPiA+Pj4gKyAgICAgICAgICAgICAgICBjYXNlIENQVUZSRVFf
YW1kX2NwcGM6DQo+ID4+PiArICAgICAgICAgICAgICAgICAgICByZXQgPSBhbWRfY3BwY19yZWdp
c3Rlcl9kcml2ZXIoKTsNCj4gPj4+ICsgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KPiA+Pj4g
Kw0KPiA+Pj4gKyAgICAgICAgICAgICAgICBjYXNlIENQVUZSRVFfbm9uZToNCj4gPj4+ICsgICAg
ICAgICAgICAgICAgICAgIHJldCA9IDA7DQo+ID4+PiArICAgICAgICAgICAgICAgICAgICBicmVh
azsNCj4gPj4+ICsNCj4gPj4+ICsgICAgICAgICAgICAgICAgZGVmYXVsdDoNCj4gPj4+ICsgICAg
ICAgICAgICAgICAgICAgIHByaW50ayhYRU5MT0dfV0FSTklORw0KPiA+Pj4gKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJVbnN1cHBvcnRlZCBjcHVmcmVxIGRyaXZlciBmb3IgdmVuZG9yIEFN
RCBvciBIeWdvblxuIik7DQo+ID4+PiArICAgICAgICAgICAgICAgICAgICBicmVhazsNCj4gPj4N
Cj4gPj4gLi4uIGhlcmUuDQo+ID4+DQo+ID4NCj4gPiBBcmUgd2Ugc3VnZ2VzdGluZyBtb3ZpbmcN
Cj4gPiAiDQo+ID4gICAgICAgICBpZiAoICFJU19FTkFCTEVEKENPTkZJR19BTUQpICkNCj4gPiAg
ICAgICAgIHsNCj4gPiAgICAgICAgICAgICAgICAgcmV0ID0gLUVOT0RFVjsNCj4gPiAgICAgICAg
ICAgICAgICAgYnJlYWs7DQo+ID4gICAgICAgICB9DQo+ID4gIiBoZXJlPyBJbiB3aGljaCBjYXNl
LCBXaGVuIENPTkZJR19BTUQ9biBhbmQgdXNlcnMgZG9lc24ndCBwcm92aWRlDQo+ID4gImNwdWZy
ZXE9eHh4Iiwgd2Ugd2lsbCBoYXZlIGNwdWZyZXFfeGVuX2NudCBpbml0aWFsaXplZCBhcyAxIGFu
ZA0KPiA+IGNwdWZyZXFfeGVuX29wdHNbMF0gPSBDUFVGUkVRX3hlbi4gcG93ZXJub3dfcmVnaXN0
ZXJfZHJpdmVyKCkgaGVuY2UNCj4gPiBnZXRzIGludm9rZWQuIFRoZSB0aGluZyBpcyB0aGF0IHdl
IGRvbid0IGhhdmUgc3R1YiBmb3IgaXQgYW5kIGl0IGlzDQo+ID4gY29tcGlsZWQgdW5kZXIgQ09O
RklHX0FNRCBJIHN1Z2dlc3QgdG8gY2hhbmdlIHRvIHVzZSAjaWZkZWYgQ09ORklHX0FNRA0KPiA+
IGNvZGUgd3JhcHBpbmcNCj4gPg0KPiA+Pj4gKyAgICAgICAgICAgICAgICB9DQo+ID4+PiArDQo+
ID4+PiArICAgICAgICAgICAgICAgIGlmICggIXJldCB8fCByZXQgPT0gLUVCVVNZICkNCj4gPj4+
ICsgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KPiA+Pj4gKyAgICAgICAgICAgIH0NCj4gPj4+
ICsNCj4gPj4+ICAgICAgICAgICAgICBicmVhazsNCj4gPj4+ICAgICAgICAgIH0NCj4gPj4+ICsN
Cj4gPj4+ICsgICAgICAgIC8qDQo+ID4+PiArICAgICAgICAgKiBBZnRlciBzdWNjZXNzZnVsIGNw
dWZyZXEgZHJpdmVyIHJlZ2lzdGVyYXRpb24sDQo+ID4+IFhFTl9QUk9DRVNTT1JfUE1fQ1BQQw0K
PiA+Pj4gKyAgICAgICAgICogYW5kIFhFTl9QUk9DRVNTT1JfUE1fUFggc2hhbGwgYmVjb21lIGV4
Y2x1c2l2ZSBmbGFncy4NCj4gPj4+ICsgICAgICAgICAqLw0KPiA+Pj4gKyAgICAgICAgaWYgKCAh
cmV0ICkNCj4gPj4+ICsgICAgICAgIHsNCj4gPj4+ICsgICAgICAgICAgICBBU1NFUlQoaSA8IGNw
dWZyZXFfeGVuX2NudCk7DQo+ID4+PiArICAgICAgICAgICAgc3dpdGNoICggY3B1ZnJlcV94ZW5f
b3B0c1tpXSApDQo+ID4+DQo+ID4+IEhtbSwgdGhpcyBpcyB1c2luZyB0aGUgdGhlIGluaXRpYWxp
emVyIG9mIGkgdGhhdCBJIGNvbW1lbnRlZCBvbi4gSQ0KPiA+PiB0aGluayB0aGVyZSdzIGFub3Ro
ZXIgZGVmYXVsdDogY2FzZSBtaXNzaW5nLCB3aGVyZSB5b3Ugc2ltcGx5ICJyZXR1cm4gMCIgKHRv
DQo+IHJldGFpbiBwcmlvciBiZWhhdmlvcikuDQo+ID4+IEJ1dCBhZ2FpbiBzZWUgYWxzbyB5ZXQg
ZnVydGhlciBkb3duLg0KPiA+Pg0KPiA+Pg0KPiA+Pj4gKyAgICAgICAgICAgIC8qDQo+ID4+PiAr
ICAgICAgICAgICAgICogTm8gY3B1ZnJlcSBkcml2ZXIgZ2V0cyByZWdpc3RlcmVkLCBjbGVhciBi
b3RoDQo+ID4+PiArICAgICAgICAgICAgICogWEVOX1BST0NFU1NPUl9QTV9DUFBDIGFuZCBYRU5f
UFJPQ0VTU09SX1BNX1BYDQo+ID4+PiArICAgICAgICAgICAgICovDQo+ID4+PiArICAgICAgICAg
ICAgIHhlbl9wcm9jZXNzb3JfcG1iaXRzICY9IH4oWEVOX1BST0NFU1NPUl9QTV9DUFBDIHwNCj4g
Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5fUFJPQ0VTU09S
X1BNX1BYKTsNCj4gPj4NCj4gPj4gWWV0IG1vcmUgaG1tIC0gdGhpcyBwYXRoIHlvdSB3YW50IHRv
IGdldCB0aHJvdWdoIGZvciB0aGUgY2FzZSBtZW50aW9uZWQgYWJvdmUuDQo+ID4+IEJ1dCBvbmx5
IHRoaXMgY29kZTsgc3BlY2lmaWNhbGx5IG5vdCB0aGUgInN3aXRjaCAoDQo+ID4+IGNwdWZyZXFf
eGVuX29wdHNbaV0gKSIsIHdoaWNoIHJlYWxseSBpcyAic3dpdGNoICggY3B1ZnJlcV94ZW5fb3B0
c1swXQ0KPiA+PiApIiBpbiB0aGF0IGNhc2UsIGFuZCB0aGF0J3MgcHJldHR5IGNsZWFybHkgd3Jv
bmcgdG8gZXZhbHVhdGUgaW4gdGhlbi4NCj4gPg0KPiA+IENvcnJlY3QgbWUgaWYgSSB1bmRlcnN0
YW5kIHlvdSB3cm9uZ2x5Og0KPiA+IFRoZSBhYm92ZSAiY2FzZSBtaXNzaW5nIiAsIGFyZSB3ZSB0
YWxraW5nIGFib3V0IGlzIGVudGVyaW5nICJjYXNlDQo+IENQVUZSRVFfbm9uZSIgPw0KPiA+IElN
TywgaXQgbWF5IG5ldmVyIGJlIGVudGVyZWQuIElmIHVzZXJzIGRvZXNuJ3QgcHJvdmlkZSAiY3B1
ZnJlcT14eHgiLCB3ZSB3aWxsDQo+IGhhdmUgY3B1ZnJlcV94ZW5fY250IGluaXRpYWxpemVkIGFz
IDEgYW5kIGNwdWZyZXFfeGVuX29wdHNbMF0gPSBDUFVGUkVRX3hlbi4NCj4gVGhhdCBpcywgd2Ug
d2lsbCBoYXZlIHB4IHN0YXRlcyBhcyBkZWZhdWx0IGRyaXZlci4gRXZlbiBpZiB3ZSBoYXZlIGZh
aWxlZCBweC1kcml2ZXINCj4gaW5pdGlhbGl6YXRpb24sIHdpdGggY3B1ZnJlcV94ZW5fY250IGxp
bWl0ZWQgdG8gMSwgd2Ugd2lsbCBub3QgZW50ZXIgQ1BVRlJFUV9ub25lLg0KPiA+IENQVUZSRVFf
bm9uZSBvbmx5IGNvdWxkIGJlIHNldCB3aGVuIHVzZXJzIGV4cGxpY2l0bHkgc2V0DQo+ID4gImNw
dWZyZXE9ZGlzYWJsZWQvbm9uZS8wIiwgYnV0IGluIHdoaWNoIGNhc2UsIGNwdWZyZXFfY29udHJv
bGxlciB3aWxsDQo+ID4gYmUgc2V0IHdpdGggRlJFUUNUTF9ub25lLiBBbmQgdGhlIHdob2xlIGNw
dWZyZXFfZHJpdmVyX2luaXQoKSBpcyB1bmRlcg0KPiA+ICIgY3B1ZnJlcV9jb250cm9sbGVyID09
IEZSRVFDVExfeGVuICIgY29uZGl0aW9uIE9yICJjYXNlIG1pc3NpbmciIGlzDQo+ID4gcmVmZXJy
aW5nIGVudGVyaW5nIGRlZmF1bHQgY2FzZT8gSW4gd2hpY2ggY2FzZSwgd2Ugd2lsbCBoYXZlIC1F
Tk9FTlQNCj4gPiBlcnJuby4gQXMgd2UgaGF2ZSByZXQ9LUVOT0VOVCBpbiB0aGUgdmVyeSBiZWdp
bm5pbmcNCj4NCj4gU29ycnksIHRoaXMgaXMgaGFyZCB0byBmb2xsb3cuIFBsdXMgSSB0aGluayBJ
IG1hZGUgdGhlIG1haW4gcmVxdWlyZW1lbnQgcXVpdGUNCj4gY2xlYXI6IFlvdSB3YW50IHRvICJy
ZXRhaW4gcHJpb3IgYmVoYXZpb3IiIGZvciBhbGwgY2FzZXMgeW91IGRvbid0IGRlbGliZXJhdGVs
eSBjaGFuZ2UNCj4gdG8gYWNjb21tb2RhdGUgdGhlIG5ldyBkcml2ZXIuIFBsdXMgeW91IHdhbnQg
dG8gd2F0Y2ggb3V0IGZvciBwcmUtIGV4aXN0aW5nDQo+IGluY29ycmVjdCBiZWhhdmlvcjogUmF0
aGVyIHRoYW4gcHJvbGlmZXJhdGluZyBhbnksIHN1Y2ggd291bGQgd2FudCBhZGp1c3RpbmcuDQo+
DQoNCkkgd2FzIHRyeWluZyB0byBmb2xsb3cgInRoZXJlJ3MgYW5vdGhlciBkZWZhdWx0OiBjYXNl
IG1pc3NpbmcsIHdoZXJlIHlvdSBzaW1wbHkgInJldHVybiAwIiAodG8gcmV0YWluIHByaW9yIGJl
aGF2aW9yICkgIiwNClRoZSBtaXNzaW5nICJkZWZhdWx0IDoiIGlzIHJlZmVycmluZyB0aGUgb25l
IGZvciAic3dpdGNoICggYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yICkiPyAoSSB0aG91Z2h0IGl0
IHJlZmVycmVkICIgc3dpdGNoICggY3B1ZnJlcV94ZW5fb3B0c1tpXSApICIgLi4uLikNCkl0IGlz
IGEgcHJlLSBleGlzdGluZyBpbmNvcnJlY3QgYmVoYXZpb3Igd2hpY2ggSSBzaGFsbCBjcmVhdGUg
YSBuZXcgY29tbWl0IHRvIGZpeCBpdCBmaXJzdGx5DQpJJ2xsIGFkZCBhbiAtRU5PRU5UUlkgaW5p
dGlhbGl6ZXIgZm9yIHJldCBhdCB0aGUgdmVyeSBiZWdpbm5pbmcgLCBhbmQgY29tcGxlbWVudCB0
aGUgbWlzc2luZyBkZWZhdWx0OiBlbnRyeSB3aXRoICJVbnN1cHBvcnRlZCB2ZW5kb3IuLi4iIGVy
cm9yIGxvZw0KDQo+IEphbg0K


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 06:58:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 06:58:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070026.1433685 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujBcd-0003K6-QS; Tue, 05 Aug 2025 06:58:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070026.1433685; Tue, 05 Aug 2025 06:58: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 1ujBcd-0003Jz-NH; Tue, 05 Aug 2025 06:58:07 +0000
Received: by outflank-mailman (input) for mailman id 1070026;
 Tue, 05 Aug 2025 06:40:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9bOj=2R=bounce.vates.tech=bounce-md_30504962.6891a755.v1-35fa034925814b74bbe826b3e4cc14e1@srs-se1.protection.inumbo.net>)
 id 1ujBLW-0001xH-Fx
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 06:40:26 +0000
Received: from mail333.us4.mandrillapp.com (mail333.us4.mandrillapp.com
 [205.201.137.77]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0f6c5301-71c7-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 08:40:22 +0200 (CEST)
Received: from pmta17.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail333.us4.mandrillapp.com (Mailchimp) with ESMTP id 4bx3hP3S8yzNCd9N3
 for <xen-devel@lists.xenproject.org>; Tue,  5 Aug 2025 06:40:21 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 35fa034925814b74bbe826b3e4cc14e1; Tue, 05 Aug 2025 06:40: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>
X-Inumbo-ID: 0f6c5301-71c7-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1754376021; x=1754646021;
	bh=qCzkPd8313LLSTfHiY3PPprP7+lFyqmaCrjYFGWt89U=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=E1dQH8sgePmZg9I40VxyEGZYheaFCMNARcM516aD/oA3jYcbGWCEdLnRqXkadTwrB
	 kwCYflObQCbQesWQiAJRLXnwNUZ6DFHpr6C0DxeFWjkBENwwixZcnrZoxbqgF7tadr
	 9uHRPuvMQOYP2Yr0WsCN2QQftMXCTgKVhpLmWppWOY3IqUy6mcmNvZZEUv7+Ll6D5n
	 C5JKMFkn1vN46Pc+IF2gFlYjIpSb39qx7U8J4dGClCtMWDdUYztZCmkUzdrzW0DJGx
	 t46BdVjO/5SpuAZB5Ld++FOwLXgKo1DlVnzn8Np6dYJ2Oe1iep8t1HC8/1fSPgp8u6
	 +XVEgDdJAW5ig==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1754376021; x=1754636521; i=andriy.sultanov@vates.tech;
	bh=qCzkPd8313LLSTfHiY3PPprP7+lFyqmaCrjYFGWt89U=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=WvYO8bJyka0BL13eVoNPkJE0EM/knL1F0o8JOIDodjkjqo2v8f2/2AmhdjuAGtoNJ
	 3o5poJEklRp+KwHUf0cnJG0EvDih5SJ5O7hZH6eCEWPIxx45pETqwrm4NoRXMla7zB
	 VG80o+QjCtcU8U5TtAsU0iQdw4mfG2WSCfVzx+fDi+tEB6a9AWms37SJQ3VU5MppH7
	 i5xQdu6pFBhRIWKRM5//eYSOYFM6KtlouwvGpp57+eH7/M4uhlhQlIMHXfbUo1HnNs
	 /CYa2JKrnC5JznxEpIold/HIAkl9DNNWRSOEGGMSLUsmYgOiALrv0KhLii+ESgbNjJ
	 GzMA2RMFEOi9g==
From: "Andriy Sultanov" <andriy.sultanov@vates.tech>
Subject: =?utf-8?Q?Re:=20[RFC=20PATCH=20v1=2005/10]=20pmu.h:=20introduce=20a=20stacktrace=20area?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1754376019184
Message-Id: <1e6c430a-0932-4742-b31e-c362e922d406@vates.tech>
To: "=?utf-8?Q?Edwin=20T=C3=B6r=C3=B6k?=" <edwin.torok@cloud.com>, xen-devel@lists.xenproject.org
Cc: "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Julien Grall" <julien@xen.org>, "Stefano Stabellini" <sstabellini@kernel.org>, "Bertrand Marquis" <bertrand.marquis@arm.com>, "Volodymyr Babchuk" <Volodymyr_Babchuk@epam.com>, boris.ostrovsky@oracle.com
References: <cover.1753372928.git.edwin.torok@cloud.com> <49cbbacdc5f4fec624ae164a01eaa574aa771854.1753372928.git.edwin.torok@cloud.com>
In-Reply-To: <49cbbacdc5f4fec624ae164a01eaa574aa771854.1753372928.git.edwin.torok@cloud.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.35fa034925814b74bbe826b3e4cc14e1?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250805:md
Date: Tue, 05 Aug 2025 06:40:21 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On 7/25/25 5:07 PM, Edwin T=C3=B6r=C3=B6k wrote:

> diff --git a/xen/arch/x86/cpu/vpmu_amd.c b/xen/arch/x86/cpu/vpmu_amd.c
> index a6117dfebf..024d0c1eb7 100644
> --- a/xen/arch/x86/cpu/vpmu_amd.c
> +++ b/xen/arch/x86/cpu/vpmu_amd.c
> @@ -543,7 +543,7 @@ static const struct arch_vpmu_ops *__init common_init=
(void)
>       }
>   
>       if ( sizeof(struct xen_pmu_data) +
> -         2 * sizeof(uint64_t) * num_counters > PAGE_SIZE )
> +         2 * sizeof(uint64_t) * num_counters > MAX_XEN_PMU_DATA_SIZE)
>       {
>           printk(XENLOG_WARNING
>                  "VPMU: Register bank does not fit into VPMU shared page\=
n");
You've lost a space before the end of the parenthesis here
> diff --git a/xen/arch/x86/cpu/vpmu_intel.c b/xen/arch/x86/cpu/vpmu_intel.=
c
> index 7ce98ee42e..9c8b5c1907 100644
> --- a/xen/arch/x86/cpu/vpmu_intel.c
> +++ b/xen/arch/x86/cpu/vpmu_intel.c
> @@ -967,7 +967,7 @@ const struct arch_vpmu_ops *__init core2_vpmu_init(vo=
id)
>       pmc_quirk =3D current_cpu_data.x86 =3D=3D 6;
>   
>       if ( sizeof(struct xen_pmu_data) + sizeof(uint64_t) * fixed_pmc_cnt=
 +
> -         sizeof(struct xen_pmu_cntr_pair) * arch_pmc_cnt > PAGE_SIZE )
> +         sizeof(struct xen_pmu_cntr_pair) * arch_pmc_cnt > MAX_XEN_PMU_D=
ATA_SIZE)
>       {
>           printk(XENLOG_WARNING
>                  "VPMU: Register bank does not fit into VPMU share page\n=
");
and here
> diff --git a/xen/include/public/arch-x86/pmu.h b/xen/include/public/arch-=
x86/pmu.h
> index 5bd0aa6f77..bdc8218cbe 100644
> --- a/xen/include/public/arch-x86/pmu.h
> +++ b/xen/include/public/arch-x86/pmu.h
> @@ -129,67 +146,86 @@ struct xen_pmu_arch {
>   typedef struct xen_pmu_arch xen_pmu_arch_t;
>   DEFINE_XEN_GUEST_HANDLE(xen_pmu_arch_t);
>   
> +
>   /* Memory layout:
> -*                =E2=95=AD=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=
=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=
=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=95=
=AE
> -*                =E2=94=82 struct xen_pmu_data =E2=94=82
> -* =E2=95=92=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A7=
=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=
=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A7=E2=95=90=E2=95=90=E2=95=90=
=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=
=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=90=E2=95=95 =E2=97=81=E2=95=AE
> -* =E2=94=82 vcpu_id                                                    =
=E2=94=82  =E2=94=82
> -* =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=
=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=
=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=
=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=
=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=
=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=
=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=
=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4  =E2=94=82
> -* =E2=94=82 pcpu_id                                                    =
=E2=94=82  =E2=94=82
> -* =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=
=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=
=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=
=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=
=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=
=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=
=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=
=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4  =E2=94=82
> -* =E2=94=82 domain_id                                                  =
=E2=94=82  =E2=94=82
> -* =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=
=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=
=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=
=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=
=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=
=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=
=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=
=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4  =E2=94=82
> -* =E2=94=82=E2=96=88=E2=96=88pad=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=
=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=
=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=94=82  =E2=94=82
> -* =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2=95=
=A4=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2=95=90=E2=95=90=E2=95=90=
=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=
=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=
=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=
=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1  =E2=94=82
> -* =E2=94=82 pmu=E2=94=82 =E2=94=82 r =E2=94=82 regs             =E2=94=
=82=E2=96=88=E2=96=88pad=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=
=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=94=82  =E2=94=82
> -* =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=95=AF =E2=94=9C=E2=94=
=80=E2=94=80=E2=94=80=E2=95=AF (xen or guest)   =E2=94=82=E2=96=88=E2=96=88=
=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=
=E2=96=88=E2=96=88=E2=96=88=E2=94=82  =E2=94=82
> -* =E2=94=82      =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=
=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=
=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=
=90=E2=95=A7=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=
=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=
=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1  =E2=94=
=82
> -* =E2=94=82      =E2=94=82 pmu_flags                                    =
       =E2=94=82  =E2=94=82
> -* =E2=94=82      =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90=
=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=
=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=
=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=
=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1  =E2=94=
=82
> -* =E2=94=82      =E2=94=82 l =E2=94=82 lapic_lvtpc        =E2=94=82=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=
=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=94=82  =E2=94=82
> -* =E2=94=82      =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=95=AF =E2=96=88=
=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=94=82=E2=96=88=E2=96=88pad=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=
=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=94=82  =E2=94=82
> -* =E2=94=82      =E2=94=82     =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82=E2=96=88=
=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=
=E2=96=88=E2=96=88=E2=94=82  =E2=94=82
> -* =E2=94=82      =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90=
=E2=95=A4=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=
=95=A4=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=AA=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=
=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=
=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1  =E2=94=
=82
> -* =E2=94=82      =E2=94=82 c =E2=94=82 =E2=94=82       =E2=94=82 amd =E2=
=94=82    =E2=94=82    =E2=94=82 intel =E2=94=82         =E2=94=82=E2=96=88=
=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82  =E2=94=82
> -* =E2=94=82      =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=98 =E2=94=82=
       =E2=95=B0=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=95=AF    =
=E2=94=82    =E2=95=B0=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=
=80=E2=94=80=E2=95=AF         =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=
=E2=96=88=E2=94=82  =E2=94=82
> -* =E2=94=82      =E2=94=82     =E2=94=82 counter          =E2=94=82 fixe=
d_counters       =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=
=94=82  =E2=94=82
> -* =E2=94=82      =E2=94=82     =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=
=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=
=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=BC=E2=94=80=
=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=
=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=
=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88=E2=96=88=E2=96=88=
=E2=96=88=E2=96=88=E2=94=82  =E2=94=82
> -* =E2=94=82      =E2=94=82     =E2=94=82 ctrls            =E2=94=82 arch=
_counters        =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=
=94=82  =E2=94=82
> -* =E2=94=82      =E2=94=82     =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=
=95=90=E2=95=90=E2=95=A4=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2=95=90=E2=95=90=E2=94=9C=E2=94=80=
=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=
=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=
=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88=E2=96=88=E2=96=88=
=E2=96=88=E2=96=88=E2=94=82  =E2=94=82
> -* =E2=94=82      =E2=94=82     =E2=94=82     =E2=94=82 regs[] =E2=94=82 =
 =E2=94=86=E2=94=82 global_ctrl          =E2=94=82=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=94=82  =E2=94=82
> -* =E2=94=82      =E2=94=82     =E2=94=82     =E2=94=94=E2=94=80=E2=94=80=
=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=95=AF  =E2=94=86=
=E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=
=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=
=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88=
=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82  =E2=94=82
> -* =E2=94=82      =E2=94=82     =E2=94=82struct           =E2=94=86=E2=94=
=82 global_ovf_ctrl      =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=94=82  =E2=94=82
> -* =E2=94=82      =E2=94=82     =E2=94=82xen_pmu_cntr_pair=E2=94=86=E2=94=
=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=
=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=
=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82  =E2=94=82
> -* =E2=94=82      =E2=94=82     =E2=94=82[counters]       =E2=94=86=E2=94=
=82 global_status        =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=94=82  =E2=94=82
> -* =E2=94=82      =E2=94=82     =E2=94=82                 =E2=94=86=E2=94=
=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=
=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=
=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82  =E2=94=82
> -* =E2=94=82      =E2=94=82     =E2=94=82                 =E2=94=86=E2=94=
=82 fixed_ctrl           =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=94=82  =E2=94=82
> -* =E2=94=82      =E2=94=82     =E2=94=82                 =E2=94=86=E2=94=
=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=
=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=
=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82  =E2=94=82
> -* =E2=94=82      =E2=94=82     =E2=94=82                 =E2=94=86=E2=94=
=82 ds_area              =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=94=82  =E2=94=82
> -* =E2=94=82      =E2=94=82     =E2=94=82                 =E2=94=86=E2=94=
=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=
=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=
=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82  =E2=94=82
> -* =E2=94=82      =E2=94=82     =E2=94=82                 =E2=94=86=E2=94=
=82 pebs_enable          =E2=94=82=E2=96=88pad=E2=96=88=E2=94=82  =E2=94=82
> -* =E2=94=82      =E2=94=82     =E2=94=82                 =E2=94=86=E2=94=
=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=
=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=
=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82  =E2=94=82
> -* =E2=94=82      =E2=94=82     =E2=94=82                 =E2=96=BD=E2=94=
=82 debugctl             =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=94=82  =E2=94=82

it looks like there is a stray space character here breaking up
the vertical lines

> -* =E2=94=82      =E2=94=82     =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=95=9E=E2=95=90=
=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2=
=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=
=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1=E2=96=88=E2=96=88=E2=96=88=
=E2=96=88=E2=96=88=E2=94=82  =E2=94=82
> -* =E2=94=82      =E2=94=82     =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82       =
=E2=94=82 regs[] =E2=94=82 =E2=94=86[0]=E2=94=82=E2=96=88=E2=96=88=E2=96=88=
=E2=96=88=E2=96=88=E2=94=82  =E2=94=82
> -* =E2=94=82      =E2=94=82     =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82       =
=E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=
=94=80=E2=95=AF =E2=94=86   =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=
=E2=96=88=E2=94=82  =E2=94=82
> -* =E2=94=82      =E2=94=82     =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 uint64_t=
         =E2=94=86   =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=
=E2=94=82  =E2=94=82
> -* =E2=94=82      =E2=94=82     =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 [fixed_c=
ounters] =E2=94=86   =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=
=E2=94=82  =E2=94=82
> -* =E2=94=82      =E2=94=82     =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82         =
         =E2=94=86   =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=
=E2=94=82  =E2=94=82
> -* =E2=94=82      =E2=94=82     =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82         =
         =E2=94=86   =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=
=E2=94=82  =E2=94=82
> -* =E2=94=82      =E2=94=82     =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=
=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=
=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=
=94=86   =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82  =
=E2=94=82
> -* =E2=94=82      =E2=94=82     =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82  struct =
         =E2=94=86   =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=
=E2=94=82  =E2=94=82
> -* =E2=94=82      =E2=94=82     =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 xen_pmu_=
cntr_pair=E2=94=86   =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=
=E2=94=82  =E2=94=82
> -* =E2=94=82      =E2=94=82     =E2=95=98=E2=95=90=E2=95=90=E2=95=90=E2=
=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1 [arch_co=
unters]  =E2=94=86   =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=
=E2=95=A1  =E2=94=82
> -* =E2=94=82      =E2=94=82                        =E2=94=82             =
     =E2=94=86   =E2=94=82     =E2=94=82  =E2=94=82
> -* =E2=94=82      =E2=94=82                        =E2=94=82             =
     =E2=96=BD   =E2=94=82     =E2=94=82  =E2=94=82
same here
> -* =E2=94=82      =E2=94=82                        =E2=95=98=E2=95=90=E2=
=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=
=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=9B     =E2=94=82  =E2=94=82
> -* =E2=94=82      =E2=95=98=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=
=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=
=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=
=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=
=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1  =E2=94=
=82
> -* =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=
=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=
=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=
=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=
=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1  =E2=94=82
> -* =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=
=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=
=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82  =E2=94=82
> -* =E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=
=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=
=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=
=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=
=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=
=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=
=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=
=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86  =E2=94=86
> -* =E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=
=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=
=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=
=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=
=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=
=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=
=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=
=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86  =E2=94=86
> -* =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=
=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=
=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82  =E2=94=82 PAGE_SIZE
> -* =E2=95=98=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=
=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=
=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=
=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=
=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=90=E2=95=9B =E2=97=81=E2=95=AF
> + *                =E2=95=AD=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=
=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=
=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=95=
=AE
> + *                =E2=94=82 struct xen_pmu_data =E2=94=82
> + * =E2=95=92=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A7=
=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=
=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A7=E2=95=90=E2=95=90=E2=95=90=
=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=
=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=90=E2=95=95 =E2=97=81=E2=95=AE
> + * =E2=94=82 vcpu_id                                                    =
=E2=94=82  =E2=94=82
> + * =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=
=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=
=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=
=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=
=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=
=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=
=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=
=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4  =E2=94=82
> + * =E2=94=82 pcpu_id                                                    =
=E2=94=82  =E2=94=82
> + * =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=
=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=
=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=
=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=
=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=
=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=
=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=
=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4  =E2=94=82
> + * =E2=94=82 domain_id                                                  =
=E2=94=82  =E2=94=82
> + * =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=
=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=
=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=
=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=
=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=
=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=
=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=
=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4  =E2=94=82
> + * =E2=94=82=E2=96=88=E2=96=88pad=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=
=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=
=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=94=82  =E2=94=82
> + * =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2=95=
=A4=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2=95=90=E2=95=90=E2=95=90=
=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=
=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=
=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=
=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1  =E2=94=82
> + * =E2=94=82 pmu=E2=94=82 =E2=94=82 r =E2=94=82 regs             =E2=94=
=82=E2=96=88=E2=96=88pad=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=
=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=94=82  =E2=94=82
> + * =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=95=AF =E2=94=9C=E2=
=94=80=E2=94=80=E2=94=80=E2=95=AF (xen or guest)   =E2=94=82=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=
=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82  =E2=94=82
> + * =E2=94=82      =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=
=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=
=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=
=90=E2=95=A7=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=
=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=
=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1  =E2=94=
=82
> + * =E2=94=82      =E2=94=82 pmu_flags                                   =
        =E2=94=82  =E2=94=82
> + * =E2=94=82      =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90=
=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=
=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=
=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=
=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1  =E2=94=
=82
> + * =E2=94=82      =E2=94=82 l =E2=94=82 lapic_lvtpc        =E2=94=82=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=
=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=94=82  =E2=94=82
> + * =E2=94=82      =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=95=AF =E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=
=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=94=82=E2=96=88=E2=96=88pad=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=
=E2=96=88=E2=96=88=E2=96=88=E2=94=82  =E2=94=82
> + * =E2=94=82      =E2=94=82     =E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82=E2=96=88=
=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=
=E2=96=88=E2=96=88=E2=94=82  =E2=94=82
> + * =E2=94=82      =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90=
=E2=95=A4=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=
=95=A4=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=AA=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=
=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=
=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1  =E2=94=
=82
> + * =E2=94=82      =E2=94=82 c =E2=94=82 =E2=94=82       =E2=94=82 amd =
=E2=94=82    =E2=94=82    =E2=94=82 intel =E2=94=82         =E2=94=82=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82  =E2=94=82
> + * =E2=94=82      =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=98 =E2=94=
=82       =E2=95=B0=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=95=AF  =
  =E2=94=82    =E2=95=B0=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=
=80=E2=94=80=E2=95=AF         =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=
=E2=96=88=E2=94=82  =E2=94=82
> + * =E2=94=82      =E2=94=82     =E2=94=82 counter          =E2=94=82 fix=
ed_counters       =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=
=94=82  =E2=94=82
> + * =E2=94=82      =E2=94=82     =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=
=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=
=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=BC=E2=94=80=
=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=
=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=
=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88=E2=96=88=E2=96=88=
=E2=96=88=E2=96=88=E2=94=82  =E2=94=82
> + * =E2=94=82      =E2=94=82     =E2=94=82 ctrls            =E2=94=82 arc=
h_counters        =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=
=94=82  =E2=94=82
> + * =E2=94=82      =E2=94=82     =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=
=95=90=E2=95=90=E2=95=A4=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2=95=90=E2=95=90=E2=94=9C=E2=94=80=
=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=
=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=
=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88=E2=96=88=E2=96=88=
=E2=96=88=E2=96=88=E2=94=82  =E2=94=82
> + * =E2=94=82      =E2=94=82     =E2=94=82     =E2=94=82 regs[] =E2=94=82=
  =E2=94=86=E2=94=82 global_ctrl          =E2=94=82=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=94=82  =E2=94=82
> + * =E2=94=82      =E2=94=82     =E2=94=82     =E2=94=94=E2=94=80=E2=94=
=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=95=AF  =E2=94=
=86=E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=
=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=
=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82  =E2=94=82
> + * =E2=94=82      =E2=94=82     =E2=94=82struct           =E2=94=86=E2=
=94=82 global_ovf_ctrl      =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=
=E2=96=88=E2=94=82  =E2=94=82
> + * =E2=94=82      =E2=94=82     =E2=94=82xen_pmu_cntr_pair=E2=94=86=E2=
=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=
=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=
=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82  =E2=94=82
> + * =E2=94=82      =E2=94=82     =E2=94=82[counters]       =E2=94=86=E2=
=94=82 global_status        =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=
=E2=96=88=E2=94=82  =E2=94=82
> + * =E2=94=82      =E2=94=82     =E2=94=82                 =E2=94=86=E2=
=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=
=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=
=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82  =E2=94=82
> + * =E2=94=82      =E2=94=82     =E2=94=82                 =E2=94=86=E2=
=94=82 fixed_ctrl           =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=
=E2=96=88=E2=94=82  =E2=94=82
> + * =E2=94=82      =E2=94=82     =E2=94=82                 =E2=94=86=E2=
=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=
=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=
=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82  =E2=94=82
> + * =E2=94=82      =E2=94=82     =E2=94=82                 =E2=94=86=E2=
=94=82 ds_area              =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=
=E2=96=88=E2=94=82  =E2=94=82
> + * =E2=94=82      =E2=94=82     =E2=94=82                 =E2=94=86=E2=
=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=
=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=
=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82  =E2=94=82
> + * =E2=94=82      =E2=94=82     =E2=94=82                 =E2=94=86=E2=
=94=82 pebs_enable          =E2=94=82=E2=96=88pad=E2=96=88=E2=94=82  =E2=94=
=82
> + * =E2=94=82      =E2=94=82     =E2=94=82                 =E2=94=86=E2=
=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=
=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=
=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=A4=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82  =E2=94=82
> + * =E2=94=82      =E2=94=82     =E2=94=82                 =E2=96=BD=E2=
=94=82 debugctl             =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=
=E2=96=88=E2=94=82  =E2=94=82
and here
> + * =E2=94=82      =E2=94=82     =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=95=9E=E2=95=90=
=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=90=E2=
=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A4=E2=95=
=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1=E2=96=88=E2=96=88=E2=96=88=
=E2=96=88=E2=96=88=E2=94=82  =E2=94=82
> + * =E2=94=82      =E2=94=82     =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82       =
=E2=94=82 regs[] =E2=94=82 =E2=94=86[0]=E2=94=82=E2=96=88=E2=96=88=E2=96=88=
=E2=96=88=E2=96=88=E2=94=82  =E2=94=82
> + * =E2=94=82      =E2=94=82     =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82       =
=E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=
=94=80=E2=95=AF =E2=94=86   =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=
=E2=96=88=E2=94=82  =E2=94=82
> + * =E2=94=82      =E2=94=82     =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 uint64_t=
         =E2=94=86   =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=
=E2=94=82  =E2=94=82
> + * =E2=94=82      =E2=94=82     =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 [fixed_c=
ounters] =E2=94=86   =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=
=E2=94=82  =E2=94=82
> + * =E2=94=82      =E2=94=82     =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82         =
         =E2=94=86   =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=
=E2=94=82  =E2=94=82
> + * =E2=94=82      =E2=94=82     =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82         =
         =E2=94=86   =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=
=E2=94=82  =E2=94=82
> + * =E2=94=82      =E2=94=82     =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 =E2=94=
=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=
=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=
=94=86   =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82  =
=E2=94=82
> + * =E2=94=82      =E2=94=82     =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82  struct =
         =E2=94=86   =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=
=E2=94=82  =E2=94=82
> + * =E2=94=82      =E2=94=82     =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82 xen_pmu_=
cntr_pair=E2=94=86   =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=
=E2=94=82  =E2=94=82
> + * =E2=94=82      =E2=94=82     =E2=95=98=E2=95=90=E2=95=90=E2=95=90=E2=
=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1 [arch_co=
unters]  =E2=94=86   =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=
=E2=95=A1  =E2=94=82
> + * =E2=94=82      =E2=94=82                        =E2=94=82            =
      =E2=94=86   =E2=94=82     =E2=94=82  =E2=94=82
> + * =E2=94=82      =E2=94=82                        =E2=94=82            =
      =E2=96=BD   =E2=94=82     =E2=94=82  =E2=94=82
and here
> + * =E2=94=82      =E2=94=82                        =E2=95=98=E2=95=90=E2=
=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=
=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=9B     =E2=94=82  =E2=94=82
> + * =E2=94=82      =E2=95=98=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=
=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=
=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=
=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=
=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1  =E2=94=
=82
> + * =E2=95=9E=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=
=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=
=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=
=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=
=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=
=90=E2=95=90=E2=95=90=E2=95=90=E2=95=A1  =E2=94=82
> + * =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=
=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=
=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82  =E2=94=82
> + * =E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=
=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=
=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=
=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=
=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=
=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=
=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=
=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86  =E2=94=86
> + * =E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=
=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=
=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=
=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=
=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=
=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=
=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86=E2=94=
=86=E2=94=86=E2=94=86=E2=94=86=E2=94=86  =E2=94=86
> + * =E2=94=82=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=
=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=
=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=
=88=E2=96=88=E2=96=88=E2=96=88=E2=94=82  =E2=94=82
> + * |############################################################|  |
> + * |##########.------------------------------.##################|  |
> + * |##########| struct xen_pmu_hv_stacktrace |##################|  |
> + * +=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+  |
> + * |                              ^ [stacktrace_nr-1]           |  |
> + * |                              :                             |  |
> + * | stacktrace[stacktrace_nr]    : [0]                         |  |
> + * +------------------------------------------------------------+  |
> + * | stacktrace_nr                                              |  |
> + * +------------------------------------------------------------+  |
> + * | guest_domain_id                                            |  |
> + * +------------------------------------------------------------+  |
> + * |##pad#######################################################|  |
> + * +=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+  |
> + * | guest | | r | regs             |##pad######################|  |
> + * +-------. +---. (xen or guest)   |###########################|  |
> + * |         +=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+  |
> + * |         |##pad2############################################|  | PAG=
E_SIZE
> + * +=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+ <.
>   */
>   
>   #endif /* __XEN_PUBLIC_ARCH_X86_PMU_H__ */


Andriy Sultanov | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Tue Aug 05 07:39:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 07:39:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070048.1433695 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujCGB-0000O9-Sr; Tue, 05 Aug 2025 07:38:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070048.1433695; Tue, 05 Aug 2025 07:38: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 1ujCGB-0000O2-Q5; Tue, 05 Aug 2025 07:38:59 +0000
Received: by outflank-mailman (input) for mailman id 1070048;
 Tue, 05 Aug 2025 07:38:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=j2i0=2R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujCGA-0000Nw-7c
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 07:38:58 +0000
Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com
 [2a00:1450:4864:20::635])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3c2cc588-71cf-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 09:38:53 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-ae3b336e936so845509366b.3
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 00:38:53 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a2436easm857845666b.135.2025.08.05.00.38.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Aug 2025 00:38: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>
X-Inumbo-ID: 3c2cc588-71cf-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754379532; x=1754984332; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=qLoBfqbr4yIKmzit5NTC4INwlOdLMWn/X9rtxZEv4Vw=;
        b=N0B4CZs2IGGiYBhfakru6FuR7a+FViHdT0EBiPZ0rfhcpVDZbyMGRHfB5J57ZoV9fG
         LjQZPPaSrJGNTmHRDPiFByiRZWqgTXhgDL+MLyj7q0ZPdU/5kfU6q0ZnbmJA6hdJYAov
         VTOmir78ek4jux2c8HigJwg9Ay/gPmCCFhzwmblbHI9rUqFWIdMPpNB+atABg7k+e02d
         dMEB97oxi77Ymi0EHyXlLb8MOQxIQ8CM/ODSln0rK7q2cmkk5B+aV4/4y0F/5fxaoVj3
         bff/QZfqyGeK6HdBryaWe0U8nPmb8biRPsk82IeDyL3v8zARKvSquHh1zZYbK8b1ZW0l
         jRbA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754379532; x=1754984332;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qLoBfqbr4yIKmzit5NTC4INwlOdLMWn/X9rtxZEv4Vw=;
        b=efdNsBaqLTRAU5rhpDncARdYUQUIhvJdJX63tGOtRm78DHNH033jBDUani66ZeDbA/
         t6SkDz+q5fDopK/HteEonUq8ANfv3qhaubr7hGCP0oOvbYPI8Enrd8PtihrS+hPW5aH1
         ioivrRG0OxEm/Rs+xi5dhyCLSJM6mAwfsahHajgputrWB3fEe9HWRTqIHsUnzO74tfBx
         XqAAXViDsECQ201EIozLpv5WUVpnrrOQvrGJpjCfU+HkEe/AVTR+4ZvyeBQ+uHDozU8w
         egalm02/FIqrh+I7clEC48G6BoaihJ37/ZOOZsA9ZkjigKp6PjTB1wMSE5CjgRID37qY
         AF6A==
X-Forwarded-Encrypted: i=1; AJvYcCVULUVLSZuMgCo8YxKOyXSeaq+TyXcybFPkm6pZQHiLeLNDlxxF94D1QndaXkv+ewsmAD7I/i1XeuE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw6jM6PrFNzKJmtJvwSOKVikE3a79np4pqsB7M4uNUUQKEtlcqh
	vWAAK1qF/++8PsjaaRkL2nFaKcp/NueNvK4Fd8IUrKSAjCuC3zaaiHw67isFXcQxEg==
X-Gm-Gg: ASbGnctXzsFL5rUFHy8rVu4stn8A9lGbWEe8cg+wugiNu0tZmrYBvmpb0SwfuFwjL5M
	hKC2E5CIEk96qeCNl1WkU3SwjdN9rYdGommXWMmdKnYQfveaqGrWEX5e7nkYBN74wN6nzZpyAMh
	acoI5+NOhAXJAwgBZxD00gj36yFYFYBkTapqAcxac0Euuoc/9445x5yPRUzCAzzaRQLxxeVA4+3
	Ci0pRI3J6pMSqJAd0cuoDt7EKrH2M8FXAokv8ng1fRWZYjXfGo8TfeIFS3s1sUvvqYVenhS/vbz
	Hz2blgWrbfSUhB/PyrqMmnIteE5YtVGmAcfBQKhIid476C716I7wlkB6Vec627JVfghYKSlO1sG
	KvBof36W3KX+l83b5nyztl8wrXcHPZ0EfyFNC4giGk6PNIsh4CDbmR+vPW4Q/KkZAAwZFcZ42wu
	BGC3WrEssnLSbYrDzxGg==
X-Google-Smtp-Source: AGHT+IFSgAjwLv1lh6e82nmDgNhSeOWZGXHK8AvFhMKC4j3s32rcAGnZ9Cg0HxRHc8hU5IxN5jAZHQ==
X-Received: by 2002:a17:907:2dac:b0:ae6:c0a3:1606 with SMTP id a640c23a62f3a-af93ffc5afbmr1342059966b.7.1754379532565;
        Tue, 05 Aug 2025 00:38:52 -0700 (PDT)
Message-ID: <3e20688c-c125-4aa4-bc06-1fe634550f70@suse.com>
Date: Tue, 5 Aug 2025 09:38:51 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 01/25] xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE
To: "Penny, Zheng" <penny.zheng@amd.com>
Cc: "Huang, Ray" <Ray.Huang@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 "Orzel, Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20250803094738.3625269-1-Penny.Zheng@amd.com>
 <20250803094738.3625269-2-Penny.Zheng@amd.com>
 <371bc812-acdb-41ef-950b-3c9e5feea48e@suse.com>
 <DM4PR12MB84510F1F89641B672916C055E122A@DM4PR12MB8451.namprd12.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: <DM4PR12MB84510F1F89641B672916C055E122A@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.08.2025 05:38, Penny, Zheng wrote:
> [Public]
> 
>> -----Original Message-----
>> From: Jan Beulich <jbeulich@suse.com>
>> Sent: Monday, August 4, 2025 3:43 PM
>> To: Penny, Zheng <penny.zheng@amd.com>
>> Cc: Huang, Ray <Ray.Huang@amd.com>; Andrew Cooper
>> <andrew.cooper3@citrix.com>; Roger Pau MonnÃ© <roger.pau@citrix.com>;
>> Anthony PERARD <anthony.perard@vates.tech>; Orzel, Michal
>> <Michal.Orzel@amd.com>; Julien Grall <julien@xen.org>; Stefano Stabellini
>> <sstabellini@kernel.org>; xen-devel@lists.xenproject.org
>> Subject: Re: [PATCH v1 01/25] xen/x86: move domctl.o out of
>> PV_SHIM_EXCLUSIVE
>>
>> On 03.08.2025 11:47, Penny Zheng wrote:
>>> In order to fix CI error of a randconfig picking both
>>> PV_SHIM_EXCLUSIVE=y and HVM=y results in hvm.c being built, but
>>> domctl.c not being built, which leaves a few functions, like
>>> domctl_lock_acquire/release() undefined, causing linking to fail.
>>> To fix that, we intend to move domctl.o out of the PV_SHIM_EXCLUSIVE
>>> Makefile /hypercall-defs section, with this adjustment, we also need
>>> to release redundant vnuma_destroy() stub definition and paging_domctl
>>> hypercall-defs from PV_SHIM_EXCLUSIVE guardian, to not break
>>> compilation Above change will leave dead code in the shim binary
>>> temporarily and will be fixed with the introduction of CONFIG_DOMCTL.
>>>
>>> Fixes: 568f806cba4c ("xen/x86: remove "depends on
>>> !PV_SHIM_EXCLUSIVE"")
>>> Reported-by: Jan Beulich <jbeulich@suse.com>
>>> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
>>> ---
>>> v1 -> v2:
>>> - remove paging_domctl hypercall-defs
>>
>> And you've run this through a full round of testing this time, in isolation?
> 
> This commit shall be committed together with "xen/x86: complement PG_log_dirty wrapping", (I've added in change log, idk why it didn't get delivered in the mail list in the last).

And "committed together" still means the two at least build okay independently
(i.e. allowing the build-each-commit job to succeed)?

As to the missing indication thereof in the submission: Patch 01 has a revlog,
so if anything was missing there you must have added it some other way. But
the cover letter is lacking that information as well. (As indicated earlier,
to increase the chance of such a remark actually being noticed, it's best put
in both places.)

> As PG_log_dirty is disabled on PV mode, paging_domctl() will still have "undefined reference" on PV mode, which gets fixed in "xen/x86: complement PG_log_dirty wrapping".  I thought it better sits there.
> If it doesn't comply with the commit policy, I'll move according fix here.

Let me post a pair of patches dealing with part of the problem, in an imo
(longer term) more desirable way.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 07:42:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 07:42:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070057.1433706 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujCJl-0001z2-Aj; Tue, 05 Aug 2025 07:42:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070057.1433706; Tue, 05 Aug 2025 07:42: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 1ujCJl-0001yv-7j; Tue, 05 Aug 2025 07:42:41 +0000
Received: by outflank-mailman (input) for mailman id 1070057;
 Tue, 05 Aug 2025 07:42:40 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=j2i0=2R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujCJk-0001yo-4s
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 07:42:40 +0000
Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com
 [2a00:1450:4864:20::536])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c1ece5b9-71cf-11f0-a321-13f23c93f187;
 Tue, 05 Aug 2025 09:42:39 +0200 (CEST)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-60bfcada295so6652153a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 00:42: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
 a640c23a62f3a-af91a078afbsm859499766b.4.2025.08.05.00.42.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Aug 2025 00:42: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>
X-Inumbo-ID: c1ece5b9-71cf-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754379757; x=1754984557; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ORYpK1xIqGwH/q5a8JxSC0S7S9qz6mBgXkJ1X/gpIMI=;
        b=YDaZCDol/zLKZMJsTY6y6JOfWUHucytG0RJsyLZPC4n8v7ag8f56xw/h/LwQEIsSDW
         72Cr8Nq6+Vkf1fge7BgDJ8TyIBXvlP87Fp4jOURK0fbJfp8QNGV7WBX7snWskGl6AzJU
         8nwcZNY5mdCHWqQEpGPQRGrRres3hZ6ietGaMPOxFyiLZUA/smjk5COkEGq1iKVOVwoX
         Jkd3/KRdyrLOYMg3oUipQ8kNNVMPwyiz6PfcRy1+EF9an8eo4cj68j8l6fopNDEhEvSn
         +S+mHn0kDCo7Przj7flRC30EMhHx5C/VZW3rvkzM0XI28AboOpOhOIfIE0X2TYDIi81/
         tLJQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754379757; x=1754984557;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ORYpK1xIqGwH/q5a8JxSC0S7S9qz6mBgXkJ1X/gpIMI=;
        b=jlGIYd7xEdLA/N2jkJuQ9ts0uQDsJm6lo6CUtzEZPaWjTRiEA5VunVfgnqDMB7GtXR
         zrp7hb3LjyBuumhs75OHhg2VJfCtpO8lK5MjvVLp4jjNl0yiyOg7XnN1Iz1OV2VZQQkb
         IJxHsXr8FDQCznjSbngvqviVypapedzvz9r2zI9hWblJbvFkdawi3GX4MqecmkvZxVJF
         BGWNgeTnlujdUJrll5lyd5QCCgoMTcxUFHSfiyLaRHqnBBZG/tDMMaUpRk/y0Ri8Az4i
         UtdB7Lt2GR8eonAj2zlfd94F0bC1wS0qSNgFlJWr+iQS6DDokY1fLBENKLZew0lwSBsJ
         vS+Q==
X-Forwarded-Encrypted: i=1; AJvYcCU6EP2iOwsmH7giYTq7Vyv5fMW6qmJ0a/lMUJB2QBMl2RBsIv7ZWwRXT54rZ2OELwkJ1CPsRKTniGk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzOQhL7pkMw62gsUHIRX/n3sL+mxlxEHx3ouwkfhU82QDezMaVc
	ejDWDScUNXiyIb8nCuZdfCvBd74OiXhIuqQaxISapJU9JQ/6Eh6BzpfWmqGOiwvJ/Q==
X-Gm-Gg: ASbGncsABGEIK7K7TwcP/8ZWIyCCQfpyvxoiJj90A4ZOLr78BcQW6rJ2m6EGtTwgq62
	JGeTprRDE7lykZ8R890r4NA6eVWaeYWO48gZsbjXHmXZeiT+VFu3Dnb3qGo3mvAMsKjXzceQY3T
	sp/3Z7VFc9XkXKQgFeqoEQpQMSZHEOuIht4cllyQOObescUpVfF7+V4LyHTBkYvk5BQUI/lxL2B
	A7GwjdPnU1cW16jxlm76WlQ1Jllg/IkRQmsl2SOH3r5EtO9eMGcBqnHaVWcbVrxoyNvKmJiB8Bz
	V2+hKhHhJluq+C9zduV+P7WFDHmYJh5QWAtwIYiHL12Kf47O+hrWQtXfdxfZ/sKa7Qm2kTf8/s9
	52MRI7EU1Py/7FGhr+QAxGpbMirkz3zQms49BBhdP9v71bMuctRzfR+CxWr3/zhL9PFkeb7podk
	AS7nPCdAk=
X-Google-Smtp-Source: AGHT+IHusA7AiUH+Vtb7cJEupozsUWgZbL7KGssQTWRM1EJW10OjbNa+NzhwcJdIVSjYEadIiJ9EqA==
X-Received: by 2002:a17:907:7b9e:b0:ade:4339:9367 with SMTP id a640c23a62f3a-af94006f95amr1374024966b.26.1754379756979;
        Tue, 05 Aug 2025 00:42:36 -0700 (PDT)
Message-ID: <00eb26b1-de5f-4ca7-a7de-026ee33d594f@suse.com>
Date: Tue, 5 Aug 2025 09:42:35 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 11/19] xen/x86: introduce "cpufreq=amd-cppc" xen
 cmdline and amd-cppc driver
To: "Penny, Zheng" <penny.zheng@amd.com>
Cc: "Huang, Ray" <Ray.Huang@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 "Orzel, Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20250711035106.2540522-1-Penny.Zheng@amd.com>
 <20250711035106.2540522-12-Penny.Zheng@amd.com>
 <a11aa19e-a151-469b-a58d-bc31fc4d7e01@suse.com>
 <DM4PR12MB8451FD535917A84B3054C93CE123A@DM4PR12MB8451.namprd12.prod.outlook.com>
 <a2411fcd-d6b1-4912-b00a-b331ab472f50@suse.com>
 <IA1PR12MB84672B4C51012E35C09A981EE122A@IA1PR12MB8467.namprd12.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: <IA1PR12MB84672B4C51012E35C09A981EE122A@IA1PR12MB8467.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.08.2025 08:31, Penny, Zheng wrote:
> [Public]
> 
>> -----Original Message-----
>> From: Jan Beulich <jbeulich@suse.com>
>> Sent: Monday, August 4, 2025 4:48 PM
>> To: Penny, Zheng <penny.zheng@amd.com>
>> Cc: Huang, Ray <Ray.Huang@amd.com>; Andrew Cooper
>> <andrew.cooper3@citrix.com>; Anthony PERARD <anthony.perard@vates.tech>;
>> Orzel, Michal <Michal.Orzel@amd.com>; Julien Grall <julien@xen.org>; Roger Pau
>> MonnÃ© <roger.pau@citrix.com>; Stefano Stabellini <sstabellini@kernel.org>; xen-
>> devel@lists.xenproject.org
>> Subject: Re: [PATCH v6 11/19] xen/x86: introduce "cpufreq=amd-cppc" xen cmdline
>> and amd-cppc driver
>>
>> On 04.08.2025 10:09, Penny, Zheng wrote:
>>> [Public]
>>>
>>>> -----Original Message-----
>>>> From: Jan Beulich <jbeulich@suse.com>
>>>> Sent: Thursday, July 17, 2025 12:00 AM
>>>> To: Penny, Zheng <penny.zheng@amd.com>
>>>> Cc: Huang, Ray <Ray.Huang@amd.com>; Andrew Cooper
>>>> <andrew.cooper3@citrix.com>; Anthony PERARD
>>>> <anthony.perard@vates.tech>; Orzel, Michal <Michal.Orzel@amd.com>;
>>>> Julien Grall <julien@xen.org>; Roger Pau MonnÃ©
>>>> <roger.pau@citrix.com>; Stefano Stabellini <sstabellini@kernel.org>;
>>>> xen- devel@lists.xenproject.org
>>>> Subject: Re: [PATCH v6 11/19] xen/x86: introduce "cpufreq=amd-cppc"
>>>> xen cmdline and amd-cppc driver
>>>>
>>>> On 11.07.2025 05:50, Penny Zheng wrote:
>>>>> --- a/xen/arch/x86/acpi/cpufreq/cpufreq.c
>>>>> +++ b/xen/arch/x86/acpi/cpufreq/cpufreq.c
>>>>> @@ -128,12 +128,14 @@ static int __init cf_check
>>>>> cpufreq_driver_init(void)
>>>>>
>>>>>      if ( cpufreq_controller == FREQCTL_xen )
>>>>>      {
>>>>> +        unsigned int i = 0;
>>>>
>>>> Pointless initializer; both for() loops set i to 0. But also see further down.
>>>>
>>>>> @@ -157,9 +164,70 @@ static int __init cf_check
>>>>> cpufreq_driver_init(void)
>>>>>
>>>>>          case X86_VENDOR_AMD:
>>>>>          case X86_VENDOR_HYGON:
>>>>> -            ret = IS_ENABLED(CONFIG_AMD) ? powernow_register_driver() : -
>>>> ENODEV;
>>>>> +            if ( !IS_ENABLED(CONFIG_AMD) )
>>>>> +            {
>>>>> +                ret = -ENODEV;
>>>>> +                break;
>>>>> +            }
>>>>> +            ret = -ENOENT;
>>>>
>>>> The code structure is sufficiently different from the Intel
>>>> counterpart for this to perhaps better move ...
>>>>
>>>>> +            for ( i = 0; i < cpufreq_xen_cnt; i++ )
>>>>> +            {
>>>>> +                switch ( cpufreq_xen_opts[i] )
>>>>> +                {
>>>>> +                case CPUFREQ_xen:
>>>>> +                    ret = powernow_register_driver();
>>>>> +                    break;
>>>>> +
>>>>> +                case CPUFREQ_amd_cppc:
>>>>> +                    ret = amd_cppc_register_driver();
>>>>> +                    break;
>>>>> +
>>>>> +                case CPUFREQ_none:
>>>>> +                    ret = 0;
>>>>> +                    break;
>>>>> +
>>>>> +                default:
>>>>> +                    printk(XENLOG_WARNING
>>>>> +                           "Unsupported cpufreq driver for vendor AMD or Hygon\n");
>>>>> +                    break;
>>>>
>>>> ... here.
>>>>
>>>
>>> Are we suggesting moving
>>> "
>>>         if ( !IS_ENABLED(CONFIG_AMD) )
>>>         {
>>>                 ret = -ENODEV;
>>>                 break;
>>>         }
>>> " here? In which case, When CONFIG_AMD=n and users doesn't provide
>>> "cpufreq=xxx", we will have cpufreq_xen_cnt initialized as 1 and
>>> cpufreq_xen_opts[0] = CPUFREQ_xen. powernow_register_driver() hence
>>> gets invoked. The thing is that we don't have stub for it and it is
>>> compiled under CONFIG_AMD I suggest to change to use #ifdef CONFIG_AMD
>>> code wrapping
>>>
>>>>> +                }
>>>>> +
>>>>> +                if ( !ret || ret == -EBUSY )
>>>>> +                    break;
>>>>> +            }
>>>>> +
>>>>>              break;
>>>>>          }
>>>>> +
>>>>> +        /*
>>>>> +         * After successful cpufreq driver registeration,
>>>> XEN_PROCESSOR_PM_CPPC
>>>>> +         * and XEN_PROCESSOR_PM_PX shall become exclusive flags.
>>>>> +         */
>>>>> +        if ( !ret )
>>>>> +        {
>>>>> +            ASSERT(i < cpufreq_xen_cnt);
>>>>> +            switch ( cpufreq_xen_opts[i] )
>>>>
>>>> Hmm, this is using the the initializer of i that I commented on. I
>>>> think there's another default: case missing, where you simply "return 0" (to
>> retain prior behavior).
>>>> But again see also yet further down.
>>>>
>>>>
>>>>> +            /*
>>>>> +             * No cpufreq driver gets registered, clear both
>>>>> +             * XEN_PROCESSOR_PM_CPPC and XEN_PROCESSOR_PM_PX
>>>>> +             */
>>>>> +             xen_processor_pmbits &= ~(XEN_PROCESSOR_PM_CPPC |
>>>>> +                                       XEN_PROCESSOR_PM_PX);
>>>>
>>>> Yet more hmm - this path you want to get through for the case mentioned above.
>>>> But only this code; specifically not the "switch (
>>>> cpufreq_xen_opts[i] )", which really is "switch ( cpufreq_xen_opts[0]
>>>> )" in that case, and that's pretty clearly wrong to evaluate in then.
>>>
>>> Correct me if I understand you wrongly:
>>> The above "case missing" , are we talking about is entering "case
>> CPUFREQ_none" ?
>>> IMO, it may never be entered. If users doesn't provide "cpufreq=xxx", we will
>> have cpufreq_xen_cnt initialized as 1 and cpufreq_xen_opts[0] = CPUFREQ_xen.
>> That is, we will have px states as default driver. Even if we have failed px-driver
>> initialization, with cpufreq_xen_cnt limited to 1, we will not enter CPUFREQ_none.
>>> CPUFREQ_none only could be set when users explicitly set
>>> "cpufreq=disabled/none/0", but in which case, cpufreq_controller will
>>> be set with FREQCTL_none. And the whole cpufreq_driver_init() is under
>>> " cpufreq_controller == FREQCTL_xen " condition Or "case missing" is
>>> referring entering default case? In which case, we will have -ENOENT
>>> errno. As we have ret=-ENOENT in the very beginning
>>
>> Sorry, this is hard to follow. Plus I think I made the main requirement quite
>> clear: You want to "retain prior behavior" for all cases you don't deliberately change
>> to accommodate the new driver. Plus you want to watch out for pre- existing
>> incorrect behavior: Rather than proliferating any, such would want adjusting.
>>
> 
> I was trying to follow "there's another default: case missing, where you simply "return 0" (to retain prior behavior ) ",
> The missing "default :" is referring the one for "switch ( boot_cpu_data.x86_vendor )"? (I thought it referred " switch ( cpufreq_xen_opts[i] ) " ....)
> It is a pre- existing incorrect behavior which I shall create a new commit to fix it firstly
> I'll add an -ENOENTRY initializer for ret at the very beginning , and complement the missing default: entry with "Unsupported vendor..." error log

Yes, I was referring to pre-existing code which I think wants adjusting in
order to then accommodate your changes there.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 07:45:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 07:45:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070065.1433716 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujCM2-0002YX-Ov; Tue, 05 Aug 2025 07:45:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070065.1433716; Tue, 05 Aug 2025 07:45:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujCM2-0002YQ-L0; Tue, 05 Aug 2025 07:45:02 +0000
Received: by outflank-mailman (input) for mailman id 1070065;
 Tue, 05 Aug 2025 07:45:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=j2i0=2R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujCM2-0002YK-2e
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 07:45:02 +0000
Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com
 [2a00:1450:4864:20::62d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 16f83352-71d0-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 09:45:00 +0200 (CEST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-af925cbd73aso854217366b.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 00:45:00 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a21c022sm839545966b.101.2025.08.05.00.44.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Aug 2025 00:44:59 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 16f83352-71d0-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754379900; x=1754984700; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=FdZMzSXsDrV1mmOF3MncbZQOc2gkAbeQ2HEqgqfCNY8=;
        b=Gs4AEGFrOhxi5i+aKTaV1Qjv9Ojss93JqtGMHKvBCiR952c8w+3ivvtbTz3HaDKcyB
         15NJbFsrFgeFYcV2fG4Wx5NwO+OaW3+P6IuXSfgDqjHoM95YiV0YTGNW1WSIwKw3DCNG
         3uMMMHbxV2H34vCx3PzRL7kHN/csGLOHHw+ohTwYBKfWtEJzCHNFuCskEJevBXtPx77r
         mQIWCyi/gxGYYMTykoaJ3DtYprPojhhNYrjgc8JNEqndi/lI/dajDxzSFzypklirkusN
         7ZIejrKZFEMyr26FGCOIBiauT+WOSqd4vAAsqtI9IQtUgPBPZGz6pBwZjRutm2wZ2oOH
         L1Cg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754379900; x=1754984700;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=FdZMzSXsDrV1mmOF3MncbZQOc2gkAbeQ2HEqgqfCNY8=;
        b=RcLvzANBUSyXKDKLXm5/gt0wsurg+TgxhrsG+9FSI+DoY2HGsLaPOCsjFFN+Tbx93L
         tgCYintuDKhcjFdJnANbKbu2Oyb3dayWnUY4J0cD4WGuVsbMqT0LLfXPftJxi3MWH4nj
         BI1H/ReTZHhzN84pIUKUjAE2QcCw57vDgY947zGfQ8iyk0nerd+hV2+jNggmGaucmLkF
         pxseBOH7wG6hUI8u11XvJT+ZJ7MgYUGS4k/Nr4xrBoQRY/PDezx/TsJcUfk3FfOUMBTo
         YO7cg6JN65ICU211Ijx8PL0p4h+on1GuwKfvUjPKkOOfTdVdxVzMQH2bsXMFMK3uVoOi
         VlEA==
X-Forwarded-Encrypted: i=1; AJvYcCW3RW+ZzNqoZdeMIGzjk3NmRmFVG/QW70HZ679GVDjI1XdMobZl05rLx5c0J9GozHZ5tASpcvj4sbw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YywzYQXA/lfMZbmahVxcXOHnTrTTHaTP9WTllQ6pP6yoHmeUDOg
	1g79SDdmYOdHNmvSIpZnKMue9tIVOnKwcPeqa/c+TrD2/33Eh1kO4a1OpnyOYLd5aA==
X-Gm-Gg: ASbGnctp06NIZeX54goizEgoNVqhkY0mQMg5KkxxbDGGovUvxR4YHI7ZiXqtNc+eYY4
	/TasQl4Fc04p2TCMYG0i4Ojr3lS6vRt7TZ7UauDMmx4YFO0+mSiNCuEpkJpjRHAqcgC56RoinMx
	9EJMWT+n66F+l/F3aIHoM0XgcW2jk0Us4V9JGM9ksXY+5NdZ0ozSj9zfQ53GXlFQEuoiJt+SRDC
	5sEw8n1Tmfng+/9wggF+NRlXUpKSycFk+0jeZdyR20QrspSajixOAPuYaipgd9vPI1DBHkg0lVI
	r9dLDa68SPkpDsC6yA7zHTe+WtdGtnEHjhnjID0vXvM+AM+LW5yuCiKzfmc9tP1kNDVt6FA9Von
	l1m8uyFKaYd6GS0uFmSfX8ijIs2e7fXMEmSzLX0pGNYdZ6PLYeMnHTm0nWgrXeJlX86sXW3YmAR
	xMUZWE/8I=
X-Google-Smtp-Source: AGHT+IE5sKR3s7ctCaKCKmdUFPhuToLKINfbs1HiftNwg5UrRzSeZX4l30NA6Yaqmu5OOu+MSsxX8w==
X-Received: by 2002:a17:907:9706:b0:ae0:e065:ddfb with SMTP id a640c23a62f3a-af940006feemr1408513966b.18.1754379899651;
        Tue, 05 Aug 2025 00:44:59 -0700 (PDT)
Message-ID: <795cf4c1-07be-47a5-b807-074b165650c4@suse.com>
Date: Tue, 5 Aug 2025 09:44:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen: rework error handling in vcpu_create
To: Stewart Hildebrand <stewart.hildebrand@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Dario Faggioli <dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>,
 George Dunlap <gwd@xenproject.org>, xen-devel@lists.xenproject.org
References: <20250801202418.38977-1-stewart.hildebrand@amd.com>
 <52ea4f10-26b4-447b-8753-0e4287a03408@suse.com>
 <e7344494-8ac1-42a6-94a8-52a46f7f691a@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: <e7344494-8ac1-42a6-94a8-52a46f7f691a@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04.08.2025 18:57, Stewart Hildebrand wrote:
> On 8/4/25 03:57, Jan Beulich wrote:
>> On 01.08.2025 22:24, Stewart Hildebrand wrote:
>>> @@ -839,6 +839,9 @@ void sched_destroy_vcpu(struct vcpu *v)
>>>  {
>>>      struct sched_unit *unit = v->sched_unit;
>>>  
>>> +    if ( !unit )
>>> +        return;
>>> +
>>>      kill_timer(&v->periodic_timer);
>>>      kill_timer(&v->singleshot_timer);
>>>      kill_timer(&v->poll_timer);
>>
>> What if it's the 2nd error path in sched_init_vcpu() that is taken? Then we
>> might take this path (just out of context here)
>>
>>     if ( unit->vcpu_list == v )
>>     {
>>         rcu_read_lock(&sched_res_rculock);
>>
>>         sched_remove_unit(vcpu_scheduler(v), unit);
>>         sched_free_udata(vcpu_scheduler(v), unit->priv);
>>
>> and at least Credit1's hook doesn't look to be safe against being passed NULL.
>> (Not to speak of the risk of unit->priv being used elsewhere while cleaning
>> up.)
> 
> 
> Are you referring to this error path in sched_init_vcpu?

No, given the context I thought it was clear that I was referring to

static void cf_check
csched_free_udata(const struct scheduler *ops, void *priv)
{
    struct csched_unit *svc = priv;

    BUG_ON( !list_empty(&svc->runq_elem) );

(i.e. particularly this BUG_ON()).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 07:57:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 07:57:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070077.1433725 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujCY9-0004Pv-TP; Tue, 05 Aug 2025 07:57:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070077.1433725; Tue, 05 Aug 2025 07:57: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 1ujCY9-0004Po-Qn; Tue, 05 Aug 2025 07:57:33 +0000
Received: by outflank-mailman (input) for mailman id 1070077;
 Tue, 05 Aug 2025 07:57:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=j2i0=2R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujCY8-0004Pi-Ci
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 07:57:32 +0000
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com
 [2a00:1450:4864:20::52a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d5fd0685-71d1-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 09:57:30 +0200 (CEST)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-6156a162537so8444369a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 00:57: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
 4fb4d7f45d1cf-615a9113e40sm7965723a12.57.2025.08.05.00.57.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Aug 2025 00:57: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>
X-Inumbo-ID: d5fd0685-71d1-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754380650; x=1754985450; 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=K4ava1rDLI3wPKtFeUdT8w1Gn3fes96YdVTkhImFi2s=;
        b=XzXNp/bCJpNU1vyBOjtK2mV7VrjYMgi8HihN4aHTrI1CtaSsEMxv0Ml6GRijcz9akP
         WquW7JE2jpmF/g5YxadwhMtPtNCP/HiN45zRgXiAJkbYTLrnNs0A2C2IUb5d3vMscOGt
         2ZPvzgLcRgx4+30ppLlcJK7b/TQKGzsXzT0QqqxRSndr6nQfOiZHiJyCHPpYDEjPrZwl
         l7eRfE3rfpY27MHox3bfQtVOUgtmCA80fzGPak1ZzCva+IhRN84i7ovHHmxd0wfpTObd
         Klu4sKoIBENMemBdTmEzhm0j4VF4cPY4pmc/VvHDMus3LylJuSOnNXqf51qM17TRQdNj
         UEgQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754380650; x=1754985450;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=K4ava1rDLI3wPKtFeUdT8w1Gn3fes96YdVTkhImFi2s=;
        b=dmEIuKLbC9csemRhB3shVfbCGyFq9jcWp8F4mYj3X6ldktykqqmk96hmJ21HGo7xsh
         +yF9iRadlaZlzshRsMmHe/r1oZKv6iwe9oFoIofsU21+LywsFVeQgv54hQO7lbKEUnK4
         Dv5JyVzJfOnq1MYZxxHX7Lc+7N7KZ+SJXImD989DEhwIPlxHXUzaDt3Bnf0DzmeXy5OB
         JAJ58OeRw5bCvippuCGWVPZMtDKmp6FfPRReCVh4VJgTEi6EeAym+Ig1GLAQx/g6rSeJ
         iuNHshfD2o3XjBejEeV9X8r6uUUV5JDLyd9gblC9Ps2m1PzasGPyCrLN3A85HcJk7IWO
         OURg==
X-Gm-Message-State: AOJu0Yyg1QU+vqJfYlMOyO56Zn3QaZuS4q8PynshMcHJQwUr2ijXh9nA
	qZcDEJd2INYCY/DUla93GEFbuB/s52Uz7IyNCCr0xPKju9epcsoETZ021Z0UqAtvUTiRJymHH2O
	4D+Y=
X-Gm-Gg: ASbGncsowLKtVkBYyV4AVCx6DsuEgPT38IWEn2A+Dq0t+7wXLBCmJytLBloR5CsGznu
	noJLmJvn0OV+R01V2yldgwdNbKtgH/VQ0d4SpHC281+xLbRepE6NfL2MP0FU9qUM3+1YS9ZC9TK
	3fh/5e2yQ65PriyiCEhUxY1ixU5xOs6JgGeyCWaW8aqWgz2kupcQ1vqSCAC9+F+uYIUSYySpjM3
	fYKIIHOtAF52Fztnc+Wihb3q7YrmYON05xb5/7kZYx33Fl/QZeJRtPbJUJltL2OWuGm1cCeRdVf
	V2dlRfl0cWYQW7nYELoIQTD/xyRmmZ6ym4iI2Ijq4dvxyWH6gT/AhTwq3tr9f/4mvkpJSP6zGgm
	pPxdTSncP5iLre1FVoKzKe+syOxTxvKilKLsBG3w4ZMAfEGB19SBby5FqXr2PxLuZl42/POtgbM
	bm2hPt7Iw=
X-Google-Smtp-Source: AGHT+IETUpDWfhzD6Q1fEYPQ9DOC9HoQk0MxtMzMFCXB/JtsqlW7oUgtpDllk1q2rtuTuUUSgsKIcA==
X-Received: by 2002:a05:6402:90c:b0:615:6fae:d766 with SMTP id 4fb4d7f45d1cf-615e73889a3mr10787302a12.26.1754380649593;
        Tue, 05 Aug 2025 00:57:29 -0700 (PDT)
Message-ID: <c506f225-0993-4ef3-9e7e-60b8f17c872e@suse.com>
Date: Tue, 5 Aug 2025 09:57:28 +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>,
 Penny Zheng <Penny.Zheng@amd.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH 0/2] x86/mm: paging build adjustments
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

This is in the hope that it'll lead to a better overall result than plainly
taking [1] and [2] (or whichever re-work thereof).

1: drop paging_get_mode()
2: correct PG_log_dirty definition

Jan

[1] https://lists.xen.org/archives/html/xen-devel/2025-08/msg00050.html
[2] https://lists.xen.org/archives/html/xen-devel/2025-08/msg00051.html


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 07:58:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 07:58:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070083.1433736 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujCZ5-0004u6-6H; Tue, 05 Aug 2025 07:58:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070083.1433736; Tue, 05 Aug 2025 07:58: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 1ujCZ5-0004tz-2l; Tue, 05 Aug 2025 07:58:31 +0000
Received: by outflank-mailman (input) for mailman id 1070083;
 Tue, 05 Aug 2025 07:58:29 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=j2i0=2R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujCZ3-0004ej-LS
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 07:58:29 +0000
Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com
 [2a00:1450:4864:20::62b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f8f4ef2c-71d1-11f0-a321-13f23c93f187;
 Tue, 05 Aug 2025 09:58:28 +0200 (CEST)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-af967835d0aso310496466b.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 00:58: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
 a640c23a62f3a-af91a21c0e7sm862177966b.114.2025.08.05.00.58.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Aug 2025 00:58: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>
X-Inumbo-ID: f8f4ef2c-71d1-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754380708; x=1754985508; 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=zk8ARQLxEnVZagtjLCkEYukRPf4eTmdGxwGH7j4lTGc=;
        b=bNaNRjhgt0e6XGbfCEoaKmg6KGAolQUbiPnTJzXdrWBkfKmKllHaxSZopIfXFrQP3F
         iceHo3vsutWe8nfRl3dP1nYlyUfjM+NJnu2BVRxox1IZ+qwDaYqpqnOx7AN9ok3EtTRF
         w6K3wUTuwdcXB5rGbj7wiULt4hCFqJ2EOBXTEoTZ21wURuBoYfVCTe+NDqC7elJZaDl3
         wvGY2uM8vmeQZDv2wFazojhG98d+av3IRxUdufe9/jWMEHT7FgQn4Fr1w8Ti+4qipdrW
         xjKu7R8IMwaUMnoNV0fR4eVhyg068knitBiOiZgMHilA45n0rcBdFuBUZBOpzeq5flBC
         C03A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754380708; x=1754985508;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=zk8ARQLxEnVZagtjLCkEYukRPf4eTmdGxwGH7j4lTGc=;
        b=pMosYoudmrmsu9MGUUqAtHm3GplZgWki2JNHrAcaiHLInV8VuldNzHs5ePmfbqI2Fn
         RSICfWqf47c/3ARYZnAlfE6Vaxfb9cKD42soI65r0rbTZ8JSU/ImknX7Q6WCJTy++182
         6hTmZIw2PrxYr4zSvFtALxCY+4wpWE7zfloVZGbe5RMCfYHyB60K3jCM/SufPZVZNbPV
         RtAQ8br8/imWXcThjI95oyEkYG3mrOyRpik/JkP12qwDuJmlJao4uwHM0bKzTnLm6ccY
         r5EkAsg7VM6EvKV7OZx3ztlGD9raae2URMZGbrREpiY/8aUNIZTWgUnuWKuIsi0txdE6
         5gBw==
X-Gm-Message-State: AOJu0YzA8nBSnGxZdlhh4+GbaX/h2jsP5keAwbMoi/Hhlckvwp+pgG/Z
	c1LhYHxfnP5hexi3U0xkJTPxot/tDhk1yefkyFs2Hb5MToaKN2jwg1KFASf61tg1lAQ/+x7ovS5
	g9ck=
X-Gm-Gg: ASbGncuae2G2OdhKey32zwUBHpcCOSTAiwnGX7kVRRlvBB6qZRxfA/e5XAiowpoquPK
	braYL0Gl5XQMJi20Lq/1ILbF/5frgLtwPjPD62jQJft82sa8Pze9CK7pW1ew/ry2dHx9PcFxZAV
	TzX7bHZP/Z9fvMYMoYoco/G/hjus+attpwRfIiUQdFOaL8TgvF9O5ipHJInmfpAm2VtVTF1SBlz
	Y0/e3Ryi9S6EgYoFwOpUJ9G6SM44ZOpoFqaM6KQ0JLqEgzfn33zhEw//O8bXkSy18oTXFCYXhCF
	haEHxGRVcpH/aRtIC8eJGn6rl4vgAsGsQih3nR+5sZ9zyFGo7B4QIpTOFpAebe9ycsFL2FeewjI
	wHCs3/m2b/fKdbNEIzF6g6bd3TWZ/rbFJT/drqmbi4cfDuUXHuI/LFhnOrw21q9RztJJVVI0d9d
	ci8rfCviBH5xiS5oE6HA==
X-Google-Smtp-Source: AGHT+IHrh6RWKmfuaIlBXu9xt3EqUmQYyQKIlJvef21/qMD6Jcd0zL1ygxI2tqPUlH7X8z0nVPyotQ==
X-Received: by 2002:a17:907:86a0:b0:ae3:f2a0:459f with SMTP id a640c23a62f3a-af9402225damr1292618166b.54.1754380708362;
        Tue, 05 Aug 2025 00:58:28 -0700 (PDT)
Message-ID: <0c75ef27-7584-4e56-9ead-6bb0274ce3eb@suse.com>
Date: Tue, 5 Aug 2025 09:58:27 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 1/2] x86/mm: drop paging_get_mode()
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>,
 Penny Zheng <Penny.Zheng@amd.com>
References: <c506f225-0993-4ef3-9e7e-60b8f17c872e@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: <c506f225-0993-4ef3-9e7e-60b8f17c872e@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The function was introduced without any caller, and never gained any.
Thus it has always been violating Misra rule 2.1 (unreachable code).

Fixes: dd6de3ab9985 ("Implement Nested-on-Nested")
Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/arch/x86/include/asm/paging.h
+++ b/xen/arch/x86/include/asm/paging.h
@@ -225,7 +225,6 @@ int paging_enable(struct domain *d, u32
 
 #define paging_get_hostmode(v)		((v)->arch.paging.mode)
 #define paging_get_nestedmode(v)	((v)->arch.paging.nestedmode)
-const struct paging_mode *paging_get_mode(struct vcpu *v);
 void paging_update_nestedmode(struct vcpu *v);
 
 /* Page fault handler
--- unstable.orig/xen/arch/x86/mm/paging.c	2025-08-05 08:59:15.512131147 +0200
+++ unstable/xen/arch/x86/mm/paging.c	2025-08-05 09:00:24.160657794 +0200
@@ -946,14 +946,6 @@ void paging_dump_vcpu_info(struct vcpu *
     }
 }
 
-const struct paging_mode *paging_get_mode(struct vcpu *v)
-{
-    if (!nestedhvm_is_n2(v))
-        return paging_get_hostmode(v);
-
-    return paging_get_nestedmode(v);
-}
-
 #ifdef CONFIG_HVM
 void paging_update_nestedmode(struct vcpu *v)
 {



From xen-devel-bounces@lists.xenproject.org Tue Aug 05 07:59:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 07:59:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070092.1433745 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujCZw-0005Rs-DX; Tue, 05 Aug 2025 07:59:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070092.1433745; Tue, 05 Aug 2025 07:59: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 1ujCZw-0005Rl-Aw; Tue, 05 Aug 2025 07:59:24 +0000
Received: by outflank-mailman (input) for mailman id 1070092;
 Tue, 05 Aug 2025 07:59:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=j2i0=2R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujCZu-0005FK-Qs
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 07:59:22 +0000
Received: from mail-ed1-x531.google.com (mail-ed1-x531.google.com
 [2a00:1450:4864:20::531])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1836bb6f-71d2-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 09:59:21 +0200 (CEST)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-61553a028dfso5261368a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 00:59:21 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-615a8fe7970sm7829833a12.31.2025.08.05.00.59.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Aug 2025 00:59: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>
X-Inumbo-ID: 1836bb6f-71d2-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754380761; x=1754985561; 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=lDYhhVqtVHSkEY2KScDddpRPE5yfRSX0wYxMEMeyzd0=;
        b=WiXf0sIS/t6jokvq+lYDpSMOOaEp+GoKJV8Cb0AwtKvumEt3CacOaf+eajB5D4oL/Q
         QM2l3DYuavaWasOsd5DjlMVtHhW/69eHTevTrCLbVSE83/iIIFA4kF//xM+WRskt8fzR
         hYR8mgi/QYBx7oFfBbLlND/n2UYSovuh27u9MNbiSXlyJyUeb9c6MzhCD1NyUFQDlg5P
         0u/8QBFXZ8jp6U2yULKinpYS3Gd7qFpmc1oF4jX932cNGvNKo/lKnyZ3b5ykEzSM1eIe
         v3p6+9Fny7nJHeAILfLQ6/EDSJq+tWVHRrS9u2oDRCULVZPeQ8ZxqMAu7V9080iWEvRE
         4zsg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754380761; x=1754985561;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=lDYhhVqtVHSkEY2KScDddpRPE5yfRSX0wYxMEMeyzd0=;
        b=g2RYuTDkC7eXWpXco4g2bEIgxdQIyw0/AqVTJrF9ZZXqNFU612/pVjW5J2kVPBc4+6
         ladFiUWIfSlwkRbl3ZC10jOw5wMR0JYl85O2DrZKPUOGRQRn0zXMGQiCVFZvwGXFHRxm
         91G2P1RWdDlgGxRcxHwx40E2pNpI59IC14N2z84WbbKNweQ/Ya8V8XTvzKAeD0jKxfhp
         qDpya4ccnnizB8yTcc4JWgue//EUhsE7UMKzvNRjDDxGDaPguqy3+2Jw7/u1t9ZDNemT
         Y66KQ1KhTdeUDK4qGYB+kwvbjMquaBFHSrrc6dFHonxtSldTmMlObKOMIN7nFXnWnT6n
         9MlQ==
X-Gm-Message-State: AOJu0YyvvhzNRXRRNPi1d7muManujTwWc2EDKuhx5WJhpNhTj7N2bA15
	Ny+CyoVUW4DLvYgBaiHjnBuBePkV2Y2O+uUA/9H0JjVKlRDz0iaMBm7Bshgq41IdxcE1XBVj5ue
	Hsq0=
X-Gm-Gg: ASbGncsFFywQBp7vuDuG6OEKLEcE+DpPwrjN+rAYB2X09P3P6cwaPwTwXaX2vVGxOB4
	8OCzNG7A+OTx/GMS7V6hva7cx4QP0AXOiD9k9NbKQhAm8FVgm9X1BMBv8XNvxSzvQETjkBhrb+g
	bbhRpBaAdXLkEHVFP5Cz99uqLcLbLrOrur8H9jdE3gyqZCcvwUj6R7+d9ORLr4GTjbR4bjfniAa
	8Lifnax1sXpB7ixx1uovvaMUQaqGHZkFkkSps/Yzfp5hStjjAjWVRU6fnqq/xV1YPcH6nCyPwTD
	HKj+1NLOKpM0M7uq/nvGpLvnZoPedpMECcX/CkLDp/AZFwH7GnDGCaAPUQJqbazJPBSdF96vyMd
	cD+tRkSWuTZVpDYLwj/myMuZw6BUVn+8imofPx+NMBnjVan2w9R+P14v6wklRrA69vNqJb+QjMK
	ZsJTE0FOw=
X-Google-Smtp-Source: AGHT+IH3VSvg/T0CwmYObPNUvKXOBd6Eas/r6GDF+jg82t7MVSCFQYTH3sHkvamtqTu71XfW3BmJsQ==
X-Received: by 2002:a50:cc03:0:b0:615:b6b9:d873 with SMTP id 4fb4d7f45d1cf-615e715d669mr8536823a12.24.1754380760630;
        Tue, 05 Aug 2025 00:59:20 -0700 (PDT)
Message-ID: <65e27b35-9256-4ab0-966a-c50a18900ba5@suse.com>
Date: Tue, 5 Aug 2025 09:59:19 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 2/2] x86/mm: correct PG_log_dirty definition
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Penny Zheng <Penny.Zheng@amd.com>
References: <c506f225-0993-4ef3-9e7e-60b8f17c872e@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: <c506f225-0993-4ef3-9e7e-60b8f17c872e@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

While it is correct that in shim-exclusive mode log-dirty handling is
all unreachable code, the present conditional still isn't correct: In a
HVM=n and SHADOW_PAGING=n configuration log-dirty code also is all
unreachable (and hence violating Misra rule 2.1).

As we're aiming at moving away from special casing PV_SHIM_EXCLUSIVE=y,
don't retain that part of the conditional.

Because of hypercall-defs.c we need to carry out the dependency by
introducing a new auxiliary PAGING control.

Since compiling out mm/paging.c altogether would entail further changes,
merely conditionalize the one function in there (paging_enable()) which
would otherwise remain unreachable (Misra rule 2.1 again) when PAGING=n.

Fixes: 23d4e0d17b76 ("x86/shim: fix build with PV_SHIM_EXCLUSIVE and SHADOW_PAGING")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Of course PAGING is at risk of being confused with MEM_PAGING. It not
having a prompt, I hope that's tolerable, as I can't really think of a
better name.

Other PG_log_dirty pre-processor conditionals then likely also want
replacing. mm/paging.c and mm/p2m-basic.c could also be compiled out
altogether when PAGING=n, at the expense of introducing a few more
stubs.

FTAOD, the Fixes: tag being referenced does not mean this patch corrects
the far more recently introduced build issue with the combination of the
two features. That's still work that I expect Penny to carry out (with
there still being the option of reverting the final part of the earlier
series).

--- a/xen/arch/x86/Kconfig
+++ b/xen/arch/x86/Kconfig
@@ -162,6 +162,9 @@ config SHADOW_PAGING
 
           If unsure, say Y.
 
+config PAGING
+	def_bool HVM || SHADOW_PAGING
+
 config BIGMEM
 	bool "big memory support"
 	default n
--- a/xen/arch/x86/domctl.c
+++ b/xen/arch/x86/domctl.c
@@ -213,11 +213,15 @@ long arch_do_domctl(
     {
 
     case XEN_DOMCTL_shadow_op:
+#ifdef CONFIG_PAGING
         ret = paging_domctl(d, &domctl->u.shadow_op, u_domctl, 0);
         if ( ret == -ERESTART )
             return hypercall_create_continuation(
                        __HYPERVISOR_paging_domctl_cont, "h", u_domctl);
         copyback = true;
+#else
+        ret = -EOPNOTSUPP;
+#endif
         break;
 
     case XEN_DOMCTL_ioport_permission:
--- a/xen/arch/x86/include/asm/paging.h
+++ b/xen/arch/x86/include/asm/paging.h
@@ -55,7 +55,7 @@
 #define PG_translate   0
 #define PG_external    0
 #endif
-#if defined(CONFIG_HVM) || !defined(CONFIG_PV_SHIM_EXCLUSIVE)
+#ifdef CONFIG_PAGING
 /* Enable log dirty mode */
 #define PG_log_dirty   (XEN_DOMCTL_SHADOW_ENABLE_LOG_DIRTY << PG_mode_shift)
 #else
--- a/xen/arch/x86/mm/paging.c
+++ b/xen/arch/x86/mm/paging.c
@@ -864,6 +864,7 @@ void paging_final_teardown(struct domain
     p2m_final_teardown(d);
 }
 
+#ifdef CONFIG_PAGING
 /* Enable an arbitrary paging-assistance mode.  Call once at domain
  * creation. */
 int paging_enable(struct domain *d, u32 mode)
@@ -889,6 +890,7 @@ int paging_enable(struct domain *d, u32
     else
         return shadow_enable(d, mode);
 }
+#endif
 
 #ifdef CONFIG_HVM
 /* Called from the guest to indicate that a process is being torn down
--- a/xen/include/hypercall-defs.c
+++ b/xen/include/hypercall-defs.c
@@ -197,9 +197,11 @@ dm_op(domid_t domid, unsigned int nr_buf
 #ifdef CONFIG_SYSCTL
 sysctl(xen_sysctl_t *u_sysctl)
 #endif
+#if defined(CONFIG_X86) && defined(CONFIG_PAGING)
+paging_domctl_cont(xen_domctl_t *u_domctl)
+#endif
 #ifndef CONFIG_PV_SHIM_EXCLUSIVE
 domctl(xen_domctl_t *u_domctl)
-paging_domctl_cont(xen_domctl_t *u_domctl)
 platform_op(xen_platform_op_t *u_xenpf_op)
 #endif
 #ifdef CONFIG_HVM
@@ -296,7 +298,7 @@ dm_op                              compa
 hypfs_op                           do       do       do       do       do
 #endif
 mca                                do       do       -        -        -
-#ifndef CONFIG_PV_SHIM_EXCLUSIVE
+#if defined(CONFIG_X86) && defined(CONFIG_PAGING)
 paging_domctl_cont                 do       do       do       do       -
 #endif
 



From xen-devel-bounces@lists.xenproject.org Tue Aug 05 08:02:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 08:02:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070105.1433755 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujCcZ-0007i7-W7; Tue, 05 Aug 2025 08:02:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070105.1433755; Tue, 05 Aug 2025 08:02: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 1ujCcZ-0007i0-Se; Tue, 05 Aug 2025 08:02:07 +0000
Received: by outflank-mailman (input) for mailman id 1070105;
 Tue, 05 Aug 2025 08:02:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=j2i0=2R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujCcY-0007hu-R7
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 08:02:06 +0000
Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com
 [2a00:1450:4864:20::633])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 79b5efc5-71d2-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 10:02:04 +0200 (CEST)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-af95b919093so350600566b.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 01:02: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
 a640c23a62f3a-af91a07659dsm848977366b.21.2025.08.05.01.02.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Aug 2025 01:02:03 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 79b5efc5-71d2-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754380924; x=1754985724; 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=CtmSLy6PqvBlDIW9PGwauE7arZ7BbkR68+6Y6KWVICA=;
        b=V9ysxjmQVhQVhcwdxrpeGuiepa46RwRBLIBTwDu1VBP83SqvRv06Wo77eYI8JVXbRo
         4AqtE573QqBH+Xq85d3+LWKU2+SvwLD91y8xNWqYGqHIay1XfHjoLbTV4GfkR2uCGVB4
         0MDftJWZmwzfNIkOgT3WT/wNa3jKUJCKKYcwHt+ImseXNHSyCqUAI8OaCmeJ87NsY5sW
         OCS8GWs9NrouZDRc5zNox69lijV1zxk/Lu9WBeJD1DtiquMSqacC4/ddOIdbueVzzL6w
         WrxO4MCOU4ZrLgqbz5Wchoy4/ugdYzcY3I5oFmNQGdvKFFwwAhFiNvmFkP021v0OyM9V
         rfUQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754380924; x=1754985724;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=CtmSLy6PqvBlDIW9PGwauE7arZ7BbkR68+6Y6KWVICA=;
        b=R2FTvC15wVzNljdLtselkycdLnc7eZfyo1U1jEl+Sp6eVWfoMbVlPVJhwLhAXwsjYz
         FSLRSXbXN5hl9S2auN17/bc5HrAnV74vejaLWA8d3TKj27zrkXsG4DdoH3tWVRGf7dEw
         e16FAAviBswbMoflC2dvbKu3sgZcHMd7p3aBFTagKxUHjZQRSjEJWEP4LCsHsvImaRJL
         eJzHM6cUMRrZ9kDOvJZ0/Lmdd6P5zTlTqbzLvlWmtx8S8NuMJvUTZcBztEjh7XJa4xpl
         LlusMaEP/dzaTmgRtNVTPCWp/tfYrOKqPB8Gt3UGV6lubkRfq9dx80SWw2X/k1cXkWDk
         x45w==
X-Forwarded-Encrypted: i=1; AJvYcCUgfGFFQYqmiX8tH+r6Ma1ap/UvHQ1sGJMcCJ4faSJhHIQuQ33dt5mTdSieFkKBA3nvlJRzIoBMTOU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy/MC/ylAjH3p8owiQCnWXu9acqtk9gG59+SlV99yPW3C2u47G5
	IPsBG32hlMKXSEbizjpUOk0CNNQuHqq78R8cmi0QLKXQH/d3QWpJI0C/J1xk6e2rA0kwFY6bZP/
	0S3M=
X-Gm-Gg: ASbGncuIXVhpOgDzDZAntFSHWMhWghWUMae0PjRghHa/UrNbvgVlEwxDrlH0WwGxho7
	SWsq9PjoFYugpyXOQzLuw4LLL7G3OErHAh1B3VQm75miClSlwtReoDhtxAIpCwL795gxA8IpM6K
	zS2hujHU9KynBhsN+JiuAyuQJB6c5URnl+YkiQGH0TxP2mEd3s6NOMY7O6Q30eWC99nlzO/sVfl
	cXSxtPa+ArnGPrCE1jDMEUMwY8XGwmi/pWFESk+ny1Nm6k+F0HxAHMpAkze/R+2j6hA+KogrmoH
	QLGEKO9GpdlXr1RflU2RT+VSCupJjvMvZKR81mdCgHtejC92Hs5IuRTEmFmi3EP152Ycy+nn59e
	QStfdWr7Kdqbz0Q8s2nB2Su5mLCDC+XgK00iBrJQd5Z9mSjJ0eBD7lt3Zk5TBKVzzeyibnkJUw6
	t6L3eJ8qI=
X-Google-Smtp-Source: AGHT+IHARCC5ug1NuLrn0wCnmLqOduhZFGQKjxjU3JOkQeWOdEzlQSUUDkqvxMdJM0hO+Wf40wK99w==
X-Received: by 2002:a17:907:d86:b0:af9:3e06:46ff with SMTP id a640c23a62f3a-af940015684mr1413696466b.18.1754380924070;
        Tue, 05 Aug 2025 01:02:04 -0700 (PDT)
Message-ID: <450982f5-4032-4b63-9635-40dbc10f6779@suse.com>
Date: Tue, 5 Aug 2025 10:02:02 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/HVM: polish hvm_asid_init() a little
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: <ec351aea-e2a0-4335-b8ee-51c6eface104@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: <ec351aea-e2a0-4335-b8ee-51c6eface104@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04.08.2025 17:41, Jan Beulich wrote:
> While the logic there covers asymmetric cases, the resulting log
> messages would likely raise more confusion than clarify anything. Split
> the BSP action from the AP one, indicating the odd CPU in the AP log
> message, thus avoiding the impression that global state would have
> changed.
> 
> While there also
> - move g_disabled into .data.ro_after_init; only the BSP will ever write
>   to it,
> - make the function's parameter unsigned; no negative values may be
>   passed in. Also reflect this in svm_asid_init().
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Sorry, I meant to Cc: you on the submission, as it was the reviewing of
your copied code which made me spot the shortcomings (which, as indicated,
I think it would be nice if you avoided from the very start).

Jan

> --- a/xen/arch/x86/hvm/asid.c
> +++ b/xen/arch/x86/hvm/asid.c
> @@ -48,20 +48,22 @@ struct hvm_asid_data {
>  
>  static DEFINE_PER_CPU(struct hvm_asid_data, hvm_asid_data);
>  
> -void hvm_asid_init(int nasids)
> +void hvm_asid_init(unsigned int nasids)
>  {
> -    static int8_t g_disabled = -1;
> +    static int8_t __ro_after_init g_disabled = -1;
>      struct hvm_asid_data *data = &this_cpu(hvm_asid_data);
>  
>      data->max_asid = nasids - 1;
>      data->disabled = !opt_asid_enabled || (nasids <= 1);
>  
> -    if ( g_disabled != data->disabled )
> +    if ( g_disabled < 0 )
>      {
> -        printk("HVM: ASIDs %sabled.\n", data->disabled ? "dis" : "en");
> -        if ( g_disabled < 0 )
> -            g_disabled = data->disabled;
> +        g_disabled = data->disabled;
> +        printk("HVM: ASIDs %sabled\n", data->disabled ? "dis" : "en");
>      }
> +    else if ( g_disabled != data->disabled )
> +        printk("HVM: CPU%u: ASIDs %sabled\n", smp_processor_id(),
> +               data->disabled ? "dis" : "en");
>  
>      /* Zero indicates 'invalid generation', so we start the count at one. */
>      data->core_asid_generation = 1;
> --- a/xen/arch/x86/hvm/svm/asid.c
> +++ b/xen/arch/x86/hvm/svm/asid.c
> @@ -12,7 +12,7 @@
>  
>  void svm_asid_init(const struct cpuinfo_x86 *c)
>  {
> -    int nasids = 0;
> +    unsigned int nasids = 0;
>  
>      /* Check for erratum #170, and leave ASIDs disabled if it's present. */
>      if ( !cpu_has_amd_erratum(c, AMD_ERRATUM_170) )
> --- a/xen/arch/x86/include/asm/hvm/asid.h
> +++ b/xen/arch/x86/include/asm/hvm/asid.h
> @@ -13,7 +13,7 @@ struct vcpu;
>  struct hvm_vcpu_asid;
>  
>  /* Initialise ASID management for the current physical CPU. */
> -void hvm_asid_init(int nasids);
> +void hvm_asid_init(unsigned int nasids);
>  
>  /* Invalidate a particular ASID allocation: forces re-allocation. */
>  void hvm_asid_flush_vcpu_asid(struct hvm_vcpu_asid *asid);



From xen-devel-bounces@lists.xenproject.org Tue Aug 05 08:11:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 08:11:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070118.1433767 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujClA-00014B-UQ; Tue, 05 Aug 2025 08:11:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070118.1433767; Tue, 05 Aug 2025 08:11: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 1ujClA-000144-Qc; Tue, 05 Aug 2025 08:11:00 +0000
Received: by outflank-mailman (input) for mailman id 1070118;
 Tue, 05 Aug 2025 08:10:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=j2i0=2R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujCl9-00012l-7G
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 08:10:59 +0000
Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com
 [2a00:1450:4864:20::52e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b6fb73af-71d3-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 10:10:57 +0200 (CEST)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-615d1865b2dso6353499a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 01:10:57 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-615a8f00066sm7863105a12.7.2025.08.05.01.10.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Aug 2025 01:10:56 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b6fb73af-71d3-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754381456; x=1754986256; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=rd/xTim005buCVdoW0OuuV7xncLVOUA5t6nqxX9G0JU=;
        b=gk/t6lEviwrwJEaDrcjPIBtKF45ZthUAVOaB/Gfv67oQ2fwXnqrgG0OKV6GwtggaKQ
         Mvz7xU8q8Lg6ZGnv1OBUkp0IIIaQjqyrmZDTuvGIiCPvpAax7GT4M0DS9WV0nISVIs6f
         xIDuJLZtHeZ+9mla5nBTNE/whmkkn34AqP9c6R0S603Ip4aK6kIyJD+cVEaX+SQhsvkn
         Ep9RawbEfwClzPUoC6hZh9Tkpxga1UxxbzfV0H0dhDpJNi1V/GxKK2JEOrqglBr9Zts3
         6f4s29sSLkix0TtsfFPwdLKXXxkGJv2ZTzNQiET88Shhn9/PG9eJPX7X/Q23zJIWjSKI
         xTmg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754381456; x=1754986256;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rd/xTim005buCVdoW0OuuV7xncLVOUA5t6nqxX9G0JU=;
        b=dQ+clqoIn+zgZGZk7wYkuJjivm68KAaE93K0gRrAJ5//K6/01MDPltNy1bBcskZb7d
         q/sza2/LZWOlZ23zbQ0gEOPUX/anpvrImK3JROy9qjiLM702Zp8T8ZakRdES0UK1KE3S
         B4y70VEikZQEz+6SYS2x1/GEI4+DO5Ru6BK2j03IKmA1NYc8IuX/JyHflPRclqp6hRfY
         5PysZM8X6lZJ1SRv6LOYj+MYxt6woJdA3f4CX2RViQL3ymDUWTWrZBAE/bnukVhSYw99
         14ZIwpHLfTmM484V984EMUWJ6vB0at+7V/JN0eDkIDGYkrOuYNjm0X/AeTQsYs8aKiZP
         I9EA==
X-Forwarded-Encrypted: i=1; AJvYcCWwx5wKJGsp+hk9WacN2TNXw3Y0V5/iOh5eF5HWYkxqaeVPsYqKMnN+9tH7dnQQ7SRvbGqCdEGmwEM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzIlVedih5zIAjdri69DsnH04w/4CQJwnuO/QbqEOaQrfuAK6kW
	CaVYERmBX784gHPC1ZAr4C0pc2tKfl2mRSAVHA4IpBht8Wzi5Yi3TqqdHJL6Let7vA==
X-Gm-Gg: ASbGncsGY95Axh8bQdl2ARmjeEyoCOVTlZdasA+p4tehI2pjHzSqE/YX8SdH5mu/YwD
	KILTVCRsaWJYzripjjA97F2v3kf+oJMFcTyFMU+GGuCzJE8jKSRY3qO+iHd/jTC2488DFal/QJD
	5MoPmv2F7zmCsZb2KlQpj/blFYk+JIF+qDnYudRAMDQXKfbzmFp5Dnd7kDcltytrlJ15rXktg2V
	XeTgD2u4Nr8Ar3j+AMOxTHDbGkG7FNXGg76Y+2qV+aXAjpmoPGUG41hjp5tGiBjsXPEYk9DZmQb
	tJ6sv28BVopzr7VMaBbNptktk+tQspyM69enUWkwnPAQPqa1k48sgQbkmF1GZRNGccWMMeH1oBi
	j1Ybod4o0mXWPW0pKVTDRNEaC1Z8QvFZQpceuqo5odgX/Ulp3L64QTBB7qHYQQ7n+MyNWXS0VQr
	8+IMkaXu8=
X-Google-Smtp-Source: AGHT+IFchRG07DF3ik6Pvfdl6O/fFY6YI19ca/ly7KKZgvE/EPyFHi/Na0SKPzqFcKKuInU8mTZurA==
X-Received: by 2002:a05:6402:1118:b0:615:905a:3d43 with SMTP id 4fb4d7f45d1cf-615e71451c1mr9421099a12.16.1754381456524;
        Tue, 05 Aug 2025 01:10:56 -0700 (PDT)
Message-ID: <889e32d2-b50f-4d61-b04b-6c73472abf23@suse.com>
Date: Tue, 5 Aug 2025 10:10:55 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v10 4/4] vpci/msix: Free MSIX resources when init_msix()
 fails
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: Huang Rui <ray.huang@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <20250805034906.1014212-1-Jiqian.Chen@amd.com>
 <20250805034906.1014212-5-Jiqian.Chen@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: <20250805034906.1014212-5-Jiqian.Chen@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.08.2025 05:49, Jiqian Chen wrote:
> When MSI-X initialization fails vPCI will hide the capability, but
> remove of handlers and data won't be performed until the device is
> deassigned.  Introduce a MSI-X cleanup hook that will be called when
> initialization fails to cleanup MSI-X related hooks and free it's
> associated data.
> 
> As all supported capabilities have been switched to use the cleanup
> hooks call those from vpci_deassign_device() instead of open-code the
> capability specific cleanup in there.
> 
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> ---
> cc: "Roger Pau MonnÃ©" <roger.pau@citrix.com>
> ---
> v9->v10 changes:
> * Call all cleanup hook in vpci_deassign_device() instead of cleanup_msix().

Isn't this rather an omission in an earlier change, and hence may want to
come separately and with a Fixes: tag?

> --- a/xen/drivers/vpci/vpci.c
> +++ b/xen/drivers/vpci/vpci.c
> @@ -321,6 +321,27 @@ void vpci_deassign_device(struct pci_dev *pdev)
>                      &pdev->domain->vpci_dev_assigned_map);
>  #endif
>  
> +    for ( i = 0; i < NUM_VPCI_INIT; i++ )
> +    {
> +        const vpci_capability_t *capability = &__start_vpci_array[i];
> +        const unsigned int cap = capability->id;
> +        unsigned int pos = 0;
> +
> +        if ( !capability->is_ext )
> +            pos = pci_find_cap_offset(pdev->sbdf, cap);
> +        else if ( is_hardware_domain(pdev->domain) )
> +            pos = pci_find_ext_capability(pdev->sbdf, cap);

What's the point of doing this when ...

> +        if ( pos && capability->cleanup )

... ->cleanup is NULL? Don't you want to have

        if ( !capability->cleanup )
            continue;

earlier on?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 08:16:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 08:16:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070126.1433776 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujCq0-0001kU-E5; Tue, 05 Aug 2025 08:16:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070126.1433776; Tue, 05 Aug 2025 08:16: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 1ujCq0-0001kN-B3; Tue, 05 Aug 2025 08:16:00 +0000
Received: by outflank-mailman (input) for mailman id 1070126;
 Tue, 05 Aug 2025 08:15:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=j2i0=2R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujCpy-0001kG-Ri
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 08:15:58 +0000
Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com
 [2a00:1450:4864:20::634])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 69a90dfc-71d4-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 10:15:57 +0200 (CEST)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-adfb562266cso848427766b.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 01:15: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
 a640c23a62f3a-af91a0766f9sm872386966b.24.2025.08.05.01.15.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Aug 2025 01:15:55 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 69a90dfc-71d4-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754381756; x=1754986556; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=wt/RvL3z2MOCMJ7xgls2sDYSiF446Vvd5P2xrV6RHws=;
        b=XOFJPSmzW3EuFAs1UCQTsqVayC48/0uv7oj4k4a1DlMxW6vS6+WS+HpXaX/o3GRL0O
         ZKtqM5nlLllRCom4b3h+oGCtjXRhShG8yXVXXU+eIYrCUFfViBQuXV8CG8uDOJcDJ93K
         iUR5IM4WkxHshGZQMyVH80um57STo5z54U71CVdsPAx7WAGtQaxryzpXoHD1Ggux4e0l
         WgHslTS7Ooyx7ueUJW4qrT4LRz5OV+RZXncNaZi9dnFif1dxq2mGtrXM1omlZk3RgUlB
         d1J3/SmmrjeCwnbyeEfzuJIheuj/+v/4FQcekoDSMh+hkGBx9/jCdqMjsadQddJ2QULj
         +0Iw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754381756; x=1754986556;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wt/RvL3z2MOCMJ7xgls2sDYSiF446Vvd5P2xrV6RHws=;
        b=QJMRKzReOPKwGwEBFoQso+vr53soXIQugoru0XKQ847Zq6oyQeS9c5KidmLrAcQMcY
         55GPHzkcOKPm/BITcvcX7S3HfzM32wyV7j1az/kCPh1MvAwWwkqH/YmvfQzpq71+LwoB
         bSiw35GljBOy1x34W8pPt8X3eGMWgGh4lJ4hhtEgpfUf4b0VArPe8CRnVPr2jue2d5Q/
         ZnHkYPEx9z07zZDuvgFcelUSux4QQjRzF2mXygrR1NNC2u78Yq3dO6u57MdyzCyJYqVi
         3cgZvUqhm8MMesZYB3w/EUIGvqJbPUXnGNdCZ9bZzj8zUslYx0x2YuG6j2UK92nD2z6B
         djBw==
X-Forwarded-Encrypted: i=1; AJvYcCV4dMS44OcSsV3Xfl+h1qrYLjrSxPL3Mbk9pJBV11PlyfygVowVnC+ydGlVXnXSLe5YEKKDXrvaTwQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywvs622eXzb1QNcx1sUa9z+3kS+vavwkndxeFukUsFsO6JsaQHS
	/Ppu8WAfJkrDg2repPAXYGh7hUOyyGVdgPWnFPDwqpAw4sJYINVZneU0FFeIqqf2nA==
X-Gm-Gg: ASbGnctY6hYTaIoaWpWqapmgVUqCI1GEVGhb1Kd03ZbZqtVHNek8z5U8Xt6RFT8ZlJf
	KbKEoyj7BGStBhQByea3cxztUh+lzVA+4D7ibLSJcvtNjDIpmSiAETtFy/ls4g4BoPG5jOaXiO4
	2S5UexxR6MwX+P4ba5E0kWan7wZsgaBS1SYYF7nsEJnxxdkN0wSOvLO++9UGODgCQUiqNkmsErt
	sGNsdIc00fg8uuDyWToscMqKTspLjki51/ozzENOa+k9NEU7DD2PS5QZdfPQBLjgovLlhJuPZlW
	0hWtF4Fce1MWUaRQy/AssC7kxRo4ikyEKdQdjnpLD+CLw4MqUCCSLmssFaYeyy6Jwd5lMuVsa1s
	GUKVD8HVmU2Se5hpCuIz8PWRj3uoS8k+CxNFs0cgu5erigrESVcr1GZuz4plsM7yGslNiDSj9aT
	3Bh4SV+aU=
X-Google-Smtp-Source: AGHT+IEzJJQyfsuj9JnPWMnVlLzedmSD5OtMHzS6h4vUGELTNbYGbHmGhxdzXeVZxTSC7VifOrrPhg==
X-Received: by 2002:a17:907:7fa3:b0:ae0:da2d:44b9 with SMTP id a640c23a62f3a-af94003327emr1384767566b.7.1754381756248;
        Tue, 05 Aug 2025 01:15:56 -0700 (PDT)
Message-ID: <321d07ea-1688-4036-a031-37c46dab5c15@suse.com>
Date: Tue, 5 Aug 2025 10:15:55 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] misra: remove default case in single-clause switch
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <725ec86ac1aa883c35fb30b8f226c95cbe0934e9.1754322299.git.dmytro_prokopchuk1@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <725ec86ac1aa883c35fb30b8f226c95cbe0934e9.1754322299.git.dmytro_prokopchuk1@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04.08.2025 19:33, Dmytro Prokopchuk1 wrote:
> MISRA Rule 16.4: Every switch statement shall have a default label.
> The default clause must contain either a statement or a comment
> prior to its terminating break statement.
> 
> However, there is a documented deviation for this rule in Xen:
> 'docs/misra/deviations.rst':
> * - R16.4
>   - A switch statement with a single clause and no default label
>     may replace an equivalent if statement to improve readability.
>   - Tagged as `deliberate` for ECLAIR.
> 
> This change removes empty default cases in single-clause switches
> to avoid violations of the rule where the `default` clause lacks
> a suitable comment or statement.
> 
> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>

It's all CPU notifiers that you alter, and iirc the outcome of earlier
discussion was that particularly for those we _want_ to add commentary,
clarifying why only the given subset of notification need handling in
the particular case. It may also well be that the (at least) one case
of the possibly missing handling of some other notification still is
unaddressed (and might hence be wrongly hidden by the adjustment done
here, if it's in one of the function that are being altered).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 08:27:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 08:27:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070134.1433785 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujD0u-0003XU-CN; Tue, 05 Aug 2025 08:27:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070134.1433785; Tue, 05 Aug 2025 08:27: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 1ujD0u-0003XN-9l; Tue, 05 Aug 2025 08:27:16 +0000
Received: by outflank-mailman (input) for mailman id 1070134;
 Tue, 05 Aug 2025 08:27:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=aSY8=2R=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1ujD0t-0003X0-9J
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 08:27:15 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20621.outbound.protection.outlook.com
 [2a01:111:f403:2416::621])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fb82b387-71d5-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 10:27:12 +0200 (CEST)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by BL3PR12MB6473.namprd12.prod.outlook.com (2603:10b6:208:3b9::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.11; Tue, 5 Aug
 2025 08:27:08 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285%4]) with mapi id 15.20.8989.020; Tue, 5 Aug 2025
 08:27: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>
X-Inumbo-ID: fb82b387-71d5-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=VxgKPGZGC/h+hmpTWhglI/wQ40K4+JlLdjs8AQ1e0MFXzJn1KpV+V0+ITqV7TQ9gWnfvOplWPxrmvhSUVl9XcBKzOyUChP8lk43OLD1ClmsTx2Ex0AKXRpffbrPojPnhwcbWVHD1tThdpJnMBHHUwuUDH0O+lwhdDiOSJREdmD3SIMDL/kCUazZMJsYxJeNb0omgbkCMyuGVXW3ANVh6K/Yx/duSDd8GiZmaMzsjv5V/spyZMG+UzX2WiksYC8MceXe0FeAxLNea/v0znbgjc1N2VGrr0KpYs0RxLUPERjJPkWCgoTlFIWB1a6FonTkJgUAj7Fe8LBiAjDh+c8W88A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=RJR8f4d+flu5k5ui2ewShyxLCpZ2wcpirVVpVUDbxf0=;
 b=gCgwMH4XMfmXHOFmaI15w2YffYqhwsWZR+L3sLnxHiHTiXXqfmMfls4NnNsofzv0YZCV1xtSVIACG7bsAXyQx1G0IhHn2LZcJkuyDHqaVdDii4jVrgXlTxrAv0lnjsmTmB2NWQ7LVx8TsMOEko1vFSSXw+syCWFGLVxaDVvXQ+bWy6qkt2rxvmoVi/F6/3XbzNO1zFKlHYyp75/mPYDL5HMamNQ2R4EmTS+KMjdCkzoKilEXXvaBlZ05WF8oqYLwoa4rDhDIutQbw5GCxwVqazntSERd7b9xeqAngtRsNRSEce7sYkwFZigTHs/5pyvBNCu8+oh26H48DdtrHm2evw==
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=RJR8f4d+flu5k5ui2ewShyxLCpZ2wcpirVVpVUDbxf0=;
 b=l3tVlSuJSyLaW/WqLoZepQXD+r+CnA0R3IRDw9zf+2vcB6evr7WL9buTUHN+j0dZrEn6fs68xjwVCvlkItZzZf+2pTqmC4aHhEHXsOywNWle87Zj4irKNn4TGXVLPC9c3+O+KvqBsftSVF1asVr7qbamZ1mP/o7zg6n+Efg460M=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [PATCH v10 4/4] vpci/msix: Free MSIX resources when init_msix()
 fails
Thread-Topic: [PATCH v10 4/4] vpci/msix: Free MSIX resources when init_msix()
 fails
Thread-Index: AQHcBbvzKmM00rEmukmd//khB9ysKbRTtXeAgACIQQA=
Date: Tue, 5 Aug 2025 08:27:07 +0000
Message-ID:
 <BL1PR12MB5849F389E5CC38582EE9DBD9E722A@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20250805034906.1014212-1-Jiqian.Chen@amd.com>
 <20250805034906.1014212-5-Jiqian.Chen@amd.com>
 <889e32d2-b50f-4d61-b04b-6c73472abf23@suse.com>
In-Reply-To: <889e32d2-b50f-4d61-b04b-6c73472abf23@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: BL1PR12MB5849.namprd12.prod.outlook.com
 (15.20.8989.017)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BL1PR12MB5849:EE_|BL3PR12MB6473:EE_
x-ms-office365-filtering-correlation-id: bf698dac-b000-478e-bbc9-08ddd3f9dd8a
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?T2ErVUQwUEZrcEFpUTlJaDNqeXduOHV1dmUxd0dBdVpGUzc4QUNKZ0dGMFZu?=
 =?utf-8?B?YnVDODREZW4wNGFBMFdVTlM5emliOFI5ZTFSa0d0R3dnYVlmMEd4RVA0bjdV?=
 =?utf-8?B?czlwaExISk9id0hDMGFWaWkzd0xacmtjMDNtQ0tDVU9wQURHV1lDTXNYMytj?=
 =?utf-8?B?OTRZOERCVGd6ekVmSkNUWHptV2IzYWxKbmdENTdVdEhTalEybVNYYmh0bER0?=
 =?utf-8?B?bjJLUnlzMjFrMzZNcnFMdUlnUWsxV2lzWnEvcmxhdnJTTUtUOFNJOXZ3ZjJt?=
 =?utf-8?B?Q2hCR3lZejZTLzA2S09NdWtSRjU5QWhFdWJSQjRLQXdSazA4VWxLTE1HZW1W?=
 =?utf-8?B?MDNzMmdTcE14bk12RFoyNG5Ib0RNY2paTVcrVjcvSUhhdGRhQ1JlamJ0UzUv?=
 =?utf-8?B?RCtzNytUM3AzV1dSVlUzZjA3QkN1bVVYR0JWcVBLVklhSTAycnRvNjIxUUNO?=
 =?utf-8?B?Nk0xbFEzVEE4L2pqc1VrYlBiRjJLZEc1bTMzWFNDTkhzTzRmcEJ4T2dDSUli?=
 =?utf-8?B?bm9iV2lUc1NUazFwR2dSN1h1dVB1cjZOcXJLeEZGaXd0RnpEYWZIOXpTMUJM?=
 =?utf-8?B?NVdhT291dWZhSTQzdEcwS3k4bldwR042a1pTbVV3aXN6YWRtVHdTWUpydW5T?=
 =?utf-8?B?WlJURWVaWHo2SEpmTnpTK0tpbFZoZTA1VVkwcGlISmwyd1V6MEEveEV0RmQz?=
 =?utf-8?B?LzNSUlBWZVhOZDV3QmxkVkM1UXhJTHRMZHBpcFRLVTAxcnc1YmhYSlNGU0w2?=
 =?utf-8?B?RWNDQ2dlaXNlV0RxUEdHd0tnUXU1YmdHaVhFa3RDQ3h3aVR4c25uNGk5SVpB?=
 =?utf-8?B?N1BHNWlHdktOejVLd1JtQVdyUkZWNXE5V2U0eDl3ZVRoSXFHaFpRUnZySWVE?=
 =?utf-8?B?ZzRZZHc0QXJWNElxZ0tCRGc0cXZnOGtHYUJlYkhMTjZFUVBLWXhoUWFaWExw?=
 =?utf-8?B?SG0xSnlRYUhRMTY5QVI5YmF4QWFUM3NpWFFpcTJCUlZ6VEhhNzVoNEVuYVdT?=
 =?utf-8?B?elNadGdLQjEwcGx6Nm05YVczMXFkcjAvVnZDYUlSMUdPWXR0ZGJqTHlNSkJT?=
 =?utf-8?B?UTBCSXF0dmNVSWRERVNvLzhrdUg3RDhzaitkTWlFR1BBZk5CRW8zdlAxSlM1?=
 =?utf-8?B?QTlZUWpSMmR0VzZSQ0l6aXBMbTVrSnJTZDFlMXJKNlUwYnF3Z2crOEYvM1ZI?=
 =?utf-8?B?a1ZSNWlaUSt0MVhLMmpIb1VvWjlGeE9OYTRqb3FrenBWU1JuWE9IWkVrSnpr?=
 =?utf-8?B?NVcyVTB2bDZ3T1pTYmx0dkk5ajFvc0NtSTNObjNIdi9PeHpRYmRNTDV6bUVt?=
 =?utf-8?B?ZjVMYnoyNnpMNTlrQ0taVXRlZGxTUlNFakxFSmkwblNuVkhtM1lyKzNzVDJP?=
 =?utf-8?B?ODV5Q1YxZjdOQVhja0NubExYWnczUnh6YnhOTUhjQXlONU84SzRSSDkxYkdC?=
 =?utf-8?B?bkNEVFUyZTZUekhLYXhBNEVNNFRFYjhIY0FpcE9Wb0s0MXNwaWovdnd0OFVI?=
 =?utf-8?B?SW94eFcwQm91eDBTL25Wa0o2RkFSb2tYeFRRcWZ1UGVTVlN2RDFsU3FEdktC?=
 =?utf-8?B?eHZjOExwVXFrWWx4WTRFSUdtR08rWDV2TGI0YXpuM1ZyTmVoMmMwdHVDT0kz?=
 =?utf-8?B?Wkh1ZTU0T3UzN3FYZm1CTlRqckZRY2RCUU96NVFoZC9VYU90Nm5YQVlrOHBj?=
 =?utf-8?B?V3o0NVo0b09QRHkxbmgvcXdhL0huWHBqS1puVXFCMGxocFNJZ0I4RWZTSnRL?=
 =?utf-8?B?YzBBZjZXYWlFaUV5M3d4VjN0L1lJTXIxQXpxRzRIWTk3dXEvZk8zUmNZazZD?=
 =?utf-8?B?dm9LMDZDVEFqbUY4aHQwNG0rTlBuRkhUNGNyWWdJZ2tYMjdtRGhPOHFNYTBz?=
 =?utf-8?B?K2pWSXRXUXBvdzRQOGNsamVCNWVFRlIxVEZ2TEkyUnpQVUM1aXV4bFpNckJB?=
 =?utf-8?B?Zk5RMFRYc1FjdCt6azV2UjJSMkxRM29Nam5HZXYwN05Xa1BUaTFtN3FCZ2w5?=
 =?utf-8?Q?WiQ3/WK+UeLYrTE0h5W3izr+rlPnpI=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR12MB5849.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?a1A5aXNsOVVyYjZiZ2ptVHZxRHFCN1ZVNzlkSFV1bkpDUDV6T1lSQ0hvRXht?=
 =?utf-8?B?dVVPZ0IwSXVuWmZEMDdvSDRvdHEvN01DSXZjeWYrc1R4UTBKOHdTd09Ub09y?=
 =?utf-8?B?Z2NNWWJjQWVrNXdESTczbVdUUmR1ZG1NOXZxU3FQbHNybFpwYWxhQkVrTUg3?=
 =?utf-8?B?WHVuVnBDZXJPa01zN0drcnpwd0JSbjc2Z0NVNDNEc3JKa0Q2SjRpZWRnRGlS?=
 =?utf-8?B?STg2N25FeUZFeHlpNEtYSm1sSC9IQmoxbU1ndFpqRkZ0OXE5YzJuMkg2dUNB?=
 =?utf-8?B?N0o0WTc5RlNzYjRhVXEvTFJiYXJ6bDRobVoySXZOZ3dKTnNEVERFUWtxV29I?=
 =?utf-8?B?OWFkRlZiWitWcnZoU3NkR1lDVnZ6Y2tjbUNKOVlBY3duM01FTEVQckpTV3Rq?=
 =?utf-8?B?RzluZHRIcGNFZEF1aml0VmdxS295ckoxQ1crSXQxUldhOWtyTHZybWhQQ2Rn?=
 =?utf-8?B?ZGFzNUxPOENMWTNaZTB0QTVGTFdreUU1YlJ0bGpEaUhGb25KcExmR0lRQ2cz?=
 =?utf-8?B?bkRIMjcvdkd1Q1laeGRJQkZpSjcvQ3JmNkZ5cTZjZjM5WWl1blpyd09DTlE3?=
 =?utf-8?B?VXFnYXU0VGNMM3VoREthcGRybVdQbGVKcjUybmErSURxQko3Y21rZFdxS0VV?=
 =?utf-8?B?aExVak4vOHhKOHJGaEJLWWdmN1VZZ1BIOHAyNmxPZE9iSGdyYzRCZ3J3Ynpx?=
 =?utf-8?B?MWozclMzQlRWL2MrWWdiNzQwajJ2YzlhM01SeGFOVjdoak9rYWJIV1VXY2JL?=
 =?utf-8?B?UW5WL1ZSbjllbWtseCtBVFN1YjV2L2UxenVieTJCRGc3ZlpkQ0NudmFncGtk?=
 =?utf-8?B?ZnkrSThMSjIvcC9uYnc1aVJ5bWp4MVk5NzdFS0xRaTlyekJyWWhKb1R6aEh2?=
 =?utf-8?B?bkM5MjNLelZSOWVldk8zZzA2bFRZejdYOER6VE1JTjFpM2JwVit2SEpkWStJ?=
 =?utf-8?B?Q0VHb0tWRFRDN2FEVkJKVDg3NURxMjFsTkVlTWhyVXRXNHczTWQvaXZIREJC?=
 =?utf-8?B?L2ovYS9yN1ZKOUY5aU52dWFYSFJHQzBTdGpNSmRwelFlU0NRaVc1ZXhOcXIx?=
 =?utf-8?B?bWxLWTlqUmdiZTZFVVErODc4OUhqNVR5RDZsK29veHBhSHdKdENNQzFvM216?=
 =?utf-8?B?eDZGd1phb0RGZHY5OXZ1V2JGRUc5dEp2ajdCUjhLOGdHZ3liK2paY0xpUWRU?=
 =?utf-8?B?eGZlRUh5b2lFNnJEbkpNSUI0ekNMbk9MQndmdkRNeUt2dDNBNE1abE5LVlp4?=
 =?utf-8?B?a1ZpMHNpM3U0UkYzcTdIK0gzemkrSU9WSXlkSVpyZk5VaFBMSHFnYTNkSi85?=
 =?utf-8?B?T3ZiaUJHSXVqelZVSFBrRW5tc09PQkxwUFZ3RUVCRDFOSjkzbVNtUGhyK1Fv?=
 =?utf-8?B?bXRrME5hNjBlYitRc2lSbnNrRXExT2FnS3Z1djZQc1FQT1BqNnJKVm1SelNZ?=
 =?utf-8?B?T3loNkR6aVZWcWFTQ1ZGa01sUFpuRllvQ1RYbnBZNXR3N3lzaWFUeTZHUVgx?=
 =?utf-8?B?d2Fya3ZZZU44QVZUb1VUa2NKTlE0MGpqUkN4QWtvTGJJNlE1aDZlblRLbzh1?=
 =?utf-8?B?UnRvZ3YvcmNBdEcrZ0ZBUnd0ZmtxQVk0VXVXU0xMRFpoR0JYd3hnaE0vaWVi?=
 =?utf-8?B?ekRPVFdpR25hSWpiRmp0RWFCVlBFdG9XM205ZXFXNFc0MURyVmxYcEpCR3l3?=
 =?utf-8?B?U2l3SVl3Mkt1Y1NubW1ya3lxdVNjMHk4VTNvMlh3OFp2MkVOMExaV0pxZjdI?=
 =?utf-8?B?ZEJ2TVFnczBlZWh4TXBhY2NIQXVTVnJSZEc5N0JHNG51QmRBUVZoWkZEeFBx?=
 =?utf-8?B?bzRWSXlhaEo1MW16NUJBQUw4dVo5NmxkM3lVWS9WNFU5Wk0zQ0IweWcyYzA5?=
 =?utf-8?B?a0lTT0NpUEFHSFRXUmpPTVM1WG1pMDd5elQ1ZnlxVTViM1MzSlE5bVBoTzkz?=
 =?utf-8?B?TU1UYVcxdU5VMzVCUzA0WHloSlJxdDZ3VGxnOXhXVkZ1QndXcUM4QzBHQlVU?=
 =?utf-8?B?MHFsOVFWaWsvVHBNL0Yxd3JMaWRzMjlBT08vekovcEJpc2gyVTRwNUUwS2s3?=
 =?utf-8?B?K2Q4SVMwWE1mWjVqWWk4Z3NUazlRc2xXRzNpdjJwa01ab3puUnZBQ0F1VUFK?=
 =?utf-8?Q?7+Pw=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <4CAF7CDEDF9D5B4B88B94E0FEA1F00C3@amdcloud.onmicrosoft.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BL1PR12MB5849.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: bf698dac-b000-478e-bbc9-08ddd3f9dd8a
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Aug 2025 08:27:07.3209
 (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: ps+oSWIhSci4aStfOsacSZV/WmAIWxA07kFQE5crq1bpawsZn50sdr6kqtGNsvXUVmfZ0n129oNzLAD+kCl12g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR12MB6473

T24gMjAyNS84LzUgMTY6MTAsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAwNS4wOC4yMDI1IDA1
OjQ5LCBKaXFpYW4gQ2hlbiB3cm90ZToNCj4+IFdoZW4gTVNJLVggaW5pdGlhbGl6YXRpb24gZmFp
bHMgdlBDSSB3aWxsIGhpZGUgdGhlIGNhcGFiaWxpdHksIGJ1dA0KPj4gcmVtb3ZlIG9mIGhhbmRs
ZXJzIGFuZCBkYXRhIHdvbid0IGJlIHBlcmZvcm1lZCB1bnRpbCB0aGUgZGV2aWNlIGlzDQo+PiBk
ZWFzc2lnbmVkLiAgSW50cm9kdWNlIGEgTVNJLVggY2xlYW51cCBob29rIHRoYXQgd2lsbCBiZSBj
YWxsZWQgd2hlbg0KPj4gaW5pdGlhbGl6YXRpb24gZmFpbHMgdG8gY2xlYW51cCBNU0ktWCByZWxh
dGVkIGhvb2tzIGFuZCBmcmVlIGl0J3MNCj4+IGFzc29jaWF0ZWQgZGF0YS4NCj4+DQo+PiBBcyBh
bGwgc3VwcG9ydGVkIGNhcGFiaWxpdGllcyBoYXZlIGJlZW4gc3dpdGNoZWQgdG8gdXNlIHRoZSBj
bGVhbnVwDQo+PiBob29rcyBjYWxsIHRob3NlIGZyb20gdnBjaV9kZWFzc2lnbl9kZXZpY2UoKSBp
bnN0ZWFkIG9mIG9wZW4tY29kZSB0aGUNCj4+IGNhcGFiaWxpdHkgc3BlY2lmaWMgY2xlYW51cCBp
biB0aGVyZS4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBKaXFpYW4gQ2hlbiA8SmlxaWFuLkNoZW5A
YW1kLmNvbT4NCj4+IC0tLQ0KPj4gY2M6ICJSb2dlciBQYXUgTW9ubsOpIiA8cm9nZXIucGF1QGNp
dHJpeC5jb20+DQo+PiAtLS0NCj4+IHY5LT52MTAgY2hhbmdlczoNCj4+ICogQ2FsbCBhbGwgY2xl
YW51cCBob29rIGluIHZwY2lfZGVhc3NpZ25fZGV2aWNlKCkgaW5zdGVhZCBvZiBjbGVhbnVwX21z
aXgoKS4NCj4gDQo+IElzbid0IHRoaXMgcmF0aGVyIGFuIG9taXNzaW9uIGluIGFuIGVhcmxpZXIg
Y2hhbmdlLCBhbmQgaGVuY2UgbWF5IHdhbnQgdG8NCj4gY29tZSBzZXBhcmF0ZWx5IGFuZCB3aXRo
IGEgRml4ZXM6IHRhZz8NClRoaXMgaXMgbm90IHJlYWxseSBhbiBvbWlzc2lvbiwgYWZ0ZXIgYWxs
LCBhbGwgdGhlIGNsZWFudXAgaG9va3Mgd2VyZSBpbXBsZW1lbnRlZCBhdCB0aGUgZW5kIG9mIHRo
aXMgc2VyaWVzLg0KQW5kIGp1ZGdpbmcgZnJvbSB0aGUgY29tbWl0IG1lc3NhZ2Uod2hpY2ggd2Fz
IHdyaXR0ZW4gYnkgUm9nZXIgaW4gdjgpLCBSb2dlciBhbHNvIGFncmVlZCB0byBhZGQgdGhlbSBp
biB0aGlzIHBhdGNoLg0KDQo+IA0KPj4gLS0tIGEveGVuL2RyaXZlcnMvdnBjaS92cGNpLmMNCj4+
ICsrKyBiL3hlbi9kcml2ZXJzL3ZwY2kvdnBjaS5jDQo+PiBAQCAtMzIxLDYgKzMyMSwyNyBAQCB2
b2lkIHZwY2lfZGVhc3NpZ25fZGV2aWNlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQ0KPj4gICAgICAg
ICAgICAgICAgICAgICAgJnBkZXYtPmRvbWFpbi0+dnBjaV9kZXZfYXNzaWduZWRfbWFwKTsNCj4+
ICAjZW5kaWYNCj4+ICANCj4+ICsgICAgZm9yICggaSA9IDA7IGkgPCBOVU1fVlBDSV9JTklUOyBp
KysgKQ0KPj4gKyAgICB7DQo+PiArICAgICAgICBjb25zdCB2cGNpX2NhcGFiaWxpdHlfdCAqY2Fw
YWJpbGl0eSA9ICZfX3N0YXJ0X3ZwY2lfYXJyYXlbaV07DQo+PiArICAgICAgICBjb25zdCB1bnNp
Z25lZCBpbnQgY2FwID0gY2FwYWJpbGl0eS0+aWQ7DQo+PiArICAgICAgICB1bnNpZ25lZCBpbnQg
cG9zID0gMDsNCj4+ICsNCj4+ICsgICAgICAgIGlmICggIWNhcGFiaWxpdHktPmlzX2V4dCApDQo+
PiArICAgICAgICAgICAgcG9zID0gcGNpX2ZpbmRfY2FwX29mZnNldChwZGV2LT5zYmRmLCBjYXAp
Ow0KPj4gKyAgICAgICAgZWxzZSBpZiAoIGlzX2hhcmR3YXJlX2RvbWFpbihwZGV2LT5kb21haW4p
ICkNCj4+ICsgICAgICAgICAgICBwb3MgPSBwY2lfZmluZF9leHRfY2FwYWJpbGl0eShwZGV2LT5z
YmRmLCBjYXApOw0KPiANCj4gV2hhdCdzIHRoZSBwb2ludCBvZiBkb2luZyB0aGlzIHdoZW4gLi4u
DQo+IA0KPj4gKyAgICAgICAgaWYgKCBwb3MgJiYgY2FwYWJpbGl0eS0+Y2xlYW51cCApDQo+IA0K
PiAuLi4gLT5jbGVhbnVwIGlzIE5VTEw/IERvbid0IHlvdSB3YW50IHRvIGhhdmUNCj4gDQo+ICAg
ICAgICAgaWYgKCAhY2FwYWJpbGl0eS0+Y2xlYW51cCApDQo+ICAgICAgICAgICAgIGNvbnRpbnVl
Ow0KPiANCj4gZWFybGllciBvbj8NCldpbGwgY2hhbmdlIGluIG5leHQgdmVyc2lvbi4NCg0KPiAN
Cj4gSmFuDQoNCi0tIA0KQmVzdCByZWdhcmRzLA0KSmlxaWFuIENoZW4uDQo=


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 08:40:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 08:40:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070146.1433796 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujDDJ-0006Fe-HG; Tue, 05 Aug 2025 08:40:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070146.1433796; Tue, 05 Aug 2025 08:40: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 1ujDDJ-0006FX-E9; Tue, 05 Aug 2025 08:40:05 +0000
Received: by outflank-mailman (input) for mailman id 1070146;
 Tue, 05 Aug 2025 08:40:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=j2i0=2R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujDDI-0005ya-AS
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 08:40:04 +0000
Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com
 [2a00:1450:4864:20::52f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c71b0e67-71d7-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 10:40:02 +0200 (CEST)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-61553a028dfso5301923a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 01:40: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
 4fb4d7f45d1cf-615a8f2b892sm8116926a12.25.2025.08.05.01.40.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Aug 2025 01:40: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>
X-Inumbo-ID: c71b0e67-71d7-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754383202; x=1754988002; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=i2NlffeOdCnrYZXWUB7kK6H60KrPAmWA40eCyBTflCQ=;
        b=WW4dp2iGOpL/N4Sclubetu7ghxjYfeT2DGgsvk/dELWjYCVk7BbnMtXIDhVc8DVAlo
         ME/WE0j6rZn6ZdoVVCqnWzdCr9pqofu/e0AQ+0byL1HHlcPkXawK3E3e1QVWTldNbCnZ
         uYXR+AiFn4h7gXBZvsxOsjsAKb3v4CNnWtp8ngrVJO6WneZ1yHu/Z52hf0bvnOJHq8qd
         oqKdI/oY/xuwsp691/K8mUzEO+Ir40+8yKLlsZ/6NcxJSSj4LmIaZEo0zxOHEsFwtFNj
         GoxUi1cug0/bDvzCqe9uzs6wffXILIHnDATvG2vRDEDYUagUbdsrsz8KJHL/03ZKD4Om
         fZOA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754383202; x=1754988002;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=i2NlffeOdCnrYZXWUB7kK6H60KrPAmWA40eCyBTflCQ=;
        b=RvPePFWitFwMmU5vX/d/rolTbgsOcf/stR8Xm14ao+w0somo/yR64ApcxTLEE19Kgy
         larOz5LQcLMyYtBlg3+pHVVQ/qs1WctZg/4V4haRBnkRsikZLt1wW2As/u7wgYx6X85B
         lulVJ/3T6ocknBKiOCRWCHJt+44+J33Sa8VRweHB5s9S9+1mAuFPZErB00zx6srPwt/+
         FvG6dHhqbDHEzp179cIPAUOd3Ts6DbNVA3lMrwB006APHwAhv8fpCeXWnGukZMRfV8Vm
         QvUoywu0C9LykJv8UfuL0THSMD6amyga8Zzc4hq5dSWdL5LNQM5+crZoPTGj2iYxZkKY
         cs6w==
X-Forwarded-Encrypted: i=1; AJvYcCV4AqzQxc+Pesc9YVJ0EM6QAfhFuJm0KMNEkBgyEZXdhA2tCOJKvy6QcbamBRnTuB0Qy5N/5jjK97M=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyVZYE/Ibzt2Vam8Ha6iG5QUfO5oELQGGOPOrdMLumuQ1lWq3FY
	9CFy6PrNHiz1PwjQMJQ6ZS2Ay+b8oBPIaRRsj9829Hwf+P2Y1mOa/45Nd6zL1YWjOA==
X-Gm-Gg: ASbGnctg1Q0Bc3M/ydcqlhZS50q8x3uR98r2Wd2khGd0SHHLX3E+DU+nMGIw92cBEsV
	dkg6gHvgxgzJYISiv4C8i82putXWWlL9VPcL7E1Dvr+bGt+EqHC+e0nJYUL3AwBLShy8pKEJUKB
	C+CtW8WV2JENPU07MPk2jyYPlWYZZ/BPCMcBhX9+25fvxJVb+/h16SNYOy4G17rPII7T5cOT1si
	CNjMXDbp8OI3vS0u7c5Lzkn+TmMRoAqZ4TuUi1SraiIeFzh2EIserMt7cjC2KZFFtsk2Ftm27cl
	as2MUNJiPe+BlcSFHVSPyjKkBDUIG7G/Zu992+W5HbykGdwPWi7NblnR7kMoriSAoaTDyE2lC1I
	x6Kvaq47aEJBVuJz1FnJKcBh4ZwTErtFBaJYwn7YAH02CAGMLrxhAa95dU3pF/qSn6qe6JJ6QwR
	i9Oy5Oktc=
X-Google-Smtp-Source: AGHT+IE9HdvNTef1Os3u9z16/53e5fVAdHFLGh+026hPSxjSdSLcbE2ESu4GRpBvRO5hgFhrJMF2cA==
X-Received: by 2002:a05:6402:3546:b0:615:6481:d1c with SMTP id 4fb4d7f45d1cf-615e6ebc410mr10069910a12.1.1754383201604;
        Tue, 05 Aug 2025 01:40:01 -0700 (PDT)
Message-ID: <0c8458ea-9977-4ba9-8668-b09a65cf9172@suse.com>
Date: Tue, 5 Aug 2025 10:40:00 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v10 4/4] vpci/msix: Free MSIX resources when init_msix()
 fails
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: "Huang, Ray" <Ray.Huang@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20250805034906.1014212-1-Jiqian.Chen@amd.com>
 <20250805034906.1014212-5-Jiqian.Chen@amd.com>
 <889e32d2-b50f-4d61-b04b-6c73472abf23@suse.com>
 <BL1PR12MB5849F389E5CC38582EE9DBD9E722A@BL1PR12MB5849.namprd12.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: <BL1PR12MB5849F389E5CC38582EE9DBD9E722A@BL1PR12MB5849.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.08.2025 10:27, Chen, Jiqian wrote:
> On 2025/8/5 16:10, Jan Beulich wrote:
>> On 05.08.2025 05:49, Jiqian Chen wrote:
>>> When MSI-X initialization fails vPCI will hide the capability, but
>>> remove of handlers and data won't be performed until the device is
>>> deassigned.  Introduce a MSI-X cleanup hook that will be called when
>>> initialization fails to cleanup MSI-X related hooks and free it's
>>> associated data.
>>>
>>> As all supported capabilities have been switched to use the cleanup
>>> hooks call those from vpci_deassign_device() instead of open-code the
>>> capability specific cleanup in there.
>>>
>>> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
>>> ---
>>> cc: "Roger Pau MonnÃ©" <roger.pau@citrix.com>
>>> ---
>>> v9->v10 changes:
>>> * Call all cleanup hook in vpci_deassign_device() instead of cleanup_msix().
>>
>> Isn't this rather an omission in an earlier change, and hence may want to
>> come separately and with a Fixes: tag?
> This is not really an omission, after all, all the cleanup hooks were implemented at the end of this series.
> And judging from the commit message(which was written by Roger in v8), Roger also agreed to add them in this patch.

I disagree. Of the two xfree()-s you remove here from vpci_deassign_device(),
one should have been removed by patch 3 already. Which would require the
part of the patch here to be put in place earlier on.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 08:43:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 08:43:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070154.1433806 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujDGL-00071g-Ud; Tue, 05 Aug 2025 08:43:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070154.1433806; Tue, 05 Aug 2025 08:43: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 1ujDGL-00071Z-RS; Tue, 05 Aug 2025 08:43:13 +0000
Received: by outflank-mailman (input) for mailman id 1070154;
 Tue, 05 Aug 2025 08:43:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=j2i0=2R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujDGK-00071S-Go
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 08:43:12 +0000
Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com
 [2a00:1450:4864:20::633])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 37c5bf04-71d8-11f0-a321-13f23c93f187;
 Tue, 05 Aug 2025 10:43:11 +0200 (CEST)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-af95d5c0736so371859966b.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 01:43: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
 a640c23a62f3a-af95734a066sm473288766b.44.2025.08.05.01.43.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Aug 2025 01:43: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>
X-Inumbo-ID: 37c5bf04-71d8-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754383391; x=1754988191; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=V4fSyvszulgMiK4p6iZF4g3R+UZYXDJHthT6RzS213w=;
        b=DazP84ZdpEcrIiYNUu4/6tQ526TrNE+msP6dYEk8GLCE+EfUJnOQDgvEgP1RSiI6Wn
         5tPd7WdyK2ktgPXLghQ5z2haE/CAe8xQWFk2Kf0T9M2vgUC8ImF7egCyALzmBFDToLaz
         UcE4X8R34I1mzt9/rIH64mLYPrIV+ZevIbQ3LJJ2NYBNZX7qxL8MgDaL9mzYdOxOykss
         pJV/28/FHNKPVxY94DN046/UQMc+0Wi09qgv7X0QWW8I/koqy3T1LsmUkNMcYy9EOukn
         gY+NOZRxcwJWnY8udNVH2f0nBsaFgILOrajtPNbUhn6S2QZKsCKRwQRpliCx1M4S6jFe
         ytCg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754383391; x=1754988191;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=V4fSyvszulgMiK4p6iZF4g3R+UZYXDJHthT6RzS213w=;
        b=LbzOdm3ES/qFQuQf4o3us9TNVNXlQSwoh9LMOfgj1YF3CkAG6uRlc1JFDEvSKDOPrs
         JdCSxzJeHSynYwu14uEC4fIX4TAhMWME4G3H3HKviF/BS3srYXrOh6eT4YY7otNUy/8k
         9eYHSwI6dlpVPZZ/kC+6KYkUk0N6koEM0TjvWaODXBG6apcNvFq5T8g31WAVXJyja1jf
         XdFpdmGnqNCUQz86NAbKA/GQqe/Bmzo/FfHstV9ndzHCoKG2Fm/RopTU2xw/nhpb+F8p
         mWWAw/8bPuv54apPPd9gESdeQAJr7Kh9vLpqvGfbGVP+YrsWoJyFtgkCVA+AfrEpcGIs
         1stg==
X-Forwarded-Encrypted: i=1; AJvYcCWlmL94U0jc5zgnkJk14q/lW2GLEMR+aPdrRcXriH4vhScd3iv/nvR5XfLzbUNi9LCd49YNWwy7IZ0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyIsEn/gjvvzSo4Fpp5eeXt3Sjn0p5HbE28xGstpyPzpZKpwElv
	VWEYdaa9gKpUVDMhNO7LohVQsn7xFekPo+XiPhkYeQ3B7QB7frRrmCb3898VvWgrpA==
X-Gm-Gg: ASbGnctILw3R1uxO6OQEpsdzPPZUl8EQHrc+CDIgb0mYOhw7RDl2c1UBmrf1x2bP3sr
	68snK+IukckksmxXk9znI3g3ulkxPnw0DM9SFkQJVyrtsA/qVkDjlu7eyHEzBSJVnokecJwraBD
	3HQ+LuvfrZ2tyVWWEjhv55FYWVihV2BAp5ScgEJQhVK2y/1H1HsgCBa6ed8zYNHinaayejDPhtC
	LKjeHwfGV8VLypnQv5y22USkyhZkumi0/u5dev0jYobUZEoyV3/jyfq+RBjVEh48/F70bHGptlZ
	kYlIEkvbwU7IIUKDWWDZhfEjNHIy/wiYpnJCyog8NYIqhb1PDvFhGPy2f0w6vJ6COLFnOCZydPp
	QLA5U+BcymPT8PwutHoCAlr0kf1B60NXCMKnFYGnhJH+fF1OE56ik9Xb4ZHXC0b7syiG07o+5B1
	UHm8a0y9I=
X-Google-Smtp-Source: AGHT+IHSwlbHv+hWiAJogUWtSvd96V21OesInd0hVXYR0ClHmVXvjZPM5ALoobdKfxh7Rw+op28wtQ==
X-Received: by 2002:a17:907:3e14:b0:af9:7b49:c0 with SMTP id a640c23a62f3a-af97b49031amr319861166b.29.1754383390614;
        Tue, 05 Aug 2025 01:43:10 -0700 (PDT)
Message-ID: <775a45bd-61df-4cab-948e-bdc79dfd89ef@suse.com>
Date: Tue, 5 Aug 2025 10:43:09 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v10 4/4] vpci/msix: Free MSIX resources when init_msix()
 fails
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: Huang Rui <ray.huang@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <20250805034906.1014212-1-Jiqian.Chen@amd.com>
 <20250805034906.1014212-5-Jiqian.Chen@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: <20250805034906.1014212-5-Jiqian.Chen@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.08.2025 05:49, Jiqian Chen wrote:
> --- a/xen/drivers/vpci/msix.c
> +++ b/xen/drivers/vpci/msix.c
> @@ -655,6 +655,48 @@ int vpci_make_msix_hole(const struct pci_dev *pdev)
>      return 0;
>  }
>  
> +static int cf_check cleanup_msix(const struct pci_dev *pdev)
> +{
> +    int rc;
> +    struct vpci *vpci = pdev->vpci;
> +    const unsigned int msix_pos = pdev->msix_pos;
> +
> +    if ( !msix_pos )
> +        return 0;
> +
> +    rc = vpci_remove_registers(vpci, msix_control_reg(msix_pos), 2);
> +    if ( rc )
> +    {
> +        printk(XENLOG_ERR "%pd %pp: fail to remove MSIX handlers rc=%d\n",
> +               pdev->domain, &pdev->sbdf, rc);
> +        ASSERT_UNREACHABLE();
> +        return rc;
> +    }
> +
> +    if ( vpci->msix )
> +    {
> +        list_del(&vpci->msix->next);
> +        for ( unsigned int i = 0; i < ARRAY_SIZE(vpci->msix->table); i++ )
> +            if ( vpci->msix->table[i] )
> +                iounmap(vpci->msix->table[i]);
> +
> +        XFREE(vpci->msix);
> +    }
> +
> +    /*
> +     * The driver may not traverse the capability list and think device
> +     * supports MSIX by default. So here let the control register of MSIX
> +     * be Read-Only is to ensure MSIX disabled.
> +     */
> +    rc = vpci_add_register(vpci, vpci_hw_read16, NULL,
> +                           msix_control_reg(msix_pos), 2, NULL);
> +    if ( rc )
> +        printk(XENLOG_ERR "%pd %pp: fail to add MSIX ctrl handler rc=%d\n",
> +               pdev->domain, &pdev->sbdf, rc);

Here as well as for MSI: Wouldn't this better be limited to the init-failure
case? No point in adding a register hook (and possibly emitting a misleading
log message) when we're tearing down anyway. IOW I think the ->cleanup()
hook needs a boolean parameter, unless the distinction of the two cases can
be (reliably) inferred from some other property.

> --- a/xen/drivers/vpci/vpci.c
> +++ b/xen/drivers/vpci/vpci.c
> @@ -321,6 +321,27 @@ void vpci_deassign_device(struct pci_dev *pdev)
>                      &pdev->domain->vpci_dev_assigned_map);
>  #endif
>  
> +    for ( i = 0; i < NUM_VPCI_INIT; i++ )
> +    {
> +        const vpci_capability_t *capability = &__start_vpci_array[i];
> +        const unsigned int cap = capability->id;
> +        unsigned int pos = 0;
> +
> +        if ( !capability->is_ext )
> +            pos = pci_find_cap_offset(pdev->sbdf, cap);
> +        else if ( is_hardware_domain(pdev->domain) )
> +            pos = pci_find_ext_capability(pdev->sbdf, cap);
> +
> +        if ( pos && capability->cleanup )
> +        {
> +            int rc = capability->cleanup(pdev);
> +            if ( rc )
> +                printk(XENLOG_ERR "%pd %pp: clean %s cap %u fail rc=%d\n",
> +                       pdev->domain, &pdev->sbdf,
> +                       capability->is_ext ? "extended" : "legacy", cap, rc);
> +        }
> +    }

With this imo the patch subject is now wrong, too.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 08:48:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 08:48:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070167.1433816 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujDLP-0007eC-GX; Tue, 05 Aug 2025 08:48:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070167.1433816; Tue, 05 Aug 2025 08: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 1ujDLP-0007e5-Do; Tue, 05 Aug 2025 08:48:27 +0000
Received: by outflank-mailman (input) for mailman id 1070167;
 Tue, 05 Aug 2025 08:48:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=j2i0=2R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujDLO-0007dN-0f
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 08:48:26 +0000
Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com
 [2a00:1450:4864:20::532])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f279791c-71d8-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 10:48:24 +0200 (CEST)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-615622ed70fso8101230a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 01: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
 a640c23a62f3a-af91a0df10asm860581966b.59.2025.08.05.01.48.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Aug 2025 01: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>
X-Inumbo-ID: f279791c-71d8-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754383704; x=1754988504; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=RI2VX13MI7ulpHZ+PIe7JcNxs3UwWqLyUqlMvQmY7sU=;
        b=gf0JeYoIF7uuOuuSiJd6zkCci3K5RnTsJ1Pir4NHkVx4kPfLGVuPm0uIJExYmK9ada
         IO82io9QDlSBoJFZPQvmxqkAG3UGh6xF1FGknrWivVjBYC6aMqpcJ6OI86/DHz+qD/74
         26bvGiJAmQYpoXWcE4oH9aHXeLqHLAVJoUe2ieGjav4YEK3syEy2xWCa1FxzzRVnaAFP
         yEpFMuYOfNarcGILI7BA8qCR+40whEj3e5DNXD/NSPba6QsPwKvGfcugfsjMuYuTscT3
         1XmlfQqB6j45ItOpSWgioiTPeCArvn73KlPv9VtjkIK56hiL9CaRrArjQ4vjubX3RcE+
         5BTg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754383704; x=1754988504;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RI2VX13MI7ulpHZ+PIe7JcNxs3UwWqLyUqlMvQmY7sU=;
        b=ONXUAjhndOvSmlWLJCZjdGYo+lvqao1a1xFoDIMsxILG+9v9ViwCQn7Ra+96ywHOn7
         /hndnT01qLC9sxIR4Kxax8kfxW9xVYv8PwxsWzcV/lTUqA0Xr+oBkHZIooUL3L6t3ESy
         +fSNCg/W5k8OJml9Ug7yQHn3FPwlGacq2Nnh1mxJJGpj1Lkqw5eHF+buUpmDImXsRT6d
         GZlRrh0X5DzeGzpm+yc28m07FqoRIkHeGFenMUXKdL3IQMHL6m7LyaWnsDGrBdyW8WiB
         02jg5Eo7eMJwvYHOIeVwGMhhJQZ/YFTjBKmU824K0Hmh6kph5QQhTerYg/geev/nlj0o
         jg2g==
X-Forwarded-Encrypted: i=1; AJvYcCX1Mx3vTnQHM46ozz8zoNdoogdMhXGTgwibuyVQdqZF7BQ134RTU/svBWt+HhVqU73u4e9UqBmzBk0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywfw9RwDSyh0cY43ixoGJ0dMvLn9cjJR5pJOoXbWhz0l4pqWrsd
	nAEtjzedcbgqG5qYa/5AtMEMyNXUIqHgtxwDgewUveLnu6S5jWUp7vOIbFSN96g6cQ==
X-Gm-Gg: ASbGncvvGT2nqecyjG+MwCPjYMw+tnqIlMVBlwKtJhNzG1hlfjIAhXo4LOwHdRYh2Fy
	UCjeoOi+L3zp1xE+H8Z0RSnhb7blJ88uHZWu0laJoJ+qgeMU45l7asC+qeo7OzDY0H5cZ5qR9E7
	JvLVEi9xe7ez5opUZrvusTbo1qweWwg6DhszwIyGV2AIfRxt/gqKbMeUhAq2+lZ+lyixhpol38e
	YEQB5atyeix2TMxWPBf5WjyPQ8JocdsZvFebNFETe3KG19BY+VZgBeqCz7D8oJ1f3fp3vPg9saK
	JHsX8ONAbOPjHeff/J+hzZ72+qXYq6qoH5ID7TliZckLXAu1OgMvWQG4I/qigk2awtjXu4ui1+I
	poy8PVVxOrdCGWwygIhsPPYxgWYJ9/tRJFTaCCpQQaT52eL2QodhvyswxQlIeb6Doe9bniGHTK7
	38ISRYti0=
X-Google-Smtp-Source: AGHT+IFrw/qfJ8SGJVZMOh58Xvty5DKFRik5nQ6f5ywQQwLxCJ1FmxYX71FQnmdcJo395rmTvoMGwQ==
X-Received: by 2002:a17:907:f497:b0:af9:1c73:cefd with SMTP id a640c23a62f3a-af940247d01mr1279712666b.52.1754383703764;
        Tue, 05 Aug 2025 01:48:23 -0700 (PDT)
Message-ID: <a14449dd-a7dd-4369-9e73-656442b36f2a@suse.com>
Date: Tue, 5 Aug 2025 10:48:22 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v10 2/4] vpci/rebar: Free Rebar resources when
 init_rebar() fails
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: Huang Rui <ray.huang@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <20250805034906.1014212-1-Jiqian.Chen@amd.com>
 <20250805034906.1014212-3-Jiqian.Chen@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: <20250805034906.1014212-3-Jiqian.Chen@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.08.2025 05:49, Jiqian Chen wrote:
> --- a/xen/drivers/vpci/rebar.c
> +++ b/xen/drivers/vpci/rebar.c
> @@ -49,6 +49,32 @@ static void cf_check rebar_ctrl_write(const struct pci_dev *pdev,
>      bar->guest_addr = bar->addr;
>  }
>  
> +static int cf_check cleanup_rebar(const struct pci_dev *pdev)
> +{
> +    int rc;
> +    uint32_t ctrl;
> +    unsigned int nbars;
> +    unsigned int rebar_offset = pci_find_ext_capability(pdev->sbdf,
> +                                                        PCI_EXT_CAP_ID_REBAR);
> +
> +    if ( !rebar_offset || !is_hardware_domain(pdev->domain) )
> +    {
> +        ASSERT_UNREACHABLE();
> +        return 0;
> +    }
> +
> +    ctrl = pci_conf_read32(pdev->sbdf, rebar_offset + PCI_REBAR_CTRL(0));
> +    nbars = MASK_EXTR(ctrl, PCI_REBAR_CTRL_NBAR_MASK);
> +
> +    rc = vpci_remove_registers(pdev->vpci, rebar_offset + PCI_REBAR_CAP(0),
> +                               PCI_REBAR_CTRL(nbars - 1));
> +    if ( rc )
> +        printk(XENLOG_ERR "%pd %pp: fail to remove Rebar handlers rc=%d\n",
> +               pdev->domain, &pdev->sbdf, rc);

MSI and MSI-X (now) have ASSERT_UNREACHABLE() on their respective paths. Is
there a reason this shouldn't be done here as well?

MSI and MSI-X further have another add-register below here, to ensure the
control register cannot be written. Again - is there a reason the same
shouldn't be done here? (If so, I think this may want putting in a comment.)

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 09:06:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 09:06:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070179.1433826 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujDdD-0002MF-UZ; Tue, 05 Aug 2025 09:06:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070179.1433826; Tue, 05 Aug 2025 09:06: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 1ujDdD-0002M8-Qo; Tue, 05 Aug 2025 09:06:51 +0000
Received: by outflank-mailman (input) for mailman id 1070179;
 Tue, 05 Aug 2025 09:06:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=xH0J=2R=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1ujDdB-0002M0-Vy
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 09:06:50 +0000
Received: from NAM02-BN1-obe.outbound.protection.outlook.com
 (mail-bn1nam02on2061a.outbound.protection.outlook.com
 [2a01:111:f403:2407::61a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 80bc8f6a-71db-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 11:06:43 +0200 (CEST)
Received: from BN8PR03CA0023.namprd03.prod.outlook.com (2603:10b6:408:94::36)
 by SA5PPF5EA4322E1.namprd12.prod.outlook.com
 (2603:10b6:80f:fc04::8cc) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8964.25; Tue, 5 Aug
 2025 09:06:37 +0000
Received: from BL02EPF00021F68.namprd02.prod.outlook.com
 (2603:10b6:408:94:cafe::4d) by BN8PR03CA0023.outlook.office365.com
 (2603:10b6:408:94::36) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.21 via Frontend Transport; Tue,
 5 Aug 2025 09:06:37 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL02EPF00021F68.mail.protection.outlook.com (10.167.249.4) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Tue, 5 Aug 2025 09:06:37 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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 Aug
 2025 04:06:36 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 5 Aug
 2025 04:06:36 -0500
Received: from [172.17.155.73] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Tue, 5 Aug 2025 04:06:35 -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>
X-Inumbo-ID: 80bc8f6a-71db-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Zf+kM+pHdcSlGEbmUNLR+NjP/jtUUlryw/aWMs55ZTcILKpqBdOdcf2SeDf92D2hO+iAzCE1Sr/i/xHSkfqaUrAuxdaYug2sBQc29upXSGoHviPgyX+PDaMjgekHQtuWYvVOibvezKIwgWO5WFNwZsyl2zb8sXI7CCpMQQv7gu13NgT4zfmcRvF3V710v9MRAPD/oVQ228K46H10F4wUqpW2J6t6UkmP4y8YUTgEb18rPg51FU8evtlVpwgTq5jXp+ojWWfZ+C84+q9aP/7qBwR/AhRVuJNo1Hthglk0/jXTNuPt9R1ui7SghBu0/qq5wQVzmm7dLikgijXBzCtGLA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=BbzFTXG6Tdv6VDFdu/L7lY5UwU2AqKK7iKjpcfjzHco=;
 b=MvAC7xdImvDp13CZ8dVyVq9P1N4bQBYy++TW+l7bJqKcgZu2MoN4MzqArfJXcAGPPtfaYbpcqcRIN8ogty/KoPFLcQyb7yjMyl12Xacdmh9U6cunerhuOBQVOWArGTJ2oB855Esq+MUt2eedeYHG9R4AD5z/daSUrHypdB1J1gdMp/9COWFVZFawiUDtpQVE5wdMxHmNLDi9vIQCmuqYhHhYQ4ei0znxIM96JCg9TjBH1Y+U6PzxsUipazWe/KeFiHTEBHUefmFrZ6KVt1/tJGmMLxQNz+IbJ/2aSKU0+leW/mtoDLUEGz/pYfa+uAM/GeajNzVVvnUQEPKA+zG0cw==
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=BbzFTXG6Tdv6VDFdu/L7lY5UwU2AqKK7iKjpcfjzHco=;
 b=aDtWgKAPn6OJWQQ/ipYYIJv/c6G49uwOG+/ibVcaASaM8QwpQ1+x/g04j1R6jnhnMcEedvW1rH+QvhfKAK0wDGM65XJ41Bgp7H8lA97SHCL1u105SfmuEt0VihsSFp/z4zASzOIzDEqeA0l1sJbyN6jf19xxStK2sprx3cLzwDA=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <07c5f672-034a-46f0-a563-081a0d4ad0d5@amd.com>
Date: Tue, 5 Aug 2025 05:06:30 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen: rework error handling in vcpu_create
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>, "Dario
 Faggioli" <dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>, "George
 Dunlap" <gwd@xenproject.org>, <xen-devel@lists.xenproject.org>
References: <20250801202418.38977-1-stewart.hildebrand@amd.com>
 <52ea4f10-26b4-447b-8753-0e4287a03408@suse.com>
 <e7344494-8ac1-42a6-94a8-52a46f7f691a@amd.com>
 <795cf4c1-07be-47a5-b807-074b165650c4@suse.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <795cf4c1-07be-47a5-b807-074b165650c4@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB05.amd.com: stewart.hildebrand@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF00021F68:EE_|SA5PPF5EA4322E1:EE_
X-MS-Office365-Filtering-Correlation-Id: e0ef121d-69c8-48a8-bbc9-08ddd3ff6221
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|82310400026|1800799024|7416014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?UTVsZUdMblVIeDZpVCtsaFhOVzZ0Q1ZhaFZxUlloRkoreVVUUlJnaDhZdHQ4?=
 =?utf-8?B?Ujh2ektmYTVFQldoMllIM0oyVm5INnR5OGtXSG05MHZYTFhNUGtjVlpxTmM2?=
 =?utf-8?B?QlVHQXlucTM2RmFjSk9kYVdoU3pMcld3cHQrcHNhZ1BrVW5aTzd3Y0RqWlMx?=
 =?utf-8?B?MHJ3TGNOaEFCcHY5dGIvVUxxbEQya3BsbDNlVzlweGgxQmFpV0xxZ0tOblQv?=
 =?utf-8?B?ek50UWFLN3AzK0FaUElnZnFEMU5TOS9iNVByejU1dG5VK3ZwejlaYTJ0c0VT?=
 =?utf-8?B?ekZrRVZoVmM0aVhNaXdKNjFXd0lxYXdCdHVnOURZYjBORjdvOTArVk9rOHBY?=
 =?utf-8?B?NythUWkzeEovQm1JdEIvUnNmRXg1SDVtbDNXQ3VOUllpVkJrVEh0Vk5mMCto?=
 =?utf-8?B?azhhbUY3RERwbkJTOS9ESXUzYVVQOGc4SExzNktod2puWk9EaGhjYVhzT0Jh?=
 =?utf-8?B?eDF1bGs4UGlkdk9ZVkFXMXFVa2NYQW9zTlpVbXBqcVdSMVhKM1Q0S201MFEw?=
 =?utf-8?B?enZlcGtLZUZ1U1cwREJKVElaSkJ2Ym56MzZIMCtxL1ZrRjRkUDg3bldVZDdU?=
 =?utf-8?B?bFdDME84bTNIMkpqU3kzTEMzWGVzenEyZkVBSzJGL2NjVWc5b0ROcWxzNHQw?=
 =?utf-8?B?ZncrZmpSNTFBUm81U1JCSGFNVEJBOWRKQXFvVlFjM2NNdVBWdTVjV2dCVm9o?=
 =?utf-8?B?MGY2dnhtbnR2QkdnTU9kU2RCdXlCaEFUY3pvb3pEU2ZjcE4rc3JsR2lmdFI2?=
 =?utf-8?B?RnlscUZJWisvV0FCcGpCZmtIZmlic0FRditwdVNBYmd1a2ZETW1FMm1URVVX?=
 =?utf-8?B?V0t4RnYxMFp0MWdLeFpMSGx5Y0pNK3lxUGNULzlqTG5MWHJHTWhVZStGSTVs?=
 =?utf-8?B?WkdFTzFiS0RXZEJqeUJqUVhPYTR1WWFMYVNsRDVRNkRBTDNjRklYcHBDcUNr?=
 =?utf-8?B?Y012WHVla1ZFN1BWanNZRDV3MVVsQ3ROM3lteTFwUDBxSXZHdnFyRElzcTV1?=
 =?utf-8?B?NlU0S3FJcWVRbG5mU3g4SGhKMmNxVlhsZWJZdmJIQWZZVVEzNnAvbnA5Z3ZG?=
 =?utf-8?B?TUtjNVNRbEJldFI0N1M3dXgyRzhRcTlZeHAveWVWUzVkRmlrYkYyaEQrdGtT?=
 =?utf-8?B?S2d1NVNMQ292NTRzMEtaRUJBZmlBQURrSVRzamp1THpVZ2VncWNWMHBlbkFM?=
 =?utf-8?B?QVVpa1I1RkdNaGUzV3RzaGdWeldIZ2R0cUlZZFp3NDdBK1N5bVkwbFpsKyti?=
 =?utf-8?B?REh2ZkVDeTZqaDRYSERFeXdvUHlKdlFnU21XamNTemVWK09HYnNJUnI1RTJ3?=
 =?utf-8?B?bXNQNU92UjJoM2t2U3pKRnJseEJYUDc2YzVKSkc2YkJRVUlCVXdXTmNRSlE5?=
 =?utf-8?B?ZlFWL1g0Y0kwQ1loZnUwTHNZelVZcmtBRUdHMGMvK0dpTE02TC9SR2NEYUpG?=
 =?utf-8?B?QnY0VEpWbGdlRHI0K05RWkhwR256ZkR3amZqQzRySzFUY0tEaUIvK09nWnVw?=
 =?utf-8?B?VkdkV3NwYzJjdENpUktTYXQ3cjNOM3BtY1RWeFdyRVgxVHpiNGthVFJuWWpn?=
 =?utf-8?B?cC93a0w3R0hNSnE0QXlOcG11MnBzdlMzZElSa2RkcmZxb0N0Y0lEUXlKS28x?=
 =?utf-8?B?MFlGWDVJNjh6VDdBS0lsbnFpbmRGUHRtZG5iWWRXZnFMVlYxcXUvdFp3NnhO?=
 =?utf-8?B?OVk3cmYreVdBamhrTGdwUVdhM3VEUDZva2VCd2dyTCtvOURNUUZMNW9ER2Va?=
 =?utf-8?B?Q0hNWHFtekgyMWlvanZvRERiRm0xZmdvSW1Rc0hOLzlZdFVBalVZbmJ1cWEz?=
 =?utf-8?B?eFF5M1piQ1AxckZoOEZxeHUra3ZCek02bnRiWjZhdXdMWE4xbFVDSnVkbmNR?=
 =?utf-8?B?d29SVytwc1JRWnNzOVhLdFNhRm9YYW55dzY5RStlL3FSWjVFUFFUYlBadWJh?=
 =?utf-8?B?RDdJODJ3eGttSy8yNTVxSTlLS09rbkdJVHdlMWhKUndjcFU3ZmlJSWUzVnRL?=
 =?utf-8?B?V3QxU3VxanBHWkJlcGtIOUZoMEVSYVhlVVJtUmVNazRxQ0U2QzlQYTlESTZ2?=
 =?utf-8?Q?aph1An?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(82310400026)(1800799024)(7416014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Aug 2025 09:06:37.2431
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e0ef121d-69c8-48a8-bbc9-08ddd3ff6221
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF00021F68.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PPF5EA4322E1

On 8/5/25 03:44, Jan Beulich wrote:
> On 04.08.2025 18:57, Stewart Hildebrand wrote:
>> On 8/4/25 03:57, Jan Beulich wrote:
>>> On 01.08.2025 22:24, Stewart Hildebrand wrote:
>>>> @@ -839,6 +839,9 @@ void sched_destroy_vcpu(struct vcpu *v)
>>>>  {
>>>>      struct sched_unit *unit = v->sched_unit;
>>>>  
>>>> +    if ( !unit )
>>>> +        return;
>>>> +
>>>>      kill_timer(&v->periodic_timer);
>>>>      kill_timer(&v->singleshot_timer);
>>>>      kill_timer(&v->poll_timer);
>>>
>>> What if it's the 2nd error path in sched_init_vcpu() that is taken?

^^ This ^^ is what I'm confused about

>>> Then we
>>> might take this path (just out of context here)
>>>
>>>     if ( unit->vcpu_list == v )
>>>     {
>>>         rcu_read_lock(&sched_res_rculock);
>>>
>>>         sched_remove_unit(vcpu_scheduler(v), unit);
>>>         sched_free_udata(vcpu_scheduler(v), unit->priv);
>>>
>>> and at least Credit1's hook doesn't look to be safe against being passed NULL.
>>> (Not to speak of the risk of unit->priv being used elsewhere while cleaning
>>> up.)
>>
>>
>> Are you referring to this error path in sched_init_vcpu?
> 
> No, given the context I thought it was clear that I was referring to
> 
> static void cf_check
> csched_free_udata(const struct scheduler *ops, void *priv)
> {
>     struct csched_unit *svc = priv;
> 
>     BUG_ON( !list_empty(&svc->runq_elem) );
> 
> (i.e. particularly this BUG_ON()).

The comment about credit1 was clear


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 09:17:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 09:17:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070191.1433836 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujDnf-0004Aa-Vl; Tue, 05 Aug 2025 09:17:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070191.1433836; Tue, 05 Aug 2025 09:17: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 1ujDnf-0004AT-Sn; Tue, 05 Aug 2025 09:17:39 +0000
Received: by outflank-mailman (input) for mailman id 1070191;
 Tue, 05 Aug 2025 09:17:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=j2i0=2R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujDne-0004AN-TW
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 09:17:38 +0000
Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com
 [2a00:1450:4864:20::530])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 020bf85a-71dd-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 11:17:28 +0200 (CEST)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-61564c06e0dso8001497a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 02:17:28 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a1e89a6sm870583366b.73.2025.08.05.02.17.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Aug 2025 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>
X-Inumbo-ID: 020bf85a-71dd-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754385448; x=1754990248; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=xzpkgUv+tbfllsCx7on+wJb+3q5l4xEijfswrLzarYs=;
        b=Xh99StgBHsBsIbXDFXjEC9utd0vl62ZHNo6u+nK/idltb75aDguL+ZKp4kmZq6X8za
         8KxFFo166LaJTY0AvwAElR+PWHUdRR9wDLId6yRhhnpXFCy2g9m33BQIjx51O6XCj1sF
         uO44TuRSaITU0RQBLSHqd6Rf4QmQ79XoozLmtoAkR87QrzY2Zp9XqLaEHmE+ld6YYYk6
         36kgejShMi/AkJBZ/BDu7oMNCD8/gERiXPJOYqwmiJD9SMU7OYEMs/iNlMSOSKm+WFvX
         F1MHYdc0AT1RSxSQfM+SY8d+CzVmPTazG0DJQpK+3xwkIQ6bIs4qxvboinThZmc3yhDf
         +rMA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754385448; x=1754990248;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xzpkgUv+tbfllsCx7on+wJb+3q5l4xEijfswrLzarYs=;
        b=HkM30ukzs4bEgAC6j/6xr19LcnLZII37Z61lchDbWnQ5aJh69T/gLxaWoE/TNuf2gT
         xW5B8lxw9GJYLcKxRO/kWMOtHVveDYOEsZzpSa2e9UIN0GYC67fdxI0K3hanzHGQ5/aR
         PIGsoKLTwH0RUpYGNwNCCCCepLc77vlU44l7mXCZE38IGfxFUbNlbTjrJl65OaaALVZZ
         QkgV8I5UkTXOdnwzaC3/191qIo32IH13Fxxps/4Ql3nYwghxr2F0NQZ0IQTtGAe/Xxie
         5fUmyzdwlbrtV30KAJo0oGxiIG9mFxB/6WlsXiGlDtsPN/Do3Yi9pt7rJf4w7rka+9Iw
         FsBA==
X-Forwarded-Encrypted: i=1; AJvYcCUNqJ6k2KWNwpcyE5Kh9QF7rCFWvc9w5pXdMiJfrDHThM+6wRUDIphFPOCIJntzEs1SHKOadZdHce4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx+btzLqwlgGJE0a7LaQhwX3nNO/MRDt1lk8jceqsxBX+78MRBf
	cqT4oKL5hfI3feigayia/qfgjfeI72sEfNIYUoIlLspJsXMq++MEPvzTd1d475sUmA==
X-Gm-Gg: ASbGncs8w7qgJO+tlV4yfzrpqcOQ7z1R3T+6pTKuS86Au+HLOmcaJRqE9/hGLvchuLE
	OrzOwOn9RIuI4GwMWzzBukLH734rRfG9rHmF9GnXDGGkM7hDqznOODxErIve4CViollOxdYrduB
	XhOPc1EjObzKnnJgkVnONYcOD50fDfRCVw4i12TWl96hFIjzWy6hL2zOBLrs7o+Sl4+kArQ6xJT
	mb9ny6PaVWyhnlQlTQI6WqRpEHeseoMYkD2rxmTMN4cSbXA3m0qx8WGhG660cYqbv81Uxdjq2LS
	WMzXJxzTZZcIrHWLCzUU+9pRzoCbj3DMD+2figX5dJDXKjLIqHD0TDkLgumHZvViG1HoLPuCjhz
	QncJf8fc9nTeEd5LOjE/5C3IK9kkuiIwIRJrveQHU+GNelmRG4fNno838j0kA5J133F+feem+5n
	+8jpoeUlY=
X-Google-Smtp-Source: AGHT+IHMRiuXpVhT/CbaRslYxFNpzx+PcMmzYk+HQYUnLSht8Ix79/lOkHCHscEq9R21Y4uvmp9Kig==
X-Received: by 2002:a17:907:2d86:b0:ae6:ddc2:f9f4 with SMTP id a640c23a62f3a-af93ffc5f54mr1259392066b.6.1754385447948;
        Tue, 05 Aug 2025 02:17:27 -0700 (PDT)
Message-ID: <cefc96a0-b095-4bc8-baa6-4d929ffaa1a6@suse.com>
Date: Tue, 5 Aug 2025 11:17:26 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen: rework error handling in vcpu_create
To: Stewart Hildebrand <stewart.hildebrand@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Dario Faggioli <dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>,
 George Dunlap <gwd@xenproject.org>, xen-devel@lists.xenproject.org
References: <20250801202418.38977-1-stewart.hildebrand@amd.com>
 <52ea4f10-26b4-447b-8753-0e4287a03408@suse.com>
 <e7344494-8ac1-42a6-94a8-52a46f7f691a@amd.com>
 <795cf4c1-07be-47a5-b807-074b165650c4@suse.com>
 <07c5f672-034a-46f0-a563-081a0d4ad0d5@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: <07c5f672-034a-46f0-a563-081a0d4ad0d5@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.08.2025 11:06, Stewart Hildebrand wrote:
> On 8/5/25 03:44, Jan Beulich wrote:
>> On 04.08.2025 18:57, Stewart Hildebrand wrote:
>>> On 8/4/25 03:57, Jan Beulich wrote:
>>>> On 01.08.2025 22:24, Stewart Hildebrand wrote:
>>>>> @@ -839,6 +839,9 @@ void sched_destroy_vcpu(struct vcpu *v)
>>>>>  {
>>>>>      struct sched_unit *unit = v->sched_unit;
>>>>>  
>>>>> +    if ( !unit )
>>>>> +        return;
>>>>> +
>>>>>      kill_timer(&v->periodic_timer);
>>>>>      kill_timer(&v->singleshot_timer);
>>>>>      kill_timer(&v->poll_timer);
>>>>
>>>> What if it's the 2nd error path in sched_init_vcpu() that is taken?
> 
> ^^ This ^^ is what I'm confused about

If sched_init_vcpu() took the indicated path, the if() you add here won't
help, and ...

>>>> Then we
>>>> might take this path (just out of context here)
>>>>
>>>>     if ( unit->vcpu_list == v )
>>>>     {
>>>>         rcu_read_lock(&sched_res_rculock);
>>>>
>>>>         sched_remove_unit(vcpu_scheduler(v), unit);
>>>>         sched_free_udata(vcpu_scheduler(v), unit->priv);
>>>>
>>>> and at least Credit1's hook doesn't look to be safe against being passed NULL.
>>>> (Not to speak of the risk of unit->priv being used elsewhere while cleaning
>>>> up.)
>>>
>>>
>>> Are you referring to this error path in sched_init_vcpu?
>>
>> No, given the context I thought it was clear that I was referring to
>>
>> static void cf_check
>> csched_free_udata(const struct scheduler *ops, void *priv)
>> {
>>     struct csched_unit *svc = priv;
>>
>>     BUG_ON( !list_empty(&svc->runq_elem) );

... we'd make it here (afaict).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 09:33:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 09:33:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070202.1433846 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujE30-00073q-8w; Tue, 05 Aug 2025 09:33:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070202.1433846; Tue, 05 Aug 2025 09:33: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 1ujE30-00073j-5a; Tue, 05 Aug 2025 09:33:30 +0000
Received: by outflank-mailman (input) for mailman id 1070202;
 Tue, 05 Aug 2025 09:33:29 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=xH0J=2R=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1ujE2z-00073d-1I
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 09:33:29 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20612.outbound.protection.outlook.com
 [2a01:111:f403:2418::612])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3d0f8f8e-71df-11f0-a321-13f23c93f187;
 Tue, 05 Aug 2025 11:33:27 +0200 (CEST)
Received: from MW3PR05CA0018.namprd05.prod.outlook.com (2603:10b6:303:2b::23)
 by PH8PR12MB8607.namprd12.prod.outlook.com (2603:10b6:510:1cf::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.14; Tue, 5 Aug
 2025 09:33:23 +0000
Received: from MWH0EPF000989EB.namprd02.prod.outlook.com
 (2603:10b6:303:2b:cafe::e9) by MW3PR05CA0018.outlook.office365.com
 (2603:10b6:303:2b::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9009.12 via Frontend Transport; Tue,
 5 Aug 2025 09:33:22 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 MWH0EPF000989EB.mail.protection.outlook.com (10.167.241.138) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Tue, 5 Aug 2025 09:33:22 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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 Aug
 2025 04:33:22 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 5 Aug
 2025 04:33:22 -0500
Received: from [172.17.155.73] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Tue, 5 Aug 2025 04:33:20 -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>
X-Inumbo-ID: 3d0f8f8e-71df-11f0-a321-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gttRFNHNlv1mMANa96YWew2RPUrKOJ7iPhulFy7ii1LXerhvqmc86bIZCwfN4CNOgasBtR3pJ0Z1tBaxZ6no1Co/5bKQHkeLZ2toogCSLjY7IOXcfMAGfPhI0FlgBSeaoJ7tkz1tQiy4J5gGH8PZh+RnzShafcUTrPENlD7vvsPbmNAd/48v75qtle0ey+H50/lEWF917qg1kLxwoV0YkmWVcOQuqbACmEmpAOe1Y87Urd7ZOS6jdh7qZtEY3fRDK59fEBhgsT3QSV+y7imXH8oYdqSyRrh2A7D8hBDUXyAkS5FmQtD9vpODTWUdMhacgRhRkG+fGCYyidVn7Tmazw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=dT/4jGGRjeikvtWrxMaVrECdpK9ZcZ5gGPvi3qVuHDg=;
 b=anyOmx47A7AQSTDZt1japCKh5GilMlbDTmZRXe0H4JW1p5VPLMf34lHUg9Dxyfx1YQgh1RfgOW/3VPnHyZ/dg7jGT1XEdttYwVLK5W281/63yoMEMMWzcRo+H6k7IWUiSEko5sbtIo/3IEJT7wocTVTN3u+ZWs4C5Dq81HEMc6nx+fuqkJu7FE0SGDrhKOLz6r4MlCtCXDoKQc5WrnoHe0aouEJEbCQtinhJSmPwoceTk6+gqhofDkAPv/kN6bAyGQOZpz9C/Y+GW0oZMi6aejUoP7EpIfsIHsp8R7oM85sQBITOjWHopplTbKjEGNPTL8I2o8/uFD75mti86KraLQ==
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=dT/4jGGRjeikvtWrxMaVrECdpK9ZcZ5gGPvi3qVuHDg=;
 b=EZ8rxok3u3H2G3N9GWdwu4d59kzJr8wOprJrp7XJaYLCrLhv832JwOtQ6AUAYCnarKBuLUQwvNvVXk+HABfQnYJOoBg+y1oRebEwVB92zFpzZstpFHLOJCHOGFINtlNiX2Ve/njEilo5YS3tMOAFVuNj0bS1oFUanrPDrtyuTmE=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <a3e9afa2-d60e-4779-8eee-54268d7d833f@amd.com>
Date: Tue, 5 Aug 2025 05:33:20 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen: rework error handling in vcpu_create
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>, "Dario
 Faggioli" <dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>, "George
 Dunlap" <gwd@xenproject.org>, <xen-devel@lists.xenproject.org>
References: <20250801202418.38977-1-stewart.hildebrand@amd.com>
 <52ea4f10-26b4-447b-8753-0e4287a03408@suse.com>
 <e7344494-8ac1-42a6-94a8-52a46f7f691a@amd.com>
 <795cf4c1-07be-47a5-b807-074b165650c4@suse.com>
 <07c5f672-034a-46f0-a563-081a0d4ad0d5@amd.com>
 <cefc96a0-b095-4bc8-baa6-4d929ffaa1a6@suse.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <cefc96a0-b095-4bc8-baa6-4d929ffaa1a6@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB05.amd.com: stewart.hildebrand@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MWH0EPF000989EB:EE_|PH8PR12MB8607:EE_
X-MS-Office365-Filtering-Correlation-Id: e2f23baf-63ee-42d7-de04-08ddd4031f28
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|376014|7416014|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?K2Z2K04yWmo2a3hkOU5xTlVnY3ZpNWhHQnBBdWFOb05hdjVUb1J1cjdJaWtv?=
 =?utf-8?B?cmlhQlV6VHVMZ3NHcGNEay9kZ1RhVEcyU3lWTDdwNmQrTlRaVTdNTURjNjBL?=
 =?utf-8?B?VTNzV2Nod3QrSmN1NjNCU2JkOXNMaXlTMVlQNUtlNDcydnJPSVhuUDcxaUZ5?=
 =?utf-8?B?ZmFzQ3JyMFRGenhFdDVXYXJPSkhqOFJIejZPWFVYTUl3TDFsSHRFZ0hTV2kr?=
 =?utf-8?B?L3k3M0lJVVg3b1pMOFFPT1IrQytUMGVGWno0K3NXdVhRZjh2d2RtQlp2R3RM?=
 =?utf-8?B?NHNWaVF4bnBydG5UMEVuWkIySm5VTkY5ZkhMUEpEby9BeFdDSkt4djg3SmNq?=
 =?utf-8?B?S0RGdERHQ1dYKzBCais1TmMvVFhmRWRRdXJmTDFBdGV4MzRCVjJOUGd5czRJ?=
 =?utf-8?B?SmZKWXlPT3MzYis2U3llWUZrOFJyWlQ4ZmRFemM3RDNtd0ZCa2R4LzRLakpH?=
 =?utf-8?B?OFlzb2l1aWptWnJYOHVrS2dUS2N2ZGQ2Z1pSN3V0aXhja0xxSlhMbU83bEJj?=
 =?utf-8?B?ZG9Oa3dPZVh6UnNTT0dvK3k5OTBTZ0djYUpHaUVPSUlhZCtkMG1uS2ZZemRZ?=
 =?utf-8?B?NDZiZ2ZmdDltL2p3R1RWSm1CSmI0SytiN1VMWjJBaEN2djQwNlZBc3oyTUZm?=
 =?utf-8?B?Y0g5Q2E1OE5CVmlwY1pRa2p6MlZmeFRiNHl2SFlNQisyTXpkdmdjZzBhbG1G?=
 =?utf-8?B?SjFrMUxqcCtjejRPWkVKRElYLzI2QkxOM3c0NGdUbjNtaXc0YlRjTXRwSnM0?=
 =?utf-8?B?ZHhNT2JndzVrNERrWEdNZGpNRSt5bmRGalVSZzdVaG9iTi9SNGJOSnVNMUVY?=
 =?utf-8?B?TnFpOFpncHVSeEpZUEo5Tk04WVlXZXVaK3Baem52WU10bHB1ZVQ4eTdQaFln?=
 =?utf-8?B?K2wyeFJIcmtzTmZscjBDOHdrNCtXcTloVDRVMkgvSEkvcFg1SWpKVXd3TUxZ?=
 =?utf-8?B?RlNvZFVVUy8zOUFSaFVDTi92NEVscnE1dEV1UUJ3bkdOeVlWV0kvSUIvdlZO?=
 =?utf-8?B?R3FZNVB2M1RTMmNxeFBWQnNzS2xKZEhZejBMYmlHUlVpR2xUVVRXelJVRlJl?=
 =?utf-8?B?WmppRVRvVG1lem5pMDZmZ085VFJValoyMjdPUXJCRlJQeGFCbmZsNk5ES24z?=
 =?utf-8?B?WE45dk84dnM1djMxUnVVNXNvM1pvajNVRlBKbngyYVNFNS9mRHFkVURyV0RX?=
 =?utf-8?B?WFpYYTNpMmRYUlNNTTlnTHBTaTk1NU5YSC9vNnVvZDFqR2xLSUJQc0dJVi9C?=
 =?utf-8?B?V09GWVVIY3gvZVFXODJwaUpjOVVZV3I5Vk8wcUhUUExud2Vqdy9aQ0R2VVZy?=
 =?utf-8?B?QnNPTXY1bFNqK3psM1VGR1Y4T0tpU0ozSUNQa2pqeFhxNE9WVzBlSkVjcms3?=
 =?utf-8?B?MVA3MjQzK0thclBNRlNOMnhhRVR0Z3pHZEhHa3dWbWV4bThTTzZXZTFhRStY?=
 =?utf-8?B?ZGJLUlJPbmtKRGIxQXpzc1JNN2FKRWxtbFJ4aU4vK0xtUlExbExCN09qb1lJ?=
 =?utf-8?B?NGdsR0tLYldMNVhlRmx1UERWNFFhVU45N1E1d2JjTkg0ME9vNWJSYi9pc1hi?=
 =?utf-8?B?L1RBNGxrOWtHOTN1M3ljZzhOb2NuTDFNaEFFVS9nSUYvbTRzSElncVhCYjZB?=
 =?utf-8?B?MjU1cG1BN3E4cmNTSkhzenJocjJYQkhOcFNIVGh2em1oMTRScjJIQ09WZUNL?=
 =?utf-8?B?UHpiemFiTDRXR1RuOElzeXpZS2x6bjlMVlZZbzdiT0VUa1VNaWl3Y1g3VDlh?=
 =?utf-8?B?WG1mZGVEdGY0bWlNRjRBMmhaRUdWNU5scmJFcDJqTGt0cW1SWko4K3VRQlky?=
 =?utf-8?B?NlNYdVRWam5CeGI2NDlNZHByL1ZjUDFQbVRrUFdJMXlONHVTcytuTTBvODA2?=
 =?utf-8?B?NlF0a3FIU2RLSS9RamRZQjl4VEhmUlAwaHg0YS8vU2V1VlV6SWNrQ2YwNnA2?=
 =?utf-8?B?RU14R0lja2RnRVo5UXVPT3MraEtUZEo5dDFzb0czdSttcXhpenFTTnQ5WEZH?=
 =?utf-8?B?QzBhUlNoL3lDazlrekZ3ZVppMTAxL0hqSGVQS3pRSlcyZXhiUmZVOUl1dU5W?=
 =?utf-8?Q?0BngBP?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(376014)(7416014)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Aug 2025 09:33:22.7900
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e2f23baf-63ee-42d7-de04-08ddd4031f28
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000989EB.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB8607

On 8/5/25 05:17, Jan Beulich wrote:
> On 05.08.2025 11:06, Stewart Hildebrand wrote:
>> On 8/5/25 03:44, Jan Beulich wrote:
>>> On 04.08.2025 18:57, Stewart Hildebrand wrote:
>>>> On 8/4/25 03:57, Jan Beulich wrote:
>>>>> On 01.08.2025 22:24, Stewart Hildebrand wrote:
>>>>>> @@ -839,6 +839,9 @@ void sched_destroy_vcpu(struct vcpu *v)
>>>>>>  {
>>>>>>      struct sched_unit *unit = v->sched_unit;
>>>>>>  
>>>>>> +    if ( !unit )
>>>>>> +        return;
>>>>>> +
>>>>>>      kill_timer(&v->periodic_timer);
>>>>>>      kill_timer(&v->singleshot_timer);
>>>>>>      kill_timer(&v->poll_timer);
>>>>>
>>>>> What if it's the 2nd error path in sched_init_vcpu() that is taken?
>>
>> ^^ This ^^ is what I'm confused about
> 
> If sched_init_vcpu() took the indicated path,

What path? In the one I'm looking at, sched_free_unit() gets called,
setting v->sched_unit = NULL, and in that case ...

> the if() you add here won't
> help, and ...

... the condition is true, and ...

>>>>> Then we
>>>>> might take this path (just out of context here)
>>>>>
>>>>>     if ( unit->vcpu_list == v )
>>>>>     {
>>>>>         rcu_read_lock(&sched_res_rculock);
>>>>>
>>>>>         sched_remove_unit(vcpu_scheduler(v), unit);
>>>>>         sched_free_udata(vcpu_scheduler(v), unit->priv);
>>>>>
>>>>> and at least Credit1's hook doesn't look to be safe against being passed NULL.
>>>>> (Not to speak of the risk of unit->priv being used elsewhere while cleaning
>>>>> up.)
>>>>
>>>>
>>>> Are you referring to this error path in sched_init_vcpu?
>>>
>>> No, given the context I thought it was clear that I was referring to
>>>
>>> static void cf_check
>>> csched_free_udata(const struct scheduler *ops, void *priv)
>>> {
>>>     struct csched_unit *svc = priv;
>>>
>>>     BUG_ON( !list_empty(&svc->runq_elem) );
> 
> ... we'd make it here (afaict).

... we'd not make it here.


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 09:49:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 09:49:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070215.1433855 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujEIA-0000P0-HG; Tue, 05 Aug 2025 09:49:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070215.1433855; Tue, 05 Aug 2025 09:49: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 1ujEIA-0000Ot-Ed; Tue, 05 Aug 2025 09:49:10 +0000
Received: by outflank-mailman (input) for mailman id 1070215;
 Tue, 05 Aug 2025 09:49:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=j2i0=2R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujEI9-0000On-Mq
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 09:49:09 +0000
Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com
 [2a00:1450:4864:20::62f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6d64ae1f-71e1-11f0-a321-13f23c93f187;
 Tue, 05 Aug 2025 11:49:06 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-af958127df5so459559466b.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 02:49: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
 4fb4d7f45d1cf-615a8fe7a32sm8158216a12.37.2025.08.05.02.49.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Aug 2025 02: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>
X-Inumbo-ID: 6d64ae1f-71e1-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754387346; x=1754992146; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=U5F+rkxZgtscWzXVRHbxzQgZ8Rxrqah7DUv0RnqC0gU=;
        b=Lv2ky2RDrw0Awk3HBuGRtwA7udaExygNjeADFVsDG5yk/N72CD0XPyHVrTv+l6nps1
         zEjGuwU4gbujxo+lTmRwRjYDD0gdJZqEGe/28JKiSzHgHjvNMiHbgDpwpSpz2kVhbL3Z
         6hXYvGJNAXmZBdT77ICqJdsKFfUbLv0QkUFTTqiUep7fL4jxFhUI2SDIH0wfO4lnRDev
         KZo7dbCsiy5+LT28Gd2+UwGKbFYxC231XW02xbixWJKGl3smyj5W4Y1nGqlJWhnHqWNY
         EP18s6sPEMqQ7ohzsnnL0zL2SeESiLEd/jWR6wmnyDC1qdVO5RYuCz9UABFTcwISFaAY
         hATw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754387346; x=1754992146;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=U5F+rkxZgtscWzXVRHbxzQgZ8Rxrqah7DUv0RnqC0gU=;
        b=Q8xDteA5rjpW6B/3pVH2zAJVdyZcTQloUghdv6VFHzLla334dmRa9jNMI0McyDyoCo
         sx0iakTJWAm+gx/cqf0jAnCJskjk2FrFYQ6rdAJnnaR+FmvGkLCUCsHUWtCsu272ijZu
         Vq+eXDvxxg8iCmTU6Nyb1fBETBoJXSWP/IG6XPSuNQCvKwwXeKpwI7F36HQLDWhFQu0L
         pVNk1ODs82xH0tOqwZCASkCaMXZNjLXUZjM6dRgyaGkcv63GzYZuQ2Y9Bmf1VZ2jxJC2
         +gvS9UbZkfqex8L8YU3mWeTmf5sJShCzHVHWwtxT2qhb8wjBIj3OWddT++QYlUxaj4ZJ
         jfDQ==
X-Forwarded-Encrypted: i=1; AJvYcCWSzJvPrtjqeG6inZt0CiEpD+gZc4we6QzZpyyl14lIzhifeSJbQ62z6BwL3ZWPjvwq3sEVZMgXVGE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxKyR6k0Kq5NLNlnV2JBJrERGgGvZ/z8nLgEHl0d7TGvBg4XC3U
	6alIgZmaBCYx7bvNZ42rAJEZhgcKBdx58J9CmgXta2rOU3gG9Mv5TQCq3a9rBBlt8g==
X-Gm-Gg: ASbGncti2ycZyMrZUFqLKHRwtk79IanaH4/1/JLKB2Pa+VkAiDNv0FWF009H9oAh6a0
	+RVXuxqZrguK8bKA/JyyTVVnaPTwPdOVXjwvA9bVRBe5GltzOOCldMf/bv5Z+y/QcJb1foLBJn9
	ThM8+hBibIKgfS3Nmy0RIwb6A82+C8vfy6MBW2MpK3+FUBUSUBu14Q7G7+oNTE1+QZ1UCyusUKl
	b6rLEmC14x0FuIczL3W7AZHorijJEdwPLr249sxnigSmksCYCzup+eeScBpfrc41aOVv34sf70n
	s/pxiDeUwaBHqAd3jRfZ6g+rVSeeKUWt4+SruGJO3iq9IFjHKv8F3ITg/hPBuv3SbC9/XAennFY
	WY7YdwcLEkBeyA6xySHTf2vpkLQfUDrtJlk567SClN6eFPJ9IP/fleA28Qyl+yBeU+MJRE8xNdB
	aTE1uXBLU=
X-Google-Smtp-Source: AGHT+IEe2zjCuz4CyMAETj6XgZMToXJ8M9vDj1sw7rZqZI/NoJShYseXxsXQOHPaKQxnn0piF82Bfg==
X-Received: by 2002:a17:906:f205:b0:af9:467d:abc0 with SMTP id a640c23a62f3a-af9467dae3cmr1124764966b.50.1754387346122;
        Tue, 05 Aug 2025 02:49:06 -0700 (PDT)
Message-ID: <f35586f8-c80f-4023-a9c0-5107e53c4063@suse.com>
Date: Tue, 5 Aug 2025 11:49:04 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen: rework error handling in vcpu_create
To: Stewart Hildebrand <stewart.hildebrand@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Dario Faggioli <dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>,
 George Dunlap <gwd@xenproject.org>, xen-devel@lists.xenproject.org
References: <20250801202418.38977-1-stewart.hildebrand@amd.com>
 <52ea4f10-26b4-447b-8753-0e4287a03408@suse.com>
 <e7344494-8ac1-42a6-94a8-52a46f7f691a@amd.com>
 <795cf4c1-07be-47a5-b807-074b165650c4@suse.com>
 <07c5f672-034a-46f0-a563-081a0d4ad0d5@amd.com>
 <cefc96a0-b095-4bc8-baa6-4d929ffaa1a6@suse.com>
 <a3e9afa2-d60e-4779-8eee-54268d7d833f@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: <a3e9afa2-d60e-4779-8eee-54268d7d833f@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.08.2025 11:33, Stewart Hildebrand wrote:
> On 8/5/25 05:17, Jan Beulich wrote:
>> On 05.08.2025 11:06, Stewart Hildebrand wrote:
>>> On 8/5/25 03:44, Jan Beulich wrote:
>>>> On 04.08.2025 18:57, Stewart Hildebrand wrote:
>>>>> On 8/4/25 03:57, Jan Beulich wrote:
>>>>>> On 01.08.2025 22:24, Stewart Hildebrand wrote:
>>>>>>> @@ -839,6 +839,9 @@ void sched_destroy_vcpu(struct vcpu *v)
>>>>>>>  {
>>>>>>>      struct sched_unit *unit = v->sched_unit;
>>>>>>>  
>>>>>>> +    if ( !unit )
>>>>>>> +        return;
>>>>>>> +
>>>>>>>      kill_timer(&v->periodic_timer);
>>>>>>>      kill_timer(&v->singleshot_timer);
>>>>>>>      kill_timer(&v->poll_timer);
>>>>>>
>>>>>> What if it's the 2nd error path in sched_init_vcpu() that is taken?
>>>
>>> ^^ This ^^ is what I'm confused about
>>
>> If sched_init_vcpu() took the indicated path,
> 
> What path? In the one I'm looking at, sched_free_unit() gets called,

Oh, I see - that wasn't quite obvious, though. Yet of course ...

> setting v->sched_unit = NULL, and in that case ...
> 
>> the if() you add here won't
>> help, and ...
> 
> ... the condition is true, and ...
> 
>>>>>> Then we
>>>>>> might take this path (just out of context here)
>>>>>>
>>>>>>     if ( unit->vcpu_list == v )
>>>>>>     {
>>>>>>         rcu_read_lock(&sched_res_rculock);
>>>>>>
>>>>>>         sched_remove_unit(vcpu_scheduler(v), unit);
>>>>>>         sched_free_udata(vcpu_scheduler(v), unit->priv);
>>>>>>
>>>>>> and at least Credit1's hook doesn't look to be safe against being passed NULL.
>>>>>> (Not to speak of the risk of unit->priv being used elsewhere while cleaning
>>>>>> up.)

... this latter part of my remark still applies. IOW I continue to think
that discussing the correctness of this change needs to be extended.
Unless of course a scheduler maintainer wants to ack it as is.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 09:53:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 09:53:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070223.1433866 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujEM5-0001yw-1D; Tue, 05 Aug 2025 09:53:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070223.1433866; Tue, 05 Aug 2025 09:53: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 1ujEM4-0001yp-Tr; Tue, 05 Aug 2025 09:53:12 +0000
Received: by outflank-mailman (input) for mailman id 1070223;
 Tue, 05 Aug 2025 09:53:11 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Xkmx=2R=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1ujEM3-0001yh-AA
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 09:53:11 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fecbcb16-71e1-11f0-a321-13f23c93f187;
 Tue, 05 Aug 2025 11:53:10 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-459e20ec1d9so4312975e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 02:53:10 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-459de0d4cf1sm54003005e9.13.2025.08.05.02.53.09
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Aug 2025 02:53: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>
X-Inumbo-ID: fecbcb16-71e1-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754387589; x=1754992389; 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=PBUoMRqCC+y4pdFLDopiEffA/CKnvDYco1Lonhh9bW4=;
        b=HYTQsEJCqKRaexKpN2XxvvODlcysywmDIRRsnyUtIxvUB2rjLvRjB29YqTNve7TWJU
         rCUoikuCcI3Nn6MuQgkv42egTW0Aj3eICiXqxqGNZ7GuhNSjFABD4Uzfg9OpMaQkmb+1
         Uya3IPd4StT3+HFAkbFGvweryJrSbzBFMrBL4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754387589; x=1754992389;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=PBUoMRqCC+y4pdFLDopiEffA/CKnvDYco1Lonhh9bW4=;
        b=Ps09k4SKz8h7qmOltewudEUG/ccgrIddFBwT37GfppGBKRL7xNgRfpyfIOEGJbSxzN
         k8+GPeKjpoInhJYlDFutsZzaYY2CphvDnuhlPpFJ4k0u/9iaNPr9VWzMrwEGm3oWF4PQ
         2olErhTGrT3nMjIvd5h8xX/RwZyEVHKN2TN8ktZTvcsaj+bms3I7+K0kRuJETQZ9iVxu
         P9TQvwYuEe+8CkDo042rQA3kWITxje31xsLTYoYmOr8i8hZmy+gY2CBPkPpPA2s3z3pp
         MDGG4fgrzyvtJ/GZ3xSjn+ug7AD8GR16hiszomgmWLFlf3hOKLGQPY0kmddfkOoNNtLv
         LspQ==
X-Gm-Message-State: AOJu0Yz/B4QENi0aIDfcS3hDOJeNf6wUOqMi6IkeEpmUve5dnXVs1YLU
	GoEPBFfcVPWI7sTSkuLDXJnW0bv6wV5c56c/9ATJIkmJy1NlPxBbs+Ge3GZsl1xiXDzywHV+CmF
	oVXRd
X-Gm-Gg: ASbGncu1KzsNawtJbj+txQNEDBsuq7hIddJ5LNwLEa8RpHJamKx2bpAwT9ldI3POh3N
	bEx3bW5lwNChnzhfjSyt81cd19CQ/K306C6qfHSdNz3CEFKQk/+8lws0hLY7rqaNMJRX8et5W+D
	MhSGggKrXf3qvOgXy2FmEPywN+qYoLdOHPvWMyeeQSbgzLBVnE3uMzhrnsofyERgS7TJPV436Ro
	qd77vgABqEsq4TNVzf6g+TqcsHuFcsDxQf3L9IIpmg+eHJwHv1b1dj5YAM5Rse3sWxpx2UP70fA
	P17uC9ihUzOog6KfoZIAJjoWQEODl3ztILEePBejSeTshh+VnishQexuU+1mXHIY2Bg7wEUaRAD
	m84ZGxxCLiOCWxO4Iii/X9DyF2ZOaKMdyFJVl6AKlsEbmJFtDR288iUAD776pS2w1ig==
X-Google-Smtp-Source: AGHT+IEmKdU9i1dYuscefpQ4l6IbjBdiaihQTiwHxpV51S09qcV9BO5ZdPhJNb2yEc1VwjoJ47iasQ==
X-Received: by 2002:a05:600c:1e86:b0:458:add2:d4b4 with SMTP id 5b1f17b1804b1-458b7d1bcc1mr97926925e9.12.1754387589541;
        Tue, 05 Aug 2025 02:53:09 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Community Manager <community.manager@xenproject.org>
Subject: [PATCH v4 0/8] pdx: introduce a new compression algorithm
Date: Tue,  5 Aug 2025 11:52:49 +0200
Message-ID: <20250805095257.74975-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.49.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Hello,

This series implements a new PDX compression algorithm to cope with the
spare memory maps found on the Intel Sierra Forest and Granite Rapids.

Patches 1 to 6 prepare the existing code to make it easier to introduce
a new PDX compression, including generalizing the initialization and
setup functions and adding a unit test for PDX compression.

Patch 7 introduce the new compression.  The new compression is only
enabled by default on x86, other architectures are left with their
previous defaults.

Finally patch 8 optimizes one x86 loop that was iterating over pfn
ranges to instead use pdx values.

Thanks, Roger.

Roger Pau Monne (8):
  kconfig: turn PDX compression into a choice
  pdx: provide a unified set of unit functions
  pdx: introduce command line compression toggle
  pdx: allow per-arch optimization of PDX conversion helpers
  test/pdx: add PDX compression unit tests
  pdx: move some helpers in preparation for new compression
  pdx: introduce a new compression algorithm based on region offsets
  x86/mm: adjust loop in arch_init_memory() to iterate over the PDX
    space

 CHANGELOG.md                           |   3 +
 docs/misc/xen-command-line.pandoc      |   9 +
 tools/tests/Makefile                   |   1 +
 tools/tests/pdx/.gitignore             |   3 +
 tools/tests/pdx/Makefile               |  50 +++
 tools/tests/pdx/harness.h              |  98 ++++++
 tools/tests/pdx/test-pdx.c             | 271 ++++++++++++++++
 xen/arch/arm/setup.c                   |  36 +--
 xen/arch/x86/include/asm/cpufeatures.h |   1 +
 xen/arch/x86/include/asm/pdx.h         |  71 ++++
 xen/arch/x86/mm.c                      |  17 +-
 xen/arch/x86/srat.c                    |  30 +-
 xen/common/Kconfig                     |  37 ++-
 xen/common/pdx.c                       | 432 +++++++++++++++++++++++--
 xen/include/xen/pdx.h                  | 213 ++++++++----
 15 files changed, 1139 insertions(+), 133 deletions(-)
 create mode 100644 tools/tests/pdx/.gitignore
 create mode 100644 tools/tests/pdx/Makefile
 create mode 100644 tools/tests/pdx/harness.h
 create mode 100644 tools/tests/pdx/test-pdx.c
 create mode 100644 xen/arch/x86/include/asm/pdx.h

-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Aug 05 09:53:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 09:53:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070224.1433876 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujEM7-0002Dq-BW; Tue, 05 Aug 2025 09:53:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070224.1433876; Tue, 05 Aug 2025 09:53:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujEM7-0002Dj-8U; Tue, 05 Aug 2025 09:53:15 +0000
Received: by outflank-mailman (input) for mailman id 1070224;
 Tue, 05 Aug 2025 09:53:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Xkmx=2R=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1ujEM5-00026G-NW
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 09:53:13 +0000
Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com
 [2a00:1450:4864:20::430])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ff884533-71e1-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 11:53:11 +0200 (CEST)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-3b78a034f17so3680053f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 02:53:11 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3b79c4a2848sm18386766f8f.71.2025.08.05.02.53.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Aug 2025 02:53: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>
X-Inumbo-ID: ff884533-71e1-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754387591; x=1754992391; 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=YlJ4EVtQhQPCSTEsURZWjPcV24GHkW+OWqt8tBVq6Ws=;
        b=Bqb0zdIl5Ehg6S4t4fbcZePweha19gznJngnQBceOvschwUHsqRaHKur5R+hsJYkFc
         SVfUK/NILHjcZfDbGu/mS35UforuNBcGGiphku7UZPdA0vNxx+vyDfALeqwdyFkcuzOP
         WX5YONmJuPBuA4K7ZKJpSt7XM5D0UJDfcNWB8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754387591; x=1754992391;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=YlJ4EVtQhQPCSTEsURZWjPcV24GHkW+OWqt8tBVq6Ws=;
        b=MjDfJ0Mnykz83zQhrrob+juCkCf07zEf4sJibNtEHco41uMLvePFvo2boQ9jBiTk43
         cTOt96d40Eca0sNXawul4Op6yUgGorOgA2fEl2gX1pBtSVK2gW/7jDY6s3EQpxcZCbcA
         r6tvnj9s01ywkftVFgmOJNY5ngWzqw/MqCgMQDSqfSVm1P6FPnWDKFq1aGqIDuzRCqDO
         dfRq+jDVtOGM0S9/mL9vyOhR2tTpMzxaLXeLO3o1N0uiK74lUpCWQpKbOMGWOe52BMug
         20MTPQeHBK1Xa/rTHZdVF5wXgeByhd89LsdgHuvyMIYbc1Ql19NkkCZgSEkMElmVXu17
         IKng==
X-Gm-Message-State: AOJu0Yzo+mxDvc1YaFbXwPKSgjz/nbtG6Zc5YqNqr5DZKJ9zE/mM3QKP
	pvQhXs7B13Rq35dp4MmDWj4iuIoDOQIQFrKBi3NomokOatZjxLrOm+4/2RjoI5p7ia5bXESYBuc
	vYBkj
X-Gm-Gg: ASbGnct+uaUa2jTRRQLmco4RKtM1sX80+ZUlfKjv5g53Ob3zKOkDbeHHSpSOvYSFchY
	Wwyrj5dEaFqfra0ArO8+vrtfmoRalBP72pmGTcEc77Yt+mjpYTGG/ZHdqBjibjNkF+vkBOha8GP
	2j8G0Ic+zaoTkQzkHsux5dptJq1aXQmNBYBQwVn1KlLUwmkXSm+DBeZhONu1iaKUlniAocaepol
	tsQWiTdoP4JHnjqXfpC2+w5K4CHn3k3zn3RhYHkGlv+pM0GQAcYUAIlpZX3ZpWU0+YuHq/gOR1F
	Q5M3wwGvsG6nAkKE8rjzKNCL7n2JUwFC+jVijDkW/LgzVlQaDsaD62naunooALvGlxneudOvkgs
	eV6VxjpWhZL8HKtp6PK2b/EplT2Q2riJd3DK1Wn8f0p6/HAqPyEn4aK68wZjt1NtfrLwXyBcJcM
	/E
X-Google-Smtp-Source: AGHT+IFwRXAghNgrt0pR2SwJ3D/h7HW/dZTVNoThRWg/S/KXqaZhSjs7CWT+IBx1cibnmwzVpiCsHg==
X-Received: by 2002:a05:6000:220b:b0:3b7:792c:e8be with SMTP id ffacd0b85a97d-3b8d946c468mr8387219f8f.8.1754387590874;
        Tue, 05 Aug 2025 02:53:10 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v4 1/8] kconfig: turn PDX compression into a choice
Date: Tue,  5 Aug 2025 11:52:50 +0200
Message-ID: <20250805095257.74975-2-roger.pau@citrix.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250805095257.74975-1-roger.pau@citrix.com>
References: <20250805095257.74975-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Rename the current CONFIG_PDX_COMPRESSION to CONFIG_PDX_MASK_COMPRESSION,
and make it part of the PDX compression choice block, in preparation for
adding further PDX compression algorithms.

The PDX compression defaults should still be the same for all
architectures, however the choice block cannot be protected under EXPERT
and still have a default choice being unconditionally selected.  As a
result, the new "PDX (Page inDeX) compression" item will be unconditionally
visible in Kconfig, even on architectures like x86 that previously had no
way to enable PDX compression.

As part of this preparation work to introduce new PDX compressions, adjust
some of the comments on pdx.h to note they apply to a specific PDX
compression.  Also shuffle function prototypes and dummy implementations
around to make it easier to introduce a new PDX compression.  Note all
PDX compression implementations are expected to provide a
pdx_is_region_compressible() that takes the same set of arguments.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/arm/setup.c  |  2 +-
 xen/common/Kconfig    | 18 +++++++++++++++---
 xen/common/pdx.c      |  4 ++--
 xen/include/xen/pdx.h | 32 +++++++++++++++++++-------------
 4 files changed, 37 insertions(+), 19 deletions(-)

diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
index bb35afe56cec..a77b31071ed8 100644
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -258,7 +258,7 @@ void __init init_pdx(void)
     paddr_t bank_start, bank_size, bank_end, ram_end = 0;
     int bank;
 
-#ifdef CONFIG_PDX_COMPRESSION
+#ifndef CONFIG_PDX_NONE
     /*
      * Arm does not have any restrictions on the bits to compress. Pass 0 to
      * let the common code further restrict the mask.
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 16936418a6e6..8dad0c923a9d 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -57,9 +57,10 @@ config EVTCHN_FIFO
 
 	  If unsure, say Y.
 
-config PDX_COMPRESSION
-	bool "PDX (Page inDeX) compression" if EXPERT && !X86 && !RISCV
-	default ARM || PPC
+choice
+	prompt "PDX (Page inDeX) compression"
+	default PDX_MASK_COMPRESSION if !X86 && !RISCV
+	default PDX_NONE
 	help
 	  PDX compression is a technique designed to reduce the memory
 	  overhead of physical memory management on platforms with sparse RAM
@@ -72,6 +73,17 @@ config PDX_COMPRESSION
 	  If your platform does not have sparse RAM banks, do not enable PDX
 	  compression.
 
+config PDX_MASK_COMPRESSION
+	bool "Mask compression"
+	help
+	  Compression relying on all RAM addresses sharing a zeroed bit region.
+
+config PDX_NONE
+	bool "None"
+	help
+	  No compression
+endchoice
+
 config ALTERNATIVE_CALL
 	bool
 
diff --git a/xen/common/pdx.c b/xen/common/pdx.c
index b8384e6189df..00aa7e43006d 100644
--- a/xen/common/pdx.c
+++ b/xen/common/pdx.c
@@ -34,7 +34,7 @@ bool __mfn_valid(unsigned long mfn)
 {
     bool invalid = mfn >= max_page;
 
-#ifdef CONFIG_PDX_COMPRESSION
+#ifdef CONFIG_PDX_MASK_COMPRESSION
     invalid |= mfn & pfn_hole_mask;
 #endif
 
@@ -55,7 +55,7 @@ void set_pdx_range(unsigned long smfn, unsigned long emfn)
         __set_bit(idx, pdx_group_valid);
 }
 
-#ifdef CONFIG_PDX_COMPRESSION
+#ifdef CONFIG_PDX_MASK_COMPRESSION
 
 /*
  * Diagram to make sense of the following variables. The masks and shifts
diff --git a/xen/include/xen/pdx.h b/xen/include/xen/pdx.h
index c1423d64a95b..8e373cac8b87 100644
--- a/xen/include/xen/pdx.h
+++ b/xen/include/xen/pdx.h
@@ -25,7 +25,7 @@
  * this by keeping a bitmap of the ranges in the frame table containing
  * invalid entries and not allocating backing memory for them.
  *
- * ## PDX compression
+ * ## PDX mask compression
  *
  * This is a technique to avoid wasting memory on machines known to have
  * split their machine address space in several big discontinuous and highly
@@ -101,22 +101,13 @@ bool __mfn_valid(unsigned long mfn);
 #define paddr_to_pdx(pa) pfn_to_pdx(paddr_to_pfn(pa))
 #define pdx_to_paddr(px) pfn_to_paddr(pdx_to_pfn(px))
 
-#ifdef CONFIG_PDX_COMPRESSION
+#ifdef CONFIG_PDX_MASK_COMPRESSION
 
 extern unsigned long pfn_pdx_bottom_mask, ma_va_bottom_mask;
 extern unsigned int pfn_pdx_hole_shift;
 extern unsigned long pfn_hole_mask;
 extern unsigned long pfn_top_mask, ma_top_mask;
 
-/**
- * Validate a region's compatibility with the current compression runtime
- *
- * @param base Base address of the region
- * @param npages Number of PAGE_SIZE-sized pages in the region
- * @return True iff the region can be used with the current compression
- */
-bool pdx_is_region_compressible(paddr_t base, unsigned long npages);
-
 /**
  * Calculates a mask covering "moving" bits of all addresses of a region
  *
@@ -209,7 +200,9 @@ static inline paddr_t directmapoff_to_maddr(unsigned long offset)
  */
 void pfn_pdx_hole_setup(unsigned long mask);
 
-#else /* !CONFIG_PDX_COMPRESSION */
+#endif /* CONFIG_PDX_MASK_COMPRESSION */
+
+#ifdef CONFIG_PDX_NONE
 
 /* Without PDX compression we can skip some computations */
 
@@ -241,7 +234,20 @@ static inline void pfn_pdx_hole_setup(unsigned long mask)
 {
 }
 
-#endif /* CONFIG_PDX_COMPRESSION */
+#else /* !CONFIG_PDX_NONE */
+
+/* Shared functions implemented by all PDX compressions. */
+
+/**
+ * Validate a region's compatibility with the current compression runtime
+ *
+ * @param base Base address of the region
+ * @param npages Number of PAGE_SIZE-sized pages in the region
+ * @return True iff the region can be used with the current compression
+ */
+bool pdx_is_region_compressible(paddr_t base, unsigned long npages);
+
+#endif /* !CONFIG_PDX_NONE */
 #endif /* __XEN_PDX_H__ */
 
 /*
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Aug 05 09:53:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 09:53:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070225.1433880 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujEM7-0002GL-Kh; Tue, 05 Aug 2025 09:53:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070225.1433880; Tue, 05 Aug 2025 09:53:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujEM7-0002Fc-Gq; Tue, 05 Aug 2025 09:53:15 +0000
Received: by outflank-mailman (input) for mailman id 1070225;
 Tue, 05 Aug 2025 09:53:14 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Xkmx=2R=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1ujEM6-0001yh-UM
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 09:53:14 +0000
Received: from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com
 [2a00:1450:4864:20::42c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 012038fb-71e2-11f0-a321-13f23c93f187;
 Tue, 05 Aug 2025 11:53:14 +0200 (CEST)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-3b78127c5d1so3045203f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 02:53:14 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-459d7d722dcsm81726915e9.24.2025.08.05.02.53.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Aug 2025 02:53:12 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 012038fb-71e2-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754387593; x=1754992393; 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=FsP/JixQiAB6kfYYFbr7LCCHkXcXLGwU+Dyro6/r2kA=;
        b=Fz2ZanIxm2Y9ptFvTfaScOuxYCz2uUB2o45RmGWaC87T14ES7aYQTpob2AU7NLcvVh
         D2yImYzyyyIwq7jUkGxXwKaWTcfgKxymlave90bBthssmAhyGD+/gA+irSj4YcI1lVsN
         /L1LxvzkAO1xLqsauQ7gdSV/aDw3aPoKlwp0g=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754387593; x=1754992393;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=FsP/JixQiAB6kfYYFbr7LCCHkXcXLGwU+Dyro6/r2kA=;
        b=xH04WBomTLqzJ1xfDrA214dtBnd5ypv8eOi2M9SWeW1hqPTyurL/9ymZ3QrsQquyKR
         o19WiU2+3e1i6Jacxot4q6m2kgfrmlPKQZ9lNmzkoqL23GB8qcVmFciX8m/1QE9zjca6
         JsMxQRNu/4BINHyOrp++rMS1Nb/JWn2vO0hivJEjN6VvoIropDh8hr4A0qnDBCRx0zun
         dWPLnFoePEcWBTPL9gkIZHhAF36bZ8Rtj2TDso7P9G/fyTBhLVALEUMyyyZZUSYDjrMr
         39G1+6cCPWSrCsuZcZHuC0cmbQgXOBpW/LMb+5s7ucn7flPCsZUoOzOOqRSre5QZRqOD
         GFhA==
X-Gm-Message-State: AOJu0YzckIbQa3OW1AFpqgDLVbtKipqWjPDqLwO1GGag9DxKxKISrf8p
	IROsTB+7glh7NenISfoU/TX0xg+mNWpMhMNxqP9IvzfhCABHyGXyEvw4GGYvWZav1TDMtlyBWzK
	6AQJO
X-Gm-Gg: ASbGncvaWy6xRBACltW2ucE7WpNbaSKwrmtnCF+R0eeCDtgMwHHGs7V1bwoGT1qNi0A
	b+h+13K+bSQhf71ohVi2v5h+BHHdjBd4q4EBOMPvlYUCM9onBtR+iaWTsJE9Ve0UfdHHdwm5J4S
	5W4nvNx0UssxkkoXBnnDBhuPe055NYQNlIKebtqcQbFjw0NOLKYsHdq/kRVQiDO+Uy2dLgEnWA5
	Px9lW58yG8me8be6q52BRUoBCqLY4edtuNjA2/a4r9BdNXkRg6/t5RYihEa+iLC4/K6u66YQGff
	6DjD2H5XXbc4NNrsJVEsy0PK8CnspSX8ACMeEck/dySTMFiYzTKLljF3WWUJjRGnaLS5AU3Ws/P
	KYZVo/KeOyGRDfPplGBX0m5YBYncM2z1ySgaPNym4/GcPLv7MvsIrSsdSFPAg0y4AIQ==
X-Google-Smtp-Source: AGHT+IH49zUlNPTt/qK45COiRhwo0/cwFIVsqcrvnCBiw9Pq26t9NZrr2MBWRQ3DVFuB+RVdrt8m8w==
X-Received: by 2002:a05:6000:2584:b0:3a5:3b93:be4b with SMTP id ffacd0b85a97d-3b8d94817camr9322675f8f.25.1754387593511;
        Tue, 05 Aug 2025 02:53:13 -0700 (PDT)
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>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@cloud.com>
Subject: [PATCH v4 3/8] pdx: introduce command line compression toggle
Date: Tue,  5 Aug 2025 11:52:52 +0200
Message-ID: <20250805095257.74975-4-roger.pau@citrix.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250805095257.74975-1-roger.pau@citrix.com>
References: <20250805095257.74975-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Introduce a command line option to allow disabling PDX compression.  The
disabling is done by turning pfn_pdx_add_region() into a no-op, so when
attempting to initialize the selected compression algorithm the array of
ranges to compress is empty.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@cloud.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
Changes since v1:
 - New in this version.
---
 docs/misc/xen-command-line.pandoc |  9 +++++++++
 xen/common/pdx.c                  | 14 +++++++++++++-
 2 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
index 6865a61220ca..5dd2ab82b7aa 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -2072,6 +2072,15 @@ for all of them (`true`), only for those subject to XPTI (`xpti`) or for
 those not subject to XPTI (`no-xpti`). The feature is used only in case
 INVPCID is supported and not disabled via `invpcid=false`.
 
+###Â pdx-compress
+> `= <boolean>`
+
+> Default: `true` if CONFIG_PDX_NONE is unset
+
+Only relevant when the hypervisor is build with PFN PDX compression. Controls
+whether Xen will engage in PFN compression.  The algorithm used for PFN
+compression is selected at build time from Kconfig.
+
 ### ple_gap
 > `= <integer>`
 
diff --git a/xen/common/pdx.c b/xen/common/pdx.c
index c5ea58873c0e..f4a3dcf6cb60 100644
--- a/xen/common/pdx.c
+++ b/xen/common/pdx.c
@@ -19,6 +19,7 @@
 #include <xen/mm.h>
 #include <xen/bitops.h>
 #include <xen/nospec.h>
+#include <xen/param.h>
 #include <xen/pfn.h>
 #include <xen/sections.h>
 
@@ -76,9 +77,13 @@ static struct pfn_range {
 } ranges[MAX_PFN_RANGES] __initdata;
 static unsigned int __initdata nr_ranges;
 
+static bool __initdata pdx_compress = true;
+boolean_param("pdx-compress", pdx_compress);
+
 void __init pfn_pdx_add_region(paddr_t base, paddr_t size)
 {
-    if ( !size )
+    /* Without ranges there's no PFN compression. */
+    if ( !size || !pdx_compress )
         return;
 
     if ( nr_ranges >= ARRAY_SIZE(ranges) )
@@ -215,6 +220,13 @@ void __init pfn_pdx_compression_setup(paddr_t base)
     unsigned int i, j, bottom_shift = 0, hole_shift = 0;
     unsigned long mask = pdx_init_mask(base) >> PAGE_SHIFT;
 
+    if ( !nr_ranges )
+    {
+        printk(XENLOG_DEBUG "PFN compression disabled%s\n",
+               pdx_compress ? ": no ranges provided" : "");
+        return;
+    }
+
     if ( nr_ranges > ARRAY_SIZE(ranges) )
     {
         printk(XENLOG_WARNING
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Aug 05 09:53:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 09:53:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070226.1433897 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujEM8-0002gx-TV; Tue, 05 Aug 2025 09:53:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070226.1433897; Tue, 05 Aug 2025 09:53: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 1ujEM8-0002g8-Nu; Tue, 05 Aug 2025 09:53:16 +0000
Received: by outflank-mailman (input) for mailman id 1070226;
 Tue, 05 Aug 2025 09:53:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Xkmx=2R=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1ujEM7-00026G-61
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 09:53:15 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 00800a5b-71e2-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 11:53:13 +0200 (CEST)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-459e39ee7ccso2003675e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 02:53:13 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-458f713eb44sm104033275e9.14.2025.08.05.02.53.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Aug 2025 02:53: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>
X-Inumbo-ID: 00800a5b-71e2-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754387592; x=1754992392; 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=vsHoH88Bq1GawZ6maquU1VqYJOWUKfDJ8Tpkog2WGL4=;
        b=mzdWx2O/lD84MrDcO+0WpXXyTYnJxi12qxaNuB5dYjjD+JrarMO3EE6ZdCA56hXEcH
         aftY6E+50Q333rRBfvUeLXMyPBdigtvAxvUocEOA4NYTeelMPNAb7DUTk7zJa9V/xGgh
         u1JTcmIOTxuEaid2ViYUYleRH+O020abq2mrg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754387592; x=1754992392;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=vsHoH88Bq1GawZ6maquU1VqYJOWUKfDJ8Tpkog2WGL4=;
        b=i37j8RcRSskP8JM7XmYuG2qYXdpg0Eyt2vNXuVx7KHy+6SWiHWbKvX8p11FA6wg1Ws
         li8pV9NXEXeklzeIKpa/nN8P/qhOq/qjfWlSTeOpq4uj1P5tmQKFdZvaSbvSaPloAh3c
         8JPQXd2yCmSYYT5JsfQ6NYVU/iztcrQFpBYL4gOjZPq+pVnZD/JQIf3wJeTdVWYbW5wu
         0v6MlWXmdndDEs7LZjSG/Rf0w/0z2KHKd9Dc0ZjIVeiwii437YgaRUEq3LhDfxNd+OSB
         UsUOBpkiSShVPZpXm+KjxnEzPMuIUdt7Jq8aYCusIQhrWTksvVaR9YkWNIj8h0KNC4ah
         ZLWQ==
X-Gm-Message-State: AOJu0YzPjG5JfQOgMlJux5SI30qbWt8DjPRaaSzOYPjZQEGb0QjLiBal
	zsnrxRgIzehUXS8zYPT49wx1/R+KTpt+T2EdeotFJzWSHpQ0mRFwo1CUsNtviMdfzNj4V/XWR/l
	3uvZX
X-Gm-Gg: ASbGnctL2SaReDRMbduPIYC6IDOxTRs0xskvd+lrAAJDSxn6OJsk7Yb2YuHSsHUnei5
	10ilmxrDFwragg9I+Vxi2Hu7JwuzntjVegHQiwuYIxuZSCdQDEJhz+yZVt9C6CZDTXV190NpGJG
	y6EJ7ZpTNxnWbut/tpDzu+60cQBLNT1wV5CXjlvf6PHhdpaGBCDfaMxHJY5ihQUIweXM2mAtnva
	ZrftDBtfV8sXjNisQpJ02O9ECFV32BrqK59rFhzaScS2k2mKEfERwrl56kM798xhyH7/v3U2fv3
	4vCt/7qWE+3e7HQ8KUs44d39UOdmBRuvA0arIDpgv46DxInjEeKi1zyx2/IGQxBM5RSrepdddBr
	l8LPVINqzY5QhKI3wW+gI2p1Jrrd2o3LJ+xvAXuj5ca7ZeSif68w7oWkfzxf/e5wMaA==
X-Google-Smtp-Source: AGHT+IFxvIar0IThaZT++liEgv3hQugAJuhVSOQvcs5FezgqdkMBUhbPoarb4rJsxvS11/W+diaoFA==
X-Received: by 2002:a05:600c:3b9c:b0:459:d3d0:650e with SMTP id 5b1f17b1804b1-459d3d065f9mr68179545e9.13.1754387592065;
        Tue, 05 Aug 2025 02:53:12 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v4 2/8] pdx: provide a unified set of unit functions
Date: Tue,  5 Aug 2025 11:52:51 +0200
Message-ID: <20250805095257.74975-3-roger.pau@citrix.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250805095257.74975-1-roger.pau@citrix.com>
References: <20250805095257.74975-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The current setup (pdx_init_mask() and pdx_region_mask()) and init
(pfn_pdx_hole_setup()) PDX compression functions are tailored to the
existing PDX compression algorithm.

In preparation for introducing a new compression algorithm convert the
setup and init functions to more generic interfaces that aren't tied to the
compression in-use.  To accomplish this introduce a function that registers
all the PFN RAM ranges, plus an init function.

This has the downside of requiring a static array to store such ranges
ahead of being processed by the setup function, however it's the only way
to pass all the possible information to the different compression setup
functions without using per-compression specific setup functions.
Per-arch compression setup also need to be adjusted to use the new
interface.  There's a slight ordering adjustment, in that after PDX
compression setup the caller will check whether all the RAM regions are
properly covered by the newly setup compression, otherwise compression is
disabled by resetting to the initial values.

No functional change intended in the resulting PDX compression values.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes since v3:
 - Rename base to base_pfn and size to pages.

Changes since v2:
 - Fix indentation.

Changes since v1:
 - s/nr/nr_ranges/
---
 xen/arch/arm/setup.c  |  34 ++++++------
 xen/arch/x86/srat.c   |  28 ++++++----
 xen/common/pdx.c      | 122 ++++++++++++++++++++++++++++++++++++------
 xen/include/xen/pdx.h |  73 +++++++++----------------
 4 files changed, 166 insertions(+), 91 deletions(-)

diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
index a77b31071ed8..ba35bf1fe3bb 100644
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -256,9 +256,11 @@ void __init init_pdx(void)
 {
     const struct membanks *mem = bootinfo_get_mem();
     paddr_t bank_start, bank_size, bank_end, ram_end = 0;
-    int bank;
+    unsigned int bank;
 
 #ifndef CONFIG_PDX_NONE
+    for ( bank = 0 ; bank < mem->nr_banks; bank++ )
+        pfn_pdx_add_region(mem->bank[bank].start, mem->bank[bank].size);
     /*
      * Arm does not have any restrictions on the bits to compress. Pass 0 to
      * let the common code further restrict the mask.
@@ -266,26 +268,24 @@ void __init init_pdx(void)
      * If the logic changes in pfn_pdx_hole_setup we might have to
      * update this function too.
      */
-    uint64_t mask = pdx_init_mask(0x0);
-
-    for ( bank = 0 ; bank < mem->nr_banks; bank++ )
-    {
-        bank_start = mem->bank[bank].start;
-        bank_size = mem->bank[bank].size;
-
-        mask |= bank_start | pdx_region_mask(bank_start, bank_size);
-    }
+    pfn_pdx_compression_setup(0);
 
     for ( bank = 0 ; bank < mem->nr_banks; bank++ )
     {
-        bank_start = mem->bank[bank].start;
-        bank_size = mem->bank[bank].size;
-
-        if (~mask & pdx_region_mask(bank_start, bank_size))
-            mask = 0;
+        if ( !pdx_is_region_compressible(
+                  mem->bank[bank].start,
+                  PFN_UP(mem->bank[bank].start + mem->bank[bank].size) -
+                  PFN_DOWN(mem->bank[bank].start)) )
+        {
+            pfn_pdx_compression_reset();
+            printk(XENLOG_WARNING
+                   "PFN compression disabled, RAM region [%#" PRIpaddr ", %#"
+                   PRIpaddr "] not covered\n",
+                   mem->bank[bank].start,
+                   mem->bank[bank].start + mem->bank[bank].size - 1);
+            break;
+        }
     }
-
-    pfn_pdx_hole_setup(mask >> PAGE_SHIFT);
 #endif
 
     for ( bank = 0 ; bank < mem->nr_banks; bank++ )
diff --git a/xen/arch/x86/srat.c b/xen/arch/x86/srat.c
index 688f410287d4..747607439fb4 100644
--- a/xen/arch/x86/srat.c
+++ b/xen/arch/x86/srat.c
@@ -261,8 +261,6 @@ acpi_numa_memory_affinity_init(const struct acpi_srat_mem_affinity *ma)
 
 void __init acpi_numa_arch_fixup(void) {}
 
-static uint64_t __initdata srat_region_mask;
-
 static int __init cf_check srat_parse_region(
     struct acpi_subtable_header *header, const unsigned long end)
 {
@@ -282,15 +280,13 @@ static int __init cf_check srat_parse_region(
 		printk(KERN_INFO "SRAT: %013"PRIx64"-%013"PRIx64"\n",
 		       ma->base_address, ma->base_address + ma->length - 1);
 
-	srat_region_mask |= ma->base_address |
-			    pdx_region_mask(ma->base_address, ma->length);
+	pfn_pdx_add_region(ma->base_address, ma->length);
 
 	return 0;
 }
 
 void __init srat_parse_regions(paddr_t addr)
 {
-	u64 mask;
 	unsigned int i;
 
 	if (acpi_disabled || acpi_numa < 0 ||
@@ -299,19 +295,29 @@ void __init srat_parse_regions(paddr_t addr)
 
 	/* Set "PXM" as early as feasible. */
 	numa_fw_nid_name = "PXM";
-	srat_region_mask = pdx_init_mask(addr);
 	acpi_table_parse_srat(ACPI_SRAT_TYPE_MEMORY_AFFINITY,
 			      srat_parse_region, 0);
 
-	for (mask = srat_region_mask, i = 0; mask && i < e820.nr_map; i++) {
+	pfn_pdx_compression_setup(addr);
+
+	/* Ensure all RAM ranges in the e820 are covered. */
+	for (i = 0; i < e820.nr_map; i++) {
 		if (e820.map[i].type != E820_RAM)
 			continue;
 
-		if (~mask & pdx_region_mask(e820.map[i].addr, e820.map[i].size))
-			mask = 0;
+		if (!pdx_is_region_compressible(
+		          e820.map[i].addr,
+		          PFN_UP(e820.map[i].addr + e820.map[i].size) -
+		          PFN_DOWN(e820.map[i].addr))) {
+			pfn_pdx_compression_reset();
+			printk(XENLOG_WARNING
+			       "PFN compression disabled, RAM region [%#" PRIx64
+			       ", %#" PRIx64 "] not covered\n",
+			       e820.map[i].addr,
+			       e820.map[i].addr + e820.map[i].size - 1);
+			return;
+		}
 	}
-
-	pfn_pdx_hole_setup(mask >> PAGE_SHIFT);
 }
 
 unsigned int numa_node_to_arch_nid(nodeid_t n)
diff --git a/xen/common/pdx.c b/xen/common/pdx.c
index 00aa7e43006d..c5ea58873c0e 100644
--- a/xen/common/pdx.c
+++ b/xen/common/pdx.c
@@ -19,6 +19,7 @@
 #include <xen/mm.h>
 #include <xen/bitops.h>
 #include <xen/nospec.h>
+#include <xen/pfn.h>
 #include <xen/sections.h>
 
 /**
@@ -55,6 +56,44 @@ void set_pdx_range(unsigned long smfn, unsigned long emfn)
         __set_bit(idx, pdx_group_valid);
 }
 
+#ifndef CONFIG_PDX_NONE
+
+#ifdef CONFIG_X86
+# include <asm/e820.h>
+# define MAX_PFN_RANGES E820MAX
+#elif defined(CONFIG_HAS_DEVICE_TREE_DISCOVERY)
+# include <xen/bootinfo.h>
+# define MAX_PFN_RANGES NR_MEM_BANKS
+#endif
+
+#ifndef MAX_PFN_RANGES
+# error "Missing architecture maximum number of RAM ranges"
+#endif
+
+/* Generic PFN compression helpers. */
+static struct pfn_range {
+    unsigned long base_pfn, pages;
+} ranges[MAX_PFN_RANGES] __initdata;
+static unsigned int __initdata nr_ranges;
+
+void __init pfn_pdx_add_region(paddr_t base, paddr_t size)
+{
+    if ( !size )
+        return;
+
+    if ( nr_ranges >= ARRAY_SIZE(ranges) )
+    {
+        ASSERT((nr_ranges + 1) > nr_ranges);
+        nr_ranges++;
+        return;
+    }
+
+    ranges[nr_ranges].base_pfn = PFN_DOWN(base);
+    ranges[nr_ranges++].pages = PFN_UP(base + size) - PFN_DOWN(base);
+}
+
+#endif /* !CONFIG_PDX_NONE */
+
 #ifdef CONFIG_PDX_MASK_COMPRESSION
 
 /*
@@ -115,20 +154,25 @@ static uint64_t fill_mask(uint64_t mask)
     return mask;
 }
 
-bool pdx_is_region_compressible(paddr_t base, unsigned long npages)
-{
-    return !(paddr_to_pfn(base) & pfn_hole_mask) &&
-           !(pdx_region_mask(base, npages * PAGE_SIZE) & ~ma_va_bottom_mask);
-}
-
-/* We don't want to compress the low MAX_ORDER bits of the addresses. */
-uint64_t __init pdx_init_mask(uint64_t base_addr)
-{
-    return fill_mask(max(base_addr,
-                         (uint64_t)1 << (MAX_ORDER + PAGE_SHIFT)) - 1);
-}
-
-uint64_t pdx_region_mask(uint64_t base, uint64_t len)
+/**
+ * Calculates a mask covering "moving" bits of all addresses of a region
+ *
+ * The i-th bit of the mask must be set if there's 2 different addresses
+ * in the region that have different j-th bits. where j >= i.
+ *
+ * e.g:
+ *       base=0x1B00000000
+ *   len+base=0x1B00042000
+ *
+ *   ought to return 0x000007FFFF, which implies that every bit position
+ *   with a zero in the mask remains unchanged in every address of the
+ *   region.
+ *
+ * @param base Base address of the region
+ * @param len  Size in octets of the region
+ * @return Mask of moving bits at the bottom of all the region addresses
+ */
+static uint64_t pdx_region_mask(uint64_t base, uint64_t len)
 {
     /*
      * We say a bit "moves" in a range if there exist 2 addresses in that
@@ -143,9 +187,45 @@ uint64_t pdx_region_mask(uint64_t base, uint64_t len)
     return fill_mask(base ^ (base + len - 1));
 }
 
-void __init pfn_pdx_hole_setup(unsigned long mask)
+bool pdx_is_region_compressible(paddr_t base, unsigned long npages)
+{
+    return !(paddr_to_pfn(base) & pfn_hole_mask) &&
+           !(pdx_region_mask(base, npages * PAGE_SIZE) & ~ma_va_bottom_mask);
+}
+
+/**
+ * Creates the mask to start from when calculating non-compressible bits
+ *
+ * This function is intimately related to pdx_region_mask(), and together
+ * they are meant to calculate the mask of non-compressible bits given the
+ * current memory map.
+ *
+ * @param base_addr Address of the first maddr in the system
+ * @return An integer of the form 2^n - 1
+ */
+static uint64_t __init pdx_init_mask(uint64_t base_addr)
+{
+    return fill_mask(max(base_addr,
+                         /* Don't compress the low MAX_ORDER bits. */
+                         (uint64_t)1 << (MAX_ORDER + PAGE_SHIFT)) - 1);
+}
+
+void __init pfn_pdx_compression_setup(paddr_t base)
 {
     unsigned int i, j, bottom_shift = 0, hole_shift = 0;
+    unsigned long mask = pdx_init_mask(base) >> PAGE_SHIFT;
+
+    if ( nr_ranges > ARRAY_SIZE(ranges) )
+    {
+        printk(XENLOG_WARNING
+               "Too many PFN ranges (%u > %zu), not attempting PFN compression\n",
+               nr_ranges, ARRAY_SIZE(ranges));
+        return;
+    }
+
+    for ( i = 0; i < nr_ranges; i++ )
+        mask |= ranges[i].base_pfn |
+                pdx_region_mask(ranges[i].base_pfn, ranges[i].pages);
 
     /*
      * We skip the first MAX_ORDER bits, as we never want to compress them.
@@ -184,6 +264,18 @@ void __init pfn_pdx_hole_setup(unsigned long mask)
     ma_top_mask         = pfn_top_mask << PAGE_SHIFT;
 }
 
+void __init pfn_pdx_compression_reset(void)
+{
+    pfn_pdx_bottom_mask = ~0UL;
+    ma_va_bottom_mask = ~0UL;
+    pfn_top_mask = 0;
+    ma_top_mask = 0;
+    pfn_hole_mask = 0;
+    pfn_pdx_hole_shift = 0;
+
+    nr_ranges = 0;
+}
+
 #endif /* CONFIG_PDX_COMPRESSION */
 
 /*
diff --git a/xen/include/xen/pdx.h b/xen/include/xen/pdx.h
index 8e373cac8b87..10153da98bf1 100644
--- a/xen/include/xen/pdx.h
+++ b/xen/include/xen/pdx.h
@@ -108,38 +108,6 @@ extern unsigned int pfn_pdx_hole_shift;
 extern unsigned long pfn_hole_mask;
 extern unsigned long pfn_top_mask, ma_top_mask;
 
-/**
- * Calculates a mask covering "moving" bits of all addresses of a region
- *
- * The i-th bit of the mask must be set if there's 2 different addresses
- * in the region that have different j-th bits. where j >= i.
- *
- * e.g:
- *       base=0x1B00000000
- *   len+base=0x1B00042000
- *
- *   ought to return 0x000007FFFF, which implies that every bit position
- *   with a zero in the mask remains unchanged in every address of the
- *   region.
- *
- * @param base Base address of the region
- * @param len  Size in octets of the region
- * @return Mask of moving bits at the bottom of all the region addresses
- */
-uint64_t pdx_region_mask(uint64_t base, uint64_t len);
-
-/**
- * Creates the mask to start from when calculating non-compressible bits
- *
- * This function is intimately related to pdx_region_mask(), and together
- * they are meant to calculate the mask of non-compressible bits given the
- * current memory map.
- *
- * @param base_addr Address of the first maddr in the system
- * @return An integer of the form 2^n - 1
- */
-uint64_t pdx_init_mask(uint64_t base_addr);
-
 /**
  * Map pfn to its corresponding pdx
  *
@@ -189,17 +157,6 @@ static inline paddr_t directmapoff_to_maddr(unsigned long offset)
             (offset & ma_va_bottom_mask));
 }
 
-/**
- * Initializes global variables with information about the compressible
- * range of the current memory regions.
- *
- * @param mask This mask is the biggest pdx_mask of every region in the
- *             system ORed with all base addresses of every region in the
- *             system. This results in a mask where every zero in a bit
- *             position marks a potentially compressible bit.
- */
-void pfn_pdx_hole_setup(unsigned long mask);
-
 #endif /* CONFIG_PDX_MASK_COMPRESSION */
 
 #ifdef CONFIG_PDX_NONE
@@ -220,17 +177,15 @@ static inline bool pdx_is_region_compressible(paddr_t base,
     return true;
 }
 
-static inline uint64_t pdx_init_mask(uint64_t base_addr)
+static inline void pfn_pdx_add_region(paddr_t base, paddr_t size)
 {
-    return 0;
 }
 
-static inline uint64_t pdx_region_mask(uint64_t base, uint64_t len)
+static inline void pfn_pdx_compression_setup(paddr_t base)
 {
-    return 0;
 }
 
-static inline void pfn_pdx_hole_setup(unsigned long mask)
+static inline void pfn_pdx_compression_reset(void)
 {
 }
 
@@ -247,6 +202,28 @@ static inline void pfn_pdx_hole_setup(unsigned long mask)
  */
 bool pdx_is_region_compressible(paddr_t base, unsigned long npages);
 
+/**
+ * Register a RAM region with the PFN compression logic.
+ *
+ * @param base Start of the region in bytes.
+ * @param size Length of the region in bytes.
+ */
+void pfn_pdx_add_region(paddr_t base, paddr_t size);
+
+/**
+ * Initializes global variables with information about the compressible
+ * range of the current memory regions.
+ *
+ * @param base address to start compression from.
+ */
+void pfn_pdx_compression_setup(paddr_t base);
+
+/**
+ * Reset the global variables to it's default values, thus disabling PFN
+ * compression.
+ */
+void pfn_pdx_compression_reset(void);
+
 #endif /* !CONFIG_PDX_NONE */
 #endif /* __XEN_PDX_H__ */
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Aug 05 09:53:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 09:53:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070227.1433906 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujEMB-0002zW-8x; Tue, 05 Aug 2025 09:53:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070227.1433906; Tue, 05 Aug 2025 09:53: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 1ujEMB-0002zG-52; Tue, 05 Aug 2025 09:53:19 +0000
Received: by outflank-mailman (input) for mailman id 1070227;
 Tue, 05 Aug 2025 09:53:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Xkmx=2R=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1ujEM9-0001yh-Bl
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 09:53:17 +0000
Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com
 [2a00:1450:4864:20::329])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 028c75f3-71e2-11f0-a321-13f23c93f187;
 Tue, 05 Aug 2025 11:53:16 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-458bc3ce3beso17623665e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 02:53:16 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3b79c3ac115sm18611197f8f.12.2025.08.05.02.53.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Aug 2025 02:53: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>
X-Inumbo-ID: 028c75f3-71e2-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754387596; x=1754992396; 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=GhNVb0ZBMkEpsnDvzYh3YmEGHHdUK0KvBkXDeBZiN3g=;
        b=akO85gkBD+r0K5/Y7o4s68DoH8pGUy5Tze4ruo/N6qqTfZhD+f7BjUpNpQhZ56Y05V
         ZJxUwTp7Bq4NsYjiQN12GmXFL99TajTUEcNzzOKJ3pgxU9huIers7PzzMAkVO3WGBrOW
         W/r4vADg35aUrjZYBBiAtqhiIc2wgecAckStY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754387596; x=1754992396;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=GhNVb0ZBMkEpsnDvzYh3YmEGHHdUK0KvBkXDeBZiN3g=;
        b=EGfW684fxW0M5OpvKlH3l+yzZK51BCkD+b9iUl55qvu10e1Yfhf3Ndv/VOlXXyQAj1
         nLoaqhrJh49qe4GV9khvG6JzDKo+FC+seHz7gshZ9vNjg1ET0zQvUB8y59cASjSWJLM8
         x/QCVVNA21f7yos3ntPr88LxYIHsY6eT7KKHCPQtfNjjanMvJbzA+n8lUEJvtHgW3W2t
         3k3Xh7vWjq/myEqIoecw8XhUFev9IijmfNGeZWmmK/UFyOnO0UlWwqUmR0y8XNtwWL7o
         d9OWCiD6O7Kkgy6OlvypXnsTN7jLPDWE2K8iDyoYoKmbX0oUaaZT8W6Y0r+tRv7JNHsO
         OKFQ==
X-Gm-Message-State: AOJu0YxJ+r+/+AQhRTN7b3ngXZ175xiSSSIUh90y+PRq4+CW2bq7d4Kg
	YqpNQSc/ZdO1gR+2ij/Hgp0xAMeAxEbisY5p8G35QLqavXjAJz4mQ3ai5fhv7MiCikmR05ugfdy
	Ou91M
X-Gm-Gg: ASbGncsd7g8Sj61aEk9+o5PiqRI7aoiW2znZGTjpS1GA6qaTQGT7/xSYMVxrHsM8WrR
	oh3lamArNWax1+8TTlxPdLkvBSG41x0v8qQX0Iff6+Qo9e1BZOW8fl+W+i7ymI5S0eEiR3pu5wW
	Net4dMJZkxVrd0m/7S7Ct5NRE+HYnDmQZqTZBPzSJBumcvk7OvJzUaZ1qu7/npfgFHzlVsMb+WM
	d0vXcHSzcoSv/l09RbtYp2gv6n8UHmMGlEknFibJwzOMCXdZig8+eVKDnlH7iORTjPBHc/gJbQ7
	8ygFeZ4V02RsYLx2DXyH1w/sATmpx7S8E84rHVYPOuMT64WKSRHIedIiS2NNAJvjximoKdsMCKb
	oGHV0RNHtikr7uLR2ljX8h5UG80YM5NnIzb1poKylVHNZOFjbgU+d6ko/Txu1GMDjXA==
X-Google-Smtp-Source: AGHT+IF8Hlz1NANF27jwxjR7WhHDaJIu9qeg8DsnUouM8UGa3gJLwXNf3/SypT85GbgbUedpf/x+lw==
X-Received: by 2002:a05:600c:4752:b0:456:25aa:e9c0 with SMTP id 5b1f17b1804b1-458b69e3710mr115207405e9.14.1754387595822;
        Tue, 05 Aug 2025 02:53:15 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4 5/8] test/pdx: add PDX compression unit tests
Date: Tue,  5 Aug 2025 11:52:54 +0200
Message-ID: <20250805095257.74975-6-roger.pau@citrix.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250805095257.74975-1-roger.pau@citrix.com>
References: <20250805095257.74975-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Introduce a set of unit tests for PDX compression.  The unit tests contains
both real and crafted memory maps that are then compressed using the
selected PDX algorithm.  Note the build system for the unit tests has been
done in a way to support adding new compression algorithms easily.  That
requires generating a new test-pdx-<compress> executable that's build with
the selected PDX compression enabled.

Currently the only generated executable is test-pdx-mask that tests PDX
mask compression.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
Changes since v2:
 - Use set -e when running the tests.
 - Drop stray removal of pdx.c.
 - Use * instead of ? for header blank space capture.
 - Add some more memory maps.

Changes since v1:
 - New in this version (partially pulled out from a different patch).
---
 tools/tests/Makefile       |   1 +
 tools/tests/pdx/.gitignore |   2 +
 tools/tests/pdx/Makefile   |  49 +++++++
 tools/tests/pdx/harness.h  |  84 ++++++++++++
 tools/tests/pdx/test-pdx.c | 267 +++++++++++++++++++++++++++++++++++++
 xen/common/pdx.c           |   4 +
 6 files changed, 407 insertions(+)
 create mode 100644 tools/tests/pdx/.gitignore
 create mode 100644 tools/tests/pdx/Makefile
 create mode 100644 tools/tests/pdx/harness.h
 create mode 100644 tools/tests/pdx/test-pdx.c

diff --git a/tools/tests/Makefile b/tools/tests/Makefile
index 36928676a666..97ba2a13894d 100644
--- a/tools/tests/Makefile
+++ b/tools/tests/Makefile
@@ -9,6 +9,7 @@ ifneq ($(clang),y)
 SUBDIRS-$(CONFIG_X86) += x86_emulator
 endif
 SUBDIRS-y += xenstore
+SUBDIRS-y += pdx
 SUBDIRS-y += rangeset
 SUBDIRS-y += vpci
 SUBDIRS-y += paging-mempool
diff --git a/tools/tests/pdx/.gitignore b/tools/tests/pdx/.gitignore
new file mode 100644
index 000000000000..a32c7db4de79
--- /dev/null
+++ b/tools/tests/pdx/.gitignore
@@ -0,0 +1,2 @@
+/pdx.h
+/test-pdx-mask
diff --git a/tools/tests/pdx/Makefile b/tools/tests/pdx/Makefile
new file mode 100644
index 000000000000..b3734afde686
--- /dev/null
+++ b/tools/tests/pdx/Makefile
@@ -0,0 +1,49 @@
+XEN_ROOT=$(CURDIR)/../../..
+include $(XEN_ROOT)/tools/Rules.mk
+
+TARGETS := test-pdx-mask
+
+.PHONY: all
+all: $(TARGETS)
+
+.PHONY: run
+run: $(TARGETS)
+ifeq ($(CC),$(HOSTCC))
+	set -e;             \
+	for test in $? ; do \
+		./$$test ;  \
+	done
+else
+	$(warning HOSTCC != CC, will not run test)
+endif
+
+.PHONY: clean
+clean:
+	$(RM) -- *.o $(TARGETS) $(DEPS_RM) pdx.h
+
+.PHONY: distclean
+distclean: clean
+	$(RM) -- *~
+
+.PHONY: install
+install: all
+	$(INSTALL_DIR) $(DESTDIR)$(LIBEXEC)/tests
+	$(INSTALL_PROG) $(TARGETS) $(DESTDIR)$(LIBEXEC)/tests
+
+.PHONY: uninstall
+uninstall:
+	$(RM) -- $(patsubst %,$(DESTDIR)$(LIBEXEC)/tests/%,$(TARGETS))
+
+pdx.h: $(XEN_ROOT)/xen/include/xen/pdx.h
+	sed -E -e '/^#[[:space:]]*include/d' <$< >$@
+
+CFLAGS += -D__XEN_TOOLS__
+CFLAGS += $(APPEND_CFLAGS)
+CFLAGS += $(CFLAGS_xeninclude)
+
+test-pdx-mask: CFLAGS += -DCONFIG_PDX_MASK_COMPRESSION
+
+test-pdx-%: test-pdx.c pdx.h
+	$(CC) $(CPPFLAGS) $(CFLAGS) $(CFLAGS_$*.o) -o $@ $< $(APPEND_CFLAGS)
+
+-include $(DEPS_INCLUDE)
diff --git a/tools/tests/pdx/harness.h b/tools/tests/pdx/harness.h
new file mode 100644
index 000000000000..5bef7df650d2
--- /dev/null
+++ b/tools/tests/pdx/harness.h
@@ -0,0 +1,84 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Unit tests for PDX compression.
+ *
+ * Copyright (C) 2025 Cloud Software Group
+ */
+
+#ifndef _TEST_HARNESS_
+#define _TEST_HARNESS_
+
+#include <assert.h>
+#include <stdbool.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <xen-tools/common-macros.h>
+
+#define __init
+#define __initdata
+#define __ro_after_init
+#define cf_check
+
+#define printk printf
+#define XENLOG_INFO
+#define XENLOG_DEBUG
+#define XENLOG_WARNING
+#define KERN_INFO
+
+#define BITS_PER_LONG (unsigned int)(sizeof(unsigned long) * 8)
+
+#define PAGE_SHIFT    12
+/* Some libcs define PAGE_SIZE in limits.h. */
+#undef  PAGE_SIZE
+#define PAGE_SIZE     (1 << PAGE_SHIFT)
+#define MAX_ORDER     18 /* 2 * PAGETABLE_ORDER (9) */
+
+#define PFN_DOWN(x)   ((x) >> PAGE_SHIFT)
+#define PFN_UP(x)     (((x) + PAGE_SIZE-1) >> PAGE_SHIFT)
+
+#define pfn_to_paddr(pfn) ((paddr_t)(pfn) << PAGE_SHIFT)
+#define paddr_to_pfn(pa)  ((unsigned long)((pa) >> PAGE_SHIFT))
+
+#define MAX_RANGES 16
+#define MAX_PFN_RANGES MAX_RANGES
+
+#define ASSERT assert
+
+#define CONFIG_DEBUG
+
+static inline unsigned int find_next(
+    const unsigned long *addr, unsigned int size, unsigned int off, bool value)
+{
+    unsigned int i;
+
+    ASSERT(size <= BITS_PER_LONG);
+
+    for ( i = off; i < size; i++ )
+        if ( !!(*addr & (1UL << i)) == value )
+            return i;
+
+    return size;
+}
+
+#define find_next_zero_bit(a, s, o) find_next(a, s, o, false)
+#define find_next_bit(a, s, o)      find_next(a, s, o, true)
+
+#define boolean_param(name, func)
+
+typedef uint64_t paddr_t;
+
+#include "pdx.h"
+
+#endif
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/tools/tests/pdx/test-pdx.c b/tools/tests/pdx/test-pdx.c
new file mode 100644
index 000000000000..0798ccee359b
--- /dev/null
+++ b/tools/tests/pdx/test-pdx.c
@@ -0,0 +1,267 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Unit tests for PDX compression.
+ *
+ * Copyright (C) 2025 Cloud Software Group
+ */
+
+#include "harness.h"
+
+#include "../../xen/common/pdx.c"
+
+struct range {
+    /* Ranges are defined as [start, end). */
+    unsigned long start, end;
+};
+
+static void print_ranges(const struct range *r)
+{
+    unsigned int i;
+
+    printf("Ranges:\n");
+
+    for ( i = 0; i < MAX_RANGES; i++ )
+    {
+        if ( !r[i].start && !r[i].end )
+            break;
+
+        printf(" %013lx-%013lx\n", r[i].start, r[i].end);
+    }
+}
+
+int main(int argc, char **argv)
+{
+    static const struct {
+        struct range ranges[MAX_RANGES];
+        bool compress;
+    } tests[] = {
+#ifdef __LP64__
+        /*
+         * Only for targets where unsigned long is 64bits, otherwise compiler
+         * will complain about truncation from 'long long' -> 'long' conversion.
+         *
+         * Real memory map from a 4s Intel GNR.  Not compressible using PDX
+         * mask compression.
+         */
+        {
+            .ranges = {
+                { .start =           0,   .end =     0x80000UL },
+                { .start =   0x0100000UL, .end =   0x8080000UL },
+                { .start =  0x63e80000UL, .end =  0x6be80000UL },
+                { .start =  0xc7e80000UL, .end =  0xcfe80000UL },
+                { .start = 0x12be80000UL, .end = 0x133e80000UL },
+            },
+            .compress = false,
+        },
+        /* Simple hole. */
+        {
+            .ranges = {
+                { .start =                                                 0,
+                  .end   =                            (1UL << MAX_ORDER) * 1 },
+                { .start = (1UL << (MAX_ORDER * 2)) |                      0,
+                  .end   = (1UL << (MAX_ORDER * 2)) | (1UL << MAX_ORDER) * 1 },
+            },
+            .compress = true,
+        },
+        /* Simple hole, unsorted ranges. */
+        {
+            .ranges = {
+                { .start = (1UL << (MAX_ORDER * 2)) |                      0,
+                  .end   = (1UL << (MAX_ORDER * 2)) | (1UL << MAX_ORDER) * 1 },
+                { .start =                                                 0,
+                  .end   =                            (1UL << MAX_ORDER) * 1 },
+            },
+            .compress = true,
+        },
+        /* PDX compression, 2 ranges covered by the lower mask. */
+        {
+            .ranges = {
+                { .start =                    0,
+                  .end   = (1 << MAX_ORDER) * 1 },
+                { .start = (1 << MAX_ORDER) * 2,
+                  .end   = (1 << MAX_ORDER) * 3 },
+                { .start = (1 << MAX_ORDER) * 20,
+                  .end   = (1 << MAX_ORDER) * 22 },
+            },
+            .compress = true,
+        },
+        /* Single range not starting at 0. */
+        {
+            .ranges = {
+                { .start = (1 << MAX_ORDER) * 10,
+                  .end   = (1 << MAX_ORDER) * 11 },
+            },
+            .compress = true,
+        },
+        /* Resulting PDX region size leads to no compression. */
+        {
+            .ranges = {
+                { .start =                    0,
+                  .end   = (1 << MAX_ORDER) * 1 },
+                { .start = (1 << MAX_ORDER) * 2,
+                  .end   = (1 << MAX_ORDER) * 3 },
+                { .start = (1 << MAX_ORDER) * 4,
+                  .end   = (1 << MAX_ORDER) * 7 },
+                { .start = (1 << MAX_ORDER) * 8,
+                  .end   = (1 << MAX_ORDER) * 12 },
+            },
+            .compress = false,
+        },
+        /* AMD Versal Gen 2 ARM board. */
+        {
+            .ranges = {
+                { .start =          0,   .end =    0x80000UL },
+                { .start =   0x800000UL, .end =   0x880000UL },
+                { .start = 0x50000000UL, .end = 0x50080000UL },
+                { .start = 0x60000000UL, .end = 0x60080000UL },
+                { .start = 0x70000000UL, .end = 0x70080000UL },
+            },
+            .compress = true,
+        },
+        /* Unsorted ranges, lower one not starting at 0. */
+        {
+        .ranges = {
+                { .start = (1UL << (35 - PAGE_SHIFT)) + (1 << MAX_ORDER) * 2,
+                  .end =   (1UL << (35 - PAGE_SHIFT)) + (1 << MAX_ORDER) * 3 },
+                { .start = (1 << MAX_ORDER) * 2,
+                  .end =   (1 << MAX_ORDER) * 3 },
+            },
+            .compress = true,
+        },
+        /* Two ranges with the same high bit set. */
+        {
+        .ranges = {
+                { .start = (1UL << (51 - PAGE_SHIFT)) + (1 << MAX_ORDER) * 0,
+                  .end =   (1UL << (51 - PAGE_SHIFT)) + (1 << MAX_ORDER) * 1 },
+                { .start = (1UL << (51 - PAGE_SHIFT)) + (1 << MAX_ORDER) * 3,
+                  .end =   (1UL << (51 - PAGE_SHIFT)) + (1 << MAX_ORDER) * 4 },
+            },
+            .compress = true,
+        },
+#endif
+        /* AMD Naples Epyc 7281 2 sockets, 8 NUMA nodes. */
+        {
+            .ranges = {
+                { .start =         0,   .end =      0xa0UL },
+                { .start =     0x100UL, .end =   0xb0000UL },
+                { .start =  0x100000UL, .end =  0x430000UL },
+                { .start =  0x430000UL, .end =  0x830000UL },
+                { .start =  0x830000UL, .end =  0xc30000UL },
+                { .start =  0xc30000UL, .end = 0x1030000UL },
+                { .start = 0x1030000UL, .end = 0x1430000UL },
+                { .start = 0x1430000UL, .end = 0x1830000UL },
+                { .start = 0x1830000UL, .end = 0x1c30000UL },
+                { .start = 0x1c30000UL, .end = 0x2030000UL },
+            },
+            .compress = false,
+        },
+        /* 2-node 2GB per-node QEMU layout. */
+        {
+            .ranges = {
+                { .start =        0,   .end =  0x80000UL },
+                { .start = 0x100000UL, .end = 0x180000UL },
+            },
+            .compress = true,
+        },
+        /* Not compressible, smaller than MAX_ORDER. */
+        {
+            .ranges = {
+                { .start =     0,   .end =     1   },
+                { .start = 0x100UL, .end = 0x101UL },
+            },
+            .compress = false,
+        },
+        /* Compressible, requires adjusting size to (1 << MAX_ORDER). */
+        {
+            .ranges = {
+                { .start =        0,   .end =        1   },
+                { .start = 0x100000UL, .end = 0x100001UL },
+            },
+            .compress = true,
+        },
+        /* 2s Intel CLX with contiguous ranges, no compression. */
+        {
+            .ranges = {
+                { .start =        0  , .end =  0x180000UL },
+                { .start = 0x180000UL, .end = 0x3040000UL },
+            },
+            .compress = false,
+        },
+    };
+    int ret_code = EXIT_SUCCESS;
+
+    for ( unsigned int i = 0 ; i < ARRAY_SIZE(tests); i++ )
+    {
+        unsigned int j;
+
+        pfn_pdx_compression_reset();
+
+        for ( j = 0; j < ARRAY_SIZE(tests[i].ranges); j++ )
+        {
+            unsigned long size = tests[i].ranges[j].end -
+                                 tests[i].ranges[j].start;
+
+            if ( !tests[i].ranges[j].start && !tests[i].ranges[j].end )
+                break;
+
+            pfn_pdx_add_region(tests[i].ranges[j].start << PAGE_SHIFT,
+                               size << PAGE_SHIFT);
+        }
+
+        if ( pfn_pdx_compression_setup(0) != tests[i].compress )
+        {
+            printf("PFN compression diverge, expected %scompressible\n",
+                   tests[i].compress ? "" : "un");
+            print_ranges(tests[i].ranges);
+
+            ret_code = EXIT_FAILURE;
+            continue;
+        }
+
+        if ( !tests[i].compress )
+            continue;
+
+        for ( j = 0; j < ARRAY_SIZE(tests[i].ranges); j++ )
+        {
+            unsigned long start = tests[i].ranges[j].start;
+            unsigned long end = tests[i].ranges[j].end;
+
+            if ( !start && !end )
+                break;
+
+            if ( !pdx_is_region_compressible(start << PAGE_SHIFT, 1) ||
+                 !pdx_is_region_compressible((end - 1) << PAGE_SHIFT, 1) )
+            {
+                printf(
+    "PFN compression invalid, pages %#lx and %#lx should be compressible\n",
+                       start, end - 1);
+                print_ranges(tests[i].ranges);
+                ret_code = EXIT_FAILURE;
+            }
+
+            if ( start != pdx_to_pfn(pfn_to_pdx(start)) ||
+                 end - 1 != pdx_to_pfn(pfn_to_pdx(end - 1)) )
+            {
+                printf("Compression is not bi-directional:\n");
+                printf(" PFN %#lx -> PDX %#lx -> PFN %#lx\n",
+                       start, pfn_to_pdx(start), pdx_to_pfn(pfn_to_pdx(start)));
+                printf(" PFN %#lx -> PDX %#lx -> PFN %#lx\n",
+                       end - 1, pfn_to_pdx(end - 1),
+                       pdx_to_pfn(pfn_to_pdx(end - 1)));
+                print_ranges(tests[i].ranges);
+                ret_code = EXIT_FAILURE;
+            }
+        }
+    }
+
+    return ret_code;
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/common/pdx.c b/xen/common/pdx.c
index c9ec86729151..cd8a9e75a836 100644
--- a/xen/common/pdx.c
+++ b/xen/common/pdx.c
@@ -15,6 +15,8 @@
  * along with this program; If not, see <http://www.gnu.org/licenses/>.
  */
 
+/* Trim content when built for the test harness. */
+#ifdef __XEN__
 #include <xen/init.h>
 #include <xen/mm.h>
 #include <xen/bitops.h>
@@ -57,6 +59,8 @@ void set_pdx_range(unsigned long smfn, unsigned long emfn)
         __set_bit(idx, pdx_group_valid);
 }
 
+#endif /* __XEN__ */
+
 #ifndef CONFIG_PDX_NONE
 
 #ifdef CONFIG_X86
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Aug 05 09:53:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 09:53:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070228.1433910 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujEMB-000323-IN; Tue, 05 Aug 2025 09:53:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070228.1433910; Tue, 05 Aug 2025 09:53: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 1ujEMB-00031U-DS; Tue, 05 Aug 2025 09:53:19 +0000
Received: by outflank-mailman (input) for mailman id 1070228;
 Tue, 05 Aug 2025 09:53:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Xkmx=2R=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1ujEM9-00026G-RI
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 09:53:17 +0000
Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com
 [2a00:1450:4864:20::42d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 02297962-71e2-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 11:53:16 +0200 (CEST)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-3b7886bee77so4477966f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 02:53:16 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3b79c3b95f4sm18447847f8f.23.2025.08.05.02.53.14
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Aug 2025 02:53: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>
X-Inumbo-ID: 02297962-71e2-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754387595; x=1754992395; 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=f1xBFAQp2tU3X5eYxoTRxXwfOAwjqwHWw59TnMhPZ9E=;
        b=c7MBeCHiCF/1qUpO+iiwYHbrHY9wcB+QuR2xazxnaFp4qjTLqPTR2LtDv1utuNCBgH
         mLqLd13md5+PXbvXvf5bT98cPORVCM3tjny5EmoK7y9f5IzxPWFN8J+NOpjGRt48AAWZ
         DZOJZltmaspumcZLHnl0fAzNrQTVbm/IDn6cQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754387595; x=1754992395;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=f1xBFAQp2tU3X5eYxoTRxXwfOAwjqwHWw59TnMhPZ9E=;
        b=GLtiPxzGsu4E6tKIYRXwTdjyD5BpFILq3EvgkcOKkYbldps8Dr4O7AtanZ63rFjK1E
         EKnoV+X2kCLy3UIOwma26MjqkJgomBEpcJct1OpG2ic85e005oc+1Cb/6BJO1vH2dcYn
         IDmPvDXFZ1UsAFQTFrLzNJE4ZNTAwn8nkKe23cu8CVvtG4lscqQT4fGrgRKGZ53HA38A
         TCTAEVEaUQX8ofqL+aX5KRDEelW8NVvdgfmOY3bl1ycKHNlRNPDtF/8Qqxj8HxkgMG9v
         xy+O7z5ctFbyaO1ZPZ0hqo56XyyZVHCJvGatEz6uCoJoGKVdd9LRiEU3il4+EbE1af+F
         mcKg==
X-Gm-Message-State: AOJu0YzdMR7yG4bRWb5amUVeQOkD7ISxBhBgMTC6gEYD2JdSebsEUj08
	3c1EzmdvAau7dEurca9jkEAViWDtpu7yx6eIyGLvrPc4YC2j9zprL9a4jJ3JKpz0pPGXs6N9UjC
	8nzNq
X-Gm-Gg: ASbGncvzxsNC7HZPe1VJkJ5G1Ny1JYdVfnePHfFmxd9HEr0XETfY/v33Y4swDQtErJp
	OBca8ZsUaCYKRWbEJAbt1rZTjI/WUOTJlR6uxjsQO4fc7aejhN5Z/DqJcXCpsbW2sXHl/lCf5FB
	qiUxjVYqRmuDCvYcLJz3oGu52LlleCE0xz9AN+/ZTWJnXrw5hX9DotlOlV9n6aEmI1v/Cj1NIF+
	rOjVJtwwiFM8ntV9uVi26C3IEcrcX8yxXrUiG6QMK9rFwRk74hsuCYrpYq+RWun27H5gl/GIDoi
	nySQEaSo4ic+EDZj4XDnsblvuQnQz1azqu9HS8OUZgLdBt2BeBRSZtGHzvRKI7kGVPboLmlbk99
	zxUFQLSZVvPeO1P/JezYC5sO5805y6/cVl+UhZ2em1l5iN0qTskJHcOwnEIWHlT5idg==
X-Google-Smtp-Source: AGHT+IFHLgGTaQ6E5u7Plz8Q4Qef8ivTkL1ylGSdq7BstwwYvvUspsHFDN/BNElPxIzFK+sVHrumXg==
X-Received: by 2002:a5d:588a:0:b0:3b7:e3c3:fbb6 with SMTP id ffacd0b85a97d-3b8d94ba9aemr9316236f8f.31.1754387594710;
        Tue, 05 Aug 2025 02:53:14 -0700 (PDT)
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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4 4/8] pdx: allow per-arch optimization of PDX conversion helpers
Date: Tue,  5 Aug 2025 11:52:53 +0200
Message-ID: <20250805095257.74975-5-roger.pau@citrix.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250805095257.74975-1-roger.pau@citrix.com>
References: <20250805095257.74975-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

There are four performance critical PDX conversion helpers that do the PFN
to/from PDX and the physical addresses to/from directmap offsets
translations.

In the absence of an active PDX compression, those functions would still do
the calculations needed, just to return the same input value as no
translation is in place and hence PFN and PDX spaces are identity mapped.

To reduce the overhead of having to do the pointless calculations allow
architectures to implement the translation helpers in a per-arch header.
Rename the existing conversion functions to add a trailing _xlate suffix,
so that the per-arch headers can define the non suffixed versions.

Currently only x86 implements meaningful custom handlers to short circuit
the translation when not active, using asm goto.  Other architectures use
generic macros that map the non-xlate to the xlate variants to keep the
previous behavior.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
Changes since v3:
 - Use has_include.

Changes since v2:
 - Consume the skip label as parameter in the PDX optimize macro.

Changes since v1:
 - Pull return out of OPTIMIZE_PDX macro.
 - undef OPTIMIZE_PDX.
---
Would it make sense to move the x86 implementation to the common pdx.h
header and let architectures define PDX_ASM_GOTO_SKIP instead?
---
 xen/arch/x86/include/asm/cpufeatures.h |  1 +
 xen/arch/x86/include/asm/pdx.h         | 71 ++++++++++++++++++++++++++
 xen/arch/x86/srat.c                    |  6 ++-
 xen/common/pdx.c                       | 10 ++--
 xen/include/xen/pdx.h                  | 29 ++++++++---
 5 files changed, 106 insertions(+), 11 deletions(-)
 create mode 100644 xen/arch/x86/include/asm/pdx.h

diff --git a/xen/arch/x86/include/asm/cpufeatures.h b/xen/arch/x86/include/asm/cpufeatures.h
index bc108c3819e8..71308d9dafc8 100644
--- a/xen/arch/x86/include/asm/cpufeatures.h
+++ b/xen/arch/x86/include/asm/cpufeatures.h
@@ -42,6 +42,7 @@ XEN_CPUFEATURE(XEN_IBT,           X86_SYNTH(27)) /* Xen uses CET Indirect Branch
 XEN_CPUFEATURE(IBPB_ENTRY_PV,     X86_SYNTH(28)) /* MSR_PRED_CMD used by Xen for PV */
 XEN_CPUFEATURE(IBPB_ENTRY_HVM,    X86_SYNTH(29)) /* MSR_PRED_CMD used by Xen for HVM */
 XEN_CPUFEATURE(USE_VMCALL,        X86_SYNTH(30)) /* Use VMCALL instead of VMMCALL */
+XEN_CPUFEATURE(PDX_COMPRESSION,   X86_SYNTH(31)) /* PDX compression */
 
 /* Bug words follow the synthetic words. */
 #define X86_NR_BUG 1
diff --git a/xen/arch/x86/include/asm/pdx.h b/xen/arch/x86/include/asm/pdx.h
new file mode 100644
index 000000000000..6be7e1185eb1
--- /dev/null
+++ b/xen/arch/x86/include/asm/pdx.h
@@ -0,0 +1,71 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef X86_PDX_H
+#define X86_PDX_H
+
+#include <asm/alternative.h>
+
+/*
+ * Introduce a macro to avoid repeating the same asm goto block in each helper.
+ * Note the macro is strictly tied to the code in the helpers.
+ */
+#define PDX_ASM_GOTO(label)                         \
+    asm_inline goto (                               \
+        ALTERNATIVE(                                \
+            "",                                     \
+            "jmp %l0",                              \
+            ALT_NOT(X86_FEATURE_PDX_COMPRESSION))   \
+        : : : : label )
+
+static inline unsigned long pfn_to_pdx(unsigned long pfn)
+{
+    PDX_ASM_GOTO(skip);
+
+    return pfn_to_pdx_xlate(pfn);
+
+ skip:
+    return pfn;
+}
+
+static inline unsigned long pdx_to_pfn(unsigned long pdx)
+{
+    PDX_ASM_GOTO(skip);
+
+    return pdx_to_pfn_xlate(pdx);
+
+ skip:
+    return pdx;
+}
+
+static inline unsigned long maddr_to_directmapoff(paddr_t ma)
+{
+    PDX_ASM_GOTO(skip);
+
+    return maddr_to_directmapoff_xlate(ma);
+
+ skip:
+    return ma;
+}
+
+static inline paddr_t directmapoff_to_maddr(unsigned long offset)
+{
+    PDX_ASM_GOTO(skip);
+
+    return directmapoff_to_maddr_xlate(offset);
+
+ skip:
+    return offset;
+}
+
+#undef PDX_ASM_GOTO_SKIP
+
+#endif /* X86_PDX_H */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/arch/x86/srat.c b/xen/arch/x86/srat.c
index 747607439fb4..42ccb0c0f3ae 100644
--- a/xen/arch/x86/srat.c
+++ b/xen/arch/x86/srat.c
@@ -298,7 +298,8 @@ void __init srat_parse_regions(paddr_t addr)
 	acpi_table_parse_srat(ACPI_SRAT_TYPE_MEMORY_AFFINITY,
 			      srat_parse_region, 0);
 
-	pfn_pdx_compression_setup(addr);
+	if (!pfn_pdx_compression_setup(addr))
+		return;
 
 	/* Ensure all RAM ranges in the e820 are covered. */
 	for (i = 0; i < e820.nr_map; i++) {
@@ -318,6 +319,9 @@ void __init srat_parse_regions(paddr_t addr)
 			return;
 		}
 	}
+
+	/* If we got this far compression is working as expected. */
+	setup_force_cpu_cap(X86_FEATURE_PDX_COMPRESSION);
 }
 
 unsigned int numa_node_to_arch_nid(nodeid_t n)
diff --git a/xen/common/pdx.c b/xen/common/pdx.c
index f4a3dcf6cb60..c9ec86729151 100644
--- a/xen/common/pdx.c
+++ b/xen/common/pdx.c
@@ -215,7 +215,7 @@ static uint64_t __init pdx_init_mask(uint64_t base_addr)
                          (uint64_t)1 << (MAX_ORDER + PAGE_SHIFT)) - 1);
 }
 
-void __init pfn_pdx_compression_setup(paddr_t base)
+bool __init pfn_pdx_compression_setup(paddr_t base)
 {
     unsigned int i, j, bottom_shift = 0, hole_shift = 0;
     unsigned long mask = pdx_init_mask(base) >> PAGE_SHIFT;
@@ -224,7 +224,7 @@ void __init pfn_pdx_compression_setup(paddr_t base)
     {
         printk(XENLOG_DEBUG "PFN compression disabled%s\n",
                pdx_compress ? ": no ranges provided" : "");
-        return;
+        return false;
     }
 
     if ( nr_ranges > ARRAY_SIZE(ranges) )
@@ -232,7 +232,7 @@ void __init pfn_pdx_compression_setup(paddr_t base)
         printk(XENLOG_WARNING
                "Too many PFN ranges (%u > %zu), not attempting PFN compression\n",
                nr_ranges, ARRAY_SIZE(ranges));
-        return;
+        return false;
     }
 
     for ( i = 0; i < nr_ranges; i++ )
@@ -263,7 +263,7 @@ void __init pfn_pdx_compression_setup(paddr_t base)
         }
     }
     if ( !hole_shift )
-        return;
+        return false;
 
     printk(KERN_INFO "PFN compression on bits %u...%u\n",
            bottom_shift, bottom_shift + hole_shift - 1);
@@ -274,6 +274,8 @@ void __init pfn_pdx_compression_setup(paddr_t base)
     pfn_hole_mask       = ((1UL << hole_shift) - 1) << bottom_shift;
     pfn_top_mask        = ~(pfn_pdx_bottom_mask | pfn_hole_mask);
     ma_top_mask         = pfn_top_mask << PAGE_SHIFT;
+
+    return true;
 }
 
 void __init pfn_pdx_compression_reset(void)
diff --git a/xen/include/xen/pdx.h b/xen/include/xen/pdx.h
index 10153da98bf1..425d45e9f08e 100644
--- a/xen/include/xen/pdx.h
+++ b/xen/include/xen/pdx.h
@@ -114,7 +114,7 @@ extern unsigned long pfn_top_mask, ma_top_mask;
  * @param pfn Frame number
  * @return Obtained pdx after compressing the pfn
  */
-static inline unsigned long pfn_to_pdx(unsigned long pfn)
+static inline unsigned long pfn_to_pdx_xlate(unsigned long pfn)
 {
     return (pfn & pfn_pdx_bottom_mask) |
            ((pfn & pfn_top_mask) >> pfn_pdx_hole_shift);
@@ -126,7 +126,7 @@ static inline unsigned long pfn_to_pdx(unsigned long pfn)
  * @param pdx Page index
  * @return Obtained pfn after decompressing the pdx
  */
-static inline unsigned long pdx_to_pfn(unsigned long pdx)
+static inline unsigned long pdx_to_pfn_xlate(unsigned long pdx)
 {
     return (pdx & pfn_pdx_bottom_mask) |
            ((pdx << pfn_pdx_hole_shift) & pfn_top_mask);
@@ -139,7 +139,7 @@ static inline unsigned long pdx_to_pfn(unsigned long pdx)
  * @return Offset on the direct map where that
  *         machine address can be accessed
  */
-static inline unsigned long maddr_to_directmapoff(paddr_t ma)
+static inline unsigned long maddr_to_directmapoff_xlate(paddr_t ma)
 {
     return (((ma & ma_top_mask) >> pfn_pdx_hole_shift) |
             (ma & ma_va_bottom_mask));
@@ -151,7 +151,7 @@ static inline unsigned long maddr_to_directmapoff(paddr_t ma)
  * @param offset Offset into the direct map
  * @return Corresponding machine address of that virtual location
  */
-static inline paddr_t directmapoff_to_maddr(unsigned long offset)
+static inline paddr_t directmapoff_to_maddr_xlate(unsigned long offset)
 {
     return ((((paddr_t)offset << pfn_pdx_hole_shift) & ma_top_mask) |
             (offset & ma_va_bottom_mask));
@@ -181,8 +181,9 @@ static inline void pfn_pdx_add_region(paddr_t base, paddr_t size)
 {
 }
 
-static inline void pfn_pdx_compression_setup(paddr_t base)
+static inline bool pfn_pdx_compression_setup(paddr_t base)
 {
+    return false;
 }
 
 static inline void pfn_pdx_compression_reset(void)
@@ -191,6 +192,21 @@ static inline void pfn_pdx_compression_reset(void)
 
 #else /* !CONFIG_PDX_NONE */
 
+/*
+ * Allow each architecture to define its (possibly optimized) versions of the
+ * translation functions.
+ *
+ * Do not use _xlate suffixed functions, always use the non _xlate variants.
+ */
+#if __has_include(<asm/pdx.h>)
+# include <asm/pdx.h>
+#else
+# define pdx_to_pfn pdx_to_pfn_xlate
+# define pfn_to_pdx pfn_to_pdx_xlate
+# define maddr_to_directmapoff maddr_to_directmapoff_xlate
+# define directmapoff_to_maddr directmapoff_to_maddr_xlate
+#endif
+
 /* Shared functions implemented by all PDX compressions. */
 
 /**
@@ -215,8 +231,9 @@ void pfn_pdx_add_region(paddr_t base, paddr_t size);
  * range of the current memory regions.
  *
  * @param base address to start compression from.
+ * @return True if PDX compression has been enabled.
  */
-void pfn_pdx_compression_setup(paddr_t base);
+bool pfn_pdx_compression_setup(paddr_t base);
 
 /**
  * Reset the global variables to it's default values, thus disabling PFN
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Aug 05 09:53:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 09:53:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070229.1433925 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujEMD-0003VO-9Q; Tue, 05 Aug 2025 09:53:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070229.1433925; Tue, 05 Aug 2025 09:53:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujEMD-0003Ui-5u; Tue, 05 Aug 2025 09:53:21 +0000
Received: by outflank-mailman (input) for mailman id 1070229;
 Tue, 05 Aug 2025 09:53:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Xkmx=2R=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1ujEMB-00026G-PR
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 09:53:19 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 035cd8f9-71e2-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 11:53:18 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-459d4d7c745so22109505e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 02:53:18 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-458953cfd10sm255425705e9.21.2025.08.05.02.53.16
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Aug 2025 02:53: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>
X-Inumbo-ID: 035cd8f9-71e2-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754387597; x=1754992397; 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=BIUHqA/h/ktsRl4yIry3KtJQ7f0Vu1M/mNLqlvipLX4=;
        b=YgQDBAuKlAE1S16nQXiUdFHQOZyCw4qhwW0CvaDy1vrADiULBoUWFNsRmxJbvNTd2V
         AP3VvswndmKS9NyOFNnJ56h0XB6MFRIDZSXzo/0PkoRdbRaSl2XaDX4M/j1xsPx8LuD5
         LDFBV+TVbxK7Ff2jGtwnvdcPYRkvDVZR/LSDk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754387597; x=1754992397;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=BIUHqA/h/ktsRl4yIry3KtJQ7f0Vu1M/mNLqlvipLX4=;
        b=Ba7wEKT3nhP9LoxtPwlWvu4qZdVxeoSkPfCJY+smCo4Dp77FpODcYs5vVE42+/WAnU
         As5k+I8gWx9rZTdTJAeCbCy/Qm+/hPL3ribpMSIEYjuV5nHySvFTzAuItQIUYa+Wao7S
         uo9boSM+OLr6VSEQfig4MATY/yZBmiqrkhXTOY0Rp0rRsHWNtO6MvtCZhYizlJ6OGgM3
         hL6FzVXh/3MamLcq7zD1kgHGwP5c5WEcCauF0H/+hcmRJNEPOe/l/hxKc1LMzGUv+l3X
         aFT1uTO+RUL6d3hLJyI0w1rjVK0NmLnyEPaPpkr+KI7cIquLlITjOjhN2Rd/5Y71W3ox
         dLhQ==
X-Gm-Message-State: AOJu0YzFAu4s8GtqOlfbvus7zFlPyalYzVzVklHBxN/zVZBH+Wh9R8vf
	1cos8UjuLwRtx9D40uLBSpe/VqrPmV8u971SPgf4Yb84ZUhMuztBsPpejid6cQOYkvXwB6y2w29
	YiJ53
X-Gm-Gg: ASbGnctHkQeVV1kV/3ZmRCh7bNKqhBw0FNG7Z6uucxnFRAeGmjI4FbaddREQqv3/F2L
	yOJR6Y/LfvJTEMs3rZ9KI+xn8vtZXqHWG1h9W/VHo8AhH2ZPG43wa/4jQ81cgrXvFENKhM2qAFq
	ckxqSk+d4S3OB2F9YCpXLitIov6kB9t9VeY0CvPf01fAvgfcA8NclpThdLvyorIODb+Hjk5tV2k
	sMToyOpxEp3gcy5Mkw4XTY1iysGd8YT+rXeVg9qsmkRkaIZ0s8W+naZ6XCPlO/9uV2tRIXrinSD
	hYzLnjDvsUstN8mnAOUVfdlwyHEXoVJYnODwNXPiDnGNeipwflpTGLf0442GvxwexaoQ5JIrmBa
	gRNBW9cINKIwX2GvpiKz5UJhvXkSKiDrsO2P2jcxcMt6CDWjQrH6GQrEk8lq/KW938Q==
X-Google-Smtp-Source: AGHT+IE2J0BDPufSmO58HpIuQ3aPUlb0K+Jt1ytMIamwsoqTSYW+X3Pl5Ll9HKwfzZwopPVwdfj53w==
X-Received: by 2002:a05:600c:1f13:b0:459:e3f8:9308 with SMTP id 5b1f17b1804b1-459e4387c2fmr5121505e9.11.1754387597275;
        Tue, 05 Aug 2025 02:53:17 -0700 (PDT)
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>
Subject: [PATCH v4 6/8] pdx: move some helpers in preparation for new compression
Date: Tue,  5 Aug 2025 11:52:55 +0200
Message-ID: <20250805095257.74975-7-roger.pau@citrix.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250805095257.74975-1-roger.pau@citrix.com>
References: <20250805095257.74975-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Move fill_mask(), pdx_region_mask() and pdx_init_mask() to the
!CONFIG_PDX_NONE section in preparation of them also being used by a newly
added PDX compression.

No functional change intended.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
git is not very helpful when generating the diff here, and it ends up
moving everything around the functions instead of the functions themselves.
---
 xen/common/pdx.c | 118 +++++++++++++++++++++++------------------------
 1 file changed, 59 insertions(+), 59 deletions(-)

diff --git a/xen/common/pdx.c b/xen/common/pdx.c
index cd8a9e75a836..9e6b36086fbd 100644
--- a/xen/common/pdx.c
+++ b/xen/common/pdx.c
@@ -101,59 +101,6 @@ void __init pfn_pdx_add_region(paddr_t base, paddr_t size)
     ranges[nr_ranges++].pages = PFN_UP(base + size) - PFN_DOWN(base);
 }
 
-#endif /* !CONFIG_PDX_NONE */
-
-#ifdef CONFIG_PDX_MASK_COMPRESSION
-
-/*
- * Diagram to make sense of the following variables. The masks and shifts
- * are done on mfn values in order to convert to/from pdx:
- *
- *                      pfn_hole_mask
- *                      pfn_pdx_hole_shift (mask bitsize)
- *                      |
- *                 |---------|
- *                 |         |
- *                 V         V
- *         --------------------------
- *         |HHHHHHH|000000000|LLLLLL| <--- mfn
- *         --------------------------
- *         ^       ^         ^      ^
- *         |       |         |------|
- *         |       |             |
- *         |       |             pfn_pdx_bottom_mask
- *         |       |
- *         |-------|
- *             |
- *             pfn_top_mask
- *
- * ma_{top,va_bottom}_mask is simply a shifted pfn_{top,pdx_bottom}_mask,
- * where ma_top_mask has zeroes shifted in while ma_va_bottom_mask has
- * ones.
- */
-
-/** Mask for the lower non-compressible bits of an mfn */
-unsigned long __ro_after_init pfn_pdx_bottom_mask = ~0UL;
-
-/** Mask for the lower non-compressible bits of an maddr or vaddr */
-unsigned long __ro_after_init ma_va_bottom_mask = ~0UL;
-
-/** Mask for the higher non-compressible bits of an mfn */
-unsigned long __ro_after_init pfn_top_mask = 0;
-
-/** Mask for the higher non-compressible bits of an maddr or vaddr */
-unsigned long __ro_after_init ma_top_mask = 0;
-
-/**
- * Mask for a pdx compression bit slice.
- *
- *  Invariant: valid(mfn) implies (mfn & pfn_hole_mask) == 0
- */
-unsigned long __ro_after_init pfn_hole_mask = 0;
-
-/** Number of bits of the "compressible" bit slice of an mfn */
-unsigned int __ro_after_init pfn_pdx_hole_shift = 0;
-
 /* Sets all bits from the most-significant 1-bit down to the LSB */
 static uint64_t fill_mask(uint64_t mask)
 {
@@ -196,12 +143,6 @@ static uint64_t pdx_region_mask(uint64_t base, uint64_t len)
     return fill_mask(base ^ (base + len - 1));
 }
 
-bool pdx_is_region_compressible(paddr_t base, unsigned long npages)
-{
-    return !(paddr_to_pfn(base) & pfn_hole_mask) &&
-           !(pdx_region_mask(base, npages * PAGE_SIZE) & ~ma_va_bottom_mask);
-}
-
 /**
  * Creates the mask to start from when calculating non-compressible bits
  *
@@ -219,6 +160,65 @@ static uint64_t __init pdx_init_mask(uint64_t base_addr)
                          (uint64_t)1 << (MAX_ORDER + PAGE_SHIFT)) - 1);
 }
 
+#endif /* !CONFIG_PDX_NONE */
+
+#ifdef CONFIG_PDX_MASK_COMPRESSION
+
+/*
+ * Diagram to make sense of the following variables. The masks and shifts
+ * are done on mfn values in order to convert to/from pdx:
+ *
+ *                      pfn_hole_mask
+ *                      pfn_pdx_hole_shift (mask bitsize)
+ *                      |
+ *                 |---------|
+ *                 |         |
+ *                 V         V
+ *         --------------------------
+ *         |HHHHHHH|000000000|LLLLLL| <--- mfn
+ *         --------------------------
+ *         ^       ^         ^      ^
+ *         |       |         |------|
+ *         |       |             |
+ *         |       |             pfn_pdx_bottom_mask
+ *         |       |
+ *         |-------|
+ *             |
+ *             pfn_top_mask
+ *
+ * ma_{top,va_bottom}_mask is simply a shifted pfn_{top,pdx_bottom}_mask,
+ * where ma_top_mask has zeroes shifted in while ma_va_bottom_mask has
+ * ones.
+ */
+
+/** Mask for the lower non-compressible bits of an mfn */
+unsigned long __ro_after_init pfn_pdx_bottom_mask = ~0UL;
+
+/** Mask for the lower non-compressible bits of an maddr or vaddr */
+unsigned long __ro_after_init ma_va_bottom_mask = ~0UL;
+
+/** Mask for the higher non-compressible bits of an mfn */
+unsigned long __ro_after_init pfn_top_mask = 0;
+
+/** Mask for the higher non-compressible bits of an maddr or vaddr */
+unsigned long __ro_after_init ma_top_mask = 0;
+
+/**
+ * Mask for a pdx compression bit slice.
+ *
+ *  Invariant: valid(mfn) implies (mfn & pfn_hole_mask) == 0
+ */
+unsigned long __ro_after_init pfn_hole_mask = 0;
+
+/** Number of bits of the "compressible" bit slice of an mfn */
+unsigned int __ro_after_init pfn_pdx_hole_shift = 0;
+
+bool pdx_is_region_compressible(paddr_t base, unsigned long npages)
+{
+    return !(paddr_to_pfn(base) & pfn_hole_mask) &&
+           !(pdx_region_mask(base, npages * PAGE_SIZE) & ~ma_va_bottom_mask);
+}
+
 bool __init pfn_pdx_compression_setup(paddr_t base)
 {
     unsigned int i, j, bottom_shift = 0, hole_shift = 0;
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Aug 05 09:53:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 09:53:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070232.1433936 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujEMF-0003rF-Ia; Tue, 05 Aug 2025 09:53:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070232.1433936; Tue, 05 Aug 2025 09:53:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujEMF-0003qd-E4; Tue, 05 Aug 2025 09:53:23 +0000
Received: by outflank-mailman (input) for mailman id 1070232;
 Tue, 05 Aug 2025 09:53:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Xkmx=2R=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1ujEMD-00026G-Gp
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 09:53:21 +0000
Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com
 [2a00:1450:4864:20::435])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0434faa8-71e2-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 11:53:19 +0200 (CEST)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-3b7825e2775so4558658f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 02:53:19 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3b79c3c4d02sm18194279f8f.33.2025.08.05.02.53.17
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Aug 2025 02:53: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>
X-Inumbo-ID: 0434faa8-71e2-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754387599; x=1754992399; 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=dkHB+363YxhGHGsW0WbfTknTo2Qh5BFaLJhNwQ63/RY=;
        b=e2GS6ptta+XjgaIwe0WSAhoZfF4F33zaRzFnROFi2PGW6DwqJXHDn9LTvqYR8PYlj4
         Jg+6gl8sg6kHaMpjrF4Fs+pGOV9HivGy20k4t7ig+LlJ0gJ1loiFKDiduhVBmMnfGlnu
         N6h6qrGQSR9kbKSa2UGQqlscifSuxWrEUcbPE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754387599; x=1754992399;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=dkHB+363YxhGHGsW0WbfTknTo2Qh5BFaLJhNwQ63/RY=;
        b=k9QNHk9nhkIrGdrWja2myzeBtJ+ob0QFUNHwvTgjYs5Ux1kD2FFFDG9a6PCL1vZmYX
         UTnR+2+/CxZEohPKSe9cpNQxrzE6zeZ5napyiafkJknNoPdFSITF7G76wu4oY7vYK0Rc
         g/q6t1StZW/Cixvs9fKjB01ZpfcRrdVqKnM1xjajWwdq5H8Xf0RVPb6mzZ7y4BCvRvvq
         rUtExtKBfnYvcrTeCVy3X0+YGAQKAgtiQxUpmLVeJLLPcm1uhSPkGibCPAUtsjvI4l0b
         53lIfflluLktFLE9DrToCapIALDtMqpgYitfp3YWqLs2RKUvs+M7KvKljJ4AF8Q3nZrC
         PIUA==
X-Gm-Message-State: AOJu0Yy3sxYmfIYilSuHUQgOERvjN25PKTygW4EnI2i1THNhYOUXNBts
	G9b4G5OSUWWlWA6Q/76IAN4WJpCDGWYDgP41EN51qGsiRyFW3Ra5+iM/ADISd9cwfWEpm9iY+AM
	h30pA
X-Gm-Gg: ASbGncvmnxlUvVWK0dKfIKQTk7V5NR/bnxYtSQctgZZs9yRHmpVWbZ67hNdXLvsLdCB
	LCfT+bZ6CAFZxk5U/b3GidGMk4/7SQmam7oUa4qMb4KLM6UD5Y7Z7au0cOVok7QHSmm0CfaZad5
	CtIT1KwT9ADE193i/gyPVPTAj7HYl3cv6iB4nU6eFDAA76L2gFoEXyqgvnRXq/qBHExQTfTacAo
	lod4vDBSufxV6KvhXEwFiY4escPnUj7WEGvtwdhGeE/K+W53uVb4ENyXzCBbDPz+/v7jm2FGANR
	Rcm3Vn4nwVHOgCctoiZPbCwzbIRtlYdGEeKwsIze0HT0g3pL5TsM96oSvQhEmRq6ek7PqFfNPBb
	c5CuyV3OB4b+mNQnxkWU0/V0Ng0TkdBblOT39yP/OdhJ0o8gT1D5SXevnwMvi4vNJUw==
X-Google-Smtp-Source: AGHT+IErhUju3M5UYg5smm6FdBrFeXFJHpWvobhJlu/JUk/uNlqrhtdZJmPqgM3IR95GIBDLPmU7Lg==
X-Received: by 2002:a05:6000:2007:b0:3b7:8b64:3107 with SMTP id ffacd0b85a97d-3b8d948647fmr9664503f8f.26.1754387598519;
        Tue, 05 Aug 2025 02:53:18 -0700 (PDT)
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>
Subject: [PATCH v4 7/8] pdx: introduce a new compression algorithm based on region offsets
Date: Tue,  5 Aug 2025 11:52:56 +0200
Message-ID: <20250805095257.74975-8-roger.pau@citrix.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250805095257.74975-1-roger.pau@citrix.com>
References: <20250805095257.74975-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

With the appearance of Intel Sierra Forest and Granite Rapids it's now
possible to get a production x86 host with the following memory map:

SRAT: Node 0 PXM 0 [0000000000000000, 000000007fffffff]
SRAT: Node 0 PXM 0 [0000000100000000, 000000807fffffff]
SRAT: Node 1 PXM 1 [0000063e80000000, 000006be7fffffff]
SRAT: Node 2 PXM 2 [00000c7e80000000, 00000cfe7fffffff]
SRAT: Node 3 PXM 3 [000012be80000000, 0000133e7fffffff]

This is from a four socket Granite Rapids system, with each node having
512GB of memory.  The total amount of RAM on the system is 2TB, but without
enabling CONFIG_BIGMEM the last range is not accessible, as it's above the
16TB boundary covered by the frame table. Sierra Forest and Granite Rapids
are socket compatible, however Sierra Forest only supports 2 socket
configurations, while Granite Rapids can go up to 8 sockets.

Note that while the memory map is very sparse, it couldn't be compressed
using the current PDX_MASK compression algorithm, which relies on all
ranges having a shared zeroed region of bits that can be removed.

The memory map presented above has the property of all regions being
similarly spaced between each other, and all having also a similar size.
Use a lookup table to store the offsets to translate from/to PFN and PDX
spaces.  Such table is indexed based on the input PFN or PDX to translated.
The example PFN layout about would get compressed using the following:

PFN compression using PFN lookup table shift 29 and PDX region size 0x10000000
 range 0 [0000000000000, 0x0000807ffff] PFN IDX  0 : 0000000000000
 range 1 [0x00063e80000, 0x0006be7ffff] PFN IDX  3 : 0x00053e80000
 range 2 [0x000c7e80000, 0x000cfe7ffff] PFN IDX  6 : 0x000a7e80000
 range 3 [0x0012be80000, 0x00133e7ffff] PFN IDX  9 : 0x000fbe80000

Note how the tow ranges belonging to node 0 get merged into a single PDX
region by the compression algorithm.

The default size of lookup tables currently set in Kconfig is 64 entries,
and the example memory map consumes 10 entries.  Such memory map is from a
4 socket Granite Rapids host, which in theory supports up to 8 sockets
according to Intel documentation.  Assuming the layout of a 8 socket system
is similar to the 4 socket one, it would require 21 lookup table entries to
support it, way below the current default of 64 entries.

The valid range of lookup table size is currently restricted from 1 to 512
elements in Kconfig.

An extra array is used to keep track of the base PFN for each translated
range.  Non used slots are set to ~0UL, so that in mfn_valid() the mfn <
base check always fails, thus reporting the mfn as invalid.

Introduce __init_or_pdx_mask and use it on some shared functions between
PDX mask and offset compression, as otherwise some code becomes unreachable
after boot if PDX offset compression is used.  Mark the code as __init in
that case, so it's pruned after boot.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
Changes since v3:
 - Rename __init_or_pdx_mask.
 - Reorder logic in pfn_offset_sanitize_ranges() to reduce code.
 - Print a message if the table index is truncated from what would be
   required to represent all input ranges independently.
 - Cast size to paddr_t for pdx_init_mask() call.

Changes since v2:
 - s/PDX_OFFSET_TLB_ORDER/PDX_OFFSET_TBL_ORDER/.
 - Fix changelog mention of Sapphire Rapids.
 - Misc fixes in the test harness.
 - Use SWAP() macro.
 - Introduce an extra table to keep the bases of the valid ranges.

Changes since v1:
 - Use a lookup table with the offsets.
 - Split the adding of the test to a pre-patch.
 - Amend diagram to also show possible padding after compression.
---
 CHANGELOG.md               |   3 +
 tools/tests/pdx/.gitignore |   1 +
 tools/tests/pdx/Makefile   |   3 +-
 tools/tests/pdx/harness.h  |  14 ++
 tools/tests/pdx/test-pdx.c |   4 +
 xen/common/Kconfig         |  21 ++-
 xen/common/pdx.c           | 258 ++++++++++++++++++++++++++++++++++++-
 xen/include/xen/pdx.h      |  87 ++++++++++++-
 8 files changed, 385 insertions(+), 6 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5f31ca08fe3f..f9ef893f4851 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -20,6 +20,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
      grant table or foreign memory.
 
 ### Added
+ - Introduce new PDX compression algorithm to cope with Intel Sierra Forest and
+   Granite Rapids having sparse memory maps.
+
  - On x86:
    - Option to attempt to fixup p2m page-faults on PVH dom0.
    - Resizable BARs is supported for PVH dom0.
diff --git a/tools/tests/pdx/.gitignore b/tools/tests/pdx/.gitignore
index a32c7db4de79..1202a531a7fd 100644
--- a/tools/tests/pdx/.gitignore
+++ b/tools/tests/pdx/.gitignore
@@ -1,2 +1,3 @@
 /pdx.h
 /test-pdx-mask
+/test-pdx-offset
diff --git a/tools/tests/pdx/Makefile b/tools/tests/pdx/Makefile
index b3734afde686..10b354f0cefd 100644
--- a/tools/tests/pdx/Makefile
+++ b/tools/tests/pdx/Makefile
@@ -1,7 +1,7 @@
 XEN_ROOT=$(CURDIR)/../../..
 include $(XEN_ROOT)/tools/Rules.mk
 
-TARGETS := test-pdx-mask
+TARGETS := test-pdx-mask test-pdx-offset
 
 .PHONY: all
 all: $(TARGETS)
@@ -42,6 +42,7 @@ CFLAGS += $(APPEND_CFLAGS)
 CFLAGS += $(CFLAGS_xeninclude)
 
 test-pdx-mask: CFLAGS += -DCONFIG_PDX_MASK_COMPRESSION
+test-pdx-offset: CFLAGS += -DCONFIG_PDX_OFFSET_COMPRESSION
 
 test-pdx-%: test-pdx.c pdx.h
 	$(CC) $(CPPFLAGS) $(CFLAGS) $(CFLAGS_$*.o) -o $@ $< $(APPEND_CFLAGS)
diff --git a/tools/tests/pdx/harness.h b/tools/tests/pdx/harness.h
index 5bef7df650d2..7c1c5a246868 100644
--- a/tools/tests/pdx/harness.h
+++ b/tools/tests/pdx/harness.h
@@ -44,8 +44,10 @@
 
 #define MAX_RANGES 16
 #define MAX_PFN_RANGES MAX_RANGES
+#define CONFIG_PDX_OFFSET_TBL_ORDER 6
 
 #define ASSERT assert
+#define ASSERT_UNREACHABLE() assert(0)
 
 #define CONFIG_DEBUG
 
@@ -66,10 +68,22 @@ static inline unsigned int find_next(
 #define find_next_zero_bit(a, s, o) find_next(a, s, o, false)
 #define find_next_bit(a, s, o)      find_next(a, s, o, true)
 
+#define flsl(x) ((x) ? BITS_PER_LONG - __builtin_clzl(x) : 0)
+#define ffsl(x) __builtin_ffsl(x)
+
 #define boolean_param(name, func)
 
 typedef uint64_t paddr_t;
 
+#define SWAP(a, b) \
+   do { typeof(a) t_ = (a); (a) = (b); (b) = t_; } while ( 0 )
+
+#define sort(elem, nr, size, cmp, swp) ({                               \
+    /* Consume swp() so compiler doesn't complain it's unused. */       \
+    (void)swp;                                                          \
+    qsort(elem, nr, size, cmp);                                         \
+})
+
 #include "pdx.h"
 
 #endif
diff --git a/tools/tests/pdx/test-pdx.c b/tools/tests/pdx/test-pdx.c
index 0798ccee359b..eefd54c76815 100644
--- a/tools/tests/pdx/test-pdx.c
+++ b/tools/tests/pdx/test-pdx.c
@@ -51,7 +51,11 @@ int main(int argc, char **argv)
                 { .start =  0xc7e80000UL, .end =  0xcfe80000UL },
                 { .start = 0x12be80000UL, .end = 0x133e80000UL },
             },
+#ifdef CONFIG_PDX_OFFSET_COMPRESSION
+            .compress = true,
+#else
             .compress = false,
+#endif
         },
         /* Simple hole. */
         {
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 8dad0c923a9d..76f9ce705f7a 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -59,7 +59,8 @@ config EVTCHN_FIFO
 
 choice
 	prompt "PDX (Page inDeX) compression"
-	default PDX_MASK_COMPRESSION if !X86 && !RISCV
+	default PDX_OFFSET_COMPRESSION if X86
+	default PDX_MASK_COMPRESSION if !RISCV
 	default PDX_NONE
 	help
 	  PDX compression is a technique designed to reduce the memory
@@ -78,12 +79,30 @@ config PDX_MASK_COMPRESSION
 	help
 	  Compression relying on all RAM addresses sharing a zeroed bit region.
 
+config PDX_OFFSET_COMPRESSION
+	bool "Offset compression"
+	help
+	  Compression relying on size and distance between RAM regions being
+	  compressible using an offset lookup table.
+
 config PDX_NONE
 	bool "None"
 	help
 	  No compression
 endchoice
 
+config PDX_OFFSET_TBL_ORDER
+	int "PDX offset compression lookup table order" if EXPERT
+	depends on PDX_OFFSET_COMPRESSION
+	default 6
+	range 0 9
+	help
+	  Order of the PFN to PDX and PDX to PFN translation lookup tables.
+	  Number of table entries is calculated as 2^N.
+
+	  Size of the tables can be adjusted from 1 entry (order 0) to 512
+	  entries (order 9).
+
 config ALTERNATIVE_CALL
 	bool
 
diff --git a/xen/common/pdx.c b/xen/common/pdx.c
index 9e6b36086fbd..d29582234bfd 100644
--- a/xen/common/pdx.c
+++ b/xen/common/pdx.c
@@ -24,6 +24,7 @@
 #include <xen/param.h>
 #include <xen/pfn.h>
 #include <xen/sections.h>
+#include <xen/sort.h>
 
 /**
  * Maximum (non-inclusive) usable pdx. Must be
@@ -40,6 +41,12 @@ bool __mfn_valid(unsigned long mfn)
 
 #ifdef CONFIG_PDX_MASK_COMPRESSION
     invalid |= mfn & pfn_hole_mask;
+#elif defined(CONFIG_PDX_OFFSET_COMPRESSION)
+{
+    unsigned long base = pfn_bases[PFN_TBL_IDX(mfn)];
+
+    invalid |= mfn < base || mfn >= base + pdx_region_size;
+}
 #endif
 
     if ( unlikely(evaluate_nospec(invalid)) )
@@ -75,6 +82,13 @@ void set_pdx_range(unsigned long smfn, unsigned long emfn)
 # error "Missing architecture maximum number of RAM ranges"
 #endif
 
+/* Some functions should be init when not using PDX mask compression. */
+#ifndef CONFIG_PDX_MASK_COMPRESSION
+# define __init_or_mask_compr __init
+#else
+# define __init_or_mask_compr
+#endif
+
 /* Generic PFN compression helpers. */
 static struct pfn_range {
     unsigned long base_pfn, pages;
@@ -102,7 +116,7 @@ void __init pfn_pdx_add_region(paddr_t base, paddr_t size)
 }
 
 /* Sets all bits from the most-significant 1-bit down to the LSB */
-static uint64_t fill_mask(uint64_t mask)
+static uint64_t __init_or_mask_compr fill_mask(uint64_t mask)
 {
     while (mask & (mask + 1))
         mask |= mask + 1;
@@ -128,7 +142,7 @@ static uint64_t fill_mask(uint64_t mask)
  * @param len  Size in octets of the region
  * @return Mask of moving bits at the bottom of all the region addresses
  */
-static uint64_t pdx_region_mask(uint64_t base, uint64_t len)
+static uint64_t __init_or_mask_compr pdx_region_mask(uint64_t base, uint64_t len)
 {
     /*
      * We say a bit "moves" in a range if there exist 2 addresses in that
@@ -294,7 +308,245 @@ void __init pfn_pdx_compression_reset(void)
     nr_ranges = 0;
 }
 
-#endif /* CONFIG_PDX_COMPRESSION */
+#elif defined(CONFIG_PDX_OFFSET_COMPRESSION) /* CONFIG_PDX_MASK_COMPRESSION */
+
+unsigned int __ro_after_init pfn_index_shift;
+unsigned int __ro_after_init pdx_index_shift;
+
+unsigned long __ro_after_init pfn_pdx_lookup[CONFIG_PDX_NR_LOOKUP];
+unsigned long __ro_after_init pdx_pfn_lookup[CONFIG_PDX_NR_LOOKUP];
+unsigned long __ro_after_init pfn_bases[CONFIG_PDX_NR_LOOKUP];
+unsigned long __ro_after_init pdx_region_size = ~0UL;
+
+bool pdx_is_region_compressible(paddr_t base, unsigned long npages)
+{
+    unsigned long pfn = PFN_DOWN(base);
+    unsigned long pfn_base = pfn_bases[PFN_TBL_IDX(pfn)];
+
+    return pfn >= pfn_base &&
+           pfn + npages <= pfn_base + pdx_region_size;
+}
+
+static int __init cf_check cmp_node(const void *a, const void *b)
+{
+    const struct pfn_range *l = a;
+    const struct pfn_range *r = b;
+
+    if ( l->base_pfn > r->base_pfn )
+        return 1;
+    if ( l->base_pfn < r->base_pfn )
+        return -1;
+
+    return 0;
+}
+
+static void __init cf_check swp_node(void *a, void *b)
+{
+    SWAP(a, b);
+}
+
+static bool __init pfn_offset_sanitize_ranges(void)
+{
+    unsigned int i = 0;
+
+    if ( PFN_TBL_IDX(ranges[0].base_pfn) !=
+         PFN_TBL_IDX(ranges[0].base_pfn + ranges[0].pages - 1) )
+    {
+        ASSERT_UNREACHABLE();
+        return false;
+    }
+
+    while ( i + 1 < nr_ranges )
+    {
+        /*
+         * Ensure ranges [start, end] use the same offset table index.  Should
+         * be guaranteed by the logic that calculates the pfn shift.
+         */
+        if ( PFN_TBL_IDX(ranges[i + 1].base_pfn) !=
+             PFN_TBL_IDX(ranges[i + 1].base_pfn + ranges[i + 1].pages - 1) )
+        {
+            ASSERT_UNREACHABLE();
+            return false;
+        }
+
+        if ( PFN_TBL_IDX(ranges[i].base_pfn) !=
+             PFN_TBL_IDX(ranges[i + 1].base_pfn) )
+        {
+            i++;
+            continue;
+        }
+
+        /* Merge ranges with the same table index. */
+        ranges[i].pages = ranges[i + 1].base_pfn + ranges[i + 1].pages -
+                         ranges[i].base_pfn;
+        memmove(&ranges[i + 1], &ranges[i + 2],
+                (nr_ranges - (i + 2)) * sizeof(ranges[0]));
+        nr_ranges--;
+    }
+
+    return true;
+}
+
+bool __init pfn_pdx_compression_setup(paddr_t base)
+{
+    unsigned long mask = PFN_DOWN(pdx_init_mask(base)), idx_mask = 0;
+    unsigned long pages = 0;
+    unsigned int i;
+
+    if ( !nr_ranges )
+    {
+        printk(XENLOG_DEBUG "PFN compression disabled%s\n",
+               pdx_compress ? ": no ranges provided" : "");
+        return false;
+    }
+
+    if ( nr_ranges > ARRAY_SIZE(ranges) )
+    {
+        printk(XENLOG_WARNING
+               "Too many PFN ranges (%u > %zu), not attempting PFN compression\n",
+               nr_ranges, ARRAY_SIZE(ranges));
+        return false;
+    }
+
+    /* Sort ranges by start address. */
+    sort(ranges, nr_ranges, sizeof(*ranges), cmp_node, swp_node);
+
+    for ( i = 0; i < nr_ranges; i++ )
+    {
+        unsigned long start = ranges[i].base_pfn;
+
+        /*
+         * Align range base to MAX_ORDER.  This is required so the PDX offset
+         * for the bits below MAX_ORDER matches the MFN offset, and pages
+         * greater than the minimal order can be used to populate the
+         * directmap.
+         */
+        ranges[i].base_pfn = start & ~((1UL << MAX_ORDER) - 1);
+        ranges[i].pages = start + ranges[i].pages - ranges[i].base_pfn;
+
+        /*
+         * Only merge overlapped regions now, leave adjacent regions separated.
+         * They would be merged later if both use the same index into the
+         * lookup table.
+         */
+        if ( !i ||
+             ranges[i].base_pfn >=
+             (ranges[i - 1].base_pfn + ranges[i - 1].pages) )
+        {
+            mask |= pdx_region_mask(ranges[i].base_pfn, ranges[i].pages);
+            continue;
+        }
+
+        ranges[i - 1].pages = ranges[i].base_pfn + ranges[i].pages -
+                              ranges[i - 1].base_pfn;
+
+        if ( i + 1 < nr_ranges )
+            memmove(&ranges[i], &ranges[i + 1],
+                    (nr_ranges - (i + 1)) * sizeof(ranges[0]));
+        else /* last range */
+            mask |= pdx_region_mask(ranges[i].base_pfn, ranges[i].pages);
+        nr_ranges--;
+        i--;
+    }
+
+    /*
+     * Populate a mask with the non-equal bits of the different ranges, do this
+     * to calculate the maximum PFN shift to use as the lookup table index.
+     */
+    for ( i = 0; i < nr_ranges; i++ )
+        for ( unsigned int j = 0; j < nr_ranges; j++ )
+            idx_mask |= (ranges[i].base_pfn & ~mask) ^
+                        (ranges[j].base_pfn & ~mask);
+
+    if ( !idx_mask )
+        /* Single region case. */
+        pfn_index_shift = flsl(mask);
+    else if ( flsl(idx_mask) - ffsl(idx_mask) < CONFIG_PDX_OFFSET_TBL_ORDER )
+        /* The changed mask fits in the table index width. */
+        pfn_index_shift = ffsl(idx_mask) - 1;
+    else
+    {
+        /* Changed mask is wider than array size, use most significant bits. */
+        pfn_index_shift = flsl(idx_mask) - CONFIG_PDX_OFFSET_TBL_ORDER;
+        printk(XENLOG_DEBUG
+               "PFN compression table index truncated, requires order %u\n",
+               flsl(idx_mask) - ffsl(idx_mask) + 1);
+    }
+
+    /*
+     * Ensure correctness of the calculated values, plus merge ranges if they
+     * use the same lookup table index.
+     */
+    if ( !pfn_offset_sanitize_ranges() )
+    {
+        printk(XENLOG_DEBUG "PFN compression is invalid, disabling\n");
+        pfn_pdx_compression_reset();
+        return false;
+    }
+
+    /*
+     * Find the maximum PFN range size after having merged ranges with same
+     * index.  The rounded up region size will be the base for the PDX region
+     * size and shift.
+     */
+    for ( i = 0; i < nr_ranges; i++ )
+        pages = max(pages, ranges[i].pages);
+
+    /* pdx_init_mask() already takes MAX_ORDER into account. */
+    mask = PFN_DOWN(pdx_init_mask((paddr_t)pages << PAGE_SHIFT));
+    pdx_index_shift = flsl(mask);
+
+    /* Avoid compression if there's no gain. */
+    if ( (mask + 1) * (nr_ranges - 1) >= ranges[nr_ranges - 1].base_pfn )
+    {
+        printk(XENLOG_DEBUG
+               "PFN compression yields no space gain, disabling\n");
+        pfn_pdx_compression_reset();
+        return false;
+    }
+
+    /*
+     * Set all entries in the bases table to ~0 to force both mfn_valid() and
+     * pdx_is_region_compressible() to return false for non-handled pfns.
+     */
+    memset(pfn_bases, ~0, sizeof(pfn_bases));
+
+    pdx_region_size = mask + 1;
+
+    printk(XENLOG_INFO
+           "PFN compression using lookup table shift %u and region size %#lx\n",
+           pfn_index_shift, pdx_region_size);
+
+    for ( i = 0; i < nr_ranges; i++ )
+    {
+        unsigned int idx = PFN_TBL_IDX(ranges[i].base_pfn);
+
+        pfn_pdx_lookup[idx] = ranges[i].base_pfn - (mask + 1) * i;
+        pdx_pfn_lookup[i] = pfn_pdx_lookup[idx];
+        pfn_bases[idx] = ranges[i].base_pfn;
+
+        printk(XENLOG_DEBUG
+               " range %3u [%013lx, %013lx] PFN IDX %3u : %013lx\n",
+               i, ranges[i].base_pfn, ranges[i].base_pfn + ranges[i].pages - 1,
+               idx, pfn_pdx_lookup[idx]);
+    }
+
+    return true;
+}
+
+void __init pfn_pdx_compression_reset(void)
+{
+    memset(pfn_pdx_lookup, 0, sizeof(pfn_pdx_lookup));
+    memset(pdx_pfn_lookup, 0, sizeof(pfn_pdx_lookup));
+    memset(pfn_bases, 0, sizeof(pfn_bases));
+    pfn_index_shift = 0;
+    pdx_index_shift = 0;
+    pdx_region_size = ~0UL;
+
+    nr_ranges = 0;
+}
+
+#endif /* CONFIG_PDX_OFFSET_COMPRESSION */
 
 /*
  * Local variables:
diff --git a/xen/include/xen/pdx.h b/xen/include/xen/pdx.h
index 425d45e9f08e..a5693b956b25 100644
--- a/xen/include/xen/pdx.h
+++ b/xen/include/xen/pdx.h
@@ -65,6 +65,46 @@
  * This scheme also holds for multiple regions, where HHHHHHH acts as
  * the region identifier and LLLLLL fully contains the span of every
  * region involved.
+ *
+ * ##Â PDX offset compression
+ *
+ * Alternative compression mechanism that relies on RAM ranges having a similar
+ * size and offset between them:
+ *
+ * PFN address space:
+ * â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”   â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”
+ * â”‚ RAM 0  â”‚          â”‚ RAM 1  â”‚          â”‚...â”‚ RAM N  â”‚          â”‚
+ * â”œâ”€â”€â”€â”€â”€â”€â”€â”€â”¼â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”¼â”€â”€â”€â”€â”€â”€â”€â”€â”´â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜   â””â”€â”€â”€â”€â”€â”€â”€â”€â”´â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜
+ * â”‚<------>â”‚          â”‚
+ * â”‚  size             â”‚
+ * â”‚<----------------->â”‚
+ *         offset
+ *
+ * The compression reduces the holes between RAM regions:
+ *
+ * PDX address space:
+ * â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”¬â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”¬â”€â”€â”€â”   â”Œâ”€â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”
+ * â”‚ RAM 0  â”‚   â”‚ RAM 1  â”‚   â”‚...â”‚ â”‚ RAM N  â”‚
+ * â”œâ”€â”€â”€â”€â”€â”€â”€â”€â”´â”€â”€â”€â”¼â”€â”€â”€â”€â”€â”€â”€â”€â”´â”€â”€â”€â”˜   â””â”€â”´â”€â”€â”€â”€â”€â”€â”€â”€â”˜
+ * â”‚<---------->â”‚
+ *   pdx region size
+ *
+ * The offsets to convert from PFN to PDX and from PDX to PFN are stored in a
+ * pair of lookup tables, and the index into those tables to find the offset
+ * for each PFN or PDX is obtained by shifting the to be translated address by
+ * a specific value calculated at boot:
+ *
+ * pdx = pfn - pfn_lookup_table[pfn >> pfn_shift]
+ * pfn = pdx + pdx_lookup_table[pdx >> pdx_shift]
+ *
+ * Note the indexes into the lookup tables are masked to avoid out of bounds
+ * accesses.
+ *
+ * This compression requires the PFN ranges to contain a non-equal most
+ * significant part that's smaller than the lookup table size, so that a valid
+ * shift value can be found to differentiate between PFN regions.  The setup
+ * algorithm might merge otherwise separate PFN ranges to use the same lookup
+ * table entry.
  */
 
 extern unsigned long max_pdx;
@@ -157,7 +197,52 @@ static inline paddr_t directmapoff_to_maddr_xlate(unsigned long offset)
             (offset & ma_va_bottom_mask));
 }
 
-#endif /* CONFIG_PDX_MASK_COMPRESSION */
+#elif defined(CONFIG_PDX_OFFSET_COMPRESSION) /* CONFIG_PDX_MASK_COMPRESSION */
+
+#include <xen/page-size.h>
+
+#define CONFIG_PDX_NR_LOOKUP (1UL << CONFIG_PDX_OFFSET_TBL_ORDER)
+#define PDX_TBL_MASK (CONFIG_PDX_NR_LOOKUP - 1)
+
+#define PFN_TBL_IDX(pfn) \
+    (((pfn) >> pfn_index_shift) & PDX_TBL_MASK)
+#define PDX_TBL_IDX(pdx) \
+    (((pdx) >> pdx_index_shift) & PDX_TBL_MASK)
+#define MADDR_TBL_IDX(ma) \
+    (((ma) >> (pfn_index_shift + PAGE_SHIFT)) & PDX_TBL_MASK)
+#define DMAPOFF_TBL_IDX(off) \
+    (((off) >> (pdx_index_shift + PAGE_SHIFT)) & PDX_TBL_MASK)
+
+extern unsigned int pfn_index_shift;
+extern unsigned int pdx_index_shift;
+
+extern unsigned long pfn_pdx_lookup[];
+extern unsigned long pdx_pfn_lookup[];
+extern unsigned long pfn_bases[];
+extern unsigned long pdx_region_size;
+
+static inline unsigned long pfn_to_pdx_xlate(unsigned long pfn)
+{
+    return pfn - pfn_pdx_lookup[PFN_TBL_IDX(pfn)];
+}
+
+static inline unsigned long pdx_to_pfn_xlate(unsigned long pdx)
+{
+    return pdx + pdx_pfn_lookup[PDX_TBL_IDX(pdx)];
+}
+
+static inline unsigned long maddr_to_directmapoff_xlate(paddr_t ma)
+{
+    return ma - ((paddr_t)pfn_pdx_lookup[MADDR_TBL_IDX(ma)] << PAGE_SHIFT);
+}
+
+static inline paddr_t directmapoff_to_maddr_xlate(unsigned long offset)
+{
+    return offset + ((paddr_t)pdx_pfn_lookup[DMAPOFF_TBL_IDX(offset)] <<
+                     PAGE_SHIFT);
+}
+
+#endif /* CONFIG_PDX_OFFSET_COMPRESSION */
 
 #ifdef CONFIG_PDX_NONE
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Aug 05 09:53:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 09:53:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070233.1433942 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujEMG-0003vq-4t; Tue, 05 Aug 2025 09:53:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070233.1433942; Tue, 05 Aug 2025 09:53: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 1ujEMF-0003vb-RK; Tue, 05 Aug 2025 09:53:23 +0000
Received: by outflank-mailman (input) for mailman id 1070233;
 Tue, 05 Aug 2025 09:53:21 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Xkmx=2R=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1ujEMD-0001yh-RQ
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 09:53:21 +0000
Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com
 [2a00:1450:4864:20::42d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 04c6e06f-71e2-11f0-a321-13f23c93f187;
 Tue, 05 Aug 2025 11:53:20 +0200 (CEST)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-3b79bddd604so3581404f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 02:53:20 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-458b73868a4sm128606745e9.11.2025.08.05.02.53.19
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Aug 2025 02:53: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>
X-Inumbo-ID: 04c6e06f-71e2-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754387600; x=1754992400; 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=lLIn3FF6zwDcWQpb5QcmoMzmzTKK4Qs20CfUmv+TlvU=;
        b=pryDO7v4wpFvoa4dmDMvxdpOKkRxHpN7dF6Okli9zEBoyuEdbvVNgrGmx3UqXUa/Kd
         yRBJppAOglSfAL1iPUmjcDB0c4RWIPfDY+Gn4yoUjFIGlnbDqfdR8rPM7R/WFMOQBVCn
         UTCSQAkvxVI608jbJ3MRArKTS4HGkFBgrF774=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754387600; x=1754992400;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=lLIn3FF6zwDcWQpb5QcmoMzmzTKK4Qs20CfUmv+TlvU=;
        b=emBCJ0WJbH/KaxcUKZ9q1mLdaCE8jKSGFnIWRDPSHM617T9sHCs40d2jcxwO2O/R1v
         xAy1t1EC3bCWu0tRrdVcuIn9yC+1WYEuGXeG5PlhWjn3kKGG54HpyQi0pL+ssM9dLV46
         NUTnbdJr62iO1IAWT0nELhoUs865thF2DW8HKyYXfvgsWem9pGBo9gFFtRusFMhkLxhz
         fJlOGU9sBPca+uoTtF5vd8Ljr0BSGzhhwWktKtZWW8rwFvv9nxmzLRoD+NVBUqP+mbZW
         2veCoF7hnwR7RNO62i/wIJ8hrDstQDV7j7wQi2Tbfam5oEFRaG2B1O5dNiqB8lfwyJC6
         s1qw==
X-Gm-Message-State: AOJu0YwFEkOdL6QiAW6AnVVOrXC0CmtFOhud2dITX1a58/SZ3DeuUeJl
	k1NV673DKCk2nfTf/oAwjicvDa1XlX5shU5wdPuZePr//66TZv1/07uBeYCK+falle3N4+BpKyr
	febNQ
X-Gm-Gg: ASbGncvCMp52xD6gXqOYFWeFJkEORdbC5ZtzntVtstJHmhFgeNpg2GaYuJQyylj3IGB
	ZE0OW0nqAz4P7fSn0R8LeZ4/iWX1P7m3FH103Jb90WJ7ihe43LdU/ZN9SobNiWxkyPiwPm9wmHT
	b74b1LkT/UC80/NVbZSMdsyWioO48jikk0YCMSP3vXx+IClj5uTpoVAF7yItkPbiggTVrGA2vso
	zGLsO1RHhixjWaWcSASusmu+VkcliN2dGZIsSv2voWHMMTZe9ZOIsaHzpBowTascrCyos3gu5B9
	HaxzaD6aKv/TTgQFeelLM4Gq0O3urIqER8DFMBQHHkp8n/yiW5vVswACRo5lM1y+PB7PIofYhIU
	uy8aMZXNQ/d2/M4GcmMcioVlg2RK4SkMZrAJ9sLekxBZStfzma2sOVJP63IiVD41lTzIkNIzf1s
	Bc
X-Google-Smtp-Source: AGHT+IF1tlMb6KZwDcyrJwRY0DLZ3X9YMOMVZzsA08b0rnKgAvFdrqoP72cSYcW9kqUAOHbX8Xfvpg==
X-Received: by 2002:a5d:5d0e:0:b0:3b7:9564:29be with SMTP id ffacd0b85a97d-3b8d94c1febmr8669986f8f.49.1754387599726;
        Tue, 05 Aug 2025 02:53:19 -0700 (PDT)
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>
Subject: [PATCH v4 8/8] x86/mm: adjust loop in arch_init_memory() to iterate over the PDX space
Date: Tue,  5 Aug 2025 11:52:57 +0200
Message-ID: <20250805095257.74975-9-roger.pau@citrix.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250805095257.74975-1-roger.pau@citrix.com>
References: <20250805095257.74975-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

There's a loop in arch_init_memory() that iterates over holes and non-RAM
regions to possibly mark any page_info structures matching those addresses
as IO.  The looping there is done over the PFN space.

PFNs not covered by the PDX space will always fail the mfn_valid() check,
hence re-write the loop to iterate over the PDX space and avoid checking
any holes that are not covered by the PDX translation.

On a system with a ~6TiB hole this change together with using PDX
compression reduces boot time in approximately 20 seconds.  Xen boot time
without the change is ~50s, with the change it's ~30s.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
Changes since v3:
 - Ensure parameter to pfn_to_pdx() is always RAM.

Changes since v2:
 - New in this version.
---
 xen/arch/x86/mm.c | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index e7fd56c7ce90..e27dc28cfdd6 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -275,7 +275,7 @@ static void __init assign_io_page(struct page_info *page)
 
 void __init arch_init_memory(void)
 {
-    unsigned long i, pfn, rstart_pfn, rend_pfn, iostart_pfn, ioend_pfn;
+    unsigned long i, pfn, rstart_pfn, rend_pfn, iostart_pfn, ioend_pfn, pdx;
 
     /*
      * Basic guest-accessible flags:
@@ -328,9 +328,20 @@ void __init arch_init_memory(void)
             destroy_xen_mappings((unsigned long)mfn_to_virt(iostart_pfn),
                                  (unsigned long)mfn_to_virt(ioend_pfn));
 
-        /* Mark as I/O up to next RAM region. */
-        for ( ; pfn < rstart_pfn; pfn++ )
+        /*
+         * Mark as I/O up to next RAM region.  Iterate over the PDX space to
+         * skip holes which would always fail the mfn_valid() check.
+         *
+         * pfn_to_pdx() requires a valid (iow: RAM) PFN to convert to PDX,
+         * hence provide pfn - 1, which is the tailing PFN from the last RAM
+         * range, or pdx 0 if the input pfn is 0.
+         */
+        for ( pdx = pfn ? pfn_to_pdx(pfn - 1) + 1 : 0;
+              pdx < pfn_to_pdx(rstart_pfn);
+              pdx++ )
         {
+            pfn = pdx_to_pfn(pdx);
+
             if ( !mfn_valid(_mfn(pfn)) )
                 continue;
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Aug 05 09:58:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 09:58:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070253.1433956 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujERG-0006nh-Uf; Tue, 05 Aug 2025 09:58:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070253.1433956; Tue, 05 Aug 2025 09: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 1ujERG-0006na-Qz; Tue, 05 Aug 2025 09:58:34 +0000
Received: by outflank-mailman (input) for mailman id 1070253;
 Tue, 05 Aug 2025 09:58:33 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=j2i0=2R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujERF-0006nU-7d
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 09:58:33 +0000
Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com
 [2a00:1450:4864:20::630])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id be8d30a9-71e2-11f0-a321-13f23c93f187;
 Tue, 05 Aug 2025 11:58:32 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-af934d7c932so582164166b.3
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 02:58: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
 a640c23a62f3a-af91a078a11sm892226266b.7.2025.08.05.02.58.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Aug 2025 02: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>
X-Inumbo-ID: be8d30a9-71e2-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754387912; x=1754992712; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=bFmMS+yUv8L/ynG0NcGXlcHupF4SHptUfZfnvFPWvGM=;
        b=dSJQ3nSM0C3CKpfiFYYsEq6Xnc0BmqRLJCeavRBKPP9O4LLkWggLg49OAldMowiO9I
         dk/cA96cLmdq72/fqBqgTVOotns3XG7mGOEjDA/njuXG8yngPXwtw/w+ciDje7zjc7YL
         nOBMiVudTQevu3RZqvA4ayYjv4Ep/waHqgxP3KfUL5D8ErC08ff2wpRnh7Raii+TUNbc
         R/czL2hgmNedJ+y1TpFk5Q/9sf6vu2SoT6eKe26hjDTIKALrz+BCvavX9AtQfFjZGN+W
         B9/ru3CFXz0JnxevSQWt1/HuDxIjaHJ9HKeR4SrS0VeA2VgwyOMyo+4u62PPg5clH/mQ
         fYVA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754387912; x=1754992712;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bFmMS+yUv8L/ynG0NcGXlcHupF4SHptUfZfnvFPWvGM=;
        b=gvvnjSHlFtnHTEOSvMGdjOk7Igd+7pnJElsxmjolDxaas810qVqk1/ivW6KIKK54Ms
         CVEPi/eejvG+t9TFg8glFee4HB1M9mWU5OGVMydw++VdmrkAGJ+wWsIIul/pXJ3CdiLn
         0EgMpgwNPoz9EHlBNTBzBKIuU1NGb8SIg+tFI8ZqvcWTN3o38JcewCbJfFtSr3IZL5rZ
         ruurf9t9Mb3HwKU8oXViUkTXOjiMquMhXYuKQiSx8rQ4SULyBCp+d7jUUBFDXj2ex0+7
         i32v6OXlgTziz8jAPvuCx8+FqkTjxbl/2iJG8nnu6not1eeV9vbeMgZghtmURVo/qXtN
         KB6A==
X-Forwarded-Encrypted: i=1; AJvYcCX3h+sZjYbZvXInNDaYynZVM6Nxl9+p9CcEqRoUS94/9IejWIMXhv569kCZQ7361MsW63HLW2FbcXM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxCaCvV65dwGFQlNEJXKAr5KN9FTPJ4ZfH7z41se151pDb6pAYZ
	zLA0pXcNZDLq//ghoZjcx+ZRJDy3XeSNAnuQkGBTwLprYR++pySS7DFmbTQdPCdfpw==
X-Gm-Gg: ASbGncvatYGLkywTLUA8imZoRIyPVGJZylmSRrg8lYUtJd2X3gMeqGjmSu+uU0VfOFD
	4kYJ9OwII8V7sCMl7Ov4BetSkQA+XmH1fTw0YPHqSYoMsiuMiSg8zO0dKpk0LnEmV/ZmOsMRDGe
	OrpFI/zElHTCP+gMbJk4QyaJgKqagd1f1Jg+Ka8X+S2ozuZLrC4jKHmFd+fBKFX/OV1XxjLJ0q7
	MI5ZdWozpxgLaa8MWVEDWyXCwhl9vxfPR4kPmSx52uqac8zyzc+JgXlwZxCnuzuRgfEpe6+isdi
	lp8gU4fxb5QA243MthKxp3RNh+RKnwpuv2xdzrIqi2961bfTYGrQBcpQJ+bOk2UOEM+Bq9+Sh32
	Li8rEatZ1NN8+ViadJtZ9Pylt1vi2ldlvWaAecPzg8uSvDvf5laSw1NmmA3+XWkLR2yC9uHawIB
	PIMJmfogk=
X-Google-Smtp-Source: AGHT+IHupIrEWsBNGQcRhV+jfIGYt0WzCfM7AE2IoLjnHLFRf3ef/4RmguEBGYdgiKduc91l9kXRzQ==
X-Received: by 2002:a17:906:c149:b0:ae6:e0a7:234c with SMTP id a640c23a62f3a-af940156652mr1299570066b.33.1754387911734;
        Tue, 05 Aug 2025 02:58:31 -0700 (PDT)
Message-ID: <22e33697-b1a0-47a6-9294-9b7dc8e567a4@suse.com>
Date: Tue, 5 Aug 2025 11:58:30 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 03/25] xen/x86: complement PG_log_dirty wrapping
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Tim Deegan <tim@xen.org>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
References: <20250803094738.3625269-1-Penny.Zheng@amd.com>
 <20250803094738.3625269-4-Penny.Zheng@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: <20250803094738.3625269-4-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 03.08.2025 11:47, Penny Zheng wrote:
> --- a/xen/include/hypercall-defs.c
> +++ b/xen/include/hypercall-defs.c
> @@ -198,7 +198,9 @@ dm_op(domid_t domid, unsigned int nr_bufs, xen_dm_op_buf_t *bufs)
>  sysctl(xen_sysctl_t *u_sysctl)
>  #endif
>  domctl(xen_domctl_t *u_domctl)
> +#if PG_log_dirty
>  paging_domctl_cont(xen_domctl_t *u_domctl)
> +#endif
>  #ifndef CONFIG_PV_SHIM_EXCLUSIVE
>  platform_op(xen_platform_op_t *u_xenpf_op)
>  #endif
> @@ -294,6 +296,8 @@ dm_op                              compat   do       compat   do       do
>  hypfs_op                           do       do       do       do       do
>  #endif
>  mca                                do       do       -        -        -
> +#if PG_log_dirty
>  paging_domctl_cont                 do       do       do       do       -
> +#endif

While putting together my pair of patches, I figured that using PG_log_dirty
here is wrong. asm/paging.h isn't (and cannot easily be) included, and hence
the compiler will consider PG_log_dirty uniformly 0, no matter what .config
holds.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 10:37:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 10:37:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070313.1433966 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujF2m-0004wP-N8; Tue, 05 Aug 2025 10:37:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070313.1433966; Tue, 05 Aug 2025 10:37: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 1ujF2m-0004wI-K0; Tue, 05 Aug 2025 10:37:20 +0000
Received: by outflank-mailman (input) for mailman id 1070313;
 Tue, 05 Aug 2025 10:37:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=j2i0=2R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujF2l-0004wC-I6
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 10:37:19 +0000
Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com
 [2a00:1450:4864:20::533])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 27eb12a6-71e8-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 12:37:16 +0200 (CEST)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-615460d9897so6283002a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 03:37: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
 4fb4d7f45d1cf-615a9113e40sm8152320a12.57.2025.08.05.03.37.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Aug 2025 03: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>
X-Inumbo-ID: 27eb12a6-71e8-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754390236; x=1754995036; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=L3UreZC+nqCKD2Heeq7OOVowSP7ytWR1sKlrgmHlRK8=;
        b=ETrye5FM1TmgCkUsclssjODtnRIdvakU297TCV1mNOuj9ip2xspFpIz54j/qNi6ANB
         c8cl0PligEHZzl8L+faHea0Ov6lTxLyDFH1ij2OoE7Ndk3KCCLJPWDtYNwJ3rs9bNUGt
         v6hyeOePAj1AzKiVVXgW9baBSE1qSPKFhyc4StVj2N4Hew7//bAX+nZsD1WA8o/OcOK3
         0mSKKfP+SeGx1erozmUlF8dOwIssJDzjXvAw0QAdCT0pKIxlrhUXj8mY7bJO+DGvZf0O
         nSoJipiRv4izoAacr69wRbWGn6Qa7AwWK6rCM15Syy2/fNd45rpgBHVA++eZqVerke+5
         ub2w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754390236; x=1754995036;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=L3UreZC+nqCKD2Heeq7OOVowSP7ytWR1sKlrgmHlRK8=;
        b=e4m8jTckJ0KfO1keml0m1Awp0TyZzy53MVWAME+EoJF4+ef3bo21OLr2AGZ3jAqc7E
         rY8RUujl6bST/tTNlIC/Ivme62d4eICFD5U+uHeyyG2Ousq4Ac6DSckwvkMfqV6FjZzo
         kT2qY42eJ7wupzm+zBfKI9M+Avt3zagKBLLJ7Lg22TQ9k+x11551tnYlkwM9FJB5QAFm
         58nFAOcsV1dYYUyo+THWrmsjD7x+Ehvta2A7EASoZrXi8YNsjxkCaaJ0boQStVdbvb+2
         3PBwkR/J5639SQ7FpibWiHgz0AsDoPErt7Ab2JC+fklqspurapNS+5ZiCCNWpXq8VLER
         r5dw==
X-Forwarded-Encrypted: i=1; AJvYcCVPXSvAC7KGqShLZBA1mUbO+Ts/PmYApGdd0azl1AE0gTz+8eSkCvklCbzB7lA/wVdoxsvXSEfKAJY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxtnur5zoi85lxHMzyBDdEfD9cCiXx0YqEZWFX3tdbGVFEAlr3h
	vlRNuYBS9EJ5J7mJyFbx4xyH2V6TCvV+Lwr3hb+qk/tE8cvbWtoygBgVhaW8k8zZCDro9BSlpCt
	T5TQ=
X-Gm-Gg: ASbGncvqw6kX7sIfNY5dr9sfa4wZtncx9CxvBay54T9vOUosukQMuuOpG2MD5v5mEp2
	pi0Q21ayfIh24GLottZnFfx86VGnEdcvxMKh4aqSP6wt0gFKakSKcnRlgKPui+asR7Yr30PzpYi
	3yyO6/zkZFC7CZGuOAKZgO39m9WE9s7asiAMMRGt3KG+njeUTViNSo6QPxCa9miq7pppPq7AsRs
	NLTNXol0GGxb3nBKv2gLeRwvQVbmhXx/lIMRf/BD7CqTRJW+AbSuBZLBQ44bexnjcjU+HBxb1jY
	LLU6jnO6YbAxzW7ycvMroCHuMsqPzmELzCryVzJp+sbk2pHfM/G8Ne9mTSY9k/fDSKfEoMwPaD4
	vXS/Ys/a5hdWGAEvPwv8VNtdN5ywl9CPmJvBwN/mlI4fGU19xGhEqDhGxG00YKpZRouP/xqOzay
	0OEVaa+yk=
X-Google-Smtp-Source: AGHT+IH1iSOs6GGMLL/1gomtHSHmi7ds5abLYTtNhvEFeLIMQFD353mCYU8NoWx+D2gI9VDOu6BlcA==
X-Received: by 2002:a05:6402:13c2:b0:615:8e47:11b3 with SMTP id 4fb4d7f45d1cf-615e7144a3emr11307343a12.22.1754390235773;
        Tue, 05 Aug 2025 03:37:15 -0700 (PDT)
Message-ID: <3c02593f-deae-4109-9334-0ac4376a9a9e@suse.com>
Date: Tue, 5 Aug 2025 12:37:14 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 06/20] xen/riscv: add root page table allocation
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <23c79f07221dee7eb782ebb160442f3a796a41b2.1753973161.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: <23c79f07221dee7eb782ebb160442f3a796a41b2.1753973161.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 31.07.2025 17:58, Oleksii Kurochko wrote:
> Introduce support for allocating and initializing the root page table
> required for RISC-V stage-2 address translation.
> 
> To implement root page table allocation the following is introduced:
> - p2m_get_clean_page() and p2m_alloc_root_table(), p2m_allocate_root()
>   helpers to allocate and zero a 16 KiB root page table, as mandated
>   by the RISC-V privileged specification for Sv32x4/Sv39x4/Sv48x4/Sv57x4
>   modes.
> - Update p2m_init() to inititialize p2m_root_order.
> - Add maddr_to_page() and page_to_maddr() macros for easier address
>   manipulation.
> - Introduce paging_ret_pages_to_domheap() to return some pages before
>   allocate 16 KiB pages for root page table.
> - Allocate root p2m table after p2m pool is initialized.
> - Add construct_hgatp() to construct the hgatp register value based on
>   p2m->root, p2m->hgatp_mode and VMID.

Imo for this to be complete, freeing of the root table also wants taking
care of. Much like imo p2m_init() would better immediately be accompanied
by the respective teardown function. Once you start using them, you want
to use them in pairs, after all.

> --- a/xen/arch/riscv/include/asm/riscv_encoding.h
> +++ b/xen/arch/riscv/include/asm/riscv_encoding.h
> @@ -133,11 +133,13 @@
>  #define HGATP_MODE_SV48X4		_UL(9)
>  
>  #define HGATP32_MODE_SHIFT		31
> +#define HGATP32_MODE_MASK		_UL(0x80000000)
>  #define HGATP32_VMID_SHIFT		22
>  #define HGATP32_VMID_MASK		_UL(0x1FC00000)
>  #define HGATP32_PPN			_UL(0x003FFFFF)
>  
>  #define HGATP64_MODE_SHIFT		60
> +#define HGATP64_MODE_MASK		_ULL(0xF000000000000000)
>  #define HGATP64_VMID_SHIFT		44
>  #define HGATP64_VMID_MASK		_ULL(0x03FFF00000000000)
>  #define HGATP64_PPN			_ULL(0x00000FFFFFFFFFFF)
> @@ -170,6 +172,7 @@
>  #define HGATP_VMID_SHIFT		HGATP64_VMID_SHIFT
>  #define HGATP_VMID_MASK			HGATP64_VMID_MASK
>  #define HGATP_MODE_SHIFT		HGATP64_MODE_SHIFT
> +#define HGATP_MODE_MASK			HGATP64_MODE_MASK
>  #else
>  #define MSTATUS_SD			MSTATUS32_SD
>  #define SSTATUS_SD			SSTATUS32_SD
> @@ -181,8 +184,11 @@
>  #define HGATP_VMID_SHIFT		HGATP32_VMID_SHIFT
>  #define HGATP_VMID_MASK			HGATP32_VMID_MASK
>  #define HGATP_MODE_SHIFT		HGATP32_MODE_SHIFT
> +#define HGATP_MODE_MASK			HGATP32_MODE_MASK
>  #endif
>  
> +#define GUEST_ROOT_PAGE_TABLE_SIZE	KB(16)

In another context I already mentioned that imo you want to be careful with
the use of "guest" in identifiers. It's not the guest page tables which have
an order-2 root table, but the P2M (Xen terminology) or G-stage / second
stage (RISC-V spec terminology) ones. As long as you're only doing P2M
work, this may not look significant. But once you actually start dealing
with guest page tables, it easily can end up confusing.

> --- a/xen/arch/riscv/p2m.c
> +++ b/xen/arch/riscv/p2m.c
> @@ -1,8 +1,86 @@
> +#include <xen/domain_page.h>
>  #include <xen/mm.h>
>  #include <xen/rwlock.h>
>  #include <xen/sched.h>
>  
>  #include <asm/paging.h>
> +#include <asm/p2m.h>
> +#include <asm/riscv_encoding.h>
> +
> +unsigned int __read_mostly p2m_root_order;

If this is to be a variable at all, it ought to be __ro_after_init, and
hence it shouldn't be written every time p2m_init() is run. If you want
to to remain as a variable, what's wrong with

const unsigned int p2m_root_order = ilog2(GUEST_ROOT_PAGE_TABLE_SIZE) - PAGE_SHIFT;

or some such? But of course equally well you could have

#define P2M_ROOT_ORDER  (ilog2(GUEST_ROOT_PAGE_TABLE_SIZE) - PAGE_SHIFT)

> +static void clear_and_clean_page(struct page_info *page)
> +{
> +    clear_domain_page(page_to_mfn(page));
> +
> +    /*
> +     * If the IOMMU doesn't support coherent walks and the p2m tables are
> +     * shared between the CPU and IOMMU, it is necessary to clean the
> +     * d-cache.
> +     */

That is, ...

> +    clean_dcache_va_range(page, PAGE_SIZE);

... this call really wants to be conditional?

> +}
> +
> +static struct page_info *p2m_allocate_root(struct domain *d)

With there also being p2m_alloc_root_table() and with that being the sole
caller of the function here, I wonder: Is having this in a separate
function really outweighing the possible confusion of which of the two
functions to use?

> +{
> +    struct page_info *page;
> +
> +    /*
> +     * As mentioned in the Priviliged Architecture Spec (version 20240411)
> +     * in Section 18.5.1, for the paged virtual-memory schemes  (Sv32x4,
> +     * Sv39x4, Sv48x4, and Sv57x4), the root page table is 16 KiB and must
> +     * be aligned to a 16-KiB boundary.
> +     */
> +    page = alloc_domheap_pages(d, P2M_ROOT_ORDER, MEMF_no_owner);
> +    if ( !page )
> +        return NULL;
> +
> +    for ( unsigned int i = 0; i < P2M_ROOT_PAGES; i++ )
> +        clear_and_clean_page(page + i);
> +
> +    return page;
> +}
> +
> +unsigned long construct_hgatp(struct p2m_domain *p2m, uint16_t vmid)
> +{
> +    unsigned long ppn;
> +
> +    ppn = PFN_DOWN(page_to_maddr(p2m->root)) & HGATP_PPN;

Why not page_to_pfn() or mfn_x(page_to_mfn())? I.e. why mix different groups
of accessors?

As to "& HGATP_PPN" - that's making an assumption that you could avoid by
using ...

> +    /* TODO: add detection of hgatp_mode instead of hard-coding it. */
> +#if RV_STAGE1_MODE == SATP_MODE_SV39
> +    p2m->hgatp_mode = HGATP_MODE_SV39X4;
> +#elif RV_STAGE1_MODE == SATP_MODE_SV48
> +    p2m->hgatp_mode = HGATP_MODE_SV48X4;
> +#else
> +#   error "add HGATP_MODE"
> +#endif
> +
> +    return ppn | MASK_INSR(p2m->hgatp_mode, HGATP_MODE_MASK) |
> +                 MASK_INSR(vmid, HGATP_VMID_MASK);

... MASK_INSR() also on "ppn".

As to the writing of p2m->hgatp_mode - you don't want to do this here, when
this is the function to calculate the value to put into hgatp. This field
needs calculating only once, perhaps in p2m_init().

> +static int p2m_alloc_root_table(struct p2m_domain *p2m)
> +{
> +    struct domain *d = p2m->domain;
> +    struct page_info *page;
> +    const unsigned int nr_root_pages = P2M_ROOT_PAGES;

Is this local variable really of any use?

> +    /*
> +     * Return back nr_root_pages to assure the root table memory is also
> +     * accounted against the P2M pool of the domain.
> +     */
> +    if ( !paging_ret_pages_to_domheap(d, nr_root_pages) )
> +        return -ENOMEM;
> +
> +    page = p2m_allocate_root(d);
> +    if ( !page )
> +        return -ENOMEM;

Hmm, and the pool is then left shrunk by 4 pages?

> --- a/xen/arch/riscv/paging.c
> +++ b/xen/arch/riscv/paging.c
> @@ -54,6 +54,36 @@ int paging_freelist_init(struct domain *d, unsigned long pages,
>  
>      return 0;
>  }
> +
> +bool paging_ret_pages_to_domheap(struct domain *d, unsigned int nr_pages)
> +{
> +    struct page_info *page;
> +
> +    ASSERT(spin_is_locked(&d->arch.paging.lock));
> +
> +    if ( ACCESS_ONCE(d->arch.paging.total_pages) < nr_pages )
> +        return false;
> +
> +    for ( unsigned int i = 0; i < nr_pages; i++ )
> +    {
> +        /* Return memory to domheap. */
> +        page = page_list_remove_head(&d->arch.paging.freelist);
> +        if( page )
> +        {
> +            ACCESS_ONCE(d->arch.paging.total_pages)--;
> +            free_domheap_page(page);
> +        }
> +        else
> +        {
> +            printk(XENLOG_ERR
> +                   "Failed to free P2M pages, P2M freelist is empty.\n");
> +            return false;

Looks pretty redundant with half of paging_freelist_init(), including the
stray full stop in the log message.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 10:40:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 10:40:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070321.1433975 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujF6D-0006YD-4z; Tue, 05 Aug 2025 10:40:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070321.1433975; Tue, 05 Aug 2025 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 1ujF6D-0006Y6-2R; Tue, 05 Aug 2025 10:40:53 +0000
Received: by outflank-mailman (input) for mailman id 1070321;
 Tue, 05 Aug 2025 10:40:52 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=j2i0=2R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujF6C-0006Y0-Fd
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 10:40:52 +0000
Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com
 [2a00:1450:4864:20::533])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a78d7de1-71e8-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 12:40:50 +0200 (CEST)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-6155e75a9acso7923639a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 03:40:50 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-615a8f2b892sm8265861a12.25.2025.08.05.03.40.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Aug 2025 03:40: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>
X-Inumbo-ID: a78d7de1-71e8-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754390450; x=1754995250; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=v/NojL9DA8erZOR3grqoJmP8QltDWfQE2isDLJNdhFs=;
        b=XL8q1j20S+V+XPrLx7I7UPyeHjgbUEO4egvkEaYFgTtngwQPTz7OZOLhttDLIcf3yb
         PKBZpqNm4hN9GdliPRexjAIPn1oZIMmNgHPKnwOMbcRw3QzpYPz0ZXiiB2rRvsRpCkAS
         S+DPzJZMlfklrZpTNvqoqQZp5DZ+ZiK0u5CleMdEddDF8JTEzKCkuohbsuG1shoahSQU
         eZnE3dQ0SQKL1GH/p1rxGw2DtpokbgHei/KwV4uVNW49uyVdAgR1hrMEt2xU6ByyM1dF
         ye8tW/p2xBMoBfVaCPiZzCcxgSo2t0TRI+UiD5WI4uMll3GV9xnzJyG+aP/QoqvQlwVZ
         0KBg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754390450; x=1754995250;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=v/NojL9DA8erZOR3grqoJmP8QltDWfQE2isDLJNdhFs=;
        b=L/WJ7S0V5W9qqicr9BIabc0TWqTHgWOX7ycYf4/b5mrIfRNUgtGBmCcEeNQNlyB0oT
         sMAZcKyJLyMx4ssxy9IfPpU8Flt8oT00m++zmmVT7cHOs9NCsBQ2f6TThoo/hJK6GJ42
         Hm4XvewWcnyDGuLrH73rl1mLICDHdd0R9dK/zMz53wsemDthZtjdwaOEF+EH790uHIQS
         Y+sllAxshgBiy+xMph5U+shblXfb4660QMGz8misIaE71spG2q7l3KYgBVRatRacvJnv
         LZBjvnm5EKAiD9iVQKjYj9J9fmK0THMjFwsek2T02mMyBeHDh6vj7zU752HVl0ZAkIWo
         sgWw==
X-Forwarded-Encrypted: i=1; AJvYcCWs5vuU24YCIHutOW3/HeiXLRCY44eWgITFv++AB5apqN8RYX6lhyY+xnJCBHiXePrmh90POMiNfSU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwLNZDDHz/xhQjkGp9plgfvJMv16wZJs1U8wiMsQO9fET+z7T8R
	6jsajIvMVTvas9KD3trzdzc59LCOibkqAmMSkuiRt1CysWJpXXBBRMl6u9fakmFBQQ==
X-Gm-Gg: ASbGncsPTm/H/q4/ScYemIA5aF2VvTnH9NeUTnXInfljfCF4M+5E5iTHAELkJpc4wuZ
	kkigmOJOnHnk1zjDdBTM9fi86yzCxEOfZicGuiDj3+JVehptE4FO0QQTZl19aL+WCoiubxF6K/V
	2LxRxQKc8u7Rldtu/4hLk7n0gpGPezXxlt19XkEHanFOUug9CFJWX1CDu5wfEgwgIWR8CKAa+PT
	dWttp63scxk1BlS0nwkDxsOa1B9H2gRgV9T5Q0VeKygI+mMd/kduWtfQWupaqOZ9QzMAD0spoL4
	crXpkaxWvMnvpD1AcLeDZ3TsY4mtaR88mqksm4A4BqFPghp2S48dAlZAKNaMGH57dktRX9bom44
	89LMniNPKkKzcNKzblJ8Of/zyrW19AdEsBmUCsSihOLJMIc8ZQNgJzS4NXi3FTaV8JvllxLnkf3
	4zrDqntVw=
X-Google-Smtp-Source: AGHT+IHGvYk3fEe0rqgYa5+t6PEcHzVsqMuJEelPjXU7EgSS7GRoV+maJvgoAFE+pxm9MFOp45xNrg==
X-Received: by 2002:a05:6402:50cf:b0:615:a3c2:2e5d with SMTP id 4fb4d7f45d1cf-615e6f52cefmr11454061a12.19.1754390450146;
        Tue, 05 Aug 2025 03:40:50 -0700 (PDT)
Message-ID: <ae570c32-e6d0-4131-af2b-d6984ff92750@suse.com>
Date: Tue, 5 Aug 2025 12:40:48 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 05/20] xen/riscv: construct the P2M pages pool for
 guests
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <4e7de8ffc929c1bdfa28b40fdd31b814acef103c.1753973161.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: <4e7de8ffc929c1bdfa28b40fdd31b814acef103c.1753973161.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 31.07.2025 17:58, Oleksii Kurochko wrote:
> @@ -30,3 +34,18 @@ int p2m_init(struct domain *d)
>  
>      return 0;
>  }
> +
> +/*
> + * Set the pool of pages to the required number of pages.
> + * Returns 0 for success, non-zero for failure.
> + * Call with d->arch.paging.lock held.
> + */
> +int p2m_set_allocation(struct domain *d, unsigned long pages, bool *preempted)

Noticed only when looking at the subsequent patch: With this being ...

> +{
> +    int rc;
> +
> +    if ( (rc = paging_freelist_init(d, pages, preempted)) )

... a caller of this function, the "init" in the name feels wrong.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 10:43:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 10:43:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070331.1433985 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujF8P-0007FJ-KB; Tue, 05 Aug 2025 10:43:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070331.1433985; Tue, 05 Aug 2025 10:43:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujF8P-0007FC-Gv; Tue, 05 Aug 2025 10:43:09 +0000
Received: by outflank-mailman (input) for mailman id 1070331;
 Tue, 05 Aug 2025 10:43:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=j2i0=2R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujF8O-0007Ew-CL
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 10:43:08 +0000
Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com
 [2a00:1450:4864:20::633])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f953d3f8-71e8-11f0-a321-13f23c93f187;
 Tue, 05 Aug 2025 12:43:07 +0200 (CEST)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-af93c3bac8fso573279966b.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 03:43: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
 4fb4d7f45d1cf-615a911a66asm7990548a12.64.2025.08.05.03.43.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Aug 2025 03:43:07 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f953d3f8-71e8-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754390587; x=1754995387; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=gAP9eRgCn3/MdbdWK7FpW2EKJtswmlWQ239+zlD5QME=;
        b=Nphld2Ng4aBrKb5v6j+0hfQ+ZcrzbC6gBxeKBd3dZLS0QrcMZuOrjGZejtCCrGbZnm
         js7JwnuC2GoMSu3rp+7WnXAA5bki/NrpRFfGiir1L7hBbkzc065+80to/cTsdnCcmu3e
         jpEmANJU1pv7mj387xHlm3sqYK9ZMezn5ClGZZz+nK4QJMCv31Klr8P6PNIRq2qZl8a7
         rlSnmNUgUUPwuW1TpFSHENzyh23Q8ETanu45d8MBHDLZh+aZurS+2EKh/5ZrGsJgydjS
         R0GYU0q+NRBQ8DE6e1OfEekZR3IrXAMkpIqhJl+Q9S9IsjLL6rHeynsbRsyXjWKm6M4n
         ORxQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754390587; x=1754995387;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gAP9eRgCn3/MdbdWK7FpW2EKJtswmlWQ239+zlD5QME=;
        b=hqIN0DcsR8iaFGOpbzyH1gRpV2K1RRHRMwdPq0TvBZNr5o0m0ORLmYp3qoGJxdyiri
         jIAW/2YL7ofi87iItyW0BBYk/jQP9z+M/PAmmtoNqHqEiezCYh/OPPyhqNXbFHzHmY6G
         7BhNEreFswa6x26a6qjt8OJaJxvNtC2pus142cadOtt3fvIRJ3p/Vg7qFKh1bd8ZkwU8
         GOTp7TcRyd3HYbofzrj8dVUTbU+PHt8P2iixUdUa1w1ZtfHq7jhTmO+xjrSUFoXcLWhw
         uxAK0AwuBP7PYcyWtcW+8p2TlrMYA0iTT13Fxhi2nnozkgBgaHPDuoqISjbDIJ7U+6Bm
         lJgA==
X-Forwarded-Encrypted: i=1; AJvYcCW6efEAV4/yHYYYfYYLceXugTs2uCH4r4ft60TxC9rWm7EtkOfgCYjkfizn2Vb6e27seOSN4gCh/yU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxXZoqmE2sd0Dr5EUJv3sQJq8r+uLRxYL5F0gmm+SL2/F6PTTUx
	fqhuvHovpQ0vSbaqUpQg49BKYhxt13GGxLxYVesQd4Hr2soHIhyscZ++mFhTRiVVyQ==
X-Gm-Gg: ASbGncs3upSOjc2yAGpLNTrnG7kQw7ad+Yf9sgWR536X3s9gj7rEUsIuLk+ICll/GQ4
	TvYZPYpJ7ALEQVzPJ+G/Bg8Y29KuMeKWIFiH6DbuI0ReWROb27fkdqlMsYXmschmr9nmxn/io6T
	p8TAXKIq4Gh39//WRnbTMh5hJz1Or/fBElii8M0pbLdwxvhflmWQifGFT5zJ02YrRyubcnJeSQN
	QV2M7u+stLcxySPye9AzXNB/8ZK+pzAADeQg97qye+fCKsART0SFnLnxjCvZc8/JROWUpCw8WON
	BPRTd7MOC0ejCPml+4qtVMxGDlaTg5YnhAdF45e2kn5VAWrKmXnX9mgbIJBOYWUc/I2l0LUqYLZ
	AY/OYaaIMljRMmDMUaivZXCHNgXCVnamH/sAnV0oCyu6iVB8TVBIazuEJXNb8Z0JkREqu87HpPY
	EsWyUaKHw=
X-Google-Smtp-Source: AGHT+IE6Kk6ncZzJfPwUyNuuLlewygtvGLe1VOkVl+AN0Y7M/jZ6bVfMGiZqp6hzhoqw7eXeEHT+cw==
X-Received: by 2002:a17:906:c14a:b0:af9:81d0:d971 with SMTP id a640c23a62f3a-af981d0dbe3mr192923066b.50.1754390587313;
        Tue, 05 Aug 2025 03:43:07 -0700 (PDT)
Message-ID: <7491c934-f847-4fe2-9d9b-a500f0888198@suse.com>
Date: Tue, 5 Aug 2025 12:43:05 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 06/20] xen/riscv: add root page table allocation
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <23c79f07221dee7eb782ebb160442f3a796a41b2.1753973161.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: <23c79f07221dee7eb782ebb160442f3a796a41b2.1753973161.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 31.07.2025 17:58, Oleksii Kurochko wrote:
> +static int p2m_alloc_root_table(struct p2m_domain *p2m)
> +{
> +    struct domain *d = p2m->domain;
> +    struct page_info *page;
> +    const unsigned int nr_root_pages = P2M_ROOT_PAGES;
> +
> +    /*
> +     * Return back nr_root_pages to assure the root table memory is also
> +     * accounted against the P2M pool of the domain.
> +     */
> +    if ( !paging_ret_pages_to_domheap(d, nr_root_pages) )
> +        return -ENOMEM;
> +
> +    page = p2m_allocate_root(d);
> +    if ( !page )
> +        return -ENOMEM;
> +
> +    p2m->root = page;
> +
> +    return 0;
> +}

In the success case, shouldn't you bump the paging pool's total_pages by
P2M_ROOT_PAGES? (As the freeing side is missing so far, it's not easy to
tell whether there's [going to be] a balancing problem in the long run.
In the short run there certainly is.)

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 11:22:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 11:22:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070347.1433996 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujFkT-0004E3-Av; Tue, 05 Aug 2025 11:22:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070347.1433996; Tue, 05 Aug 2025 11:22: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 1ujFkT-0004Dw-81; Tue, 05 Aug 2025 11:22:29 +0000
Received: by outflank-mailman (input) for mailman id 1070347;
 Tue, 05 Aug 2025 11:22:28 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Xkmx=2R=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1ujFkS-0004Dq-7a
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 11:22:28 +0000
Received: from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com
 [2a00:1450:4864:20::42c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 777e563b-71ee-11f0-a321-13f23c93f187;
 Tue, 05 Aug 2025 13:22:27 +0200 (CEST)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-3b780bdda21so3710328f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 04:22:27 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3b79c3c33fesm19083698f8f.29.2025.08.05.04.22.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Aug 2025 04:22: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>
X-Inumbo-ID: 777e563b-71ee-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754392946; x=1754997746; 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=vb12vK4YDW6kaP7yHCW2OjLcwlaEqIPC8aHdGQ+Wcuc=;
        b=KdZR/AYylKQivBr0wqN9wAvyt/XNEP6NdMkgkUS534tMVDiNqrrjlf+EScitBbgiAN
         vihgkuQPxJJnwqZESs477d/fi+BsqGS7cEiSuEQ1eDkfq6m18FFV/2DY5ppqToiEROum
         +p7aXZbpR4+ZGxEahMHjP9OVhWrxqZpeTE4sY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754392946; x=1754997746;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vb12vK4YDW6kaP7yHCW2OjLcwlaEqIPC8aHdGQ+Wcuc=;
        b=MQEQpVyx1YbwFN//0AsKmvmxCMpqyLXz4pO4Fn0nDXvnPvf/2QKgQi1DYI1dSsxtCx
         zy363S90iKxkdqwmnZvFLA5oZN7+zv+Py2COK4ML2NrZUeOmeQXz7faouuZP44/l3un7
         KIGY20c8fMW15Q9k0tcoI1ZpPYlp5Ckf3R+uACIGiKeHiDRuqb76vymtbdz+GhanJNog
         SYfUK+NB32jvv5W92/vQHvEKJFt39D2LX/5GzRrPYdtiIsE+qR7V6Lzvb3/3Ht+Y5biQ
         vIqtgYkx4AcNzs8YCJBBKgu+yPSXioAk9rMIs3wSTsLAkJN06agpkgzHIESPuiqQEXlr
         VhPg==
X-Gm-Message-State: AOJu0YzmmOTTyjVKNaDFekI3uEs8Tm5SFjtaxJ29OxZsAUmpbPnF5U7Z
	Heu/ANTCt9hkXBDZ1R3TwebtHbNFJEwjYAY3IB6SPPLkiZdbiEtoVvuGuoOnQSOqWaU=
X-Gm-Gg: ASbGncvz1SHXVkUaYXnJFF16dXSDEuSupMh0UVDB4r1I14ni/06IoB1IPs4KFX7XIO9
	+TPAZUKr0y3Q5C001HkJbLXfTKSxK2fGbuu1/266ccTlZBsP//+mtJ6TdGsOvDYGdK/VvUALISr
	iTqotq5uawMsM/1swYQyJmWXQ+XhsZD3DfHF9BiCHwaZsfh0mfbBtXfVStxSIH9y++ZecRvOrFX
	OnBOyZc0U8clkKzPUB+o6Dkm10Qw0bQDHUvsSbMMXFwsll/r4ljCeGjXY7wxISIfNMEKyCYRGMl
	urfByvhWuKMKqQZc57yfRXDtQpzflKZZQEsIUkKbCsC5mzS+5GELDxouyUlaOFfKQohjB5X5mEq
	V0QtYOP4ZxZIxpQg2VxgOfWSufPeFO0GpydBwvXLBs4LuA3cVgDUqgt5X9yy/0RI3jmP1RsRYGG
	Mm
X-Google-Smtp-Source: AGHT+IEFKgjtnVjHMthObN55/fEtKtyZ6Lt2uHRrtFggXnXt569vwoQY1lMtONYvBgupTDiGb8XM5A==
X-Received: by 2002:a5d:64ec:0:b0:3ab:27f9:e51 with SMTP id ffacd0b85a97d-3b8d94bbb3amr9646808f8f.31.1754392946288;
        Tue, 05 Aug 2025 04:22:26 -0700 (PDT)
Date: Tue, 5 Aug 2025 13:22:25 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com,
	anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org,
	michal.orzel@amd.com, sstabellini@kernel.org,
	teddy.astie@vates.tech, dmukhin@ford.com
Subject: Re: [PATCH v10] xen/console: introduce domain_console struct
Message-ID: <aJHpcVCuMcXmXejj@macbook.local>
References: <20250725210525.736706-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20250725210525.736706-1-dmukhin@ford.com>

On Fri, Jul 25, 2025 at 09:08:02PM +0000, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com> 
> 
> Introduce domain_console for grouping data structures used for integrating
> domain's diagnostic console with Xen's console driver.
> 
> Group all pbuf-related data structures under domain_console. Rename the moved
> fields to plain .buf, .idx and .lock names, since all uses of the fields are
> touched.
> 
> Ensure accesses to domain_console pointer are valid in console_switch_input().
> 
> Bump the domain console buffer allocation size to 256. No extra symbol for the
> value since it is used only once during data structure declaration. All size
> checks use ARRAY_SIZE().
> 
> Allocate domain_console from the heap so that the parent domain struct size
> stays below PAGE_SIZE boundary to account for more console-related fields
> added in the future.
> 
> Finally, update the domain_console allocation and initialization code.
> 
> Not a functional change.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>

Just one request about the allocation of the domain_console in
domain_create().

> ---
> Changes since v9:
> - kept cd as is in hvm_print_line() as requested
> - dropped domain lock in hvm_print_line()
> 
> Link to v9: https://lore.kernel.org/xen-devel/20250723001116.186009-1-dmukhin@ford.com/
> ---
>  xen/arch/arm/vpl011.c      |  2 +-
>  xen/arch/x86/hvm/hvm.c     | 16 +++++++++-------
>  xen/arch/x86/pv/shim.c     |  2 +-
>  xen/common/domain.c        | 19 +++++++++----------
>  xen/drivers/char/console.c | 28 ++++++++++++++++------------
>  xen/include/xen/sched.h    | 24 +++++++++++++-----------
>  6 files changed, 49 insertions(+), 42 deletions(-)
> 
> diff --git a/xen/arch/arm/vpl011.c b/xen/arch/arm/vpl011.c
> index 480fc664fc62..d0d17c76b72c 100644
> --- a/xen/arch/arm/vpl011.c
> +++ b/xen/arch/arm/vpl011.c
> @@ -713,7 +713,7 @@ int domain_vpl011_init(struct domain *d, struct vpl011_init_info *info)
>      }
>      else
>      {
> -        d->console.input_allowed = true;
> +        d->console->input_allowed = true;
>          vpl011->backend_in_domain = false;
>  
>          vpl011->backend.xen = xzalloc(struct vpl011_xen_backend);
> diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
> index 56c7de39778b..37af507a8d90 100644
> --- a/xen/arch/x86/hvm/hvm.c
> +++ b/xen/arch/x86/hvm/hvm.c
> @@ -560,6 +560,7 @@ static int cf_check hvm_print_line(
>      int dir, unsigned int port, unsigned int bytes, uint32_t *val)
>  {
>      struct domain *cd = current->domain;
> +    struct domain_console *cons = cd->console;
>      char c = *val;
>  
>      ASSERT(bytes == 1 && port == XEN_HVM_DEBUGCONS_IOPORT);
> @@ -571,16 +572,17 @@ static int cf_check hvm_print_line(
>      if ( !is_console_printable(c) )
>          return X86EMUL_OKAY;
>  
> -    spin_lock(&cd->pbuf_lock);
> +    spin_lock(&cons->lock);
> +    ASSERT(cons->idx < ARRAY_SIZE(cons->buf));
>      if ( c != '\n' )
> -        cd->pbuf[cd->pbuf_idx++] = c;
> -    if ( (cd->pbuf_idx == (DOMAIN_PBUF_SIZE - 1)) || (c == '\n') )
> +        cons->buf[cons->idx++] = c;
> +    if ( (cons->idx == (ARRAY_SIZE(cons->buf) - 1)) || (c == '\n') )
>      {
> -        cd->pbuf[cd->pbuf_idx] = '\0';
> -        guest_printk(cd, XENLOG_G_DEBUG "%s\n", cd->pbuf);
> -        cd->pbuf_idx = 0;
> +        cons->buf[cons->idx] = '\0';
> +        guest_printk(cd, XENLOG_G_DEBUG "%s\n", cons->buf);
> +        cons->idx = 0;
>      }
> -    spin_unlock(&cd->pbuf_lock);
> +    spin_unlock(&cons->lock);
>  
>      return X86EMUL_OKAY;
>  }
> diff --git a/xen/arch/x86/pv/shim.c b/xen/arch/x86/pv/shim.c
> index bc2a7dd5fae5..bd29c53a2d34 100644
> --- a/xen/arch/x86/pv/shim.c
> +++ b/xen/arch/x86/pv/shim.c
> @@ -239,7 +239,7 @@ void __init pv_shim_setup_dom(struct domain *d, l4_pgentry_t *l4start,
>       */
>      d->max_pages = domain_tot_pages(d);
>  
> -    d->console.input_allowed = true;
> +    d->console->input_allowed = true;
>  }
>  
>  static void write_start_info(struct domain *d)
> diff --git a/xen/common/domain.c b/xen/common/domain.c
> index 303c338ef293..caef4cc8d649 100644
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -669,7 +669,7 @@ static void _domain_destroy(struct domain *d)
>      BUG_ON(!d->is_dying);
>      BUG_ON(atomic_read(&d->refcnt) != DOMAIN_DESTROYED);
>  
> -    xfree(d->pbuf);
> +    xvfree(d->console);

Nit: even if the struct if being freed just a couple of lines below, I
would use XVFREE() here.

>  
>      argo_destroy(d);
>  
> @@ -835,8 +835,6 @@ struct domain *domain_create(domid_t domid,
>          flags |= CDF_hardware;
>          if ( old_hwdom )
>              old_hwdom->cdf &= ~CDF_hardware;
> -
> -        d->console.input_allowed = true;
>      }
>  
>      /* Holding CDF_* internal flags. */
> @@ -866,8 +864,6 @@ struct domain *domain_create(domid_t domid,
>      spin_lock_init(&d->shutdown_lock);
>      d->shutdown_code = SHUTDOWN_CODE_INVALID;
>  
> -    spin_lock_init(&d->pbuf_lock);
> -
>      rwlock_init(&d->vnuma_rwlock);
>  
>  #ifdef CONFIG_HAS_PCI
> @@ -877,6 +873,14 @@ struct domain *domain_create(domid_t domid,
>  
>      /* All error paths can depend on the above setup. */
>  
> +    err = -ENOMEM;
> +    d->console = xvzalloc(typeof(*d->console));
> +    if ( !d->console )
> +        goto fail;
> +
> +    spin_lock_init(&d->console->lock);
> +    d->console->input_allowed = is_hardware_domain(d);

That's too early to do the allocation of the console buffer AFAICT.
It needs to be done after the:

    if ( is_system_domain(d) )
        return d;

check, as allocating a console buffer for system domains is pointless.

> +
>      /*
>       * Allocate d->vcpu[] and set ->max_vcpus up early.  Various per-domain
>       * resources want to be sized based on max_vcpus.
> @@ -959,11 +963,6 @@ struct domain *domain_create(domid_t domid,
>      if ( (err = argo_init(d)) != 0 )
>          goto fail;
>  
> -    err = -ENOMEM;
> -    d->pbuf = xzalloc_array(char, DOMAIN_PBUF_SIZE);
> -    if ( !d->pbuf )
> -        goto fail;
> -
>      if ( (err = sched_init_domain(d, config->cpupool_id)) != 0 )
>          goto fail;
>  
> diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
> index 963c7b043cd8..75fa033ce74d 100644
> --- a/xen/drivers/char/console.c
> +++ b/xen/drivers/char/console.c
> @@ -526,7 +526,7 @@ struct domain *console_get_domain(void)
>      if ( !d )
>          return NULL;
>  
> -    if ( d->console.input_allowed )
> +    if ( d->console->input_allowed )
>          return d;
>  
>      rcu_unlock_domain(d);
> @@ -567,10 +567,13 @@ static void console_switch_input(void)
>          d = rcu_lock_domain_by_id(domid);
>          if ( d )
>          {
> -            rcu_unlock_domain(d);
> -
> -            if ( !d->console.input_allowed )
> +            if ( !d->console->input_allowed )
> +            {
> +                rcu_unlock_domain(d);
>                  continue;
> +            }
> +
> +            rcu_unlock_domain(d);
>  
>              console_rx = next_rx;
>              printk("*** Serial input to DOM%u", domid);
> @@ -749,6 +752,7 @@ static long guest_console_write(XEN_GUEST_HANDLE_PARAM(char) buffer,
>          else
>          {
>              char *kin = kbuf, *kout = kbuf, c;
> +            struct domain_console *cons = cd->console;
>  
>              /* Strip non-printable characters */
>              do
> @@ -761,22 +765,22 @@ static long guest_console_write(XEN_GUEST_HANDLE_PARAM(char) buffer,
>              } while ( --kcount > 0 );
>  
>              *kout = '\0';
> -            spin_lock(&cd->pbuf_lock);
> +            spin_lock(&cons->lock);
>              kcount = kin - kbuf;
>              if ( c != '\n' &&
> -                 (cd->pbuf_idx + (kout - kbuf) < (DOMAIN_PBUF_SIZE - 1)) )
> +                 (cons->idx + (kout - kbuf) < (ARRAY_SIZE(cons->buf) - 1)) )
>              {
>                  /* buffer the output until a newline */
> -                memcpy(cd->pbuf + cd->pbuf_idx, kbuf, kout - kbuf);
> -                cd->pbuf_idx += (kout - kbuf);
> +                memcpy(cons->buf + cons->idx, kbuf, kout - kbuf);
> +                cons->idx += kout - kbuf;
>              }
>              else
>              {
> -                cd->pbuf[cd->pbuf_idx] = '\0';
> -                guest_printk(cd, XENLOG_G_DEBUG "%s%s\n", cd->pbuf, kbuf);
> -                cd->pbuf_idx = 0;
> +                cons->buf[cons->idx] = '\0';
> +                guest_printk(cd, XENLOG_G_DEBUG "%s%s\n", cons->buf, kbuf);
> +                cons->idx = 0;
>              }
> -            spin_unlock(&cd->pbuf_lock);
> +            spin_unlock(&cons->lock);
>          }
>  
>          guest_handle_add_offset(buffer, kcount);
> diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
> index fe53d4fab7ba..c828d5626dea 100644
> --- a/xen/include/xen/sched.h
> +++ b/xen/include/xen/sched.h
> @@ -371,6 +371,17 @@ struct evtchn_port_ops;
>  
>  #define MAX_NR_IOREQ_SERVERS 8
>  
> +/* Domain console settings. */
> +struct domain_console {
> +    /* Permission to take ownership of the physical console input. */
> +    bool input_allowed;
> +
> +    /* hvm_print_line() and guest_console_write() logging. */
> +    unsigned int idx;
> +    spinlock_t lock;
> +    char buf[256];
> +};
> +
>  struct domain
>  {
>      domid_t          domain_id;
> @@ -562,12 +573,6 @@ struct domain
>      /* Control-plane tools handle for this domain. */
>      xen_domain_handle_t handle;
>  
> -    /* hvm_print_line() and guest_console_write() logging. */
> -#define DOMAIN_PBUF_SIZE 200
> -    char       *pbuf;
> -    unsigned int pbuf_idx;
> -    spinlock_t  pbuf_lock;
> -
>      /* OProfile support. */
>      struct xenoprof *xenoprof;
>  
> @@ -652,11 +657,8 @@ struct domain
>      const unsigned int *llc_colors;
>  #endif
>  
> -    /* Console settings. */
> -    struct {
> -        /* Permission to take ownership of the physical console input. */
> -        bool input_allowed;
> -    } console;
> +    /* Pointer to console settings; NULL for system Xen domains. */

Nit: I would drop Xen from the sentence above, "system domains" is a
well known entity in this context.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 11:44:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 11:44:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070364.1434005 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujG5V-00075B-VW; Tue, 05 Aug 2025 11:44:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070364.1434005; Tue, 05 Aug 2025 11:44: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 1ujG5V-000754-Sm; Tue, 05 Aug 2025 11:44:13 +0000
Received: by outflank-mailman (input) for mailman id 1070364;
 Tue, 05 Aug 2025 11:44:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=j2i0=2R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujG5U-00074t-7d
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 11:44:12 +0000
Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com
 [2a00:1450:4864:20::635])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 809ae0b4-71f1-11f0-a321-13f23c93f187;
 Tue, 05 Aug 2025 13:44:10 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-adfb562266cso877007366b.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 04:44: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
 a640c23a62f3a-af91a0a1251sm898641866b.30.2025.08.05.04.44.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Aug 2025 04: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>
X-Inumbo-ID: 809ae0b4-71f1-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754394250; x=1754999050; 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=BH92JrYxTfVRwbnf4Sf3bniKIUgN6cCnUEwrDu+iezk=;
        b=GDXO1lrhk2zbk0TLGy4glEyw6tx05f41fM0YVhR4ZWRFoqKotxA4AvGD4wxJFUOPZV
         qL+JWleBbq0Zrs5slkKzVN+TPZxkfhiPbbd8B9Doo3ZXJ/NQ61lynywSRtj69eNfxDc/
         cWArkrcy6LtEk3fwKi26FD+cIxcmdmHEqLXMFldhY1F/hJtuZqf1IW4vmQM9ydzwfOO6
         Dnb4QS3/GQCQX+5P9kBf/2Mk5MueHoAsq8X8zVGJ/XBI53wXHovsoksd0fcXRI5/4+y/
         lqgpc/HxwKNEUspZHQ4W9GUQKrKmGqY3hqV7/6n7rOJN7rMNhD5o4onAtwMOdWUyiOxH
         FhCw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754394250; x=1754999050;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=BH92JrYxTfVRwbnf4Sf3bniKIUgN6cCnUEwrDu+iezk=;
        b=s1Bc1kc/xFH4tfAAtvsouTVvWP3XZkiLl8izL59s1aqVmSHcVDbdLHlmwJLV7k0mmH
         pDSX1yF8CikXav7q6Op8T1HiO4CfI5xm1M+6d58k1anWLXGbyMMV2lB1yOdENMxB2I18
         WClrNl6lM/me9viqvB96Dx72b+55tQFF2WLxiSTzbAup8ksRHTI64pjIbqPphWNHDSjg
         71Dzo+UovY8M8Vsj2j5cx4Q6V37iw0FY3zuZg2PlZI+kWvAJSR4XEugq7tTodVxHqcoe
         VAbetTVWTOTDIGABkSSHqbh56qZoeiO+0IEuvmLQgG/XFbiLumzsXoOd4KOBTcwY46Qq
         z7pA==
X-Gm-Message-State: AOJu0Yzodunq/eEe75ZslMOQNT6it16y0D1o9KFuSEzwCMZ4iucgwMvG
	di9ELmwYgfbN43fRME8U8wNDw55EQw86+hDLERPO0l/3BgcevnWLmqIcxYVeJnneFbJNidNSwns
	ZuO8=
X-Gm-Gg: ASbGncsOPjpzlllqDKdVgQKpNoB+SiWih4T/D7Z5OK5WdXtuamNlOt24dWDd4eHZc0E
	R5UNgdGadUG/TDXaT6sIy8yo3Y50FyEZ5Hj9lxDsQ4OV0WWxle6sTLomFuAZSFMvkcyMOQXFqf6
	oflrvqhDr2dsL7GXhUxS7f/q5afMRYBK0Qr/9gRvdpt8Ht5dDa3G4HUSyFIC+itjhs0iejGPEev
	/4LWU3ojILtlXCXdsEhXA1Xd5vXPv84tjaUJNa6ZrxsnU/33YjSCErPPw/Z+70qCFCP0WL/svR0
	GvsgUYH0+ub3OQD89sCDoyT0GywYOYsy1V6yZ75RRF6dBPkk4AQeJC0y74bEYixHwAfLWBDWVEB
	QT8hqFy0lG8bdgKKqJCAYxTkHF1Wab5oHgFIy8OQbGRkWaQed082S7FOAJk/jyoa13Ml66FIeno
	HJMx3ITgk=
X-Google-Smtp-Source: AGHT+IHE+oudJJHxhXWrlKYklIFJFvnUoJGRkjCdqP0DpOQXNxhHvs1CEjjk+ydvKd05LrRxnhf7VQ==
X-Received: by 2002:a17:906:470a:b0:af9:4075:4ea5 with SMTP id a640c23a62f3a-af940754f66mr1252954966b.25.1754394250291;
        Tue, 05 Aug 2025 04:44:10 -0700 (PDT)
Message-ID: <508868ed-ef78-4eba-af44-e8c7e6bdbadf@suse.com>
Date: Tue, 5 Aug 2025 13:44:09 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: Xen 4.19.3 released
To: xen-announce@lists.xenproject.org
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
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

All,

we're pleased to announce the release of another bug fixing Xen version.

Xen 4.19.3 is available from its git repository
http://xenbits.xen.org/gitweb/?p=xen.git;a=shortlog;h=refs/heads/stable-4.19
(tag RELEASE-4.19.3) or (eventually) from the XenProject download page
https://xenproject.org/resources/downloads/.

We recommend all users of the 4.19 stable series to update to this latest
point release.

Regards, Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 11:50:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 11:50:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070392.1434028 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujGBV-0000te-SH; Tue, 05 Aug 2025 11:50:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070392.1434028; Tue, 05 Aug 2025 11:50:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujGBV-0000tX-PR; Tue, 05 Aug 2025 11:50:25 +0000
Received: by outflank-mailman (input) for mailman id 1070392;
 Tue, 05 Aug 2025 11:50:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=L9Xd=2R=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1ujGBU-0000tR-U7
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 11:50:25 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5e5351e9-71f2-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 13:50:23 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by GVXPR03MB10931.eurprd03.prod.outlook.com (2603:10a6:150:217::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.13; Tue, 5 Aug
 2025 11:49:47 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.8989.018; Tue, 5 Aug 2025
 11:49: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>
X-Inumbo-ID: 5e5351e9-71f2-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jfBXGb9fv/KiyxD+3KzlaWymXv1CBsZ3/VYhbvqPM/Xsvm/cpkaQ6/a3mjZfDEHJIaxGSJUMzERDlaJASTi4JOX7y+MalQPoXSRDo7L5lHD+FRgJtS8qVOuFC2v+s+W5d+67h1wXpZ81gm/PisZT5CngNZ7fZnYGZID5Vm3s9mDd+v08r65ZdklqDVocSwcQcifVKsdD4DGotQIKSNcspkQz9URdEQVftg4wodC0hXByNQcObyFrc6184KGj2ZS0JU5fjwHbQs8TKKKIPNxMHwXacqgS0iUszpRoFyTZg/ot9wNqIIpZcYvNcNXPzHSURp1yiA0VSJeUsCE1N/v35A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=1t3LPeE69Dbv8I4scKJI0IWAP9T8vjIj1hK//ITZCKI=;
 b=jPIncv4C+fIVABvYl21998Bm/AXVolu1V1bVNBb1hkDsl9RRZbPhyl87E+3LzeLYsYn09vMfJlMf6+M25m1Q9nYSdqmgMPgfCThHQkFRTJ/tPBYHNaazLIGV41GMBceYAnuobF5uyaz53GB7G5X5wYkONvT0nzI5Pu13rk4sb+PzTHczmlikEVsutmYrOsqk7dZw9VWTVLbqLHPxw7KSTajqdRZdjTOLd8kPd1D10AgALJWoY8Zd4gji93AKh1RAuuVwFfp3fcywYo+RuKhhGEvpRHhCRbChZPaF/Xrkacl/f4HTr/qDfLyulw53f91SR+a/CipD0JGQvqclz4VjOQ==
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=1t3LPeE69Dbv8I4scKJI0IWAP9T8vjIj1hK//ITZCKI=;
 b=Ni/Su0Il8/TMfWi6xaS2+dqKDzD2O9cncITuPYJTuVU0rK8dT9mdjzKC1BepJ4C0hdcpjyEoSTirISv/wYrsbcfP+owQHvtb4Hg1l3N5HS3Tgs/at5GI6gKAixZmKRvii8aDQyF6FA7agYNrniDKpE0gJUEgAUyleEEPiWZyPREwVTtj1qVfs6iFOcAFDaeoKjinwFOR2W61iSDUAffTXs6T8X9/bj0V964m34AJIJAoIXYmZsq9hm3mRHqw6Pu4iBeZCh3IUakBhF8s7DOD7yRUE7Lc+4zyd5EFn4iB2K3Zrot9psqxsFPMjUtQNEhPi/jsqUfngNXura7VgLvN7Q==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Nicola Vetrini <nicola.vetrini@bugseng.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>
CC: Jan Beulich <jbeulich@suse.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>, Dario Faggioli <dfaggioli@suse.com>,
	Juergen Gross <jgross@suse.com>, George Dunlap <gwd@xenproject.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] misra: fix violations in macros GVA_INFO, TRACE_TIME
Thread-Topic: [PATCH] misra: fix violations in macros GVA_INFO, TRACE_TIME
Thread-Index: AQHcAi4fqTKeJL6S4E6Pmu2ECW9SE7RMXc0AgAAFrACAAAIQgIAAATiAgAeS9wA=
Date: Tue, 5 Aug 2025 11:49:46 +0000
Message-ID: <91d2a8ec-8a8e-404a-85ac-1038317e937b@epam.com>
References:
 <73cfc8a2d4d66042b49f44c69e672ce8ad0556ce.1753971749.git.dmytro_prokopchuk1@epam.com>
 <470a04e6-f8c1-4937-8478-0f80107d562d@citrix.com>
 <898e1c2a-7684-489b-84cd-254b2ee53e5d@suse.com>
 <9952fc5c-b95a-4879-a442-12e491438e08@citrix.com>
 <689178480a418f04158d623e3cedd4bd@bugseng.com>
In-Reply-To: <689178480a418f04158d623e3cedd4bd@bugseng.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV2PR03MB9572:EE_|GVXPR03MB10931:EE_
x-ms-office365-filtering-correlation-id: 23c53eb3-4513-47a6-c98e-08ddd4162d36
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|42112799006|7416014|376014|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?MTdwbmpSUm9mdUFMdTQwdEpPNldZbmRXUzd0UXY4T042Sm9YcUc1NXRUdUN4?=
 =?utf-8?B?bW9MYUhwMThmZUhscUNaRGpETW9aYTQyYThQVDVZQTJSZ0wyM1hBNlhyOW4y?=
 =?utf-8?B?Ty9XSkVzNDFRSjJWRzVsbnBrczFMdUFzaTZ6ZDVPdFJ4UWNTOVdhUnFDaFdR?=
 =?utf-8?B?ejBiUEtSbmh0bWxHcTBjeVVBMEJFUzlaREdrbFpsWWduTDdybFZMaHJRZzNJ?=
 =?utf-8?B?eDhCTkNDbGRGMzZGaFZWVWRrRlE2RjBXQUhqZFNwY0svUDk5MlY2VzhlWE1U?=
 =?utf-8?B?TUZ3Vkw2VDVSY2RzN29DUHVTdGpmbEdQdXJkeVg0OFFueExyajVxSXhESVFE?=
 =?utf-8?B?dHRsZG5memMvaTJqWGt2bXQ2Z29tQzh6eDhZSU1QbFNXNW9zVFZWKzJBTlA5?=
 =?utf-8?B?VHRERUlxVlg3RGhvUVZ3R0o4U3d0ZktyMWVUcUZVd2I0b0FBOFk4eEpSK25E?=
 =?utf-8?B?Tmw5UXE2YjFXU2JHZUo1TnR3OWhyRUovUUc5cFM0S2VhTXN4eGZiSHFIdVpx?=
 =?utf-8?B?WFI5bW1MTTJQSXV4ZjRmS3pOeGlXZGRXb05hdUptdVlnZXVmaUZJV29GMkR1?=
 =?utf-8?B?ZXpUVnNKajdtZ2JsODlYMmlOVCtSeHdya29jWFM1QUNMc0VoRm52bEVYOE5r?=
 =?utf-8?B?U0lzNkdnTW1XMzhaTzNaMVVTRWIyNWFMeVdiR29QN0ZIdUhqQ0JvLzhUWTBl?=
 =?utf-8?B?R2o0VWRGNGZ4MUg5MytYLzB0ZGFyL0hLVE5xV1ZMUEh1bVBVQVBqSDVZS2ph?=
 =?utf-8?B?VDhSRXNkQ2l1RVFVRlZFNlNINXF1MXBKNk40RmVUZGdPeXgyeU9pWlA0MmRW?=
 =?utf-8?B?MmtMY2hlc3BjTFdkRzMvemlBd216b0pWSTRNMWRIajU5WVdQMUIrZzROOHAv?=
 =?utf-8?B?MUxheFFRRTRvbUZLNFFyY1RhUTlGZnJPVWFsMlMwT2ZlMExNMGFwRXNSeXVE?=
 =?utf-8?B?NjllWWlVZDJqQUJwS3NWN1g1UWJUUlh4MmF4MXBrNWNUV1g2SldWNTk1VnYw?=
 =?utf-8?B?Vys2Qys3REhaUkN2NmZKYTJHa2lmbnorMFhaUk9JWnpEa0hHT25oNk9Zamwv?=
 =?utf-8?B?cktSb29rVXBuVU1aUkNmRGtRWHFLTHQwdzQzcklSVnRheFFRSWxiOU5QbXVS?=
 =?utf-8?B?VEtMSlVQR3FFZW8rTFFIV2h2Zmd0VzNLZWk5MHRITkFaYnFueTZjcTRMOWtF?=
 =?utf-8?B?eWN4Rjl6RHpBRlFoUWJjbjBLaUtCdGRiekt6UWdoNS80SVljQmV0cmNrd3Z4?=
 =?utf-8?B?QnhGcDBiRFFLQmxNSGcyY3QwMDZBbDMydW16U0w3TWRySWE1eHlUSmtZSmlk?=
 =?utf-8?B?QXNObERHMUN2aGloU1NYWjRLb0gzck1abm85c0h0dWdtSnozU0pNUjlYM1JG?=
 =?utf-8?B?a3FtSnRLSkUvMmxzeVZVdTVaemgxRi8zN1BvK1BGY3ZXMXo1K2FLOVZheFVm?=
 =?utf-8?B?WlRoa05UVGQ4dlVTNkpHYnRCM0syVEI1NUx5ZDFpY2tLeXJZYWx6ZGdsWDBv?=
 =?utf-8?B?Qlg1Rmo2VVQrTnArbnMwZSs3Qk4xblhCakZsT3FabFFndVF0OWF1RnVXMWk1?=
 =?utf-8?B?NzFIQ2dPcFZIT0VYL2lrWU5xN0c5M2YvUGthMUpjeUY0blN2NERwRndKRUxn?=
 =?utf-8?B?TnJ0KzFFdXRiSGdSbUFLODVLQzRpY0RGU1JqZk1UMjh4WVlmZ2c0RGJlM2ZU?=
 =?utf-8?B?ZDNHc0pSY2toUFRQajI3RUgwd3FNN0Y2YU0vdEI4ZXc3dVFBbTdxVGZnZ2d3?=
 =?utf-8?B?MzgzYVV2NDhuYkQ1eWVxQmY2Q3YzTUJObFFLNU5Wbmh4VHJCb3NVcFZqZlVt?=
 =?utf-8?B?QUdLakN5NzdGRnhSMWxGV1lxVHNhWCtaT3ZIT1lNdHo5ZTNMd1U3WUNnckY2?=
 =?utf-8?B?WGpYMk1hbE9VRlcvTG5NOU5Lc0ltV2JmTVBzUHBxYWFzaG5OMHp0alYwVWRH?=
 =?utf-8?B?Q3hnVkdzY0xNaVRNOWJJK1BrQitLNllmVnV3MHZxZUlxa3A0N29FUURpaWlS?=
 =?utf-8?Q?P4uoX3wRhUJjWf58Rc0wcKDNJ5ewKU=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(42112799006)(7416014)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?MjlGa3RBYWxSZWNlYk5tWlJBbmVTUFkrSkl4TCtJYTBhN3I0RXp2ZWhOQmJ3?=
 =?utf-8?B?LzVZeDNZd3V3ZVEvVE4zS25WREdJcmRQWnc0c0ppS0IxbHJxSFlqb2cxNE9i?=
 =?utf-8?B?cVFFeDMxQTUySlpLQUJnRUpILzZKM1FjM0VuUk1zRzJYa083aDRRb2ZLckxO?=
 =?utf-8?B?RHpHeldLcDR3RFliUkUzRnhOWU9qTW5LaUdwQ0syWHZDeHF3VExUQitnTHE2?=
 =?utf-8?B?R1BSbEIzaml1ZU9HWHdxVlRoU2dONGVvVHpiU0cxUWs5VTZTNXBFanV6WDV4?=
 =?utf-8?B?dVQwZ21ud2VqOFQyZTZwZzhlRFB6OFV4TVBmaGphR3B3TUxQbFJQcm1zRzdM?=
 =?utf-8?B?MDUraWVvOFJFbHdVQ3hHT3NRaFZoeHBWUUExOEQ1TElNSjdBc3FQUGdON3Yz?=
 =?utf-8?B?Y2lGSGpab0k2anp0ZVR1K2NmUVlxOUdPWFE1eGRxTnR2L2oxbWwyVVBsN0pl?=
 =?utf-8?B?ZXRISVIxL2pBTGw4bXlrQXhsSDI3dmp1WS9LSHFLcXZXOElvTVIzRVEwVzdr?=
 =?utf-8?B?cHAzcmRyK0hWNllIYUJDdkRCUGMzMFN3dlJ1Q2hBNW1EREVHK3EzeGNkSytN?=
 =?utf-8?B?d0NMN3lxeGZiTXhaZ3BqaFkyZWtsbWxLejNUQUpoY3cyN1BDa01VTWxkWXhJ?=
 =?utf-8?B?T1o3VUJPcDJVMVFvM3VZVWZTbjhuM1dvQzFLMHpuQWEvSUNjWU45NDJaNmpr?=
 =?utf-8?B?cVEveEYxU3BFTlN2UWljT3ljZ0ZpbGhDb1laTmR3cGtnam9TRE5idENTMVJ3?=
 =?utf-8?B?aGs3enU3eDVxM1o4aHh6RlhGNVhiS3hvSW1ycVF3TGxucWdyMlpaTVVpbDhX?=
 =?utf-8?B?aHVJYkR5dDlzdnZCUmpPWWtkK2hMVndYTitmcWJ3cERqaVhHMmRQRDZXamd5?=
 =?utf-8?B?SUt2bm1tU2FYZVBucHRUanFDb3ZtUG4xeTg3OUZjODR5MTNKRWF1UXBwcm1K?=
 =?utf-8?B?KzJib3FaSENub29xM2xJZ3hzZmR0WG5NQnVXcXlrWnFUVnBJd3JoaDB5MCtY?=
 =?utf-8?B?b0l4NHR0Z2hJdWJZbXJGNXdxNW4yRDY2UkZ6ODJDeE80UFZMMXhHOGZEa2g0?=
 =?utf-8?B?T004cUl4YWJtVEM2ZmdkaG8zMHZZaDFEM2lhV2Y0UWZnS3FiVFNLRGtQaWFs?=
 =?utf-8?B?eHYyTVUrejd3LzJaOTVTazVOSTk5MTcxRzZDMklkc2tWOGJtbURKd1JUZEFh?=
 =?utf-8?B?cTNoUGF6WnNXUnFleVhETWFlOEhIakxBRzB0U0Fld09zSmJGbzZLOU9wUmd0?=
 =?utf-8?B?VEdXTStiSGNKM3IwSEJELzMxQUlXV2FiQStsWkdlVHpzbWVpKzNyV2llRlVO?=
 =?utf-8?B?a1B6bTVWME5qb0VtazNVYkpUZVYvZ1ptN2ZmUDNjUkxMQjM0UGdaL3pnRDl6?=
 =?utf-8?B?NVJWbDhuR1h3OENwT1VrQnFhWDFEeEVrUUdpbVNueTFtZzQ2K21qUStza1RC?=
 =?utf-8?B?cC9Bb2pvQ2JRTFNmcTNOWjNOZXI3cWZZL0tUbDMvNm1WYXhCSTFUYnByVXNQ?=
 =?utf-8?B?OXJ3MDZ4U2lPK1dpYmZDbW8yYzF6WHh4VUx6VWJZbldnTGxya1ZtWGtiazZ5?=
 =?utf-8?B?TlRJbzR6dTIrTm1CaXFWRk9NU3NBbUVsckZzSGF2c1kwdFVNNDRBYzAxajhM?=
 =?utf-8?B?QkN1ZkhWendFTUhzbW5NN0FVcnlFalZGR2tjTHB3ZHhZeUpacG5EanljSHpj?=
 =?utf-8?B?LzdrZnErYUE0SHYwWWhMQndpREo3c0FQb0NadDlweXR3QzB1MDlsQVlycHRy?=
 =?utf-8?B?Wno5aDJRR1NPNkN3U2lYeWhkSXNCSmdYQVhIQWxtSXhwZkh4NWpOSWE3MWJG?=
 =?utf-8?B?ZFllUndDcXl5ajIzT0prMzQyS1dVYk03NUNUMHBBelpPbWR2aW5UandQNEVk?=
 =?utf-8?B?dmNDT3ViQTRoRXBXUGd6R0dPTmFvQjFhZDVCc2NCblozdDROcWRJQWpyUFE5?=
 =?utf-8?B?S1pqYlc4UHF3cWRxaEI0bG9EOXowTG9ZMS8rZmVnQlJkMzhzSVNsNTM2TFMr?=
 =?utf-8?B?NTZ3dWptY0pGQ3FndlFLQVFrd3lmSUtpV1hLQzg3eWdQWFV5emswMjNDRFlJ?=
 =?utf-8?B?OGFSRnlrVHowT3hKaGhWandhWXBzWXBVNVpCVGtzalQ2VHlaMlgyeE5XRWJC?=
 =?utf-8?B?Z0wxSEJGRWZmekxQWXo2dnRxVmgzVWVXY2FIaHBleXUyVXcxc0RDTEJpcmtK?=
 =?utf-8?B?MEE9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <F0C6A6F0F9F6B04AB975FAB03703C4DC@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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 23c53eb3-4513-47a6-c98e-08ddd4162d36
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Aug 2025 11:49:46.9180
 (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: OlHe9x9X2hP8k6cgxnxtmLTrrRfS/UV0t9Eim3sUQCVuQWkI9oJWEjvQHGZX60GoqK3IX4/Pw+z598NrtW6EohtU0JFYGjs8JNOwyN88erw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR03MB10931

DQoNCk9uIDcvMzEvMjUgMTk6MDksIE5pY29sYSBWZXRyaW5pIHdyb3RlOg0KPiBPbiAyMDI1LTA3
LTMxIDE4OjA1LCBBbmRyZXcgQ29vcGVyIHdyb3RlOg0KPj4gT24gMzEvMDcvMjAyNSA0OjU4IHBt
LCBKYW4gQmV1bGljaCB3cm90ZToNCj4+PiBPbiAzMS4wNy4yMDI1IDE3OjM3LCBBbmRyZXcgQ29v
cGVyIHdyb3RlOg0KPj4+PiBPbiAzMS8wNy8yMDI1IDQ6MTYgcG0sIERteXRybyBQcm9rb3BjaHVr
MSB3cm90ZToNCj4+Pj4+IE1JU1JBIFJ1bGUgMTMuMTogSW5pdGlhbGl6ZXIgbGlzdHMgc2hhbGwg
bm90IGNvbnRhaW4gcGVyc2lzdGVudCBzaWRlDQo+Pj4+PiBlZmZlY3RzLg0KPj4+Pj4NCj4+Pj4+
IFRoZSB2aW9sYXRpb25zIG9jY3VyIGJlY2F1c2UgYm90aCB0aGUgYEdWQV9JTkZPYCBhbmQgYFRS
QUNFX1RJTUVgIA0KPj4+Pj4gbWFjcm8NCj4+Pj4+IGV4cGFuc2lvbnMgaW5jbHVkZSBleHByZXNz
aW9ucyB3aXRoIHBlcnNpc3RlbnQgc2lkZSBlZmZlY3RzIGludHJvZHVjZWQNCj4+Pj4+IHZpYSBp
bmxpbmUgYXNzZW1ibHkuDQo+Pj4+Pg0KPj4+Pj4gSW4gdGhlIGNhc2Ugb2YgYEdWQV9JTkZPYCwg
dGhlIGlzc3VlIHN0ZW1zIGZyb20gdGhlIGluaXRpYWxpemVyIGxpc3QNCj4+Pj4+IGNvbnRhaW5p
bmcgYSBkaXJlY3QgY2FsbCB0byBgY3VycmVudGAsIHdoaWNoIGV2YWx1YXRlcyB0bw0KPj4+Pj4g
YHRoaXNfY3B1KGN1cnJfdmNwdSlgIGFuZCBpbnZvbHZlcyBwZXJzaXN0ZW50IHNpZGUgZWZmZWN0
cyB2aWEgdGhlDQo+Pj4+PiBgYXNtYCBzdGF0ZW1lbnQuIFRvIHJlc29sdmUgdGhpcywgdGhlIHNp
ZGUtZWZmZWN0LXByb2R1Y2luZyBleHByZXNzaW9uDQo+Pj4+PiBpcyBjb21wdXRlZCBpbiBhIHNl
cGFyYXRlIHN0YXRlbWVudCBwcmlvciB0byB0aGUgbWFjcm8gaW5pdGlhbGl6YXRpb246DQo+Pj4+
Pg0KPj4+Pj4gwqDCoMKgIHN0cnVjdCB2Y3B1ICpjdXJyZW50X3ZjcHUgPSBjdXJyZW50Ow0KPj4+
Pj4NCj4+Pj4+IFRoZSBjb21wdXRlZCB2YWx1ZSBpcyBwYXNzZWQgaW50byB0aGUgYEdWQV9JTkZP
KGN1cnJlbnRfdmNwdSlgIG1hY3JvLA0KPj4+Pj4gZW5zdXJpbmcgdGhhdCB0aGUgaW5pdGlhbGl6
ZXIgaXMgY2xlYW4gYW5kIGZyZWUgb2Ygc3VjaCBzaWRlIGVmZmVjdHMuDQo+Pj4+Pg0KPj4+Pj4g
U2ltaWxhcmx5LCB0aGUgYFRSQUNFX1RJTUVgIG1hY3JvIHZpb2xhdGVzIHRoaXMgcnVsZSB3aGVu
IGFjY2Vzc2luZw0KPj4+Pj4gZXhwcmVzc2lvbnMgbGlrZSBgY3VycmVudC0+dmNwdV9pZGAgYW5k
IGBjdXJyZW50LT5kb21haW4tPmRvbWFpbl9pZGAsDQo+Pj4+PiB3aGljaCBhbHNvIGRlcGVuZCBv
biBgY3VycmVudGAgYW5kIGlubGluZSBhc3NlbWJseS4gVG8gZml4IHRoaXMsIHRoZQ0KPj4+Pj4g
dmFsdWUgb2YgYGN1cnJlbnRgIGlzIGFzc2lnbmVkIHRvIGEgdGVtcG9yYXJ5IHZhcmlhYmxlOg0K
Pj4+Pj4NCj4+Pj4+IMKgwqDCoCBzdHJ1Y3QgdmNwdSAqdiA9IGN1cnJlbnQ7DQo+Pj4+Pg0KPj4+
Pj4gVGhpcyB0ZW1wb3JhcnkgdmFyaWFibGUgaXMgdGhlbiB1c2VkIHRvIGFjY2VzcyBgZG9tYWlu
X2lkYCBhbmQgDQo+Pj4+PiBgdmNwdV9pZGAuDQo+Pj4+PiBUaGlzIGVuc3VyZXMgdGhhdCB0aGUg
YXJndW1lbnRzIHBhc3NlZCB0byB0aGUgYFRSQUNFX1RJTUVgIG1hY3JvIGFyZQ0KPj4+Pj4gc2lt
cGxlIGV4cHJlc3Npb25zIGZyZWUgb2YgcGVyc2lzdGVudCBzaWRlIGVmZmVjdHMuDQo+Pj4+Pg0K
Pj4+Pj4gU2lnbmVkLW9mZi1ieTogRG15dHJvIFByb2tvcGNodWsgPGRteXRyb19wcm9rb3BjaHVr
MUBlcGFtLmNvbT4NCj4+Pj4gVGhlIG1hY3JvIGBjdXJyZW50YCBzcGVjaWZpY2FsbHkgZG9lcyBu
b3QgKGFuZCBtdXN0IG5vdCkgaGF2ZSBzaWRlDQo+Pj4+IGVmZmVjdHMuwqAgSXQgaXMgZXhwZWN0
ZWQgdG8gYmVoYXZlIGxpa2UgYSBwbGFpbiBgc3RydWN0IHZjcHUgKmN1cnJlbnQ7YA0KPj4+PiB2
YXJpYWJsZSwgYW5kIHdoYXQgRWNsYWlyIGlzIG5vdGljaW5nIGlzIHRoZSB0aHJlYWQtbG9jYWwg
bWFjaGluZXJ5DQo+Pj4+IHVuZGVyIHRoaXNfY3B1KCkgKG9yIGluIHg4NidzIGNhc2UsIGdldF9j
dXJyZW50KCkpLg0KPj4+Pg0KPj4+PiBJbiBBUk0ncyBjYXNlLCBpdCdzIGxpdGVyYWxseSByZWFk
aW5nIHRoZSBoYXJkd2FyZSB0aHJlYWQgcG9pbnRlcg0KPj4+PiByZWdpc3Rlci7CoCBDYW4gYW55
dGhpbmcgYmUgZG9uZSB0byB0ZWxsIEVjbGFpciB0aGF0IGB0aGlzX2NwdSgpYA0KPj4+PiBzcGVj
aWZpY2FsbHkgZG9lcyBub3QgaGF2ZSBzaWRlIGVmZmVjdHM/DQo+Pj4+DQo+Pj4+IFRoZSBvbmx5
IHJlYXNvbiB0aGF0IEdWQV9JTkZPKCkgYW5kIFRSQUNFX1RJTUUoKSBhcmUgcGlja2VkIG91dCBp
cw0KPj4+PiBiZWNhdXNlIHRoZXkgYm90aCBjb250YWluIGVtYmVkZGVkIHN0cnVjdHVyZSBpbml0
aWFsaXNhdGlvbiwgYW5kIA0KPj4+PiB0aGlzIGlzDQo+Pj4+IGlzIGFjdHVhbGx5IGFuIGV4YW1w
bGUgd2hlcmUgdHJ5aW5nIHRvIGNvbXBseSB3aXRoIE1JU1JBIGludGVyZmVyZXMgDQo+Pj4+IHdp
dGgNCj4+Pj4gd2hhdCBpcyBvdGhlcndpc2UgYSBzdGFuZGFyZCBwYXR0ZXJuIGluIFhlbi4NCj4+
PiBJcnJlc3BlY3RpdmUgb2Ygd2hhdCB5b3Ugc2F5LCBzb21lIG9mIHRoZSBjaGFuZ2VzIGhlcmUg
d2VyZSBlbGltaW5hdGluZw0KPj4+IG11bHRpcGxlIGFkamFjZW50IHVzZXMgb2YgY3VycmVudCwg
d2hpY2ggLSBpaXJjIC0gb2Z0ZW4gdGhlIGNvbXBpbGVyDQo+Pj4gY2FuJ3QgZm9sZCB2aWEgQ1NF
Lg0KPj4NCj4+IFdoZXJlIHdlIGhhdmUgbWl4ZWQgdXNhZ2UsIHN1cmUuwqAgKEknbSBzdXJlIEkn
dmUgZ290IGEgYnJhbmNoIHNvbWV3aGVyZQ0KPj4gdHJ5aW5nIHRvIGFkZCBzb21lIG1vcmUgcHVy
ZS9jb25zdCBhcm91bmQgdG8gdHJ5IGFuZCBoZWxwIG91dCBoZXJlLCBidXQNCj4+IEkgY2FuJ3Qg
ZmluZCBpdCwgYW5kIGRvbid0IHJlY2FsbCBpdCBiZWluZyBhIG1ham9yIGltcHJvdmVtZW50IGVp
dGhlci4pDQo+Pg0KPj4gVGhlIHJlYWwgcHJvYmxlbSBoZXJlIGlzIHRoYXQgdGhlcmUgYXJlIGEg
KnZlcnkgZmV3KiBudW1iZXIgb2YgY29udGV4dHMNCj4+IHdoZXJlIEVjbGFpciByZWZ1c2VzIHRv
IHRvbGVyYXRlIHRoZSB1c2Ugb2YgYGN1cnJlbnRgIGNpdGluZyBzaWRlDQo+PiBlZmZlY3RzLCBk
ZXNwaXRlIHRoZXJlIGJlaW5nIG5vIHNpZGUgZWZmZWN0cy4NCj4+DQo+PiBUaGF0IGlzIHRoZSB0
aGluZyB0aGF0IGJyZWFrcyB0aGUgcHJpbmNpcGxlIG9mIGxlYXN0IHN1cnByaXNlLCBhbmQgd2UN
Cj4+IG91Z2h0IHRvIGZpeCBpdCBieSBtYWtpbmcgRWNsYWlyIGhhcHB5IHdpdGggYGN1cnJlbnRg
IGV2ZXJ5d2hlcmUsIHJhdGhlcg0KPj4gdGhhbiBmb3JjZSBwZW9wbGUgdG8gbGVhcm4gdGhhdCAy
IG1hY3JvcyBjYW4ndCBoYXZlIGEgYGN1cnJlbnRgIGluIHRoZWlyDQo+PiBwYXJhbWV0ZXIgbGlz
dC4NCj4+DQo+IA0KPiBJJ2xsIHRha2UgYSBsb29rLiBMaWtlbHkgeWVzLCBieSBhZGRpbmcgYSBo
YW5kZnVsIG9mIHByb3BlcnRpZXMuIFRoZXJlIA0KPiBhcmUgc3VidGxldGllcywgdGhvdWdoLg0K
PiANCg0KSGksIE5pY29sYS4NCg0KRGlkIHlvdSBoYXZlIGEgY2hhbmNlIHRvIHRyeSBjb25maWd1
cmUgRWNsYWlyIHRvIGlnbm9yZSB0aGlzIG1hY3JvIA0KYHRoaXNfY3B1KClgPw0KDQpUaGFua3Mu
DQpEbXl0cm8=


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 11:53:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 11:53:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070410.1434038 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujGET-0001kk-DP; Tue, 05 Aug 2025 11:53:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070410.1434038; Tue, 05 Aug 2025 11:53:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujGET-0001kd-9T; Tue, 05 Aug 2025 11:53:29 +0000
Received: by outflank-mailman (input) for mailman id 1070410;
 Tue, 05 Aug 2025 11:53:28 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=L9Xd=2R=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1ujGER-0001kT-Uv
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 11:53:27 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cc18ba1f-71f2-11f0-a321-13f23c93f187;
 Tue, 05 Aug 2025 13:53:27 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by GVXPR03MB10931.eurprd03.prod.outlook.com (2603:10a6:150:217::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.13; Tue, 5 Aug
 2025 11:46:43 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.8989.018; Tue, 5 Aug 2025
 11:46: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>
X-Inumbo-ID: cc18ba1f-71f2-11f0-a321-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=IcTJNrMNkihHIwLp4FzrEQLxsQScUb1fkVWpB0bY2Sh7IkUnOz3w6TkIxOZ31whWxg5W53mwgRSIQXp+A1cbWDQcmRKa8mIcygqaunsLanJFy1f+XkpXMfPBqXFilp9nheBwazCPjBTBJqcQ25On2PUtjKpF07O9Ch9+FxzDjmkYlD0/RHwYwzF8s9+gfgZt884ZJJQlRcf+m8BTQgihJU4fGt8WZRR58hphLCNmfqHcnfq0crNVvd4L326mgvlfdLqIT0POyCRF9BV0JJqI8AH0FdHNRF2r212Jf+RejxwBl1sZjrhVBsR8oeJ2VhsW3lGsSyXakO9MciH7hg86NA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+XFxl0p7WqvW6dsnhOQFeWIJBDpElqTY5n6pcYajung=;
 b=hBpjDoR7yg+f2NWqfF2BiPGRG+NY98MZyma6kcFJ63VaJZYrlWTz2MFJ/Kj+n9sCJ3LDXJLrYdlqH9YdVflPW9NkzFea+TEQRI/5XtU7lzchTaS0zHWW4vKDk8whb/K2ujNB4bknFkQMhztnztGhRKNMbzydlSEOaExQpN8yn0v7U5gsn1TzjCg14PEuE2hCYdeF2NJU+zL4sMDVSmlrW5SsTYMhby5mefOP7gvh28oaCip6EhL3epX/JU/ZdIyMzcCpWjYeJfw+UiftmfHZhF6VX56nq2dm82SBZPpPdN63HyJ5jMPpc25RoV7z0X8H43tHqo2RlF1ZYSwlY+xpww==
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=+XFxl0p7WqvW6dsnhOQFeWIJBDpElqTY5n6pcYajung=;
 b=bg2VGkmjO9zeqnxTPIEnsoYXJfCD5wIqhAM2bVrDIoTzymkVpMEwnY77FCqAvBxBp6cqmTwGfcR3KOtv4Cq+cFCgC+qATYd8DLgXzCp6adAZpkbyDJ/47fx1rETGoU1ywQqYMgDg7DcVnGmMpieqrse0O3dybGU5lI4E5hB0gGIKxY1DLYi1fLeOpHoqnZkzMUG1/A4lDgUID9hhWkL6O4divsxNFBxprPLlCu+iJ3zbnXvXLWKs8Xiums7DNmAEiaz5TZvJF2M+0BfzS8gNGtP5YWjL5HStCnyRAwmUTzyk6LJcQ7eIdM7e8uRs46kc7Kk73X67cKez4k6UXrFkXw==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Jan Beulich <jbeulich@suse.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>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] misra: remove default case in single-clause switch
Thread-Topic: [PATCH] misra: remove default case in single-clause switch
Thread-Index: AQHcBWXfPSyq9APrf0Os3CWQrCUztbRTt4iAgAA65QA=
Date: Tue, 5 Aug 2025 11:46:42 +0000
Message-ID: <40ac0012-d396-4d6d-9931-7aa3b8366e9e@epam.com>
References:
 <725ec86ac1aa883c35fb30b8f226c95cbe0934e9.1754322299.git.dmytro_prokopchuk1@epam.com>
 <321d07ea-1688-4036-a031-37c46dab5c15@suse.com>
In-Reply-To: <321d07ea-1688-4036-a031-37c46dab5c15@suse.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV2PR03MB9572:EE_|GVXPR03MB10931:EE_
x-ms-office365-filtering-correlation-id: b066fadb-4bd6-45b3-34b2-08ddd415bf91
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|42112799006|376014|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?OXp1bzZUbDRRN0FmQlEvMjc5T2RsMDhrbExUVlYwNW5xa25Gam53ZVFKTGNK?=
 =?utf-8?B?WmRNbmlnS0tYMC9uV0FmQ3FoTG9vSUJPWE4vYjkyemtjTVNveTRjUk0rOWpN?=
 =?utf-8?B?enoySEVWajA3RmZqaWNQL1ZLTnFXZDlmUHRBTWRmLzVzWlJyY05jenVJMW9Z?=
 =?utf-8?B?L0dkblVBNktzK2czUVNvUWlxRzAvbVhuZUJtb3AzaVNEM01jcXQ4KzhWM1RE?=
 =?utf-8?B?bFFkZmNZYmYrRTU1RVlyVGV2enFJWFRVS3owOXkwRlR6ZmdCaVE0ZmI3Nno4?=
 =?utf-8?B?Rnhhak1HSEZxUjBvcHZ4Z2JiSUdpdi9vYU5iQjkybFRKRGljT2Yvb01VOXhn?=
 =?utf-8?B?Z2kvUzdPN3diL3ppemcyVUU5Zkh3bWdndjg2Ym1ZdTZueEVVNFd1OTcvSFZI?=
 =?utf-8?B?ODdZTVRNekJDaWRVSjNqNzNkVitlZHU4V0EwblpCVjg3bmpWTWhDbkdRWDh2?=
 =?utf-8?B?RWhGOEZnUjJ3S1pxQ3hKdFNia0paYTBSMWhFcWpxVmZNZVY0MmJTaTFvMlFV?=
 =?utf-8?B?OUFRK3NhVDNSRUUybGFYWkxaMGhBSm9FZ05tRVdUdlQyNU91VlBZT2ZHQTl6?=
 =?utf-8?B?bzFzY1RDMENWdWpNWUpiNllJR2t2VXJBdWNVOGV0NlBEWncyRGo1RkxJdldB?=
 =?utf-8?B?YTVDZHlkb1NkeTlJUnowYkRYYUFEckhKQlBuN3RxeVd4Skc5L0VzZUZocTBH?=
 =?utf-8?B?R2Y0c0hOL0k4WWVaRjRQaThJZitQZTVvVUJicTlIVi9sWnpOaEtqSStLYlZk?=
 =?utf-8?B?WmZZcjVkUzhNVGdDSjRRaW1GeEJxOXNYemo0VGdzUjl3TjR3RVpaL3JOUGxY?=
 =?utf-8?B?VjZpU1N5dmdsY1BmWTNjWnR2VlNmWC93VGlaZkwzMFVXbCtuZ3VtY3hObWd4?=
 =?utf-8?B?Q3FQcXlWeVk3RkNWWitmQ1EyUkF3Q1kxN1hPOHJvbUM4UktTTUF6WVJWbjB6?=
 =?utf-8?B?L3h0Uno1T3BaUTIzWW1nSVpYZjRBMGtvODY1Tm1GMHZ2ZWFWQjd1aVo5V090?=
 =?utf-8?B?MjBoT3c4Wjc4SldLV2N6N0N5K2N5SzNIWWtoUnZ1ZEtKM01BY3VwSnhMMFl5?=
 =?utf-8?B?dlpVNjJsS0NBeDhxSktBVm94M1czKzExbGRCUHJXbzAxL3l5OHg2UmtSRDB2?=
 =?utf-8?B?Sjlhb0x2UXhHNjdtUjYyaEFjc2QxM3AvcEFoSEM1dkhFZ2hkTmpSQlVQUG1k?=
 =?utf-8?B?S2RUN3NDalYvRTJ2L1J2ZVFhaFZ6SWpncWl2a1VERFNISlFFeGEvdUJjL0F0?=
 =?utf-8?B?Z3dqSHpOY29hVnE0bE9VTmMxOGlnQ2lZMExlc2hOU2J4aVRKR3p1NTBMRXNz?=
 =?utf-8?B?OFJMMm5TMWFEbkVrVUFRU3ZIbzdMV3IrYWlyZWwvVDErRE8xN1Mzc2c0ak9j?=
 =?utf-8?B?emRodnJsalQ2a05jcS9naVkwTk5VZmdQaE1kREpxSkJBQnRIWThJNGMrYjNp?=
 =?utf-8?B?ZFk0c3QwT0l2WXBqbjN1Vnc4bEU4TitNcTk2c2ovQm1IQ2FwSFNSNExDM2dp?=
 =?utf-8?B?andiUXJZV3JDVGFFNHJLRmduLzN1c3ZXUGtyc092NituUWJVSHlOaXJzSWov?=
 =?utf-8?B?dzFIMTAwYmJBSHBZNFl6UllJNm5hT2ZtQ2VNUFNoQnZId0t2bk5jamVnLzF0?=
 =?utf-8?B?dHJsZE5PWDBRNUp6dWpRYkFnWWVXYW1PVnJCOFhuSjViNktSbEdXanpjVlRW?=
 =?utf-8?B?bmtVZ2VvOUlZdEVzMDJCOExOa2s2SjAzNXluaHFiTGVkSUNnVmdseDFJTDdT?=
 =?utf-8?B?WWhnSkE2MnBSbnhCbkJRcXJTakxpSmlQcGhGalNzV25TMTBBSVMycmVTSzVq?=
 =?utf-8?B?WXJSTGZEdS9Cam50RE44UTg2TTBrVURqWU9kd0tOeE5KT0hObHNlNTlDYWo1?=
 =?utf-8?B?RXNHUWdNWFAvRnkyUTcySXV1SVovdjRzWFdTQlJtaHJZU2pwWFFoZGhHQmpB?=
 =?utf-8?B?MFVjRHYzNXdNMUhzQWNNZHZ5a0ZQUVZ5bmtTcVYzbVJCVFM4dTlMUHdXRGVG?=
 =?utf-8?Q?8lVx+6gULAsm7PVOfmQgmFll8fV5c4=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(42112799006)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?azBrUGFiRVFISHFLUzBmQVFyVDcwTU13YlRxK2VGaVFISEl4YXVCVVFnTW9S?=
 =?utf-8?B?SU14MHhzandxdVkvMEFKWkJwRG4rcTN1RzRFTFdoMGNlTU5ScWplUytheWZZ?=
 =?utf-8?B?WnZ6R1ZjZ1AzUjFRYXc1Y0hUSXB5MGNzRWJlQzhLQllENyt2M1FkbG5BNjF2?=
 =?utf-8?B?ck0wYkt3R21oL0FhYnduMFV6T1VJVmFjL0FQaDhrUXppTVgzaHZkWHU4TEpR?=
 =?utf-8?B?VExEdGptRmFjSWlyTEx3ajJ4L2xKNHZWVXdIYzdJZFRCMSs4UmVVVGQ4L043?=
 =?utf-8?B?dVNnamU1VXNvU0ZMelVmUUNZK2lYdFJGaHkwOVdFdEZQT25KWG1IaXNiaHlJ?=
 =?utf-8?B?OVYrbldrRnIrYUhzaXJOV2lNZ3hkb3FUaTZSeGFYV1RTS2sxV1U1SGdKUFli?=
 =?utf-8?B?Z3hUVFp4Qk5aK21BM0FkWE1nU3RydldHeGRCWDlpQk9YSUp1WmpzSHlPN2w4?=
 =?utf-8?B?SHhXMm1oSEl2TGg3eUllMDkzNlpxaHVkZS9nc20yNGE2Y0EvTE1BM1RIa0NY?=
 =?utf-8?B?WEQzL2x4ZEFJOUNQdE1UL2NnaHI1UXlMaXYxbkNtNmNTNnlDcWhvbjMrN2hH?=
 =?utf-8?B?cTZNNUliR2p3MDU2cHQxQ3NZckJRTm5zOHROTDVPaHRDVlExTW9pVWp3N1lF?=
 =?utf-8?B?TFh0M2dOdjJxekhqQnBRa25hZTZmMlQrL0lOaWdQUXpIMjVxcytPZEpYZzcy?=
 =?utf-8?B?bEpXeWR1WG1LL3B0SUxqRTZRcXNseFJmUXdWdkRoUFplTW1pM3lnbDM2TmZD?=
 =?utf-8?B?dGU0cUtkZHlNdTJsRGZxUE1jQzMyWDBXak53VWJJSFkxNUpveDMveWhjZ0lV?=
 =?utf-8?B?QzQvUDhTNEtyTEo2cVpBczFVYnd2amZSTUN6VEZ5QS9MSnlTQTJDN0t6ZUk5?=
 =?utf-8?B?a3JsUHVkajlaa1J0VmJBbFBFMmZBS3NhWnNvTkY1YlhudkJsQ0Zwd1U4UjNW?=
 =?utf-8?B?MzNkUzFPOWJHcDFPeFBvdXhIREZtakZxMFVLeGFaUlJOZ1djcG9kUWZmSGIv?=
 =?utf-8?B?bXdiSkdPTDR6L0pCeHIyOUdOekNmby9aT2Y2R2hYN2xNUVFSTjgvdmV0L0JP?=
 =?utf-8?B?aTlKL3pZOER0aXdlSEgxYXR1VWxTdThJS2lleWF2Q1VXcUs2dUg2clVzb05z?=
 =?utf-8?B?YzRiWS8vQlhyUXhtT2p3cUp3bEtwQm8xRzB3OXVIV2lQTXZhZDJYK1dNVG5T?=
 =?utf-8?B?RVpVdktvK3FhUXc4MituUjdZU3hidW1RUGZLWUtzbHdhR3BBeDI3a04xUmY1?=
 =?utf-8?B?aWE5T0g1Zi9wTGV5dTR5RU1QUGNNaTZ4THdXNHZVUnFUNE5udzFhUzRycGMy?=
 =?utf-8?B?Z1hnZThTb21VVStXTUtFa1NEd21TWkJrajNURnR2dXF5R3lJMlUrRzRqNlNR?=
 =?utf-8?B?RGlKSXltN2hTMngwMkJFOUxucEZKV0Q3emFtNFgwMUo0MWREMmNLcDczblND?=
 =?utf-8?B?TFVjMnVsWi9BVzkwZE1nSUVuaW1oLzZDdmF6ZEs2OHNUcGZHL2JZUmIvYzd1?=
 =?utf-8?B?UFRXRnpheEMvbDdMWkFQTTBiYlRTNkdzV0t2WUJtcis0bGJEcGJwaVdQelMz?=
 =?utf-8?B?ZWZyOFlTN1N1ZWFQdmNEeE9DN0tsRGZWYWhWZ3ljMGxlZVRETVFFaWQxOE0r?=
 =?utf-8?B?TnBFY1JZcE1wZzBtb1NRQWZNSERMMmgxRHd3NTRWVFZPTHdEaXo4djZmaDlX?=
 =?utf-8?B?M0NCY3l3RjNZb0N4V0hNUjBoUWkreWcvWkl4N1FCbzJnVjhQUWtRdWhaQ2lp?=
 =?utf-8?B?dTJoWXQ2b1FtZnNhVzZURm8vd2xaL1Nna1Z2bUlzMFhtWm9FdFVDU0ZHYkRi?=
 =?utf-8?B?bzNjUlQrZU9YSmFuVjh5cXdscEZZdDI3VUpBWm1aQ1JhWk51NDVZbnV0dWpv?=
 =?utf-8?B?VFNaTnNxN1Z6dlVtRDRsSytvSFFBRnYzbENaU3hydHNaS05raFJ6M3lXYXB6?=
 =?utf-8?B?eEUxK2NzOFB6OFlWNWFhQzRjT013Y0lsUG5oTFpqMjZaUThUczA5U3RRSERP?=
 =?utf-8?B?MStqbFZuTUNjeGpkanZ5c09rN2VsTFNlc0lwdElPTHdBUlUxcGJGYUtPUTdZ?=
 =?utf-8?B?Z28yUktWNFhEN3d1REEzejQ4TDdOSk9mdXRQb2tyQllzYjJuNml0MVBOUVhl?=
 =?utf-8?B?eWwvdXdwdStsZThxQ1VSSGh4R1RBbWltVW8xd0RSSUh0MWtMamhKWTlnUUhn?=
 =?utf-8?B?VVE9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <6DDBF328555DAF489A2E088E90E394C1@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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b066fadb-4bd6-45b3-34b2-08ddd415bf91
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Aug 2025 11:46:42.9654
 (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: n+mb8jHNMYrg14okHPzsAAY1yNCVPTZK4WA2XHTrD7q0r9JdKH/fP5UJb0ZJE7ZkyqGa+7yRHRMFjwTTlumQ0oUxspTf5ZRj3evtI2xdQBA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR03MB10931

DQoNCk9uIDgvNS8yNSAxMToxNSwgSmFuIEJldWxpY2ggd3JvdGU6DQo+IE9uIDA0LjA4LjIwMjUg
MTk6MzMsIERteXRybyBQcm9rb3BjaHVrMSB3cm90ZToNCj4+IE1JU1JBIFJ1bGUgMTYuNDogRXZl
cnkgc3dpdGNoIHN0YXRlbWVudCBzaGFsbCBoYXZlIGEgZGVmYXVsdCBsYWJlbC4NCj4+IFRoZSBk
ZWZhdWx0IGNsYXVzZSBtdXN0IGNvbnRhaW4gZWl0aGVyIGEgc3RhdGVtZW50IG9yIGEgY29tbWVu
dA0KPj4gcHJpb3IgdG8gaXRzIHRlcm1pbmF0aW5nIGJyZWFrIHN0YXRlbWVudC4NCj4+DQo+PiBI
b3dldmVyLCB0aGVyZSBpcyBhIGRvY3VtZW50ZWQgZGV2aWF0aW9uIGZvciB0aGlzIHJ1bGUgaW4g
WGVuOg0KPj4gJ2RvY3MvbWlzcmEvZGV2aWF0aW9ucy5yc3QnOg0KPj4gKiAtIFIxNi40DQo+PiAg
ICAtIEEgc3dpdGNoIHN0YXRlbWVudCB3aXRoIGEgc2luZ2xlIGNsYXVzZSBhbmQgbm8gZGVmYXVs
dCBsYWJlbA0KPj4gICAgICBtYXkgcmVwbGFjZSBhbiBlcXVpdmFsZW50IGlmIHN0YXRlbWVudCB0
byBpbXByb3ZlIHJlYWRhYmlsaXR5Lg0KPj4gICAgLSBUYWdnZWQgYXMgYGRlbGliZXJhdGVgIGZv
ciBFQ0xBSVIuDQo+Pg0KPj4gVGhpcyBjaGFuZ2UgcmVtb3ZlcyBlbXB0eSBkZWZhdWx0IGNhc2Vz
IGluIHNpbmdsZS1jbGF1c2Ugc3dpdGNoZXMNCj4+IHRvIGF2b2lkIHZpb2xhdGlvbnMgb2YgdGhl
IHJ1bGUgd2hlcmUgdGhlIGBkZWZhdWx0YCBjbGF1c2UgbGFja3MNCj4+IGEgc3VpdGFibGUgY29t
bWVudCBvciBzdGF0ZW1lbnQuDQo+Pg0KPj4gU2lnbmVkLW9mZi1ieTogRG15dHJvIFByb2tvcGNo
dWsgPGRteXRyb19wcm9rb3BjaHVrMUBlcGFtLmNvbT4NCj4gDQo+IEl0J3MgYWxsIENQVSBub3Rp
ZmllcnMgdGhhdCB5b3UgYWx0ZXIsIGFuZCBpaXJjIHRoZSBvdXRjb21lIG9mIGVhcmxpZXINCj4g
ZGlzY3Vzc2lvbiB3YXMgdGhhdCBwYXJ0aWN1bGFybHkgZm9yIHRob3NlIHdlIF93YW50XyB0byBh
ZGQgY29tbWVudGFyeSwNCj4gY2xhcmlmeWluZyB3aHkgb25seSB0aGUgZ2l2ZW4gc3Vic2V0IG9m
IG5vdGlmaWNhdGlvbiBuZWVkIGhhbmRsaW5nIGluDQo+IHRoZSBwYXJ0aWN1bGFyIGNhc2UuIEl0
IG1heSBhbHNvIHdlbGwgYmUgdGhhdCB0aGUgKGF0IGxlYXN0KSBvbmUgY2FzZQ0KPiBvZiB0aGUg
cG9zc2libHkgbWlzc2luZyBoYW5kbGluZyBvZiBzb21lIG90aGVyIG5vdGlmaWNhdGlvbiBzdGls
bCBpcw0KPiB1bmFkZHJlc3NlZCAoYW5kIG1pZ2h0IGhlbmNlIGJlIHdyb25nbHkgaGlkZGVuIGJ5
IHRoZSBhZGp1c3RtZW50IGRvbmUNCj4gaGVyZSwgaWYgaXQncyBpbiBvbmUgb2YgdGhlIGZ1bmN0
aW9uIHRoYXQgYXJlIGJlaW5nIGFsdGVyZWQpLg0KPiANCj4gSmFuDQoNCkkgdW5kZXJzdG9vZC4N
Cg0KVGhhbmsgeW91LCBKYW4uDQoNCkRteXRybw==


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 12:11:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 12:11:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070433.1434047 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujGVs-0004tO-1l; Tue, 05 Aug 2025 12:11:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070433.1434047; Tue, 05 Aug 2025 12:11: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 1ujGVr-0004tH-VR; Tue, 05 Aug 2025 12:11:27 +0000
Received: by outflank-mailman (input) for mailman id 1070433;
 Tue, 05 Aug 2025 12:11:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=j2i0=2R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujGVq-0004tB-8u
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 12:11:26 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4e246c69-71f5-11f0-a321-13f23c93f187;
 Tue, 05 Aug 2025 14:11:24 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-af93381a1d2so629246566b.3
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 05:11: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
 a640c23a62f3a-af91a0def2esm875648366b.61.2025.08.05.05.11.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Aug 2025 05:11: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>
X-Inumbo-ID: 4e246c69-71f5-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754395883; x=1755000683; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=48uvMbWr2Eqpw/rQqx7V5062XkF17igkPHHZwRWSEWA=;
        b=GpIw00eewVohJ1jHHVtMf/xhMUY8vywDbUaDGpN25wO5Mgp43Q20qTBBsiHFbbp22W
         PdBHBsJEXEHIv8x68wFBkFoDHjOwtr31STOPnotN6vM3Pb3+fYYroebZRRYzDwC2JgdK
         Wj1fVgcdFL8AVkRD96w49RYe6tjekqbMCjAdeWu2prhTzxGNnGiWUXanpWVvZsuXL/h9
         PvytIxeBq8p9f1qhvm+URHGoIOsPasgIS/3jIL1XhFHCbt9reNfC4YQq8aAnfLYwZq8U
         mtdOh/+AsWXdGfTdSrTMs12XoN5Kzvqf3awZx/fVO+3XxY1GakXWgh/CXCDszB5UtMhq
         vmbQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754395883; x=1755000683;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=48uvMbWr2Eqpw/rQqx7V5062XkF17igkPHHZwRWSEWA=;
        b=B70VnP/Q+JZXlrTEU3WTvP9M/++Cw+aP583uXIWDswoEFboSAmUWdBpYrWBYEdlRrC
         Tf2uuooJRbpAWXdOrkJVVHCfLUZxHqh3kxBjrLXxpaGZsj3v+Vd9EDLRscyHi3hmggjQ
         HxMY6uTr7nEsxTaSUW10Cm4pXFvHNQr5fGBCjFUb8VKKcul+ZYk+LhN2WCkyy+P2usnK
         WKOFH72745+0iJ/ojV0bd5zGTm758rCGSgKusRcws0/2CllWBaPIBH2f2Njfhppjdz9+
         V8rxxKuFiW/IDc3Bn3kmP+4VeS1P0l4Xp1jkRjghktqUH+FStwkYnnsL6618rtpGI5+F
         n+5A==
X-Forwarded-Encrypted: i=1; AJvYcCWx8yBWn+xgVYpzrPh6N01ExRUpL2cpkmANs2ufxhSUsS5B/rg2ZcMnNrBuvNU6+eE8Y1+ARTw91Ys=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxGTvqpmhc+37XTsCsBBSqVw0Mq/3eeuMprAHudV8Ei3oyI4wfN
	X5zIYiRmPZJxAu2Ml3lFo6Fj6qdnIvKa1OMN99AFJj+v25/n0qOpefpioAflEAuDsg==
X-Gm-Gg: ASbGncv7d0vrIqCSRb/VtI3Uq0lZGlaQffyEZxw4QyHhqXNWsMhMZM4DKS++1mStQe4
	7HmsEkCdLIrMXTtb77XmzijzTIpaNmMauxCaINXj4qU7k3TPNKZGyy6otBkVELOLQt9lxcJVdDU
	1Mfzfx6GkAM3usQyrhjgOaRILUiaPJZ7LqB5btF59sJUoyXfUiqHm4pDjZVZopAiDI2W5nalyaM
	xGmHWMP5vgSF7ZkSghnK/FKRIzgLGHUU+iu+vQ9uekaDs0xV85K9lCoXM4Fmpde7RLvFGqyfybI
	x7+p777pHpmH3Q7AwI+hWwLaWb586wPxzysknn+gWFAlstUW17VEsTBTP7pLlpnVPYVnpihFgZj
	rTRVRuSji/yGYNHLCKBoduQujQfI5tcfabjgdE0OrJbKSsgu0Mbv3KnuCHIxdpFvR5seV8lhUQ+
	e8KNYYWw4=
X-Google-Smtp-Source: AGHT+IFGOTIwatLiFtf750sG6ge8Sy9UW56dQB1vOON2wbeFhFVooUiFfC195Q550fiL+SWN51Gd6w==
X-Received: by 2002:a17:907:d86:b0:ae0:c976:cc84 with SMTP id a640c23a62f3a-af9400a94a6mr1316212166b.24.1754395883536;
        Tue, 05 Aug 2025 05:11:23 -0700 (PDT)
Message-ID: <c077b195-171f-458e-b8df-644b37d50dfb@suse.com>
Date: Tue, 5 Aug 2025 14:11:22 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 4/8] pdx: allow per-arch optimization of PDX conversion
 helpers
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>, xen-devel@lists.xenproject.org
References: <20250805095257.74975-1-roger.pau@citrix.com>
 <20250805095257.74975-5-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: <20250805095257.74975-5-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.08.2025 11:52, Roger Pau Monne wrote:
> There are four performance critical PDX conversion helpers that do the PFN
> to/from PDX and the physical addresses to/from directmap offsets
> translations.
> 
> In the absence of an active PDX compression, those functions would still do
> the calculations needed, just to return the same input value as no
> translation is in place and hence PFN and PDX spaces are identity mapped.
> 
> To reduce the overhead of having to do the pointless calculations allow
> architectures to implement the translation helpers in a per-arch header.
> Rename the existing conversion functions to add a trailing _xlate suffix,
> so that the per-arch headers can define the non suffixed versions.
> 
> Currently only x86 implements meaningful custom handlers to short circuit
> the translation when not active, using asm goto.  Other architectures use
> generic macros that map the non-xlate to the xlate variants to keep the
> previous behavior.
> 
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

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

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 12:28:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 12:28:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070440.1434057 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujGmJ-0006yO-Cz; Tue, 05 Aug 2025 12:28:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070440.1434057; Tue, 05 Aug 2025 12:28: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 1ujGmJ-0006yH-AO; Tue, 05 Aug 2025 12:28:27 +0000
Received: by outflank-mailman (input) for mailman id 1070440;
 Tue, 05 Aug 2025 12:28:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=j2i0=2R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujGmI-0006yB-3W
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 12:28:26 +0000
Received: from mail-ej1-x62e.google.com (mail-ej1-x62e.google.com
 [2a00:1450:4864:20::62e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ae76525e-71f7-11f0-a321-13f23c93f187;
 Tue, 05 Aug 2025 14:28:24 +0200 (CEST)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-af8fd1b80e5so935171266b.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 05:28: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
 a640c23a62f3a-af91a0a396fsm906642366b.42.2025.08.05.05.28.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Aug 2025 05:28: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>
X-Inumbo-ID: ae76525e-71f7-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754396904; x=1755001704; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=2dILoKVZw5TTo0oIiaOohymGY2Ci/GHh64XXIotbLlw=;
        b=BpASL/JiSbxzAfvX0wtUKqTCj/9ThPFk6mOR7TzG6xaZ/M+/z+MxlDehDBqcs44HEG
         Ri9HccW3Us1hmDAHA8zY2HM6g43MTD3sD0+V/XuThGzEyKIn8TKmxAzmXWN7MCJbRQqh
         7cjvLqZP0S7nhSrhv2qUeub80QUhSczLilh3x9TnsLse+zgEQwDclEsCy5U8VJFcGpt9
         zjEl2gAqeZ75Sn8mfJL6bnxor8sHnWLdMTWK7S05bflfacR5NQ+ZNAtURDYzKDZw7DQc
         onMZZ3Q0DaRUgo35t8nfcfi1lAPecDMZGF0pp9H6JlKqN26mKr27C7OEC1v1iL12n5qR
         PL/w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754396904; x=1755001704;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2dILoKVZw5TTo0oIiaOohymGY2Ci/GHh64XXIotbLlw=;
        b=tRxB5dMtX7kePI1WFu7XupITRPpebsH9vsy70PeDHYf/2HVkPVuBueM7YpkYpCjAcQ
         aRtDPX3kPziiR3kYdow5Xv5B/Jz2V0FF0gZ5qVbQrXPX9a5ZXnBdPRx+slZDh0ht2GiU
         bBFhfMkZMVyYfAx06f6jFiZ6OWSJmPkz5taUcrin86Iol8E3A/DNaUFkBJWFElaBx7Di
         MKtnFiRtwdajvO9uBlTGgEajDeU/BL6rFu9oqfFpP1Dql93Ccv0jLhcRMZ3KG2gb317m
         r2a2I/FNTLuNY5BctPdyiCsDdop+XKpGF8QkwrIBwrK7fJd5HIXeMOcGuUG7ucb6Wmyf
         B+mQ==
X-Forwarded-Encrypted: i=1; AJvYcCVH3/pXAl6CbkHKT+oAMcU2UpdypnmjBtEYshW4ASnZZju7hNvH5m0WiuUC+tKIAyc2A5VY1dwUgt4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YygRL4tAVAGygxmHlsxdWwRG+SwJ6dyfOiERhxYeP4kB7hTAHSe
	5Mv+HYH56YX4utWNSTrRD2cjl6aD1/y12WpHTYGMNIhpJkd+NyupVSp08quwVq/TAA==
X-Gm-Gg: ASbGnctYfzYQQlEdWTctZepAiXv0MtYLFCOaV/KQrAg9oUBobde6vaPjysOe9GWbDO1
	TR8GmkJbWnliZI4hk6+3vyNEaG5A0ItnMDfoynHgDGg8RSqPklnN+KL9xCoeAwTVIvt01IAqKiL
	IexRhN3aPhlm7xcHPbJlp9limMeq+3vo7TeESzzRiPwU2r8HDTBl9DpEUVxrQjusQuNNHiZcCZR
	jCKJIdHp04mYB3Wk/ayBb7etADiTVFqxTmxkPybM6RmXODjVwlgDlmVdy9kqK8MngYJ8CMme0Lf
	tbq4VjNtdP1rWFQymgXInmpbKrtl4SNj4c2N8SlKFFMLnZESZMTIpCf/JcFxe9qoyxIvqbvU5RL
	02kJiULyRodlZKlbn2/z6iYk5ALEWpIHxXxNJAkGZXC2RRPSz7WFS9gasS8OT3nk1TuKBAy92w2
	y4ikxNch0hYnV+d8tABg==
X-Google-Smtp-Source: AGHT+IH9cltE5RJWEcrG6RwjH0DwqcVqFIfmq7UWLLQpXeHD2Z4QuIPIIKa3Yajevuhrq6buqSfn8Q==
X-Received: by 2002:a17:907:2dac:b0:ae3:6705:8918 with SMTP id a640c23a62f3a-af940211a3emr1390422766b.49.1754396904065;
        Tue, 05 Aug 2025 05:28:24 -0700 (PDT)
Message-ID: <50aa7098-3777-43b2-8217-0b836a3c8879@suse.com>
Date: Tue, 5 Aug 2025 14:28:22 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 7/8] pdx: introduce a new compression algorithm based
 on region offsets
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>, xen-devel@lists.xenproject.org
References: <20250805095257.74975-1-roger.pau@citrix.com>
 <20250805095257.74975-8-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: <20250805095257.74975-8-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.08.2025 11:52, Roger Pau Monne wrote:
> --- a/xen/common/pdx.c
> +++ b/xen/common/pdx.c
> @@ -24,6 +24,7 @@
>  #include <xen/param.h>
>  #include <xen/pfn.h>
>  #include <xen/sections.h>
> +#include <xen/sort.h>
>  
>  /**
>   * Maximum (non-inclusive) usable pdx. Must be
> @@ -40,6 +41,12 @@ bool __mfn_valid(unsigned long mfn)
>  
>  #ifdef CONFIG_PDX_MASK_COMPRESSION
>      invalid |= mfn & pfn_hole_mask;
> +#elif defined(CONFIG_PDX_OFFSET_COMPRESSION)
> +{
> +    unsigned long base = pfn_bases[PFN_TBL_IDX(mfn)];
> +
> +    invalid |= mfn < base || mfn >= base + pdx_region_size;
> +}
>  #endif

Hmm, didn't notice this earlier on: Brace placement looks odd here. I think
they want to be indented by one level, as they aren't starting a function
body.

> @@ -294,7 +308,245 @@ void __init pfn_pdx_compression_reset(void)
>      nr_ranges = 0;
>  }
>  
> -#endif /* CONFIG_PDX_COMPRESSION */
> +#elif defined(CONFIG_PDX_OFFSET_COMPRESSION) /* CONFIG_PDX_MASK_COMPRESSION */
> +
> +unsigned int __ro_after_init pfn_index_shift;
> +unsigned int __ro_after_init pdx_index_shift;
> +
> +unsigned long __ro_after_init pfn_pdx_lookup[CONFIG_PDX_NR_LOOKUP];
> +unsigned long __ro_after_init pdx_pfn_lookup[CONFIG_PDX_NR_LOOKUP];
> +unsigned long __ro_after_init pfn_bases[CONFIG_PDX_NR_LOOKUP];
> +unsigned long __ro_after_init pdx_region_size = ~0UL;

For cache locality, might this last one better also move ahead of the arrays?

> +bool pdx_is_region_compressible(paddr_t base, unsigned long npages)
> +{
> +    unsigned long pfn = PFN_DOWN(base);
> +    unsigned long pfn_base = pfn_bases[PFN_TBL_IDX(pfn)];
> +
> +    return pfn >= pfn_base &&
> +           pfn + npages <= pfn_base + pdx_region_size;
> +}
> +
> +static int __init cf_check cmp_node(const void *a, const void *b)
> +{
> +    const struct pfn_range *l = a;
> +    const struct pfn_range *r = b;
> +
> +    if ( l->base_pfn > r->base_pfn )
> +        return 1;
> +    if ( l->base_pfn < r->base_pfn )
> +        return -1;
> +
> +    return 0;
> +}
> +
> +static void __init cf_check swp_node(void *a, void *b)
> +{
> +    SWAP(a, b);
> +}

This hasn't changed from v3, and still looks wrong to me.

> +bool __init pfn_pdx_compression_setup(paddr_t base)
> +{
> +    unsigned long mask = PFN_DOWN(pdx_init_mask(base)), idx_mask = 0;
> +    unsigned long pages = 0;
> +    unsigned int i;
> +
> +    if ( !nr_ranges )
> +    {
> +        printk(XENLOG_DEBUG "PFN compression disabled%s\n",
> +               pdx_compress ? ": no ranges provided" : "");
> +        return false;
> +    }
> +
> +    if ( nr_ranges > ARRAY_SIZE(ranges) )
> +    {
> +        printk(XENLOG_WARNING
> +               "Too many PFN ranges (%u > %zu), not attempting PFN compression\n",
> +               nr_ranges, ARRAY_SIZE(ranges));
> +        return false;
> +    }
> +
> +    /* Sort ranges by start address. */
> +    sort(ranges, nr_ranges, sizeof(*ranges), cmp_node, swp_node);
> +
> +    for ( i = 0; i < nr_ranges; i++ )
> +    {
> +        unsigned long start = ranges[i].base_pfn;
> +
> +        /*
> +         * Align range base to MAX_ORDER.  This is required so the PDX offset
> +         * for the bits below MAX_ORDER matches the MFN offset, and pages
> +         * greater than the minimal order can be used to populate the
> +         * directmap.
> +         */
> +        ranges[i].base_pfn = start & ~((1UL << MAX_ORDER) - 1);
> +        ranges[i].pages = start + ranges[i].pages - ranges[i].base_pfn;
> +
> +        /*
> +         * Only merge overlapped regions now, leave adjacent regions separated.
> +         * They would be merged later if both use the same index into the
> +         * lookup table.
> +         */
> +        if ( !i ||
> +             ranges[i].base_pfn >=
> +             (ranges[i - 1].base_pfn + ranges[i - 1].pages) )
> +        {
> +            mask |= pdx_region_mask(ranges[i].base_pfn, ranges[i].pages);
> +            continue;
> +        }
> +
> +        ranges[i - 1].pages = ranges[i].base_pfn + ranges[i].pages -
> +                              ranges[i - 1].base_pfn;
> +
> +        if ( i + 1 < nr_ranges )
> +            memmove(&ranges[i], &ranges[i + 1],
> +                    (nr_ranges - (i + 1)) * sizeof(ranges[0]));
> +        else /* last range */
> +            mask |= pdx_region_mask(ranges[i].base_pfn, ranges[i].pages);
> +        nr_ranges--;
> +        i--;
> +    }
> +
> +    /*
> +     * Populate a mask with the non-equal bits of the different ranges, do this
> +     * to calculate the maximum PFN shift to use as the lookup table index.
> +     */
> +    for ( i = 0; i < nr_ranges; i++ )
> +        for ( unsigned int j = 0; j < nr_ranges; j++ )
> +            idx_mask |= (ranges[i].base_pfn & ~mask) ^
> +                        (ranges[j].base_pfn & ~mask);

"mask" is loop invariant - can't the AND-ing be pulled out, after the loop?
Further, isn't it sufficient for the inner loop to start from i + 1?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 12:38:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 12:38:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070448.1434067 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujGwE-0000KD-96; Tue, 05 Aug 2025 12:38:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070448.1434067; Tue, 05 Aug 2025 12:38: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 1ujGwE-0000K6-6M; Tue, 05 Aug 2025 12:38:42 +0000
Received: by outflank-mailman (input) for mailman id 1070448;
 Tue, 05 Aug 2025 12:38:41 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=j2i0=2R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujGwD-0000K0-5S
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 12:38:41 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1d2ad7ca-71f9-11f0-a321-13f23c93f187;
 Tue, 05 Aug 2025 14:38:40 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-ae9c2754a00so1331809666b.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 05:38: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
 a640c23a62f3a-af91a0a374dsm894375866b.36.2025.08.05.05.38.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Aug 2025 05:38: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>
X-Inumbo-ID: 1d2ad7ca-71f9-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754397519; x=1755002319; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=QYZ7QGDlmbeF1trPU2u4ZnWo60by1o6NYPdsjjOkmxY=;
        b=EltHORhx+X78AHBhswjQzADvlwulFvG9146WkODi012+wwo0Wk31fwPrWhGZdcFYVD
         HDf0jPoKESM0kmsMfLkFQEG25UlqLqdcMgUA2q5sHqrzwkZWJAHrHvFi1sWj1Y+eykzS
         QpQLzjLVE1+OBFbSZWoaF+3C+2vqkypFCRIQov9HCJbBPPccavxtYCkESiaTAgASciUS
         TGaVSHebIlbg/ce0XLazbSipWnzFfXN9YrEtWwJE2AcVR4/98Ul4gKnxfTKqXctIOTkk
         Gav1ubjrFv899hJipKYMsEugNilx5X+iCBZX19o01pw7PDYRVpbwvYK30QLIwMArVMn7
         XhyQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754397519; x=1755002319;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QYZ7QGDlmbeF1trPU2u4ZnWo60by1o6NYPdsjjOkmxY=;
        b=PIApSnkqScOk0bmqrm6RdP4wk0Pje1CnxcDGFYW1fCBv6ue8vwoBSO2KjhQKktLdOu
         0x+AdfLJ8vMq3uxa2c4ATVES+kZkdzsNUzTX92bNqYe91TVxTD3FhjaHgtrWzFy4gD1e
         fUoF598nPU5OzX0yg77vjgWJ5fqQCSc3OI3dS5L4vCV+PfzomZyo2zZRfYJwVHXI9cGp
         b4ySxsvPJqenJErpC/jfJdcpmSyp+pKVcKp2Cw/bfxUybRVBaRSpyQGhY6XXtYdysXc0
         JkEuhOkpZzGf4nB4g7Mkjm9sRA4KeaNKrPesfPadTzMoflM/hlWEHGNoMqCwzvywlao5
         qRzg==
X-Forwarded-Encrypted: i=1; AJvYcCVaZUeqgcPEFyfRe5y6EoYvfaKiRfjZtHDgjUtsAmqe5VcmwMncdBviTQW2mGe4PwmLjERTHrEsCtA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz6SfT8Q/PxVQgMaWyNlElw+1chBWqHuea2QBJVciuHiaz6SFz0
	xRVcj9lPVY54ImxSuA6V74Q6nmocTtl48Ko3NA6mwjaHlMvkgt4grI7OW8wJ3pbGcw==
X-Gm-Gg: ASbGnct3pDQd4c2FL0F0L6esVo7wPJ8/QzYIb4C4fhJJNoFbw0WJ9hhuXsoZI7h0Ymp
	Yjy4e8yhzN8k45fsLb2srDmFpje2TYi19DW5NloGHlN5kFk8c93sulDboFwAUssM8HNxW0h6hnM
	ACSCOwukb2tK1jRAiuur0Z95aXAlc8MS/BkJJsiQ1XESLAR67dMZkRKAb0PPjJpSuxyUkCF3Tb5
	yA/r/Z5ufKibEpdveqqjhz2sSuzydKLfB7EQOnZG9iHiIVIM6o4rgq7/QlwjlwOSGoW1WoIUZVr
	tc/Te3yBNhktRi6XvLOUa+H7T1K1IbPkJViimPkMCc0W8NCXU5ynRn9ll2uCwolOs2FrKtxWSHM
	WcFPJJUt0LAJhses04zPsZk7ss5zWJDL01SzoAKrUtt/y9RF516H88khd+DcyndZCPDz9GNqR3q
	WJErzkCAo=
X-Google-Smtp-Source: AGHT+IHOv1R5V2V5WFwL2uIF0SIdgAGB3vfWPJYc7XsXRonx/W6A9FFapYwDzdrZkqUsmyOEfsYcEg==
X-Received: by 2002:a17:907:9405:b0:ae3:7113:d6ac with SMTP id a640c23a62f3a-af940209185mr1355646066b.58.1754397519206;
        Tue, 05 Aug 2025 05:38:39 -0700 (PDT)
Message-ID: <31691bf7-94bf-4f73-b04c-a32f86bb0e37@suse.com>
Date: Tue, 5 Aug 2025 14:38:38 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 8/8] x86/mm: adjust loop in arch_init_memory() to
 iterate over the PDX space
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20250805095257.74975-1-roger.pau@citrix.com>
 <20250805095257.74975-9-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: <20250805095257.74975-9-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.08.2025 11:52, Roger Pau Monne wrote:
> --- a/xen/arch/x86/mm.c
> +++ b/xen/arch/x86/mm.c
> @@ -275,7 +275,7 @@ static void __init assign_io_page(struct page_info *page)
>  
>  void __init arch_init_memory(void)
>  {
> -    unsigned long i, pfn, rstart_pfn, rend_pfn, iostart_pfn, ioend_pfn;
> +    unsigned long i, pfn, rstart_pfn, rend_pfn, iostart_pfn, ioend_pfn, pdx;
>  
>      /*
>       * Basic guest-accessible flags:
> @@ -328,9 +328,20 @@ void __init arch_init_memory(void)
>              destroy_xen_mappings((unsigned long)mfn_to_virt(iostart_pfn),
>                                   (unsigned long)mfn_to_virt(ioend_pfn));
>  
> -        /* Mark as I/O up to next RAM region. */
> -        for ( ; pfn < rstart_pfn; pfn++ )
> +        /*
> +         * Mark as I/O up to next RAM region.  Iterate over the PDX space to
> +         * skip holes which would always fail the mfn_valid() check.
> +         *
> +         * pfn_to_pdx() requires a valid (iow: RAM) PFN to convert to PDX,
> +         * hence provide pfn - 1, which is the tailing PFN from the last RAM
> +         * range, or pdx 0 if the input pfn is 0.
> +         */
> +        for ( pdx = pfn ? pfn_to_pdx(pfn - 1) + 1 : 0;
> +              pdx < pfn_to_pdx(rstart_pfn);
> +              pdx++ )
>          {
> +            pfn = pdx_to_pfn(pdx);
> +
>              if ( !mfn_valid(_mfn(pfn)) )
>                  continue;
>  

As much as I would have liked to ack this, I fear there's another caveat here:
At the top of the loop we check not only for RAM, but also for UNUSABLE. The
latter, like RAM, shouldn't be marked I/O, but we also can't use PFN <-> PDX
transformations on any such page.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 13:22:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 13:22:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070470.1434078 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujHca-0006jZ-Bx; Tue, 05 Aug 2025 13:22:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070470.1434078; Tue, 05 Aug 2025 13:22: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 1ujHca-0006jS-8i; Tue, 05 Aug 2025 13:22:28 +0000
Received: by outflank-mailman (input) for mailman id 1070470;
 Tue, 05 Aug 2025 13:22:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vqd9=2R=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1ujHcY-0006jM-5l
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 13:22:26 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 397146f0-71ff-11f0-a321-13f23c93f187;
 Tue, 05 Aug 2025 15:22:24 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 3CAFF4EE0748;
 Tue,  5 Aug 2025 15:22:23 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 397146f0-71ff-11f0-a321-13f23c93f187
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=1754400143;
	b=lLK45SGqceVrfzqlucKnaVhwKowUNgiKqDgz+wMNAWedZDa73XuLyG32ivpQgT4AWk9+
	 K+JRYYPEd9jSZ1Hv+9FekMXA8DB0nNDuS+Mp0wSkTfNjwF1VEg/1RtjivpZG8O8CAq7tz
	 7/LcgR0T/1s0ELV2gs4yApPkzFAD9l0fSDEwAeOLRiw9fMpYOQ7momEmlLochWHwXsd87
	 fozNGkvLEOyknBS+tZkKYZ2frTzxLN0E1kGdoZPmEVUtXXCrs7Ngu5Fy9m1hgLhmajX0C
	 xMC1K1GcqCjW65NARXH6UtXU6m5GqAPdOWvLUw+uqurMzdWTQAqXuODaoHJxWj4hOD6PW
	 2qoY3hEjwt2DyvAXv8qAvCu0WKRRhgGdU1iEWHVn5qeqxY0GwWK3J7k88se0HRfuieMrY
	 uaUtFEOi26qmhzbPu167YOm0kgrXkHA/wOxGA48GejLMvtSPw71yvyzSnBeCRGm/5L+xj
	 dJcILCHc7ZNt2WuNZAayXlRUK6A4FhxCkCJxbHhvzBLHzji2nTrIDYnAMUSSa/5iNyeZF
	 iWrOoF6a+7aoklmUxOkGYSl0IX8JHsSoRVh3NHKhYnaoT/X5hlkeFHNiZUDaKdqB7Cxcd
	 EttADNSq6xtYwzzOgpb2Zfj8DTcjV7k+FpLjk6UjQGvrlzi9m3WuW1xe6zBBAfc=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1754400143;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=aedfEB1NQHYXKIy3YnbXDfNuqnbmZclnxEMhF2lvd8Q=;
	b=UTg6mpd1VMUCLMEaHRBBLOWHhSr9/lrGrceKcnVpRTGAC2cuQ2pMoOwFfnA+gutOyvnx
	 48cYA2YUF7ufDsvRY1ZR1C+sAq6h7yFWQXhX0SQhp3duLHLPT+GKGTVRMLL3srdRZr/bu
	 3aw6Gs+CkTsT+nleSjL+8SJ67ur7Go8TSyobeG5w0J0ir7rs/MYFGYB4JQ2ge0hop8ErU
	 TJ4baXBykBJoApxzOV8QOdBsgOQlYai22vAa56matUzk4UPPRtr8Vq7bdhYv0CCnUvnsH
	 NThRh9KBL2UHvTU9D2jsL1zDFNFP7Mu8q7batdG2jyHjNe7xdHm5P9blEhNp49WADxDyE
	 BSsAHBaCakdOeKAlWByw3kEuu5sjAfiL04uEgg7mZxIXQOOiJFWt9tSAH+GF4SDI7xMXr
	 5S/D9KoZaBoPb7FLfe1/Mt5L8DRhYP5eq6Pe2K5AhNpddQTwOXGOCbtFI2Zu9FP+FYm+i
	 BnokNq3MTCaFthhC4xSFY/byYGvTFBb3gQp4QRM45Sz/1IbZwmejX7MNhdlAT4tm+gaOw
	 VNf9uEAAgVSq6TMlGshjkVKZowbqD1mQVXElFic14sRzfCvVlZev4bMQxit3acpSDjpaO
	 REa5M/UfljNSD57BX1WtklMfTBJujSMIYTSmEaznrBWaJhyg4lREyB4pQa5kgn0=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1754400143; bh=fLlSmMB8OttCWI618y1+A1e6c9DZsadgQRWTgiALugA=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=Z9XSomEccalJz+RpSSbEQEIzOjRWdQ1wAMg1Cq/qUq5+FDb3xkplB+YlgzCLZArB9
	 9Ut0LhrA0+wT3hqvg+IPk6wnsrzchdfNVEMkyFTT1nV+hSNkbREKEb2MiVnkSgYrUJ
	 56LXRN2+yX4uxnh9bjKwo/U+qX9G1yQxIvB1l/TeV7VQr+I//MlI6q8DPKMGqTKF10
	 WO/F2fbkapeOttMufpft+96tYl9O+jjWuSg2IxuGX/e4PViRR85u+8Z1e2yDTxlCq4
	 EyS0j1NGgxHlF3qqrZskMZQQpj73nKesn/oP5n+bWyv2JZtfmD0QuWJZz5ERkBxv9f
	 YJP715kbXHnaA==
MIME-Version: 1.0
Date: Tue, 05 Aug 2025 15:22:23 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.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>, Dario Faggioli <dfaggioli@suse.com>, Juergen
 Gross <jgross@suse.com>, George Dunlap <gwd@xenproject.org>,
 xen-devel@lists.xenproject.org
Subject: Re: [PATCH] misra: fix violations in macros GVA_INFO, TRACE_TIME
In-Reply-To: <91d2a8ec-8a8e-404a-85ac-1038317e937b@epam.com>
References: <73cfc8a2d4d66042b49f44c69e672ce8ad0556ce.1753971749.git.dmytro_prokopchuk1@epam.com>
 <470a04e6-f8c1-4937-8478-0f80107d562d@citrix.com>
 <898e1c2a-7684-489b-84cd-254b2ee53e5d@suse.com>
 <9952fc5c-b95a-4879-a442-12e491438e08@citrix.com>
 <689178480a418f04158d623e3cedd4bd@bugseng.com>
 <91d2a8ec-8a8e-404a-85ac-1038317e937b@epam.com>
Message-ID: <1a59e6d831fd7119df1e2bd0cdbe262b@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

On 2025-08-05 13:49, Dmytro Prokopchuk1 wrote:
> On 7/31/25 19:09, Nicola Vetrini wrote:
>> On 2025-07-31 18:05, Andrew Cooper wrote:
>>> On 31/07/2025 4:58 pm, Jan Beulich wrote:
>>>> On 31.07.2025 17:37, Andrew Cooper wrote:
>>>>> On 31/07/2025 4:16 pm, Dmytro Prokopchuk1 wrote:
>>>>>> MISRA Rule 13.1: Initializer lists shall not contain persistent 
>>>>>> side
>>>>>> effects.
>>>>>> 
>>>>>> The violations occur because both the `GVA_INFO` and `TRACE_TIME`
>>>>>> macro
>>>>>> expansions include expressions with persistent side effects 
>>>>>> introduced
>>>>>> via inline assembly.
>>>>>> 
>>>>>> In the case of `GVA_INFO`, the issue stems from the initializer 
>>>>>> list
>>>>>> containing a direct call to `current`, which evaluates to
>>>>>> `this_cpu(curr_vcpu)` and involves persistent side effects via the
>>>>>> `asm` statement. To resolve this, the side-effect-producing 
>>>>>> expression
>>>>>> is computed in a separate statement prior to the macro 
>>>>>> initialization:
>>>>>> 
>>>>>> Â Â Â  struct vcpu *current_vcpu = current;
>>>>>> 
>>>>>> The computed value is passed into the `GVA_INFO(current_vcpu)` 
>>>>>> macro,
>>>>>> ensuring that the initializer is clean and free of such side 
>>>>>> effects.
>>>>>> 
>>>>>> Similarly, the `TRACE_TIME` macro violates this rule when 
>>>>>> accessing
>>>>>> expressions like `current->vcpu_id` and 
>>>>>> `current->domain->domain_id`,
>>>>>> which also depend on `current` and inline assembly. To fix this, 
>>>>>> the
>>>>>> value of `current` is assigned to a temporary variable:
>>>>>> 
>>>>>> Â Â Â  struct vcpu *v = current;
>>>>>> 
>>>>>> This temporary variable is then used to access `domain_id` and
>>>>>> `vcpu_id`.
>>>>>> This ensures that the arguments passed to the `TRACE_TIME` macro 
>>>>>> are
>>>>>> simple expressions free of persistent side effects.
>>>>>> 
>>>>>> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
>>>>> The macro `current` specifically does not (and must not) have side
>>>>> effects.Â  It is expected to behave like a plain `struct vcpu 
>>>>> *current;`
>>>>> variable, and what Eclair is noticing is the thread-local machinery
>>>>> under this_cpu() (or in x86's case, get_current()).
>>>>> 
>>>>> In ARM's case, it's literally reading the hardware thread pointer
>>>>> register.Â  Can anything be done to tell Eclair that `this_cpu()`
>>>>> specifically does not have side effects?
>>>>> 
>>>>> The only reason that GVA_INFO() and TRACE_TIME() are picked out is
>>>>> because they both contain embedded structure initialisation, and
>>>>> this is
>>>>> is actually an example where trying to comply with MISRA interferes
>>>>> with
>>>>> what is otherwise a standard pattern in Xen.
>>>> Irrespective of what you say, some of the changes here were 
>>>> eliminating
>>>> multiple adjacent uses of current, which - iirc - often the compiler
>>>> can't fold via CSE.
>>> 
>>> Where we have mixed usage, sure.Â  (I'm sure I've got a branch 
>>> somewhere
>>> trying to add some more pure/const around to try and help out here, 
>>> but
>>> I can't find it, and don't recall it being a major improvement 
>>> either.)
>>> 
>>> The real problem here is that there are a *very few* number of 
>>> contexts
>>> where Eclair refuses to tolerate the use of `current` citing side
>>> effects, despite there being no side effects.
>>> 
>>> That is the thing that breaks the principle of least surprise, and we
>>> ought to fix it by making Eclair happy with `current` everywhere, 
>>> rather
>>> than force people to learn that 2 macros can't have a `current` in 
>>> their
>>> parameter list.
>>> 
>> 
>> I'll take a look. Likely yes, by adding a handful of properties. There
>> are subtleties, though.
>> 
> 
> Hi, Nicola.
> 
> Did you have a chance to try configure Eclair to ignore this macro
> `this_cpu()`?
> 

Hi Dmytro,

I'm on it, I needed to handle other tasks first.

> Thanks.
> Dmytro

-- 
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 Aug 05 13:38:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 13:38:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070488.1434088 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujHsM-00004z-R2; Tue, 05 Aug 2025 13:38:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070488.1434088; Tue, 05 Aug 2025 13:38: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 1ujHsM-00004q-Na; Tue, 05 Aug 2025 13:38:46 +0000
Received: by outflank-mailman (input) for mailman id 1070488;
 Tue, 05 Aug 2025 13:38:45 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Xkmx=2R=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1ujHsL-0008WQ-4T
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 13:38:45 +0000
Received: from mail-wr1-x42a.google.com (mail-wr1-x42a.google.com
 [2a00:1450:4864:20::42a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7e70e7e5-7201-11f0-a321-13f23c93f187;
 Tue, 05 Aug 2025 15:38:39 +0200 (CEST)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-3b790dbb112so3080327f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 06:38:39 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3b79c3b9eddsm19252765f8f.22.2025.08.05.06.38.37
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Aug 2025 06:38: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>
X-Inumbo-ID: 7e70e7e5-7201-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754401118; x=1755005918; 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=1ICPZPpXze7J7LRr91S6QodYf4qNrYblEf+QBJDXMUo=;
        b=hdRsLhvVixPtaXS191GtLoGkV+NqQQ5AUCtIhHOwAaTb9XZX63wWkk98ciliVevEuW
         Mj0Sf2mrnlT2LsSRglFbG0p2oGXoDIUzK5RctVGGcyaKamHgNRPwWpKbcapOKq6DQ66d
         YIJcZAWtvbOhh6Yjz6ZV/TondEqNgxWTsePMA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754401118; x=1755005918;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1ICPZPpXze7J7LRr91S6QodYf4qNrYblEf+QBJDXMUo=;
        b=uXEpPoswRe+l267n0u4kqJCr2ImQ6tfGWii2AOSYFdnn4JfC8z5T8ArAm676/T/sJ4
         LbnVKGjBdCfrT82W8Lddykty2soU8ANPs8SdbMfEoJSMbpb2940FydhTs+4hhr3frIDu
         8bVQmRQO2K5zFOThSRjmzZYwrj8DRfGzpSWtd82A5KqBIAGoyaX4XBkEY3SlywPK7vns
         /AFTcndIOWh5+VyCPky4Rh3S6loURU+2briqLXTuMVAIS9qpJasfjHLBnnFMgFGUa5Xv
         SbsHfEXThO0Q5dMBwpE7nyz/WesLsU0mWQN9Z5Y14w+VSpz4N4phFgvc2mQdEfwBKr6M
         zlag==
X-Gm-Message-State: AOJu0YzYu6OSNFznht1xMQMCgStlsA/nztjF+6AEEdMDQi2la8f6j682
	oh9fdUzVR1FApDHN2GvzJLJ0FrtA4nsTQ//W8Nh3QqVbfqC8pdzFtUNv+Vd2GynGm6o=
X-Gm-Gg: ASbGncv/NlZztU6unqv5vXD6+ffdynrYpQd8rjO0YJ7H3LkdXpVameu0wKUZzM/qrNd
	XBvTAaD5b+iMr5g6UOoLa7ulxb/f+zSoKuh45EVk8WaxHbY3cPyCcow7Za+RVbOHJySthg1DUZV
	dGj5TpImFB4iwzGE8cslaLzKI5gUMOmpmiXguyGejfbyIniF7ZN0b5t/wy+xKBki+hfNpq6ppCx
	t+jPAHv7YNndLfF/ffD5hq2n7Gp01RB5AXVsC8ECgn8pVXqvt097QSnGhM/qKwWbsMBHk41Ns9m
	7K/JkdABangnNT0e549ueBU3X6UYkpdV4e1Z0I0zIkSIIpgHdqpjSCe7+3oSsgxtEcsJPY9ekev
	zbrKPwqmf4EDAjcqWtxM6F6go6C6PPKSIFAGF/eHsQLkH9CwfqVPqLY3dcUbb6VCiUohyEkVmoX
	Ts
X-Google-Smtp-Source: AGHT+IFDEV4GGxybwIMaWwcQebpxjNel+VuoJ9aMQQ4jDghvQGo1aF4/C/MSeSv6FuOupAgAzSFzxQ==
X-Received: by 2002:a05:6000:18af:b0:3a4:dc2a:924e with SMTP id ffacd0b85a97d-3b8d94684e8mr9949850f8f.6.1754401118403;
        Tue, 05 Aug 2025 06:38:38 -0700 (PDT)
Date: Tue, 5 Aug 2025 15:38:37 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, alejandro.garciavallejo@amd.com,
	andrew.cooper3@citrix.com, anthony.perard@vates.tech,
	jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com,
	sstabellini@kernel.org, dmukhin@ford.com
Subject: Re: [PATCH v13 1/3] xen/domain: unify domain ID allocation
Message-ID: <aJIJXX4yO0zC8898@macbook.local>
References: <20250730174042.1632011-1-dmukhin@ford.com>
 <20250730174042.1632011-2-dmukhin@ford.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20250730174042.1632011-2-dmukhin@ford.com>

On Wed, Jul 30, 2025 at 05:40:54PM +0000, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com> 
> 
> Currently, there are two different domain ID allocation implementations:
> 
>   1) Sequential IDs allocation in dom0less Arm code based on max_init_domid;
> 
>   2) Sequential IDs allocation in XEN_DOMCTL_createdomain; does not use
>      max_init_domid (both Arm and x86).
> 
> The domain ID allocation covers dom0 or late hwdom, predefined domains,
> post-boot domains, excluding Xen system domains (domid >=
> DOMID_FIRST_RESERVED).
> 
> It makes sense to have a common helper code for such task across architectures
> (Arm and x86) and between dom0less / toolstack domU allocation.
> 
> Note, fixing dependency on max_init_domid is out of scope of this patch.
> 
> Wrap the domain ID allocation as an arch-independent function domid_alloc() in
> new common/domid.c based on the bitmap.
> 
> Allocation algorithm:
> - If an explicit domain ID is provided, verify its availability and use it if
>   ID is not used;
> - If DOMID_INVALID is provided, search the range [1..DOMID_FIRST_RESERVED-1],
>   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 range.
> 
> Remove is_free_domid() helper as it is not needed now.
> 
> No functional change intended.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> Reviewed-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
> ---
> Changes since v12:
> - updated comment for domid_alloc() and commit message
> - added Alejandro's R-b
> ---
>  xen/arch/arm/domain_build.c             |  7 +-
>  xen/arch/x86/setup.c                    |  7 +-
>  xen/common/Makefile                     |  1 +
>  xen/common/device-tree/dom0less-build.c | 15 ++--
>  xen/common/domain.c                     |  2 +
>  xen/common/domctl.c                     | 42 ++---------
>  xen/common/domid.c                      | 94 +++++++++++++++++++++++++
>  xen/include/xen/domain.h                |  3 +
>  8 files changed, 124 insertions(+), 47 deletions(-)
>  create mode 100644 xen/common/domid.c
> 
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index 463ae4474d30..789f2b9d3ce7 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -2050,6 +2050,7 @@ void __init create_dom0(void)
>          .grant_opts = XEN_DOMCTL_GRANT_version(opt_gnttab_max_version),
>      };
>      unsigned int flags = CDF_privileged | CDF_hardware;
> +    domid_t domid;
>      int rc;
>  
>      /* The vGIC for DOM0 is exactly emulating the hardware GIC */
> @@ -2074,7 +2075,11 @@ void __init create_dom0(void)
>      if ( !llc_coloring_enabled )
>          flags |= CDF_directmap;
>  
> -    dom0 = domain_create(0, &dom0_cfg, flags);
> +    domid = domid_alloc(0);
> +    if ( domid == DOMID_INVALID )
> +        panic("Error allocating domain ID 0\n");
> +
> +    dom0 = domain_create(domid, &dom0_cfg, flags);
>      if ( IS_ERR(dom0) )
>          panic("Error creating domain 0 (rc = %ld)\n", PTR_ERR(dom0));
>  
> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> index 1543dd251cc6..2ff7c28c277b 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -1047,8 +1047,11 @@ static struct domain *__init create_dom0(struct boot_info *bi)
>      if ( iommu_enabled )
>          dom0_cfg.flags |= XEN_DOMCTL_CDF_iommu;
>  
> -    /* Create initial domain.  Not d0 for pvshim. */
> -    bd->domid = get_initial_domain_id();
> +    /* Allocate initial domain ID.  Not d0 for pvshim. */
> +    bd->domid = domid_alloc(get_initial_domain_id());
> +    if ( bd->domid == DOMID_INVALID )
> +        panic("Error allocating domain ID %d\n", get_initial_domain_id());

Nit: in other error messages in the same function we handle the domid
as an unsigned integer, so %u probably wants using here.  Unless you
have an explicit intention to print IDs >= DOMID_FIRST_RESERVED as
negative integers?

> +
>      d = domain_create(bd->domid, &dom0_cfg,
>                        pv_shim ? 0 : CDF_privileged | CDF_hardware);
>      if ( IS_ERR(d) )
> diff --git a/xen/common/Makefile b/xen/common/Makefile
> index c316957fcb36..0c7d0f5d46e1 100644
> --- a/xen/common/Makefile
> +++ b/xen/common/Makefile
> @@ -11,6 +11,7 @@ obj-$(filter-out $(CONFIG_X86),$(CONFIG_ACPI)) += device.o
>  obj-$(CONFIG_DEVICE_TREE_PARSE) += device-tree/
>  obj-$(CONFIG_IOREQ_SERVER) += dm.o
>  obj-y += domain.o
> +obj-y += domid.o
>  obj-y += event_2l.o
>  obj-y += event_channel.o
>  obj-$(CONFIG_EVTCHN_FIFO) += event_fifo.o
> diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tree/dom0less-build.c
> index 6bb038111de9..f4b6b515d2d2 100644
> --- a/xen/common/device-tree/dom0less-build.c
> +++ b/xen/common/device-tree/dom0less-build.c
> @@ -833,6 +833,7 @@ void __init create_domUs(void)
>      {
>          struct kernel_info ki = KERNEL_INFO_INIT;
>          int rc = parse_dom0less_node(node, &ki.bd);
> +        domid_t domid;
>  
>          if ( rc == -ENOENT )
>              continue;
> @@ -842,13 +843,13 @@ void __init create_domUs(void)
>          if ( (max_init_domid + 1) >= DOMID_FIRST_RESERVED )
>              panic("No more domain IDs available\n");
>  
> -        /*
> -         * The variable max_init_domid is initialized with zero, so here it's
> -         * very important to use the pre-increment operator to call
> -         * domain_create() with a domid > 0. (domid == 0 is reserved for Dom0)
> -         */
> -        ki.bd.d = domain_create(++max_init_domid,
> -                                &ki.bd.create_cfg, ki.bd.create_flags);
> +        domid = domid_alloc(DOMID_INVALID);
> +        if ( domid == DOMID_INVALID )
> +            panic("Error allocating ID for domain %s\n", dt_node_name(node));
> +
> +        max_init_domid = max(max_init_domid, domid);
> +
> +        ki.bd.d = domain_create(domid, &ki.bd.create_cfg, ki.bd.create_flags);
>          if ( IS_ERR(ki.bd.d) )
>              panic("Error creating domain %s (rc = %ld)\n",
>                    dt_node_name(node), PTR_ERR(ki.bd.d));
> diff --git a/xen/common/domain.c b/xen/common/domain.c
> index 5241a1629eeb..12fbab01cd8e 100644
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -1473,6 +1473,8 @@ void domain_destroy(struct domain *d)
>      /* Remove from the domlist/hash. */
>      domlist_remove(d);
>  
> +    domid_free(d->domain_id);

The domlist removal above still allows current users to continue
"operating" on the domain until the next RCU.  Should for safety the
freeing of the domid be deferred to _domain_destroy(), which is
executed in RCU context, and thus ensures there are no current users
of the removed domain?

I cannot think of a specific scenario where this could be dangerous
right now, but deferring to RCU context together with the final
cleanup seems safer overall.

> +
>      /* Schedule RCU asynchronous completion of domain destroy. */
>      call_rcu(&d->rcu, complete_domain_destroy);
>  }
> diff --git a/xen/common/domctl.c b/xen/common/domctl.c
> index f2a7caaf853c..5509998aa139 100644
> --- a/xen/common/domctl.c
> +++ b/xen/common/domctl.c
> @@ -51,20 +51,6 @@ static int xenctl_bitmap_to_nodemask(nodemask_t *nodemask,
>                                     MAX_NUMNODES);
>  }
>  
> -static inline int is_free_domid(domid_t dom)
> -{
> -    struct domain *d;
> -
> -    if ( dom >= DOMID_FIRST_RESERVED )
> -        return 0;
> -
> -    if ( (d = rcu_lock_domain_by_id(dom)) == NULL )
> -        return 1;
> -
> -    rcu_unlock_domain(d);
> -    return 0;
> -}
> -
>  void getdomaininfo(struct domain *d, struct xen_domctl_getdomaininfo *info)
>  {
>      struct vcpu *v;
> @@ -423,36 +409,18 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
>  
>      case XEN_DOMCTL_createdomain:
>      {
> -        domid_t        dom;
> -        static domid_t rover = 0;
> +        domid_t domid = domid_alloc(op->domain);
>  
> -        dom = op->domain;
> -        if ( (dom > 0) && (dom < DOMID_FIRST_RESERVED) )
> +        if ( domid == DOMID_INVALID )

This is a change in behavior AFAICT, as you now allow
XEN_DOMCTL_createdomain to possibly create a domain with domid 0 (if
it's available).  Currently op->domain == 0 is handled as op->domain
== DOMID_FIRST_RESERVED. You either need to adjust the code here, so
that you do:

domid_t domid = domid_alloc(op->domain ?: DOMID_FIRST_RESERVED);

Or domid_alloc() needs to be adjusted to handle an input domid == 0 as
it handles DOMID_FIRST_RESERVED.

>          {
>              ret = -EEXIST;
> -            if ( !is_free_domid(dom) )
> -                break;
> -        }
> -        else
> -        {
> -            for ( dom = rover + 1; dom != rover; dom++ )
> -            {
> -                if ( dom == DOMID_FIRST_RESERVED )
> -                    dom = 1;
> -                if ( is_free_domid(dom) )
> -                    break;
> -            }
> -
> -            ret = -ENOMEM;
> -            if ( dom == rover )
> -                break;
> -
> -            rover = dom;
> +            break;
>          }
>  
> -        d = domain_create(dom, &op->u.createdomain, false);
> +        d = domain_create(domid, &op->u.createdomain, false);
>          if ( IS_ERR(d) )
>          {
> +            domid_free(domid);
>              ret = PTR_ERR(d);
>              d = NULL;
>              break;
> diff --git a/xen/common/domid.c b/xen/common/domid.c
> new file mode 100644
> index 000000000000..e727dcaf0793
> --- /dev/null
> +++ b/xen/common/domid.c
> @@ -0,0 +1,94 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Domain ID allocator.
> + *
> + * Covers dom0 or late hwdom, predefined domains, post-boot domains.
> + * Excludes Xen system domains (ID >= DOMID_FIRST_RESERVED).
> + *
> + * Copyright 2025 Ford Motor Company
> + */
> +
> +#include <xen/domain.h>
> +
> +static DEFINE_SPINLOCK(domid_lock);
> +static DECLARE_BITMAP(domid_bitmap, DOMID_FIRST_RESERVED);
> +
> +/*
> + * Allocate domain ID.
> + *
> + * @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,
> + *   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
> + *   range.
> + * @return Valid domain ID in case of successful allocation,
> + *         DOMID_INVALID - otherwise.
> + */
> +domid_t domid_alloc(domid_t domid)
> +{
> +    static domid_t domid_last;
> +
> +    spin_lock(&domid_lock);
> +
> +    /* Exact match. */
> +    if ( domid < DOMID_FIRST_RESERVED )
> +    {
> +        if ( __test_and_set_bit(domid, domid_bitmap) )
> +            domid = DOMID_INVALID;
> +    }
> +    /*
> +     * Exhaustive search.
> +     *
> +     * Domain ID#0 is reserved for the first boot domain (e.g. control domain)
> +     * and excluded from allocation.
> +     */
> +    else
> +    {
> +        domid = find_next_zero_bit(domid_bitmap,
> +                                   DOMID_FIRST_RESERVED,
> +                                   domid_last + 1);
> +        if ( domid == DOMID_FIRST_RESERVED )

Nit: you could further gate this second search to domid_last != 0, as
otherwise the first search has already scanned the whole bitmap.

> +            domid = find_next_zero_bit(domid_bitmap,
> +                                       DOMID_FIRST_RESERVED,
> +                                       1);

Nit: you could possibly limit this second search to (domid_last + 1)
size, as you have already searched from [domid_last + 1,
DOMID_FIRST_RESERVED], and the bitmap couldn't have changed as the
lock is being held.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 14:11:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 14:11:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070503.1434110 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujIOA-0005LO-72; Tue, 05 Aug 2025 14:11:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070503.1434110; Tue, 05 Aug 2025 14:11:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujIOA-0005LH-3q; Tue, 05 Aug 2025 14:11:38 +0000
Received: by outflank-mailman (input) for mailman id 1070503;
 Tue, 05 Aug 2025 14:11:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=j2i0=2R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujIO9-0005LB-Jk
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 14:11:37 +0000
Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com
 [2a00:1450:4864:20::633])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 17c0e2b6-7206-11f0-a321-13f23c93f187;
 Tue, 05 Aug 2025 16:11:34 +0200 (CEST)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-af90fd52147so826662466b.3
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 07:11: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
 a640c23a62f3a-af938aa8275sm681260066b.57.2025.08.05.07.11.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Aug 2025 07:11: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>
X-Inumbo-ID: 17c0e2b6-7206-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754403094; x=1755007894; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=308JmNKh9I95opCsIuS+/LFa6fh+/A/hosRgyyYhwQY=;
        b=fkBHKfS/7w+Zkgp28AHFLYi2OOI3bHvoKOh+8HYFaUX7xnfwc2k1pI8WX0B3rjYTxn
         sefYgCvxNkc6IHZXWOF4P3cv0Io+YHhyxlDLi7HQGELfoS4+LfchpQmr3uzO4VR//lgl
         V1Y0IICbcvFznEFl3h1fSDlJiY6kr+ZVlxtHaJb4pmMxpt0vgmRiyRtZifNniDzcZGTZ
         5GNXahU+k439gWcIqWnNtu2s85lGw+XAJFRgvr3H8pHKJfMDXJ2DZWMdyO8xhvMOedw8
         m47IKtmkscE6HV6wiPqvCTFxkqRziDI8HF7LOVVacopIWmNbbPTn07/w2S+OPlzEI8bT
         rCtw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754403094; x=1755007894;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=308JmNKh9I95opCsIuS+/LFa6fh+/A/hosRgyyYhwQY=;
        b=KcmE2J+SyC4DspUU61kLsrjj9xCtt3UACRT6HQLUl7JzPVQ6gQvl0Zr3c/GUXN7nxo
         /HTSYOFWFV1fkU0cCCnBzk1eFQ2a3CraHtQotLxgMD3cYXPT0eQ/UorKGbE0t/onPggJ
         UrxQKCSSKO0Vlmja9Sm6auQBdwBYajocAbOZRFqzJUzvRHBAbRGLjd+SEtWyxZr2NwdR
         AR/rCyKbIbaUKkROBlgrwAr/LuRhFd56KMr8A9hjqMBomd7h2bZradjhOsCjEe+gHUYb
         bZkrXPDcIf7Mdr7g51Uyk6Troh5tWZu1NNMtprZA2Ex4h/B9rzRuxRX7mo2OCIs5W2Gw
         CyJQ==
X-Forwarded-Encrypted: i=1; AJvYcCW3WHY1F7Hfmd6EkaFdkPsP/yFPzP6Slk+QamO9iF2vao8dlajz6ngZPr5PEkLiV+aeXkCfgNVTzHo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyAv6/9YnBvcJhUedcUKMdvJJjBiFyPb7GL4cRigMJukEX/AEwp
	GTsTQdgdHqkjJ96xNtM4ewsJuBw7hfMlda1Cxhg7z0CNiboRcTNAEAINQUH6n3tWYg==
X-Gm-Gg: ASbGncsoVU2+2qSVyg7QRkuXLTUKMfDYbUM0lrqcRsfK0EitU9yWRC+oogZIJZRkyGg
	O4idJuYmJXcNa2b0XBKwpMFUusSoAwBo+l0PfZwpJJlH+kb6l1V/+WTll0JgpY6aUeETRdN8uRT
	mk6LdR5lJeKsu4lYDLYlxZkDACYsDVVu5AdzoKozDmzX7jGc0J1mO8QKJedBFwqJ/su6feSfN02
	gNszT8DgAwboRGcwnMM9vsrw+8lw3nCQ5UxSfg9mT2Q7kVU4mr1BxDEurPE5SrhscYmh4UGfmsg
	0IsomxQ2fCjGCqpkdkeFJJo482KDA7hcF7qBuligi3U6dNj7kkftiPgXS7CoEoiS2vlgOCdchnq
	wMMcwMZjJACPMiAHaDx/QKcty8xaIIyH1dFsCe5ZTxACfCJoBrCtY+3mprmEmspFQq/GPEt3B1q
	ZuXVzbY1Y=
X-Google-Smtp-Source: AGHT+IFwmw2aFrY33IWenT8bQb6R641n1RMI3z98zQmrwS8Ym1kTVHA10sZ8OAJK9cdT5w9iDfXs/w==
X-Received: by 2002:a17:907:3d05:b0:ad8:9997:aa76 with SMTP id a640c23a62f3a-af940181f8amr1325941866b.37.1754403093642;
        Tue, 05 Aug 2025 07:11:33 -0700 (PDT)
Message-ID: <eb865048-ec3a-479e-a552-b19fc57b6786@suse.com>
Date: Tue, 5 Aug 2025 16:11:32 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 10/20] xen/riscv: introduce
 page_{get,set}_xenheap_gfn()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <5aa3beb7fc0b7fc7f4d6d07ae25f37d44fc38858.1753973161.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: <5aa3beb7fc0b7fc7f4d6d07ae25f37d44fc38858.1753973161.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 31.07.2025 17:58, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/include/asm/mm.h
> +++ b/xen/arch/riscv/include/asm/mm.h
> @@ -12,6 +12,7 @@
>  #include <xen/sections.h>
>  #include <xen/types.h>
>  
> +#include <asm/cmpxchg.h>
>  #include <asm/page.h>
>  #include <asm/page-bits.h>
>  
> @@ -247,9 +248,17 @@ static inline bool arch_mfns_in_directmap(unsigned long mfn, unsigned long nr)
>  #define PGT_writable_page PG_mask(1, 1)  /* has writable mappings?         */
>  #define PGT_type_mask     PG_mask(1, 1)  /* Bits 31 or 63.                 */
>  
> -/* Count of uses of this frame as its current type. */
> -#define PGT_count_width   PG_shift(2)
> -#define PGT_count_mask    ((1UL << PGT_count_width) - 1)
> + /* 9-bit count of uses of this frame as its current type. */

Nit: Stray blank at start of line.

> +#define PGT_count_mask    PG_mask(0x3FF, 10)

A 9-bit count corresponds to a mask of 0x1ff, doesn't it? With 0x3ff the count
can spill over the type.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 14:15:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 14:15:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070514.1434120 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujIS0-0005uN-MZ; Tue, 05 Aug 2025 14:15:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070514.1434120; Tue, 05 Aug 2025 14:15:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujIS0-0005uG-Jl; Tue, 05 Aug 2025 14:15:36 +0000
Received: by outflank-mailman (input) for mailman id 1070514;
 Tue, 05 Aug 2025 14:15:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Xkmx=2R=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1ujIRz-0005uA-S9
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 14:15:36 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a485ab5d-7206-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 16:15:30 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-45896cf24ebso43697815e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 07:15:30 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3b79c47ae8esm19225911f8f.61.2025.08.05.07.15.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Aug 2025 07:15: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>
X-Inumbo-ID: a485ab5d-7206-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754403330; x=1755008130; 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=ffnWRVP2Ls0R/vrhiM3IPX9bMDwbvYWsFvuRv1NRtUQ=;
        b=pJyEqOPK7TQhZF9FEqv744PaL/N1/86owwOzkgmO9CczZQstbTjefSSeSri/cIyKu8
         5omo2IxLLGLv0YK6zmVqFdnyOQ994/ahIK+l96L2ObiQmuRFqOqy5mmFwxl4cWLLGv+H
         ZeO5/NUlOm9leW0VbuKskKZEFvTL+sKOA3P9E=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754403330; x=1755008130;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ffnWRVP2Ls0R/vrhiM3IPX9bMDwbvYWsFvuRv1NRtUQ=;
        b=PRSfWdEpxmnK7tIkNvzup6Wj2I6bl1CTx/oFyiZsRaXQL61p/rk4xB2WsI5Q0UEhDa
         MXk5w/ar2PFLaSqo4Y3yJ3E4Wud//GaNHjXjU0rD/5ShNQptikmao/8Lw+r0D3zNhgeP
         YeeMy+xWOHrXMSMaOWSBQ22jz5Wqjz6ddppjhxEDffBaKhW0NFRGTlv76GpCGqn12+B7
         srCvwyTC7qZx5mW5pG4BR47cOf2bk6KN3slPDxMjQnPw6Xp8FjEkXvKVRie+48zvC1eX
         u/ty4ai9JyyCwXPpGbdw7tyb8PEY/m24+hZVVA0p6GJxjkhuqp+nvkRFzGCcQfa0w2pe
         IQxQ==
X-Gm-Message-State: AOJu0Yyl/M3akLibwZZsjedG9/GWA+pTmhSmfem46UcMpL0dkdU4ep6r
	ANdQFJcvD3PZVwdBZZ3BlgNtOLhi48js5eGc/Mmo2A+Y283upGLu96FF8n3Jho4ouW0=
X-Gm-Gg: ASbGncv6Bmc+p9SayZXowo5uzP7h2hFPG32zGjDj4IjyJZFRR/whmgMzrd4Ms54tnrH
	AbR+7jZ6YjMU7HHpGAuvdZ/DNa59ePZubvUwyzLnnhKkkxhviSS5D+gzHC034TYfkciK2UResK6
	GqlWQeOidx+brs2gAfywjBlmrLZM8/2ppAat5oP6SlbPeBLSrWnscjuC33tlI0m9yEPDahR50J8
	T1TA6kBw7f6J36VopNnacv8dOnINScVHORTJ4SreBIQZJm+aJQMx6WhiI4mY8fKWKccs9Ab1hro
	rO1FySJMf70R2lcqi0tI8bZ6HcIKe6hje5pZraIn9VsP9grcb2ty5dvDVicPlQz7qWMNriCg/QE
	yDuojGx9YZxm+QJwahI/kRmHNDvkoefUQLFMDyVMJoMvHynBVL5lmpcP8pxv7apzdbg==
X-Google-Smtp-Source: AGHT+IFfT8AR4yMn3w6ao/Z/xbbkpGIJW5UevPfl4ArJQpcrF5CLUcMfBeAl6GAhIMVRc4jIkKNT9g==
X-Received: by 2002:a05:600c:1d07:b0:43c:fe5e:f03b with SMTP id 5b1f17b1804b1-458b6b796e5mr125471395e9.30.1754403329850;
        Tue, 05 Aug 2025 07:15:29 -0700 (PDT)
Date: Tue, 5 Aug 2025 16:15:28 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, alejandro.garciavallejo@amd.com,
	andrew.cooper3@citrix.com, anthony.perard@vates.tech,
	jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com,
	sstabellini@kernel.org, dmukhin@ford.com
Subject: Re: [PATCH v13 2/3] tools/tests: introduce unit tests for domain ID
 allocator
Message-ID: <aJISADd9g16o8nud@macbook.local>
References: <20250730174042.1632011-1-dmukhin@ford.com>
 <20250730174042.1632011-3-dmukhin@ford.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20250730174042.1632011-3-dmukhin@ford.com>

On Wed, Jul 30, 2025 at 05:41:00PM +0000, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com> 
> 
> Introduce some basic infrastructure for doing domain ID allocation unit tests,
> and add a few tests that ensure correctness of the domain ID allocator.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
> Changes since v12:
> - fixed Makefile
> - dropped unused symbols/includes from the test harness header
> - s/printk/printf/g in the test code
> ---
>  tools/tests/Makefile                   |   2 +-
>  tools/tests/domid/.gitignore           |   2 +
>  tools/tests/domid/Makefile             |  48 ++++++++++
>  tools/tests/domid/include/xen/domain.h | 126 +++++++++++++++++++++++++
>  tools/tests/domid/test-domid.c         |  78 +++++++++++++++
>  5 files changed, 255 insertions(+), 1 deletion(-)
>  create mode 100644 tools/tests/domid/.gitignore
>  create mode 100644 tools/tests/domid/Makefile
>  create mode 100644 tools/tests/domid/include/xen/domain.h
>  create mode 100644 tools/tests/domid/test-domid.c
> 
> diff --git a/tools/tests/Makefile b/tools/tests/Makefile
> index 36928676a666..ff1666425436 100644
> --- a/tools/tests/Makefile
> +++ b/tools/tests/Makefile
> @@ -1,7 +1,7 @@
>  XEN_ROOT = $(CURDIR)/../..
>  include $(XEN_ROOT)/tools/Rules.mk
>  
> -SUBDIRS-y :=
> +SUBDIRS-y := domid
>  SUBDIRS-y += resource
>  SUBDIRS-$(CONFIG_X86) += cpu-policy
>  SUBDIRS-$(CONFIG_X86) += tsx
> diff --git a/tools/tests/domid/.gitignore b/tools/tests/domid/.gitignore
> new file mode 100644
> index 000000000000..70e306b3c074
> --- /dev/null
> +++ b/tools/tests/domid/.gitignore
> @@ -0,0 +1,2 @@
> +*.o
> +test-domid
> diff --git a/tools/tests/domid/Makefile b/tools/tests/domid/Makefile
> new file mode 100644
> index 000000000000..08fbad096aec
> --- /dev/null
> +++ b/tools/tests/domid/Makefile
> @@ -0,0 +1,48 @@
> +# SPDX-License-Identifier: GPL-2.0-only
> +#
> +# Unit tests for domain ID allocator.
> +#
> +# Copyright 2025 Ford Motor Company
> +
> +XEN_ROOT=$(CURDIR)/../../..
> +include $(XEN_ROOT)/tools/Rules.mk
> +
> +TESTS := test-domid
> +
> +vpath domid.c $(XEN_ROOT)/xen/common/
> +
> +.PHONY: all
> +all: $(TESTS)
> +
> +.PHONY: run
> +run: $(TESTS)
> +	$(foreach t,$(TESTS),./$(t);)
> +
> +.PHONY: clean
> +clean:
> +	$(RM) -- *.o $(TESTS) $(DEPS_RM)
> +
> +.PHONY: distclean
> +distclean: clean
> +	$(RM) -- *~
> +
> +.PHONY: install
> +install: all
> +	$(INSTALL_DIR) $(DESTDIR)$(LIBEXEC)/tests
> +	$(INSTALL_PROG) test-domid $(DESTDIR)$(LIBEXEC)/tests
> +
> +.PHONY: uninstall
> +uninstall:
> +	$(RM) -- $(DESTDIR)$(LIBEXEC)/tests/test-domid
> +
> +CFLAGS += -D__XEN_TOOLS__
> +CFLAGS += $(APPEND_CFLAGS)
> +CFLAGS += $(CFLAGS_xeninclude)
> +CFLAGS += -I./include/
> +
> +LDFLAGS += $(APPEND_LDFLAGS)
> +
> +test-domid: domid.o test-domid.o
> +	$(CC) $^ -o $@ $(LDFLAGS)
> +
> +-include $(DEPS_INCLUDE)
> diff --git a/tools/tests/domid/include/xen/domain.h b/tools/tests/domid/include/xen/domain.h
> new file mode 100644
> index 000000000000..e5db0235445e
> --- /dev/null
> +++ b/tools/tests/domid/include/xen/domain.h
> @@ -0,0 +1,126 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Unit test harness for domain ID allocator.
> + *
> + * Copyright 2025 Ford Motor Company
> + */
> +
> +#ifndef _TEST_HARNESS_
> +#define _TEST_HARNESS_
> +
> +#include <assert.h>
> +#include <stdbool.h>
> +#include <stdint.h>
> +#include <stdio.h>
> +
> +#include <xen-tools/common-macros.h>
> +
> +#define BUG_ON(x)               assert(!(x))
> +#define ASSERT(x)               assert(x)
> +
> +#define DOMID_FIRST_RESERVED    (10)
> +#define DOMID_INVALID           (11)
> +
> +#define DEFINE_SPINLOCK(x)      unsigned long *(x)

I think this shouldn't be a pointer?  As you otherwise trigger a NULL
pointer dereference in the increases and decreases done below?

> +#define spin_lock(x)            ((*(x))++)
> +#define spin_unlock(x)          ((*(x))--)

FWIW, I would use a plain bool:

#define DEFINE_SPINLOCK(l)      bool l
#define spin_lock(l)            (*(l) = true)
#define spin_unlock(l)          (*(l) = false)

As you don't expect concurrency tests, you could even assert the lock
is in the expected state before taking/releasing it.

> +
> +#define printk printf
> +
> +#define BITS_PER_LONG           sizeof(unsigned long)

That's BYTES_PER_LONG, BITS_PER_LONG would be (sizeof(unsigned long) * 8).

> +#define BITS_PER_WORD           (8U * BITS_PER_LONG)
> +#define BITS_TO_LONGS(bits) \
> +    (((bits) + BITS_PER_LONG - 1) / BITS_PER_LONG)
> +#define DECLARE_BITMAP(name, bits) \
> +    unsigned long name[BITS_TO_LONGS(bits)]
> +
> +static inline int __test_and_set_bit(unsigned int nr, unsigned long *addr)
> +{
> +    unsigned long mask = 1UL << (nr % BITS_PER_WORD);
> +    unsigned long *p = addr + (nr / BITS_PER_WORD);
> +    int old = (*p & mask) != 0;
> +
> +    *p |= mask;
> +
> +    return old;
> +}
> +
> +static inline int __test_and_clear_bit(unsigned int nr, unsigned long *addr)
> +{
> +    unsigned long mask = 1UL << (nr % BITS_PER_WORD);
> +    unsigned long *p = addr + (nr / BITS_PER_WORD);
> +    int old = (*p & mask) != 0;
> +
> +    *p &= ~mask;
> +
> +    return old;
> +}

Could you somehow use the generic__test_and_set_bit() and
generic__test_and_clear_bit() implementations in bitops.h?

> +
> +static inline void __set_bit(unsigned int nr, volatile unsigned long *addr)
> +{
> +    unsigned long mask = 1UL << (nr % BITS_PER_WORD);
> +    unsigned long *p = (unsigned long *)addr + (nr / BITS_PER_WORD);

Why do you need the cast to drop the volatile here?

> +
> +    *p |= mask;
> +}

I think you could possibly simplify to a single line:

    ((unsigned int *)addr)[nr >> 5] |= (1u << (nr & 31));

That's the implementation of constant_set_bit() in x86.

> +
> +static inline void __clear_bit(unsigned int nr, volatile unsigned long *addr)
> +{
> +    unsigned long mask = 1UL << (nr % BITS_PER_WORD);
> +    unsigned long *p = (unsigned long *)addr + (nr / BITS_PER_WORD);
> +
> +    *p &= ~mask;
> +}

I don't think you need __clear_bit()?  It's not used by domid.c AFAICT.

> +
> +static inline unsigned long find_next_zero_bit(const unsigned long *addr,
> +                                               unsigned long size,
> +                                               unsigned long offset)
> +{
> +    unsigned long idx = offset / BITS_PER_WORD;
> +    unsigned long bit = offset % BITS_PER_WORD;
> +
> +    if (offset >= size)
> +        return size;
> +
> +    while (offset < size)
> +    {
> +        unsigned long val = addr[idx] | (~0UL >> (BITS_PER_WORD - bit));
> +
> +        if (~val)
> +        {
> +            unsigned long pos = __builtin_ffsl(~val);
> +
> +            if (pos > 0)
> +            {
> +                unsigned long rc = idx * BITS_PER_WORD + (pos - 1);
> +
> +                if (rc < size)
> +                    return rc;
> +            }
> +        }
> +
> +        offset = (idx + 1) * BITS_PER_WORD;
> +        idx++;
> +        bit = 0;
> +    }
> +
> +    return size;
> +}

Hm, you need a full find_next_zero_bit() implementation here because
addr can be arbitrarily long.  Could you somehow include
xen/lib/find-next-bit.c and set the right defines so only the
implementation of find_next_bit() is included?

> +
> +typedef bool spinlock_t;

You want to put this ahead, so that DEFINE_SPINLOCK can be:

#define DEFINE_SPINLOCK(l)      spinlock_t l

> +typedef uint16_t domid_t;
> +
> +/* See include/xen/domain.h */
> +extern domid_t domid_alloc(domid_t domid);
> +extern void domid_free(domid_t domid);
> +
> +#endif /* _TEST_HARNESS_ */
> +
> +/*
> + * Local variables:
> + * mode: C
> + * c-file-style: "BSD"
> + * c-basic-offset: 4
> + * indent-tabs-mode: nil
> + * End:
> + */
> diff --git a/tools/tests/domid/test-domid.c b/tools/tests/domid/test-domid.c
> new file mode 100644
> index 000000000000..d52eaf5f1f55
> --- /dev/null
> +++ b/tools/tests/domid/test-domid.c
> @@ -0,0 +1,78 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Unit tests for domain ID allocator.
> + *
> + * Copyright 2025 Ford Motor Company
> + */
> +
> +/* Local test include replicating hypervisor includes. */
> +#include <xen/domain.h>

I think this is a difficult to maintain position.  Right now domid.c
only includes xen/domain.h, so you can easily replace this in
user-space.  However if/when domid.c starts including more headers,
replicating this in user-space will be cumbersome IMO.

I would just guard the includes in domid.c with #ifdef __XEN__ for the
preprocessor to remove them when domid.c is compiled as part of the
unit-tests harness.

I usually include a harness.h that contains the glue to make the
imported code build (much like what you have placed in the test
harness xen/domain.h header.

> +
> +int main(int argc, char **argv)
> +{
> +    domid_t expected, allocated;
> +
> +    printf("DOMID_FIRST_RESERVED=%u DOMID_INVALID=%u\n",
> +            DOMID_FIRST_RESERVED, DOMID_INVALID);
> +
> +    /* Test ID#0 cannot be allocated twice. */
> +    allocated = domid_alloc(0);
> +    printf("TEST 1: expected %u allocated %u\n", 0, allocated);
> +    ASSERT(allocated == 0);
> +    allocated = domid_alloc(0);
> +    printf("TEST 1: expected %u allocated %u\n", DOMID_INVALID, allocated);
> +    ASSERT(allocated == DOMID_INVALID);
> +
> +    /* Ensure ID is not allocated. */
> +    domid_free(0);
> +
> +    /*
> +     * Test that that two consecutive calls of domid_alloc(DOMID_INVALID)
> +     * will never return the same ID.
> +     * NB: ID#0 is reserved and shall not be allocated by
> +     * domid_alloc(DOMID_INVALID).
> +     */
> +    for ( expected = 1; expected < DOMID_FIRST_RESERVED; expected++ )
> +    {
> +        allocated = domid_alloc(DOMID_INVALID);
> +        printf("TEST 2: expected %u allocated %u\n", expected, allocated);
> +        ASSERT(allocated == expected);
> +    }
> +    for ( expected = 1; expected < DOMID_FIRST_RESERVED; expected++ )
> +    {
> +        allocated = domid_alloc(DOMID_INVALID);
> +        printf("TEST 3: expected %u allocated %u\n", DOMID_INVALID, allocated);
> +        ASSERT(allocated == DOMID_INVALID);
> +    }
> +
> +    /* Re-allocate first ID from [1..DOMID_FIRST_RESERVED - 1]. */
> +    expected = 1;
> +    domid_free(1);
> +    allocated = domid_alloc(DOMID_INVALID);
> +    printf("TEST 4: expected %u allocated %u\n", expected, allocated);
> +    ASSERT(allocated == expected);
> +
> +    /* 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);
> +    printf("TEST 5: expected %u allocated %u\n", expected, allocated);
> +    ASSERT(allocated == expected);
> +
> +    /* Allocate an invalid ID. */
> +    expected = DOMID_INVALID;
> +    allocated = domid_alloc(DOMID_FIRST_RESERVED);
> +    printf("TEST 6: expected %u allocated %u\n", expected, allocated);
> +    ASSERT(allocated == expected);

I would make this a bit less chatty maybe?

I think you only need to print on errors, and you probably don't want
to ASSERT() on failure, and rather try to finish all the tests in
order to report multiple failures in a single run.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 14:20:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 14:20:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070524.1434129 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujIX0-0007Td-B1; Tue, 05 Aug 2025 14:20:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070524.1434129; Tue, 05 Aug 2025 14:20:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujIX0-0007TW-8D; Tue, 05 Aug 2025 14:20:46 +0000
Received: by outflank-mailman (input) for mailman id 1070524;
 Tue, 05 Aug 2025 14:20:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Xkmx=2R=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1ujIWz-0007TQ-1z
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 14:20:45 +0000
Received: from mail-wr1-x42a.google.com (mail-wr1-x42a.google.com
 [2a00:1450:4864:20::42a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5eb701ed-7207-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 16:20:43 +0200 (CEST)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-3b79bdc9a7dso3490071f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 07:20:42 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3b79c453d6esm19471201f8f.37.2025.08.05.07.20.41
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Aug 2025 07:20: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>
X-Inumbo-ID: 5eb701ed-7207-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754403642; x=1755008442; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=XmvY2Yjn46MqEGSngmcxBtaO1gIdPtGHYr0IlJjOiHE=;
        b=uP+rfifgZ7QgrNpZ4JSrJPVSPwWr04zIuwuyiGzgz7d3L/QCOrsWf1fLr0AlK+IZ6j
         CT/BaHANhopuy4rhTwDKhhCRUPvBUqV+1+DLdPnySRGOfiTIm0IBH6BKpSd0yvAg9gYA
         UDTJwMUmxfkl6q5UnCMxWvpjFU+twwO8gfPEg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754403642; x=1755008442;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=XmvY2Yjn46MqEGSngmcxBtaO1gIdPtGHYr0IlJjOiHE=;
        b=bnILhhXm+/f8zG1Mh5MGgaAnqEmZR47P86DMs0fJVXykJPQaXazNhXYHfGzaWA9+Jx
         2yZtL9gbDXwW3nLHi5Z3ooxZNpqyw1aqBWWvrpNHSNRa0mskzPyXFMVSYDAdYFrIkWnF
         pYfMSmCqMd9cc+yczmUNfsDnV5py3bMVDvkdBhv9KqW+QRQojYDUtGA85ymq7IyS8F4T
         y1oYQjv8TOLYYJl7nDgTzUgOPTYNYiuGnhWHe5zk9p4dIJUa7d0FgFLLiGn55o6CXQ/p
         XTGe+x9Kls04TspcJkQ6h4eRUaBVU351G9EQTmiNuidfrIbAGavNuhA1oA/xERNRCzKX
         E8OQ==
X-Forwarded-Encrypted: i=1; AJvYcCWTo+WSv2+gttGmcBBfFz3kH9JG1AupphNxkcQYbyYndcoiiGJQz57Vt59m2+KFp3JMcTjo5zsQ46E=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx8XbI5mf9vaarNgWKSx9WUeTcsZVvoBWVPNh7fc/0lv5AePgJE
	P+ScT6ngybOy3xcK/dwH96tq2vT/R7CWb0GNtevkiX/EqJLeo/94+gCYro5bf79UsNc=
X-Gm-Gg: ASbGncs+hO7H59nt8ZT73p19/KJOmTqY/FvwPh1vP0dtzsusByVrob3rW/3O9CM5R3D
	SC5iteD3fIOTP2GIqYTuHpZTSdd3FSpXvIAmpbOCIuaartZMQcWl5bC/fQVxRisg5lIXuTHqeSK
	41ftpdnY4EqX6tGiQyrdfqr6btwX8YF6XvcKVD7kbX4Dvvp5P7UBwbX+K85Tp3jRRIZposgeYIO
	WGQ2ggC2PXC+JpqyQ/S9nWln6SogOtllLg7fU/642CwMfD3U6xW2ScDfTU0zld0wq8tKAOGLHYs
	pWCZ4d8ESuRNYfLbrZqdSd+y8Nn66Zzg9myS0+oloklcHVGVDR/bZAYO3MvponRlsv0MRBDLzTo
	zlxFHIllXSTbB01sMzoDSx4Y7oWyRxAg42iR4eQx4BBeoMa8n8hq09P5Uh+G05eikpA==
X-Google-Smtp-Source: AGHT+IF/+nWj4MOEfH0t1Kz/F6xOca3J29M36WGxLrYcLW4eMALGLRT9Z8R+1m9He+wyNMQ3ujcOCQ==
X-Received: by 2002:a05:6000:2508:b0:3b8:d4ad:6af0 with SMTP id ffacd0b85a97d-3b8d94c3c8dmr9844089f8f.40.1754403642148;
        Tue, 05 Aug 2025 07:20:42 -0700 (PDT)
Date: Tue, 5 Aug 2025 16: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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 4/8] pdx: allow per-arch optimization of PDX
 conversion helpers
Message-ID: <aJITOc6LSUULdxYQ@macbook.local>
References: <20250805095257.74975-1-roger.pau@citrix.com>
 <20250805095257.74975-5-roger.pau@citrix.com>
 <c077b195-171f-458e-b8df-644b37d50dfb@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <c077b195-171f-458e-b8df-644b37d50dfb@suse.com>

On Tue, Aug 05, 2025 at 02:11:22PM +0200, Jan Beulich wrote:
> On 05.08.2025 11:52, Roger Pau Monne wrote:
> > There are four performance critical PDX conversion helpers that do the PFN
> > to/from PDX and the physical addresses to/from directmap offsets
> > translations.
> > 
> > In the absence of an active PDX compression, those functions would still do
> > the calculations needed, just to return the same input value as no
> > translation is in place and hence PFN and PDX spaces are identity mapped.
> > 
> > To reduce the overhead of having to do the pointless calculations allow
> > architectures to implement the translation helpers in a per-arch header.
> > Rename the existing conversion functions to add a trailing _xlate suffix,
> > so that the per-arch headers can define the non suffixed versions.
> > 
> > Currently only x86 implements meaningful custom handlers to short circuit
> > the translation when not active, using asm goto.  Other architectures use
> > generic macros that map the non-xlate to the xlate variants to keep the
> > previous behavior.
> > 
> > Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> 
> Once again:
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thanks, I didn't carry your RB due to the changes requested by Andrew,
that was a bit too much to carry a RB after those.

Roger.


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 14:38:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 14:38:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070532.1434140 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujIno-00010B-Ns; Tue, 05 Aug 2025 14:38:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070532.1434140; Tue, 05 Aug 2025 14:38: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 1ujIno-000104-Kv; Tue, 05 Aug 2025 14:38:08 +0000
Received: by outflank-mailman (input) for mailman id 1070532;
 Tue, 05 Aug 2025 14:38:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Xkmx=2R=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1ujInn-0000zy-4p
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 14:38:07 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c9c171c0-7209-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 16:38:01 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-458c063baeaso21313545e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 07:38:01 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-45895377708sm248310625e9.8.2025.08.05.07.38.00
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Aug 2025 07:38: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>
X-Inumbo-ID: c9c171c0-7209-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754404681; x=1755009481; 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=Y3kWFb4yBoOLoTJjBIvHK8CDF3oXpQ59LnqtyPRirIQ=;
        b=ZUMjTZjnPelPP8tX6/yPEnL/tZ6YrXcecxjqwDrU5c4fuowP2nWvIBh+5pZPfZb2QO
         g4CoR2qRGp9usqT/L5PkieYQxbU90szSwVV/1aXU/59nbdyIIY8X+Ni2tcvdIZAZdVO4
         u7BmiLLWAQ0Qpeb+t4Bm04vSoO7lLM/TQ6Lx8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754404681; x=1755009481;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Y3kWFb4yBoOLoTJjBIvHK8CDF3oXpQ59LnqtyPRirIQ=;
        b=eJWwfQhUHFzG6PSSo0MUN2Xilf8JtaDNxgmt4QhVWPb4WAInbnooHLXIkhmOf49mCQ
         706o7oHT3YfE3R14wm5WcYwYgHB+3Cd1pPVmCbmdiH910itrSFcBhmzEtlIULHCoLutH
         dGmq2HoTeIsiGQnCs+fzgAPfa/TxjW7+eU3MABrSapmb4mHuQKVQvjHhr/96EzeLrKPa
         sWtAuvCqntp3RckkZ3zu5Iut8USWBE0vNJRNZUtg7f9AKfMjT6yragA8bh1raCQokVAk
         u9oBLjzqM3SnF+F/bxju5qH3UAmTcY+raiv2qoQc78ApI8KH6d+wKtXOuLov02GfoLBm
         KWYw==
X-Forwarded-Encrypted: i=1; AJvYcCVvUiCDLNac1VU3UhR44FG6h4c4QZa4JgSllC4SQeytDhI/goLfHlT1PMIZE6L9VEu3jDI6K2G76iI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwNhjbxQTWNDt4vtogNAn5EVWHohF9SR8hTGRZoNMFJ4GKk8ntI
	0XofbvwPUWqJ2QWQ3ts8ejrI7kH6BRQ18ToZjfLrAX9IAzbMdfpXuHbjhl+LraGboJk=
X-Gm-Gg: ASbGncvh4U1ExyBE7NWB+cYBpRv0//tRc3csvvj9787Tr32c2lHas36t2r0z71ZUv7D
	SqvKe86godGSRQdwOYv1ZYLajTKgLvklbNG1YHXSh34qkAV8QfTV5zS7aQNlD+rvOBQHqY7g2us
	jK/1rmpwevkUHADcPn9JgU9WOLvW/tC3TPtYoZBlQIAr9yL0194PynuoTwyfr4v0O+miupBhmrR
	PVEO9oPtOWWSk2GuEMhsSJnfv2OMZJqT93UJPBJMqtIH5ZAzN5lDXDrWj4tbwnTrQfNElOoODPr
	cdgsJwcO8UxybMR46nb/jfAsMpenLji6eGC6xOiXNHsf2tkR613WcBaXFvc6jcN+1Lb3avZQFAl
	iCIMPYMIaJiSw6/9G2zqWbXvB5ZbT++V90CRlyeO7eOApZLBybOx23B1eQ1fNst9iAg==
X-Google-Smtp-Source: AGHT+IFVY/WLfB2VEnFOFi8WeIxyYhSIW7uKHiPncgAqkna8IUHk0UoFucHlEfkWBdD0wp/8HAtooA==
X-Received: by 2002:a05:600c:c178:b0:455:fc16:9eb3 with SMTP id 5b1f17b1804b1-458b6b579e9mr102336525e9.33.1754404680807;
        Tue, 05 Aug 2025 07:38:00 -0700 (PDT)
Date: Tue, 5 Aug 2025 16:37:59 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.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>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 7/8] pdx: introduce a new compression algorithm based
 on region offsets
Message-ID: <aJIXR7WRiEzZXCgk@macbook.local>
References: <20250805095257.74975-1-roger.pau@citrix.com>
 <20250805095257.74975-8-roger.pau@citrix.com>
 <50aa7098-3777-43b2-8217-0b836a3c8879@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <50aa7098-3777-43b2-8217-0b836a3c8879@suse.com>

On Tue, Aug 05, 2025 at 02:28:22PM +0200, Jan Beulich wrote:
> On 05.08.2025 11:52, Roger Pau Monne wrote:
> > --- a/xen/common/pdx.c
> > +++ b/xen/common/pdx.c
> > @@ -24,6 +24,7 @@
> >  #include <xen/param.h>
> >  #include <xen/pfn.h>
> >  #include <xen/sections.h>
> > +#include <xen/sort.h>
> >  
> >  /**
> >   * Maximum (non-inclusive) usable pdx. Must be
> > @@ -40,6 +41,12 @@ bool __mfn_valid(unsigned long mfn)
> >  
> >  #ifdef CONFIG_PDX_MASK_COMPRESSION
> >      invalid |= mfn & pfn_hole_mask;
> > +#elif defined(CONFIG_PDX_OFFSET_COMPRESSION)
> > +{
> > +    unsigned long base = pfn_bases[PFN_TBL_IDX(mfn)];
> > +
> > +    invalid |= mfn < base || mfn >= base + pdx_region_size;
> > +}
> >  #endif
> 
> Hmm, didn't notice this earlier on: Brace placement looks odd here. I think
> they want to be indented by one level, as they aren't starting a function
> body.

Right, I can adjust.  Since they are inside of the ifdef block it did
look kind of OK to me, and avoided having to indent the content one
extra level.

> > @@ -294,7 +308,245 @@ void __init pfn_pdx_compression_reset(void)
> >      nr_ranges = 0;
> >  }
> >  
> > -#endif /* CONFIG_PDX_COMPRESSION */
> > +#elif defined(CONFIG_PDX_OFFSET_COMPRESSION) /* CONFIG_PDX_MASK_COMPRESSION */
> > +
> > +unsigned int __ro_after_init pfn_index_shift;
> > +unsigned int __ro_after_init pdx_index_shift;
> > +
> > +unsigned long __ro_after_init pfn_pdx_lookup[CONFIG_PDX_NR_LOOKUP];
> > +unsigned long __ro_after_init pdx_pfn_lookup[CONFIG_PDX_NR_LOOKUP];
> > +unsigned long __ro_after_init pfn_bases[CONFIG_PDX_NR_LOOKUP];
> > +unsigned long __ro_after_init pdx_region_size = ~0UL;
> 
> For cache locality, might this last one better also move ahead of the arrays?

Oh, yes, this was a late addition and I clearly didn't place enough
attention when adding it.

> > +bool pdx_is_region_compressible(paddr_t base, unsigned long npages)
> > +{
> > +    unsigned long pfn = PFN_DOWN(base);
> > +    unsigned long pfn_base = pfn_bases[PFN_TBL_IDX(pfn)];
> > +
> > +    return pfn >= pfn_base &&
> > +           pfn + npages <= pfn_base + pdx_region_size;
> > +}
> > +
> > +static int __init cf_check cmp_node(const void *a, const void *b)
> > +{
> > +    const struct pfn_range *l = a;
> > +    const struct pfn_range *r = b;
> > +
> > +    if ( l->base_pfn > r->base_pfn )
> > +        return 1;
> > +    if ( l->base_pfn < r->base_pfn )
> > +        return -1;
> > +
> > +    return 0;
> > +}
> > +
> > +static void __init cf_check swp_node(void *a, void *b)
> > +{
> > +    SWAP(a, b);
> > +}
> 
> This hasn't changed from v3, and still looks wrong to me.

Oh, I did recall a comment to that regard, but somehow forgot to apply
it, I'm sorry, I've now fixed it.

> > +bool __init pfn_pdx_compression_setup(paddr_t base)
> > +{
> > +    unsigned long mask = PFN_DOWN(pdx_init_mask(base)), idx_mask = 0;
> > +    unsigned long pages = 0;
> > +    unsigned int i;
> > +
> > +    if ( !nr_ranges )
> > +    {
> > +        printk(XENLOG_DEBUG "PFN compression disabled%s\n",
> > +               pdx_compress ? ": no ranges provided" : "");
> > +        return false;
> > +    }
> > +
> > +    if ( nr_ranges > ARRAY_SIZE(ranges) )
> > +    {
> > +        printk(XENLOG_WARNING
> > +               "Too many PFN ranges (%u > %zu), not attempting PFN compression\n",
> > +               nr_ranges, ARRAY_SIZE(ranges));
> > +        return false;
> > +    }
> > +
> > +    /* Sort ranges by start address. */
> > +    sort(ranges, nr_ranges, sizeof(*ranges), cmp_node, swp_node);
> > +
> > +    for ( i = 0; i < nr_ranges; i++ )
> > +    {
> > +        unsigned long start = ranges[i].base_pfn;
> > +
> > +        /*
> > +         * Align range base to MAX_ORDER.  This is required so the PDX offset
> > +         * for the bits below MAX_ORDER matches the MFN offset, and pages
> > +         * greater than the minimal order can be used to populate the
> > +         * directmap.
> > +         */
> > +        ranges[i].base_pfn = start & ~((1UL << MAX_ORDER) - 1);
> > +        ranges[i].pages = start + ranges[i].pages - ranges[i].base_pfn;
> > +
> > +        /*
> > +         * Only merge overlapped regions now, leave adjacent regions separated.
> > +         * They would be merged later if both use the same index into the
> > +         * lookup table.
> > +         */
> > +        if ( !i ||
> > +             ranges[i].base_pfn >=
> > +             (ranges[i - 1].base_pfn + ranges[i - 1].pages) )
> > +        {
> > +            mask |= pdx_region_mask(ranges[i].base_pfn, ranges[i].pages);
> > +            continue;
> > +        }
> > +
> > +        ranges[i - 1].pages = ranges[i].base_pfn + ranges[i].pages -
> > +                              ranges[i - 1].base_pfn;
> > +
> > +        if ( i + 1 < nr_ranges )
> > +            memmove(&ranges[i], &ranges[i + 1],
> > +                    (nr_ranges - (i + 1)) * sizeof(ranges[0]));
> > +        else /* last range */
> > +            mask |= pdx_region_mask(ranges[i].base_pfn, ranges[i].pages);
> > +        nr_ranges--;
> > +        i--;
> > +    }
> > +
> > +    /*
> > +     * Populate a mask with the non-equal bits of the different ranges, do this
> > +     * to calculate the maximum PFN shift to use as the lookup table index.
> > +     */
> > +    for ( i = 0; i < nr_ranges; i++ )
> > +        for ( unsigned int j = 0; j < nr_ranges; j++ )
> > +            idx_mask |= (ranges[i].base_pfn & ~mask) ^
> > +                        (ranges[j].base_pfn & ~mask);
> 
> "mask" is loop invariant - can't the AND-ing be pulled out, after the loop?

I've applied both of the above, thanks for the help.

Regards, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 14:46:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 14:46:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070540.1434150 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujIvW-0002kE-Fw; Tue, 05 Aug 2025 14:46:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070540.1434150; Tue, 05 Aug 2025 14: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 1ujIvW-0002k7-CQ; Tue, 05 Aug 2025 14:46:06 +0000
Received: by outflank-mailman (input) for mailman id 1070540;
 Tue, 05 Aug 2025 14:46:05 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fV7N=2R=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1ujIvV-0002k1-2e
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 14:46:05 +0000
Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com
 [2a00:1450:4864:20::536])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e93691e5-720a-11f0-a321-13f23c93f187;
 Tue, 05 Aug 2025 16:46:03 +0200 (CEST)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-60c9d8a169bso8056592a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 07:46:03 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-615a8ffb8d7sm8602309a12.47.2025.08.05.07.46.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Aug 2025 07:46: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>
X-Inumbo-ID: e93691e5-720a-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754405163; x=1755009963; darn=lists.xenproject.org;
        h=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=AVKjcG+I5FfwHY+H43Brm9z2hdRjzirAlr0kKUF8qoY=;
        b=WCzm9NO8ThYYt9UB9vZjN2O5sUbctqwG8jiAILvwf8b/eqYtLGzya2FYKlSn3nTAxR
         TnxQziDpuQ61DzBujcy9NIime182W4RUPKQ89IvCC3ytain+l1jC3bQmnmIECIQWVcC9
         zDCDluTGzI4fQPiq8jnA3R3ZFiWyUxQJVq0VHt5/fbHMUnWzih+Pi3iGmflmdW154JKj
         6j52WBB4iwrEXjPVxCAqm+QQikSD6aiTdxjZ2OiH/djQlLLchxXF8zlZgVdcWOeitzyM
         JKE0CpSpvbTnLUrgeOQi6SID4cPqn7In6tgH/KSD+6koNsvLNcEYIhrZvRAkid50kOX3
         +UgQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754405163; x=1755009963;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=AVKjcG+I5FfwHY+H43Brm9z2hdRjzirAlr0kKUF8qoY=;
        b=jnHzYyyVu+x9eRrQhH/ZC6ofIpHv+HGZ847RsLasXBM7k9FGvGDljeR4Xvr0GYWSxM
         cjwJ0Tr55F5DnkX94jXggmfkqNObvxvWXgoVQVQ/mgyDZNO4TZm2MEdz3RBViNi31LDl
         IXstbbiZqIWII+30YD6cquNEKy03+7n3nqYdNn3SqCxlVlXpKIjXc7PVaN2a1K2088Bo
         B4C0aQTuiKHQXzOK7+Rb2w9YtS9tHdjCw4/sfIjHIBP1woahmtBOXyDHcpVznJku5u1w
         fjU8dqt2Xa9nQ+TWwoqfG6MJQZ+ZkG/VWsqXIeTdxWldKXOMsUv8RrUMXYW2KpvQnuQn
         FLTw==
X-Forwarded-Encrypted: i=1; AJvYcCWQEaw5W1OMRY0ZrdcXhHJk64nevFXXKLHlhjoYA1OWFxR1NaaBgGju2PX3KbuuMhHHERtGMLf30Vc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzWAagDVGcFSlh7BKKA6FcFeYR3jVbp6E9hqjJG5P2bVa0PJdoB
	mPM9cTImGZL3XtWt7X678N8xf7Ns5kCdCgMvCA/Fp4GC6MSH+FoGcbwv
X-Gm-Gg: ASbGncvpMzBSfX9lg6GLeZl27Ow6nC1p12vfqXoPmg7AHd33W+8KzoFdZ0TFBzsAFUw
	w/9KzCnaT6aIkLo+0rraMtWkqhVf87SsiBbKmjobl6hfvmNXptqCz5SDYYbfbPxNJsXxUC3IhT1
	v95Kak74vwAn6KLGr1jlnfJCARlzF1ZvwbJGjnvckf95+v5k7SS+1xWw92f9PUIqCTAYQ3BYnD/
	jjmZaV9DCQNU16cHbHqWyix2FcnE6uiOxhwNBHH7TxzqWoM9/lVo9NwWjG/7OnIwj/i4G7O95Tc
	pRl4OgsaCc9fJcyH9pBC47S2DhlCTV8CeztTd0/+f6gbee9ucLCqf1FlqGcb3zg52BEJwyDIpXR
	tUuNvbBXoax42SlykrR6jiQ7rseZk8a2YHyIEC/KXnGw+6AdSS/TEJp7INmERXN5bFMa5Gs4=
X-Google-Smtp-Source: AGHT+IFF1XTBKw1iO6PFALH9OmUpeTkFS7RBU3NdPaMsrVp/Tpubo2pzCQAcXih3EjLTU/V6tngEEQ==
X-Received: by 2002:a05:6402:354f:b0:615:adc4:1e66 with SMTP id 4fb4d7f45d1cf-615e7173006mr13415278a12.25.1754405161413;
        Tue, 05 Aug 2025 07:46:01 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------kdt00xxFjWrjsxUeIoZikbxX"
Message-ID: <b9fb09d7-ea4c-4b23-811b-f87ca658fff7@gmail.com>
Date: Tue, 5 Aug 2025 16:45:59 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 01/20] xen/riscv: implement sbi_remote_hfence_gvma()
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <b0649cf7b071d0a1cdd7fc9b8d73abea5d0646b4.1753973161.git.oleksii.kurochko@gmail.com>
 <829f9477-2b18-47f0-8fb3-57bffa8d133d@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <829f9477-2b18-47f0-8fb3-57bffa8d133d@suse.com>

This is a multi-part message in MIME format.
--------------kdt00xxFjWrjsxUeIoZikbxX
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 8/4/25 3:52 PM, Jan Beulich wrote:
> On 31.07.2025 17:58, Oleksii Kurochko wrote:
>> Instruct the remote harts to execute one or more HFENCE.GVMA instructions,
>> covering the range of guest physical addresses between start_addr and
>> start_addr + size for all VMIDs.
>>
>> The remote fence operation applies to the entire address space if either:
>>   - start_addr and size are both 0, or
>>   - size is equal to 2^XLEN-1.
>>
>> Signed-off-by: Oleksii Kurochko<oleksii.kurochko@gmail.com>
> Acked-by: Jan Beulich<jbeulich@suse.com>
>
> However, ...
>
>> --- a/xen/arch/riscv/include/asm/sbi.h
>> +++ b/xen/arch/riscv/include/asm/sbi.h
>> @@ -89,6 +89,25 @@ bool sbi_has_rfence(void);
>>   int sbi_remote_sfence_vma(const cpumask_t *cpu_mask, vaddr_t start,
>>                             size_t size);
>>   
>> +/*
>> + * Instructs the remote harts to execute one or more HFENCE.GVMA
>> + * instructions, covering the range of guest physical addresses
>> + * between start_addr and start_addr + size for all VMIDs.
> ... I'd like to ask that you avoid fuzzy terminology like this one. Afaict
> you mean [start, start + size). Help yourself and future readers by then
> also saying it exactly like this. (Happy to make a respective edit while
> committing.)

I just tried the following wording in SBI spec.

I agree that using [start, start+size) is clearer as each time I'm going
to check SBI code to verify if 'start+size' is included or not.

It would be happy if you could update this part of commit message during
commit.

>
>> + * Returns 0 if IPI was sent to all the targeted harts successfully
>> + * or negative value if start_addr or size is not valid.
> This similarly is ambiguous: The union of the success case stated and the
> error case stated isn't obviously all possible states. The success
> statement in particular alludes to the possibility of an IPI not actually
> reaching its target.

The same as above this is what SBI spec. tells.

I've not checked SBI code deeply, but it seems like the code is waiting while
IPI will be reached as looking at the code:
	/**
	 * As this this function only handlers scalar values of hart mask, it must be
	 * set to all online harts if the intention is to send IPIs to all the harts.
	 * If hmask is zero, no IPIs will be sent.
	 */
	int sbi_ipi_send_many(ulong hmask, ulong hbase, u32 event, void *data)
	{
                 ...
	
		/* Send IPIs */
		do {
			retry_needed = false;
			sbi_hartmask_for_each_hart(i, &target_mask) {
				rc = sbi_ipi_send(scratch, i, event, data);
				if (rc == SBI_IPI_UPDATE_RETRY)
					retry_needed = true;
				else
					sbi_hartmask_clear_hart(i, &target_mask);
			}
		} while (retry_needed);
	
		/* Sync IPIs */
		sbi_ipi_sync(scratch, event);
	
		return 0;
	}
and
	static int sbi_ipi_sync(struct sbi_scratch *scratch, u32 event)
	{
		const struct sbi_ipi_event_ops *ipi_ops;
	
		if ((SBI_IPI_EVENT_MAX <= event) ||
		    !ipi_ops_array[event])
			return SBI_EINVAL;
		ipi_ops = ipi_ops_array[event];
	
		if (ipi_ops->sync)
			ipi_ops->sync(scratch);
	
		return 0;
	}
which calls:
	static void tlb_sync(struct sbi_scratch *scratch)
	{
		atomic_t *tlb_sync =
				sbi_scratch_offset_ptr(scratch, tlb_sync_off);
	
		while (atomic_read(tlb_sync) > 0) {
			/*
			 * While we are waiting for remote hart to set the sync,
			 * consume fifo requests to avoid deadlock.
			 */
			tlb_process_once(scratch);
		}
	
		return;
	}

>
>> + * The remote fence operation applies to the entire address space if either:
>> + *  - start_addr and size are both 0, or
>> + *  - size is equal to 2^XLEN-1.
> Whose XLEN is this? The guest's? The host's? (I assume the latter, but it's
> not unambiguous, unless there's specific terminology that I'm unaware of,
> yet which would make this unambiguous.)

RISC-V spec quite mixes the terminology (3.1.6.2. Base ISA Control in mstatus Register)
around XLEN:
   For RV64 harts, the SXL and UXL fields are WARL fields that control the value
   of XLEN for S-mode and U-mode, respectively. The encoding of these fields is
   the same as the MXL field of misa, shown in Table 9. The effective XLEN in
   S-mode and U-mode are termed SXLEN and UXLEN, respectively

Basically, RISC-V privileged architecture defines different XLEN values for
various privilege modes:
 Â - MXLEN for Machine mode
  - SXLEN for Supervisor mode.
 Â - HSXLEN for Hypervisor-Supervisor mode.
 Â - VSXLEN for Virtual Supervisor mode.

Considering that SBI is an API that is provided for S-mode I expect that XLEN = SXLEN
in this case, but SBI spec. is using just XLEN.

~ Oleksii

--------------kdt00xxFjWrjsxUeIoZikbxX
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/4/25 3:52 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:829f9477-2b18-47f0-8fb3-57bffa8d133d@suse.com">
      <pre wrap="" class="moz-quote-pre">On 31.07.2025 17:58, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">Instruct the remote harts to execute one or more HFENCE.GVMA instructions,
covering the range of guest physical addresses between start_addr and
start_addr + size for all VMIDs.

The remote fence operation applies to the entire address space if either:
 - start_addr and size are both 0, or
 - size is equal to 2^XLEN-1.

Signed-off-by: Oleksii Kurochko <a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Acked-by: Jan Beulich <a class="moz-txt-link-rfc2396E" href="mailto:jbeulich@suse.com">&lt;jbeulich@suse.com&gt;</a>

However, ...

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/include/asm/sbi.h
+++ b/xen/arch/riscv/include/asm/sbi.h
@@ -89,6 +89,25 @@ bool sbi_has_rfence(void);
 int sbi_remote_sfence_vma(const cpumask_t *cpu_mask, vaddr_t start,
                           size_t size);
 
+/*
+ * Instructs the remote harts to execute one or more HFENCE.GVMA
+ * instructions, covering the range of guest physical addresses
+ * between start_addr and start_addr + size for all VMIDs.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
... I'd like to ask that you avoid fuzzy terminology like this one. Afaict
you mean [start, start + size). Help yourself and future readers by then
also saying it exactly like this. (Happy to make a respective edit while
committing.)</pre>
    </blockquote>
    <pre>I just tried the following wording in SBI spec.

I agree that using [start, start+size) is clearer as each time I'm going
to check SBI code to verify if 'start+size' is included or not.

It would be happy if you could update this part of commit message during
commit.

</pre>
    <blockquote type="cite"
      cite="mid:829f9477-2b18-47f0-8fb3-57bffa8d133d@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+ * Returns 0 if IPI was sent to all the targeted harts successfully
+ * or negative value if start_addr or size is not valid.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
This similarly is ambiguous: The union of the success case stated and the
error case stated isn't obviously all possible states. The success
statement in particular alludes to the possibility of an IPI not actually
reaching its target.</pre>
    </blockquote>
    <pre>The same as above this is what SBI spec. tells.

I've not checked SBI code deeply, but it seems like the code is waiting while
IPI will be reached as looking at the code:
	/**
	 * As this this function only handlers scalar values of hart mask, it must be
	 * set to all online harts if the intention is to send IPIs to all the harts.
	 * If hmask is zero, no IPIs will be sent.
	 */
	int sbi_ipi_send_many(ulong hmask, ulong hbase, u32 event, void *data)
	{
                ...
	
		/* Send IPIs */
		do {
			retry_needed = false;
			sbi_hartmask_for_each_hart(i, &amp;target_mask) {
				rc = sbi_ipi_send(scratch, i, event, data);
				if (rc == SBI_IPI_UPDATE_RETRY)
					retry_needed = true;
				else
					sbi_hartmask_clear_hart(i, &amp;target_mask);
			}
		} while (retry_needed);
	
		/* Sync IPIs */
		sbi_ipi_sync(scratch, event);
	
		return 0;
	}
and
	static int sbi_ipi_sync(struct sbi_scratch *scratch, u32 event)
	{
		const struct sbi_ipi_event_ops *ipi_ops;
	
		if ((SBI_IPI_EVENT_MAX &lt;= event) ||
		    !ipi_ops_array[event])
			return SBI_EINVAL;
		ipi_ops = ipi_ops_array[event];
	
		if (ipi_ops-&gt;sync)
			ipi_ops-&gt;sync(scratch);
	
		return 0;
	}
which calls:
	static void tlb_sync(struct sbi_scratch *scratch)
	{
		atomic_t *tlb_sync =
				sbi_scratch_offset_ptr(scratch, tlb_sync_off);
	
		while (atomic_read(tlb_sync) &gt; 0) {
			/*
			 * While we are waiting for remote hart to set the sync,
			 * consume fifo requests to avoid deadlock.
			 */
			tlb_process_once(scratch);
		}
	
		return;
	}

</pre>
    <blockquote type="cite"
      cite="mid:829f9477-2b18-47f0-8fb3-57bffa8d133d@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+ * The remote fence operation applies to the entire address space if either:
+ *  - start_addr and size are both 0, or
+ *  - size is equal to 2^XLEN-1.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Whose XLEN is this? The guest's? The host's? (I assume the latter, but it's
not unambiguous, unless there's specific terminology that I'm unaware of,
yet which would make this unambiguous.)</pre>
    </blockquote>
    <pre>RISC-V spec quite mixes the terminology (3.1.6.2. Base ISA Control in mstatus Register)
around XLEN:
  For RV64 harts, the SXL and UXL fields are WARL fields that control the value
  of XLEN for S-mode and U-mode, respectively. The encoding of these fields is
  the same as the MXL field of misa, shown in Table 9. The effective XLEN in
  S-mode and U-mode are termed SXLEN and UXLEN, respectively

Basically, RISC-V privileged architecture defines different XLEN values for
various privilege modes:
Â - MXLEN for Machine mode
 - SXLEN for Supervisor mode.
Â - HSXLEN for Hypervisor-Supervisor mode.
Â - VSXLEN for Virtual Supervisor mode.

Considering that SBI is an API that is provided for S-mode I expect that XLEN = SXLEN
in this case, but SBI spec. is using just XLEN.

~ Oleksii
</pre>
  </body>
</html>

--------------kdt00xxFjWrjsxUeIoZikbxX--


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 14:57:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 14:57:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070563.1434159 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujJ6k-0004aP-HD; Tue, 05 Aug 2025 14:57:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070563.1434159; Tue, 05 Aug 2025 14:57: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 1ujJ6k-0004aI-Ej; Tue, 05 Aug 2025 14:57:42 +0000
Received: by outflank-mailman (input) for mailman id 1070563;
 Tue, 05 Aug 2025 14:57:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fV7N=2R=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1ujJ6j-0004aC-HW
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 14:57:41 +0000
Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com
 [2a00:1450:4864:20::62a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 87f00069-720c-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 16:57:39 +0200 (CEST)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-af9618282a5so538078066b.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 07:57:39 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a0a3cecsm918417666b.53.2025.08.05.07.57.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Aug 2025 07:57: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>
X-Inumbo-ID: 87f00069-720c-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754405859; x=1755010659; darn=lists.xenproject.org;
        h=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=x6wfcfeOmRP476JsDeNW3IblGI4JdKzWxCKtel4ASqo=;
        b=aIDAZlgCscYBZqyl3QR1Gh1pbcUF9Kzx8h6KzdpXpSFkgluyz78Z3OMjaHX+wN0vVc
         Up/6cVQ1n7BNAXGcSPGMl++eWaeL/vCqtRQUg/3GhaP984Wm6wDc5ptzNeMHRzjWfsYe
         3j6yiU9PydOEP1zSqF2WhSs84BIutZkV5zZQL/hmLZnpnAeNkcge7vKwK21dntVNdVrI
         ROEghqVrHwE5GSTejWvnXFMFgtRYRmd5pH1W/ZRjqjPBEXf5rD8kva97FfaYZX0DtyHJ
         zCEUG8QukBjlT0alNCXr7W77Xi0X0vtcXXOuxVIyUNLefNgLTuhk8QGaMQ93wNgRG9hZ
         LANA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754405859; x=1755010659;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=x6wfcfeOmRP476JsDeNW3IblGI4JdKzWxCKtel4ASqo=;
        b=a02KRDAAuzdN6KwoeDy56czqZrd5mva1GWMBkC0+3s3QMZXbZ/qlnaDKm8Pf2iyTV6
         aUzJy1Ifjn/hBBxgnpm11Q6Jaws64NTlMmcVdSYMgQM0sU8jI2c4Erg5q5F+IEcWSLBr
         wXxGamiHIzIIqcazfNtRMzfT4gCyKmWcKyMk69v+02AJDzq9F+Vm8DcvxZGW8WpOBPX9
         wLg0GtI5VKk4dfjvmJN5Sf26tuSUc/4797E/8xGpAT074JJcvgO7xshxWQdiQqOd8Xi8
         PyZjVCkl6Q0jZr9CSs43WuSYw/xvsZRK1xHeW4ftV/h4c11MDqeR7Kq8x59NuYThK99h
         /3pg==
X-Forwarded-Encrypted: i=1; AJvYcCUi7mJd7CbPm07cociKouFU9H3PBxBQcfI080paGDWw4ecsq9a6kYv4NF+NKkitUCdTyPhszTEkqq4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyrQk1H8xWewXjut838bNSL8na/SauZuW0AqYA8Y1CbJntDAbq9
	wK4Sr/XIoLetJM8WqXaLG6sBt7rtylvsEpaSxNWp4ML3VGbBL6yDuWVe
X-Gm-Gg: ASbGnct05w2pvhOeWPLBw/sRzxqN/QbfjmqC2KYNbWF8ZuoeaT2XllZeN+DqwBetA88
	K+rIjGn6hWK60M7hF6Mlz6ergPKQeLiNdUu7mTyZ/bYdStj1ZskVMkHeRyN6gQIqxE7lr1HcIMG
	8NYxXatku5bu/0qBvJcMjI3u9PCslsOG9zftkiTTxHtQSSqQ8TNN9y6hvk4BHepurUcRGqmla17
	p+Kvcj9TbpGspPSVZ8UJ2Hil0PEdHL0sDoRtCJtilGZuECVDIt0uJ8umQ5ONbziKdQXJolNWogI
	Qm/dnHZ094aoW5mPSqM8FocdhxlEKjh+Fz4xJ490so0BR17uqQ3v6X7bA0gXuLpHu7EOAD9d77M
	RcLHv4pQlLhHezm1BAvwHkg5H1MUcPSYk0w3rF9XpJZvUK81ZBm5YLYQBEYGzyMp9Icpvo6Q=
X-Google-Smtp-Source: AGHT+IEA/cQmn8aTtI044eWJo6JWEkbYozceLiUq5YmUtw5mBzCuA0ZHL2w7BjPbdd+rzRPLR+H5JA==
X-Received: by 2002:a17:907:97c5:b0:ae3:67c7:54a6 with SMTP id a640c23a62f3a-af9401bb6b4mr1490175966b.34.1754405858790;
        Tue, 05 Aug 2025 07:57:38 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------Tw0jcxWjp0ZzjXU7Gtfn0Rly"
Message-ID: <512b1549-17ef-46ea-9247-0b71218be574@gmail.com>
Date: Tue, 5 Aug 2025 16:57:37 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 02/20] xen/riscv: introduce
 sbi_remote_hfence_gvma_vmid()
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <de83ed75b0d7109d007389ec4809320c59c10bf7.1753973161.git.oleksii.kurochko@gmail.com>
 <164e0f8e-3986-4c9a-8201-14ea006405c7@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <164e0f8e-3986-4c9a-8201-14ea006405c7@suse.com>

This is a multi-part message in MIME format.
--------------Tw0jcxWjp0ZzjXU7Gtfn0Rly
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 8/4/25 3:55 PM, Jan Beulich wrote:
> On 31.07.2025 17:58, Oleksii Kurochko wrote:
>> It instructs the remote harts to execute one or more HFENCE.GVMA instructions
>> by making an SBI call, covering the range of guest physical addresses between
>> start_addr and start_addr + size only for the given VMID.
>>
>> The remote fence operation applies to the entire address space if either:
>>    - start_addr and size are both 0, or
>>    - size is equal to 2^XLEN-1.
>>
>> Signed-off-by: Oleksii Kurochko<oleksii.kurochko@gmail.com>
> Acked-by: Jan Beulich<jbeulich@suse.com>
> with perhaps a similar on-commit edit as suggested for patch 1.

I would happy if you could do that during merge. Thanks.

~ Oleksii

--------------Tw0jcxWjp0ZzjXU7Gtfn0Rly
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/4/25 3:55 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:164e0f8e-3986-4c9a-8201-14ea006405c7@suse.com">
      <pre wrap="" class="moz-quote-pre">On 31.07.2025 17:58, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">It instructs the remote harts to execute one or more HFENCE.GVMA instructions
by making an SBI call, covering the range of guest physical addresses between
start_addr and start_addr + size only for the given VMID.

The remote fence operation applies to the entire address space if either:
  - start_addr and size are both 0, or
  - size is equal to 2^XLEN-1.

Signed-off-by: Oleksii Kurochko <a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Acked-by: Jan Beulich <a class="moz-txt-link-rfc2396E" href="mailto:jbeulich@suse.com">&lt;jbeulich@suse.com&gt;</a>
with perhaps a similar on-commit edit as suggested for patch 1.</pre>
    </blockquote>
    <pre>I would happy if you could do that during merge. Thanks.

~ Oleksii</pre>
  </body>
</html>

--------------Tw0jcxWjp0ZzjXU7Gtfn0Rly--


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 15:01:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 15:01:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070571.1434170 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujJAZ-0006Cr-2A; Tue, 05 Aug 2025 15:01:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070571.1434170; Tue, 05 Aug 2025 15:01:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujJAY-0006Ck-Vb; Tue, 05 Aug 2025 15:01:38 +0000
Received: by outflank-mailman (input) for mailman id 1070571;
 Tue, 05 Aug 2025 15:01:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=j2i0=2R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujJAY-0006Ca-5A
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 15:01:38 +0000
Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com
 [2a00:1450:4864:20::635])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 14fafea3-720d-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 17:01:36 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-af958127df5so513087366b.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 08:01: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
 a640c23a62f3a-af91a0a374dsm915770866b.36.2025.08.05.08.01.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Aug 2025 08:01: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>
X-Inumbo-ID: 14fafea3-720d-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754406095; x=1755010895; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=KYYu+Z1IE6b41h4Pk5zDGzMcaFnvtPZ30MbOVI4uOiE=;
        b=BpF6xqMD2Lc9TfrCMbpkjY3JU4datWwcnwZPEDgnWBqflr/H5u8cCx0nXGS0bFXggY
         0XZD00D44jxbULMaU3eqd2aeZ7DuT5dPdn4cC0Pg/kMvOFuSKk9wxy71W4t/kyKTkCDC
         PhyZoAaiF2rbDFj8eXOGAAe45MLY5A4oovUEpIn/xy3spnRYKDeEgfRH3gN7fo+woUb/
         81uAhoQ1WU5c638N+rbjnFFELMGrzV5EAp87qfzXiEAVoeYAy2AA3LeUt0FNjM+Ggody
         J7kOG3W2pYYNV7YXIzZOYihJt+AdO3CzzUguPF9mQU1lCYkihgWNPu2jj3liiGHzz/3p
         o/Mg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754406095; x=1755010895;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=KYYu+Z1IE6b41h4Pk5zDGzMcaFnvtPZ30MbOVI4uOiE=;
        b=LyONhVP3kjDnJYDeS8DN64NZBGsoL2PcpUfcwTcxm6ckOxlPKoTkv1MGsGTm3MAnRy
         3p5sR+EBuEhA+IHeVxcdC0wf/tGnj1AKnOoUqXf8yB3+4Fn1tFQ/5QXcN3u5UypYkS60
         iZ+V4cC1KQWHEclOUqJUWSgO/PrXj6b1gkXiMPuo2pQk8vsOYuWrlXLyynT29y3+i65i
         85Ayr77OXW0WwFlQOlKNTvSRa8h+n/WIp4WKGCZk2kIDMqzloeBjsxN3eS2jsMiAUO5a
         ZmT33O1Lwl58xFuDJEIvMSkseHoC9Dgzm0oyyTyfLvpEKnTzbEgaEh0oLMuNqQhZHPr8
         92mg==
X-Forwarded-Encrypted: i=1; AJvYcCXPUxiXAusNR3CxGn0XnDVpet5UsrXQsm7YT4WwgAyDXe+3vvyAUff4cu8FlGsu/iPloTihfbdqfnw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwlVNl6FNOFCJZ/fTlBOag6q3X88EKSuXgj/UX1Pe0Mm6ywbHD8
	b+tk0wwsVl7U3pbXPlocHlq/YUMBhoVTah+jxr9x8ixABkiEPBPrugLIMj4TtlFmRw==
X-Gm-Gg: ASbGncvFRnvTca6HU3bNL0cHB2WtvqeYNgohIj2JBzZ5wBIPB3hiJsoKIoCnUCklRPd
	4jpn+R3/80ergDi45nZfpBxTFaamJ7gAun2tcaY3Yy854+onPKAecnJdGBp+OCL5SC4fQdAi7ik
	mpgYHsOHnvsaI+4FSLwkLzSzxBZ1HVYmWiwbJ6JmxagbK5cbUeW5H1b4CDfH9zVnxhkVGxRu+Ee
	8x5zALIejyZOlu2jGLFsu5MppLYvhCc1Jzf+RkyaXLg5Gr+3hJuMv6YFunXnvGtoPEQlSWKrySH
	GOpY/qUoumbL0yHUR2iOHl1Es4Fb1H2zFgroTZ+On0estWK4ULvjL6iSzRv/PjHIcANTSz6SUj0
	MqP0qlW2HObLihi1W4yxSHm6DTGKgboFgZeP/uTVU7bhyGKYou7BK25mc+zgOEQ90TxieXUe9o1
	6ONM7EQXs=
X-Google-Smtp-Source: AGHT+IFcbQ3mDedlif+FWmO0q+zWQtQ+MhPGFHUy9ZnwtDjSTBXQ2qu0YeaUuDZVHNofqdJVD6Z0iw==
X-Received: by 2002:a17:907:6d14:b0:ae3:cc60:8ce7 with SMTP id a640c23a62f3a-af94001fea2mr1421950266b.19.1754406093496;
        Tue, 05 Aug 2025 08:01:33 -0700 (PDT)
Message-ID: <55a08131-169d-49b3-a499-d7057e7affac@suse.com>
Date: Tue, 5 Aug 2025 17:01:31 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 01/20] xen/riscv: implement sbi_remote_hfence_gvma()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <b0649cf7b071d0a1cdd7fc9b8d73abea5d0646b4.1753973161.git.oleksii.kurochko@gmail.com>
 <829f9477-2b18-47f0-8fb3-57bffa8d133d@suse.com>
 <b9fb09d7-ea4c-4b23-811b-f87ca658fff7@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: <b9fb09d7-ea4c-4b23-811b-f87ca658fff7@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.08.2025 16:45, Oleksii Kurochko wrote:
> On 8/4/25 3:52 PM, Jan Beulich wrote:
>> On 31.07.2025 17:58, Oleksii Kurochko wrote:
>>> + * Returns 0 if IPI was sent to all the targeted harts successfully
>>> + * or negative value if start_addr or size is not valid.
>> This similarly is ambiguous: The union of the success case stated and the
>> error case stated isn't obviously all possible states. The success
>> statement in particular alludes to the possibility of an IPI not actually
>> reaching its target.
> 
> The same as above this is what SBI spec. tells.
> 
> I've not checked SBI code deeply, but it seems like the code is waiting while
> IPI will be reached as looking at the code:
> 	/**
> 	 * As this this function only handlers scalar values of hart mask, it must be
> 	 * set to all online harts if the intention is to send IPIs to all the harts.
> 	 * If hmask is zero, no IPIs will be sent.
> 	 */
> 	int sbi_ipi_send_many(ulong hmask, ulong hbase, u32 event, void *data)
> 	{
>                  ...
> 	
> 		/* Send IPIs */
> 		do {
> 			retry_needed = false;
> 			sbi_hartmask_for_each_hart(i, &target_mask) {
> 				rc = sbi_ipi_send(scratch, i, event, data);
> 				if (rc == SBI_IPI_UPDATE_RETRY)
> 					retry_needed = true;
> 				else
> 					sbi_hartmask_clear_hart(i, &target_mask);
> 			}
> 		} while (retry_needed);
> 	
> 		/* Sync IPIs */
> 		sbi_ipi_sync(scratch, event);
> 	
> 		return 0;
> 	}
> and
> 	static int sbi_ipi_sync(struct sbi_scratch *scratch, u32 event)
> 	{
> 		const struct sbi_ipi_event_ops *ipi_ops;
> 	
> 		if ((SBI_IPI_EVENT_MAX <= event) ||
> 		    !ipi_ops_array[event])
> 			return SBI_EINVAL;
> 		ipi_ops = ipi_ops_array[event];
> 	
> 		if (ipi_ops->sync)
> 			ipi_ops->sync(scratch);
> 	
> 		return 0;
> 	}
> which calls:
> 	static void tlb_sync(struct sbi_scratch *scratch)
> 	{
> 		atomic_t *tlb_sync =
> 				sbi_scratch_offset_ptr(scratch, tlb_sync_off);
> 	
> 		while (atomic_read(tlb_sync) > 0) {
> 			/*
> 			 * While we are waiting for remote hart to set the sync,
> 			 * consume fifo requests to avoid deadlock.
> 			 */
> 			tlb_process_once(scratch);
> 		}
> 	
> 		return;
> 	}

I'll leave that comment as-is then, even if I'm not really happy with it.

>>> + * The remote fence operation applies to the entire address space if either:
>>> + *  - start_addr and size are both 0, or
>>> + *  - size is equal to 2^XLEN-1.
>> Whose XLEN is this? The guest's? The host's? (I assume the latter, but it's
>> not unambiguous, unless there's specific terminology that I'm unaware of,
>> yet which would make this unambiguous.)
> 
> RISC-V spec quite mixes the terminology (3.1.6.2. Base ISA Control in mstatus Register)
> around XLEN:
>    For RV64 harts, the SXL and UXL fields are WARL fields that control the value
>    of XLEN for S-mode and U-mode, respectively. The encoding of these fields is
>    the same as the MXL field of misa, shown in Table 9. The effective XLEN in
>    S-mode and U-mode are termed SXLEN and UXLEN, respectively
> 
> Basically, RISC-V privileged architecture defines different XLEN values for
> various privilege modes:
>  Â - MXLEN for Machine mode
>   - SXLEN for Supervisor mode.
>  Â - HSXLEN for Hypervisor-Supervisor mode.
>  Â - VSXLEN for Virtual Supervisor mode.
> 
> Considering that SBI is an API that is provided for S-mode I expect that XLEN = SXLEN
> in this case, but SBI spec. is using just XLEN.

Very helpful.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 15:02:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 15:02:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070578.1434179 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujJBh-0006iz-AO; Tue, 05 Aug 2025 15:02:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070578.1434179; Tue, 05 Aug 2025 15:02:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujJBh-0006is-7V; Tue, 05 Aug 2025 15:02:49 +0000
Received: by outflank-mailman (input) for mailman id 1070578;
 Tue, 05 Aug 2025 15:02:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=j2i0=2R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujJBf-0006gv-PL
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 15:02:47 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3eb969de-720d-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 17:02:46 +0200 (CEST)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-615756b1e99so6797563a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 08:02: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
 4fb4d7f45d1cf-615a8feaf2fsm8518276a12.38.2025.08.05.08.02.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Aug 2025 08:02: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>
X-Inumbo-ID: 3eb969de-720d-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754406165; x=1755010965; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=R9riBH9SDWMGad/w+P2+OiUlMix4MWymTMwpITxxLzs=;
        b=NcbfVMqmIelV95fQfd/k+n/hp6D/bhF3ABfqc6xzyAnSj+APYkDLyR5cZ1CDsyhvJG
         JO4yx7pkG087eNdp/Wl8TEletlKCp4G0EEcelvHfvV42moJF1SbTC55I77KgsQh1zJEz
         OYeWfbmzWwh56kvhPqZ98mFTth8Ar3MERcDpiuXH8Znd11Es06VNPbP5rJTeQVcaQD/a
         e3laSau7g/jv3JoHgwK5UwHZwVwUKQS4cIWKsfxJld6sSN4RHKDQjWJQUZml/zQVx291
         0rYpiQ9fP/A9fquWvlBxVGX1yZIRYCkGaEnxfOFFw0OAO2OOhSnoWayVMym5w42T6l6m
         mcsA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754406166; x=1755010966;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=R9riBH9SDWMGad/w+P2+OiUlMix4MWymTMwpITxxLzs=;
        b=fBYYDeL4+JKxDDpWvWCl3kpRinh6hRAlKv2eTmtz60A9LHJJT0cMqc6gD/02Mihpt7
         xDrq6JPok+URW6WKoeSG8XOy+I4c1VAP1c/TXZSb1BZcE0gpK9eA1+xSOClLIbKXg6An
         z7ZUGcY+FGTN+AzB9GSXEAgStJR5vZCaGjmVTF4Thb28atWp34c0qF4dy9uauYAXkNq6
         r9Gfye1hw1bTopXTaCJERtGAI/6ps8t6Zho0VSmwnxdmIbrPyyDod4LDAZCgZDqv5Efm
         xZUWaZx8YPCYbGugfvbtwG/zeDAKVxzUOKfSiK35D0QUD+VL9Res4iBQCxGprYbVTgfT
         df5w==
X-Forwarded-Encrypted: i=1; AJvYcCWRZNOKhha6bCfFMFBIbMBxm3UY/DopnzZCMnxEhDuO3iRnx2GoICxO4Swp1+Y+OjwsaNl17iZ0VYs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxPyaSfvt77OBIrfHjF+QaMNozxpaV2Xn68hMzdYmGywVkvxxbt
	BtPdDOQJdC9IQ0hJa/lY34yEevyeSdeflrhoDfzvk8fhXQ60Mhs3XOOFq/STgG9t6A==
X-Gm-Gg: ASbGncsEiaXWeqLxZmtc5tY7Zj+iVGL7GM/V1rfiIiWG2JKNIC2mR+s8tsTIIVN6AD8
	ZqGX7vrbLjAUnwfOprowwkzRIXlVLfRWqgD/bGY1oxE06efbpL0p2F2rJREG9uAFFkVROS1qAH+
	9vN8BPb+cxZzHH1EvVQK4/xyRc/2xSmYZtE6gwXQNuw7EPeWeh0JFn4GDyNKSuF6NnvQWAk4Eyt
	VGEmKis6U5vPviFBO2ObFHQqKoCjT8bAI53GpxfG3w67w1Cjbun6Trw68mmNvXHe+dQHaCakfHo
	HG3tYe2bhx5Lw5w21uhvBiAWfE6rCKUSBRbaeEBIYyCJaB9G8qx7q+cEsQwOvmse89z66jq05uh
	Q2HWwDYyYE5XaluXSTyvgn6lWsd2d1Ti5w+2ALW1ZB1jSZJRsfZ/8PgVp4n3DWQlPKn16DKQ8oI
	nNgXh2m5U=
X-Google-Smtp-Source: AGHT+IHFNozQVxfxZFqwcLyF62VoMgBDJ+xaKNweKJAmM1YVAnjcao1Vn+5GtPZZvKHUp7/OKdZDVg==
X-Received: by 2002:a05:6402:50cc:b0:615:cb9c:d5a2 with SMTP id 4fb4d7f45d1cf-615e7186fc5mr11200256a12.18.1754406165537;
        Tue, 05 Aug 2025 08:02:45 -0700 (PDT)
Message-ID: <d1cc3bea-b247-4704-9b69-e5d2c81cb587@suse.com>
Date: Tue, 5 Aug 2025 17:02:44 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 4/8] pdx: allow per-arch optimization of PDX conversion
 helpers
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <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>, xen-devel@lists.xenproject.org
References: <20250805095257.74975-1-roger.pau@citrix.com>
 <20250805095257.74975-5-roger.pau@citrix.com>
 <c077b195-171f-458e-b8df-644b37d50dfb@suse.com>
 <aJITOc6LSUULdxYQ@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: <aJITOc6LSUULdxYQ@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.08.2025 16:20, Roger Pau MonnÃ© wrote:
> On Tue, Aug 05, 2025 at 02:11:22PM +0200, Jan Beulich wrote:
>> On 05.08.2025 11:52, Roger Pau Monne wrote:
>>> There are four performance critical PDX conversion helpers that do the PFN
>>> to/from PDX and the physical addresses to/from directmap offsets
>>> translations.
>>>
>>> In the absence of an active PDX compression, those functions would still do
>>> the calculations needed, just to return the same input value as no
>>> translation is in place and hence PFN and PDX spaces are identity mapped.
>>>
>>> To reduce the overhead of having to do the pointless calculations allow
>>> architectures to implement the translation helpers in a per-arch header.
>>> Rename the existing conversion functions to add a trailing _xlate suffix,
>>> so that the per-arch headers can define the non suffixed versions.
>>>
>>> Currently only x86 implements meaningful custom handlers to short circuit
>>> the translation when not active, using asm goto.  Other architectures use
>>> generic macros that map the non-xlate to the xlate variants to keep the
>>> previous behavior.
>>>
>>> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
>>
>> Once again:
>> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> 
> Thanks, I didn't carry your RB due to the changes requested by Andrew,
> that was a bit too much to carry a RB after those.

Of course, and I didn't mean to suggest you should have kept it. All I
wanted to indicate is that I'm as okay withe change as I was before.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 15:20:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 15:20:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070597.1434223 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujJSh-0001gG-OC; Tue, 05 Aug 2025 15:20:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070597.1434223; Tue, 05 Aug 2025 15:20:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujJSh-0001eN-Eu; Tue, 05 Aug 2025 15:20:23 +0000
Received: by outflank-mailman (input) for mailman id 1070597;
 Tue, 05 Aug 2025 15:07:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Jti+=2R=arm.com=ada.coupriediaz@srs-se1.protection.inumbo.net>)
 id 1ujJG6-0007M7-QP
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 15:07:22 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id e25cef63-720d-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 17:07:20 +0200 (CEST)
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 2ABA12BCE;
 Tue,  5 Aug 2025 08:07:12 -0700 (PDT)
Received: from [10.1.29.177] (e137867.arm.com [10.1.29.177])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id E03633F673;
 Tue,  5 Aug 2025 08:07: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>
X-Inumbo-ID: e25cef63-720d-11f0-b898-0df219b8e170
Message-ID: <dbe56865-392e-4705-b841-5612aecd016b@arm.com>
Date: Tue, 5 Aug 2025 16:07:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH -next v7 6/7] arm64: entry: Move
 arm64_preempt_schedule_irq() into __exit_to_kernel_mode()
To: Jinjie Ruan <ruanjinjie@huawei.com>
References: <20250729015456.3411143-1-ruanjinjie@huawei.com>
 <20250729015456.3411143-7-ruanjinjie@huawei.com>
From: Ada Couprie Diaz <ada.coupriediaz@arm.com>
Cc: mbenes@suse.cz, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
 leitao@debian.org, ardb@kernel.org, liaochang1@huawei.com,
 kristina.martsenko@arm.com, anshuman.khandual@arm.com,
 chenl311@chinatelecom.cn, akpm@linux-foundation.org, ryan.roberts@arm.com,
 broonie@kernel.org, puranjay@kernel.org, mark.rutland@arm.com,
 sstabellini@kernel.org, oleg@redhat.com, will@kernel.org,
 catalin.marinas@arm.com, Ada Couprie Diaz <ada.coupriediaz@arm.com>
Content-Language: en-US
Organization: Arm Ltd.
In-Reply-To: <20250729015456.3411143-7-ruanjinjie@huawei.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 29/07/2025 02:54, Jinjie Ruan wrote:

> The arm64 entry code only preempts a kernel context upon a return from
> a regular IRQ exception. The generic entry code may preempt a kernel
> context for any exception return where irqentry_exit() is used, and so
> may preempt other exceptions such as faults.
>
> In preparation for moving arm64 over to the generic entry code, align
> arm64 with the generic behaviour by calling
> arm64_preempt_schedule_irq() from exit_to_kernel_mode(). To make this
> possible, arm64_preempt_schedule_irq()
> and dynamic/raw_irqentry_exit_cond_resched() are moved earlier in
> the file, with no changes.
>
> As Mark pointed out, this change will have the following 2 key impact:
>
> - " We'll preempt even without taking a "real" interrupt. That
>      shouldn't result in preemption that wasn't possible before,
>      but it does change the probability of preempting at certain points,
>      and might have a performance impact, so probably warrants a
>      benchmark."
>
> - " We will not preempt when taking interrupts from a region of kernel
>      code where IRQs are enabled but RCU is not watching, matching the
>      behaviour of the generic entry code.
>
>      This has the potential to introduce livelock if we can ever have a
>      screaming interrupt in such a region, so we'll need to go figure out
>      whether that's actually a problem.
>
>      Having this as a separate patch will make it easier to test/bisect
>      for that specifically."
>
> Suggested-by: Mark Rutland <mark.rutland@arm.com>
> Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
> ---

Reviewed-by: Ada Couprie Diaz <ada.coupriediaz@arm.com>



From xen-devel-bounces@lists.xenproject.org Tue Aug 05 15:20:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 15:20:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070587.1434189 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujJSg-0001CL-5a; Tue, 05 Aug 2025 15:20:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070587.1434189; Tue, 05 Aug 2025 15:20: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 1ujJSg-0001CE-2y; Tue, 05 Aug 2025 15:20:22 +0000
Received: by outflank-mailman (input) for mailman id 1070587;
 Tue, 05 Aug 2025 15:05:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Jti+=2R=arm.com=ada.coupriediaz@srs-se1.protection.inumbo.net>)
 id 1ujJEl-0007Ir-Dk
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 15:05:59 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id b060329f-720d-11f0-a321-13f23c93f187;
 Tue, 05 Aug 2025 17:05:57 +0200 (CEST)
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 4C11B1424;
 Tue,  5 Aug 2025 08:05:48 -0700 (PDT)
Received: from [10.1.29.177] (e137867.arm.com [10.1.29.177])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id D55FA3F673;
 Tue,  5 Aug 2025 08:05: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>
X-Inumbo-ID: b060329f-720d-11f0-a321-13f23c93f187
Message-ID: <beb7e8f2-39f8-499f-a173-b8bf2d3296ea@arm.com>
Date: Tue, 5 Aug 2025 16:05:45 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH -next v7 1/7] arm64: ptrace: Replace interrupts_enabled()
 with regs_irqs_disabled()
To: Jinjie Ruan <ruanjinjie@huawei.com>
References: <20250729015456.3411143-1-ruanjinjie@huawei.com>
 <20250729015456.3411143-2-ruanjinjie@huawei.com>
From: Ada Couprie Diaz <ada.coupriediaz@arm.com>
Cc: Ada Couprie Diaz <ada.coupriediaz@arm.com>, catalin.marinas@arm.com,
 will@kernel.org, oleg@redhat.com, sstabellini@kernel.org,
 mark.rutland@arm.com, puranjay@kernel.org, broonie@kernel.org,
 mbenes@suse.cz, ryan.roberts@arm.com, akpm@linux-foundation.org,
 chenl311@chinatelecom.cn, anshuman.khandual@arm.com,
 kristina.martsenko@arm.com, liaochang1@huawei.com, ardb@kernel.org,
 leitao@debian.org, linux-arm-kernel@lists.infradead.org,
 linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org
Content-Language: en-US
Organization: Arm Ltd.
In-Reply-To: <20250729015456.3411143-2-ruanjinjie@huawei.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 29/07/2025 02:54, Jinjie Ruan wrote:

> The generic entry code expects architecture code to provide
> regs_irqs_disabled(regs) function, but arm64 does not have this and
> provides inerrupts_enabled(regs), which has the opposite polarity.
Nit: "interrupts_enabled(regs)"
> In preparation for moving arm64 over to the generic entry code,
> relace arm64's interrupts_enabled() with regs_irqs_disabled() and
> update its callers under arch/arm64.
>
> For the moment, a definition of interrupts_enabled() is provided for
> the GICv3 driver. Once arch/arm implement regs_irqs_disabled(), this
> can be removed.
>
> Delete the fast_interrupts_enabled() macro as it is unused and we
> don't want any new users to show up.
>
> No functional changes.
>
> Acked-by: Mark Rutland <mark.rutland@arm.com>
> Suggested-by: Mark Rutland <mark.rutland@arm.com>
> Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
> ---
Otherwise looks good to me !
Reviewed-by: Ada Couprie Diaz <ada.coupriediaz@arm.com>


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 15:20:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 15:20:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070599.1434235 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujJSi-0001uY-Cw; Tue, 05 Aug 2025 15:20:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070599.1434235; Tue, 05 Aug 2025 15:20: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 1ujJSh-0001sy-V4; Tue, 05 Aug 2025 15:20:23 +0000
Received: by outflank-mailman (input) for mailman id 1070599;
 Tue, 05 Aug 2025 15:07:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Jti+=2R=arm.com=ada.coupriediaz@srs-se1.protection.inumbo.net>)
 id 1ujJGX-0007Mk-5a
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 15:07:49 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id f26ea8ea-720d-11f0-a321-13f23c93f187;
 Tue, 05 Aug 2025 17:07:47 +0200 (CEST)
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 18C202BF2;
 Tue,  5 Aug 2025 08:07:39 -0700 (PDT)
Received: from [10.1.29.177] (e137867.arm.com [10.1.29.177])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id BAE723F673;
 Tue,  5 Aug 2025 08:07:42 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f26ea8ea-720d-11f0-a321-13f23c93f187
Message-ID: <fb0b7a92-09e8-41b2-9ae7-09fb9b453961@arm.com>
Date: Tue, 5 Aug 2025 16:07:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH -next v7 7/7] arm64: entry: Switch to generic IRQ entry
To: Jinjie Ruan <ruanjinjie@huawei.com>
References: <20250729015456.3411143-1-ruanjinjie@huawei.com>
 <20250729015456.3411143-8-ruanjinjie@huawei.com>
From: Ada Couprie Diaz <ada.coupriediaz@arm.com>
Cc: Ada Couprie Diaz <ada.coupriediaz@arm.com>, catalin.marinas@arm.com,
 will@kernel.org, oleg@redhat.com, sstabellini@kernel.org,
 mark.rutland@arm.com, puranjay@kernel.org, broonie@kernel.org,
 mbenes@suse.cz, ryan.roberts@arm.com, akpm@linux-foundation.org,
 chenl311@chinatelecom.cn, anshuman.khandual@arm.com,
 kristina.martsenko@arm.com, liaochang1@huawei.com, ardb@kernel.org,
 leitao@debian.org, linux-arm-kernel@lists.infradead.org,
 linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org
Content-Language: en-US
Organization: Arm Ltd.
In-Reply-To: <20250729015456.3411143-8-ruanjinjie@huawei.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Jinjie,

The code changes look good to me, just a small missing clean up I believe.

On 29/07/2025 02:54, Jinjie Ruan wrote:

> Currently, x86, Riscv, Loongarch use the generic entry. Convert arm64
> to use the generic entry infrastructure from kernel/entry/*.
> The generic entry makes maintainers' work easier and codes
> more elegant.
>
> Switch arm64 to generic IRQ entry first, which removed duplicate 100+
> LOC. The next patch serise will switch to generic entry completely later.
> Switch to generic entry in two steps according to Mark's suggestion
> will make it easier to review.

I think the commit message could be clearer, especially since now this 
series
only moves arm64 to generic IRQ entry and not the complete generic entry.

What do you think of something like below ? It repeats a bit less and I 
think
it helps understanding what is going on in this specific commit, as you 
already
have details on the larger plans in the cover.

	Currently, x86, Riscv and Loongarch use the generic entry code, which makes
	maintainer's work easier and code more elegant.
	Start converting arm64 to use the generic entry infrastructure
	from kernel/entry/* by switching it to generic IRQ entry, which removes 100+
	lines of duplicate code.
	arm64 will completely switch to generic entry in a later series.

> The changes are below:
>   - Remove *enter_from/exit_to_kernel_mode(), and wrap with generic
>     irqentry_enter/exit(). Also remove *enter_from/exit_to_user_mode(),
>     and wrap with generic enter_from/exit_to_user_mode() because they
>     are exactly the same so far.
Nit : "so far" can be removed
>   - Remove arm64_enter/exit_nmi() and use generic irqentry_nmi_enter/exit()
>     because they're exactly the same, so the temporary arm64 version
>     irqentry_state can also be removed.
>
>   - Remove PREEMPT_DYNAMIC code, as generic entry do the same thing
>     if arm64 implement arch_irqentry_exit_need_resched().
This feels unrelated, given that the part that needs 
`arch_irqentry_exit_need_resched()`
is called whether or not PREEMPT_DYNAMIC is enabled ?

Given my comments on patch 5, I feel that the commit message should mention
explicitly the implementation of `arch_irqentry_exit_need_resched()` and 
why,
even though it was already mentioned in patch 5.
(This is what I was referencing in patch 5 : as I feel it's useful to 
mention again
the reasons when implementing it, it doesn't feel too out of place to 
introduce
the generic part at the same time. But again, I might be wrong here.)

Then you can have another point explaining that 
`raw_irqentry_exit_cond_resched()`
and the PREEMPT_DYNAMIC code is removed because they are identical to the
generic entry code, similarly to your other points.
> Tested ok with following test cases on Qemu virt platform:
>   - Perf tests.
>   - Different `dynamic preempt` mode switch.
>   - Pseudo NMI tests.
>   - Stress-ng CPU stress test.
>   - MTE test case in Documentation/arch/arm64/memory-tagging-extension.rst
>     and all test cases in tools/testing/selftests/arm64/mte/*.
Nit : I'm not sure if the commit message is the best place for this, 
given you
already gave some details in the cover ?
But I don't have much experience here, so I'll leave it up to you and 
others !
> Suggested-by: Mark Rutland <mark.rutland@arm.com>
> Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
> ---
> [...]
> diff --git a/arch/arm64/kernel/signal.c b/arch/arm64/kernel/signal.c
> index db3f972f8cd9..1110eeb21f57 100644
> --- a/arch/arm64/kernel/signal.c
> +++ b/arch/arm64/kernel/signal.c
> @@ -9,6 +9,7 @@
>   #include <linux/cache.h>
>   #include <linux/compat.h>
>   #include <linux/errno.h>
> +#include <linux/irq-entry-common.h>
>   #include <linux/kernel.h>
>   #include <linux/signal.h>
>   #include <linux/freezer.h>
> @@ -1576,7 +1577,7 @@ static void handle_signal(struct ksignal *ksig, struct pt_regs *regs)
>    * the kernel can handle, and then we build all the user-level signal handling
>    * stack-frames in one go after that.
>    */
> -void do_signal(struct pt_regs *regs)
> +void arch_do_signal_or_restart(struct pt_regs *regs)
Given that `do_signal(struct pt_regs *regs)` is defined in 
`arch/arm64/include/asm/exception.h`,
and that there remains no users of `do_signal()`, I think it should be 
removed there.

Thanks,
Ada


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 15:20:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 15:20:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070595.1434215 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujJSh-0001bP-CC; Tue, 05 Aug 2025 15:20:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070595.1434215; Tue, 05 Aug 2025 15:20:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujJSh-0001ZB-4O; Tue, 05 Aug 2025 15:20:23 +0000
Received: by outflank-mailman (input) for mailman id 1070595;
 Tue, 05 Aug 2025 15:07:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Jti+=2R=arm.com=ada.coupriediaz@srs-se1.protection.inumbo.net>)
 id 1ujJFq-0007Kl-4q
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 15:07:06 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id d9080db7-720d-11f0-a321-13f23c93f187;
 Tue, 05 Aug 2025 17:07:05 +0200 (CEST)
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 77E4C2BCE;
 Tue,  5 Aug 2025 08:06:56 -0700 (PDT)
Received: from [10.1.29.177] (e137867.arm.com [10.1.29.177])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 423853F673;
 Tue,  5 Aug 2025 08:07: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>
X-Inumbo-ID: d9080db7-720d-11f0-a321-13f23c93f187
Message-ID: <44fd646c-4e31-4ca6-9e22-f715ad19e0d7@arm.com>
Date: Tue, 5 Aug 2025 16:06:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH -next v7 5/7] arm64: entry: Refactor
 preempt_schedule_irq() check code
To: Jinjie Ruan <ruanjinjie@huawei.com>
References: <20250729015456.3411143-1-ruanjinjie@huawei.com>
 <20250729015456.3411143-6-ruanjinjie@huawei.com>
From: Ada Couprie Diaz <ada.coupriediaz@arm.com>
Cc: Ada Couprie Diaz <ada.coupriediaz@arm.com>, catalin.marinas@arm.com,
 will@kernel.org, oleg@redhat.com, sstabellini@kernel.org,
 mark.rutland@arm.com, puranjay@kernel.org, broonie@kernel.org,
 mbenes@suse.cz, ryan.roberts@arm.com, akpm@linux-foundation.org,
 chenl311@chinatelecom.cn, anshuman.khandual@arm.com,
 kristina.martsenko@arm.com, liaochang1@huawei.com, ardb@kernel.org,
 leitao@debian.org, linux-arm-kernel@lists.infradead.org,
 linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org
Content-Language: en-US
Organization: Arm Ltd.
In-Reply-To: <20250729015456.3411143-6-ruanjinjie@huawei.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Jinjie,

On 29/07/2025 02:54, Jinjie Ruan wrote:
> ARM64 requires an additional check whether to reschedule on return
> from interrupt. So add arch_irqentry_exit_need_resched() as the default
> NOP implementation and hook it up into the need_resched() condition in
> raw_irqentry_exit_cond_resched(). This allows ARM64 to implement
> the architecture specific version for switching over to
> the generic entry code.
I was a bit confused by this, as I didn't see the link with the generic 
entry
given you implement `raw_irqentry_exit_cond_resched()` in arch/arm64
as well in this patch : I expected the arm64 implementation to be added.
I share more thoughts below.

What do you think about something along those lines ?

	Compared to the generic entry code, arm64 does additional checks
	when deciding to reschedule on return from an interrupt.
	Introduce arch_irqentry_exit_need_resched() in the need_resched() condition
	of the generic raw_irqentry_exit_cond_resched(), with a NOP default.
	This will allow arm64 to implement its architecture specific checks when
	switching over to the generic entry code.

> [...]
> diff --git a/kernel/entry/common.c b/kernel/entry/common.c
> index b82032777310..4aa9656fa1b4 100644
> --- a/kernel/entry/common.c
> +++ b/kernel/entry/common.c
> @@ -142,6 +142,20 @@ noinstr irqentry_state_t irqentry_enter(struct pt_regs *regs)
>   	return ret;
>   }
>   
> +/**
> + * arch_irqentry_exit_need_resched - Architecture specific need resched function
> + *
> + * Invoked from raw_irqentry_exit_cond_resched() to check if need resched.
Very nit : "to check if resched is needed." ?
> + * Defaults return true.
> + *
> + * The main purpose is to permit arch to skip preempt a task from an IRQ.
If feel that "to avoid preemption of a task" instead of "to skip preempt 
a task"
would make this much clearer, what do you think ?
> + */
> +static inline bool arch_irqentry_exit_need_resched(void);
> +
> +#ifndef arch_irqentry_exit_need_resched
> +static inline bool arch_irqentry_exit_need_resched(void) { return true; }
> +#endif
> +

I've had some trouble reviewing this patch : on the one hand because
I didn't notice `arch_irqentry_exit_need_resched()` was added in
the common entry code, which is on me !
On the other hand, I felt that the patch itself was a bit disconnected :
we add `arch_irqentry_exit_need_resched()` in the common entry code,
with a default NOP, but in the same function we add to arm64,
while mentioning that this is for arm64's additional checks,
which we only implement in patch 7.

Would it make sense to move theÂ `arch_irqentry_exit_need_resched()`
part of the patch to patch 7, so that the introduction and
arch-specific implementation appear together ?
To me it seems easier to wrap my head around, as it would look like
"Move arm64 to generic entry, but it does additional checks : add a new
arch-specific function controlling re-scheduling, defaulting to true,
and implement it for arm64". I feel it could help making patch 7's
commit message clearer as well.

 From what I gathered on the archive `arch_irqentry_exit_need_resched()`
being added here was suggested previously, so others might not have the
same opinion.

Maybe improving the commit message and comment for this would be enough
as well, as per my suggestions above.


Otherwise the changes make sense and I don't see any functional issues !

Thanks,
Ada



From xen-devel-bounces@lists.xenproject.org Tue Aug 05 15:20:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 15:20:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070601.1434242 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujJSi-000236-Mo; Tue, 05 Aug 2025 15:20:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070601.1434242; Tue, 05 Aug 2025 15:20: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 1ujJSi-000212-Dt; Tue, 05 Aug 2025 15:20:24 +0000
Received: by outflank-mailman (input) for mailman id 1070601;
 Tue, 05 Aug 2025 15:08:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Jti+=2R=arm.com=ada.coupriediaz@srs-se1.protection.inumbo.net>)
 id 1ujJHG-0007Nd-3a
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 15:08:34 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 0cd5b606-720e-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 17:08:32 +0200 (CEST)
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 6C1652BCE;
 Tue,  5 Aug 2025 08:08:23 -0700 (PDT)
Received: from [10.1.29.177] (e137867.arm.com [10.1.29.177])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 1A5AA3F673;
 Tue,  5 Aug 2025 08:08: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>
X-Inumbo-ID: 0cd5b606-720e-11f0-b898-0df219b8e170
Message-ID: <6bd09b5b-9830-42b4-ad9e-9ad1e153e564@arm.com>
Date: Tue, 5 Aug 2025 16:08:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH -next v7 0/7] arm64: entry: Convert to generic irq entry
To: Jinjie Ruan <ruanjinjie@huawei.com>
References: <20250729015456.3411143-1-ruanjinjie@huawei.com>
From: Ada Couprie Diaz <ada.coupriediaz@arm.com>
Cc: Ada Couprie Diaz <ada.coupriediaz@arm.com>, catalin.marinas@arm.com,
 will@kernel.org, oleg@redhat.com, sstabellini@kernel.org,
 mark.rutland@arm.com, puranjay@kernel.org, broonie@kernel.org,
 mbenes@suse.cz, ryan.roberts@arm.com, akpm@linux-foundation.org,
 chenl311@chinatelecom.cn, anshuman.khandual@arm.com,
 kristina.martsenko@arm.com, liaochang1@huawei.com, ardb@kernel.org,
 leitao@debian.org, linux-arm-kernel@lists.infradead.org,
 linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org
Content-Language: en-US
Organization: Arm Ltd.
In-Reply-To: <20250729015456.3411143-1-ruanjinjie@huawei.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Jinjie,

On 29/07/2025 02:54, Jinjie Ruan wrote:

> Since commit a70e9f647f50 ("entry: Split generic entry into generic
> exception and syscall entry") split the generic entry into generic irq
> entry and generic syscall entry, it is time to convert arm64 to use
> the generic irq entry. And ARM64 will be completely converted to generic
> entry in the upcoming patch series.
Note : I had to manually cherry-pick a70e9f647f50 when pulling the series
on top of the Linux Arm Kernel for-next/core branch, but there might be
something I'm missing here.
>
> The main convert steps are as follows:
> - Split generic entry into generic irq entry and generic syscall to
>    make the single patch more concentrated in switching to one thing.
> - Make arm64 easier to use irqentry_enter/exit().
> - Make arm64 closer to the PREEMPT_DYNAMIC code of generic entry.
> - Switch to generic irq entry.

I reviewed the whole series and as expected it looks good ! Just a few nits
here and there and some clarifications that I think could be useful.

I'm not sure about the generic implementation of 
`arch_irqentry_exit_need_resched()`
in patch 5, I would be tempted to move it to patch 7. I detail my 
thoughts more
on the relevant patches, but I might be wrong and that feels like details :
I don't think the code itself has issues.
> It was tested ok with following test cases on QEMU virt platform:
>   - Perf tests.
>   - Different `dynamic preempt` mode switch.
>   - Pseudo NMI tests.
>   - Stress-ng CPU stress test.
>   - MTE test case in Documentation/arch/arm64/memory-tagging-extension.rst
>     and all test cases in tools/testing/selftests/arm64/mte/*.
>
> The test QEMU configuration is as follows:
>
> 	qemu-system-aarch64 \
> 		-M virt,gic-version=3,virtualization=on,mte=on \
> 		-cpu max,pauth-impdef=on \
> 		-kernel Image \
> 		-smp 8,sockets=1,cores=4,threads=2 \
> 		-m 512m \
> 		-nographic \
> 		-no-reboot \
> 		-device virtio-rng-pci \
> 		-append "root=/dev/vda rw console=ttyAMA0 kgdboc=ttyAMA0,115200 \
> 			earlycon preempt=voluntary irqchip.gicv3_pseudo_nmi=1" \
> 		-drive if=none,file=images/rootfs.ext4,format=raw,id=hd0 \
> 		-device virtio-blk-device,drive=hd0 \
>
I'll spend some time testing the series now, specifically given patch 6's
changes, but other than that everything I saw made sense and didn't look
like it would be of concern to me.

Thanks,
Ada


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 15:20:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 15:20:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070591.1434201 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujJSg-0001He-MV; Tue, 05 Aug 2025 15:20:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070591.1434201; Tue, 05 Aug 2025 15:20: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 1ujJSg-0001GJ-Fb; Tue, 05 Aug 2025 15:20:22 +0000
Received: by outflank-mailman (input) for mailman id 1070591;
 Tue, 05 Aug 2025 15:06:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Jti+=2R=arm.com=ada.coupriediaz@srs-se1.protection.inumbo.net>)
 id 1ujJFH-0007Ji-SI
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 15:06:31 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id c42e6e49-720d-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 17:06:30 +0200 (CEST)
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 74E5E2BCC;
 Tue,  5 Aug 2025 08:06:21 -0700 (PDT)
Received: from [10.1.29.177] (e137867.arm.com [10.1.29.177])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id CBD3F3F673;
 Tue,  5 Aug 2025 08:06: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>
X-Inumbo-ID: c42e6e49-720d-11f0-b898-0df219b8e170
Message-ID: <b8adfbad-2a7d-47d4-a925-2f93c09cc414@arm.com>
Date: Tue, 5 Aug 2025 16:06:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH -next v7 3/7] arm64: entry: Rework
 arm64_preempt_schedule_irq()
To: Jinjie Ruan <ruanjinjie@huawei.com>
References: <20250729015456.3411143-1-ruanjinjie@huawei.com>
 <20250729015456.3411143-4-ruanjinjie@huawei.com>
From: Ada Couprie Diaz <ada.coupriediaz@arm.com>
Cc: Ada Couprie Diaz <ada.coupriediaz@arm.com>, catalin.marinas@arm.com,
 will@kernel.org, oleg@redhat.com, sstabellini@kernel.org,
 mark.rutland@arm.com, puranjay@kernel.org, broonie@kernel.org,
 mbenes@suse.cz, ryan.roberts@arm.com, akpm@linux-foundation.org,
 chenl311@chinatelecom.cn, anshuman.khandual@arm.com,
 kristina.martsenko@arm.com, liaochang1@huawei.com, ardb@kernel.org,
 leitao@debian.org, linux-arm-kernel@lists.infradead.org,
 linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org
Content-Language: en-US
Organization: Arm Ltd.
In-Reply-To: <20250729015456.3411143-4-ruanjinjie@huawei.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 29/07/2025 02:54, Jinjie Ruan wrote:

> The generic entry code has the form:
>
> | raw_irqentry_exit_cond_resched()
> | {
> | 	if (!preempt_count()) {
> | 		...
> | 		if (need_resched())
> | 			preempt_schedule_irq();
> | 	}
> | }
>
> In preparation for moving arm64 over to the generic entry code, align
> the structure of the arm64 code with raw_irqentry_exit_cond_resched() from
> the generic entry code.
>
> Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
> ---
Reviewed-by: Ada Couprie Diaz <ada.coupriediaz@arm.com>



From xen-devel-bounces@lists.xenproject.org Tue Aug 05 15:20:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 15:20:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070593.1434206 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujJSg-0001Qk-U0; Tue, 05 Aug 2025 15:20:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070593.1434206; Tue, 05 Aug 2025 15:20: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 1ujJSg-0001Q3-P6; Tue, 05 Aug 2025 15:20:22 +0000
Received: by outflank-mailman (input) for mailman id 1070593;
 Tue, 05 Aug 2025 15:06:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Jti+=2R=arm.com=ada.coupriediaz@srs-se1.protection.inumbo.net>)
 id 1ujJFY-0007Kl-DX
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 15:06:48 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id ce744366-720d-11f0-a321-13f23c93f187;
 Tue, 05 Aug 2025 17:06:47 +0200 (CEST)
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 A7B542BCD;
 Tue,  5 Aug 2025 08:06:38 -0700 (PDT)
Received: from [10.1.29.177] (e137867.arm.com [10.1.29.177])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 7233B3F673;
 Tue,  5 Aug 2025 08:06: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>
X-Inumbo-ID: ce744366-720d-11f0-a321-13f23c93f187
Message-ID: <3fd74c08-2950-46a9-a191-a635f379a8f7@arm.com>
Date: Tue, 5 Aug 2025 16:06:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH -next v7 4/7] arm64: entry: Use preempt_count() and
 need_resched() helper
To: Jinjie Ruan <ruanjinjie@huawei.com>
References: <20250729015456.3411143-1-ruanjinjie@huawei.com>
 <20250729015456.3411143-5-ruanjinjie@huawei.com>
From: Ada Couprie Diaz <ada.coupriediaz@arm.com>
Content-Language: en-US
Cc: Ada Couprie Diaz <ada.coupriediaz@arm.com>, will@kernel.org,
 oleg@redhat.com, sstabellini@kernel.org, mark.rutland@arm.com,
 puranjay@kernel.org, broonie@kernel.org, mbenes@suse.cz,
 ryan.roberts@arm.com, akpm@linux-foundation.org, chenl311@chinatelecom.cn,
 anshuman.khandual@arm.com, kristina.martsenko@arm.com,
 liaochang1@huawei.com, ardb@kernel.org, leitao@debian.org,
 linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org,
 xen-devel@lists.xenproject.org, catalin.marinas@arm.com
Organization: Arm Ltd.
In-Reply-To: <20250729015456.3411143-5-ruanjinjie@huawei.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 29/07/2025 02:54, Jinjie Ruan wrote:

> The generic entry code uses preempt_count() and need_resched() helpers to
> check if it should do preempt_schedule_irq(). Currently, arm64 use its own
> check logic, that is "READ_ONCE(current_thread_info()->preempt_count == 0",
> which is equivalent to "preempt_count() == 0 && need_resched()".
>
> In preparation for moving arm64 over to the generic entry code, use
> these helpers to replace arm64's own code and move it ahead.
>
> No functional changes.
>
> Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
> ---
Reviewed-by: Ada Couprie Diaz <ada.coupriediaz@arm.com>



From xen-devel-bounces@lists.xenproject.org Tue Aug 05 15:20:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 15:20:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070589.1434196 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujJSg-0001FT-Em; Tue, 05 Aug 2025 15:20:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070589.1434196; Tue, 05 Aug 2025 15:20: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 1ujJSg-0001ET-8o; Tue, 05 Aug 2025 15:20:22 +0000
Received: by outflank-mailman (input) for mailman id 1070589;
 Tue, 05 Aug 2025 15:06:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Jti+=2R=arm.com=ada.coupriediaz@srs-se1.protection.inumbo.net>)
 id 1ujJF8-0007Ji-DN
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 15:06:22 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id bc4bc230-720d-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 17:06:17 +0200 (CEST)
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 42E052BC2;
 Tue,  5 Aug 2025 08:06:08 -0700 (PDT)
Received: from [10.1.29.177] (e137867.arm.com [10.1.29.177])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 226143F673;
 Tue,  5 Aug 2025 08:06:11 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bc4bc230-720d-11f0-b898-0df219b8e170
Message-ID: <df50cc99-027e-4182-ba4c-9837b354a062@arm.com>
Date: Tue, 5 Aug 2025 16:06:10 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH -next v7 2/7] arm64: entry: Refactor the entry and exit
 for exceptions from EL1
To: Jinjie Ruan <ruanjinjie@huawei.com>
References: <20250729015456.3411143-1-ruanjinjie@huawei.com>
 <20250729015456.3411143-3-ruanjinjie@huawei.com>
From: Ada Couprie Diaz <ada.coupriediaz@arm.com>
Cc: Ada Couprie Diaz <ada.coupriediaz@arm.com>, catalin.marinas@arm.com,
 will@kernel.org, oleg@redhat.com, sstabellini@kernel.org,
 mark.rutland@arm.com, puranjay@kernel.org, broonie@kernel.org,
 mbenes@suse.cz, ryan.roberts@arm.com, akpm@linux-foundation.org,
 chenl311@chinatelecom.cn, anshuman.khandual@arm.com,
 kristina.martsenko@arm.com, liaochang1@huawei.com, ardb@kernel.org,
 leitao@debian.org, linux-arm-kernel@lists.infradead.org,
 linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org
Content-Language: en-US
Organization: Arm Ltd.
In-Reply-To: <20250729015456.3411143-3-ruanjinjie@huawei.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 29/07/2025 02:54, Jinjie Ruan wrote:

> The generic entry code uses irqentry_state_t to track lockdep and RCU
> state across exception entry and return. For historical reasons, arm64
> embeds similar fields within its pt_regs structure.
>
> In preparation for moving arm64 over to the generic entry code, pull
> these fields out of arm64's pt_regs, and use a separate structure,
> matching the style of the generic entry code.
>
> No functional changes.
As far as I understand and checked, we used the two fields
in an exclusive fashion, so there is indeed no functional change.
> Suggested-by: Mark Rutland <mark.rutland@arm.com>
> Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
> ---
> [...]
> diff --git a/arch/arm64/kernel/entry-common.c b/arch/arm64/kernel/entry-common.c
> index 8e798f46ad28..97e0741abde1 100644
> --- a/arch/arm64/kernel/entry-common.c
> +++ b/arch/arm64/kernel/entry-common.c
> [...]
> @@ -475,73 +497,81 @@ UNHANDLED(el1t, 64, error)
>   static void noinstr el1_abort(struct pt_regs *regs, unsigned long esr)
>   {
>   	unsigned long far = read_sysreg(far_el1);
> +	arm64_irqentry_state_t state;
>   
> -	enter_from_kernel_mode(regs);
> +	state = enter_from_kernel_mode(regs);
Nit: There is some inconsistencies with some functions splitting state's 
definition
and declaration (like el1_abort here), while some others do it on the 
same line
(el1_undef() below for example).
In some cases it is welcome as the entry function is called after some 
other work,
but here for example it doesn't seem to be beneficial ?
>   	local_daif_inherit(regs);
>   	do_mem_abort(far, esr, regs);
>   	local_daif_mask();
> -	exit_to_kernel_mode(regs);
> +	exit_to_kernel_mode(regs, state);
>   }
>   
>   static void noinstr el1_pc(struct pt_regs *regs, unsigned long esr)
>   {
>   	unsigned long far = read_sysreg(far_el1);
> +	arm64_irqentry_state_t state;
>   
> -	enter_from_kernel_mode(regs);
> +	state = enter_from_kernel_mode(regs);
>   	local_daif_inherit(regs);
>   	do_sp_pc_abort(far, esr, regs);
>   	local_daif_mask();
> -	exit_to_kernel_mode(regs);
> +	exit_to_kernel_mode(regs, state);
>   }
>   
>   static void noinstr el1_undef(struct pt_regs *regs, unsigned long esr)
>   {
> -	enter_from_kernel_mode(regs);
> +	arm64_irqentry_state_t state = enter_from_kernel_mode(regs);
> +
>   	local_daif_inherit(regs);
>   	do_el1_undef(regs, esr);
>   	local_daif_mask();
> -	exit_to_kernel_mode(regs);
> +	exit_to_kernel_mode(regs, state);
>   }
>
> [...]
Other than the small nit:
Reviewed-by: Ada Couprie Diaz <ada.coupriediaz@arm.com>



From xen-devel-bounces@lists.xenproject.org Tue Aug 05 15:20:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 15:20:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070603.1434271 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujJSl-000316-6r; Tue, 05 Aug 2025 15:20:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070603.1434271; Tue, 05 Aug 2025 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 1ujJSk-00030R-VD; Tue, 05 Aug 2025 15:20:26 +0000
Received: by outflank-mailman (input) for mailman id 1070603;
 Tue, 05 Aug 2025 15:20:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=j2i0=2R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujJSj-0002Ma-IM
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 15:20:25 +0000
Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com
 [2a00:1450:4864:20::633])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b2cff0fb-720f-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 17:20:20 +0200 (CEST)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-af93381a1d2so662415266b.3
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 08:20: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
 a640c23a62f3a-af91a076724sm919872766b.23.2025.08.05.08.20.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Aug 2025 08:20: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>
X-Inumbo-ID: b2cff0fb-720f-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754407219; x=1755012019; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SVSQFZHw1NmJNVVc0FIzfrU1PwOHcGlcdeD5EVwCNU4=;
        b=NRclozHeO9z20CYVGQDiAXjYLYhzlpGJzDxz8TD3uPUxY4YybjvYAUWrn+QU+3Eqil
         ykgh9QM4Dwld+I3gTYW5dIHbsbsRu9OAY5AyL+QB9fXvxO8Ffbxfv5I1M/HnmbYOUanU
         snebJTxungpo9cTZvXjPZk0XIrZJviqDu6pYSu6HnwesHwGBbsCIMAGbAJovrU+8D+0B
         u8DfX1bcDrdP/6co7fVqMljz/JEWOTTxUk06KkMaPdmZ5tQNWnJBOAzT2XWaIPBAdcjj
         LYdL+uiuKsY2mMr0nHf7z6lqeGLHGtUsoVGl6KPt7/TlSZZaLcpiP4Ve4fsoSAhh3oZB
         Mxrg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754407219; x=1755012019;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SVSQFZHw1NmJNVVc0FIzfrU1PwOHcGlcdeD5EVwCNU4=;
        b=oKsF/kz9nOWwzhx3eHhvvIFfB4e/irw6gOoEyTQiNXC1JFoi9c0p7OMVCOkLLt7xHT
         SKf0ngjvPxtaZ4rvmwOCce7abUYdiXFX5+/7MTHrHzvVjvpc/pAbztgZqoJq/09x4qKF
         nEUuC5LrtktpMEdVbXB0l1eWvfk4qhnufqYtFY361otc7L5byYXYXTmR2/y2lIyp8way
         7Ysl3xP8Jqj1RveS856BROo7L41lwHfdSdAxdDSVNe2L8GE8K9Xl7GrlL6nt3Ey0L/Y6
         HTpqwGBii7ByKh0vqnd/uf9zxy2tqMMVKjNgdK3xE8Vcg30lSpb5A9oZi+UON/TOeaYc
         ZH2w==
X-Forwarded-Encrypted: i=1; AJvYcCUHotbm78OV+l/pA/9SkdT0STmLqQMykooC+AjZAmT+NNopgZANTwskxPxeQPpxtii+y+ZTzkuzVa8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxLmq4uBfKgrJOJq9UTRNVbQwNcORSSEZ3K55zPZZVZoUcCvkWQ
	uPuZrHvu39wHd7eQUc7vYubKCF8QuVY8Ywlt4IkvNAbJnMiHLTbWgJyqFVIa+RuWCw==
X-Gm-Gg: ASbGnctCdQkuxT49gJTHdSu7fZfopvM70m0BMquzUZq6WIuCQAXISSa0jRLo9KP69T7
	sAaxUVtzsv56yd14rbhyMfqXoD8Vps2xdznPRtkdh7LuOMVfrB5QraPVyZ3ILTs5wU1yMFMUsOb
	AVqCTOlNLgPaJ5JD/TfwCsfmwaCg1bIi3Zobg3SyYykVqkY57J/veiFbdgX1LFCdhKZWODtv97i
	E1D4YkedIMoCALIUnTL+XW//e0gxWeZSsIyYQLdf5pXjEfmfyWN+DurKtY+7iNNOr2yrx9dF6Ea
	jAEalGE2MTGFr6ZjjdPwK9QvQFDMb5yE9Cr3FPuFcmTyEKO1R+jSJWOC5moyNOJcooUxyTPKCxc
	g+ZZuZa7r9UhzsjtUIKFw+IT9E8jsPu4wWq3awfjEZ2/3KYH9AR7HnCwhMMQmpFDzgRjdCYj9mS
	GfvmozE+Y=
X-Google-Smtp-Source: AGHT+IEEAOdRiEFZuBtH3m7EiOjD0DiZD7qgJAgAqZhv1HuI51sTOasGzqCMxxaER4v2sDX7AGROAA==
X-Received: by 2002:a17:906:d54f:b0:ad8:9c97:c2e5 with SMTP id a640c23a62f3a-af93fda17edmr1458156266b.0.1754407219209;
        Tue, 05 Aug 2025 08:20:19 -0700 (PDT)
Message-ID: <e7b4b220-4da9-4a87-a4d6-179350849eaa@suse.com>
Date: Tue, 5 Aug 2025 17:20:17 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 11/20] xen/riscv: implement function to map memory in
 guest p2m
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1753973161.git.oleksii.kurochko@gmail.com>
 <e00dcbecf8f0dbe863628dcc45526100f9ee86a3.1753973161.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: <e00dcbecf8f0dbe863628dcc45526100f9ee86a3.1753973161.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 31.07.2025 17:58, Oleksii Kurochko wrote:
> Implement map_regions_p2mt() to map a region in the guest p2m with
> a specific p2m type. The memory attributes will be derived from the
> p2m type. This function is going to be called from dom0less common
> code.

s/is going to be/is/ ? Such a call exists already, after all.

> --- a/xen/arch/riscv/include/asm/p2m.h
> +++ b/xen/arch/riscv/include/asm/p2m.h
> @@ -121,21 +121,22 @@ static inline int guest_physmap_mark_populate_on_demand(struct domain *d,
>      return -EOPNOTSUPP;
>  }
>  
> -static inline int guest_physmap_add_entry(struct domain *d,
> -                                          gfn_t gfn, mfn_t mfn,
> -                                          unsigned long page_order,
> -                                          p2m_type_t t)
> -{
> -    BUG_ON("unimplemented");
> -    return -EINVAL;
> -}
> +/*
> + * Map a region in the guest p2m with a specific p2m type.

What is "the guest p2m"? In your answer, please consider the possible
(and at some point likely necessary) existence of altp2m and nestedp2m.
In patch 04 you introduce p2m_get_hostp2m(), and I expect it's that
what you mean here.

> --- a/xen/arch/riscv/p2m.c
> +++ b/xen/arch/riscv/p2m.c
> @@ -9,6 +9,41 @@
>  
>  unsigned int __read_mostly p2m_root_order;
>  
> +/*
> + * Force a synchronous P2M TLB flush.
> + *
> + * Must be called with the p2m lock held.
> + */
> +static void p2m_force_tlb_flush_sync(struct p2m_domain *p2m)
> +{
> +    struct domain *d = p2m->domain;

Pointer-to-const please. Personally, given the implementation of this
function (and also ...

> +    ASSERT(p2m_is_write_locked(p2m));
> +
> +    sbi_remote_hfence_gvma(d->dirty_cpumask, 0, 0);
> +
> +    p2m->need_flush = false;
> +}
> +
> +void p2m_tlb_flush_sync(struct p2m_domain *p2m)
> +{
> +    if ( p2m->need_flush )
> +        p2m_force_tlb_flush_sync(p2m);
> +}

... this one) I'd further ask for the function parameters to also be
pointer-to-const, but Andrew may object to that. Andrew - it continues to
be unclear to me under what conditions you agree with adding const, and
under what conditions you would object to me asking for such. Please can
you take the time to clarify this?

> +/* Unlock the flush and do a P2M TLB flush if necessary */
> +void p2m_write_unlock(struct p2m_domain *p2m)
> +{
> +    /*
> +     * The final flush is done with the P2M write lock taken to avoid
> +     * someone else modifying the P2M wbefore the TLB invalidation has

Nit: Stray 'w'.

> +     * completed.
> +     */
> +    p2m_tlb_flush_sync(p2m);

Wasn't the plan to have this be conditional?

> @@ -139,3 +174,33 @@ int p2m_set_allocation(struct domain *d, unsigned long pages, bool *preempted)
>  
>      return 0;
>  }
> +
> +static int p2m_set_range(struct p2m_domain *p2m,
> +                         gfn_t sgfn,
> +                         unsigned long nr,
> +                         mfn_t smfn,
> +                         p2m_type_t t)
> +{
> +    return -EOPNOTSUPP;
> +}
> +
> +static int p2m_insert_mapping(struct p2m_domain *p2m, gfn_t start_gfn,
> +                              unsigned long nr, mfn_t mfn, p2m_type_t t)
> +{
> +    int rc;
> +
> +    p2m_write_lock(p2m);
> +    rc = p2m_set_range(p2m, start_gfn, nr, mfn, t);
> +    p2m_write_unlock(p2m);
> +
> +    return rc;
> +}
> +
> +int map_regions_p2mt(struct domain *d,
> +                     gfn_t gfn,
> +                     unsigned long nr,
> +                     mfn_t mfn,
> +                     p2m_type_t p2mt)
> +{
> +    return p2m_insert_mapping(p2m_get_hostp2m(d), gfn, nr, mfn, p2mt);
> +}

And eventually both helper functions will gain further callers? Otherwise
it's a little hard to see why they would both need to be separate functions.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 15:27:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 15:27:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070636.1434279 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujJZo-0006BH-4Z; Tue, 05 Aug 2025 15:27:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070636.1434279; Tue, 05 Aug 2025 15:27: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 1ujJZo-0006BA-22; Tue, 05 Aug 2025 15:27:44 +0000
Received: by outflank-mailman (input) for mailman id 1070636;
 Tue, 05 Aug 2025 15:27:42 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Xkmx=2R=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1ujJZm-0006B4-AQ
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 15:27:42 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b9d50e61-7210-11f0-a321-13f23c93f187;
 Tue, 05 Aug 2025 17:27:41 +0200 (CEST)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-459d62184c9so17012985e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 08:27:41 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-458953cfeaesm271894195e9.16.2025.08.05.08.27.40
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Aug 2025 08:27: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>
X-Inumbo-ID: b9d50e61-7210-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754407661; x=1755012461; 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=KpQ6JVuYGsB2GRKbtOPMGOVowMsWszSsXYpd1hQT2Fk=;
        b=XVdegpZ/xoX2OtCzvNHU/QkMTjIdsNXB4WaX1nCfzFfDCFhiggAbps6LdGXv+L/qFo
         QlqlU3Xx2ifCk9eezCSHCQTriU8P+f3f2OZoi12jGIO20XdE8KLfj/9p0hHVUuoTvpOX
         Utoacl0yz1HEVu6mb+++72/eP/B6+gBDKQKTI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754407661; x=1755012461;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=KpQ6JVuYGsB2GRKbtOPMGOVowMsWszSsXYpd1hQT2Fk=;
        b=eon5f90kqTIY4ZUl0QWPlPh7s4wE6Wfi9K8YNqIdHKaPW28bKWqyxT+uUnWyHFZqOR
         RRxxidzhQJtqeJ3cr4eKMwZX91HAJQXaaIRQz99QYcRBJl/qK/UfU5+jHDYUaRLVd6sj
         +JxbO44ZfmDT+OuWF2KMQOUBAlMnnzp27ri3vB98ea60ziWCCTxPTQK2sc07vSKK00XK
         B/C1u0ku3I/MeTs2Pt3AITwM4iVRZFHhws9Ka9i6N3GwBRlgzQxmQyr35HF74v0Y1E5a
         mV0YMOKPeeynb7v4DM9DNQuYMNwkOxuEFkyQWeIYMZ6dR6oWC9Hyjk5A1RibsQvkfFz3
         NdZg==
X-Forwarded-Encrypted: i=1; AJvYcCXMA7+9AlbXWDpCHXg0AniwaQ8XoSdgC3iTvHccr7g0ZtNPlALJBCBCfP6CGFOO66TuKEQwiIyyS/A=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyJPieIP91WEqhUgSlYemsKEODz9ozk4KImusISIxQhWbOVbJJZ
	s8NWGgrKPOkybMAS0wIJNbTlfIoYjrcHB1/v4mA+l5J2sMPNlHo05OnH7EVgxH3W3mekqg9bYP+
	AltwU
X-Gm-Gg: ASbGncvm2uqXa1lXi1wOxddAkjlL9SUX7ysYD3lg9OrFdzAvlUGazBRhxhsK6WhS5XT
	Jtd3Gt1MPYsY2cUofiebySCh/cCTdQpceCycch/P7QqL1Gdt2D+83WdBA1J/+/aVbZE/WkBscS6
	/u5fV80Ty6KH1Cr2oK/HQPGwLXq7YTpx+0WtyrBAJi63XYLSlhuYlcpDtWVwQvNoyVcBt9ivK7J
	1XbGGBLxmc5+nAPw4zahaB3BTKXHDoVu+OLzfM1CDLmV4R2e0dQj16iBiywNL/dsbR47wqcCxl1
	sDYdsqf8w1boVhvliv9sL71T1ZExGWbnOI3A+E0Sa287R4VRz17QLTAfxA4iw3oNfSu7uDzr2To
	GluGjrJvqnW7I3BH461dqQXB+EY2+XVRaPtnFlDhKi6xwcfqrQQNZIPnbe841/1mie95tmcRZVg
	4x
X-Google-Smtp-Source: AGHT+IFyOv2Xc+fp5Zcq7Qrz3t1lTUDHVhOZr2Rpw/TGq+7T7Eht6R6qm8rCdqbdSc/wZswRgGTEpg==
X-Received: by 2002:a05:600c:4ed0:b0:459:e466:1bec with SMTP id 5b1f17b1804b1-459e4661e0bmr17456935e9.2.1754407660595;
        Tue, 05 Aug 2025 08:27:40 -0700 (PDT)
Date: Tue, 5 Aug 2025 17:27:39 +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>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 8/8] x86/mm: adjust loop in arch_init_memory() to
 iterate over the PDX space
Message-ID: <aJIi6wrNZck1DSU_@macbook.local>
References: <20250805095257.74975-1-roger.pau@citrix.com>
 <20250805095257.74975-9-roger.pau@citrix.com>
 <31691bf7-94bf-4f73-b04c-a32f86bb0e37@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <31691bf7-94bf-4f73-b04c-a32f86bb0e37@suse.com>

On Tue, Aug 05, 2025 at 02:38:38PM +0200, Jan Beulich wrote:
> On 05.08.2025 11:52, Roger Pau Monne wrote:
> > --- a/xen/arch/x86/mm.c
> > +++ b/xen/arch/x86/mm.c
> > @@ -275,7 +275,7 @@ static void __init assign_io_page(struct page_info *page)
> >  
> >  void __init arch_init_memory(void)
> >  {
> > -    unsigned long i, pfn, rstart_pfn, rend_pfn, iostart_pfn, ioend_pfn;
> > +    unsigned long i, pfn, rstart_pfn, rend_pfn, iostart_pfn, ioend_pfn, pdx;
> >  
> >      /*
> >       * Basic guest-accessible flags:
> > @@ -328,9 +328,20 @@ void __init arch_init_memory(void)
> >              destroy_xen_mappings((unsigned long)mfn_to_virt(iostart_pfn),
> >                                   (unsigned long)mfn_to_virt(ioend_pfn));
> >  
> > -        /* Mark as I/O up to next RAM region. */
> > -        for ( ; pfn < rstart_pfn; pfn++ )
> > +        /*
> > +         * Mark as I/O up to next RAM region.  Iterate over the PDX space to
> > +         * skip holes which would always fail the mfn_valid() check.
> > +         *
> > +         * pfn_to_pdx() requires a valid (iow: RAM) PFN to convert to PDX,
> > +         * hence provide pfn - 1, which is the tailing PFN from the last RAM
> > +         * range, or pdx 0 if the input pfn is 0.
> > +         */
> > +        for ( pdx = pfn ? pfn_to_pdx(pfn - 1) + 1 : 0;
> > +              pdx < pfn_to_pdx(rstart_pfn);
> > +              pdx++ )
> >          {
> > +            pfn = pdx_to_pfn(pdx);
> > +
> >              if ( !mfn_valid(_mfn(pfn)) )
> >                  continue;
> >  
> 
> As much as I would have liked to ack this, I fear there's another caveat here:
> At the top of the loop we check not only for RAM, but also for UNUSABLE. The
> latter, like RAM, shouldn't be marked I/O, but we also can't use PFN <-> PDX
> transformations on any such page.

Right you are.  I'm not sure however why we do this - won't we want
the mappings of UNUSABLE regions also be removed from the Xen
page-tables? (but not marked as IO)

I could do something like:

        /* Mark as I/O up to next RAM or UNUSABLE region. */
        if ( (!pfn || pdx_is_region_compressible(pfn_to_paddr(pfn - 1), 1)) &&
             pdx_is_region_compressible(pfn_to_paddr(rstart_pfn), 1) )
        {
            /*
             * Iterate over the PDX space to skip holes which would always fail
             * the mfn_valid() check.
             *
             * pfn_to_pdx() requires a valid (iow: RAM) PFN to convert to PDX,
             * hence provide pfn - 1, which is the tailing PFN from the last
             * RAM range, or pdx 0 if the input pfn is 0.
             */
            for ( pdx = pfn ? pfn_to_pdx(pfn - 1) + 1 : 0;
                  pdx < pfn_to_pdx(rstart_pfn);
                  pdx++ )
            {
                pfn = pdx_to_pfn(pdx);

                if ( !mfn_valid(_mfn(pfn)) )
                    continue;

                assign_io_page(mfn_to_page(_mfn(pfn)));
            }
        }
        else
        {
            /* Slow path, iterate over the PFN space. */
            for ( ; pfn < rstart_pfn; pfn++ )
            {
                if ( !mfn_valid(_mfn(pfn)) )
                    continue;

                assign_io_page(mfn_to_page(_mfn(pfn)));
            }
        }

But I find it a bit ugly - I might send v5 without this final patch
while I see if I can find a better alternative.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 15:31:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 15:31:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070659.1434290 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujJdF-0007tK-Iy; Tue, 05 Aug 2025 15:31:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070659.1434290; Tue, 05 Aug 2025 15:31: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 1ujJdF-0007tD-FT; Tue, 05 Aug 2025 15:31:17 +0000
Received: by outflank-mailman (input) for mailman id 1070659;
 Tue, 05 Aug 2025 15:31:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=tjfC=2R=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1ujJdD-0007r9-KB
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 15:31:15 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20612.outbound.protection.outlook.com
 [2a01:111:f403:2415::612])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 35222c54-7211-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 17:31:10 +0200 (CEST)
Received: from BN0PR04CA0187.namprd04.prod.outlook.com (2603:10b6:408:e9::12)
 by BN7PPF0D2C72F0D.namprd12.prod.outlook.com
 (2603:10b6:40f:fc02::6c6) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8901.26; Tue, 5 Aug
 2025 15:31:04 +0000
Received: from MN1PEPF0000F0E4.namprd04.prod.outlook.com
 (2603:10b6:408:e9:cafe::67) by BN0PR04CA0187.outlook.office365.com
 (2603:10b6:408:e9::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.21 via Frontend Transport; Tue,
 5 Aug 2025 15:31:04 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 MN1PEPF0000F0E4.mail.protection.outlook.com (10.167.242.42) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Tue, 5 Aug 2025 15:31:03 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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 Aug
 2025 10:31:02 -0500
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 5 Aug
 2025 10:31:01 -0500
Received: from [172.17.35.128] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Tue, 5 Aug 2025 10:31:01 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 35222c54-7211-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Z5nhKKia2GpQfRbCrQr2QbXVkzY7pHsC7NYHCTIMBw6nQOkxXZv8FO4Kxa55d56qyteZNSByv7iEBh5NapqxjKcB9/RLbEprOUAOJyZC3vAWxJYuGKpIrQ1lgmTpl5hn3qZVDbVZxn+Um9jrER70EqWjJqOyWv6QmnQNKad/GhvatYu++ZDZA56S00br9Lt992ou4AlIK2PwcWeONJscmccmxwEvjPYavrmIAaYCIudgvENfUua8mLiX9rGt7X9zWRgJPnYEfSPjNb71rMTFWiex9xpbcemrMMqaPkX3zbdnaEZFvFwGySSoYD0R6QwgZWlneYaOMsS46kk9Vz43Mg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=tFEV+eaLF0XRM9fi1aEPR912nYi2HAOu0w8fh8HAiWo=;
 b=nK/uE3JNurqI1vhe5I/lm5R1NkEpGWwo3r1Si31+jdTj+bkNZ8TltAxLx3yietQaYAgp4jNJak8PaT/SVECANWllT7gs8WsVGl7WVjzUpDDD2PASKCgYLR31hI9vUbp6uA/BGUOZx9M/NK1BnUx6HPqMN2dT98GcDolUnTlq6sKxRP5XOHADq8YHNk41PK1fs5kUuneiw+CnAGhENqEEooJaCBlEp9GqsCZqNqfoUsnysjxQ7iTpbxshxe1+3ScPCAKPR4FPYTlgIgKNSueenyjyeCkMWtfpa9hPfxiKsrDeYl+ui+ro+zd8GmPnldm6kkaST3UN+7a3NcmAekF7eA==
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=tFEV+eaLF0XRM9fi1aEPR912nYi2HAOu0w8fh8HAiWo=;
 b=d/y5mSH1bhXuawJPPufs2bhAb7JPTw/mx1b9Kab9+wFJ3x5qL00nlSUT1CXiCCtvpM5ykTcQDRqbyjj3Jj183IdiGX2UZuV7klQBL6kpm18bFjrw6mn/aQQm+AmizaCIYh87ziY4H25NQl46FUjG4sL68oykAwzSqTd967dz894=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <b98abcdb-38ba-4176-8d6a-d4bc234b37ca@amd.com>
Date: Tue, 5 Aug 2025 11:30:58 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/HVM: polish hvm_asid_init() a little
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: <ec351aea-e2a0-4335-b8ee-51c6eface104@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <ec351aea-e2a0-4335-b8ee-51c6eface104@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB05.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MN1PEPF0000F0E4:EE_|BN7PPF0D2C72F0D:EE_
X-MS-Office365-Filtering-Correlation-Id: 8cf19268-9360-47b3-413e-08ddd43516f4
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|36860700013|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bHN1U0lGSmZhall3ckNGN2NjY3VWa1JuM3NKWmhHVVBadlFzY3pIbVg1dVVV?=
 =?utf-8?B?ZzRZZmJQY0dtK2pNSmo5QXdKVm40eEo5bVAzazN0aHA0aW80MkVEUWk1Z0ZI?=
 =?utf-8?B?NjNpcU40aGtqRkRpcW5LUVFNL0ZkSTlmcFhhM0hFTkp2Q0d4QitjRUdEaGdH?=
 =?utf-8?B?ZElQcVlTR3JuZE80ZDE4b3VDUkY5VFEwbVF1VUZlSXpJQXF3L214WThOVFRh?=
 =?utf-8?B?UVRVWkZHSEFoOEhqb3U5VTUzYWhtZU45QW0rR21JK3dpdkVUMk5VRGw3NXdm?=
 =?utf-8?B?emM0a014SW41M3pueVd0SGZXMEsvYjBmVjlUWTVaU3BqaDl1b0ZwMTUwZkFx?=
 =?utf-8?B?R0JiRHBaakNUYUhlVXAvQ0s2RXJVek5CQW5ob0JuNjcyNHVpWDVOS1hlS083?=
 =?utf-8?B?d2VqOCsrWS9DbHVVVkhQZXBiMmlmaUwxajRTamsvTzJxU1N3a210NWFwaERn?=
 =?utf-8?B?S3NWdVJKdE9tS3RTZktkQnp1NTF5WUgyWkgxaVB4aXlraXFNS3loZFcrVzlF?=
 =?utf-8?B?OEhOdzFRUXdpYTg5WGZQTGFZTlQ4bitvbURXM056YU5taHB2OFMyakhaYVdI?=
 =?utf-8?B?SUU4UE1QR3ZBSndNRlRHVVp2ajB6ZUQvcGNPZzduVGpvNDNPaFFlc1UvTGU4?=
 =?utf-8?B?T0pJVmp0SFo0eEJUa1laUUxjejRIQ1Y1SnozT1ZjL28rcmRiMktXR3o0bmlJ?=
 =?utf-8?B?dDRyTEkvT05wTDdFWlJHbXFLUVJYNWpoYjhWK0E5R09UMVZHbHFjazQzU2Z4?=
 =?utf-8?B?Y3RDbm5aM0toZE5ZcUFJV0JtMTZYSUdnRG82WGozOFI2cFkrUmsvdENGNDkr?=
 =?utf-8?B?NEFqdkZKOGY1SkxXQ1VJNjNOUzY2MlpjdFp4NUprclg5YW5hSmYrNTd0Rmpi?=
 =?utf-8?B?b2VETmxOR25pVTNWVkVieFVGUlFQMUJOTGpOeEt3Q3pEYVBjT1crOHJLbHJa?=
 =?utf-8?B?MXVPN1kzdERxV2ExVmd0UUZNY09lVitMRUI1b1ZqQ3NPSmF4MUh5L1htSUpK?=
 =?utf-8?B?M1JlK3BEMXdxTDFVemtycDN1M2d6V21QczZRcTNQYlJnWFZCamxZNVdPQmZK?=
 =?utf-8?B?MlFJaEJuYjJabzFrZ05VZUpsMWJQdk1KL0NJUDd6YlBxVTRSOHRpeDk5cDd1?=
 =?utf-8?B?Mml5a3hubVhyK1JubDNQdmU2anFnUUFsaDFDRnlpanRQeE81VTd3UHJtYUJk?=
 =?utf-8?B?YzVoTFB4Um9ka2hNOHlHNSt6M3JGaHlaSnpJM1FLTE9ZZzREaVIvUXZ2WUw2?=
 =?utf-8?B?ZFRLd0dMQ0pDMDRUN0NkaWw0U1JlTVZvaldqTStrMkIreUZ5aXhmYk1uOEhl?=
 =?utf-8?B?cTdvNEY0bmdLY04vVi9hWkFWdVkwSVFEck1HODN3L1hvQm56K2Y2eUdBVGRT?=
 =?utf-8?B?d29yV0lLY2tqOGJCMVkyRStGRjROK0ZDV1VxeTlNWGIwQ1plL0lYZDc1NUh1?=
 =?utf-8?B?UUg1bTBLSktJYnp1WElLZnQvVDNwNlJjd0FjN1lPaDF1cm04UkorOXgva1R0?=
 =?utf-8?B?d3hnbkJaNko2TG94L0tram9GZHJBYmpiNmxMQ0FyZHIwcTZVK1kxMGhnUnk2?=
 =?utf-8?B?dlV0MkdEK21sKzhrcEJ4cWN6aktjc0ZyanJhUWlLS2dIUTlXdEhVOCtYV0tO?=
 =?utf-8?B?Y0VUUURkQld2RjV3TGYrRFdvUkU4ZnpNS2NrVmNZSDRiaWF0YyswUjQwTFV1?=
 =?utf-8?B?QmF4bzFGRW91RWlNZzZEckR3OUNZOS9lV1dnd3NhLzZlNlk0cWdJcDVseXk4?=
 =?utf-8?B?dWtMRnVoVExDSXhici9QSEYwN2Z1N25hYjJSclFDRmZnM3g2TjJ6N3FPeDZS?=
 =?utf-8?B?V21tNisvVnZBQlNGWHh0TDlFTDVENEp5MDFYWWNlOWNMcGhiRDFwUVVqZ0tu?=
 =?utf-8?B?b2FhWjNVcVJUYlBUdm9jaHJXSi9qSUN0Z2ZVa1J6L29uM0drTVVXSHRoMnRm?=
 =?utf-8?B?Vi84OGx6U0R4M1JycUtmYTlyWW1BWGNnSy9QdEJEajIwMmoyT0dMNWI2Z3pU?=
 =?utf-8?B?NGdwbDN2MXVIWFg1WjZCZitHemcrOFp4U0Yrbnl1ZUhXZWpIZWt2QXluN1Ir?=
 =?utf-8?Q?Mec7Iw?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(36860700013)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Aug 2025 15:31:03.9422
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8cf19268-9360-47b3-413e-08ddd43516f4
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=[SATLEXMB03.amd.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: BN7PPF0D2C72F0D

On 2025-08-04 11:41, Jan Beulich wrote:
> While the logic there covers asymmetric cases, the resulting log
> messages would likely raise more confusion than clarify anything. Split
> the BSP action from the AP one, indicating the odd CPU in the AP log
> message, thus avoiding the impression that global state would have
> changed.
> 
> While there also
> - move g_disabled into .data.ro_after_init; only the BSP will ever write
>    to it,
> - make the function's parameter unsigned; no negative values may be
>    passed in. Also reflect this in svm_asid_init().
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 15:53:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 15:53:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070695.1434311 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujJyC-00030t-BM; Tue, 05 Aug 2025 15:52:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070695.1434311; Tue, 05 Aug 2025 15:52: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 1ujJyC-00030m-8b; Tue, 05 Aug 2025 15:52:56 +0000
Received: by outflank-mailman (input) for mailman id 1070695;
 Tue, 05 Aug 2025 15:52:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=tjfC=2R=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1ujJyB-00030f-Rg
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 15:52:55 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20601.outbound.protection.outlook.com
 [2a01:111:f403:2418::601])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3f1c6909-7214-11f0-a321-13f23c93f187;
 Tue, 05 Aug 2025 17:52:54 +0200 (CEST)
Received: from MN2PR20CA0066.namprd20.prod.outlook.com (2603:10b6:208:235::35)
 by DM6PR12MB4140.namprd12.prod.outlook.com (2603:10b6:5:221::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.20; Tue, 5 Aug
 2025 15:52:51 +0000
Received: from BL6PEPF0002256E.namprd02.prod.outlook.com
 (2603:10b6:208:235:cafe::f) by MN2PR20CA0066.outlook.office365.com
 (2603:10b6:208:235::35) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.21 via Frontend Transport; Tue,
 5 Aug 2025 15:52:51 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BL6PEPF0002256E.mail.protection.outlook.com (10.167.249.36) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Tue, 5 Aug 2025 15:52:51 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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 Aug
 2025 10:52:50 -0500
Received: from [172.17.35.128] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Tue, 5 Aug 2025 10:52:49 -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>
X-Inumbo-ID: 3f1c6909-7214-11f0-a321-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Zm82b/39gOzGp0RTPS+lH2VubtERniWI6QRT+Chjtb+5ffpiDPYPF7VBFuf0ro89qIyyz4AWlO8yIKXTqFMGb+uB+Ho7/3hEvl4F1n6UtU4kAluwiVToMmXw/blQdiltq5Qn5hd85PYgfkJRwag92FLWW1KyntTuTqTpSfiAZjWVRZI4Wu1mUL+JigvJVgEjDJd2fOLTz8rAN/vut8XEs3rDzAuCVtYziAd0pQJsOFhmMaGMDLeuHY7LjT4kQUWhsCfMFOGF9BFpIcVtbolnyY7bxyWa/lObM1bQ93JaKOiPiW7tkDUfIOUUfNRe7V1/Y+OfLGd2dJF0dfNC10S/Tw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=RUahBH58Kz0fNc27h/j5WSk2zjAIPnsRjrrcmBsfVAM=;
 b=pvVMf8DLC1Swc4NcR6dan7uSlYWdIAbnS1sICzsLPLeCJ6/Y/R5FbhFuKleHuOulZBEAlQzV7B0/4Z1fwDvnwwdev2GkiKDtMsozSI6koroF3XnzeLUCxSpAes5Md+B5XTr+kJ7SAX64BQ0RlBN9ZmEARwO8fVi8VeDoe9qML8oIWtKX+6jL7QckQNrhSV9Qn0cYnUrW4xkSCLOVEkVoyc9bWYguYBtz9DiyqlXWsB+KwvvZmOTiTvAWVjg+k/LaLuTa5Pg1fTSu1Js8/2Mt/4xZ65B7GO/YborleXE8z05q+eo/zCMcF9I2wYmit3L+jRALKftVuhVHSGncjMqZ8Q==
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=RUahBH58Kz0fNc27h/j5WSk2zjAIPnsRjrrcmBsfVAM=;
 b=yg8ac700tE1QzYRe7KGvCDne26Gv28uPWg32R/Qg2b6KPBbAvyiKtR4NELI8Nn8QzRDNALNA9GZgIpTQy1e6JgcEPTXicg8pXFhO9/Y/Sy6Nvcg0b6CQHLht4iKUzMHtZ+2g+ZglbinwMg8mv/pnLN+uSkPw5O5s4DTlQPOhL/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=SATLEXMB03.amd.com; pr=C
Message-ID: <38e31126-5540-4224-ab4c-0bd9e31b49af@amd.com>
Date: Tue, 5 Aug 2025 11:52:51 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] console: make printk_ratelimit_{burst,ms} const
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: <5fcd1c68-6c18-4a1d-8a1d-f056bdb6cde9@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <5fcd1c68-6c18-4a1d-8a1d-f056bdb6cde9@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB03.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF0002256E:EE_|DM6PR12MB4140:EE_
X-MS-Office365-Filtering-Correlation-Id: 47fac8f0-c65e-431c-1476-08ddd438221d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|36860700013|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?M0ZxOGFsM3I2aXFBQi9sa2lxWEU0N0IvWXlRaHd1ZG44anhYUHJTZERCUW11?=
 =?utf-8?B?SFNVWHVVSkNGYXc1Zml1eUtiZ2MxV3JWZjVtcm5ZdzZKYlFPd2lrREZta2hv?=
 =?utf-8?B?b2V0VzJzY2Vsanlwbzl1dmF4UDRxaERkb3hadkVnck1kTndhWkdOblpWNkRR?=
 =?utf-8?B?T2pPWDdHNkYrR21QZWVVaWExYzVRZUVQKzEzbUpqRG1SamtsbTE4MHhKYXVL?=
 =?utf-8?B?NTl1OG5SSTJVSlgwWW5mckltRElRTlJWSlp6dTN6UGJHblR5ZDFhMlJsTUhU?=
 =?utf-8?B?ZTB3cGF4cG15WWVHeTlEeWFlRzRSdkx0a1R2a0tSbnUyUjdrNlhkM3lmdlJW?=
 =?utf-8?B?VXhERmhwU1VqQ2p3bUQyYk1lL3FCRm0rR2pwZmc2eGlkNzZIS3pseEZXdmhW?=
 =?utf-8?B?cTdMdi80WjZrNi9pTnRHV3pnWEpRYzhEeHZxWEJYb01IaE1hbVZtbElSbFZX?=
 =?utf-8?B?dTlZMkV4dTlKT3B1c3FDRHBRcDcxc3NFUTlSbWVMNXE1Um05aEtsK29RWU0z?=
 =?utf-8?B?UFdyUUY4aEhNWVYzQWdVcm1BcDc3V1RyTG9oZVAxQkk1NjB2ZThrUC9oeEgz?=
 =?utf-8?B?Z3NJdVRveFhXMUNETTNuYmpIU0F5WHJCOUZYRlhmSWp4VTFtTlhmYUsrRkpX?=
 =?utf-8?B?Qjgyd2xoYWFrNjk0VXc0ZjVHTXFpN2Y0b1Znc0svdUJaenZLZFI3V0psREZv?=
 =?utf-8?B?MHprN1Bxd2R2NnFoc0U5S1ROK2FIOG9jMlNXdnhYOFhXa2ZZZGkrc3h2TG9Z?=
 =?utf-8?B?R1cvVkQySXRuaHkwSzMxdGVoUEJVQldOZmtNL3A4eXNnL3lWUldpUk9KWmxr?=
 =?utf-8?B?OFdZY082dXRqeGRSTzBYT1UxZEQvNUh2SWJZdVVKTVNFTDlvcUt3R2dyajNC?=
 =?utf-8?B?SlY5MjVmYmdZdkxQYmJxNThjc2w0cjhKdWNCZ3Z1SzVEd2luR3Z5UWxJZzl3?=
 =?utf-8?B?U25EVXV2TVltMy80a2tKMXJsMDY0MXJNUHBOMS9CZGsyTmpPbTdRUlA1NlNu?=
 =?utf-8?B?ajZ0dmpRd3BVMC9MaFNVOHk4SnVFZTVYcDNsWXlPanR2azRKcjk2TUtScmpE?=
 =?utf-8?B?c21tUlJMcGd6aWdRdjZQeG9UZ1dmUjN2WU1xRE44VmRuQk9ualhlVjFpNWkx?=
 =?utf-8?B?ZVgvcFhnYUFwdGtVL0dYN0pid0gyWE1XVlpDc2VPaTRucGZyMllGUXovU0w5?=
 =?utf-8?B?KzVISmNQVnlwSE5XRlVveHZ6dm1lQzRDSlFvS3VVOHd6QmF2NVNzWEJGTmRV?=
 =?utf-8?B?REY1Y2pEMk9JaXNCcXBMaXJlM01BZGlhMkZnS1ZIc0JOa01XcTBnWmsramlH?=
 =?utf-8?B?VmJrcGFZSXdtOU9oUWlaUUZoaU92UlByTmdmV0hHRVdOREltYWNpTlVlQWFC?=
 =?utf-8?B?djVYaU1IalBkMjdXYTNJRUlwa0VMUENIL2habExTVWFLOUhTNXFZM25LcFJM?=
 =?utf-8?B?RHZuazFONk1ybEt0TitPSGdoMXFwMTQ3eGZabnJjeUtrVEw5OFI5Y2NGd3Yx?=
 =?utf-8?B?dnFFdFFDQWNMbVZIUWswTWJoNXRicHBCTElGNzkyV3NFci9LTVVubkxXVWtP?=
 =?utf-8?B?V0psVlV1a1JHejltZkZZU1l3Ym45YkhPVWtOVXpDWm9OYk5TbUJoak5ZQmZl?=
 =?utf-8?B?RHZLMm1WdnJRckVCTkdPZHBqUEUxc2d1bVc5eFhHMlZGUHpFbnE3MWlXeEd4?=
 =?utf-8?B?QzR3ZnUrbEt3YVZLd1BCTGRud1hpZ2dhZWFKLzE0VUNlTVJvNklDVUNMS0ZZ?=
 =?utf-8?B?dmNsczZVMExzM1NuYzdkeDhBV0Nsa1dkRmI5Q2hmSldQd2ZGUmlHVEo1R1RW?=
 =?utf-8?B?ZVg2NlNJNHk1bVF3dGtVNmx2SExaUGVneXlhaURLS2RrTTI4QnNnbU9TS29S?=
 =?utf-8?B?bUJaUEk0TVIySUVoU2pydENtUENVWFZBT0orcllycnJrWVFIVnIwcEFnNWFY?=
 =?utf-8?B?dXJWTEZGVEJHYmFRU01Ed29HWFRXVzMxbW9HZWxJOEFadlk4bGk4bDdEdmJt?=
 =?utf-8?B?MUFWNU44MlRqTXMxL3dZSFNWNXdpWFI0TFh1clJPcW9MK092UEx3OU1xdXNz?=
 =?utf-8?Q?YObiHs?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Aug 2025 15:52:51.1617
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 47fac8f0-c65e-431c-1476-08ddd438221d
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF0002256E.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4140

On 2025-08-01 03:30, Jan Beulich wrote:
> Them not being altered by any means, their __read_mostly attribute is
> actually counter-productive: It causes the compiler to instantiate the
> variables, when already with just the attributes dropped the compiler
> can constant-propagate the values into the sole use site. Make the
> situation yet more explicit by adding const.
> 
> Also switch the variables away from being plain int, and have the
> parameters of __printk_ratelimit() follow suit. While there also
> similarly adjust the type of "missed" and "lost", and - while touching
> the adjacent line - increase lost_str[] to accommodate any unsigned
> 32-bit number.
> 
> Fixes: a8b1845a7845 ("Miscellaneous data placement adjustments")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 16:04:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 16:04:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070703.1434321 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujK8p-0005Kh-9g; Tue, 05 Aug 2025 16:03:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070703.1434321; Tue, 05 Aug 2025 16:03: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 1ujK8p-0005Ka-76; Tue, 05 Aug 2025 16:03:55 +0000
Received: by outflank-mailman (input) for mailman id 1070703;
 Tue, 05 Aug 2025 16:03:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Xkmx=2R=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1ujK8o-0005KP-6F
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 16:03:54 +0000
Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com
 [2a00:1450:4864:20::433])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c8a103b3-7215-11f0-a321-13f23c93f187;
 Tue, 05 Aug 2025 18:03:53 +0200 (CEST)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-3b79bd3b1f7so3214536f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 09:03:53 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3b79c3abed3sm19530690f8f.10.2025.08.05.09.03.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Aug 2025 09:03: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>
X-Inumbo-ID: c8a103b3-7215-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754409833; x=1755014633; 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=JXfP12pZ4+VDH6A10Mwp3rgVonBLU43HxHJdyCaNY84=;
        b=QiYzVM1NAJqrXrmRc9+yYdRor2FbKnTB+opHOu6IhDMP/ErF7q6LlQeBSlS7J8rrhO
         4BcRLy3JcDxKE4lSetoU4PiaP26KTOxGCswcRXT8jUyWWFHox8mIGYCOW2inRPgvarVz
         VWK3yXFujtkNd9wiSnLYFkqLHILHCExkIoWCw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754409833; x=1755014633;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=JXfP12pZ4+VDH6A10Mwp3rgVonBLU43HxHJdyCaNY84=;
        b=DI0ngLXZSBUmKkewlRqJZK8mFkdTeyfUP7GWLQsumLw9gYaxb7r+4aVM/JJAyTfja9
         j3/t721/eaXwjdskhahOWE6JqWG6qLghNQFvT5JfEMSIl3amXO5exA1nVVPQoFOQPWZ+
         1rnOUgnWcuoHk4UbaoXHEEZnDKp46y7VcyyVrsyiiT9m+HySj0//oSwf6rDxDL18fM57
         1KLb92kdkvwsNbJNnk+adndwMD5WNQ0sFU40604JO6uaOcDBFVKZZ2GXgRqHeZieEond
         T3ZeeqFR9vS3/PKDLflFq0ENEJhU1PsAZojcxzeEvtV9clq1otDWTvra0KrP8ekVD0OT
         KxOw==
X-Gm-Message-State: AOJu0Yw8FsgtX6VDKZwPeRpM7K4kMOENOzyFmV3k7rq0hQ4NyigSAJsj
	NOG4XJtd7SsqstrjOj1shpTRRG8DqqX/gEfi8lbKjjuvnsB9AGaGajBECzBX26q4r5KqQuZnd50
	DS4fM
X-Gm-Gg: ASbGncv4abxNrhToyw/aAHKm+B/p1/HXW5k9t2VfP+xq9Rboh48sny3boVfGwihYsM5
	YbDa8zDney9GDpsGNUX/qXRsDtjIFmMWKr6wFB8mnyCw39uBvcTJUDZakmit/vR7sCiPvJ3DNQv
	e2w9+RjUNJfrlNnLjXWwM8w1Yr/WWGiwHnIuCvZaiUqAXZLlCX74wmEHqvTXxcrhYcwtqAtqTfJ
	LQU/TEBjoEyI8sP0pjSxTCl8bUy1yHT1z+naDXUIk4ABBtA6ERz8HE9IJIdlG8/zfy8M7bccJM0
	CZGorBa5Gr+VGfNwefqJa1Q8C+Y3LZ022/lnbZhZfZkUbtGw+NR7NRzDeDd+A8caOiipDq1oC8F
	oWVuI/NhvqHQFH/HhfFcTedJqIQkigpzt9sdjrwr8G7pBoYEAbRuQgNAyq836dDdEyrlIKY6yF9
	oc
X-Google-Smtp-Source: AGHT+IEhD635R3krOC8v5Rmh/hPH6KAO3sEVvX2wlmdqOAORbraZ6ZGaOxMqY5m7NTs5kmtWp+5Uag==
X-Received: by 2002:a5d:64c4:0:b0:3b7:6804:9362 with SMTP id ffacd0b85a97d-3b8d94837b7mr11094043f8f.26.1754409832732;
        Tue, 05 Aug 2025 09:03:52 -0700 (PDT)
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>
Subject: [PATCH] x86/hpet: do local APIC EOI after interrupt processing
Date: Tue,  5 Aug 2025 18:03:26 +0200
Message-ID: <20250805160326.78837-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.49.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The current logic in the HPET interrupt ->ack() hook will perform a local
APIC EOI ahead of enabling interrupts, possibly leading to recursion in the
interrupt handler.

Fix this by doing the local APIC EOI strictly after the window with
interrupt enabled, as that prevents the recursion, and would only allow for
interrupts with higher priority to be serviced.

Use the generic ack_nonmaskable_msi_irq() and end_nonmaskable_irq()
functions, removing the need for hpet_msi_ack().

Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
Fixes: 3ba523ff957c ('CPUIDLE: enable MSI capable HPET for timer broadcast')
Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/hpet.c | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/xen/arch/x86/hpet.c b/xen/arch/x86/hpet.c
index 192de433cfd1..d05b5eb1361f 100644
--- a/xen/arch/x86/hpet.c
+++ b/xen/arch/x86/hpet.c
@@ -303,13 +303,6 @@ static unsigned int cf_check hpet_msi_startup(struct irq_desc *desc)
 
 #define hpet_msi_shutdown hpet_msi_mask
 
-static void cf_check hpet_msi_ack(struct irq_desc *desc)
-{
-    irq_complete_move(desc);
-    move_native_irq(desc);
-    ack_APIC_irq();
-}
-
 static void cf_check hpet_msi_set_affinity(
     struct irq_desc *desc, const cpumask_t *mask)
 {
@@ -337,7 +330,8 @@ static hw_irq_controller hpet_msi_type = {
     .shutdown   = hpet_msi_shutdown,
     .enable	    = hpet_msi_unmask,
     .disable    = hpet_msi_mask,
-    .ack        = hpet_msi_ack,
+    .ack        = ack_nonmaskable_msi_irq,
+    .end        = end_nonmaskable_irq,
     .set_affinity   = hpet_msi_set_affinity,
 };
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Aug 05 16:05:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 16:05:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070714.1434332 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujK9w-00060B-N4; Tue, 05 Aug 2025 16:05:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070714.1434332; Tue, 05 Aug 2025 16:05: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 1ujK9w-000604-JR; Tue, 05 Aug 2025 16:05:04 +0000
Received: by outflank-mailman (input) for mailman id 1070714;
 Tue, 05 Aug 2025 16:05:02 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=j2i0=2R=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujK9u-0005KP-PA
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 16:05:02 +0000
Received: from mail-ed1-x535.google.com (mail-ed1-x535.google.com
 [2a00:1450:4864:20::535])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f119556d-7215-11f0-a321-13f23c93f187;
 Tue, 05 Aug 2025 18:05:01 +0200 (CEST)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-615398dc162so10087224a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 09: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
 4fb4d7f45d1cf-615a8fe7a20sm8663522a12.34.2025.08.05.09.04.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Aug 2025 09: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>
X-Inumbo-ID: f119556d-7215-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754409901; x=1755014701; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=IkJAYVyzbq4UhxLCXnefKHK4q1RB9cUHgpCWqkKsAuI=;
        b=augDAyeZ65FFA4VdFyYEjiDJVy2yfPLJkgCYEmDglG6dhX8ouhLsaaK8JcIzoXKOwU
         ghlis2DImkv1HEj79k8fvmlejo6LhQOKEW98v/UF9l5HklxnjBDvzqhxxmT4InSAL9cC
         nVfttTcjpz6VIuw+xvCl4Fsu1XU27Dkf3AQNzS3ZPtDG2TFHiBWwq2mqUo6d466QBtgi
         f72bVvqWmX1poxUJNvlJ0Q9zW+W54PL29AeYiv09i1wMceMI8PH/RX/SaQL9AuiLPQ2/
         quuvyDIH//L7QTPIoifkJ8e8G+nKCpzr0FdYwyjk0ZV06nlbxxv47vQyYe1/AmpRy72B
         GKSw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754409901; x=1755014701;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=IkJAYVyzbq4UhxLCXnefKHK4q1RB9cUHgpCWqkKsAuI=;
        b=dvric2fWzErT5l3kluLuQQdLporODAyLtUC/qPQxSUvqIBcHNBNucev0SHH8eNIHiI
         s8bB8AqI0ksnC9SyJCZaTJ9PhjNhdr3zVpGqiIockW20ru4hEUjyg2AxT2aKalRjkFuB
         BVUfArKD6NXwc5VLO63tVBR9ttEywtFCg62gszx4P2KzEZHx/2/1omicrE0bxOTfdJdW
         34wRgpBedP0uRFq+EEVuVvUJeFZtfdCkNjxFq2xwbxF72yPeuHGFTDjeFRnQjnPqX37f
         cuJ3eLcy0COhl9LVPjfHaOFApKVC6rlaBnO5/A091miC/AWwaxrzNxssHVfcB3FFItym
         Vhyg==
X-Forwarded-Encrypted: i=1; AJvYcCVpGb26M8lJf333iQrlzUhXhZEKDxEAa1+lKhX9A2cZNUZuiks0G1zalAzXGGqyj2MroTiXX868ET4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzeG23z4L6wmj0kJ8Pckf/urKegybAAz7TtsCk/39v6l0vtIduY
	CCpUP2gTVNV1DjvBH/6tk4BAc10Fbc8cgF2KBkFGn92YYt2MX3VdMBKTpxk1tj/8IQ==
X-Gm-Gg: ASbGncv/E7mfiqXmdk9YIOAd172toMAFASs2LduEyQ/SotJk4/7dhUdz/e1RExCazYY
	WBPrlsi6BbsaHIEO+o4oCbb5tUz3NJ0quqvJBwGdGUr3RSJghHdzE16TaUzWti3bpxp3QIGwYhK
	YBq+pGdWwUn6jjs3+x5UHonMVw0qZo8hj5ZQW9KKnpPST9k2Je/0HT/Sr6Ik5GBgY88uc44XPfp
	mqBvfSkk9uvwLjD3n+Af4sZCYAOYCS4lCf8qkzFKaaYsArgEK5c8NDxa/cqg4TaY2FpK4FQZ6Kg
	8Re691DivVTj9+y3+Z/KzvKZaGd/jRF182DqisBM8x/maL8Lc1SDEfAFjoe35fo4sdHYdM5IbU/
	MD1Ha7s6VI7cyQAr2LQ75gS9AyGNDnVONFG67wzj0yuweM/1B/Gl0l8hj63wrueLGCmkuEfzg8M
	A8sWr+v/c=
X-Google-Smtp-Source: AGHT+IHWeUVtspS8GrGYYkrKVwLlqrvJJoextQ0jmJXjbHXoJOO9MQxLu/txbENk7Wbaj4he4DvsTA==
X-Received: by 2002:a05:6402:3590:b0:615:8bee:56b6 with SMTP id 4fb4d7f45d1cf-615e717303fmr11309634a12.34.1754409900714;
        Tue, 05 Aug 2025 09:05:00 -0700 (PDT)
Message-ID: <f217021e-1fef-4324-a56e-529fd29b4c69@suse.com>
Date: Tue, 5 Aug 2025 18:04:59 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 12/20] xen/riscv: implement p2m_set_range()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <ea69584222a4c41eac276de1ec8eed25b13642d3.1753973161.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: <ea69584222a4c41eac276de1ec8eed25b13642d3.1753973161.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 31.07.2025 17:58, Oleksii Kurochko wrote:
> This patch introduces p2m_set_range() and its core helper p2m_set_entry() for

Nit: This patch doesn't introduce p2m_set_range(); it merely fleshes it out.

> --- a/xen/arch/riscv/include/asm/p2m.h
> +++ b/xen/arch/riscv/include/asm/p2m.h
> @@ -7,11 +7,13 @@
>  #include <xen/rwlock.h>
>  #include <xen/types.h>
>  
> +#include <asm/page.h>
>  #include <asm/page-bits.h>
>  
>  extern unsigned int p2m_root_order;
>  #define P2M_ROOT_ORDER  p2m_root_order
>  #define P2M_ROOT_PAGES  BIT(P2M_ROOT_ORDER, U)
> +#define P2M_ROOT_LEVEL  HYP_PT_ROOT_LEVEL

I think I commented on this before, and I would have hoped for at least a remark
in the description to appear (perhaps even a comment here): It's okay(ish) to tie
these together for now, but in the longer run I don't expect this is going to be
wanted. If e.g. we ran Xen in Sv57 mode, there would be no reason at all to force
all P2Ms to use 5 levels of page tables.

> @@ -175,13 +179,257 @@ int p2m_set_allocation(struct domain *d, unsigned long pages, bool *preempted)
>      return 0;
>  }
>  
> +/*
> + * Find and map the root page table. The caller is responsible for
> + * unmapping the table.
> + *
> + * The function will return NULL if the offset into the root table is
> + * invalid.
> + */
> +static pte_t *p2m_get_root_pointer(struct p2m_domain *p2m, gfn_t gfn)
> +{
> +    unsigned long root_table_indx;
> +
> +    root_table_indx = gfn_x(gfn) >> XEN_PT_LEVEL_ORDER(P2M_ROOT_LEVEL);

Right now page table layouts / arrangements are indeed similar enough to
share accessor constructs. Nevertheless I find it problematic (doc-wise
at the very least) that a Xen page table construct is used to access a
P2M page table. If and when these needed to be decoupled, it would likely
help of the distinction was already made, by - for now - simply
introducing aliases (here e.g. P2M_LEVEL_ORDER(), expanding to
XEN_PT_LEVEL_ORDER() for the time being).

> +    if ( root_table_indx >= P2M_ROOT_PAGES )
> +        return NULL;
> +
> +    return __map_domain_page(p2m->root + root_table_indx);
> +}
> +
> +static inline void p2m_write_pte(pte_t *p, pte_t pte, bool clean_pte)
> +{
> +    write_pte(p, pte);
> +    if ( clean_pte )
> +        clean_dcache_va_range(p, sizeof(*p));

Not necessarily for right away, but if multiple adjacent PTEs are
written without releasing the lock, this then redundant cache flushing
can be a performance issue.

> +}
> +
> +static inline void p2m_clean_pte(pte_t *p, bool clean_pte)
> +{
> +    pte_t pte;
> +
> +    memset(&pte, 0, sizeof(pte));

Why memset()? Why not simply give the variable an appropriate initializer?
Or use ...

> +    p2m_write_pte(p, pte, clean_pte);

... a compound literal here, like you do ...

> +}
> +
> +static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t)
> +{
> +    panic("%s: hasn't been implemented yet\n", __func__);
> +
> +    return (pte_t) { .pte = 0 };

... here? (Just {} would also do, if I'm not mistaken.)

> +}
> +
> +#define P2M_TABLE_MAP_NONE 0
> +#define P2M_TABLE_MAP_NOMEM 1
> +#define P2M_TABLE_SUPER_PAGE 2
> +#define P2M_TABLE_NORMAL 3
> +
> +/*
> + * Take the currently mapped table, find the corresponding the entry
> + * corresponding to the GFN, and map the next table, if available.

Nit: Double "corresponding".

> + * The previous table will be unmapped if the next level was mapped
> + * (e.g P2M_TABLE_NORMAL returned).
> + *
> + * `alloc_tbl` parameter indicates whether intermediate tables should
> + * be allocated when not present.
> + *
> + * Return values:
> + *  P2M_TABLE_MAP_NONE: a table allocation isn't permitted.
> + *  P2M_TABLE_MAP_NOMEM: allocating a new page failed.
> + *  P2M_TABLE_SUPER_PAGE: next level or leaf mapped normally.
> + *  P2M_TABLE_NORMAL: The next entry points to a superpage.
> + */
> +static int p2m_next_level(struct p2m_domain *p2m, bool alloc_tbl,
> +                          unsigned int level, pte_t **table,
> +                          unsigned int offset)
> +{
> +    panic("%s: hasn't been implemented yet\n", __func__);
> +
> +    return P2M_TABLE_MAP_NONE;
> +}
> +
> +/* Free pte sub-tree behind an entry */
> +static void p2m_free_subtree(struct p2m_domain *p2m,
> +                             pte_t entry, unsigned int level)
> +{
> +    panic("%s: hasn't been implemented yet\n", __func__);
> +}
> +
> +/*
> + * Insert an entry in the p2m. This should be called with a mapping
> + * equal to a page/superpage.
> + */
> +static int p2m_set_entry(struct p2m_domain *p2m,
> +                           gfn_t gfn,
> +                           unsigned long page_order,
> +                           mfn_t mfn,
> +                           p2m_type_t t)
> +{
> +    unsigned int level;
> +    unsigned int target = page_order / PAGETABLE_ORDER;
> +    pte_t *entry, *table, orig_pte;
> +    int rc;
> +    /* A mapping is removed if the MFN is invalid. */
> +    bool removing_mapping = mfn_eq(mfn, INVALID_MFN);

Comment and code don't fit together. Many MFNs are invalid (any for which
mfn_valid() returns false), yet you only check for INVALID_MFN here.

> +    DECLARE_OFFSETS(offsets, gfn_to_gaddr(gfn));
> +
> +    ASSERT(p2m_is_write_locked(p2m));
> +
> +    /*
> +     * Check if the level target is valid: we only support
> +     * 4K - 2M - 1G mapping.
> +     */
> +    ASSERT((target <= 2) && !(page_order % PAGETABLE_ORDER));

If you think you need to check this, don't you also want to check that
GFN and MFN (the latter if it isn't INVALID_MFN) fit the requested order?

> +    table = p2m_get_root_pointer(p2m, gfn);
> +    if ( !table )
> +        return -EINVAL;
> +
> +    for ( level = P2M_ROOT_LEVEL; level > target; level-- )
> +    {
> +        /*
> +         * Don't try to allocate intermediate page table if the mapping
> +         * is about to be removed.
> +         */
> +        rc = p2m_next_level(p2m, !removing_mapping,
> +                            level, &table, offsets[level]);
> +        if ( (rc == P2M_TABLE_MAP_NONE) || (rc == P2M_TABLE_MAP_NOMEM) )
> +        {
> +            rc = (rc == P2M_TABLE_MAP_NONE) ? -ENOENT : -ENOMEM;
> +            /*
> +             * We are here because p2m_next_level has failed to map
> +             * the intermediate page table (e.g the table does not exist
> +             * and they p2m tree is read-only). It is a valid case
> +             * when removing a mapping as it may not exist in the
> +             * page table. In this case, just ignore it.
> +             */
> +            rc = removing_mapping ?  0 : rc;

Nit: Stray blank.

> +            goto out;
> +        }
> +
> +        if ( rc != P2M_TABLE_NORMAL )
> +            break;
> +    }
> +
> +    entry = table + offsets[level];
> +
> +    /*
> +     * If we are here with level > target, we must be at a leaf node,
> +     * and we need to break up the superpage.
> +     */
> +    if ( level > target )
> +    {
> +        panic("Shattering isn't implemented\n");
> +    }
> +
> +    /*
> +     * We should always be there with the correct level because all the
> +     * intermediate tables have been installed if necessary.
> +     */
> +    ASSERT(level == target);
> +
> +    orig_pte = *entry;
> +
> +    if ( removing_mapping )
> +        p2m_clean_pte(entry, p2m->clean_pte);
> +    else
> +    {
> +        pte_t pte = p2m_pte_from_mfn(mfn, t);
> +
> +        p2m_write_pte(entry, pte, p2m->clean_pte);
> +
> +        p2m->max_mapped_gfn = gfn_max(p2m->max_mapped_gfn,
> +                                      gfn_add(gfn, BIT(page_order, UL) - 1));
> +        p2m->lowest_mapped_gfn = gfn_min(p2m->lowest_mapped_gfn, gfn);
> +    }
> +
> +    p2m->need_flush = true;
> +
> +    /*
> +     * Currently, the infrastructure required to enable CONFIG_HAS_PASSTHROUGH
> +     * is not ready for RISC-V support.
> +     *
> +     * When CONFIG_HAS_PASSTHROUGH=y, iommu_iotlb_flush() should be done
> +     * here.
> +     */
> +#ifdef CONFIG_HAS_PASSTHROUGH
> +#   error "add code to flush IOMMU TLB"
> +#endif
> +
> +    rc = 0;
> +
> +    /*
> +     * Free the entry only if the original pte was valid and the base
> +     * is different (to avoid freeing when permission is changed).
> +     */
> +    if ( pte_is_valid(orig_pte) &&
> +         !mfn_eq(pte_get_mfn(*entry), pte_get_mfn(orig_pte)) )

I'm puzzled by this 2nd check: A permission change would - I expect - only
occur to a leaf entry. If the new entry is a super-page one and the old
wasn't, don't you still need to free the sub-tree, no matter whether the
MFNs are the same? Plus consider the special case of MFN 0: If you clear
an entry using MFN 0, you will find old and new PTEs' both having the same
MFN.

>  static int p2m_set_range(struct p2m_domain *p2m,
>                           gfn_t sgfn,
>                           unsigned long nr,
>                           mfn_t smfn,
>                           p2m_type_t t)
>  {
> -    return -EOPNOTSUPP;
> +    int rc = 0;
> +    unsigned long left = nr;
> +
> +    /*
> +     * Any reference taken by the P2M mappings (e.g. foreign mapping) will
> +     * be dropped in relinquish_p2m_mapping(). As the P2M will still
> +     * be accessible after, we need to prevent mapping to be added when the
> +     * domain is dying.
> +     */
> +    if ( unlikely(p2m->domain->is_dying) )
> +        return -EACCES;
> +
> +    while ( left )
> +    {
> +        unsigned long order = p2m_mapping_order(sgfn, smfn, left);
> +
> +        rc = p2m_set_entry(p2m, sgfn, order, smfn, t);
> +        if ( rc )
> +            break;
> +
> +        sgfn = gfn_add(sgfn, BIT(order, UL));
> +        if ( !mfn_eq(smfn, INVALID_MFN) )
> +           smfn = mfn_add(smfn, BIT(order, UL));
> +
> +        left -= BIT(order, UL);
> +    }
> +
> +    return !left ? 0 : left == nr ? rc : (nr - left);

The function returning "int", you may be truncating the return value here.
In the worst case indicating success (0) or an error (negative) when some
of the upper bits were set.

Also looks like you could get away with a single conditional operator here:

    return !left || left == nr ? rc : (nr - left);

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 16:05:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 16:05:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070718.1434342 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujKAZ-0006Sn-Ua; Tue, 05 Aug 2025 16:05:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070718.1434342; Tue, 05 Aug 2025 16:05:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujKAZ-0006Sg-RI; Tue, 05 Aug 2025 16:05:43 +0000
Received: by outflank-mailman (input) for mailman id 1070718;
 Tue, 05 Aug 2025 16:05:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=yoJv=2R=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ujKAY-0006SK-QM
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 16:05:42 +0000
Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com
 [2a00:1450:4864:20::331])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 06d65ecf-7216-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 18:05:37 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-458ba079338so185255e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 09:05:37 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459e6214640sm2883005e9.1.2025.08.05.09.05.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Aug 2025 09: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>
X-Inumbo-ID: 06d65ecf-7216-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754409937; x=1755014737; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=iomsWgcklMta5jk+zcDV2STtNifIaXuiNXNCW/qes5g=;
        b=mrlsGZms64gAGqRiMXgmxr71pFK2RYoJJDNb9GiPWCAo8DEIU+F2VHLqaIzntDtgPh
         JTrdH8AnA0/+Pl0+PzSNVRN8xMb9i/fAlprvDhsBZzWehEB7zC7M6lijrVMDUuyUJonb
         u2ZClKVSU5a7BCH3kWIxATKm2+Zr5S6sRgO0Q=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754409937; x=1755014737;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=iomsWgcklMta5jk+zcDV2STtNifIaXuiNXNCW/qes5g=;
        b=ghTE4NyiTtr3q+56tEmM1moD6poHizCvzdt1jDiG8deGugz12rAB/FLDtebFpq5yUM
         Gd4f39fLAj0LRdiKmpkGPEjaeoCTk0yZbJPFTMW/3owL6qSdpKBHEdDto8goo+Hr5vm2
         d4yv4i+iQ3agUGOLD1yBjAoTPSmujifXZun0dc4+qaqKgLuEOTXP4Z2F89NM57RfsQdc
         EAyheoMXX32I4TQ5Rt2aC96XTFYPNXuML7i0tKEtGvL3Emz9HNY5tCwT4lwhpjsQe9Td
         pfdRfoVMAvzkC8i1kiJvbWnhSvQjf3InRSMInLgS1zzmCxsXTOJpBCZXwaYGNR+4OdxK
         PidA==
X-Forwarded-Encrypted: i=1; AJvYcCVCTkCBNNkryyZM53M1c1FjVjAnkfPRuhxGCDea6UhFsF7D/8jjXf5/jBQUzzg9B2DhUh50H/mSfRI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzD3xB0ErDnskF1gIlEiQHAEi6/8R2GFgZ4T8psLei3M23jc/Dy
	r5op5PTl/IVbIDExqOMGc7G8IKhJuzGfD4HiSAkoIliq+Vxyf3hx1qFSXae81hefJCQ=
X-Gm-Gg: ASbGncuRrW+n7TqRDvD7JMR0st0HcBzdLZTdkEk6BPhH1nU1DTFEqPG0nUNBwISaZJD
	ZwZChIbLUYrRFjEqFMgMNARUrfaZJEb5olDVRZzvEJc1xb3qThB/rkSFCBPoKMNas4kEJQMpdCQ
	yXBaEZBtUTNkuA5YleqF8O80sRF//C9XIY/h1mcRlte/SAdp/8K7dDaSQ3tyop/lcohJxpznF8u
	BgZzepS6JlGFQPxTFrQQ0T7HKrreOfgvtmyLoPD2ZeDpsZw6KQGcgOv/HZVv9hg2z0QB35ttDkw
	8BcOjmBYQbL498O6Nr+9ZQ9XFMdS9vgQ+8/8om+T6hurPev6QtONsCXqZw+N5ZFtyaqe05D0gWJ
	jo/xS2cZoCjtfw50M7OvRoCj4hQMnaaG1msscDeiv+ky33G2K+HDePt5VpjawaNsxzxmT
X-Google-Smtp-Source: AGHT+IFBmq60J+l+DOXX1mTr+io9rzRXeiwmIR2j0vf1G7sviA2M6Z0id2EYvSuuhOYoOyN/rkK19w==
X-Received: by 2002:a05:600c:5009:b0:455:f7d5:1224 with SMTP id 5b1f17b1804b1-459e0cb8c2fmr37611625e9.9.1754409937340;
        Tue, 05 Aug 2025 09:05:37 -0700 (PDT)
Message-ID: <641a944b-ed71-49f3-aa3e-e92f4ee06508@citrix.com>
Date: Tue, 5 Aug 2025 17:05:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/hpet: do local APIC EOI after interrupt processing
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>
References: <20250805160326.78837-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: <20250805160326.78837-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05/08/2025 5:03 pm, Roger Pau Monne wrote:
> The current logic in the HPET interrupt ->ack() hook will perform a local
> APIC EOI ahead of enabling interrupts, possibly leading to recursion in the
> interrupt handler.
>
> Fix this by doing the local APIC EOI strictly after the window with
> interrupt enabled, as that prevents the recursion, and would only allow for
> interrupts with higher priority to be serviced.
>
> Use the generic ack_nonmaskable_msi_irq() and end_nonmaskable_irq()
> functions, removing the need for hpet_msi_ack().
>
> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Fixes: 3ba523ff957c ('CPUIDLE: enable MSI capable HPET for timer broadcast')
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

Good riddance to the mess in our patchqueue cased by this.


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 16:30:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 16:30:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070736.1434352 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujKYa-0002Ea-Ru; Tue, 05 Aug 2025 16:30:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070736.1434352; Tue, 05 Aug 2025 16:30: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 1ujKYa-0002ET-Oz; Tue, 05 Aug 2025 16:30:32 +0000
Received: by outflank-mailman (input) for mailman id 1070736;
 Tue, 05 Aug 2025 16:30:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=yoJv=2R=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ujKYZ-0002EN-3Y
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 16:30:31 +0000
Received: from mail-wr1-x442.google.com (mail-wr1-x442.google.com
 [2a00:1450:4864:20::442])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7fa03f09-7219-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 18:30:29 +0200 (CEST)
Received: by mail-wr1-x442.google.com with SMTP id
 ffacd0b85a97d-3b788feab29so3282168f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 09:30:29 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459e5862fd9sm11846605e9.16.2025.08.05.09.30.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Aug 2025 09:30: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>
X-Inumbo-ID: 7fa03f09-7219-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754411428; x=1755016228; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=PM1NioD3AaSZK7dKZ8xpkrIjCA6kGXg8Oj72JfhVMg8=;
        b=J7fgH4jAj/l44WsixYoMiRgDBbPGEclt023Vie7k9Wt1rS9VlEHHDC94pFv+C3KzDB
         ZjoEDm2ZG/1MnyjvV71INLuO2dHWT/DemNsWKO5t/IG7kmR0vHTvcflLlxTYleRzmRjU
         hsiuQx3txvPNJo3PSqN2sN7R2d7dk+BQvIHd8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754411428; x=1755016228;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=PM1NioD3AaSZK7dKZ8xpkrIjCA6kGXg8Oj72JfhVMg8=;
        b=MSYvREJ0ku4E5P5NDPf4+vofhVQrUPJ91dDni/XY/zoKIPrqwAltqlEKnKYYUce64y
         dyX9XEnTQAqA8KDPxADX6H2b/+3c79WF3p0xNM/vrg7Nt+yGjiIem4TgRjAwaDfTInJ8
         qFPcX9/r4l0wQ5+eTJmsJIo04ic5lDNKSNqC3Gw58qt9Kwbs6ccrCAXrf0NU78PHJwDw
         4tvCboRqxUiMqehUggP86yyqG1cDRMHOT1AyShEszIelEGHFYtpjG3hWJPliyBIyscDa
         bi6V/EOglTUBNBqOL1YsDuF+0iuiKmq54akoG/HwCekBR6S8gJv0iIQvS4vdudT83+v1
         kz0w==
X-Forwarded-Encrypted: i=1; AJvYcCVPuQk7QEtk9cLJvkra+eYjF23EdCrzLFXlZZWSe2PfXnsnQbA+Wd2mn0Vm1mB3PvbgN/ijQNpA1l0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwRBE40nvcPvcgaKd/gHJdE5xYkwSl4kEYseF3R9rC7XtxKJdvn
	z8V0HzMB9blD1x97l79/FQieC0BIOOdmeDuyLF1RqvG86EeqM8rbaZWue4VqSS9SWGo=
X-Gm-Gg: ASbGncuUhmI/u/+TTBcyJHR4g5yYabQe2ay0us6fyobvexkkSDF37um4Tp6viESr1YY
	L+1WPLXLcZU/KxKeH0Bw/rJmkKVc2K1lTXM7MeDRZ6o6cV1FqD5FSDoSScERo1SPQUqPk/NNXRP
	a1JJBXVkq9FyLL9zh0WhhYehc+7XqP7bJxfDdDSnZv8ZXPuW0yAJkZpu8rzzEYPQl9ZAJWG8XLt
	ucRafm0IxTaBwIpmRxyRgF/QbUdtC5F7ZopqTxieWWMLsm+QFYiVxdYpeN5R+c2QpAys4o1da/X
	ECaJ7/KQqv0Q0Dl4WHDvW1JStMDy/EMMO3K6wvtzA6hFFy1nwhvZyLULOCzyuDkMcxKJGUOYews
	tTYbS0s0mPLt0p1aHbJ9OelT6eVlTpeed2eTpEs1d/KgJlQLAg2+I8tS4vzKSusMC328K
X-Google-Smtp-Source: AGHT+IFOl7yntiwacf0GzeSdiH5y/z8AxyA43gAvCJKEKtuARSmJlN9DqJXdRs6vE9d+qmllG56RCA==
X-Received: by 2002:a05:6000:2a11:b0:3b8:eb7d:910c with SMTP id ffacd0b85a97d-3b8eb7d9159mr2679147f8f.43.1754411428433;
        Tue, 05 Aug 2025 09:30:28 -0700 (PDT)
Message-ID: <eec4c77b-c2fa-4554-9016-094e0daa73e9@citrix.com>
Date: Tue, 5 Aug 2025 17:30:27 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] systemd: Add hooks to stop/start xen-watchdog on
 suspend/resume
To: Mykola Kvach <xakep.amatop@gmail.com>, xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
 Anthony PERARD <anthony.perard@vates.tech>
References: <b44966513abc729f44795c0d5012e1c5fd106477.1752783296.git.mykola_kvach@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: <b44966513abc729f44795c0d5012e1c5fd106477.1752783296.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 17/07/2025 9:16 pm, Mykola Kvach wrote:
>  config/Tools.mk.in                            |  1 +
>  m4/systemd.m4                                 | 14 ++++++++
>  tools/hotplug/Linux/systemd/Makefile          |  8 ++++-
>  .../Linux/systemd/xen-watchdog-sleep.sh       | 34 +++++++++++++++++++

This has been committed, but it drops the file:

Â  /usr/lib/systemd/system-sleep/xen-watchdog-sleep.sh

into a directory which more normally contains:

$ file /usr/lib/systemd/system-sleep/*
/usr/lib/systemd/system-sleep/hdparm:Â Â Â Â Â Â Â Â Â Â Â Â Â  POSIX shell script, ASCII text executable
/usr/lib/systemd/system-sleep/nvidia:Â Â Â Â Â Â Â Â Â Â Â Â Â  POSIX shell script, ASCII text executable
/usr/lib/systemd/system-sleep/sysstat.sleep:Â Â Â Â Â Â  POSIX shell script, ASCII text executable
/usr/lib/systemd/system-sleep/tlp:Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  POSIX shell script, ASCII text executable
/usr/lib/systemd/system-sleep/unattended-upgrades: POSIX shell script, ASCII text executable


I'd suggest renaming it to xen-watchdog (or perhaps xen-watchdog.sleep).

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 16:32:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 16:32:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070744.1434362 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujKaA-0002hk-AL; Tue, 05 Aug 2025 16:32:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070744.1434362; Tue, 05 Aug 2025 16: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 1ujKaA-0002hd-7M; Tue, 05 Aug 2025 16:32:10 +0000
Received: by outflank-mailman (input) for mailman id 1070744;
 Tue, 05 Aug 2025 16:32:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FQWd=2R=cloud.com=ross.lagerwall@srs-se1.protection.inumbo.net>)
 id 1ujKa9-0002Yg-7B
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 16:32:09 +0000
Received: from mail-ej1-x62e.google.com (mail-ej1-x62e.google.com
 [2a00:1450:4864:20::62e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id baf8097d-7219-11f0-a321-13f23c93f187;
 Tue, 05 Aug 2025 18:32:08 +0200 (CEST)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-af949bdf36cso600478566b.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 09:32:08 -0700 (PDT)
Received: from rossla-pc.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af928c84154sm842980766b.84.2025.08.05.09.32.07
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Aug 2025 09: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>
X-Inumbo-ID: baf8097d-7219-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754411528; x=1755016328; 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=Cw+fp9ijqB07ybQ00T6Z+NAfGs8NSWdqqpiXyp8ErM4=;
        b=bnB4+7tMaTamOulKoclyX1slvn/HLp81j+zr6Fg0ZoooRIwTv8cjG8Fsf6lSCkgtot
         Nc2l739Umaq2bBRT2pEILad+wg0+5JUAF0hQXIU4vdLqubQe8tFLObwUQ/QQYPhHkPtG
         ho/HYnT2BG9lo77j7sLBA3SW69pzNEkkGUsuQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754411528; x=1755016328;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=Cw+fp9ijqB07ybQ00T6Z+NAfGs8NSWdqqpiXyp8ErM4=;
        b=G95/kkBRiqn1uO3eUy6x3Wq6jKj0ztM9IhNNMO3Q8EeqWX6DSvlIe5CRUmd2sNIv1o
         fm2A34WzsQO3lHAJnuEs0Yt2BUHamKo81DwYvsix6fGM+137iXVjRoKvV6TXaqYjIADx
         ALP9LTMX8UIfhgBcmv2HkemqD9NuxBoMNx/BCKtOLXvaF8VX8W5GynlTsRvD7txpdy7I
         /DjCnqANyAYbmpdSHr0jjXwWDa30A3e7vdzxTw3/Csii7hs0bueNRz9TnJjZMxtCiuLw
         SHGmtrie0dscQmggdS0jkrEx7LC2wzQ11gMYz9aOKGCzEYd2VoFjejmixPPP3nrBa6p1
         GQcQ==
X-Forwarded-Encrypted: i=1; AJvYcCX5OMkd+H/UH/Di4RrUvooqazqaBD4nsgs5kvs/4zBsEsYQ04jyX8LgHRrZFYfyRxZnG0emjr7tIH4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxwFgJOMbtBFD1O94J5xLODeyCNijShm7K+VnYKp75D3CP68PN/
	eELdQwYtOa8kZvQqW7mkdi2j06fNn776srFGeiXETu82CG6pnMSRXNdGLi6Z0Rurd07z4/ZUDdn
	fXDE=
X-Gm-Gg: ASbGnctRXiWz7Rk5jdOZSBB8SapbOh30ggaWG903nTwRCN817Ko0v6Lhm5UIG+tUIFW
	b1sa3LAQMHNg0fNOqQO/bx7O/swqdJESdnbb7RXfO4zvFdyKVGZa4fk3XF5W/7BLiRCB7hwJt6C
	BWIBmhRCfBtrilguQkt0DRwAhrt7mk2ssvjW5+FQ2OPXEpwTuwe6GYm2WgUQ9xi8WCbUSy+Wpvl
	8lW/CxPKGSvsY7IfmKF+9KRH9bGfObADPlh6bi251mzVzdOLKGj7ecjkhPZOH6U7X2pYf5G4K2d
	3RXqUkDpRch00pA/OJFv5FKCsLgcNbW4vl/SsDI5nkvzuwO8I07AeuxlsYxPhRTtg7bAv8k1uj6
	qRn8G3crrH85QUEuX2E3xuZ1VP41F147IxvvFbNfpHrDpnA==
X-Google-Smtp-Source: AGHT+IGa4GFLCDHDfvOak3r6zeET09jfJFrVEa7qKNQ3LiINiAKvfcR4Wn8Z3ypOhRbpZd4sqlkjAA==
X-Received: by 2002:a17:907:7fa8:b0:ae0:d798:2ebd with SMTP id a640c23a62f3a-af94017fa9amr1402524766b.35.1754411528077;
        Tue, 05 Aug 2025 09:32:08 -0700 (PDT)
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: Xen-devel <xen-devel@lists.xen.org>,
	xen-devel@lists.xenproject.org
Cc: Ross Lagerwall <ross.lagerwall@citrix.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Jan Beulich <jbeulich@suse.com>
Subject: [PATCH 0/2] Misc EFI boot fixes
Date: Tue,  5 Aug 2025 17:32:02 +0100
Message-ID: <20250805163204.3631483-1-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.50.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Fixes for a couple of annoyances when booting Xen using the native EFI
entry point.

Ross Lagerwall (2):
  efi: Call FreePages only if needed
  efi: Stop using StdErr

 xen/common/efi/boot.c | 16 ++++++----------
 1 file changed, 6 insertions(+), 10 deletions(-)

-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 05 16:32:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 16:32:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070745.1434373 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujKaB-0002vr-HR; Tue, 05 Aug 2025 16:32:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070745.1434373; Tue, 05 Aug 2025 16:32: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 1ujKaB-0002vi-D5; Tue, 05 Aug 2025 16:32:11 +0000
Received: by outflank-mailman (input) for mailman id 1070745;
 Tue, 05 Aug 2025 16:32:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FQWd=2R=cloud.com=ross.lagerwall@srs-se1.protection.inumbo.net>)
 id 1ujKaA-0002gS-KN
 for xen-devel@lists.xen.org; Tue, 05 Aug 2025 16:32:10 +0000
Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com
 [2a00:1450:4864:20::62b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bb473bf1-7219-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 18:32:09 +0200 (CEST)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-af93c3bac8fso638381066b.2
 for <xen-devel@lists.xen.org>; Tue, 05 Aug 2025 09:32:09 -0700 (PDT)
Received: from rossla-pc.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af928c84154sm842980766b.84.2025.08.05.09.32.07
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Aug 2025 09: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>
X-Inumbo-ID: bb473bf1-7219-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754411528; x=1755016328; darn=lists.xen.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=Cw+fp9ijqB07ybQ00T6Z+NAfGs8NSWdqqpiXyp8ErM4=;
        b=jWc64krrPGfNBbHLeiIe0zQ1vzurQmzf3HzVTUzjc6/7j39jL6U/2sgsVhyEyInCrT
         Gz67skHR5FWLLKKKAK68ttbdPKzd9v5OcrzkxBjKzDqopWxzMyfXb0VAP5etY51XFCO6
         lNOfsAJdSiOC1bOBqSGW+EHwhqEIgUl3n6kik=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754411528; x=1755016328;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=Cw+fp9ijqB07ybQ00T6Z+NAfGs8NSWdqqpiXyp8ErM4=;
        b=KlYpVqs/Gf+RQ+XhL3kGG7Ahz0y2FQLfDuRdqXLWHbiif1DDB5usAZSn4nb8prcWzc
         6ST652g8HvY/PIqOYvHk6DPJ4uWhkExg4ryusjnyP/j/xfljE7ckIpOa+sOH736hUCeD
         kdewYLhW/C88kCUWsnXaYpQ0LmbUYV8Pt/JkpbBg9TohikuIsGiRj7P06w07A4VteXQ7
         y8bWPcjtG6wZnGfffqn+NIg664txGIe5lW+XEKEipKGsG3kj44roKmiVNCqC4RQrN0s7
         dYOjafgaKwNatbb5Pd6loINED9wuaS/z0kzIiVb/n3fN0dQgIpsfaL54ALDAe12K6kOp
         MXkg==
X-Gm-Message-State: AOJu0YyPmxWNj90JnK8Cd5vyQLMdO/7RrKHcIi8RproC/k7fjVzVpAKR
	fkW6thlTe6IJAU+hUQFSrG2rk5kzeS3QljoC/nby1J8b4NGJa0QafQzYRpuXCkgZNFRjTrexzBb
	Uf0U=
X-Gm-Gg: ASbGncty9d0n+3bkEvpxubZGcfdxeMg+y3H4bHdmFz1UeRgAX9T5Gny12BYdI69/R9E
	eac536jLF2DKtqs18Htj/OxuzWaHwZDJy4+Qoz8gOU3KHd2kLlTTsqFlvfbNQWsBb+KLvi6OMYe
	n2avkD1xnTu+f20bJPn8i923t6zdk9sU21DIp6KmY+5dCUpVh6viWgG7zH0G1piJDxW0YsUATxE
	zRJhBiqWgTmj8pNWShIrhbCeArAAyKG/aC+cpM7D6TtAeeWT6sED3YeVPA1aB4H3j8Hs+dKbmmE
	YGcVmb0PvyObPl+7sXhIQHZpOLjyMPwxhDdG+nu+9T0PEVmZfnlWw8K3h50QMIQMerPNdDYBoeE
	KnGpoabyRBRbjBb+yTirD/uWKE1NskeX/hV+QPOdDu3OXFQ==
X-Google-Smtp-Source: AGHT+IGa4GFLCDHDfvOak3r6zeET09jfJFrVEa7qKNQ3LiINiAKvfcR4Wn8Z3ypOhRbpZd4sqlkjAA==
X-Received: by 2002:a17:907:7fa8:b0:ae0:d798:2ebd with SMTP id a640c23a62f3a-af94017fa9amr1402524766b.35.1754411528077;
        Tue, 05 Aug 2025 09:32:08 -0700 (PDT)
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: Xen-devel <xen-devel@lists.xen.org>,
	xen-devel@lists.xenproject.org
Cc: Ross Lagerwall <ross.lagerwall@citrix.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Jan Beulich <jbeulich@suse.com>
Subject: [PATCH 0/2] Misc EFI boot fixes
Date: Tue,  5 Aug 2025 17:32:02 +0100
Message-ID: <20250805163204.3631483-1-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.50.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Fixes for a couple of annoyances when booting Xen using the native EFI
entry point.

Ross Lagerwall (2):
  efi: Call FreePages only if needed
  efi: Stop using StdErr

 xen/common/efi/boot.c | 16 ++++++----------
 1 file changed, 6 insertions(+), 10 deletions(-)

-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 05 16:32:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 16:32:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070746.1434381 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujKaD-0003B3-NG; Tue, 05 Aug 2025 16:32:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070746.1434381; Tue, 05 Aug 2025 16:32: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 1ujKaD-0003Au-Kc; Tue, 05 Aug 2025 16:32:13 +0000
Received: by outflank-mailman (input) for mailman id 1070746;
 Tue, 05 Aug 2025 16:32:11 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FQWd=2R=cloud.com=ross.lagerwall@srs-se1.protection.inumbo.net>)
 id 1ujKaB-0002Yg-SJ
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 16:32:11 +0000
Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com
 [2a00:1450:4864:20::633])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bca38bbb-7219-11f0-a321-13f23c93f187;
 Tue, 05 Aug 2025 18:32:11 +0200 (CEST)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-af91a6b7a06so1026243466b.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 09:32:11 -0700 (PDT)
Received: from rossla-pc.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af928c84154sm842980766b.84.2025.08.05.09.32.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Aug 2025 09:32: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>
X-Inumbo-ID: bca38bbb-7219-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754411531; x=1755016331; 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=HyChThRw6GVKg1romDTn5fzN51ukPoZgESaAn7xK/ic=;
        b=aNVpRU6C4xg2zlyZdIPP2L46YxQHMoGZUh19fkSorhraw2jWccc/q1mSbSDtEPazU0
         4F7k7t4374HowTm8y7/3wHZGh5xQ5iaZv+GCxDOvGrFedQR9i33sqCbbVU1alXtB1fnN
         1Afkw21KgYEI/oI/BZRjGmvhO49OW+MEoKbfY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754411531; x=1755016331;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=HyChThRw6GVKg1romDTn5fzN51ukPoZgESaAn7xK/ic=;
        b=dLDkT7vTrF19oMiA5tcgpJYxO0LqnW7d2ChOnycMGrMnIBGhSVVZLEuIg3m994Y11I
         a2YeP5cGQt/xGeke3LuAtSRuLsTX79Phd69QA4UPhJwPTRqUwSYFBf+xNn+XwjtZRJ++
         i6SU5HgiaoH9c1dJmF06skXM7YwhSf5D2bpRihH55V0j/if6k95IcSkpDuE6d6DfRRTe
         OXkFFfmzQPAIVtKtH0EmNhoxZCkcO8uXzAYBw+idiXf/P7c9jRWwQDh3NSPVpxQjZsRu
         ltrzk3xcQcxX/exUeM4nd358JVZJ4FGtwX4Huats9xueVGppgzEfnAbDlMV+xiwCfCf6
         PNAQ==
X-Forwarded-Encrypted: i=1; AJvYcCUX/pb1XDciA1x4Ikly3yikgvF5pgNGwJ+O2TCXdSwZ767/hU8r6KP6IQ+yTEn2MkPtFUlm1ff3Grw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzkzKHrjLhQmkRFGWx3rjP7QoUWuLJikl46enes8Q6WnERGR1TW
	L/sXIT0Q1dr+dfYugHh53Ur5Rimjtg0UTr5QjkWkRH99+BIMxXC9JQ+8pVNyJfBc8eWhrnilhmQ
	tWMA=
X-Gm-Gg: ASbGncs1ZxaaOFfyK6WZITiNddlmSDJaJty71/h33HJtHAwUSvjfrUYtza8RXT+3eMN
	KRKBEKA8WDkXUtkhSP55ZdwKadW4PS3GKbjjavIZc6GfJdJiK6UQOSCk92N2y9+oiv7JBPp7lD4
	QLLgUw5EQqBIpwvsqUGoMoJH5ogUxT+JKzteqNncZBi14NXqDa17d1/Bv/H3vezjm1i1chWrjTy
	dE+7eMdj99wo13lqdqdV4YDCKGn8meBibvLmvnW7YxeIA5L7WhM74R2DqsgF1glaOx4XsSQFbrE
	P4PCI7pBnJ134ZaSWInO5d+4o/ef8HVSeHnM/u693hMZ6Zj6GioEUf5nzZatvDDsJzVICnDZMQ8
	GZxSD4ouPNr7Vx+OLXDOL0EnyBt6a6U4Ptyz2xxR2G6av8w==
X-Google-Smtp-Source: AGHT+IHfJbaJv57Bho8r5sfyd+qAP9P2dr44hKcu2gIKy6YgKG5c4omoNyMg3Ahg2Rn7mVRnYL6UEg==
X-Received: by 2002:a17:907:2d2c:b0:add:ede0:b9d4 with SMTP id a640c23a62f3a-af93fd76ffamr1568967066b.0.1754411530898;
        Tue, 05 Aug 2025 09:32:10 -0700 (PDT)
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: Xen-devel <xen-devel@lists.xen.org>,
	xen-devel@lists.xenproject.org
Cc: Ross Lagerwall <ross.lagerwall@citrix.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Jan Beulich <jbeulich@suse.com>
Subject: [PATCH 1/2] efi: Call FreePages only if needed
Date: Tue,  5 Aug 2025 17:32:03 +0100
Message-ID: <20250805163204.3631483-2-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250805163204.3631483-1-ross.lagerwall@citrix.com>
References: <20250805163204.3631483-1-ross.lagerwall@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

If the config file is builtin, cfg.addr will be zero but Xen
unconditionally calls FreePages() on the address.

Xen may also call FreePages() with a zero address if blexit() is called
after this point since cfg.need_to_free is not set to false.

The UEFI specification does not say whether calling FreePages() with a
zero address is allowed so let's be cautious and use cfg.need_to_free
properly.

Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
---
 xen/common/efi/boot.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index 778a39cc48e6..50ff1d1bd225 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -1534,8 +1534,11 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE ImageHandle,
 
         efi_arch_cfg_file_late(loaded_image, dir_handle, section.s);
 
-        efi_bs->FreePages(cfg.addr, PFN_UP(cfg.size));
-        cfg.addr = 0;
+        if ( cfg.need_to_free )
+        {
+            efi_bs->FreePages(cfg.addr, PFN_UP(cfg.size));
+            cfg.need_to_free = false;
+        }
 
         if ( dir_handle )
             dir_handle->Close(dir_handle);
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 05 16:32:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 16:32:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070747.1434393 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujKaF-0003Q7-29; Tue, 05 Aug 2025 16:32:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070747.1434393; Tue, 05 Aug 2025 16:32: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 1ujKaE-0003Q0-Rt; Tue, 05 Aug 2025 16:32:14 +0000
Received: by outflank-mailman (input) for mailman id 1070747;
 Tue, 05 Aug 2025 16:32:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FQWd=2R=cloud.com=ross.lagerwall@srs-se1.protection.inumbo.net>)
 id 1ujKaD-0002gS-GK
 for xen-devel@lists.xen.org; Tue, 05 Aug 2025 16:32:13 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bcf8c4fa-7219-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 18:32:12 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-af967835d0aso402887866b.0
 for <xen-devel@lists.xen.org>; Tue, 05 Aug 2025 09:32:12 -0700 (PDT)
Received: from rossla-pc.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af928c84154sm842980766b.84.2025.08.05.09.32.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Aug 2025 09:32: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>
X-Inumbo-ID: bcf8c4fa-7219-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754411531; x=1755016331; darn=lists.xen.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=HyChThRw6GVKg1romDTn5fzN51ukPoZgESaAn7xK/ic=;
        b=RjULSuQGaRH2h2sfIspmByy/vWktiO82zs8pqNmjM14Iy/56Vun4ihCiMzzcwGhEZP
         shDlH6SH1uoUFQ8TuHES6hZLIHQGiM1cGnYxYFB2aQUSz9HVJE2hW36xoXyxJkmyle6E
         +g/7os73Lmsfs8aK0vzDs+F3pjUr+VuEsj+Qw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754411531; x=1755016331;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=HyChThRw6GVKg1romDTn5fzN51ukPoZgESaAn7xK/ic=;
        b=j+i+kJo+7AwLwK92Wcy0AYQARJmBmEeoAq/bNDNDYpUxfIOhgmAQvBbea44AFxiZM0
         JJNt0Gga6lt7sQFyV0ry9nLQNei2W3Vvll2p1oBLBydWP8rB9vJvsP2wA9lM/E1IvyOm
         F1KmGgocyoRbN+32FBrsCiLc6wBNH1oxEc83urKl4FjYRZaWMfDhtdeSuJ5syWlDKgo1
         85jEGHiLFhf22OKJuA63InAp7kaLKMC4ReK88I8VIueJvi6oIGcIy09MdqTSaDoZ3UP4
         Edmr9cBnXEBtujlK4PCogOOqMij39/wM7P1ULFRnV9NXso+prQRDtD1xs5usrV6BX1dD
         6j5g==
X-Gm-Message-State: AOJu0YwLirlRqq4SF734kR4hkU1yGcreq2PUunE00a3u+zIHMv6Zn497
	bfDpEUHAybnI3iD7VMsa1nKEIgtQ6vXv3M2dFIdY4yK05YRMVt7M2cCVTpjpjK6zBnIcyUAt3R2
	efS8=
X-Gm-Gg: ASbGncvIV0J8S1QdT8rf7BsAOj8PPKv/8lp19zQuqlLEg1nUZgaWfZnuLaqjECj7TBT
	1vwIGiYk0jgj5R79ycv0aYBJdZyaZnCkQwP5xsQQj8TvQeCMIdRRIHBh94/3rTN+SlEGykCkZtf
	uzi1QmkFIfeXVRbpBKM2AQXH98BHLHg0+FvTXbFa2QnNZqOK4vGzlAVhscDdV7dNcjvHj8gpT3z
	tlPy8d/JRhJeneFD1ew6kSbE5aOiuJQEMuaZxu7IzPoWw+kjqBLgR5EhHeBmg0wvcaNP7Joer2g
	T6uKp4PD0t3X9SzctLHvpfEo3w0R5xuy41Ljg1Ty84rd74o7EkA+iLMCJQkXF7UcI1+r4N5Gesh
	c0v9RoHEoTTaA28M3cO/Jwda2inq6MTyTXVoKQXEiqsfr3g==
X-Google-Smtp-Source: AGHT+IHfJbaJv57Bho8r5sfyd+qAP9P2dr44hKcu2gIKy6YgKG5c4omoNyMg3Ahg2Rn7mVRnYL6UEg==
X-Received: by 2002:a17:907:2d2c:b0:add:ede0:b9d4 with SMTP id a640c23a62f3a-af93fd76ffamr1568967066b.0.1754411530898;
        Tue, 05 Aug 2025 09:32:10 -0700 (PDT)
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: Xen-devel <xen-devel@lists.xen.org>,
	xen-devel@lists.xenproject.org
Cc: Ross Lagerwall <ross.lagerwall@citrix.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Jan Beulich <jbeulich@suse.com>
Subject: [PATCH 1/2] efi: Call FreePages only if needed
Date: Tue,  5 Aug 2025 17:32:03 +0100
Message-ID: <20250805163204.3631483-2-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250805163204.3631483-1-ross.lagerwall@citrix.com>
References: <20250805163204.3631483-1-ross.lagerwall@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

If the config file is builtin, cfg.addr will be zero but Xen
unconditionally calls FreePages() on the address.

Xen may also call FreePages() with a zero address if blexit() is called
after this point since cfg.need_to_free is not set to false.

The UEFI specification does not say whether calling FreePages() with a
zero address is allowed so let's be cautious and use cfg.need_to_free
properly.

Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
---
 xen/common/efi/boot.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index 778a39cc48e6..50ff1d1bd225 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -1534,8 +1534,11 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE ImageHandle,
 
         efi_arch_cfg_file_late(loaded_image, dir_handle, section.s);
 
-        efi_bs->FreePages(cfg.addr, PFN_UP(cfg.size));
-        cfg.addr = 0;
+        if ( cfg.need_to_free )
+        {
+            efi_bs->FreePages(cfg.addr, PFN_UP(cfg.size));
+            cfg.need_to_free = false;
+        }
 
         if ( dir_handle )
             dir_handle->Close(dir_handle);
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 05 16:32:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 16:32:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070748.1434402 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujKaG-0003gd-6d; Tue, 05 Aug 2025 16:32:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070748.1434402; Tue, 05 Aug 2025 16:32: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 1ujKaG-0003gP-3C; Tue, 05 Aug 2025 16:32:16 +0000
Received: by outflank-mailman (input) for mailman id 1070748;
 Tue, 05 Aug 2025 16:32:14 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FQWd=2R=cloud.com=ross.lagerwall@srs-se1.protection.inumbo.net>)
 id 1ujKaE-0002Yg-4b
 for xen-devel@lists.xen.org; Tue, 05 Aug 2025 16:32:14 +0000
Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com
 [2a00:1450:4864:20::630])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bdf1b194-7219-11f0-a321-13f23c93f187;
 Tue, 05 Aug 2025 18:32:13 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-af922ab4849so851607166b.3
 for <xen-devel@lists.xen.org>; Tue, 05 Aug 2025 09:32:13 -0700 (PDT)
Received: from rossla-pc.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af928c84154sm842980766b.84.2025.08.05.09.32.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Aug 2025 09:32: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>
X-Inumbo-ID: bdf1b194-7219-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754411533; x=1755016333; darn=lists.xen.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=L1QqT35WPMNEdKVxqmbRQUpDF5jhPdPInhgcu4VmEpk=;
        b=kMtTWE3TMx3uIJAUZSpBpug1sxlsYJZN0NYrZIoUIIeclFVqzTVD3n+n+LEoa/pzdy
         3aMbAMsX0T9M0iLo30S79bY3OBz39FFrdGDI0eYF3NkBxYoVuAQEBrnL06VMXFIkQiuE
         G1WG/ZmQD29jHiraDdZA2ZbeXQvHTBBLB3WU8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754411533; x=1755016333;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=L1QqT35WPMNEdKVxqmbRQUpDF5jhPdPInhgcu4VmEpk=;
        b=QKONrDVfD8vVsCqXLJChkUTdgPu6DWZ2HditHpZ6pqUNTtf5IPZjLNSkpqMsE0HyCU
         ZUQur7NFmBLdvm7BHvpFUAku9AbTyOdav/9eEQMi/YD7+MAPem7xBX39zJMYHrafF27/
         gTl8sVQZSDv7b6tVp9+S8vG8TdW1QahSYaSahV+eDNpf7EDat6KZ/+feeJJK12m4anC4
         bpwZMKOKdvPHjeB6nLJDWXMX0vHoWH13mRxyijAKbUt7362JzC1oXKpq98ZQOF4DTjGG
         eGWB8hkkMTnjRlRKUecX1UjHhJHCq9yCVrxa8ml+vSP9zRrWaErdD89Jy6tLnl+e9ybf
         5zqg==
X-Gm-Message-State: AOJu0YwHXDQGG8rKCdMK/kYvQixnUvPOmsb+uFoqOhznoZjI4F+zJxlU
	2leMbS16CegDJqGMOSjvsGLC9vG8cAd/DLUrQZdoyM/6qb7JBMxxMPZEsyqwaQPs06BvwBXSFIL
	yitQ=
X-Gm-Gg: ASbGnctgyfEKiOc4EfnU84m3qZJwP26gPOghuTX5zyvFHLKDI3uxgQADNHlzZ9XBkpl
	mxdxRAB1fQ8BAjoYFwEwLdhAWmhlVCTFDAh9Krp5eCp2/beO6Uu0NHQCyssmbAXU+Ltqtw1ClTS
	5y/DPDR25l38AxB7Z2G5rCV40oSpxZxYqfhdyiCyIBXfoBfDwEV8a7WMt9OYb5FMpRDbpiZwHSv
	gj1k+TW2NLLOVswgGcbOzSnJE3HHP5V9/JGcisixFVVgC4f416vd4YMNdAt7mo+zo5A0/R3c99O
	Uq0XO5EvQ1B8exXCJHh26zxzCP8AU0kAog/rJdjfUL9ASw3rzHCAOhy2oZI0/9e/n0i8PDSE3no
	6SOi9OdLiMdNL1aERfCNTJqhPMT1ssuGIab+9K3hH2UldNw==
X-Google-Smtp-Source: AGHT+IHMLaIm8aahuPreV60FOOmrmpQocxqFSXDfnpp2XbU/+KZwakIBweYK+7LfGmsvOPVCS/FpIw==
X-Received: by 2002:a17:907:1b1d:b0:af9:3116:e110 with SMTP id a640c23a62f3a-af940277761mr1288991366b.58.1754411532702;
        Tue, 05 Aug 2025 09:32:12 -0700 (PDT)
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: Xen-devel <xen-devel@lists.xen.org>,
	xen-devel@lists.xenproject.org
Cc: Ross Lagerwall <ross.lagerwall@citrix.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Jan Beulich <jbeulich@suse.com>
Subject: [PATCH 2/2] efi: Stop using StdErr
Date: Tue,  5 Aug 2025 17:32:04 +0100
Message-ID: <20250805163204.3631483-3-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250805163204.3631483-1-ross.lagerwall@citrix.com>
References: <20250805163204.3631483-1-ross.lagerwall@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Xen's use of StdErr is inconsistent. Some boot errors are reported using
PrintErr() which uses StdErr and some are reported using blexit() which
uses StdOut.

On my test system using OVMF, StdErr is not displayed on the emulated
screen. Looking at other EFI applications, StdErr is just used for debug
messages if at all.

Therefore, switch all boot output to use StdOut.

Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
---
 xen/common/efi/boot.c | 9 +--------
 1 file changed, 1 insertion(+), 8 deletions(-)

diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index 50ff1d1bd225..6ba486943466 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -153,7 +153,6 @@ static UINT32 __initdata efi_bs_revision;
 static EFI_HANDLE __initdata efi_ih;
 
 static SIMPLE_TEXT_OUTPUT_INTERFACE *__initdata StdOut;
-static SIMPLE_TEXT_OUTPUT_INTERFACE *__initdata StdErr;
 
 static UINT32 __initdata mdesc_ver;
 static bool __initdata map_bs;
@@ -168,11 +167,7 @@ static void __init PrintStr(const CHAR16 *s)
 {
     StdOut->OutputString(StdOut, (CHAR16 *)s );
 }
-
-static void __init PrintErr(const CHAR16 *s)
-{
-    StdErr->OutputString(StdErr, (CHAR16 *)s );
-}
+#define PrintErr PrintStr
 
 static CHAR16 *__init FormatDec(UINT64 Val, CHAR16 *Buffer)
 {
@@ -287,7 +282,6 @@ static bool __init match_guid(const EFI_GUID *guid1, const EFI_GUID *guid2)
 /* generic routine for printing error messages */
 static void __init noreturn PrintErrMesg(const CHAR16 *mesg, EFI_STATUS ErrCode)
 {
-    StdOut = StdErr;
     PrintErr(mesg);
     PrintErr(L": ");
 
@@ -914,7 +908,6 @@ static void __init efi_init(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTabl
     efi_fw_revision = SystemTable->FirmwareRevision;
 
     StdOut = SystemTable->ConOut;
-    StdErr = SystemTable->StdErr ?: StdOut;
 }
 
 static void __init efi_console_set_mode(void)
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 05 16:32:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 16:32:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070749.1434408 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujKaG-0003kf-In; Tue, 05 Aug 2025 16:32:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070749.1434408; Tue, 05 Aug 2025 16:32: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 1ujKaG-0003kP-Cz; Tue, 05 Aug 2025 16:32:16 +0000
Received: by outflank-mailman (input) for mailman id 1070749;
 Tue, 05 Aug 2025 16:32:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FQWd=2R=cloud.com=ross.lagerwall@srs-se1.protection.inumbo.net>)
 id 1ujKaE-0002gS-Tq
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 16:32:14 +0000
Received: from mail-ej1-x62e.google.com (mail-ej1-x62e.google.com
 [2a00:1450:4864:20::62e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bdcf687c-7219-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 18:32:13 +0200 (CEST)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-af922ab4849so851606366b.3
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 09:32:13 -0700 (PDT)
Received: from rossla-pc.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af928c84154sm842980766b.84.2025.08.05.09.32.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 05 Aug 2025 09:32: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>
X-Inumbo-ID: bdcf687c-7219-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754411533; x=1755016333; 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=L1QqT35WPMNEdKVxqmbRQUpDF5jhPdPInhgcu4VmEpk=;
        b=ej2KbWAbSK+2vCttlK4/f1a8XT7CJo1SCtpu73V9hHKTYBBY4IUvDsHhmYU3MWKsI4
         3Rnxa6IKc700nX3fC1X1L+YARQ60Zs4JMUAiGAylEBbvjUKK11PQjBCXSUGnu844YIU7
         oh9jqfUj1Phi+EFZZ7+zzYapUv9b/Q2H8IvFU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754411533; x=1755016333;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=L1QqT35WPMNEdKVxqmbRQUpDF5jhPdPInhgcu4VmEpk=;
        b=HF910jmppM3HPm7acwyKKfP1i2KqM48lO4j7H7cQ3ryJ977tefllZgnLoz+UGZHHJC
         YZEqG3GTkQh/xugneZDI7z4CaUjJs277xydgGS5xFgaUNo68X9W/OZ772K19vDLqnGia
         5V+XV4AaMgI3MsoKsx5n0zhTsTf181leI9HnJuON6hUnGv38pIf3rkpYf+DxBd6DgTJV
         biowpqjsa1AuYBf1YRzL/CmAytlGXaceIODK4nSK6TzADwpjRKfzqh6E6ZyY6MiWwrP6
         tmSh5Qp+hoS/TLclice0rjyvtOCNbm6RHldc0l3PlIIIM2Ut/Ei3LhN3o4IcyV7mzt0l
         jBIA==
X-Forwarded-Encrypted: i=1; AJvYcCVdrZo2Ugsk4mHUkV9DjmqpefyWRC9HfHUReureO5kQEIjpHqbnSaevvABxFXF2MrxRiBqWYLr0z1Y=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxc7BYIlfIzCbMoo6D5wyFJj8nzzOxpNQdECeFDSbxgQYIm+Zmj
	Z9f3W1js4ioEdK7jqJfDxqQEGvUyuF/3+Q6uifsGqyC/5YEVVt9nbOqTtCcAGYcaBA==
X-Gm-Gg: ASbGncvQEfANBWIjmjp/h6Zci2ZYADwnKxoTs54fkap4dFEx6PFc3zptBYBthx0qaIX
	qTHzIlVePoczLPceoFBWyYPG09Ib7ccdmg+4fHE16hMa/WgrndaFuQJvW9WSq92HlglhjvS4n1A
	bj1qA/GefnpDXtWf/ENxMHSpY7ppBNTMXsN61akJUGh6h9QJR0XnEpzM7wsDC+pJinXPpO7BSJ+
	QmobGvBWx9/jN+xPWNuc2b+TG/vCci/mUeoDZFIpCML38KIgZARnrLgC5TTts1xHM2NDZH7p2ae
	OjNuqHMhV8ElrU7J8axwslin3FtQf1P/+6BjK7+c3XumcU6IjMuqe0pJ9+1WsVrwgxBZ0OliMnf
	TTqWjIRRp+0v31ar7KxokwD3pA+4DGa/np/R8/w7pgP6Sng==
X-Google-Smtp-Source: AGHT+IHMLaIm8aahuPreV60FOOmrmpQocxqFSXDfnpp2XbU/+KZwakIBweYK+7LfGmsvOPVCS/FpIw==
X-Received: by 2002:a17:907:1b1d:b0:af9:3116:e110 with SMTP id a640c23a62f3a-af940277761mr1288991366b.58.1754411532702;
        Tue, 05 Aug 2025 09:32:12 -0700 (PDT)
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: Xen-devel <xen-devel@lists.xen.org>,
	xen-devel@lists.xenproject.org
Cc: Ross Lagerwall <ross.lagerwall@citrix.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Jan Beulich <jbeulich@suse.com>
Subject: [PATCH 2/2] efi: Stop using StdErr
Date: Tue,  5 Aug 2025 17:32:04 +0100
Message-ID: <20250805163204.3631483-3-ross.lagerwall@citrix.com>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250805163204.3631483-1-ross.lagerwall@citrix.com>
References: <20250805163204.3631483-1-ross.lagerwall@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Xen's use of StdErr is inconsistent. Some boot errors are reported using
PrintErr() which uses StdErr and some are reported using blexit() which
uses StdOut.

On my test system using OVMF, StdErr is not displayed on the emulated
screen. Looking at other EFI applications, StdErr is just used for debug
messages if at all.

Therefore, switch all boot output to use StdOut.

Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
---
 xen/common/efi/boot.c | 9 +--------
 1 file changed, 1 insertion(+), 8 deletions(-)

diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index 50ff1d1bd225..6ba486943466 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -153,7 +153,6 @@ static UINT32 __initdata efi_bs_revision;
 static EFI_HANDLE __initdata efi_ih;
 
 static SIMPLE_TEXT_OUTPUT_INTERFACE *__initdata StdOut;
-static SIMPLE_TEXT_OUTPUT_INTERFACE *__initdata StdErr;
 
 static UINT32 __initdata mdesc_ver;
 static bool __initdata map_bs;
@@ -168,11 +167,7 @@ static void __init PrintStr(const CHAR16 *s)
 {
     StdOut->OutputString(StdOut, (CHAR16 *)s );
 }
-
-static void __init PrintErr(const CHAR16 *s)
-{
-    StdErr->OutputString(StdErr, (CHAR16 *)s );
-}
+#define PrintErr PrintStr
 
 static CHAR16 *__init FormatDec(UINT64 Val, CHAR16 *Buffer)
 {
@@ -287,7 +282,6 @@ static bool __init match_guid(const EFI_GUID *guid1, const EFI_GUID *guid2)
 /* generic routine for printing error messages */
 static void __init noreturn PrintErrMesg(const CHAR16 *mesg, EFI_STATUS ErrCode)
 {
-    StdOut = StdErr;
     PrintErr(mesg);
     PrintErr(L": ");
 
@@ -914,7 +908,6 @@ static void __init efi_init(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTabl
     efi_fw_revision = SystemTable->FirmwareRevision;
 
     StdOut = SystemTable->ConOut;
-    StdErr = SystemTable->StdErr ?: StdOut;
 }
 
 static void __init efi_console_set_mode(void)
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 05 16:37:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 16:37:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070765.1434432 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujKfP-0006LV-Io; Tue, 05 Aug 2025 16:37:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070765.1434432; Tue, 05 Aug 2025 16: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 1ujKfP-0006LM-G3; Tue, 05 Aug 2025 16:37:35 +0000
Received: by outflank-mailman (input) for mailman id 1070765;
 Tue, 05 Aug 2025 16:37:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=yoJv=2R=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ujKfN-00067g-TP
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 16:37:33 +0000
Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com
 [2a00:1450:4864:20::32d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7b9a7d7d-721a-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 18:37:31 +0200 (CEST)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-459d7726ee6so17417505e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 09:37:31 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459e58542f3sm10789375e9.10.2025.08.05.09.37.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Aug 2025 09: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>
X-Inumbo-ID: 7b9a7d7d-721a-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754411851; x=1755016651; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=DcTrrKHCxjGpWj0rumg0FDiXmLUWF4il3f7mb5TP3tM=;
        b=ZKDSWYErL7CZ5v19TYP7AC1dgDCI0JuCQOqu9t0PapYlHj0S+xPeFrBBGdyxf9c1r7
         VlUTMMOJL0U1dpKQRwnLcpG84p+CHdOjC5Yi0Mt729ZwlY5GLg6vJycT3oLrQU4bl0h2
         ML4qyUJ3HzF4aC7wLGGjU9SVnpW5floEOR4UA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754411851; x=1755016651;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=DcTrrKHCxjGpWj0rumg0FDiXmLUWF4il3f7mb5TP3tM=;
        b=IaYVDtGClwWsBOij2Ppjx5mgbuz9gXAcrBWcZ2cBVZGHVfGVM8Jjs5zhvdIwfk7EJs
         J3phb9DXGV8nYoBSBdMSRVcRefTtncEz7xlzBmt4+V22IMlgh9IBCEC00pIxsaHG7Udj
         HIJP9Oz4DiL8hmsqJXttwhWJLN9FG4KCf5WDP6R9my0Ju3KkfSoSchtOMDtuc6BdIact
         P1LZaFQk2chNHEQO+6VZ2uiosLt4lwjLEequ9NDm5t9EBnlSo92DriVdPgN3xmKXXe9K
         pK0Nel8hISbZvDFaqmqJ6WevYjnOqJgW3hCfn3DTO6bB6SuVScQFWjCmLLk0mwIacEZq
         wlBQ==
X-Forwarded-Encrypted: i=1; AJvYcCXwTHfbPML3ArH78ao0YGTB+VP6Q+F+3W/QaAo1cTUz0KrmUhQUtnsr5REmiBrgcpovWnqP/wgBNqQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YySLOfWY0dvZXMFVMCHdF1uROS0HhSHCgxItCiP3dqAGGjd4dTX
	gaUeAro4sHtdaqWkSMqhmyIvgzpDBHPDrc2OXvEi4cstP/Et9g8tabcZBmqAs8OUQVk=
X-Gm-Gg: ASbGnctQGJkWueALTK5YpaMg1C7url+8/MjzuAnWDwZesJR8+HXI7tm07LQBvR8FL9p
	9wBgXKWWZwzCzgcrY8dB3EGpwf3zcmr+seiM+m3qyHMNJ6jNzoI0RAz5xALMnv02T8E1oyT+Cmt
	zqaUAqXHTFzfpkNf9SqJ6HhF6JreqARrpaA/IBm8UJjTs3r4eetjuTU1HcIR6fi36HEM7XzeEPB
	kVdq9ZEUfDT8CGEeZMdcmEJ/yWNqrvSbs0Rm4p8RWKDFLPL3560Z/w3O9df7sUkEL6Y8iGPpnuT
	uRJ5Xkp6QvhiBclY93pBve1WwLUMmxPm23VS6TjwomEiWWnZWk9bq3jabaV29nsJZycsRjJcFPm
	snLHt3TDMYcBhzXaVDMN+KKtBcGjfVY/qfq+xurgOHH1WeSuCVe+Og0XkVdW6mUJ7tmyV
X-Google-Smtp-Source: AGHT+IHHjz5bsg0TqLNtqa9cAyBQGg/tEMn9oJQ/u5n9sIdIsm+p/d+DdO22Xpxu19u5Q+Qh9egT0A==
X-Received: by 2002:a05:600c:4e10:b0:459:443e:b180 with SMTP id 5b1f17b1804b1-459443eb330mr95296375e9.8.1754411851166;
        Tue, 05 Aug 2025 09:37:31 -0700 (PDT)
Message-ID: <68bed4ac-aa27-41cc-b8f6-ff8483371211@citrix.com>
Date: Tue, 5 Aug 2025 17:37:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] efi: Call FreePages only if needed
To: Ross Lagerwall <ross.lagerwall@citrix.com>,
 Xen-devel <xen-devel@lists.xen.org>, xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Jan Beulich <jbeulich@suse.com>
References: <20250805163204.3631483-1-ross.lagerwall@citrix.com>
 <20250805163204.3631483-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: <20250805163204.3631483-2-ross.lagerwall@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05/08/2025 5:32 pm, Ross Lagerwall wrote:
> If the config file is builtin, cfg.addr will be zero but Xen
> unconditionally calls FreePages() on the address.
>
> Xen may also call FreePages() with a zero address if blexit() is called
> after this point since cfg.need_to_free is not set to false.
>
> The UEFI specification does not say whether calling FreePages() with a
> zero address is allowed so let's be cautious and use cfg.need_to_free
> properly.
>
> Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 16:37:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 16:37:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070764.1434422 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujKfO-00067t-DF; Tue, 05 Aug 2025 16:37:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070764.1434422; Tue, 05 Aug 2025 16: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 1ujKfO-00067m-9m; Tue, 05 Aug 2025 16:37:34 +0000
Received: by outflank-mailman (input) for mailman id 1070764;
 Tue, 05 Aug 2025 16:37:33 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=yoJv=2R=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ujKfN-00067a-0h
 for xen-devel@lists.xen.org; Tue, 05 Aug 2025 16:37:33 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7b99c725-721a-11f0-a321-13f23c93f187;
 Tue, 05 Aug 2025 18:37:31 +0200 (CEST)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-458b49c98a7so26699355e9.1
 for <xen-devel@lists.xen.org>; Tue, 05 Aug 2025 09:37:31 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459e58542f3sm10789375e9.10.2025.08.05.09.37.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Aug 2025 09: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>
X-Inumbo-ID: 7b99c725-721a-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754411851; x=1755016651; darn=lists.xen.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=DcTrrKHCxjGpWj0rumg0FDiXmLUWF4il3f7mb5TP3tM=;
        b=f+WjMsoyiWXrbjvILpZBw/3VdoTY7gWWpCIWXgdE/iKwvZg1hOFiwvR+U5YOTMlFi0
         uhR7bfGHiO5vcso3UpkMakpjwMhXkLzIbr6H/tUwAULfB+ntE2Yc+0bL+drxLqWMsgS5
         9tadeK5qbOVb/2ZCfj+GGHsWIS0R+9VOnt6Cs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754411851; x=1755016651;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=DcTrrKHCxjGpWj0rumg0FDiXmLUWF4il3f7mb5TP3tM=;
        b=S6XSygBS4ZVAZwUg4sR4JG3fwKeMzcTD5Dz/cdU8rRbcbySq4HISOAGYPjA6DHSWkk
         DBewF4Zs2uBnQgH336hX8it/AzxXpaFO9J614dGCyL4+j8E4jiKPocdd9gkJbfiHLKuK
         HGy3C1ruohVq0gyH2PkYPexJbSpcT8B6yUhYtki+CTYtEP52ng1xcE0dIgwqPCJK2av2
         4KznS791cB7gA5vxhbbrehskeDjFffo5/p0xJwwywPRXEqJKdBF3uP7TmKNxOor4TEqp
         XkGNhjLyOfz5CNXpFdNOGeDm4PqSf0CCfui0+OM5QBeUCktALa3wFsOFlRK33/qKQ7TV
         NIuA==
X-Forwarded-Encrypted: i=1; AJvYcCUtQhYlnRbdhuD+ljPR0iJdEeMh1fBsp4UlLWxWXXKRNReHqNa9CPyThgA9U/N6C1xEEQ4TTuNPISc=@lists.xen.org
X-Gm-Message-State: AOJu0Yw27pqg6Mepo64qEYGjLsIVEYJlk5Z31y2UYF2kA7EEo+wQQQhJ
	fqzAntpHIjKgpguqYi7X/+byLyrK9C5gVyTviXi7/rXICpk3UXOZfP8rQy7DnqXVhvY=
X-Gm-Gg: ASbGncvPyuUGVrBamQ2P/mfFGohBvLA1n+IUIpBRVMeHy1/wZvKFCrdmaaYhfNVtWOn
	FBGx3Qn90RCn+2GuLISMi2Gao0m4nxMn1e6OnoV5rNJgD3wm2lhSeMsN/UaC0QygLaUBY17awcP
	mA7CwOCwnpcnTV52OIYPfHT6mrW0aXIRFDWL5yh4gJFTXMkmrsRdUtLm+zZLBkyXtLvIQSxuibm
	8XW6B/8k+8O3hNU/WDPXMoQ6Gzk2Jj7xidh1krla2monee6Ukhz6MxglgbdyB9KMWOEkRsvVbkF
	3pNuA5BbNR6gHobBMHFrcgVRk0mfvI8QsWtjuRWV9Kjj2Fl7HjLb7x09ULbEAPj45VXrAlhPQ5a
	GeO0rmoRSA8yknB2FZNwlY7MCk/b8xMCt1A5XNDWOH9hxIaM9WERgpHOmvtVj9jkc6Dcb
X-Google-Smtp-Source: AGHT+IHHjz5bsg0TqLNtqa9cAyBQGg/tEMn9oJQ/u5n9sIdIsm+p/d+DdO22Xpxu19u5Q+Qh9egT0A==
X-Received: by 2002:a05:600c:4e10:b0:459:443e:b180 with SMTP id 5b1f17b1804b1-459443eb330mr95296375e9.8.1754411851166;
        Tue, 05 Aug 2025 09:37:31 -0700 (PDT)
Message-ID: <68bed4ac-aa27-41cc-b8f6-ff8483371211@citrix.com>
Date: Tue, 5 Aug 2025 17:37:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] efi: Call FreePages only if needed
To: Ross Lagerwall <ross.lagerwall@citrix.com>,
 Xen-devel <xen-devel@lists.xen.org>, xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Jan Beulich <jbeulich@suse.com>
References: <20250805163204.3631483-1-ross.lagerwall@citrix.com>
 <20250805163204.3631483-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: <20250805163204.3631483-2-ross.lagerwall@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05/08/2025 5:32 pm, Ross Lagerwall wrote:
> If the config file is builtin, cfg.addr will be zero but Xen
> unconditionally calls FreePages() on the address.
>
> Xen may also call FreePages() with a zero address if blexit() is called
> after this point since cfg.need_to_free is not set to false.
>
> The UEFI specification does not say whether calling FreePages() with a
> zero address is allowed so let's be cautious and use cfg.need_to_free
> properly.
>
> Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 17:22:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 17:22:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070819.1434441 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujLMP-0006rg-Ro; Tue, 05 Aug 2025 17:22:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070819.1434441; Tue, 05 Aug 2025 17:22: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 1ujLMP-0006rZ-OJ; Tue, 05 Aug 2025 17:22:01 +0000
Received: by outflank-mailman (input) for mailman id 1070819;
 Tue, 05 Aug 2025 17:22:01 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=tjfC=2R=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1ujLMP-0006rT-1P
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 17:22:01 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20608.outbound.protection.outlook.com
 [2a01:111:f403:2418::608])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id adfbcab6-7220-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 19:21:55 +0200 (CEST)
Received: from SA1P222CA0064.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:2c1::15)
 by SJ2PR12MB9115.namprd12.prod.outlook.com (2603:10b6:a03:55c::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.14; Tue, 5 Aug
 2025 17:21:49 +0000
Received: from SN1PEPF0002BA51.namprd03.prod.outlook.com
 (2603:10b6:806:2c1:cafe::9) by SA1P222CA0064.outlook.office365.com
 (2603:10b6:806:2c1::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9009.13 via Frontend Transport; Tue,
 5 Aug 2025 17:21:49 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SN1PEPF0002BA51.mail.protection.outlook.com (10.167.242.74) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Tue, 5 Aug 2025 17:21:48 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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 Aug
 2025 12:21:48 -0500
Received: from [172.17.35.128] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Tue, 5 Aug 2025 12:21:47 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: adfbcab6-7220-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=A8mKRkE6CRnS7/hX3Q33KRAwx+nOYrRmzu5PD1C+5LlqIxCMQ6VVF5MkCjQiqxWP1e261XO1qP6ojni04+nMzL8Ut2LhWlJGB5VOqKGPxrFOENWa1+TdQKa0Rwwdsptott05dflpNe1E20KmrCrhO+zi5lwA35j6wddvN/ftYgpl/Tewi4m7a76crPO6FHsq91Pgx+LVzZLbp8JmAj1a7sEOMAw2HmLrDvqLAo7qvuUkqCpZWAxhClUU23IZ+ofTrLtuRYjE1+J3/Rshg+bwkObZ2akJ2m5JxzfQMiJ0Gt04sA6uyrILOrA0Ys1foQzz0ko4TzLEG67CJnzP82an3w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=AtiIpBwFbTUaDMGzbHbXFv65uwFcj+S2UhPgeI3K+7A=;
 b=Gl9ylc2fXr8IecqjBxeJO1+9ViUvthzZn/BcZkXC7iESEiZRN3dbgPKQek/MMAQKHDV3Bjhq2mwJCW1EknQtgWKd456/zvnJ3K4p2Tt3y0SPT6UC7Ldm/W+MM0HBgoksACugfngysYg1FJs/QhSOX9k0yALDqWYP4I+zdUPdzliotPk9Jz13gnSqIkuN5hvsAWaws3wyiTdi0RuaZxEbdi2YHxOvUpmNpQ+cVD7Z2CXsFpq4BilLRsYWxUN/8HfNk606bolhqZvq8Etnf1Rw7L6UmcI5UJM6dQKhWK7rNGCn4VRxp7DaFZvhcJOdkki2jgdoiFJeznfXQxKCPYe6Xw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=epam.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=AtiIpBwFbTUaDMGzbHbXFv65uwFcj+S2UhPgeI3K+7A=;
 b=LGubpx00BrRy4xsafWODSmZRDQaiUi70mzu4pe7pRzcc+vuN+B6cqe+bdkq8UrvTogxlPfRUDUVRAwjE6ruwywqplBu2AEKdLvktm6iHY4kbDPcIQcvC2iyrwGeSnZEXxTMT9muy8BnDydYJ7GXP1Gg2dBbZfpidZ8g1PWSqF5o=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <7c867f77-3846-4b2a-a028-4dfb248a4fc2@amd.com>
Date: Tue, 5 Aug 2025 13:21:50 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH] xen/dom0less: arm: fix hwdom 1:1 low memory
 allocation
To: Grygorii Strashko <grygorii_strashko@epam.com>,
	"xen-devel@lists.xenproject.org" <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>
References: <20250801155429.1402395-1-grygorii_strashko@epam.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20250801155429.1402395-1-grygorii_strashko@epam.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB03.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF0002BA51:EE_|SJ2PR12MB9115:EE_
X-MS-Office365-Filtering-Correlation-Id: 57d41a7d-89d2-4d69-26c4-08ddd4448fb0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|1800799024|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?T2NESmd5cGlFRjBSRW5PcTNpbnF0S1UybHFWNHZ1QWlTU3dHVTlSOGhXcUQx?=
 =?utf-8?B?YWFUTWRVS29qN1I5cThDSlZSZEU0OFdQK3hkOEtHNENFTng3V2VuUEhNR1RV?=
 =?utf-8?B?VzgwbUtKUFdaTS9CWW9FYUdXaEZLR0pLR1gzb2hVS1QzVWY1YjRZMVYvUmV4?=
 =?utf-8?B?WWJXSmZjSnFmbW9md0UwcXhBWGx5Z3Bwdk1yZ2ovbjBFNDhHQndkNlRmQW1y?=
 =?utf-8?B?MXUwR1NuRUVjQ291OEZEQlFXSG1tZm91cFJPdFZwNUZWOVA1V2tBckJ5MUdW?=
 =?utf-8?B?OWZJcnhsc3ltN09nY3VZSmRubXJpckxkNWEyaS9QZzJISXpQcTJ2U0lKSjYr?=
 =?utf-8?B?UTZXL2xQMC84VjEvNGVIaTkwMmFra2xibE5rT1hYcXl4QnFKMEFWV2xXdXNk?=
 =?utf-8?B?SWkrOUJtSXpLVFFVR3JOcDNMTlVZazNRckdLY3N3blBwYmExanNKcjBJYWVL?=
 =?utf-8?B?eXB3NHZ3S3htVWZTZ2R6YlI4TFE5R2NoVldCSGxVRzE2T2VjdGhvMko5M0Nv?=
 =?utf-8?B?N3UyTXlvNUg5Y1lLajVtbUJBanhUYWU1VFA1SGxyd3UxT3pLU3lSckU0cUpE?=
 =?utf-8?B?UTZLRmNRamZkbHM2Uzh6OTI3SGFzc3JXTWxQSUk5cmlTZGtYaGFzQTVWc1JN?=
 =?utf-8?B?WmRQNGZqRVh0WEdUcER5Q2E5ajZNNUp2dVRvQmMyYVU2TUZYMXF1NHA5Y21I?=
 =?utf-8?B?ak1DNDNEUFV1Wmx4UjZ2RUtBWXNwY1NXNEZtSW9lU2ZWU3RTd0pWWm9sbStB?=
 =?utf-8?B?Yzk1TVR0TXA4bURpOWV0dG82WVZJaWJiYk5vY2VVOXhSeXVIM1JabnFZb2do?=
 =?utf-8?B?Nm1JZXFDMmJ5Y3pGNG95S3J2aFUxemNqRzR5U1RDbEJ2OEM1ZE0yNkkrVUxI?=
 =?utf-8?B?UENwK3BqU25IZEdyL1JaRXlGMUVGai9RYmdNb1c1KzNGWGxsQUxNNUVUZ2NU?=
 =?utf-8?B?Y2ZUUGkzK2hrZFI5c2hWQ0ozZUxXQUZkYWQ0RW5hemRIbkU3L2RTVXJ3Y0dG?=
 =?utf-8?B?TjNSUzJPSi90Q3NhV0JRRWlNcmhBczlQOHpOTUxOVFJiNFROSmx4UUZqVG1V?=
 =?utf-8?B?c3dBTHljS0hkUXhIemFOaThaNG92dHJWWUN0Y3M4Y09qUTYvWUZZbm9tQUpv?=
 =?utf-8?B?Q3p6a0xxbmRDYkZCQ1VOdlBnVTNVTy9GYTJBNWVhc0RGcGRPSHBlNTJXVk5B?=
 =?utf-8?B?TUdMbThKRnRTR0NKTnJTRW9oM1VTcGg0ci9rTzB0WnM1TkpqeXMrK2xpTjJV?=
 =?utf-8?B?TklBSDVia0tyMld1L2h6RFNDeGttaUF0cFlvTTEvNXVuM3Q1a3IrYUljd2gw?=
 =?utf-8?B?b1FtS2c3SmNUMzluM01EdGgxbTJUd1BJSURLSHM4RHI5VTVYUFVQU0s3NE9a?=
 =?utf-8?B?SGV6alBXYWQ4NGVscU5NQ014c0M5N0k4MU9iYWY4eUl5S2FlWFlNSitzZkZI?=
 =?utf-8?B?OFErWFJkNUhtaUpzUmp6TXgvMXdLZXNuTDkyM1E1S1RkOXhXQjAwYlZxMEM3?=
 =?utf-8?B?S3RmcmRpU1IwNUNNOUVCQnBCUWozbDMzLzVzTGZKYVF3d1JDV2ROVVYyMU5l?=
 =?utf-8?B?SkJBaklaZVBwSzJDOGlQcnJpckM1TEZNMVcvbmhxVnVERTI2c3o2OXZXV1A4?=
 =?utf-8?B?SWxMUzNkdy90VXpjL1lRUHlqUnVwQ2pRMjdBZmJobGhYN2VkNFdTK24yQ0lC?=
 =?utf-8?B?Umg3K0hzZjQrbW9EejhnY015U05qUW9nT0h5WFowWGZ6aFB1VGhJMjZSUmNp?=
 =?utf-8?B?MVdUN0JKNFMzS0tzdVBmZmhsYXhLNjQyQThVSHZLczdUNVB5MHF6VEp4ejdp?=
 =?utf-8?B?ZjNxM1ZKSFphQU1aM1R2WEZveFdpYkd2VFlDVDJRSlkreTFmRFhYZXdnT2U2?=
 =?utf-8?B?TlJUMmlsUWkxR3MzTVpyUFl4MXVQSzlRd3hnT3ZVLy9RZ1IzQzBQLzZDNkhj?=
 =?utf-8?B?bmE0OFMxNWdZSERNQ1dPbDZ4dUtlY2Q4UGZSMys4M0tCYXNYc2E1S2daL2ho?=
 =?utf-8?B?eFljNlBRS2dpRnErT2ZNeG16dVM4RzRMK2xKLzFhQ1M2VG1XajFwU3VqNTIz?=
 =?utf-8?Q?IEqZck?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(1800799024)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Aug 2025 17:21:48.9382
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 57d41a7d-89d2-4d69-26c4-08ddd4448fb0
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF0002BA51.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB9115

On 2025-08-01 11:54, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> Call stack for dom0less hwdom case (1:1) memory:
> create_domUs
> |-construct_domU
>    |-construct_hwdom()
>      |-allocate_memory_11()
> 
> And allocate_memory_11() uses "dom0_mem" as:
> min_low_order =
>    get_order_from_bytes(min_t(paddr_t, dom0_mem, MB(128)));
> 
> In case of dom0less boot the "dom0_mem" is not used and defaulted to 0,
> which causes min_low_order to get high value > order and so no allocations
> happens from low memory.
> 
> Fix it, by using kinfo->unassigned_mem instead of "dom0_mem" has correct
> memory size in both cases: regular dom0 boot and dom0less boot.
> 
> Fixes: 43afe6f030244 ("xen/common: dom0less: introduce common dom0less-build.c")

I think I introduced this bug with the dom0less hwdom support, and the 
correct fixes is:

Fixes: 52cb53f1816a ("xen/arm: dom0less hwdom construction")

> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>

dom0_mem is also mentioned in the comment on line 252.  With that 
changed as well:

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 18:19:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 18:19:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070840.1434452 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujMGN-0006rh-SE; Tue, 05 Aug 2025 18:19:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070840.1434452; Tue, 05 Aug 2025 18:19: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 1ujMGN-0006ra-NK; Tue, 05 Aug 2025 18:19:51 +0000
Received: by outflank-mailman (input) for mailman id 1070840;
 Tue, 05 Aug 2025 18:19:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fV7N=2R=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1ujMGM-0006rU-9U
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 18:19:50 +0000
Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com
 [2a00:1450:4864:20::630])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c5852ff0-7228-11f0-a321-13f23c93f187;
 Tue, 05 Aug 2025 20:19:49 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-af9180a11bcso42802266b.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 11:19:48 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a1e6cecsm953648466b.70.2025.08.05.11.19.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Aug 2025 11:19: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>
X-Inumbo-ID: c5852ff0-7228-11f0-a321-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754417988; x=1755022788; 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=ytR6Z0PpPebjCP5J6x1RR+0moRg5gPd30zK+w+DPSQA=;
        b=fovwZDTpgDoobci2taCcqQiOjsDobX+7akkSjkLIu3887lBFAtDp0pePy5I4GfC/eK
         rEjmNTl/weqS4wpDYMEY36Y/n/YY2JNsN1iD49zn+i9OPB6et+16BBf6rYGqoPhnRPMQ
         wUuYZTp2k/1TGHSzdmL7WG1WT+N/QS4AGCEYRpeqe/BqxfXwbkVHZCs3Fb9tJIH5UIPh
         eiE01UkotPO+ntvnol/39JU1IwKkPZFzGkZJMBdXYEUiubjcD7oVMpmM3mbKTRAMjgSw
         Uk858lMHqvD8k7lP+1JQWELoGVbAHoUISyscT6DtTrOiRUX595X2RnMmdFX7zeheLx+c
         1SKw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754417988; x=1755022788;
        h=content-transfer-encoding:subject:from:cc:to:content-language
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=ytR6Z0PpPebjCP5J6x1RR+0moRg5gPd30zK+w+DPSQA=;
        b=QujJ49fQQ1yGUBGQPsiutXJNFK2nu9gQrqxqz673jX0ZesRSLe1XJ38BxYol2Lrzbk
         jpg58Txpoqlh0/Lcls4T3DXA48QotVl/g2Rz/Qasy47GbnEK096Y+flmAoY3fB+GLHjL
         bC37IuWWy2hI7qFAjxyCc1hfmDDdbNEelu3Zy4dd6XoNM9Kk8i87G7az0okfj9vEFJg5
         2Q+r2Sk/gMXYHWEi45CGqDLBQabm71ETbYQtLeqqWirl//ahycrB5QiwAXMZqXMqgeUe
         iRRg5MUC2LVCRjd95Y1zMX1b5HMi1tY+Z+Nrp409wR98dc5bSow0MXJ5qHj4An3SDSse
         NZXg==
X-Gm-Message-State: AOJu0YyoEIjbqF8MlfV7d2byTp725bY7LOlBZMAi/uYL51VTAA2RuCWL
	1Wq/LXi+dew6aNMKEwCzNl7t6t+XIdBHvevRqk6W96FQzznkd0NdErdITcNkrA==
X-Gm-Gg: ASbGncs4U3rS9WqECvTqzmtHFjFsjzUs3g2Cy1nqSZLoMi1lKcJFUBZoeINNcNAiC0T
	p9rSlz+qpEfpE6NIWRTiMBk/rB9H3V4py3qzcZSHJDbR7L19Fq/iFrYvgTk3EddPkvdW3FlKWOF
	rwfgdJIEmuOJzWNhcoKgRVOqSy/QPwQnW/0iJFiEzCWZPs+wt4jX9cHY+Y174iQs10y2GqW7Anr
	pXHiw9VZmvs3Ovcz9FA5moP3f6X3+hhTTBjfYYG+fCGRqaVbj/ChXHyXturynmDZSUDn1e8MW7S
	IG6i2eSZj/CeBR0V3R/MFCjzafALJ6pggtfdHxrYkBV4PcUjOLIBng3zPe+gx5tqvNHMpnOKldW
	02CkUW+74LKugGcJSH5kcwZLjqqnJRswsEKldp+haI/JCEdtqMOW0+1mJMFGK/ck1RrbVqjfUdo
	u+ZRERrA==
X-Google-Smtp-Source: AGHT+IHNl3mEunMkC7hLrDeqapizF2cG2GvMOuTbhg1XsBtXZMo0IS/Q43k79Jrhl5t3aoaBnzFE3A==
X-Received: by 2002:a17:907:72c2:b0:ae9:c8f6:bd3 with SMTP id a640c23a62f3a-af98cf76944mr78002066b.7.1754417987465;
        Tue, 05 Aug 2025 11:19:47 -0700 (PDT)
Message-ID: <ae2c2e35-72df-40ed-bffe-391f3c11b826@gmail.com>
Date: Tue, 5 Aug 2025 20:19:45 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>,
 ", Ayan Kumar Halder" <ayan.kumar.halder@amd.com>,
 Mykyta Poturai <Mykyta_Poturai@epam.com>, Juergen Gross <jgross@suse.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Luca Fancellu <luca.fancellu@arm.com>, "Jason Andryuk,"
 <jason.andryuk@amd.com>, Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 Sergii Dmytruk <sergii.dmytruk@3mdeb.com>, "Penny Zheng,"
 <Penny.Zheng@amd.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki=2C?=
 <marmarek@invisiblethingslab.com>, Roger Pau Monne <roger.pau@citrix.com>,
 Luca Fancellu <luca.fancellu@arm.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, dmkhn@proton.me,
 Mykola Kvach <xakep.amatop@gmail.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Grygorii Strashko <gragst.linux@gmail.com>,
 Alejandro Vallejo <agarciav@amd.com>,
 "committers@xenproject.org" <committers@xenproject.org>,
 Community Manager <community.manager@xenproject.org>
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Xen 4.21 Development Update [June-July]
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hello everyone,

This email only tracks big items for xen.git tree. Please reply for 
items you
would like to see in 4.21 so that people have an idea what is going on and
prioritise accordingly.

You're welcome to provide description and use cases of the feature you're
working on.

= Timeline =

The current release schedule could be found here:
 Â  https://wiki.xenproject.org/wiki/Xen_Project_X.YY_Release_Notes

And as a reminder I would like to remind at the of this week we will have
Last posting date (Fri Aug 08, 2025).

= Updates =

The following items ( the links for them could be found int the list below )
were moved to completed:
 Â  [since Jun2 - Aug5]:
 Â Â  Added some tags: [4.21], [next-rel(s)] to the list "Full list of items"
 Â Â  below.
 Â Â  * x86:
 Â Â Â  - kexec: add kexec support to Mini-OS.
 Â Â Â  - x86: memcpy() / memset() (non-)ERMS flavors plus fallout
 Â Â  * Arm:
 Â Â Â  - SMMU handling for PCIe Passthrough on ARM.
 Â Â Â  - Add support for R-Car Gen4 PCI host controller.
 Â Â Â  - First chunk for Arm R82 and MPU support.
 Â Â Â  - Enable R52 support for the first chunk of MPU support
 Â Â Â  - ARM split hardware and control domains.
 Â Â  * RISC-V:
 Â Â Â  - Introduce basic UART support and interrupts for hypervisor mode.

 Â  [since May 6 - Jun2]:
 Â Â Â  * Hypervisor:
 Â Â Â Â Â  - tools: remove qemu-traditional
 Â Â Â  * Arm:
 Â Â Â Â Â  - PCI devices passthrough on Arm, part 3
 Â Â Â  * x86:
 Â Â Â Â Â  - xen: cache control improvements
 Â  [since 4.20 relese - May 6]:
 Â Â Â  * Hypervisor:
 Â Â Â Â Â  - Move parts of Arm's Dom0less to common code
 Â Â Â Â Â  - remove libxenctrl usage from xenstored
 Â Â Â  * Arm:
 Â Â Â Â Â  - Enable early bootup of Armv8-R AArch32 systems
 Â Â Â  * x86:
 Â Â Â Â Â  - x86/HVM: emulation (MMIO) improvements
 Â Â Â  * RISC-V:
 Â Â Â Â Â  - RISC-V some preinit calls.
 Â Â Â Â Â  - Fixes for UBSAN & GCOV support for RISC-V.

Some new items added:
 Â [since May]
 Â Â Â  * x86:
 Â Â Â Â  - Allow x86 to unflatten DTs
 Â Â Â Â  - hyperlaunch: move remaining pvh dom0 construction
 Â Â Â Â  - x86/hyperlaunch: introduce concept of core domains
 Â Â Â Â  - Confidential computing and AMD SEV support
 Â Â Â  * Arm:
 Â Â Â Â  - SMMU handling for PCIe Passthrough on ARM
 Â Â Â Â  - xen/arm: scmi: introduce SCI SCMI SMC multi-agent support
 Â Â Â Â  - Add initial Xen Suspend-to-RAM support on ARM64
 Â Â Â  * RISC-V:
 Â Â Â Â  - introduce p2m functionality
 Â [since 4.20 release]
 Â Â Â  * Hypervisor:
 Â Â Â Â Â  - tools: remove qemu-traditional
 Â Â Â Â Â  - Physical address hypercall ABI ("HVMv2")
 Â Â Â Â Â  - xen: Untangle mm.h
 Â Â Â Â Â  - xen: introduce CONFIG_SYSCTL
 Â Â Â Â Â  - Add support for exact-node memory claims
 Â Â Â Â Â  - Several CI cleanups and improvements, plus yet another new runner
 Â Â Â  * x86:
 Â Â Â Â Â  - x86/EFI: prevent write-execute sections
 Â Â Â Â Â  - x86: Trenchboot Secure Launch DRTM (Xen)
 Â Â Â Â Â  - Hyperlaunch device tree for dom0 (v6)
 Â Â Â Â Â  - amd-cppc CPU Performance Scaling Driver (v4)
 Â Â Â Â Â  - Hyperlaunch domain builder
 Â Â Â Â Â  - kexec: add kexec support to Mini-OS
 Â Â Â Â Â  - xen: cache control improvements (should be moved to "Hypervisor"?)
 Â Â Â Â Â  - x86: generate xen.efi image with no write-execute sections
 Â Â Â Â Â  - x86/asm: cleanups after toolchain baseline upgrade
 Â Â Â  * Arm:
 Â Â Â Â Â  - Add support for R-Car Gen4 PCI host controller (v4)
 Â Â Â Â Â  - FF-A VM to VM support (v5)
 Â Â Â Â Â  - First chunk for Arm R82 and MPU support (v4)
 Â Â Â Â Â  - ARM split hardware and control domains (v5)
 Â Â Â Â Â  - MPU mm subsistem skeleton
 Â Â Â  * RISC-V:
 Â Â Â Â Â  - introduce basic UART support and interrupts for hypervisor mode

* Full list of items : *

= Projects =

== Hypervisor ==

* [4.21] xen/console: cleanup console input switch logic (v5)
 Â  - Denis Mukhin
 Â  - 
https://lore.kernel.org/xen-devel/20250530231841.73386-1-dmukhin@ford.com/

* [4.21] xen: introduce CONFIG_SYSCTL (v4 -> v8)
 Â  -Â  Penny Zheng
 Â  - 
https://lore.kernel.org/xen-devel/20250711043158.2566880-1-Penny.Zheng@amd.com/

* [4.21] Several CI cleanups and improvements, plus yet another new runner
 Â  - Marek Marczykowski-GÃ³recki
 Â  - 
https://lore.kernel.org/xen-devel/cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com/
 Â  - 
https://patchew.org/Xen/cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com/

* [4.21] automation: Refresh the remaining Debian containers (v2)
 Â  -Â  Javi Merino
 Â  - 
https://lore.kernel.org/xen-devel/cover.1730743077.git.javi.merino@cloud.com/T/#m5d9acb7cf5db3c2be3d6527de14b69b07812314e

* [4.21] MSI-X support with qemu in stubdomain, and other related 
changes (v8)
 Â  -Â  Marek Marczykowski-GÃ³recki
 Â  - 
https://lore.kernel.org/xen-devel/cover.33fb4385b7dd6c53bda4acf0a9e91748b3d7b1f7.1715313192.git-series.marmarek@invisiblethingslab.com/
 Â  -Â  Only automation patch left to be reviewed/merged.

* [next-rel(s)] Physical address hypercall ABI ("HVMv2")
 Â  - Teddy Astie
 Â  - 
https://lore.kernel.org/xen-devel/cover.1744981654.git.teddy.astie@vates.tech/

* [next-rel(s)] xen: Untangle mm.h
 Â  -Â  Andrew Cooper
 Â  - 
https://lore.kernel.org/xen-devel/20250312174513.4075066-1-andrew.cooper3@citrix.com/
 Â  - 
https://patchew.org/Xen/20250312174513.4075066-1-andrew.cooper3@citrix.com/

* [next-rel(s)] Add support for exact-node memory claims
 Â  -Â  Alejandro Vallejo
 Â  - 
https://lore.kernel.org/xen-devel/20250314172502.53498-1-alejandro.vallejo@cloud.com/
 Â  - 
https://patchew.org/Xen/20250314172502.53498-1-alejandro.vallejo@cloud.com/

* [next-rel(s)] Remove the directmap (v5)
 Â  -Â  Alejandro Vallejo
 Â  - 
https://lore.kernel.org/xen-devel/20250108151822.16030-1-alejandro.vallejo@cloud.com/
 Â  - 
https://patchew.org/Xen/20250108151822.16030-1-alejandro.vallejo@cloud.com/

* [next-rel(s)] GRUB: Supporting Secure Boot of xen.gz (v1)
 Â  -Â  Ross Lagerwall
 Â  - 
https://patchew.org/Xen/20240313150748.791236-1-ross.lagerwall@citrix.com/

* [next-rel(s)] Introduce xenbindgen to autogen hypercall structs (v1)
 Â  -Â  Alejandro Vallejo
 Â  - 
https://patchew.org/Xen/20241115115200.2824-1-alejandro.vallejo@cloud.com/

* [next-rel(s)] Introduce NS8250 UART emulator (v2)
 Â  -Â  Denis Mukhin
 Â  - 
https://patchew.org/Xen/20241205-vuart-ns8250-v1-0-e9aa923127eb@ford.com/

* [next-rel(s)] xen: framework for UART emulators
 Â  - Denis Mukhin
 Â  - 
https://lore.kernel.org/xen-devel/20250624035443.344099-1-dmukhin@ford.com/

=== x86 ===
* [4.21] x86/asm: cleanups after toolchain baseline upgrade (v1 -> v2)
 Â  - Denis Mukhin
 Â  - 
https://lore.kernel.org/xen-devel/20250403182250.3329498-1-dmukhin@ford.com/
 Â  - https://patchew.org/Xen/20250403182250.3329498-1-dmukhin@ford.com/

* [4.21?] x86/efi: Fix booting when NX is disabled (v1 -> v2)
 Â  - Andrew Cooper
 Â  - 
https://patchew.org/Xen/20240722101838.3946983-1-andrew.cooper3@citrix.com/
 Â  - 
https://lore.kernel.org/xen-devel/20240722101838.3946983-1-andrew.cooper3@citrix.com/

* [4.21?] Hyperlaunch device tree for dom0 (v6)
 Â  - Alejandro Vallejo
 Â  - https://patchew.org/Xen/20250429123629.20839-1-agarciav@amd.com/
 Â  - 
https://lore.kernel.org/xen-devel/20250429123629.20839-1-agarciav@amd.com/

*Â  [4.21?] Boot modules for Hyperlaunch (v9)
 Â  -Â  Daniel P. Smith
 Â  - 
https://lore.kernel.org/xen-devel/20241115131204.32135-1-dpsmith@apertussolutions.com/
 Â  - 
https://patchew.org/Xen/20241115131204.32135-1-dpsmith@apertussolutions.com/

*Â  [4.21?] Address Space Isolation FPU preparations (v2->v3)
 Â  -Â  Alejandro Vallejo
 Â  - 
https://patchew.org/Xen/20250110132823.24348-1-alejandro.vallejo@cloud.com/

* [next-rel(s)] Hyperlaunch domain builder
 Â  - Daniel P. Smith
 Â  - 
https://lore.kernel.org/xen-devel/20250515131744.3843-1-dpsmith@apertussolutions.com/

* [next-rel(s)] Confidential computing and AMD SEV support
 Â  - Teddy Astie
 Â  - https://patchew.org/Xen/cover.1747312394.git.teddy.astie@vates.tech/
 Â  - 
https://lore.kernel.org/xen-devel/cover.1747312394.git.teddy.astie@vates.tech/

* [next-rel(s)] amd-cppc CPU Performance Scaling Driver (v5 -> v6)
 Â  - Penny Zheng
 Â  - 
https://lore.kernel.org/xen-devel/20250711035106.2540522-1-Penny.Zheng@amd.com/

* [next-rel(s)] x86: Trenchboot Secure Launch DRTM (Xen) (v1 -> v3)
 Â  - Sergii Dmytruk
 Â  - https://patchew.org/Xen/cover.1745172094.git.sergii.dmytruk@3mdeb.com/
 Â  - 
https://lore.kernel.org/xen-devel/cover.1748611041.git.sergii.dmytruk@3mdeb.com/

* [next-rel(s)] x86/EFI: prevent write-execute sections
 Â  - Roger Pau Monne <roger.pau@citrix.com>
 Â  - 
https://lore.kernel.org/xen-devel/20250401130840.72119-1-roger.pau@citrix.com/

* [next-rel(s)] x86: generate xen.efi image with no write-execute sections
 Â  - Roger Pau Monne
 Â  - 
https://lore.kernel.org/xen-devel/20250318173547.59475-1-roger.pau@citrix.com/

*Â  [next-rel(s)] Expose consistent topology to guests (v7)
 Â  -Â  Alejandro Vallejo
 Â  - 
https://patchew.org/Xen/20241021154600.11745-1-alejandro.vallejo@cloud.com/

*Â  [next-rel(s)] x86/alternatives: Adjust all insn-relative fields (v2)
 Â  -Â  Andrew Cooper
 Â  - 
https://lore.kernel.org/xen-devel/20241002152725.1841575-1-andrew.cooper3@citrix.com/T/#mac2deaea7e02a343210d61887486433d946ad129

*Â  [next-rel(s)] x86emul: misc additions (v7)
 Â  -Â  Jan Beulich
 Â  - https://patchew.org/Xen/3a25cd59-e1cb-4bfc-b868-fb11599d22f5@suse.com/

*Â  [next-rel(s)] x86: support AVX10 (v3)
 Â  -Â  Jan Beulich
 Â  - 
https://lore.kernel.org/xen-devel/516b7f9a-048e-409d-8a4e-89aeb8ffacc4@suse.com/
 Â  - https://patchew.org/Xen/516b7f9a-048e-409d-8a4e-89aeb8ffacc4@suse.com/

*Â  [next-rel(s)] VT-d: SATC handling; ATS: tidying (v2)
 Â  -Â  Jan Beulich
 Â  - https://patchew.org/Xen/64b028be-2197-4951-ae5b-32f9eabfa84a@suse.com/

*Â  [next-rel(s)] x86: parallelize AP bring-up during boot (v1)
 Â  -Â  Krystian Hebel
 Â  - 
https://lore.kernel.org/xen-devel/cover.1699982111.git.krystian.hebel@3mdeb.com/

*Â  [next-rel(s)] x86/spec-ctrl: IBPB improvements (v4)
 Â  -Â  Jan Beulich
 Â  - https://patchew.org/Xen/06591b64-2f05-a4cc-a2f3-a74c3c4a76d6@suse.com/

*Â  [next-rel(s)] Move some boot code from assembly to C (v2)
 Â  -Â  Frediano Ziglio
 Â  - 
https://lore.kernel.org/xen-devel/20241122093358.478774-1-frediano.ziglio@cloud.com/
 Â  - 
https://patchew.org/Xen/20241122093358.478774-1-frediano.ziglio@cloud.com/

*Â  [next-rel(s)]amd-pstate CPU Performance Scaling Driver (v1)
 Â  -Â  Penny Zheng
 Â  - https://patchew.org/Xen/20241203081111.463400-1-Penny.Zheng@amd.com/
 Â  - 
https://lore.kernel.org/xen-devel/593baee2-9bf1-4db4-86e8-015cae48dc1a@suse.com/

* [next-rel(s)] x86: adventures in Address Space Isolation
 Â  - Roger Pau Monne <roger.pau@citrix.com>
 Â  - 
https://lore.kernel.org/xen-devel/20250108142659.99490-1-roger.pau@citrix.com/

=== ARM ===

* [4.21?] MPU mm subsistem skeleton
 Â  - Luca Fancellu
 Â  - 
https://lore.kernel.org/xen-devel/20250312135258.1815706-1-luca.fancellu@arm.com/
 Â  - https://patchew.org/Xen/20250312135258.1815706-1-luca.fancellu@arm.com/

* [4.21?] Add initial Xen Suspend-to-RAM support on ARM64 (v4)
 Â  - Mykola Kvach
 Â  - 
https://lore.kernel.org/xen-devel/cover.1748848482.git.mykola_kvach@epam.com/

* [4.21?] xen/arm: scmi: introduce SCI SCMI SMC multi-agent support (->v4)
 Â  - Oleksii Moisieiev
 Â  - 
https://lore.kernel.org/xen-devel/cover.1753184487.git.oleksii_moisieiev@epam.com/

* [next-rel(s)] FF-A VM to VM support (v6)
 Â  - Bertrand Marquis <bertrand.marquis@arm.com>
 Â  - 
https://lore.kernel.org/xen-devel/cover.1747925287.git.bertrand.marquis@arm.com/
 Â  - https://patchew.org/Xen/cover.1747925287.git.bertrand.marquis@arm.com/

*Â  [next-rel(s)] Add Virtio-PCI for dom0less on ARM (v1)
 Â  -Â  Edgar E. Iglesias
 Â  - 
https://lore.kernel.org/xen-devel/20240924162359.1390487-1-edgar.iglesias@gmail.com/T/#mfa148991b9408f223a079d4cef610244d5b04c2b
 Â  - 
https://patchew.org/Xen/20240924162359.1390487-1-edgar.iglesias@gmail.com/

*Â  [next-rel(s)] DOMCTL-based guest magic region allocation for 11 domUs 
(v4)
 Â  -Â  Henry Wang
 Â  - https://patchew.org/Xen/20240409045357.236802-1-xin.wang2@amd.com/

=== RISCV ===

* [4.21] xen/riscv: introduce p2m functionality (v1->v3)
 Â  - Oleksii Kurochko
 Â  - 
https://lore.kernel.org/xen-devel/cover.1753973161.git.oleksii.kurochko@gmail.com/T/#t

=== PPC ===

*Â  Early Boot Allocation on Power (v5)
 Â  -Â  Shawn Anastasio
 Â  - 
https://lore.kernel.org/xen-devel/cover.1727388925.git.sanastasio@raptorengineering.com/T/#m8cac91a93b56a359fa2d5f08596c4be61dca290d
 Â  - 
https://patchew.org/Xen/cover.1727388925.git.sanastasio@raptorengineering.com/

== Completed ==

=== Hypervisor ===

* tools: remove qemu-traditional
 Â  - Juergen Gross <jgross@suse.com>
 Â  - https://lore.kernel.org/xen-devel/20250527132035.985-1-jgross@suse.com/

*Â  remove libxenctrl usage from xenstored (v8)
 Â  -Â  Juergen Gross
 Â  - 
https://lore.kernel.org/xen-devel/20250204113407.16839-1-jgross@suse.com/

* xen/config.h: Move BITS_PER_* definitions from asm/config.h to 
xen/config.h
 Â  - Oleksii Kurochko
 Â  - 
https://lore.kernel.org/xen-devel/6b21fb046cf1c8ca760f5ad72fa3cc13b59c4069.1743092485.git.oleksii.kurochko@gmail.com/

* Move parts of Arm's Dom0less to common code
 Â  - Oleksii Kurochko
 Â  - 
https://patchew.org/Xen/cover.1746468003.git.oleksii.kurochko@gmail.com/
 Â  - 
https://lore.kernel.org/xen-devel/cover.1746468003.git.oleksii.kurochko@gmail.com/T/#t

=== x86 ===

*Â  x86: memcpy() / memset() (non-)ERMS flavors plus fallout (v4 -> v5)
 Â  -Â  Jan Beulich
 Â  - https://patchew.org/Xen/14b65231-b83b-43fb-bbcf-dec5c07d285b@suse.com/

* kexec: add kexec support to Mini-OS (v1 -> v2)
 Â  - Juergen Gross <jgross@suse.com>
 Â  - 
https://lore.kernel.org/xen-devel/20250616084619.11112-1-jgross@suse.com/

* [4.21] Allow x86 to unflatten DTs (v8)
 Â  - Alejandro Vallejo
 Â  - 
https://lore.kernel.org/xen-devel/20250722000525.7247-1-alejandro.garciavallejo@amd.com/#t

* xen: cache control improvements
 Â  - Roger Pau Monne
 Â  - 
https://lore.kernel.org/xen-devel/20250506083148.34963-1-roger.pau@citrix.com/

*Â  x86/HVM: emulation (MMIO) improvements (v3)
 Â  -Â  Jan Beulich
 Â  - https://patchew.org/Xen/729f7896-55b7-4b5b-a7e9-6eb0420e0b14@suse.com/

=== ARM ===

* Enable R52 support for the first chunk of MPU support
 Â -Â  Ayan Kumar Halder
 Â - 
https://lore.kernel.org/xen-devel/20250619113152.2723066-1-ayan.kumar.halder@amd.com/

* ARM split hardware and control domains (v5)
 Â  - Jason Andryuk
 Â  - 
https://lore.kernel.org/xen-devel/20250416212911.410946-1-jason.andryuk@amd.com/
 Â  - https://patchew.org/Xen/20250416212911.410946-1-jason.andryuk@amd.com/

* First chunk for Arm R82 and MPU support (v4 -> v6)
 Â  - Luca Fancellu
 Â  - 
https://lore.kernel.org/xen-devel/20250523065406.3795420-1-luca.fancellu@arm.com/
 Â  - https://patchew.org/Xen/20250523065406.3795420-1-luca.fancellu@arm.com/

* Add support for R-Car Gen4 PCI host controller (v4 -> v5)
 Â  - Mykyta Poturai
 Â  - 
https://lore.kernel.org/xen-devel/cover.1747820844.git.mykyta_poturai@epam.com/
 Â  - 
https://patchew.org/Xen/cover.1747820844.git.mykyta._5Fpoturai@epam.com/

* SMMU handling for PCIe Passthrough on ARM (v11 -> v12)
 Â  - Mykyta Poturai
 Â  - 
https://lore.kernel.org/xen-devel/cover.1751439885.git.mykyta_poturai@epam.com/

*Â  PCI devices passthrough on Arm, part 3 (v16->v20->v21)
 Â  -Â  Stewart Hildebrand
 Â  - 
https://patchew.org/Xen/20250508104608.531079-1-stewart.hildebrand@amd.com/
 Â  - 
https://lore.kernel.org/xen-devel/20250508104608.531079-1-stewart.hildebrand@amd.com/

* Enable early bootup of Armv8-R AArch32 systems
 Â  - Ayan Kumar Halder
 Â  - 
https://lore.kernel.org/xen-devel/20250414164514.588373-1-ayan.kumar.halder@amd.com/
 Â  - 
https://patchew.org/Xen/20250414164514.588373-1-ayan.kumar.halder@amd.com/

=== RISC-V ===

* riscv: introduce basic UART support and interrupts for hypervisor mode 
(v2 -> v3)
 Â  -Â  Oleksii Kurochko
 Â  - 
https://lore.kernel.org/xen-devel/cover.1747843009.git.oleksii.kurochko@gmail.com/
 Â  - 
https://patchew.org/Xen/cover.1747843009.git.oleksii.kurochko@gmail.com/

* RISC-V some preinit calls:
 Â  -Â  Oleksii Kurochko
 Â  - 
https://lore.kernel.org/xen-devel/4ddde60347edf6740fbc69b5739d099616f5b5ff.1743165791.git.oleksii.kurochko@gmail.com/

* Fixes for UBSAN & GCOV support for RISC-V:
 Â  -Â  Oleksii Kurochko
 Â  - 
https://lore.kernel.org/xen-devel/9fbb5e1389b84bed2e95f99e4c383d0215c7a524.1744889185.git.oleksii.kurochko@gmail.com/

Have a good week!

Best regards,
 Â Oleksii


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 18:38:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 18:38:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070856.1434462 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujMYO-0001Xs-DR; Tue, 05 Aug 2025 18:38:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070856.1434462; Tue, 05 Aug 2025 18:38:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujMYO-0001Xl-AN; Tue, 05 Aug 2025 18:38:28 +0000
Received: by outflank-mailman (input) for mailman id 1070856;
 Tue, 05 Aug 2025 18:38:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6kSf=2R=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1ujMYM-0001Xf-TD
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 18:38:26 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5ee692e4-722b-11f0-a321-13f23c93f187;
 Tue, 05 Aug 2025 20:38:25 +0200 (CEST)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by AS2PR03MB9561.eurprd03.prod.outlook.com (2603:10a6:20b:59a::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.13; Tue, 5 Aug
 2025 18:38:21 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%4]) with mapi id 15.20.8989.018; Tue, 5 Aug 2025
 18:38: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>
X-Inumbo-ID: 5ee692e4-722b-11f0-a321-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=DtvAXMesZBJFFvO4IZ6UBqQ3hbgoIO7oJlTEzVJCk8ZlWSiTDoIsDiWisknpOLMf3fEINcq82Z5VUM9oIE+GL4gnOwVrGAry23YgKpJ9wXM69yitBGLXXiypTViEV3pMHSyAwCfWIf11R3cxCoYphqO+yxyyBAXsCytGG1RDO9Vom6kOu4+ksvNmbVDtmheuUiFU+er+wuLATM4br0OC2LrZdeVTY0FywOxbBzq+A/6+0yTHAGW0g6p3EbLm4+OJAg0GfCMxbByvonaZ+LIGalyjk2JKWg/FUOAOwmb17HCexe5s9iB03joWcxtZpZFEGmWr2R27F9obDBUPAAN5Bw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=iA7n9sbPzi96niBfSOn2Vx2h/mbvxcfxyCsxxpvUEJk=;
 b=k8Nv9KL41KPs4SXIjWtcehRTs8IGI2nbZj6kJPWq2dhJRUJfPwIraJh0UBTfAxF8tYyvpMFHybGir7Nykro5XGzaI7Gjg3QF7gAWG/62Zwb+ytp168dhrIHoo/miqhnb5ce6YCvxrZ9e+Om/aaAkPWecVGcOD64/UcdM1vu2/0wx5TPDB+klllklLYrvpsFArZBLDx1URS+r/oHkQElbuzEMInl+rkwT7/nGBEx41QtxV2KBFn7rfOg0XwQen0EhMqbqZJT4XUzHlUDBXX0yGR3fP0sXbw5lWDzYpfvcqhlWEDWdI4dWZut7C2dAClnw7/BiTzIdckmdvK4at755cQ==
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=iA7n9sbPzi96niBfSOn2Vx2h/mbvxcfxyCsxxpvUEJk=;
 b=p6yMu7gapZx+f87NOJs4Xx5WBTgFazLjKr991ihdQfdWDaVtkq2awzjJCDwTqSIA223p/QNTuPsMOuP70q4EHsP5AKTt6PML+7OZgQfVCRpHscpqDK68DTxlDpycKlT6MqdxSIkcSjg01yxEiTcbtYNsH086wVuAn/maR8KwDqDOdfWpSNSJk4sxG3xtTaglGHsycE6yM29NP2ncTjbIA0b5hqN/qNBySLkmtCvDI0JxBNASGABf6rE2O4Cdit5JWSnXJUT8q3aVoRfcC5g+vtXC0fwSTS2NLAYCX9WusuDi/7zxoOL60foj5/NdHx/9LTsCA106HL8o3Ioi8j8l0g==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <47e51e6d-ea3a-464e-9442-fa5f4329eabc@epam.com>
Date: Tue, 5 Aug 2025 21:38:19 +0300
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH] xen/dom0less: arm: fix hwdom 1:1 low memory
 allocation
To: Jason Andryuk <jason.andryuk@amd.com>,
 "xen-devel@lists.xenproject.org" <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>
References: <20250801155429.1402395-1-grygorii_strashko@epam.com>
 <7c867f77-3846-4b2a-a028-4dfb248a4fc2@amd.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <7c867f77-3846-4b2a-a028-4dfb248a4fc2@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: WA2P291CA0024.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1e::15) To AS2PR03MB8907.eurprd03.prod.outlook.com
 (2603:10a6:20b:5e4::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB8907:EE_|AS2PR03MB9561:EE_
X-MS-Office365-Filtering-Correlation-Id: 6a416c46-d8c0-415b-5b21-08ddd44f40d8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?UTVYb3hxaFVMa1BzRkdpajllMERVSkhnNWQwQUU1ZHo0YU4wa2RLeC9nVXM1?=
 =?utf-8?B?ZGJUakZFMWVIbVN3WjUzaW1WZjZIV3VxWTVFSkFsNEVGaGU0SkZxeGowMVdj?=
 =?utf-8?B?b0s1WE43ejhoNWNmWVdMZHJLQ2N0UlN2NDJoYVg2Z25aeFFHWDRlSVBBMTNQ?=
 =?utf-8?B?dzhOeVBOQmU5aFpiQUlCd1JPY3JaM3EyVk8xZEY5SDNsZjZEc0JUK0dsdGl6?=
 =?utf-8?B?N2x1VnI2QUk4bUk0cG12OG1hanhNaXUyT2NzOFViQzcwcm9hV0RsWlFjT3E1?=
 =?utf-8?B?MkNUR1o0S2NRU2dKODhGemE1UFZrcmpiYXRUVEFmR1ZxWHRiYjRVb0JzYW90?=
 =?utf-8?B?QTJoa0I5SzllWTl5WDVCcDNGNExVUkNjVTJ0aWJRZjRBdW1YSlFYVDNmaWJL?=
 =?utf-8?B?SGx1b2tOc2Z2WkJ0Q2dkZS9lOFp6Ull3amc4dmp3MCtpOGpLSWEzTFdEdHdI?=
 =?utf-8?B?VlJZcENUTmtiS1djOS9JYTdrbW00NjNWUGhBTVNYRVBDUFB1OE9wS2ZKN0JE?=
 =?utf-8?B?bG1hMlhZNGRsL0tZR0NDQlltZmhGSjU3MkE2dEtZaStRei94NThpME5pcFVM?=
 =?utf-8?B?SVVxWGlncGpjaFI2eDFZSXR4dlRValliYzlKUmlSYjZ4bU1wZzFIYmJvRzk3?=
 =?utf-8?B?ek1rUFlBdDh2NnJkNnJJQ2NkNWlIVkVPbVJSWDdrbkFYbGdGd2tiYVc2ZlJ0?=
 =?utf-8?B?d3pHMXZpM043M25aQVkvUStoY1h2bzRHZGJTMTdhK0VhNXZuUFJacFFCMGRR?=
 =?utf-8?B?VW1aZ1B5REpDYXZxL3QzZEZ5dmFiOWNuZytHcHJVN3VBZDRNUktRY2VYUkd3?=
 =?utf-8?B?UEVQQnlOeUdnVWdVMnZPSTJrNmJMSEhjbjVTOWVMTEtndW9pQm5WRkRyS294?=
 =?utf-8?B?M3hna3hPYjB2S2QrSTErWWVCbFVpUE51WTFYNEpUaFN6N2FpS080UFVxVno4?=
 =?utf-8?B?N2tFMDdkWEhNakdFMnQ2d2lNMG11K2c1MjFOYVF2N1YxMGlDeitFOGkzQ0F4?=
 =?utf-8?B?R0Q3UFlkUzhHajhCN00rQjErbTlHU3lJRzlqMEZBb2xLOEIxQW81K2twUkNM?=
 =?utf-8?B?NHZIMWF3cTcwU3JKVzkzL1pOY2ZrMkJSaTh1QkFXTU5BZENpbDN1SUwxdkdP?=
 =?utf-8?B?NDluOFBUWGw2UHllY0hnNzlteTN4OFlLeEpPTU9RRTlVOWx0cDNBTkIyY3pP?=
 =?utf-8?B?eWhsZkRrVnpiZmlhMXBhZ3Jxb2o2d0paTTEvQlcwOFUwRXhWZS9KbUhMZVhX?=
 =?utf-8?B?STRnYndZWTM4WVhZQy9aK0laTG1UNWw4OFBMYlZLWG1FQ0x2YTllejFseTJB?=
 =?utf-8?B?V1M5TktGRHRTQTRrUDF6a2dDcENpak85RHRJeEZ1d1BFT1JZK3laMG1oMCs0?=
 =?utf-8?B?Z0g5MHJrWGNCNjRCUjZ3MWFFSmdnK0tZaHRkRFc1S2J0eE84dU9henEzell3?=
 =?utf-8?B?QWxUWElNUk5iMEltM1h0Q2RKaFF4b2lwWGU3RU5jclN3dDRsQkkzN0tIMUFa?=
 =?utf-8?B?STViRUhlc1FQRXB5SWZMT1pUbC9taGRhU1pNMC9GL3NBQjltRzEzVVk5OUI3?=
 =?utf-8?B?cFdPalQxa0FTV3VPV3JKU2dTRnRQdG5melFLUXNkei9jRXp3TTZGa0FxT0RE?=
 =?utf-8?B?WWczcE0vd0RIM1pkenpqMEZ4eTRFU3hiU3Jxd0lXOFlLMS9ZbXY3bG96cGFj?=
 =?utf-8?B?N1Q2NjV0L28vSXk1QWRWUG10V25OWmJXRC9PT0VpeGxURll4a0FrMktnVE5V?=
 =?utf-8?B?bitGbjM0cVZMSHdLbWFsZ1M4cEpTeTNTOENzQ3RzRVBoUHQwcTBJY242TTRh?=
 =?utf-8?B?RWd2VVZDdlBTVXprMkU0NnFJOTIweCtuaTBtdlVhczljV05tclBZYkp5VlMw?=
 =?utf-8?B?QjhRdHd5cEhkTlZIZjdoZW4zNCtmTy8rdDRyVkcxUjdaV0VyVEk4UWg5MFFQ?=
 =?utf-8?Q?ekt45EMlQNc=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TThZTy9JZ2lDdkZvdVJMMlNBTXVZWGZiTFlPWW1Wb1drNVpCSWI2a3pvelhE?=
 =?utf-8?B?U0t5cTd3TUUxRHFzRGQ4SDNueVVLTWVqbnF1R1ZhRWltSEFzQ0JGQ2pzUGpl?=
 =?utf-8?B?ODVpbjZ0aFhMU3JOTFZjSEdCVDRPbjRJa1R5eXBad1pveTJaUzJtaXdDK3I4?=
 =?utf-8?B?a2hqa1NFTDF3UllWY2w2MHpUTnRkVDl3ZDBGeU9MWHp4UG5Ya2s0VC9mZlpJ?=
 =?utf-8?B?L1l6TUlpMjFHczllS3VpMjQrVE9JRTNjRGpac1FtYWYrdU1QQzN5QmVQNDQ5?=
 =?utf-8?B?cTZtcWQxYk9FMERzQ1JwYUhFekpVemVvOXdmaW51VThrZUMySkJObU1kdDl3?=
 =?utf-8?B?cU9UdlM0SXNhZldzbVdocmFPZG9qR1NlSGdjc2lGTEFGQUZjb3dJSXFDY1Ny?=
 =?utf-8?B?MytWMWV5Q1VIS0l5WmtrZE50N2lMN1RXK3BVdXRYWXYzUkZBRDJ2Q2I1UUQy?=
 =?utf-8?B?L1pKWHlLUGVqM3VlZ1RQeVA4a3poK0I0VWVBTHJYZStNUnBkeDk4Z1BsNGxU?=
 =?utf-8?B?YXFoSzVGNnBOOUpsTW5UcVQyY2RrVXVObHhGeHdvUDRUQ3BOM1dyZGhQamZu?=
 =?utf-8?B?ZVZTaTk1L1BsRkE5a296Y1dablU2RE1QdGVaQ0ZXWXR0d3hOMkdoZG1SVGE5?=
 =?utf-8?B?VHZQSTQ1ZTdTclQ4aEZtb2Y1WHBhYW44aUkwVDdiSnJYVm8rWTdZZSs0UlFu?=
 =?utf-8?B?UmdESDFrdEMxWGpYVk93VDY5eWdJV1VIOTBNaXIwNjgxSEpyYXJHaDFaVHhO?=
 =?utf-8?B?OHc2UCs5K0ZBbFVGc2lVL0dma2ppOGNHWDRpTzRKZFlkNlljeHBwdHRvREVV?=
 =?utf-8?B?dG9VdzI3UFMxVTJHVUZJalVWMjUwNDRuY2NlS2ZHeG5SVW1XVUpTdEJHQnN6?=
 =?utf-8?B?STBiNnZHbnB5Wml3Q0hKY3RDYTVYREFpV1BGUmRXOXhVRm04L0l3elgrQWVq?=
 =?utf-8?B?Z1VHVC9oQWV0a0I1WVNJbHNrbUlPby9ncE5uR0RCLy9QRlV3bU9wYWp5OWpU?=
 =?utf-8?B?Mi84YTYyQW14d3RqREt1SlhBYTRwTlBIOVBoQlhpaWdodGJvUTZWc2RMN1p0?=
 =?utf-8?B?NG1LVXlDN1ZXcjVNTFdlMEY5UTJaNGVHNGxmM1dsU3BNRkhiVnpxbXRiZUJX?=
 =?utf-8?B?Z1Yvd2FSUUt5UGFaNVpTSjlTelJLQ1cvYStldXhsdklPOERsZ1FyVkZJeExX?=
 =?utf-8?B?SjhTWFc0UWZIU2wrOHlMc29mVitnMkxtNC9EalppdDVUTnZqcG5INVQ3d20v?=
 =?utf-8?B?MFdjMkVIZExoV1V3YWh2bE1aNDN2OTNNUlNleXduRk9wSXg2VFMvZTZBMzFF?=
 =?utf-8?B?S1E1OXdyNDNzSFJJNGlESEwvUEo4R0Y4azJXb1NBbkd5OXExcnROMzVtWlJ5?=
 =?utf-8?B?WDBaQlg1ejk0d0RudDkrMG1nNElvRUw2cHFVMWV0bUdEKzFna3RKQlE4U21n?=
 =?utf-8?B?UlNLQys1cFczcU5CZWNERzBGOERkYWl5RVVQb0tPeDBOZUFZaVA3anBxakpU?=
 =?utf-8?B?bThiV2U4TUpYaEhad2FRaHBCM0Z2WmpITUxrTGRBMTVKdGVlemlpVEtxb0FS?=
 =?utf-8?B?WE1lQXYyME9TaVdxTk8vWjZjR3JKMnRMbENFWCttbFp0bkJrdlczYW9uNW5R?=
 =?utf-8?B?TVZSZ0VHM1pXWmFVYmI4WVlRcjVTNlFmbUNSWWI3NG9DL3N2cTJLUzNKa3Nu?=
 =?utf-8?B?ZzdJL2dMOEd3MmU3QW5IQzU0aUthbEMzUmJLNE5oVXFpRUpxQWw4OVo2QUxF?=
 =?utf-8?B?VllXOERmYjBwVlMwNnRpRmFqRFpRV2hSS1BXNERUTm56U1pidDB2M1d3Zk9D?=
 =?utf-8?B?UnpxbThEQVpUT0NxN0JsR1FZME14ejJoQXUwRGg0ckYwbjRtcTB1dHJYL3lp?=
 =?utf-8?B?dEVub0tUZ1k3bVJkbXIzY0VidWZNSmlLUE85eWFOZjI0YjJEYkl2cndFRmpy?=
 =?utf-8?B?SnEwaVd5WkFEWEZwSGRkVDgrbDREWmg3SEd5TUozRmwzS1d6QkhIM28wSWJo?=
 =?utf-8?B?Uk1nVnJCYUJ4UDJ4UnFEMGFRZWJ0ZzZyTmsvYWpXMUJWNmg3MUlaZWhhd3FW?=
 =?utf-8?B?MmcwRS9wZ1pIeXZvZkN1eDNLUGRkOHFMc3BWbzhVV1ArYitrNmJEbWpJZDB5?=
 =?utf-8?B?SDhvWlEwaG1lMnFEcHRlVWUwbWdKWjJCY211bm05cUR6UWh2MWszSklYc0py?=
 =?utf-8?B?Snc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6a416c46-d8c0-415b-5b21-08ddd44f40d8
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Aug 2025 18:38:21.3780
 (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: Ebu7M8wZ/qxQK6e+uhpJUcMd6cNNYvAyMkJulFWorR8GYR0hDVmHxC0dUeuJwaoRBZ2mg+pRhPwB/Jj/X6KeIs2ZiE1b8TTlHFAxcDQ8HZI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB9561

Hi Jason,

On 05.08.25 20:21, Jason Andryuk wrote:
> On 2025-08-01 11:54, Grygorii Strashko wrote:
>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>
>> Call stack for dom0less hwdom case (1:1) memory:
>> create_domUs
>> |-construct_domU
>> Â Â  |-construct_hwdom()
>> Â Â Â Â  |-allocate_memory_11()
>>
>> And allocate_memory_11() uses "dom0_mem" as:
>> min_low_order =
>> Â Â  get_order_from_bytes(min_t(paddr_t, dom0_mem, MB(128)));
>>
>> In case of dom0less boot the "dom0_mem" is not used and defaulted to 0,
>> which causes min_low_order to get high value > order and so no allocations
>> happens from low memory.
>>
>> Fix it, by using kinfo->unassigned_mem instead of "dom0_mem" has correct
>> memory size in both cases: regular dom0 boot and dom0less boot.
>>
>> Fixes: 43afe6f030244 ("xen/common: dom0less: introduce common dom0less-build.c")
> 
> I think I introduced this bug with the dom0less hwdom support, and the correct fixes is:
> 
> Fixes: 52cb53f1816a ("xen/arm: dom0less hwdom construction")
> 
>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> dom0_mem is also mentioned in the comment on line 252.Â  With that changed as well:
> 
> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>


Will smth like below be ok?

   * We first allocate the largest allocation we can as low as we
   * can. This then becomes the first bank. This bank must be at least
- * 128MB (or dom0_mem if that is smaller).
+ * 128MB (or memory size requested for domain if that is smaller).


-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Tue Aug 05 18:40:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 18:40:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070864.1434472 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujMZz-00030f-Mm; Tue, 05 Aug 2025 18:40:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070864.1434472; Tue, 05 Aug 2025 18:40:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujMZz-00030Y-K5; Tue, 05 Aug 2025 18:40:07 +0000
Received: by outflank-mailman (input) for mailman id 1070864;
 Tue, 05 Aug 2025 18:40:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=tjfC=2R=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1ujMZy-00023T-32
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 18:40:06 +0000
Received: from NAM04-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam04on20616.outbound.protection.outlook.com
 [2a01:111:f403:2408::616])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 99dbdb29-722b-11f0-a321-13f23c93f187;
 Tue, 05 Aug 2025 20:40:04 +0200 (CEST)
Received: from BY3PR03CA0014.namprd03.prod.outlook.com (2603:10b6:a03:39a::19)
 by IA1PR12MB6306.namprd12.prod.outlook.com (2603:10b6:208:3e6::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.14; Tue, 5 Aug
 2025 18:39:59 +0000
Received: from SJ5PEPF0000020A.namprd05.prod.outlook.com
 (2603:10b6:a03:39a:cafe::1d) by BY3PR03CA0014.outlook.office365.com
 (2603:10b6:a03:39a::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.21 via Frontend Transport; Tue,
 5 Aug 2025 18:39:59 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SJ5PEPF0000020A.mail.protection.outlook.com (10.167.244.43) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Tue, 5 Aug 2025 18:39:59 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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 Aug
 2025 13:39:58 -0500
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 5 Aug
 2025 13:39:58 -0500
Received: from [172.17.35.128] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Tue, 5 Aug 2025 13:39:58 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 99dbdb29-722b-11f0-a321-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aCm8Oi2Y2+PSklQQtxhVkw5sIBcWhyDpV4W7esTsl9dOIJXRHdaMiYCBRB84pxcKzcVfeLFngE4dgkgN5FFNyyVlIYD1t64+FziiZFyYxilvjectUbvDeohpz08mGZTZvgjgDKH33F6Ek7H+St6u74dYNVE+ya5XtfYnP3PqHpXpCaJRfbBMaZYWqYb1/zUpzJb1kWza9a8c0bto4csWr5Jw2LWVWhifz7PZCIGdHRN/0ZxinrTynnguI0LfrbrYSZ1xw+Z4enHdA/X9wKBCwfFWe9gz+TCUkDKdnyG543S6MnmJK8ma6ZBYJ7I/7tPJGayt9yPb5Gew+PPCyiqNdA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=n/GFwuG11RU3d67W2B1HxqwDqa5tYO0dA83nEAnUoNE=;
 b=Qg6VvYBVFOxF8TO00GPHpaLpTFmfeXIOCvW181l9nTvrGsLD4Shf/ePp6LgyjlYa3Kew0ZuufRrRSPxyipaQx7mWuazF3PEELJvrjx7vDFh0mSKwoT8TRteCwwPs1foVsWozH2g7CbgSLZ0iG98pHDcnaWeBGtX4gvhlMfdRgbCGtvyYVT2kl+l0OWoxl/ykwtBtBDEwMyIaZNV89XrI4GVpXOfOGLT4jkrXh9WMfxgR7cC7dcxF4I394U1GnR3/6fIJYAJWuSfH7EJuH75nLcuOERWuJmpNF5SzywXPn5Lw2151LO6vNAZetOLKLyltf3LdFKx4D+j3b03HJcCTgA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=epam.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=n/GFwuG11RU3d67W2B1HxqwDqa5tYO0dA83nEAnUoNE=;
 b=a7qLsWWXuOLPjeFjlcxQNCqFp6Erd7jyRWG34ilyLhFdDNlVwGp4PCIQXAVjZc1usqYBNYtBMosd6pN9BzYei4vw+PxVZYCMl4dgGyi0KVGEWqJ+nrIUq2c9AtHfmeKxq+PzRIUtyuKCkkf+PC9H4qQ9NbBY6Lz8t/cfMJo/6Lw=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <bf2ce29b-c843-4a4b-be73-eb1c111abc81@amd.com>
Date: Tue, 5 Aug 2025 14:39:55 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN][PATCH] xen/dom0less: arm: fix hwdom 1:1 low memory
 allocation
To: Grygorii Strashko <grygorii_strashko@epam.com>,
	"xen-devel@lists.xenproject.org" <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>
References: <20250801155429.1402395-1-grygorii_strashko@epam.com>
 <7c867f77-3846-4b2a-a028-4dfb248a4fc2@amd.com>
 <47e51e6d-ea3a-464e-9442-fa5f4329eabc@epam.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <47e51e6d-ea3a-464e-9442-fa5f4329eabc@epam.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB05.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ5PEPF0000020A:EE_|IA1PR12MB6306:EE_
X-MS-Office365-Filtering-Correlation-Id: cd788429-93a5-4df9-b6ef-08ddd44f7b7c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|376014|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?WS9JYWdYQ25rcURKYUFpZW0wRHBUcmdMMDZvc2huVEZ6MGp0cExNU1E1Mkx3?=
 =?utf-8?B?VjlmWElwNHBFZk90TXVPQVVZSVhzOHJNTmZ0SmJCWTB4SnhtOElaWmFVcnhK?=
 =?utf-8?B?QUhlL3Z2YmlvZXA2RVZtRzBUeDFXVVJxdkhUMmNtalBSSnJPVlcxT0RHU0Rn?=
 =?utf-8?B?UThzN2JuNTFudklUSHJjTmpIMFpReDNFaGZNQllpby9HUWNzZEMwamhjTE5n?=
 =?utf-8?B?Y0RONy9iWXd2cTFlNUxTVUxwckFTeEd4ZXRDVElod01ML250YjhaNXY0L1dn?=
 =?utf-8?B?RStLOEhtaU1qU0pSZWswem5GaGlTU003Ym1zRnFrdC9mQ2pNM3JCYUdmSFEx?=
 =?utf-8?B?RFFFQ1Y0djdoQVRya2lSNGRPSlNBREcvRFJ2L1VnV09Pd3pSTldMQkRqWnA4?=
 =?utf-8?B?THRUM09McFk2WXY5SVFHZzFETlNTYVovM0k4d3VKRGZZenE1WE1ZMndoMk5P?=
 =?utf-8?B?L0ZyYU1ZTUk4ZEVxZTN0cGtBbFRXUHBKd3JiWERnUDExYk9BTWVZam9ZUCt5?=
 =?utf-8?B?Ulp1a1FaN0xpbWZLTHJrMGVNdEV0bmNZV2J5MUNvdVRhd0s4UERFakNEbWlG?=
 =?utf-8?B?OENrZzd4QkNRdVVPbkEzb3I1akZ6c3M2ZzFqNVcrRjBnUHlhMG9UeXFROFVP?=
 =?utf-8?B?Qnd0QVA0RTVyV0RobEM1ZUp3RVVRcGxxY2ExSkpjdkZnRWorOVBjR2JMNWlz?=
 =?utf-8?B?b0F0cE9hRGVGSkNkRUxzeWEwVzJnOFFoOUVVdkJ0c1VlOS9KLy9pcU5iZktM?=
 =?utf-8?B?N2xaYitJNjlhUHY1V1h2Mk8wa05qOFNVaEc0UXRFK0laOHRNZ2YyZ1NoaE9o?=
 =?utf-8?B?bHNmUk91K0FrNmtJZm1Sd1NiZmFWZ2hIWW1FY2x4Y1pLTWNkZlFhWnE0Y1Q2?=
 =?utf-8?B?eU5TYXpZcXg2aDY4MzF3UmVSMkJFOE1BT08wWWNUYy92UHJVZFdOSUZuT1g4?=
 =?utf-8?B?QXAzeHE0RnZoaXVWWkNxUDBtTGpTblBaa3JLbVVXSUtJcE8rVmpoTG9SYTZu?=
 =?utf-8?B?UUVFcGZLUThGY3lIQWkvNXdkaW9LblB3Zm1kcXJLVWFpNjFKYllwU1NJc2wz?=
 =?utf-8?B?dVNSYlJwZHlhZTJFaHhNODJFVG9tblh1bUsxV1R5RStEeU92RDVETDF0MG1a?=
 =?utf-8?B?UUM1VEtvVUNmdTlndVhFdHhIa3VVbE1SeWMyMVAwOGVOalFjN3JDK2s0OFRW?=
 =?utf-8?B?Qy9UTTJQRFgvcEhtdGlWdzhkKzRXT2MzMVJBQks2czZhTFZmZy9aUmNXazNl?=
 =?utf-8?B?QXNJMzB2WTl0V3l5aTZpODRWam5CQk5ycFE3TnhBbjhpRFNBRUJXQ3VZY0J3?=
 =?utf-8?B?TkRadExuTnIzUHUyZWFSb043bWMwL29CaTQ3STJ3WEFZTVYwWnRhYk44RGU1?=
 =?utf-8?B?SW43MUhqY1prcGFrZjNHaUM4Z3A0RlVmVU1BMEowT2V6SzZ0RUdiOGR6OUF5?=
 =?utf-8?B?VDNzbnUvVVN5Y1JJMWphOGJEMnd4TGpLYzdHM2NJU1I4RHU5YkUrY2Izd3ls?=
 =?utf-8?B?VWxGTEltSzllTm85V2pveGV0WGdPRU9KSjh1OTR2MlJ2ZXJIaDEzalVpYkhu?=
 =?utf-8?B?RklsUVkrRUluRU94MmRqOFMzWE4rSloyM1Z4TzZid3l3KzNPME8zeXhVNzZJ?=
 =?utf-8?B?V2RWYjFEbmZ5Q1ZsMUlQTE5DbWlnTUl5d1dNdDNacXVnckEvMG1ucitpbFBD?=
 =?utf-8?B?dGd5MlRvcUgyNjhxUkJjekExTkVMbGhoa29pZ25hdVlqZDZudlR4Q3FORldR?=
 =?utf-8?B?UjNsQ3JZQ0MreTFENnRhRWxIMU5TU1dvQzE3U2Z4bEtKazZ1S0tHV0JKTWwz?=
 =?utf-8?B?NUIxZDg0djZvMDYrN2VVUm1xTHZqQkdHUjVZMHY0YldEZ083aFc3aEFpK1A3?=
 =?utf-8?B?NWZQejdZc3RZbWNMY095OFpCb3hyVHhFRjdtZmhEOWcwUHhGT0R3dkwrWU5o?=
 =?utf-8?B?MlFHTzhwSVZybEpVTU9XbUw4aTVmS25KZFNIOFdJMVNiWDJhWjExQjUrRWQr?=
 =?utf-8?B?V2d1dE9HcEQ2cG1qbkVCN2NabG9sRENQNlFaWm5MWVdMOGZJbFRzTElERHl4?=
 =?utf-8?Q?anPuy8?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(376014)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Aug 2025 18:39:59.4412
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: cd788429-93a5-4df9-b6ef-08ddd44f7b7c
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ5PEPF0000020A.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6306

On 2025-08-05 14:38, Grygorii Strashko wrote:
> Hi Jason,
> 
> On 05.08.25 20:21, Jason Andryuk wrote:
>> On 2025-08-01 11:54, Grygorii Strashko wrote:
>>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>>
>>> Call stack for dom0less hwdom case (1:1) memory:
>>> create_domUs
>>> |-construct_domU
>>> Â Â  |-construct_hwdom()
>>> Â Â Â Â  |-allocate_memory_11()
>>>
>>> And allocate_memory_11() uses "dom0_mem" as:
>>> min_low_order =
>>> Â Â  get_order_from_bytes(min_t(paddr_t, dom0_mem, MB(128)));
>>>
>>> In case of dom0less boot the "dom0_mem" is not used and defaulted to 0,
>>> which causes min_low_order to get high value > order and so no 
>>> allocations
>>> happens from low memory.
>>>
>>> Fix it, by using kinfo->unassigned_mem instead of "dom0_mem" has correct
>>> memory size in both cases: regular dom0 boot and dom0less boot.
>>>
>>> Fixes: 43afe6f030244 ("xen/common: dom0less: introduce common 
>>> dom0less-build.c")
>>
>> I think I introduced this bug with the dom0less hwdom support, and the 
>> correct fixes is:
>>
>> Fixes: 52cb53f1816a ("xen/arm: dom0less hwdom construction")
>>
>>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
>>
>> dom0_mem is also mentioned in the comment on line 252.Â  With that 
>> changed as well:
>>
>> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
> 
> 
> Will smth like below be ok?
> 
>  Â  * We first allocate the largest allocation we can as low as we
>  Â  * can. This then becomes the first bank. This bank must be at least
> - * 128MB (or dom0_mem if that is smaller).
> + * 128MB (or memory size requested for domain if that is smaller).

LGTM - Thank you.

-Jason


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 18:41:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 18:41:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070872.1434483 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujMas-0003ft-1f; Tue, 05 Aug 2025 18:41:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070872.1434483; Tue, 05 Aug 2025 18:41:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujMar-0003f1-Sp; Tue, 05 Aug 2025 18:41:01 +0000
Received: by outflank-mailman (input) for mailman id 1070872;
 Tue, 05 Aug 2025 18:41:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6kSf=2R=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1ujMaq-0003e3-CZ
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 18:41:00 +0000
Received: from DB3PR0202CU003.outbound.protection.outlook.com
 (mail-northeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c200::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ba564c00-722b-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 20:40:58 +0200 (CEST)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by AS2PR03MB9719.eurprd03.prod.outlook.com (2603:10a6:20b:60d::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.21; Tue, 5 Aug
 2025 18:40:20 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%4]) with mapi id 15.20.8989.018; Tue, 5 Aug 2025
 18:40:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ba564c00-722b-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=kUVWqSY2zscj71XVvAM4y9Wl5BGXazb6hLpnyV4w5OE5K/6J9qSh9kvzRpyHWCgRhCgWwoB5HlcJf48WqYUum5rd5EoSDG5IYkOcFTd8sJ0USIgXsEMTFIvE9Q1Sr+I2CGBZTz2zpZhWLhNBS84gdq1kMffRPSSJu0BsxuxMX7T38bv6swzIV5yaYXBM79Q5hx2FXSXTWcOd/x74aL5Ficb1Cdd1QAppBiXck2DqnzuqIQVuYaq5IeEhQ24qqwg3IAnf/BpPxLYMWPe1w2Ioc+O6pCWkR0i5Bmu9zKhHQ/sOK0oUjnWm+sRqJD7mYPdovuseUBKMWMIz58rXeduKeA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=9ICIu1LnPFrPVQvLLhoLO3we8fxkiCkYbGFAbNQIUXc=;
 b=vmu8g53t3SUJ4vvYb840jxLmPk2jUgPzT1FCB26SqVn3Iug/Robf36x85CeNTuujjZVhzoHsKOD0zGJfaTrx49ch771HyDAf4tWzB8QiWpVrdVi+w6hPKVSC99YtbA/zEDiKrN3p6ZXeb4wevUIDeQJ2GMWu3Wxa8Ox7e4pcCH/R0+yq5idqSue+3VPTgNs2tXDOq5Rpz1AeTf/maYg9yIbymWnVrz9E8zrsLWt1xkszuEZsOz45Ra1k0CszmyFqsKDpZZcSrDGq9fofl7m7+f/wIEDQThZDFCk0p2f1YkH4NVOae9En6qO2q40p7ZTsXZcutZ2x+3qav6tjRxgUZQ==
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=9ICIu1LnPFrPVQvLLhoLO3we8fxkiCkYbGFAbNQIUXc=;
 b=H+Kxa7kbVX6nXNpjTEagYE2QgAGhtovJ0X6WNIBAUA3o21jcSXw2tmVqIbbzDW0mm7yaZDCxHhAh0RNWge5+EpbcbOp32hUc6qzr+PGCu8DBhPZXMC/9QRQuo3qwvV8J0+Qjbe0WSztDQNS6dFeHrCA+FMYuL7nhuEV3m7rvf0RR33k1n7yir95eu7Ah+Hz/H04rITFRy17FK+VBngo53uE98BnuBAMUi+MFSHxemMxaWQNB9zDnvGVJWftUoNYLwvAT8MN7rdRda1SKj2lqAwpFIaB8bOPz4QuRPHQramy6LvErnhl/EVPq7TqiIK+TLokHzKm6B1truQ8gf4v3uQ==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@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>, Denis Mukhin <dmukhin@ford.com>
Subject: [PATCH v2 1/3] xen/arm: irq: drop unreachable pirq callbacks
Thread-Topic: [PATCH v2 1/3] xen/arm: irq: drop unreachable pirq callbacks
Thread-Index: AQHcBjhleTZOnx+b3Uimt1PhvreN+g==
Date: Tue, 5 Aug 2025 18:40:20 +0000
Message-ID: <20250805184003.202839-2-grygorii_strashko@epam.com>
References: <20250805184003.202839-1-grygorii_strashko@epam.com>
In-Reply-To: <20250805184003.202839-1-grygorii_strashko@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: AS2PR03MB8907:EE_|AS2PR03MB9719:EE_
x-ms-office365-filtering-correlation-id: d71c8bb4-a00d-4f7e-d3b4-08ddd44f880d
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?N77v+oUALB4T5+xGUMUifma4cjFuPZSCQEVW0NW+w+9AuT5lDBC+wt79Jv?=
 =?iso-8859-1?Q?5Ht5NrxGC46pj0RVFCq2/qXcF+ojdEj4D/IB+DBYoHMEu1NGSPYPgyUM1E?=
 =?iso-8859-1?Q?GEhsTMrM66pcTz2+Z1JAT2+1aErFeSetBVJEIV7FjDo2yMbDEMnFIoRTYG?=
 =?iso-8859-1?Q?G2zHHlFO2cTaX9xT8hgE8Th+Ol51/zMfNXtZD+EF7UG85OUpJ2iGjChDcX?=
 =?iso-8859-1?Q?yBUi+8dqiYwcdklNv4+yv3EE6wQPDfgnRKYQQcrkOuxkIujtpL/MPAxrmC?=
 =?iso-8859-1?Q?UJvuxxI5mH0t07mCoGkShtdBpnwr3vwHVZchNCyPJkOr1ZNGydD/t7iIJI?=
 =?iso-8859-1?Q?D9n524jlotzVwA9I/GHZDpJEe4CvKKdyGQ0tVMD84B71FHojMhYnx7l3lW?=
 =?iso-8859-1?Q?9/exSEN6ZN8HPm8Zl1CNJPONMJtVExm1rbld0rGHyox0XqF8y7pmtCtwEE?=
 =?iso-8859-1?Q?OYxJfAwV+tt6vYCf7ZpJ/WXxC4tBKPY3mV7UihDta6FtYB25d58ItymRd/?=
 =?iso-8859-1?Q?qB8WGdgjWkE21m4R86ztfN+7Z2ZQcoaYmxP/SPic4HgBegRbTGFVi4Sinm?=
 =?iso-8859-1?Q?e13iiMlSaSoEaCVCHUwstVui1lq/fvYEr8oMe8DmjVg9+t+umalo5uS1Lu?=
 =?iso-8859-1?Q?JWgMknjPErYd33FdMkeYGGnA4CNmj9dQ5EBNHU2g8vYSiUyjMPzsq/M4ro?=
 =?iso-8859-1?Q?zhTvPE8dI3t+mLiK4EtYsrF8S/MPTWbgArRmc10FfzuVkEMob7U/WF4VNP?=
 =?iso-8859-1?Q?NFfEUYPoN9A/3DHaAeyilfDz+GAzZukJyi+3UZ5dqhgsqN3LZvJ+d780KN?=
 =?iso-8859-1?Q?OvHLnICaYYDHevyN52ar549yPI0v576VVfWkkc6xvkbxoDOsjY5xjbYkLR?=
 =?iso-8859-1?Q?IYwoQQpVNRlgD119fTNj+8iIczUpzUULHFX4dt6s2atUPcGmwogoyOwBCr?=
 =?iso-8859-1?Q?0fociIAVgZHoiHLH8scNUssbvct/dYCSfZUltC4HwhbGxGFJC0NxzG5Sjh?=
 =?iso-8859-1?Q?5O0+E2oUKFfa5ILunCXh2Ie1xi65blib6dkPS7THVbrcuH3QJ8fnNV4Vjl?=
 =?iso-8859-1?Q?KzaEJthiMyf4upp7HxCFAUGViLujy0MsOlRkRxSRye7E7+rLXsuKmKfhJE?=
 =?iso-8859-1?Q?+8OTMxvqlCFAUXTt7RfjwnWLAM/Mcm5o0bZbAStwZz3f1zNigy503/bfv0?=
 =?iso-8859-1?Q?9Y5iwKYavDP4g4yoGPvZzNA9bNI1qyWsTNhPBxesTSwqrp/8OZQa2c5l+A?=
 =?iso-8859-1?Q?dR7GHpSo9hW/v92HZhShs5D/UvGWsbXD6r/B+SwSstQl9jRtmhJR48uTHe?=
 =?iso-8859-1?Q?VB7AVxdB7MCztw3qqbMzRPQojGlO+uSZUsN1DkqSy1eLMd/XLhQJNgLeLR?=
 =?iso-8859-1?Q?0ZRGLX4l9O1PWxznhlwQe6Tbfe+AN3kqhLkFC8tx3tAjFHF3tv8IL2ES3a?=
 =?iso-8859-1?Q?ZfeZR62+xB94i+wePAepAp2CYZYXNz8NG7ZEheqLbA/C4c6uLNIcQ6jt6m?=
 =?iso-8859-1?Q?KMIrsUVW0Cd6EDfGlrCiGAhRv+Bx9N2SZi2R9aG3+uvg=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?+pHFd5s1IZ6nAFe1jTo54gyqJj/PGJvYX3zVTjI3pUPlQl/oAVxh/r8R0b?=
 =?iso-8859-1?Q?sHl4nSPJNZcXM3oAljRBO72f/sTG4T3XWANC4KN4tqiyoFHLh0e3RfKNBF?=
 =?iso-8859-1?Q?KRUJYYOwAhJM6EvNKd8H2/plwxrkle5GU/YIXZ/+4Yq2fznjetVosZt2s8?=
 =?iso-8859-1?Q?rpHZcVNIGU/RyQPtP00ZbMoIwYQugz5o3YHX1xNtDdA5g+zLdK83Xl3CgW?=
 =?iso-8859-1?Q?MbbEDEPMDCXIe6TpUb4Oy+EEAzR+eXqz0HBg8HTncmkTSSHYEY1lfYl6di?=
 =?iso-8859-1?Q?a4Bx/N+79OJ+c4rSGkA0lEwbhDO3B6jy6b4ruiUTwAyC1bkFMBcfEBUyRo?=
 =?iso-8859-1?Q?3SSpv+1jkWAZcuEJN/hc1cZ+mxE2NoLf2G4bnSdWvWrWzL2WYFc+AK7YTd?=
 =?iso-8859-1?Q?ZQfPx2pm2WXN2WakAHEUq0hY+LeGT8AdFt4UTk8bYWkyDEjAR3uLjEjf01?=
 =?iso-8859-1?Q?tGW5/+VapPoEDBFLOmbiYVtc5JUiDhCmX7fAcM8kMRmd4oQnfZ0yz/nEq/?=
 =?iso-8859-1?Q?nds88QIou+D2clL9R6EeyV16XZ8Bpdgo/+LT22Q+MC6iRyJgcLkT+ctU2L?=
 =?iso-8859-1?Q?QVky0+2uH+Eq9Y2pXxD9bKISrqTwi1I7Cdj66CekLVHs6/Z9fZTHJbT1w2?=
 =?iso-8859-1?Q?xn3LBI+hUnw5nQALjxJwEJmxTJbpDMS7aSbK9G1l4L6WVM+viAnCK+rOkp?=
 =?iso-8859-1?Q?qYA9yqJuQIrbkXm5KCp9u38kjaOl2yu21u8i/7l50aPfMmTMqhIVU0HXzY?=
 =?iso-8859-1?Q?zPNROTfilqPyEgEXiM+iWYlMaIkNqgsksir/5wTlNOx3s/aMvyqvMxRJNq?=
 =?iso-8859-1?Q?wplgRGgirYUnc8IKY2yyZrJ9A3Mg//TGx5ug2bWsDZpP42OibK4hlJSNOc?=
 =?iso-8859-1?Q?M8hU4+uO9hmW92U52PqCYAXx1W2Qt5tROjcUypjGpD1BNUgcZs5X+IGX6s?=
 =?iso-8859-1?Q?wq3aE76W1LuUOR9+Oxx03LjviQTU7RrBJeSzlhg3K+xJj0jhMPDiyWZ+7O?=
 =?iso-8859-1?Q?nHrZjBgNl9iVxrsiNVLRFi4rMF2oXEShmxnQiA3nFALrq2Jj7ywKbZoxMZ?=
 =?iso-8859-1?Q?JB/WnsLrACJsA/HAQpHAK9PZOb3NP0BTcTLCSPFB+A1jO5I1tQcuMdGvk5?=
 =?iso-8859-1?Q?6/w1sJWFMGT8CzBEEgRY3gtCBqXQMLQeahIbglPws389yazAk5rbx67wsY?=
 =?iso-8859-1?Q?6uFAKfPhFo0MAU88tHHU5Ee0GZEVEYgN3esTajuTpv2vZoSyG8aKNmBW9G?=
 =?iso-8859-1?Q?eZ37Xx4ytuhf4FYLFdY0kTcsW4lhbrxAfOsJ8X9/CjGEU71XSwl2ry9VQb?=
 =?iso-8859-1?Q?Hg4g2nXTFm7eQh0qGfBSV6HC21U7g69Vor/KnT+B0ObyJQxAR/RX9lkQ0U?=
 =?iso-8859-1?Q?c+jEIVKbZMJFTkDHXLY+gLOeVSdKb+TlDzuPWwo4flfw8IA/po+XMH8GKK?=
 =?iso-8859-1?Q?GQ8yTtdGzsckhJnsXFZDj7I+ieE+bgwnDyZ/LZi3cwzw0+kf13ikdrJNBR?=
 =?iso-8859-1?Q?ptQUkYCW2J9HpK9wSIAjt0kiLr9vTeap+IOETe9AQzfk6E1kFgFv3NOJO6?=
 =?iso-8859-1?Q?T/fa13sLX8eBA1oHADTWptPOwgti+iEDSaVPGvTI3eMKnYkybnqelZP6uL?=
 =?iso-8859-1?Q?auwxoKg62WpE/Ahv+X6jwohN7tfi9HPjrvC+0E43st7Ob2AmUOQa83mw?=
 =?iso-8859-1?Q?=3D=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: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d71c8bb4-a00d-4f7e-d3b4-08ddd44f880d
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Aug 2025 18:40:20.5985
 (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: vLepVwL+sFduqI5NySNLPQfGSavwbB7VxVeZwb2VUsJHQlPfjUAO6nmI3GApBN4VN/Y/7ZOXICoSFlQB5g3jL7/sQfXa4vkYIZNjiIXK52s=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB9719

From: Grygorii Strashko <grygorii_strashko@epam.com>

Since commit 341f271cf86f ("xen/evtchn: fully restrict concept of pIRQ for
arches with pIRQ support only"), the corresponding Arm arch pIRQ callbacks
become unreachable, so drop them.

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/arch/arm/irq.c | 29 -----------------------------
 1 file changed, 29 deletions(-)

diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
index 03fbb90c6c43..4bbf0b0664df 100644
--- a/xen/arch/arm/irq.c
+++ b/xen/arch/arm/irq.c
@@ -595,35 +595,6 @@ unlock:
     return ret;
 }
=20
-/*
- * pirq event channels. We don't use these on ARM, instead we use the
- * features of the GIC to inject virtualised normal interrupts.
- */
-struct pirq *alloc_pirq_struct(struct domain *d)
-{
-    return NULL;
-}
-
-/*
- * These are all unreachable given an alloc_pirq_struct
- * which returns NULL, all callers try to lookup struct pirq first
- * which will fail.
- */
-int pirq_guest_bind(struct vcpu *v, struct pirq *pirq, int will_share)
-{
-    BUG();
-}
-
-void pirq_guest_unbind(struct domain *d, struct pirq *pirq)
-{
-    BUG();
-}
-
-void pirq_set_affinity(struct domain *d, int pirq, const cpumask_t *mask)
-{
-    BUG();
-}
-
 static bool irq_validate_new_type(unsigned int curr, unsigned int new)
 {
     return (curr =3D=3D IRQ_TYPE_INVALID || curr =3D=3D new );
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 18:41:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 18:41:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070873.1434486 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujMas-0003n7-Cu; Tue, 05 Aug 2025 18:41:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070873.1434486; Tue, 05 Aug 2025 18:41:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujMas-0003lP-8m; Tue, 05 Aug 2025 18:41:02 +0000
Received: by outflank-mailman (input) for mailman id 1070873;
 Tue, 05 Aug 2025 18:41:01 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6kSf=2R=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1ujMar-0003e3-Pk
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 18:41:01 +0000
Received: from DB3PR0202CU003.outbound.protection.outlook.com
 (mail-northeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c200::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bb78e5da-722b-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 20:41:00 +0200 (CEST)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by AS2PR03MB9719.eurprd03.prod.outlook.com (2603:10a6:20b:60d::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.21; Tue, 5 Aug
 2025 18:40:21 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%4]) with mapi id 15.20.8989.018; Tue, 5 Aug 2025
 18:40: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>
X-Inumbo-ID: bb78e5da-722b-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qByu3emOOA7qyVbifXLhaRW1q28bincxGA1rgIZU+JZcYnNOmQW+eHjuuCCwuiI5Ba19RyK24LZdBDVEbZRG1zoc+S8qY3QKBhXXkNrFBSM7njV5+e0UHu4qdRZgCn1ptQ6KWBLJPhtqrMhX7gXimP24rIQtqzlSwoIVTMqLt3QmYC938N4uSkHo2BHxS/jw8sS4odS7FdKnYB7baVDmSFnIfqqWl2b4uwo4MVtJHR2N9eUYm0JEJ9np+qVLN7hQOf07dTaYvDakhk1YDyxZaHxtFVYxsPRY1qopxUMlUW/0PsPAFiByBYgCYFKMbFoJcaQmkLZCMkFW7tpAgiyE4A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=zB2KQ+scFytrUE7aWgUqxSHfQlc8SZRvYpZoxy+Fdno=;
 b=CebIJEm8wlcVPwZBiS9HqIzzpQqggWpx0Z5hzeXc9g2L4+HrvQrXBuR7KoS4s8AtmiT6ugl8+fE1DUX8gIMu+5NgB8MWtmz3ySkRG+qqMCCHfUqxHVNiduvkm5A/tI1pcEEeEUfWJZb79KhO1WuChWxBza0fLJhxV+z5GEJaUYUdrgSYsHffEbijLML5BHxaUpzpFV9raBoad/uuwL6lW9Cxc8b+muexKLZcxerTOLKNdx/7dd/kdKRrxMFB12CjRC4OB6a17EGG87qsUwoRX/cufK1KdUDs/5RnXnIhKZioP88SR0KFI787K+OD+fybmvbt0XtVPqOQjxtWshi7eA==
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=zB2KQ+scFytrUE7aWgUqxSHfQlc8SZRvYpZoxy+Fdno=;
 b=uxHjsOtKHHyZDmAFuD+9MsaJFdBT2XRn/uARG6QA9PW8Z03RTlUpMvFGLyJO2RmC8YDUc43aF8yHpgUUm4j8hYuY1dpAeb5bfBiuGtRaj8D9Z07Ot299InbDL43D1/8Lq4FXZlrR/AUmrVXPuKwBYIFlOyVHiJ0aGOMg9GtkOpt+GwxX7sz8VgGUwf9WdP4A9USu4cTAjP6mUq2BjRuiI30ZsvKaB+jv3Dw0gEEX/hFkjlJcCBe1UeEjCHDzdQH5B4BXmp7aamRUSpzOonp/OZndLOErtv85CDnP/HEgtA5Zvd3663Nr1YI7YKRzQO5Yjwv3JotJiZc/FxNI8Sg+Jw==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Shawn Anastasio
	<sanastasio@raptorengineering.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Denis Mukhin <dmukhin@ford.com>
Subject: [PATCH v2 2/3] xen/ppc: irq: drop unreachable pirq callbacks
Thread-Topic: [PATCH v2 2/3] xen/ppc: irq: drop unreachable pirq callbacks
Thread-Index: AQHcBjhlE9g3QIsKXEqpdrUXZNRhXA==
Date: Tue, 5 Aug 2025 18:40:20 +0000
Message-ID: <20250805184003.202839-3-grygorii_strashko@epam.com>
References: <20250805184003.202839-1-grygorii_strashko@epam.com>
In-Reply-To: <20250805184003.202839-1-grygorii_strashko@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: AS2PR03MB8907:EE_|AS2PR03MB9719:EE_
x-ms-office365-filtering-correlation-id: 6d8b61c2-a3c5-4535-6ad8-08ddd44f88ba
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?VAIUk8u+P5Q1mFy+kthC4K58QSYTsSsNSZIFPTjAmDKju8KlB2KKx2/NAU?=
 =?iso-8859-1?Q?+Ot/iUAkAoUPeNqWrvRe7d/3soOi/TKTW+Ijj1EngdKi/s0vcqBEDaCJOJ?=
 =?iso-8859-1?Q?SIxb6dpwkdD/5SPd5bO9f5GtTqBiHjh9aq6gKVE5k5bLvJhuxd/78eSgy8?=
 =?iso-8859-1?Q?78fe+M2V5VoxVxyHoyspcyjRhrkQLBvw1ShHs3dao0L1N2/rg2jl5UeoNl?=
 =?iso-8859-1?Q?aX/vxVoFDncMlAwg2SNH6fWN0x1kmET9P6OaITvP4cQxSTeMrMu+YdBQsR?=
 =?iso-8859-1?Q?fam6htLpzcE9fZnIVraX5rx2Ja28iXdX6sIcAZnkFRrxLrvNXukv67ylJz?=
 =?iso-8859-1?Q?jqD5dVkw6Xi6oPt8WmNPMyMNIVoxW8zU5zEUYeBTs/mWhIdGbMA7q73NUb?=
 =?iso-8859-1?Q?y+BySZ66VZTGMQVYw0LXKGfPQIaia3c5iDF6zAPw9XAuHL73m8RAKYnqNm?=
 =?iso-8859-1?Q?TZRtGpWFajtna1ibKtQrjIfKTbNCgkp83z2tj1i4w6d0+v7l+ApaINSmAh?=
 =?iso-8859-1?Q?ne3WP5lBKYtFmlP/UWHrE0CK0sdJQ3fZ8AP8+qHHErxy9S4+W+dG7dyRfU?=
 =?iso-8859-1?Q?lPof/1hZS4WKOfsB0zP+E/mFnvbHmk1jrk8mOpeneg8BFmfKD8O3ylByEQ?=
 =?iso-8859-1?Q?reUvz7fv+b1oHNdkdNhuXHemE9vyOjiS9QEe5aaC2suJ4RqhlWfOOgUQMh?=
 =?iso-8859-1?Q?mZbkJJ3Myx9IlgxGbRskecuy1GcqwCg2gdI4hW9NBWlfNGTSttfASUGl/d?=
 =?iso-8859-1?Q?2B53+yfATyERH6V8UpnwBLQlaqrArPnYaQWBBOgZqLPzclt0cEYImR64hR?=
 =?iso-8859-1?Q?FJJ6C+MoWkBgP+O6jQvVpFRvIKNaQH/S3VgellWhR0L1yZpMgDzZRNmiJQ?=
 =?iso-8859-1?Q?X+m3o/4afxkWvwHcIBMlwCrkBl20S3NybZLUTQ4LJPQUQa6eSKKcUOYIu9?=
 =?iso-8859-1?Q?1nbr++qe9FrQwErlC9/9KpjBL06nhYUqOhLOIWLJh14Me8IyYpVfMZn7Iy?=
 =?iso-8859-1?Q?ibcL1PLV1aKtLe3IaITLLzsVaM9A21iDiMaQ7EWNh/aXMvCbQ0rClRPw5X?=
 =?iso-8859-1?Q?kURcjAYkHxd+mq+2RjH8dSLfLe/RHEFY4nffiuXZMjCJII+mCXa37gOp58?=
 =?iso-8859-1?Q?buV5S/sulXVf2uFliuEC3EzilhnBzEFqG87NBNBZAlyqvP1/EST/0xsWD2?=
 =?iso-8859-1?Q?7OFU640QThxfDEuj+F5x7oRWAGBRKjx5o+3kzxSdgTGfClt31XSyAdiWXF?=
 =?iso-8859-1?Q?FOll8bWEzJM1o6jiHOSARyjcvOSdxN+qqhBn0Xwu2O67NtrUZ2TaX6ydOG?=
 =?iso-8859-1?Q?1oP0IvLZfc5NFC2w5+ZKW26BG/H6JoEHqklXob0tQzgt4j0PC+p4hl2Oao?=
 =?iso-8859-1?Q?7hTulIr0BY3ut/dMoBgiJVeqkR1V56pMcymCXVhdlAzNyfug58kOtyWxqX?=
 =?iso-8859-1?Q?Kh9cMNsU47gHLVAt61hebWiUlPIl3czndzFWBsCoVu5oWgzOJFe6lsMzvd?=
 =?iso-8859-1?Q?jX+kUABuemYjGKLMkooYAoClu1z7Du9OBVeb3vL6SZKA=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?Tl0n6PXgWDNw6hal7dKtIf9ushJHiKZusQp4TlKaVpWQ+Wj0n1B9gfxRhH?=
 =?iso-8859-1?Q?XORuUKHsCvNQWyfuXw1ufntD9xNOWCONuIPQf8FQ2wRfFpJhKHJw8jHmQM?=
 =?iso-8859-1?Q?Fccrj0mA+SGgphMu+tnD8K4Sx092Bwv9+zDlNPq5/JOe6OnnLZwXvNn5Cz?=
 =?iso-8859-1?Q?Zt/9m9b+EBJEXhpl3duq1LE39yA1+X0teJj39t4qskMm0ppPEI4MWJZfQB?=
 =?iso-8859-1?Q?csfW3er7el5+VlljkB6dd8EmWUGcn3GQGKdo2ShEZNX8RwFood1vuE1UQ8?=
 =?iso-8859-1?Q?LAiw7yDplmGBwU/FxXu3k0UyyjEpN8rWIIOZt+lRv6u77ZyFfKNmjXhrIA?=
 =?iso-8859-1?Q?PxeBtVqNn5zl/INkl8aDmQonxKsQ0QjTYheTUbVuVE+rK8CDDYC5lJl2DF?=
 =?iso-8859-1?Q?tzZfRIxryvUHoWV6jW2EmezGrW0BUlEcDTVX3KBDYJhZnqVNc8oSe6pwLg?=
 =?iso-8859-1?Q?qpo5kOFhKE5LxihKa0ZGa/IqoFgKasUL87O0HalTbAFamAZKwaJIYrynEM?=
 =?iso-8859-1?Q?RS1iEWIQlPabQrtLLDTMrL8wAldK0fQCS+JyHHRyX0UboPHr+kLw2fJkYj?=
 =?iso-8859-1?Q?t16anAZbYbEOck4kZFx5tu9AzuGmJsySt8smII0B1+oQK0gFBbf8+AZ2I/?=
 =?iso-8859-1?Q?EkMcujQas0++YE/PJP5c8urizzmDxj7+v81OgjLJ4/ro6j8VHLVGkLCb0z?=
 =?iso-8859-1?Q?hYYrmmmC6zwzoJha2yPngikGTOqu29d4InXIouRD1yNXxImtTf3uIIjYei?=
 =?iso-8859-1?Q?Xuo/nFw3boLe/w5YuJP8/Mf1/epDNGpTcCliFNALPYUQnzsXYnDKfJ4VT8?=
 =?iso-8859-1?Q?haBCb8HXYGWwaVD5fe9BEZ3ToaXAyw0khqj7CcyC+Zol2GjeA6BGeIslnw?=
 =?iso-8859-1?Q?fWS2Wg40Krd8n1/1JQT5SB+Bfz5pglia72Rt/XU8ri10LGXdBiJEHtyhdI?=
 =?iso-8859-1?Q?oXr1pvRLPmlJYZ6RC0s8vGjrLa+I26bXzAE/zUK8EuWCEdtBYfl/i4DqWw?=
 =?iso-8859-1?Q?vYXMTToWh1cu+XGic9QpxCjij1hzUh4oE14JDNcYFKoOIsunYE6gdBr+jJ?=
 =?iso-8859-1?Q?Tru0202rWAc1/kae+yR85Pok+1cI3p1+iZRiYiHX1DYmAmCC+lFz+a3D/Y?=
 =?iso-8859-1?Q?wPsOLvtbYp6j/Y/EheOAPLkpH5ZZ+BLgJkPI9zXRaw0YFi8KItgYkoTULg?=
 =?iso-8859-1?Q?q+YYJezeynFVmbV6f62VraMxMOySXo4lqHKaXd+ArZ6sm/EPNxwL+2qowl?=
 =?iso-8859-1?Q?LrmX2ER1GH3eZHxI4ts7nTJhDJjnR9zPll+gsilB4XS/Pu9kM19O8UL7iW?=
 =?iso-8859-1?Q?P66y54QFWH49mcdDdEiqdiFoI5Y96hrScNspngMpeGyvNJbZZmVM84Fq+T?=
 =?iso-8859-1?Q?Tc7SjQRlvVTHyp71kBN+hmsBzKAt7Wzjp8smNltdatdH3/zk7+sMJIymQR?=
 =?iso-8859-1?Q?Dfjvg7PEznt0/VxeF8prpOSVJR91ANnWdHjl2DSPxfR9GgNpviOvBm3/2n?=
 =?iso-8859-1?Q?/UV9+ADdiGCMnOJ/oZP2IaqRswa0Vb0MlNGe/Y5CrsHgzcEXtMMpmNMfr2?=
 =?iso-8859-1?Q?7EptV//NZS+0rUhiGlsqAih3ki82TemRi55J7ElH2udWp1xW7q+IOciqhZ?=
 =?iso-8859-1?Q?E3gtuOiZUZwPcOEUfoc4/q5gVQseZ6E497ZVJocBac0nx0vpU/v6uwJA?=
 =?iso-8859-1?Q?=3D=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: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6d8b61c2-a3c5-4535-6ad8-08ddd44f88ba
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Aug 2025 18:40:21.0006
 (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: GzTWbXlh1uecGRtza6qgW/tLmAJyk/GqJpXVJRB8vvZRvzSzunk4IAYl4XG6yuMqHPMMtH+ApL7qnT0gy+youoKrkEZKiUZ27PgbHJQajM8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB9719

From: Grygorii Strashko <grygorii_strashko@epam.com>

Since commit 341f271cf86f ("xen/evtchn: fully restrict concept of pIRQ for
arches with pIRQ support only"), the corresponding PPC arch pIRQ callbacks
become unreachable, so drop them.

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/arch/ppc/stubs.c | 20 --------------------
 1 file changed, 20 deletions(-)

diff --git a/xen/arch/ppc/stubs.c b/xen/arch/ppc/stubs.c
index 671e71aa0a60..bdaf474c5cc0 100644
--- a/xen/arch/ppc/stubs.c
+++ b/xen/arch/ppc/stubs.c
@@ -103,26 +103,6 @@ void smp_send_call_function_mask(const cpumask_t *mask=
)
=20
 /* irq.c */
=20
-struct pirq *alloc_pirq_struct(struct domain *d)
-{
-    BUG_ON("unimplemented");
-}
-
-int pirq_guest_bind(struct vcpu *v, struct pirq *pirq, int will_share)
-{
-    BUG_ON("unimplemented");
-}
-
-void pirq_guest_unbind(struct domain *d, struct pirq *pirq)
-{
-    BUG_ON("unimplemented");
-}
-
-void pirq_set_affinity(struct domain *d, int pirq, const cpumask_t *mask)
-{
-    BUG_ON("unimplemented");
-}
-
 void irq_ack_none(struct irq_desc *desc)
 {
     BUG_ON("unimplemented");
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 18:41:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 18:41:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070874.1434502 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujMau-0004AS-LV; Tue, 05 Aug 2025 18:41:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070874.1434502; Tue, 05 Aug 2025 18:41: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 1ujMau-0004AH-I0; Tue, 05 Aug 2025 18:41:04 +0000
Received: by outflank-mailman (input) for mailman id 1070874;
 Tue, 05 Aug 2025 18:41:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6kSf=2R=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1ujMat-0003e3-7y
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 18:41:03 +0000
Received: from DB3PR0202CU003.outbound.protection.outlook.com
 (mail-northeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c200::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bc4ff72a-722b-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 20:41:01 +0200 (CEST)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by AS2PR03MB9719.eurprd03.prod.outlook.com (2603:10a6:20b:60d::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.21; Tue, 5 Aug
 2025 18:40:22 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%4]) with mapi id 15.20.8989.018; Tue, 5 Aug 2025
 18:40:22 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bc4ff72a-722b-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Y2qRbNHafGyOJ0Qq1wkrIAYreKAczjS10hTcwPHpbpUYWjrO552wIlpqMuTlRAxQKDAbOLjRrQFnThsWq/2vil6Vls3lbgMS+yw1MIM6RFkNawclUos20tHxImXc7lu+a2OqeGxhRoDlAlVIKSIo3FalWFprMWcr40PsZSp4Uj1tzBAK6tXMTDwBW31UZdoBQGrhbAVy1vo/l+Jibq9MyyaVQJ8zSFtRd6JQBmjE71VXLeMEBeZ0iYE+NsLTpVIWd4K4rWeymyNvKWAIZvqD8OAIfcl/DyX0/EoF8SaSNnlDh2oNOQRDwpdI/45utv4T+eSRoXv6/EqB6bySA9h/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=LElp82G94vVCAKhYOIMf2khf0EvixVKSB+1fEMlwrws=;
 b=ylQbQ180BSwSUwVqDDmgfRpo3EUdaD2Gvc1Q9HRJxnQXhc3I2DzWqPRQyLHmFw6kI5gnLrgib2jbAOlfRqeD97Eb4bq2DxgSd4ZTnDlSBGcukBGH/HnTKV4tDAsmZM34Xmx9Z6nwj3kqjOyqTlz/s6Lp3BpEr0ej6JAZwPiinGPJqwfwRxJrsT5azd8hyjGkogMdp3oOpwf+J56pYlj7qyAp9Y6itNHllnEWov4OZlKM2nRjh4+DhVeewbVD7ENxHg9nJImfXmJRPPjSKgyrhVm3/1STmAPgDaRc4OEnI6UojOgX/p/57oKIsSMYHEZhGBz77W9pyim6n5rDt7MI3g==
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=LElp82G94vVCAKhYOIMf2khf0EvixVKSB+1fEMlwrws=;
 b=BNV7USpeVO5SOqdmy+K6Pd8ZNsTipqfg8FY4WM44cXpM3hIJaGiuZQtnLl0kQO0vaizBFKN5QP8pB8iroZx5x3aOXc2wJR6J+uIVPznDJD8o6Y/5ejb6Y6/53TthqUIMfuay8MtlxsUV6GB1JNtFDucJBWuc9VIhotCgokfa/fzloiXgJCrGVrn4Wbq4mX5Junn7O29+LZbUV97EuF7UKq8V4/gSCBMSCVPRUZ7qhR8MA3Q4qShU7bI4l2m3KiLgYANC8Uj+bLuFCuIm7/yn4FKvKnGSK4sunnoQXl/uCUJZvyIYxIJ/30MKWRfR6FvivG8eblwoWLTbaXbtivqVrQ==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Alistair Francis
	<alistair.francis@wdc.com>, Bob Eshleman <bobbyeshleman@gmail.com>, Connor
 Davis <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Denis Mukhin <dmukhin@ford.com>
Subject: [PATCH v2 3/3] xen/riscv: irq: drop unreachable pirq callbacks
Thread-Topic: [PATCH v2 3/3] xen/riscv: irq: drop unreachable pirq callbacks
Thread-Index: AQHcBjhlQO0OorApKE2GxdYJHoRWDg==
Date: Tue, 5 Aug 2025 18:40:21 +0000
Message-ID: <20250805184003.202839-4-grygorii_strashko@epam.com>
References: <20250805184003.202839-1-grygorii_strashko@epam.com>
In-Reply-To: <20250805184003.202839-1-grygorii_strashko@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: AS2PR03MB8907:EE_|AS2PR03MB9719:EE_
x-ms-office365-filtering-correlation-id: 0cc8db13-9a66-4fa1-9cfc-08ddd44f88ee
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|7416014|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?t/yIeZC2UqE+W9xNyAsYEdXLQM3PLL507zjn3BVGCa7Jbb0jf5OTcR5Hyg?=
 =?iso-8859-1?Q?m4YDzVIRzZnAhCzotcA6PmsO+otsFefvxR4K/EYSTIIrhPLsNe6GyYv3ri?=
 =?iso-8859-1?Q?lh41yjtv7ycsQ1fNTpEtZhUhILxZ4oCyjl5PDuHa/EbbhFKGElzIivr2Jm?=
 =?iso-8859-1?Q?HqBSTT2Bt4QEtliPeWMWm9R7IuxApzGEuK3E9pOHOQn7BoZbjY9+ZYWezx?=
 =?iso-8859-1?Q?6koIbu3D37/93AmZkK57ua1dp9DzOXU+GoAwL9sPhTjvFmwyY2gOfwTWNG?=
 =?iso-8859-1?Q?WUNp+4/zsg7Xl/0nR938dnqSEtfI/t8Kv/pUcoJSri2bDBb46qHivyjLZt?=
 =?iso-8859-1?Q?NoI07dHrAb/NHL590VOmjjunS+GY3hoZeWw7SIA5BkoZkimeUAx+PbgiP/?=
 =?iso-8859-1?Q?c+cDUp/qS7VA1HieGKX+Zzc8i2sFdl4FG5XErg+7ReLcKS0wSgPTOi5Dqk?=
 =?iso-8859-1?Q?zIhUAMzLjpFfzHtgps0XO9DR381WXbg5xJKRjasT0EYrYXWxlMPAz/MKQx?=
 =?iso-8859-1?Q?WD/4TMB7+f5yaKqXiiG01LO0LSDd768QuAaU2em7rANCJcZOu83E3ObK7x?=
 =?iso-8859-1?Q?XCGS+SC4iAVCesfCv66tQKdutkBwLeUDpjQwmKYJg7BwvQr0l4QSsw+n+Q?=
 =?iso-8859-1?Q?FFGkOQoA6qeVT+8Olq/ijXIAGgmwjsjCqJUgmwtGN3Y4kPHhhAXZjKO0Mm?=
 =?iso-8859-1?Q?nCZiF5vBq5ou0AroyWZP7GufHNYEooIRoxvaBzOyYv47XQ+dNV84CgJTU1?=
 =?iso-8859-1?Q?LM8xd0ozp7IseRwN0PJH796LbXS+YtxDsbdeJTsaUlWjrVMH9PuP8YTyWm?=
 =?iso-8859-1?Q?K7bu48zRZXwMB9I6n02F5wCVQzzSMqlT5G0pBat+l9p8YrChXj6aI8XLWS?=
 =?iso-8859-1?Q?Z61v192JFluZelil5tTTIrOocLwcnjHN6JlMFAEHMIuzgEXBHMNNyQ03L/?=
 =?iso-8859-1?Q?iK9Gg/A+SYKjn4hrI4ySQD/rSTWEiT4cDCZ8jmAorTAIb3ogSgKgh+/yPJ?=
 =?iso-8859-1?Q?exmLhlsb2wNfj0uLwQFkKjTfoxYjziHvjmma5Ulc0YpHu1SbjX4UzaYeJ+?=
 =?iso-8859-1?Q?lyelFWh8MrF93ERlJcx9GVICNfUnY75sZvTQbSjftBIcR7muZ0W2BjY7PA?=
 =?iso-8859-1?Q?4rYq80QvH4obuE/xytDKwLD92BQ0eGmdRPulcfF2bIzpYsnTTyMMfD5I97?=
 =?iso-8859-1?Q?bS9EdAyDxwVxIjrbcEl6IPsC1agGVmH/9Jlrrev9B2EOQVknHa2E2f+MXx?=
 =?iso-8859-1?Q?NZ5EVrbRw7BDUWiLu6aO4/8nmge79dqqKeYRtHSmux8J0mWr9hkytktifW?=
 =?iso-8859-1?Q?IHGrs2wUpJMCo9U6PLnC8hl2FOk49RRhmP0QIUTWqcADUlqqoermCCYhMw?=
 =?iso-8859-1?Q?EDn424Y7Df1PnNPHYzQ+9V6ouDWufuFmy/qR0ZvxfZdEMw7lo3bHaXrcW8?=
 =?iso-8859-1?Q?VDfBAVK3yYDfHnhkC6ZWbuERabtCEk5Rs8fo+ydAuiS3WW+v4UBhRk2NfM?=
 =?iso-8859-1?Q?vrZJV8XeT6pKZElEtDO7kK6brwMgopoOsRq8Bo93ch1Q=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?cz1xjq1K1dkzChI5r1R61bVwzbGsQSprmCoJcD3wz6uFOjgOzAN+P9SUES?=
 =?iso-8859-1?Q?rD8lx0EK5Da9pGCarM84+lQwFxskrd3b2nv79TJZwW7OfajEqAjpoeunOm?=
 =?iso-8859-1?Q?1UcrrEKx42zwpsagsFCm5ELX94CQAUjUiCxa346J9Y0Ui+MPwmVwj+/WO0?=
 =?iso-8859-1?Q?es5DKg/ygEfn2AMAaEncNIHERPG4PtbKXQibA06iNVmSJJ30Fv/nlmXSS6?=
 =?iso-8859-1?Q?OcxTePJg8px2BfjJM6MGfYrLLn1nNsOJFSuS9e4kMmotRpinNiXaYevUTl?=
 =?iso-8859-1?Q?V2MjtJwtwSRYiotcNcrriT2ePZdRZ2d/lbj9Y4OjqeZbqtNsmbf27rlNPo?=
 =?iso-8859-1?Q?W1+mIbRHTptPhAR4A3Rop6UqhXUxzaNzTNhvw6ny7iTiDSA70CnfxvTbiI?=
 =?iso-8859-1?Q?mIvG4XQWzD3SgE0kzNXJTmXNHr1LWO25kKnJxHKce1V2N54mI9nMGtr4qD?=
 =?iso-8859-1?Q?vttnJhESKEFZrG2gEPbJ4lPOkE9x4CtzWdyuRTHeNrA5nP+rrdmp+pwxfL?=
 =?iso-8859-1?Q?oKzVaxDXotk/Yf9z1SX3P7fy6cDc+pnH0QGbjhrNpduLHJ80vQqrIm+Vzj?=
 =?iso-8859-1?Q?cvjqE4kyRetbGKCfj3lZ9l4Z8SGrg/+Fa5acwBKPdh9ya2+bQfTBwPeiB9?=
 =?iso-8859-1?Q?uwgT9vMC6jR+WuZlyX50/h/Fg6fSbNiDEgOQXLerYrCWQ3POzq/n0+hN/Y?=
 =?iso-8859-1?Q?eJlcQOiSYY6MmJBLfTU35FiKifyPc4nj4e0dlhK0n65s1s3LUhgJPukCRl?=
 =?iso-8859-1?Q?YIWcUc3I+QgYjr49+3mO9Vcau6ORBsFMabx5bpXzkmS1zywPMgEGHPRtjG?=
 =?iso-8859-1?Q?3NrzpY9u9+mT3ajHV1uQDJurnyRSkJq9OubZPIPm6CmhavvFyDXQdOUjoU?=
 =?iso-8859-1?Q?GyEK8pTIY72dM6npx+w8PwLrdUDzXN98+U2HQeXnGhAIbYdHWR2JvEffap?=
 =?iso-8859-1?Q?ZCr9PGu8ZoCFgL5/Ve7/ZjZhT+HDvguFV05vhB3O2PbTrNzI/O1Ro5WltM?=
 =?iso-8859-1?Q?gkfDocYLmfklQe8o0nz8Jq7wtnohtgrggJkLF6oM1E9weO0N3JcJjQKJLY?=
 =?iso-8859-1?Q?SrgRdjytkDUtTFyOEx+2RqvQeLP6/kWbWEWhunoN1+NNbcTFtFqhM5bQqk?=
 =?iso-8859-1?Q?cYqqt7MGykvbKnZhzMadEl6e+JxD3vH06FBtCrdZdIM0PXmONPUiFhb5DU?=
 =?iso-8859-1?Q?uIlQbz8yTCD4r20UyxkadTL8LJeNmNo7cHqWomXQnMy6EXrJeq4ZEI4f17?=
 =?iso-8859-1?Q?rwqW35T5+QxrpJfWR/qcAesvmRDhtLgxh5uM6ZxaORSlpjBJmcx69mto62?=
 =?iso-8859-1?Q?KojXEvvJoW3XjW7nqx/kiQ5cxOpqYuSWIbDY3TUnC3V93GqjAuQh8Yql/z?=
 =?iso-8859-1?Q?+qghs+O2ldOyRI4T7raMWTv/ae/DpUroZBAI1pJwxPi7qM1G1Rgk/ecV46?=
 =?iso-8859-1?Q?EE8XNWT7Hb3y7WdpjHSYDyid6lGXBF30Ej00Jrvyj7IBNivGZp0+A1/oeM?=
 =?iso-8859-1?Q?RGBqPupavGcyGasdaZK2Shdb9DucVFRVXQpX3rwI/2NjQybL6jrf3zagOT?=
 =?iso-8859-1?Q?IKW3BjKFS4ukSdHGnsqoNHqcC68zRhXMEtAGMtLuSzb0E5h/DDKFSfbPip?=
 =?iso-8859-1?Q?sc+nlmI7uIoicp1rC2JjrQWfdssO5QC6X7s2iMGLi1fYKCJvb43mv2Qg?=
 =?iso-8859-1?Q?=3D=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: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0cc8db13-9a66-4fa1-9cfc-08ddd44f88ee
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Aug 2025 18:40:21.2865
 (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: /c4annAsyGcyrfBdgHYHfh7OUPSahH6894Ke9kUaNM1Sk7LoyKgrXDjd8UG+Mq7i/ZHuXdG1oCKQH3bN7iSeBrBd7BfMMgr77Qe4f6tyyWU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB9719

From: Grygorii Strashko <grygorii_strashko@epam.com>

Since commit 341f271cf86f ("xen/evtchn: fully restrict concept of pIRQ for
arches with pIRQ support only"), the corresponding RISCV arch pIRQ
callbacks become unreachable, so drop them.

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
Reviewed-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/arch/riscv/stubs.c | 20 --------------------
 1 file changed, 20 deletions(-)

diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index 8918cebf35c6..1a8c86cd8da2 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -82,26 +82,6 @@ void smp_send_call_function_mask(const cpumask_t *mask)
=20
 /* irq.c */
=20
-struct pirq *alloc_pirq_struct(struct domain *d)
-{
-    BUG_ON("unimplemented");
-}
-
-int pirq_guest_bind(struct vcpu *v, struct pirq *pirq, int will_share)
-{
-    BUG_ON("unimplemented");
-}
-
-void pirq_guest_unbind(struct domain *d, struct pirq *pirq)
-{
-    BUG_ON("unimplemented");
-}
-
-void pirq_set_affinity(struct domain *d, int pirq, const cpumask_t *mask)
-{
-    BUG_ON("unimplemented");
-}
-
 void irq_ack_none(struct irq_desc *desc)
 {
     BUG_ON("unimplemented");
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 18:47:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 18:47:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070891.1434512 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujMgg-0005Sl-8h; Tue, 05 Aug 2025 18:47:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070891.1434512; Tue, 05 Aug 2025 18:47: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 1ujMgg-0005Se-5j; Tue, 05 Aug 2025 18:47:02 +0000
Received: by outflank-mailman (input) for mailman id 1070891;
 Tue, 05 Aug 2025 18:47:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6kSf=2R=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1ujMge-0005SY-SE
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 18:47:00 +0000
Received: from AM0PR83CU005.outbound.protection.outlook.com
 (mail-westeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c201::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 91c20ee2-722c-11f0-a321-13f23c93f187;
 Tue, 05 Aug 2025 20:46:59 +0200 (CEST)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by AS2PR03MB9719.eurprd03.prod.outlook.com (2603:10a6:20b:60d::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.21; Tue, 5 Aug
 2025 18:40:20 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%4]) with mapi id 15.20.8989.018; Tue, 5 Aug 2025
 18:40:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 91c20ee2-722c-11f0-a321-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xOEVOFs0rGtKx0nJ2SGYWjIOUBponGeoo4ceirBxBWNFOvBhy64t+QY5WIgz7idcxvtK7c2uWPhrJTfQ/sISLP52UUNkr6uVvLJtC56iMRz65byTQvKcHcepekRYesTaMyELGYzH9YGbNTv1our9pjPJ0oBZaYnb/sicQKaFLdNGoZQ6OebjBCSGf6NnfRQNnHY5M+fnPbl7b5PSHWWgzgp6Ee3EX5b9qzrkciXSYek0knj1ihrW33oBS0HsAkkmXzDZ9zI58ALZ9jW2pp76lLpAhzCSs9RlJTkCUnMlnFh55kQJTznMKdKOtPaasay3fD102eFJtvhHdJTBH7A1mQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Xxpuxyu0g9+Fu2b++6hLldY1aOTngd3gJou/wkyvr+0=;
 b=CpUXxVuZAhqvFG7/tnGSCVJzdgjSvbqkaG2P18tYL+ZBQiwg0nzypxHtyqU9hOSXr0u7KDNdHFRpf9l2F/NRBnq6Nhg8aljdnXWEXweGN8F2dmcUF7SxdmY/Qafz//KCy8OoWVEEVgFNbCdH0+Ux8mhpMOozv1nToZuZ6PanngD+dKiObcsmIRtlW2lBh9cRfhnz5n7zTQzxrqhXfc+5bM3nPYWFOetogb3gkQf0aRty7xNFzeKuCSXQg93HYC1xcDgXU/40RjdhCYhZknHxt1mI/aOMQxOfqMFLTylr7ONNBLKho4PPEjX+4NhWZXusKkkHlMB0RoHh1hz2coGhcA==
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=Xxpuxyu0g9+Fu2b++6hLldY1aOTngd3gJou/wkyvr+0=;
 b=bd8dNFy6JKPs93uaIT2x6xxsng1429cWgaegj8rH5KiToLZxwUvm1jFHgTVyG1iwVV7BB04kzt6++Erdv612PoCacJCsDJqNnRHCzyxcGA833wa3h3QrFIseejcHbDEQU2fz29p/s2uJdvzo5XcE+8PkELjOjC0iNo3St0BBSjsiboWl7AbtaqU9cf0kLhIAazUdyhQBZQqyM4TPyIUUj0w6U+mc2dAtJvbhnA/D/Vrl13rm8yps/uXi1C+Xs4yW/8OyAqg0dSQsDpjMTS3OSn2l3XKaUvHJ3v+ZsmPp98WDnxlWRqvQWm+2qXvQo5jPLHZtyoZlaSnjJ83fhsqsfg==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@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>, Shawn Anastasio
	<sanastasio@raptorengineering.com>, Alistair Francis
	<alistair.francis@wdc.com>, Bob Eshleman <bobbyeshleman@gmail.com>, Connor
 Davis <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.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: [PATCH v2 0/3] xen/arch: irq: drop unreachable pirq callbacks
Thread-Topic: [PATCH v2 0/3] xen/arch: irq: drop unreachable pirq callbacks
Thread-Index: AQHcBjhlEY+RVNk+sUWW4VV5tSaw/Q==
Date: Tue, 5 Aug 2025 18:40:20 +0000
Message-ID: <20250805184003.202839-1-grygorii_strashko@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: AS2PR03MB8907:EE_|AS2PR03MB9719:EE_
x-ms-office365-filtering-correlation-id: fc36a8cd-bb93-4127-af40-08ddd44f87c1
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|7416014|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?c6xWHsqRQnAL7jw1ebzxrMko6hKrnJ5zJLt0mp3d/gTwjVaPlyY7IlNjZj?=
 =?iso-8859-1?Q?fzlgLJ2jIldUKFu3ufbAUhyZad/Kvcu+xxv0cqRNYJKRquCGqgp+U46gVc?=
 =?iso-8859-1?Q?dgNZT7hfq5F+kJZWH7pMPUqDeQULMvJZ83p21bSmDNQQVXGrn98kgNYI7U?=
 =?iso-8859-1?Q?95Y50rIGMHuPgDbQNLyyvNKWxEQ7GyWl05WChvBYU5CY2G7vPeLrYqn8zA?=
 =?iso-8859-1?Q?ouRfc2NRyGlH90peSojMGJ2j6CTuqzvSgW+npWBxuhOOlk32BR8lrk+GNn?=
 =?iso-8859-1?Q?MqBAAsrW7OIXIwH92IsnR3frU69xLz8Tr+bsnevr5+dVH8NLkIxdzBVjaw?=
 =?iso-8859-1?Q?yaVeXmsrQWv1lpcwMtOcje4I5pQ/MU9VxD1F9zpzke6daQIYyqYbvj0wE5?=
 =?iso-8859-1?Q?YuoJ/QM9f6UgeolAjTYZ1JeB2V7rKXut03v0tvZhW/uNLOyjlCSXpR744L?=
 =?iso-8859-1?Q?z0nowarP4i72vQoWYk7CO3zggW6hhWnnMbKHcJjg6DqZRc06aYoMqvQNFD?=
 =?iso-8859-1?Q?ZGINgIyl+KQ7TyWc8WWeoEfTkuyOq3RiqlTnf3i5QSS3m+iXpznrGhGjqz?=
 =?iso-8859-1?Q?SwwNvIaoOup0pyyfGssezHte3gQW+erRQQYv2OI86gutyKq2+gPVrK6dZr?=
 =?iso-8859-1?Q?ivCCrw58emAkcjk9NCdWiLM2q11AV3dIqOgp+Nz82Fe9PdkKiRHWaYLIVs?=
 =?iso-8859-1?Q?XwOqPYqSVMUtRJFfIOx7+RXta9X+OcB+0MuynlUV0BSRd77VcpGtXz+SaG?=
 =?iso-8859-1?Q?4ij1W1XryYBt+qToa+KlBNgqByVIjD06RJrnCULVJ9WqIWiyqW+MhY7SiM?=
 =?iso-8859-1?Q?HRHrySiRDhh23u9hhe+WQcjYPwrDGf2+/HXn82VoHzS3XN7MT+ln5XbYsx?=
 =?iso-8859-1?Q?XLkxjcxghjHzqs9AjouZQBDuOKInxS7DbGblvdT4WAE9zlrKZieaEHlFy7?=
 =?iso-8859-1?Q?IjsP+Sne0/R407J9tNoiewbMgB1Qd6PYCUmIOgyd0JaqEOz6ACIf/jV+d2?=
 =?iso-8859-1?Q?jURduueszqOMqpRM97sfp4BGTgpt/oduWhDYBPPjzvxpHN3FLea+K1pKxx?=
 =?iso-8859-1?Q?9PBGgbKTXk2nv2zALzVQXwIffEKu3+eIwiXzUNj+xwZB6TVe5FZ6sY5CUj?=
 =?iso-8859-1?Q?Y2Fs8O70o82NNo1cSk+gFamS76XVfloRWYq7XX/LnTm9TqY+Hw5/jD/SnS?=
 =?iso-8859-1?Q?M1jMnXw4cTb0vcjcKbgjxKzQ5jpB24GvWue237+SlNHgjsf1kZlmp5PPdw?=
 =?iso-8859-1?Q?EuQgFH8jrDvxEVfs4R/4GAhJy8iNXbo8AW+nWInVt1wIo/it62v4aYnx/t?=
 =?iso-8859-1?Q?M5XQhMl48SJgBKN1pK7wRUzVmsnrzpvXRSIQTPQ8ZoE7XM0DZwPc6sZBvT?=
 =?iso-8859-1?Q?WCUrtnobJBOje8/B/mee3UvLGU2wUG5t30Wl0IatrAqHcwMJw7LItEL+Co?=
 =?iso-8859-1?Q?mmO9E2Is0VZLcg+i1eUzWoC9IjcM9LyKJxS3smvbAiTkan+pNnZN79N8OO?=
 =?iso-8859-1?Q?II7yWV2iSazwBKdoast6umUxFOKA/jVdj9OJg+oXX7VA=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?fQ88duweTGfxSdSWahM0AQGrH2VOuzC8Fk+Fycq1vpqk75tKeYglbw+w5/?=
 =?iso-8859-1?Q?nVcmhD442PMpqc/86xRZHeCMHpK3byPFLU1PddS/NW0oJ11reJok/3Dtzv?=
 =?iso-8859-1?Q?IP9PiNzQ8ZsqawxZ9aScULEWSjT0VWRMKm36pvIeqhvBumLZphWdoxRxP3?=
 =?iso-8859-1?Q?TiHymyO6ABzHWqLKrza/Ot9axaoEYflWf9c7uix9oLf+xs0fm3b1Dr8sKM?=
 =?iso-8859-1?Q?UU53npZbvZBYcrT0vadFyfH/5SJkgn2xrnv0FmaOMqTn+PF0hjIk+qy+2t?=
 =?iso-8859-1?Q?03df35LGCHNwlarsJaNGidDPPL/E+oKMrC9GfqYuK65Y8g9wvFO24ig5xF?=
 =?iso-8859-1?Q?zT/USwSPyet7pqSHpoAJB+cosUkM+7MUxFxQUgSu0OD5aguVt//WQc4qWP?=
 =?iso-8859-1?Q?fFsJhOXFbJG4uYcAhdRqf0djVs23VeZflfX8EhYMdtDu75Mn0NEmL7ps9g?=
 =?iso-8859-1?Q?cJkZ+Y8zIf0Iv2PL+/BwSnbHxAX+6OmSj3+8IuDbo6kp/5m4gT2NUeuntQ?=
 =?iso-8859-1?Q?iZHMk+fW1iF0qayZ+gkTGlI4T7h+KanU8dK1moudtHKH6DBT6kKXXjs1/u?=
 =?iso-8859-1?Q?vg2KiKpurvTPhl/1q3Bh4LputVblLKrZc29cy1t7Ex1yW5r4m2R9cMCjUB?=
 =?iso-8859-1?Q?gH7TnnN7Q2uPbgDwpxhR1DNrJLboaMECMjDp5NTiPXNhgdKkY6P4clTCLK?=
 =?iso-8859-1?Q?7NDFPpHSYtOaQd1g0T+eHR3JcgzyJDdoWuKqVjLs4n9GO8z5I1wG5fqQj8?=
 =?iso-8859-1?Q?69iIpegVBf8ri+I+EUHykAGiXXsocjN6mr63fsn1D6DrKG+CV4R+MVdudL?=
 =?iso-8859-1?Q?CQXdkPf5Y0hN5bpR7Pgq1ZOIpEbv6pbFEa6h58NB3NYKK12b5ngD+nyaJN?=
 =?iso-8859-1?Q?OXSbHtfTFvzsqaBMuRr7uWzsJaufNQpCKo8Kzwbi1gqkhuNML0ZvOle416?=
 =?iso-8859-1?Q?8J16c6nl7MJAnSxp+FPyaKvyiMLg4rOC/U91rDtCn/Tnni8Dk1EfFuIXXu?=
 =?iso-8859-1?Q?Ehj6IzZE7jB1Q9WWrQC9nY8Ign4YNNf0WwVR+xkRDzhi6yCAAZ4yDcNuJD?=
 =?iso-8859-1?Q?+zIAvEW+tebFBFX5gvZFehXGBVjsnwF3bO/MnglUAFPCxj1bx0HEU52JCJ?=
 =?iso-8859-1?Q?KDqFsX1n0pW44C9lqc3/aQDnpa19844d+o+3use9jdqdrE1UAOALm2Z2E1?=
 =?iso-8859-1?Q?7Oz2pMHztsVEKz6u71JZKZQHeGHE58cWEDm460iR+3ImHkapp7ctv+Do8p?=
 =?iso-8859-1?Q?hzZAI8gMpz7QC3A0szUPAQimhiU5lrQSxkW5Pxc/R6k0MJ+s5a26sWopyN?=
 =?iso-8859-1?Q?60GC4XZc9/NpPKx98rPgd6ZzfNi8B7lvygMmpJwCOR7eBTM/zIm+Z/e5j+?=
 =?iso-8859-1?Q?ancxVsfGauq7HfHBjF9Appg/73yJU3OTEVoOJnJFmWEBiJ4cc2taeI2K2N?=
 =?iso-8859-1?Q?3HTQmw5/Ijgg3tgay1Xh/N1fo504kuaTe0tcjGyV4/cISvR0gC/ZvbjtTN?=
 =?iso-8859-1?Q?Tl39IRjnc2odJgqBy+btR0ZNSc6Xama7gMNiA0cDtmJxunCPmbr7zr582R?=
 =?iso-8859-1?Q?JuE9CELXfbNViJf7QP9aJQZP4CzFZO+WKL/sQOVHHcJpYozClzBpqiBl4k?=
 =?iso-8859-1?Q?TpVCR0RFdp0/6qN+USeFakZ4OLZFT/qsv37dkcLqShLsXzr45U8KSbJg?=
 =?iso-8859-1?Q?=3D=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: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fc36a8cd-bb93-4127-af40-08ddd44f87c1
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Aug 2025 18:40:20.0964
 (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: JRareoB5rwAerrtb19xvx7rcpIHbA2cqIxJe1bZv7phBjgMfD/29Wwwksd4OIZirk2vOXt4B1MVwFmkI0Nu2UTwuDzU+vq5MW1/4IIfmH1E=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB9719

From: Grygorii Strashko <grygorii_strashko@epam.com>

Hence prerequisite patch was merged [1] arch specific pIRQ callback can now
be dropped for arches without pIRQ support as those callback become unreach=
able.

[1] commit 341f271cf86f ("xen/evtchn: fully restrict concept of pIRQ for ar=
ches with pIRQ support only")

Changes in v2:
- reworded commit messages as requested
- added reviewer's tags

Grygorii Strashko (3):
  xen/arm: irq: drop unreachable pirq callbacks
  xen/ppc: irq: drop unreachable pirq callbacks
  xen/riscv: irq: drop unreachable pirq callbacks

 xen/arch/arm/irq.c     | 29 -----------------------------
 xen/arch/ppc/stubs.c   | 20 --------------------
 xen/arch/riscv/stubs.c | 20 --------------------
 3 files changed, 69 deletions(-)

--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 19:00:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 19:00:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070914.1434522 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujMtg-0000AQ-FK; Tue, 05 Aug 2025 19:00:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070914.1434522; Tue, 05 Aug 2025 19:00: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 1ujMtg-0000AJ-CC; Tue, 05 Aug 2025 19:00:28 +0000
Received: by outflank-mailman (input) for mailman id 1070914;
 Tue, 05 Aug 2025 19:00:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6kSf=2R=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1ujMte-0000A7-Pb
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 19:00:26 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6fcce49e-722e-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 21:00:21 +0200 (CEST)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by AS2PR03MB9345.eurprd03.prod.outlook.com (2603:10a6:20b:592::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.21; Tue, 5 Aug
 2025 19:00:19 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%4]) with mapi id 15.20.8989.018; Tue, 5 Aug 2025
 19:00: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>
X-Inumbo-ID: 6fcce49e-722e-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Oe0UwB3HQLxorOoxNHmp9ns6LuJT3Y4dUv1jRF3UtpMBRtTRTzjVh//MizSFYb3rtibsnGurrXW1D8z6kF8II9wplbyI05502xNS6VFATF4847L5L+eVMpXq3goSi8VOLyLZgBKqRUzrlQ3lDKcm0iC2zDoBaodP0iuJoTCTm6iTE5WWh0cF/MRbCkowIx2+PsNuziuHC7cch27udlcOFkBqOjYJHFGfHVppFU33RyExc6uKMvsiB61bRfie0l28diItouChNM7Ja04I0339jI+CIuGTmMOMXyfBS5tOcsRy4nyX8tm+tqzA+2tOBfRVKSTKB8iexBmpNRBna3VftQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lOTYkfNxKLpeG0ARDLowPGb0KiB3tfLrFWnPYBRiem4=;
 b=r+JNInC40g/cLM+SLqxJ/s6+gey/wBHigbkQ3e+YFyLyIiNDvHgXkoPSrIetUJ4OcRUYxjFuP6DW+dDlJElobOzXpPcUYdN1plVwPeaqxdPw9QSVcsp07suVsPqqGUhuhRsbwtmoR4EUImsUCDBQd7LJgdVOZ06wUFlfzm63Ceqz1hdlV767AA+XQPG4qiNNLaO9qGqxFr2Wj89f3hx+4nUHRRo/6Fi8sOf/UJDlT/jJ8JZxvjMukzJc+ZweCx+jn7aGox3kohEHd27Q+H6r5o1t+gBibj4O2dnV5NVfcOpCxzYdX6XNG1VEDn/neVcEo/CtBKSqSW/DgMHCjXUTqg==
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=lOTYkfNxKLpeG0ARDLowPGb0KiB3tfLrFWnPYBRiem4=;
 b=Ehu7wh4aXDnKdhDxh/uj3PWwSLQvjNbvAsZ4RAsnz+HI6Zr6FvkqeIm9yL/Kn/CwcvrMcTJJFmqSczjl6Dn2fN0F+mAEyiKJQZ8YKvAP2W2WWeOdnlMsaYhTe5SYkhsMzgwboagW7B00eojOb2FstL03nY+ATNj9xQcNe0Gj8b5P0oyxJIyE90AuMX0/pC1B4Vxcjrk9vlo71rz+niMbgs+s3SeKDQew/6L5lA+A//IGfIXH7GnHtXn9Wpplaw/KNhoBErteAgoF4phqfZd95Auw1xLf1NZ+16wXPxSumt+2cleMbggscUwmpqpx+3NyGgl0lw+PNc+XqhjY21OH6Q==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@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>, Denis Mukhin <dmukhin@ford.com>, Jason
 Andryuk <jason.andryuk@amd.com>
Subject: [PATCH v2] xen/dom0less: arm: fix hwdom 1:1 low memory allocation
Thread-Topic: [PATCH v2] xen/dom0less: arm: fix hwdom 1:1 low memory
 allocation
Thread-Index: AQHcBjsvROW9CE6cS0mI5regAJMadA==
Date: Tue, 5 Aug 2025 19:00:19 +0000
Message-ID: <20250805190017.209711-1-grygorii_strashko@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: AS2PR03MB8907:EE_|AS2PR03MB9345:EE_
x-ms-office365-filtering-correlation-id: 305bffee-1589-4ed8-fddf-08ddd452526a
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?HUuT4/R6iPv3AM1PRD9rkrkpTc5EqSIs+u4m7szHntmduFD2tiwcKt7upM?=
 =?iso-8859-1?Q?FzvRB7898Ld4srhK+TMB3XLwlFjmyyw0b+nlwLH8zHxs8RfBlUzAqhgKvF?=
 =?iso-8859-1?Q?dB7G44sqJorEnK9FbisVqlXnCddwx0bhYvllPszSgtEQRKKKKVHXUqj5e3?=
 =?iso-8859-1?Q?3gEBxTwrxbpIpKi2h/vW3Iw74WfAJMYaMxGZ2ZzbAHB5d4TG+Q/kXVgNRt?=
 =?iso-8859-1?Q?ltUuFo/tTFR0e8vAaWXgnoNnCDL+ML4V0Ifta8iZ4ZeM0mJPmKcuXpTcaz?=
 =?iso-8859-1?Q?zSdcaJD9CrKuyDDBLyFDMwBkbzGkUV+nXPjBis+UyvpdYLPrkrN5jk8Pt/?=
 =?iso-8859-1?Q?LvJqFeORBm/pHw12fFgM2/6pLDGSJr6dHYh9rlRLudB0IJVABZ/dDlyBbt?=
 =?iso-8859-1?Q?cXhakFc5lQT4Rjq/k/ZImbdVBhB775q2Rg/H9n18q5751zNLfyWchQrKUZ?=
 =?iso-8859-1?Q?V1tf0nABAe505EZQvX11nQp3LFe6410cfXA5FgHd3mJ80fMU5XLh1tajsm?=
 =?iso-8859-1?Q?nKQITLUFeN2DWNE61B3QWmVbsT9LzAcu3gdp7XwehdIHcSTRJZNjWWaUH+?=
 =?iso-8859-1?Q?Lqz7oD77M+egL6wOruTdCv5wZqT7HoUWY3F6i7RaHAmQLwOXWGgCaFLdqN?=
 =?iso-8859-1?Q?s5+8Z5BZoKIJyszCdxZs5H5sfzkSwRiQFIa0aHTci1NxOymxsLIo7s3s4o?=
 =?iso-8859-1?Q?MkLOyqlKgAWL0ZverC1MckXb+O/AROYndRI6NNY8pzn3ABO9HnnDePHNjc?=
 =?iso-8859-1?Q?jcFqadrEcHcZJ4CbnQtpLJeihByUWnOKikGpWLMwmj4AO5ZOFOGkiyDxuc?=
 =?iso-8859-1?Q?B+a8YTHCr4yDbVKsrHB8fFpXI9sGoycCLQIellYJ4mvLIHl42XDo03Q9rH?=
 =?iso-8859-1?Q?cAedcCagXSeZT3r2a1I1ECGAGVyv6gtDU6m6wAUO7ZQ9JgnJ7ZUXLPlrGe?=
 =?iso-8859-1?Q?8wui55sr/bBWrGouOcue4qQ++Q7Q0f1uD43SsZ4kA438ZOoMyHvh99OBE6?=
 =?iso-8859-1?Q?4Rot/vgRfjLt+16+nBvNMQA4SHURQlWAFtfhfi0C2yOvd79JPtPahjr6BT?=
 =?iso-8859-1?Q?kglzUoiTlPDMg1/Z1GtQSLILyKYRvMWe1XuCQQ1MEyI908SXlkXnq2fNdo?=
 =?iso-8859-1?Q?QVGqiz5EZdSyQzFFSBMi31iPAk39nmJwgUo7zsQ/Dt/14NFIUovFivcnUY?=
 =?iso-8859-1?Q?z8K/Dwi/yK+JB1tgzQeduW9Xf98kAJUG7/mLOlxIH9N2HnWSlbk68LPI99?=
 =?iso-8859-1?Q?KqxxByOVMaoZSNt9n3QOi9z3HM70yn9mS6PW2Pv8rI5P3Ib2c59jhy4so0?=
 =?iso-8859-1?Q?6zCsGfs77bbYnDoqUQrNi0jY9JA4UOJPqiXsOtTskxToQIv9tfzqIWTxjC?=
 =?iso-8859-1?Q?Ab+f5FCr534Ijy90k/siYDf841Mz1CIgqX5XIxH3iDgjun/mbM2XY2qvfg?=
 =?iso-8859-1?Q?GZR/jV25/yQFCX8K5+Z4RaUbjICj04I+aXPr8MtXTjz5TGMQSlWCISFSLD?=
 =?iso-8859-1?Q?Rk+0KZw6QMSmaJ3LM8+5W8xC1MxeriIptAhQYuj6KkEg=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?YZJqqi4HmWwjhxOeIB5fAQnT2lwvU2IXyYVkrTzJMDlOknW73UStG1jNFs?=
 =?iso-8859-1?Q?9mH6i0Xgzjn3yBiNYsJueiLGJlQPSCPinrMjsWvPz6MW/JHAEksVKjWoie?=
 =?iso-8859-1?Q?8qprutQ2WakYRv8QUkZsh4Y5lefee4a0OuhrZvSkRf33BC5iqktctUpZpj?=
 =?iso-8859-1?Q?2lL5/7Up5WQxg+UB6TDmtm3R3t5oXDua9lEV4f1eD+hegyWtEZYzc0uERa?=
 =?iso-8859-1?Q?17YN6KQpfr5xd+r/ab0dB/kZlTGAmC8RmNjKE7qs7P2R326nXsFrP/AobD?=
 =?iso-8859-1?Q?qM9YBfxmZPzBHs5Pah3Y47UTAdLRyXhfkIVQEK2T2UzofYpyWPfLHSYEUO?=
 =?iso-8859-1?Q?efhg6DL7voWqPa467kdCJhGViMAs36OPRqRaBaEoL3gmASxuG6aVw/2Fqr?=
 =?iso-8859-1?Q?oFEI9bxEYuEI8lgZHZLnsGugWC66/CoEBSILLulI6XYfIHgVEgF2HBgX7K?=
 =?iso-8859-1?Q?k7czC30jP+lnPaqpVGEg9VoMEQD6pHRpDmUovkcTRj4Ggf5icUfLdfZRu/?=
 =?iso-8859-1?Q?1Vk3WExYIH5sjkqYDmOxG4Z9DmQ4B/o0PvKQhUdMGGzP1repqyHuHeqDxT?=
 =?iso-8859-1?Q?Y+AryDC/FsyW0F0gu0QdMdwlUB239WBaDVrK1qJ6s9dgxiTSKHSN0dbdRY?=
 =?iso-8859-1?Q?Zmk5VHL+bNQXEIAzDwjr1pJmgnzRxYs7xhjlqiqb5ui5G4Ear3vfV0If9T?=
 =?iso-8859-1?Q?J7dVJIc2RgSg0QPCC6cDxrOUbvJWAMdwXo0aAvT3QNw947pMB8w/0R4Z9q?=
 =?iso-8859-1?Q?Y2syRX8B3jjoK5hUXyGWIKiKGa7IjouBWRXo06VDkpVDOWqYgvj47bT5dy?=
 =?iso-8859-1?Q?pBMGlhq8yuGkoVdWJERtZRmnYqVupq28shmIhjI5Ke/kska1v/T0He2M2x?=
 =?iso-8859-1?Q?ntQtpHp1Showw5IVAy1Q7Yk3Ld8RywvRMjDOBx/bMXc2HoF2DRJf4ay4Kh?=
 =?iso-8859-1?Q?IAn/4abahYJKekcBOM2p2fgkFx8dsc5pSVRnX/UEEYsJjbH5Fce+H1YfKn?=
 =?iso-8859-1?Q?5BOeR6k0HRWrWAcVB44UyFhzFn2kLSpetnK3SNOSO/p2WRgFNSpcLie+WO?=
 =?iso-8859-1?Q?zL5skOU2m652TLpg/+E/2IUxMoEkaRXlZfp7wb7bVNwK3DZlBaHzXnfEbf?=
 =?iso-8859-1?Q?H7zRP2ZKWeECa49TvQAjVWqfOtJ/YsozMxNQGTp3sOeA+ZTnUaqsftyTfy?=
 =?iso-8859-1?Q?2ONfqga7VcZ9GZ4LxFQguQAaqMGMrfRfJjBICtyQIVPrdoZz6yzQS1ggcC?=
 =?iso-8859-1?Q?Yi1LF75jwLJVQ+0qEGNKA8UtMfEUaatCVSafsJ+ezQ5ogOnfGZSxb2zaEQ?=
 =?iso-8859-1?Q?uIZehabYf/x4IgZc2liZbW7VYloCwOgdKa6/sf2OFYU+QDkHInCl05JfCJ?=
 =?iso-8859-1?Q?mpKUnckflj9yGR9eAulzDEE1HY8xYZDq7ocS84R6Cyo3H273OBKGiBS+Lx?=
 =?iso-8859-1?Q?pIE0oveK7pzKjVQYsdW4G0fJ7PZRMWN3Lao+GxinMk62u6Gcp7o+BNgLmS?=
 =?iso-8859-1?Q?FLjZzLVdd9m7axc8F7jHDPu2sEA6c4CPkGsslGZu0qQWTCC8u5V3ZHIwW8?=
 =?iso-8859-1?Q?XXzFcQmSXNRE8GdoFLXuKd+uasxNzEr8FDlsh4IsTTmqMz2yg8LQA1AKNI?=
 =?iso-8859-1?Q?IsPLoAcZpksGMC2Wz23wjjQLhu7LSLl86ZRMJUBNP4fMaXexGKDHHZRQ?=
 =?iso-8859-1?Q?=3D=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: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 305bffee-1589-4ed8-fddf-08ddd452526a
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Aug 2025 19:00:19.1440
 (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: CyVVqVq5KQ4ZT3LNHqr2YXWmAM7HHYh1QC+ifzquvfgkYjYSZOpF7OJvY3K0evi3UASIDO4E4CcHf3NLMgn35kurTkBqFnMSDtrFUVzjSCw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB9345

From: Grygorii Strashko <grygorii_strashko@epam.com>

Call stack for dom0less hwdom case (1:1) memory:
create_domUs
|-construct_domU
  |-construct_hwdom()
    |-allocate_memory_11()

And allocate_memory_11() uses "dom0_mem" as:
min_low_order =3D
  get_order_from_bytes(min_t(paddr_t, dom0_mem, MB(128)));

In case of dom0less boot the "dom0_mem" is not used and defaulted to 0,
which causes min_low_order to get high value > order and so no allocations
happens from low memory.

Fix it, by using kinfo->unassigned_mem instead of "dom0_mem" has correct
memory size in both cases: regular dom0 boot and dom0less boot.

Fixes: 52cb53f1816a ("xen/arm: dom0less hwdom construction")
Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
Reviewed-by: Denis Mukhin <dmukhin@ford.com>
Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
---
Changes in v2:
- changed 'fixes' tag
- fixed comment for allocate_memory_11()
- added reviewer's tags

 xen/arch/arm/domain_build.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 463ae4474d30..a9e4153e3cf9 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -249,7 +249,7 @@ fail:
  *
  * We first allocate the largest allocation we can as low as we
  * can. This then becomes the first bank. This bank must be at least
- * 128MB (or dom0_mem if that is smaller).
+ * 128MB (or memory size requested for domain if that is smaller).
  *
  * Then we start allocating more memory, trying to allocate the
  * largest possible size and trying smaller sizes until we
@@ -278,7 +278,7 @@ static void __init allocate_memory_11(struct domain *d,
                                       struct kernel_info *kinfo)
 {
     const unsigned int min_low_order =3D
-        get_order_from_bytes(min_t(paddr_t, dom0_mem, MB(128)));
+        get_order_from_bytes(min_t(paddr_t, kinfo->unassigned_mem, MB(128)=
));
     const unsigned int min_order =3D get_order_from_bytes(MB(4));
     struct membanks *mem =3D kernel_info_get_mem(kinfo);
     struct page_info *pg;
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 20:13:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 20:13:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070941.1434532 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujO2N-0001Oe-50; Tue, 05 Aug 2025 20:13:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070941.1434532; Tue, 05 Aug 2025 20:13: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 1ujO2N-0001OX-25; Tue, 05 Aug 2025 20:13:31 +0000
Received: by outflank-mailman (input) for mailman id 1070941;
 Tue, 05 Aug 2025 20:13:29 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=yoJv=2R=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ujO2L-0001OR-OI
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 20:13:29 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a6824bd6-7238-11f0-a322-13f23c93f187;
 Tue, 05 Aug 2025 22:13:28 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-4561ed868b5so39743185e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 13:13:28 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3b79c48a05bsm20512629f8f.69.2025.08.05.13.13.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Aug 2025 13:13: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>
X-Inumbo-ID: a6824bd6-7238-11f0-a322-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754424808; x=1755029608; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=/BwaiXnw/iLOWCTAL1qTewSzze0vosGhN7wZNDD5aOg=;
        b=Z/GN4J4mLh5eZ7X1luofPfqqnF9jzp4MFUo9L3avdLcLlP0r2IfyLg2vqYhqhpZU7g
         8MoRqofBW6jhqwqZUKyKf8cKT5XfaNe8uqMY3iEqBC0luLu0f2NgYPgw6qbCM5hWGdAd
         knnsYRBsP3fDQ1Mb0p3Ke43Bklg7L3Z+E2r0U=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754424808; x=1755029608;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/BwaiXnw/iLOWCTAL1qTewSzze0vosGhN7wZNDD5aOg=;
        b=s5I6kQ8neo9xsJDiYp9hV4ddmhjILiSTrCe9OgDuYggerD6PC82cHHsiDW9GHnSA/P
         n85S74RKEUemTjlw/cqBOwBgYiarTVGoQzddILr8rS8S0w+z7U7V8s8B78kqug9cCM0Y
         158700EVdsdmF80aq/BaOYlX1Uyg6atsrvuugP97wMmuRfe3X4G2APr2KdJC7sPN3Em0
         A+Yotw3lxu0zmjjyuyQBk+1kmbJOSoOizOpIb1Rr9VhJDFR9anwkhjkYRhshpBwyV0f4
         f7Snbt5+C99qEKC1pA/mHc4kpu0up+/QUUmcxH8xASKYN4XiMAhhVgf9HEYnYA0gYy4d
         /7CQ==
X-Forwarded-Encrypted: i=1; AJvYcCUrPpdqZVEA9fd+cCcHoHB+t6n3eYu82SC4g3lhvEYeZwwVbHh/u5C1GHblnAcwrn4mJL1a3yMKbbA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzpxRWXLrx6oaXHSTQw77GRQ7e2ibPlR5lfz3bQNs3JS2LtMRGg
	2nSuCupqm3kDperP3mFzKegjCT3d2OjslaMOErk2nlLtr4+YbMIyKphCIhiyhO7I42I=
X-Gm-Gg: ASbGncsdUy9lPLF86pToJA2ersI812UNCLP5BzQaLUmEkf0GPknenH2jbR42u8CITRG
	5VIhmwiyWR0c718TqcVoY9LlAeWJxL3w+KM8q9EI6rX65u+IKg6Wtz2TO+eKPtLZ3v7gGPzVpfm
	hRjA1BXc6P+lADGwwqkmoJmMlj/XMFh0+KW3OcEXI9TVTJAqMkURONe+1JzpD1qU85xG4T+v4aG
	HCiDK5hGLCwVadgrGqH7h9pP0h6Qa9UBd8KJ15UQaol7/NY0B1OqAObnQMpI2qRNrxCaEkcKWTq
	hcU6PPJW9TTViScrJYXwwrYS9JOQ2Pf9+egCJlLcsfvEnzk2xOliEjzUKuWm1+2ck7JfHZCR9Cn
	dIzelaCC9il8w4FP0YKXM+rv8/99pq6pzhobr6KDikbv2Ud+CJ4DWcfkAURGVlSlbBRQ9
X-Google-Smtp-Source: AGHT+IH1qcTpWYD/e+i62dWDRWBcxCURqg6T3gZq6L8RbZmU957gfP8b6EQPXNVYtoWved7qeyTXVg==
X-Received: by 2002:a05:600c:5494:b0:459:d6a6:77c with SMTP id 5b1f17b1804b1-459e7136b2dmr1387015e9.33.1754424808029;
        Tue, 05 Aug 2025 13:13:28 -0700 (PDT)
Message-ID: <d492417a-8f09-4f6f-9b50-6e06634eefe3@citrix.com>
Date: Tue, 5 Aug 2025 21:13:26 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] x86/mm: drop paging_get_mode()
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Penny Zheng <Penny.Zheng@amd.com>
References: <c506f225-0993-4ef3-9e7e-60b8f17c872e@suse.com>
 <0c75ef27-7584-4e56-9ead-6bb0274ce3eb@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: <0c75ef27-7584-4e56-9ead-6bb0274ce3eb@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05/08/2025 8:58 am, Jan Beulich wrote:
> The function was introduced without any caller, and never gained any.
> Thus it has always been violating Misra rule 2.1 (unreachable code).
>
> Fixes: dd6de3ab9985 ("Implement Nested-on-Nested")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

I'm still not certain how this will shake out in nested-virt, but I'm
reasonably sure it wont end up like this.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 20:24:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 20:24:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070949.1434542 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujODN-00034w-4a; Tue, 05 Aug 2025 20:24:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070949.1434542; Tue, 05 Aug 2025 20:24: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 1ujODN-00034p-1J; Tue, 05 Aug 2025 20:24:53 +0000
Received: by outflank-mailman (input) for mailman id 1070949;
 Tue, 05 Aug 2025 20:24:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=l6JF=2R=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1ujODL-00034j-0G
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 20:24:51 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 35f268d8-723a-11f0-b898-0df219b8e170;
 Tue, 05 Aug 2025 22:24:39 +0200 (CEST)
Received: from DU6P191CA0023.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:540::17)
 by GV2PR08MB8512.eurprd08.prod.outlook.com (2603:10a6:150:c2::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.17; Tue, 5 Aug
 2025 20:24:33 +0000
Received: from DB1PEPF000509F6.eurprd02.prod.outlook.com
 (2603:10a6:10:540:cafe::49) by DU6P191CA0023.outlook.office365.com
 (2603:10a6:10:540::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.22 via Frontend Transport; Tue,
 5 Aug 2025 20:24:33 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB1PEPF000509F6.mail.protection.outlook.com (10.167.242.152) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9009.8
 via Frontend Transport; Tue, 5 Aug 2025 20:24:33 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by DB9PR08MB6617.eurprd08.prod.outlook.com (2603:10a6:10:261::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.13; Tue, 5 Aug
 2025 20:24:00 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::ab1e:55db:9d8:afbc]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::ab1e:55db:9d8:afbc%3]) with mapi id 15.20.8989.020; Tue, 5 Aug 2025
 20:23: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>
X-Inumbo-ID: 35f268d8-723a-11f0-b898-0df219b8e170
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=ZPS3eeCZ3OSQPQfyS6zIuPWAu/4kr6tEgcttaPJxAHmeiG7KWIjo7XG5TPllWD8yXiev8TYuAozsfBoyTKTbiu9G8LDEkVw02tkZDTMeLXOf/KryE4HDJLOcEY8PfFolf9Lnq4ZmE15vF5Aa6k2KM3cMuOLIDa3vHyAtPJZP9bwFtcG91TteaO4qT96esLuKNYB/T0om+ENdEIdwIBGcPs7OKrCp7yfcY88sxT3SaORdBQ9rvy3WTP93rWn5+0gIEOuL0VASXXyP2ddebSvV4Kta4znR6vspMKB+NsToJgNucFhKplfqcsd/DSP774F4+508cgkw5qmvdMvCg8uk5A==
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=4qvfoWXfW84CTiaWGB474mUlXWQtnJhPnvgdPsC/PWE=;
 b=wpg5lbpaekjdi1tyPrU5Za9mCeO3fiuinWeABY59CbC/nEckreID8rY8skKRiDPuaDXDG8Cte9+dgiXgC6JjQoXwzPp9qVY2r3lsYnYbJz52Uj4hD0ZZeu9Sx2CqSqNPBgKJRDRGd+3RMlD+5nWOrbbROqGuZDkPc03PBHjBVxFY9rI9+2Kz9zOwm2AIgeTrbtveSZSTbyomMWAa631cJFgWCPf06zg53meh8Yc+1WpJdllsGc2RI56v78sg4ar28fSaMa9H76uCfKRZJ0/vB0Fzm1x5OIuXsV4L/YUaKDFwmrJ61VKxGOVYwdixd59PDfjh//wZwQJ6VsLWSOlbMA==
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=4qvfoWXfW84CTiaWGB474mUlXWQtnJhPnvgdPsC/PWE=;
 b=pNPStPfa1DRBVCbAOKyTsfO0d9kweUNhwExx0SwRCT7pAC7wJMcTalXjIRJOw9LsL5qAHg0nwz5cUwM0lko2AfdI4jKnwQOMKVUlMwxMz4x7Vc68Gbe7e2KI1wNSWHD8B5hQkffUTXq3QjgckOfGPqt9X25TI6AtFws0c9tqN4E=
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=qMfnYU6hNvaoFfqQ7VNfERVEMmtabtaltTeyqZD3o8EBxDsW4I2chgjYk7eQO+4A1JHMBrojJe6XmE717NydrZlk6F15i+6l7NQ61eBQuWlIotEyKcXZM+bbYBg0hiHmnHcrzc6aGXRynOUGFXIvGeT7O3iqxVOfFFo/OzxtVWlbe7xooBxYqW9G1e5e/S30alhLyxairwURvEB6E9VRf2XFOcbcAAjSOat6C4BJH869aXSX++XbfzxLr2ZlOrLBYu4F9zOPLIBql3oI7gNpgqD6ewJuOQBO8+eWz/oYTOCVw8tfAw8e2YOgEgJuJf2eweczG6wYpCi5O/fJrvv5Dg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4qvfoWXfW84CTiaWGB474mUlXWQtnJhPnvgdPsC/PWE=;
 b=tfMQIyyPDuPT+0+/gvG41jAd3G3tS+sizLOJS9qSKf5H6bfGd5sW+KOTMLLQDIIV4o4QUoF+rEWaUQ7LLODk1BwhsrrCpcHOCh6GYIv+oikA22fF0kb0SrqGcCxKZ/lEsUUv53TS6y3qerx1fweaUZ4E++DNrkiNKTZGx4BZjK7P2uqE7E45yeveABLLqV14qk15MDJ+MCR00IkcTwdkVwN9PwiqrxEvbc1BUVuyplIJ1ydbQxhA7L4wKr2gjNA8TPckMH3RjmZQbdoen455Yx0l1G2ILxtmhbbjOi21brsJXs/d8Vy5i9kJoG3Q4Dd0m3/Ug0RgP6KbtCUny6Hb3Q==
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=4qvfoWXfW84CTiaWGB474mUlXWQtnJhPnvgdPsC/PWE=;
 b=pNPStPfa1DRBVCbAOKyTsfO0d9kweUNhwExx0SwRCT7pAC7wJMcTalXjIRJOw9LsL5qAHg0nwz5cUwM0lko2AfdI4jKnwQOMKVUlMwxMz4x7Vc68Gbe7e2KI1wNSWHD8B5hQkffUTXq3QjgckOfGPqt9X25TI6AtFws0c9tqN4E=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Mykyta Poturai <Mykyta_Poturai@epam.com>, Edward Pickup
	<Edward.Pickup@arm.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?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, Bertrand
 Marquis <Bertrand.Marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Stewart Hildebrand
	<stewart.hildebrand@amd.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v1 1/3] arm/pci: Add pci-scan boot argument
Thread-Topic: [PATCH v1 1/3] arm/pci: Add pci-scan boot argument
Thread-Index: AQHcAsXViqFNiGIadUqVpLIjHx6cn7RSKQoAgAJfBQA=
Date: Tue, 5 Aug 2025 20:23:59 +0000
Message-ID: <76A89B38-5EBB-4A6C-8991-FA618F537197@arm.com>
References: <cover.1753968306.git.mykyta_poturai@epam.com>
 <98c8889e07d6c82067309d8458e15dd52145b467.1753968306.git.mykyta_poturai@epam.com>
 <2464e97d-e950-4645-9aa9-5c2cddab72b2@suse.com>
In-Reply-To: <2464e97d-e950-4645-9aa9-5c2cddab72b2@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.600.51.1.1)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|DB9PR08MB6617:EE_|DB1PEPF000509F6:EE_|GV2PR08MB8512:EE_
X-MS-Office365-Filtering-Correlation-Id: b499327e-939b-422c-51bf-08ddd45e16fa
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|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?d2trRG5tMVVLRXBNU2QrSzh5UHlvYjNFR3lTZGFxdFlYRlJxNm9hblEzWUZq?=
 =?utf-8?B?UG53czRIRzl2d0daUEl1dmhwR1REbG9Sd0JueUliMGNKbHNFZGFVREgrUzND?=
 =?utf-8?B?YUxRMkpQVVZrV2prQTR4c3dMYVJLWjF0OXNzUit0Tkt5QWtkUjRTSC80Q1pZ?=
 =?utf-8?B?RGdjK2VzK0FiSGtPWEtVUDhES29tMnpFdjFRU3F6Rm9IRzNlS0dHTEpBZTNa?=
 =?utf-8?B?M1FDOVZWcDM1SVpBMEtRMFpiS3lrRjRGV1VVZFlBZnZSS2N6TkpnZzFQNUdH?=
 =?utf-8?B?MFJLUlhPYU9PbDFlNGxCL3hLbGJ4RGkyZ2hSWlRya053OXpWQWZkM0V3UDJp?=
 =?utf-8?B?RlRZcDRNbW5LYlphSm50aVNpdnZnNkFNRTUzdDF3TmpWanFob0dUZ2VWTnVz?=
 =?utf-8?B?NEJMVEh3cDB4QTBlV2ZOUGZrR0k5emg0N0hKZTQyblZ5RHR2SjlKS0J6UUNn?=
 =?utf-8?B?a3Z5MEZuamtYdzMrRWN3V2pSWWNSd3Z4NlI4dXZZY0tnTFBPNVp1ODJqVjdX?=
 =?utf-8?B?WXZaYmtsL1JLdDBWYlNEYnZidVVtdFQ5dXBneU5KOFBQdXowN1lGM0ZQY1Vk?=
 =?utf-8?B?ZlIwNG9JTWRYdXVGYUZhQTUzS0E3NHpHRWhDKzR0M0JEWHJzZU5ZRmUvdUFP?=
 =?utf-8?B?NS93amJkMmU5Nm5BM2ZjNXdCcVhkZjVyMHViaDVHZUhtVmZWanBWazJqT0F3?=
 =?utf-8?B?VmdSRkJXcCtwVG1Pbm8rK29Cc0dwaElueUVrOFlJRW9RK29GYXlFZ1JhY2JE?=
 =?utf-8?B?SnJxdnhid1dtREMzajdyZlFOZFFZY25kK1NPOUlkYlppS0ZjNFpSRFd4Rlo1?=
 =?utf-8?B?cEgvTmhvMG5NT3h6YXpvV2tsaklETk4vRmNyOUZyZ2cxazNWVTdtSVdBWHRJ?=
 =?utf-8?B?cGNxQnJtT09wdGtEQkJRY1JWNlFpZHR2ckFyVnBJcXZjUWQzVmxGeXFmdUJL?=
 =?utf-8?B?VVM0blc0Tnh5RS9uK0oxSEFSNVMva2trMEErS3hyR3hwWHFuWldyK1pyRVdE?=
 =?utf-8?B?ZkV0SFJ2RVpJZ3BtV0FpaUhyVnJLa0d0UkE3UmRnNXhRRHlTcVYwRmZPOGVt?=
 =?utf-8?B?VTJUNm80TVd1R2dKS0Q4RFBtYTE0NFUrTDNPMlFqeGtpT293aDBaOHFBZ2tx?=
 =?utf-8?B?dU9TNDRBV3ZUdnIvK0hRTUlDRXdVSnBFQ1RRekkyUjltem10TkpINmxsMTFE?=
 =?utf-8?B?ZjZvWTg2em5zSFp0c2tqRjFkVENwOUkrNDhtMHY0TVRybFE3OVEyWE9FMkp3?=
 =?utf-8?B?NGpuNWl6eldUNzc0ZWtwZmsrbk5ySEE0WGRIa3czb0g0eDNNMlgreitKOEkx?=
 =?utf-8?B?a2VWek1lNUtLUjEyUENVejBCb1NOQ0lBY2tBdFBIY3pZUTIwdGV5My9McUYy?=
 =?utf-8?B?ZEM0UVQ0bUVGNjJJa0lNVi8xK0NkTmg2YW14UlZmYnNiRUJDeGRtdnNITzFn?=
 =?utf-8?B?eGxNbUM1TTkxS1ozaFU3ZmdLcXBMbUg3MkhMbUN2aFU3ZmcvQWMvK003QjRB?=
 =?utf-8?B?VmpQYkMza3dYdy9KMTVWNW1idzEyRHUzRVhjNlJZRkZMY3FZeEwxcExCdzMx?=
 =?utf-8?B?K0tYa3VqblJJSkMvR1FhNXI0ZVp6RzAycFhBRHZvUXpGa011RHM2VWRXenlY?=
 =?utf-8?B?VER5WHZ3L2RNR1NnRUxiUEFtWW95V0J3SUVYUWY0VmpzdTJJWmxHNFVmZ2lj?=
 =?utf-8?B?Uk9ldGt5ZTZvOXV6UkRFbWhvbC9WZjVUc0RYRFA4QWI5eVZic0pmeGUrRGJD?=
 =?utf-8?B?UUZXVHorSkRTcTJnRUlWKzMzeEhoMGN3ZXJ5Tkc4dGlHL0lTM20xdlNxL1V1?=
 =?utf-8?B?RmRhWTdGMFo5YkVvdXZnQVFJRzFzb0Q1cVJhMlJhZXJSWWFUaTRNWlRMV1Za?=
 =?utf-8?B?YkE3NkgvY0t3cUlSQUNhZU1jR2czdzBDNFdxaDhBTjN6dGRkYmJKZU9CckQw?=
 =?utf-8?B?bkJxREljMzNyUXFRbkNYRytoWVVCaW5wQXovMkNKMFJXN0VhVkN6dGM4RXoz?=
 =?utf-8?B?M29iZFFRVVJnPT0=?=
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)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <4BE9EA95EBF0364BB0BF4821E91D6625@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB6617
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB1PEPF000509F6.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	a67fb108-b4b1-41f9-b369-08ddd45e02e2
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|1800799024|376014|14060799003|7416014|35042699022|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?dU9FVEhPRENqZnljNHBRbzlwOFp6YTNOcGNoc0ttaFc1ZXRMbE9iR2pGb2dm?=
 =?utf-8?B?dTgzQUFwZ2tQQlVLV3E2bHM2Nm5Uc0NBTmdldGlCbThUYXkydjFoQkdxblRN?=
 =?utf-8?B?ZEttWjk5N0MyeHV3NmdLRVdxOFYwNy82d1BBREdsZVVTcFBZQnlqVk1WZnVo?=
 =?utf-8?B?VjFRb1p5QUhjaENYd3JSZWFGdkFnU1l1VVZ5ejIvSVA2UUZ1YTZhcHUwaS9k?=
 =?utf-8?B?RkczWVpXdnlqeEpVdGhjNmdTSHp5a2F0N2Y4ckR0N0xkZ245bW5kMHlvb3pW?=
 =?utf-8?B?OFdabENUemhBVFMwZlN3d2h3aXBxN2tMbnZLRHFzbnlSUHprYk1zQ21tMkd1?=
 =?utf-8?B?cjBqcVdScFdmTUJCTkdpVzJ1UVIyRTluN3RqT1NpQlM1SGxMUnRCKzRGUS9J?=
 =?utf-8?B?ayszMGp3ODQ5cFI2eWNkZ25CQ3JyWTNPQ2RvbWtwb0p5ZkNSZk9leHJrZkZx?=
 =?utf-8?B?UU11dnc4di84bHltRWgwU0VaS1NWSHNYZDVSeTArYkNPSlliQTdPYVIySG90?=
 =?utf-8?B?MVhnYTAyWmJDMmpzRDN3dW5Cd0NRUGtBaHRkeklKK2pCcWZDOFlvNE9iWDlH?=
 =?utf-8?B?ZjliVCt3aU5abjZacVlsWkNXYWVOb0hmd1dKK2RlUkJrQlZrN1MxbkFVUGZE?=
 =?utf-8?B?T1pMLzk5bDc0a1c5OUVxc2RiS1c1d1EwNnkya0FvSVBiTGdvRkpLN1pxYlhP?=
 =?utf-8?B?alQ1RTZiUC9nT2xpeFFaQ3RkMWxNK3VydlFybFNJZE9aODQzSTFtc29MWWRz?=
 =?utf-8?B?dm5VOUFLV05RR1AzOWEvUWtpVGtOem5zVE8zbzFvZ09JdkxtS1JYNVFmakRR?=
 =?utf-8?B?OGpZQnNkTDlwOVJoR2JSZTZzaXdVQWU1R0cxbnlUNXRURzY4OHpDeEdMTVFw?=
 =?utf-8?B?c1dWYmJuVXdsaUN5dnJPMVIvVlpGRVdWYnpxQkxDUlBvWUVxVnJSMi9GUVRK?=
 =?utf-8?B?a2tRcWxVdkJ1elFSS3NRTm9SUFh5QlpCdWhvd1ljOHdXV0pOMHZwallndkM0?=
 =?utf-8?B?UThGQ0tLd2thV2ZyTmROcmgxcWNRQTBxT0wzWXRlYys5dTJEU1FOSkJDMVJC?=
 =?utf-8?B?VnJlK3l2WTVYdUFRMTgxR2NodGFVSkVUMnVwQWF1UHFSNDdmeVVjQXZzNUp5?=
 =?utf-8?B?dzBVU3FVQ3FTRnV2OHIzZmEybHJ2M0pabGRPei9ZWHFmTXFGcWsvNFl4T0gx?=
 =?utf-8?B?eWV4elV0RmdGZ0l3TlRFc0RMNnk4bHVPNXRpWllNUDYweEl6cld3Wk00OEN1?=
 =?utf-8?B?UG5nWnA1dGE2TGNCL3Vkazh1OHpTZUsvVmttYmYxRVBRTWQxTWowSzlXdjBI?=
 =?utf-8?B?TzlIMXl2T2hhS09xL1FhVFF6Yi9SaEovelBiUWhSTTh5cTdkY0l5VElUNnEw?=
 =?utf-8?B?cVh4WEhvOGxTZktIVitDdll1elFjRWh1Yk44MUJzV2pjTDN1dmd3V2t1QzBK?=
 =?utf-8?B?T2o5aW1GUWdJVWlDWUw3Q3o2OXVzTlNhOWtnU2FGRUxFVzhqZ3Z3ajRSL3pl?=
 =?utf-8?B?aXpndGNhMHRIVjk1ekZMcnkybU1rdjlGMGthb2sxdVZJdWFTU0wwRENzTGtL?=
 =?utf-8?B?QnVJOWN0RitBZ2ZzMExXK01yMTV6cmJaNnVqejY4Z2ZwSG5CZXhvZjd6Qk1m?=
 =?utf-8?B?TlY2VG95VkZpWDEvMlQ3TlNGNzdUVVNHVzJyVXJiRzRjdDZIZ0ptVW9xd3JS?=
 =?utf-8?B?d0JWL2dTRE5tRmliZW4rUm52Q3Rmb0VORU04WEpITEUwUHpnQ1drN3RPbDR3?=
 =?utf-8?B?eEdnWndNM21QSDJRZ202aU51KzBjRWFibXVLQ3M5aTNOMTNydUxyaEhPQ3V5?=
 =?utf-8?B?YWpab1RPb1hXamFZeTgvdnFhWHA0Tk9LZXhCQzhtZkxzTXYrblpVakRYQWQv?=
 =?utf-8?B?QjhxSHAxQ0NXWHN5U0IwUmROK0V2aEV0T0h0SUVvRkhZbk5qYnlVc1hqSmU1?=
 =?utf-8?B?ME43QzBKRFBQMG54SUtrQXRtMFVnWUlDc2JRSERwV2RrK25qWTh5UDlnNDFD?=
 =?utf-8?B?Zk9aYjFwY1d1QVV6NWd5UEF2MTdIWEJSL24vME15QXVYMkRFQXIwMlJYK3pw?=
 =?utf-8?Q?2Zfl7A?=
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)(36860700013)(82310400026)(1800799024)(376014)(14060799003)(7416014)(35042699022)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Aug 2025 20:24:33.3006
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b499327e-939b-422c-51bf-08ddd45e16fa
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:
	DB1PEPF000509F6.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR08MB8512

SGkgSmFuLA0KDQo+IE9uIDQgQXVnIDIwMjUsIGF0IDA5OjEwLCBKYW4gQmV1bGljaCA8amJldWxp
Y2hAc3VzZS5jb20+IHdyb3RlOg0KPiANCj4gT24gMDEuMDguMjAyNSAxMToyMiwgTXlreXRhIFBv
dHVyYWkgd3JvdGU6DQo+PiBGcm9tOiBFZHdhcmQgUGlja3VwIDxFZHdhcmQuUGlja3VwQGFybS5j
b20+DQo+PiANCj4+IFRoaXMgcGF0Y2ggYWRkcyBhIFhlbiBib290IGFyZ3VtZW50cyB0aGF0LCBp
ZiBlbmFibGVkLCBjYXVzZXMgYSBjYWxsIHRvDQo+PiBleGlzdGluZyBjb2RlIHRvIHNjYW4gcGNp
IGRldmljZXMgZW51bWVyYXRlZCBieSB0aGUgZmlybXdhcmUuDQo+PiANCj4+IFRoaXMgcGF0Y2gg
YWxzbyBtYWtlcyBhbiBleGlzdGluZyBkZWJ1ZyBmdW5jdGlvbiB2aWV3YWJsZSBvdXRzaWRlIGl0
cw0KPj4gdHJhbnNsYXRpb24gdW5pdCwgYW5kIHVzZXMgdGhpcyB0byBkdW1wIHRoZSBQQ0kgZGV2
aWNlcyBmb3VuZC4NCj4+IFRoZSBkZWJ1ZyBtZXNzYWdlIGlzIGNvbnRyb2xsZWQgYnkgY29uZmln
IERFQlVHLg0KPj4gDQo+PiBBZGRpdGlvbmFsbHksIHRoaXMgcGF0Y2ggbW9kaWZpZXMgc2VnbWVu
dCBsb2FkaW5nIHRvIGVuc3VyZSB0aGF0IFBDSQ0KPj4gZGV2aWNlcyBvbiBvdGhlciBzZWdtZW50
cyBhcmUgcHJvcGVybHkgZm91bmQuDQo+PiANCj4+IFRoaXMgd2lsbCBiZSBuZWVkZWQgYWhlYWQg
b2YgZG9tMGxlc3Mgc3VwcG9ydCBmb3IgcGNpIHBhc3N0aHJvdWdoIG9uDQo+PiBhcm0uDQo+PiAN
Cj4+IFNpZ25lZC1vZmYtYnk6IEx1Y2EgRmFuY2VsbHUgPGx1Y2EuZmFuY2VsbHVAYXJtLmNvbT4N
Cj4+IFNpZ25lZC1vZmYtYnk6IEVkd2FyZCBQaWNrdXAgPEVkd2FyZC5QaWNrdXBAYXJtLmNvbT4N
Cj4gDQo+IENvbnNpZGVyaW5nIHRoZSBGcm9tOiBhYm92ZSBhbmQgdGhpcyBvcmRlciBvZiBTLW8t
YjogV2hvIGlzIGl0IHJlYWxseSB0aGF0DQo+IHdhcyB0aGUgb3JpZ2luYWwgYXV0aG9yIGhlcmU/
DQoNCkkgdGhpbmsgdGhpcyBwYXRjaCB3YXMgbWluZSwgcHJvYmFibHkgc29tZSBpc3N1ZXMgZnJv
bSBFZHdhcmQsIGFueXdheSBoZSBkb2VzbuKAmXQgd29yayBhdCBhcm0gYW55bW9yZS4NCg0KQ2hl
ZXJzLA0KTHVjYQ==


From xen-devel-bounces@lists.xenproject.org Tue Aug 05 20:57:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 20:57:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070963.1434551 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujOj7-0007BZ-Kk; Tue, 05 Aug 2025 20:57:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070963.1434551; Tue, 05 Aug 2025 20:57:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujOj7-0007BS-I1; Tue, 05 Aug 2025 20:57:41 +0000
Received: by outflank-mailman (input) for mailman id 1070963;
 Tue, 05 Aug 2025 20:57:40 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1ujOj6-0007BK-EX
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 20:57:40 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ujOj5-002uKg-2b;
 Tue, 05 Aug 2025 20:57:39 +0000
Received: from [2a02:8012:3a1:0:d57f:c918:5b22:a406]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ujOj5-00680h-1o;
 Tue, 05 Aug 2025 20:57: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=o5t2772qYlHXuqpkP22SCJqrItlXUcR8aQnEFbjnkDE=; b=VqDfVeL9NJ8HprYj1Lx1h5HaDo
	SCz71mMjx0dxc+P/KsF1r8ybAwU4G/lHBe9dAEHpRIHFeMuf3rC2IT6ESng+0tFeQ2XHd20q9ffcN
	xuVbTQcPn/tw5iUagGEc837K+nzxvj/XBJauVk394jZxvJfukCEx+L5l3vH4ek/i6V/Y=;
Message-ID: <7ca43ebb-5944-4542-89d4-9f826997d2a5@xen.org>
Date: Tue, 5 Aug 2025 21:57:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/3] xen/arm: irq: drop unreachable pirq callbacks
Content-Language: en-GB
To: Grygorii Strashko <grygorii_strashko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: 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>, Denis Mukhin <dmukhin@ford.com>
References: <20250805184003.202839-1-grygorii_strashko@epam.com>
 <20250805184003.202839-2-grygorii_strashko@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20250805184003.202839-2-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 05/08/2025 19:40, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> Since commit 341f271cf86f ("xen/evtchn: fully restrict concept of pIRQ for
> arches with pIRQ support only"), the corresponding Arm arch pIRQ callbacks
> become unreachable, so drop them.
> 
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Reviewed-by: Denis Mukhin <dmukhin@ford.com>

Acked-by: Julien Grall <jgrall@amazon.com>

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Tue Aug 05 21:07:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 05 Aug 2025 21:07:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1070982.1434561 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujOsf-0000Vd-Fu; Tue, 05 Aug 2025 21:07:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1070982.1434561; Tue, 05 Aug 2025 21:07: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 1ujOsf-0000VW-DL; Tue, 05 Aug 2025 21:07:33 +0000
Received: by outflank-mailman (input) for mailman id 1070982;
 Tue, 05 Aug 2025 21:07:32 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1ujOse-0000VO-0p
 for xen-devel@lists.xenproject.org; Tue, 05 Aug 2025 21:07:32 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ujOsd-002uYW-0J;
 Tue, 05 Aug 2025 21:07:31 +0000
Received: from [2a02:8012:3a1:0:d57f:c918:5b22:a406]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ujOsc-0068HN-2d;
 Tue, 05 Aug 2025 21:07: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=SlCOk/8WqC6UuveQSRLxilIMD74FmsC3e2Z9QycD6FE=; b=QvhKoaXmSJOlTAEV4bjqQ5ipSs
	xK4QGRcyG51qF6A4CMubsBNVS1IcaDVIR6RgsoXUSg9dZuK24plPVX1BKE9IbnDdAw0OOe5HEHJSM
	O5EMIYMK6Lua4Bh06xFWYl04Ks7GhIhTJIUBBItqnHD6k5e8D6+sADytqz6zzziXAC1g=;
Message-ID: <5807ed03-7db2-4ce6-9acf-c4d515fbd293@xen.org>
Date: Tue, 5 Aug 2025 22:07:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/dom0less: arm: fix hwdom 1:1 low memory allocation
Content-Language: en-GB
To: Grygorii Strashko <grygorii_strashko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Denis Mukhin <dmukhin@ford.com>, Jason Andryuk <jason.andryuk@amd.com>
References: <20250805190017.209711-1-grygorii_strashko@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20250805190017.209711-1-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Grygorii,

On 05/08/2025 20:00, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> Call stack for dom0less hwdom case (1:1) memory:
> create_domUs
> |-construct_domU
>    |-construct_hwdom()
>      |-allocate_memory_11()
> 
> And allocate_memory_11() uses "dom0_mem" as:
> min_low_order =
>    get_order_from_bytes(min_t(paddr_t, dom0_mem, MB(128)));
> 
> In case of dom0less boot the "dom0_mem" is not used and defaulted to 0,

 From docs/mics/xen-command-linux.pandoc:

---

### dom0_mem (ARM)
 > `= <size>`

Set the amount of memory for the initial domain (dom0). It must be
greater than zero. This parameter is required.

---

If dom0_mem is effectively optional, then shouldn't the doc be updated?

> which causes min_low_order to get high value > order and so no allocations
> happens from low memory.
 > > Fix it, by using kinfo->unassigned_mem instead of "dom0_mem" has 
correct
> memory size in both cases: regular dom0 boot and dom0less boot.
> 
> Fixes: 52cb53f1816a ("xen/arm: dom0less hwdom construction")
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> Reviewed-by: Denis Mukhin <dmukhin@ford.com>
> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

Acked-by: Julien Grall <jgrall@amazon.com>

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Wed Aug 06 02:32:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 02:32:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071073.1434612 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujTwh-0006Ib-Jq; Wed, 06 Aug 2025 02:32:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071073.1434612; Wed, 06 Aug 2025 02:32: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 1ujTwh-0006IT-EK; Wed, 06 Aug 2025 02:32:03 +0000
Received: by outflank-mailman (input) for mailman id 1071073;
 Wed, 06 Aug 2025 02:32:02 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oS3N=2S=huawei.com=ruanjinjie@srs-se1.protection.inumbo.net>)
 id 1ujTwg-0006IN-UW
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 02:32:02 +0000
Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 84796c7e-726d-11f0-a322-13f23c93f187;
 Wed, 06 Aug 2025 04:32:00 +0200 (CEST)
Received: from mail.maildlp.com (unknown [172.19.88.194])
 by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4bxZ3V1z9wz13N1Z;
 Wed,  6 Aug 2025 10:28:38 +0800 (CST)
Received: from dggpemf500011.china.huawei.com (unknown [7.185.36.131])
 by mail.maildlp.com (Postfix) with ESMTPS id 0C3F3140146;
 Wed,  6 Aug 2025 10:31:53 +0800 (CST)
Received: from [10.67.109.254] (10.67.109.254) by
 dggpemf500011.china.huawei.com (7.185.36.131) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Wed, 6 Aug 2025 10:31:51 +0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 84796c7e-726d-11f0-a322-13f23c93f187
Message-ID: <36bd2bb2-31c8-e38f-e420-407742ccc3cc@huawei.com>
Date: Wed, 6 Aug 2025 10:31:34 +0800
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
 Thunderbird/102.2.0
Subject: Re: [PATCH -next v7 1/7] arm64: ptrace: Replace interrupts_enabled()
 with regs_irqs_disabled()
Content-Language: en-US
To: Ada Couprie Diaz <ada.coupriediaz@arm.com>
CC: <catalin.marinas@arm.com>, <will@kernel.org>, <oleg@redhat.com>,
	<sstabellini@kernel.org>, <mark.rutland@arm.com>, <puranjay@kernel.org>,
	<broonie@kernel.org>, <mbenes@suse.cz>, <ryan.roberts@arm.com>,
	<akpm@linux-foundation.org>, <chenl311@chinatelecom.cn>,
	<anshuman.khandual@arm.com>, <kristina.martsenko@arm.com>,
	<liaochang1@huawei.com>, <ardb@kernel.org>, <leitao@debian.org>,
	<linux-arm-kernel@lists.infradead.org>, <linux-kernel@vger.kernel.org>,
	<xen-devel@lists.xenproject.org>
References: <20250729015456.3411143-1-ruanjinjie@huawei.com>
 <20250729015456.3411143-2-ruanjinjie@huawei.com>
 <beb7e8f2-39f8-499f-a173-b8bf2d3296ea@arm.com>
From: Jinjie Ruan <ruanjinjie@huawei.com>
In-Reply-To: <beb7e8f2-39f8-499f-a173-b8bf2d3296ea@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Originating-IP: [10.67.109.254]
X-ClientProxiedBy: kwepems500002.china.huawei.com (7.221.188.17) To
 dggpemf500011.china.huawei.com (7.185.36.131)



On 2025/8/5 23:05, Ada Couprie Diaz wrote:
> On 29/07/2025 02:54, Jinjie Ruan wrote:
> 
>> The generic entry code expects architecture code to provide
>> regs_irqs_disabled(regs) function, but arm64 does not have this and
>> provides inerrupts_enabled(regs), which has the opposite polarity.
> Nit: "interrupts_enabled(regs)"

Good catch! thank you for the review.

>> In preparation for moving arm64 over to the generic entry code,
>> relace arm64's interrupts_enabled() with regs_irqs_disabled() and
>> update its callers under arch/arm64.
>>
>> For the moment, a definition of interrupts_enabled() is provided for
>> the GICv3 driver. Once arch/arm implement regs_irqs_disabled(), this
>> can be removed.
>>
>> Delete the fast_interrupts_enabled() macro as it is unused and we
>> don't want any new users to show up.
>>
>> No functional changes.
>>
>> Acked-by: Mark Rutland <mark.rutland@arm.com>
>> Suggested-by: Mark Rutland <mark.rutland@arm.com>
>> Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
>> ---
> Otherwise looks good to me !
> Reviewed-by: Ada Couprie Diaz <ada.coupriediaz@arm.com>
> 


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 02:49:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 02:49:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071082.1434622 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujUDj-00086p-U8; Wed, 06 Aug 2025 02:49:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071082.1434622; Wed, 06 Aug 2025 02:49: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 1ujUDj-00086i-QS; Wed, 06 Aug 2025 02:49:39 +0000
Received: by outflank-mailman (input) for mailman id 1071082;
 Wed, 06 Aug 2025 02:49:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oS3N=2S=huawei.com=ruanjinjie@srs-se1.protection.inumbo.net>)
 id 1ujUDj-00086c-6I
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 02:49:39 +0000
Received: from szxga03-in.huawei.com (szxga03-in.huawei.com [45.249.212.189])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f74b368c-726f-11f0-b898-0df219b8e170;
 Wed, 06 Aug 2025 04:49:32 +0200 (CEST)
Received: from mail.maildlp.com (unknown [172.19.163.252])
 by szxga03-in.huawei.com (SkyGuard) with ESMTP id 4bxZQV4lLmz14MLW;
 Wed,  6 Aug 2025 10:45:06 +0800 (CST)
Received: from dggpemf500011.china.huawei.com (unknown [7.185.36.131])
 by mail.maildlp.com (Postfix) with ESMTPS id 3E366180B54;
 Wed,  6 Aug 2025 10:49:23 +0800 (CST)
Received: from [10.67.109.254] (10.67.109.254) by
 dggpemf500011.china.huawei.com (7.185.36.131) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Wed, 6 Aug 2025 10:49:21 +0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f74b368c-726f-11f0-b898-0df219b8e170
Message-ID: <6825c4c4-2c48-db3b-55e2-97922f25897f@huawei.com>
Date: Wed, 6 Aug 2025 10:49:21 +0800
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
 Thunderbird/102.2.0
Subject: Re: [PATCH -next v7 2/7] arm64: entry: Refactor the entry and exit
 for exceptions from EL1
Content-Language: en-US
To: Ada Couprie Diaz <ada.coupriediaz@arm.com>
CC: <catalin.marinas@arm.com>, <will@kernel.org>, <oleg@redhat.com>,
	<sstabellini@kernel.org>, <mark.rutland@arm.com>, <puranjay@kernel.org>,
	<broonie@kernel.org>, <mbenes@suse.cz>, <ryan.roberts@arm.com>,
	<akpm@linux-foundation.org>, <chenl311@chinatelecom.cn>,
	<anshuman.khandual@arm.com>, <kristina.martsenko@arm.com>,
	<liaochang1@huawei.com>, <ardb@kernel.org>, <leitao@debian.org>,
	<linux-arm-kernel@lists.infradead.org>, <linux-kernel@vger.kernel.org>,
	<xen-devel@lists.xenproject.org>
References: <20250729015456.3411143-1-ruanjinjie@huawei.com>
 <20250729015456.3411143-3-ruanjinjie@huawei.com>
 <df50cc99-027e-4182-ba4c-9837b354a062@arm.com>
From: Jinjie Ruan <ruanjinjie@huawei.com>
In-Reply-To: <df50cc99-027e-4182-ba4c-9837b354a062@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.67.109.254]
X-ClientProxiedBy: kwepems100001.china.huawei.com (7.221.188.238) To
 dggpemf500011.china.huawei.com (7.185.36.131)



On 2025/8/5 23:06, Ada Couprie Diaz wrote:
> Hi,
> 
> On 29/07/2025 02:54, Jinjie Ruan wrote:
> 
>> The generic entry code uses irqentry_state_t to track lockdep and RCU
>> state across exception entry and return. For historical reasons, arm64
>> embeds similar fields within its pt_regs structure.
>>
>> In preparation for moving arm64 over to the generic entry code, pull
>> these fields out of arm64's pt_regs, and use a separate structure,
>> matching the style of the generic entry code.
>>
>> No functional changes.
> As far as I understand and checked, we used the two fields
> in an exclusive fashion, so there is indeed no functional change.
>> Suggested-by: Mark Rutland <mark.rutland@arm.com>
>> Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
>> ---
>> [...]
>> diff --git a/arch/arm64/kernel/entry-common.c
>> b/arch/arm64/kernel/entry-common.c
>> index 8e798f46ad28..97e0741abde1 100644
>> --- a/arch/arm64/kernel/entry-common.c
>> +++ b/arch/arm64/kernel/entry-common.c
>> [...]
>> @@ -475,73 +497,81 @@ UNHANDLED(el1t, 64, error)
>> Â  static void noinstr el1_abort(struct pt_regs *regs, unsigned long esr)
>> Â  {
>> Â Â Â Â Â  unsigned long far = read_sysreg(far_el1);
>> +Â Â Â  arm64_irqentry_state_t state;
>> Â  -Â Â Â  enter_from_kernel_mode(regs);
>> +Â Â Â  state = enter_from_kernel_mode(regs);
> Nit: There is some inconsistencies with some functions splitting state's
> definition
> and declaration (like el1_abort here), while some others do it on the
> same line
> (el1_undef() below for example).
> In some cases it is welcome as the entry function is called after some
> other work,
> but here for example it doesn't seem to be beneficial ?

Both methods can keep the modifications to `enter_from_kernel_mode()` on
the same line as the original code, which will facilitate code review.

I think it is also fine to do it on the same line here, which can reduce
one line code, which method is better may be a matter of personal opinion.

>> Â Â Â Â Â  local_daif_inherit(regs);
>> Â Â Â Â Â  do_mem_abort(far, esr, regs);
>> Â Â Â Â Â  local_daif_mask();
>> -Â Â Â  exit_to_kernel_mode(regs);
>> +Â Â Â  exit_to_kernel_mode(regs, state);
>> Â  }
>> Â  Â  static void noinstr el1_pc(struct pt_regs *regs, unsigned long esr)
>> Â  {
>> Â Â Â Â Â  unsigned long far = read_sysreg(far_el1);
>> +Â Â Â  arm64_irqentry_state_t state;
>> Â  -Â Â Â  enter_from_kernel_mode(regs);
>> +Â Â Â  state = enter_from_kernel_mode(regs);
>> Â Â Â Â Â  local_daif_inherit(regs);
>> Â Â Â Â Â  do_sp_pc_abort(far, esr, regs);
>> Â Â Â Â Â  local_daif_mask();
>> -Â Â Â  exit_to_kernel_mode(regs);
>> +Â Â Â  exit_to_kernel_mode(regs, state);
>> Â  }
>> Â  Â  static void noinstr el1_undef(struct pt_regs *regs, unsigned long
>> esr)
>> Â  {
>> -Â Â Â  enter_from_kernel_mode(regs);
>> +Â Â Â  arm64_irqentry_state_t state = enter_from_kernel_mode(regs);
>> +
>> Â Â Â Â Â  local_daif_inherit(regs);
>> Â Â Â Â Â  do_el1_undef(regs, esr);
>> Â Â Â Â Â  local_daif_mask();
>> -Â Â Â  exit_to_kernel_mode(regs);
>> +Â Â Â  exit_to_kernel_mode(regs, state);
>> Â  }
>>
>> [...]
> Other than the small nit:
> Reviewed-by: Ada Couprie Diaz <ada.coupriediaz@arm.com>
> 
> 


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 03:35:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 03:35:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071092.1434632 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujUw4-0005sX-7s; Wed, 06 Aug 2025 03:35:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071092.1434632; Wed, 06 Aug 2025 03:35: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 1ujUw4-0005sQ-4S; Wed, 06 Aug 2025 03:35:28 +0000
Received: by outflank-mailman (input) for mailman id 1071092;
 Wed, 06 Aug 2025 03:35:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=sOQm=2S=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1ujUw2-0005s4-E5
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 03:35:26 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20619.outbound.protection.outlook.com
 [2a01:111:f403:2415::619])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 60290df6-7276-11f0-b898-0df219b8e170;
 Wed, 06 Aug 2025 05:35:20 +0200 (CEST)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by SJ5PPFE4FC9FAB3.namprd12.prod.outlook.com
 (2603:10b6:a0f:fc02::9a7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.16; Wed, 6 Aug
 2025 03:35:15 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285%4]) with mapi id 15.20.8989.020; Wed, 6 Aug 2025
 03:35: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>
X-Inumbo-ID: 60290df6-7276-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QlcDGS/zh+vispZ3GWsevTb1Sz9gzieYa6u6FsSJlw09oY/3Ixka83M5BMqOdZe/PIpyLREUfYubtm3lI3smo6Pd+9FAkypSX7Rk4bsewYQZ7PzbJ1i5izydCYQE7P+ROd63f9urq/nALIJ88wByOngUDDGm6KFUij85nTcORUyvblPf8U3yJFKUsvHk+4mduocMO2kz8fD+GQnNXPLlqvxsH9Nn7wYeTKoRbMxd+i2uDHQKkNd7LRc0JNly3xUWtQu0mU9z1jh+wK0rk826Ai+HLH8Um4zT3UotN+nPEP9cfw+U+0HtkJ1wglIjq/eINSRqIlVbuAL1nrK0abV9rw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=dSwADwyUi7M3qzOKNGpXHFSSgPCyCBzt0V8PoiLjUTo=;
 b=mMbt9Co8bwPMLPd/y1b1IhSRhws7QU/Pv3WDIpAjvTaD1NsrEUC9M3UMyOzP/aZxFs4jXnecsK8qEqO4eqIwZ3mQ7hgdd91rWqEgreauF1JMKG9Zd4sgtpZUIqqYj9cq/Z2dBTFZHnxOwJjBNRosh//ia/3rh2aeULIkU/UeQPOtZEP9sw9/kGxkwBNanaSPqBch+UdUEXJYgL1J6qIsSbFi9u077sqh27TM0YQUq9LCYjcCgXTYu1wd+8AyS6jKQpOfvrTA2x98PQfcP+HORzxf9GRpIrXZUKo/CsDRR6QLuYIj+5OQgBaLq6tKUDXzt8YvcOWNFX4fKvXnAeXmjQ==
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=dSwADwyUi7M3qzOKNGpXHFSSgPCyCBzt0V8PoiLjUTo=;
 b=f2pNHVfja6TyLoxvxG2wRa4kdWPNqT3BJCCyMRtQm1dfSdseRCHYtYUZ9eu2iGmyIW6lWXYoJ85ZtoJGmN+7or1cmm6YYu4QziWqW5EXOqozGOI4CISHdIHZAj9nnBJqfLM8iCRhp1Ty7Nc+wA9DifNZAFydwdn7bGQpvvMx01A=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: =?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, "Huang,
 Ray" <Ray.Huang@amd.com>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [PATCH v10 4/4] vpci/msix: Free MSIX resources when init_msix()
 fails
Thread-Topic: [PATCH v10 4/4] vpci/msix: Free MSIX resources when init_msix()
 fails
Thread-Index: AQHcBbvzKmM00rEmukmd//khB9ysKbRTvniAgAHAdwA=
Date: Wed, 6 Aug 2025 03:35:14 +0000
Message-ID:
 <BL1PR12MB5849E4FE7136515B5947AB8AE72DA@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20250805034906.1014212-1-Jiqian.Chen@amd.com>
 <20250805034906.1014212-5-Jiqian.Chen@amd.com>
 <775a45bd-61df-4cab-948e-bdc79dfd89ef@suse.com>
In-Reply-To: <775a45bd-61df-4cab-948e-bdc79dfd89ef@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: BL1PR12MB5849.namprd12.prod.outlook.com
 (15.20.8989.017)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BL1PR12MB5849:EE_|SJ5PPFE4FC9FAB3:EE_
x-ms-office365-filtering-correlation-id: 655af769-e08f-47cd-2f2f-08ddd49a4182
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?MoGCBYSnYS5Tm5znX7hRCm2ZfFMNA+sms0d0R5uESKgpX0prcY47ma2Gck?=
 =?iso-8859-1?Q?/74+WnWVJ6TirfghAh7a98NbS+XoPFvpqUdxRWF/GbSznY7yj42hsuBl/w?=
 =?iso-8859-1?Q?z3XM0JaFNdPI5VxC4JhFcboFzkOZkLayanW+kciz85nA9mYH2t3oHtEvwZ?=
 =?iso-8859-1?Q?aBVFkGHahUxDnlL911nUS3aJLoz2MAXLLZkZ5MS35X+WVIEsY82oq+Y6Yq?=
 =?iso-8859-1?Q?eChznyeh4mUovo7g5wzgtUJVgb8Az5caQsd1BCB7sI0f7FCu5lm01jXB0y?=
 =?iso-8859-1?Q?ylr0+N84+UL396EW77RHCmhNvgd01TgzFaSil5Ex1grlZTJrq5DFSawTmz?=
 =?iso-8859-1?Q?bvYjfcU90GWiYfGO/FlCpDQ2c6SPDHwQkPYoM5PvRpxKa0oqwRGtm5lRpy?=
 =?iso-8859-1?Q?3OOW1Hwjphfqz3cxigrrglULy0kiYk4Ma6U8ytEGLD9V2DG9ohI7MXDRQ8?=
 =?iso-8859-1?Q?NVDUbWRv44X+AmrxuDgpxoBxxkeBaGb4WWcMq2kzsoEMkAHKypIa3j8vGG?=
 =?iso-8859-1?Q?xNy4o/XkpUZRVZErL/EhttRrAc1Dyc/ASwdnGrdyg2fD87rnaFZ51c4Nsp?=
 =?iso-8859-1?Q?Nm9C/fLoh1YsyYPYJYlpAwViYZqWVL2wwvW2uJU1rbkafdEy7CXLxOFpfH?=
 =?iso-8859-1?Q?Dg3yo7hfAmCMCNVmoB/xalf/MsqWt5vhHgplOd3zZ+SKjOiyiabT8Ih4ri?=
 =?iso-8859-1?Q?oZkjwhWHyrnxRRf8cHbUyqwCDqdpvIje8qYmYu3JeBs1uglLOtgYQkVE7W?=
 =?iso-8859-1?Q?GLiTF6EmfPRxkqaFHzZvJseP3d6eKobEfPfD8U9InFi4Dh1ht5i2V1obZI?=
 =?iso-8859-1?Q?sRcYP03iuHenshKQpwUsG6KdYn66s2/jRjLl3DjhTOrpmSD9BnuBIR6tG3?=
 =?iso-8859-1?Q?+fGJVYv+gA68Ql9+t7giMOJ+5C6VvLSL76sqdwOxz1WyCEee/4ooec8J0X?=
 =?iso-8859-1?Q?MnRBhx5FdHuYxmYtTXfUDsdm3a+BSavsH9YJVamXj+8hfN734rkSU1QILT?=
 =?iso-8859-1?Q?VjeJVpHMDu90kihtUbDrhjTW4/+MgJ4m8yUd4qWmwHO9XBRKx3Uo8gxZWc?=
 =?iso-8859-1?Q?PqtI3fDwKz7V4ioTd6AsqmFFIkqYysbl4yItTiqdgaK6llc5wAkNVDoFni?=
 =?iso-8859-1?Q?UMUKx3h4U2OVaSRxEotdpSVLx8Bzq5m5Qho7dMQ5rx6e+jxEfjaKNl1dAF?=
 =?iso-8859-1?Q?naUIC/B8D/tX/jr5n+oLOk+xOdSRdPS2d6Gao2Tv28NOaVAGTsh+PHv7fE?=
 =?iso-8859-1?Q?XFRQ4ahsNUSAMYnrtgN9lf/sekuSZvUen6c7smmx2OsH8JdVCWdwsuXasp?=
 =?iso-8859-1?Q?lKT0dpjScWKBdvx/aOxujCkQDS9eAK90zjdJS709jHIrWy/d75G1LObfr7?=
 =?iso-8859-1?Q?eKmAhlaMWvFGWozj1oB8YUgyeTmg5xw1cl/WzZHL9y1cEhqdkXqIMq/YSC?=
 =?iso-8859-1?Q?YB7WmNnswE9oiX9F7eD49JbqFCObE1ZTifIDywEcQG61b3WaEacF7XXi8x?=
 =?iso-8859-1?Q?j3Ehxl491s/v17MPwSe6EMHywyXZuONqRN6zg2TQ/7vw=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR12MB5849.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?ETqyFZaRRlABrYrGCtz6IMc9trM0GQF9vwruB/EYrLZ6cxbSlQ6oT5OaVq?=
 =?iso-8859-1?Q?BnHpT/AwmvI6iRd1eyE6iSII96ZdLgnREtTqW7As8xwde/axWEDiNgq8JK?=
 =?iso-8859-1?Q?l3RUBR7kCat3Yvv1QQ3kt89i3j2JkJY4T997sT/55gIdbZ53iXOVA0hUPW?=
 =?iso-8859-1?Q?vluMPWJhBqPBbfLZmG8HH6I+kOZTiehBNBZwND31ZNorWacIkzbZ7YTltW?=
 =?iso-8859-1?Q?hfKG5EWtd8sdVBixbfj4J5BvVa98jX1I4xQDDJXTUFHyqasRSgED1hPfF5?=
 =?iso-8859-1?Q?npAp7S2I9UioNDSM9Uwlq8zMYghirn8cG4FVGUqAvZK+JMJ9Si4tbIosUW?=
 =?iso-8859-1?Q?wy3C1C10/ftM/InXKgnP4RIWO9C527V3kXTjZ25W+PatRUQFW/qUc6m2Nf?=
 =?iso-8859-1?Q?aewdZ934odra6qRiVhqz+HRry1Smt1+l5RfedZn+zMqbHeEhw0/Hf/+XLL?=
 =?iso-8859-1?Q?4i3rcuycQ57wTk56Bd7iO02lLr3Ud+geL9Zw+s/wGpTzfgGxqm7X8pbLEL?=
 =?iso-8859-1?Q?hg59l3Y/kfTc8CYQs1c39+VfOpDO+1Whj576daK5ypxiXbiiWtLMy29E/k?=
 =?iso-8859-1?Q?8AXDuOreXU/ecbGmTa3NMnWIBSXUjxbZ5xUNx8QlyLX71xr7lO/tapMbEy?=
 =?iso-8859-1?Q?Z6pp+X1EOItWm0q999+GtQlfLuCvqOPeiR+JMtcbVvajTUnpptvm4Blmq3?=
 =?iso-8859-1?Q?sqoEuP2/QjNUpvARG/TIK8iImf63pBx6CNCFDF6fjo7jLieMT4cv1tHp78?=
 =?iso-8859-1?Q?dB/vdD28rcrn0vsGco8cRS35ylt1w+4qGd1q9fbxNbvm6yAFoLbHLlFxFs?=
 =?iso-8859-1?Q?MWHEMIkim1cXU2hGMCyx3aW3mC9YmBfC94Zsap7tCuIvgzilxBvFxuGujj?=
 =?iso-8859-1?Q?S8W9TjOar2Lr90YF/FZYWO2tnDuy3B8LIWLL8PMfIVBHGiYlR5U2sFd8hT?=
 =?iso-8859-1?Q?HwojpuTmR8nbwcszRCLoFPDv6vn0Ouuy6PD7bYxqoSWB0GIp01haRbNur7?=
 =?iso-8859-1?Q?Q3kF6+eQXLKpupwtIXcmktS/RFgevHf8EiCOtRoS60y5/Kf2ZWn7MURuwz?=
 =?iso-8859-1?Q?+wz1z0XYU/mPx17JDphZaG7RkYlt7CQQ0SHVsJ484W57CyrICe1fLrp0xh?=
 =?iso-8859-1?Q?22YYrFHd9bfjxUE6JESwBqQZBOPtX+dL0h+F9MjGAN8R0Eo41kRYZR8oaL?=
 =?iso-8859-1?Q?yBWqe7QcT+pJGleF/lzXmkp8ghK5tIpbSBzuDWj4JV4q0AR1Rc4ZixADjd?=
 =?iso-8859-1?Q?cYMUShLXxICJOwKw6lbBgck9Yr3MuOyYPEfRweaFm/iGMek+wTwSCsbJuk?=
 =?iso-8859-1?Q?I3zcjE505jNph+jzRENxwKKwXYib4w8Z/kjQ3KZ0wdYAAGm4pK5CkBGPBH?=
 =?iso-8859-1?Q?Lq1lmHCLEs6dhcovLCcPa1NE8uPP+KSU5cshyT8Pt15+Z6zKd6Ql49creF?=
 =?iso-8859-1?Q?tU8DnYk8Wx5epE2s0ZUl9LkdXzlOhXa6Q8XpA6SO9sz0lDR+IeQhxK6sA6?=
 =?iso-8859-1?Q?mpbw5lcP+2/JFO2MsmC36qpI2JcpUfxqlqDznhIncUXkV1ecDWceoVUkfI?=
 =?iso-8859-1?Q?TZSlo2LnXWABzq1+bRvVV5WOnhLZQh6d3s8OiMjIQKbisTgW614Kb7gvRx?=
 =?iso-8859-1?Q?e6ROBoY56yELM=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <C9574D558A7CB94F8D072276CBF6984C@amdcloud.onmicrosoft.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BL1PR12MB5849.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 655af769-e08f-47cd-2f2f-08ddd49a4182
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Aug 2025 03:35:14.5233
 (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: WS3PprTymW1ED2hs3vPczWtDSbDeXtlw9fxhW30K5eQUj3RdeggS9q/c2fOTBZCCg60m+g0ji288gfrInoxhbw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPFE4FC9FAB3

On 2025/8/5 16:43, Jan Beulich wrote:
> On 05.08.2025 05:49, Jiqian Chen wrote:
>> --- a/xen/drivers/vpci/msix.c
>> +++ b/xen/drivers/vpci/msix.c
>> @@ -655,6 +655,48 @@ int vpci_make_msix_hole(const struct pci_dev *pdev)
>>      return 0;
>>  }
>> =20
>> +static int cf_check cleanup_msix(const struct pci_dev *pdev)
>> +{
>> +    int rc;
>> +    struct vpci *vpci =3D pdev->vpci;
>> +    const unsigned int msix_pos =3D pdev->msix_pos;
>> +
>> +    if ( !msix_pos )
>> +        return 0;
>> +
>> +    rc =3D vpci_remove_registers(vpci, msix_control_reg(msix_pos), 2);
>> +    if ( rc )
>> +    {
>> +        printk(XENLOG_ERR "%pd %pp: fail to remove MSIX handlers rc=3D%=
d\n",
>> +               pdev->domain, &pdev->sbdf, rc);
>> +        ASSERT_UNREACHABLE();
>> +        return rc;
>> +    }
>> +
>> +    if ( vpci->msix )
>> +    {
>> +        list_del(&vpci->msix->next);
>> +        for ( unsigned int i =3D 0; i < ARRAY_SIZE(vpci->msix->table); =
i++ )
>> +            if ( vpci->msix->table[i] )
>> +                iounmap(vpci->msix->table[i]);
>> +
>> +        XFREE(vpci->msix);
>> +    }
>> +
>> +    /*
>> +     * The driver may not traverse the capability list and think device
>> +     * supports MSIX by default. So here let the control register of MS=
IX
>> +     * be Read-Only is to ensure MSIX disabled.
>> +     */
>> +    rc =3D vpci_add_register(vpci, vpci_hw_read16, NULL,
>> +                           msix_control_reg(msix_pos), 2, NULL);
>> +    if ( rc )
>> +        printk(XENLOG_ERR "%pd %pp: fail to add MSIX ctrl handler rc=3D=
%d\n",
>> +               pdev->domain, &pdev->sbdf, rc);
>=20
> Here as well as for MSI: Wouldn't this better be limited to the init-fail=
ure
> case? No point in adding a register hook (and possibly emitting a mislead=
ing
> log message) when we're tearing down anyway. IOW I think the ->cleanup()
> hook needs a boolean parameter, unless the distinction of the two cases c=
an
> be (reliably) inferred from some other property.
To make these changes, can I add a new patch as the last patch of this seri=
es?
And the new patch will do:
1. add a boolean parameter for cleanup hook to separate whose calls cleanup=
(during initialization or during deassign device).
2. call all cleanup hooks in vpci_deassign_device().
3. remove the MSI/MSIX specific free actions in vpci_deassign_device().

>=20
>> --- a/xen/drivers/vpci/vpci.c
>> +++ b/xen/drivers/vpci/vpci.c
>> @@ -321,6 +321,27 @@ void vpci_deassign_device(struct pci_dev *pdev)
>>                      &pdev->domain->vpci_dev_assigned_map);
>>  #endif
>> =20
>> +    for ( i =3D 0; i < NUM_VPCI_INIT; i++ )
>> +    {
>> +        const vpci_capability_t *capability =3D &__start_vpci_array[i];
>> +        const unsigned int cap =3D capability->id;
>> +        unsigned int pos =3D 0;
>> +
>> +        if ( !capability->is_ext )
>> +            pos =3D pci_find_cap_offset(pdev->sbdf, cap);
>> +        else if ( is_hardware_domain(pdev->domain) )
>> +            pos =3D pci_find_ext_capability(pdev->sbdf, cap);
>> +
>> +        if ( pos && capability->cleanup )
>> +        {
>> +            int rc =3D capability->cleanup(pdev);
>> +            if ( rc )
>> +                printk(XENLOG_ERR "%pd %pp: clean %s cap %u fail rc=3D%=
d\n",
>> +                       pdev->domain, &pdev->sbdf,
>> +                       capability->is_ext ? "extended" : "legacy", cap,=
 rc);
>> +        }
>> +    }
>=20
> With this imo the patch subject is now wrong, too.
>=20
> Jan

--=20
Best regards,
Jiqian Chen.


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 03:39:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 03:39:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071100.1434642 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujUzs-0006Un-QH; Wed, 06 Aug 2025 03:39:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071100.1434642; Wed, 06 Aug 2025 03:39: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 1ujUzs-0006Ug-NC; Wed, 06 Aug 2025 03:39:24 +0000
Received: by outflank-mailman (input) for mailman id 1071100;
 Wed, 06 Aug 2025 03:39:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=sOQm=2S=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1ujUzr-0006T3-1S
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 03:39:23 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on2060a.outbound.protection.outlook.com
 [2a01:111:f403:2412::60a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id efab2b3c-7276-11f0-b898-0df219b8e170;
 Wed, 06 Aug 2025 05:39:20 +0200 (CEST)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by SJ5PPFE4FC9FAB3.namprd12.prod.outlook.com
 (2603:10b6:a0f:fc02::9a7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.16; Wed, 6 Aug
 2025 03:39:14 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285%4]) with mapi id 15.20.8989.020; Wed, 6 Aug 2025
 03:39: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>
X-Inumbo-ID: efab2b3c-7276-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=RmwgJq/XI6qKJbaZ0kP7iZ/dQfLg476lisouKHRSkHN6jrHP1kMOFIegb8bYuqtXW03BZ5ro5mbZKSFpEdXKlSLJrA/nNwxGEN2qpW6j8Cyk6zmQkLbTCjWLLwaiEM7rBZmbSic9aOXD0dRxM3VhE+Tmh5wMgQmHtSOO+hvbpniqGYqJFW9TdH7Ft2fL7vx0ZkutQOOfddY/PXawL5foinrZI6mpgWEZ1l0MTd/2S/UkLyUL0NCq3VRnfOP24tq0iqiuOTIrl0M3FkqoVFe8d6AVACaGAVlZnwjUHroxIkmnsLV0Zr8VJeWmBfx6sKLEt1CqLDBGaPlujGbNfFDIWQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=pLkmqVTfKVZJZB5yp+5RloWood+UEHnFL3yzWi//LvM=;
 b=gzI+djsJjn/tKxlvtt+PlqWUcXwHaBepo6Ehhv1/HuWIaDKlHz25d+KNOyLftafFEB/tWjFsLbEOsUH3aqLKnTzDhLAsO7DbZ/iyh7kiEgPxK/CB/PqmgQgwK451slFD1prwJkIguaCvGWVSLGeJf8Xb85I0xGgdkgnnqFvzj5eettMDjmAxMNoJ62NahBuGxPv0GdEIlY1L2sag9iUdiCDUxTH7uf4MmkNNw3shuO3Ws/ypgmo6BQ15R1PVAHC4FlC2GcQlGTwy/VmqNQA17kCuamggPT2PcRXy0EGpPFUC27QbuzOG+LdRtSDRMVKkBHgsJNzF8GvlvRLDnUFpbQ==
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=pLkmqVTfKVZJZB5yp+5RloWood+UEHnFL3yzWi//LvM=;
 b=36ROVVcaLYC1TTT1GqmYMK7c90cTrc0Gy83bV6V23KX9xf2N+zZsuGr9pBoqtbuiRJipRDgqAJGZ9Pf4hc85hJFiZxFazBEPYHDShU26mbO2xE/5OLNp1yIly0OEb2rroP/eovzD/YlY2edXD0R2M8/TL684AWIgAlW9USBETbY=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, "Huang,
 Ray" <Ray.Huang@amd.com>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [PATCH v10 2/4] vpci/rebar: Free Rebar resources when
 init_rebar() fails
Thread-Topic: [PATCH v10 2/4] vpci/rebar: Free Rebar resources when
 init_rebar() fails
Thread-Index: AQHcBbvxdj1/OHisv0yt2jqXoA238rRTv+0AgAHBO4A=
Date: Wed, 6 Aug 2025 03:39:14 +0000
Message-ID:
 <BL1PR12MB5849A83162C8B4B2AD11E45CE72DA@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20250805034906.1014212-1-Jiqian.Chen@amd.com>
 <20250805034906.1014212-3-Jiqian.Chen@amd.com>
 <a14449dd-a7dd-4369-9e73-656442b36f2a@suse.com>
In-Reply-To: <a14449dd-a7dd-4369-9e73-656442b36f2a@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: BL1PR12MB5849.namprd12.prod.outlook.com
 (15.20.8989.017)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BL1PR12MB5849:EE_|SJ5PPFE4FC9FAB3:EE_
x-ms-office365-filtering-correlation-id: 1eef808b-cc92-4642-206c-08ddd49ad092
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?S3djdTFENlJmWE9YS0dtdjdTVGRiTG1vWDJrdTFEY2t3TlA5Uk1NU0N5N1RE?=
 =?utf-8?B?d2VncnRWaEptRDBMZFB5THFwd3Y5d1h1bHRJK3VVSGxjdVJJK3ZjNEJPQmhx?=
 =?utf-8?B?VnFORWI0Y2R2ZmZUUXhFYWJaazFVZVIwL1VZcmN6ZnFuVFZTUEk4Um5jY0Fp?=
 =?utf-8?B?MURqT2lJTmNJd3k4MXV2QkdVaU5zU0ZTcHZEVHRtVFNTelZUZ21SVCsxZHNm?=
 =?utf-8?B?SkNqMXpTOUJrcDRnVGt1MC9kTm9pa0RzMVp0OTVUbi9nTWsySG1OaW1rbmJE?=
 =?utf-8?B?RU1oaElYVG96WGJBTW1hTERDeFd1bWxNRDhUZ3JncXZYSzNFN3MvaWk1cEZK?=
 =?utf-8?B?dVpKaUdjOCtMaHB2MUpSY0NJeW50S21MQWZQRTVlSVdXNVl1VFVDMytBbzNI?=
 =?utf-8?B?ZVRPMXdmY3cwVEk2OER0R2hmUnlTdTFzMGp1ekJ6bmdwM2N0aEpxQXdrVXBw?=
 =?utf-8?B?dzZ5ZUVQRFZPRDcvRXBtTTdpS0d6VnlsVitvYlhuWVhyU0pnVjhUTURZaHNS?=
 =?utf-8?B?TFpUUm5Ga21vbzhPVktlRlE2VzRxTmJoY2VEY3BVMDJvcW45WVgwKzJ3SjNq?=
 =?utf-8?B?QUwxbFBnc0RkOXQ1VDIzd2hkZWlobkl0QVJxYW5obSt2NUJYTklXcm1xOTdJ?=
 =?utf-8?B?R0xlWUhqM3lrQVNGMkxSTlNSU3pkVTBDc3oxWEx3cnVSVllhdmltMHpxQTVZ?=
 =?utf-8?B?eENBS00vZGk0ZWMzTWpKbEVIZEl4SGpjMFl4eTlvZ01ObnQ3Z3p0OWNYakNl?=
 =?utf-8?B?M3U2VGtxWExlN2xGUmRpc05DT0VZeGZ3VVVDUUtHR2R5NUxzWCtFRWJpN2tZ?=
 =?utf-8?B?WE0wWHA1aUZMQnVXUkhsZE9samZDSDlSZlZMa0NFc040UFE1blN3U1N1KzVI?=
 =?utf-8?B?eVE1RTBwYlViWklXcEJsdjBhTFdXU1p1c1A2VHNVR1dKbTl5ZlVjSEpDd1Fv?=
 =?utf-8?B?Y0VJTU1VTzV0eTd4Y0lpL1lFWW9VM3VLMDRnTSt1QldXQkliMy80WGhyNVpL?=
 =?utf-8?B?cHdsZ0NMeHFoZ3pwa25wZUZFZkxrV0pzcHVLWWFicXFIelZ5NUJZdHZxa3Vt?=
 =?utf-8?B?cWpOUmVtZjM0M0NFN0FjdTNFR0plbThwMUhwZmlkM1RRUDE2SUFNNTVLM1NZ?=
 =?utf-8?B?eUhWL25vUnloZWgzb0I5VzBZLzhTUW5KN3BSN056djBGNjRicDI2QmhBc3ZK?=
 =?utf-8?B?Zlk5anRucXJ5NURCTEd6V1ZzZmprcU1ycHgvZGkwaytpcXZkWVhxSHd0ckxG?=
 =?utf-8?B?ZHJPdThGeDhHbG9vRXg3ZmgzSytpSFM0QWRIWCs0cFYxRFZYYS85UzM4cHZ5?=
 =?utf-8?B?clNXWE4wb3JLdWRYT0trWEhJUi9KdkUwZEVubDRaUC8xbmZrS044ZWJyZGMv?=
 =?utf-8?B?TG9WZ2d6VzBsSEtlUHlLRHJ4NkVwUTBYTVZOYzlISFlwN0wxVWpMM3E4SkJP?=
 =?utf-8?B?V3czNEVHTTRQNmRJcHMyV0RrenRDUDF5OHc3dG4zSEV2ZWgyV2sxSkNvRTd0?=
 =?utf-8?B?TldtOXkwQm9FazRkb0NYWmdNZktRRjMrSUFUdFd4cXhZMlUvVy9FWnFNNEsy?=
 =?utf-8?B?NHhMVENuMjAybDVxN3BIQ1FPcFRQYjVsNS9uUUt4R20wazRYOS9Genlra21H?=
 =?utf-8?B?WFZRVGxTZmg0UmNiek5MT2NzYmxia0JBSGdMOWg5U2lqdFl2bUY4WUtma1FJ?=
 =?utf-8?B?a200OGxDZmFoVEFUMVk4K1hkOFJOMHpBQUNOMUlTN1N3Z0VlSE5kei9jcDVJ?=
 =?utf-8?B?d0lVU1JTMFUwWEFCZEU2bUxqTEZmK2xKY1Zzajg1WHhIMERsRWVYaUlFcU0z?=
 =?utf-8?B?Z3VNQ3NCUkgxMFRVUVpObktKNHRubWJzTVpyN2lKdmxES0ZDTVZoUHU5Tmht?=
 =?utf-8?B?VTBvRzJoazZmZFhIUFR4OHcyaGNRT2lveXNBZ244blhZUUR6MU9NaFVSTHVI?=
 =?utf-8?B?R3lnOTNYdm5IZFV1Q1NUb0EzbUFURFJRSW54V0ZLbjVIQVcyRExvcEhUWnN4?=
 =?utf-8?Q?lgtVqti6KRdt7TohKn5B2dJ514Stsw=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR12MB5849.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?U05LWXZyN29PWjRFZisxY1NTNENlbUd6OHdCam1GTGdXeGJJTnkreldkNGFz?=
 =?utf-8?B?VTUrQWt1am9uWDJCbzBPVEpKRzQ0MkhPcy9sV09xWGhGcHpRRHNHSUJBRTYy?=
 =?utf-8?B?NG96aDNDUmRxT3dHc1dlYXl5Y3JwWnpyZFRWRmZGZEx6aEh6bUdiSTZNWlZG?=
 =?utf-8?B?d3NHWVV2RjBzZklMSThnTVdPeWtSbVBIRFI1STc5SnJlbWVyNDd1d0dGb1Iz?=
 =?utf-8?B?MFY4WXQ4TnRoQktqTmpieTcydHJMVmxtbS9VMnV5RDlOdmo3eElRUkRua3hl?=
 =?utf-8?B?bFE2N0NHcDRLNmpVMEFaTWhheW1HOS9jZDM4WmdYVVUwN0FVYk1aVDhrQVFu?=
 =?utf-8?B?QlJhVTNnNWdCTWFONXpMTkZxSFBZODRwWEdmeEVMYnY5RVZGSHlnTC94a3d4?=
 =?utf-8?B?dE5CZWlKK3ZCV1JGSlRiYldYNDhZem9OS0wzcWN6dytzM3FMZ2xzK280ak0y?=
 =?utf-8?B?Z1BBYnJKd2pXbnZkNXEwOHZpSWY0U3BEbW4wM2ZlZEZsc0k0NldmN0NLeGJ5?=
 =?utf-8?B?Rk1UOU92aHNpRVFFYlpXUXN0b1NYV29XMlhab1Y5aFhOZXdIQWc3SXlVbTFW?=
 =?utf-8?B?OEovT0MrdzBkeFpYdjlicWFLd29yU3JIY2xJQWZYMVZwcnNoT1M1cmtQUFkr?=
 =?utf-8?B?ZXdudVFsMml6QVN6dEw2YzAxWTNHQ2d4Rks2dmNyOVYwR3IvMXI5N3QwOEY5?=
 =?utf-8?B?QVpOZTU3MnNiZFFzdCtRdzBoaTRGQmVlcndxck1vNFdOZitzTzdMaUlwSUpD?=
 =?utf-8?B?QUFNUWJhT0xvQ3lldkxzeHdNV2x4S25pamNnRCt2clJ0Z3EwRFdPV1JMQlc5?=
 =?utf-8?B?Sm5lQ1RBM05IKzREZ0E2blJHMkdnOERDSWJUOEZGZnl5NCtqdFhkZHJ5RC9K?=
 =?utf-8?B?Q2tLeURWU2xFSkRLSnNxNmFnd3JCTzlHWm9tUGdaVlp0bHhmcmNIa21BOXpO?=
 =?utf-8?B?c2ZXcnFUYWNGUGlIMTRPYXMxazRScG9SOHg1bVFqZnc1T2tMd2pPU2VleUVu?=
 =?utf-8?B?dkJpZWlXbnJXSFUxY3lURnk4QllsMW5zSDQ0OUs3TWFoNE9FbUhhNTRNV0tO?=
 =?utf-8?B?dVo5MzJJMlhCNWlxSjBZaCt5dDdndDJpenRNN3NPTmYxM3hZMmhTZU1idjVQ?=
 =?utf-8?B?Ty85NWtBVlFRRDdJcHpobVVFWmZ6ZnFZZE1ZTHlEcWhHWFZOSkNjOGtyb3Qr?=
 =?utf-8?B?YjVIWnVvM25VNjJqRGFvbno1YUgwOVFIbDJ3YjZyUUZhbDkxSUNoWUpnWURl?=
 =?utf-8?B?QTdtZGtrdjFRbGlvY2YrbkZGeUtWQUlGVkE5VWJOZXd1Yk9DSWZJcWhDWUNM?=
 =?utf-8?B?WUtXbWhnVm5aSGRiRlB6TnNPem1RNGkvaHpxWWdKNGpneGQ2VGk1QUh5MlpQ?=
 =?utf-8?B?ZE04WnNwMXBhTmlYYjBiK2orTnV1Tm1vYnV4OWpPaWJzcURSOVNBd0VwVVNm?=
 =?utf-8?B?aTRvN21KRlV6RExLS0RoVlNHbURzcFRPbjUzQXVOOStwNERoTHBSWUxnb2JH?=
 =?utf-8?B?VGY4Z05Fc1FLdytNbGRVV3drMWxaK1pzTlNSQUhwak5ackpiTkFUZ2RMSzBi?=
 =?utf-8?B?MlY3c0I0RU84aWZTTkRxYVd3UitWa2RqR1ZIRFYzVmtpcGh3bnZGeWNmbGNW?=
 =?utf-8?B?ZDZuOUU5MGRubkV2RFJQdGxYM2RaWG5sNzMzQy9aYStscFlaeGJveXJVdVl3?=
 =?utf-8?B?Snd4b0xRT3hDZmV0U0R4M2pKMlNzdDlIQURlcHZIbEtQd0UrcS81VFhEdHFp?=
 =?utf-8?B?OHlVaEl3VWNta0VVOEpOdXdRdENzbGdSa0wvZ28wYllteGtMTEFKeGpzMjlX?=
 =?utf-8?B?UHBnS1ZGYkNLY255Sjd2b2ZiMXJRNUpUQ2F1eW1pNmxPNzJ1SG5UWWp5aS9h?=
 =?utf-8?B?WGZkQzh1Njk4VHFCZWxHVkI4SGlrNjJ5cjNlVWNMQjI2cDMwZVdBdjZoWC9V?=
 =?utf-8?B?SUpWUnZseVEwQ1dRRDBOeU9hKzYvWlRVc3k0YktYYUw3V1BVU014UjZob3Iy?=
 =?utf-8?B?RHVBdk5iUTBsSmRyT251S3hpL0dzTVVPWkY4YkVDZlZFZWFlZnpjWmQwdWFQ?=
 =?utf-8?B?WVdWUllLQVNRbUFoWEordWRISC9YS2xqdXBBSnQ0QjN3c1RESGxYQ2RjN2dv?=
 =?utf-8?Q?HzW0=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <69BC010C2C3CE14B815346F26FA9C342@amdcloud.onmicrosoft.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BL1PR12MB5849.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1eef808b-cc92-4642-206c-08ddd49ad092
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Aug 2025 03:39:14.5450
 (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: CAgE0xrtPT0IgkBQymSp7v8K5Itsb8/6SXP2VNj24UbICJQXj9sJ1AUN5ydu33oSYhjpQHuU6qCLBP1SJO0T/Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPFE4FC9FAB3

T24gMjAyNS84LzUgMTY6NDgsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAwNS4wOC4yMDI1IDA1
OjQ5LCBKaXFpYW4gQ2hlbiB3cm90ZToNCj4+IC0tLSBhL3hlbi9kcml2ZXJzL3ZwY2kvcmViYXIu
Yw0KPj4gKysrIGIveGVuL2RyaXZlcnMvdnBjaS9yZWJhci5jDQo+PiBAQCAtNDksNiArNDksMzIg
QEAgc3RhdGljIHZvaWQgY2ZfY2hlY2sgcmViYXJfY3RybF93cml0ZShjb25zdCBzdHJ1Y3QgcGNp
X2RldiAqcGRldiwNCj4+ICAgICAgYmFyLT5ndWVzdF9hZGRyID0gYmFyLT5hZGRyOw0KPj4gIH0N
Cj4+ICANCj4+ICtzdGF0aWMgaW50IGNmX2NoZWNrIGNsZWFudXBfcmViYXIoY29uc3Qgc3RydWN0
IHBjaV9kZXYgKnBkZXYpDQo+PiArew0KPj4gKyAgICBpbnQgcmM7DQo+PiArICAgIHVpbnQzMl90
IGN0cmw7DQo+PiArICAgIHVuc2lnbmVkIGludCBuYmFyczsNCj4+ICsgICAgdW5zaWduZWQgaW50
IHJlYmFyX29mZnNldCA9IHBjaV9maW5kX2V4dF9jYXBhYmlsaXR5KHBkZXYtPnNiZGYsDQo+PiAr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ
Q0lfRVhUX0NBUF9JRF9SRUJBUik7DQo+PiArDQo+PiArICAgIGlmICggIXJlYmFyX29mZnNldCB8
fCAhaXNfaGFyZHdhcmVfZG9tYWluKHBkZXYtPmRvbWFpbikgKQ0KPj4gKyAgICB7DQo+PiArICAg
ICAgICBBU1NFUlRfVU5SRUFDSEFCTEUoKTsNCj4+ICsgICAgICAgIHJldHVybiAwOw0KPj4gKyAg
ICB9DQo+PiArDQo+PiArICAgIGN0cmwgPSBwY2lfY29uZl9yZWFkMzIocGRldi0+c2JkZiwgcmVi
YXJfb2Zmc2V0ICsgUENJX1JFQkFSX0NUUkwoMCkpOw0KPj4gKyAgICBuYmFycyA9IE1BU0tfRVhU
UihjdHJsLCBQQ0lfUkVCQVJfQ1RSTF9OQkFSX01BU0spOw0KPj4gKw0KPj4gKyAgICByYyA9IHZw
Y2lfcmVtb3ZlX3JlZ2lzdGVycyhwZGV2LT52cGNpLCByZWJhcl9vZmZzZXQgKyBQQ0lfUkVCQVJf
Q0FQKDApLA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfUkVCQVJfQ1RS
TChuYmFycyAtIDEpKTsNCj4+ICsgICAgaWYgKCByYyApDQo+PiArICAgICAgICBwcmludGsoWEVO
TE9HX0VSUiAiJXBkICVwcDogZmFpbCB0byByZW1vdmUgUmViYXIgaGFuZGxlcnMgcmM9JWRcbiIs
DQo+PiArICAgICAgICAgICAgICAgcGRldi0+ZG9tYWluLCAmcGRldi0+c2JkZiwgcmMpOw0KPiAN
Cj4gTVNJIGFuZCBNU0ktWCAobm93KSBoYXZlIEFTU0VSVF9VTlJFQUNIQUJMRSgpIG9uIHRoZWly
IHJlc3BlY3RpdmUgcGF0aHMuIElzDQo+IHRoZXJlIGEgcmVhc29uIHRoaXMgc2hvdWxkbid0IGJl
IGRvbmUgaGVyZSBhcyB3ZWxsPw0KV2lsbCBhZGQuDQoNCj4gDQo+IE1TSSBhbmQgTVNJLVggZnVy
dGhlciBoYXZlIGFub3RoZXIgYWRkLXJlZ2lzdGVyIGJlbG93IGhlcmUsIHRvIGVuc3VyZSB0aGUN
Cj4gY29udHJvbCByZWdpc3RlciBjYW5ub3QgYmUgd3JpdHRlbi4gQWdhaW4gLSBpcyB0aGVyZSBh
IHJlYXNvbiB0aGUgc2FtZQ0KPiBzaG91bGRuJ3QgYmUgZG9uZSBoZXJlPyAoSWYgc28sIEkgdGhp
bmsgdGhpcyBtYXkgd2FudCBwdXR0aW5nIGluIGEgY29tbWVudC4pDQpTaW5jZSBleHRlbmRlZCBj
YXBhYmlsaXRpZXMgYXJlIG9ubHkgZXhwb3NlZCB0byBkb20wLCBhbmQgZG9tMCBoYXMgbm8gbGlt
aXRhdGlvbnMgdG8gYWNjZXNzIGRldmljZXMuDQpJdCBzaW5jZSB0aGVyZSBpcyBub3QgbXVjaCBw
b2ludCBpbiBhZGRpbmcgc3VjaCBhIGhhbmRsZXIgZm9yIHJlYmFyLg0KDQo+IA0KPiBKYW4NCg0K
LS0gDQpCZXN0IHJlZ2FyZHMsDQpKaXFpYW4gQ2hlbi4NCg==


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 04:31:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 04:31:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071123.1434656 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujVoG-0005eD-Sr; Wed, 06 Aug 2025 04:31:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071123.1434656; Wed, 06 Aug 2025 04: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 1ujVoG-0005dw-Nv; Wed, 06 Aug 2025 04:31:28 +0000
Received: by outflank-mailman (input) for mailman id 1071123;
 Wed, 06 Aug 2025 04:31:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=CR+j=2S=m5p.com=ehem@srs-se1.protection.inumbo.net>)
 id 1ujVoF-0005b9-4C
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 04:31:27 +0000
Received: from mailhost.m5p.com (mailhost.m5p.com [74.104.188.4])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 35b26d50-727e-11f0-a322-13f23c93f187;
 Wed, 06 Aug 2025 06:31:25 +0200 (CEST)
Received: from m5p.com (mailhost.m5p.com [IPv6:2001:470:1f07:15ff:0:0:0:f7])
 by mailhost.m5p.com (8.18.1/8.17.1) with ESMTPS id 5764Us6B006240
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Wed, 6 Aug 2025 00:30:59 -0400 (EDT) (envelope-from ehem@m5p.com)
Received: (from ehem@localhost)
 by m5p.com (8.18.1/8.15.2/Submit) id 5764Up9t006239;
 Tue, 5 Aug 2025 21:30:51 -0700 (PDT) (envelope-from ehem)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 35b26d50-727e-11f0-a322-13f23c93f187
Date: Tue, 5 Aug 2025 21:30:51 -0700
From: Elliott Mitchell <ehem+xen@m5p.com>
To: Paul Leiber <paul@onlineschubla.de>
Cc: xen-users@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>
Subject: Consider changing CONFIG_ACPI default on ARM? (was: Re: Xen bootup:
 issue with Raspberry Pi 5?)
Message-ID: <aJLae1Nl0pyOZgyh@mattapan.m5p.com>
References: <CAO_48GG1Tg0d3ATnNAYNr0cg7Ty_zsnzT29=dpkk99DxyTWcmg@mail.gmail.com>
 <fceb5df8-d628-479d-acb3-d1d26409fbac@onlineschubla.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <fceb5df8-d628-479d-acb3-d1d26409fbac@onlineschubla.de>
X-Spam-Status: No, score=0.4 required=10.0 tests=KHOP_HELO_FCRDNS autolearn=no
	autolearn_force=no version=4.0.1
X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on mattapan.m5p.com

Sigh, resending as I lost some of the intended Cc targets when originally
creating the message.  Sorry about the duplication for people who have
already seen, but I thought this might be worthy of wider discussion.



I would like to draw the attention of a few people on xen-devel to the
thread which occured on xen-users recently and quoted below:

https://lists.xenproject.org/archives/html/xen-users/2025-07/msg00001.html

On Tue, Jul 01, 2025 at 10:01:13PM +0200, Paul Leiber wrote:
> 
> Unfortunately, I don't have a direct answer to the question (as is so often
> the case, due to my limited knowledge and experience). However, I am
> successfully running Xen on a RPi 4 (mostly, except for some VLAN related
> networking issues).
> 
> I used instructions in [1] to install vanilla Debian on the RPi, including
> UEFI boot and grub. I then compiled Xen with expert options and ACPI
> enabled.
> 
> I don't know if there are better solutions. For example, I suffer from the
> fact that I2C doesn't work when using UEFI boot on a RPi. Nowadays, Debian
> provides their own vanilla Debian images for RPi and with working I2C, but
> these images are using a different boot method that I didn't know how to use
> with Xen.  So far, the procedure described above seems to be the easiest
> solution for me.


> [1] https://forums.raspberrypi.com/viewtopic.php?t=282839
> 
> Am 30.06.2025 um 12:35 schrieb Sumit Semwal:
> > 
> > I've just begun to experiment with the Raspberry Pi 5, trying to run a
> > simple xen + Dom0 setup, using uBoot, and the bookworm based Rpi
> > distro.
> > 
> > I've tried combinations of the following setup:
> > 
> > 1. prebuilt Rpi5 kernel + dtbs, and have also tried to build them from
> > source [1]
> > 2. Xen from upstream [2] and xen-troops [3]
> > 3. upstream uBoot from [4]
> > 
> > but with the same result: [short log below; I can provide a fuller log
> > if needed]
> > 
> > (XEN) DT: ** translation for device /axi/msi-controller@1000130000 **
> > (XEN) DT: bus is default (na=2, ns=2) on /axi
> > (XEN) DT: translating address:<3> 000000ff<3> fffff000<3>
> > (XEN) DT: parent bus is default (na=2, ns=1) on /
> > (XEN) DT: walking ranges...
> > (XEN) DT: default map, cp=0, s=1000000000, da=fffffff000
> > (XEN) DT: default map, cp=1000000000, s=100000000, da=fffffff000
> > (XEN) DT: default map, cp=1400000000, s=400000000, da=fffffff000
> > (XEN) DT: default map, cp=1800000000, s=400000000, da=fffffff000
> > (XEN) DT: default map, cp=1c00000000, s=400000000, da=fffffff000
> > (XEN) DT: not found !
> > (XEN) Unable to retrieve address 1 for /axi/msi-controller@1000130000
> > (XEN) Device tree generation failed (-22).
> > (XEN) debugtrace_dump() global buffer starting
> > 1 cpupool_create(pool=0,sched=6)
> > 2 Created cpupool 0 with scheduler SMP Credit Scheduler rev2 (credit2)
> > 3 cpupool_add_domain(dom=0,pool=0) n_dom 1 rc 0
> > (XEN) wrap: 0
> > (XEN) debugtrace_dump() global buffer finished
> > (XEN)
> > (XEN) ****************************************
> > (XEN) Panic on CPU 0:
> > (XEN) Could not set up DOM0 guest OS (rc = -22)
> > (XEN) ****************************************
> > 
> > 
> > I'm certain I'm missing something, but before I delve deeper, I just
> > wanted to ask if this is a known issue, and if so, are there any
> > workarounds or solutions available for this?
> > 
> > Any help about this is highly appreciated!
> > 
> > Thanks and Best regards,
> > Sumit.
> > 
> > [1]:  https://github.com/raspberrypi/linux rpi-6.12.y branch
> > [2]: git://xenbits.xen.org/xen.git - main branch
> > [3] xen-troops https://github.com/xen-troops/xen - rpi5_dev branch
> > [4]: https://github.com/u-boot/u-boot.git master branch

Ultimately Debian is choosing to leave most defaults alone.  So far the
Xen developers have left CONFIG_ACPI defaulting to off on ARM*.  The
Debian project doesn't have paid people to support Raspberry PI hardware,
despite being rather common.  As a result there aren't any official
Raspberry PI images, but people associated with Tianocore have gotten
generic images to boot on Raspberry PI hardware.

I'm unsure of the likelihood of getting the Debian maintainers to
override the default.  Yet due being by far the simplest way to install
Debian and Xen on a very common ARM64 platform, perhaps the Xen
developers should consider changing?


-- 
(\___(\___(\______          --=> 8-) EHM <=--          ______/)___/)___/)
 \BS (    |         ehem+sigmsg@m5p.com  PGP 87145445         |    )   /
  \_CS\   |  _____  -O #include <stddisclaimer.h> O-   _____  |   /  _/
8A19\___\_|_/58D2 7E3D DDF4 7BA6 <-PGP-> 41D1 B375 37D0 8714\_|_/___/5445




From xen-devel-bounces@lists.xenproject.org Wed Aug 06 06:06:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 06:06:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071184.1434677 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujXHy-00011t-7T; Wed, 06 Aug 2025 06:06:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071184.1434677; Wed, 06 Aug 2025 06:06:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujXHy-00011L-4o; Wed, 06 Aug 2025 06:06:14 +0000
Received: by outflank-mailman (input) for mailman id 1071184;
 Wed, 06 Aug 2025 06:06:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z+Xv=2S=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujXHx-00011F-3T
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 06:06:13 +0000
Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com
 [2a00:1450:4864:20::52c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6e1a9472-728b-11f0-b898-0df219b8e170;
 Wed, 06 Aug 2025 08:06:02 +0200 (CEST)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-61592ff5ebbso10952893a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 23:06: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
 4fb4d7f45d1cf-615a8eff8d3sm9556917a12.6.2025.08.05.23.06.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Aug 2025 23:06: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>
X-Inumbo-ID: 6e1a9472-728b-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754460362; x=1755065162; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Opw6cwdEdY1O9xZ3NlnSWq+ar4Sny1AcRzHjStgQApo=;
        b=SFKprCW6fr/jBDafGqXWmYNiqO28hsCWueFggrDuL+u5sXqyRWklcjjgheVzRuImt5
         B2VOfu+qqhRU8+HYn1yxgUooWPLi7hsz9PBy0WH5aJdbPUfp+DvFR04ckN9PfCSCU94N
         Uv+86anLjY46h0fc9PaEwMT+LpGVbnijfgisUnMUrIP4F6fa8Pc7PMJrDGDPx2RpyUFs
         15677l1gZE6RN1WO0llLb+wDko21Kt0DI3w+p/UOBMuGw2tiLJIbFh6LLi9jBfK5VMHG
         Qz25BluMMai/aOxCV8QGo0o3+QOb5yTNnRyCV+HK4s44eoo2sk9S015RAHVxB5dLrtjQ
         iNCg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754460362; x=1755065162;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Opw6cwdEdY1O9xZ3NlnSWq+ar4Sny1AcRzHjStgQApo=;
        b=eSK5RPjllko75CCb0fDbAq6Ow+QpOitZ+RSkwgV3cebCyInyuGZUTq2GClt1GHcVWx
         kShUcpNozQImgYDc2Afdd4elnat5BOU/hrnO7Bm1TppYwy18JdVunLUILifFv5a50tz1
         hYiCTrCgH97XCamux17jAQDbcEmkjiIjt/y6gJ2xbmimFBF8HZZ7Irw+F7bs20ptKct3
         Oyum1FV8RIX0CUviBZ7ZIBgv8etT2iL+MCENYy3SGLY2G6lwX8x0y5UM6m5xn6Vnmmac
         C4YZm9+/nK4/rJjnVSB/kOjKHvrg9JW9J5lQfZcJx8rNUOBu51yQIyeYferP6vw6cgXv
         KK6g==
X-Forwarded-Encrypted: i=1; AJvYcCUN5PsO3AlKRjoq1G25FlQ5GWx9YAem6vsTyTxJZ0y4dwX1RIPQxkcs9le6qmz3YmY32IQe1nh7oDE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyG2LAol5AamxHqPzTcKDoueSHhxlvygRYEhMtmYiXefxfWNH26
	9krxdEcHHM8BsfhdBEE1oOoEcD8JWm0QhwC7Y6kCEnTn3kw3R7DjWLtVC5rzyrfc2g==
X-Gm-Gg: ASbGncuU7XocLrJ+BHWXjWn4k0rmSQAoYfB0ycqjPPJAXkm57nNN660sFfVPIxNse4H
	9fbOp1l8xzeHXKMH2KVu7LJWy26teeSrmglo5MNN/KcDdAXs1SMRloUx8WYkSQA2/a/9V2GSo6v
	VcvXVcmCw4CEECkNUaj2ZPCPj8nSJt357habQqy9S+X1RD2E818mQ1vMrRBQcNN8kP2KJHxNgN6
	jc3J3N615Y+HIK9i3pQyaWMHpjw5CLMWYzALpyUccigvbudzXe5rmo+olXwB1WxJiLa/ShywuQR
	HEl8y2aWYe7yzcTc0wsA5SZHsylLo0BUx3KVzShOgvs8BvhNWg9jSYrjDHC1SFYkfkhFLCbALw3
	GhC+3Hs4b5gGILLdJ7iHbz3FQbsLnGo0jNZlx2Pkuh5dCTm6uM4n1KR+RwoM+oH8WU699la7+CU
	08AxW/dow=
X-Google-Smtp-Source: AGHT+IHKRq56B+8V+eItYh1+GilccYBAN/RtJ3Wz5bTLkMLnVcrU9StonjqOOiWDdmpwEE4y215Xyg==
X-Received: by 2002:a05:6402:42d4:b0:615:cc03:e6a2 with SMTP id 4fb4d7f45d1cf-61796099915mr1370417a12.1.1754460361513;
        Tue, 05 Aug 2025 23:06:01 -0700 (PDT)
Message-ID: <242a93cf-20f7-4fcd-8eef-6945af5d864c@suse.com>
Date: Wed, 6 Aug 2025 08:05:59 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Xen 4.21 Development Update [June-July]
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>,
 Ayan Kumar Halder <ayan.kumar.halder@amd.com>,
 Mykyta Poturai <Mykyta_Poturai@epam.com>, Juergen Gross <jgross@suse.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Luca Fancellu <luca.fancellu@arm.com>, "Jason Andryuk,"
 <jason.andryuk@amd.com>, Sergii Dmytruk <sergii.dmytruk@3mdeb.com>,
 "Penny Zheng," <Penny.Zheng@amd.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki=2C?=
 <marmarek@invisiblethingslab.com>, Roger Pau Monne <roger.pau@citrix.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, dmkhn@proton.me,
 Mykola Kvach <xakep.amatop@gmail.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Grygorii Strashko <gragst.linux@gmail.com>,
 Alejandro Vallejo <agarciav@amd.com>,
 "committers@xenproject.org" <committers@xenproject.org>,
 Community Manager <community.manager@xenproject.org>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <ae2c2e35-72df-40ed-bffe-391f3c11b826@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: <ae2c2e35-72df-40ed-bffe-391f3c11b826@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.08.2025 20:19, Oleksii Kurochko wrote:
> * Full list of items : *
> 
> = Projects =
> 
> == Hypervisor ==
> 
> * [4.21] xen/console: cleanup console input switch logic (v5)
>  Â  - Denis Mukhin
>  Â  - 
> https://lore.kernel.org/xen-devel/20250530231841.73386-1-dmukhin@ford.com/
> 
> * [4.21] xen: introduce CONFIG_SYSCTL (v4 -> v8)
>  Â  -Â  Penny Zheng
>  Â  - 
> https://lore.kernel.org/xen-devel/20250711043158.2566880-1-Penny.Zheng@amd.com/
> 
> * [4.21] Several CI cleanups and improvements, plus yet another new runner
>  Â  - Marek Marczykowski-GÃ³recki
>  Â  - 
> https://lore.kernel.org/xen-devel/cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com/
>  Â  - 
> https://patchew.org/Xen/cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com/
> 
> * [4.21] automation: Refresh the remaining Debian containers (v2)
>  Â  -Â  Javi Merino
>  Â  - 
> https://lore.kernel.org/xen-devel/cover.1730743077.git.javi.merino@cloud.com/T/#m5d9acb7cf5db3c2be3d6527de14b69b07812314e
> 
> * [4.21] MSI-X support with qemu in stubdomain, and other related 
> changes (v8)
>  Â  -Â  Marek Marczykowski-GÃ³recki
>  Â  - 
> https://lore.kernel.org/xen-devel/cover.33fb4385b7dd6c53bda4acf0a9e91748b3d7b1f7.1715313192.git-series.marmarek@invisiblethingslab.com/
>  Â  -Â  Only automation patch left to be reviewed/merged.
> 
> * [next-rel(s)] Physical address hypercall ABI ("HVMv2")
>  Â  - Teddy Astie
>  Â  - 
> https://lore.kernel.org/xen-devel/cover.1744981654.git.teddy.astie@vates.tech/
> 
> * [next-rel(s)] xen: Untangle mm.h
>  Â  -Â  Andrew Cooper
>  Â  - 
> https://lore.kernel.org/xen-devel/20250312174513.4075066-1-andrew.cooper3@citrix.com/
>  Â  - 
> https://patchew.org/Xen/20250312174513.4075066-1-andrew.cooper3@citrix.com/
> 
> * [next-rel(s)] Add support for exact-node memory claims
>  Â  -Â  Alejandro Vallejo
>  Â  - 
> https://lore.kernel.org/xen-devel/20250314172502.53498-1-alejandro.vallejo@cloud.com/
>  Â  - 
> https://patchew.org/Xen/20250314172502.53498-1-alejandro.vallejo@cloud.com/
> 
> * [next-rel(s)] Remove the directmap (v5)
>  Â  -Â  Alejandro Vallejo
>  Â  - 
> https://lore.kernel.org/xen-devel/20250108151822.16030-1-alejandro.vallejo@cloud.com/
>  Â  - 
> https://patchew.org/Xen/20250108151822.16030-1-alejandro.vallejo@cloud.com/
> 
> * [next-rel(s)] GRUB: Supporting Secure Boot of xen.gz (v1)
>  Â  -Â  Ross Lagerwall
>  Â  - 
> https://patchew.org/Xen/20240313150748.791236-1-ross.lagerwall@citrix.com/
> 
> * [next-rel(s)] Introduce xenbindgen to autogen hypercall structs (v1)
>  Â  -Â  Alejandro Vallejo
>  Â  - 
> https://patchew.org/Xen/20241115115200.2824-1-alejandro.vallejo@cloud.com/
> 
> * [next-rel(s)] Introduce NS8250 UART emulator (v2)
>  Â  -Â  Denis Mukhin
>  Â  - 
> https://patchew.org/Xen/20241205-vuart-ns8250-v1-0-e9aa923127eb@ford.com/
> 
> * [next-rel(s)] xen: framework for UART emulators
>  Â  - Denis Mukhin
>  Â  - 
> https://lore.kernel.org/xen-devel/20250624035443.344099-1-dmukhin@ford.com/
> 
> === x86 ===
> * [4.21] x86/asm: cleanups after toolchain baseline upgrade (v1 -> v2)
>  Â  - Denis Mukhin
>  Â  - 
> https://lore.kernel.org/xen-devel/20250403182250.3329498-1-dmukhin@ford.com/
>  Â  - https://patchew.org/Xen/20250403182250.3329498-1-dmukhin@ford.com/
> 
> * [4.21?] x86/efi: Fix booting when NX is disabled (v1 -> v2)
>  Â  - Andrew Cooper
>  Â  - 
> https://patchew.org/Xen/20240722101838.3946983-1-andrew.cooper3@citrix.com/
>  Â  - 
> https://lore.kernel.org/xen-devel/20240722101838.3946983-1-andrew.cooper3@citrix.com/
> 
> * [4.21?] Hyperlaunch device tree for dom0 (v6)
>  Â  - Alejandro Vallejo
>  Â  - https://patchew.org/Xen/20250429123629.20839-1-agarciav@amd.com/
>  Â  - 
> https://lore.kernel.org/xen-devel/20250429123629.20839-1-agarciav@amd.com/
> 
> *Â  [4.21?] Boot modules for Hyperlaunch (v9)
>  Â  -Â  Daniel P. Smith
>  Â  - 
> https://lore.kernel.org/xen-devel/20241115131204.32135-1-dpsmith@apertussolutions.com/
>  Â  - 
> https://patchew.org/Xen/20241115131204.32135-1-dpsmith@apertussolutions.com/
> 
> *Â  [4.21?] Address Space Isolation FPU preparations (v2->v3)
>  Â  -Â  Alejandro Vallejo
>  Â  - 
> https://patchew.org/Xen/20250110132823.24348-1-alejandro.vallejo@cloud.com/
> 
> * [next-rel(s)] Hyperlaunch domain builder
>  Â  - Daniel P. Smith
>  Â  - 
> https://lore.kernel.org/xen-devel/20250515131744.3843-1-dpsmith@apertussolutions.com/
> 
> * [next-rel(s)] Confidential computing and AMD SEV support
>  Â  - Teddy Astie
>  Â  - https://patchew.org/Xen/cover.1747312394.git.teddy.astie@vates.tech/
>  Â  - 
> https://lore.kernel.org/xen-devel/cover.1747312394.git.teddy.astie@vates.tech/
> 
> * [next-rel(s)] amd-cppc CPU Performance Scaling Driver (v5 -> v6)
>  Â  - Penny Zheng
>  Â  - 
> https://lore.kernel.org/xen-devel/20250711035106.2540522-1-Penny.Zheng@amd.com/
> 
> * [next-rel(s)] x86: Trenchboot Secure Launch DRTM (Xen) (v1 -> v3)
>  Â  - Sergii Dmytruk
>  Â  - https://patchew.org/Xen/cover.1745172094.git.sergii.dmytruk@3mdeb.com/
>  Â  - 
> https://lore.kernel.org/xen-devel/cover.1748611041.git.sergii.dmytruk@3mdeb.com/
> 
> * [next-rel(s)] x86/EFI: prevent write-execute sections
>  Â  - Roger Pau Monne <roger.pau@citrix.com>
>  Â  - 
> https://lore.kernel.org/xen-devel/20250401130840.72119-1-roger.pau@citrix.com/
> 
> * [next-rel(s)] x86: generate xen.efi image with no write-execute sections
>  Â  - Roger Pau Monne
>  Â  - 
> https://lore.kernel.org/xen-devel/20250318173547.59475-1-roger.pau@citrix.com/
> 
> *Â  [next-rel(s)] Expose consistent topology to guests (v7)
>  Â  -Â  Alejandro Vallejo
>  Â  - 
> https://patchew.org/Xen/20241021154600.11745-1-alejandro.vallejo@cloud.com/
> 
> *Â  [next-rel(s)] x86/alternatives: Adjust all insn-relative fields (v2)
>  Â  -Â  Andrew Cooper
>  Â  - 
> https://lore.kernel.org/xen-devel/20241002152725.1841575-1-andrew.cooper3@citrix.com/T/#mac2deaea7e02a343210d61887486433d946ad129
> 
> *Â  [next-rel(s)] x86emul: misc additions (v7)
>  Â  -Â  Jan Beulich
>  Â  - https://patchew.org/Xen/3a25cd59-e1cb-4bfc-b868-fb11599d22f5@suse.com/
> 
> *Â  [next-rel(s)] x86: support AVX10 (v3)
>  Â  -Â  Jan Beulich
>  Â  - 
> https://lore.kernel.org/xen-devel/516b7f9a-048e-409d-8a4e-89aeb8ffacc4@suse.com/
>  Â  - https://patchew.org/Xen/516b7f9a-048e-409d-8a4e-89aeb8ffacc4@suse.com/

While it is correct that AVX10 is now to go first, AMX was lost as an item, and
APX (which I see no reason in posting as long as AVX10 doesn't make any progress)
was agreed to go after AVX10, before AMX. (KeyLocker was also lost, but that
happens to be correct, as with Intel abandoning the feature we apparently have no
plans anymore to make an attempt at supporting it.)

FRED (being worked on by Andrew) is also entirely missing.

Overall: There are very many items on this list, and it seems entirely clear to
me that not all of them will make it. I think it would be quite helpful to strip
down the set for 4.21 to some realistic subset. Maybe something to discuss on
the community call later today?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 06:16:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 06:16:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071195.1434687 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujXRW-0002lr-5I; Wed, 06 Aug 2025 06:16:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071195.1434687; Wed, 06 Aug 2025 06:16: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 1ujXRW-0002lk-2o; Wed, 06 Aug 2025 06:16:06 +0000
Received: by outflank-mailman (input) for mailman id 1071195;
 Wed, 06 Aug 2025 06:16:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z+Xv=2S=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujXRV-0002le-0s
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 06:16:05 +0000
Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com
 [2a00:1450:4864:20::536])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d42c342f-728c-11f0-b898-0df219b8e170;
 Wed, 06 Aug 2025 08:16:03 +0200 (CEST)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-615d1865b2dso8082781a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 23:16: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
 4fb4d7f45d1cf-615a8fe77cfsm9673862a12.42.2025.08.05.23.16.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Aug 2025 23:16: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>
X-Inumbo-ID: d42c342f-728c-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754460962; x=1755065762; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=dczS+tNctnniVobnE+PpRgRPaAjJiyLRuxq6M/I3H4s=;
        b=BJ1lmUSL0ozB/1d2Gk2q2wYkNvVBwLtYMmERL3NDzBUyVVRZS0MrPGyU8X9yzu1OrX
         i2PB5CUF6cNAAIqZRsYY8baZz4x5qvEXlbvJrfgTMrteNpc7tppYlV1HRioWFvJI8I61
         uC0Ek+xfGXRD+0DIfsYvGhE4kT9WnpmZfaqfB2/upNW12PFyyVM3l9dGji8rNirhObyE
         0JDsRE/tAvYGqFVAXmZJA1sP9MmE3bvdxMiiNiB9BtT2BAeOmexzTUYOIazvjDJo4d0S
         irbxmP2Cx50aC6xw9Doi1UGVNJFEwytZ0S/+P1nS0+DifaJ9F28npTGBHb5+U6DRq7Zh
         GBUA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754460962; x=1755065762;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dczS+tNctnniVobnE+PpRgRPaAjJiyLRuxq6M/I3H4s=;
        b=WNfj/5GD4H0YoR9h2/+UclGyGMepoum+YbVn90JDaDfFZnJifT1JPl3mBC38l76p6O
         U6ODFy+ce9hL7Z7o/CbjqwT1BrPO/bDrYprJBthB8+SerdoiCIkFW43Ljw/ueF5K8D8I
         VXV8afbNvRjyEKU9y0ywCJQpI2Y1qDcqbGm52JPlcoSVarxuoSjEov/5oFXD14+bjZgv
         7AEvLUpkKRAKHshqH8ta0tNn3lcLSRukmpydg/XBFiK3ruyXszzYQPOZ+7ktSr5ePd/1
         GfYa5xw89owCb0+gmQ6GT7bZuITxG41SuVoVOZsMZW6OdKPEXK0Y4xBCG4seL7XOz+r1
         SWYQ==
X-Forwarded-Encrypted: i=1; AJvYcCVt/pJ4Z+oQtoDfW7qwWxsXxj02hfN/WjzMhX9xSLvFXWxKq22AL2esrt7npYM2/ZmEzxP/rbnKBBQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyxAiQZTRWoypdQEs7htCvqMg3nTVb2FhEB4MbInA8TQLXC9QPD
	iUrIueTGWejIBq1Kd5b1c5mfXedLf+8IVUpdUarRDXJtl7oCGdxy0EdxMTq2grn3nw==
X-Gm-Gg: ASbGnctKvAS12Byl7v5sjFRxJ5bPJIEf9LQuoU8ygqaOJ+SRHd/PUaHu/0iMu4o3vUq
	LN9UIYf2FbPB2Vsiiuv7mRi9ZeeU7xRwZQm/+H0hFivw9T2QRbukXlo+SMsiiuZ4cKxHq6LugtW
	km58Cfn7G+MKxB268ZbJMR+5O1faEVgeTSIcRuNXfpLrInWSTyssFFr7ZVRFn0Fme0biDcp8F6f
	awTPTtEn1+E8OZYjxTPem/NHPikZnJkxe6W7i32+EFkmyf451b1zxXIrlRbOxi0uqf0tQaM0P6X
	j1VzCMkY24SywOTRo1jxL7D+dj9Z/RKjJHAtntO4PLQceip4L11KL0aM9DDUkC3zusBprzLxT1o
	MydSOqD7m6e+XYR3LQSVNTecv0zIqKhIQgQZ0dNneH8aYqiRjyRkfR9NDT3RzrfW7mTDPWMOo35
	KB0Rf+P7LXORH6/Oqhzw==
X-Google-Smtp-Source: AGHT+IFBynEvXCMIw7RpT/Lx/BxC7UsusRCOjri8Nb2k/rK/U08HpfyidX1YLTjlYkUitOtirXnDZg==
X-Received: by 2002:a50:f611:0:b0:606:9211:e293 with SMTP id 4fb4d7f45d1cf-617960ce9ffmr953974a12.9.1754460962351;
        Tue, 05 Aug 2025 23:16:02 -0700 (PDT)
Message-ID: <f4c2a251-146d-4121-88ff-8f6d7624d298@suse.com>
Date: Wed, 6 Aug 2025 08:16:00 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] efi: Call FreePages only if needed
To: Ross Lagerwall <ross.lagerwall@citrix.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
References: <20250805163204.3631483-1-ross.lagerwall@citrix.com>
 <20250805163204.3631483-2-ross.lagerwall@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250805163204.3631483-2-ross.lagerwall@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.08.2025 18:32, Ross Lagerwall wrote:
> If the config file is builtin, cfg.addr will be zero but Xen
> unconditionally calls FreePages() on the address.
> 
> Xen may also call FreePages() with a zero address if blexit() is called
> after this point since cfg.need_to_free is not set to false.
> 
> The UEFI specification does not say whether calling FreePages() with a
> zero address is allowed so let's be cautious and use cfg.need_to_free
> properly.

Well, no, this paragraph makes no sense. Of course this is allowed, but
not as no-op behavior (like free(NULL) would be), but to free memory
starting at 0.

> Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>

This pretty clearly wants a Fixes: tag, or maybe it even needs to be two.
I've checked the original code in 4.2, and things were consistent there,
afaics. So breakage was introduced perhaps in one or two of the many
re-works.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 06:16:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 06:16:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071201.1434698 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujXS6-0003DO-Dv; Wed, 06 Aug 2025 06:16:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071201.1434698; Wed, 06 Aug 2025 06:16: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 1ujXS6-0003DH-BG; Wed, 06 Aug 2025 06:16:42 +0000
Received: by outflank-mailman (input) for mailman id 1071201;
 Wed, 06 Aug 2025 06:16:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=qIJJ=2S=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1ujXS4-0002le-UC
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 06:16:41 +0000
Received: from mail-wm1-x341.google.com (mail-wm1-x341.google.com
 [2a00:1450:4864:20::341])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e9bedae4-728c-11f0-b898-0df219b8e170;
 Wed, 06 Aug 2025 08:16:39 +0200 (CEST)
Received: by mail-wm1-x341.google.com with SMTP id
 5b1f17b1804b1-458b49c98a7so29882295e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 23:16:39 -0700 (PDT)
Received: from ?IPV6:2003:e5:872d:3c00:27e3:fc0:fb5:67a3?
 (p200300e5872d3c0027e30fc00fb567a3.dip0.t-ipconnect.de.
 [2003:e5:872d:3c00:27e3:fc0:fb5:67a3])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459e5862fd9sm34867245e9.16.2025.08.05.23.16.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Aug 2025 23:16:38 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e9bedae4-728c-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754460999; x=1755065799; 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=EfjgkGwfrIsHoLccWomWDrPNyQUZPefsLJ5d+rdWi0c=;
        b=T0fCfVT7mRvvnkwAnjXzlAZ5QE/onQLx8bxmXEK+MCLvNCDlgCT8P+hJkRnsjJTtk8
         tAd7zsVskphCDxHOtR4yRl7vgSyEeMZAcZvTQT3AvRW5JmOSJQ7HhAEz+BhI7hDxiwtT
         hw+puviHpJP0ujwnekFs2h5MCnx+mHUC1tGy1jYBRM77R+M96D+qrZyxdUqpvm5E1mX9
         mWhr37/5awUPc/Z2h1vnhLKxQ1XSgDInSvT/hLF1YJ5eH8fOqxrnkUYf4w3Tyq7pZJ2+
         7iFqHgmuZbm+R/8bNr4rhOgIJttFtLwniGHKU/LxR0yCZkaZc3vhvb1IQdvKKyhOcos9
         1G9w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754460999; x=1755065799;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=EfjgkGwfrIsHoLccWomWDrPNyQUZPefsLJ5d+rdWi0c=;
        b=PSesYiTh1nnIlMp9VaYy5am/qMoA2nA5kf06SUj54T6ksvOIOO12+7cRb+b/EwrpIL
         +LIy7jsWeD8bh1PEPv9ZzGrJdLB7u0uVMPEviKtPumUMgPTlhl96jXp0Hd+Pi5wOTKfv
         /cPaixdNjXepuq+4jpjIrYjmwmHnxhJvJhKewXJki53TSFgBDwvrUJjbzUHlqkYUVGQ4
         PX6yHP9YL3n4MkJ127jW0KLzNR6BJVid3b97BNyLyaSEtn6ppVoScbM3UmMezzneLkOa
         DwpRaEEMU6YTI2/xJ2G65hn5C7iz8WZiP6CqoRemKOaEG0qHeuulspX8lCQWEKuSoZu5
         FUYg==
X-Forwarded-Encrypted: i=1; AJvYcCX9T6teYhGk8iZSc89SJDI/unz/siz7H5yyjI+v2A/6yWPQHyX0B/1bAanBtvMcxp2eKsP0kzwG9+c=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz+e9XUzTA1mcI9baW7ud7T1Wa2pRl6tjEcyTQTd9PC0vbGWxZy
	WPafS6a0rG/ah0vWY4788MnwjKTau+yAqmtnlV8BC0QApd3Fh1jBR6cFiW1FGBXJrAc=
X-Gm-Gg: ASbGnctfs6uaYjIJPsEPcMob9VBiGENUqPZ3R83Qb+HY3KvxGmhCYF3pp5TNxvp898c
	J0ugMbZO+s4J7Luzo0ft4a8JFWcvycK8Bgx0KdGr8jflWH2vEhCmN8thAoJ6dXLJM0X5l/CTS53
	orQEsgFJwAiyoWoBaewt8V214PsKFlkr90833Xem3sqB1Fdy6YzfZ6iNN+yMM698oIpGb3ByUr0
	CUIcukRY7LVUdJTH9GtJGf/Bvg1Kr+OKIpKTHWj/HuSrRVnDo6O81liA+HiO0QqMfqh4DL2aCXv
	VZlAlxF/QNUOyU1Pjy1/r/5tTuYCuHy9z8IieHXZjUFueUAOipzNzT4aUaZeYkf0OcPOLSkYDM5
	akfhTmcsBCIWw5BdiAfmBBn+x6TFGiT2hxevrqzrauRiOt7rKu4JylxzjI8LHpCN4ARhN945OCQ
	/QqqOxhB4ZRDGXnQQ9d79k6g+UhZWP3wJ6Nlc0QQWvsg==
X-Google-Smtp-Source: AGHT+IE8pKu91gZjLRrj9BjUUmyuNdG9NhwBYbgTaBNG4dApwP96ZXhAHfjYU1Qji0ekd/skN85QcQ==
X-Received: by 2002:a05:600c:1ca6:b0:458:bfb1:1fc7 with SMTP id 5b1f17b1804b1-459e707ffd9mr10846625e9.6.1754460998537;
        Tue, 05 Aug 2025 23:16:38 -0700 (PDT)
Message-ID: <8b18a14c-6436-4266-9a50-20a9b85c12ae@suse.com>
Date: Wed, 6 Aug 2025 08:16:36 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Xen 4.21 Development Update [June-July]
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>,
 Ayan Kumar Halder <ayan.kumar.halder@amd.com>,
 Mykyta Poturai <Mykyta_Poturai@epam.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Luca Fancellu <luca.fancellu@arm.com>, "Jason Andryuk,"
 <jason.andryuk@amd.com>, Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 Sergii Dmytruk <sergii.dmytruk@3mdeb.com>, "Penny Zheng,"
 <Penny.Zheng@amd.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki=2C?=
 <marmarek@invisiblethingslab.com>, Roger Pau Monne <roger.pau@citrix.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, dmkhn@proton.me,
 Mykola Kvach <xakep.amatop@gmail.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Grygorii Strashko <gragst.linux@gmail.com>,
 Alejandro Vallejo <agarciav@amd.com>,
 "committers@xenproject.org" <committers@xenproject.org>,
 Community Manager <community.manager@xenproject.org>
References: <ae2c2e35-72df-40ed-bffe-391f3c11b826@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: <ae2c2e35-72df-40ed-bffe-391f3c11b826@gmail.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------Bha8zBvQP4eh14IxMIwCC8YT"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------Bha8zBvQP4eh14IxMIwCC8YT
Content-Type: multipart/mixed; boundary="------------y4XDt7UpE0rgiID9Ta9FSqkU";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>,
 Ayan Kumar Halder <ayan.kumar.halder@amd.com>,
 Mykyta Poturai <Mykyta_Poturai@epam.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Luca Fancellu <luca.fancellu@arm.com>, "Jason Andryuk,"
 <jason.andryuk@amd.com>, Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 Sergii Dmytruk <sergii.dmytruk@3mdeb.com>, "Penny Zheng,"
 <Penny.Zheng@amd.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki=2C?=
 <marmarek@invisiblethingslab.com>, Roger Pau Monne <roger.pau@citrix.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, dmkhn@proton.me,
 Mykola Kvach <xakep.amatop@gmail.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Grygorii Strashko <gragst.linux@gmail.com>,
 Alejandro Vallejo <agarciav@amd.com>,
 "committers@xenproject.org" <committers@xenproject.org>,
 Community Manager <community.manager@xenproject.org>
Message-ID: <8b18a14c-6436-4266-9a50-20a9b85c12ae@suse.com>
Subject: Re: Xen 4.21 Development Update [June-July]
References: <ae2c2e35-72df-40ed-bffe-391f3c11b826@gmail.com>
In-Reply-To: <ae2c2e35-72df-40ed-bffe-391f3c11b826@gmail.com>

--------------y4XDt7UpE0rgiID9Ta9FSqkU
Content-Type: multipart/mixed; boundary="------------SppeSxdwE2m0ImLmFQPGKzTi"

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

T24gMDUuMDguMjUgMjA6MTksIE9sZWtzaWkgS3Vyb2Noa28gd3JvdGU6DQo+IEhlbGxvIGV2
ZXJ5b25lLA0KPiANCj4gVGhpcyBlbWFpbCBvbmx5IHRyYWNrcyBiaWcgaXRlbXMgZm9yIHhl
bi5naXQgdHJlZS4gUGxlYXNlIHJlcGx5IGZvciBpdGVtcyB5b3UNCj4gd291bGQgbGlrZSB0
byBzZWUgaW4gNC4yMSBzbyB0aGF0IHBlb3BsZSBoYXZlIGFuIGlkZWEgd2hhdCBpcyBnb2lu
ZyBvbiBhbmQNCj4gcHJpb3JpdGlzZSBhY2NvcmRpbmdseS4NCj4gDQo+IFlvdSdyZSB3ZWxj
b21lIHRvIHByb3ZpZGUgZGVzY3JpcHRpb24gYW5kIHVzZSBjYXNlcyBvZiB0aGUgZmVhdHVy
ZSB5b3UncmUNCj4gd29ya2luZyBvbi4NCj4gDQo+ID0gVGltZWxpbmUgPQ0KPiANCj4gVGhl
IGN1cnJlbnQgcmVsZWFzZSBzY2hlZHVsZSBjb3VsZCBiZSBmb3VuZCBoZXJlOg0KPiAgwqAg
aHR0cHM6Ly93aWtpLnhlbnByb2plY3Qub3JnL3dpa2kvWGVuX1Byb2plY3RfWC5ZWV9SZWxl
YXNlX05vdGVzDQo+IA0KPiBBbmQgYXMgYSByZW1pbmRlciBJIHdvdWxkIGxpa2UgdG8gcmVt
aW5kIGF0IHRoZSBvZiB0aGlzIHdlZWsgd2Ugd2lsbCBoYXZlDQo+IExhc3QgcG9zdGluZyBk
YXRlIChGcmkgQXVnIDA4LCAyMDI1KS4NCj4gDQo+ID0gVXBkYXRlcyA9DQo+IA0KPiBUaGUg
Zm9sbG93aW5nIGl0ZW1zICggdGhlIGxpbmtzIGZvciB0aGVtIGNvdWxkIGJlIGZvdW5kIGlu
dCB0aGUgbGlzdCBiZWxvdyApDQo+IHdlcmUgbW92ZWQgdG8gY29tcGxldGVkOg0KPiAgwqAg
W3NpbmNlIEp1bjIgLSBBdWc1XToNCj4gIMKgwqAgQWRkZWQgc29tZSB0YWdzOiBbNC4yMV0s
IFtuZXh0LXJlbChzKV0gdG8gdGhlIGxpc3QgIkZ1bGwgbGlzdCBvZiBpdGVtcyINCj4gIMKg
wqAgYmVsb3cuDQo+ICDCoMKgICogeDg2Og0KPiAgwqDCoMKgIC0ga2V4ZWM6IGFkZCBrZXhl
YyBzdXBwb3J0IHRvIE1pbmktT1MuDQoNCkFuZCB3aXRoIHRoYXQ6DQoNCi0gUFZIIHhlbnN0
b3JlLXN0dWJkb20gbGl2ZSB1cGRhdGUNCg0KPiAgwqDCoMKgIC0geDg2OiBtZW1jcHkoKSAv
IG1lbXNldCgpIChub24tKUVSTVMgZmxhdm9ycyBwbHVzIGZhbGxvdXQNCj4gIMKgwqAgKiBB
cm06DQo+ICDCoMKgwqAgLSBTTU1VIGhhbmRsaW5nIGZvciBQQ0llIFBhc3N0aHJvdWdoIG9u
IEFSTS4NCj4gIMKgwqDCoCAtIEFkZCBzdXBwb3J0IGZvciBSLUNhciBHZW40IFBDSSBob3N0
IGNvbnRyb2xsZXIuDQo+ICDCoMKgwqAgLSBGaXJzdCBjaHVuayBmb3IgQXJtIFI4MiBhbmQg
TVBVIHN1cHBvcnQuDQo+ICDCoMKgwqAgLSBFbmFibGUgUjUyIHN1cHBvcnQgZm9yIHRoZSBm
aXJzdCBjaHVuayBvZiBNUFUgc3VwcG9ydA0KPiAgwqDCoMKgIC0gQVJNIHNwbGl0IGhhcmR3
YXJlIGFuZCBjb250cm9sIGRvbWFpbnMuDQo+ICDCoMKgICogUklTQy1WOg0KPiAgwqDCoMKg
IC0gSW50cm9kdWNlIGJhc2ljIFVBUlQgc3VwcG9ydCBhbmQgaW50ZXJydXB0cyBmb3IgaHlw
ZXJ2aXNvciBtb2RlLg0KDQoqIEh5cGVydmlzb3I6DQogICAtIHRvb2xzOiBzdXBwb3J0IGZv
ciBwZXItZG9tYWluIFhlbnN0b3JlIGZlYXR1cmVzDQoNCg0KSnVlcmdlbg0K
--------------SppeSxdwE2m0ImLmFQPGKzTi
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-----

--------------SppeSxdwE2m0ImLmFQPGKzTi--

--------------y4XDt7UpE0rgiID9Ta9FSqkU--

--------------Bha8zBvQP4eh14IxMIwCC8YT
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/Ey8FAmiS80QFAwAAAAAACgkQsN6d1ii/Ey+4
iggAm7vuT0ExEDfNVmXxNT6ufz9JkVKvlevFUUI8sk8LaPJQewZ+ggErkgVZSbqje5tsIo8gR9k5
q0xLHNVgUrNh5CSULrX1XataS6m4Blw4ayCTGaQsMVy+EK9RrqIctpnczaCE2zdny3WEJkGfsoDS
Glh5VZ2WngLs1Yrl3jzk+Ec9cNwNPY9Xdvr3EV0u0RsYrtNPAYD0E8YIWv0xwpalhxQqdUYAwAvd
lzWVe/Ql+nJBLwubFKsGiGdaO5yuy6O5F5I8SKrl6QYcW87opRyWfKeMkrhHu4pICnA2CxY+fBBn
TZwSp7pGGFBqZ7GLdXYDjnMRVvZ3yQAKJQF/mzHnug==
=b3X8
-----END PGP SIGNATURE-----

--------------Bha8zBvQP4eh14IxMIwCC8YT--


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 06:26:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 06:26:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071212.1434707 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujXbo-00052x-9o; Wed, 06 Aug 2025 06:26:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071212.1434707; Wed, 06 Aug 2025 06:26: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 1ujXbo-00052q-70; Wed, 06 Aug 2025 06:26:44 +0000
Received: by outflank-mailman (input) for mailman id 1071212;
 Wed, 06 Aug 2025 06:26:42 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oS3N=2S=huawei.com=ruanjinjie@srs-se1.protection.inumbo.net>)
 id 1ujXbm-00052k-Kb
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 06:26:42 +0000
Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4e0b7ae6-728e-11f0-a322-13f23c93f187;
 Wed, 06 Aug 2025 08:26:39 +0200 (CEST)
Received: from mail.maildlp.com (unknown [172.19.163.48])
 by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4bxgDK4p7yz14MKj;
 Wed,  6 Aug 2025 14:21:37 +0800 (CST)
Received: from dggpemf500011.china.huawei.com (unknown [7.185.36.131])
 by mail.maildlp.com (Postfix) with ESMTPS id D56AE1800B1;
 Wed,  6 Aug 2025 14:26:33 +0800 (CST)
Received: from [10.67.109.254] (10.67.109.254) by
 dggpemf500011.china.huawei.com (7.185.36.131) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Wed, 6 Aug 2025 14:26:32 +0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4e0b7ae6-728e-11f0-a322-13f23c93f187
Message-ID: <5d81d30f-8dd4-d74c-7c8a-0714dafc09fe@huawei.com>
Date: Wed, 6 Aug 2025 14:26:31 +0800
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
 Thunderbird/102.2.0
Subject: Re: [PATCH -next v7 5/7] arm64: entry: Refactor
 preempt_schedule_irq() check code
Content-Language: en-US
To: Ada Couprie Diaz <ada.coupriediaz@arm.com>
CC: <catalin.marinas@arm.com>, <will@kernel.org>, <oleg@redhat.com>,
	<sstabellini@kernel.org>, <mark.rutland@arm.com>, <puranjay@kernel.org>,
	<broonie@kernel.org>, <mbenes@suse.cz>, <ryan.roberts@arm.com>,
	<akpm@linux-foundation.org>, <chenl311@chinatelecom.cn>,
	<anshuman.khandual@arm.com>, <kristina.martsenko@arm.com>,
	<liaochang1@huawei.com>, <ardb@kernel.org>, <leitao@debian.org>,
	<linux-arm-kernel@lists.infradead.org>, <linux-kernel@vger.kernel.org>,
	<xen-devel@lists.xenproject.org>
References: <20250729015456.3411143-1-ruanjinjie@huawei.com>
 <20250729015456.3411143-6-ruanjinjie@huawei.com>
 <44fd646c-4e31-4ca6-9e22-f715ad19e0d7@arm.com>
From: Jinjie Ruan <ruanjinjie@huawei.com>
In-Reply-To: <44fd646c-4e31-4ca6-9e22-f715ad19e0d7@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.67.109.254]
X-ClientProxiedBy: kwepems100002.china.huawei.com (7.221.188.206) To
 dggpemf500011.china.huawei.com (7.185.36.131)



On 2025/8/5 23:06, Ada Couprie Diaz wrote:
> Hi Jinjie,
> 
> On 29/07/2025 02:54, Jinjie Ruan wrote:
>> ARM64 requires an additional check whether to reschedule on return
>> from interrupt. So add arch_irqentry_exit_need_resched() as the default
>> NOP implementation and hook it up into the need_resched() condition in
>> raw_irqentry_exit_cond_resched(). This allows ARM64 to implement
>> the architecture specific version for switching over to
>> the generic entry code.
> I was a bit confused by this, as I didn't see the link with the generic
> entry
> given you implement `raw_irqentry_exit_cond_resched()` in arch/arm64
> as well in this patch : I expected the arm64 implementation to be added.
> I share more thoughts below.
> 
> What do you think about something along those lines ?
> 
> Â Â Â Â Compared to the generic entry code, arm64 does additional checks
> Â Â Â Â when deciding to reschedule on return from an interrupt.
> Â Â Â Â Introduce arch_irqentry_exit_need_resched() in the need_resched()
> condition
> Â Â Â Â of the generic raw_irqentry_exit_cond_resched(), with a NOP default.
> Â Â Â Â This will allow arm64 to implement its architecture specific checks
> when
> Â Â Â Â switching over to the generic entry code.

This revision makes it easier for people to understand.

> 
>> [...]
>> diff --git a/kernel/entry/common.c b/kernel/entry/common.c
>> index b82032777310..4aa9656fa1b4 100644
>> --- a/kernel/entry/common.c
>> +++ b/kernel/entry/common.c
>> @@ -142,6 +142,20 @@ noinstr irqentry_state_t irqentry_enter(struct
>> pt_regs *regs)
>> Â Â Â Â Â  return ret;
>> Â  }
>> Â  +/**
>> + * arch_irqentry_exit_need_resched - Architecture specific need
>> resched function
>> + *
>> + * Invoked from raw_irqentry_exit_cond_resched() to check if need
>> resched.
> Very nit : "to check if resched is needed." ?

This is good.

>> + * Defaults return true.
>> + *
>> + * The main purpose is to permit arch to skip preempt a task from an
>> IRQ.
> If feel that "to avoid preemption of a task" instead of "to skip preempt
> a task"
> would make this much clearer, what do you think ?

Yes, this is more clearer.

>> + */
>> +static inline bool arch_irqentry_exit_need_resched(void);
>> +
>> +#ifndef arch_irqentry_exit_need_resched
>> +static inline bool arch_irqentry_exit_need_resched(void) { return
>> true; }
>> +#endif
>> +
> 
> I've had some trouble reviewing this patch : on the one hand because
> I didn't notice `arch_irqentry_exit_need_resched()` was added in
> the common entry code, which is on me !
> On the other hand, I felt that the patch itself was a bit disconnected :
> we add `arch_irqentry_exit_need_resched()` in the common entry code,
> with a default NOP, but in the same function we add to arm64,
> while mentioning that this is for arm64's additional checks,
> which we only implement in patch 7.
> 
> Would it make sense to move theÂ `arch_irqentry_exit_need_resched()`
> part of the patch to patch 7, so that the introduction and
> arch-specific implementation appear together ?
> To me it seems easier to wrap my head around, as it would look like
> "Move arm64 to generic entry, but it does additional checks : add a new
> arch-specific function controlling re-scheduling, defaulting to true,
> and implement it for arm64". I feel it could help making patch 7's
> commit message clearer as well.
> 
> From what I gathered on the archive `arch_irqentry_exit_need_resched()`
> being added here was suggested previously, so others might not have the
> same opinion.
> 
> Maybe improving the commit message and comment for this would be enough
> as well, as per my suggestions above.
> 
> 
> Otherwise the changes make sense and I don't see any functional issues !
> 
> Thanks,
> Ada
> 
> 


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 06:33:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 06:33:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071220.1434718 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujXho-0006eb-2k; Wed, 06 Aug 2025 06:32:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071220.1434718; Wed, 06 Aug 2025 06:32: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 1ujXhn-0006eU-Vk; Wed, 06 Aug 2025 06:32:55 +0000
Received: by outflank-mailman (input) for mailman id 1071220;
 Wed, 06 Aug 2025 06:32:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z+Xv=2S=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujXhm-0006eO-Pn
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 06:32:54 +0000
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com
 [2a00:1450:4864:20::636])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2e0e87f1-728f-11f0-b898-0df219b8e170;
 Wed, 06 Aug 2025 08:32:52 +0200 (CEST)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-af95b919093so527894666b.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 23:32:52 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a0a313esm1045583566b.32.2025.08.05.23.32.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Aug 2025 23:32: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>
X-Inumbo-ID: 2e0e87f1-728f-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754461972; x=1755066772; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=W+3POFiTWJPosCnVbyuLVBcvLWQ2ts5jbd1+/lFk/Mc=;
        b=GXaAymyG9wEBePJDE8+61eSzNDH5VekOntnJwOoKk26Y2rA4JrbJtlW/qJN4W6T1ob
         8D/8noJxaYUpV5hQCJdO/0kit/OX/A/Ijp29qvuJ8NveWwlUHsIDE0Kio2vaoAf3U63h
         ohkkjYEBCIQbGlA2iRpV0ZRdDnaIyARghs9+AdgrnEL//5ZlVGMGgUYf1ZmggdsvrB+e
         MK4vgiqhOtSFAWlwnyn5k/FyMFRakDXs2b+FTfai/gTNn9TFADfR2KIYoIdzgE7/FUbP
         K65L/Xi+m0EzxJuHUnfynOTE5FWQyKMvItO+2YBawtClA1J8jK79AhmPPYznA0VB9Oyp
         yIvQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754461972; x=1755066772;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=W+3POFiTWJPosCnVbyuLVBcvLWQ2ts5jbd1+/lFk/Mc=;
        b=vXCHLEsMWwTBpwaix6BEU31pDQCB+qRCKPxtEg0JW06Zr7h2p40Ln/km9MtxOQWho+
         +oy9uilN037OpT9b+QnnNDyEqI7hhEWbOslbzXNcDsLLYA1fvX0ChEfI51pn1oZeKN0W
         h3VxybYgOCYO2tByYQcLDT62UdK+B2XrKxiusmIovu1T/xZ7YJVmz3hhV5hsFd+cPe96
         Ek0p0VmZTxftlTg6tfWBw0K8eISIzAOYdCTvv9Kb3Ham0LTe+8wls/X2cQzsUX9tHceu
         Y05JKzcehwfxl4TAz8m4slgFcRxeXrU4CgcXt4P4CYadDcYvaozTBFF/HmMY4a6Omabx
         KemQ==
X-Forwarded-Encrypted: i=1; AJvYcCVZNAzdh3IpwozNzm72bDWA2iI6lGd+kW/lQ8itm3FfuGO34bB0wrWLXddmujCfYBBhYlsjnXUABq8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzWBOFWWHpmc+sGKC6yNO8vjwD5i22HMMPpv2bXXJ8wfINn4Uom
	D2T+j3T8K00tAFvnwskmqCrDqUnFWzrY9qoWKL3lSyfy4JwUEjrru4EKBE3g9Y8ESw==
X-Gm-Gg: ASbGncsZsDrPlQqKhwqRP10ReMtVoiaK+MMRcPSt5GRnSZZ9hicu01DkZYvdijyrYrL
	N7zJyt4C+8jA2/fDmRckodeKOI2BZGNDtBSDlHZibxXFkEsxEf7YETLjec7uZx5dY+D3aXEiVdD
	YWCGFUHfZpYu0pT1idyOKPkSaj52U9/outJptaIyIuWzPJBEA9NoBA+hVXNmRJ668j+CE597H+Y
	ugfFr74IZmTi9puxq8CzYiGoo9MO7Bu1hQlBI2LYvsJZUkFHnc+uVZO+feDiV368L+LfMfm7r+2
	AZ5QgzaW0D2KLELda1M0BEmbR7+j6s94ni/1okQ7wkgVf1QaqAIRLJ4rKcvEJiTkR4PxON8qjcS
	Lfv5Nbb1ogkGaD+gZJI7yuVAHrMYTN8prZ7WrtR8uOsTmKhQnV9Vx2d4R5lbzloUct2EkgGRqRS
	GZ6AVv81A=
X-Google-Smtp-Source: AGHT+IGD4F9lVQZNT9C85JyMM9KVqDhA1xbCDKfIl9/R+QpVRiprf9+Gi5SPUjS/CYPNiej8inVJ5A==
X-Received: by 2002:a17:907:c25:b0:aec:5a71:4513 with SMTP id a640c23a62f3a-af9901113b9mr140059366b.4.1754461970916;
        Tue, 05 Aug 2025 23:32:50 -0700 (PDT)
Message-ID: <3010ef8a-3d07-42f5-ac66-c62b7d50f745@suse.com>
Date: Wed, 6 Aug 2025 08:32:48 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] efi: Stop using StdErr
To: Ross Lagerwall <ross.lagerwall@citrix.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
References: <20250805163204.3631483-1-ross.lagerwall@citrix.com>
 <20250805163204.3631483-3-ross.lagerwall@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250805163204.3631483-3-ross.lagerwall@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.08.2025 18:32, Ross Lagerwall wrote:
> Xen's use of StdErr is inconsistent. Some boot errors are reported using
> PrintErr() which uses StdErr and some are reported using blexit() which
> uses StdOut.

... with PrintErrMesg() having

    StdOut = StdErr;

apparently to address at least some of the inconsistencies. Perhaps
blexit(), when not passed NULL, should similarly override StdOut.

> On my test system using OVMF, StdErr is not displayed on the emulated
> screen. Looking at other EFI applications, StdErr is just used for debug
> messages if at all.

That's hardly how StdErr was meant to be used. And at the risk of being
flamed for saying so, looking at other EFI applications (without saying
of what prominence or origin they are) can hardly serve as a justification.
If OVMF doesn't set up StdErr correctly (despite being configured / set up
correctly), and if that can't be fixed there, imo what you want as a
workaround is a command line option to override StdErr by StdOut even when
SystemTable->StdErr is non-NULL.

Along the lines of the comment further up, inconsistencies in the use of
StdErr vs StdOut may want addressing (separately).

But of course, not being EFI maintainer anymore, all of what I said above
may be deemed entirely meaningless by the new maintainers.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 06:39:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 06:39:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071236.1434728 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujXoW-0007QI-OY; Wed, 06 Aug 2025 06:39:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071236.1434728; Wed, 06 Aug 2025 06:39: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 1ujXoW-0007QB-Kt; Wed, 06 Aug 2025 06:39:52 +0000
Received: by outflank-mailman (input) for mailman id 1071236;
 Wed, 06 Aug 2025 06:39:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oS3N=2S=huawei.com=ruanjinjie@srs-se1.protection.inumbo.net>)
 id 1ujXoV-0007Q5-TT
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 06:39:51 +0000
Received: from szxga06-in.huawei.com (szxga06-in.huawei.com [45.249.212.32])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 224797ed-7290-11f0-b898-0df219b8e170;
 Wed, 06 Aug 2025 08:39:48 +0200 (CEST)
Received: from mail.maildlp.com (unknown [172.19.88.234])
 by szxga06-in.huawei.com (SkyGuard) with ESMTP id 4bxgfJ29swz27g4j;
 Wed,  6 Aug 2025 14:40:40 +0800 (CST)
Received: from dggpemf500011.china.huawei.com (unknown [7.185.36.131])
 by mail.maildlp.com (Postfix) with ESMTPS id 8B11A140119;
 Wed,  6 Aug 2025 14:39:37 +0800 (CST)
Received: from [10.67.109.254] (10.67.109.254) by
 dggpemf500011.china.huawei.com (7.185.36.131) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Wed, 6 Aug 2025 14:39:36 +0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 224797ed-7290-11f0-b898-0df219b8e170
Message-ID: <bedb35be-100b-95fb-64e4-b38edd3cd327@huawei.com>
Date: Wed, 6 Aug 2025 14:39:35 +0800
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
 Thunderbird/102.2.0
Subject: Re: [PATCH -next v7 5/7] arm64: entry: Refactor
 preempt_schedule_irq() check code
Content-Language: en-US
To: Ada Couprie Diaz <ada.coupriediaz@arm.com>
CC: <catalin.marinas@arm.com>, <will@kernel.org>, <oleg@redhat.com>,
	<sstabellini@kernel.org>, <mark.rutland@arm.com>, <puranjay@kernel.org>,
	<broonie@kernel.org>, <mbenes@suse.cz>, <ryan.roberts@arm.com>,
	<akpm@linux-foundation.org>, <chenl311@chinatelecom.cn>,
	<anshuman.khandual@arm.com>, <kristina.martsenko@arm.com>,
	<liaochang1@huawei.com>, <ardb@kernel.org>, <leitao@debian.org>,
	<linux-arm-kernel@lists.infradead.org>, <linux-kernel@vger.kernel.org>,
	<xen-devel@lists.xenproject.org>
References: <20250729015456.3411143-1-ruanjinjie@huawei.com>
 <20250729015456.3411143-6-ruanjinjie@huawei.com>
 <44fd646c-4e31-4ca6-9e22-f715ad19e0d7@arm.com>
From: Jinjie Ruan <ruanjinjie@huawei.com>
In-Reply-To: <44fd646c-4e31-4ca6-9e22-f715ad19e0d7@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.67.109.254]
X-ClientProxiedBy: kwepems200001.china.huawei.com (7.221.188.67) To
 dggpemf500011.china.huawei.com (7.185.36.131)



On 2025/8/5 23:06, Ada Couprie Diaz wrote:
> Hi Jinjie,
> 
> On 29/07/2025 02:54, Jinjie Ruan wrote:
>> ARM64 requires an additional check whether to reschedule on return
>> from interrupt. So add arch_irqentry_exit_need_resched() as the default
>> NOP implementation and hook it up into the need_resched() condition in
>> raw_irqentry_exit_cond_resched(). This allows ARM64 to implement
>> the architecture specific version for switching over to
>> the generic entry code.
> I was a bit confused by this, as I didn't see the link with the generic
> entry
> given you implement `raw_irqentry_exit_cond_resched()` in arch/arm64
> as well in this patch : I expected the arm64 implementation to be added.
> I share more thoughts below.
> 
> What do you think about something along those lines ?
> 
> Â Â Â Â Compared to the generic entry code, arm64 does additional checks
> Â Â Â Â when deciding to reschedule on return from an interrupt.
> Â Â Â Â Introduce arch_irqentry_exit_need_resched() in the need_resched()
> condition
> Â Â Â Â of the generic raw_irqentry_exit_cond_resched(), with a NOP default.
> Â Â Â Â This will allow arm64 to implement its architecture specific checks
> when
> Â Â Â Â switching over to the generic entry code.
> 
>> [...]
>> diff --git a/kernel/entry/common.c b/kernel/entry/common.c
>> index b82032777310..4aa9656fa1b4 100644
>> --- a/kernel/entry/common.c
>> +++ b/kernel/entry/common.c
>> @@ -142,6 +142,20 @@ noinstr irqentry_state_t irqentry_enter(struct
>> pt_regs *regs)
>> Â Â Â Â Â  return ret;
>> Â  }
>> Â  +/**
>> + * arch_irqentry_exit_need_resched - Architecture specific need
>> resched function
>> + *
>> + * Invoked from raw_irqentry_exit_cond_resched() to check if need
>> resched.
> Very nit : "to check if resched is needed." ?
>> + * Defaults return true.
>> + *
>> + * The main purpose is to permit arch to skip preempt a task from an
>> IRQ.
> If feel that "to avoid preemption of a task" instead of "to skip preempt
> a task"
> would make this much clearer, what do you think ?
>> + */
>> +static inline bool arch_irqentry_exit_need_resched(void);
>> +
>> +#ifndef arch_irqentry_exit_need_resched
>> +static inline bool arch_irqentry_exit_need_resched(void) { return
>> true; }
>> +#endif
>> +
> 
> I've had some trouble reviewing this patch : on the one hand because
> I didn't notice `arch_irqentry_exit_need_resched()` was added in
> the common entry code, which is on me !
> On the other hand, I felt that the patch itself was a bit disconnected :
> we add `arch_irqentry_exit_need_resched()` in the common entry code,
> with a default NOP, but in the same function we add to arm64,
> while mentioning that this is for arm64's additional checks,
> which we only implement in patch 7.

Yes, it does.

> 
> Would it make sense to move theÂ `arch_irqentry_exit_need_resched()`
> part of the patch to patch 7, so that the introduction and
> arch-specific implementation appear together ?
> To me it seems easier to wrap my head around, as it would look like
> "Move arm64 to generic entry, but it does additional checks : add a new
> arch-specific function controlling re-scheduling, defaulting to true,
> and implement it for arm64". I feel it could help making patch 7's
> commit message clearer as well.
> 
> From what I gathered on the archive `arch_irqentry_exit_need_resched()`
> being added here was suggested previously, so others might not have the
> same opinion.

Yes, introduce `arch_irqentry_exit_need_resched()` here may help
understand the patch's refactoring purpose.

> 
> Maybe improving the commit message and comment for this would be enough
> as well, as per my suggestions above.

Thank you! I'll improve the commit message and comment.

> 
> 
> Otherwise the changes make sense and I don't see any functional issues !
> 
> Thanks,
> Ada
> 
> 


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 06:53:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 06:53:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071245.1434738 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujY1l-0001vg-Qn; Wed, 06 Aug 2025 06:53:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071245.1434738; Wed, 06 Aug 2025 06:53: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 1ujY1l-0001vZ-Nq; Wed, 06 Aug 2025 06:53:33 +0000
Received: by outflank-mailman (input) for mailman id 1071245;
 Wed, 06 Aug 2025 06:53:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z+Xv=2S=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujY1k-0001vT-94
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 06:53:32 +0000
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com
 [2a00:1450:4864:20::52a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0f9cf1f6-7292-11f0-b898-0df219b8e170;
 Wed, 06 Aug 2025 08:53:30 +0200 (CEST)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-61571192c3aso6765803a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 23:53: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
 4fb4d7f45d1cf-615cc38aee5sm8149090a12.3.2025.08.05.23.53.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Aug 2025 23:53: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>
X-Inumbo-ID: 0f9cf1f6-7292-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754463210; x=1755068010; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=N9LOFu3jEsO+YXahajMo4TdhzZaZGv2lvJZ9twMQt+E=;
        b=AhNexKupei96SBYCA1o2FU1qPTXUaoC0D9ohiMIY5rAFrYZ+4+m3aoLONsnCaddGxJ
         QqNisdJcb8fdpf9G6+mxxYvLYq3qBuAtdJ7lCtF2zW3iHbeJ3iSDIdI371z8ywS/89+p
         3oYVwn8fMquMGSBxsX+i5T7T9TuSYRPOX+FMTMMNytmjT73KBn+SZzUKoaNh3Wq7bW5v
         Hw+9jUMInxwnCj+DQ8EfaYpckYdyi6HWqwyMyH4IhdU7fBoyVHmFGVmgIcGAKCR2MMa4
         xEn7+PvOnrEc/zaBCSoRJbV76Ok0MGpn6FpsdCggEyw0eAxosrZ78tAbbjWkQhL3o0nx
         WwTg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754463210; x=1755068010;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=N9LOFu3jEsO+YXahajMo4TdhzZaZGv2lvJZ9twMQt+E=;
        b=MfZyzufTPxOayXcNu8Dysgqq8lVSGpZ4DCU9ta8pr2edyfVH8mvSgGfBiH+S9L3HPr
         YelzMa53ygYUobbitFUdCmOx3nOa1TisgRA3/7fKrV2iiZY3bgsK8gbcRZZlYbbKQNk1
         +q2E2Ay85qsi42kLuqpZ24unXONC9RhCTGO1Nb/HV1gOfjeZVv0jmwCwhjpfaaSUT4X1
         XYZxtNT4WZ/ByB7YVoWCe2pK0qJFyPSNUPZakoFbE1VH1rIMRQcadPZ1JEZtE0VayrrH
         57N/g07cZu81k95ciEvBDTvyOcbBgFKOajIOvfRikJOVUfmp8wc/wJBLSR3ZZv2TkGEu
         Ch6w==
X-Forwarded-Encrypted: i=1; AJvYcCXpMVFluAC74aLWTeYgNjL0T0PPjq3915KjKHhXTDtF+AO7l0BP8Vsd+M5nHHpkLIA4rz6JzRphsSY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxozGCIaW+26RV/DUdFTN4f0UOLG5MM0ONS0xU+wGkwmS3xEVbE
	E6Q1tm2IWwNPwyU6u4LltbAW1LDjZJh+AtN35/e20DP8x3wAbGb5TCK/vdRT3/TM0w==
X-Gm-Gg: ASbGncvCAfHruNx+bPl1LCIRNJ9rpeAvkpHlvNzOrYrE/eNJWzFnOesVpzaIb8XhlBg
	JASKqlUJu1tI5Qmh79Facx8Y3mGqfJBPg03V1r985SD4bX7B0iL5sMXDnasSpT8/3KPYET3nE1h
	X7huc0Lrb2gneftYz/EPfX5T42l4hLY3RbjZ8znHqMP0bFS693QfNT8mvphl620JWrvX4392i77
	8QfFLuFRgjyg9A9WfL/osZPXuEazMfddwbJZeojhaNQaDUQQM9cg4UmVeu2V/fKJvynHHVnR8kt
	X9bUuvPeNbBdLsRpU8A2msdh5jBCT+wOaYlA1ddc0a5QhfuXNs//PSPw5Ibv7cEgwDktL8hLAaE
	hguS55Z69pZaJ+5uEIuxXS0TpBeHLngxQCqVgDtmiW4/EIW/7znnEfaeYHYa7uL89yLTQJ8+cV2
	sGAGJQfmo=
X-Google-Smtp-Source: AGHT+IHQC0oioSe2v/u2dZeJAKjFJEzcavaCABXiCWN4lIF5sSi6tY1gGSOI5HjS1UjyTZFRIl9V4g==
X-Received: by 2002:a05:6402:3513:b0:615:23f9:eec3 with SMTP id 4fb4d7f45d1cf-61797dfd344mr1285071a12.27.1754463209590;
        Tue, 05 Aug 2025 23:53:29 -0700 (PDT)
Message-ID: <40f3719b-e6b2-4ea5-9c9c-89b17b973ef3@suse.com>
Date: Wed, 6 Aug 2025 08:53:28 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v10 2/4] vpci/rebar: Free Rebar resources when
 init_rebar() fails
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "Huang, Ray" <Ray.Huang@amd.com>
References: <20250805034906.1014212-1-Jiqian.Chen@amd.com>
 <20250805034906.1014212-3-Jiqian.Chen@amd.com>
 <a14449dd-a7dd-4369-9e73-656442b36f2a@suse.com>
 <BL1PR12MB5849A83162C8B4B2AD11E45CE72DA@BL1PR12MB5849.namprd12.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: <BL1PR12MB5849A83162C8B4B2AD11E45CE72DA@BL1PR12MB5849.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.08.2025 05:39, Chen, Jiqian wrote:
> On 2025/8/5 16:48, Jan Beulich wrote:
>> On 05.08.2025 05:49, Jiqian Chen wrote:
>>> --- a/xen/drivers/vpci/rebar.c
>>> +++ b/xen/drivers/vpci/rebar.c
>>> @@ -49,6 +49,32 @@ static void cf_check rebar_ctrl_write(const struct pci_dev *pdev,
>>>      bar->guest_addr = bar->addr;
>>>  }
>>>  
>>> +static int cf_check cleanup_rebar(const struct pci_dev *pdev)
>>> +{
>>> +    int rc;
>>> +    uint32_t ctrl;
>>> +    unsigned int nbars;
>>> +    unsigned int rebar_offset = pci_find_ext_capability(pdev->sbdf,
>>> +                                                        PCI_EXT_CAP_ID_REBAR);
>>> +
>>> +    if ( !rebar_offset || !is_hardware_domain(pdev->domain) )
>>> +    {
>>> +        ASSERT_UNREACHABLE();
>>> +        return 0;
>>> +    }
>>> +
>>> +    ctrl = pci_conf_read32(pdev->sbdf, rebar_offset + PCI_REBAR_CTRL(0));
>>> +    nbars = MASK_EXTR(ctrl, PCI_REBAR_CTRL_NBAR_MASK);
>>> +
>>> +    rc = vpci_remove_registers(pdev->vpci, rebar_offset + PCI_REBAR_CAP(0),
>>> +                               PCI_REBAR_CTRL(nbars - 1));
>>> +    if ( rc )
>>> +        printk(XENLOG_ERR "%pd %pp: fail to remove Rebar handlers rc=%d\n",
>>> +               pdev->domain, &pdev->sbdf, rc);
>>
>> MSI and MSI-X (now) have ASSERT_UNREACHABLE() on their respective paths. Is
>> there a reason this shouldn't be done here as well?
> Will add.
> 
>>
>> MSI and MSI-X further have another add-register below here, to ensure the
>> control register cannot be written. Again - is there a reason the same
>> shouldn't be done here? (If so, I think this may want putting in a comment.)
> Since extended capabilities are only exposed to dom0, and dom0 has no limitations to access devices.
> It since there is not much point in adding such a handler for rebar.

While the effect is different from MSI / MSI-X, isn't it still a problem if
Dom0 changed BAR sizes entirely behind Xen's back? Which could be prevented
by similarly discarding writes to the control register, as is done for the
other two?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 06:56:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 06:56:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071257.1434748 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujY54-0002UH-8w; Wed, 06 Aug 2025 06:56:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071257.1434748; Wed, 06 Aug 2025 06:56:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujY54-0002UA-50; Wed, 06 Aug 2025 06:56:58 +0000
Received: by outflank-mailman (input) for mailman id 1071257;
 Wed, 06 Aug 2025 06:56:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z+Xv=2S=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujY52-0002U4-IA
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 06:56:56 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8a0ae281-7292-11f0-a322-13f23c93f187;
 Wed, 06 Aug 2025 08:56:55 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-af910372ab3so106603466b.1
 for <xen-devel@lists.xenproject.org>; Tue, 05 Aug 2025 23:56:55 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af92b650c8asm900600366b.65.2025.08.05.23.56.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 05 Aug 2025 23:56:54 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8a0ae281-7292-11f0-a322-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754463415; x=1755068215; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=1XvageX/ARYJhDDpLxRO6nGyagjksd2JEuCVhzWsoMw=;
        b=HFpa9qow2Awh7JzmYGNmZ5f/+NAuCPNrnJTAtob6YcPRssqe/FynIF9mo+iHk6EMFv
         vGzOBZFuy1aMzL7Ol5jY6wroahOXWL0jLcpFeBDG6m/xXCxMU2Q9/0LiLTydIOv/Ml3u
         qgpq7CPLC5g4xBE8pYcQoGviRUVY/r049tdTN+e0TbsiT8n8MxCRCBKpfbHIaNQIDqAB
         LA87cc+v+teSrHrVmv87AGwzpaIGSWsmfzgbLsQXRuXaVNijfqhklwdvGWk0iziBASRM
         H50gXfXpFOurR8xz662KUtAFjzsCVFhdIMGb8nWkVPkq7XjNQnowNmYJPdmdvBzAbF8A
         sOSw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754463415; x=1755068215;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1XvageX/ARYJhDDpLxRO6nGyagjksd2JEuCVhzWsoMw=;
        b=WNJ9+ZN8yuGDx45l6dlBjsgBRa/RWzHhtNT49HbsQ4w4yLpTdFdQ4ir13zqI3HYReT
         AMeOQqEGQ6znrNfEjjD58Wmo5JOS/kmovGYk9ZiCabZnj3YBZi9vh78z0GNLXNepU8UI
         1MZ+Ovt9nzCuaAp6q8ftYaASYZXspMww/YGRk4Q9ESjlQT7bRlLioSCQVkyewEHN2/yO
         cyYilwO3mrdMIJHAhOxFpkWbZBTdT1cVZEy7gSHylnFqhO4Ar0oPARVX/DQWeiF6F0KC
         WCftbbmMsC72KMZTjPxndSk9HgqaY27jWFekXzuHDT56L47YJQHquStChEczX41kuYqg
         xosA==
X-Forwarded-Encrypted: i=1; AJvYcCXaF98uVrWNmp1V9Bh/3P6jghs4YFge4Ksb8a8Iq7AYaZfiM2hof2jw40UB4Q05biCylxkgCh+ldoI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxMcKpPmiGXlQwzWEc1UpXIOK0X2ZsGRSMksM7Lxv3nUnqFoBTW
	Yqo56ulFtyxyD5V3CtgpC+ZwPg1VSrfb93GgEtPWI43nLmUWEhXx+73nZs8+0sHc0A==
X-Gm-Gg: ASbGncuNAbAvTrh0nZDkQJHlKNtHrj75SzVUYyaAyPqtNEis2bfFOn97kqcnxW2voto
	0uWQcBTU+dZDHYqbDAy1qw5itjTUriz9BoomAPCb8tkidxLDsLXBBkVYHloqTHs7zJA2mvzgU0S
	QkHYs/UR3jxJ3D/tyDbI+Nqb1tNs9vSkq/oRZUKA3mlL25WFlye+92OlTet3jDwf2Cn3Vn4W4Iw
	OQ5g5Fj2qeiC4QDnOPl8f5kB+JJF+9WI9xr6NiN/xpNR/TFRlb7TDGpy+ReLD4eeI7chIbFh1PD
	pRX1QlBM6OPNqprAnZtPa/GItpbNb45T5+RR++yzyreEsChSsjDdaHK+hWgB5vE6Ub9Qt4UD9yo
	MDv1I7vjEmlMeCi24oYzvRPtFOTC75ZsKgQA+BY+eTaem6zidEfxjSllejwa3SYsmCWlkyEKSSK
	ITqB1+UPc=
X-Google-Smtp-Source: AGHT+IHRT/FYVxvGF9e3eBYrHGp89MGK/ifwRevr62Lzb1FskD+oK+EPxlB8jju39sFPhsa2Q3JWww==
X-Received: by 2002:a17:907:6e9f:b0:ae7:f389:c751 with SMTP id a640c23a62f3a-af99054a1d4mr168441866b.0.1754463415022;
        Tue, 05 Aug 2025 23:56:55 -0700 (PDT)
Message-ID: <4c02de43-e51e-4f34-9144-a37819889daf@suse.com>
Date: Wed, 6 Aug 2025 08:56:53 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v10 4/4] vpci/msix: Free MSIX resources when init_msix()
 fails
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "Huang, Ray" <Ray.Huang@amd.com>
References: <20250805034906.1014212-1-Jiqian.Chen@amd.com>
 <20250805034906.1014212-5-Jiqian.Chen@amd.com>
 <775a45bd-61df-4cab-948e-bdc79dfd89ef@suse.com>
 <BL1PR12MB5849E4FE7136515B5947AB8AE72DA@BL1PR12MB5849.namprd12.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: <BL1PR12MB5849E4FE7136515B5947AB8AE72DA@BL1PR12MB5849.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.08.2025 05:35, Chen, Jiqian wrote:
> On 2025/8/5 16:43, Jan Beulich wrote:
>> On 05.08.2025 05:49, Jiqian Chen wrote:
>>> --- a/xen/drivers/vpci/msix.c
>>> +++ b/xen/drivers/vpci/msix.c
>>> @@ -655,6 +655,48 @@ int vpci_make_msix_hole(const struct pci_dev *pdev)
>>>      return 0;
>>>  }
>>>  
>>> +static int cf_check cleanup_msix(const struct pci_dev *pdev)
>>> +{
>>> +    int rc;
>>> +    struct vpci *vpci = pdev->vpci;
>>> +    const unsigned int msix_pos = pdev->msix_pos;
>>> +
>>> +    if ( !msix_pos )
>>> +        return 0;
>>> +
>>> +    rc = vpci_remove_registers(vpci, msix_control_reg(msix_pos), 2);
>>> +    if ( rc )
>>> +    {
>>> +        printk(XENLOG_ERR "%pd %pp: fail to remove MSIX handlers rc=%d\n",
>>> +               pdev->domain, &pdev->sbdf, rc);
>>> +        ASSERT_UNREACHABLE();
>>> +        return rc;
>>> +    }
>>> +
>>> +    if ( vpci->msix )
>>> +    {
>>> +        list_del(&vpci->msix->next);
>>> +        for ( unsigned int i = 0; i < ARRAY_SIZE(vpci->msix->table); i++ )
>>> +            if ( vpci->msix->table[i] )
>>> +                iounmap(vpci->msix->table[i]);
>>> +
>>> +        XFREE(vpci->msix);
>>> +    }
>>> +
>>> +    /*
>>> +     * The driver may not traverse the capability list and think device
>>> +     * supports MSIX by default. So here let the control register of MSIX
>>> +     * be Read-Only is to ensure MSIX disabled.
>>> +     */
>>> +    rc = vpci_add_register(vpci, vpci_hw_read16, NULL,
>>> +                           msix_control_reg(msix_pos), 2, NULL);
>>> +    if ( rc )
>>> +        printk(XENLOG_ERR "%pd %pp: fail to add MSIX ctrl handler rc=%d\n",
>>> +               pdev->domain, &pdev->sbdf, rc);
>>
>> Here as well as for MSI: Wouldn't this better be limited to the init-failure
>> case? No point in adding a register hook (and possibly emitting a misleading
>> log message) when we're tearing down anyway. IOW I think the ->cleanup()
>> hook needs a boolean parameter, unless the distinction of the two cases can
>> be (reliably) inferred from some other property.
> To make these changes, can I add a new patch as the last patch of this series?
> And the new patch will do:
> 1. add a boolean parameter for cleanup hook to separate whose calls cleanup(during initialization or during deassign device).
> 2. call all cleanup hooks in vpci_deassign_device().
> 3. remove the MSI/MSIX specific free actions in vpci_deassign_device().

The outline looks okay, but imo it shouldn't be last in the series. Instead I
think it wants to come ahead of the last three patches; whether it's patch 1
or patch 2 doesn't really matter. Then (3) would be taken care of incrementally,
as ->cleanup hooks are added.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 06:59:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 06:59:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071267.1434757 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujY7F-00034X-Nx; Wed, 06 Aug 2025 06:59:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071267.1434757; Wed, 06 Aug 2025 06: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 1ujY7F-00034Q-LL; Wed, 06 Aug 2025 06:59:13 +0000
Received: by outflank-mailman (input) for mailman id 1071267;
 Wed, 06 Aug 2025 06:59:13 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oS3N=2S=huawei.com=ruanjinjie@srs-se1.protection.inumbo.net>)
 id 1ujY7F-00034K-AV
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 06:59:13 +0000
Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d7c34c79-7292-11f0-a322-13f23c93f187;
 Wed, 06 Aug 2025 08:59:08 +0200 (CEST)
Received: from mail.maildlp.com (unknown [172.19.88.105])
 by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4bxgxp47LNz14MD9;
 Wed,  6 Aug 2025 14:54:06 +0800 (CST)
Received: from dggpemf500011.china.huawei.com (unknown [7.185.36.131])
 by mail.maildlp.com (Postfix) with ESMTPS id C2CAE140155;
 Wed,  6 Aug 2025 14:59:02 +0800 (CST)
Received: from [10.67.109.254] (10.67.109.254) by
 dggpemf500011.china.huawei.com (7.185.36.131) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Wed, 6 Aug 2025 14:59:01 +0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d7c34c79-7292-11f0-a322-13f23c93f187
Message-ID: <8972d8b9-ced3-f207-9c00-91b544d8ecc8@huawei.com>
Date: Wed, 6 Aug 2025 14:59:00 +0800
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
 Thunderbird/102.2.0
Subject: Re: [PATCH -next v7 7/7] arm64: entry: Switch to generic IRQ entry
Content-Language: en-US
To: Ada Couprie Diaz <ada.coupriediaz@arm.com>
CC: <catalin.marinas@arm.com>, <will@kernel.org>, <oleg@redhat.com>,
	<sstabellini@kernel.org>, <mark.rutland@arm.com>, <puranjay@kernel.org>,
	<broonie@kernel.org>, <mbenes@suse.cz>, <ryan.roberts@arm.com>,
	<akpm@linux-foundation.org>, <chenl311@chinatelecom.cn>,
	<anshuman.khandual@arm.com>, <kristina.martsenko@arm.com>,
	<liaochang1@huawei.com>, <ardb@kernel.org>, <leitao@debian.org>,
	<linux-arm-kernel@lists.infradead.org>, <linux-kernel@vger.kernel.org>,
	<xen-devel@lists.xenproject.org>
References: <20250729015456.3411143-1-ruanjinjie@huawei.com>
 <20250729015456.3411143-8-ruanjinjie@huawei.com>
 <fb0b7a92-09e8-41b2-9ae7-09fb9b453961@arm.com>
From: Jinjie Ruan <ruanjinjie@huawei.com>
In-Reply-To: <fb0b7a92-09e8-41b2-9ae7-09fb9b453961@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.67.109.254]
X-ClientProxiedBy: kwepems200001.china.huawei.com (7.221.188.67) To
 dggpemf500011.china.huawei.com (7.185.36.131)



On 2025/8/5 23:07, Ada Couprie Diaz wrote:
> Hi Jinjie,
> 
> The code changes look good to me, just a small missing clean up I believe.
> 
> On 29/07/2025 02:54, Jinjie Ruan wrote:
> 
>> Currently, x86, Riscv, Loongarch use the generic entry. Convert arm64
>> to use the generic entry infrastructure from kernel/entry/*.
>> The generic entry makes maintainers' work easier and codes
>> more elegant.
>>
>> Switch arm64 to generic IRQ entry first, which removed duplicate 100+
>> LOC. The next patch serise will switch to generic entry completely later.
>> Switch to generic entry in two steps according to Mark's suggestion
>> will make it easier to review.
> 
> I think the commit message could be clearer, especially since now this
> series
> only moves arm64 to generic IRQ entry and not the complete generic entry.
> 
> What do you think of something like below ? It repeats a bit less and I
> think
> it helps understanding what is going on in this specific commit, as you
> already
> have details on the larger plans in the cover.
> 
> Â Â Â Â Currently, x86, Riscv and Loongarch use the generic entry code,
> which makes
> Â Â Â Â maintainer's work easier and code more elegant.
> Â Â Â Â Start converting arm64 to use the generic entry infrastructure
> Â Â Â Â from kernel/entry/* by switching it to generic IRQ entry, which
> removes 100+
> Â Â Â Â lines of duplicate code.
> Â Â Â Â arm64 will completely switch to generic entry in a later series.
> 

Yes, this is more concise and accurate, and make the motivation more
clearer.

>> The changes are below:
>> Â  - Remove *enter_from/exit_to_kernel_mode(), and wrap with generic
>> Â Â Â  irqentry_enter/exit(). Also remove *enter_from/exit_to_user_mode(),
>> Â Â Â  and wrap with generic enter_from/exit_to_user_mode() because they
>> Â Â Â  are exactly the same so far.
> Nit : "so far" can be removed
>> Â  - Remove arm64_enter/exit_nmi() and use generic
>> irqentry_nmi_enter/exit()
>> Â Â Â  because they're exactly the same, so the temporary arm64 version
>> Â Â Â  irqentry_state can also be removed.
>>
>> Â  - Remove PREEMPT_DYNAMIC code, as generic entry do the same thing
>> Â Â Â  if arm64 implement arch_irqentry_exit_need_resched().
> This feels unrelated, given that the part that needs
> `arch_irqentry_exit_need_resched()`
> is called whether or not PREEMPT_DYNAMIC is enabled ?

Yes, the language here needs to be reorganized in conjunction with your
comments from the fifth patch.

> 
> Given my comments on patch 5, I feel that the commit message should mention
> explicitly the implementation of `arch_irqentry_exit_need_resched()` and
> why,
> even though it was already mentioned in patch 5.
> (This is what I was referencing in patch 5 : as I feel it's useful to
> mention again
> the reasons when implementing it, it doesn't feel too out of place to
> introduce
> the generic part at the same time. But again, I might be wrong here.)
> 
> Then you can have another point explaining that
> `raw_irqentry_exit_cond_resched()`
> and the PREEMPT_DYNAMIC code is removed because they are identical to the
> generic entry code, similarly to your other points.
>> Tested ok with following test cases on Qemu virt platform:
>> Â  - Perf tests.
>> Â  - Different `dynamic preempt` mode switch.
>> Â  - Pseudo NMI tests.
>> Â  - Stress-ng CPU stress test.
>> Â  - MTE test case in
>> Documentation/arch/arm64/memory-tagging-extension.rst
>> Â Â Â  and all test cases in tools/testing/selftests/arm64/mte/*.
> Nit : I'm not sure if the commit message is the best place for this,
> given you
> already gave some details in the cover ?
> But I don't have much experience here, so I'll leave it up to you and
> others !

Yes, this can be removed as the cover letter already has it.

>> Suggested-by: Mark Rutland <mark.rutland@arm.com>
>> Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
>> ---
>> [...]
>> diff --git a/arch/arm64/kernel/signal.c b/arch/arm64/kernel/signal.c
>> index db3f972f8cd9..1110eeb21f57 100644
>> --- a/arch/arm64/kernel/signal.c
>> +++ b/arch/arm64/kernel/signal.c
>> @@ -9,6 +9,7 @@
>> Â  #include <linux/cache.h>
>> Â  #include <linux/compat.h>
>> Â  #include <linux/errno.h>
>> +#include <linux/irq-entry-common.h>
>> Â  #include <linux/kernel.h>
>> Â  #include <linux/signal.h>
>> Â  #include <linux/freezer.h>
>> @@ -1576,7 +1577,7 @@ static void handle_signal(struct ksignal *ksig,
>> struct pt_regs *regs)
>> Â Â  * the kernel can handle, and then we build all the user-level
>> signal handling
>> Â Â  * stack-frames in one go after that.
>> Â Â  */
>> -void do_signal(struct pt_regs *regs)
>> +void arch_do_signal_or_restart(struct pt_regs *regs)
> Given that `do_signal(struct pt_regs *regs)` is defined in
> `arch/arm64/include/asm/exception.h`,
> and that there remains no users of `do_signal()`, I think it should be
> removed there.

Good catch! I'll remove it.

> 
> Thanks,
> Ada
> 


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 07:11:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 07:11:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071273.1434768 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujYJ0-0006CR-PM; Wed, 06 Aug 2025 07:11:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071273.1434768; Wed, 06 Aug 2025 07: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 1ujYJ0-0006CK-ME; Wed, 06 Aug 2025 07:11:22 +0000
Received: by outflank-mailman (input) for mailman id 1071273;
 Wed, 06 Aug 2025 07:11:21 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kasG=2S=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1ujYIz-0006CE-Pm
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 07:11:21 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8d77d6f8-7294-11f0-a322-13f23c93f187;
 Wed, 06 Aug 2025 09:11:20 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-458b49c98a7so30184995e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 Aug 2025 00:11:20 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3b79c4a2187sm22731661f8f.70.2025.08.06.00.11.19
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Aug 2025 00:11: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>
X-Inumbo-ID: 8d77d6f8-7294-11f0-a322-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754464280; x=1755069080; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=BFLpsSSZOqguyhHuHmKlBEwcIt5R3RjMxXoUX7ZY3ks=;
        b=s0u+Zyf3yF4/wDXF1ffbLcjBDZj8GGsSpHNfgDPqlynRb95Pra+cooorL418epLOYd
         D/5/g3aCm8C6i6k9uivfr4AvYbk2N26DTZep08ssS69r6xmotfvXL0viKrTJfavAseSS
         Ee9dZhLkqdOrltDzDxE7A35xjP6yC+imJOhrs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754464280; x=1755069080;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=BFLpsSSZOqguyhHuHmKlBEwcIt5R3RjMxXoUX7ZY3ks=;
        b=J+b8VO/cuiPVHNYsZ43cZEXirH7VEOdwohLcsR2Y1k2kXe6Lv9lV1LxRIo7mRk/Vi5
         /Zk4bQTnasYrAnTZRL5l5Qf7uQgabRDczcCN59EsnCHhHIgtqe2WdwwHZIu2lRiTkO/4
         SnX0XeequqfTNg2TD1qzfRn8V5Jd/SKlQGOtAXG2NHVawXzbyTGBHes3HLb76tNhH6WG
         QYop0ahzEnOTRBs2703H40flvpbTHL1Fj/HCRwCh23NTkCfGqUEqEN7fhWfZ2/2AZkKr
         nHtabBk4T4LPlIwFpWmDUEcQ79UaZ7QIocXwHTYNKTqX3RjmPK+rtXJM+7zBERykVTnv
         PqoA==
X-Forwarded-Encrypted: i=1; AJvYcCX3D4IvObmzPiMHAhQzibmYn6EM35aKAMdmk+ERywSrXJvuf+2RrKWWE6OXOBBjVxcsmMgBMXyo7KU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzsv2dp7kqA9CPMaARb4DW1nc6sjHeXRc7cFjsFu4KvSq6K+AFh
	wrnCby2/ycvnPesozcVBA//s/wGAGvK9aFFZqelrOwAG3l/LoRHf5bsOhmsEP56DIAA=
X-Gm-Gg: ASbGncsBrTYbVNGBE4Jq8/12Ai16GXRDezBs4c0HHteLcu+igb+FlSTKogcFCOqFZBz
	0WMA3v1WwtI8wTw5uGKiwxx3dvntdzEoWP7jkelvS/59kxigPvRiu6FdiFKZSq9p4+po9kJ2D8o
	eG95DOtYEkHFHeBnqQfQFRioMK9Z97d9KRDC8tWBkT8SbiM7Ud8OXrAOScM0yrxq2YSFJMRMaQY
	6yioqPccyYfhLdggtmT62XixJ4aP3e2/NOlevccUk0eRjCCvsSwNMYZGeDswK23pTtse9WTzqd1
	umYg7Cl2ThHE3b+cXDRpgTFxaP2Sl5MDNTFbiklq0F0KyHCH8TvoEfkPZ5dKMksy9BFS17rt2rz
	+Wx1TRI4KOAD12X96766ONL1JVxQEHo+r5hKkkrHKTGSPIJe7HF1pKQrtcV/KUGTZpw==
X-Google-Smtp-Source: AGHT+IHzDXTHvBA8nfCVpsdsCYcz9wbqgIFHT3k4svieWHAITbVtmmQhf+IhGq43wjBV7QAtN/DU0A==
X-Received: by 2002:a05:600c:3556:b0:456:fdd:6030 with SMTP id 5b1f17b1804b1-459e70efe7amr13955805e9.19.1754464279796;
        Wed, 06 Aug 2025 00:11:19 -0700 (PDT)
Date: Wed, 6 Aug 2025 09:11:18 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jason Andryuk <jason.andryuk@amd.com>
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] x86/HVM: polish hvm_asid_init() a little
Message-ID: <aJMAFi6GO7Twh6Sk@macbook.local>
References: <ec351aea-e2a0-4335-b8ee-51c6eface104@suse.com>
 <b98abcdb-38ba-4176-8d6a-d4bc234b37ca@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <b98abcdb-38ba-4176-8d6a-d4bc234b37ca@amd.com>

On Tue, Aug 05, 2025 at 11:30:58AM -0400, Jason Andryuk wrote:
> On 2025-08-04 11:41, Jan Beulich wrote:
> > While the logic there covers asymmetric cases, the resulting log
> > messages would likely raise more confusion than clarify anything. Split
> > the BSP action from the AP one, indicating the odd CPU in the AP log
> > message, thus avoiding the impression that global state would have
> > changed.
> > 
> > While there also
> > - move g_disabled into .data.ro_after_init; only the BSP will ever write
> >    to it,
> > - make the function's parameter unsigned; no negative values may be
> >    passed in. Also reflect this in svm_asid_init().
> > 
> > Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

Acked-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

Thanks.


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 07:46:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 07:46:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071280.1434778 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujYqU-000264-B2; Wed, 06 Aug 2025 07:45:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071280.1434778; Wed, 06 Aug 2025 07: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 1ujYqU-00025x-7N; Wed, 06 Aug 2025 07:45:58 +0000
Received: by outflank-mailman (input) for mailman id 1071280;
 Wed, 06 Aug 2025 07:45:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ctQb=2S=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1ujYqT-00025r-1v
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 07:45:57 +0000
Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com
 [2a00:1450:4864:20::62f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6208248e-7299-11f0-b898-0df219b8e170;
 Wed, 06 Aug 2025 09:45:55 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-af93c3bac8fso737308766b.2
 for <xen-devel@lists.xenproject.org>; Wed, 06 Aug 2025 00:45:55 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a0a3981sm1046712466b.35.2025.08.06.00.45.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Aug 2025 00:45: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>
X-Inumbo-ID: 6208248e-7299-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754466354; x=1755071154; darn=lists.xenproject.org;
        h=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=bkHSSZV53yUU7XV1RCmxtb14r7xNOaRRwrns5+4qxJE=;
        b=bGSSG5orzNPRtyEdw2hso6t+wXcH0tRZS2NS+YO6kJrnA3BQTFej+h+mN6WZ9juEjI
         bsgkLEWTWdkE89W/I0KEpV9cxo6tdFtztZPCY7k7Rw5lQHHzl3Grmsuhg1HrKGSwxoY2
         PiDfEoAOH3l5ZmKfYK0JdlhYwfFIG9iBti8/ZtUx+3KFDeBIlpje/tqFJ6iBu29b9hCC
         qLWFmAtCfoy7vU9k5lv2YdbzdKjvxR06RPOPOtkdQaRoPioSZjpBcJWNg5ncCDtBPg58
         xTei2DHfZ/9bxsj6YoX9uBND8OMqkaOdR9Ql6LsWVvI1ci6r8D83dGfPDd9uNXDMn0H3
         ZQYQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754466354; x=1755071154;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=bkHSSZV53yUU7XV1RCmxtb14r7xNOaRRwrns5+4qxJE=;
        b=TEkXTuLoxZxstqh91jagceHjv+CjSmcrrB+81C7KVLv3C2gm14DCK9cHEkBtdvrx4A
         AWe2hKSMdRS2gBSO6vCMAkd1gc5d/13N5+zRO14Sx7t3xoBAJ2ep42lMFLY4E/yP+EM3
         EEytic4Jfi7RejsK0cStoKf7jxNrcAjUPTPkv/YX7SLdFzafsjWhc4hPkY64bNrx7oy2
         LLxu2a/dh1B+6B9/9BRf/PCqMgHfbT9yTd2fPyghsh2eMGfW52r8CsuualAgutA2x6cq
         d+4ng8A6e9sKQ94aYu4I0/itPEu8l6Eo08mq5ZHkpdwWnIEHff9cYaOEVMninDcdiT8d
         9D7g==
X-Forwarded-Encrypted: i=1; AJvYcCUiLnWhW/Z2Ta+fLs7rgeIur/684TToUwlUc49uI8/dBGvyf3nvBm8h90C1hm+jqcUiyQKsLnJ8M84=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwbCTlBlIBnaVCoQ/SchOtG2H3uhUoM1i3NRQOi38AN3riiuJp9
	5TqDK8xyYAYlul7ce7GNtrJZX8l83OGDJp4jGl5HvHedRkcEKYqU6pcU
X-Gm-Gg: ASbGncslZpYk7wswAr2wlHNd2pF/UYiZq3tnEH/ivyASoIaZNN9cdfjvnRqY7iFcih5
	5q8kWl+9olmx3z6FAg3CpE36B+nPj+Q+FYkBHkBhQyIeIFQ0PW/WC+IfFKaDQShFUT+Hm9GdNBv
	gb7v9yZRer/yXPz3DIrdcuOM3GfVQhOvkGwY4trsqZF8DnshobfpCspPIOGlfbTrGQ4sFy1SVaZ
	XvnMlgogBLqWscGT8yY+OJ5QtCyy+9m5yjJL/XkicrhyXxyI1GvJhtqIzq6+t6RqZ7LB4s6Vnv8
	ScYOeU6rT+az4VJkLMZmSGhCvK/2RWP4YydRPoIkQjw1Rv8hJg96M5U8kXvIqvcSLANFRp3roOQ
	gJAeXjW+mjx1OZRccNx4eXjrMwkeVrni95Q4r78C3WLaSXGkB5Kri+UaJT2NPcZi6ediEf84=
X-Google-Smtp-Source: AGHT+IFjN0KcPER6GyGvZrQNm1VKGcTIzsxy13CjoDwnHuV7oxe8688D130iJzQgsichhaSLBYdfWA==
X-Received: by 2002:a17:907:980f:b0:aec:6600:dbe3 with SMTP id a640c23a62f3a-af992bc3acfmr124190266b.56.1754466353935;
        Wed, 06 Aug 2025 00:45:53 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------kZF3O5gOHXMsO4gSSGZUUrHA"
Message-ID: <03a1d0b8-facd-4c02-97c6-45fa694da0b6@gmail.com>
Date: Wed, 6 Aug 2025 09:45:52 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Xen 4.21 Development Update [June-July]
To: Jan Beulich <jbeulich@suse.com>
Cc: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>,
 Ayan Kumar Halder <ayan.kumar.halder@amd.com>,
 Mykyta Poturai <Mykyta_Poturai@epam.com>, Juergen Gross <jgross@suse.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Luca Fancellu <luca.fancellu@arm.com>, "Jason Andryuk,"
 <jason.andryuk@amd.com>, Sergii Dmytruk <sergii.dmytruk@3mdeb.com>,
 "Penny Zheng," <Penny.Zheng@amd.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki=2C?=
 <marmarek@invisiblethingslab.com>, Roger Pau Monne <roger.pau@citrix.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, dmkhn@proton.me,
 Mykola Kvach <xakep.amatop@gmail.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Grygorii Strashko <gragst.linux@gmail.com>,
 Alejandro Vallejo <agarciav@amd.com>,
 "committers@xenproject.org" <committers@xenproject.org>,
 Community Manager <community.manager@xenproject.org>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <ae2c2e35-72df-40ed-bffe-391f3c11b826@gmail.com>
 <242a93cf-20f7-4fcd-8eef-6945af5d864c@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <242a93cf-20f7-4fcd-8eef-6945af5d864c@suse.com>

This is a multi-part message in MIME format.
--------------kZF3O5gOHXMsO4gSSGZUUrHA
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 8/6/25 8:05 AM, Jan Beulich wrote:
> On 05.08.2025 20:19, Oleksii Kurochko wrote:
>> * Full list of items : *
>>
>> = Projects =
>>
>> == Hypervisor ==
>>
>> * [4.21] xen/console: cleanup console input switch logic (v5)
>>   Â  - Denis Mukhin
>>   Â  -
>> https://lore.kernel.org/xen-devel/20250530231841.73386-1-dmukhin@ford.com/
>>
>> * [4.21] xen: introduce CONFIG_SYSCTL (v4 -> v8)
>>   Â  -Â  Penny Zheng
>>   Â  -
>> https://lore.kernel.org/xen-devel/20250711043158.2566880-1-Penny.Zheng@amd.com/
>>
>> * [4.21] Several CI cleanups and improvements, plus yet another new runner
>>   Â  - Marek Marczykowski-GÃ³recki
>>   Â  -
>> https://lore.kernel.org/xen-devel/cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com/
>>   Â  -
>> https://patchew.org/Xen/cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com/
>>
>> * [4.21] automation: Refresh the remaining Debian containers (v2)
>>   Â  -Â  Javi Merino
>>   Â  -
>> https://lore.kernel.org/xen-devel/cover.1730743077.git.javi.merino@cloud.com/T/#m5d9acb7cf5db3c2be3d6527de14b69b07812314e
>>
>> * [4.21] MSI-X support with qemu in stubdomain, and other related
>> changes (v8)
>>   Â  -Â  Marek Marczykowski-GÃ³recki
>>   Â  -
>> https://lore.kernel.org/xen-devel/cover.33fb4385b7dd6c53bda4acf0a9e91748b3d7b1f7.1715313192.git-series.marmarek@invisiblethingslab.com/
>>   Â  -Â  Only automation patch left to be reviewed/merged.
>>
>> * [next-rel(s)] Physical address hypercall ABI ("HVMv2")
>>   Â  - Teddy Astie
>>   Â  -
>> https://lore.kernel.org/xen-devel/cover.1744981654.git.teddy.astie@vates.tech/
>>
>> * [next-rel(s)] xen: Untangle mm.h
>>   Â  -Â  Andrew Cooper
>>   Â  -
>> https://lore.kernel.org/xen-devel/20250312174513.4075066-1-andrew.cooper3@citrix.com/
>>   Â  -
>> https://patchew.org/Xen/20250312174513.4075066-1-andrew.cooper3@citrix.com/
>>
>> * [next-rel(s)] Add support for exact-node memory claims
>>   Â  -Â  Alejandro Vallejo
>>   Â  -
>> https://lore.kernel.org/xen-devel/20250314172502.53498-1-alejandro.vallejo@cloud.com/
>>   Â  -
>> https://patchew.org/Xen/20250314172502.53498-1-alejandro.vallejo@cloud.com/
>>
>> * [next-rel(s)] Remove the directmap (v5)
>>   Â  -Â  Alejandro Vallejo
>>   Â  -
>> https://lore.kernel.org/xen-devel/20250108151822.16030-1-alejandro.vallejo@cloud.com/
>>   Â  -
>> https://patchew.org/Xen/20250108151822.16030-1-alejandro.vallejo@cloud.com/
>>
>> * [next-rel(s)] GRUB: Supporting Secure Boot of xen.gz (v1)
>>   Â  -Â  Ross Lagerwall
>>   Â  -
>> https://patchew.org/Xen/20240313150748.791236-1-ross.lagerwall@citrix.com/
>>
>> * [next-rel(s)] Introduce xenbindgen to autogen hypercall structs (v1)
>>   Â  -Â  Alejandro Vallejo
>>   Â  -
>> https://patchew.org/Xen/20241115115200.2824-1-alejandro.vallejo@cloud.com/
>>
>> * [next-rel(s)] Introduce NS8250 UART emulator (v2)
>>   Â  -Â  Denis Mukhin
>>   Â  -
>> https://patchew.org/Xen/20241205-vuart-ns8250-v1-0-e9aa923127eb@ford.com/
>>
>> * [next-rel(s)] xen: framework for UART emulators
>>   Â  - Denis Mukhin
>>   Â  -
>> https://lore.kernel.org/xen-devel/20250624035443.344099-1-dmukhin@ford.com/
>>
>> === x86 ===
>> * [4.21] x86/asm: cleanups after toolchain baseline upgrade (v1 -> v2)
>>   Â  - Denis Mukhin
>>   Â  -
>> https://lore.kernel.org/xen-devel/20250403182250.3329498-1-dmukhin@ford.com/
>>   Â  -https://patchew.org/Xen/20250403182250.3329498-1-dmukhin@ford.com/
>>
>> * [4.21?] x86/efi: Fix booting when NX is disabled (v1 -> v2)
>>   Â  - Andrew Cooper
>>   Â  -
>> https://patchew.org/Xen/20240722101838.3946983-1-andrew.cooper3@citrix.com/
>>   Â  -
>> https://lore.kernel.org/xen-devel/20240722101838.3946983-1-andrew.cooper3@citrix.com/
>>
>> * [4.21?] Hyperlaunch device tree for dom0 (v6)
>>   Â  - Alejandro Vallejo
>>   Â  -https://patchew.org/Xen/20250429123629.20839-1-agarciav@amd.com/
>>   Â  -
>> https://lore.kernel.org/xen-devel/20250429123629.20839-1-agarciav@amd.com/
>>
>> *Â  [4.21?] Boot modules for Hyperlaunch (v9)
>>   Â  -Â  Daniel P. Smith
>>   Â  -
>> https://lore.kernel.org/xen-devel/20241115131204.32135-1-dpsmith@apertussolutions.com/
>>   Â  -
>> https://patchew.org/Xen/20241115131204.32135-1-dpsmith@apertussolutions.com/
>>
>> *Â  [4.21?] Address Space Isolation FPU preparations (v2->v3)
>>   Â  -Â  Alejandro Vallejo
>>   Â  -
>> https://patchew.org/Xen/20250110132823.24348-1-alejandro.vallejo@cloud.com/
>>
>> * [next-rel(s)] Hyperlaunch domain builder
>>   Â  - Daniel P. Smith
>>   Â  -
>> https://lore.kernel.org/xen-devel/20250515131744.3843-1-dpsmith@apertussolutions.com/
>>
>> * [next-rel(s)] Confidential computing and AMD SEV support
>>   Â  - Teddy Astie
>>   Â  -https://patchew.org/Xen/cover.1747312394.git.teddy.astie@vates.tech/
>>   Â  -
>> https://lore.kernel.org/xen-devel/cover.1747312394.git.teddy.astie@vates.tech/
>>
>> * [next-rel(s)] amd-cppc CPU Performance Scaling Driver (v5 -> v6)
>>   Â  - Penny Zheng
>>   Â  -
>> https://lore.kernel.org/xen-devel/20250711035106.2540522-1-Penny.Zheng@amd.com/
>>
>> * [next-rel(s)] x86: Trenchboot Secure Launch DRTM (Xen) (v1 -> v3)
>>   Â  - Sergii Dmytruk
>>   Â  -https://patchew.org/Xen/cover.1745172094.git.sergii.dmytruk@3mdeb.com/
>>   Â  -
>> https://lore.kernel.org/xen-devel/cover.1748611041.git.sergii.dmytruk@3mdeb.com/
>>
>> * [next-rel(s)] x86/EFI: prevent write-execute sections
>>   Â  - Roger Pau Monne<roger.pau@citrix.com>
>>   Â  -
>> https://lore.kernel.org/xen-devel/20250401130840.72119-1-roger.pau@citrix.com/
>>
>> * [next-rel(s)] x86: generate xen.efi image with no write-execute sections
>>   Â  - Roger Pau Monne
>>   Â  -
>> https://lore.kernel.org/xen-devel/20250318173547.59475-1-roger.pau@citrix.com/
>>
>> *Â  [next-rel(s)] Expose consistent topology to guests (v7)
>>   Â  -Â  Alejandro Vallejo
>>   Â  -
>> https://patchew.org/Xen/20241021154600.11745-1-alejandro.vallejo@cloud.com/
>>
>> *Â  [next-rel(s)] x86/alternatives: Adjust all insn-relative fields (v2)
>>   Â  -Â  Andrew Cooper
>>   Â  -
>> https://lore.kernel.org/xen-devel/20241002152725.1841575-1-andrew.cooper3@citrix.com/T/#mac2deaea7e02a343210d61887486433d946ad129
>>
>> *Â  [next-rel(s)] x86emul: misc additions (v7)
>>   Â  -Â  Jan Beulich
>>   Â  -https://patchew.org/Xen/3a25cd59-e1cb-4bfc-b868-fb11599d22f5@suse.com/
>>
>> *Â  [next-rel(s)] x86: support AVX10 (v3)
>>   Â  -Â  Jan Beulich
>>   Â  -
>> https://lore.kernel.org/xen-devel/516b7f9a-048e-409d-8a4e-89aeb8ffacc4@suse.com/
>>   Â  -https://patchew.org/Xen/516b7f9a-048e-409d-8a4e-89aeb8ffacc4@suse.com/
> While it is correct that AVX10 is now to go first, AMX was lost as an item, and
> APX (which I see no reason in posting as long as AVX10 doesn't make any progress)
> was agreed to go after AVX10, before AMX. (KeyLocker was also lost, but that
> happens to be correct, as with Intel abandoning the feature we apparently have no
> plans anymore to make an attempt at supporting it.)
>
> FRED (being worked on by Andrew) is also entirely missing.
>
> Overall: There are very many items on this list, and it seems entirely clear to
> me that not all of them will make it. I think it would be quite helpful to strip
> down the set for 4.21 to some realistic subset. Maybe something to discuss on
> the community call later today?

Good point, lets discuss that tomorrow during the community call.

~ Oleksii

--------------kZF3O5gOHXMsO4gSSGZUUrHA
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/6/25 8:05 AM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:242a93cf-20f7-4fcd-8eef-6945af5d864c@suse.com">
      <pre wrap="" class="moz-quote-pre">On 05.08.2025 20:19, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">* Full list of items : *

= Projects =

== Hypervisor ==

* [4.21] xen/console: cleanup console input switch logic (v5)
 Â  - Denis Mukhin
 Â  - 
<a class="moz-txt-link-freetext" href="https://lore.kernel.org/xen-devel/20250530231841.73386-1-dmukhin@ford.com/">https://lore.kernel.org/xen-devel/20250530231841.73386-1-dmukhin@ford.com/</a>

* [4.21] xen: introduce CONFIG_SYSCTL (v4 -&gt; v8)
 Â  -Â  Penny Zheng
 Â  - 
<a class="moz-txt-link-freetext" href="https://lore.kernel.org/xen-devel/20250711043158.2566880-1-Penny.Zheng@amd.com/">https://lore.kernel.org/xen-devel/20250711043158.2566880-1-Penny.Zheng@amd.com/</a>

* [4.21] Several CI cleanups and improvements, plus yet another new runner
 Â  - Marek Marczykowski-GÃ³recki
 Â  - 
<a class="moz-txt-link-freetext" href="https://lore.kernel.org/xen-devel/cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com/">https://lore.kernel.org/xen-devel/cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com/</a>
 Â  - 
<a class="moz-txt-link-freetext" href="https://patchew.org/Xen/cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com/">https://patchew.org/Xen/cover.7da1777882774486a13e6f39ff4a2096f6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com/</a>

* [4.21] automation: Refresh the remaining Debian containers (v2)
 Â  -Â  Javi Merino
 Â  - 
<a class="moz-txt-link-freetext" href="https://lore.kernel.org/xen-devel/cover.1730743077.git.javi.merino@cloud.com/T/#m5d9acb7cf5db3c2be3d6527de14b69b07812314e">https://lore.kernel.org/xen-devel/cover.1730743077.git.javi.merino@cloud.com/T/#m5d9acb7cf5db3c2be3d6527de14b69b07812314e</a>

* [4.21] MSI-X support with qemu in stubdomain, and other related 
changes (v8)
 Â  -Â  Marek Marczykowski-GÃ³recki
 Â  - 
<a class="moz-txt-link-freetext" href="https://lore.kernel.org/xen-devel/cover.33fb4385b7dd6c53bda4acf0a9e91748b3d7b1f7.1715313192.git-series.marmarek@invisiblethingslab.com/">https://lore.kernel.org/xen-devel/cover.33fb4385b7dd6c53bda4acf0a9e91748b3d7b1f7.1715313192.git-series.marmarek@invisiblethingslab.com/</a>
 Â  -Â  Only automation patch left to be reviewed/merged.

* [next-rel(s)] Physical address hypercall ABI ("HVMv2")
 Â  - Teddy Astie
 Â  - 
<a class="moz-txt-link-freetext" href="https://lore.kernel.org/xen-devel/cover.1744981654.git.teddy.astie@vates.tech/">https://lore.kernel.org/xen-devel/cover.1744981654.git.teddy.astie@vates.tech/</a>

* [next-rel(s)] xen: Untangle mm.h
 Â  -Â  Andrew Cooper
 Â  - 
<a class="moz-txt-link-freetext" href="https://lore.kernel.org/xen-devel/20250312174513.4075066-1-andrew.cooper3@citrix.com/">https://lore.kernel.org/xen-devel/20250312174513.4075066-1-andrew.cooper3@citrix.com/</a>
 Â  - 
<a class="moz-txt-link-freetext" href="https://patchew.org/Xen/20250312174513.4075066-1-andrew.cooper3@citrix.com/">https://patchew.org/Xen/20250312174513.4075066-1-andrew.cooper3@citrix.com/</a>

* [next-rel(s)] Add support for exact-node memory claims
 Â  -Â  Alejandro Vallejo
 Â  - 
<a class="moz-txt-link-freetext" href="https://lore.kernel.org/xen-devel/20250314172502.53498-1-alejandro.vallejo@cloud.com/">https://lore.kernel.org/xen-devel/20250314172502.53498-1-alejandro.vallejo@cloud.com/</a>
 Â  - 
<a class="moz-txt-link-freetext" href="https://patchew.org/Xen/20250314172502.53498-1-alejandro.vallejo@cloud.com/">https://patchew.org/Xen/20250314172502.53498-1-alejandro.vallejo@cloud.com/</a>

* [next-rel(s)] Remove the directmap (v5)
 Â  -Â  Alejandro Vallejo
 Â  - 
<a class="moz-txt-link-freetext" href="https://lore.kernel.org/xen-devel/20250108151822.16030-1-alejandro.vallejo@cloud.com/">https://lore.kernel.org/xen-devel/20250108151822.16030-1-alejandro.vallejo@cloud.com/</a>
 Â  - 
<a class="moz-txt-link-freetext" href="https://patchew.org/Xen/20250108151822.16030-1-alejandro.vallejo@cloud.com/">https://patchew.org/Xen/20250108151822.16030-1-alejandro.vallejo@cloud.com/</a>

* [next-rel(s)] GRUB: Supporting Secure Boot of xen.gz (v1)
 Â  -Â  Ross Lagerwall
 Â  - 
<a class="moz-txt-link-freetext" href="https://patchew.org/Xen/20240313150748.791236-1-ross.lagerwall@citrix.com/">https://patchew.org/Xen/20240313150748.791236-1-ross.lagerwall@citrix.com/</a>

* [next-rel(s)] Introduce xenbindgen to autogen hypercall structs (v1)
 Â  -Â  Alejandro Vallejo
 Â  - 
<a class="moz-txt-link-freetext" href="https://patchew.org/Xen/20241115115200.2824-1-alejandro.vallejo@cloud.com/">https://patchew.org/Xen/20241115115200.2824-1-alejandro.vallejo@cloud.com/</a>

* [next-rel(s)] Introduce NS8250 UART emulator (v2)
 Â  -Â  Denis Mukhin
 Â  - 
<a class="moz-txt-link-freetext" href="https://patchew.org/Xen/20241205-vuart-ns8250-v1-0-e9aa923127eb@ford.com/">https://patchew.org/Xen/20241205-vuart-ns8250-v1-0-e9aa923127eb@ford.com/</a>

* [next-rel(s)] xen: framework for UART emulators
 Â  - Denis Mukhin
 Â  - 
<a class="moz-txt-link-freetext" href="https://lore.kernel.org/xen-devel/20250624035443.344099-1-dmukhin@ford.com/">https://lore.kernel.org/xen-devel/20250624035443.344099-1-dmukhin@ford.com/</a>

=== x86 ===
* [4.21] x86/asm: cleanups after toolchain baseline upgrade (v1 -&gt; v2)
 Â  - Denis Mukhin
 Â  - 
<a class="moz-txt-link-freetext" href="https://lore.kernel.org/xen-devel/20250403182250.3329498-1-dmukhin@ford.com/">https://lore.kernel.org/xen-devel/20250403182250.3329498-1-dmukhin@ford.com/</a>
 Â  - <a class="moz-txt-link-freetext" href="https://patchew.org/Xen/20250403182250.3329498-1-dmukhin@ford.com/">https://patchew.org/Xen/20250403182250.3329498-1-dmukhin@ford.com/</a>

* [4.21?] x86/efi: Fix booting when NX is disabled (v1 -&gt; v2)
 Â  - Andrew Cooper
 Â  - 
<a class="moz-txt-link-freetext" href="https://patchew.org/Xen/20240722101838.3946983-1-andrew.cooper3@citrix.com/">https://patchew.org/Xen/20240722101838.3946983-1-andrew.cooper3@citrix.com/</a>
 Â  - 
<a class="moz-txt-link-freetext" href="https://lore.kernel.org/xen-devel/20240722101838.3946983-1-andrew.cooper3@citrix.com/">https://lore.kernel.org/xen-devel/20240722101838.3946983-1-andrew.cooper3@citrix.com/</a>

* [4.21?] Hyperlaunch device tree for dom0 (v6)
 Â  - Alejandro Vallejo
 Â  - <a class="moz-txt-link-freetext" href="https://patchew.org/Xen/20250429123629.20839-1-agarciav@amd.com/">https://patchew.org/Xen/20250429123629.20839-1-agarciav@amd.com/</a>
 Â  - 
<a class="moz-txt-link-freetext" href="https://lore.kernel.org/xen-devel/20250429123629.20839-1-agarciav@amd.com/">https://lore.kernel.org/xen-devel/20250429123629.20839-1-agarciav@amd.com/</a>

*Â  [4.21?] Boot modules for Hyperlaunch (v9)
 Â  -Â  Daniel P. Smith
 Â  - 
<a class="moz-txt-link-freetext" href="https://lore.kernel.org/xen-devel/20241115131204.32135-1-dpsmith@apertussolutions.com/">https://lore.kernel.org/xen-devel/20241115131204.32135-1-dpsmith@apertussolutions.com/</a>
 Â  - 
<a class="moz-txt-link-freetext" href="https://patchew.org/Xen/20241115131204.32135-1-dpsmith@apertussolutions.com/">https://patchew.org/Xen/20241115131204.32135-1-dpsmith@apertussolutions.com/</a>

*Â  [4.21?] Address Space Isolation FPU preparations (v2-&gt;v3)
 Â  -Â  Alejandro Vallejo
 Â  - 
<a class="moz-txt-link-freetext" href="https://patchew.org/Xen/20250110132823.24348-1-alejandro.vallejo@cloud.com/">https://patchew.org/Xen/20250110132823.24348-1-alejandro.vallejo@cloud.com/</a>

* [next-rel(s)] Hyperlaunch domain builder
 Â  - Daniel P. Smith
 Â  - 
<a class="moz-txt-link-freetext" href="https://lore.kernel.org/xen-devel/20250515131744.3843-1-dpsmith@apertussolutions.com/">https://lore.kernel.org/xen-devel/20250515131744.3843-1-dpsmith@apertussolutions.com/</a>

* [next-rel(s)] Confidential computing and AMD SEV support
 Â  - Teddy Astie
 Â  - <a class="moz-txt-link-freetext" href="https://patchew.org/Xen/cover.1747312394.git.teddy.astie@vates.tech/">https://patchew.org/Xen/cover.1747312394.git.teddy.astie@vates.tech/</a>
 Â  - 
<a class="moz-txt-link-freetext" href="https://lore.kernel.org/xen-devel/cover.1747312394.git.teddy.astie@vates.tech/">https://lore.kernel.org/xen-devel/cover.1747312394.git.teddy.astie@vates.tech/</a>

* [next-rel(s)] amd-cppc CPU Performance Scaling Driver (v5 -&gt; v6)
 Â  - Penny Zheng
 Â  - 
<a class="moz-txt-link-freetext" href="https://lore.kernel.org/xen-devel/20250711035106.2540522-1-Penny.Zheng@amd.com/">https://lore.kernel.org/xen-devel/20250711035106.2540522-1-Penny.Zheng@amd.com/</a>

* [next-rel(s)] x86: Trenchboot Secure Launch DRTM (Xen) (v1 -&gt; v3)
 Â  - Sergii Dmytruk
 Â  - <a class="moz-txt-link-freetext" href="https://patchew.org/Xen/cover.1745172094.git.sergii.dmytruk@3mdeb.com/">https://patchew.org/Xen/cover.1745172094.git.sergii.dmytruk@3mdeb.com/</a>
 Â  - 
<a class="moz-txt-link-freetext" href="https://lore.kernel.org/xen-devel/cover.1748611041.git.sergii.dmytruk@3mdeb.com/">https://lore.kernel.org/xen-devel/cover.1748611041.git.sergii.dmytruk@3mdeb.com/</a>

* [next-rel(s)] x86/EFI: prevent write-execute sections
 Â  - Roger Pau Monne <a class="moz-txt-link-rfc2396E" href="mailto:roger.pau@citrix.com">&lt;roger.pau@citrix.com&gt;</a>
 Â  - 
<a class="moz-txt-link-freetext" href="https://lore.kernel.org/xen-devel/20250401130840.72119-1-roger.pau@citrix.com/">https://lore.kernel.org/xen-devel/20250401130840.72119-1-roger.pau@citrix.com/</a>

* [next-rel(s)] x86: generate xen.efi image with no write-execute sections
 Â  - Roger Pau Monne
 Â  - 
<a class="moz-txt-link-freetext" href="https://lore.kernel.org/xen-devel/20250318173547.59475-1-roger.pau@citrix.com/">https://lore.kernel.org/xen-devel/20250318173547.59475-1-roger.pau@citrix.com/</a>

*Â  [next-rel(s)] Expose consistent topology to guests (v7)
 Â  -Â  Alejandro Vallejo
 Â  - 
<a class="moz-txt-link-freetext" href="https://patchew.org/Xen/20241021154600.11745-1-alejandro.vallejo@cloud.com/">https://patchew.org/Xen/20241021154600.11745-1-alejandro.vallejo@cloud.com/</a>

*Â  [next-rel(s)] x86/alternatives: Adjust all insn-relative fields (v2)
 Â  -Â  Andrew Cooper
 Â  - 
<a class="moz-txt-link-freetext" href="https://lore.kernel.org/xen-devel/20241002152725.1841575-1-andrew.cooper3@citrix.com/T/#mac2deaea7e02a343210d61887486433d946ad129">https://lore.kernel.org/xen-devel/20241002152725.1841575-1-andrew.cooper3@citrix.com/T/#mac2deaea7e02a343210d61887486433d946ad129</a>

*Â  [next-rel(s)] x86emul: misc additions (v7)
 Â  -Â  Jan Beulich
 Â  - <a class="moz-txt-link-freetext" href="https://patchew.org/Xen/3a25cd59-e1cb-4bfc-b868-fb11599d22f5@suse.com/">https://patchew.org/Xen/3a25cd59-e1cb-4bfc-b868-fb11599d22f5@suse.com/</a>

*Â  [next-rel(s)] x86: support AVX10 (v3)
 Â  -Â  Jan Beulich
 Â  - 
<a class="moz-txt-link-freetext" href="https://lore.kernel.org/xen-devel/516b7f9a-048e-409d-8a4e-89aeb8ffacc4@suse.com/">https://lore.kernel.org/xen-devel/516b7f9a-048e-409d-8a4e-89aeb8ffacc4@suse.com/</a>
 Â  - <a class="moz-txt-link-freetext" href="https://patchew.org/Xen/516b7f9a-048e-409d-8a4e-89aeb8ffacc4@suse.com/">https://patchew.org/Xen/516b7f9a-048e-409d-8a4e-89aeb8ffacc4@suse.com/</a>
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
While it is correct that AVX10 is now to go first, AMX was lost as an item, and
APX (which I see no reason in posting as long as AVX10 doesn't make any progress)
was agreed to go after AVX10, before AMX. (KeyLocker was also lost, but that
happens to be correct, as with Intel abandoning the feature we apparently have no
plans anymore to make an attempt at supporting it.)

FRED (being worked on by Andrew) is also entirely missing.

Overall: There are very many items on this list, and it seems entirely clear to
me that not all of them will make it. I think it would be quite helpful to strip
down the set for 4.21 to some realistic subset. Maybe something to discuss on
the community call later today?</pre>
    </blockquote>
    <pre>Good point, lets discuss that tomorrow during the community call.

~ Oleksii</pre>
  </body>
</html>

--------------kZF3O5gOHXMsO4gSSGZUUrHA--


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 08:08:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 08:08:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071326.1434796 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujZBs-0005qy-9h; Wed, 06 Aug 2025 08:08:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071326.1434796; Wed, 06 Aug 2025 08:08: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 1ujZBs-0005qr-70; Wed, 06 Aug 2025 08:08:04 +0000
Received: by outflank-mailman (input) for mailman id 1071326;
 Wed, 06 Aug 2025 08:08:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kasG=2S=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1ujZBr-0005ql-MN
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 08:08:03 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 78a0c7b4-729c-11f0-b898-0df219b8e170;
 Wed, 06 Aug 2025 10:08:01 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-458bc3ce3beso24974685e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 Aug 2025 01:08:01 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3b79c3abeb2sm22109845f8f.11.2025.08.06.01.08.00
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Aug 2025 01:08: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>
X-Inumbo-ID: 78a0c7b4-729c-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754467681; x=1755072481; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=9SUiH/pHxyo+DUUrU1j7l7IscwNtbDN0Et7nFRn40D4=;
        b=chIUd/vJth+x7NGfB9NNiu+yDXzj1gsntk/uucwTBM2/YARJ/GVHk7gmQKSR4DSTrL
         BWW1uThe3Kg1upawfEaWzvqvpnAX9eCEfd8L3/PXmyJeVDb+3dUxCSNTgPEzeFXrvONC
         i69RW1aeYVGiJddF18/4iWxSuqh2lGVf3LfRI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754467681; x=1755072481;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=9SUiH/pHxyo+DUUrU1j7l7IscwNtbDN0Et7nFRn40D4=;
        b=M3hQcectyaX58j2Hglyr+nZmCBas7s4DUtMLJKmouSwBD43V0xZsdCWwdnBSMZ74cZ
         g9V37MVc5VGVlvrUJq37RBwgvUUmJnDs+ZJoHEM+bpMr8UoJZ2D8qIHVKfZiOAWBUvHM
         R9wbLPsor0kbo+aoqHAeEn/x/ZLrC8r5GSVcp4tyEOIdOtvTXLNiuIV6DkMbmB438aJO
         nFIzlaarVgEf7lv8jvtZtJ3J6ZrrHdBxd49mbocpvr+41MSew2gSrJpP6CjJUiMaZuch
         VfCNhpxjexD90gQevq5zG/WE1vlMspkpRZP3ZLN0LX2MVwstjJiXKjh48+VNr5oZPl93
         eRtg==
X-Forwarded-Encrypted: i=1; AJvYcCXwhAcRUIKiyle9psLjVvibdqqDYRUxOJ0Jbnt0oIBhWDR+5TcX6v7iGveeqE2N59IltiZt4/4a17s=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyNhGJNHIHJokjvUalyBt6GJ6/2yCeSIDR3m5SRG0zDKadfpwm7
	ifkLeLVXMJRk08nzXRS1AnmMOpqGYuQFbEGtAGMfDyYzGCQAWwOlpeVXP3NVKH9MdRM=
X-Gm-Gg: ASbGncs3IkNl1jYpXlr9bIO+GhAzFBiHZW1nXJf5G0fgT0ZS20Fm46iMWUcDExZm1IW
	nVWKWHmCHCIFKpjWDrpkGU3fvL+aPhI4GrThgQpMNhEbDxWhUaowz8FZ9Qrp2RjEjK2cvyJNn+j
	kVRQhY2LfejGFVma8xbHuuU0N27s5nKuiMb8+IKk95AnAdHhaoNkOglVzsmdYEPmW6Q/G9HE3uX
	EIL/qrnkBIvv+18b1uAs2k2LSxDjjxpKvoHJ1YVK1ZJ00x6QRJHkx1IJ6i4zyCty6Jr0kao19nq
	Aju1QFYhPDvPS3NlgTFA6UlTjpQqGzIigC1QJMx7IBqnBJtZ9qITyhndDqYhn0pTERP4rSWWQ7y
	25Yg1JM16XH5Nj1ZeM/jNa4MSv7/J4Hlz28VhmMPMnjEN/PQrb6rFCqpa5wmilLUByw==
X-Google-Smtp-Source: AGHT+IGBlppivrw9V+ULsnJsS546Rg39u8wCRch26v0wMP7D3qPaqvd2JO3zQOGtvfHq4q9iKgeIfQ==
X-Received: by 2002:a05:600c:19d1:b0:456:19eb:2e09 with SMTP id 5b1f17b1804b1-459e744f690mr12512285e9.8.1754467680750;
        Wed, 06 Aug 2025 01:08:00 -0700 (PDT)
Date: Wed, 6 Aug 2025 10:07:59 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "Chen, Jiqian" <Jiqian.Chen@amd.com>, "Huang, Ray" <Ray.Huang@amd.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v10 4/4] vpci/msix: Free MSIX resources when init_msix()
 fails
Message-ID: <aJMNX2RRum-w0_Mu@macbook.local>
References: <20250805034906.1014212-1-Jiqian.Chen@amd.com>
 <20250805034906.1014212-5-Jiqian.Chen@amd.com>
 <889e32d2-b50f-4d61-b04b-6c73472abf23@suse.com>
 <BL1PR12MB5849F389E5CC38582EE9DBD9E722A@BL1PR12MB5849.namprd12.prod.outlook.com>
 <0c8458ea-9977-4ba9-8668-b09a65cf9172@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <0c8458ea-9977-4ba9-8668-b09a65cf9172@suse.com>

On Tue, Aug 05, 2025 at 10:40:00AM +0200, Jan Beulich wrote:
> On 05.08.2025 10:27, Chen, Jiqian wrote:
> > On 2025/8/5 16:10, Jan Beulich wrote:
> >> On 05.08.2025 05:49, Jiqian Chen wrote:
> >>> When MSI-X initialization fails vPCI will hide the capability, but
> >>> remove of handlers and data won't be performed until the device is
> >>> deassigned.  Introduce a MSI-X cleanup hook that will be called when
> >>> initialization fails to cleanup MSI-X related hooks and free it's
> >>> associated data.
> >>>
> >>> As all supported capabilities have been switched to use the cleanup
> >>> hooks call those from vpci_deassign_device() instead of open-code the
> >>> capability specific cleanup in there.
> >>>
> >>> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> >>> ---
> >>> cc: "Roger Pau MonnÃ©" <roger.pau@citrix.com>
> >>> ---
> >>> v9->v10 changes:
> >>> * Call all cleanup hook in vpci_deassign_device() instead of cleanup_msix().
> >>
> >> Isn't this rather an omission in an earlier change, and hence may want to
> >> come separately and with a Fixes: tag?
> > This is not really an omission, after all, all the cleanup hooks were implemented at the end of this series.
> > And judging from the commit message(which was written by Roger in v8), Roger also agreed to add them in this patch.
> 
> I disagree. Of the two xfree()-s you remove here from vpci_deassign_device(),
> one should have been removed by patch 3 already. Which would require the
> part of the patch here to be put in place earlier on.

I don't think a Fixes tag is strictly required - the previous
functionality will not lead to malfunction, albeit it's best to use
the cleanup hooks introduced here.  Up until the hooks are executed as
part of vpci_deassign_device() the xfree() calls need to remain in
place.

Conceptually it would have been better to add the calls to the
->cleanup() hooks in vpci_deassign_device() in the same patch that
added the vpci_init_capabilities() ->init() and ->cleanup() logic.

It was my bad for noting this only when reviewing patch 8, and then
not asking for it to be placed in the right patch.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 08:11:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 08:11:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071353.1434814 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujZFF-0007e7-Rp; Wed, 06 Aug 2025 08:11:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071353.1434814; Wed, 06 Aug 2025 08:11: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 1ujZFF-0007e0-Ob; Wed, 06 Aug 2025 08:11:33 +0000
Received: by outflank-mailman (input) for mailman id 1071353;
 Wed, 06 Aug 2025 08:11:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oS3N=2S=huawei.com=ruanjinjie@srs-se1.protection.inumbo.net>)
 id 1ujZFE-0007cc-Ig
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 08:11:32 +0000
Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f0a9d23e-729c-11f0-a322-13f23c93f187;
 Wed, 06 Aug 2025 10:11:27 +0200 (CEST)
Received: from mail.maildlp.com (unknown [172.19.88.105])
 by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4bxjYD0qPnz14ML1;
 Wed,  6 Aug 2025 16:06:24 +0800 (CST)
Received: from dggpemf500011.china.huawei.com (unknown [7.185.36.131])
 by mail.maildlp.com (Postfix) with ESMTPS id 55C9114022F;
 Wed,  6 Aug 2025 16:11:20 +0800 (CST)
Received: from [10.67.109.254] (10.67.109.254) by
 dggpemf500011.china.huawei.com (7.185.36.131) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Wed, 6 Aug 2025 16:11:19 +0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f0a9d23e-729c-11f0-a322-13f23c93f187
Message-ID: <94757d00-5a8e-ac6b-f832-030f33ccf771@huawei.com>
Date: Wed, 6 Aug 2025 16:11:18 +0800
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
 Thunderbird/102.2.0
Subject: Re: [PATCH -next v7 0/7] arm64: entry: Convert to generic irq entry
Content-Language: en-US
To: Ada Couprie Diaz <ada.coupriediaz@arm.com>
CC: <catalin.marinas@arm.com>, <will@kernel.org>, <oleg@redhat.com>,
	<sstabellini@kernel.org>, <mark.rutland@arm.com>, <puranjay@kernel.org>,
	<broonie@kernel.org>, <mbenes@suse.cz>, <ryan.roberts@arm.com>,
	<akpm@linux-foundation.org>, <chenl311@chinatelecom.cn>,
	<anshuman.khandual@arm.com>, <kristina.martsenko@arm.com>,
	<liaochang1@huawei.com>, <ardb@kernel.org>, <leitao@debian.org>,
	<linux-arm-kernel@lists.infradead.org>, <linux-kernel@vger.kernel.org>,
	<xen-devel@lists.xenproject.org>
References: <20250729015456.3411143-1-ruanjinjie@huawei.com>
 <6bd09b5b-9830-42b4-ad9e-9ad1e153e564@arm.com>
From: Jinjie Ruan <ruanjinjie@huawei.com>
In-Reply-To: <6bd09b5b-9830-42b4-ad9e-9ad1e153e564@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Originating-IP: [10.67.109.254]
X-ClientProxiedBy: kwepems100002.china.huawei.com (7.221.188.206) To
 dggpemf500011.china.huawei.com (7.185.36.131)



On 2025/8/5 23:08, Ada Couprie Diaz wrote:
> Hi Jinjie,
> 
> On 29/07/2025 02:54, Jinjie Ruan wrote:
> 
>> Since commit a70e9f647f50 ("entry: Split generic entry into generic
>> exception and syscall entry") split the generic entry into generic irq
>> entry and generic syscall entry, it is time to convert arm64 to use
>> the generic irq entry. And ARM64 will be completely converted to generic
>> entry in the upcoming patch series.
> Note : I had to manually cherry-pick a70e9f647f50 when pulling the series
> on top of the Linux Arm Kernel for-next/core branch, but there might be
> something I'm missing here.
>>

It seems that it is now in mainline v6.16-rc1 and linux-next but not
Linux Arm Kernel for-next/core branch.

[...]

> I'll spend some time testing the series now, specifically given patch 6's
> changes, but other than that everything I saw made sense and didn't look
> like it would be of concern to me.

Thank you for the test and review.

> 
> Thanks,
> Ada
> 


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 08:11:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 08:11:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071354.1434824 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujZFN-0007tf-2e; Wed, 06 Aug 2025 08:11:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071354.1434824; Wed, 06 Aug 2025 08:11: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 1ujZFM-0007tY-Ve; Wed, 06 Aug 2025 08:11:40 +0000
Received: by outflank-mailman (input) for mailman id 1071354;
 Wed, 06 Aug 2025 08:11:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z+Xv=2S=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujZFL-0007Yx-K8
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 08:11:39 +0000
Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com
 [2a00:1450:4864:20::52c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f9b18d0d-729c-11f0-b898-0df219b8e170;
 Wed, 06 Aug 2025 10:11:37 +0200 (CEST)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-615378b42ecso9306705a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 06 Aug 2025 01:11: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
 4fb4d7f45d1cf-615a8fe7970sm9557650a12.31.2025.08.06.01.11.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Aug 2025 01:11: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>
X-Inumbo-ID: f9b18d0d-729c-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754467897; x=1755072697; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=bGISvtOa2MnUFsQ0A7k3q8FWescVysfVmbKZGuxHwhY=;
        b=g+SsWRFY6DKsaA7QGaTsN9tk4rdMyXpZGQadVgOjDooQpIkQ1a28Pa8w8AfxNgH5EE
         KCcmQK6PoG0JwF0afoS74pJWhsuHNzZAdnCb7kZDIeASuLHCMWkSFxtvG3sYMfroWukJ
         phr89cT5iwFWb5OohrtPWarmRd5gY/IpXPexKeJYWiA4OM+v5Cy92fwlM4ObfWMVLNFu
         4NCPRnrOYppY8bZ1nqLCZFiwCyQD34RhiP2LEIDMqdM89N2rRuw058B6ifXqIK0dbzD4
         u9WLY+xGNE4o5aWqGlQRwuUIwjcSQEkDg6AhvrwJ8KaJyOPi5HlU2kXgpmmowW6KKbHO
         uLjQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754467897; x=1755072697;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bGISvtOa2MnUFsQ0A7k3q8FWescVysfVmbKZGuxHwhY=;
        b=Ta+Qz3uTlJUl/i5LDf48Fo5Ie3MxOfh3X+jh3c/92TcGjtIRGPG7foF0pA+5dL6BLz
         esls+QTszbqU8pAva8axZK0Rw1/DOJ6WRFKNaHME8uGZoZJkQ5Ilzh7DlXUsOwF8YsKN
         tz7oeSJkXEvLIZxR2nuM09MylJDBwHqyxxdMYit3DV9+58ye+4r5XHp3Ff5bYhHof13Q
         6Qsat6WuvkNRW8f17Ur25unpgiXejrbryoad2rrbhs4acmP+em0/uEJ5T4fJSHhmld9M
         TIG8/6dsvttwg/Rsk2QW6Uc4cVEr+YKFshzXGp63R3O94NsNg18pCCcNys6mHSw89+Ud
         RFbA==
X-Forwarded-Encrypted: i=1; AJvYcCXrIM6V1EJcNHv1EFzfETF4QELzA8p6qCFVJXe6woXv/63ukBWhofkZ9+byTzqmjeEoHlijdEBuang=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyBnCO2awu3c+8IPIJAmhprZqffJAC2gfAI9tD+pvC69fAgDwj+
	twrFc1INRWzTcUMKXC8vH3u0Xc7kgDQ7enzMuzbrL8MuDsGK/d8EV8jdMs0hlUKnNQ==
X-Gm-Gg: ASbGncvy1z9JXL2DWpzE+12HpNjd1tXcz6hZVpK5HHa9VzOfFBekuRPKqXA/mNH3Ti4
	0RcPV7jSTGbtkb83Ngb0LIM6tmf0Np1ztz0n2gd8zm0OJOE3x29PmxXIn7bGtGCXBd09nqihmSq
	nOxkpgqtvTwyN1EoA35ecE63klI0I4cFn1++GfxRop4DuK4oC+ayol9XRcKzaAi1bKMOtRT6zc5
	ulUIGfE6rWHaihWeM55Tc99s9XN7IaTHmYe24lv7CIo5TRo/Rws82VfOl/djtoaG8pGhk7N/sE9
	H7Da7zZV+ANoSeLalLrN00wxwDo/qhmyV8CgU29S6OulSDzX1KU0hNR2X5DTB0FvDWvjjAWfT9l
	jdBT0qVk6E//LpjMwGsy7VgEDJ9Q+tKgbT9w/i5NZgiYsqa/TZm/GSFycoUsuRnNnmcxYPWRXQK
	6wk21Lbx4=
X-Google-Smtp-Source: AGHT+IHkOXaUanvV5voduasXoNjNwoouw7JANXJw2EBEeMA6KiJt2+1DDCCppr13YU2fPNZa/h+fBw==
X-Received: by 2002:a05:6402:1e90:b0:615:5dbd:ccba with SMTP id 4fb4d7f45d1cf-61797c8cc2bmr1388703a12.11.1754467897172;
        Wed, 06 Aug 2025 01:11:37 -0700 (PDT)
Message-ID: <68da529e-7fd7-4ca5-b6ef-4c1f95423246@suse.com>
Date: Wed, 6 Aug 2025 10:11:35 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 8/8] x86/mm: adjust loop in arch_init_memory() to
 iterate over the PDX space
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20250805095257.74975-1-roger.pau@citrix.com>
 <20250805095257.74975-9-roger.pau@citrix.com>
 <31691bf7-94bf-4f73-b04c-a32f86bb0e37@suse.com>
 <aJIi6wrNZck1DSU_@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: <aJIi6wrNZck1DSU_@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.08.2025 17:27, Roger Pau MonnÃ© wrote:
> On Tue, Aug 05, 2025 at 02:38:38PM +0200, Jan Beulich wrote:
>> On 05.08.2025 11:52, Roger Pau Monne wrote:
>>> --- a/xen/arch/x86/mm.c
>>> +++ b/xen/arch/x86/mm.c
>>> @@ -275,7 +275,7 @@ static void __init assign_io_page(struct page_info *page)
>>>  
>>>  void __init arch_init_memory(void)
>>>  {
>>> -    unsigned long i, pfn, rstart_pfn, rend_pfn, iostart_pfn, ioend_pfn;
>>> +    unsigned long i, pfn, rstart_pfn, rend_pfn, iostart_pfn, ioend_pfn, pdx;
>>>  
>>>      /*
>>>       * Basic guest-accessible flags:
>>> @@ -328,9 +328,20 @@ void __init arch_init_memory(void)
>>>              destroy_xen_mappings((unsigned long)mfn_to_virt(iostart_pfn),
>>>                                   (unsigned long)mfn_to_virt(ioend_pfn));
>>>  
>>> -        /* Mark as I/O up to next RAM region. */
>>> -        for ( ; pfn < rstart_pfn; pfn++ )
>>> +        /*
>>> +         * Mark as I/O up to next RAM region.  Iterate over the PDX space to
>>> +         * skip holes which would always fail the mfn_valid() check.
>>> +         *
>>> +         * pfn_to_pdx() requires a valid (iow: RAM) PFN to convert to PDX,
>>> +         * hence provide pfn - 1, which is the tailing PFN from the last RAM
>>> +         * range, or pdx 0 if the input pfn is 0.
>>> +         */
>>> +        for ( pdx = pfn ? pfn_to_pdx(pfn - 1) + 1 : 0;
>>> +              pdx < pfn_to_pdx(rstart_pfn);
>>> +              pdx++ )
>>>          {
>>> +            pfn = pdx_to_pfn(pdx);
>>> +
>>>              if ( !mfn_valid(_mfn(pfn)) )
>>>                  continue;
>>>  
>>
>> As much as I would have liked to ack this, I fear there's another caveat here:
>> At the top of the loop we check not only for RAM, but also for UNUSABLE. The
>> latter, like RAM, shouldn't be marked I/O, but we also can't use PFN <-> PDX
>> transformations on any such page.
> 
> Right you are.  I'm not sure however why we do this - won't we want
> the mappings of UNUSABLE regions also be removed from the Xen
> page-tables? (but not marked as IO)

Yes, I think this is a flaw in current code. Perhaps it was (wrongly) assumed
that no UNUSABLE regions would ever exist this low in a memory map? Imo we want
to deal with this in two steps - first sort the UNUSABLE issue, then improve
the dealing with what is passed to assign_io_page().

While there we may also want to find a way to tie together the 16Mb boundary
checks - the 16UL isn't properly connected to the BOOTSTRAP_MAP_BASE definition
in setup.c. Yet then: Am I overlooking something, or is the 16Mb boundary not
really special anymore? I.e. could e.g. BOOTSTRAP_MAP_BASE perhaps be moved (at
least in principle), either almost arbitrarily up (within the low 4Gb), or down
as much as to the 2Mb boundary? The relevant aspect here would be that the
comment saying "the statically-initialised 1-16MB mapping area" looks to be
stale, as of 7cd7f2f5e116 ("x86/boot: Remove the preconstructed low 16M
superpage mappings"). If there are excess mappings to worry about, those may
nowadays well live above the 16Mb boundary (because of it being 2Mb mappings
that head.S inserts into l2_directmap[]).

If I was to sensibly make changes to that code, I guess I first ought to find
a system which actually surfaces any (ideally "interesting") UNUSABLE ranges.
In any event, I think the cleanest thing we can do is split the loop in two,
one to deal with the removal of mappings between RAM regions up to the 4Gb
boundary, and the other to invoke assign_io_page() for holes between RAM ||
UNUSABLE ones. The latter would then be subject to your optimization. The
former could ignore the PDX aspect due to being limited to the low 4Gb, where
we never compress.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 08:12:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 08:12:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071365.1434833 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujZG9-0000AX-Af; Wed, 06 Aug 2025 08:12:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071365.1434833; Wed, 06 Aug 2025 08:12: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 1ujZG9-0000AP-7k; Wed, 06 Aug 2025 08:12:29 +0000
Received: by outflank-mailman (input) for mailman id 1071365;
 Wed, 06 Aug 2025 08:12:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z+Xv=2S=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujZG7-0007Yx-Do
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 08:12:27 +0000
Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com
 [2a00:1450:4864:20::62d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1647b3e9-729d-11f0-b898-0df219b8e170;
 Wed, 06 Aug 2025 10:12:25 +0200 (CEST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-af9180a11bcso155643366b.0
 for <xen-devel@lists.xenproject.org>; Wed, 06 Aug 2025 01:12: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
 a640c23a62f3a-af91a21c10asm1062969666b.116.2025.08.06.01.12.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Aug 2025 01:12: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>
X-Inumbo-ID: 1647b3e9-729d-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754467945; x=1755072745; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Dx8uLocY6xe3UytX2F4Rvptq/M/J2zpDS+LZFN2L7CE=;
        b=YqiEkLAK02R6so3/KWKVm/xERlevu8JNzpA5jrT+K/uZJ1SeH69Yk0NQSOavfx/cPm
         j7jzjEb4pnCLnnLarOtKMPw0I0AI8JrwlPA9l+6B68Lj99hzKUZTZuZ3GA/rDKLc0XEF
         BHu+JpVOAS//kymAb8BNhbHFNOw7GhUoxTqxb9KbB5NpdR4Zuv45ecIjFGRe9LgAZGcM
         DP/YmTr9lvfNj8goIHFeA4XYxQUQLewLXIFybooIDzhUiPO0EYSmoSghDUoU5e3clIAt
         YWEB2HcfBrhZ88EhIPK4TbmOrDT6fa1nftTRSDWrlMq5F5QPMYFkzlHkBHkB6le+aGDS
         s9Rg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754467945; x=1755072745;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Dx8uLocY6xe3UytX2F4Rvptq/M/J2zpDS+LZFN2L7CE=;
        b=UE7VFphDUF+pQs/caNteqNGqZLV/pd6ojGkXgch0yZH896HOHOluQdIyLSInIfuaOK
         aKPc2Mrm3t72ei0D+Wvc0SBUAN6pD9oVZwp4nhuH25k0/UaIZYChGcmm/WMyg6Vygj/6
         1rL/FyHDtErdFGYl+TrwJ7zvHSYyZlHYx3drdr3GMpTHGmRl6o99w7cPssZ/MjAnQA8F
         6FlakMKekgwP7apsuwxoEBHlAfXOpIXqUkhEb4K1+GmORluMo4BambdKFI7pLrN0ppfl
         UL/4dAOjte0jfdbAb/A+OYO6saH1EMZsMg9XT6gatn3bMmj2DyO1NRmoxW9cCoY2+GeQ
         bFhQ==
X-Forwarded-Encrypted: i=1; AJvYcCVYfQb9chS5atY4N0YvvZWsnYrXxGL3kX5TStpMihAV97XyqP2qyRMRoKYkaHXfQXaNSKfYMBtbP+Y=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyKDxtew90G+1y599XUy9ACy5DPdBD7tirAQawEhnQC0YaXNLzM
	A7YWoae6Ft/3lKiX+i7e2uO466giwLrHS8x4ZFRHTRyB7smbZ7jSM0BzLYipGwo5bQ==
X-Gm-Gg: ASbGncsyX7fZK5SIwAksKfeObm9TWxIwjXKmZ9N654GERH2uchbMDCDqsF24jnWo0Ap
	c0/k9Q1ZTJJVJHH58Cp1WWkP8CIF/Pzidw8R1VD9MN8nhlAgOu/8akFUDSGo4E2+Gn5WlzwLdWd
	dxpfPH7TrGX7cT4ttKdEr1A3zUda/E+q4X0XQzkCb7GEj/Fy/61+QrpMgM13bue7TeeuDjB8Fv2
	jKIKhtAc2W/PUEPqaFzkrDDzT+XBQLei4/lIChhZq2vvbrFVz2pJI7eeJWrVfc1saLsUyxFAcRA
	KkbwtEojsIWh6qRsNnNOQdFaDvowKXBcBNGH71VGpWEIfqgMZMqLTP5sTP8q0ido4bP5Vodan5P
	BsiOvn9kmJs2OTvy33uhe0xdlQBpBt/7//N0+kbJd7yxEL+Rk15vP6hdySYbXwth7YndIsLOi5I
	vOAYAVt/w=
X-Google-Smtp-Source: AGHT+IF+7XSAk5YrGxNpS8Ui0OQK2k0AvKglz8YhFVw1mxlMYPwGK9ckMiIabBz/QYCyHe5KaU4N7w==
X-Received: by 2002:a17:907:948d:b0:af9:6c38:c4ff with SMTP id a640c23a62f3a-af990915008mr187529066b.19.1754467945278;
        Wed, 06 Aug 2025 01:12:25 -0700 (PDT)
Message-ID: <f07b7bf9-8e9a-49b6-824e-0c3b346bebd2@suse.com>
Date: Wed, 6 Aug 2025 10:12:23 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Xen 4.21 Development Update [June-July]
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>,
 Ayan Kumar Halder <ayan.kumar.halder@amd.com>,
 Mykyta Poturai <Mykyta_Poturai@epam.com>, Juergen Gross <jgross@suse.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Luca Fancellu <luca.fancellu@arm.com>, "Jason Andryuk,"
 <jason.andryuk@amd.com>, Sergii Dmytruk <sergii.dmytruk@3mdeb.com>,
 "Penny Zheng," <Penny.Zheng@amd.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki=2C?=
 <marmarek@invisiblethingslab.com>, Roger Pau Monne <roger.pau@citrix.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, dmkhn@proton.me,
 Mykola Kvach <xakep.amatop@gmail.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Grygorii Strashko <gragst.linux@gmail.com>,
 Alejandro Vallejo <agarciav@amd.com>,
 "committers@xenproject.org" <committers@xenproject.org>,
 Community Manager <community.manager@xenproject.org>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <ae2c2e35-72df-40ed-bffe-391f3c11b826@gmail.com>
 <242a93cf-20f7-4fcd-8eef-6945af5d864c@suse.com>
 <03a1d0b8-facd-4c02-97c6-45fa694da0b6@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: <03a1d0b8-facd-4c02-97c6-45fa694da0b6@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.08.2025 09:45, Oleksii Kurochko wrote:
> On 8/6/25 8:05 AM, Jan Beulich wrote:
>> Overall: There are very many items on this list, and it seems entirely clear to
>> me that not all of them will make it. I think it would be quite helpful to strip
>> down the set for 4.21 to some realistic subset. Maybe something to discuss on
>> the community call later today?
> 
> Good point, lets discuss that tomorrow during the community call.

Oh, right, it's only Wednesday today.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 08:16:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 08:16:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071394.1434856 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujZK0-00010A-Ux; Wed, 06 Aug 2025 08:16:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071394.1434856; Wed, 06 Aug 2025 08:16:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujZK0-000103-Rz; Wed, 06 Aug 2025 08:16:28 +0000
Received: by outflank-mailman (input) for mailman id 1071394;
 Wed, 06 Aug 2025 08:16:27 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1ujZJz-0000zX-6T
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 08:16:27 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1ujZJy-004MLN-2F;
 Wed, 06 Aug 2025 08:16:26 +0000
Received: from [2a01:cb15:80df:da00:780b:80d6:89ae:cd4d] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1ujZJy-006fUE-16;
 Wed, 06 Aug 2025 08:16:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Transfer-Encoding:
	Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date;
	bh=DunmOPknlULrykY12F/SXCDD6v08oltn7onGcW3sDM0=; b=PiyAYAUTKbZl0PmrHmvsmXfbpb
	sbOditSKN3dVU14e6MM5x7sJFF56tAjRBXZiRcC56s/pxkJ5nwu4LxDlW7PvGuOnbZ+cDpPt4aGzl
	+v8mKhhfLzncaDOfO828suM3LF+6J0mjcR4ytLAxSF73lp0oMLmBVH4X15DMZ2iJ4+qs=;
Date: Wed, 6 Aug 2025 10:16:24 +0200
From: Anthony PERARD <anthony@xenproject.org>
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org,
	Anthony PERARD <anthony.perard@vates.tech>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v4 5/8] test/pdx: add PDX compression unit tests
Message-ID: <aJMPWINjKj9ektNl@l14>
References: <20250805095257.74975-1-roger.pau@citrix.com>
 <20250805095257.74975-6-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20250805095257.74975-6-roger.pau@citrix.com>

On Tue, Aug 05, 2025 at 11:52:54AM +0200, Roger Pau Monne wrote:
> Introduce a set of unit tests for PDX compression.  The unit tests contains
> both real and crafted memory maps that are then compressed using the
> selected PDX algorithm.  Note the build system for the unit tests has been
> done in a way to support adding new compression algorithms easily.  That
> requires generating a new test-pdx-<compress> executable that's build with
> the selected PDX compression enabled.
> 
> Currently the only generated executable is test-pdx-mask that tests PDX
> mask compression.
> 
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 08:19:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 08:19:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071412.1434865 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujZMc-0001b6-Gd; Wed, 06 Aug 2025 08:19:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071412.1434865; Wed, 06 Aug 2025 08:19: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 1ujZMc-0001az-E2; Wed, 06 Aug 2025 08:19:10 +0000
Received: by outflank-mailman (input) for mailman id 1071412;
 Wed, 06 Aug 2025 08:19:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=i5Mu=2S=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1ujZMb-0001at-13
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 08:19:09 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 05fb2a57-729e-11f0-a322-13f23c93f187;
 Wed, 06 Aug 2025 10:19:08 +0200 (CEST)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by AS8PR03MB7494.eurprd03.prod.outlook.com (2603:10a6:20b:2e2::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.14; Wed, 6 Aug
 2025 08:19:05 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%4]) with mapi id 15.20.8989.018; Wed, 6 Aug 2025
 08:19: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>
X-Inumbo-ID: 05fb2a57-729e-11f0-a322-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Ooa35SPJscvg/Mtjpl90nQFoP6mp+AaXpKpBNJgZYW3yQ8ucsYi3BhEpic8tP5Tm7rpZUJi+IjsX3a/98YTVhGtyvdgjKGZdpEU0pmlrFIWHpDAgjSLu6LPzlJ2NriHg7MpUN2UgqbIpMPdfoT3uWKSzwCyBD3r2SkXt/EVAL7OV4MJJ8039y3q7gbq0GOQdBzp+yT+zw1bL8HpHJdlhNhD8UeXVubklLc4HX6q9/kQC3Ugw+Tv19Tje0ZQbzmeyfjOVrC4s/DcLl9+5X50dW2Rg10dRgHWdpFT/ZDVm80h8sdpvbtN/IEhZck7QdyLY4DlEMOGX4cvLMpGAQ6gTOw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=uvpL7XG2GprW38k8gYMIjil0wGmknDKbK+7V1fyoHCk=;
 b=PQq6mrXqJzDnGA7ikVHqvVBa+xF2r5Bo5LUNYHULFscdn8D2AtdyVkERoxXrusplsulZ/8s68GlEl2g/bj8UGIjOxiSTb2FLft7swOsVffCZkEMene80tYk3A+e3Ln7rlxCU3LuITdN/qmy1m1uQ9RUjAibur5Qzo2Irxw6WbHaDr5Ny3mtg5wqDS5bKhTxPOIlwoh1zmby7DoDxNZ1hl9JlTP2GKIduS8pNw3+Fl6hcW2xE2805KqMkXzxzBd53DNw37NM0k0+KzjNCSsU8sZtf2yvSjqBsAbcXNd0eicyQxziO7Ayje4zU4Q5RiBXNr5FHDFpvDsfPD/qyOxxpNA==
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=uvpL7XG2GprW38k8gYMIjil0wGmknDKbK+7V1fyoHCk=;
 b=pURWkKTZG8gKhjg9uzhqgxPoktU0g2HAZfluj1Tt6reFqshpn7QiuxS/txlvkpOtxiijt4LfaeBoOydwjh+D/SztK71aLdceVP/bBprUHCdiwCN0uXe9ZpJeQNFkDjgCedyB5MUPDxFgUWwjfflN06VuCR/gT05qy9XUBsAfXdxkLkaTqX5wjJF0AKbAdJhrH7ofytDGzFYZok04OX3WXHwCW4aT17dUUAMzUbc2LFzVqL0oUYnDbjPKJEsvlBnVQZD5xF81rtESU/LO/OxMECnfNC0B3LYw1PkUWZcDtz+xacZbqK0uCc/mTG+MJ/KnLgaI6gk7SVw3f74QgiYUKA==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <5a33ddf2-716e-4fca-8764-760dec9944ce@epam.com>
Date: Wed, 6 Aug 2025 11:19:03 +0300
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/dom0less: arm: fix hwdom 1:1 low memory allocation
To: Julien Grall <julien@xen.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Denis Mukhin <dmukhin@ford.com>, Jason Andryuk <jason.andryuk@amd.com>
References: <20250805190017.209711-1-grygorii_strashko@epam.com>
 <5807ed03-7db2-4ce6-9acf-c4d515fbd293@xen.org>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <5807ed03-7db2-4ce6-9acf-c4d515fbd293@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: FR4P281CA0308.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:f6::12) To AS2PR03MB8907.eurprd03.prod.outlook.com
 (2603:10a6:20b:5e4::22)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS2PR03MB8907:EE_|AS8PR03MB7494:EE_
X-MS-Office365-Filtering-Correlation-Id: bf840f2a-0996-48e1-21c5-08ddd4c1e884
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?R1BuN3o2OUF4Y3ByV1BVVlkzMkl0SWp4enB0cWF5bkx6bVN2QWdaUzJUVUF2?=
 =?utf-8?B?dGZrMUVWc29tbmRTQlQ2aFpmdWo4WW1Rb2lNcVVra0dzQUo3NDllOWEwWEVX?=
 =?utf-8?B?alNGYS8xQXh1WkUvM21uL2FHd2VUeStxVEg5R3RVam5vcGQ3YkRVUkhFQkJj?=
 =?utf-8?B?VG1Lblk5bFZPR3lZSk9ablk1bjRMQnhFWFZNSU5PakJTN1pNQUJvc0MyVFB2?=
 =?utf-8?B?aFJqalVQZFk5LzZ4ei9iNTdFMTc5SnFGQmM1UVhpTlY2TkdZcEJuZ2VZeWhI?=
 =?utf-8?B?cTBlRThDZHlQZmViMllnOWR6MmVxY3EzOTNNTVh0SHluVy9nUUZpRysyNzgy?=
 =?utf-8?B?bWtWM0d1aU02T1pWRDNXVy9QN1ozSnM0WGJWQW00ZmZDVWpKa1o0S29ZYzdG?=
 =?utf-8?B?Ym01SnRzcS9GNFd4bDV1UkNhRHp4cTZFYTEzZENMUzVRR2RZcFZCUTRXMDhW?=
 =?utf-8?B?TXVXR21LVk1OUVlWbkU1WTJjNExSSWVsZlQwUGRGemp6NmtRRSttZzBsTTNo?=
 =?utf-8?B?dExwQS9PUzFFSXZKZmQvVVNFbEdiR1NXenhSanhVSWFpOThnVzJlemp1aWVM?=
 =?utf-8?B?QjFBSml0bDN5VDdnZkRGMjNiejdqVHZ1L1BVS2cxQklHS3ZvNUY0NDBMdHFx?=
 =?utf-8?B?RXY3cy85cm9vSGZ3ZVlJbnowaFpxVnI3Q1hCZXYxa1UwQXgwVzNkZUFobXVl?=
 =?utf-8?B?S2x4dXAzaWcyWndvd0lkYVNMZWFkSlUxTG9WUG03eFBFWnZoREhwakljV2ln?=
 =?utf-8?B?eUUwQ1B3a2JLL1RwaUVCWi8wN2prcjRJUEs0WXZxdlNjZ2lCaHpRcFlHUHYr?=
 =?utf-8?B?QmZKTlBMaytzSWZ0dGk1V0VrS2N2dFZrNElIMTVsOEdBMnUyK05xRTlhUXIw?=
 =?utf-8?B?Q2swKy9JV05NTWNpNjY2YkY4TjVNdFZPdTU3bGdRdDdLaXJjZFZoMkNxV3Va?=
 =?utf-8?B?Y2lwdG5zVUNkMzBnM2RyaFVEck5BQVV1RFF0TmhraTdjZXZ1VVZFbExjeW84?=
 =?utf-8?B?SFQ0eEd1Yk5ONzl6NGZkWTRvSk5icFNld1VsVWRQeGFWMkVudUdxMjA2cmlB?=
 =?utf-8?B?NnBtMzUzOTZNeFYvQ0g0cFZXdG5ERVNoOEFzT0JVRmtXMUlMUkF4VlFXSW8x?=
 =?utf-8?B?MzkyejBiM3lickJpTnVBYWdXMEpzeDJydExpUlM1Ky9saXMxTGpvek1wdkwv?=
 =?utf-8?B?a3d4L005Wi84ZkxKWFFFVnpZbk1Ea2dhdithQm5sRnpOempuTStUUk1yRW5E?=
 =?utf-8?B?enBlVzhZSDRJR0R0STV5dlV2MkpQVEtIY2pwRUo3Wi9LU05mbzhFbHladWda?=
 =?utf-8?B?R1I1alRzODF1bC9BK2FBMERJc2x1Nlk4VUFPTGFjNFBhSUdjdjFFdE44aWp2?=
 =?utf-8?B?ZVp2S0dsVUJFOStyR1pBTVRhY1N0Z0d4NE9FbmREWVBuMHBNNFlPTml4Smo5?=
 =?utf-8?B?UkFhQ2lQRTEwWUxaWm50Qk8vNEh4OWhOajhvUldLYW0wZCtpTHBzbG1kMmE1?=
 =?utf-8?B?N0xLaWM2OFpZdGxKMTdYbTc3STNYbVk0eDl1c0x6UXRDQjZwSkNBczU5emFZ?=
 =?utf-8?B?eHBXUUNveXdZUGJPTVF6YkliOTVBZzNSYU1vU3VCQlc2QURrZ2dncFBiRnFE?=
 =?utf-8?B?WTlZWDB5a3d6UUI3dnlwb01DL3V5OXNsUEk1cEl6M0oyUjAycEYxL1Q0bGtz?=
 =?utf-8?B?NFJBVDB2OCtFbHpETVdLYmg4bWxUZkg3Mm9aQld6Um4rMExERXhaVFNaOWNs?=
 =?utf-8?B?cXptMWdHUThiQURnT29ZclYwYnBqOU0vT09SQ3o2OXZYd2JBZFJKRDVjbEZy?=
 =?utf-8?B?L3Bpd0tGM2ZzU2FwZG45ZHFUWm1Yb0pxNHZqWVpPSFdma1RSYWMvb002M1Uz?=
 =?utf-8?B?bjh4ZXJEL01jdHR6bkY4WG93OXVQZ2pEekRPMlhnb1NNaG0yeWNialo4WGhm?=
 =?utf-8?Q?6ZJIUptx7YU=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SC9kek56RDVaS2VxQ0VKTnZZRlROWHlPN1c0b2VsdDB4ay84NG80S0plV2Vn?=
 =?utf-8?B?Q20vTUtLR1JWS0RJYlM0UkFsWUJQS2Q0NEsxMFQvdjRWa2NuZjA0RmFrMzR5?=
 =?utf-8?B?dWFQVEdGUndvUkpDMlVHc0xtbytlNVBCeGRPakoySEdmcWYwOCt1R2M4NUJJ?=
 =?utf-8?B?WkFKU0ZlVTFPc0w4NjNqeXVLZkhMUU9vYmNpUDZxMGc2aGFJMnlNYVBtS1Fi?=
 =?utf-8?B?MXllYk1rMnhibUo5OGNOdUhNRk1qczJlT2pzMGFTcWtZYVpVYktUd0wrWjlZ?=
 =?utf-8?B?L0s2dVBzNll1U0pmSkprZU9xUC91UzlOelNxTXhFOXM3ZDVRaEptSG5EUzJp?=
 =?utf-8?B?VHZ3UjdPVUlOeFZZSGNQZ3pCL05DSHdGOUEwbnRvdTFCNE1KdDVYWFI5QVAv?=
 =?utf-8?B?VE9FQVd6WGFXT01kL3JXZVRneEUycUJGRUd6UTlmd2NZTVljSnZMQzF0c0x6?=
 =?utf-8?B?UmY3YXhnSEltUEpzZndlaDcvcVJZWlYvSmVTRGVOZVZocEhYUDZzRGZVOFYv?=
 =?utf-8?B?OVFuRTMzeUh2R2VzL0twbTdvNWdLOHRxcGQ2NE1xbEk2a25iN0pVbkZ0NkFE?=
 =?utf-8?B?TFoyN0NuU0VERENxSEVHYm1VYmNjSDgxRFJPYnluY2pyaXJnL3BYRU41REZr?=
 =?utf-8?B?TzQ0TWFuWmNDOGVGbktXK0gxYnBQcEtqQWR1anFLZ29Cd2YwN08vWHozWGZM?=
 =?utf-8?B?M1R6N0dHSHRJM3A4TE5XTU52c1NwNGxJTmJKZmVIc2ZHODFHZklyYWt0aVFH?=
 =?utf-8?B?SjlWUC9sVUtHbklHcXF4SEM4R3lOQlgyeHo5SUFZa1RuVmxLWUZzcUUxclAr?=
 =?utf-8?B?NGJlN2dZbWRBeStXKzdLSXAyVXhwTThvRWEyTlhIVG9LMlFiNVdhYU9pNFIr?=
 =?utf-8?B?UTN0NjM5YlpJa1ZmUTRPZkxMdGgvRFNya0ZNaUFCbzZxY2xtRXY5QjJQaFMz?=
 =?utf-8?B?NGxZWWcySER6MFRldjZsb1hhOE1iZHlzYXlyTE5xNU8vTmlRK3RzL2JXbm5P?=
 =?utf-8?B?cldrWGJvOXdMZUF6WUQrakdWYklicHl6azBFb2tEdGFSYkdhOGVUNE4yUDhR?=
 =?utf-8?B?Z0o0dUIwU1kzRUJpcEpUUkFHZDFKbk56elRLTFhRVVFEOGRNeHFDcW51VWxh?=
 =?utf-8?B?U2NTN2pLZ1FkWWExZ3Rjd3RwYkN0b1lvNmkwejB1RVZyR0I3SWp4NHB5VXQx?=
 =?utf-8?B?WnR0RUw0anFNZGpSdGFyTTYzTVBSVXZqZUc2bm9TTFFnNWQ5dXYzTnZFM0RY?=
 =?utf-8?B?MFVwVTg3NFNkM3VoQUQyZFhVdUpuVjAyY1JBMnA0NG5WM3BCUU1EeElwTHIr?=
 =?utf-8?B?YUlnNjd1cU5xcVp4aGFQbVBNS0lzeDFKSk9TNjVpWmlwYTBiMzZWQXVJNGth?=
 =?utf-8?B?QXc3b01VTC85aUJ4R1JNdlNFTVNxWHExbnczSWIxZkVtaGNLRGJ2Myt6L3F4?=
 =?utf-8?B?Vm5HckRyY1N2aWtxTlNocE10NytUZGxveGVJZ3BSUHREbUlBeXlBb0w5azF3?=
 =?utf-8?B?SXFNeGkwdTVFMjQrdkFnWXNoN01JRUgyN0w2YUcxRE9UdjFyazd5a2dvbTVW?=
 =?utf-8?B?Q1MxT3RJOFhPWVE4UlY4RHJDWHhtNUNrWDBESkhPRnZwK2t6amJ2VVd0ckMr?=
 =?utf-8?B?V2E5MTZGckFRM3UydGtkdlNqQkM2UnhXNk1Ic3FjMUYxT1EyREZMcDdzd1Jq?=
 =?utf-8?B?TTI5WHB1bThiUjlXWEtDTS94RVdwQXVmcUZPVUpRNGtIWEw5aVpPYUtFb2xE?=
 =?utf-8?B?aDE4Z0tHSDBoaTVuTVpFcWFxSXlZYnVoTnBIRTkzK3FJanRQZGtNWEJJUmQr?=
 =?utf-8?B?WUNKV1k5MG5IaWZwK2dJaXJHaG1LQmttbjltWm94eVdybHpONEhkOUgrTmE0?=
 =?utf-8?B?R0RNUHdjd0RMOVlVUjA1SHgrYUJTNWYvenBjWFZaa1NhRTR3Z21rOXIxREJB?=
 =?utf-8?B?R1pQYWw0QnNpcE1LZVM1bjFCcHA3b0xndkoxUDNwWUNPRGUyVEJva25zYlZu?=
 =?utf-8?B?Y1ByL2NCeS9ZVHEwd01sSDlFQkdMem1PblFDR2ZGVWJmWDNkbHNXMGgzaWV1?=
 =?utf-8?B?ZjdjOUFleCtkSDNBakc0ai93VlRqSlh3c3R1NWlMSDN2S2ExZjhMNW9DMEIr?=
 =?utf-8?B?cGtGVUtOQ0xIR2xGckF4Kzh6d0xvZEpvcFphSmw2SkladUpWOW51MmhRYnEy?=
 =?utf-8?B?aWc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: bf840f2a-0996-48e1-21c5-08ddd4c1e884
X-MS-Exchange-CrossTenant-AuthSource: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Aug 2025 08:19:05.3168
 (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: 9Cb1hlvdBOJ3wPyjnMKvKGzrFkt8iA/CRdAd9IPj2P8Xi1EOdBIVRCi0Q2GeHdTkUFB50/tok3WSNstdZbG5P7ljFlfd60XuWgdnkgXiAsI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7494

Hi Julien,

On 06.08.25 00:07, Julien Grall wrote:
> Hi Grygorii,
> 
> On 05/08/2025 20:00, Grygorii Strashko wrote:
>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>
>> Call stack for dom0less hwdom case (1:1) memory:
>> create_domUs
>> |-construct_domU
>> Â Â  |-construct_hwdom()
>> Â Â Â Â  |-allocate_memory_11()
>>
>> And allocate_memory_11() uses "dom0_mem" as:
>> min_low_order =
>> Â Â  get_order_from_bytes(min_t(paddr_t, dom0_mem, MB(128)));
>>
>> In case of dom0less boot the "dom0_mem" is not used and defaulted to 0,
> 
>  From docs/mics/xen-command-linux.pandoc:
> 
> ---
> 
> ### dom0_mem (ARM)
>  > `= <size>`
> 
> Set the amount of memory for the initial domain (dom0). It must be
> greater than zero. This parameter is required.
> 
> ---
> 
> If dom0_mem is effectively optional, then shouldn't the doc be updated?

No. I think doc is correct because when regular Dom0(hwdom)(initial domain)
is created code goes through regular Dom0 path and "dom0_mem" is accounted for.

create_dom0()->construct_dom0()
       kinfo.unassigned_mem = dom0_mem;
       construct_hwdom()->allocate_memory_11()

The issue happens in dom0less mode when hwdom is created and domain's configuration parameters
are obtained from DT.

> 
>> which causes min_low_order to get high value > order and so no allocations
>> happens from low memory.
>  > > Fix it, by using kinfo->unassigned_mem instead of "dom0_mem" has correct

Right, it should be "which has"

>> memory size in both cases: regular dom0 boot and dom0less boot.
>>
>> Fixes: 52cb53f1816a ("xen/arm: dom0less hwdom construction")
>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
>> Reviewed-by: Denis Mukhin <dmukhin@ford.com>
>> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
> 
> Acked-by: Julien Grall <jgrall@amazon.com>
> 
> Cheers,
> 

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Wed Aug 06 08:22:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 08:22:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071424.1434876 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujZPU-0003KU-UY; Wed, 06 Aug 2025 08:22:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071424.1434876; Wed, 06 Aug 2025 08:22:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujZPU-0003KN-Qo; Wed, 06 Aug 2025 08:22:08 +0000
Received: by outflank-mailman (input) for mailman id 1071424;
 Wed, 06 Aug 2025 08:22:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kasG=2S=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1ujZPT-0003KH-O9
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 08:22:07 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 709a9d19-729e-11f0-a322-13f23c93f187;
 Wed, 06 Aug 2025 10:22:07 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-459eb4ae596so391525e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 Aug 2025 01:22:07 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-459e87487fcsm15128565e9.3.2025.08.06.01.22.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Aug 2025 01:22:06 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 709a9d19-729e-11f0-a322-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754468526; x=1755073326; 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=RCv9BXWg8K0lE9PPFyoiRRKjhYKhLjyDG94FIrtzy3g=;
        b=FDuIO7vqXNf4P2QGUHxZMxgMMn2wYOCsInjVnlIqV144oQMHC4F2CR23Pzj1KjadKv
         r/ilTfHj7PuHmB9ja50UCMO4yXcKxJFSH5I0gKRW5ocifQVvbE1JmKnfa0XrQKoYS7YF
         xJFEQwyVWhH+ygrgjTflBPkbNyCMN2DCSXIAA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754468526; x=1755073326;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RCv9BXWg8K0lE9PPFyoiRRKjhYKhLjyDG94FIrtzy3g=;
        b=HBRTdfHzsHjnSl5BXUGxnWxrEUETBmq18/eAeyzX4IRSr9yli1Vc2chmrXBNjlztZ5
         rLq3Pv3WacFu75S63JzhpkgidMeK29LZ1cAz+cqnxb8TN2xqHoeIWLSyowLqm/ykoxdq
         GqJRBbDt6eYwId6zAfrZVOvZ4MCP6do0Nm8865AM/TnSs6n1CvUNt0TS/t8WKlkgIpTk
         cHvf7bsZsfq7IQd3ErdnJG1Gm7EdBozZnSYZnGKtGzsJxsrh3CZEDl1xpVrPl/Hoqybh
         nDyFf4890fhQEgK1W6yMHdRepLh5vWquXt66QM9gLuJ2l/RWOMkVvhZGoHAtP+Rc0wmQ
         TBuQ==
X-Forwarded-Encrypted: i=1; AJvYcCVi8s6/7GYjYRDfOtOarkuQaM9oj21xDbiDwqL9+JuwQsqBUUykDXm8Arasqy4xqVT6pTer+gGLma0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxvjLqdYeOzWoiVFMWH3HHKYYOYZwHglRovfo8ZUGOuYlofP6eS
	zrDsLcQRiGuYpUKtKwqfNq5BezWDcO5kvXw1Ebfb9CY3ESm2vTsdfHQBWUv3AITnIT8=
X-Gm-Gg: ASbGncsglfTnedbcpSGYohzU75I84fFVAWyszKyfIeTXap4L2cFYNnANCNIQ4VWFPkg
	xBdZMzt1Mpix+lwA4iy2Sb5B/mYBjDlZE5zJbGkjI98neGkWpifN2G8RZmI4x7b4RzHgs5xelYI
	WKcw699r7Kaeyzf0s2ZaYCBtJVL+ei/QnRmd6b1Or43U1uqpU7Ccjws1pXmEXTAICZiyV68mBnq
	Z+/uHe7ia6QxSakPmVztPa4Q79eNOctvXeBNyyYsziUO4UzATPFumiS1YgpY0Y/+Sa8iVk+vkAt
	QQcfIysbwJRKtxxpiajWigfy9eSQpE8hyls9S2VbEnLGlzw6ia+Nm9NOghGRTAyXqjzAzEMcGVd
	k7+9OgV7W+53dtLY+ztuOhCFuuW2Q9oRy5eT2xLtygxqwJMlzi5j4uHT07cL1GSoNdNJH401/em
	sI
X-Google-Smtp-Source: AGHT+IEdILMeF9ekr0VpNyhii7DLh1xhyHJZXQV/k+T4wgl3IrFvVTkHAw3GPaTP5yPbFMV+WhJpOQ==
X-Received: by 2002:a05:600c:1546:b0:459:e165:2661 with SMTP id 5b1f17b1804b1-459e746f7aemr12810995e9.23.1754468526271;
        Wed, 06 Aug 2025 01:22:06 -0700 (PDT)
Date: Wed, 6 Aug 2025 10:22:05 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Jiqian Chen <Jiqian.Chen@amd.com>, Huang Rui <ray.huang@amd.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v10 4/4] vpci/msix: Free MSIX resources when init_msix()
 fails
Message-ID: <aJMQrT8NtdDguvYN@macbook.local>
References: <20250805034906.1014212-1-Jiqian.Chen@amd.com>
 <20250805034906.1014212-5-Jiqian.Chen@amd.com>
 <775a45bd-61df-4cab-948e-bdc79dfd89ef@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <775a45bd-61df-4cab-948e-bdc79dfd89ef@suse.com>

On Tue, Aug 05, 2025 at 10:43:09AM +0200, Jan Beulich wrote:
> On 05.08.2025 05:49, Jiqian Chen wrote:
> > --- a/xen/drivers/vpci/msix.c
> > +++ b/xen/drivers/vpci/msix.c
> > @@ -655,6 +655,48 @@ int vpci_make_msix_hole(const struct pci_dev *pdev)
> >      return 0;
> >  }
> >  
> > +static int cf_check cleanup_msix(const struct pci_dev *pdev)
> > +{
> > +    int rc;
> > +    struct vpci *vpci = pdev->vpci;
> > +    const unsigned int msix_pos = pdev->msix_pos;
> > +
> > +    if ( !msix_pos )
> > +        return 0;
> > +
> > +    rc = vpci_remove_registers(vpci, msix_control_reg(msix_pos), 2);
> > +    if ( rc )
> > +    {
> > +        printk(XENLOG_ERR "%pd %pp: fail to remove MSIX handlers rc=%d\n",
> > +               pdev->domain, &pdev->sbdf, rc);
> > +        ASSERT_UNREACHABLE();
> > +        return rc;
> > +    }
> > +
> > +    if ( vpci->msix )
> > +    {
> > +        list_del(&vpci->msix->next);
> > +        for ( unsigned int i = 0; i < ARRAY_SIZE(vpci->msix->table); i++ )
> > +            if ( vpci->msix->table[i] )
> > +                iounmap(vpci->msix->table[i]);
> > +
> > +        XFREE(vpci->msix);
> > +    }
> > +
> > +    /*
> > +     * The driver may not traverse the capability list and think device
> > +     * supports MSIX by default. So here let the control register of MSIX
> > +     * be Read-Only is to ensure MSIX disabled.
> > +     */
> > +    rc = vpci_add_register(vpci, vpci_hw_read16, NULL,
> > +                           msix_control_reg(msix_pos), 2, NULL);
> > +    if ( rc )
> > +        printk(XENLOG_ERR "%pd %pp: fail to add MSIX ctrl handler rc=%d\n",
> > +               pdev->domain, &pdev->sbdf, rc);
> 
> Here as well as for MSI: Wouldn't this better be limited to the init-failure
> case? No point in adding a register hook (and possibly emitting a misleading
> log message) when we're tearing down anyway. IOW I think the ->cleanup()
> hook needs a boolean parameter, unless the distinction of the two cases can
> be (reliably) inferred from some other property.

I don't think we have any signal in pci_dev itself that notices
whether the device is being deassigned, in which case it does need an
extra boolean parameter to notice whether to add the r/o handler.

I'm also wondering whether we want to limit this hiding to the
hardware domain only, and for domUs fail the operation instead, and
fail to assign the device.  That can be adjusted in a later patch
though.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 08:31:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 08:31:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071432.1434886 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujZY1-00050E-Lu; Wed, 06 Aug 2025 08:30:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071432.1434886; Wed, 06 Aug 2025 08:30:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujZY1-000507-JE; Wed, 06 Aug 2025 08:30:57 +0000
Received: by outflank-mailman (input) for mailman id 1071432;
 Wed, 06 Aug 2025 08:30:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z+Xv=2S=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujZY0-0004yq-MX
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 08:30:56 +0000
Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com
 [2a00:1450:4864:20::530])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id abc427f7-729f-11f0-a322-13f23c93f187;
 Wed, 06 Aug 2025 10:30:55 +0200 (CEST)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-61592ff5ebbso11149551a12.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 Aug 2025 01:30: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
 a640c23a62f3a-af91a0a396fsm1065094766b.42.2025.08.06.01.30.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Aug 2025 01:30: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>
X-Inumbo-ID: abc427f7-729f-11f0-a322-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754469055; x=1755073855; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=cxaFVrKD0vX9OqDoZeCQDISNDDaHhnL2BmqJAOAItRU=;
        b=csoim9jMiXBZzgWO+3idmrWML5Wx2QdQh+NM/5hBGbY0w8P4RPcBDlKMmXHBKBSOl5
         ZB64O8jYdsFLiCNqJEPDBhT+q/U9z1b70HsooXIvcI1+gtMafnXaeQ3Lw4PKPFX/kRXu
         Hp+0XymWHKE9Me5UfdxqoCrmGowUgayTWaF1c5fm1s6CPjCIm4+c8q+26MBXmQOI6lKC
         SppIsDBaNoO5Fa4AQ6dCV0oPZ9Sh2X8zSKmU5k5eRBB+VCQ88w3Y2xrqJJ9blwApxBSj
         8hRrn6hpNyK34YQBU5AzIcZFZMV5Y26z46n98pLjVUTs9jhvs7HNSwCnWFZkA7q9T1kL
         s11Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754469055; x=1755073855;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=cxaFVrKD0vX9OqDoZeCQDISNDDaHhnL2BmqJAOAItRU=;
        b=pllW3xDvZUuY98k80IPJ5fbgyH1fIhLWuRFjuqokTwFBv+VuNNdZTtJdlqMHvawv2a
         ONFkbluN0KVy2kuj4sk9HicQnTg9LW2d2C+7rsyCy30a1jaKSYxMHZfpcY4jG9nq2Qy2
         14S0lJiV9D9HMNV/aOhVrnBrLhPfBPtLVpn6LvKibIrkKESHR74+ZPDfVX5OW741I7+z
         chquKLTsuVlFLVIMzYgdfKUoc94ZjjlNhAtAQvAP3dfU72GGP9hvcXCdqxRL3eJdb2LL
         F5uPSsRw9/ONEFDFwqR3fYhXAw1oLgvGOSZXsa+k9y/MI+VBaPedDx42b5LEQnDtjnru
         aR3A==
X-Forwarded-Encrypted: i=1; AJvYcCXA9GgAXjzTmfx//QCdr62uLcSx7y3G6CfQ7QOAUe/gd6VXx6m8zt/Z73sJd1+zb4+Bh0MgA2fM51I=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxVbOBLNpTyKzGpzk1Axr9EjbGnKWC/ps6bO86Dfj9PQB7ph+Ll
	5/jiH2O3xZh7ayUINBHunpu6bqq0cky2X6Qcg+lxLPHKgnHCXVQSvB8/oxpV1gevWKPDk0HKhme
	OGK0=
X-Gm-Gg: ASbGncvLlxAjy7fRAKFKyxtdwRNN1xYf4eDFsmD27KK66o+BIMn2fZflQngDGPruNrL
	qClz6Tkt5hZQJw9avz1mpHDMO6KP07xWTIMR7odVId1S9m870rNaRVB7S4MuMCOvT446R1sIX/I
	DDYybepntBb1fNgHXA5BwoXLqAnIUU2v0mmAlnzvUphrFV2taWqLWN627lbz26HB8l4+7S4ajgj
	p9F1tLV9bCPfKnVl3RTN0UJr0DkXJJrSiQ3Gxa3UFK+xGPYvw/vwhgWhNqvkoZWjeobmnEYaE3g
	qrqmblMbzy9U7kAmyrJSb1wN6h+EGmtccWrLRnbvidtF9/lHD8iY7ohlYyBCkR1BnEG63S9pMgy
	zdeCr1854nRjGMMxvPlcVVdlR4LXBN9vODbF4BVTx7pv4/6SbYWcja08XpUIYmLSs948i1Rw/88
	pdkWXJwRg=
X-Google-Smtp-Source: AGHT+IGlz9IeWpuavLOL6/O3IWHCXmSYiBeyfe7pSC7x3LeAuW5SfwGyxgZQE8LzRRfxOYsDtgCdGg==
X-Received: by 2002:a17:907:981:b0:ae0:b33d:2a4a with SMTP id a640c23a62f3a-af9904014fbmr181279866b.35.1754469054977;
        Wed, 06 Aug 2025 01:30:54 -0700 (PDT)
Message-ID: <20990797-0523-429d-a920-a8e2ba92d18b@suse.com>
Date: Wed, 6 Aug 2025 10:30:53 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v10 4/4] vpci/msix: Free MSIX resources when init_msix()
 fails
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Jiqian Chen <Jiqian.Chen@amd.com>, Huang Rui <ray.huang@amd.com>,
 xen-devel@lists.xenproject.org
References: <20250805034906.1014212-1-Jiqian.Chen@amd.com>
 <20250805034906.1014212-5-Jiqian.Chen@amd.com>
 <775a45bd-61df-4cab-948e-bdc79dfd89ef@suse.com>
 <aJMQrT8NtdDguvYN@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: <aJMQrT8NtdDguvYN@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06.08.2025 10:22, Roger Pau MonnÃ© wrote:
> On Tue, Aug 05, 2025 at 10:43:09AM +0200, Jan Beulich wrote:
>> On 05.08.2025 05:49, Jiqian Chen wrote:
>>> --- a/xen/drivers/vpci/msix.c
>>> +++ b/xen/drivers/vpci/msix.c
>>> @@ -655,6 +655,48 @@ int vpci_make_msix_hole(const struct pci_dev *pdev)
>>>      return 0;
>>>  }
>>>  
>>> +static int cf_check cleanup_msix(const struct pci_dev *pdev)
>>> +{
>>> +    int rc;
>>> +    struct vpci *vpci = pdev->vpci;
>>> +    const unsigned int msix_pos = pdev->msix_pos;
>>> +
>>> +    if ( !msix_pos )
>>> +        return 0;
>>> +
>>> +    rc = vpci_remove_registers(vpci, msix_control_reg(msix_pos), 2);
>>> +    if ( rc )
>>> +    {
>>> +        printk(XENLOG_ERR "%pd %pp: fail to remove MSIX handlers rc=%d\n",
>>> +               pdev->domain, &pdev->sbdf, rc);
>>> +        ASSERT_UNREACHABLE();
>>> +        return rc;
>>> +    }
>>> +
>>> +    if ( vpci->msix )
>>> +    {
>>> +        list_del(&vpci->msix->next);
>>> +        for ( unsigned int i = 0; i < ARRAY_SIZE(vpci->msix->table); i++ )
>>> +            if ( vpci->msix->table[i] )
>>> +                iounmap(vpci->msix->table[i]);
>>> +
>>> +        XFREE(vpci->msix);
>>> +    }
>>> +
>>> +    /*
>>> +     * The driver may not traverse the capability list and think device
>>> +     * supports MSIX by default. So here let the control register of MSIX
>>> +     * be Read-Only is to ensure MSIX disabled.
>>> +     */
>>> +    rc = vpci_add_register(vpci, vpci_hw_read16, NULL,
>>> +                           msix_control_reg(msix_pos), 2, NULL);
>>> +    if ( rc )
>>> +        printk(XENLOG_ERR "%pd %pp: fail to add MSIX ctrl handler rc=%d\n",
>>> +               pdev->domain, &pdev->sbdf, rc);
>>
>> Here as well as for MSI: Wouldn't this better be limited to the init-failure
>> case? No point in adding a register hook (and possibly emitting a misleading
>> log message) when we're tearing down anyway. IOW I think the ->cleanup()
>> hook needs a boolean parameter, unless the distinction of the two cases can
>> be (reliably) inferred from some other property.
> 
> I don't think we have any signal in pci_dev itself that notices
> whether the device is being deassigned, in which case it does need an
> extra boolean parameter to notice whether to add the r/o handler.
> 
> I'm also wondering whether we want to limit this hiding to the
> hardware domain only, and for domUs fail the operation instead, and
> fail to assign the device.  That can be adjusted in a later patch
> though.

Yes, DomU wants handling as you say. Iirc there are other open issues with
DomU support, though. Hence yes, "later" ought to suffice here. Perhaps
worth annotating with a fixme, though, to be able to easily spot all the
places that require adjustment.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 08:39:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 08:39:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071449.1434897 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujZgQ-0005mg-G6; Wed, 06 Aug 2025 08:39:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071449.1434897; Wed, 06 Aug 2025 08: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 1ujZgQ-0005mZ-C8; Wed, 06 Aug 2025 08:39:38 +0000
Received: by outflank-mailman (input) for mailman id 1071449;
 Wed, 06 Aug 2025 08:39:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kasG=2S=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1ujZgO-0005mT-F4
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 08:39:36 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e1033f27-72a0-11f0-b898-0df219b8e170;
 Wed, 06 Aug 2025 10:39:34 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-459e1338565so17229565e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 06 Aug 2025 01:39:34 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3b79c485444sm22298292f8f.66.2025.08.06.01.39.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Aug 2025 01:39: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>
X-Inumbo-ID: e1033f27-72a0-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754469574; x=1755074374; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=nF4kZuoLntESWc65KJXI6W4q0k5ppspGyc/lTq0LlEg=;
        b=lO6AcTSnoZDncyKAVilsZjJI7mmQ9kjGpB3AHi3sFIlaMB3uFYiiM3ieCWRbUU21ZO
         GWe2zdXbjf7dF7WHnvtBR1DFP01xIp7Bf7PJVzgGRtEHsgFCKuSlSb8mWWTBv42NWD/A
         INRacjc81i5MTQlqfpmkMa+/uYtT1BO7MprFU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754469574; x=1755074374;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=nF4kZuoLntESWc65KJXI6W4q0k5ppspGyc/lTq0LlEg=;
        b=jtYR0+zTv7uEr/ALB6xxzylepoHIN7xywwUD6vaHjm1qfXEI7Lj2eV4azw+3vJVeHQ
         TMQLGXQ9OZZ61YUUs+UfRGisyw5+v+BeDf3oJCoO7hOmM3nlVNH/RMWW+SMxKcJkOtQZ
         XwW+HHb9yFQbyafgdre4hpsPOQth8SLsLgnFPJAXCPErFeNahUhIXmYNODXWFh7Rrl6s
         Hcn/TSK7F6Yj4J7WtqGp5Mr4ObsBb5U3Wk++zO1llaIR4tDNfnPZYkKyQUknXp7ttVa4
         XuPfeSlPymmxJ6ufp83G9xP607w8u9FGGem8mvo0XBQEJGSh6fvJXMp/xYqRFFLZez+2
         yY8A==
X-Forwarded-Encrypted: i=1; AJvYcCWd8OpHx3oxglINKsatmzzhHAzwvbmJSHIw93lr28XtsmH10kcetNS2q81wJXtWN2xumtv67Y0PV7M=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzN/WpS+reC83D65ZILm1s/fb168zjuBOm7a4BYUHl38F/i7EF3
	puZfARVP7b6isHYHzBnLk/vg7HJiO+SD9cADc93ea2R0mo1ROJBvmF8W9EKVO8+x7Bc=
X-Gm-Gg: ASbGncseAL4ZNhi7AKY+YDVIZJlpG397eNeuCrEUHr43HyzW9cQYl4apwq/NnmHCQft
	kpKVqRMMv1B5DRpkQ+pSkM5l1s5Krb/I4hLZQlawNafo/gDUEfuoza80Wp/Q7D8R7fwCyjq3HBa
	8e9ekRivqWwwS8Nta47b7dPW76TnZeYHemnHqtzapmhI78MjmZByYjdc+f/y/A1Jtnpn/DKm/KP
	7bszsQkRF7efmZzNlbdxQg1+mTEA4xddEwQOKIPWVWGFm+zXahvW1ZSmjWcEjT1sQVL5NltGu4w
	/gDpPbW+4m9KhklqFq6Gghmii+LTBfPELyge3AFwvWJua4nKxPwxovJByAsgCVIZyEmpbAPLo1A
	PQjfL0DWsvKKh5uZr+G6oTchXkyQLGr03IROooNiiL7CdADf1r5Qy3rw/0ceEc+0L9bcVW3y1NL
	PQ
X-Google-Smtp-Source: AGHT+IGcXuKwQEaAu/2kZLgl8LBoZrBwuTZUz1ocYx7SmpdtuLUsPq80/rzgbfZTZxaVKcosdmOSeQ==
X-Received: by 2002:a05:6000:18a7:b0:3b7:810f:6caf with SMTP id ffacd0b85a97d-3b8f491ff5dmr1272054f8f.32.1754469573508;
        Wed, 06 Aug 2025 01:39:33 -0700 (PDT)
Date: Wed, 6 Aug 2025 10:39:32 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Jiqian Chen <Jiqian.Chen@amd.com>, Huang Rui <ray.huang@amd.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v10 4/4] vpci/msix: Free MSIX resources when init_msix()
 fails
Message-ID: <aJMUxPWgCmsnh5dF@macbook.local>
References: <20250805034906.1014212-1-Jiqian.Chen@amd.com>
 <20250805034906.1014212-5-Jiqian.Chen@amd.com>
 <775a45bd-61df-4cab-948e-bdc79dfd89ef@suse.com>
 <aJMQrT8NtdDguvYN@macbook.local>
 <20990797-0523-429d-a920-a8e2ba92d18b@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20990797-0523-429d-a920-a8e2ba92d18b@suse.com>

On Wed, Aug 06, 2025 at 10:30:53AM +0200, Jan Beulich wrote:
> On 06.08.2025 10:22, Roger Pau MonnÃ© wrote:
> > On Tue, Aug 05, 2025 at 10:43:09AM +0200, Jan Beulich wrote:
> >> On 05.08.2025 05:49, Jiqian Chen wrote:
> >>> --- a/xen/drivers/vpci/msix.c
> >>> +++ b/xen/drivers/vpci/msix.c
> >>> @@ -655,6 +655,48 @@ int vpci_make_msix_hole(const struct pci_dev *pdev)
> >>>      return 0;
> >>>  }
> >>>  
> >>> +static int cf_check cleanup_msix(const struct pci_dev *pdev)
> >>> +{
> >>> +    int rc;
> >>> +    struct vpci *vpci = pdev->vpci;
> >>> +    const unsigned int msix_pos = pdev->msix_pos;
> >>> +
> >>> +    if ( !msix_pos )
> >>> +        return 0;
> >>> +
> >>> +    rc = vpci_remove_registers(vpci, msix_control_reg(msix_pos), 2);
> >>> +    if ( rc )
> >>> +    {
> >>> +        printk(XENLOG_ERR "%pd %pp: fail to remove MSIX handlers rc=%d\n",
> >>> +               pdev->domain, &pdev->sbdf, rc);
> >>> +        ASSERT_UNREACHABLE();
> >>> +        return rc;
> >>> +    }
> >>> +
> >>> +    if ( vpci->msix )
> >>> +    {
> >>> +        list_del(&vpci->msix->next);
> >>> +        for ( unsigned int i = 0; i < ARRAY_SIZE(vpci->msix->table); i++ )
> >>> +            if ( vpci->msix->table[i] )
> >>> +                iounmap(vpci->msix->table[i]);
> >>> +
> >>> +        XFREE(vpci->msix);
> >>> +    }
> >>> +
> >>> +    /*
> >>> +     * The driver may not traverse the capability list and think device
> >>> +     * supports MSIX by default. So here let the control register of MSIX
> >>> +     * be Read-Only is to ensure MSIX disabled.
> >>> +     */
> >>> +    rc = vpci_add_register(vpci, vpci_hw_read16, NULL,
> >>> +                           msix_control_reg(msix_pos), 2, NULL);
> >>> +    if ( rc )
> >>> +        printk(XENLOG_ERR "%pd %pp: fail to add MSIX ctrl handler rc=%d\n",
> >>> +               pdev->domain, &pdev->sbdf, rc);
> >>
> >> Here as well as for MSI: Wouldn't this better be limited to the init-failure
> >> case? No point in adding a register hook (and possibly emitting a misleading
> >> log message) when we're tearing down anyway. IOW I think the ->cleanup()
> >> hook needs a boolean parameter, unless the distinction of the two cases can
> >> be (reliably) inferred from some other property.
> > 
> > I don't think we have any signal in pci_dev itself that notices
> > whether the device is being deassigned, in which case it does need an
> > extra boolean parameter to notice whether to add the r/o handler.
> > 
> > I'm also wondering whether we want to limit this hiding to the
> > hardware domain only, and for domUs fail the operation instead, and
> > fail to assign the device.  That can be adjusted in a later patch
> > though.
> 
> Yes, DomU wants handling as you say. Iirc there are other open issues with
> DomU support, though. Hence yes, "later" ought to suffice here. Perhaps
> worth annotating with a fixme, though, to be able to easily spot all the
> places that require adjustment.

Sometimes I don't take into account that vPCI is also supposed to be
used by domUs in the long run and forget about that aspect when
reviewing patches

Roger.


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 08:48:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 08:48:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071467.1434905 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujZoc-0007eT-CV; Wed, 06 Aug 2025 08:48:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071467.1434905; Wed, 06 Aug 2025 08:48: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 1ujZoc-0007eM-9x; Wed, 06 Aug 2025 08:48:06 +0000
Received: by outflank-mailman (input) for mailman id 1071467;
 Wed, 06 Aug 2025 08:48:05 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1ujZob-0007eG-Cb
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 08:48:05 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ujZoa-004N02-24;
 Wed, 06 Aug 2025 08:48:04 +0000
Received: from [15.248.3.95] (helo=[10.24.67.219])
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ujZoa-006h07-1L;
 Wed, 06 Aug 2025 08:48: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=M6PvuqvXz/6ABB1gSm81kTqZeDu/E6K5yov6LNNWdME=; b=1x46Tfw+krHgLK9d4I11eMKoLY
	l0GiBSEcK2Ff6rkzEugAjWLIoXGBTvFN53y/i7UM1JzJQsY0C7QTK/1rZWKmFkWP58mGBuyJjxCr4
	dYpLuwJNey7t9sbLV+N7bwB5kwhIM6siovyaIvzYOV29X1xfFnwgDelEXu+UuV3PYVss=;
Message-ID: <72f0d4bd-65b6-4904-8fd6-b714058923b2@xen.org>
Date: Wed, 6 Aug 2025 09:48:02 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/dom0less: arm: fix hwdom 1:1 low memory allocation
Content-Language: en-GB
To: Grygorii Strashko <grygorii_strashko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Denis Mukhin <dmukhin@ford.com>, Jason Andryuk <jason.andryuk@amd.com>
References: <20250805190017.209711-1-grygorii_strashko@epam.com>
 <5807ed03-7db2-4ce6-9acf-c4d515fbd293@xen.org>
 <5a33ddf2-716e-4fca-8764-760dec9944ce@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <5a33ddf2-716e-4fca-8764-760dec9944ce@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Grygorii,

On 06/08/2025 09:19, Grygorii Strashko wrote:
> Hi Julien,
> 
> On 06.08.25 00:07, Julien Grall wrote:
>> Hi Grygorii,
>>
>> On 05/08/2025 20:00, Grygorii Strashko wrote:
>>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>>
>>> Call stack for dom0less hwdom case (1:1) memory:
>>> create_domUs
>>> |-construct_domU
>>> Â Â  |-construct_hwdom()
>>> Â Â Â Â  |-allocate_memory_11()
>>>
>>> And allocate_memory_11() uses "dom0_mem" as:
>>> min_low_order =
>>> Â Â  get_order_from_bytes(min_t(paddr_t, dom0_mem, MB(128)));
>>>
>>> In case of dom0less boot the "dom0_mem" is not used and defaulted to 0,
>>
>> Â From docs/mics/xen-command-linux.pandoc:
>>
>> ---
>>
>> ### dom0_mem (ARM)
>> Â > `= <size>`
>>
>> Set the amount of memory for the initial domain (dom0). It must be
>> greater than zero. This parameter is required.
>>
>> ---
>>
>> If dom0_mem is effectively optional, then shouldn't the doc be updated?
> 
> No. I think doc is correct because when regular Dom0(hwdom)(initial domain)
> is created code goes through regular Dom0 path and "dom0_mem" is 
> accounted for.

I understand this is used when dom0 is not described in the device tree.
The crucial part in your sentence is "when", to me this indicates a 
condition. Whereas the current wording in xen-command-linux is using 
"required" with no condition. So a reader can rightfully think the 
parameter is also used in dom0less and have to be specified.

So I think the wording needs to be tweaked to something like "This 
parameter is required (and only used) when the initial domain is not 
described in the Device-Tree."

Although, "required" might still be too strict because it looks like we 
would provide a configuration for dom0_mem if it is not set.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Wed Aug 06 09:27:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 09:27:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071484.1434915 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujaQa-0004t4-9O; Wed, 06 Aug 2025 09:27:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071484.1434915; Wed, 06 Aug 2025 09:27:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujaQa-0004sx-6p; Wed, 06 Aug 2025 09:27:20 +0000
Received: by outflank-mailman (input) for mailman id 1071484;
 Wed, 06 Aug 2025 09:27:19 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Huua=2S=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1ujaQY-0004sp-JF
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 09:27:19 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8abd2adf-72a7-11f0-a322-13f23c93f187;
 Wed, 06 Aug 2025 11:27:16 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 1AC774EE3C08;
 Wed,  6 Aug 2025 11:27: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>
X-Inumbo-ID: 8abd2adf-72a7-11f0-a322-13f23c93f187
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=1754472435;
	b=AJkuH9J5YqrP5II6/gS1aTZbyz1dHlg4LoI/VW1rJhc6V3TIY3BqohDM2evb0LqNPRTe
	 Pe0AA+NPmqr6ZcN41YkAlglgg4SktmX/O/iajf77rGjc8DI9QfyA1ZM4liOrENzE2iKlZ
	 liFtCu0UPNTR89V30kZWSHxp90Lc+XhaQnwbdJccDrEJqOWtN/8qqqSJguzUhbc2eQEvm
	 xMaRk2hoCJdRuMNcwwMQq19UHaODCT+Hqp8LYw0OANgpqFo6nzLjB+SR9pgJ1r1xp32W5
	 mBhp/Vgkmlj5ByhRG7ZItue8/poetqUQDbKiMYTdfCXtjcKpKDD16LPxGEMKRzFA6xQ7F
	 S2U1SzTI62iKGZu7OZkrD6SAa7Y1ok2s0dsa2ksqMD91r4xuMVSkut8zU1UxCpgqDGeyn
	 wA7dbY//0HffncScx/iS0oJ3gzCpp56cvleVBpydSkmdN6hjotdxgenM4x6TdF8DFv0I3
	 dULs3uHS+vZ9pkjsg8mR5rKHY9bRVSgTsdlqBV8Zx+yN5I3kxnceobT77Zi7JwYUgPZJB
	 gyFPs5DPzfwrxtkMmfmewNjaFggEBveVp0JrxGXK+o52f8Yv+R0gzUjXQCdcoTgdDM6LA
	 SAMYcAB5JLMLDjTBfDd13jfqWjYZam67wXveYHi+2+2eHpnNBuFjXD/YcfZwgBU=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1754472435;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=zHBloSQqeTefUgcInSIkotrVwYowy0OPUoNB4Uzss/E=;
	b=vhY9oXqI+BVMKkrK+eRa9nbeDuRXqsMlU+ZlEgh09tEcFkxbAFMpWUE4Y/qC6lKcaFA+
	 Esix8dL0XZwEyJaTgNr6xbmFbJObnvoA5Ac8FNZxNDza19tfWNK7TOUoaRNcS+b0AcAW+
	 JnN22BOMuJindwOjH1XBKeBfVEmHVNO3J9f/EcmJpQBnPFIWdPCvt6xj6oZQSL+bN3U2b
	 Pq+UaovU0/k2MnVAivtRIndu8xbYmM5sXDwu9PoqnBpzWWcjl6IPSExaZJXQIWLCNef7B
	 CpWfpqRizXVrTBQPfPAiMh/kBIogpcXIfueNVVzDh+WmF0/4iCZF8aGeuYn3PwATX6FlY
	 SyK8bhwS4gzAaB+ck+RALG+b5Nuq0NnXLfLAqFFERQ2NDqtzMpSs1Azk/iyFfaOpFCLZ2
	 8dGVexZJngVQk8ZodzAhJJcU0j/kH2aP+uYZ/jivgxzRVwP1j1dOgYU8uzP84mkMTVQDh
	 9HZob6Vp6gh6AjK76QeDya9Pdtb9b+lWmPUeSgUBqPlU8iKqAGUxYCSI3StmytwbSEJNU
	 4oTjgzstEQOnMkV7eOxFFMEiqOHoPIDd7axEaw15VgnZ95V6pZL4D0CCIDLl+8o5CQIRn
	 iBalF/IxQcNVFvvwsGECZ4hkhFDQtMquvnvdKmFnZ+TiHcFHLayVRZFEQgppm0s=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1754472435; bh=7Hjdjh+aV53vBodBhPbYzgpJ/VZHR0kXFsVhxXLFUak=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=VWiJ12VferULVv14GIrzNYcCNTIJvJxmGnur1L8PTAGVNrfwZyFVfZVwTDpjI0KDm
	 08z3CbHlvsJX0LN1xR3/8n64vnxoyozI/v6O2IkKzVVbcURlJ3LT4kVkNHBM0dYtD6
	 S9Pp+sq2iNIj26q/bsgsJ8xX7G504MxyPAErX2ihLa02U8ui8LZG0AWxrQr0t9RLwh
	 xO41u2inoMG7j8vQ1kdKcjypBa1bCcKwglj1vn8jjAXQtuSampMpjjOnF8zhuMoY5U
	 MgE/BBZhqqGIOt4RLC8OdWVm7Ma0rkTW/Y+emmqMtJn50ODLnuGEwB9fBtvSurAICP
	 8S0bS983ILy6w==
MIME-Version: 1.0
Date: Wed, 06 Aug 2025 11:27:15 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: Jan Beulich <jbeulich@suse.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>, Dario Faggioli <dfaggioli@suse.com>,
 Juergen Gross <jgross@suse.com>, George Dunlap <gwd@xenproject.org>,
 xen-devel@lists.xenproject.org, Andrew Cooper3 <andrew.cooper3@citrix.com>
Subject: Re: [PATCH] misra: fix violations in macros GVA_INFO, TRACE_TIME
In-Reply-To: <1a59e6d831fd7119df1e2bd0cdbe262b@bugseng.com>
References: <73cfc8a2d4d66042b49f44c69e672ce8ad0556ce.1753971749.git.dmytro_prokopchuk1@epam.com>
 <470a04e6-f8c1-4937-8478-0f80107d562d@citrix.com>
 <898e1c2a-7684-489b-84cd-254b2ee53e5d@suse.com>
 <9952fc5c-b95a-4879-a442-12e491438e08@citrix.com>
 <689178480a418f04158d623e3cedd4bd@bugseng.com>
 <91d2a8ec-8a8e-404a-85ac-1038317e937b@epam.com>
 <1a59e6d831fd7119df1e2bd0cdbe262b@bugseng.com>
Message-ID: <fd5603bdbf7c1180b988b57dc5cbf631@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

On 2025-08-05 15:22, Nicola Vetrini wrote:
> On 2025-08-05 13:49, Dmytro Prokopchuk1 wrote:
>> On 7/31/25 19:09, Nicola Vetrini wrote:
>>> On 2025-07-31 18:05, Andrew Cooper wrote:
>>>> On 31/07/2025 4:58 pm, Jan Beulich wrote:
>>>>> On 31.07.2025 17:37, Andrew Cooper wrote:
>>>>>> On 31/07/2025 4:16 pm, Dmytro Prokopchuk1 wrote:
>>>>>>> MISRA Rule 13.1: Initializer lists shall not contain persistent 
>>>>>>> side
>>>>>>> effects.
>>>>>>> 
>>>>>>> The violations occur because both the `GVA_INFO` and `TRACE_TIME`
>>>>>>> macro
>>>>>>> expansions include expressions with persistent side effects 
>>>>>>> introduced
>>>>>>> via inline assembly.
>>>>>>> 
>>>>>>> In the case of `GVA_INFO`, the issue stems from the initializer 
>>>>>>> list
>>>>>>> containing a direct call to `current`, which evaluates to
>>>>>>> `this_cpu(curr_vcpu)` and involves persistent side effects via 
>>>>>>> the
>>>>>>> `asm` statement. To resolve this, the side-effect-producing 
>>>>>>> expression
>>>>>>> is computed in a separate statement prior to the macro 
>>>>>>> initialization:
>>>>>>> 
>>>>>>> Â Â Â  struct vcpu *current_vcpu = current;
>>>>>>> 
>>>>>>> The computed value is passed into the `GVA_INFO(current_vcpu)` 
>>>>>>> macro,
>>>>>>> ensuring that the initializer is clean and free of such side 
>>>>>>> effects.
>>>>>>> 
>>>>>>> Similarly, the `TRACE_TIME` macro violates this rule when 
>>>>>>> accessing
>>>>>>> expressions like `current->vcpu_id` and 
>>>>>>> `current->domain->domain_id`,
>>>>>>> which also depend on `current` and inline assembly. To fix this, 
>>>>>>> the
>>>>>>> value of `current` is assigned to a temporary variable:
>>>>>>> 
>>>>>>> Â Â Â  struct vcpu *v = current;
>>>>>>> 
>>>>>>> This temporary variable is then used to access `domain_id` and
>>>>>>> `vcpu_id`.
>>>>>>> This ensures that the arguments passed to the `TRACE_TIME` macro 
>>>>>>> are
>>>>>>> simple expressions free of persistent side effects.
>>>>>>> 
>>>>>>> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
>>>>>> The macro `current` specifically does not (and must not) have side
>>>>>> effects.Â  It is expected to behave like a plain `struct vcpu 
>>>>>> *current;`
>>>>>> variable, and what Eclair is noticing is the thread-local 
>>>>>> machinery
>>>>>> under this_cpu() (or in x86's case, get_current()).
>>>>>> 
>>>>>> In ARM's case, it's literally reading the hardware thread pointer
>>>>>> register.Â  Can anything be done to tell Eclair that `this_cpu()`
>>>>>> specifically does not have side effects?
>>>>>> 
>>>>>> The only reason that GVA_INFO() and TRACE_TIME() are picked out is
>>>>>> because they both contain embedded structure initialisation, and
>>>>>> this is
>>>>>> is actually an example where trying to comply with MISRA 
>>>>>> interferes
>>>>>> with
>>>>>> what is otherwise a standard pattern in Xen.
>>>>> Irrespective of what you say, some of the changes here were 
>>>>> eliminating
>>>>> multiple adjacent uses of current, which - iirc - often the 
>>>>> compiler
>>>>> can't fold via CSE.
>>>> 
>>>> Where we have mixed usage, sure.Â  (I'm sure I've got a branch 
>>>> somewhere
>>>> trying to add some more pure/const around to try and help out here, 
>>>> but
>>>> I can't find it, and don't recall it being a major improvement 
>>>> either.)
>>>> 
>>>> The real problem here is that there are a *very few* number of 
>>>> contexts
>>>> where Eclair refuses to tolerate the use of `current` citing side
>>>> effects, despite there being no side effects.
>>>> 
>>>> That is the thing that breaks the principle of least surprise, and 
>>>> we
>>>> ought to fix it by making Eclair happy with `current` everywhere, 
>>>> rather
>>>> than force people to learn that 2 macros can't have a `current` in 
>>>> their
>>>> parameter list.
>>>> 
>>> 
>>> I'll take a look. Likely yes, by adding a handful of properties. 
>>> There
>>> are subtleties, though.
>>> 
>> 
>> Hi, Nicola.
>> 
>> Did you have a chance to try configure Eclair to ignore this macro
>> `this_cpu()`?
>> 
> 
> Hi Dmytro,
> 
> I'm on it, I needed to handle other tasks first.
> 

A solution has been devised by extending ECLAIR. The runner will be 
updated with the latest ECLAIR version, and as a result a couple of 
other patches will be submitted to adapt for it.

>> Thanks.
>> Dmytro

-- 
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 Aug 06 09:45:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 09:45:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071495.1434928 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujaiA-0007st-Jt; Wed, 06 Aug 2025 09:45:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071495.1434928; Wed, 06 Aug 2025 09:45:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujaiA-0007sm-HD; Wed, 06 Aug 2025 09:45:30 +0000
Received: by outflank-mailman (input) for mailman id 1071495;
 Wed, 06 Aug 2025 09:45:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XWom=2S=epam.com=Oleksii_Moisieiev@srs-se1.protection.inumbo.net>)
 id 1ujai9-0007sg-CH
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 09:45:29 +0000
Received: from GVXPR05CU001.outbound.protection.outlook.com
 (mail-swedencentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c202::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 151c9288-72aa-11f0-b898-0df219b8e170;
 Wed, 06 Aug 2025 11:45:27 +0200 (CEST)
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com (2603:10a6:102:32e::21)
 by DU2PR03MB10162.eurprd03.prod.outlook.com (2603:10a6:10:49c::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.20; Wed, 6 Aug
 2025 09:45:24 +0000
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::f12d:7394:bbe3:dfc]) by PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::f12d:7394:bbe3:dfc%6]) with mapi id 15.20.8989.018; Wed, 6 Aug 2025
 09:45: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>
X-Inumbo-ID: 151c9288-72aa-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Qo02BcMCfQb5d3LSnFPVd0AQx2n3hC5XoXFepMVLQ/mP9w+dtzcJOMrPu9YF5Iour5opnXU3WQQNWfreE70hziexN8NKrGjXcDkdZKWmgzgO4QyEXgWJCT4EQlqdQpRtETDwgV4aE/uwQ1SxCeI7QCLU0ossi7k6IvBfMYcQRvYishxhoVc4xHw521ZQKci0of/LXgTUJid4mUcyjET9zHR+5zEjYhJt/MR8yEiOtY1pMjlZFfsWrMpMz9MLk/Zhls/Lw7T9pZdXmjyb91h+aciNbgLQCXKxY9QRHiDbxF2cvnhmKsu+d2d70rEF5R7EKTO1ntyVz8AoAUQ4Ls9xGA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cl05CjPoKA4gHRYiErk/NZqtRn3dfJkBiKeuyi2SqoA=;
 b=OPcv58StEvbsIfPUxJNC/d0l0I8U8WYRpt2HrAWgqrN7KBL36IRmWH192MrJRBzguiwZ50uTVhRxHd+9qDtM/UDWoz5AbyYAjNEqxgUbx8zFyaSwsGLQGjrWYWwr0tzWnpgzx1+2lQ2jVreXuL6qAYDggH2mXo2G8Mu2tTK5K7Elld3+VqYmq1oNnpbdHj0VgaQH4cDqFwvVq2UqCa8XUBD+v7k63PPn08NfD04ALNZ9w7RdYPuSCIEA2Iga8yNLmHbguuwKhs7kOBZM4WB7NyIOQBWtx4BHBCobSD1iLDgBY70XlWSqo8VWpetY0tjuMssmfdBJORfjYVPsNUHROg==
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=cl05CjPoKA4gHRYiErk/NZqtRn3dfJkBiKeuyi2SqoA=;
 b=eA0IqLVf00a5ebkPL9sVMO7NwfL4QJTcZZFtQ3OiL8ZX3mu5GQOulJhkDw0/bpd+yqkvRU1zd27Bhqg5REw248T5Ap/YsF8mFYajusMf9GJssPES3ZvAHi+zy8C3XHuBGVlxgSPvEO1V0ma4oviEMnkUyfft54AuRH9iZacge7Cmz+WL0wusmbEysdCUU6VEYkF0/f2LEvouyNcOo/nbNVkFh3XlLcr8Be0mcuuQF046eDEZLiHSHnNqh5JdC8W0wRsPoOAGsCTypDVEVUjdvcLpQEvjNFvQkkdnN6rOMumWZKaY6RpUx1gKjSdjdFHSLeYDub/Qx6o/zu9ZsK+m2Q==
From: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
To: "Orzel, Michal" <michal.orzel@amd.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Bertrand Marquis <bertrand.marquis@arm.com>, Jan
 Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>
Subject: Re: [PATCH v2] xen/arm, xen/common: Add Kconfig option to control
 Dom0 boot
Thread-Topic: [PATCH v2] xen/arm, xen/common: Add Kconfig option to control
 Dom0 boot
Thread-Index: AQHb/+IacHiE2y5puk2LQertSkS3OrRIs0MAgAy6nQA=
Date: Wed, 6 Aug 2025 09:45:24 +0000
Message-ID: <837d01e8-3348-4621-a368-d498233fcddb@epam.com>
References:
 <90e79e175b5f703f33944415df3c7a73d6abc385.1753722403.git.oleksii_moisieiev@epam.com>
 <ccaf6efb-3372-4fb7-8084-51d23b3fcc21@amd.com>
In-Reply-To: <ccaf6efb-3372-4fb7-8084-51d23b3fcc21@amd.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: PAVPR03MB8946:EE_|DU2PR03MB10162:EE_
x-ms-office365-filtering-correlation-id: c5fc4eb0-4ed5-4fed-5b33-08ddd4cdf773
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?cU4rU1hscGZJdWxIaDU3cyt2OTVxL3ZDbThMMGhJaTlOK2hWbjkyekE2c08x?=
 =?utf-8?B?VFpxZEhOOGpYbzAvQXRDamI0aHFWeGdZdFpJbnZlZzRlNk1leExnb0VTdmMz?=
 =?utf-8?B?VjhwMnFrdDloMlp5R2hCclFRUHYvSkliRVFBdldDdytpUGFoaGJnbzQxTnJM?=
 =?utf-8?B?RDJMSmt3eHpYSEZHZWJ3MUcySm9QU2tRdEg1SmJ1a2gvK3BFLy9xNkNFN3c5?=
 =?utf-8?B?TmZhdkxmRzVQVGx2ekdMTU1NeVB6c0NWalY4c3p1NW0xaGZ0bk13dk1SZ2lK?=
 =?utf-8?B?VzJOU21yYXNmMXd0elhJMVNFbFNSdGdIMk12NWRJRS9XUDl2VEhpQjlvYTc5?=
 =?utf-8?B?TXNWM3crekVzcVFmK2Z6dE9iQnlEbGZ5ZjU2Y2d2cUZ5YTNPL3NvdTY5eUtY?=
 =?utf-8?B?Vkc5TUxPbmxqTFJzYU8zb053UmVxQngxU0xXbzN5MzloVkp4OG1sdFN1MVhU?=
 =?utf-8?B?TXA0UG0xSHd5U1daQmpzTE4vbWlyNGdqMjlaMHVPN2FoOWpUSTNGa0xSOVVX?=
 =?utf-8?B?NWZ5N1dUVFR5WGRIMG4zZW8vdHNMbW9PZkxCZ0t2NEpBZldteWpsSEcyRTRO?=
 =?utf-8?B?UWFlV1BNdVhodERjV2lnSm8vbmRpTGU1dEtvZkNkQmN5aHpLOXNZbHlxbFFJ?=
 =?utf-8?B?emFpNTZRTFV3MmhPcGhicXhvRUJrSERtQmFRaFlncU5VZFRMSEhVVVlOelRz?=
 =?utf-8?B?NlVWaVprb3BOMGU2bkl4R0lZejZQTkZuQk51TnBMb1JmSjRUNm5CWUtPUit2?=
 =?utf-8?B?LzcwYTNRbFpKSnF2cno4aUpxd2M0bWZCM0VXRDNENlgybVpQMnlLRmFXOUto?=
 =?utf-8?B?K1ZENTJSTFZFZVVGTVY4MjlQWkpkTnNudk5PQVV2bmN1cS93TGFsOFBBdlN3?=
 =?utf-8?B?QXFvdmw1eHhhTEJDdEVWVWYwWlEvRUtwYTRLOHNjMUxZWDdIOVhxYi9JQnlz?=
 =?utf-8?B?bllBK055Sk5EeGNWSkpReDVCd08vdkJ6aTB2enRCQ0RWTEZLZ1pabjNYMlJz?=
 =?utf-8?B?WTBmTktHY0NiS3I0bzZtSEVYTXhib2lWcVViakQvcTkwQ2VWUy9RNWNTZ2Jl?=
 =?utf-8?B?ejg3YlF6SWtJVFY0Mm5HOUFHekFZekNhTHJaSjJSVG04UUhzVGJjd0RST2ds?=
 =?utf-8?B?cGthbWVXUkJ0RW9OQ1pRNVp6MzNiWDZNTXdFZHRMSll5WHZrYVRXMXlsbmpX?=
 =?utf-8?B?eDNJVlE1ZHhJZG13Y0p2WUhnVFVzcTJoTzY4eHY2dFVqVnpGbWhkdi9ONUZ6?=
 =?utf-8?B?VVZnMWlzc3dSM3dkZnkvdWJFaktlVWVDZHdseEVxUmZxTkgwRExLTHhXNmlo?=
 =?utf-8?B?SlVUdDkwallFOG9tQWZkaHJPbW9yNVlLOE5pRFMvdlNsaEpkRHNqK2pHdlBD?=
 =?utf-8?B?QjhWOWF6K3RQZVBTYjZPbUtLRmRhTnY3Z1JieWg4YjdlSjRPdnBPRCt2MnIz?=
 =?utf-8?B?Qkg3bkFyYm85QUJnSE9jRnZtMDF3dDRhRFIxUDZoRlAwaTJMcE1tNkQzK2s0?=
 =?utf-8?B?bEhEZ3VmZ3hCWHRFK3Z0MmE5QmZtd2xRcEoyOENVeWdKRlVYdzN5bEF4SHRt?=
 =?utf-8?B?WEJ4TlpPbjNDS2ZNd0tZc0U2Q3dmL0J5UW1kZWViKzhva0NkYzhBSjVVaUZF?=
 =?utf-8?B?bGdodXQ0MFUzZlhjd0NVVGtXa0VMRUdSQlVuWU5pVkpyZkJ4dGdEdlVWTklX?=
 =?utf-8?B?cTIzSzcxZDZvSWh4aHBUOTIyck5Da01iQjBVZkRHWW9SOE10UXNJbmI1TE5L?=
 =?utf-8?B?WXY3TTF0MVNjOVFTR2FJTUl3SkR1cnIyVEVGdWJHWUpyZDNIQy9RWUdtaGNk?=
 =?utf-8?B?WjhySVVHbWQyTWdjdnBZQ0pPUmFYclFOS3NwMUoySEhlcHQyYWU4N0g2R09Y?=
 =?utf-8?B?UE1iL01RQnI4ZXRlVzFHa29Pb1A0TFZhazVtMFo2eEZNdjRXUTZXckRiWk9O?=
 =?utf-8?B?NzZkQjZyWUR3UVRZNXVoTmd4RVlFaWRvYWt2QkZ1SFNDQmdEVFQwNyttYTVW?=
 =?utf-8?Q?5G+NnLaP+3jyzzEIB8oCknAximtzXw=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB8946.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?dlVIc3BNTTBHWG8xSTVPWktoY3VUY1d1Y0pUSFFIYi9HYm1vL3drY3d4cGxl?=
 =?utf-8?B?QUtsN1RjK1Fva0c2Q1NpUWhzNU90S29XYW5IaEVGZTQ2bzgraGlpV2xmdUdO?=
 =?utf-8?B?WDBEVlE3NHMyUlRxTnhkVHhWSGV0bmljd0s4V2pxclRONlFFbU1qT2xpNWg2?=
 =?utf-8?B?eGFYQ0ZyY3lZYUtIWEhjNW96emlYcncvSERUcmpCTXBSZTRoWTU1STd4Rmdu?=
 =?utf-8?B?TU9MNy9jb3NmcnM5YzFodnZKT1hBZ1lzUWtMMStsZmY5a0oxdEM5a3A5K0hZ?=
 =?utf-8?B?aCswKzVpekhxNGJQNHpTV3R2M3dGNUNhRHJQV1paQ1JJeXpuZUpmczBrSWsv?=
 =?utf-8?B?Y2FKZnpvNVZoK1FHMkRwSEk1U1Rqd3JyUWdNL3VFVGVuaUZraW9HZm5HZEdk?=
 =?utf-8?B?TDNiS3UvNmltMUZHOExVc3pXOFI3aEhEdENCZW9mQm9KQVozT3BIcTVWaDQ1?=
 =?utf-8?B?RjZXTlluR0MxQUwzMVRuMUNWTkNURGNCV1YxSFg4V0RneXZQNk4zVW1lcFBp?=
 =?utf-8?B?clJ0T1VpTVdMQ0lNekZtN0l1bm9BcGpjSHk4SUFuaXF5R29EOURhSTFOL0sw?=
 =?utf-8?B?S3FYNXM4eG1yalFuTU1WNm1EMnlmMVBQU0IrRmpkbVZram1wU3lKZU0xcGNt?=
 =?utf-8?B?YzZMYitvdHVyc3ZwQ3NOK1YrYXV5NFpnc01lNXRhSGdLa280ZzZwUytVNUl1?=
 =?utf-8?B?bk5TbkpDaC9hOGtvZlM0M0VHR3NaN3hKaDE2eitKNGZoTm5zcElhYWZJZFBF?=
 =?utf-8?B?N3FNcWZ0SkYrK2pYQmpDZW9PTm96Y3J0VW04MXFxdW56Y0J5VWRoSnFKTWtS?=
 =?utf-8?B?WG55SW5HUHBRTFIzT0UyRm1TSlBrNW9Pc1JoWkhXdXlpS3JqcVI5dXh5UDRr?=
 =?utf-8?B?RlRtckRIZHBmYm9YNkM0bXdDN1VyNU40N2pFWnVJMmtmZnhabHJQV2NJSmE0?=
 =?utf-8?B?WjBKSnZTSDFhcng5ZFFINkM5UzVtWGVyVnJJVXBTNzJvUTVmMGhxSllMRUhm?=
 =?utf-8?B?U01QMkpPZXNjdUVhQVZSMmwyNC9NMWJoLzBLRUwyb3BjWi80R0FianVJMHVX?=
 =?utf-8?B?V1RSR3U3d2lVVFEyRkpWUERwMmJaN3MrZUdiTmpkRVlQY2tIR2tBWmJ3ZnNL?=
 =?utf-8?B?RE4rNzBvU2EwVnhtbHNYWCs3dlp2aEFZVXZFU0NhK2c3M2k4NTdwMzdScG1C?=
 =?utf-8?B?b3J6dEJ5R3p6Nm4rUTFpYjNUNjJjZzRqWVdkZlNmLzlPL0ZBS3pIa3MzaXdu?=
 =?utf-8?B?V1B6KzAxc29wUks1Q1JlLzlDeVdVMGpiK1B0YVJncFI4ZVAxak5SMDhnczQ5?=
 =?utf-8?B?MUpFT0M4ZEVTQ01jTUNLSDhodmFaa3VMUnp5QWZRRWJGb1l4cnNNRU1CV2tD?=
 =?utf-8?B?VGJpMW4xSmIxWmVPc1VYYnBUUDVqbEFFWXU0SFdmanR4MUcxSGhQaGJYRHJD?=
 =?utf-8?B?NjJMTlFlQ3ZwSlZmWkpyaHNSdmwxZCs0cmlIUVF2TGFKdGhYSWd0U2pyVjFu?=
 =?utf-8?B?a0EzWGZkREJvcnJtcHMvL0k4d0hUQy9mRkxtODZRcTFSVzBCSmY1TmNlbXdp?=
 =?utf-8?B?ZTVkclpXZDNWWnBpdm5MdU9wN3MwRlVUK0dMa0s4VWg4SnhDaklxWTRRcWVo?=
 =?utf-8?B?OFMzM2JyL211QzFkQUplR3NKUG54NjAySmJqdVI2SVgrS3VnMHFKVVYrSU9R?=
 =?utf-8?B?MkpuZnR6NHVGcjRGK0U5U2w0MG9hSG5Jc2JxS3FZT1UreThDY09NNEo1Q0VV?=
 =?utf-8?B?SHR0K3ZyTXgrbDFOSjZRd254K1JTWW8xckd2OWhTRVVvVWhMQy8wTzIveUFv?=
 =?utf-8?B?UHBJOXg2ZzR1WE1mRTlGaStXL2xpa0I2amR3ZStSa0NWNmJPb0ZaZEt4alRD?=
 =?utf-8?B?ZVA2ZDRpQ0IwNmVVbzJ0WWtDWjZYdSt4cnpvcEtEby9XVkMwTGVRbHVVeUxN?=
 =?utf-8?B?cytZU1BXaWJWcGFRS2tJbStRVDlZT1lIbFFhb21jR05PY01yQmFjdnF2Yndp?=
 =?utf-8?B?TGlJcDlQMk91TkltOU1GMkxWaHpxWGhEQnBvNnErVmIrYTZXRllzOGRBb0x1?=
 =?utf-8?B?R1J2RE9NYjE5NjcrT3BraHlRNWtyUndacGJmWDd2T0c3L09TUHRCRzdEVmc1?=
 =?utf-8?B?SXVmTkFXTTRRaUlycGZrUjRGdnQ0TE01aGl1ZXR2c3g3M2VsZVNvOHFBSms4?=
 =?utf-8?B?WEE9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <6E5F9E2A32688F488553B714C7B1EC70@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: PAVPR03MB8946.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c5fc4eb0-4ed5-4fed-5b33-08ddd4cdf773
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Aug 2025 09:45:24.1356
 (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: VMVoWHKI1yhZd6jeaP+Fo8fZuvnYwNKiLSmvMFeNMIi9uPNzhJONija5DfLPlEgeuFhGaCOOWYATxCHeZkgxGgSAmQ4dwKQATkATV9B+sSo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR03MB10162

DQoNCk9uIDI5LzA3LzIwMjUgMTA6MjIsIE9yemVsLCBNaWNoYWwgd3JvdGU6DQo+DQo+IE9uIDI4
LzA3LzIwMjUgMTk6MDcsIE9sZWtzaWkgTW9pc2llaWV2IHdyb3RlOg0KPj4gVGhpcyBjb21taXQg
aW50cm9kdWNlcyBhIG5ldyBLY29uZmlnIG9wdGlvbiwgYENPTkZJR19ET00wX0JPT1RgLCB0bw0K
Pj4gYWxsb3cgZm9yIGJ1aWxkaW5nIFhlbiB3aXRob3V0IHN1cHBvcnQgZm9yIGJvb3RpbmcgYSBy
ZWd1bGFyIGRvbWFpbiAoRG9tMCkuDQo+PiBUaGlzIGZ1bmN0aW9uYWxpdHkgaXMgcHJpbWFyaWx5
IGludGVuZGVkIGZvciB0aGUgQVJNIGFyY2hpdGVjdHVyZS4NCj4+DQpbc25pcF0NCj4+DQo+PiBJ
biBhIGJ1aWxkIGNvbmZpZ3VyZWQgZm9yIGEgZG9tMGxlc3MgZW52aXJvbm1lbnQsIHRoZSBjb2Rl
IHJlc3BvbnNpYmxlDQo+PiBmb3IgY3JlYXRpbmcgRG9tMCB3b3VsZCBiZSBjb25zaWRlcmVkICJk
ZWFkIGNvZGUiIGFzIGl0IHdvdWxkIG5ldmVyIGJlDQo+PiBleGVjdXRlZC4gQnkgdXNpbmcgdGhl
IHByZXByb2Nlc3NvciB0byByZW1vdmUgaXQgYmVmb3JlIGNvbXBpbGF0aW9uLA0KPj4gd2UgZW5z
dXJlIHRoYXQgdGhlIGZpbmFsIGV4ZWN1dGFibGUgaXMgZnJlZSBmcm9tIHRoaXMgdW5yZWFjaGFi
bGUNCj4+IGNvZGUuIFRoaXMgc2ltcGxpZmllcyBzdGF0aWMgYW5hbHlzaXMsIHJlZHVjZXMgdGhl
IGF0dGFjayBzdXJmYWNlLA0KPj4gYW5kIG1ha2VzIHRoZSBjb2RlYmFzZSBlYXNpZXIgdG8gdmVy
aWZ5LCB3aGljaCBpcyBjcml0aWNhbCBmb3INCj4+IHN5c3RlbXMgcmVxdWlyaW5nIGhpZ2ggbGV2
ZWxzIG9mIHNhZmV0eSBhbmQgc2VjdXJpdHkuDQo+Pg0KPj4gLS0tDQo+PiAgIHhlbi9hcmNoL2Fy
bS9LY29uZmlnICAgICAgICB8ICAxICsNCj4+ICAgeGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5j
IHwgIDggKysrKysrKysNCj4+ICAgeGVuL2FyY2gvYXJtL3NldHVwLmMgICAgICAgIHwgMTQgKysr
KysrKysrKy0tLS0NCj4+ICAgeGVuL2FyY2gveDg2L0tjb25maWcgICAgICAgIHwgIDEgKw0KPj4g
ICB4ZW4vY29tbW9uL0tjb25maWcgICAgICAgICAgfCAxMSArKysrKysrKysrKw0KPj4gICA1IGZp
bGVzIGNoYW5nZWQsIDMxIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pDQo+Pg0KPj4gZGlm
ZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9LY29uZmlnIGIveGVuL2FyY2gvYXJtL0tjb25maWcNCj4+
IGluZGV4IGJmNmQxY2Y4OGUuLjc0ZGE1NDQ5MjUgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vYXJjaC9h
cm0vS2NvbmZpZw0KPj4gKysrIGIveGVuL2FyY2gvYXJtL0tjb25maWcNCj4+IEBAIC0xOCw2ICsx
OCw3IEBAIGNvbmZpZyBBUk0NCj4+ICAgCXNlbGVjdCBHRU5FUklDX1VBUlRfSU5JVA0KPj4gICAJ
c2VsZWN0IEhBU19BTFRFUk5BVElWRSBpZiBIQVNfVk1BUA0KPj4gICAJc2VsZWN0IEhBU19ERVZJ
Q0VfVFJFRQ0KPj4gKwlzZWxlY3QgSEFTX0RPTTANCj4+ICAgCXNlbGVjdCBIQVNfRE9NMExFU1MN
Cj4+ICAgCXNlbGVjdCBIQVNfR1JBTlRfQ0FDSEVfRkxVU0ggaWYgR1JBTlRfVEFCTEUNCj4+ICAg
CXNlbGVjdCBIQVNfU1RBQ0tfUFJPVEVDVE9SDQo+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJt
L2RvbWFpbl9idWlsZC5jIGIveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jDQo+PiBpbmRleCBl
ZDY2OGJkNjFjLi45Yjg5OTNkZjgwIDEwMDY0NA0KPj4gLS0tIGEveGVuL2FyY2gvYXJtL2RvbWFp
bl9idWlsZC5jDQo+PiArKysgYi94ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMNCj4+IEBAIC00
MCw4ICs0MCwxMCBAQA0KPj4gICAjaW5jbHVkZSA8YXNtL2dyYW50X3RhYmxlLmg+DQo+PiAgICNp
bmNsdWRlIDx4ZW4vc2VyaWFsLmg+DQo+PiAgIA0KPj4gKyNpZmRlZiBDT05GSUdfRE9NMF9CT09U
DQo+PiAgIHN0YXRpYyB1bnNpZ25lZCBpbnQgX19pbml0ZGF0YSBvcHRfZG9tMF9tYXhfdmNwdXM7
DQo+PiAgIGludGVnZXJfcGFyYW0oImRvbTBfbWF4X3ZjcHVzIiwgb3B0X2RvbTBfbWF4X3ZjcHVz
KTsNCj4+ICsjZW5kaWYNCj4+ICAgDQo+PiAgIC8qDQo+PiAgICAqIElmIHRydWUsIHRoZSBleHRl
bmRlZCByZWdpb25zIHN1cHBvcnQgaXMgZW5hYmxlZCBmb3IgZG9tMCBhbmQNCj4+IEBAIC0xMDIs
NiArMTA0LDcgQEAgaW50IF9faW5pdCBwYXJzZV9hcmNoX2RvbTBfcGFyYW0oY29uc3QgY2hhciAq
cywgY29uc3QgY2hhciAqZSkNCj4gV2h5IGlzIHRoaXMgYW5kIG90aGVyIGRvbTAgY21kbGluZSBw
YXJzaW5nIGZ1bmN0aW9ucyBub3QgZGlzYWJsZWQ/DQo+IFdoYXQgaXMgeW91ciBtZXRob2Qgb2Yg
ZGVjaWRpbmcgd2hhdCB0byBjb21waWxlIG91dCBvciBub3Q/DQpJIGp1c3Qgd2FudGVkIHRvIGFk
ZCB0aGF0IEkgaGF2ZSBvbmx5IGd1YXJkZWQgZG9tMF9tYXhfdmNwdXMgYmVjYXVzZSBpdCANCmlz
IHVzZWQgYnkgdGhlIGNyZWF0ZV9kb20wKCkgZnVuY3Rpb24uIFRoZSBvdGhlciBwYXJhbWV0ZXJz
IGFyZSB1c2VkIGluIA0KZnVuY3Rpb25zIHRoYXQgYXJlIGFsc28gcmV1c2VkIGJ5IGRvbTBsZXNz
IGJ1aWxkcy4NCj4+ICAgICovDQo+PiAgICNkZWZpbmUgRE9NMF9GRFRfRVhUUkFfU0laRSAoMTI4
ICsgc2l6ZW9mKHN0cnVjdCBmZHRfcmVzZXJ2ZV9lbnRyeSkpDQo+PiAgIA0KPj4gKyNpZmRlZiBD
T05GSUdfRE9NMF9CT09UDQo+PiAgIHVuc2lnbmVkIGludCBfX2luaXQgZG9tMF9tYXhfdmNwdXMo
dm9pZCkNCj4+ICAgDQpbc25pcF0=


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 09:49:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 09:49:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071503.1434940 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujamK-0008Sn-5M; Wed, 06 Aug 2025 09:49:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071503.1434940; Wed, 06 Aug 2025 09:49:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujamK-0008Sg-0Z; Wed, 06 Aug 2025 09:49:48 +0000
Received: by outflank-mailman (input) for mailman id 1071503;
 Wed, 06 Aug 2025 09:49:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=i5Mu=2S=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1ujamI-0008SI-IB
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 09:49:46 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ae5ff1fd-72aa-11f0-b898-0df219b8e170;
 Wed, 06 Aug 2025 11:49:44 +0200 (CEST)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by DB9PR03MB8421.eurprd03.prod.outlook.com (2603:10a6:10:398::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.13; Wed, 6 Aug
 2025 09:49:41 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%4]) with mapi id 15.20.8989.018; Wed, 6 Aug 2025
 09:49: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>
X-Inumbo-ID: ae5ff1fd-72aa-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=vK8B5R1/5GnP4xTXvenuvpjbYutMwKhV20zD5aFl1tytDOiB1aTOsX+7MkX1O5O+Y+F/g2jQ5YBKRX/ta/wdiJ/x1HQJDq+p7kE7dG/suY3U1byCPyiZZs1kIba1D5LGw8PKlX3Kk9MBBtrGRs0bIx6jqVg598Q5bksVO70RbazrLAPrpwfUMnMLLB0IrbxVBhRg+0H+1EIoppz32regHAPcryBGEsid4jGuP1NCqNJRz06H3Pv7IbOCQuQ8AuV3kOhfZ2yNPoJ4d9ul5ypYalNpa4fr+q4IkRwPXLBTL7vKFK7AcZ0zI6HUNjWqRYkVNEWI9mnuyqKLfrBNRL7Pyw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=x/DkJcmUnfCRX1pRLKDV40YvkBUE0LdwizOENRxNnwU=;
 b=UIIC4b/sP7Szte6LnTbbdHzqK826bVVl4gIY3TbnyywyBsRBQ7pRN6MrcJxIpvBzz5djYTWxY2JX+pV369ESLy6jppyjFCIfJLTMoMKJTUho35HRgfRbHCPU0nYsetF2lODkPKVDi3BRxZ8O0CHg04IiTjnNxV6s2F4Uw2SqPLaDSs5xpz5DSdCxoIRjnJ7S6BT+sTKgGAkYjcvP6jybC8XVEDsWzkeYgAN+hY4udWdJMqx5dPRanAwr8FLP9gMox0fM7Cg6lIBNj+iGhVRJw+qmKSz/4/8c9u8JXrL4H05LQX+maBr7eEzATzNKd4W0zyTLObBV5uzHZLORwzug/g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=x/DkJcmUnfCRX1pRLKDV40YvkBUE0LdwizOENRxNnwU=;
 b=d7rxVNmpfukO81DDK+1wrUJVF+pIabhJdT7SI+thnzcsxpfJWqNlFu33MRYH08c3kABpXBtb/x+YDLMzWrQvKb7LlKgCKUt78c6cbz3obfLB8e3WXtHJFFE51WpXrPL7XNvISByJ+kN7pfYGVu/VAyAR+BiLzyyr2HJPH+cehnMSaOHArW75kH24uxmTp9Je1QaSoyZ86NUKGgEPO3NadX1IUIF+IT73Iu43/0nAUhMFqCHoSQuTGUzOhAdgm4XVLJWItWloGe+nZknM/tUKc1dsqQ/4dyNVaw97IX59FhntjmmORNI1OTn7NxkIyigjSmPwb4O3PX8n02qtYIqWHg==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Jan
 Beulich <jbeulich@suse.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>
Subject: [PATCH v2 0/4] xen/arm64: allow to make aarch32 support optional
Thread-Topic: [PATCH v2 0/4] xen/arm64: allow to make aarch32 support optional
Thread-Index: AQHcBrdu96cBfWFQe0S15iKWA0R9bg==
Date: Wed, 6 Aug 2025 09:49:41 +0000
Message-ID: <20250806094929.293658-1-grygorii_strashko@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: AS2PR03MB8907:EE_|DB9PR03MB8421:EE_
x-ms-office365-filtering-correlation-id: ae3fde9e-f313-43b8-e666-08ddd4ce90d9
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?wEt/tj3G3XlT/kHWH4cUabq0Ggp5zu/5UHFVUuqYwGZ6t6wTMQ4wokqnMY?=
 =?iso-8859-1?Q?tRwyfUTXokT733pU3VR7DIcSvlg6CvpW8c9qMJi6jZkYdEXzwJwLo/dCRX?=
 =?iso-8859-1?Q?my1l13Oyv1kkYj0Mvklf4o1+CKDDcCyb+7p6WawD1PwE6k9erQF2a6k5uo?=
 =?iso-8859-1?Q?ccbPetMhpURcBotCHg845rg9sLB76SAFTlhYh6cYWdNDSx92UBJq40voMF?=
 =?iso-8859-1?Q?f6Da91YzgIRStj4mOzo0tSzH9fjMGbtJGchBMDLpFttYtKMfIrXHV/UR4k?=
 =?iso-8859-1?Q?F/XjmhCsTP4GoQnVaAWGJaBUTZHwmYi5+Tn74nIs14OBucwC7Q3GdnP/Qj?=
 =?iso-8859-1?Q?IUrA2KiTDE37TxnJqNeAEf7FYXAYxwf6+tzYjL72G6XG+0MRqllEPeawy+?=
 =?iso-8859-1?Q?j+ZOAju+YKpPFkEmQqVZkEmwSPp+NKCOMZe3n9TG7/EO+2gFBYef+F1/JR?=
 =?iso-8859-1?Q?r79r9CUXREcfVcqBHO54VxD4CLvGLbxEZdbDa3cB427Q1iSE9UWS1taWQn?=
 =?iso-8859-1?Q?YGuWnX3My/ldFZVJDkIo5xXg8iLZCk2hmbPds9QBDRhAJfIzFW/CTV8K8X?=
 =?iso-8859-1?Q?/A4jnw8OB5qCoR5uAoiV1nEBq7dE922rhsqfuaBlwiqapUKl7MfujdF4Ss?=
 =?iso-8859-1?Q?32ejlDaNe+J6PKEJ5oj4LozP5U33RbWPAoiSiA0XHlR6JIvCP/x1hrOG6B?=
 =?iso-8859-1?Q?s0PraUHE0VQ09b1gai+d+LGdqUmMNamdzT90ULfvQK97uT/+31Ns6W9vVH?=
 =?iso-8859-1?Q?L0tZD0gD+o0wdgS3T50XBTbQgiQmei/rvDgXYNx/uk469+P+g8vkdrFOWz?=
 =?iso-8859-1?Q?j3v7b00/tJP+r2vLtd5boNggD2iqei/UtU8HIMVvy0kyRuTnwFu5vcZqZB?=
 =?iso-8859-1?Q?wUGlbAPJHUJIs4/hggt5yEDTEyMSLNrWukrcwCQdGJJIX0DYcMagC+r18a?=
 =?iso-8859-1?Q?cRBaOTC2YIRpLCpKNQx7xSIjaFDN19qYkg+VuyqGpfwkuL1K2uSS9wEIF4?=
 =?iso-8859-1?Q?VMXA1Ads4DJmhbsMoG0a5xFdwLPQoFOK9+mO0M5J3UY1YuK8Saw2E+Yxx0?=
 =?iso-8859-1?Q?Pz1KhTrhlWxZMihOT3c1NmTv0hjenTEZ+OwZmUiBHc+aynzKoft9Xk+M0c?=
 =?iso-8859-1?Q?aVBcQV6nm/LUr5LW6DBrzJ+DnJFMIpEIUeb2W0Sd3qtTKPRF8iws+DGyEq?=
 =?iso-8859-1?Q?7htRtIYDglMXZDmk7JLE/fE7Eh5UHTl8aUnRPUBBmVkhkSHkOJKM6bZFKD?=
 =?iso-8859-1?Q?DxL/y75PFosdIPjhCKHXpjdsIjzzN9ohvptoOL6veco4Y0rAmCbWUsawF1?=
 =?iso-8859-1?Q?m6gi2xCazAZvfEzqjT1ibOsDc7xq8TLF/P/t+Ny/c6LlBCtR1xrH1Fw659?=
 =?iso-8859-1?Q?MyE/Tru1xRZIg+BZOe1EcrwEwFWKMz7uSi+muVoOM+EHb9FGbeJzS/jlHd?=
 =?iso-8859-1?Q?+SXBEGeLhTtRpBU0JoYLhQxHBxQ9b3aoH/GLJJHNw8t6QUQlj9L45lGFqr?=
 =?iso-8859-1?Q?wbqje6wuiHIYNBH/UWW+7cPOpEC8PrV8aewpIRdudtjyVCXwEpzvBmufiQ?=
 =?iso-8859-1?Q?yZCZfsI=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?yqLh6GFn6GylEnbhX4Qpg3ILg+iPhEPdH/GjLw4hezvsvmoGkBy4QdH0Tm?=
 =?iso-8859-1?Q?RHvSmgP+Uh4Ik8/vR4bMpLteATuK/sgfrpQv9XsvpnkMppBmhMqr7UwmKX?=
 =?iso-8859-1?Q?fM64fqhIk1qSMEf2/723rfXmPpASV2ZJFxcT3S9Rh+qXnoD2nAdRmJJJVa?=
 =?iso-8859-1?Q?tCQ3ke1ixo/3vt35Rmzw9Lw4f5I8R12mx4yilW856+eNev8TiaNJXOEFnr?=
 =?iso-8859-1?Q?jtaFDdVbIDVsk/q3+H1CwUrv/2aWhbW6BK2K3WtPi1sHAZ2XJkjDGK8Bxh?=
 =?iso-8859-1?Q?mV6cPGDh8jOMmKMA2CdzAhX637Ua65cutOoVoayaF+cviM9PTRdk+/mlgJ?=
 =?iso-8859-1?Q?JYVx/2Ni5JaTjgjVVjGVG2+Rxvl+yMDR+xR9vdJF1ZbT0fx6XXRudDxY0G?=
 =?iso-8859-1?Q?rZeOh4tf1wFQqVnnti8ji1GRKAKf6/vN8D7rtaPss2p7mkAR+3Zrjv9KD0?=
 =?iso-8859-1?Q?bkj9zp4iKtOuNfC4Kj0nkYHWPQI5m75zT3sJC6WaZdXqip/Jyyyv8HCQuU?=
 =?iso-8859-1?Q?I3z0IZoOueQphlhBIOrCKZbrQ4S3arz0M3er1qEeHwns/xe9ACzuyTeB0E?=
 =?iso-8859-1?Q?Dmk/L0wW/PYiwZa1fXpsWX+axX4wOL9dpU9G/zwQSiP3liuZ1AHiTnOEKK?=
 =?iso-8859-1?Q?I3+b3DXsKY4dME/Bteix1yyaG3ZTrCQM1Advpyxtr8U4D9JMkZRxmr1O/6?=
 =?iso-8859-1?Q?4QkRJdPp99Zvyk7DhN4ShOsiz4UANOtLq9qUYCW/k+WzPOmUJ5N3VKNkZY?=
 =?iso-8859-1?Q?Qij1gs8GicNM0hbew5Ku5cPgInJ+LG4WcOs8gYHxdZ0K8Y/1hiofEozcjz?=
 =?iso-8859-1?Q?lfgj8cCsBJKgHsMc1KMxPuqCnjKEWj5isfwleiFxquVgCi3yLZ5HCZCMcT?=
 =?iso-8859-1?Q?W5bSTgF2r+8WYCOcu78yE5zcu4n05C/trAEYLZksRihBc0RiWYByHHc+Dg?=
 =?iso-8859-1?Q?rHJBUj9XbD3mAvuLSKJAICNcykCqJnXKed/TSQAg91d2/UyeklPBBRypBx?=
 =?iso-8859-1?Q?nPLq1n3NM3VqPPZkGyDmmrPmDCuobEzgfZTWZz5ShM9+8BdDxFQhsa6a2E?=
 =?iso-8859-1?Q?E6kHWVWqN5ilt7eI1PEMuTF/oSdkVyYyDPPrwHgChNIU5XgUMb43z5lxhT?=
 =?iso-8859-1?Q?V+cmh//badyovEe+CKn0nEAvuZbVaE82HzR8sr+lR9xXyxHgZFVdnWAW74?=
 =?iso-8859-1?Q?YPQFAb2tdvHMhUzv4bMyPIYQPdw2ZJ1p6vf9XXt/YXZ/as3pw2fD5iS3sq?=
 =?iso-8859-1?Q?rzWK+9iMQv9xU8w7X5UFVC/k6ApRyuvtjruLCryLJOUtoiQGCUm4xNS1qq?=
 =?iso-8859-1?Q?L4KDqj9GJNRISqHZdF3YpA5AO7Vf8Hk2YWP5E50TdJuT7lWAIsLwSQ+QL3?=
 =?iso-8859-1?Q?oJgUIWru3fOp1KZJ17syKwAA3hUaltpX09eK1gO48HVRGDb4+u+wRtvDTk?=
 =?iso-8859-1?Q?fCursxjvAgz3TZTSyO0g5BZdo650G5w38hpG1tw6n7EIs21bzmFv816uUF?=
 =?iso-8859-1?Q?LDapEEKQjVvu5DkrmeLev9ps9cS8zKWGDMulSODkll77eIlFwXudOqgAYC?=
 =?iso-8859-1?Q?Uy23maAOvklVl595smJrcRAS20R81QerTJ1LCslznbImpXoIYnKObXPm0V?=
 =?iso-8859-1?Q?uOVjjLBl6aWXZFagFUcvYnGvSzg82q5umyKQh07JMAOQN3bNnjEVrcoA?=
 =?iso-8859-1?Q?=3D=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: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ae3fde9e-f313-43b8-e666-08ddd4ce90d9
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Aug 2025 09:49:41.4406
 (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: 26c0S55bxFXW4hCuYd/JjRi1g2doeJSMTNBB0x/uJj+qEFl7cFCFS4PQgdxP3mHIPjndyHoPzm2k3VOTX/SabAndQuWUwrtS3Qz8hHHHL2c=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB8421

From: Grygorii Strashko <grygorii_strashko@epam.com>

Hi,

During review of v1 [1] of this series Julien Grall raised concern that=20
"If the desire is to make 32-bit domain optional on Arm64.=20
Then I think it would be better to pass the domain type when the domain is
created (IOW add an extra flags to XEN_DOMCTL_createdomain)." for which
I've sent patches attempting to start solving the problem [2] and try to
probe guest kernels before creating domains. While proposed changes [2] is
under review and hence there are definitely more work is required I'd
appreciated if current series can be considered as it's Arm specific only
and working (and tested) with current Xen in its current state.

Now Arm64 AArch32 guest support is always enabled and built-in while not
all Arm64 platforms supports AArch32 (for exmaple on Armv9A) or this
support might not be needed (Arm64 AArch32 is used quite rarely in embedded
systems). More over, when focusing on safety certification, AArch32 related
code in Xen leaves a gap in terms of coverage that cannot really be
justified in words. This leaves two options: either support it (lots of
additional testing, requirements and documents would be needed) or compile
it out.

Patches 1-2 Prerequisite patches
Patch 3 - allows to make aarch32 support optional by introducing Kconfig op=
tion
          CONFIG_ARM64_AARCH32
Patch 4 - enables build-time optimization of AArch32 specific code by redef=
ining some
          is_32/64bit_domain() macro as constants

Tested (CONFIG_ARM64_AARCH32=3Dy/n):
- dom0 with AArch32/64 kernel
- toolstack create domain with AArch32/64 kernel
- dom0less domains with AArch32/64 kernel
- creating domain with AArch64 kernel and AArch32 EL0 rootfs

Changes in v2:
- dropped patches
  - (licensing issue) "xen/arm: move vcpu_switch_to_aarch64_mode() in arch_=
vcpu_create()"
  - (problematic change) "xen/arm: move vcpu_switch_to_aarch64_mode() in ar=
m64"
  - constifying is_32/64bit_domain() macro gives most of results in terms o=
f coverage,
    drop regs changes for now (can be added latter):
    "xen/arm: regs.h split subarch definitions between arm64/arm32"
    "xen/arm64: constify regs_mode_is_32bit macro for CONFIG_ARM64_AARCH32=
=3Dn"
- use Arm64 "cpu_has_el1_32" in all places to check if HW has AArch32 suppo=
rt
- rework Arm64 XEN_DOMCTL_set_address_size hypercall handling to work with =
any initial domain type
  set (32bit or 64 bit)
- fix comments related to macro parameters evaluation issues
- do not expose EL1 AArch32 support to guest in ID_AA64PFR0_EL1 reg if
  AArch32 is disabled

Link on v1:
[1] https://lore.kernel.org/xen-devel/20250723075835.3993182-1-grygorii_str=
ashko@epam.com/

[2] https://patchwork.kernel.org/project/xen-devel/cover/20250731094234.996=
684-1-grygorii_strashko@epam.com/

Grygorii Strashko (4):
  xen/arm: split set_domain_type() between arm64/arm32
  xen/arm: split is_32bit/64bit_domain() between arm64/arm32
  xen/arm64: allow to make aarch32 support optional
  xen/arm64: constify is_32/64bit_domain() macro for
    CONFIG_ARM64_AARCH32=3Dn

 xen/arch/arm/Kconfig                    |  7 +++
 xen/arch/arm/arm32/Makefile             |  1 +
 xen/arch/arm/arm32/domain-build.c       | 22 +++++++++
 xen/arch/arm/arm64/Makefile             |  1 +
 xen/arch/arm/arm64/domain-build.c       | 66 +++++++++++++++++++++++++
 xen/arch/arm/arm64/domctl.c             | 16 +++---
 xen/arch/arm/arm64/vsysreg.c            |  9 ++++
 xen/arch/arm/dom0less-build.c           | 14 ------
 xen/arch/arm/domain.c                   |  9 ++++
 xen/arch/arm/domain_build.c             | 21 ++------
 xen/arch/arm/include/asm/arm32/domain.h | 32 ++++++++++++
 xen/arch/arm/include/asm/arm64/domain.h | 54 ++++++++++++++++++++
 xen/arch/arm/include/asm/domain.h       |  7 ++-
 xen/arch/arm/setup.c                    |  2 +-
 xen/include/xen/dom0less-build.h        |  8 +++
 15 files changed, 227 insertions(+), 42 deletions(-)
 create mode 100644 xen/arch/arm/arm32/domain-build.c
 create mode 100644 xen/arch/arm/arm64/domain-build.c
 create mode 100644 xen/arch/arm/include/asm/arm32/domain.h
 create mode 100644 xen/arch/arm/include/asm/arm64/domain.h

--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 09:49:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 09:49:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071505.1434952 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujamK-0000DM-QR; Wed, 06 Aug 2025 09:49:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071505.1434952; Wed, 06 Aug 2025 09:49:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujamK-0000Bh-Js; Wed, 06 Aug 2025 09:49:48 +0000
Received: by outflank-mailman (input) for mailman id 1071505;
 Wed, 06 Aug 2025 09:49:47 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=i5Mu=2S=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1ujamJ-0008SJ-D3
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 09:49:47 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id af7dc29b-72aa-11f0-a322-13f23c93f187;
 Wed, 06 Aug 2025 11:49:46 +0200 (CEST)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by DU4PR03MB10887.eurprd03.prod.outlook.com (2603:10a6:10:592::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.14; Wed, 6 Aug
 2025 09:49:43 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%4]) with mapi id 15.20.8989.018; Wed, 6 Aug 2025
 09:49: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>
X-Inumbo-ID: af7dc29b-72aa-11f0-a322-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UB3py3/6pYteWacxEyPqfEeAzvX9+wMAJ84x2yHofa331tpRfmaP6Ji9ZwruLAwnjGLPnkO9R9oI9LJiBAjPACAuK6IT+swqWwFZjPOzLut0AqSIIBK5nKvu4hhWqwme9TVdk0Lh5QQdeZILkvMW6F0F6rmqBL9AxSBkXQB8bCDG1mTG1WYQRGsB8RMFflvTjJO70Btj4cgJlZYq2TpwUMYMBdSWws0FZ43Hb7FDTAu/ACwEKE4Nd5IDjphDv4X3VjYB83UAYlNyYDyA4rSCaHzozQ4iG4RgfCeUt7fIaBFeBoTSLMJBMMI11GGJTvh35ers3nBQVhKGJ/wReExiew==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=maCQNRAr+aVhMoLtetRBiAFVXGNI9y893mojMXhQf/s=;
 b=EnMHtPBU43wZ0ERUwkYHK0cmSrgNemZ8NfvmzNyBfCU68fXyTu6jGRfDsUcocqswfc4eLQVn7dM/Yjb1Z9eJpaaMHNrlWYvtJriBr6NpcXjp1woXXvCRHLG/zGJwZm3QA/rnBTRLIF+ZHVhu4PY4MTTj2oW3Cu7eSoPyHKI9A9rU4ab3TElY5prpq6kEkAqlZyx1bGqOX84Lhb6hd2IR9sJYYLyZB266lRDRV8J2+G4lelxZ9hhVOURGm/tZOx6OlGH3SiG7mEM4Wn9lkfGgDvDyCmv/Z+ZtNg7Nw7HQ2otwR4V4KUCa5Gfhocf0O+gFGFWpMXrvplt/BrHn4UnriQ==
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=maCQNRAr+aVhMoLtetRBiAFVXGNI9y893mojMXhQf/s=;
 b=G4OFy5yOHx4MbgV8McSG11hptacPeXuTvsyw8H9GELWht2mmMkNdT+SOBQtiJqVM1JZOg4ONd8IhWo392ezMnHEAspi/VHfs7h6krrOmgCUFO9u5JrNYWGH6+oAlx+kUj10y5vzdDFS0f+9pX5gY0/85EQgER+fHx++8js6Y309V2lx3XcY2//BYuvGTfceZbkwsnfglLQezvH6c0kLqDNfTCKruGncuF3eOsGXhShuHKc93BaXKPyI3A0kK/Ij2NEHIH8HRFY/qEFuTWu88CT9qBJWXt0l43A15C3GtFOjIZ8JXMxTNQVAQpDXSDoxQMgWVT+8yZuUY8XmmKr3NJQ==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@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 v2 2/4] xen/arm: split is_32bit/64bit_domain() between
 arm64/arm32
Thread-Topic: [PATCH v2 2/4] xen/arm: split is_32bit/64bit_domain() between
 arm64/arm32
Thread-Index: AQHcBrdv2s0zI2oDRk+In2fNZ0HqKA==
Date: Wed, 6 Aug 2025 09:49:42 +0000
Message-ID: <20250806094929.293658-3-grygorii_strashko@epam.com>
References: <20250806094929.293658-1-grygorii_strashko@epam.com>
In-Reply-To: <20250806094929.293658-1-grygorii_strashko@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: AS2PR03MB8907:EE_|DU4PR03MB10887:EE_
x-ms-office365-filtering-correlation-id: f019145d-935e-446f-2356-08ddd4ce9230
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?7ZV7A4pWhF0bZe8LQt+TcJcSr+Wqu+TfvKTOykh23jTIZ1lEfNn/s6BQwp?=
 =?iso-8859-1?Q?2rNvBEMOOrAfcQoSpuJJCz3gJuA8/wqnBAzQd2lCR5AuNTASkBm10XYYsj?=
 =?iso-8859-1?Q?aalW188cTwi6i2Y7LuZBRQLAL1qDAs/gka8ZRy3aszIqfVmFBlcGdYPT6e?=
 =?iso-8859-1?Q?aX4ZdX9x7E3fiUyKKg+m9cnI7Jhs0UR/0Np960niAoArSdxoKa6j8I0dgF?=
 =?iso-8859-1?Q?PKpskkDUh64VstqpgO3aL4twR9xc6i+EDUX/JDFMo7w2p0j5wCleLxQsbi?=
 =?iso-8859-1?Q?Z+Ic1qCNuM3gWBriLcnQ6D0b+SiMYUAC0eP//AZQEfsV8QKuvuCp0KLNs3?=
 =?iso-8859-1?Q?1hoFr4+yIbPdxdEWTPB3LObaDYsNWC91pvCVWHgTz25HTK2QE9vcZFNUEy?=
 =?iso-8859-1?Q?cSIyIXaCHnReNeiwbu8QnYfldKSZa8xdycwDIR3wM7Cvnhucf41RBCutZP?=
 =?iso-8859-1?Q?i+arSGAF9dMC5En2zfweT3At8heAOK3F1KJDOuMTAOyvOZFp2ybeV/b5sH?=
 =?iso-8859-1?Q?AuUJHkQSlRax/fd2EQ7QjdA7FCXZvTXd8NgfCIDK0YYd1e7V+nEMsKOPDT?=
 =?iso-8859-1?Q?p+gpUJB5XfY/fzYWOILn4fas0NTN5nUCbB30jviWc+N5dDUpCBarF6ciuX?=
 =?iso-8859-1?Q?wVTPS3K5Lau/qBt+etJZCFnM98dU+TVt2ZfqMZDEzaBTk4Y8B4QGb3VGaV?=
 =?iso-8859-1?Q?kt7rpoKzJxjVVO4awd6BDd7iqar8djdtL+V3wZtMv1km1a3L0VrI8tdRIH?=
 =?iso-8859-1?Q?0gPCksWq0czUbWbWmgSy8CIlll0ojpz/CXBurYMCmpn+oDwL8LdjzU6muH?=
 =?iso-8859-1?Q?DhNAlZvaQiGjEcFfMxD1vlC4nJJyULOZY3oZuyN3TjlBZIKnLDt2+BXZ28?=
 =?iso-8859-1?Q?l5n2craem/deEQ4V+rcMsKEfnqUG0TMGJEIWSKddVIKGX4EOD/vMWgKhy8?=
 =?iso-8859-1?Q?xJKwfjQ/Osq7ds0ClZOujFjeavzg6ajNWCKC/kFJRvplHnTS5v/QVq9aG9?=
 =?iso-8859-1?Q?H5QCPre4Q4dKYPv1X+YWAi8ehKZFlE7fe2USIPfkTr9xhXiX0n57VzT7ar?=
 =?iso-8859-1?Q?/cSMr5o91zikEFZ0Xouz3DtHEg1C1F129vl0CJqVvF+b+cJPkvw0T1f8Y3?=
 =?iso-8859-1?Q?3R+4MroEgAxminp+l7adtrxnUXrw0IpFKwwf5L7pvcmCxwVNONvlf9lhc1?=
 =?iso-8859-1?Q?a+GGZw6dfC38vSdZ1vVrYBmneh4EUfbd+x9+HOiYGasczmuxHvnB3g32Qs?=
 =?iso-8859-1?Q?GJJaEo6da77om6cwZOAs4E3ml89tYj4WTHY2DBs/fDgGsGP+MiG2jkYymO?=
 =?iso-8859-1?Q?DkQeCNIt4JNpILAtBCtO4KJL1C5umATkoDHHENwEUKkeD348pxJ1j1hj2Z?=
 =?iso-8859-1?Q?OXiSML2cGWlQbMIo2fzDDlVnyduIFCM6lyWLnBVfCYSi+/aX/Bq19mBiuL?=
 =?iso-8859-1?Q?eMQpD/aQjUw0BhvgFvEIQ3YgnRT9+4wk5Mp5j9E2thvMb3Dc7IWfBMpqwu?=
 =?iso-8859-1?Q?fyA834lQs5vY1iB0ovewBXW7T9nQvc1KKeretTXEq7qg=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?5krd/1M7RozE7Pg6JQE+0bcxSFXCKbGCeIBI6xkFj4PwuF7bKqXQRbPzSW?=
 =?iso-8859-1?Q?MRrGUpUsM/R7uzxQwtw7PGDN2nbs2mXr4nqNmu1AAtn8tmuOEbEL8eVROK?=
 =?iso-8859-1?Q?tZ2t8vpu8EMmB1AArNFe4PHir1Y7TuOulyjQI8y2ZHUcoMOGgwDIgC+mDR?=
 =?iso-8859-1?Q?sakff/GqOmO36pg7dUikphL7hT/U6noUkU8msCqMAMDms3q44m/69JXxF6?=
 =?iso-8859-1?Q?ZuyEYwhfz1iQDI4sRSm9ZHZZtcDOHebhAQn9F8j4K2j+032TxMch/SyBRU?=
 =?iso-8859-1?Q?mYTu2B7aHftMqB8aTaitdefzjn2z3oEHVfcpbnCF/hScj3Kp/YiwQVZRqo?=
 =?iso-8859-1?Q?M12/6gqHHnw5jn9rc6XJ31rNnKjrwJmDsk7GaFyTEaXSej6iScm0p07avq?=
 =?iso-8859-1?Q?B3zLHwlthmMDJxUCNhAGFRXpIzBQWERCbNo1+7b6X330M6OM1YZnh/kOWH?=
 =?iso-8859-1?Q?EwAAmo+pvad4ny0ktUvloypwYXbZjZYGFcBQD9B6+4ogkzuH9pf+ZE5IQ9?=
 =?iso-8859-1?Q?7G81lQgzb/QzokdCava8QfwAfAf8QdM/HEbwQqcrkZJlIQarkreQ18krnW?=
 =?iso-8859-1?Q?lA7UO93keLUm2NjuaM/8t2yelFkXlifGRIIj9KantPKbvd40hlfr+ltOHb?=
 =?iso-8859-1?Q?NLXUsmnsu6JN3COIBALPUZCKionQWFsPe5/syB6e2YQ+keT7jCUZeXBvS0?=
 =?iso-8859-1?Q?uerbYocbDN99/hJ7K2hwGcRzM+RqnNzH4+vlfB9d5cIdbkfAANjT1Rdywy?=
 =?iso-8859-1?Q?ZYnc7VhBkdSpX6En72kL0Xi9mFdUdKYCrnRpTCRkaPAKpPruQzjy/G6dXv?=
 =?iso-8859-1?Q?diTEFMu2ATkAsNvxW9eVR7QKjMEgwvjmPackdfVmQZJ0l5ULBZDQoT/pCM?=
 =?iso-8859-1?Q?YrbX4QbxFYKp987hi2mYHJj2oCeEodvoXyyMuHa8AP/HAEinA8JpW1xvZY?=
 =?iso-8859-1?Q?u/JeVlHlFqv0wjB+AD7vLf5d+mF/bSbHvE7Kp5aCUf0WXhvcxO5O/chOIp?=
 =?iso-8859-1?Q?6PUVTrxIJ3IbISr69GOcBNPmgSYvJbPUnovjY2sl0Sox1+gCeOFWHnYUbW?=
 =?iso-8859-1?Q?s0vxS+LwwO1sGnMMqBURXUx4xhTIUwVrOgNKMSclhZ+Kju6akn/sysnpn3?=
 =?iso-8859-1?Q?SjaYa61joqUl6ehS9gD8XjtyA14zuuIHCtohqHwfC6MKFkvAzt7G0flCBa?=
 =?iso-8859-1?Q?5XLHuTkr50IBpuMwzd+qYd8JbcLehPLoHEdnhKbcQpHan3oxgD5oMJi0QO?=
 =?iso-8859-1?Q?mFRyPPydJDLj631NaS33hqK4H8B3/XeDPOgourLNfc8jXH3/NBLo5PR0xe?=
 =?iso-8859-1?Q?73si2m+35+U8pSNhOcmGRaz+5Ps+LCliG0v1HLaZ8WSER2SGbZbNNEk4E0?=
 =?iso-8859-1?Q?6Kknk25qMvNplbeCIIbkq8Xl0TaSrltNdkcvxiZ0WW2rfUro39cC8aDBQs?=
 =?iso-8859-1?Q?GMxR285wYo+RO4O0FCZuWtFxVn0KMrRJvv8PouTq848fkk7R54hDJIaeoV?=
 =?iso-8859-1?Q?YeO7eiWtmlPVU4c54CVwJYrsn6vQo1hpypzyj1QVhIkr4H64DhsYfwyezV?=
 =?iso-8859-1?Q?/IiLToEe7QPxB8Aw/q7+9HM2L2zaydSXJnAoh4pQkOU8WZrwKFKh4BJD1T?=
 =?iso-8859-1?Q?/jOszp0bmt6PsNkOZQfXifE+QA9NKXVjjromFwWMLEXsCd84LZiFOqtA?=
 =?iso-8859-1?Q?=3D=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: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f019145d-935e-446f-2356-08ddd4ce9230
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Aug 2025 09:49:42.6498
 (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: Tms3Q2PwycUcYmsiQC23Gay6DWCqfl/ZjqL/hgyVrLqg2e3lrYCzWsk2zgpqpLplDuhUxguEc7Cq/Nm7XYgwNxgUs0EuOOsObr2Q+pqENCw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR03MB10887

From: Grygorii Strashko <grygorii_strashko@epam.com>

Split is_32bit/64bit_domain() macro implementations between arm64/arm32.

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
---
v2:
- fix comments related to macro parameters evaluation issues

 xen/arch/arm/include/asm/arm32/domain.h | 20 +++++++++++++++++
 xen/arch/arm/include/asm/arm64/domain.h | 29 +++++++++++++++++++++++++
 xen/arch/arm/include/asm/domain.h       |  7 +++---
 3 files changed, 52 insertions(+), 4 deletions(-)
 create mode 100644 xen/arch/arm/include/asm/arm32/domain.h
 create mode 100644 xen/arch/arm/include/asm/arm64/domain.h

diff --git a/xen/arch/arm/include/asm/arm32/domain.h b/xen/arch/arm/include=
/asm/arm32/domain.h
new file mode 100644
index 000000000000..1bd0735c9194
--- /dev/null
+++ b/xen/arch/arm/include/asm/arm32/domain.h
@@ -0,0 +1,20 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef ARM_ARM32_DOMAIN_H
+#define ARM_ARM32_DOMAIN_H
+
+/* Arm32 always runs guests in AArch32 mode */
+
+#define is_32bit_domain(d) ((void)(d), 1)
+#define is_64bit_domain(d) ((void)(d), 0)
+
+#endif /* ARM_ARM32_DOMAIN_H */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/arch/arm/include/asm/arm64/domain.h b/xen/arch/arm/include=
/asm/arm64/domain.h
new file mode 100644
index 000000000000..1a2d73950bf0
--- /dev/null
+++ b/xen/arch/arm/include/asm/arm64/domain.h
@@ -0,0 +1,29 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef ARM_ARM64_DOMAIN_H
+#define ARM_ARM64_DOMAIN_H
+
+/*
+ * Returns true if guest execution state is AArch32
+ *
+ * @d: pointer to the domain structure
+ */
+#define is_32bit_domain(d) ((d)->arch.type =3D=3D DOMAIN_32BIT)
+
+/*
+ * Returns true if guest execution state is AArch64
+ *
+ * @d: pointer to the domain structure
+ */
+#define is_64bit_domain(d) ((d)->arch.type =3D=3D DOMAIN_64BIT)
+
+#endif /* ARM_ARM64_DOMAIN_H */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/d=
omain.h
index a3487ca71303..dde48178b857 100644
--- a/xen/arch/arm/include/asm/domain.h
+++ b/xen/arch/arm/include/asm/domain.h
@@ -22,11 +22,10 @@ enum domain_type {
     DOMAIN_32BIT,
     DOMAIN_64BIT,
 };
-#define is_32bit_domain(d) ((d)->arch.type =3D=3D DOMAIN_32BIT)
-#define is_64bit_domain(d) ((d)->arch.type =3D=3D DOMAIN_64BIT)
+
+# include <asm/arm64/domain.h>
 #else
-#define is_32bit_domain(d) (1)
-#define is_64bit_domain(d) (0)
+# include <asm/arm32/domain.h>
 #endif
=20
 /*
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 09:49:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 09:49:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071504.1434944 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujamK-0008Vv-BH; Wed, 06 Aug 2025 09:49:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071504.1434944; Wed, 06 Aug 2025 09:49:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujamK-0008Uz-79; Wed, 06 Aug 2025 09:49:48 +0000
Received: by outflank-mailman (input) for mailman id 1071504;
 Wed, 06 Aug 2025 09:49:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=i5Mu=2S=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1ujamI-0008SJ-NJ
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 09:49:46 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id af0ca014-72aa-11f0-a322-13f23c93f187;
 Wed, 06 Aug 2025 11:49:45 +0200 (CEST)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by DU4PR03MB10887.eurprd03.prod.outlook.com (2603:10a6:10:592::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.14; Wed, 6 Aug
 2025 09:49:42 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%4]) with mapi id 15.20.8989.018; Wed, 6 Aug 2025
 09:49: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>
X-Inumbo-ID: af0ca014-72aa-11f0-a322-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=crcnI+vyYCuIgLcUmhzu36L+Ho6rL7ulNzCnqmdAYqkqi/nUn3KlYeJtM4heoyDxLH4DrSVa1x4VZXifTUDALVj5dSpHeESDF+JQRp1NdlWW+F0H8VOQwH6hJgq+Yek6VpX96AQmryW58VKvlWTjB0019hhfne0du57eRST6WsK/RvxbYk44nWxaa3jvEzHPGQBnGfX4Hw6rbgJZqPbsuIDYTKAhqDTMNqPyX7TIX2pcALoZ10utWmWO3ywWSb/jWtZMpPg5+d5KGL1v44dlnMJtyO/Qndld6X8YE2NzM4sBqbzSwxXkIYRRR6TR3+pMsPnXLNB1eF0QoKrrdkpuLw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cWgOWIGwwlEK1rienNamvg8o+Odup/Jed2VETWL/gYc=;
 b=mAEPEZxZMyNhV9QSX4g6mLxtM+Nwo0FXLABcFnggFFV4IdRWsPQTsSPSEQnVYPaav0Sja4QAXS602qq0bIn4llVk1WFwiZHSBECgkawjtPknJuGaZbS/1+jT2vaNp9qFIXGrO2cO78Yd7WzqCutkdAn10JBa7ZIpLsHX+HumawXbZJgTQCZnZsQSsZhCQTxG9zZh1tWN8O3ziveZAmrqnF0WgSZ2Jsk+cfX/CXDqlPeg7AWEXc1Uah1cW/r8tMc2lq8jCoHxgCH/7/RWASiUg4cgGNIDpyYM8MQWpIK8C17FH/A8BXtdMN9pbFXFy1BneIZF1L5MvgAJIXqnVBh9Mw==
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=cWgOWIGwwlEK1rienNamvg8o+Odup/Jed2VETWL/gYc=;
 b=suPlC96YjeELTxUSPqTyA4ilnhQ0L100swSyecQOFEbUnYIFIkRas6jRioBNiX2vxUlmbbgA5li9YXoi88Msbuh1SkLSNAJszin4ijoW0sn6GB+tgOvQff0+sqAXIlqqythevW7ucEoBf1YU6I5kR/9QbyPPt5JNn7/Amc723tawkycEsQajFJtqNj6ySeOoG8Tih6B5HPc266V7CtAkfxIVzU23bN/2iqneHwBr2v9A3L73aJ7HRe2kVGd94S7NP0NJebFjUJgGFzReu2X8GhEUXcwSleZnwe9BbBIexQGI8YHhEq6T9O0xDMK4GFUF4gCgTOjqpji6pv/dY2FC3g==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Jan
 Beulich <jbeulich@suse.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>
Subject: [PATCH v2 1/4] xen/arm: split set_domain_type() between arm64/arm32
Thread-Topic: [PATCH v2 1/4] xen/arm: split set_domain_type() between
 arm64/arm32
Thread-Index: AQHcBrduWwboiDUHCUaharDCT/0ywA==
Date: Wed, 6 Aug 2025 09:49:42 +0000
Message-ID: <20250806094929.293658-2-grygorii_strashko@epam.com>
References: <20250806094929.293658-1-grygorii_strashko@epam.com>
In-Reply-To: <20250806094929.293658-1-grygorii_strashko@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: AS2PR03MB8907:EE_|DU4PR03MB10887:EE_
x-ms-office365-filtering-correlation-id: fbadd1ef-f5f1-47a7-4e77-08ddd4ce914c
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?S722Smkpu9CHhEnh/NvuuKv6At8Gi/b6/0koZNTT7q5nSLP6dIZ7Yy3YPR?=
 =?iso-8859-1?Q?VCu9OwZNKD3VF145+NTD89TyQtpYkQAm9LXvm5quNNcrQugyIyUs8bsN+W?=
 =?iso-8859-1?Q?hF5kbOpjncJpgFodEN//aBNkhdMBOLDyrw55V4dWHRBCEAMSa5PWcWcHGv?=
 =?iso-8859-1?Q?OqA+f0mz07h7FHbj7XdE9a1gIAGQ3z70LL7KHK+KS45rVfQMyu9ry/yLI5?=
 =?iso-8859-1?Q?k5oUBY7fP8P6Ab3LEbi5Is7324hFJGUYd84dlATNSjwIEpzKURyV1o1vV4?=
 =?iso-8859-1?Q?eInTkOpVet6Sc8yip2TznVe6RoLmusmZvXFEfSY7XwtJev8Ln0OT1AhLt3?=
 =?iso-8859-1?Q?f6wt4FZ7gOvmGRTZSeiOSlyF4yA+ZZ1kevxfMgqxXkMtjxfw6dtQeeCKve?=
 =?iso-8859-1?Q?woE9MW4YVOjCrEP5vl4RgUwCqnsz9wXjBwdCI88j71a37Z3duw0DmzuhtQ?=
 =?iso-8859-1?Q?2NEpI0qC9RCXyUNW62Xu8TpI6OpbapzhBX6+s9g25nTj5gW7kj3sAfFTBg?=
 =?iso-8859-1?Q?FNv79SkcVhTJmLUw69hx314c+yba2zv1rORT2HaBZS0cEEx1VLrq5pvtu5?=
 =?iso-8859-1?Q?db1yLZU+R+V9BnAoVn6hviwresho1zYvRuf+0U8ewVH3Rk5tQarbifVfVT?=
 =?iso-8859-1?Q?jV1QW3ELesIVR1bT0QEEPiKKCj5seyZn3EWd4vKxsVBq3uRvdB5M70lxxR?=
 =?iso-8859-1?Q?IwWUiUHdPMiW5qDzaRpEXZn0HftAZokk42dP1ve2kZ5wSFEu2WlrFpO3br?=
 =?iso-8859-1?Q?AYQP7iadIpAffAjTIvQIWk8e/sD6mtj7PObDIMp3qALI+MOcy5EvAsY5//?=
 =?iso-8859-1?Q?s3Fg33MBKD63MQdg28BDm4zK4w5BtP9HfvZpuPG9GBmoZyZ7bJ6oZFGgOH?=
 =?iso-8859-1?Q?zIdeAAakBi2FfYw0836DbxNOJfy0lr1PQ1dMHs56aoToPNsZLYqccJlZSz?=
 =?iso-8859-1?Q?5YRg2c0WBVv9G1NpUGpqDewqXtRfOA0wh7g+n/Rf+slp1YTAcXmNto7153?=
 =?iso-8859-1?Q?9LxEecB9dHHfVXmlYav191gIUyZ5/BxWXIzotapzVQODJh4Q7MOaNQ8VJu?=
 =?iso-8859-1?Q?Ezwg6KvPLHidDm+nnWdq4rKzhCVnEOZy8IzmGWsYpNg7O22CDGkWJVcfLZ?=
 =?iso-8859-1?Q?yK3CqwCcGvlGt8tRcgjqcku5fWJfSbiYMP2/EDk2OGF19TRtbCYMoxNQ57?=
 =?iso-8859-1?Q?NdrgA1ziGv+JHO1jW++Qr6P3+T6kumyzVUpH+EzaWqdBftvOSE9adnghHS?=
 =?iso-8859-1?Q?Jx23X57jeyzHZAU3qGUr/o3V9dGP9Mb+xKZ7+3ZkLyElpKpivsDmmwlUt8?=
 =?iso-8859-1?Q?UQZTA2gQzoTrB9RgI83DKuHLV1pee0gHN9bL1soKuEs7t7Lrp7QOTcg5Xn?=
 =?iso-8859-1?Q?xsXcZikHKmI1C4Gq5WWKXhMVtaktrckwVCxuOz2NQQe1slzTgs0N9J2409?=
 =?iso-8859-1?Q?FhERhKvp7YM5fH946EqjI68gLCOQKv88ixo+OtFFh/Hn4865XkPESkwmrn?=
 =?iso-8859-1?Q?2ygXtv7moVEQg5neYNjfCOvp9DKYHt18ox23ll5SF9HA=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?JfLHJ3b+3ZH1hgRK8vb/vUeOO/BWUNQ+7I/7XLhZrOCGz3c1QMp2r/XYuz?=
 =?iso-8859-1?Q?IR0jeqZKn5l+xY8/oUbHpY/99ZEE5/7ukvg/gAMUCJ0N96fNTzYpdQWbMN?=
 =?iso-8859-1?Q?YoKoQVrFnCXGSN+WREQEDZYERxbrSMgqpbHqFwAwc9DGQC98g4aZPihu4u?=
 =?iso-8859-1?Q?6rGt3LEbQd7w6W/486KU/BFUTHjusK1hm0I+HpuNQt3Oo+h7FK3ov8wftS?=
 =?iso-8859-1?Q?xtKVZJepV8o9CAjizFYRdonc01fheVp694/mSmaKMrkl0roXWu/Yn863pK?=
 =?iso-8859-1?Q?3w7tgCrXbb+S3gOoiQYgzkXWT70Ny6msGNv+S5mVJKTl+rh1VIL0MbqAfi?=
 =?iso-8859-1?Q?luFej3AE0i8rsq1e7Z7PZMXF4WPOu5GVHjrOJ+9ecTyrjpc8i6V9Ilxxqc?=
 =?iso-8859-1?Q?KtRE2Oy3bXHjhO6OK9PTtm+t5pPV/ERdqVb51x5DuTAi336RrSB3vhykPq?=
 =?iso-8859-1?Q?DKDdAfpUuXdbjQUseSqSQKrujrQqee4ov98L7SAm10q9wkm3NRQ3w0FujC?=
 =?iso-8859-1?Q?E6/OMqwwjTkisQfsVrfWPcGgOYAX3CWP4+EFDjRNfYMrgQhwYEGPkyAx1K?=
 =?iso-8859-1?Q?+dMZLZ4oTcgR4nJ2jxu6IKBXogcgbiebaAjjDKT/b+ORvUyg0cBIaRiRe/?=
 =?iso-8859-1?Q?rwNJmmphhS/qyfXx6vodN9iZuu+H0rL5FpcUJMjp4pwUUGu/NxCGj/M/KZ?=
 =?iso-8859-1?Q?3rvvAfQ9gwyt3+S8ZOF339MrWpOjjllsdGRvJqQme1obCBYuBfK0iXic2t?=
 =?iso-8859-1?Q?jFHdPXTE3hsbHEsnxq4CreI+N6+Y/IWxsXN7amwwSDW2gi6Ai4G20y6AlZ?=
 =?iso-8859-1?Q?BD12GDM8IiA1s2Eeziywce4Z9qQk+ylq87qcL7bWzxOUmJa0jDxA4fIRVz?=
 =?iso-8859-1?Q?yo0VyReuUSBM1vSl2Ae3hn8XWTHSawaRQWcxsdbz5nr/jFOE/Q9khl7Emw?=
 =?iso-8859-1?Q?muI94wx5rkJKg9KInKllwugZnPme3SSts9rEDv6l2GF/FJ3HvYcOM7fmH1?=
 =?iso-8859-1?Q?hPHXCh1EM90KiFkxsKYj3IYKRHJ6WXTKIkCu0tdGltD2jdx/iJ273k9ZUS?=
 =?iso-8859-1?Q?hNGjzmOOfJRYn6+NQPgEO2TKt1sszS9nVsTEBqxb5CqGRFKSYVnUZ+gTOz?=
 =?iso-8859-1?Q?S4T6eoa+9zJOUwBsnJPI+5RRfmrbn31LiGbUwqF1Cod0iutGFb1V1RVwG5?=
 =?iso-8859-1?Q?aPPI1wvperhudkHXC67e1mmFs7tcuzm0XfuLOm6yW5h0AwmfbdNaqJ2OEj?=
 =?iso-8859-1?Q?BZNwpetsj5YUiBgIsE2Sz24O9C9wP4tKrJXKzkbYb3z5WS6lKX/0LgpbNt?=
 =?iso-8859-1?Q?yjBELv0U2T6PnfS//+NhvIVrJCGGPEb8BYza1D0UlAnrHIam+OetYtnJUh?=
 =?iso-8859-1?Q?SK22DSfI8dsNfjw+jtU/3C81eKIUpuyPIG3MXWUtq1jp5QzM8eDj9snBG7?=
 =?iso-8859-1?Q?zY1jHvyb2Gn7qvbzFw5o5DeHF38bdyDOsaAZAprF7Xffpvtx3qlOE9KumQ?=
 =?iso-8859-1?Q?wsDoKHE0oLRjCSGsg08c8Y2xv1S/gX0TbxgDgVy7X4s2pXv3w21LfgZN6d?=
 =?iso-8859-1?Q?y5f9sC2LfNeSkTZOM/cWWaQIzYuAlEQeuJWJ2+Iuk7vH9XILh8WZWpwScy?=
 =?iso-8859-1?Q?FeqAp61W2OFHKfWjfN7iGIhuVts6+H23AVUg7IN3XfA+t9jYhNHep3hg?=
 =?iso-8859-1?Q?=3D=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: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fbadd1ef-f5f1-47a7-4e77-08ddd4ce914c
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Aug 2025 09:49:42.1969
 (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: MGnwP5F88CBAS6Z972ZECAd0wwzPAYVtJJk03tW0FozdTxCOcFkSOyo2HoU1sYehytsJOZVJBrkCpNri65Vl4ldYCSJd5X0vaHixnyh2FXk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR03MB10887

From: Grygorii Strashko <grygorii_strashko@epam.com>

Split set_domain_type() between Arm64/Arm32 sub-arches as
set_domain_type() implementation is going to be extended for Arm64.

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
---
v2:
- no changes, rebase

 xen/arch/arm/arm32/Makefile       |  1 +
 xen/arch/arm/arm32/domain-build.c | 22 ++++++++++++++++++++++
 xen/arch/arm/arm64/Makefile       |  1 +
 xen/arch/arm/arm64/domain-build.c | 24 ++++++++++++++++++++++++
 xen/arch/arm/dom0less-build.c     | 14 --------------
 xen/include/xen/dom0less-build.h  |  8 ++++++++
 6 files changed, 56 insertions(+), 14 deletions(-)
 create mode 100644 xen/arch/arm/arm32/domain-build.c
 create mode 100644 xen/arch/arm/arm64/domain-build.c

diff --git a/xen/arch/arm/arm32/Makefile b/xen/arch/arm/arm32/Makefile
index 531168f58a0a..0fd3f5272361 100644
--- a/xen/arch/arm/arm32/Makefile
+++ b/xen/arch/arm/arm32/Makefile
@@ -6,6 +6,7 @@ obj-y +=3D cache.o
 obj-$(CONFIG_EARLY_PRINTK) +=3D debug.o
 obj-y +=3D domctl.o
 obj-y +=3D domain.o
+obj-y +=3D domain-build.o
 obj-y +=3D entry.o
 obj-y +=3D head.o
 obj-y +=3D insn.o
diff --git a/xen/arch/arm/arm32/domain-build.c b/xen/arch/arm/arm32/domain-=
build.c
new file mode 100644
index 000000000000..e34261e4a2ad
--- /dev/null
+++ b/xen/arch/arm/arm32/domain-build.c
@@ -0,0 +1,22 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/fdt-kernel.h>
+#include <xen/sched.h>
+
+#include <asm/domain.h>
+
+#ifdef CONFIG_DOM0LESS_BOOT
+void __init set_domain_type(struct domain *d, struct kernel_info *kinfo)
+{
+    /* Nothing to do */
+}
+#endif
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/arch/arm/arm64/Makefile b/xen/arch/arm/arm64/Makefile
index 6491c5350b2e..3272fe7e4ca2 100644
--- a/xen/arch/arm/arm64/Makefile
+++ b/xen/arch/arm/arm64/Makefile
@@ -8,6 +8,7 @@ obj-$(CONFIG_HARDEN_BRANCH_PREDICTOR) +=3D bpi.o
 obj-$(CONFIG_EARLY_PRINTK) +=3D debug.o
 obj-y +=3D domctl.o
 obj-y +=3D domain.o
+obj-y +=3D domain-build.o
 obj-y +=3D entry.o
 obj-y +=3D head.o
 obj-y +=3D insn.o
diff --git a/xen/arch/arm/arm64/domain-build.c b/xen/arch/arm/arm64/domain-=
build.c
new file mode 100644
index 000000000000..3a89ee46b8c6
--- /dev/null
+++ b/xen/arch/arm/arm64/domain-build.c
@@ -0,0 +1,24 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/fdt-kernel.h>
+#include <xen/sched.h>
+
+#include <asm/domain.h>
+
+#ifdef CONFIG_DOM0LESS_BOOT
+/* TODO: make arch.type generic ? */
+void __init set_domain_type(struct domain *d, struct kernel_info *kinfo)
+{
+    /* type must be set before allocate memory */
+    d->arch.type =3D kinfo->arch.type;
+}
+#endif
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index c8d07213e247..58f77628df1f 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -236,20 +236,6 @@ int __init make_arch_nodes(struct kernel_info *kinfo)
     return 0;
 }
=20
-/* 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 =3D 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/include/xen/dom0less-build.h b/xen/include/xen/dom0less-bu=
ild.h
index 408859e3255a..3e81d8ba3a47 100644
--- a/xen/include/xen/dom0less-build.h
+++ b/xen/include/xen/dom0less-build.h
@@ -57,6 +57,14 @@ int init_vuart(struct domain *d, struct kernel_info *kin=
fo,
 int make_intc_domU_node(struct kernel_info *kinfo);
 int make_arch_nodes(struct kernel_info *kinfo);
=20
+/*
+ * Set domain type from struct kernel_info which defines guest Execution
+ * State 32-bit/64-bit (for Arm AArch32/AArch64).
+ * The domain type must be set before allocate_memory.
+ *
+ * @d: pointer to the domain structure.
+ * @kinfo: pointer to the kinfo structure.
+ */
 void set_domain_type(struct domain *d, struct kernel_info *kinfo);
=20
 int init_intc_phandle(struct kernel_info *kinfo, const char *name,
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 09:49:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 09:49:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071506.1434969 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujamM-0000fe-2H; Wed, 06 Aug 2025 09:49:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071506.1434969; Wed, 06 Aug 2025 09:49: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 1ujamL-0000ew-Sl; Wed, 06 Aug 2025 09:49:49 +0000
Received: by outflank-mailman (input) for mailman id 1071506;
 Wed, 06 Aug 2025 09:49:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=i5Mu=2S=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1ujamK-0008SJ-DM
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 09:49:48 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id afbf7411-72aa-11f0-a322-13f23c93f187;
 Wed, 06 Aug 2025 11:49:46 +0200 (CEST)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by DU4PR03MB10887.eurprd03.prod.outlook.com (2603:10a6:10:592::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.14; Wed, 6 Aug
 2025 09:49:44 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%4]) with mapi id 15.20.8989.018; Wed, 6 Aug 2025
 09:49: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>
X-Inumbo-ID: afbf7411-72aa-11f0-a322-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QFJY5SHTBQrN+rtdTMaTx7BnzPu4p3f96yxlw3fIPu4f11d+QeSdyUSOrn1lHXE1B3dv15v5uYBuLGt2ASwdTSpCZZQpybFVReqgnfpZHjp08ciMXow9crQ0WbN5UuINTOiEbNyTy7ROrKpxN3chSuZwmsUR4uyku7//l8etTudiJAqVD6wfzlGpwgfaPS3LTnRSLQqtdMZnTf3zUaDJ4AEtjq1pwg8R4FRX/tJgMAMu8bKbDYUx/cDpJ3OOFImG6Pk0MZmKq1/3af+NNN9EQalxgQpqMagssYuVFOcfGDFRoLStV0UlMp9qhbxOm6XfA13C4I/trauC/Y5fQexJ2A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Cac1eHPMfPSKn+UlXRQpi44QFtXgjkvUpQCfsG56pnU=;
 b=uvkbeVLTaKwMwFvtD7mZOVZCyOmTaqDiTotp5kjZ5S0reVfN9QmNF+MjsXPGG+nWhtdhsygF0m0l07sbISyhP+waauIEVr8BgxNAiTco4sE2Rj6gvaeTtKH4CU7Iwy5I7dCQ7itpBGLqlEqCEn9F2JBUk8teCUgEAyfP8ayY7PShYjVjGyl3xFLdqQzj+lgaygUyTNEVcrfg3Rd253V6UiuEcEtxaDdhserwf2urssQXD9x5cY90qfeetSANzamoLlxh5bOZFa4hGOc778U7NNQ92UDcQNZyT2tYbHMH2W1WrfZ4TjiygBgGe1pNRQZKiz/QyAGvCy+k8n3bVqLuEQ==
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=Cac1eHPMfPSKn+UlXRQpi44QFtXgjkvUpQCfsG56pnU=;
 b=DFffcKyMOCaJfonwD97fq7HtORPSEtPC1yBLBArM9RgLwBu7jbK62bhfj5sSXt2N+rJu8P255+Aiy5Ml/P6T1cqPREV/YzXOBsxdwE/gR4JAhqXYwDvsxV2tlJkwGv0w62Zm8WyyGZtuZotQTP8wZLhMSHzJIyF3aXWfw8fqFAf2Pf5KDAew/pe0M3shiM481/fLtTQ00H8zST5gBs4B67Y1qGL32r5boyciFvbHLINavJR2D2XaRAuDDAz7V8b1C6TWCtWPSfNWJ1hNEBSeN/j6SGbifW36GxuXog55u7zs7oyckmvqyxZ/mkixUYui+k5LrM1QBmSAivSIo6mipg==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@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 v2 3/4] xen/arm64: allow to make aarch32 support optional
Thread-Topic: [PATCH v2 3/4] xen/arm64: allow to make aarch32 support optional
Thread-Index: AQHcBrdvViXWS71ZxEGq4HoaR7N2PA==
Date: Wed, 6 Aug 2025 09:49:43 +0000
Message-ID: <20250806094929.293658-4-grygorii_strashko@epam.com>
References: <20250806094929.293658-1-grygorii_strashko@epam.com>
In-Reply-To: <20250806094929.293658-1-grygorii_strashko@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: AS2PR03MB8907:EE_|DU4PR03MB10887:EE_
x-ms-office365-filtering-correlation-id: 91ebd3b0-afcf-4152-5a11-08ddd4ce925c
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?ws+YeJGObgdtjr//T5Jwd/mnEnALJd8d5w8WehjSZI6oC92DHCsu3lT9Rs?=
 =?iso-8859-1?Q?VoK1SL+vdplhgLT08+0kaSv3ahsp8ZcOJdg99HjaJFQlUclzzj22CeAMKX?=
 =?iso-8859-1?Q?1Ssjo2rwMA4vrlUn1u+viQEGHOYKcwJgUvbzWab02o6zI29y8K4JgtzxAP?=
 =?iso-8859-1?Q?fvITIg2ILCtJryr+3ctpBbIem4dIlbz2Sgad36yecMGYPM0aHZciaJTfit?=
 =?iso-8859-1?Q?yZaLkwvE95F9vsfYUKEQzshYQXUSEp/1p3vhx1eajSIdWqBAEKti9RHl3k?=
 =?iso-8859-1?Q?2vHTJwR6LM/W2ZDB07pFaug0QUkhHcpd/Fe69q/hUswXWS3AIGxXdRJ4j/?=
 =?iso-8859-1?Q?kPbm9aLkQgzbl66NEyG55To2fjzqlIAMGkJW/qwWyl7zx3OL2WO45x52Ol?=
 =?iso-8859-1?Q?CiNeEG2KXadBV8+6JEGfEEnMkLNTWBnniBa8RAAt4OcYK0m12xNJ0faL2A?=
 =?iso-8859-1?Q?Rl5C3Cls56l+sEB7kKGuEmcXI2biMA8JolPgQm/wRxKQdYB3YSGVsGnHHj?=
 =?iso-8859-1?Q?BnMTsf9M5lEAsLgOFNZIj80dbZDTCIs1E+K69pG3nbtZuSN/9OvqvxU0DI?=
 =?iso-8859-1?Q?j9AHEqBb4juokgeQXsKtQNtM4l8ZJbjuzA6yKwJzjSxemIQbpdQcMbC7wz?=
 =?iso-8859-1?Q?SIB0EY5ksphg0zxV1f0MZWbE6YW+TWTJpC/kt4VPwB2/IeNuTECi6dQTRy?=
 =?iso-8859-1?Q?4Ijj5Loti4ZAPQBFMvGXjv2hWInAyzqA3XUZ2t/j6s3eqsbhO4FPfqd+3M?=
 =?iso-8859-1?Q?Te8bDVqjRV+W8wYVnWCoWncSt2/rikDF2hGGNz8Co6sNGmmy6cmHsbmJvT?=
 =?iso-8859-1?Q?37SUJls3h/vQ97/pGK1oM3squaNWq2p3bv/fP+SGrbmUCHb06r+ODajAik?=
 =?iso-8859-1?Q?OYl9Db74+tehyXdeh1Z8XrrwlFgedgwvhVn1uw74wfEYi2XvPuJlWVJwF+?=
 =?iso-8859-1?Q?CYPZydla+qrbNnI31bOFEWL5sWkBK7hmCuosR78NTfpvrVfUHiipdyqZHf?=
 =?iso-8859-1?Q?e5zLfWugL9wfvaqAkWo+7HLEAZmwQm1C7tRYY8uuQ9yNPoXN8EqqmdoVog?=
 =?iso-8859-1?Q?M2auSF212DoPMRqvJ9GXTAkyJxpVCyyTp+K5ESsmx5NR9yVcTNzYkwMCWq?=
 =?iso-8859-1?Q?OYPaLsGub/hG6ShHE0I7WivHyn4u2gjQ/zY2HdIQAF71fSTnKZrsKpixNe?=
 =?iso-8859-1?Q?WLs1GEaM5gwNCGK3BBxDsWRoylH/18fQxYku/HMhneqk0AvkUPndeLhyon?=
 =?iso-8859-1?Q?Vf/59zJ7LbHJFWldLDxh1Z5ob7ugKbWnBPxInxaDyttEABP+E4HvHcMLkS?=
 =?iso-8859-1?Q?QpNmW7FRrn2iV9umSYHqJ4Rusmqyu43IDSfacFM08N3X5iSAAromOzDW8r?=
 =?iso-8859-1?Q?PMKJlMGR0rj1/Vlzd9nc3rutJxlGI3VR3aaJyRIaD0Z/LJEK2CLeKRayy8?=
 =?iso-8859-1?Q?GOUtOAK5xD5VdTX+bUQjYPip3vI6B4sCEjTNi8Vs5woZ/ULJvf9yJHtS3c?=
 =?iso-8859-1?Q?jiYE7Zxp4is2n2VYTZV8+7S7jgtePKuoT3EUk6imSr7Q=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?h2xzkYkJPeVQyXmybYaEHLQ+nxl29S8TmnEJBaUvIru+Fxx99baYclcSEB?=
 =?iso-8859-1?Q?ZBNaVPHKUXWmZRs4ww4kFxZz206uBmvcnTeuhfC7buiOXfsXYmV4DUmX2w?=
 =?iso-8859-1?Q?eaDAgO1Sh4f61X24xpv8ZCqjj42u6BW1WPdQcf+f4NOfTWdsJgU2kwq7MW?=
 =?iso-8859-1?Q?IqYNnoRdzVmLxoP/SV0OUUua1pAAeTvAqZ/GjlE01iPy7NAanVNUuX03mx?=
 =?iso-8859-1?Q?SN3br/obKfKvN+t/zAXvzPXhhSOhFJJvn0YuJ3MPhNis82d+5LXmkCptvS?=
 =?iso-8859-1?Q?V0+qqQEfuSIcsPfmJLLA34il8b1MlRIU+4G7UP82lr2QqihbbLLFD3SrZJ?=
 =?iso-8859-1?Q?pWzHFltXmESXHpBciiHXy0cvxpvs/uu3TJCA7ptyxUmYEiGrYjX3tA6qqp?=
 =?iso-8859-1?Q?/efYJYimbX5P9C9AbUr8fQn2QqYhld5uRqNwRhVh8idmQj/FZ3HVUKYZ0g?=
 =?iso-8859-1?Q?pKETILe6WgBKbHvg8gK5eYtSZlWVUxPO7OJ9brkFtutrZOAd+GOxURcg53?=
 =?iso-8859-1?Q?2RLZmRLBfU1PMmE9W1hlilZ+bsCSuFWUK/DsPkPUuEJQdAKRhEdcLMhrNz?=
 =?iso-8859-1?Q?ND8UtuqOfPDGch/dU6gU0285LhrUr0VHzPWFXkrhLgfagW9OHLKN5+/1oQ?=
 =?iso-8859-1?Q?Ujo03hGdypXoAeBpw/sBU5bbupJv4T/F5ttwasd7SumjDeXZh6mVVct8tj?=
 =?iso-8859-1?Q?atF6NXKtScJVPdqbBe5D008JabPlUHRvnCoVXj9f4JHIEuRQJEmt0zynhd?=
 =?iso-8859-1?Q?otTm23/yCw/S3RH6niORe+pSjhp1cAWFanBR/UyAY8i/iOePlORsE3ssFc?=
 =?iso-8859-1?Q?vMUwdvCuKC4f1DP1Qy0FNwxPXTaCCUV2G7CzjNa+EqdFfPKXrmzJI9LdpC?=
 =?iso-8859-1?Q?5lTPV/emyVngVMQVMqH5C8fHY/h9pxWmXknAy0GE6YfD57+iRw6GS8TF34?=
 =?iso-8859-1?Q?WYvBH+iaAHKMsZlregPdJ5KvUzbyuzEk6SwCujNjunzZPekRPiKum0xGay?=
 =?iso-8859-1?Q?M+zWYkrXJD9V5wHaAuyY2fCqqQ3CWlLAnZMd2QXyDcePB3nbQ+Q8TajVDh?=
 =?iso-8859-1?Q?ckkGm0k8dFN/yUhOJgJxxmbwgmn/SeC8OuFWHvPozBpE0DE/unsRGqM6fp?=
 =?iso-8859-1?Q?qxCq7CBRARMc9ppJgQdcYW3ey1zxfnADkh3KyjJnmSL+e9Y5hvyR6p5AXK?=
 =?iso-8859-1?Q?3LWuWvJzQzQIF88vTz0swrkdj5U9ti8pmzCr6PLwbd1rRmrj+afftfg3AL?=
 =?iso-8859-1?Q?aD+bzM2CSEKUtCpHVg5uCS9DETu4BIN16t+FYj/J0pEgshbXB5zhsaW8QC?=
 =?iso-8859-1?Q?UoH9WKubnrHTlbRc0QEsrb9FHffMGN6csREPL2AHMd1xLeVkOWIE680q6i?=
 =?iso-8859-1?Q?4qT18HV6DK4MJDY5FWCyw3YvMWNjUWsGvWpllsUiiMxK8GnrYzT4jIHFiz?=
 =?iso-8859-1?Q?5fBY8cfxb7SNq+5a0L0wHi+arI14Ic6uIyCFICfQptiw4dl1tvQtOQ8i6k?=
 =?iso-8859-1?Q?p2LFMb278Xq/VQJzWmcrv0IRtjQO2YIZFlgRemScENum7wFhhlWb2Wex9a?=
 =?iso-8859-1?Q?fAgy8sN0XZEJ0IFuOiZRpnm0DPu1oL8R5jmdVMsGHoOFp/xshdLR5Jj5pG?=
 =?iso-8859-1?Q?m8v+faTRvGh68ygkFMumLETzLuwoWVsXQNLJuhCiJ+kLmhjt0616Delg?=
 =?iso-8859-1?Q?=3D=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: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 91ebd3b0-afcf-4152-5a11-08ddd4ce925c
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Aug 2025 09:49:43.0249
 (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: YOlMbvS2ph2cE4aai3wRyOfLpAdt2fkoBV4m+aoR7VojMcnqw69q/JWYYHfNxbV+ZHWK2fjAe5R9ncha2MuZIOt73jdVUDKvDVAMwsuS3uU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR03MB10887

From: Grygorii Strashko <grygorii_strashko@epam.com>

Now Arm64 AArch32 guest support is always enabled and built-in while not
all Arm64 platforms supports AArch32 (for exmaple on Armv9A) or this
support might not be needed (Arm64 AArch32 is used quite rarely in embedded
systems). More over, when focusing on safety certification, AArch32 related
code in Xen leaves a gap in terms of coverage that cannot really be
justified in words. This leaves two options: either support it (lots of
additional testing, requirements and documents would be needed) or compile
it out.

Hence, this patch introduces basic support to allow make Arm64
AArch32 guest support optional. The following changes are introduced:

- Introduce Kconfig option CONFIG_ARM64_AARCH32 to allow enable/disable
  Arm64 AArch32 guest support (default y)

- Introduce is_aarch32_enabled() helper which accounts Arm64 HW capability
  and CONFIG_ARM64_AARCH32 setting

- Introduce arm64_set_domain_type() to configure Arm64 domain type in
  unified way instead of open coding (d)->arch.type, and account
  CONFIG_ARM64_AARCH32 configuration.

- toolstack: do not advertise "xen-3.0-armv7l " capability if AArch32 is
  disabled.

- do not expose EL1 AArch32 support to guest in ID_AA64PFR0_EL1 reg if
  AArch32 is disabled.

- Set Arm64 domain type to DOMAIN_64BIT by default.
  - the Arm Xen boot code is handling this case properly already;
  - for toolstack case the XEN_DOMCTL_set_address_size hypercall handling
    updated to forcibly configure domain type regardless of current domain
    type configuration, so toolstack behavior is unchanged.

With CONFIG_ARM64_AARCH32=3Dn the Xen will reject AArch32 guests (kernels) =
if
configured by user in the following way:
- Xen boot will fail with panic during dom0 or dom0less domains creation
- toolstack domain creation will be rejected due to xc_dom_compat_check()
  failure.

Making Arm64 AArch32 guest support open further possibilities for build
optimizations of Arm64 AArch32 guest support code.

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
---
changes in v2:
- use Arm64 "cpu_has_el1_32" in all places to check if HW has AArch32 suppo=
rt
- rework Arm64 XEN_DOMCTL_set_address_size hypercall handling to work with =
any
  initial domain type set (32bit or 64 bit)
- fix comments related to macro parameters evaluation issues
- do not expose EL1 AArch32 support to guest in ID_AA64PFR0_EL1 reg if
  AArch32 is disabled

 xen/arch/arm/Kconfig                    |  7 ++++
 xen/arch/arm/arm64/domain-build.c       | 46 +++++++++++++++++++++++--
 xen/arch/arm/arm64/domctl.c             | 16 +++++----
 xen/arch/arm/arm64/vsysreg.c            |  9 +++++
 xen/arch/arm/domain.c                   |  9 +++++
 xen/arch/arm/domain_build.c             | 21 +++--------
 xen/arch/arm/include/asm/arm32/domain.h | 12 +++++++
 xen/arch/arm/include/asm/arm64/domain.h | 23 +++++++++++++
 xen/arch/arm/setup.c                    |  2 +-
 9 files changed, 119 insertions(+), 26 deletions(-)

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index a0c816047427..bf6dd73caf73 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -266,6 +266,13 @@ config PCI_PASSTHROUGH
 	help
 	  This option enables PCI device passthrough
=20
+config ARM64_AARCH32
+	bool "AArch32 Guests support on on ARM64 (UNSUPPORTED)" if UNSUPPORTED
+	depends on ARM_64
+	default y
+	help
+	  This option enables AArch32 Guests on ARM64.
+
 endmenu
=20
 menu "ARM errata workaround via the alternative framework"
diff --git a/xen/arch/arm/arm64/domain-build.c b/xen/arch/arm/arm64/domain-=
build.c
index 3a89ee46b8c6..5951f002e3af 100644
--- a/xen/arch/arm/arm64/domain-build.c
+++ b/xen/arch/arm/arm64/domain-build.c
@@ -4,13 +4,55 @@
 #include <xen/sched.h>
=20
 #include <asm/domain.h>
+#include <asm/arm64/sve.h>
+
+int __init arm64_set_domain_type(struct kernel_info *kinfo)
+{
+    struct domain *d =3D kinfo->bd.d;
+    enum domain_type type;
+
+    ASSERT(d);
+    ASSERT(kinfo);
+
+    type =3D kinfo->arch.type;
+
+    if ( !is_aarch32_enabled() )
+    {
+        ASSERT(d->arch.type =3D=3D DOMAIN_64BIT);
+
+        if ( type =3D=3D DOMAIN_32BIT )
+        {
+            const char *str =3D "not available";
+
+            if ( !IS_ENABLED(CONFIG_ARM64_AARCH32) )
+                str =3D "disabled";
+            printk("aarch32 guests support is %s\n", str);
+            return -EINVAL;
+        }
+
+        return 0;
+    }
+
+    if ( is_sve_domain(d) && type =3D=3D DOMAIN_32BIT )
+    {
+        printk("SVE is not available for 32-bit domain\n");
+        return -EINVAL;
+    }
+
+    d->arch.type =3D type;
+
+    return 0;
+}
=20
 #ifdef CONFIG_DOM0LESS_BOOT
 /* TODO: make arch.type generic ? */
 void __init set_domain_type(struct domain *d, struct kernel_info *kinfo)
 {
-    /* type must be set before allocate memory */
-    d->arch.type =3D kinfo->arch.type;
+    int rc;
+
+    rc =3D arm64_set_domain_type(kinfo);
+    if ( rc < 0 )
+        panic("Unsupported guest type\n");
 }
 #endif
=20
diff --git a/xen/arch/arm/arm64/domctl.c b/xen/arch/arm/arm64/domctl.c
index 8720d126c97d..4f0f143daef8 100644
--- a/xen/arch/arm/arm64/domctl.c
+++ b/xen/arch/arm/arm64/domctl.c
@@ -13,6 +13,11 @@
 #include <asm/arm64/sve.h>
 #include <asm/cpufeature.h>
=20
+static void vcpu_switch_to_aarch32_mode(struct vcpu *v)
+{
+    v->arch.hcr_el2 &=3D ~HCR_RW;
+}
+
 static long switch_mode(struct domain *d, enum domain_type type)
 {
     struct vcpu *v;
@@ -21,14 +26,14 @@ static long switch_mode(struct domain *d, enum domain_t=
ype type)
         return -EINVAL;
     if ( domain_tot_pages(d) !=3D 0 )
         return -EBUSY;
-    if ( d->arch.type =3D=3D type )
-        return 0;
=20
     d->arch.type =3D type;
=20
-    if ( is_64bit_domain(d) )
-        for_each_vcpu(d, v)
+    for_each_vcpu(d, v)
+        if ( is_64bit_domain(d) )
             vcpu_switch_to_aarch64_mode(v);
+        else
+            vcpu_switch_to_aarch32_mode(v);
=20
     return 0;
 }
@@ -38,7 +43,7 @@ static long set_address_size(struct domain *d, uint32_t a=
ddress_size)
     switch ( address_size )
     {
     case 32:
-        if ( !cpu_has_el1_32 )
+        if ( !is_aarch32_enabled() )
             return -EINVAL;
         /* SVE is not supported for 32 bit domain */
         if ( is_sve_domain(d) )
@@ -58,7 +63,6 @@ long subarch_do_domctl(struct xen_domctl *domctl, struct =
domain *d,
     {
     case XEN_DOMCTL_set_address_size:
         return set_address_size(d, domctl->u.address_size.size);
-
     default:
         return -ENOSYS;
     }
diff --git a/xen/arch/arm/arm64/vsysreg.c b/xen/arch/arm/arm64/vsysreg.c
index d14258290ff0..9f7e735c9b74 100644
--- a/xen/arch/arm/arm64/vsysreg.c
+++ b/xen/arch/arm/arm64/vsysreg.c
@@ -330,6 +330,15 @@ void do_sysreg(struct cpu_user_regs *regs,
     {
         register_t guest_reg_value =3D domain_cpuinfo.pfr64.bits[0];
=20
+        if ( !is_aarch32_enabled() )
+        {
+            /* do not expose EL1 AArch32 support if disabled */
+            register_t mask =3D GENMASK(ID_AA64PFR0_EL1_SHIFT + 4 - 1,
+                                      ID_AA64PFR0_EL1_SHIFT);
+            guest_reg_value &=3D ~mask;
+            guest_reg_value |=3D (1 << ID_AA64PFR0_EL1_SHIFT) & mask;
+        }
+
         if ( is_sve_domain(v->domain) )
         {
             /* 4 is the SVE field width in id_aa64pfr0_el1 */
diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index 310c5789096d..544d1422a793 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -791,6 +791,15 @@ int arch_domain_create(struct domain *d,
     d->arch.sve_vl =3D config->arch.sve_vl;
 #endif
=20
+#ifdef CONFIG_ARM_64
+    /*
+     * Set default Execution State to AArch64 (64bit)
+     * - Xen will reconfigure it properly at boot time
+     * - toolstack will reconfigure it properly by XEN_DOMCTL_set_address_=
size
+     */
+    d->arch.type =3D DOMAIN_64BIT;
+#endif
+
     return 0;
=20
 fail:
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 47ba920fc6b0..c616127e8da5 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -1873,19 +1873,6 @@ int __init construct_domain(struct domain *d, struct=
 kernel_info *kinfo)
     BUG_ON(v->is_initialised);
=20
 #ifdef CONFIG_ARM_64
-    /* if aarch32 mode is not supported at EL1 do not allow 32-bit domain =
*/
-    if ( !(cpu_has_el1_32) && kinfo->arch.type =3D=3D DOMAIN_32BIT )
-    {
-        printk("Platform does not support 32-bit domain\n");
-        return -EINVAL;
-    }
-
-    if ( is_sve_domain(d) && (kinfo->arch.type =3D=3D DOMAIN_32BIT) )
-    {
-        printk("SVE is not available for 32-bit domain\n");
-        return -EINVAL;
-    }
-
     if ( is_64bit_domain(d) )
         vcpu_switch_to_aarch64_mode(v);
=20
@@ -1983,6 +1970,10 @@ static int __init construct_dom0(struct domain *d)
     if ( rc < 0 )
         return rc;
=20
+    rc =3D arm64_set_domain_type(&kinfo);
+    if ( rc < 0 )
+        return rc;
+
     return construct_hwdom(&kinfo, NULL);
 }
=20
@@ -1994,10 +1985,6 @@ int __init construct_hwdom(struct kernel_info *kinfo=
,
=20
     iommu_hwdom_init(d);
=20
-#ifdef CONFIG_ARM_64
-    /* type must be set before allocate_memory */
-    d->arch.type =3D kinfo->arch.type;
-#endif
     find_gnttab_region(d, kinfo);
     if ( is_domain_direct_mapped(d) )
         allocate_memory_11(d, kinfo);
diff --git a/xen/arch/arm/include/asm/arm32/domain.h b/xen/arch/arm/include=
/asm/arm32/domain.h
index 1bd0735c9194..30e8818ff2ae 100644
--- a/xen/arch/arm/include/asm/arm32/domain.h
+++ b/xen/arch/arm/include/asm/arm32/domain.h
@@ -3,11 +3,23 @@
 #ifndef ARM_ARM32_DOMAIN_H
 #define ARM_ARM32_DOMAIN_H
=20
+struct kernel_info;
+
 /* Arm32 always runs guests in AArch32 mode */
=20
 #define is_32bit_domain(d) ((void)(d), 1)
 #define is_64bit_domain(d) ((void)(d), 0)
=20
+static inline bool is_aarch32_enabled(void)
+{
+    return true;
+}
+
+static inline int arm64_set_domain_type(struct kernel_info *kinfo)
+{
+    return 0;
+}
+
 #endif /* ARM_ARM32_DOMAIN_H */
=20
 /*
diff --git a/xen/arch/arm/include/asm/arm64/domain.h b/xen/arch/arm/include=
/asm/arm64/domain.h
index 1a2d73950bf0..bebcbc582f97 100644
--- a/xen/arch/arm/include/asm/arm64/domain.h
+++ b/xen/arch/arm/include/asm/arm64/domain.h
@@ -3,6 +3,10 @@
 #ifndef ARM_ARM64_DOMAIN_H
 #define ARM_ARM64_DOMAIN_H
=20
+#include <asm/cpufeature.h>
+
+struct kernel_info;
+
 /*
  * Returns true if guest execution state is AArch32
  *
@@ -17,6 +21,25 @@
  */
 #define is_64bit_domain(d) ((d)->arch.type =3D=3D DOMAIN_64BIT)
=20
+/*
+ * Arm64 declares AArch32 (32bit) Execution State support in the
+ * Processor Feature Registers (PFR0), but also can be disabled manually.
+ */
+static inline bool is_aarch32_enabled(void)
+{
+    return IS_ENABLED(CONFIG_ARM64_AARCH32) && cpu_has_el1_32;
+}
+
+/*
+ * Set domain type from struct kernel_info which defines guest Execution
+ * State AArch32/AArch64 during regular dom0 or predefined (dom0less)
+ * domains creation .
+ * Type must be set before allocate_memory or create vcpus.
+ *
+ * @kinfo: pointer to the kinfo structure.
+ */
+int arm64_set_domain_type(struct kernel_info *kinfo);
+
 #endif /* ARM_ARM64_DOMAIN_H */
=20
 /*
diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
index bb35afe56cec..c29573f0ffec 100644
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -530,7 +530,7 @@ static int __init init_xen_cap_info(void)
 #ifdef CONFIG_ARM_64
     safe_strcat(xen_cap_info, "xen-3.0-aarch64 ");
 #endif
-    if ( cpu_has_aarch32 )
+    if ( is_aarch32_enabled() )
         safe_strcat(xen_cap_info, "xen-3.0-armv7l ");
=20
     return 0;
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 09:49:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 09:49:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071507.1434979 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujamN-0000y0-Ei; Wed, 06 Aug 2025 09:49:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071507.1434979; Wed, 06 Aug 2025 09:49:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujamN-0000xq-Ad; Wed, 06 Aug 2025 09:49:51 +0000
Received: by outflank-mailman (input) for mailman id 1071507;
 Wed, 06 Aug 2025 09:49:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=i5Mu=2S=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1ujamL-0008SJ-Df
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 09:49:49 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b01754f3-72aa-11f0-a322-13f23c93f187;
 Wed, 06 Aug 2025 11:49:47 +0200 (CEST)
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com (2603:10a6:20b:5e4::22)
 by DU4PR03MB10887.eurprd03.prod.outlook.com (2603:10a6:10:592::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.14; Wed, 6 Aug
 2025 09:49:44 +0000
Received: from AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593]) by AS2PR03MB8907.eurprd03.prod.outlook.com
 ([fe80::804:c187:252a:9593%4]) with mapi id 15.20.8989.018; Wed, 6 Aug 2025
 09:49: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>
X-Inumbo-ID: b01754f3-72aa-11f0-a322-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FrKvARamhpWaK/GuwKFvHi3QQzTAZgxvhgqzY9oYIJSyLoOLmF9fDSx/uZ7S763HN35XS/QJlk2EwAJ5SMlgW7LQvAP+ZzXWLwAAM73Pt5bvdDagP17hI0Af8PFQ68NpNgjxw23aS/Pok20zLN3P+GQxg1EYsi4NeTK9ixTHmu9FvFT6TqQ22pMQJQ0u1pEgj6ptnJOAamcBHGnAIVwLGW83jAiNR+gaBBTKd70EmePrmRVgLoZlO84C8AbnYnb3XDy53M1uXiHBjsj7g8Hk/83kDqRCRjo/PAUbXZMu0ndgGl5I7VKnj6kyAo53bJQULVVXL3L1LnY35cZowN/dVw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0D42NaQ22SnU+YB/Vaz0V7f4mHN2J4eKpExRSGw99cI=;
 b=hME1lmkOkXcRWJsj+21oAJ+pEt7XJKUXRRNc4uGA+XJcRtIr+SF/6qoZpgPbe3WirDiHGwOTgXqPUafIJkOjTu3QE5sOWOYFFzzoWGwc+gssOdX63UvC7+e+iiU/awk1lOp3KiCTgOf2EIGq7lFc4UMahpvfrTEoyjvDes5bjX3ebN4X47uma61HvA12G9Ixl5fAJ5q0CgRuV1MDfu5Ad6L2ohOtQLe6nv1jKvux7HFBAAm5MpMxWDpUw/O5GQBojI88Njlx5m69zLWENSQctMrNgy4W1eBwBiqnWzSkrRdsOvYbYpSksc3GCZ9hqFvlW6OexqnaBHPXGGRQOmOC9Q==
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=0D42NaQ22SnU+YB/Vaz0V7f4mHN2J4eKpExRSGw99cI=;
 b=fb6hU8oU/kvjX9IbC5Z3Z7Au5N5zOKdLJcw9S+iEaBLN/GMa3x4YHou/0+u27jv89rpNc/O+cVCyYN0s9bRGlqMl7KMgBt93hAt5MkkXGax1BxuridZsFhPmQrcX/IjWgUvYtzAbahupG9K52MgNU6u2zgj1TTeatyFTspcrUPSSe1YtuQPA0D6jWPAE/9q+oIPnCjBnjFqDpMxA4ukoG8Grme+naGV5Tflsa0q3hgXu3yykNcflP+dMBuiEgbSGNlcnljpseS6gKY7WvKvvA8wL9FDt+qRb7RQMHHsXvEVSjUdSHlgJFk2lVSAPYnXC4GKJlC5AeK3cpapKUzDOkg==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@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 v2 4/4] xen/arm64: constify is_32/64bit_domain() macro for
 CONFIG_ARM64_AARCH32=n
Thread-Topic: [PATCH v2 4/4] xen/arm64: constify is_32/64bit_domain() macro
 for CONFIG_ARM64_AARCH32=n
Thread-Index: AQHcBrdvUZwhp6UiF0OIwSDs4YZpHA==
Date: Wed, 6 Aug 2025 09:49:43 +0000
Message-ID: <20250806094929.293658-5-grygorii_strashko@epam.com>
References: <20250806094929.293658-1-grygorii_strashko@epam.com>
In-Reply-To: <20250806094929.293658-1-grygorii_strashko@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: AS2PR03MB8907:EE_|DU4PR03MB10887:EE_
x-ms-office365-filtering-correlation-id: af9560bb-b8c0-42cd-379f-08ddd4ce928d
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?qA18s132kDUe1dk071uLh94f8CuOkqrJg5dv56o8nNt2jadMbcfKKJJhnL?=
 =?iso-8859-1?Q?3Z0n92QtWe9M2K7vSYKwjgAlnd7I+NA0zxsZiSh3PkwADWcz6JFn3SZk2T?=
 =?iso-8859-1?Q?8qh+kjbE7bNNsaXjgFO1t6rDrzl1hOYcSSCbSM6/Q3aBpfn5AJ9YnD2k3m?=
 =?iso-8859-1?Q?5uBxm20vJZxjbFh+mkxDl1U+jTxSkad3mmvjCtaBlrto0XT40BkJ+mZ/HL?=
 =?iso-8859-1?Q?OR0HjBNz5FgFle7sQPZvLGq188GVmkYJmxJ7Ha+1+9qAS6O9mqek//P57/?=
 =?iso-8859-1?Q?bgSdyG1ig/pk3oWoINwbF9C1ulcKCK4WMeBX/zY6pPgpE9qHh6NRqeunGT?=
 =?iso-8859-1?Q?6orXGR4RycwxXBuau7IJt0uWXzkdVrFaLliuLLwkDUGU9lxCQ7dtP2XdDm?=
 =?iso-8859-1?Q?SlwUQqVH06u/DtCfTsv1RtE7l/uwbSJWE+qB1s4DL0mlzpB4BJgh8ifUPn?=
 =?iso-8859-1?Q?yuZjLRXDbvvssHVV3o3f12pqIqLm9WPBMjJechF9PLBaDUNyxCHe0N4yCk?=
 =?iso-8859-1?Q?h7KSFEX7xJDZ1AAwM9kW9K5PonEbI7Hug0lCGuPcy6jT5qgvZ/0Rg38ZnM?=
 =?iso-8859-1?Q?30y532+PPy8nzlaH8RiZZ0VEhd135FXS/lhEyyqCCwPyIbMp/KFDFu/Wgb?=
 =?iso-8859-1?Q?tseU7XnOR97pDSfrwy5aNzO8pioVPJCLBSx2bOaSWOuAu2DA3+bHTzvyI3?=
 =?iso-8859-1?Q?4knfa8t3mXZDx2NbzJdIfSZycasOTIm+il8ZBhlrNarkor1+oaRtVzsb6H?=
 =?iso-8859-1?Q?/IPPsAKOSbKAaTLWQGK/TZE0jqQsbmkhCgaikcagr4bJiInsMi87O6FmVJ?=
 =?iso-8859-1?Q?zHjTdGKjT0T9ymGjNCzZcehVImb7AijHaz2A0G8VZG1hlaGFhuEu27AzXj?=
 =?iso-8859-1?Q?Yea71b+2P5pUDwaSDqyMi8AxbLyvZpZcn/ofFOyeQvxW/lNwahimw59rz6?=
 =?iso-8859-1?Q?GCkKLMM/2/7aRHQeDjZ9NoPbETTkrps/7onP9YRfs0typ1do2w50AbP3U5?=
 =?iso-8859-1?Q?xRhwMBMYzrXeVLaEiNw76lKCjJV8mITlTjHRMYTLbQlpb4W7g+EVZrQy9C?=
 =?iso-8859-1?Q?29KDAze30fWP7EmIgH4i7d72DalVY5xW89WyETpiUYnxpR4VJrOCPN6W/x?=
 =?iso-8859-1?Q?7nRKDe76Xnkutrocx5axkpOyTnlICoNJW8BRT6gTZXjvhpFNK70zPnXuws?=
 =?iso-8859-1?Q?wRklEZgaxCoFi/X20JXju6jef2wELDfP0lrmX8bHy8tNxGI+b3Il/Wk7kt?=
 =?iso-8859-1?Q?0i9RH3286ae56+rm5WbE909GOE688SEIg12gtQuLAR1PUP2EK50AFJyGHm?=
 =?iso-8859-1?Q?2SorqJ339UJdIgV2KESBb3M2pbh6O9F4JcYSrtYn+yXw+11o8iMnjHaBAH?=
 =?iso-8859-1?Q?hPuv8MkzAOKEymqlyRmasVsHnHIbjvKRTfXBMFatbMmcIinY6VIIGdcEg1?=
 =?iso-8859-1?Q?OpTRwpBzLKHqqK0FH9hifWINJ4QEwd0TeAxf6k3jYy5TVtGE6Ow9ZF2ojR?=
 =?iso-8859-1?Q?uAq+Fjow3nh6Lf20jwBWnJ9NTDV/h0u/eSLVpCKHLang=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR03MB8907.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?EHbgh6rIXnaJjZxKIH9qtjvjyFvzgpqpY+l+onEwUwltP5cT8CW4Gd+3Fl?=
 =?iso-8859-1?Q?FA14Qn1OgbZTNM4qC0b+n1rfSdRnmsJv/NgGYyZ7+0uHOarYuIhLE5AaYF?=
 =?iso-8859-1?Q?nl0pJdX2nm1HwNBtRslMu3rECQzTY/A/bwQ5ob1Av9wA5EAJ8VEVEiI8A9?=
 =?iso-8859-1?Q?GIWn+i5q6xMS3XOJ2766oQ3EM+nAY8ZDsQTZyLZCt3RKINyQlJKboDES8w?=
 =?iso-8859-1?Q?knBZTF26OyXj1dARwWcXVC3OLxo8S8Asaf9wFicp2fz1GreHtwauXmzGHW?=
 =?iso-8859-1?Q?WdvtWlDydstpOgf/3xF0w1xc+KyTxckn1DWN11Oi6Qvi0CePxPBc7KEIz7?=
 =?iso-8859-1?Q?+wiFPJjHkOASc1MPFkotUBJ0rC+zUqsylMGtFnywn7RqLKopaTi3sBQqmA?=
 =?iso-8859-1?Q?0M3lC2sM8x5zSUZN2qyYPyJq1UMwu27thjHamAnsK5AKieIjica6d0LdAI?=
 =?iso-8859-1?Q?NkeSPPqlzNo31ysLUqxkks8fDVxoY6qquxL9L2wGVaqXAmJIJE2UBveuSP?=
 =?iso-8859-1?Q?doFeL9gNGfwqiNFUAJgsQA6G0qc2C2FxODjNvu3KHp7m9hEDN6EtsC5Llt?=
 =?iso-8859-1?Q?iCcZ+nPtZmgiz0MoiS0OCiF7Q4RVvspVInibxpWRvtU4yTWiBSjExWB3mv?=
 =?iso-8859-1?Q?kclztKBHUKN9zKI3/FBcjGWpyZtHJarkraeC/BYvzylkSy3gE51IMZ9YJF?=
 =?iso-8859-1?Q?hShUz+kWcOqysJCy2r0vaaPRHWyVwBdrfLsV+BwnaeOQ1OYX6doJ2Ht6zw?=
 =?iso-8859-1?Q?s8WuOhfDCkclJk05Drl6soql2XDIbZUub4Hx/x6XnU5VXqRN3sf10rTW2k?=
 =?iso-8859-1?Q?QxooPNe/zP8e+pR1uROvsaYvmccssyh0vmfKCD0ledID8nOjPOFUEHKcfn?=
 =?iso-8859-1?Q?6GbWgwkVbf7yXxaWYFsR980H/GxDRMRP/tl52CxZqr7wAJYqZZtVyq+gHg?=
 =?iso-8859-1?Q?OkRe9J6uyc8vJZGbfL8WY1vm/pcvZZZqRi0O6ta6IXM25nZSD51v/q3Gle?=
 =?iso-8859-1?Q?YsBUewTEqKG+9DIDiVDL6pS3uNrUSWkGK4Wb291bgWPV+RwF6nByfNop4V?=
 =?iso-8859-1?Q?4gDoHcTvS72gG8YPc1aXIrGqeKThml99xraPANSnmcE/Ei2o1j0B9B6LvJ?=
 =?iso-8859-1?Q?aRN8HF4St6ymV1CMOcGMI+Wpy6bNg6V8eE6eHEjTDMB3WnZRMvN9mVMoAo?=
 =?iso-8859-1?Q?jqCBUfxX3sas8v8KvJCOEHyOgxlqRPR1QwNn3OnK1ErvbbAvjy5CUJFoMy?=
 =?iso-8859-1?Q?KFjR4DK09h4F5XtCxZXlTUVI39bt/zC9ehFBCqXuE7TFC4g4MOCLB//nJp?=
 =?iso-8859-1?Q?0PnFZCfRGbDPzgdPHbhHG/hviEc3cAg7nRXvdR1HFNyku4iVPtB7i5CMM8?=
 =?iso-8859-1?Q?fLim1DhQWhIjYz59j1JZaWOuMBWVQgh2DuamrFMkS3dKU5QLI+182lUfcn?=
 =?iso-8859-1?Q?1HpIpo2FkuK2Qw6nuH0At9EwxEZeCnvrdAgcYH8S2bIhKlNrzhAyNATPxk?=
 =?iso-8859-1?Q?q+7llOq3WBN7Oy/IDVfbGbddDouvfyqD0tCXR4p94Y69E3Y8CKCUh/lgxU?=
 =?iso-8859-1?Q?4dthz6uebwc4riPP7kmNZbpKwEOZqmwj2DTixAIIckkvEqvejVYvInMGjc?=
 =?iso-8859-1?Q?5eYfqp/bACTTrdlvF4pNXuwWS0DFrPPXATVmAWccl35Y2Y9Q0FGhvNMQ?=
 =?iso-8859-1?Q?=3D=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: AS2PR03MB8907.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: af9560bb-b8c0-42cd-379f-08ddd4ce928d
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Aug 2025 09:49:43.3659
 (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: iQYCecNOL7gKww2YDeHXnPElgz/ZFMitLExzchWKDuEfVrqJck8bq0cn7UOWKN99hgktIbvCTWxb0wkC+8c5r9Ot25LlGH4AXg1erKBwe70=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR03MB10887

From: Grygorii Strashko <grygorii_strashko@epam.com>

Constify is_32/64bit_domain() macro for the case CONFIG_ARM64_AARCH32=3Dn a=
nd
so allow compiler to opt out Aarch32 specific code.

Before (CONFIG_ARM64_AARCH32=3Dy):
   text	   data	    bss	    dec	    hex	filename
 859212	 322404	 270880	1452496	 1629d0	xen-syms-before

After (CONFIG_ARM64_AARCH32=3Dn):
   text	   data	    bss	    dec	    hex	filename
 851256	 322404	 270880	1444540	 160abc	xen-syms-after

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
---
v2:
- use IS_ENABLED(CONFIG_ARM64_AARCH32) instead of ifdefs

 xen/arch/arm/include/asm/arm64/domain.h | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/include/asm/arm64/domain.h b/xen/arch/arm/include=
/asm/arm64/domain.h
index bebcbc582f97..70dfbeac7443 100644
--- a/xen/arch/arm/include/asm/arm64/domain.h
+++ b/xen/arch/arm/include/asm/arm64/domain.h
@@ -12,14 +12,16 @@ struct kernel_info;
  *
  * @d: pointer to the domain structure
  */
-#define is_32bit_domain(d) ((d)->arch.type =3D=3D DOMAIN_32BIT)
+#define is_32bit_domain(d)                                                =
     \
+        (IS_ENABLED(CONFIG_ARM64_AARCH32) && (d)->arch.type =3D=3D DOMAIN_=
32BIT)
=20
 /*
  * Returns true if guest execution state is AArch64
  *
  * @d: pointer to the domain structure
  */
-#define is_64bit_domain(d) ((d)->arch.type =3D=3D DOMAIN_64BIT)
+#define is_64bit_domain(d)                                                =
     \
+        (!IS_ENABLED(CONFIG_ARM64_AARCH32) || (d)->arch.type =3D=3D DOMAIN=
_64BIT)
=20
 /*
  * Arm64 declares AArch32 (32bit) Execution State support in the
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 10:24:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 10:24:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071564.1434988 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujbJT-0008Q9-VY; Wed, 06 Aug 2025 10:24:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071564.1434988; Wed, 06 Aug 2025 10:24: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 1ujbJT-0008Q2-ST; Wed, 06 Aug 2025 10:24:03 +0000
Received: by outflank-mailman (input) for mailman id 1071564;
 Wed, 06 Aug 2025 10:24:02 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=G2Yn=2S=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1ujbJS-0008Pw-H3
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 10:24:02 +0000
Received: from fout-a8-smtp.messagingengine.com
 (fout-a8-smtp.messagingengine.com [103.168.172.151])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7712d689-72af-11f0-a322-13f23c93f187;
 Wed, 06 Aug 2025 12:24:00 +0200 (CEST)
Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41])
 by mailfout.phl.internal (Postfix) with ESMTP id CCFB8EC0182;
 Wed,  6 Aug 2025 06:23:58 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-01.internal (MEProxy); Wed, 06 Aug 2025 06:23:58 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 6 Aug 2025 06:23: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>
X-Inumbo-ID: 7712d689-72af-11f0-a322-13f23c93f187
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:message-id:mime-version:reply-to
	:subject:subject:to:to; s=fm3; t=1754475838; x=1754562238; bh=Wz
	wHwkzc50ERBeJ6ZeKJqSpHzrrx9f+t6zaJsJmt9H8=; b=sqHlOQhbQp443K7LFr
	LxLE+YzW2ixgAe7ac0mXb7Lkjj9LeLVclIuMCI+Z61KGfg1jpHj1bMrc+u98K5/X
	d2AXh27QaRvVjPY4foGQI5wXulmXcQBI5WKVtTnLSbyQ+Sk8npWz3NWrNljKhenw
	ppzfEeT5KNJmDSlfKWfNw7coJWq12utLSa31sovRqHaLw0dz0C6H9VEqb/7qFxjj
	tuutbq8p3k4vDWs+/u7E/nN/BlwJX2fkzUGcQVySR7ykiEufFEQBDLS6pdgDAdqe
	Z6um3DQAqK0PSxrbm+QQkgEw7Ci0cKvoxC/ulStp+wdkZoboHJ13OQferzoYtPdu
	Ml1g==
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: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=1754475838; x=
	1754562238; bh=WzwHwkzc50ERBeJ6ZeKJqSpHzrrx9f+t6zaJsJmt9H8=; b=G
	o7PvN0jDlLmQ/XRffKkUUuQ3NI8m1y8ZcODy/G14tToBBah2Eqlk+0LN2knXL5du
	cRLt1wMzlEurMb2SgD0hPWB3gAt6GIQu0ekLI2UuDnOynWaKGJr8pHgSjSgYiaBt
	qgaOxVDzDoGU2BfxLroctOYY/BM3R/K+XA5uAuzyb9fB9CIODhxtTJdZ40PpoHcI
	S8rBlMWFkbP+25k/EcwE3DlgmhRGEfSKqNmki0tjuWfCVD9kGHqub8cUmOqRpqNn
	K926u3pmCQSki/UKjjVt7P9YA3FmDIaKNJd3bbB8AypHSmC7pCWjY5ge3ZpbmINC
	+yQ0RNTHt0rEFoHr/RzWQ==
X-ME-Sender: <xms:Pi2TaHYyP0ut2vte9PIUublszpeFFm-RJkmGE3vKxfB3bHSq-71utA>
    <xme:Pi2TaGl2T94A8svCSuJKWJt4Ng8Uwc0q52rgkSrJ_kNa-CPFLWXJ4i4u9jRd4zKWD
    tFYixMEKPV_Yg>
X-ME-Received: <xmr:Pi2TaLwJ3mq8Wo4gVNSbTzeEixBtPpGnuK_t6Tyyfkq21yxRwSVb6WZRZtbAoBVjBxH-7c1z7gCrY_V4--UyY8qn0SuQIylAALw>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgdduudejkedtucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkgggtugesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcuofgr
    rhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvihhsih
    gslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhephfetuefhiefg
    tddtlefggffggeevhedtvdefffeugfeiieeiheefteefgefggeejnecuffhomhgrihhnpe
    hgihhthhhusgdrtghomhenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgr
    ihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrd
    gtohhmpdhnsggprhgtphhtthhopedvpdhmohguvgepshhmthhpohhuthdprhgtphhtthho
    peigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtph
    htthhopegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhm
X-ME-Proxy: <xmx:Pi2TaMOKX-jnYJidwHFUY-fQ7pKjUYDKMPaoT8X_w8o8un_OTCBoRA>
    <xmx:Pi2TaHQytWox1tmCCEPYbWXmGtjve2Ug0JkLwHvj7YJpsA_N730jzA>
    <xmx:Pi2TaCZm_zDbX_Lsr9UJ-gexi6nNVjVokel-9MXt-3zNeyGUSI47wQ>
    <xmx:Pi2TaM2ZXiNv5xa93v5oGOOwtNlWsOKnobGgTSxQ0UvIHBoW5lTqEA>
    <xmx:Pi2TaJLEA3s-Ex-x4tZQaQ3OTJT2z-PeyVQ_z-N9FApGbwxnbC-lEoNK>
Feedback-ID: i1568416f:Fastmail
Date: Wed, 6 Aug 2025 12:23:56 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
Subject: S3 regression related to XSA-471 patches
Message-ID: <aJMtPLNqQFbGg5cs@mail-itl>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="COT8wTur3wgaNPW/"
Content-Disposition: inline


--COT8wTur3wgaNPW/
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Wed, 6 Aug 2025 12:23:56 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
Subject: S3 regression related to XSA-471 patches

Hi,

We've got several reports that S3 reliability recently regressed. We
identified it's definitely related to XSA-471 patches, and bisection
points at "x86/idle: Remove broken MWAIT implementation". I don't have
reliable reproduction steps, so I'm not 100% sure if it's really this
patch, or maybe an earlier one - but it's definitely already broken at
this point in the series. Most reports are about Xen 4.17 (as that's
what stable Qubes OS version currently use), but I think I've seen
somebody reporting the issue on 4.19 too (but I don't have clear
evidence, especially if it's the same issue).

The problem manifests in system freezing on S3 resume. Sometimes it
manages to show the screenlocker password prompt, and sometimes one can
interact with it for a second or two. But then it freezes, mouse stops
moving etc (but no reboot).
One time I managed to get pass the screenlocker and interact with dom0
for a few minutes before it frozen. Resuming domUs didn't happen (the
qubes-specific script doing so resume hanged), and also no logs
persisted on the disk from this case (on disk it looked like it never
resumed). Generally it looked like some CPUs were stuck.

It appears to be more likely to hit the issue if some domUs are active
at the suspend/resume time. While Qubes OS does suspend (not just pause)
them for the host S3 time, some activity before/after does appear to
matter. My test case that has ~30-40% reproduction rate involves several
firefox instances playing youtube videos.

I've talked with Andrew about it a bit, with not much conclusions.
Initial reports mentioned only MTL and RPL systems, so we focused on
something related to weird topology. But just today I've got a report
of the same happening on KBL too...

Another observation (possibly invalidated by today's report...) is that
all reports were about systems running Coreboot (but not only Dasharo
flavor - at least one was Star Labs).=20

Most reports are collected at https://github.com/QubesOS/qubes-issues/issue=
s/10110

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmiTLTwACgkQ24/THMrX
1yyHJQf+NGvZq6zdoaRqoLAZSueUHcTZ5WGaaKlgRz2tmEEj2Fp1Cj5lPfeXnGgz
+4N3mdKYpeRRlz7R1+MbRsmhcc2c5gnVIxmLzf30nopNN9HXfBdb7sBmmBwgvHvb
LGjxnoI6RafMNBrVChHk+Ya9hqb9O1ACGQ2eq/Syut73V6sMQHGvi6gJjO0ce46C
7FpuDhLJAbd3NKz04eVy/vH9c6j6PaAmXsKoIaATYdzK5EUXg/UkjROsPOCpel7P
VUN5FYgEHQLTmJ7+V4qMwcuBKVycLke34PADgmQi0luIokkIEpg4L7nBTkhgDisf
eppTdW7De+aJY7EUZMa1nFSrdzyJ5g==
=OZV8
-----END PGP SIGNATURE-----

--COT8wTur3wgaNPW/--


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 10:25:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 10:25:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071572.1434999 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujbLI-0000VU-9o; Wed, 06 Aug 2025 10:25:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071572.1434999; Wed, 06 Aug 2025 10:25:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujbLI-0000VN-73; Wed, 06 Aug 2025 10:25:56 +0000
Received: by outflank-mailman (input) for mailman id 1071572;
 Wed, 06 Aug 2025 10:25:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z+Xv=2S=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujbLH-0000VF-2S
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 10:25:55 +0000
Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com
 [2a00:1450:4864:20::532])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bad54a15-72af-11f0-b898-0df219b8e170;
 Wed, 06 Aug 2025 12:25:52 +0200 (CEST)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-61553a028dfso6906581a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 06 Aug 2025 03:25:52 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a0a396fsm1081664066b.42.2025.08.06.03.25.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Aug 2025 03:25: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>
X-Inumbo-ID: bad54a15-72af-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754475952; x=1755080752; 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=6sRR8qlD19/E5H9/tVm4PMDZYiUIYpV9uqZ+dLnm1RY=;
        b=Z2TXsTF0ToXPsGWNAOxppwdEUwgf9at2NQnDaV6Vdm59fnN4vM4R759DK3hNnZWO0d
         BDUK1shNPMdbKeUPN1gGfmyh+3Jet1KwWegi+Ivcdte7aOwy9u+/aN20LPtTt8FmbcW/
         JclVcjml3BBjbaFrHAJsCGFcsQfrfsKmCoY9fe2x5jGUMIN3bSdbf8NzUyjxUoJZXyvn
         u9viP+jiZFgH7jp63cMzsHhAAGNOWjXzj2F7LN79Pt51vdEo91u6+/KFTlv0cHoi+aLc
         3FF2XJdeTTc5hH1dPJr3Qr7KQ43VGigmRSg6mCGkUW57WOfH1BI12CYM2Ap1EHLQ1huM
         KaHQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754475952; x=1755080752;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=6sRR8qlD19/E5H9/tVm4PMDZYiUIYpV9uqZ+dLnm1RY=;
        b=q7vIzjYwVhrnbf/D+ZOukvZlmt9Ujlj/ShldfHnlQNOLwwC5ogT4W6Kl1hrqclHFkD
         ltdwS2n1VNOcayXDLyC0dBegt5671hXW3n1atfpdsowGcthqovIcebr1/fJnQXzs6XZf
         4fGN+8og/41rqfqy1f3rnCyVZAYhEN+d5wLn8IWQA/m8gFsdP1iVg5n4nsBYRonKFcDj
         fTHvR1hh4zhp6sjJbS5/DYG09wpCnYnOC5qkAx0Y8JVJIDyCU8rQY7PQQdTDbqVT/cKM
         Md3lOuYNrjaLlsfaLHJkUL83wasK+qaj83DC9fW4i3dA08Z6HKtXSEi+1OQj8CKcqUCn
         Clvg==
X-Forwarded-Encrypted: i=1; AJvYcCXm5IdG63HtBeqbX8VSHm64D+0tEXmqFJ17taMskWToJWBA3IKFSX2JgXZ4D6RyO6Vx1uS0Ipn8KWw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxUSxkalmJsaD2frspEcNAHGJVyhGvSvLNmIrQDRCbHy1PK2jVg
	JcTACXzcbsH7Ai+6l5zGPE7KEPF5K3MWArj2OAdBLfiGcrZAYfXRx1d8AvvCQokWlosYGfD4NZQ
	5D1U=
X-Gm-Gg: ASbGncvmGIiuUG+qCNpdsveXAe1XDWT76djRTmZWqcWWVdpFjtiq9d0/FMFsDK88b8R
	8f1ue/X3acOH3HbZab+4HZGnL1lo9mXTE6zOmgWgy47W/AZvgclVMRKonHtxi0dytVAkYgdNy+F
	xfgBuWOKedAS6DcZiTTzimrHgGuBjQ0lYahadSNv/NsmWXDlOoWEUEMkKdtyH6nQ0OWASgnlRGj
	d3nvFoXDMmJcmNn2SyJ4Ma2qP1wXu4cyYfErYT+LUxqROaUMuSYyhceE+jhEDJ7k/YFIYBOLxYX
	Dehvm9iEdR5OMYJfTz9nahntw2tEPlf6MjF0eESDjhozvG4JJYFSqDWblZn287G4woz30XfHzpc
	mB8gM4PLHTtyKATx6QVkmVBpJ7Aa2ufjoAxUwbwyZg9mr8ubAUthx6FXHRsGiWeS12OmWqcHMKc
	FwMQK7ILE=
X-Google-Smtp-Source: AGHT+IGA1fX1kRYo6jou0nmmgTbqUtrg+rIMCPegBt5edbHHXG3uthh1/r8WLW31/EYD2RYXIJ8rDQ==
X-Received: by 2002:a17:906:6a14:b0:ae9:c2b9:7eba with SMTP id a640c23a62f3a-af992aab7a3mr178065866b.24.1754475952183;
        Wed, 06 Aug 2025 03:25:52 -0700 (PDT)
Message-ID: <18c28180-c0ff-4b54-a964-e8ab753014ea@suse.com>
Date: Wed, 6 Aug 2025 12:25:50 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 8/8] x86/mm: adjust loop in arch_init_memory() to
 iterate over the PDX space
From: Jan Beulich <jbeulich@suse.com>
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20250805095257.74975-1-roger.pau@citrix.com>
 <20250805095257.74975-9-roger.pau@citrix.com>
 <31691bf7-94bf-4f73-b04c-a32f86bb0e37@suse.com>
 <aJIi6wrNZck1DSU_@macbook.local>
 <68da529e-7fd7-4ca5-b6ef-4c1f95423246@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: <68da529e-7fd7-4ca5-b6ef-4c1f95423246@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06.08.2025 10:11, Jan Beulich wrote:
> On 05.08.2025 17:27, Roger Pau MonnÃ© wrote:
>> On Tue, Aug 05, 2025 at 02:38:38PM +0200, Jan Beulich wrote:
>>> On 05.08.2025 11:52, Roger Pau Monne wrote:
>>>> --- a/xen/arch/x86/mm.c
>>>> +++ b/xen/arch/x86/mm.c
>>>> @@ -275,7 +275,7 @@ static void __init assign_io_page(struct page_info *page)
>>>>  
>>>>  void __init arch_init_memory(void)
>>>>  {
>>>> -    unsigned long i, pfn, rstart_pfn, rend_pfn, iostart_pfn, ioend_pfn;
>>>> +    unsigned long i, pfn, rstart_pfn, rend_pfn, iostart_pfn, ioend_pfn, pdx;
>>>>  
>>>>      /*
>>>>       * Basic guest-accessible flags:
>>>> @@ -328,9 +328,20 @@ void __init arch_init_memory(void)
>>>>              destroy_xen_mappings((unsigned long)mfn_to_virt(iostart_pfn),
>>>>                                   (unsigned long)mfn_to_virt(ioend_pfn));
>>>>  
>>>> -        /* Mark as I/O up to next RAM region. */
>>>> -        for ( ; pfn < rstart_pfn; pfn++ )
>>>> +        /*
>>>> +         * Mark as I/O up to next RAM region.  Iterate over the PDX space to
>>>> +         * skip holes which would always fail the mfn_valid() check.
>>>> +         *
>>>> +         * pfn_to_pdx() requires a valid (iow: RAM) PFN to convert to PDX,
>>>> +         * hence provide pfn - 1, which is the tailing PFN from the last RAM
>>>> +         * range, or pdx 0 if the input pfn is 0.
>>>> +         */
>>>> +        for ( pdx = pfn ? pfn_to_pdx(pfn - 1) + 1 : 0;
>>>> +              pdx < pfn_to_pdx(rstart_pfn);
>>>> +              pdx++ )
>>>>          {
>>>> +            pfn = pdx_to_pfn(pdx);
>>>> +
>>>>              if ( !mfn_valid(_mfn(pfn)) )
>>>>                  continue;
>>>>  
>>>
>>> As much as I would have liked to ack this, I fear there's another caveat here:
>>> At the top of the loop we check not only for RAM, but also for UNUSABLE. The
>>> latter, like RAM, shouldn't be marked I/O, but we also can't use PFN <-> PDX
>>> transformations on any such page.
>>
>> Right you are.  I'm not sure however why we do this - won't we want
>> the mappings of UNUSABLE regions also be removed from the Xen
>> page-tables? (but not marked as IO)
> 
> Yes, I think this is a flaw in current code. Perhaps it was (wrongly) assumed
> that no UNUSABLE regions would ever exist this low in a memory map? Imo we want
> to deal with this in two steps - first sort the UNUSABLE issue, then improve
> the dealing with what is passed to assign_io_page().
> 
> While there we may also want to find a way to tie together the 16Mb boundary
> checks - the 16UL isn't properly connected to the BOOTSTRAP_MAP_BASE definition
> in setup.c. Yet then: Am I overlooking something, or is the 16Mb boundary not
> really special anymore? I.e. could e.g. BOOTSTRAP_MAP_BASE perhaps be moved (at
> least in principle), either almost arbitrarily up (within the low 4Gb), or down
> as much as to the 2Mb boundary? The relevant aspect here would be that the
> comment saying "the statically-initialised 1-16MB mapping area" looks to be
> stale, as of 7cd7f2f5e116 ("x86/boot: Remove the preconstructed low 16M
> superpage mappings"). If there are excess mappings to worry about, those may
> nowadays well live above the 16Mb boundary (because of it being 2Mb mappings
> that head.S inserts into l2_directmap[]).

Hmm, extending this to beyond 16M collides with mappings done by acpi_dmar_init(),
erst_init(), and acpi_hest_init(). Luckily efi_init_memory() runs only afterwards.
While I guess I could limit this to the space 2M mappings were done for in head.S,
theoretically there could still be a collision afterwards. So I think we need to
either somehow exclude such mappings (might end up fragile), or stop (ab)using
the directmap there. Thoughts?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 10:37:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 10:37:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071582.1435008 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujbW3-0002NI-9c; Wed, 06 Aug 2025 10:37:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071582.1435008; Wed, 06 Aug 2025 10: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 1ujbW3-0002NB-6T; Wed, 06 Aug 2025 10:37:03 +0000
Received: by outflank-mailman (input) for mailman id 1071582;
 Wed, 06 Aug 2025 10:37:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z+Xv=2S=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujbW2-0002N5-8n
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 10:37:02 +0000
Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com
 [2a00:1450:4864:20::530])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 47669c7a-72b1-11f0-b898-0df219b8e170;
 Wed, 06 Aug 2025 12:36:58 +0200 (CEST)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-61592ff5df8so8465758a12.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 Aug 2025 03:36: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
 a640c23a62f3a-af91a0771basm1064222066b.29.2025.08.06.03.36.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Aug 2025 03:36: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>
X-Inumbo-ID: 47669c7a-72b1-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754476618; x=1755081418; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=kmdMqJ0LFEmB9pgD8g7lCOC7MqbwsQT9iTvZA8taJvc=;
        b=SDatAIsrTy494nZ+WMSze+MfKEj0rEw4Uast0GWz6aK9CUq5MM2Q7hPhjdy9G6VAGj
         q7hMSRtDxtW4FrExEqQmoKaOr/ALJFDdfhTBqndJyW/NXSIuHKAJ8aQvHMj/AZKmKxb7
         7A/dWYQTApYpt89rT7zBhadJOTvQpjFs8/Hrfu767BG3+N14ORxjKJV88zm1KFj0+QpG
         avmXEBNKFD/9sRAd880ZyNHWpQ7biXYvxHfYVJom5/oTUz5KFt/3W2YFssUqAFhInoop
         xjjkU0hSq15oBQfWmsWrrRwXIXQKoBm6BLxZQkjw5HAr4Iaty+WSy/Qo2Nuo4ALmhoeT
         g0aw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754476618; x=1755081418;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kmdMqJ0LFEmB9pgD8g7lCOC7MqbwsQT9iTvZA8taJvc=;
        b=ZE9qUEgDUI8NJyQ7Esv49wW75RdAUj2L+Y7mPom7MJZ412XJSxkqvheVwxI5BXkT+g
         fBZQE8KYNFjwbY8fivXdpi7EwKFikC4Rsdx/aHbySVAcaJ0mug9+Q+iEp0sdvJE5z36S
         fwxaXeC3DgMbreyADfdzCizA84K7voPmlVk/eeyjs8Qk5wCNQZf3bbkROtZE/JRx/hz0
         Us1N8Y+Gg49Dgj8nuVtcfruzkGGbXfGCeR+Hp5N2f0wDAf6BR9u7wFfus5316aCjf8hG
         TYqEJQYtDpYqYZVG+LVZghKexyrQRl3kFdBfjYfe3BeOQRc8TpTaJGoHslhUg071liLT
         mOJg==
X-Forwarded-Encrypted: i=1; AJvYcCWhzjQau/iiMkGJN7pKVcC0D3k9+6pxBP308j/C7HmTPEKWofrfE39QlfydAQ3R3hmais93tzGn2bI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxTJSy/Ub6PtuLlyJhIzpo3HzAjgZP4y/aJSb700SMYdzcfKUq/
	SH8haecpNYNDoVVHBBwOMm6/eZLV3gWllCd66SJhO8P4Ne802FAlqvvIkGtSH/QC1A==
X-Gm-Gg: ASbGncv7bDTMAAdcT+h6LDQbftZYWLA3JzPBfJutGSMkVfUtoHmzIeE0NWNwipA1KwB
	beTXeWCjQKZ0fij3Hn0DlQwgIgkcp0YsIqUccbF+uMTB64X4qqS94pwaHLyraPjlGtWEsMgsBEA
	mssKsx+ZgGDimlksPqban6LQYcOX6Jf4dZRnyp6/DpBmsv/Eea3bd9XQEZP1/NCKGWGeUkjWDmY
	fPyaVBmWJPEUjZRizoTI0/R5Qu9NpTUGPp4lPO6bLfnLzG0BtjSZhnofgKqmi/gZO9TX5JFhxOB
	7c57H0po/WJW+9GCj+H/uhvNWRsIlPVyBSpD2gMxFHVV2fvnT+cm2L7oGTM2TVlwGEce09/hVIS
	Xv4ucut9DzMOSe8Bn9FNCRXoPG1hTokUp+daLal+OEmxKj9k4Ei71Od9lVpS/mHwk6CZRqSKcYU
	uS37Ho+60=
X-Google-Smtp-Source: AGHT+IHdgGqOhQJNYmXRXCPKn9s1N9oUbZ4Lgxw8lcg2wdJO6G4qA1/7RNzY9tTOnb6k0aielllBsA==
X-Received: by 2002:a17:907:3c92:b0:ae3:cb50:2c6b with SMTP id a640c23a62f3a-af9903e8a15mr242047066b.38.1754476617498;
        Wed, 06 Aug 2025 03:36:57 -0700 (PDT)
Message-ID: <f971f8a8-487e-4b9f-8c75-80ebfe70c3b6@suse.com>
Date: Wed, 6 Aug 2025 12:36:56 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: S3 regression related to XSA-471 patches
To: =?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>
References: <aJMtPLNqQFbGg5cs@mail-itl>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aJMtPLNqQFbGg5cs@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06.08.2025 12:23, Marek Marczykowski-GÃ³recki wrote:
> We've got several reports that S3 reliability recently regressed. We
> identified it's definitely related to XSA-471 patches, and bisection
> points at "x86/idle: Remove broken MWAIT implementation". I don't have
> reliable reproduction steps, so I'm not 100% sure if it's really this
> patch, or maybe an earlier one - but it's definitely already broken at
> this point in the series. Most reports are about Xen 4.17 (as that's
> what stable Qubes OS version currently use), but I think I've seen
> somebody reporting the issue on 4.19 too (but I don't have clear
> evidence, especially if it's the same issue).

At the time we've been discussing the explicit raising of TIMER_SOFTIRQ
in mwait_idle_with_hints() a lot. If it was now truly missing, that imo
shouldn't cause problems only after resume, but then it may have covered
for some omission during resume. As a far-fetched experiment, could you
try putting that back (including the calculation of the "expires" local
variable)?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 10:46:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 10:46:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071599.1435019 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujbfQ-0004EM-5b; Wed, 06 Aug 2025 10:46:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071599.1435019; Wed, 06 Aug 2025 10:46: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 1ujbfQ-0004EF-1K; Wed, 06 Aug 2025 10:46:44 +0000
Received: by outflank-mailman (input) for mailman id 1071599;
 Wed, 06 Aug 2025 10:46:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=G2Yn=2S=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1ujbfP-0004E9-3v
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 10:46:43 +0000
Received: from fhigh-a8-smtp.messagingengine.com
 (fhigh-a8-smtp.messagingengine.com [103.168.172.159])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a25b96dd-72b2-11f0-b898-0df219b8e170;
 Wed, 06 Aug 2025 12:46:41 +0200 (CEST)
Received: from phl-compute-09.internal (phl-compute-09.internal [10.202.2.49])
 by mailfhigh.phl.internal (Postfix) with ESMTP id A60E9140011C;
 Wed,  6 Aug 2025 06:46:39 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-09.internal (MEProxy); Wed, 06 Aug 2025 06:46:39 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 6 Aug 2025 06:46:38 -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>
X-Inumbo-ID: a25b96dd-72b2-11f0-b898-0df219b8e170
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=1754477199;
	 x=1754563599; bh=uoAcjmEPeXl7PTXRUb8xvLhW1b9d0oqFjbUHC8fRFHs=; b=
	ms92w+4Vmfhp7ZVUwV+34usBgcsVsMqZr2Fl56K5RefcGGBOc4Pygp7vq5fyTdii
	lG33wTDufug8tjwZLHrdCzwypW0KxyYcu9bqPq1foNRcz+quPvQCD0Ea9UHupJ5K
	ZIK7NiKYkJV1jVWIRjKBu/uv5nsQsvBb5BoK0qvpiitxmijQoB4ypxG4VVzFwAaz
	LykILBH7ioxnYehC/OyuaiknDWFI5b3WEtpCgxgbrhEA1rTuCecHc3hQSHyzIWmB
	JWE7PY9cvFKxBg4a2WdvVWrCYeKqcmAoaQeODiTj8inQfwT+xwhnG4R37ullW/gC
	hHlExBh5y9VBF8fml5MxRQ==
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=
	1754477199; x=1754563599; bh=uoAcjmEPeXl7PTXRUb8xvLhW1b9d0oqFjbU
	HC8fRFHs=; b=PKwlTJ9znKIeaIXgWMpVYmdH9zmBkXzpbKonAAmP5C5Z2flxMct
	+aZe5DQOH6QeDo8K0UK9xadU1gskgjTWzijkz7aNklIvglrCUMyOS3sP3tVSPw5P
	GUubsO2yCiGju2dzZvQPUuxwVGbB/YyuCzKj7KO96rtswroakugfc9XZu4cA9WHS
	VmChr30bHniNk/qhxpNPfLdkjCpJVkP8gJGmSTYkTwko1KbKyc/Q+lPS1NWiSuj1
	MNEoDR2/bNjXaVswFfvRL+IBPwoAsKqFjGm2TvZgKICi/VVkf4zZITlWbc655Qpl
	bWePyGK1/y7XDF23oT9gISaowq+gJbTIwyg==
X-ME-Sender: <xms:jzKTaMPjb1fc1L1oWbDvIP0q16WrQuYeBSrOO4Lm3lBpeoMKdhPeFA>
    <xme:jzKTaGM0hwcVbNb0vPxhTzzkjQW-B00eVNeU7IsrvzJ5Z6OvLeDJsXUYSddmIZbyS
    9HSMd4yXVdr9w>
X-ME-Received: <xmr:jzKTaMvDsLuICZYbI4EXXVrbI_GkJHtHFL6IMdxMr_cGQMRXd9TnQS0JrsAQb5G1Uk9xokUxjPV4rFbpvZV6J5Q3x4Ibuhyy444>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgdduudejkeehucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfduleet
    feevhfefheeiteeliefhjefhleduveetteekveettddvgeeuteefjedunecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepfedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtohepjhgsvghulhhitghhsehsuhhsvgdrtgho
    mhdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpd
    hrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdho
    rhhg
X-ME-Proxy: <xmx:jzKTaAU7sa251EPpEOpir6WepzKf0dt0xWeVEaeZRpLsK0v4QfTi5A>
    <xmx:jzKTaEsgqvgXBHt1mdHliF4aqc-TECPoH5kz1ZUIQRbfqQ_Nw5HD5w>
    <xmx:jzKTaMUravZMGCEo5mpNPisogr6QgRASi48mIasYIRyb5maZlZZznQ>
    <xmx:jzKTaHlhUuFjs4RMYodlIRgm9cds0PsI_1dIi2oPdHHbfJI_xtfxCA>
    <xmx:jzKTaEUii5ayCJuow2Wk_eB7Bed0NqJMcFIl6KtASP8AT_EfeoxoBq5I>
Feedback-ID: i1568416f:Fastmail
Date: Wed, 6 Aug 2025 12:46:36 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: S3 regression related to XSA-471 patches
Message-ID: <aJMyjYfeTL5uPRtk@mail-itl>
References: <aJMtPLNqQFbGg5cs@mail-itl>
 <f971f8a8-487e-4b9f-8c75-80ebfe70c3b6@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="napIOcvaMj7fpBqC"
Content-Disposition: inline
In-Reply-To: <f971f8a8-487e-4b9f-8c75-80ebfe70c3b6@suse.com>


--napIOcvaMj7fpBqC
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Wed, 6 Aug 2025 12:46:36 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: S3 regression related to XSA-471 patches

On Wed, Aug 06, 2025 at 12:36:56PM +0200, Jan Beulich wrote:
> On 06.08.2025 12:23, Marek Marczykowski-G=C3=B3recki wrote:
> > We've got several reports that S3 reliability recently regressed. We
> > identified it's definitely related to XSA-471 patches, and bisection
> > points at "x86/idle: Remove broken MWAIT implementation". I don't have
> > reliable reproduction steps, so I'm not 100% sure if it's really this
> > patch, or maybe an earlier one - but it's definitely already broken at
> > this point in the series. Most reports are about Xen 4.17 (as that's
> > what stable Qubes OS version currently use), but I think I've seen
> > somebody reporting the issue on 4.19 too (but I don't have clear
> > evidence, especially if it's the same issue).
>=20
> At the time we've been discussing the explicit raising of TIMER_SOFTIRQ
> in mwait_idle_with_hints() a lot. If it was now truly missing, that imo
> shouldn't cause problems only after resume, but then it may have covered
> for some omission during resume. As a far-fetched experiment, could you
> try putting that back (including the calculation of the "expires" local
> variable)?

Sure, I'll try.

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmiTMowACgkQ24/THMrX
1yyz/gf/TAjjh3F2m+hJHergkwX4ZwPtXu33CoPXWPENb6t2wXDgEVOP4K6tN4j9
5/hwE0lDaFiHFTYr/lWGY2dcV8Z60lJCYv+Pg1NYu25VhE5yyByanBEnftmwiJs1
nDJ711I9gG82uqdzDlMh6jzx4C5EtgEyYJISLwQ9B5hsKgmfQ2zCsMF3jaqna5QJ
zJTx0tbR4JWkkNvlj0R0a6LPFUYrPiIBlnC3c0MBYs27ZAu8X7ZXZk0mkLoBd+W1
Z0FOqKvgCorTkdgigbfLab7NgY3W3r2ORuXbD+adim964UzkH3CFlm9c6GvYifla
RblTFxvVKcL3KHB7zmO6mYHgwyWVeg==
=sbTY
-----END PGP SIGNATURE-----

--napIOcvaMj7fpBqC--


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 10:48:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 10:48:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071606.1435029 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujbge-0004iU-D9; Wed, 06 Aug 2025 10:48:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071606.1435029; Wed, 06 Aug 2025 10: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 1ujbge-0004iN-AY; Wed, 06 Aug 2025 10:48:00 +0000
Received: by outflank-mailman (input) for mailman id 1071606;
 Wed, 06 Aug 2025 10:47:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kasG=2S=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1ujbgc-0004iF-VI
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 10:47:58 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d07636c4-72b2-11f0-a322-13f23c93f187;
 Wed, 06 Aug 2025 12:47:57 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-458b49c98a7so31729745e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 Aug 2025 03:47:58 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-459e5887b7fsm42153925e9.30.2025.08.06.03.47.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Aug 2025 03:47:56 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d07636c4-72b2-11f0-a322-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754477277; x=1755082077; 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=kf5pgCVN5jPLE1G0eb2TRa3nZG3xWz4Hz3vRLpntyGM=;
        b=D70owyZ8c0OEm+VqV5vhLygFi9D3p/TanN0EAz3tBSJls7heHCAZ7EWKBBSLlUseK0
         MnTLJcykajM6ElzMuBmts+dWQAkv5iW2oozd3ay+BZ5mhgyZT2CJC32vUsFcPR57OOs+
         PUg8ZJXfl/c8R+U7CxRwpnovoJUURg32K3PQ0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754477277; x=1755082077;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kf5pgCVN5jPLE1G0eb2TRa3nZG3xWz4Hz3vRLpntyGM=;
        b=KJW3mGhjLQOPUIvOgn7yl9s1H1fTsfgutkYAjnqoaSyad/WfF0c5QX4Sq/STQqfJhw
         q3fDMtKA/fp6GhOjMgO8s3INUlSY4SSZ/2Q4fgbo2pjhyw07StoumIgqn4V4ZfFKPOFq
         aiACin0tyP4co2AGmaIyNT0/btKWaDD67Mn6K7BPAbKf/2clTqvmtdqzLUEzvMRdF4Dz
         KKSO/6gSuP2fA6mMC1AvcrYKY6CbHKLybUMF1j27RmwwCtcoaaDIyj/cqx3NCMxalrX+
         r0i7qUuUd7HTJKANwovYUxIt1VrH8thsUzObTUFXdrbhXY1BLP0QpUzbfOsx919BGYe/
         ULXQ==
X-Gm-Message-State: AOJu0YxYya7ETKORgT9wrdq53d/mT2Rpg1gtBFhPo6RJDUu/973ar8y8
	OuwJYkj9zGLxqOgZ7PP2ps9TG04jBMd5VOFAv+AQ1yxhY2Ze5Zw9QrYpTs2YoLYKGog=
X-Gm-Gg: ASbGncvo5XIR0cP3enU5oItEeZKFNK2beY6g3M77+27YOKJrxrNG1gDmppOEy2UMxgP
	TrVq/iI2xPVvKQrFTjCveyjhd5DQ5MM9G/zib4F/1qXdTdDHv3hmjyvB834h9Ywu7gSJvGmz5Lt
	Rw6mwwkL/4n4YPP6C4IPiHOfLqOxplZmxYrj+jSRegFUQ66u4QngusVcyTf01sSuiynulj/FjBo
	moFLcEnSPoRe3lUQtGxXRWSbXd9v6myEb6wCiVj0GD7MKdXEaS5bIoKtzP8B7Fp38XyIHi/3Q/n
	j+52/nATSMn4u7Stu9OPjYphvwHg1+6fL8uDSzkA4sHXEQk/tZEFNsSjhD5cxW34hWLp6YRDGrH
	egsldQJmshB/CK0eojKd7CanSgLE5gPEG/hHp0hDV3tCGI70DXikw0SW8I/QcyymAWg==
X-Google-Smtp-Source: AGHT+IFQ6/THYXInIDZ4Tr0/VubQJxNWCOvWahc34YnbYIL9nxi7nTWvwIczqpueaNWXp32DEEwrlw==
X-Received: by 2002:a05:6000:2204:b0:3b7:9d83:50ef with SMTP id ffacd0b85a97d-3b8f420f03bmr2082001f8f.55.1754477277242;
        Wed, 06 Aug 2025 03:47:57 -0700 (PDT)
Date: Wed, 6 Aug 2025 12:47:56 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com,
	anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org,
	michal.orzel@amd.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: Re: [PATCH] ns16550: ensure polling timer is disarmed
Message-ID: <aJMy3KBPy7tjjYj3@macbook.local>
References: <20250730031249.1613142-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20250730031249.1613142-1-dmukhin@ford.com>

On Wed, Jul 30, 2025 at 03:13:31AM +0000, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com> 
> 
> As it stands, polling timer is kept in the list of timers even after the
> interrupts have been enabled / polling disabled on ns16550-compatible UART.
> 
> Ensure polling timer is removed from the timer list once UART interrupts are
> enabled.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
>  xen/drivers/char/ns16550.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c
> index df7fff7f81df..299773d80065 100644
> --- a/xen/drivers/char/ns16550.c
> +++ b/xen/drivers/char/ns16550.c
> @@ -191,6 +191,10 @@ static void cf_check ns16550_interrupt(int irq, void *dev_id)
>      struct serial_port *port = dev_id;
>      struct ns16550 *uart = port->uart;
>  
> +    /* Ensure polling timer is disarmed and removed from the timer list. */
> +    if ( !uart->intr_works )
> +        kill_timer(&uart->timer);

I think if anything you should issue a stop_timer() call, but not a
kill_timer() one, otherwise the uart code will hit an ASSERT when
calling set_timer() from ns16550_setup_postirq()? (that's from
_ns16550_resume()).

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 10:53:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 10:53:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071614.1435039 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujblc-0006WQ-W2; Wed, 06 Aug 2025 10:53:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071614.1435039; Wed, 06 Aug 2025 10:53:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujblc-0006WJ-Sl; Wed, 06 Aug 2025 10:53:08 +0000
Received: by outflank-mailman (input) for mailman id 1071614;
 Wed, 06 Aug 2025 10:53:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kasG=2S=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1ujbla-0006WD-RF
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 10:53:06 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 884ab04d-72b3-11f0-a322-13f23c93f187;
 Wed, 06 Aug 2025 12:53:06 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-459eb4ae596so1905085e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 Aug 2025 03:53:06 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3b79c453333sm23425921f8f.45.2025.08.06.03.53.04
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Aug 2025 03:53: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>
X-Inumbo-ID: 884ab04d-72b3-11f0-a322-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754477585; x=1755082385; 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=WCiHEodaH1oyXLbRzUSiYpww7CaOdEbPmMDwKVmpVC4=;
        b=wWtmM7bWseCjVHYJhC5KdoGOVb/BZEpOxkPPRLxHyFzKXMjTOkyGNa+DLGuZ43NDqI
         jkrdwwgygfqUkl5YlB+dnds0k7PdsVxf4TiKinf6e8zGvR+G0BOyIe2wOZFrpn7lEd7+
         9G5Zf3yg7ykCT15fXnU/275Y4ey7g1wA+rZXs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754477585; x=1755082385;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WCiHEodaH1oyXLbRzUSiYpww7CaOdEbPmMDwKVmpVC4=;
        b=GzNjmXgUagGKg5L7PgNYTUS6O59RCwXB5tGlwe3dj0JGQ6Ichf+bz7zYN9mhJkcbS0
         4b36cON/yoCAe3VE5cXfvWrb7/FnTYHbgQ7/Jm5aEh5HXPC/LcBFe60awQnHyxGnfFSH
         1LWghHvo76Z/n2ivq0d29rwIqY+2GDEWksytD5BOW7yVE4kRStCqYIuuQ+vmB6zO+WGv
         9KQr/EIfq/OKAyDD6kiH8uoossFRGf4N7mhKc6JcuaMSDyBH2W5u62BBxr4IUVHjxefa
         V1ivOLPSeGa1+OchQM6tKg+2RUj4MPbl7ZWdjDFA4PkGuUf3wwrkqunV+ejxfcmKc9aJ
         +0NQ==
X-Forwarded-Encrypted: i=1; AJvYcCVsU/zjmJX5XNMg8jpMeZf4L5xbIvbLb8M7S4Wxtois2mevTcuAozRDnngXx/tKHaAe9cvQbXfwdqc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywkf5iHSdQo33ncaen2B4FZEBdd0k7TxCq3nnjJ9bRYooAhwhha
	MPUqoATBAX9VAHsLoG5njToXAYVD32FgINlS4ZrHs37tA5eE5s7m7LGxseT+oOPA2cU=
X-Gm-Gg: ASbGnctQ3U86G+yHVrtKYlCeQZu0v+xA0xgeGadK6DEAyxa/NRg+cOb95xb6HHEmtRd
	w15P3veXVuFUL+0eFNdYLXjVxfq238FEpaiPXrF6jdtx3+pLKAvm9HqZtsFkaegtEBSkhL6BFGo
	w/2vLw2smMw0UP/KnMjQA/QscRxxI4wRAb4SX1QPZ6ZhE5BurupdQzJSJ7KY+TIPc26nd4jBJH2
	+mFgpv55vvKpYRCITNFRqSZpQCeqKrUWoYBPLGhzKSAFncki8eygh44LKe4LewlH7t+pWlgcM6w
	DwbrfljCzSgGX+b0nFpZoj0fmI6L8gYaZWua4bhstxbI9C298xzWZfpN5VPx/PLDlkeqG24BReW
	nLxd35sC6UGTH+L2XmrYhV++eZp74Vj2+6wwZ5nq+/1ZVbHdzhrn8uDgNBf27s1QeDg==
X-Google-Smtp-Source: AGHT+IHr5dX5EoJ2leoPkajolYtICUIWEdDkmtCMXF0dY9GIHmNuN8DuNX0XwkzR2WlfWhDFICj6rA==
X-Received: by 2002:a05:600c:5490:b0:458:add2:d4b4 with SMTP id 5b1f17b1804b1-459e741bd55mr20871365e9.12.1754477585446;
        Wed, 06 Aug 2025 03:53:05 -0700 (PDT)
Date: Wed, 6 Aug 2025 12:53:04 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: dmkhn@proton.me, andrew.cooper3@citrix.com, anthony.perard@vates.tech,
	julien@xen.org, michal.orzel@amd.com, sstabellini@kernel.org,
	dmukhin@ford.com, xen-devel@lists.xenproject.org
Subject: Re: [PATCH] ns16550: ensure polling timer is disarmed
Message-ID: <aJM0EFYKVSQOoB4_@macbook.local>
References: <20250730031249.1613142-1-dmukhin@ford.com>
 <5a4dc92b-139d-4fa5-9baf-2ebc41bba758@suse.com>
 <aIplBkq7BL52Fn/Q@kraken>
 <78128ec6-b79f-4d4c-a298-72315b190036@suse.com>
 <aIvjJP6bpJpsQRtQ@kraken>
 <cc3812ca-b929-416c-af75-78c3c3b0d664@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <cc3812ca-b929-416c-af75-78c3c3b0d664@suse.com>

On Fri, Aug 01, 2025 at 09:34:42AM +0200, Jan Beulich wrote:
> On 31.07.2025 23:42, dmkhn@proton.me wrote:
> > On Thu, Jul 31, 2025 at 08:54:10AM +0200, Jan Beulich wrote:
> >> On 30.07.2025 20:31, dmkhn@proton.me wrote:
> >>> On Wed, Jul 30, 2025 at 10:12:54AM +0200, Jan Beulich wrote:
> >>>> On 30.07.2025 05:13, dmkhn@proton.me wrote:
> >>>>> From: Denis Mukhin <dmukhin@ford.com>
> >>>>>
> >>>>> As it stands, polling timer is kept in the list of timers even after the
> >>>>> interrupts have been enabled / polling disabled on ns16550-compatible UART.
> >>>>>
> >>>>> Ensure polling timer is removed from the timer list once UART interrupts are
> >>>>> enabled.
> >>>>>
> >>>>> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> >>>>
> >>>> Wasn't it Andrew(?) who suggested something along these lines? That would
> >>>> want reflecting by a tag then.
> >>>
> >>> Yes, indeed.
> >>>
> >>>>
> >>>> Also, what's the real problem you want to solve here? The timer function
> >>>> would be run one more time after ->intr_works is set, and then the timer
> >>>> will be permanently inactive (up to a possible S3 resume). Is it being on
> >>>> an inactive list an actual problem? (IOW I'd like to understand if the
> >>>> change is merely cosmetic, or if there is some actual benefit.)
> >>>
> >>> My understanding is running polling timer one more time after the interrupts
> >>> are enabled is the issue: if there's a pending timer when it is known the
> >>> timer not needed, then the timer should be canceled.
> >>
> >> And the effort of canceling outweighs the one extra running of the timer?
> > 
> > I think so, because intr_works will not flip at run-time once set.
> > If so, no need to keep the timer ready to be rearmed.
> 
> Well, to me it looks like a code size increase with extremely limited benefit.
> Hence while likely I wouldn't outright NAK such a change, I also wouldn't ACK
> it.

Hm, indeed the net win of this is dubious, as the extra polling
interrupt would only happen once.  Using stop_timer() would be less
heavyweight than kill_timer().

Overall I think it needs justification in the commit message, as the
timer cannot be removed from the list of timers, otherwise it's usage
on resume from suspension will trigger an ASSERT, so part of the
commit message is stale.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 11:09:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 11:09:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071633.1435049 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujc1W-000051-8r; Wed, 06 Aug 2025 11:09:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071633.1435049; Wed, 06 Aug 2025 11:09:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujc1W-00004s-5w; Wed, 06 Aug 2025 11:09:34 +0000
Received: by outflank-mailman (input) for mailman id 1071633;
 Wed, 06 Aug 2025 11:09:33 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kasG=2S=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1ujc1V-0008WC-3V
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 11:09:33 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d3d487f1-72b5-11f0-a322-13f23c93f187;
 Wed, 06 Aug 2025 13:09:31 +0200 (CEST)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-459ebb6bbdfso440315e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 06 Aug 2025 04:09:31 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-459e58400f5sm42973835e9.2.2025.08.06.04.09.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Aug 2025 04:09: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>
X-Inumbo-ID: d3d487f1-72b5-11f0-a322-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754478571; x=1755083371; 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=RxIvSoWBKo41DppR8gQkPHqo85xyT2GTIIMzJywv40Y=;
        b=fuE6uAgTAYLMrRpaVZb6PQfTvbgsmYEMeKn0bFE4HkSPDKdLanuKsjRLjJ52sTbUjt
         QOmrjz/pz04mLsv4oZ2cT5ks8rkir4ksG3Kq/ZQa0mX054xtPjigFUf4NdHxVO8yj277
         Tag3mDWpJgRCzHNppNMjcwo/JoUqbfgbVbJ4w=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754478571; x=1755083371;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RxIvSoWBKo41DppR8gQkPHqo85xyT2GTIIMzJywv40Y=;
        b=RLQk04VPa3rL3L7hYmRmLXo7Dl4nsFwvvp0DdAyuQZAqX6q+2wb1XwSSZXDuKjlslG
         E9MdrGIvfkoq8mlhAGF9BBp/5DN0WtP3MNPraAManKxSYx8qJMReQGnvjI2aA4x1926h
         Q2kpy/l1/PxJbbP+Tu/Nd2Y0o5+ZG84vDgZ0NGnigSJtlzQYN/Jn3PtEebDdfBfFmAhg
         V/rd7kIC9u+u192WaSk+gcOcIJZ1tvg/HZHkcvSoKu3kQPIU6uUjd2L06llElC03bM6D
         7D3CAhJVRaj8x1uf48W30xnKVIMyOOJsrK4iMDfyDT8SGkDlA9LjsHZhAO9fF3jZzFYf
         mnaQ==
X-Gm-Message-State: AOJu0YwPr2wMxeOlKtZirfwhF2emiZLgnwpzRVs0FHjh/xsgt+AaAFiE
	Ex6YOGN+LFGUwQPJ/yEfXjvfFRZx+jQQBId0kNHjzrJBpOf4T94nGXhTDGDCvss+Ubs=
X-Gm-Gg: ASbGncv6oxHOIiqsOsNJPsxYRegY9V2J1oSC1ELfMGIxFlXcxVICw1LSylVWzFl8oa0
	NyelGCT6cWhE1G20q+QDVDdn/YWKBTHNJQSRGL0PHcadrEiBNehJjEtupajACVcny4B3A5/yfBE
	FMMLqtXKJoSbgPdiMqO6Mu81gNDHeqGUqQz/TQtDb9GNeD03kA8X8lPp0g1RBYsM6SXJwMD+Ddi
	QRPEW8cdGD2mQ97vGOpx1ZzyiA+4BmfleRhA1NolasQ/aBTRqnlzYuv4zVihkENK/oBDcaTmipq
	f9j1w5Htt5aPQzrzoMCnyh9O6HpLSC6WrzM6zK7LXMximi1vDuisk9FzVTyEHhqKmxwI4ITg2cR
	t1bV+60V1OqDdj1PjIcZzQZVYwBXAJlH1Qwv0bTyEJRYndGQTc4WJ/e4s1lmnLstNBA==
X-Google-Smtp-Source: AGHT+IE76XiG+FguFPwiOOK7ZieP1V/4KTiO+FikepCIF6Zd+51xa3VVRbagmtK3bCLfJ2ynI8DKOw==
X-Received: by 2002:a05:600c:3555:b0:459:d6a6:792 with SMTP id 5b1f17b1804b1-459e70e84ecmr20743305e9.29.1754478571279;
        Wed, 06 Aug 2025 04:09:31 -0700 (PDT)
Date: Wed, 6 Aug 2025 13:09:30 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com,
	anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org,
	michal.orzel@amd.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: Re: [PATCH v1] xen/console: remove __printk_ratelimit()
Message-ID: <aJM36pEZpn5IHSBf@macbook.local>
References: <20250725212235.753363-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20250725212235.753363-1-dmukhin@ford.com>

On Fri, Jul 25, 2025 at 09:24:48PM +0000, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com> 
> 
> __printk_ratelimit() is never used outside of the console driver.
> Remove it from the lib.h and merge with the public printk_ratelimit().
> 
> Not a functional change.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
>  xen/drivers/char/console.c | 29 ++++++++++++-----------------
>  xen/include/xen/lib.h      |  1 -
>  2 files changed, 12 insertions(+), 18 deletions(-)
> 
> diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
> index 75fa033ce74d..80f8f2ed1bae 100644
> --- a/xen/drivers/char/console.c
> +++ b/xen/drivers/char/console.c
> @@ -979,7 +979,7 @@ static void vprintk_common(const char *fmt, va_list args, const char *prefix)
>      char         *p, *q;
>      unsigned long flags;
>  
> -    /* console_lock can be acquired recursively from __printk_ratelimit(). */
> +    /* console_lock can be acquired recursively from printk_ratelimit(). */
>      local_irq_save(flags);
>      rspin_lock(&console_lock);
>      state = &this_cpu(state);
> @@ -1266,13 +1266,19 @@ void console_end_sync(void)
>      atomic_dec(&print_everything);
>  }
>  
> +/* minimum time in ms between messages */
> +static int __read_mostly printk_ratelimit_ms = 5 * 1000;
> +
> +/* number of messages we send before ratelimiting */
> +static int __read_mostly printk_ratelimit_burst = 10;

You possibly want to make them const for the time being?

It's unclear whether we would like to dynamically change those values
in the future.  Given the current usage they would better be const.

> +
>  /*
>   * printk rate limiting, lifted from Linux.
>   *
>   * This enforces a rate limit: not more than one kernel message
>   * every printk_ratelimit_ms (millisecs).
>   */
> -int __printk_ratelimit(int ratelimit_ms, int ratelimit_burst)
> +int printk_ratelimit(void)

As suggested by Jan, I would just make this static and remove the
prototype from lib.h.  That results in less changes, and allows to
more easily export the fine grained function in the future if we had a
need to.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 11:25:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 11:25:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071644.1435059 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujcGR-0003DB-K0; Wed, 06 Aug 2025 11:24:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071644.1435059; Wed, 06 Aug 2025 11:24: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 1ujcGR-0003D4-H5; Wed, 06 Aug 2025 11:24:59 +0000
Received: by outflank-mailman (input) for mailman id 1071644;
 Wed, 06 Aug 2025 11:24:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=re9T=2S=daimlertruck.com=john_preetham.l@srs-se1.protection.inumbo.net>)
 id 1ujcGQ-0003Cy-8w
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 11:24:58 +0000
Received: from FR4P281CU032.outbound.protection.outlook.com
 (mail-germanywestcentralazlp170120004.outbound.protection.outlook.com
 [2a01:111:f403:c20c::4])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fb4814e0-72b7-11f0-a322-13f23c93f187;
 Wed, 06 Aug 2025 13:24:57 +0200 (CEST)
Received: from FR6P281MB3484.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:c5::14)
 by BEXP281MB0213.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10:7::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.15; Wed, 6 Aug
 2025 11:24:55 +0000
Received: from FR6P281MB3484.DEUP281.PROD.OUTLOOK.COM
 ([fe80::521f:afa1:ffd4:28a7]) by FR6P281MB3484.DEUP281.PROD.OUTLOOK.COM
 ([fe80::521f:afa1:ffd4:28a7%6]) with mapi id 15.20.9009.013; Wed, 6 Aug 2025
 11:24: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>
X-Inumbo-ID: fb4814e0-72b7-11f0-a322-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=U4K75y2UpGFml8+NdyQI+VKr8BMUtDKdWpuQ4ExbkpNrlKisBV2wcB1kSksr95jP+AbkjwCErKl2AacW8uNifrpGxoaaIa12YAR3Z2UMTltf8qB0+j5KW6XIWmstTdgzX5pCcLXqE5y0lGqZH0PXlxrta1474YTOZRl2aw9D5VfLVqN/QDKIdlnhVVFtYTtcVcozCTHzzTkY+sSQVB1XbPQPvY5Wm/+yJf7R6X9FyoxGkyZMXMBxvqPZFKJ8NGI9uTsWHU3utTiN1LKlY9suD3qek8cNBVJX/2APfDyAXLmHDtGoZU2j4cJ3sX2BMu2/oqUgHoeSsOJAAAd0WdqRTQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=AOF4KpFn8aZaJ2m32YLtfdPASMyXe6DDgoQRXfxIqUA=;
 b=TLb/s9xI7s4pjs4DOkpvFml2R7MZg13eVYDEUhq0jlCQmdh36H2pp4vhoipNdC4fDL/mOb4k+T1VtAM3Giym7+YMCZWQScLcLKSAA7jSK494/s777g7ftyBz9EhKw5LNKx1T4b7N04JzvzZ/8fUNzrZVNwwBkMMB5FLbjIMcBJjBRxB7BFEIdVpFiNzQha6HrnumibN576RwLowCEmqQ4SElED1e5jN+Knvx5BJDbo4Jv1VE/gTXHT/hPr0SpBOjSLi2uvGlOhlGHJypBjJa7iXSvnxLEWIOcJ3F+mukxOJ6/cf64mmz50lWmSDVLO+axSz/aG2kIwHWWBGaq2AxsQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=daimlertruck.com; dmarc=pass action=none
 header.from=daimlertruck.com; dkim=pass header.d=daimlertruck.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=daimlertruck.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=AOF4KpFn8aZaJ2m32YLtfdPASMyXe6DDgoQRXfxIqUA=;
 b=Lt7ukgibJJuAh1+QuG9zsy6wy3hSoXfJNbNTO2HAjkuSeGjh7Mm7khDcY3nkZWndvPhW6d6hjubVaDo+WO9ZXi1lvHaR2qpUQsVQdeZSZnluAJHE7Xq0HeBjt4xb3uaaKJtNz35i2UrBwT9u9VaXVZy4UTNQQsU8Xih9zQt6zW1JmCDxCs90IuV5gEVSc+IK8N9+PSDEX8DlaahH/r1Xf0Kp49Q9McWhNjVAEwB9CrjyFUpBSvXJ7IwHq3BGF3C+GgQ22PrE2fabf5bJmIiINQcDNx9Tcs9quK3Da5GH4Ex28Zqp9cBKD+DzAUDoVx2FODGwRYViuM+GlGrGJNUcQA==
From: "L, John Preetham (893)" <john_preetham.l@daimlertruck.com>
To: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Guide for Launching Full Linux VM on Xen (R-Car H3e Board)
Thread-Topic: Guide for Launching Full Linux VM on Xen (R-Car H3e Board)
Thread-Index: AdwGxJHMR8DoUPPTRqabQOx00R9z8w==
Date: Wed, 6 Aug 2025 11:24:55 +0000
Message-ID:
 <FR6P281MB3484EDA4C66DFB8C1F9A26FEB82DA@FR6P281MB3484.DEUP281.PROD.OUTLOOK.COM>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_b97ea58d-47e6-47cc-9ab7-39ab03def869_ActionId=10540eeb-c066-4f81-aa0f-0984c3a798db;MSIP_Label_b97ea58d-47e6-47cc-9ab7-39ab03def869_ContentBits=0;MSIP_Label_b97ea58d-47e6-47cc-9ab7-39ab03def869_Enabled=true;MSIP_Label_b97ea58d-47e6-47cc-9ab7-39ab03def869_Method=Standard;MSIP_Label_b97ea58d-47e6-47cc-9ab7-39ab03def869_Name=DT_Standard;MSIP_Label_b97ea58d-47e6-47cc-9ab7-39ab03def869_SetDate=2025-08-06T11:23:02Z;MSIP_Label_b97ea58d-47e6-47cc-9ab7-39ab03def869_SiteId=505cca53-5750-4134-9501-8d52d5df3cd1;MSIP_Label_b97ea58d-47e6-47cc-9ab7-39ab03def869_Tag=10,
 3, 0, 1;
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=daimlertruck.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: FR6P281MB3484:EE_|BEXP281MB0213:EE_
x-ms-office365-filtering-correlation-id: aec31e4a-8a57-434d-f8af-08ddd4dbde68
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|366016|1800799024|38070700018|8096899003;
x-microsoft-antispam-message-info:
 =?us-ascii?Q?TPNlEbnIOrzaX4a/vZ0Li8YrYvGfpwpu9Lwn3bDs4Jr1sXGT1/HDj2BL9Cdq?=
 =?us-ascii?Q?8yyBWnmlxkzMTF6JTkrl+iM3/ofTpey0ejhtiDqUnj5hGQtqeT4ECb5waIkg?=
 =?us-ascii?Q?gipCFwKEGVT7eFPoRFQrK1h4l6Cc4f0aMDeGo9CMMTZyaWKv6FxgLEqkuRlt?=
 =?us-ascii?Q?ecxX7KX2ZiGD/RCl5pO1RVjoz/1z1d8KehnJSk8uxHYvKm7xfyYcBJFtnFuC?=
 =?us-ascii?Q?TjlzTMB7hjMhD3Rh/n3zuIQc4ag/TZuO6UIFxfwhzji7bw0EHzA9RM7C/8gs?=
 =?us-ascii?Q?0vRR0+WmT3TsICgbDoDeAUqLLhuJ7htEj1fHm2hP+2ZUDRzC3aYfnuDJFUPh?=
 =?us-ascii?Q?MbtgBmctzU3rEN67J05IqNWU6KjA1pnLQi3C+Ermnq4wtSpNavZifC5d42Bx?=
 =?us-ascii?Q?j6J871LHv8IYXHBdlf2SFmBdqqbrL9OajOuR5U5MFbHtQCPw0k4soKXJsjqu?=
 =?us-ascii?Q?w6ETIYM6l3w9Z5j58B4cLKIk77b7LdrRu6i9IaHxluMb4ZOvd2h9RRHfZVfp?=
 =?us-ascii?Q?lBg7Wy2PE4O37bZxkebBX9bQDnoA2/c/2lPyjcDuWFkumgyqEM6KYTDPUwQB?=
 =?us-ascii?Q?dC/RAEOD/fQD90L7TV+Ky2hJukL3nrU8US1nZQt1hdijM4bDrafMomIJNVQ0?=
 =?us-ascii?Q?PsiRc3vuAoocgoPaaI/oc5li5KeYlEho7lPS/YYmXlvUbP1zsG9RC4NydDh/?=
 =?us-ascii?Q?nLD4H1T/Ug+kuTf5rYqL1uaKGQJphXCWwm73ivWMZFB0DOg0lUgZ/RgxpF6U?=
 =?us-ascii?Q?/hEa4VhjMZAQPRwPoWNdB/cw28PYZ4NEr7CWc/oQ/NiFdHQpuP0UEUSXA0HA?=
 =?us-ascii?Q?a0KUG+Szakk+mMJ6/4MOGueJsjsYvx3i06reEUPGVc2Kxi3FIab0Z/kE3IVq?=
 =?us-ascii?Q?FLHRM8tKuKopprVTy+NdUrJ2qjW2XIhUXFqepmQZrcsJOTGvZJ7RsLw1EaFi?=
 =?us-ascii?Q?bqBJXCtAvF7Ldhq9TGuNtXta1G5E3okGTc5b5OZ1FsNrXfjbbRdHMXPGIOQz?=
 =?us-ascii?Q?y1YIDZfIrEfpCt6pmaTmfFAITTXUFy31ww3KPnKfBSQKxS6kKEEPOtskW7+I?=
 =?us-ascii?Q?itL+LZ0TxEvxzCSD5AdSfIELS1aF8NS6xaLCKtaCEZ89jq/J7RSdx+KTIH97?=
 =?us-ascii?Q?GFJrlZq2fjGCHC8TkXr8lOgJJhBMxe99vwJB1wg86zUtGBsdJWcQNAILaZOC?=
 =?us-ascii?Q?6HO2mUQcLJPu2pVZXDQh93+xhxeHtHxdxB3DwYqSOHUkOOUjjAWRBFQg/Kan?=
 =?us-ascii?Q?xP80dqLXnkSA7kUH0H9jw0oCuQlUIpq+5G9ocl029imS6+7tlhMtnsiDyP6T?=
 =?us-ascii?Q?HVoQ4K0Bp8oeC1ZVgarNADB62D28DGIoCSiIj9bJ3eCUL1oII1sSq5xcKj63?=
 =?us-ascii?Q?5DDDgzmct01YHnK6x7OB6dM5l1q9XDM09uZH7OILYSY7nllMqZe6yP5g45IX?=
 =?us-ascii?Q?7mQuqloldeX7WLU6PT6+fnBZCBs1AENN9X9qhAhZZ1xh2b5+Y8ocFg=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:FR6P281MB3484.DEUP281.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700018)(8096899003);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?us-ascii?Q?htzDLWJy8wJHxSGzVWG0T36xijQSU82QNweCfM3Fjg0TgszJO9LItb2HAxe5?=
 =?us-ascii?Q?/v73t5gImMBgkLDpucoAFs5MiWuLpcv6GViZaZHKLH8uv3CD9P9C9b62D8nm?=
 =?us-ascii?Q?M/xQIhO3fSpGWKPlYxltcY38UticRhSc4boK0Xwb0YlMb/faMvoM1Gor958Q?=
 =?us-ascii?Q?j1IhXe8RPPEc75Bfsr2aRnc4k/WnCg/YEyvoPgSAe5haGY6/EMIc5PPCYBHx?=
 =?us-ascii?Q?YsZVFh88yJ0f/cPBcPzV37DOfObzf14Ha0NyCUGtrwmRmJwaFKyAe/a7abDv?=
 =?us-ascii?Q?cXh3YxpmBzrFt/S1BwXOP1qR1faE2CjnzDmpbcS1ghqoAtzChiR7vr/peqAV?=
 =?us-ascii?Q?gCHXDr2CXr8SywJQXgsoEw1Y8u/M7ZwObpHkJ/Qtu9mLnOKV+PZGB2yTwOEh?=
 =?us-ascii?Q?CFnexrLHoTNY3UDj6E79Y38fnv6R0PJzNXM7o1shGNRqaUU5wik2xD+J3AJV?=
 =?us-ascii?Q?hjqAhhsBUXKh8OqrZNLMkV8Li9jcX/7mT8CBO9cPJt/VsHXe8r+mfQ7VK8f6?=
 =?us-ascii?Q?5VzSHX3dsGbD+UssM44RsW6x/ZqNJdyxSvs5Ya5beVBkqILwbf2VEEoXLFyG?=
 =?us-ascii?Q?nAjR8YrXWlsJHodlMfpVp4dbUI5GsQ5vwUawpF7AvWLkXwWgjjk9LASDPZbl?=
 =?us-ascii?Q?bftAovPVnmHGZVlI0dSnEmh4TvR9JZKlFN+xTn/OMyqG27VYyGprqLYzOzM1?=
 =?us-ascii?Q?5dXK8whlstifkvCyw2864QDhDTu3FQ/A/rXCbLykETvuOk31bQIclD3TKyGc?=
 =?us-ascii?Q?S84AOifvw18t5v/CAuTj90tDwXUMzDh0IHmSWPRLhlAnhcC0hpMmjFaf/EDy?=
 =?us-ascii?Q?P8k3YQaJ0yfHQTkizpw3dskwYhvbStq7HIpEDyKLr2c6jQuHBcD5v+xOU5pS?=
 =?us-ascii?Q?8gUbUX7Yv6RRfyJvpHC/IesnDiLB5Li+Lcu8dCTzAjQm5Ezaw5IV2lD4slvP?=
 =?us-ascii?Q?h0ntXPzrGiq357X0kswVxU8NB6vJiQxt5LtUJ+hH/mcScgpky2jhfiCDg8GG?=
 =?us-ascii?Q?ohnGfl2xfNd+kuw8Im3RkZ6/USof6sN+hSbP525pyfZlTtv07tbfMGdO+I0I?=
 =?us-ascii?Q?7+axwKoY2V+I36sFwOkLZs0h3C/klb1l8jEUVEH8vq9hUWuqnNymu9yUbGyo?=
 =?us-ascii?Q?ev/CNi1UrkrrV2UnQpZ44lpUSuhA2jdwzfwK4pCTru+ufcTpLSbErLTlnnYE?=
 =?us-ascii?Q?6tEwgGakNg+n+CW5G0TuhytNCC38mRrFdu3yy7zbpg3m14T/2ztfmvLHu0/l?=
 =?us-ascii?Q?qSyVKN9A+uxSCz29JI4xsUVmEzmRbroCWZJL0APP0VGc8aNx+fSPIMbmhcV2?=
 =?us-ascii?Q?1SN7P5YkRgB6/L0gM9DXGkNR1FExl+nsYhv8My9A03XzG1AxVr2tUPb2Yl+Y?=
 =?us-ascii?Q?CO1KJINPFQmdFOWXADyLAigzNXAHd5yNU7yN1G3jqBtKSwCB0U/ZkIkM8fOg?=
 =?us-ascii?Q?L9YtTPo0js5XemRiIOFqp/kzXR+8Wz4d14zL1esevtAHslMQnYy0+Befpt0D?=
 =?us-ascii?Q?yhYnWuBmFY5WORryIz6kP2Fy0cKgl7EjPGVFQhiCp9nGx7lp0QWdkAZLubmM?=
 =?us-ascii?Q?e1LG5jnK5VwU7RyBfOLFEHpOM8TXoWAsydnTdWhk?=
Content-Type: multipart/alternative;
	boundary="_000_FR6P281MB3484EDA4C66DFB8C1F9A26FEB82DAFR6P281MB3484DEUP_"
MIME-Version: 1.0
X-OriginatorOrg: daimlertruck.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: FR6P281MB3484.DEUP281.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-Network-Message-Id: aec31e4a-8a57-434d-f8af-08ddd4dbde68
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Aug 2025 11:24:55.0687
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 505cca53-5750-4134-9501-8d52d5df3cd1
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Bpvai/yfG22N3ITY2Jl45BZ8HGy4qMCeTlG9dBoSVZ44Ru8lLkFhiKBqjTbphGxO9K6isNSXNUGcBnWsc2UN1g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BEXP281MB0213

--_000_FR6P281MB3484EDA4C66DFB8C1F9A26FEB82DAFR6P281MB3484DEUP_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi Volodymyr,


I'm currently working with the R-Car H3e board and exploring Xen virtualiza=
tion on this platform. While I've found resources related to dom0 and domU =
configurations, I'm specifically looking for guidance on building and launc=
hing a full-fledged Linux VM on Xen-beyond the domd setup.

Are there any official or community-maintained guides or examples tailored =
for ARM-based platforms like the R-Car H3e that walk through setting up a s=
tandalone Linux VM with full capabilities (networking, storage, graphical i=
nterface, etc.)?

Any help or direction would be greatly appreciated.

Best regards,
John Preetham


If you are not the addressee, please inform us immediately that you have re=
ceived this e-mail by mistake, and delete it. We thank you for your support=
.


--_000_FR6P281MB3484EDA4C66DFB8C1F9A26FEB82DAFR6P281MB3484DEUP_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Aptos;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	font-size:12.0pt;
	font-family:"Aptos",sans-serif;
	mso-ligatures:standardcontextual;
	mso-fareast-language:EN-US;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
	{mso-style-priority:99;
	mso-style-link:"Plain Text Char";
	margin:0cm;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;
	mso-ligatures:standardcontextual;
	mso-fareast-language:EN-US;}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:"Aptos",sans-serif;
	color:windowtext;}
span.PlainTextChar
	{mso-style-name:"Plain Text Char";
	mso-style-priority:99;
	mso-style-link:"Plain Text";
	font-family:"Calibri",sans-serif;}
.MsoChpDefault
	{mso-style-type:export-only;
	mso-fareast-language:EN-US;}
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-IN" link=3D"#467886" vlink=3D"#96607D" style=3D"word-wrap:=
break-word">
<div class=3D"WordSection1">
<p class=3D"MsoPlainText">Hi Volodymyr,<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">I&#8217;m currently working with the R-Car H3e board=
 and exploring Xen virtualization on this platform. While I&#8217;ve found =
resources related to dom0 and domU configurations, I&#8217;m specifically l=
ooking for guidance on building and launching a full-fledged
 Linux VM on Xen&#8212;beyond the domd setup.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Are there any official or community-maintained guide=
s or examples tailored for ARM-based platforms like the R-Car H3e that walk=
 through setting up a standalone Linux VM with full capabilities (networkin=
g, storage, graphical interface, etc.)?<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Any help or direction would be greatly appreciated.<=
o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Best regards,&nbsp; <o:p></o:p></p>
<p class=3D"MsoNormal">John Preetham<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//DE">
<table cellpadding=3D"0" cellspacing=3D"0" border=3D"0">
<font face=3D"sans-serif, Arial, Helvetica" size=3D"-1" color=3D"#808080"><=
br>
If you are not the addressee, please inform us immediately that you have re=
ceived this e-mail by mistake, and delete it. We thank you for your support=
.<br>
<br>
</font>
</table>
</body>
</html>

--_000_FR6P281MB3484EDA4C66DFB8C1F9A26FEB82DAFR6P281MB3484DEUP_--


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 11:33:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 11:33:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071651.1435069 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujcOo-0004yN-F9; Wed, 06 Aug 2025 11:33:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071651.1435069; Wed, 06 Aug 2025 11:33: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 1ujcOo-0004yG-CE; Wed, 06 Aug 2025 11:33:38 +0000
Received: by outflank-mailman (input) for mailman id 1071651;
 Wed, 06 Aug 2025 11:33:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ctQb=2S=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1ujcOm-0004y9-MI
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 11:33:36 +0000
Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com
 [2a00:1450:4864:20::633])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2faf35e9-72b9-11f0-b898-0df219b8e170;
 Wed, 06 Aug 2025 13:33:34 +0200 (CEST)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-af925cbd73aso1104812466b.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 Aug 2025 04:33:34 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a076724sm1077100666b.23.2025.08.06.04.33.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Aug 2025 04:33: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>
X-Inumbo-ID: 2faf35e9-72b9-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754480014; x=1755084814; darn=lists.xenproject.org;
        h=in-reply-to:content-language:references:cc:to:subject:from
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tpKmtO37QvU/L3UzQlNzQGh6yfR58CMadahh9bQOu1k=;
        b=ZSQLejLWnwq7XBuJGwtT78wrRQG/6l7KvVSi2qYgvadkpdQ5xAufN9pLmiPlLevq9C
         4yBdDLQP3TyJnbpDjwlaW3dAaNnHE/qCBONhIuPv7ZJEj3Ih5bOFNVZdbt1vtj2mSjax
         7GCzYd8ajhJz2sC0YyWoIs4Wi/i18ZfusQST3A7zGD9M3XYcydCRC5+8d4yxXrCYvvP6
         gQo3LVlKByBZHleqrx/4HTGSHlSPt3xhNrPl6pCVNRdmC+uIs/JvwhIFZHIcBO64prZk
         SfiDIiRCVrC0IbuEUyvX6dJXnaRNhJZveyfoYEceB2DpcLKhohaoGp+VDvROGxAeGcsu
         smJw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754480014; x=1755084814;
        h=in-reply-to:content-language:references:cc:to:subject:from
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=tpKmtO37QvU/L3UzQlNzQGh6yfR58CMadahh9bQOu1k=;
        b=K0+z9HVZGl2+4Zd3skHDQ4HSXvA5PoFRufUZ4lgRicEWMWlyPnulMTRj/l1FS/eQPU
         L2ioWQL6cjXoT9NiWJoeHdaWZMeZoHoADvtz5UgT1CPSoT52hQLuEoq8gmNq7HGybjGh
         gY02OTrekHzffTTpnz5AX6r0dwqPm0WeJNiVMqEvbw4norTYZzAEi0xW3BCyV8ujBJxq
         VYuc3nExcILYNiHrryUP31CtBDaxlUvif7Ngsf1hXpnXn8WIqJIbAxGJZ59l/6CGioOj
         3wwRldj8rvjUQvMxKdThzlDAi/mk1+WaIfEq4lIA9hrfIdrwXtc8wIa0YIKHgJVEkl6p
         rJIw==
X-Forwarded-Encrypted: i=1; AJvYcCWkpseYthG0tFhYRvEwAa7e+a43QB9oWyhX5AnOkmkyS94wzfx+w2haZ8HV37KknFY5u6tRMYC5vgg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwGkU+f+IWUwKeizXlMm2B1AjX0BlsdCophhfg0hIi7snQx8JQT
	+KWR1c5S5Ap8Z+nNywFqwORoAAjdxf1Qy82p6g/hUCCuMaCX9h9D83sL
X-Gm-Gg: ASbGncv8Zicpd34nW3uwZwgTcjAMOyjyY5kMvhsInPIoPvhKKZiBgqZJ+7Wx5Cv5dk2
	peW0RbvEvRczPydYVgKLpKgfKqpjWbHqobF7xadGo9Wzc2NonTIUzxId9FUS9ZD4fL0dDLUPPO8
	A8KPQE8UWBcg/qFU0aI3FqFMWACvVWr2Cm0bIRwy1clk9BD4kPzYqMuOlEWN5GpbNkFbzwLaygf
	WB/pnquyvLqrT5sr0kDyunoecycRF5UaAC1OPYKCililaB8YJZg824qt2a7KHH7YJWGyzKFTHM7
	bYxFYTvauLuiZgwGmrw/hC4lZXCxlDZpv/WvhbOLLo1KV8U5AJGvr+Yn+UQxw99cftMHyKNXSiP
	3mT1QfG0UUq6XrBU2v2bgfiavbWLnz1JzIiS4sHhoRXN06LunBqQB42GohnnAzIctRKM0TJ4=
X-Google-Smtp-Source: AGHT+IGDI4dMSIlJ8AQNPXsHQYHZhxHcMiiIvfng7+FT1BsHCGErKu+LywLW5npAgiFTQOvnqHtLeg==
X-Received: by 2002:a17:907:e989:b0:ae3:8c9b:bd61 with SMTP id a640c23a62f3a-af99010dd9bmr211662166b.12.1754480013390;
        Wed, 06 Aug 2025 04:33:33 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------AK7SuHGjOpmcvQDZfEVxjVSd"
Message-ID: <bcf4c3aa-5c09-4171-a4f5-85110d6e634f@gmail.com>
Date: Wed, 6 Aug 2025 13:33:31 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH v3 03/20] xen/riscv: introduce VMID allocation and
 manegement
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <d61f5f831ac8045055a1775ee710d4f2fe8dcc26.1753973161.git.oleksii.kurochko@gmail.com>
 <cd1a0c64-49d7-4ae1-8dec-b3b1de3f1d09@suse.com>
Content-Language: en-US
In-Reply-To: <cd1a0c64-49d7-4ae1-8dec-b3b1de3f1d09@suse.com>

This is a multi-part message in MIME format.
--------------AK7SuHGjOpmcvQDZfEVxjVSd
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 8/4/25 5:19 PM, Jan Beulich wrote:
> On 31.07.2025 17:58, Oleksii Kurochko wrote:
>> Current implementation is based on x86's way to allocate VMIDs:
>>    VMIDs partition the physical TLB. In the current implementation VMIDs are
>>    introduced to reduce the number of TLB flushes.  Each time the guest's
>>    virtual address space changes,
> virtual?

I assumed that originally it meant that from Xen point of view it could be
called guest's virtual as guest doesn't really work with real physical address,
but it seems like it would be more clear to use guest-physical as you suggested
below.

>> instead of flushing the TLB, a new VMID is
>>    assigned.  This reduces the number of TLB flushes to at most 1/#VMIDs.
>>    The biggest advantage is that hot parts of the hypervisor's code and data
>>    retain in the TLB.
>>
>>    VMIDs are a hart-local resource.  As preemption of VMIDs is not possible,
>>    VMIDs are assigned in a round-robin scheme.  To minimize the overhead of
>>    VMID invalidation, at the time of a TLB flush, VMIDs are tagged with a
>>    64-bit generation. Only on a generation overflow the code needs to
>>    invalidate all VMID information stored at the VCPUs with are run on the
>>    specific physical processor.  This overflow appears after about 2^80
>>    host processor cycles,
> Where's this number coming from? (If you provide numbers, I think they will
> want to be "reproducible" by the reader. Which I fear isn't the case here.)

The 2^80 cycles (based on x86-related numbers) result from:
   1. And VM-Entry/-Exit cycle takes at least 1800 cycles (approximated by 2^10)
   2. We have 64 ASIDs (2^6)
   3. 2^64 generations.
I removed this part of the comment earlier because I assumed that the first
item is quite CPU-dependent, even for x86, let alone for other architectures,
which may have a different number (?).
However, this part of the comment was reintroduced during one of the merges.

>> @@ -148,6 +149,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
>>   
>>       console_init_postirq();
>>   
>> +    vmid_init();
> This lives here only temporarily, I assume? Every hart will need to execute
> it, and hence (like we have it on x86) this may want to be a central place
> elsewhere.

I havenâ€™t checked how it is done on x86; I probably should.

I planned to call it for each hart separately during secondary hart bring-up,
since accessing the|hgatp| register of a hart is required to detect|VMIDLEN|.
Therefore,|vmid_init()| should be called for secondary harts when their
initialization code starts executing.

>> --- /dev/null
>> +++ b/xen/arch/riscv/vmid.c
>> @@ -0,0 +1,165 @@
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +
>> +#include <xen/domain.h>
>> +#include <xen/init.h>
>> +#include <xen/sections.h>
>> +#include <xen/lib.h>
>> +#include <xen/param.h>
>> +#include <xen/percpu.h>
>> +
>> +#include <asm/atomic.h>
>> +#include <asm/csr.h>
>> +#include <asm/flushtlb.h>
>> +
>> +/* Xen command-line option to enable VMIDs */
>> +static bool __read_mostly opt_vmid_enabled = true;
> __ro_after_init ?

Agree, __ro_afer_init would be better.

>> +boolean_param("vmid", opt_vmid_enabled);
>> +
>> +/*
>> + * VMIDs partition the physical TLB. In the current implementation VMIDs are
>> + * introduced to reduce the number of TLB flushes.  Each time the guest's
>> + * virtual address space changes, instead of flushing the TLB, a new VMID is
> The same odd "virtual" again? All the code here is about guest-physical, isn't
> it?

Answered above.

>> + * assigned. This reduces the number of TLB flushes to at most 1/#VMIDs.
>> + * The biggest advantage is that hot parts of the hypervisor's code and data
>> + * retain in the TLB.
>> + *
>> + * Sketch of the Implementation:
>> + *
>> + * VMIDs are a hart-local resource.  As preemption of VMIDs is not possible,
>> + * VMIDs are assigned in a round-robin scheme.  To minimize the overhead of
>> + * VMID invalidation, at the time of a TLB flush, VMIDs are tagged with a
>> + * 64-bit generation. Only on a generation overflow the code needs to
>> + * invalidate all VMID information stored at the VCPUs with are run on the
>> + * specific physical processor.  This overflow appears after about 2^80
> And the same interesting number again.

Answered above.

>> + * host processor cycles, so we do not optimize this case, but simply disable
>> + * VMID useage to retain correctness.
>> + */
>> +
>> +/* Per-Hart VMID management. */
>> +struct vmid_data {
>> +   uint64_t hart_vmid_generation;
> Any reason not to simply use "generation"?

No specific reason for that, it could be renamed to "generation".

>> +   uint16_t next_vmid;
>> +   uint16_t max_vmid;
>> +   bool disabled;
>> +};
>> +
>> +static DEFINE_PER_CPU(struct vmid_data, vmid_data);
>> +
>> +static unsigned long vmidlen_detect(void)
> __init ? Or wait, are you (deliberately) permitting different VMIDLEN
> across harts?

All what I was able in RISC-V spec is that:
   The number of VMID bits is UNSPECIFIED and may be zero. The number of
   implemented VMID bits, termed VMIDLEN, may be determined by writing one
   to every bit position in the VMID field, then reading back the value in
   hgatp to see which bit positions in the VMID field hold a one. The least-
   significant bits of VMID are implemented first: that is, if VMIDLEN > 0,
   VMID[VMIDLEN-1:0] is writable. The maximal value of VMIDLEN, termed
   VMIDMAX, is 7 for Sv32x4 or 14 for Sv39x4, Sv48x4, and Sv57x4..
And I couldn't find explicitly that VMIDLEN will be the same across harts.

Therefore, IMO, while the specification doesn't guarantee VMID will be
different, the "unspecified" nature and the per-hart discovery mechanism
of VMIDLEN in the hgatp CSR allows for VMIDLEN to be different on
different harts in an implementation without violating the
RISC-V privileged specification.



>
>> +{
>> +    unsigned long vmid_bits;
> Why "long" (also for the function return type)?

Because csr_read() returns unsigned long as HGATP register has
'unsigned long' length.

But it could be done in this way:
     csr_write(CSR_HGATP, old | HGATP_VMID_MASK);
     vmid_bits =  MASK_EXTR(csr_read(CSR_HGATP), HGATP_VMID_MASK);
     vmid_bits = ffs_g(vmid_bits);
     csr_write(CSR_HGATP, old);
And then use uint16_t for vmid_bits and use uin16_t as a return type.

>
>> +    unsigned long old;
>> +
>> +    /* Figure-out number of VMID bits in HW */
>> +    old = csr_read(CSR_HGATP);
>> +
>> +    csr_write(CSR_HGATP, old | HGATP_VMID_MASK);
>> +    vmid_bits = csr_read(CSR_HGATP);
>> +    vmid_bits =  MASK_EXTR(vmid_bits, HGATP_VMID_MASK);
> Nit: Stray blank.
>
>> +    vmid_bits = flsl(vmid_bits);
>> +    csr_write(CSR_HGATP, old);
>> +
>> +    /*
>> +     * We polluted local TLB so flush all guest TLB as
>> +     * a speculative access can happen at any time.
>> +     */
>> +    local_hfence_gvma_all();
> There's no guest running. If you wrote hgat.MODE as zero, as per my
> understanding now new TLB entries could even purely theoretically appear.

It could be an issue (or, at least, it is recommended) when hgatp.MODE is
changed:
  If hgatp.MODE is changed for a given VMID, an HFENCE.GVMA with rs1=x0
  (and rs2 set to either x0 or the VMID) must be executed to order subsequent
  guest translations with the MODE changeâ€”even if the old MODE or new MODE
  is Bare.
On other hand it is guaranteed that, at least, on Reset (and so I assume
for power on) that:
  If the hypervisor extension is implemented, the hgatp.MODE and vsatp.MODE
  fields are reset to 0.

So it seems like if no guest is ran then there is no need even to write
hgatp.MODE as zero, but it might be sense to do that explicitly just to
be sure.

I thought it was possible to have a running guest and perform a CPU hotplug.
In that case, I expect that during the hotplug,|vmidlen_detect()| will be
called and return the|vmid_bits| value, which is used as the active VMID.
At that moment, the local TLB could be speculatively polluted, I think.
Likely, it makes sense to call vmidlen_detect() only once for each hart
during initial bringup.


> In fact, with no guest running (yet) I'm having a hard time seeing why
> you shouldn't be able to simply write the register with just
> HGATP_VMID_MASK, i.e. without OR-ing in "old". It's even questionable
> whether "old" needs restoring; writing plain zero afterwards ought to
> suffice. You're in charcge of the register, after all.

It make sense (but I don't know if it is a possible case) to be sure that
HGATP.MODE remains the same, so there is no need to have TLB flush. If
HGATP.MODE is changed then it will be needed to do TLB flush as I mentioned
above.

If we agreed to keep local_hfence_gvma_all() then I think it isn't really
any sense to restore 'old' or OR-ing it with HGATP_VMID_MASK.

Generally if 'old' is guaranteed to be zero (and, probably, it makes sense
to check that in vmidlen_detect() and panic if it isn't zero) and if
vmidlen_detect() function will be called before any guest domain(s) will
be ran then I could agree that we don't need local_hfence_gvma_all() here.

As an option we can do local_hfence_gvma_all() only if 'old' value wasn't
set to zero.

Does it make sense?

>
>> +    return vmid_bits;
>> +}
>> +
>> +void vmid_init(void)
>> +{
>> +    static bool g_disabled = false;
>> +    unsigned long vmid_len = vmidlen_detect();
>> +    struct vmid_data *data = &this_cpu(vmid_data);
>> +    unsigned long max_availalbe_bits = sizeof(data->max_vmid) << 3;
> Nit: Typo in "available". Also now that we have it, better use
> BITS_PER_BYTE here?

Sure, I will use BITS_PER_BYTE.

>
>> +    if ( vmid_len > max_availalbe_bits )
>> +        panic("%s: VMIDLEN is bigger then a type which represent VMID: %lu(%lu)\n",
>> +              __func__, vmid_len, max_availalbe_bits);
> This shouldn't be a runtime check imo. What you want to check (at build
> time) is that the bits set in HGATP_VMID_MASK can be held in ->max_vmid.

Oh, I just noticed that this check isn't even really correct because of
data->max_vmid is inited after this check.

Anyway, build time check would be better.

>
>> +    data->max_vmid = BIT(vmid_len, U) - 1;
>> +    data->disabled = !opt_vmid_enabled || (vmid_len <= 1);
> Actually, what exactly does it mean that "VMIDs are disabled"? There's
> no enable bit that I could find anywhere. Isn't it rather that in this
> case you need to arrange to flush always on VM entry (or always after a
> P2M change, depending how the TLB is split between guest and host use)?

"VMIDs are disabled" here means that TLB flush will happen each time p2m
is changed.

> If you look at vmx_vmenter_helper(), its flipping of
> SECONDARY_EXEC_ENABLE_VPID tweaks CPU behavior, such that the flush
> would be implicit (when the bit is off). I don't expect RISC-V has any
> such "implicit" flushing behavior?

RISC-V relies on explicit software-managed fence instructions for TLB
flushing.

It seems like vmid_handle_vmenter() should be updated then to return
true if VMIDs are disabled:
   bool vmid_handle_vmenter(struct vcpu_vmid *vmid)
   {
       struct vmid_data *data = &this_cpu(vmid_data);
   
   ...
   
       /*
        * When we assign VMID 1, flush all TLB entries as we are starting a new
        * generation, and all old VMID allocations are now stale.
        */
       return (vmid->vmid == 1);
   
    disabled:
       vmid->vmid = 0;
-      return 0;
+      return true;
   }

>
>> +    if ( g_disabled != data->disabled )
>> +    {
>> +        printk("%s: VMIDs %sabled.\n", __func__,
>> +               data->disabled ? "dis" : "en");
>> +        if ( !g_disabled )
>> +            g_disabled = data->disabled;
> This doesn't match x86 code. g_disabled is a tristate there, which only
> the boot CPU would ever write to.

Why g_disabled is written only by boot CPU? Does x86 have only two options
or VMIDs are enabled for all CPUs or it is disabled for all of them?

For RISC-V as I mentioned above it is needed to check all harts as the spec.
doesn't explicitly mention that VMIDLEN is equal for all harts...

>
> A clear shortcoming of the x86 code (that you copied) is that the log
> message doesn't identify the CPU in question. A sequence of "disabled"
> and "enabled" could thus result, without the last one (or in fact any
> one) making clear what the overall state is. I think you want to avoid
> this from the beginning.

... Thereby it seems like declaration of g_disabled should be moved outside
vmid_init() function and add a new function which will return g_disabled
value (or just make g_disabled not static and rename to something like
g_vmids_disabled).

And the print message once after all harts will be initialized, somewhere
in setup.c in start_xen() after:
  
for_each_present_cpu ( i )
{
if( (num_online_cpus()< nr_cpu_ids)&& !cpu_online(i))
{
intret = cpu_up(i);
if( ret != 0)
printk("Failed to bring up CPU %u (error %d)\n", i, ret);
}
}
(RISC-V doesn't have such code at the moment)

~ Oleksii

--------------AK7SuHGjOpmcvQDZfEVxjVSd
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/4/25 5:19 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:cd1a0c64-49d7-4ae1-8dec-b3b1de3f1d09@suse.com">
      <pre wrap="" class="moz-quote-pre">On 31.07.2025 17:58, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">Current implementation is based on x86's way to allocate VMIDs:
  VMIDs partition the physical TLB. In the current implementation VMIDs are
  introduced to reduce the number of TLB flushes.  Each time the guest's
  virtual address space changes,
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">virtual?</pre>
    </blockquote>
    <pre>I assumed that originally it meant that from Xen point of view it could be
called guest's virtual as guest doesn't really work with real physical address,
but it seems like it would be more clear to use guest-physical as you suggested
below.
</pre>
    <blockquote type="cite"
      cite="mid:cd1a0c64-49d7-4ae1-8dec-b3b1de3f1d09@suse.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">instead of flushing the TLB, a new VMID is
  assigned.  This reduces the number of TLB flushes to at most 1/#VMIDs.
  The biggest advantage is that hot parts of the hypervisor's code and data
  retain in the TLB.

  VMIDs are a hart-local resource.  As preemption of VMIDs is not possible,
  VMIDs are assigned in a round-robin scheme.  To minimize the overhead of
  VMID invalidation, at the time of a TLB flush, VMIDs are tagged with a
  64-bit generation. Only on a generation overflow the code needs to
  invalidate all VMID information stored at the VCPUs with are run on the
  specific physical processor.  This overflow appears after about 2^80
  host processor cycles,
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">Where's this number coming from? (If you provide numbers, I think they will
want to be "reproducible" by the reader. Which I fear isn't the case here.)</pre>
    </blockquote>
    <pre>The 2^80 cycles (based on x86-related numbers) result from:
  1. And VM-Entry/-Exit cycle takes at least 1800 cycles (approximated by 2^10)
  2. We have 64 ASIDs (2^6)
  3. 2^64 generations.
I removed this part of the comment earlier because I assumed that the first
item is quite CPU-dependent, even for x86, let alone for other architectures,
which may have a different number (?).
However, this part of the comment was reintroduced during one of the merges.

</pre>
    <blockquote type="cite"
      cite="mid:cd1a0c64-49d7-4ae1-8dec-b3b1de3f1d09@suse.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">@@ -148,6 +149,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 
     console_init_postirq();
 
+    vmid_init();
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">This lives here only temporarily, I assume? Every hart will need to execute
it, and hence (like we have it on x86) this may want to be a central place
elsewhere.</pre>
    </blockquote>
    <pre data-start="51" data-end="112">I havenâ€™t checked how it is done on x86; I probably should.</pre>
    <pre data-start="114" data-end="382">I planned to call it for each hart separately during secondary hart bring-up,
since accessing the <code data-start="212" data-end="219">hgatp</code> register of a hart is required to detect <code
    data-start="261" data-end="270">VMIDLEN</code>.
Therefore, <code data-start="283" data-end="296">vmid_init()</code> should be called for secondary harts when their
initialization code starts executing.

</pre>
    <blockquote type="cite"
      cite="mid:cd1a0c64-49d7-4ae1-8dec-b3b1de3f1d09@suse.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- /dev/null
+++ b/xen/arch/riscv/vmid.c
@@ -0,0 +1,165 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include &lt;xen/domain.h&gt;
+#include &lt;xen/init.h&gt;
+#include &lt;xen/sections.h&gt;
+#include &lt;xen/lib.h&gt;
+#include &lt;xen/param.h&gt;
+#include &lt;xen/percpu.h&gt;
+
+#include &lt;asm/atomic.h&gt;
+#include &lt;asm/csr.h&gt;
+#include &lt;asm/flushtlb.h&gt;
+
+/* Xen command-line option to enable VMIDs */
+static bool __read_mostly opt_vmid_enabled = true;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">__ro_after_init ?</pre>
    </blockquote>
    <pre>Agree, __ro_afer_init would be better.
</pre>
    <blockquote type="cite"
      cite="mid:cd1a0c64-49d7-4ae1-8dec-b3b1de3f1d09@suse.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+boolean_param("vmid", opt_vmid_enabled);
+
+/*
+ * VMIDs partition the physical TLB. In the current implementation VMIDs are
+ * introduced to reduce the number of TLB flushes.  Each time the guest's
+ * virtual address space changes, instead of flushing the TLB, a new VMID is
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">The same odd "virtual" again? All the code here is about guest-physical, isn't
it?</pre>
    </blockquote>
    <pre>Answered above.</pre>
    <blockquote type="cite"
      cite="mid:cd1a0c64-49d7-4ae1-8dec-b3b1de3f1d09@suse.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+ * assigned. This reduces the number of TLB flushes to at most 1/#VMIDs.
+ * The biggest advantage is that hot parts of the hypervisor's code and data
+ * retain in the TLB.
+ *
+ * Sketch of the Implementation:
+ *
+ * VMIDs are a hart-local resource.  As preemption of VMIDs is not possible,
+ * VMIDs are assigned in a round-robin scheme.  To minimize the overhead of
+ * VMID invalidation, at the time of a TLB flush, VMIDs are tagged with a
+ * 64-bit generation. Only on a generation overflow the code needs to
+ * invalidate all VMID information stored at the VCPUs with are run on the
+ * specific physical processor.  This overflow appears after about 2^80
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">And the same interesting number again.</pre>
    </blockquote>
    <pre>Answered above.
</pre>
    <blockquote type="cite"
      cite="mid:cd1a0c64-49d7-4ae1-8dec-b3b1de3f1d09@suse.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+ * host processor cycles, so we do not optimize this case, but simply disable
+ * VMID useage to retain correctness.
+ */
+
+/* Per-Hart VMID management. */
+struct vmid_data {
+   uint64_t hart_vmid_generation;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">Any reason not to simply use "generation"?</pre>
    </blockquote>
    <pre>No specific reason for that, it could be renamed to "generation".

</pre>
    <blockquote type="cite"
      cite="mid:cd1a0c64-49d7-4ae1-8dec-b3b1de3f1d09@suse.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+   uint16_t next_vmid;
+   uint16_t max_vmid;
+   bool disabled;
+};
+
+static DEFINE_PER_CPU(struct vmid_data, vmid_data);
+
+static unsigned long vmidlen_detect(void)
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">__init ? Or wait, are you (deliberately) permitting different VMIDLEN
across harts?</pre>
    </blockquote>
    <pre>All what I was able in RISC-V spec is that:
  The number of VMID bits is UNSPECIFIED and may be zero. The number of
  implemented VMID bits, termed VMIDLEN, may be determined by writing one
  to every bit position in the VMID field, then reading back the value in
  hgatp to see which bit positions in the VMID field hold a one. The least-
  significant bits of VMID are implemented first: that is, if VMIDLEN &gt; 0,
  VMID[VMIDLEN-1:0] is writable. The maximal value of VMIDLEN, termed
  VMIDMAX, is 7 for Sv32x4 or 14 for Sv39x4, Sv48x4, and Sv57x4..
And I couldn't find explicitly that VMIDLEN will be the same across harts.

Therefore, IMO, while the specification doesn't guarantee VMID will be
different, the "unspecified" nature and the per-hart discovery mechanism
of VMIDLEN in the hgatp CSR allows for VMIDLEN to be different on
different harts in an implementation without violating the
RISC-V privileged specification.



</pre>
    <blockquote type="cite"
      cite="mid:cd1a0c64-49d7-4ae1-8dec-b3b1de3f1d09@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+{
+    unsigned long vmid_bits;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">Why "long" (also for the function return type)?</pre>
    </blockquote>
    <pre>Because csr_read() returns unsigned long as HGATP register has
'unsigned long' length.

But it could be done in this way:
    csr_write(CSR_HGATP, old | HGATP_VMID_MASK);
    vmid_bits =  MASK_EXTR(csr_read(CSR_HGATP), HGATP_VMID_MASK);
    vmid_bits = ffs_g(vmid_bits);
    csr_write(CSR_HGATP, old);
And then use uint16_t for vmid_bits and use uin16_t as a return type.

</pre>
    <blockquote type="cite"
      cite="mid:cd1a0c64-49d7-4ae1-8dec-b3b1de3f1d09@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    unsigned long old;
+
+    /* Figure-out number of VMID bits in HW */
+    old = csr_read(CSR_HGATP);
+
+    csr_write(CSR_HGATP, old | HGATP_VMID_MASK);
+    vmid_bits = csr_read(CSR_HGATP);
+    vmid_bits =  MASK_EXTR(vmid_bits, HGATP_VMID_MASK);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">Nit: Stray blank.

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    vmid_bits = flsl(vmid_bits);
+    csr_write(CSR_HGATP, old);
+
+    /*
+     * We polluted local TLB so flush all guest TLB as
+     * a speculative access can happen at any time.
+     */
+    local_hfence_gvma_all();
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">There's no guest running. If you wrote hgat.MODE as zero, as per my
understanding now new TLB entries could even purely theoretically appear.</pre>
    </blockquote>
    <pre>It could be an issue (or, at least, it is recommended) when hgatp.MODE is
changed:
 If hgatp.MODE is changed for a given VMID, an HFENCE.GVMA with rs1=x0
 (and rs2 set to either x0 or the VMID) must be executed to order subsequent
 guest translations with the MODE changeâ€”even if the old MODE or new MODE
 is Bare.
On other hand it is guaranteed that, at least, on Reset (and so I assume
for power on) that:
 If the hypervisor extension is implemented, the hgatp.MODE and vsatp.MODE
 fields are reset to 0.

So it seems like if no guest is ran then there is no need even to write
hgatp.MODE as zero, but it might be sense to do that explicitly just to
be sure.

I thought it was possible to have a running guest and perform a CPU hotplug.
In that case, I expect that during the hotplug, <code data-start="178"
    data-end="196">vmidlen_detect()</code> will be
called and return the <code data-start="227" data-end="238">vmid_bits</code> value, which is used as the active VMID.
At that moment, the local TLB could be speculatively polluted, I think.
Likely, it makes sense to call vmidlen_detect() only once for each hart
during initial bringup.
</pre>
    <p><br>
    </p>
    <blockquote type="cite"
      cite="mid:cd1a0c64-49d7-4ae1-8dec-b3b1de3f1d09@suse.com">
      <pre wrap="" class="moz-quote-pre">
In fact, with no guest running (yet) I'm having a hard time seeing why
you shouldn't be able to simply write the register with just
HGATP_VMID_MASK, i.e. without OR-ing in "old". It's even questionable
whether "old" needs restoring; writing plain zero afterwards ought to
suffice. You're in charcge of the register, after all.</pre>
    </blockquote>
    <pre>It make sense (but I don't know if it is a possible case) to be sure that
HGATP.MODE remains the same, so there is no need to have TLB flush. If
HGATP.MODE is changed then it will be needed to do TLB flush as I mentioned
above.

If we agreed to keep local_hfence_gvma_all() then I think it isn't really
any sense to restore 'old' or OR-ing it with HGATP_VMID_MASK.

Generally if 'old' is guaranteed to be zero (and, probably, it makes sense
to check that in vmidlen_detect() and panic if it isn't zero) and if
vmidlen_detect() function will be called before any guest domain(s) will
be ran then I could agree that we don't need local_hfence_gvma_all() here.

As an option we can do local_hfence_gvma_all() only if 'old' value wasn't
set to zero.

Does it make sense?
</pre>
    <blockquote type="cite"
      cite="mid:cd1a0c64-49d7-4ae1-8dec-b3b1de3f1d09@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    return vmid_bits;
+}
+
+void vmid_init(void)
+{
+    static bool g_disabled = false;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    unsigned long vmid_len = vmidlen_detect();
+    struct vmid_data *data = &amp;this_cpu(vmid_data);
+    unsigned long max_availalbe_bits = sizeof(data-&gt;max_vmid) &lt;&lt; 3;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">Nit: Typo in "available". Also now that we have it, better use
BITS_PER_BYTE here?</pre>
    </blockquote>
    <pre>Sure, I will use BITS_PER_BYTE.

</pre>
    <blockquote type="cite"
      cite="mid:cd1a0c64-49d7-4ae1-8dec-b3b1de3f1d09@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    if ( vmid_len &gt; max_availalbe_bits )
+        panic("%s: VMIDLEN is bigger then a type which represent VMID: %lu(%lu)\n",
+              __func__, vmid_len, max_availalbe_bits);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">This shouldn't be a runtime check imo. What you want to check (at build
time) is that the bits set in HGATP_VMID_MASK can be held in -&gt;max_vmid.</pre>
    </blockquote>
    <pre>Oh, I just noticed that this check isn't even really correct because of
data-&gt;max_vmid is inited after this check.

Anyway, build time check would be better.

</pre>
    <blockquote type="cite"
      cite="mid:cd1a0c64-49d7-4ae1-8dec-b3b1de3f1d09@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    data-&gt;max_vmid = BIT(vmid_len, U) - 1;
+    data-&gt;disabled = !opt_vmid_enabled || (vmid_len &lt;= 1);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">Actually, what exactly does it mean that "VMIDs are disabled"? There's
no enable bit that I could find anywhere. Isn't it rather that in this
case you need to arrange to flush always on VM entry (or always after a
P2M change, depending how the TLB is split between guest and host use)?</pre>
    </blockquote>
    <pre>"VMIDs are disabled" here means that TLB flush will happen each time p2m
is changed.
</pre>
    <blockquote type="cite"
      cite="mid:cd1a0c64-49d7-4ae1-8dec-b3b1de3f1d09@suse.com">
      <pre wrap="" class="moz-quote-pre">
If you look at vmx_vmenter_helper(), its flipping of
SECONDARY_EXEC_ENABLE_VPID tweaks CPU behavior, such that the flush
would be implicit (when the bit is off). I don't expect RISC-V has any
such "implicit" flushing behavior?</pre>
    </blockquote>
    <pre>RISC-V relies on explicit software-managed fence instructions for TLB
flushing.

It seems like vmid_handle_vmenter() should be updated then to return
true if VMIDs are disabled:
  bool vmid_handle_vmenter(struct vcpu_vmid *vmid)
  {
      struct vmid_data *data = &amp;this_cpu(vmid_data);
  
  ...
  
      /*
       * When we assign VMID 1, flush all TLB entries as we are starting a new
       * generation, and all old VMID allocations are now stale.
       */
      return (vmid-&gt;vmid == 1);
  
   disabled:
      vmid-&gt;vmid = 0;
-      return 0;
+      return true;
  }

</pre>
    <blockquote type="cite"
      cite="mid:cd1a0c64-49d7-4ae1-8dec-b3b1de3f1d09@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    if ( g_disabled != data-&gt;disabled )
+    {
+        printk("%s: VMIDs %sabled.\n", __func__,
+               data-&gt;disabled ? "dis" : "en");
+        if ( !g_disabled )
+            g_disabled = data-&gt;disabled;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">This doesn't match x86 code. g_disabled is a tristate there, which only
the boot CPU would ever write to.</pre>
    </blockquote>
    <pre>Why g_disabled is written only by boot CPU? Does x86 have only two options
or VMIDs are enabled for all CPUs or it is disabled for all of them?

For RISC-V as I mentioned above it is needed to check all harts as the spec.
doesn't explicitly mention that VMIDLEN is equal for all harts...

</pre>
    <blockquote type="cite"
      cite="mid:cd1a0c64-49d7-4ae1-8dec-b3b1de3f1d09@suse.com">
      <pre wrap="" class="moz-quote-pre">

A clear shortcoming of the x86 code (that you copied) is that the log
message doesn't identify the CPU in question. A sequence of "disabled"
and "enabled" could thus result, without the last one (or in fact any
one) making clear what the overall state is. I think you want to avoid
this from the beginning.</pre>
    </blockquote>
    <pre>... Thereby it seems like declaration of g_disabled should be moved outside
vmid_init() function and add a new function which will return g_disabled
value (or just make g_disabled not static and rename to something like
g_vmids_disabled).

And the print message once after all harts will be initialized, somewhere
in setup.c in start_xen() after:
 
<span><span class="">    for_each_present_cpu </span><span class="">( i )</span></span>
<span><span class="">    {</span></span>
<span><span class="">        </span><span class="hljs-keyword">if</span><span
    class=""> </span><span class="">( </span><span class="">(num_online_cpus</span><span
    class="">()</span><span class=""> &lt; nr_cpu_ids)</span><span
    class=""> &amp;&amp; !cpu_online</span><span class="">(i)</span><span
    class=""> )</span></span>
<span><span class="">        {</span></span>
<span><span class="">            </span><span class="hljs-type">int</span><span
    class=""> ret </span><span class="">= cpu_up</span><span class="">(i)</span><span
    class="">;</span></span>
<span><span class="">            </span><span class="hljs-keyword">if</span><span
    class=""> </span><span class="">( ret != </span><span
    class="hljs-number">0</span><span class=""> )</span></span>
<span><span class="">                printk</span><span class="">(</span><span
    class="hljs-string"><span class="hljs-string">"Failed to bring up CPU %u (error %d)</span><span
    class="hljs-string">\n</span><span class="hljs-string">"</span></span><span
    class="">, i, ret)</span><span class="">;</span></span>
<span><span class="">        }</span></span>
<span><span class="">    }</span></span>
(RISC-V doesn't have such code at the moment)

~ Oleksii</pre>
  </body>
</html>

--------------AK7SuHGjOpmcvQDZfEVxjVSd--


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 11:43:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 11:43:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071661.1435079 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujcYN-0006bD-En; Wed, 06 Aug 2025 11:43:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071661.1435079; Wed, 06 Aug 2025 11:43:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujcYN-0006b6-Bf; Wed, 06 Aug 2025 11:43:31 +0000
Received: by outflank-mailman (input) for mailman id 1071661;
 Wed, 06 Aug 2025 11:43:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ctQb=2S=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1ujcYL-0006az-Uw
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 11:43:29 +0000
Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com
 [2a00:1450:4864:20::62b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 90b859a1-72ba-11f0-b898-0df219b8e170;
 Wed, 06 Aug 2025 13:43:26 +0200 (CEST)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-af96d097df5so584632166b.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 Aug 2025 04:43:26 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a243619sm1086193566b.129.2025.08.06.04.43.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Aug 2025 04:43: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>
X-Inumbo-ID: 90b859a1-72ba-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754480606; x=1755085406; darn=lists.xenproject.org;
        h=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=2z1NWy90MQrNOFtwH9d1P6c8Po8accG5whFQh+upgG8=;
        b=GWrKA+00Ipk+n4g8ztUvLYr6I4GS0L3mP8SAV6iiLzC0iktNL6kXPbp2XFT/b6UX/d
         efx+uYELGQtIDGgALX5FxbEqUGKKhiaBb3Ge2ho5HcjIYYSARawOyQEtnQZRUwkrikzU
         5+a8KM0FWpaE8AJ2OhymGQn4I6NSXxu7q072NPpFBP/tJoRzZZK1RGXyiL5kl+1cU0t/
         WHNJgYTSNJvF0v550L3tz98l/KZ7+G0R/JC+Y7x4z9QIse/Tprvg7YKSkNQmsMnOYHZD
         NLZ/m5WKWYUQjMLrMt2x0JmOXNarAdnnF6/Xz1QPEg9+w2ahNqjUcFngajeQVRGJXiwD
         557g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754480606; x=1755085406;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=2z1NWy90MQrNOFtwH9d1P6c8Po8accG5whFQh+upgG8=;
        b=DxDeWfKVvEuiuk1dVQtWfKJzi786NPBGE3L/EvIzIUB+Mh7H2AWxEe1YOkBBndhqxV
         MtpBUpYcQ3a0l7oJ0fyiPwCxlG5Z+jxv/PI8kDOJHlC8Yh1HitEVeToKVGFXePzJMzAU
         hoElnQ+0b2sSEitimyYbA7vUl320x+iJbpsd9cX8tdkIdcHfxkDQ6d5JIxMwactnvYlG
         z7A1fNtt1sCbPU/5TNC8vI2437RjqPHOtTz4XKogc6v7Y1QNsRAVrV5j6okWgku8nZjz
         cuTydCXdiWa0DT1Hrgld1Pzwz+ABdNZ5lmSM3+BpsDxzelBuqvPOc4XLjcqpqtilF3Rt
         FMWA==
X-Forwarded-Encrypted: i=1; AJvYcCV+byJ2itTUEDp/9vUOrbyR/LdcQJBlOsNKP6ocvxvE0qIrk0oFdVdTGlTMaPg/spXda7oKnaZl1HY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzvApIPQMuhScbHsRs94tZsUuiY5yVKI2IBrYdvvD+hzqR7KumV
	LdlYhBixqMHfA0gjqxk/T1vSryz+ACVU36PE7gbOCMWRNmR0Z6wcoyCW
X-Gm-Gg: ASbGnctX5ACpyuKvNh3zPUbzWn0G/m+VQ9dM1sJVNfYoKEBodsOv3v7oTCh046QRzXZ
	8khuEE0RNd4VgaJvrNSHSoTk4oYgxp0I0J6xT7E546J+4q/qQLLW7IqSqtQH589eR53BDGSdSzM
	ezqT3eWiRS14oal8JDn2rS/nhv24BN7GOxYDzhcxh0bhSjvObae6cIj9z45UoqXlj0DWjynSe+6
	gJB9N04WOWJKHVa2zTf8OOyhylv859rNDy3i5Kphlv0C65KnFqbw057U+WZ4v137/IQuykO8TaE
	f1qPZ1kdKQNvA8gMB5sUAvcdIsyCGn/eJk8M6OcC0bfBCZquKbxR1Y6nNo/oZj5u0Pj/oZXVTJ7
	1mJfhqoBvf5Zm7ovIpLTrNtzbmlc3tyL62jCbF+aQ9tGg0U9qVE/moNyRyFeNA1AjVC3KXek=
X-Google-Smtp-Source: AGHT+IG1/UAKD89XEg9V3ghefhO37V5l9WrE5rh5jTYb7KtSbJvU+JTj1WEmrPl1QAgaVozJXHLyhQ==
X-Received: by 2002:a17:907:7b9d:b0:af9:34de:e4a1 with SMTP id a640c23a62f3a-af9902e4aacmr251430366b.33.1754480605822;
        Wed, 06 Aug 2025 04:43:25 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------kFn1ez3xxd0GXSXEdwVb3pDl"
Message-ID: <3bcb1402-37ba-4982-889d-9d1f58bce691@gmail.com>
Date: Wed, 6 Aug 2025 13:43:24 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 04/20] xen/riscv: introduce things necessary for p2m
 initialization
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <c526512aeda09527421e2d60bac7955a8c7c7c56.1753973161.git.oleksii.kurochko@gmail.com>
 <cff0fc63-f5f6-464e-b738-0de03661084a@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <cff0fc63-f5f6-464e-b738-0de03661084a@suse.com>

This is a multi-part message in MIME format.
--------------kFn1ez3xxd0GXSXEdwVb3pDl
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 8/4/25 5:53 PM, Jan Beulich wrote:
> On 31.07.2025 17:58, Oleksii Kurochko wrote:
>> --- a/xen/arch/riscv/include/asm/p2m.h
>> +++ b/xen/arch/riscv/include/asm/p2m.h
>> @@ -3,11 +3,45 @@
>>   #define ASM__RISCV__P2M_H
>>   
>>   #include <xen/errno.h>
>> +#include <xen/mm.h>
>> +#include <xen/rwlock.h>
>> +#include <xen/types.h>
>>   
>>   #include <asm/page-bits.h>
>>   
>>   #define paddr_bits PADDR_BITS
>>   
>> +/* Get host p2m table */
>> +#define p2m_get_hostp2m(d) (&(d)->arch.p2m)
>> +
>> +/* Per-p2m-table state */
>> +struct p2m_domain {
>> +    /*
>> +     * Lock that protects updates to the p2m.
>> +     */
>> +    rwlock_t lock;
>> +
>> +    /* Pages used to construct the p2m */
>> +    struct page_list_head pages;
>> +
>> +    /* Indicate if it is required to clean the cache when writing an entry */
>> +    bool clean_pte;
> I'm a little puzzled by this field still being here, despite the extensive
> revlog commentary. If you really feel you need to keep it, please ...

I think still it could be useful to have clean_pte, but likely not in this patch.
I will move an introduction of it to one of the next patch where it is started
really to be used.

>
>> +    /* Back pointer to domain */
>> +    struct domain *domain;
>> +
>> +    /*
>> +     * P2M updates may required TLBs to be flushed (invalidated).
>> +     *
>> +     * Flushes may be deferred by setting 'need_flush' and then flushing
>> +     * when the p2m write lock is released.
>> +     *
>> +     * If an immediate flush is required (e.g, if a super page is
>> +     * shattered), call p2m_tlb_flush_sync().
>> +     */
>> +    bool need_flush;
> ... group booleans together, for better packing.

I will take that into account. Thanks.

~ Oleksii

--------------kFn1ez3xxd0GXSXEdwVb3pDl
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/4/25 5:53 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:cff0fc63-f5f6-464e-b738-0de03661084a@suse.com">
      <pre wrap="" class="moz-quote-pre">On 31.07.2025 17:58, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/include/asm/p2m.h
+++ b/xen/arch/riscv/include/asm/p2m.h
@@ -3,11 +3,45 @@
 #define ASM__RISCV__P2M_H
 
 #include &lt;xen/errno.h&gt;
+#include &lt;xen/mm.h&gt;
+#include &lt;xen/rwlock.h&gt;
+#include &lt;xen/types.h&gt;
 
 #include &lt;asm/page-bits.h&gt;
 
 #define paddr_bits PADDR_BITS
 
+/* Get host p2m table */
+#define p2m_get_hostp2m(d) (&amp;(d)-&gt;arch.p2m)
+
+/* Per-p2m-table state */
+struct p2m_domain {
+    /*
+     * Lock that protects updates to the p2m.
+     */
+    rwlock_t lock;
+
+    /* Pages used to construct the p2m */
+    struct page_list_head pages;
+
+    /* Indicate if it is required to clean the cache when writing an entry */
+    bool clean_pte;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
I'm a little puzzled by this field still being here, despite the extensive
revlog commentary. If you really feel you need to keep it, please ...</pre>
    </blockquote>
    <pre>I think still it could be useful to have clean_pte, but likely not in this patch.
I will move an introduction of it to one of the next patch where it is started
really to be used.

</pre>
    <blockquote type="cite"
      cite="mid:cff0fc63-f5f6-464e-b738-0de03661084a@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    /* Back pointer to domain */
+    struct domain *domain;
+
+    /*
+     * P2M updates may required TLBs to be flushed (invalidated).
+     *
+     * Flushes may be deferred by setting 'need_flush' and then flushing
+     * when the p2m write lock is released.
+     *
+     * If an immediate flush is required (e.g, if a super page is
+     * shattered), call p2m_tlb_flush_sync().
+     */
+    bool need_flush;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
... group booleans together, for better packing.</pre>
    </blockquote>
    <pre>I will take that into account. Thanks.

~ Oleksii
</pre>
  </body>
</html>

--------------kFn1ez3xxd0GXSXEdwVb3pDl--


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 11:44:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 11:44:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071668.1435088 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujcZ1-00071w-Lz; Wed, 06 Aug 2025 11:44:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071668.1435088; Wed, 06 Aug 2025 11:44: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 1ujcZ1-00071p-JO; Wed, 06 Aug 2025 11:44:11 +0000
Received: by outflank-mailman (input) for mailman id 1071668;
 Wed, 06 Aug 2025 11:44:11 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z+Xv=2S=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujcZ1-0006az-Ai
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 11:44:11 +0000
Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com
 [2a00:1450:4864:20::536])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id aa5a6cf5-72ba-11f0-b898-0df219b8e170;
 Wed, 06 Aug 2025 13:44:09 +0200 (CEST)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-615c8ca53efso11088841a12.2
 for <xen-devel@lists.xenproject.org>; Wed, 06 Aug 2025 04:44: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
 a640c23a62f3a-af91a21c0a4sm1081901366b.109.2025.08.06.04.44.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Aug 2025 04: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>
X-Inumbo-ID: aa5a6cf5-72ba-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754480649; x=1755085449; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=xVK9KjsbV12CCY/MkUED+7oiaOwgxA00Dk6+a2LEY8o=;
        b=RBLDeD6zdDFAHFf4niCbpniEE7vEbPuUfIPLoMhhVGX22c5y/+LatqGEJXALK2Z14N
         zk/sXnEze3yuYtFZJI3FnQN97SHm06mjGTbH/7kJsERDVC+J7bTH0K8BMzz3ZEwgxNdO
         BCzCXkoiGs7RlsCa9xuEAXziGjKDx8vmRVqsQWHL6ExIIM88M7vq9xSCrJ3/N6Gyj8aM
         lM6tiPKJIrwmNRxPt7c8gN/rD0lZly+p1a+eMUN5yZ9kNY4997gj3ru6V/jcTLJ7r8nR
         ZsO2RWypQBtvim3ZtU/Ld/jRO2xs6/dHZDy/XxDWMtWYHBuQr7USgs9XakyxqdnE9IzO
         Rovw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754480649; x=1755085449;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xVK9KjsbV12CCY/MkUED+7oiaOwgxA00Dk6+a2LEY8o=;
        b=q126K70tL0AK6oqcx0qTo3cNFsF2QDmO2EgVd913SOnV5dm+c/fEcgc02ogfr5rZTP
         S/ILYh0eCNM9UL4e+/YQyR8+g/8/BRQVGmkETMg2alrhbgFjJEdF12iXYvbFcD7S+Pe9
         +S3/oYkj0k7Wf1D+nwCMa27LlqHKMly299ZGsh6Se24055ZLKPMea3Ja8L8mZ3vIxuZl
         Cqugn8XUz7HB0vOPGWxCb5+bIlbPm+AOMmwupL9DLxDTF676ZsGdMQ/KBIp6t1gMDLHY
         no7YNTgI6JOL6276NDoK2DL8lsmvd1SacDQIkG9I03eNYTjjnv6uRkrh9FlONT+Y1JNk
         xqcg==
X-Forwarded-Encrypted: i=1; AJvYcCUKdbNJKR0NNzc5issbntKdftmCiG/Ja9x9fcmNqih5vwsFTDmNyCzgPS6PqDsbMoxdBsdRI60dYyg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzhW9AEGGVHVN9TO+fg4Yj3WfNGauZvPfTF7fpsfOGf6DCMsFub
	HaT5H2Cd425nXTZrTJk70qOhqp9eKhi6jM9Sn9GyvYBdGy3qQvuoYk+W222JVHMG1Q==
X-Gm-Gg: ASbGnctd04ol6jHv9enbTcuWyG5d4dBLoTiIc2pyo30i3ck5UXEpbohXyxGD8Kk0kQG
	u45ZIL6gtRS2kWvEXaey0Ptfd9qGE5zjSC+vccxDV4MgQJPjwCrMZqCJN/tnv89jbZ4Bq7y2c3Y
	oOW7DJjdgJxopQU/qbF/p+OU80hprxAr3NrxZXibdlQKY7wakcbEPhNOw3jj4TNQRc0N/LTsIDg
	hVXi9kcam8yQWgwKWrbFQg9CpmDgrzA9zKb+FpOGkoNx9+cTJTbVA2i597I5Amg8/RzTMo6ikGy
	a0Ra/o9UeZuqGhrhVQQ/gVRawenovh85/BiYfCXRiSBFnO+1r2m3Gvc2ukrfjv7DwUcHYznbsJs
	S7fsQdL/bwvGFIuDwT9MnpoYYnmPw69r+R06eW9nsZ6tl2GozK+fVTsq9oXMscBnSxtMruy4rgf
	LkxVr9N7Y=
X-Google-Smtp-Source: AGHT+IFIAEtphQJNPrSCk7MKIZi/K7cKM1UpliGMNniHg2+8V5V5ijvlkgsSkob1yKlraeYOADPPNg==
X-Received: by 2002:a17:907:9627:b0:ae0:d08b:e85 with SMTP id a640c23a62f3a-af9903ce1demr243807266b.61.1754480649095;
        Wed, 06 Aug 2025 04:44:09 -0700 (PDT)
Message-ID: <ce14396f-c8a0-4eb8-a19d-a8e71afb0199@suse.com>
Date: Wed, 6 Aug 2025 13:44:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] ns16550: ensure polling timer is disarmed
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: dmkhn@proton.me, andrew.cooper3@citrix.com, anthony.perard@vates.tech,
 julien@xen.org, michal.orzel@amd.com, sstabellini@kernel.org,
 dmukhin@ford.com, xen-devel@lists.xenproject.org
References: <20250730031249.1613142-1-dmukhin@ford.com>
 <5a4dc92b-139d-4fa5-9baf-2ebc41bba758@suse.com> <aIplBkq7BL52Fn/Q@kraken>
 <78128ec6-b79f-4d4c-a298-72315b190036@suse.com> <aIvjJP6bpJpsQRtQ@kraken>
 <cc3812ca-b929-416c-af75-78c3c3b0d664@suse.com>
 <aJM0EFYKVSQOoB4_@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: <aJM0EFYKVSQOoB4_@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06.08.2025 12:53, Roger Pau MonnÃ© wrote:
> On Fri, Aug 01, 2025 at 09:34:42AM +0200, Jan Beulich wrote:
>> On 31.07.2025 23:42, dmkhn@proton.me wrote:
>>> On Thu, Jul 31, 2025 at 08:54:10AM +0200, Jan Beulich wrote:
>>>> On 30.07.2025 20:31, dmkhn@proton.me wrote:
>>>>> On Wed, Jul 30, 2025 at 10:12:54AM +0200, Jan Beulich wrote:
>>>>>> On 30.07.2025 05:13, dmkhn@proton.me wrote:
>>>>>>> From: Denis Mukhin <dmukhin@ford.com>
>>>>>>>
>>>>>>> As it stands, polling timer is kept in the list of timers even after the
>>>>>>> interrupts have been enabled / polling disabled on ns16550-compatible UART.
>>>>>>>
>>>>>>> Ensure polling timer is removed from the timer list once UART interrupts are
>>>>>>> enabled.
>>>>>>>
>>>>>>> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
>>>>>>
>>>>>> Wasn't it Andrew(?) who suggested something along these lines? That would
>>>>>> want reflecting by a tag then.
>>>>>
>>>>> Yes, indeed.
>>>>>
>>>>>>
>>>>>> Also, what's the real problem you want to solve here? The timer function
>>>>>> would be run one more time after ->intr_works is set, and then the timer
>>>>>> will be permanently inactive (up to a possible S3 resume). Is it being on
>>>>>> an inactive list an actual problem? (IOW I'd like to understand if the
>>>>>> change is merely cosmetic, or if there is some actual benefit.)
>>>>>
>>>>> My understanding is running polling timer one more time after the interrupts
>>>>> are enabled is the issue: if there's a pending timer when it is known the
>>>>> timer not needed, then the timer should be canceled.
>>>>
>>>> And the effort of canceling outweighs the one extra running of the timer?
>>>
>>> I think so, because intr_works will not flip at run-time once set.
>>> If so, no need to keep the timer ready to be rearmed.
>>
>> Well, to me it looks like a code size increase with extremely limited benefit.
>> Hence while likely I wouldn't outright NAK such a change, I also wouldn't ACK
>> it.
> 
> Hm, indeed the net win of this is dubious, as the extra polling
> interrupt would only happen once.  Using stop_timer() would be less
> heavyweight than kill_timer().
> 
> Overall I think it needs justification in the commit message, as the
> timer cannot be removed from the list of timers, otherwise it's usage
> on resume from suspension will trigger an ASSERT, so part of the
> commit message is stale.

That could be compensated by another init_timer(), though. (In fact when
originally looking at the patch, I [wrongly] thought that path was taken
on resume, so didn't comment on that aspect.)

Jan


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 12:01:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 12:01:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071688.1435099 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujcq6-00029D-D6; Wed, 06 Aug 2025 12:01:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071688.1435099; Wed, 06 Aug 2025 12:01: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 1ujcq6-000296-AB; Wed, 06 Aug 2025 12:01:50 +0000
Received: by outflank-mailman (input) for mailman id 1071688;
 Wed, 06 Aug 2025 12:01:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ctQb=2S=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1ujcq5-0001t5-1x
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 12:01:49 +0000
Received: from mail-ed1-x535.google.com (mail-ed1-x535.google.com
 [2a00:1450:4864:20::535])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 20da6b82-72bd-11f0-b898-0df219b8e170;
 Wed, 06 Aug 2025 14:01:47 +0200 (CEST)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-6156463fae9so1527997a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 06 Aug 2025 05:01:47 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a0763d8sm1103259966b.2.2025.08.06.05.01.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Aug 2025 05:01: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>
X-Inumbo-ID: 20da6b82-72bd-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754481707; x=1755086507; darn=lists.xenproject.org;
        h=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=JIC2xpCOK1u7HiBkTWfraOsV9wSURM5yK972xn+dA/c=;
        b=E9ElItoZnzxObfJ24UIQVEMbkGaEYSYqPI178k+Lz8mq/9OC4tMUacoDH6Yys6aUdP
         v9nuiUixPpQ6OWCiA/ETG5Rr7UhCW6/VMTdqwiO8sUXFONZLN/4f3l2i3zbfHB3pHS36
         CaHcNgvt3fbqivx4t4s53KL2iUHBUPN5zO0Cy358Gj0lhcGsh4vHQIIWUHZ7JCcWOwv+
         JS5NmXGSFI5RlVoVaY8q5xsn7QyXGHNDD3icCDeNMA04E4R4ntTM+vyNfYjDDKE7RXam
         XzE3qYqbH8Os4PZ77AbKvhyfTww5MThKC2V8De1hFs2af3rQiTzjYzkzM4Zvra2WU1SV
         nCJw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754481707; x=1755086507;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=JIC2xpCOK1u7HiBkTWfraOsV9wSURM5yK972xn+dA/c=;
        b=AkhqrO19qNEJFahPYKZcXy7oZHhic7XWEDOKKuJ8eEFU/3ZLv8cS4oOXoM/smyOU/U
         cEixwXd8xueglGDg7rW5hozIDwb0Fenv3vCcGk++ujcbf75sBvDmq/kes8aGQKNAHvNY
         dlO6HdfnMLg/rSyM14Ot6wwQG93yYiMQl7Drvq5zgITJr2CT1v8Cd9IpNWPfbk0Eefm3
         8l+Bm8hGIHTaGDbQAf6cbIpTYo1hoyvDu4ZNaMomPlSVUyfPukqtdg7PAMXDs1obfuCg
         +a/zrTs2PMlZT3RE1aJDkCmeoZkvKCWZAGO1SQsM179nE6DHuwYGEqEAcEpAFqstevMj
         IfXg==
X-Forwarded-Encrypted: i=1; AJvYcCXVNmuzrgHc9iJ4kkmqyngl+uFY+FhsipJ9wE47wDJ/okTG4EcJU8V7tbZhpJ8dbFWRMbg4nTAywnU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwVuOsrN62NIF7uOyS3ppp60XZZkVYAn2qN9nnjTIfyFHi3sFqG
	AzTz299Ie0km3cWmSrS3rDlnTG97kn457bBXRGlvazhkTVrdAgk2sKpMsFIAuA==
X-Gm-Gg: ASbGnctgC8O8ol8Y7ZhkwRRXcvb+5rwwgioxIMpE0Ww5EccmNLqs4w8MFmyIfumQc0N
	UtXxZASXmAQDzndwY3HYqRnMeMRA58pOHrfmF4jtgmSfECMXPeGIjdAfWSx3Txwy0976WfuxX3Y
	sNCB75Bb6HXkGz4F0mkIsSNKtcYcNzCf7sQucGsemcCu5b2j5vmpinRIbW8VLUel0klUQzrFAik
	WE0swSbCigrUi0TqVMsiGr967Ny3mV3Oyio0qLsEcZ5A0Fqn6sH3fHKq97Zt1MV10ujDNQjXLeU
	gV7CcUzQ2YLbuizW7g1pkhA2DkYfdUa0oKV8xO4uEp317hsmKCjZ8XPl3dz8wegtwCtD83ZqNBH
	j2F0WfSxpEd0GY02alO79lBJQMeweqjdHcT8Vl4V7Z1fPX6wd+GNQiG22LXrwa/0JCIjTslE=
X-Google-Smtp-Source: AGHT+IHh9rW4CALEG3Fm+yQgoKMoHk8sY+3wD08jPWlU/hef1IynQPlNeNX6m4lltKKZV2F98B7yZg==
X-Received: by 2002:a17:907:6ea4:b0:af8:fded:6bad with SMTP id a640c23a62f3a-af990906562mr259599766b.18.1754481706513;
        Wed, 06 Aug 2025 05:01:46 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------H6KpCsd5d2afR9BLfiirc8TZ"
Message-ID: <858f52de-8ca4-4b93-b565-2e943523c526@gmail.com>
Date: Wed, 6 Aug 2025 14:01:44 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 05/20] xen/riscv: construct the P2M pages pool for
 guests
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <4e7de8ffc929c1bdfa28b40fdd31b814acef103c.1753973161.git.oleksii.kurochko@gmail.com>
 <ae570c32-e6d0-4131-af2b-d6984ff92750@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <ae570c32-e6d0-4131-af2b-d6984ff92750@suse.com>

This is a multi-part message in MIME format.
--------------H6KpCsd5d2afR9BLfiirc8TZ
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 8/5/25 12:40 PM, Jan Beulich wrote:
> On 31.07.2025 17:58, Oleksii Kurochko wrote:
>> @@ -30,3 +34,18 @@ int p2m_init(struct domain *d)
>>   
>>       return 0;
>>   }
>> +
>> +/*
>> + * Set the pool of pages to the required number of pages.
>> + * Returns 0 for success, non-zero for failure.
>> + * Call with d->arch.paging.lock held.
>> + */
>> +int p2m_set_allocation(struct domain *d, unsigned long pages, bool *preempted)
> Noticed only when looking at the subsequent patch: With this being ...
>
>> +{
>> +    int rc;
>> +
>> +    if ( (rc = paging_freelist_init(d, pages, preempted)) )
> ... a caller of this function, the "init" in the name feels wrong.

I thought about paging_freelist_alloc(), but it feels wrong too as it sounds like
freelist is being allocated inside this functions, but what really happens that
pages are allocated and just added/removed to/from freelist.

Maybe something like paging_freelist_resize() or *_adjust() would be better?

~ Oleksii

--------------H6KpCsd5d2afR9BLfiirc8TZ
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/5/25 12:40 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:ae570c32-e6d0-4131-af2b-d6984ff92750@suse.com">
      <pre wrap="" class="moz-quote-pre">On 31.07.2025 17:58, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">@@ -30,3 +34,18 @@ int p2m_init(struct domain *d)
 
     return 0;
 }
+
+/*
+ * Set the pool of pages to the required number of pages.
+ * Returns 0 for success, non-zero for failure.
+ * Call with d-&gt;arch.paging.lock held.
+ */
+int p2m_set_allocation(struct domain *d, unsigned long pages, bool *preempted)
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Noticed only when looking at the subsequent patch: With this being ...

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+{
+    int rc;
+
+    if ( (rc = paging_freelist_init(d, pages, preempted)) )
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
... a caller of this function, the "init" in the name feels wrong.</pre>
    </blockquote>
    <pre>I thought about paging_freelist_alloc(), but it feels wrong too as it sounds like
freelist is being allocated inside this functions, but what really happens that
pages are allocated and just added/removed to/from freelist.

Maybe something like paging_freelist_resize() or *_adjust() would be better?

~ Oleksii
</pre>
  </body>
</html>

--------------H6KpCsd5d2afR9BLfiirc8TZ--


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 12:05:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 12:05:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071705.1435109 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujctT-0002rF-R5; Wed, 06 Aug 2025 12:05:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071705.1435109; Wed, 06 Aug 2025 12:05: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 1ujctT-0002r8-OM; Wed, 06 Aug 2025 12:05:19 +0000
Received: by outflank-mailman (input) for mailman id 1071705;
 Wed, 06 Aug 2025 12:05:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z+Xv=2S=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujctS-0002r2-LH
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 12:05:18 +0000
Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com
 [2a00:1450:4864:20::52b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9d5aaafb-72bd-11f0-b898-0df219b8e170;
 Wed, 06 Aug 2025 14:05:16 +0200 (CEST)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-61592ff5ebbso11477533a12.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 Aug 2025 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
 4fb4d7f45d1cf-615a8f2d554sm9973029a12.27.2025.08.06.05.05.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Aug 2025 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>
X-Inumbo-ID: 9d5aaafb-72bd-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754481916; x=1755086716; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=sLCd4IaoE76twotR9S2hXs+L3Dc9CQcHVKB6velLhNs=;
        b=aIeh/bGTNtVch6LT+ZQezJISfnAKopPBSGWAO5LlmhQ7RZPjcB/iIzEF4lADfrN5wq
         TgltKHaSw5euZrFyYx8aarNdVUCHVQHluGq3B+wMCrETK2zGvj3QZ62nEJQ5jFPVupFN
         IpXcasrY+nAeF+7Vnxb9JXZbWiluspr1J82ofx6VLhEVoisUpJJ0Oi1WVoD1tA5w8PUp
         FGNAABMywNkkDAjaF1Hb9+rg/eS5gLR1VtEm7SQsY3l28HqpPM1UWBP6VTu3gFmZwFMj
         4cPANlMSQOqGaXl1QrHZoSaGS2eWxVBUtjQHIBhY7rWnKvpgQSTsMzmqRurBIqLDHO21
         QWuA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754481916; x=1755086716;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sLCd4IaoE76twotR9S2hXs+L3Dc9CQcHVKB6velLhNs=;
        b=RM4kvpbsOfGM/hJ3yU/8zFHcviskEnB1K023gBfD8lSCtfysx1OjX0CxUCTTma+PoK
         Dysf+3GKmwUBVwwflB2TAjDh08sG45Cn83kr1Y5OVNsBEiWveI+vUAfh6UGWpb1Ck2gR
         c3K7m5HyFJKIB8s59KbSkpZQmWB9z6Nj+9ckxgJSdNBoM0PBMf2Goy2Eqdj1K69jmY49
         ndlnLEa3YEreOPJJrfqAFg3vxSKUOMeUdC7/fjCq2vEVAUY6Rk5wS3mbiy2UwjF6kz0u
         Mb5SXPZpsMyLG/JfgAs6yJFqRerVXnzxWO08NRXFYlvg+vdU5SqTpHuTWN7jqBIXrFMI
         CUmA==
X-Forwarded-Encrypted: i=1; AJvYcCXILtsDycblmHmLsEcnMJKdxT69/nPLhE2qd/3jQXm48vtcP6YO6v0PlY5Muj50wMgtMVBj9bT7FPs=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywc8Znxg6y/kys6HlWxx9R7eB3ihtJywEG2pzguStqsTIjqJgPD
	sZudZLNiWRwognCAkx4tUMoZZ/uWwZ5jvAlJdH8AWox7IL62KS5ye9GV+f6XEys9Xw==
X-Gm-Gg: ASbGncvKnsy4IFt5UzabIHOiPbfdiD20Diur5XHMrQJcbkhHBAyA6Czzog9hub+EWV2
	GbFySdTdngjoHlTFqHhGp4Rrk2nyltYdpu092bJgD+fGJ27sSCOTEJrzbqGh3Ba1/Jd0ZuMIqkM
	oiwEGhqCldVjCzdwLtn9Fm5rFOl8CHUgkrw20dN3ohPYsm3NwmdroByV1hREhQJbPa3yyq2hdkb
	eEjhN72zkcTDgqWjORK56Zg/OxeuprQTiG5tWnvrPUrcQ1K0Hq0DXPde+h3HsBCKqtVYHHwH173
	5o9+qXcjFKG8myvpEgOwbVXICzjM+utlMAu6oOkW47P3JRlZUyYUkDRjEfYclFuYnjK3s6RMqFf
	4oykFmCoUA471UjlDOHLNWDT9ftKEwO1WqS24PtJbvaAeWydzTKJLWQnDPjWvdlHuQrkdBYfOt0
	l0a8WtLWs=
X-Google-Smtp-Source: AGHT+IEBqwPmWu+w9Qbs/gXyTYdbneYNwW2IvBKbESiVQO6XyAdxIZkrUaTYseGC8XTuAljOeT6/FA==
X-Received: by 2002:a05:6402:520d:b0:612:b9bf:2a56 with SMTP id 4fb4d7f45d1cf-6179615fd59mr2205121a12.21.1754481915726;
        Wed, 06 Aug 2025 05:05:15 -0700 (PDT)
Message-ID: <6ddee574-6fe2-4de7-b000-a3af0b2c9d12@suse.com>
Date: Wed, 6 Aug 2025 14:05:14 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 03/20] xen/riscv: introduce VMID allocation and
 manegement
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <d61f5f831ac8045055a1775ee710d4f2fe8dcc26.1753973161.git.oleksii.kurochko@gmail.com>
 <cd1a0c64-49d7-4ae1-8dec-b3b1de3f1d09@suse.com>
 <bcf4c3aa-5c09-4171-a4f5-85110d6e634f@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: <bcf4c3aa-5c09-4171-a4f5-85110d6e634f@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06.08.2025 13:33, Oleksii Kurochko wrote:
> On 8/4/25 5:19 PM, Jan Beulich wrote:
>> On 31.07.2025 17:58, Oleksii Kurochko wrote:
>>> @@ -148,6 +149,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
>>>   
>>>       console_init_postirq();
>>>   
>>> +    vmid_init();
>> This lives here only temporarily, I assume? Every hart will need to execute
>> it, and hence (like we have it on x86) this may want to be a central place
>> elsewhere.
> 
> I havenâ€™t checked how it is done on x86; I probably should.
> 
> I planned to call it for each hart separately during secondary hart bring-up,
> since accessing the|hgatp| register of a hart is required to detect|VMIDLEN|.
> Therefore,|vmid_init()| should be called for secondary harts when their
> initialization code starts executing.

But is this going to be the only per-hart thing that will need doing? Otherwise
the same larger "container" function may want calling instead.

>>> +static unsigned long vmidlen_detect(void)
>> __init ? Or wait, are you (deliberately) permitting different VMIDLEN
>> across harts?
> 
> All what I was able in RISC-V spec is that:
>    The number of VMID bits is UNSPECIFIED and may be zero. The number of
>    implemented VMID bits, termed VMIDLEN, may be determined by writing one
>    to every bit position in the VMID field, then reading back the value in
>    hgatp to see which bit positions in the VMID field hold a one. The least-
>    significant bits of VMID are implemented first: that is, if VMIDLEN > 0,
>    VMID[VMIDLEN-1:0] is writable. The maximal value of VMIDLEN, termed
>    VMIDMAX, is 7 for Sv32x4 or 14 for Sv39x4, Sv48x4, and Sv57x4..
> And I couldn't find explicitly that VMIDLEN will be the same across harts.
> 
> Therefore, IMO, while the specification doesn't guarantee VMID will be
> different, the "unspecified" nature and the per-hart discovery mechanism
> of VMIDLEN in the hgatp CSR allows for VMIDLEN to be different on
> different harts in an implementation without violating the
> RISC-V privileged specification.

Okay, since that's easily feasible with the present implementation, why not
keep it like that then.

>>> +{
>>> +    unsigned long vmid_bits;
>> Why "long" (also for the function return type)?
> 
> Because csr_read() returns unsigned long as HGATP register has
> 'unsigned long' length.

Oh, right, I should have commented on the function return type only.
Yet then I also can't resist stating that this kind of use of a variable,
which initially is assigned a value that doesn't really fit its name, is
easily misleading towards giving such comments.

> But it could be done in this way:
>      csr_write(CSR_HGATP, old | HGATP_VMID_MASK);
>      vmid_bits =  MASK_EXTR(csr_read(CSR_HGATP), HGATP_VMID_MASK);
>      vmid_bits = ffs_g(vmid_bits);
>      csr_write(CSR_HGATP, old);
> And then use uint16_t for vmid_bits and use uin16_t as a return type.

Please check ./CODING_STYLE again as to the use of fixed-width types.

>>> +    unsigned long old;
>>> +
>>> +    /* Figure-out number of VMID bits in HW */
>>> +    old = csr_read(CSR_HGATP);
>>> +
>>> +    csr_write(CSR_HGATP, old | HGATP_VMID_MASK);
>>> +    vmid_bits = csr_read(CSR_HGATP);
>>> +    vmid_bits =  MASK_EXTR(vmid_bits, HGATP_VMID_MASK);
>> Nit: Stray blank.
>>
>>> +    vmid_bits = flsl(vmid_bits);
>>> +    csr_write(CSR_HGATP, old);
>>> +
>>> +    /*
>>> +     * We polluted local TLB so flush all guest TLB as
>>> +     * a speculative access can happen at any time.
>>> +     */
>>> +    local_hfence_gvma_all();
>> There's no guest running. If you wrote hgat.MODE as zero, as per my
>> understanding now new TLB entries could even purely theoretically appear.
> 
> It could be an issue (or, at least, it is recommended) when hgatp.MODE is
> changed:
>   If hgatp.MODE is changed for a given VMID, an HFENCE.GVMA with rs1=x0
>   (and rs2 set to either x0 or the VMID) must be executed to order subsequent
>   guest translations with the MODE changeâ€”even if the old MODE or new MODE
>   is Bare.
> On other hand it is guaranteed that, at least, on Reset (and so I assume
> for power on) that:
>   If the hypervisor extension is implemented, the hgatp.MODE and vsatp.MODE
>   fields are reset to 0.
> 
> So it seems like if no guest is ran then there is no need even to write
> hgatp.MODE as zero, but it might be sense to do that explicitly just to
> be sure.
> 
> I thought it was possible to have a running guest and perform a CPU hotplug.

But that guest will run on another hart.

> In that case, I expect that during the hotplug,|vmidlen_detect()| will be
> called and return the|vmid_bits| value, which is used as the active VMID.
> At that moment, the local TLB could be speculatively polluted, I think.
> Likely, it makes sense to call vmidlen_detect() only once for each hart
> during initial bringup.

That may bring you more problems than it solves. You'd need to stash away
the value originally read somewhere. And that somewhere isn't per-CPU data.

>> In fact, with no guest running (yet) I'm having a hard time seeing why
>> you shouldn't be able to simply write the register with just
>> HGATP_VMID_MASK, i.e. without OR-ing in "old". It's even questionable
>> whether "old" needs restoring; writing plain zero afterwards ought to
>> suffice. You're in charcge of the register, after all.
> 
> It make sense (but I don't know if it is a possible case) to be sure that
> HGATP.MODE remains the same, so there is no need to have TLB flush. If
> HGATP.MODE is changed then it will be needed to do TLB flush as I mentioned
> above.
> 
> If we agreed to keep local_hfence_gvma_all() then I think it isn't really
> any sense to restore 'old' or OR-ing it with HGATP_VMID_MASK.
> 
> Generally if 'old' is guaranteed to be zero (and, probably, it makes sense
> to check that in vmidlen_detect() and panic if it isn't zero) and if
> vmidlen_detect() function will be called before any guest domain(s) will
> be ran then I could agree that we don't need local_hfence_gvma_all() here.
> 
> As an option we can do local_hfence_gvma_all() only if 'old' value wasn't
> set to zero.
> 
> Does it make sense?

Well - I'd like the pre-conditions to be understood better. For example, can
a hart really speculate into guest mode, when the hart is only in the
process of being brought up?

>>> +    data->max_vmid = BIT(vmid_len, U) - 1;
>>> +    data->disabled = !opt_vmid_enabled || (vmid_len <= 1);
>> Actually, what exactly does it mean that "VMIDs are disabled"? There's
>> no enable bit that I could find anywhere. Isn't it rather that in this
>> case you need to arrange to flush always on VM entry (or always after a
>> P2M change, depending how the TLB is split between guest and host use)?
> 
> "VMIDs are disabled" here means that TLB flush will happen each time p2m
> is changed.

That's better described as "VMIDs aren't used" then?

>>> +    if ( g_disabled != data->disabled )
>>> +    {
>>> +        printk("%s: VMIDs %sabled.\n", __func__,
>>> +               data->disabled ? "dis" : "en");
>>> +        if ( !g_disabled )
>>> +            g_disabled = data->disabled;
>> This doesn't match x86 code. g_disabled is a tristate there, which only
>> the boot CPU would ever write to.
> 
> Why g_disabled is written only by boot CPU? Does x86 have only two options
> or VMIDs are enabled for all CPUs or it is disabled for all of them?

Did you look at the x86 code again, or the patch that I sent for it?

> For RISC-V as I mentioned above it is needed to check all harts as the spec.
> doesn't explicitly mention that VMIDLEN is equal for all harts...

Even if in practice x86 systems are symmetric in this regard, you will
have seen that we support varying values there as well. Up to and
including ASIDs being in use on some CPUs, but not on others. So that
code can serve as a reference for you, I think.

>> A clear shortcoming of the x86 code (that you copied) is that the log
>> message doesn't identify the CPU in question. A sequence of "disabled"
>> and "enabled" could thus result, without the last one (or in fact any
>> one) making clear what the overall state is. I think you want to avoid
>> this from the beginning.
> 
> ... Thereby it seems like declaration of g_disabled should be moved outside
> vmid_init() function and add a new function which will return g_disabled
> value (or just make g_disabled not static and rename to something like
> g_vmids_disabled).

No, why? While I didn't Cc you on my patch submission, I specifically
replied to it with you (alone) on the To: list, just so you can look
there first before suggesting (sorry) odd things.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 12:07:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 12:07:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071713.1435118 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujcvX-0003NQ-5r; Wed, 06 Aug 2025 12:07:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071713.1435118; Wed, 06 Aug 2025 12:07: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 1ujcvX-0003NJ-34; Wed, 06 Aug 2025 12:07:27 +0000
Received: by outflank-mailman (input) for mailman id 1071713;
 Wed, 06 Aug 2025 12:07:25 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z+Xv=2S=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujcvV-0003ND-MY
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 12:07:25 +0000
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com
 [2a00:1450:4864:20::52a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e9b5c9ab-72bd-11f0-a322-13f23c93f187;
 Wed, 06 Aug 2025 14:07:24 +0200 (CEST)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-615c8ca53efso11129732a12.2
 for <xen-devel@lists.xenproject.org>; Wed, 06 Aug 2025 05:07: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
 a640c23a62f3a-af91a1e88desm1102581166b.71.2025.08.06.05.07.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Aug 2025 05:07: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>
X-Inumbo-ID: e9b5c9ab-72bd-11f0-a322-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754482044; x=1755086844; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Bg4Hlq8eMf5BBiYt+5Z1rb387mmQ1h5mlw/QsNfBPwA=;
        b=LhmmU4ocRuG9rDP6FVVSYeeLkPjUq8m8J0sfQ6ZJV6Qe1jdmM0C3j0VuX8FoJToEPU
         4nc8USUDJ5hyzP9OkQWmcWrTN2ppY14uBHZYZmNajWnhkHCPL9b2BZSpQYZD8GRl6qUH
         693q86R/mRC0+JHEMGkh6SAOTwJzIaslMoICqvPo8PwRmv/d51qMwd3I90Ff0/gDAZBy
         ZWvQIfNj8ipsii3FEN4kaKDzs00dWYrnBu7JLAxMmg+w+3Dll2QOPhJHAA+DVfYdlXlG
         eE/ILnZjmr61o0V6rPWH2Wd++NGlqhgQOKhx9o08FM5MyETtGU+z9p+gHiPZi4/SkslF
         WwOQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754482044; x=1755086844;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Bg4Hlq8eMf5BBiYt+5Z1rb387mmQ1h5mlw/QsNfBPwA=;
        b=WHbddyopLK45/pMVx71sCrlzqgAIh3ExsIX9nKXvSh30fVg0M+cSJd2Pqtu5M+Ifg/
         ri/s4LJ2IgCugZhzSc8RDbVk6ByYeR/ETBzZTrVRhjKB3r9M6vqNhd4eW+WDE5oMpE54
         t4SrK6NhoKiFy/BtX5EESsp6avk68718GTRzk2HflDVJFYXar791AmhSv/HPG0sx3aab
         WocyvoIyyY/z/2LR8EsgWjaI+UjPcxn6+TtL5Z8nmzX25adcWaCULiIrcKyU3nnSHetJ
         EYm5nKGWGYBNThaeThrcgqh8jjwpiYWJ0rqB+5z884Rk2ukLFuMth+Nh1Pux8Mb3I3Ay
         kBBA==
X-Forwarded-Encrypted: i=1; AJvYcCXspONw95LeScaOEf62vS+ZpdmrKxS6A8bnEinRGDaQO3yfeToGQD4ZUGzUffbdWs1QcG92rVN99OU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzyfUFGAdAvIMjlGZltK+4CmWGwDJHlQ21cv72SSj07yTwbN4Nt
	WfP0rbgFm3zrmKIZiGg+tjhmE+iy2FJcYfLtGleUO13fyE0OUkpbE+E/5U/rYyNkhQ==
X-Gm-Gg: ASbGncsfyWAQZ13tnn76KNdgALPkzDpNwYDj4iOLtQLjJwKoAdlH+GjQxr0HNydfAr8
	OXX6CAe03q+ykURX97PNupltgLWj34PoX3Bsn5ULyM5aU7giLL8WgG8+qJfCPNoiAqdRwqOqkDI
	vLWanlA/scoep6YdV1dRiAS4fq2zB6Hd7hRwTqvwjMW4rjm+ihdOBgyXzkTsyvBv02wcYh6GVhB
	xUf72JHct/QIvbIImcBZiz5Pn2rrceBpy2eKIsnhfChxnlKc8iLWCr5Dap6eXiHl+hom46DXwk0
	o7Fuz3dnJnDnAfECckNJkFQ/LNJNNTekc9v8ldyFEr4Yupq53Rwu2yLZNGv/bQqpIomWmrWDYnh
	GbJ0LTJsfDIqXn+KESypxZiwsznvlpKoxUw2Qfnsb/tQtL3ChhNSfR53zecK1B3trgfVVe9mL0R
	I26y9p/bg=
X-Google-Smtp-Source: AGHT+IHPGFnQZeqpL9f16JwmJfpa6q09n7SJJDYH/qO0dC8znAIUEz1CsAXcVbiQ3DGfD0Lt9qUIhQ==
X-Received: by 2002:a17:907:985:b0:af9:8438:de48 with SMTP id a640c23a62f3a-af9903547ffmr241733666b.48.1754482043885;
        Wed, 06 Aug 2025 05:07:23 -0700 (PDT)
Message-ID: <9f306465-48c0-4b76-8778-0ffc5ce0c444@suse.com>
Date: Wed, 6 Aug 2025 14:07:22 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 05/20] xen/riscv: construct the P2M pages pool for
 guests
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <4e7de8ffc929c1bdfa28b40fdd31b814acef103c.1753973161.git.oleksii.kurochko@gmail.com>
 <ae570c32-e6d0-4131-af2b-d6984ff92750@suse.com>
 <858f52de-8ca4-4b93-b565-2e943523c526@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: <858f52de-8ca4-4b93-b565-2e943523c526@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.08.2025 14:01, Oleksii Kurochko wrote:
> 
> On 8/5/25 12:40 PM, Jan Beulich wrote:
>> On 31.07.2025 17:58, Oleksii Kurochko wrote:
>>> @@ -30,3 +34,18 @@ int p2m_init(struct domain *d)
>>>   
>>>       return 0;
>>>   }
>>> +
>>> +/*
>>> + * Set the pool of pages to the required number of pages.
>>> + * Returns 0 for success, non-zero for failure.
>>> + * Call with d->arch.paging.lock held.
>>> + */
>>> +int p2m_set_allocation(struct domain *d, unsigned long pages, bool *preempted)
>> Noticed only when looking at the subsequent patch: With this being ...
>>
>>> +{
>>> +    int rc;
>>> +
>>> +    if ( (rc = paging_freelist_init(d, pages, preempted)) )
>> ... a caller of this function, the "init" in the name feels wrong.
> 
> I thought about paging_freelist_alloc(), but it feels wrong too as it sounds like
> freelist is being allocated inside this functions, but what really happens that
> pages are allocated and just added/removed to/from freelist.
> 
> Maybe something like paging_freelist_resize() or *_adjust() would be better?

Yes; whichever of the two you like better.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 12:34:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 12:34:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071741.1435132 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujdLI-0007nv-Ac; Wed, 06 Aug 2025 12:34:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071741.1435132; Wed, 06 Aug 2025 12:34: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 1ujdLI-0007no-81; Wed, 06 Aug 2025 12:34:04 +0000
Received: by outflank-mailman (input) for mailman id 1071741;
 Wed, 06 Aug 2025 12:34:03 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Tgyg=2S=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1ujdLH-0007ni-9G
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 12:34:03 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on2062a.outbound.protection.outlook.com
 [2a01:111:f403:2418::62a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a0e93885-72c1-11f0-a322-13f23c93f187;
 Wed, 06 Aug 2025 14:34:01 +0200 (CEST)
Received: from BN0PR04CA0177.namprd04.prod.outlook.com (2603:10b6:408:eb::32)
 by CY8PR12MB9033.namprd12.prod.outlook.com (2603:10b6:930:71::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.13; Wed, 6 Aug
 2025 12:33:57 +0000
Received: from BN2PEPF000044A9.namprd04.prod.outlook.com
 (2603:10b6:408:eb:cafe::7c) by BN0PR04CA0177.outlook.office365.com
 (2603:10b6:408:eb::32) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.18 via Frontend Transport; Wed,
 6 Aug 2025 12:33:56 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN2PEPF000044A9.mail.protection.outlook.com (10.167.243.103) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Wed, 6 Aug 2025 12:33:55 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 6 Aug
 2025 07:33:55 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 6 Aug
 2025 07:33:55 -0500
Received: from xcbayankuma40.xilinx.com (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via
 Frontend Transport; Wed, 6 Aug 2025 07:33: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>
X-Inumbo-ID: a0e93885-72c1-11f0-a322-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=brjw9qbg2KTBPwWwB7p4D1Hd9tXWlAKOn9CkNd9SBvvhGMmpXLiXwo3yyMERssCQDpjS2L+Z4OD9OniqrJ1gEq8iMJ/hr8bRpqPWPoT5Caf9f4mweaCGWLXlSqLE7ty1PQqa2HBQTzEafCIsqPTGnlvisZXgAiNVGk6GpsYW7/W6Es5pfPXfaEoCo3xYQWtMphDWWekg81m5Np2zs7SKAsj8eAG3LLTVOgW4YzsXlKABIA+CqYBoTcaJHw8NzxUaIylNPvDvRr/0pfu94z4bLZn0UHk2SfWNuyaUVRItWy1MdfC5wlop/01+NP9OudIdRCz9acIqTPxPsMku6EhA5Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+22nXgo23FGZcNmrLCzV5PnEyTCLAR7ptulfQrNfcqk=;
 b=Y+CrTe3/NdLxieHuMfZ7QdHwDcsh7oWMrlOAvuoD8MkOictS+ccEtHN01JaYiQiU+qk2iioTgN3h4lGnn45eS2KoazbnGdnucwaCLX36oi4vkG+eBrJ2siysE89CtIixs2RqzAb36noIe4sPFfK5BvkH04Pgwpgmd9NC7QiylGyvO7FX01uxqKkGe9ErqVPIGl3Cg1UvFb6FfAE9lE6OoQs9vGUfvCbkKvkOgrGFOoYaSwtp/vOleSmr+G32TxdoU1nDIpBLuC3XnQg6jad+jBLMojko2uTlUSbS2p7pEtorTxmNyng2kumVDdEuOZk7m/TFma3VbCYB74VAgxci8A==
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=+22nXgo23FGZcNmrLCzV5PnEyTCLAR7ptulfQrNfcqk=;
 b=yWhbWaUhUtX+02x9AErHmERvNommIYFmLyubVGa0Ledew/FmwOOAdEFxHEAr3H5u2hUhxY8/NRfzye71pI1mU7EwZXu5CfVHxxF9qhvd36+TnGyUIaFKd4sKb8RQ8q5eF9IAIB+5RA7PsFxwhX+K3lf4dhnw39ymaBhTvYZVCr4=
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=SATLEXMB04.amd.com; pr=C
From: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <sstabellini@kernel.org>, <michal.orzel@amd.com>, Ayan Kumar Halder
	<ayan.kumar.halder@amd.com>
Subject: [ImageBuilder] Add config option to use separate load commands for Xen, DOM0 and DOMU binaries
Date: Wed, 6 Aug 2025 13:33:52 +0100
Message-ID: <20250806123352.15852-1-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN2PEPF000044A9:EE_|CY8PR12MB9033:EE_
X-MS-Office365-Filtering-Correlation-Id: a6c7e721-5dc9-456e-faa7-08ddd4e58285
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?eLB51mH2+/pnFIT4Y0XtFsuYBz9laQYgHtCrw3lr5m+knwzUdLySfzJ2jvJg?=
 =?us-ascii?Q?EWAx6TQNaTSwE0y1nBophtOnfAIMhecfB+3svIyS/tLI8xIXCJ7W9PeTYBeU?=
 =?us-ascii?Q?mXRqhGT1arnYHfBqQGb3QU9RCAAeNhXahNAWSMLVmqbLVd4eQbsExUsa6QYh?=
 =?us-ascii?Q?f+XCbaItDNS9FPey+116KLeb9mOwqLJlQlIgKipuo5C/kKNNy6GTEOU/U4ed?=
 =?us-ascii?Q?n3BAN50t05PayYeZUkOMgz2KRSt5VKefd/DEIBYUG1ixhc4dES0vA/cJop+a?=
 =?us-ascii?Q?vXosh54PJXRPdDBP+JcJCqWzVE/TnJIKzVSYJkYsD51aDmuHA/fITToEsG3r?=
 =?us-ascii?Q?Sb6yhM2vpcdnraNCukAT7COpcE6mS+eGjzuG4lXq0mRlDEMqd2CNBd68u4wX?=
 =?us-ascii?Q?GbZMzKiMN42R9HRFYct2T1WtF15ULKcULJegy29oueputYS2zzAEG5p5j59h?=
 =?us-ascii?Q?NXxuf8lZNPdCRVISPq2MYkIQqpNeGenZWuOkhh/tGT3JLNeJrv9fpvNSgU8S?=
 =?us-ascii?Q?hr7qlPAGbudxXu+ZTgtVjTrsReb82YgkySS4GpdVc1Owb2cV5ogD3u/WqeEq?=
 =?us-ascii?Q?bpNmwX+FpCl0DIOHEgULr1IctPglaAekLOSrtU2mGfBrZYh5LuQBapdSyt9u?=
 =?us-ascii?Q?/FMfDkVrwTBeuPDN9y1Eu+y4PnAF18Uwi61c7qA8S0eExo8CdlX5oGAKc9jn?=
 =?us-ascii?Q?3MJSO8E9GL2FwaFizuBbEYl11U1/TGCpyJd9jrrO+U2/9ZtDN25tgWI2WxyM?=
 =?us-ascii?Q?dPBMjLbgXsejggnumOvPz8okVj3vkm11r+LiUE1kI/hpEhRhLG0rswy4AbyV?=
 =?us-ascii?Q?qrzHSIMgjna3VIra2uJ7yFeQSZe22sIuC/ampH0EfZYLJ0RyFOLf1by2mOjh?=
 =?us-ascii?Q?vF6PQjiDEa0kk4zz8cb/kkwqB/Hfy+U9p45MmuATZYS7hdSlxpcW0pAKpUM0?=
 =?us-ascii?Q?QcgGqaJHR/Vh51LVbhi222vf7WDw8J5FByksVu69lxcm0RYUnbCFO1swPpWA?=
 =?us-ascii?Q?2oPapLo9FnPUO0fbdt0OTO04RCCpa7yJSuCiSWZjYfGxZlKmjvM459llGEWD?=
 =?us-ascii?Q?Kw8DV5dOAkBeFuz+VRn0MKtJ0zNmMoK41nomLxfc2DJcw5wwAmW2xOBXSa8v?=
 =?us-ascii?Q?9/sRZETuCzcWAZTdgihweefh/8CLZrh78ei7Cdw+M+Q96e8h5tAoJkzAGwrA?=
 =?us-ascii?Q?Ns4n1KItfAoiM8zIbOqul3qwMJUp2rgwwgOleswW8XPDZfLgIJHKBcpfUd6v?=
 =?us-ascii?Q?TAddLYNaLird03D9IbeoBUES1q4v/CytNsdbmr+ETPAdhCk2CxAV5aOLn7Av?=
 =?us-ascii?Q?Uzv9fCfJyriPkkUsqVDM+MHRafYOhoM+sYa5Jz6z3aInDh7wmIGWWh8ddz1E?=
 =?us-ascii?Q?Bn6zS9hRvg0ZTQBb0WGY1nVZMVjREf02qmO/TNsVpMuvs0NWsOD1iOwCRlua?=
 =?us-ascii?Q?WdSHFbAYha/Khv9TbkSlvA48FbvW0eLO7o2LoXfi5/tddHTurmnSDj/VK+Il?=
 =?us-ascii?Q?s6Dat+JrJDCVNlOe//7ocphHXm30xctBoGqe?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(1800799024)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Aug 2025 12:33:55.8463
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a6c7e721-5dc9-456e-faa7-08ddd4e58285
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN2PEPF000044A9.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB9033

Introduce the following options :-
1. XEN_LOAD - This specifies command to load xen hypervisor binary and device
tree.
2. DOM0_LOAD - This specifies command to load Dom0 binaries.
3. DOMU_LOAD[] - This specifies command to load DomU binaries.

There can be situations where Xen, Dom0 and DomU binaries are stored in
different partitions. Thus, imagebuilder should provide a way the binaries
using different commands.

If any of the above options are not specified, LOAD_CMD is used by default.

Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
---
 README.md                | 14 ++++++++++++++
 scripts/uboot-script-gen | 32 +++++++++++++++++++++++---------
 2 files changed, 37 insertions(+), 9 deletions(-)

diff --git a/README.md b/README.md
index b7be268..4be6efb 100644
--- a/README.md
+++ b/README.md
@@ -33,10 +33,12 @@ BOOT_CMD="booti"
 
 DEVICE_TREE="mpsoc.dtb"
 XEN="xen"
+XEN_LOAD="ext4load mmc 0:1"
 XEN_CMD="console=dtuart dtuart=serial0 dom0_mem=1G dom0_max_vcpus=1 bootscrub=0 vwfi=native sched=null"
 PASSTHROUGH_DTS_REPO="git@github.com:Xilinx/xen-passthrough-device-trees.git device-trees-2021.2/zcu102"
 DOM0_KERNEL="Image-dom0"
 DOM0_CMD="console=hvc0 earlycon=xen earlyprintk=xen clk_ignore_unused"
+DOM0_LOAD="ext4load mmc 2:1"
 DOM0_RAMDISK="dom0-ramdisk.cpio"
 DOM0_MEM=1024
 DOM0_VCPUS=1
@@ -46,11 +48,13 @@ DT_OVERLAY[0]="host_dt_overlay.dtbo"
 
 NUM_DOMUS=2
 DOMU_KERNEL[0]="zynqmp-dom1/Image-domU"
+DOMU_LOAD[0]="ext4load mmc 4:1"
 DOMU_PASSTHROUGH_PATHS[0]="/axi/ethernet@ff0e0000 /axi/serial@ff000000"
 DOMU_CMD[0]="console=ttyPS0 earlycon console=ttyPS0,115200 clk_ignore_unused rdinit=/sbin/init root=/dev/ram0 init=/bin/sh"
 DOMU_RAMDISK[0]="zynqmp-dom1/domU-ramdisk.cpio"
 DOMU_COLORS[0]="6-14"
 DOMU_KERNEL[1]="zynqmp-dom2/Image-domU"
+DOMU_LOAD[1]="ext4load mmc 5:1"
 DOMU_CMD[1]="console=ttyAMA0 clk_ignore_unused rdinit=/sbin/init root=/dev/ram0 init=/bin/sh"
 DOMU_RAMDISK[1]="zynqmp-dom2/domU-ramdisk.cpio"
 DOMU_MEM[1]=512
@@ -99,6 +103,9 @@ Where:
 - XEN_CMD specifies the command line arguments used for Xen.  If not
   set, the default one will be used.
 
+- XEN_LOAD specifies the command to load XEN and DEVICE_TREE. If not set,
+  LOAD_CMD will be used.
+
 - XEN_STATIC_HEAP="baseaddr1 size1 ... baseaddrN sizeN"
   if specified, indicates the host physical address regions
   [baseaddr, baseaddr + size) to be reserved as Xen static heap.
@@ -109,6 +116,9 @@ Where:
   uboot-script-gen will compile the partial device trees which have
   been specified in DOMU_PASSTHROUGH_PATHS[number].
 
+- DOM0_LOAD specifies the command to load DOM0_KERNEL and DOM0_RAMDISK. If not
+  set, LOAD_CMD will be used.
+
 - DOM0_KERNEL specifies the Dom0 kernel file to load.
   For dom0less configurations, the parameter is optional.
 
@@ -159,6 +169,10 @@ Where:
   kernel. If not set and DOMU_VPL011[number] is not set to 0, then
   "console=ttyAMA0" is used.
 
+- DOMU_LOAD[number] specifies the command to load DOMU_KERNEL[number],
+  DOMU_RAMDISK[number] and DOMU_PASSTHROUGH_DTB[number]. If not set, then
+  LOAD_CMD is used.
+
 - DOMU_RAMDISK[number] specifies the DomU ramdisk to use.
 
 - DOMU_PASSTHROUGH_PATHS[number] specifies the passthrough devices (
diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
index b81e614..fed53aa 100755
--- a/scripts/uboot-script-gen
+++ b/scripts/uboot-script-gen
@@ -737,6 +737,7 @@ function load_file()
 {
     local filename=$1
     local fit_scr_name=$2
+    local load_cmd=$3
 
     local absolute_path="$(realpath --no-symlinks $filename)"
     local base="$(realpath $PWD)"/
@@ -748,10 +749,10 @@ function load_file()
         add_size_from_file $filename
     else
         if test "$CALC"; then
-            echo "$LOAD_CMD \${memaddr} ${prepend_path:+$prepend_path/}$relative_path" >> $UBOOT_SOURCE
+            echo "$load_cmd \${memaddr} ${prepend_path:+$prepend_path/}$relative_path" >> $UBOOT_SOURCE
             add_size_calculate $fit_scr_name
         else
-            echo "$LOAD_CMD $memaddr ${prepend_path:+$prepend_path/}$relative_path" >> $UBOOT_SOURCE
+            echo "$load_cmd $memaddr ${prepend_path:+$prepend_path/}$relative_path" >> $UBOOT_SOURCE
             add_size_from_file $filename
         fi
     fi
@@ -1003,11 +1004,15 @@ generate_uboot_images()
 
 xen_file_loading()
 {
+    if test -z "$DOM0_LOAD"
+    then
+        DOM0_LOAD="$LOAD_CMD"
+    fi
     if test "$DOM0_KERNEL"
     then
         check_compressed_file_type $DOM0_KERNEL "executable\|uImage"
         dom0_kernel_addr=$memaddr
-        load_file $DOM0_KERNEL "dom0_linux"
+        load_file $DOM0_KERNEL "dom0_linux" "$DOM0_LOAD"
         dom0_kernel_size=$filesize
     fi
     if test "$DOM0_RAMDISK"
@@ -1015,7 +1020,7 @@ xen_file_loading()
         check_compressed_file_type $DOM0_RAMDISK "cpio archive"
         ramdisk_addr=$memaddr
         ramdisk_path=$DOM0_RAMDISK
-        load_file "$DOM0_RAMDISK" "dom0_ramdisk"
+        load_file "$DOM0_RAMDISK" "dom0_ramdisk" "$DOM0_LOAD"
         ramdisk_size=$filesize
     else
         ramdisk_addr="-"
@@ -1024,6 +1029,10 @@ xen_file_loading()
     i=0
     while test $i -lt $NUM_DOMUS
     do
+        if test -z "${DOMU_LOAD[$i]}"
+        then
+            DOMU_LOAD[$i]="$LOAD_CMD"
+        fi
         if test "${DOMU_ROOTFS[$i]}" || test "${DOMU_NOBOOT[$i]}"
         then
             if test -z "${DOMU_NOBOOT[$i]}"
@@ -1042,20 +1051,20 @@ xen_file_loading()
 
         check_compressed_file_type ${DOMU_KERNEL[$i]} "executable\|uImage"
         domU_kernel_addr[$i]=$memaddr
-        load_file ${DOMU_KERNEL[$i]} "domU${i}_kernel"
+        load_file ${DOMU_KERNEL[$i]} "domU${i}_kernel" "${DOMU_LOAD[$i]}"
         domU_kernel_size[$i]=$filesize
         if test "${DOMU_RAMDISK[$i]}"
         then
             check_compressed_file_type ${DOMU_RAMDISK[$i]} "cpio archive"
             domU_ramdisk_addr[$i]=$memaddr
-            load_file ${DOMU_RAMDISK[$i]} "domU${i}_ramdisk"
+            load_file ${DOMU_RAMDISK[$i]} "domU${i}_ramdisk" "${DOMU_LOAD[$i]}"
             domU_ramdisk_size[$i]=$filesize
         fi
         if test "${DOMU_PASSTHROUGH_DTB[$i]}"
         then
             check_compressed_file_type ${DOMU_PASSTHROUGH_DTB[$i]} "Device Tree Blob"
             domU_passthrough_dtb_addr[$i]=$memaddr
-            load_file ${DOMU_PASSTHROUGH_DTB[$i]} "domU${i}_fdt"
+            load_file ${DOMU_PASSTHROUGH_DTB[$i]} "domU${i}_fdt" "${DOMU_LOAD[$i]}"
             domU_passthrough_dtb_size[$i]=$filesize
         fi
         i=$(( $i + 1 ))
@@ -1070,9 +1079,14 @@ xen_file_loading()
         generate_uboot_images
     fi
 
+    if test -z "${XEN_LOAD}"
+    then
+        XEN_LOAD="$LOAD_CMD"
+    fi
+
     kernel_addr=$memaddr
     kernel_path=$XEN
-    load_file "$XEN" "host_kernel"
+    load_file "$XEN" "host_kernel" "$XEN_LOAD"
 
     xen_policy_addr="-"
     if test -n "$XEN_POLICY"
@@ -1691,7 +1705,7 @@ fi
 
 check_file_type $DEVICE_TREE "Device Tree Blob"
 device_tree_addr=$memaddr
-load_file $DEVICE_TREE "host_fdt"
+load_file $DEVICE_TREE "host_fdt" "$XEN_LOAD"
 bitstream_load_and_config  # bitstream is loaded last but used first
 device_tree_editing $device_tree_addr
 
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Aug 06 13:48:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 13:48:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071787.1435151 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujeVV-0000Gb-Na; Wed, 06 Aug 2025 13:48:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071787.1435151; Wed, 06 Aug 2025 13:48:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujeVV-0000GU-K0; Wed, 06 Aug 2025 13:48:41 +0000
Received: by outflank-mailman (input) for mailman id 1071787;
 Wed, 06 Aug 2025 13:48:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kasG=2S=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1ujeVU-0000GO-PY
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 13:48:40 +0000
Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com
 [2a00:1450:4864:20::433])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0e1d7268-72cc-11f0-b898-0df219b8e170;
 Wed, 06 Aug 2025 15:48:38 +0200 (CEST)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-3b79bddd604so4436942f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 06 Aug 2025 06:48:38 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-459c58ececdsm88196085e9.1.2025.08.06.06.48.37
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Aug 2025 06:48: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>
X-Inumbo-ID: 0e1d7268-72cc-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754488118; x=1755092918; 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=pwjYNfrhNxwfvUl3nWgGhrOpkF7qtjSx02o5Z/rAA9A=;
        b=MnjziP2HkCxNft/Zahor97mpYEVAd3shgFcoWfDLSwpjJye+DMvB3i2XLuuk0qP5XA
         Mf1sSmWPA/laA2JFtB0TVhuxl99XQlU11VhOT1xPI2nv01IU1ebgU1BGFyn9kw44SHBd
         9Wj3/ATw+6m76kRVfm7i4RQV+HdJgz4/nYDjk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754488118; x=1755092918;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=pwjYNfrhNxwfvUl3nWgGhrOpkF7qtjSx02o5Z/rAA9A=;
        b=SfMzwFlpzQoGyeaoflNivtpJjkLVQ0uvngSnxx+5Swf3kogz6igdMohxq3VTh8vLJl
         TP/Dm31M1N48JjYH/Y4LpeE/f05BOxhuMdDj+oGZW2sldanZUMY3IyoCNf1tDv3VryD0
         0e0EYh0P9Pf9XVokpk0DKtm9PGDM+hXddtaC83YugCNPg5FeJDkU70urV36cykh1C9W1
         fJ33rU2LKC5dMrGHNiUDdhAbLjvh6RpJIAyPtrB1zAbaz9xcZqrHLiHI5qe5Odw4V6U9
         7972hhBWG+f/ENtNpPIgHqq4tU0JRGIWl/KxvYcGJYeXeogvv+Zeans8UH5NdEBUgVwU
         MkXg==
X-Gm-Message-State: AOJu0YzMmL/qOrV/p2zBR8gLQJZ0YLYrSOovWGu+qnNzl4ps22SsnOcJ
	1H/IfCspFZ4FsSnscPCU6YEBxHcSWuDp16HSSTBhUtNqmA1f/FTERBdNg3kZwKWoV7s=
X-Gm-Gg: ASbGncvXTGCdW4r2losHNrER6w+8YwpZh6CeQ6nt+gLmgfT8jGDUgGS3gvktSOR0Be0
	PNyy/ojyad8W6hxML55w6+97L1nYMDXcRkV2Bpu+8JZZHNu3evfgignPwlff7CKTvsI9MpSM23P
	jfwDyPWiv/BohGq3mJ38j7MAkeF3uOxCXkg2vYFrQx9z4CI2safH6yfOkvgPM1pvVYhFbpmwt4x
	U2UbYFYbduOLJKtwHITRUw3V3sf39TxbFBZfv0CSd5+uoA6SePnWuM4/kWRTw96Fu33Qxd2jh0E
	ifqGdyqMEfQD2scY26d49zRKtEk/5EK/8kpbGOg8GkaePFnBw7XXtslqmeMwZrk5G3/Q2HvCzGz
	3X9egnBHek4HsOfTARvDtYsSUTYFxxhqS02qxVZT74A5omXao3rpO+gVSZCcJrmqegQ==
X-Google-Smtp-Source: AGHT+IF4sPMyKHriRBNm45A6/0pKloHFhM/OWo8S3I4qwk63PSXoQzdRgCN/2HXKYVVJlX3IEBOckA==
X-Received: by 2002:a05:6000:4387:b0:3b7:78c8:937f with SMTP id ffacd0b85a97d-3b8f4197fe9mr2324736f8f.20.1754488117922;
        Wed, 06 Aug 2025 06:48:37 -0700 (PDT)
Date: Wed, 6 Aug 2025 15:48:36 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com,
	anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org,
	michal.orzel@amd.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: Re: [PATCH v4 0/8] x86: introduce NS16550-compatible UART emulator
Message-ID: <aJNdNEgCf3QFK_VX@macbook.local>
References: <20250731192130.3948419-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20250731192130.3948419-1-dmukhin@ford.com>

On Thu, Jul 31, 2025 at 07:21:37PM +0000, dmkhn@proton.me wrote:
> x86 port of Xen lacks vUART facility similar to Arm's vpl011 to support x86
> guest OS bring up in the embedded setups.
> 
> This patch series introduces initial in-hypervisor emulator for
> NS8250/NS16x50-compatible UARTs under CONFIG_VUART_NS16550.
> 
> In parallel domain creation scenario (hyperlaunch), NS16550 emulator helps
> early guest firmware and OS bringup debugging, because it eliminates
> dependency on the external emulator (qemu) being operational by the time
> domains are created.
> 
> The emulator also allows to forward the physical console input to the x86
> domain which is useful when a system has only one physical UART for early
> debugging and this UART is owned by Xen.
> 
> By default, CONFIG_VUART_NS16550 enables emulation of NS16550 at I/O port
> 0x3f8, IRQ#4 in guest OS (legacy COM1). But all legacy COM resources can be
> selected at built-time (no per-domain configuration yet).
> 
> The NS16550 emulator is disabled in default x86 configuration and goes under
> CONFIG_EXPERT in menuconfig.
> 
> Limitations
> ===========
> - Only x86;
> - Only HVM domains support (build-time), PVH domains are not supported yet;

I'm confused by the above statement, HVM domains always have an
emulated serial provided by QEMU if needed, so I think you got this
backwards, and it should instead be:

- Only PVH domains supported, PV and HVM domains are not supported yet.

?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 13:56:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 13:56:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071795.1435162 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujedM-0001zk-Ea; Wed, 06 Aug 2025 13:56:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071795.1435162; Wed, 06 Aug 2025 13:56: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 1ujedM-0001zd-Ak; Wed, 06 Aug 2025 13:56:48 +0000
Received: by outflank-mailman (input) for mailman id 1071795;
 Wed, 06 Aug 2025 13:56:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kasG=2S=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1ujedK-0001zV-JS
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 13:56:46 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2fc00015-72cd-11f0-b898-0df219b8e170;
 Wed, 06 Aug 2025 15:56:44 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-458aee6e86aso35285325e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 Aug 2025 06:56:44 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-459e0e70218sm80632385e9.20.2025.08.06.06.56.43
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Aug 2025 06:56: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>
X-Inumbo-ID: 2fc00015-72cd-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754488604; x=1755093404; 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=xFTD8TgIADwi7DDpB1nVo2XT7ARgAr6lzDswfkrD8jY=;
        b=eMKkprM071vpNpnRP8x25RaYhrmZDquDSGLgE5xdEiF8w6p5tbvl11gLnI+gDIUJqS
         78PYuTqFJyn8UphHuv2IC52UtDi6HUPepqkuI/o2Dqc6Lxxvb/cBPkaXCmdArzkcuS4c
         16kGEi8fD3bkQ2QE4z2n5rdwhooCu9RQ2J1i4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754488604; x=1755093404;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xFTD8TgIADwi7DDpB1nVo2XT7ARgAr6lzDswfkrD8jY=;
        b=LaeIbRpbobl/YZ3Y6oqXYxgId6P3yiXlBjnd3Sf/S+8aaXXmMOFMJlKPz0QAf7ziuN
         weDewGFF6l4m8RbTiMUETaJ5UjPvkxQpY0Kj6ivdDBelUN1sCOGxnYWacVoDC47s8Vs9
         hbnTlI5HtVzKFiQQRYu68W6bi74JN/f+vC9SlizyOshQ6xOmzb7eUQQiW/v6ay05eKN2
         eiOvtTMLIEDmqri9YnYvs//mf1zTwtQBf80jL2UFOAz1/140FwS4V1yzpWgQPo8GVazC
         8NOz/3xl1Y8bj4XzTIZtdxJD9aMolGNH74rJgWoKaESaCiYhiczkQZK2Www2s+lUGNJZ
         AahQ==
X-Forwarded-Encrypted: i=1; AJvYcCXZ8NyszRC0kwPyYsGXbPb5zKQpK69gG7dxwxckH7F+YxPm2u1xFqh6KHieP87kLqTqUHhrxlc/4k8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzbWYTGoZqJNYb20ApCPaPTYS3SQwUIWVLr73bpaNidkhXCnzHH
	vM0uYCesZnxS/86cDPc9ZbnGEzSzInrcOCsoCH7ZGF0CSszfpnSwp6gGZDHE6fFf8ts=
X-Gm-Gg: ASbGncu/n6qmskOBVNTDEzsKfpPJ43m2kSA3WJjPUAb264gxhf65zOFgoSFO+ScobQY
	pxwDhRIEuPiDj6XW2bj4Op90XaJ+2H3gw5s4PFtkNyz5lfEokSGfE/2ak7M3MtzCbFpL+feGvnV
	R98UczR0dLusKHlBMljRWZ2XHvHdVBFZHC67wh0k88zywSkJg3IIDuxDljJ6UQCbXM/4NCh/4LK
	BpeCWFa705wqboI7Zsi/xCTBbvFhT6aWuMa1Rv6AAItPodm8IbYPN4fmSEotQqriOTgYG4xRb6A
	79tHlxCBLfhRs/BcPhJHF+ePUoCARLtbIcvNgCeKKmcia6msiMrcrRoDvgVeNhlOOfANL7nYEKK
	wZLSVz6u5+WvpatLHPIT83Ya9Tu3X+Dw5nlwHq6710cm6BURW+7do5fWkCtPyMOL+3Q==
X-Google-Smtp-Source: AGHT+IHdpdqneunPfLIqYLQWW5SvkVqgoJEp4OOAYoj2hZ9yRC0K5x43/tcFiFBl86RpUYjd19NmUQ==
X-Received: by 2002:a05:600c:35cf:b0:455:f380:32e2 with SMTP id 5b1f17b1804b1-459e70eeb46mr29821165e9.18.1754488604026;
        Wed, 06 Aug 2025 06:56:44 -0700 (PDT)
Date: Wed, 6 Aug 2025 15:56:42 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: dmkhn@proton.me
Cc: Jan Beulich <jbeulich@suse.com>, andrew.cooper3@citrix.com,
	anthony.perard@vates.tech, julien@xen.org, michal.orzel@amd.com,
	sstabellini@kernel.org, oleksii.kurochko@gmail.com,
	dmukhin@ford.com, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 1/8] xen/domain: introduce common emulation flags
Message-ID: <aJNfGqiTDH991_8L@macbook.local>
References: <20250731192130.3948419-1-dmukhin@ford.com>
 <20250731192130.3948419-2-dmukhin@ford.com>
 <f2be5a00-63e6-489d-a26a-7d48d6ae41ad@suse.com>
 <aJFWQByvktADgYKu@kraken>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <aJFWQByvktADgYKu@kraken>

On Tue, Aug 05, 2025 at 12:54:31AM +0000, dmkhn@proton.me wrote:
> + Cc: Oleskii
> 
> On Mon, Aug 04, 2025 at 11:46:36AM +0200, Jan Beulich wrote:
> > On 31.07.2025 21:21, dmkhn@proton.me wrote:
> > > --- a/xen/include/xen/sched.h
> > > +++ b/xen/include/xen/sched.h
> > > @@ -652,6 +652,8 @@ struct domain
> > >      unsigned int *llc_colors;
> > >  #endif
> > >
> > > +    uint32_t emulation_flags;
> > 
> > Just one further remark: The field probably never should have been of this
> > type; unsigned int will do, and imo will want switching to while the field
> > is being moved. (Before giving an x86 ack, I want to convince myself though
> > that this is moving us in the right direction.)
> 
> Hi Jan,
> 
> I can definitely use different mechanism for virt ns16550: add a new field in
> xen_arch_domainconfig. That will also simplify some of the emulation_flags
> checks on x86 and will be more flexible wrt emulator configuration (e.g. I can
> allow passing I/O ports ranges).

For the time being, I would leave emulation_flags in
xen_arch_domainconfig.  The set of emulated devices is
architecture-specific, and pulling it to the generic struct is IMO not
specially helpful, as you then have the definition of the flags
decoupled from the field definition.

For the emulated UART, I don't think you need a new field in
xen_arch_domainconfig, just a new bit in emulation_flags? IOW:

#define _XEN_X86_EMU_VUART          11
#define XEN_X86_EMU_VUART           (1U << _XEN_X86_EMU_VUART)

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 13:59:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 13:59:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071803.1435170 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujefe-0002WY-PA; Wed, 06 Aug 2025 13:59:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071803.1435170; Wed, 06 Aug 2025 13:59: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 1ujefe-0002WR-MS; Wed, 06 Aug 2025 13:59:10 +0000
Received: by outflank-mailman (input) for mailman id 1071803;
 Wed, 06 Aug 2025 13:59:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+iWh=2S=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1ujefd-0002WL-2l
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 13:59:09 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20629.outbound.protection.outlook.com
 [2a01:111:f403:2412::629])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 833ae05b-72cd-11f0-b898-0df219b8e170;
 Wed, 06 Aug 2025 15:59:06 +0200 (CEST)
Received: from DS7PR03CA0002.namprd03.prod.outlook.com (2603:10b6:5:3b8::7) by
 SA3PR12MB8763.namprd12.prod.outlook.com (2603:10b6:806:312::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.14; Wed, 6 Aug
 2025 13:59:02 +0000
Received: from DS1PEPF00017091.namprd03.prod.outlook.com
 (2603:10b6:5:3b8:cafe::8f) by DS7PR03CA0002.outlook.office365.com
 (2603:10b6:5:3b8::7) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.21 via Frontend Transport; Wed,
 6 Aug 2025 13:59:01 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 DS1PEPF00017091.mail.protection.outlook.com (10.167.17.133) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Wed, 6 Aug 2025 13:59:01 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 6 Aug
 2025 08:59:00 -0500
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 6 Aug
 2025 08:59:00 -0500
Received: from [172.17.155.73] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 6 Aug 2025 08:58:59 -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>
X-Inumbo-ID: 833ae05b-72cd-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bN+uGJ3ZluUxBpUYEdGIi+0g4S+YhprPYAJP37X65VgzjvH5qBJE+zVMs6aqY8UH28y86e05A74jkHCy+GGqDGKgofe5NU3/Hr0MD/7nC+DfKrUcf9jVFiQszDHAKPSxwpdmubdAcmJXvPOdaaIeq0pzSs1b7QlbiPxpmUClE1Dx/kRo1Kb6hNalGxoPPOuX/bHHB1vU39BV1nyvxV2S48p+TpUnNZf65EjaeG5nzYj/f8kRbeisvJqch+YUmYMM4DnFs89odJ6FefmLZ2n2wwvcrhTY24p+5MBpE2cd2lj+OqK9i/f7nyc1kOJRGVlU9pIan4BEhmXDFJPAWXd/VQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=I6On5oSpWZ/57NDRbW88a6PpTtm95AeMleWpwBtFVKM=;
 b=vyJISeJTvPKj2Q8imlu9AZhf4KaT8Gexm77LfqQ0H+URJ0YTdW670dSFIPeA8gagYyuvRMyKWA2iWs0mLDegJbsOkzpM67WHKlWplpom7/WkoKMg5WpcII1+r0nOljkI+58Mh62XVq2Y54t1ON3dOCHzMZ/AFqwX/CzGPIgqwveCMjsRFnnKH74e6RGBH2yzjXkf2ql1DCo49NxcD8jUzooQFKwGRfk09xRWVNEystuDw9GlybqTYiBN2RevURsnIx6WwBbQl7G3FwiD5ynF+D39PwbX/pfjQOcVZPEfZTIAvd+cBWVg2TNiig8QlRAmtmkufzewmiZhQaBd3Ofygw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=xen.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=I6On5oSpWZ/57NDRbW88a6PpTtm95AeMleWpwBtFVKM=;
 b=OHbAxYpGmm9m2bbvrvuAdpWWhkzNZ8dhqQi0E/4HwyAkT698u19dws3vNsTgqeLb4Vpa3/f6k0SA1JH3v7gtPeDMPe/7eXF3NGxykhTWqsHYTqJsBQB5lmyJVLmYA528J0OLRuhcKY0ScYKB/o6yiVArCHkYTAA4IG+r21HgUWY=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <7a3a08f4-c08e-4490-a033-53e81b261181@amd.com>
Date: Wed, 6 Aug 2025 09:58:59 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 1/2] xen/arm: fix arm_iommu_map_page after f9f6b22abf1d
To: Julien Grall <julien@xen.org>, <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <stefano.stabellini@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal
 Orzel <michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20250725140130.4008-1-stewart.hildebrand@amd.com>
 <5fab90b6-7cae-45d0-bb8e-b1ffa0390b6f@xen.org>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <5fab90b6-7cae-45d0-bb8e-b1ffa0390b6f@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB05.amd.com: stewart.hildebrand@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS1PEPF00017091:EE_|SA3PR12MB8763:EE_
X-MS-Office365-Filtering-Correlation-Id: e380959d-2677-455e-d0c7-08ddd4f16596
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?VjMvV3lVMXFsYkdDWDUvaHoxUUdpS2EzOEw0YjE2TzhrVDV6R2RxMnZVdW1G?=
 =?utf-8?B?WU9xRTg1SlZLODBPL2R1ZlFqNmx2Q0dCOGJja1lEU3ZkcE9EalgyS1MyeFlX?=
 =?utf-8?B?d2t6aFh6ZFdCYTA3NzJVZlRDOEFNa2F6L0ZncnUvc1JBTjlVekgzNzlGS1FP?=
 =?utf-8?B?Z1BkT09kcXdZM0cvY1FPOXdIcU5kNERWdERFNkU5OFJtMjhLZDhHZ1VzWnhZ?=
 =?utf-8?B?VXNuZm1Ra2huSnJ4amVycElkUitaRXE1MUt6cE5tRCtNUmxlQzhlb0txcDNH?=
 =?utf-8?B?eFhCRFc2cW1vT3FkcFprQmZGd3hSMFZMZTBHNGxjRXU2NFFTRk8rcitzRnpX?=
 =?utf-8?B?ZG9LY3JpSlNldGgwcmRmaDNqMXJ3L1NYMmxuUVlmbFQ5dUg0cjduWGZNNnBG?=
 =?utf-8?B?SmIxK280L1BVVGt6akNucHdqcU1nNUx0TXNHZXVxc1ZGcGpQV1BtWWtlcFdY?=
 =?utf-8?B?MVpQSy94Qng5WmdwZEd0S2xkcXNHc2R5ZHcvRFl2YklqVW94SFJRanpINGVa?=
 =?utf-8?B?WXB3YXo1QWxiQk9mdWRMaGRjd0NaTVpDMXBZdWV1RXZ6cUkxZFp6cHdMaXhi?=
 =?utf-8?B?YzZod1k4bkVtSXFjVElGSjVsMTFoNlp3cEdyMGk4SmNLbHREZE42akErTXNu?=
 =?utf-8?B?cU9lbTA1LzBRWUV4M2IrSEwwMEQ1UUhqV1dnSlZCRE9kQzFxbUFmKzhZTFFQ?=
 =?utf-8?B?UGpvdVlkVXkxTGFXSzI0N3QwSUo0d1ZUdERIUisxdzMxV2RmVUw2TGxycnFC?=
 =?utf-8?B?Wmx5Q0dkUWVTUTJTcmc2RThETU9SdTNtclVybDExZ2x6ZXhnNlpheVI5cG5s?=
 =?utf-8?B?MUVYZjNEdkcxTTZwenJIODdBUW9HTHczYUp6eTlXTW80VXBaUDBVeFVSMmxV?=
 =?utf-8?B?R0M0Rkg1Wm9jaHB3WkJaSzlzQVBET3cwZGsvK29ycitzakdJM0FUbGVwQzA4?=
 =?utf-8?B?NGxYTVhyamMvWTVBdkxBVHpuUE1FL1R4QW1XeTM4dVV6ZDRjMnEvYlBsYTg2?=
 =?utf-8?B?aTBSTmRxN00zTjQ3aEJIY01xV1Bma2t5Kys3c1kyQ0J5bmFEa1Iyc3RLNzR3?=
 =?utf-8?B?Z2tFV0RMMmJKbzVHK29NMytQR2J4L2FXemRON1NCbkF3MHRJaFNlL1JOaHFM?=
 =?utf-8?B?aXAvVHpJSDZwaFhGOHR4TkhZTnJwVVdMbit3RGRSekVzS3VRWDh3YlRXRlVv?=
 =?utf-8?B?SmxQSExPd0ZldXF5dURPSUd3akVSRE1mYXk4dE94ZW51Ykw2UFIxSVBmVGI0?=
 =?utf-8?B?TDRQZ2pTam9xTTUxc0grZWptcDNTVG1GYXJSZlozYlpaNVVoRG1SRFNHUEtT?=
 =?utf-8?B?WTZGV0wzQ1BUTHRIVW10cFBpOWdxT24rWFB1Mmx1eUduaTRIZzdxRjl4N1or?=
 =?utf-8?B?ZHYyZ3dWOHlzS2hhRkh1ZzgrZzNwMzlFczliRk9LTk5WN1dFMUdHNEZqYjlV?=
 =?utf-8?B?L1k1eTdOcnVYVWwyc0tGN0tiOUtQU24wTjVteGg1ZXNXaTVxb2RCRzFtOXpZ?=
 =?utf-8?B?UlQ0a0RFZU9xV0VicEVkN1g3N3dwOXIyRjNvQ0RpRGdBV1EwR0NQV20raTNN?=
 =?utf-8?B?akFISXhYdk9ZdFF3S3VEVlFBNUVqdFNXbm1sbG0vK3JyaGx3djMvenN0NTl3?=
 =?utf-8?B?RFFkTUNvQm9lV0xYR2ZyZGFFa2RGYmdRS0xlcGdaRVF0dTJaTHNEb0kybVM3?=
 =?utf-8?B?VzhDVk0wTmw4TmdFMFI3dDB5L0IwZXFxYlZtcDdqN2VLUVJONXJiNTA5NHFT?=
 =?utf-8?B?a1VNL0VBa0kvRkNkenV5Y3M2Y2w2OHAwR0FnbVFNN1diNHpjRVdrTWxUWVVM?=
 =?utf-8?B?OGh4UTRkMXk4a05EZVE1UXpKTVcrdkVjWVJYdUZxZ1Z4d3dLSXJzaVZjWGtp?=
 =?utf-8?B?eG1XN2lmWjhHVWwrQ29UcitPNnlQUXl6QVdEdnFhaVZtWUNhbE92ejRYaGhG?=
 =?utf-8?B?aFdjR1JnbWg2YUFlTmJneTVEZnlBN25kRFlTZ0tHT2wzOVVQWGk4MDdTZm4x?=
 =?utf-8?B?eC9TWXkwOXBHNjducnUyVExTV0lMbk5SUVNBUC81bXNrcXJuVmRCMzM2UUt1?=
 =?utf-8?Q?E/3NAy?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(1800799024)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Aug 2025 13:59:01.2286
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e380959d-2677-455e-d0c7-08ddd4f16596
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS1PEPF00017091.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB8763

On 7/26/25 05:23, Julien Grall wrote:
> Hi,
> 
> On 25/07/2025 15:01, Stewart Hildebrand wrote:
>> From: Stefano Stabellini <stefano.stabellini@amd.com>
>>
>> Up until f9f6b22abf1d "xen/arm: Map ITS doorbell register to IOMMU page
>> tables" the only caller of iommu_map on ARM was grant_table.c which has
>> a specific usage model and restrictions as described by the in-code
>> comment in arm_iommu_map_page.
>>
>> f9f6b22abf1d introduced a second caller to iommu_map on ARM:
>> vgic_v3_its_init_virtual. This specific statement in the
>> f9f6b22abf1d commit message is partially wrong:
>>
>> "Note that the 1:1 check in arm_iommu_map_page remains for now, as
>> virtual ITSes are currently only created for hwdom where the doorbell
>> mapping is always 1:1."
>>
>> Leading to crashes any time the hardware domain is not direct-mapped
>> (e.g. cache coloring and non-Dom0 hardware domain):
>>
>> (XEN) Xen BUG at drivers/passthrough/arm/iommu_helpers.c:47
>> [...]
>> (XEN) Xen call trace:
>> (XEN)Â Â Â  [<00000a000024c758>] arm_iommu_map_page+0x80/0x90 (PC)
>> (XEN)Â Â Â  [<00000a000024c750>] arm_iommu_map_page+0x78/0x90 (LR)
>> (XEN)Â Â Â  [<00000a0000250884>] iommu_map+0xcc/0x29c
>> (XEN)Â Â Â  [<00000a0000288024>] vgic_v3_its_init_domain+0x18c/0x1e8
>> (XEN)Â Â Â  [<00000a0000285228>] vgic-v3.c#vgic_v3_domain_init+0x168/0x21c
>> (XEN)Â Â Â  [<00000a0000281dcc>] domain_vgic_init+0x14c/0x210
>> (XEN)Â Â Â  [<00000a00002705a4>] arch_domain_create+0x150/0x1f0
>> (XEN)Â Â Â  [<00000a00002055e8>] domain_create+0x47c/0x6c0
>> (XEN)Â Â Â  [<00000a00002cf090>] create_domUs+0x7f8/0x8cc
>> (XEN)Â Â Â  [<00000a00002eb588>] start_xen+0x8f4/0x998
>> (XEN)Â Â Â  [<00000a000020018c>] head.o#primary_switched+0x4/0x10
>>
>> Specifically, non-1:1 hardware domain exists with cache coloring
>> enabled. For that, is_domain_direct_mapped(d) is false but
>> domain_use_host_layout(d) is true.
>>
>> Change the is_domain_direct_mapped(d) checks in arm_iommu_map_page and
>> arm_iommu_unmap_page into domain_use_host_layout(d) checks.
>>
>> Drop stale in-code comment specific to grant table mappings.
>>
>> Fixes: f9f6b22abf1d ("xen/arm: Map ITS doorbell register to IOMMU page tables")
>> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
>> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> 
> Reviewed-by: Julien Grall <jgrall@amazon.com>

Thanks for the review! Is this ready to be committed?


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 14:02:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 14:02:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071815.1435184 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujej7-0004R5-E6; Wed, 06 Aug 2025 14:02:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071815.1435184; Wed, 06 Aug 2025 14:02: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 1ujej7-0004Qy-BF; Wed, 06 Aug 2025 14:02:45 +0000
Received: by outflank-mailman (input) for mailman id 1071815;
 Wed, 06 Aug 2025 14:02:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=i5Mu=2S=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1ujej6-0004Qs-Nc
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 14:02:44 +0000
Received: from DB3PR0202CU003.outbound.protection.outlook.com
 (mail-northeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c200::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 05e35f09-72ce-11f0-a322-13f23c93f187;
 Wed, 06 Aug 2025 16:02:43 +0200 (CEST)
Received: from PAVPR03MB8921.eurprd03.prod.outlook.com (2603:10a6:102:322::9)
 by AM9PR03MB7679.eurprd03.prod.outlook.com (2603:10a6:20b:41c::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.14; Wed, 6 Aug
 2025 14:02:41 +0000
Received: from PAVPR03MB8921.eurprd03.prod.outlook.com
 ([fe80::1fbe:d673:80a7:6ebd]) by PAVPR03MB8921.eurprd03.prod.outlook.com
 ([fe80::1fbe:d673:80a7:6ebd%4]) with mapi id 15.20.9009.013; Wed, 6 Aug 2025
 14:02:41 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 05e35f09-72ce-11f0-a322-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=cusBqae8MRPsBRvn/hDzt4mG59LG592ur4YtODfnR04yq8ubCV+b/S1128GWbwrZr/J45LZs31pLhbDqKkLicjBWFn6gBs4u892MwJgF6s9v4G3RKpBja0oQN8eMClICmVpCaUVZY8ZIc9LWmoriefvmDIE/t16cm+CFthCKrJdx0NU4DZxfwTTukTkyAv8VFmuBhtAuoZqIfbBHuT9DXm6+wxYKmRZnwcPaFF7hZdHGJCgaD9QjE/eAi9ik6HBYNFg8CCq4IsGeZSKfZ3dTFIC7dO8jjqGH+ZE2fc5caP5PqJGeISeIAAFcsDVbA7i5tZpO7cUXrNomi5h+gsKbOw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4Cdc0ktzQDdml5RqPtUhljE8PHrMsUFhA40Dp6jIjMI=;
 b=uSl1HblQrC+b/2mzGRjRzhKhET0kL31Ol603wXQgzBTQVJkUDzG+PbCPg7ySYvTFQf2Nj3BT5Ca3G7shwl3GoyedZpopQFnfBa0cssfPwCBHFWmQiQUp/bhjvLVjHLZC1ZChRYy6rYVA5zEjUbl8V8r8UaGJ04Oi/WjzCisvl/BmB1gWr1mlHSJk6iWHK87jcmfkn8Bzn1F2yvE7r7xT/y05xJUaT3NLn9KHggvndTpW7euyW/+pM8voDLoX+rirRFgmnCZBO32+0bOavPLnMDhh6dEUw5b2FHjW7GZcrdIC7ZWrs3JYknKymLiKezTRk8dhjx8TKJzO3lqjSdTAGA==
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=4Cdc0ktzQDdml5RqPtUhljE8PHrMsUFhA40Dp6jIjMI=;
 b=ia24HRKnCFa2vBQG793r0fOaTgOgehfAXdTfSFFm9Va5ynhsGZdw0T2MThoTEd8u2DW2pdPcA10BCxv+LoeZ2Ur5Mcd4PN8Cmc5geWdrGHqsI4Y4aDNg+rthNuYkzy3PFspyr2Cbp2J7po4R0FzxESAQXnCGYOjohbFX5wJuEmKSDc8vS7wa6abPdJxlqrJuM1UnEJqQFJ32JmroevWJOWdP57Y6qUOWv41sH8uro000zRpU8nkyMIaL5ACGuDmZc9u6XDhVqIaZH6MyzlTMBkbvxxqBUt29hgXBOilE9yTI11rDZjoH7h0S2/4zXEkXC188o2HstBPDNaZxhZRgWw==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <07feaf5f-9565-4672-8d6d-6270d38f2da3@epam.com>
Date: Wed, 6 Aug 2025 17:02:40 +0300
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/dom0less: arm: fix hwdom 1:1 low memory allocation
To: Julien Grall <julien@xen.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Denis Mukhin <dmukhin@ford.com>, Jason Andryuk <jason.andryuk@amd.com>
References: <20250805190017.209711-1-grygorii_strashko@epam.com>
 <5807ed03-7db2-4ce6-9acf-c4d515fbd293@xen.org>
 <5a33ddf2-716e-4fca-8764-760dec9944ce@epam.com>
 <72f0d4bd-65b6-4904-8fd6-b714058923b2@xen.org>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <72f0d4bd-65b6-4904-8fd6-b714058923b2@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: FR4P281CA0237.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:e9::12) To PAVPR03MB8921.eurprd03.prod.outlook.com
 (2603:10a6:102:322::9)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: PAVPR03MB8921:EE_|AM9PR03MB7679:EE_
X-MS-Office365-Filtering-Correlation-Id: b3fe04eb-5d41-442f-d747-08ddd4f1e8ad
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?NnhCdXhCeGZTNEZ4bzdOMC9PSDJwS0J0TkJySGRVK0tVTEt6TGRJM1NGMlNE?=
 =?utf-8?B?cHBuVkorbGIzQVA5NjU3bVhad0ROK1BXVjdMSldUU0lTWk9uSWp3RkswQ1hX?=
 =?utf-8?B?UE0yNWlQN09wQ2MwNzdJZVJ3TjVUdSs1Y3k5TkJaTngxL293M3hnbjAvVHQy?=
 =?utf-8?B?UlBkUnF6d3VSUG0zdExCR0dxZWs3ZHFyTktGUG95bTltY0FJWWtxSWl0N1B0?=
 =?utf-8?B?bjNBWm5aL1pvblJHVU51WEtGcFFIb29QTkIyN2hnOG1EdW9XaHBmSmtjOXI3?=
 =?utf-8?B?a05hckgvajJ1RDNGUlMwaTR4TTB1amg3UWE1RjRvZ1ZhK0pGV3lxMVhLYVkw?=
 =?utf-8?B?aEhuNTdUOXpFYitrNTAwY3BkSlZJdXk3MndFbmpibW1xZ2lWdVVuSDNKcmNq?=
 =?utf-8?B?OGJkWnJUbDNOekRRbjkxM1NrYXVmV2Rwb3BseXlHdFJ6dEZmdHJRS1VOdk53?=
 =?utf-8?B?cE1SclhETDJsRHNTM050SXZWakl4eUErUDZDck5FMUJRV3Qvay85cWZ2SUMr?=
 =?utf-8?B?QUFsUTQxbTgvYlQ5NzlYV3RFekFqKzZ5TjRyUVNSWGZzSUJLWFJROHl6RmJk?=
 =?utf-8?B?c29hOFkxNW9MbyswdU45R0VLU0ZUK0RISjN0aDdaVVpyNTg2Q21qSk1iM1FO?=
 =?utf-8?B?NFBHdmVoVGw1MkFkRVB6bmVUVnQvK3gzeDJOdC9zSUhIeFhteitxMzdleW9k?=
 =?utf-8?B?Nm4yOE00QURDL3ZMUVdENmlYcDU5UUZFZUFIQ0tJOWR4alo1UWoraUxtQlNr?=
 =?utf-8?B?M0t1YlpiZkpRTE9Oa0dFenBpQ2hzRzdpcnMya245MnhId2luRnZmenRGbFhy?=
 =?utf-8?B?LzN0QWY5VjAwSnRYblArdWdPak82aTRIZEFYbWh4STR1R243MFFZbFg4WHJt?=
 =?utf-8?B?a3NIV2h6aHpYV3BKOTVKeCttbEhieVc5U2l0QlFsV2JSc210bDI3UW5Cam52?=
 =?utf-8?B?Y1B2aUsyR0s0WUFUb0Fib3drc3BqV0ppaEpSRXVQdHpLRW9CaVZCNHIyanhl?=
 =?utf-8?B?TFpmN2pBWEtLd1hwY2dQWWRHNnpNbmxWaXZxcUx2Uk92enpzbDFLc3h6dGdZ?=
 =?utf-8?B?U0lTV2dZd0g4Ym1pR0tTMk9HS0E1dkhSc1VUaUIxOUxJL3VCajlKUWVhWWor?=
 =?utf-8?B?OWxUbDdtdWZyczI5Y3Zhd25YUURpbW5RaFB1dE4rV0FjMHk1b2RkNTl5VW1U?=
 =?utf-8?B?ZWVoUmxEcTdTMkJVMXlTczRXMkwrSmZveTZxb0VDOFBXOUtjR08yQkF1cXlU?=
 =?utf-8?B?NDBjdmJ1S3JGTElFRDg0L0wwc0xsY0U3L0FuWW8rSzNmTkZUb21qQ2ZaeXNG?=
 =?utf-8?B?NmxtT3pIVjl4bUxlbGQwZUIxZytaMHNzNTQwbzFjY1JGTVVjWE4rbllzdG01?=
 =?utf-8?B?bkFOWTE5Z29vTDVhL1RDRlpXc3EwV3BoL21FMHo4WllMcHFIczFTZXVxekdN?=
 =?utf-8?B?bFJCRCtMNTZQR3lrUVZ5UU82UGY0RXFyRWdQeUVheEFTRVc2VVVxSkdLNk9M?=
 =?utf-8?B?Ynd4TC9GWDFnQjRCTHAyM3paT1hFK2NPNzNDNk8ra3pkY3oveWFqTDhlUGFO?=
 =?utf-8?B?TVppT1plS1NMK2lYcnltU2o2NkR4RXQrbCtMQ0hhUE1STjlWVE5wZHpWZHNh?=
 =?utf-8?B?bWZiaktoeDdwY0prM0JEaDg1NkRZdStDUWxnSXJvdXB2azJJQ1gyNitsMUl6?=
 =?utf-8?B?OUYxeU1iaGxGSFFFT1JOR1B1RnFockt4cjRpVnR3enRDYTRjYk0vd2hxQkdD?=
 =?utf-8?B?RE15WnlqMjh6YUFrRkJnRHRzRUVGSlhyb0s3Znl5RjdQK0tSdkNmUjk4clYz?=
 =?utf-8?B?TkVTRDZsdzg4cDY3cXhLUG9DSjJNak9DcGEzdTZTMnN4RXlZbUFiRGlBa054?=
 =?utf-8?B?K013a2ZCU05GL0NjUmtkOUJpYlhlZ0hsUFBpeDlnK216THc9PQ==?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB8921.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Y3hRVzlDQURnZzUvV3RiSzlhU0w5aXdZT1JKTkoyUUI2R2t5ZUFNayt3ZEhD?=
 =?utf-8?B?cGdHbldRL1V5bUw0a1U4NkxMbTVlb1VGaUdPOGpuM1FuTEFEaTF6NkdLNUNX?=
 =?utf-8?B?c0Vxc3JnZUtnSHFtZnlCOXNqYmtReFNZVE45NGFXZ0hsWkM3QmpFc2thWktQ?=
 =?utf-8?B?WVRpN0lTeU53Y0cyS3oyZy8xbjRpV3BlYWI2ZEE1SWVxQTdMNWdLdUg0V2pQ?=
 =?utf-8?B?QlNLK1UvNThPdHdEc1ZSZmVDeGFQNlpZcGp2MmMwMlNNb2ZzN05BRWloOGZr?=
 =?utf-8?B?YWovTzVaRVQxdjkzWWpkYWh5TUc4S3JjY3FqN3QyY3MxVXdVRW55TE9jdEJi?=
 =?utf-8?B?STBZYTUyaDZZKzF5ZU5VNUZiVFFINjVyZVUzUmNzMFJVdWs3cDJjVVNHMHZW?=
 =?utf-8?B?R3hhaTRHcUtiNkI5ZVMxZjFtRm5TV3NTMGNsWkVOaHVoSi93b1pLNFhLNGcx?=
 =?utf-8?B?VGFFUUFudDFWaDhQL1lpWWE4MGFaV3FrbGhpMXBud0Y1WGs2eHd6ZWh5eHBz?=
 =?utf-8?B?a3lQc3NOSHhSbU12dHpwQmZGYjZZMW16Rk41OHBBNTl5dmYxd3l1dGpNaTl4?=
 =?utf-8?B?Tk9HTXFiQUxZR3E2Nk5YY09kRDNIRzVwVlptd1JWdWJkYTBCNU9GVW56UmRV?=
 =?utf-8?B?WTdKcmFIbG1jelFuMTgzUzU0V2c1NE5WbHZQUloyeStQaFlHdUQ4OWtPRkl2?=
 =?utf-8?B?RVNWYzV4R0l1K3g5ZEF0NDJHaWFFOUE0UkV3ZDl5U3NpeDNYeEdZR2hlaDZm?=
 =?utf-8?B?dVo5S3FEajFmVy9mQ01ZSXcxeVJ6d0ozdEhqMGsyWENhSVpkRmVFZEJjN25k?=
 =?utf-8?B?ZEJQSHhueXFmMFVJdFhGbU1kQ21FNUIvdFhpRkM2bTJEM1pmR3czNC9CM0RE?=
 =?utf-8?B?QWt1R2hka1lTU2RWNm54bWhYSHZpZEY1WUNjWkFNQldGVTV2cS96TWZUZmV4?=
 =?utf-8?B?Uld4Y0ZWTjlBV2NQM2lrUldhMWRnVTJ0UHJaU1ZVWUVKVmk3aUQ2VnZMOElt?=
 =?utf-8?B?L29tOUJsNm83MkRiR0lKVlNndzBGQ0xFWDFIVnFIMmhuRkRUUUhXT1N6WE1R?=
 =?utf-8?B?NEMzNGV1NHRtZXdTMGFkTWIwdUpwdXlFdUJEUG8vTVNVVWl0bmIrK2NqeEFh?=
 =?utf-8?B?aUxBYmdmRi9veEFoMUJmR3FsdmphZFA3WHhhUHNvSHVHZDdMMHV3dFJvS1ph?=
 =?utf-8?B?NUhaRk16RWpoSERiMkNxb2J1VkdOWUZNTjNVbHNwRW1qTnR5amVreE9ra2Jw?=
 =?utf-8?B?VDJ4WWFPNXpjVjBnK0E0UDYxYnd3RGFybEYwZCsrR1dOYnU0TFhTZDNVM25l?=
 =?utf-8?B?RlpUaVRZelpmMG43ZjlxRmNYUThaVHVPa0ZZVG9RVVljTXcwME5sdW03NjZZ?=
 =?utf-8?B?M2p2Y1EzOWd3QW5RZlJUOWZqMFVZaUNVTnlPTlpFMEVJb1ZRVzJKUDk0OGtV?=
 =?utf-8?B?ckZveHlkOGF6dkU2TjRjSGZNckZjMW5oZW1keEZ5TjVXWHFoeWxUSG1PNGY4?=
 =?utf-8?B?WWlHbmgra3hXOVBsZGVXZTc0ckQ3amRZQTU2eW02eW1tcTArTXJnZTdUYi8z?=
 =?utf-8?B?TWtNUVhzc3ZRU09KNDJqTDZLcUorcjBCS0ZRc2E2SEExdTVmZ2JQNGhkcU9E?=
 =?utf-8?B?RGtiT21sSTloY2JTT2xxUUtZMHRGZGJwVTBrUVczaVczQVpvd3d2cjZpV3hK?=
 =?utf-8?B?UlFHQWZGaFlLdVV1ODJ0bmpmZzA5ODB4M3lWeHBZYlFSeU5xMTBNMXE1RHR4?=
 =?utf-8?B?SW8ra0NJSlppaHBMSFQrN1ZBeHp0bml5WkwxRHFaSnJCRzcvbGY1Tzc4V1Jr?=
 =?utf-8?B?OHVESXE3eEp0dzNCTVBBanE0cFB3OXRmVXJGZmNJSWx1ZTJhYk5NMjNmTTZN?=
 =?utf-8?B?WHBpK09WQUZHVVYxdEpTaENPeDRQSHBQTmJwdDdUaGcyVjh3K3FPZ3lsWEJa?=
 =?utf-8?B?MHZtdG81TjFVUUtBbjNmcnhMNUwzZndINFArMHl1UktKS294WXpEM3BvemEv?=
 =?utf-8?B?VGxEQnZOU3VucjZUQ2t4UU5mcDFoVEx4SGtRSUZNRmJVenhvTzByM0FjWER0?=
 =?utf-8?B?cUkxT0RMa0ZacmxoOVorb205djRGbkkzbXF0VjlGOFgxZTkwdnJacVo2UzlR?=
 =?utf-8?B?VFhZaTQ1QWgvZ3pIbzFXTDArRm5lQXFIZHdUWWZLTXUwOFIyWkhFZ2UvaEt2?=
 =?utf-8?B?ZUE9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b3fe04eb-5d41-442f-d747-08ddd4f1e8ad
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB8921.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Aug 2025 14:02:41.4370
 (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: R51O8ush+c8zrjd+oCbQhpi9sQSQMeZs03d9v5MJk1Xhod7QcdUfUgfZrVSrvpAKqq/TaZiBgKrFsrhDq6Xt6AkfQhY05/tsw6/UphWrSUY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7679



On 06.08.25 11:48, Julien Grall wrote:
> Hi Grygorii,
> 
> On 06/08/2025 09:19, Grygorii Strashko wrote:
>> Hi Julien,
>>
>> On 06.08.25 00:07, Julien Grall wrote:
>>> Hi Grygorii,
>>>
>>> On 05/08/2025 20:00, Grygorii Strashko wrote:
>>>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>>>
>>>> Call stack for dom0less hwdom case (1:1) memory:
>>>> create_domUs
>>>> |-construct_domU
>>>> Â Â  |-construct_hwdom()
>>>> Â Â Â Â  |-allocate_memory_11()
>>>>
>>>> And allocate_memory_11() uses "dom0_mem" as:
>>>> min_low_order =
>>>> Â Â  get_order_from_bytes(min_t(paddr_t, dom0_mem, MB(128)));
>>>>
>>>> In case of dom0less boot the "dom0_mem" is not used and defaulted to 0,
>>>
>>> Â From docs/mics/xen-command-linux.pandoc:
>>>
>>> ---
>>>
>>> ### dom0_mem (ARM)
>>> Â > `= <size>`
>>>
>>> Set the amount of memory for the initial domain (dom0). It must be
>>> greater than zero. This parameter is required.
>>>
>>> ---
>>>
>>> If dom0_mem is effectively optional, then shouldn't the doc be updated?
>>
>> No. I think doc is correct because when regular Dom0(hwdom)(initial domain)
>> is created code goes through regular Dom0 path and "dom0_mem" is accounted for.
> 
> I understand this is used when dom0 is not described in the device tree.
> The crucial part in your sentence is "when", to me this indicates a condition. Whereas the current wording in xen-command-linux is using "required" with no condition. So a reader can rightfully think the parameter is also used in dom0less and have to be specified.
> 
> So I think the wording needs to be tweaked to something like "This parameter is required (and only used) when the initial domain is not described in the Device-Tree."

Got it.

> 
> Although, "required" might still be too strict because it looks like we would provide a configuration for dom0_mem if it is not set.

Correct - it will be defaulted to MB(512) if not configured + log notification "PLEASE SPECIFY dom0_mem PARAMETER - USING 512M FOR NOW\n"

Thank you.

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Wed Aug 06 14:21:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 14:21:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071840.1435194 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujf0p-0007Vi-TQ; Wed, 06 Aug 2025 14:21:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071840.1435194; Wed, 06 Aug 2025 14:21:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujf0p-0007Vb-Qd; Wed, 06 Aug 2025 14:21:03 +0000
Received: by outflank-mailman (input) for mailman id 1071840;
 Wed, 06 Aug 2025 14:21:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=i5Mu=2S=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1ujf0p-0007VQ-0r
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 14:21:03 +0000
Received: from GVXPR05CU001.outbound.protection.outlook.com
 (mail-swedencentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c202::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 91fbc4b2-72d0-11f0-b898-0df219b8e170;
 Wed, 06 Aug 2025 16:20:58 +0200 (CEST)
Received: from PAVPR03MB8921.eurprd03.prod.outlook.com (2603:10a6:102:322::9)
 by GV1PR03MB8766.eurprd03.prod.outlook.com (2603:10a6:150:89::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.14; Wed, 6 Aug
 2025 14:20:52 +0000
Received: from PAVPR03MB8921.eurprd03.prod.outlook.com
 ([fe80::1fbe:d673:80a7:6ebd]) by PAVPR03MB8921.eurprd03.prod.outlook.com
 ([fe80::1fbe:d673:80a7:6ebd%4]) with mapi id 15.20.9009.013; Wed, 6 Aug 2025
 14:20: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>
X-Inumbo-ID: 91fbc4b2-72d0-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rl4i+FGJ7rF+7IgC7hg2abXjFb8Kkt6y5k1mY09sbx1VN0TXqbbrKum+9oG11xKdoWpM5KGuXjKkuwqZsu+VX3OtUnJV+j1w737QUTHwH/6Gv3n7Fr2R0rOnAkWUVt2LuOZVvETr+fBTa6j/8MX8DZsu0B6G5mQvVnbGGKTVSyQBYyyyzvtsNBEMle2QhtsnAA+hqB5r5gU5C4N6GxCO8ziVNW9SZqEq8bXpCndeEGGHW3XtWpU3DrvjwyctyZXT+0XVzIJg6H2iiiwIEeWkoqlRHIuJMJm74UrC6nlWz+COJ8dmqpMjmvj2rsw76G3oIihDkv4wbh5Up8SB2Ju+dg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=DfoqKA+VOCIBuVCxwpOtphp3Rhg5lKMVj+glYH3KBIA=;
 b=nf1O0vglXftB98v4trbFtk2wvdq96q2d6EINebSgB1L5cNHN4USnqsN/GjeZy+zksugHMHwXzgDuy3EMnYF34+2jjdSFJi8aFnHSTP5eBlZDXbYmbT6lCSC79E/NLyEiqgd/ZcY8u57bnKAL4sOjUq37yb3Rj48Xio/p3XqSLlUcZgyDh+LHiSff/gStWr5pmuXVEuBByUt7HprB+73GV1XaW+lUFJMA/ewA3R1GeJXOzKmmk71ZNFrOESNNiWHerOrQ2zMOpIfPGGDmoEFfbOWuZy+JyctVF2M+boM863hXmYgF6mOpvyZ/7d2do133rHoTwroj6+m++uQdVxDb+g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=DfoqKA+VOCIBuVCxwpOtphp3Rhg5lKMVj+glYH3KBIA=;
 b=K8uvjJa/nSboZwJrWxHWpyJpK8Y5H8r9r5Ywwfze9Dpuv2vuawR9gE8L8DAhxxnj3dsVkVS1KbDKB9ucqPjSZgzBT+Q9j0Me4RkanrVnRiiEC3r827DX4fxwNSu0UwaUQgA4s8e8pP7qzXtdvQFiORqfv1nXb96k0hqV6oPvWZMe43FvilrwCYXOZ2GiLLW1JPS7RInvky9qjkpCIR/EYzQB+seG+4vBLBmOyzF6WrSrbBno9y3I7fvjtr1/d+BVR80aW3ME2/cnm5giPfz0nXI09jSK4CgFfpC1A4d4BrvdQmt94KRkFIo6BrNjNE4vpONEam/oZCQ3RWbIu1NzZg==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <957eeedf-9737-48cd-b29a-0def3b7c888a@epam.com>
Date: Wed, 6 Aug 2025 17:20:51 +0300
User-Agent: Mozilla Thunderbird
Subject: Re: Consider changing CONFIG_ACPI default on ARM?
To: Elliott Mitchell <ehem+xen@m5p.com>, Paul Leiber <paul@onlineschubla.de>
Cc: xen-users@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>
References: <CAO_48GG1Tg0d3ATnNAYNr0cg7Ty_zsnzT29=dpkk99DxyTWcmg@mail.gmail.com>
 <fceb5df8-d628-479d-acb3-d1d26409fbac@onlineschubla.de>
 <aJLae1Nl0pyOZgyh@mattapan.m5p.com>
Content-Language: en-US
From: Grygorii Strashko <grygorii_strashko@epam.com>
In-Reply-To: <aJLae1Nl0pyOZgyh@mattapan.m5p.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
X-ClientProxiedBy: FR2P281CA0044.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:92::18) To PAVPR03MB8921.eurprd03.prod.outlook.com
 (2603:10a6:102:322::9)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: PAVPR03MB8921:EE_|GV1PR03MB8766:EE_
X-MS-Office365-Filtering-Correlation-Id: 37c25476-fb89-464b-fd6c-08ddd4f4731a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bnZwTWlqZDFQaDJ4S2lTSncwdG1RRnVSVCtxclR0T2syclMzaGhJLytQWEZM?=
 =?utf-8?B?M0FlK1lTSGRvRmpQdmp5VE5paWZhMVVMTjh0UWhhYUlwTWMwelFsTTdIUVh0?=
 =?utf-8?B?SDR4YU9VM3ZtSDV6WmdBYzFDUVNYVVVOcUJkaXlVVDNFZlJ5NGtVbzlObCty?=
 =?utf-8?B?bU1sb29jRzI1azlOUzNoUnZEVzc1R29hQVJlSzNtRGRpVFloNk5TOHljaWpQ?=
 =?utf-8?B?ZlN0K3pLcjJtUy9QYlBsRHBsTUdQYXp5OXJqWU1JZVExT2RDTmQvRGNkaEhz?=
 =?utf-8?B?WTJpYWJJQ2t5ZlNRejB3MnVTWVQvMldXYmlOa2pCU1RTN0dUVCtYL2R0ZDJB?=
 =?utf-8?B?ZS9lM3dQMmNHMU00M1orY3VRZW5obFlRcU9JQUlvNUZ0VTRtaStHUmNiUmNi?=
 =?utf-8?B?ejIzd0NDdFdXby9vQ0FGdC83ZE5oK1gxc0pVZTRiUU9mOUJWKzBYYlFvT0R6?=
 =?utf-8?B?dVlXZU1yQ2VkcU5iMmFrSUNJRHVsL0ZKa3FTT3oyM3VUbUFlNVVZc0VDWnNY?=
 =?utf-8?B?Y0luWVhwRzdmYTlNYmpxY2NzSFJOaVQwVnYrNnVMZVIvZEFEaE12ZHVOcllH?=
 =?utf-8?B?R0hYUkJZUmJ6SHBXbUFXYW9udVM1U3FWSHZzYlBIdm5leDgyMDJQS1JMcjU5?=
 =?utf-8?B?aHkvcGpwL2lzV2NRR2ZYSHVFckNhNDJKT1VPWkFwMTB6L2t5VHN6WVBjRUFp?=
 =?utf-8?B?U251eUNBZzVNVXdaa1plKzFOMkhYWXNieTVzMG13eVIvR29ydlZJOStya1VC?=
 =?utf-8?B?amhrTSt6TDNQaUkxV3dyQ2tBb1J6K1oya3o3RVg0MUhDS3E0WFQ1WVVkNlNr?=
 =?utf-8?B?cTYrc3lXckJzb3hGcG9rU1lFclp1cGhvM2hzNlpxSG41YTVISnZXZXVVSnk4?=
 =?utf-8?B?VkhVcVZQbnkzSzI1cEZwa200c3FhbVd6Zld1VjMzakNLM2NabGRDZm9TeFIy?=
 =?utf-8?B?RU1laG8wWEVIay95c3JLbWViZld3cGJ3ZWpES2FzOWNUekx1OWRCU0xwdXRB?=
 =?utf-8?B?NTM1eWJTTjROS0V1M21vUmRCU3pTNWhuNXNCMGRrUTNRKzE2b3JNK2NDd3Y1?=
 =?utf-8?B?U2FhcnpETkVRaklYc1Vud1VxQ1cwbG1xN3ZMY0RJdHljMlNSQ1pRNE05b1NT?=
 =?utf-8?B?YXBrM04wTjNCRDloYTVuN2ptMktQOGM3Zk9ONnJHWFRUeWtmVTllWWxtZTdI?=
 =?utf-8?B?OWVWYVdFbFRWQUtVdGxGbU9HNFB2bStnTnhtM1diam9EQ1hNM1l2WU1TSFJW?=
 =?utf-8?B?WHBqMGYrSzVUbFNRYUoxcDU3d0RPTVREQ2ZlY3JML2d3QWdkRHFzVGZwdWVX?=
 =?utf-8?B?ZmZMYkN4RDVCM2M0RDU5Ykl5RHR3UWFEcERpRFJnQWdZY28zR2JUTU95Y084?=
 =?utf-8?B?d1hHTldTODU3TC9jRnZMOUVJYWUzSHZQRXRsL3dVaEtKTmcvVVY3S2orZldD?=
 =?utf-8?B?amttOE9HYXhEZFZBVVFOTnNtRDliM25CYmpvc3FneTI2YWgwYnA1TlJRRnM3?=
 =?utf-8?B?dzFsTFk3N2VtZjlSY1V5RDFXUFh2N2JXZmYrYnhpd1hqejdzTkR1dGpRTENK?=
 =?utf-8?B?OHV4QmJYS3ZaVnJyT2R1ODd2WndZQmExRWVTY25XekdOK05tQ2pxS2hncDRB?=
 =?utf-8?B?bUxZYUdJQVU2VDA4STFhYmtEWmlwLzFhQzhSSHpTcXIyMGl5V3RoNklFVEdW?=
 =?utf-8?B?SWVvVElDb1drY1dHQ1hwN1ZPSTVnVGcydTJzR1p6U3hXOExxOW0yZndnNmpv?=
 =?utf-8?B?dDFWbUQzRi9VV3AzTC9aOHdGOFUrQ2I1Q0c0Tksxeis5YTBFYThYZXpieU5V?=
 =?utf-8?B?VXYvNlJQcHBROXpjeE9xRk1ucXFmNVNwUThRVGtHeDJJNWp4N1ZnMG5WbUpE?=
 =?utf-8?Q?8jb3MadYWYZVm?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB8921.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?R0tBeDhmbGFFNzNvRFVuam9JTzVZcUtPK2kwWWF3WWpNS2I4SElZRVdmWjNY?=
 =?utf-8?B?MU45aDBua0J5MkQ3TkUvVU9aMTNWRFZERlZBY2NzekFML25ockhDaS9oa2Rp?=
 =?utf-8?B?RFBtNGZTamgrZ0VDZlhOUmdOTktGZnEyNWh2d0xobW5ISnptSzJWR2pTUUJF?=
 =?utf-8?B?eHNVaGZCK1lYUUVid2crckFBazhIR05xZ1NwT2s1RTBPSXVELzNaWWhUeDV6?=
 =?utf-8?B?S0JuU3RJUVphMnFjNFpTM1JVNW9ZNFJUMi9TMDN3YlBNQU83d1pOMGViMEFZ?=
 =?utf-8?B?bkkwNUV0QXNVcWc0NTgvbG5YeWFPNnVjeDJzZG5BN1hmWDlVVk55SldCVVV6?=
 =?utf-8?B?ZVl3cGNWRTNLSkF5MkR4aTA0d3hlOGVZTHZFdSswdkpyTmVTclF3NnAwd0Nu?=
 =?utf-8?B?UncvT2QxRUxhVHNIdnQvMTVVZUcrcGRJZFhnNU5zbGlZR25NbVZOeXNJNE02?=
 =?utf-8?B?QnppVGtVS2p5VWVNR3pObjZFYVB6VnBzU2VVUDFOOVBmR3VXbXpJUStZOFl6?=
 =?utf-8?B?bExtb2tmQ0p4TXdMdlBjOVNpdG1uYUpLOUhicTVBTEVNMURpdjRWV1I2UDNv?=
 =?utf-8?B?NUpiT1dCODFlTUhMdHNDV0V5Vm1nSnhyRGV3Y3Q5ZE5UNnNnSHFHNlRVSlJ4?=
 =?utf-8?B?dVcrKzdPR2I4ZjBFTW15cFBkSVF5dVFZNFE2T2JKY3BuWngxR0k5Qk5VSWI0?=
 =?utf-8?B?am5IR1RTUExscHQ0UzZMdEc3amVna0dZVHQ5ZE5OczdZR0VNUHR4QmZxSllv?=
 =?utf-8?B?VlU0aVhwUWQ5bWZ6VFluY1NHcUdTa2dnaWthYUUwVVdzRnVDaTZlbHd2ZXRP?=
 =?utf-8?B?U2VKODl3a0FvbXRjUmN0L0IxQWkrOGl1dEZoaExsZjh4ME0yU3FGUXppQkhP?=
 =?utf-8?B?YlZrMU84WUtUZk1pSjFzNEZIWTdPMURZNTMrUmh3UFgwOVpqVU0wUkhKMmxj?=
 =?utf-8?B?VTQxZjBPQTdZajBnOWlwQnAxMmtnSnF5N3hZN3BaNTdNRXJZSDUyRHQ1czB5?=
 =?utf-8?B?bkxmSTV4ZmM3R1NWbEhtRVJkaml6dlZOdGFvdHpHY1ZKOHh5YXdSN1IxcWF2?=
 =?utf-8?B?SFJwMGNqTk9vc09zV2duOTE4L2lEa2hsMytwaXowMUtqVTVUdXlrT3RsSXRh?=
 =?utf-8?B?dnhXYjFJK0JsQUgxV0FxNFhFc0thaHFlakdNTFYvSmsvMVRQZjRwVWE2R053?=
 =?utf-8?B?Y29GK0NhNTRmUjNzbEJaTitOUmtSN3VmNkIrRVhZM2pCKzdvNCs1bHdYdU5l?=
 =?utf-8?B?dC9oZGxTUTIycTBQSVB5QW5ycUpEYjJWdmlSMWw4akpRQTVSdmNNM1Z2RzMy?=
 =?utf-8?B?b3dndUJuREgvQzE0dGhzeHdBeklML1Y4emUvaGJETkpucVRYM0RnY1hIdG1y?=
 =?utf-8?B?amQyNGxOM0ZhbzVZaXp0WENNVkdhVUVuNkRhUVdkWXFHelVlYk9ad2hHK1pJ?=
 =?utf-8?B?OUJ0YmRaWnI3WDZDQjdSRGlaZlJtcmc1SThOaEZkbFgxM1Qzc0l3RUx6bC9Z?=
 =?utf-8?B?SElOTlp6Q2l2OUhNRTREcHhrd0lCR1VRdnF4bFNYUmFXNkFyZzQrMkFjTThZ?=
 =?utf-8?B?bktzZnFCbTR0bmc3UC9DeDFXbEgwbFBVS1BpVmVPNHdKb2hWaFgydEFtVTZz?=
 =?utf-8?B?WHFBUVhCR2hHREtJTDhGM2hzZnhqZG9id0tzb2poNjAwWHdQdktKSkh0c1hB?=
 =?utf-8?B?N3dQRklXdFg2MzRGR0cxV1hwWnUycWtSb2MweFRnSk5BK0tMNFJtRGVIWEt4?=
 =?utf-8?B?ZmI0U0pXNzg4VU9tcTdrR3l5S1FiQlEybU4yQmxMSlJORE1PNkcrTDF3WWRw?=
 =?utf-8?B?OElYY1pHczRTbVFmenIxZ1c5ZFJvYnJjdnpYOE12cUFjdlpkSUlxODZIUFps?=
 =?utf-8?B?UkVLTjdjUWRQZkNCaDJoRzdWT01iQkhwZXFlcXJnT2p1b2JRNEo4dHRScTlr?=
 =?utf-8?B?bnBheUVuSFVDL1dteXJuQXNHaUZaN3hpWkRPWjNyVjUvS0VPUE9VRnd3ajl1?=
 =?utf-8?B?N3Nwc0tjZ29pQTZKWW1sN1JZVW1GTFpXczRweEU5eDR0MXk2djhzU3dKVkhI?=
 =?utf-8?B?NUt2R1BLRlhDN3VtekEvR0J6ZnZpQmRYUS9qai9DMEY1aCs4dTcxeGFKaHZN?=
 =?utf-8?B?UzBHSFpyanpHdjVraVhiV1dWc29ETnkra3M4UmdKeXVXKzlMd2NtK2tzZWxt?=
 =?utf-8?B?S3c9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 37c25476-fb89-464b-fd6c-08ddd4f4731a
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB8921.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Aug 2025 14:20:52.6355
 (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: TSey04DQM4DNPfdMzQ5r8mmAbtICOJHVdsDn1HvyMwRHiITlmfMH2rhK8GCjgqeooUA9DPZc0kDfj9DhhqtaVHR5MU5AZh0vGMeecLVM3a8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR03MB8766



On 06.08.25 07:30, Elliott Mitchell wrote:
> Sigh, resending as I lost some of the intended Cc targets when originally
> creating the message.  Sorry about the duplication for people who have
> already seen, but I thought this might be worthy of wider discussion.
> 
> 
> 
> I would like to draw the attention of a few people on xen-devel to the
> thread which occured on xen-users recently and quoted below:
> 
> https://lists.xenproject.org/archives/html/xen-users/2025-07/msg00001.html
> 
> On Tue, Jul 01, 2025 at 10:01:13PM +0200, Paul Leiber wrote:
>>
>> Unfortunately, I don't have a direct answer to the question (as is so often
>> the case, due to my limited knowledge and experience). However, I am
>> successfully running Xen on a RPi 4 (mostly, except for some VLAN related
>> networking issues).
>>
>> I used instructions in [1] to install vanilla Debian on the RPi, including
>> UEFI boot and grub. I then compiled Xen with expert options and ACPI
>> enabled.
>>
>> I don't know if there are better solutions. For example, I suffer from the
>> fact that I2C doesn't work when using UEFI boot on a RPi. Nowadays, Debian
>> provides their own vanilla Debian images for RPi and with working I2C, but
>> these images are using a different boot method that I didn't know how to use
>> with Xen.  So far, the procedure described above seems to be the easiest
>> solution for me.
> 
> 
>> [1] https://forums.raspberrypi.com/viewtopic.php?t=282839
>>
>> Am 30.06.2025 um 12:35 schrieb Sumit Semwal:
>>>
>>> I've just begun to experiment with the Raspberry Pi 5, trying to run a
>>> simple xen + Dom0 setup, using uBoot, and the bookworm based Rpi
>>> distro.
>>>
>>> I've tried combinations of the following setup:
>>>
>>> 1. prebuilt Rpi5 kernel + dtbs, and have also tried to build them from
>>> source [1]
>>> 2. Xen from upstream [2] and xen-troops [3]
>>> 3. upstream uBoot from [4]
>>>
>>> but with the same result: [short log below; I can provide a fuller log
>>> if needed]
>>>
>>> (XEN) DT: ** translation for device /axi/msi-controller@1000130000 **
>>> (XEN) DT: bus is default (na=2, ns=2) on /axi
>>> (XEN) DT: translating address:<3> 000000ff<3> fffff000<3>
>>> (XEN) DT: parent bus is default (na=2, ns=1) on /
>>> (XEN) DT: walking ranges...
>>> (XEN) DT: default map, cp=0, s=1000000000, da=fffffff000
>>> (XEN) DT: default map, cp=1000000000, s=100000000, da=fffffff000
>>> (XEN) DT: default map, cp=1400000000, s=400000000, da=fffffff000
>>> (XEN) DT: default map, cp=1800000000, s=400000000, da=fffffff000
>>> (XEN) DT: default map, cp=1c00000000, s=400000000, da=fffffff000
>>> (XEN) DT: not found !
>>> (XEN) Unable to retrieve address 1 for /axi/msi-controller@1000130000
>>> (XEN) Device tree generation failed (-22).
>>> (XEN) debugtrace_dump() global buffer starting
>>> 1 cpupool_create(pool=0,sched=6)
>>> 2 Created cpupool 0 with scheduler SMP Credit Scheduler rev2 (credit2)
>>> 3 cpupool_add_domain(dom=0,pool=0) n_dom 1 rc 0
>>> (XEN) wrap: 0
>>> (XEN) debugtrace_dump() global buffer finished
>>> (XEN)
>>> (XEN) ****************************************
>>> (XEN) Panic on CPU 0:
>>> (XEN) Could not set up DOM0 guest OS (rc = -22)
>>> (XEN) ****************************************
>>>
>>>
>>> I'm certain I'm missing something, but before I delve deeper, I just
>>> wanted to ask if this is a known issue, and if so, are there any
>>> workarounds or solutions available for this?
>>>
>>> Any help about this is highly appreciated!
>>>
>>> Thanks and Best regards,
>>> Sumit.
>>>
>>> [1]:  https://github.com/raspberrypi/linux rpi-6.12.y branch
>>> [2]: git://xenbits.xen.org/xen.git - main branch
>>> [3] xen-troops https://github.com/xen-troops/xen - rpi5_dev branch
>>> [4]: https://github.com/u-boot/u-boot.git master branch
> 
> Ultimately Debian is choosing to leave most defaults alone.  So far the
> Xen developers have left CONFIG_ACPI defaulting to off on ARM*.  The
> Debian project doesn't have paid people to support Raspberry PI hardware,
> despite being rather common.  As a result there aren't any official
> Raspberry PI images, but people associated with Tianocore have gotten
> generic images to boot on Raspberry PI hardware.
> 
> I'm unsure of the likelihood of getting the Debian maintainers to
> override the default.  Yet due being by far the simplest way to install
> Debian and Xen on a very common ARM64 platform, perhaps the Xen
> developers should consider changing?

Information about our experiments with RPI5 can be found in [1]
and demonstration project [2].

Seen no issues (except no IOMMU as platform is closed and no docs/support).

[1] https://github.com/xen-troops/meta-xt-rpi5/wiki
[2] https://github.com/xen-troops/meta-xt-prod-devel-rpi5

-- 
Best regards,
-grygorii



From xen-devel-bounces@lists.xenproject.org Wed Aug 06 14:25:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 14:25:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071856.1435209 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujf4c-0008A4-FA; Wed, 06 Aug 2025 14:24:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071856.1435209; Wed, 06 Aug 2025 14:24: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 1ujf4c-00089x-CQ; Wed, 06 Aug 2025 14:24:58 +0000
Received: by outflank-mailman (input) for mailman id 1071856;
 Wed, 06 Aug 2025 14:24:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kasG=2S=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1ujf4a-00088k-Ty
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 14:24:57 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1f3841a7-72d1-11f0-b898-0df219b8e170;
 Wed, 06 Aug 2025 16:24:54 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-451d41e1ad1so46835635e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 Aug 2025 07:24:55 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3b79c3abedesm23450005f8f.3.2025.08.06.07.24.53
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Aug 2025 07:24: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>
X-Inumbo-ID: 1f3841a7-72d1-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754490294; x=1755095094; 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=Qq/G7sACOjKHiw+T6kSqyN6XXbDjLMS8Ply+E1GMPRY=;
        b=Drpr48CYkm/1PnLeHCuBUYuR03PJxTVCrFfVL3C5JItRWlwtLrFJ4OHDa4FX8szifK
         USsuCiypoBj+ziisItMSrBzzuJW2bhOlNMctBV/0dc6V6zjfCvetPVWZUlFDDVGaXW76
         8v3fgL33TOxxFzpQZZ+zK0CAnFqdVMJdY03wI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754490294; x=1755095094;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Qq/G7sACOjKHiw+T6kSqyN6XXbDjLMS8Ply+E1GMPRY=;
        b=LVYBaXmjX0Wx5ERfTQODPUp4uKOH3sCW3If+Z2XeQpkqSmG0Pg4ItOC2mxPyh+MKjA
         MtepZR8EFBZ/5svjRX6Rkhyke9Kst6l3VOk4JZCbGNOsQUnVdr+rcvf4vl5rRcMbD5P6
         A3x46WfF3pGRUrE3oQC8unSIkgzxq35sz6jcyespgk2ITSQMGyOP3PxWXq1wxRPoAnDh
         2KIo0pHtra7g/g3MytzVgNCvnwdqpfwQP4lKyirGfaXxQJXaLWHoXswKkSR5KuJv+WfR
         DfBhm8ROcqaJYfCrxFYo1YigvYU/DutDcIsRsp8F69BAuQNaX/08Sux+OsUgVrRusckT
         i+Xg==
X-Gm-Message-State: AOJu0YwsaaJWqDmBNBO31Qg+HGxqjN6suTNGC52zgvw4+CtNJSKrUhsD
	zbO178h+SGtahRiHrVB3PMRu0cs370sKT+b/WwjhpmkZ9Fgdu1YsXUrir5gAr+bFoHM=
X-Gm-Gg: ASbGncuz0q8cItAQriD53Fxm9SVGXglQR62QWDOuLYrWCB+2+eGVeFlpigGphWLhCYI
	M5uCyKiu/p+v6F9Y3wqGLFJYXQYHztYqT2ETwD7B76hHdkUPv2fZKWmWVYEQtUvzbav7kPMq6BJ
	Q8rB85/zGpXx3VGocgnaysVqkLj63/uFu2gcY5YqagLxNebhXowOBE7wuOd45G+sDnwczOPIN2y
	mBB71kITZF2mQ1Gx5y4aa/emd8gIFFHm3ma1lOQTwIfUPZFVfbqkbrPY4L/SZGMEZy7/45K+siT
	zerSZVEv6mjujylHuVxaJpsyjsNNfoARwxf0p9cYJBqnRiphJcA0xRrf/inCbbAXYXLZujCX8TM
	rOA7kMj1+euSDauqhoO0lrAlZbQWJnBPCEcQrrsFdJunYOvvHpopX6saRh4bk7Jn0Gw==
X-Google-Smtp-Source: AGHT+IFPf5yrMCSJls0v3Wp1cxk9Wh+du0gypabS5+Xo8ZpQ/UEjfuoSd8+UvHTynqozDebPqnMMIQ==
X-Received: by 2002:a05:600c:4f4c:b0:456:fc1:c286 with SMTP id 5b1f17b1804b1-459e8765384mr17275335e9.1.1754490294069;
        Wed, 06 Aug 2025 07:24:54 -0700 (PDT)
Date: Wed, 6 Aug 2025 16:24:52 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com,
	anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org,
	michal.orzel@amd.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: Re: [PATCH v4 2/8] emul/vuart: introduce framework for UART emulators
Message-ID: <aJNltFHxLtCq4qio@macbook.local>
References: <20250731192130.3948419-1-dmukhin@ford.com>
 <20250731192130.3948419-3-dmukhin@ford.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20250731192130.3948419-3-dmukhin@ford.com>

On Thu, Jul 31, 2025 at 07:21:49PM +0000, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com> 
> 
> Introduce a driver framework to abstract UART emulators in the hypervisor.
> 
> That allows for architecture-independent handling of virtual UARTs in the
> console driver and simplifies enabling new UART emulators.
> 
> The framework is built under CONFIG_HAS_VUART, which will be automatically
> enabled once the user enables any UART emulator.
> 
> Current implementation supports maximum of one vUART of each kind per domain.
> 
> Use new domain_has_vuart() in the console driver code to check whether to
> forward console input to the domain using vUART.
> 
> Note: existing vUARTs are deliberately *not* hooked to the new framework to
> minimize the scope of the patch: vpl011 (i.e. SBSA) emulator and "vuart" (i.e.
> minimalistic MMIO-mapped dtuart for hwdoms on Arm) are kept unmodified.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
> Changes since v3:
> - new patch
> - original patch from ML: https://lore.kernel.org/xen-devel/20250624035443.344099-16-dmukhin@ford.com/
> ---
>  xen/arch/arm/xen.lds.S         |   1 +
>  xen/arch/ppc/xen.lds.S         |   1 +
>  xen/arch/riscv/xen.lds.S       |   1 +
>  xen/arch/x86/xen.lds.S         |   1 +
>  xen/common/Kconfig             |   2 +
>  xen/common/Makefile            |   1 +
>  xen/common/emul/Kconfig        |   6 ++
>  xen/common/emul/Makefile       |   1 +
>  xen/common/emul/vuart/Kconfig  |   6 ++
>  xen/common/emul/vuart/Makefile |   1 +
>  xen/common/emul/vuart/vuart.c  | 112 +++++++++++++++++++++++++++++++++
>  xen/common/keyhandler.c        |   3 +
>  xen/drivers/char/console.c     |   4 ++
>  xen/include/xen/vuart.h        |  84 +++++++++++++++++++++++++
>  xen/include/xen/xen.lds.h      |  10 +++
>  15 files changed, 234 insertions(+)
>  create mode 100644 xen/common/emul/Kconfig
>  create mode 100644 xen/common/emul/Makefile
>  create mode 100644 xen/common/emul/vuart/Kconfig
>  create mode 100644 xen/common/emul/vuart/Makefile
>  create mode 100644 xen/common/emul/vuart/vuart.c
>  create mode 100644 xen/include/xen/vuart.h
> 
> diff --git a/xen/arch/arm/xen.lds.S b/xen/arch/arm/xen.lds.S
> index 9f30c3a13ed1..bdba7eaa4f65 100644
> --- a/xen/arch/arm/xen.lds.S
> +++ b/xen/arch/arm/xen.lds.S
> @@ -58,6 +58,7 @@ SECTIONS
>         *(.rodata)
>         *(.rodata.*)
>         VPCI_ARRAY
> +       VUART_ARRAY
>         *(.data.rel.ro)
>         *(.data.rel.ro.*)
>  
> diff --git a/xen/arch/ppc/xen.lds.S b/xen/arch/ppc/xen.lds.S
> index 1de0b77fc6b9..f9d4e5b0dcd8 100644
> --- a/xen/arch/ppc/xen.lds.S
> +++ b/xen/arch/ppc/xen.lds.S
> @@ -52,6 +52,7 @@ SECTIONS
>          *(.rodata)
>          *(.rodata.*)
>          VPCI_ARRAY
> +        VUART_ARRAY
>          *(.data.rel.ro)
>          *(.data.rel.ro.*)
>  
> diff --git a/xen/arch/riscv/xen.lds.S b/xen/arch/riscv/xen.lds.S
> index edcadff90bfe..59dcaa5fef9a 100644
> --- a/xen/arch/riscv/xen.lds.S
> +++ b/xen/arch/riscv/xen.lds.S
> @@ -47,6 +47,7 @@ SECTIONS
>          *(.rodata)
>          *(.rodata.*)
>          VPCI_ARRAY
> +        VUART_ARRAY
>          *(.data.rel.ro)
>          *(.data.rel.ro.*)
>  
> diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
> index 8e9cac75b09e..43426df33092 100644
> --- a/xen/arch/x86/xen.lds.S
> +++ b/xen/arch/x86/xen.lds.S
> @@ -136,6 +136,7 @@ SECTIONS
>         *(.rodata)
>         *(.rodata.*)
>         VPCI_ARRAY
> +       VUART_ARRAY
>         *(.data.rel.ro)
>         *(.data.rel.ro.*)
>  
> diff --git a/xen/common/Kconfig b/xen/common/Kconfig
> index 16936418a6e6..4e0bd524dc43 100644
> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -1,6 +1,8 @@
>  
>  menu "Common Features"
>  
> +source "common/emul/Kconfig"
> +
>  config COMPAT
>  	bool
>  	help
> diff --git a/xen/common/Makefile b/xen/common/Makefile
> index c316957fcb36..c0734480ee4b 100644
> --- a/xen/common/Makefile
> +++ b/xen/common/Makefile
> @@ -11,6 +11,7 @@ obj-$(filter-out $(CONFIG_X86),$(CONFIG_ACPI)) += device.o
>  obj-$(CONFIG_DEVICE_TREE_PARSE) += device-tree/
>  obj-$(CONFIG_IOREQ_SERVER) += dm.o
>  obj-y += domain.o
> +obj-y += emul/
>  obj-y += event_2l.o
>  obj-y += event_channel.o
>  obj-$(CONFIG_EVTCHN_FIFO) += event_fifo.o
> diff --git a/xen/common/emul/Kconfig b/xen/common/emul/Kconfig
> new file mode 100644
> index 000000000000..7c6764d1756b
> --- /dev/null
> +++ b/xen/common/emul/Kconfig
> @@ -0,0 +1,6 @@
> +menu "Domain Emulation Features"
> +	visible if EXPERT
> +
> +source "common/emul/vuart/Kconfig"
> +
> +endmenu
> diff --git a/xen/common/emul/Makefile b/xen/common/emul/Makefile
> new file mode 100644
> index 000000000000..670682102c13
> --- /dev/null
> +++ b/xen/common/emul/Makefile
> @@ -0,0 +1 @@
> +obj-$(CONFIG_HAS_VUART) += vuart/
> diff --git a/xen/common/emul/vuart/Kconfig b/xen/common/emul/vuart/Kconfig
> new file mode 100644
> index 000000000000..02f7dd6dc1a1
> --- /dev/null
> +++ b/xen/common/emul/vuart/Kconfig
> @@ -0,0 +1,6 @@
> +config HAS_VUART
> +	bool
> +
> +menu "UART Emulation"
> +
> +endmenu
> diff --git a/xen/common/emul/vuart/Makefile b/xen/common/emul/vuart/Makefile
> new file mode 100644
> index 000000000000..c6400b001e85
> --- /dev/null
> +++ b/xen/common/emul/vuart/Makefile
> @@ -0,0 +1 @@
> +obj-$(CONFIG_HAS_VUART) += vuart.o
> diff --git a/xen/common/emul/vuart/vuart.c b/xen/common/emul/vuart/vuart.c
> new file mode 100644
> index 000000000000..14a7f8bd8b79
> --- /dev/null
> +++ b/xen/common/emul/vuart/vuart.c
> @@ -0,0 +1,112 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * UART emulator framework.
> + *
> + * Copyright 2025 Ford Motor Company
> + */
> +
> +#include <xen/errno.h>
> +#include <xen/sched.h>
> +#include <xen/vuart.h>
> +
> +#define VUART_ARRAY_SIZE    (__start_vuart_end - __start_vuart_array)
> +
> +#define for_each_vuart(vdev) \
> +    for (unsigned __i = 0; \
> +         __i < VUART_ARRAY_SIZE && (vdev = __start_vuart_array[__i], 1); \
> +         __i++)

Could you possibly do:

#define for_each_vuart(vdev) \
    for ( vdev = __start_vuart_array; vdev < __start_vuart_end: vdev++ )

To avoid the extra __i variable in the inner scope?

> +
> +extern const struct vuart_ops *const __start_vuart_array[];
> +extern const struct vuart_ops *const __start_vuart_end[];

Naming here looks weird, why not __vuart_{start,end}?  Or
__{start,end}_vuart_array.

> +
> +int vuart_add_node(struct domain *d, const void *node)

What's the purpose of this function?  There's no comment here or in
the declaration to figure out what's the purpose.  It's also not being
called, which makes it unreachable code.  MISRA will likely complain
about it?

> +{
> +    const struct vuart_ops *vdev;
> +    int rc;
> +
> +    for_each_vuart(vdev)
> +    {
> +        if ( !vdev->add_node )
> +            continue;
> +
> +        rc = vdev->add_node(d, node);
> +        if ( rc )
> +            return rc;
> +    }
> +
> +    return 0;
> +}
> +
> +int vuart_init(struct domain *d, struct vuart_params *params)
> +{
> +    const struct vuart_ops *vdev;
> +    int rc;
> +
> +    if ( !domain_has_vuart(d) )
> +        return 0;

Don't you need the domain_has_vuart() checks in all the handlers?
Otherwise you are pointlessly iterating and calling handlers that
won't do anything?

> +
> +    for_each_vuart(vdev)
> +    {
> +        rc = vdev->init(d, params);
> +        if ( rc )
> +            return rc;
> +    }
> +
> +    d->console.input_allowed = true;
> +
> +    return 0;
> +}
> +
> +/*
> + * Release any resources taken by UART emulators.
> + *
> + * NB: no flags are cleared, since currently exit() is called only during
> + * domain destroy.
> + */
> +void vuart_deinit(struct domain *d)
> +{
> +    const struct vuart_ops *vdev;
> +
> +    for_each_vuart(vdev)
> +        vdev->deinit(d);
> +}
> +
> +void vuart_dump_state(const struct domain *d)
> +{
> +    const struct vuart_ops *vdev;
> +
> +    for_each_vuart(vdev)
> +        vdev->dump_state(d);
> +}
> +
> +/*
> + * Put character to the first suitable emulated UART's FIFO.
> + */
> +int vuart_put_rx(struct domain *d, char c)
> +{
> +    const struct vuart_ops *vdev = NULL;
> +
> +    ASSERT(domain_has_vuart(d));
> +
> +    for_each_vuart(vdev)
> +        if ( vdev->put_rx )
> +            break;
> +
> +    return vdev ? vdev->put_rx(d, c) : -ENODEV;

The above functions seems to be designed to deal with multiple vUARTs
in-use by the same domain, while the put_rx code gives up as soon as
it finds an implementation that has the ->put_rx() hook set.

> +}
> +
> +bool domain_has_vuart(const struct domain *d)
> +{
> +    uint32_t mask = 0;
> +
> +    return !!(d->emulation_flags & mask);
> +}
> +
> +/*
> + * Local variables:
> + * mode: C
> + * c-file-style: "BSD"
> + * c-basic-offset: 4
> + * indent-tabs-mode: nil
> + * End:
> + */
> diff --git a/xen/common/keyhandler.c b/xen/common/keyhandler.c
> index eccd97c565c6..af427d25dc0d 100644
> --- a/xen/common/keyhandler.c
> +++ b/xen/common/keyhandler.c
> @@ -22,6 +22,7 @@
>  #include <xen/mm.h>
>  #include <xen/watchdog.h>
>  #include <xen/init.h>
> +#include <xen/vuart.h>
>  #include <asm/div64.h>
>  
>  static unsigned char keypress_key;
> @@ -354,6 +355,8 @@ static void cf_check dump_domains(unsigned char key)
>                             v->periodic_period / 1000000);
>              }
>          }
> +
> +        vuart_dump_state(d);
>      }
>  
>      for_each_domain ( d )
> diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
> index 963c7b043cd8..93254979817b 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/vuart.h>
>  
>  #ifdef CONFIG_X86
>  #include <asm/guest.h>
> @@ -601,6 +602,7 @@ static void __serial_rx(char c)
>          /*
>           * Deliver input to the hardware domain buffer, unless it is
>           * already full.
> +         * NB: must be the first check: hardware domain may have emulated UART.
>           */
>          if ( (serial_rx_prod - serial_rx_cons) != SERIAL_RX_SIZE )
>              serial_rx_ring[SERIAL_RX_MASK(serial_rx_prod++)] = c;
> @@ -611,6 +613,8 @@ static void __serial_rx(char c)
>           */
>          send_global_virq(VIRQ_CONSOLE);
>      }
> +    else if ( domain_has_vuart(d) )
> +        rc = vuart_put_rx(d, c);
>  #ifdef CONFIG_SBSA_VUART_CONSOLE
>      else
>          /* Deliver input to the emulated UART. */
> diff --git a/xen/include/xen/vuart.h b/xen/include/xen/vuart.h
> new file mode 100644
> index 000000000000..e843026df4b1
> --- /dev/null
> +++ b/xen/include/xen/vuart.h
> @@ -0,0 +1,84 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * UART emulator framework.
> + *
> + * Copyright 2025 Ford Motor Company
> + */
> +
> +#ifndef XEN_VUART_H
> +#define XEN_VUART_H
> +
> +#include <public/xen.h>
> +#include <public/event_channel.h>
> +#include <xen/types.h>
> +
> +struct vuart_params {
> +    domid_t console_domid;
> +    gfn_t gfn;
> +    evtchn_port_t evtchn;

I think this should be empty initially, as there's no implementation
that uses the hooks it's completely opaque to me what should be placed
in vuart_params.

> +};
> +
> +struct vuart_ops {
> +    int (*add_node)(struct domain *d, const void *node);
> +    int (*init)(struct domain *d, struct vuart_params *params);
> +    void (*deinit)(struct domain *d);
> +    void (*dump_state)(const struct domain *d);
> +    int (*put_rx)(struct domain *d, char c);

We haven't been very good at this, but ideally hooks should be
documented as to which task they are expected to perform, so that
future implementations have some initial help in understanding how
this is supposed to work.

> +};
> +
> +#define VUART_REGISTER(name, x) \
> +    static const struct vuart_ops *const __name##_entry \
> +        __used_section(".data.vuart." #name) = (x);

For vPCI we are moving this to a different section, I think you want
to use ".data.rel.ro.vuart" here.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 14:31:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 14:31:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071869.1435219 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujfAQ-0001MS-7L; Wed, 06 Aug 2025 14:30:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071869.1435219; Wed, 06 Aug 2025 14:30: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 1ujfAQ-0001ML-4B; Wed, 06 Aug 2025 14:30:58 +0000
Received: by outflank-mailman (input) for mailman id 1071869;
 Wed, 06 Aug 2025 14:30:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=VUPx=2S=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1ujfAO-0001MF-8l
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 14:30:56 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20609.outbound.protection.outlook.com
 [2a01:111:f403:2412::609])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f2c36b4f-72d1-11f0-b898-0df219b8e170;
 Wed, 06 Aug 2025 16:30:51 +0200 (CEST)
Received: from BL0PR05CA0021.namprd05.prod.outlook.com (2603:10b6:208:91::31)
 by SJ2PR12MB7895.namprd12.prod.outlook.com (2603:10b6:a03:4c6::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.21; Wed, 6 Aug
 2025 14:30:46 +0000
Received: from BN2PEPF000044AB.namprd04.prod.outlook.com
 (2603:10b6:208:91:cafe::6c) by BL0PR05CA0021.outlook.office365.com
 (2603:10b6:208:91::31) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9031.5 via Frontend Transport; Wed, 6
 Aug 2025 14:30:45 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN2PEPF000044AB.mail.protection.outlook.com (10.167.243.106) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Wed, 6 Aug 2025 14:30:45 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 6 Aug
 2025 09:30:44 -0500
Received: from [172.17.35.128] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 6 Aug 2025 09:30:43 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f2c36b4f-72d1-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=oyGyUAJwWOttj1jbLv07A2ojBTr3y45Imnm1x9SJFI8glsnviSv60w1BWkKrAVmIEzA/xBWahsTJlUH67d/+eX3v+1by2T6dCVbNbmfqE7aJeFs+uq7Bqi1M7ihLRvtfsdiJXuxMyiZYCkLe9pAw6hM8YPmNE/zqAnQiEj4rjWuV8tCP8htwIs0lN02zDXYMru9KxuJGe0aT372aoVmF9BUj7u67u/ppBALuk2vJ0eGhri90EDR3fnxdUVY4b+jcPxQyoWnNhEv61NmvyXWmxp2jazpKCQNiT3C9nvViY8ix6eougYKC+7a658PXn3FykA6jxZhBbtsnrqUnI8s3Iw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=VgRG5dns8+PbB+hxJcmrdozUfqf4hWR28q3LJkML9u4=;
 b=M5FAzgHDkqqjtY53aVP6PB1+/ux7Aa6ADfMwCpeep7hppfJV1cY4ENsUi50gjqwzYHR2eKFsWIfMhTNgECMQOXQgXG7sr2XPZM4icDNAonmM45XbM5EF3HjAuAl6pGllNsNVBsFLUe78LOBvBoWkeDA9fKmj9Ks/c5YqNSj7DOa9g7Q290jC+oR/rMpTM7Emj3xeTQKctfFIpocmWp8Xmnzrk+THYuXPCdpVRFyXl+ynxVT+TQIC8jYVfgOG/LdKz3jWFBefLnl4y6KHKbCukwcEZakKxhMMVoRbyByve8nfCJ7Use9NAprUbddI4DPuM7MUe8Ag4icbvkHjJfMU8g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=xen.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=VgRG5dns8+PbB+hxJcmrdozUfqf4hWR28q3LJkML9u4=;
 b=vIXwXbjvwGxrsskFkNISF+ureLDr4Y7iila0Kc2A0bCDWSyMxJasWOPvweBl3s16dH2J7qOuxYxLqdDW2gedfXvy1d4q3BTGgC83lqu6gktHfCWS26ObsD1jTQIIF6rSdXjBeDWuw0C0NPbaUhAT0WewdjkmcZm6l9zxd3CgSUc=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <0d5b855d-163e-4a4f-b1ba-a41de2dd1070@amd.com>
Date: Wed, 6 Aug 2025 10:30:45 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 1/2] xen/arm: fix arm_iommu_map_page after f9f6b22abf1d
To: Stewart Hildebrand <stewart.hildebrand@amd.com>, Julien Grall
	<julien@xen.org>, <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <stefano.stabellini@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	"Michal Orzel" <michal.orzel@amd.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
References: <20250725140130.4008-1-stewart.hildebrand@amd.com>
 <5fab90b6-7cae-45d0-bb8e-b1ffa0390b6f@xen.org>
 <7a3a08f4-c08e-4490-a033-53e81b261181@amd.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <7a3a08f4-c08e-4490-a033-53e81b261181@amd.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB04.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN2PEPF000044AB:EE_|SJ2PR12MB7895:EE_
X-MS-Office365-Filtering-Correlation-Id: fe895d9e-976e-43b9-9ade-08ddd4f5d475
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|82310400026|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?OGJwUTVZVkdNckVTcHZHY0Zzdk5TK2dSNDVuM0dIU1pFVnNQaTdhRkxlR0tw?=
 =?utf-8?B?YitzS25pcTlzUG1PVDlKQWlsQ3JUN2I0NW1lS25oTDk0U1RKWGg2Y3RxdVBW?=
 =?utf-8?B?SkZzRS9Wc1c1RnFSZEQxSFh0ZlFQZVdXRm00ZnB1Q01YenRUUjh1Y2pENFVL?=
 =?utf-8?B?dkh2Rm5YSG5EeXFEUVowNHBhVDg4ME1URndVUDZOUjMySXozNU1OZkVrR1ZL?=
 =?utf-8?B?b25CbDhFRi9YVnQ4ZUJMRy9PbHJzTDVkK3hCcUpFMG5ZcWlWcUZ5bmdXVnMv?=
 =?utf-8?B?UzZUa0ZuZlBHemdjUnVVRy9JVWRDQTdjT1dkRU01NlhyMEpvK2VhdG9ZSmJR?=
 =?utf-8?B?L0hpU2dWU0Y4MEZ6NUY2d3JJL2MxUWdDVDRyamlGcHdyZjI3RFRQOE9XUGhh?=
 =?utf-8?B?VWlYZ0hzeG1NLzRLSzZkQjVRemhoRnR4RFVERENPZWFzV0Y1Vnk5WHZSbElm?=
 =?utf-8?B?OHErN0tIVUcwQnNheG4wNnhhVTFhdWJqSEQ4VStOOHIxNVFlbFJZVk8ySEVy?=
 =?utf-8?B?cE5hLzRjTStIMXZvYTJTNTRaQkcxeDFRSU05K3B0MmhjblFIdkFkR3lWMXZW?=
 =?utf-8?B?Mks0TnExOHVSZFRYS0sxUEhDVlZZODhQUEZ0bkpYaEZZL0lpemZadlRpYjYw?=
 =?utf-8?B?WlVqQUsybGg3d1pLampCZ3UxYU0vY0pjWkRiQmlWYjlybzNCSmNnaTZvM3RZ?=
 =?utf-8?B?c1FCeDJydkVneVdTdWlsVjhWNFhoNnlBWGZiamM5OHVobWtMVjA4VUhPdnh6?=
 =?utf-8?B?UkNHeEgvU0lIY1JHZ1BVTEc4VVlucDJWU2FLbStYZml1SERvQitBbVRVUGhP?=
 =?utf-8?B?bGNOVXZGaXp3ZXJRVlRZaitNb0ZhYkFiOW4yeng0Zy92QUNZSDhiVUVVdWlk?=
 =?utf-8?B?S3dvNVhQZ2g3eXlOVE5ZZVdBTUprSkVDWHFrR0Y1VUUxSWQ2M2NrUk9ZSnhO?=
 =?utf-8?B?UVY2MHdzbVFBV3QvVEp1cy9SYU5tRHJ0a25iMDRpYytXdUFxT0NFUWhoNElY?=
 =?utf-8?B?UCtDQkN6ckZZb1ZHL3Frc0djNEtXNmEyRllpbnp4RlI0MlJYV0pWaEY3MUNk?=
 =?utf-8?B?blFvUHF5Z0RjcnlCRFMyUnVuK1FLVHk4YlN3c0xKeHdaRVdFTVE1dTN1Y0tG?=
 =?utf-8?B?VncyOUpVS0VjOGZ6dVkweEVrMUl1ck1TUlZtWk0zU2pteXJsNUtrY3R2ZWs2?=
 =?utf-8?B?VCtWblhSeERhTTRIa1RFZTRVeXFZOEhFU3VQQVRvNEl4T1BEdWR2SWFxY0dG?=
 =?utf-8?B?b1JhWUYramVDd0VSdTRYU3FDN2dmS0N0WTAyZnR0ek5IdE1YNzBJSUx3RHNt?=
 =?utf-8?B?RTZraXFzMS9FR3JnamZXOW9mU2FQYnZwREYvWStudzY2QkVqZFo3NnNFSHZ5?=
 =?utf-8?B?Ukd3MlByam5uVkZWaUNuOHdtVng2OFc0L2JSVHFVekxNdXFBUkZMSE9nM3c0?=
 =?utf-8?B?VUVXYnhJc2VVKzRoM29vM0hwSHF5SElkVjUwMGNEVWpsMUphRlpsR3Bwb09y?=
 =?utf-8?B?TStEcWgwTExCL0R5TWV5SG1HSlJYK291bzVxR0V6S09jZmZJR3pvSitkSHl6?=
 =?utf-8?B?THJCN0Rkekd5NFJSYzdyYXdLVkgzVnhETXlTNURsZFdjZmprRWVjVnJLS1hW?=
 =?utf-8?B?S053Y2pOR09Xb2srTlY4b3RDWjNCZ3ZwZVV0WStlVUFCRjVGK0IwbEI4MSt2?=
 =?utf-8?B?azhZYWJjdFlmZkF6NHlPVFJxaldCaWh5NVQxQTJYZVYzSWlhWXUzWEpveTlV?=
 =?utf-8?B?WUk5aXQ1WkFzRHR6dldkTmdjZ1h0eHJNSDFvTWRmQ1d1YTgzMkl4OGp5aStD?=
 =?utf-8?B?Q0NzaXRFR05qZTQxME04MmVPU3R2cWd5QjBWUnBYcVI0N3hycUdoa3dtampN?=
 =?utf-8?B?RkVteHNSazd3cVUzV3Iyc2ptY0gvMDF0eC9rT2hHa1dQSFd1UURjVlQ0Qy9L?=
 =?utf-8?B?Y2xhY0xvUXM1RE5rZ0FBQ25ad0UwbHJtS0Z6UGVpUmZDSGl5Z2tzN0duL2tw?=
 =?utf-8?B?VjJZYUNBS21LczVBa0c5OGNNeGFPTWU5UkVWMlpvVXhBQ21XYjh6R09TSkxj?=
 =?utf-8?Q?hciJsy?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Aug 2025 14:30:45.2605
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: fe895d9e-976e-43b9-9ade-08ddd4f5d475
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN2PEPF000044AB.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB7895

On 2025-08-06 09:58, Stewart Hildebrand wrote:
> On 7/26/25 05:23, Julien Grall wrote:
>> Hi,
>>
>> On 25/07/2025 15:01, Stewart Hildebrand wrote:
>>> From: Stefano Stabellini <stefano.stabellini@amd.com>
>>>
>>> Up until f9f6b22abf1d "xen/arm: Map ITS doorbell register to IOMMU page
>>> tables" the only caller of iommu_map on ARM was grant_table.c which has
>>> a specific usage model and restrictions as described by the in-code
>>> comment in arm_iommu_map_page.
>>>
>>> f9f6b22abf1d introduced a second caller to iommu_map on ARM:
>>> vgic_v3_its_init_virtual. This specific statement in the
>>> f9f6b22abf1d commit message is partially wrong:
>>>
>>> "Note that the 1:1 check in arm_iommu_map_page remains for now, as
>>> virtual ITSes are currently only created for hwdom where the doorbell
>>> mapping is always 1:1."
>>>
>>> Leading to crashes any time the hardware domain is not direct-mapped
>>> (e.g. cache coloring and non-Dom0 hardware domain):
>>>
>>> (XEN) Xen BUG at drivers/passthrough/arm/iommu_helpers.c:47
>>> [...]
>>> (XEN) Xen call trace:
>>> (XEN)Â Â Â  [<00000a000024c758>] arm_iommu_map_page+0x80/0x90 (PC)
>>> (XEN)Â Â Â  [<00000a000024c750>] arm_iommu_map_page+0x78/0x90 (LR)
>>> (XEN)Â Â Â  [<00000a0000250884>] iommu_map+0xcc/0x29c
>>> (XEN)Â Â Â  [<00000a0000288024>] vgic_v3_its_init_domain+0x18c/0x1e8
>>> (XEN)Â Â Â  [<00000a0000285228>] vgic-v3.c#vgic_v3_domain_init+0x168/0x21c
>>> (XEN)Â Â Â  [<00000a0000281dcc>] domain_vgic_init+0x14c/0x210
>>> (XEN)Â Â Â  [<00000a00002705a4>] arch_domain_create+0x150/0x1f0
>>> (XEN)Â Â Â  [<00000a00002055e8>] domain_create+0x47c/0x6c0
>>> (XEN)Â Â Â  [<00000a00002cf090>] create_domUs+0x7f8/0x8cc
>>> (XEN)Â Â Â  [<00000a00002eb588>] start_xen+0x8f4/0x998
>>> (XEN)Â Â Â  [<00000a000020018c>] head.o#primary_switched+0x4/0x10
>>>
>>> Specifically, non-1:1 hardware domain exists with cache coloring
>>> enabled. For that, is_domain_direct_mapped(d) is false but
>>> domain_use_host_layout(d) is true.
>>>
>>> Change the is_domain_direct_mapped(d) checks in arm_iommu_map_page and
>>> arm_iommu_unmap_page into domain_use_host_layout(d) checks.
>>>
>>> Drop stale in-code comment specific to grant table mappings.
>>>
>>> Fixes: f9f6b22abf1d ("xen/arm: Map ITS doorbell register to IOMMU page tables")
>>> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
>>> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
>>
>> Reviewed-by: Julien Grall <jgrall@amazon.com>
> 
> Thanks for the review! Is this ready to be committed?

Tested-by: Jason Andryuk <jason.andryuk@amd.com>

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 14:31:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 14:31:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071872.1435228 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujfAt-0001tk-F6; Wed, 06 Aug 2025 14:31:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071872.1435228; Wed, 06 Aug 2025 14:31: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 1ujfAt-0001td-CI; Wed, 06 Aug 2025 14:31:27 +0000
Received: by outflank-mailman (input) for mailman id 1071872;
 Wed, 06 Aug 2025 14:31:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=VUPx=2S=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1ujfAs-0001jI-88
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 14:31:26 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on2060e.outbound.protection.outlook.com
 [2a01:111:f403:2415::60e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 072f1ed2-72d2-11f0-a322-13f23c93f187;
 Wed, 06 Aug 2025 16:31:24 +0200 (CEST)
Received: from BY3PR10CA0010.namprd10.prod.outlook.com (2603:10b6:a03:255::15)
 by DM4PR12MB5794.namprd12.prod.outlook.com (2603:10b6:8:61::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.21; Wed, 6 Aug
 2025 14:31:21 +0000
Received: from MWH0EPF000A672F.namprd04.prod.outlook.com
 (2603:10b6:a03:255:cafe::f7) by BY3PR10CA0010.outlook.office365.com
 (2603:10b6:a03:255::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.21 via Frontend Transport; Wed,
 6 Aug 2025 14:31:21 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 MWH0EPF000A672F.mail.protection.outlook.com (10.167.249.21) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Wed, 6 Aug 2025 14:31:20 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 6 Aug
 2025 09:31:18 -0500
Received: from [172.17.35.128] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 6 Aug 2025 09:31: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>
X-Inumbo-ID: 072f1ed2-72d2-11f0-a322-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=TTQWpqrOu7G0eCsVloHhT+mI5Wc1fgodIdLuNWynLUAK0PdR9zizjmkNxHRhGM3IuB0AZio5YRQLW7NZlWQmA+wPUoBjLc+YYLbN6B/vkyK/A49JbHvUmqAmnC3oSjv7hxGUw7mZT2nxaz0nZw9yG3NB5H/TzojNAc2z5wjx+NeB+WNST8tUciclCO3YbG3IbG18x+3CACYuG4cfRgpKxO499tRmVyl+gZSZiJFZz2RuOAZyFGQd5/JE+JdRJIrW9J8HfNYEpightYH0za40onxOiKq+nP3ypTpKn+jlDTLMKS9flWGe+vkFK5PFq/WtfYO5A3MHkZQZg9nnFd4V3A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=qaxQgQDECCLvFYAOX1ZPAH3MZYbZQIBrg+H1izWfFic=;
 b=JKneQBaea3INg4nljj8C/AWOjlQUsyOlUc9x2ZRwtFSf3hWu7STydl+D3VhslyslLa+ICy1mdagIyFydZzZ9JDxyqqFV+2tyf/ApVe54feBhMzWjtDvbu7r7BGjejKXMlAKAPY7s16/yMYwSDYMHPpXsC81S8hj0y9CA896vHumIu7qd+tXIqoi8EUb4I+cgTeg5rQ8vilgkjptX9nz4fIi4h2RYFd+elo28NrQ4VLw32DJfo8HY3jZUQAGhOh3FPc/eF697NnIp7TX0b/nFfdXhEBOUEvumVKYCSHsZ3vHvCQ6RXy50yFNhoZMqLfirqArHF5reK3eUJ/gc/iIbGw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=xen.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=qaxQgQDECCLvFYAOX1ZPAH3MZYbZQIBrg+H1izWfFic=;
 b=b+fK3Knzk+2jFexPyMATXAd1MqkRamrUvAr0f9MOpIc18kKV8IHpUFQtvf3RbK5VtOKkeWZBWZhZhMOgyXwSir9CTbatrnbFg9ZjZKk4K9Fx6CXtOQCB5Z95GZea5KstHa7E1GRw5iG+kpauD136krFfziblIqLWoFK2HT7RzhI=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <6de94af6-f3d9-4a1c-9d0f-22332e721c57@amd.com>
Date: Wed, 6 Aug 2025 10:31:20 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 2/2] xen/arm: allow translated iommu mappings
To: Julien Grall <julien@xen.org>, Stewart Hildebrand
	<stewart.hildebrand@amd.com>, <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <stefano.stabellini@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	"Michal Orzel" <michal.orzel@amd.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
References: <20250725140130.4008-1-stewart.hildebrand@amd.com>
 <20250725140130.4008-2-stewart.hildebrand@amd.com>
 <02f0d392-c817-4c5a-9b74-6a0f2e6e18ea@xen.org>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <02f0d392-c817-4c5a-9b74-6a0f2e6e18ea@xen.org>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB03.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MWH0EPF000A672F:EE_|DM4PR12MB5794:EE_
X-MS-Office365-Filtering-Correlation-Id: 82a142df-6e89-4080-79fb-08ddd4f5e951
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bkwvd1QvNlAwaytGRXRmRkkrWUdVcVNRSDR5c3FhUlM4bU9zQ3NqUzhia2lC?=
 =?utf-8?B?L1p4dkg5U0o3ZFkxMnA0aEkzSm5QM2VoZCtPZ0E1U1p0VWZ4dDRKKzc1cGhC?=
 =?utf-8?B?aWtkNk1yYWQ5Sk9Rd3Jwbkg5NVlsKzFXS0piWXpMTzFlWHEvcE1FRitQcjNX?=
 =?utf-8?B?K1NtVVc1bDM1NlYyYWRqeG5aSkxEMDR1UFBHQ0RhaW9EZ0tldXg0VW1BUmRk?=
 =?utf-8?B?aXBBbGpxa09nbEVPelhxcGRORjloRWlVMkhITXlKRDBmK0t1dlFBM01BNHNB?=
 =?utf-8?B?VmJwV1ptUnhkNks2bWVGUkIxQ2lqQmIvVkVkTHpaWWpuNFY2OWNTTkRkMERU?=
 =?utf-8?B?NzZBVDlia08yZEtqQ0Uyb05WUFNXRiswcmlBemZrM3JTRDJuUTVUcFdoVUFl?=
 =?utf-8?B?aUlWZDAvQXZHbjBGSVduaGx6U2pwN3lZT1dyY0ljYmZXVFB6a1E4VjRJWmkw?=
 =?utf-8?B?VFdwcHljNks4K0E3R1lTTzRtdkxFblpWSlFqbCs5b0s2MC9TNUt3SGZDOHNs?=
 =?utf-8?B?andRSVIwdHRzOTdBU2haU1FqQlRicXRTT0NFNDQ0ZlVWZWJXZkg5OU55bmMr?=
 =?utf-8?B?NldmNytqNUVHUVJLTlg3R08rQmxSRHoyeHRUZ3BJUC91eGsvZ0hSNFJ4Q0pM?=
 =?utf-8?B?RWdiSnhaV3FGNXBIRFNRWE44eVFjTWdUNC95bG1jOTBHUFFFNnUydDM3eU84?=
 =?utf-8?B?TXI5QUFVUG4vYU1ueXFyWlkvV0g2b3pCdXREM0NBNVl0dzlucDk0UVE2RGNR?=
 =?utf-8?B?TU96aS9aajNmZnFNSjVNL1cyRjF0U1BOaU1qeFI0OUhsbUpOMFZSekZwUTlJ?=
 =?utf-8?B?dEQ3TWZBbzA3UnY0Si80NTAvMXk3dzRKeCsvMk1wOER1cjdYSk1JaE9OSUEz?=
 =?utf-8?B?dWZjN2RiNHJkNzR2MWNobVhiTk9SaExadHpkU1pPaklCN0xXWjBqZXBEYzZO?=
 =?utf-8?B?ZE8vOHVsMVErdGJmS0RENVpmYyttRWRRWDlrNDd4QktENjcxaHh3OGJicEZY?=
 =?utf-8?B?a015Tml2VjhCTkZZa0xqc29hSEhleUo3bGVvN0hlYjNmb3VYTVR4eWpFbk5E?=
 =?utf-8?B?eVdTZWNrMXFsZ0F3OHkvMzBWM3BZeUMrbHc0d2JQbzMwWnU2L3kvWDIwRnhZ?=
 =?utf-8?B?OWg1MWhBckYzYkg4TmFNQlA4N0FzOFI4WWhUQnphL1VubUtEL29LRSt5Q1lU?=
 =?utf-8?B?Q0dOaExGWGFwenZvWDd5UmtVZE5nU3p3L3diV0lINmxObUlFY2VCdEYwcndO?=
 =?utf-8?B?M3JaR2RuR1Rvb01ZZFZRbkQzRFduMVdwUG81S3BFTXVGd291L1BVNlVWYU4z?=
 =?utf-8?B?ekJhZW52ZG1YU1pXU2lkb2w4SWFoZnU1ZGhQY0QxVW01TUNQLzM3NGlrT2Ft?=
 =?utf-8?B?bVlmVFRjUHdYcE1oOVd4eWVRSnB4UmxRQ1BMNEYrcUwwVmRielRYRTVoQjNj?=
 =?utf-8?B?RVpOVm03QWlNc1V3c2czWUVCeU5WVDlJYm8wVldWTWN3V25hdVdYNWlrM2lZ?=
 =?utf-8?B?SHBId3p1QlhyaWdQNUtjdzFjTGlEVTdvNHhSSFdJZEJjbE1EN0ZKRENIMFNX?=
 =?utf-8?B?Z2x2Q1lSR0l0R2x4UnBVMmpHZFF0NWg3MWZGZG9yM1RzWjJBQUJWaGM4dWJ6?=
 =?utf-8?B?MWkwT3V0WU1pN2E4cG9naktBSWRiNHc2eUNGd3djd2JEU1RnUFlHbWZTTjlx?=
 =?utf-8?B?eThDcU83NDNTdkxxdGMwSzlKcE5kM011S3dwZkU4NzFzZVpUejIxRDZHSGFZ?=
 =?utf-8?B?RmFFTEJzRUwzQUpCN0g3Zm8wdE5heS9Sak1SK3ZKdXJrOEdWYW0rSEo1NEhC?=
 =?utf-8?B?ajExc2dqdHJWZ3kzZDVBVEFTbXcyQ2ZqR21OL1ZVc2tXOUc2NURMMFR1Ui9C?=
 =?utf-8?B?VG5FNU1GVjVSOStxZ041WVV1ZE1USUpkSXA4OTAySjNadVJjZGpacU82MWFU?=
 =?utf-8?B?UkE2Vm13VzBQUXR4QUVEVGtlODlBNGFOcno5QVJOLzZYWVdwS2lKMFZwRjMw?=
 =?utf-8?B?REtSU2RqRXJhL3BJRHJ2bUY3MjNjZEVyTFV5c2tpWXlORkhqeXUrU0JnbXNE?=
 =?utf-8?Q?fwUgxq?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(1800799024)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Aug 2025 14:31:20.1554
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 82a142df-6e89-4080-79fb-08ddd4f5e951
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000A672F.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5794

On 2025-07-26 05:23, Julien Grall wrote:
> Hi,
> 
> On 25/07/2025 15:01, Stewart Hildebrand wrote:
>> From: Stefano Stabellini <stefano.stabellini@amd.com>
>>
>> In preparation of exposing vITS to domUs, generalize arm_iommu_map_page
>> and arm_iommu_unmap_page to allow ITS doorbell mappings with dfn != mfn.
>>
>> The mfn does not need to be passed to guest_physmap_remove_page since
>> there is no mfn checking on the p2m_iommu_map_{rw,ro} p2m types during
>> unmap. Pass INVALID_MFN to guest_physmap_remove_page.
>>
>> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
>> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> 
> Reviewed-by: Julien Grall <jgrall@amazon.com>

Tested-by: Jason Andryuk <jason.andryuk@amd.com>

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 14:37:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 14:37:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071883.1435239 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujfGh-0002Zq-04; Wed, 06 Aug 2025 14:37:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071883.1435239; Wed, 06 Aug 2025 14:37: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 1ujfGg-0002Zj-TC; Wed, 06 Aug 2025 14:37:26 +0000
Received: by outflank-mailman (input) for mailman id 1071883;
 Wed, 06 Aug 2025 14:37:25 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kasG=2S=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1ujfGf-0002Zc-Ro
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 14:37:25 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id de3d6525-72d2-11f0-a322-13f23c93f187;
 Wed, 06 Aug 2025 16:37:24 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-45994a72356so8640055e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 06 Aug 2025 07:37:24 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3b79c4a2848sm23040515f8f.71.2025.08.06.07.37.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Aug 2025 07:37: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>
X-Inumbo-ID: de3d6525-72d2-11f0-a322-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754491044; x=1755095844; 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=fkN2Uehwul7oD7ifqYMtbWgz9qgTAJ6LbALemLk3DR0=;
        b=i1fNNa55qFW8pqu11+INGj6P0Eu1oxgAGJ92S8YGoZYNa+bFxgG8ZPEtgELVSg7YcH
         0Ey2Qqx6KmR9ZjAIWBe10Hdb71SU0eIvF8pbP11ofl93+AHuMJ+qM4mQy9yVzC17vVzd
         80H6isQ1Q7ot2730G0GkV9RQPMkrnv1CJ1MPI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754491044; x=1755095844;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fkN2Uehwul7oD7ifqYMtbWgz9qgTAJ6LbALemLk3DR0=;
        b=SQVC9MFJ8+fHKvvKWFRgf1br6H1zmhEjFDGzh0kfl/iPQBayS2pQFNWdC9Kb3UkKSd
         08PxxtSfrHcheLBxyMC3pAdsYDYr7CfYqP2mZizOnGS1SvamRJN42IRiBHXrnRUgU/el
         wFOf6y4NZjaWgKoY0eD05SnU222Nhi+S1da8fC/n8L2w63mnVtnuMroR9YazdGCUrXcC
         +xLWzADbIKgHqva8Cwyzapj+mimdgERsQLm7/T9nBmkMWJP7uXtrOj/Qs+o/758n/BjR
         xRJdAyA5Bi0wN6ryAyhlFKvY/rIyeh2h3n6sXsdV3i+tVFKZe4pSjrmY8F+Vy6dfS+hU
         MutQ==
X-Gm-Message-State: AOJu0YxRl6PhI3bHuME3ToqXg37ZO5KHkL8vcpjJxc1bgk/CCjD6gfJW
	jxxbML8fGCfFZCFJXrzfpeeJd66nLZpY1PPHtM3EGO+q2wDlJPzufQJn7QpvmeTZg48=
X-Gm-Gg: ASbGncvp74Y8C6t/aWdSPlffV2qxp67mR0Elh8iBEJBAKD1nGifhCjTQS288oTWpqf5
	3ja9RS1IkBhc/UIyiyGmM74zgjBeTbhqHD2RFETXQ87t9PrJlr0AC9PgAxs7N3lkdHYR9GpAviE
	Vgmy3eenZz7yg+q9ud5m7Id/s2lwSQaE3oOjvV/O+wd2sFvaPsb++CY3Rdh8p1dtMgBFpvDLGE5
	zrwaXRxk9G1mmxUNICQ/B7mH/qK5IwdmI+7OPCyN4JohS9WY8Ic0qj1v6Q9h4XqlmWo7OkVidnC
	Xk9JrPhB1mG2tl2ODNU8attCxLEVPXOPlhYAqdTVHQQK8JYwAjssWvpNCVirzECXfYpyKrq1cof
	xO9CNY1xmkKLUHohfUvYI/2vaTunVd2sB3hH774SDG2hz99hNuYCoqQPtC8GKj4snFA==
X-Google-Smtp-Source: AGHT+IH7bq4z7cSR4tZLYhRHt38AMtGjh5yhkqMaugK8dj5RlQmq3wKdGYTTFeLN5VaQueQVm8JUgQ==
X-Received: by 2002:a05:600c:1382:b0:456:2139:456a with SMTP id 5b1f17b1804b1-459e70e8ad8mr31414155e9.15.1754491044109;
        Wed, 06 Aug 2025 07:37:24 -0700 (PDT)
Date: Wed, 6 Aug 2025 16:37:23 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com,
	anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org,
	michal.orzel@amd.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: Re: [PATCH v4 3/8] x86/domain: allocate d->{iomem,irq}_caps before
 arch-specific initialization
Message-ID: <aJNoo6s_7CV6tIjy@macbook.local>
References: <20250731192130.3948419-1-dmukhin@ford.com>
 <20250731192130.3948419-4-dmukhin@ford.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20250731192130.3948419-4-dmukhin@ford.com>

On Thu, Jul 31, 2025 at 07:21:54PM +0000, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com> 
> 
> Move IRQ/IOMEM rangesets allocation before arch_domain_create().
> 
> That guarantees that arch-specific code could access those rangesets to
> register traps for emulation.
> 
> It is necessary for those emulators registering trap handlers and ensuring
> that emulated IRQs are not shared with the physical IRQs.
> 
> Move dom0_setup_permissions() call right after I/O rangesets are allocated.
> 
> Move pvh_setup_mmcfg() inside dom0_setup_permissions() close to the place
> where MMCFG ranges are initialized.

I'm a bit puzzled by this, you don't need I/O permission to setup
traps.  You can setup traps everywhere, the I/O rangesets control
whether a domain can access the physical resource, not whether
accesses can be emulated.

The dependency between MMCFG registration (pvh_setup_mmcfg()) and
calling dom0_setup_permissions() is because the later consumes the
MMCFG ranges added by the former to mark them as not accessible by
a PVH dom0.

I think you don't need this for vUARTS, as the ports are know at build
time, and hence you can block access to them without requiring the
actual vUART to be initialized.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 14:59:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 14:59:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071901.1435250 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujfbZ-0005gh-NU; Wed, 06 Aug 2025 14:59:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071901.1435250; Wed, 06 Aug 2025 14:59:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujfbZ-0005ga-JF; Wed, 06 Aug 2025 14:59:01 +0000
Received: by outflank-mailman (input) for mailman id 1071901;
 Wed, 06 Aug 2025 14:59:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=cHpH=2S=epam.com=Dmytro_Firsov@srs-se1.protection.inumbo.net>)
 id 1ujfbY-0005gS-47
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 14:59:00 +0000
Received: from AM0PR83CU005.outbound.protection.outlook.com
 (mail-westeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c201::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e11621ef-72d5-11f0-a323-13f23c93f187;
 Wed, 06 Aug 2025 16:58:58 +0200 (CEST)
Received: from DB9PR03MB8327.eurprd03.prod.outlook.com (2603:10a6:10:37f::12)
 by DB3PR0302MB9206.eurprd03.prod.outlook.com (2603:10a6:10:43c::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.20; Wed, 6 Aug
 2025 14:58:55 +0000
Received: from DB9PR03MB8327.eurprd03.prod.outlook.com
 ([fe80::b7f:9b2d:242e:f7f0]) by DB9PR03MB8327.eurprd03.prod.outlook.com
 ([fe80::b7f:9b2d:242e:f7f0%6]) with mapi id 15.20.9009.013; Wed, 6 Aug 2025
 14:58: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>
X-Inumbo-ID: e11621ef-72d5-11f0-a323-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=D6Bc53H2B2648t4bDshHlFLhRst0wi0/rZxiOD3hLazKQ3V66NvTijGyTqJQTagEBZUy2N3M0sXBm8Ii/VLqioWW7YQ8mZC1SmIMvSsqsaQbGg4CyLFyHzHHR7qcjiESU8yEO7RTZzQ+1zyxDlHtM7KlvTbEWEbScv0KW0znvhx/7SPCX1VadtspvYBPv2yPOaUrYpnoh7OCVkDfMwew1jbzOWNV1X68NSfm3vO6JoD6vludLENuQfgmO13G7yD7iUbRsU+rBKk4XKZe6Q17wLsr8aWQ2cKYjP8eUtH6Lem9MqLv7cui9MYlWZvp/yGfKsSCfcOG+7i6Tte4SKiRPA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=dYhpCbpdRqtHQG0qWN9E2ZSljMfq2rfgBTqMs/d2TRg=;
 b=Ovvj1916yHz++4f7xhtPHXS14ToC1g2H1d1unVTaqJjLw17bp8GAqfzV8HGytPMI0jQ6CZle4SAy1TMI6StmZbH/Rxmw8weDsAmE4bTc3SccAj5LekdA2RY7kL5WpTyBkR9Z1T9yA7Ysr1A8p34ihBwIVhBDNZGd1Oik/zIp1Tx/5vpWEgdvoqqcqWYPMqNEXyHZ5ZWwzEuwfNjRvekIyemvH7KBiewy3UMDy8DJGf5S2nEJfDGH9ZYA8aebnzBIqTYbVS1Fib6ME9mUjh2F/4mJibHYlegIGRdxkJ2sY5/wof3gu1ZJDXybNxx/la5522o4Y8QaEX57RGRu2xwikw==
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=dYhpCbpdRqtHQG0qWN9E2ZSljMfq2rfgBTqMs/d2TRg=;
 b=nXEAxa4733/BGq2cxcEcqvQN8s2gZTgmym7o9Lz2FU4DI1HgUzo9Y+WXr54gKGmmp0I3QgmUuqlfyN3NkPwVjREQrvjlawT2JppbV73RyYjlQdMLMouXTsFHMWJVMXKa9TngCwYUBe46IzXFBHaYcHETSi5htacry9LQ6oUuD621xn7bxy8470G6dl/g31NM4QEN7vtNQRbf0GeGge1tzfDPG6AsOaN614Fgagx25pZUp8ySS7ipUEgyim/J/lAOvOpIx6/j1XDVCoRn8u0DBIhG92vkFjxnyoJKNpfqBYfOdvpCsnEcxPAQIzPFgNr3UF+mdy12yqmzP7VeyGD8nw==
From: Dmytro Firsov <Dmytro_Firsov@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dmytro Firsov <Dmytro_Firsov@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: [PATCH] xen/arm: smmuv3: Add cache maintenance for non-coherent SMMU
 queues
Thread-Topic: [PATCH] xen/arm: smmuv3: Add cache maintenance for non-coherent
 SMMU queues
Thread-Index: AQHcBuKhRQAjcpitXUCHafCQJ8zznQ==
Date: Wed, 6 Aug 2025 14:58:55 +0000
Message-ID:
 <24567cc1630b1577c33939ff71d67fb2ebe5572f.1754491424.git.dmytro_firsov@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: DB9PR03MB8327:EE_|DB3PR0302MB9206:EE_
x-ms-office365-filtering-correlation-id: 182a360d-2273-469e-71aa-08ddd4f9c3f1
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|376014|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?g7wtv9qkQhW0Y7rq6cMcGJ9gxBy+F57eNp3QEiUgEcweiTRuVXZhVkVgYx?=
 =?iso-8859-1?Q?H3tc8X4jr0C5xZ22TwlsDDe6UooYhii2reSAN+8okKRtsVNjBv7aywcTAA?=
 =?iso-8859-1?Q?wH4q1iVNsBnRsareMzk5VDzhjdv4EiZj/Dg9Qa/XsWTLJjY7PGYlrppSe1?=
 =?iso-8859-1?Q?2nPrSS8YA3r/ny9KFe/W6dT9n+BVB8wCi9plODybmUhbmSi/Lf/fv/JghV?=
 =?iso-8859-1?Q?tsY7U55hFoJ3HkFzBOEDbp8z3lviRKUF427txyX3pVmo8Al/q8blPONVD5?=
 =?iso-8859-1?Q?JQUpVZYGYYURgRtuOILDhEOvJKlbA1wdgzcvOtWuCkUN0vb1WgkgAVu7fS?=
 =?iso-8859-1?Q?k7LX0T3amHwjvK7kLo5OhgwWlXaxPpBTzXydYNgGZoyHRSSuXMEQIqZntX?=
 =?iso-8859-1?Q?4fdCA3aLTdw3Ss6oCjJRLDoU+1j2q+Q0+uUzTLU9BuwWGXnmHj25MKLM07?=
 =?iso-8859-1?Q?CF7VDuSzG7Bs3MTuQzThG9joxtaUnK5qvwYXq/FuHSKPHjne9oJT7ryIW/?=
 =?iso-8859-1?Q?LdCHb0Hs7KK4OR0vYNwtpd+cpuZNLZgd50mS4qalUQmxk2Jz1Nxd1CPByo?=
 =?iso-8859-1?Q?cZeOWux+0Qs0ia3vwXlwqd6B3trVFyPMyejutxCPy8h45ghbOfLpICZqnV?=
 =?iso-8859-1?Q?0yekD6jUNHKrOtipVIlKnCzAL2zdHUWLLORlHndyvHrQNz56gl1Mrl8spd?=
 =?iso-8859-1?Q?IbNQ3wApjGs7Mm0XedvyMu4mvTDVD7NULQetpHn02whThemq1D1NbfA3wB?=
 =?iso-8859-1?Q?eQIhTIMGyV/+8ZVsAohWaC9lL4PiCaLALv0YgItsdIzJw5Re69rQ7Z5l7E?=
 =?iso-8859-1?Q?VtAoZ95t3y5WFiD1WPDuE/FPJhQv+a6q6K5HB6OFqzDw31Nr04DGjTsTk5?=
 =?iso-8859-1?Q?l45KvKKJ2ortyyriqcnaiYZ2G6sLG0MpEDsIouP9oSghZnR/aTJMNR69hJ?=
 =?iso-8859-1?Q?uKoCinbq242G3ZqjeHzOpu7V1g216LJuaBsCfRS5QkCj5PD8e+v5BZsVbh?=
 =?iso-8859-1?Q?WJ+qF7+LnkxjkjsCikNZAnsB2tQAF2+0b6LncKwP8t29MTT43qC5YPFzLI?=
 =?iso-8859-1?Q?CSSXkhvwkPATYYBOzRnRzLRBz97gzvSYduvFBf2JhhLL/0UvXG7yrvwdo9?=
 =?iso-8859-1?Q?DCf5ZshqTjYjUjnfh/McZXWel4aurs3JJwkBlbrkD40X2omdasQidJ3Fbk?=
 =?iso-8859-1?Q?Yr4dujHqCOLzmwdnDNtyTx1TUQz745E9ymQWWghM2wxOK2h14IvhTmxWis?=
 =?iso-8859-1?Q?1UPWX57dRfvrSgeEvD0fJczT9rv11qw0Zk00J56VO+FcsCtREDI9ESf95E?=
 =?iso-8859-1?Q?kGPSlScXC1gKiQJi2z3n49IFzSxuCYgqUj+I0dryxvbnCNQUinbSVg6Sp5?=
 =?iso-8859-1?Q?jmki+qNqyX7liV7eTmwSZUURvBaVRZwmtG0ZGLWR0H1RO8PT0aUYlQSbcW?=
 =?iso-8859-1?Q?URK3mKVBtjpcWSPXj3wbqqdtksC9ouXF1NzNocFM0t3jRfQdUniT7tofdF?=
 =?iso-8859-1?Q?/8tLg6izEirjeOsTptl0sR5qNVVxOnEZK5ZqGVvIsL6A=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR03MB8327.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?UY7Ik3MJ5hfDZ5X4JbPscjnVpta5R+qd8Y5lp6yXvSqTtVZKrbamF2Leue?=
 =?iso-8859-1?Q?kljgn5GNILowVsGi1GicQj9HSSGGQlEqgdGpox1e3TcLoMBku3Lh3cSGO3?=
 =?iso-8859-1?Q?yUZSeyHSMyax6bgXRC9UPw0tnjl6ZCGXVzxev93O12UV4yHM7QPi138oeQ?=
 =?iso-8859-1?Q?/iHoF8n+Cf+K7jMgzsBP0KTfoEBMAomE2qYjBb1VtvMV3D4WUyMVRmleDL?=
 =?iso-8859-1?Q?0FUKN007LJD1SOCV4lrS7rfs7j3EBEOszmaI5nmY+VFrN3es5sfoubdzmU?=
 =?iso-8859-1?Q?XytVTqIrNZPqB95qfTn0GSQOLzjIYUGjEd+mtgCVFTEuZ9DMRjh6UfuriP?=
 =?iso-8859-1?Q?wEfXRnB9rpeZL0GbVKxO94JsiRwJNupR7SgozsH1qUg+vCuhb1BQ7d63Hf?=
 =?iso-8859-1?Q?CA8gvQAjIGeLnrhhJlyrZAcIgAUiTxi1kZ+v7AIKZn3kuY16vnjhwrrSWF?=
 =?iso-8859-1?Q?9HsmU5IL5bajw0k99Mb560IhtMdV3oGnRI6BHf/5QzKx0aRZkRUThfXrbq?=
 =?iso-8859-1?Q?3sIDTiasO7nPFaq46o76UpviKAqw70/v8tgIvO3/N9wSiNXydjjgf8us32?=
 =?iso-8859-1?Q?io90TJT97YnnzxzzjpiUyQev8K/jsLna73uqMcWZV+hH3+ZKao/ebhrUar?=
 =?iso-8859-1?Q?qLrU090jKy7OFB75sWQ7pA+bjVFRhBYtbp/EQN6yXkUKzVy+cGzG6/Ul7q?=
 =?iso-8859-1?Q?a4f++jKrFhSPBESBUUed4RW+tHunqYbRbsqVFpH1JzWIeIRtSGKliaEo6K?=
 =?iso-8859-1?Q?gZNURhTEiV8OAu0t/fwYfPm4XDyz2TP239q5+lodc2ATZytra+Gn9vW9OY?=
 =?iso-8859-1?Q?gDIqOaOkbR7kWlVJFa+8ExP+ONLccgO6ymun04V8kZlkVUQxM4xkWhxNAk?=
 =?iso-8859-1?Q?yu/RqzvUwXMTvSL9qr7BIWb6VdNsPDFvR/vsrPvWg26H9r6pLsWbhBtiqn?=
 =?iso-8859-1?Q?8VZq2Zca/LbOPAnqmbIUpIVKF4HAWMye+jc/TWvbo3ZCPCrayRcYatNXsW?=
 =?iso-8859-1?Q?IBaXQpfaYeiTH0GCCU2yqF2HRaRW2BS+FE9ULL/YXRbLvqJgSahjteCCC0?=
 =?iso-8859-1?Q?nN63t+NkLWdR4ov4aQyynUOaM9HV/2DPx5gO4cfmCxUjDWt6K3EXQALP+r?=
 =?iso-8859-1?Q?0sOEiEOApzykYKrHc0rdyW1/uKRhWIzG+8uxfmHdbZfEVHctB6xZg6ojAa?=
 =?iso-8859-1?Q?H9hUguo1pT/NwICBiOFeYd/USxvn2JafDDUvQQSWPge1R465iiP/YCqPCg?=
 =?iso-8859-1?Q?rmJ+FsSfYfL5avHSKQSv4sbUmBMNiTC/KR4bVm8bwqXVvrqUJ5cDb7zIHv?=
 =?iso-8859-1?Q?7DiL5QGOPQw8K8YIs9+uhaBjYtCrB+jYjVWDU4od83esKSSKJccyOzzfC0?=
 =?iso-8859-1?Q?a8WP9N3gtHFyVATy0Nc8Airj4mLPuzzeeZlb5wNyn4NHNNyuEd8dwb+/Id?=
 =?iso-8859-1?Q?rR+dsRQsH3rfs/YqC1rMdNfsaW2X1vz2PO8yWeX8aXjpap8t7kpJMhoF9+?=
 =?iso-8859-1?Q?msmMiB4uMF8gUkMYi4Ho9TBKeMZSkN0nxtKFmM2C9TJhpB01C0RNtoZzCf?=
 =?iso-8859-1?Q?WJXwkjmKfuHCO6Rsoqy5Fel43yOXPxsGDlp27q9L9fT/M+OyYJ5i6wt7MT?=
 =?iso-8859-1?Q?XCGE8tinyrRywzDa5MXCn0fla49NNEMv30zfJb8Ovr4MJdf7IfqXYjVA?=
 =?iso-8859-1?Q?=3D=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: DB9PR03MB8327.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 182a360d-2273-469e-71aa-08ddd4f9c3f1
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Aug 2025 14:58:55.5199
 (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: gLWok0+Td+9QBQ0gJtVRxqmEFqgx+xa+n8lqOF+xIGql0NiZXyc2wPLUcSC1ZnFCcYqYttFgIKbVTBP8NCLC+Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR0302MB9206

According to the Arm SMMUv3 spec (ARM IHI 0070), a system may have
SMMU(s) that is/are non-coherent to the PE (processing element). In such
cases, memory accesses from the PE should be either non-cached or be
augmented with manual cache maintenance. SMMU cache coherency is reported
by bit 4 (COHACC) of the SMMU_IDR0 register and is already present in the
Xen driver. However, the current implementation is not aware of cache
maintenance for memory that is shared between the PE and non-coherent
SMMUs. It contains dmam_alloc_coherent() function, that is added during
Linux driver porting. But it is actually a wrapper for _xzalloc(), that
returns normal writeback memory (which is OK for coherent SMMUs).

During Xen bring-up on a system with non-coherent SMMUs, the driver did
not work properly - the SMMU was not functional and halted initialization
at the very beginning due to a timeout while waiting for CMD_SYNC
completion:

  (XEN) SMMUv3: /soc/iommu@fa000000: CMD_SYNC timeout
  (XEN) SMMUv3: /soc/iommu@fa000000: CMD_SYNC timeout

To properly handle such scenarios, add the non_coherent flag to the
arm_smmu_queue struct. It is initialized using features reported by the
SMMU HW and will be used for triggering cache clean/invalidate operations.
This flag is not queue-specific (it is applicable to the whole SMMU), but
adding it to arm_smmu_queue allows us to not change function signatures
and simplify the patch (smmu->features, which contains the required flag,
are not available in code parts that require cache maintenance).

Signed-off-by: Dmytro Firsov <dmytro_firsov@epam.com>
---
 xen/drivers/passthrough/arm/smmu-v3.c | 27 +++++++++++++++++++++++----
 xen/drivers/passthrough/arm/smmu-v3.h |  7 +++++++
 2 files changed, 30 insertions(+), 4 deletions(-)

diff --git a/xen/drivers/passthrough/arm/smmu-v3.c b/xen/drivers/passthroug=
h/arm/smmu-v3.c
index 5e9e3e048e..bf153227db 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.c
+++ b/xen/drivers/passthrough/arm/smmu-v3.c
@@ -346,10 +346,14 @@ static void queue_write(__le64 *dst, u64 *src, size_t=
 n_dwords)
=20
 static int queue_insert_raw(struct arm_smmu_queue *q, u64 *ent)
 {
+	__le64 *q_addr =3D Q_ENT(q, q->llq.prod);
+
 	if (queue_full(&q->llq))
 		return -ENOSPC;
=20
-	queue_write(Q_ENT(q, q->llq.prod), ent, q->ent_dwords);
+	queue_write(q_addr, ent, q->ent_dwords);
+	if (q->non_coherent)
+		clean_dcache_va_range(q_addr, q->ent_dwords * sizeof(*q_addr));
 	queue_inc_prod(&q->llq);
 	queue_sync_prod_out(q);
 	return 0;
@@ -365,10 +369,15 @@ static void queue_read(u64 *dst, __le64 *src, size_t =
n_dwords)
=20
 static int queue_remove_raw(struct arm_smmu_queue *q, u64 *ent)
 {
+	__le64 *q_addr =3D Q_ENT(q, q->llq.cons);
+
 	if (queue_empty(&q->llq))
 		return -EAGAIN;
=20
-	queue_read(ent, Q_ENT(q, q->llq.cons), q->ent_dwords);
+	if (q->non_coherent)
+		invalidate_dcache_va_range(q_addr, q->ent_dwords * sizeof(*q_addr));
+
+	queue_read(ent, q_addr, q->ent_dwords);
 	queue_inc_cons(&q->llq);
 	queue_sync_cons_out(q);
 	return 0;
@@ -463,6 +472,7 @@ static void arm_smmu_cmdq_skip_err(struct arm_smmu_devi=
ce *smmu)
 	struct arm_smmu_queue *q =3D &smmu->cmdq.q;
 	u32 cons =3D readl_relaxed(q->cons_reg);
 	u32 idx =3D FIELD_GET(CMDQ_CONS_ERR, cons);
+	__le64 *q_addr =3D Q_ENT(q, cons);
 	struct arm_smmu_cmdq_ent cmd_sync =3D {
 		.opcode =3D CMDQ_OP_CMD_SYNC,
 	};
@@ -489,11 +499,14 @@ static void arm_smmu_cmdq_skip_err(struct arm_smmu_de=
vice *smmu)
 		break;
 	}
=20
+	if (q->non_coherent)
+		invalidate_dcache_va_range(q_addr, q->ent_dwords * sizeof(*q_addr));
+
 	/*
 	 * We may have concurrent producers, so we need to be careful
 	 * not to touch any of the shadow cmdq state.
 	 */
-	queue_read(cmd, Q_ENT(q, cons), q->ent_dwords);
+	queue_read(cmd, q_addr, q->ent_dwords);
 	dev_err(smmu->dev, "skipping command in error state:\n");
 	for (i =3D 0; i < ARRAY_SIZE(cmd); ++i)
 		dev_err(smmu->dev, "\t0x%016llx\n", (unsigned long long)cmd[i]);
@@ -504,7 +517,10 @@ static void arm_smmu_cmdq_skip_err(struct arm_smmu_dev=
ice *smmu)
 		return;
 	}
=20
-	queue_write(Q_ENT(q, cons), cmd, q->ent_dwords);
+	queue_write(q_addr, cmd, q->ent_dwords);
+
+	if (q->non_coherent)
+		clean_dcache_va_range(q_addr, q->ent_dwords * sizeof(*q_addr));
 }
=20
 static void arm_smmu_cmdq_insert_cmd(struct arm_smmu_device *smmu, u64 *cm=
d)
@@ -1634,6 +1650,9 @@ static int __init arm_smmu_init_one_queue(struct arm_=
smmu_device *smmu,
 	q->q_base |=3D FIELD_PREP(Q_BASE_LOG2SIZE, q->llq.max_n_shift);
=20
 	q->llq.prod =3D q->llq.cons =3D 0;
+
+	q->non_coherent =3D !(smmu->features & ARM_SMMU_FEAT_COHERENCY);
+
 	return 0;
 }
=20
diff --git a/xen/drivers/passthrough/arm/smmu-v3.h b/xen/drivers/passthroug=
h/arm/smmu-v3.h
index f09048812c..db936b9bd4 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.h
+++ b/xen/drivers/passthrough/arm/smmu-v3.h
@@ -522,6 +522,13 @@ struct arm_smmu_queue {
=20
 	u32 __iomem			*prod_reg;
 	u32 __iomem			*cons_reg;
+
+	/*
+	 * According to SMMU spec section 3.16, some systems may have
+	 * SMMUs, that are non-coherent to PE (processing elements).
+	 * In such case manual cache management is needed.
+	 */
+	bool				non_coherent;
 };
=20
 struct arm_smmu_cmdq {
--=20
2.50.1


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 15:06:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 15:06:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071911.1435259 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujfin-0007bn-Hk; Wed, 06 Aug 2025 15:06:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071911.1435259; Wed, 06 Aug 2025 15:06: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 1ujfin-0007bg-Ej; Wed, 06 Aug 2025 15:06:29 +0000
Received: by outflank-mailman (input) for mailman id 1071911;
 Wed, 06 Aug 2025 15:06:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kasG=2S=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1ujfil-0007ba-ES
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 15:06:27 +0000
Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com
 [2a00:1450:4864:20::329])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ec5c7890-72d6-11f0-a323-13f23c93f187;
 Wed, 06 Aug 2025 17:06:26 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-451d3f72391so1245e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 Aug 2025 08:06:26 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3b8e009e465sm14315257f8f.43.2025.08.06.08.06.24
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Aug 2025 08:06: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>
X-Inumbo-ID: ec5c7890-72d6-11f0-a323-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754492786; x=1755097586; 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=sObkrsPJtFdQqviYRHPMJ4QqVNAEUtCrASLsbEhqQ+k=;
        b=GJeDkWyZPcntPKc3a8sUd8xNFl1ERIur/qbugd+ZckgLzZthkIDc/hjFupdpS6l8Fr
         0OPtwPz2tH4gBNnmuaF8a12qo/gyzcPHbpD6Lx3sFrjg8xQcSnhG7TcO9nt9AF0gimlX
         Ff+2fTIS/TLR2yhMsw9+jhHqkPR0Po0yEtJGQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754492786; x=1755097586;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sObkrsPJtFdQqviYRHPMJ4QqVNAEUtCrASLsbEhqQ+k=;
        b=iJ8cbBnV5W0ePYWXz8tpAdEHAejX+FNzjQPY4GTncJBq2Rb8YzVNumNzkL84feykWf
         arcZj5LkEYjV3I2KTCuxnuUz55EMecxqscKG3B4zfmx3TT0A10rIMyUOeG3kdvGRXuwH
         J1dszJvBtlGdwzdqdW5lTSJsO3LZhEuvarzlGVISbDDbgySJzxN2EzJWP7IJ8Jc2/I6R
         2VaDRlH42r8F109rTvZncZ/QnqO0DzKrinj7kiV/0vA5DFCPEUrF7nD65mhtAKiJWcwJ
         /7L2asOIKvshlzCs52FGtmi/nSk9zTK30UCOggBjUKm+SoJrkgQJP5cSThFjAf1xwU3W
         TEBg==
X-Gm-Message-State: AOJu0YxlpMete0gr2ldPDoQPvnkxbZmiM+JzylHz8eQbBLOHGnvQqKEs
	1aFZJhwSrVlIC+Ye11FSy+e29xVzSJ+daS+I0ZhhVsTZovEdUgPRVIM/mc02HEb/DOA=
X-Gm-Gg: ASbGncvZKWsG870a57rEsTT/YvbNidN/hS+BhvOF9j+ryg6Wv46vu4u0q9pGmzuYi/y
	OKeOV6q6YlRQZTM1kshoGv0bZy57N+Oo4TiyU/kOP9qIp7ztPBoug3FhgQO35ILmSYeQfNxt1E+
	w9W5ZcyzgfEOibUwNLveTYS2Ml+Qmpby2dOrs0n988/p1+Tw8v2hw8QaJWT3yk3J/TD2ZGJ4FmL
	fVs9jVvifKZE0w7EWvOHtFqSZFJ7Mr7ycWbcVVC29bTBSK6v0b1BgA/6K1l01bWRFXeER6mYoht
	jmQL8eG2X6ye+D0LJ0uemNcCxehb+yX5zaObYpfijVJmg+a5DpSntLMJj71wRJnXy3JniUy39Z3
	dQXX3nbIqRf+NIUAHP9kMRYz5hJ0CT6yfAAlcgsEHFLHDiutdCj+Bz0niBxSawTrVmWZiglDJbt
	i10xNEmyurg2Y=
X-Google-Smtp-Source: AGHT+IE5xqyZJoqQCOnwZGphg8Y9EKnNFef5+TU/8hrfOT7AKChf9GDyzK513LmdfjtReniRJFDo4g==
X-Received: by 2002:a05:600c:358a:b0:458:a992:6f1e with SMTP id 5b1f17b1804b1-459e7076775mr29908745e9.5.1754492785463;
        Wed, 06 Aug 2025 08:06:25 -0700 (PDT)
Date: Wed, 6 Aug 2025 17:06:24 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com,
	anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org,
	michal.orzel@amd.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: Re: [PATCH v4 5/8] emul/vuart-ns16550: introduce NS16550-compatible
 UART emulator (x86)
Message-ID: <aJNvcLgsUOahsQZl@macbook.local>
References: <20250731192130.3948419-1-dmukhin@ford.com>
 <20250731192130.3948419-6-dmukhin@ford.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20250731192130.3948419-6-dmukhin@ford.com>

On Thu, Jul 31, 2025 at 07:22:06PM +0000, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com> 
> 
> Add initial in-hypervisor emulator for NS8250/NS16x50-compatible UARTs under
> CONFIG_VUART_NS16550 for x86 port of Xen.
> 
> x86 port of Xen lacks vUART facility similar to Arm's SBSA emulator to support
> x86 guest OS bring up in the embedded setups.
> 
> In parallel domain creation scenario (hyperlaunch), NS16550 emulator helps
> early guest firmware and/or OS bringup debugging, because it eliminates
> dependency on the external emulator (qemu) being operational by the time
> domains are created.
> 
> The emulator also allows to forward the physical console input to the x86
> domain which is useful when a system has only one physical UART for early
> debugging and this UART is owned by Xen. Such functionality is limited to dom0
> use currently.
> 
> By default, CONFIG_VUART_NS16550 enables emulation of NS16550 at I/O port
> 0x3f8, IRQ#4 in guest OS (legacy COM1).
> 
> Legacy COM resources can be selected at built-time and cannot be configured
> per-domain via .cfg or DT yet.
> 
> Introduce new emulation flag for virtual UART on x86 and plumb it through
> domain creation code so NS16550 emulator can be instantiated properly.
> 
> Please refer to the NS16550 emulator code for full list of limitations.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
> Changes since v3:
> - feedback addressed
> - adjusted to new vUART framework APIs
> - Link to v3: https://lore.kernel.org/xen-devel/20250103-vuart-ns8250-v3-v1-21-c5d36b31d66c@ford.com/
> ---
>  xen/arch/x86/hvm/hvm.c                |    9 +
>  xen/arch/x86/include/asm/domain.h     |    4 +-
>  xen/arch/x86/include/asm/hvm/domain.h |    4 +
>  xen/common/emul/vuart/Kconfig         |   48 ++
>  xen/common/emul/vuart/Makefile        |    1 +
>  xen/common/emul/vuart/vuart-ns16550.c | 1009 +++++++++++++++++++++++++
>  xen/common/emul/vuart/vuart.c         |    4 +
>  xen/include/public/arch-x86/xen.h     |    4 +-
>  xen/include/xen/resource.h            |    3 +
>  9 files changed, 1084 insertions(+), 2 deletions(-)
>  create mode 100644 xen/common/emul/vuart/vuart-ns16550.c
> 
> diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
> index b7edb1d6555d..1156e7ebcc4c 100644
> --- a/xen/arch/x86/hvm/hvm.c
> +++ b/xen/arch/x86/hvm/hvm.c
> @@ -31,6 +31,7 @@
>  #include <xen/nospec.h>
>  #include <xen/vm_event.h>
>  #include <xen/console.h>
> +#include <xen/vuart.h>
>  #include <asm/shadow.h>
>  #include <asm/hap.h>
>  #include <asm/current.h>
> @@ -702,6 +703,10 @@ int hvm_domain_initialise(struct domain *d,
>      if ( rc != 0 )
>          goto fail1;
>  
> +    rc = vuart_init(d, NULL);
> +    if ( rc != 0 )
> +        goto out_vioapic_deinit;
> +
>      stdvga_init(d);
>  
>      rtc_init(d);
> @@ -725,6 +730,8 @@ int hvm_domain_initialise(struct domain *d,
>      return 0;
>  
>   fail2:
> +    vuart_deinit(d);
> + out_vioapic_deinit:
>      vioapic_deinit(d);
>   fail1:
>      if ( is_hardware_domain(d) )
> @@ -787,6 +794,8 @@ void hvm_domain_destroy(struct domain *d)
>      if ( hvm_funcs.domain_destroy )
>          alternative_vcall(hvm_funcs.domain_destroy, d);
>  
> +    vuart_deinit(d);
> +
>      vioapic_deinit(d);
>  
>      XFREE(d->arch.hvm.pl_time);
> diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
> index eafd5cfc903d..1ecc7c2cae32 100644
> --- a/xen/arch/x86/include/asm/domain.h
> +++ b/xen/arch/x86/include/asm/domain.h
> @@ -468,6 +468,7 @@ struct arch_domain
>  #define X86_EMU_IOMMU    XEN_X86_EMU_IOMMU
>  #define X86_EMU_USE_PIRQ XEN_X86_EMU_USE_PIRQ
>  #define X86_EMU_VPCI     XEN_X86_EMU_VPCI
> +#define X86_EMU_NS16550  XEN_X86_EMU_NS16550
>  #else
>  #define X86_EMU_LAPIC    0
>  #define X86_EMU_HPET     0
> @@ -479,6 +480,7 @@ struct arch_domain
>  #define X86_EMU_IOMMU    0
>  #define X86_EMU_USE_PIRQ 0
>  #define X86_EMU_VPCI     0
> +#define X86_EMU_NS16550  0
>  #endif
>  
>  #define X86_EMU_PIT     XEN_X86_EMU_PIT
> @@ -489,7 +491,7 @@ struct arch_domain
>                                   X86_EMU_IOAPIC | X86_EMU_PIC |         \
>                                   X86_EMU_VGA | X86_EMU_IOMMU |          \
>                                   X86_EMU_PIT | X86_EMU_USE_PIRQ |       \
> -                                 X86_EMU_VPCI)
> +                                 X86_EMU_VPCI | X86_EMU_NS16550)
>  
>  #define has_vlapic(d)      (!!((d)->emulation_flags & X86_EMU_LAPIC))
>  #define has_vhpet(d)       (!!((d)->emulation_flags & X86_EMU_HPET))
> diff --git a/xen/arch/x86/include/asm/hvm/domain.h b/xen/arch/x86/include/asm/hvm/domain.h
> index 333501d5f2ac..9945b16d1a6e 100644
> --- a/xen/arch/x86/include/asm/hvm/domain.h
> +++ b/xen/arch/x86/include/asm/hvm/domain.h
> @@ -149,6 +149,10 @@ struct hvm_domain {
>  #ifdef CONFIG_MEM_SHARING
>      struct mem_sharing_domain mem_sharing;
>  #endif
> +
> +#ifdef CONFIG_VUART_NS16550
> +    void *vuart; /* Virtual UART handle. */
> +#endif
>  };
>  
>  #endif /* __ASM_X86_HVM_DOMAIN_H__ */
> diff --git a/xen/common/emul/vuart/Kconfig b/xen/common/emul/vuart/Kconfig
> index 02f7dd6dc1a1..ebefd90d913e 100644
> --- a/xen/common/emul/vuart/Kconfig
> +++ b/xen/common/emul/vuart/Kconfig
> @@ -3,4 +3,52 @@ config HAS_VUART
>  
>  menu "UART Emulation"
>  
> +config VUART_NS16550
> +	bool "NS16550-compatible UART Emulation" if EXPERT
> +	depends on X86 && HVM
> +	select HAS_VUART
> +	help
> +	  In-hypervisor NS16550/NS16x50 UART emulation.
> +
> +	  Only legacy PC I/O ports are emulated.
> +
> +	  This is strictly for testing purposes (such as early HVM guest console),
> +	  and not appropriate for use in production.
> +
> +choice VUART_NS16550_PC
> +	prompt "IBM PC COM resources"
> +	depends on VUART_NS16550
> +	default VUART_NS16550_PC_COM1
> +	help
> +	  Default emulated NS16550 resources.
> +
> +config VUART_NS16550_PC_COM1
> +	bool "COM1 (I/O port 0x3f8, IRQ#4)"
> +
> +config VUART_NS16550_PC_COM2
> +	bool "COM2 (I/O port 0x2f8, IRQ#3)"
> +
> +config VUART_NS16550_PC_COM3
> +	bool "COM3 (I/O port 0x3e8, IRQ#4)"
> +
> +config VUART_NS16550_PC_COM4
> +	bool "COM4 (I/O port 0x2e8, IRQ#3)"
> +
> +endchoice

You can turn this into an index define here in Kconfig, using:

config VUART_NS16550_PC_IDX
	depends on VUART_NS16550
	int
	default 3 if VUART_NS16550_PC_COM4
	default 2 if VUART_NS16550_PC_COM3
	default 1 if VUART_NS16550_PC_COM2
	default 0

Or similar, seeing what you do with X86_PC_UART_IDX below.

> +
> +config VUART_NS16550_LOG_LEVEL
> +	int "UART emulator verbosity level"
> +	range 0 3
> +	default "1"
> +	depends on VUART_NS16550
> +	help
> +	  Set the default log level of UART emulator.
> +	  See include/xen/config.h for more details.
> +
> +config VUART_NS16550_DEBUG
> +	bool "UART emulator development debugging"
> +	depends on VUART_NS16550
> +	help
> +	  Enable development debugging.
> +
>  endmenu
> diff --git a/xen/common/emul/vuart/Makefile b/xen/common/emul/vuart/Makefile
> index c6400b001e85..85650ca5d8ce 100644
> --- a/xen/common/emul/vuart/Makefile
> +++ b/xen/common/emul/vuart/Makefile
> @@ -1 +1,2 @@
>  obj-$(CONFIG_HAS_VUART) += vuart.o
> +obj-$(CONFIG_VUART_NS16550) += vuart-ns16550.o
> diff --git a/xen/common/emul/vuart/vuart-ns16550.c b/xen/common/emul/vuart/vuart-ns16550.c
> new file mode 100644
> index 000000000000..48bbf58264fe
> --- /dev/null
> +++ b/xen/common/emul/vuart/vuart-ns16550.c
> @@ -0,0 +1,1009 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * NS16550-compatible UART Emulator.
> + *
> + * See:
> + * - Serial and UART Tutorial:
> + *     https://download.freebsd.org/doc/en/articles/serial-uart/serial-uart_en.pdf
> + * - UART w/ 16 byte FIFO:
> + *     https://www.ti.com/lit/ds/symlink/tl16c550c.pdf
> + * - UART w/ 64 byte FIFO:
> + *     https://www.ti.com/lit/ds/symlink/tl16c750.pdf
> + *
> + * Limitations:
> + * - Only x86;
> + * - Only HVM domains support (build-time), PVH domains are not supported yet;
> + * - Only legacy COM{1,2,3,4} resources via Kconfig, custom I/O ports/IRQs
> + *   are not supported;
> + * - Only Xen console as a backend, no inter-domain communication (similar to
> + *   vpl011 on Arm);
> + * - Only 8n1 emulation (8-bit data, no parity, 1 stop bit);
> + * - No toolstack integration;
> + * - No baud rate emulation (reports 115200 baud to the guest OS);
> + * - No FIFO-less mode emulation;
> + * - No RX FIFO interrupt moderation (FCR) emulation;
> + * - No integration w/ VM snapshotting (HVM_REGISTER_SAVE_RESTORE() and
> + *   friends);
> + * - No ISA IRQ sharing allowed;
> + * - No MMIO-based UART emulation.

Listing the limitations here might not be the beast approach, this is
likely to get out of sync as it's too far away from the code
implementation.

If anything those comments want to be closer together to where the
feature would otherwise be implemented.

> + */
> +
> +#define pr_prefix               "ns16550"
> +#define pr_fmt(fmt)             pr_prefix ": " fmt
> +#define pr_log_level            CONFIG_VUART_NS16550_LOG_LEVEL
> +
> +#include <xen/8250-uart.h>
> +#include <xen/console.h>
> +#include <xen/iocap.h>
> +#include <xen/ioreq.h>
> +#include <xen/resource.h>
> +#include <xen/vuart.h>
> +#include <xen/xvmalloc.h>
> +
> +#include <public/io/console.h>
> +
> +#define pr_err(fmt, args...) do { \
> +    gprintk(KERN_ERR, pr_fmt(fmt), ## args); \
> +} while (0)
> +
> +#define pr_warn(fmt, args...) do { \
> +    if ( pr_log_level >= 1) \
> +        gprintk(KERN_WARNING, pr_fmt(fmt), ## args); \
> +} while (0)
> +
> +#define pr_info(fmt, args...) do { \
> +    if ( pr_log_level >= 2 ) \
> +        gprintk(KERN_INFO, pr_fmt(fmt), ## args); \
> +} while (0)
> +
> +#define pr_debug(fmt, args...) do { \
> +    if ( pr_log_level >= 3 ) \
> +        gprintk(KERN_DEBUG, pr_fmt(fmt), ## args); \
> +} while (0)

We would use the pr_* set of logging functions for code imported from
Linux, but for Xen code we would directly use the gprintk() functions
rather than wrap them as you do.

> +
> +#if defined(CONFIG_VUART_NS16550_PC_COM1)
> +#define X86_PC_UART_IDX         0
> +#elif defined(CONFIG_VUART_NS16550_PC_COM2)
> +#define X86_PC_UART_IDX         1
> +#elif defined(CONFIG_VUART_NS16550_PC_COM3)
> +#define X86_PC_UART_IDX         2
> +#elif defined(CONFIG_VUART_NS16550_PC_COM4)
> +#define X86_PC_UART_IDX         3
> +#else
> +#error "Unsupported I/O port"
> +#endif
> +
> +#ifdef CONFIG_VUART_NS16550_DEBUG
> +#define guest_prefix            "FROM GUEST "
> +#else
> +#define guest_prefix            ""
> +#endif
> +
> +/*
> + * Number of supported registers in the UART.
> + */
> +#define NS16550_REGS_NUM        ( UART_SCR + 1 )

Extra spaces around parentheses? (here and below)

> +
> +/*
> + * Number of emulated registers.
> + *
> + * - Emulated registers [0..NS16550_REGS_NUM] are R/W registers for DLAB=0.
> + * - DLAB=1, R/W, DLL            = NS16550_REGS_NUM + 0
> + * - DLAB=1, R/W, DLM            = NS16550_REGS_NUM + 1
> + * -         R/O, IIR (IIR_THR)  = NS16550_REGS_NUM + 2
> + */
> +#define NS16550_EMU_REGS_NUM    ( NS16550_REGS_NUM + 3 )
> +
> +/*
> + * Virtual NS16550 device state.
> + */
> +struct vuart_ns16550 {
> +    struct xencons_interface cons;      /* Emulated RX/TX FIFOs */
> +    uint8_t regs[NS16550_EMU_REGS_NUM]; /* Emulated registers */
> +    unsigned int irq;                   /* Emulated IRQ# */
> +    uint64_t io_addr;                   /* Emulated I/O region base address */
> +    uint64_t io_size;                   /* Emulated I/O region size */
> +    const char *name;                   /* Device name */
> +    struct domain *owner;               /* Owner domain */
> +    spinlock_t lock;                    /* Protection */
> +};
> +
> +/*
> + * Virtual device description.
> + */
> +struct virtdev_desc {
> +    const char *name;
> +    const struct resource *res;
> +};
> +
> +/*
> + * Legacy IBM PC NS16550 resources.
> + * There are only 4 I/O port ranges, hardcoding all of them here.
> + */
> +static const struct virtdev_desc x86_pc_uarts[4] = {
> +    [0] = {

You don't need the explicit array indexes?

> +        .name = "COM1",
> +        .res = (const struct resource[]){
> +            { .type = IORESOURCE_IO,  .addr = 0x3f8, .size = NS16550_REGS_NUM },
> +            { .type = IORESOURCE_IRQ, .addr = 4,     .size = 1 },
> +            { .type = IORESOURCE_UNKNOWN },
> +        },
> +    },
> +    [1] = {
> +        .name = "COM2",
> +        .res = (const struct resource[]){
> +            { .type = IORESOURCE_IO,  .addr = 0x2f8, .size = NS16550_REGS_NUM },
> +            { .type = IORESOURCE_IRQ, .addr = 3,     .size = 1 },
> +            { .type = IORESOURCE_UNKNOWN },
> +        },
> +    },
> +    [2] = {
> +        .name = "COM3",
> +        .res = (const struct resource[]){
> +            { .type = IORESOURCE_IO,  .addr = 0x3e8, .size = NS16550_REGS_NUM },
> +            { .type = IORESOURCE_IRQ, .addr = 4,     .size = 1 },
> +            { .type = IORESOURCE_UNKNOWN },
> +        },
> +    },
> +    [3] = {
> +        .name = "COM4",
> +        .res = (const struct resource[]){
> +            { .type = IORESOURCE_IO,  .addr = 0x2e8, .size = NS16550_REGS_NUM },
> +            { .type = IORESOURCE_IRQ, .addr = 3,     .size = 1 },
> +            { .type = IORESOURCE_UNKNOWN },
> +        },
> +    },
> +};
> +
> +static bool ns16550_fifo_rx_empty(const struct vuart_ns16550 *vdev)
> +{
> +    const struct xencons_interface *cons = &vdev->cons;
> +
> +    return cons->in_prod == cons->in_cons;
> +}
> +
> +static bool ns16550_fifo_rx_full(const struct vuart_ns16550 *vdev)
> +{
> +    const struct xencons_interface *cons = &vdev->cons;
> +
> +    return cons->in_prod - cons->in_cons == ARRAY_SIZE(cons->in);
> +}
> +
> +static void ns16550_fifo_rx_reset(struct vuart_ns16550 *vdev)
> +{
> +    struct xencons_interface *cons = &vdev->cons;
> +
> +    cons->in_cons = cons->in_prod;
> +}
> +
> +static int ns16550_fifo_rx_getchar(struct vuart_ns16550 *vdev)
> +{
> +    struct xencons_interface *cons = &vdev->cons;
> +    int rc;
> +
> +    if ( ns16550_fifo_rx_empty(vdev) )
> +    {
> +        pr_debug("%s: RX FIFO empty\n", vdev->name);
> +        rc = -ENODATA;
> +    }
> +    else
> +    {
> +        rc = cons->in[MASK_XENCONS_IDX(cons->in_cons, cons->in)];
> +        cons->in_cons++;
> +    }
> +
> +    return rc;
> +}
> +
> +static int ns16550_fifo_rx_putchar(struct vuart_ns16550 *vdev, char c)
> +{
> +    struct xencons_interface *cons = &vdev->cons;
> +    int rc;
> +
> +    /*
> +     * FIFO-less 8250/16450 UARTs: newly arrived word overwrites the contents
> +     * of the THR.
> +     */
> +    if ( ns16550_fifo_rx_full(vdev) )
> +    {
> +        pr_debug("%s: RX FIFO full; resetting\n", vdev->name);
> +        ns16550_fifo_rx_reset(vdev);
> +        rc = -ENOSPC;
> +    }
> +    else
> +        rc = 0;
> +
> +    cons->in[MASK_XENCONS_IDX(cons->in_prod, cons->in)] = c;
> +    cons->in_prod++;
> +
> +    return rc;
> +}
> +
> +static bool ns16550_fifo_tx_empty(const struct vuart_ns16550 *vdev)
> +{
> +    const struct xencons_interface *cons = &vdev->cons;
> +
> +    return cons->out_prod == cons->out_cons;
> +}
> +
> +static void ns16550_fifo_tx_reset(struct vuart_ns16550 *vdev)
> +{
> +    struct xencons_interface *cons = &vdev->cons;
> +
> +    cons->out_prod = 0;
> +    ASSERT(cons->out_cons == cons->out_prod);
> +}
> +
> +/*
> + * Flush cached output to Xen console.
> + */
> +static void ns16550_fifo_tx_flush(struct vuart_ns16550 *vdev)
> +{
> +    struct xencons_interface *cons = &vdev->cons;
> +
> +    if ( ns16550_fifo_tx_empty(vdev) )
> +        return;
> +
> +    ASSERT(cons->out_prod < ARRAY_SIZE(cons->out));
> +    cons->out[cons->out_prod] = '\0';
> +    cons->out_prod++;
> +
> +    guest_printk(vdev->owner, guest_prefix "%s", cons->out);
> +
> +    ns16550_fifo_tx_reset(vdev);
> +}
> +
> +/*
> + * Accumulate guest OS output before sending to Xen console.
> + */
> +static void ns16550_fifo_tx_putchar(struct vuart_ns16550 *vdev, char ch)
> +{
> +    struct xencons_interface *cons = &vdev->cons;
> +
> +    if ( !is_console_printable(ch) )
> +        return;
> +
> +    if ( ch != '\0' )
> +    {
> +        cons->out[cons->out_prod] = ch;
> +        cons->out_prod++;
> +    }
> +
> +    if ( cons->out_prod == ARRAY_SIZE(cons->out) - 1 ||
> +         ch == '\n' || ch == '\0' )
> +        ns16550_fifo_tx_flush(vdev);
> +}
> +
> +static inline uint8_t cf_check ns16550_dlab_get(const struct vuart_ns16550 *vdev)
> +{
> +    return vdev->regs[UART_LCR] & UART_LCR_DLAB ? 1 : 0;
> +}
> +
> +static bool cf_check ns16550_iir_check_lsi(const struct vuart_ns16550 *vdev)
> +{
> +    return !!(vdev->regs[UART_LSR] & UART_LSR_MASK);
> +}
> +
> +static bool cf_check ns16550_iir_check_rda(const struct vuart_ns16550 *vdev)
> +{
> +    return !ns16550_fifo_rx_empty(vdev);
> +}
> +
> +static bool cf_check ns16550_iir_check_thr(const struct vuart_ns16550 *vdev)
> +{
> +    return !!(vdev->regs[NS16550_REGS_NUM + UART_IIR] & UART_IIR_THR);
> +}
> +
> +static bool cf_check ns16550_iir_check_msi(const struct vuart_ns16550 *vdev)
> +{
> +    return !!(vdev->regs[UART_MSR] & UART_MSR_CHANGE);
> +}
> +
> +/*
> + * Get the interrupt identity reason.
> + *
> + * IIR is re-calculated once called, because NS16550 always reports high
> + * priority events first.
> + * regs[NS16550_REGS_NUM + UART_IIR] is used to store THR reason only.
> + */
> +static uint8_t ns16550_iir_get(const struct vuart_ns16550 *vdev)
> +{
> +    /*
> +     * Interrupt identity reasons by priority.
> +     * NB: high priority are at lower indexes below.
> +     */
> +    static const struct {
> +        bool (*check)(const struct vuart_ns16550 *vdev);
> +        uint8_t ier;
> +        uint8_t iir;
> +    } iir_by_prio[] = {
> +        [0] = { ns16550_iir_check_lsi, UART_IER_ELSI,   UART_IIR_LSI },
> +        [1] = { ns16550_iir_check_rda, UART_IER_ERDAI,  UART_IIR_RDA },
> +        [2] = { ns16550_iir_check_thr, UART_IER_ETHREI, UART_IIR_THR },
> +        [3] = { ns16550_iir_check_msi, UART_IER_EMSI,   UART_IIR_MSI },
> +    };
> +    const uint8_t *regs = vdev->regs;
> +    uint8_t iir = 0;
> +    unsigned int i;
> +
> +    /*
> +     * NB: every interaction w/ NS16550 registers (except DLAB=1) goes
> +     * through that call.
> +     */
> +    ASSERT(spin_is_locked(&vdev->lock));
> +
> +    for ( i = 0; i < ARRAY_SIZE(iir_by_prio); i++ )
> +    {
> +        if ( (regs[UART_IER] & iir_by_prio[i].ier) &&
> +             iir_by_prio[i].check(vdev) )
> +            break;
> +
> +    }
> +    if ( i == ARRAY_SIZE(iir_by_prio) )
> +        iir |= UART_IIR_NOINT;
> +    else
> +        iir |= iir_by_prio[i].iir;
> +
> +    if ( regs[UART_FCR] & UART_FCR_ENABLE )
> +        iir |= UART_IIR_FE;
> +
> +    return iir;
> +}
> +
> +static void ns16550_irq_assert(const struct vuart_ns16550 *vdev)
> +{
> +    struct domain *d = vdev->owner;
> +    int vector;
> +
> +    if ( has_vpic(d) ) /* HVM */
> +        vector = hvm_isa_irq_assert(d, vdev->irq, vioapic_get_vector);
> +    else
> +        ASSERT_UNREACHABLE();
> +
> +    pr_debug("%s: IRQ#%d vector %d assert\n", vdev->name, vdev->irq, vector);
> +}
> +
> +static void ns16550_irq_deassert(const struct vuart_ns16550 *vdev)
> +{
> +    struct domain *d = vdev->owner;
> +
> +    if ( has_vpic(d) ) /* HVM */
> +        hvm_isa_irq_deassert(d, vdev->irq);
> +    else
> +        ASSERT_UNREACHABLE();
> +
> +    pr_debug("%s: IRQ#%d deassert\n", vdev->name, vdev->irq);
> +}
> +
> +/*
> + * Assert/deassert virtual NS16550 interrupt line.
> + */
> +static void ns16550_irq_check(const struct vuart_ns16550 *vdev)
> +{
> +    uint8_t iir = ns16550_iir_get(vdev);
> +
> +    if ( iir & UART_IIR_NOINT )
> +        ns16550_irq_assert(vdev);
> +    else
> +        ns16550_irq_deassert(vdev);
> +
> +    pr_debug("%s: IRQ#%d IIR 0x%02x %s\n", vdev->name, vdev->irq, iir,
> +             (iir & UART_IIR_NOINT) ? "deassert" : "assert");
> +}
> +
> +/*
> + * Emulate 8-bit write access to NS16550 register.
> + */
> +static int ns16550_io_write8(
> +    struct vuart_ns16550 *vdev, uint32_t reg, uint8_t *data)
> +{
> +    uint8_t *regs = vdev->regs;
> +    uint8_t val = *data;
> +    int rc = 0;
> +
> +    if ( ns16550_dlab_get(vdev) && (reg == UART_DLL || reg == UART_DLM) )
> +        regs[NS16550_REGS_NUM + reg] = val;
> +    else
> +    {
> +        switch ( reg )
> +        {
> +        case UART_THR:
> +            if ( regs[UART_MCR] & UART_MCR_LOOP )
> +            {
> +                (void)ns16550_fifo_rx_putchar(vdev, val);
> +                regs[UART_LSR] |= UART_LSR_OE;
> +            }
> +            else
> +                ns16550_fifo_tx_putchar(vdev, val);
> +
> +            regs[NS16550_REGS_NUM + UART_IIR] |= UART_IIR_THR;
> +
> +            break;
> +
> +        case UART_IER:
> +            /*
> +             * NB: Make sure THR interrupt is re-triggered once guest OS
> +             * re-enabled ETHREI in EIR.
> +             */
> +            if ( val & regs[UART_IER] & UART_IER_ETHREI )
> +                regs[NS16550_REGS_NUM + UART_IIR] |= UART_IIR_THR;
> +
> +            regs[UART_IER] = val & UART_IER_MASK;
> +
> +            break;
> +
> +        case UART_FCR: /* WO */
> +            if ( val & UART_FCR_RESERVED0 )
> +                pr_warn("%s: FCR: attempt to set reserved bit: %x\n",
> +                        vdev->name, UART_FCR_RESERVED0);
> +
> +            if ( val & UART_FCR_RESERVED1 )
> +                pr_warn("%s: FCR: attempt to set reserved bit: %x\n",
> +                        vdev->name, UART_FCR_RESERVED1);
> +
> +            if ( val & UART_FCR_CLRX )
> +                ns16550_fifo_rx_reset(vdev);
> +
> +            if ( val & UART_FCR_CLTX )
> +                ns16550_fifo_tx_flush(vdev);
> +
> +            if ( val & UART_FCR_ENABLE )
> +                val &= UART_FCR_ENABLE | UART_FCR_DMA | UART_FCR_TRG_MASK;
> +            else
> +                val = 0;
> +
> +            regs[UART_FCR] = val;
> +
> +            break;
> +
> +        case UART_LCR:
> +            regs[UART_LCR] = val;
> +            break;
> +
> +        case UART_MCR: {
> +            uint8_t msr_curr, msr_next, msr_delta;
> +
> +            msr_curr = regs[UART_MSR];
> +            msr_next = 0;
> +            msr_delta = 0;
> +
> +            if ( val & UART_MCR_RESERVED0 )
> +                pr_warn("%s: MCR: attempt to set reserved bit: %x\n",
> +                        vdev->name, UART_MCR_RESERVED0);
> +
> +            if ( val & UART_MCR_TCRTLR )
> +                pr_warn("%s: MCR: not supported: %x\n",
> +                        vdev->name, UART_MCR_TCRTLR);
> +
> +            if ( val & UART_MCR_RESERVED1 )
> +                pr_warn("%s: MCR: attempt to set reserved bit: %x\n",
> +                        vdev->name, UART_MCR_RESERVED1);
> +
> +            /* Set modem status */
> +            if ( val & UART_MCR_LOOP )
> +            {
> +                if ( val & UART_MCR_DTR )
> +                    msr_next |= UART_MSR_DSR;
> +                if ( val & UART_MCR_RTS )
> +                    msr_next |= UART_MSR_CTS;
> +                if ( val & UART_MCR_OUT1 )
> +                    msr_next |= UART_MSR_RI;
> +                if ( val & UART_MCR_OUT2 )
> +                    msr_next |= UART_MSR_DCD;
> +            }
> +            else
> +                msr_next |= UART_MSR_DCD | UART_MSR_DSR | UART_MSR_CTS;
> +
> +            /* Calculate changes in modem status */
> +            if ( (msr_curr & UART_MSR_CTS) ^ (msr_next & UART_MSR_CTS) )
> +                msr_delta |= UART_MSR_DCTS;
> +            if ( (msr_curr & UART_MCR_RTS) ^ (msr_next & UART_MCR_RTS) )
> +                msr_delta |= UART_MSR_DDSR;
> +            if ( (msr_curr & UART_MSR_RI)  & (msr_next & UART_MSR_RI) )
> +                msr_delta |= UART_MSR_TERI;
> +            if ( (msr_curr & UART_MSR_DCD) ^ (msr_next & UART_MSR_DCD) )
> +                msr_delta |= UART_MSR_DDCD;
> +
> +            regs[UART_MCR] = val & UART_MCR_MASK;
> +            regs[UART_MSR] = msr_next | msr_delta;
> +
> +            break;
> +        }
> +
> +        /* NB: Firmware (e.g. OVMF) may rely on SCR presence. */
> +        case UART_SCR:
> +            regs[UART_SCR] = val;
> +            break;
> +
> +        case UART_LSR: /* RO */
> +        case UART_MSR: /* RO */
> +        default:
> +            rc = -EINVAL;
> +            break;
> +        }
> +
> +        ns16550_irq_check(vdev);
> +    }
> +
> +    return rc;
> +}
> +
> +/*
> + * Emulate 16-bit write access to NS16550 register.
> + * NB: some guest OSes use outw() to access UART_DLL.
> + */
> +static int ns16550_io_write16(
> +    struct vuart_ns16550 *vdev, uint32_t reg, uint16_t *data)
> +{
> +    uint16_t val = *data;
> +    int rc;
> +
> +    if ( ns16550_dlab_get(vdev) && reg == UART_DLL )
> +    {
> +        vdev->regs[NS16550_REGS_NUM + UART_DLL] = val & 0xff;
> +        vdev->regs[NS16550_REGS_NUM + UART_DLM] = (val >> 8) & 0xff;
> +        rc = 0;
> +    }
> +    else
> +        rc = -EINVAL;
> +
> +    return rc;
> +}
> +
> +/*
> + * Emulate write access to NS16550 register.
> + */
> +static int ns16550_io_write(
> +    struct vuart_ns16550 *vdev, uint8_t reg, uint32_t size, uint32_t *data)
> +{
> +    int rc;
> +
> +    switch ( size )
> +    {
> +    case 1:
> +        rc = ns16550_io_write8(vdev, reg, (uint8_t *)data);
> +        break;
> +
> +    case 2:
> +        rc = ns16550_io_write16(vdev, reg, (uint16_t *)data);
> +        break;
> +
> +    default:
> +        rc = -EINVAL;
> +        break;
> +    }
> +
> +    return rc;
> +}
> +
> +/*
> + * Emulate 8-bit read access to NS16550 register.
> + */
> +static int ns16550_io_read8(
> +    struct vuart_ns16550 *vdev, uint32_t reg, uint8_t *data)
> +{
> +    uint8_t *regs = vdev->regs;
> +    uint8_t val = 0xff;
> +    int rc = 0;
> +
> +    if ( ns16550_dlab_get(vdev) && (reg == UART_DLL || reg == UART_DLM) )
> +        val = regs[NS16550_REGS_NUM + reg];
> +    else {
> +        switch ( reg )
> +        {
> +        case UART_RBR:
> +            /* NB: do not forget to clear overrun condition */
> +            regs[UART_LSR] &= ~UART_LSR_OE;
> +
> +            rc = ns16550_fifo_rx_getchar(vdev);
> +            if ( rc >= 0 )
> +                val = (uint8_t)rc;
> +
> +            rc = 0;
> +            break;
> +
> +        case UART_IER:
> +            val = regs[UART_IER];
> +            break;
> +
> +        case UART_IIR: /* RO */
> +            val = ns16550_iir_get(vdev);
> +
> +            /* NB: clear IIR scratch location */
> +            if ( val & UART_IIR_THR )
> +                regs[NS16550_REGS_NUM + UART_IIR] &= ~UART_IIR_THR;
> +
> +            break;
> +
> +        case UART_LCR:
> +            val = regs[UART_LCR];
> +            break;
> +
> +        case UART_MCR:
> +            val = regs[UART_MCR];
> +            break;
> +
> +        case UART_LSR:
> +            val = regs[UART_LSR] | UART_LSR_THRE | UART_LSR_TEMT;
> +            if ( ns16550_fifo_rx_empty(vdev) )
> +                val &= ~UART_LSR_DR;
> +            else
> +                val |= UART_LSR_DR;
> +
> +            regs[UART_LSR] = val & ~UART_LSR_MASK;
> +
> +            break;
> +
> +        case UART_MSR:
> +            val = regs[UART_MSR];
> +            regs[UART_MSR] &= ~UART_MSR_CHANGE;
> +            break;
> +
> +        case UART_SCR:
> +            val = regs[UART_SCR];
> +            break;
> +
> +        default:
> +            rc = -EINVAL;
> +            break;
> +        }
> +
> +        ns16550_irq_check(vdev);
> +    }
> +
> +    *data = val;
> +
> +    return rc;
> +}
> +
> +/*
> + * Emulate 16-bit read access to NS16550 register.
> + */
> +static int ns16550_io_read16(
> +    struct vuart_ns16550 *vdev, uint32_t reg, uint16_t *data)
> +{
> +    uint16_t val = 0xffff;
> +    int rc = -EINVAL;
> +
> +    if ( ns16550_dlab_get(vdev) && reg == UART_DLL )
> +    {
> +        val = vdev->regs[NS16550_REGS_NUM + UART_DLM] << 8 |
> +              vdev->regs[NS16550_REGS_NUM + UART_DLL];
> +        rc = 0;
> +    }
> +
> +    *data = val;
> +
> +    return rc;
> +}
> +
> +/*
> + * Emulate read access to NS16550 register.
> + */
> +static int ns16550_io_read(
> +    struct vuart_ns16550 *vdev, uint8_t reg, uint32_t size, uint32_t *data)
> +{
> +    int rc;
> +
> +    switch ( size )
> +    {
> +    case 1:
> +        rc = ns16550_io_read8(vdev, reg, (uint8_t *)data);
> +        break;
> +
> +    case 2:
> +        rc = ns16550_io_read16(vdev, reg, (uint16_t *)data);
> +        break;
> +
> +    default:
> +        *data = 0xffffffff;
> +        rc = -EINVAL;
> +        break;
> +    }
> +
> +    return rc;
> +}
> +
> +static void cf_check ns16550_dump_state(const struct domain *d)
> +{
> +    struct vuart_ns16550 *vdev = d->arch.hvm.vuart;
> +    const struct xencons_interface *cons;
> +    const uint8_t *regs;
> +
> +    if ( !vdev )
> +        return;
> +
> +    /* Allow printing state in case of a deadlock. */
> +    if ( !spin_trylock(&vdev->lock) )
> +        return;
> +
> +    cons = &vdev->cons;
> +    regs = &vdev->regs[0];
> +
> +    printk("Virtual " pr_prefix " (%s) I/O port 0x%04"PRIx64" IRQ#%d owner %pd\n",
> +            vdev->name, vdev->io_addr, vdev->irq, vdev->owner);
> +
> +    printk("  RX FIFO size %ld in_prod %d in_cons %d used %d\n",
> +            ARRAY_SIZE(cons->in), cons->in_prod, cons->in_cons,
> +            cons->in_prod - cons->in_cons);
> +
> +    printk("  TX FIFO size %ld out_prod %d out_cons %d used %d\n",
> +            ARRAY_SIZE(cons->out), cons->out_prod, cons->out_cons,
> +            cons->out_prod - cons->out_cons);
> +
> +    printk("  %02"PRIx8" RBR %02"PRIx8" THR %02"PRIx8" DLL %02"PRIx8" DLM %02"PRIx8"\n",
> +            UART_RBR,
> +            cons->in[MASK_XENCONS_IDX(cons->in_prod, cons)],
> +            cons->out[MASK_XENCONS_IDX(cons->out_prod, cons)],
> +            regs[NS16550_REGS_NUM + UART_DLL],
> +            regs[NS16550_REGS_NUM + UART_DLM]);
> +
> +    printk("  %02"PRIx8" IER %02"PRIx8"\n", UART_IER, regs[UART_IER]);
> +
> +    printk("  %02"PRIx8" FCR %02"PRIx8" IIR %02"PRIx8"\n",
> +            UART_FCR, regs[UART_FCR], ns16550_iir_get(vdev));
> +
> +    printk("  %02"PRIx8" LCR %02"PRIx8"\n", UART_LCR, regs[UART_LCR]);
> +    printk("  %02"PRIx8" MCR %02"PRIx8"\n", UART_MCR, regs[UART_MCR]);
> +    printk("  %02"PRIx8" LSR %02"PRIx8"\n", UART_LSR, regs[UART_LSR]);
> +    printk("  %02"PRIx8" MSR %02"PRIx8"\n", UART_MSR, regs[UART_MSR]);
> +    printk("  %02"PRIx8" SCR %02"PRIx8"\n", UART_SCR, regs[UART_SCR]);
> +
> +    spin_unlock(&vdev->lock);
> +}
> +
> +/*
> + * Emulate I/O access to NS16550 register.
> + * Note, emulation always returns X86EMUL_OKAY, once I/O port trap is enabled.
> + */
> +static int cf_check ns16550_io_handle(
> +    int dir, unsigned int addr, unsigned int size, uint32_t *data)
> +{
> +#define op(dir)     (((dir) == IOREQ_WRITE) ? 'W' : 'R')
> +    struct domain *d = rcu_lock_current_domain();
> +    struct vuart_ns16550 *vdev = d->arch.hvm.vuart;
> +    uint32_t reg;
> +    unsigned dlab;
> +    int rc;
> +
> +    if ( !vdev )
> +    {
> +        pr_err("%s: %c io 0x%04x %d: not initialized\n",
> +                vdev->name, op(dir), addr, size);
> +
> +        ASSERT_UNREACHABLE();
> +        goto out;
> +    }
> +
> +    if ( d != vdev->owner )
> +    {
> +        pr_err("%s: %c io 0x%04x %d: does not match current domain %pv\n",
> +                vdev->name, op(dir), addr, size, d);
> +
> +        ASSERT_UNREACHABLE();
> +        goto out;
> +    }
> +
> +    reg = addr - vdev->io_addr;
> +    if ( !IS_ALIGNED(reg, size) )
> +    {
> +        pr_err("%s: %c 0x%04x %d: unaligned access\n",
> +                vdev->name, op(dir), addr, size);
> +        goto out;
> +    }
> +
> +    dlab = ns16550_dlab_get(vdev);
> +    if ( reg >= NS16550_REGS_NUM )
> +    {
> +        pr_err("%s: %c io 0x%04x %d: DLAB=%d %02"PRIx32" 0x%08"PRIx32": not implemented\n",
> +                vdev->name, op(dir), addr, size,
> +                dlab, reg, *data);
> +        goto out;
> +    }
> +
> +    spin_lock(&vdev->lock);
> +
> +    if ( dir == IOREQ_WRITE )
> +    {
> +        pr_debug("%s: %c 0x%04x %d: DLAB=%d %02"PRIx32" 0x%08"PRIx32"\n",
> +                 vdev->name, op(dir), addr, size,
> +                 dlab, reg, *data);
> +        rc = ns16550_io_write(vdev, reg, size, data);
> +    }
> +    else
> +    {
> +        rc = ns16550_io_read(vdev, reg, size, data);
> +        pr_debug("%s: %c 0x%04x %d: DLAB=%d %02"PRIx32" 0x%08"PRIx32"\n",
> +                 vdev->name, op(dir), addr, size,
> +                 dlab, reg, *data);
> +    }
> +    if ( rc < 0 )
> +        pr_err("%s: %c 0x%04x %d: DLAB=%d %02"PRIx32" 0x%08"PRIx32": unsupported access\n",
> +               vdev->name, op(dir), addr, size,
> +               dlab, reg, *data);
> +
> +    spin_unlock(&vdev->lock);
> +#ifdef CONFIG_VUART_NS16550_DEBUG
> +    ns16550_dump_state(d);
> +#endif
> +
> +out:
> +    rcu_unlock_domain(d);
> +
> +    return X86EMUL_OKAY;
> +#undef op
> +}
> +
> +static int cf_check ns16550_init(struct domain *d,
> +                                 struct vuart_params *params)
> +{
> +    const struct virtdev_desc *desc = &x86_pc_uarts[X86_PC_UART_IDX];
> +    const struct resource *r = desc->res;
> +    const uint16_t divisor = (UART_CLOCK_HZ / 115200) >> 4;
> +    struct vuart_ns16550 *vdev;
> +    int rc;
> +
> +    BUG_ON(d->arch.hvm.vuart);
> +
> +    if ( !is_hvm_domain(d) )
> +    {
> +        pr_err("%s: not an HVM domain\n", desc->name);
> +        return -ENOSYS;
> +    }
> +
> +    vdev = xvzalloc(typeof(*vdev));
> +    if ( !vdev )
> +    {
> +        pr_err("%s: failed to allocate memory\n", desc->name);
> +        return -ENOMEM;
> +    }
> +
> +    for_each_resource(r)
> +    {
> +        if ( r->type & IORESOURCE_IO )
> +        {
> +            /* Disallow sharing physical I/O port */
> +            rc = ioports_deny_access(d, r->addr, r->addr + r->size - 1);
> +            if ( rc )
> +            {
> +                pr_err("%s: virtual I/O port range [0x%04x"PRIx64"..0x%04x"PRIx64"]: conflict w/ physical range\n",
> +                        desc->name,
> +                        (unsigned int)r->addr,
> +                        (unsigned int)(r->addr + r->size - 1));
> +                return rc;
> +            }
> +
> +            register_portio_handler(d, r->addr, r->size, ns16550_io_handle);
> +
> +            vdev->io_addr = r->addr;
> +            vdev->io_size = r->size;
> +        }
> +        else if ( r->type & IORESOURCE_IRQ )
> +        {
> +            /* Disallow sharing physical IRQ */
> +            rc = irq_deny_access(d, r->addr);
> +            if ( rc )
> +            {
> +                pr_err("%s: virtual IRQ#%"PRIu64": conflict w/ physical IRQ: %d\n",
> +                        desc->name, r->addr, rc);
> +                return rc;
> +            }
> +
> +            vdev->irq = r->addr;
> +        }
> +        else
> +            ASSERT_UNREACHABLE();
> +    }
> +
> +    spin_lock_init(&vdev->lock);
> +
> +    vdev->owner = d;
> +    vdev->name = desc->name;
> +
> +    /* NB: report 115200 baud rate */
> +    vdev->regs[NS16550_REGS_NUM + UART_DLL] = divisor & 0xff;
> +    vdev->regs[NS16550_REGS_NUM + UART_DLM] = (divisor >> 8) & 0xff;
> +
> +    /* NS16550 shall assert UART_IIR_THR whenever transmitter is empty. */
> +    vdev->regs[NS16550_REGS_NUM + UART_IIR] = UART_IIR_THR;
> +
> +    d->arch.hvm.vuart = vdev;
> +
> +    spin_lock(&vdev->lock);
> +    ns16550_irq_check(vdev);
> +    spin_unlock(&vdev->lock);
> +
> +    return 0;
> +}
> +
> +static void cf_check ns16550_deinit(struct domain *d)
> +{
> +    struct vuart_ns16550 *vdev = d->arch.hvm.vuart;
> +
> +    if ( !vdev )
> +        return;
> +
> +    spin_lock(&vdev->lock);
> +
> +    ns16550_fifo_tx_flush(vdev);
> +
> +    spin_unlock(&vdev->lock);
> +
> +    XVFREE(d->arch.hvm.vuart);
> +}
> +
> +static int cf_check ns16550_put_rx(struct domain *d, char ch)
> +{
> +    struct vuart_ns16550 *vdev = d->arch.hvm.vuart;
> +    uint8_t *regs;
> +    uint8_t dlab;
> +    int rc;
> +
> +    ASSERT(d == vdev->owner);
> +    if ( !vdev )
> +        return -ENODEV;
> +
> +    spin_lock(&vdev->lock);
> +
> +    dlab = ns16550_dlab_get(vdev);
> +    regs = vdev->regs;
> +
> +    if ( dlab )
> +    {
> +        pr_debug("%s: THR/RBR access disabled: DLAB=1\n", vdev->name);
> +        rc = -EBUSY;
> +    }
> +    else if ( regs[UART_MCR] & UART_MCR_LOOP )
> +    {
> +        pr_debug("%s: THR/RBR access disabled: loopback mode\n", vdev->name);
> +        rc = -EBUSY;
> +    }
> +    else
> +    {
> +        uint8_t val = 0;
> +
> +        rc = ns16550_fifo_rx_putchar(vdev, ch);
> +        if ( rc == -ENOSPC )
> +            val |= UART_LSR_OE;
> +
> +        /* NB: UART_LSR_DR is also set when UART_LSR is accessed. */
> +        regs[UART_LSR] |= UART_LSR_DR | val;
> +
> +        /*
> +         * Echo the user input on Xen console iff Xen console input is owned
> +         * by NS16550 domain.
> +         * NB: use 'console_timestamps=none' to disable Xen timestamps.
> +         */
> +        if ( is_console_printable(ch) )
> +            guest_printk(d, "%c", ch);
> +
> +        /* FIXME: check FCR when to fire an interrupt */
> +        ns16550_irq_check(vdev);
> +    }
> +
> +    spin_unlock(&vdev->lock);
> +#ifdef CONFIG_VUART_NS16550_DEBUG
> +    ns16550_dump_state(d);
> +#endif
> +
> +    return rc;
> +}
> +
> +static const struct vuart_ops ns16550_ops = {
> +    .add_node   = NULL,
> +    .init       = ns16550_init,
> +    .deinit     = ns16550_deinit,
> +    .dump_state = ns16550_dump_state,
> +    .put_rx     = ns16550_put_rx,
> +};
> +
> +VUART_REGISTER(ns16550, &ns16550_ops);
> +
> +/*
> + * Local variables:
> + * mode: C
> + * c-file-style: "BSD"
> + * c-basic-offset: 4
> + * indent-tabs-mode: nil
> + * End:
> + */
> diff --git a/xen/common/emul/vuart/vuart.c b/xen/common/emul/vuart/vuart.c
> index 14a7f8bd8b79..7971813a723d 100644
> --- a/xen/common/emul/vuart/vuart.c
> +++ b/xen/common/emul/vuart/vuart.c
> @@ -99,6 +99,10 @@ bool domain_has_vuart(const struct domain *d)
>  {
>      uint32_t mask = 0;
>  
> +#ifdef CONFIG_VUART_NS16550
> +    mask |= XEN_X86_EMU_NS16550;
> +#endif
> +
>      return !!(d->emulation_flags & mask);
>  }
>  
> diff --git a/xen/include/public/arch-x86/xen.h b/xen/include/public/arch-x86/xen.h
> index fc2487986642..f905e1252c70 100644
> --- a/xen/include/public/arch-x86/xen.h
> +++ b/xen/include/public/arch-x86/xen.h
> @@ -283,13 +283,15 @@ struct xen_arch_domainconfig {
>  #define XEN_X86_EMU_USE_PIRQ        (1U<<_XEN_X86_EMU_USE_PIRQ)
>  #define _XEN_X86_EMU_VPCI           10
>  #define XEN_X86_EMU_VPCI            (1U<<_XEN_X86_EMU_VPCI)
> +#define _XEN_X86_EMU_NS16550        11
> +#define XEN_X86_EMU_NS16550         (1U<<_XEN_X86_EMU_NS16550)
>  
>  #define XEN_X86_EMU_ALL             (XEN_X86_EMU_LAPIC | XEN_X86_EMU_HPET |  \
>                                       XEN_X86_EMU_PM | XEN_X86_EMU_RTC |      \
>                                       XEN_X86_EMU_IOAPIC | XEN_X86_EMU_PIC |  \
>                                       XEN_X86_EMU_VGA | XEN_X86_EMU_IOMMU |   \
>                                       XEN_X86_EMU_PIT | XEN_X86_EMU_USE_PIRQ |\
> -                                     XEN_X86_EMU_VPCI)
> +                                     XEN_X86_EMU_VPCI | XEN_X86_EMU_NS16550)

libxl also consumes XEN_X86_EMU_ALL, and with the proposed change here
it will create all HVM domains with XEN_X86_EMU_NS16550, which I don't
think it's indented?

Overall I agree for Jan it would be better if this patch could be
split into somehow smaller units.  Is this something feasible?  We
don't want a patch for each register handle, but maybe you cna somehow
grup those into functional sections, so that patches can be < 250
lines?

Maybe you have already considered this approach and it wasn't
feasible?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 15:21:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 15:21:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071936.1435273 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujfx1-0002ON-T8; Wed, 06 Aug 2025 15:21:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071936.1435273; Wed, 06 Aug 2025 15:21: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 1ujfx1-0002OG-Q5; Wed, 06 Aug 2025 15:21:11 +0000
Received: by outflank-mailman (input) for mailman id 1071936;
 Wed, 06 Aug 2025 15:21:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kasG=2S=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1ujfx0-0002OA-D8
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 15:21:10 +0000
Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com
 [2a00:1450:4864:20::329])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f9dbab6b-72d8-11f0-b898-0df219b8e170;
 Wed, 06 Aug 2025 17:21:08 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-458bc3ce3beso219615e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 Aug 2025 08:21:08 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-459e586a011sm58055005e9.19.2025.08.06.08.21.06
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Aug 2025 08:21: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>
X-Inumbo-ID: f9dbab6b-72d8-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754493667; x=1755098467; 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=LFkt3LZ1PZeSOrFz8Ehh/G8gRUbh1lOJkQZ/mc4FHNI=;
        b=Ix25wE2lFTtDud/ZHhKt+64ja7IZj3bc5S9CCgPn9yYicnugXLBD9GKXgzOlPmZDhF
         PlqeDuZceY7VY0FItz8LP0JtIKWAtzVaqyc/ClqXNBV3UV/yMWvpV4MZ/F/5glQLKUxk
         vvEsy830coe48FcO6K3CLq+qmtClhvfKm9thg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754493667; x=1755098467;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=LFkt3LZ1PZeSOrFz8Ehh/G8gRUbh1lOJkQZ/mc4FHNI=;
        b=bDlltsEk5AKbfgO1BE2bsrnN947B1zKR5hwdSrJSDRSpOvTsk8EGddkWxdveAElSAD
         /aRKWbStUNycsWoZ8k0le3V6KbXpzeLLtIQZ9+HP2xWUzEWln5wcFqALJXlSWF+iVTrO
         0V3i76OzVQV+HVZqBrOsdjoFlTyGI95b34HEHGa9i23YHIf3rV1B37Af+arifKNUqosT
         jGpWkvCIb8/oMVXEUShjDw0C465jKXkvW9q3dNRrBpii+YbS6r4fJG2LJkaQLMzmrBiy
         wfzXSWl8zZGGy4yiBGJN6so9hpMdvZSyCVb3PXwscdli5VMQxCAtU8dgotcRAk6gpiMu
         RM3Q==
X-Gm-Message-State: AOJu0Yy6Vco+LS/ey6r3+xxg2be3m7+X0kYFLLzkfL/hRilmS29Axd1S
	sRmR+S4EwbuS3TLqEHBjuJsx/bMku+mBsf/0/9ytWge5M1+yPXxNeZIn57DepYJZzVo=
X-Gm-Gg: ASbGnctlLeCISQV5lR2QD/QILC0SedR7hZobUpuK+//mYvRWbNMz4kjaQ4SUIQ7KZ+R
	q1hsYGHzGw1d7qmi0JQbmq1wsDmSKXTBYfGTKi5Sj77+jN+H+qNPPtEOCeUqn578PWrFv1orm43
	3N9iaNgonL//tiqhAZjPl7Wr8NGMxBFRNdiVTOcBkfXWd43Qf8dE2c8msAkM20UOFDdpf+c5iKl
	cYDSodX4tmNT7OfUYBCWWCIZKnXktaSvXSD3Zuc4SS+YW2wkyFUBdDJ8vB2DuO5XU0QofRiJtVP
	KxRqMeQkG9n68CGqxp6Ld4tObeGhHvVmA3Qp6OlQUpRn+u+Ee2R47i8M7aJ5By26yVzGydFwWDc
	rY8lpEHqmSuY4Jvkm3L1nHqn4uLXRMwO3D+teBCC3l0do60803OOzofIgVOwfGWe6FWcxEutYlO
	A5
X-Google-Smtp-Source: AGHT+IFTSQU/2FyKTR1t/4aeMl2yGmvuQyIPZuYJ5l++MfwfTNmtxFa+9s4MtMiRJ3y0EPLv9ELx9Q==
X-Received: by 2002:a05:600c:1c88:b0:459:94a7:220f with SMTP id 5b1f17b1804b1-459ec7b9738mr4997615e9.26.1754493667373;
        Wed, 06 Aug 2025 08:21:07 -0700 (PDT)
Date: Wed, 6 Aug 2025 17:21:06 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com,
	anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org,
	michal.orzel@amd.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: Re: [PATCH v4 6/8] tools/xl: enable NS16550-compatible UART emulator
 for HVM (x86)
Message-ID: <aJNy4iP4t2c9xQ6_@macbook.local>
References: <20250731192130.3948419-1-dmukhin@ford.com>
 <20250731192130.3948419-7-dmukhin@ford.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20250731192130.3948419-7-dmukhin@ford.com>

On Thu, Jul 31, 2025 at 07:22:12PM +0000, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com> 
> 
> Enable UART emulator to be individually configured per HVM-domain.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
> Changes since v3:
> - new patch
> ---
>  docs/man/xl.cfg.5.pod.in             |  9 ++++--
>  tools/golang/xenlight/helpers.gen.go |  4 +--
>  tools/golang/xenlight/types.gen.go   |  3 +-
>  tools/libs/light/libxl_arm.c         | 26 ++++++++++++-----
>  tools/libs/light/libxl_create.c      |  2 +-
>  tools/libs/light/libxl_types.idl     |  3 +-
>  tools/libs/light/libxl_x86.c         | 42 ++++++++++++++++++++++++++++
>  tools/ocaml/libs/xc/xenctrl.ml       |  1 +
>  tools/ocaml/libs/xc/xenctrl.mli      |  1 +
>  tools/xl/xl_parse.c                  |  2 +-
>  xen/arch/x86/domain.c                |  5 ++--
>  11 files changed, 80 insertions(+), 18 deletions(-)
> 
> diff --git a/docs/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.in
> index 5362fb0e9a6f..e1d012274eaf 100644
> --- a/docs/man/xl.cfg.5.pod.in
> +++ b/docs/man/xl.cfg.5.pod.in
> @@ -3032,14 +3032,17 @@ the domain was created.
>  This requires hardware compatibility with the requested version, either
>  natively or via hardware backwards compatibility support.
>  
> -=item B<vuart="uart">
> +=item B<vuart=[ "sbsa_uart", "ns16550" ]>
>  
>  To enable vuart console, user must specify the following option in the
> -VM config file:
> +VM config file, e.g:
>  
> +```
>  vuart = "sbsa_uart"
> +```
>  
> -Currently, only the "sbsa_uart" model is supported for ARM.
> +Currently, "sbsa_uart" (ARM) and "ns16550" (x86) are the only supported
> +UART models.
>  
>  =back
>  
> diff --git a/tools/golang/xenlight/helpers.gen.go b/tools/golang/xenlight/helpers.gen.go
> index b43aad7d0064..e56af8a8a8c5 100644
> --- a/tools/golang/xenlight/helpers.gen.go
> +++ b/tools/golang/xenlight/helpers.gen.go
> @@ -1160,7 +1160,6 @@ x.TypeUnion = &typePvh
>  default:
>  return fmt.Errorf("invalid union key '%v'", x.Type)}
>  x.ArchArm.GicVersion = GicVersion(xc.arch_arm.gic_version)
> -x.ArchArm.Vuart = VuartType(xc.arch_arm.vuart)
>  x.ArchArm.SveVl = SveType(xc.arch_arm.sve_vl)
>  x.ArchArm.NrSpis = uint32(xc.arch_arm.nr_spis)
>  if err := x.ArchX86.MsrRelaxed.fromC(&xc.arch_x86.msr_relaxed);err != nil {
> @@ -1169,6 +1168,7 @@ return fmt.Errorf("converting field ArchX86.MsrRelaxed: %v", err)
>  x.Altp2M = Altp2MMode(xc.altp2m)
>  x.Altp2MCount = uint32(xc.altp2m_count)
>  x.VmtraceBufKb = int(xc.vmtrace_buf_kb)
> +x.Vuart = VuartType(xc.vuart)
>  if err := x.Vpmu.fromC(&xc.vpmu);err != nil {
>  return fmt.Errorf("converting field Vpmu: %v", err)
>  }
> @@ -1695,7 +1695,6 @@ break
>  default:
>  return fmt.Errorf("invalid union key '%v'", x.Type)}
>  xc.arch_arm.gic_version = C.libxl_gic_version(x.ArchArm.GicVersion)
> -xc.arch_arm.vuart = C.libxl_vuart_type(x.ArchArm.Vuart)
>  xc.arch_arm.sve_vl = C.libxl_sve_type(x.ArchArm.SveVl)
>  xc.arch_arm.nr_spis = C.uint32_t(x.ArchArm.NrSpis)
>  if err := x.ArchX86.MsrRelaxed.toC(&xc.arch_x86.msr_relaxed); err != nil {
> @@ -1704,6 +1703,7 @@ return fmt.Errorf("converting field ArchX86.MsrRelaxed: %v", err)
>  xc.altp2m = C.libxl_altp2m_mode(x.Altp2M)
>  xc.altp2m_count = C.uint32_t(x.Altp2MCount)
>  xc.vmtrace_buf_kb = C.int(x.VmtraceBufKb)
> +xc.vuart = C.libxl_vuart_type(x.Vuart)
>  if err := x.Vpmu.toC(&xc.vpmu); err != nil {
>  return fmt.Errorf("converting field Vpmu: %v", err)
>  }
> diff --git a/tools/golang/xenlight/types.gen.go b/tools/golang/xenlight/types.gen.go
> index 4777f528b52c..2f4153d2510b 100644
> --- a/tools/golang/xenlight/types.gen.go
> +++ b/tools/golang/xenlight/types.gen.go
> @@ -253,6 +253,7 @@ type VuartType int
>  const(
>  VuartTypeUnknown VuartType = 0
>  VuartTypeSbsaUart VuartType = 1
> +VuartTypeNs16550 VuartType = 2
>  )
>  
>  type VkbBackend int
> @@ -596,7 +597,6 @@ Type DomainType
>  TypeUnion DomainBuildInfoTypeUnion
>  ArchArm struct {
>  GicVersion GicVersion
> -Vuart VuartType
>  SveVl SveType
>  NrSpis uint32
>  }
> @@ -608,6 +608,7 @@ Altp2MCount uint32
>  VmtraceBufKb int
>  Vpmu Defbool
>  TrapUnmappedAccesses Defbool
> +Vuart VuartType
>  }
>  
>  type DomainBuildInfoTypeUnion interface {
> diff --git a/tools/libs/light/libxl_arm.c b/tools/libs/light/libxl_arm.c
> index 4a19a8d22bdf..f4721b24763c 100644
> --- a/tools/libs/light/libxl_arm.c
> +++ b/tools/libs/light/libxl_arm.c
> @@ -92,14 +92,26 @@ int libxl__arch_domain_prepare_config(libxl__gc *gc,
>      uint32_t virtio_mmio_irq = GUEST_VIRTIO_MMIO_SPI_FIRST;
>      int rc;
>  
> -    /*
> -     * If pl011 vuart is enabled then increment the nr_spis to allow allocation
> -     * of SPI VIRQ for pl011.
> -     */
> -    if (d_config->b_info.arch_arm.vuart == LIBXL_VUART_TYPE_SBSA_UART) {
> +    switch ( d_config->b_info.vuart )
> +    {
> +    case LIBXL_VUART_TYPE_SBSA_UART:
> +        /*
> +         * If pl011 vuart is enabled then increment the nr_spis to allow
> +         * allocation of SPI VIRQ for pl011.
> +         */
>          nr_spis += (GUEST_VPL011_SPI - 32) + 1;
>          vuart_irq = GUEST_VPL011_SPI;
>          vuart_enabled = true;
> +        break;
> +
> +    case LIBXL_VUART_TYPE_NS16550:
> +        LOG(ERROR, "unsupported UART emulator %d\n", d_config->b_info.vuart);
> +        abort();
> +        break;
> +
> +    case LIBXL_VUART_TYPE_UNKNOWN:
> +    default:
> +        break;
>      }
>  
>      for (i = 0; i < d_config->num_disks; i++) {
> @@ -1372,7 +1384,7 @@ next_resize:
>          FDT( make_timer_node(gc, fdt, ainfo, state->clock_frequency) );
>          FDT( make_hypervisor_node(gc, fdt, vers) );
>  
> -        if (info->arch_arm.vuart == LIBXL_VUART_TYPE_SBSA_UART)
> +        if (info->vuart == LIBXL_VUART_TYPE_SBSA_UART)
>              FDT( make_vpl011_uart_node(gc, fdt, ainfo, dom) );
>  
>          if (info->tee == LIBXL_TEE_TYPE_OPTEE)
> @@ -1725,7 +1737,7 @@ int libxl__arch_build_dom_finish(libxl__gc *gc,
>  {
>      int rc = 0, ret;
>  
> -    if (info->arch_arm.vuart != LIBXL_VUART_TYPE_SBSA_UART) {
> +    if (info->vuart != LIBXL_VUART_TYPE_SBSA_UART) {
>          rc = 0;
>          goto out;
>      }
> diff --git a/tools/libs/light/libxl_create.c b/tools/libs/light/libxl_create.c
> index 4042ae1a8957..cfd7e827867a 100644
> --- a/tools/libs/light/libxl_create.c
> +++ b/tools/libs/light/libxl_create.c
> @@ -1815,7 +1815,7 @@ static void domcreate_launch_dm(libxl__egc *egc, libxl__multidev *multidev,
>                                &d_config->vfbs[i]);
>          }
>  
> -        if (d_config->b_info.arch_arm.vuart == LIBXL_VUART_TYPE_SBSA_UART) {
> +        if (d_config->b_info.vuart == LIBXL_VUART_TYPE_SBSA_UART) {
>              init_console_info(gc, &vuart, 0);
>              vuart.backend_domid = state->console_domid;
>              libxl__device_vuart_add(gc, domid, &vuart, state);
> diff --git a/tools/libs/light/libxl_types.idl b/tools/libs/light/libxl_types.idl
> index fe251649f346..fd60c2b26764 100644
> --- a/tools/libs/light/libxl_types.idl
> +++ b/tools/libs/light/libxl_types.idl
> @@ -276,6 +276,7 @@ libxl_checkpointed_stream = Enumeration("checkpointed_stream", [
>  libxl_vuart_type = Enumeration("vuart_type", [
>      (0, "unknown"),
>      (1, "sbsa_uart"),
> +    (2, "ns16550"),
>      ])
>  
>  libxl_vkb_backend = Enumeration("vkb_backend", [
> @@ -722,7 +723,6 @@ libxl_domain_build_info = Struct("domain_build_info",[
>  
>  
>      ("arch_arm", Struct(None, [("gic_version", libxl_gic_version),
> -                               ("vuart", libxl_vuart_type),
>                                 ("sve_vl", libxl_sve_type),
>                                 ("nr_spis", uint32, {'init_val': 'LIBXL_NR_SPIS_DEFAULT'}),
>                                ])),
> @@ -739,6 +739,7 @@ libxl_domain_build_info = Struct("domain_build_info",[
>  
>      ("vpmu", libxl_defbool),
>      ("trap_unmapped_accesses", libxl_defbool),
> +    ("vuart", libxl_vuart_type),
>  
>      ], dir=DIR_IN,
>         copy_deprecated_fn="libxl__domain_build_info_copy_deprecated",
> diff --git a/tools/libs/light/libxl_x86.c b/tools/libs/light/libxl_x86.c
> index 60d4e8661c93..0f039ca65a88 100644
> --- a/tools/libs/light/libxl_x86.c
> +++ b/tools/libs/light/libxl_x86.c
> @@ -2,6 +2,45 @@
>  #include "libxl_arch.h"
>  #include <xen/arch-x86/cpuid.h>
>  
> +static void libxl__arch_domain_vuart_assert(
> +    libxl__gc *gc,
> +    libxl_domain_config *d_config,
> +    struct xen_domctl_createdomain *config)
> +{
> +    LOG(ERROR, "unsupported UART emulator %d\n", d_config->b_info.vuart);
> +    abort();
> +}
> +
> +static void libxl__arch_domain_vuart_unsupported(
> +    libxl__gc *gc,
> +    libxl_domain_config *d_config,
> +    struct xen_domctl_createdomain *config)
> +{
> +    if ( d_config->b_info.vuart != LIBXL_VUART_TYPE_UNKNOWN )
> +        libxl__arch_domain_vuart_assert(gc, d_config, config);
> +}
> +
> +static void libxl__arch_domain_vuart_enable(
> +    libxl__gc *gc,
> +    libxl_domain_config *d_config,
> +    struct xen_domctl_createdomain *config)
> +{
> +    switch ( d_config->b_info.vuart )
> +    {
> +    case LIBXL_VUART_TYPE_SBSA_UART:
> +        libxl__arch_domain_vuart_assert(gc, d_config, config);
> +        break;
> +
> +    case LIBXL_VUART_TYPE_NS16550:
> +        config->arch.emulation_flags |= XEN_X86_EMU_NS16550;
> +        break;
> +
> +    case LIBXL_VUART_TYPE_UNKNOWN:
> +    default:
> +        break;
> +    }
> +}
> +
>  int libxl__arch_domain_prepare_config(libxl__gc *gc,
>                                        libxl_domain_config *d_config,
>                                        struct xen_domctl_createdomain *config)
> @@ -9,14 +48,17 @@ int libxl__arch_domain_prepare_config(libxl__gc *gc,
>      switch(d_config->c_info.type) {
>      case LIBXL_DOMAIN_TYPE_HVM:
>          config->arch.emulation_flags = (XEN_X86_EMU_ALL & ~XEN_X86_EMU_VPCI);
> +        libxl__arch_domain_vuart_enable(gc, d_config, config);

As mentioned in the previous commit, I don't think this works as
expected.  You have added XEN_X86_EMU_NS16550 to XEN_X86_EMU_ALL, and
hence you need to subtract it from the mask as it's done with VPCI.

>          if (!libxl_defbool_val(d_config->b_info.u.hvm.pirq))
>              config->arch.emulation_flags &= ~XEN_X86_EMU_USE_PIRQ;
>          break;
>      case LIBXL_DOMAIN_TYPE_PVH:
>          config->arch.emulation_flags = XEN_X86_EMU_LAPIC;
> +        libxl__arch_domain_vuart_unsupported(gc, d_config, config);
>          break;
>      case LIBXL_DOMAIN_TYPE_PV:
>          config->arch.emulation_flags = 0;
> +        libxl__arch_domain_vuart_unsupported(gc, d_config, config);
>          break;
>      default:
>          abort();
> diff --git a/tools/ocaml/libs/xc/xenctrl.ml b/tools/ocaml/libs/xc/xenctrl.ml
> index 7e1aabad6cba..4539e78bb283 100644
> --- a/tools/ocaml/libs/xc/xenctrl.ml
> +++ b/tools/ocaml/libs/xc/xenctrl.ml
> @@ -47,6 +47,7 @@ type x86_arch_emulation_flags =
>    | X86_EMU_PIT
>    | X86_EMU_USE_PIRQ
>    | X86_EMU_VPCI
> +  | X86_EMU_NS16550
>  
>  type x86_arch_misc_flags =
>    | X86_MSR_RELAXED
> diff --git a/tools/ocaml/libs/xc/xenctrl.mli b/tools/ocaml/libs/xc/xenctrl.mli
> index f44dba61aeab..66a98180d99b 100644
> --- a/tools/ocaml/libs/xc/xenctrl.mli
> +++ b/tools/ocaml/libs/xc/xenctrl.mli
> @@ -41,6 +41,7 @@ type x86_arch_emulation_flags =
>    | X86_EMU_PIT
>    | X86_EMU_USE_PIRQ
>    | X86_EMU_VPCI
> +  | X86_EMU_NS16550
>  
>  type x86_arch_misc_flags =
>    | X86_MSR_RELAXED
> diff --git a/tools/xl/xl_parse.c b/tools/xl/xl_parse.c
> index 28cdbf07c213..b0d266b5bf63 100644
> --- a/tools/xl/xl_parse.c
> +++ b/tools/xl/xl_parse.c
> @@ -1498,7 +1498,7 @@ void parse_config_data(const char *config_source,
>          b_info->max_vcpus = l;
>  
>      if (!xlu_cfg_get_string(config, "vuart", &buf, 0)) {
> -        if (libxl_vuart_type_from_string(buf, &b_info->arch_arm.vuart)) {
> +        if (libxl_vuart_type_from_string(buf, &b_info->vuart)) {
>              fprintf(stderr, "ERROR: invalid value \"%s\" for \"vuart\"\n",
>                      buf);
>              exit(1);
> diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
> index 7fd4f7a831dc..6a010a509a60 100644
> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -780,9 +780,10 @@ static bool emulation_flags_ok(const struct domain *d, uint32_t emflags)
>          /* HVM domU */
>          {
>              .caps   = CAP_HVM | CAP_DOMU,
> -            .min    = X86_EMU_ALL & ~(X86_EMU_VPCI | X86_EMU_USE_PIRQ),
> +            .min    = X86_EMU_ALL & ~(X86_EMU_VPCI | X86_EMU_USE_PIRQ |
> +                                      X86_EMU_NS16550),
>              /* HVM PIRQ feature is user-selectable. */
> -            .opt    = X86_EMU_USE_PIRQ,
> +            .opt    = X86_EMU_USE_PIRQ | X86_EMU_NS16550,

Does this need to be part of the patch that adds X86_EMU_NS16550 into
X86_EMU_ALL, as to not break domain creation in the interim?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 15:55:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 15:55:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071953.1435283 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujgTw-0006mr-CW; Wed, 06 Aug 2025 15:55:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071953.1435283; Wed, 06 Aug 2025 15:55:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujgTw-0006mk-9T; Wed, 06 Aug 2025 15:55:12 +0000
Received: by outflank-mailman (input) for mailman id 1071953;
 Wed, 06 Aug 2025 15:55:11 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=z+Xv=2S=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujgTu-0006ma-Vc
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 15:55:11 +0000
Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com
 [2a00:1450:4864:20::530])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id baa94805-72dd-11f0-a323-13f23c93f187;
 Wed, 06 Aug 2025 17:55:09 +0200 (CEST)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-61580eb7995so168426a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 06 Aug 2025 08:55: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
 4fb4d7f45d1cf-6175ee53a1esm4837953a12.10.2025.08.06.08.55.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Aug 2025 08:55: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>
X-Inumbo-ID: baa94805-72dd-11f0-a323-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754495709; x=1755100509; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=nBrcVeEOKjMpJx0BDYd/GLhJIcFDGo13DW/xz+p/iMQ=;
        b=gufF9GidO9cs9QRcfsU7p0zuhat6Oy0s6pBnUrTtgbLdcHv4qkbqXtHjxNhLnhul00
         +/ZjIUGwn6rjNS4vrocvt/7R+Dj37AH8o0phZqfscrFk9jbWasN3WZVBnkcWHnaLpFuZ
         ivdiq7Ws+TQrV1kwBjxwiY1TiaBrvQkSF4DxsKF0pULbNoQjiHKFen9/MPrsQuG7qug1
         iXVVzDytkBJBnYf/uKm1wMODrHuCXU4B/wjo0oVOJxh9o66Q7pt/uA9QBHBETPVrDx0t
         DxLt3Jm15QBUtyeGKO7yZ8ULdK77oSw9HoCEWqkURjBIZoGcqoQC0V6h+KEaKGK+BLoR
         DLhg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754495709; x=1755100509;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nBrcVeEOKjMpJx0BDYd/GLhJIcFDGo13DW/xz+p/iMQ=;
        b=qkghzrRu5Qbx5BzHh0Z2chRG4ZOkyQoDHbD4jjkxyRo506Q4iMUQl2dev8voMUxKIe
         T+7GW7UpkshwC4d+Nn/CtACjzmDqH2qN0yC6nODQUBhy0XVAfAabkwfstL7uRBQ7M3Vz
         FDg726x858akBAlAgLFU8JPAl7/P3Wvm0gvIjfYPllxQ9OOA/sAI0Il2eM95P06gCuTT
         XtONDcdhvq4UghgTAFCv50oFGdLxyDvAj+z4PzA4ZW2HCVdGNx3YOXmgTDW+lSYPAY9m
         YMprrVo+ruk7x1RtWhwcRdjOuCu9ENpHaRTSYwq1yF1tbSM/XmjkhstK4AcuGRg4h1jg
         +dlA==
X-Forwarded-Encrypted: i=1; AJvYcCXyj6KDngDn/eLkBFqXseulpInyG+bYowjIX8G2qG87mSe52g28lq14ftEXM4S56UzNGFWvP54gGcs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzqyI//JR5uFm3Pzv4txjvGwUzraZRLp9+jV+wpoEfICjy631Oc
	WehOTFcfNvDOOTqRX6CmOV7JAOIw1I31QeJM5EI8xCnWufaCO3OMr3nWKiWFdaAY5w==
X-Gm-Gg: ASbGncuZfbrmR+HVZnEenf/ZgYYjrp/T5iPy751L5nOIy1AigoQ7G8/qXE5WCvlcmWg
	huCOlKz5J2VOpq6a8jbz/VbtqSS7gL+yfzRB+LHWseW/R3+Ar/B5Q6kodaTdtVYCBWurY34aTTP
	LZzkuSs7FIHUXXvpwpfZTC2fB4veAHAOKcAG7pkW2amAkWYf0/q9aWCGB75AGYnmo5iatVX/kh1
	zB1zmsRjGGm9CK9b0Qd2WgKd98UwUbdCM+L/nHnEMRdCuI299IUm9ggrJAvj5ipTuIQZyTewLbI
	JqMouVvAjZteiixh/LhizKp6wVILLAj+P4vamil4bdX6wmzeHUXaoSZqH+BzuxBuTVexbrm+IMr
	vBdXpmeENe6bAfNNEmkWF1upOVN9DRmugsqlfB+M7p3zSgmfTOD6o37FZCJMRhBPdkwEhgtRrzz
	1+pyp51hA=
X-Google-Smtp-Source: AGHT+IH56MoFg1l/9roICGzaF4ifaXFqYu19Qw+TeioT/NsSWCrG3mIxolTzeMggykSjZV7JoHMfuA==
X-Received: by 2002:a05:6402:34d2:b0:601:470b:6d47 with SMTP id 4fb4d7f45d1cf-617b377d61amr50331a12.1.1754495708922;
        Wed, 06 Aug 2025 08:55:08 -0700 (PDT)
Message-ID: <98dc796e-bb14-435e-8c19-53e5de60cc43@suse.com>
Date: Wed, 6 Aug 2025 17:55:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 13/20] xen/riscv: Implement p2m_free_subtree() and
 related helpers
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <41845723a7b0e3efd09095d13e57aace6f7747ef.1753973161.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: <41845723a7b0e3efd09095d13e57aace6f7747ef.1753973161.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 31.07.2025 17:58, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/include/asm/p2m.h
> +++ b/xen/arch/riscv/include/asm/p2m.h
> @@ -79,10 +79,20 @@ typedef enum {
>      p2m_ext_storage,    /* Following types'll be stored outsude PTE bits: */
>      p2m_grant_map_rw,   /* Read/write grant mapping */
>      p2m_grant_map_ro,   /* Read-only grant mapping */
> +    p2m_map_foreign_rw, /* Read/write RAM pages from foreign domain */
> +    p2m_map_foreign_ro, /* Read-only RAM pages from foreign domain */
>  } p2m_type_t;
>  
>  #define p2m_mmio_direct p2m_mmio_direct_io
>  
> +/*
> + * Bits 8 and 9 are reserved for use by supervisor software;
> + * the implementation shall ignore this field.
> + * We are going to use to save in these bits frequently used types to avoid
> + * get/set of a type from radix tree.
> + */
> +#define P2M_TYPE_PTE_BITS_MASK  0x300
> +
>  /* We use bitmaps and mask to handle groups of types */
>  #define p2m_to_mask(t_) BIT(t_, UL)
>  
> @@ -93,10 +103,16 @@ typedef enum {
>  #define P2M_GRANT_TYPES (p2m_to_mask(p2m_grant_map_rw) | \
>                           p2m_to_mask(p2m_grant_map_ro))
>  
> +                            /* Foreign mappings types */

Nit: Why so far to the right?

> --- a/xen/arch/riscv/p2m.c
> +++ b/xen/arch/riscv/p2m.c
> @@ -197,6 +197,16 @@ static pte_t *p2m_get_root_pointer(struct p2m_domain *p2m, gfn_t gfn)
>      return __map_domain_page(p2m->root + root_table_indx);
>  }
>  
> +static p2m_type_t p2m_get_type(const pte_t pte)
> +{
> +    p2m_type_t type = MASK_EXTR(pte.pte, P2M_TYPE_PTE_BITS_MASK);
> +
> +    if ( type == p2m_ext_storage )
> +        panic("unimplemented\n");

That is, as per p2m.h additions you pretend to add support for foreign types
here, but then you don't?

> @@ -248,11 +258,136 @@ static int p2m_next_level(struct p2m_domain *p2m, bool alloc_tbl,
>      return P2M_TABLE_MAP_NONE;
>  }
>  
> +static void p2m_put_foreign_page(struct page_info *pg)
> +{
> +    /*
> +     * Itâ€™s safe to call put_page() here because arch_flush_tlb_mask()
> +     * will be invoked if the page is reallocated before the end of
> +     * this loop, which will trigger a flush of the guest TLBs.
> +     */
> +    put_page(pg);
> +}

How can one know the comment is true? arch_flush_tlb_mask() still lives in
stubs.c, and hence what it is eventually going to do (something like Arm's
vs more like x86'es) is entirely unknown right now.

> +/* Put any references on the single 4K page referenced by mfn. */
> +static void p2m_put_4k_page(mfn_t mfn, p2m_type_t type)
> +{
> +    /* TODO: Handle other p2m types */
> +
> +    if ( p2m_is_foreign(type) )
> +    {
> +        ASSERT(mfn_valid(mfn));
> +        p2m_put_foreign_page(mfn_to_page(mfn));
> +    }
> +
> +    /*
> +     * Detect the xenheap page and mark the stored GFN as invalid.
> +     * We don't free the underlying page until the guest requested to do so.
> +     * So we only need to tell the page is not mapped anymore in the P2M by
> +     * marking the stored GFN as invalid.
> +     */
> +    if ( p2m_is_ram(type) && is_xen_heap_mfn(mfn) )
> +        page_set_xenheap_gfn(mfn_to_page(mfn), INVALID_GFN);

Isn't this for grants? p2m_is_ram() doesn't cover p2m_grant_map_*.

> +}
> +
> +/* Put any references on the superpage referenced by mfn. */
> +static void p2m_put_2m_superpage(mfn_t mfn, p2m_type_t type)
> +{
> +    struct page_info *pg;
> +    unsigned int i;
> +
> +    ASSERT(mfn_valid(mfn));
> +
> +    pg = mfn_to_page(mfn);
> +
> +    for ( i = 0; i < XEN_PT_ENTRIES; i++, pg++ )
> +        p2m_put_foreign_page(pg);
> +}

In p2m_put_4k_page() you check the type, whereas here you don't.

> +/* Put any references on the page referenced by pte. */
> +static void p2m_put_page(const pte_t pte, unsigned int level)
> +{
> +    mfn_t mfn = pte_get_mfn(pte);
> +    p2m_type_t p2m_type = p2m_get_type(pte);
> +
> +    ASSERT(pte_is_valid(pte));
> +
> +    /*
> +     * TODO: Currently we don't handle level 2 super-page, Xen is not
> +     * preemptible and therefore some work is needed to handle such
> +     * superpages, for which at some point Xen might end up freeing memory
> +     * and therefore for such a big mapping it could end up in a very long
> +     * operation.
> +     */
> +    switch ( level )
> +    {
> +    case 1:
> +        return p2m_put_2m_superpage(mfn, p2m_type);
> +
> +    case 0:
> +        return p2m_put_4k_page(mfn, p2m_type);
> +    }

Yet despite the comment not even an assertion for level 2 and up?

>  /* Free pte sub-tree behind an entry */
>  static void p2m_free_subtree(struct p2m_domain *p2m,
>                               pte_t entry, unsigned int level)
>  {
> -    panic("%s: hasn't been implemented yet\n", __func__);
> +    unsigned int i;
> +    pte_t *table;
> +    mfn_t mfn;
> +    struct page_info *pg;
> +
> +    /* Nothing to do if the entry is invalid. */
> +    if ( !pte_is_valid(entry) )
> +        return;
> +
> +    if ( pte_is_superpage(entry, level) || (level == 0) )

Perhaps swap the two conditions around?

> +    {
> +#ifdef CONFIG_IOREQ_SERVER
> +        /*
> +         * If this gets called then either the entry was replaced by an entry
> +         * with a different base (valid case) or the shattering of a superpage
> +         * has failed (error case).
> +         * So, at worst, the spurious mapcache invalidation might be sent.
> +         */
> +        if ( p2m_is_ram(p2m_get_type(p2m, entry)) &&
> +             domain_has_ioreq_server(p2m->domain) )
> +            ioreq_request_mapcache_invalidate(p2m->domain);
> +#endif
> +
> +        p2m_put_page(entry, level);
> +
> +        return;
> +    }
> +
> +    table = map_domain_page(pte_get_mfn(entry));
> +    for ( i = 0; i < XEN_PT_ENTRIES; i++ )
> +        p2m_free_subtree(p2m, table[i], level - 1);

In p2m_put_page() you comment towards concerns for level >= 2; no similar
concerns for the resulting recursion here?

> +    unmap_domain_page(table);
> +
> +    /*
> +     * Make sure all the references in the TLB have been removed before
> +     * freing the intermediate page table.
> +     * XXX: Should we defer the free of the page table to avoid the
> +     * flush?
> +     */
> +    p2m_tlb_flush_sync(p2m);
> +
> +    mfn = pte_get_mfn(entry);
> +    ASSERT(mfn_valid(mfn));
> +
> +    pg = mfn_to_page(mfn);
> +
> +    page_list_del(pg, &p2m->pages);
> +    p2m_free_page(p2m, pg);

Once again I wonder whether this code path was actually tested: p2m_free_page()
also invokes page_list_del(), and double deletions typically won't end very
well.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 16:24:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 16:24:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1071991.1435313 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujgvw-0003el-UA; Wed, 06 Aug 2025 16:24:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1071991.1435313; Wed, 06 Aug 2025 16:24: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 1ujgvw-0003ed-Qh; Wed, 06 Aug 2025 16:24:08 +0000
Received: by outflank-mailman (input) for mailman id 1071991;
 Wed, 06 Aug 2025 16:24:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ctQb=2S=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1ujgvv-0003eX-3L
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 16:24:07 +0000
Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com
 [2a00:1450:4864:20::532])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c4a052b9-72e1-11f0-b898-0df219b8e170;
 Wed, 06 Aug 2025 18:24:04 +0200 (CEST)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-6156a162537so80813a12.2
 for <xen-devel@lists.xenproject.org>; Wed, 06 Aug 2025 09:24:04 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a0df10asm1123223666b.59.2025.08.06.09.24.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Aug 2025 09:24: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>
X-Inumbo-ID: c4a052b9-72e1-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754497444; x=1755102244; darn=lists.xenproject.org;
        h=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=9ybvpIqwuF3ePcDmzIsNZ3US31Obwf8zrNOm6OAeNzk=;
        b=AhOMeUhcmuxRrWbssZato4NxwMDHeIkaWareNig9a1ggYoiDqp6pKUD+rsAg0jzj64
         bLrEAjTSplBtYaQ5jhvGX+DdDU6Ug7qeWsPjYruv4lPa6c0tRIGoSNYr1hOhc1FcOrQ2
         OmGrA+tUj/s5318qglysmmMlDE9nU/8gZPWOHw4cnQC9X9kJJ6ft0ykRzbCO1pgPq1OP
         NBqBvi/lolHp0CT7FBD9l380lF9OGQkHUtj6WO1LzrokGp8k/HC56bXQ0jgyqTxJK33c
         9NRh5WrD7TdJ7zIDFFwSaBGnge6BXXedtybkjBqDJl88C/0aUn4CNB7k4fh1MnEmjbRP
         SkKQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754497444; x=1755102244;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=9ybvpIqwuF3ePcDmzIsNZ3US31Obwf8zrNOm6OAeNzk=;
        b=UUoygKtPefMNZNV7Pd8epfURnpr22b2kjJIrY/3sNbNI6OffwOcm3jLB8joX30gds6
         iYRzxf/vwwSIN+nZymvPe67XyrMQa60bLhmeqDfU7MJhHcunaaK0GN8kQvji9BKErfb2
         rQSO83BXA0nNs1Y+2/4Fegx6FI+6U7Vtj/xlbXyQXBX4lD4qmbeCuF5ns0DVzrJ3Dp67
         1bFSicAZy6jolUvKfhxPvAOJGeOHexs8HJYJgQm9EClEGb6gAeTB+B3vQxufvHTCdVlU
         hIToXMaLy4LqgmqsRXn7dL5bMcrqnzb188mx7lSecydRRQSJEnm7e0BlDYhNk6XQGWSU
         I/8A==
X-Forwarded-Encrypted: i=1; AJvYcCXgbY1Kj/8JcLo4GUa/nhg2K/rRp7VZQmEzSHlNC6fCSBKIIRPcGJ8wtiy4T0KzZauxZhNtJM2m1mE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwFZNjXp5C1dcCUkA65wBEPUqc3d9ZXgBbXj8XxWPMUr+WlV+ua
	SoKt0+J3iIO67oxCqCqF00hlN9fecsSCq3KSk+EO3rAEY5eA9rRmNU+U
X-Gm-Gg: ASbGncuLXgIwqEllTP0U8Vy1mqH233hxYNr+BdmgLywXBH569aMokZBOohAX7uRjUNS
	y9OWGQMaAJFk9KPwKHBT/YEWW1hOpeNIUbkcIuYpIrphcCzXV0bqk/PUbenDqY/s0ancq1NYaL4
	v6XrZz/hrTLKBL/TUTpCe/BlRWwVJ6/PEqTssIf2VG2wSaRZFfiaaZvDFIUgPAj7hlTr8b/4Uom
	ronSAq4A+nGKl/VvypHXpvxN2pQL4yOE3f/NRpOIbayuSnQXQq+Ar3gp11IH2yKRpuaEGrcCQkm
	amuUyPKa9PiA+Ec+vO5Z5x2h9QeWEe9CoEOHRwDKeGFWh2Qxu+7gApktvyiSEBk7E44hskafxpQ
	mK7Z4LKFcRC4wM1gX5NZk2Df4/OpyGsYPg7F70FAMN4FytfzacchnRg1DmNeV0KOZl88wxDA=
X-Google-Smtp-Source: AGHT+IGqoDhrgVbtGfJKw3tz4Q4Z6R5ChG85hv7yLSdlZ+L6Chss+MTBJpYeXOjJXtgUHAzLABmSFQ==
X-Received: by 2002:a17:907:9623:b0:af9:34a0:1b20 with SMTP id a640c23a62f3a-af992a60ee5mr270036566b.5.1754497443287;
        Wed, 06 Aug 2025 09:24:03 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------iqbAeYP49t7P0mDsFTqvVc3X"
Message-ID: <cc6bb8a7-ed22-4d3e-a352-fa305f0ea56a@gmail.com>
Date: Wed, 6 Aug 2025 18:24:02 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 03/20] xen/riscv: introduce VMID allocation and
 manegement
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <d61f5f831ac8045055a1775ee710d4f2fe8dcc26.1753973161.git.oleksii.kurochko@gmail.com>
 <cd1a0c64-49d7-4ae1-8dec-b3b1de3f1d09@suse.com>
 <bcf4c3aa-5c09-4171-a4f5-85110d6e634f@gmail.com>
 <6ddee574-6fe2-4de7-b000-a3af0b2c9d12@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <6ddee574-6fe2-4de7-b000-a3af0b2c9d12@suse.com>

This is a multi-part message in MIME format.
--------------iqbAeYP49t7P0mDsFTqvVc3X
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 8/6/25 2:05 PM, Jan Beulich wrote:
> On 06.08.2025 13:33, Oleksii Kurochko wrote:
>> On 8/4/25 5:19 PM, Jan Beulich wrote:
>>> On 31.07.2025 17:58, Oleksii Kurochko wrote:
>>>> @@ -148,6 +149,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
>>>>    
>>>>        console_init_postirq();
>>>>    
>>>> +    vmid_init();
>>> This lives here only temporarily, I assume? Every hart will need to execute
>>> it, and hence (like we have it on x86) this may want to be a central place
>>> elsewhere.
>> I havenâ€™t checked how it is done on x86; I probably should.
>>
>> I planned to call it for each hart separately during secondary hart bring-up,
>> since accessing the|hgatp| register of a hart is required to detect|VMIDLEN|.
>> Therefore,|vmid_init()| should be called for secondary harts when their
>> initialization code starts executing.
> But is this going to be the only per-hart thing that will need doing? Otherwise
> the same larger "container" function may want calling instead.

Yes, it is going to be the only per-hart operation.

There is|__cpu_up()| (not yet upstreamed [1]), which calls
|sbi_hsm_hart_start(hartid, boot_addr, hsm_data)| to start a hart, and I planned
to place|vmid_init()| somewhere in the code executed at|boot_addr|.

[1]https://gitlab.com/xen-project/people/olkur/xen/-/blob/latest/xen/arch/riscv/smpboot.c#L40

>>>> +{
>>>> +    unsigned long vmid_bits;
>>> Why "long" (also for the function return type)?
>> Because csr_read() returns unsigned long as HGATP register has
>> 'unsigned long' length.
> Oh, right, I should have commented on the function return type only.
> Yet then I also can't resist stating that this kind of use of a variable,
> which initially is assigned a value that doesn't really fit its name, is
> easily misleading towards giving such comments.
>
>> But it could be done in this way:
>>       csr_write(CSR_HGATP, old | HGATP_VMID_MASK);
>>       vmid_bits =  MASK_EXTR(csr_read(CSR_HGATP), HGATP_VMID_MASK);
>>       vmid_bits = ffs_g(vmid_bits);
>>       csr_write(CSR_HGATP, old);
>> And then use uint16_t for vmid_bits and use uin16_t as a return type.
> Please check ./CODING_STYLE again as to the use of fixed-width types.

I meant unsigned short, uint16_t was just short to write. I'll try to be
more specific.

>
>>>> +    unsigned long old;
>>>> +
>>>> +    /* Figure-out number of VMID bits in HW */
>>>> +    old = csr_read(CSR_HGATP);
>>>> +
>>>> +    csr_write(CSR_HGATP, old | HGATP_VMID_MASK);
>>>> +    vmid_bits = csr_read(CSR_HGATP);
>>>> +    vmid_bits =  MASK_EXTR(vmid_bits, HGATP_VMID_MASK);
>>> Nit: Stray blank.
>>>
>>>> +    vmid_bits = flsl(vmid_bits);
>>>> +    csr_write(CSR_HGATP, old);
>>>> +
>>>> +    /*
>>>> +     * We polluted local TLB so flush all guest TLB as
>>>> +     * a speculative access can happen at any time.
>>>> +     */
>>>> +    local_hfence_gvma_all();
>>> There's no guest running. If you wrote hgat.MODE as zero, as per my
>>> understanding now new TLB entries could even purely theoretically appear.
>> It could be an issue (or, at least, it is recommended) when hgatp.MODE is
>> changed:
>>    If hgatp.MODE is changed for a given VMID, an HFENCE.GVMA with rs1=x0
>>    (and rs2 set to either x0 or the VMID) must be executed to order subsequent
>>    guest translations with the MODE changeâ€”even if the old MODE or new MODE
>>    is Bare.
>> On other hand it is guaranteed that, at least, on Reset (and so I assume
>> for power on) that:
>>    If the hypervisor extension is implemented, the hgatp.MODE and vsatp.MODE
>>    fields are reset to 0.
>>
>> So it seems like if no guest is ran then there is no need even to write
>> hgatp.MODE as zero, but it might be sense to do that explicitly just to
>> be sure.
>>
>> I thought it was possible to have a running guest and perform a CPU hotplug.
> But that guest will run on another hart.
>
>> In that case, I expect that during the hotplug,|vmidlen_detect()| will be
>> called and return the|vmid_bits| value, which is used as the active VMID.
>> At that moment, the local TLB could be speculatively polluted, I think.
>> Likely, it makes sense to call vmidlen_detect() only once for each hart
>> during initial bringup.
> That may bring you more problems than it solves. You'd need to stash away
> the value originally read somewhere. And that somewhere isn't per-CPU data.
>
>>> In fact, with no guest running (yet) I'm having a hard time seeing why
>>> you shouldn't be able to simply write the register with just
>>> HGATP_VMID_MASK, i.e. without OR-ing in "old". It's even questionable
>>> whether "old" needs restoring; writing plain zero afterwards ought to
>>> suffice. You're in charcge of the register, after all.
>> It make sense (but I don't know if it is a possible case) to be sure that
>> HGATP.MODE remains the same, so there is no need to have TLB flush. If
>> HGATP.MODE is changed then it will be needed to do TLB flush as I mentioned
>> above.
>>
>> If we agreed to keep local_hfence_gvma_all() then I think it isn't really
>> any sense to restore 'old' or OR-ing it with HGATP_VMID_MASK.
>>
>> Generally if 'old' is guaranteed to be zero (and, probably, it makes sense
>> to check that in vmidlen_detect() and panic if it isn't zero) and if
>> vmidlen_detect() function will be called before any guest domain(s) will
>> be ran then I could agree that we don't need local_hfence_gvma_all() here.
>>
>> As an option we can do local_hfence_gvma_all() only if 'old' value wasn't
>> set to zero.
>>
>> Does it make sense?
> Well - I'd like the pre-conditions to be understood better. For example, can
> a hart really speculate into guest mode, when the hart is only in the
> process of being brought up?

I couldn't explicit words that a hart can't speculate into guest mode
either on bring up or during its work.

But there are some moments in the spec which tells:
   Implementations with virtual memory are permitted to perform address
   translations speculatively and earlier than required by an explicit
   memory access, and are permitted to cache them in address translation
   cache structuresâ€”including possibly caching the identity mappings from
   effective address to physical address used in Bare translation modes and
   M-mode.
And here:
   Implementations may also execute the address-translation algorithm
   speculatively at any time, for any virtual address, as long as satp is
   active (as defined in Section 10.1.11). Such speculative executions have
   the effect of pre-populating the address-translation cache.
Where it is explicitly mentioned that speculation can happen in *any time*.
And at the same time:
   Speculative executions of the address-translation algorithm behave as
   non-speculative executions of the algorithm do, except that they must
   not set the dirty bit for a PTE, they must not trigger an exception,
   and they must not create address-translation cache entries if those
   entries would have been invalidated by any SFENCE.VMA instruction
   executed by the hart since the speculative execution of the algorithm began.
What I read as if TLB was empty before it will stay empty.

Also, despite of the fact here it is mentioned that when V=0 two-stage address
translation is inactivated:
   The current virtualization mode, denoted V, indicates whether the hart is
   currently executing in a guest. When V=1, the hart is either in virtual
   S-mode (VS-mode), or in virtual U-mode (VU-mode) atop a guest OS running
   in VS-mode. When V=0, the hart is either in M-mode, in HS-mode, or in
   U-mode atop an OS running in HS-mode. The virtualization mode also
   indicates whether two-stage address translation is active (V=1) or
   inactive (V=0).
But on the same side, writing to hgatp register activates it:
   The hgatp register is considered active for the purposes of
   the address-translation algorithm unless the effective privilege mode
   is U and hstatus.HU=0.
And if so + considering that speculation could happen at any time, and
we are in HS-mode, not it U mode then I would say that it could really
speculate into guest mode.


>
>>>> +    data->max_vmid = BIT(vmid_len, U) - 1;
>>>> +    data->disabled = !opt_vmid_enabled || (vmid_len <= 1);
>>> Actually, what exactly does it mean that "VMIDs are disabled"? There's
>>> no enable bit that I could find anywhere. Isn't it rather that in this
>>> case you need to arrange to flush always on VM entry (or always after a
>>> P2M change, depending how the TLB is split between guest and host use)?
>> "VMIDs are disabled" here means that TLB flush will happen each time p2m
>> is changed.
> That's better described as "VMIDs aren't used" then?

It sounds a little bit just like an opposite to "disabled" (i.e. means
basically the same), but I am okay to use "used" instead.

>
>>>> +    if ( g_disabled != data->disabled )
>>>> +    {
>>>> +        printk("%s: VMIDs %sabled.\n", __func__,
>>>> +               data->disabled ? "dis" : "en");
>>>> +        if ( !g_disabled )
>>>> +            g_disabled = data->disabled;
>>> This doesn't match x86 code. g_disabled is a tristate there, which only
>>> the boot CPU would ever write to.
>> Why g_disabled is written only by boot CPU? Does x86 have only two options
>> or VMIDs are enabled for all CPUs or it is disabled for all of them?
> Did you look at the x86 code again, or the patch that I sent for it?
>
>> For RISC-V as I mentioned above it is needed to check all harts as the spec.
>> doesn't explicitly mention that VMIDLEN is equal for all harts...
> Even if in practice x86 systems are symmetric in this regard, you will
> have seen that we support varying values there as well. Up to and
> including ASIDs being in use on some CPUs, but not on others. So that
> code can serve as a reference for you, I think.
>
>>> A clear shortcoming of the x86 code (that you copied) is that the log
>>> message doesn't identify the CPU in question. A sequence of "disabled"
>>> and "enabled" could thus result, without the last one (or in fact any
>>> one) making clear what the overall state is. I think you want to avoid
>>> this from the beginning.
>> ... Thereby it seems like declaration of g_disabled should be moved outside
>> vmid_init() function and add a new function which will return g_disabled
>> value (or just make g_disabled not static and rename to something like
>> g_vmids_disabled).
> No, why? While I didn't Cc you on my patch submission, I specifically
> replied to it with you (alone) on the To: list, just so you can look
> there first before suggesting (sorry) odd things.

I haven't received this e-mail, but I was able to find it on lore.kernel.org.
Thanks.

~ Oleksii


--------------iqbAeYP49t7P0mDsFTqvVc3X
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/6/25 2:05 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:6ddee574-6fe2-4de7-b000-a3af0b2c9d12@suse.com">
      <pre wrap="" class="moz-quote-pre">On 06.08.2025 13:33, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">On 8/4/25 5:19 PM, Jan Beulich wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">On 31.07.2025 17:58, Oleksii Kurochko wrote:
</pre>
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">@@ -148,6 +149,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
  
      console_init_postirq();
  
+    vmid_init();
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">This lives here only temporarily, I assume? Every hart will need to execute
it, and hence (like we have it on x86) this may want to be a central place
elsewhere.
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
I havenâ€™t checked how it is done on x86; I probably should.

I planned to call it for each hart separately during secondary hart bring-up,
since accessing the|hgatp| register of a hart is required to detect|VMIDLEN|.
Therefore,|vmid_init()| should be called for secondary harts when their
initialization code starts executing.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
But is this going to be the only per-hart thing that will need doing? Otherwise
the same larger "container" function may want calling instead.</pre>
    </blockquote>
    <pre data-start="51" data-end="104">Yes, it is going to be the only per-hart operation.

</pre>
    <pre data-start="106" data-end="320">There is <code data-start="115"
    data-end="127">__cpu_up()</code> (not yet upstreamed [1]), which calls
<code data-start="168" data-end="217">sbi_hsm_hart_start(hartid, boot_addr, hsm_data)</code> to start a hart, and I planned
to place <code data-start="258" data-end="271">vmid_init()</code> somewhere in the code executed at <code
    data-start="306" data-end="317">boot_addr</code>.

[1] <a class="moz-txt-link-freetext" href="https://gitlab.com/xen-project/people/olkur/xen/-/blob/latest/xen/arch/riscv/smpboot.c#L40">https://gitlab.com/xen-project/people/olkur/xen/-/blob/latest/xen/arch/riscv/smpboot.c#L40</a>
</pre>
    <pre>
</pre>
    <blockquote type="cite"
      cite="mid:6ddee574-6fe2-4de7-b000-a3af0b2c9d12@suse.com">
      <pre wrap="" class="moz-quote-pre">
</pre>
      <blockquote type="cite">
        <blockquote type="cite">
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">+{
+    unsigned long vmid_bits;
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">Why "long" (also for the function return type)?
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
Because csr_read() returns unsigned long as HGATP register has
'unsigned long' length.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Oh, right, I should have commented on the function return type only.
Yet then I also can't resist stating that this kind of use of a variable,
which initially is assigned a value that doesn't really fit its name, is
easily misleading towards giving such comments.

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">But it could be done in this way:
     csr_write(CSR_HGATP, old | HGATP_VMID_MASK);
     vmid_bits =  MASK_EXTR(csr_read(CSR_HGATP), HGATP_VMID_MASK);
     vmid_bits = ffs_g(vmid_bits);
     csr_write(CSR_HGATP, old);
And then use uint16_t for vmid_bits and use uin16_t as a return type.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Please check ./CODING_STYLE again as to the use of fixed-width types.</pre>
    </blockquote>
    <pre>I meant unsigned short, uint16_t was just short to write. I'll try to be
more specific.

</pre>
    <blockquote type="cite"
      cite="mid:6ddee574-6fe2-4de7-b000-a3af0b2c9d12@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <blockquote type="cite">
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">+    unsigned long old;
+
+    /* Figure-out number of VMID bits in HW */
+    old = csr_read(CSR_HGATP);
+
+    csr_write(CSR_HGATP, old | HGATP_VMID_MASK);
+    vmid_bits = csr_read(CSR_HGATP);
+    vmid_bits =  MASK_EXTR(vmid_bits, HGATP_VMID_MASK);
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">Nit: Stray blank.

</pre>
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">+    vmid_bits = flsl(vmid_bits);
+    csr_write(CSR_HGATP, old);
+
+    /*
+     * We polluted local TLB so flush all guest TLB as
+     * a speculative access can happen at any time.
+     */
+    local_hfence_gvma_all();
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">There's no guest running. If you wrote hgat.MODE as zero, as per my
understanding now new TLB entries could even purely theoretically appear.
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
It could be an issue (or, at least, it is recommended) when hgatp.MODE is
changed:
  If hgatp.MODE is changed for a given VMID, an HFENCE.GVMA with rs1=x0
  (and rs2 set to either x0 or the VMID) must be executed to order subsequent
  guest translations with the MODE changeâ€”even if the old MODE or new MODE
  is Bare.
On other hand it is guaranteed that, at least, on Reset (and so I assume
for power on) that:
  If the hypervisor extension is implemented, the hgatp.MODE and vsatp.MODE
  fields are reset to 0.

So it seems like if no guest is ran then there is no need even to write
hgatp.MODE as zero, but it might be sense to do that explicitly just to
be sure.

I thought it was possible to have a running guest and perform a CPU hotplug.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
But that guest will run on another hart.

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">In that case, I expect that during the hotplug,|vmidlen_detect()| will be
called and return the|vmid_bits| value, which is used as the active VMID.
At that moment, the local TLB could be speculatively polluted, I think.
Likely, it makes sense to call vmidlen_detect() only once for each hart
during initial bringup.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
That may bring you more problems than it solves. You'd need to stash away
the value originally read somewhere. And that somewhere isn't per-CPU data.

</pre>
      <blockquote type="cite">
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">In fact, with no guest running (yet) I'm having a hard time seeing why
you shouldn't be able to simply write the register with just
HGATP_VMID_MASK, i.e. without OR-ing in "old". It's even questionable
whether "old" needs restoring; writing plain zero afterwards ought to
suffice. You're in charcge of the register, after all.
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
It make sense (but I don't know if it is a possible case) to be sure that
HGATP.MODE remains the same, so there is no need to have TLB flush. If
HGATP.MODE is changed then it will be needed to do TLB flush as I mentioned
above.

If we agreed to keep local_hfence_gvma_all() then I think it isn't really
any sense to restore 'old' or OR-ing it with HGATP_VMID_MASK.

Generally if 'old' is guaranteed to be zero (and, probably, it makes sense
to check that in vmidlen_detect() and panic if it isn't zero) and if
vmidlen_detect() function will be called before any guest domain(s) will
be ran then I could agree that we don't need local_hfence_gvma_all() here.

As an option we can do local_hfence_gvma_all() only if 'old' value wasn't
set to zero.

Does it make sense?
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Well - I'd like the pre-conditions to be understood better. For example, can
a hart really speculate into guest mode, when the hart is only in the
process of being brought up?</pre>
    </blockquote>
    <pre>I couldn't explicit words that a hart can't speculate into guest mode
either on bring up or during its work.

But there are some moments in the spec which tells:
  Implementations with virtual memory are permitted to perform address
  translations speculatively and earlier than required by an explicit
  memory access, and are permitted to cache them in address translation
  cache structuresâ€”including possibly caching the identity mappings from
  effective address to physical address used in Bare translation modes and
  M-mode.
And here:
  Implementations may also execute the address-translation algorithm
  speculatively at any time, for any virtual address, as long as satp is
  active (as defined in Section 10.1.11). Such speculative executions have
  the effect of pre-populating the address-translation cache.
Where it is explicitly mentioned that speculation can happen in *any time*.
And at the same time:
  Speculative executions of the address-translation algorithm behave as
  non-speculative executions of the algorithm do, except that they must
  not set the dirty bit for a PTE, they must not trigger an exception,
  and they must not create address-translation cache entries if those
  entries would have been invalidated by any SFENCE.VMA instruction
  executed by the hart since the speculative execution of the algorithm began.
What I read as if TLB was empty before it will stay empty.

Also, despite of the fact here it is mentioned that when V=0 two-stage address
translation is inactivated:
  The current virtualization mode, denoted V, indicates whether the hart is
  currently executing in a guest. When V=1, the hart is either in virtual
  S-mode (VS-mode), or in virtual U-mode (VU-mode) atop a guest OS running
  in VS-mode. When V=0, the hart is either in M-mode, in HS-mode, or in
  U-mode atop an OS running in HS-mode. The virtualization mode also
  indicates whether two-stage address translation is active (V=1) or
  inactive (V=0).
But on the same side, writing to hgatp register activates it:
  The hgatp register is considered active for the purposes of
  the address-translation algorithm unless the effective privilege mode
  is U and hstatus.HU=0.
And if so + considering that speculation could happen at any time, and
we are in HS-mode, not it U mode then I would say that it could really
speculate into guest mode.
</pre>
    <p><br>
    </p>
    <blockquote type="cite"
      cite="mid:6ddee574-6fe2-4de7-b000-a3af0b2c9d12@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <blockquote type="cite">
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">+    data-&gt;max_vmid = BIT(vmid_len, U) - 1;
+    data-&gt;disabled = !opt_vmid_enabled || (vmid_len &lt;= 1);
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">Actually, what exactly does it mean that "VMIDs are disabled"? There's
no enable bit that I could find anywhere. Isn't it rather that in this
case you need to arrange to flush always on VM entry (or always after a
P2M change, depending how the TLB is split between guest and host use)?
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
"VMIDs are disabled" here means that TLB flush will happen each time p2m
is changed.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
That's better described as "VMIDs aren't used" then?</pre>
    </blockquote>
    <pre>It sounds a little bit just like an opposite to "disabled" (i.e. means
basically the same), but I am okay to use "used" instead.

</pre>
    <blockquote type="cite"
      cite="mid:6ddee574-6fe2-4de7-b000-a3af0b2c9d12@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <blockquote type="cite">
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">+    if ( g_disabled != data-&gt;disabled )
+    {
+        printk("%s: VMIDs %sabled.\n", __func__,
+               data-&gt;disabled ? "dis" : "en");
+        if ( !g_disabled )
+            g_disabled = data-&gt;disabled;
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">This doesn't match x86 code. g_disabled is a tristate there, which only
the boot CPU would ever write to.
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
Why g_disabled is written only by boot CPU? Does x86 have only two options
or VMIDs are enabled for all CPUs or it is disabled for all of them?
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Did you look at the x86 code again, or the patch that I sent for it?

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">For RISC-V as I mentioned above it is needed to check all harts as the spec.
doesn't explicitly mention that VMIDLEN is equal for all harts...
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Even if in practice x86 systems are symmetric in this regard, you will
have seen that we support varying values there as well. Up to and
including ASIDs being in use on some CPUs, but not on others. So that
code can serve as a reference for you, I think.

</pre>
      <blockquote type="cite">
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">A clear shortcoming of the x86 code (that you copied) is that the log
message doesn't identify the CPU in question. A sequence of "disabled"
and "enabled" could thus result, without the last one (or in fact any
one) making clear what the overall state is. I think you want to avoid
this from the beginning.
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
... Thereby it seems like declaration of g_disabled should be moved outside
vmid_init() function and add a new function which will return g_disabled
value (or just make g_disabled not static and rename to something like
g_vmids_disabled).
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
No, why? While I didn't Cc you on my patch submission, I specifically
replied to it with you (alone) on the To: list, just so you can look
there first before suggesting (sorry) odd things.</pre>
    </blockquote>
    <pre>I haven't received this e-mail, but I was able to find it on lore.kernel.org.
Thanks.

~ Oleksii</pre>
    <br>
  </body>
</html>

--------------iqbAeYP49t7P0mDsFTqvVc3X--


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 16:50:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 16:50:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072004.1435322 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujhLF-000810-1S; Wed, 06 Aug 2025 16:50:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072004.1435322; Wed, 06 Aug 2025 16:50:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujhLE-00080t-V4; Wed, 06 Aug 2025 16:50:16 +0000
Received: by outflank-mailman (input) for mailman id 1072004;
 Wed, 06 Aug 2025 16:50:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=hpqR=2S=gmail.com=demiobenour@srs-se1.protection.inumbo.net>)
 id 1ujhLD-00080d-Vq
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 16:50:16 +0000
Received: from mail-qk1-x72b.google.com (mail-qk1-x72b.google.com
 [2607:f8b0:4864:20::72b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6c36ff96-72e5-11f0-a323-13f23c93f187;
 Wed, 06 Aug 2025 18:50:14 +0200 (CEST)
Received: by mail-qk1-x72b.google.com with SMTP id
 af79cd13be357-7e6974a290eso7574585a.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 Aug 2025 09:50:14 -0700 (PDT)
Received: from [10.138.10.6] ([89.187.178.201])
 by smtp.gmail.com with ESMTPSA id
 af79cd13be357-7e80cae9dfesm252198885a.38.2025.08.06.09.50.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Aug 2025 09:50: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>
X-Inumbo-ID: 6c36ff96-72e5-11f0-a323-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754499013; x=1755103813; 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=VG+W8uWmInvftlR3w8Y4VyBuBMGZhNln7nCCLmljhZs=;
        b=ZATkEofW5uhbY0dUZAbTWxO4mFvFy/o+6zd4sWPKZcDEdEtiseT+hH6wQjM9VgeBRY
         SLIXd6XreOq1nqfFjJ0SI09l02iymrkR+YINQrcf2L/fH9jIxgsAqYkrebdJsb96O7Ji
         Ax5VhViDupX7fBp6T71zSkhlmLouWB8StyNjJNDwsh/yr5eugT8lC5lxV8ZkJY8RWE8K
         qSNx9Q+flwN7S8bzpLjpXMVF/vaZLtnCPVAppD4Nv4vJXacOkveT75R0Tb9h7PgTgDIm
         LFWH2ZX8fNOPL+j0woEBsIN7CfpOhPAhrS4Rk0PYFNC3HrjmuM9X1kPDzGFbpmz3zXG7
         2VxQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754499013; x=1755103813;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=VG+W8uWmInvftlR3w8Y4VyBuBMGZhNln7nCCLmljhZs=;
        b=ZI/NDnxjBVHa9Hh2FAyRPRXXe9+GrQ3ZX7a2rmHLZV6FwRjTkuV1AXC2PcE8UcvX5l
         qSV234epWe6Ugey9ZLKp4nQip7NYU7Dt2lUDGOfJfM0qvxO9pQMYW4BlRza04AavjlKe
         KweQzBqg5jgWRJXeNIeXJ7XYdBbLI0gJhw7KaMdxROyzyDFFnU0EuL3Oec7Fffz8U1La
         vvHkYlsFBnOoTg1HqhC6wvDwM6so6IyeD+iE3zF/9/nIGWAwarCFOnKz0PkhyxHOFskU
         FPSq+j6SCRleUChX+m7nvUQ35h46+26Q7QIVMbkGhh1NdtC/+Ypg/9Ko7g5Wd3icoqJ7
         61Fw==
X-Forwarded-Encrypted: i=1; AJvYcCXWP1myPfoNbEbHyMh8LqY9JKYRy2/krNMhnfcDkL+8TxGmlyOeAMbyMHXzbTkjcHOB+3nyFbZVP5w=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy8hONt6uF9ggd9B70JieW5k8cA06ny6RCUA0mxLEVdAa8XzNFg
	cLE2Pe9aSb8bEEycrryG35c+JJoRkQZet74m8jAv3aQlQEckdNmfxPjE
X-Gm-Gg: ASbGncth1Mu4XXLwZQkKOIWH0ZD66AbL8Z9S8yETyIiouk1St+00N0L5xc1v1DyXT2h
	KGyKfyMws13mb2und0VpQjBX3+oVPkU7BX878IMGyi5GERFtbBWuLleZ8T/Ht+NlznlkhEMtIny
	oC6SNqgiYMTbJ/DXfzvJmNDekSw3HIPRyhanY7qQcr6+piNKRebYToaJQcj+XxFTIQ3CdOHJ9Fm
	GN3ckfBH9nMPGo4xn4orOxZ/SJ4ynKCBDxWY6fWU9B9/ymmwuXgdpwHk/KJACDOV5/p81fWZWgy
	OGBjGDxlMP4vVoAV7H2Pq7VoXirrIKlWzISrjXPAFA0T7OWmCZbu8hvL65izchQCEDHiKg7dGU0
	YIDEuAy4KNqNKmLKEqHC/sTPhV08=
X-Google-Smtp-Source: AGHT+IGvcX2241OSrh1kxne8gwdJTs/Wbkh3j46bPJalIMSl/pidxKZiRWma/YcHvD9b9jv6XTF7bA==
X-Received: by 2002:a05:620a:2b8d:b0:7e6:9274:2b2d with SMTP id af79cd13be357-7e814ed19d0mr630842585a.50.1754499012870;
        Wed, 06 Aug 2025 09:50:12 -0700 (PDT)
Message-ID: <14e1c224-c648-41bb-97c6-ec63596bd38b@gmail.com>
Date: Wed, 6 Aug 2025 12:50:02 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 03/20] xen/riscv: introduce VMID allocation and
 manegement
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <d61f5f831ac8045055a1775ee710d4f2fe8dcc26.1753973161.git.oleksii.kurochko@gmail.com>
 <cd1a0c64-49d7-4ae1-8dec-b3b1de3f1d09@suse.com>
 <bcf4c3aa-5c09-4171-a4f5-85110d6e634f@gmail.com>
 <6ddee574-6fe2-4de7-b000-a3af0b2c9d12@suse.com>
 <cc6bb8a7-ed22-4d3e-a352-fa305f0ea56a@gmail.com>
Content-Language: en-US
From: Demi Marie Obenour <demiobenour@gmail.com>
Autocrypt: addr=demiobenour@gmail.com; keydata=
 xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49yB+l2nipd
 aq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYfbWpr/si88QKgyGSV
 Z7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/UorR+FaSuVwT7rqzGrTlscnT
 DlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7MMPCJwI8JpPlBedRpe9tfVyfu3euTPLPx
 wcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9Hzx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR
 6h3nBc3eyuZ+q62HS1pJ5EvUT1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl
 5FMWo8TCniHynNXsBtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2
 Bkg1b//r6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
 9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nSm9BBff0N
 m0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQABzTxEZW1pIE1hcmll
 IE9iZW5vdXIgKGxvdmVyIG9mIGNvZGluZykgPGRlbWlvYmVub3VyQGdtYWlsLmNvbT7CwXgE
 EwECACIFAlp+A0oCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJELKItV//nCLBhr8Q
 AK/xrb4wyi71xII2hkFBpT59ObLN+32FQT7R3lbZRjVFjc6yMUjOb1H/hJVxx+yo5gsSj5LS
 9AwggioUSrcUKldfA/PKKai2mzTlUDxTcF3vKx6iMXKA6AqwAw4B57ZEJoMM6egm57TV19kz
 PMc879NV2nc6+elaKl+/kbVeD3qvBuEwsTe2Do3HAAdrfUG/j9erwIk6gha/Hp9yZlCnPTX+
 VK+xifQqt8RtMqS5R/S8z0msJMI/ajNU03kFjOpqrYziv6OZLJ5cuKb3bZU5aoaRQRDzkFIR
 6aqtFLTohTo20QywXwRa39uFaOT/0YMpNyel0kdOszFOykTEGI2u+kja35g9TkH90kkBTG+a
 EWttIht0Hy6YFmwjcAxisSakBuHnHuMSOiyRQLu43ej2+mDWgItLZ48Mu0C3IG1seeQDjEYP
 tqvyZ6bGkf2Vj+L6wLoLLIhRZxQOedqArIk/Sb2SzQYuxN44IDRt+3ZcDqsPppoKcxSyd1Ny
 2tpvjYJXlfKmOYLhTWs8nwlAlSHX/c/jz/ywwf7eSvGknToo1Y0VpRtoxMaKW1nvH0OeCSVJ
 itfRP7YbiRVc2aNqWPCSgtqHAuVraBRbAFLKh9d2rKFB3BmynTUpc1BQLJP8+D5oNyb8Ts4x
 Xd3iV/uD8JLGJfYZIR7oGWFLP4uZ3tkneDfYzsFNBFp+A0oBEAC9ynZI9LU+uJkMeEJeJyQ/
 8VFkCJQPQZEsIGzOTlPnwvVna0AS86n2Z+rK7R/usYs5iJCZ55/JISWd8xD57ue0eB47bcJv
 VqGlObI2DEG8TwaW0O0duRhDgzMEL4t1KdRAepIESBEA/iPpI4gfUbVEIEQuqdqQyO4GAe+M
 kD0Hy5JH/0qgFmbaSegNTdQg5iqYjRZ3ttiswalql1/iSyv1WYeC1OAs+2BLOAT2NEggSiVO
 txEfgewsQtCWi8H1SoirakIfo45Hz0tk/Ad9ZWh2PvOGt97Ka85o4TLJxgJJqGEnqcFUZnJJ
 riwoaRIS8N2C8/nEM53jb1sH0gYddMU3QxY7dYNLIUrRKQeNkF30dK7V6JRH7pleRlf+wQcN
 fRAIUrNlatj9TxwivQrKnC9aIFFHEy/0mAgtrQShcMRmMgVlRoOA5B8RTulRLCmkafvwuhs6
 dCxN0GNAORIVVFxjx9Vn7OqYPgwiofZ6SbEl0hgPyWBQvE85klFLZLoj7p+joDY1XNQztmfA
 rnJ9x+YV4igjWImINAZSlmEcYtd+xy3Li/8oeYDAqrsnrOjb+WvGhCykJk4urBog2LNtcyCj
 kTs7F+WeXGUo0NDhbd3Z6AyFfqeF7uJ3D5hlpX2nI9no/ugPrrTVoVZAgrrnNz0iZG2DVx46
 x913pVKHl5mlYQARAQABwsFfBBgBAgAJBQJafgNKAhsMAAoJELKItV//nCLBwNIP/AiIHE8b
 oIqReFQyaMzxq6lE4YZCZNj65B/nkDOvodSiwfwjjVVE2V3iEzxMHbgyTCGA67+Bo/d5aQGj
 gn0TPtsGzelyQHipaUzEyrsceUGWYoKXYyVWKEfyh0cDfnd9diAm3VeNqchtcMpoehETH8fr
 RHnJdBcjf112PzQSdKC6kqU0Q196c4Vp5HDOQfNiDnTf7gZSj0BraHOByy9LEDCLhQiCmr+2
 E0rW4tBtDAn2HkT9uf32ZGqJCn1O+2uVfFhGu6vPE5qkqrbSE8TG+03H8ecU2q50zgHWPdHM
 OBvy3EhzfAh2VmOSTcRK+tSUe/u3wdLRDPwv/DTzGI36Kgky9MsDC5gpIwNbOJP2G/q1wT1o
 Gkw4IXfWv2ufWiXqJ+k7HEi2N1sree7Dy9KBCqb+ca1vFhYPDJfhP75I/VnzHVssZ/rYZ9+5
 1yDoUABoNdJNSGUYl+Yh9Pw9pE3Kt4EFzUlFZWbE4xKL/NPno+z4J9aWemLLszcYz/u3XnbO
 vUSQHSrmfOzX3cV4yfmjM5lewgSstoxGyTx2M8enslgdXhPthZlDnTnOT+C+OTsh8+m5tos8
 HQjaPM01MKBiAqdPgksm1wu2DrrwUi6ChRVTUBcj6+/9IJ81H2P2gJk3Ls3AVIxIffLoY34E
 +MYSfkEjBz0E8CLOcAw7JIwAaeBT
In-Reply-To: <cc6bb8a7-ed22-4d3e-a352-fa305f0ea56a@gmail.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------HTYytyCmaazj52Hiyr2VYmAF"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------HTYytyCmaazj52Hiyr2VYmAF
Content-Type: multipart/mixed; boundary="------------UCSiGg9IZeyNJvXl8IjE07zq";
 protected-headers="v1"
From: Demi Marie Obenour <demiobenour@gmail.com>
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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
Message-ID: <14e1c224-c648-41bb-97c6-ec63596bd38b@gmail.com>
Subject: Re: [PATCH v3 03/20] xen/riscv: introduce VMID allocation and
 manegement
References: <cover.1753973161.git.oleksii.kurochko@gmail.com>
 <d61f5f831ac8045055a1775ee710d4f2fe8dcc26.1753973161.git.oleksii.kurochko@gmail.com>
 <cd1a0c64-49d7-4ae1-8dec-b3b1de3f1d09@suse.com>
 <bcf4c3aa-5c09-4171-a4f5-85110d6e634f@gmail.com>
 <6ddee574-6fe2-4de7-b000-a3af0b2c9d12@suse.com>
 <cc6bb8a7-ed22-4d3e-a352-fa305f0ea56a@gmail.com>
In-Reply-To: <cc6bb8a7-ed22-4d3e-a352-fa305f0ea56a@gmail.com>

--------------UCSiGg9IZeyNJvXl8IjE07zq
Content-Type: multipart/mixed; boundary="------------UAOgisYUERiBA07qRNHzbgMk"

--------------UAOgisYUERiBA07qRNHzbgMk
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On 8/6/25 12:24, Oleksii Kurochko wrote:
>=20
> On 8/6/25 2:05 PM, Jan Beulich wrote:
>> On 06.08.2025 13:33, Oleksii Kurochko wrote:
>>> On 8/4/25 5:19 PM, Jan Beulich wrote:
>>>> On 31.07.2025 17:58, Oleksii Kurochko wrote:
>>>>> @@ -148,6 +149,8 @@ void __init noreturn start_xen(unsigned long bo=
otcpu_id,
>>>>>   =20
>>>>>        console_init_postirq();
>>>>>   =20
>>>>> +    vmid_init();
>>>> This lives here only temporarily, I assume? Every hart will need to =
execute
>>>> it, and hence (like we have it on x86) this may want to be a central=
 place
>>>> elsewhere.
>>> I haven=E2=80=99t checked how it is done on x86; I probably should.
>>>
>>> I planned to call it for each hart separately during secondary hart b=
ring-up,
>>> since accessing the|hgatp| register of a hart is required to detect|V=
MIDLEN|.
>>> Therefore,|vmid_init()| should be called for secondary harts when the=
ir
>>> initialization code starts executing.
>> But is this going to be the only per-hart thing that will need doing? =
Otherwise
>> the same larger "container" function may want calling instead.
>=20
> Yes, it is going to be the only per-hart operation.
>=20
> There is|__cpu_up()| (not yet upstreamed [1]), which calls
> |sbi_hsm_hart_start(hartid, boot_addr, hsm_data)| to start a hart, and =
I planned
> to place|vmid_init()| somewhere in the code executed at|boot_addr|.
>=20
> [1]https://gitlab.com/xen-project/people/olkur/xen/-/blob/latest/xen/ar=
ch/riscv/smpboot.c#L40
>=20
>>>>> +{
>>>>> +    unsigned long vmid_bits;
>>>> Why "long" (also for the function return type)?
>>> Because csr_read() returns unsigned long as HGATP register has
>>> 'unsigned long' length.
>> Oh, right, I should have commented on the function return type only.
>> Yet then I also can't resist stating that this kind of use of a variab=
le,
>> which initially is assigned a value that doesn't really fit its name, =
is
>> easily misleading towards giving such comments.
>>
>>> But it could be done in this way:
>>>       csr_write(CSR_HGATP, old | HGATP_VMID_MASK);
>>>       vmid_bits =3D  MASK_EXTR(csr_read(CSR_HGATP), HGATP_VMID_MASK);=

>>>       vmid_bits =3D ffs_g(vmid_bits);
>>>       csr_write(CSR_HGATP, old);
>>> And then use uint16_t for vmid_bits and use uin16_t as a return type.=

>> Please check ./CODING_STYLE again as to the use of fixed-width types.
>=20
> I meant unsigned short, uint16_t was just short to write. I'll try to b=
e
> more specific.
>=20
>>
>>>>> +    unsigned long old;
>>>>> +
>>>>> +    /* Figure-out number of VMID bits in HW */
>>>>> +    old =3D csr_read(CSR_HGATP);
>>>>> +
>>>>> +    csr_write(CSR_HGATP, old | HGATP_VMID_MASK);
>>>>> +    vmid_bits =3D csr_read(CSR_HGATP);
>>>>> +    vmid_bits =3D  MASK_EXTR(vmid_bits, HGATP_VMID_MASK);
>>>> Nit: Stray blank.
>>>>
>>>>> +    vmid_bits =3D flsl(vmid_bits);
>>>>> +    csr_write(CSR_HGATP, old);
>>>>> +
>>>>> +    /*
>>>>> +     * We polluted local TLB so flush all guest TLB as
>>>>> +     * a speculative access can happen at any time.
>>>>> +     */
>>>>> +    local_hfence_gvma_all();
>>>> There's no guest running. If you wrote hgat.MODE as zero, as per my
>>>> understanding now new TLB entries could even purely theoretically ap=
pear.
>>> It could be an issue (or, at least, it is recommended) when hgatp.MOD=
E is
>>> changed:
>>>    If hgatp.MODE is changed for a given VMID, an HFENCE.GVMA with rs1=
=3Dx0
>>>    (and rs2 set to either x0 or the VMID) must be executed to order s=
ubsequent
>>>    guest translations with the MODE change=E2=80=94even if the old MO=
DE or new MODE
>>>    is Bare.
>>> On other hand it is guaranteed that, at least, on Reset (and so I ass=
ume
>>> for power on) that:
>>>    If the hypervisor extension is implemented, the hgatp.MODE and vsa=
tp.MODE
>>>    fields are reset to 0.
>>>
>>> So it seems like if no guest is ran then there is no need even to wri=
te
>>> hgatp.MODE as zero, but it might be sense to do that explicitly just =
to
>>> be sure.
>>>
>>> I thought it was possible to have a running guest and perform a CPU h=
otplug.
>> But that guest will run on another hart.
>>
>>> In that case, I expect that during the hotplug,|vmidlen_detect()| wil=
l be
>>> called and return the|vmid_bits| value, which is used as the active V=
MID.
>>> At that moment, the local TLB could be speculatively polluted, I thin=
k.
>>> Likely, it makes sense to call vmidlen_detect() only once for each ha=
rt
>>> during initial bringup.
>> That may bring you more problems than it solves. You'd need to stash a=
way
>> the value originally read somewhere. And that somewhere isn't per-CPU =
data.
>>
>>>> In fact, with no guest running (yet) I'm having a hard time seeing w=
hy
>>>> you shouldn't be able to simply write the register with just
>>>> HGATP_VMID_MASK, i.e. without OR-ing in "old". It's even questionabl=
e
>>>> whether "old" needs restoring; writing plain zero afterwards ought t=
o
>>>> suffice. You're in charcge of the register, after all.
>>> It make sense (but I don't know if it is a possible case) to be sure =
that
>>> HGATP.MODE remains the same, so there is no need to have TLB flush. I=
f
>>> HGATP.MODE is changed then it will be needed to do TLB flush as I men=
tioned
>>> above.
>>>
>>> If we agreed to keep local_hfence_gvma_all() then I think it isn't re=
ally
>>> any sense to restore 'old' or OR-ing it with HGATP_VMID_MASK.
>>>
>>> Generally if 'old' is guaranteed to be zero (and, probably, it makes =
sense
>>> to check that in vmidlen_detect() and panic if it isn't zero) and if
>>> vmidlen_detect() function will be called before any guest domain(s) w=
ill
>>> be ran then I could agree that we don't need local_hfence_gvma_all() =
here.
>>>
>>> As an option we can do local_hfence_gvma_all() only if 'old' value wa=
sn't
>>> set to zero.
>>>
>>> Does it make sense?
>> Well - I'd like the pre-conditions to be understood better. For exampl=
e, can
>> a hart really speculate into guest mode, when the hart is only in the
>> process of being brought up?
>=20
> I couldn't explicit words that a hart can't speculate into guest mode
> either on bring up or during its work.
>=20
> But there are some moments in the spec which tells:
>    Implementations with virtual memory are permitted to perform address=

>    translations speculatively and earlier than required by an explicit
>    memory access, and are permitted to cache them in address translatio=
n
>    cache structures=E2=80=94including possibly caching the identity map=
pings from
>    effective address to physical address used in Bare translation modes=
 and
>    M-mode.
> And here:
>    Implementations may also execute the address-translation algorithm
>    speculatively at any time, for any virtual address, as long as satp =
is
>    active (as defined in Section 10.1.11). Such speculative executions =
have
>    the effect of pre-populating the address-translation cache.
> Where it is explicitly mentioned that speculation can happen in *any ti=
me*.
> And at the same time:
>    Speculative executions of the address-translation algorithm behave a=
s
>    non-speculative executions of the algorithm do, except that they mus=
t
>    not set the dirty bit for a PTE, they must not trigger an exception,=

>    and they must not create address-translation cache entries if those
>    entries would have been invalidated by any SFENCE.VMA instruction
>    executed by the hart since the speculative execution of the algorith=
m began.
> What I read as if TLB was empty before it will stay empty.

I read that as "flushing the TLB invalidates entries created by speculati=
ve
execution before the TLB flush".  That is the bare minimum needed for TLB=

flushing to work.  You have to do the TLB flush *after* changing the PTEs=
,
not before.

This is true on at least x86 but I expect it to hold in general.
--=20
Sincerely,
Demi Marie Obenour (she/her/hers)
--------------UAOgisYUERiBA07qRNHzbgMk
Content-Type: application/pgp-keys; name="OpenPGP_0xB288B55FFF9C22C1.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB288B55FFF9C22C1.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

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

xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49y
B+l2nipdaq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYf
bWpr/si88QKgyGSVZ7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/
UorR+FaSuVwT7rqzGrTlscnTDlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7M
MPCJwI8JpPlBedRpe9tfVyfu3euTPLPxwcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9H
zx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR6h3nBc3eyuZ+q62HS1pJ5EvU
T1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl5FMWo8TCniHynNXs
BtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2Bkg1b//r
6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nS
m9BBff0Nm0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQAB
zTxEZW1pIE9iZW5vdXIgKElUTCBFbWFpbCBLZXkpIDxhdGhlbmFAaW52aXNpYmxl
dGhpbmdzbGFiLmNvbT7CwY4EEwEIADgWIQR2h02fEza6IlkHHHGyiLVf/5wiwQUC
X6YJvQIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRCyiLVf/5wiwWRhD/0Y
R+YYC5Kduv/2LBgQJIygMsFiRHbR4+tWXuTFqgrxxFSlMktZ6gQrQCWe38WnOXkB
oY6n/5lSJdfnuGd2UagZ/9dkaGMUkqt+5WshLFly4BnP7pSsWReKgMP7etRTwn3S
zk1OwFx2lzY1EnnconPLfPBc6rWG2moA6l0WX+3WNR1B1ndqpl2hPSjT2jUCBWDV
rGOUSX7r5f1WgtBeNYnEXPBCUUM51pFGESmfHIXQrqFDA7nBNiIVFDJTmQzuEqIy
Jl67pKNgooij5mKzRhFKHfjLRAH4mmWZlB9UjDStAfFBAoDFHwd1HL5VQCNQdqEc
/9lZDApqWuCPadZN+pGouqLysesIYsNxUhJ7dtWOWHl0vs7/3qkWmWun/2uOJMQh
ra2u8nA9g91FbOobWqjrDd6x3ZJoGQf4zLqjmn/P514gb697788e573WN/MpQ5XI
Fl7aM2d6/GJiq6LC9T2gSUW4rbPBiqOCeiUx7Kd/sVm41p9TOA7fEG4bYddCfDsN
xaQJH6VRK3NOuBUGeL+iQEVF5Xs6Yp+U+jwvv2M5Lel3EqAYo5xXTx4ls0xaxDCu
fudcAh8CMMqx3fguSb7Mi31WlnZpk0fDuWQVNKyDP7lYpwc4nCCGNKCj622ZSocH
AcQmX28L8pJdLYacv9pU3jPy4fHcQYvmTavTqowGnM08RGVtaSBNYXJpZSBPYmVu
b3VyIChsb3ZlciBvZiBjb2RpbmcpIDxkZW1pb2Jlbm91ckBnbWFpbC5jb20+wsF4
BBMBAgAiBQJafgNKAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRCyiLVf
/5wiwYa/EACv8a2+MMou9cSCNoZBQaU+fTmyzft9hUE+0d5W2UY1RY3OsjFIzm9R
/4SVccfsqOYLEo+S0vQMIIIqFEq3FCpXXwPzyimotps05VA8U3Bd7yseojFygOgK
sAMOAee2RCaDDOnoJue01dfZMzzHPO/TVdp3OvnpWipfv5G1Xg96rwbhMLE3tg6N
xwAHa31Bv4/Xq8CJOoIWvx6fcmZQpz01/lSvsYn0KrfEbTKkuUf0vM9JrCTCP2oz
VNN5BYzqaq2M4r+jmSyeXLim922VOWqGkUEQ85BSEemqrRS06IU6NtEMsF8EWt/b
hWjk/9GDKTcnpdJHTrMxTspExBiNrvpI2t+YPU5B/dJJAUxvmhFrbSIbdB8umBZs
I3AMYrEmpAbh5x7jEjoskUC7uN3o9vpg1oCLS2ePDLtAtyBtbHnkA4xGD7ar8mem
xpH9lY/i+sC6CyyIUWcUDnnagKyJP0m9ks0GLsTeOCA0bft2XA6rD6aaCnMUsndT
ctrab42CV5XypjmC4U1rPJ8JQJUh1/3P48/8sMH+3krxpJ06KNWNFaUbaMTGiltZ
7x9DngklSYrX0T+2G4kVXNmjaljwkoLahwLla2gUWwBSyofXdqyhQdwZsp01KXNQ
UCyT/Pg+aDcm/E7OMV3d4lf7g/CSxiX2GSEe6BlhSz+Lmd7ZJ3g32M1ARGVtaSBN
YXJpZSBPYmVub3VyIChJVEwgRW1haWwgS2V5KSA8ZGVtaUBpbnZpc2libGV0aGlu
Z3NsYWIuY29tPsLBjgQTAQgAOBYhBHaHTZ8TNroiWQcccbKItV//nCLBBQJgOEV+
AhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJELKItV//nCLBKwoP/1WSnFdv
SAD0g7fD0WlF+oi7ISFT7oqJnchFLOwVHK4Jg0e4hGn1ekWsF3Ha5tFLh4V/7UUu
obYJpTfBAA2CckspYBqLtKGjFxcaqjjpO1I2W/jeNELVtSYuCOZICjdNGw2Hl9yH
KRZiBkqc9u8lQcHDZKq4LIpVJj6ZQV/nxttDX90ax2No1nLLQXFbr5wb465LAPpU
lXwunYDij7xJGye+VUASQh9datye6orZYuJvNo8Tr3mAQxxkfR46LzWgxFCPEAZJ
5P56Nc0IMHdJZj0Uc9+1jxERhOGppp5jlLgYGK7faGB/jTV6LaRQ4Ad+xiqokDWp
mUOZsmA+bMbtPfYjDZBz5mlyHcIRKIFpE1l3Y8F7PhJuzzMUKkJi90CYakCV4x/a
Zs4pzk5E96c2VQx01RIEJ7fzHF7lwFdtfTS4YsLtAbQFsKayqwkGcVv2B1AHeqdo
TMX+cgDvjd1ZganGlWA8Sv9RkNSMchn1hMuTwERTyFTr2dKPnQdA1F480+jUap41
ClXgn227WkCIMrNhQGNyJsnwyzi5wS8rBVRQ3BOTMyvGM07j3axUOYaejEpg7wKi
wTPZGLGH1sz5GljD/916v5+v2xLbOo5606j9dWf5/tAhbPuqrQgWv41wuKDi+dDD
EKkODF7DHes8No+QcHTDyETMn1RYm7t0RKR4zsFNBFp+A0oBEAC9ynZI9LU+uJkM
eEJeJyQ/8VFkCJQPQZEsIGzOTlPnwvVna0AS86n2Z+rK7R/usYs5iJCZ55/JISWd
8xD57ue0eB47bcJvVqGlObI2DEG8TwaW0O0duRhDgzMEL4t1KdRAepIESBEA/iPp
I4gfUbVEIEQuqdqQyO4GAe+MkD0Hy5JH/0qgFmbaSegNTdQg5iqYjRZ3ttiswalq
l1/iSyv1WYeC1OAs+2BLOAT2NEggSiVOtxEfgewsQtCWi8H1SoirakIfo45Hz0tk
/Ad9ZWh2PvOGt97Ka85o4TLJxgJJqGEnqcFUZnJJriwoaRIS8N2C8/nEM53jb1sH
0gYddMU3QxY7dYNLIUrRKQeNkF30dK7V6JRH7pleRlf+wQcNfRAIUrNlatj9Txwi
vQrKnC9aIFFHEy/0mAgtrQShcMRmMgVlRoOA5B8RTulRLCmkafvwuhs6dCxN0GNA
ORIVVFxjx9Vn7OqYPgwiofZ6SbEl0hgPyWBQvE85klFLZLoj7p+joDY1XNQztmfA
rnJ9x+YV4igjWImINAZSlmEcYtd+xy3Li/8oeYDAqrsnrOjb+WvGhCykJk4urBog
2LNtcyCjkTs7F+WeXGUo0NDhbd3Z6AyFfqeF7uJ3D5hlpX2nI9no/ugPrrTVoVZA
grrnNz0iZG2DVx46x913pVKHl5mlYQARAQABwsFfBBgBAgAJBQJafgNKAhsMAAoJ
ELKItV//nCLBwNIP/AiIHE8boIqReFQyaMzxq6lE4YZCZNj65B/nkDOvodSiwfwj
jVVE2V3iEzxMHbgyTCGA67+Bo/d5aQGjgn0TPtsGzelyQHipaUzEyrsceUGWYoKX
YyVWKEfyh0cDfnd9diAm3VeNqchtcMpoehETH8frRHnJdBcjf112PzQSdKC6kqU0
Q196c4Vp5HDOQfNiDnTf7gZSj0BraHOByy9LEDCLhQiCmr+2E0rW4tBtDAn2HkT9
uf32ZGqJCn1O+2uVfFhGu6vPE5qkqrbSE8TG+03H8ecU2q50zgHWPdHMOBvy3Ehz
fAh2VmOSTcRK+tSUe/u3wdLRDPwv/DTzGI36Kgky9MsDC5gpIwNbOJP2G/q1wT1o
Gkw4IXfWv2ufWiXqJ+k7HEi2N1sree7Dy9KBCqb+ca1vFhYPDJfhP75I/VnzHVss
Z/rYZ9+51yDoUABoNdJNSGUYl+Yh9Pw9pE3Kt4EFzUlFZWbE4xKL/NPno+z4J9aW
emLLszcYz/u3XnbOvUSQHSrmfOzX3cV4yfmjM5lewgSstoxGyTx2M8enslgdXhPt
hZlDnTnOT+C+OTsh8+m5tos8HQjaPM01MKBiAqdPgksm1wu2DrrwUi6ChRVTUBcj
6+/9IJ81H2P2gJk3Ls3AVIxIffLoY34E+MYSfkEjBz0E8CLOcAw7JIwAaeBTzsFN
BGbyLVgBEACqClxh50hmBepTSVlan6EBq3OAoxhrAhWZYEwN78k+ENhK68KhqC5R
IsHzlL7QHW1gmfVBQZ63GnWiraM6wOJqFTL4ZWvRslga9u28FJ5XyK860mZLgYhK
9BzoUk4s+dat9jVUbq6LpQ1Ot5I9vrdzo2p1jtQ8h9WCIiFxSYy8s8pZ3hHh5T64
GIj1m/kY7lG3VIdUgoNiREGf/iOMjUFjwwE9ZoJ26j9p7p1U+TkKeF6wgswEB1T3
J8KCAtvmRtqJDq558IU5jhg5fgN+xHB8cgvUWulgK9FIF9oFxcuxtaf/juhHWKMO
RtL0bHfNdXoBdpUDZE+mLBUAxF6KSsRrvx6AQyJs7VjgXJDtQVWvH0PUmTrEswgb
49nNU+dLLZQAZagxqnZ9Dp5l6GqaGZCHERJcLmdY/EmMzSf5YazJ6c0vO8rdW27M
kn73qcWAplQn5mOXaqbfzWkAUPyUXppuRHfrjxTDz3GyJJVOeMmMrTxH4uCaGpOX
Z8tN6829J1roGw4oKDRUQsaBAeEDqizXMPRc+6U9vI5FXzbAsb+8lKW65G7JWHym
YPOGUt2hK4DdTA1PmVo0DxH00eWWeKxqvmGyX+Dhcg+5e191rPsMRGsDlH6KihI6
+3JIuc0y6ngdjcp6aalbuvPIGFrCRx3tnRtNc7He6cBWQoH9RPwluwARAQABwsOs
BBgBCgAgFiEEdodNnxM2uiJZBxxxsoi1X/+cIsEFAmbyLVgCGwICQAkQsoi1X/+c
IsHBdCAEGQEKAB0WIQSilC2pUlbVp66j3+yzNoc6synyUwUCZvItWAAKCRCzNoc6
synyU85gD/0T1QDtPhovkGwoqv4jUbEMMvpeYQf+oWgm/TjWPeLwdjl7AtY0G9Ml
ZoyGniYkoHi37Gnn/ShLT3B5vtyI58ap2+SSa8SnGftdAKRLiWFWCiAEklm9FRk8
N3hwxhmSFF1KR/AIDS4g+HIsZn7YEMubBSgLlZZ9zHl4O4vwuXlREBEW97iL/FSt
VownU2V39t7PtFvGZNk+DJH7eLO3jmNRYB0PL4JOyyda3NH/J92iwrFmjFWWmmWb
/Xz8l9DIs+Z59pRCVTTwbBEZhcUc7rVMCcIYL+q1WxBG2e6lMn15OQJ5WfiE6E0I
sGirAEDnXWx92JNGx5l+mMpdpsWhBZ5iGTtttZesibNkQfd48/eCgFi4cxJUC4PT
UQwfD9AMgzwSTGJrkI5XGy+XqxwOjL8UA0iIrtTpMh49zw46uV6kwFQCgkf32jZM
OLwLTNSzclbnA7GRd8tKwezQ/XqeK3dal2n+cOr+o+Eka7yGmGWNUqFbIe8cjj9T
JeF3mgOCmZOwMI+wIcQYRSf+e5VTMO6TNWH5BI3vqeHSt7HkYuPlHT0pGum88d4a
pWqhulH4rUhEMtirX1hYx8Q4HlUOQqLtxzmwOYWkhl1C+yPObAvUDNiHCLf9w28n
uihgEkzHt9J4VKYulyJM9fe3ENcyU6rpXD7iANQqcr87ogKXFxknZ97uEACvSucc
RbnnAgRqZ7GDzgoBerJ2zrmhLkeREZ08iz1zze1JgyW3HEwdr2UbyAuqvSADCSUU
GN0vtQHsPzWl8onRc7lOPqPDF8OO+UfN9NAfA4wl3QyChD1GXl9rwKQOkbvdlYFV
UFx9u86LNi4ssTmU8p9NtHIGpz1SYMVYNoYy9NU7EVqypGMguDCL7gJt6GUmA0sw
p+YCroXiwL2BJ7RwRqTpgQuFL1gShkA17D5jK4mDPEetq1d8kz9rQYvAR/sTKBsR
ImC3xSfn8zpWoNTTB6lnwyP5Ng1bu6esS7+SpYprFTe7ZqGZF6xhvBPf1Ldi9UAm
U2xPN1/eeWxEa2kusidmFKPmN8lcT4miiAvwGxEnY7Oww9CgZlUB+LP4dl5VPjEt
sFeAhrgxLdpVTjPRRwTd9VQF3/XYl83j5wySIQKIPXgT3sG3ngAhDhC8I8GpM36r
8WJJ3x2yVzyJUbBPO0GBhWE2xPNIfhxVoU4cGGhpFqz7dPKSTRDGq++MrFgKKGpI
ZwT3CPTSSKc7ySndEXWkOYArDIdtyxdE1p5/c3aoz4utzUU7NDHQ+vVIwlnZSMiZ
jek2IJP3SZ+COOIHCVxpUaZ4lnzWT4eDqABhMLpIzw6NmGfg+kLBJhouqz81WITr
EtJuZYM5blWncBOJCoWMnBEcTEo/viU3GgcVRw=3D=3D
=3Dx94R
-----END PGP PUBLIC KEY BLOCK-----

--------------UAOgisYUERiBA07qRNHzbgMk--

--------------UCSiGg9IZeyNJvXl8IjE07zq--

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

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

iQIzBAEBCAAdFiEEopQtqVJW1aeuo9/sszaHOrMp8lMFAmiTh7sACgkQszaHOrMp
8lNSfA/+JZsVk0Im2B/3ULYSiiIHvjfvZmQVpXQ7GI2fBAncLXdwyCrzah4VakQy
kTlOQ9efAMrej80liLLD03Gj943W0tNDVwlCshRp+zjUuU7QU7d/T1K2naXDxKnD
GzDXFdjP1uQ4sY1XUDv6fwW7qmKj3fs8+a/1QHX9/Hflg3hbWxzF7ciGNb4DdnCp
LVHGURQGBa+oQ8Huw+BFtsp2VfEH5tfXmU8hrYmzVrjeFpCCcpYQ9mdBw3vnvYYT
wQNfZy6fjHbj0aETGhDhuhWDLkC738JKIHiDqAn2Vjr4vqrlELy6VgdF/3hkA/fF
KI8dQi8qrpCru0VxKC6awkWbxodp+e9jB9P4K8plGPXNcCfD51BDzXqzMUp6f0fC
PYy7HU90jdY4GDUB2TGKRPL+rjLP5U16SAj6Paavvi2Ja5tzCgVOZbCQNFKebNXq
1xnXsC9RiJxZfDQxW46GY5HdLY/895iqU5Hb73mQMkaboiWVwATAKzJuqXmxNebN
xtN9rubaUYgblser5gQzUJz7dpmY3/CFeftwt1UXvu3EdVdCq1qwcDnRDCoIkw5C
F/CpkIqpt45lrEzW5ee58YTL0HOZmaM3vqOQVMruiZlUw4bbSJRz6ADS+OBSP8W2
jEi+FVF5hPqFOzaMJYjnUB1yA7SeU5+gu2hLnVIMj9DfeeQOrws=
=+2iS
-----END PGP SIGNATURE-----

--------------HTYytyCmaazj52Hiyr2VYmAF--


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 16:55:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 16:55:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072018.1435342 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujhQ5-0000SI-Nx; Wed, 06 Aug 2025 16:55:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072018.1435342; Wed, 06 Aug 2025 16:55: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 1ujhQ5-0000SB-Jn; Wed, 06 Aug 2025 16:55:17 +0000
Received: by outflank-mailman (input) for mailman id 1072018;
 Wed, 06 Aug 2025 16:55:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ssa7=2S=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1ujhQ4-0000Ro-7m
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 16:55:16 +0000
Received: from mail-oa1-x34.google.com (mail-oa1-x34.google.com
 [2001:4860:4864:20::34])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1e5d9688-72e6-11f0-b898-0df219b8e170;
 Wed, 06 Aug 2025 18:55:13 +0200 (CEST)
Received: by mail-oa1-x34.google.com with SMTP id
 586e51a60fabf-2ea080f900cso51112fac.2
 for <xen-devel@lists.xenproject.org>; Wed, 06 Aug 2025 09:55: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>
X-Inumbo-ID: 1e5d9688-72e6-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1754499312; x=1755104112; 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=GjbskpErG6PF/ZvhhithjCRUhu3rhx1mLWKD+ahTvaw=;
        b=tNmcVsIG9lbAfYXsAJ8F40GGzZ/a6xPgNJSN+Gu2FbFDvCLXXqpT0kd1de/3ncOapx
         CumY/4qywzRBk2BYjJx4wBoBTHuXQCk+ftFUdXun/CHI7Igi+QoO4JUpVDgCNPnaT43j
         8e3hLQ1kKrDSf52NC0WZGhxQTcaPXm3Hg7d+Y1ILgVephE/syKR6wK7LcD/O/OkXuESB
         FNHqQWxE/OuTKVLblw4PckheZDweyQkRGxMIpzI3NFU174OxfxwPFYrht81VQ26auIQ2
         fNOK7XoMQ49LsUAlI8nWTHEHjT9Che0mg2mh/tvuaUHbTkODPtcQm1Z621y0eBna+LyA
         cdfQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754499312; x=1755104112;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=GjbskpErG6PF/ZvhhithjCRUhu3rhx1mLWKD+ahTvaw=;
        b=qJhW+1GxlbyBrWlBZCQrtClXNtSj6rxWC5cZDX+XSPcIHGQzZeooDppZAFnHZ6cYaZ
         NWqFlxqmeAFzeq4gmRkXDBGsB2MqiSiN/5gMhTQrQM/20WZBG76o45L8MiBwPTE0ntpa
         DmJwV6C6Be7EO7aKl9Wb/1i8RdOu6jjMpfWkCPr7ATq7EocXH9WpSEpVEWqbzrO6QYbL
         3a6oyo164zGjzopGZq1SwPTRZeZj3LgNuKZTrsvEDpN769M0nVRdzr9NncYZLF3BaP9M
         9Q7fiiT5ypQFiMCdmZApAQFSw3rtdlpZDBjGTRXgaJN+wd9Yt8Ik5l1mroCrTqiXTb6i
         RgFw==
X-Gm-Message-State: AOJu0YyAo1bmu8gaGbgW9z+DwH38pyPL3yHt7GEe5MZ9bG/AVuC0yVsR
	l32LczQdwGnj3bkY/ENJ8xoLRUtfc1JcG6sx3Pm8qfm84JvS0pw88kJC+QZoyWfcymY1D18uGMd
	j6/D7lIqQpFo5leIunHpC0t4ummOX4GqcgfE8YATTXw==
X-Gm-Gg: ASbGnctaIFJNKeRakH6FzX0AD1km/ziCK3KShYCPcr96owqKHHFaWHWj0UCHRz87n4J
	ZqQ3QwgJ2nkCSAsCGuW1MDlNFZ18Zd48VbcBNZb7LpKLgWZAZJQRI8pYGmwwr8VEqbEwX80IY09
	5GlcA94dLphpQJOa5ldE0I5ECwg3Zsvcxl61yUv7gwmMRs9KjXovqN4JGQMuxGrULV0d+CrdcVd
	Pz+E3Fnxg==
X-Google-Smtp-Source: AGHT+IEZl3nhPK6suSZgpiA+bC5fQ6mZJu15Q6fzEKT4jdSYJLYO8FfQPGY8delqSFqebAuWmgQAT9HEZJ1iISGQnRI=
X-Received: by 2002:a05:6870:468f:b0:2c2:2f08:5e5b with SMTP id
 586e51a60fabf-30be2983277mr2335258fac.13.1754499311833; Wed, 06 Aug 2025
 09:55:11 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1752754016.git.bertrand.marquis@arm.com> <50224eb7cca4eaef2646ad8e33f689d912704733.1752754016.git.bertrand.marquis@arm.com>
In-Reply-To: <50224eb7cca4eaef2646ad8e33f689d912704733.1752754016.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Wed, 6 Aug 2025 17:54:59 +0100
X-Gm-Features: Ac12FXwDURYqXpcZPcIZeA29tjB94yKMv1P7wM1YMTXDv5_rVokA_CPNgi1SCvI
Message-ID: <CAHUa44Fg-0uxVTa+9Zt_Sb4C2AHzf=STvHU-wThbn0AgScmVpw@mail.gmail.com>
Subject: Re: [PATCH v7 3/6] xen/arm: ffa: Introduce VM to VM support
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

Hi Bertrand,

On Thu, Jul 17, 2025 at 1:11=E2=80=AFPM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> Create a CONFIG_FFA_VM_TO_VM parameter to activate FFA communication
> between VMs.
> When activated list VMs in the system with FF-A support in part_info_get.
>
> When VM to VM is activated, Xen will be tainted as Insecure and a
> message is displayed to the user during the boot as there is no
> filtering of VMs in FF-A so any VM can communicate or see any other VM
> in the system.
>
> WARNING: There is no filtering for now and all VMs are listed !!
>
> This patch is reorganizing the ffa_ctx structure to make clear which
> lock is protecting what parts.
>
> This patch is introducing a chain list of the ffa_ctx with a FFA Version
> negociated allowing to create the partinfo results for VMs in parallel

negotiated

> by using rwlock which only ensure addition/removal of entries are
> protected.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
> Changes in v7:
> - protect ffa_ctx list with a rw lock to allow several partinfo_get in
>   parallel but protect adding/removing entries.
> Changes in v6:
> - remove ACCESS_ONCE for guest_vers access and take the context lock
>   before modifying it
> - move guest_vers in context declaration to fields protected by the
>   context lock and add a comment to state that lock in only needed when
>   modifying it
> Changes in v5:
> - remove invalid comment about 1.1 firmware support
> - rename variables from d and dom to curr_d and dest_d (Julien)
> - add a TODO in the code for potential holding for long of the CPU
>   (Julien)
> - use an atomic global variable to store the number of VMs instead of
>   recomputing the value each time (Julien)
> - add partinfo information in ffa_ctx (id, cpus and 64bit) and create a
>   chain list of ctx. Use this chain list to create the partinfo result
>   without holding a global lock to prevent concurrency issues.
> - Move some changes in a preparation patch modifying partinfo for sps to
>   reduce this patch size and make the review easier
> Changes in v4:
> - properly handle SPMC version 1.0 header size case in partinfo_get
> - switch to local counting variables instead of *pointer +=3D 1 form
> - coding style issue with missing spaces in if ()
> Changes in v3:
> - break partinfo_get in several sub functions to make the implementation
>   easier to understand and lock handling easier
> - rework implementation to check size along the way and prevent previous
>   implementation limits which had to check that the number of VMs or SPs
>   did not change
> - taint Xen as INSECURE when VM to VM is enabled
> Changes in v2:
> - Switch ifdef to IS_ENABLED
> - dom was not switched to d as requested by Jan because there is already
>   a variable d pointing to the current domain and it must not be
>   shadowed.
> ---
>  xen/arch/arm/tee/Kconfig        |  11 +++
>  xen/arch/arm/tee/ffa.c          |  47 +++++++++++++
>  xen/arch/arm/tee/ffa_partinfo.c | 100 ++++++++++++++++++++++++---
>  xen/arch/arm/tee/ffa_private.h  | 117 ++++++++++++++++++++++++++------
>  4 files changed, 245 insertions(+), 30 deletions(-)
>
> diff --git a/xen/arch/arm/tee/Kconfig b/xen/arch/arm/tee/Kconfig
> index c5b0f88d7522..88a4c4c99154 100644
> --- a/xen/arch/arm/tee/Kconfig
> +++ b/xen/arch/arm/tee/Kconfig
> @@ -28,5 +28,16 @@ config FFA
>
>           [1] https://developer.arm.com/documentation/den0077/latest
>
> +config FFA_VM_TO_VM
> +    bool "Enable FF-A between VMs (UNSUPPORTED)" if UNSUPPORTED
> +    default n
> +    depends on FFA
> +    help
> +      This option enables to use FF-A between VMs.
> +      This is experimental and there is no access control so any
> +      guest can communicate with any other guest.
> +
> +      If unsure, say N.
> +
>  endmenu
>
> diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
> index 3bbdd7168a6b..be71eda4869f 100644
> --- a/xen/arch/arm/tee/ffa.c
> +++ b/xen/arch/arm/tee/ffa.c
> @@ -118,6 +118,13 @@ void *ffa_tx __read_mostly;
>  DEFINE_SPINLOCK(ffa_rx_buffer_lock);
>  DEFINE_SPINLOCK(ffa_tx_buffer_lock);
>
> +struct list_head ffa_ctx_head;
> +/* RW Lock to protect addition/removal and reading in ffa_ctx_head */
> +rwlock_t ffa_ctx_list_rwlock;
> +
> +#ifdef CONFIG_FFA_VM_TO_VM
> +atomic_t ffa_vm_count;
> +#endif
>
>  /* Used to track domains that could not be torn down immediately. */
>  static struct timer ffa_teardown_timer;
> @@ -151,6 +158,7 @@ static void handle_version(struct cpu_user_regs *regs=
)
>      struct domain *d =3D current->domain;
>      struct ffa_ctx *ctx =3D d->arch.tee;
>      uint32_t vers =3D get_user_reg(regs, 1);
> +    uint32_t old_vers;
>
>      /*
>       * Guest will use the version it requested if it is our major and mi=
nor
> @@ -160,10 +168,23 @@ static void handle_version(struct cpu_user_regs *re=
gs)
>       */
>      if ( FFA_VERSION_MAJOR(vers) =3D=3D FFA_MY_VERSION_MAJOR )
>      {
> +        spin_lock(&ctx->lock);
> +        old_vers =3D ctx->guest_vers;
> +
>          if ( FFA_VERSION_MINOR(vers) > FFA_MY_VERSION_MINOR )
>              ctx->guest_vers =3D FFA_MY_VERSION;
>          else
>              ctx->guest_vers =3D vers;
> +        spin_unlock(&ctx->lock);
> +
> +        if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) && !old_vers )
> +        {
> +            /* One more VM with FF-A support available */
> +            inc_ffa_vm_count();
> +            write_lock(&ffa_ctx_list_rwlock);
> +            list_add_tail(&ctx->ctx_list, &ffa_ctx_head);
> +            write_unlock(&ffa_ctx_list_rwlock);
> +        }
>      }
>      ffa_set_regs(regs, FFA_MY_VERSION, 0, 0, 0, 0, 0, 0, 0);
>  }
> @@ -345,6 +366,10 @@ static int ffa_domain_init(struct domain *d)
>      ctx->teardown_d =3D d;
>      INIT_LIST_HEAD(&ctx->shm_list);
>
> +    ctx->ffa_id =3D ffa_get_vm_id(d);
> +    ctx->num_vcpus =3D d->max_vcpus;
> +    ctx->is_64bit =3D is_64bit_domain(d);
> +
>      /*
>       * ffa_domain_teardown() will be called if ffa_domain_init() returns=
 an
>       * error, so no need for cleanup in this function.
> @@ -421,6 +446,14 @@ static int ffa_domain_teardown(struct domain *d)
>      if ( !ctx )
>          return 0;
>
> +    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) && ctx->guest_vers )
> +    {
> +        dec_ffa_vm_count();
> +        write_lock(&ffa_ctx_list_rwlock);
> +        list_del(&ctx->ctx_list);
> +        write_unlock(&ffa_ctx_list_rwlock);
> +    }
> +
>      ffa_rxtx_domain_destroy(d);
>      ffa_notif_domain_destroy(d);
>
> @@ -464,6 +497,18 @@ static bool ffa_probe(void)
>      printk(XENLOG_INFO "ARM FF-A Mediator version %u.%u\n",
>             FFA_MY_VERSION_MAJOR, FFA_MY_VERSION_MINOR);
>
> +    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
> +    {
> +        /*
> +         * When FFA VM to VM is enabled, the current implementation does=
 not
> +         * offer any way to limit which VM can communicate with which VM=
 using
> +         * FF-A.
> +         * Signal this in the xen console and taint the system as insecu=
re.
> +         * TODO: Introduce a solution to limit what a VM can do through =
FFA.
> +         */
> +        printk(XENLOG_ERR "ffa: VM to VM is enabled, system is insecure =
!!\n");
> +        add_taint(TAINT_MACHINE_INSECURE);
> +    }
>      /*
>       * psci_init_smccc() updates this value with what's reported by EL-3
>       * or secure world.
> @@ -538,6 +583,8 @@ static bool ffa_probe(void)
>
>      ffa_notif_init();
>      INIT_LIST_HEAD(&ffa_teardown_head);
> +    INIT_LIST_HEAD(&ffa_ctx_head);
> +    rwlock_init(&ffa_ctx_list_rwlock);
>      init_timer(&ffa_teardown_timer, ffa_teardown_timer_callback, NULL, 0=
);
>
>      return true;
> diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_parti=
nfo.c
> index dfa0b23eaf38..fa56b1587e3b 100644
> --- a/xen/arch/arm/tee/ffa_partinfo.c
> +++ b/xen/arch/arm/tee/ffa_partinfo.c
> @@ -150,6 +150,73 @@ out:
>      return ret;
>  }
>
> +static int32_t ffa_get_vm_partinfo(uint32_t *vm_count, void *dst_buf,
> +                                   void *end_buf, uint32_t dst_size)
> +{
> +    struct ffa_ctx *curr_ctx =3D current->domain->arch.tee;
> +    struct ffa_ctx *dest_ctx;
> +    uint32_t count =3D 0;
> +    int32_t ret =3D FFA_RET_OK;
> +
> +    /*
> +     * There could potentially be a lot of VMs in the system and we coul=
d
> +     * hold the CPU for long here.
> +     * Right now there is no solution in FF-A specification to split
> +     * the work in this case.
> +     * TODO: Check how we could delay the work or have preemption checks=
.
> +     */
> +    read_lock(&ffa_ctx_list_rwlock);
> +    list_for_each_entry(dest_ctx, &ffa_ctx_head, ctx_list)
> +    {
> +        /*
> +         * Do not include an entry for the caller VM as the spec is not
> +         * clearly mandating it and it is not supported by Linux.
> +         */
> +        if ( dest_ctx !=3D curr_ctx )
> +        {
> +            /*
> +             * We do not have UUID info for VMs so use
> +             * the 1.0 structure so that we set UUIDs to
> +             * zero using memset
> +             */
> +            struct ffa_partition_info_1_0 info;
> +
> +            if  ( dst_buf > (end_buf - dst_size) )
> +            {
> +                ret =3D FFA_RET_NO_MEMORY;
> +                goto out;
> +            }
> +
> +            /*
> +             * Context might has been removed since we go it or being re=
moved
> +             * right now so we might return information for a VM not exi=
sting
> +             * anymore. This is acceptable as we return a view of the sy=
stem
> +             * which could change at any time.
> +             */
> +            info.id =3D dest_ctx->ffa_id;
> +            info.execution_context =3D dest_ctx->num_vcpus;
> +            info.partition_properties =3D FFA_PART_VM_PROP;
> +            if ( dest_ctx->is_64bit )
> +                info.partition_properties |=3D FFA_PART_PROP_AARCH64_STA=
TE;
> +
> +            memcpy(dst_buf, &info, MIN(sizeof(info), dst_size));
> +
> +            if ( dst_size > sizeof(info) )
> +                memset(dst_buf + sizeof(info), 0,
> +                       dst_size - sizeof(info));
> +
> +            dst_buf +=3D dst_size;
> +            count++;
> +        }
> +    }
> +    *vm_count =3D count;
> +
> +out:
> +    read_unlock(&ffa_ctx_list_rwlock);
> +
> +    return ret;
> +}
> +
>  void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
>  {
>      int32_t ret =3D FFA_RET_OK;
> @@ -164,7 +231,7 @@ void ffa_handle_partition_info_get(struct cpu_user_re=
gs *regs)
>      };
>      uint32_t dst_size =3D 0;
>      void *dst_buf, *end_buf;
> -    uint32_t ffa_sp_count =3D 0;
> +    uint32_t ffa_vm_count =3D 0, ffa_sp_count =3D 0;
>
>      /*
>       * If the guest is v1.0, he does not get back the entry size so we m=
ust
> @@ -191,15 +258,18 @@ void ffa_handle_partition_info_get(struct cpu_user_=
regs *regs)
>          }
>
>          if ( ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) )
> +        {
>              ret =3D ffa_get_sp_count(uuid, &ffa_sp_count);
> +            if ( ret )
> +                goto out;
> +        }
>
> -        goto out;
> -    }
> +        /*
> +         * Do not count the caller VM as the spec is not clearly mandati=
ng it
> +         * and it is not supported by Linux.
> +         */
> +        ffa_vm_count =3D get_ffa_vm_count() - 1;
>
> -    if ( !ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) )
> -    {
> -        /* Just give an empty partition list to the caller */
> -        ret =3D FFA_RET_OK;
>          goto out;
>      }
>
> @@ -224,9 +294,19 @@ void ffa_handle_partition_info_get(struct cpu_user_r=
egs *regs)
>          goto out_rx_release;
>      }
>
> -    ret =3D ffa_get_sp_partinfo(uuid, &ffa_sp_count, dst_buf, end_buf,
> -                              dst_size);
> +    if ( ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) )
> +    {
> +        ret =3D ffa_get_sp_partinfo(uuid, &ffa_sp_count, dst_buf, end_bu=
f,
> +                                  dst_size);
> +
> +        if ( ret )
> +            goto out_rx_release;
> +
> +        dst_buf +=3D ffa_sp_count * dst_size;
> +    }
>
> +    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
> +        ret =3D ffa_get_vm_partinfo(&ffa_vm_count, dst_buf, end_buf, dst=
_size);
>
>  out_rx_release:
>      if ( ret )
> @@ -235,7 +315,7 @@ out:
>      if ( ret )
>          ffa_set_regs_error(regs, ret);
>      else
> -        ffa_set_regs_success(regs, ffa_sp_count, dst_size);
> +        ffa_set_regs_success(regs, ffa_sp_count + ffa_vm_count, dst_size=
);
>  }
>
>  static int32_t ffa_direct_req_send_vm(uint16_t sp_id, uint16_t vm_id,
> diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_privat=
e.h
> index 0a9c1082db28..1a1dcabcdc28 100644
> --- a/xen/arch/arm/tee/ffa_private.h
> +++ b/xen/arch/arm/tee/ffa_private.h
> @@ -195,6 +195,18 @@
>   */
>  #define FFA_PARTITION_INFO_GET_COUNT_FLAG BIT(0, U)
>
> +/*
> + * Partition properties we give for a normal world VM:
> + * - can send direct message but not receive them
> + * - can handle indirect messages
> + * - can receive notifications
> + * 32/64 bit flag is set depending on the VM
> + */
> +#define FFA_PART_VM_PROP    (FFA_PART_PROP_DIRECT_REQ_SEND | \
> +                             FFA_PART_PROP_INDIRECT_MSGS | \
> +                             FFA_PART_PROP_RECV_NOTIF | \
> +                             FFA_PART_PROP_IS_PE_ID)
> +
>  /* Flags used in calls to FFA_NOTIFICATION_GET interface  */
>  #define FFA_NOTIF_FLAG_BITMAP_SP        BIT(0, U)
>  #define FFA_NOTIF_FLAG_BITMAP_VM        BIT(1, U)
> @@ -297,36 +309,72 @@ struct ffa_ctx_notif {
>  };
>
>  struct ffa_ctx {
> -    void *rx;
> -    const void *tx;
> -    struct page_info *rx_pg;
> -    struct page_info *tx_pg;
> +    /*
> +     * Chain list of all FF-A contexts.
> +     * As we might have several read from the list of context through pa=
rallel
> +     * partinfo_get but fewer additions/removal as those happen only dur=
ing a
> +     * version negociation or guest shutdown, access to this list is pro=
tected

negotiation

With these two typos fixed, please apply:
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

Cheers,
Jens

> +     * through a rwlock (addition/removal with write lock, reading throu=
gh a
> +     * read lock).
> +     */
> +    struct list_head ctx_list; /* chain list of all FF-A contexts */
> +
> +    /*
> +     * Data access unlocked (mainly for part_info_get in VM to VM).
> +     * Those should be set before the ctx is added in the list.
> +     */
> +    /* FF-A Endpoint ID */
> +    uint16_t ffa_id;
> +    uint16_t num_vcpus;
> +    bool is_64bit;
> +
> +    /*
> +     * Global data accessed atomically or using ACCES_ONCE.
> +     */
> +    struct ffa_ctx_notif notif;
> +
> +    /*
> +     * Global data accessed with lock locked.
> +     */
> +    spinlock_t lock;
> +    /*
> +     * FF-A version negociated by the guest, only modifications to
> +     * this field are done with the lock held as this is expected to
> +     * be done once at init by a guest.
> +     */
> +    uint32_t guest_vers;
>      /* Number of 4kB pages in each of rx/rx_pg and tx/tx_pg */
>      unsigned int page_count;
> -    /* FF-A version used by the guest */
> -    uint32_t guest_vers;
> -    bool rx_is_free;
> -    /* Used shared memory objects, struct ffa_shm_mem */
> -    struct list_head shm_list;
>      /* Number of allocated shared memory object */
>      unsigned int shm_count;
> -    struct ffa_ctx_notif notif;
> +    /* Used shared memory objects, struct ffa_shm_mem */
> +    struct list_head shm_list;
> +
>      /*
> -     * tx_lock is used to serialize access to tx
> -     * rx_lock is used to serialize access to rx_is_free
> -     * lock is used for the rest in this struct
> +     * Rx buffer, accessed with rx_lock locked.
> +     * rx_is_free is used to serialize access.
>       */
> -    spinlock_t tx_lock;
>      spinlock_t rx_lock;
> -    spinlock_t lock;
> -    /* Used if domain can't be torn down immediately */
> +    bool rx_is_free;
> +    void *rx;
> +    struct page_info *rx_pg;
> +
> +    /*
> +     * Tx buffer, access with tx_lock locked.
> +     */
> +    spinlock_t tx_lock;
> +    const void *tx;
> +    struct page_info *tx_pg;
> +
> +
> +    /*
> +     * Domain teardown handling if data shared or used by other domains
> +     * do not allow to teardown the domain immediately.
> +     */
>      struct domain *teardown_d;
>      struct list_head teardown_list;
>      s_time_t teardown_expire;
> -    /*
> -     * Used for ffa_domain_teardown() to keep track of which SPs should =
be
> -     * notified that this guest is being destroyed.
> -     */
> +    /* Keep track of SPs that should be notified of VM destruction */
>      unsigned long *vm_destroy_bitmap;
>  };
>
> @@ -336,6 +384,12 @@ extern spinlock_t ffa_rx_buffer_lock;
>  extern spinlock_t ffa_tx_buffer_lock;
>  extern DECLARE_BITMAP(ffa_fw_abi_supported, FFA_ABI_BITMAP_SIZE);
>
> +extern struct list_head ffa_ctx_head;
> +extern rwlock_t ffa_ctx_list_rwlock;
> +#ifdef CONFIG_FFA_VM_TO_VM
> +extern atomic_t ffa_vm_count;
> +#endif
> +
>  bool ffa_shm_domain_destroy(struct domain *d);
>  void ffa_handle_mem_share(struct cpu_user_regs *regs);
>  int ffa_handle_mem_reclaim(uint64_t handle, uint32_t flags);
> @@ -368,6 +422,29 @@ int ffa_handle_notification_set(struct cpu_user_regs=
 *regs);
>  void ffa_handle_msg_send_direct_req(struct cpu_user_regs *regs, uint32_t=
 fid);
>  int32_t ffa_handle_msg_send2(struct cpu_user_regs *regs);
>
> +#ifdef CONFIG_FFA_VM_TO_VM
> +static inline uint16_t get_ffa_vm_count(void)
> +{
> +    return atomic_read(&ffa_vm_count);
> +}
> +
> +static inline void inc_ffa_vm_count(void)
> +{
> +    atomic_inc(&ffa_vm_count);
> +}
> +
> +static inline void dec_ffa_vm_count(void)
> +{
> +    ASSERT(atomic_read(&ffa_vm_count) > 0);
> +    atomic_dec(&ffa_vm_count);
> +}
> +#else
> +/* Only count the caller VM */
> +#define get_ffa_vm_count()  ((uint16_t)1UL)
> +#define inc_ffa_vm_count()  do {} while(0)
> +#define dec_ffa_vm_count()  do {} while(0)
> +#endif
> +
>  static inline uint16_t ffa_get_vm_id(const struct domain *d)
>  {
>      /* +1 since 0 is reserved for the hypervisor in FF-A */
> --
> 2.47.1
>


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 16:55:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 16:55:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072026.1435363 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujhQa-0000yj-7M; Wed, 06 Aug 2025 16:55:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072026.1435363; Wed, 06 Aug 2025 16:55: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 1ujhQa-0000yc-3H; Wed, 06 Aug 2025 16:55:48 +0000
Received: by outflank-mailman (input) for mailman id 1072026;
 Wed, 06 Aug 2025 16:55:47 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=sNe+=2S=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ujhQY-0000jh-VT
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 16:55:46 +0000
Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com
 [2a00:1450:4864:20::435])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3271b7b4-72e6-11f0-a323-13f23c93f187;
 Wed, 06 Aug 2025 18:55:46 +0200 (CEST)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-3b788feab29so10009f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 06 Aug 2025 09:55:46 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3b79c485444sm23908165f8f.66.2025.08.06.09.55.44
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Aug 2025 09:55: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>
X-Inumbo-ID: 3271b7b4-72e6-11f0-a323-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754499346; x=1755104146; 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=wO9JfllS5FWCnVoHAuqpBc7KBOdxU641rFIfPFgpLTw=;
        b=pDwjE5/im67z7/dTU21wKE51j1wSoIaZV7apokNRI+pNdduDxE+LQsmz9sC9fPicph
         Sq1l7F3nWO7yA2v12angKQs4BSY0gyL5QQjsqQWQ8QupiWIQBw/FcsYIxNzhu2F0745G
         LHlf01Q6/OCnaFU1sxvJaJX8aza7OWvhQjfRI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754499346; x=1755104146;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=wO9JfllS5FWCnVoHAuqpBc7KBOdxU641rFIfPFgpLTw=;
        b=CJMmZmO7Woux7eS0bsj0kVcOy/Rfyy1eTLgHuMrNIdvi7SeE0FezvsHEpS5FFkYaMl
         ZuXajzXh00pnzVpGvwL0mQmZEJXP8iHIP284vnZWdfmwJoAyJdC4gHbn1ECwXUyhs8lO
         7KJPw9TvwSjcRB569GQP/N5GySuGDvkAeiQrv9SpBm4uwKtoF9Rt9uLbPIsutLo/fLoY
         7uBzA956siPx2xqsaRO+UymwpiY/6dUPtQXDRh9FO3Tp0F2Yu7EhoGThVEIFmRSjO6Ca
         uFeY69SKT2qL/J4EeznvmD2h4PsqrZ9GVi2Qcpqcfh1zM7EO/AyahDAZn+ZxxAgZxvq4
         XSBA==
X-Gm-Message-State: AOJu0YxNRU8kwSiAUaqzwAU7pTAMG7kUhyF28zqrRcZkp2GD+09/pMOX
	MQjiJDOD2mlvY1a1VVO2QTZ1azGi5gAaJogaX6VaZcxs/InE9MVJEcOXkwP4AOfzmnCoBYHaNc/
	sHHA6sOQ=
X-Gm-Gg: ASbGncsAqe3daMf1PrqIjCg8CIR35icEAj2CPKI4Hi0v1kAf9IoSvSEWHA4HuvAr7cR
	tav80MJDy+KQOq6/KXOgE4uU7f3y7Swva5oFS7+/RcC4vslK5+uRVUoAfyHbZZwhDgQ9mKdReeB
	hNpfjcwOgivr8OE7a2K4FR+0LEMlt15wRBvosSR7TRhPXBlXKDH5mKgmrJD7v+bkdFh9yVY7cbd
	NCxZ6V1o6FXlts2EGUtYsHyFsQS6V+lYLMbUNtMwSwh9XY+zjh96IUOX0BrCu4aO3WKnhNUbKh3
	gWlqrsr+//myFzJchJsl0hFjLFIauB6UQNp/qBLj3az8sON1qcvTXC+sy6Lv8LTOfEwN8qt9hiy
	UjQ8KmBtQu1Odbf4AjTnnifdgtLIsJjNgMDwQAbKng/d4SsXuQmxEepm0KtpYoZQ9Gs4pPn7H58
	08
X-Google-Smtp-Source: AGHT+IEKw27/CH5tQ523u/T3Z2EEXzij0UN9NFs09fawluLr4FOsc/yxHA8IG/WkRQbgAA41opXegw==
X-Received: by 2002:a05:6000:258a:b0:3b7:9af4:9c93 with SMTP id ffacd0b85a97d-3b8f41c836cmr3450720f8f.35.1754499345637;
        Wed, 06 Aug 2025 09:55:45 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
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=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Ross Lagerwall <ross.lagerwall@citrix.com>
Subject: [PATCH] x86/domctl: Reject XEN_DOMCTL_hypercall_init against oneself
Date: Wed,  6 Aug 2025 17:55:43 +0100
Message-Id: <20250806165543.169140-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

A toolstack is expected to use XEN_DOMCTL_hypercall_init where applicable to
construct a new guest, but is absolutely not expected to use it against
itself.  Kernels have a stable ABI for accessing the same functionality, via
MSR 0x40000000.

Found when auditing hypercalls for Host UEFI-SecureBoot safety.

Reported-by: Frediano Ziglio <frediano.ziglio@cloud.com>
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: Ross Lagerwall <ross.lagerwall@citrix.com>
CC: Frediano Ziglio <frediano.ziglio@cloud.com>
---
 xen/arch/x86/domctl.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c
index 3044f706de1c..bf1ee4ed51a0 100644
--- a/xen/arch/x86/domctl.c
+++ b/xen/arch/x86/domctl.c
@@ -372,6 +372,14 @@ long arch_do_domctl(
         struct page_info *page;
         void *hypercall_page;
 
+        /*
+         * Kernels should use the MSR method to get a hypercall page.  The
+         * toolstack should not be using the DOMCTL on itself.
+         */
+        ret = -EINVAL;
+        if ( d == currd )
+            break;
+
         page = get_page_from_gfn(d, gmfn, NULL, P2M_ALLOC);
 
         if ( !page || !get_page_type(page, PGT_writable_page) )

base-commit: 68797a710f4e91cc09fe5650ee14478316010f88
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Aug 06 17:01:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 17:01:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072042.1435373 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujhWF-0002vH-Oe; Wed, 06 Aug 2025 17:01:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072042.1435373; Wed, 06 Aug 2025 17:01:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujhWF-0002vA-La; Wed, 06 Aug 2025 17:01:39 +0000
Received: by outflank-mailman (input) for mailman id 1072042;
 Wed, 06 Aug 2025 17:01:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Aypa=2S=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1ujhRX-0000Ro-Ma
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 16:56:47 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 55a1a05d-72e6-11f0-b898-0df219b8e170;
 Wed, 06 Aug 2025 18:56:45 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by AS8PR03MB7875.eurprd03.prod.outlook.com (2603:10a6:20b:422::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.14; Wed, 6 Aug
 2025 16:56:42 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9009.013; Wed, 6 Aug 2025
 16:56: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>
X-Inumbo-ID: 55a1a05d-72e6-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=j5sdVgSxHR8zF4z85TSPm8mgFSZXd0wCKM/S9oQrSVy5Je8ScBk0Lu1Rre1nCUYO3/jxrNRaB1SPouZbaZfCcUnrAocHfJhd1Dk4MqLehe4lLAOwwnd6YzVGVJwkeXlZL/7SfiGh7+4hczhcxMoJoWEoZ/jsRVccXgUaBDKMJ7DXp7tovYbL6+P6GceoRP9SMfWJrVcEMuMgF3zaucUkxAd9W3H1HQ9d/9TdNMyiyBkc+4Cz8qja+0SO/R572JJBs5h8QO6Nk1l5VUqMnDmNGLgrk9/SUGtIlK4HxKUiNkytYz5P/acQFg8UW6P8hTLFODa5xfPWrDWDe4fQSVX3Cg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=p4hP9oalgpWE7NMvy8cumy6l/xw7dk1i7U6ahzd4bpM=;
 b=pQIuGre/oHR83umCjXoS0twvAIU9djz+D9rWhwCHSCbKiXz4JO/L3oqBzEZW6Eo3ZudrLpF1yUs9jumExfuqnXTs2BBP7P5F2ji92NoWMinG3KyRrQeS6rHxiGTn6YQIyiIfkTD7Dx/vfeCis0Auh+p/7m/WBlyQFR0M0mncLfJ0CC4so8OyhMwByUcSJ4sU8Ei45rmDnAwfVTdZZ0/7il4I0+VPgqv7aCssxm8uV8xKhu9Zjde6IoScxnrqX7YO/M0Lag1co4tLt2uKdYHYyCOyipZU0Di6q0oqwJvxa4RYlgSATanqmWTk/amJWXRqEfbsOGouQACmcDv2H9oNbA==
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=p4hP9oalgpWE7NMvy8cumy6l/xw7dk1i7U6ahzd4bpM=;
 b=GS/rQG2mt3YAeRZSURC7A7BdJtEDtx7v3duA7PoHe5BPzvYPCJ6N6slNvUdhndQd4UIbnGJ7fjcSl7EHaqGrv45NysQ3aZihzsJEdDO9lQzS7ZkanJN+K6zS4/KapJxTNUSvanulSYy5aNFfVB334vaBRmUZj83kGOCf+P9a2nFIWCVqcbE3Bs728ZHbL6wBYOawznUcVrJ1nJEo8eunY574m+K/n5iZFExs6DYTuH+hJTtW3gMbUMmlo9rEo2gHWM8SvMQY2dA4vs/nx5PkIZr+pSVcBJjfOpDJfq7FKZQAvt7Q62V09dsVwy6tf0aSGbAHcAE4BNEPb2Gg5K4yQw==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Nicola Vetrini <nicola.vetrini@bugseng.com>, Jan Beulich
	<jbeulich@suse.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Doug
 Goldstein <cardoe@cardoe.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien
 Grall <julien@xen.org>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>
Subject: Re: [PATCH v4] misra: add deviations of MISRA C Rule 5.5
Thread-Topic: [PATCH v4] misra: add deviations of MISRA C Rule 5.5
Thread-Index: AQHcAlvRPvsNJLdA4EKfF9mnriBuYbRM0WUAgAkQDIA=
Date: Wed, 6 Aug 2025 16:56:42 +0000
Message-ID: <148c16be-03c0-43cd-a394-2b37088f4383@epam.com>
References:
 <afe942916b8a2408f575d2acda49699f74718161.1753991597.git.dmytro_prokopchuk1@epam.com>
 <a3ac54d4fa69bfde695a55791a89eab6@bugseng.com>
In-Reply-To: <a3ac54d4fa69bfde695a55791a89eab6@bugseng.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV2PR03MB9572:EE_|AS8PR03MB7875:EE_
x-ms-office365-filtering-correlation-id: 3fc86b6b-54fa-4491-d6a8-08ddd50a380a
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|42112799006|7416014|376014|1800799024|13003099007|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?QXlLUGd0UU41ZElOVzc3a3kva241SWIwR3MwTTJqamF5WGJEVURTMk1JWDhZ?=
 =?utf-8?B?N0V6YWxzTm51WElUUDRORjNSQmFFbXE2UnZCdU40ZkZYcS9ZUXUwcHNEKzQ1?=
 =?utf-8?B?WWV2RVBualdORXhOdXpxNTRndkk1SVpSeEdjZjNvNkNxNkNOU2EzelFSTVdF?=
 =?utf-8?B?NmhET29scmxQeGIxeHZyZEZscUk0bklYUjQ3T1dkcW5WRkovUTh1RExNckY5?=
 =?utf-8?B?MnJjQkc4M1hydS82TzExd1RVS0pNNmc5ZXBla21tM2MwMWVuRWU4aFQxcW12?=
 =?utf-8?B?d2JaMU9tOHZ0OUpFVGxRbzdSVVBUcldBVExFYTYrRm8vN1RQV1F3VkR5cS9y?=
 =?utf-8?B?b2VwS3VSRW52Q1lzRlFaY3J5Zi92RE9ILzFaeDhjQVgwTUNjVkhDSUtwRlZX?=
 =?utf-8?B?TFgyR01RMmRpTjFWaCtXcC9RYkFtazgxSWIrcnN5WXNhQnU2TjFMdDdhQjRQ?=
 =?utf-8?B?Ky9sY29sNlN1VjhyZmR1NVJoamFtUTZUcFJGOURCTEVpYlBWbko2ODczRGQz?=
 =?utf-8?B?Q3JzVTFGSHd5NUZRUWhab0g4cXg4NjMxRHY2RGR5ZktqcmJoT0hFOGk4a3Ja?=
 =?utf-8?B?RG93VFp0Yjh0eWJWTXErWHp2UWFzWGo5UUN4NG1iNDhQQlZNOWIrZ0RHdUhR?=
 =?utf-8?B?MStuM09ScjJaOW1XeDhjOS9XU0dzZTdPZXVCUlk5aUFQQVNueGUvV2RlTmp5?=
 =?utf-8?B?aHNhUk40bXRxZCtUNy9MRXpmaXRKanY0LzRSbUo3Z2d1K3hKZGRScWFUeGY2?=
 =?utf-8?B?TWVMejdlVkpFNVErVVhrL04rRFAvTU9CaUhNdFoxcEQyVzh4ajlmSlRKUnBx?=
 =?utf-8?B?Rm8xcDFmN3ZZMXEwc1V0TXk4OXJ5N0JsZU9wWU9ka1JSZTU3dmViRDZyOUJT?=
 =?utf-8?B?SWs4WU05azhXZy9VQjJET3RzZ0lONjQxdlpOcWZUeUZkUTUvVExiZjhuNWQ3?=
 =?utf-8?B?cFdpSXM4Sy9uNVVWTjBCSDdzbGlWU085UkdoVlEwRU01MXVTbFpseXJYbkZV?=
 =?utf-8?B?Wmpod3FwVmJoaU9DR0xKZmRUdC82SUQ5OW1qUGtpeUMxZzNFTEZUVHJtUkJ3?=
 =?utf-8?B?cDlKeExYYzJRNFluYUlZOUFjakVHU3IxT2xtQzhUMWR2RnhBOE1oN1VWNVAz?=
 =?utf-8?B?RVg3TCswRURtWkx3UnNGcExxcHpBU2MxeHhDeFh4VFk2UXBvUkpid1ZEWkUy?=
 =?utf-8?B?bWM2Y3Q1YjA1VGUyR2ZDTnA1ODQreFkyQnZzSjNPRHlTR0oyTWtLUy9ncXZD?=
 =?utf-8?B?bnRwYnphMG5TYXpIUW1mb1N5RnJrR3BLL2NCcGVUWEcraXlJcXdISWdJV1hE?=
 =?utf-8?B?OGRZTStTUmdLQ2dERE1VTEM3MG1aWUxaS3E2d2NGQXNnZ0ZvaWZ2S0tuc3pl?=
 =?utf-8?B?S2dpRkZueUhRNXBxMHdZS1VPRXpOYVNaWnNLM21odUxBYkVsMUtuZHZoQ2tl?=
 =?utf-8?B?U05SRVFsbCt5MmphUXpTOGRqL0tMdmtNL3NLeVRTdCs5ZTkveUcxYStzVmVH?=
 =?utf-8?B?cXE3QzFkS2g5OW81UU1zNHNQRVAxcDEwR1JibTcwaGlFRk52aUUxbllWSEhv?=
 =?utf-8?B?cnIrRjZ1N3g5dm9JZm52LzVQQTNEZzNNaDNRdFh6Q0VDQkNpY1J6bitDTGR1?=
 =?utf-8?B?YXRRQVVPVitpOTdRMVUyMHZaeDFGQ0RDNmFEVit4QUErRXJmMmVmYlNsc1p3?=
 =?utf-8?B?N0ErR3R6dnE2aFdjWnFCOGJJUmJKdGFYSytYZjlPK2VhbVlGQlRNdHlnMktv?=
 =?utf-8?B?c0tQdGZ1bEdNTnlxelh5b1pXam8yN05McjNzY09yOWRUWUt2YkJmeVFZdjhU?=
 =?utf-8?B?MkVNNHpNVnI3bTdYSmJoSnVxRXgxSGFDNS9DZm9tenpBSG44NzRQZC9vdXZr?=
 =?utf-8?B?KytTNDlNdndyVDNmWTNpY2hQdG1SK2x6ZHgzMWZteVdxSU40aGIrN0RTVUFI?=
 =?utf-8?Q?TDTQSdZrKDY=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(42112799006)(7416014)(376014)(1800799024)(13003099007)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?cnQxQTAvcmZiUjE5TnFtZkdJa2lFT1UrTjdvNExkazlDb0VhaUFicUpGNzFn?=
 =?utf-8?B?c01LY09XRzgrWFYyR0k3U000dWZFaldWb3M3ZE9OVDRmaTQrN2UrZ05VVkVL?=
 =?utf-8?B?WENhTXg4UVEyVktHdG1EZTB4VTQxZlFic0ZSbFpUU08rYkN1aCt0TTA0T2tD?=
 =?utf-8?B?WkVyNTJKNGRXQW1ZTjFHNkh0aTdPcWMzV3FacW5GR1orTTZzZStGWWZWbFg1?=
 =?utf-8?B?RUczRTZ0VFY3T0VWV21Wa3E5MHREZDdXajgvbTRSMHdURUEvUFVKSTJLLzRw?=
 =?utf-8?B?eFhMZzk5V0hmVDVFVk5BSnBBK0RMTnNvZVc5Tm03UWhqd2JNV2RNbW1tbXVL?=
 =?utf-8?B?UEs4MzF1bVoyZWtKbXhBa3VHUk1kWHJJdHJjWDluaWN5bWFUUFdSOTR1eFFX?=
 =?utf-8?B?d3ptV1gvODl2SlhUNmdCb0xNNFFVRzhTMVhTL081dEhvMERlVE9DQ1kzM1dv?=
 =?utf-8?B?aWExbnZUVHJFNHhhWnZsbkpWS3NtWHV1Z05DZHYraURPWUxIVWtTZEtDYXI5?=
 =?utf-8?B?VUtLQVJZOGtsb252dnJ4MGhKSGZKWjRsMVg0UmxaeVNibnJwME50U1hmb05I?=
 =?utf-8?B?c0lGODgxYmJpamp1cFYzVVZHVWlzaGlvZk9XYWM0amxyS2JWZzFLWVZwYkZz?=
 =?utf-8?B?OTUycXUrQ0hsOHB1dGpIZHNaZmJNTjVic1FGUUxabkV3NjhZQ241eWdwbWI2?=
 =?utf-8?B?Q1hma0dTb3p0VnROTm0yb0ZxYVJZR25Oc2Z3OVJURzlTR2pTYVB1M3RJMjdS?=
 =?utf-8?B?YnFnS2QwUXBzQUFieUVtMHdhNmNxLys0UjF1UmRFbmhIYm0yWTNWWUZpZkFX?=
 =?utf-8?B?cjE3UU94NUhlZVZHZG9mNm80NFM1N041OGlGa2t4aHlPMkRqZjVHbFgvc1Z6?=
 =?utf-8?B?OURSbit0ZFFGR0wvUkUzUnY0M1RBeXBMYmlJc1c1VU1uRUMyT29qU2w4K0xj?=
 =?utf-8?B?N2xGTlZubXYzTmgxUXhZQlI2RGNwclhYN2tnakFHLy83dEU5REd4bXFMM0Uz?=
 =?utf-8?B?U1VvaDVvUVRWVldkSUY2K1B4STZKZGJ2K05ydy9uRnhhK1J4RW45WnhMa1BD?=
 =?utf-8?B?MmpWVHo1d0FVUTNNeUszWDdXUitoNmhRZjRKLzRqcnVDMnNtNnViV1NESEVz?=
 =?utf-8?B?RE9zOFBvK0xjT2JwQTlVa3l1Vjh5dlpHaW9DMi91L0pJWlE0NlM0enJjaS9i?=
 =?utf-8?B?aGFEUEp2cDVYTUxZdTEwWlYySWNmeFNJaWRoSUZaTHhzZXZJcFVJS1cxU2N1?=
 =?utf-8?B?SmFIU3VQZG9zcVg0ZFdSL0RMVS82ODRISzZ2OTNnL0dwVzkwVUNQLzVYVHVN?=
 =?utf-8?B?and4WE1VcDF3NFhBblQ1amE2N2Y3bUp1Q3o1a0J5eGNXaHRTVUVmSTJjc09s?=
 =?utf-8?B?eGQvZFhvbWU4ajVBMVBhZWR3L3hORFdZUmRWNnpOVXkxRHFnK1NaUjlSV0VY?=
 =?utf-8?B?eWJBV0xUUFJtR2FkRXoyeXhla0h2U0xnYVZIeGNpaWxESUppZVFkb1Q5YlVU?=
 =?utf-8?B?Qy8wdjN5dnNSb2FjUGVhU1FaSFdvZ1FxMXRyYXhHbjFJOTk4UWRlUVVORHRj?=
 =?utf-8?B?czBKUG85bVlkdkZSTzJ1M2lhSGhYd2FXZk1zRU1OeUFKSTB3ZEkyOWFib2lI?=
 =?utf-8?B?RHRUZDFIQ1VyYkJXT3ZnTVVCY1NaRzJXUzU5MTFiaWREVHZQREMxNG5DTndp?=
 =?utf-8?B?RzZ5OUR3Zm5XSTJRZFZLSkVqS3N1eSthWWd1djhKQ1lqQWVCdTZySTcyaysz?=
 =?utf-8?B?MlNsWXdMOVVqejhiYjVVMHZXODRiL1V5V0prZzZBYjRlSU8xZ281bDJqTFFQ?=
 =?utf-8?B?dFVTZUdhdGF3OTEvdmtoS3NQN3NlTC9hVWZrNmNCby9RT3VIVjNQc0RkNTFX?=
 =?utf-8?B?VStXMWVCMkVwVitOcVdUNWZ3WXFnTVBLMXhmQXBVYy9KTmp2MnBsb1FqOHhB?=
 =?utf-8?B?L0ZlUGVwSUUwQjRVdjQwcGpWVWZNcDR2SzFiTmYwdTQxTUIwWmNYc3VNbWpl?=
 =?utf-8?B?b3pxS1BOOGFxamVrb3Zub1MzYmthMmxmQ2tsTDhwMFM0Nk85VTVHTUVySEE2?=
 =?utf-8?B?aGdTUEJmVWZTb3JsRG9RLzgwUUVJekJrWnBQSSt2TVFIS1MvRUtWY01PNC9B?=
 =?utf-8?B?UmFPa3NwakxrM2ZNbm9zT1RYTE1qR080TXJyVzNjRkgxUHgwZUxCajRiaVBY?=
 =?utf-8?B?Mmc9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <2091AAA6E04A9B4C98C5C2C710AD27D0@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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3fc86b6b-54fa-4491-d6a8-08ddd50a380a
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Aug 2025 16:56:42.2520
 (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: yMPxJH7pMej5odWmCZLG3gS91rk7EzGHPvwQANQ+Bm3LPo19ClqDHKGmn1TcGoaanW6FR+RLWxjfSIndDMo2Wj6s5EUdzHtxn383SrXxwMM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7875

DQoNCk9uIDgvMS8yNSAwMTozMiwgTmljb2xhIFZldHJpbmkgd3JvdGU6DQo+IE9uIDIwMjUtMDct
MzEgMjI6NDMsIERteXRybyBQcm9rb3BjaHVrMSB3cm90ZToNCj4+IE1JU1JBIEMgUnVsZSA1LjUg
c3RhdGVzOiAiSWRlbnRpZmllcnMgc2hhbGwgYmUgZGlzdGluY3QgZnJvbSBtYWNybyANCj4+IG5h
bWVzIi4NCj4+DQo+PiBVcGRhdGUgRUNMQUlSIGNvbmZpZ3VyYXRpb24gdG8gZGV2aWF0ZSBjbGFz
aGVzOiBzcGVjaWZ5IHRoZSBtYWNyb3MgdGhhdA0KPj4gc2hvdWxkIGJlIGlnbm9yZWQuIFVwZGF0
ZSBkZXZpYXRpb25zLnJzdCBhbmQgcnVsZXMucnN0IGFjY29yZGluZ2x5Lg0KPj4NCj4+IFNpZ25l
ZC1vZmYtYnk6IERteXRybyBQcm9rb3BjaHVrIDxkbXl0cm9fcHJva29wY2h1azFAZXBhbS5jb20+
DQo+IA0KPiBSZXZpZXdlZC1ieTogTmljb2xhIFZldHJpbmkgPG5pY29sYS52ZXRyaW5pQGJ1Z3Nl
bmcuY29tPiAjIEVDTEFJUg0KPiANCj4+IC0tLQ0KPj4gQ2hhbmdlcyBpbiB2NDoNCj4+IC0gZml4
ZWQgZm9ybWF0dGluZyAoYWxpZ25lZCBsZW5ndGggY2hhcnMgcGVyIGxpbmUpDQo+PiAtIHNldCAn
aWdub3JlZF9tYWNyb3MnIGFzIGEgcmVnZXggZXhwcmVzc2lvbg0KPj4gLSBzZXQgYSBkZXZpYXRp
b24gcmVzdHJpY3Rpb24gb24geGVuL2NvbW1vbi9ncmFudF90YWJsZS5jDQo+PiAtIHMvZW5zdXJl
cy90byBlbnN1cmUvDQo+PiAtIGZpeGVkIGdyYW1tYXIgZXJyb3JzDQo+Pg0KPj4gTGluayB0byB2
MzoNCj4+IGh0dHBzOi8vZXVyMDEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vPyAN
Cj4+IHVybD1odHRwcyUzQSUyRiUyRnBhdGNoZXcub3JnJTJGWGVuJTJGZTY4MWUwYzA4M2Q5NDVm
NDhlNmQwYWRkMWFlZTMyYWYxNmJlMjI0ZS4xNzUzOTExMjQ3LmdpdC5kbXl0cm8uXzVGcHJva29w
Y2h1azElNDBlcGFtLmNvbSUyRiZkYXRhPTA1JTdDMDIlN0NkbXl0cm9fcHJva29wY2h1azElNDBl
cGFtLmNvbSU3Q2U5ZDYwZGRlZWY3NjRkZmEzODEyMDhkZGQwODIzMTc4JTdDYjQxYjcyZDA0ZTlm
NGMyNjhhNjlmOTQ5ZjM2N2M5MWQlN0MxJTdDMCU3QzYzODg5NTk3OTc3ODg0NjQ3NyU3Q1Vua25v
d24lN0NUV0ZwYkdac2IzZDhleUpGYlhCMGVVMWhjR2tpT25SeWRXVXNJbFlpT2lJd0xqQXVNREF3
TUNJc0lsQWlPaUpYYVc0ek1pSXNJa0ZPSWpvaVRXRnBiQ0lzSWxkVUlqb3lmUSUzRCUzRCU3QzAl
N0MlN0MlN0Mmc2RhdGE9bjBRUHZxcjhPOGdvcyUyQllNcFolMkJNT0cwc3BDNDZBN1Q1NlZwejQ0
d3V0bHclM0QmcmVzZXJ2ZWQ9MA0KPj4NCj4+IFRlc3QgQ0kgcGlwZWxpbmU6DQo+PiBodHRwczov
L2V1cjAxLnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz8gDQo+PiB1cmw9aHR0cHMl
M0ElMkYlMkZnaXRsYWIuY29tJTJGeGVuLSANCj4+IHByb2plY3QlMkZwZW9wbGUlMkZkaW1hcHJr
cDRrJTJGeGVuJTJGLSANCj4+ICUyRnBpcGVsaW5lcyUyRjE5NjAwNjY1NzkmZGF0YT0wNSU3QzAy
JTdDZG15dHJvX3Byb2tvcGNodWsxJTQwZXBhbS5jb20lN0NlOWQ2MGRkZWVmNzY0ZGZhMzgxMjA4
ZGRkMDgyMzE3OCU3Q2I0MWI3MmQwNGU5ZjRjMjY4YTY5Zjk0OWYzNjdjOTFkJTdDMSU3QzAlN0M2
Mzg4OTU5Nzk3Nzg4NjkwMDIlN0NVbmtub3duJTdDVFdGcGJHWnNiM2Q4ZXlKRmJYQjBlVTFoY0dr
aU9uUnlkV1VzSWxZaU9pSXdMakF1TURBd01DSXNJbEFpT2lKWGFXNHpNaUlzSWtGT0lqb2lUV0Zw
YkNJc0lsZFVJam95ZlElM0QlM0QlN0MwJTdDJTdDJTdDJnNkYXRhPXo4RHRybHh4TjhueXJNTlJY
WFc4SWt0RmFydTRmM2Y4Tjk5aWlyaG5idzAlM0QmcmVzZXJ2ZWQ9MA0KPj4gLS0tDQo+PiDCoC4u
Li9lY2xhaXJfYW5hbHlzaXMvRUNMQUlSL2RldmlhdGlvbnMuZWNswqDCoMKgwqAgfCAxMCArKysr
KysrKysNCj4+IMKgZG9jcy9taXNyYS9kZXZpYXRpb25zLnJzdMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqAgfCAyMiArKysrKysrKysrKysrKysrKysrDQo+PiDCoGRvY3Mv
bWlzcmEvcnVsZXMucnN0wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqAgfCAxNyArKysrKysrKysrKysrKw0KPj4gwqAzIGZpbGVzIGNoYW5nZWQsIDQ5IGlu
c2VydGlvbnMoKykNCj4+DQo+PiBkaWZmIC0tZ2l0IGEvYXV0b21hdGlvbi9lY2xhaXJfYW5hbHlz
aXMvRUNMQUlSL2RldmlhdGlvbnMuZWNsIGIvIA0KPj4gYXV0b21hdGlvbi9lY2xhaXJfYW5hbHlz
aXMvRUNMQUlSL2RldmlhdGlvbnMuZWNsDQo+PiBpbmRleCA0ODM1MDdlN2I5Li5hYjM0MDBmYzg5
IDEwMDY0NA0KPj4gLS0tIGEvYXV0b21hdGlvbi9lY2xhaXJfYW5hbHlzaXMvRUNMQUlSL2Rldmlh
dGlvbnMuZWNsDQo+PiArKysgYi9hdXRvbWF0aW9uL2VjbGFpcl9hbmFseXNpcy9FQ0xBSVIvZGV2
aWF0aW9ucy5lY2wNCj4+IEBAIC0xMTcsNiArMTE3LDE2IEBAIGl0IGRlZmluZXMgd291bGQgKGlu
IHRoZSBjb21tb24gY2FzZSkgYmUgYWxyZWFkeSANCj4+IGRlZmluZWQuIFBlZXIgcmV2aWV3ZWQg
YnkgdGhlIGMNCj4+IMKgLWNvbmZpZz1NQzNBMi5SNS41LHJlcG9ydHMrPXtkZWxpYmVyYXRlLCAN
Cj4+ICJhbnlfYXJlYShkZWNsKGtpbmQoZnVuY3Rpb24pKXx8YW55X2xvYyhtYWNybyhuYW1lKG1l
bWNweXx8bWVtc2V0fHwgDQo+PiBtZW1tb3ZlKSkpKSYmYW55X2FyZWEoYW55X2xvYyhmaWxlKF54
ZW4vY29tbW9uL2xpYmVsZi9saWJlbGYtcHJpdmF0ZVwgDQo+PiBcLmgkKSkpIn0NCj4+IMKgLWRv
Y19lbmQNCj4+DQo+PiArLWRvY19iZWdpbj0iQ2xhc2hlcyBiZXR3ZWVuIGJpdG9wcyBmdW5jdGlv
bnMgYW5kIG1hY3JvIG5hbWVzIGFyZSANCj4+IGRlbGliZXJhdGUuDQo+PiArVGhlc2UgbWFjcm9z
IGFyZSBuZWVkZWQgZm9yIGlucHV0IHZhbGlkYXRpb24gYW5kIGVycm9yIGhhbmRsaW5nLiINCj4+
ICstY29uZmlnPU1DM0EyLlI1LjUsaWdub3JlZF9tYWNyb3MrPSJeKF9fKT8odGVzdHxzZXR8Y2xl
YXJ8Y2hhbmdlfCANCj4+IHRlc3RfYW5kXyhzZXR8Y2xlYXJ8Y2hhbmdlKSlfYml0JCINCj4+ICst
ZG9jX2VuZA0KPj4gKw0KPj4gKy1kb2NfYmVnaW49IkNsYXNoZXMgYmV0d2VlbiBncmFudCB0YWJs
ZSBmdW5jdGlvbnMgYW5kIG1hY3JvIG5hbWVzIGluIA0KPj4gJ3hlbi9jb21tb24vZ3JhbnRfdGFi
bGUuYycgYXJlIGRlbGliZXJhdGUuDQo+PiArVGhlc2UgbWFjcm9zIGFkZHJlc3MgZGlmZmVyZW5j
ZXMgaW4gYXJndW1lbnQgY291bnQgZHVyaW5nIGNvbXBpbGUtIA0KPj4gdGltZSwgZWZmZWN0aXZl
bHkgZGlzY2FyZGluZyB1bnVzZWQgcGFyYW1ldGVycyB0byBhdm9pZCB3YXJuaW5ncyBvciANCj4+
IGVycm9ycyByZWxhdGVkIHRvIHRoZW0uIg0KPj4gKy1jb25maWc9TUMzQTIuUjUuNSxpZ25vcmVk
X21hY3Jvcys9Im5hbWUodXBkYXRlX2dudHRhYl9wYXJ8fCANCj4+IHBhcnNlX2dudHRhYl9saW1p
dCkmJmxvYyhmaWxlKF54ZW4vY29tbW9uL2dyYW50X3RhYmxlXFwuYyQpKSINCj4+ICstZG9jX2Vu
ZA0KPj4gKw0KPj4gwqAtZG9jX2JlZ2luPSJUaGUgdHlwZSBcInJldF90XCIgaXMgZGVsaWJlcmF0
ZWx5IGRlZmluZWQgbXVsdGlwbGUgdGltZXMsDQo+PiDCoGRlcGVuZGluZyBvbiB0aGUgZ3Vlc3Qu
Ig0KPj4NCj4+IC0gDQo+PiBjb25maWc9TUMzQTIuUjUuNixyZXBvcnRzKz17ZGVsaWJlcmF0ZSwi
YW55X2FyZWEoYW55X2xvYyh0ZXh0KF4uKnJldF90LiokKSkpIn0NCj4+IGRpZmYgLS1naXQgYS9k
b2NzL21pc3JhL2RldmlhdGlvbnMucnN0IGIvZG9jcy9taXNyYS9kZXZpYXRpb25zLnJzdA0KPj4g
aW5kZXggZTc4MTc5ZmNiOC4uNGM2NGE4YmU2MiAxMDA2NDQNCj4+IC0tLSBhL2RvY3MvbWlzcmEv
ZGV2aWF0aW9ucy5yc3QNCj4+ICsrKyBiL2RvY3MvbWlzcmEvZGV2aWF0aW9ucy5yc3QNCj4+IEBA
IC0xNDIsNiArMTQyLDI4IEBAIERldmlhdGlvbnMgcmVsYXRlZCB0byBNSVNSQSBDOjIwMTIgUnVs
ZXM6DQo+PiDCoMKgwqDCoMKgwqDCoCBtZW1tb3ZlLg0KPj4gwqDCoMKgwqDCoCAtIFRhZ2dlZCBh
cyBgZGVsaWJlcmF0ZWAgZm9yIEVDTEFJUi4NCj4+DQo+PiArwqDCoCAqIC0gUjUuNQ0KPj4gK8Kg
wqDCoMKgIC0gQ2xhc2hlcyBiZXR3ZWVuIGJpdG9wcyAoJ19fdGVzdF9hbmRfc2V0X2JpdCcsIA0K
Pj4gJ19fdGVzdF9hbmRfY2xlYXJfYml0JywNCj4+ICvCoMKgwqDCoMKgwqAgJ19fdGVzdF9hbmRf
Y2hhbmdlX2JpdCcsICd0ZXN0X2JpdCcsICdzZXRfYml0JywgJ2NsZWFyX2JpdCcsIA0KPj4gJ2No
YW5nZV9iaXQnLA0KPj4gK8KgwqDCoMKgwqDCoCAndGVzdF9hbmRfc2V0X2JpdCcsICd0ZXN0X2Fu
ZF9jbGVhcl9iaXQnLCAndGVzdF9hbmRfY2hhbmdlX2JpdCcpDQo+PiArwqDCoMKgwqDCoMKgIGZ1
bmN0aW9ucyBhbmQgbWFjcm8gbmFtZXMgYXJlIGludGVudGlvbmFsLiBUaGVzZSBhcmUgbmVjZXNz
YXJ5IA0KPj4gZm9yIGVycm9yDQo+PiArwqDCoMKgwqDCoMKgIGhhbmRsaW5nIGFuZCBpbnB1dCB2
YWxpZGF0aW9uIHRvIGVuc3VyZSB0aGF0IHRoZSBzaXplIG9mIHRoZSANCj4+IG9iamVjdCBiZWlu
Zw0KPj4gK8KgwqDCoMKgwqDCoCByZWZlcmVuY2VkIGJ5IHRoZSBtZW1vcnkgYWRkcmVzcyAocGFz
c2VkIGFzIGFuIGFyZ3VtZW50IHRvIHRoZSANCj4+IG1hY3JvKQ0KPj4gK8KgwqDCoMKgwqDCoCBt
ZWV0cyB0aGUgbWluaW11bSByZXF1aXJlbWVudHMgZm9yIHRoZSBiaXQgb3BlcmF0aW9uLiBUaGlz
IA0KPj4gcHJldmVudHMgdW5zYWZlDQo+PiArwqDCoMKgwqDCoMKgIG9wZXJhdGlvbnMgb24gaW1w
cm9wZXJseSBzaXplZCBkYXRhIHR5cGVzIHRoYXQgY291bGQgbGVhZCB0byANCj4+IHVuZGVmaW5l
ZA0KPj4gK8KgwqDCoMKgwqDCoCBiZWhhdmlvciBvciBtZW1vcnkgY29ycnVwdGlvbi4gVGhlIG1h
Y3JvcyBlbmNhcHN1bGF0ZSB0aGlzIA0KPj4gY29uZGl0aW9uYWwNCj4+ICvCoMKgwqDCoMKgwqAg
bG9naWMgaW50byBhIHNpbmdsZSwgcmV1c2FibGUgZm9ybSwgc2ltcGxpZnlpbmcgdGhlIGNvZGUg
YW5kIA0KPj4gYXZvaWRpbmcNCj4+ICvCoMKgwqDCoMKgwqAgZnVuY3Rpb24gY2FsbCBvdmVyaGVh
ZC4gQWxzbyB0aGlzIGJpdCBvcGVyYXRpb25zIEFQSSB3YXMgDQo+PiBpbmhlcml0ZWQgZnJvbQ0K
Pj4gK8KgwqDCoMKgwqDCoCBMaW51eCBhbmQgc2hvdWxkIGJlIGtlcHQgZm9yIGZhbWlsaWFyaXR5
Lg0KPj4gK8KgwqDCoMKgIC0gRUNMQUlSIGhhcyBiZWVuIGNvbmZpZ3VyZWQgdG8gaWdub3JlIHRo
ZXNlIG1hY3Jvcy4NCj4+ICsNCj4+ICvCoMKgICogLSBSNS41DQo+PiArwqDCoMKgwqAgLSBDbGFz
aGVzIGJldHdlZW4gZ3JhbnQgdGFibGUgKCd1cGRhdGVfZ250dGFiX3BhcicsIA0KPj4gJ3BhcnNl
X2dudHRhYl9saW1pdCcpDQo+PiArwqDCoMKgwqDCoMKgIGZ1bmN0aW9ucyBhbmQgbWFjcm8gbmFt
ZXMgYXJlIGludGVudGlvbmFsLiBUaGVzZSBtYWNyb3MgYWRkcmVzcw0KPj4gK8KgwqDCoMKgwqDC
oCBkaWZmZXJlbmNlcyBpbiBhcmd1bWVudCBjb3VudCBkdXJpbmcgY29tcGlsZS10aW1lLCBlZmZl
Y3RpdmVseSANCj4+IGRpc2NhcmRpbmcNCj4+ICvCoMKgwqDCoMKgwqAgdW51c2VkIDJuZCBhbmQg
M3JkIHBhcmFtZXRlcnMgdG8gYXZvaWQgd2FybmluZ3Mgb3IgZXJyb3JzIA0KPj4gcmVsYXRlZCB0
byB0aGVtLg0KPj4gK8KgwqDCoMKgIC0gRUNMQUlSIGhhcyBiZWVuIGNvbmZpZ3VyZWQgdG8gaWdu
b3JlIHRoZXNlIG1hY3Jvcy4NCj4+ICsNCj4+IMKgwqDCoCAqIC0gUjUuNg0KPj4gwqDCoMKgwqDC
oCAtIFRoZSB0eXBlIHJldF90IGlzIGRlbGliZXJhdGVseSBkZWZpbmVkIG11bHRpcGxlIHRpbWVz
IA0KPj4gZGVwZW5kaW5nIG9uIHRoZQ0KPj4gwqDCoMKgwqDCoMKgwqAgdHlwZSBvZiBndWVzdCB0
byBzZXJ2aWNlLg0KPj4gZGlmZiAtLWdpdCBhL2RvY3MvbWlzcmEvcnVsZXMucnN0IGIvZG9jcy9t
aXNyYS9ydWxlcy5yc3QNCj4+IGluZGV4IDNlMDE0YTYyOTguLmNiYTE1OTMzZmUgMTAwNjQ0DQo+
PiAtLS0gYS9kb2NzL21pc3JhL3J1bGVzLnJzdA0KPj4gKysrIGIvZG9jcy9taXNyYS9ydWxlcy5y
c3QNCj4+IEBAIC0xOTYsNiArMTk2LDIzIEBAIG1haW50YWluZXJzIGlmIHlvdSB3YW50IHRvIHN1
Z2dlc3QgYSBjaGFuZ2UuDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICNkZWZpbmUgZih4LCB5
KSBmKHgsIHkpDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHZvaWQgZihpbnQgeCwgaW50IHkp
Ow0KPj4NCj4+ICvCoMKgwqDCoMKgwqAgQ2xhc2hlcyBiZXR3ZWVuIGJpdG9wcyBmdW5jdGlvbnMg
YW5kIG1hY3JvIG5hbWVzIGFyZSBhbGxvd2VkDQo+PiArwqDCoMKgwqDCoMKgIGJlY2F1c2UgdGhl
eSBhcmUgdXNlZCBmb3IgaW5wdXQgdmFsaWRhdGlvbiBhbmQgZXJyb3IgaGFuZGxpbmcuDQo+PiAr
wqDCoMKgwqDCoMKgIEV4YW1wbGU6Og0KPj4gKw0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgIHN0
YXRpYyBpbmxpbmUgdm9pZCBzZXRfYml0KGludCBuciwgdm9sYXRpbGUgdm9pZCAqYWRkcikNCj4+
ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCB7DQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oCBhc20gdm9sYXRpbGUgKCAibG9jayBidHNsICUxLCUwIg0KPj4gK8KgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgOiAiK20iIChBRERSKSA6
ICJJciIgKG5yKSA6ICJtZW1vcnkiKTsNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCB9DQo+PiAr
wqDCoMKgwqDCoMKgwqDCoMKgwqAgI2RlZmluZSBzZXRfYml0KG5yLCBhZGRyKSAoe8KgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBcDQo+PiArwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoIGJpdG9wX2JhZF9zaXplKGFkZHIpICkgX19i
aXRvcF9iYWRfc2l6ZSgpO8KgwqDCoMKgIFwNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgIHNldF9iaXQobnIsIGFkZHIpO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBcDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKg
wqAgfSkNCj4+ICsNCj4+ICvCoMKgwqDCoMKgwqAgQ2xhc2hlcyBiZXR3ZWVuIGdyYW50IHRhYmxl
IGZ1bmN0aW9ucyBhbmQgbWFjcm8gbmFtZXMgYXJlIGFsbG93ZWQNCj4+ICvCoMKgwqDCoMKgwqAg
YmVjYXVzZSB0aGV5IGFyZSB1c2VkIGZvciBkaXNjYXJkaW5nIHVudXNlZCBwYXJhbWV0ZXJzLg0K
Pj4gKw0KPj4gwqDCoMKgICogLSBgUnVsZSA1LjYgPGh0dHBzOi8vZXVyMDEuc2FmZWxpbmtzLnBy
b3RlY3Rpb24ub3V0bG9vay5jb20vPyANCj4+IHVybD1odHRwcyUzQSUyRiUyRmdpdGxhYi5jb20l
MkZNSVNSQSUyRk1JU1JBLUMlMkZNSVNSQS0gDQo+PiBDLTIwMTIlMkZFeGFtcGxlLVN1aXRlJTJG
LSANCj4+ICUyRmJsb2IlMkZtYXN0ZXIlMkZSXzA1XzA2LmMmZGF0YT0wNSU3QzAyJTdDZG15dHJv
X3Byb2tvcGNodWsxJTQwZXBhbS5jb20lN0NlOWQ2MGRkZWVmNzY0ZGZhMzgxMjA4ZGRkMDgyMzE3
OCU3Q2I0MWI3MmQwNGU5ZjRjMjY4YTY5Zjk0OWYzNjdjOTFkJTdDMSU3QzAlN0M2Mzg4OTU5Nzk3
Nzg4ODM4MjIlN0NVbmtub3duJTdDVFdGcGJHWnNiM2Q4ZXlKRmJYQjBlVTFoY0draU9uUnlkV1Vz
SWxZaU9pSXdMakF1TURBd01DSXNJbEFpT2lKWGFXNHpNaUlzSWtGT0lqb2lUV0ZwYkNJc0lsZFVJ
am95ZlElM0QlM0QlN0MwJTdDJTdDJTdDJnNkYXRhPWNyVll3cjRBMHZ5WGNVWGZRMiUyRko1RU9i
V2ZyMFhHTGdhUTAlMkZMSDlwTW5NJTNEJnJlc2VydmVkPTA+YF8NCj4+IMKgwqDCoMKgwqAgLSBS
ZXF1aXJlZA0KPj4gwqDCoMKgwqDCoCAtIEEgdHlwZWRlZiBuYW1lIHNoYWxsIGJlIGEgdW5pcXVl
IGlkZW50aWZpZXINCj4gDQoNCkhlbGxvIEphbiwgTmljb2xhLg0KDQpEbyB5b3UgaGF2ZSBhbnkg
Y29tbWVudHMgcmVnYXJkaW5nIHRoaXMgcGF0Y2g/DQpEb2VzIGl0IHJlcXVpcmUgdXBkYXRlcy9m
aXhlcz8NCg0KRG15dHJv


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 17:19:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 17:19:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072055.1435383 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujhn3-00052c-4C; Wed, 06 Aug 2025 17:19:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072055.1435383; Wed, 06 Aug 2025 17:19: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 1ujhn3-00052V-0s; Wed, 06 Aug 2025 17:19:01 +0000
Received: by outflank-mailman (input) for mailman id 1072055;
 Wed, 06 Aug 2025 17:19:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=sNe+=2S=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ujhn2-00052N-70
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 17:19:00 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 70174fc2-72e9-11f0-a323-13f23c93f187;
 Wed, 06 Aug 2025 19:18:58 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-455b00339c8so1144085e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 Aug 2025 10:18:58 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459dd85f423sm117872045e9.18.2025.08.06.10.18.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 06 Aug 2025 10:18: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>
X-Inumbo-ID: 70174fc2-72e9-11f0-a323-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754500737; x=1755105537; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=fycESYHvMlXY4+OXo1c6bZ155av+Ka8X4doJs4DZUbA=;
        b=QQUMY02xjNDFGUZtHxZvR5543qgfu/hVe+GsNF6ngGC9zMyVVJRcjXZHoOojBg0rrT
         mhR8f0mbCGzKrviQm8zbYc0scUTS5oeeWfC2wdZUja3pEgicHUAMOftD5bOy21lYezk2
         rtJ5j8NJRZclHRkvOkc3MHzofuPieuKQV5D7w=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754500737; x=1755105537;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fycESYHvMlXY4+OXo1c6bZ155av+Ka8X4doJs4DZUbA=;
        b=uJxY5jcIL3Ctqp6zaDKSxREmIKjZ0NMRd4HIUdoUBJ/wpLwvXDwrHmQ81W5X2J32Z0
         9zPN7nNvWrexaFiQQ/Smzd+bzqk5+xp4RdrvDeY0fKycnJ8XLXF5/WNxUzljRViW9spg
         /CH1Gk0ILo1c2oirdIv7mJFusH25HLrX0l3mirdVKMU8EyfYOwGRBWpDzuccrzJFBuTY
         EEQmqfx2ZDH+rhGuZVkf+f1keQjABSRKr5HSPbxk7od2iZ3QKJ3B2P8Un3FemG4gLq2k
         HrszV6JtLpcdl7Pm7HT4UslqkPOVcZlKfrUvv10eXlvD0OpNncByM/ALRlR7pnKLwxE1
         CA/A==
X-Gm-Message-State: AOJu0YxteM4i2NhzrwLZadKWbI0HtlEh8GS5Z3zkn9EYhFBaM9x4Mkvv
	bjtFHM9OMb0ahlglaKVf1n5ZCOHLWPXLcfRO/vEQeq08QWfLnJnjwPvRI0Ykv8qtN8+IcuCDFfE
	EtqSZFVU=
X-Gm-Gg: ASbGncsOtGKMLFvo0qXh+TpLMCD2J/hjODV+LBR0J+/6C68uOUTpBzOqV5pv9lssa5R
	xZCNSvM1dXyPw+GHhlzmU3kWsx1zIrfnlZaprbHfXMwq78dLqO81Hfj7Z8/nrQ5CHGQEJnbx50C
	4zLVThenL0DyZSfPd9xXCRMuO9WNcaoO003HC4XGp0x/qWvodJotU3iH6DNPMduyRjTqdQSkRrK
	Z2+q17fZ8i5at29A2EYQrWfiL7djpo2AjnqvPpcJakiBL9E1p9OxmbaGmBbnq2ZKdMS1dgRKT75
	zOKmW00kArxUJvGv9vS1lNtWU9Ml4xNsOoSfHILdEsl6zh3tLzo3g5NqiRxADyOxUY/5gAFgroR
	3Po4szjLvM9fEi8O4OtRaW19K8MqWtg5LyviHNwicoVTGdG4px3OcsP9f2B/lPT2BRvez
X-Google-Smtp-Source: AGHT+IEmbrkZiMfmYNE3BzYKROfhK+cEN+E91S0UnGhWVCXUWcoo0liAAb475aoyuPryIUW7BpUtEA==
X-Received: by 2002:a05:600c:198a:b0:43d:563:6fef with SMTP id 5b1f17b1804b1-459e70ec7e9mr31249545e9.21.1754500737539;
        Wed, 06 Aug 2025 10:18:57 -0700 (PDT)
Message-ID: <f66d1f51-61fd-4fdc-99ac-74411d1ce888@citrix.com>
Date: Wed, 6 Aug 2025 18:18:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/domctl: Reject XEN_DOMCTL_hypercall_init against
 oneself
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: 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>,
 Ross Lagerwall <ross.lagerwall@citrix.com>,
 Daniel Smith <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
References: <20250806165543.169140-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: <20250806165543.169140-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06/08/2025 5:55 pm, Andrew Cooper wrote:
> A toolstack is expected to use XEN_DOMCTL_hypercall_init where applicable to
> construct a new guest, but is absolutely not expected to use it against
> itself.  Kernels have a stable ABI for accessing the same functionality, via
> MSR 0x40000000.
>
> Found when auditing hypercalls for Host UEFI-SecureBoot safety.
>
> Reported-by: Frediano Ziglio <frediano.ziglio@cloud.com>
> 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: Ross Lagerwall <ross.lagerwall@citrix.com>
> CC: Frediano Ziglio <frediano.ziglio@cloud.com>

It's worth nothing that the observations which lead to this mean it's
impossible to support multiple TCB domains without Flask.

Imagine that we did have two control domains and they could operate on
each other.Â  It's inappropriate for the domain's kernel to be auditing
which domid's are which privilege.

Flask can let Xen express that level of control, and in practice the
system would need configuring with a privilege hierarchy.Â 
Equally-powerful domains which can operate on each other simply doesn't
make sense from a system point of view.

But, as Flask is not supported yet in Xen, the Host UEFI-SB security
policy is going to have to be limited to a single all-power dom0 in the
short term.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 17:24:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 17:24:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072066.1435394 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujhsX-0006x5-Su; Wed, 06 Aug 2025 17:24:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072066.1435394; Wed, 06 Aug 2025 17:24: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 1ujhsX-0006wy-OU; Wed, 06 Aug 2025 17:24:41 +0000
Received: by outflank-mailman (input) for mailman id 1072066;
 Wed, 06 Aug 2025 17:24:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kasG=2S=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1ujhsW-0006wp-S8
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 17:24:40 +0000
Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com
 [2a00:1450:4864:20::436])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 36202aad-72ea-11f0-b898-0df219b8e170;
 Wed, 06 Aug 2025 19:24:30 +0200 (CEST)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-3b7823559a5so31380f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 06 Aug 2025 10:24:30 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-458bbf91b69sm103940455e9.3.2025.08.06.10.24.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Aug 2025 10:24: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>
X-Inumbo-ID: 36202aad-72ea-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754501070; x=1755105870; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=fw/+6mXx5CPspFt0bbPlaCwA4OY4W//Q8nU4jM5mZHY=;
        b=wQv40vbNORTZO0rlYCTlysFaNK+1ShpB66tohfU1IXoxOEm5sKfBkV9XQmhpMpf8tC
         99X8qHlOYrTqWV6v8Dc2JSv+BS4gcJU2wcHBogljEVnzvNbi1ndSPiAORZCpxE4LRSLA
         M1BbnL3bKLhHEUaw+yP1im6RUZBHIxUklpC8w=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754501070; x=1755105870;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=fw/+6mXx5CPspFt0bbPlaCwA4OY4W//Q8nU4jM5mZHY=;
        b=orBRrrIs9mlfHD2d1hMoMFJUNo45symn4YNwKtQUKezjl1PoOTCjC00+/e+8vcZBon
         3RUsCkuYy52Z1Cu+GLcRZV6JI5sZyBLiqwPRmuU3RGA2E4FhNSpnv8ptCngYYySWnNe3
         5wUipm8kjXQYRzV2OCVYf1JZa33HhCtdlJx4+1/6cWNXXtCmpIhjNM2KqlbR/dMbbW8n
         qAzfcrUbnh0G0m5YZuMD5hor75GchDgnMYY8kH1/SlQAC9pxhfkiFATcFOw9rnRozLWi
         t5DrIfA9yWxYultdOV3Ovfhoc33F2aMN//vDc4poeixHggNihLHCQwOTo9THMYCxnn/C
         AujQ==
X-Gm-Message-State: AOJu0YzOFlQDfSAkmcs7NaSPprB9bHWg1N+I4AH9z2WwltSjj1GZYO2l
	TAg+M2rPkvpeJL8AYkSz5ODXkIRyxtf5tFSq6N7DWdi+A3DLfnBetiPsD1rE/T7RBVU=
X-Gm-Gg: ASbGnctXte7wDkcH9jQfC1ALHyQ4Nnx+2et3c1NflazlSp6dQd/uO3dQgU+R1bV0Y0R
	AEYDi3QZlURtUGU3x4Zq2FgA6TyfWtoLn7IakHrAu0FjYrblZkdndl8ZAGqn3I3LRJ/vBiXGzMk
	YYaw02yL3KjlKaFO9NBaHTT2v+Z7UC2NF+brZjEFePNnR9Dowbq2JEP+qMewHlLJmPkfzPLFmmg
	irw+tLMv5oxg5D8Bj+VD87PLhO5ye0nq8N5A1B/P3o/8eYCkKQ9fLwurIS8wdBXU0FdVLdUvPRt
	RAfucs2uvBjiwWkvbNKRt4WcuFwO2G7QptTeKiEHKdUoljPHYTfu6t5q7KwwxLda84CqmYX8hIy
	0yPphWsx42hZJJAYKSv54umtqaKUNQ9XnQNzY1LDQ1PVLh1AxAhcFcuCZnrvybMkOUTLDYMzgGZ
	UN
X-Google-Smtp-Source: AGHT+IEwpUIqxnnrBJOz5ap7U35fW0fNn/Zvw9qrLl79T8nna5FoCNOfXioLKhyrQi84kiKHyjLG7A==
X-Received: by 2002:a5d:64ed:0:b0:3a4:d9fa:f1ed with SMTP id ffacd0b85a97d-3b8f41bb845mr3189379f8f.13.1754501070177;
        Wed, 06 Aug 2025 10:24:30 -0700 (PDT)
Date: Wed, 6 Aug 2025 19:24:29 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com,
	anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org,
	michal.orzel@amd.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: Re: [PATCH v4 5/8] emul/vuart-ns16550: introduce NS16550-compatible
 UART emulator (x86)
Message-ID: <aJOPzSluXlDgBP-g@macbook.local>
References: <20250731192130.3948419-1-dmukhin@ford.com>
 <20250731192130.3948419-6-dmukhin@ford.com>
 <aJNvcLgsUOahsQZl@macbook.local>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <aJNvcLgsUOahsQZl@macbook.local>

On Wed, Aug 06, 2025 at 05:06:24PM +0200, Roger Pau MonnÃ© wrote:
> On Thu, Jul 31, 2025 at 07:22:06PM +0000, dmkhn@proton.me wrote:
> > From: Denis Mukhin <dmukhin@ford.com> 
> Overall I agree for Jan it would be better if this patch could be
> split into somehow smaller units.  Is this something feasible?  We
> don't want a patch for each register handle, but maybe you cna somehow
> grup those into functional sections, so that patches can be < 250
> lines?

I've been thinking about this, would it be feasible to have a first
patch that introduces all the boilerplate, like adding the domain
create option, wire the libxl bits, but doesn't actually add any
emulation at all.  Then further patches could fill in the emulation
slowly, starting with a patch to register the IO port handlers
(initially would be empty functions), and progressing from the basic
parts (uart initialization maybe?) towards the end implementation that
you have here.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 17:31:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 17:31:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072073.1435402 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujhzJ-0000KY-Hy; Wed, 06 Aug 2025 17:31:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072073.1435402; Wed, 06 Aug 2025 17:31: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 1ujhzJ-0000KR-F7; Wed, 06 Aug 2025 17:31:41 +0000
Received: by outflank-mailman (input) for mailman id 1072073;
 Wed, 06 Aug 2025 17:31:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=7Hpz=2S=nvidia.com=jgg@srs-se1.protection.inumbo.net>)
 id 1ujhzI-0000KL-24
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 17:31:40 +0000
Received: from NAM02-BN1-obe.outbound.protection.outlook.com
 (mail-bn1nam02on20609.outbound.protection.outlook.com
 [2a01:111:f403:2407::609])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 340e5e71-72eb-11f0-b898-0df219b8e170;
 Wed, 06 Aug 2025 19:31:37 +0200 (CEST)
Received: from CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13)
 by BL1PR12MB5898.namprd12.prod.outlook.com (2603:10b6:208:396::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.20; Wed, 6 Aug
 2025 17:31:33 +0000
Received: from CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732]) by CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732%4]) with mapi id 15.20.9009.013; Wed, 6 Aug 2025
 17:31: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>
X-Inumbo-ID: 340e5e71-72eb-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=pEcD/7UswNX8ydTSitOoL5xD5wfTPUt6w5nbCvLZLizVbrDofFEImCT/DPqSWLnH0A7hX0CfKqaUfnfGsRLYgcVT97KHHnjAFhaoSyLh/PHfNq8zs6jUXO+UsJf856K9EWmxC3XTnQTvVsO3IPxnQarf/7xtSMHroFmk9U17LEPcssPtoXh7fTJzuGPDm3Fh6+EkHY9o6IJ5je+ZEBtpxZ2/djzM+sy329snCwH+U5yCoZmMZr3HlUUePcAfPtENaYVHX9yVEpcSNKtJPiQtmnoqzeN5D3L6en6UuRslDOG+R51ARbkKrz5EpCoARP7njow0SQMr1YyIF0wjzi6HUQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=iyBBtGtiRatUjTAS6JqftkIY0Yr20GlVu4ehze8ZHrE=;
 b=h2mjP5taYqiZXxIdCNIHs6ise3BGw/D0zku5eHum1BuSzOE25o08l18BIyH99khQnB0tDTid7UtDirscdJkSLNAZrB3xmQWyIFCJB1wIUssXO5iiIi7WQrES7i6s8ybjxs6uel8+ZVBzKZHYkvQgNObe23E5yrf8OO1UpDhwaa5XvnFJJC/ar+rrcqQf/fPM3bvyusSKDDKhmV8XBGu/v37s84w6OhsmIc7rnFsStRAyoXjlYp5CNhTzaIr0GflIzeTIwiz0FXRZsCbN2J4oCnfL0OSRGQ7p7A9dM5eOmna335SWQrHmhKXBpyBLZq9by3uYKiGdpb8w/9hjG0OMiw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com;
 dkim=pass header.d=nvidia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=iyBBtGtiRatUjTAS6JqftkIY0Yr20GlVu4ehze8ZHrE=;
 b=hKJ5KbXBT/VxNcbJGVjEuubofK8WW5IcX9+LqVjH9PnS1bYfr2bVYahRRKi5pkNT6fEjFUlfNPGpuUtkO1pYO0hxdfLv7l4iulZDGkWlSeXLWS4fk6BhRgKk7afXw11JQ3rq611oz/FjXJk0omQqgmCKtFa3ukE1RkM6OnRUMtbEmSF11/NbylnTwRJX6Z8Yt2Ylr6fjUhuHmmGEW8DXV7jQ1ymiYwahSjpeYJnDZpMbQ+vnE5hJKdPnbQTn5fFh7zd4OeEBDQ/9IcskqAOhRweqaVVWuvTwVRyxWKw8mtVoXRg65mvdldA1tiHVKUPsV1DhtEYhCz8C9BFc0mHThA==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=nvidia.com;
Date: Wed, 6 Aug 2025 14:31:32 -0300
From: Jason Gunthorpe <jgg@nvidia.com>
To: Leon Romanovsky <leon@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Leon Romanovsky <leonro@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 01/16] dma-mapping: introduce new DMA attribute to
 indicate MMIO memory
Message-ID: <20250806173132.GA184255@nvidia.com>
References: <cover.1754292567.git.leon@kernel.org>
 <f749c597980592ecc7aeb5ecca974c8dfb76f834.1754292567.git.leon@kernel.org>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <f749c597980592ecc7aeb5ecca974c8dfb76f834.1754292567.git.leon@kernel.org>
X-ClientProxiedBy: YT4PR01CA0214.CANPRD01.PROD.OUTLOOK.COM
 (2603:10b6:b01:ad::21) To CH3PR12MB8659.namprd12.prod.outlook.com
 (2603:10b6:610:17c::13)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PR12MB8659:EE_|BL1PR12MB5898:EE_
X-MS-Office365-Filtering-Correlation-Id: 1a97b1ac-fbf8-4645-964a-08ddd50f1627
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?yaJthfZ6S1NFLAIf+giyUFeFb5HmHR4/JaN7jHXzGsOaznN1NxyhWOd9L7lt?=
 =?us-ascii?Q?H9Vs8zU4xb5p15mZ+CWJn/+7dnF61xL/sW3AGiLTq3kgMHTWk2G2VX3r3UF+?=
 =?us-ascii?Q?Q3h3nMz7FqX7X/d3YZ0NxOTPVV0pHfMOTTaflPytq9k1LF0h5RqGkz1OLqVZ?=
 =?us-ascii?Q?EemC3bPnW4VDo14bQaBjics3HW9FprJ/eLtO0D+t1GB/9qei2YiL1xavzgnb?=
 =?us-ascii?Q?nnkyW47WyqJlgImvhfaezt2Buu3LrOJRNUgS7egN1TzbWEOMpWC5+gxhoJpz?=
 =?us-ascii?Q?lW1phaq7PI/6pl/OvOt2WBqz9bbOfSLYlhWWL5YdAruSAtSKuM5AGfiWBKcd?=
 =?us-ascii?Q?T44SfhFtzD7sdCgejc8APg4OTwQBsd9vJA9XbKzMmfUBvnbstU0DWim+7HJK?=
 =?us-ascii?Q?efSAIfCAyYJZZF+379y+MRSSImbSvZm6beHfofM155XGzn6Qh4zirCoJylnn?=
 =?us-ascii?Q?uYEhc5p2BUPzUFkXsYoeufDTIy62n0L4xaqujdP2fm9Rj8EE2jatkFwEMJod?=
 =?us-ascii?Q?cE4xKPjR0XZzDeOPKtkL+DXX+01qFbma0kp6KvYBaFKShf3tL4wSdj0rxD0R?=
 =?us-ascii?Q?ARNk8i9K48OKmJy1XsjX4YzI50PrB08PeQjL+2zyJKkYRifoG8THB9a5oe1e?=
 =?us-ascii?Q?omxP5C8m8zfONa716RcASgZKS0CpVePWSB/ehmT7CvfcxWU9OmN0giAYEkBh?=
 =?us-ascii?Q?4OQpGrTblaY9gb5RMCNoD7+ueq6nKrH/wop1aio07NwHyrTlz/V52fkD+o6O?=
 =?us-ascii?Q?mEMNLj30dsATsEX+FZjypCM6hxbZhvjh2k/1oKNW4YR1UdKmOGIepMX+TG5V?=
 =?us-ascii?Q?U8IpM7DifIBa6JhwA2zTuOcdxxTQ+DnLiqpc9OD7gg+zGrkcHpLsV6Y/ER+d?=
 =?us-ascii?Q?3mPE3nXz8GMmRhyqPThiOGXAqLZA+RtZjb9WG/XvSgBpkGWeduNrmai0a/t9?=
 =?us-ascii?Q?dn0q/eYJ7cpltoJOwwAyOtucxfTqu0/Hqc3K/Am1QJSCqecFm2bEcjqUV6+8?=
 =?us-ascii?Q?q7XEdaom3j4CiikrGlsv2Tzh3X6QNxcyG5UIzsJSRSvnPjkwWiCnc77Ov6sN?=
 =?us-ascii?Q?q6NBtoagpMLjt3QJF/r1of/Jn2BuoOewljNauQSsO3KoxXdPko3gLU+59YH+?=
 =?us-ascii?Q?Y1nJYhOUkMZjeCfxDGr9wByWXiV1mXiQxlD/r5t3HvjJpLb366fmd9SLGgbM?=
 =?us-ascii?Q?DgzdRPXiFg89YcR27s8Nh2/Ftqs11/CLGdq6wlZC4ldBOBPHXOLRQqkk/37M?=
 =?us-ascii?Q?g0bA52S0l9tS3IwSvn/OAeEIlws8/3XoLqI7Di8gtHcmvCwOto7hS9Nqd6d7?=
 =?us-ascii?Q?ZiHxarnrtq+R5eGLP8NbLdB1+X7VlP2lGRRamhU+n5nL9zh7cpoWWc22VwO7?=
 =?us-ascii?Q?SiIUNIS8qJPOizGnA+hsoYD19+EC3TtSfxa6663hM2PgRUBj8fAgZQWs6Yc0?=
 =?us-ascii?Q?Wk2Dj6XcM/g=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR12MB8659.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?Fr/6CZwZ3kEMrGMBC1lhp0GWYqcvajTxzIaycEtiDW7Fajfod/FOnW7lw8Jy?=
 =?us-ascii?Q?N3dxzqfJfP4dYyq8QGLZEXZSXAswRCVM0FEAhzUmrhF0GqictvMu8LNC8V8I?=
 =?us-ascii?Q?9wne+n6y7p9uslMkaj5VB80csBRjMb3NlatXuZfydZrs8hZp5UC1h4PK5NZn?=
 =?us-ascii?Q?qeNMKBdm1xkZ8tCFwBAwqeE7bbJ9EEGEt2/Y7UBH2ZbKvw1QV3YTUwicKV2Z?=
 =?us-ascii?Q?3UkoquP1UFDeMxh5zXsa6uxrhAc6TaE9Vkv899rJbXFcADwsAliOIFkUO0pp?=
 =?us-ascii?Q?rcKHikt6sLx1Ej54cFZ/tBh+HotVw+7IVnUzJ8lGthaa0s8pN6gkTb3LW9Ri?=
 =?us-ascii?Q?CBcDmY+hhYovu+e51IfKZ/sQHQzaZgOKoELs8cCsaRtw928hUOHFJdzx5NOf?=
 =?us-ascii?Q?nbAZPCTTk8vdizcOrLQr13i7pN/+5Ra7yuwq2UwqBnYhlz1vL6EJXJoRY862?=
 =?us-ascii?Q?Ir0xruuDxqsMfHOk/fea9muX3WbNOW0PyFvuKlUmhV8jlxE9CbCMuEJha2W1?=
 =?us-ascii?Q?aqGY8XO5Nxi8vp5lR88FXlLK6bfGkM5Zj0UIRwlklItBuSKFkc54tQzBQnxb?=
 =?us-ascii?Q?THl4+O5qoq9Zsi5AGkaCF9+56x7S1OO22/L+YagOtW1AGFkk6NIr8LmpXTLL?=
 =?us-ascii?Q?wY2N3oC5Imf7hGi/7dIyGrDOI0hFgDwyILSxWFwMQmyH0uxsjDaYh/W10OZd?=
 =?us-ascii?Q?vAiFRRm/81FGKiiUeKmMfRwrY8WA3ERRBran5a/j5fbqnzIo1sjUp2Xq4yAM?=
 =?us-ascii?Q?gOakIFaYg9Q6bQMcqhtp7O7NnEKbYXZD9JkEEOCUDqjZ+mFQLHqogXmbwUp1?=
 =?us-ascii?Q?SecpZy33gDty+jNSCmgOxLxOyYTXZSj71kHhHXfKMH9g2I0VXmCxLa8mAA/4?=
 =?us-ascii?Q?y8ukTVZH3K4p7wTSRS6kRoOAmKPQOnbffGt9HUUD5Faf9XBloR8aveDEOMAP?=
 =?us-ascii?Q?yzjBMQlw+BniFN7rLzW1trAB9pykzYTVxPElPukSiEkjRsvfqgT8Xft/q0Z9?=
 =?us-ascii?Q?DpgptqDhG/24Tb3+MZe7PS4rh9US1CyXI8WiqmSdrZk14wopmqg/b3DqWtkZ?=
 =?us-ascii?Q?5uKk+1axBMhTCDc/jTXGQyDVB7Roimd8aQH5CSpqUC7fn0STLjNqSNiVdHdg?=
 =?us-ascii?Q?ASvVSeIi+tbJJZF6QkZH8qH2XpXdFQlbBgu2hhMlctm0k7UMJPjTmpgmO+Lx?=
 =?us-ascii?Q?VtT3ve9pJFZ5HVjWkHtKlfYZuiEzTFLVJq3MwLxNft67QSGH1bmM6gZFiqoD?=
 =?us-ascii?Q?cpxQP4R0xP4+GHLksnuEotgp0a2gu4d4LwiD9Cz3WVHKbAM6/d5HvJIAMzN3?=
 =?us-ascii?Q?DtsFVWu1JMvo7oi6VstNgi3x8owAY+emgvzYirbf3+Y0g55mv6+/RiB+Gp4d?=
 =?us-ascii?Q?2tEaCZ9nANHvV7JDcB6kiZ2RdQVsxGe0iLUY7susz1QyqaNfGVPlEtrIWTKm?=
 =?us-ascii?Q?G7xqQ2V/JEO6S6UFkG6bqYNdMvZvyFn1x7vjxerjlGRBaqKB2cl74rFxK4hT?=
 =?us-ascii?Q?uVVB15nB1uRdSHbejfc7xvy2NYPbQ6ueMyXzTO61gC89CjWEBK7uq9uQzeQ7?=
 =?us-ascii?Q?ubr9roeGWrQpckaiErI=3D?=
X-OriginatorOrg: Nvidia.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1a97b1ac-fbf8-4645-964a-08ddd50f1627
X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8659.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Aug 2025 17:31:33.1882
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: UIDPQM7vQxkJhwVkF52UEyIoAZthU14Jt3NMldnpBtNcPLTqx0R1ij/KXDTxkOBv
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5898

On Mon, Aug 04, 2025 at 03:42:35PM +0300, Leon Romanovsky wrote:
> From: Leon Romanovsky <leonro@nvidia.com>
> 
> This patch introduces the DMA_ATTR_MMIO attribute to mark DMA buffers
> that reside in memory-mapped I/O (MMIO) regions, such as device BARs
> exposed through the host bridge, which are accessible for peer-to-peer
> (P2P) DMA.
> 
> This attribute is especially useful for exporting device memory to other
> devices for DMA without CPU involvement, and avoids unnecessary or
> potentially detrimental CPU cache maintenance calls.

It is worth mentioning here that dma_map_resource() and DMA_ATTR_MMIO
are intended to be the same thing.

> --- a/Documentation/core-api/dma-attributes.rst
> +++ b/Documentation/core-api/dma-attributes.rst
> @@ -130,3 +130,10 @@ accesses to DMA buffers in both privileged "supervisor" and unprivileged
>  subsystem that the buffer is fully accessible at the elevated privilege
>  level (and ideally inaccessible or at least read-only at the
>  lesser-privileged levels).
> +
> +DMA_ATTR_MMIO
> +-------------
> +
> +This attribute is especially useful for exporting device memory to other
> +devices for DMA without CPU involvement, and avoids unnecessary or
> +potentially detrimental CPU cache maintenance calls.

How about

This attribute indicates the physical address is not normal system
memory. It may not be used with kmap*()/phys_to_virt()/phys_to_page()
functions, it may not be cachable, and access using CPU load/store
instructions may not be allowed.

Usually this will be used to describe MMIO addresses, or other non
cachable register addresses. When DMA mapping this sort of address we
call the operation Peer to Peer as a one device is DMA'ing to another
device. For PCI devices the p2pdma APIs must be used to determine if
DMA_ATTR_MMIO is appropriate.

For architectures that require cache flushing for DMA coherence
DMA_ATTR_MMIO will not perform any cache flushing. The address
provided must never be mapped cachable into the CPU.

> +/*
> + * DMA_ATTR_MMIO - Indicates memory-mapped I/O (MMIO) region for DMA mapping
> + *
> + * This attribute is used for MMIO memory regions that are exposed through
> + * the host bridge and are accessible for peer-to-peer (P2P) DMA. Memory
> + * marked with this attribute is not system RAM and may represent device
> + * BAR windows or peer-exposed memory.
> + *
> + * Typical usage is for mapping hardware memory BARs or exporting device
> + * memory to other devices for DMA without involving main system RAM.
> + * The attribute guarantees no CPU cache maintenance calls will be made.
> + */

I'd copy the Documentation/ text

Jason


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 18:11:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 18:11:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072090.1435414 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujibG-0006kF-Bk; Wed, 06 Aug 2025 18:10:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072090.1435414; Wed, 06 Aug 2025 18:10: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 1ujibG-0006k8-7o; Wed, 06 Aug 2025 18:10:54 +0000
Received: by outflank-mailman (input) for mailman id 1072090;
 Wed, 06 Aug 2025 18:10:52 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=7Hpz=2S=nvidia.com=jgg@srs-se1.protection.inumbo.net>)
 id 1ujibE-0006fy-6g
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 18:10:52 +0000
Received: from NAM02-DM3-obe.outbound.protection.outlook.com
 (mail-dm3nam02on20614.outbound.protection.outlook.com
 [2a01:111:f403:2405::614])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ad1f6eff-72f0-11f0-b898-0df219b8e170;
 Wed, 06 Aug 2025 20:10:49 +0200 (CEST)
Received: from CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13)
 by LV8PR12MB9451.namprd12.prod.outlook.com (2603:10b6:408:206::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.16; Wed, 6 Aug
 2025 18:10:42 +0000
Received: from CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732]) by CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732%4]) with mapi id 15.20.9009.013; Wed, 6 Aug 2025
 18:10: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>
X-Inumbo-ID: ad1f6eff-72f0-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=F/xGIwO8l037lIet6XDnEcFADS1S4j1v+xJwq0xbosit3tvuqIY0absR1Ze6wMZ/TKCGl5espW1F2qu9dgEs6hTCxmawYCRVyDJjqkx7uD10rBjCwn9thhOntxISwFDEopAsxahHsMDlteNOsTJTkCdL2YGQDqIORFmMOM+3FPlwgdzAeqB2dGIczqSr30NvwqpnUgihCVGp1w5qoXa+kZKJKBiL8eIGeNkj+On/3ej5JAQzmOa1eNWrANLxLbe4sN9Kqc3Ro6ZWap3O9DIHRdwYlqL09vOTdhX/ylkh+94s1oda8c4XWXi1LgmDah3KH5A6OmG3mbY2sYOXPqS5aA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=BhmvRULt71lzNlfdmUfFLRjqdndltyCAJJ0V75nB3/U=;
 b=OfRNJMP8osnjMHer6JHInrB65m7fKLygp+Zaw4kPvI/fO2epH1i54gQoMtc/g7fcD9oCsP3R4D7x5HQrqLdVpmAjYX1fI1UZo2kgN1eJG+WzQgWenMsETr6zko5fX6OsVPba4mqTddkBLydlbQkDWEzamKI5CDfzaVKtaSIzRY9RSbKuv5DjHhaQ3Ja3mWJpxdvT4gdOv/JxTLdThDEal0FfLizU8YSyasLE6+Yebri6vKbxL5AfS3cu8gjlyHfcdXsqqbB6fv3jl7ZY4TUVG4eb5xOMbSDNyXi+wBRbChzImtDLGpmevb9ks0SJ3eQoWEXQCPq3fIHE7DyNJRxb8g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com;
 dkim=pass header.d=nvidia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=BhmvRULt71lzNlfdmUfFLRjqdndltyCAJJ0V75nB3/U=;
 b=HPdzjbYjWyAM0YIrP7JN/Qv9VjR1knp1b+AZSzy3OHlN6i9+poG4a/ygS7kbPE/w4w3CkDMVoi1fhRxxp/RlDzNUfWjTa64t1UTL8F1y4dXdqPseZx0vaKjS9mL46TIOUPMlyIGcpFhRe/ph9w+1c7PfX1sTMRYp8VVK8rKTotrMrTt1QzJRovHrYKDAPXvm4gCIsbQ7tv6J2df+7qgcLOX/APDtSck+iS4VdLgeMc3OVf2Bf1nm7AEK5dtwugkfpvtmhV0VUu7p3ftHZP7JMrhoKtDN8FbN3VFMslO/QQ+wtqqye4OevJQooE5f8r99Z52fZ2sbjCjHdKoMfbogXA==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=nvidia.com;
Date: Wed, 6 Aug 2025 15:10:41 -0300
From: Jason Gunthorpe <jgg@nvidia.com>
To: Leon Romanovsky <leon@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Leon Romanovsky <leonro@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 02/16] iommu/dma: handle MMIO path in dma_iova_link
Message-ID: <20250806181041.GB184255@nvidia.com>
References: <cover.1754292567.git.leon@kernel.org>
 <52e39cd31d8f30e54a27afac84ea35f45ae4e422.1754292567.git.leon@kernel.org>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <52e39cd31d8f30e54a27afac84ea35f45ae4e422.1754292567.git.leon@kernel.org>
X-ClientProxiedBy: BL0PR02CA0041.namprd02.prod.outlook.com
 (2603:10b6:207:3d::18) To CH3PR12MB8659.namprd12.prod.outlook.com
 (2603:10b6:610:17c::13)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PR12MB8659:EE_|LV8PR12MB9451:EE_
X-MS-Office365-Filtering-Correlation-Id: bc710f14-af91-47c0-1a00-08ddd5148e90
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?wVLnAhfU1oPkeBVGmvAU/NjH/TSeWNoRRIFzWOltqiha8M23FQAybsbpsbZ8?=
 =?us-ascii?Q?4l4viwCu5culuho8iDDBGWEwTq5CXF/Ngqk90oWIfIjUq5vAwtzT3hhe1nou?=
 =?us-ascii?Q?RfHnvfTyjNJJBuNajTKmkrOGxuljQcHezyYYeUOLG8J7e7YhoUfBKi18txfI?=
 =?us-ascii?Q?hy7/LEu5hLaURAAotyzklEoBhtCcuF7b0wjIbikh26fAB0AZcdevouc+gZJl?=
 =?us-ascii?Q?ti3ebAKulXWxzMRy1HKeWCwDMydUyj8or18L2n2kDgRFSozaD5v5MYot+TdF?=
 =?us-ascii?Q?dKxC2QBL/XGhT2R//kxm/Z1i678GXWr53qAvo6Mc8mHvDJOsshvXhzgmGGB/?=
 =?us-ascii?Q?1Y06utPzxf9qZyCI2F1LJWhLSf4aNoLYR7ieU2V2hpnKr0S2IdGAXNglv/V2?=
 =?us-ascii?Q?NbgCREZxnz6y58V3BD9Sto4B8J6D0WmOSREtfBhKzVNd+wqZQEawog1Fo6l3?=
 =?us-ascii?Q?eRHt230nua56QWjnnXCSpemvdaFAgSKyHpP2nrc0T8ngDw+BS+qk/NKK9dKv?=
 =?us-ascii?Q?2miix6/Inv7eZLR4QvFRHYlQVH8fCvteG8WevBDiAT1ifHwyS+kdJMH8MQGa?=
 =?us-ascii?Q?h2oeqnJ+pRCKKqoq3l7Xdxtc06wtRFd1swF3vJw5r9832y4wpSyaBH0ABxQZ?=
 =?us-ascii?Q?/TX07M/n/4wX45/p1sgbqJYIOsZ0f4Kln/pnJIVSKrohhzOpGyheofoWZZwr?=
 =?us-ascii?Q?zXK4lEn71gfSBgA5dXwibv+GitvdQntloKB8klvUD0TvVZmtwBJThY49DnbC?=
 =?us-ascii?Q?SaGwAetiGd0ewGNePMd0j77vgGJ3S9gqeItBg9HkWW8nbdofeXTiplfgFybO?=
 =?us-ascii?Q?lNs6BYW5LAGJmg5Pnawnlkaoh+Nu2SQBxWVZvByCSr2ZHmU6y4hzSYjah2pp?=
 =?us-ascii?Q?1GZgNFRY32XyTX6LfRGJggIvzUvpSKMuFrq/0QbyskUfTnXJtDJqF0u+r0vl?=
 =?us-ascii?Q?FHzw8sLP+mEJIfzWRclp/XpMBrRAtaUz7RJbNp49GDoGb+fHebg/sui6tJqa?=
 =?us-ascii?Q?wBts/fdjF4cWzul1birOsqA2+3Pud2Qkx8i2mJUFiA56ilpf7GZYh/4BAKqM?=
 =?us-ascii?Q?OAzISkmGBsUomFlDjgPXqH/Qtpqizg5ROAIex+09zc5Y9oC7rG28YV1LqC94?=
 =?us-ascii?Q?egOWspWxPkTJ+R+F/qXelpRIyqn/e5juK2Wy3HEjN4aUfEMGE97D0f0V/Yij?=
 =?us-ascii?Q?syps8uDsBntlosNdSlMw7fhzyzdd06tVoGAh+PdjNimZiG3526VvcP3FONDU?=
 =?us-ascii?Q?KeMnRP53LaaCcC4Lr3AycUDXY7BzbMLA+NiIjU7SYQ82Y4tbyP6+KXMLO7oR?=
 =?us-ascii?Q?KZdVJYnIwvN0wJ00oOIphNxFr25xv8l9YxKjGSH9X0lfl5uX35COldoJjmls?=
 =?us-ascii?Q?N3G+dMU9uhXhk6kUq0/AGJnwyceFZ8ROJfy6iKa44R5ANOUgva4Iwo2J4sMs?=
 =?us-ascii?Q?1Yj7dqgsMO4=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR12MB8659.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?jxar6JHm676v7S2VA0b2tp/6YMZTPFXTUBggGgPT3+7w2y648Aing5nielgU?=
 =?us-ascii?Q?C8RGQR5E58Tovl/J41NfvXPwqo83HFAte/q1ThYUU8DpXUJ7xyiOtLI1agTm?=
 =?us-ascii?Q?cJCIeUGMb9nlAL6DL4HqITNVhi1xiGzDJTxsise2ikW8UjN21FJkGKqHdOUx?=
 =?us-ascii?Q?X/NlDLBiVPvSQUFkiKhqQLbU2EEshCknX1MeN/X+GTK9p7yYbr6l2wMFcY+9?=
 =?us-ascii?Q?ND2X9L4Sjj6dAZp144RnyvH9xB1EeMcQ3MsqbdVYA2Ohb6AJiP1WZuEE9jTE?=
 =?us-ascii?Q?XFged2dzreWxtqlRa6tgiGz7uZkQbLA36UuQlGNftfAreBjl1O5vF36LOuVR?=
 =?us-ascii?Q?zTHLQ2sKkyx+9cLiddBDG3UiMuXP2mRrPQ017uORc5S9zBMDpq3jpRzbWLRT?=
 =?us-ascii?Q?OVurgCMW1L9Z6zBg53ZYKRLC/qgk+o8quUk6BvWqo6W4P5Rd5IMUWHGHBi5y?=
 =?us-ascii?Q?zdrO8nCMOYop7lH+MmAFmSuLZhUg6mt/5V3y9Fp/vWWfSmLAzwsQkSU7dsgg?=
 =?us-ascii?Q?IAB3+JkLsRIpcJduXAoL+sT45A1wQHO/TB4imafngd0gcyTT8Nm5dui7KsQu?=
 =?us-ascii?Q?ZAhJZZJ3+iEN4Uo6RQYdG3oU5rGuY/gZN0+7fSIcjdEYFy8qUweayZycVBPS?=
 =?us-ascii?Q?uZTvHKGucjLJA2HHCw5BagLz7ijI619ndghyaq4NY7lrrhDyNS6MdJb9zDTh?=
 =?us-ascii?Q?2ZeuZx7xpC8KaV9ALslVxl4yBLn0WACNoPNnnl+qKNv9Ld8VGZa92JNAkL6O?=
 =?us-ascii?Q?mbSbXlRHXr/hjkElMKDR4FLunfOidt0S4xNZeK19Fuk3N2Z55CsnM5dni9n6?=
 =?us-ascii?Q?AZ728B8IPw3/FN4p5QbS/PdWs5zSXzyPNfdPLZxq9RH1sBV2zdLc3Hjj3BHu?=
 =?us-ascii?Q?8LDmyMknR3iaD0SNhgHj6TZ85GYy/Tx8lFGZAF4XQ1LGJnO5FifPUQE4QmaD?=
 =?us-ascii?Q?1kP0GIcg8w798usyvr0wYVhs4GZo5+Zpp3b4dpymUYFqmXP2hQBqYCP1bM3Y?=
 =?us-ascii?Q?h74ncSMb98quwFZXCze2mn/T7w4TnOnr/4Dcp9XX2npo95Yj4h9SYCXafZGe?=
 =?us-ascii?Q?jVL2DPa9rh+ENyPMGZLYi3KcMJWqmKkGj8Jvx5Ypzo0LsTRiHR8GsTpKDvr0?=
 =?us-ascii?Q?BTOXJuD8u1xnH5J/ttsctfR8qI0NZ50tfYg6KKv6dOO7kwrpZpsqHiCzA8M8?=
 =?us-ascii?Q?8d0LTLkulB7BiIULaMxBzFFXkXy/pUia/A51+edj5UoRdDi6Ef7h4QGrxd/Y?=
 =?us-ascii?Q?UOKnpmM9pkkJkhcM1ufy1RiOi9tFwSJhgqM8ttWgYxD0qePXUBTH3eYMoyhU?=
 =?us-ascii?Q?TUzWO08a7crrOTEWta5HWlFQ/WxCNtSamczRCSy2ZnNeSD0r77+9YRkskgZF?=
 =?us-ascii?Q?llQ6s964oNLxAP1n0oPbz6t2VSbJe+pK1mJMbHJFWwYFZ+zSofvu4kiYHzRC?=
 =?us-ascii?Q?KICyKCvRLsCxNdOToQbBeBEJNAp8AcjnYdGopdOCo1EWynuitRyDGJk/V5CM?=
 =?us-ascii?Q?VaBwfFAxVDY+usMsHxhCwVNi8gUwS3FmQuDxqFeLd4A4XIh04K0X4u7fUifG?=
 =?us-ascii?Q?zTlIkUmjnOYfRUF6+uo=3D?=
X-OriginatorOrg: Nvidia.com
X-MS-Exchange-CrossTenant-Network-Message-Id: bc710f14-af91-47c0-1a00-08ddd5148e90
X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8659.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Aug 2025 18:10:42.6495
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 57xtDWWsAmS2DZ7qtHKMR4Dn5D+k0Cp1JThowypQclS3wEaF2KtlmBeaDSAVaxXY
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9451

On Mon, Aug 04, 2025 at 03:42:36PM +0300, Leon Romanovsky wrote:
> From: Leon Romanovsky <leonro@nvidia.com>
> 
> Make sure that CPU is not synced if MMIO path is taken.

Let's elaborate..

Implement DMA_ATTR_MMIO for dma_iova_link().

This will replace the hacky use of DMA_ATTR_SKIP_CPU_SYNC to avoid
touching the possibly non-KVA MMIO memory.

Also correct the incorrect caching attribute for the IOMMU, MMIO
memory should not be cachable inside the IOMMU mapping or it can
possibly create system problems. Set IOMMU_MMIO for DMA_ATTR_MMIO.

> diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
> index ea2ef53bd4fef..399838c17b705 100644
> --- a/drivers/iommu/dma-iommu.c
> +++ b/drivers/iommu/dma-iommu.c
> @@ -1837,13 +1837,20 @@ static int __dma_iova_link(struct device *dev, dma_addr_t addr,
>  		phys_addr_t phys, size_t size, enum dma_data_direction dir,
>  		unsigned long attrs)
>  {
> -	bool coherent = dev_is_dma_coherent(dev);
> +	int prot;
>  
> -	if (!coherent && !(attrs & DMA_ATTR_SKIP_CPU_SYNC))
> -		arch_sync_dma_for_device(phys, size, dir);
> +	if (attrs & DMA_ATTR_MMIO)
> +		prot = dma_info_to_prot(dir, false, attrs) | IOMMU_MMIO;

Yeah, exactly, we need the IOPTE on ARM to have the right cachability
or some systems might go wrong.


> +	else {
> +		bool coherent = dev_is_dma_coherent(dev);
> +
> +		if (!coherent && !(attrs & DMA_ATTR_SKIP_CPU_SYNC))
> +			arch_sync_dma_for_device(phys, size, dir);
> +		prot = dma_info_to_prot(dir, coherent, attrs);
> +	}
>  
>  	return iommu_map_nosync(iommu_get_dma_domain(dev), addr, phys, size,
> -			dma_info_to_prot(dir, coherent, attrs), GFP_ATOMIC);
> +			prot, GFP_ATOMIC);
>  }

Hmm, I missed this in prior series, ideally the GFP_ATOMIC should be
passed in as a gfp_t here so we can use GFP_KERNEL in callers that are
able.

Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>

Jason


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 18:26:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 18:26:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072123.1435424 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujiqX-0000c0-OD; Wed, 06 Aug 2025 18:26:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072123.1435424; Wed, 06 Aug 2025 18:26: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 1ujiqX-0000bt-K2; Wed, 06 Aug 2025 18:26:41 +0000
Received: by outflank-mailman (input) for mailman id 1072123;
 Wed, 06 Aug 2025 18:26:40 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=7Hpz=2S=nvidia.com=jgg@srs-se1.protection.inumbo.net>)
 id 1ujiqW-0000bl-M5
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 18:26:40 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20616.outbound.protection.outlook.com
 [2a01:111:f403:2414::616])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e2fd776d-72f2-11f0-a323-13f23c93f187;
 Wed, 06 Aug 2025 20:26:37 +0200 (CEST)
Received: from CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13)
 by SJ0PR12MB6782.namprd12.prod.outlook.com (2603:10b6:a03:44d::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.21; Wed, 6 Aug
 2025 18:26:32 +0000
Received: from CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732]) by CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732%4]) with mapi id 15.20.9009.013; Wed, 6 Aug 2025
 18:26: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>
X-Inumbo-ID: e2fd776d-72f2-11f0-a323-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=T3oX4xKZrDwVMMnEgEiD8rNlrQo70s1Wnjel/mq8ahJBGHInkP2D2zAj401xXMBM9gTx3zrm4+MFSPALjx4xydi6NDqsElJJZ4hsfq4HJAGExDixeglhtFSmdPv6ppokj2Yj7/4NHvG+0QYs0pBx8jYs+otNzi0RaLmHXSh6ckgMN03hZSldHILwWL2ScGsbejCU20CB2pRelYWerEJfnx+aX3He0qBThOVi/OhmIrgRWfQt1Wh7OqXPCLVuajCd8kBOqYx9pH9/dGtnPeWU2p7+QS4VV30o0td4n4tmNpQn24RzQadcg18HdchJtkjrg+XLUscWfyHwfkckhc0tWA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=pKJXQxXxfUIo4tLv3CJl6XJN+6GoOozWS8CT0poTaRA=;
 b=kiakdUudtbZi8emOq//VMD+aVo2GbqN7rv7GNnYKhQuloGMtgJNifUOyImW+84NupjZ1s1ZExbhmttSOZIz3prHNixdOYoTVNi/qN8rHYMdyRPFRg5LIpFnlZ/RXVcjW37F0xpg7qC3hhAZ4aFjOteU/dY31t19Pq/qVkgHlqimNC6aOvAaTldshJFrU/olOebipxFGAg0TWD8UYJw4Rh+Z82k922ZEyQJj4bSMTIZmn81Poek2xicFKuoqcRZ8efXfbxm+SGXyw3DXqrvWsusgqOcpEfySmpK2uUwvxmJhamDYAwBMyrntHiWB8CPdwvMLB+3n03jeGtcQ74R4nvw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com;
 dkim=pass header.d=nvidia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=pKJXQxXxfUIo4tLv3CJl6XJN+6GoOozWS8CT0poTaRA=;
 b=l3tRof7+xxY2WZnQbqMnrPTyFo6bB2KhEebXASoWrJBaexBnyWn3Jid447R3/Sf4912m+R3EkjJq+hclLwVQ7buSDqOCwer2ijaLyWuTgpT1XtrrY+vcKJFv5xCdkEnVL2HLnznXPAL5zAt9eajBamj8Xv4jwkmLtjYCHqA+ddZJqa/lE/LBGs82Ob3kSVbYPTRNuafpsYA1cJBASQbNQwtWsN9z7PtVxCfRAyfBZfc/O7+OrRoUvdrXSzSSQRC++csKm9CCNmYRvegGyF7kMIyiWxLw8R4FLrFy2B6vbqPx4jRkTvYF71TGpGrGe3ZsFhA44GVs8WkPVOBjhkvcLA==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=nvidia.com;
Date: Wed, 6 Aug 2025 15:26:30 -0300
From: Jason Gunthorpe <jgg@nvidia.com>
To: Leon Romanovsky <leon@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Leon Romanovsky <leonro@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 03/16] dma-debug: refactor to use physical addresses
 for page mapping
Message-ID: <20250806182630.GC184255@nvidia.com>
References: <cover.1754292567.git.leon@kernel.org>
 <9ba84c387ce67389cd80f374408eebb58326c448.1754292567.git.leon@kernel.org>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <9ba84c387ce67389cd80f374408eebb58326c448.1754292567.git.leon@kernel.org>
X-ClientProxiedBy: YT4PR01CA0394.CANPRD01.PROD.OUTLOOK.COM
 (2603:10b6:b01:108::23) To CH3PR12MB8659.namprd12.prod.outlook.com
 (2603:10b6:610:17c::13)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PR12MB8659:EE_|SJ0PR12MB6782:EE_
X-MS-Office365-Filtering-Correlation-Id: 632cafff-faa6-4b97-1b4a-08ddd516c47c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7416014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?owwpIJ/gX3NA4KCET+gimZq+FN0PuqQRzxipxevMPQb7n0i1WlzUqdFghi1S?=
 =?us-ascii?Q?19j+fumHYhWIjYAt58XbP5kKw0Ag6bpTz7rqSWX14k0J+w1uxD5SQzffX0oA?=
 =?us-ascii?Q?88/klCZU/brpMZz4Vo3dKsm+3sV6mHWTq+J1Fj2mmktQqG5y4NIJlQF1PMxj?=
 =?us-ascii?Q?Q4zAjL53yS0gcNHI/5KV7YERbSqdUPJUN/NaBsj+xfNDtKio8GXergY8uEEi?=
 =?us-ascii?Q?LEblKeO4/6Bwwml9K5BYoHIYHgdTGMgp10h0zhbZROA03uktm/FXzLapriuO?=
 =?us-ascii?Q?h8/KRarclJLPK0LnzRQQdchLSIeRhTGdMClq1ot8GQ30HUoFALDK/gYL2fzD?=
 =?us-ascii?Q?A0GeqOL5tEr+h21tfGfbu1Im0B7hjYPFTtd9AbRbeGdP43+JGj6dSxRdzNgD?=
 =?us-ascii?Q?Rs5abEENCmVlIWe+2wIU4DSMbJ9cocIyDrIui+iaETu2mR2uAKyu5xQxVHaZ?=
 =?us-ascii?Q?b34HTnzaGR5E6t0czMbcLiiUn3SxBp1RBFMvdYhYf96mY5m6juW54xR+jw3d?=
 =?us-ascii?Q?J1vTY0No7me8p4MCd3boUH+H55j1DJr1ynbKGjq0y5YGroUKcxdx/3vd3XPl?=
 =?us-ascii?Q?oSO+GWhSn+pBsg3tWgxlrEPC/GL7RAmuBQqxMBBrSNIixJUMb078qi6oZT8/?=
 =?us-ascii?Q?jv6iUD/p9tINXqWW3VePWXw+ilS7kVXlltY9ErXIUNUD3bMTxDW7ytPsmzZN?=
 =?us-ascii?Q?qR3DmMXglGcVshD2/QHfNrkWxaYWH1r2Hth+ZscjJjixAGNnqvVbr9OTeV1n?=
 =?us-ascii?Q?tjxQBFAr6QU3Z2wFMd17o7JNmc9H8Vu9Jt3JuKW+wyyBaTegwtsNs8jU6uIP?=
 =?us-ascii?Q?GpQRfIz0vj6rSmsBXPq091G3jMrNIVKu3tAqGi0otfXtNiR7uyQqQAm2J0M2?=
 =?us-ascii?Q?tX507FnQ2r1nHy6GhZT0+hy3WwS+8WDJXI2V/Xd3pyAs3wasL7pS7fUFPEJ+?=
 =?us-ascii?Q?A1cBy3LKeusKiCZVG1GHgP0k2MVqsrnRhdJ3yzjW4lbLFEZ3Iml6FKZi9AiL?=
 =?us-ascii?Q?ShausgFGQY6fuIJbjRxbcdb7V9Jiu5QdEfZVzvka/u0kXzIsche5PpSMHtMZ?=
 =?us-ascii?Q?ovKUcupTVZiqr5NX+oe1k546tROh8/2lY9PKafLR2YlLzCNLbPeLCWbmu63r?=
 =?us-ascii?Q?ebFwAfhAZfCoj0FHsvpowjD9e4aAPVMt42Mjui0CqRb8E+nI3bH1Ra063tef?=
 =?us-ascii?Q?fYqHKEc5+swy6EanZNW8yQfkS/+U8Jsn77sSaAWvQb83NqQnvbGWk3V202X4?=
 =?us-ascii?Q?Z/RVwduZChHGBt4zAOLato0o0xULnyiNcwej62TIruVz6j+7iZvAttLuWO88?=
 =?us-ascii?Q?ZvDokQKXbpNKsSBfd1tuMiEQEuQLkFH0JGV7YTRYVKG8bv2iH1Kubv+ype39?=
 =?us-ascii?Q?djF3iDL4dv4Yc8vRxDpa9OjtODHldc/4rM0OzlAbAMrP0kXfW9ypYmSStf15?=
 =?us-ascii?Q?9nk4T6yL2AI=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR12MB8659.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?t39ZrHsSyipF2FxxWvOCrpOiCdTa9RlbbmJcEiSd7/usPKmN1w32/HQ1aYbo?=
 =?us-ascii?Q?j/5Y5e0l+3NLEdR7e93EiSxB0oqskwO2H7It/NFd3PGm2rCH+ioMm7swn09o?=
 =?us-ascii?Q?lLJYuIAo+jk/LNlbBhif7rAbXEKXl3rXU3a1TF7ITt6zAA3u/5D7+6w8whkT?=
 =?us-ascii?Q?CVZbVRXFIFZ7iAkoBRqBNNMVTNGcvq//axasMan5txxNMZctNZKYRTonj5Zn?=
 =?us-ascii?Q?Kxor43X2FR83/bVhHWzhDVYgC5h4894y7CuYyfzKJ1wh7s//ZDgL2e4j4PhM?=
 =?us-ascii?Q?cMGJdRCaUXgsocsf9JS1+aL8Zo7DfzJ6J0pqt9Bgt0lb4xEcbAIB4tAkPLpq?=
 =?us-ascii?Q?zF2mvzStnV4S7ILBLVDNaMmfLFlYkOsTKUmHOmbjnl9lgS+8y72yI25f+zm7?=
 =?us-ascii?Q?VB6avAtH6rXq2f6IlN8CFOd2ShdIVMae+GcZ9IGH0/XrtRR+4TbFoPo7zri3?=
 =?us-ascii?Q?Lc9pzRkDJ833W62CQv6mOhQiko4WpHS2ExgKfqMI2gHQdfNKm0n/JKG6irkH?=
 =?us-ascii?Q?cDwamegxjR+CmPKIr9BNCNyW+6ostD0jXjRQ5haDMaAXG0y1hSHLuI09Okmy?=
 =?us-ascii?Q?srUa0Bel5tIt9YHwdqIMpqtx4gC2y+GgnFT6DbwvXxlmhcvNNu10QceqbXpb?=
 =?us-ascii?Q?md2BsLbubZbJYOvTHvqqpfjzYCQV1+O2cC7Zrg3URLW43Db/oWeiQpg0hbB2?=
 =?us-ascii?Q?zrw1a0qQ4aNYuX24Nb1U0TgBtOvz0txjIxMjpgKc4k4X60ZN2Ekeuy2Dl+/T?=
 =?us-ascii?Q?XTbc0+goCnOo9b/HxrK03gG5mt+WI4ErGszYXmNhQ1w+baEihkbqc1VZZPsX?=
 =?us-ascii?Q?yMZIVy350zZir+594B8HugXTTsLyvokgnUaVYhU+jrQRLEIbjVQCnsHLFKkP?=
 =?us-ascii?Q?F2hBYjGg50K3TpUniBP/5U3j6Au5BRtp6FsqHNvUVqOvUvQQXg/8h1cU2N8D?=
 =?us-ascii?Q?jCqAIyWJOirRho6xjjYF5ivS1MnJuEBYW/LshV423PWK1/kqIgiW3Vr64amF?=
 =?us-ascii?Q?+ntWBU8+VodOuYF/C8+uc3mSRjg+yYv9qnvDYyjspvEhb7PqErKztqzAn5xP?=
 =?us-ascii?Q?f0ay60/QIlHT6KKdynA/akQFVMESmJisswXCL0IVhWKwTKzocWh3Va5yq+ew?=
 =?us-ascii?Q?7AqeJVg3xG7+L/hCVPqXLh2M/Z+jpqFrqW+NkrzJZTr6lXXrOuCihasacQ3H?=
 =?us-ascii?Q?Yisd38CjiZTcD5D9yKaSEgaPNHIk9Z12+MPqa6pLiIJMMJuVQ2mR8iK/D2IV?=
 =?us-ascii?Q?F8ao5THBiVMbReo83xNy7mqfO4OoofdDQ7258uW/2/scAV8mHZu75y8uAY6Y?=
 =?us-ascii?Q?W/dzqqF9TZ3svBcvHCLDUann8lFvwTu8tb9r+8xE54jp9BppaKQkO4gawrUe?=
 =?us-ascii?Q?Mf1QCEmFJNxs8vTx2+il3bYtwyrAaCFkICKFjjCIYj22ca1P7/gBXhIb35gs?=
 =?us-ascii?Q?EH6jU23VieGh3yAXEHv8OJ2rXwfzatF23k+gR+qTlzXeUwHb0eXFNe/2Rpjr?=
 =?us-ascii?Q?m4zoOR8wSjHBOIwyIfs4ATrvfFrZgGQYOTAONPHxiKLdbDQ3pDQHf2E/hr1m?=
 =?us-ascii?Q?6Zn0o1VaFz0u1AIxWW8=3D?=
X-OriginatorOrg: Nvidia.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 632cafff-faa6-4b97-1b4a-08ddd516c47c
X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8659.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Aug 2025 18:26:32.4888
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: GQMRHuo2jl8akCW9nlaZJvuQAC3fHS2K5cV5C0IU02DKbHti6Tp+SLWOuo4/pZrj
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB6782

On Mon, Aug 04, 2025 at 03:42:37PM +0300, Leon Romanovsky wrote:
> +void debug_dma_map_phys(struct device *dev, phys_addr_t phys, size_t size,
> +		int direction, dma_addr_t dma_addr, unsigned long attrs)
>  {
>  	struct dma_debug_entry *entry;

Should this patch should also absorb debug_dma_map_resource() into
here as well and we can have the caller of dma_dma_map_resource() call
debug_dma_map_page with ATTR_MMIO?

If not, this looks OK

Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>

Jason


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 18:38:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 18:38:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072129.1435433 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujj28-0002jZ-Nq; Wed, 06 Aug 2025 18:38:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072129.1435433; Wed, 06 Aug 2025 18: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 1ujj28-0002jS-KM; Wed, 06 Aug 2025 18:38:40 +0000
Received: by outflank-mailman (input) for mailman id 1072129;
 Wed, 06 Aug 2025 18:38:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Btr/=2S=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1ujj27-0002jL-CL
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 18:38:39 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8fcb649a-72f4-11f0-b898-0df219b8e170;
 Wed, 06 Aug 2025 20:38:36 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 534C15C5889;
 Wed,  6 Aug 2025 18:38:35 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 410C2C4CEE7;
 Wed,  6 Aug 2025 18:38:34 +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>
X-Inumbo-ID: 8fcb649a-72f4-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1754505514;
	bh=3VsSAjLVcmccxCZ3hnnn1RvFFPeP1KXfNR/kPK523tc=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=Ge50qjueu3yzrmSLvI7mO9n8KQkiFiYfr4PhBvbyi9xJtwRH+3VLE26OL160ezEfS
	 l7n3yTGZYML7usXiAxesUibX5X3uv+Y7zSbVhAbamikh3Xal+W4d9sOmoNJufjNKOd
	 mltqBVBcA3J9CQVjxxN7y8g/410e0ODnTntjvgOrjJZ0GcQu7FKKjy5hCvF14lL7EB
	 GCHlgBFQUU1u6mCSnNeVtRb+60F9YWCMntqEV5h3kpkOIbolMnee/QD5F6iZ+TELym
	 IpJ05UFpUZfqx3imORqYTmOC8S0Z30OtwN23sPhn2SppRACGNtVevxAEaRFm6toCBl
	 Pc8wnVLkh3LNQ==
Date: Wed, 6 Aug 2025 21:38:31 +0300
From: Leon Romanovsky <leon@kernel.org>
To: Jason Gunthorpe <jgg@nvidia.com>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 03/16] dma-debug: refactor to use physical addresses
 for page mapping
Message-ID: <20250806183831.GW402218@unreal>
References: <cover.1754292567.git.leon@kernel.org>
 <9ba84c387ce67389cd80f374408eebb58326c448.1754292567.git.leon@kernel.org>
 <20250806182630.GC184255@nvidia.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250806182630.GC184255@nvidia.com>

On Wed, Aug 06, 2025 at 03:26:30PM -0300, Jason Gunthorpe wrote:
> On Mon, Aug 04, 2025 at 03:42:37PM +0300, Leon Romanovsky wrote:
> > +void debug_dma_map_phys(struct device *dev, phys_addr_t phys, size_t size,
> > +		int direction, dma_addr_t dma_addr, unsigned long attrs)
> >  {
> >  	struct dma_debug_entry *entry;
> 
> Should this patch should also absorb debug_dma_map_resource() into
> here as well and we can have the caller of dma_dma_map_resource() call
> debug_dma_map_page with ATTR_MMIO?

It is done in "[PATCH v1 11/16] dma-mapping: export new dma_*map_phys() interface".

Thanks

> 
> If not, this looks OK
> 
> Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
> 
> Jason
> 


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 18:44:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 18:44:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072137.1435442 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujj88-0004rh-B9; Wed, 06 Aug 2025 18:44:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072137.1435442; Wed, 06 Aug 2025 18: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 1ujj88-0004ra-80; Wed, 06 Aug 2025 18:44:52 +0000
Received: by outflank-mailman (input) for mailman id 1072137;
 Wed, 06 Aug 2025 18:44:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=7Hpz=2S=nvidia.com=jgg@srs-se1.protection.inumbo.net>)
 id 1ujj87-0004rU-96
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 18:44:51 +0000
Received: from NAM04-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam04on20603.outbound.protection.outlook.com
 [2a01:111:f403:240a::603])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6dd378d9-72f5-11f0-a323-13f23c93f187;
 Wed, 06 Aug 2025 20:44:49 +0200 (CEST)
Received: from CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13)
 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.8989.20; Wed, 6 Aug 2025 18:44:44 +0000
Received: from CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732]) by CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732%4]) with mapi id 15.20.9009.013; Wed, 6 Aug 2025
 18:44: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>
X-Inumbo-ID: 6dd378d9-72f5-11f0-a323-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=IOauFcSkTIcu6PD7QaXL2Z0ekh+G12NbVdlqxqSUF329YDRGdMpJsGxQ6P4fut1tX1Ygpb2vcf9dUG0A0MElFOeAQVNP/mC5F81GfWDQgksWCKY3exzISuXthAjUdgIYtHFTj0Owe+9QXSzhnS3Y1Z0hdtVKu1b5yWNh1+UPlVGYgFopNcqoI1Uq2qcC5mCuSNmu76shE9RpAgnwh2k89srZg30ukYjhzkwSwExmvQJIQTZ8T9PTwPhjvA5QuXHLEBQ0RY1nsssiq6+hp7UYpZSSgUxBd/u4jVF4EY/YUnZ2Z4HL7m1UCCzjYywsq+gxEqMOgHHxs+CkjwjL2f0EHQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=XsnX/855VPl+V555Ssmgek9Y1s47JtlT+wpnIJ5f4UM=;
 b=LQ6Jyo8G+G6ShACF49yYeqmyidGB0PDIIqMDs0nKLWlkVU/UmfgLc7T4MJY7TDU1yh8MXPDbtGY20MFTe09zB4nTAV65ukkxyTBPT3tcGVzajUAClpnO+YcvyqJDL7zewB/NQZ1KnCJswCw5Qj0D+5Rrg+EMO/moi7PeQkeV18W3gTe0RKU7fTud9aHwjkkKZMCK615a22skSiCkRjigdQ//IwUVPvF23/WEP+FJ5osRc5NK9c2TfOx49oXxg2vuZwwZBToXedmTA/suZVsxI3Xg2ybxN2iF0LD0baRTaDtd3vQWX/drHxUHP4kHdsnQqefLNOSiML9EABsYRRxRiw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com;
 dkim=pass header.d=nvidia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=XsnX/855VPl+V555Ssmgek9Y1s47JtlT+wpnIJ5f4UM=;
 b=gi6vwpK5i9Jx4O9Pk6cIfi9UBlgeHFY5Hf4CRLGXdYp/1NAtrsXAhN/5hLWkN143xMrb1UAUDqxZJUdgN9ZSnTEO1d9Rokd4vDp5ZbhHTfZTyd/WEhNSqkWisD71CJuUAzkVwU9fvS8NL7ZgiZx6cqgGB8p18ccgPwUfZa72/0Vvip0apOrLU8CjtBJzPchTVgnz74mn6tB+wIO1TPha9NpyIkzXKWoZCn5+t9/Rydd308vn/NYmjJZYYyB66ZvPfBShdDHToalZKv4wz5ARxu9ZTe6wxKLN5OoXm119nzoLrxPPIC09n73TdVYV6oxW1x/KVUYVVvdVyMtUKCxqiQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=nvidia.com;
Date: Wed, 6 Aug 2025 15:44:43 -0300
From: Jason Gunthorpe <jgg@nvidia.com>
To: Leon Romanovsky <leon@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Leon Romanovsky <leonro@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 05/16] iommu/dma: rename iommu_dma_*map_page to
 iommu_dma_*map_phys
Message-ID: <20250806184443.GD184255@nvidia.com>
References: <cover.1754292567.git.leon@kernel.org>
 <9186ccefda5ea97b56ec006900127650f9e324b5.1754292567.git.leon@kernel.org>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <9186ccefda5ea97b56ec006900127650f9e324b5.1754292567.git.leon@kernel.org>
X-ClientProxiedBy: YT4PR01CA0189.CANPRD01.PROD.OUTLOOK.COM
 (2603:10b6:b01:110::7) To CH3PR12MB8659.namprd12.prod.outlook.com
 (2603:10b6:610:17c::13)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PR12MB8659:EE_|DM3PR12MB9389:EE_
X-MS-Office365-Filtering-Correlation-Id: b540726a-1087-4405-7c29-08ddd5194fa3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7416014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?DVKK7m2kwbrFdFZ5CLqlkp3pCfT0gAPJfkqrhOJzBqvcXtAOkkMPkBXU7sc2?=
 =?us-ascii?Q?HlPv8+ODQt8Q5OlIqzIGrgF1p47orRrCOtS8kcyGubzJCJWHSvgXFfbNgzrw?=
 =?us-ascii?Q?/hbV1f0thZ7bBK1+ra1Aq/S4ghWekXsp1lWa5ZxaEgJoM6cjrxFNxViHVCTx?=
 =?us-ascii?Q?TFLHB25mCEIL35Hl32dvuQWzbEU0GAEIVAXeJcPoCROymPkl0kkmjQDuHvBq?=
 =?us-ascii?Q?RkZnbgMNgQDJ5hVraqmr3DqGxwMzxY5CuzgTXC97OTldBsMrUA48sPfSRdID?=
 =?us-ascii?Q?tqSf1yn9ePjr7Hy3vLsEgX3F0fYDVHBJtKI9SaZ5L0p+cu7Uc8LFfr3KenOK?=
 =?us-ascii?Q?veB8r0oF8RmSDkboVZYVJ4LxD8KpGeCBlI1IJSOkSZhp4XGn7VEzxR5UaicJ?=
 =?us-ascii?Q?p+DZqdQDosr9FvrmtVsyYhFNf0Y2CCMgoyKiHR0xD9ROFjvV+cl1RfBE0BOa?=
 =?us-ascii?Q?YvmN68/7ccmDS1DD4nBhm8zR6JmvobuG2WYZkzk6+yrKS9xauJWj3D8vvJSG?=
 =?us-ascii?Q?ii403ZJLIjngZYo/rzax6f8v2jfN4Jz1HtN3ZTqbZg0NQCTu85kWr/XhusG8?=
 =?us-ascii?Q?F5hs0NGzJY4IEmIJhJmvxnvKn1HNsXTHNXCHtLh71RhGP8n9SKXQYRLtxCkv?=
 =?us-ascii?Q?8pavmU/3d5KiWUm9ny/KjITJYthuwGGpygrPizbHaBrHquUx3GGBYbggfwoa?=
 =?us-ascii?Q?LMi66WtjB3AYwHRmXlIVUPirRtnF0O2CjHopmmjRrUKzu4uclUBDvVYN8x4X?=
 =?us-ascii?Q?2ROpvPSIJNfSYsU3AAEHC3YyOxDvvBLXnyJqCcf88hehfvMBMBVH0P2drFon?=
 =?us-ascii?Q?+XfyYtM6hVF4OPxaIeAh9YPKm0WxFl2Np8kW/tUzqJewVNeQ/WUIsU4Hizuc?=
 =?us-ascii?Q?277SUZf3nJE1rAykfN8m3DpJw5Jlp7asNbwBPEsJ2BKh7AJdAs8cicqZ+vrG?=
 =?us-ascii?Q?b/jL7tNZV/kmFGInFAGBeRXEhEba3f9GEefwbC9P1BqjLhB2EO7yvQO1WTnF?=
 =?us-ascii?Q?6sddW5eTpyKv0H2raRyInjVjvpPWDDoxfKR0rUXlY9ChanIcCnXTn85sYUKR?=
 =?us-ascii?Q?DrzR2KaplMd0BKRatDtIcigFzcesXkNSQtOAzG1HsKQ7txmWKoQBE1FhduWp?=
 =?us-ascii?Q?hdFKFriNDZB38pm6yKLTLlA1be01LI3JCWrLA42f+bdGiIxnHudbioh7FR5c?=
 =?us-ascii?Q?dnZi+Yl6hOwt5XWRfEzWN9lFDY/Cv7paTTfwrzYaFmCUDkmuGl6P3lTqXmXt?=
 =?us-ascii?Q?W+d+zHryLrLJG5nW9l7UEflk6LbaYe2nqjW7GsuAMzjd7oJm60dj8MZRJM7y?=
 =?us-ascii?Q?QD7MjGm5CTHLyX0co1pLB+az+/asfUfJo2+DFm1tG8cFiM1C2Xx3v1Qr3tM9?=
 =?us-ascii?Q?qNJRj6rUu1FVWh3IOwVptrTBgkcqwQwkFY1H2p9ZJUSixRrIEJPB8s6E+XmY?=
 =?us-ascii?Q?ttj2uhMec8w=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR12MB8659.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?H5EEEmksxB5nY2IizxojE35HXRRm8/DB/1QSzYsVyyVgI96BpLxbIuv5TDkx?=
 =?us-ascii?Q?nUGpwu2dJU6+r3X915pb8KC9O5dreCxHz158+pG2Fj6dAGBEledNoRSGoX0R?=
 =?us-ascii?Q?hbO65fGcbNBhmktBgZ2vmYBPQBsB0lY2syDGxqUeE0cUd2r9ARBLOsowZs6r?=
 =?us-ascii?Q?TGvou3G03c+uNESEZFI58JjOQ60EdRFWaha/si8J3haXH+axt49E95RcDf57?=
 =?us-ascii?Q?vbmEin9T70GxM/I6kKe9bMKickVzch2GwVucyBZhjx2WYVrYch1nj9TyCpRH?=
 =?us-ascii?Q?D3j0bTzOuFiIpRkZxysQpHON+YOkT3Jo4gWIHSNf6RlgD1bA3wE7ONa3dLnN?=
 =?us-ascii?Q?MQ27zykqOoiFAJf+LhCVKLhRVr7yMezgpp1DhO3HeIzs4+BjizAZMMzRyBE5?=
 =?us-ascii?Q?4VQ5IMsQ2ve0tfUGNIFgDJAzGSmNJBp+nmNckIuz4+Y4UeV9wxAaC6k85kEJ?=
 =?us-ascii?Q?ZyTnGNZMgxjCp2kn9yXy3d3gcYf7k25G7xfdo5+J8yTjS66m8YMMuDBZKLhd?=
 =?us-ascii?Q?+oA4Zz484q0UmlLvbDJWR2YZRO9C5wu4qCvVQyo/cV6Xf23MW47rmjSOSt4i?=
 =?us-ascii?Q?8gyIzgAUlSqrYizSHaM5cTpNNalJdBGbGHEAuZSnUZJPabrYVD8zYlVofvMA?=
 =?us-ascii?Q?5jQ2gxzhomsXJI4XpWFcLHjkPZbl3ReZV2Iv4UV816nGs7RtY9ywpvEEH3M6?=
 =?us-ascii?Q?d37UY82AQkgHJ389AJxpqATWo+7813trld15qO08wOP7wptlSKTBtLxFqyp1?=
 =?us-ascii?Q?p5K5mq4BDwrw4ErAxSXgmqHMJmwrMkBiODHeMV/7BRLuY36DMVyv844QXfcN?=
 =?us-ascii?Q?5JXYB6b0PeVylkrKNvdTrz1aNY3GOeyDWYzbbsnDYKyAO8mjTrOVj0ZCSdxd?=
 =?us-ascii?Q?V1l1olpKmeAMJEJZSxoT4NugVaKwxOfUKz8aTEG8cK7rLgBGKNzwSZvC6E+r?=
 =?us-ascii?Q?TZ60eqsirzXmat2EcjPl25ppMdHGy3IbMnQ/J9sgxmY/z9E9OuwHJWp7bA6X?=
 =?us-ascii?Q?zvjg8HBBbOwzT0WPfDsVKH7X4LiJmimUfgZZmgn0zuXLHlidtJWJeQa8fqgv?=
 =?us-ascii?Q?bqEHDo6ZVh+k/D9MdKr+ZDNQXkGO5ny9caMPWLw42d5z3DncVGuDbtgJ7wUg?=
 =?us-ascii?Q?1GLNNvORRle4a8/329sxw5VCmtaA+NcMj0xHlOg8OkHs+zBaTfknUMZ1S11e?=
 =?us-ascii?Q?Il92mJk32OizprAwz+I6hfDG+f5USQm3BrAz3Fe5DKhO3+Rq+fHW4Updrapg?=
 =?us-ascii?Q?xWKhNg7TXgqka6KKCknRW16XrkrH9wbo07ZPDyRvtjmSI0Kz8389jwNNrVOf?=
 =?us-ascii?Q?OUwZQImlpAEA11s3KKAs/HNdN9uURSwzJkCT55r6laWcFrnQtmKmNQNXh1bb?=
 =?us-ascii?Q?DWShheY2RnxJzO+KOAGR3f97vhXpXHJ+Ku9Wu0v9i+qRbybf1HLv8bXf27LJ?=
 =?us-ascii?Q?oCEXhhTsPvH0NVJ6P73+0jAj/p0R/zyWNg3RaqPhpJO1OCqeXbABd26YLLMw?=
 =?us-ascii?Q?jIP6a6G7UJYSNhOAYVZHG104pJg0qJOHmW7DkhK7vFiCR7az3SJsxBwlslee?=
 =?us-ascii?Q?9D1Cn5vtkBFmiLwdXkc=3D?=
X-OriginatorOrg: Nvidia.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b540726a-1087-4405-7c29-08ddd5194fa3
X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8659.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Aug 2025 18:44:44.5493
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 0L4SPqUDcaxxJuMXBA+m3YBuJJPuxs4NsJn9UIVDrRqDkc08va7Gss0v4bBIJNIw
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM3PR12MB9389

On Mon, Aug 04, 2025 at 03:42:39PM +0300, Leon Romanovsky wrote:
> diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
> index 399838c17b705..11c5d5f8c0981 100644
> --- a/drivers/iommu/dma-iommu.c
> +++ b/drivers/iommu/dma-iommu.c
> @@ -1190,11 +1190,9 @@ static inline size_t iova_unaligned(struct iova_domain *iovad, phys_addr_t phys,
>  	return iova_offset(iovad, phys | size);
>  }
>  
> -dma_addr_t iommu_dma_map_page(struct device *dev, struct page *page,
> -	      unsigned long offset, size_t size, enum dma_data_direction dir,
> -	      unsigned long attrs)
> +dma_addr_t iommu_dma_map_phys(struct device *dev, phys_addr_t phys, size_t size,
> +		enum dma_data_direction dir, unsigned long attrs)
>  {
> -	phys_addr_t phys = page_to_phys(page) + offset;
>  	bool coherent = dev_is_dma_coherent(dev);
>  	int prot = dma_info_to_prot(dir, coherent, attrs);
>  	struct iommu_domain *domain = iommu_get_dma_domain(dev);

No issue with pushing the page_to_phys to the looks like two callers..

It is worth pointing though that today if the page * was a
MEMORY_DEVICE_PCI_P2PDMA page then it is illegal to call the swiotlb
functions a few lines below this:

                phys = iommu_dma_map_swiotlb(dev, phys, size, dir, attrs);

ie struct page alone as a type is not sufficient to make this function
safe for a long time now.

So I would add some explanation in the commit message how this will be
situated in the final call chains, and maybe leave behind a comment
that attrs may not have ATTR_MMIO in this function.

I think the answer is iommu_dma_map_phys() is only called for
!ATTR_MMIO addresses, and that iommu_dma_map_resource() will be called
for ATTR_MMIO?

Jason


From xen-devel-bounces@lists.xenproject.org Wed Aug 06 21:24:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 06 Aug 2025 21:24:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072243.1435470 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujlcR-0006NL-Op; Wed, 06 Aug 2025 21:24:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072243.1435470; Wed, 06 Aug 2025 21:24:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujlcR-0006NE-KF; Wed, 06 Aug 2025 21:24:19 +0000
Received: by outflank-mailman (input) for mailman id 1072243;
 Wed, 06 Aug 2025 21:24:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=VUPx=2S=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1ujlcQ-0006N8-EM
 for xen-devel@lists.xenproject.org; Wed, 06 Aug 2025 21:24:18 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on2061e.outbound.protection.outlook.com
 [2a01:111:f403:2412::61e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b199dbb7-730b-11f0-b898-0df219b8e170;
 Wed, 06 Aug 2025 23:24:12 +0200 (CEST)
Received: from MW4PR04CA0336.namprd04.prod.outlook.com (2603:10b6:303:8a::11)
 by MN2PR12MB4389.namprd12.prod.outlook.com (2603:10b6:208:262::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.20; Wed, 6 Aug
 2025 21:24:06 +0000
Received: from MWH0EPF000A6735.namprd04.prod.outlook.com
 (2603:10b6:303:8a:cafe::cf) by MW4PR04CA0336.outlook.office365.com
 (2603:10b6:303:8a::11) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.20 via Frontend Transport; Wed,
 6 Aug 2025 21:24:06 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 MWH0EPF000A6735.mail.protection.outlook.com (10.167.249.27) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Wed, 6 Aug 2025 21:24:06 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 6 Aug
 2025 16:24:04 -0500
Received: from [172.17.35.128] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 6 Aug 2025 16:24:03 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b199dbb7-730b-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZATdNZaHjT1fTZvxqTot48iPjdglfKrBo3fyi7Qa3egnfI9iRhEpUoAy8/+yJy3jjUBzeREsqwOo3MZw9xL6q99KGNvr4/jGjvMFslk+DDM8e/9p3BeQ6DPVHDV9mvnUKZ7csvfi92syc1VMwTG+F0kW7yKW/WJMsEv12F+sMVWERfTGr39ync997zVPNgmuFmgUDRXvUjoBrVm+0ftGigUEmhHuIczt3zu5YyfwEulVjO/wZP1TRV53x57RD2rYUoGddyggoK+Eg0hjROmplynjHUal1c5XtoJGQ4CoUolNfAht6pQ5mbRmrMN4ZTnX9b3+PCQ5LjBqK3xqK0/mdw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=39EmAH5FAicSc8YRclDIl5SElJIogV7JY0cYKX8W230=;
 b=RSzmtYso2OYnH42pyzDZJMiRlknhWczWip9UxjqmGUcK62itBMz/pLcNt0gnpkJG3Bl2hnca8vdVBmRzCAiGtnlFfTxXHsvImk5gEXwT7F7IqXxZUSUm80ao9FfhLisvpVNcZW8VbRYiFaLhV1DY1BcoWpfBh9dpojs35Ucx+ngKieLToDtnSYWmKA5KzIOO6swr5gnIJGUdJZ3x10wpS1+BWdROKWLGQjLyKvbs7wwLbBszTHf26uhyfjxoJnwe3N/B1H0NLoA2s1BoTnFiHs13H8Lg3ewgxyM0iwJDVUv/KKhqUVytrLHu9Ca/M8GjPtizb8JJqQKbdgmT907/DA==
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=39EmAH5FAicSc8YRclDIl5SElJIogV7JY0cYKX8W230=;
 b=tjwqBFbFMiaaykTwv9QWckuXtF80hCQlvfiP7D4KKtsSeOrA7M1IvfD81UaebNS0WTslRUgwvfvfvDywi9eE8lY4jLvdgly3nB28uO1tx+amZn5027S6Kllq7P3LAUKaCbHGI4/Xy5WR7WbSzm++AIZTrHTLF3K+jin+vmBAOY0=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <b3edf693-6f54-487d-b465-6224daf9746d@amd.com>
Date: Wed, 6 Aug 2025 17:24:05 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86/mm: correct PG_log_dirty definition
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>, Penny Zheng
	<Penny.Zheng@amd.com>
References: <c506f225-0993-4ef3-9e7e-60b8f17c872e@suse.com>
 <65e27b35-9256-4ab0-966a-c50a18900ba5@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <65e27b35-9256-4ab0-966a-c50a18900ba5@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB03.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MWH0EPF000A6735:EE_|MN2PR12MB4389:EE_
X-MS-Office365-Filtering-Correlation-Id: 646cf61f-ed6b-4cd0-c099-08ddd52f931c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|1800799024|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?RUNFNnNnd2FWSmFkYXlZdjF2TmF3MWxQbEZIbCs1SFdqN2NsV05nS3VINHlz?=
 =?utf-8?B?aHk5Mk03WVQvYUloZXdtVFM2SjV0K1pEMDZlM1NzWWlOVVJGMXM2LzZLZlhQ?=
 =?utf-8?B?cHBLYTlSbDg2L3JRcXZzdU4wdUV3VzlkUXNSMGUwZ2N5dVRHenBOSURMcEs3?=
 =?utf-8?B?TEppTFM0Z1hLUFdHY2hWTk41RmJzcVJHUzFCejdYSHVpTFdKV0h3Mmo5a01L?=
 =?utf-8?B?dkJ2ZkREVkt6eTFtOXhpZm43UUlqdUdmTitPdHN1b2lKSnFscTROZ1JHZnNm?=
 =?utf-8?B?U3l4OFN3RTlzZ0MrbjJaemNqbUV6SEdiUXZJMDh5V0hrQ1UxazFCclR3TVVS?=
 =?utf-8?B?SGZwaU9hb3IxalRpc1dJZDNYS3VSRjB5Qm15UjdEZ3hjNER6a2podTlQRmpp?=
 =?utf-8?B?U1grOWh4UjFiUUFOd2hzbit1MXB3VTNXZTE0VitjaExYZm42RUtFTkR5Q1U2?=
 =?utf-8?B?SUx2RGlVM1U3RWhxVlFUUjl5a1IzYVJHZGVkTGlqNWNudkdVZzlPaUFnSDB2?=
 =?utf-8?B?SHE5SGEyV1hPUWFKNzNWTGJWd0NqQ1UwNm1BUElUVXhLTFpBbVczOElub3pQ?=
 =?utf-8?B?SmdHaUNsVGJzYmZRV3VRYWJYRjI5RHhheXdZWmdzeEY2Y1NwYnlTRFFCOEZ0?=
 =?utf-8?B?dXkyT24ya3d6dVByQTJueUpNdEhlYjJBWlJmeWJpWFA4N0dOMk9qWXVyUk90?=
 =?utf-8?B?Y21KaEhSRGtzdlF3TTd0eUpHMXlQQ3p3cmpSRit2TlZzRU9kbFJyVVFWSkVu?=
 =?utf-8?B?eEVKcWUrUVZtaTR5aDhscjE4S0Rnck1Hb3lDWmNZZW5wMDgzYjBSc3JlcVFQ?=
 =?utf-8?B?dGJDWEMwSVFrMElhVWVva05mc2VKUHAxMXp4VzcrWSswdStKNk83eXJiWXU5?=
 =?utf-8?B?bUVkb2kzMnhZYmdEcDlqd3dUSStQYlV1USt1N3FkYjRtNklnUS9NOWhLUTJo?=
 =?utf-8?B?VTR3R2NHY0xTTzdKTUF2NzE5cFc1VXQ1dnRzNnFIOUNwclZ5WVVDc3JzalBM?=
 =?utf-8?B?RHc2MEZ3V3lRd25uWHk4U2pYbG1GOXdPcW1sVGswbkorNy9LRVJoWExUUndJ?=
 =?utf-8?B?TW1zSHl4dlUwcGwvdmdPWU04azU2b2hQYmk2RzR3dm0xV3R1Y2RpdG1tNXhp?=
 =?utf-8?B?RnFCS1E4bUg3ZzdQaitBMlpMTmxIUmdyL3ZPVkMvTlpSK3ErWEh0QXY3MDh1?=
 =?utf-8?B?dDJaVDJrTzNvaDA4dk5DYmtrU3VhK1d5cWhXZDdRNml6M09rVGM3OFlxU1pV?=
 =?utf-8?B?eGQ5eVBOdThqWjBrTWZ6NkxENE1zMDdhaGtyZVd1ZUJFNURxamh6TkxpSGVo?=
 =?utf-8?B?VVNGVkR2NElkL2hET1NhSEw4Y0JiSW5TRWhuUEtDRlBlWFU2a0lqelVkOHQy?=
 =?utf-8?B?dUhFRndsVlQ0Z25LaWNMWER6ZzdNVmZ5ZzIzNHpzSi9EMW82K2M4MnpTRGJD?=
 =?utf-8?B?R1NBNlV3QnkvLzZ3NEYxZzk3L3drQ0ZMNlhVMHhyMENuZS9weFBQTXdJQWJi?=
 =?utf-8?B?ZW5namhSa3V4UWtZd29WUVlIZzdBbWNLZEd3ekhISzlPSXQ0TGVIRy9xejh1?=
 =?utf-8?B?aTFiRlY0K01LR1E4SjhpUVV2cVhTT2owcDg1YWU0aE1vQ0x6WVlPeVdwUW5S?=
 =?utf-8?B?dk5hTlRaczk3Q2VWUWtHOS9QOWsrc3JmT0h4YlcvaTlSc2hxVXk5SHkrb3U5?=
 =?utf-8?B?TVJXQVRqM1NwOWJjWERuZCsyb0g5cmwyRXZjUU5halEyMmNPYTR3ZG5nbXZV?=
 =?utf-8?B?K3FjZnB2bkpPaU1Kbm5CK1ArVithR2k4VE8xMTRzMzBmMHZtRmwxVys4Zmo0?=
 =?utf-8?B?a2duVXBPR0x1VG1MeFZtaFVQdFBoV2s5Q01aOURPd1dzZk9KTnQwTUFuaWEr?=
 =?utf-8?B?cUtGc2F4QjhtMmducDZwa0xDWk11UGlESmN5TnJPTXlTVkk0WnJ5YnB1SkJx?=
 =?utf-8?B?VXE0NkhSaDhvaU5MSVAvd0lDZmxxcjc4ZWIva2tsa2Q1TnZSbXRLSENxNGQz?=
 =?utf-8?B?WmEyNVBjYVo1d1JMMFlXc25id0gvY3ZRaXVVZDhaNlBZbzJxeHBiU3E1Vnoy?=
 =?utf-8?Q?RtchG6?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(1800799024)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Aug 2025 21:24:06.3429
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 646cf61f-ed6b-4cd0-c099-08ddd52f931c
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000A6735.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4389

On 2025-08-05 03:59, Jan Beulich wrote:
> While it is correct that in shim-exclusive mode log-dirty handling is
> all unreachable code, the present conditional still isn't correct: In a
> HVM=n and SHADOW_PAGING=n configuration log-dirty code also is all
> unreachable (and hence violating Misra rule 2.1).
> 
> As we're aiming at moving away from special casing PV_SHIM_EXCLUSIVE=y,
> don't retain that part of the conditional.
> 
> Because of hypercall-defs.c we need to carry out the dependency by
> introducing a new auxiliary PAGING control.
> 
> Since compiling out mm/paging.c altogether would entail further changes,
> merely conditionalize the one function in there (paging_enable()) which
> would otherwise remain unreachable (Misra rule 2.1 again) when PAGING=n.
> 
> Fixes: 23d4e0d17b76 ("x86/shim: fix build with PV_SHIM_EXCLUSIVE and SHADOW_PAGING")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> Of course PAGING is at risk of being confused with MEM_PAGING. It not
> having a prompt, I hope that's tolerable, as I can't really think of a
> better name.
> 
> Other PG_log_dirty pre-processor conditionals then likely also want
> replacing. mm/paging.c and mm/p2m-basic.c could also be compiled out
> altogether when PAGING=n, at the expense of introducing a few more
> stubs.
> 
> FTAOD, the Fixes: tag being referenced does not mean this patch corrects
> the far more recently introduced build issue with the combination of the
> two features. That's still work that I expect Penny to carry out (with
> there still being the option of reverting the final part of the earlier
> series).
> 

> --- a/xen/arch/x86/mm/paging.c
> +++ b/xen/arch/x86/mm/paging.c
> @@ -864,6 +864,7 @@ void paging_final_teardown(struct domain
>       p2m_final_teardown(d);
>   }
>   
> +#ifdef CONFIG_PAGING

The file already has a lot of uses of #if PG_log_dirty with similar 
meaning, if I am not mistaken, so using that would make it more 
consistent.  But CONFIG_PAGING is directly tied to the Kconfig, so maybe 
it is better?  Just something I noticed.

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

Regards,
Jason

>   /* Enable an arbitrary paging-assistance mode.  Call once at domain
>    * creation. */
>   int paging_enable(struct domain *d, u32 mode)
> @@ -889,6 +890,7 @@ int paging_enable(struct domain *d, u32
>       else
>           return shadow_enable(d, mode);
>   }
> +#endif
>   
>   #ifdef CONFIG_HVM
>   /* Called from the guest to indicate that a process is being torn down


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 00:06:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 00:06:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072307.1435479 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujo8n-00026t-4g; Thu, 07 Aug 2025 00:05:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072307.1435479; Thu, 07 Aug 2025 00:05: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 1ujo8n-00026m-1v; Thu, 07 Aug 2025 00:05:53 +0000
Received: by outflank-mailman (input) for mailman id 1072307;
 Thu, 07 Aug 2025 00:05:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=llzQ=2T=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1ujo8l-00026g-3i
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 00:05:51 +0000
Received: from fhigh-b6-smtp.messagingengine.com
 (fhigh-b6-smtp.messagingengine.com [202.12.124.157])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 463b5111-7322-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 02:05:50 +0200 (CEST)
Received: from phl-compute-12.internal (phl-compute-12.internal [10.202.2.52])
 by mailfhigh.stl.internal (Postfix) with ESMTP id EA1457A08FD;
 Wed,  6 Aug 2025 20:05:48 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-12.internal (MEProxy); Wed, 06 Aug 2025 20:05:49 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 6 Aug 2025 20:05:47 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 463b5111-7322-11f0-a324-13f23c93f187
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=1754525148;
	 x=1754611548; bh=Yy4AwNCxyeIe0srEz6aXNzEAyAg8MNNYDyg7dsTsAXk=; b=
	KTaJI8auG1k/obqyfjikELAMeLaWvyVYl4qlJVnX5y/TdBK8ziriuAScM3Z4tuqj
	m8DJ8OL349ptrinw8u7M7H3lDXABUdiEBi1Z7RuOg4IxNhhPT5GLbInkAK8S0fVd
	gVIucqBLb+ckC6UyJohDZ37z/Uy7oThjF+RGD7yA07D0pAeudrJuULTLcknVjphP
	0VTZnauwia5Ou4qT0L1bNzQbCqEKykERavCR6MMPpQOWvOUf6sZaDqY2PmIfAO5e
	zTsnU4iNFtS1T9agauGjWl2n8PvW8NrDHuwUjUdEoLxZE3exZaP8Ew9JeodLvbjS
	edHsQVztGW8fx8M4PGh7pw==
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=
	1754525148; x=1754611548; bh=Yy4AwNCxyeIe0srEz6aXNzEAyAg8MNNYDyg
	7dsTsAXk=; b=SFeNFT0mu9Os3EZZZGuMXIMqdKVPdfQt7SW/1VLoqPv9+g3RcsY
	MxfjlLn84JXhwmAZmU62L8JbBY/m38LrY913Wi7cvgI3eKSu2c+MSD2PrPh7HlD9
	+cC5MDI8d/GB3kuGRuLcJM2cIrJVDLo9ND4xi2bcIgFPdiba/95Okj64l46heli8
	sVvEtYfNMmHARuveWldyWy9437gzEHI9pCDzW6onsuoptOVztgjsnxEwRQT6vJWq
	WaEvV1FAN/Y0tSUtycCki/pnVSvyN5rtVHi72Es3Nfvbqeu7qVnjyVDU06z5Y12X
	YhnamWP1/3Le4ld33Od8ex+kx2KDy3eR0Nw==
X-ME-Sender: <xms:3O2TaHyf8GfnJ8WYH6v5kiusnw19KDj8V6KJCOcx8SjJN1_682uMOw>
    <xme:3O2TaJ1d92xNsf8LkcKhSi_P165GqqmfVgx45NQQd__CeOUSW_BLry_TXXQzKY7ZD
    rh6zQKlAsGD7Q>
X-ME-Received: <xmr:3O2TaN73Se8OLu-pPyAPbSk5cDQpvf3DLAqOXKtNek3KtDAS_FpqSDxKSUKmF3Hdk6e9_17Qzd0Vf2CIdfk2c8TS60osEPcSR6I>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgdduudelgeegucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnheptdevtdeh
    gfdtkeejhfeggedvtddvleffueeuuedtjedvveevffejhedvieefvdefnecuffhomhgrih
    hnpeigvghnphhrohhjvggtthdrohhrghdpihhnuhhmsghordgtohhmnecuvehluhhsthgv
    rhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehinh
    hvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepgedpmhho
    uggvpehsmhhtphhouhhtpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgi
    gvnhhprhhojhgvtghtrdhorhhgpdhrtghpthhtoheprghnughrvgifrdgtohhophgvrhef
    segtihhtrhhigidrtghomhdprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvghrnh
    gvlhdrohhrghdprhgtphhtthhopehrohhgvghrrdhprghusegtihhtrhhigidrtghomh
X-ME-Proxy: <xmx:3O2TaEUzGQkI66AUfNkeZFfyY4UGOz-sMBd0lZsYc4Jdj0miKXDNcw>
    <xmx:3O2TaEAg_evJ45ELPtVzHGbNhjzCEZIhFiJRGRXwSKNK6aTQnmChDQ>
    <xmx:3O2TaL5Oq6jq6ZsteuHmnNFT9g1IXWN9yXdaDQo--4_YnrGqrCc8oQ>
    <xmx:3O2TaHwhBDCGd0Vk7O2na1cj96zVy_lE5G_JWsOUPxjAcxUQtEUZkw>
    <xmx:3O2TaJMIps2430orJxMHXQxa1Hw8xHjs3uJOiC1O2UeK88-k4kXGb5DZ>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 7 Aug 2025 02:05:45 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: 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] Add debian rootfs artifact
Message-ID: <aJPt2klRMJz34b-o@mail-itl>
References: <20250807000318.2284283-1-marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="JQJX+YBVouSRJAht"
Content-Disposition: inline
In-Reply-To: <20250807000318.2284283-1-marmarek@invisiblethingslab.com>


--JQJX+YBVouSRJAht
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 7 Aug 2025 02:05:45 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: 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] Add debian rootfs artifact

On Thu, Aug 07, 2025 at 02:03:07AM +0200, Marek Marczykowski-G=C3=B3recki w=
rote:
> Will be used as dom0/domU in some tests.
>=20
> Install OpenRC and setup it to start /etc/local.d/ scripts so tests
> don't need different cases for Alpine and Debian.

Looks like this one did not reached the list:
<xen-devel@lists.xenproject.org>: host
    lists.xenproject.org.us1.protection.inumbo.com[46.21.106.111] said: 550
    5.7.1 Rejected by spam filter (f436205f-7321-11f0-a324-13f23c93f187) (in
    reply to end of DATA command)

I just hope people explicitly included in cc did got it...

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

--JQJX+YBVouSRJAht
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmiT7doACgkQ24/THMrX
1ywPsQf/YyTYxuEGfUTd2kR931Aj5xchaVEuLoCKtxKaLMmua+XJ9fPYtMKjoBhP
DpN4GhZFE1dnPDHFYaoOMGDmvH4zZwvDYioE8TGq4ycbVAM4HB7V7a88AnnjxkqB
sy31YLt5GtavIie4SeaMQq67umwRI4Z0P4asLKMYx/0ZtaWTrSJ/R9cLnKhHeMk6
mqBbBk02oBv93ZbhCVlPW3y+QZuexgY7oNKca8uaWgZtIEtcfnl2KnG0E2OdaBVt
LE5UGhX3nbn3kPC7aB1REr23nOuFibr2HpDO/vy908YW0A0EJQVqY75x/Z9dv8yi
o6IFe4vILOdpNK4OJZ/QDmEOJRSoAw==
=zFuh
-----END PGP SIGNATURE-----

--JQJX+YBVouSRJAht--


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 00:08:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 00:08:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072314.1435488 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujoBb-0002d5-IW; Thu, 07 Aug 2025 00:08:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072314.1435488; Thu, 07 Aug 2025 00:08: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 1ujoBb-0002cy-Fi; Thu, 07 Aug 2025 00:08:47 +0000
Received: by outflank-mailman (input) for mailman id 1072314;
 Thu, 07 Aug 2025 00:08:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=llzQ=2T=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1ujoBa-0002ci-9g
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 00:08:46 +0000
Received: from fout-b2-smtp.messagingengine.com
 (fout-b2-smtp.messagingengine.com [202.12.124.145])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ae64c874-7322-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 02:08:45 +0200 (CEST)
Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44])
 by mailfout.stl.internal (Postfix) with ESMTP id AD6651D005CF;
 Wed,  6 Aug 2025 20:08:43 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-04.internal (MEProxy); Wed, 06 Aug 2025 20:08:43 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 6 Aug 2025 20:08:42 -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>
X-Inumbo-ID: ae64c874-7322-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm3; t=1754525323; x=1754611723; bh=mouI2rKFCG
	Uv19+o1cVeOdBcrUjRYlEI1C7PrbJfiwA=; b=fDulLMXJm/uFAFGOnyO10t65Sy
	FPdJU1NUme5uoGp2nSr0GnEeuhW66Hk9bHbm7PJYcdCq133iF1GgUhuQl+PPS9jY
	Av76eaAgWV8w3fwqLgZ7FS4dOitI2IaAYCPIW10n/MWSSQCS0DwtZCHHCD59p9Uj
	k5Y+xZOuZ2P+1PkoZHjXcTAmZ8cammcPq9GVCiJYRZncekWpuSG8zktWJMuXlEkW
	gn9aB150gfcC2S/wW9o/7DUFfGd/wwlqjlQzEBW2sQ8kViPChRPFloLQs3lOQvaS
	NTJlpuSYGK0Zt8dAnwvuR+PNxvLUPOIM1ZWdkCW0WSI5tk2U34BGZxGv3drA==
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=1754525323; x=
	1754611723; bh=mouI2rKFCGUv19+o1cVeOdBcrUjRYlEI1C7PrbJfiwA=; b=A
	Xi0G08u/+FlaVfjwILg4j85JTCXh0MyVS1+UZLTYj1QCWrxQm0bx7kKrifhnupR+
	81FbTA89IH8Mru3Jzo4rk6vGYSh9T/fYdcEnbboI31XEVu7f0v8MJbtwqVKFbrfZ
	tQZmoWcfKjIEFq4/YNiatHXTZ/XaQ1n2LFKNCgcHIS3tIxipph1dmGvzmj3KLzIi
	pEV6Zl8UrYBXVvulhG1psPtoS/lj4p8lcPJB8alJqMoYW2QUexQCpl0mKPy4u8tt
	ofiRauf0bfgdjTIvnjvYXtZeE40Ck6p4aMbRgN7tZreSlB89rJZAioST8ZyaRFv0
	BiVfWEAESBPRMG/M+edrg==
X-ME-Sender: <xms:i-6TaBrTXH47_EERim50iPqLys_cUgF82Hxiuwav42_Ns5BRFbycZA>
    <xme:i-6TaONLEclYLEHj6ynVwqX-MoplbN--LxkTAcZTTqYn8vaP-zbHlCtS0-rkpoliU
    sGwd0AeQsZxbg>
X-ME-Received: <xmr:i-6TaKxP785njsR5--UB84AGumU1z-f8mBg_xzXnZvsffc6PQ2BN9AEi4WELJT2Us4DB273L2og3a6ZIF0ha-84ZhSnaPtdI4t79yDs_obXzqTIg-53G>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgdduudelgeehucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghk
    ucforghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvh
    hishhisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefguedu
    hefgvdefheehudejheefudevueeghfekhfehleegveduteeuiedugffgffenucevlhhush
    htvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhes
    ihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeegpd
    hmohguvgepshhmthhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhs
    rdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopehmrghrmhgrrhgvkhesihhnvh
    hishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhrtghpthhtoheptggrrhguohgvsegt
    rghrughovgdrtghomhdprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvghrnhgvlh
    drohhrgh
X-ME-Proxy: <xmx:i-6TaPupSmUNfUhxlq_RDcg5HJZ-yw2Rwd8F3oJDu2omFsVD3ddMwA>
    <xmx:i-6TaL4vfOHx_XjVivlW7VT4qaViXV1vwd4f8SyltN2ej_9t4EUviA>
    <xmx:i-6TaGQb2OM5hR6VvRezn6gIxoJyDZXUsIm-TNgutLK5Y-T7cKPnjw>
    <xmx:i-6TaCpo_D6qSGIyNaiAEJxDCL62soTHbgrDPQ6NRCJh13nxWt36fg>
    <xmx:i-6TaNlKMow5ijvy7YOG5wbxUm1uLzwlsrhvo8QsaurzqDFOoc1w8dja>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 1/2] CI: Add driver domains tests
Date: Thu,  7 Aug 2025 02:06:49 +0200
Message-ID: <4595a5aaa66e8d26ff9851496624ceb9c734ee4c.1754525202.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.a3ae44ad160fb5827451cd35aa8ebbd546cf3866.1754525202.git-series.marmarek@invisiblethingslab.com>
References: <cover.a3ae44ad160fb5827451cd35aa8ebbd546cf3866.1754525202.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Setup a simple two domU system. One with network backend, running
xendriverdomain service, and one with frontend, trying to ping the
backend.

Contrary to other similar tests, use disk image instead of initrd, to
allow bigger rootfs without adding more RAM (for both dom0 and domU).
But keep using pxelinux as a bootloader as it's easier to setup than
installing grub on the disk. Theoretically, it could be started via direct
kernel boot in QEMU, but pxelinux is slightly closer to real-world
deployment.

Signed-off-by: Marek Marczykowski-GÃ³recki <marmarek@invisiblethingslab.com>
---
 automation/gitlab-ci/test.yaml                  |   8 +-
 automation/scripts/qemu-driverdomains-x86_64.sh | 116 +++++++++++++++++-
 2 files changed, 124 insertions(+)
 create mode 100755 automation/scripts/qemu-driverdomains-x86_64.sh

diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 1f0b27b2378a..5c4b2dc304b4 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -656,6 +656,14 @@ qemu-alpine-x86_64-gcc:
     - *x86-64-test-needs
     - alpine-3.18-gcc
 
+qemu-alpine-driverdomains-x86_64-gcc:
+  extends: .qemu-x86-64
+  script:
+    - ./automation/scripts/qemu-driverdomains-x86_64.sh 2>&1 | tee ${LOGFILE}
+  needs:
+    - *x86-64-test-needs
+    - alpine-3.18-gcc
+
 qemu-smoke-x86-64-gcc:
   extends: .qemu-smoke-x86-64
   script:
diff --git a/automation/scripts/qemu-driverdomains-x86_64.sh b/automation/scripts/qemu-driverdomains-x86_64.sh
new file mode 100755
index 000000000000..1caaede7722e
--- /dev/null
+++ b/automation/scripts/qemu-driverdomains-x86_64.sh
@@ -0,0 +1,116 @@
+#!/bin/bash
+
+set -ex -o pipefail
+
+dom0_rootfs_extra_comp=()
+dom0_rootfs_extra_uncomp=()
+
+cd binaries
+
+# DomU rootfs
+
+mkdir -p rootfs
+cd rootfs
+mkdir -p etc/local.d
+passed="ping test passed"
+echo "#!/bin/bash
+
+set -x
+
+if grep -q test=backend /proc/cmdline; then
+    brctl addbr xenbr0
+    ip link set xenbr0 up
+    ip addr add 192.168.0.1/24 dev xenbr0
+    bash /etc/init.d/xendriverdomain start
+    # log backend-related logs to the console
+    tail -F /var/log/xen/xldevd.log /var/log/xen/xen-hotplug.log >>/dev/console 2>/dev/null &
+else
+    ip link set eth0 up
+    ip addr add 192.168.0.2/24 dev eth0
+    until ping -c 10 192.168.0.1; do
+        sleep 1
+    done
+    echo \"${passed}\"
+fi
+
+" > etc/local.d/xen.start
+chmod +x etc/local.d/xen.start
+zcat ../rootfs.cpio.gz | cpio -imd
+zcat ../xen-tools.cpio.gz | cpio -imd
+mkfs.ext4 -d . ../domU-rootfs.img 1024M
+cd ..
+rm -rf rootfs
+
+# Dom0 rootfs
+mkdir -p rootfs
+cd rootfs
+zcat ../rootfs.cpio.gz | cpio -imd
+zcat ../xen-tools.cpio.gz | cpio -imd
+mkdir -p root etc/local.d
+echo "name=\"backend\"
+memory=512
+vcpus=1
+kernel=\"/root/bzImage\"
+extra=\"console=hvc0 root=/dev/xvda net.ifnames=0 test=backend\"
+disk=[ '/root/domU-rootfs-b.img,raw,xvda,rw' ]
+" > root/backend.cfg
+echo "name=\"frontend\"
+memory=512
+vcpus=1
+kernel=\"/root/bzImage\"
+extra=\"console=hvc0 root=/dev/xvda net.ifnames=0 test=frontend\"
+disk=[ '/root/domU-rootfs-f.img,raw,xvda,rw' ]
+vif=[ 'bridge=xenbr0,backend=backend' ]
+" > root/frontend.cfg
+echo "#!/bin/bash
+
+set -x
+
+bash /etc/init.d/xencommons start
+
+xl list
+
+tail -F /var/log/xen/console/guest-backend.log 2>/dev/null | sed -e \"s/^/(backend) /\" &
+tail -F /var/log/xen/console/guest-frontend.log 2>/dev/null | sed -e \"s/^/(frontend) /\" &
+xl -vvv create /root/backend.cfg
+xl -vvv create /root/frontend.cfg
+" > etc/local.d/xen.start
+chmod +x etc/local.d/xen.start
+
+cp ../domU-rootfs.img ./root/domU-rootfs-b.img
+cp ../domU-rootfs.img ./root/domU-rootfs-f.img
+cp ../bzImage ./root/
+mkdir -p etc/default
+echo 'XENCONSOLED_TRACE=all' >> etc/default/xencommons
+mkdir -p var/log/xen/console
+mkfs.ext4 -d . ../dom0-rootfs.img 2048M
+cd ..
+rm -rf rootfs
+
+cd ..
+
+cat >> binaries/pxelinux.0 << EOF
+#!ipxe
+
+kernel xen console=com1 console_timestamps=boot
+module bzImage console=hvc0 root=/dev/sda net.ifnames=0
+boot
+EOF
+
+# Run the test
+rm -f smoke.serial
+export TEST_CMD="qemu-system-x86_64 \
+    -cpu qemu64,+svm \
+    -m 2G -smp 2 \
+    -monitor none -serial stdio \
+    -nographic \
+    -device virtio-net-pci,netdev=n0 \
+    -netdev user,id=n0,tftp=binaries,bootfile=/pxelinux.0 \
+    -drive file=binaries/dom0-rootfs.img,format=raw"
+
+export TEST_LOG="smoke.serial"
+export BOOT_MSG="Latest ChangeSet: "
+export LOG_MSG="Domain-0"
+export PASSED="$passed"
+
+./automation/scripts/console.exp | sed 's/\r\+$//'
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 00:08:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 00:08:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072315.1435495 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujoBb-0002gE-RD; Thu, 07 Aug 2025 00:08:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072315.1435495; Thu, 07 Aug 2025 00:08: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 1ujoBb-0002fg-ML; Thu, 07 Aug 2025 00:08:47 +0000
Received: by outflank-mailman (input) for mailman id 1072315;
 Thu, 07 Aug 2025 00:08:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=llzQ=2T=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1ujoBa-0002cl-HC
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 00:08:46 +0000
Received: from fout-b2-smtp.messagingengine.com
 (fout-b2-smtp.messagingengine.com [202.12.124.145])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ad9a2a68-7322-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 02:08:44 +0200 (CEST)
Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44])
 by mailfout.stl.internal (Postfix) with ESMTP id 468781D005C3;
 Wed,  6 Aug 2025 20:08:42 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-04.internal (MEProxy); Wed, 06 Aug 2025 20:08:42 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 6 Aug 2025 20:08: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>
X-Inumbo-ID: ad9a2a68-7322-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:message-id:mime-version:reply-to:subject:subject:to:to; s=fm3;
	 t=1754525322; x=1754611722; bh=w6Wjtxqx13pNBXf8gadiuGtlHzY+/T03
	bKCrQfTPJRw=; b=CpKyNcdnrzIUxezASvnMa+Kz908xRP6bxCaB7wdOfwexWFd9
	g6V4fma3Z615QSl1F2XghoM9hjgDFxcYQzuhZt/8V7vuzyvVgGWDk7lWA6SYUMCB
	Lh7bhp1avG0o/Nqc/njpMFthAs9MxJ5Juep8jERg3zJcBUf75TnAzFwTy8HGi+m4
	DKOHls43JdwzLKgkIt/lNuvtC6gF6ZeLtz4A9Cgw1QEEVHIIhk82Uv2e2Xjx13W1
	hXl0y8o2darhOIFmg2SKDSsosCGmsrybKYgFbcSGe+ZozRcfwk+51zECeGIUx4EE
	PczMpmuSxcxebslQjMwMteeFQhP//dcAIGkF1g==
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=1754525322; x=1754611722; bh=w6Wjtxqx13pNBXf8gadiuGtlHzY+
	/T03bKCrQfTPJRw=; b=Ror6XYJTGxKTFWP9xoXyLtMUQKL1xjDgGOsi3czqWaGc
	iGlmUR0SUxtR70gnWTPFcHlZliTvpmU1FDjl9NwiUJvNLHW4LG9r3TNKbBERAwGM
	RbgNRO/2tJ9ke4rztXbfBxknW3m3Hb/FHtCRBcT0h83+7i3v5bRxT+25qk//ILh7
	8qyJyjyru3dtilSo6mTqMco/s5zps4mst4gItV2DtmIHLPZKJTwMuk2ZXhvi6eJj
	djxfTEVqIpUtzhW1Na4LPnhGmVccz8yDr7Nb3+dQs5VUblGNYAmwXLO7thYHb0qF
	CrR+ChYIZdzetif25ux9vTiYteuFSKiGospIpzM3og==
X-ME-Sender: <xms:ie6TaKKu3Z3xjNbZBUE8gGNCrZmO7QTndFdxNZIiGQ-2mxIGrGrr4A>
    <xme:ie6TaCXd6Q8TK5Me00VhMr9j9vTQ__reyczVUcQSKn9GRz1KMltkOMcu96R0l7Qkg
    8oxQUiSpBGR1A>
X-ME-Received: <xmr:ie6TaMivOP-yeQhQDQkltRug6dPBzBEOqO2Ln12nwi0hIZogSIbTZHGWsYK6WNYsZ20HirX1ZQ88rLTuysiD-W9uobMe2i8Z11oOiNMhYo9IqdnZ-pjh>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgdduudelgeehucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucenucfjughrpefhvfevufffkffogggtgfesthekredtre
    dtjeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhi
    uceomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqne
    cuggftrfgrthhtvghrnhepjeeufefhleeikeegfedtgfeiueeghfduteejtefhfeevheff
    jefhieeggfejkeelnecuffhomhgrihhnpehgihhtlhgrsgdrtghomhenucevlhhushhtvg
    hrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopedvpdhmoh
    guvgepshhmthhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdig
    vghnphhrohhjvggtthdrohhrghdprhgtphhtthhopehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhm
X-ME-Proxy: <xmx:ie6TaN8FN_8sZEcSKPMR4dhPhBfXQci7V9LCN-3CtHa2D2HcONkPSA>
    <xmx:ie6TaGDF34K4dq3Lk55pqUEIaFy06aMDP0KU2_st4X2ZYa8EyJYeRw>
    <xmx:ie6TaKL8r9S7Fs3RlJsW_np0XAH2TN8_NoQia3LYHiNR-AdbafpJDg>
    <xmx:ie6TaJkUEr8uxvDO4eUL1soHV_9xYzEDGc_vfr5fodpvzxPgXyEClQ>
    <xmx:iu6TaInaaHAXmi1KBX5sSBOhVVqs0JgcJwma22KfpyN8HxdKZT510WO_>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v1 0/2] Add driver domains test
Date: Thu,  7 Aug 2025 02:06:48 +0200
Message-ID: <cover.a3ae44ad160fb5827451cd35aa8ebbd546cf3866.1754525202.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.49.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This is intended to detect issues like recent xl devd crash in domU.

Pipeline:
https://gitlab.com/xen-project/people/marmarek/xen/-/pipelines/1970971528

I did checked that indeed it fails with the fix reverted - that's why the
second patch - Alpine version did not detected that regression.

Requires debian in test-artifacts repo - patch sent separately.

Marek Marczykowski-GÃ³recki (2):
  CI: Add driver domains tests
  CI: Run driver domains test on Debian too

 automation/gitlab-ci/test.yaml                  |  27 ++++-
 automation/scripts/qemu-driverdomains-x86_64.sh | 116 +++++++++++++++++-
 2 files changed, 143 insertions(+)
 create mode 100755 automation/scripts/qemu-driverdomains-x86_64.sh

base-commit: dbcbbed4e9dc25faa211d359c2f04a9c70f087c9
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 00:08:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 00:08:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072316.1435509 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujoBd-000356-1S; Thu, 07 Aug 2025 00:08:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072316.1435509; Thu, 07 Aug 2025 00:08:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujoBc-00034v-TA; Thu, 07 Aug 2025 00:08:48 +0000
Received: by outflank-mailman (input) for mailman id 1072316;
 Thu, 07 Aug 2025 00:08:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=llzQ=2T=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1ujoBb-0002cl-TL
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 00:08:47 +0000
Received: from fout-b2-smtp.messagingengine.com
 (fout-b2-smtp.messagingengine.com [202.12.124.145])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id af559e14-7322-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 02:08:46 +0200 (CEST)
Received: from phl-compute-12.internal (phl-compute-12.internal [10.202.2.52])
 by mailfout.stl.internal (Postfix) with ESMTP id 402B81D005CE;
 Wed,  6 Aug 2025 20:08:45 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-12.internal (MEProxy); Wed, 06 Aug 2025 20:08:45 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 6 Aug 2025 20:08:44 -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>
X-Inumbo-ID: af559e14-7322-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm3; t=1754525325; x=1754611725; bh=iJvMJcv0cB
	Qu55x4UgstCbKC7gtLV8geSfdU8hnYITw=; b=e7uR7CjN+a+PsQHgCRAEOwqHxY
	MtO3Ig+ZWdRIl6zZ7IotFiE5DStcQpyg9xr4mXSfRGztFq1xKHhZcNuzF5MRJwLd
	phoXHkpiwOeYKR58myLP0B470bw0enq2ZPMSRfaADZKerjHQgeR53yjUTiGWndrS
	ESkLPiRhR2q62bbBgDvBekHwVWr0cbG3RaI8KCOUohJMbbSBAawtdKFxvEx6Jrru
	3lTFii0lI2L+xJEhQd0GUU0nazFqJRPnAbtkmiH/aMdHQPDw8IlLcc8Doez3o528
	+Acs+kJ0yBJoikvVzZ+/XTWSLZ2fc/kWY3GxEVXS70dXNoaqO/RGiC/ppJfg==
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=1754525325; x=
	1754611725; bh=iJvMJcv0cBQu55x4UgstCbKC7gtLV8geSfdU8hnYITw=; b=b
	X4qQDR2dKzI+rPt6QptGwn4siItcuOz165JadWvVvC0q9E23zrmAGdCYqPu5hN76
	V+DFN0r4IxRjwjZGH7Xwx13DbcT4j+gRmCZYxgtg1H0ovI7s8jEZtaI9fx0o0uya
	b3ffWfBZTnm71jO6s5f5eUPACESV1TnBX/mTmFXdix/K6wevxuebTwL+JZQP2x9p
	D5mquwuToGK8gOn46ICOpYbt/vcSe8GhWngsRbzQni4FeX42hodai82rYYETxt9E
	yRVi4lFUrH7OPheSFucbJJL3YhFBo4cRaaKAOCt3888tGkuXmrBlr4Q9sZJXsOBn
	hUfXi6/gx5dDpoUUYfwxg==
X-ME-Sender: <xms:jO6TaPeCqa9akwvtOlL696XanBwepxTAIRLRLtZ6rXj2yf4q07hyZw>
    <xme:jO6TaDC7qt0AnWy2ZH8DspWsNAEjMtrECH2_oeEsycxErMWaX-E4bzOK3hvlg_HLN
    M9EAlrkVtKYjA>
X-ME-Received: <xmr:jO6TaC8JYKPnjxxaXZz_dakFYBjM9oxY47VdeM6uoCnsfvgAktR0JSjueRdzas_Rt1R00d9MpGje97K3AWxX1Ow4BHoYTHb3VjmFZCFSxTGTTcV6XuH2>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgdduudelgeehucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghk
    ucforghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvh
    hishhisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefguedu
    hefgvdefheehudejheefudevueeghfekhfehleegveduteeuiedugffgffenucevlhhush
    htvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhes
    ihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeegpd
    hmohguvgepshhmthhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhs
    rdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopehmrghrmhgrrhgvkhesihhnvh
    hishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhrtghpthhtoheptggrrhguohgvsegt
    rghrughovgdrtghomhdprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvghrnhgvlh
    drohhrgh
X-ME-Proxy: <xmx:jO6TaOJwDmCdMpcNykjloXk_zyHyY8b4og3lgOaFlIZJL7uZqYGJSA>
    <xmx:jO6TaLgv1HOq8mQWuNWGoglWqOmiMOby4pNC953cbfrmGnsIYJZG_w>
    <xmx:jO6TaO6HBJ1ls6c4NuUVrAi_SPuT8Kf5w23zR5IXaIeuFpdePEwQtw>
    <xmx:jO6TaDZHiEMoNtheIcCY4099lS4EztY0vLHUfqHcAUbmlXDhxKK4DA>
    <xmx:je6TaPAp0L4HADeuRkJK5KXnRekAshY3ShOlXPErTsqLv2sXDOurKjRI>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 2/2] CI: Run driver domains test on Debian too
Date: Thu,  7 Aug 2025 02:06:50 +0200
Message-ID: <ebb90ba2c702b3fe59fbef29744ae3c312a9d36e.1754525202.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.a3ae44ad160fb5827451cd35aa8ebbd546cf3866.1754525202.git-series.marmarek@invisiblethingslab.com>
References: <cover.a3ae44ad160fb5827451cd35aa8ebbd546cf3866.1754525202.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The recent failure affected only glibc-based systems, so do the test on
Debian too.

Signed-off-by: Marek Marczykowski-GÃ³recki <marmarek@invisiblethingslab.com>
---
 automation/gitlab-ci/test.yaml | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 5c4b2dc304b4..a5ae03b0eee9 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -30,6 +30,17 @@
     job: microcode-x86
     ref: master
 
+.debian-x86-64-test-needs: &debian-x86-64-test-needs
+  - project: xen-project/hardware/test-artifacts
+    job: linux-6.6.56-x86_64
+    ref: master
+  - project: xen-project/hardware/test-artifacts
+    job: debian-12-x86_64-rootfs
+    ref: master
+  - project: xen-project/hardware/test-artifacts
+    job: microcode-x86
+    ref: master
+
 .qemu-arm64:
   extends: .test-jobs-common
   variables:
@@ -664,6 +675,14 @@ qemu-alpine-driverdomains-x86_64-gcc:
     - *x86-64-test-needs
     - alpine-3.18-gcc
 
+qemu-debian-12-driverdomains-x86_64-gcc:
+  extends: .qemu-x86-64
+  script:
+    - ./automation/scripts/qemu-driverdomains-x86_64.sh 2>&1 | tee ${LOGFILE}
+  needs:
+    - *debian-x86-64-test-needs
+    - debian-12-x86_64-gcc-debug
+
 qemu-smoke-x86-64-gcc:
   extends: .qemu-smoke-x86-64
   script:
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 00:57:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 00:57:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072373.1435519 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujowM-0002Md-F7; Thu, 07 Aug 2025 00:57:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072373.1435519; Thu, 07 Aug 2025 00:57: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 1ujowM-0002MW-CH; Thu, 07 Aug 2025 00:57:06 +0000
Received: by outflank-mailman (input) for mailman id 1072373;
 Thu, 07 Aug 2025 00:57:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ybbA=2T=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1ujowK-0002MQ-8T
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 00:57:05 +0000
Received: from mail-10630.protonmail.ch (mail-10630.protonmail.ch
 [79.135.106.30]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6d53cdbf-7329-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 02:57:01 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6d53cdbf-7329-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1754528220; x=1754787420;
	bh=P/uJF2I+/KJAt6ncOt5yYlEaL/c7E+bXRDVVyFEWzB8=;
	h=Date:To:From:Cc:Subject:Message-ID:Feedback-ID:From:To:Cc:Date:
	 Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector;
	b=EXuQ1y5CdRSAV8l5kxILMTb8uISVMPvxv//bsokOsVeJfS2oqVtuASjMOiHo55Eoq
	 FP+VSjRijB5QxYCs5HiFiYkjB3gihvBGwloN5+OfuWqc8hQRA0i9U5Olal567SoNPS
	 +7OWsmcomxMGr0yfY3jRYzr5K6cloKp7KU+U+A/42j4/4xs5FtaNFDNWtZQ80eLp6V
	 wLcSb95NjYNpDvFw1ObVkJLzblxvs/yMmFfhXtirnQzLsVwQCKABtlSi/QKMsPmHNp
	 w/AROMLwMhnISz4BOECDhYYynWeP4tUdE+dCQkFT0xrU1idw/0zO5ImSMvqwdx1XFq
	 A3oSl1138kFjA==
Date: Thu, 07 Aug 2025 00:56:56 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
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 v11] xen/console: introduce domain_console struct
Message-ID: <20250807005649.551704-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 7ec9725bafe790d2733de93fa46e97f887f259dc
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>=20

Introduce domain_console for grouping data structures used for integrating
domain's diagnostic console with Xen's console driver.

Group all pbuf-related data structures under domain_console. Rename the mov=
ed
fields to plain .buf, .idx and .lock names, since all uses of the fields ar=
e
touched.

Ensure accesses to domain_console pointer are valid in console_switch_input=
().

Bump the domain console buffer allocation size to 256. No extra symbol for =
the
value since it is used only once during data structure declaration. All siz=
e
checks use ARRAY_SIZE().

Allocate domain_console from the heap so that the parent domain struct size
stays below PAGE_SIZE boundary to account for more console-related fields
added in the future.

Finally, update the domain_console allocation and initialization code. Make
sure domain_console is not allocated for system domains.

No functional change.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v10:
- use XVFREE()
- ensured that domain_console is not allocated for system domains
- corrected comment in sched.h
- Link to v10: https://lore.kernel.org/xen-devel/20250725210525.736706-1-dm=
ukhin@ford.com/
---
 xen/arch/arm/vpl011.c      |  2 +-
 xen/arch/x86/hvm/hvm.c     | 16 +++++++++-------
 xen/arch/x86/pv/shim.c     |  2 +-
 xen/common/domain.c        | 19 +++++++++----------
 xen/drivers/char/console.c | 28 ++++++++++++++++------------
 xen/include/xen/sched.h    | 24 +++++++++++++-----------
 6 files changed, 49 insertions(+), 42 deletions(-)

diff --git a/xen/arch/arm/vpl011.c b/xen/arch/arm/vpl011.c
index 480fc664fc62..d0d17c76b72c 100644
--- a/xen/arch/arm/vpl011.c
+++ b/xen/arch/arm/vpl011.c
@@ -713,7 +713,7 @@ int domain_vpl011_init(struct domain *d, struct vpl011_=
init_info *info)
     }
     else
     {
-        d->console.input_allowed =3D true;
+        d->console->input_allowed =3D true;
         vpl011->backend_in_domain =3D false;
=20
         vpl011->backend.xen =3D xzalloc(struct vpl011_xen_backend);
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index cb8ecd050d41..c0673325143d 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -560,6 +560,7 @@ static int cf_check hvm_print_line(
     int dir, unsigned int port, unsigned int bytes, uint32_t *val)
 {
     struct domain *cd =3D current->domain;
+    struct domain_console *cons =3D cd->console;
     char c =3D *val;
=20
     ASSERT(bytes =3D=3D 1 && port =3D=3D XEN_HVM_DEBUGCONS_IOPORT);
@@ -571,16 +572,17 @@ static int cf_check hvm_print_line(
     if ( !is_console_printable(c) )
         return X86EMUL_OKAY;
=20
-    spin_lock(&cd->pbuf_lock);
+    spin_lock(&cons->lock);
+    ASSERT(cons->idx < ARRAY_SIZE(cons->buf));
     if ( c !=3D '\n' )
-        cd->pbuf[cd->pbuf_idx++] =3D c;
-    if ( (cd->pbuf_idx =3D=3D (DOMAIN_PBUF_SIZE - 1)) || (c =3D=3D '\n') )
+        cons->buf[cons->idx++] =3D c;
+    if ( (cons->idx =3D=3D (ARRAY_SIZE(cons->buf) - 1)) || (c =3D=3D '\n')=
 )
     {
-        cd->pbuf[cd->pbuf_idx] =3D '\0';
-        guest_printk(cd, XENLOG_G_DEBUG "%s\n", cd->pbuf);
-        cd->pbuf_idx =3D 0;
+        cons->buf[cons->idx] =3D '\0';
+        guest_printk(cd, XENLOG_G_DEBUG "%s\n", cons->buf);
+        cons->idx =3D 0;
     }
-    spin_unlock(&cd->pbuf_lock);
+    spin_unlock(&cons->lock);
=20
     return X86EMUL_OKAY;
 }
diff --git a/xen/arch/x86/pv/shim.c b/xen/arch/x86/pv/shim.c
index bc2a7dd5fae5..bd29c53a2d34 100644
--- a/xen/arch/x86/pv/shim.c
+++ b/xen/arch/x86/pv/shim.c
@@ -239,7 +239,7 @@ void __init pv_shim_setup_dom(struct domain *d, l4_pgen=
try_t *l4start,
      */
     d->max_pages =3D domain_tot_pages(d);
=20
-    d->console.input_allowed =3D true;
+    d->console->input_allowed =3D true;
 }
=20
 static void write_start_info(struct domain *d)
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 5241a1629eeb..8b20daa57d62 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -680,7 +680,7 @@ static void _domain_destroy(struct domain *d)
     BUG_ON(!d->is_dying);
     BUG_ON(atomic_read(&d->refcnt) !=3D DOMAIN_DESTROYED);
=20
-    xfree(d->pbuf);
+    XVFREE(d->console);
=20
     argo_destroy(d);
=20
@@ -846,8 +846,6 @@ struct domain *domain_create(domid_t domid,
         flags |=3D CDF_hardware;
         if ( old_hwdom )
             old_hwdom->cdf &=3D ~CDF_hardware;
-
-        d->console.input_allowed =3D true;
     }
=20
     /* Holding CDF_* internal flags. */
@@ -877,8 +875,6 @@ struct domain *domain_create(domid_t domid,
     spin_lock_init(&d->shutdown_lock);
     d->shutdown_code =3D SHUTDOWN_CODE_INVALID;
=20
-    spin_lock_init(&d->pbuf_lock);
-
     rwlock_init(&d->vnuma_rwlock);
=20
 #ifdef CONFIG_HAS_PCI
@@ -924,6 +920,14 @@ struct domain *domain_create(domid_t domid,
     if ( is_system_domain(d) )
         return d;
=20
+    err =3D -ENOMEM;
+    d->console =3D xvzalloc(typeof(*d->console));
+    if ( !d->console )
+        goto fail;
+
+    spin_lock_init(&d->console->lock);
+    d->console->input_allowed =3D is_hardware_domain(d);
+
     /*
      * This assertion helps static analysis tools infer that config cannot=
 be
      * NULL in this branch, which in turn means that it can be safely
@@ -976,11 +980,6 @@ struct domain *domain_create(domid_t domid,
     if ( (err =3D argo_init(d)) !=3D 0 )
         goto fail;
=20
-    err =3D -ENOMEM;
-    d->pbuf =3D xzalloc_array(char, DOMAIN_PBUF_SIZE);
-    if ( !d->pbuf )
-        goto fail;
-
     if ( (err =3D sched_init_domain(d, config->cpupool_id)) !=3D 0 )
         goto fail;
=20
diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 9bd5b4825da6..a99605103552 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -526,7 +526,7 @@ struct domain *console_get_domain(void)
     if ( !d )
         return NULL;
=20
-    if ( d->console.input_allowed )
+    if ( d->console->input_allowed )
         return d;
=20
     rcu_unlock_domain(d);
@@ -567,10 +567,13 @@ static void console_switch_input(void)
         d =3D rcu_lock_domain_by_id(domid);
         if ( d )
         {
-            rcu_unlock_domain(d);
-
-            if ( !d->console.input_allowed )
+            if ( !d->console->input_allowed )
+            {
+                rcu_unlock_domain(d);
                 continue;
+            }
+
+            rcu_unlock_domain(d);
=20
             console_rx =3D next_rx;
             printk("*** Serial input to DOM%u", domid);
@@ -749,6 +752,7 @@ static long guest_console_write(XEN_GUEST_HANDLE_PARAM(=
char) buffer,
         else
         {
             char *kin =3D kbuf, *kout =3D kbuf, c;
+            struct domain_console *cons =3D cd->console;
=20
             /* Strip non-printable characters */
             do
@@ -761,22 +765,22 @@ static long guest_console_write(XEN_GUEST_HANDLE_PARA=
M(char) buffer,
             } while ( --kcount > 0 );
=20
             *kout =3D '\0';
-            spin_lock(&cd->pbuf_lock);
+            spin_lock(&cons->lock);
             kcount =3D kin - kbuf;
             if ( c !=3D '\n' &&
-                 (cd->pbuf_idx + (kout - kbuf) < (DOMAIN_PBUF_SIZE - 1)) )
+                 (cons->idx + (kout - kbuf) < (ARRAY_SIZE(cons->buf) - 1))=
 )
             {
                 /* buffer the output until a newline */
-                memcpy(cd->pbuf + cd->pbuf_idx, kbuf, kout - kbuf);
-                cd->pbuf_idx +=3D (kout - kbuf);
+                memcpy(cons->buf + cons->idx, kbuf, kout - kbuf);
+                cons->idx +=3D kout - kbuf;
             }
             else
             {
-                cd->pbuf[cd->pbuf_idx] =3D '\0';
-                guest_printk(cd, XENLOG_G_DEBUG "%s%s\n", cd->pbuf, kbuf);
-                cd->pbuf_idx =3D 0;
+                cons->buf[cons->idx] =3D '\0';
+                guest_printk(cd, XENLOG_G_DEBUG "%s%s\n", cons->buf, kbuf)=
;
+                cons->idx =3D 0;
             }
-            spin_unlock(&cd->pbuf_lock);
+            spin_unlock(&cons->lock);
         }
=20
         guest_handle_add_offset(buffer, kcount);
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index fd5c9f933373..dab3fe59263e 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -371,6 +371,17 @@ struct evtchn_port_ops;
=20
 #define MAX_NR_IOREQ_SERVERS 8
=20
+/* Domain console settings. */
+struct domain_console {
+    /* Permission to take ownership of the physical console input. */
+    bool input_allowed;
+
+    /* hvm_print_line() and guest_console_write() logging. */
+    unsigned int idx;
+    spinlock_t lock;
+    char buf[256];
+};
+
 struct domain
 {
     domid_t          domain_id;
@@ -562,12 +573,6 @@ struct domain
     /* Control-plane tools handle for this domain. */
     xen_domain_handle_t handle;
=20
-    /* hvm_print_line() and guest_console_write() logging. */
-#define DOMAIN_PBUF_SIZE 200
-    char       *pbuf;
-    unsigned int pbuf_idx;
-    spinlock_t  pbuf_lock;
-
     /* OProfile support. */
     struct xenoprof *xenoprof;
=20
@@ -652,11 +657,8 @@ struct domain
     unsigned int *llc_colors;
 #endif
=20
-    /* Console settings. */
-    struct {
-        /* Permission to take ownership of the physical console input. */
-        bool input_allowed;
-    } console;
+    /* Pointer to console settings; NULL for system domains. */
+    struct domain_console *console;
 } __aligned(PAGE_SIZE);
=20
 static inline struct page_list_head *page_to_list(
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Thu Aug 07 01:17:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 01:17:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072381.1435528 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujpFV-0004ip-08; Thu, 07 Aug 2025 01:16:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072381.1435528; Thu, 07 Aug 2025 01:16: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 1ujpFU-0004ii-Tj; Thu, 07 Aug 2025 01:16:52 +0000
Received: by outflank-mailman (input) for mailman id 1072381;
 Thu, 07 Aug 2025 01:16:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ybbA=2T=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1ujpFT-0004ia-H6
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 01:16:51 +0000
Received: from mail-4322.protonmail.ch (mail-4322.protonmail.ch [185.70.43.22])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 31955f43-732c-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 03:16:49 +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>
X-Inumbo-ID: 31955f43-732c-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1754529408; x=1754788608;
	bh=rTBc5sMJPbERlOInnoBAMaIzbKCImXmp4SIHQ9+POEg=;
	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=ngsWqaY9Pl588Zce8h2WuA8QMewAK2kPS2yeqktbnI0MK6aXTy9tqz9rUCcH6SKOr
	 POIjmDphcP5sMZF5cVDDtqqysnFz/GMqgRuYUdfDzyNoOY9A/x9++PZPq54Y7X9STD
	 TDNdTPhqBkMBVDJH0WZwgHomr5ylaZpWGZLFfAoU14zvwN1Gf0punSCkK7T4PLF2m8
	 wx3yEeg5c51H6Lq0JYAyozQe45Isn5HORrbx3Yn7cUH3I1AEOciM9nWDha+ZXWE7Kb
	 7w4QmSv7AvOXj4SovRbUFjVjk+QnmLQwuBo+bjlqK6FHqsBbZUjMtFMPXpWrpRJMp+
	 sSTkLS4sjjcnA==
Date: Thu, 07 Aug 2025 01:16:45 +0000
To: =?utf-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, alejandro.garciavallejo@amd.com, andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: Re: [PATCH v13 1/3] xen/domain: unify domain ID allocation
Message-ID: <aJP+d6FxbFsk63ws@kraken>
In-Reply-To: <aJIJXX4yO0zC8898@macbook.local>
References: <20250730174042.1632011-1-dmukhin@ford.com> <20250730174042.1632011-2-dmukhin@ford.com> <aJIJXX4yO0zC8898@macbook.local>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 63f62ea6ee7e52bc687288994530f2b79801a95f
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Tue, Aug 05, 2025 at 03:38:37PM +0200, Roger Pau Monn=C3=A9 wrote:
> On Wed, Jul 30, 2025 at 05:40:54PM +0000, dmkhn@proton.me wrote:
> > From: Denis Mukhin <dmukhin@ford.com>
> >
> > Currently, there are two different domain ID allocation implementations=
:
> >
> >   1) Sequential IDs allocation in dom0less Arm code based on max_init_d=
omid;
> >
> >   2) Sequential IDs allocation in XEN_DOMCTL_createdomain; does not use
> >      max_init_domid (both Arm and x86).
> >
> > The domain ID allocation covers dom0 or late hwdom, predefined domains,
> > post-boot domains, excluding Xen system domains (domid >=3D
> > DOMID_FIRST_RESERVED).
> >
> > It makes sense to have a common helper code for such task across archit=
ectures
> > (Arm and x86) and between dom0less / toolstack domU allocation.
> >
> > Note, fixing dependency on max_init_domid is out of scope of this patch=
.
> >
> > Wrap the domain ID allocation as an arch-independent function domid_all=
oc() in
> > new common/domid.c based on the bitmap.
> >
> > Allocation algorithm:
> > - If an explicit domain ID is provided, verify its availability and use=
 it if
> >   ID is not used;
> > - If DOMID_INVALID is provided, search the range [1..DOMID_FIRST_RESERV=
ED-1],
> >   starting from the last used ID.
> >   Implementation guarantees that two consecutive calls will never retur=
n the
> >   same ID. ID#0 is reserved for the first boot domain (currently, dom0)=
 and
> >   excluded from the allocation range.
> >
> > Remove is_free_domid() helper as it is not needed now.
> >
> > No functional change intended.
> >
> > Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> > Reviewed-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
> > ---
> > Changes since v12:
> > - updated comment for domid_alloc() and commit message
> > - added Alejandro's R-b
> > ---
> >  xen/arch/arm/domain_build.c             |  7 +-
> >  xen/arch/x86/setup.c                    |  7 +-
> >  xen/common/Makefile                     |  1 +
> >  xen/common/device-tree/dom0less-build.c | 15 ++--
> >  xen/common/domain.c                     |  2 +
> >  xen/common/domctl.c                     | 42 ++---------
> >  xen/common/domid.c                      | 94 +++++++++++++++++++++++++
> >  xen/include/xen/domain.h                |  3 +
> >  8 files changed, 124 insertions(+), 47 deletions(-)
> >  create mode 100644 xen/common/domid.c
> >
> > diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> > index 463ae4474d30..789f2b9d3ce7 100644
> > --- a/xen/arch/arm/domain_build.c
> > +++ b/xen/arch/arm/domain_build.c
> > @@ -2050,6 +2050,7 @@ void __init create_dom0(void)
> >          .grant_opts =3D XEN_DOMCTL_GRANT_version(opt_gnttab_max_versio=
n),
> >      };
> >      unsigned int flags =3D CDF_privileged | CDF_hardware;
> > +    domid_t domid;
> >      int rc;
> >
> >      /* The vGIC for DOM0 is exactly emulating the hardware GIC */
> > @@ -2074,7 +2075,11 @@ void __init create_dom0(void)
> >      if ( !llc_coloring_enabled )
> >          flags |=3D CDF_directmap;
> >
> > -    dom0 =3D domain_create(0, &dom0_cfg, flags);
> > +    domid =3D domid_alloc(0);
> > +    if ( domid =3D=3D DOMID_INVALID )
> > +        panic("Error allocating domain ID 0\n");
> > +
> > +    dom0 =3D domain_create(domid, &dom0_cfg, flags);
> >      if ( IS_ERR(dom0) )
> >          panic("Error creating domain 0 (rc =3D %ld)\n", PTR_ERR(dom0))=
;
> >
> > diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> > index 1543dd251cc6..2ff7c28c277b 100644
> > --- a/xen/arch/x86/setup.c
> > +++ b/xen/arch/x86/setup.c
> > @@ -1047,8 +1047,11 @@ static struct domain *__init create_dom0(struct =
boot_info *bi)
> >      if ( iommu_enabled )
> >          dom0_cfg.flags |=3D XEN_DOMCTL_CDF_iommu;
> >
> > -    /* Create initial domain.  Not d0 for pvshim. */
> > -    bd->domid =3D get_initial_domain_id();
> > +    /* Allocate initial domain ID.  Not d0 for pvshim. */
> > +    bd->domid =3D domid_alloc(get_initial_domain_id());
> > +    if ( bd->domid =3D=3D DOMID_INVALID )
> > +        panic("Error allocating domain ID %d\n", get_initial_domain_id=
());
>=20
> Nit: in other error messages in the same function we handle the domid
> as an unsigned integer, so %u probably wants using here.  Unless you
> have an explicit intention to print IDs >=3D DOMID_FIRST_RESERVED as
> negative integers?

No negative integers, that should be %u
Thanks!

>=20
> > +
> >      d =3D domain_create(bd->domid, &dom0_cfg,
> >                        pv_shim ? 0 : CDF_privileged | CDF_hardware);
> >      if ( IS_ERR(d) )
> > diff --git a/xen/common/Makefile b/xen/common/Makefile
> > index c316957fcb36..0c7d0f5d46e1 100644
> > --- a/xen/common/Makefile
> > +++ b/xen/common/Makefile
> > @@ -11,6 +11,7 @@ obj-$(filter-out $(CONFIG_X86),$(CONFIG_ACPI)) +=3D d=
evice.o
> >  obj-$(CONFIG_DEVICE_TREE_PARSE) +=3D device-tree/
> >  obj-$(CONFIG_IOREQ_SERVER) +=3D dm.o
> >  obj-y +=3D domain.o
> > +obj-y +=3D domid.o
> >  obj-y +=3D event_2l.o
> >  obj-y +=3D event_channel.o
> >  obj-$(CONFIG_EVTCHN_FIFO) +=3D event_fifo.o
> > diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/devic=
e-tree/dom0less-build.c
> > index 6bb038111de9..f4b6b515d2d2 100644
> > --- a/xen/common/device-tree/dom0less-build.c
> > +++ b/xen/common/device-tree/dom0less-build.c
> > @@ -833,6 +833,7 @@ void __init create_domUs(void)
> >      {
> >          struct kernel_info ki =3D KERNEL_INFO_INIT;
> >          int rc =3D parse_dom0less_node(node, &ki.bd);
> > +        domid_t domid;
> >
> >          if ( rc =3D=3D -ENOENT )
> >              continue;
> > @@ -842,13 +843,13 @@ void __init create_domUs(void)
> >          if ( (max_init_domid + 1) >=3D DOMID_FIRST_RESERVED )
> >              panic("No more domain IDs available\n");
> >
> > -        /*
> > -         * The variable max_init_domid is initialized with zero, so he=
re it's
> > -         * very important to use the pre-increment operator to call
> > -         * domain_create() with a domid > 0. (domid =3D=3D 0 is reserv=
ed for Dom0)
> > -         */
> > -        ki.bd.d =3D domain_create(++max_init_domid,
> > -                                &ki.bd.create_cfg, ki.bd.create_flags)=
;
> > +        domid =3D domid_alloc(DOMID_INVALID);
> > +        if ( domid =3D=3D DOMID_INVALID )
> > +            panic("Error allocating ID for domain %s\n", dt_node_name(=
node));
> > +
> > +        max_init_domid =3D max(max_init_domid, domid);
> > +
> > +        ki.bd.d =3D domain_create(domid, &ki.bd.create_cfg, ki.bd.crea=
te_flags);
> >          if ( IS_ERR(ki.bd.d) )
> >              panic("Error creating domain %s (rc =3D %ld)\n",
> >                    dt_node_name(node), PTR_ERR(ki.bd.d));
> > diff --git a/xen/common/domain.c b/xen/common/domain.c
> > index 5241a1629eeb..12fbab01cd8e 100644
> > --- a/xen/common/domain.c
> > +++ b/xen/common/domain.c
> > @@ -1473,6 +1473,8 @@ void domain_destroy(struct domain *d)
> >      /* Remove from the domlist/hash. */
> >      domlist_remove(d);
> >
> > +    domid_free(d->domain_id);
>=20
> The domlist removal above still allows current users to continue
> "operating" on the domain until the next RCU.  Should for safety the
> freeing of the domid be deferred to _domain_destroy(), which is
> executed in RCU context, and thus ensures there are no current users
> of the removed domain?
>=20
> I cannot think of a specific scenario where this could be dangerous
> right now, but deferring to RCU context together with the final
> cleanup seems safer overall.

I agree, _domain_destroy() is the place for domid_free().

>=20
> > +
> >      /* Schedule RCU asynchronous completion of domain destroy. */
> >      call_rcu(&d->rcu, complete_domain_destroy);
> >  }
> > diff --git a/xen/common/domctl.c b/xen/common/domctl.c
> > index f2a7caaf853c..5509998aa139 100644
> > --- a/xen/common/domctl.c
> > +++ b/xen/common/domctl.c
> > @@ -51,20 +51,6 @@ static int xenctl_bitmap_to_nodemask(nodemask_t *nod=
emask,
> >                                     MAX_NUMNODES);
> >  }
> >
> > -static inline int is_free_domid(domid_t dom)
> > -{
> > -    struct domain *d;
> > -
> > -    if ( dom >=3D DOMID_FIRST_RESERVED )
> > -        return 0;
> > -
> > -    if ( (d =3D rcu_lock_domain_by_id(dom)) =3D=3D NULL )
> > -        return 1;
> > -
> > -    rcu_unlock_domain(d);
> > -    return 0;
> > -}
> > -
> >  void getdomaininfo(struct domain *d, struct xen_domctl_getdomaininfo *=
info)
> >  {
> >      struct vcpu *v;
> > @@ -423,36 +409,18 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_=
t) u_domctl)
> >
> >      case XEN_DOMCTL_createdomain:
> >      {
> > -        domid_t        dom;
> > -        static domid_t rover =3D 0;
> > +        domid_t domid =3D domid_alloc(op->domain);
> >
> > -        dom =3D op->domain;
> > -        if ( (dom > 0) && (dom < DOMID_FIRST_RESERVED) )
> > +        if ( domid =3D=3D DOMID_INVALID )
>=20
> This is a change in behavior AFAICT, as you now allow
> XEN_DOMCTL_createdomain to possibly create a domain with domid 0 (if
> it's available).  Currently op->domain =3D=3D 0 is handled as op->domain
> =3D=3D DOMID_FIRST_RESERVED. You either need to adjust the code here, so
> that you do:
>=20
> domid_t domid =3D domid_alloc(op->domain ?: DOMID_FIRST_RESERVED);
>=20
> Or domid_alloc() needs to be adjusted to handle an input domid =3D=3D 0 a=
s
> it handles DOMID_FIRST_RESERVED.

Thanks!
I will adjust code in do_domctl().

>=20
> >          {
> >              ret =3D -EEXIST;
> > -            if ( !is_free_domid(dom) )
> > -                break;
> > -        }
> > -        else
> > -        {
> > -            for ( dom =3D rover + 1; dom !=3D rover; dom++ )
> > -            {
> > -                if ( dom =3D=3D DOMID_FIRST_RESERVED )
> > -                    dom =3D 1;
> > -                if ( is_free_domid(dom) )
> > -                    break;
> > -            }
> > -
> > -            ret =3D -ENOMEM;
> > -            if ( dom =3D=3D rover )
> > -                break;
> > -
> > -            rover =3D dom;
> > +            break;
> >          }
> >
> > -        d =3D domain_create(dom, &op->u.createdomain, false);
> > +        d =3D domain_create(domid, &op->u.createdomain, false);
> >          if ( IS_ERR(d) )
> >          {
> > +            domid_free(domid);
> >              ret =3D PTR_ERR(d);
> >              d =3D NULL;
> >              break;
> > diff --git a/xen/common/domid.c b/xen/common/domid.c
> > new file mode 100644
> > index 000000000000..e727dcaf0793
> > --- /dev/null
> > +++ b/xen/common/domid.c
> > @@ -0,0 +1,94 @@
> > +/* SPDX-License-Identifier: GPL-2.0-only */
> > +/*
> > + * Domain ID allocator.
> > + *
> > + * Covers dom0 or late hwdom, predefined domains, post-boot domains.
> > + * Excludes Xen system domains (ID >=3D DOMID_FIRST_RESERVED).
> > + *
> > + * Copyright 2025 Ford Motor Company
> > + */
> > +
> > +#include <xen/domain.h>
> > +
> > +static DEFINE_SPINLOCK(domid_lock);
> > +static DECLARE_BITMAP(domid_bitmap, DOMID_FIRST_RESERVED);
> > +
> > +/*
> > + * Allocate domain ID.
> > + *
> > + * @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,
> > + *   starting from the last used ID. Implementation guarantees that tw=
o
> > + *   consecutive calls will never return the same ID. ID#0 is reserved=
 for
> > + *   the first boot domain (currently, dom0) and excluded from the all=
ocation
> > + *   range.
> > + * @return Valid domain ID in case of successful allocation,
> > + *         DOMID_INVALID - otherwise.
> > + */
> > +domid_t domid_alloc(domid_t domid)
> > +{
> > +    static domid_t domid_last;
> > +
> > +    spin_lock(&domid_lock);
> > +
> > +    /* Exact match. */
> > +    if ( domid < DOMID_FIRST_RESERVED )
> > +    {
> > +        if ( __test_and_set_bit(domid, domid_bitmap) )
> > +            domid =3D DOMID_INVALID;
> > +    }
> > +    /*
> > +     * Exhaustive search.
> > +     *
> > +     * Domain ID#0 is reserved for the first boot domain (e.g. control=
 domain)
> > +     * and excluded from allocation.
> > +     */
> > +    else
> > +    {
> > +        domid =3D find_next_zero_bit(domid_bitmap,
> > +                                   DOMID_FIRST_RESERVED,
> > +                                   domid_last + 1);
> > +        if ( domid =3D=3D DOMID_FIRST_RESERVED )
>=20
> Nit: you could further gate this second search to domid_last !=3D 0, as
> otherwise the first search has already scanned the whole bitmap.

Ack.

>=20
> > +            domid =3D find_next_zero_bit(domid_bitmap,
> > +                                       DOMID_FIRST_RESERVED,
> > +                                       1);
>=20
> Nit: you could possibly limit this second search to (domid_last + 1)
> size, as you have already searched from [domid_last + 1,
> DOMID_FIRST_RESERVED], and the bitmap couldn't have changed as the
> lock is being held.

Ack.

>=20
> Thanks, Roger.



From xen-devel-bounces@lists.xenproject.org Thu Aug 07 01:56:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 01:56:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072402.1435538 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujprk-0001iO-Ox; Thu, 07 Aug 2025 01:56:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072402.1435538; Thu, 07 Aug 2025 01:56: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 1ujprk-0001iH-MN; Thu, 07 Aug 2025 01:56:24 +0000
Received: by outflank-mailman (input) for mailman id 1072402;
 Thu, 07 Aug 2025 01:56:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=P7F5=2T=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1ujprj-0001iB-BV
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 01:56:23 +0000
Received: from NAM02-DM3-obe.outbound.protection.outlook.com
 (mail-dm3nam02on2062f.outbound.protection.outlook.com
 [2a01:111:f403:2405::62f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b621f2fa-7331-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 03:56:20 +0200 (CEST)
Received: from SA9PR13CA0127.namprd13.prod.outlook.com (2603:10b6:806:27::12)
 by SA3PR12MB8802.namprd12.prod.outlook.com (2603:10b6:806:314::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.15; Thu, 7 Aug
 2025 01:56:13 +0000
Received: from SN1PEPF000252A2.namprd05.prod.outlook.com
 (2603:10b6:806:27:cafe::d7) by SA9PR13CA0127.outlook.office365.com
 (2603:10b6:806:27::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9031.6 via Frontend Transport; Thu, 7
 Aug 2025 01:56:13 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SN1PEPF000252A2.mail.protection.outlook.com (10.167.242.9) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Thu, 7 Aug 2025 01:56:13 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 6 Aug
 2025 20:56:12 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 6 Aug
 2025 20:56:12 -0500
Received: from fedora.mshome.net (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 6 Aug 2025 20:56:11 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b621f2fa-7331-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Ik5gGOBehugU6kvMLG+raKnnmzIG9+Fs31rExHMWtN+ZXRZfgi3hxagcAOqHUuKM2Zg/PIpOX6s614onqGfu17n3ky0rkIKhwXSHgaIh6MGbnIiogRWn+L5jF2hQ4NznbIMY9OecaKDHaMSYL8MyYAy8WJOykO2ZX5779PN/GhMEf0FzF/TSrU4JxxGpWb3vBi4eiXJC7DiLoDajbmiNNJUW+hyyyp7okIC7WVB51Nb31xKfN8y9ZGq05FCZLElLT0nHOhmIdGXoday4Kbh/0AZZ3PTdfC5UVfWvywfna7i+FB8qKPg2fs/mH+Gqg8j6X061gOr+Eo7xdXwjcv4VnA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=D+GUBK3BGoBiOj1Bx6ic5xRAMlb6UmFSa3eF+ZUiJZc=;
 b=jJ5bHj/MQRqPZU436Ojj9aQoRqbhqxndthmPe2KOkvycFqN8KeII0+o/LDC6zvRm3SuoqHQTmyYTJy7Oh9zsW4kHZn9TW1OXbYEENa6fqCeIAIoksQEaqRrVkO88q32WVfqfw7U+X+BikMzsxcfrIF4dpwgHw1Rxhy7UWBDAKcsE5Q1umg5W0LGLBkKOdpGq19kyt/U2a8Ho5muaIJz7ZP9Po8GFl/mst3NwDzR97VajGNT9lPQvof9GWLKm/0GyYr/DQKJrNgfJRl/eE14U5sbs1JgVku7SOr78xYyIiMyqBF4iLg78+cL7fe36SAvFZEX6qnl2j7k/gH3FmDx/tg==
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=D+GUBK3BGoBiOj1Bx6ic5xRAMlb6UmFSa3eF+ZUiJZc=;
 b=EfEG0ZG3CRK0IZRk4hY7iBBuDe+MIr8M/PzLy8VwnBn9y9gK1KCLpWQLZ4ghX6q9DEdqYrvHtLSJ3HT9TJyrT6JmfuNZz/8EWe3RTcZWH4flc1dUmqWsWgky1hL8wfXV1py8mYrOjnOQC1h/nyqkBB28kJLA+qGTTuCzRcV71nk=
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=SATLEXMB04.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Jason Andryuk <jason.andryuk@amd.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>
Subject: [PATCH v1] xenconsole: Add connected flag
Date: Wed, 6 Aug 2025 21:56:06 -0400
Message-ID: <20250807015606.4427-1-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.50.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB05.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF000252A2:EE_|SA3PR12MB8802:EE_
X-MS-Office365-Filtering-Correlation-Id: 550dc3a1-fa46-4a3a-f4a7-08ddd5559688
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|36860700013|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?TLHdM7ZTyNtwuxH+E6RmsfxJnTCZeg81L1/DwyW8beHZiLMNhmyV2l2wI9kd?=
 =?us-ascii?Q?WgK8pxStSfT2Xs86Qub+gmtg048Y4K7+6g5IpDJ13eFZKan+tgTwQmb3xZpp?=
 =?us-ascii?Q?YlmWcG9ETyBR7ZTmd4XGpaIy1AuMV6nCcAoHeXz7yyCrT2x3FnK3yOF+Xlan?=
 =?us-ascii?Q?Gy0qS7L6MSFFdCgXqgnYgov7vYW+9MGRKoXeIz8v6OiuzS9tLQMEywJy/Cbn?=
 =?us-ascii?Q?r6dzZBCAjr5dUK91unirkQ0qaYdKPslm6Y9iFt54p9rHsOhPiwfM5ZfKhQIz?=
 =?us-ascii?Q?TUnCi+UMzISDBm3lqKhyTB0xpaiOZj/ibqT3hKROApLS9W14+vVYka+/0WbK?=
 =?us-ascii?Q?xO055wgk6Qpmgenr5AZKlA8J5tNffACM2AiGdzLe9APY+bzvChywl5YQDTC/?=
 =?us-ascii?Q?0pSSO5zBrjaOGqkD0XBbbRvGC6fYT/Pafc3DrQ5EJmnheil0cIeBT/ngZSkP?=
 =?us-ascii?Q?0Cvcmm3+XsYtZYUEeO/rb0Zchz3Wkxi8zZS1TA7EM4XGcBdOhDACz7RbVuEy?=
 =?us-ascii?Q?YKPMcfpwsE7VQbgreApzGCVJ8LLVvhkdk/2KIhj/pp7pZ9XdnayaNRBrvSTA?=
 =?us-ascii?Q?b490YkbFuwRQ83ZG2jjmPgdhFn3+FxE/Jws89hqQg35ZJ0ZW81xeo+b+NJqw?=
 =?us-ascii?Q?XmBgKEmdX8gUhyxNByFoemrhvfexBZVNN4PKnJdLoKruCAMsrY+qRGshASQN?=
 =?us-ascii?Q?2Y6A3RWUxeLqhMpaG82Wvzv4rdD3Dpl+esEwXaNz0JuBBFOb1Lf2xyRlaVpQ?=
 =?us-ascii?Q?i1U353bZNdL9FhcBOkmLhqCai5zaXTXSqU+DbRNmZ0o9Go39TgyFbw81iILB?=
 =?us-ascii?Q?+YeLuX0BIXxEMafosFqRu9/QEwiXwIwtLREvG+K/60kXDXRrJhMb23INNJTZ?=
 =?us-ascii?Q?WduxnpJOnIX8U+0+JvI1v7+LbApZTtSfFO4V/jSlz7Hv0s8GUlqaYRby9mk9?=
 =?us-ascii?Q?BAp43p+C8ern1soolEWnke70QdjqoI+28Hjdb9x27zhKsk0YpCZ5eOnMTqxp?=
 =?us-ascii?Q?q8Z/R8RYTZ53qNGPOFUEI07GxShQtLB5BucZJfUrIaA7PiX090DMdiTY0cki?=
 =?us-ascii?Q?ZhRcSIJSWKivT4Tk/vkbZHJgaTJMxaf2RhWcFLtEgFF0Y4E+GxvQzom4JrFY?=
 =?us-ascii?Q?4xcqevhaQ57X4PPutocMQNhwvgJ+hXyo4DC0/TCKSNCPelypWOoLDs7W/MWo?=
 =?us-ascii?Q?gLZ/MEg2LolwdJ7SCyJu/Z6VZfJVgPaiUiaNbJqJWigIS6rW0aR2uVpYtR+T?=
 =?us-ascii?Q?xCsydPHJgpOPX6k2VJdTGmzG5MjHLiXPhuRFGeUf7UVhrbx9vFN3Ig2uoVnZ?=
 =?us-ascii?Q?qZHY5hSOxN1R7WI/gVcbg/bpoTpdrrnFKV4yoS+npNJtaZtwlTU0TIBxabBC?=
 =?us-ascii?Q?5LHGLJZCkIrpdwb3Ddh+ChwXHoAh70EjKNqAxUJmL5AcUnHQw6KORhMHMcjG?=
 =?us-ascii?Q?xLXVfFateHp61cnzJ6I/H8sLSCAkVnwO6MQbuHKJjkanwyB4BedFrCMXlTi9?=
 =?us-ascii?Q?ZL3QIs7NjrfH8B4fo++9ABldRGaPOrxKSG1W?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(36860700013)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Aug 2025 01:56:13.0241
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 550dc3a1-fa46-4a3a-f4a7-08ddd5559688
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF000252A2.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB8802

With hyperlaunch, a domU can start before its console ring is connected
by xenconsoled.  With nothing emptying the ring, it can quickly fill
during boot.  In domU_write_console(), __write_console() returns 0 when
the ring is full.  This loops spins until xenconsoled starts emptying
the ring:

        while (len) {
                ssize_t sent = __write_console(cons, data, len);

                if (sent < 0)
                        return sent;

                data += sent;
                len -= sent;

                if (unlikely(len))
                        HYPERVISOR_sched_op(SCHEDOP_yield, NULL);
        }

The goal of this patch is to add a way for the frontend to know when a
console is connected.  This patch adds a new flag to the end of the
console ring structure.  It is used for the backend to indicate that it
has connected and started servicing the page.

The two values are
XENCONSOLE_DISCONNECTED 1
XENCONSOLE_CONNECTED    0

XENCONSOLE_DISCONNECTED indicates to the guest that ring is
disconnected, so it will not be serviced.  The guest can avoid writing
into it in that case.  A domU can use console hypercalls and only
transition to the ring when it is connected and won't fill and block.

Once the backend (xenconsoled) maps and starts servicing the
console, the flag will be set to XENCONSOLE_CONNECTED (0) to indicate
the backend state to the frontend.

The connected value as 0 will be match the default of a zero-ed console
page.  Hyperlaunch can set the flag to XENCONSOLE_DISCONNECTED and let
xenconsoled set to XENCONSOLE_CONNECTED.

Old domU hvc_xen drivers won't check the flag.
New domU hvc_xen running on a new xen/xenconsoled will work properly.
New domU hvc_xen on old xen/xenconsoled should only see a 0 for the flag
and behave as if connected.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
v1:
Remove evtchn notify call
Set connected later when there is no error

RFC v3:
Flip flag values so 0 is connected.

The other option would be to add:
uint32_t features
uint32_t connected

New domUs would check features for a magic value and/or flag to know
they can rely on connected transitioning.

I think making XENCONSOLE_CONNECTED == 0 side steps the need for
an additional features field.  As long as assuming zero-ed memory is
acceptable.  However, this only matters for a hyperlaunched guest -
xenconsoled will normally readily connect the console and set the value.

This assumes that existing frontends are not using the flag space for
some other use.

Removed idea:
Send an event channel notification to let the domU know that xenconsoled
is connected.  Xenstored does similar, but for xenstore, the xenstore
driver owns the event channel/irq and can rebind it.  For hvc_xen, the
hvc subsystem owns the irq, so it isn't readily available for rebinding.
This is not implemented.

I had the idea for the kernel to use a static key and switch writing
from the hypercall to the PV ring once connected.  It didn't actually
work in my short attempt - I think changing the static key from within
an interupt was wrong.  I fell back to just checking the flag directly
without an optimization.  That would work and would make the event
channel notification unnecessary.
---
 tools/console/daemon/io.c       |  4 ++++
 xen/include/public/io/console.h | 13 +++++++++++++
 2 files changed, 17 insertions(+)

diff --git a/tools/console/daemon/io.c b/tools/console/daemon/io.c
index bb739bdb8c..c278752ff1 100644
--- a/tools/console/daemon/io.c
+++ b/tools/console/daemon/io.c
@@ -781,6 +781,10 @@ static int console_create_ring(struct console *con)
 		con->log_fd = create_console_log(con);
 
  out:
+	/* Mark the console connected. */
+	if (!err && con->interface)
+		con->interface->flag = XENCONSOLE_CONNECTED;
+
 	return err;
 }
 
diff --git a/xen/include/public/io/console.h b/xen/include/public/io/console.h
index 4509b4b689..c16ef42ef4 100644
--- a/xen/include/public/io/console.h
+++ b/xen/include/public/io/console.h
@@ -19,6 +19,19 @@ struct xencons_interface {
     char out[2048];
     XENCONS_RING_IDX in_cons, in_prod;
     XENCONS_RING_IDX out_cons, out_prod;
+/*
+ * Flag values signaling from backend to frontend whether the console is
+ * connected.  i.e. Whether it will be serviced and emptied.
+ *
+ * The flag starts as disconnected.
+ */
+#define XENCONSOLE_DISCONNECTED 1
+/*
+ * The flag is set to connected when the backend connects and the console
+ * will be serviced.
+ */
+#define XENCONSOLE_CONNECTED    0
+    uint32_t flag;
 };
 
 #ifdef XEN_WANT_FLEX_CONSOLE_RING
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 07 02:12:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 02:12:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072417.1435549 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujq7C-00057y-7x; Thu, 07 Aug 2025 02:12:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072417.1435549; Thu, 07 Aug 2025 02:12: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 1ujq7C-00057r-4A; Thu, 07 Aug 2025 02:12:22 +0000
Received: by outflank-mailman (input) for mailman id 1072417;
 Thu, 07 Aug 2025 02:12:21 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ybbA=2T=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1ujq7A-00057l-Bp
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 02:12:21 +0000
Received: from mail-4316.protonmail.ch (mail-4316.protonmail.ch [185.70.43.16])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f138c6cb-7333-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 04:12:18 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f138c6cb-7333-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1754532736; x=1754791936;
	bh=pnbjNA7b84S64s2d5tVI8OT6Mn3KUydHYnfCEMr6Byk=;
	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=AwDOYtM4rGbp21lkPv3uo3qxnLYkJQZ0Yo2wF4IW4D4KFo9K8dkfeJRjn1QnLDmgg
	 P6Dac3mA38o9X3NziOM6lWOXBpMvbxkeCXGAPYeOqtRYrFDxzyjbSGCfwXJE3n9b3M
	 2MJJ88S2ME4tbVG+vagkx1xIcEl/PtJp2KaPbxVrgu2RBR3awiGeIgW1X3BmC1WjQJ
	 jGy2jT7PHB1oka9eIQMAAJ7Z2CFiUrABL/Lz4txCUQ/cbg/P7po7ET8HaCzu/F9Fu+
	 vwtPt+w0A/QmT8s0zFdrG187zfG49lG7JC/nolFuwn2UO8CFfbHXxQiEvGdHO+w+1D
	 7BNM1ZGeP2ZjA==
Date: Thu, 07 Aug 2025 02:12:10 +0000
To: =?utf-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, alejandro.garciavallejo@amd.com, andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: Re: [PATCH v13 2/3] tools/tests: introduce unit tests for domain ID allocator
Message-ID: <aJQLdgpNsMj3oMgK@kraken>
In-Reply-To: <aJISADd9g16o8nud@macbook.local>
References: <20250730174042.1632011-1-dmukhin@ford.com> <20250730174042.1632011-3-dmukhin@ford.com> <aJISADd9g16o8nud@macbook.local>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 84f27724c176e8decbd57fd9db920fe020f13f45
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Tue, Aug 05, 2025 at 04:15:28PM +0200, Roger Pau Monn=C3=A9 wrote:
> On Wed, Jul 30, 2025 at 05:41:00PM +0000, dmkhn@proton.me wrote:
> > From: Denis Mukhin <dmukhin@ford.com>
> >
> > Introduce some basic infrastructure for doing domain ID allocation unit=
 tests,
> > and add a few tests that ensure correctness of the domain ID allocator.
> >
> > Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> > ---
> > Changes since v12:
> > - fixed Makefile
> > - dropped unused symbols/includes from the test harness header
> > - s/printk/printf/g in the test code
> > ---
> >  tools/tests/Makefile                   |   2 +-
> >  tools/tests/domid/.gitignore           |   2 +
> >  tools/tests/domid/Makefile             |  48 ++++++++++
> >  tools/tests/domid/include/xen/domain.h | 126 +++++++++++++++++++++++++
> >  tools/tests/domid/test-domid.c         |  78 +++++++++++++++
> >  5 files changed, 255 insertions(+), 1 deletion(-)
> >  create mode 100644 tools/tests/domid/.gitignore
> >  create mode 100644 tools/tests/domid/Makefile
> >  create mode 100644 tools/tests/domid/include/xen/domain.h
> >  create mode 100644 tools/tests/domid/test-domid.c
> >
> > diff --git a/tools/tests/Makefile b/tools/tests/Makefile
> > index 36928676a666..ff1666425436 100644
> > --- a/tools/tests/Makefile
> > +++ b/tools/tests/Makefile
> > @@ -1,7 +1,7 @@
> >  XEN_ROOT =3D $(CURDIR)/../..
> >  include $(XEN_ROOT)/tools/Rules.mk
> >
> > -SUBDIRS-y :=3D
> > +SUBDIRS-y :=3D domid
> >  SUBDIRS-y +=3D resource
> >  SUBDIRS-$(CONFIG_X86) +=3D cpu-policy
> >  SUBDIRS-$(CONFIG_X86) +=3D tsx
> > diff --git a/tools/tests/domid/.gitignore b/tools/tests/domid/.gitignor=
e
> > new file mode 100644
> > index 000000000000..70e306b3c074
> > --- /dev/null
> > +++ b/tools/tests/domid/.gitignore
> > @@ -0,0 +1,2 @@
> > +*.o
> > +test-domid
> > diff --git a/tools/tests/domid/Makefile b/tools/tests/domid/Makefile
> > new file mode 100644
> > index 000000000000..08fbad096aec
> > --- /dev/null
> > +++ b/tools/tests/domid/Makefile
> > @@ -0,0 +1,48 @@
> > +# SPDX-License-Identifier: GPL-2.0-only
> > +#
> > +# Unit tests for domain ID allocator.
> > +#
> > +# Copyright 2025 Ford Motor Company
> > +
> > +XEN_ROOT=3D$(CURDIR)/../../..
> > +include $(XEN_ROOT)/tools/Rules.mk
> > +
> > +TESTS :=3D test-domid
> > +
> > +vpath domid.c $(XEN_ROOT)/xen/common/
> > +
> > +.PHONY: all
> > +all: $(TESTS)
> > +
> > +.PHONY: run
> > +run: $(TESTS)
> > +=09$(foreach t,$(TESTS),./$(t);)
> > +
> > +.PHONY: clean
> > +clean:
> > +=09$(RM) -- *.o $(TESTS) $(DEPS_RM)
> > +
> > +.PHONY: distclean
> > +distclean: clean
> > +=09$(RM) -- *~
> > +
> > +.PHONY: install
> > +install: all
> > +=09$(INSTALL_DIR) $(DESTDIR)$(LIBEXEC)/tests
> > +=09$(INSTALL_PROG) test-domid $(DESTDIR)$(LIBEXEC)/tests
> > +
> > +.PHONY: uninstall
> > +uninstall:
> > +=09$(RM) -- $(DESTDIR)$(LIBEXEC)/tests/test-domid
> > +
> > +CFLAGS +=3D -D__XEN_TOOLS__
> > +CFLAGS +=3D $(APPEND_CFLAGS)
> > +CFLAGS +=3D $(CFLAGS_xeninclude)
> > +CFLAGS +=3D -I./include/
> > +
> > +LDFLAGS +=3D $(APPEND_LDFLAGS)
> > +
> > +test-domid: domid.o test-domid.o
> > +=09$(CC) $^ -o $@ $(LDFLAGS)
> > +
> > +-include $(DEPS_INCLUDE)
> > diff --git a/tools/tests/domid/include/xen/domain.h b/tools/tests/domid=
/include/xen/domain.h
> > new file mode 100644
> > index 000000000000..e5db0235445e
> > --- /dev/null
> > +++ b/tools/tests/domid/include/xen/domain.h
> > @@ -0,0 +1,126 @@
> > +/* SPDX-License-Identifier: GPL-2.0-only */
> > +/*
> > + * Unit test harness for domain ID allocator.
> > + *
> > + * Copyright 2025 Ford Motor Company
> > + */
> > +
> > +#ifndef _TEST_HARNESS_
> > +#define _TEST_HARNESS_
> > +
> > +#include <assert.h>
> > +#include <stdbool.h>
> > +#include <stdint.h>
> > +#include <stdio.h>
> > +
> > +#include <xen-tools/common-macros.h>
> > +
> > +#define BUG_ON(x)               assert(!(x))
> > +#define ASSERT(x)               assert(x)
> > +
> > +#define DOMID_FIRST_RESERVED    (10)
> > +#define DOMID_INVALID           (11)
> > +
> > +#define DEFINE_SPINLOCK(x)      unsigned long *(x)
>=20
> I think this shouldn't be a pointer?  As you otherwise trigger a NULL
> pointer dereference in the increases and decreases done below?

Sorry, this bitops integration is very raw.

Thanks for all your suggestions, I reworked it.

>=20
> > +#define spin_lock(x)            ((*(x))++)
> > +#define spin_unlock(x)          ((*(x))--)
>=20
> FWIW, I would use a plain bool:
>=20
> #define DEFINE_SPINLOCK(l)      bool l
> #define spin_lock(l)            (*(l) =3D true)
> #define spin_unlock(l)          (*(l) =3D false)
>=20
> As you don't expect concurrency tests, you could even assert the lock
> is in the expected state before taking/releasing it.
>=20
> > +
> > +#define printk printf
> > +
> > +#define BITS_PER_LONG           sizeof(unsigned long)
>=20
> That's BYTES_PER_LONG, BITS_PER_LONG would be (sizeof(unsigned long) * 8)=
.
>=20
> > +#define BITS_PER_WORD           (8U * BITS_PER_LONG)
> > +#define BITS_TO_LONGS(bits) \
> > +    (((bits) + BITS_PER_LONG - 1) / BITS_PER_LONG)
> > +#define DECLARE_BITMAP(name, bits) \
> > +    unsigned long name[BITS_TO_LONGS(bits)]
> > +
> > +static inline int __test_and_set_bit(unsigned int nr, unsigned long *a=
ddr)
> > +{
> > +    unsigned long mask =3D 1UL << (nr % BITS_PER_WORD);
> > +    unsigned long *p =3D addr + (nr / BITS_PER_WORD);
> > +    int old =3D (*p & mask) !=3D 0;
> > +
> > +    *p |=3D mask;
> > +
> > +    return old;
> > +}
> > +
> > +static inline int __test_and_clear_bit(unsigned int nr, unsigned long =
*addr)
> > +{
> > +    unsigned long mask =3D 1UL << (nr % BITS_PER_WORD);
> > +    unsigned long *p =3D addr + (nr / BITS_PER_WORD);
> > +    int old =3D (*p & mask) !=3D 0;
> > +
> > +    *p &=3D ~mask;
> > +
> > +    return old;
> > +}
>=20
> Could you somehow use the generic__test_and_set_bit() and
> generic__test_and_clear_bit() implementations in bitops.h?

I tried that originally, and it pulls a lot of dependencies from xen/bitops=
.h;
that will be a mini project to compile xen/bitops.h for the host, which I
think I can skip doing for the purpose of this test.

I followed another approach as discussed offline in matrix: re-purpose
tools/libs/ctrl/xc_bitops.h which seems to be working nice!

>=20
> > +
> > +static inline void __set_bit(unsigned int nr, volatile unsigned long *=
addr)
> > +{
> > +    unsigned long mask =3D 1UL << (nr % BITS_PER_WORD);
> > +    unsigned long *p =3D (unsigned long *)addr + (nr / BITS_PER_WORD);
>=20
> Why do you need the cast to drop the volatile here?
>=20
> > +
> > +    *p |=3D mask;
> > +}
>=20
> I think you could possibly simplify to a single line:
>=20
>     ((unsigned int *)addr)[nr >> 5] |=3D (1u << (nr & 31));
>=20
> That's the implementation of constant_set_bit() in x86.
>=20
> > +
> > +static inline void __clear_bit(unsigned int nr, volatile unsigned long=
 *addr)
> > +{
> > +    unsigned long mask =3D 1UL << (nr % BITS_PER_WORD);
> > +    unsigned long *p =3D (unsigned long *)addr + (nr / BITS_PER_WORD);
> > +
> > +    *p &=3D ~mask;
> > +}
>=20
> I don't think you need __clear_bit()?  It's not used by domid.c AFAICT.

Overlooked, thanks.

>=20
> > +
> > +static inline unsigned long find_next_zero_bit(const unsigned long *ad=
dr,
> > +                                               unsigned long size,
> > +                                               unsigned long offset)
> > +{
> > +    unsigned long idx =3D offset / BITS_PER_WORD;
> > +    unsigned long bit =3D offset % BITS_PER_WORD;
> > +
> > +    if (offset >=3D size)
> > +        return size;
> > +
> > +    while (offset < size)
> > +    {
> > +        unsigned long val =3D addr[idx] | (~0UL >> (BITS_PER_WORD - bi=
t));
> > +
> > +        if (~val)
> > +        {
> > +            unsigned long pos =3D __builtin_ffsl(~val);
> > +
> > +            if (pos > 0)
> > +            {
> > +                unsigned long rc =3D idx * BITS_PER_WORD + (pos - 1);
> > +
> > +                if (rc < size)
> > +                    return rc;
> > +            }
> > +        }
> > +
> > +        offset =3D (idx + 1) * BITS_PER_WORD;
> > +        idx++;
> > +        bit =3D 0;
> > +    }
> > +
> > +    return size;
> > +}
>=20
> Hm, you need a full find_next_zero_bit() implementation here because
> addr can be arbitrarily long.  Could you somehow include
> xen/lib/find-next-bit.c and set the right defines so only the
> implementation of find_next_bit() is included?

That's a good idea!

xen/lib/find-next-bit.c seems to be integrating pretty simple.

Thanks for the hint!

>=20
> > +
> > +typedef bool spinlock_t;
>=20
> You want to put this ahead, so that DEFINE_SPINLOCK can be:
>=20
> #define DEFINE_SPINLOCK(l)      spinlock_t l
>=20
> > +typedef uint16_t domid_t;
> > +
> > +/* See include/xen/domain.h */
> > +extern domid_t domid_alloc(domid_t domid);
> > +extern void domid_free(domid_t domid);
> > +
> > +#endif /* _TEST_HARNESS_ */
> > +
> > +/*
> > + * Local variables:
> > + * mode: C
> > + * c-file-style: "BSD"
> > + * c-basic-offset: 4
> > + * indent-tabs-mode: nil
> > + * End:
> > + */
> > diff --git a/tools/tests/domid/test-domid.c b/tools/tests/domid/test-do=
mid.c
> > new file mode 100644
> > index 000000000000..d52eaf5f1f55
> > --- /dev/null
> > +++ b/tools/tests/domid/test-domid.c
> > @@ -0,0 +1,78 @@
> > +/* SPDX-License-Identifier: GPL-2.0-only */
> > +/*
> > + * Unit tests for domain ID allocator.
> > + *
> > + * Copyright 2025 Ford Motor Company
> > + */
> > +
> > +/* Local test include replicating hypervisor includes. */
> > +#include <xen/domain.h>
>=20
> I think this is a difficult to maintain position.  Right now domid.c
> only includes xen/domain.h, so you can easily replace this in
> user-space.  However if/when domid.c starts including more headers,
> replicating this in user-space will be cumbersome IMO.
>=20
> I would just guard the includes in domid.c with #ifdef __XEN__ for the
> preprocessor to remove them when domid.c is compiled as part of the
> unit-tests harness.
>=20
> I usually include a harness.h that contains the glue to make the
> imported code build (much like what you have placed in the test
> harness xen/domain.h header.

I like that there's no need to modify the tested code.

I reworked this slightly differently: local include/xen/domain.h is a symli=
nk
to local harness.h, and all future dependendent files will be symlinks to
harness.h as well.

>=20
> > +
> > +int main(int argc, char **argv)
> > +{
> > +    domid_t expected, allocated;
> > +
> > +    printf("DOMID_FIRST_RESERVED=3D%u DOMID_INVALID=3D%u\n",
> > +            DOMID_FIRST_RESERVED, DOMID_INVALID);
> > +
> > +    /* Test ID#0 cannot be allocated twice. */
> > +    allocated =3D domid_alloc(0);
> > +    printf("TEST 1: expected %u allocated %u\n", 0, allocated);
> > +    ASSERT(allocated =3D=3D 0);
> > +    allocated =3D domid_alloc(0);
> > +    printf("TEST 1: expected %u allocated %u\n", DOMID_INVALID, alloca=
ted);
> > +    ASSERT(allocated =3D=3D DOMID_INVALID);
> > +
> > +    /* Ensure ID is not allocated. */
> > +    domid_free(0);
> > +
> > +    /*
> > +     * Test that that two consecutive calls of domid_alloc(DOMID_INVAL=
ID)
> > +     * will never return the same ID.
> > +     * NB: ID#0 is reserved and shall not be allocated by
> > +     * domid_alloc(DOMID_INVALID).
> > +     */
> > +    for ( expected =3D 1; expected < DOMID_FIRST_RESERVED; expected++ =
)
> > +    {
> > +        allocated =3D domid_alloc(DOMID_INVALID);
> > +        printf("TEST 2: expected %u allocated %u\n", expected, allocat=
ed);
> > +        ASSERT(allocated =3D=3D expected);
> > +    }
> > +    for ( expected =3D 1; expected < DOMID_FIRST_RESERVED; expected++ =
)
> > +    {
> > +        allocated =3D domid_alloc(DOMID_INVALID);
> > +        printf("TEST 3: expected %u allocated %u\n", DOMID_INVALID, al=
located);
> > +        ASSERT(allocated =3D=3D DOMID_INVALID);
> > +    }
> > +
> > +    /* Re-allocate first ID from [1..DOMID_FIRST_RESERVED - 1]. */
> > +    expected =3D 1;
> > +    domid_free(1);
> > +    allocated =3D domid_alloc(DOMID_INVALID);
> > +    printf("TEST 4: expected %u allocated %u\n", expected, allocated);
> > +    ASSERT(allocated =3D=3D expected);
> > +
> > +    /* Re-allocate last ID from [1..DOMID_FIRST_RESERVED - 1]. */
> > +    expected =3D DOMID_FIRST_RESERVED - 1;
> > +    domid_free(DOMID_FIRST_RESERVED - 1);
> > +    allocated =3D domid_alloc(DOMID_INVALID);
> > +    printf("TEST 5: expected %u allocated %u\n", expected, allocated);
> > +    ASSERT(allocated =3D=3D expected);
> > +
> > +    /* Allocate an invalid ID. */
> > +    expected =3D DOMID_INVALID;
> > +    allocated =3D domid_alloc(DOMID_FIRST_RESERVED);
> > +    printf("TEST 6: expected %u allocated %u\n", expected, allocated);
> > +    ASSERT(allocated =3D=3D expected);
>=20
> I would make this a bit less chatty maybe?

Ack.

>=20
> I think you only need to print on errors, and you probably don't want
> to ASSERT() on failure, and rather try to finish all the tests in
> order to report multiple failures in a single run.

I thought about it originally, but my "tests" depend on each other, so I'll
keep failing on the first error as is, if there's no strong objection.

>=20
> Thanks, Roger.



From xen-devel-bounces@lists.xenproject.org Thu Aug 07 05:17:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 05:17:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072506.1435559 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujszt-00030d-Nc; Thu, 07 Aug 2025 05:17:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072506.1435559; Thu, 07 Aug 2025 05:17: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 1ujszt-00030W-K7; Thu, 07 Aug 2025 05:17:01 +0000
Received: by outflank-mailman (input) for mailman id 1072506;
 Thu, 07 Aug 2025 05:17:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gbW2=2T=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1ujszs-00030Q-I4
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 05:17:00 +0000
Received: from mail-lj1-x233.google.com (mail-lj1-x233.google.com
 [2a00:1450:4864:20::233])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id be04f9c9-734d-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 07:16:58 +0200 (CEST)
Received: by mail-lj1-x233.google.com with SMTP id
 38308e7fff4ca-332559ace6eso5183631fa.1
 for <xen-devel@lists.xenproject.org>; Wed, 06 Aug 2025 22:16:58 -0700 (PDT)
Received: from yp-VivoBook-ASUSLaptop-M1503QA-M1503QA.. ([95.67.15.120])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-332617dad03sm15339301fa.58.2025.08.06.22.16.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 06 Aug 2025 22:16:56 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: be04f9c9-734d-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754543818; x=1755148618; 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=2cwbTztMm7LAAWc7S9z7SIjMK5xW5qzQ5BPRA2LNUzk=;
        b=hAUUwIvtbwFjf7EVen+wjgjLrg+u7+is/QUTEoQKfjLLLvL0vCFVmMPCiAT03P0jb+
         zzY3xH/YcN5sN1hCq3R8Xhrb4izhfdXwvPFh2IqjCanhAt/ANHJviJXq0Fk9lhwaIYOr
         HOlhOM3HgnH2M0O8ZPk+LsRWe2jqDEqwadMStkjl6MWc4jBtNDUSoUExQNqTiMoDl8L+
         OiiCdfBs67/OpJhlzGM4jYl1tLYevhwx39oWX1yBvnxrduj482+QFWLM0gPluvSPqw7T
         Qqa5REq7qDtA8RPm3sRUcQ+kdaFyP3u7mz8Ol4XRjIVpSaipIRx+njelBLb4qoY4E0Kf
         Sziw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754543818; x=1755148618;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=2cwbTztMm7LAAWc7S9z7SIjMK5xW5qzQ5BPRA2LNUzk=;
        b=Vao1IamqHV6lEPLfVLcJf4KM1u9DeKnvw23Zi722KBIEpQSD/qkR37oo9fk+5rRDRn
         aFfoyqm2nq6yeLqGiXqn3ljwPntsGgdy3q5CdhlDOA2sE4p20YJ9f7R4T8Ugc/8Z1eaz
         QF2NBsCa+omGSxeRKdgWRmOreWgyntEFLiSvB1rZSlKphcla9SOxQz67kzLENsA6DRqG
         0wgkgq4TTuwnGoTmFIZP9Y9PvtlkHx4SF072zWVFgx0k+VnP7MNaij0aHg4KGOQdbXdG
         +a22dR7Rh3rJ9Td3+LRCBdGo7acepLj/HdLmHrW/jhKAehQOHyDDPfeqUg4HEi7O/ZNG
         0p6w==
X-Gm-Message-State: AOJu0Yxg/WVQtpatwUc6LB3b3jmFcl6KnywC7Ga1AHzLEc0iGRARCgik
	iw9IknytMiBWIiRzpQkqZPlOq/9rXRRVGD6fYD+OARiWo/tVEVXtDGhvlGkRhg==
X-Gm-Gg: ASbGncu355VvywOw4OzvWRBjVjljYIhEFZzpW7/kWU2Y+CKQUKlHqedn3tzP2E0NJHp
	4CtoBeR+O+Duqt1RVZchP+tfuS/JQwASeg8mdohK+eXQL9rZK+670JqMackunL7CTqaq6tcxnbv
	FSuvD+UHDLn55FnscIqXCr4w/9QSu+0Qyr8vUQM0agi/C2ba4dhM0pkBhe1Dmx5WW3J3dIG+WPo
	sJOSU5cr8NyAGhyl65PAT7k9FWcV7ec0+By8Zb1OcbqIRGLqiGbAeXSmP7SUToR6vs9tN98WrCz
	BxqTOab+OXjzW6nAHR3bPf3F9NXkRHvqrN8HgTdvuNKTEaubsePA8f8s1aIJDydIywwJOk1biUf
	PyFaBsMT70l85psA2xZpxxqL9eHQkORwGwRJDTh9XZ5udwaK639M3i6BnHrBsPEHHyEDeAGJ0
X-Google-Smtp-Source: AGHT+IGvuioCeTS98AKrplArDhtvwSyMwrb+yYBqVXHVvICbOsAyeSz3J4FR4WidZls81El2gvsIcw==
X-Received: by 2002:a2e:1311:0:b0:32c:abf4:d76a with SMTP id 38308e7fff4ca-33381477218mr12043971fa.38.1754543817383;
        Wed, 06 Aug 2025 22:16:57 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@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>,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
	Mykola Kvach <mykola_kvach@epam.com>
Subject: [PATCH v5] xen/char: implement suspend/resume calls for SCIF driver
Date: Thu,  7 Aug 2025 08:16:52 +0300
Message-ID: <e57133182b9bcecb519911c8b3f0d871955d6fef.1754540991.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.48.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

Implement suspend and resume callbacks for the SCIF UART driver,
enabled when CONFIG_SYSTEM_SUSPEND is set. This allows proper
handling of UART state across system suspend/resume cycles.

Tested on Renesas R-Car H3 Starter Kit.

Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
In patch v5, there are no changes at all;
it was done just to trigger a review.

In patch v4, enhance commit message, no functional changes

In patch v2, I just added a CONFIG_SYSTEM_SUSPEND check around
the suspend/resume functions in the SCIF driver.
---
 xen/drivers/char/scif-uart.c | 40 ++++++++++++++++++++++++++++++++++--
 1 file changed, 38 insertions(+), 2 deletions(-)

diff --git a/xen/drivers/char/scif-uart.c b/xen/drivers/char/scif-uart.c
index 757793ca45..888821a3b8 100644
--- a/xen/drivers/char/scif-uart.c
+++ b/xen/drivers/char/scif-uart.c
@@ -139,9 +139,8 @@ static void scif_uart_interrupt(int irq, void *data)
     }
 }
 
-static void __init scif_uart_init_preirq(struct serial_port *port)
+static void scif_uart_disable(struct scif_uart *uart)
 {
-    struct scif_uart *uart = port->uart;
     const struct port_params *params = uart->params;
 
     /*
@@ -155,6 +154,14 @@ static void __init scif_uart_init_preirq(struct serial_port *port)
 
     /* Reset TX/RX FIFOs */
     scif_writew(uart, SCIF_SCFCR, SCFCR_RFRST | SCFCR_TFRST);
+}
+
+static void scif_uart_init_preirq(struct serial_port *port)
+{
+    struct scif_uart *uart = port->uart;
+    const struct port_params *params = uart->params;
+
+    scif_uart_disable(uart);
 
     /* Clear all errors and flags */
     scif_readw(uart, params->status_reg);
@@ -271,6 +278,31 @@ static void scif_uart_stop_tx(struct serial_port *port)
     scif_writew(uart, SCIF_SCSCR, scif_readw(uart, SCIF_SCSCR) & ~SCSCR_TIE);
 }
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+
+static void scif_uart_suspend(struct serial_port *port)
+{
+    struct scif_uart *uart = port->uart;
+
+    scif_uart_stop_tx(port);
+    scif_uart_disable(uart);
+}
+
+static void scif_uart_resume(struct serial_port *port)
+{
+    struct scif_uart *uart = port->uart;
+    const struct port_params *params = uart->params;
+    uint16_t ctrl;
+
+    scif_uart_init_preirq(port);
+
+    /* Enable TX/RX and Error Interrupts  */
+    ctrl = scif_readw(uart, SCIF_SCSCR);
+    scif_writew(uart, SCIF_SCSCR, ctrl | params->irq_flags);
+}
+
+#endif /* CONFIG_SYSTEM_SUSPEND */
+
 static struct uart_driver __read_mostly scif_uart_driver = {
     .init_preirq  = scif_uart_init_preirq,
     .init_postirq = scif_uart_init_postirq,
@@ -281,6 +313,10 @@ static struct uart_driver __read_mostly scif_uart_driver = {
     .start_tx     = scif_uart_start_tx,
     .stop_tx      = scif_uart_stop_tx,
     .vuart_info   = scif_vuart_info,
+#ifdef CONFIG_SYSTEM_SUSPEND
+    .suspend      = scif_uart_suspend,
+    .resume       = scif_uart_resume,
+#endif
 };
 
 static const struct dt_device_match scif_uart_dt_match[] __initconst =
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 07 05:48:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 05:48:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072519.1435569 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujtU0-0007IV-Vl; Thu, 07 Aug 2025 05:48:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072519.1435569; Thu, 07 Aug 2025 05:48: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 1ujtU0-0007IO-Sq; Thu, 07 Aug 2025 05:48:08 +0000
Received: by outflank-mailman (input) for mailman id 1072519;
 Thu, 07 Aug 2025 05:48:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gbW2=2T=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1ujtTz-0007II-QK
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 05:48:07 +0000
Received: from mail-lf1-x133.google.com (mail-lf1-x133.google.com
 [2a00:1450:4864:20::133])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 17850cbb-7352-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 07:48:06 +0200 (CEST)
Received: by mail-lf1-x133.google.com with SMTP id
 2adb3069b0e04-55b9375d703so614555e87.3
 for <xen-devel@lists.xenproject.org>; Wed, 06 Aug 2025 22:48: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>
X-Inumbo-ID: 17850cbb-7352-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754545686; x=1755150486; 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=ZVXdFZfmuDZra32MRu+hPHN7NlwP4wjBrcHgFKdsv2Y=;
        b=iFV9SMiTet9u+cxQ+T4kQXhaEBkJ0ZwovXxGJ3qEcy/9Z37Dx+eB8hpuam+SgI3u2X
         zw08ME80jTyxDqx6APB951GDgKBSODhHDzLa6X90HOxm7wnAZ/RJqVHGIXRAXB+acPoD
         G0P0Gc5zRERupYXYGZj9NRgsAIyI70o+iMfLWggAnzXKoyfFYwj68EUwqHNwogRPfxeq
         Fvdf17v0O2ifuTrn9oOGQK/znzdf5T7aG5updh8+gL/4lKso5W2gS7Hx5ODDiucwCd6B
         lBxBCjeX2WSGaXR9HRAAy9sLMpO75vCbDitgsjUsc63I4Xb6c/mjeKDIL01qzC/s+YHL
         OQXA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754545686; x=1755150486;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=ZVXdFZfmuDZra32MRu+hPHN7NlwP4wjBrcHgFKdsv2Y=;
        b=LBlSdGEfmB7NzPcKBd+GvOKhRl3jg1zmX3OiK0HiTl3L0HGr4JWbU/ZZ31YYYkDqEy
         MMI5V5A+Bd1Xb600M/juF4//iKY0shRyPQmUcYgSPA62oWgwbaacPs+yLk83tSkTkMz7
         hHQj7t4OY7HS0bFee1sHljk/KIVFeWKf4Kna1PsKdtVRTwXmCMUxFU6uLsjq6J8JTmn+
         WJscg+wEvjMO8guce3LkpLy1DiYxEFFk1EnAULCie27EE5sxrkUzu9B9wEVy2nkwNgT8
         h8kNJsO7vbKvnwaRKwiZN6dsHfVkZunOTPAfdtbSExU1j27Iq+HjeZ7KNAPOl2izvNuV
         dJFA==
X-Forwarded-Encrypted: i=1; AJvYcCVIpGxmSwJHgz2IPpIPN3G9Pc0G7u+gvKeHBRvwTxrqUmvhWIeEWVWBXMKkHAJYUMaIMT5HdZTzq/c=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyflFe2J7BThejKgxs7yegyai4UX0kySnHk07p9MSRZ9ZOzjWt+
	5PZ1JC9XdNm3p9cdlZRcUASvwq+e10GcV0nkHLZwN3rfSJRdW0puomPOMO83GaRP17sYlgSY8DG
	wVG1jgeY2Ea5arSORKWBiaXqDk9liSm4=
X-Gm-Gg: ASbGncsxGWHgFO6TaWcfW0/o1ttR/REiP6LdAmie5l5vbhdZMxhg5EwgyuT01j2lWDW
	SIMJzSN55dJi4GIJeuPi+oyNVq0xLOhGcbzLC7JoCDFjHnPJVjuRGa3nnUMelo49oXyS7cQlZBQ
	uaM1188TOwd0PPDMBKN9tj2ZXNdNWWecUMh+ceaLQgXHIzULy+GH6DcheZRgYdl6KlCSt/aGXuQ
	zckFQ==
X-Google-Smtp-Source: AGHT+IEEcc2hckKDlNMTNFuBeqHpzZqO6mQJ1A4hozFgt5WnOaNGBu05ro1jV/R9rkqMghYQ2JbEO9tixri5D2aTI5E=
X-Received: by 2002:a05:6512:ac1:b0:553:2dce:3aad with SMTP id
 2adb3069b0e04-55caf35e419mr1798108e87.7.1754545685899; Wed, 06 Aug 2025
 22:48:05 -0700 (PDT)
MIME-Version: 1.0
References: <034559c3324e137285065b12642cbf58b7ab5f58.1753727619.git.mykola_kvach@epam.com>
 <721201b5-323d-49ec-986c-f793627929dd@suse.com>
In-Reply-To: <721201b5-323d-49ec-986c-f793627929dd@suse.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Thu, 7 Aug 2025 08:47:54 +0300
X-Gm-Features: Ac12FXyazATQ4rI2iETV3-AZbj97-fA10EX_nX8Wvf6cVl6UWLj6oqzKHrBwBRw
Message-ID: <CAGeoDV-HwPb6g46GxfEeir6BRf8WbqS0qCr5UobkKwVE6oxb=g@mail.gmail.com>
Subject: Re: [PATCH] xen/domctl: add domain_lock in XEN_DOMCTL_setvcpucontext
To: Jan Beulich <jbeulich@suse.com>
Cc: Mykola Kvach <mykola_kvach@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
	Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, 
	Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Jan,

On Tue, Jul 29, 2025 at 10:56=E2=80=AFAM Jan Beulich <jbeulich@suse.com> wr=
ote:
>
> On 28.07.2025 20:40, Mykola Kvach wrote:
> > From: Mykola Kvach <mykola_kvach@epam.com>
> >
> > Add domain_{lock,unlock} in the XEN_DOMCTL_setvcpucontext operation
> > for protecting arch_set_info_guest.
> >
> > This aligns with the locking pattern used by other operations that
> > modify vCPU state.
> >
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
>
> I think this requires more of a description / justification. May I in
> particular turn your attention to this comment that we have in x86'es
> handling of HVM_PARAM_IDENT_PT (disregard the 1st sentence for the
> purpose here):
>
>         /*
>          * Update GUEST_CR3 in each VMCS to point at identity map.
>          * All foreign updates to guest state must synchronise on
>          * the domctl_lock.
>          */
>         rc =3D -ERESTART;
>         if ( !domctl_lock_acquire(d) )
>             break;
>
> IOW in particular I'd expect you to explain why holding the domctl
> lock isn't sufficient here, and hence what (theoretical?) race it is
> you're concerned about. That may in turn clarify whether a Fixes: tag
> would actually be appropriate here.

For example, on ARM systems, we bring up vCPUs via PSCI. At the same time,
from another domain, XEN_DOMCTL_setvcpucontext may be called. In the PSCI
path, access is protected by domain_lock, but domain_pause alone is not
sufficient to prevent races during modification of the vCPU context from
XEN_DOMCTL_setvcpucontext.

>
> Jan
>
> > --- a/xen/common/domctl.c
> > +++ b/xen/common/domctl.c
> > @@ -392,7 +392,9 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t)=
 u_domctl)
> >          if ( ret =3D=3D 0 )
> >          {
> >              domain_pause(d);
> > +            domain_lock(d);
> >              ret =3D arch_set_info_guest(v, c);
> > +            domain_unlock(d);
> >              domain_unpause(d);
> >
> >              if ( ret =3D=3D -ERESTART )
>

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 07:01:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 07:01:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072545.1435578 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujucL-0000x0-6h; Thu, 07 Aug 2025 07:00:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072545.1435578; Thu, 07 Aug 2025 07: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 1ujucL-0000wt-48; Thu, 07 Aug 2025 07:00:49 +0000
Received: by outflank-mailman (input) for mailman id 1072545;
 Thu, 07 Aug 2025 07:00:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=4KBa=2T=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1ujucJ-0000wn-KT
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 07:00:47 +0000
Received: from mail-ej1-x62e.google.com (mail-ej1-x62e.google.com
 [2a00:1450:4864:20::62e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3ba0d867-735c-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 09:00:42 +0200 (CEST)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-af95525bac4so126054566b.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 00:00:42 -0700 (PDT)
Received: from ?IPV6:2003:e5:872d:3c00:27e3:fc0:fb5:67a3?
 (p200300e5872d3c0027e30fc00fb567a3.dip0.t-ipconnect.de.
 [2003:e5:872d:3c00:27e3:fc0:fb5:67a3])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a21c08csm1260993466b.118.2025.08.07.00.00.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Aug 2025 00:00: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>
X-Inumbo-ID: 3ba0d867-735c-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754550042; x=1755154842; 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=tOMFzXjfqApsmNgUmWY9MCxHySFMvslhIu9lxxs/xhY=;
        b=bqr3n0lwq3Oj2EU4mqxbW1s3b9vA8kx+qkC2skt4hMYXry+mbpoal/eA7VR9OSl4pZ
         LHTCKOTGtLTW6GSfqyQl7o2mennx+WJs5FxoilMcJF8HBJgdi81vROepqTteXEqdRj2X
         yW48TxYae3k1NYH14axItlXaa8GWKxW14wg27a3IWODpEMTQsIWrHCNrUhxM/ao3sVFg
         /5+z3RlbfKJqOGXf0HMIJxLcXt9GkU9ayNvn6mHOdOhPHNHEuiNBJ+KhyPYaY23PpDSn
         sho34OLKkmEXFPBPrxIAa3XYaB5K74jfUzHK/mNB9x3ESZuSjQgzxCVS3tL/N2X8tEy2
         pwbw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754550042; x=1755154842;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=tOMFzXjfqApsmNgUmWY9MCxHySFMvslhIu9lxxs/xhY=;
        b=Emzuve7E/hKFN4tDR3sZ1e59M5UpuWgvV4nsb2INKMRfX5Q3RcYa2GPHfmgHL5rpOA
         nwk8QRccdWHMqriy5R11zPhFhPARrRnvGz4RGYQ29WckQAtiFsXlB5piaT03Zgo4QaFY
         PJitcOnoNlcUu6Pda9kWGMxRZ3JzdXj3V8XlrjrQ5hC96ZB+OVIWV+9YBjPMbLI11UTc
         9yMu5yW9G9hU7qPxNlalOJcGjvkOgnLFMM0a1qP+40koVkOOKau6vzDhIKAS2jmz+SmO
         0UePHe6bhyuYDBi6KHBV7Rl2hfKEpVO6ZZAigtXHd2APR6/Uxb2QbDqeL+jI+WNQRoQM
         8uuQ==
X-Forwarded-Encrypted: i=1; AJvYcCU3a4XpjpzobK7LO/msfVK/licLEPNpNboAVsH3j7y5PXd8ANg/NkSdFRrk7jWU29N+vVlvmUfNLEI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzMWCF59Y2K1NYn/VQTnNyT2svfyBUUmVYWZy3MCi5b7yHQsL3k
	w4UyoVPcVFNVTfDpmCY4vhV3/47ZjKaSTFIySmWF4gKJQqoLdpu1Vz6oMzqY+UQgCR0R8kwsJYc
	rT+T4JsU=
X-Gm-Gg: ASbGnct9ZcugcxlaAiXeyk82c9ivaEApahXEglFpUtNNUIM8KZKulGmU/WWDMDULZW9
	SKpl22bcELvKRUElKXg96Q5lOO03sxX1hCzDzb7h6Irk8gfBFgatN3TkF9+tT1zFUNvsobuRC8D
	LHWLraExOBCCBk2T+kr0WOeH7aOMgd0NqAR2bujMlISBzmUIkGqj+B6RIYe4c8fpCmC6rGKRlv7
	B0RYkQZUpsyJgUUGImVX4aAdQOT3Nb8ma6coZ7jf0Is/zVFdb5VOr5F6xkK+lNkreLHHRYS0vxR
	098skjk2NYcRO7TSr9AjfwOfE/8PrwBacYJhK5XhdLnEIggDKdfuqDndUATyCwFS99groSnXQIE
	TlbGyUc5DcQBqz8y5BYJQyyAuUnnfg2DDaLyLBETspGCWaalCTLWgrL+6PSqW3TxYbmEfX35vJZ
	ufKYJ3Rzrct5V7tmc9WJeVDJ9Dmr6CdFoj3HNS/etCaA==
X-Google-Smtp-Source: AGHT+IEifKxdhJkJU1ui3sP8SXn2lak5Lqk2FCEI5Axkq0vHTS8lt+ICJ5i21sBBxYv9qJfOuOluNg==
X-Received: by 2002:a17:906:730b:b0:ae0:c441:d54b with SMTP id a640c23a62f3a-af992a61199mr408819566b.9.1754550041658;
        Thu, 07 Aug 2025 00:00:41 -0700 (PDT)
Message-ID: <25745d45-d506-4277-8ccd-302cd1316707@suse.com>
Date: Thu, 7 Aug 2025 09:00:40 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] xenconsole: Add connected flag
To: Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>
References: <20250807015606.4427-1-jason.andryuk@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: <20250807015606.4427-1-jason.andryuk@amd.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------wkg6tmIozJljv81Bj40WeEch"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------wkg6tmIozJljv81Bj40WeEch
Content-Type: multipart/mixed; boundary="------------1DcwHXzsI00Az91ZQkKI66kj";
 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: Anthony PERARD <anthony.perard@vates.tech>
Message-ID: <25745d45-d506-4277-8ccd-302cd1316707@suse.com>
Subject: Re: [PATCH v1] xenconsole: Add connected flag
References: <20250807015606.4427-1-jason.andryuk@amd.com>
In-Reply-To: <20250807015606.4427-1-jason.andryuk@amd.com>

--------------1DcwHXzsI00Az91ZQkKI66kj
Content-Type: multipart/mixed; boundary="------------XcG6NHiDPGi3iN1i4DinuVjo"

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

T24gMDcuMDguMjUgMDM6NTYsIEphc29uIEFuZHJ5dWsgd3JvdGU6DQo+IFdpdGggaHlwZXJs
YXVuY2gsIGEgZG9tVSBjYW4gc3RhcnQgYmVmb3JlIGl0cyBjb25zb2xlIHJpbmcgaXMgY29u
bmVjdGVkDQo+IGJ5IHhlbmNvbnNvbGVkLiAgV2l0aCBub3RoaW5nIGVtcHR5aW5nIHRoZSBy
aW5nLCBpdCBjYW4gcXVpY2tseSBmaWxsDQo+IGR1cmluZyBib290LiAgSW4gZG9tVV93cml0
ZV9jb25zb2xlKCksIF9fd3JpdGVfY29uc29sZSgpIHJldHVybnMgMCB3aGVuDQo+IHRoZSBy
aW5nIGlzIGZ1bGwuICBUaGlzIGxvb3BzIHNwaW5zIHVudGlsIHhlbmNvbnNvbGVkIHN0YXJ0
cyBlbXB0eWluZw0KPiB0aGUgcmluZzoNCj4gDQo+ICAgICAgICAgIHdoaWxlIChsZW4pIHsN
Cj4gICAgICAgICAgICAgICAgICBzc2l6ZV90IHNlbnQgPSBfX3dyaXRlX2NvbnNvbGUoY29u
cywgZGF0YSwgbGVuKTsNCj4gDQo+ICAgICAgICAgICAgICAgICAgaWYgKHNlbnQgPCAwKQ0K
PiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbnQ7DQo+IA0KPiAgICAgICAg
ICAgICAgICAgIGRhdGEgKz0gc2VudDsNCj4gICAgICAgICAgICAgICAgICBsZW4gLT0gc2Vu
dDsNCj4gDQo+ICAgICAgICAgICAgICAgICAgaWYgKHVubGlrZWx5KGxlbikpDQo+ICAgICAg
ICAgICAgICAgICAgICAgICAgICBIWVBFUlZJU09SX3NjaGVkX29wKFNDSEVET1BfeWllbGQs
IE5VTEwpOw0KPiAgICAgICAgICB9DQo+IA0KPiBUaGUgZ29hbCBvZiB0aGlzIHBhdGNoIGlz
IHRvIGFkZCBhIHdheSBmb3IgdGhlIGZyb250ZW5kIHRvIGtub3cgd2hlbiBhDQo+IGNvbnNv
bGUgaXMgY29ubmVjdGVkLiAgVGhpcyBwYXRjaCBhZGRzIGEgbmV3IGZsYWcgdG8gdGhlIGVu
ZCBvZiB0aGUNCj4gY29uc29sZSByaW5nIHN0cnVjdHVyZS4gIEl0IGlzIHVzZWQgZm9yIHRo
ZSBiYWNrZW5kIHRvIGluZGljYXRlIHRoYXQgaXQNCj4gaGFzIGNvbm5lY3RlZCBhbmQgc3Rh
cnRlZCBzZXJ2aWNpbmcgdGhlIHBhZ2UuDQo+IA0KPiBUaGUgdHdvIHZhbHVlcyBhcmUNCj4g
WEVOQ09OU09MRV9ESVNDT05ORUNURUQgMQ0KPiBYRU5DT05TT0xFX0NPTk5FQ1RFRCAgICAw
DQo+IA0KPiBYRU5DT05TT0xFX0RJU0NPTk5FQ1RFRCBpbmRpY2F0ZXMgdG8gdGhlIGd1ZXN0
IHRoYXQgcmluZyBpcw0KPiBkaXNjb25uZWN0ZWQsIHNvIGl0IHdpbGwgbm90IGJlIHNlcnZp
Y2VkLiAgVGhlIGd1ZXN0IGNhbiBhdm9pZCB3cml0aW5nDQo+IGludG8gaXQgaW4gdGhhdCBj
YXNlLiAgQSBkb21VIGNhbiB1c2UgY29uc29sZSBoeXBlcmNhbGxzIGFuZCBvbmx5DQo+IHRy
YW5zaXRpb24gdG8gdGhlIHJpbmcgd2hlbiBpdCBpcyBjb25uZWN0ZWQgYW5kIHdvbid0IGZp
bGwgYW5kIGJsb2NrLg0KPiANCj4gT25jZSB0aGUgYmFja2VuZCAoeGVuY29uc29sZWQpIG1h
cHMgYW5kIHN0YXJ0cyBzZXJ2aWNpbmcgdGhlDQo+IGNvbnNvbGUsIHRoZSBmbGFnIHdpbGwg
YmUgc2V0IHRvIFhFTkNPTlNPTEVfQ09OTkVDVEVEICgwKSB0byBpbmRpY2F0ZQ0KPiB0aGUg
YmFja2VuZCBzdGF0ZSB0byB0aGUgZnJvbnRlbmQuDQo+IA0KPiBUaGUgY29ubmVjdGVkIHZh
bHVlIGFzIDAgd2lsbCBiZSBtYXRjaCB0aGUgZGVmYXVsdCBvZiBhIHplcm8tZWQgY29uc29s
ZQ0KPiBwYWdlLiAgSHlwZXJsYXVuY2ggY2FuIHNldCB0aGUgZmxhZyB0byBYRU5DT05TT0xF
X0RJU0NPTk5FQ1RFRCBhbmQgbGV0DQo+IHhlbmNvbnNvbGVkIHNldCB0byBYRU5DT05TT0xF
X0NPTk5FQ1RFRC4NCg0KSSB0aGluayBsaWJ4ZW5ndWVzdCBzaG91bGQgc2V0IFhFTkNPTlNP
TEVfRElTQ09OTkVDVEVEIGFzIHdlbGwgKHNlZSBiZWxvdykuDQoNCj4gDQo+IE9sZCBkb21V
IGh2Y194ZW4gZHJpdmVycyB3b24ndCBjaGVjayB0aGUgZmxhZy4NCj4gTmV3IGRvbVUgaHZj
X3hlbiBydW5uaW5nIG9uIGEgbmV3IHhlbi94ZW5jb25zb2xlZCB3aWxsIHdvcmsgcHJvcGVy
bHkuDQo+IE5ldyBkb21VIGh2Y194ZW4gb24gb2xkIHhlbi94ZW5jb25zb2xlZCBzaG91bGQg
b25seSBzZWUgYSAwIGZvciB0aGUgZmxhZw0KPiBhbmQgYmVoYXZlIGFzIGlmIGNvbm5lY3Rl
ZC4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IEphc29uIEFuZHJ5dWsgPGphc29uLmFuZHJ5dWtA
YW1kLmNvbT4NCg0KQWRhcHQgdGhlIHRpdGxlIG9mIHRoZSBwYXRjaD8NCg0KPiAtLS0NCj4g
djE6DQo+IFJlbW92ZSBldnRjaG4gbm90aWZ5IGNhbGwNCj4gU2V0IGNvbm5lY3RlZCBsYXRl
ciB3aGVuIHRoZXJlIGlzIG5vIGVycm9yDQo+IA0KPiBSRkMgdjM6DQo+IEZsaXAgZmxhZyB2
YWx1ZXMgc28gMCBpcyBjb25uZWN0ZWQuDQo+IA0KPiBUaGUgb3RoZXIgb3B0aW9uIHdvdWxk
IGJlIHRvIGFkZDoNCj4gdWludDMyX3QgZmVhdHVyZXMNCj4gdWludDMyX3QgY29ubmVjdGVk
DQo+IA0KPiBOZXcgZG9tVXMgd291bGQgY2hlY2sgZmVhdHVyZXMgZm9yIGEgbWFnaWMgdmFs
dWUgYW5kL29yIGZsYWcgdG8ga25vdw0KPiB0aGV5IGNhbiByZWx5IG9uIGNvbm5lY3RlZCB0
cmFuc2l0aW9uaW5nLg0KPiANCj4gSSB0aGluayBtYWtpbmcgWEVOQ09OU09MRV9DT05ORUNU
RUQgPT0gMCBzaWRlIHN0ZXBzIHRoZSBuZWVkIGZvcg0KPiBhbiBhZGRpdGlvbmFsIGZlYXR1
cmVzIGZpZWxkLiAgQXMgbG9uZyBhcyBhc3N1bWluZyB6ZXJvLWVkIG1lbW9yeSBpcw0KPiBh
Y2NlcHRhYmxlLiAgSG93ZXZlciwgdGhpcyBvbmx5IG1hdHRlcnMgZm9yIGEgaHlwZXJsYXVu
Y2hlZCBndWVzdCAtDQo+IHhlbmNvbnNvbGVkIHdpbGwgbm9ybWFsbHkgcmVhZGlseSBjb25u
ZWN0IHRoZSBjb25zb2xlIGFuZCBzZXQgdGhlIHZhbHVlLg0KDQpJJ2QgbGlrZSB0byBjb25z
aWRlciBvdGhlciBjYXNlcyBhcyB3ZWxsLCBlLmcuIGEgY29uc29sZSBkcml2ZXIgZG9tYWlu
Lg0KU28gYW55IGluc3RhbmNlIGNyZWF0aW5nIGEgZG9tYWluIHdpdGggYSBjb25zb2xlIHJp
bmcgcGFnZSBzaG91bGQgc2V0IHRoZQ0KZmxhZyBpbml0aWFsbHkgdG8gImRpc2Nvbm5lY3Rl
ZCIuDQoNCj4gVGhpcyBhc3N1bWVzIHRoYXQgZXhpc3RpbmcgZnJvbnRlbmRzIGFyZSBub3Qg
dXNpbmcgdGhlIGZsYWcgc3BhY2UgZm9yDQo+IHNvbWUgb3RoZXIgdXNlLg0KPiANCj4gUmVt
b3ZlZCBpZGVhOg0KPiBTZW5kIGFuIGV2ZW50IGNoYW5uZWwgbm90aWZpY2F0aW9uIHRvIGxl
dCB0aGUgZG9tVSBrbm93IHRoYXQgeGVuY29uc29sZWQNCj4gaXMgY29ubmVjdGVkLiAgWGVu
c3RvcmVkIGRvZXMgc2ltaWxhciwgYnV0IGZvciB4ZW5zdG9yZSwgdGhlIHhlbnN0b3JlDQo+
IGRyaXZlciBvd25zIHRoZSBldmVudCBjaGFubmVsL2lycSBhbmQgY2FuIHJlYmluZCBpdC4g
IEZvciBodmNfeGVuLCB0aGUNCj4gaHZjIHN1YnN5c3RlbSBvd25zIHRoZSBpcnEsIHNvIGl0
IGlzbid0IHJlYWRpbHkgYXZhaWxhYmxlIGZvciByZWJpbmRpbmcuDQo+IFRoaXMgaXMgbm90
IGltcGxlbWVudGVkLg0KPiANCj4gSSBoYWQgdGhlIGlkZWEgZm9yIHRoZSBrZXJuZWwgdG8g
dXNlIGEgc3RhdGljIGtleSBhbmQgc3dpdGNoIHdyaXRpbmcNCj4gZnJvbSB0aGUgaHlwZXJj
YWxsIHRvIHRoZSBQViByaW5nIG9uY2UgY29ubmVjdGVkLiAgSXQgZGlkbid0IGFjdHVhbGx5
DQo+IHdvcmsgaW4gbXkgc2hvcnQgYXR0ZW1wdCAtIEkgdGhpbmsgY2hhbmdpbmcgdGhlIHN0
YXRpYyBrZXkgZnJvbSB3aXRoaW4NCj4gYW4gaW50ZXJ1cHQgd2FzIHdyb25nLiAgSSBmZWxs
IGJhY2sgdG8ganVzdCBjaGVja2luZyB0aGUgZmxhZyBkaXJlY3RseQ0KDQpZb3UnZCBuZWVk
IHRvIGRvIHRoZSBzdGF0aWMga2V5IGNoYW5naW5nIGZyb20gYSB3b3JrZXIgdGhyZWFkIGlu
c3RlYWQuDQoNCg0KSnVlcmdlbg0K
--------------XcG6NHiDPGi3iN1i4DinuVjo
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-----

--------------XcG6NHiDPGi3iN1i4DinuVjo--

--------------1DcwHXzsI00Az91ZQkKI66kj--

--------------wkg6tmIozJljv81Bj40WeEch
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/Ey8FAmiUTxgFAwAAAAAACgkQsN6d1ii/Ey8I
gwf/SH17iEDgKCnKIzrLhVj+GkMlOF42BJcccp7/t77MK7zGrRhg7mXnBdviRgTVIBNvy27GiDy2
pPbrgZ3JLyCpPGT76s0EbY6S87foPiu2RSprivkLmlqZQ2kchFOB6Ss2Bx7k2+J/AwJ3W1qDsCHI
yygUXZUn0Mt0/3XrIz0rQxw5I/9Pibt+AiU/CGdhV5q+lntTMMAIM1MU7qJHI/gIhA3A6BBkRQ29
GIvhndaSBfKYNeS8UlD/mmrB2LADWhlfaVaVLxkh6Ko/aIycRyvr6jlSvHwavQnHulrLWgZ+2Wvl
cu/zFGN0OGEay8RM4Eb8fGkd9HqomIz3eqFuln1qYA==
=USPK
-----END PGP SIGNATURE-----

--------------wkg6tmIozJljv81Bj40WeEch--


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 07:33:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 07:33:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072577.1435589 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujv7s-0005I3-JL; Thu, 07 Aug 2025 07:33:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072577.1435589; Thu, 07 Aug 2025 07:33: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 1ujv7s-0005Hw-Gf; Thu, 07 Aug 2025 07:33:24 +0000
Received: by outflank-mailman (input) for mailman id 1072577;
 Thu, 07 Aug 2025 07:33:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Qi0u=2T=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1ujv7r-0005Hq-4L
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 07:33:23 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cad224b9-7360-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 09:33:20 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 572DA4EE3C03;
 Thu,  7 Aug 2025 09:33:19 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cad224b9-7360-11f0-b898-0df219b8e170
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=1754551999;
	b=Wr0+ejIeO2i8/znhM933D+dzQrqfQmzvXu4gX9u6qzEWjbcjsMUoM/Zo4axG/bd5jpn7
	 BYbGJWLIoNGh3PX7JHATnnr1JPuxkLa1tilPEn8MTCC51ZGOJel6IP8FOEgLlQnjFqk46
	 eBbqMTQxQbYuvO3TPjPT45wK5/XB/sUKrWyZ8BF/ZvH5iyg9xgXgdWEKmsomqwwcYG9Du
	 ZCJarmmG+F5Gy8HIenUYnZCXTeUvjjzx27eMU9wXYlGey20K/1DicrEVJq4cTsbZ6tMDs
	 frNYv9pClLPQMTkUjaDIF65P3zM/cr/PoPawnYFcjaKfm5ApFTcmxReWpmC/mvrTnH14J
	 UXFpIfFompGSZAfQ/rNn3pGbfbpaynCOkmBUMnNkLCjjOQnpy+5rYAoiniGcKOFy9zhhh
	 n24GdBt37smTWkj8/GdNn9KGnv8DTC/ZB1ukY4QQaZ7SBCf4wyZVsqkA/wRQoyN7nTsO1
	 ZhAz7G0Hhorl5ifcb6Bk8KHKkQBV1jZaZjZVQ77QHmFvU707qtIHFP6XxTGC/cJghnagt
	 fmonePivJ60DSg19M7nOasueVaHfCuNmgEYX+f7SCouspRVboHANVV8xQni0EdcuHRXY0
	 EQcsp0g31NFZgRk7PTEl/AawWkbWe5zY3CxbRlYAuduf6c3oOtgo37Tm+OWRs/0=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1754551999;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=0NyDquy2rrGKeFcnHpLT7eVIK2AoUYc/czhxB9AKgGk=;
	b=dspUBgEI5eeHPnFGVLoEgPkk8B50vGZ87LWkr50YTjCTHftlbhkrb8c1A9UCBo6VY5CF
	 opGK/7Yx0YaUN4HrmBosZPWMfO0S3O0IUIWskHdiE7OamnJSbeycwoo6UlGwgXpBV/AbM
	 npGTY7Sn+00SGLZ3Y5sTmpBn2wgFZsnFPNsHzPeSNwoF61q/N72Y2Niyx9Ig3laWwzRiX
	 kf8DPy7YUaouKucDw9d1zblfHXhmwknZBRktPY3tEPDpAqxZFrX952wPqJNMFBjSmh0M4
	 uIU4UkQ2kgygRibVsnc4moYQgX6iE7Wgrq/pOEHiCqf8RTa+MEdbAXuwOTykI3UWJbvvB
	 prtjHXzgbxDEqbKiPkqXVQ5QxAppDeaFOutFqNdlGbDf+w7PNqLey0mmD+cpAtaqXqOSl
	 tMcF5YUqKKZcmg5p8ylVIYOv6oYFV9qT3Tg/dCRmkJc05fuB4UOkVcKm/i8TioF0CWGh7
	 e8dEVpdA5Ujf/pIU1gBi3WDkeCADfvoZFQ6o+GA570SrQ7EqXqYEgcWCePJkuftbPXXuY
	 Lyp+qleyvu+PTFlpiNu4caYYr2H1RUn/rAdw/ANSJc+zMYDBl782fhKHb6INuJt3UfIbV
	 ciPWBshZcbhV+COeC+/Ol7wVscOTLGOdcJbdBC90tqd2K2gMcRMuUV4zs2Vce7E=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1754551999; bh=6Jc5s6lkESPMvHcmo8eTo9SxerY99KJu3uqUGD3zOd8=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=cAI2uBa4MDoGL2J8I0hcSZ7Rm9TezOyDuIon2MbRwKKNd2UP/SnoHVNVJ7UOOwV5B
	 OSKiUQwbWDK4Cs8zwYnkAmU4NtDNpIYDsy+ZZ8bVWuaVkjb0b6yPlQ5mTyRr6lJZ1R
	 IvRfEHYOKdIdRzOmnz92GJC3gP5hDvzierKyvR9b3znWlbMiTHti/QE0g68oLsIYPu
	 tJj3in9nMMnHDeVU2dazhEgScEoH1wCT1WfuRoZSWZkKynzE62DS+5KBfHIiiVhlFJ
	 oEqWVR0Kcz5hxEUMVdI+ws1MMc2DT4J+niDFAr9v4pHjO3SCUMP6wUbV0mbHPcYnkK
	 ggFwrcsPu8mbA==
MIME-Version: 1.0
Date: Thu, 07 Aug 2025 09:33:19 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: xen-devel@lists.xenproject.org, Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>, 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>
Subject: Re: [PATCH v4] misra: add deviations of MISRA C Rule 5.5
In-Reply-To: <afe942916b8a2408f575d2acda49699f74718161.1753991597.git.dmytro_prokopchuk1@epam.com>
References: <afe942916b8a2408f575d2acda49699f74718161.1753991597.git.dmytro_prokopchuk1@epam.com>
Message-ID: <874c914eafd42020afc2087eccf4d7a3@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

On 2025-07-31 22:43, Dmytro Prokopchuk1 wrote:
> MISRA C Rule 5.5 states: "Identifiers shall be distinct from macro 
> names".
> 
> Update ECLAIR configuration to deviate clashes: specify the macros that
> should be ignored. Update deviations.rst and rules.rst accordingly.
> 
> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>

Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

> ---
> Changes in v4:
> - fixed formatting (aligned length chars per line)
> - set 'ignored_macros' as a regex expression
> - set a deviation restriction on xen/common/grant_table.c
> - s/ensures/to ensure/
> - fixed grammar errors
> 
> Link to v3:
> https://patchew.org/Xen/e681e0c083d945f48e6d0add1aee32af16be224e.1753911247.git.dmytro._5Fprokopchuk1@epam.com/
> 
> Test CI pipeline:
> https://gitlab.com/xen-project/people/dimaprkp4k/xen/-/pipelines/1960066579
> ---
>  .../eclair_analysis/ECLAIR/deviations.ecl     | 10 +++++++++
>  docs/misra/deviations.rst                     | 22 +++++++++++++++++++
>  docs/misra/rules.rst                          | 17 ++++++++++++++
>  3 files changed, 49 insertions(+)
> 
> diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl 
> b/automation/eclair_analysis/ECLAIR/deviations.ecl
> index 483507e7b9..ab3400fc89 100644
> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
> @@ -117,6 +117,16 @@ it defines would (in the common case) be already 
> defined. Peer reviewed by the c
>  -config=MC3A2.R5.5,reports+={deliberate, 
> "any_area(decl(kind(function))||any_loc(macro(name(memcpy||memset||memmove))))&&any_area(any_loc(file(^xen/common/libelf/libelf-private\\.h$)))"}
>  -doc_end
> 
> +-doc_begin="Clashes between bitops functions and macro names are 
> deliberate.
> +These macros are needed for input validation and error handling."
> +-config=MC3A2.R5.5,ignored_macros+="^(__)?(test|set|clear|change|test_and_(set|clear|change))_bit$"
> +-doc_end
> +
> +-doc_begin="Clashes between grant table functions and macro names in 
> 'xen/common/grant_table.c' are deliberate.
> +These macros address differences in argument count during 
> compile-time, effectively discarding unused parameters to avoid 
> warnings or errors related to them."
> +-config=MC3A2.R5.5,ignored_macros+="name(update_gnttab_par||parse_gnttab_limit)&&loc(file(^xen/common/grant_table\\.c$))"
> +-doc_end
> +
>  -doc_begin="The type \"ret_t\" is deliberately defined multiple times,
>  depending on the guest."
>  
> -config=MC3A2.R5.6,reports+={deliberate,"any_area(any_loc(text(^.*ret_t.*$)))"}
> diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
> index e78179fcb8..4c64a8be62 100644
> --- a/docs/misra/deviations.rst
> +++ b/docs/misra/deviations.rst
> @@ -142,6 +142,28 @@ Deviations related to MISRA C:2012 Rules:
>         memmove.
>       - Tagged as `deliberate` for ECLAIR.
> 
> +   * - R5.5
> +     - Clashes between bitops ('__test_and_set_bit', 
> '__test_and_clear_bit',
> +       '__test_and_change_bit', 'test_bit', 'set_bit', 'clear_bit', 
> 'change_bit',
> +       'test_and_set_bit', 'test_and_clear_bit', 
> 'test_and_change_bit')
> +       functions and macro names are intentional. These are necessary 
> for error
> +       handling and input validation to ensure that the size of the 
> object being
> +       referenced by the memory address (passed as an argument to the 
> macro)
> +       meets the minimum requirements for the bit operation. This 
> prevents unsafe
> +       operations on improperly sized data types that could lead to 
> undefined
> +       behavior or memory corruption. The macros encapsulate this 
> conditional
> +       logic into a single, reusable form, simplifying the code and 
> avoiding
> +       function call overhead. Also this bit operations API was 
> inherited from
> +       Linux and should be kept for familiarity.
> +     - ECLAIR has been configured to ignore these macros.
> +
> +   * - R5.5
> +     - Clashes between grant table ('update_gnttab_par', 
> 'parse_gnttab_limit')
> +       functions and macro names are intentional. These macros address
> +       differences in argument count during compile-time, effectively 
> discarding
> +       unused 2nd and 3rd parameters to avoid warnings or errors 
> related to them.
> +     - ECLAIR has been configured to ignore these macros.
> +
>     * - R5.6
>       - The type ret_t is deliberately defined multiple times depending 
> on the
>         type of guest to service.
> diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst
> index 3e014a6298..cba15933fe 100644
> --- a/docs/misra/rules.rst
> +++ b/docs/misra/rules.rst
> @@ -196,6 +196,23 @@ maintainers if you want to suggest a change.
>             #define f(x, y) f(x, y)
>             void f(int x, int y);
> 
> +       Clashes between bitops functions and macro names are allowed
> +       because they are used for input validation and error handling.
> +       Example::
> +
> +           static inline void set_bit(int nr, volatile void *addr)
> +           {
> +               asm volatile ( "lock btsl %1,%0"
> +                              : "+m" (ADDR) : "Ir" (nr) : "memory");
> +           }
> +           #define set_bit(nr, addr) ({                            \
> +               if ( bitop_bad_size(addr) ) __bitop_bad_size();     \
> +               set_bit(nr, addr);                                  \
> +           })
> +
> +       Clashes between grant table functions and macro names are 
> allowed
> +       because they are used for discarding unused parameters.
> +
>     * - `Rule 5.6 
> <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_05_06.c>`_
>       - Required
>       - A typedef name shall be a unique identifier

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 07:39:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 07:39:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072592.1435599 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujvDQ-0005s2-7C; Thu, 07 Aug 2025 07:39:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072592.1435599; Thu, 07 Aug 2025 07:39: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 1ujvDQ-0005rv-3N; Thu, 07 Aug 2025 07:39:08 +0000
Received: by outflank-mailman (input) for mailman id 1072592;
 Thu, 07 Aug 2025 07:39:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gbW2=2T=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1ujvDO-0005rp-Tu
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 07:39:06 +0000
Received: from mail-lf1-x12f.google.com (mail-lf1-x12f.google.com
 [2a00:1450:4864:20::12f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 93df4453-7361-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 09:38:57 +0200 (CEST)
Received: by mail-lf1-x12f.google.com with SMTP id
 2adb3069b0e04-55b8a0f36fcso790020e87.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 00:38: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>
X-Inumbo-ID: 93df4453-7361-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754552337; x=1755157137; 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=oKAtAZGw0OLUOOWa2L+nz0djnwMkXJBjzcf4z7gEyBw=;
        b=O7R4yaFshvH7D2wCZrZ9M79BBWXoEJuyJyErnkFtVIxC2+V50J3FYybEZcviT/ZqX1
         m8L/O/ffxj1GY/DMA10ciRNtNJi6ZLDpsKD/LrUepRunMVI6M7GGyAED4loKlOf92+YK
         FD9dbY7iOEIqJj2nuTfjMyGvf8Cp3v0v3We5ae/Wo2wzEtgfVQl30hxpjNjqz2j4mpKn
         kDZWajGFYqz3PpV5oHhD5LCbyuzS7xRtBoeMwYjMi/f+Ni2818aDG3zBzJ2wLmw8WNCQ
         /cNPXT9Ad1zNjdaTAh237rAP9eKncJ1XOvIGfEC0Wpo0nibPIlmWubnwqiNx+HLxJVjd
         NDVQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754552337; x=1755157137;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=oKAtAZGw0OLUOOWa2L+nz0djnwMkXJBjzcf4z7gEyBw=;
        b=WGVH99pE1GBF9xrXEYHvpC9eJQT7/p32lxWYn/dG1y2JJVtxSqOqhA8RFZQwGbwzED
         AmpP09/u+vnJNmEfz4/k390ktp46osEASrsy90gCZZuf0f5okrpkGz54Zno/ipCWU4Wq
         PEAT4METrsjhL9bK5LhVJ20m+dvC3TRTXFetvk/H5/sPSKkEMpqiv69EyEF+Q+q0awHF
         IRCX7ReHwBUHQWQIqf1J+/dcQmgpGcc5N8F/FW54P/DMWRn3CDttbhINrLxJu+651Ub9
         7ylSm7xgJF5CNAa1aXyWNo9eWCAbic/zHrqUz4FSBcBbLbqp9HXE+qh0mgzVRA/UYfnN
         OvLw==
X-Forwarded-Encrypted: i=1; AJvYcCX1O/lvTOT7udOyiiy9dLrfMVwM9BJ1NCZExwYCsgjLXXupAyc4FvhBGrTTvMnacjoC9blRSp7X1EA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwwhWLuDQPDOiIldI8Ji6ZLiIjl/lZErEcOG23oUZBeeQQ4iQXT
	2SyPaQzbH2pFIP3igcjexH3pcyrtjw0MhJBiKSfyz203DYjgZzrGdttDsgEHk92847AwvpE8r/v
	YXsbWcr0uy3TyrSFR7q6deWtl6tUEVSY=
X-Gm-Gg: ASbGnct5N1cIxCNXtJ2v2CoYy61eg4Ve9ncBh/ynndlINmOJVQ9LRW8pEoOS7pz4zSp
	HAEGZdy2qtB9IFwAIBLcpK7eIeNzU95XCRNdJMJd0FJaP5RhpdaAePbOVWHsbwVa4TYBoRGpLft
	tQJkjdhiVnNmrbtTHGGNydQdOZuUCx1/1vy6SCt6UytE17tRlB0Krp8ndYrv11TNO5vLynKFQwO
	z3I5gjhsLT5egtB
X-Google-Smtp-Source: AGHT+IHKx1vIJEtczLCUs3vrUB65kKa6tDRKDhVVVuY7mcwZrkQsNQYqLHQfkh1XPsFg6ssjVO5fLQIXXOmMsBMwge4=
X-Received: by 2002:ac2:4e01:0:b0:55b:5393:bb32 with SMTP id
 2adb3069b0e04-55caf37bd4cmr1576631e87.33.1754552336994; Thu, 07 Aug 2025
 00:38:56 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1753778926.git.mykola_kvach@epam.com> <45e670391c37ab54f721b6576a41ded2e543d6db.1753778926.git.mykola_kvach@epam.com>
 <2e43ded3-d14d-49f8-bf98-f3d58d0b39af@suse.com>
In-Reply-To: <2e43ded3-d14d-49f8-bf98-f3d58d0b39af@suse.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Thu, 7 Aug 2025 10:38:46 +0300
X-Gm-Features: Ac12FXzENTIOvUC_-kobFDIHWBUHMvWuVpSCa-16IyJxIrWtUNP4OgitmvWAiJQ
Message-ID: <CAGeoDV8QuaFHFg3_MaFdk_zsMCKVD0V6a55ut74HoLuQF3diJw@mail.gmail.com>
Subject: Re: [PATCH v7 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for guests
To: Jan Beulich <jbeulich@suse.com>
Cc: Mykola Kvach <mykola_kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, 
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Jan,

On Tue, Jul 29, 2025 at 12:11=E2=80=AFPM Jan Beulich <jbeulich@suse.com> wr=
ote:
>
> On 29.07.2025 10:52, Mykola Kvach wrote:
> > --- a/xen/common/domain.c
> > +++ b/xen/common/domain.c
> > @@ -1334,16 +1334,15 @@ int domain_shutdown(struct domain *d, u8 reason=
)
> >      return 0;
> >  }
> >
> > -void domain_resume(struct domain *d)
> > +#ifdef CONFIG_ARM
> > +void domain_resume_nopause(struct domain *d)
> > +#else
> > +static void domain_resume_nopause(struct domain *d)
> > +#endif
>
> #ifndef CONFIG_ARM
> static
> #endif
> void domain_resume_nopause(struct domain *d)
>
> to have as little redundancy as possible.

Okay, I=E2=80=99ll change it.

>
> >  {
> >      struct vcpu *v;
> >
> > -    /*
> > -     * Some code paths assume that shutdown status does not get reset =
under
> > -     * their feet (e.g., some assertions make this assumption).
> > -     */
> > -    domain_pause(d);
> > -
> > +    domain_lock(d);
>
> This addition of locking affects domain_resume() as well. Neither need no=
r
> correctness are discussed in the description. If the locking was really
> needed for domain_resume() as well, I suppose adding that would better be
> a separate change anyway.

Thanks for the review.

The locking was added to avoid potential races involving _VPF_suspended and
the suspend/resume logic.

Consider the case where domain_lock() is not used inside domain_resume():

Domain 1 initiates suspend via PSCI SYSTEM_SUSPEND. At the same time,
Domain 0 invokes resume for Domain 1.

Domain 0 calls xl resume, which leads to domain_resume(). Domain 1 acquires
domain_lock() as part of the suspend path. Then it acquires the shutdown
lock in domain_shutdown(). Domain 0 is blocked waiting for the shutdown
lock. When Domain 1 releases the shutdown lock, it sets _VPF_suspended and
modifies the VCPU context. Then Domain 0 clears _VPF_suspended.

At this point, ctxt_switch_from() might be called with _VPF_suspended
already cleared, and the VCPU context partially updated. For example, the
guest PC is set to the resume entry point, but some registers like TTBR or
SCTLR_EL1 are saved from the current hardware context by
ctxt_switch_from.

However, after reviewing the flow again, I think this kind of race could
still happen even with the lock in place. Imagine Domain 1 sets the flag
via SYSTEM_SUSPEND, and then Domain 0 clears it by resuming the domain
before the first context switch. This could still result in a partially
updated context with inconsistent state.

So it might be better to update the VCPU context at the point of resume
instead of doing it during suspend. I'll look into that further and also
check for other possible races if the update is moved.

>
> The addition of this locking is particularly interesting considering that
> ...
>
> >      spin_lock(&d->shutdown_lock);
>
> ... is what follows right after.
>
> > --- a/xen/include/xen/sched.h
> > +++ b/xen/include/xen/sched.h
> > @@ -814,6 +814,9 @@ void domain_destroy(struct domain *d);
> >  int domain_kill(struct domain *d);
> >  int domain_shutdown(struct domain *d, u8 reason);
> >  void domain_resume(struct domain *d);
> > +#ifdef CONFIG_ARM
> > +void domain_resume_nopause(struct domain *d);
> > +#endif
> >
> >  int domain_soft_reset(struct domain *d, bool resuming);
> >
> > @@ -1010,6 +1013,10 @@ static inline struct domain *next_domain_in_cpup=
ool(
> >  /* VCPU is parked. */
> >  #define _VPF_parked          8
> >  #define VPF_parked           (1UL<<_VPF_parked)
> > +/* VCPU is suspended. */
> > +#define _VPF_suspended       9
> > +#define VPF_suspended        (1UL<<_VPF_suspended)
>
> Irrespective of the style violations in pre-existing code, can you please
> not add further violations, by inserting the missing blanks?

Okay

>
> > +
> >
>
> Please also don't introduce double blank lines.

I'll remove it.

>
> Jan

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 07:49:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 07:49:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072603.1435608 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujvNZ-0007lQ-61; Thu, 07 Aug 2025 07:49:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072603.1435608; Thu, 07 Aug 2025 07:49: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 1ujvNZ-0007lJ-3Z; Thu, 07 Aug 2025 07:49:37 +0000
Received: by outflank-mailman (input) for mailman id 1072603;
 Thu, 07 Aug 2025 07:49:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ybbA=2T=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1ujvNW-0007lD-DC
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 07:49:35 +0000
Received: from mail-10631.protonmail.ch (mail-10631.protonmail.ch
 [79.135.106.31]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0e13b50f-7363-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 09:49:32 +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>
X-Inumbo-ID: 0e13b50f-7363-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1754552971; x=1754812171;
	bh=sK0q8LHiEeboW+yR7qN4ExejpcaZADbLso5ZIIG2rjI=;
	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=hJTVxqkrPLOJ2LxoYCrnM8MgTxBXhJzF/rYBZ4YdVFPMh/DGwG5V3NSbv98zdMs1D
	 mpxqhqp6qtTqQhP6NcsvF9G4LlRiuoApV4LdW0Rp5XFazY+ekHdUeMN16YLGnfNeaI
	 v1vfaZXWMO2EWpm/h+f9swAC4UysUWv/o0DboxpxJyRK1xKv26hzorbRKMheUvtXjv
	 FZhFyAPXTVWQx97/4N9SWvVTQhq8/4Jvkq0CWn4llGhsk82imFhmUzrfdKz47mGK/J
	 bZvj2cB4SbG9x3xFwBx3Sp+oFpdDJnLsI3eNxDS9wpr4GK9gCPedoZiC0WZBIXJshL
	 ERoVNb/WbcZ0w==
Date: Thu, 07 Aug 2025 07:49:26 +0000
To: =?utf-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, Doug Goldstein <cardoe@cardoe.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v1 1/2] CI: Add driver domains tests
Message-ID: <aJRagWBzU+FC7wvK@kraken>
In-Reply-To: <4595a5aaa66e8d26ff9851496624ceb9c734ee4c.1754525202.git-series.marmarek@invisiblethingslab.com>
References: <cover.a3ae44ad160fb5827451cd35aa8ebbd546cf3866.1754525202.git-series.marmarek@invisiblethingslab.com> <4595a5aaa66e8d26ff9851496624ceb9c734ee4c.1754525202.git-series.marmarek@invisiblethingslab.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: ad206df7e30e8103fec34f2a9a895287760e13bc
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Thu, Aug 07, 2025 at 02:06:49AM +0200, Marek Marczykowski-G=C3=B3recki w=
rote:
> Setup a simple two domU system. One with network backend, running
> xendriverdomain service, and one with frontend, trying to ping the
> backend.
>=20
> Contrary to other similar tests, use disk image instead of initrd, to
> allow bigger rootfs without adding more RAM (for both dom0 and domU).
> But keep using pxelinux as a bootloader as it's easier to setup than
> installing grub on the disk. Theoretically, it could be started via direc=
t
> kernel boot in QEMU, but pxelinux is slightly closer to real-world
> deployment.
>=20
> Signed-off-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingsl=
ab.com>
> ---
>  automation/gitlab-ci/test.yaml                  |   8 +-
>  automation/scripts/qemu-driverdomains-x86_64.sh | 116 +++++++++++++++++-
>  2 files changed, 124 insertions(+)
>  create mode 100755 automation/scripts/qemu-driverdomains-x86_64.sh
>=20
> diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.y=
aml
> index 1f0b27b2378a..5c4b2dc304b4 100644
> --- a/automation/gitlab-ci/test.yaml
> +++ b/automation/gitlab-ci/test.yaml
> @@ -656,6 +656,14 @@ qemu-alpine-x86_64-gcc:
>      - *x86-64-test-needs
>      - alpine-3.18-gcc
>=20
> +qemu-alpine-driverdomains-x86_64-gcc:
> +  extends: .qemu-x86-64
> +  script:
> +    - ./automation/scripts/qemu-driverdomains-x86_64.sh 2>&1 | tee ${LOG=
FILE}
> +  needs:
> +    - *x86-64-test-needs
> +    - alpine-3.18-gcc
> +
>  qemu-smoke-x86-64-gcc:
>    extends: .qemu-smoke-x86-64
>    script:
> diff --git a/automation/scripts/qemu-driverdomains-x86_64.sh b/automation=
/scripts/qemu-driverdomains-x86_64.sh
> new file mode 100755
> index 000000000000..1caaede7722e
> --- /dev/null
> +++ b/automation/scripts/qemu-driverdomains-x86_64.sh
> @@ -0,0 +1,116 @@
> +#!/bin/bash
> +
> +set -ex -o pipefail
> +
> +dom0_rootfs_extra_comp=3D()
> +dom0_rootfs_extra_uncomp=3D()
> +
> +cd binaries
> +
> +# DomU rootfs
> +
> +mkdir -p rootfs
> +cd rootfs
> +mkdir -p etc/local.d
> +passed=3D"ping test passed"
> +echo "#!/bin/bash
> +
> +set -x
> +
> +if grep -q test=3Dbackend /proc/cmdline; then
> +    brctl addbr xenbr0
> +    ip link set xenbr0 up
> +    ip addr add 192.168.0.1/24 dev xenbr0
> +    bash /etc/init.d/xendriverdomain start
> +    # log backend-related logs to the console
> +    tail -F /var/log/xen/xldevd.log /var/log/xen/xen-hotplug.log >>/dev/=
console 2>/dev/null &
> +else
> +    ip link set eth0 up
> +    ip addr add 192.168.0.2/24 dev eth0
> +    until ping -c 10 192.168.0.1; do

I would limit the number of iterations (60?), otherwise in the worst case t=
he
test will execute intil the test job timeout, which AFAIU is undesired if
anything goes wrong.

> +        sleep 1
> +    done
> +    echo \"${passed}\"
> +fi
> +
> +" > etc/local.d/xen.start

For the block generating xen.start: suggest switching to heredoc like for
pxelinux.0 config below, this way escaping will not be needed.

> +chmod +x etc/local.d/xen.start
> +zcat ../rootfs.cpio.gz | cpio -imd
> +zcat ../xen-tools.cpio.gz | cpio -imd
> +mkfs.ext4 -d . ../domU-rootfs.img 1024M
> +cd ..
> +rm -rf rootfs
> +
> +# Dom0 rootfs
> +mkdir -p rootfs
> +cd rootfs
> +zcat ../rootfs.cpio.gz | cpio -imd
> +zcat ../xen-tools.cpio.gz | cpio -imd
> +mkdir -p root etc/local.d
> +echo "name=3D\"backend\"
> +memory=3D512
> +vcpus=3D1
> +kernel=3D\"/root/bzImage\"
> +extra=3D\"console=3Dhvc0 root=3D/dev/xvda net.ifnames=3D0 test=3Dbackend=
\"
> +disk=3D[ '/root/domU-rootfs-b.img,raw,xvda,rw' ]
> +" > root/backend.cfg
> +echo "name=3D\"frontend\"
> +memory=3D512
> +vcpus=3D1
> +kernel=3D\"/root/bzImage\"
> +extra=3D\"console=3Dhvc0 root=3D/dev/xvda net.ifnames=3D0 test=3Dfronten=
d\"
> +disk=3D[ '/root/domU-rootfs-f.img,raw,xvda,rw' ]
> +vif=3D[ 'bridge=3Dxenbr0,backend=3Dbackend' ]
> +" > root/frontend.cfg

.. and heredoc here ^^ ?

> +echo "#!/bin/bash
> +
> +set -x
> +
> +bash /etc/init.d/xencommons start
> +
> +xl list
> +
> +tail -F /var/log/xen/console/guest-backend.log 2>/dev/null | sed -e \"s/=
^/(backend) /\" &
> +tail -F /var/log/xen/console/guest-frontend.log 2>/dev/null | sed -e \"s=
/^/(frontend) /\" &
> +xl -vvv create /root/backend.cfg
> +xl -vvv create /root/frontend.cfg
> +" > etc/local.d/xen.start

.. and heredoc here ^^ ?

> +chmod +x etc/local.d/xen.start
> +
> +cp ../domU-rootfs.img ./root/domU-rootfs-b.img
> +cp ../domU-rootfs.img ./root/domU-rootfs-f.img
                                            ^
Perhaps use "backend" and "frontend" suffixes for clarify?

> +cp ../bzImage ./root/
> +mkdir -p etc/default
> +echo 'XENCONSOLED_TRACE=3Dall' >> etc/default/xencommons
> +mkdir -p var/log/xen/console
> +mkfs.ext4 -d . ../dom0-rootfs.img 2048M
> +cd ..
> +rm -rf rootfs
> +
> +cd ..
> +
> +cat >> binaries/pxelinux.0 << EOF
> +#!ipxe
> +
> +kernel xen console=3Dcom1 console_timestamps=3Dboot
> +module bzImage console=3Dhvc0 root=3D/dev/sda net.ifnames=3D0
> +boot
> +EOF
> +
> +# Run the test
> +rm -f smoke.serial
> +export TEST_CMD=3D"qemu-system-x86_64 \
> +    -cpu qemu64,+svm \
> +    -m 2G -smp 2 \
> +    -monitor none -serial stdio \
> +    -nographic \
> +    -device virtio-net-pci,netdev=3Dn0 \
> +    -netdev user,id=3Dn0,tftp=3Dbinaries,bootfile=3D/pxelinux.0 \
> +    -drive file=3Dbinaries/dom0-rootfs.img,format=3Draw"
> +
> +export TEST_LOG=3D"smoke.serial"
> +export BOOT_MSG=3D"Latest ChangeSet: "
> +export LOG_MSG=3D"Domain-0"
> +export PASSED=3D"$passed"
> +
> +./automation/scripts/console.exp | sed 's/\r\+$//'
> --
> git-series 0.9.1
>=20



From xen-devel-bounces@lists.xenproject.org Thu Aug 07 07:56:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 07:56:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072611.1435619 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujvTq-00017p-Pk; Thu, 07 Aug 2025 07:56:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072611.1435619; Thu, 07 Aug 2025 07:56: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 1ujvTq-00017i-M7; Thu, 07 Aug 2025 07:56:06 +0000
Received: by outflank-mailman (input) for mailman id 1072611;
 Thu, 07 Aug 2025 07:56:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=LYnK=2T=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ujvTp-00017c-BZ
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 07:56:05 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f402f71a-7363-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 09:55:58 +0200 (CEST)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-458b885d6eeso3981635e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 00:55:58 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459dc7e1ddesm156656235e9.27.2025.08.07.00.55.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Aug 2025 00:55: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>
X-Inumbo-ID: f402f71a-7363-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754553358; x=1755158158; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=nEMcmnpHrFAOesTiTDli2fYT6swwWQr5YYAZmRyFD9o=;
        b=T8x3DYD/Blt+h/udVJ9Y3MwqXx1USoWlhn8cgvA5uCdyJOsfdsxuwxqrT7ywkZzi3/
         WdUhZ9FRV8perRdZaip0ZjnMvPQ0qEFl0wjYmOqX/UxQRC3WR5QEpJof9lhXfKykFagD
         DYgk5RhUCU5TzjXEkLAYnPl2uhB86uADVmiQE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754553358; x=1755158158;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nEMcmnpHrFAOesTiTDli2fYT6swwWQr5YYAZmRyFD9o=;
        b=A2qQWdphVm/o9ebiJ/WOl3Z143SUlyBkDQh06xPaFD2h58duwATsWmvoKw7Apezjsz
         POkP5ori//4p84MqCnQFKFbtJ691DfcAHe5zBegVVAA6ujOt+eWUcFrlvoAo5+vMAGwR
         QLPXSVkqvPKw/odhy28zUJHKZGTVGGnLrdzdfx3Gj/QnUhL2RlL0RxYMHgwGkEVNoMUq
         2W658Pqq3i5/w6X+g8VSYUmtxD4XpjcT3nkIwYH/RC+EKvts4MRb/sWlJvfIeJo+u5Pf
         8QOdahJR4JZ/AjbpOCZtDfJol5AqqnU/2QSQFW3+b11yJ5dPsA8pUYvhNc/CVlgdaGHD
         VUXA==
X-Forwarded-Encrypted: i=1; AJvYcCVR6hF5Jic+rNh8sA+pm/4t6a+y7h//VF0AliAjfDqhhvd8mPQ2kBm8g+DmazGHucFnlRVca4BqUXM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzoU2A52QufMNWsIECS0DVJP0RtvYkHHHiIGIYxNah8vmZySHAk
	wTptrT7r/yKMH1gwymoGF9SqhtaaTfPw6nAHTLlIaGe3Sxzad2780ZNvwOUalWf7BLc=
X-Gm-Gg: ASbGncuFKTUyRw1kfUoGMHQcsqzwlSxRFcMl52vtaGEy3ssHgEs3Vadk8PxqFczTe+a
	d/kpqBe9a+6GH1R1moQNO8kJ+Pjv82C/TrInqBOvXi5joz0gUeMv0i98b8JVO9C6qifBL+S4C7v
	4xUPeANqlTrER1svdPuiOZiTwyxh5z302uTM8ec12CAR69avkCTQa8a7/E743UXUQ7KuraCT6UA
	9JdeuVwqQmjvVfq0dKNb1ydU80mXLfnEWZDrkIwhHoB10DsMW29aDaJpzpBt8NjXbd+fsLFPYiZ
	TQnkFgyVu3dtK9rIrqRWhloZvVsHzSePPip2affjNYt9M8YlHOaaFNfERQarjtz9xEdKm6OTz3U
	JtSIaO6Y1MLlCS6bXWd7z5XHf/4+7x8BmPyJ4oX7Lqvl9sUM1KGWKRDdqZxXD0CCj9G8d
X-Google-Smtp-Source: AGHT+IH5rIaExvGkg3p7reLEuIRzx2faKnmmL/I1kd8IbrVMTTyRYvXbEucR+loO3+IC+qNP90cQNA==
X-Received: by 2002:a05:600c:5494:b0:458:bb0e:4181 with SMTP id 5b1f17b1804b1-459e7090fefmr58141465e9.10.1754553357712;
        Thu, 07 Aug 2025 00:55:57 -0700 (PDT)
Message-ID: <461423ec-9c34-4df6-a073-d1e4c78badad@citrix.com>
Date: Thu, 7 Aug 2025 08:55:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH test-artifacts] Add debian rootfs artifact
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20250807000318.2284283-1-marmarek@invisiblethingslab.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: <20250807000318.2284283-1-marmarek@invisiblethingslab.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 07/08/2025 1:03 am, Marek Marczykowski-GÃ³recki wrote:
> Will be used as dom0/domU in some tests.
>
> Install OpenRC and setup it to start /etc/local.d/ scripts so tests
> don't need different cases for Alpine and Debian.

(Yeah, I got this via CC.)

I was just thinking that we needed some non-Alpine testing too, but for
a different reason.

We have systemd configuration in Xen, and changes to it, yet no CI of
what is the most common init system in Linux these days.

What would need to be different in tests to avoid OpenRC?Â  If it's only
the script to start the test running, can't we just declare a name, and
arrange for both init systems to run it?

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 08:27:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 08:27:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072624.1435629 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujvyP-00069s-7l; Thu, 07 Aug 2025 08:27:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072624.1435629; Thu, 07 Aug 2025 08:27: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 1ujvyP-00069l-59; Thu, 07 Aug 2025 08:27:41 +0000
Received: by outflank-mailman (input) for mailman id 1072624;
 Thu, 07 Aug 2025 08:27:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gbW2=2T=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1ujvyN-00069f-Ix
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 08:27:39 +0000
Received: from mail-lj1-x234.google.com (mail-lj1-x234.google.com
 [2a00:1450:4864:20::234])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 60b2cf19-7368-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 10:27:38 +0200 (CEST)
Received: by mail-lj1-x234.google.com with SMTP id
 38308e7fff4ca-32f1df58f21so6895341fa.3
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 01:27: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>
X-Inumbo-ID: 60b2cf19-7368-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754555258; x=1755160058; 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=jtv+JxdkS+63tTGNkrdTuMT64L+UXlB58/fwidzlR+c=;
        b=nUN7R5vqgmMh3STNIKmGG+j6Arca135fHLNHSjXjoXSKr8kzMrP+70z7/AbNGWEpqS
         Lf36o5j4El/Rg2qLSOipFLs/6j/oGQKVPrSbbPvNSfrQecaCCMWxC2PU4J5x+QEJeT3z
         h2XmyWR3G0HkDCr4UE/I6E67MJPudD6mQl3kIacf22ZKtzCa06i2IkNkMvqmzGUynj8K
         t6KR6amSJI4qwiwpWLLbWRFiHBRVpjLN8h0skug6pQX1IPjoCNmHqTfvCe7d/j6YXTqZ
         60qmA8kml4QLOTC8uGLTi+GqdFRq9YGti15Yu9udPRPSKJm9M4W5XJjBDI2Vre8EByzO
         45aA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754555258; x=1755160058;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=jtv+JxdkS+63tTGNkrdTuMT64L+UXlB58/fwidzlR+c=;
        b=bSQudfYVgcJ/rT5+Gqpcm17sWaoq8091axgGdJiFT2HGuOSB8lC9SfmghMR8pOS17r
         e9Jhz4AnJnHNMnXjUFOmSNR2f4bLqzMS1M92dqpPFZvl/qcc1B35wPA4BCJYrT9w/tcD
         9tDvVmm9BFAkg8Hmc0vZ+qcNZZjHVYclEFw04md7f5VRKbOI8PSMn20cZyR+k42/Nj/f
         ueeWugYsiMDGeaWflOUokmvJa6RvLI4/vTJzyxxjfkQKgfKCdErp21Bwzxjlf8pR+tdy
         knNv+jrgmcbF0/2d4aYfHv/jp+fAPvnUedn3+l5yhdUjN69eGp3Xsf2S7OZcLsObCezT
         vLTw==
X-Forwarded-Encrypted: i=1; AJvYcCU9rZ6Lb23Sh+zCY9memGNfBkLiiwgbpYvFsdxrYfPjxrAd8TSjBwA8qA7fVDO6EFUZMg8njsUl6Ak=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yygqfwbq+SWPnGbzhfF8iJoMrfaCZX/kVs13L1+b+Q/eHvD/9hs
	OmxlOwQU6bqns5jQlAutEYYKiW4cddWU30bJu1IH9kLV4Gpl3Qo15MVOph0o7jdV9t51GI+ex/H
	GZpeGtaH1awlY2Mcdcn2LfJ8TV1BMuLQ/zv6r
X-Gm-Gg: ASbGnctJDczC1hnjisbzXoKmRilz38hOMInQUr9AfeTz9hhaixgmVyFwGk1s00oM41O
	7//qihqhjJhON0AZXHtagcYZ7GQ0H/8VtXRKJ8ol00wKNU91wnB0acWRdgKPhtEbBqDnR8zkuxP
	zA/Jjqs1QLteQXYjunnkbd0JmQTPEFjB6+2mwVKrg/PHj0tnxKSmnRgKIOF0SKmlZthnG9U8Eoi
	lFBRw==
X-Google-Smtp-Source: AGHT+IEon4C7yWCpWG9PQrdbkv5d1Lw6wXwNZeL7n+WwjjylefKdtiGDAkhJOrJ8GJUmSuwgHghvYwCwYJzgy723prU=
X-Received: by 2002:a05:651c:20da:10b0:331:eb47:69fc with SMTP id
 38308e7fff4ca-333814148c4mr11944131fa.29.1754555257696; Thu, 07 Aug 2025
 01:27:37 -0700 (PDT)
MIME-Version: 1.0
References: <034559c3324e137285065b12642cbf58b7ab5f58.1753727619.git.mykola_kvach@epam.com>
 <721201b5-323d-49ec-986c-f793627929dd@suse.com> <CAGeoDV-HwPb6g46GxfEeir6BRf8WbqS0qCr5UobkKwVE6oxb=g@mail.gmail.com>
In-Reply-To: <CAGeoDV-HwPb6g46GxfEeir6BRf8WbqS0qCr5UobkKwVE6oxb=g@mail.gmail.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Thu, 7 Aug 2025 11:27:26 +0300
X-Gm-Features: Ac12FXzU3HctvGXG69_K-Sx1eBQcvnV_gcS7tgsg3zN_ZhXgdFSy_aN0emtnsak
Message-ID: <CAGeoDV8LZ_JaK2TJFMJS+U04tuFnbFAmB-UAtYJROOui=cih7g@mail.gmail.com>
Subject: Re: [PATCH] xen/domctl: add domain_lock in XEN_DOMCTL_setvcpucontext
To: Jan Beulich <jbeulich@suse.com>
Cc: Mykola Kvach <mykola_kvach@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
	Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, 
	Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, Aug 7, 2025 at 8:47=E2=80=AFAM Mykola Kvach <xakep.amatop@gmail.com=
> wrote:
>
> Hi Jan,
>
> On Tue, Jul 29, 2025 at 10:56=E2=80=AFAM Jan Beulich <jbeulich@suse.com> =
wrote:
> >
> > On 28.07.2025 20:40, Mykola Kvach wrote:
> > > From: Mykola Kvach <mykola_kvach@epam.com>
> > >
> > > Add domain_{lock,unlock} in the XEN_DOMCTL_setvcpucontext operation
> > > for protecting arch_set_info_guest.
> > >
> > > This aligns with the locking pattern used by other operations that
> > > modify vCPU state.
> > >
> > > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> >
> > I think this requires more of a description / justification. May I in
> > particular turn your attention to this comment that we have in x86'es
> > handling of HVM_PARAM_IDENT_PT (disregard the 1st sentence for the
> > purpose here):
> >
> >         /*
> >          * Update GUEST_CR3 in each VMCS to point at identity map.
> >          * All foreign updates to guest state must synchronise on
> >          * the domctl_lock.
> >          */
> >         rc =3D -ERESTART;
> >         if ( !domctl_lock_acquire(d) )
> >             break;
> >
> > IOW in particular I'd expect you to explain why holding the domctl
> > lock isn't sufficient here, and hence what (theoretical?) race it is
> > you're concerned about. That may in turn clarify whether a Fixes: tag
> > would actually be appropriate here.
>
> For example, on ARM systems, we bring up vCPUs via PSCI. At the same time=
,
> from another domain, XEN_DOMCTL_setvcpucontext may be called. In the PSCI
> path, access is protected by domain_lock, but domain_pause alone is not
> sufficient to prevent races during modification of the vCPU context from
> XEN_DOMCTL_setvcpucontext.

Sorry, we don't need any extra locking here, because domain_pause
performs vCPU blocking synchronously. It waits until the vCPU becomes
non-runnable, and only after that the context is updated.

So this patch isn't needed.

>
> >
> > Jan
> >
> > > --- a/xen/common/domctl.c
> > > +++ b/xen/common/domctl.c
> > > @@ -392,7 +392,9 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_=
t) u_domctl)
> > >          if ( ret =3D=3D 0 )
> > >          {
> > >              domain_pause(d);
> > > +            domain_lock(d);
> > >              ret =3D arch_set_info_guest(v, c);
> > > +            domain_unlock(d);
> > >              domain_unpause(d);
> > >
> > >              if ( ret =3D=3D -ERESTART )
> >
>
> Best regards,
> Mykola


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 08:43:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 08:43:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072636.1435639 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujwDY-0000hR-HC; Thu, 07 Aug 2025 08:43:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072636.1435639; Thu, 07 Aug 2025 08:43:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujwDY-0000hK-Dm; Thu, 07 Aug 2025 08:43:20 +0000
Received: by outflank-mailman (input) for mailman id 1072636;
 Thu, 07 Aug 2025 08:43:19 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oMMd=2T=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1ujwDX-0000hE-3Y
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 08:43:19 +0000
Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com
 [2a00:1450:4864:20::635])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9067c58f-736a-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 10:43:17 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-af9180a11bcso156328766b.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 01:43:17 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a076724sm1255969766b.23.2025.08.07.01.43.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Aug 2025 01:43: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>
X-Inumbo-ID: 9067c58f-736a-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754556197; x=1755160997; darn=lists.xenproject.org;
        h=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=7RqvFjCM2NDqqed3L4SquP7fLKhf9Kfwsc1lYa0G0gE=;
        b=NglBaWNCe2GoIkuZzsQdUzUU7U3R7q0cg0x7pt3vstE0ajQPtVKnWFfxaXQQWxo3cM
         4XvBbwXNBtz7bjVOfDTlN/fdmlnHWor+cjgwfwkn0iIXEj/1YK2aUOwIHy6iFuzMsZBs
         TDX5F6UGQ9g0Fi70KsV14dqTYbyE35JX94UnTcEGICO1yEMRb3ZPGSEMjGP+cUrtfDTa
         Zwd1wOnyOqCjZxxJCvVJCFY4nx9nLV3vF41Ds2dlFXXFbZZD8UsBHH93zGY8Blfk2yrx
         4PcWUav5MSNMU/WtM81Ja4ceECnX8VTA9LRXfF5JJweNaXLjNZpLcpsiyD8jcfFbJo3a
         Y/rg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754556197; x=1755160997;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=7RqvFjCM2NDqqed3L4SquP7fLKhf9Kfwsc1lYa0G0gE=;
        b=iGsW+5DIo41fmvHhNcHTfkpN4C/XW7TFS8Ip3dK5KRrkg7GmLkeKnQwKZvJ1f4vloS
         zQNJVWSMgbOTVYFmqVBOl1Ee5P3semJ31PyUCxV6ir2OSDugtRis87he9Kp2fgK6ARQi
         002J1QgsW5Zqzystd9BCcldH8nvvWhaaJ5P910QDOTelXqBv4c8qeHjKUtRXMkCEBExB
         ooo4qSt9K+cwxwVcnRIGU2k9eU1EjJd0rbDbhpTKPk6WxIX1kW6vD8KrdeZkK18brCow
         0yUu6ohFxK3pidCGLcJDwuaHGYrqTYg6pyrVU1cwC+a+r7YzVtV9xhpvbbKIuLyw5MGN
         KcRQ==
X-Forwarded-Encrypted: i=1; AJvYcCW1kLa5PY/4VZwKFjE7Xz+kEXiswEmybzd2ioTIhc5rOq3lxiI5ThAVCuZdSPkCf5pi2nvj1G6FfA8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YycVsjx4x9im1pKTAJVlTefzt66e14sI/8ABWXOq5H7Jg86WjYI
	7xI8S5c40O+w5sXMeu4cse8D3odyna637TCmZvc009fj7EfQykY03RhP
X-Gm-Gg: ASbGncsocKZuDyeDeatt1UXIPRgVygrj+6IH3jkRqMdIyrpeUL32FCg5oZc/qeFRDl9
	hDm56snXSYnFseOh6FXCiy5wZdCO4f4SYJQHfEYeWUbOLVSGywyVi4YZQUTsgxLznvDZ58ECBnx
	BRfBLcORQWvDGzw8uQlsaMhuAegEBxD7TQcdUpPZyWtFTm/ZunPYUa4fUQyrfHDSASaRDRgulVa
	dsduqopzgWX1REjsNrmJuf+rKK18+/NeMgTvZlDSXxl7yyP4SPL3tTlnMhPeRVYvLWe1Sfu0caD
	x+coSaBQwA/wfPtrHSpOsnfOroFk6+cWJE1vsP15rUbSAxJitUIRz3lSFo1AEb+wgPrTaVJih8K
	6a2RBwjKfQoYeBzOrSfu39TW9/cz20E1pzPDWudlQ0hEvIyXSVHYQkCXvGuKW75MALsDEypw=
X-Google-Smtp-Source: AGHT+IElBqpK52T+grYSN+cVh03ZeJF7KIbiuJyVXnWzeZIYNPLprV0dRt3dMSZvDwDwnBF7nbP1qQ==
X-Received: by 2002:a17:907:94c8:b0:af9:5f2a:6f5b with SMTP id a640c23a62f3a-af9a3c9accemr231805166b.9.1754556196635;
        Thu, 07 Aug 2025 01:43:16 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------fD8N5IalILLFp4Wq7DTsS7xq"
Message-ID: <e868dc1f-4492-4203-a0c6-c008f11e6f74@gmail.com>
Date: Thu, 7 Aug 2025 10:43:13 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 03/20] xen/riscv: introduce VMID allocation and
 manegement
To: Demi Marie Obenour <demiobenour@gmail.com>,
 Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <d61f5f831ac8045055a1775ee710d4f2fe8dcc26.1753973161.git.oleksii.kurochko@gmail.com>
 <cd1a0c64-49d7-4ae1-8dec-b3b1de3f1d09@suse.com>
 <bcf4c3aa-5c09-4171-a4f5-85110d6e634f@gmail.com>
 <6ddee574-6fe2-4de7-b000-a3af0b2c9d12@suse.com>
 <cc6bb8a7-ed22-4d3e-a352-fa305f0ea56a@gmail.com>
 <14e1c224-c648-41bb-97c6-ec63596bd38b@gmail.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <14e1c224-c648-41bb-97c6-ec63596bd38b@gmail.com>

This is a multi-part message in MIME format.
--------------fD8N5IalILLFp4Wq7DTsS7xq
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 8/6/25 6:50 PM, Demi Marie Obenour wrote:
> On 8/6/25 12:24, Oleksii Kurochko wrote:
>> On 8/6/25 2:05 PM, Jan Beulich wrote:
>>> On 06.08.2025 13:33, Oleksii Kurochko wrote:
>>>> On 8/4/25 5:19 PM, Jan Beulich wrote:
>>>>> On 31.07.2025 17:58, Oleksii Kurochko wrote:
>>>>>> @@ -148,6 +149,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
>>>>>>     
>>>>>>         console_init_postirq();
>>>>>>     
>>>>>> +    vmid_init();
>>>>> This lives here only temporarily, I assume? Every hart will need to execute
>>>>> it, and hence (like we have it on x86) this may want to be a central place
>>>>> elsewhere.
>>>> I havenâ€™t checked how it is done on x86; I probably should.
>>>>
>>>> I planned to call it for each hart separately during secondary hart bring-up,
>>>> since accessing the|hgatp| register of a hart is required to detect|VMIDLEN|.
>>>> Therefore,|vmid_init()| should be called for secondary harts when their
>>>> initialization code starts executing.
>>> But is this going to be the only per-hart thing that will need doing? Otherwise
>>> the same larger "container" function may want calling instead.
>> Yes, it is going to be the only per-hart operation.
>>
>> There is|__cpu_up()| (not yet upstreamed [1]), which calls
>> |sbi_hsm_hart_start(hartid, boot_addr, hsm_data)| to start a hart, and I planned
>> to place|vmid_init()| somewhere in the code executed at|boot_addr|.
>>
>> [1]https://gitlab.com/xen-project/people/olkur/xen/-/blob/latest/xen/arch/riscv/smpboot.c#L40
>>
>>>>>> +{
>>>>>> +    unsigned long vmid_bits;
>>>>> Why "long" (also for the function return type)?
>>>> Because csr_read() returns unsigned long as HGATP register has
>>>> 'unsigned long' length.
>>> Oh, right, I should have commented on the function return type only.
>>> Yet then I also can't resist stating that this kind of use of a variable,
>>> which initially is assigned a value that doesn't really fit its name, is
>>> easily misleading towards giving such comments.
>>>
>>>> But it could be done in this way:
>>>>        csr_write(CSR_HGATP, old | HGATP_VMID_MASK);
>>>>        vmid_bits =  MASK_EXTR(csr_read(CSR_HGATP), HGATP_VMID_MASK);
>>>>        vmid_bits = ffs_g(vmid_bits);
>>>>        csr_write(CSR_HGATP, old);
>>>> And then use uint16_t for vmid_bits and use uin16_t as a return type.
>>> Please check ./CODING_STYLE again as to the use of fixed-width types.
>> I meant unsigned short, uint16_t was just short to write. I'll try to be
>> more specific.
>>
>>>>>> +    unsigned long old;
>>>>>> +
>>>>>> +    /* Figure-out number of VMID bits in HW */
>>>>>> +    old = csr_read(CSR_HGATP);
>>>>>> +
>>>>>> +    csr_write(CSR_HGATP, old | HGATP_VMID_MASK);
>>>>>> +    vmid_bits = csr_read(CSR_HGATP);
>>>>>> +    vmid_bits =  MASK_EXTR(vmid_bits, HGATP_VMID_MASK);
>>>>> Nit: Stray blank.
>>>>>
>>>>>> +    vmid_bits = flsl(vmid_bits);
>>>>>> +    csr_write(CSR_HGATP, old);
>>>>>> +
>>>>>> +    /*
>>>>>> +     * We polluted local TLB so flush all guest TLB as
>>>>>> +     * a speculative access can happen at any time.
>>>>>> +     */
>>>>>> +    local_hfence_gvma_all();
>>>>> There's no guest running. If you wrote hgat.MODE as zero, as per my
>>>>> understanding now new TLB entries could even purely theoretically appear.
>>>> It could be an issue (or, at least, it is recommended) when hgatp.MODE is
>>>> changed:
>>>>     If hgatp.MODE is changed for a given VMID, an HFENCE.GVMA with rs1=x0
>>>>     (and rs2 set to either x0 or the VMID) must be executed to order subsequent
>>>>     guest translations with the MODE changeâ€”even if the old MODE or new MODE
>>>>     is Bare.
>>>> On other hand it is guaranteed that, at least, on Reset (and so I assume
>>>> for power on) that:
>>>>     If the hypervisor extension is implemented, the hgatp.MODE and vsatp.MODE
>>>>     fields are reset to 0.
>>>>
>>>> So it seems like if no guest is ran then there is no need even to write
>>>> hgatp.MODE as zero, but it might be sense to do that explicitly just to
>>>> be sure.
>>>>
>>>> I thought it was possible to have a running guest and perform a CPU hotplug.
>>> But that guest will run on another hart.
>>>
>>>> In that case, I expect that during the hotplug,|vmidlen_detect()| will be
>>>> called and return the|vmid_bits| value, which is used as the active VMID.
>>>> At that moment, the local TLB could be speculatively polluted, I think.
>>>> Likely, it makes sense to call vmidlen_detect() only once for each hart
>>>> during initial bringup.
>>> That may bring you more problems than it solves. You'd need to stash away
>>> the value originally read somewhere. And that somewhere isn't per-CPU data.
>>>
>>>>> In fact, with no guest running (yet) I'm having a hard time seeing why
>>>>> you shouldn't be able to simply write the register with just
>>>>> HGATP_VMID_MASK, i.e. without OR-ing in "old". It's even questionable
>>>>> whether "old" needs restoring; writing plain zero afterwards ought to
>>>>> suffice. You're in charcge of the register, after all.
>>>> It make sense (but I don't know if it is a possible case) to be sure that
>>>> HGATP.MODE remains the same, so there is no need to have TLB flush. If
>>>> HGATP.MODE is changed then it will be needed to do TLB flush as I mentioned
>>>> above.
>>>>
>>>> If we agreed to keep local_hfence_gvma_all() then I think it isn't really
>>>> any sense to restore 'old' or OR-ing it with HGATP_VMID_MASK.
>>>>
>>>> Generally if 'old' is guaranteed to be zero (and, probably, it makes sense
>>>> to check that in vmidlen_detect() and panic if it isn't zero) and if
>>>> vmidlen_detect() function will be called before any guest domain(s) will
>>>> be ran then I could agree that we don't need local_hfence_gvma_all() here.
>>>>
>>>> As an option we can do local_hfence_gvma_all() only if 'old' value wasn't
>>>> set to zero.
>>>>
>>>> Does it make sense?
>>> Well - I'd like the pre-conditions to be understood better. For example, can
>>> a hart really speculate into guest mode, when the hart is only in the
>>> process of being brought up?
>> I couldn't explicit words that a hart can't speculate into guest mode
>> either on bring up or during its work.
>>
>> But there are some moments in the spec which tells:
>>     Implementations with virtual memory are permitted to perform address
>>     translations speculatively and earlier than required by an explicit
>>     memory access, and are permitted to cache them in address translation
>>     cache structuresâ€”including possibly caching the identity mappings from
>>     effective address to physical address used in Bare translation modes and
>>     M-mode.
>> And here:
>>     Implementations may also execute the address-translation algorithm
>>     speculatively at any time, for any virtual address, as long as satp is
>>     active (as defined in Section 10.1.11). Such speculative executions have
>>     the effect of pre-populating the address-translation cache.
>> Where it is explicitly mentioned that speculation can happen in *any time*.
>> And at the same time:
>>     Speculative executions of the address-translation algorithm behave as
>>     non-speculative executions of the algorithm do, except that they must
>>     not set the dirty bit for a PTE, they must not trigger an exception,
>>     and they must not create address-translation cache entries if those
>>     entries would have been invalidated by any SFENCE.VMA instruction
>>     executed by the hart since the speculative execution of the algorithm began.
>> What I read as if TLB was empty before it will stay empty.
> I read that as "flushing the TLB invalidates entries created by speculative
> execution before the TLB flush".

But this part:
   they must not create address-translation cache entries if those entries
   would have been invalidated by any SFENCE.VMA instruction

Doesn't it mean that entries which was invalidated by SFENCE.VMA can't be
inserted into the TLB during speculative execution?

So, if the speculative page walk started before|SFENCE.VMA|,|SFENCE.VMA|
indicates: â€œAll previous TLB entries might be invalid". Therefore, any
speculative TLB entry/that started before/ must*not* be inserted into the
TLB afterward.

So, hardware tracks if a|SFENCE.VMA| occurred/after/ speculation started.
If so, any speculative address translations must be*discarded* or
*not committed*.

>    That is the bare minimum needed for TLB
> flushing to work.  You have to do the TLB flush *after* changing the PTEs,
> not before.
>
> This is true on at least x86 but I expect it to hold in general.

Agree with that.

~ Oleksii

--------------fD8N5IalILLFp4Wq7DTsS7xq
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/6/25 6:50 PM, Demi Marie Obenour
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:14e1c224-c648-41bb-97c6-ec63596bd38b@gmail.com">
      <pre wrap="" class="moz-quote-pre">On 8/6/25 12:24, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">
On 8/6/25 2:05 PM, Jan Beulich wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">On 06.08.2025 13:33, Oleksii Kurochko wrote:
</pre>
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">On 8/4/25 5:19 PM, Jan Beulich wrote:
</pre>
            <blockquote type="cite">
              <pre wrap="" class="moz-quote-pre">On 31.07.2025 17:58, Oleksii Kurochko wrote:
</pre>
              <blockquote type="cite">
                <pre wrap="" class="moz-quote-pre">@@ -148,6 +149,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
   
       console_init_postirq();
   
+    vmid_init();
</pre>
              </blockquote>
              <pre wrap="" class="moz-quote-pre">This lives here only temporarily, I assume? Every hart will need to execute
it, and hence (like we have it on x86) this may want to be a central place
elsewhere.
</pre>
            </blockquote>
            <pre wrap="" class="moz-quote-pre">I havenâ€™t checked how it is done on x86; I probably should.

I planned to call it for each hart separately during secondary hart bring-up,
since accessing the|hgatp| register of a hart is required to detect|VMIDLEN|.
Therefore,|vmid_init()| should be called for secondary harts when their
initialization code starts executing.
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">But is this going to be the only per-hart thing that will need doing? Otherwise
the same larger "container" function may want calling instead.
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
Yes, it is going to be the only per-hart operation.

There is|__cpu_up()| (not yet upstreamed [1]), which calls
|sbi_hsm_hart_start(hartid, boot_addr, hsm_data)| to start a hart, and I planned
to place|vmid_init()| somewhere in the code executed at|boot_addr|.

[1]<a class="moz-txt-link-freetext" href="https://gitlab.com/xen-project/people/olkur/xen/-/blob/latest/xen/arch/riscv/smpboot.c#L40">https://gitlab.com/xen-project/people/olkur/xen/-/blob/latest/xen/arch/riscv/smpboot.c#L40</a>

</pre>
        <blockquote type="cite">
          <blockquote type="cite">
            <blockquote type="cite">
              <blockquote type="cite">
                <pre wrap="" class="moz-quote-pre">+{
+    unsigned long vmid_bits;
</pre>
              </blockquote>
              <pre wrap="" class="moz-quote-pre">Why "long" (also for the function return type)?
</pre>
            </blockquote>
            <pre wrap="" class="moz-quote-pre">Because csr_read() returns unsigned long as HGATP register has
'unsigned long' length.
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">Oh, right, I should have commented on the function return type only.
Yet then I also can't resist stating that this kind of use of a variable,
which initially is assigned a value that doesn't really fit its name, is
easily misleading towards giving such comments.

</pre>
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">But it could be done in this way:
      csr_write(CSR_HGATP, old | HGATP_VMID_MASK);
      vmid_bits =  MASK_EXTR(csr_read(CSR_HGATP), HGATP_VMID_MASK);
      vmid_bits = ffs_g(vmid_bits);
      csr_write(CSR_HGATP, old);
And then use uint16_t for vmid_bits and use uin16_t as a return type.
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">Please check ./CODING_STYLE again as to the use of fixed-width types.
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
I meant unsigned short, uint16_t was just short to write. I'll try to be
more specific.

</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">
</pre>
          <blockquote type="cite">
            <blockquote type="cite">
              <blockquote type="cite">
                <pre wrap="" class="moz-quote-pre">+    unsigned long old;
+
+    /* Figure-out number of VMID bits in HW */
+    old = csr_read(CSR_HGATP);
+
+    csr_write(CSR_HGATP, old | HGATP_VMID_MASK);
+    vmid_bits = csr_read(CSR_HGATP);
+    vmid_bits =  MASK_EXTR(vmid_bits, HGATP_VMID_MASK);
</pre>
              </blockquote>
              <pre wrap="" class="moz-quote-pre">Nit: Stray blank.

</pre>
              <blockquote type="cite">
                <pre wrap="" class="moz-quote-pre">+    vmid_bits = flsl(vmid_bits);
+    csr_write(CSR_HGATP, old);
+
+    /*
+     * We polluted local TLB so flush all guest TLB as
+     * a speculative access can happen at any time.
+     */
+    local_hfence_gvma_all();
</pre>
              </blockquote>
              <pre wrap="" class="moz-quote-pre">There's no guest running. If you wrote hgat.MODE as zero, as per my
understanding now new TLB entries could even purely theoretically appear.
</pre>
            </blockquote>
            <pre wrap="" class="moz-quote-pre">It could be an issue (or, at least, it is recommended) when hgatp.MODE is
changed:
   If hgatp.MODE is changed for a given VMID, an HFENCE.GVMA with rs1=x0
   (and rs2 set to either x0 or the VMID) must be executed to order subsequent
   guest translations with the MODE changeâ€”even if the old MODE or new MODE
   is Bare.
On other hand it is guaranteed that, at least, on Reset (and so I assume
for power on) that:
   If the hypervisor extension is implemented, the hgatp.MODE and vsatp.MODE
   fields are reset to 0.

So it seems like if no guest is ran then there is no need even to write
hgatp.MODE as zero, but it might be sense to do that explicitly just to
be sure.

I thought it was possible to have a running guest and perform a CPU hotplug.
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">But that guest will run on another hart.

</pre>
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">In that case, I expect that during the hotplug,|vmidlen_detect()| will be
called and return the|vmid_bits| value, which is used as the active VMID.
At that moment, the local TLB could be speculatively polluted, I think.
Likely, it makes sense to call vmidlen_detect() only once for each hart
during initial bringup.
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">That may bring you more problems than it solves. You'd need to stash away
the value originally read somewhere. And that somewhere isn't per-CPU data.

</pre>
          <blockquote type="cite">
            <blockquote type="cite">
              <pre wrap="" class="moz-quote-pre">In fact, with no guest running (yet) I'm having a hard time seeing why
you shouldn't be able to simply write the register with just
HGATP_VMID_MASK, i.e. without OR-ing in "old". It's even questionable
whether "old" needs restoring; writing plain zero afterwards ought to
suffice. You're in charcge of the register, after all.
</pre>
            </blockquote>
            <pre wrap="" class="moz-quote-pre">It make sense (but I don't know if it is a possible case) to be sure that
HGATP.MODE remains the same, so there is no need to have TLB flush. If
HGATP.MODE is changed then it will be needed to do TLB flush as I mentioned
above.

If we agreed to keep local_hfence_gvma_all() then I think it isn't really
any sense to restore 'old' or OR-ing it with HGATP_VMID_MASK.

Generally if 'old' is guaranteed to be zero (and, probably, it makes sense
to check that in vmidlen_detect() and panic if it isn't zero) and if
vmidlen_detect() function will be called before any guest domain(s) will
be ran then I could agree that we don't need local_hfence_gvma_all() here.

As an option we can do local_hfence_gvma_all() only if 'old' value wasn't
set to zero.

Does it make sense?
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">Well - I'd like the pre-conditions to be understood better. For example, can
a hart really speculate into guest mode, when the hart is only in the
process of being brought up?
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
I couldn't explicit words that a hart can't speculate into guest mode
either on bring up or during its work.

But there are some moments in the spec which tells:
   Implementations with virtual memory are permitted to perform address
   translations speculatively and earlier than required by an explicit
   memory access, and are permitted to cache them in address translation
   cache structuresâ€”including possibly caching the identity mappings from
   effective address to physical address used in Bare translation modes and
   M-mode.
And here:
   Implementations may also execute the address-translation algorithm
   speculatively at any time, for any virtual address, as long as satp is
   active (as defined in Section 10.1.11). Such speculative executions have
   the effect of pre-populating the address-translation cache.
Where it is explicitly mentioned that speculation can happen in *any time*.
And at the same time:
   Speculative executions of the address-translation algorithm behave as
   non-speculative executions of the algorithm do, except that they must
   not set the dirty bit for a PTE, they must not trigger an exception,
   and they must not create address-translation cache entries if those
   entries would have been invalidated by any SFENCE.VMA instruction
   executed by the hart since the speculative execution of the algorithm began.
What I read as if TLB was empty before it will stay empty.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
I read that as "flushing the TLB invalidates entries created by speculative
execution before the TLB flush".</pre>
    </blockquote>
    <pre>But this part:
  they must not create address-translation cache entries if those entries
  would have been invalidated by any SFENCE.VMA instruction

Doesn't it mean that entries which was invalidated by SFENCE.VMA can't be
inserted into the TLB during speculative execution?

So, if the speculative page walk started before <code data-start="1577"
    data-end="1589">SFENCE.VMA</code>, <code data-start="1593"
    data-end="1605">SFENCE.VMA</code>
indicates: â€œAll previous TLB entries might be invalid". Therefore, any
speculative TLB entry <em data-start="1701" data-end="1722">that started before</em> must <strong
    data-start="1728" data-end="1735">not</strong> be inserted into the
TLB afterward.

So, hardware tracks if a <code data-start="1836" data-end="1848">SFENCE.VMA</code> occurred <em
    data-start="1858" data-end="1865">after</em> speculation started.
If so, any speculative address translations must be <strong
    data-start="1941" data-end="1954">discarded</strong> or
<strong data-start="1958" data-end="1975">not committed</strong>.</pre>
    <p></p>
    <blockquote type="cite"
      cite="mid:14e1c224-c648-41bb-97c6-ec63596bd38b@gmail.com">
      <pre wrap="" class="moz-quote-pre">  That is the bare minimum needed for TLB
flushing to work.  You have to do the TLB flush *after* changing the PTEs,
not before.

This is true on at least x86 but I expect it to hold in general.</pre>
    </blockquote>
    <pre>Agree with that.

~ Oleksii</pre>
  </body>
</html>

--------------fD8N5IalILLFp4Wq7DTsS7xq--


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 08:50:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 08:50:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072647.1435649 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujwKW-0002Io-AX; Thu, 07 Aug 2025 08:50:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072647.1435649; Thu, 07 Aug 2025 08:50: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 1ujwKW-0002Ih-6q; Thu, 07 Aug 2025 08:50:32 +0000
Received: by outflank-mailman (input) for mailman id 1072647;
 Thu, 07 Aug 2025 08:50:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+2Ad=2T=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujwKV-0002Ib-Bd
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 08:50:31 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 90e3b37d-736b-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 10:50:27 +0200 (CEST)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-615756b1e99so1135695a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 01:50: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
 a640c23a62f3a-af91a219ef2sm1267613366b.96.2025.08.07.01.50.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Aug 2025 01:50: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>
X-Inumbo-ID: 90e3b37d-736b-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754556627; x=1755161427; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=lDC92W9A9lAsblfPUtOc0R4iDWmNlvOrw0F9YGmEf90=;
        b=IY/3V0GYgU8R452X8eYs2o5nr3W05ZNctxjbPYNh8H8TnREqvBrE1ZAGQIr+goT46T
         LjZ5HISCc0x0FFJ0/62E/CeNpwwQESoXEPtqr8JvjxVoUH3u85weeU6IJNL+EKE7nl48
         UUt80MHf7PIB5rCBHevAU6Dl5f+erCM+EUz9vBK4yAPyqkioiTeTN5YvjQIy2jO+3O2W
         Q2SvN4VhXvWklr5oOyWctDb+3cOmlPiw3SlX79NnDdJlE9udP2CzM9AOQo8EsYbRW5uv
         KH71MEC+GBekynk7m+r5YoTL6+Z37VmIDvBRIRuAjvN+4Y3uLwR1J4NfAc2DN+JcDXEa
         j1YQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754556627; x=1755161427;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lDC92W9A9lAsblfPUtOc0R4iDWmNlvOrw0F9YGmEf90=;
        b=gwEU4gLQ++STLdZVdLhn1N6onTzj5Dpm0X8otmjLeGmyc4FzdNlZAVkfveeruZ7NUT
         zFc90HiNKLi/bGJSjd4usAXfVieS0cpPK4Lklr1Z/zZUOylxfyJIcmZROcPbnlrBNaK9
         zKZAMK3WwqIXmkPm8yfJw2PgNCTZTDSouslKlJ5dZ9IJcEUoA8n2xNp35J9PcOA6cQqD
         1wQIkncrnGBvNO0d3dBL7catVeTNq8bB3GZqEtUNYFXskaieiABdeagOx5b1oOHUF4Bq
         OsAPHLQe/81p8DIqitPrmJltA8CkrEe73L9rKfZqTZt3t+LkKKU7C9WCTa1ZID/MGvWY
         HjuA==
X-Forwarded-Encrypted: i=1; AJvYcCUO64trqO4hcGY2nQCcGAn2NOzlc8E9y5KOeQesr4tTHTJ2Vm2MjSb0vyQkmhBPHc3OdsWq4VEAHus=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyz74Sp5dwl5G1hmKKjpYfjy/qvyY185SOord92R1V8dLgDvsJj
	Bes4SKYx855X8dt84mk2Y9PA9x9bA88J79NXbgRUxYq5Zt/BnAERDQFsCeXaP4aUyA==
X-Gm-Gg: ASbGncs6WPQS3aIFSOOgbld2regFHsaZ1FZBuAkleZ/ss0PwVOnsijhC8hFOvAeon1C
	iF9Ry5Wo2/dKbwb0YjDUQANuoemYBSz1Oya/KQm6XGouHBBsUEul8Hj2vThCYcnidhlWuxQHJYa
	qWb4YuU0KTE3WrbyxlhzsFn8nuN4q/85LqQ7DFXtBhNlierGRJeGusvX2XEnn/T6p1JbEbp54VQ
	O8So6cK8bFaC8jTYmXznr2LjpcwGzV3jf9aEZZVnRwAa5IwPeKMWu6i96x1U5Td4Tuv0LO3k1WN
	IOt5Ak4vBikl5maPt2MelEwloDqEbu8V1Z8bi4Wq4grGP+dwVkVaTt4A50tDGEwHET74JxNTijW
	AuVyS7YFqiXjAEmRgjirIa9V7ZwqOvuzKVb91rrFCPnheWqAaapqRTea1ADvnkgOGDOZTnC7xz4
	zETMUYuwA=
X-Google-Smtp-Source: AGHT+IGq/VVfzxNtTIHnGf+eMkY49oPU9izbSxQQ7kKARWFJo7zeEvHQcDF+iAjk7xTEUNjuSpW2Og==
X-Received: by 2002:a17:907:2d13:b0:af2:42e8:ad92 with SMTP id a640c23a62f3a-af992c9705amr449373066b.61.1754556627193;
        Thu, 07 Aug 2025 01:50:27 -0700 (PDT)
Message-ID: <0bcf4d5b-8f6c-4a65-a7b4-cd638977fd71@suse.com>
Date: Thu, 7 Aug 2025 10:50:25 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86/mm: correct PG_log_dirty definition
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Penny Zheng <Penny.Zheng@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <c506f225-0993-4ef3-9e7e-60b8f17c872e@suse.com>
 <65e27b35-9256-4ab0-966a-c50a18900ba5@suse.com>
 <b3edf693-6f54-487d-b465-6224daf9746d@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: <b3edf693-6f54-487d-b465-6224daf9746d@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.08.2025 23:24, Jason Andryuk wrote:
> On 2025-08-05 03:59, Jan Beulich wrote:
>> While it is correct that in shim-exclusive mode log-dirty handling is
>> all unreachable code, the present conditional still isn't correct: In a
>> HVM=n and SHADOW_PAGING=n configuration log-dirty code also is all
>> unreachable (and hence violating Misra rule 2.1).
>>
>> As we're aiming at moving away from special casing PV_SHIM_EXCLUSIVE=y,
>> don't retain that part of the conditional.
>>
>> Because of hypercall-defs.c we need to carry out the dependency by
>> introducing a new auxiliary PAGING control.
>>
>> Since compiling out mm/paging.c altogether would entail further changes,
>> merely conditionalize the one function in there (paging_enable()) which
>> would otherwise remain unreachable (Misra rule 2.1 again) when PAGING=n.
>>
>> Fixes: 23d4e0d17b76 ("x86/shim: fix build with PV_SHIM_EXCLUSIVE and SHADOW_PAGING")
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> Of course PAGING is at risk of being confused with MEM_PAGING. It not
>> having a prompt, I hope that's tolerable, as I can't really think of a
>> better name.
>>
>> Other PG_log_dirty pre-processor conditionals then likely also want
>> replacing.

Isn't this remark of mine ...

>> mm/paging.c and mm/p2m-basic.c could also be compiled out
>> altogether when PAGING=n, at the expense of introducing a few more
>> stubs.
>>
>> FTAOD, the Fixes: tag being referenced does not mean this patch corrects
>> the far more recently introduced build issue with the combination of the
>> two features. That's still work that I expect Penny to carry out (with
>> there still being the option of reverting the final part of the earlier
>> series).
>>
> 
>> --- a/xen/arch/x86/mm/paging.c
>> +++ b/xen/arch/x86/mm/paging.c
>> @@ -864,6 +864,7 @@ void paging_final_teardown(struct domain
>>       p2m_final_teardown(d);
>>   }
>>   
>> +#ifdef CONFIG_PAGING
> 
> The file already has a lot of uses of #if PG_log_dirty with similar 
> meaning, if I am not mistaken, so using that would make it more 
> consistent.  But CONFIG_PAGING is directly tied to the Kconfig, so maybe 
> it is better?  Just something I noticed.

... precisely matching your observation? If we want to accept the extra churn,
we certainly can go this route in a follow-on patch.

> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

Thanks.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 08:57:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 08:57:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072661.1435658 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujwRS-0003BF-VC; Thu, 07 Aug 2025 08:57:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072661.1435658; Thu, 07 Aug 2025 08:57: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 1ujwRS-0003B8-Sf; Thu, 07 Aug 2025 08:57:42 +0000
Received: by outflank-mailman (input) for mailman id 1072661;
 Thu, 07 Aug 2025 08:57:41 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+2Ad=2T=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujwRR-0003B2-Ph
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 08:57:41 +0000
Received: from mail-ed1-x531.google.com (mail-ed1-x531.google.com
 [2a00:1450:4864:20::531])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8bd51110-736c-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 10:57:28 +0200 (CEST)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-604bff84741so1422335a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 01:57:28 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-615a8fe79a0sm11479181a12.39.2025.08.07.01.57.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Aug 2025 01:57: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>
X-Inumbo-ID: 8bd51110-736c-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754557048; x=1755161848; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ryQl9WcoqwSsOiqVdb6BTb/4D5XKgurS1IVsplIN86w=;
        b=Vx24esgc9Yvmsy/fnxVN/ItcOpT4g6gvmYBnPbUtH8AO5DPblE14W0gFaXcPjv5upM
         87QR/jWU3GGyHZWN9epb4bOm8PjQnyO90T1ihSxInFBU16yIo/JghL8nJGrCGgS1NzfO
         kaQgtMoT9+uQQOILtajLfPf0+iuEUGon0kpZTSiUCABf2peexJ7A8wlqkCEqelKR8IMy
         gkEMXjzpvjSdPRyjPuzWg/gzPkR7+FV+3wd3aYKG7PHmZ1nCIE1R+nVA1sgysHRbrA+1
         xzqJ41THgrn2d/bsGUL3NDPG3c6lW4bCq1yvLswB5NvBLIDPs28n5BTOXtmW9p4Bomvp
         JmkA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754557048; x=1755161848;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ryQl9WcoqwSsOiqVdb6BTb/4D5XKgurS1IVsplIN86w=;
        b=sjT0nACnnRfkMDGIlFcw+FqoJ1SfmAvLgRUgS3ZWP9BNCj8ZIU8cSbiU8VsF+PTkgk
         B0v8iHbgBuzSifi8dcyb/aFNPUABLEX8DuZo5Yr/bZSgQuI2X2UUfXdXI9qSnHMT9BRZ
         K8dqm7PUfi9mbRXoK1XscJWdvmRB8hrZpPQMayRb9cJmfeNw2nTiE5xf42VbtijzbpZY
         WYxZJgaKbovSR9neR6YxhlQFL/V9tZXNmjhV1LcLhTfc9Peij4Uwtcamq0xECb+vvLI6
         UluQf4qWAH0tOnEQH4wCDz0kH8OVTDmLo72pG3UzsK7TAHmO9+i2txeINF7vKLMcM3+S
         1oMg==
X-Gm-Message-State: AOJu0Ywng/am0Pc7oRmpwPbwSXBLHvI6Co0ZKOgXPrY5LTFlB73WTnza
	DIaxbSRB/QgiDSEIeNKmSWy7lfmEft8F8cuzm/Ftl3/M36fghvtj7qdzjT8ETlHEaw==
X-Gm-Gg: ASbGncvqF6su9HXINBp7iscyOpGZoJFM6JoQ+Q/FycSF+50lCRYTHmF53jlT5JWjFqC
	GcHF4ghbwn4eR2WCkQDxLNhib0PULuhWRWU+I3psws1Lat3mtNLOV1IRBimdaY1gUv6qlCSYoij
	aThOlW1FTgrYhomOTgjSByPxuhNAGeKwYW63Z9VrGRbBHp0/p3yiGUIy9Y1qGUeMRAY4M9WKVqX
	8TCOZX4rBHso6iN7TTqYdRVt3aXC2FJAHixpP5vppAPhbHMIL1Ten4KS1E2+pvDVPWZKVb5kxyE
	XTkFaRPkdD0GvvQmy7gVbK19RcK3dCI0eKeD8UWBtALPMLJO3+kQlcukIcKyKL3baaq1r6eI9NG
	askyaLs31gQgtWMNRyzNR3IdvkBsjHVRMwuC2Zw7OkKjj/oMDDR3skWdFfyKPaV/6T+0KXy1WIX
	8jPbg+pBs=
X-Google-Smtp-Source: AGHT+IG5KnhJCVDpPBgRLioBUywQ9XXFIzULmJLIcsvYU033i85c91vnohpF2gi+08seAzOILxBRfA==
X-Received: by 2002:a05:6402:27d1:b0:615:aec5:b5bc with SMTP id 4fb4d7f45d1cf-61795fb9277mr4545017a12.0.1754557048084;
        Thu, 07 Aug 2025 01:57:28 -0700 (PDT)
Message-ID: <b948a9ab-e6b6-4096-954b-c364c16f198e@suse.com>
Date: Thu, 7 Aug 2025 10:57:26 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4] misra: add deviations of MISRA C Rule 5.5
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>
References: <afe942916b8a2408f575d2acda49699f74718161.1753991597.git.dmytro_prokopchuk1@epam.com>
 <a3ac54d4fa69bfde695a55791a89eab6@bugseng.com>
 <148c16be-03c0-43cd-a394-2b37088f4383@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: <148c16be-03c0-43cd-a394-2b37088f4383@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06.08.2025 18:56, Dmytro Prokopchuk1 wrote:
> On 8/1/25 01:32, Nicola Vetrini wrote:
>> On 2025-07-31 22:43, Dmytro Prokopchuk1 wrote:
>>> MISRA C Rule 5.5 states: "Identifiers shall be distinct from macro 
>>> names".
>>>
>>> Update ECLAIR configuration to deviate clashes: specify the macros that
>>> should be ignored. Update deviations.rst and rules.rst accordingly.
>>>
>>> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
>>
>> Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com> # ECLAIR
>>
>>> ---
>>> Changes in v4:
>>> - fixed formatting (aligned length chars per line)
>>> - set 'ignored_macros' as a regex expression
>>> - set a deviation restriction on xen/common/grant_table.c
>>> - s/ensures/to ensure/
>>> - fixed grammar errors
>>>
>>> Link to v3:
>>> https://eur01.safelinks.protection.outlook.com/? 
>>> url=https%3A%2F%2Fpatchew.org%2FXen%2Fe681e0c083d945f48e6d0add1aee32af16be224e.1753911247.git.dmytro._5Fprokopchuk1%40epam.com%2F&data=05%7C02%7Cdmytro_prokopchuk1%40epam.com%7Ce9d60ddeef764dfa381208ddd0823178%7Cb41b72d04e9f4c268a69f949f367c91d%7C1%7C0%7C638895979778846477%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=n0QPvqr8O8gos%2BYMpZ%2BMOG0spC46A7T56Vpz44wutlw%3D&reserved=0
>>>
>>> Test CI pipeline:
>>> https://eur01.safelinks.protection.outlook.com/? 
>>> url=https%3A%2F%2Fgitlab.com%2Fxen- 
>>> project%2Fpeople%2Fdimaprkp4k%2Fxen%2F- 
>>> %2Fpipelines%2F1960066579&data=05%7C02%7Cdmytro_prokopchuk1%40epam.com%7Ce9d60ddeef764dfa381208ddd0823178%7Cb41b72d04e9f4c268a69f949f367c91d%7C1%7C0%7C638895979778869002%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=z8DtrlxxN8nyrMNRXXW8IktFaru4f3f8N99iirhnbw0%3D&reserved=0
>>> ---
>>> Â .../eclair_analysis/ECLAIR/deviations.eclÂ Â Â Â  | 10 +++++++++
>>> Â docs/misra/deviations.rstÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  | 22 +++++++++++++++++++
>>> Â docs/misra/rules.rstÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  | 17 ++++++++++++++
>>> Â 3 files changed, 49 insertions(+)
>>>
>>> diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/ 
>>> automation/eclair_analysis/ECLAIR/deviations.ecl
>>> index 483507e7b9..ab3400fc89 100644
>>> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
>>> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
>>> @@ -117,6 +117,16 @@ it defines would (in the common case) be already 
>>> defined. Peer reviewed by the c
>>> Â -config=MC3A2.R5.5,reports+={deliberate, 
>>> "any_area(decl(kind(function))||any_loc(macro(name(memcpy||memset|| 
>>> memmove))))&&any_area(any_loc(file(^xen/common/libelf/libelf-private\ 
>>> \.h$)))"}
>>> Â -doc_end
>>>
>>> +-doc_begin="Clashes between bitops functions and macro names are 
>>> deliberate.
>>> +These macros are needed for input validation and error handling."
>>> +-config=MC3A2.R5.5,ignored_macros+="^(__)?(test|set|clear|change| 
>>> test_and_(set|clear|change))_bit$"
>>> +-doc_end
>>> +
>>> +-doc_begin="Clashes between grant table functions and macro names in 
>>> 'xen/common/grant_table.c' are deliberate.
>>> +These macros address differences in argument count during compile- 
>>> time, effectively discarding unused parameters to avoid warnings or 
>>> errors related to them."
>>> +-config=MC3A2.R5.5,ignored_macros+="name(update_gnttab_par|| 
>>> parse_gnttab_limit)&&loc(file(^xen/common/grant_table\\.c$))"
>>> +-doc_end
>>> +
>>> Â -doc_begin="The type \"ret_t\" is deliberately defined multiple times,
>>> Â depending on the guest."
>>>
>>> - 
>>> config=MC3A2.R5.6,reports+={deliberate,"any_area(any_loc(text(^.*ret_t.*$)))"}
>>> diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
>>> index e78179fcb8..4c64a8be62 100644
>>> --- a/docs/misra/deviations.rst
>>> +++ b/docs/misra/deviations.rst
>>> @@ -142,6 +142,28 @@ Deviations related to MISRA C:2012 Rules:
>>> Â Â Â Â Â Â Â  memmove.
>>> Â Â Â Â Â  - Tagged as `deliberate` for ECLAIR.
>>>
>>> +Â Â  * - R5.5
>>> +Â Â Â Â  - Clashes between bitops ('__test_and_set_bit', 
>>> '__test_and_clear_bit',
>>> +Â Â Â Â Â Â  '__test_and_change_bit', 'test_bit', 'set_bit', 'clear_bit', 
>>> 'change_bit',
>>> +Â Â Â Â Â Â  'test_and_set_bit', 'test_and_clear_bit', 'test_and_change_bit')
>>> +Â Â Â Â Â Â  functions and macro names are intentional. These are necessary 
>>> for error
>>> +Â Â Â Â Â Â  handling and input validation to ensure that the size of the 
>>> object being
>>> +Â Â Â Â Â Â  referenced by the memory address (passed as an argument to the 
>>> macro)
>>> +Â Â Â Â Â Â  meets the minimum requirements for the bit operation. This 
>>> prevents unsafe
>>> +Â Â Â Â Â Â  operations on improperly sized data types that could lead to 
>>> undefined
>>> +Â Â Â Â Â Â  behavior or memory corruption. The macros encapsulate this 
>>> conditional
>>> +Â Â Â Â Â Â  logic into a single, reusable form, simplifying the code and 
>>> avoiding
>>> +Â Â Â Â Â Â  function call overhead. Also this bit operations API was 
>>> inherited from
>>> +Â Â Â Â Â Â  Linux and should be kept for familiarity.
>>> +Â Â Â Â  - ECLAIR has been configured to ignore these macros.
>>> +
>>> +Â Â  * - R5.5
>>> +Â Â Â Â  - Clashes between grant table ('update_gnttab_par', 
>>> 'parse_gnttab_limit')
>>> +Â Â Â Â Â Â  functions and macro names are intentional. These macros address
>>> +Â Â Â Â Â Â  differences in argument count during compile-time, effectively 
>>> discarding
>>> +Â Â Â Â Â Â  unused 2nd and 3rd parameters to avoid warnings or errors 
>>> related to them.
>>> +Â Â Â Â  - ECLAIR has been configured to ignore these macros.
>>> +
>>> Â Â Â  * - R5.6
>>> Â Â Â Â Â  - The type ret_t is deliberately defined multiple times 
>>> depending on the
>>> Â Â Â Â Â Â Â  type of guest to service.
>>> diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst
>>> index 3e014a6298..cba15933fe 100644
>>> --- a/docs/misra/rules.rst
>>> +++ b/docs/misra/rules.rst
>>> @@ -196,6 +196,23 @@ maintainers if you want to suggest a change.
>>> Â Â Â Â Â Â Â Â Â Â Â  #define f(x, y) f(x, y)
>>> Â Â Â Â Â Â Â Â Â Â Â  void f(int x, int y);
>>>
>>> +Â Â Â Â Â Â  Clashes between bitops functions and macro names are allowed
>>> +Â Â Â Â Â Â  because they are used for input validation and error handling.
>>> +Â Â Â Â Â Â  Example::
>>> +
>>> +Â Â Â Â Â Â Â Â Â Â  static inline void set_bit(int nr, volatile void *addr)
>>> +Â Â Â Â Â Â Â Â Â Â  {
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â  asm volatile ( "lock btsl %1,%0"
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  : "+m" (ADDR) : "Ir" (nr) : "memory");
>>> +Â Â Â Â Â Â Â Â Â Â  }
>>> +Â Â Â Â Â Â Â Â Â Â  #define set_bit(nr, addr) ({Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â  if ( bitop_bad_size(addr) ) __bitop_bad_size();Â Â Â Â  \
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â  set_bit(nr, addr);Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
>>> +Â Â Â Â Â Â Â Â Â Â  })
>>> +
>>> +Â Â Â Â Â Â  Clashes between grant table functions and macro names are allowed
>>> +Â Â Â Â Â Â  because they are used for discarding unused parameters.
>>> +
>>> Â Â Â  * - `Rule 5.6 <https://eur01.safelinks.protection.outlook.com/? 
>>> url=https%3A%2F%2Fgitlab.com%2FMISRA%2FMISRA-C%2FMISRA- 
>>> C-2012%2FExample-Suite%2F- 
>>> %2Fblob%2Fmaster%2FR_05_06.c&data=05%7C02%7Cdmytro_prokopchuk1%40epam.com%7Ce9d60ddeef764dfa381208ddd0823178%7Cb41b72d04e9f4c268a69f949f367c91d%7C1%7C0%7C638895979778883822%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=crVYwr4A0vyXcUXfQ2%2FJ5EObWfr0XGLgaQ0%2FLH9pMnM%3D&reserved=0>`_
>>> Â Â Â Â Â  - Required
>>> Â Â Â Â Â  - A typedef name shall be a unique identifier
> 
> Hello Jan, Nicola.
> 
> Do you have any comments regarding this patch?
> Does it require updates/fixes?

Hmm, you have Nicola's R-b, so it's not clear to me what else you need from
him. In its present shape I'm okay for the patch to go in with somebody
else's ack (after all it's not just me who can legitimately ack it); I'm not
happy enough with the patch to give an ack myself, even if I can't offer a
good suggestion towards improvements.

Sorry, Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 09:15:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 09:15:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072695.1435668 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujwik-0006QE-Bv; Thu, 07 Aug 2025 09:15:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072695.1435668; Thu, 07 Aug 2025 09:15:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujwik-0006Q7-9S; Thu, 07 Aug 2025 09:15:34 +0000
Received: by outflank-mailman (input) for mailman id 1072695;
 Thu, 07 Aug 2025 09:15:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gbW2=2T=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1ujwii-0006NV-JZ
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 09:15:32 +0000
Received: from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com
 [2a00:1450:4864:20::12e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1131e74d-736f-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 11:15:31 +0200 (CEST)
Received: by mail-lf1-x12e.google.com with SMTP id
 2adb3069b0e04-55b847a061dso2092834e87.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 02:15:31 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1131e74d-736f-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754558131; x=1755162931; 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=g7QloieeF6cWwG6JpS5ZTXmWkk2nuuaGJXBvDCAZ/XI=;
        b=kmg6hWyApNYbgB92Rnzgx25j8fIgavCmCEkFEghMWFA4DmBR8LOR5gz8J5jbq2QzBz
         ++nXesgdOmTe9VFK3+IFThK293KC5h1QKeUUw1lrmJ/juTpZRdX9Pu1Hx1pwIztJiaYQ
         nYkVafOhplo+RsMhVJktke2fxmYAIXYKL7WwJUny0njJls7h0wPq8paj32HCo9ZYbtAu
         shWE7bwpukd6+GA67a76chqvwWHZNvYowWq9LUcjLpTToRJ818D6O9PPDCmi+l3VGxwS
         EFPH452NL7PLFKUQDZ4t5/8sZJtR6w6DoYQFZgbG2ZIIy0bo1BuecepknBbxGq5MEFcg
         JPAQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754558131; x=1755162931;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=g7QloieeF6cWwG6JpS5ZTXmWkk2nuuaGJXBvDCAZ/XI=;
        b=ePmwk5iREgBVEi9bZA99ES4ao2x/T78IjdUPN27urUw9gFzVeeKNvP8xDBOZR8GY/q
         8tlrpuh1Koctq/K9UdkGyTYTpP3SVCcv+yy8EagIU4eSRoZVjis4ltx6fjm8r5+g3PBZ
         fPm4CrPIKzO3rK5ZvjVTi3lcL9PJFSzw3QeD/bUK0fnPD5v+HqNy6RvL/h1chC7Gu/v1
         6Q1NJ+okOGwrcZfljqsCs0p6bbEFK3o8mxkTAeHz8tXw1T+m/7AahD7O03/i3MrSNyHp
         VTe9d/ZWDwQiB0oQ5FYIzV285mfaxqCY4Iyi6Ihk9B41DyVlL04fXYf5mPigDdGqgJd5
         SPIw==
X-Forwarded-Encrypted: i=1; AJvYcCUS5hPBBguJZT7/qPYkfaDQouScUwZd7xcGgu3fIuoAjR1fl9Ov0QnxlIbxXbNhVYJUBLdWxg8HnlU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy+tiW950A7lTJ2AnZnpO18M6wBWhgkl/4ac9y0Z23sf+9ecNLX
	KPXSmxk/0cF29VQRCzPKbKB/GvOPIyRQ2pk5iPTkjhJ393vN3+fPtYyQRGSKIKKGM/q6HXA4fnM
	AvAVjW1DBGSiIQhGKIHuLnqjLrQuxxOM=
X-Gm-Gg: ASbGncvsyXynYLW+C6Q/OjN19d0wH3+ExLRgbMFkLsoBBd4Zigw0UtwMNn4NBQCfOF9
	JolQzuud7ChdgKgS1/oMam9BSrLKptyiNcUVL0pe3hSlzAlY02fRkLjDeXrMr8W/ImMRYUotSvO
	TEVYB8s1tES3P0EH4avp6zJwfJXlGpBRfJAtReYebZ4eFeQwSlXsliQGihbEk6YKufWkgnoXn+6
	+ROUQ==
X-Google-Smtp-Source: AGHT+IHvqDnNo4UYQ3g0VScMDfYhRwwoBft+WcnWGugiJMsdrqfJg4O0HBqvFwdmB20ZZ7fEOfJrIZRz2OZFxVzRlRk=
X-Received: by 2002:a05:6512:23a9:b0:55b:814a:a7fa with SMTP id
 2adb3069b0e04-55cb5d91a56mr848932e87.8.1754558130647; Thu, 07 Aug 2025
 02:15:30 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1753778926.git.mykola_kvach@epam.com> <45e670391c37ab54f721b6576a41ded2e543d6db.1753778926.git.mykola_kvach@epam.com>
 <2e43ded3-d14d-49f8-bf98-f3d58d0b39af@suse.com> <CAGeoDV8QuaFHFg3_MaFdk_zsMCKVD0V6a55ut74HoLuQF3diJw@mail.gmail.com>
In-Reply-To: <CAGeoDV8QuaFHFg3_MaFdk_zsMCKVD0V6a55ut74HoLuQF3diJw@mail.gmail.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Thu, 7 Aug 2025 12:15:19 +0300
X-Gm-Features: Ac12FXwKhJiSKJ21LvXLp9ZWVDkTz6O9Sb_dbg9JtZCFIJQvUbaOKvPuC32HDmI
Message-ID: <CAGeoDV-u8LALBsCz8aFa7E6qJNyu9-rsx3aHzEPQsSjLaKeGCA@mail.gmail.com>
Subject: Re: [PATCH v7 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for guests
To: Jan Beulich <jbeulich@suse.com>
Cc: Mykola Kvach <mykola_kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, 
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, Aug 7, 2025 at 10:38=E2=80=AFAM Mykola Kvach <xakep.amatop@gmail.co=
m> wrote:
>
> Hi Jan,
>
> On Tue, Jul 29, 2025 at 12:11=E2=80=AFPM Jan Beulich <jbeulich@suse.com> =
wrote:
> >
> > On 29.07.2025 10:52, Mykola Kvach wrote:
> > > --- a/xen/common/domain.c
> > > +++ b/xen/common/domain.c
> > > @@ -1334,16 +1334,15 @@ int domain_shutdown(struct domain *d, u8 reas=
on)
> > >      return 0;
> > >  }
> > >
> > > -void domain_resume(struct domain *d)
> > > +#ifdef CONFIG_ARM
> > > +void domain_resume_nopause(struct domain *d)
> > > +#else
> > > +static void domain_resume_nopause(struct domain *d)
> > > +#endif
> >
> > #ifndef CONFIG_ARM
> > static
> > #endif
> > void domain_resume_nopause(struct domain *d)
> >
> > to have as little redundancy as possible.
>
> Okay, I=E2=80=99ll change it.
>
> >
> > >  {
> > >      struct vcpu *v;
> > >
> > > -    /*
> > > -     * Some code paths assume that shutdown status does not get rese=
t under
> > > -     * their feet (e.g., some assertions make this assumption).
> > > -     */
> > > -    domain_pause(d);
> > > -
> > > +    domain_lock(d);
> >
> > This addition of locking affects domain_resume() as well. Neither need =
nor
> > correctness are discussed in the description. If the locking was really
> > needed for domain_resume() as well, I suppose adding that would better =
be
> > a separate change anyway.
>
> Thanks for the review.
>
> The locking was added to avoid potential races involving _VPF_suspended a=
nd
> the suspend/resume logic.
>
> Consider the case where domain_lock() is not used inside domain_resume():
>
> Domain 1 initiates suspend via PSCI SYSTEM_SUSPEND. At the same time,
> Domain 0 invokes resume for Domain 1.
>
> Domain 0 calls xl resume, which leads to domain_resume(). Domain 1 acquir=
es
> domain_lock() as part of the suspend path. Then it acquires the shutdown
> lock in domain_shutdown(). Domain 0 is blocked waiting for the shutdown
> lock. When Domain 1 releases the shutdown lock, it sets _VPF_suspended an=
d
> modifies the VCPU context. Then Domain 0 clears _VPF_suspended.
>
> At this point, ctxt_switch_from() might be called with _VPF_suspended
> already cleared, and the VCPU context partially updated. For example, the
> guest PC is set to the resume entry point, but some registers like TTBR o=
r
> SCTLR_EL1 are saved from the current hardware context by
> ctxt_switch_from.
>
> However, after reviewing the flow again, I think this kind of race could
> still happen even with the lock in place. Imagine Domain 1 sets the flag
> via SYSTEM_SUSPEND, and then Domain 0 clears it by resuming the domain
> before the first context switch. This could still result in a partially
> updated context with inconsistent state.

There are no synchronization issues here -- domain_pause inside domain_resu=
me
prevents them by design.

The only situation where issues might arise is during a SYSTEM_SUSPEND requ=
est
for a guest that has multiple vCPUs online (buggy OS), while another
vCPU performs
a CPU_ON request.

Therefore, it seems we only need to protect the loop that checks if other v=
CPUs
are offline during the SYSTEM_SUSPEND vPSCI call using the domain lock.

>
> So it might be better to update the VCPU context at the point of resume
> instead of doing it during suspend. I'll look into that further and also
> check for other possible races if the update is moved.
>
> >
> > The addition of this locking is particularly interesting considering th=
at
> > ...
> >
> > >      spin_lock(&d->shutdown_lock);
> >
> > ... is what follows right after.
> >
> > > --- a/xen/include/xen/sched.h
> > > +++ b/xen/include/xen/sched.h
> > > @@ -814,6 +814,9 @@ void domain_destroy(struct domain *d);
> > >  int domain_kill(struct domain *d);
> > >  int domain_shutdown(struct domain *d, u8 reason);
> > >  void domain_resume(struct domain *d);
> > > +#ifdef CONFIG_ARM
> > > +void domain_resume_nopause(struct domain *d);
> > > +#endif
> > >
> > >  int domain_soft_reset(struct domain *d, bool resuming);
> > >
> > > @@ -1010,6 +1013,10 @@ static inline struct domain *next_domain_in_cp=
upool(
> > >  /* VCPU is parked. */
> > >  #define _VPF_parked          8
> > >  #define VPF_parked           (1UL<<_VPF_parked)
> > > +/* VCPU is suspended. */
> > > +#define _VPF_suspended       9
> > > +#define VPF_suspended        (1UL<<_VPF_suspended)
> >
> > Irrespective of the style violations in pre-existing code, can you plea=
se
> > not add further violations, by inserting the missing blanks?
>
> Okay
>
> >
> > > +
> > >
> >
> > Please also don't introduce double blank lines.
>
> I'll remove it.
>
> >
> > Jan
>
> Best regards,
> Mykola


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 09:19:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 09:19:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072706.1435680 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujwmC-00078b-2e; Thu, 07 Aug 2025 09:19:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072706.1435680; Thu, 07 Aug 2025 09:19: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 1ujwmB-00078U-UJ; Thu, 07 Aug 2025 09:19:07 +0000
Received: by outflank-mailman (input) for mailman id 1072706;
 Thu, 07 Aug 2025 09:19:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+2Ad=2T=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujwmB-00078O-8D
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 09:19:07 +0000
Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com
 [2a00:1450:4864:20::530])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 911f7201-736f-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 11:19:06 +0200 (CEST)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-61580eb7995so1662777a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 02:19: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
 4fb4d7f45d1cf-615a8eff8d3sm11414604a12.6.2025.08.07.02.19.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Aug 2025 02:19: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>
X-Inumbo-ID: 911f7201-736f-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754558346; x=1755163146; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=enbLNhtHkZW3vn407/7W86KBNLz0+rLLOav5gWc8h8U=;
        b=bjlLCL7W86Olwc/V1AL+u+FfclvCy/1SsZCECWdMeDRbJjIBzIF+5YvSQMwa9ZT3z4
         U6EZw4qEXqk9n8emaP2FaqGYXFVJ4AnZrrRkkUhaYfZINOjENFFuy7UOlD8ayTiIe8zx
         KJ5mb3aaXfldJAlg6ZBERuqAx1EvHs4d75oEGEvqr1DefI0bc7KuiaeBf3XTnTkFFx3F
         Tm/YJEj7YHyDvTZdWEFtDpeRe4W1Ufq7t6oYDm1hrsOAcm2hYG/xl0HIadbiFRlWwdEO
         vj4p0hb3+uzniQosqJJc87E69cfzuHu2C5E56Zdy5w8LJV6KTOxbbABCZe1SXFkEjd+n
         8XqA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754558346; x=1755163146;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=enbLNhtHkZW3vn407/7W86KBNLz0+rLLOav5gWc8h8U=;
        b=C1M3E/cq5DY9Uq8/j3dmSJhWsLHUVYJ1KAxyEQVRQbLzwoxSqP42fmaJGvsm5Yfp1m
         FkKvS5B4mOTA0KDKX8JBE+W6eUA9NLEFbaf+FM9LsA2DPoHp94eoNlFd2fxog1v4+jMq
         MsHfoWV89nsHZtjpCyqGMIqd8lF3rVe67grWus309x5dujfIdI0qmAJMsfJta4RDsMj3
         uUtevhmIfPXtIsG7w5XTVi+jbp48iwW8IPswfPoXZIvrk0oo2mDbiz4WX2ijsna5WUw/
         z9qFNT5E9SeUfZzgP5RKFV5LiGoHXssjESCFCWLjIP8oorF4YbpJJABrTPADtXvvUObl
         W5AQ==
X-Forwarded-Encrypted: i=1; AJvYcCWc9ghhn6xE91B79y9/7DAc0u+OsZFkLnUTcxNfcgDYelcNPMY8lpJ25/4wIn382Z6iKwX9Unaa/KY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx8j/nZsSaenO8wjDhX0U7jmCKAMqwfylMqLHF13hFdzu2Sa3oS
	sSsI0qS+hd3rx3CeY5ihUiOo+M0fygkaLG+adpjXjW1m6UMnfL2qhCdosxUHnpjlXA==
X-Gm-Gg: ASbGncvh87IydMVfWbCRea6GJGzBrRQFHy2MTizoZnhuNH7sJlN005NUb6hD5pKDvoL
	I1U9KSoautRxE5ZRM1VgFsi0BW3oDYuWVX28/lhGzYnoq0mJbHziU4lQZWFPMnzB/lxA9Ijscvq
	oWmqdh6v/jopU62BJSos5FRd3sMugUC2MAnKFksAr7bYzTf52WhObxqUXAf29LBAm0FJt9p1biJ
	llr0Ghg4XJ38P3LljX0tbxLMH3qGxuc6Tq2lL34qxZVbWw/zQApjin+For+aOTuSrcT1HsVWvbc
	rO8+sMB95I8Cg7EPNS+tKmL8pP+C2qUyxx8CbxQ8s5UX8WVM1FZxFFSaNUI9L4EkfStPQ1EaVfs
	ybPnzxoCocWppawXP0FqdjfYIJN0XzruyePUFCkcBAgRiderfdrA9M7I25HFHb9dLpqgVX02m/6
	9ghMGzNNk=
X-Google-Smtp-Source: AGHT+IHKBZRI7oGdz4YDO95XqmbKTa/RGPSv5TJKThj8RZ+Lrc7PGVfILkgUvCAhC2tI75r2bDM1dQ==
X-Received: by 2002:a05:6402:5253:b0:615:3667:f4eb with SMTP id 4fb4d7f45d1cf-617b37b49c2mr2264375a12.6.1754558345689;
        Thu, 07 Aug 2025 02:19:05 -0700 (PDT)
Message-ID: <49691142-a9eb-4d39-a43a-07c5062dd2fe@suse.com>
Date: Thu, 7 Aug 2025 11:19:04 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] xenconsole: Add connected flag
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
References: <20250807015606.4427-1-jason.andryuk@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250807015606.4427-1-jason.andryuk@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.08.2025 03:56, Jason Andryuk wrote:
> --- a/xen/include/public/io/console.h
> +++ b/xen/include/public/io/console.h
> @@ -19,6 +19,19 @@ struct xencons_interface {
>      char out[2048];
>      XENCONS_RING_IDX in_cons, in_prod;
>      XENCONS_RING_IDX out_cons, out_prod;
> +/*
> + * Flag values signaling from backend to frontend whether the console is
> + * connected.  i.e. Whether it will be serviced and emptied.
> + *
> + * The flag starts as disconnected.
> + */
> +#define XENCONSOLE_DISCONNECTED 1
> +/*
> + * The flag is set to connected when the backend connects and the console
> + * will be serviced.
> + */
> +#define XENCONSOLE_CONNECTED    0
> +    uint32_t flag;
>  };

Even if the field name is singular, there's the possible reading of everything
together as the connected state merely taking one bit, with other bits available
for future use. IOW I think the field wants giving a less generic name, and
perhaps also shrinking to unsigned char (or uint8_t, but char is being used in
the structure already anyway).

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 09:30:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 09:30:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072718.1435689 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujwxF-0001W0-08; Thu, 07 Aug 2025 09:30:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072718.1435689; Thu, 07 Aug 2025 09:30: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 1ujwxE-0001Vt-T7; Thu, 07 Aug 2025 09:30:32 +0000
Received: by outflank-mailman (input) for mailman id 1072718;
 Thu, 07 Aug 2025 09:30:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+2Ad=2T=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujwxE-0001Vn-1u
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 09:30:32 +0000
Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com
 [2a00:1450:4864:20::52d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2897524d-7371-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 11:30:30 +0200 (CEST)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-615378b42ecso1527483a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 02:30: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
 a640c23a62f3a-af91a21b115sm1249598366b.103.2025.08.07.02.30.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Aug 2025 02:30: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>
X-Inumbo-ID: 2897524d-7371-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754559029; x=1755163829; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=xdAAVmbz71axBgng6Y9RnWO3HAU8mTb3tpCpSMa+Ltg=;
        b=K8cxGTwhCX/wFn//qLPAv8S4vUZ3rWub5D2WA8bfWbzVZPpGVhxWuEEAe/jvF4fCJ8
         5ufttmBKIPvtmv0HUKcRfKieWoRkkWBMrxb4OYQxuL4pAQkgcupSoKVGsZnDSqzR1kJu
         UbtJwWCpeEq+LJPDZdPHco7XGRBBZjNEQLBR+aZHvWqg/o5gf+ePUpK0xV6ex0B7yVmJ
         78/cJdrhVdLc59DIqs6yVbboJPw9FfTt0yKlNLr4UTm3UoM6Pe5Dna2mI5NKAcYJfb1Y
         M4sz3XiaKccw0LZg4R9svXPOKGKRy0rYFO94k6csFm6hBjCqXdgEElpCazlX1d8FbFlN
         3AsQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754559029; x=1755163829;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xdAAVmbz71axBgng6Y9RnWO3HAU8mTb3tpCpSMa+Ltg=;
        b=Gm3KpGTAa6TytIf0CPdTe+0oCCIOFPendVdDlcrV1F/sdOorAN4Lr4N0cu/vPjY8EC
         gDyxBweFAB2PHBrsOAjE7g8ChiLEupoupG74xYYpSMc/93GvxCXqPIy91ufwhX5iH8qy
         MmN1eBh/7+T/UP0DAgeyYjdqBH7/ot9ETmDrHTKRMMKjDgfVrJvNweoyYPxibCG2oLss
         CtMSMl6q0/EArCKzjxOSJlNvaqVYxbb3fJ36Hot1Mcw23I2ocO7RHY9XaeUMM6xUcNif
         yrn23rwMclw2oFb6/rcJhSM1P97h2CiG/8qUAhlM0YkpmTXKFdF9dqaMKYD9HEAonyqt
         oggg==
X-Forwarded-Encrypted: i=1; AJvYcCW+DO5WjMO+wEzLVUG6/v5/4J1ibzpJxwu2jM5FHiYgoxWgQYgLwfbWGUojgeUwiLSqukQmwAuxX/c=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yygo8EAgMOqgI90S54EqTbz5q1Zs0gIBztn5mN369xrujvaJAkP
	fVWXQim9N5CEx9b1Wnz4CWWXg3uWMUg4RN4XENjUnyRefol/cJ/BU4FpkEyjte5kpg==
X-Gm-Gg: ASbGncsJRyTjGi+pVkCJmRBoesMk9Ov797zMUuDctcX4gxm7VaFIDsPvYCTk8eJ5S3L
	zsGA1a7f1eCA3j6jIBgTsabxP2RxsvJb+4zytw9qWCR2sMTa0tF16YH6ITW2XOsc0R6TcjXvNoT
	0HzPISmxqgvP0U7Utra1GZlDxlES+TThD87bp0YkCboxhZS4Qni8ub/UiKJSewL5Q9pVaNAfsiq
	N5jieQo89bT6Rl7+QEp7sI5khEzA3LZIrp1a4q/pV567Z5Z883JxnyD00xQsKb7XSLP30ULqnLM
	nWg7fESovu42ZL9GGSKi31VL0/mwW0JrH0VoJOosLXHcY2p3tBS3baj8LEWTtydbW9F3DRMWjxL
	URy40uAD15i+nRa57jBM0Zf2MCFBZNuGXYKUoSzS60FKW+I9kCI+hklEoGWeDQuv1sci9GFYe4S
	VNUbbPEP9csMrytEDjgA==
X-Google-Smtp-Source: AGHT+IHVfkIPoVJLpo5TxRP04zTrgpVzxZtqpEyIxwBZdPkGmydufr3dcWJ8mjZDoInR+9IBt0iAlg==
X-Received: by 2002:a17:906:9f8c:b0:af9:3e23:831 with SMTP id a640c23a62f3a-af992ba5695mr518146266b.39.1754559029312;
        Thu, 07 Aug 2025 02:30:29 -0700 (PDT)
Message-ID: <a4a0d4ab-1fb5-4949-891f-318e3dfa22ac@suse.com>
Date: Thu, 7 Aug 2025 11:30:27 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/domctl: Reject XEN_DOMCTL_hypercall_init against
 oneself
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Frediano Ziglio <frediano.ziglio@cloud.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>,
 Ross Lagerwall <ross.lagerwall@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250806165543.169140-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: <20250806165543.169140-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.08.2025 18:55, Andrew Cooper wrote:
> --- a/xen/arch/x86/domctl.c
> +++ b/xen/arch/x86/domctl.c
> @@ -372,6 +372,14 @@ long arch_do_domctl(
>          struct page_info *page;
>          void *hypercall_page;
>  
> +        /*
> +         * Kernels should use the MSR method to get a hypercall page.  The
> +         * toolstack should not be using the DOMCTL on itself.
> +         */
> +        ret = -EINVAL;
> +        if ( d == currd )
> +            break;

Isn't what the comment says more generally true? To act on themselves, most
domctl-s are inappropriate to use, I think. There are a few exceptions, where
alternatives simply don't exist (and where, if a kernel wanted to use a domctl
[or sysctl], it would need to go through hoops to deal with the interface
versioning). Yet there's still the question of whether we shouldn't apply this
restriction in a broader fashion.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 09:38:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 09:38:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072725.1435698 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujx4O-0002Ou-M1; Thu, 07 Aug 2025 09:37:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072725.1435698; Thu, 07 Aug 2025 09:37: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 1ujx4O-0002On-JM; Thu, 07 Aug 2025 09:37:56 +0000
Received: by outflank-mailman (input) for mailman id 1072725;
 Thu, 07 Aug 2025 09:37:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+2Ad=2T=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujx4N-0002Og-KT
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 09:37:55 +0000
Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com
 [2a00:1450:4864:20::62d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 311d5d4c-7372-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 11:37:53 +0200 (CEST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-af934d7c932so115146166b.3
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 02:37:53 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af919e96050sm1270640466b.0.2025.08.07.02.37.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Aug 2025 02:37: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>
X-Inumbo-ID: 311d5d4c-7372-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754559473; x=1755164273; 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=kVGYb8WxwOhrbUuyWO0TPEotEzNdYOyXAOOWXxW+HPw=;
        b=TkMR32sorBW3pNrgb1zL0fMxDPU9U9bqqTNJBspx6wvzumt7Lj+jklL4K+6VXztehM
         BkupXJbwr2ndwUAZsl7CB7NkQiHnOZFrr1rLNBv7HCG9eZSlo2BoP8C3IHAjWIk+UUMu
         xG+A2wKVm0s2TAhWEqKwf06RcKWMFNK+C3Pl+B8QxfVkZ6v+LpGDSL+y19IOemUvbzOx
         Ql41DNyKPIMBJtcD+LAICHIGGsF8Hy/3/I4TF4Rh5qumGjarw4ZGcQC+NdguDQZFspRB
         SmGtkdamET7JQdSEHtXgdBPrcmPFRW0Kb3CTqh+47Xc6eacPc/nBzJJs4wuYdFm6i6DL
         2awA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754559473; x=1755164273;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=kVGYb8WxwOhrbUuyWO0TPEotEzNdYOyXAOOWXxW+HPw=;
        b=NmX+YtEJcxt1kAvFLmaoW+9TkvfmisgeWr+9utOGVMgFE9xqplvj8/m2lg4YDxuzn/
         O1wLUWKKCCZLLDPbp4OVIShw+hEIHOSH/m893XTG0R+bp+mnRBsElXckubRKZVL1heit
         QfC5WLUgc30S6kfuPaMp7510m72xmX+shqqoxdfa20+6uf8rhP95ZOfIlT0gLmNrnFlN
         HjvlkC+Uw2vuBR6oti97QC11KvZGoTAmreTx02wQfnByqHbFq6QoJBvBXSgiXMGHjqXD
         GY0WXd4iuxzQgpxmcGuqd4ARCZiuf/IvFpCj5ZuAimcM3Q+hF3YwG6wGgZRY+cN70jb9
         9HKQ==
X-Gm-Message-State: AOJu0YyOTUs1Jf/+9grXqFfMx3RRSDPTSxltkVF7NF0XCvuLcyo+Qgla
	NB9Zj4ffctyXlvU3YaV72s7nkB4m5o0UZvWQj+XQ/q84Cm4afWzy1vD4j+gACGBgKVp8uyhe/Uk
	vyQA=
X-Gm-Gg: ASbGnctepcCBdzpWHHLiXMUxEIPk92PGMTYMauqoc0oOmeyjBoADYJZo1brYMyurteK
	8cgzTg6A5l7oMAPiUurYgEV1D9zGv6iKMB/zsUlEMAKo/eoedLRlYZM5VTN61JG1AQJncc21R9e
	XeGeEZ4HmgLiS0kFAz5gopi+w0oHfPCuVAfCuYaQzQmTbgMzgDwMgMgUWsgZOcnOrjOjN21XTTT
	rpBvC8jKzlUcdOeT96e6rbCg7uIAN6U4jI3eQ0TuTf6xcOpzov9h1rP/r9x6eUBY/40QtjoHZoO
	mTEeOj67ozacWvHYBgA7U+1npHQdF1oZdqTnml8D+Ed9k4kuPJFKEN6sJ6tFze4l6KXwo1foI0w
	Jt5kz0YKnoOOUhcBvJjH8KIW8co1kOB93zfa6Zqn2dSLAdBnFEBDKBZuFIY7QV9vpHYPk9xqnOA
	bmOPFaKYc=
X-Google-Smtp-Source: AGHT+IEIv8t+hS15/0pF0HgwyS0DPaENZITNiW/wSa4z7N6MUGA89EWS6uSfPcjAEc5IszNiZqOVVA==
X-Received: by 2002:a17:907:f812:b0:af9:a2a9:b5f8 with SMTP id a640c23a62f3a-af9a2a9b9b6mr288339266b.18.1754559472972;
        Thu, 07 Aug 2025 02:37:52 -0700 (PDT)
Message-ID: <cb3eea3a-bd7a-441b-8bd8-eeabad7ae52c@suse.com>
Date: Thu, 7 Aug 2025 11:37:51 +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>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH RFC] x86/mm: split unmapping and marking-as-I/O in
 arch_init_memory()
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

The unmapping part also wants to cover UNUSABLE regions, and it will now
be necessary for space outside the low 16Mb (wherever Xen is placed).

While there, limit the scopes of involved variables.

Fixes: e4dd91ea85a3 ("x86: Ensure RAM holes really are not mapped in Xen's ongoing 1:1 physmap")
Fixes: 7cd7f2f5e116 ("x86/boot: Remove the preconstructed low 16M superpage mappings")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Originally I had the unmap cover the entire range up to 4Gb, which made
this ACPI mapping issue more pronounced: Mappings done by
acpi_dmar_init(), erst_init(), and acpi_hest_init() may wrongly be
undone this way. Having limited things to the initial mapping range, the
risk of an overlap with some area which needs to remain mapped is lower,
but it's not gone.

As the excess mappings could, at least in principle, also cause other
issues (like mapping a range WB which must strictly be non-cachable), I
wonder whether we can actually get away with those excess mappings,
despite properly tearing them down in arch_init_memory() (directmap) and
__start_xen() (Xen image space). Options would appear to be to move
_end[] to a 2Mb aligned boundary (or at least extend the PT_LOAD segment
to end at the next 2Mb boundary), or to use 4k mappings for the tail
part of .bss. That would then also eliminate the remaining concern here.

Extending the PT_LOAD segment (in mkelf32) would apparently allow to do
away with the hackery introduced by 773ded42218d ("Move cpu0_stack out
of Xen text section and into BSS"), to "work around" a supposed linker
bug (which really was a bug in the linker script imo). The extra command
line argument then wouldn't be needed anymore.

--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -275,8 +275,6 @@ static void __init assign_io_page(struct
 
 void __init arch_init_memory(void)
 {
-    unsigned long i, pfn, rstart_pfn, rend_pfn, iostart_pfn, ioend_pfn;
-
     /*
      * Basic guest-accessible flags:
      *   PRESENT, R/W, USER, A/D, AVAIL[0,1,2], AVAIL_HIGH, NX (if available).
@@ -292,12 +290,55 @@ void __init arch_init_memory(void)
      * case the low 1MB.
      */
     BUG_ON(pvh_boot && trampoline_phys != 0x1000);
-    for ( i = 0; i < 0x100; i++ )
+    for ( unsigned int i = 0; i < MB(1) >> PAGE_SHIFT; i++ )
         assign_io_page(mfn_to_page(_mfn(i)));
 
-    /* Any areas not specified as RAM by the e820 map are considered I/O. */
-    for ( i = 0, pfn = 0; pfn < max_page; i++ )
+    /*
+     * Any areas not specified as RAM by the e820 map want to have no mappings.
+     * We may have established some by mapping more than necessary in head.S,
+     * due to the use of super-pages there.
+     */
+    for ( unsigned long i = 0, pfn = 0,
+                        rlimit_pfn = PFN_DOWN(PAGE_ALIGN_2M(__pa(_end)));
+          pfn < rlimit_pfn; i++ )
     {
+        unsigned long rstart_pfn, rend_pfn, start_pfn;
+
+        while ( i < e820.nr_map &&
+                e820.map[i].type != E820_RAM )
+            i++;
+
+        if ( i >= e820.nr_map )
+        {
+            /* No more RAM regions: Unmap right to upper boundary. */
+            rstart_pfn = rend_pfn = rlimit_pfn;
+        }
+        else
+        {
+            /* Unmap just up as far as next RAM region. */
+            rstart_pfn = min(rlimit_pfn, PFN_UP(e820.map[i].addr));
+            rend_pfn   = max(rstart_pfn,
+                             PFN_DOWN(e820.map[i].addr + e820.map[i].size));
+        }
+
+        /* NB: _start is already 2Mb-aligned. */
+        start_pfn = max(pfn, PFN_DOWN(__pa(_start)));
+        if ( start_pfn < rstart_pfn )
+            destroy_xen_mappings((unsigned long)mfn_to_virt(start_pfn),
+                                 (unsigned long)mfn_to_virt(rstart_pfn));
+
+        /* Skip the RAM region. */
+        pfn = rend_pfn;
+    }
+
+    /*
+     * Any areas not specified as RAM or UNUSABLE by the e820 map are
+     * considered I/O.
+     */
+    for ( unsigned long i = 0, pfn = 0; pfn < max_page; i++ )
+    {
+        unsigned long rstart_pfn, rend_pfn;
+
         while ( (i < e820.nr_map) &&
                 (e820.map[i].type != E820_RAM) &&
                 (e820.map[i].type != E820_UNUSABLE) )
@@ -317,17 +358,6 @@ void __init arch_init_memory(void)
                                PFN_DOWN(e820.map[i].addr + e820.map[i].size));
         }
 
-        /*
-         * Make sure any Xen mappings of RAM holes above 1MB are blown away.
-         * In particular this ensures that RAM holes are respected even in
-         * the statically-initialised 1-16MB mapping area.
-         */
-        iostart_pfn = max_t(unsigned long, pfn, 1UL << (20 - PAGE_SHIFT));
-        ioend_pfn = min(rstart_pfn, 16UL << (20 - PAGE_SHIFT));
-        if ( iostart_pfn < ioend_pfn )
-            destroy_xen_mappings((unsigned long)mfn_to_virt(iostart_pfn),
-                                 (unsigned long)mfn_to_virt(ioend_pfn));
-
         /* Mark as I/O up to next RAM region. */
         for ( ; pfn < rstart_pfn; pfn++ )
         {
@@ -365,6 +395,7 @@ void __init arch_init_memory(void)
                     const l3_pgentry_t *l3idle = map_l3t_from_l4e(
                             idle_pg_table[l4_table_offset(split_va)]);
                     l3_pgentry_t *l3tab = map_domain_page(l3mfn);
+                    unsigned int i;
 
                     for ( i = 0; i < l3_table_offset(split_va); ++i )
                         l3tab[i] = l3idle[i];


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 09:43:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 09:43:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072740.1435709 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujx9t-0004AX-8o; Thu, 07 Aug 2025 09:43:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072740.1435709; Thu, 07 Aug 2025 09:43: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 1ujx9t-0004AQ-5u; Thu, 07 Aug 2025 09:43:37 +0000
Received: by outflank-mailman (input) for mailman id 1072740;
 Thu, 07 Aug 2025 09:43:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+2Ad=2T=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujx9r-0004AK-Lf
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 09:43:35 +0000
Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com
 [2a00:1450:4864:20::62d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fbb57afe-7372-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 11:43:33 +0200 (CEST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-af95b919093so118442266b.2
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 02:43: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
 a640c23a62f3a-af91b36e91dsm1235169866b.69.2025.08.07.02.43.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Aug 2025 02:43: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>
X-Inumbo-ID: fbb57afe-7372-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754559813; x=1755164613; 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=r7HxzkHM/6mjtutbbGzIGlGLhAzJGyChLqesKE+8b/w=;
        b=bz868xRGtlIeL5p9tsovk5ScCCZoL1w4Q/a6s4PP160VfBNdX+L1RsTIsWD6O3ONnm
         dIfSnnG1Lp6nto/9jOAbfT5S0bDKJIjYRSwmdZXTzCCfYhO4OMGMdo7c1uQhCsriGOth
         7F3Dr7tjVIS6hzKt6wtQ3WAI5Xdkv1QZLP5xg+K9xXxvrhxjJxVYsGqVpcyhVoZuNmJU
         +arUl77qMkQUzFqZQM9MWfqjnK+rRoyaoHQhZUj5M49cCrin4rY9cxvTUILeY9JE6t1c
         s7B+mHs4f4CNamp7NB0ZE/FZjKaDViqhsWHpk6oxZUKKk0JuCc7wjJxUixvLfNPPrI55
         Hufw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754559813; x=1755164613;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=r7HxzkHM/6mjtutbbGzIGlGLhAzJGyChLqesKE+8b/w=;
        b=PcLG79TU2wcGXYl8owGyIe0fYPD9Q5A1JWr5V+Al6lETGCMkzMeZ30Kfcj5l7J138S
         JKep901kPk9YaoXkLpTFGfh1wp8QvhP6P+RZuEXK4pBz+Aqyz4b/XpftGZ3a1xEWSUi6
         GSe8C/P3/bue19HrvA7xS1y9VRv5hk+bP70yq6wsocvqff11QSfbKU32+4+VXsjb8pIG
         mF14GrpR6RSUsh+dn87QJCeS+A0EF4OEz/AXcntMNi22dy66nyZ87+HRNJYlvjl6++8C
         5rhJCmA9HMPGO8vacm8snIYne9v7nsD6JCqEzJwFER2+7C3Wy7k7PANsEOl/pQ6+tC9H
         f4Kw==
X-Gm-Message-State: AOJu0YxJN13pLXBuhYxzBXPhQO9Mng4KOg1O/yasvEolF0SmDlSDMS4F
	R9MXful2ELZtzLrNa4h4Oj7GIkQQfGyOZ8G+8+K9KczL4POTK41kvtt05zYwEt1dorPI+RBbXCK
	9KRs=
X-Gm-Gg: ASbGnctOSx6aP9FEQAngxjjZiwgZnOb3HpONHXQIqw7XAh6fCS4aBJl0ogfFLCN/D+v
	uZ54uhcnVdQ3BDXtSszrlleUXTmxWHMhzwnugTEc56nJVLPO7QKSitj5yM6ACqq6/Y6vXzcC4RX
	wA0vEID1Mq0+LQSPMSlvjetgs8GHwUJLpl/t5QJaGSHjK06U3pYd5f6LNuyLLDp9j60zqq+x1Bm
	k2k/7UneAOAM8qkvqCba4nWuvDq1sKorsG2ulNl4HWjHkkfA3NNci4WA+xiq82BsLj0wVSwj9yK
	7yoxsQ52lgmrVZjMtRu7f9AE8rRcT5QIBlSc4UXU9rmA0oNAzzDk0g19E1DLxOGlaRE+HYrzDjA
	eAbFBWPKVAgBiQGL1ORmC4KLPg9+DLU7NZLdtS6AwClMYJxOzTWPmq99kxecfhxjahjAubwM6yT
	DFIP34kDk=
X-Google-Smtp-Source: AGHT+IH39RhhH+a3wLByT/fjVJCvMh+dCpwvRJGVCJj+kpcHZOF4rQXYJRt3nTf6E9hTUyI73oVHVA==
X-Received: by 2002:a17:906:fe0b:b0:ae3:bb0a:1ccd with SMTP id a640c23a62f3a-af99032e2bdmr564395866b.26.1754559812916;
        Thu, 07 Aug 2025 02:43:32 -0700 (PDT)
Message-ID: <5f00736f-2f3f-43a3-b9da-5e0e704a64f1@suse.com>
Date: Thu, 7 Aug 2025 11:43:31 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH RFC] x86/mm: split unmapping and marking-as-I/O in
 arch_init_memory()
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: <cb3eea3a-bd7a-441b-8bd8-eeabad7ae52c@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: <cb3eea3a-bd7a-441b-8bd8-eeabad7ae52c@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.08.2025 11:37, Jan Beulich wrote:
> The unmapping part also wants to cover UNUSABLE regions, and it will now
> be necessary for space outside the low 16Mb (wherever Xen is placed).
> 
> While there, limit the scopes of involved variables.
> 
> Fixes: e4dd91ea85a3 ("x86: Ensure RAM holes really are not mapped in Xen's ongoing 1:1 physmap")
> Fixes: 7cd7f2f5e116 ("x86/boot: Remove the preconstructed low 16M superpage mappings")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> Originally I had the unmap cover the entire range up to 4Gb, which made
> this ACPI mapping issue more pronounced: Mappings done by
> acpi_dmar_init(), erst_init(), and acpi_hest_init() may wrongly be
> undone this way. Having limited things to the initial mapping range, the
> risk of an overlap with some area which needs to remain mapped is lower,
> but it's not gone.
> 
> As the excess mappings could, at least in principle, also cause other
> issues (like mapping a range WB which must strictly be non-cachable), I
> wonder whether we can actually get away with those excess mappings,
> despite properly tearing them down in arch_init_memory() (directmap) and
> __start_xen() (Xen image space). Options would appear to be to move
> _end[] to a 2Mb aligned boundary (or at least extend the PT_LOAD segment
> to end at the next 2Mb boundary), or to use 4k mappings for the tail
> part of .bss. That would then also eliminate the remaining concern here.
> 
> Extending the PT_LOAD segment (in mkelf32) would apparently allow to do
> away with the hackery introduced by 773ded42218d ("Move cpu0_stack out
> of Xen text section and into BSS"), to "work around" a supposed linker
> bug (which really was a bug in the linker script imo). The extra command
> line argument then wouldn't be needed anymore.

Thinking about it, this would then also simplify ...

> --- a/xen/arch/x86/mm.c
> +++ b/xen/arch/x86/mm.c
> @@ -275,8 +275,6 @@ static void __init assign_io_page(struct
>  
>  void __init arch_init_memory(void)
>  {
> -    unsigned long i, pfn, rstart_pfn, rend_pfn, iostart_pfn, ioend_pfn;
> -
>      /*
>       * Basic guest-accessible flags:
>       *   PRESENT, R/W, USER, A/D, AVAIL[0,1,2], AVAIL_HIGH, NX (if available).
> @@ -292,12 +290,55 @@ void __init arch_init_memory(void)
>       * case the low 1MB.
>       */
>      BUG_ON(pvh_boot && trampoline_phys != 0x1000);
> -    for ( i = 0; i < 0x100; i++ )
> +    for ( unsigned int i = 0; i < MB(1) >> PAGE_SHIFT; i++ )
>          assign_io_page(mfn_to_page(_mfn(i)));
>  
> -    /* Any areas not specified as RAM by the e820 map are considered I/O. */
> -    for ( i = 0, pfn = 0; pfn < max_page; i++ )
> +    /*
> +     * Any areas not specified as RAM by the e820 map want to have no mappings.
> +     * We may have established some by mapping more than necessary in head.S,
> +     * due to the use of super-pages there.
> +     */
> +    for ( unsigned long i = 0, pfn = 0,
> +                        rlimit_pfn = PFN_DOWN(PAGE_ALIGN_2M(__pa(_end)));
> +          pfn < rlimit_pfn; i++ )
>      {
> +        unsigned long rstart_pfn, rend_pfn, start_pfn;
> +
> +        while ( i < e820.nr_map &&
> +                e820.map[i].type != E820_RAM )
> +            i++;
> +
> +        if ( i >= e820.nr_map )
> +        {
> +            /* No more RAM regions: Unmap right to upper boundary. */
> +            rstart_pfn = rend_pfn = rlimit_pfn;
> +        }
> +        else
> +        {
> +            /* Unmap just up as far as next RAM region. */
> +            rstart_pfn = min(rlimit_pfn, PFN_UP(e820.map[i].addr));
> +            rend_pfn   = max(rstart_pfn,
> +                             PFN_DOWN(e820.map[i].addr + e820.map[i].size));
> +        }
> +
> +        /* NB: _start is already 2Mb-aligned. */
> +        start_pfn = max(pfn, PFN_DOWN(__pa(_start)));
> +        if ( start_pfn < rstart_pfn )
> +            destroy_xen_mappings((unsigned long)mfn_to_virt(start_pfn),
> +                                 (unsigned long)mfn_to_virt(rstart_pfn));
> +
> +        /* Skip the RAM region. */
> +        pfn = rend_pfn;
> +    }

... this: If we're loaded in an area that's a multiple of 2Mb in size (and
2Mb aligned), we wouldn't need to walk the E820 map anymore. The boot loader
(or whatever else) must have placed the entire image inside a RAM region.
Hence we could simply unmap [PAGE_ALIGN_4K(_end), PAGE_ALIGN_2M(_end)),
outside of any loop.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 10:01:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 10:01:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072754.1435719 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujxRT-0007CG-Rr; Thu, 07 Aug 2025 10:01:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072754.1435719; Thu, 07 Aug 2025 10:01:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujxRT-0007C9-OQ; Thu, 07 Aug 2025 10:01:47 +0000
Received: by outflank-mailman (input) for mailman id 1072754;
 Thu, 07 Aug 2025 10:01:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=llzQ=2T=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1ujxRR-0007C3-Np
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 10:01:45 +0000
Received: from fout-a7-smtp.messagingengine.com
 (fout-a7-smtp.messagingengine.com [103.168.172.150])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 80f36ef6-7375-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 12:01:37 +0200 (CEST)
Received: from phl-compute-06.internal (phl-compute-06.internal [10.202.2.46])
 by mailfout.phl.internal (Postfix) with ESMTP id 8FBDFEC00F4;
 Thu,  7 Aug 2025 06:01:35 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-06.internal (MEProxy); Thu, 07 Aug 2025 06:01:35 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 7 Aug 2025 06:01: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>
X-Inumbo-ID: 80f36ef6-7375-11f0-b898-0df219b8e170
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=1754560895;
	 x=1754647295; bh=AJ5OFoRbsYaQslHS/TiLgpsvE1aZQhx45duQFUz3QnM=; b=
	U9KyEpEKVbH8LP5kGIK5JHgooSbf5ErZBx6sLnT8AERMfRKhBiqonmgv5+wTEEMo
	3Ryq4cKQYZBM9nIkw8bd0/MxOv/p8+9hocdhYhUWlk1F5P9vTOLa5O1+SogGA8y+
	N9PzHTFD+IKwdyxVrm0gTe+wopML403v5bxWioFhRedREhlv1yHMEJEW7DryT8BY
	1DWl8XstIiZ4XXxgLk2JkZ+8Rc6/G/S0Xt+lGibzK27PzT9yu7Wb2alG81vISnFj
	HRYxnPiSzwMVpEKKWoOCAaUDpeCs1jIs4oj32c/LcxiBvohrYBM9gEIbdnBduM2z
	SG1oKFwldLKrUBuwKaDGQg==
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=
	1754560895; x=1754647295; bh=AJ5OFoRbsYaQslHS/TiLgpsvE1aZQhx45du
	QFUz3QnM=; b=Pt26urSLhoZakgAnPi73RuskIa3SmKEtIfppLehLno2mAkdbUV+
	8QF9pOkKUusRu2mzEovRfN+/1rsyXz9gS0YTS8BnFtdeWKZtJc5zfBkIRB5rx5m9
	qlDCbQKz+Ii0bAhHyYHiVhUMMKL/8eVzOnvIMe85KjDwD8wAQQRJn3oPNnMSw3z/
	3/RpD89ofoSpmeqIHs9hsnsYxpg6oe1sPTEMGZ/vq1TQ5PMfPFVSiuqeHeVsdzgu
	15CJfweHiLuOYx4MiVn6RAh4K7Zt8ZLE6VL2g/YsoojQeLIS4d0MODoaSnsesTHt
	JcP77PMQTT6PeIJWSVDdbtEKpviXhBOYPJQ==
X-ME-Sender: <xms:f3mUaAceppnG1E25q6vK1Y5YVeM8GEfexMUIyPRZ2taNwvD8qXjknQ>
    <xme:f3mUaMwgE9nwmQ0tpDT9pZZTRWnWCDx2gzZJ0-jyU_Pxsh49RgOR3xakQ61KZ44rv
    hOxQlDqKBICnQ>
X-ME-Received: <xmr:f3mUaOFMzJlb0Wy_eyb-LMfLGQldMmLKnP5JMyJteqOcnDzrZKF69X-hlR3JaYAZHVvmNohdi0dtOCB_xQ5o1ZUGcL8d87PBSTM>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgdduvddtieegucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfduleet
    feevhfefheeiteeliefhjefhleduveetteekveettddvgeeuteefjedunecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepgedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtoheprghnughrvgifrdgtohhophgvrhefsegt
    ihhtrhhigidrtghomhdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvg
    hnphhrohhjvggtthdrohhrghdprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvghr
    nhgvlhdrohhrghdprhgtphhtthhopehrohhgvghrrdhprghusegtihhtrhhigidrtghomh
X-ME-Proxy: <xmx:f3mUaIwXvLOMBoCAtQiDv6BFoX3GaDmowD3z6MTyj_gli3RiVE6UVw>
    <xmx:f3mUaHsc5O8i49pSUQo6YeFeG0MV2sMUZA9i6Sh5TFlMwIcMVbemyA>
    <xmx:f3mUaN21BYk76uBmfatz9d6W8xBAeJkuAkHvessXeOkpBa_44Dt7Ew>
    <xmx:f3mUaK_ju-FoBTubbfk7E4qZPg0gFCcuO5Rl-RAjpjSseggPG55c1Q>
    <xmx:f3mUaBbWz5me7tn19G7yOxB4U5LBoZuWw01v9b_3y4M4T0LS6WPwbq7p>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 7 Aug 2025 12:01:32 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org,
	Stefano Stabellini <sstabellini@kernel.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [PATCH test-artifacts] Add debian rootfs artifact
Message-ID: <aJR5fGn4kU4HYGfA@mail-itl>
References: <20250807000318.2284283-1-marmarek@invisiblethingslab.com>
 <461423ec-9c34-4df6-a073-d1e4c78badad@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="7hlTsf29IqlNLwo2"
Content-Disposition: inline
In-Reply-To: <461423ec-9c34-4df6-a073-d1e4c78badad@citrix.com>


--7hlTsf29IqlNLwo2
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 7 Aug 2025 12:01:32 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org,
	Stefano Stabellini <sstabellini@kernel.org>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: Re: [PATCH test-artifacts] Add debian rootfs artifact

On Thu, Aug 07, 2025 at 08:55:56AM +0100, Andrew Cooper wrote:
> On 07/08/2025 1:03 am, Marek Marczykowski-G=C3=B3recki wrote:
> > Will be used as dom0/domU in some tests.
> >
> > Install OpenRC and setup it to start /etc/local.d/ scripts so tests
> > don't need different cases for Alpine and Debian.
>=20
> (Yeah, I got this via CC.)
>=20
> I was just thinking that we needed some non-Alpine testing too, but for
> a different reason.
>=20
> We have systemd configuration in Xen, and changes to it, yet no CI of
> what is the most common init system in Linux these days.
>=20
> What would need to be different in tests to avoid OpenRC?=C2=A0 If it's o=
nly
> the script to start the test running, can't we just declare a name, and
> arrange for both init systems to run it?

In this particular test, probably just that. And convincing
systemd/journald to dump logs to the console. But some other tests (if
we'd want to reuse this artifact) wait for "Welcome to Alpine Linux"
text, or start other services via /etc/init.d (mostly xencommons...).

And also - installing openrc takes 3MB, installing (just) systemd takes
30MB. And I haven't tried yet if any auxiliary package isn't needed
too...
But I can see what it takes to make the test use systemd.

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmiUeXwACgkQ24/THMrX
1yw5kgf/feZtgH6SCT2MlgJX2gU1cy4NBPjMNLqY9VYzSNPnPdmzpPWNwZsMP7C2
oIMETHrBm+xPpeYpExlUaHme0EVr3mdA1+rnYryDAfWb3Uh5yRpeT29U1rBwjvc6
h8AtT0MNPu2TpMqjgi8wtPzRuE3UDw5YtxoE+OHY8NMLB00ELMiaKgHSdiB/i4cY
WHwoldjLVe2XeNHhMMQHWt+Zgt1zBsjp6NXKYAADckNvSUcHG+BUMHFwwvKqHmBt
q+3V1DwjrYMcLqcS7i1E1Huh0ygwtdzMZrPuPWUx5lFJDmI9IaOZOblTi1I5rIXv
rqqn8cHejvA9jqeBRUG0VNZi16ls7g==
=L1sQ
-----END PGP SIGNATURE-----

--7hlTsf29IqlNLwo2--


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 10:03:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 10:03:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072761.1435729 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujxT8-0007hq-5C; Thu, 07 Aug 2025 10:03:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072761.1435729; Thu, 07 Aug 2025 10:03: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 1ujxT8-0007hj-1w; Thu, 07 Aug 2025 10:03:30 +0000
Received: by outflank-mailman (input) for mailman id 1072761;
 Thu, 07 Aug 2025 10:03:29 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=eTYG=2T=epam.com=grygorii_strashko@srs-se1.protection.inumbo.net>)
 id 1ujxT7-0007hd-As
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 10:03:29 +0000
Received: from GVXPR05CU001.outbound.protection.outlook.com
 (mail-swedencentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c202::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c3d95373-7375-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 12:03:28 +0200 (CEST)
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 (2603:10a6:10:435::21) by PA6PR03MB10211.eurprd03.prod.outlook.com
 (2603:10a6:102:3cd::22) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.15; Thu, 7 Aug
 2025 10:03:25 +0000
Received: from DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584]) by DB3PR0302MB8919.eurprd03.prod.outlook.com
 ([fe80::ce88:43f9:c971:9584%7]) with mapi id 15.20.8989.018; Thu, 7 Aug 2025
 10:03: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>
X-Inumbo-ID: c3d95373-7375-11f0-a324-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wToG+n6x9HmjLFgXppME0mzKgIo5PJXZScLsfrcWbobZYHLaNiMU4/uy4rvyt8SgH9/M1Bc5xXrTy8H/kvOsNbNvSNLYQ5zlwKAgx4e5sxUlVIkljVubPMyQ3ShqSsO7elliruKPDBMaQgc2HU6fPDSPoieKzg6/wPEcIlsdXOvn+oAM5Dw4p5pEJu8/8eHzvSJT7Ljmanv3tDb+LfJqPI8Qe9rrj2BY3Jd+tghtLfPqjk/qMhYR6HA/f68pVQwRDKJucWTn8xtL2SamH1HbZQY2p+sIlOHTUK0FbxUPLGF0ueZRuK+9nO1lWLbIXK1iXSVU3jVugHoH2g8h9h39Mg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=B7hZ5D3jfW8bkALQeyclhEHdwOVrPtaxLoDxcmg317U=;
 b=C9iHal1x99cEaRHm7KTdnQHugus/pACk5Nnm8L/yK1qLj7wpD0x9TH0OLRURJsNiJO37llZhfH8NkahanD+FHTj9FyzJ0hOPo5wGUMQQ0mefqLqMIHEU21EyFQz5ZyJST5nZBdZp6Cch8+9tNQiZBCm3SOGVeQzKJvftOKmGynTgp3lz0dQgGYsELbiuF/S3z30zzKbZodOUCKWjKCKzOBMEuskVPmJxt/yvabznbYlA7zcy8C3jF07k+Xv1SPJL53u5DpxvZwaojtiBEfem4AMAEhlcE8RajVKtKNEpKsHW7NIGWRgDCI+hm5PbZ2jCN52hArxXFMmxs856v7slWQ==
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=B7hZ5D3jfW8bkALQeyclhEHdwOVrPtaxLoDxcmg317U=;
 b=nC7iPrBjksJxKbxoktj0nsihd0Us/uWsHPPYjgrpJyHH8yhRq2V64PqOcNAZxdhpS1J334E3OsTb2ZTNgxJuF6rgHV6Rc8Ov1vH5gqohzjXC4EO5th5bGHdlWzEB8NJ7FOqrYBEPH+kp0YKkrD1uXH3B6Ik0ArF31WF4hTZlIkTeFGC+9EwLE9YHdmfEBvYvHavGDdmJnKlDAuRpAGyNoF+6JvX7LBruwJX40a93SMgyMsU9pAkYg0Sp/lUtXJOaSosUX0O+FAddi3fr9uY/7W9QHorHwI7SDQbHXcEZzccTN/nprHWK6P1N897WK0M3aZH/iG0nkcjGeTETXrBVIw==
From: Grygorii Strashko <grygorii_strashko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Grygorii Strashko <grygorii_strashko@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Denis Mukhin <dmukhin@ford.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Julien Grall <jgrall@amazon.com>
Subject: [PATCH v3] xen/dom0less: arm: fix hwdom 1:1 low memory allocation
Thread-Topic: [PATCH v3] xen/dom0less: arm: fix hwdom 1:1 low memory
 allocation
Thread-Index: AQHcB4KDC2FxELT99UexPqqnlkcdng==
Date: Thu, 7 Aug 2025 10:03:25 +0000
Message-ID: <20250807100323.513384-1-grygorii_strashko@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: DB3PR0302MB8919:EE_|PA6PR03MB10211:EE_
x-ms-office365-filtering-correlation-id: e41910b4-51ec-47c0-f4d1-08ddd599a669
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|7416014|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?QvUYkH1ohvfFR4S7jVSv5lWkwwRf8OXd4TsxnhewlJ3wHmYb4m1T53fJgN?=
 =?iso-8859-1?Q?jBRNanuJ8Dhs+ujiIgGjhHLTY/KtzqOuobpaYfXuZnRbv8GCdbO7sBTmrN?=
 =?iso-8859-1?Q?Jqs6UQY/ypimZcvF9/h+ucBdWGanp6AYTJl/9RUSphxMgwwftlOb9L8LpN?=
 =?iso-8859-1?Q?F3zXZYAVBZdJLkQUUxinqgsa09jX13V024+b1qVtT+N77IXZJQnPvDhy9x?=
 =?iso-8859-1?Q?gMlz6Sa5OexChcWznrJ3B6MRvFlVKpZLmOMsaYHyDUtwxaK/4/lvTQUWvp?=
 =?iso-8859-1?Q?J6zwtR5ttvQH07dybzVQTNgxsewA1qU/NWeG6WifeAHRlsi3TjOaYZRK6g?=
 =?iso-8859-1?Q?AQIDj4bjjBXPxlQjVFKztSuQTpxJ/jHU60ML76YltVYgT7Sry5VNVqcXmp?=
 =?iso-8859-1?Q?UG8EDMijBTuRWcvCo4raQhBza0hfCLSJEWH9YehrDpgXAeBRQmyMnkOGyz?=
 =?iso-8859-1?Q?tFKvRIpX0h1InOo6d9GveJ+pLZ2qEFBT/K49N4Weqk49fEYTUGZY757/Ok?=
 =?iso-8859-1?Q?qsTTQIz/ibQ+FcXZqZnphlAy7Wbp8ACrD4h6yh6t7d5J3vERV8A4sLRBzC?=
 =?iso-8859-1?Q?MjUTy99ICzznbMNccltJK3ocCWndWoDFN2BVkKQ3d/BY7n+iky7MV21PvD?=
 =?iso-8859-1?Q?UXDNBnbx79YUUsb7rx8im7VCnjuyBuoYVVZRR9IWjWtvl/5QFtU6kSxGNY?=
 =?iso-8859-1?Q?AlP9Xh5N3RfnVejozzMUzK2z6OQA5ELYlxjKTTz4hkYM6FcuklzsjuO+iU?=
 =?iso-8859-1?Q?KGhbeSQWXjAnvw7tcqDaG1pdWarRlI2XIY91JjAgDNHM1o3MdMtw+gWQ5h?=
 =?iso-8859-1?Q?gn3r7TqpWlv8Rv//CWgiMs85J2OGTOofbZ+NMMtyTbbheXQPa79A/8Pdw6?=
 =?iso-8859-1?Q?4WjfeoTh0AiuzoGFjy4Kx9Nz9gv/3rQQVzv6WL0TZ+jo0Cfe3JpPe61zNN?=
 =?iso-8859-1?Q?iq6Dk4MUUQWuemsCNoQ9D47JL/xXla2DkuMvFOJcLd+r8+P2/jjL4Hjhbb?=
 =?iso-8859-1?Q?C4TMk4aZk5PP9DdqxdVouRhXBjmZ2avvB03XNRWuDJlN8nh2mX2ItCbYkJ?=
 =?iso-8859-1?Q?21AAAc9Sqr6MSHERMwGnRwqbpY/mAfDhOEXtOon5YkGIk2YVJ5+lixQK8b?=
 =?iso-8859-1?Q?NGAA/VuFmvrdP6umJ4CfUgbCs3wHec+6IkAHBdx3gCn+k7ygurzHDJlObk?=
 =?iso-8859-1?Q?9IOmW5AMxwnC66TysKNiBYSULZCecvWBlUauxIDlLMuKQ4UmzuH3Wh0dbn?=
 =?iso-8859-1?Q?rU5/CedFbrGp0BuwKgLikjHj9/OJrtEMvi5OPHXDLJUAsBEXbcpcJX+eB/?=
 =?iso-8859-1?Q?tXHZlbPJRaiz81WzTDnvQSr/6O04/ewyM5Tlz5Iku7QRvzWUgrdKdLzkJb?=
 =?iso-8859-1?Q?TarH6028dh3w8M+0qN6oHc5CRo+qwoL3Gx9hr8VhsyY2FrRV8/3YNF2L8O?=
 =?iso-8859-1?Q?tGWTsMphN1pgKYa7vWvh5FY1bznx7rYsKs3hqMKvcKd//tfIgE0S+ycDJE?=
 =?iso-8859-1?Q?z+2ijeTS6y4WVh0fhbaMYiWCeYVCewZ4RCUKhyd2F3VQ=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB3PR0302MB8919.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?waq/oJPrx0QwILL+YeCqfMH+Iw8fd8H6DnKIthjFrDuMz7b7U6oHV866Xs?=
 =?iso-8859-1?Q?rjsGZ1bGz00SrsABq+azIFyC+YvlBUQG6oBfgE26tBwa4bmn2VP5PNUBkw?=
 =?iso-8859-1?Q?UQwv1cWEi5SFe//44UJ9mwVPxmEaHC1XeIZuQ21970WJCmIaVlq/EPoGUU?=
 =?iso-8859-1?Q?zN7rQtLLAuJ+wKGy6pEgPPh0k3Bs0dURMI3fKfKLn5vCWUat6b1MTmm2Qm?=
 =?iso-8859-1?Q?NWbgnF/zn+I2ynpMME0eZakAfJwPRaefPtIFPuKLC3e1JxAob8H0TC+Vnh?=
 =?iso-8859-1?Q?7e2HYMCroisnaZYOWmeO5Pve/KXQqx6kWkAv8x545V4jerUCSJ1Bkk0ud7?=
 =?iso-8859-1?Q?ujDeWCF5lbP74eFFQrVqbRjo9SuSEXPQFaOFFdHC4+k2SuksFbwqEBi/ay?=
 =?iso-8859-1?Q?GsC03p7tXHNQBVyLanNr22kRpqXrYJY4WRS/7gfdQV/hEKjWnsdLmasOtA?=
 =?iso-8859-1?Q?wfWFS9CUnIdnLhb4pl1WyAW9336jfa8M5csHGB7ADppj8SmNGMf9hRX/yB?=
 =?iso-8859-1?Q?90EHkKna7nONRf9pTcLckY5tNyHiNSQtLXzXY+idl1g0+2pFkqypjvFwa6?=
 =?iso-8859-1?Q?cJ6ap4ok4Y2hv2HSK2JsqVXQlxDg6yDdEwKG3DA0k1FcTJWZ+QMkJtiO/n?=
 =?iso-8859-1?Q?U7r/wQ+geXkSPA/aJMCjWppVQQ58KdLMvScukz6R+siBaOfKzXj2T5VQnm?=
 =?iso-8859-1?Q?dh6KjRKfHaQJk2Zo4xkMyHVDxLJLwR8FopgWNS2Jn5mNu6UodcgV6cqWds?=
 =?iso-8859-1?Q?G5C7++T2rTiIRiVoZV/soYar1jH30oinLmsFpQY5t/wNgEP5DNCvea7TkO?=
 =?iso-8859-1?Q?BolrLdgSZH1FZ4ApH8miqWIIEwRWXmHxqB+55sZR49qz5TvBTKaYJLp2vS?=
 =?iso-8859-1?Q?bYzuKKow4ZT6th+u5KKgTqRSA/RvTX1W6SYGXF181O3f60TwcQCDI3f1CP?=
 =?iso-8859-1?Q?q0WRv+PrQ6iIxidkYoKkPTXtpIsgJf9gA4yYlfjdzWdktmmVfodqCBZW1s?=
 =?iso-8859-1?Q?223v1OxbTRg0MYm8/JZABg5SlNiz5WVltE9i69oh+B6z6fEWMuf0x3hDHh?=
 =?iso-8859-1?Q?rPv84cV8KvV+YWO9riaXSOlZFOP53iCVLeHudwS3o8hzI2dwgaz815MMnV?=
 =?iso-8859-1?Q?wNyKn9hwkNcv/sX5tvkbVHgoDVaX8ywEUvUZxj288xZAgTrFBeylB4t2Dk?=
 =?iso-8859-1?Q?ycZ9jj/KZn1/Yg/VIIBSdUzKdi2A2NtHZaJ+6gcS1PFZg+0WbIS5Dr9CR5?=
 =?iso-8859-1?Q?2jjf7537csXxQTMNDwFI1p1OijB393ZzkDq8edDT4nOOgLKxXaYfkTitTk?=
 =?iso-8859-1?Q?1hECNZFrI+Bspu8u5pdXbD45dTe3tTiLYx7XJpq15QIb4FQ98KBg67aSrd?=
 =?iso-8859-1?Q?3tS7wLqEP7IGnZO8ALkiKzqZjwBxSM231iFcTpYjk8rEHx0D0j+jm5cAZA?=
 =?iso-8859-1?Q?H+RKUCbAJZcFCSdaiCubAk30Tx8JS3npCartfgKVCVFwZM8aGpvyN5DNg1?=
 =?iso-8859-1?Q?BU4kBKjEqSiOf1Pm7aYXzlyJR5Yu90HIx7TZsK4kuEppuiins+ppb2ZQhi?=
 =?iso-8859-1?Q?BwB471NptlYV3p+O2duEHniMUdvBCJAaXk6i/FhGACrvB5FH86sdiCpL0b?=
 =?iso-8859-1?Q?lCcB6fNimlR8233m8yFtKTC/iB4mi/o5ny6Cp70vO6+mtc9sbcxOvthw?=
 =?iso-8859-1?Q?=3D=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: DB3PR0302MB8919.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e41910b4-51ec-47c0-f4d1-08ddd599a669
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Aug 2025 10:03:25.4776
 (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: 5RFfXCwejZwfDxIUXjnuixwlXvd1obEEgxdt3JAgYorBzO2XCD8eoZatKrpFwxR5wrxNWnDCVPAPURJzGUJ37iumWpFTLltC7wGspA92I6Y=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA6PR03MB10211

From: Grygorii Strashko <grygorii_strashko@epam.com>

Call stack for dom0less hwdom case (1:1) memory:
create_domUs
|-construct_domU
  |-construct_hwdom()
    |-allocate_memory_11()

And allocate_memory_11() uses "dom0_mem" as:
min_low_order =3D
  get_order_from_bytes(min_t(paddr_t, dom0_mem, MB(128)));

In case of dom0less boot the "dom0_mem" is not used and defaulted to 0,
which causes min_low_order to get high value > order and so no allocations
happens from low memory.

Fix it, by using kinfo->unassigned_mem instead of "dom0_mem" which has
correct memory size in both cases: regular dom0 boot and dom0less boot.

Fixes: 52cb53f1816a ("xen/arm: dom0less hwdom construction")
Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
Reviewed-by: Denis Mukhin <dmukhin@ford.com>
Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
Acked-by: Julien Grall <jgrall@amazon.com>
---
Changes in v3:
- updated "dom0_mem" doc in xen-command-line.pandoc
- add tag from Julien Grall

Changes in v2:
- changed 'fixes' tag
- fixed comment for allocate_memory_11()
- added reviewer's tags

 docs/misc/xen-command-line.pandoc | 3 ++-
 xen/arch/arm/domain_build.c       | 4 ++--
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line=
.pandoc
index 6865a61220ca..1f33b7a11eba 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -1035,7 +1035,8 @@ For example, with `dom0_max_vcpus=3D4-8`:
 > `=3D <size>`
=20
 Set the amount of memory for the initial domain (dom0). It must be
-greater than zero. This parameter is required.
+greater than zero. This parameter is required (and only used) when the ini=
tial
+domain is not described in the Device-Tree.
=20
 ### dom0_mem (x86)
 > `=3D List of ( min:<sz> | max:<sz> | <sz> )`
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 463ae4474d30..a9e4153e3cf9 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -249,7 +249,7 @@ fail:
  *
  * We first allocate the largest allocation we can as low as we
  * can. This then becomes the first bank. This bank must be at least
- * 128MB (or dom0_mem if that is smaller).
+ * 128MB (or memory size requested for domain if that is smaller).
  *
  * Then we start allocating more memory, trying to allocate the
  * largest possible size and trying smaller sizes until we
@@ -278,7 +278,7 @@ static void __init allocate_memory_11(struct domain *d,
                                       struct kernel_info *kinfo)
 {
     const unsigned int min_low_order =3D
-        get_order_from_bytes(min_t(paddr_t, dom0_mem, MB(128)));
+        get_order_from_bytes(min_t(paddr_t, kinfo->unassigned_mem, MB(128)=
));
     const unsigned int min_order =3D get_order_from_bytes(MB(4));
     struct membanks *mem =3D kernel_info_get_mem(kinfo);
     struct page_info *pg;
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 10:11:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 10:11:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072768.1435739 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujxbG-0001On-UL; Thu, 07 Aug 2025 10:11:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072768.1435739; Thu, 07 Aug 2025 10:11: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 1ujxbG-0001Og-QO; Thu, 07 Aug 2025 10:11:54 +0000
Received: by outflank-mailman (input) for mailman id 1072768;
 Thu, 07 Aug 2025 10:11:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+2Ad=2T=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujxbG-0001OY-2X
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 10:11:54 +0000
Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com
 [2a00:1450:4864:20::62b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id efbe0d9e-7376-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 12:11:51 +0200 (CEST)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-ae6f8d3bcd4so155154766b.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 03:11:51 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af985e63730sm451485066b.67.2025.08.07.03.11.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Aug 2025 03:11: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>
X-Inumbo-ID: efbe0d9e-7376-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754561511; x=1755166311; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=dDQ8rvNQzB5IMXZPuZ1Mgl6mOsnFX7TIDFqMJFg9Ycw=;
        b=Vpxkp/fAk31v3SqfmQEy7/C65EF2i6uEyTl/a16zKFvkBoIvrE+Q4VwdUi5labyhOH
         ZJMpxPRsmCi0Prm0FxQzhieXaOc39UuEJ76o7IWZNFVuZNkCCafFV5Z3fyqbFJod5cO8
         CD1CVRHC/HP0R128NgNtZvhE14+/EwnKGEknvekFDRgkMy4VzDB8xj0Q5w2+CUu0YLBL
         R64gfJdnG/BVXWRhKh/KCVT02CF1AtnAZZZbTWo/PM1paezH0Gu4iaDVtJKu+WH1xKJx
         TY9OtBelzI2NL9V8aiK+ea5Kver3kxnsAbFFyWgJ86WQiY8JSiIib+aKN9/9ef7V5bbY
         g41A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754561511; x=1755166311;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dDQ8rvNQzB5IMXZPuZ1Mgl6mOsnFX7TIDFqMJFg9Ycw=;
        b=AK8EGtbyUp8o3N1pvh+hPij2/DPtttISkPRI98fmhDDSL39vzs/zPhc9dmndOSZpWs
         07CCwX1knFztCPZmpmP0AA9YFVNEERtCjyKIHlRVIc1KQuR/wVkhfpZV3gcGuHOe55ay
         RTSPcEQeh6T4h95oEMHfkBOwnbSYTHyWdSzwSfF3h2K6b2/y22khGlYi3pfSd0XCNxSq
         4pKVV5FRx73PN6oElHjVPE1vuEvsbc1HJDchdQpcSuxi7akLMQaZvKzbC9g3MN++cxSd
         5dDxnclvDVae4Vdx2mHrYK4Ot0c0p9a5xG0nSp/LTw+ayLJyl2u5LhhyuAQZI9rtGAA3
         4oRQ==
X-Forwarded-Encrypted: i=1; AJvYcCXdepdKZPGQaA235/qxQtsh1PO1kyJ0DClLaBm7CInPETd4uG+UIw6BhoQBPXPhbCrqhrvAUy7mJmY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yze/yNfHW6xyziGUQX05rh62x/kmBb9G4cJ3WOrA4+s6rPk8j1w
	f2nP+n+TEEq+dF1ZPjMrYFky1EGIIjBs8R32hdBFR23e7crRulb03+YEyX28EqDn9w==
X-Gm-Gg: ASbGncuwzO4NMsJFnR6CzZmAxun9ZMVaeFrkmnrglTw5OQMDf2WhmX7yqRKf3nPQcn/
	1G2tvBmiErH40VtbQcIqqN1G15oXG3/8IG9JYnhfgYBJvKGcpzRYyV+SvxIGIfJs0XOUv1u79fg
	NYd4WXK+e0YlhrH48VWramkymlMdMClfgfoBED5452SeiKDwNGHKoZQfu6IDi8EBTjaMAQeCEWh
	cksbOr1bGPDO0julJaZkPaAWZKREg2tGMiz2f6kRY7LWQb7DgVOakOaqhXbcZEFy55qEhWZdUnp
	TqbyE8UowmaNXvR1XrLEeZaf+ddAFUt2XH0B6Y4mDrS4TdyIf36I96OTK0quwfV/0f0k12uRx2Y
	PDuWcvgDk7qcVjWibBBvd76FM7Dn2vrPOloru8nYdOmUUODD9luiOMEpp6UhJGtE91USfLEbxdY
	2Ly0UNvYs=
X-Google-Smtp-Source: AGHT+IHlLQO1d43mXfMUEF4ZoDof+Tz0egZgCyDOe70C5uWzBMJvcG2VDntKQlFdHUV3nvrUcPNizw==
X-Received: by 2002:a17:907:868a:b0:ade:198c:4b6f with SMTP id a640c23a62f3a-af9a6046c89mr210053766b.1.1754561510549;
        Thu, 07 Aug 2025 03:11:50 -0700 (PDT)
Message-ID: <affb589c-0e4e-46c1-a2c7-d09b6cca0a6c@suse.com>
Date: Thu, 7 Aug 2025 12:11:48 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 03/20] xen/riscv: introduce VMID allocation and
 manegement
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <d61f5f831ac8045055a1775ee710d4f2fe8dcc26.1753973161.git.oleksii.kurochko@gmail.com>
 <cd1a0c64-49d7-4ae1-8dec-b3b1de3f1d09@suse.com>
 <bcf4c3aa-5c09-4171-a4f5-85110d6e634f@gmail.com>
 <6ddee574-6fe2-4de7-b000-a3af0b2c9d12@suse.com>
 <cc6bb8a7-ed22-4d3e-a352-fa305f0ea56a@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: <cc6bb8a7-ed22-4d3e-a352-fa305f0ea56a@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06.08.2025 18:24, Oleksii Kurochko wrote:
> On 8/6/25 2:05 PM, Jan Beulich wrote:
>> On 06.08.2025 13:33, Oleksii Kurochko wrote:
>>> On 8/4/25 5:19 PM, Jan Beulich wrote:
>>>> On 31.07.2025 17:58, Oleksii Kurochko wrote:
>>>>> +{
>>>>> +    unsigned long vmid_bits;
>>>> Why "long" (also for the function return type)?
>>> Because csr_read() returns unsigned long as HGATP register has
>>> 'unsigned long' length.
>> Oh, right, I should have commented on the function return type only.
>> Yet then I also can't resist stating that this kind of use of a variable,
>> which initially is assigned a value that doesn't really fit its name, is
>> easily misleading towards giving such comments.
>>
>>> But it could be done in this way:
>>>       csr_write(CSR_HGATP, old | HGATP_VMID_MASK);
>>>       vmid_bits =  MASK_EXTR(csr_read(CSR_HGATP), HGATP_VMID_MASK);
>>>       vmid_bits = ffs_g(vmid_bits);
>>>       csr_write(CSR_HGATP, old);
>>> And then use uint16_t for vmid_bits and use uin16_t as a return type.
>> Please check ./CODING_STYLE again as to the use of fixed-width types.
> 
> I meant unsigned short, uint16_t was just short to write. I'll try to be
> more specific.

I'd also recommend against unsigned short when there are no space concerns.
unsigned int is what wants using in the general case.

>>>>> +    unsigned long old;
>>>>> +
>>>>> +    /* Figure-out number of VMID bits in HW */
>>>>> +    old = csr_read(CSR_HGATP);
>>>>> +
>>>>> +    csr_write(CSR_HGATP, old | HGATP_VMID_MASK);
>>>>> +    vmid_bits = csr_read(CSR_HGATP);
>>>>> +    vmid_bits =  MASK_EXTR(vmid_bits, HGATP_VMID_MASK);
>>>> Nit: Stray blank.
>>>>
>>>>> +    vmid_bits = flsl(vmid_bits);
>>>>> +    csr_write(CSR_HGATP, old);
>>>>> +
>>>>> +    /*
>>>>> +     * We polluted local TLB so flush all guest TLB as
>>>>> +     * a speculative access can happen at any time.
>>>>> +     */
>>>>> +    local_hfence_gvma_all();
>>>> There's no guest running. If you wrote hgat.MODE as zero, as per my
>>>> understanding now new TLB entries could even purely theoretically appear.
>>> It could be an issue (or, at least, it is recommended) when hgatp.MODE is
>>> changed:
>>>    If hgatp.MODE is changed for a given VMID, an HFENCE.GVMA with rs1=x0
>>>    (and rs2 set to either x0 or the VMID) must be executed to order subsequent
>>>    guest translations with the MODE changeâ€”even if the old MODE or new MODE
>>>    is Bare.
>>> On other hand it is guaranteed that, at least, on Reset (and so I assume
>>> for power on) that:
>>>    If the hypervisor extension is implemented, the hgatp.MODE and vsatp.MODE
>>>    fields are reset to 0.
>>>
>>> So it seems like if no guest is ran then there is no need even to write
>>> hgatp.MODE as zero, but it might be sense to do that explicitly just to
>>> be sure.
>>>
>>> I thought it was possible to have a running guest and perform a CPU hotplug.
>> But that guest will run on another hart.
>>
>>> In that case, I expect that during the hotplug,|vmidlen_detect()| will be
>>> called and return the|vmid_bits| value, which is used as the active VMID.
>>> At that moment, the local TLB could be speculatively polluted, I think.
>>> Likely, it makes sense to call vmidlen_detect() only once for each hart
>>> during initial bringup.
>> That may bring you more problems than it solves. You'd need to stash away
>> the value originally read somewhere. And that somewhere isn't per-CPU data.
>>
>>>> In fact, with no guest running (yet) I'm having a hard time seeing why
>>>> you shouldn't be able to simply write the register with just
>>>> HGATP_VMID_MASK, i.e. without OR-ing in "old". It's even questionable
>>>> whether "old" needs restoring; writing plain zero afterwards ought to
>>>> suffice. You're in charcge of the register, after all.
>>> It make sense (but I don't know if it is a possible case) to be sure that
>>> HGATP.MODE remains the same, so there is no need to have TLB flush. If
>>> HGATP.MODE is changed then it will be needed to do TLB flush as I mentioned
>>> above.
>>>
>>> If we agreed to keep local_hfence_gvma_all() then I think it isn't really
>>> any sense to restore 'old' or OR-ing it with HGATP_VMID_MASK.
>>>
>>> Generally if 'old' is guaranteed to be zero (and, probably, it makes sense
>>> to check that in vmidlen_detect() and panic if it isn't zero) and if
>>> vmidlen_detect() function will be called before any guest domain(s) will
>>> be ran then I could agree that we don't need local_hfence_gvma_all() here.
>>>
>>> As an option we can do local_hfence_gvma_all() only if 'old' value wasn't
>>> set to zero.
>>>
>>> Does it make sense?
>> Well - I'd like the pre-conditions to be understood better. For example, can
>> a hart really speculate into guest mode, when the hart is only in the
>> process of being brought up?
> 
> I couldn't explicit words that a hart can't speculate into guest mode
> either on bring up or during its work.
> 
> But there are some moments in the spec which tells:
>    Implementations with virtual memory are permitted to perform address
>    translations speculatively and earlier than required by an explicit
>    memory access, and are permitted to cache them in address translation
>    cache structuresâ€”including possibly caching the identity mappings from
>    effective address to physical address used in Bare translation modes and
>    M-mode.
> And here:
>    Implementations may also execute the address-translation algorithm
>    speculatively at any time, for any virtual address, as long as satp is
>    active (as defined in Section 10.1.11). Such speculative executions have
>    the effect of pre-populating the address-translation cache.

That's satp though, not hgatp.

> Where it is explicitly mentioned that speculation can happen in *any time*.
> And at the same time:
>    Speculative executions of the address-translation algorithm behave as
>    non-speculative executions of the algorithm do, except that they must
>    not set the dirty bit for a PTE, they must not trigger an exception,
>    and they must not create address-translation cache entries if those
>    entries would have been invalidated by any SFENCE.VMA instruction
>    executed by the hart since the speculative execution of the algorithm began.
> What I read as if TLB was empty before it will stay empty.
> 
> Also, despite of the fact here it is mentioned that when V=0 two-stage address
> translation is inactivated:
>    The current virtualization mode, denoted V, indicates whether the hart is
>    currently executing in a guest. When V=1, the hart is either in virtual
>    S-mode (VS-mode), or in virtual U-mode (VU-mode) atop a guest OS running
>    in VS-mode. When V=0, the hart is either in M-mode, in HS-mode, or in
>    U-mode atop an OS running in HS-mode. The virtualization mode also
>    indicates whether two-stage address translation is active (V=1) or
>    inactive (V=0).
> But on the same side, writing to hgatp register activates it:
>    The hgatp register is considered active for the purposes of
>    the address-translation algorithm unless the effective privilege mode
>    is U and hstatus.HU=0.
> And if so + considering that speculation could happen at any time, and
> we are in HS-mode, not it U mode then I would say that it could really
> speculate into guest mode.

Hmm, that leaves some things to be desired. What I'm particularly puzzled
by is that there's nothing said either way towards speculation through SRET.
That's the important aspect here aiui, because without that the hart can't
speculate into guest mode.

But yes, in the absence of any clear indication to the contrary, I think
you want to keep the local_hfence_gvma_all() (with a suitable comment).

>>>>> +    data->max_vmid = BIT(vmid_len, U) - 1;
>>>>> +    data->disabled = !opt_vmid_enabled || (vmid_len <= 1);
>>>> Actually, what exactly does it mean that "VMIDs are disabled"? There's
>>>> no enable bit that I could find anywhere. Isn't it rather that in this
>>>> case you need to arrange to flush always on VM entry (or always after a
>>>> P2M change, depending how the TLB is split between guest and host use)?
>>> "VMIDs are disabled" here means that TLB flush will happen each time p2m
>>> is changed.
>> That's better described as "VMIDs aren't used" then?
> 
> It sounds a little bit just like an opposite to "disabled" (i.e. means
> basically the same), but I am okay to use "used" instead.

If you want to stick to using "disabled", then how about "VMID use is
disabled"? (You probably meanwhile understood that what I'm after is it
becoming clear that this is a software decision, not something you can
enforce in hardware.)

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 10:17:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 10:17:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072779.1435750 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujxgt-00023g-MG; Thu, 07 Aug 2025 10:17:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072779.1435750; Thu, 07 Aug 2025 10:17: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 1ujxgt-00023Z-HF; Thu, 07 Aug 2025 10:17:43 +0000
Received: by outflank-mailman (input) for mailman id 1072779;
 Thu, 07 Aug 2025 10:17:41 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=LYnK=2T=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ujxgr-00023T-MP
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 10:17:41 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bcd5dce6-7377-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 12:17:35 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-459e1338565so7723545e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 03:17:35 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3b79c3c33fesm26651226f8f.29.2025.08.07.03.17.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Aug 2025 03:17: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>
X-Inumbo-ID: bcd5dce6-7377-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754561855; x=1755166655; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=fSmOKeMJ4X/DXAykdFa6tQ4kNJhJb62PX4h/sBM1lw8=;
        b=rBGxwRecgOlK5FVmFuBAgFVH/mD8IH0dWDXshCgDTIdaOZtjnHVQSM299gWQmFVg50
         StNe7LJoDTZHblIyUFBfR7nC0t7e1xhglE8sUfwN0HPcqvE+3FxM1bLLptM4cwvcrtDa
         KFmnq4Y+gMnsH1scZ+XZA8wZuREeZp54odw1s=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754561855; x=1755166655;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fSmOKeMJ4X/DXAykdFa6tQ4kNJhJb62PX4h/sBM1lw8=;
        b=nqjCB6Js38lSNLMWSjimXCDN2YAYbgZ7GkqmJdCGsia637lKuEU073q5p7HI7GqwBj
         O60gEjPY4WDsMhSHhDIrq3NobTQB5HIhW7J7UwwGA6EpTlM4e8E+6V+tYat9HIpYN/m/
         VwkROc98eXW1q8b+aMKwBcYFkakph19Je4H5VjWn46dvwzeaOsY5P65ut62XPtWAtTIy
         clYKy0RzcDhSp837Cv4bu6Fx5sOUEsQ8wpIPQp4m9yK8Dq5lJ4zdQgLIm10gO4NnY3SI
         /7OMk6oSnrJe0yryhpTTSNu3ba3NAohesSQbqobIWus+7Yrd/tjzsQRC1yvsoXUKQ3uS
         HmGQ==
X-Forwarded-Encrypted: i=1; AJvYcCVB9ArU74qJmiWo0MtJKRfKfNACW2l/nxlyEjzJi/jgTotjY5Z1zhCvar3wimRMC36sHh2qwLkFC08=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyqemXyEfVjWNCUvM3LCRTK/wMmzY5Eh4dxD3YvLrgwk+GcVbVT
	QPLm5T+8AHFsPH0idXVA0Vd6VXidBenNzEF/UIb2kDDWXiQLxO5l1oHuAV4a5bjsyqw=
X-Gm-Gg: ASbGnctarZIugI6NyoC4Xzu7+uF62CUy29Dr/uyJM7wBoicikR+FgUPsriawZh5YBMm
	3aJmB6uO2k+yqSndzhIKlTya49B8kBRpXhBysh45PrtMo+ljXn7Gfi/9JEEDdkoYME6tXBciO08
	KxS25XBT+fqQk8usiWN075hQumlgpa00qoMIZm3PQ4haRGa6m354UIsho2Lowm8b7ZVa0RekXPK
	VJf21KIJ+usg4k81gEtncpFhJO2lXm+Pw8nn2DP8CEMc4xmBukqjxkGe1JJX4dYpzH3aZGHmEK7
	Zcjr/z1LZdkE6LN2kw6fdzWNWWpiKPXxyzOUd6kMmoGWuZkBWU0PyTZHlKmpBHoq3Nou5hbt1ye
	t4tdaJIn0/QJI6lYZP+FQtx+zaxGCX4TEmxyjc4EfHNXKCcg7hoQYfwnkfGsivkxZQYi4eGmBYU
	CBVQI=
X-Google-Smtp-Source: AGHT+IEMLxhLzUpNuACgKsbjsE/gPXs84zP+2A7un4e247ynqw0SJt24yiqiEgDSj+zl+wrfibOznw==
X-Received: by 2002:a05:6000:40e1:b0:3b8:d138:41d3 with SMTP id ffacd0b85a97d-3b8f49441a1mr4551260f8f.56.1754561854943;
        Thu, 07 Aug 2025 03:17:34 -0700 (PDT)
Message-ID: <848c5da3-5aa8-4f0e-a9ed-cd41a5fac0b0@citrix.com>
Date: Thu, 7 Aug 2025 11:17:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/domctl: Reject XEN_DOMCTL_hypercall_init against
 oneself
To: Jan Beulich <jbeulich@suse.com>
Cc: Frediano Ziglio <frediano.ziglio@cloud.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>,
 Ross Lagerwall <ross.lagerwall@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250806165543.169140-1-andrew.cooper3@citrix.com>
 <a4a0d4ab-1fb5-4949-891f-318e3dfa22ac@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: <a4a0d4ab-1fb5-4949-891f-318e3dfa22ac@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 07/08/2025 10:30 am, Jan Beulich wrote:
> On 06.08.2025 18:55, Andrew Cooper wrote:
>> --- a/xen/arch/x86/domctl.c
>> +++ b/xen/arch/x86/domctl.c
>> @@ -372,6 +372,14 @@ long arch_do_domctl(
>>          struct page_info *page;
>>          void *hypercall_page;
>>  
>> +        /*
>> +         * Kernels should use the MSR method to get a hypercall page.  The
>> +         * toolstack should not be using the DOMCTL on itself.
>> +         */
>> +        ret = -EINVAL;
>> +        if ( d == currd )
>> +            break;
> Isn't what the comment says more generally true? To act on themselves, most
> domctl-s are inappropriate to use, I think. There are a few exceptions, where
> alternatives simply don't exist (and where, if a kernel wanted to use a domctl
> [or sysctl], it would need to go through hoops to deal with the interface
> versioning). Yet there's still the question of whether we shouldn't apply this
> restriction in a broader fashion.

I'd go so far as to say that domctls ought to be restricted against
oneself, but it's not quite that easy.Â  The majority of them already are
restricted because of domain/vcpu_pause(), but this is all ad-hoc.

In principle, the control domain ought to be able to issue some of the
getter's on itself, but even that's inconsistent.Â  get_dominfo is
permitted, but paging ops are not.

This is still a TBD for the stable tools interfaces.Â  One option I am
considering was to split the opcode space by whether it was logically a
getter or setter, but I expect this does not work nicely if we also want
to retain backwards compatibility.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 10:54:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 10:54:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072790.1435759 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujyGc-0007rF-9I; Thu, 07 Aug 2025 10:54:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072790.1435759; Thu, 07 Aug 2025 10:54: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 1ujyGc-0007r8-6L; Thu, 07 Aug 2025 10:54:38 +0000
Received: by outflank-mailman (input) for mailman id 1072790;
 Thu, 07 Aug 2025 10:54:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+2Ad=2T=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ujyGa-0007r0-Vf
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 10:54:36 +0000
Received: from mail-ed1-x531.google.com (mail-ed1-x531.google.com
 [2a00:1450:4864:20::531])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e78dbadb-737c-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 12:54:34 +0200 (CEST)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-615622ed70fso1436150a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 03:54: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
 4fb4d7f45d1cf-615c57f9fd0sm10421573a12.11.2025.08.07.03.54.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Aug 2025 03:54: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>
X-Inumbo-ID: e78dbadb-737c-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754564074; x=1755168874; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=sgh8uw14dhS6OxSmU27FzXN9u+PF0GBjGWoaWjapuM8=;
        b=gc77pOzYVYf78uWRLJSh/xgvXez5VIFMAzJS3woEDvZymOXC99eUdCPEu3nEq1jdYl
         1zp9GLUROcvuaoAqWtZA7v1B6NZNYoMUoaT6k+6LEZo8tuA/g4F0Zy4cwYNS/7Kan3hw
         LNBvT3GVapPoyggY3S3TG7+eyw0Ab8OYOuns+lpd4ZJw3puud+KjspVk4+Fa4oHk81P7
         NjeL9y0CL7neb1jrrdZOhECm/6xaw8QhUxtp3SN9P9Wn2/PgB8pHJJB0ip6QJ3XOKocv
         IxvqrxC9UDtLLWWly4N82Ws6zWbTK9IJuufNRrBdImNmWANX5CBXPQpR6Iu9A5G6zG6x
         Ywag==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754564074; x=1755168874;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sgh8uw14dhS6OxSmU27FzXN9u+PF0GBjGWoaWjapuM8=;
        b=sMHdfWsUrNuzxE2vNb6Gdt8DWFnPLGirAmk2OOoKgMzR85OLVbIJnFwVg8XW46qi0L
         Z8lIEP6HGp29EHni6oZhhfAFnBZa9Bm5LXCJw8qOQj4bLtqtb0wtbv9/pOSMz+hbZF34
         m0hRBgjWghnvVMaOyTYOAF2xxkdU/q1VlNAHs3Ep7IWbGL6SodFACv/2C/wXqIORJwUU
         y9tTU3+kk3g0C5tGtQ/W5j26cQZEq/IHdV4j70Z3ShS8nKVlskknNSWYMZCztvUypm++
         vL3vW6MlRtmMW0l12/uLyaPCisP1ir31fC+nO595cgowCF3AlRjQiJh69Q7Y7JmzDS4P
         biow==
X-Forwarded-Encrypted: i=1; AJvYcCWLrrHBgSlqlsLUWJjmF33T/x3RXx6j+rbVlQcMd3Cspr/X379r7cUEI1jjkWbLosM/+FklmE8ZU1M=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxEuHF7oBHsgeYzYawECgGFJr3yJEFNZFfvqjHkbA9LYLwlUmZI
	/Xo2JJRAKXAIIdkL5KiBrop98C38WQyM2dNgTxuA9oG3SgIhKqDSrMvQ+C7HmbB5jg==
X-Gm-Gg: ASbGncsvqlJvUg7SiVZ+u2QNt9gav5EuD36lP2F7zepYzAKTmTQF2BbpaZNZY5xswnC
	7EVjKkBSQCqBQcxqIFnlbIEmRswtOGsdyDhJsRJCZd6oZjNl6CfwYpm5BX/t2X3xDYRMWM6b2cg
	enzdBR/dETxxhcqhp0+9SQmEY6B5AFbKUKySnXSznDYl2NSMA0+kbMwRGMWl3MK1ehT2iggAe7p
	ZeGgCC7R8J5X7FXSjvah779AR7t645zd3YnHTxahuNUxr6U7uS1tqrUZlSZiGNjV54hvcUgwc7Y
	ZkBEanIO6cBHL3t5pv59LlB0udS9DlipX+aTbJRcTz4H/Py5sSVTMwFNI/nHMENFJJ5Al55J7bz
	FSu/IQoO0ZmEKi5tC1YfY/bF3xqILyGQrHD4/Xm/iPJp2CbzGMH2CNtGCfadnXMRE/5z6w/Ww5c
	WobyeoTFw=
X-Google-Smtp-Source: AGHT+IFN/6xLMjm3YS3cEe0yif3oDO8GqYtH9gf5i+RS/mkqpwJSNNxfRy0ZtukxbdL7VmbzzGw8Dg==
X-Received: by 2002:aa7:d64b:0:b0:608:6501:6a1f with SMTP id 4fb4d7f45d1cf-617960b2169mr4064625a12.1.1754564073984;
        Thu, 07 Aug 2025 03:54:33 -0700 (PDT)
Message-ID: <a89ac08c-4124-4c5d-80b0-51975f27e60f@suse.com>
Date: Thu, 7 Aug 2025 12:54:31 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/domctl: Reject XEN_DOMCTL_hypercall_init against
 oneself
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Frediano Ziglio <frediano.ziglio@cloud.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>,
 Ross Lagerwall <ross.lagerwall@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250806165543.169140-1-andrew.cooper3@citrix.com>
 <a4a0d4ab-1fb5-4949-891f-318e3dfa22ac@suse.com>
 <848c5da3-5aa8-4f0e-a9ed-cd41a5fac0b0@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: <848c5da3-5aa8-4f0e-a9ed-cd41a5fac0b0@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 07.08.2025 12:17, Andrew Cooper wrote:
> On 07/08/2025 10:30 am, Jan Beulich wrote:
>> On 06.08.2025 18:55, Andrew Cooper wrote:
>>> --- a/xen/arch/x86/domctl.c
>>> +++ b/xen/arch/x86/domctl.c
>>> @@ -372,6 +372,14 @@ long arch_do_domctl(
>>>          struct page_info *page;
>>>          void *hypercall_page;
>>>  
>>> +        /*
>>> +         * Kernels should use the MSR method to get a hypercall page.  The
>>> +         * toolstack should not be using the DOMCTL on itself.
>>> +         */
>>> +        ret = -EINVAL;
>>> +        if ( d == currd )
>>> +            break;
>> Isn't what the comment says more generally true? To act on themselves, most
>> domctl-s are inappropriate to use, I think. There are a few exceptions, where
>> alternatives simply don't exist (and where, if a kernel wanted to use a domctl
>> [or sysctl], it would need to go through hoops to deal with the interface
>> versioning). Yet there's still the question of whether we shouldn't apply this
>> restriction in a broader fashion.
> 
> I'd go so far as to say that domctls ought to be restricted against
> oneself, but it's not quite that easy.Â  The majority of them already are
> restricted because of domain/vcpu_pause(), but this is all ad-hoc.
> 
> In principle, the control domain ought to be able to issue some of the
> getter's on itself, but even that's inconsistent.Â  get_dominfo is
> permitted, but paging ops are not.

Hmm, right. And as said, there are a few which simply can't be done a non-
domctl way. For the patch here:
Reviewed-by: Jan Beulich <jbeulich@suse.com>

> This is still a TBD for the stable tools interfaces.Â  One option I am
> considering was to split the opcode space by whether it was logically a
> getter or setter, but I expect this does not work nicely if we also want
> to retain backwards compatibility.

I didn't expect we'd strive for (binary) backwards compatibility there.
Source compatibility (i.e. merely requiring a re-compile) may be a goal,
yet even there I wouldn't be certain.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 11:17:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 11:17:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072832.1435789 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujycN-00031j-Kl; Thu, 07 Aug 2025 11:17:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072832.1435789; Thu, 07 Aug 2025 11:17: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 1ujycN-00031X-Gc; Thu, 07 Aug 2025 11:17:07 +0000
Received: by outflank-mailman (input) for mailman id 1072832;
 Thu, 07 Aug 2025 11:17:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=LYnK=2T=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ujycL-00030Z-Tx
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 11:17:05 +0000
Received: from mail-wm1-x344.google.com (mail-wm1-x344.google.com
 [2a00:1450:4864:20::344])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0bc7cd9b-7380-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 13:17:04 +0200 (CEST)
Received: by mail-wm1-x344.google.com with SMTP id
 5b1f17b1804b1-45994a72356so7051315e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 04:17:03 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459e5c84b8csm45456435e9.4.2025.08.07.04.17.02
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Aug 2025 04:17: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>
X-Inumbo-ID: 0bc7cd9b-7380-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754565423; x=1755170223; 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=0hmnpbxHbRiELs1onHAWQPq0xNtY0+GLpJxJ3yll7+U=;
        b=B5Bqf/Ep5QlNhAqZV9m7iFwVw11o2Lj+6BAoSXQnJyoE9ChEKen3WAuf/l/7fVEb4y
         +LqJ2YzmU1DV/BujzvzK2HTWELs0897QSwNmRC3AfJllHpM3FcAy6bTuIlWHpXGEoiWH
         0Vt3aZBt2BXWSe+Jqi0L94Ok1BRPitDI65HzU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754565423; x=1755170223;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=0hmnpbxHbRiELs1onHAWQPq0xNtY0+GLpJxJ3yll7+U=;
        b=f8zzinjij/7IqsWh85FDYDTNDAJpWMg5L8bBBvjAZ44gKFSIsBIrl0t8iL8o37xHPb
         tONsMGhbXAtVeOtYgtG1Fen8VXKR8bTnUEbfPxl05wDgd+e/gzE4uSuMvcAovS87Uphu
         H76bgeoHLYblUVXRmieRVGpYZnk9WAsa4Q1E4Py+0fcHyc0HNq24fb7Y3aENaljEvq8a
         xsIlSneXviT6H61Gl82JA0hVLl9IryrS7xPqlzJzfg5XS4FwiHXw1b3yGMUjnPjlneLx
         +JSKCHLDIF6I3tEP+b2ahtqwUxdBZQW43Sb//ujavscO9TzWqjOLMa8+hObZFHwfGSQ7
         d8UQ==
X-Gm-Message-State: AOJu0YwGViw4FbQUUlFmuw9gjAUea2aJ0WA9/IucRJJje0zr47jQ9H4N
	jCVRrLEQf+gbcA4UyefQ6THfzQsfEnVgi61HC/3CiCu+0PtTaX83oHmskp2elP7abkRASk7ASR7
	vKaOprvNaIQ==
X-Gm-Gg: ASbGncufMdhUagXBirJy08sQfOQr1vn0t7SBnqZifRHAm93ZQJ20LE1qm2NEf9OJn6g
	jBB91gsOf3kHnVbjL7UcEI85PeJu0SHO/t0iqhXgZrXyAyRWr9NFsxG9YtEy4Pl6IuN2SrOmgmd
	sDbSzkmRgTl+X095dWkhBk0XhvvxS6vucc9v5MN5NawmOOd88/12B31zTq3jqHcig61g/1s1xd8
	0Hzy3LLPa+vvjWkA9wymwm5m6nLQUa9oyvanmre+GowTEa9kaMnqP5J0yjRRYE63Kv0VvSDY1ZX
	F96DtsJRxe9EicKahzRqyyFQpHwoxTTEOOGhJPDYyrwbadV1oBdDZofN6QktHPNF6/eJcejLcaX
	fMPOErDXRatupdKMekaM+y6aqN6mDhm1upSdmR82xuHcXnyhim3rZ6Wv4CKhTCbTMRB4echmSUd
	LH
X-Google-Smtp-Source: AGHT+IFevs16pz+VsZb/UZMURkjLra61JgMdOci8x7oIf31U66eiK+gVeW8J+SsxN31mm6FKA6EFKg==
X-Received: by 2002:a05:600c:358b:b0:459:dd1d:2ee0 with SMTP id 5b1f17b1804b1-459ede03686mr29138935e9.0.1754565423049;
        Thu, 07 Aug 2025 04:17:03 -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>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 4/4] x86: Drop the vm86 segments selectors from struct cpu_user_regs
Date: Thu,  7 Aug 2025 12:16:57 +0100
Message-Id: <20250807111657.201849-5-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250807111657.201849-1-andrew.cooper3@citrix.com>
References: <20250807111657.201849-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The data segment registers are part of the on-stack IRET frame when
interrupting Virtual 8086 mode, but this ceased being relevant for Xen in
commit 5d1181a5ea5e ("xen: Remove x86_32 build target.") in 2012.

With all other cleanup in place, delete the fields so we can introduce FRED
support which uses this space for different data.

Everywhere which used the es field as an offset in cpu_user_regs needs
adjusting.  However, they'll change again for FRED, so no cleanup is performed
at this juncture.

This also undoes the OoB Read workaround in show_registers(), which can now
switch back to being simple structure copy.

No functional change, but a lot of rearranging of stack and struct layout
under the hood.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/cpu/common.c                | 2 +-
 xen/arch/x86/include/asm/cpu-user-regs.h | 5 -----
 xen/arch/x86/include/asm/current.h       | 8 ++++----
 xen/arch/x86/include/asm/hvm/hvm.h       | 4 ----
 xen/arch/x86/include/asm/regs.h          | 3 +--
 xen/arch/x86/traps.c                     | 2 +-
 xen/arch/x86/x86_64/asm-offsets.c        | 2 +-
 xen/arch/x86/x86_64/traps.c              | 8 +-------
 8 files changed, 9 insertions(+), 25 deletions(-)

diff --git a/xen/arch/x86/cpu/common.c b/xen/arch/x86/cpu/common.c
index e063fe790a97..97bdda1d4a25 100644
--- a/xen/arch/x86/cpu/common.c
+++ b/xen/arch/x86/cpu/common.c
@@ -959,7 +959,7 @@ void load_system_tables(void)
 	 * Defer checks until exception support is sufficiently set up.
 	 */
 	BUILD_BUG_ON((sizeof(struct cpu_info) -
-		      offsetof(struct cpu_info, guest_cpu_user_regs.es)) & 0xf);
+		      sizeof(struct cpu_user_regs)) & 0xf);
 	BUG_ON(system_state != SYS_STATE_early_boot && (stack_bottom & 0xf));
 }
 
diff --git a/xen/arch/x86/include/asm/cpu-user-regs.h b/xen/arch/x86/include/asm/cpu-user-regs.h
index 0e78e38ed00d..d700a3ef3447 100644
--- a/xen/arch/x86/include/asm/cpu-user-regs.h
+++ b/xen/arch/x86/include/asm/cpu-user-regs.h
@@ -53,11 +53,6 @@ struct cpu_user_regs
      * For IDT delivery, tss->rsp0 points to this boundary as embedded within
      * struct cpu_info.  It must be 16-byte aligned.
      */
-
-    uint16_t es, _pad3[3];
-    uint16_t ds, _pad4[3];
-    uint16_t fs, _pad5[3];
-    uint16_t gs, _pad6[3];
 };
 
 #endif /* X86_CPU_USER_REGS_H */
diff --git a/xen/arch/x86/include/asm/current.h b/xen/arch/x86/include/asm/current.h
index 243d17ef79fd..a7c9473428b2 100644
--- a/xen/arch/x86/include/asm/current.h
+++ b/xen/arch/x86/include/asm/current.h
@@ -106,12 +106,12 @@ static inline struct cpu_info *get_cpu_info(void)
 #define get_per_cpu_offset()  (get_cpu_info()->per_cpu_offset)
 
 /*
- * Get the bottom-of-stack, as stored in the per-CPU TSS. This actually points
- * into the middle of cpu_info.guest_cpu_user_regs, at the section that
- * precisely corresponds to a CPU trap frame.
+ * Get the bottom-of-stack, as stored in the per-CPU TSS. This points at the
+ * end of cpu_info.guest_cpu_user_regs, at the section that precisely
+ * corresponds to a CPU trap frame.
  */
 #define get_stack_bottom()                      \
-    ((unsigned long)&get_cpu_info()->guest_cpu_user_regs.es)
+    ((unsigned long)(&get_cpu_info()->guest_cpu_user_regs + 1))
 
 /*
  * Get the reasonable stack bounds for stack traces and stack dumps.  Stack
diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/asm/hvm/hvm.h
index bf8bc2e100bd..18e40910ff71 100644
--- a/xen/arch/x86/include/asm/hvm/hvm.h
+++ b/xen/arch/x86/include/asm/hvm/hvm.h
@@ -624,10 +624,6 @@ static inline void hvm_sanitize_regs_fields(struct cpu_user_regs *regs,
     regs->saved_upcall_mask = 0xbf;
     regs->cs = 0xbeef;
     regs->ss = 0xbeef;
-    regs->ds = 0xbeef;
-    regs->es = 0xbeef;
-    regs->fs = 0xbeef;
-    regs->gs = 0xbeef;
 #endif
 }
 
diff --git a/xen/arch/x86/include/asm/regs.h b/xen/arch/x86/include/asm/regs.h
index ce9b028276a1..72595110e2d5 100644
--- a/xen/arch/x86/include/asm/regs.h
+++ b/xen/arch/x86/include/asm/regs.h
@@ -23,8 +23,7 @@
     (!is_pv_32bit_vcpu(v) ? ((tb)->eip == 0) : (((tb)->cs & ~3) == 0))
 
 /* Number of bytes of on-stack execution state to be context-switched. */
-/* NB. Segment registers and bases are not saved/restored on x86/64 stack. */
-#define CTXT_SWITCH_STACK_BYTES (offsetof(struct cpu_user_regs, es))
+#define CTXT_SWITCH_STACK_BYTES sizeof(struct cpu_user_regs)
 
 #define guest_mode(r)                                                         \
 ({                                                                            \
diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index 34dc077cad34..238d923dd188 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -387,7 +387,7 @@ unsigned long get_stack_trace_bottom(unsigned long sp)
     {
     case 1 ... 4:
         return ROUNDUP(sp, PAGE_SIZE) -
-            offsetof(struct cpu_user_regs, es) - sizeof(unsigned long);
+            sizeof(struct cpu_user_regs) - sizeof(unsigned long);
 
     case 6 ... 7:
         return ROUNDUP(sp, STACK_SIZE) -
diff --git a/xen/arch/x86/x86_64/asm-offsets.c b/xen/arch/x86/x86_64/asm-offsets.c
index 630bdc39451d..2258b4ce1b95 100644
--- a/xen/arch/x86/x86_64/asm-offsets.c
+++ b/xen/arch/x86/x86_64/asm-offsets.c
@@ -52,7 +52,7 @@ void __dummy__(void)
     OFFSET(UREGS_eflags, struct cpu_user_regs, rflags);
     OFFSET(UREGS_rsp, struct cpu_user_regs, rsp);
     OFFSET(UREGS_ss, struct cpu_user_regs, ss);
-    OFFSET(UREGS_kernel_sizeof, struct cpu_user_regs, es);
+    DEFINE(UREGS_kernel_sizeof, sizeof(struct cpu_user_regs));
     BLANK();
 
     /*
diff --git a/xen/arch/x86/x86_64/traps.c b/xen/arch/x86/x86_64/traps.c
index 29ac5a14ca3f..34adf55e48df 100644
--- a/xen/arch/x86/x86_64/traps.c
+++ b/xen/arch/x86/x86_64/traps.c
@@ -135,17 +135,11 @@ static void _show_registers(
 
 void show_registers(const struct cpu_user_regs *regs)
 {
-    struct cpu_user_regs fault_regs;
+    struct cpu_user_regs fault_regs = *regs;
     struct extra_state fault_state;
     enum context context;
     struct vcpu *v = system_state >= SYS_STATE_smp_boot ? current : NULL;
 
-    /*
-     * Don't read beyond the end of the hardware frame.  It is out of bounds
-     * for WARN()/etc.
-     */
-    memcpy(&fault_regs, regs, offsetof(struct cpu_user_regs, es));
-
     if ( guest_mode(regs) && is_hvm_vcpu(v) )
     {
         get_hvm_registers(v, &fault_regs, &fault_state);
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Aug 07 11:17:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 11:17:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072830.1435768 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujycI-0002Yz-Vz; Thu, 07 Aug 2025 11:17:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072830.1435768; Thu, 07 Aug 2025 11:17: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 1ujycI-0002Ys-T9; Thu, 07 Aug 2025 11:17:02 +0000
Received: by outflank-mailman (input) for mailman id 1072830;
 Thu, 07 Aug 2025 11:17:01 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=LYnK=2T=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ujycH-0002Ym-J7
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 11:17:01 +0000
Received: from mail-wm1-x341.google.com (mail-wm1-x341.google.com
 [2a00:1450:4864:20::341])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 09c484b6-7380-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 13:17:00 +0200 (CEST)
Received: by mail-wm1-x341.google.com with SMTP id
 5b1f17b1804b1-451d41e1ad1so5543045e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 04:17:00 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459e5c84b8csm45456435e9.4.2025.08.07.04.16.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Aug 2025 04:16: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>
X-Inumbo-ID: 09c484b6-7380-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754565420; x=1755170220; 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=Xu7stNjQNBQ20D3FOPUXcR8yTuolqv6Uy3awL4lgbto=;
        b=qTqu6rHWuHfjWo34ebAmgCgGsLZ+ZXX21PzLYp9YrVvuZyx6FlmXb1jX66mqt3q2Ak
         uzJbEDeedtIWWZh71Y15HLA8gkdPau4mBGR19DJuNMslhBfqGfnHssTAI7hWOUOPJzAp
         xJk5xOjedTPNZ22D9xDNXfMxteMtdBCbXZkmg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754565420; x=1755170220;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=Xu7stNjQNBQ20D3FOPUXcR8yTuolqv6Uy3awL4lgbto=;
        b=mG1gQz25F1waWEUcgokuajL8h9YnxvCjYdB4yV8Qr8jdgV//mjeZtRd7NHNJzk73pD
         pnBO3xlluOW2glT/S4CwB5KJa7NXNDsTEsN9PNn1Iu8wFtN5A0DDogdacokdQMGFjofo
         t4/RxLCYDF+2/uD4Txm9O/eyw7q9gmFkb/wLwVhJIylrj0YfPeaWS4kQqXcHQ3yw1tge
         xR/gFp04h9nEdRfBlJ3fBmBvvr55evljyJK4vaAEwlb7Zlv+p06CcN4yGlNrg997JLlJ
         ixbKK3LTKboVfYDPayBunvowuimuLcgd+CbTIGqovyNrCA46N85/oGQxcI9NbDpPT1ev
         f3pw==
X-Gm-Message-State: AOJu0YzL3KOMOwE99mx2OCP/isNvkszE4dVZwXzlXf/9qp9VUWg2zgEh
	zFKj9Yx0FR+5ZdDMfzXcolvXtuL7FEi6UvoIUPjHGNG4nTJpFmXu1zhgrRacPZgCSFsLe+g0XI7
	o1Zxj6igzKA==
X-Gm-Gg: ASbGnctSuHwf3qYiOxtiqiaak2AhBVwO/ZHzfCG1kvzhm+dSjmx1t/Lil6xJLK5JA26
	MHbTgWa9ZyJlA+K79PmENn8jcTtorCGtNyLPFBWWJ4fsHqiTSc+ENuFxJ2n7s6E5jHsJENcSy/l
	remGZvf7pkXkpkdJRMSo5wzrV9JBslrsc/ltTIcnBRuzdlCZEAohvJMnapG1g7CapTsKSwwC3wW
	in9QxEKmF48IPvbs3fCAFyvsZhuSZqMzHrccFQtFwHqAsLl86nry8QS7CCrtz5w3UAcfqbUT573
	XRiif1UmVWvZCtrHD97NL9cQUzONzVTu/nmQ81LRBqPV/3SYp3ceCq5xgrnziDakECvjhpNStm6
	6XLeUpEIFnUJiDwsSSw4k6m3Ve3LBZ/IhhCi5zVBUFFEK1766b90rO6/EnQgpAZa5ABhOBONHTX
	FS
X-Google-Smtp-Source: AGHT+IEP3uo+khGi/6cmAFLYrzR0rInl2JajsMq1+492t0wURdaYJ3mK/IHpjDKVmwdGER+mBXjU1w==
X-Received: by 2002:a05:600c:4689:b0:459:dfde:3323 with SMTP id 5b1f17b1804b1-459ee872537mr21258235e9.27.1754565419840;
        Thu, 07 Aug 2025 04:16:59 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH v2 0/4] x86: Drop the vm86 segments selectors from struct cpu_user_regs
Date: Thu,  7 Aug 2025 12:16:53 +0100
Message-Id: <20250807111657.201849-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

This is the next chunk of work in order to support FRED.  Half of v1 is
already committed.

https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/1972002392

Andrew Cooper (4):
  x86/domctl: Stop using XLAT_cpu_user_regs()
  x86/pv: Store the data segment selectors outside of cpu_user_regs
  x86/public: Split the struct cpu_user_regs type
  x86: Drop the vm86 segments selectors from struct cpu_user_regs

 xen/arch/x86/cpu/common.c                |  2 +-
 xen/arch/x86/domain.c                    | 92 ++++++++++++++++--------
 xen/arch/x86/domctl.c                    | 38 +++++++++-
 xen/arch/x86/include/asm/cpu-user-regs.h | 58 +++++++++++++++
 xen/arch/x86/include/asm/current.h       | 11 +--
 xen/arch/x86/include/asm/domain.h        |  2 +
 xen/arch/x86/include/asm/hvm/hvm.h       |  4 --
 xen/arch/x86/include/asm/regs.h          | 11 +--
 xen/arch/x86/pv/dom0_build.c             |  6 +-
 xen/arch/x86/traps.c                     |  2 +-
 xen/arch/x86/x86_64/asm-offsets.c        |  2 +-
 xen/arch/x86/x86_64/traps.c              | 16 ++---
 xen/arch/x86/x86_emulate/private.h       |  1 +
 xen/include/public/arch-x86/xen-x86_32.h |  9 +++
 xen/include/public/arch-x86/xen-x86_64.h |  9 +++
 xen/include/public/arch-x86/xen.h        | 11 +++
 xen/include/xlat.lst                     |  2 -
 17 files changed, 208 insertions(+), 68 deletions(-)
 create mode 100644 xen/arch/x86/include/asm/cpu-user-regs.h

-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Aug 07 11:17:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 11:17:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072831.1435779 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujycK-0002mZ-8Y; Thu, 07 Aug 2025 11:17:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072831.1435779; Thu, 07 Aug 2025 11: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 1ujycK-0002mS-3t; Thu, 07 Aug 2025 11:17:04 +0000
Received: by outflank-mailman (input) for mailman id 1072831;
 Thu, 07 Aug 2025 11:17:03 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=LYnK=2T=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ujycJ-0002Ym-Fu
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 11:17:03 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0b1b6fd2-7380-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 13:17:03 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-458bece40fcso5178045e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 04:17:03 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459e5c84b8csm45456435e9.4.2025.08.07.04.17.01
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Aug 2025 04:17: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>
X-Inumbo-ID: 0b1b6fd2-7380-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754565422; x=1755170222; 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=WQKYHz4fSaJ/OtAFeeWkxochLoIzcmc/dz0cmOGZA7c=;
        b=Yet7FYOilVJX0hLZFyWVHsZEWASYJL1oiG5OSVYtNPGhfa0WfokYNThyDFewA6S5dr
         opR8Dt+OSW//i+0TirTY2aXVxEEjPnaacQsx8bzQtk533bIGwjsCUZBSfbphO/2UtDVd
         eZ10KxeLf7hTXXPDu0TCdgXO9I9bG5grhGECQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754565422; x=1755170222;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=WQKYHz4fSaJ/OtAFeeWkxochLoIzcmc/dz0cmOGZA7c=;
        b=pl2Y/Rt2TGooF181GAItB8zshHRyYN0ixTildiQ9KMgryoTvQXSJfBv64AXFKo2POk
         nyJN/zAa/7Yg2UPfLK6nqpL6IqzclTGo2B8dtSX1bjKcnCrF/Ei7zY1OG5bn1GWw2nU1
         9SbaokxJcKtO0KU+NW71VDsuwMTQWsfDlepmmDy8iYewX/21v8PmGUnyVdB2eo9vdisj
         okwx22/Fi79wUH5hDNH4kbteONS0la2gt6fHYaox1fQ1k2hhuNDYUwqr8Wf3/gPSXtAQ
         MOGaNyyJ/TkF9vP2ITBHuMGx/aTvgd5Q6QVY0m6g4Khj9O3jtUXmDeYU6lp/+g30b9m3
         U+ww==
X-Gm-Message-State: AOJu0YwdbdCQVZ2SXiMnMw5BZ8No31K9xAKobJO8L4n/YWUfP4Nwep5z
	8bORHhdhB+I/wNmqfvHwfjHHLXVXlfDKEPaB0tL8ycetTm0yp5YdZrfq4Zu692X6qbaWRQJdTQR
	bi59waJ0=
X-Gm-Gg: ASbGnctiIRQqlVJWkQBpkVv6wSkGoZyjP08gTuQV4fW3C/XHf7Pe6expUt1dLoSJrhI
	nhwg/150ufoUC2gJvUFxGwusmrW2p4gzPTJHumzMePEkV518UgPDlsa4kZzzvc6s8qnQXhoePFT
	hbFtiA2R/qDRonTVOf843gDr3PHqUjKkd8jw+jKzrMzNPPTJP5bLYui+6/HtY3Y/cvDb/Cy7z9J
	8hGtNp28M9TPsmcMAwYSbfwGwtFSN/Vu8bT1VOUNg+juet1/2Y3vXsJjPsVyZFatDHEIMVuW9+d
	7R4xmEtaawdlltT/g9ynEYbpar/2277rhBFBZQvGi5rZmu/lHH+pAFkwX5VLtPvEWSN9S00AWSj
	nqXkrSIB1AXamA+yTdsCcZ2st4CDhyVqFlw1N4/ziwOrhb0gXd4ZF7n85kXh9k/cJ8F1LWdqe23
	Eh
X-Google-Smtp-Source: AGHT+IFCS7cWq/GjuAVaBl4wcf4yItIQ/KmNepCkDF3DNa0rK/h6fEXzW6daydMplkdrsw8VBTkb8w==
X-Received: by 2002:a05:600c:444c:b0:456:1560:7c5f with SMTP id 5b1f17b1804b1-459ee82237amr26787405e9.14.1754565422141;
        Thu, 07 Aug 2025 04:17:02 -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>,
	Jan Beulich <JBeulich@suse.com>
Subject: [PATCH v2 3/4] x86/public: Split the struct cpu_user_regs type
Date: Thu,  7 Aug 2025 12:16:56 +0100
Message-Id: <20250807111657.201849-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250807111657.201849-1-andrew.cooper3@citrix.com>
References: <20250807111657.201849-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

In order to support FRED, we're going to have to remove the {ds..gs} fields
from struct cpu_user_regs, meaning that it is going to have to become a
different type to the structure embedded in vcpu_guest_context_u.

struct cpu_user_regs is a name used in common Xen code (i.e. needs to stay
using this name), so renaming the public struct to be guest_user_regs in Xen's
view only.

Introduce a brand hew cpu-user-regs.h, currently containing a duplicate
structure.

Notably, this removes the need to include pubic/xen.h in ~every translation
unit in Xen (via current.h), and highlights one case where the emulator was
picking up cpu_user_regs transitively.

Include comments describing how hardware interacts with this structure under
IDT delivery, as it's quite magic to start with.  FRED is going make things
more complicated.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

v2:
 * Remove the macros from cpu-user-regs.h and write the struct longhand
 * Exclude the guest handles in Xen context
---
 xen/arch/x86/include/asm/cpu-user-regs.h | 63 ++++++++++++++++++++++++
 xen/arch/x86/include/asm/current.h       |  3 +-
 xen/arch/x86/x86_emulate/private.h       |  1 +
 xen/include/public/arch-x86/xen-x86_32.h |  9 ++++
 xen/include/public/arch-x86/xen-x86_64.h |  9 ++++
 xen/include/public/arch-x86/xen.h        | 11 +++++
 6 files changed, 95 insertions(+), 1 deletion(-)
 create mode 100644 xen/arch/x86/include/asm/cpu-user-regs.h

diff --git a/xen/arch/x86/include/asm/cpu-user-regs.h b/xen/arch/x86/include/asm/cpu-user-regs.h
new file mode 100644
index 000000000000..0e78e38ed00d
--- /dev/null
+++ b/xen/arch/x86/include/asm/cpu-user-regs.h
@@ -0,0 +1,63 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+#ifndef X86_CPU_USER_REGS_H
+#define X86_CPU_USER_REGS_H
+
+#include <xen/stdint.h>
+
+/*
+ * cpu_user_regs represents the interrupted GPR state at the point of an
+ * interrupt, exception or syscall.  The layout is dictated by the hardware
+ * format for the event frame, with software filling in the rest.
+ */
+struct cpu_user_regs
+{
+    union { uint64_t r15;    uint32_t r15d;   uint16_t r15w;  uint8_t r15b; };
+    union { uint64_t r14;    uint32_t r14d;   uint16_t r14w;  uint8_t r14b; };
+    union { uint64_t r13;    uint32_t r13d;   uint16_t r13w;  uint8_t r13b; };
+    union { uint64_t r12;    uint32_t r12d;   uint16_t r12w;  uint8_t r12b; };
+    union { uint64_t rbp;    uint32_t ebp;    uint16_t bp;    uint8_t bpl;  };
+    union { uint64_t rbx;    uint32_t ebx;    uint16_t bx;    struct { uint8_t bl, bh; }; };
+    union { uint64_t r11;    uint32_t r11d;   uint16_t r11w;  uint8_t r11b; };
+    union { uint64_t r10;    uint32_t r10d;   uint16_t r10w;  uint8_t r10b; };
+    union { uint64_t r9;     uint32_t r9d;    uint16_t r9w;   uint8_t r9b;  };
+    union { uint64_t r8;     uint32_t r8d;    uint16_t r8w;   uint8_t r8b;  };
+    union { uint64_t rax;    uint32_t eax;    uint16_t ax;    struct { uint8_t al, ah; }; };
+    union { uint64_t rcx;    uint32_t ecx;    uint16_t cx;    struct { uint8_t cl, ch; }; };
+    union { uint64_t rdx;    uint32_t edx;    uint16_t dx;    struct { uint8_t dl, dh; }; };
+    union { uint64_t rsi;    uint32_t esi;    uint16_t si;    uint8_t sil;  };
+    union { uint64_t rdi;    uint32_t edi;    uint16_t di;    uint8_t dil;  };
+
+    /*
+     * During IDT delivery for exceptions with an error code, hardware pushes
+     * to this point.  Entry_vector is filled in by software.
+     */
+
+    uint32_t error_code;
+    uint32_t entry_vector;
+
+    /*
+     * During IDT delivery for interrupts or exceptions without an error code,
+     * hardware pushes to this point.  Both error_code and entry_vector are
+     * filled in by software.
+     */
+
+    union { uint64_t rip;    uint32_t eip;    uint16_t ip; };
+    uint16_t cs, _pad0[1];
+    uint8_t  saved_upcall_mask; /* PV (v)rflags.IF == !saved_upcall_mask */
+    uint8_t  _pad1[3];
+    union { uint64_t rflags; uint32_t eflags; uint16_t flags; };
+    union { uint64_t rsp;    uint32_t esp;    uint16_t sp;    uint8_t spl; };
+    uint16_t ss, _pad2[3];
+
+    /*
+     * For IDT delivery, tss->rsp0 points to this boundary as embedded within
+     * struct cpu_info.  It must be 16-byte aligned.
+     */
+
+    uint16_t es, _pad3[3];
+    uint16_t ds, _pad4[3];
+    uint16_t fs, _pad5[3];
+    uint16_t gs, _pad6[3];
+};
+
+#endif /* X86_CPU_USER_REGS_H */
diff --git a/xen/arch/x86/include/asm/current.h b/xen/arch/x86/include/asm/current.h
index bcec328c9875..243d17ef79fd 100644
--- a/xen/arch/x86/include/asm/current.h
+++ b/xen/arch/x86/include/asm/current.h
@@ -9,7 +9,8 @@
 
 #include <xen/percpu.h>
 #include <xen/page-size.h>
-#include <public/xen.h>
+
+#include <asm/cpu-user-regs.h>
 
 /*
  * Xen's cpu stacks are 8 pages (8-page aligned), arranged as:
diff --git a/xen/arch/x86/x86_emulate/private.h b/xen/arch/x86/x86_emulate/private.h
index 940087987011..24c79c4e8fac 100644
--- a/xen/arch/x86/x86_emulate/private.h
+++ b/xen/arch/x86/x86_emulate/private.h
@@ -14,6 +14,7 @@
 # include <xen/bug.h>
 # include <xen/kernel.h>
 
+# include <asm/cpu-user-regs.h>
 # include <asm/endbr.h>
 # include <asm/msr-index.h>
 # include <asm/stubs.h>
diff --git a/xen/include/public/arch-x86/xen-x86_32.h b/xen/include/public/arch-x86/xen-x86_32.h
index 9e3bf06b121e..25cc44728838 100644
--- a/xen/include/public/arch-x86/xen-x86_32.h
+++ b/xen/include/public/arch-x86/xen-x86_32.h
@@ -114,6 +114,10 @@
 #define __DECL_REG_LO16(name) uint32_t e ## name
 #endif
 
+#ifdef __XEN__
+#define cpu_user_regs guest_user_regs
+#endif
+
 struct cpu_user_regs {
     __DECL_REG_LO8(b);
     __DECL_REG_LO8(c);
@@ -136,8 +140,13 @@ struct cpu_user_regs {
     uint16_t fs, _pad4;
     uint16_t gs, _pad5;
 };
+
+#ifdef __XEN__
+#undef cpu_user_regs
+#else
 typedef struct cpu_user_regs cpu_user_regs_t;
 DEFINE_XEN_GUEST_HANDLE(cpu_user_regs_t);
+#endif
 
 #undef __DECL_REG_LO8
 #undef __DECL_REG_LO16
diff --git a/xen/include/public/arch-x86/xen-x86_64.h b/xen/include/public/arch-x86/xen-x86_64.h
index 43f6e3d22001..ea6b56aa3bd8 100644
--- a/xen/include/public/arch-x86/xen-x86_64.h
+++ b/xen/include/public/arch-x86/xen-x86_64.h
@@ -159,6 +159,10 @@ struct iret_context {
 #define __DECL_REG_HI(num)    uint64_t r ## num
 #endif
 
+#ifdef __XEN__
+#define cpu_user_regs guest_user_regs
+#endif
+
 struct cpu_user_regs {
     __DECL_REG_HI(15);
     __DECL_REG_HI(14);
@@ -189,8 +193,13 @@ struct cpu_user_regs {
     uint16_t fs, _pad5[3];
     uint16_t gs, _pad6[3];
 };
+
+#ifdef __XEN__
+#undef cpu_user_regs
+#else
 typedef struct cpu_user_regs cpu_user_regs_t;
 DEFINE_XEN_GUEST_HANDLE(cpu_user_regs_t);
+#endif
 
 #undef __DECL_REG
 #undef __DECL_REG_LOHI
diff --git a/xen/include/public/arch-x86/xen.h b/xen/include/public/arch-x86/xen.h
index fc2487986642..b99a691706f8 100644
--- a/xen/include/public/arch-x86/xen.h
+++ b/xen/include/public/arch-x86/xen.h
@@ -173,7 +173,18 @@ struct vcpu_guest_context {
 #define _VGCF_online                   5
 #define VGCF_online                    (1<<_VGCF_online)
     unsigned long flags;                    /* VGCF_* flags                 */
+
+    /*
+     * Outside of Xen, regs type stays named cpu_user_regs for backwards
+     * compatibility.  Inside Xen, the type called cpu_user_regs is different,
+     * and the public API type is renamed to guest_user_regs.
+     */
+#ifdef __XEN__
+    struct guest_user_regs user_regs;       /* User-level CPU registers     */
+#else
     struct cpu_user_regs user_regs;         /* User-level CPU registers     */
+#endif
+
     struct trap_info trap_ctxt[256];        /* Virtual IDT                  */
     unsigned long ldt_base, ldt_ents;       /* LDT (linear address, # ents) */
     unsigned long gdt_frames[16], gdt_ents; /* GDT (machine frames, # ents) */
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Aug 07 11:17:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 11:17:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072833.1435795 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujycN-00035B-W0; Thu, 07 Aug 2025 11:17:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072833.1435795; Thu, 07 Aug 2025 11:17: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 1ujycN-00034g-P1; Thu, 07 Aug 2025 11:17:07 +0000
Received: by outflank-mailman (input) for mailman id 1072833;
 Thu, 07 Aug 2025 11:17:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=LYnK=2T=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ujycM-00030Z-Jj
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 11:17:06 +0000
Received: from mail-wm1-x342.google.com (mail-wm1-x342.google.com
 [2a00:1450:4864:20::342])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0bea8958-7380-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 13:17:04 +0200 (CEST)
Received: by mail-wm1-x342.google.com with SMTP id
 5b1f17b1804b1-458bf6d69e4so8083795e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 04:17:04 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459e5c84b8csm45456435e9.4.2025.08.07.04.16.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Aug 2025 04:17: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>
X-Inumbo-ID: 0bea8958-7380-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754565423; x=1755170223; 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=DYLRSCELpDf777tBe5S3x0+V8CZEK6QhYyN7G9zFspo=;
        b=OJ7AJcCDZq3jtMyspyQuzCSmJCgGbj6R182T4nCpodg0pgw5FixPUNVho70QlsYYG6
         QMVaCZtYSmXKe8G446doumTxSy0TK48MPLwCHmhotkvWgAKjEEpbcG1ysSichCIrKAUr
         xOQ0QRkOHiguOZVOTDJG0ecbvUXPYZX3/ph5E=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754565423; x=1755170223;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=DYLRSCELpDf777tBe5S3x0+V8CZEK6QhYyN7G9zFspo=;
        b=sz2hfmjxvh3s/OwSdxHOWsw/UccAGEHTcBSVjt/MNq88q31u+t2oU0S+Ll27xR46Gu
         Ym1UniumZVD2vXpkuyQrp2y7WD5d4+ItIU71+xzNFgCdj11SSgPrdiCCcEV0+C2P21Ef
         1MnkQHpfIwL1cX78uP+qjdmeF/jVbad0zKF5cXEgxhJ9NszWf6/u+OyQHotmBmkGF044
         rfVd6lTH1WT4GQnacDsex0sKnEdSECPeE08WacGcOcCcwu1BPFy4ZlTyHi1SyJLqZw4i
         ObjfkHuk0fRm5S1Ih0jMFF6zJhbgHrBqDBCLiU271xrLOj7sadMW1m4mJu/WKidwR7/V
         TYMw==
X-Gm-Message-State: AOJu0YyIfUGmoYUOE/zPpbzYXuyrDg4Jcaiu9G27lRyAQxZzUMbF23f+
	i/sA2b1cPRvMnHlxeR692mGhlKQ6aoNKWSlZtNdsMqijS9OWaAt5hwHZhmybj/xbGVelLzjGqvC
	tYRXeYat0vQ==
X-Gm-Gg: ASbGncvy/JU0HvAdj0wGCafKEO96gSniGJolXDVVkiTg9y3JoB5r+E/Br1CGx9VvK5N
	LPdeMYUytYvVps1RUAgnsc7r3VurFeRxryHi2qYBiPXiIQd/5a1mLCHS/zVjNT0bCja/8PAWXHj
	Ru8xcdzdZpJnKCZkDNKYQzVPjBf4/jqY6MjDm6hw3gxG4uvjBzILf6wTl4wIn0SXsVgHdDoVIUt
	rkt/uo9NnsP0i7C3Bk/o+YFmKjvIORO1tqhUSbkMDuGVlJ/qyZrONUBZlvclFGxUVOt0ZIAyQyS
	0NgYyzk3Gmz40rLLaO4eDSgFOIfLs1kFLZ0t6G8dUG7C05Gc0+WziUTHz6d/YzKth7Vyzl1lNhH
	7nWbFXps7GKUnJl0Gfd4J+tgKxWQE0SfWhHa46tnQlAS1Pbye2J0fcMX/b+7xsfQNAWhORDvwJ3
	/r
X-Google-Smtp-Source: AGHT+IGVJwnBI/52eUaXILV0ggTlZQ6i9eke2ZF9PtnsEWbgzUIFr3VU5Ayjl5bNqFXKmGvQ/eCZ5A==
X-Received: by 2002:a05:600c:3589:b0:456:1204:e7e6 with SMTP id 5b1f17b1804b1-459e7ec7ac6mr56475535e9.11.1754565420494;
        Thu, 07 Aug 2025 04:17:00 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 1/4] x86/domctl: Stop using XLAT_cpu_user_regs()
Date: Thu,  7 Aug 2025 12:16:54 +0100
Message-Id: <20250807111657.201849-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250807111657.201849-1-andrew.cooper3@citrix.com>
References: <20250807111657.201849-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

In order to support FRED, we're going to have to remove the {ds..gs} fields
from struct cpu_user_regs, meaning that it is going to have to become a
different type to the structure embedded in vcpu_guest_context_u.

In both arch_{get,set}_info_guest(), expand the memcpy()/XLAT_cpu_user_regs()
to copy the fields individually.  This will allow us to eventually make them
different types.

This does cause some minor changes in behaviour for the hypercalls.

It is specifically not the case that a toolstack could set_info(); get_info();
and get an identical bit pattern back.  Amongst other things, the
architectural sticky bits in registers are applied during setting.

Previously, XLAT_cpu_user_regs() omitted the _pad fields in the compat case
whereas the non-compat case included them owing to the single memcpy().

Omit the _pad fields in the non-compat case too; for all but the oldest of
CPUs, the segment selectors are zero-extended by hardware when pushed onto the
stack, so non-zero values here get lost naturally.  Furthermore, FRED reuses
the space above cs and ss for extra state, and a PV guest for now at least
must not be able to write the control state.

Omit the error_code and entry_vector fields too.  They're already identified
as private fields in the public API, and are stale outside of Xen's
interrupt/exception/syscall handler.  They're also a very minor information
leak of which event caused the last deschedule of a vCPU.

Finally, omit saved_upcall_mask.  Xen doesn't consume this, and only produces
it in {compat_,}create_bounce_frame(), based on the vcpu_info page and
settings about the event being injected.  Similar to error_code/entry_vector,
it is stale outside of the guest's event handler.

No change that toolstacks or guests are expected to notice or care about.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

v2:
 * Zero memory before a partial copy, or note that it already is.
 * Omit error_code/entry_vector/saved_upcall_mask too.

I can't see why saved_upcall_mask exists in the first place, given that it is
also reflected in (v)rflags.IF.  None of MiniOS, Linux or NetBSD use it at
all.  I suspect the reflecting in IF was a slightly later addition dicovered
when running non-toy PV guests, and saved_upcall_mask got left behind as a
wart in the ABI.
---
 xen/arch/x86/domain.c | 38 ++++++++++++++++++++++++++++++++++++--
 xen/arch/x86/domctl.c | 38 ++++++++++++++++++++++++++++++++++++--
 xen/include/xlat.lst  |  2 --
 3 files changed, 72 insertions(+), 6 deletions(-)

diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 56c381618712..56111eac3d94 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -1233,7 +1233,24 @@ int arch_set_info_guest(
 
     if ( !compat )
     {
-        memcpy(&v->arch.user_regs, &c.nat->user_regs, sizeof(c.nat->user_regs));
+        memset(&v->arch.user_regs, 0, sizeof(v->arch.user_regs));
+        v->arch.user_regs.rbx               = c.nat->user_regs.rbx;
+        v->arch.user_regs.rcx               = c.nat->user_regs.rcx;
+        v->arch.user_regs.rdx               = c.nat->user_regs.rdx;
+        v->arch.user_regs.rsi               = c.nat->user_regs.rsi;
+        v->arch.user_regs.rdi               = c.nat->user_regs.rdi;
+        v->arch.user_regs.rbp               = c.nat->user_regs.rbp;
+        v->arch.user_regs.rax               = c.nat->user_regs.rax;
+        v->arch.user_regs.rip               = c.nat->user_regs.rip;
+        v->arch.user_regs.cs                = c.nat->user_regs.cs;
+        v->arch.user_regs.rflags            = c.nat->user_regs.rflags;
+        v->arch.user_regs.rsp               = c.nat->user_regs.rsp;
+        v->arch.user_regs.ss                = c.nat->user_regs.ss;
+        v->arch.user_regs.es                = c.nat->user_regs.es;
+        v->arch.user_regs.ds                = c.nat->user_regs.ds;
+        v->arch.user_regs.fs                = c.nat->user_regs.fs;
+        v->arch.user_regs.gs                = c.nat->user_regs.gs;
+
         if ( is_pv_domain(d) )
             memcpy(v->arch.pv.trap_ctxt, c.nat->trap_ctxt,
                    sizeof(c.nat->trap_ctxt));
@@ -1241,7 +1258,24 @@ int arch_set_info_guest(
 #ifdef CONFIG_COMPAT
     else
     {
-        XLAT_cpu_user_regs(&v->arch.user_regs, &c.cmp->user_regs);
+        memset(&v->arch.user_regs, 0, sizeof(v->arch.user_regs));
+        v->arch.user_regs.ebx               = c.cmp->user_regs.ebx;
+        v->arch.user_regs.ecx               = c.cmp->user_regs.ecx;
+        v->arch.user_regs.edx               = c.cmp->user_regs.edx;
+        v->arch.user_regs.esi               = c.cmp->user_regs.esi;
+        v->arch.user_regs.edi               = c.cmp->user_regs.edi;
+        v->arch.user_regs.ebp               = c.cmp->user_regs.ebp;
+        v->arch.user_regs.eax               = c.cmp->user_regs.eax;
+        v->arch.user_regs.eip               = c.cmp->user_regs.eip;
+        v->arch.user_regs.cs                = c.cmp->user_regs.cs;
+        v->arch.user_regs.eflags            = c.cmp->user_regs.eflags;
+        v->arch.user_regs.esp               = c.cmp->user_regs.esp;
+        v->arch.user_regs.ss                = c.cmp->user_regs.ss;
+        v->arch.user_regs.es                = c.cmp->user_regs.es;
+        v->arch.user_regs.ds                = c.cmp->user_regs.ds;
+        v->arch.user_regs.fs                = c.cmp->user_regs.fs;
+        v->arch.user_regs.gs                = c.cmp->user_regs.gs;
+
         if ( is_pv_domain(d) )
         {
             for ( i = 0; i < ARRAY_SIZE(c.cmp->trap_ctxt); ++i )
diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c
index 3044f706de1c..28fec0e12dbb 100644
--- a/xen/arch/x86/domctl.c
+++ b/xen/arch/x86/domctl.c
@@ -1399,7 +1399,24 @@ void arch_get_info_guest(struct vcpu *v, vcpu_guest_context_u c)
         c(flags |= VGCF_online);
     if ( !compat )
     {
-        memcpy(&c.nat->user_regs, &v->arch.user_regs, sizeof(c.nat->user_regs));
+        /* Backing memory is pre-zeroed. */
+        c.nat->user_regs.rbx               = v->arch.user_regs.rbx;
+        c.nat->user_regs.rcx               = v->arch.user_regs.rcx;
+        c.nat->user_regs.rdx               = v->arch.user_regs.rdx;
+        c.nat->user_regs.rsi               = v->arch.user_regs.rsi;
+        c.nat->user_regs.rdi               = v->arch.user_regs.rdi;
+        c.nat->user_regs.rbp               = v->arch.user_regs.rbp;
+        c.nat->user_regs.rax               = v->arch.user_regs.rax;
+        c.nat->user_regs.rip               = v->arch.user_regs.rip;
+        c.nat->user_regs.cs                = v->arch.user_regs.cs;
+        c.nat->user_regs.rflags            = v->arch.user_regs.rflags;
+        c.nat->user_regs.rsp               = v->arch.user_regs.rsp;
+        c.nat->user_regs.ss                = v->arch.user_regs.ss;
+        c.nat->user_regs.es                = v->arch.user_regs.es;
+        c.nat->user_regs.ds                = v->arch.user_regs.ds;
+        c.nat->user_regs.fs                = v->arch.user_regs.fs;
+        c.nat->user_regs.gs                = v->arch.user_regs.gs;
+
         if ( is_pv_domain(d) )
             memcpy(c.nat->trap_ctxt, v->arch.pv.trap_ctxt,
                    sizeof(c.nat->trap_ctxt));
@@ -1407,7 +1424,24 @@ void arch_get_info_guest(struct vcpu *v, vcpu_guest_context_u c)
 #ifdef CONFIG_COMPAT
     else
     {
-        XLAT_cpu_user_regs(&c.cmp->user_regs, &v->arch.user_regs);
+        /* Backing memory is pre-zeroed. */
+        c.cmp->user_regs.ebx               = v->arch.user_regs.ebx;
+        c.cmp->user_regs.ecx               = v->arch.user_regs.ecx;
+        c.cmp->user_regs.edx               = v->arch.user_regs.edx;
+        c.cmp->user_regs.esi               = v->arch.user_regs.esi;
+        c.cmp->user_regs.edi               = v->arch.user_regs.edi;
+        c.cmp->user_regs.ebp               = v->arch.user_regs.ebp;
+        c.cmp->user_regs.eax               = v->arch.user_regs.eax;
+        c.cmp->user_regs.eip               = v->arch.user_regs.eip;
+        c.cmp->user_regs.cs                = v->arch.user_regs.cs;
+        c.cmp->user_regs.eflags            = v->arch.user_regs.eflags;
+        c.cmp->user_regs.esp               = v->arch.user_regs.esp;
+        c.cmp->user_regs.ss                = v->arch.user_regs.ss;
+        c.cmp->user_regs.es                = v->arch.user_regs.es;
+        c.cmp->user_regs.ds                = v->arch.user_regs.ds;
+        c.cmp->user_regs.fs                = v->arch.user_regs.fs;
+        c.cmp->user_regs.gs                = v->arch.user_regs.gs;
+
         if ( is_pv_domain(d) )
         {
             for ( i = 0; i < ARRAY_SIZE(c.cmp->trap_ctxt); ++i )
diff --git a/xen/include/xlat.lst b/xen/include/xlat.lst
index 3c7b6c6830a9..6d6c6cfab251 100644
--- a/xen/include/xlat.lst
+++ b/xen/include/xlat.lst
@@ -34,8 +34,6 @@
 ?	pmu_intel_ctxt			arch-x86/pmu.h
 ?	pmu_regs			arch-x86/pmu.h
 
-!	cpu_user_regs			arch-x86/xen-@arch@.h
-
 ?	cpu_offline_action		arch-x86/xen-mca.h
 ?	mc				arch-x86/xen-mca.h
 !	mc_fetch			arch-x86/xen-mca.h
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Aug 07 11:17:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 11:17:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072834.1435809 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujycP-0003TA-5o; Thu, 07 Aug 2025 11:17:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072834.1435809; Thu, 07 Aug 2025 11:17: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 1ujycP-0003Ru-0U; Thu, 07 Aug 2025 11:17:09 +0000
Received: by outflank-mailman (input) for mailman id 1072834;
 Thu, 07 Aug 2025 11:17:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=LYnK=2T=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ujycN-00030Z-Jp
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 11:17:07 +0000
Received: from mail-wm1-x344.google.com (mail-wm1-x344.google.com
 [2a00:1450:4864:20::344])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0ab40a4d-7380-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 13:17:02 +0200 (CEST)
Received: by mail-wm1-x344.google.com with SMTP id
 5b1f17b1804b1-458b2d9dba5so5633235e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 04:17:02 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459e5c84b8csm45456435e9.4.2025.08.07.04.17.00
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Aug 2025 04:17: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>
X-Inumbo-ID: 0ab40a4d-7380-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754565421; x=1755170221; 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=dL2YvSztXVd/Fab5v2hd2sS7i1yVeJls/PSnVnUMirw=;
        b=umUj4Las8LHB4nu85ypm4PpH052nZGtOEJ5zQrfl8IIoeMTK85diBzTaxMobyiYU0M
         kXAQVqZUdaGjitaHg+agQr3TuPYkOMXwHFY9n5OaVaYjpKjE7KZoqQE1Awnm9zUQwueq
         EijVthjo9wLJ1bJ2LpyGTMA0iE7P6ZcMcayzw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754565421; x=1755170221;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=dL2YvSztXVd/Fab5v2hd2sS7i1yVeJls/PSnVnUMirw=;
        b=Z9Wc5OcP7ZFXYdbzsdTbGOLtn0XHNi31Rs//C+GyKW2knvxMg0jjvZ/ZKZVTeyWl+7
         OJjgmWp+n/6NLSqqIdJm2HGyz5VeChcU4tfrHbPtQQdRJMEcrKPPeoO2i5Iveul0S88p
         EMzG94UgfATvNZsAjsm5aKuvPS6ZiR7A3LA/zVMwo5WEMD4D60LG3I2hrJf1Wao7HJsq
         lr8cltBq2yvYGDCEc1w6oHeMl7BewOJbuUv+Pd3/8Ee59CIGk3NzYMWrrxN6UAS2bb/D
         GfPW137UlVaVIS5u1y+4CAcTzw7x1HtY7MmayK72NOpDU0dbTOHDPFj2PIna2NytEqPX
         uAwA==
X-Gm-Message-State: AOJu0Yz+X78U68Eq1vhSvR/s4B3EU8rZF8rX2FaU4If1uYetNFjZW0uI
	ECN1zbpdLb2/+oRao68Ma3GrqIQIG0D9OmMANUxPVkd5E3YExrzlVmdN7W7YsBbUHOjnJHzDGXy
	GBV+nnK9zFg==
X-Gm-Gg: ASbGncvcc1enndQa1PAQpNvZebE0LG+EIqwcYosP9hjSz3yD44Fcp+cs0ZXYfnfYULo
	Q1PaQQ0Ny7MSiE2OcjeTkPDqHxQCwNI54pL6ZSTI9SNMuwkxwqOP2aRXSa/SKM73hRoF6rtSX+P
	0Vl5nLDjjWDb/g9LgmUnetY0ZyJW8bk4DbVWOCDX58WuDXIBXzWCKsWP0Kyjv5WhkAhfxGWQbzS
	SjDnkMriXPT/npYrowWVM5ai7EsfQhUskpPt6iFcutFEFKvSPwnG6VCLIgJO8gLbAoThZdg0RWI
	OAKvoBC/GkIN4vVOKB9nHStvEMMRjtxdJWHRz4TeOGDX5CsTDzWdO/YGqR/K/hAku7oeznavxki
	AgfWLjrsROpxLP8xQJgP1vz/fmNj08dIO55u54jD/6fG4BQ1FoXBrF2chSOtXbgc75bqUk0Bk/F
	Cx
X-Google-Smtp-Source: AGHT+IGWE4tTGGHjLdAwv6JpciHuz5qoT7XvVZfUijtwN1vJQdLXauax63tQQfhZAl6wuse/OyybKA==
X-Received: by 2002:a05:600c:1554:b0:456:18cf:66b5 with SMTP id 5b1f17b1804b1-459e70eecadmr54586005e9.22.1754565421168;
        Thu, 07 Aug 2025 04:17:01 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 2/4] x86/pv: Store the data segment selectors outside of cpu_user_regs
Date: Thu,  7 Aug 2025 12:16:55 +0100
Message-Id: <20250807111657.201849-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250807111657.201849-1-andrew.cooper3@citrix.com>
References: <20250807111657.201849-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

In order to support FRED, we're going to have to remove the {ds..gs} fields
from struct cpu_user_regs.  This will impact v->arch.user_regs.

These fields are unused for HVM guests, but for PV hold the selector values
when the vCPU is scheduled out.

Introduce new fields for the selectors in struct pv_vcpu, and update:

 * {save,load}_segments(), context switching
 * arch_{set,set}_info_guest(), hypercalls
 * vcpu_show_registers(), diagnostics
 * dom0_construct(), PV dom0

to use the new storage.  This removes the final user of read_sregs() so drop
it too.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/domain.c             | 70 +++++++++++++++----------------
 xen/arch/x86/domctl.c             | 16 +++----
 xen/arch/x86/include/asm/domain.h |  2 +
 xen/arch/x86/include/asm/regs.h   |  8 ----
 xen/arch/x86/pv/dom0_build.c      |  6 ++-
 xen/arch/x86/x86_64/traps.c       |  8 ++--
 6 files changed, 53 insertions(+), 57 deletions(-)

diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 56111eac3d94..a4ee8ff6ef0e 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -1246,10 +1246,10 @@ int arch_set_info_guest(
         v->arch.user_regs.rflags            = c.nat->user_regs.rflags;
         v->arch.user_regs.rsp               = c.nat->user_regs.rsp;
         v->arch.user_regs.ss                = c.nat->user_regs.ss;
-        v->arch.user_regs.es                = c.nat->user_regs.es;
-        v->arch.user_regs.ds                = c.nat->user_regs.ds;
-        v->arch.user_regs.fs                = c.nat->user_regs.fs;
-        v->arch.user_regs.gs                = c.nat->user_regs.gs;
+        v->arch.pv.es                       = c.nat->user_regs.es;
+        v->arch.pv.ds                       = c.nat->user_regs.ds;
+        v->arch.pv.fs                       = c.nat->user_regs.fs;
+        v->arch.pv.gs                       = c.nat->user_regs.gs;
 
         if ( is_pv_domain(d) )
             memcpy(v->arch.pv.trap_ctxt, c.nat->trap_ctxt,
@@ -1271,10 +1271,10 @@ int arch_set_info_guest(
         v->arch.user_regs.eflags            = c.cmp->user_regs.eflags;
         v->arch.user_regs.esp               = c.cmp->user_regs.esp;
         v->arch.user_regs.ss                = c.cmp->user_regs.ss;
-        v->arch.user_regs.es                = c.cmp->user_regs.es;
-        v->arch.user_regs.ds                = c.cmp->user_regs.ds;
-        v->arch.user_regs.fs                = c.cmp->user_regs.fs;
-        v->arch.user_regs.gs                = c.cmp->user_regs.gs;
+        v->arch.pv.es                       = c.cmp->user_regs.es;
+        v->arch.pv.ds                       = c.cmp->user_regs.ds;
+        v->arch.pv.fs                       = c.cmp->user_regs.fs;
+        v->arch.pv.gs                       = c.cmp->user_regs.gs;
 
         if ( is_pv_domain(d) )
         {
@@ -1762,7 +1762,6 @@ long do_vcpu_op(int cmd, unsigned int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg)
  */
 static void load_segments(struct vcpu *n)
 {
-    struct cpu_user_regs *uregs = &n->arch.user_regs;
     unsigned long gsb = 0, gss = 0;
     bool compat = is_pv_32bit_vcpu(n);
     bool all_segs_okay = true, fs_gs_done = false;
@@ -1796,7 +1795,7 @@ static void load_segments(struct vcpu *n)
         if ( !(n->arch.flags & TF_kernel_mode) )
             SWAP(gsb, gss);
 
-        if ( using_svm() && (uregs->fs | uregs->gs) <= 3 )
+        if ( using_svm() && (n->arch.pv.fs | n->arch.pv.gs) <= 3 )
             fs_gs_done = svm_load_segs(n->arch.pv.ldt_ents, LDT_VIRT_START(n),
                                        n->arch.pv.fs_base, gsb, gss);
     }
@@ -1805,12 +1804,12 @@ static void load_segments(struct vcpu *n)
     {
         load_LDT(n);
 
-        TRY_LOAD_SEG(fs, uregs->fs);
-        TRY_LOAD_SEG(gs, uregs->gs);
+        TRY_LOAD_SEG(fs, n->arch.pv.fs);
+        TRY_LOAD_SEG(gs, n->arch.pv.gs);
     }
 
-    TRY_LOAD_SEG(ds, uregs->ds);
-    TRY_LOAD_SEG(es, uregs->es);
+    TRY_LOAD_SEG(ds, n->arch.pv.ds);
+    TRY_LOAD_SEG(es, n->arch.pv.es);
 
     if ( !fs_gs_done && !compat )
     {
@@ -1863,13 +1862,13 @@ static void load_segments(struct vcpu *n)
             }
 
             if ( ret |
-                 put_guest(rflags,      esp - 1) |
-                 put_guest(cs_and_mask, esp - 2) |
-                 put_guest(regs->eip,   esp - 3) |
-                 put_guest(uregs->gs,   esp - 4) |
-                 put_guest(uregs->fs,   esp - 5) |
-                 put_guest(uregs->es,   esp - 6) |
-                 put_guest(uregs->ds,   esp - 7) )
+                 put_guest(rflags,        esp - 1) |
+                 put_guest(cs_and_mask,   esp - 2) |
+                 put_guest(regs->eip,     esp - 3) |
+                 put_guest(n->arch.pv.gs, esp - 4) |
+                 put_guest(n->arch.pv.fs, esp - 5) |
+                 put_guest(n->arch.pv.es, esp - 6) |
+                 put_guest(n->arch.pv.ds, esp - 7) )
                 domain_crash(n->domain,
                              "Error creating compat failsafe callback frame\n");
 
@@ -1895,17 +1894,17 @@ static void load_segments(struct vcpu *n)
         cs_and_mask = (unsigned long)regs->cs |
             ((unsigned long)vcpu_info(n, evtchn_upcall_mask) << 32);
 
-        if ( put_guest(regs->ss,    rsp -  1) |
-             put_guest(regs->rsp,   rsp -  2) |
-             put_guest(rflags,      rsp -  3) |
-             put_guest(cs_and_mask, rsp -  4) |
-             put_guest(regs->rip,   rsp -  5) |
-             put_guest(uregs->gs,   rsp -  6) |
-             put_guest(uregs->fs,   rsp -  7) |
-             put_guest(uregs->es,   rsp -  8) |
-             put_guest(uregs->ds,   rsp -  9) |
-             put_guest(regs->r11,   rsp - 10) |
-             put_guest(regs->rcx,   rsp - 11) )
+        if ( put_guest(regs->ss,      rsp -  1) |
+             put_guest(regs->rsp,     rsp -  2) |
+             put_guest(rflags,        rsp -  3) |
+             put_guest(cs_and_mask,   rsp -  4) |
+             put_guest(regs->rip,     rsp -  5) |
+             put_guest(n->arch.pv.gs, rsp -  6) |
+             put_guest(n->arch.pv.fs, rsp -  7) |
+             put_guest(n->arch.pv.es, rsp -  8) |
+             put_guest(n->arch.pv.ds, rsp -  9) |
+             put_guest(regs->r11,     rsp - 10) |
+             put_guest(regs->rcx,     rsp - 11) )
             domain_crash(n->domain,
                          "Error creating failsafe callback frame\n");
 
@@ -1934,9 +1933,10 @@ static void load_segments(struct vcpu *n)
  */
 static void save_segments(struct vcpu *v)
 {
-    struct cpu_user_regs *regs = &v->arch.user_regs;
-
-    read_sregs(regs);
+    asm ( "mov %%ds, %0" : "=m" (v->arch.pv.ds) );
+    asm ( "mov %%es, %0" : "=m" (v->arch.pv.es) );
+    asm ( "mov %%fs, %0" : "=m" (v->arch.pv.fs) );
+    asm ( "mov %%gs, %0" : "=m" (v->arch.pv.gs) );
 
     if ( !is_pv_32bit_vcpu(v) )
     {
diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c
index 28fec0e12dbb..3e94af51a795 100644
--- a/xen/arch/x86/domctl.c
+++ b/xen/arch/x86/domctl.c
@@ -1412,10 +1412,10 @@ void arch_get_info_guest(struct vcpu *v, vcpu_guest_context_u c)
         c.nat->user_regs.rflags            = v->arch.user_regs.rflags;
         c.nat->user_regs.rsp               = v->arch.user_regs.rsp;
         c.nat->user_regs.ss                = v->arch.user_regs.ss;
-        c.nat->user_regs.es                = v->arch.user_regs.es;
-        c.nat->user_regs.ds                = v->arch.user_regs.ds;
-        c.nat->user_regs.fs                = v->arch.user_regs.fs;
-        c.nat->user_regs.gs                = v->arch.user_regs.gs;
+        c.nat->user_regs.es                = v->arch.pv.es;
+        c.nat->user_regs.ds                = v->arch.pv.ds;
+        c.nat->user_regs.fs                = v->arch.pv.fs;
+        c.nat->user_regs.gs                = v->arch.pv.gs;
 
         if ( is_pv_domain(d) )
             memcpy(c.nat->trap_ctxt, v->arch.pv.trap_ctxt,
@@ -1437,10 +1437,10 @@ void arch_get_info_guest(struct vcpu *v, vcpu_guest_context_u c)
         c.cmp->user_regs.eflags            = v->arch.user_regs.eflags;
         c.cmp->user_regs.esp               = v->arch.user_regs.esp;
         c.cmp->user_regs.ss                = v->arch.user_regs.ss;
-        c.cmp->user_regs.es                = v->arch.user_regs.es;
-        c.cmp->user_regs.ds                = v->arch.user_regs.ds;
-        c.cmp->user_regs.fs                = v->arch.user_regs.fs;
-        c.cmp->user_regs.gs                = v->arch.user_regs.gs;
+        c.cmp->user_regs.es                = v->arch.pv.es;
+        c.cmp->user_regs.ds                = v->arch.pv.ds;
+        c.cmp->user_regs.fs                = v->arch.pv.fs;
+        c.cmp->user_regs.gs                = v->arch.pv.gs;
 
         if ( is_pv_domain(d) )
         {
diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
index 8c0dea12a526..c31e74c6fa9b 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -546,6 +546,8 @@ struct pv_vcpu
     bool syscall32_disables_events;
     bool sysenter_disables_events;
 
+    uint16_t ds, es, fs, gs;
+
     /*
      * 64bit segment bases.
      *
diff --git a/xen/arch/x86/include/asm/regs.h b/xen/arch/x86/include/asm/regs.h
index 60b0d7b8735b..ce9b028276a1 100644
--- a/xen/arch/x86/include/asm/regs.h
+++ b/xen/arch/x86/include/asm/regs.h
@@ -44,12 +44,4 @@
     __sel;                                           \
 })
 
-static inline void read_sregs(struct cpu_user_regs *regs)
-{
-    asm ( "mov %%ds, %0" : "=m" (regs->ds) );
-    asm ( "mov %%es, %0" : "=m" (regs->es) );
-    asm ( "mov %%fs, %0" : "=m" (regs->fs) );
-    asm ( "mov %%gs, %0" : "=m" (regs->gs) );
-}
-
 #endif /* __X86_REGS_H__ */
diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index c37bea945431..21158ce1812e 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -1012,8 +1012,10 @@ static int __init dom0_construct(const struct boot_domain *bd)
      *  [rAX,rBX,rCX,rDX,rDI,rBP,R8-R15 are zero]
      */
     regs = &v->arch.user_regs;
-    regs->ds = regs->es = regs->fs = regs->gs =
-               (compat ? FLAT_COMPAT_KERNEL_DS : FLAT_KERNEL_DS);
+    v->arch.pv.ds = (compat ? FLAT_COMPAT_KERNEL_DS : FLAT_KERNEL_DS);
+    v->arch.pv.es = (compat ? FLAT_COMPAT_KERNEL_DS : FLAT_KERNEL_DS);
+    v->arch.pv.fs = (compat ? FLAT_COMPAT_KERNEL_DS : FLAT_KERNEL_DS);
+    v->arch.pv.gs = (compat ? FLAT_COMPAT_KERNEL_DS : FLAT_KERNEL_DS);
     regs->ss = (compat ? FLAT_COMPAT_KERNEL_SS : FLAT_KERNEL_SS);
     regs->cs = (compat ? FLAT_COMPAT_KERNEL_CS : FLAT_KERNEL_CS);
     regs->rip = parms.virt_entry;
diff --git a/xen/arch/x86/x86_64/traps.c b/xen/arch/x86/x86_64/traps.c
index 8460a4a1ae59..29ac5a14ca3f 100644
--- a/xen/arch/x86/x86_64/traps.c
+++ b/xen/arch/x86/x86_64/traps.c
@@ -220,10 +220,10 @@ void vcpu_show_registers(struct vcpu *v)
         state.gsb = gsb;
         state.gss = gss;
 
-        state.ds = v->arch.user_regs.ds;
-        state.es = v->arch.user_regs.es;
-        state.fs = v->arch.user_regs.fs;
-        state.gs = v->arch.user_regs.gs;
+        state.ds = v->arch.pv.ds;
+        state.es = v->arch.pv.es;
+        state.fs = v->arch.pv.fs;
+        state.gs = v->arch.pv.gs;
 
         context = CTXT_pv_guest;
     }
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Aug 07 12:00:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 12:00:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072888.1435819 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujzIU-0003Ws-Oa; Thu, 07 Aug 2025 12:00:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072888.1435819; Thu, 07 Aug 2025 12:00: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 1ujzIU-0003Wl-Jt; Thu, 07 Aug 2025 12:00:38 +0000
Received: by outflank-mailman (input) for mailman id 1072888;
 Thu, 07 Aug 2025 12:00:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oMMd=2T=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1ujzIT-0003Vo-Dt
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 12:00:37 +0000
Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com
 [2a00:1450:4864:20::52d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 20aac16d-7386-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 14:00:36 +0200 (CEST)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-6152faff57eso1400903a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 05:00:36 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a0a3bd2sm1286326766b.54.2025.08.07.05.00.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Aug 2025 05:00: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>
X-Inumbo-ID: 20aac16d-7386-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754568035; x=1755172835; darn=lists.xenproject.org;
        h=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=V7MsqmoC2sdnLWMebV8CxlWp+Z4tqLX6XdzfIRkQRHk=;
        b=SVr+sVQQxyCJl+jOeDh/Phxsc8H4XEr67MM+mZWoCtS5uiEMaIwwjIi1VcvYrvFKCG
         Bp16C3Kl0KLBGLT/VFt+IsS5tmOOwoNL3SKxPoJNhrtZ2Rj2R7Vj0yXSkXeRyWRUtraG
         AAQFo9O7kHXvdcs1UO5M5c1ESwVRnZJNg6imPX4ynnfO1j41xsgm/8fUDoMPZbyVKToR
         fL2UDfuc0FD9wpilnTcOTzy9u98HGyrBfJ9N7HH9m/59XAyqIRGQghtSuHG/xRNMJBpF
         c8WGSlaMGWxlIO3ze/n9B1laxd0y7y9TMVw1auIvNHYkTAhObS+t58sw+LQmsn+IeXCE
         R8tQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754568035; x=1755172835;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=V7MsqmoC2sdnLWMebV8CxlWp+Z4tqLX6XdzfIRkQRHk=;
        b=DF/iBUU7rfIp8Nuanv9K14SwTQXtxQOoJjgFDsrnAeBUnyweETHgpGKE6/KzBF8ibk
         Fo5EBg2iOQDKv93kJd/ZKRqUS66ip4rqf1xAxRhZ9n8I8YD1W4JVInyR0lYsPRBbUpQl
         VsJcKr9QH0oqhyxDdhHe4TfX9cCSicgFZ0zSTU4mF41OYYAdP2L3AzS9pb2xPeNyb+Qp
         fHqCqgbEN8HGUFig03E+PTY6R3E+Tp1YvFD18IMvvuu/6e8zea9mUKa+w6jyFY3l3d9b
         oYH2Rfnhej8VgHUA+ESbfG1Em2FIvuOkrRNPnra54Mh15j6GnAvBVHTh8VABdnJtEHfj
         zs/g==
X-Forwarded-Encrypted: i=1; AJvYcCUszmWIeupHS2yXczs8CxckjFyJ1uXde0DR1Z9Y0so9TVWfXlLeOUXkVM0PILM7ZSrgw8vmtk1tHGE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxuDAyfXyel2GVvlUMhYVnjRBSPilBabDB0GUu+wpMsc+s/JwuD
	N0GYDks/x1Qq2qfXR1E6tjHte5JqN8HVq9Mr46OE/vDIVOKuaNwCq+h4
X-Gm-Gg: ASbGncvnQ4tITy2OCzXvdq1Klzwm++eEV3xsHwO93Aa4/My1ADr9SqyXp2IpNchOadN
	GqlT/tNu1oSjS8Yq3L/uVEQcXD8GkE7pipMh0uagwktgJ9m4l1kPbyMb40IwYp0zTWotLre1Ivw
	fLCUNipGg8ga86lI+HEqnYD6vxkZWEtuNQQqqBNNpyTOPTKopV1L5pf0oW1EG92qth7n4t+mClf
	oXWRzUuQvJE0hHD98TEEleW6b7Q4CC5AVjju8Ila31kZMZwrlR9/D46FTZtyXWdiMzopcH1Jmam
	b6gRPruJ9GAkakvb0FG4GkMPSZpAph7ZHgVlZufHq/n3m9nHgWq062EqBPZSgwVMlMJda5HkdU5
	3ZrVIGPEhu/IWtdT65fzqdDO1PeP2xKloNyJ8oBQsUcIysvpgIu0bdZqwDW8WFc/oubO8ux8=
X-Google-Smtp-Source: AGHT+IHbrtlCS0ul/a11XiV2Hs1sYrYWEuX2DRAXpRGFqTQtCLPBYKqckLFBASP7IgF9lLql2GlLeA==
X-Received: by 2002:a17:907:3f9d:b0:ae0:b7c8:d735 with SMTP id a640c23a62f3a-af9a6ac9743mr198679666b.42.1754568035014;
        Thu, 07 Aug 2025 05:00:35 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------WQs5Vkl5Q3M7mmCKOOUD9V9K"
Message-ID: <d160c6da-a4a8-44ca-9dc5-b1e3cb31bde5@gmail.com>
Date: Thu, 7 Aug 2025 14:00:25 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 06/20] xen/riscv: add root page table allocation
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <23c79f07221dee7eb782ebb160442f3a796a41b2.1753973161.git.oleksii.kurochko@gmail.com>
 <3c02593f-deae-4109-9334-0ac4376a9a9e@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <3c02593f-deae-4109-9334-0ac4376a9a9e@suse.com>

This is a multi-part message in MIME format.
--------------WQs5Vkl5Q3M7mmCKOOUD9V9K
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 8/5/25 12:37 PM, Jan Beulich wrote:
> On 31.07.2025 17:58, Oleksii Kurochko wrote:
>> Introduce support for allocating and initializing the root page table
>> required for RISC-V stage-2 address translation.
>>
>> To implement root page table allocation the following is introduced:
>> - p2m_get_clean_page() and p2m_alloc_root_table(), p2m_allocate_root()
>>    helpers to allocate and zero a 16 KiB root page table, as mandated
>>    by the RISC-V privileged specification for Sv32x4/Sv39x4/Sv48x4/Sv57x4
>>    modes.
>> - Update p2m_init() to inititialize p2m_root_order.
>> - Add maddr_to_page() and page_to_maddr() macros for easier address
>>    manipulation.
>> - Introduce paging_ret_pages_to_domheap() to return some pages before
>>    allocate 16 KiB pages for root page table.
>> - Allocate root p2m table after p2m pool is initialized.
>> - Add construct_hgatp() to construct the hgatp register value based on
>>    p2m->root, p2m->hgatp_mode and VMID.
> Imo for this to be complete, freeing of the root table also wants taking
> care of. Much like imo p2m_init() would better immediately be accompanied
> by the respective teardown function. Once you start using them, you want
> to use them in pairs, after all.

I decided to ignore freeing of the root table and tearing down p2m mapping
as it is going to be used during a domain destroy, which isn't supported
at the moment, and thereby an implementation of them could be delayed when
they really will be used.

>
>> --- a/xen/arch/riscv/include/asm/riscv_encoding.h
>> +++ b/xen/arch/riscv/include/asm/riscv_encoding.h
>> @@ -133,11 +133,13 @@
>>   #define HGATP_MODE_SV48X4		_UL(9)
>>   
>>   #define HGATP32_MODE_SHIFT		31
>> +#define HGATP32_MODE_MASK		_UL(0x80000000)
>>   #define HGATP32_VMID_SHIFT		22
>>   #define HGATP32_VMID_MASK		_UL(0x1FC00000)
>>   #define HGATP32_PPN			_UL(0x003FFFFF)
>>   
>>   #define HGATP64_MODE_SHIFT		60
>> +#define HGATP64_MODE_MASK		_ULL(0xF000000000000000)
>>   #define HGATP64_VMID_SHIFT		44
>>   #define HGATP64_VMID_MASK		_ULL(0x03FFF00000000000)
>>   #define HGATP64_PPN			_ULL(0x00000FFFFFFFFFFF)
>> @@ -170,6 +172,7 @@
>>   #define HGATP_VMID_SHIFT		HGATP64_VMID_SHIFT
>>   #define HGATP_VMID_MASK			HGATP64_VMID_MASK
>>   #define HGATP_MODE_SHIFT		HGATP64_MODE_SHIFT
>> +#define HGATP_MODE_MASK			HGATP64_MODE_MASK
>>   #else
>>   #define MSTATUS_SD			MSTATUS32_SD
>>   #define SSTATUS_SD			SSTATUS32_SD
>> @@ -181,8 +184,11 @@
>>   #define HGATP_VMID_SHIFT		HGATP32_VMID_SHIFT
>>   #define HGATP_VMID_MASK			HGATP32_VMID_MASK
>>   #define HGATP_MODE_SHIFT		HGATP32_MODE_SHIFT
>> +#define HGATP_MODE_MASK			HGATP32_MODE_MASK
>>   #endif
>>   
>> +#define GUEST_ROOT_PAGE_TABLE_SIZE	KB(16)
> In another context I already mentioned that imo you want to be careful with
> the use of "guest" in identifiers. It's not the guest page tables which have
> an order-2 root table, but the P2M (Xen terminology) or G-stage / second
> stage (RISC-V spec terminology) ones. As long as you're only doing P2M
> work, this may not look significant. But once you actually start dealing
> with guest page tables, it easily can end up confusing.

I thought that GUEST_ROOT_PAGE_TABLE is equal to G-stage root page table.
But it is confusing even now, then I'll use GSTAGE_ROOT_PAGE_TABLE_SIZE
instead.

>
>> --- a/xen/arch/riscv/p2m.c
>> +++ b/xen/arch/riscv/p2m.c
>> @@ -1,8 +1,86 @@
>> +#include <xen/domain_page.h>
>>   #include <xen/mm.h>
>>   #include <xen/rwlock.h>
>>   #include <xen/sched.h>
>>   
>>   #include <asm/paging.h>
>> +#include <asm/p2m.h>
>> +#include <asm/riscv_encoding.h>
>> +
>> +unsigned int __read_mostly p2m_root_order;
> If this is to be a variable at all, it ought to be __ro_after_init, and
> hence it shouldn't be written every time p2m_init() is run. If you want
> to to remain as a variable, what's wrong with
>
> const unsigned int p2m_root_order = ilog2(GUEST_ROOT_PAGE_TABLE_SIZE) - PAGE_SHIFT;
>
> or some such? But of course equally well you could have
>
> #define P2M_ROOT_ORDER  (ilog2(GUEST_ROOT_PAGE_TABLE_SIZE) - PAGE_SHIFT)

The only one reason p2m_root_order was introduced as variable it was that
I had a compilation issue when define P2M_ROOT_ORDER in such way:
   #define P2M_ROOT_ORDER  get_order_from_bytes(GUEST_ROOT_PAGE_TABLE_SIZE)
But I can't reproduce it anymore.

Anyway, your option is better as it should be faster.

>
>> +static void clear_and_clean_page(struct page_info *page)
>> +{
>> +    clear_domain_page(page_to_mfn(page));
>> +
>> +    /*
>> +     * If the IOMMU doesn't support coherent walks and the p2m tables are
>> +     * shared between the CPU and IOMMU, it is necessary to clean the
>> +     * d-cache.
>> +     */
> That is, ...
>
>> +    clean_dcache_va_range(page, PAGE_SIZE);
> ... this call really wants to be conditional?

It makes sense. I will add "if ( p2m->clean_pte )" and update clear_and_clean_page()
declaration.

>
>> +}
>> +
>> +static struct page_info *p2m_allocate_root(struct domain *d)
> With there also being p2m_alloc_root_table() and with that being the sole
> caller of the function here, I wonder: Is having this in a separate
> function really outweighing the possible confusion of which of the two
> functions to use?

p2m_allocate_root() will be also used in further patches to allocate
root's metadata page(s), but, also, in the same function p2m_alloc_root_table().

Probably, to avoid confusion it makes sense to rename p2m_allocate_root() to
p2m_allocate_root_page().


>
>> +{
>> +    struct page_info *page;
>> +
>> +    /*
>> +     * As mentioned in the Priviliged Architecture Spec (version 20240411)
>> +     * in Section 18.5.1, for the paged virtual-memory schemes  (Sv32x4,
>> +     * Sv39x4, Sv48x4, and Sv57x4), the root page table is 16 KiB and must
>> +     * be aligned to a 16-KiB boundary.
>> +     */
>> +    page = alloc_domheap_pages(d, P2M_ROOT_ORDER, MEMF_no_owner);
>> +    if ( !page )
>> +        return NULL;
>> +
>> +    for ( unsigned int i = 0; i < P2M_ROOT_PAGES; i++ )
>> +        clear_and_clean_page(page + i);
>> +
>> +    return page;
>> +}
>> +
>> +unsigned long construct_hgatp(struct p2m_domain *p2m, uint16_t vmid)
>> +{
>> +    unsigned long ppn;
>> +
>> +    ppn = PFN_DOWN(page_to_maddr(p2m->root)) & HGATP_PPN;
> Why not page_to_pfn() or mfn_x(page_to_mfn())? I.e. why mix different groups
> of accessors?

No specific reason, just missed such option.

>
> As to "& HGATP_PPN" - that's making an assumption that you could avoid by
> using ...
>
>> +    /* TODO: add detection of hgatp_mode instead of hard-coding it. */
>> +#if RV_STAGE1_MODE == SATP_MODE_SV39
>> +    p2m->hgatp_mode = HGATP_MODE_SV39X4;
>> +#elif RV_STAGE1_MODE == SATP_MODE_SV48
>> +    p2m->hgatp_mode = HGATP_MODE_SV48X4;
>> +#else
>> +#   error "add HGATP_MODE"
>> +#endif
>> +
>> +    return ppn | MASK_INSR(p2m->hgatp_mode, HGATP_MODE_MASK) |
>> +                 MASK_INSR(vmid, HGATP_VMID_MASK);
> ... MASK_INSR() also on "ppn".
>
> As to the writing of p2m->hgatp_mode - you don't want to do this here, when
> this is the function to calculate the value to put into hgatp. This field
> needs calculating only once, perhaps in p2m_init().

Agree, it makes sense to move hgatp_mode detection to p2m_init().

>
>> +static int p2m_alloc_root_table(struct p2m_domain *p2m)
>> +{
>> +    struct domain *d = p2m->domain;
>> +    struct page_info *page;
>> +    const unsigned int nr_root_pages = P2M_ROOT_PAGES;
> Is this local variable really of any use?

It will be needed for one of the next patches and to have less change in
further patch, I've decided to introduce it here.

>
>> +    /*
>> +     * Return back nr_root_pages to assure the root table memory is also
>> +     * accounted against the P2M pool of the domain.
>> +     */
>> +    if ( !paging_ret_pages_to_domheap(d, nr_root_pages) )
>> +        return -ENOMEM;
>> +
>> +    page = p2m_allocate_root(d);
>> +    if ( !page )
>> +        return -ENOMEM;
> Hmm, and the pool is then left shrunk by 4 pages?

Yes until they are used for root table it shouldn't be in p2m pool (freelist),
when root table will be freed then it makes sense to return them back.
Am I missing something?

Probably, you meant that it is needed to update p2m->pages?

>
>> --- a/xen/arch/riscv/paging.c
>> +++ b/xen/arch/riscv/paging.c
>> @@ -54,6 +54,36 @@ int paging_freelist_init(struct domain *d, unsigned long pages,
>>   
>>       return 0;
>>   }
>> +
>> +bool paging_ret_pages_to_domheap(struct domain *d, unsigned int nr_pages)
>> +{
>> +    struct page_info *page;
>> +
>> +    ASSERT(spin_is_locked(&d->arch.paging.lock));
>> +
>> +    if ( ACCESS_ONCE(d->arch.paging.total_pages) < nr_pages )
>> +        return false;
>> +
>> +    for ( unsigned int i = 0; i < nr_pages; i++ )
>> +    {
>> +        /* Return memory to domheap. */
>> +        page = page_list_remove_head(&d->arch.paging.freelist);
>> +        if( page )
>> +        {
>> +            ACCESS_ONCE(d->arch.paging.total_pages)--;
>> +            free_domheap_page(page);
>> +        }
>> +        else
>> +        {
>> +            printk(XENLOG_ERR
>> +                   "Failed to free P2M pages, P2M freelist is empty.\n");
>> +            return false;
> Looks pretty redundant with half of paging_freelist_init(), including the
> stray full stop in the log message.

I will introduce then a separate function (for a code, which is inside
for-loop) and use it here and in paging_freelist_init().

Thanks.

~ Oleksii

--------------WQs5Vkl5Q3M7mmCKOOUD9V9K
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/5/25 12:37 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:3c02593f-deae-4109-9334-0ac4376a9a9e@suse.com">
      <pre wrap="" class="moz-quote-pre">On 31.07.2025 17:58, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">Introduce support for allocating and initializing the root page table
required for RISC-V stage-2 address translation.

To implement root page table allocation the following is introduced:
- p2m_get_clean_page() and p2m_alloc_root_table(), p2m_allocate_root()
  helpers to allocate and zero a 16 KiB root page table, as mandated
  by the RISC-V privileged specification for Sv32x4/Sv39x4/Sv48x4/Sv57x4
  modes.
- Update p2m_init() to inititialize p2m_root_order.
- Add maddr_to_page() and page_to_maddr() macros for easier address
  manipulation.
- Introduce paging_ret_pages_to_domheap() to return some pages before
  allocate 16 KiB pages for root page table.
- Allocate root p2m table after p2m pool is initialized.
- Add construct_hgatp() to construct the hgatp register value based on
  p2m-&gt;root, p2m-&gt;hgatp_mode and VMID.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Imo for this to be complete, freeing of the root table also wants taking
care of. Much like imo p2m_init() would better immediately be accompanied
by the respective teardown function. Once you start using them, you want
to use them in pairs, after all.</pre>
    </blockquote>
    <pre>I decided to ignore freeing of the root table and tearing down p2m mapping
as it is going to be used during a domain destroy, which isn't supported
at the moment, and thereby an implementation of them could be delayed when
they really will be used.

</pre>
    <blockquote type="cite"
      cite="mid:3c02593f-deae-4109-9334-0ac4376a9a9e@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/include/asm/riscv_encoding.h
+++ b/xen/arch/riscv/include/asm/riscv_encoding.h
@@ -133,11 +133,13 @@
 #define HGATP_MODE_SV48X4		_UL(9)
 
 #define HGATP32_MODE_SHIFT		31
+#define HGATP32_MODE_MASK		_UL(0x80000000)
 #define HGATP32_VMID_SHIFT		22
 #define HGATP32_VMID_MASK		_UL(0x1FC00000)
 #define HGATP32_PPN			_UL(0x003FFFFF)
 
 #define HGATP64_MODE_SHIFT		60
+#define HGATP64_MODE_MASK		_ULL(0xF000000000000000)
 #define HGATP64_VMID_SHIFT		44
 #define HGATP64_VMID_MASK		_ULL(0x03FFF00000000000)
 #define HGATP64_PPN			_ULL(0x00000FFFFFFFFFFF)
@@ -170,6 +172,7 @@
 #define HGATP_VMID_SHIFT		HGATP64_VMID_SHIFT
 #define HGATP_VMID_MASK			HGATP64_VMID_MASK
 #define HGATP_MODE_SHIFT		HGATP64_MODE_SHIFT
+#define HGATP_MODE_MASK			HGATP64_MODE_MASK
 #else
 #define MSTATUS_SD			MSTATUS32_SD
 #define SSTATUS_SD			SSTATUS32_SD
@@ -181,8 +184,11 @@
 #define HGATP_VMID_SHIFT		HGATP32_VMID_SHIFT
 #define HGATP_VMID_MASK			HGATP32_VMID_MASK
 #define HGATP_MODE_SHIFT		HGATP32_MODE_SHIFT
+#define HGATP_MODE_MASK			HGATP32_MODE_MASK
 #endif
 
+#define GUEST_ROOT_PAGE_TABLE_SIZE	KB(16)
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
In another context I already mentioned that imo you want to be careful with
the use of "guest" in identifiers. It's not the guest page tables which have
an order-2 root table, but the P2M (Xen terminology) or G-stage / second
stage (RISC-V spec terminology) ones. As long as you're only doing P2M
work, this may not look significant. But once you actually start dealing
with guest page tables, it easily can end up confusing.</pre>
    </blockquote>
    <pre>I thought that GUEST_ROOT_PAGE_TABLE is equal to G-stage root page table.
But it is confusing even now, then I'll use GSTAGE_ROOT_PAGE_TABLE_SIZE
instead.

</pre>
    <blockquote type="cite"
      cite="mid:3c02593f-deae-4109-9334-0ac4376a9a9e@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -1,8 +1,86 @@
+#include &lt;xen/domain_page.h&gt;
 #include &lt;xen/mm.h&gt;
 #include &lt;xen/rwlock.h&gt;
 #include &lt;xen/sched.h&gt;
 
 #include &lt;asm/paging.h&gt;
+#include &lt;asm/p2m.h&gt;
+#include &lt;asm/riscv_encoding.h&gt;
+
+unsigned int __read_mostly p2m_root_order;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
If this is to be a variable at all, it ought to be __ro_after_init, and
hence it shouldn't be written every time p2m_init() is run. If you want
to to remain as a variable, what's wrong with

const unsigned int p2m_root_order = ilog2(GUEST_ROOT_PAGE_TABLE_SIZE) - PAGE_SHIFT;

or some such? But of course equally well you could have

#define P2M_ROOT_ORDER  (ilog2(GUEST_ROOT_PAGE_TABLE_SIZE) - PAGE_SHIFT)</pre>
    </blockquote>
    <pre>The only one reason p2m_root_order was introduced as variable it was that
I had a compilation issue when define P2M_ROOT_ORDER in such way:
  #define P2M_ROOT_ORDER  get_order_from_bytes(GUEST_ROOT_PAGE_TABLE_SIZE)
But I can't reproduce it anymore.

Anyway, your option is better as it should be faster.

</pre>
    <blockquote type="cite"
      cite="mid:3c02593f-deae-4109-9334-0ac4376a9a9e@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+static void clear_and_clean_page(struct page_info *page)
+{
+    clear_domain_page(page_to_mfn(page));
+
+    /*
+     * If the IOMMU doesn't support coherent walks and the p2m tables are
+     * shared between the CPU and IOMMU, it is necessary to clean the
+     * d-cache.
+     */
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
That is, ...

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    clean_dcache_va_range(page, PAGE_SIZE);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
... this call really wants to be conditional?</pre>
    </blockquote>
    <pre>It makes sense. I will add "if ( p2m-&gt;clean_pte )" and update clear_and_clean_page()
declaration.

</pre>
    <blockquote type="cite"
      cite="mid:3c02593f-deae-4109-9334-0ac4376a9a9e@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+}
+
+static struct page_info *p2m_allocate_root(struct domain *d)
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
With there also being p2m_alloc_root_table() and with that being the sole
caller of the function here, I wonder: Is having this in a separate
function really outweighing the possible confusion of which of the two
functions to use?</pre>
    </blockquote>
    <pre>p2m_allocate_root() will be also used in further patches to allocate
root's metadata page(s), but, also, in the same function p2m_alloc_root_table().

Probably, to avoid confusion it makes sense to rename p2m_allocate_root() to
p2m_allocate_root_page().


</pre>
    <blockquote type="cite"
      cite="mid:3c02593f-deae-4109-9334-0ac4376a9a9e@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+{
+    struct page_info *page;
+
+    /*
+     * As mentioned in the Priviliged Architecture Spec (version 20240411)
+     * in Section 18.5.1, for the paged virtual-memory schemes  (Sv32x4,
+     * Sv39x4, Sv48x4, and Sv57x4), the root page table is 16 KiB and must
+     * be aligned to a 16-KiB boundary.
+     */
+    page = alloc_domheap_pages(d, P2M_ROOT_ORDER, MEMF_no_owner);
+    if ( !page )
+        return NULL;
+
+    for ( unsigned int i = 0; i &lt; P2M_ROOT_PAGES; i++ )
+        clear_and_clean_page(page + i);
+
+    return page;
+}
+
+unsigned long construct_hgatp(struct p2m_domain *p2m, uint16_t vmid)
+{
+    unsigned long ppn;
+
+    ppn = PFN_DOWN(page_to_maddr(p2m-&gt;root)) &amp; HGATP_PPN;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Why not page_to_pfn() or mfn_x(page_to_mfn())? I.e. why mix different groups
of accessors?</pre>
    </blockquote>
    <pre>No specific reason, just missed such option.

</pre>
    <blockquote type="cite"
      cite="mid:3c02593f-deae-4109-9334-0ac4376a9a9e@suse.com">
      <pre wrap="" class="moz-quote-pre">

As to "&amp; HGATP_PPN" - that's making an assumption that you could avoid by
using ...

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    /* TODO: add detection of hgatp_mode instead of hard-coding it. */
+#if RV_STAGE1_MODE == SATP_MODE_SV39
+    p2m-&gt;hgatp_mode = HGATP_MODE_SV39X4;
+#elif RV_STAGE1_MODE == SATP_MODE_SV48
+    p2m-&gt;hgatp_mode = HGATP_MODE_SV48X4;
+#else
+#   error "add HGATP_MODE"
+#endif
+
+    return ppn | MASK_INSR(p2m-&gt;hgatp_mode, HGATP_MODE_MASK) |
+                 MASK_INSR(vmid, HGATP_VMID_MASK);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
... MASK_INSR() also on "ppn".

As to the writing of p2m-&gt;hgatp_mode - you don't want to do this here, when
this is the function to calculate the value to put into hgatp. This field
needs calculating only once, perhaps in p2m_init().</pre>
    </blockquote>
    <pre>Agree, it makes sense to move hgatp_mode detection to p2m_init().

</pre>
    <blockquote type="cite"
      cite="mid:3c02593f-deae-4109-9334-0ac4376a9a9e@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+static int p2m_alloc_root_table(struct p2m_domain *p2m)
+{
+    struct domain *d = p2m-&gt;domain;
+    struct page_info *page;
+    const unsigned int nr_root_pages = P2M_ROOT_PAGES;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Is this local variable really of any use?</pre>
    </blockquote>
    <pre>It will be needed for one of the next patches and to have less change in
further patch, I've decided to introduce it here.
</pre>
    <blockquote type="cite"
      cite="mid:3c02593f-deae-4109-9334-0ac4376a9a9e@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    /*
+     * Return back nr_root_pages to assure the root table memory is also
+     * accounted against the P2M pool of the domain.
+     */
+    if ( !paging_ret_pages_to_domheap(d, nr_root_pages) )
+        return -ENOMEM;
+
+    page = p2m_allocate_root(d);
+    if ( !page )
+        return -ENOMEM;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Hmm, and the pool is then left shrunk by 4 pages?</pre>
    </blockquote>
    <pre>Yes until they are used for root table it shouldn't be in p2m pool (freelist),
when root table will be freed then it makes sense to return them back.
Am I missing something?

Probably, you meant that it is needed to update p2m-&gt;pages?

</pre>
    <blockquote type="cite"
      cite="mid:3c02593f-deae-4109-9334-0ac4376a9a9e@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/paging.c
+++ b/xen/arch/riscv/paging.c
@@ -54,6 +54,36 @@ int paging_freelist_init(struct domain *d, unsigned long pages,
 
     return 0;
 }
+
+bool paging_ret_pages_to_domheap(struct domain *d, unsigned int nr_pages)
+{
+    struct page_info *page;
+
+    ASSERT(spin_is_locked(&amp;d-&gt;arch.paging.lock));
+
+    if ( ACCESS_ONCE(d-&gt;arch.paging.total_pages) &lt; nr_pages )
+        return false;
+
+    for ( unsigned int i = 0; i &lt; nr_pages; i++ )
+    {
+        /* Return memory to domheap. */
+        page = page_list_remove_head(&amp;d-&gt;arch.paging.freelist);
+        if( page )
+        {
+            ACCESS_ONCE(d-&gt;arch.paging.total_pages)--;
+            free_domheap_page(page);
+        }
+        else
+        {
+            printk(XENLOG_ERR
+                   "Failed to free P2M pages, P2M freelist is empty.\n");
+            return false;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Looks pretty redundant with half of paging_freelist_init(), including the
stray full stop in the log message.</pre>
    </blockquote>
    <pre>I will introduce then a separate function (for a code, which is inside
for-loop) and use it here and in paging_freelist_init().

Thanks.

~ Oleksii</pre>
  </body>
</html>

--------------WQs5Vkl5Q3M7mmCKOOUD9V9K--


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 12:07:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 12:07:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072901.1435830 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujzP8-0004TD-Dz; Thu, 07 Aug 2025 12:07:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072901.1435830; Thu, 07 Aug 2025 12:07: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 1ujzP8-0004T6-9P; Thu, 07 Aug 2025 12:07:30 +0000
Received: by outflank-mailman (input) for mailman id 1072901;
 Thu, 07 Aug 2025 12:07:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=igFk=2T=nvidia.com=jgg@srs-se1.protection.inumbo.net>)
 id 1ujzP6-0004T0-Sv
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 12:07:28 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20614.outbound.protection.outlook.com
 [2a01:111:f403:2412::614])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 11c38786-7387-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 14:07:22 +0200 (CEST)
Received: from CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13)
 by BN7PPFD3499E3E3.namprd12.prod.outlook.com
 (2603:10b6:40f:fc02::6e3) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8943.28; Thu, 7 Aug
 2025 12:07:17 +0000
Received: from CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732]) by CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732%4]) with mapi id 15.20.9009.017; Thu, 7 Aug 2025
 12:07:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 11c38786-7387-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Fmbjdm0YYvQX3NHptTNcgJSEIDsX5MasBpOwKCZ1LfEU+ySBuC3nu24SslkObfDngkjZqMo6dLkASJTqVVQW+vBWYvPkeRUosrx21jkNNZ4FxK9GlXCOnaLbV+aduUb/S696Pw5LrS+AVusUw/CIAlDp+ygzgllK1n983Cyh5pMgqJ//TRLSzyg+xG6k2GwsYeJneI9u5I9vQ7RSg6tkz11qjd4cFbgVDMgxTM9vC4Vi3gdBP6zu7TEhEtISqVcqSGMIu/2kzmXVAVbFwcpjzuMbXXCUa8HbFdb2vqe+GvtpsHoSfrzJQm74sBzXuC52ya0ZDszJlrrNwA4P0cHpfg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=03milDNUHNfZEReC3MBhS982jj7JRdpYUpzYTMR7X0w=;
 b=adMiGpMMBcE4ybFOcngMUwoeO4U1sYS6egTAHwmeLxgkqN79ZLAD2dGoWpkG2/W96qpRsWHZsgpJ7iWaHaxTx1Rpt81GYR++16AoEuWFjqWFx3RrczLzO6kTXXnlJl7vMRyg0yzanOSfs4r2V3uCmEYs0Ij3xz4agx2j3odCj2Wcy3NlXMVeUlIs8jtSgC4S8RoZwWRDycl99Jk6sE7kz4DPAQoJgUvph7qB9vaNL7HGqGz/dk7x9n8xcCK2RcuSOLS2PQRpO3zAA4VQejOKb9v4kShnBO4S1Jqi0rEaqKMu97OPmS4acprn6vQLSzQO603vFV/ThwlmARzzOyqs0w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com;
 dkim=pass header.d=nvidia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=03milDNUHNfZEReC3MBhS982jj7JRdpYUpzYTMR7X0w=;
 b=emzVsmSrMdk5PONvW+U/XgioET3O2UKbW20frGRjl4IvJkhtM21ZHuZ2S3BUukHYx9kXF9r4mDKaymNcDCDNLZKbh0BG2t0DN/uffli51tjTrFSHlnExzQtWcTE4y3KYdl2hl5YpuwEaK6f7il4q9MJh29uH4mGdYTsu4NuctxKboLrs1yr5WOo9hE9DK9EuS6KzWC36xAB9ny5Ck7s30iT8Ad1AVexLiB1sp4zYRNnPR8eJNUzLjC4kABnohuy/Spt/RWFvVn4MY92mMpM0aSmxPFC8pw+K7VsgCQiz8wZ/dfG5aW3A8lMtqVYmikTW54RxM2rbIq49zhSSX4AJBQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=nvidia.com;
Date: Thu, 7 Aug 2025 09:07:15 -0300
From: Jason Gunthorpe <jgg@nvidia.com>
To: Leon Romanovsky <leon@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Leon Romanovsky <leonro@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 06/16] iommu/dma: extend iommu_dma_*map_phys API to
 handle MMIO memory
Message-ID: <20250807120715.GF184255@nvidia.com>
References: <cover.1754292567.git.leon@kernel.org>
 <09c04e0428f422c1b13d2b054af16e719de318a3.1754292567.git.leon@kernel.org>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <09c04e0428f422c1b13d2b054af16e719de318a3.1754292567.git.leon@kernel.org>
X-ClientProxiedBy: YT3PR01CA0060.CANPRD01.PROD.OUTLOOK.COM
 (2603:10b6:b01:82::18) To CH3PR12MB8659.namprd12.prod.outlook.com
 (2603:10b6:610:17c::13)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PR12MB8659:EE_|BN7PPFD3499E3E3:EE_
X-MS-Office365-Filtering-Correlation-Id: f9b6be84-2a34-40ae-527f-08ddd5aaf3b8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?pBh/2s3cwq6fILG20A5H9xSuWRz7opHKY6yWWOEfF8/OX/NC0xcMFsjf2hTC?=
 =?us-ascii?Q?LWrLGR1cH2WZ/2utXoQcD6+cesHNDfMQtmMienGdzWMjm+gha4LMb/BFIYMv?=
 =?us-ascii?Q?8CYSObGkQxnBv/Vx681Ib0nmXdebOCg40k+F0KRpNtbmdoCR+p+DVRFWPOYg?=
 =?us-ascii?Q?yLEcQtzrqghg0n4Rvxt5CRMYvmUrFhKc1uJDmKnSw03dP7ljTjC6C3rlWNpR?=
 =?us-ascii?Q?QKbiapBjd+WSOGHQnYE6djvNbu+kR4pHZWt8akQbuCysL8WC7jz4DhZWrw9I?=
 =?us-ascii?Q?mZGCt4lflCXxe6Gp3UV2syIl8/aGJTzeR+GltwF1p4t0ZICqkeMgY4meIYDo?=
 =?us-ascii?Q?xy/a43toECNxVTGuzREmsPrINijJfseloUmZ0d72XGngTXU7NwYFfREPxM8t?=
 =?us-ascii?Q?GiHRH9HFHg5W5glk4uEKnhQ3gWmpBBHSkSwVGF6S1JmgsARU3s6799Rt8ccK?=
 =?us-ascii?Q?uV0tKc/aV7jLqgbORnSWpHp1UCGpA0I8j66vilp8iLGNnc2W0qUuGA75RYD+?=
 =?us-ascii?Q?nyOfXErs0VKtmHdaZumP83j7sIDzbSwOu5RwqZLAs74YOneFu0/69/N6hB6V?=
 =?us-ascii?Q?S/onsuI8vjN0h4XQKsBC7IOeXSTLl2ZkU2GpMjqYXavVivQnZU+IRZTAf9Cx?=
 =?us-ascii?Q?RcWwTnw3luuuf43Uz5UVSnI8ykvekDhEV+3hBCTh+Dy3XgNVcBfgXRWbl0Co?=
 =?us-ascii?Q?x3+lJ8rYWiaKlPT1T4Xm8U7uw6byzf93NgtfIF4ZO+ci9JKvqFjIK/gIiQIu?=
 =?us-ascii?Q?Yq+q71ZrJEGqS++mWfEPYG9Gus5PzMVN8XRMZYxglM/9IlKGC364qMr+ZNVl?=
 =?us-ascii?Q?Y8A1PSjAsuRoJ5hOjxKdxPfZR1Kb9AebERqAADl8ns/W+dLprW75DpgMVyKl?=
 =?us-ascii?Q?nlBDnJZct8nnEeLbsrg7OpWVatIYGU/h0vc7A9H/AXc/3MPxkD9CiUd0KG0q?=
 =?us-ascii?Q?kfV2Hb2w+QK+w4o58Xnw4S3GcPgx7idMn+8gS/5PtBHKTPSFyLcMl7ZL7etf?=
 =?us-ascii?Q?Z0xOD7dlB+YUAjKeXuuQOexO3+fKjyweNRw2rLqpnc3Qt63riL2PqY/C2jgH?=
 =?us-ascii?Q?uHc0TxsSFRBklM0fmTM6K44n1ElQqDHRCB9wNGqBd6AcmuWtM+SkF+VJ/5ys?=
 =?us-ascii?Q?xe9qLbD968i3CbuubbQH2+X8NQi9Trd9U3DQKrhh6CKPk9jLt4P5LMXN/JpX?=
 =?us-ascii?Q?W5gAYRLv0gq2fZ1RLZX5LknmcxEdD4pBBDuz+53dusXfGIYGYRt8NizWrzFt?=
 =?us-ascii?Q?Kz3Km81YwBEEDA7Wm2noV1T4/byot2igcPnGyjaoY6JOsnmot5mRnoCOagXk?=
 =?us-ascii?Q?YNHU/tOS44r94V8+iFwwEUbadzp7Y954hgJrC9iLzaFKrHWEbIzTyoNGDAbP?=
 =?us-ascii?Q?+WRg5/52Sb2zFgXiBKFsOIqJpPU2Estp7POw8OVLqnyQCJJR4S5SKrmTCQDf?=
 =?us-ascii?Q?sKrb35QARtc=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR12MB8659.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?YWL3nMVtTPvIQWWfT+NUjYkqDLD9cQkfZORT3ejXzsCYW8FuJtNBAW0kUsCG?=
 =?us-ascii?Q?PaoqFp/oRnLsqfFbbllAqt1q59DnY3gcKD74KPHtkx+0BRuo8hzhe9b7co83?=
 =?us-ascii?Q?xSwMTeYj0smV0MF6qobtDBmB0bYWQ5C8Vb29I/PPDp1KpknCIEDGKogcA0K9?=
 =?us-ascii?Q?TUvaHOwZPIbWoB1R1ulF4ffWCuq1HnNZ7ABIiOltJAnVAnHOjUg/0B4LM920?=
 =?us-ascii?Q?Xfz3YYntlEg5bj6zrcv58U9t3CDP6/vpzJsz5e7YK4PAmcd0sKb/4MzLgnTT?=
 =?us-ascii?Q?U7N+FJZfeZ4rfEv2+9W23/nAVWQkKzhhlq/mNIFnNdTY9xZGobO0rsQba7Dw?=
 =?us-ascii?Q?kclREk63x995M+8dmpoRXskvRu6nMYpwcXyA0JO+zIKI2PkrAuIH7EOBovVp?=
 =?us-ascii?Q?iuWOu3D7GKalaVyVWIzKhNBjtOy5oVwQSnYjM+tAHxmqDNptGQKP+KwWkXw/?=
 =?us-ascii?Q?yLOWcRcAbTY8bHorIif8DIaY945+B+NGBezzUk0lrQQM4uAHfbPfbFghhurh?=
 =?us-ascii?Q?zWqusBVnX8M3cfljGV1lulyYTQ5P4Rc2G0W8hoFBZkOKthdQ30uYUSJF2DQX?=
 =?us-ascii?Q?vyVvM02Ve1INp3saX39l42GF7RQ6EPkr6BjRQ/fTEP7USLSrNFNCgXZC2rMc?=
 =?us-ascii?Q?QH5BCK0yTWvsn1VZYVsXRRZluqyfWmk/y1yRj7evE2TUoF0o4+fgLS56v2S+?=
 =?us-ascii?Q?4YfTq6Y8ltCnouUQdqROt+2OQwYiFwAjJnNgujtrta52QlUugpE1KdaAce70?=
 =?us-ascii?Q?N2gz7EHb83C0mKza1DaCheopM938xsveOrWnp3wt6ylz4Dfk54ddhrwMbxgN?=
 =?us-ascii?Q?dwEVR8Nr+ZTiRAtizoIuwFNydrBAl0C02g0rbxTLWGjDH4+PyYvRrG5YrC9n?=
 =?us-ascii?Q?TnGZOSYeK34mS3P42CHl1Vr7Vx1EcTbgbfvGjexr2yjyTt8HnKUtrKs0dTzs?=
 =?us-ascii?Q?xjKUXXLqWNcr4N3DakeIZpZKbICSqwEc57oYf8sHYq9IaozV0jpivIdqUaR2?=
 =?us-ascii?Q?J+c1nXZaAzT12271Ol6xD2mWseZDRfxUHzliThwNljWwT61AfRnPdh69L0gx?=
 =?us-ascii?Q?zidzNzumLor4V1TBz+z+yiozv6IH8DM+90aTSq8dhJprwlS3Hmy0f8LzT40s?=
 =?us-ascii?Q?48srtSKtYiLas6OMRCPKR+1cS+DzQGcDfAIm50ThUB+bc5BynjNhh9bwYV6n?=
 =?us-ascii?Q?WVyYPEeyuJh9lNYFZvm89LmgemIiAOqmdbY6noRXUi4VMUHNaIKZtGIJI7cA?=
 =?us-ascii?Q?L+1Rd6+PatXgbpDef4yO+N4VGLxe0M+++SCsg53cjVkiWdGns101Pg+PZBxd?=
 =?us-ascii?Q?PpMP2liM+8G8Q+GorMujpXYSam7XCBdFNkREGnbZKTULtBSTlKMuA2JD4KhE?=
 =?us-ascii?Q?WsQh4NhxH5KoaWh/XgYTEAMcTT0pq2vidf2rIr9/KZL6aLAOXO8wuQRAMT0r?=
 =?us-ascii?Q?zQJ5Dg4HliQ2v9/TMc5XDNQA8ztGvVZdpydNDJRa9pO9QV+VXlrxGR2PwHzN?=
 =?us-ascii?Q?SB4KwMkIj7NaEmDyO7yAgUgB7EohTKp5uSDy9Vbln/d/Myo9fqoMxOGCiSEb?=
 =?us-ascii?Q?gJAg8/IjOtjrrAA1Stc=3D?=
X-OriginatorOrg: Nvidia.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f9b6be84-2a34-40ae-527f-08ddd5aaf3b8
X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8659.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Aug 2025 12:07:16.8291
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: OEqLsam7ft2+HePdRB3GV9fZ3kWW/9+5neZee6v4Y+c0QZMNhmIivmjas2oxsFdA
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PPFD3499E3E3

On Mon, Aug 04, 2025 at 03:42:40PM +0300, Leon Romanovsky wrote:
> From: Leon Romanovsky <leonro@nvidia.com>
> 
> Combine iommu_dma_*map_phys with iommu_dma_*map_resource interfaces in
> order to allow single phys_addr_t flow.

Some later patch deletes iommu_dma_map_resource() ? Mention that plan here?

> --- a/drivers/iommu/dma-iommu.c
> +++ b/drivers/iommu/dma-iommu.c
> @@ -1193,12 +1193,17 @@ static inline size_t iova_unaligned(struct iova_domain *iovad, phys_addr_t phys,
>  dma_addr_t iommu_dma_map_phys(struct device *dev, phys_addr_t phys, size_t size,
>  		enum dma_data_direction dir, unsigned long attrs)
>  {
> -	bool coherent = dev_is_dma_coherent(dev);
> -	int prot = dma_info_to_prot(dir, coherent, attrs);
>  	struct iommu_domain *domain = iommu_get_dma_domain(dev);
>  	struct iommu_dma_cookie *cookie = domain->iova_cookie;
>  	struct iova_domain *iovad = &cookie->iovad;
>  	dma_addr_t iova, dma_mask = dma_get_mask(dev);
> +	bool coherent;
> +	int prot;
> +
> +	if (attrs & DMA_ATTR_MMIO)
> +		return __iommu_dma_map(dev, phys, size,
> +				dma_info_to_prot(dir, false, attrs) | IOMMU_MMIO,
> +				dma_get_mask(dev));

I realize that iommu_dma_map_resource() doesn't today, but shouldn't
this be checking for swiotlb:

	if (dev_use_swiotlb(dev, size, dir) &&
	    iova_unaligned(iovad, phys, size)) {

Except we have to fail for ATTR_MMIO?

Now that we have ATTR_MMIO, should dma_info_to_prot() just handle it
directly instead of open coding the | IOMMU_MMIO and messing with the
coherent attribute?

Jason


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 12:13:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 12:13:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072911.1435838 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujzV2-0006NX-3s; Thu, 07 Aug 2025 12:13:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072911.1435838; Thu, 07 Aug 2025 12: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 1ujzV2-0006NQ-1A; Thu, 07 Aug 2025 12:13:36 +0000
Received: by outflank-mailman (input) for mailman id 1072911;
 Thu, 07 Aug 2025 12:13:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=igFk=2T=nvidia.com=jgg@srs-se1.protection.inumbo.net>)
 id 1ujzV0-0006NK-OJ
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 12:13:34 +0000
Received: from NAM02-DM3-obe.outbound.protection.outlook.com
 (mail-dm3nam02on20607.outbound.protection.outlook.com
 [2a01:111:f403:2405::607])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ef03d922-7387-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 14:13:33 +0200 (CEST)
Received: from CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13)
 by BN7PPFD3499E3E3.namprd12.prod.outlook.com
 (2603:10b6:40f:fc02::6e3) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8943.28; Thu, 7 Aug
 2025 12:13:29 +0000
Received: from CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732]) by CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732%4]) with mapi id 15.20.9009.017; Thu, 7 Aug 2025
 12:13: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>
X-Inumbo-ID: ef03d922-7387-11f0-a324-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uxP7Pf0ykg70ESQ1qsMAV46ciw3fMetV5ptq9znpdyVeKuYe0CQx684fgoNYUFgJzPJn3+4lFMQwUMWJvnCER9DzlnAjzb7VOcXipnWlrp5Rw4Grsy1HtLACWH7J3Ed33vP8gXCUoLzgPGe3gtIlOAC4O9FyyR/easgliZtJvaFKrNxs0m6aavuCs6iAlt+gGerYf/zavPmSkkgZFgCQ44WhhSIATvspnXnSyxfWAQHaNOTZ/HVPTzz4GEdkjnqvf3kCRPTfrhReWfvFs/DVv4N8LeoSaEhRlihVFXR5bJsdoCD3YcCry8KRM0MFz2+8xSTiZh8WgrQMoUuWsJghuA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jnd91fTvUuf7SAXkMx8PwNrI+Ba1V4Exo/CmbUm1lhI=;
 b=DmkWUqr9j/Xt1cx/er4RxEftmeONbyeBlY6MYlI9tO6ARDn5qDSq+BE9Rn6KcWTUtkkb06gl26cXmkAlhgowChbxbNfVNKTy6XpUC+DUrHUQ+0ALoktpQmGEx9h5Jh/MukgoYpDzNR/5nD0yI9VF60sAHH9yWSOkMUkrJtsgmEW0AGhr4D7rU5U5OiAfYq7p2Pxf94PFeDtWgTKLn6MvCrf0TyKJwv1xON/D9VEEvWA2ZXuhJbeOnUXdnd63ZCwbhDaxa9qWeUGDfLQYoiGD9vb0uZnbPYHLCim+AOmlGJkL5fz5bLkUcnXmDXqyf6XULntQ+lPLJG0oRnpY7ip/fQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com;
 dkim=pass header.d=nvidia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=jnd91fTvUuf7SAXkMx8PwNrI+Ba1V4Exo/CmbUm1lhI=;
 b=YZbvDWhXqTABMlt291caIizhKaSFiEKa8rVjOU3j280z6lSSTUTJ9gkgrtbIKNjUrsQvbdgFNoPEl13biMjDnb4IKjqKu+Q6E3Bleyj+Yk8eimX7s07c03eMIRq2ryn00DPvA/mIj1geQ3WKROV5Z+OW7NgNIuSOk0X6VcbxBaIJR+poit62h0A9cFE5RF2wZFG08zqqFKdKQwwvFcceqJezuBLK6X6H3oe+sXA5PM0zi8rUei9xWP+PpGM9HiEGTjuU9B5IotuPd9YVh5NfHW9i9u3G7QmQXRMmGYrmQ44zqlJN8/skK8wix4cQd7GI0arZ4735+Q1zxixJIIixwg==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=nvidia.com;
Date: Thu, 7 Aug 2025 09:13:27 -0300
From: Jason Gunthorpe <jgg@nvidia.com>
To: Leon Romanovsky <leon@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Leon Romanovsky <leonro@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 07/16] dma-mapping: convert dma_direct_*map_page to be
 phys_addr_t based
Message-ID: <20250807121327.GG184255@nvidia.com>
References: <cover.1754292567.git.leon@kernel.org>
 <882499bb37bf4af3dece27d9f791a8982ca4c6a7.1754292567.git.leon@kernel.org>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <882499bb37bf4af3dece27d9f791a8982ca4c6a7.1754292567.git.leon@kernel.org>
X-ClientProxiedBy: YT4PR01CA0094.CANPRD01.PROD.OUTLOOK.COM
 (2603:10b6:b01:ff::8) To CH3PR12MB8659.namprd12.prod.outlook.com
 (2603:10b6:610:17c::13)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PR12MB8659:EE_|BN7PPFD3499E3E3:EE_
X-MS-Office365-Filtering-Correlation-Id: b942e929-cfed-4d71-c440-08ddd5abd12a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?axQI8w3VTYtQ5YUSriFu37Q7Ie+PYZ1H4KfTCwRvIpV2kxnY4WC0YXxwLc1M?=
 =?us-ascii?Q?cbMTZRNxCHmOYBy5eTk52kQcR31cLIJacQ+oXZItONC2qt8u2Zu8XIJNpKYr?=
 =?us-ascii?Q?gu0kM7eFZBqOmCJQMScmVxYvkdyFq79o4+asu8uQDBXWpOhKtiTBQ4/5tisb?=
 =?us-ascii?Q?TO1gXmomGnQiCfyhlPKtWUjJWhQFhbqJDXXQEb3XWHf/uds0D1iTj/UUfTfT?=
 =?us-ascii?Q?if/OFKTceOGBXABPR2sFkNv//ZgV2MuYpq373lJwhLmT7LvdSvITw7Dk2TGy?=
 =?us-ascii?Q?zrT16KfExdJ2dogIykgnTAacqFY1GdiloP2yb0mh474ah2q2SWdgy7WGw56y?=
 =?us-ascii?Q?2hDMDaoXNB3+7EJdT+gGGfxan1J9eE3SSZpEo0EAs6iyCvoI3QrsvESzekkS?=
 =?us-ascii?Q?Aq7Ug3SwekNtJvi+h6bEL0HyQL+JO/O8bldy5RAm1U/dSFLxkdFjeooWdhYe?=
 =?us-ascii?Q?bsYjfJ85QBDGi2fzHQKsyoc+8L/rjQmO4svE02zb+8+LABJUkebPFUebZH0I?=
 =?us-ascii?Q?RaDVIVl/B14xPSGwhWIYPkTEYyivT81KwaS91QGcBD25zmAdikz33Xft6bZG?=
 =?us-ascii?Q?lPh0lyooYx8G3l473Bil1oyinXnaB4sWZuy1DuAfZc7o826PRCYqdq4zxy4+?=
 =?us-ascii?Q?kakjsFfEC8Q0qAslgBVUSC6LoRUCk4p3B1HdvZwO0gfQDCkRDJ6lDNgik6cv?=
 =?us-ascii?Q?XDTb3ChTUb/fRynp/7buwxi1ugxtNgbvZGGNnWrl1GWsbsVqsO3F8cTZ4JQt?=
 =?us-ascii?Q?LQu1jS1XNfr+rUCIIuFUrC+qBrsiGSKD1t6zrfaZoQPSEc8PhdmMm4p+nRZH?=
 =?us-ascii?Q?H1094+/bDuXMoCLANgKLaSAIMQF4CdpfEz5LCMQQ68jx8nHrihoK9p4X5P6N?=
 =?us-ascii?Q?jYpsBOBpHVl5lnq75bAXGnoxZ+uw10nHH6iZe7u4kX6ZlfssoZpvdBeyOLnz?=
 =?us-ascii?Q?LtjWmFRu+Jwk/g7XO5D5WQpheth6vm2ElRzni/9d5HHtp5/ZvhjMHcRN6mHO?=
 =?us-ascii?Q?XZBM3ZKiRWuguOnnNngbUY+rO25Z9arZGX/fxnWQ0lIDiw1GOnI7cb5+6ize?=
 =?us-ascii?Q?ZgPXdY/RjlkuwK6Lt6Aox/weShKvRTQB0gf4y/pOw05Ap8GqILFVIk2/dJtH?=
 =?us-ascii?Q?Y8w/rhmP3vMiGMj9PY7cp7p7qb7AZwv8Y2iUTT35R0oTZqCWjpSaTMKH9Nkp?=
 =?us-ascii?Q?bm42bCC9tIArDMLClNbzTHTMKgXi6ZAsJ9/EfCNcg/zNrt0Nul9w6IPKXUyb?=
 =?us-ascii?Q?tM4cmLojMMemwoIaszqe3F0CSUcrb0IzTggrtqUXEAhejPywCBf/Fh+xQYZt?=
 =?us-ascii?Q?E7BC9VeEIfL0ULEsFpq4P1uOG3YGqtIBIlelb5DP6eG6iWO8gPgwPANOHhAb?=
 =?us-ascii?Q?MWaRKqhUyPwrvIdGvNHer0wFh1IBVHE3vsFURjhpYB//6MHcm1cqYt2l9dgN?=
 =?us-ascii?Q?uM/ptoUdCi8=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR12MB8659.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?sR6OLO7WGVDrwfr9yuQJ+2KW/03YjBHbOxYbGMYOMCZYOWwxQoNDiL2pKIBU?=
 =?us-ascii?Q?hdkr7lEhol4n7NuO50U7v2uTIhbvOWPEQDMioCAWwI5WQ+BE/3msfWyjn31f?=
 =?us-ascii?Q?x3BGFqLNyI27rcfQLAUyUJHgLOFy0VsbZNJvK91B/cFod3Qf9hYYmBV5YKIt?=
 =?us-ascii?Q?rtVCIS0Ssf3y2Mt+NT5/um6iIc7xBaLkA9NCGFuWfqdHRLjD1VNKw4VXR89R?=
 =?us-ascii?Q?xUOuHBnZotMvkW+kxl9yx7S5XFzhtHlJUdnn2SGKzg5VtU7MsLR3dmI0I9qi?=
 =?us-ascii?Q?qeyHePnBc1XYOGm9LIS716SdiU4ZxVX3i0CmQRym1jcMjuKbyhmH5lUi+FHh?=
 =?us-ascii?Q?uhcbgVzRk7Yg1oR/UqFmRv5fhMBqtAEQq6oJ/tjnZHZFTaRRSDsBfE6fN6NE?=
 =?us-ascii?Q?JKctD2IVBqmaZaHCZRmRzgY1bCzFAueOU6do0G3DAp0/enFSV38HI2OZwZF0?=
 =?us-ascii?Q?SOMIQDdX2Efk8Fwlq3FWMITrXSexSeNHuIi5BnLIXSciAOvKAl3vOP/E3j8Q?=
 =?us-ascii?Q?wYTJJ8sGYGHkhpJ3gv8U6ac64gsoWuWdxKlcf2SiBpHebo3B4IAAzNDVWdIv?=
 =?us-ascii?Q?m9fnfBAtoOQGLt82yRP692KRPCQ+LkLMKn9Njq0KJWwTH8dBJ97Y8czAFS0M?=
 =?us-ascii?Q?d1ciS4Ip6i3DlQs542nVxucomToNBgLMN+JXvkOXTrJirQ+nCgoX3ykqu88b?=
 =?us-ascii?Q?RLcE/JY4nR3HrwLzy5YeXeM47gnfdbZwTpvyitRb2GfXGxn2Hk9uS7EnE4RN?=
 =?us-ascii?Q?x2MbostRNOUsHQVsnUtiSKT9/bpO+lScdGXvK+8hYcE3wypOuw3J4Q+FbMxP?=
 =?us-ascii?Q?bxeB+Ulqhl+1nXeAOfJaksQCBo1N9XCSbg/Tnq3nEXm2O+Tb2neq/mKopK+F?=
 =?us-ascii?Q?oKl+oXuS0TcMkLo/SMlBkaWMsClLVblgaVuhVGUIeQ07K+p7HSHOLTw+Rq03?=
 =?us-ascii?Q?NI1xJUEg9MBat+O3XeFBTbsf/WCudMezEwerfinT/opXWjlz7IchRHWWmm8S?=
 =?us-ascii?Q?bf/No0jewWT9JekdbUbxOp1MwITG05L/7/4XB7uSinax4/JiPV6DFvIFfFio?=
 =?us-ascii?Q?J6UR/vOAto95/JmCKTKcJ75TwpY+W0sPkMqL6S1uXILQWYkNhTbfw5ZN0JsS?=
 =?us-ascii?Q?rPepZ9+uT0ggzsogxf8f88ruPBm6yxFrr9/BZQRlLR/i+lKSnmm1bhlDQJ77?=
 =?us-ascii?Q?hsP3bc3vIpXfuixt+PZTiZYIU+cPc4E6h+mwwY+hjCEwKw8pf5W7Hk/rkJQV?=
 =?us-ascii?Q?FF8V0Ynr39av9YDx+D6kS59laa1QOn4cc80bgCG0lnCGNf0fo4BHjy9EOOab?=
 =?us-ascii?Q?1xtwoH1thASYwHssKN6HWrkfUXlzgk8Zz8LFFvntBeE2dH0lgaXNOMV5j2Se?=
 =?us-ascii?Q?ZbE5hA7pfDc0PavMHn29DccR3V/EeR10JgW2CQyK9o5L2ZP+0BTd0j5Ap1aj?=
 =?us-ascii?Q?VxFJSMoyvW6BiFVDB41ontdUjBXvFTPLQyKwQ0mUYVZDQ0IrJ++4PecmR3QV?=
 =?us-ascii?Q?AOjinVp4kbGo9305fabp1UsvUHAZHAVfK1uzEXRGyTKhD+3Hc7TYU1wS+QSw?=
 =?us-ascii?Q?DPs8HyXYZOpmOcM60GA=3D?=
X-OriginatorOrg: Nvidia.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b942e929-cfed-4d71-c440-08ddd5abd12a
X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8659.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Aug 2025 12:13:28.4489
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: KROhXLqGII19t1me5Y8/lT8ezU6d/PVXc3lHTLvPLyrmNmHxaDMV+xvImfEg9mk1
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PPFD3499E3E3

On Mon, Aug 04, 2025 at 03:42:41PM +0300, Leon Romanovsky wrote:
> --- a/kernel/dma/direct.h
> +++ b/kernel/dma/direct.h
> @@ -80,42 +80,54 @@ static inline void dma_direct_sync_single_for_cpu(struct device *dev,
>  		arch_dma_mark_clean(paddr, size);
>  }
>  
> -static inline dma_addr_t dma_direct_map_page(struct device *dev,
> -		struct page *page, unsigned long offset, size_t size,
> -		enum dma_data_direction dir, unsigned long attrs)
> +static inline dma_addr_t dma_direct_map_phys(struct device *dev,
> +		phys_addr_t phys, size_t size, enum dma_data_direction dir,
> +		unsigned long attrs)
>  {
> -	phys_addr_t phys = page_to_phys(page) + offset;
> -	dma_addr_t dma_addr = phys_to_dma(dev, phys);
> +	bool is_mmio = attrs & DMA_ATTR_MMIO;
> +	dma_addr_t dma_addr;
> +	bool capable;
> +
> +	dma_addr = (is_mmio) ? phys : phys_to_dma(dev, phys);
> +	capable = dma_capable(dev, dma_addr, size, is_mmio);
> +	if (is_mmio) {
> +	       if (unlikely(!capable))
> +		       goto err_overflow;
> +	       return dma_addr;

Similar remark here, shouldn't we be checking swiotlb things for
ATTR_MMIO and failing if swiotlb is needed?

> -	if (is_swiotlb_force_bounce(dev)) {
> -		if (is_pci_p2pdma_page(page))
> -			return DMA_MAPPING_ERROR;

This

> -	if (unlikely(!dma_capable(dev, dma_addr, size, true)) ||
> -	    dma_kmalloc_needs_bounce(dev, size, dir)) {
> -		if (is_pci_p2pdma_page(page))
> -			return DMA_MAPPING_ERROR;

And this

Jason


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 12:21:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 12:21:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072918.1435848 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujzcZ-000818-Ry; Thu, 07 Aug 2025 12:21:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072918.1435848; Thu, 07 Aug 2025 12:21:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujzcZ-000811-PL; Thu, 07 Aug 2025 12:21:23 +0000
Received: by outflank-mailman (input) for mailman id 1072918;
 Thu, 07 Aug 2025 12:21:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=igFk=2T=nvidia.com=jgg@srs-se1.protection.inumbo.net>)
 id 1ujzcY-00080v-El
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 12:21:22 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20613.outbound.protection.outlook.com
 [2a01:111:f403:2413::613])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0641461d-7389-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 14:21:21 +0200 (CEST)
Received: from CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13)
 by PH7PR12MB7017.namprd12.prod.outlook.com (2603:10b6:510:1b7::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.21; Thu, 7 Aug
 2025 12:21:16 +0000
Received: from CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732]) by CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732%4]) with mapi id 15.20.9009.017; Thu, 7 Aug 2025
 12:21:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0641461d-7389-11f0-a324-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=IEnBLU6Fn+bvJuFhXrDOfeHZfZZJoQUlnjFqSU03DmEaY9Yg1dFXTziUDvd/KWouXotCCxOmhxm0KA4hRUofvg7E0TGwICjC2YD/taZ0W5TziXaOIHDbqvjbm1a5AypxMBpknPjxcTrgi9oQS1+Xq4UO5BXlILBEwR/dumMdLmVtAvleshemuIAw8HiOMw1TB3PpbXYyA1ASxPQNUsx6utSMluw8LtvxV2hbzLXjDahxr8QqIDzKBKDOYifIDni01kVBzAgH7uuZ8iDzAoOkc290QmgVBrGpn0yE1Z/bJtlag4IDf2e0d7//imy72cj+VSnuCmoBQRkVlngN9wsWyg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=iIwrg5hZVD9n+qTLo0PvHeRDi9M5OxJeYXC5xQMGF9Q=;
 b=iwE/xLTfCyrC8ee1vw4uEG+h34Wn34VeltBaXYu0i2R1gGo9E+A164UBEkCPjYt50rregiXdeh0ja+goDDZ6BiAaUqe/mDjdNl0UQR/M81wN9t899qhRS6KFPNRDVxHnxOYLWMp+InYZ0b8bAopRHOKt7PywTQ63lCxXQBCKkofpy8ooKCYQ9MH8FH8B6G3srzOKf4JVyw9xMQslbXDy+YL/9F1L5UTjI0R0cVkhiHYQzggro9YNqOyXwuFdN9vjsfF+9F3t3uF6tDwgXC51K2O5hcaGOQzDKrAF/8BkQaEV7Y1s6+u9s5ku2+vpT6hS1xAlxSWne/hWbBxGI7xDYQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com;
 dkim=pass header.d=nvidia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=iIwrg5hZVD9n+qTLo0PvHeRDi9M5OxJeYXC5xQMGF9Q=;
 b=DQup7Rl0SVcoF8re1dFsAIxpcqxYBz+VV52Wxy9CvxRu+neaYypZvKmLsdkFX+t6NJsZ6gSkfMpflsPcNTeB/VurId3edfAI/TRLW+ByvbbBEXjsau9BTNu2OFQWk9hopBCuvRQAyvG6Q259wTim1I/hoXxjEz3RhUOlK8Nvx3/cFUTvTPKG06ayE5i4MiBtL7AFOWCLkITJ3jx/fcM476LRWg1CuJxFQbwp9vNrIGoSRnNnJVI28EHxtqoJ20rofhOKxnpteT3ctRred52UfNO+hOH59kCsvavXhWy6iSZzr2g7TrgWvsivXHV+GVqHgMX30mI6YSP9rEqB5UwR+w==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=nvidia.com;
Date: Thu, 7 Aug 2025 09:21:15 -0300
From: Jason Gunthorpe <jgg@nvidia.com>
To: Leon Romanovsky <leon@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Leon Romanovsky <leonro@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 08/16] kmsan: convert kmsan_handle_dma to use physical
 addresses
Message-ID: <20250807122115.GH184255@nvidia.com>
References: <cover.1754292567.git.leon@kernel.org>
 <5b40377b621e49ff4107fa10646c828ccc94e53e.1754292567.git.leon@kernel.org>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <5b40377b621e49ff4107fa10646c828ccc94e53e.1754292567.git.leon@kernel.org>
X-ClientProxiedBy: YT4PR01CA0406.CANPRD01.PROD.OUTLOOK.COM
 (2603:10b6:b01:108::22) To CH3PR12MB8659.namprd12.prod.outlook.com
 (2603:10b6:610:17c::13)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PR12MB8659:EE_|PH7PR12MB7017:EE_
X-MS-Office365-Filtering-Correlation-Id: 59e07372-234c-40d3-7ecb-08ddd5ace814
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?QcmCtkqecLuYtDCnDoRlhvSKgTT5O7jY9fB7njAfEKgRuCXn50LnrysE5XVh?=
 =?us-ascii?Q?HHHAN7z4/J5xvUWNAd3tJhECZcp7Ql+pgNOvcReDfVhuleC4cKTABMpRRtoh?=
 =?us-ascii?Q?aY3QpyTNWixXI0gB/Y4bf1i1lT8HgfkH22q3+mhuQjKup1cVCn6hVl1BZwTM?=
 =?us-ascii?Q?mQpTYRAobaFMQ+OieoSqdQ+Lxj/3WOZ5z1/Gf2LnPEJ2GRKDAbWCU3iM0ud8?=
 =?us-ascii?Q?YC8EqhMwZSSB/3PBhrlTUGKhsNGF8BD/w4jfVA9l6wu/Uk86IG6ge7vWCFyo?=
 =?us-ascii?Q?kys6scYUZbPmGVPGrvywN0OU0G9R7C8fFpcYWMS0mwqVs7RJUMf2j43gIgjb?=
 =?us-ascii?Q?1fkWj8FpnK4bqhJ6pM20nVi0Dt7MNeF0YXVC6YN3C7G4+tfDc+/0gbvqF0Hf?=
 =?us-ascii?Q?usdP28UmpouMZ+UBUtbvL5o+J9Jj6e7EqtPy7C3deVPbXbtBcEveSdekYWWp?=
 =?us-ascii?Q?eaBvTB72MXmZ0735k5aAjIQ8fovIiJhhQejPXveYmqemQduWz25ThPoM1eqZ?=
 =?us-ascii?Q?hvUfKNSh3d21kWNdIOJMdt4WJ0MVo8r+zlHv62h2e2nTLgea8irXlEXv99+t?=
 =?us-ascii?Q?9abB1hQHhLLE9Tfh2wR7W3Hv4Y5lDpziV0LihEpXZevtAXNlboY+/0zE57IU?=
 =?us-ascii?Q?eXAFXMryprJkz0Obz9A0FVlXqO7sNxgYzuodXDJwyagnQSPjhduZXH6990zv?=
 =?us-ascii?Q?A+EYPTlyDjqoZ7HLgtD5T5J9C8MG72WhF0RuUZ7lA0rRbCDq0JZIeEWucW5V?=
 =?us-ascii?Q?Nui9RZGHtiFjRBW4RPuPXgXYypDKxdIwo5LThSu18WEPH6ps/qKfmDYuhW4L?=
 =?us-ascii?Q?6ZMnKQFL3GSt7CUeR26oVB9QFDDPOl/8kKyQivG6jF1zRVwRx995/P4nDTpF?=
 =?us-ascii?Q?bc6sVQoQedRLp3XQ+lU4t3UMcQUXd/b+fvekmRIAzNfKiyGTRfyAp62p89e2?=
 =?us-ascii?Q?7GK5Fu/VExPANjI47G36RPW0wJib+9pK+2+trRdzfYAVg30PXQEVXXXJtfhR?=
 =?us-ascii?Q?TngMZsI9z808iwIf65gqVo6z+OnVmGE+VyNH29KQrQxEylaWxnnfsPvCa+dY?=
 =?us-ascii?Q?xr65GLLJ6QJPeptcsV2b1pN3feRXI/KS4MRmpbV7S+7SeriXKufdylnQ0np5?=
 =?us-ascii?Q?wT4DGlcCFyqgN67yx2P0pHr31Rr6xVoHlhz512Q7+gLbRoRtEQXwCa8vWE0G?=
 =?us-ascii?Q?RJjmlFkvOlyEIUtxEsuQ5PpEzFd+k421rblnu+aj8YpKBCxVDbDzZxTrqvZ/?=
 =?us-ascii?Q?UK2nUKn6Wr2rC3kP2pJZ0D4D2wM0vgGYWhXl16x6dEh/DWhyd/7bOhqKnbKa?=
 =?us-ascii?Q?VNx7NF7SvFys0FhkSckJWJ4fbB6HvKOfE9kd8h4YHoZ2g1ofRjy+wSp3vrL6?=
 =?us-ascii?Q?RxlnheXz0ZYQJjEeRGoG3MIG8njgEYIwj4HY9Pap/obbXlLpfoBKGKw5lLH0?=
 =?us-ascii?Q?pWbcsn5FYYQ=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR12MB8659.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?Pc3vrtdK7uQ3bBQh4HJXdZhAoMLJBbNO+o6b6SQK7JlS0PAL+ZySFf4fmVdb?=
 =?us-ascii?Q?mIfceakcMfVDPHrfP45m4OdncIOaahvpJDFi6KaQUZtVPWJHpIS/+AdiZ2wh?=
 =?us-ascii?Q?9Q2/0qvT3Hmnvhwy2IhfV6Kpk5iVzD6zVFL/9u9FOb2bzU77MAoKSsLFWTH9?=
 =?us-ascii?Q?ZqKyce9MRdpe+RIaTD5blMdKNW/wIIlrtUNrkctASWqipNngYLPc0h8xIct6?=
 =?us-ascii?Q?fV1b8QUAI7TEqblWMxtKN52Vw4lshjLvTsnYS1/fupCu9PQzHyzdmc7BMag/?=
 =?us-ascii?Q?9USsKZAU+mpsX9xyjtf1piM1pDFFYZBGzPppZl9HrgnKeQNcSf/tQpG5OVK3?=
 =?us-ascii?Q?p4kAkYoFaMt/n+ktLk7aKmt47wM9YYjxIhNp5pEd4xHC3EfLwljN3wRqvJ50?=
 =?us-ascii?Q?EXJjKlCI/PJ6iL6IM8I3PoxGPy1I4I/aWl+oz7JH5Pc/o73gOlCL/NelVW4J?=
 =?us-ascii?Q?vR5M9oaGlp1c4HGfhB4uPSMXRASguqiRAhlCMFxGHSpaF8eFzv/K93QZ+W2h?=
 =?us-ascii?Q?mPLhw8Nae/i12HukegIW/6hQDtyd3Xa76UsmmJWTF1hL+NMt0s3ehRtfnulL?=
 =?us-ascii?Q?/mWRDfidY3adfRrJ907pVXv7U9bY7Stcz6kr4LwpeiYUZ2In36hPj22VsY+V?=
 =?us-ascii?Q?+GfoOWGYYmaE5XwMZYD1qLBrK6CIe2bNHmA727jh+sjvPWLG7f+ZZ3GN559Z?=
 =?us-ascii?Q?jYdEBUb1etxVXR46PCFUJ4fHOSV1glLwUmqpkJ0Py15dbLxyYAZh93o2Iz1K?=
 =?us-ascii?Q?xpPllA29goRc3asGj8wfcdb0rQ7YLFCFo3rBMIoBJCsSaQYphu2eqFETyMjA?=
 =?us-ascii?Q?+QkoLVY8A33MyqAB1Iw0tsxu8b+xtrwmr1hxZHMzJyWooM7TdUaSDRkY7lZD?=
 =?us-ascii?Q?FAgXFW9f8wKN51QniBbbgDXkKECwNCXwMu3zH/FFqpQq0C9MiGhECUySmL0o?=
 =?us-ascii?Q?UhMPaQSlMgKqJm+aqgTyGXBDX8mTGT115vrv49BVv5pm6F0atvp4UpzP+nIu?=
 =?us-ascii?Q?q9YHaZYPAXY5q3fln1otyE6eZ9w+u+pdrCDj1yqm1fvNC9jMRfs/vD3IvjdD?=
 =?us-ascii?Q?AkxPl0GL2pZjdEQihDiiY25or1gYy1d+an+dG+QLiHqa4UQ/XBaIvocRDJ3g?=
 =?us-ascii?Q?YdUQgpoSERS7ydpHFp2ccuOJ6JEBUU0/jK7BN1HNQFapRgSsQn38Cuh8nZqQ?=
 =?us-ascii?Q?6p+AreHWoxfwdlexNCoF3YxozoqVWr0am8wJbLzVAZ49RdRgrZygj1JY5v0V?=
 =?us-ascii?Q?B4xCyWa9sLxVoivN8PL2coCjhGr/mi49MWlHpa2W5fejSdZFUhWsWXgfOqJC?=
 =?us-ascii?Q?S4iIvnAXHxWF3bWS2PCpJz7OXmmnsg9IgaSwXrgG0M+eZDZc16V8JpcCO2mq?=
 =?us-ascii?Q?UFnD6SqIs6zN9IqGVGwtUp9tdG//QjZQGA/RH+6hKwFCsumcaMWK6lT3Wo5D?=
 =?us-ascii?Q?9hjlxhWz6r0yvZ8JevHtLQ/0kVB0fUqbPpmV2aIQq9VgY1o1Fc8/x6h4KltS?=
 =?us-ascii?Q?2r8lBtj8ktp7EwM5dokDtJNHLfRfLiefxas8cMFz3Q2Uxigb/bfiMpCa3Zui?=
 =?us-ascii?Q?mY6Q9aoX7ek+jFqDOXk=3D?=
X-OriginatorOrg: Nvidia.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 59e07372-234c-40d3-7ecb-08ddd5ace814
X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8659.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Aug 2025 12:21:16.3528
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 1JO8XjpfI+n/ktzlAxi3pKObP/UQ+HQjrheHHMFaNuRrOBpujcfgJK85cLbLXwHW
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB7017

On Mon, Aug 04, 2025 at 03:42:42PM +0300, Leon Romanovsky wrote:
> From: Leon Romanovsky <leonro@nvidia.com>
> 
> Convert the KMSAN DMA handling function from page-based to physical
> address-based interface.
> 
> The refactoring renames kmsan_handle_dma() parameters from accepting
> (struct page *page, size_t offset, size_t size) to (phys_addr_t phys,
> size_t size). A PFN_VALID check is added to prevent KMSAN operations
> on non-page memory, preventing from non struct page backed address,
> 
> As part of this change, support for highmem addresses is implemented
> using kmap_local_page() to handle both lowmem and highmem regions
> properly. All callers throughout the codebase are updated to use the
> new phys_addr_t based interface.

Use the function Matthew pointed at kmap_local_pfn()

Maybe introduce the kmap_local_phys() he suggested too.

>  /* Helper function to handle DMA data transfers. */
> -void kmsan_handle_dma(struct page *page, size_t offset, size_t size,
> +void kmsan_handle_dma(phys_addr_t phys, size_t size,
>  		      enum dma_data_direction dir)
>  {
>  	u64 page_offset, to_go, addr;
> +	struct page *page;
> +	void *kaddr;
>  
> -	if (PageHighMem(page))
> +	if (!pfn_valid(PHYS_PFN(phys)))
>  		return;

Not needed, the caller must pass in a phys that is kmap
compatible. Maybe just leave a comment. FWIW today this is also not
checking for P2P or DEVICE non-kmap struct pages either, so it should
be fine without checks.

> -	addr = (u64)page_address(page) + offset;
> +
> +	page = phys_to_page(phys);
> +	page_offset = offset_in_page(phys);
> +
>  	/*
>  	 * The kernel may occasionally give us adjacent DMA pages not belonging
>  	 * to the same allocation. Process them separately to avoid triggering
>  	 * internal KMSAN checks.
>  	 */
>  	while (size > 0) {
> -		page_offset = offset_in_page(addr);
>  		to_go = min(PAGE_SIZE - page_offset, (u64)size);
> +
> +		if (PageHighMem(page))
> +			/* Handle highmem pages using kmap */
> +			kaddr = kmap_local_page(page);

No need for the PageHighMem() - just always call kmap_local_pfn().

I'd also propose that any debug/sanitizer checks that the passed phys
is valid for kmap (eg pfn valid, not zone_device, etc) should be
inside the kmap code.

Jason


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 12:33:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 12:33:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072927.1435869 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujzoR-00020D-6r; Thu, 07 Aug 2025 12:33:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072927.1435869; Thu, 07 Aug 2025 12:33:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujzoR-000203-3w; Thu, 07 Aug 2025 12:33:39 +0000
Received: by outflank-mailman (input) for mailman id 1072927;
 Thu, 07 Aug 2025 12:33:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SGIa=2T=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1ujzoP-0001m4-Hz
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 12:33:37 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bcda59af-738a-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 14:33:36 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by PR3PR03MB6425.eurprd03.prod.outlook.com (2603:10a6:102:75::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.21; Thu, 7 Aug
 2025 12:33:31 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9009.013; Thu, 7 Aug 2025
 12:33:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bcda59af-738a-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GsAt98nWPiu7Kl83rRVH74UqFRGYcqeT7ph12IL61gVIrPg/q8OGWBmEuzVP+u49Kt/6gNWKy4ly9eeP8n94tc4yO42EMxgJqpcvU4XlazWph1JiOZN1y4iJbfqzS+Kc57Oi9SwGs00Dt4wnIz06dHfWZ3TpLBLpwFUvURZ9yVwRoAqf1kt5+3uuVEiHiGfX4UM67Z+zdhVx1BTNyISv8W5cIJ8UrRxg5Hsbgq7HLLmwlJ1wtkl1jOLZIcl0H/uOjm29eQT3QutuIrS1fmbwkNVkEhNT6HQJuB/gx3UXB97AzJ0R5ukTWuKFk2ES7KpoiqEfb2qp0mEa4w7Dxr/aqA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lC6NDosY+1Aunr9L72guv4I+Ysx9FQyAJ4/28AnhYr8=;
 b=qzbUXEQHatSLfIkr+H9s6uLSRrmtN5VcaybRu3J/Lwc3UGATwXCLX/Onobf6cz2bvp7M49uZc8F7Y+zI0Eg6UPyjuM+mwmNcqkA7T37vjf7+BRfFL8SaMyYJi3BDKdJCKjI92JL9RKP6KlrKHSS7qK2C6zAEfNdvWbQK1q/1fP40NmcbSCVGi7IqqH4CzZLHCnJ24j93/r8Tofs6tYjI/j5StEjjbRc5JUINOgd8k/h/6SrtBFVQk3hE5zi0suHPZF/GBhrmTXp5cMthHJQSwuQJ1KKMIr9GHZxXHJyCAJUwKVmADoZ4VXSItT6CKoAEqgAWS2p9hOBgXd3pbgFsfA==
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=lC6NDosY+1Aunr9L72guv4I+Ysx9FQyAJ4/28AnhYr8=;
 b=JAqVKG7jUDT98vRPMyldbDOzZOWAZFwiaXs+C8n8K5dmLyuLhlIjCCxj17+y2x5/mOsECKNFg5ELqG5OzwNbmRqVBR8rMNJNm8x8E6gzm+jNIzZcfTMosyO+rGKFz99lDGPZ45+QQeNgSymDLIDJLKtmekA93Y6wm5lvfemx6EfNI7bdzp8UUEtFM33GYWs6ZWnoe6+MMtGvzb63sc7zjuIcufdKwAy6ngVTygGplc2ZMsFxJCd2jhzFQjE7Q5pgRgUF45wOdhbHvDOMfW8bfMJwxmGDSYObWoLAZXpFEG/dp0gHPmgNmt1QJvU7cgRn7vbl9YTdHG35jFNwt9IUFw==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Leonid Komarianskyi <Leonid_Komarianskyi@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 v2 01/10] xen/arm: gicv3: refactor obtaining GIC addresses for
 common operations
Thread-Topic: [PATCH v2 01/10] xen/arm: gicv3: refactor obtaining GIC
 addresses for common operations
Thread-Index: AQHcB5d7cCAQRdJCgUKSzBGsZt4ytQ==
Date: Thu, 7 Aug 2025 12:33:30 +0000
Message-ID:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
References: <cover.1754514206.git.leonid_komarianskyi@epam.com>
In-Reply-To: <cover.1754514206.git.leonid_komarianskyi@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: GV2PR03MB8678:EE_|PR3PR03MB6425:EE_
x-ms-office365-filtering-correlation-id: a40d14e3-b1c0-4bbb-9dc8-08ddd5ae9e2e
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?OAPemSOAQKLw/kC1zBnwQA8odemZ4JJZ0k+vxKIDHAw/FIUDWE7U69Yopu?=
 =?iso-8859-1?Q?Ac0FDFszXpBdK9gxxA9e7+zye63sBolQ/WnuUSnsbSaVbnOrP51YuydKGS?=
 =?iso-8859-1?Q?pB1GSA1/cZU4IrJ6CqrRwL8EBwJa69pS+wMamf9DYBFbhUe0RdWm+Nvsv6?=
 =?iso-8859-1?Q?16P/H1zgVmW1F6iGqcXwfkGieHyo/VWRNKHQJr84iuHxT8sKvvTqYbJvXK?=
 =?iso-8859-1?Q?Ot445fXnDRGkj15u0+Cg4ezK1EmHKelzmCksS07qi5sHH0iLvF1VLOcm4p?=
 =?iso-8859-1?Q?ul8R1jM6RLf2jS/upkwSZ7bACGzmmdTE0Ckyq8iIynWJgSCZFr7VC/2poA?=
 =?iso-8859-1?Q?ZSLo4Ko2guBkLNARcD78Ocm6Ub3dNLGLrmE+c+7sCpGxJiMaV98KmdRRR7?=
 =?iso-8859-1?Q?IZlkG/1oNFWE+yxFjZx58nLPMP/rhm1/SskzR/Dt+GNJWvz8Ma91W/eKVZ?=
 =?iso-8859-1?Q?uWIXE60j7fZXwIRqCX8Mf98Eq0FlATp5kbowLisWrd5qrit9SZ0ail+pr7?=
 =?iso-8859-1?Q?O0lxFBUcKxdbzuYK6WvMh1ShlHDAafdoawaw+wgrcoMpGzrQ1i6tiznk9m?=
 =?iso-8859-1?Q?smtbwbDwZuMcXL38Ylol9Q6lpRO7N+iPzshL8lCRw77HUsRWb7DKIo+iCl?=
 =?iso-8859-1?Q?S+OJZNLUr4AJJP9f7KUSm3MYrpQnzchl4JWcie8npT8UGi4Ek5aAKx6Tuu?=
 =?iso-8859-1?Q?xpqKMjUv3zh/arrWnqSv+BvTjAe5I1EwWctm0jHGs1itfex8pJOMGyJJzm?=
 =?iso-8859-1?Q?ts4/amVvoQR3Q9qqAdGzJEVyddKe8cdwbDpxE+4pypyyLq5ctI1jcYzUk3?=
 =?iso-8859-1?Q?gCHWTEAEsliIODFtjsYBoSfKHHsCoY2rPTIft2HrgIsR4CDzJV6FL+IkHx?=
 =?iso-8859-1?Q?KsvTFfvO5hflibtla53qMUUpmgdgOG44kGPyu548IKT8M8aJPYClxLKkFN?=
 =?iso-8859-1?Q?YFIfquhx+NbLkTqulKvTjgaJFNEh2GsqeHgT2hVTtaAhqWXRiHmbSzayr0?=
 =?iso-8859-1?Q?vsF5VBNv82TLRXQlYA/gvdO7Wg7/dhDS5oEOZQ14PW9l9ThUErqoSoflja?=
 =?iso-8859-1?Q?LBQQasnKhlfBllScRXCmN4qETpqEzEFGR/qCYUDFFmKHpMn+nuWWIpI7gk?=
 =?iso-8859-1?Q?q9xIyzcHLUFs5Rgu2GknLBQqMbwPpzRALDL6rO8/nXONp4/ezGTjH/whIw?=
 =?iso-8859-1?Q?JPPBwQD3j7N/ghjmEiZ9AkINmyYW93MhjWa0chS4Tw/7HVqSobHeH4dZcj?=
 =?iso-8859-1?Q?yvNV4PUiutM8hpkrN7ShGlcvnxjR2VYwL3TdhkkjzAbMKxoikPp5ruhdDD?=
 =?iso-8859-1?Q?9Y8rtSXoOr+qyH0gmDsdyAEHwhK7zgkXE1Cs11UN/uWw2nJieM6rXUnJba?=
 =?iso-8859-1?Q?wz5zHFjvn8S0MauQ8v/Q+wyPB93q3RLtfzatDKkgF6M9/m7GrVi9q2vKsf?=
 =?iso-8859-1?Q?uLzVZA6v7h6TyIeROzGt8eBZx/LOQyRn8V+GWEwCyfj5cJXPiXH3K3H/k9?=
 =?iso-8859-1?Q?CO8ciqy36wvW00ppx3+BgZN/nv1l9Fmq3miw40XBh+JQ=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?yNPYo59HXGWNf+ApFkNAGZBJ+flHmCVjgdPkmb2UTkG6mzYOb58LZRM0ia?=
 =?iso-8859-1?Q?gJqCztJsRCK4I43mHnitglT6DHCpJkdj4Pq/hMzzaDDm5vsy8EnSH4fGVV?=
 =?iso-8859-1?Q?p8wkZBM9XEkoWRHOZPQtIfoCizqyTf/gz66KZ4uGgwWAtf5eK/lKdbM6/s?=
 =?iso-8859-1?Q?e+w6Jm0F7F3FZ+dPDoK8Rm/bFozyVrgizm0L5vmaCsCP9wHtAIuPoTOeGr?=
 =?iso-8859-1?Q?xqvkQEtL5UQkjD6ecLPGBAJNmlwt1It+ncR4NTdSjo2lqRqtg13+wUkaFe?=
 =?iso-8859-1?Q?qNW6ZffckJsz40vU/uuVzDJprY4li9xNaYSFOatlZEC8+lDpS+mvxR+bse?=
 =?iso-8859-1?Q?bd2Dgv4LNOShH5OCzpbN6YTn2YrEMlTxDuzV5T1eoKdsMKKhjn1bT4XUqg?=
 =?iso-8859-1?Q?1eZBN1jSWqeAUSHeQhCS1E9yBXKIZs7JnyGRoCmGFLQnGglSyU6u0zpzHw?=
 =?iso-8859-1?Q?jpCT6grWdcvHJgviVffbQVUh8pBOmoUfAxVvQJP/iDx81ctZcvJk5hrAZK?=
 =?iso-8859-1?Q?TvAaP4pCK/ZzwyQzR3u8UUsVHTWkJOyJcnOXc3YMFyq2t/gqD/b8Cra2Iq?=
 =?iso-8859-1?Q?qbHKEQxe/WSUZVHUwluTEypK1Tx1qE7F3jnVPIb/4ioeSi9wNCTnC39h76?=
 =?iso-8859-1?Q?qmmyz6mP0yOKPT+DgpvRMkDQ0A4hipDQA7S+W4WNzuHjWO/t7Utgsl03tY?=
 =?iso-8859-1?Q?Jc5zXZdJ5ngQza8BPFFWPtYRkjpub3dJRSWdNZPQFtjNvabMXNpG8z1hOl?=
 =?iso-8859-1?Q?QUvFuJdXggmxBEbeNYfJGC9DvVIXryzg+tJ0269xZk1Yjxiv/f6o3vDYXu?=
 =?iso-8859-1?Q?m4Gt6NfPbnxRUHp5NSFmfVvL8Cj4PwjiiJZmNdQjRxDp2DePbWC9SyWs50?=
 =?iso-8859-1?Q?UrghO1GjdQkBwg2OAPgYasJ6ObifRUc0QHTot97WrRAANAg57IdFnW/Bns?=
 =?iso-8859-1?Q?QcbxW2vjOK0vbpmQxhqotx/9NPb6XSEqOz9KhyIbjQ/BW7h8uHrSFxj5my?=
 =?iso-8859-1?Q?WVzaXhPMJNk7+kLlCNOCVOQPaTwWtQezFacx7H73f9lcRqmj8oOSZcE6mY?=
 =?iso-8859-1?Q?8EHVn2iIVCW5BCy/smnBCEHBd8d4bjhCfB0vzZhJLv4dgdb5mfNvRkd7Db?=
 =?iso-8859-1?Q?kALpr/VrmjCGTV67u/RTJKzDKfPaPN/pV7susk+/7NEixMjgyvUP2wuA1o?=
 =?iso-8859-1?Q?IEQHMHSdCG3sCV8rkaBvn1S0Li2HX1mzWyuq3+e/hoSNBE/IHUUh3EFZyo?=
 =?iso-8859-1?Q?+kFoA1LCZdtscEPvxTJNdDrB4AayS9RSPyFg7xatqFa1oHYVsN18MkznIF?=
 =?iso-8859-1?Q?OmC8raahfk3SNsjeGJpceMqUQEmBMelcADdQjFIhPeIEAqSRKkVXAO78Tc?=
 =?iso-8859-1?Q?oc+I5GKfYGl9jWpk0j9u8Dgs23MhAtTA+v6+bwI6y6sddlKVjFNhYKL979?=
 =?iso-8859-1?Q?vH8T7BskOXhNLhT/ZshHLghpK9irXcwBy5hJIseTAufWo8RSgbmyQ2HogT?=
 =?iso-8859-1?Q?0F8EmO5SDKsP+6HhaxQ3QzAkADpRvU2p4OjmQNt/TSJ1biWKbDPiAAz7Po?=
 =?iso-8859-1?Q?Z3E+ILD/X/V9AfdeocTVP/lv9mizmVPT0P3JnZjXIS8fcqU19rxNppPunr?=
 =?iso-8859-1?Q?quLPymKqA6UAizVICMG/00N9v0lY7RWPj0iGH7kWy3svxuNi3tLdi+AbP4?=
 =?iso-8859-1?Q?H2atsCJuJtjAvIElJog=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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a40d14e3-b1c0-4bbb-9dc8-08ddd5ae9e2e
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Aug 2025 12:33:30.0211
 (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: tllMqS7TUtZKOu0ut61NobU5cx9wiFUPHHHQNaE+MMG8EVBjX84XD4HZ4Gz5Ll9XBik8oJKUp6hDW4ZNb5ngciw4ErZ9WH8RTzZxO6a5hUY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR03MB6425

Currently, many common functions perform the same operations to calculate
GIC register addresses. This patch consolidates the similar code into
a separate helper function to improve maintainability and reduce duplicatio=
n.
This refactoring also simplifies the implementation of eSPI support in futu=
re
changes.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>

---
Changes in V2:
- no changes
---
 xen/arch/arm/gic-v3.c          | 99 ++++++++++++++++++++++------------
 xen/arch/arm/include/asm/irq.h |  1 +
 2 files changed, 67 insertions(+), 33 deletions(-)

diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
index cd3e1acf79..8fd78aba44 100644
--- a/xen/arch/arm/gic-v3.c
+++ b/xen/arch/arm/gic-v3.c
@@ -445,17 +445,62 @@ static void gicv3_dump_state(const struct vcpu *v)
     }
 }
=20
+static void __iomem *get_addr_by_offset(struct irq_desc *irqd, u32 offset)
+{
+    switch ( irqd->irq )
+    {
+    case 0 ... (NR_GIC_LOCAL_IRQS - 1):
+        switch ( offset )
+        {
+        case GICD_ISENABLER:
+        case GICD_ICENABLER:
+        case GICD_ISPENDR:
+        case GICD_ICPENDR:
+        case GICD_ISACTIVER:
+        case GICD_ICACTIVER:
+            return (GICD_RDIST_SGI_BASE + offset);
+        case GICD_ICFGR:
+            return (GICD_RDIST_SGI_BASE + GICR_ICFGR1);
+        case GICD_IPRIORITYR:
+            return (GICD_RDIST_SGI_BASE + GICR_IPRIORITYR0 + irqd->irq);
+        default:
+            break;
+        }
+    case NR_GIC_LOCAL_IRQS ... SPI_MAX_INTID:
+        switch ( offset )
+        {
+        case GICD_ISENABLER:
+        case GICD_ICENABLER:
+        case GICD_ISPENDR:
+        case GICD_ICPENDR:
+        case GICD_ISACTIVER:
+        case GICD_ICACTIVER:
+            return (GICD + offset + (irqd->irq / 32) * 4);
+        case GICD_ICFGR:
+            return (GICD + GICD_ICFGR + (irqd->irq / 16) * 4);
+        case GICD_IROUTER:
+            return (GICD + GICD_IROUTER + irqd->irq * 8);
+        case GICD_IPRIORITYR:
+            return (GICD + GICD_IPRIORITYR + irqd->irq);
+        default:
+            break;
+        }
+    default:
+        break;
+    }
+
+    /* Something went wrong, we shouldn't be able to reach here */
+    panic("Invalid offset 0x%x for IRQ#%d", offset, irqd->irq);
+
+    return NULL;
+}
+
 static void gicv3_poke_irq(struct irq_desc *irqd, u32 offset, bool wait_fo=
r_rwp)
 {
     u32 mask =3D 1U << (irqd->irq % 32);
-    void __iomem *base;
-
-    if ( irqd->irq < NR_GIC_LOCAL_IRQS )
-        base =3D GICD_RDIST_SGI_BASE;
-    else
-        base =3D GICD;
+    void __iomem *addr =3D get_addr_by_offset(irqd, offset);
=20
-    writel_relaxed(mask, base + offset + (irqd->irq / 32) * 4);
+    writel_relaxed(mask, addr);
=20
     if ( wait_for_rwp )
         gicv3_wait_for_rwp(irqd->irq);
@@ -463,15 +508,9 @@ static void gicv3_poke_irq(struct irq_desc *irqd, u32 =
offset, bool wait_for_rwp)
=20
 static bool gicv3_peek_irq(struct irq_desc *irqd, u32 offset)
 {
-    void __iomem *base;
-    unsigned int irq =3D irqd->irq;
-
-    if ( irq >=3D NR_GIC_LOCAL_IRQS)
-        base =3D GICD + (irq / 32) * 4;
-    else
-        base =3D GICD_RDIST_SGI_BASE;
+    void __iomem *addr =3D get_addr_by_offset(irqd, offset);
=20
-    return !!(readl(base + offset) & (1U << (irq % 32)));
+    return !!(readl(addr) & (1U << (irqd->irq % 32)));
 }
=20
 static void gicv3_unmask_irq(struct irq_desc *irqd)
@@ -558,30 +597,26 @@ static inline uint64_t gicv3_mpidr_to_affinity(int cp=
u)
 static void gicv3_set_irq_type(struct irq_desc *desc, unsigned int type)
 {
     uint32_t cfg, actual, edgebit;
-    void __iomem *base;
-    unsigned int irq =3D desc->irq;
+    void __iomem *addr;
=20
     /* SGI's are always edge-triggered not need to call GICD_ICFGR0 */
-    ASSERT(irq >=3D NR_GIC_SGI);
+    ASSERT(desc->irq >=3D NR_GIC_SGI);
=20
     spin_lock(&gicv3.lock);
=20
-    if ( irq >=3D NR_GIC_LOCAL_IRQS)
-        base =3D GICD + GICD_ICFGR + (irq / 16) * 4;
-    else
-        base =3D GICD_RDIST_SGI_BASE + GICR_ICFGR1;
+    addr =3D get_addr_by_offset(desc, GICD_ICFGR);
=20
-    cfg =3D readl_relaxed(base);
+    cfg =3D readl_relaxed(addr);
=20
-    edgebit =3D 2u << (2 * (irq % 16));
+    edgebit =3D 2u << (2 * (desc->irq % 16));
     if ( type & IRQ_TYPE_LEVEL_MASK )
         cfg &=3D ~edgebit;
     else if ( type & IRQ_TYPE_EDGE_BOTH )
         cfg |=3D edgebit;
=20
-    writel_relaxed(cfg, base);
+    writel_relaxed(cfg, addr);
=20
-    actual =3D readl_relaxed(base);
+    actual =3D readl_relaxed(addr);
     if ( ( cfg & edgebit ) ^ ( actual & edgebit ) )
     {
         printk(XENLOG_WARNING "GICv3: WARNING: "
@@ -600,15 +635,12 @@ static void gicv3_set_irq_type(struct irq_desc *desc,=
 unsigned int type)
 static void gicv3_set_irq_priority(struct irq_desc *desc,
                                    unsigned int priority)
 {
-    unsigned int irq =3D desc->irq;
+    void __iomem *addr;
=20
     spin_lock(&gicv3.lock);
=20
-    /* Set priority */
-    if ( irq < NR_GIC_LOCAL_IRQS )
-        writeb_relaxed(priority, GICD_RDIST_SGI_BASE + GICR_IPRIORITYR0 + =
irq);
-    else
-        writeb_relaxed(priority, GICD + GICD_IPRIORITYR + irq);
+    addr =3D get_addr_by_offset(desc, GICD_IPRIORITYR);
+    writeb_relaxed(priority, addr);
=20
     spin_unlock(&gicv3.lock);
 }
@@ -1273,6 +1305,7 @@ static void gicv3_irq_set_affinity(struct irq_desc *d=
esc, const cpumask_t *mask)
 {
     unsigned int cpu;
     uint64_t affinity;
+    void __iomem *addr =3D get_addr_by_offset(desc, GICD_IROUTER);
=20
     ASSERT(!cpumask_empty(mask));
=20
@@ -1284,7 +1317,7 @@ static void gicv3_irq_set_affinity(struct irq_desc *d=
esc, const cpumask_t *mask)
     affinity &=3D ~GICD_IROUTER_SPI_MODE_ANY;
=20
     if ( desc->irq >=3D NR_GIC_LOCAL_IRQS )
-        writeq_relaxed_non_atomic(affinity, (GICD + GICD_IROUTER + desc->i=
rq * 8));
+        writeq_relaxed_non_atomic(affinity, addr);
=20
     spin_unlock(&gicv3.lock);
 }
diff --git a/xen/arch/arm/include/asm/irq.h b/xen/arch/arm/include/asm/irq.=
h
index fce7e42a33..5bc6475eb4 100644
--- a/xen/arch/arm/include/asm/irq.h
+++ b/xen/arch/arm/include/asm/irq.h
@@ -29,6 +29,7 @@ struct arch_irq_desc {
  */
 #define NR_IRQS		1024
=20
+#define SPI_MAX_INTID   1019
 #define LPI_OFFSET      8192
=20
 /* LPIs are always numbered starting at 8192, so 0 is a good invalid case.=
 */
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 12:33:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 12:33:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072928.1435878 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujzoS-0002ED-EA; Thu, 07 Aug 2025 12:33:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072928.1435878; Thu, 07 Aug 2025 12:33: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 1ujzoS-0002E5-A2; Thu, 07 Aug 2025 12:33:40 +0000
Received: by outflank-mailman (input) for mailman id 1072928;
 Thu, 07 Aug 2025 12:33:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SGIa=2T=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1ujzoQ-0001m4-Ro
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 12:33:38 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bba6b00d-738a-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 14:33:34 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by DU5PR03MB10563.eurprd03.prod.outlook.com (2603:10a6:10:51b::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.13; Thu, 7 Aug
 2025 12:33:31 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9009.013; Thu, 7 Aug 2025
 12:33:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bba6b00d-738a-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iv2pCC4B/TYwyBGiYpyuhexWxM2w6BchvkZ0LH0Hmgc+jUEQHTA9ifAi64xeJLv7cdX7IcpnPJwwAOYO1Eci6Y2CD/47K2dhdmu9jH5hCOeU7+q2OIJqTm8++AvRwk1rpKIV4kfA5bPLSJ0cDBX5jrg/TiZGHlp9TL+uB2XRMuZm70xxzisZdTUsHwHKwmOsN/mL1HvS/HoJjJWbJmVcSSx2eDCFPj7lwsbwynjhFBF1fQR8LVzrUch1bkffYktd1Cr2oIk+YbTwni+Tlj/S86WHS3DdSk7VVSq9yzj6V3gx4EIY8B7v8arz9DCbD7bMz8zaHbnoiXq58/z7oK9Lpg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jseDZopep9xOUIh71ALDsTyOZSrJZhgLmbqz0ph0+Y8=;
 b=ESEgHvNKIPzw/4Fr+G+DHVt5OLvG5eoVTD7686wWOPixLHdZG2oK5fz52N0DAWKTJQcLrGbfLInu6mxAsAZe2lcbWg4SCEc3JlVCXTx7h/UsCDrtJhWh/wWxYY99vxWev54LGS8USB6+8Jj/kS3TcAY9Vfytalua+0i6rgN6wCVccahUrSNMKreWx245KZlC50QoE5E8KCqXwCXjW38mVjm0T5UoaP8r2xUKneiFjIzpL1BwN2RqQSKLYmN0xKvHZYxjhGW2sJxUOyitA9OAcmNNqZ4UFoN+CV7Cq/+SLPmBEIlKOHLAB0ebaFQmtCgBkZFwcqLvHlFQEyKgZK/SnA==
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=jseDZopep9xOUIh71ALDsTyOZSrJZhgLmbqz0ph0+Y8=;
 b=MJw8n8EGJgzf475ygeSkykbnux71T9bevsdvYULVfxXWLq3y11WEWfg64uUZxisOq0q90LKMhdm/s47UM0LBU5z/UbYDNjS8C7nNb+WKGxm2jRZoPQ0LBaZT5hB81UU6f2NugSTyk4oVvdBwBRe0w2XgwNoI+y/Tpdbu4jWvFMMd/ujlHTUcNwLmRX3P9H4KtbEUSNtDANj4XI4olrkRRMfAHS4u7VK1x7gfAnIYTJJQNdxBKBDY3h8CpbCBAoUffB+wCiv3nk2j0eQOrnMHJXMXkAp1AhWTu6NqfppTDmcnPlileOUocdRBsmTxvMAMdVqEeie+hAdDoOaahzoTOA==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Leonid Komarianskyi <Leonid_Komarianskyi@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 v2 03/10] xen/arm: vgic: implement helper functions for virq
 checks
Thread-Topic: [PATCH v2 03/10] xen/arm: vgic: implement helper functions for
 virq checks
Thread-Index: AQHcB5d76MRh/Swq2EGu624C+G/Fbw==
Date: Thu, 7 Aug 2025 12:33:30 +0000
Message-ID:
 <f029f88411e816846d13aaf33d4ef703f95d1bb8.1754568795.git.leonid_komarianskyi@epam.com>
References:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
In-Reply-To:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@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: GV2PR03MB8678:EE_|DU5PR03MB10563:EE_
x-ms-office365-filtering-correlation-id: 654bfcf4-b87e-4337-1ba1-08ddd5ae9e98
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?lLPif/Dna/ZJI11gvFyEHCmzFPiofoLrISG5xE/MelyLE6KNiMbN1aSgf9?=
 =?iso-8859-1?Q?CiidAQnAu9T+iTPO24Q1qE6x8B0M8movlEHqJEO0zYO3RxsTPd+0+KQIjD?=
 =?iso-8859-1?Q?nXTrRPl98S69fEebsuUKQt1jhYrkLxobhtxfGSGcb5fJ2l2ykXwcWoLfWN?=
 =?iso-8859-1?Q?22TMDNazEt3Q9lE+ri1FzgS+RJz3GuJzhBhlUtaAb4vTVuOMPm8iu6povH?=
 =?iso-8859-1?Q?aWkbVjTYLJAAo+q9pnH3MN2tr0FLnWO2O6wf/7Ry5Fn/FK5nqdoWLxac2B?=
 =?iso-8859-1?Q?bUFc2FEA64HAEIqJRInCCSbw8rijGj5N0CXueyBP8AR0mjrlSG/MMg19Wu?=
 =?iso-8859-1?Q?QfKDKzkxsc2bQZQNJyZgLXY0S8avFngSmiTOQ76I9DsLRApwzTiXmDrvvV?=
 =?iso-8859-1?Q?YI2M25TXzpYlj6TaJlmPcqKRgYCAchLit/H5C4vC1VtZG2x3ypPBvMjOhP?=
 =?iso-8859-1?Q?awqJ9cXP1Tc0NE0J7SSEmy2nVrZO3XSXYjaJte3E5CAKmC3BzxHSDfjLHS?=
 =?iso-8859-1?Q?v1ci7kMecj6CwMOhS98aOA2tCmlf40Fx0M3gluQQ3bCNwyUggaHFHNviWy?=
 =?iso-8859-1?Q?ngRBQgGVwYYLRqqs9uwZVWCc9oHch7D2zoCaf1mLv4HAqqcsKj99qzVWAE?=
 =?iso-8859-1?Q?vjZEw2T/RwItbXZiAB867PhQNpsr+1FafOVCgfAWUfsXrO54HU6cx9kSAY?=
 =?iso-8859-1?Q?HhPFeDp4eNDiQ3Tnv8aFpgLnNuudXU5jaYrsY8c0dMrKRJhTw0vAQOztd8?=
 =?iso-8859-1?Q?FhqQj14j/Aa5wMXSdGhGD1/T2RPot2HDprd5l+ZRexgeZue3SgEwoEj+XQ?=
 =?iso-8859-1?Q?pIpg21f0KR9GYLcYiPeO7VXymYoUrOF/xE4L3k0VZcFWQydjgMIc6tl3RT?=
 =?iso-8859-1?Q?alZuHsDojUSswQoSmuNIUS0RBB17VnzXfle+PfP+QlyU1JwGCmd4DUBQv5?=
 =?iso-8859-1?Q?K24yFtALIwbpn9BqlgtmVwbNYziAscdeHTmVjevdN6yJlGHRHYBSrY7IT2?=
 =?iso-8859-1?Q?7orAlihZRWMobDYdxv5QlUx3wogMrgkfeEWVMnlUmmu9CIQgMOt+hCFl4l?=
 =?iso-8859-1?Q?NW7d2+XP3Jtj+axiyUhxRbK8oOJmT6gfZS0lLn2nTPtikWrYNmqKuLtwya?=
 =?iso-8859-1?Q?GWghVzqdx2YWc2+076cd+TOjGHpyfWEz5xJvcgswPn6K9fAjnGX0VVLekS?=
 =?iso-8859-1?Q?U4j+IPyGXuaNRZ1NP/hwWG1YMahwc7qqdyW30te5CuBqacr0AYFvSo9Ev/?=
 =?iso-8859-1?Q?MnVJLULCq7l3Aqy9Dq71aUq98VXMnl6/mT0/o+M10YzcfeXZQxibW7Du0p?=
 =?iso-8859-1?Q?GeCmh0qMztyOPD9ZmWv1y75uI59w8+n8QC3/SsKRhU/oQNDmWhOsAcP39G?=
 =?iso-8859-1?Q?ATZLWuOGi1gwSmb4LHXKk7Yiwzapc8QaYgmysXpg93dYD4SzsLJTAT9fP3?=
 =?iso-8859-1?Q?GB+RM4nBbca+BB/0++vlRZx7UDuJZ+kyXeM89vnMjF3vw4CN9iegKNfwyS?=
 =?iso-8859-1?Q?FYiYXF6xjufIFu+UB0gpD9gWaMJh8A5MhmoSec1xEe+w=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?3osLU9ahRrbtl/x1f2m3ZgMcdjr/eXd8GadswouzSnuBUpS0bsL6RDhMEq?=
 =?iso-8859-1?Q?YPDeDPRsXW6LKChpGT+V6mcTzkR9uMuv67YA58BW39kPShH2PlL+JbAetL?=
 =?iso-8859-1?Q?ylua7vSNfM8aERffuQ8FI7xpHe5OIxqt2IKFbrLcAiJkDjjlnjSvrqAgAH?=
 =?iso-8859-1?Q?xnD4VZmMrwjWgQpcNsckWyFimU4SgCIGFjMAGHekPsuPm1REfYI7QQwQcG?=
 =?iso-8859-1?Q?Yi7G1kkMMzzq8KqRzo39jzKwya3jJnTChTK8i9LeGZ0xgCLdQP0Cn6TeF6?=
 =?iso-8859-1?Q?DjXkcmfBVnpWcjA9RA9trovD0SWEMrBVB3ujguhFEXmG9yqvCGjO3K5pNG?=
 =?iso-8859-1?Q?oXp9GrdKZsXwMGYcoawoxEvB43Q1/5MAyB3NEQwRPDAAWSENeIlCQi/fyh?=
 =?iso-8859-1?Q?/Q9J9jI3J6ZgGFocCbwlqe7ZomElFQ/+nSweqlLMqNgWjY7pERJ894zuK3?=
 =?iso-8859-1?Q?iJmF6zNFzWpLBktq1Tu/tAmTM3xqPA2QsAsUjWlCIaBkxxRoUdp7V3tl4H?=
 =?iso-8859-1?Q?2e1X9+IVxgdzwO+e59NIQ3fQBkFZqdSU6mCw3l5mxtBAn6FuES3tpUujtZ?=
 =?iso-8859-1?Q?wG0VIyY7aJ4S67II1NWJVrDkMrXWmPOscYlqT6dP1leJ5eGJflCG//m0mU?=
 =?iso-8859-1?Q?qknE8T0Kj6wZVd0zK2nMCqOG3uUCGT0iLsCTMBT4qyNjUzDxEUErQI2H6q?=
 =?iso-8859-1?Q?J0TdcGR1tp4SdkxQyTWAkECvYT6k7weJH+pYY/y4EOcv+PhUA7kYE/lwGU?=
 =?iso-8859-1?Q?seH1MV7KPqCg4HonDGG8fN62KRMF4NfdBOVksqwL955nfUWyTtM/jYctHd?=
 =?iso-8859-1?Q?dUwgDvfRrup+P9Smnw6AoDIgfoWWPBCNQ5Qh/iMOwM3UOnKXJl/qaLabCV?=
 =?iso-8859-1?Q?hIc79yazzNdqB9q2yO/lSqImIFgg9UkOFb69KFQxAfqbXKuvNJGBMQZOv3?=
 =?iso-8859-1?Q?cRfUpm/og/4OYr+6T68QBzvGml3kBMgXhSUYZ9kcpoODhXkJ9T3jn+SGSR?=
 =?iso-8859-1?Q?u8FYZsMvnIOvH/28cxEPcqRC0ezT1JeOvVG7ha+3gjnNVqt9OJeiDj46M0?=
 =?iso-8859-1?Q?Gejt2wzYuSwB/cSX4tHM+ct2hRgp78/Z3JXHZadRhyXaPOOz2NyjZZAMXy?=
 =?iso-8859-1?Q?Oe7En1YicSeYCGkAIHZL83qYhn9OLM/H0kpLGm9CWHtZSn1WtY3Uczh6Tn?=
 =?iso-8859-1?Q?kbz+2SJ+h2RGfLeDbAKPVfF0ffcc7TXkE8xoqGoCiJVNuL/ub5uiiaDL4L?=
 =?iso-8859-1?Q?zAkkwQjBPsU8u2EywI7aT7o4aaE3trDR/45pF5II9tujB4noKiNLIz9BpP?=
 =?iso-8859-1?Q?WtjCSSSonwN/F2Px5GupkZAMcDefKjBB/wmDAN2SHWcGlO7hGx1IhGUmf9?=
 =?iso-8859-1?Q?8CU8BptfVci00ZIx/gwg+lPTx1oT7PuJUyYRPYw/bkwUVKr1vs+c0bho2Q?=
 =?iso-8859-1?Q?NGf136jEJc3jzjVBJ4S9COJ12+j0OS7Ec27/kPZrACV270Xdm8H0ks+zB6?=
 =?iso-8859-1?Q?RyZKGp09aoNQa58/ZhLGGRd8kU5rA5T0CVMw7YJisCXWzo3f41K5/v4EA+?=
 =?iso-8859-1?Q?3BX0oKShksZ5eHxUwQifcrQnHGUvmGW6UFSKk1gZ00bI4WLTg/zb4FNd+w?=
 =?iso-8859-1?Q?wF7kAqiTSG8ei4XSxD3k4LNRpz1WxBZXnEcHeXGDKi91bMO/J4HR80Z8Zo?=
 =?iso-8859-1?Q?L1r4pNHTkHJCUhwDB60=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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 654bfcf4-b87e-4337-1ba1-08ddd5ae9e98
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Aug 2025 12:33:30.8555
 (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: ko3B8+8bZZbwymMMYEImqw22qscRC8Wxkc1v46/pfxv6emsgxs1E5Xjfk+yduDgVXFKFSO+b37UlIFxlPA1wZXyBwFbMCm3lqJubSclk7bU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU5PR03MB10563

Introduced two new helper functions for vGIC: vgic_is_valid_irq and
vgic_is_shared_irq. The functions are similar to the newly introduced
gic_is_valid_irq and gic_is_shared_irq, but they verify whether a vIRQ
is available for a specific domain, while GIC-specific functions
validate INTIDs for the real GIC hardware. For example, the GIC may
support all 992 SPI lines, but the domain may use only some part of them
(e.g., 640), depending on the highest IRQ number defined in the domain
configuration. Therefore, for vGIC-related code and checks, the
appropriate functions should be used. Also, updated the appropriate
checks to use these new helper functions.

The purpose of introducing new helper functions for vGIC is essentially
the same as for GIC: to avoid potential confusion with GIC-related
checks and to consolidate similar code into separate functions, which
can be more easily extended by additional conditions, e.g., when
implementing extended SPI interrupts.

Only the validation change in vgic_inject_irq may affect existing
functionality, as it currently checks whether the vIRQ is less than or
equal to vgic_num_irqs. Since IRQ indexes start from 0 (where 32 is the
first SPI), the check should behave consistently with similar logic in
other places and should check if the vIRQ number is less than
vgic_num_irqs. The remaining changes, which replace open-coded checks
with the use of these new helper functions, do not introduce any
functional changes, as the helper functions follow the current vIRQ
index verification logic.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>

---
Changes in V2:
- introduced this patch
---
 xen/arch/arm/gic.c              |  3 +--
 xen/arch/arm/include/asm/vgic.h |  7 +++++++
 xen/arch/arm/irq.c              |  4 ++--
 xen/arch/arm/vgic.c             | 10 ++++++++--
 4 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
index eb0346a898..47fccf21d8 100644
--- a/xen/arch/arm/gic.c
+++ b/xen/arch/arm/gic.c
@@ -133,8 +133,7 @@ int gic_route_irq_to_guest(struct domain *d, unsigned i=
nt virq,
=20
     ASSERT(spin_is_locked(&desc->lock));
     /* Caller has already checked that the IRQ is an SPI */
-    ASSERT(virq >=3D 32);
-    ASSERT(virq < vgic_num_irqs(d));
+    ASSERT(vgic_is_shared_irq(d, virq));
     ASSERT(!is_lpi(virq));
=20
     ret =3D vgic_connect_hw_irq(d, NULL, virq, desc, true);
diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/vgi=
c.h
index 35c0c6a8b0..45201f4ca5 100644
--- a/xen/arch/arm/include/asm/vgic.h
+++ b/xen/arch/arm/include/asm/vgic.h
@@ -335,6 +335,13 @@ extern void vgic_check_inflight_irqs_pending(struct vc=
pu *v,
 /* Default number of vGIC SPIs. 32 are substracted to cover local IRQs. */
 #define VGIC_DEF_NR_SPIS (min(gic_number_lines(), VGIC_MAX_IRQS) - 32)
=20
+extern bool vgic_is_valid_irq(struct domain *d, unsigned int virq);
+
+static inline bool vgic_is_shared_irq(struct domain *d, unsigned int virq)
+{
+    return (virq >=3D NR_LOCAL_IRQS && vgic_is_valid_irq(d, virq));
+}
+
 /*
  * Allocate a guest VIRQ
  *  - spi =3D=3D 0 =3D> allocate a PPI. It will be the same on every vCPU
diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
index 12c70d02cc..50e57aaea7 100644
--- a/xen/arch/arm/irq.c
+++ b/xen/arch/arm/irq.c
@@ -442,7 +442,7 @@ int route_irq_to_guest(struct domain *d, unsigned int v=
irq,
     unsigned long flags;
     int retval =3D 0;
=20
-    if ( virq >=3D vgic_num_irqs(d) )
+    if ( !vgic_is_valid_irq(d, virq) )
     {
         printk(XENLOG_G_ERR
                "the vIRQ number %u is too high for domain %u (max =3D %u)\=
n",
@@ -560,7 +560,7 @@ int release_guest_irq(struct domain *d, unsigned int vi=
rq)
     int ret;
=20
     /* Only SPIs are supported */
-    if ( virq < NR_LOCAL_IRQS || virq >=3D vgic_num_irqs(d) )
+    if ( !vgic_is_shared_irq(d, virq) )
         return -EINVAL;
=20
     desc =3D vgic_get_hw_irq_desc(d, NULL, virq);
diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
index c563ba93af..48fbaf56fb 100644
--- a/xen/arch/arm/vgic.c
+++ b/xen/arch/arm/vgic.c
@@ -24,6 +24,12 @@
 #include <asm/gic.h>
 #include <asm/vgic.h>
=20
+
+bool vgic_is_valid_irq(struct domain *d, unsigned int virq)
+{
+    return virq < vgic_num_irqs(d);
+}
+
 static inline struct vgic_irq_rank *vgic_get_rank(struct vcpu *v,
                                                   unsigned int rank)
 {
@@ -582,7 +588,7 @@ void vgic_inject_irq(struct domain *d, struct vcpu *v, =
unsigned int virq,
     if ( !v )
     {
         /* The IRQ needs to be an SPI if no vCPU is specified. */
-        ASSERT(virq >=3D 32 && virq <=3D vgic_num_irqs(d));
+        ASSERT(vgic_is_shared_irq(d, virq));
=20
         v =3D vgic_get_target_vcpu(d->vcpu[0], virq);
     };
@@ -659,7 +665,7 @@ bool vgic_emulate(struct cpu_user_regs *regs, union hsr=
 hsr)
=20
 bool vgic_reserve_virq(struct domain *d, unsigned int virq)
 {
-    if ( virq >=3D vgic_num_irqs(d) )
+    if ( !vgic_is_valid_irq(d, virq) )
         return false;
=20
     return !test_and_set_bit(virq, d->arch.vgic.allocated_irqs);
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 12:33:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 12:33:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072930.1435891 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujzoT-0002R9-AG; Thu, 07 Aug 2025 12:33:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072930.1435891; Thu, 07 Aug 2025 12:33:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujzoT-0002O7-2d; Thu, 07 Aug 2025 12:33:41 +0000
Received: by outflank-mailman (input) for mailman id 1072930;
 Thu, 07 Aug 2025 12:33:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SGIa=2T=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1ujzoS-0001m4-As
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 12:33:40 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id be87e491-738a-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 14:33:38 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by DU5PR03MB10563.eurprd03.prod.outlook.com (2603:10a6:10:51b::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.13; Thu, 7 Aug
 2025 12:33:32 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9009.013; Thu, 7 Aug 2025
 12:33: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>
X-Inumbo-ID: be87e491-738a-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=y7OIwZb+o+SNf0BMh6YC1qj8TQctNNg8bgkos9wlci/jYK1BsbSuXHeR7jkn3dEYWEHN+sQ/OFwUU3xEzmyCUycuF/Rr8gKZbNbzsukvJ/hFBORezKMUU6ICv3en1hIADdcKs4FwLpg8QxMwd4a4IWxbHGrjHXLaa0qqCmA2PT6xt771CFqLDK2677LEAEfYTEFiyuhJFzrBzVsp4cL9aiNYLvBoxVGXN0Aka7PZAZ3RH+jnvUL+fkm2d1P3yY0Lu9yKnIXrZVPjj5w/kZwQc6VxRlMXMPgrw3OLp4hrrcQeGTxr1m+X+KeJUrkfSTRDD16Sfn2qQfhPsbTUM0N+8A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ndn1QbTEwq7xU/jk0TW7t9iCUpFy88XOtrCYu9WTHoo=;
 b=iusMwHEF+h4cLbwpQLbiB8Vuwp8XOWYuJaJ6619t2jLyBAvVaeW464wi02ejB+BTezBrdf41HIpSGEKqAY8/yWtqzsTGc77gNO/KrvNgiBYq5zN8RCqix+GIhV9SMKL2uKu2fmPyFt0yM/7m3lmjuJynzzD+MhXS/52Bb/Cemx49+2YlI4T2EjwrcCsbIQYzEJLYy4a/eStBa1BsIBXq9C2mJpR4xlb/yk929vBHRPjSwImVqTnlE+JV7ktfC+XpGAjAb3YEyTg5yl5PyL386tToXpKCJymm5HZ4SHiHqRhz9NMao9m8GxUZ/SGan8f+fWN0CgZgRWwXEGlxq73KaA==
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=ndn1QbTEwq7xU/jk0TW7t9iCUpFy88XOtrCYu9WTHoo=;
 b=OZympmzkP5gZgd/tLesokpbai1tfiatXBFSMlZF7vXKC1lQ58hPpHCJvf4D5Fxtu5jfXMxBoIP/Pq1h0CDeHYDTT7Wp+KkxOz+JAR8uGP3xHuHTIioZwFDeYb/tyXYygyF9VFiOAH7t273DUaK9DSsPB292u44WDoXlu1CHlwixb6Y66RbVmRB/CmcyiSIVTbLsYxgdOMunS4EEW6Cl9Q8DNJKa0u5A9z5t+maQH2SprfrXpBU4bGVitxXMQGQnbRtcAf5vxrgkfvmPe6YCTFI0biXv0+u5lw+hJ6x6H9Fp0X1hJ4HOEE3xrxYq6CMtI/Lfj340/RhZXiF75EtOYsQ==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Leonid Komarianskyi <Leonid_Komarianskyi@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 v2 04/10] xen/arm/irq: add handling for IRQs in the eSPI range
Thread-Topic: [PATCH v2 04/10] xen/arm/irq: add handling for IRQs in the eSPI
 range
Thread-Index: AQHcB5d7kgaRrTB4eUK2JDUmO9y7Hw==
Date: Thu, 7 Aug 2025 12:33:31 +0000
Message-ID:
 <418e7e8082fa8f7b6659ff8cae3beb773803ca47.1754568795.git.leonid_komarianskyi@epam.com>
References:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
In-Reply-To:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@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: GV2PR03MB8678:EE_|DU5PR03MB10563:EE_
x-ms-office365-filtering-correlation-id: d5b7f1c5-bf1d-4df5-04b7-08ddd5ae9ed9
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?UWwAGIkohS597oOvgfaQx40ocr+E8DX38U+lDYoxhIo5AZzFL2UQMYyAHh?=
 =?iso-8859-1?Q?HwzgDPf/1mwmCun3n3t4tKrwDZcwxuh9oJNua437b2Zcb/7JFmk381tPo8?=
 =?iso-8859-1?Q?4HDnZ7U5SRNorA2M/EX/Ytdmlv80wZoDFm1qw3PVwsfDA+EVtnvdTe4jzb?=
 =?iso-8859-1?Q?rb1XDW1glY4FNaWu1tpl4zoCUbvsUzYM1aGZaWMxVVseUa9/TE7gRvX+ET?=
 =?iso-8859-1?Q?OeoBZdbxT2ToHyjv1H6vqNZJI+E/NDq4W0ESAAz1EKwfy27Dw1tn+JGf3q?=
 =?iso-8859-1?Q?JtF16yEKkGvNVTt5bsy1vCSy+FjBYTKGIdVAGKIYNPF6l1IIwGZnWFce73?=
 =?iso-8859-1?Q?QuRTiJs0UgejzTrtSmGV7n6OJAo2vtzJcuWvlKPBxzZTjD8bG2WHnG+mXz?=
 =?iso-8859-1?Q?+5UbLeSB0IqnIB2UrPRpL3kbxRXn5UqiNPlc4xdDxVe4BAd/y7Ohcn8IoR?=
 =?iso-8859-1?Q?VzeXAufzPmYXDSnnhkX7FlL4mqIxC7+vBUkLp7OrZDHpyquNvzzXMpudrh?=
 =?iso-8859-1?Q?8LEn9gHz2JYrjetgYsW+kzlB3CaRWxakZqfdzgmv8Zcnw+6zjGYM1xOryS?=
 =?iso-8859-1?Q?y1hi84N5QlohNNqlaUrzu+CIU3h92rJ0qcW/n//djeGl5vUIiWiMObpNGr?=
 =?iso-8859-1?Q?RWguWENUYb7cNzE6BarZcS2cUZ2X/3i0jetA+dV3yDIoxdeyh7Ka/3jUaq?=
 =?iso-8859-1?Q?H94s9fcZyFYSYTlJFKvUrUkd5jAmMW2SuI795zGDECYaRLZUESwapjuxKw?=
 =?iso-8859-1?Q?UT9cM+R5V9VrTujD0pWpp3S/mf7gUkplMNTvKDOlwZTsNBhPOKFCeCdaCt?=
 =?iso-8859-1?Q?NV5E9OzZkmnfEQfjjLKRR1Hv2MXViH9AIWpFihnFp9LKpjztSk+Ip6vRUf?=
 =?iso-8859-1?Q?PVbBWj2v3zyphMFqG7zsde6zrLQQl9U3VkuHHd+ekrj4s2zQBXRlwvvYlk?=
 =?iso-8859-1?Q?bapvQskgjhTR4O7VkrveXpsfyReymZH7CQEdS+ppjFUgKu0reGWnnWsM/2?=
 =?iso-8859-1?Q?szUlo5g+zgR138gb5OUrvOS6vq9G6j7Jc1hlReIV1HFAY9HRhcSk8v7yt3?=
 =?iso-8859-1?Q?83mZRz8BouC7AZOSErV1WxXbRZCnej504AcwaHQ7LQWGnNT50yRAgxEV54?=
 =?iso-8859-1?Q?VkJivFcNb6J93YmwQbvKmZiRSDaDwn9ODcCNGz2KghiMH1M5x1vW4oJ4g9?=
 =?iso-8859-1?Q?3mAzKnnYcytgdpGcfFWl+bXZRYvSk7T3edREtetncp3g/dJndJiAM1x0/M?=
 =?iso-8859-1?Q?yLND55Zi3A5di0TBnAG5l9s+cTJPLjF2o4rC/PrpugeTg8ie75Jq8HiIkL?=
 =?iso-8859-1?Q?uolO3JoO8CSWI7dvoO/ahjBlLw/VuVXsZgvb/9ECNouOXZ+LAJOsuW6TnX?=
 =?iso-8859-1?Q?sfeJLJ+wgcw6CGotwAL9axdxCYeQFPTH1RTBVPyWEoVVmXjcAuXb7OOXi5?=
 =?iso-8859-1?Q?6UcqCcKtq9n7WaDfpkUtUYjVfdiThPd/P3Fxld1bTK/GpWQlm+JkHeTJm+?=
 =?iso-8859-1?Q?ApxR1syUs/YeurY6b7knhw5e49KqwY8IBD06JcEWDltA=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?zkltKMWEWPTfYEWnkldzP4cJzbHz9e9M3m6n9k2sT6sOpb2a7IFDP4aZx/?=
 =?iso-8859-1?Q?Zjpn/VM39zPFD0D42IP1UQvu0FycY6JZQxoCIVsrJYcU1TZswJLKL16q/F?=
 =?iso-8859-1?Q?1Wlfq2kY8TeH7fFwsN82oEwQ+7cn4Z0LZLiUrp4wp3seg0je+aTBqp5m+J?=
 =?iso-8859-1?Q?AUVWZKGEk5wjieGH87lvqVZHt7FQ51A/XLvlj7qLfPv41vU7PZFH+pXW90?=
 =?iso-8859-1?Q?pPjtPucDB6T2YjjEsGqP+bnj2UydHzC96fdoHMQBqYv/6QxxhLsWCig1wH?=
 =?iso-8859-1?Q?Ub8H7TZ9CJ27EPJ8unWrDDVKnK03qkvQyVA0vgMMAhiOQvRmmIhYqtCsis?=
 =?iso-8859-1?Q?2MnbU01jLla8muMvQ/dnTv8qRhcWx8nICK/FUntFiVA4JPzdpIkCZvhoqf?=
 =?iso-8859-1?Q?k1zuJxaXLHUdrOprTJ7jIyFMnSEsqlM51QPILHDkMJd/HKh3zd1+phIRRh?=
 =?iso-8859-1?Q?BVd7PTi6AvXbrfZdRlnJVYLrgygyp7TK04QCTaN9kpzP2PKr2blrgdl8Me?=
 =?iso-8859-1?Q?OhcZBLBCcd8Y9Rjz8bYVvYyC7jUedQ/dRVcAQuuuXvBbcGDoCs+Mr79Kw3?=
 =?iso-8859-1?Q?qbsSOUjsgFThXizCs5iwOpqikr47xSLFLVePmDptS4MAUvXDe+KA/mmu4K?=
 =?iso-8859-1?Q?EE/yO7+Thr22HXQS3Wy6hVLAmKtGzZVV7BNLaYDSz5PaCud1vOB6GZtl1Z?=
 =?iso-8859-1?Q?XsiHhJ/wJOytYhBZFwfFuGT2YUX7cqYEuAkuSAqCbfFjLPIVZ400yE4rgZ?=
 =?iso-8859-1?Q?9NWZsrzoMz8XrBtbCcPNIZNh2BJeYLUZUwSDtrb8tP1ExLFIkeM86bvEvJ?=
 =?iso-8859-1?Q?E0R2vqHQ1GheQmsKcKYYEAUSHIXtKQOtKLutiLNyVaANGUkvvQqKugIhMt?=
 =?iso-8859-1?Q?ZFeAp+gfOLR3G2bshMKZh9uCRamXl2HAaxRIgakcHcZHksH7gu6a7wCblc?=
 =?iso-8859-1?Q?Zmx0TqAGrYLyaMKp4ia+31NOnu8osLoQUWVJ0uIywbdYnruwM4Zk5LZIe9?=
 =?iso-8859-1?Q?U1la8zPefu/EW0t5dFt22TFJBT1Mv2OZB1/CjrBVw8mxIGk13LyI9A6Qu4?=
 =?iso-8859-1?Q?sMGrjHyO6lBI6M72g5TpxZx7HKx6Op/MeiZqDvF5aslOaAzWO13UuHMyyA?=
 =?iso-8859-1?Q?Mu9xnQsiScGIHThnBycDPMv/JvxfQKxurAL1+e1SaILiUT7J23aLgEpxDh?=
 =?iso-8859-1?Q?HYPSRqf0WATUSGxXC2w2gAmkCFoPZAfV2aNqZm2nSCHElMCPG5r0BSp8jt?=
 =?iso-8859-1?Q?yNvmaysH5mFQ5QxP/K6oqTeHa7YBUsLvMBMsuwbF2H5V4R2mPltMKVeZFq?=
 =?iso-8859-1?Q?c5PdcBLykYMAjpx6mBdsKI2gp/S61KSMy/DYKZJZhNFAV/13JYGRsyAeeB?=
 =?iso-8859-1?Q?6k0bLPkwzXY7LUSMwC1QnJJEpmedBv6SaFtaECdgjc7ktASLGdaItd4IGl?=
 =?iso-8859-1?Q?rHEZ41yyVh2U9N+ZvD81irIXMaGLqoqcvRFmF8csvTSwy1+JCrmz0R91Yn?=
 =?iso-8859-1?Q?DAQKOBjJf+boQo1rBHY/WbWx0H/Hc4hkmxxpJWu5kouelAHAn+M1RPNum/?=
 =?iso-8859-1?Q?Wz5q3CAvxesHoLT/PAnLrsPK8QUbb59cvXrFBem+S97JLc3fKckuei7s23?=
 =?iso-8859-1?Q?VAsow2Hvn2o/Rk4+AMRJOV3JaNzbIHa9X8jQMrwPAdyNAgo/uhr3jT8gft?=
 =?iso-8859-1?Q?Z6g0V69KhBsQcHuL+vA=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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d5b7f1c5-bf1d-4df5-04b7-08ddd5ae9ed9
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Aug 2025 12:33:31.2641
 (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: v7jZvVF7WY4WwyNnYcOTxGE6g4RHRDmbuO7v5lFlzQx0XTdxJYh8qtGS0Ak0ZGyYkb3KEwwbgGOJmD2omhGF9cDNEKpswFJLy/L+hcFd4Sc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU5PR03MB10563

Currently, Xen does not support eSPI interrupts, leading
to a data abort when such interrupts are defined in the DTS.

This patch introduces a separate array to initialize up to
1024 interrupt descriptors in the eSPI range and adds the
necessary defines and helper function. These changes lay the
groundwork for future implementation of full eSPI interrupt
support. As this GICv3.1 feature is not required by all vendors,
all changes are guarded by ifdefs, depending on the corresponding
Kconfig option.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>

---
Changes in V2:
- use (ESPI_MAX_INTID + 1) instead of (ESPI_BASE_INTID + NR_IRQS)
- remove unnecessary comment for nr_irqs initialization
---
 xen/arch/arm/Kconfig           |  9 +++++++++
 xen/arch/arm/include/asm/irq.h | 25 +++++++++++++++++++++++++
 xen/arch/arm/irq.c             | 26 ++++++++++++++++++++++++++
 3 files changed, 60 insertions(+)

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index 17df147b25..08073ece1f 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -135,6 +135,15 @@ config GICV3
 	  Driver for the ARM Generic Interrupt Controller v3.
 	  If unsure, use the default setting.
=20
+config GICV3_ESPI
+	bool "Extended SPI range support"
+	depends on GICV3 && !NEW_VGIC
+	default y
+	help
+	  Allow Xen and domains to use interrupt numbers from the extended SPI
+	  range, from 4096 to 5119. This feature is introduced in GICv3.1
+	  architecture.
+
 config HAS_ITS
         bool "GICv3 ITS MSI controller support (UNSUPPORTED)" if UNSUPPORT=
ED
         depends on GICV3 && !NEW_VGIC && !ARM_32
diff --git a/xen/arch/arm/include/asm/irq.h b/xen/arch/arm/include/asm/irq.=
h
index 5bc6475eb4..acebc3d42f 100644
--- a/xen/arch/arm/include/asm/irq.h
+++ b/xen/arch/arm/include/asm/irq.h
@@ -32,6 +32,14 @@ struct arch_irq_desc {
 #define SPI_MAX_INTID   1019
 #define LPI_OFFSET      8192
=20
+#ifdef CONFIG_GICV3_ESPI
+#define ESPI_BASE_INTID 4096
+#define ESPI_MAX_INTID  5119
+
+#define ESPI_INTID2IDX(intid) ((intid) - ESPI_BASE_INTID)
+#define ESPI_IDX2INTID(idx)   ((idx) + ESPI_BASE_INTID)
+#endif
+
 /* LPIs are always numbered starting at 8192, so 0 is a good invalid case.=
 */
 #define INVALID_LPI     0
=20
@@ -39,7 +47,15 @@ struct arch_irq_desc {
 #define INVALID_IRQ     1023
=20
 extern const unsigned int nr_irqs;
+#ifdef CONFIG_GICV3_ESPI
+/*
+ * This will also cover the eSPI range, as some critical devices
+ * for booting Xen (e.g., serial) may use this type of interrupts.
+ */
+#define nr_static_irqs (ESPI_MAX_INTID + 1)
+#else
 #define nr_static_irqs NR_IRQS
+#endif
=20
 struct irq_desc;
 struct irqaction;
@@ -55,6 +71,15 @@ static inline bool is_lpi(unsigned int irq)
     return irq >=3D LPI_OFFSET;
 }
=20
+static inline bool is_espi(unsigned int irq)
+{
+#ifdef CONFIG_GICV3_ESPI
+    return (irq >=3D ESPI_BASE_INTID && irq <=3D ESPI_MAX_INTID);
+#else
+    return false;
+#endif
+}
+
 #define domain_pirq_to_irq(d, pirq) (pirq)
=20
 bool is_assignable_irq(unsigned int irq);
diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
index 50e57aaea7..9bc72fbbc9 100644
--- a/xen/arch/arm/irq.c
+++ b/xen/arch/arm/irq.c
@@ -19,7 +19,11 @@
 #include <asm/gic.h>
 #include <asm/vgic.h>
=20
+#ifdef CONFIG_GICV3_ESPI
+const unsigned int nr_irqs =3D ESPI_MAX_INTID + 1;
+#else
 const unsigned int nr_irqs =3D NR_IRQS;
+#endif
=20
 static unsigned int local_irqs_type[NR_LOCAL_IRQS];
 static DEFINE_SPINLOCK(local_irqs_type_lock);
@@ -46,6 +50,9 @@ void irq_end_none(struct irq_desc *irq)
 }
=20
 static irq_desc_t irq_desc[NR_IRQS - NR_LOCAL_IRQS];
+#ifdef CONFIG_GICV3_ESPI
+static irq_desc_t espi_desc[NR_IRQS];
+#endif
 static DEFINE_PER_CPU(irq_desc_t[NR_LOCAL_IRQS], local_irq_desc);
=20
 struct irq_desc *__irq_to_desc(unsigned int irq)
@@ -53,6 +60,11 @@ struct irq_desc *__irq_to_desc(unsigned int irq)
     if ( irq < NR_LOCAL_IRQS )
         return &this_cpu(local_irq_desc)[irq];
=20
+#ifdef CONFIG_GICV3_ESPI
+    if ( is_espi(irq) )
+        return &espi_desc[ESPI_INTID2IDX(irq)];
+#endif
+
     return &irq_desc[irq-NR_LOCAL_IRQS];
 }
=20
@@ -79,6 +91,20 @@ static int __init init_irq_data(void)
         desc->action  =3D NULL;
     }
=20
+#ifdef CONFIG_GICV3_ESPI
+    for ( irq =3D ESPI_BASE_INTID; irq <=3D ESPI_MAX_INTID; irq++ )
+    {
+        struct irq_desc *desc =3D irq_to_desc(irq);
+        int rc =3D init_one_irq_desc(desc);
+
+        if ( rc )
+            return rc;
+
+        desc->irq =3D irq;
+        desc->action  =3D NULL;
+    }
+#endif
+
     return 0;
 }
=20
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 12:33:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 12:33:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072929.1435884 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujzoS-0002Gr-PS; Thu, 07 Aug 2025 12:33:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072929.1435884; Thu, 07 Aug 2025 12:33: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 1ujzoS-0002G4-Ik; Thu, 07 Aug 2025 12:33:40 +0000
Received: by outflank-mailman (input) for mailman id 1072929;
 Thu, 07 Aug 2025 12:33:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SGIa=2T=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1ujzoR-0001m4-70
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 12:33:39 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bdbf2dd4-738a-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 14:33:37 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by PR3PR03MB6425.eurprd03.prod.outlook.com (2603:10a6:102:75::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.21; Thu, 7 Aug
 2025 12:33:30 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9009.013; Thu, 7 Aug 2025
 12:33: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>
X-Inumbo-ID: bdbf2dd4-738a-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GwcD7Q2mwfU0oM/1pdF4QiyoicOVh05me23AMjfedGzHAk4Xl+SqspjF922LLiq+EF4lNEVLlK6HWU9UZQtvRafnaQ+3NpW+SCmlxCmTNX6cqTeFPMc/rUH3SRM5FEZAKD0Gxy8rAEjYW74s7gOeAxxKjLWB/cP4W1qzFXvrYjL8nAmFiZDl6ukiSJBXzXXpgkCBC2QY3GUlaBYgBUn36qT8jKw6+a4t+6f1HP6akF6C2WyHmibXLarddYefQQvfCiw+hZxsqwRE4X8di8qQF9Nu56mq77NLxgdE3Eyce5fmdqQz/IClvmkBYCni2Wk0ZdHq/WgGmTFyIlubV0ORjw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=prOPaxQ1KI/MEP6EmYuzOl8MUvJOaT8mOcqtzyhSl64=;
 b=XKmA5a8bAWdVFeBU4cvdagEeVWBTrE+mZcy10rT+p0CVKcWotkaud2veS5BBIqFO/kTQe+LijPToXQQCaWKn1l/hA9gJoemID4zQUIu0RhSPNZHTmbqdDO+xMZ2fsauNgneHzRAtYDYBVSxRUT3lhWwl+4/3J5EiJmA5lnpMvzHHqDi6JFEc7oiRsFiOIsDcFi+yTqJm54AHrGsNnTuRUlzr+V+yoFxP4/qjBP6fkmd+tw3PZivgpwoOSlG/XmKT0DtY9GhpaY3xj/mwMcTYofDuKF1DjUomibeiZ1lOvBkcUpV481CtyfjI0NOGkGsRaKNNcWzzLV/H08blY2c6mw==
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=prOPaxQ1KI/MEP6EmYuzOl8MUvJOaT8mOcqtzyhSl64=;
 b=K6d/VAWb9UBmYD4gZ6LYPxO2xKeKleynR4wv2MaQfcK3l8vkg8W/6HL1tnmaWcnJ0j50NT7O2Fiw7xI9yJe64YNt4QvCspTrGBbevNn8BGqCwg53ZysJBOLz+j9dPvPMwpaLGeD6wvbY1u87gWEpHz2QYdgOxl+ggVf2+krkFSJKBS6p9jIZRG8bEMuaBE/cx+XMyAKtcvmM2bKsHEGW2gwciQ+OlPXATZfeQF6V8gLpxywbe9SQemNG0MtJ1GfGpeXWtNGS3BSxJpdpeES0IW6QO2dhC6nyiuWCckQ9lAtKlz7VUyRYBMGjQcBhV5JqY7hOu+6ewZZmR8ydfBcOTg==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Jan
 Beulich <jbeulich@suse.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>
Subject: [PATCH v2 00/10] Introduce eSPI support
Thread-Topic: [PATCH v2 00/10] Introduce eSPI support
Thread-Index: AQHcB5d6CNAyJbck6EKQNoQgtljZhg==
Date: Thu, 7 Aug 2025 12:33:29 +0000
Message-ID: <cover.1754514206.git.leonid_komarianskyi@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: GV2PR03MB8678:EE_|PR3PR03MB6425:EE_
x-ms-office365-filtering-correlation-id: 82b3690b-5224-4805-d896-08ddd5ae9d44
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?q0vRKGmVqKdfcbfGdjBoFK/GU5fFd+LbyZIlWHk08/WBW0kDiPWqMUb1cV?=
 =?iso-8859-1?Q?XrGTn65tHE+/zA6MuuRAkvk+IbLvjMoSFIza3DVM0obo0YLgv7Ff+hiLCf?=
 =?iso-8859-1?Q?txuIhr23i6lX2/vOEnUnh9HVwI0SU5q5VJReLVz9MokKH+6HJjsnxa9gZ3?=
 =?iso-8859-1?Q?EJlsGd/glTFCGYj9OQX5ZDenxlS777yebq2XfLQzAYRxqsH0lZkFrDNfVg?=
 =?iso-8859-1?Q?+y0ABTe815xInpK0GB4g7bIbp9Nr/IUjKjvGSQQYKZPHfNzdEgznGbfGMX?=
 =?iso-8859-1?Q?qXjAD5Xu4DhJF+pKtsCQ3G8DBtN4611hE5/AlWFsImrWyAC/WP1leSDWx4?=
 =?iso-8859-1?Q?G/99l3MoJdYeg9RxSy3lP6HVI0OwfP1Z5mgyqWGaKyTToljvk3GUq2ZFCM?=
 =?iso-8859-1?Q?SPzt8QvZqdFoZ2I2kWd06RrC/yX5QKIQHL/UQvOtypHOxyl/4tjBmiL6dd?=
 =?iso-8859-1?Q?0dZYj6T4mEBTo950zXYjMjhgNSSULIIzuajo7sFPxJh6z8/uVk5+dsiC7J?=
 =?iso-8859-1?Q?VhP0UW9s58P2KBimXl2Nm2xfqSowsmNbLx6szItwEoyDxlxhEKpxqsMjuQ?=
 =?iso-8859-1?Q?Sdy0dWNjbLgcLBBjx9Cos7P/W10dm6+u3plt6Zzs0BMUsFzoLOa6vFN+Sg?=
 =?iso-8859-1?Q?kYouhvFXdrxFQFwmRLeeJfEGBTMFQsissKY/xdgA7T01zLb9/xpuJbdhLZ?=
 =?iso-8859-1?Q?I0YnQ8Im33cZKH1M+etIBasLZlaVEuRR5Juao3ZB/fzCoJ5nIptfs6JuDW?=
 =?iso-8859-1?Q?CE3g4thnyGw4f7m8b9d13+rWGD9auZjS4NW6lcw7MV5XZ4H16sfPaeNmsI?=
 =?iso-8859-1?Q?9nyTOcgkf6twvj9eQusq05m0thkaxNa+cjCOM0p09RvpnQ/7KN26lHwEkD?=
 =?iso-8859-1?Q?aW57kSHRGGLOWGFWVzpQlJ7tsVBEBataw0aEb+BjJCJmavtEYFrjoB1j4P?=
 =?iso-8859-1?Q?4l1RjrBoOC/7YO0mNTNOb/u3fKAyR5vbAkfYtlLzlJrY4A31YBH2Am5g5n?=
 =?iso-8859-1?Q?1nVMhbh4EPrXg7qAyO75jRdPmqbX7QmWgyeH+uRWwzGcOucTkVy2T3IkbU?=
 =?iso-8859-1?Q?TTve/8tCyRdvjPwMHbfLdvnL+p1Gz5e5uzJtcmZami0yPLhMTkt0CFQQNC?=
 =?iso-8859-1?Q?c7su72G1JR0ZWm1jXYWB/XhRSKWJVVZRbsYh0OHJkb/XXcMDcZuwcJfuU4?=
 =?iso-8859-1?Q?d781fv3CTmM8H7avr61+DNPvjjdoFazlySUiYyBAOBpFSvpGbYXWftb5av?=
 =?iso-8859-1?Q?bPBxgCjCtnor0g5mFug/fMqSnGShQTPOzjtj30VjtuqRr1rcrVr+vR3uK0?=
 =?iso-8859-1?Q?Ex/sknDt0rb9xVIpLpvBTRu/qSpM+DymJZU4yObbd2Gbnb1KmWA3RtPy2y?=
 =?iso-8859-1?Q?+Pm/veDwWtgFzxesS4QyAkSVGs9kPVEpbkWUnrJ4NlvkoTp1+QAyaMJ8zy?=
 =?iso-8859-1?Q?MdYcaN+8gipuvlLPx71xIHMgW4B5S33jSMBRNNFUzWRF+Q2LY8I6tVJO3p?=
 =?iso-8859-1?Q?I=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?4z2xBtDBHUtnmEhVxRlFRY/kR/dL9BsGK0Amg6aa4LPcQNYrf1THqPzwJO?=
 =?iso-8859-1?Q?6VlvteCh0CRpaWSmPi+yl6y0DjTDImWpQzH7RvvQf8GcNduGRO/YlJW5zd?=
 =?iso-8859-1?Q?MUo+U6XaSVQsxEx6IRUk5B5HgQTHuY32hXld7w80Z+f5t4zhskJfdlUZB/?=
 =?iso-8859-1?Q?bg951N8EeLjyEt8OjAyE1JrfiWOLEpFExuqUrEvDmm3hUwiD/vFRF89aa6?=
 =?iso-8859-1?Q?QQ0IgqD57saDKEs3UaDTKFc15chKfRGzk8NXvAY1ReOpMuZSLtTLMmKust?=
 =?iso-8859-1?Q?JriAsYWt+Jt3lMQbmuR2L7MDWeNx7pP9h8QDaHVsKGZheNdepSc9JJZZtQ?=
 =?iso-8859-1?Q?2vw5u0C1mmdE7tEYYbHg6RIU/WcSGbD2N2vn+S1VD2I1IZ1WJieRCkzI8O?=
 =?iso-8859-1?Q?K1t3TgBvjp3v6VumawD6xuMHumMy+EWQ7l7UhDkB333PWnblZjQ5adTacC?=
 =?iso-8859-1?Q?EbCtY6BVXOL6WKAwHMcTRILSHWtHTkqGAkHshRZdTPdhYLVjMO85yqPTLM?=
 =?iso-8859-1?Q?oeS5mPVKKgPzn86tSXkbjE14TwDTpPWIwQmR3GTL52rYt9sf7995aZtWwd?=
 =?iso-8859-1?Q?gcOoV+BFXcYLtZgKPubiy0ddYQCYrfsPU+nGsBkGFAo6oAGieMvJUEVLMK?=
 =?iso-8859-1?Q?LgAmW+6sqNiASZQbEUsG2rlS1jrtQLOqEZcNXraEsC3eTOGzFiyDVYHmDH?=
 =?iso-8859-1?Q?J1OktcWK5JIpRVOIbHIPhtjHuydcUV8dMoXorGtgqtIRdKtR5GtJQ8+Un6?=
 =?iso-8859-1?Q?GcRrWnxTy13I8+ZpmkF7NZopCDlfH7fzKOTED39+p47PqWH0+HugJQk5Qn?=
 =?iso-8859-1?Q?+hglZ9hiWwRqbE52PR3ltEUyOOvetm+qIr+b8v6W4oOwLmDyCherQqpB93?=
 =?iso-8859-1?Q?8okid+n9LhgxROb1Hyf/HPgi44QXx/SqZetX6WAycoMZBUmDx0mS2/sRa3?=
 =?iso-8859-1?Q?iRukSSLQ4ZFQ3SiZw9FcfuWRzK8HJfpCT1NKnJWAy2HDIYVNuHT0H8zc40?=
 =?iso-8859-1?Q?qZfkARyHCSP/sMqG4jNhTJJpQzu7ibAOimz4BhkRWqnjmMMBlWypBEEREQ?=
 =?iso-8859-1?Q?nGnXUyHGO5Dba7XFMLrpjZ0PJnbp1KqPdC5j8le2pNPiTfD/0l7JNZ6UQw?=
 =?iso-8859-1?Q?u2WTa7mpzeZoyszRT5rBtiIh3J1LG/RkZoAauzCGUOatvcZHLFROVMEHn6?=
 =?iso-8859-1?Q?KaIXX7HORRGUc4b5h14po0JVuewgoE+PepnKcmo5/UFSzmUBPR6R8YPL5d?=
 =?iso-8859-1?Q?JaqEQMHU8v0f6KOJIm0GYrdQraKtnSEZ31pyzM7TVCuW8HmuV2wxuth5dU?=
 =?iso-8859-1?Q?7SRBF9nUB1Iqdw2s25dq04GKnJTE42Ug98Cn1SIlRdR68NxWsqjAbNMbXx?=
 =?iso-8859-1?Q?n/pYq+223spsH09Mys7DC5swyY5oRQLpc2tb9HcA7cIDwKLOkEWgbJtHqy?=
 =?iso-8859-1?Q?2AGg2ZeMYB04g+u8BLfQmMQpC9Vuo8YgVYFhx5CVbrstzDCLi3dRBc3Gw6?=
 =?iso-8859-1?Q?23IWyguyFDDvF4KND9EkdaNWKN7a2rAWNHIho3LwROQxetm9hru/2ueeic?=
 =?iso-8859-1?Q?Ch6dmUnB3i3XOEVXc2Unmqr/1mlxxQSA/0PHxx/yxy/ZIwQ8eHpQ7TrfFc?=
 =?iso-8859-1?Q?0fNwNv5T7myoP7HuogYchmyUMsT1CtUrYG/L3i48S1y/WTqD2TRmOZx7QI?=
 =?iso-8859-1?Q?LCjCKVJA6ujwoprLleQ=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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 82b3690b-5224-4805-d896-08ddd5ae9d44
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Aug 2025 12:33:29.5581
 (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: Zy4XVbDQZT+Gu0WGnj1mA1Shdi36jTywUOOKIm2lV+6FxNEFGy+LG51dAp6YqATIrUKrHXwmw92bSGdL9vdI6r3pQvQEpgGTJJAAme3iIGQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR03MB6425

Hello everyone!

### Background
Unlike the Linux kernel, which has supported extended shared peripheral
interrupts (eSPIs) since 2019 [1], Xen currently lacks support for this
interrupt range. For SoCs with GICv3.1+, this feature may be essential
because critical devices, such as consoles required for booting Xen
itself, may rely on eSPIs. Additionally, these platforms require eSPI
support for fully functional domains, as any device using eSPIs cannot
currently be used with Xen setups. Without eSPI support, Xen cannot run
properly on these platforms, significantly limiting its usability on
modern ARM hardware.

This patch series adds support for the extended shared peripheral
interrupt (eSPI) range (INTIDs 4096-5119 [2](ranges of INTIDs)) for Xen
and guest domains. The implementation uses a generic approach to handle
eSPIs, similar to regular SPIs, while maintaining compatibility with the
existing SPI range. Functionality remains unchanged for setups that do
not require eSPIs.

The series includes:
1) General refactoring of common IRQ operations with GIC registers to
improve code readability, simplify further maintenance and prepare the
key functions for eSPI implementation.
2) Introducing a new Kconfig option (default y) to enable or disable
eSPI support. Disabling this option prevents unnecessary resource
allocation for setups that do not require eSPIs.
3) Adding additional resources to store required information and operate
with up to 1024 interrupts from eSPI range.
4) Adjusting assertions and checks to pass verification for INTIDs in
the eSPI range.
5) Configuration of eSPI-specific registers during GIC initialization
for systems with GICv3.1+ hardware.
6) Enables eSPI MMIO emulation for vGIC, allowing guest domains to
access and operate within the eSPI's INTIDs.

[1] https://github.com/torvalds/linux/commit/211bddd210a6746e4fdfa9b6cdfbdb=
15026530a7
[2] https://developer.arm.com/documentation/198123/0302/Arm-GIC-fundamental=
s?lang=3Den

Changes in V2:
- added 2 more patches to implement helper
  functions for gic/vgic:
  xen/arm: gic: implement helper functions for INTID checks
  xen/arm: vgic: implement helper functions for virq checks
- removed 2 patches:
  xen/arm/irq: allow assignment/releasing of eSPI interrupts
  xen/arm: gic/irq: permit routing of eSPI interrupts to Xen and domains
  since their functionality can be moved to appropriate patches after
  introducing patches with helper functions
- individual changes in patches

Link on V1:
- https://lists.xenproject.org/archives/html/xen-devel/2025-07/msg01809.htm=
l

Leonid Komarianskyi (10):
  xen/arm: gicv3: refactor obtaining GIC addresses for common operations
  xen/arm: gic: implement helper functions for INTID checks
  xen/arm: vgic: implement helper functions for virq checks
  xen/arm/irq: add handling for IRQs in the eSPI range
  xen/arm: gicv3: implement handling of GICv3.1 eSPI
  xen/arm/irq: allow eSPI processing in the do_IRQ function
  xen/arm: gicv3: modify ICH_LR_PHYSICAL_MASK to allow eSPI processing
  xen/arm: vgic: add resource management for extended SPIs
  xen/arm: domain_build: adjust Dom0 IRQ handling to support eSPIs
  xen/arm: vgic-v3: add emulation of GICv3.1 eSPI registers

 xen/arch/arm/Kconfig                   |   9 +
 xen/arch/arm/domain_build.c            |  10 +
 xen/arch/arm/gic-v3.c                  | 172 +++++++++++++----
 xen/arch/arm/gic.c                     |   7 +-
 xen/arch/arm/include/asm/gic.h         |  26 +++
 xen/arch/arm/include/asm/gic_v3_defs.h |  35 +++-
 xen/arch/arm/include/asm/irq.h         |  26 +++
 xen/arch/arm/include/asm/vgic.h        |  36 ++++
 xen/arch/arm/irq.c                     |  34 +++-
 xen/arch/arm/vgic-v3.c                 | 248 ++++++++++++++++++++++++-
 xen/arch/arm/vgic.c                    | 155 +++++++++++++++-
 11 files changed, 711 insertions(+), 47 deletions(-)

--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 12:33:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 12:33:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072926.1435859 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujzoP-0001mM-TJ; Thu, 07 Aug 2025 12:33:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072926.1435859; Thu, 07 Aug 2025 12:33: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 1ujzoP-0001mE-Pj; Thu, 07 Aug 2025 12:33:37 +0000
Received: by outflank-mailman (input) for mailman id 1072926;
 Thu, 07 Aug 2025 12:33:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SGIa=2T=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1ujzoO-0001m4-Ht
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 12:33:36 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bb856fc9-738a-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 14:33:34 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by PR3PR03MB6425.eurprd03.prod.outlook.com (2603:10a6:102:75::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.21; Thu, 7 Aug
 2025 12:33:31 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9009.013; Thu, 7 Aug 2025
 12:33:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bb856fc9-738a-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HzUQoUeU2Kk9plECSpCwWXGZNGGwoLgc8C4PcEuLQdvnYEnxsf2qYS1SZcuiHGgIc9JhETF6K7IJBXPuyLj+Cf31XH6HIDYSyxOxIKrh7tQYRJrz3UwyRJus+LJL+jmHo8uTCS0I4md9vNl31b+/8vgJDtAXmSRpzGr2uZ9Rv9q39NoRIVJHB2nprdN5IDO0V10zNtkP9yQz4hlgp/GuS0iF11CmnCI3SpuQjcwJTNKhdPCSc4guLKUcvJ03OERjKE3neRIY1ApQdn8+xIU/596n48aIKw9/8QSwbZuIaZZoSHshXEi8D7UKEoEPihbvU3LCXdwkstZ5CEr/ceX/Gg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=3ofZi4GBOyNGOLa7M8Aip0JgkXWXFJ034ktJf5UCl8E=;
 b=UWcT4xHrodsjY0cU60Xvns0uMCP/iT01J3nSFYeNDlwgS/pKlVyMAGmo9aru7AZOHlCB0h++JWkOdN1lgtcw/JhEbKEfvyDZ4cpO7PrpYAUA1bXrgwvI+0n7VbqmHEj0YKQQ3RLzBPEd0om2FqlLgaP6jeTolBMtyyIJ1jkGdFG40tQsSJlHH50S0jztXfn3O9SL8yE/NkpOd7UV6HC79IVSLKFkR5NgF7Mf4V0IxdYkYslAG532p/uQxACxS5ylz7cbm3WSnOnbVMfWys8K3k7OUAByQNnBWB70F5+jRB9YZhVUy0jmrcKwORgGiKueWlm7GB+qLspQOAuHG8r64A==
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=3ofZi4GBOyNGOLa7M8Aip0JgkXWXFJ034ktJf5UCl8E=;
 b=DVx79HTrLlC1egfXhq2dXrwcRhzDZiPbFtcxBtKszfPJwCJo9t91Fj0HXde7eUm67lhxX82p6hbzR/r7ETNQwY8eL9Yt05SWm9bgQPz99kZtZSlTCZ3h/QxHK4QF4SMcGQO6C20hZOSLrWYG4dnrWvkVMszdsqK8i6IzAmd8irCIC+4f9V4G0sqOmaXGW0Nc6FLGmd/LJxr5oFL9dsZhKvilCIIt3aknN+rT24ZxIN8dCQoCjZ8IwevvhtGqqXux9HiNpdNlF9EParAK+fES+bQjO5Ln7ifN8b8HSDbilkro9rFiMU2TSEErZleMk+DI9yh0HGIvA/R2+5+L9N6CdA==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Leonid Komarianskyi <Leonid_Komarianskyi@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 v2 02/10] xen/arm: gic: implement helper functions for INTID
 checks
Thread-Topic: [PATCH v2 02/10] xen/arm: gic: implement helper functions for
 INTID checks
Thread-Index: AQHcB5d7oc7jtkgiGki3l7l8xwTnbg==
Date: Thu, 7 Aug 2025 12:33:30 +0000
Message-ID:
 <51a017aeab39af14ba40ab76b56f317270c7afaa.1754568795.git.leonid_komarianskyi@epam.com>
References:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
In-Reply-To:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@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: GV2PR03MB8678:EE_|PR3PR03MB6425:EE_
x-ms-office365-filtering-correlation-id: 32f5f94c-7850-43dc-ea5f-08ddd5ae9e62
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?q3sLBLsHFYE2HbEasMPQK7hqrlAmNeHpJCa6wb67Hdq71p6YNUcHPTnv73?=
 =?iso-8859-1?Q?Lx3AQn6V7JcKbCS0fFeHMkceCZ3vh3HoGcox/flhi4pz71HojdqaSU6hrS?=
 =?iso-8859-1?Q?jF4jm2GA7tvGK9XvX1slwptuD1PMHsCpxyco8bvzo6/vuuLTcCG1VJWZQQ?=
 =?iso-8859-1?Q?Vk1XMBHjMRf/jf+pPczJxD89Ky7AiyZ0cCv718K62kiEojlzKMHXSXrboK?=
 =?iso-8859-1?Q?ZzKYtFcvVqAXjiHUfGHczs86jN1/kIinJrwHvxJc33GG7KQiElrfyciWmP?=
 =?iso-8859-1?Q?7uHMrhXQrLAdw0VhmtiizCs14QWSGejZR35OaQgd9GhkwtaPIc9Ftmvw1a?=
 =?iso-8859-1?Q?oTyQROytBzHZ9+WtPBk0OTfXsq7/scYM9+tYykJ8u7YNV51/5itS9NXBBR?=
 =?iso-8859-1?Q?zYBIr2MDRvNrNBMuqW92dnN1DcW4mdtFd5E9/KpGEzj6B3/Wq28ciiTUks?=
 =?iso-8859-1?Q?sf2f7bHP+/MABe+A1f3hZ+fsdz/r2lL6xlZOpKZuubFOIyEUb7zrFGP8eW?=
 =?iso-8859-1?Q?i15qg8iWmvtD6nuJa65PkCdtbkVNkWFwYITTcBMW2H4FTkXkiVycMFeh7H?=
 =?iso-8859-1?Q?P5/vecgUoVRZWJtTErKY384w00TRjgP3C4X+j+7A/rawqWukU/fCDPuStP?=
 =?iso-8859-1?Q?Xxvy1dAzZNtR6uE0GYBCGjdlSfxP8DwJ7Xlf9dHDyolxh5EfyoFjCieBTG?=
 =?iso-8859-1?Q?icNaA2DBeeYvrLC+tkrPFWlPMDBbUsEiM7jWC4Dhzm1wSzANQKH/i9KiPQ?=
 =?iso-8859-1?Q?hTGfYIqGKfgwpjQrXOvGipSmwnC/ZdAJCimjFnIRrdsNovnzyXJHcwpWcE?=
 =?iso-8859-1?Q?YKCvx/RMyyQXBarXrUcEmaP09QjGFX3GvB8e+YpS3lSuMbYsPhXFXHfNB1?=
 =?iso-8859-1?Q?3O/2uUv5120LJyiR61H5HbZyUt1T41D7H0eVVvvsBjNHmSQbfc1ev47QXk?=
 =?iso-8859-1?Q?Iis9zkXR95kKgtpWWeUGsko6aBdJZcpNZkxI0b1ML0CMul/EJOitfbwYNr?=
 =?iso-8859-1?Q?OGpAdlrV3B0NfowCvXf8jLM5/lSO7mt9LaaZkf4fnBsmZVYCBGAcKDD2a7?=
 =?iso-8859-1?Q?2yHtMV8I9eqrvMRUT8NcL+piLSveC0UdbsbwN2FFaldEdjXet4OYYRfMhT?=
 =?iso-8859-1?Q?sfktOrYDdhHqmY1dZM5CvgL/wc3OuN8KE9wijyIsSVHBdK6EfpJ1nk3Khc?=
 =?iso-8859-1?Q?EFWcfgO1YV73wvbKp5gvA4XA2SBb/oz1YkPnhkc90LE/RFCF6vC5SxNTD/?=
 =?iso-8859-1?Q?QoEJHgvU7i3NvoIMYHttBwFG2b//DzFw4+MSxBAdXZx/OG+AjJTsOcJUwP?=
 =?iso-8859-1?Q?89dH9NEUcK9gy0Wk/vWZTFIQnxWznU+MtjYk2yXBWBN35zLaVcWTCopI6+?=
 =?iso-8859-1?Q?TiFgMKezmXxPQiH2QcPmFsJCSDzaGpLLbIjyOU6rPoPPmz2sfEPTdPsFD1?=
 =?iso-8859-1?Q?tsmULAaH2aKgiog0iDfJZFo24118j9Q8Rl9NSoXfQZrPP+c/PYDPnx6B62?=
 =?iso-8859-1?Q?hcxFNiJQcYkxUR47umAFp38WNAlUn+FZfyBBdbI8Miwg=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?sQ5uYdJILjiRFgeQr2tuVavpcWymIOcmloCCp05nNR28UuMZgw1IaHhsna?=
 =?iso-8859-1?Q?fq6P/2/lDclBM1THx7KX2OpXn5rdI5+c06xlsssCKrQenVk9MHe/KtEa8x?=
 =?iso-8859-1?Q?FrMuso1xpeBm+Uk3d9UamluxRXHPnwkj/wwpBmZyZeZqt0YLSCTfvnkyUv?=
 =?iso-8859-1?Q?9KSz3+0kykwJr4JFXUiwREwTOrR3nvrgX0aYFMRnKCUA19gqOJPr/7Rko4?=
 =?iso-8859-1?Q?FhVPW0ZpYWSN1DDR6qccpWrMuYlHfkp8LB2njxIV2fXVeHOijxl/Y1q2wZ?=
 =?iso-8859-1?Q?XXPikV3CNLWVhSjryWhuwFtyyK6zMNYjN9n2adcl/Ue7NycgmyWWU8DFEg?=
 =?iso-8859-1?Q?ikBYy/cV11aan4R5Kid8Jglt3fltHnVOWv1LmDKOWcN3KQIZwDDHUwto5/?=
 =?iso-8859-1?Q?/91mEJc93N6xL/3Yf46ShILiw7E5q/G1fUoa4eQng9O1kpxTE7W2/5igiX?=
 =?iso-8859-1?Q?WRVJ/sgGvHFEdJdD//p6BdKrWdjOLY+oaSXC3hHmSA+lazEuiXmZxfzxYw?=
 =?iso-8859-1?Q?gUquuHCxVQ9et4d+D7OD5lRZRnvtosuRk/oNMMgQyGcY7smJDIuOeWeER8?=
 =?iso-8859-1?Q?nXdPNMZSFNubw8h7ddq50NBhnBzeHRHe1KQ1ctv9Xu/pi7Aojr4Zt3h7Ko?=
 =?iso-8859-1?Q?4XkwiCeXsMCb4uTJ7LENJPD7mI/EZL1bwLeXPhPt9sh5tIRygjjsyJfvHj?=
 =?iso-8859-1?Q?GApj4FNM91XgDbKzXqCInIAm7Ato74TL7+CAu/MSMUb3AD30wL4L8hB3sv?=
 =?iso-8859-1?Q?1VSrN71umd3ZEOB4lRuNw6Xcev9vk2qNhGrN43Xa19OlwRDV47xoYsbqxV?=
 =?iso-8859-1?Q?t25NJGQBQbMldh6i56F607JYGWv03jyUTIn5zgXIzhl+m1dVNoSNvbvPQs?=
 =?iso-8859-1?Q?asl3upy85CFKLoaVrIH7EfFrX8YbpU3wFJBW7kWGRI8XUtgRJRLVB+HYif?=
 =?iso-8859-1?Q?LULxEQLuVvaIxqLLKlV5R3g0bz00q/IsINRR9VQQnnEEgntHRIQFZNRTQE?=
 =?iso-8859-1?Q?S0YQmEK1UnuJM6JwPLioGuHbLjMpSELAKVzwGco5p4qsCFjD8FYP/gibVl?=
 =?iso-8859-1?Q?h908pVeQ+YKj1rcFz6n3epwHZe2krXdE1NMXIV7pp3Zs/sFBUjxvVtkyPA?=
 =?iso-8859-1?Q?XuTvg1Wpw8yE2CxoyHh1KOaco/qcBFiITkfelek2alpMCIz5vEy+ciTz1/?=
 =?iso-8859-1?Q?1eaBN93XVci8N6d0oTjFPJ1f1BRtSJuq+LZI5Mo+wMaeTkuxdbjjCEUWcK?=
 =?iso-8859-1?Q?+ZOuENFLvNvmvBiYOVddi9KYmMKLj0EGfVWtdkmiLHcMHJBse/Tm17wZbd?=
 =?iso-8859-1?Q?R6tI2rTQFYGouPaehcT9dSMoYJffm5MII7cJkR/bFvZH7NNOGb5uYMZX8K?=
 =?iso-8859-1?Q?XWYsZbTyjWHFaJbNerDTXSrYGQlga195PQlXE1igiNN6Pc5/pMbDbIIvQW?=
 =?iso-8859-1?Q?L40ddPvhgDZPHXJ1wi7NKCPQOOnOAPN2dALI1djsB20FPimliEkXr3VMgt?=
 =?iso-8859-1?Q?W+YnrJE3IIDsp+LB6ptKZVWpmuk7XvELz4VIl3porJA5NvMdD8pJCJ3mAO?=
 =?iso-8859-1?Q?tsyAhh/m415UqVjqxs0/+0ZcbGdlfFXzlaA6U+UzlvZKJ5zOnMdgns9ET9?=
 =?iso-8859-1?Q?d5xq/rGMPzQtNeAf8rUsMD6uJDEAfZF9ohvs5IjJPRmDDZtMSdHRRe4AyN?=
 =?iso-8859-1?Q?qkxyhtNN02osYYhHE6I=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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 32f5f94c-7850-43dc-ea5f-08ddd5ae9e62
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Aug 2025 12:33:30.3900
 (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: Wyh7+FPpt3br2bKn7aXmUxZsFJe7FS95a0HN4CuuDQkH0c/OTlR0v+BiFKrkVnrpk/vWOjCRq07CqAgkSllgF2nXHNh2BWejS7rZgEFQbTU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR03MB6425

Introduced two new helper functions: gic_is_valid_irq and
gic_is_shared_irq. The first function helps determine whether an IRQ
number is less than the number of lines supported by hardware. The
second function additionally checks if the IRQ number falls within the
SPI range. Also, updated the appropriate checks to use these new helper
functions.

The current checks for the real GIC are very similar to those for the
vGIC but serve a different purpose. For GIC-related code, the interrupt
numbers should be validated based on whether the hardware can operate
with such interrupts. On the other hand, for the vGIC, the indexes must
also be verified to ensure they are available for a specific domain. The
first reason for introducing these helper functions is to avoid
potential confusion with vGIC-related checks. The second reason is to
consolidate similar code into separate functions, which can be more
easily extended by additional conditions, e.g., when implementing
extended SPI interrupts.

The changes, which replace open-coded checks with the use of the new
helper functions, do not introduce any functional changes, as the helper
functions follow the current IRQ index verification logic.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>

---
Changes in V2:
- introduced this patch
---
 xen/arch/arm/gic.c             | 2 +-
 xen/arch/arm/include/asm/gic.h | 9 +++++++++
 xen/arch/arm/irq.c             | 2 +-
 3 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
index e80fe0ca24..eb0346a898 100644
--- a/xen/arch/arm/gic.c
+++ b/xen/arch/arm/gic.c
@@ -111,7 +111,7 @@ static void gic_set_irq_priority(struct irq_desc *desc,=
 unsigned int priority)
 void gic_route_irq_to_xen(struct irq_desc *desc, unsigned int priority)
 {
     ASSERT(priority <=3D 0xff);     /* Only 8 bits of priority */
-    ASSERT(desc->irq < gic_number_lines());/* Can't route interrupts that =
don't exist */
+    ASSERT(gic_is_valid_irq(desc->irq));/* Can't route interrupts that don=
't exist */
     ASSERT(test_bit(_IRQ_DISABLED, &desc->status));
     ASSERT(spin_is_locked(&desc->lock));
=20
diff --git a/xen/arch/arm/include/asm/gic.h b/xen/arch/arm/include/asm/gic.=
h
index 541f0eeb80..ac0b7b783e 100644
--- a/xen/arch/arm/include/asm/gic.h
+++ b/xen/arch/arm/include/asm/gic.h
@@ -306,6 +306,15 @@ extern void gic_dump_vgic_info(struct vcpu *v);
=20
 /* Number of interrupt lines */
 extern unsigned int gic_number_lines(void);
+static inline bool gic_is_valid_irq(unsigned int irq)
+{
+    return irq < gic_number_lines();
+}
+
+static inline bool gic_is_shared_irq(unsigned int irq)
+{
+    return (irq >=3D NR_LOCAL_IRQS && gic_is_valid_irq(irq));
+}
=20
 /* IRQ translation function for the device tree */
 int gic_irq_xlate(const u32 *intspec, unsigned int intsize,
diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
index 03fbb90c6c..12c70d02cc 100644
--- a/xen/arch/arm/irq.c
+++ b/xen/arch/arm/irq.c
@@ -415,7 +415,7 @@ err:
 bool is_assignable_irq(unsigned int irq)
 {
     /* For now, we can only route SPIs to the guest */
-    return (irq >=3D NR_LOCAL_IRQS) && (irq < gic_number_lines());
+    return gic_is_shared_irq(irq);
 }
=20
 /*
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 12:33:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 12:33:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072931.1435909 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujzoV-0002y8-GN; Thu, 07 Aug 2025 12:33:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072931.1435909; Thu, 07 Aug 2025 12:33:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujzoV-0002xq-AZ; Thu, 07 Aug 2025 12:33:43 +0000
Received: by outflank-mailman (input) for mailman id 1072931;
 Thu, 07 Aug 2025 12:33:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SGIa=2T=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1ujzoT-0001m4-T9
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 12:33:42 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bf692a2c-738a-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 14:33:40 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by DU5PR03MB10563.eurprd03.prod.outlook.com (2603:10a6:10:51b::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.13; Thu, 7 Aug
 2025 12:33:32 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9009.013; Thu, 7 Aug 2025
 12:33: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>
X-Inumbo-ID: bf692a2c-738a-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BNKtysRbipV/Qaa/yQM+tyhCdUQm7wgiq/GEdL1sn6wSnMM2utuzNSXT49scDW2FpKhOjgm7V6W7Tc19dhSdDVTw09DLrXdnq81bSi1J16qG9cbZqxonRGLKoO+KJM4uDXPBwKiEDAjY14D+JFwupT3E5dtsDisdfxNOxOaQFhahEPxWhUHzQHvzz3GjRf0R/RQHvNrubtZGeA9QG5V1HdhgjeShWS6Gj07VVM8NeZlafMyQtaH88o2BfUBagcZY3dUp4TuQ5HOju0zOfw34/aJHBehFL5aR0bRRiKYYcJCKYdMoKeQw4mk3bZN8X2a64hIzsW72xwGq9lMszO72nw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/Kst0HyankTjBF7MgL7OyGBFGTNSbo/6GNJ3IGOGwTQ=;
 b=icbQvXwiQqfOJLtUyvR5e8yCR1k8uw88aPWFNdZZs9u4sixrKrkRM2umErUq4JVd4/pAKQ/jJYuYAu7nfOTAR/qKWGOniv2pFDPGjfK9iLllgL+hOEmHgeYkZ4KWt5zRkjwNwk+5rlxn4Tk36qDTSzElun12zHwx/AvS4diV/v4XMQDRDraulwZMcxUB/2iyRuxR10vtEV/1rIEySfnI6FXPk7jzPtozFBE6kPYpXTiXTBPTnLtcUOZ+GcQUgfiS0ZsyOG5PWxhugJUHPOqIuxEA5fTWRPymQJuubH8hs8hDd5bc5TeoyBTsoPQ4LyVBsPerlH1H8S+P64GLJDBXOg==
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=/Kst0HyankTjBF7MgL7OyGBFGTNSbo/6GNJ3IGOGwTQ=;
 b=dj7doJP9wCPWOudAdOpI8p7BylS6UIf6CsQi3soFy8zaQXOwsZeXGWHypYbhq7h5jYygVh6h8EyKR4ZRDhGF57s/ZQSsYKegeAqSH81nA9UMkuDG13KuepxMkXZ7LJFUmk7hHNbkXZ25UR925HKaR/ZOs3XZ4WNpDfCdQKZLBgV18ds7bSKnIce7WXug1ICCnzVAo3NTpcSLPI392cQ/c0sZpnET5twjw0VzB6zRoHGQNNVfjHIonuhJYuu5CwgzEbRr8DgANnltH8yYZzA6ojNOaYFKH+ZYetmBQWBjubPlGKuvAKML4QjgQnUpuWPzZaqHckoVRfMUenCF2Y+Kcw==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Leonid Komarianskyi <Leonid_Komarianskyi@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 v2 05/10] xen/arm: gicv3: implement handling of GICv3.1 eSPI
Thread-Topic: [PATCH v2 05/10] xen/arm: gicv3: implement handling of GICv3.1
 eSPI
Thread-Index: AQHcB5d8tjpgMfEXfkClUacVz54EpQ==
Date: Thu, 7 Aug 2025 12:33:31 +0000
Message-ID:
 <2491bee7441f13a3c1a01fd77ece1749e7276352.1754568795.git.leonid_komarianskyi@epam.com>
References:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
In-Reply-To:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@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: GV2PR03MB8678:EE_|DU5PR03MB10563:EE_
x-ms-office365-filtering-correlation-id: 3246f53f-888d-498e-ae8b-08ddd5ae9f15
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?c4t+V3gH+cTynBEJQA+87Aitixn51++pNP8c5w0l643MBIM4ZTCLw6q0O5?=
 =?iso-8859-1?Q?AuiZXtWsehxt1inikR84I3d0K8ofZDKWesqmuKpIubtw3dfMzyoHLeAXUW?=
 =?iso-8859-1?Q?/wFXWLcBhhrt186ehFvs7EXpNq/fEhsl+ZxQRLdVNiAxP8LTHFfoucykxT?=
 =?iso-8859-1?Q?LCFB/ZH8EtXL9PZYBXYJkrgIQxcc/h9Z8o5mKiHDhyH3kHCge6jbW5fpau?=
 =?iso-8859-1?Q?YWjo8kt9eiTSY9bzjrzasRxy9uL0E2kyGqn59fi5pt7nZb1oPsq2C2mTmb?=
 =?iso-8859-1?Q?3hh+JbU/uyjSoAKKLcBnkUio+F09F1tm2kyQ7u3w7vUlxjygLTKLm3Mq+N?=
 =?iso-8859-1?Q?OeUK1158xdMlhn3cvOvJGVEeLOb3qdHf0gLgeVF0YV7YEFSKXrW0N2SxqP?=
 =?iso-8859-1?Q?VHc9xEd420yKL9+gfP26SNRKtAOBwtVj/rpZXddzzfzkC6DPC0f39skJLw?=
 =?iso-8859-1?Q?dkRCy5vthRy+//4BMvk5LF41bHOnvCjGbUdh5uDB9ND9aQTys9wzAXpCcO?=
 =?iso-8859-1?Q?mYZvEd8nYoWmlvL9jztm9cRO78d9EoiB19Ri1U/TOIe8soYSA26HjeoaCE?=
 =?iso-8859-1?Q?YjqrylyhfCvooO/AZtVf2zBRvEPdILTvHvGrzzmv6RaBdJN6tCjXazanbN?=
 =?iso-8859-1?Q?/p3PS2rrhdffuDOVvV+9zWz1e/1NRMh50XFN5sRFcbW1cmi5VWGHd8a1kd?=
 =?iso-8859-1?Q?9becohVSiK6H/i/6ToZhU94E75hB0bjep9MIujhjy7EqoofNGjPPseqWpW?=
 =?iso-8859-1?Q?RHamjgs2dlP2dCnoxiIaEN5vfH6EB3d7Tfamo9WR4Un4Vb/sfIZ13ATicP?=
 =?iso-8859-1?Q?9Mq0tUlyt/I9nH2HjcCxZep+eR30qgXOTKSgb6QLC+iZy6Yy93qJspHMpw?=
 =?iso-8859-1?Q?PmtwpW6JQcx79VBSnGHAhOsKAbkBdEgOznGR6mMf6UYhqFn+GCCamr74dE?=
 =?iso-8859-1?Q?zvlySHd/oyLXdWnoqcXuP5giTbEA2dsi2JJnp3ep09GLrKBHVPp/d35sjx?=
 =?iso-8859-1?Q?UldxktRe3OdWB8Yrpf+RYFbyS0EQWsMngwJmgIr5aKhYNXfoYwveoUvcqX?=
 =?iso-8859-1?Q?TPvx9UNAdGXGK9xm1xoLybyS9z7PU75JEGWdnGq+xDwVpwapfESdZ1rLlW?=
 =?iso-8859-1?Q?Rp1l+cvdoIU0hQ9ajROlsMznvTRFnV4yF1qNfcS1Myjdt895eFt/guVj3N?=
 =?iso-8859-1?Q?7cf94JIOTJkuPVGl0O6aiL0BnzxPJC03G9UxdxqfQNsZbMrgE4YJJjfH7M?=
 =?iso-8859-1?Q?k7W+AvVaX5iqBMLKx1x4md6J630vSDC0nQc2kpxviUmF0GuyEDxtkTXOrV?=
 =?iso-8859-1?Q?sTA+VIS+HQZyDtll9lefB1dIBwvqh3hxbEg/aOJmYyvsNlBy03zk8XYDiD?=
 =?iso-8859-1?Q?HXcdi1EoDrSW+3VuuT9uNcAJ1Xw5uPZe8EaioqbF/K7MHvJW4rfiwiJDSb?=
 =?iso-8859-1?Q?jcNq02sK5ax3jMKQOGuIY7BmQ1QwHxZjkBrllPyRnhXXIjCwiRliPxA1jt?=
 =?iso-8859-1?Q?YzZl6oCCbA/+N37Z7jPdUdaF2RkJUe2ZeCh8eGkPFkkw=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?CjamkyDkc8ZZxjxT6K/NCpsLO0SS+Q/wI1PYHuU7xcwZ4KXrFG5TEqqNMq?=
 =?iso-8859-1?Q?5YsedxGF6a0VVi2b7R5LYvjnqJo5Mwrv3E/CJsTXJNYBcFZlPBmPa9JJne?=
 =?iso-8859-1?Q?76J/AO2ysuUqxF/LtrmTaooF0ljYRx5W8gu+v6JLIZiIrUBD0RLGVnyhFy?=
 =?iso-8859-1?Q?ClSCr0HWk6I1iMQzb/hBCL9cV6wU9954MwHyZxf9WFgtRpnCx4ZCKIv4fg?=
 =?iso-8859-1?Q?VBZp8NJxFR8xMdQbp/LwGdRz+EgpTZXTuHAdzrPMmTr3gK80zg9FT5wUFm?=
 =?iso-8859-1?Q?PC5vZcBDU59Lw//+Q5YMLFvA+BjgErJAkXY29TgJenR4Ar3avI/C3eERwQ?=
 =?iso-8859-1?Q?ph1ruVorAWh/gTST0fq4K0vMsH6VUItuUqef+ym4qcoyOfWH4KIQskIwA8?=
 =?iso-8859-1?Q?uvYDGwyUjK3g/23LRvfzvri3vUb+aYFb024vNS0NZ+fuALDEdNAhVYqy7l?=
 =?iso-8859-1?Q?1Q0ghsi8DtGhuLV0IlrRN7Yr3Aei4UL7YJX4HNTzFYGhEEyG67cNV3w8YV?=
 =?iso-8859-1?Q?9LKT4LF5wzuCt7C341EKSi0nS8VezydMNx/VHNfgUVo1twuxQfJrbJ9zVb?=
 =?iso-8859-1?Q?nmJtYh9kjIg1Us5b27lbH1O20ps4qZ7aHTC8a9NGt/klOfeA7oGnJVCdwa?=
 =?iso-8859-1?Q?YQ5trie5i2YnTYC7MSsexolCd8rsqZYyV1m10zh1RoYjUQTNq9C3cKV/aG?=
 =?iso-8859-1?Q?nfLDLa5/NdzO6hrH2swTO+4bNmljMGRi57QGOENFRm62GlJaaAJeh4nGrK?=
 =?iso-8859-1?Q?IgllrNXow+fcEcF72SvlhYLWw8xpqwFQptgOq4wPRB0nDA4CZjoZoJlSk9?=
 =?iso-8859-1?Q?wSAQ2UtEPa42tqI27c4k9ssNCVi8i/D7s6/S92X9xsIkPi88P4cVbXzYOP?=
 =?iso-8859-1?Q?OiFsKyUbSe/8FoSTQMATPQibU5VblvMcAEARjZuwVSQDG3yEwD4iVzsrDY?=
 =?iso-8859-1?Q?EQQyYF0bh2QEZP3EIIypm5pjl8iFLN+XHLgT5i0pac5UmK4q8kR0e0pKaG?=
 =?iso-8859-1?Q?GDOw7bDVOn8CFq4JOqPqkJy0ev5XvmlYMXV1F5oVlc/rn4xURwCkB0PlSM?=
 =?iso-8859-1?Q?HOA7//Abh4rgiQvBdZTVQWOy3qoa89EFy6ys/2qqjdToSeQxHGcvacVxxQ?=
 =?iso-8859-1?Q?Yn33LaHxce+bgPAazq42/2QQ7IQ6fUWBFWW8gyynp/KGg+AZIeljTdKEPU?=
 =?iso-8859-1?Q?9sBR6xgCMqdrr9bccz/3hH2K6StKh37TOKabkYZTi5DO3kX5xWZg1Xxri+?=
 =?iso-8859-1?Q?MrhIFlNbhEvxAbIDRLhhaibILu+upRlpz0ry1DnvJlQViT/ow0UIFUsOUF?=
 =?iso-8859-1?Q?3gIlmVpQKmqb9TCBtt021IDxaN65lcrqd7Jy/DLGQI4/2uS8eBIMNGEPlG?=
 =?iso-8859-1?Q?toZass7OhNGccmcsG71pd0JFoY1e0mPZHxLQZGYJdSp0g5RGZMPoHeSAHS?=
 =?iso-8859-1?Q?UHw8Vdl2UGfyNwfhv0ZRsH0vZkCHkpv6Zz1rQ15zuEn/nazL17pj+EVrPi?=
 =?iso-8859-1?Q?3ZO0kF9kXD+l+jdXskwLQA5pYxvA1RCBRvKiwYBAih4/mT5Rg0aGTYpQKZ?=
 =?iso-8859-1?Q?1BDp6eN2IUs0/ZQjb8+aVVYJ6SXGzXsK9tyEEFC+xNItd2I374iYVfqGvU?=
 =?iso-8859-1?Q?/5m+pZk6FA1bm8a/pSuNkqqwrskFdG6oVXW2p1ZC24K2AsfSSCzHITA2sN?=
 =?iso-8859-1?Q?al3Msi2OlWsukv1nXJ4=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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3246f53f-888d-498e-ae8b-08ddd5ae9f15
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Aug 2025 12:33:31.6838
 (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: PT3pEVwh66/j8LhrC5hwqJ8VUaXoqD03bjQpnkBDcRQdnke3XqzbkhfQg/O7O5HNtC1hvTpiT9pH+GdLwDSM/xJic9NbJpB0S9nsfbzo28w=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU5PR03MB10563

Introduced appropriate register definitions, helper macros,
and initialization of required GICv3.1 distributor registers
to support eSPI. This type of interrupt is handled in the
same way as regular SPI interrupts, with the following
differences:

1) eSPIs can have up to 1024 interrupts, starting from the
beginning of the range, whereas regular SPIs use INTIDs from
32 to 1019, totaling 988 interrupts;
2) eSPIs start at INTID 4096, necessitating additional interrupt
index conversion during register operations.

In case if appropriate config is disabled, or GIC HW doesn't
support eSPI, the existing functionality will remain the same.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>

---
Changes in V2:
- move gic_number_espis function from
  [PATCH 08/10] xen/arm: vgic: add resource management for extended SPIs
  to use it in the newly introduced gic_is_valid_espi
- add gic_is_valid_espi which checks if IRQ number is in supported
  by HW eSPI range
- update gic_is_valid_irq conditions to allow operations with eSPIs
---
 xen/arch/arm/gic-v3.c                  | 73 ++++++++++++++++++++++++++
 xen/arch/arm/include/asm/gic.h         | 17 ++++++
 xen/arch/arm/include/asm/gic_v3_defs.h | 33 ++++++++++++
 3 files changed, 123 insertions(+)

diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
index 8fd78aba44..a0e8ee1a1e 100644
--- a/xen/arch/arm/gic-v3.c
+++ b/xen/arch/arm/gic-v3.c
@@ -485,6 +485,36 @@ static void __iomem *get_addr_by_offset(struct irq_des=
c *irqd, u32 offset)
         default:
             break;
         }
+#ifdef CONFIG_GICV3_ESPI
+    case ESPI_BASE_INTID ... ESPI_MAX_INTID:
+    {
+        u32 irq_index =3D ESPI_INTID2IDX(irqd->irq);
+
+        switch ( offset )
+        {
+        case GICD_ISENABLER:
+            return (GICD + GICD_ISENABLERnE + (irq_index / 32) * 4);
+        case GICD_ICENABLER:
+            return (GICD + GICD_ICENABLERnE + (irq_index / 32) * 4);
+        case GICD_ISPENDR:
+            return (GICD + GICD_ISPENDRnE + (irq_index / 32) * 4);
+        case GICD_ICPENDR:
+            return (GICD + GICD_ICPENDRnE + (irq_index / 32) * 4);
+        case GICD_ISACTIVER:
+            return (GICD + GICD_ISACTIVERnE + (irq_index / 32) * 4);
+        case GICD_ICACTIVER:
+            return (GICD + GICD_ICACTIVERnE + (irq_index / 32) * 4);
+        case GICD_ICFGR:
+            return (GICD + GICD_ICFGRnE + (irq_index / 16) * 4);
+        case GICD_IROUTER:
+            return (GICD + GICD_IROUTERnE + irq_index * 8);
+        case GICD_IPRIORITYR:
+            return (GICD + GICD_IPRIORITYRnE + irq_index);
+        default:
+            break;
+        }
+    }
+#endif
     default:
         break;
     }
@@ -645,6 +675,40 @@ static void gicv3_set_irq_priority(struct irq_desc *de=
sc,
     spin_unlock(&gicv3.lock);
 }
=20
+#ifdef CONFIG_GICV3_ESPI
+unsigned int gic_number_espis(void)
+{
+    return gic_hw_ops->info->nr_espi;
+}
+
+static void gicv3_dist_espi_common_init(uint32_t type)
+{
+    unsigned int espi_nr;
+    int i;
+
+    espi_nr =3D min(1024U, GICD_TYPER_ESPIS_NUM(type));
+    gicv3_info.nr_espi =3D espi_nr;
+    /* The GIC HW doesn't support eSPI, so we can leave from here */
+    if ( gicv3_info.nr_espi =3D=3D 0 )
+        return;
+
+    for ( i =3D 0; i < espi_nr; i +=3D 16 )
+        writel_relaxed(0, GICD + GICD_ICFGRnE + (i / 16) * 4);
+
+    for ( i =3D 0; i < espi_nr; i +=3D 4 )
+        writel_relaxed(GIC_PRI_IRQ_ALL, GICD + GICD_IPRIORITYRnE + (i / 4)=
 * 4);
+
+    for ( i =3D 0; i < espi_nr; i +=3D 32 )
+    {
+        writel_relaxed(0xffffffffU, GICD + GICD_ICENABLERnE + (i / 32) * 4=
);
+        writel_relaxed(0xffffffffU, GICD + GICD_ICACTIVERnE + (i / 32) * 4=
);
+    }
+
+    for ( i =3D 0; i < espi_nr; i +=3D 32 )
+        writel_relaxed(GENMASK(31, 0), GICD + GICD_IGROUPRnE + (i / 32) * =
4);
+}
+#endif
+
 static void __init gicv3_dist_init(void)
 {
     uint32_t type;
@@ -690,6 +754,10 @@ static void __init gicv3_dist_init(void)
     for ( i =3D NR_GIC_LOCAL_IRQS; i < nr_lines; i +=3D 32 )
         writel_relaxed(GENMASK(31, 0), GICD + GICD_IGROUPR + (i / 32) * 4)=
;
=20
+#ifdef CONFIG_GICV3_ESPI
+    gicv3_dist_espi_common_init(type);
+#endif
+
     gicv3_dist_wait_for_rwp();
=20
     /* Turn on the distributor */
@@ -703,6 +771,11 @@ static void __init gicv3_dist_init(void)
=20
     for ( i =3D NR_GIC_LOCAL_IRQS; i < nr_lines; i++ )
         writeq_relaxed_non_atomic(affinity, GICD + GICD_IROUTER + i * 8);
+
+#ifdef CONFIG_GICV3_ESPI
+    for ( i =3D 0; i < gicv3_info.nr_espi; i++ )
+        writeq_relaxed_non_atomic(affinity, GICD + GICD_IROUTERnE + i * 8)=
;
+#endif
 }
=20
 static int gicv3_enable_redist(void)
diff --git a/xen/arch/arm/include/asm/gic.h b/xen/arch/arm/include/asm/gic.=
h
index ac0b7b783e..2f570abf70 100644
--- a/xen/arch/arm/include/asm/gic.h
+++ b/xen/arch/arm/include/asm/gic.h
@@ -306,8 +306,21 @@ extern void gic_dump_vgic_info(struct vcpu *v);
=20
 /* Number of interrupt lines */
 extern unsigned int gic_number_lines(void);
+#ifdef CONFIG_GICV3_ESPI
+extern unsigned int gic_number_espis(void);
+
+static inline bool gic_is_valid_espi(unsigned int irq)
+{
+    return (irq >=3D ESPI_BASE_INTID && irq < ESPI_IDX2INTID(gic_number_es=
pis()));
+}
+#endif
+
 static inline bool gic_is_valid_irq(unsigned int irq)
 {
+#ifdef CONFIG_GICV3_ESPI
+    if ( gic_is_valid_espi(irq) )
+        return true;
+#endif
     return irq < gic_number_lines();
 }
=20
@@ -325,6 +338,10 @@ struct gic_info {
     enum gic_version hw_version;
     /* Number of GIC lines supported */
     unsigned int nr_lines;
+#ifdef CONFIG_GICV3_ESPI
+    /* Number of GIC eSPI supported */
+    unsigned int nr_espi;
+#endif
     /* Number of LR registers */
     uint8_t nr_lrs;
     /* Maintenance irq number */
diff --git a/xen/arch/arm/include/asm/gic_v3_defs.h b/xen/arch/arm/include/=
asm/gic_v3_defs.h
index 2af093e774..7f769b38e3 100644
--- a/xen/arch/arm/include/asm/gic_v3_defs.h
+++ b/xen/arch/arm/include/asm/gic_v3_defs.h
@@ -37,6 +37,39 @@
 #define GICD_IROUTER1019             (0x7FD8)
 #define GICD_PIDR2                   (0xFFE8)
=20
+#ifdef CONFIG_GICV3_ESPI
+/* Additional registers for GICv3.1 */
+#define GICD_IGROUPRnE               (0x1000)
+#define GICD_IGROUPRnEN              (0x107C)
+#define GICD_ISENABLERnE             (0x1200)
+#define GICD_ISENABLERnEN            (0x127C)
+#define GICD_ICENABLERnE             (0x1400)
+#define GICD_ICENABLERnEN            (0x147C)
+#define GICD_ISPENDRnE               (0x1600)
+#define GICD_ISPENDRnEN              (0x167C)
+#define GICD_ICPENDRnE               (0x1800)
+#define GICD_ICPENDRnEN              (0x187C)
+#define GICD_ISACTIVERnE             (0x1A00)
+#define GICD_ISACTIVERnEN            (0x1A7C)
+#define GICD_ICACTIVERnE             (0x1C00)
+#define GICD_ICACTIVERnEN            (0x1C7C)
+#define GICD_IPRIORITYRnE            (0x2000)
+#define GICD_IPRIORITYRnEN           (0x23FC)
+#define GICD_ICFGRnE                 (0x3000)
+#define GICD_ICFGRnEN                (0x30FC)
+#define GICD_IROUTERnE               (0x8000)
+#define GICD_IROUTERnEN              (0x9FFC)
+
+#define GICD_TYPER_ESPI_SHIFT        8
+#define GICD_TYPER_ESPI_RANGE_SHIFT  27
+#define GICD_TYPER_ESPI_RANGE_MASK   (0x1F)
+#define GICD_TYPER_ESPI              (1U << GICD_TYPER_ESPI_SHIFT)
+#define GICD_TYPER_ESPI_RANGE(typer) ((((typer) & GICD_TYPER_ESPI_RANGE_MA=
SK) + 1) * 32)
+#define GICD_TYPER_ESPIS_NUM(typer)    \
+        (((typer) & GICD_TYPER_ESPI) ? \
+        GICD_TYPER_ESPI_RANGE((typer) >> GICD_TYPER_ESPI_RANGE_SHIFT) : 0)
+#endif
+
 /* Common between GICD_PIDR2 and GICR_PIDR2 */
 #define GIC_PIDR2_ARCH_MASK         (0xf0)
 #define GIC_PIDR2_ARCH_GICv3        (0x30)
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 12:33:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 12:33:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072932.1435919 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujzoX-0003GL-QY; Thu, 07 Aug 2025 12:33:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072932.1435919; Thu, 07 Aug 2025 12:33: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 1ujzoX-0003GA-MQ; Thu, 07 Aug 2025 12:33:45 +0000
Received: by outflank-mailman (input) for mailman id 1072932;
 Thu, 07 Aug 2025 12:33:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SGIa=2T=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1ujzoV-0001m4-AQ
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 12:33:43 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c056e485-738a-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 14:33:41 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by DU5PR03MB10563.eurprd03.prod.outlook.com (2603:10a6:10:51b::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.13; Thu, 7 Aug
 2025 12:33:33 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9009.013; Thu, 7 Aug 2025
 12:33:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c056e485-738a-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xC2vDWUaHfALOwlGbT5KRcevEK5nLtjSGsWbvPRbtZe0KmeUftXqL3lN8Km4KxKK398FVhIxIvypUbz8U+6TwLOCVfLL2xbeBx1c2Js2fNUmwvvlMDcqRVYkZ2tMvhRsaf2nB5yCiOVnq3shIxH3xz8z8KSQ2w6zslUceYPLTyffGVvk2EIoR+6BVbCP5bS6gD7PETyuODxeJz++9OUq5tqEBxR237ub7NgC2RFa654AxOGfGMJI4fb01nkh6yX3jhU0tV11yujeeta3GdKt4mmCjs3IouMz7Fbjfb3kC9tqaQDSeYspboq3olyhHTH6D8kWH6iBT3LGwrQTsG0M/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=jLe33G49P2ADolQsI1kIjFccVLeZ82OqzdLsO4esClk=;
 b=qOgmZYlvRzrfWjZI1jDX55JPVa4QIj/VN25Y8LhgxHfyL2GLUA13oe8YKfFwF6E6+eA+zAhQZ6d9OfPNIuTZk+fc7GkyBGXAQuTQQDMewRCtFByeGZQUI9P93FcO53KVvdSLS+qaqBpNH++nNGCAK11CqSKtSAUrC9I92L632bw6zSmdrPhRsHo/m+TvqPh98najv7aoyDG/9X6LZsidQgP/scOrsb8uQVYSLOWonqk6sVoaHDzk/Cj2G04LcT8w7NhO4kRRptU7/VHkTkSYef+HEshq664R+Ekt45b2lqAW+wL1nLewam6vyhoQlO4fowibCnaWXR9izuPl65HXng==
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=jLe33G49P2ADolQsI1kIjFccVLeZ82OqzdLsO4esClk=;
 b=ble5tXSV0uR/1V6H0hSKSjIMs/yxdV7h0F99/W2IUa5sXkM1BtPX7byL4uaKii0Nk+FQ4qt2+nfUzUk6gz4+yQ1Ec4yEhIfJ71k3ysL81W68NQF9hmponyIj65vvYKF3V2okvKpKrXVl3Ubu/6eQohIo9h4XPCMsfQblTCk9t8xzZrTIPtVmkmQwZ9SQ/99eSSYJwFZHFGSdG6y1Ao9020uLzlnSE/ala9+q5/MfJCyCSY+PyF0BjSW4Yx/8VZxmTFhtxmaJ7QALDas8DOkJA1e5dIYAH6ZVSyui9li59gkAih20hT2dOiN+vElCPfc9w/8ihnuqWNoHjiEaEbA7xw==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Leonid Komarianskyi <Leonid_Komarianskyi@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 v2 07/10] xen/arm: gicv3: modify ICH_LR_PHYSICAL_MASK to allow
 eSPI processing
Thread-Topic: [PATCH v2 07/10] xen/arm: gicv3: modify ICH_LR_PHYSICAL_MASK to
 allow eSPI processing
Thread-Index: AQHcB5d8lU0HcDjyxEOVNNx+lAhf9w==
Date: Thu, 7 Aug 2025 12:33:32 +0000
Message-ID:
 <c712d9187bb0a19ded1a8b28d2f9ba93815708a9.1754568795.git.leonid_komarianskyi@epam.com>
References:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
In-Reply-To:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@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: GV2PR03MB8678:EE_|DU5PR03MB10563:EE_
x-ms-office365-filtering-correlation-id: 2ed7666f-aa19-407d-4661-08ddd5ae9f89
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?1vPB055a0Jn//lyLdjbq3S9C6HDJdOYtBs4TW0FXliu1O8jxUyaypMuo+V?=
 =?iso-8859-1?Q?bWbp7aCydgNAOq3CgbCFvBJCKK6RQhmlFQraWDveM9F0dv8aDzo901vNYJ?=
 =?iso-8859-1?Q?TyJHUwLg3LNMLursAF45+S6tB271Kwiw+ffuVmPi8XquhHbqnprSiXMmLV?=
 =?iso-8859-1?Q?MUiveAM1JHZR6QsVvPq2pRWF2F/lXcZc+Qfo9iKHqrayQpOjb2m1zrm2QA?=
 =?iso-8859-1?Q?RpIwcbK2sA7nlCzdigXkEyUn3Vj13QCSLBD4SmxOTdqt2D596pNZ6SzWM5?=
 =?iso-8859-1?Q?KT+B7OLiHck1+j4J3XQ7oBDKieymruNxxc/T1SqM6rbRZgG+0eWgwmstLN?=
 =?iso-8859-1?Q?Frn0+4I8TH7Pa5yZ55/+7EifEoOsMjItxmPjD7sZD5M7n0lixT/+Xqxtpa?=
 =?iso-8859-1?Q?KO5g/KosLg0VosH5/Yq91nY7pEocVQajDgkkVe+JwIpmvN/Xf45ht5mrku?=
 =?iso-8859-1?Q?Ln+R1Z0iqMkS69FhC1gIhIsbPwnFNPqScrEh8Bgf50QRyTUnbcLBTXFgDu?=
 =?iso-8859-1?Q?4dZMkQ20zh8HY5ITeKpEwUhkApY2w6lBMTydtAvNpAFK7WNFeJ26kQkx6s?=
 =?iso-8859-1?Q?Egtfrzzzk2qaUV4JtFb5tkaefFVhmLO4VhlyVOBVZCp+BN3yKjkeyaYFpO?=
 =?iso-8859-1?Q?vCJCMPfayMUgKqeyKXIp43tWxn5OpusveVV4M+C6OoW9wyNhune3PgPLNe?=
 =?iso-8859-1?Q?YQygqTASivPWAB1Ly1gUt98ZKUv/p7ovOlSJ/CSKI5iqyLqaXSiof1Vz7b?=
 =?iso-8859-1?Q?RtNXDpn5RiZm/mG8cCjrJpZYj8fTIKaCokfeedHtc9BLwqkT0eyRhLxLvf?=
 =?iso-8859-1?Q?sC2EfTonuqQlPLvXTN1jW6ohkFfO5FUKyiihwH/Ppr3mJTfjOfdQ4LcKsO?=
 =?iso-8859-1?Q?xiPZPZiOlek9CtS2JAJsB2WJYkk9cXcsIgD8SX7XUBYr7mI6depsFy40hl?=
 =?iso-8859-1?Q?YxQb8Tuyd+mDiphy/mSF3AC0z3HUMd+mlR6uAbpis8ebgjzA7fgWugwc+M?=
 =?iso-8859-1?Q?lZQppcQCqog+z9D3Fo/epfuEa+xlfe34EtgldnVzsGONf8d/QhltDyHDkS?=
 =?iso-8859-1?Q?UCPNsQHpo47COYLT/SFT45+gZy7cFCpMy2uzEtWWfCPIKg41QX30i2VDBs?=
 =?iso-8859-1?Q?gQ+Irvg3EsGl9hiuABaR/Pnq2GnlX4PmC3qu9IQq2+KsG2f34wIJoE7aiT?=
 =?iso-8859-1?Q?uj2RsHTlD/f9KSFrXa6dMEEYimxmMGWK75CNLhLK41UKSY52/ezz20cs4N?=
 =?iso-8859-1?Q?PbISVp2brtbWQKUO1Z8NzXggDup9topOPHKXW0eVc1FtlB09/tlpkR1+VZ?=
 =?iso-8859-1?Q?clSGU5WZarUe1Un9mAtkARgTNYZ+uNvGsDweZsUs7tgcmCPr9n0AHyss5i?=
 =?iso-8859-1?Q?MalIak8DgS4TjAaUx/qT23SmuF7WVQt2bBTDg5uhgZfl71cRUp0DLEjmNN?=
 =?iso-8859-1?Q?DCm0Yo5DnBnYbu4EwV45yq27JJa3z9gWA7iD6HPeDQwrQ1ha11BfAboFa9?=
 =?iso-8859-1?Q?9LvK9pLgNw3oYhBUmSz4GV2f4LQLNzZdIHYCYpn0gNow=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?z2jz0QWRQePtZuj/9PrF+Jz0ddXH+W33xyuLKvv8+P2Nbn85EMYLs+V7OK?=
 =?iso-8859-1?Q?+CAM6AeAMVS8QqwJtijQqA3uXIMmo1PctlYf5CR3EEP2NEt+EvvUIAfpn1?=
 =?iso-8859-1?Q?Ka1TO/yyJvAvnZDM3bfHSn6idB4fVipyaDEmOfRffbo70ngp+W28Vf3Kzd?=
 =?iso-8859-1?Q?gZelEfIyaVHxUaMdXi9XarNAHaJrOBInow0xK+e/S45i+LkLs+fBmn1os9?=
 =?iso-8859-1?Q?QVY6AzTyHr0/wHyO9fqdPgkzLlJloEYjE5+j2ksPkegciR6q+R0feNipo+?=
 =?iso-8859-1?Q?ecBxs9uCxu3G4DVfyN3WfpMzTlFhHvFdYcK6zjdL07CO7G2BJCkihrV3Q2?=
 =?iso-8859-1?Q?7TeM+IWlz9RyUlk3KrMIXNX0LXCOof46B4wKWi/SFzDZi3OdybJAUILlXu?=
 =?iso-8859-1?Q?MjlfVFoLp8DzD14RmfZKWy6MkerIiFAOnXAo2cXXyRYuJQaqTlCbJLg7Hr?=
 =?iso-8859-1?Q?DhScauX/Sf+U12obYZK1bNWjcDED4cPd7J88GBJ8YQFUd2tgYn2rzLD1Dh?=
 =?iso-8859-1?Q?F72bbeICyA2ECupG4Sn357aYIR/V0gBjyZ3M2D2VjbnFilZ9XA/+D8K5pS?=
 =?iso-8859-1?Q?VIIqhsnWke9Ex3yvPIJaYdrYmIIMdI6ftccNhku+tjlxaZW0sockIGa/ZU?=
 =?iso-8859-1?Q?Wi8HHlYdcaBnIER9hLBUhxyHGTvkZqzm9kQBlyfizgiAvdaDX7b8wgQNLj?=
 =?iso-8859-1?Q?OHzAP+/1F5btg0+J0t4sNTYa2B30VuA3NG22o0PxIaSRUs/ulg/FkFm1s/?=
 =?iso-8859-1?Q?bB4UgRG50ag8NH5oMIp0PSrIcHXZ7tK3ngi1fZqij/kUMgC8w4pKJEhryC?=
 =?iso-8859-1?Q?TAcx004jVswAj7ZqOZ3K1oTgjUBgLJmWBkPrsMyIb0R2x6MkHDxkmDyuHc?=
 =?iso-8859-1?Q?jzjXHb8+ogzJlCKB7KNVEMRoWwcRsIbfhCAhX5uaandxwwZO0OSfQyww1L?=
 =?iso-8859-1?Q?P9AFR6nv/Lf3qaxwsTP8eybbJSGStdja0wb31J57BWVlYXLk8O4Fp+lI/z?=
 =?iso-8859-1?Q?fAvmsiVpE8VZVBoLc8z4rdttdocwqLFYIV2f6LmjdoUgGselTVxSeR9KcX?=
 =?iso-8859-1?Q?HEjdgniAi3qxh0Qc+KgojpVOh81rnm/Tw1D3cGkFRLdyWHeNnRwtFLuLL2?=
 =?iso-8859-1?Q?ZTSzC2F7uyIuqyeTgwdnYt81Ok7ZxYaFdbEQxVTX20Ae2v9cEFisjJZieG?=
 =?iso-8859-1?Q?CASrwtWMz7dT96Ft8KoadaSiUhOMDm20Fj1tReRRHQEvGihe0gJfTtaQ9j?=
 =?iso-8859-1?Q?6lH5PPAAgLVRwhsn8HjeQvWClwalLSIAm1QezMYqB41HkRICvu3TlcF3RF?=
 =?iso-8859-1?Q?ADopuB6TpMCasA1fEbRKOsfbeEFWKddvdTnasDzcjTH9+IC5eWYK2fK918?=
 =?iso-8859-1?Q?311iwcN4FoM+iUyVBW7a2NaP9cGy/sKolvkIUQR+jHHsJjTaUiVa4qW5Fm?=
 =?iso-8859-1?Q?e0k1AhCFUvzKwFO5vj82Inj/asyAmbRLoU4K/ta7qWjchvppD87/5J53nk?=
 =?iso-8859-1?Q?S9wnJD7D67JbADiJoUTn6qIDkzRG6K2hadWURuaNvHK9JuTmkIRr4vTK5+?=
 =?iso-8859-1?Q?lgkVnwEpCGzAadZPmbvUJEQNqdBCgYFlP1zjqMnDLNvYRhyMClkYq14gtG?=
 =?iso-8859-1?Q?hS2ktl8WzMe2qk3/DGbyA6cisYkmDCvXd9mmcCpIKrkWUX7SrHMU55y4e8?=
 =?iso-8859-1?Q?f+Rn8CmVinXHexoQjo0=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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2ed7666f-aa19-407d-4661-08ddd5ae9f89
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Aug 2025 12:33:32.4744
 (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: xvu65t43ew4Vnh45BdgZlmSKUPLu9z3E3oQNdX08QRoFlaW/vTzwUOIhJrGGPw38QPzxc2l8AohBx7ABrFn7cx8GqY2/xfCYFicBTx80HqU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU5PR03MB10563

To properly deactivate guest interrupts and allow them to be retriggered
after the initial trigger, the LR needs to be updated. The current
implementation ignores interrupts outside the range specified by the mask
0x3FF, which only covers IRQ numbers up to 1023. To enable processing of
eSPI interrupts, this patch updates the mask to 0x13FF.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>

---
Changes in V2:
- remove unnecessary CONFIG_GICV3_ESPI ifdef guard
---
 xen/arch/arm/include/asm/gic_v3_defs.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/arm/include/asm/gic_v3_defs.h b/xen/arch/arm/include/=
asm/gic_v3_defs.h
index 7f769b38e3..4f27708a70 100644
--- a/xen/arch/arm/include/asm/gic_v3_defs.h
+++ b/xen/arch/arm/include/asm/gic_v3_defs.h
@@ -206,7 +206,7 @@
 #define ICH_LR_VIRTUAL_SHIFT         0
 #define ICH_LR_CPUID_MASK            0x7
 #define ICH_LR_CPUID_SHIFT           10
-#define ICH_LR_PHYSICAL_MASK         0x3ff
+#define ICH_LR_PHYSICAL_MASK         0x13ff
 #define ICH_LR_PHYSICAL_SHIFT        32
 #define ICH_LR_STATE_MASK            0x3
 #define ICH_LR_STATE_SHIFT           62
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 12:33:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 12:33:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072933.1435922 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujzoY-0003JJ-6R; Thu, 07 Aug 2025 12:33:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072933.1435922; Thu, 07 Aug 2025 12:33: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 1ujzoY-0003Ib-0J; Thu, 07 Aug 2025 12:33:46 +0000
Received: by outflank-mailman (input) for mailman id 1072933;
 Thu, 07 Aug 2025 12:33:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SGIa=2T=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1ujzoV-0002xP-D6
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 12:33:43 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c085f846-738a-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 14:33:42 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by DU5PR03MB10563.eurprd03.prod.outlook.com (2603:10a6:10:51b::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.13; Thu, 7 Aug
 2025 12:33:33 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9009.013; Thu, 7 Aug 2025
 12:33:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c085f846-738a-11f0-a324-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qXigvCrHu7/zvi5d5U5Vv8rg0X35/CukEm8lAJh8tebdW6XVx2Pd+6zJEwPgwQcJNuWvuqi9ID1rbFyIgcOAOKmSGNIBWOerqwRFKGI/7zxdT+1FcprQfHmHChUINzbYCtm73Bi0Fu4X8t5q8HX8wqaZVXd7/vOVAOM/sc+WUf1kVCk0fP0bqtnw05KUfr165SW+ExZw2PuIBS+Axy+R6l1lUwFFQWSIOEvqUQfc/58mHd3yYZhYvf/QUH/VkeZWmY1yXQHzCoJrRQUnKAsdwL3G5DncZ055gYTd6QU+ltq963TDqCUjeo7HVA8OMV+LLjERpg2/15/9GOa7wchJtA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=x6mmEA9bHBX6D34Is5x+px4HirCrkSiiECL5U3Jl6Vc=;
 b=u8nSUOESQJFzuH5064QYk3OQCrecLhvjEaAFJvHvob4ZF4piiQrj5qOFyMrMG4FKjbTNEyvnp7gPQIQpiG5azNRcYiAkZQOzpkFwiPdvaBbMvgTndEoCyaxO4zIyFGHC5y4AdJ1dcmxDcNrnO5E0h7W/CHTslISTucsUlgAd1fmKFvZgzjcJDOofja6IrTBIoOL1b3Y+pWPcILKD6wAW6ZvRms9qaaPOl7iFbDsNHYLlfWD07trxVhe7ZPqnO5JjjTvpz4mEPUBlRvdEr6lBFqy13+VRSmGvH86ApKElsualSBbHxJzee7y+k1MXBa4G1S8pLXKbnN52aaDX6PjisA==
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=x6mmEA9bHBX6D34Is5x+px4HirCrkSiiECL5U3Jl6Vc=;
 b=LSxWPr1Cr9QhvQ0pwxF4K+7MpUolp22ZkyanOzNyrlizHiAkkka6hI7sGnoxPhTVdgMYksYx2N9cVyJOpC3myG6NuX42jcY0x4xr+hUSst/HoJpA9ThLvstDEvLIEms8mpwn5s9ppR+jdGJeTs139hSS8rc9hvno/t6/llpRxpGUp8gv409EmFiC0DJQ+GPxTSB3LuPodMTvWmrIH7VHcfXq9rF2jLOuVFiCeTgjiPBl4ZxZp8ZgksMvlURwGjNkAk2yA2tcQKAJZTWSmxhkiJ1vHJdnCvAOaf7lkrWU+kGHny3j03Jt0IR+KONfeaiObU9mMBI1qsMC3a1fP5LibA==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Leonid Komarianskyi <Leonid_Komarianskyi@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 v2 06/10] xen/arm/irq: allow eSPI processing in the do_IRQ
 function
Thread-Topic: [PATCH v2 06/10] xen/arm/irq: allow eSPI processing in the
 do_IRQ function
Thread-Index: AQHcB5d86f8hb7ZHKUC0loGFpjDKxw==
Date: Thu, 7 Aug 2025 12:33:32 +0000
Message-ID:
 <3a434b2581a7b6dbed950773f1a471515c68c406.1754568795.git.leonid_komarianskyi@epam.com>
References:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
In-Reply-To:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@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: GV2PR03MB8678:EE_|DU5PR03MB10563:EE_
x-ms-office365-filtering-correlation-id: de084be2-96be-469c-b9f2-08ddd5ae9f4a
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?kw1cKDIDyLZtCxUqU09roxlNt3MDIIjSOzOCe7G+FpdG+sZM6e3jd/Xhdb?=
 =?iso-8859-1?Q?qAJIz5PIeccRk+KbcZtDZ2wQul2fFuUeW++lrf9hzvwz1DllUWCpc81Yq2?=
 =?iso-8859-1?Q?RRQxHyHa06152ayJItFJKdHE7MjEBgUgIJ4uHTXxELOihJKTmSU7CrPK/N?=
 =?iso-8859-1?Q?whlhf9i2z8Mh8d9ci2KzJwafGHJXsc39cICpn4Ytw5DhWadz4hIIuUcAPG?=
 =?iso-8859-1?Q?P7IVAl/CiItIujJWQNr118er+sKIMEcvqK72yPse/er55ajGX8PGqmBmEM?=
 =?iso-8859-1?Q?MuOHSGzidZV6kJ8khjjpu8H3m5UynkY7vhSQHu+XQ+vrRpL2fptrhNGODa?=
 =?iso-8859-1?Q?aj6llkasDJBrkD2Rq7GWI5woaHjY/L5m7Yi+L9CbuslFeoLfYlzT2Sh+91?=
 =?iso-8859-1?Q?0WWLh4d5Djs8b6mOepEqDUtOG1C0gj037doh2TfTrcB1OrRQwjJTmR97Ll?=
 =?iso-8859-1?Q?J+iCKySRHJuNR8GH7P8DCZVLj5hHxtpNe1uBqUH1E9ppF2i0IpgS2n3Q1Y?=
 =?iso-8859-1?Q?B0CBs5Jfqou4Nl9ts9y5Y0l+Ee3z+inaw627uB5MYy4LUktzee51MSpL/T?=
 =?iso-8859-1?Q?6zURE7zikMJmkzn4H0YWmp/o6NMoEdIpFYNvUJqw2CVTf02CnLSa3RaBrt?=
 =?iso-8859-1?Q?p0qSdTPBiCHe83pZ5FrE7ICAGLqxUDnj2tJlAn5XWW+FtHbAKEVUNUH11i?=
 =?iso-8859-1?Q?VTKplnfzl4Gs1gVqciAg8rD0ylmncJ5TOYDJ6ZE4IpRrQUzGikDKf6gc9j?=
 =?iso-8859-1?Q?An5Mo0eyRhSOLGp6mxW2RlpF11w/GTL4Wvhq26uXqjusJ3VWLo+FafD18D?=
 =?iso-8859-1?Q?qs4IpygrvZtQnsvT7IsttVLSddVv8lyngdtTKI2aXZxbstB0c/V3FMISna?=
 =?iso-8859-1?Q?NUdB89ZzsuyL5Yt/TZMXQUkj7IfXzTfZETs4KX6jE/XC2D687NqOXP1/Vx?=
 =?iso-8859-1?Q?jgHe4wyp6eObsr9A3ukNra93JvsJEcSLhAgHXoTbM2R6OVJfIq0i5QcpEG?=
 =?iso-8859-1?Q?uqylLdIOYqIVK2tbhq4HN2CO7ladOKBRD7xtBBPnYV2TOn/h+wENX4hrIr?=
 =?iso-8859-1?Q?g6IsFSNBRSSdZap9c87KV1k5vtL8EPZmCzBuyxBWjHqQ8VNX+8iQNZQ7oQ?=
 =?iso-8859-1?Q?Gg8NMgxkew/lDsDQnfYyoE6IJ47e31xzTQJyerUFxSrfZ3/c62urw3tOCj?=
 =?iso-8859-1?Q?4bm9zacvhE/9LGaaAChoT/TSR52bHZ4Ur1JTBBlBmrta0e6JF/uorW0RHl?=
 =?iso-8859-1?Q?6HJ9y7dCr7MmVFWbInIO5UqJmCZP226IkWmQmvJUb4DMSCMV+CfoSZI5uj?=
 =?iso-8859-1?Q?xWtsEkYZHo/6eMzLBlKt0DDU1unuq68ARSH2Euv1xggh/jFBoihL/Vlw1C?=
 =?iso-8859-1?Q?qgbIepPSROL9U68LLcFhPd1Hmx/Wln/ysTHMbPL9WmydW79+sqXy/bw3Zw?=
 =?iso-8859-1?Q?ukmK61VA5rn8vxMo5lytlT7Odx8GBALPNbbSuE5maq8drbupfoVpM3PGk+?=
 =?iso-8859-1?Q?209YVe59OT3IHaeiXwt60RliaqmHVOp6Wu1QLm3IxsLQ=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?f/XWOe/jH36GJez8MQMs8bhbR3eL/fJl+yXSI153A/AAaE3alKnV+WaPI+?=
 =?iso-8859-1?Q?Utuj89irr+h+N8sJtwpP78uRksElPoS9ufMsp+QRqUG24NGwI9mVXjxFbq?=
 =?iso-8859-1?Q?3WJg14DiRunNrC7HLQOGrXFHg5gdXLv6IaOuR+geUVMZgxfJLmW0ZTpQ1N?=
 =?iso-8859-1?Q?xPg2z2nhnivH9bTsnhmK4XXohGyvtd1d4eoElkug0ymWHqeLAjwrZv/Qpy?=
 =?iso-8859-1?Q?AwS/NdkDkJXkbhwrW/yPocW2vREe129fO912EyX0i3dDEEIMmg6gqNIG75?=
 =?iso-8859-1?Q?twcGNn1hGV6iDzTtmR/gGd+/GYIkehakJDkjTtcmliNfymJgX5sJYBwlm6?=
 =?iso-8859-1?Q?ueElC+HnuGcclxxwrD2fILFKjuen5ozsMg4KHcDkg8vRksFVj2QgsOh48v?=
 =?iso-8859-1?Q?IdHUPTP3T64s1PecW2F/a04nUy8LEIU6qYCf9nEHuE/KQK2wcul7Jy39fa?=
 =?iso-8859-1?Q?H9L2MOP68lki412VrZycPx1i+FuJaL5vX5LPgGfaNcAhXvY6wK6B8qDKAc?=
 =?iso-8859-1?Q?VpfJXHCdohLBFBag6RGAacLk9dTq2nE1XZHHrJ+DibrNbkg5OLC5wRvyFZ?=
 =?iso-8859-1?Q?0wLQbxEppkNzcHqXxRhs2dVcx8eFIqlBWhtJBxYzSfE3kbRgdKhLjEWNO7?=
 =?iso-8859-1?Q?YmR+7VwW4BEdjloOvqjPmW9nZzcAtG1U+SPgQ4IThobPCzxaZmOrwvSeTj?=
 =?iso-8859-1?Q?uZHE3+rVHtMbIIWOI+/Jk5E4MwYtF/Nb10VGig4rA2TKxt6r7hXmGU0XPw?=
 =?iso-8859-1?Q?mSye7iDmMeTRmGdnzpKKfyNqEjoyHBgWr/IzaaRhE/0UFuwxjsPJA2wwUt?=
 =?iso-8859-1?Q?b8BIN3BEr3+i9jrwFnTKa7O3bmKTKmAYZbxr+ZS+2hpExavGdWESJjMqTm?=
 =?iso-8859-1?Q?ZLtlYJuvdI+4Vz/dnwJwAcz49ZawjVNFtBWBCkDm8+4N+yhNkYD+BUO6Mt?=
 =?iso-8859-1?Q?9yn/i2bXI08uQCLEKMr0dt48BDD0RDUFZAXoRBeie3VOiTatu3p7zCKQoq?=
 =?iso-8859-1?Q?wq66S0ETRLQMAKd1DtwUrhiZcgkhBPUzmqSX+eWWe7jSbEh0PkmXu3CkL9?=
 =?iso-8859-1?Q?UfoqTpu3gO1MzkfoHt7zoKYAiqq6LEy80/6Nm15RgL+zd+lQ1LwFxpxkNO?=
 =?iso-8859-1?Q?EYv6fYybKgGCVteFd5hWSxO26oGnEoaoarEX4PW4ZsJ2jDG1zcGpODYPvN?=
 =?iso-8859-1?Q?AnINY3U1yXAXJcJb8Xxu2qb0YVurHXdE6hs7yjLAhj4gZcGXEiGVkFDbX6?=
 =?iso-8859-1?Q?t6beCQ09vr9Hmefe3ov2wFpDE5pipDKp7uTvx0cRGMMpCZ2EU82Kh2CDgO?=
 =?iso-8859-1?Q?PqWzOT9uM1LY7majMRXo66uZnOgXjGMtWgYNGGhebLZKF9AYSTY9rnd/aB?=
 =?iso-8859-1?Q?z6LDB3DhxEuzDRrklU3gn/JykYqABcilzaFNPSQiyfOrHQdPYCocIVj60O?=
 =?iso-8859-1?Q?fRvKd/LjoQ+RyxDdK/iFMisDDOm4B3+BkBx9uNOZqLUX4gDY/OVNGtH0hV?=
 =?iso-8859-1?Q?EGPZXFVZM3dVXxgYr2xeL0IhJeicTAu7o7GO1cArpr5EReUronw5YIX4o4?=
 =?iso-8859-1?Q?dzmuFrlxyiNuNivJYHhVXYiQ5vqzl5f+FOIc57c4MBhVbsHaiSoTztSUD5?=
 =?iso-8859-1?Q?eBk8bGByen7mg1rDZGAe3RtujFPg4WItMwlhlfAqX35oC8ec5Ue1kdAQv0?=
 =?iso-8859-1?Q?pkXoXP9D5glvgIyyB4c=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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: de084be2-96be-469c-b9f2-08ddd5ae9f4a
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Aug 2025 12:33:32.0647
 (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: VmCtgzAmIjsw9qtISyOpQKgRaklIVOBC/YYaGTqtZXhZzCFDKbrmicOgree2JnMaXlGoUw7IUNi8ZOi/Mp7sTKH+9aV5Qizv+2IuYUOdrxw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU5PR03MB10563

The do_IRQ() function is the main handler for processing IRQs.
Currently, due to restrictive checks, it does not process interrupt
numbers greater than 1024. This patch updates the condition to allow
the handling of interrupts from the eSPI range.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>

---
Changes in V2:
- no changes
---
 xen/arch/arm/gic.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
index 47fccf21d8..7186c3d40a 100644
--- a/xen/arch/arm/gic.c
+++ b/xen/arch/arm/gic.c
@@ -341,7 +341,7 @@ void gic_interrupt(struct cpu_user_regs *regs, int is_f=
iq)
         /* Reading IRQ will ACK it */
         irq =3D gic_hw_ops->read_irq();
=20
-        if ( likely(irq >=3D GIC_SGI_STATIC_MAX && irq < 1020) )
+        if ( likely(irq >=3D GIC_SGI_STATIC_MAX && irq < 1020) || is_espi(=
irq) )
         {
             isb();
             do_IRQ(regs, irq, is_fiq);
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 12:33:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 12:33:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072934.1435930 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujzoY-0003Pc-Qi; Thu, 07 Aug 2025 12:33:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072934.1435930; Thu, 07 Aug 2025 12:33: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 1ujzoY-0003Np-Cp; Thu, 07 Aug 2025 12:33:46 +0000
Received: by outflank-mailman (input) for mailman id 1072934;
 Thu, 07 Aug 2025 12:33:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SGIa=2T=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1ujzoW-0001m4-QN
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 12:33:44 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c130dc9f-738a-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 14:33:43 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by DU5PR03MB10563.eurprd03.prod.outlook.com (2603:10a6:10:51b::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.13; Thu, 7 Aug
 2025 12:33:35 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9009.013; Thu, 7 Aug 2025
 12:33: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>
X-Inumbo-ID: c130dc9f-738a-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=LRt9tSbte8YITFuBzhM0oQ7G90D6rJPwm+X+RTFKprc1W/CA2QJv3ozGONLCJiULhsnsRBkCOPD7DHeD7o+uHpnfPZvPyljiX7K0QbcuwEwl+BOdfnV9aCW9Mb9hbb8r60m1t+H3E3XHS9jr4WVfdBXladju/6dn0NyUqUFEf8pCX58hOJY7ITLuaDV7/jvNU11Ne3cAAmPpmxHAVlLwy+Q5EF4YDXVoSluzCRf2Uaw3St070tCZiI1MEWJNq82mq23hG3lEZCQrOWti73BSNOEzt6tIvL01P2es2YlVdcBdLd14t0swQW+cbGJHn2abEozFgr32Eiv9UbbPAEoGwA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/JtjGnEPiZbkJDikA07kAxuFpezaBGG4TRRB9FslJFU=;
 b=PfBWGMbawYH4sYm1MxdPI8uvfbl+3kh3484RGWaqzaEB7p5NnZY3acx3zQySUN6wn1/aP01igmZ9/DY8fQyYW+Bg1s0ei/k66jzZgNH4S7qKgsVOS94MH1gu4QRr+ffmgGCA0MW+C1dNLkLhWZbDF2EZgQDDtjy1D6rFtguXKH40pLvMSDuALHCGRWC0akpmcqgZvbUAmdwcm3a3BEqe2YXlp+RIEArikTeXQvh6pEFqxJAgIrWGTzUlwmMHGqt8VVQB9I6p2oRFqQJxMkbIQGohXyrL7BE80sMK0QXhTcI/64f0NfX+AmG8pjC914O/EJMEih1uu9L29B9RX6u1MA==
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=/JtjGnEPiZbkJDikA07kAxuFpezaBGG4TRRB9FslJFU=;
 b=IT5V186ncUXIzYm9cst+y4x/YfwDZ8ftA3pSmRC7wmj1mKcx5WyzzxR1esGYXVOoCkN1LSVsEpSJ2H9DTjpa4BNbo5S/yu+kBhDg+h3pK3gc5lHTj70lLDlC6o/sor2FnKCwXvHcyXTxuoR1/Q0k6Zyl4IU/Git99ze+TMOas70XO8bqImAXy60iwnYT5XPFX0nwQ6rCQZarAggw6enzsWWOIr7ABNP8IJLyScKYVSO4lg0Y+dy6NIR+OiU5A2DqUXJV+p/zO71eRGgRwNJ3Hk9KRH3QfVkSiAnHjFO0GpN5e0A6XYnUVs0k54c6sWlt8qV8gEtgA0/WYD/o6In1bg==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Leonid Komarianskyi <Leonid_Komarianskyi@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 v2 09/10] xen/arm: domain_build: adjust Dom0 IRQ handling to
 support eSPIs
Thread-Topic: [PATCH v2 09/10] xen/arm: domain_build: adjust Dom0 IRQ handling
 to support eSPIs
Thread-Index: AQHcB5d9D2bB2ytT+0KvuTkMlpIiHw==
Date: Thu, 7 Aug 2025 12:33:34 +0000
Message-ID:
 <abba685916e6637eedbd831352bed2e968eeb7dc.1754568795.git.leonid_komarianskyi@epam.com>
References:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
In-Reply-To:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@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: GV2PR03MB8678:EE_|DU5PR03MB10563:EE_
x-ms-office365-filtering-correlation-id: efd5c5b2-565e-4628-7a5f-08ddd5aea0e6
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?G7DaQxRNAe+W6CYtYICjhQ2xsXoTCHdRkxsQIWdx1iDvYzyFD0iOfVy+jH?=
 =?iso-8859-1?Q?ncNnZ75hacRKr8RlvY5LB+YbqR4c0cWSp2kgoMqzqsCl0y62eaZPgLX7mj?=
 =?iso-8859-1?Q?rAYtujQxKvhL/xpX3zmyI5Y2Siu3ObFBaHEBZ7FkGDv4WBwmCEX2liy/D6?=
 =?iso-8859-1?Q?pQzFYr4O2MhRqedb8ZqOEmmCWrPu+FBVYAyN5EPne7SC3zfhoq2aKCStr5?=
 =?iso-8859-1?Q?Cj58B3cTAwc5omB8+LZC6Ji5s3yPQVqpblqVihNE1ZXuDjZ49GojUOGmJ1?=
 =?iso-8859-1?Q?SeetZC4ctflGJ0MxumC00g8uhlk+mIgRk2oaMbon71i3NyMhpExbvLNxrP?=
 =?iso-8859-1?Q?z1xHM0b+PTThbUwttLElvUW5EGCwB1A1Jf6QE3hXlBbNSdq/DobCjhc3mj?=
 =?iso-8859-1?Q?4cXuz8k528Jeq9Tms2ABJRSL4kXf0RJKtIIBUElR4jg9LQnAnhp9Az6b9j?=
 =?iso-8859-1?Q?dVuZ1ZBocFjwG8OqoHYEuLXcUadmJA5wwOT0ikSIc9y6vqLO4sA2QoO9yD?=
 =?iso-8859-1?Q?vQHK3f6zM/A1NlPCL0BLaIbIwv/dJLTcUCXT7Jbtmp7+8qeyKEVzcnnv+0?=
 =?iso-8859-1?Q?pibc/lSYMwuec4yfSgQg3DM/0HeuL7i5vIxVoIGBhkws5AiZC2uwxHS/p0?=
 =?iso-8859-1?Q?p4kSFRHz4T2Ksp59z6Y9f7ByNR7+7ml4YQj0TgPJGnqD2K9k0NPtz0yy1O?=
 =?iso-8859-1?Q?bla96sm1PEzxQQSHfp80dB7YEvVXwXT8X4PqXSoRRqJpjXUPv8caGP9v0M?=
 =?iso-8859-1?Q?2xsrMFtfzXqWNsv/VOYgWq7nTUMoW67eY8qRWtukGm0qtMs+59j4066Bbf?=
 =?iso-8859-1?Q?HqE8icKlwVEGFuxl9FTc0WXvkRhu9m5JTbzjS1Cl+KmwuKmjgox28Hpdz1?=
 =?iso-8859-1?Q?W7Ci6j+RUy+je1bQvVZ0GavEnqviYn5E7hY9FUfTOLXMHqoTfYnloYe8EW?=
 =?iso-8859-1?Q?4JR4ZKuEmwz8a1Lm3N7SShGmMPVKHuOFs+w62y2T8I4dHMSzHrqxEnPFK7?=
 =?iso-8859-1?Q?AKLJXJRC8xItsaaD0RDV+y600GAcD3Yrg03qEPaMTRnCNgYDLdBNJxdI95?=
 =?iso-8859-1?Q?86hFbjsoLsZ+ISo+Brd9cn0o/xIKvO9BF2ddbBstj2YOzW5g5DL194kUGm?=
 =?iso-8859-1?Q?Xygdt2CJj7vyuUehvq0wvCKz0yER4kEAkmFEH/s2cwqFpM7L4TTBC8WPfV?=
 =?iso-8859-1?Q?x3losqzvgw5kgrOmcAcLqsybfRoFSFpP9QHJQqoPPFhSAEYZTb/9if8wRm?=
 =?iso-8859-1?Q?5zWaZJxZ4ez1zIwga+JfzvuTZ+TTBDjhpAXatNIRU/sFv9irxYbrvQ4Edw?=
 =?iso-8859-1?Q?iDhADx/6NuROesH+2GvTW7+wPVB0Xl6doeztEj26fM5zrJLqnR8anxICZU?=
 =?iso-8859-1?Q?fGktl1jbX4VrXnB3IXeBuwwgNuMvn/Wpy+nlaR/9hIGWzmHcR8Ts8ExqqZ?=
 =?iso-8859-1?Q?lgcNSnxtGvr/NdI79W/LUY+2SuZOss4wAMqIDExGTYwWujKOCQNFV+fEIj?=
 =?iso-8859-1?Q?viGFIxxKCUPOL8ItV3nw3nHkvK6MEAZ7qaX1xC3edUCw=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?Hj4QnoJNhK+Rf9aiuDMOBLlGZR88I7aH2Y6kFuVlRHZWGXzVW6kNkNecRN?=
 =?iso-8859-1?Q?HPoBwl0uCTniDxHhvappjCrn7CzOX//Wz3JQiWnIj7fzR/znp4Nsq2Q+vM?=
 =?iso-8859-1?Q?mmn2zFycE4VhONyNz7CXG9Zs5u7IxZnqNPcvQOgPl3gwHwpvE3GWrJVNx8?=
 =?iso-8859-1?Q?QaNCelaSScTrR6wOJCkflMur5PGzEqLSZsOh9p+Yjxxy6UAbqaBqwNVb2K?=
 =?iso-8859-1?Q?M54+hVgg+aBOQXXRMUbV6hW4q/McRny/ltrqiE0K5o2DTca7hmYFyAcVhX?=
 =?iso-8859-1?Q?3ddHbMc0Uzd2nsnPYqBU1syE8u2OkklPm3cbEEQ5Hwe7q27yZMRc4/BoIB?=
 =?iso-8859-1?Q?L5UALBKfg9LIC2FqHal3Q02P/W/DOED39Ggt5pGmjhg0WUeNapkCMyXZEd?=
 =?iso-8859-1?Q?9z4S5YTe+MXd9N+l7vPioMG+KHdZ8hDmsRN8VldeomqtYukSfrB5m36B2h?=
 =?iso-8859-1?Q?nY/2AsXpKH8pSZnrNtukCEEN4EMnUVpo+MP7s3PRxhlKGR6ddKeyBVyfK3?=
 =?iso-8859-1?Q?ovuoDOlZqRPb3LaG2cZ5E03SrLuHVDU2Tm5mnP2HJjy10bI6ULUGBIjVsB?=
 =?iso-8859-1?Q?OpCwxlEJ5FAHdKT4DFJWCNoBKui5m92ireaiZWCV46/NAhIkhV8SwKZ3Zw?=
 =?iso-8859-1?Q?8xr5RgDj5fxemHy/3FI5ItHGDunpG2+0y4VAg+5g4o97v4zVbtJUSSQ9YR?=
 =?iso-8859-1?Q?NYZKE0U/wDUSDMpSF8YAoObkHKE+W3j5alxrJZewpyHpEWCXke9VeKkTZc?=
 =?iso-8859-1?Q?843yvQZ3S7qn+RNbwbDl0dFWNqtUVwh7HPQA8eFwmj0AHRZAWX4/1TSpZa?=
 =?iso-8859-1?Q?SME58YVBoolx9I9CNkE27ZbyTc9U/mgcJLxi23I2buHrq74dk9REqwbG9U?=
 =?iso-8859-1?Q?g9a0zEP9jVo+WEdweTAv7xNQmPXpgO7RFqJgZJkcwJQ+xJ4AHyLzWhcQCF?=
 =?iso-8859-1?Q?jwWzE/28ORNnv7VrJwOeOO9DYXjMXF8gnfl9pM+ypC5BKVQ8VGnugz9uYd?=
 =?iso-8859-1?Q?GnALbEapotGIqHCfwoNZygfXgArMVT7rsthGXadsZ/ITcU3Lfz7R/g/uOI?=
 =?iso-8859-1?Q?umVRaH6rfVDW2WCY1wrv5/8rx73BlJv3NqasoHe+i4kq8NcXq4PuiFI448?=
 =?iso-8859-1?Q?7HdZoZ9iIfYAfbylw6f+nS1Zy03erHiKD2v6lekIe4F/KzhIlO5/GP1muX?=
 =?iso-8859-1?Q?GrzLbs8r5w4dTrsYV5y8ZhV2sEIpnZqpqTqZmuGM6LFVTw6WFpgVX7o0yI?=
 =?iso-8859-1?Q?4REBD7cQtN2ru6kMoICFFN34frGC0ACT4LFdsKsx09wgJHzVyrMZ4BMkFU?=
 =?iso-8859-1?Q?9hKh/nRngQQnB5bjwdoV9BxTrOhBkCBKfFaBh0IeftiX+4tId3IREiAHW5?=
 =?iso-8859-1?Q?szU6NHtsBHlEEXhAhVsI+saBdA81Tra2osyNteyBLFo1shcxgQuOdwQjCD?=
 =?iso-8859-1?Q?iBcBTLkVGOTk82O8UT9wnVOSQd/DJ9wJXAc7LbFrcA8n7/9tY2HW3XlWsn?=
 =?iso-8859-1?Q?mIQTbw2xpS0ZlgbVy2pNBmgJ16FfCZ75k2zL7uMck2uH2bpSsPT71owqDW?=
 =?iso-8859-1?Q?STE7mdUw72ZD2H5BrWCVAYOxQD/gxyCJ+LVHK3VJ1gSvNQCiDF46Wm3MD0?=
 =?iso-8859-1?Q?ZaCZQ6OPtCtPujlunb5I1vmwBoFCxVPDN2PLUfmnogzv32xAPdKL9bUXE6?=
 =?iso-8859-1?Q?ScY9y8iyENZJjS3JNUM=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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: efd5c5b2-565e-4628-7a5f-08ddd5aea0e6
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Aug 2025 12:33:34.1414
 (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: g7pje8ZJQnjSkxk+8e6FUi6h6GOSNdO8q4j4EEVXs1gIcs0sWX71GaHRG2wFch4ySfqmznBvSgkRO1eLMaMefPJzvC3usXiXqgoauIpe/us=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU5PR03MB10563

The Dom0 configuration logic in create_dom0() has been updated
to account for extended SPIs when supported by the hardware and
enabled with CONFIG_GICV3_ESPI. These changes ensure the proper
calculation of the maximum number of SPIs and eSPIs available for Dom0.

When eSPIs are supported by the hardware and CONFIG_GICV3_ESPI is
enabled, the maximum number of eSPI interrupts is calculated using
the ESPI_BASE_INTID offset (4096) and limited at 1024, with 32 IRQs
subtracted. To ensure compatibility with non-Dom0 domains, this
adjustment is applied by the toolstack during domain creation, while
for Dom0 it is handled directly during VGIC initialization. If eSPIs
are not supported, the calculation defaults to using the standard SPI
range, with a maximum value of 992 interrupt lines as it works now.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>

---
Changes in V2:
- no changes
---
 xen/arch/arm/domain_build.c     | 10 ++++++++++
 xen/arch/arm/include/asm/vgic.h | 11 +++++++++++
 2 files changed, 21 insertions(+)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index d91a71acfd..fa5abf2dfb 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -2055,6 +2055,16 @@ void __init create_dom0(void)
     /* The vGIC for DOM0 is exactly emulating the hardware GIC */
     dom0_cfg.arch.gic_version =3D XEN_DOMCTL_CONFIG_GIC_NATIVE;
     dom0_cfg.arch.nr_spis =3D VGIC_DEF_NR_SPIS;
+#ifdef CONFIG_GICV3_ESPI
+    /*
+     * Check if the hardware supports extended SPIs (even if the appropria=
te config is set).
+     * If not, the common SPI range will be used. Otherwise overwrite the =
nr_spis with the
+     * maximum available INTID from eSPI range. In that case, the number o=
f regular SPIs will
+     * be adjusted to the maximum value during vGIC initialization.
+     */
+    if ( gic_number_espis() > 0 )
+        dom0_cfg.arch.nr_spis =3D VGIC_DEF_NR_ESPIS;
+#endif
     dom0_cfg.arch.tee_type =3D tee_get_type();
     dom0_cfg.max_vcpus =3D dom0_max_vcpus();
=20
diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/vgi=
c.h
index 9fa4523018..117b3aa92c 100644
--- a/xen/arch/arm/include/asm/vgic.h
+++ b/xen/arch/arm/include/asm/vgic.h
@@ -353,6 +353,17 @@ extern void vgic_check_inflight_irqs_pending(struct vc=
pu *v,
 /* Default number of vGIC SPIs. 32 are substracted to cover local IRQs. */
 #define VGIC_DEF_NR_SPIS (min(gic_number_lines(), VGIC_MAX_IRQS) - 32)
=20
+#ifdef CONFIG_GICV3_ESPI
+/*
+ * Returns the maximum eSPI INTID subtracted by 32. For non-Dom0 domains, =
the
+ * toolstack applies the same adjustment to cover local IRQs. We will add =
back
+ * this value during VGIC initialization. This ensures consistent handling=
 for Dom0
+ * and other domains. For the regular SPI range interrupts in this case, t=
he maximum
+ * value of VGIC_DEF_NR_SPIS will be used.
+ */
+#define VGIC_DEF_NR_ESPIS (ESPI_BASE_INTID + min(gic_number_espis(), 1024U=
) - 32)
+#endif
+
 extern bool vgic_is_valid_irq(struct domain *d, unsigned int virq);
=20
 static inline bool vgic_is_shared_irq(struct domain *d, unsigned int virq)
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 12:40:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 12:40:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1072961.1435949 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujzvO-0007yY-Ly; Thu, 07 Aug 2025 12:40:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1072961.1435949; Thu, 07 Aug 2025 12:40: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 1ujzvO-0007yR-Ix; Thu, 07 Aug 2025 12:40:50 +0000
Received: by outflank-mailman (input) for mailman id 1072961;
 Thu, 07 Aug 2025 12:40:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SGIa=2T=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1ujzoY-0001m4-R3
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 12:33:46 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c2144e93-738a-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 14:33:44 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by DU5PR03MB10563.eurprd03.prod.outlook.com (2603:10a6:10:51b::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.13; Thu, 7 Aug
 2025 12:33:36 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9009.013; Thu, 7 Aug 2025
 12:33: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>
X-Inumbo-ID: c2144e93-738a-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uJSv9yVnt//skqjZuPMutnZcobjEs+dn7xK7whcbBVEiJJgTgq+iQm+Ke9oSP/bJ8EzJVuLhD8rdylOgOM8k6UOFg4pq50zLpFxh5+wtL3q0IrJsA5LXgkOXH2kWkPfDaBUm2lsJDhW45ETVAFUu5WyvVQTOPdLNy+SdpIkGQVKVKlo4dd/h3yg42wbtZU2opkPoCWmULZS6GizKiUcntlt7nimGlJKDmtqMsdsRHsrFodmqVAtGsefhykMeC57HNklBIhGSVa6CgDey9SW6J1PQQF1lHPte6v+e+EWZGrKigawuSW+pAx3cidgTQJ6aZ4xdWX1Uz0ef8zs0mZXL7g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=UQ89LMIPTbRnlzEDyq9ltnP9nKlxsnZBGFd6mUivo7M=;
 b=wbEl8kPs4JEn/SYYrqQvIKjCwIZ9gVd8POp2uPy4ZRveGuhQVpl7QZMZYu/0GXTmfY9NvVUlvjB8Va1HdSzFiwuIovlEvagj8TLyizktETSQRVBtdf4W9f99nHi0BKv0qnHBOw870rwXSR9NbS3KvVoljAW3alf8xdq7YzF/jEKMj06gIbYhDT/HvOBfvtv2c0qLZLCdn1ekzN4ZhC2OHC/tNwCgvmBKXtKkYM7ERA/Abl3KvCxlHd4qNgSxEjjOOpkmGmuVWi94nOtVwsWljJKbOeeO6PQ8PU7YaD2TSqLrXLD951+hQ2mPpr4wWSEg4Wu2jsmZjbnWbylNmrylmQ==
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=UQ89LMIPTbRnlzEDyq9ltnP9nKlxsnZBGFd6mUivo7M=;
 b=aHMErXJG0YB58w8pHTP/irxmR7+A98k6sz2/w5OCTNNCmvv2Q9XdFzGFt0YO8ti0rr0g2KGSB2fcx6zAnn9/1c9Jts+73n3wCfvm/wOzsYqp8hRNmrpq8TX1DJsBzoOxSumHlBNRUghzba8WPdtxmlRBqeRtCmB5VUcSi44k6T7PtaOZKdrpmjAN1Als6wNBEPati5bCMKsapTqpZ4fbXfBC3QFFw8HOI1s1z5ysVkdopz+vdovDNmC3mPZeNEJfvvhedpSUlW6zlj/CKXiilX85S30LpwA/mb8vdL4jLq/hzO9l8iRWWptsE5JVvw+5GElfhDFvUYS1xVHgzRrSxg==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Leonid Komarianskyi <Leonid_Komarianskyi@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 v2 10/10] xen/arm: vgic-v3: add emulation of GICv3.1 eSPI
 registers
Thread-Topic: [PATCH v2 10/10] xen/arm: vgic-v3: add emulation of GICv3.1 eSPI
 registers
Thread-Index: AQHcB5d9o2YugLH3UUKTUBQVCD+iyg==
Date: Thu, 7 Aug 2025 12:33:34 +0000
Message-ID:
 <3ba2381b4c782a5187161f9418e5a35e7916c752.1754568795.git.leonid_komarianskyi@epam.com>
References:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
In-Reply-To:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@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: GV2PR03MB8678:EE_|DU5PR03MB10563:EE_
x-ms-office365-filtering-correlation-id: 2aec7064-9a5e-498b-5926-08ddd5aea117
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?nQLNwnzT7OA9i1QSPFTUELdgtPcwWvg0ntCOql4RDpPC95wqdUVUY9s1fu?=
 =?iso-8859-1?Q?x0orl5KBu+HcpjAErG1b5P94sWjBaif3vamGoxKABtoUt2lDy6VCQraobv?=
 =?iso-8859-1?Q?uc+YANXuABiAuSx95olTK7ssLfhLAUDSZSuGBIBHmt1U+r3n48BMcHgB/n?=
 =?iso-8859-1?Q?fgXyBqjOEVLkl5ZysCVCSgYuAv7O3Bch6aHBtbEbpctgvS4FQrOBcKcvkk?=
 =?iso-8859-1?Q?H3PzKxjwYu1eRx6yhtRtK0tXtuEiKIBKwqjYuV2xEnRKP7raHhRK9yXVwV?=
 =?iso-8859-1?Q?f8hJsLztFHFpBiW+Zqk1UcEXB+K8F/J9pcTAK0yirNyqwl4eOMSX0L0ZWp?=
 =?iso-8859-1?Q?bDRe0xLNVGf/eF+WjlwbpG/Y6rg5dzpBkBBKun2aEOOyzY7eGeO7EXM9q8?=
 =?iso-8859-1?Q?AOvRcYVuOklS2x19unjOA+nJEQZ0bUfAtV5nGki8Fn49j6X6YPgiQHovAT?=
 =?iso-8859-1?Q?OlIhLuSyK0wfsSTbCBNXYCQ41rw6AOHiYdDooO3ETsYO9Fs27ctgsSutHv?=
 =?iso-8859-1?Q?Em93aXUe0P0l9U8I3X7b6wPAFgTE5ufc6d+8sjAM0U4U4mZYVo7YnAWNNu?=
 =?iso-8859-1?Q?zPVhrHR5nEUARYMEor8cddIT8D4k+Mj2kb8bvbvYhAJecyND1m93Gqsla4?=
 =?iso-8859-1?Q?HxsuzeoydnqsKetG/4JZfjW/LseS9h3kRmwYkwmj2pc3gEt6nBwZmOyAMe?=
 =?iso-8859-1?Q?+oaKWRyW/oWHf932qMVdVcC2G0a2jUcsIzI9j9szZS6sYiXC21dAkZ5X3B?=
 =?iso-8859-1?Q?7jkkqze3ItF1gharzWw5YjpasYqEOmn9JFWXeiywbLuMIjwoywN4udV9l/?=
 =?iso-8859-1?Q?DKcN5wuXcdQu329Fe/7PHRF7OSvQhCEHTR1Z77WdpMChJWZjvo1IZU6jDr?=
 =?iso-8859-1?Q?SyPGLLikmC7yOyi4nQ2ad3hw599MbOBqaJGQ9RjPWZjXNJnnIPWF6L4SKd?=
 =?iso-8859-1?Q?tzV05eooXrhnTBvMiJBlRAjwkIOp0LcbVJt/+vtikQUivKY80jpkLROqEj?=
 =?iso-8859-1?Q?9wtqlosesNeqPLw5/Gp4lgYvNbESa7XGWCfOjoOktSeDOT4g8nAYycpVrY?=
 =?iso-8859-1?Q?KUO1A0vwUQHk3D6GAA59TdDILhifT/3HRYb/XoVfBkNTMrCOTXBDpCJe2G?=
 =?iso-8859-1?Q?U/fZ28dhqjV6pRHuhPUSpeIzow0mMqBqUZBzXnaF87MQmGQnGv3JayZ4hN?=
 =?iso-8859-1?Q?u//Xkev6hmCyy6skaJVZO5c8vGg7nTxkjH690nigwmMPELA9nfKmlSC7Ia?=
 =?iso-8859-1?Q?71oWVpkjMtQd6JvHUcND94Hu7jc2EP19kDGPIZ1vEs3IjX71jHAWP8wFdp?=
 =?iso-8859-1?Q?PXyx+GqYBrs8fkBj8Io5Vg1+H4MfzwHsgEHIEf8mKSRY3xII+/9f6b/OkJ?=
 =?iso-8859-1?Q?JDF9yfkkWjQ1r3lHEbBn5IypPpuT888/48XKuqg3ZVSrO20gsH7f8n3AZ0?=
 =?iso-8859-1?Q?AgPdVJiHnRhAa4+SsZIlOdX7S+8upBOsIRXOjHnidicVbHsYWUWgndQwRK?=
 =?iso-8859-1?Q?lbucS4LgQ11y25nTdeGoOGvXWu223q5bA6g3uDJcukew=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?YV4PVr7L3MSTxkLQc5D6Jp29kgJPh6Oa7wYw+sZfgq5f0+dTZQRW1ERvdY?=
 =?iso-8859-1?Q?7kt5kpR0S9MDlC+vOgvDL9M9CgXY/fnJBIsC+lugvCqjZEw4qc0O73R0Vy?=
 =?iso-8859-1?Q?xrkQJEhVefrIx4QQxjYFO/z9OoCpKBL/CGjNGNmBsXHSAzh2POAgGExrlT?=
 =?iso-8859-1?Q?ZAUTakfIjm83eh1k+TMPdcjJ+zVb1UQ5mJHc1OGsJbK8SqMqmvFvre6FBc?=
 =?iso-8859-1?Q?DBMesE/ugkX5JlAcYkmR8byylg9hKJhvRpRyg7CF6oP4v0Y1Xviko+NfD6?=
 =?iso-8859-1?Q?tsqqMT3lKd0qdRTLBItMGivk6as6tF0BWscB7Dmpc8LVWtacdFdwYW57uS?=
 =?iso-8859-1?Q?WlsdoN19zLWs2L7n1qkHiaMPNLWK7g/6znYDVZNmcDDV1VrWg8I8cSuhKE?=
 =?iso-8859-1?Q?cQdqm2Glzx8A9geMpwpVLG0W2InpiJFhTuSrrmK/sTgUbxmB2fitoSthws?=
 =?iso-8859-1?Q?5PsLNniNjdFJJgDXYPxnTYdshmh7CfU+j41y5HXWAwX5gO1svjy40BhCbf?=
 =?iso-8859-1?Q?+TSJFAUCPetHvQ8ieC3sf/b+keW21w5gNg5Ls/EcnF27LoIydVE6OetBaj?=
 =?iso-8859-1?Q?YWaXN2oDqXJYfHvvXCqOTAQbtxOM1OU4l1JO9Ugb5+xv7GVE1fVLsI0gOu?=
 =?iso-8859-1?Q?jucdBgDufZbyNeMcOrbS55ArMRWNoeDN0+QsYf/d303fjYUZD/cjGByf39?=
 =?iso-8859-1?Q?JD6JBZQSOdO8/Xl3GolBWKrDjyoqUkoMQ8GjwO3lp7tTDQnJdJwa/gp4U0?=
 =?iso-8859-1?Q?+NNfpoZ8a3w60TGnOrIpLobB0WMeCoheVig1f51LW479Iqakwf/FjlRNKA?=
 =?iso-8859-1?Q?3cN7AJsDJZBR61IHN21nwhRnKq70GrFtuuQrBy1FjHBVNhV5C4T88gtUB/?=
 =?iso-8859-1?Q?sToBL7JA+FPr71vkdIJD0A64c9FyFD9skBHyT6I5md5pLkBvF9KIVkDE3x?=
 =?iso-8859-1?Q?HiIvb2edAiuTfYOq4FohNe+oPmfRou15B3dtmT6xMze8X7DwaQvVN8SgdF?=
 =?iso-8859-1?Q?Bbcoyhb4u0F8IrbpZPp693RNCqlVQ5n5GRX4B/YlG6xfX3XEWc0vko32Po?=
 =?iso-8859-1?Q?jpfTJnn6RLNeQuLIJIkaR8h9rsiBueX9AQ/IPo2dUOkm3hKOWkDDAumpRj?=
 =?iso-8859-1?Q?yeO8o17oFfRTtdhCfuSDVhu+fnz+l/I5iYufsGsBQmKNmtCC1iJb3Yaywi?=
 =?iso-8859-1?Q?ws3jEIjqTPe2hak/AvsQ+/7ud3AXls+FOptNOHvVeg70lQFQNwqlpKCKsh?=
 =?iso-8859-1?Q?KoYPCm8Du94+JLonLHgeUdv0lob2n1suXEeAOfWh22AyulhAnc3UyIr9WU?=
 =?iso-8859-1?Q?pkPfe/OIph3va2EbYdywqcAdWTJ0J89dp5aiiMBR0Sm75vgNWFt2dtHkma?=
 =?iso-8859-1?Q?mjDDC5At6AazEzpvtWZfrDncJ6BZwYF104MZg84FlbcQ+hVYa6Fl8MK02a?=
 =?iso-8859-1?Q?0CsMZJF/4hpGhWEDUqAhwLM1qgZjio0OVDtGRS6MElwtoiDdqFcxO/qSRd?=
 =?iso-8859-1?Q?/EBV8XMltasnDMKrvDmbRuybxp7rJ/e+AnVF+afajyN+ewytXa/RGPECcJ?=
 =?iso-8859-1?Q?fsp24j2MJLVT6SbvJsC7UrkaCv1MUs7mrKOEBisQTT7DJ7LA2SjiMgxANw?=
 =?iso-8859-1?Q?ygYBbEHMwfdc/POqzK1c8cUZKIgiaym8K0gb1m5oXlEZiP+XmF114hT+9z?=
 =?iso-8859-1?Q?4sE9CiilX7sO/PceFAc=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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2aec7064-9a5e-498b-5926-08ddd5aea117
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Aug 2025 12:33:34.6060
 (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: 2oSSk9YCzf7RaVe4qtZLyz38SqZQKirprYgNWMh3IR92HiUV5/O90vwLx+NZRpcXBckQMX81SmwGZ18EiHpBAa4NKdC74dFo9EDTmhWE5Jw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU5PR03MB10563

Implemented support for GICv3.1 extended SPI registers for vGICv3,
allowing the emulation of eSPI-specific behavior for guest domains.
The implementation includes read and write emulation for eSPI-related
registers (e.g., GICD_ISENABLERnE, GICD_IROUTERnE, and others),
following a similar approach to the handling of regular SPIs.

The eSPI registers, previously located in reserved address ranges,
are now adjusted to support MMIO read and write operations correctly
when CONFIG_GICV3_ESPI is enabled.

The availability of eSPIs and the number of emulated extended SPIs
for guest domains is reported by setting the appropriate bits in the
GICD_TYPER register, based on the number of eSPIs requested by the
domain and supported by the hardware. In cases where the configuration
option is disabled, the hardware does not support eSPIs, or the domain
does not request such interrupts, the functionality remains unchanged.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>

---
Changes in V2:
- add missing rank index conversion for pending and inflight irqs
---
 xen/arch/arm/vgic-v3.c | 248 ++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 245 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/vgic-v3.c b/xen/arch/arm/vgic-v3.c
index 4369c55177..1cacbb6e43 100644
--- a/xen/arch/arm/vgic-v3.c
+++ b/xen/arch/arm/vgic-v3.c
@@ -111,7 +111,7 @@ static uint64_t vgic_fetch_irouter(struct vgic_irq_rank=
 *rank,
  * Note the offset will be aligned to the appropriate boundary.
  */
 static void vgic_store_irouter(struct domain *d, struct vgic_irq_rank *ran=
k,
-                               unsigned int offset, uint64_t irouter)
+                               unsigned int offset, uint64_t irouter, bool=
 espi)
 {
     struct vcpu *new_vcpu, *old_vcpu;
     unsigned int virq;
@@ -123,7 +123,8 @@ static void vgic_store_irouter(struct domain *d, struct=
 vgic_irq_rank *rank,
      * The IROUTER0-31, used for SGIs/PPIs, are reserved and should
      * never call this function.
      */
-    ASSERT(virq >=3D 32);
+    if ( !espi )
+        ASSERT(virq >=3D 32);
=20
     /* Get the index in the rank */
     offset =3D virq & INTERRUPT_RANK_MASK;
@@ -146,6 +147,11 @@ static void vgic_store_irouter(struct domain *d, struc=
t vgic_irq_rank *rank,
     /* Only migrate the IRQ if the target vCPU has changed */
     if ( new_vcpu !=3D old_vcpu )
     {
+#ifdef CONFIG_GICV3_ESPI
+        /* Convert virq index to eSPI range */
+        if ( espi )
+            virq =3D ESPI_IDX2INTID(virq);
+#endif
         if ( vgic_migrate_irq(old_vcpu, new_vcpu, virq) )
             write_atomic(&rank->vcpu[offset], new_vcpu->vcpu_id);
     }
@@ -685,6 +691,9 @@ static int __vgic_v3_distr_common_mmio_read(const char =
*name, struct vcpu *v,
     {
     case VRANGE32(GICD_IGROUPR, GICD_IGROUPRN):
     case VRANGE32(GICD_IGRPMODR, GICD_IGRPMODRN):
+#ifdef CONFIG_GICV3_ESPI
+    case VRANGE32(GICD_IGROUPRnE, GICD_IGROUPRnEN):
+#endif
         /* We do not implement security extensions for guests, read zero *=
/
         if ( dabt.size !=3D DABT_WORD ) goto bad_width;
         goto read_as_zero;
@@ -710,11 +719,19 @@ static int __vgic_v3_distr_common_mmio_read(const cha=
r *name, struct vcpu *v,
     /* Read the pending status of an IRQ via GICD/GICR is not supported */
     case VRANGE32(GICD_ISPENDR, GICD_ISPENDRN):
     case VRANGE32(GICD_ICPENDR, GICD_ICPENDRN):
+#ifdef CONFIG_GICV3_ESPI
+    case VRANGE32(GICD_ISPENDRnE, GICD_ISPENDRnEN):
+    case VRANGE32(GICD_ICPENDRnE, GICD_ICPENDRnEN):
+#endif
         goto read_as_zero;
=20
     /* Read the active status of an IRQ via GICD/GICR is not supported */
     case VRANGE32(GICD_ISACTIVER, GICD_ISACTIVERN):
     case VRANGE32(GICD_ICACTIVER, GICD_ICACTIVERN):
+#ifdef CONFIG_GICV3_ESPI
+    case VRANGE32(GICD_ISACTIVERnE, GICD_ISACTIVERnEN):
+    case VRANGE32(GICD_ICACTIVERnE, GICD_ICACTIVERnEN):
+#endif
         goto read_as_zero;
=20
     case VRANGE32(GICD_IPRIORITYR, GICD_IPRIORITYRN):
@@ -752,6 +769,61 @@ static int __vgic_v3_distr_common_mmio_read(const char=
 *name, struct vcpu *v,
         return 1;
     }
=20
+#ifdef CONFIG_GICV3_ESPI
+    case VRANGE32(GICD_ISENABLERnE, GICD_ISENABLERnEN):
+        if ( dabt.size !=3D DABT_WORD ) goto bad_width;
+        rank =3D vgic_ext_rank_offset(v, 1, reg - GICD_ISENABLERnE, DABT_W=
ORD);
+        if ( rank =3D=3D NULL ) goto read_as_zero;
+        vgic_lock_rank(v, rank, flags);
+        *r =3D vreg_reg32_extract(rank->ienable, info);
+        vgic_unlock_rank(v, rank, flags);
+        return 1;
+
+    case VRANGE32(GICD_ICENABLERnE, GICD_ICENABLERnEN):
+        if ( dabt.size !=3D DABT_WORD ) goto bad_width;
+        rank =3D vgic_ext_rank_offset(v, 1, reg - GICD_ICENABLERnE, DABT_W=
ORD);
+        if ( rank =3D=3D NULL ) goto read_as_zero;
+        vgic_lock_rank(v, rank, flags);
+        *r =3D vreg_reg32_extract(rank->ienable, info);
+        vgic_unlock_rank(v, rank, flags);
+        return 1;
+
+    case VRANGE32(GICD_IPRIORITYRnE, GICD_IPRIORITYRnEN):
+    {
+        uint32_t ipriorityr;
+        uint8_t rank_index;
+
+        if ( dabt.size !=3D DABT_BYTE && dabt.size !=3D DABT_WORD ) goto b=
ad_width;
+        rank =3D vgic_ext_rank_offset(v, 8, reg - GICD_IPRIORITYRnE, DABT_=
WORD);
+        if ( rank =3D=3D NULL ) goto read_as_zero;
+        rank_index =3D REG_RANK_INDEX(8, reg - GICD_IPRIORITYRnE, DABT_WOR=
D);
+
+        vgic_lock_rank(v, rank, flags);
+        ipriorityr =3D ACCESS_ONCE(rank->ipriorityr[rank_index]);
+        vgic_unlock_rank(v, rank, flags);
+
+        *r =3D vreg_reg32_extract(ipriorityr, info);
+
+        return 1;
+    }
+
+    case VRANGE32(GICD_ICFGRnE, GICD_ICFGRnEN):
+    {
+        uint32_t icfgr;
+
+        if ( dabt.size !=3D DABT_WORD ) goto bad_width;
+        rank =3D vgic_ext_rank_offset(v, 2, reg - GICD_ICFGRnE, DABT_WORD)=
;
+        if ( rank =3D=3D NULL ) goto read_as_zero;
+        vgic_lock_rank(v, rank, flags);
+        icfgr =3D rank->icfg[REG_RANK_INDEX(2, reg - GICD_ICFGRnE, DABT_WO=
RD)];
+        vgic_unlock_rank(v, rank, flags);
+
+        *r =3D vreg_reg32_extract(icfgr, info);
+
+        return 1;
+    }
+#endif
+
     default:
         printk(XENLOG_G_ERR
                "%pv: %s: unhandled read r%d offset %#08x\n",
@@ -782,6 +854,9 @@ static int __vgic_v3_distr_common_mmio_write(const char=
 *name, struct vcpu *v,
     {
     case VRANGE32(GICD_IGROUPR, GICD_IGROUPRN):
     case VRANGE32(GICD_IGRPMODR, GICD_IGRPMODRN):
+#ifdef CONFIG_GICV3_ESPI
+    case VRANGE32(GICD_IGROUPRnE, GICD_IGROUPRnEN):
+#endif
         /* We do not implement security extensions for guests, write ignor=
e */
         goto write_ignore_32;
=20
@@ -871,6 +946,87 @@ static int __vgic_v3_distr_common_mmio_write(const cha=
r *name, struct vcpu *v,
         vgic_unlock_rank(v, rank, flags);
         return 1;
=20
+#ifdef CONFIG_GICV3_ESPI
+    case VRANGE32(GICD_ISENABLERnE, GICD_ISENABLERnEN):
+        if ( dabt.size !=3D DABT_WORD ) goto bad_width;
+        rank =3D vgic_ext_rank_offset(v, 1, reg - GICD_ISENABLERnE, DABT_W=
ORD);
+        if ( rank =3D=3D NULL ) goto write_ignore;
+        vgic_lock_rank(v, rank, flags);
+        tr =3D rank->ienable;
+        vreg_reg32_setbits(&rank->ienable, r, info);
+        vgic_enable_irqs(v, (rank->ienable) & (~tr), EXT_RANK_IDX2NUM(rank=
->index));
+        vgic_unlock_rank(v, rank, flags);
+        return 1;
+
+    case VRANGE32(GICD_ICENABLERnE, GICD_ICENABLERnEN):
+        if ( dabt.size !=3D DABT_WORD ) goto bad_width;
+        rank =3D vgic_ext_rank_offset(v, 1, reg - GICD_ICENABLERnE, DABT_W=
ORD);
+        if ( rank =3D=3D NULL ) goto write_ignore;
+        vgic_lock_rank(v, rank, flags);
+        tr =3D rank->ienable;
+        vreg_reg32_clearbits(&rank->ienable, r, info);
+        vgic_disable_irqs(v, (~rank->ienable) & tr, EXT_RANK_IDX2NUM(rank-=
>index));
+        vgic_unlock_rank(v, rank, flags);
+        return 1;
+
+    case VRANGE32(GICD_ISPENDRnE, GICD_ISPENDRnEN):
+        if ( dabt.size !=3D DABT_WORD ) goto bad_width;
+        rank =3D vgic_ext_rank_offset(v, 1, reg - GICD_ISPENDRnE, DABT_WOR=
D);
+        if ( rank =3D=3D NULL ) goto write_ignore;
+
+        vgic_set_irqs_pending(v, r, EXT_RANK_IDX2NUM(rank->index));
+
+        return 1;
+
+    case VRANGE32(GICD_ICPENDRnE, GICD_ICPENDRnEN):
+        if ( dabt.size !=3D DABT_WORD ) goto bad_width;
+        rank =3D vgic_ext_rank_offset(v, 1, reg - GICD_ICPENDRnE, DABT_WOR=
D);
+        if ( rank =3D=3D NULL ) goto write_ignore;
+
+        vgic_check_inflight_irqs_pending(v, EXT_RANK_IDX2NUM(rank->index),=
 r);
+
+        goto write_ignore;
+    case VRANGE32(GICD_ISACTIVERnE, GICD_ISACTIVERnEN):
+        if ( dabt.size !=3D DABT_WORD ) goto bad_width;
+        printk(XENLOG_G_ERR
+               "%pv: %s: unhandled word write %#"PRIregister" to ISACTIVER=
%d\n",
+               v, name, r, reg - GICD_ISACTIVERnE);
+        return 0;
+
+    case VRANGE32(GICD_ICACTIVERnE, GICD_ICACTIVERnEN):
+        printk(XENLOG_G_ERR
+               "%pv: %s: unhandled word write %#"PRIregister" to ICACTIVER=
%d\n",
+               v, name, r, reg - GICD_ICACTIVER);
+        goto write_ignore_32;
+
+    case VRANGE32(GICD_IPRIORITYRnE, GICD_IPRIORITYRnEN):
+    {
+        uint32_t *ipriorityr, priority;
+
+        if ( dabt.size !=3D DABT_BYTE && dabt.size !=3D DABT_WORD ) goto b=
ad_width;
+        rank =3D vgic_ext_rank_offset(v, 8, reg - GICD_IPRIORITYRnE, DABT_=
WORD);
+        if ( rank =3D=3D NULL ) goto write_ignore;
+        vgic_lock_rank(v, rank, flags);
+        ipriorityr =3D &rank->ipriorityr[REG_RANK_INDEX(8, reg - GICD_IPRI=
ORITYRnE,
+                                                      DABT_WORD)];
+        priority =3D ACCESS_ONCE(*ipriorityr);
+        vreg_reg32_update(&priority, r, info);
+        ACCESS_ONCE(*ipriorityr) =3D priority;
+        vgic_unlock_rank(v, rank, flags);
+        return 1;
+    }
+    case VRANGE32(GICD_ICFGRnE, GICD_ICFGRnEN):
+        if ( dabt.size !=3D DABT_WORD ) goto bad_width;
+        rank =3D vgic_ext_rank_offset(v, 2, reg - GICD_ICFGRnE, DABT_WORD)=
;
+        if ( rank =3D=3D NULL ) goto write_ignore;
+        vgic_lock_rank(v, rank, flags);
+        vreg_reg32_update(&rank->icfg[REG_RANK_INDEX(2, reg - GICD_ICFGRnE=
,
+                                                     DABT_WORD)],
+                          r, info);
+        vgic_unlock_rank(v, rank, flags);
+        return 1;
+#endif
+
     default:
         printk(XENLOG_G_ERR
                "%pv: %s: unhandled write r%d=3D%"PRIregister" offset %#08x=
\n",
@@ -1129,6 +1285,16 @@ static int vgic_v3_distr_mmio_read(struct vcpu *v, m=
mio_info_t *info,
             typer |=3D GICD_TYPE_LPIS;
=20
         typer |=3D (v->domain->arch.vgic.intid_bits - 1) << GICD_TYPE_ID_B=
ITS_SHIFT;
+#ifdef CONFIG_GICV3_ESPI
+        if ( v->domain->arch.vgic.nr_espis > 0 )
+        {
+            /* Set eSPI support bit for the domain */
+            typer |=3D GICD_TYPER_ESPI;
+            /* Set ESPI range bits */
+            typer |=3D (DIV_ROUND_UP(v->domain->arch.vgic.nr_espis, 32) - =
1)
+                       << GICD_TYPER_ESPI_RANGE_SHIFT;
+        }
+#endif
=20
         *r =3D vreg_reg32_extract(typer, info);
=20
@@ -1194,6 +1360,18 @@ static int vgic_v3_distr_mmio_read(struct vcpu *v, m=
mio_info_t *info,
     case VRANGE32(GICD_IPRIORITYR, GICD_IPRIORITYRN):
     case VRANGE32(GICD_ICFGR, GICD_ICFGRN):
     case VRANGE32(GICD_IGRPMODR, GICD_IGRPMODRN):
+
+#ifdef CONFIG_GICV3_ESPI
+    case VRANGE32(GICD_IGROUPRnE, GICD_IGROUPRnEN):
+    case VRANGE32(GICD_ISENABLERnE, GICD_ISENABLERnEN):
+    case VRANGE32(GICD_ICENABLERnE, GICD_ICENABLERnEN):
+    case VRANGE32(GICD_ISPENDRnE, GICD_ISPENDRnEN):
+    case VRANGE32(GICD_ICPENDRnE, GICD_ICPENDRnEN):
+    case VRANGE32(GICD_ISACTIVERnE, GICD_ISACTIVERnEN):
+    case VRANGE32(GICD_ICACTIVERnE, GICD_ICACTIVERnEN):
+    case VRANGE32(GICD_IPRIORITYRnE, GICD_IPRIORITYRnEN):
+    case VRANGE32(GICD_ICFGRnE, GICD_ICFGRnEN):
+#endif
         /*
          * Above all register are common with GICR and GICD
          * Manage in common
@@ -1216,7 +1394,11 @@ static int vgic_v3_distr_mmio_read(struct vcpu *v, m=
mio_info_t *info,
         /* Replaced with GICR_ISPENDR0. So ignore write */
         goto read_as_zero_32;
=20
+#ifdef CONFIG_GICV3_ESPI
+    case VRANGE32(0x3100, 0x60FC):
+#else
     case VRANGE32(0x0F30, 0x60FC):
+#endif
         goto read_reserved;
=20
     case VRANGE64(GICD_IROUTER32, GICD_IROUTER1019):
@@ -1235,8 +1417,30 @@ static int vgic_v3_distr_mmio_read(struct vcpu *v, m=
mio_info_t *info,
=20
         return 1;
     }
+#ifdef CONFIG_GICV3_ESPI
+    case VRANGE64(GICD_IROUTERnE, GICD_IROUTERnEN):
+    {
+        uint64_t irouter;
+
+        if ( !vgic_reg64_check_access(dabt) ) goto bad_width;
+        rank =3D vgic_ext_rank_offset(v, 64, gicd_reg - GICD_IROUTERnE,
+                                DABT_DOUBLE_WORD);
+        if ( rank =3D=3D NULL ) goto read_as_zero;
+        vgic_lock_rank(v, rank, flags);
+        irouter =3D vgic_fetch_irouter(rank, gicd_reg - GICD_IROUTERnE);
+        vgic_unlock_rank(v, rank, flags);
+
+        *r =3D vreg_reg64_extract(irouter, info);
+
+        return 1;
+    }
+#endif
=20
+#ifdef CONFIG_GICV3_ESPI
+    case VRANGE32(0xA004, 0xBFFC):
+#else
     case VRANGE32(0x7FE0, 0xBFFC):
+#endif
         goto read_reserved;
=20
     case VRANGE32(0xC000, 0xFFCC):
@@ -1382,6 +1586,18 @@ static int vgic_v3_distr_mmio_write(struct vcpu *v, =
mmio_info_t *info,
     case VRANGE32(GICD_IPRIORITYR, GICD_IPRIORITYRN):
     case VRANGE32(GICD_ICFGR, GICD_ICFGRN):
     case VRANGE32(GICD_IGRPMODR, GICD_IGRPMODRN):
+
+#ifdef CONFIG_GICV3_ESPI
+    case VRANGE32(GICD_IGROUPRnE, GICD_IGROUPRnEN):
+    case VRANGE32(GICD_ISENABLERnE, GICD_ISENABLERnEN):
+    case VRANGE32(GICD_ICENABLERnE, GICD_ICENABLERnEN):
+    case VRANGE32(GICD_ISPENDRnE, GICD_ISPENDRnEN):
+    case VRANGE32(GICD_ICPENDRnE, GICD_ICPENDRnEN):
+    case VRANGE32(GICD_ISACTIVERnE, GICD_ISACTIVERnEN):
+    case VRANGE32(GICD_ICACTIVERnE, GICD_ICACTIVERnEN):
+    case VRANGE32(GICD_IPRIORITYRnE, GICD_IPRIORITYRnEN):
+    case VRANGE32(GICD_ICFGRnE, GICD_ICFGRnEN):
+#endif
         /* Above registers are common with GICR and GICD
          * Manage in common */
         return __vgic_v3_distr_common_mmio_write("vGICD", v, info,
@@ -1405,7 +1621,11 @@ static int vgic_v3_distr_mmio_write(struct vcpu *v, =
mmio_info_t *info,
         if ( dabt.size !=3D DABT_WORD ) goto bad_width;
         return 0;
=20
+#ifdef CONFIG_GICV3_ESPI
+    case VRANGE32(0x3100, 0x60FC):
+#else
     case VRANGE32(0x0F30, 0x60FC):
+#endif
         goto write_reserved;
=20
     case VRANGE64(GICD_IROUTER32, GICD_IROUTER1019):
@@ -1419,12 +1639,34 @@ static int vgic_v3_distr_mmio_write(struct vcpu *v,=
 mmio_info_t *info,
         vgic_lock_rank(v, rank, flags);
         irouter =3D vgic_fetch_irouter(rank, gicd_reg - GICD_IROUTER);
         vreg_reg64_update(&irouter, r, info);
-        vgic_store_irouter(v->domain, rank, gicd_reg - GICD_IROUTER, irout=
er);
+        vgic_store_irouter(v->domain, rank, gicd_reg - GICD_IROUTER, irout=
er, false);
+        vgic_unlock_rank(v, rank, flags);
+        return 1;
+    }
+
+#ifdef CONFIG_GICV3_ESPI
+    case VRANGE64(GICD_IROUTERnE, GICD_IROUTERnEN):
+    {
+        uint64_t irouter;
+
+        if ( !vgic_reg64_check_access(dabt) ) goto bad_width;
+        rank =3D vgic_ext_rank_offset(v, 64, gicd_reg - GICD_IROUTERnE,
+                                DABT_DOUBLE_WORD);
+        if ( rank =3D=3D NULL ) goto write_ignore;
+        vgic_lock_rank(v, rank, flags);
+        irouter =3D vgic_fetch_irouter(rank, gicd_reg - GICD_IROUTERnE);
+        vreg_reg64_update(&irouter, r, info);
+        vgic_store_irouter(v->domain, rank, gicd_reg - GICD_IROUTERnE, iro=
uter, true);
         vgic_unlock_rank(v, rank, flags);
         return 1;
     }
+#endif
=20
+#ifdef CONFIG_GICV3_ESPI
+    case VRANGE32(0xA004, 0xBFFC):
+#else
     case VRANGE32(0x7FE0, 0xBFFC):
+#endif
         goto write_reserved;
=20
     case VRANGE32(0xC000, 0xFFCC):
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 12:41:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 12:41:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073002.1435958 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ujzwF-0000eH-04; Thu, 07 Aug 2025 12:41:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073002.1435958; Thu, 07 Aug 2025 12:41: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 1ujzwE-0000e9-S5; Thu, 07 Aug 2025 12:41:42 +0000
Received: by outflank-mailman (input) for mailman id 1073002;
 Thu, 07 Aug 2025 12:41:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SGIa=2T=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1ujzoa-0001m4-RF
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 12:33:48 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c3410df8-738a-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 14:33:46 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by DU5PR03MB10563.eurprd03.prod.outlook.com (2603:10a6:10:51b::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.13; Thu, 7 Aug
 2025 12:33:34 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9009.013; Thu, 7 Aug 2025
 12:33: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>
X-Inumbo-ID: c3410df8-738a-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=arCR8dLw7AtjeuRj45jbunxTLMn/K6qIYQawX72OP7gtpJGn+Cxltrf272u4UAXm6MeEJn9Mo5vW+xb5S7CklsmWc5+DPdFNAGyRHcmJcs5MyYJMMBduT31khEAGKGkgpEo7BqDYFopEJk2KhorwPP1Fz9EVXUrXF7gncypIt8EZ1NoYZs99SjJ/EgWO3hlJra98+rjUucHTu/tmd0Sqi45atiAPpHSm+E+Jm8xjNpBpHNHOhceVaR/41qdONXVXBToOr6PIAkZtgG6l8nPhN2OBsfsL9ocrOWWizDPLHGnpcu/TuZEZ8Nd5bbwbdHj/ABLjuEh9GEx6+XRELw9/DA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=k24ZeMIWJBScosWjOnfAG1zBAOVNlmJrx4Zkv/BkUDw=;
 b=c8/JfhZycflhS/2vyXacw3eO/0ApV2nhl2zAQzjN1EAv4XSrg+LvVKiVq6pmvs22pMezXDptNlWRWrPFNxjKJIY18AZg12M69l7YC6MIr0PULYiGxN8kIMTlWHxHrUp+23uTYfBTHjDveNHwMc+c0jMC5FEJtwwPilTxtQ0CfhQ2fC3Nsg39o14SjabkEHulXjMNPTr6FTlo6KdrmCVumE2VxgfIGFMchZMSD/+sikjT4mEZpPeLFh8x0QjMaZmy97y2NSfKXA4UT8q7gJKhIeu/WCsNPyfRrXmU+BCIWxTVrOnguPGVnqRClNJ466O4zK6BUNJguH1hHz6gM1VR6A==
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=k24ZeMIWJBScosWjOnfAG1zBAOVNlmJrx4Zkv/BkUDw=;
 b=Cc+CEPNKBhsKfbqOdBtioXJl0HKrB2j/y11XntDTtMHCQ5MXLaZWZvVN+0dTv0ou1R+xlPq4313wvPQ8g6nM57Orj4Yv5RFRLbI415bdLqsiEQHgtf8meolYrttWrSfWcDCK+7rPwhezqZghYf+Q+cpf6+ieWn+mOOd6Khs7Ld+yEWYlxz2OIe28oNRfcvTqfBVYnC78tuPt3lA/VdFyjGD1P1Vpmss/YfkR97IPhgT4HYInJT5O/T/2bXYNq1dbl9oX4M+2eFrWssJ3p3mZ4IV6cdXL29el7BaJFWRMuRey0+KYbuZI9g8+QmiZq/5hz/ABdi7cXbTxFK8PgH5RjA==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Leonid Komarianskyi <Leonid_Komarianskyi@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 v2 08/10] xen/arm: vgic: add resource management for extended
 SPIs
Thread-Topic: [PATCH v2 08/10] xen/arm: vgic: add resource management for
 extended SPIs
Thread-Index: AQHcB5d8BuZ0dq8rx0Owht+h5hVtIg==
Date: Thu, 7 Aug 2025 12:33:33 +0000
Message-ID:
 <fde65754a60a8cc090bb212749ec2c10877c4943.1754568795.git.leonid_komarianskyi@epam.com>
References:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
In-Reply-To:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@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: GV2PR03MB8678:EE_|DU5PR03MB10563:EE_
x-ms-office365-filtering-correlation-id: 437159ee-7e02-49a4-9a6a-08ddd5ae9fea
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?xUlsxo/L4T7DpFjv/1a4MOmLqBtIaBDhAPkJCzsATIVyPPQaU+Ya5L7Mf7?=
 =?iso-8859-1?Q?NxNuT1+qPDhDxurTiXybeDO3jnQ1AabFAhKzZr5E/y9SINvOYTmXMefnZk?=
 =?iso-8859-1?Q?jy1SBh9Xiz6B07OFTGPhelfrrN6O0WJK/wHhRc7fUCBkE3yu7IOKqBWmH5?=
 =?iso-8859-1?Q?NwCWLG1xAJJPl4AyCl/+C0KwPXg5hMVJk01j1IFM66jZ+o8+CzeVgUjnRV?=
 =?iso-8859-1?Q?RxBvP+1ecSG11QBy2jueX/ZM+Sgd2VZJ0XpMHjvzQC5HZm6O3+tK2cLTMP?=
 =?iso-8859-1?Q?WUmGQkcar6ZZt4Rc9gqorp/EtI39fA2faseR/WKmkB573/kI38k4Js3OJn?=
 =?iso-8859-1?Q?oKJvKpZj2CB78C8t3xBWrTv4bv7klYAp/Z/6Bdc5RAQcngzzf4u51NWxr2?=
 =?iso-8859-1?Q?e7kJ/r6P/EKZVC3wHstHM40jOWlHALB6wyY3gjCe2K1kLUuBKmVf1dn+dN?=
 =?iso-8859-1?Q?8JDI6yWsGvEcKUJpehFjLcWGAVxgq/h5apKUtlVWXEHZScEmsXN0uzoaZj?=
 =?iso-8859-1?Q?xrrpoZSrzImKf+/b6kbC/8lWCGOb239wQunnTnzSuVHy8x3dEn5HoDfH1k?=
 =?iso-8859-1?Q?5LyHet5PxJCaj55bZRJJzO34Q16Wy9/VlFM53iKNlbSLM28GwqM2FVOWvR?=
 =?iso-8859-1?Q?iiS9UNyZYx+jYDKJeRv9VkthZWjNgLL42KEx0wTIhgltXpuBnV5dSvTlZx?=
 =?iso-8859-1?Q?YWmFetv4Yv+mzXrwVAAcsbAxl+evh/c92mF/LZmTntUexBmQwfGDbpAHZg?=
 =?iso-8859-1?Q?VF+Jyd/zYmsBUcqKtvtizob56n1eGqxKaha0Xb4aQ4zckxZhit+0YuWeos?=
 =?iso-8859-1?Q?2ItjdIAIB3FFtnYBgxKf5o/oW818f1yqzqTd2B03bJKQsuQe2to7lIx96y?=
 =?iso-8859-1?Q?sxgLM+ueKZTnwOQ5NYrjzL+413GsdafbxNq33CcrOgJdlYD/O8q/GBJD4a?=
 =?iso-8859-1?Q?Gr/v5C0pC71dC7GLXQEooisgjWGLFxaAUJ8cEyL92JJpF7yb0MJTyjHZn5?=
 =?iso-8859-1?Q?ucDGxN18ZsVQRI6wwNZmkhqN2Bu/AX3Du/xdCGn9pBnFYb27gVlwiJM/Jz?=
 =?iso-8859-1?Q?eamFZX8wrRpEgny4Zj6zleViPuNbMCGxpVWZ3zhhHU2WU4ihxONT7P3zET?=
 =?iso-8859-1?Q?D+reoOlRu5zKvbWFaLq8P3q7jFGRLJSD7+hysTegTtk6NblCQRlu+thAU5?=
 =?iso-8859-1?Q?FLAuSlMWtjMJ1m/OIjRj7dIXUKN6NyF3+SlxOrGJBO4wh7ImUn7bajgrhh?=
 =?iso-8859-1?Q?0oXxpOwO7WmaAp3m7+R1H8MeYRx2UU/7CX4hZpAzI9q0G7+vS3fuxv/WlU?=
 =?iso-8859-1?Q?wRw1NTn7zBGH5C7Sb4zzw436q0lKEGVwvq6DG9owRpwTK7BNN4EJo9kZ0d?=
 =?iso-8859-1?Q?XrPClgitAr8jdlAQmsKAdwEf0MYt+Fvc1nOELk9+4xWOTv7DaUBfOaPYtI?=
 =?iso-8859-1?Q?wQqOcSejY1u9jLr6ipDKrwjeZNX6gTjVVlXRDVsnFh79GiPbfFb9barGZm?=
 =?iso-8859-1?Q?EtTR/ZeQcfe2p5KnJwugte40fFUqTj+xVIp1tjfQuhJA=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?goTqzFf8pl6L+dqIdOiGJjr2GqjYMHTzN4Muw4hjfkTvDOPgW1bi4NgiPo?=
 =?iso-8859-1?Q?tpGUuof7EPW50jWyAYAwHoDnjsGXqUCd9vxCVdwtpQsgFFt7xubypFklyX?=
 =?iso-8859-1?Q?eWnzaJy5lEGjT2JvM4z7TG2nM/JizKv/EdBOiXACzRD2vISjZR7mFErpwJ?=
 =?iso-8859-1?Q?iB4p+QK7g9oJPJvKRAQglCIPHhbVkhFp1ODSsxtiEbNNMD4rGWnhq3ShFs?=
 =?iso-8859-1?Q?9T5nrCgPe6DxTZqIeCJ899KpMiByVe3lGC+US7MFsItYZxauLZGhZVgGkr?=
 =?iso-8859-1?Q?tAaZBt4aPep6FKOgaEPbI5UpPpkRQHkolJMAscD8aYlEgG0EiBrvucUoQK?=
 =?iso-8859-1?Q?pPI3NmbPN/A9yylWmJAk7TwzFqvoHsFj3cmnonDO+lNHh+uA1FQ+a88ial?=
 =?iso-8859-1?Q?ZBzfESVA0vmni6Nr/VmyqEISSFVSI+ZNd7HXQExhGr+/XAQjQN+yBxpo+f?=
 =?iso-8859-1?Q?iXyKIxgZVrE7XgDK2V9yd8Sf4VdyGAU2tmcBXdkgzUpsj88hFWVUnUOQv7?=
 =?iso-8859-1?Q?ghqeWzHEmtDINZtpGpeCRiEVMW9K/4mNYmovZtiRWuQShU5pluk38BT//R?=
 =?iso-8859-1?Q?IYopfyrV0VDUNywWshVhGrKjF9/VJNSsyN5FQNeTR80nvoZM1CPtNiAMAh?=
 =?iso-8859-1?Q?IlnK4mSrxSOR2/FtahBc22t1k03tKjoxGGXa0dlXA2n9Izi2uAeiIIWqAh?=
 =?iso-8859-1?Q?fYLbPgk8nI98AWKA3wSdbwW1UtTkI9CdX+yv8QHV8YCNmRm87KSE6rKqkA?=
 =?iso-8859-1?Q?zhnIqbW6a6JBC0m7KlXTmj5BDGE7XDfnE8+9i9lazKDPioIu4yKEtlOpbB?=
 =?iso-8859-1?Q?UBTdhmCmFkcmt91GTcuaPsTtktDspufPUenUJHlaLLW1cApVCNSLVVz74N?=
 =?iso-8859-1?Q?/SYsCak25aJf7FR52WU+v6p5RxEUEkUHnyH9N9Ua8HFxSGE8CdUFXVOnwN?=
 =?iso-8859-1?Q?1vXjH9klqFlvGxmzdyuyrc2lKnMMd9LH3FzZM7/aeYqmC62zEPuilFpqGW?=
 =?iso-8859-1?Q?mJlQKGIovULJbxIdrhXmrNuf+zIh9qwvulSAfFQlic07XZRI64IwDGl3G3?=
 =?iso-8859-1?Q?5DKfS4BEINSN3ZDtkyqTXkxQvCliGQ1xv0od1CDencsXkNWEomu59tjMnm?=
 =?iso-8859-1?Q?jKLfB3E8ZB5u+w9VcauAUZFlFIo+YIhlZcwJDPUdD+5pjjBuCvZS9q3CEM?=
 =?iso-8859-1?Q?ftt8edyHU00mWsTgsSK45uc58Gv4EuJY6kbl5FcIDQStvcp59vjaDCEG82?=
 =?iso-8859-1?Q?BDo7L33FtIqhVM1qJtz5jlWa3u74o4eg2lb+xkjekk+c87rRBVhCjzMmjr?=
 =?iso-8859-1?Q?s4cuyhQ80jC6sMIshgvIiDxOFv0A4JMor1FKpYAniSwEF5majJo0W/LNJK?=
 =?iso-8859-1?Q?c8AfEMXnrcbSo57Co6Xt8MLp8YQf1Z67rATioQek1z5OPuoKrYC2TfgJ1b?=
 =?iso-8859-1?Q?d9Pjw76v0AJeMgzfO1sNrzX6FLYcSeETAqOxTtVZOAf5teWJg7gG0XmBzG?=
 =?iso-8859-1?Q?KzBZ73rAVsD28OCalxxFtFifh3ZvUf7CE4XQGLIfzVyCdOhX5hzaFNAYGx?=
 =?iso-8859-1?Q?7X19xLE8PjwrI9AR7ck8EAjl4kv7BktEdpBqqdQxHu49B1ZibhubQsSfeR?=
 =?iso-8859-1?Q?wfaxGIGsJFVI3eDaQqdWiwMtQo4ZyK01LL8g/bn1hK1nvYgZ0LdlF6gWkK?=
 =?iso-8859-1?Q?yOH8C2DIMS58SyoNOUc=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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 437159ee-7e02-49a4-9a6a-08ddd5ae9fea
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Aug 2025 12:33:33.0440
 (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: jvVnaQ/7caqQnPedEtPEuCdMqNdb6eTCYZ9t8C+EwDXHDTNz6PhfDf7xisnaxZzRZil8r9J4pP3DgGnQyPJiXI56S1N794kW9j5QR8JI62A=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU5PR03MB10563

This change introduces resource management in the VGIC to handle
extended SPIs introduced in GICv3.1. The pending_irqs and
allocated_irqs arrays are resized to support the required
number of eSPIs, based on what is supported by the hardware and
requested by the guest. A new field, ext_shared_irqs, is added
to the VGIC structure to store information about eSPIs, similar
to how shared_irqs is used for regular SPIs.

Since the eSPI range starts at INTID 4096 and INTIDs between 1025
and 4095 are reserved, helper macros are introduced to simplify the
transformation of indices and to enable easier access to eSPI-specific
resources. These changes prepare the VGIC for processing eSPIs as
required by future functionality.

The initialization and deinitialization paths for vgic have been updated
to allocate and free these resources appropriately. Additionally,
updated handling of INTIDs greater than 1024, passed from the toolstack
during domain creation, and verification logic ensures only valid SPI or
eSPI INTIDs are used.

The existing SPI behavior remains unaffected when guests do not request
eSPIs, GIC hardware does not support them, or the CONFIG_GICV3_ESPI
option is disabled.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>

---
Changes in V2:
- change is_espi_rank to is_valid_espi_rank to verify whether the array
  element ext_shared_irqs exists. The previous version, is_espi_rank,
  only checked if the rank index was less than the maximum possible eSPI
  rank index, but this could potentially result in accessing a
  non-existing array element. To address this, is_valid_espi_rank was
  introduced, which ensures that the required eSPI rank exists
- move gic_number_espis to
  xen/arm: gicv3: implement handling of GICv3.1 eSPI
- update vgic_is_valid_irq checks to allow operating with eSPIs
- remove redundant newline in vgic_allocate_virq
---
 xen/arch/arm/include/asm/vgic.h |  18 ++++
 xen/arch/arm/vgic.c             | 145 ++++++++++++++++++++++++++++++++
 2 files changed, 163 insertions(+)

diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/vgi=
c.h
index 45201f4ca5..9fa4523018 100644
--- a/xen/arch/arm/include/asm/vgic.h
+++ b/xen/arch/arm/include/asm/vgic.h
@@ -146,6 +146,10 @@ struct vgic_dist {
     int nr_spis; /* Number of SPIs */
     unsigned long *allocated_irqs; /* bitmap of IRQs allocated */
     struct vgic_irq_rank *shared_irqs;
+#ifdef CONFIG_GICV3_ESPI
+    struct vgic_irq_rank *ext_shared_irqs;
+    int nr_espis; /* Number of extended SPIs */
+#endif
     /*
      * SPIs are domain global, SGIs and PPIs are per-VCPU and stored in
      * struct arch_vcpu.
@@ -243,6 +247,14 @@ struct vgic_ops {
 /* Number of ranks of interrupt registers for a domain */
 #define DOMAIN_NR_RANKS(d) (((d)->arch.vgic.nr_spis+31)/32)
=20
+#ifdef CONFIG_GICV3_ESPI
+#define DOMAIN_NR_EXT_RANKS(d) (((d)->arch.vgic.nr_espis+31)/32)
+#define EXT_RANK_MIN (ESPI_BASE_INTID/32)
+#define EXT_RANK_MAX ((ESPI_MAX_INTID+31)/32)
+#define EXT_RANK_NUM2IDX(num) ((num)-EXT_RANK_MIN)
+#define EXT_RANK_IDX2NUM(idx) ((idx)+EXT_RANK_MIN)
+#endif
+
 #define vgic_lock(v)   spin_lock_irq(&(v)->domain->arch.vgic.lock)
 #define vgic_unlock(v) spin_unlock_irq(&(v)->domain->arch.vgic.lock)
=20
@@ -302,6 +314,12 @@ extern struct vgic_irq_rank *vgic_rank_offset(struct v=
cpu *v,
                                               unsigned int b,
                                               unsigned int n,
                                               unsigned int s);
+#ifdef CONFIG_GICV3_ESPI
+extern struct vgic_irq_rank *vgic_ext_rank_offset(struct vcpu *v,
+                                                  unsigned int b,
+                                                  unsigned int n,
+                                                  unsigned int s);
+#endif
 extern struct vgic_irq_rank *vgic_rank_irq(struct vcpu *v, unsigned int ir=
q);
 extern void vgic_disable_irqs(struct vcpu *v, uint32_t r, unsigned int n);
 extern void vgic_enable_irqs(struct vcpu *v, uint32_t r, unsigned int n);
diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
index 48fbaf56fb..1a6c765af9 100644
--- a/xen/arch/arm/vgic.c
+++ b/xen/arch/arm/vgic.c
@@ -27,9 +27,26 @@
=20
 bool vgic_is_valid_irq(struct domain *d, unsigned int virq)
 {
+#ifdef CONFIG_GICV3_ESPI
+    if ( virq >=3D ESPI_BASE_INTID && virq < ESPI_IDX2INTID(d->arch.vgic.n=
r_espis) )
+        return true;
+#endif
+
     return virq < vgic_num_irqs(d);
 }
=20
+#ifdef CONFIG_GICV3_ESPI
+/*
+ * Since eSPI indexes start from 4096 and numbers from 1024 to
+ * 4095 are forbidden, we need to check both lower and upper
+ * limits for ranks.
+ */
+static inline bool is_valid_espi_rank(struct domain *d, unsigned int rank)
+{
+    return ( rank >=3D EXT_RANK_MIN && EXT_RANK_NUM2IDX(rank) < DOMAIN_NR_=
EXT_RANKS(d) );
+}
+#endif
+
 static inline struct vgic_irq_rank *vgic_get_rank(struct vcpu *v,
                                                   unsigned int rank)
 {
@@ -37,6 +54,10 @@ static inline struct vgic_irq_rank *vgic_get_rank(struct=
 vcpu *v,
         return v->arch.vgic.private_irqs;
     else if ( rank <=3D DOMAIN_NR_RANKS(v->domain) )
         return &v->domain->arch.vgic.shared_irqs[rank - 1];
+#ifdef CONFIG_GICV3_ESPI
+    else if ( is_valid_espi_rank(v->domain, rank) )
+        return &v->domain->arch.vgic.ext_shared_irqs[EXT_RANK_NUM2IDX(rank=
)];
+#endif
     else
         return NULL;
 }
@@ -53,6 +74,16 @@ struct vgic_irq_rank *vgic_rank_offset(struct vcpu *v, u=
nsigned int b,
     return vgic_get_rank(v, rank);
 }
=20
+#ifdef CONFIG_GICV3_ESPI
+struct vgic_irq_rank *vgic_ext_rank_offset(struct vcpu *v, unsigned int b,
+                                           unsigned int n, unsigned int s)
+{
+    unsigned int rank =3D REG_RANK_NR(b, (n >> s));
+
+    return vgic_get_rank(v, rank + EXT_RANK_MIN);
+}
+#endif
+
 struct vgic_irq_rank *vgic_rank_irq(struct vcpu *v, unsigned int irq)
 {
     unsigned int rank =3D irq / 32;
@@ -117,6 +148,29 @@ int domain_vgic_register(struct domain *d, unsigned in=
t *mmio_count)
     return 0;
 }
=20
+#ifdef CONFIG_GICV3_ESPI
+static int init_vgic_espi(struct domain *d)
+{
+    int i;
+
+    if ( d->arch.vgic.nr_espis =3D=3D 0 )
+        return 0;
+
+    d->arch.vgic.ext_shared_irqs =3D
+        xzalloc_array(struct vgic_irq_rank, DOMAIN_NR_EXT_RANKS(d));
+    if ( d->arch.vgic.ext_shared_irqs =3D=3D NULL )
+        return -ENOMEM;
+
+    for ( i =3D 0; i < d->arch.vgic.nr_espis; i++ )
+        vgic_init_pending_irq(&d->arch.vgic.pending_irqs[i + d->arch.vgic.=
nr_spis], ESPI_IDX2INTID(i));
+
+    for ( i =3D 0; i < DOMAIN_NR_EXT_RANKS(d); i++ )
+        vgic_rank_init(&d->arch.vgic.ext_shared_irqs[i], i, 0);
+
+    return 0;
+}
+#endif
+
 int domain_vgic_init(struct domain *d, unsigned int nr_spis)
 {
     int i;
@@ -131,6 +185,30 @@ int domain_vgic_init(struct domain *d, unsigned int nr=
_spis)
      */
     nr_spis =3D ROUNDUP(nr_spis, 32);
=20
+#ifdef CONFIG_GICV3_ESPI
+    if ( nr_spis > ESPI_MAX_INTID )
+        return -EINVAL;
+
+    if ( is_espi(nr_spis) )
+    {
+        /*
+         * During domain creation, the toolstack specifies the maximum INT=
ID,
+         * which is defined in the domain config subtracted by 32. To comp=
ute the
+         * actual number of eSPI that will be usable for, add back 32.
+         */
+        d->arch.vgic.nr_espis =3D min(nr_spis - ESPI_BASE_INTID + 32, 1024=
U);
+        /* Verify if GIC HW can handle provided INTID */
+        if ( d->arch.vgic.nr_espis > gic_number_espis() )
+            return -EINVAL;
+        /* Set the maximum available number for defult SPI to pass the nex=
t check */
+        nr_spis =3D VGIC_DEF_NR_SPIS;
+    } else
+    {
+        /* Domain will use the regular SPI range */
+        d->arch.vgic.nr_espis =3D 0;
+    }
+#endif
+
     /* Limit the number of virtual SPIs supported to (1020 - 32) =3D 988  =
*/
     if ( nr_spis > (1020 - NR_LOCAL_IRQS) )
         return -EINVAL;
@@ -145,7 +223,12 @@ int domain_vgic_init(struct domain *d, unsigned int nr=
_spis)
         return -ENOMEM;
=20
     d->arch.vgic.pending_irqs =3D
+#ifdef CONFIG_GICV3_ESPI
+        xzalloc_array(struct pending_irq, d->arch.vgic.nr_spis +
+                      d->arch.vgic.nr_espis);
+#else
         xzalloc_array(struct pending_irq, d->arch.vgic.nr_spis);
+#endif
     if ( d->arch.vgic.pending_irqs =3D=3D NULL )
         return -ENOMEM;
=20
@@ -156,12 +239,23 @@ int domain_vgic_init(struct domain *d, unsigned int n=
r_spis)
     for ( i =3D 0; i < DOMAIN_NR_RANKS(d); i++ )
         vgic_rank_init(&d->arch.vgic.shared_irqs[i], i + 1, 0);
=20
+#ifdef CONFIG_GICV3_ESPI
+    ret =3D init_vgic_espi(d);
+    if ( ret )
+        return ret;
+#endif
+
     ret =3D d->arch.vgic.handler->domain_init(d);
     if ( ret )
         return ret;
=20
     d->arch.vgic.allocated_irqs =3D
+#ifdef CONFIG_GICV3_ESPI
+        xzalloc_array(unsigned long, BITS_TO_LONGS(vgic_num_irqs(d) +
+                      d->arch.vgic.nr_espis));
+#else
         xzalloc_array(unsigned long, BITS_TO_LONGS(vgic_num_irqs(d)));
+#endif
     if ( !d->arch.vgic.allocated_irqs )
         return -ENOMEM;
=20
@@ -195,9 +289,27 @@ void domain_vgic_free(struct domain *d)
         }
     }
=20
+#ifdef CONFIG_GICV3_ESPI
+    for ( i =3D 0; i < (d->arch.vgic.nr_espis); i++ )
+    {
+        struct pending_irq *p =3D spi_to_pending(d, ESPI_IDX2INTID(i));
+
+        if ( p->desc )
+        {
+            ret =3D release_guest_irq(d, p->irq);
+            if ( ret )
+                dprintk(XENLOG_G_WARNING, "d%u: Failed to release virq %u =
ret =3D %d\n",
+                        d->domain_id, p->irq, ret);
+        }
+    }
+#endif
+
     if ( d->arch.vgic.handler )
         d->arch.vgic.handler->domain_free(d);
     xfree(d->arch.vgic.shared_irqs);
+#ifdef CONFIG_GICV3_ESPI
+    xfree(d->arch.vgic.ext_shared_irqs);
+#endif
     xfree(d->arch.vgic.pending_irqs);
     xfree(d->arch.vgic.allocated_irqs);
 }
@@ -331,6 +443,17 @@ void arch_move_irqs(struct vcpu *v)
         if ( v_target =3D=3D v && !test_bit(GIC_IRQ_GUEST_MIGRATING, &p->s=
tatus) )
             irq_set_affinity(p->desc, cpu_mask);
     }
+
+#ifdef CONFIG_GICV3_ESPI
+    for ( i =3D ESPI_BASE_INTID; i < (d)->arch.vgic.nr_espis; i++ )
+    {
+        v_target =3D vgic_get_target_vcpu(v, i);
+        p =3D irq_to_pending(v_target, i);
+
+        if ( v_target =3D=3D v && !test_bit(GIC_IRQ_GUEST_MIGRATING, &p->s=
tatus) )
+            irq_set_affinity(p->desc, cpu_mask);
+    }
+#endif
 }
=20
 void vgic_disable_irqs(struct vcpu *v, uint32_t r, unsigned int n)
@@ -538,6 +661,10 @@ struct pending_irq *irq_to_pending(struct vcpu *v, uns=
igned int irq)
         n =3D &v->arch.vgic.pending_irqs[irq];
     else if ( is_lpi(irq) )
         n =3D v->domain->arch.vgic.handler->lpi_to_pending(v->domain, irq)=
;
+#ifdef CONFIG_GICV3_ESPI
+    else if ( is_espi(irq) )
+        n =3D &v->domain->arch.vgic.pending_irqs[ESPI_INTID2IDX(irq) + v->=
domain->arch.vgic.nr_spis];
+#endif
     else
         n =3D &v->domain->arch.vgic.pending_irqs[irq - 32];
     return n;
@@ -547,6 +674,14 @@ struct pending_irq *spi_to_pending(struct domain *d, u=
nsigned int irq)
 {
     ASSERT(irq >=3D NR_LOCAL_IRQS);
=20
+#ifdef CONFIG_GICV3_ESPI
+    if ( is_espi(irq) )
+    {
+        irq =3D ESPI_INTID2IDX(irq) + d->arch.vgic.nr_spis;
+        return &d->arch.vgic.pending_irqs[irq];
+    }
+#endif
+
     return &d->arch.vgic.pending_irqs[irq - 32];
 }
=20
@@ -668,6 +803,11 @@ bool vgic_reserve_virq(struct domain *d, unsigned int =
virq)
     if ( !vgic_is_valid_irq(d, virq) )
         return false;
=20
+#ifdef CONFIG_GICV3_ESPI
+    if ( is_espi(virq) )
+        return !test_and_set_bit(ESPI_INTID2IDX(virq) + vgic_num_irqs(d), =
d->arch.vgic.allocated_irqs);
+#endif
+
     return !test_and_set_bit(virq, d->arch.vgic.allocated_irqs);
 }
=20
@@ -686,6 +826,11 @@ int vgic_allocate_virq(struct domain *d, bool spi)
     {
         first =3D 32;
         end =3D vgic_num_irqs(d);
+#ifdef CONFIG_GICV3_ESPI
+        /* Take into account extended SPI range */
+        end +=3D d->arch.vgic.nr_espis;
+#endif
+
     }
=20
     /*
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 12:51:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 12:51:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073029.1435968 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk05A-0002h6-Vl; Thu, 07 Aug 2025 12:50:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073029.1435968; Thu, 07 Aug 2025 12:50: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 1uk05A-0002gz-Sy; Thu, 07 Aug 2025 12:50:56 +0000
Received: by outflank-mailman (input) for mailman id 1073029;
 Thu, 07 Aug 2025 12:50:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gbW2=2T=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1uk059-0002gt-Ly
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 12:50:55 +0000
Received: from mail-lf1-x136.google.com (mail-lf1-x136.google.com
 [2a00:1450:4864:20::136])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 27bed60d-738d-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 14:50:54 +0200 (CEST)
Received: by mail-lf1-x136.google.com with SMTP id
 2adb3069b0e04-55b8b8e00caso1101110e87.3
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 05:50: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>
X-Inumbo-ID: 27bed60d-738d-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754571054; x=1755175854; 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=y2a02EPa/Dkm1TIb8QJlzmnUQQOhfAv4onLhwTgD+dU=;
        b=NwbJA/Z0pBFHpBWipj0CKVwWtq0mZQbzlFxddHLfHf+4cdUkcAnQO0lkXHciymUm7R
         VG5mQngfw5dzv6TRlZTZCYKa0uV/cz9ossRtm/dz2cb8kQokuXiUhxynOq8HdzwS086m
         ZuCZHz+bpGtsSXbuDbSmBYUQWIVsRPq5d86ODP/2XhJ7JB5Akz9KUk2HwUoucl8Lj8ps
         KXd7yY2/gZFjNtnCrbb4XkRCNMM4HX63jg874byJA2K4dJkQTX6Tya1z6yLMcUup9iJF
         iGsqKibqKn9Z/yb4NLfTBNDC6V+Xm1I3HrJE94gTyfTRyOabmW5sgOl81kS7j/jKsH09
         U6xg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754571054; x=1755175854;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=y2a02EPa/Dkm1TIb8QJlzmnUQQOhfAv4onLhwTgD+dU=;
        b=oUMSjof+ZedVkIaqabNE5wHRYDhP5eV6bHMh+N1qOHWi8T3rlAqada3yk8lxFp1ztO
         0xxbFCPSmgGyswtxQv2/+gZf/a95cTrNgZHZoEZiEIMUszNLC5ZHrzD4Vxv/C+QqcsRi
         sW0YqXWspZcBNQlESuHzD2stZ782hXnHf8XlgJRSSyXtMMJiRkdVhncPP8BhpUeT3n+P
         6fenLulshTW4GG7wDPonl6/j7t2OyNJxTNphlcuXofyNEVt1vnDODSwG6j+H3a06H6p2
         CKy8/WBP0zsoWnmbbHUTc4QWkYrstp/S5j91OPslaoqzNa7P5LUNrCyZf32j+gNeX5c5
         HbDQ==
X-Gm-Message-State: AOJu0YwIgOGzJ9L82QOgiUngtMNIeere4ZbbswePFmEk4DO2iltrbiDz
	fhfj7g04RGqR5t4Ii6cAGz+lY6fXGYtMXkzxTl0YhflytuegXzrUEA3+WTNv1UMk99lW37/yA42
	fx0Rm6AaxfWqpuoywPGRFx2B+GW9hQbk=
X-Gm-Gg: ASbGnctuwC6q7s4eIFOgvXIlkmtkjIhEGGmICS29bmO15KeSVDJHA80BvrxyVMMHKvd
	xMUufQYGZ6+LjOXjf5wIW+1ZNJjATcS55nbWPuo9IlK6aqkTO9ek0YTrNZJ/pgNvjH3i/nuTNXL
	ZCyul8YnQ+FnyK4+VzLMsJfjyZSbGVjAQzijcLKzz9QTDN7fFvnqrwcibChRPUpvrfNrIe0DnuW
	Ndxbg==
X-Google-Smtp-Source: AGHT+IHoHL9mSbQtj0ZD6KHTZ2n5gTAZNINXEidoJ0xVPAu2g4IHdpvbyV1DGIkc/OXb8a8BiXGzB2jDdcCvgE9v8nc=
X-Received: by 2002:a05:6512:23a9:b0:55b:87b8:839a with SMTP id
 2adb3069b0e04-55caf39cd30mr2340353e87.51.1754571053337; Thu, 07 Aug 2025
 05:50:53 -0700 (PDT)
MIME-Version: 1.0
References: <ae2c2e35-72df-40ed-bffe-391f3c11b826@gmail.com>
In-Reply-To: <ae2c2e35-72df-40ed-bffe-391f3c11b826@gmail.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Thu, 7 Aug 2025 15:50:42 +0300
X-Gm-Features: Ac12FXzHVSMx7LFUOAcW_ZaOdUZjGmgCubJyuXDqoWr2DCHmozc9DM_V--LKuBM
Message-ID: <CAGeoDV9S3oqg-AgvQ1PhDCMM2Fd-uTrunD2q-4vSj9G8LwU9AA@mail.gmail.com>
Subject: Re: Xen 4.21 Development Update [June-July]
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, 
	Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>, 
	", Ayan Kumar Halder" <ayan.kumar.halder@amd.com>, Mykyta Poturai <Mykyta_Poturai@epam.com>, 
	Juergen Gross <jgross@suse.com>, Teddy Astie <teddy.astie@vates.tech>, 
	Bertrand Marquis <bertrand.marquis@arm.com>, Luca Fancellu <luca.fancellu@arm.com>, 
	"Jason Andryuk," <jason.andryuk@amd.com>, Alejandro Vallejo <alejandro.vallejo@cloud.com>, 
	Sergii Dmytruk <sergii.dmytruk@3mdeb.com>, "Penny Zheng," <Penny.Zheng@amd.com>, 
	=?UTF-8?Q?Marek_Marczykowski=2DG=C3=B3recki=2C?= <marmarek@invisiblethingslab.com>, 
	Roger Pau Monne <roger.pau@citrix.com>, Andrew Cooper <andrew.cooper3@citrix.com>, dmkhn@proton.me, 
	"Daniel P. Smith" <dpsmith@apertussolutions.com>, Grygorii Strashko <gragst.linux@gmail.com>, 
	Alejandro Vallejo <agarciav@amd.com>, "committers@xenproject.org" <committers@xenproject.org>, 
	Community Manager <community.manager@xenproject.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Oleksii,

On Tue, Aug 5, 2025 at 9:19=E2=80=AFPM Oleksii Kurochko
<oleksii.kurochko@gmail.com> wrote:
>
> Hello everyone,
>
> This email only tracks big items for xen.git tree. Please reply for
> items you
> would like to see in 4.21 so that people have an idea what is going on an=
d
> prioritise accordingly.
>
> You're welcome to provide description and use cases of the feature you're
> working on.
>
> =3D Timeline =3D
>
> The current release schedule could be found here:
>    https://wiki.xenproject.org/wiki/Xen_Project_X.YY_Release_Notes
>
> And as a reminder I would like to remind at the of this week we will have
> Last posting date (Fri Aug 08, 2025).
>
> =3D Updates =3D
>
> The following items ( the links for them could be found int the list belo=
w )
> were moved to completed:
>    [since Jun2 - Aug5]:
>     Added some tags: [4.21], [next-rel(s)] to the list "Full list of item=
s"
>     below.
>     * x86:
>      - kexec: add kexec support to Mini-OS.
>      - x86: memcpy() / memset() (non-)ERMS flavors plus fallout
>     * Arm:
>      - SMMU handling for PCIe Passthrough on ARM.
>      - Add support for R-Car Gen4 PCI host controller.
>      - First chunk for Arm R82 and MPU support.
>      - Enable R52 support for the first chunk of MPU support
>      - ARM split hardware and control domains.
>     * RISC-V:
>      - Introduce basic UART support and interrupts for hypervisor mode.
>
>    [since May 6 - Jun2]:
>      * Hypervisor:
>        - tools: remove qemu-traditional
>      * Arm:
>        - PCI devices passthrough on Arm, part 3
>      * x86:
>        - xen: cache control improvements
>    [since 4.20 relese - May 6]:
>      * Hypervisor:
>        - Move parts of Arm's Dom0less to common code
>        - remove libxenctrl usage from xenstored
>      * Arm:
>        - Enable early bootup of Armv8-R AArch32 systems
>      * x86:
>        - x86/HVM: emulation (MMIO) improvements
>      * RISC-V:
>        - RISC-V some preinit calls.
>        - Fixes for UBSAN & GCOV support for RISC-V.
>
> Some new items added:
>   [since May]
>      * x86:
>       - Allow x86 to unflatten DTs
>       - hyperlaunch: move remaining pvh dom0 construction
>       - x86/hyperlaunch: introduce concept of core domains
>       - Confidential computing and AMD SEV support
>      * Arm:
>       - SMMU handling for PCIe Passthrough on ARM
>       - xen/arm: scmi: introduce SCI SCMI SMC multi-agent support
>       - Add initial Xen Suspend-to-RAM support on ARM64
>      * RISC-V:
>       - introduce p2m functionality
>   [since 4.20 release]
>      * Hypervisor:
>        - tools: remove qemu-traditional
>        - Physical address hypercall ABI ("HVMv2")
>        - xen: Untangle mm.h
>        - xen: introduce CONFIG_SYSCTL
>        - Add support for exact-node memory claims
>        - Several CI cleanups and improvements, plus yet another new runne=
r
>      * x86:
>        - x86/EFI: prevent write-execute sections
>        - x86: Trenchboot Secure Launch DRTM (Xen)
>        - Hyperlaunch device tree for dom0 (v6)
>        - amd-cppc CPU Performance Scaling Driver (v4)
>        - Hyperlaunch domain builder
>        - kexec: add kexec support to Mini-OS
>        - xen: cache control improvements (should be moved to "Hypervisor"=
?)
>        - x86: generate xen.efi image with no write-execute sections
>        - x86/asm: cleanups after toolchain baseline upgrade
>      * Arm:
>        - Add support for R-Car Gen4 PCI host controller (v4)
>        - FF-A VM to VM support (v5)
>        - First chunk for Arm R82 and MPU support (v4)
>        - ARM split hardware and control domains (v5)
>        - MPU mm subsistem skeleton
>      * RISC-V:
>        - introduce basic UART support and interrupts for hypervisor mode
>
> * Full list of items : *
>
> =3D Projects =3D
>
> =3D=3D Hypervisor =3D=3D
>
> * [4.21] xen/console: cleanup console input switch logic (v5)
>    - Denis Mukhin
>    -
> https://lore.kernel.org/xen-devel/20250530231841.73386-1-dmukhin@ford.com=
/
>
> * [4.21] xen: introduce CONFIG_SYSCTL (v4 -> v8)
>    -  Penny Zheng
>    -
> https://lore.kernel.org/xen-devel/20250711043158.2566880-1-Penny.Zheng@am=
d.com/
>
> * [4.21] Several CI cleanups and improvements, plus yet another new runne=
r
>    - Marek Marczykowski-G=C3=B3recki
>    -
> https://lore.kernel.org/xen-devel/cover.7da1777882774486a13e6f39ff4a2096f=
6b7901e.1744028549.git-series.marmarek@invisiblethingslab.com/
>    -
> https://patchew.org/Xen/cover.7da1777882774486a13e6f39ff4a2096f6b7901e.17=
44028549.git-series.marmarek@invisiblethingslab.com/
>
> * [4.21] automation: Refresh the remaining Debian containers (v2)
>    -  Javi Merino
>    -
> https://lore.kernel.org/xen-devel/cover.1730743077.git.javi.merino@cloud.=
com/T/#m5d9acb7cf5db3c2be3d6527de14b69b07812314e
>
> * [4.21] MSI-X support with qemu in stubdomain, and other related
> changes (v8)
>    -  Marek Marczykowski-G=C3=B3recki
>    -
> https://lore.kernel.org/xen-devel/cover.33fb4385b7dd6c53bda4acf0a9e91748b=
3d7b1f7.1715313192.git-series.marmarek@invisiblethingslab.com/
>    -  Only automation patch left to be reviewed/merged.
>
> * [next-rel(s)] Physical address hypercall ABI ("HVMv2")
>    - Teddy Astie
>    -
> https://lore.kernel.org/xen-devel/cover.1744981654.git.teddy.astie@vates.=
tech/
>
> * [next-rel(s)] xen: Untangle mm.h
>    -  Andrew Cooper
>    -
> https://lore.kernel.org/xen-devel/20250312174513.4075066-1-andrew.cooper3=
@citrix.com/
>    -
> https://patchew.org/Xen/20250312174513.4075066-1-andrew.cooper3@citrix.co=
m/
>
> * [next-rel(s)] Add support for exact-node memory claims
>    -  Alejandro Vallejo
>    -
> https://lore.kernel.org/xen-devel/20250314172502.53498-1-alejandro.vallej=
o@cloud.com/
>    -
> https://patchew.org/Xen/20250314172502.53498-1-alejandro.vallejo@cloud.co=
m/
>
> * [next-rel(s)] Remove the directmap (v5)
>    -  Alejandro Vallejo
>    -
> https://lore.kernel.org/xen-devel/20250108151822.16030-1-alejandro.vallej=
o@cloud.com/
>    -
> https://patchew.org/Xen/20250108151822.16030-1-alejandro.vallejo@cloud.co=
m/
>
> * [next-rel(s)] GRUB: Supporting Secure Boot of xen.gz (v1)
>    -  Ross Lagerwall
>    -
> https://patchew.org/Xen/20240313150748.791236-1-ross.lagerwall@citrix.com=
/
>
> * [next-rel(s)] Introduce xenbindgen to autogen hypercall structs (v1)
>    -  Alejandro Vallejo
>    -
> https://patchew.org/Xen/20241115115200.2824-1-alejandro.vallejo@cloud.com=
/
>
> * [next-rel(s)] Introduce NS8250 UART emulator (v2)
>    -  Denis Mukhin
>    -
> https://patchew.org/Xen/20241205-vuart-ns8250-v1-0-e9aa923127eb@ford.com/
>
> * [next-rel(s)] xen: framework for UART emulators
>    - Denis Mukhin
>    -
> https://lore.kernel.org/xen-devel/20250624035443.344099-1-dmukhin@ford.co=
m/
>
> =3D=3D=3D x86 =3D=3D=3D
> * [4.21] x86/asm: cleanups after toolchain baseline upgrade (v1 -> v2)
>    - Denis Mukhin
>    -
> https://lore.kernel.org/xen-devel/20250403182250.3329498-1-dmukhin@ford.c=
om/
>    - https://patchew.org/Xen/20250403182250.3329498-1-dmukhin@ford.com/
>
> * [4.21?] x86/efi: Fix booting when NX is disabled (v1 -> v2)
>    - Andrew Cooper
>    -
> https://patchew.org/Xen/20240722101838.3946983-1-andrew.cooper3@citrix.co=
m/
>    -
> https://lore.kernel.org/xen-devel/20240722101838.3946983-1-andrew.cooper3=
@citrix.com/
>
> * [4.21?] Hyperlaunch device tree for dom0 (v6)
>    - Alejandro Vallejo
>    - https://patchew.org/Xen/20250429123629.20839-1-agarciav@amd.com/
>    -
> https://lore.kernel.org/xen-devel/20250429123629.20839-1-agarciav@amd.com=
/
>
> *  [4.21?] Boot modules for Hyperlaunch (v9)
>    -  Daniel P. Smith
>    -
> https://lore.kernel.org/xen-devel/20241115131204.32135-1-dpsmith@apertuss=
olutions.com/
>    -
> https://patchew.org/Xen/20241115131204.32135-1-dpsmith@apertussolutions.c=
om/
>
> *  [4.21?] Address Space Isolation FPU preparations (v2->v3)
>    -  Alejandro Vallejo
>    -
> https://patchew.org/Xen/20250110132823.24348-1-alejandro.vallejo@cloud.co=
m/
>
> * [next-rel(s)] Hyperlaunch domain builder
>    - Daniel P. Smith
>    -
> https://lore.kernel.org/xen-devel/20250515131744.3843-1-dpsmith@apertusso=
lutions.com/
>
> * [next-rel(s)] Confidential computing and AMD SEV support
>    - Teddy Astie
>    - https://patchew.org/Xen/cover.1747312394.git.teddy.astie@vates.tech/
>    -
> https://lore.kernel.org/xen-devel/cover.1747312394.git.teddy.astie@vates.=
tech/
>
> * [next-rel(s)] amd-cppc CPU Performance Scaling Driver (v5 -> v6)
>    - Penny Zheng
>    -
> https://lore.kernel.org/xen-devel/20250711035106.2540522-1-Penny.Zheng@am=
d.com/
>
> * [next-rel(s)] x86: Trenchboot Secure Launch DRTM (Xen) (v1 -> v3)
>    - Sergii Dmytruk
>    - https://patchew.org/Xen/cover.1745172094.git.sergii.dmytruk@3mdeb.co=
m/
>    -
> https://lore.kernel.org/xen-devel/cover.1748611041.git.sergii.dmytruk@3md=
eb.com/
>
> * [next-rel(s)] x86/EFI: prevent write-execute sections
>    - Roger Pau Monne <roger.pau@citrix.com>
>    -
> https://lore.kernel.org/xen-devel/20250401130840.72119-1-roger.pau@citrix=
.com/
>
> * [next-rel(s)] x86: generate xen.efi image with no write-execute section=
s
>    - Roger Pau Monne
>    -
> https://lore.kernel.org/xen-devel/20250318173547.59475-1-roger.pau@citrix=
.com/
>
> *  [next-rel(s)] Expose consistent topology to guests (v7)
>    -  Alejandro Vallejo
>    -
> https://patchew.org/Xen/20241021154600.11745-1-alejandro.vallejo@cloud.co=
m/
>
> *  [next-rel(s)] x86/alternatives: Adjust all insn-relative fields (v2)
>    -  Andrew Cooper
>    -
> https://lore.kernel.org/xen-devel/20241002152725.1841575-1-andrew.cooper3=
@citrix.com/T/#mac2deaea7e02a343210d61887486433d946ad129
>
> *  [next-rel(s)] x86emul: misc additions (v7)
>    -  Jan Beulich
>    - https://patchew.org/Xen/3a25cd59-e1cb-4bfc-b868-fb11599d22f5@suse.co=
m/
>
> *  [next-rel(s)] x86: support AVX10 (v3)
>    -  Jan Beulich
>    -
> https://lore.kernel.org/xen-devel/516b7f9a-048e-409d-8a4e-89aeb8ffacc4@su=
se.com/
>    - https://patchew.org/Xen/516b7f9a-048e-409d-8a4e-89aeb8ffacc4@suse.co=
m/
>
> *  [next-rel(s)] VT-d: SATC handling; ATS: tidying (v2)
>    -  Jan Beulich
>    - https://patchew.org/Xen/64b028be-2197-4951-ae5b-32f9eabfa84a@suse.co=
m/
>
> *  [next-rel(s)] x86: parallelize AP bring-up during boot (v1)
>    -  Krystian Hebel
>    -
> https://lore.kernel.org/xen-devel/cover.1699982111.git.krystian.hebel@3md=
eb.com/
>
> *  [next-rel(s)] x86/spec-ctrl: IBPB improvements (v4)
>    -  Jan Beulich
>    - https://patchew.org/Xen/06591b64-2f05-a4cc-a2f3-a74c3c4a76d6@suse.co=
m/
>
> *  [next-rel(s)] Move some boot code from assembly to C (v2)
>    -  Frediano Ziglio
>    -
> https://lore.kernel.org/xen-devel/20241122093358.478774-1-frediano.ziglio=
@cloud.com/
>    -
> https://patchew.org/Xen/20241122093358.478774-1-frediano.ziglio@cloud.com=
/
>
> *  [next-rel(s)]amd-pstate CPU Performance Scaling Driver (v1)
>    -  Penny Zheng
>    - https://patchew.org/Xen/20241203081111.463400-1-Penny.Zheng@amd.com/
>    -
> https://lore.kernel.org/xen-devel/593baee2-9bf1-4db4-86e8-015cae48dc1a@su=
se.com/
>
> * [next-rel(s)] x86: adventures in Address Space Isolation
>    - Roger Pau Monne <roger.pau@citrix.com>
>    -
> https://lore.kernel.org/xen-devel/20250108142659.99490-1-roger.pau@citrix=
.com/
>
> =3D=3D=3D ARM =3D=3D=3D
>
> * [4.21?] MPU mm subsistem skeleton
>    - Luca Fancellu
>    -
> https://lore.kernel.org/xen-devel/20250312135258.1815706-1-luca.fancellu@=
arm.com/
>    - https://patchew.org/Xen/20250312135258.1815706-1-luca.fancellu@arm.c=
om/
>
> * [4.21?] Add initial Xen Suspend-to-RAM support on ARM64 (v4)
>    - Mykola Kvach
>    -
> https://lore.kernel.org/xen-devel/cover.1748848482.git.mykola_kvach@epam.=
com/

Our team expects to see this feature included in the 4.21 release.

Additional related patches for this feature:
https://lore.kernel.org/xen-devel/cover.1753778926.git.mykola_kvach@epam.co=
m/
https://lore.kernel.org/xen-devel/e57133182b9bcecb519911c8b3f0d871955d6fef.=
1754540991.git.mykola_kvach@epam.com/

>
> * [4.21?] xen/arm: scmi: introduce SCI SCMI SMC multi-agent support (->v4=
)
>    - Oleksii Moisieiev
>    -
> https://lore.kernel.org/xen-devel/cover.1753184487.git.oleksii_moisieiev@=
epam.com/
>
> * [next-rel(s)] FF-A VM to VM support (v6)
>    - Bertrand Marquis <bertrand.marquis@arm.com>
>    -
> https://lore.kernel.org/xen-devel/cover.1747925287.git.bertrand.marquis@a=
rm.com/
>    - https://patchew.org/Xen/cover.1747925287.git.bertrand.marquis@arm.co=
m/
>
> *  [next-rel(s)] Add Virtio-PCI for dom0less on ARM (v1)
>    -  Edgar E. Iglesias
>    -
> https://lore.kernel.org/xen-devel/20240924162359.1390487-1-edgar.iglesias=
@gmail.com/T/#mfa148991b9408f223a079d4cef610244d5b04c2b
>    -
> https://patchew.org/Xen/20240924162359.1390487-1-edgar.iglesias@gmail.com=
/
>
> *  [next-rel(s)] DOMCTL-based guest magic region allocation for 11 domUs
> (v4)
>    -  Henry Wang
>    - https://patchew.org/Xen/20240409045357.236802-1-xin.wang2@amd.com/
>
> =3D=3D=3D RISCV =3D=3D=3D
>
> * [4.21] xen/riscv: introduce p2m functionality (v1->v3)
>    - Oleksii Kurochko
>    -
> https://lore.kernel.org/xen-devel/cover.1753973161.git.oleksii.kurochko@g=
mail.com/T/#t
>
> =3D=3D=3D PPC =3D=3D=3D
>
> *  Early Boot Allocation on Power (v5)
>    -  Shawn Anastasio
>    -
> https://lore.kernel.org/xen-devel/cover.1727388925.git.sanastasio@raptore=
ngineering.com/T/#m8cac91a93b56a359fa2d5f08596c4be61dca290d
>    -
> https://patchew.org/Xen/cover.1727388925.git.sanastasio@raptorengineering=
.com/
>
> =3D=3D Completed =3D=3D
>
> =3D=3D=3D Hypervisor =3D=3D=3D
>
> * tools: remove qemu-traditional
>    - Juergen Gross <jgross@suse.com>
>    - https://lore.kernel.org/xen-devel/20250527132035.985-1-jgross@suse.c=
om/
>
> *  remove libxenctrl usage from xenstored (v8)
>    -  Juergen Gross
>    -
> https://lore.kernel.org/xen-devel/20250204113407.16839-1-jgross@suse.com/
>
> * xen/config.h: Move BITS_PER_* definitions from asm/config.h to
> xen/config.h
>    - Oleksii Kurochko
>    -
> https://lore.kernel.org/xen-devel/6b21fb046cf1c8ca760f5ad72fa3cc13b59c406=
9.1743092485.git.oleksii.kurochko@gmail.com/
>
> * Move parts of Arm's Dom0less to common code
>    - Oleksii Kurochko
>    -
> https://patchew.org/Xen/cover.1746468003.git.oleksii.kurochko@gmail.com/
>    -
> https://lore.kernel.org/xen-devel/cover.1746468003.git.oleksii.kurochko@g=
mail.com/T/#t
>
> =3D=3D=3D x86 =3D=3D=3D
>
> *  x86: memcpy() / memset() (non-)ERMS flavors plus fallout (v4 -> v5)
>    -  Jan Beulich
>    - https://patchew.org/Xen/14b65231-b83b-43fb-bbcf-dec5c07d285b@suse.co=
m/
>
> * kexec: add kexec support to Mini-OS (v1 -> v2)
>    - Juergen Gross <jgross@suse.com>
>    -
> https://lore.kernel.org/xen-devel/20250616084619.11112-1-jgross@suse.com/
>
> * [4.21] Allow x86 to unflatten DTs (v8)
>    - Alejandro Vallejo
>    -
> https://lore.kernel.org/xen-devel/20250722000525.7247-1-alejandro.garciav=
allejo@amd.com/#t
>
> * xen: cache control improvements
>    - Roger Pau Monne
>    -
> https://lore.kernel.org/xen-devel/20250506083148.34963-1-roger.pau@citrix=
.com/
>
> *  x86/HVM: emulation (MMIO) improvements (v3)
>    -  Jan Beulich
>    - https://patchew.org/Xen/729f7896-55b7-4b5b-a7e9-6eb0420e0b14@suse.co=
m/
>
> =3D=3D=3D ARM =3D=3D=3D
>
> * Enable R52 support for the first chunk of MPU support
>   -  Ayan Kumar Halder
>   -
> https://lore.kernel.org/xen-devel/20250619113152.2723066-1-ayan.kumar.hal=
der@amd.com/
>
> * ARM split hardware and control domains (v5)
>    - Jason Andryuk
>    -
> https://lore.kernel.org/xen-devel/20250416212911.410946-1-jason.andryuk@a=
md.com/
>    - https://patchew.org/Xen/20250416212911.410946-1-jason.andryuk@amd.co=
m/
>
> * First chunk for Arm R82 and MPU support (v4 -> v6)
>    - Luca Fancellu
>    -
> https://lore.kernel.org/xen-devel/20250523065406.3795420-1-luca.fancellu@=
arm.com/
>    - https://patchew.org/Xen/20250523065406.3795420-1-luca.fancellu@arm.c=
om/
>
> * Add support for R-Car Gen4 PCI host controller (v4 -> v5)
>    - Mykyta Poturai
>    -
> https://lore.kernel.org/xen-devel/cover.1747820844.git.mykyta_poturai@epa=
m.com/
>    -
> https://patchew.org/Xen/cover.1747820844.git.mykyta._5Fpoturai@epam.com/
>
> * SMMU handling for PCIe Passthrough on ARM (v11 -> v12)
>    - Mykyta Poturai
>    -
> https://lore.kernel.org/xen-devel/cover.1751439885.git.mykyta_poturai@epa=
m.com/
>
> *  PCI devices passthrough on Arm, part 3 (v16->v20->v21)
>    -  Stewart Hildebrand
>    -
> https://patchew.org/Xen/20250508104608.531079-1-stewart.hildebrand@amd.co=
m/
>    -
> https://lore.kernel.org/xen-devel/20250508104608.531079-1-stewart.hildebr=
and@amd.com/
>
> * Enable early bootup of Armv8-R AArch32 systems
>    - Ayan Kumar Halder
>    -
> https://lore.kernel.org/xen-devel/20250414164514.588373-1-ayan.kumar.hald=
er@amd.com/
>    -
> https://patchew.org/Xen/20250414164514.588373-1-ayan.kumar.halder@amd.com=
/
>
> =3D=3D=3D RISC-V =3D=3D=3D
>
> * riscv: introduce basic UART support and interrupts for hypervisor mode
> (v2 -> v3)
>    -  Oleksii Kurochko
>    -
> https://lore.kernel.org/xen-devel/cover.1747843009.git.oleksii.kurochko@g=
mail.com/
>    -
> https://patchew.org/Xen/cover.1747843009.git.oleksii.kurochko@gmail.com/
>
> * RISC-V some preinit calls:
>    -  Oleksii Kurochko
>    -
> https://lore.kernel.org/xen-devel/4ddde60347edf6740fbc69b5739d099616f5b5f=
f.1743165791.git.oleksii.kurochko@gmail.com/
>
> * Fixes for UBSAN & GCOV support for RISC-V:
>    -  Oleksii Kurochko
>    -
> https://lore.kernel.org/xen-devel/9fbb5e1389b84bed2e95f99e4c383d0215c7a52=
4.1744889185.git.oleksii.kurochko@gmail.com/
>
> Have a good week!
>
> Best regards,
>   Oleksi

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 13:08:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 13:08:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073045.1435978 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk0M8-00068P-BO; Thu, 07 Aug 2025 13:08:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073045.1435978; Thu, 07 Aug 2025 13:08:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk0M8-00068I-8p; Thu, 07 Aug 2025 13:08:28 +0000
Received: by outflank-mailman (input) for mailman id 1073045;
 Thu, 07 Aug 2025 13:08:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=igFk=2T=nvidia.com=jgg@srs-se1.protection.inumbo.net>)
 id 1uk0M6-000689-Cu
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 13:08:26 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20617.outbound.protection.outlook.com
 [2a01:111:f403:200a::617])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 96f0fa02-738f-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 15:08:21 +0200 (CEST)
Received: from CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13)
 by DM4PR12MB8558.namprd12.prod.outlook.com (2603:10b6:8:187::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.16; Thu, 7 Aug
 2025 13:08:13 +0000
Received: from CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732]) by CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732%4]) with mapi id 15.20.9009.017; Thu, 7 Aug 2025
 13:08: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>
X-Inumbo-ID: 96f0fa02-738f-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tQ1+zt8SxkWpi6XQvKb/4txJLmNhj/lKE1tbbt1yHm5Mc5mfMh1id0s7n9GI5o++auSo5fgwsbyFF8RGHy/AhtAQmxzQ50KAfwY+Lk+ne7i9/mPM6kIjAisy9OVGCuJDn89lx40GkRUvA92ncv0c2r7XBOY1KlrUvG81hcJl/JCd1EKx5Qz3kZ488T0o9nNYANzl74kNcFUIhK1EKWagmcQFDl7gCFYfa/YppIhvPXVVWPvY0tosrnQ06eTFBoFUEu1y4rfvyEjIg0ev32yYzL/OxMyWvHTDYb6Vc3xTRZh/5pybM9kmC5wf/gCuvZ7fNOa3OtGQIP1Q8Pvuvl0srQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=HcNahN9GoGL0AP88sLUVxLsV+OiezgDlSya5Beqdmb4=;
 b=kzDGV6ClUN6JhAsCb/Tg2C17AqRbsb3oWrHgWl17B9xc8vaSbqHGdsTIoTLBp8xnm7fuotA5anPz87YJfP9LyCJ4aXVEJHepCizOuK5BZjEA6OSQ/wJlCsuslw8jZAGYQ+OVW7nHymzqFALhtmHmdtBC1jSarxIPH4iwu6ViqOWNDcXBuuGW3KqEEcm67zRTLCtxpgU50wz0Xa3B+SNZIKomGv06gR3y1AtY4jwGFe7EDNtR2A0Cu1gQr0YYJQf9F4b331gjSHFe+aMKXkuj3/CMchqVpsMKgeSg3af87PgeGXihKo06Xheu+myXJZautZ77luPaUmCww9ZssjNJug==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com;
 dkim=pass header.d=nvidia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=HcNahN9GoGL0AP88sLUVxLsV+OiezgDlSya5Beqdmb4=;
 b=M/m2K/JOv5Yv/ToHUCusN/WyEgwTM6QbQuHVoqqc47QW+gR1ysR4Pg6h76Sl+YdllzPOb0n72NW81+RCaZjQxsxyywcvEPM5ArW+4Qa8V8qy3uXMm42Sv/2JIXJ+qMYfEs/p+4xbYG9JB5SeI+QyzFxQiWcm0FsDBoVoEYNVFORQvqGgDWZOFyUu2tVHRM4HOJ+Yo6Y9/CL2luVzoALO4GJ9ScwWm6W8ZSmHB/Je55r4hNG+nARGUVDGA8uaF9aoxwLgdp+QJRTSyuL08tlXFnGCKylCGENcMF7jfRoUjmRDnnZ16+AGtOItUsGDZUWM4k3EY7kQJ0WZQ3tWW/2NKQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=nvidia.com;
Date: Thu, 7 Aug 2025 10:08:11 -0300
From: Jason Gunthorpe <jgg@nvidia.com>
To: Leon Romanovsky <leon@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Leon Romanovsky <leonro@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 09/16] dma-mapping: handle MMIO flow in
 dma_map|unmap_page
Message-ID: <20250807130811.GI184255@nvidia.com>
References: <cover.1754292567.git.leon@kernel.org>
 <152745932ce4200e4baaedcc59ef45c230e47896.1754292567.git.leon@kernel.org>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <152745932ce4200e4baaedcc59ef45c230e47896.1754292567.git.leon@kernel.org>
X-ClientProxiedBy: YT3PR01CA0108.CANPRD01.PROD.OUTLOOK.COM
 (2603:10b6:b01:85::25) To CH3PR12MB8659.namprd12.prod.outlook.com
 (2603:10b6:610:17c::13)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PR12MB8659:EE_|DM4PR12MB8558:EE_
X-MS-Office365-Filtering-Correlation-Id: 08950cc1-2de1-4780-484f-08ddd5b376d7
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|366016|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?Nq/4a2aPxe/mtkoI+QV41hdJKUg3cdlvSoOR/muTmjH0jenhZt1pRK5w3IzH?=
 =?us-ascii?Q?p/QFHExc/MgAgAc9aZQDcNnoHwi28teNBmt1OWbiyYcoTOc5Cb2wtWDPulgK?=
 =?us-ascii?Q?lRbbS7eEZagenmxQTEc+UUnF8s1mRoMLRy32fpksYmbw5v8mYjrbqJAKM1u7?=
 =?us-ascii?Q?KOTKhGVh777MbtRutO4zJRcrF1kRDXeKNnthTkAOSt/dKpif4LMWsvTKEha4?=
 =?us-ascii?Q?Q1VF2VW8cL2wutuXlsjVj8hGa8LVjTreJD7E3Z1xkfakk9+ka0SyNAseQpcG?=
 =?us-ascii?Q?gsLbMjQCzBddVDXCW1kuNJvSGpoI7lnQiSfA7pZ8ADRalwfE+Wd03wgQR3C2?=
 =?us-ascii?Q?kLpHy3kjaXHOmiEXvOv++7pxX5zMW7IRAtLjqcjoQHoev6H3/qXbKik5wHXc?=
 =?us-ascii?Q?RRyt/ae8W9ZVP6FekBsEETq2wOTaO9MlqpMCLFsWmX8vKQVuI+iYUOTaTd04?=
 =?us-ascii?Q?HUBwHFwWjIpnrD3cFb3qcNkg4yi+bm8/GC/Et6ucLgPJXJbUKe2YkwKSZqSs?=
 =?us-ascii?Q?CDXXbkHaVZwJbeU0WnrPRZbrfPcUDbVI5eA10870B0FyKaIHyMRI0x7/zCCP?=
 =?us-ascii?Q?AQ3jJ9Op0mto7K0skfRbtGmvyreJY3Nh4Leuq440dmD3GbRTxpMmUJeTrSFB?=
 =?us-ascii?Q?sFdvVDqzXfYUTFxKXAmkp+H3L5XiaIg5fTDbsHh3T31qSBy+4Ggfd0FDv0wB?=
 =?us-ascii?Q?QGRI2WkOXf2Kln/xZiyDkCqR6+CtYgA9c23F0/9VpyPCk5ZIYjUdKhKWc/l6?=
 =?us-ascii?Q?TM16Zonii3uyIvOX+gBnQbtIVf8om4ZEYnCLTSajZ5xI3/rcs+rp549OwAaH?=
 =?us-ascii?Q?v4pwvGo9mvAy3l8n82aOYSmGg7xY25BQIvsalU3qzA9AWBQgz7SMLMNJpPSD?=
 =?us-ascii?Q?g8W0JjY7HjdwX5em71q4xpApzR95Q6pUwlfnbKpMtaz1BMNHNYXpfaiQmK4T?=
 =?us-ascii?Q?U30RbT4w7xqdhd7GCtAugnvLNCa0ZYjBubYnmojSsQNfh8blXE5jjBIyEvyl?=
 =?us-ascii?Q?N1ML8UBAaT/6M4w8S9RWSQ1HXCw3gyVhmA5qVYz6kRnwYAuH4jttPqqU21ts?=
 =?us-ascii?Q?mc6+jLwdCTRLxaqX0cAjTWTnOURE0pG7WC78sDc2oRS+nazzJoxhLoQR3j8R?=
 =?us-ascii?Q?ovpm0N+kaQoi6TiloWW4BZ8JiuhTZ9orE5xiKzRfsva9gFbF67IV1C1iLGHE?=
 =?us-ascii?Q?3Izs9IQYnVOP0aFr/uYb9NX1NcfuEY5HPyY1iQw5B6mk5As1LaYlHuIYnodk?=
 =?us-ascii?Q?mF32bjbDXsSDkQIxF/0LhDcdp9IuwTqAbTgUeSi9SOrVI3x8sat/XVh1s/GM?=
 =?us-ascii?Q?bmQc+MvkzYeqQSqXEvWk/4BPL43BorkZoPfZfxAAlzy9x+MlHnog1mzE/DD5?=
 =?us-ascii?Q?bl0OWTpu948qX9qOmmcDYGR17MxIM/C5TBPx+yLLOQF062Nxw7t4KN9UiIOI?=
 =?us-ascii?Q?P1tH+x/69d0=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR12MB8659.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(366016)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?Rj4qcstFxUNxsRt471nCdJj82wmdEq5/Kx7zvkQBLfZLQRl+ga88yJlYaCsf?=
 =?us-ascii?Q?CbdR5MQ2vuVy3EpcYdVVFFFuGDV6c/18dGgVy+aIQX4Xz3Taj0QWItN6MfAp?=
 =?us-ascii?Q?fdK3eG9vIwBOxPgwq3r8hbXL8FUymx7Ury4B1K21cfVGfAHu0/T8/7mSvooq?=
 =?us-ascii?Q?jJIMjROfGb2SglfRzuidjznIqdf3HNmIvDb9Vf0G8LS1A52miIu11TW9wBUe?=
 =?us-ascii?Q?1BGs6bBOxq8N9mz/FIwxof2vawn/poPbtXLbRIpUYk8UgzUBrBv1v4c1JtYn?=
 =?us-ascii?Q?otlxohDx2mxKpVCgHnOqkg5xVBuF0zgfBgBf0AlwsLRpwd4Q8G3xdiwPTnR4?=
 =?us-ascii?Q?Sspl65u0J6IPBVkwiQgyZatvFlT3rrhAQ+tuJO2UQ0mG239MR9IeOUJg9kSE?=
 =?us-ascii?Q?gW82aHqUFkerfU8AD3AFAWXH+Jfs6lzIna8/opyIEIDZIE73ZPXwj4CB5c8P?=
 =?us-ascii?Q?ioeE2zfcTc3PdvivMeeXMulub5u5IHBdiy2g5fVp/PRSrplWN1lgGq5TaOoW?=
 =?us-ascii?Q?EmfRJ957EM/oJ/1LU6bjRlXSt5CGu7B55SDYzKgMVCUNqIxc1mmDGOAArrwe?=
 =?us-ascii?Q?UihpLdOIVq2JzAecSr1X2GDfb3wYgiwSAORwRdpg4e4LyyimuAnso83lo+b1?=
 =?us-ascii?Q?ta0eoJPuf3AAa0xtEh+F1Rk89sYQF5ye5EZ9yOBx3VC1VC1NiMA5E2rIr7P4?=
 =?us-ascii?Q?uoSqNodY+GPN5iARUia8nXINxqfJBJNu3xlleOAE/SRO0smabmoLTY1a1FO1?=
 =?us-ascii?Q?piaXqyKi7ywfW73iD0HP7uZx2/0i/hfqglw01epL/KqZYbC60xX7iT5hW49Z?=
 =?us-ascii?Q?9cfUqCcxOAmwSFJR0PO/GKRiqarvC+1sD6fP7GS4kcFZ8jPtpItFsF9aWYX7?=
 =?us-ascii?Q?0FQVBSuV5d7s2mCE5WH8vNkQagG4ongmjy9XtQwwxlu/RH+LpeVH0NxyluGu?=
 =?us-ascii?Q?CULKE00Q+0mZc984ezCco3ZtV14RqVSsiCyR+XWoGXeCFv8hg9rD0s5tQGGd?=
 =?us-ascii?Q?YbKb24R9elV2YHlqk4oYH0kER3H2kQqdSdVXkIN7LeuWGVVN2E0boCQAWVrW?=
 =?us-ascii?Q?V3Vn6ZdR+qj3JARf/nEiTsP17PDBHDFKU6+Mfs0psjZXvdgFKHAl0TQqnLDZ?=
 =?us-ascii?Q?hWedoX7mADffbzxiSX2BhY2PCTciTJbseJX7GwyG6+FcZP+B3w3iakMH/pPZ?=
 =?us-ascii?Q?KcCtjslOcZ5QaDx6+zFxoEVghkCAbFOVxC7jA715eh+7ppgYr6nlG50Qimnc?=
 =?us-ascii?Q?Ge89r+xdDkrN+ZcjOqiXojuASnecl3FGDce7S6+ovPgNRbvtjNei5tn2J6Zt?=
 =?us-ascii?Q?CUVkOheZnHigLiuTQ/sJQ0//HdwQ9VAAgv+dMPZjKsNgbkF7N1cC5CZXI0uc?=
 =?us-ascii?Q?K9ct3Peu/gXnCYvZMLdFnl5mP/9x3jzXxseDC2Xq0GURAfeZAaZxCTjReqh5?=
 =?us-ascii?Q?CZ4WSzmbS5FGb4DPjk7IkC2gHvwHSDkiFBy0bOmm4ars19OIebfBS8MDl3C9?=
 =?us-ascii?Q?aoQdrCQAc1YMTs90T867gbeVLXS3snMjDLJlzsIbMvkkksphpbdW5Jz4pryX?=
 =?us-ascii?Q?Ma1w0FcmuWectGjgXy4=3D?=
X-OriginatorOrg: Nvidia.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 08950cc1-2de1-4780-484f-08ddd5b376d7
X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8659.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Aug 2025 13:08:12.8802
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: vOq4jHUsSKGMaJyXZYTLbMWHzFOPikNkJkIkpgwbuFDcTt8ZteeQkm001BjRjw4P
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB8558

On Mon, Aug 04, 2025 at 03:42:43PM +0300, Leon Romanovsky wrote:
> From: Leon Romanovsky <leonro@nvidia.com>
> 
> Extend base DMA page API to handle MMIO flow.

I would mention here this follows the long ago agreement that we don't
need to enable P2P in the legacy dma_ops area. Simply failing when
getting an ATTR_MMIO is OK.

> --- a/kernel/dma/mapping.c
> +++ b/kernel/dma/mapping.c
> @@ -158,6 +158,7 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
>  {
>  	const struct dma_map_ops *ops = get_dma_ops(dev);
>  	phys_addr_t phys = page_to_phys(page) + offset;
> +	bool is_mmio = attrs & DMA_ATTR_MMIO;
>  	dma_addr_t addr;
>  
>  	BUG_ON(!valid_dma_direction(dir));
> @@ -166,12 +167,23 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
>  		return DMA_MAPPING_ERROR;
>  
>  	if (dma_map_direct(dev, ops) ||
> -	    arch_dma_map_phys_direct(dev, phys + size))
> +	    (!is_mmio && arch_dma_map_phys_direct(dev, phys + size)))
>  		addr = dma_direct_map_phys(dev, phys, size, dir, attrs);

I don't know this area, maybe explain a bit in the commit message how
you see ATTR_MMIO interacts with arch_dma_map_phys_direct ?

>  	else if (use_dma_iommu(dev))
>  		addr = iommu_dma_map_phys(dev, phys, size, dir, attrs);
> -	else
> +	else if (is_mmio) {
> +		if (!ops->map_resource)
> +			return DMA_MAPPING_ERROR;
> +
> +		addr = ops->map_resource(dev, phys, size, dir, attrs);
> +	} else {
> +		/*
> +		 * All platforms which implement .map_page() don't support
> +		 * non-struct page backed addresses.
> +		 */
>  		addr = ops->map_page(dev, page, offset, size, dir, attrs);

Comment could be clearer maybe just:

 The dma_ops API contract for ops->map_page() requires kmappable memory, while
 ops->map_resource() does not.

But this approach looks good to me, it prevents non-kmappable phys
from going down to the legacy dma_ops map_page where it cannot work.

>From here you could do what Marek and Christoph asked to flush the
struct page out of the ops->map_page() and replace it with
kmap_local_phys().

Jason


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 13:14:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 13:14:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073061.1435989 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk0Rw-0000Dg-2L; Thu, 07 Aug 2025 13:14:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073061.1435989; Thu, 07 Aug 2025 13:14: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 1uk0Rv-0000DZ-Vw; Thu, 07 Aug 2025 13:14:27 +0000
Received: by outflank-mailman (input) for mailman id 1073061;
 Thu, 07 Aug 2025 13:14:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=igFk=2T=nvidia.com=jgg@srs-se1.protection.inumbo.net>)
 id 1uk0Ru-0000Bp-E1
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 13:14:26 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20617.outbound.protection.outlook.com
 [2a01:111:f403:2412::617])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6f7bd256-7390-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 15:14:24 +0200 (CEST)
Received: from CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13)
 by SJ2PR12MB7848.namprd12.prod.outlook.com (2603:10b6:a03:4ca::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.15; Thu, 7 Aug
 2025 13:14:19 +0000
Received: from CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732]) by CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732%4]) with mapi id 15.20.9009.017; Thu, 7 Aug 2025
 13:14: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>
X-Inumbo-ID: 6f7bd256-7390-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=vBn1JdBGA9x4xZIh1Qb9LferC/kfi8XJFZfqbibzERq7ivOz94Pqpmj8hALck63PYHMaNDP9L9YrNX8ObqtwtGunWhbQbTgpLrGB6/X9ElhBJaDgn1abG4YpCI+EU5ptES0IWBZD4eqKTZRRX6CGeneHwhcai9Fci3WhBQuIr7pPCFNLfzate68J43+y9MO3c5uLpaBkU0Oin8ngYrkx1QPliu0NDEoluMFyMhGsdt1A2dMWEGLp983mLtY1N0mqmHwDhTsHHDsMpsIEBn/N1z81ITYGqNvu+kzGN88sE4kVREINHIb8zgZakf83P6s42eOpACkbdUNyY3p/H9d0gA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=El+thOM+nhiCDBrRZrRPm7X53YNuufqNBvCOI8akTxY=;
 b=KA9FpaUt08qX2CppQq8pBakpUps1iarFcu0wmxsKbKq1UGZAmIuhfFai4EPbMLG9gwCcljlU4yGxuS3j9ZKLTVvHFNccMjLLKaG8Xc2409IrN3gMgZxjGmSTkyecxKEMw/caN0COZyGxqaTvMQAON2oNev8OgIuo36jLIGgZOi9wNRkahl2UE+s6RESu2vzK5Xxs7Je4/pgR5gsskjP0TSyyewdJ6+dC6gE0V4pAJB1dmVFkuHc0Z9nadC5a9OXgyWSQVug9oKGc57edWruLaxTdGQsgnD2xSrenTLYmo6+i2oXIDrn7nMyw3t2CCaM6E+qUitFeVKAPfkJJZPOXOw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com;
 dkim=pass header.d=nvidia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=El+thOM+nhiCDBrRZrRPm7X53YNuufqNBvCOI8akTxY=;
 b=FY4nlR+soJsM8klSrOPAOrg31kLGJYSQ1tRih89ZOhYX8cHF0e5Kr7JsUhzT++XuWV1fRQqYXYlaMp6Gv4SEhA7EOajLWicC5/kViZyYXEQwudBSyIfSuDuy9EB7crZH7Jpn60upm4FhetklY+OzV1NhH/JgQC8npA1jViXcfZRhnbL1NagLlzV8gsdhULttxhS/HnNp7g334yoINUiQq3PBG+ee/IbYQf2TiTFErVLk4IeEcUIwVtVmbSBBPtJPXMrTB3bM+gKjf+FVEV7NNONnAAuTtK2c6L7OnI49Eq8GXFJsDAxK5quucGyc2kNQSIzvzGosJbJvuekvXUuvmw==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=nvidia.com;
Date: Thu, 7 Aug 2025 10:14:18 -0300
From: Jason Gunthorpe <jgg@nvidia.com>
To: Leon Romanovsky <leon@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Leon Romanovsky <leonro@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 13/16] mm/hmm: properly take MMIO path
Message-ID: <20250807131418.GJ184255@nvidia.com>
References: <cover.1754292567.git.leon@kernel.org>
 <79cf36301cc05d6dd1c88e9c3812ac5c3f57e32b.1754292567.git.leon@kernel.org>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <79cf36301cc05d6dd1c88e9c3812ac5c3f57e32b.1754292567.git.leon@kernel.org>
X-ClientProxiedBy: YT3PR01CA0030.CANPRD01.PROD.OUTLOOK.COM
 (2603:10b6:b01:86::18) To CH3PR12MB8659.namprd12.prod.outlook.com
 (2603:10b6:610:17c::13)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PR12MB8659:EE_|SJ2PR12MB7848:EE_
X-MS-Office365-Filtering-Correlation-Id: a23f7666-f381-44ed-7261-08ddd5b45152
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?Yx6kIC87cr6QGSDO2/ocsFrHfxDyWPJob8ClpG/b1iCCx7jQl9SbfJdYwGmA?=
 =?us-ascii?Q?0SCnTP5cEZ+3uAVFbD78BsFna0duU7C0od9AcX5Dw8Mzrz+nbkwFg/hdTaHt?=
 =?us-ascii?Q?gv2QpU2TCx0BrBLg4ywaxeRFc4u5BKvtUAXQ67WyVcg0OqaJlrQYfjbUe9Z3?=
 =?us-ascii?Q?CqAbguL+FG4tumyFaizqRh4k+dp2hCN9HXtGKrxEWkA5W3mydAEWUtGfTiH/?=
 =?us-ascii?Q?yFyGlLM3CUYv0UANPgz8OLGYtCb/v0dj0gkGIYwqZG+lWYwusuturuNdWh7+?=
 =?us-ascii?Q?GVjp/Bgo2X3M5DMMnUMa9Ep7r7l5GssZTr/5bbS8Y1v+cKsUrLa7BPvkk1ZP?=
 =?us-ascii?Q?s70SpOqcSGdkND8E942R5iRoXPupjZ3kkVPf+DYptPKaqjd5fbq9Z+6gTuXV?=
 =?us-ascii?Q?a3y8riXtmpbtg28ZYqedgMM+CfTcEuf4cU280lroq1gFO3YEk0gazAmuuGBx?=
 =?us-ascii?Q?R6+0vZP5txw7pvYcOtgZKl1JFHdEc6fTKbude7jN/aJjR//mVPt01KfIM2fs?=
 =?us-ascii?Q?08kPqK0J/g3uGNao1I/+Fnuu+FOXB2jz7qwrIGSkDh7rw1PB6mnz8sB1rpz8?=
 =?us-ascii?Q?Jn27l2c1oQALl352iCNwsf0c6ITtO6moNQe533xtAhdO0FFEsfKEVIOknrRC?=
 =?us-ascii?Q?DWp2BJCXq6NTEFjdqMBC0XQ5kCyJk1S0a8DXyVt6G9ce+mRxNqW8GfjZXrfQ?=
 =?us-ascii?Q?Mmmo+Jl+pvKHt9DipPEWPQeBHFgzP5lMcc8WDaeQvLRV2ag3LKM2wFvbjKoO?=
 =?us-ascii?Q?tsR8cITmN8/qPhDOrc3kjiw5h3MTe9v9jt5yiPv1iQc3NMUlOsc6xNkZKlo5?=
 =?us-ascii?Q?mb0zVO8Alu64x/hQnn3jI+IRDejbHOp/lSM3EimbbBwEuYcHpussF4L8onAA?=
 =?us-ascii?Q?2aL0esT331BhR8he7KtMygbYUbRU3fQppAKtbivq5MwrNN+sPdtjY5r2Jmm+?=
 =?us-ascii?Q?mXTPBVAbzctgZlFjhuNWr4ywRaPhc+qdz057kgKpQcfPeO8hzfmslfYjiQyH?=
 =?us-ascii?Q?WJdBQ+BnKG2lf58O0d08gaplR1D0rbUnLpQ13+jStDLHFl+BR/dtxQ1Mo2hF?=
 =?us-ascii?Q?FIW9fKzat4N7O1IgCwfshwUU2SsJzohB4z5GcWgESxNrhD9iO/zb8/fPPCJx?=
 =?us-ascii?Q?ofJFTmayXtZt6G5/Wq9qUYF1iXoIDFkMLkJQp2txvODyOLoK8gbf2zUi1b/Z?=
 =?us-ascii?Q?seAoFm/rc/BwrTiZRJoCEV9Z9olZ/6sEDTDynIGyQnzfZqdOV5cWEWGrx9Oq?=
 =?us-ascii?Q?KDo+hdwdZ8gUL2N2BozkcLAq+12z9JijoLk3kCmmkjiRgDIaPndijasGwCuy?=
 =?us-ascii?Q?vetI4XxhmWoShno5QwSD24G85Kp7wA4KwhKDacRBp5HBY+5qsDfWYlwLq54C?=
 =?us-ascii?Q?hwRnM2A48KDse6KJxxem1NUwmWDBdjBbH/G5U5bEX5SL6PwpnGTjy6NEtvFr?=
 =?us-ascii?Q?wZLYwWVsRiA=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR12MB8659.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?GuZggLyOM7OO92e5S7fOJyVVd1bi7L4yafMEFEoOjse8ZKlxA1U3xm6kb291?=
 =?us-ascii?Q?Fj+QvjYgFaJiEiHxz5PqGjBzSZyXfw8Gjo33jyJMkZCwVmN0oF8qzg/kWFRH?=
 =?us-ascii?Q?gz611O6P7nTz22JW/wGyCc4xb/huGIMzl2GxhhGQxoJseBpF9zTTW7WKa/hg?=
 =?us-ascii?Q?96RAlndKeft0qoeyV64IK0vKmAEgKE7P4FV53P82XuczrJQQ8eTRpXz4kHwE?=
 =?us-ascii?Q?zugrV0R5VcFO+4fQT2J8AFhQPRfx0/oHI59iuFu+CybYJfFgLe05oVISv/5z?=
 =?us-ascii?Q?74C/mjVWkPueRZsZIPympDwkezhDUinEz3vqUqiggYVth9f90CbJkHizkLQB?=
 =?us-ascii?Q?D1vQhwNCzvUA4Ro7Ke72OslLV0q0U9Bbd6n5jj4kfvhwlsXfc/7oJBWqmzRn?=
 =?us-ascii?Q?t4gib6TNBZTNjGXdk4ONqP11TZXn6lr5hX6MTdTKJNmhJGEoZEQVFT/4e8Ko?=
 =?us-ascii?Q?sQvfbNamaMosU0aQrvUKrtUT/fyBQXJ+1shPUdRuJau11/VW7SwXv469h6vP?=
 =?us-ascii?Q?sVP7HGe5m/6t9TiaSNPdbyPNjpBfiCyfqdVEs9IxULDQ9LgLCPeXLzXf9W4w?=
 =?us-ascii?Q?2qyPMxhaFptcLSikYv7DGdoxO0CYlCTu9nsjh7zg7iGE3mw2LJnY7i58YVul?=
 =?us-ascii?Q?p2uLUsm8/8i4cuw6IUDE+DsWF1H2w+BE3rUZ7sNDlus0JkAs8252gQ8XWn6O?=
 =?us-ascii?Q?sC5RD9aM9WHFQX6c/sGHiLkAZj68TjQsO//jT90tqz21eYHdJTbfWBhZ4aqO?=
 =?us-ascii?Q?U21fyMUfaIM3lElqIgSEuaH/vO5AH9lwLLjCP03Te+j44kFq5d/HqFct5Ma9?=
 =?us-ascii?Q?78beNahziuj+Y2QHuLZKiUwl+SUYIeUEJQcmL1in7UrD5QRMVYKayZ8LGFKM?=
 =?us-ascii?Q?x52Twm9SDMpnOZSWhmNPIPoLEomznG8BUEh3zBZNqFZpFmjJ+RHYj5CYOAXt?=
 =?us-ascii?Q?u+eHw2MSAHczRemjOUlW+orG41QG/hJOistp8cNZgH3dL51L8WIZJPgI7U8i?=
 =?us-ascii?Q?/xBRu9Xrg9FNYZ7UTObMqQwFNu/z8SVkBAItFtESetAg2twGmOiiCXC21CUM?=
 =?us-ascii?Q?LlEMSJkGdenL40iXOQO1gcxqnnkDQ/togw57I64AcBIUbcwUdekwE+cjb1bn?=
 =?us-ascii?Q?uUgiwo/Cg3vq6go3nQfYav2gtskkL6QgrgQeni0cZpPw0g6KVIGRMKohBywz?=
 =?us-ascii?Q?xZfGb27F+pTKeerTEMXeGaeEKywXmOseZYA0Avrtso12WDZS0/Pq23eFHDko?=
 =?us-ascii?Q?D+ShdTL9LuRZH0/Q036D5ymT6YSGnNLmr57e3O2ObempFdRETN/iHb+eByUJ?=
 =?us-ascii?Q?kgCKRYpnDnqlGCtg3s+P2/AMRrtScL4IE7P0xfCUesPrAC1GWIl0snuSZOl+?=
 =?us-ascii?Q?lcbn5RpD41vxbKtjUCR7qXezT1h38mkBHEFa+0an4/ybVHzhh+AaCZW9TYyQ?=
 =?us-ascii?Q?NJEvG2UWsBKfjnnmZIZUawI/79M/asPB821CK+zuhJC80V9BYs/Ctxopy123?=
 =?us-ascii?Q?bXBFCOfdSfDPTtVNYGbmXrXS72FHDUg49E4abuhNnFKOZdW+2Qvo71nq0iz+?=
 =?us-ascii?Q?T9+TW6anY1irc05J9FU=3D?=
X-OriginatorOrg: Nvidia.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a23f7666-f381-44ed-7261-08ddd5b45152
X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8659.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Aug 2025 13:14:19.4548
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: +hIdqSIgATwRq7OJckpehDxKPFDImSL8By+RE0tqZl/FgfZFXraRXFcwjhcsQya2
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB7848

On Mon, Aug 04, 2025 at 03:42:47PM +0300, Leon Romanovsky wrote:
> From: Leon Romanovsky <leonro@nvidia.com>
> 
> In case peer-to-peer transaction traverses through host bridge,
> the IOMMU needs to have IOMMU_MMIO flag, together with skip of
> CPU sync.
> 
> The latter was handled by provided DMA_ATTR_SKIP_CPU_SYNC flag,
> but IOMMU flag was missed, due to assumption that such memory
> can be treated as regular one.
> 
> Reuse newly introduced DMA attribute to properly take MMIO path.
> 
> Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
> ---
>  mm/hmm.c | 15 ++++++++-------
>  1 file changed, 8 insertions(+), 7 deletions(-)
> 
> diff --git a/mm/hmm.c b/mm/hmm.c
> index 015ab243f0813..6556c0e074ba8 100644
> --- a/mm/hmm.c
> +++ b/mm/hmm.c
> @@ -746,7 +746,7 @@ dma_addr_t hmm_dma_map_pfn(struct device *dev, struct hmm_dma_map *map,
>  	case PCI_P2PDMA_MAP_NONE:
>  		break;
>  	case PCI_P2PDMA_MAP_THRU_HOST_BRIDGE:
> -		attrs |= DMA_ATTR_SKIP_CPU_SYNC;
> +		attrs |= DMA_ATTR_MMIO;
>  		pfns[idx] |= HMM_PFN_P2PDMA;
>  		break;

Yeah, this is a lot cleaner

Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>

Jason


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 13:15:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 13:15:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073073.1435999 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk0SZ-0000gc-BL; Thu, 07 Aug 2025 13:15:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073073.1435999; Thu, 07 Aug 2025 13:15: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 1uk0SZ-0000gV-7t; Thu, 07 Aug 2025 13:15:07 +0000
Received: by outflank-mailman (input) for mailman id 1073073;
 Thu, 07 Aug 2025 13:15:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=igFk=2T=nvidia.com=jgg@srs-se1.protection.inumbo.net>)
 id 1uk0SY-0000Bp-Is
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 13:15:06 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on2062f.outbound.protection.outlook.com
 [2a01:111:f403:2413::62f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 87a52c56-7390-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 15:15:05 +0200 (CEST)
Received: from CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13)
 by SJ2PR12MB7848.namprd12.prod.outlook.com (2603:10b6:a03:4ca::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.15; Thu, 7 Aug
 2025 13:14:59 +0000
Received: from CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732]) by CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732%4]) with mapi id 15.20.9009.017; Thu, 7 Aug 2025
 13:14: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>
X-Inumbo-ID: 87a52c56-7390-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wo7k/uTJcp855ED3LJ2trHqYOTev4jBcYYE5YCzT2lh6ZrTAiSZnK6310k5CwU2DX10KGyyyMZKZBU8RMc5vPnCUrXZ75/vrnILosqT52b0KVH5q9zE8A4M5Rwvmz9MtWNd7qxKnJ2PJbQaEVj+yzxHyEJ8kCvuCefO9Ww9d5NaSKaNRQaLHCygKxRzuBAmOGUT8kuX4N6Lm5YS5EXO+L8UOfUGCf7+tmb/xnK/rzrG+vjOLVIThtuO4YGYEYXs+xyfjnuuOFbK3vRkOaoziwWcicM0MdtajbyNIgdgnQ9B895Gx2eXja2Jdm23RboMkhF3jUyeex9YxhdtqrEmCoA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fhrpJXFQJ413bVBg/dYiA6Su59FLs9ca9I3Q/eQtjEk=;
 b=EHGeulZn/cEjtXGORzllVslfrrFvgrgMnl/ePhrHnBOHldTAU8S8irht6EJwWSYJKvMe1oo3TlyGX7HHg89opsTeE9+b/k5ud81AEpmH4nGwg6JRWUHwXbHjisHW4FLEvfXhT+2gWLCYc9LS1Zep8h6WJa134oN59w6WfAzyDVPGU5EKTIYoLEOhmEscKKmBs/1eHdLnbaJ/4RKp5qM+xm9RJuhwkIXsK9OnATvBAdfkKdp0FvwkVOsEo3pEzyEaqwKhuKj6a2ct20xIOkVenCjiCIZcP//vJOlO1JkbQIZk32YdvShMWKBhXz+Bw25fXOrSXffAm5e7mG7YvvXQag==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com;
 dkim=pass header.d=nvidia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=fhrpJXFQJ413bVBg/dYiA6Su59FLs9ca9I3Q/eQtjEk=;
 b=hRuZURXLK+zmTbd9v35xpwN73YrZJmzpo6AohN1GdvatI0CQeIaAvaF2e7/fshyFGm/sFxcxDnGai5zoVbgqmz6fqFdwhVvOWWZoi3JmCc+Wod51RqwLJPaGBcifo2mL/pyA6TKZ2cuibWLWy9ZK8Dw6+fjlPqRmkp+n/NdBuyOJplcEl/OjMyTarZxlQu/1JjdFptZTshnQeonCEnwSKQENPqRMBNPfv19CulsZKLx+ZO+twSitmWu+5m6czW6wMVJWKPj0V2vcBTWXMQrvBc6JzDZo3jwFDyZrNXvwQGf99enE7yZ6tmEIiVP8HyRBiTo0SgS0s8i6bAGqbA1oMw==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=nvidia.com;
Date: Thu, 7 Aug 2025 10:14:58 -0300
From: Jason Gunthorpe <jgg@nvidia.com>
To: Leon Romanovsky <leon@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Leon Romanovsky <leonro@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 12/16] mm/hmm: migrate to physical address-based DMA
 mapping API
Message-ID: <20250807131458.GK184255@nvidia.com>
References: <cover.1754292567.git.leon@kernel.org>
 <6d5896c3c1eb4d481b7d49f1eb661f61353bcfdb.1754292567.git.leon@kernel.org>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <6d5896c3c1eb4d481b7d49f1eb661f61353bcfdb.1754292567.git.leon@kernel.org>
X-ClientProxiedBy: YT4PR01CA0453.CANPRD01.PROD.OUTLOOK.COM
 (2603:10b6:b01:10d::14) To CH3PR12MB8659.namprd12.prod.outlook.com
 (2603:10b6:610:17c::13)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PR12MB8659:EE_|SJ2PR12MB7848:EE_
X-MS-Office365-Filtering-Correlation-Id: 1a07515f-ddaa-4ac5-b3a8-08ddd5b46965
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?GSImJahfz0YNnt1fwDp+mBc8ssN50vC6AfMAVhkIOcvn/O3sKKoVm/4ksk+C?=
 =?us-ascii?Q?ocO/j51p/V7ugnNBtvoABaUqHrSIHA9Hm3UvgFM8lP6vQxcc6ItyQVS8sL+1?=
 =?us-ascii?Q?AFJZ2QOJt7mdJGm1fDtTNPXa0+l/bFsl4GGBxccS/ZBCMRWwW6kOnrInWdhN?=
 =?us-ascii?Q?83XGe+RKzaNtVWcHVBFBaBo56C/aGBb5C+9EM6ZUTolx2BRnrpu86JJU/wly?=
 =?us-ascii?Q?9szly7j+qUXn/j4XVZcOHY5lDECADNx528PGUctcbByhNzn1Nb1j9ruTOZq+?=
 =?us-ascii?Q?mS0giz6+NtlYc7Sj5f39bXIjYeyXMDM+3/5HOLSrKpEO7nkBUtlg7hVlfYKB?=
 =?us-ascii?Q?0XwxqyC+ToKBhD4XgCtw+Iq+U8Mo0KraoFrBPq+1wyov3kpH0c8gjn5r6K3W?=
 =?us-ascii?Q?j3BHaQxj+rE9iX6vsQJDexzC1wmVL/mrIxtKjiFoM5HcDocs3VBn2jPVMLJ3?=
 =?us-ascii?Q?BdwIUdxEwiEfV0GpNoRxxguI0E0FYCcuf/MKIAW3891CA5OFHWqirQlpsgDY?=
 =?us-ascii?Q?XkURAwqUb0dWLrOxoL5l1X1/NqGr0QT4Suj4DNnf4ohQmbMpToCrPb2zl8EB?=
 =?us-ascii?Q?q1viVoNJz8xho2ph51Tdx9z+bDtkvRC1kXGyv7sI8UEgJt/f99Cxpgtx7g77?=
 =?us-ascii?Q?vnX2EJLvSGKe3KSusQvb55iJieU6kCocSj/sIXxsDZq3RKVn8Ne04l+MHgU6?=
 =?us-ascii?Q?CMmGigO1sUjkKIYoUiZeOYP4AlwB1yCIMR3GAr/99Nuoc370O35GK1mGVfuY?=
 =?us-ascii?Q?e5Wiv3u/K9vUiSL2kX+g43gTTZAdICuCcJz204KRJttcQl79pgkqkxi/EIvA?=
 =?us-ascii?Q?sTFGuLo4MafZMKHhqgEtiJxm/b5gtT+nRMhxgVUSObDw3JIp2bvXm75dYN/w?=
 =?us-ascii?Q?6l5nyT/xIRGSEitQu/Lr2FHKQKHn9MHFRQNRWp0DSTUG+3qXMxQad5hJvV5n?=
 =?us-ascii?Q?dWqC71GofP4YKjxsIZ0c/H3MDQ8nkezQjLX/dCrCvLwkNlzb6m0AgT7K2jqx?=
 =?us-ascii?Q?9R6bD2ZfdnvuXjOGyJ6fhlN4SLJQbtPufxDLKQTfQB05olRPoAUqIBiCO5bW?=
 =?us-ascii?Q?yH7Pe2lbyALqgNdWAIp/EqvK6E4Thye+lVnh6zwiLrDMa65lu8lekZ4aiXIi?=
 =?us-ascii?Q?c/b6ljhCYqJfdsScF1CbUScdoN0Ap1gfOL7Vuu8zQoVZqupoIt/yxUbtfQ4A?=
 =?us-ascii?Q?tZaSCbtFmaRduYZYpoPmB5tyb6mpkhRYiwdd6eaAJU0ybvtQ0OKqyLXxeiQv?=
 =?us-ascii?Q?OWjcSpaA7rvKBbgiXM0giidUJTWnVU6jrP6WmyNtYgMrKTzflx6Tgz6pe/l7?=
 =?us-ascii?Q?4AvALcXlgU4yOMOFDaKMZS5SK/bTKr96s0QiJhGb3mzDbYBU3EgfkOp0Jxr3?=
 =?us-ascii?Q?pFlomqRCIkf/qHucrTbTlGSNMnPQq8DSC6J2iHHFV4+igvw8ctO77QccHuvG?=
 =?us-ascii?Q?BSNvcvV7iDM=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR12MB8659.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?uVQwG2u0CVNbXDDS+5ZdwxowmLZ5OHkQuEUxGqmleC+7gjjEVrPza8qdCu2H?=
 =?us-ascii?Q?DqmgrtbTEojW6zJDsVFIcNi1mJtxn/lW5SIBCCh4cx4QK6iHT6bCoistEIsr?=
 =?us-ascii?Q?V81Ce1X6q1kOGhUq4wgeXBtDhahFfmTQ5ljjrt1UI+qnmP4Ilj/Zcc7yLrts?=
 =?us-ascii?Q?4iDSIZoTfHlAI5W7hlopIAm7a4w63jWe4fKj71k1Qumik5Nh6xIYj7zfpR3r?=
 =?us-ascii?Q?i5uOwuhZ3HvtWgwSuJhT1aS7m5u41Ag2I2lrRUwqL0AVtiIjLPjwX/qK6Zrq?=
 =?us-ascii?Q?KO41KlW1eTh02FnnoO1GT/Ib+kl0sV39jUP4abkPVRba2S63iWWmInlZ+xzW?=
 =?us-ascii?Q?ujOMQ9ef4P240ZAM4NRcuIMcQRURHa1gE+rjuzIMMEDO4pLl7/pzjlZdn6lq?=
 =?us-ascii?Q?MznwkkeNxk6uvq487o4jFJpPpsUdZz2nEzvUuBx/rPzAaCFQNNNC0RQN7svm?=
 =?us-ascii?Q?dhMy0qzKzFQXhQh65YVbx6AzQmkyN5Uk2APUSFJjGWZY4Az3xQTMtf2NXZnB?=
 =?us-ascii?Q?nzR8e0xSr3JS3DKhLaWw530AwSv4hpYooUcrB0NnM8F6A+0woOQdR0VaT+iC?=
 =?us-ascii?Q?Vadjw9RX4KbqHbKVGsoKSjkTk+bA57fulc3p/bWQIHlEn8Kyxi1eGatWiFK/?=
 =?us-ascii?Q?jHdn0+a3csJUb5cBRLs+rVWoY+1AqrvRqbg+U08UNpCurQBWF6i5J087gACH?=
 =?us-ascii?Q?LW2aYjif9bGLKfmDzee3sqwJ5AJkGUmbB6UKRJFW1+HCxZBnOqUwx+HsA7EB?=
 =?us-ascii?Q?zOLqpjCMVfm49rgIfbh8WSfJPplF9WKE0FZWXrSxYOofC7kDOSj/W5e0Y3Dr?=
 =?us-ascii?Q?6GJ+XRM0WEAXZQzPzSWJ+jLw7tbuNqCuEDn7e8h5uCpfXo2ppikWX2hZbwW3?=
 =?us-ascii?Q?xgrQ3DesCQzZLLs2caRCHXivsYaNx938WILpK9WWFsgmSoyhc8MGyNESDvJb?=
 =?us-ascii?Q?4qvLGxLu4SfHFaPcYHm209mQY6xpelBXVSXJA442Yp+hJm7e3p9IMFi8RoBP?=
 =?us-ascii?Q?MmAZ4EjmfuSqZXz/PL11o/ynTW1D1jHmnKn3HIqrahsFm4/JoYyOlQZP4UHq?=
 =?us-ascii?Q?YfregCimSaNIXwVWh108NkwU5pbdz3yPazMSYvuL45kMcHa/70fUn0/9tjkZ?=
 =?us-ascii?Q?/fJSdzrrdW9cUHpkHtiOQXTckFjVfNpxgXDuS4tvv6cLaDbscTAfeiW8RVgf?=
 =?us-ascii?Q?HRFm5YF4KRqmY4ZEgrsyGu7clCF7UXAFWGnbmM11qCj7cImhrJAYXMDQ2b0Z?=
 =?us-ascii?Q?4UkpZKzb552akcXznmWtJe5aSm9v5fj7+ipUL1EuxH3aI0Bg6mF3EUzbLH9A?=
 =?us-ascii?Q?umBxh3cGpH+Mdf0Uka6xf4IPU5USIcPJWKiyNaQXVSAXsm9PlUfTLQdcc/ld?=
 =?us-ascii?Q?WhI2SVYFqbI/1QXzwljSHsxSi8jYAMow6c0+uff7K5biL+6kvgE5khgWhjcO?=
 =?us-ascii?Q?FX/WHQsGoZXDDdOGj3cexmCiGtYwnzdnHV/f0WHDVT6/xj7SB1e5mL5hFpTQ?=
 =?us-ascii?Q?1AltKpMuPum0qbcYABG//OJr8UX1BsZ8/wiz2T/B2maxJTItHhJS/pj5YFQq?=
 =?us-ascii?Q?xY1T4eXY8Gl9xBE6JQM=3D?=
X-OriginatorOrg: Nvidia.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1a07515f-ddaa-4ac5-b3a8-08ddd5b46965
X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8659.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Aug 2025 13:14:59.7997
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: aRilX0OJKybLQvXrxDL1luTg64hyjr54mJCIoCxuOa64E1WkO3f40ZTT12LJxHyK
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB7848

On Mon, Aug 04, 2025 at 03:42:46PM +0300, Leon Romanovsky wrote:
> From: Leon Romanovsky <leonro@nvidia.com>
> 
> Convert HMM DMA operations from the legacy page-based API to the new
> physical address-based dma_map_phys() and dma_unmap_phys() functions.
> This demonstrates the preferred approach for new code that should use
> physical addresses directly rather than page+offset parameters.
> 
> The change replaces dma_map_page() and dma_unmap_page() calls with
> dma_map_phys() and dma_unmap_phys() respectively, using the physical
> address that was already available in the code. This eliminates the
> redundant page-to-physical address conversion and aligns with the
> DMA subsystem's move toward physical address-centric interfaces.
> 
> This serves as an example of how new code should be written to leverage
> the more efficient physical address API, which provides cleaner interfaces
> for drivers that already have access to physical addresses.
> 
> Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
> ---
>  mm/hmm.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)

Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>

Maybe the next patch should be squished into here too if it is going
to be a full example

Jason


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 13:35:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 13:35:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073091.1436009 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk0mK-0004T1-Qs; Thu, 07 Aug 2025 13:35:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073091.1436009; Thu, 07 Aug 2025 13:35:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk0mK-0004Su-Nr; Thu, 07 Aug 2025 13:35:32 +0000
Received: by outflank-mailman (input) for mailman id 1073091;
 Thu, 07 Aug 2025 13:35:31 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oMMd=2T=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1uk0mJ-0004So-Rq
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 13:35:31 +0000
Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com
 [2a00:1450:4864:20::530])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 63048c59-7393-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 15:35:30 +0200 (CEST)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-6157b5d0cc2so1415896a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 06:35:30 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-6176052d163sm6033291a12.48.2025.08.07.06.35.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Aug 2025 06:35: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>
X-Inumbo-ID: 63048c59-7393-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754573730; x=1755178530; darn=lists.xenproject.org;
        h=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=ZMQQUPqbSmAQ84PcDpsPR1TssQhbrv8TMUlid5SMt7U=;
        b=m8JNP52qLmGDLPbhnclYlDxUaOMejxStOU5w6vJmQI87A36ndAG8ALgGM78e0dz0oW
         tdrhkOZKk0Q4VKaoTVAd7DYsYW6Tu3bIAEvoWoRtkwy8tFtHnGPV4cSFl9ERF6m6QTD2
         BvUZdGOlgpHfYfzt8XQYaeqDa2cPXlJyJMYMQuWknpdg3LrqJ2O3UyEYEWbUoLbRj7R0
         FUDvYiECAdNO4KXwpQVH0fIbxOqDO/IrVRWhxJkDOIdXWQ2QZiHBljJL4bYHU2/O8+i7
         9iEGp09Hfsjd+OcG9HTlG5nGkL5uBLSaaEaMH+YbI0+V0R+/jBab0hjue3iE7FEhP3RW
         JlLg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754573730; x=1755178530;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=ZMQQUPqbSmAQ84PcDpsPR1TssQhbrv8TMUlid5SMt7U=;
        b=TCP90csNVkcuGsOXqTaR/YgGZ4xhIrA7zCLqCT+V+fWhZ2fWVwa8hkm0f2i6ovD3pq
         AKr40m/kYkXPkTH/iuhl8mN0rLpIWcACUibYhh4LsTRADmmSTYit23jtImLxNMFafpy6
         ks5WFitZaTVKR7SBq0mdh/zKlq/UlRA4ThjUndM9BYpM9+HLlP9E/hC3t1wytrRNT8Cn
         6e5coc45SKQ1PsiCIU4u1lEyW3WGUa5RZVupOpTRB+8haQX9B/QLv+Y2wxEPIoGtf2rW
         rQHNmi7aaoYTieI8qvbXVlP8rknwK3rye6Gx10Onq49GB/h6nYb5F8WdD4teeCvfv2oX
         0f+Q==
X-Forwarded-Encrypted: i=1; AJvYcCVi+RrKFdgi2SRAuG8lylA1Caw9jJ01oIcmzfHSZTPYFalwcJjyJZZDX8bvEdU6+s41ughRUgY9KsY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwzqUlYw42li6f0TA/IKIQUMHlU2I2uK7diux6rJdCH3j9bk+jx
	QnAr7KplVKJVhcUf0S2r/vb6efCZo9MYS5YbbqZzpeSR4DoB/j4+tw/v
X-Gm-Gg: ASbGncsIQjmpKM0P0N86MX2Tfjn+bpUB81rT2yHDeaNjitOfwMOeFc2RZQ6sAAkQhnh
	w3ogvWc0i3o9hj66rUNulZfie93UfnIwzwSqPRD23tWXsrhtY8sPwnCTqWk2GsqHMe7ISmw273h
	eIVXrCstQDz2T0EoTKNZZjsgYA7tJizQM/oHJDGyzxLNDIWWy81P8R5PxP9AqqbsUy8mGiU8y12
	F8UwC55sol1SDVJEVvQME150/x1xPIdczZM985Jfij1+/UchBqqLC9LkVKjCHW4Le+1XPvK2OQ7
	DcI4fKnQfzEbCyJ82GZEW/VJOIWHlx6v4+grcWAg7RHZmXauYWzedyTOq6xfpfz8+ENL6K8Ll1B
	JTOKYUw04bFEeU/f8nXS3TckXz2svUqhmz63ral6lqb6XzJnwYD1jfXBstdQW8USk0CmSWSs=
X-Google-Smtp-Source: AGHT+IEM0roZqSysoFXqrDxjwksiGBMuheWYWRwh/WggvQ3R1gIncLhEctJQNa34eECIheOm/jWesg==
X-Received: by 2002:a05:6402:3111:b0:615:399e:d3ba with SMTP id 4fb4d7f45d1cf-61797e2b407mr3699780a12.32.1754573729903;
        Thu, 07 Aug 2025 06:35:29 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------Ai0G5NcisNLRIKxItrFcJzkT"
Message-ID: <ccdd5caa-2c91-4125-9c6b-067c941649b1@gmail.com>
Date: Thu, 7 Aug 2025 15:35:28 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 06/20] xen/riscv: add root page table allocation
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <23c79f07221dee7eb782ebb160442f3a796a41b2.1753973161.git.oleksii.kurochko@gmail.com>
 <7491c934-f847-4fe2-9d9b-a500f0888198@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <7491c934-f847-4fe2-9d9b-a500f0888198@suse.com>

This is a multi-part message in MIME format.
--------------Ai0G5NcisNLRIKxItrFcJzkT
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 8/5/25 12:43 PM, Jan Beulich wrote:
> On 31.07.2025 17:58, Oleksii Kurochko wrote:
>> +static int p2m_alloc_root_table(struct p2m_domain *p2m)
>> +{
>> +    struct domain *d = p2m->domain;
>> +    struct page_info *page;
>> +    const unsigned int nr_root_pages = P2M_ROOT_PAGES;
>> +
>> +    /*
>> +     * Return back nr_root_pages to assure the root table memory is also
>> +     * accounted against the P2M pool of the domain.
>> +     */
>> +    if ( !paging_ret_pages_to_domheap(d, nr_root_pages) )
>> +        return -ENOMEM;
>> +
>> +    page = p2m_allocate_root(d);
>> +    if ( !page )
>> +        return -ENOMEM;
>> +
>> +    p2m->root = page;
>> +
>> +    return 0;
>> +}
> In the success case, shouldn't you bump the paging pool's total_pages by
> P2M_ROOT_PAGES? (As the freeing side is missing so far, it's not easy to
> tell whether there's [going to be] a balancing problem in the long run.
> In the short run there certainly is.)

I think that total_pages should be updated only in case when page is added
to freelist.
In the case of p2m root table, we just returning some pages to domheap and
durint that decreasing an amount of total_pages as freelist has lesser pages,
and then just allocate pages from domheap without adding them to freelist.

~ Oleksii

--------------Ai0G5NcisNLRIKxItrFcJzkT
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/5/25 12:43 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:7491c934-f847-4fe2-9d9b-a500f0888198@suse.com">
      <pre wrap="" class="moz-quote-pre">On 31.07.2025 17:58, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+static int p2m_alloc_root_table(struct p2m_domain *p2m)
+{
+    struct domain *d = p2m-&gt;domain;
+    struct page_info *page;
+    const unsigned int nr_root_pages = P2M_ROOT_PAGES;
+
+    /*
+     * Return back nr_root_pages to assure the root table memory is also
+     * accounted against the P2M pool of the domain.
+     */
+    if ( !paging_ret_pages_to_domheap(d, nr_root_pages) )
+        return -ENOMEM;
+
+    page = p2m_allocate_root(d);
+    if ( !page )
+        return -ENOMEM;
+
+    p2m-&gt;root = page;
+
+    return 0;
+}
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
In the success case, shouldn't you bump the paging pool's total_pages by
P2M_ROOT_PAGES? (As the freeing side is missing so far, it's not easy to
tell whether there's [going to be] a balancing problem in the long run.
In the short run there certainly is.)</pre>
    </blockquote>
    <pre>I think that total_pages should be updated only in case when page is added
to freelist.
In the case of p2m root table, we just returning some pages to domheap and
durint that decreasing an amount of total_pages as freelist has lesser pages,
and then just allocate pages from domheap without adding them to freelist.

~ Oleksii
</pre>
  </body>
</html>

--------------Ai0G5NcisNLRIKxItrFcJzkT--


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 13:38:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 13:38:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073102.1436018 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk0pd-0005so-Bw; Thu, 07 Aug 2025 13:38:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073102.1436018; Thu, 07 Aug 2025 13:38: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 1uk0pd-0005sh-9C; Thu, 07 Aug 2025 13:38:57 +0000
Received: by outflank-mailman (input) for mailman id 1073102;
 Thu, 07 Aug 2025 13:38:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=igFk=2T=nvidia.com=jgg@srs-se1.protection.inumbo.net>)
 id 1uk0pb-0005sb-R9
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 13:38:55 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20614.outbound.protection.outlook.com
 [2a01:111:f403:200a::614])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dbda8b48-7393-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 15:38:54 +0200 (CEST)
Received: from CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13)
 by DS0PR12MB8768.namprd12.prod.outlook.com (2603:10b6:8:14f::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.13; Thu, 7 Aug
 2025 13:38:49 +0000
Received: from CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732]) by CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732%4]) with mapi id 15.20.9009.017; Thu, 7 Aug 2025
 13:38:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dbda8b48-7393-11f0-a324-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=odOtssjFOkCHYaLHQ+/p9kfwL3oWQqyiWiKZLpw7XJiF0foKdV34qpOhsa1iNCspSxVdxU4gA0WIItvoFQ9sRtdvvhlbhXyTBk5Ca0RXJ3RlP78IzX7daEYxP+3DERHoiEVZUq6MhT6APGT5uklKHYQGIFquSh71x2Puus3T4i8nJPnglcxkCDj+8H6wruHDXuIIsoc9Tm1p4FS/4NhFdVpTORh7rLv1w8bBVZVxzJvWspW37QJRE8JbsVFRKO7JzmyP7iBHI65AgMr19mjmpCkS4hgxSVfHwg581jbnkd35C/EEQ7HPbqjeAMv/llJMdnXVlbhEQw0Qywxz9wytHA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=54Px3zvYf4CuEyxVRynpi6iF48N3mew5kEum4tnD5v0=;
 b=WHGqL+evN1vHpZ7qbQ6RVVDVkvnpn9fYJEwlKcNw2tuS3UHw/cekUJCZobaYpQw5oT7ZwdVyQKnVpTVWm91I3/g6uByftqmmGJajARVQMwsOO9dqOj08ynUXbkUqDt6SJ5/gtWuR9mLD8+eLzSM5/PNlgbOjQw+WTLl9Q+Wilktn4nmyWf4bk60zuNCZL/pFTfeMO+nffuX/AI27zQBaZMKSFQQb2GELkui8GmIZSdjYczrggAtJANFiIiV2RKlxQg+TV+OCwfC3kU1vxB88biOmpAblynNudTd1fLMHTUoWJN7e0avj0G1kzWej0DCDpJG7TOjvkxlpUnW+JZo5Vg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com;
 dkim=pass header.d=nvidia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=54Px3zvYf4CuEyxVRynpi6iF48N3mew5kEum4tnD5v0=;
 b=Bf0mhOSD+JdgReLtcb1INqB0/uyZWs8MTJetWOhSwa3/PLkVmbmv/hM6Jl3dg3NDMwPrsdDM/AlzyEUrUBURHkACZ6cjHLXiooKnG2YMGnzXwkRRzEcBCBNXbcVCGh58e12vxDNvxaaYSD3/bhb5e9s0aMvTNDZ9mGcWTWp5Z0O13GK0Lzmffv4MQJjFCGVLtyoFeRFT2sBeSM6zy6Jvlf/218RHAdsr+LCFfAT+PZAJJKhqdojdp/MgjqxqGvZgP7XN2ZxopR4zMA620B+mgkDwCkQXS11WIz7ZuvEqkQWL/b9jGOLORKloIcURxJ7DSXvoNKuXdOWI1COqBddbww==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=nvidia.com;
Date: Thu, 7 Aug 2025 10:38:48 -0300
From: Jason Gunthorpe <jgg@nvidia.com>
To: Leon Romanovsky <leon@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Leon Romanovsky <leonro@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 11/16] dma-mapping: export new dma_*map_phys()
 interface
Message-ID: <20250807133848.GL184255@nvidia.com>
References: <cover.1754292567.git.leon@kernel.org>
 <b96c639433d3b614288be4b305ecba3a9fb2c00f.1754292567.git.leon@kernel.org>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <b96c639433d3b614288be4b305ecba3a9fb2c00f.1754292567.git.leon@kernel.org>
X-ClientProxiedBy: YT4PR01CA0497.CANPRD01.PROD.OUTLOOK.COM
 (2603:10b6:b01:10c::15) To CH3PR12MB8659.namprd12.prod.outlook.com
 (2603:10b6:610:17c::13)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PR12MB8659:EE_|DS0PR12MB8768:EE_
X-MS-Office365-Filtering-Correlation-Id: 5c6203ba-7b89-4eee-7a5d-08ddd5b7bd5f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|7416014|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?AMKVoTshkoWihCrrnOUvbEbK3Gi7aXCYIDForZBGpYKryA4uJRbN0UDpbFTN?=
 =?us-ascii?Q?H/nr1xjNK0yCSTAH2/3voqKzqcPQ8JjFMyfvCCv2aMnvNbHTA33B63muGzmW?=
 =?us-ascii?Q?5DuQYeQkxu9Uw2xN2G18A8DecvYxjTEqqa7EJ52Dz0bjjAPXvhQ6AbLFGWBo?=
 =?us-ascii?Q?59GavV3fO9HNdDxXcrP+paneiJa1nxYzUrzHDIscVuUyHiCjrFZNgOHhDikR?=
 =?us-ascii?Q?7wcVcGvgI+hCp9HjXxKQW7tGN8V0FZgKJ/bqXmnsX/x5N/3zlk0pVa9FtJCH?=
 =?us-ascii?Q?CLPxOt79JdMBCRMDwcNL4hI95vmDbD6/mce+8brYWOpRzcZnRWyO0Z5vCBGI?=
 =?us-ascii?Q?JDKz/8pIG7Vb3fuJmFMrtI+6ePyGKdAZgWpMJplKOpaDdL8hONs1XFxGY7VF?=
 =?us-ascii?Q?svLNjoB5HWfHueL7yuniD8+OFfjxkYeo06UE1BdxGED3DIddzKnkvCsYbmy2?=
 =?us-ascii?Q?VVwT75RYTyr6y5rIgz8ZLeboijTMVYkuysX3l8Ek+VqpZpozDcvGgOwi5WrW?=
 =?us-ascii?Q?TLv867KYTn5yifskzFshdlklW2WRDN6LKSXpACxyJQaInAZ5DaBuhGWJmIoI?=
 =?us-ascii?Q?DaBEtwnyLGOS/S1BvFNEUiuqy0i++7tiaJLQxVzGHrqb1qEGEukHyzAMHjZi?=
 =?us-ascii?Q?TDdil9vH++NAqfwB+u16QWc/W04KAsYHH0kgRD1OlGGP4AQ/OWmGu2I69nP3?=
 =?us-ascii?Q?IeWJNgKGb2zPeCIR5L77759PtmgLjN9ZhwxCfwgEgrCcd6CywpMAD2pVM8hu?=
 =?us-ascii?Q?3mZVa0GoXXJgLkCn2cznn+Rk7DSN3JZxQZRyFAC7E5crCHy/caMXV0IW6cKu?=
 =?us-ascii?Q?u34KX7iKGK8KAze/O4LNUcsx+v3h1RnDfd/N/Rou0rM+Z5viJS4XumBIE1Jz?=
 =?us-ascii?Q?SzYPcu8cpkdfVKdtTBdSm0oGs3ugExQh0AgyzrygW3AI/wEbU+hmjREG4iGS?=
 =?us-ascii?Q?qtmNR6urQDwKamP16/n/ls1+o0YkvBPAuhiwtpUP9HOlaORcZB3FN29xVU1v?=
 =?us-ascii?Q?TqXUAq7QjNtdswDx9oAvbvt/vTce4GRKf/wneoIZAVvOjUckgyP6SfE/Y193?=
 =?us-ascii?Q?jwhYRGUwASumZDJM62eTSJoZUQEb7/X0M+i1nPjqPkJP33D4vu3NtK94/gKB?=
 =?us-ascii?Q?wGakF67m/iwQtk5r07m1A/AtX6+j5UjwVztZ34j7mNl+c1EeLAnYfnmrB7aw?=
 =?us-ascii?Q?sJwNviOQtRPsQfeJqQ/GG5CFr4zbQt7E0hoxpBm9rXEMb8O7/x3Nu0rM+YS6?=
 =?us-ascii?Q?rxP5rXjWZsJa9uzk+4HAdEq4C3vazwpTl7fBeNJsDiScIPUUvpC5+7OteGZ3?=
 =?us-ascii?Q?pM8bimM2DTTDvatW94F9tddt+JSq7lKAKgOsbF3YH0ARnXa7VuNBAwsbNsbU?=
 =?us-ascii?Q?Kt8K+jvchAm+kmGcMUFNcXaGLGeT2VGjqdTOqFq/nWWV8fszgKi6LZ8x6BWB?=
 =?us-ascii?Q?oJRmbUVR0z0=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR12MB8659.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?MBPINjYfPGiE5jDtZnc+kL6Tem1DGVvWnnr4IAqOJ3QqDGwGQYyBqSEdaTWv?=
 =?us-ascii?Q?rCrkX2y/Sk4d6j61UbByvUXt3nKTkD+MeO8cPgtXL/XPX2sGtHrb8gNrSr/u?=
 =?us-ascii?Q?OEKNTVQZ7CHsvHCdnd9X5FXuoX0i/hrhFXJMhY5OxAO2m5eI/uVKfnRhtNME?=
 =?us-ascii?Q?WfPPxcc0BXNl1H77XG1bbVfLl4VNWDgxX70H0hEofaU4W5E3P1swLrZW9mdQ?=
 =?us-ascii?Q?Feukc/5DifHe2SePpUv2EKDGC4VLP8K0ep5Ci+eTGyK2EaR19DpqUB7DqHVw?=
 =?us-ascii?Q?ocoo7Xx2dFbyGGwWrbx8IanAzYUqZ6w3V2/BwdDcAbpOYtPMk++ubsPaWkJS?=
 =?us-ascii?Q?86KBb6LCEKOCBbnz91YiL8E+jtdRHZk0nVLho1rNXZKq6wB0lX7GySKFPJYi?=
 =?us-ascii?Q?4omNcGV34wSS0K+GJyD46PR/zDcAmDow1riE3YHKDXpojGGSfyFt7iU3pvfH?=
 =?us-ascii?Q?wc8uUrVB+XPvmrMfTcW6f6GhHRWWtb4Dv4kTaBpvPOa+uihaAGvn0nj+7oA0?=
 =?us-ascii?Q?lH1msGlh5aLcnLykZ0KM2VqWGkDwK1aa8TxDl0T7g19lHp/PkCYYEyI4Oydg?=
 =?us-ascii?Q?x36u5MNNY4csSkfMtShIOKMjAXTOfgsV3noFPXKv7GWBj4G63jQRQy7KIztY?=
 =?us-ascii?Q?iPkXT0BhYBwhfcaZNLxAMZv/8/Vpu40Cz3B5loET0MoCiijmOSqhjQdf7GwW?=
 =?us-ascii?Q?D35UMZoK5FjnyeDHRoCkY78/CsRcdqBbRu0V6nzyYh7xTVf8SEmvcU4/IM9+?=
 =?us-ascii?Q?3LW+QVoPsOUarqzKeGJeU5AoFMb/rluC1yy28WSJumduJKF/GZW2yw51wFAB?=
 =?us-ascii?Q?AX9Y4SJw5BaOn58fwEy4isBeUtWN43pvqqdfGWTuVGltm4QnzrrRrmFYQxzo?=
 =?us-ascii?Q?YCfQhh0zaLBvD0u0iYz56hPKffO19tDiR+lPXZxIpIVEszLomukhAvwhOJUW?=
 =?us-ascii?Q?Mw+9j/MEH0hp09oZ3t8tmTi9yYBa4OvVYhtPBCu7s0rvRmL1yCnVTkTlJvQ5?=
 =?us-ascii?Q?l3+N6jLtVsMz+54ZIPO8T0dp0FSwyKmeiM2I57nUM+9+kei6xaLYl/nsyMcS?=
 =?us-ascii?Q?lFDpa4criGr7VWHlF9ecZdlmf8lRoqzbwaY2QJALFxY+Yy8lXP2jKXIhGrlI?=
 =?us-ascii?Q?nsR1LN7f5+rqLOuMwqDQX4KgxOZc2rBg31tXp98jmNTtVA0VPrwb7rTxuXnP?=
 =?us-ascii?Q?K7xw5frFaQTc7Tm/sId0dEa4GdyvSh4TxEDupjoJUpbOPfqqUDwiCgIA8VCG?=
 =?us-ascii?Q?qGb3DHiGYlIQyyN5h8MRnLL5ilAlfSWqxXHhjp5U3+BnT323tDZHc4o4W3Hr?=
 =?us-ascii?Q?xKkMQNzUFeKjJZjncuQgF/AamcRWrEHt26fXixwlZVz+XJNC3GEHrBc+Ri4r?=
 =?us-ascii?Q?0+lMkCA/HXc2Shv8z27rCCJ46nrnGEQEFheADapJYipY4Mc0WWth2NBJ4r/t?=
 =?us-ascii?Q?SM90I4M3q/2GCRG7KRKfbnaRI5P/PHGCBgNBYW/YrXQ62mQggCHMTmkRy/6E?=
 =?us-ascii?Q?aahjgO1NFxrLDGTYgcHOkgZKuqC/j4pfzuZPIHHd7UDLyQf/J9B+7fmCNSfu?=
 =?us-ascii?Q?sxifWglQ0mC+PDduUgw=3D?=
X-OriginatorOrg: Nvidia.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5c6203ba-7b89-4eee-7a5d-08ddd5b7bd5f
X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8659.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Aug 2025 13:38:49.1750
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ONwX7mHa1EuCmMcNdBKJGTu1Z2nQrZWEhwSNbSygKKjIuQb9Rcj66qSQFOkzaU9W
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB8768

On Mon, Aug 04, 2025 at 03:42:45PM +0300, Leon Romanovsky wrote:
> From: Leon Romanovsky <leonro@nvidia.com>
> 
> Introduce new DMA mapping functions dma_map_phys() and dma_unmap_phys()
> that operate directly on physical addresses instead of page+offset
> parameters. This provides a more efficient interface for drivers that
> already have physical addresses available.
> 
> The new functions are implemented as the primary mapping layer, with
> the existing dma_map_page_attrs() and dma_unmap_page_attrs() functions
> converted to simple wrappers around the phys-based implementations.

Briefly explain how the existing functions are remapped into wrappers
calling the phys functions.

> +dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
> +		size_t offset, size_t size, enum dma_data_direction dir,
> +		unsigned long attrs)
> +{
> +	phys_addr_t phys = page_to_phys(page) + offset;
> +
> +	if (unlikely(attrs & DMA_ATTR_MMIO))
> +		return DMA_MAPPING_ERROR;
> +
> +	if (IS_ENABLED(CONFIG_DMA_API_DEBUG))
> +		WARN_ON_ONCE(!pfn_valid(PHYS_PFN(phys)));

This is not useful, if we have a struct page and did page_to_phys then
pfn_valid is always true.

Instead this should check for any ZONE_DEVICE page and reject that.
And handle the error:

  if (WARN_ON_ONCE()) return DMA_MAPPING_ERROR;

I'd add another debug check inside dma_map_phys that if !ATTR_MMIO
then pfn_valid, and not zone_device

> @@ -337,41 +364,18 @@ EXPORT_SYMBOL(dma_unmap_sg_attrs);
>  dma_addr_t dma_map_resource(struct device *dev, phys_addr_t phys_addr,
>  		size_t size, enum dma_data_direction dir, unsigned long attrs)
>  {

> -	const struct dma_map_ops *ops = get_dma_ops(dev);
> -	dma_addr_t addr = DMA_MAPPING_ERROR;
> -
> -	BUG_ON(!valid_dma_direction(dir));
> -
> -	if (WARN_ON_ONCE(!dev->dma_mask))
> +	if (IS_ENABLED(CONFIG_DMA_API_DEBUG) &&
> +	    WARN_ON_ONCE(pfn_valid(PHYS_PFN(phys_addr))))
>  		return DMA_MAPPING_ERROR;
>  
> -	if (dma_map_direct(dev, ops))
> -		addr = dma_direct_map_resource(dev, phys_addr, size, dir, attrs);
> -	else if (use_dma_iommu(dev))
> -		addr = iommu_dma_map_resource(dev, phys_addr, size, dir, attrs);
> -	else if (ops->map_resource)
> -		addr = ops->map_resource(dev, phys_addr, size, dir, attrs);
> -
> -	trace_dma_map_resource(dev, phys_addr, addr, size, dir, attrs);
> -	debug_dma_map_resource(dev, phys_addr, size, dir, addr, attrs);
> -	return addr;
> +	return dma_map_phys(dev, phys_addr, size, dir, attrs | DMA_ATTR_MMIO);
>  }
>  EXPORT_SYMBOL(dma_map_resource);

I think this makes alot of sense at least.

Jason


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 13:45:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 13:45:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073111.1436028 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk0wB-0008PL-1F; Thu, 07 Aug 2025 13:45:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073111.1436028; Thu, 07 Aug 2025 13:45: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 1uk0wA-0008PE-Uu; Thu, 07 Aug 2025 13:45:42 +0000
Received: by outflank-mailman (input) for mailman id 1073111;
 Thu, 07 Aug 2025 13:45:41 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=igFk=2T=nvidia.com=jgg@srs-se1.protection.inumbo.net>)
 id 1uk0w9-0008P8-Cn
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 13:45:41 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on2061d.outbound.protection.outlook.com
 [2a01:111:f403:2418::61d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cddf4f46-7394-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 15:45:40 +0200 (CEST)
Received: from CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13)
 by SA0PR12MB4397.namprd12.prod.outlook.com (2603:10b6:806:93::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.13; Thu, 7 Aug
 2025 13:45:35 +0000
Received: from CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732]) by CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732%4]) with mapi id 15.20.9009.017; Thu, 7 Aug 2025
 13:45: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>
X-Inumbo-ID: cddf4f46-7394-11f0-a324-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wyPo4KZx1mo4QWXFJhOemGlhQ0nGX1Ev42fztgGvIhBIaWQUfOWPbsaAfrZ9mUl5L5gSc0ru/bDbZs6ytMod5hKqeVSatYKWSNuPDdu+qJRHj5LV4d3ofbLFANbU+qYQmU16FYm/v9/6+oY/2SiR7c88L9uPNMOn8SmLwDiFr7TQ5vNZi1Y1my8JcJkELECA73uxCtAsQ6soCd6MBPKEkGSi2PYnPKzhDaey2I0OgVRntSR0U3TlDOM8g1+66H0aJMweX2ApsSuOuuIsoWLmq6vPfJUBDutY1O4L3jePQGc0ayAhZfEu4R5oemeGKRRZEeAAm5kuhGgPv0JD3mgBmg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=BqFmusTHMkkxrcuxFXcvb9JKzx3GQS2+1TQSkSQmtJ8=;
 b=bV5NWJNRbBciaVnywm3XVzKQOdmouKrcuLgG8M2+inVQXL3Di23KJT45Yiu9wcFVbrgijTdw2JjAgRWYcVfBkXZ0AHuQQVf5tzyBRM1z6M1gNrFcncF8nxfJH4utXGj0rEMNy7CRo1Wl2jXYvWd147mNPSRdvOWjLF1NrAU9OX4CeFpRAhOomtV+9gvTASrhFd4h+SIYbOdeDpsNz56erpOvvicif1h561hizzpEWXUDsIwhGYAehDFHZcEuWXAUt9RMWA8wWSHik3zO33e//3c+iC4+erf0heO6vQtAJ8p8pQvUEj50FW8oQGCjCYON35mdvpSlCtLNSySaghXYwQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com;
 dkim=pass header.d=nvidia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=BqFmusTHMkkxrcuxFXcvb9JKzx3GQS2+1TQSkSQmtJ8=;
 b=e1cuXmoHKlPncJOfhxM0EK5STNf/i/W8HLj1PN7oh9DZUNgV9SVfoPg2iv8freUD1azJcfct2BSl+aucuJzbX36Sjme8g2cPsrwgDwy5qN4xnDEHS+x2WSJSkliRJZTcpzRXaOiEKc08AP0eTsFtnl+pktbRyE8Uqn0FjBbZuJZDyQJpXS6lhDaL57G2QqkLv7pAxriuS9bHb+kV227B8mg2mgtfKuFdUihWnqHyknLUlQ+U8rUqh2aq2dIVeFuxQl775rhEo0nKCbAsQzOtrJz4/zytof4RCcT6mbGA+Zd/9PabNyFquXoE2UvHomjTDotY0H3qqvzlmBiwKy3D7g==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=nvidia.com;
Date: Thu, 7 Aug 2025 10:45:33 -0300
From: Jason Gunthorpe <jgg@nvidia.com>
To: Leon Romanovsky <leon@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Leon Romanovsky <leonro@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 16/16] nvme-pci: unmap MMIO pages with appropriate
 interface
Message-ID: <20250807134533.GM184255@nvidia.com>
References: <cover.1754292567.git.leon@kernel.org>
 <5b0131f82a3d14acaa85f0d1dd608d2913af84e2.1754292567.git.leon@kernel.org>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <5b0131f82a3d14acaa85f0d1dd608d2913af84e2.1754292567.git.leon@kernel.org>
X-ClientProxiedBy: YT4PR01CA0366.CANPRD01.PROD.OUTLOOK.COM
 (2603:10b6:b01:fd::11) To CH3PR12MB8659.namprd12.prod.outlook.com
 (2603:10b6:610:17c::13)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PR12MB8659:EE_|SA0PR12MB4397:EE_
X-MS-Office365-Filtering-Correlation-Id: f3e4fe19-3ccc-4d01-7dae-08ddd5b8af04
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?WDXvgPGUhS8WpBtlERwsgCYjRKS8Gfx/cjnHty7Q28G4eDSzV9wvqstcw6yw?=
 =?us-ascii?Q?4jfdhirce6xAw/pUbWg3fbu6nHGHyliFkKC9QDf1/ugii2Ei2+Vt0wpphiZY?=
 =?us-ascii?Q?aj4Nrly39ao1YlPg/VaPLQfHxaEoSaTgsoJCECUBIOjPO/QRSvPnFe/dSJMm?=
 =?us-ascii?Q?2uSEY726Har14PSd94XC/dZXlhatbVDjW26+7noxHKuRbNlOSyrdph10h922?=
 =?us-ascii?Q?H49ihXeT9u7QnmflupsSg/8AA6riMyH+fnr5JF59MTFwuNPEG2KPejhDlFsW?=
 =?us-ascii?Q?UQ1ZCjbx6MtvXJf1i+q91VDYUKGmgua3T61eVEbBKmuhsRX0O9qeZyBI2cjW?=
 =?us-ascii?Q?3lXGvTAysEYtawHM6UrdwDS/RiqE9MmYcIG81xSwc7jk/3gx5SKdBpdI5M5u?=
 =?us-ascii?Q?cHFOo1xFGbehxgBp5HLJgDChohFM/uyPRjbLcCKK3Bt4a0lDD0F/UEBVci62?=
 =?us-ascii?Q?qUcWzxDznPoUFBTU2xbJRI4elzPfnEAGc7PKT5OVjO4kmVoYdevktyHVlm9X?=
 =?us-ascii?Q?R6U80lTflsE8pkcZREytNdRvWz1LeLhh+yniYjqYtrx95pMjSPxyPL9Yl8r8?=
 =?us-ascii?Q?TcZhwTLyQMTe5V1NFnq0P8+0ZypVRxN1zbrB7hQMaMTtrHoYEdJU8GNHmToZ?=
 =?us-ascii?Q?aFD9hDD7obzuiUuATRs+PgE2LocXp/6b/vqjAu+iWu5EwebEQRRlwGjiyYhv?=
 =?us-ascii?Q?ybU6OeHsPkfw5DzhD1fvbQ8PqJrV9u2a4YYQsVMMSfuCNivbhlVgEU2Y2+Gq?=
 =?us-ascii?Q?QobKltiJ5+7iWYpfX7BYBIOkQxjgWeg9B67eZmPbJyIrEsUgu6AZx+S9t5Vf?=
 =?us-ascii?Q?xlNvfRerWFyk5Jo7VztKY7NXaS2SVgztXRcfSqefmGOkPNW/Fg5a0YJ1omE4?=
 =?us-ascii?Q?C56pKQn6BgULSoa2XbBpV9Qtko6gcNXUMDNepZsirersNub1k2FQVF8g9TR+?=
 =?us-ascii?Q?EnZdk85xrW3usda8JzmhlO/7bki/ARqgj/gI8zQcRQpNvLXWqmkpL/co6TLw?=
 =?us-ascii?Q?8Emj6s7KSTJx/THFAYF/KVVCEmw/2vQ3cZMdS3UMgalseKK237M5ioEIM0KP?=
 =?us-ascii?Q?PDd/WHWoBQ+Cy7dagZxx6LToQDxTPNDU7MOsRhNoiAzT+NUgcp8b9JklDKNT?=
 =?us-ascii?Q?7XWp1bJ5QnKGVGY6gAe5q7gbj+kMgp2iJbH4zoTHVTg91gDPcdp9/NAiwg3a?=
 =?us-ascii?Q?XRIdRCbeNhPzZaFWSbIFBA/saT91G3GnZGBXU1xQbPQGwI+l5glIegQQTXmZ?=
 =?us-ascii?Q?Llw91xo+W+2hGNGQ/hMD5QTVwtuQTQ8x0J8MXzzc296wQj7bExU8jncVqvFv?=
 =?us-ascii?Q?APhndbVrMQukd7LWC9/D9icY9CA4Rq+/nTh/amGPWSdKtkdSuum5rE7FL6fY?=
 =?us-ascii?Q?Qr3bIPoStYraRAe6EktVj33PwN8klTIuDqo4Wvg7SwfW8PSfL/JKrU3pjaNI?=
 =?us-ascii?Q?LRULsD5Cvuc=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR12MB8659.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?1UQX6TFMBcy6Vs+trTNtXib2FJeK9rtIhNCBceB4mjYhsDlm8RlLJE+/3YqU?=
 =?us-ascii?Q?NbEL3CVunkrrN+XY/L+YoKG47Xj+WtrQ79A6M6RaVD0SooEQp7A6DFOucKiv?=
 =?us-ascii?Q?KMe3PCuB9xxyFwSEiNP79JtO+ffkE8sN2nODlc/1eUZoszWsIn8+7zj4dfcc?=
 =?us-ascii?Q?INRXn6Bk1Ti1gpwzbhCwGWdw2IaAIFqxo1D+935OJ/3sREtvFKnd/CZgPw9X?=
 =?us-ascii?Q?cEx+tdXJFgyCVhX6Sfky+JpBeqG6aWrZ6WZoOm09ipkrCVFfIPlCGn5NNeSe?=
 =?us-ascii?Q?qSYN/KFyVtT28gPfKPtB6QT0xbLhMnBGSB+sHGrfOL0eR2LSnuMhFc8zsBFO?=
 =?us-ascii?Q?e3FIiQELp2lMet8pirel0YnwgKuIYmflzJ5t73L0KZVYii/C0APxPOck453m?=
 =?us-ascii?Q?CkdOHLWVXwizjQGIoMgXngtrShcYYwNADzjNLagLg0XeWFa2nIsJc5BqkMdq?=
 =?us-ascii?Q?EUqHMS0UXFZaVUcZa9Cb5iwFbUG0kq//aUK++pXzR2CODwXmMI5yZ1dD3UYP?=
 =?us-ascii?Q?EHrpvfaLYQHK995WzjZ8EIJ4otP/ebDucVwBjI3Ktffc1/9o8O+SNuuoWUM5?=
 =?us-ascii?Q?gHrqw4clcI4/OchmuM6aASyllQJnGRCtKHCUZFfDqAvYM2WCdP8BZCCvntck?=
 =?us-ascii?Q?Vc501vzs+o38MGfq18fXE0Gn7IwQGlGuq8kh80dVMN0jjGRjYe8OAWW7vWOE?=
 =?us-ascii?Q?6f10j64Vj31KZ6niN3FHHbPHqxrG8Oexr5dhz+/2ZLmSTaeKDs/gxB5q9HeC?=
 =?us-ascii?Q?PbZfpcmWARFDn2H03mjMoo1FbKHPVQSn78HOr+ZXdK97oi5swsKb3K9N/c1t?=
 =?us-ascii?Q?6Ojj1/QCre75J9p5ifpFyXVvTc31dY2kykDbII75dD3JyHMDn4F48V8EHlHA?=
 =?us-ascii?Q?hKakMmdO2KvfwZV2J7ZQMefKQg1MEdvWnz20raKOEtTfEnnwlqGk37Eujnpm?=
 =?us-ascii?Q?s8BTDEu547J+qOkK6B8AyuAdTNOsY+l8EZ1uOUSk+499rTVW4BH7QxrskJi9?=
 =?us-ascii?Q?3LQREu73jz7GJ3i8eRr4/OSgF0bx1uOyJuSTyCJyxvQsiyM3Q66kPMmDNOg2?=
 =?us-ascii?Q?zYQx+ezbZOABwR1PD+97X20i0ufTZp8AJaJlhb1/CGDAwSBggQsLBjAH/PL7?=
 =?us-ascii?Q?Gl2nwK+E66SH+FY6GsKqAEWTYf733qg2Orwuss2yPzEv4V/efxjNvHxFEfok?=
 =?us-ascii?Q?bLIoQPcjsJOxZCiaSX+ZMdInJENJGuCsRxG9gtieicufQqE/4QLPY9TtF9jD?=
 =?us-ascii?Q?JaPUxs6XhFDje/6mIS/2+xYzBfxNTENRN1+b028GqSc++LiOlGKTk0kucdOQ?=
 =?us-ascii?Q?i+J5mVsJgXlT6uU9fdk71HGmoH2SBDiSKrUx4FcIkR23BaV8Aa4d5m8LShgN?=
 =?us-ascii?Q?AnfrpcQ3Z+UHGUdTQV2s7BZlzl+tNG26a45wcsj1STZu8d/BeApaB3RaUX0Q?=
 =?us-ascii?Q?or3atunX0aL1YwD6kd/k8QuuBxhnDtglAopiolpH5JgiXzgo0+79zj6LmbUk?=
 =?us-ascii?Q?yKXaKol+waFIOYy1llv+zijOATP73oox90sNk6cTZrkvFotnMsv/4o/cYPiB?=
 =?us-ascii?Q?AZlMssGxT0v5NtcFpn8=3D?=
X-OriginatorOrg: Nvidia.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f3e4fe19-3ccc-4d01-7dae-08ddd5b8af04
X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8659.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Aug 2025 13:45:34.5501
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: GQXX17i367Y+FuswGMUuSDPrOAkEDNqGpfqZ4jQggDW/X3Rs51lZS9V9SpsgjtzN
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB4397

On Mon, Aug 04, 2025 at 03:42:50PM +0300, Leon Romanovsky wrote:
> From: Leon Romanovsky <leonro@nvidia.com>
> 
> Block layer maps MMIO memory through dma_map_phys() interface
> with help of DMA_ATTR_MMIO attribute. There is a need to unmap
> that memory with the appropriate unmap function.

Be specific, AFIACT the issue is that on dma_ops platforms the map
will call ops->map_resource for ATTR_MMIO so we must have the unmap
call ops->unmap_resournce

Maybe these patches should be swapped then, as adding ATTR_MMIO seems
like it created this issue?

Jason


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 14:10:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 14:10:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073123.1436038 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk1Ju-0005tT-SN; Thu, 07 Aug 2025 14:10:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073123.1436038; Thu, 07 Aug 2025 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 1uk1Ju-0005tM-Pm; Thu, 07 Aug 2025 14:10:14 +0000
Received: by outflank-mailman (input) for mailman id 1073123;
 Thu, 07 Aug 2025 14:10:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+2Ad=2T=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uk1Jt-0005tG-7s
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 14:10:13 +0000
Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com
 [2a00:1450:4864:20::52b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 38871493-7398-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 16:10:07 +0200 (CEST)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-605b9488c28so1851994a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 07:10: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
 4fb4d7f45d1cf-615a8fe7ac0sm11716313a12.35.2025.08.07.07.10.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Aug 2025 07:10: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>
X-Inumbo-ID: 38871493-7398-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754575806; x=1755180606; darn=lists.xenproject.org;
        h=content-transfer-encoding:autocrypt:cc:content-language:to:subject
         :from:user-agent:mime-version:date:message-id:from:to:cc:subject
         :date:message-id:reply-to;
        bh=qcWRDASZvWnS76y/EF4UrLjGb0SZE4/xgnO6tscPnUY=;
        b=Ki8hraSwoADRHVGJmXqdhb8o4cfUAdylLA2JAvj4LbbhBMG7M3uYh1yblBuvwKYmcQ
         2ngC+gREEwS66jUGL5vXrdlb4xMsLfFlGbi6DP8JSN9hmTjqzeA1tV8wovkh8RCnHGf9
         JDDcsYt8rSR0ShrFXBUq0GZKrIXcwioOwtuhxC56nTay+iBcJt5hpkyVmONCVYDYw6n/
         k5DVh+1hGz/48Kv3J5j52cP9sZGlajod2Zv9Hz66ThVj1TFJAci7K2Anvi5Jo96qBGff
         SmgbJXST2374ga/ofEB3eTPObEtgv0sfwkQGzgb5qI0TdXKgFeK86Vbf5sl4euE7KDnQ
         xt0g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754575806; x=1755180606;
        h=content-transfer-encoding:autocrypt:cc:content-language:to:subject
         :from:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=qcWRDASZvWnS76y/EF4UrLjGb0SZE4/xgnO6tscPnUY=;
        b=QA/QdeuISne024TJ6fd1ABOXcnlrAG5cOu4x3YyM+fTqJ9I0HtVmikW8jED+5uaCGo
         s/sOoS1GSzpaNkgDptaeERyr5USwHRVcfDJCP8/dQOjrwbIP1/uJH1yBNdv0vDeIq5Lp
         A/hkk08kmHzB7Tjf1yD9E0M9gTVLv0tCPscRJa0jBXT2Ie6vczFdVsGG3+lUMh4sroOi
         fG9lsbUN3eH6mxm4dvadDZjUBHCrkNmbCS49KpX/HXgyiYKeT+WYgUCS6+nv3QZCVd3k
         xFZOZ7KrOvCJ2c1Eg9G23ZCQzXBGv4A5PC9/hICYoMDCCNo/ujGRfcti+qwda5CNIPcZ
         Hu0A==
X-Gm-Message-State: AOJu0YxJ6vgmSegAxBatgxICMIfWUAMllU7XONiRtLUhtgZ0xIMl0hKm
	TM1ZYTywRwuGn9JXcqMQuT/9LP6URlRFpdk/bFCxTICfdkdqDZ0uXRWMtZt30O1daEcYp2B5LTJ
	gFp4=
X-Gm-Gg: ASbGncuC+ea5fnG/Yp69gHVgXBSC7W5hlEn+qAW9QQANCE1JH1cUG5zPUDQU31BsJnv
	7e81Ibv5oVpZjDIa0HqDX6ILOgoaZEsQZanoQFhMRiCU/KXVcNQpTs0/goJFTZqFddhXU3wTAwo
	jFVB5HVVhVPuPmDiBTaJrXrZGwsRVOUVFi1CjVpc8Rf5gJOo0nGLQFELEbxBZU90/fnpgazuJpu
	gZkchPjJp79uWdTsC2JDB1WkC2hBmXmzt02p4ahynpQBUnGFmHEXvWND2uTcc8KXXN9CGbfAl4t
	wfFJRA3Oucs/o8n7TrNH/AmTreejhtD7Y3KIRVL8wOTXduMlMbnFAtsZ5Euoly4fJk2YCfFFZh3
	ES3nep3nPXO2mJHCClg727b7F1gyzuk/QEIqlIzTlQfCBH165tK9QMvisSli4sNaT+5amaQYsG8
	HRuAcfWzQ=
X-Google-Smtp-Source: AGHT+IFxaIGaT+GwUZ/iUH9kD/9Jaf8riy+xHQAkoP26K7bro5cZuJxOtBxCjp9iwjy/Z5cTbkCFbA==
X-Received: by 2002:a05:6402:4409:b0:615:aeb8:e4da with SMTP id 4fb4d7f45d1cf-61795fb97e8mr5140832a12.0.1754575806292;
        Thu, 07 Aug 2025 07:10:06 -0700 (PDT)
Message-ID: <28cadeda-613c-471d-b0d3-1709004a75f8@suse.com>
Date: Thu, 7 Aug 2025 16:10:04 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] VT-d: check bus_to_context_maddr()'s return value
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Content-Language: en-US
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

The function returning zero is an error indication; we shouldn't try to
map MFN 0 and then treat that page as a context table.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Whether to really have the ASSERT_UNREACHABLE() on the unmap path I'm
not quite sure about: According to my checking, the early bailing from
intel_iommu_remove_device() is what covers the case where an earlier
mapping attempt may have failed; in all other cases a mapping was
previously established. IOW while it should indeed be impossible to
hit that path, there's not really a problem if it was taken: It would
then be no different from finding a non-present context entry.

--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -1499,6 +1499,11 @@ int domain_context_mapping_one(
     ASSERT(pcidevs_locked());
     spin_lock(&iommu->lock);
     maddr = bus_to_context_maddr(iommu, bus);
+    if ( !maddr )
+    {
+        spin_unlock(&iommu->lock);
+        return -ENOMEM;
+    }
     context_entries = (struct context_entry *)map_vtd_domain_page(maddr);
     context = &context_entries[devfn];
     old = (lctxt = *context).full;
@@ -1853,6 +1858,12 @@ int domain_context_unmap_one(
     spin_lock(&iommu->lock);
 
     maddr = bus_to_context_maddr(iommu, bus);
+    if ( !maddr )
+    {
+        ASSERT_UNREACHABLE();
+        spin_unlock(&iommu->lock);
+        return 0;
+    }
     context_entries = (struct context_entry *)map_vtd_domain_page(maddr);
     context = &context_entries[devfn];
 


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 14:19:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 14:19:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073134.1436048 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk1T1-0007Wp-Sx; Thu, 07 Aug 2025 14:19:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073134.1436048; Thu, 07 Aug 2025 14:19: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 1uk1T1-0007Wi-Q1; Thu, 07 Aug 2025 14:19:39 +0000
Received: by outflank-mailman (input) for mailman id 1073134;
 Thu, 07 Aug 2025 14:19:38 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=igFk=2T=nvidia.com=jgg@srs-se1.protection.inumbo.net>)
 id 1uk1T0-0007Wa-KN
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 14:19:38 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on2062b.outbound.protection.outlook.com
 [2a01:111:f403:2412::62b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8ba323d2-7399-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 16:19:37 +0200 (CEST)
Received: from CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13)
 by PH7PR12MB6588.namprd12.prod.outlook.com (2603:10b6:510:210::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.13; Thu, 7 Aug
 2025 14:19:31 +0000
Received: from CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732]) by CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732%4]) with mapi id 15.20.9009.017; Thu, 7 Aug 2025
 14:19:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8ba323d2-7399-11f0-a324-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Ux/HYFV3SrMs+NkvAGWaBPvM8dPG+iYroa33c0PdCqfPrAoG0ZRgrGME385hE4yAA1k7fv0fA9zHUzG3M6GMaWwSZNjdsLQs/Bnc1Qyr9HVWXoun+kpz5R6qHBeJqmJZUhhG5VTp0TyqI/X0tosUuUfRu+ietnHG5YdkrEQNsZ8x57bzleIvnjcntYu/Zg/rJdEhJBXAAPwOgXkzxVXVXHdVXzQaormdnei/p136nRj+7JltuFTHc8NSXWPD5bLvWQMZSwHVDF8Xzb46T5dCCmMBDRzxayy+pIj8Ekdc3l5iwN/MbJwOM63CF4iS0aRW0h6v2Qmduc8xwq/S+A7NPg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=V4HzQPlBoiRj3TiTMS/fKOC7xLbLGVXzngTW/oiL3VM=;
 b=Pxnf4cfrY/mfaH5i1PlrKlv0lgqq+NICjmiOL+s5flU99eGje3dcKGfsMCklWXvaJipe2UtNSQwj8fFDb4a+eRyZtCI1WhaSy5U1/MLk+kPNnFx2ZsdZDqEYsUG4VLoykEJqKfnV7YvPkghSqkm9Pd/va5qfXmiFP5cRHMXxGzWP9wk5QRHltHq0FN4X7jEnBDUKjjvU0EZsBtbWza1Na9r3p4lLtDr27eoWAFm6LzuscpF29UO7O/l/y/VJyTO/0T7oIUz2zdxR8DjCCRhIiunG9N7N+S2k3nNxvTV1jWNF6HbpFh1u9fQqsWErYwoeSbYb1aJ4g3R68R7InzIs+w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com;
 dkim=pass header.d=nvidia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=V4HzQPlBoiRj3TiTMS/fKOC7xLbLGVXzngTW/oiL3VM=;
 b=UvWxmJcXt5NCpifzR9GlYyrGKCU0K0TdOCc/fc34AkyQG/07h8Ud7hIwkRMB2KJ41PDnjYRjCf7ILKNiQaIfLJSgl1YkJWLnzrt7aQLsdEYSsIq6e7WKf9ltlPlY+BwxAoKf6b0bUgA7+pZBWu8DkPx+sqNm4hSz9CspwMmVmohAK307/le+YJplhcfFcWVMOJTG0YzGNZj+Z/p641UdRdlIcMy/ztEpMoupmNbXDO3Rh48u8D9VHCBv0jhoXz36CwZqCimiK3MS1ih1p9N5mvU2CgKzSMXQML0sGacrezsSbBvbx6kFLDeUPHU1oVJwWmbVUO3fpwF1lAWDkiUpew==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=nvidia.com;
Date: Thu, 7 Aug 2025 11:19:29 -0300
From: Jason Gunthorpe <jgg@nvidia.com>
To: Leon Romanovsky <leon@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 00/16] dma-mapping: migrate to physical address-based
 API
Message-ID: <20250807141929.GN184255@nvidia.com>
References: <cover.1754292567.git.leon@kernel.org>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <cover.1754292567.git.leon@kernel.org>
X-ClientProxiedBy: YT4P288CA0083.CANP288.PROD.OUTLOOK.COM
 (2603:10b6:b01:d0::19) To CH3PR12MB8659.namprd12.prod.outlook.com
 (2603:10b6:610:17c::13)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PR12MB8659:EE_|PH7PR12MB6588:EE_
X-MS-Office365-Filtering-Correlation-Id: ae70dbcf-4d4f-440e-182f-08ddd5bd6d0d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|7416014|376014|366016|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?B9tNliylgIkVWzk+gttBK52S8uyZSnBPrdlqMANarwihh1iz5HDw9DuT0/hz?=
 =?us-ascii?Q?pPBvqHEDsFN1CcZA780EFUfOwQsxZf6+SovYZmu5SFpEdEKOqhzE7ccvwPXB?=
 =?us-ascii?Q?d9fhcq4vqA7B3VHHEr2QwNktuaHgZBg0mfXUO27IJQksn1GUv467eV9m3kYp?=
 =?us-ascii?Q?zeRZjufwMXBqEmp9lSxyAtI/FYEOwl/OTRaqLd4eUkBmR9iR11+zVCTyjqJX?=
 =?us-ascii?Q?FyiKBpgUCod6UknHqNUjeSk7xpamNtDPyQQXQJE5gyLHgII/gtRgwMPLs9rl?=
 =?us-ascii?Q?VJYaoI4XHo9LXlfjPNp1b4xV8dIR0P4LFtblPVPnGJ2pu6pUa0nXMZMAEPZL?=
 =?us-ascii?Q?txAR349UNH9JDuLSeOsF/6Am9TLe2PDjhcUZbrVMiFPCKVnrC83/BkwFkjbs?=
 =?us-ascii?Q?rhlDU0anUP7S72xxxONN7M111WE3/FEe6sz5sz/sNAXEPsxnacAsv08auES4?=
 =?us-ascii?Q?xzXTWb4AKhEn+At91sgj1F10XViQgPYlyGlYBkD56hicheFWE7MFTM2u0brm?=
 =?us-ascii?Q?29DmF0LPvmGbUa5rh179BXi2MJhDLHxxB2efSrDClnB7SakzahAsv5Rwg1Ow?=
 =?us-ascii?Q?7XegQvTCTKmpr10T9O7pN6miwGjQKLZOPameOzZBL6XiatNnuG1zuG+Sectp?=
 =?us-ascii?Q?GZ+AsVklJT5rwto+1nrg/44LcA+ZyVWOaJgkRawWO+XcVfjKF1Xit2S+S9Du?=
 =?us-ascii?Q?A1SitDf/YwAA09E/FJoMsAUplJo+yJVwgXAmEhp0FguJY/87BrkrEilXUZFs?=
 =?us-ascii?Q?AieS+FH/9jm/nwhq+ZKNyAaz+g9HOB5bzB/5v/HoWPc2qEnGs3uvA855ekvw?=
 =?us-ascii?Q?UEEBZWKzIgzhEdtspN/8cEa7pL7k5TbuELLLA3M2UsUMuP4yH9QqD44PXnlk?=
 =?us-ascii?Q?le02wZa+SROyxt1IvH+0ijUe0orkCw/zx8gNVNfGD0Z6979NDYnLMkJt4bBo?=
 =?us-ascii?Q?W8iuYrdHd3iqY+yDjKvVuHatC68t9hy4ypADpVdUGGmaQiDbIj5s9R+0An3T?=
 =?us-ascii?Q?zdeiuGpEGlDnXnEKq1V5moJfMcrDIUhZkYa6iUTwi2Tc1OQRAGIDSpWA5GUv?=
 =?us-ascii?Q?UjuyoQyWRTwKUkyvL3wnYpaDirtZ31ipYZuXbcpO4M1VTVRX+vK2aizHG5a9?=
 =?us-ascii?Q?IHJPSag0KP9F34ghLBieq3CcgYiXrGCOvca3LQtQupfiyI4YdOGx7fslTLEV?=
 =?us-ascii?Q?kNJL+GjtvJGIsltRq5oZMzq11CbPr7lnuV2a6DAB4zYGiztXp5fUlC3Mri28?=
 =?us-ascii?Q?X7CCp200e/89Izyr0VXRbjylVbzandsTLZxl2kR0on2rFyYuPn5t452MNVOE?=
 =?us-ascii?Q?R7H2RPUiB9YPz/+ryYJPDjM+63qObob1RQ4SnjRIM19oCho5cIbByzr1uDeb?=
 =?us-ascii?Q?MB2xgadEOpgIB6FlWic93IL0kZw5lZR24NBphD8wRZjdcYeNLkqOCW1/Sy7j?=
 =?us-ascii?Q?bmMRergMvaM=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR12MB8659.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?7m6qQrIZoL6i8N1g3znV2tQ4KvfciEiqOZZQJRQTWtnU7WjHOMjde+QydDME?=
 =?us-ascii?Q?mUDUrpS9390oTKIfGFcT1mK7xvkdka8xIq1GJ3tKVpq9AOXSJgip45vUgFVg?=
 =?us-ascii?Q?9Ap3Ju3KeNAui+8i5KuxBd9n0HVmsQOgGrjXMt1tthaQKqWfHX0hlsD2n0Lu?=
 =?us-ascii?Q?UYsoG/7OfcfDropPkCiO5jJIt8eQr16Y0qeLUfiaDKEev6Gfk4lCeTlkOc25?=
 =?us-ascii?Q?rloak9Msam4Zb/dD+/0xh85vsH1j2wWzl8WiTczYETvD4G4n5fTge+xlBGCr?=
 =?us-ascii?Q?kSxmPgaA9/FNrdgmYMBR7/uiJPFEVnj/uGGrcAUDb/DF57Xda1NjRUK85nMv?=
 =?us-ascii?Q?UzNmzIFE7q84UO1TwMPdwsfbNAHGnupCl6H4I9K/C1GX/eONUBTaRh4vqZaK?=
 =?us-ascii?Q?yB2G3zjrBMcBepTPvHWFibWD+IBiBaIEzIcc/vBWeJfzzOjQ4hEBkVByM+6j?=
 =?us-ascii?Q?r5qPqXrzooA2DznqgbZ8TAkI2PCHxHxssmHkUgZD8HPBT3QoKAhNrzB+o7vS?=
 =?us-ascii?Q?2TW8eQxB1m5+1cN1Bf91i593KBtbwCDpBoXuOkncHgGROWmXG2eJMEKs7cnU?=
 =?us-ascii?Q?sYj0zrV22wFh5bY8svayBlI0rvc5EMS+iYgk5HOpUGdYnLk3korFArvyKmk7?=
 =?us-ascii?Q?22reQMNtSb50vHSCfcqHSoNFJ+vs+K7Ys7jrs34BxjHy0vMdfBvc4KmcKl4y?=
 =?us-ascii?Q?mE0i7FauCtty4ncc2WgEgmFQQvdFX7UwJcJR6S+qE7u+IBIt5D7NYEYGWj40?=
 =?us-ascii?Q?recr6cmcvAqLxSVHgQDFKyKRsldvR7oVH4m6GeAYeOtbuTMu2nq8krRSqMtB?=
 =?us-ascii?Q?EQb4HCJKcBUKWVPH8HLAmxoZ5ROfTcHBfZAeVcgNHsicFUNzwQ3JMkPmSSu0?=
 =?us-ascii?Q?aaOHUzcGSqlNQ5twDziT3rbncFCDiMP8P5gSqUxNn/BGjVAPOGwvd3PM7jIx?=
 =?us-ascii?Q?SLcHnkVuvcwWUBNV5D8O66rCSjufmnPQM4jcKJ2Rxhk1hdsbUUtuQQkQb8Mx?=
 =?us-ascii?Q?mmMVDauvokCEO6PZXd/HBz2i/Kr02SlhFRYMGFxwSgJTO+sXJSaW+KJ65n3I?=
 =?us-ascii?Q?grd1YaWpy2pakSEIU2G9sntmYLb5l0KFETaWtV8JwnOgkchkV79twXudlNJk?=
 =?us-ascii?Q?bTbogLkAO5iSod5dvtCNVRvjrkzVjgpmkYMmpdGn6uWgEAPm/UeEz/VG3qJz?=
 =?us-ascii?Q?bg3s3HfFw1uns8n9bOMufjcok4uhvPyMtNRoIep3oMqjZx4Psy4R9syf8+hi?=
 =?us-ascii?Q?tUfHmEfaQ+Z5H0POkQ+MBujb3hmZxmlxRxLOAz0l3Y8o2WOKksiLE+0RJIPH?=
 =?us-ascii?Q?s/1Vqg0OAmeKE5T4aFFjEY7EeFCc5Ugc0k58pmMIsy7I8QQ8Xo6esmGMaoMV?=
 =?us-ascii?Q?VOpJqS9TBJjsX/1bPmmyt9pSqM2b1e27HUPvpB0T6VFRm083/mlNeVJEjqrm?=
 =?us-ascii?Q?jbtAii7eZV9BuHSzPWMywLvWewoicgmdNDQ9EsSG24u64A/PxV7Nxg7WMfll?=
 =?us-ascii?Q?T//RyKhtL5IDDp+sHf+4frB50biC1Z1Asn9WPfG0tIa6QIWfIpTYkm0JRK0U?=
 =?us-ascii?Q?3TrdqWdPk8GkiiaYfAc=3D?=
X-OriginatorOrg: Nvidia.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ae70dbcf-4d4f-440e-182f-08ddd5bd6d0d
X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8659.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Aug 2025 14:19:31.4180
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: +coMWha09t2B/DL2OsRf4sc3LI4FnlUef4SJgqADc5IZdZrEaYGExrUCxRibJwt7
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB6588

On Mon, Aug 04, 2025 at 03:42:34PM +0300, Leon Romanovsky wrote:
> Changelog:
> v1:
>  * Added new DMA_ATTR_MMIO attribute to indicate
>    PCI_P2PDMA_MAP_THRU_HOST_BRIDGE path.
>  * Rewrote dma_map_* functions to use thus new attribute
> v0: https://lore.kernel.org/all/cover.1750854543.git.leon@kernel.org/
> ------------------------------------------------------------------------
> 
> This series refactors the DMA mapping to use physical addresses
> as the primary interface instead of page+offset parameters. This
> change aligns the DMA API with the underlying hardware reality where
> DMA operations work with physical addresses, not page structures.

Lets elaborate this as Robin asked:

This series refactors the DMA mapping API to provide a phys_addr_t
based, and struct-page free, external API that can handle all the
mapping cases we want in modern systems:

 - struct page based cachable DRAM
 - struct page MEMORY_DEVICE_PCI_P2PDMA PCI peer to peer non-cachable MMIO
 - struct page-less PCI peer to peer non-cachable MMIO
 - struct page-less "resource" MMIO

Overall this gets much closer to Matthew's long term wish for
struct-pageless IO to cachable DRAM. The remaining primary work would
be in the mm side to allow kmap_local_pfn()/phys_to_virt() to work on
phys_addr_t without a struct page.

The general design is to remove struct page usage entirely from the
DMA API inner layers. For flows that need to have a KVA for the
physical address they can use kmap_local_pfn() or phys_to_virt(). This
isolates the struct page requirements to MM code only. Long term all
removals of struct page usage are supporting Matthew's memdesc
project which seeks to substantially transform how struct page works.

Instead make the DMA API internals work on phys_addr_t. Internally
there are still dedicated 'page' and 'resource' flows, except they are
now distinguished by a new DMA_ATTR_MMIO instead of by callchain. Both
flows use the same phys_addr_t.

When DMA_ATTR_MMIO is specified things work similar to the existing
'resource' flow. kmap_local_pfn(), phys_to_virt(), phys_to_page(),
pfn_valid(), etc are never called on the phys_addr_t. This requires
rejecting any configuration that would need swiotlb. CPU cache
flushing is not required, and avoided, as ATTR_MMIO also indicates the
address have no cachable mappings. This effectively removes any
DMA API side requirement to have struct page when DMA_ATTR_MMIO is
used.

In the !DMA_ATTR_MMIO mode things work similarly to the 'page' flow,
except on the common path of no cache flush, no swiotlb it never
touches a struct page. When cache flushing or swiotlb copying
kmap_local_pfn()/phys_to_virt() are used to get a KVA for CPU
usage. This was already the case on the unmap side, now the map side
is symmetric.

Callers are adjusted to set DMA_ATTR_MMIO. Existing 'resource' users
must set it. The existing struct page based MEMORY_DEVICE_PCI_P2PDMA
path must also set it. This corrects some existing bugs where iommu
mappings for P2P MMIO were improperly marked IOMMU_CACHE.

Since ATTR_MMIO is made to work with all the existing DMA map entry
points, particularly dma_iova_link(), this finally allows a way to use
the new DMA API to map PCI P2P MMIO without creating struct page. The
VFIO DMABUF series demonstrates how this works. This is intended to
replace the incorrect driver use of dma_map_resource() on PCI BAR
addresses.

This series does the core code and modern flows. A followup series
will give the same treatement to the legacy dma_ops implementation.

Jason


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 14:28:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 14:28:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073141.1436060 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk1ba-0001fk-O3; Thu, 07 Aug 2025 14:28:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073141.1436060; Thu, 07 Aug 2025 14: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 1uk1ba-0001fd-JP; Thu, 07 Aug 2025 14:28:30 +0000
Received: by outflank-mailman (input) for mailman id 1073141;
 Thu, 07 Aug 2025 14:28:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oMMd=2T=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1uk1bZ-0001fX-6z
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 14:28:29 +0000
Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com
 [2a00:1450:4864:20::635])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c655db7e-739a-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 16:28:24 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-af96d097df5so207306566b.3
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 07:28:24 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a21c022sm1284455566b.101.2025.08.07.07.28.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Aug 2025 07:28:22 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c655db7e-739a-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754576903; x=1755181703; darn=lists.xenproject.org;
        h=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=HyHZDkliw5yShmO7mXh5tF1sO80g4mQYOybYvWhl1Zw=;
        b=cmyo5YDbYWjM6sEf295U4gHYW58TI7JdV9I8jhRFeKlkxLgx9q0dIdo0yZvNTlOEBs
         eTcK0um6bnyKgVF7DdfZ+AiaTmDGe0NkmpteLuXaO3H65HxPG1KJbr+Z9DGpLf0FC/7S
         DY69o+5Cfz6jc77Vh3u3DA+LpZmfOxXeum1MvzHFZmybJcOGBsdGWIRh47r/HTSRRvHV
         5oITCBW9hP17Ft4p3uJtJ+ozBdQMeDuFDr5NnUQSctxYqNaGZ6Dn0eV0SHIV9jO+tdtn
         pVFo00g2hrlL7xuOuu2JKyQxnLEXwhIoPzN7Cg2rSgB9K9wN5ZrB555MBOEtKImmXYvu
         imrQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754576903; x=1755181703;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=HyHZDkliw5yShmO7mXh5tF1sO80g4mQYOybYvWhl1Zw=;
        b=pZx/G1K20mc+FdFxpxn49flafhCOPLdTFzTw84+fTNXV7FAN3bz9loGIye85WhJpe1
         GkciNC3yVRdbCLzOMSoS+L63tGs1M7WNWs7WmXvxPAqOCt8/EexN9ifiDaMEpSbwr+x1
         2mvyZ03jKGjD+KqtSPi+UyMJN5UstOlFmv9fyBKEc3qdrQvci0edUMrWARsQMcyrdk5g
         dKfD9+oaWnGEkGCQ5EC1xkETJszPy1c/GHD/dypV7hCtgVA8ov98z07puhw34k48VeYB
         rwUJUVFyug98HaHk8aQmO64yhf5zZ36ya1T/Qh2YPHosD0sKJMptiVq7TSpBq+/uHJvl
         3Ckw==
X-Forwarded-Encrypted: i=1; AJvYcCVWXWcQAOaXgF+EqytVJ9+gG0gjhSagorQc718BHVP2MnaiV7I6+Q0/wqcrdLNUgz37DnfTYYgc2a0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxY0vUCHsxin6hh+lttIFDJ/0CnSv61MEofn9CAX7JCHJ7AFARW
	Q7aX+rzK/cL7brOXXJF8Tlbky4SBDrqboGUuNjZ5yJ30cpeXJy0MypIT
X-Gm-Gg: ASbGncsCjc01w0CMVY/or9uPT0z3LQAUBBiXwRSy26tFNBn2vvcpE6TrA4Ko8HmLDmx
	PY4FeSFz1VSJTPMUSFG8c7hRiZEPjB8V0Hnrn/k3HIEeE7cZX7V3gIee3emVInjw7QHiGdgVLin
	xSwcebO6j0I2nSusvxc0izxvVBcVtEjYE3xZuZc0qrnPv7XgbAbrWa5+AU0XTx74dcpVr1JM7o0
	ywRSDseoCmF3DOmWWg/MbhwjxaXk4a5sxSmpZDnu/akFwmkP9ztJkm9jns8eiG3LwZKVH8HerVu
	BcS5wwzA9JzYkJDLWxfc3aVbiCY9cJz144y23dOcFokeJOchyPElT7Jtk8S1U9l/JPryYQjdgZX
	c+SAhp0WYF4kHdU8H6HJER/gJf3usdtq8hCkPU214+zPKYFkT0Mn52YwsK3oYToSTg53/4q8=
X-Google-Smtp-Source: AGHT+IF2U/UvKp0sogEO2ZogBOafuvKBc5yqwJ8k8iTC+xrPrDiqZN2aDcXUIeupJwx0u0bCdf2i2g==
X-Received: by 2002:a17:906:f5aa:b0:aeb:fc49:3f56 with SMTP id a640c23a62f3a-af9900788c6mr740296966b.15.1754576903076;
        Thu, 07 Aug 2025 07:28:23 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------Q5V8Rsyu7TwJ3uZXcu2Ct4XT"
Message-ID: <5b604ac0-c832-496f-85b4-6261cbe06fcd@gmail.com>
Date: Thu, 7 Aug 2025 16:28:20 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/8] xen/domain: introduce common emulation flags
To: dmkhn@proton.me, 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
References: <20250731192130.3948419-1-dmukhin@ford.com>
 <20250731192130.3948419-2-dmukhin@ford.com>
 <f2be5a00-63e6-489d-a26a-7d48d6ae41ad@suse.com> <aJFWQByvktADgYKu@kraken>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <aJFWQByvktADgYKu@kraken>

This is a multi-part message in MIME format.
--------------Q5V8Rsyu7TwJ3uZXcu2Ct4XT
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 8/5/25 2:54 AM, dmkhn@proton.me wrote:
> + Cc: Oleskii
>
> On Mon, Aug 04, 2025 at 11:46:36AM +0200, Jan Beulich wrote:
>> On 31.07.2025 21:21,dmkhn@proton.me wrote:
>>> --- a/xen/include/xen/sched.h
>>> +++ b/xen/include/xen/sched.h
>>> @@ -652,6 +652,8 @@ struct domain
>>>       unsigned int *llc_colors;
>>>   #endif
>>>
>>> +    uint32_t emulation_flags;
>> Just one further remark: The field probably never should have been of this
>> type; unsigned int will do, and imo will want switching to while the field
>> is being moved. (Before giving an x86 ack, I want to convince myself though
>> that this is moving us in the right direction.)
> Hi Jan,
>
> I can definitely use different mechanism for virt ns16550: add a new field in
> xen_arch_domainconfig. That will also simplify some of the emulation_flags
> checks on x86 and will be more flexible wrt emulator configuration (e.g. I can
> allow passing I/O ports ranges).
>
> Hi Arm/RISC-V maintainers,
>
> Do you foresee any need in bubbling up emulation_flags to the common `struct
> domain`?

At the moment, in RISC-V's downstream branches emulation_flags isn't used. And,
for now, I am not really sure that it's going to be used in the nearest future.

~ Oleksii

--------------Q5V8Rsyu7TwJ3uZXcu2Ct4XT
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/5/25 2:54 AM, <a class="moz-txt-link-abbreviated" href="mailto:dmkhn@proton.me">dmkhn@proton.me</a>
      wrote:<br>
    </div>
    <blockquote type="cite" cite="mid:aJFWQByvktADgYKu@kraken">
      <pre wrap="" class="moz-quote-pre">+ Cc: Oleskii

On Mon, Aug 04, 2025 at 11:46:36AM +0200, Jan Beulich wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">On 31.07.2025 21:21, <a class="moz-txt-link-abbreviated" href="mailto:dmkhn@proton.me">dmkhn@proton.me</a> wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -652,6 +652,8 @@ struct domain
     unsigned int *llc_colors;
 #endif

+    uint32_t emulation_flags;
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
Just one further remark: The field probably never should have been of this
type; unsigned int will do, and imo will want switching to while the field
is being moved. (Before giving an x86 ack, I want to convince myself though
that this is moving us in the right direction.)
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Hi Jan,

I can definitely use different mechanism for virt ns16550: add a new field in
xen_arch_domainconfig. That will also simplify some of the emulation_flags
checks on x86 and will be more flexible wrt emulator configuration (e.g. I can
allow passing I/O ports ranges).

Hi Arm/RISC-V maintainers,

Do you foresee any need in bubbling up emulation_flags to the common `struct
domain`?
</pre>
    </blockquote>
    <pre>At the moment, in RISC-V's downstream branches emulation_flags isn't used. And,
for now, I am not really sure that it's going to be used in the nearest future.

~ Oleksii</pre>
  </body>
</html>

--------------Q5V8Rsyu7TwJ3uZXcu2Ct4XT--


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 14:31:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 14:31:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073148.1436069 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk1eI-0003K3-38; Thu, 07 Aug 2025 14:31:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073148.1436069; Thu, 07 Aug 2025 14:31: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 1uk1eI-0003Jw-0H; Thu, 07 Aug 2025 14:31:18 +0000
Received: by outflank-mailman (input) for mailman id 1073148;
 Thu, 07 Aug 2025 14:31:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oMMd=2T=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1uk1eG-0003Jq-UP
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 14:31:16 +0000
Received: from mail-ej1-x631.google.com (mail-ej1-x631.google.com
 [2a00:1450:4864:20::631])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2cf06b9f-739b-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 16:31:16 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-af93150f7c2so164615366b.3
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 07:31:16 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a218aa3sm1325837266b.93.2025.08.07.07.31.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Aug 2025 07:31: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>
X-Inumbo-ID: 2cf06b9f-739b-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754577075; x=1755181875; darn=lists.xenproject.org;
        h=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=oKk650pOXt2OjKnStyEg3KRLgf5h1Du17fqWDDRSrog=;
        b=mZRxOnQ/cB4TEAQGcJQWnskeiqQWhqCoZSRxBn+E0QFORuV2vRg/53KpxmHFiPTTa1
         SfGUE6phzM9sj/pWDurpXBW1jz9hbx28866XsPTLRadsakJ3Bscd7HCU3VtNTZoTxULQ
         KbirjdB58wbVUpTKNsAXwOPIpnhFXFcyNPd8JA05i2YaP3ExdbxImft5WSyRhGXFHHa7
         jELKvksySXQ71r75/nwehpPGMnOzh3d3yYSkJs+eUICSn6fM99W0ykYNY+EWn84ffjgO
         EFy/oZruKJrEQOYsxwiEgG7KzCv4gDcMje4d+FsoEtzhyu5Goa7Sd5a/rKXCjNvPVjRh
         rHzA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754577075; x=1755181875;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=oKk650pOXt2OjKnStyEg3KRLgf5h1Du17fqWDDRSrog=;
        b=F36fu2KBAl/S7+WQrUdtEqqwCTNZmR4vi2IJKKYwkz49E9TuEOm2si7sk3yGYzPebB
         Wg3gfQqFxNA4g+L/68oKB09ALq+I8BsMCBld2ff8PFZXxlpkoQQEvOud+pKydvUPH1io
         /CHbR5qZQpD7wRTA67lmoNDTEDQ8CxtIvxwBTrzGQoHbjk1BpDUff7n/iiGhNVHsZQt2
         6ce/t4+6De8Ms8pkiMldM2LaVF1Pb0DtXS8JnnEX8az3+vX/lN0gg3IN1H/N/MQGwldY
         nOU5YvW0N1tftwIH/b/z3bkC/4ITfA1GufWuU2VwlbjXba9IBT+5VqMPhtt4GU1Gi/AV
         ogBQ==
X-Gm-Message-State: AOJu0YzbyDwmCo+nDp2bQCl3s9RcGHpfd1C6qbB5aXr2eiuyP+vSL9TJ
	cBRhVbV5KeibKuQKXjR7AKz2rJRhLhievXyCWzIw9cOwfmWKod+jc7s9
X-Gm-Gg: ASbGnctSiolgeZQ9PG6f25dtCIvWLbB8xfJImcLiZQhHtTt3fFfPcxKr+0bQWJsUCTW
	srHhdID6MeWrJHfIBkbFPEueEgoEuvdh9kAu078xtb1IfIep0hZIw446bUJDOp1Jok1FgXDLMVI
	rjmAH12CYoUQYcUFgWx2cYFhHJ1bWnqkISQ4Ynj2pacMqZBU+PGYWfJso0+JsZJSEzcza2TPVyM
	Iy7aRVcEgf2ujL91/aN27DwXrrHuQl0tEVXp24pqYzlteUUkDW/s1dffnOKv2B2SqrFVePZHsFC
	oZPRpMCCvqpBTYy10ueoQ1FYihOpUrTKUdnJomzx8HHAXQdpzvbBXrDhNtIICYezNX41l4eaMub
	Y4s5/ZBOR/qjoevXBnZualUXNlxMRqQ9Eb79f+im5Yy8uCTHii6iLWKHPjyNaahcZGKxt+ng=
X-Google-Smtp-Source: AGHT+IHgQa4Uq9UQEvvKiaVktbg+CUVUf6QEgcPUl5vH+vhR3j5pl83Hya74jzcLPZVkr6FG6xeM/Q==
X-Received: by 2002:a17:907:9706:b0:af9:add3:6be6 with SMTP id a640c23a62f3a-af9c1e57d37mr12877366b.58.1754577074682;
        Thu, 07 Aug 2025 07:31:14 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------3cymdy8VbN4eYWJSYeGGck07"
Message-ID: <2fa6d182-c7d3-49e4-a9eb-b027f4d3758e@gmail.com>
Date: Thu, 7 Aug 2025 16:31:10 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Xen 4.21 Development Update [June-July]
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>,
 Ayan Kumar Halder <ayan.kumar.halder@amd.com>,
 Mykyta Poturai <Mykyta_Poturai@epam.com>, Juergen Gross <jgross@suse.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Luca Fancellu <luca.fancellu@arm.com>, "Jason Andryuk,"
 <jason.andryuk@amd.com>, Alejandro Vallejo <alejandro.vallejo@cloud.com>,
 Sergii Dmytruk <sergii.dmytruk@3mdeb.com>, "Penny Zheng,"
 <Penny.Zheng@amd.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki=2C?=
 <marmarek@invisiblethingslab.com>, Roger Pau Monne <roger.pau@citrix.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, dmkhn@proton.me,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Grygorii Strashko <gragst.linux@gmail.com>,
 Alejandro Vallejo <agarciav@amd.com>,
 "committers@xenproject.org" <committers@xenproject.org>,
 Community Manager <community.manager@xenproject.org>
References: <ae2c2e35-72df-40ed-bffe-391f3c11b826@gmail.com>
 <CAGeoDV9S3oqg-AgvQ1PhDCMM2Fd-uTrunD2q-4vSj9G8LwU9AA@mail.gmail.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <CAGeoDV9S3oqg-AgvQ1PhDCMM2Fd-uTrunD2q-4vSj9G8LwU9AA@mail.gmail.com>

This is a multi-part message in MIME format.
--------------3cymdy8VbN4eYWJSYeGGck07
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 8/7/25 2:50 PM, Mykola Kvach wrote:
> Hi Oleksii,

Hello Mykola,

>
> === ARM ===
>
> * [4.21?] MPU mm subsistem skeleton
>     - Luca Fancellu
>     -
> https://lore.kernel.org/xen-devel/20250312135258.1815706-1-luca.fancellu@arm.com/
>     -https://patchew.org/Xen/20250312135258.1815706-1-luca.fancellu@arm.com/
>
> * [4.21?] Add initial Xen Suspend-to-RAM support on ARM64 (v4)
>     - Mykola Kvach
>     -
> https://lore.kernel.org/xen-devel/cover.1748848482.git.mykola_kvach@epam.com/
> Our team expects to see this feature included in the 4.21 release.
>
> Additional related patches for this feature:
> https://lore.kernel.org/xen-devel/cover.1753778926.git.mykola_kvach@epam.com/
> https://lore.kernel.org/xen-devel/e57133182b9bcecb519911c8b3f0d871955d6fef.1754540991.git.mykola_kvach@epam.com/

Thanks for your comment and info about additional patches.

~ Oleksii


--------------3cymdy8VbN4eYWJSYeGGck07
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/7/25 2:50 PM, Mykola Kvach wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAGeoDV9S3oqg-AgvQ1PhDCMM2Fd-uTrunD2q-4vSj9G8LwU9AA@mail.gmail.com">
      <pre wrap="" class="moz-quote-pre">Hi Oleksii,
</pre>
    </blockquote>
    <pre>Hello Mykola,

</pre>
    <blockquote type="cite"
cite="mid:CAGeoDV9S3oqg-AgvQ1PhDCMM2Fd-uTrunD2q-4vSj9G8LwU9AA@mail.gmail.com">
      <pre wrap="" class="moz-quote-pre">

=== ARM ===

* [4.21?] MPU mm subsistem skeleton
   - Luca Fancellu
   -
<a class="moz-txt-link-freetext" href="https://lore.kernel.org/xen-devel/20250312135258.1815706-1-luca.fancellu@arm.com/">https://lore.kernel.org/xen-devel/20250312135258.1815706-1-luca.fancellu@arm.com/</a>
   - <a class="moz-txt-link-freetext" href="https://patchew.org/Xen/20250312135258.1815706-1-luca.fancellu@arm.com/">https://patchew.org/Xen/20250312135258.1815706-1-luca.fancellu@arm.com/</a>

* [4.21?] Add initial Xen Suspend-to-RAM support on ARM64 (v4)
   - Mykola Kvach
   -
<a class="moz-txt-link-freetext" href="https://lore.kernel.org/xen-devel/cover.1748848482.git.mykola_kvach@epam.com/">https://lore.kernel.org/xen-devel/cover.1748848482.git.mykola_kvach@epam.com/</a>
</pre>
      <pre wrap="" class="moz-quote-pre">
Our team expects to see this feature included in the 4.21 release.

Additional related patches for this feature:
<a class="moz-txt-link-freetext" href="https://lore.kernel.org/xen-devel/cover.1753778926.git.mykola_kvach@epam.com/">https://lore.kernel.org/xen-devel/cover.1753778926.git.mykola_kvach@epam.com/</a>
<a class="moz-txt-link-freetext" href="https://lore.kernel.org/xen-devel/e57133182b9bcecb519911c8b3f0d871955d6fef.1754540991.git.mykola_kvach@epam.com/">https://lore.kernel.org/xen-devel/e57133182b9bcecb519911c8b3f0d871955d6fef.1754540991.git.mykola_kvach@epam.com/</a></pre>
    </blockquote>
    <pre>Thanks for your comment and info about additional patches.

~ Oleksii</pre>
    <br>
  </body>
</html>

--------------3cymdy8VbN4eYWJSYeGGck07--


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 14:41:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 14:41:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073159.1436079 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk1ni-0005yF-1l; Thu, 07 Aug 2025 14:41:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073159.1436079; Thu, 07 Aug 2025 14:41:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk1nh-0005y8-V9; Thu, 07 Aug 2025 14:41:01 +0000
Received: by outflank-mailman (input) for mailman id 1073159;
 Thu, 07 Aug 2025 14:41:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=4KBa=2T=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1uk1ng-0005y2-8s
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 14:41:00 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 87da6e6e-739c-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 16:40:58 +0200 (CEST)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-459ddf8acf1so10124725e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 07:40:58 -0700 (PDT)
Received: from ?IPV6:2003:e5:872d:3c00:27e3:fc0:fb5:67a3?
 (p200300e5872d3c0027e30fc00fb567a3.dip0.t-ipconnect.de.
 [2003:e5:872d:3c00:27e3:fc0:fb5:67a3])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3b79c3ac158sm27487389f8f.4.2025.08.07.07.40.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Aug 2025 07: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>
X-Inumbo-ID: 87da6e6e-739c-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754577657; x=1755182457; 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=UNvtAxmLROgNUzbc11bBNIMDhX3I5pMyJHrrae5iWIY=;
        b=AxNF067ZNHUwyb6GBq6P0Y8g667uTgibhkq4cRIjncIOzmpWngY+fYciOLCgORBZmT
         05/Y9gcvKcQNmuQMzrRBQLXj/efKGSK4I34AJWRFcbjUW6vlQfp1cc/gbe99c8Q92OIv
         gk9Qt6v9j5xdm/OOXEJlVUJB36ibdp13u/ouukApMJeqlhfdXPcivvu4ymFopg176wjA
         46wXqfwRI2PS7bt7vMXUA2FYfSrR655GGFuhw9HdEGmmmpiLAV3BEHCNjvKl+O34wqgK
         Np9FXwISD1PiDR/TBn/qxIPohjZ3GgNTiFhLB1DzCcSmOqznGbXLmz++SIhDwl+Oh8Iy
         m2Ow==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754577657; x=1755182457;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=UNvtAxmLROgNUzbc11bBNIMDhX3I5pMyJHrrae5iWIY=;
        b=DL01WCTC4CT+Wxn1l7FYiBflpjZUsVqSOuSWIjYDGnNfMgvYhqNB8ENfC6FVAVNJaK
         DLJuL+7ejRBPSUdZeUW2NJ0gdStFKGif/YWtQxMtK4ULSQHWEyPH2v0vwYrbSlQ1jiAt
         lews0/XzwjwRsQGfRAAT6HDxEbxkohr7ov7Xl5zo/6MFsY/NRerZgSTGFxNlzNWtc2ph
         F+M4d2O/60H2eNBPGIRzGwY1tvkbQViAOnQ7TJpuT3SUcDlk9wDdbAV+99wrdinEakdK
         xNrbbrXxb3BDvdDDMzmJBaoIq0w5i6LsabhYp9COn6QHt3nxQmmYUMU3wlxU+6+zHyiV
         5RAA==
X-Forwarded-Encrypted: i=1; AJvYcCWdAqweQ0ep+CfnC3NUZ4XFUp3HyY6ryo7Wq59taCzklNdGUc6Z4hy3tG4/YaM0YwW2h/aIvA2L5FI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yza8e0Gq0AbcT6FB+egC0YyC8TYpMT8Gq/wZTYAIOhkfCV1PWxC
	2qj8JnpS70Q4Ou7+45wZ0nQVWDustfsQ7/+Pi6GQOVhrm0YoEFfNOkurwrKAclfMYIQ=
X-Gm-Gg: ASbGncsgnTQHqsD/Djzdy7SnAtqDIXV0cw6DTamtGvs8U2yx2YCYl2bcKyKOc9F4ufb
	2Xq649NEzTDz3LrHkoTa2tYniM0+VjaLUGHDcsx2Wim85/4EvHavrUkmHoatFGm+/J7CICco3RS
	8I1ScktxzRca+aRCAN4Ws1ivrUVPnFK1Z5fRtpMu2GvX8gM7yFhFJKDhiBq3V8GlWGqyjoximnO
	dXE1BS6H3Q9xB7M1ipsidtqannoF4u/JxgHOehvNP/O/5NKqIRRfh3XIOZbb+HMQVBFRyDWMdBE
	LSPktZO9SluqKDrI2TpAhPIaCtSAVII6QuNcike8WL4rzVT0BFfBSVCobAW5bXwIF7sxWNPBn8S
	MoFBqAOQir8ifYBhMBTFtUeOnEq1sceR4bgnlBdBQDdUG7e6Uskb0YrmYcU3EpjIwiGBqRS92cw
	zqNUim978H7fSo+Yq4yymTYLCokfrC3SmwLJjNgt7EXUbEA+K2rL2M
X-Google-Smtp-Source: AGHT+IEdsq/70nzbECt2XZv20aIclJJnJG4WOaVhcMt6Kol5NiFtvhP7+awwyCp70aSiqlFjENFKWA==
X-Received: by 2002:a05:600c:840f:b0:459:d709:e5d4 with SMTP id 5b1f17b1804b1-459e6fb8315mr72888315e9.0.1754577657329;
        Thu, 07 Aug 2025 07:40:57 -0700 (PDT)
Message-ID: <e52e54f9-5f46-4d52-b02b-3ddb497d5ed9@suse.com>
Date: Thu, 7 Aug 2025 16:40:55 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 10/16] xen: swiotlb: Open code map_resource callback
To: Leon Romanovsky <leon@kernel.org>,
 Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>, Jason Gunthorpe <jgg@nvidia.com>,
 Abdiel Janulgue <abdiel.janulgue@gmail.com>,
 Alexander Potapenko <glider@google.com>, Alex Gaynor
 <alex.gaynor@gmail.com>, Andrew Morton <akpm@linux-foundation.org>,
 Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
 iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
 Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
 Jonathan Corbet <corbet@lwn.net>, kasan-dev@googlegroups.com,
 Keith Busch <kbusch@kernel.org>, linux-block@vger.kernel.org,
 linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org,
 linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
 linux-trace-kernel@vger.kernel.org, Madhavan Srinivasan
 <maddy@linux.ibm.com>, Masami Hiramatsu <mhiramat@kernel.org>,
 Michael Ellerman <mpe@ellerman.id.au>, "Michael S. Tsirkin"
 <mst@redhat.com>, Miguel Ojeda <ojeda@kernel.org>,
 Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
 Sagi Grimberg <sagi@grimberg.me>, Stefano Stabellini
 <sstabellini@kernel.org>, Steven Rostedt <rostedt@goodmis.org>,
 virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1754292567.git.leon@kernel.org>
 <e69e9510d9024d664133dc788f5186aac414318e.1754292567.git.leon@kernel.org>
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: <e69e9510d9024d664133dc788f5186aac414318e.1754292567.git.leon@kernel.org>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------zbc1rtf2MP4v0hwBljje0R4r"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------zbc1rtf2MP4v0hwBljje0R4r
Content-Type: multipart/mixed; boundary="------------9ZSgHGkw4I0gfARYLaBix7N0";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Leon Romanovsky <leon@kernel.org>,
 Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>, Jason Gunthorpe <jgg@nvidia.com>,
 Abdiel Janulgue <abdiel.janulgue@gmail.com>,
 Alexander Potapenko <glider@google.com>, Alex Gaynor
 <alex.gaynor@gmail.com>, Andrew Morton <akpm@linux-foundation.org>,
 Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
 iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
 Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
 Jonathan Corbet <corbet@lwn.net>, kasan-dev@googlegroups.com,
 Keith Busch <kbusch@kernel.org>, linux-block@vger.kernel.org,
 linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org,
 linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
 linux-trace-kernel@vger.kernel.org, Madhavan Srinivasan
 <maddy@linux.ibm.com>, Masami Hiramatsu <mhiramat@kernel.org>,
 Michael Ellerman <mpe@ellerman.id.au>, "Michael S. Tsirkin"
 <mst@redhat.com>, Miguel Ojeda <ojeda@kernel.org>,
 Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
 Sagi Grimberg <sagi@grimberg.me>, Stefano Stabellini
 <sstabellini@kernel.org>, Steven Rostedt <rostedt@goodmis.org>,
 virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
 xen-devel@lists.xenproject.org
Message-ID: <e52e54f9-5f46-4d52-b02b-3ddb497d5ed9@suse.com>
Subject: Re: [PATCH v1 10/16] xen: swiotlb: Open code map_resource callback
References: <cover.1754292567.git.leon@kernel.org>
 <e69e9510d9024d664133dc788f5186aac414318e.1754292567.git.leon@kernel.org>
In-Reply-To: <e69e9510d9024d664133dc788f5186aac414318e.1754292567.git.leon@kernel.org>

--------------9ZSgHGkw4I0gfARYLaBix7N0
Content-Type: multipart/mixed; boundary="------------MyLdgWVjx6doOE9CX8bqeBuf"

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

T24gMDQuMDguMjUgMTQ6NDIsIExlb24gUm9tYW5vdnNreSB3cm90ZToNCj4gRnJvbTogTGVv
biBSb21hbm92c2t5IDxsZW9ucm9AbnZpZGlhLmNvbT4NCj4gDQo+IEdlbmVyYWwgZG1hX2Rp
cmVjdF9tYXBfcmVzb3VyY2UoKSBpcyBnb2luZyB0byBiZSByZW1vdmVkDQo+IGluIG5leHQg
cGF0Y2gsIHNvIHNpbXBseSBvcGVuLWNvZGUgaXQgaW4geGVuIGRyaXZlci4NCj4gDQo+IFNp
Z25lZC1vZmYtYnk6IExlb24gUm9tYW5vdnNreSA8bGVvbnJvQG52aWRpYS5jb20+DQoNClJl
dmlld2VkLWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+DQoNCg0KSnVlcmdl
bg0K
--------------MyLdgWVjx6doOE9CX8bqeBuf
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-----

--------------MyLdgWVjx6doOE9CX8bqeBuf--

--------------9ZSgHGkw4I0gfARYLaBix7N0--

--------------zbc1rtf2MP4v0hwBljje0R4r
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/Ey8FAmiUuvcFAwAAAAAACgkQsN6d1ii/Ey8T
2gf9Fig/dfNm6Pc7N5CfTbfrvQeHxFrx0A+Lbz3wE1LBralSuURdjPw+wrBAGuNq/agCOFH7OBqC
ayEkBjEdcL5kEblmVCgSWfcKQRq0vW5y0zkrzYglQyfuWhihBm/d56LwWxjbGku6QYLMnb5dGvHG
wtjPE58yPWlaVaZa/NiWJLKtHyLc9Ep3+vhGNksayAXIsaRoqhk6g0dlVfOZUhQB2CTSQmBN8Cjo
yhy4qsUiY26xJ0qhoNBaBahj9XRBQX5jz0z6IXT0xVJOTx5MoVU/ciBTMU97RmC1WbR0D5dAFfaA
bgpP4QE+654uwyPjna/thpNWrTTm0kf3W+lFK/6fTQ==
=Fe2s
-----END PGP SIGNATURE-----

--------------zbc1rtf2MP4v0hwBljje0R4r--


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 14:45:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 14:45:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073169.1436089 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk1sE-0007Zu-Ju; Thu, 07 Aug 2025 14:45:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073169.1436089; Thu, 07 Aug 2025 14: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 1uk1sE-0007Zn-GS; Thu, 07 Aug 2025 14:45:42 +0000
Received: by outflank-mailman (input) for mailman id 1073169;
 Thu, 07 Aug 2025 14:45:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oMMd=2T=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1uk1sE-0007Zg-11
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 14:45:42 +0000
Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com
 [2a00:1450:4864:20::536])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2fc259f2-739d-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 16:45:39 +0200 (CEST)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-615622ed677so1339075a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 07:45:39 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a0a3b77sm1318755966b.51.2025.08.07.07.45.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Aug 2025 07:45: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>
X-Inumbo-ID: 2fc259f2-739d-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754577939; x=1755182739; darn=lists.xenproject.org;
        h=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=3dtB2UQAds/eEd9AXjbKtecDjX2KM26MD4NWqTfa3hk=;
        b=ABPTdbK9H1hDaWD6yupQ/mXdWQMx920iQ8X3gbVuqYVO8+SwhAuoQ6Js8xcZ8FT7/B
         ZZOaQByKeOo9A5RVFo/3SPeci2z+onFeHNkg8l8LEaXLQQlChvVI8v99YWugAjY7749F
         G9KIcmPaNgznrYQjwfQUuZ7kJAd9FX1Ju+VkG6l47e+KDV661X5AfeviiM3klXEnRfD0
         Mds1BO56A8dEnvuE0nJI7/so71LPGct7DrJ0l5NeAOEMcIgUd7WZik8DCy0x9zvonTYz
         NXIlKktFVE/KvfNlh4e4I5HrEa1vmpVwGrmHC3AbjjNxL+s7NUhUES9TJ2szZdDOOKP4
         F48g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754577939; x=1755182739;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=3dtB2UQAds/eEd9AXjbKtecDjX2KM26MD4NWqTfa3hk=;
        b=UqwLQfYaUkkHm6raEipA0dAlExvYo8i4x+ABldJw/wxEkpBGq5nMrjchvSLoGAzi3d
         oSwuFWv8hwwRzANCWZ88Y4awjkFPpGhNAWKakmylgSa0PKXumG9p58VPKrimCFWOvPH0
         PPA+JWlWLNmviF/oyRLOPjMJNi6yOmyoKSHHicU1MDf0inmaDjg70K0A3TZVegS2/iUs
         UB7OuYRWAHAHOWMHltAu1o3RND986QWToKi3LZujX/87kIU9m93DUpdORehrMYYJ5fM7
         2YRItpAIElBdwk5T7vlGvr5XpBd/5yHN3uAQlgL48xRS2RMyfFWUiVS8Ya8tMFbuo3xg
         J/tw==
X-Forwarded-Encrypted: i=1; AJvYcCWz5/IPUrr806zNYKkIa7RZUknIEHx5bBrShqV0TK/+XEAXNsUQqIcBVCrNfqBCbnhIttfVrkumoyw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwpHIQtzrC+BNBvts2aXVz7woxiwhdh+Zpron1SQV/paj5XPWNa
	3R5yMTl5LRCQoP/U1fcYL7SbESv0THGpf0eKCqVoSy2VWNJVWFkQ5HG+
X-Gm-Gg: ASbGncuXbAuS01znjKVndBQB4bAaifeRqdWnrpaWcMSvmgB5L1Cp4L5zE8cY5GX9GJn
	86hBDQRhRu5ccN+KPZkT7OvonbOBkHEBXrE80QB8E69aZmDdVwUkyWONs2fg04fdiK4RpnDRkTU
	G1UP3LgcPhIaTZ+iJxKwmLh+jFnecnJ3lOnkePF4nOCroMNMGWb2LGJtg9Gc1RZm5TjoDHzulek
	VawPIOs92wTEKhMcQZKfI44YCR+RitTJvgPSU/vNENfATODnjUXhOjA7/M/K9mv0/ZSsCcQgivb
	RWDRSN+DVY9i8c9snLB0Z2FAPP+QGS7ZVKwVnwrV+5usLTuCaC5XHjQJEnU4yvpK8H7BTeXgBfH
	Q/IjszYXao2sZ+R9J8/ltV0N0M8k1ElP5DDgkNxzDaOiPYQUqKSzKFRQL0UhD+qQ4lMLX/GM=
X-Google-Smtp-Source: AGHT+IGQsYKSg3bV/lfeo/zWtA/8fpkC/HBVpVn95XA00YN65EhLngc5yefxdbWwG+T4HbOYLbdiRg==
X-Received: by 2002:a17:906:6a09:b0:ade:6e3:7c4 with SMTP id a640c23a62f3a-af9c1cc3c71mr17577466b.23.1754577938738;
        Thu, 07 Aug 2025 07:45:38 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------34lT01JwO04vhqMxTRkKLy9A"
Message-ID: <0737c844-650c-403a-a802-e1215faa2916@gmail.com>
Date: Thu, 7 Aug 2025 16:45:37 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 03/20] xen/riscv: introduce VMID allocation and
 manegement
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <d61f5f831ac8045055a1775ee710d4f2fe8dcc26.1753973161.git.oleksii.kurochko@gmail.com>
 <cd1a0c64-49d7-4ae1-8dec-b3b1de3f1d09@suse.com>
 <bcf4c3aa-5c09-4171-a4f5-85110d6e634f@gmail.com>
 <6ddee574-6fe2-4de7-b000-a3af0b2c9d12@suse.com>
 <cc6bb8a7-ed22-4d3e-a352-fa305f0ea56a@gmail.com>
 <affb589c-0e4e-46c1-a2c7-d09b6cca0a6c@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <affb589c-0e4e-46c1-a2c7-d09b6cca0a6c@suse.com>

This is a multi-part message in MIME format.
--------------34lT01JwO04vhqMxTRkKLy9A
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 8/7/25 12:11 PM, Jan Beulich wrote:
>>>>>> +    unsigned long old;
>>>>>> +
>>>>>> +    /* Figure-out number of VMID bits in HW */
>>>>>> +    old = csr_read(CSR_HGATP);
>>>>>> +
>>>>>> +    csr_write(CSR_HGATP, old | HGATP_VMID_MASK);
>>>>>> +    vmid_bits = csr_read(CSR_HGATP);
>>>>>> +    vmid_bits =  MASK_EXTR(vmid_bits, HGATP_VMID_MASK);
>>>>> Nit: Stray blank.
>>>>>
>>>>>> +    vmid_bits = flsl(vmid_bits);
>>>>>> +    csr_write(CSR_HGATP, old);
>>>>>> +
>>>>>> +    /*
>>>>>> +     * We polluted local TLB so flush all guest TLB as
>>>>>> +     * a speculative access can happen at any time.
>>>>>> +     */
>>>>>> +    local_hfence_gvma_all();
>>>>> There's no guest running. If you wrote hgat.MODE as zero, as per my
>>>>> understanding now new TLB entries could even purely theoretically appear.
>>>> It could be an issue (or, at least, it is recommended) when hgatp.MODE is
>>>> changed:
>>>>     If hgatp.MODE is changed for a given VMID, an HFENCE.GVMA with rs1=x0
>>>>     (and rs2 set to either x0 or the VMID) must be executed to order subsequent
>>>>     guest translations with the MODE changeâ€”even if the old MODE or new MODE
>>>>     is Bare.
>>>> On other hand it is guaranteed that, at least, on Reset (and so I assume
>>>> for power on) that:
>>>>     If the hypervisor extension is implemented, the hgatp.MODE and vsatp.MODE
>>>>     fields are reset to 0.
>>>>
>>>> So it seems like if no guest is ran then there is no need even to write
>>>> hgatp.MODE as zero, but it might be sense to do that explicitly just to
>>>> be sure.
>>>>
>>>> I thought it was possible to have a running guest and perform a CPU hotplug.
>>> But that guest will run on another hart.
>>>
>>>> In that case, I expect that during the hotplug,|vmidlen_detect()| will be
>>>> called and return the|vmid_bits| value, which is used as the active VMID.
>>>> At that moment, the local TLB could be speculatively polluted, I think.
>>>> Likely, it makes sense to call vmidlen_detect() only once for each hart
>>>> during initial bringup.
>>> That may bring you more problems than it solves. You'd need to stash away
>>> the value originally read somewhere. And that somewhere isn't per-CPU data.
>>>
>>>>> In fact, with no guest running (yet) I'm having a hard time seeing why
>>>>> you shouldn't be able to simply write the register with just
>>>>> HGATP_VMID_MASK, i.e. without OR-ing in "old". It's even questionable
>>>>> whether "old" needs restoring; writing plain zero afterwards ought to
>>>>> suffice. You're in charcge of the register, after all.
>>>> It make sense (but I don't know if it is a possible case) to be sure that
>>>> HGATP.MODE remains the same, so there is no need to have TLB flush. If
>>>> HGATP.MODE is changed then it will be needed to do TLB flush as I mentioned
>>>> above.
>>>>
>>>> If we agreed to keep local_hfence_gvma_all() then I think it isn't really
>>>> any sense to restore 'old' or OR-ing it with HGATP_VMID_MASK.
>>>>
>>>> Generally if 'old' is guaranteed to be zero (and, probably, it makes sense
>>>> to check that in vmidlen_detect() and panic if it isn't zero) and if
>>>> vmidlen_detect() function will be called before any guest domain(s) will
>>>> be ran then I could agree that we don't need local_hfence_gvma_all() here.
>>>>
>>>> As an option we can do local_hfence_gvma_all() only if 'old' value wasn't
>>>> set to zero.
>>>>
>>>> Does it make sense?
>>> Well - I'd like the pre-conditions to be understood better. For example, can
>>> a hart really speculate into guest mode, when the hart is only in the
>>> process of being brought up?
>> I couldn't explicit words that a hart can't speculate into guest mode
>> either on bring up or during its work.
>>
>> But there are some moments in the spec which tells:
>>     Implementations with virtual memory are permitted to perform address
>>     translations speculatively and earlier than required by an explicit
>>     memory access, and are permitted to cache them in address translation
>>     cache structuresâ€”including possibly caching the identity mappings from
>>     effective address to physical address used in Bare translation modes and
>>     M-mode.
>> And here:
>>     Implementations may also execute the address-translation algorithm
>>     speculatively at any time, for any virtual address, as long as satp is
>>     active (as defined in Section 10.1.11). Such speculative executions have
>>     the effect of pre-populating the address-translation cache.
> That's satp though, not hgatp.
>
>> Where it is explicitly mentioned that speculation can happen in*any time*.
>> And at the same time:
>>     Speculative executions of the address-translation algorithm behave as
>>     non-speculative executions of the algorithm do, except that they must
>>     not set the dirty bit for a PTE, they must not trigger an exception,
>>     and they must not create address-translation cache entries if those
>>     entries would have been invalidated by any SFENCE.VMA instruction
>>     executed by the hart since the speculative execution of the algorithm began.
>> What I read as if TLB was empty before it will stay empty.
>>
>> Also, despite of the fact here it is mentioned that when V=0 two-stage address
>> translation is inactivated:
>>     The current virtualization mode, denoted V, indicates whether the hart is
>>     currently executing in a guest. When V=1, the hart is either in virtual
>>     S-mode (VS-mode), or in virtual U-mode (VU-mode) atop a guest OS running
>>     in VS-mode. When V=0, the hart is either in M-mode, in HS-mode, or in
>>     U-mode atop an OS running in HS-mode. The virtualization mode also
>>     indicates whether two-stage address translation is active (V=1) or
>>     inactive (V=0).
>> But on the same side, writing to hgatp register activates it:
>>     The hgatp register is considered active for the purposes of
>>     the address-translation algorithm unless the effective privilege mode
>>     is U and hstatus.HU=0.
>> And if so + considering that speculation could happen at any time, and
>> we are in HS-mode, not it U mode then I would say that it could really
>> speculate into guest mode.
> Hmm, that leaves some things to be desired. What I'm particularly puzzled
> by is that there's nothing said either way towards speculation through SRET.
> That's the important aspect here aiui, because without that the hart can't
> speculate into guest mode.
>
> But yes, in the absence of any clear indication to the contrary, I think
> you want to keep the local_hfence_gvma_all() (with a suitable comment).

Interesting that for VS-stage translation is explicitly mention that it is
possible to stop speculation:
   No mechanism is provided to atomically change vsatp and hgatp together.
   Hence, to prevent speculative execution causing one guestâ€™s VS-stage
   translations to be cached under another guestâ€™s VMID, world-switch code
   should zero vsatp, then swap hgatp, then finally write the new vsatp value.
   Similarly, if henvcfg.PBMTE need be world-switched, it should be switched
   after zeroing vsatp but before writing the new vsatp value, obviating
   the need to execute an HFENCE.VVMA instruction.
So if VSATP is 0 then there is no speculation as there is no need to execute
HFENCE.VVMA.

>
>>>>>> +    data->max_vmid = BIT(vmid_len, U) - 1;
>>>>>> +    data->disabled = !opt_vmid_enabled || (vmid_len <= 1);
>>>>> Actually, what exactly does it mean that "VMIDs are disabled"? There's
>>>>> no enable bit that I could find anywhere. Isn't it rather that in this
>>>>> case you need to arrange to flush always on VM entry (or always after a
>>>>> P2M change, depending how the TLB is split between guest and host use)?
>>>> "VMIDs are disabled" here means that TLB flush will happen each time p2m
>>>> is changed.
>>> That's better described as "VMIDs aren't used" then?
>> It sounds a little bit just like an opposite to "disabled" (i.e. means
>> basically the same), but I am okay to use "used" instead.
> If you want to stick to using "disabled", then how about "VMID use is
> disabled"? (You probably meanwhile understood that what I'm after is it
> becoming clear that this is a software decision, not something you can
> enforce in hardware.)

"VMID use is disabled" really sounds more clear. Thanks.

~ Oleksii

--------------34lT01JwO04vhqMxTRkKLy9A
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/7/25 12:11 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:affb589c-0e4e-46c1-a2c7-d09b6cca0a6c@suse.com">
      <pre class="moz-quote-pre" wrap=""><blockquote type="cite"
      style="color: #007cff;"><blockquote type="cite"
      style="color: #007cff;"><blockquote type="cite"
      style="color: #007cff;"><blockquote type="cite"
      style="color: #007cff;"><blockquote type="cite"
      style="color: #007cff;"><pre wrap="" class="moz-quote-pre">+    unsigned long old;
+
+    /* Figure-out number of VMID bits in HW */
+    old = csr_read(CSR_HGATP);
+
+    csr_write(CSR_HGATP, old | HGATP_VMID_MASK);
+    vmid_bits = csr_read(CSR_HGATP);
+    vmid_bits =  MASK_EXTR(vmid_bits, HGATP_VMID_MASK);
</pre></blockquote><pre wrap="" class="moz-quote-pre">Nit: Stray blank.

</pre><blockquote type="cite" style="color: #007cff;"><pre wrap=""
      class="moz-quote-pre">+    vmid_bits = flsl(vmid_bits);
+    csr_write(CSR_HGATP, old);
+
+    /*
+     * We polluted local TLB so flush all guest TLB as
+     * a speculative access can happen at any time.
+     */
+    local_hfence_gvma_all();
</pre></blockquote><pre wrap="" class="moz-quote-pre">There's no guest running. If you wrote hgat.MODE as zero, as per my
understanding now new TLB entries could even purely theoretically appear.
</pre></blockquote><pre wrap="" class="moz-quote-pre">It could be an issue (or, at least, it is recommended) when hgatp.MODE is
changed:
   If hgatp.MODE is changed for a given VMID, an HFENCE.GVMA with rs1=x0
   (and rs2 set to either x0 or the VMID) must be executed to order subsequent
   guest translations with the MODE changeâ€”even if the old MODE or new MODE
   is Bare.
On other hand it is guaranteed that, at least, on Reset (and so I assume
for power on) that:
   If the hypervisor extension is implemented, the hgatp.MODE and vsatp.MODE
   fields are reset to 0.

So it seems like if no guest is ran then there is no need even to write
hgatp.MODE as zero, but it might be sense to do that explicitly just to
be sure.

I thought it was possible to have a running guest and perform a CPU hotplug.
</pre></blockquote><pre wrap="" class="moz-quote-pre">But that guest will run on another hart.

</pre><blockquote type="cite" style="color: #007cff;"><pre wrap=""
      class="moz-quote-pre">In that case, I expect that during the hotplug,|vmidlen_detect()| will be
called and return the|vmid_bits| value, which is used as the active VMID.
At that moment, the local TLB could be speculatively polluted, I think.
Likely, it makes sense to call vmidlen_detect() only once for each hart
during initial bringup.
</pre></blockquote><pre wrap="" class="moz-quote-pre">That may bring you more problems than it solves. You'd need to stash away
the value originally read somewhere. And that somewhere isn't per-CPU data.

</pre><blockquote type="cite" style="color: #007cff;"><blockquote
      type="cite" style="color: #007cff;"><pre wrap=""
      class="moz-quote-pre">In fact, with no guest running (yet) I'm having a hard time seeing why
you shouldn't be able to simply write the register with just
HGATP_VMID_MASK, i.e. without OR-ing in "old". It's even questionable
whether "old" needs restoring; writing plain zero afterwards ought to
suffice. You're in charcge of the register, after all.
</pre></blockquote><pre wrap="" class="moz-quote-pre">It make sense (but I don't know if it is a possible case) to be sure that
HGATP.MODE remains the same, so there is no need to have TLB flush. If
HGATP.MODE is changed then it will be needed to do TLB flush as I mentioned
above.

If we agreed to keep local_hfence_gvma_all() then I think it isn't really
any sense to restore 'old' or OR-ing it with HGATP_VMID_MASK.

Generally if 'old' is guaranteed to be zero (and, probably, it makes sense
to check that in vmidlen_detect() and panic if it isn't zero) and if
vmidlen_detect() function will be called before any guest domain(s) will
be ran then I could agree that we don't need local_hfence_gvma_all() here.

As an option we can do local_hfence_gvma_all() only if 'old' value wasn't
set to zero.

Does it make sense?
</pre></blockquote><pre wrap="" class="moz-quote-pre">Well - I'd like the pre-conditions to be understood better. For example, can
a hart really speculate into guest mode, when the hart is only in the
process of being brought up?
</pre></blockquote><pre wrap="" class="moz-quote-pre">I couldn't explicit words that a hart can't speculate into guest mode
either on bring up or during its work.

But there are some moments in the spec which tells:
   Implementations with virtual memory are permitted to perform address
   translations speculatively and earlier than required by an explicit
   memory access, and are permitted to cache them in address translation
   cache structuresâ€”including possibly caching the identity mappings from
   effective address to physical address used in Bare translation modes and
   M-mode.
And here:
   Implementations may also execute the address-translation algorithm
   speculatively at any time, for any virtual address, as long as satp is
   active (as defined in Section 10.1.11). Such speculative executions have
   the effect of pre-populating the address-translation cache.
</pre></blockquote><pre wrap="" class="moz-quote-pre">That's satp though, not hgatp.

</pre><blockquote type="cite" style="color: #007cff;"><pre wrap=""
      class="moz-quote-pre">Where it is explicitly mentioned that speculation can happen in <b
      class="moz-txt-star"><span class="moz-txt-tag">*</span>any time<span
      class="moz-txt-tag">*</span></b>.
And at the same time:
   Speculative executions of the address-translation algorithm behave as
   non-speculative executions of the algorithm do, except that they must
   not set the dirty bit for a PTE, they must not trigger an exception,
   and they must not create address-translation cache entries if those
   entries would have been invalidated by any SFENCE.VMA instruction
   executed by the hart since the speculative execution of the algorithm began.
What I read as if TLB was empty before it will stay empty.

Also, despite of the fact here it is mentioned that when V=0 two-stage address
translation is inactivated:
   The current virtualization mode, denoted V, indicates whether the hart is
   currently executing in a guest. When V=1, the hart is either in virtual
   S-mode (VS-mode), or in virtual U-mode (VU-mode) atop a guest OS running
   in VS-mode. When V=0, the hart is either in M-mode, in HS-mode, or in
   U-mode atop an OS running in HS-mode. The virtualization mode also
   indicates whether two-stage address translation is active (V=1) or
   inactive (V=0).
But on the same side, writing to hgatp register activates it:
   The hgatp register is considered active for the purposes of
   the address-translation algorithm unless the effective privilege mode
   is U and hstatus.HU=0.
And if so + considering that speculation could happen at any time, and
we are in HS-mode, not it U mode then I would say that it could really
speculate into guest mode.
</pre></blockquote><pre wrap="" class="moz-quote-pre">Hmm, that leaves some things to be desired. What I'm particularly puzzled
by is that there's nothing said either way towards speculation through SRET.
That's the important aspect here aiui, because without that the hart can't
speculate into guest mode.

But yes, in the absence of any clear indication to the contrary, I think
you want to keep the local_hfence_gvma_all() (with a suitable comment).</pre></pre>
    </blockquote>
    <pre>Interesting that for VS-stage translation is explicitly mention that it is
possible to stop speculation:
  No mechanism is provided to atomically change vsatp and hgatp together.
  Hence, to prevent speculative execution causing one guestâ€™s VS-stage
  translations to be cached under another guestâ€™s VMID, world-switch code
  should zero vsatp, then swap hgatp, then finally write the new vsatp value.
  Similarly, if henvcfg.PBMTE need be world-switched, it should be switched
  after zeroing vsatp but before writing the new vsatp value, obviating
  the need to execute an HFENCE.VVMA instruction.
So if VSATP is 0 then there is no speculation as there is no need to execute
HFENCE.VVMA.
</pre>
    <blockquote type="cite"
      cite="mid:affb589c-0e4e-46c1-a2c7-d09b6cca0a6c@suse.com">
      <pre class="moz-quote-pre" wrap=""><pre wrap=""
      class="moz-quote-pre">

</pre><blockquote type="cite" style="color: #007cff;"><blockquote
      type="cite" style="color: #007cff;"><blockquote type="cite"
      style="color: #007cff;"><blockquote type="cite"
      style="color: #007cff;"><blockquote type="cite"
      style="color: #007cff;"><pre wrap="" class="moz-quote-pre">+    data-&gt;max_vmid = BIT(vmid_len, U) - 1;
+    data-&gt;disabled = !opt_vmid_enabled || (vmid_len &lt;= 1);
</pre></blockquote><pre wrap="" class="moz-quote-pre">Actually, what exactly does it mean that "VMIDs are disabled"? There's
no enable bit that I could find anywhere. Isn't it rather that in this
case you need to arrange to flush always on VM entry (or always after a
P2M change, depending how the TLB is split between guest and host use)?
</pre></blockquote><pre wrap="" class="moz-quote-pre">"VMIDs are disabled" here means that TLB flush will happen each time p2m
is changed.
</pre></blockquote><pre wrap="" class="moz-quote-pre">That's better described as "VMIDs aren't used" then?
</pre></blockquote><pre wrap="" class="moz-quote-pre">It sounds a little bit just like an opposite to "disabled" (i.e. means
basically the same), but I am okay to use "used" instead.
</pre></blockquote><pre wrap="" class="moz-quote-pre">If you want to stick to using "disabled", then how about "VMID use is
disabled"? (You probably meanwhile understood that what I'm after is it
becoming clear that this is a software decision, not something you can
enforce in hardware.)</pre></pre>
    </blockquote>
    <pre>"VMID use is disabled" really sounds more clear. Thanks.

~ Oleksii
</pre>
  </body>
</html>

--------------34lT01JwO04vhqMxTRkKLy9A--


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 14:59:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 14:59:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073191.1436103 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk25F-000273-Su; Thu, 07 Aug 2025 14:59:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073191.1436103; Thu, 07 Aug 2025 14: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 1uk25F-00026w-Py; Thu, 07 Aug 2025 14:59:09 +0000
Received: by outflank-mailman (input) for mailman id 1073191;
 Thu, 07 Aug 2025 14:59:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=70fD=2T=epam.com=Oleksii_Moisieiev@srs-se1.protection.inumbo.net>)
 id 1uk25E-00026q-CO
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 14:59:08 +0000
Received: from DB3PR0202CU003.outbound.protection.outlook.com
 (mail-northeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c200::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0ea88ede-739f-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 16:59:03 +0200 (CEST)
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com (2603:10a6:102:32e::21)
 by AS8PR03MB8668.eurprd03.prod.outlook.com (2603:10a6:20b:54e::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.15; Thu, 7 Aug
 2025 14:59:00 +0000
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::f12d:7394:bbe3:dfc]) by PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::f12d:7394:bbe3:dfc%6]) with mapi id 15.20.9009.013; Thu, 7 Aug 2025
 14:58: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>
X-Inumbo-ID: 0ea88ede-739f-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rMjEMDA3nj9lfS3CtInxyLriqAHZcAi5GZ29N2tMyHkrVO4Ikj2aR0onaTHTJPWVRSFB5PNDaI66mqcsrVJ7SkEPxGsCHq0Ri5y1bKVwvnbNpZmo5gGlMrmyZFbTUAQmtVL9gdHMuP4/9enZjmxO4Fe4s3MetZ8JASO0xIBny1VEAzHq39JyHyf+ce/akgNERL8vwFtudZDLxuKk+b88MAY+lqA8oEAJQof/fFT0fKybut8IUPWr5CQsurnIFH0OcMdZB7y1eJVJCrum1WWKGPtptg1Z/SpFPNXajKhvwJSelX6ojCZfX8idTMXgP/KhxyaM2EyAT2FRSkVG+nOwKA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+3SU5CPTAltdBkkfm+p76xkgQPRGikYDXGhCajOmHqY=;
 b=DdkpnW/gpxBLSDkVzVbgD2OQlbZy3fuKEnJjuRRlSlIXTwPFGpdAY5BFqPkr6+b4z7bZVEGPC3sDogCaHd1Nuo6xzE/MQfWUHlZ0HFyfEpQJleOvHZ+Dd/2zn5jVdstkr96118dSFQNDPEzJErn12sP0uYH1pxy9mfnmYh1lL+6GhYBeWE7SrCxuc13XHzUSBdljSi8CPTWRqWlKXSjnzPWf56r0VCxZiPnCaZIQeSulSWYO8zMdDqPA/1ApPOY6A+Vi0FfDxRsusSjG/CggUBuyrBhzHrfKNIqE2bYV6OHko8ALiDyxV221C2zPl3GxgWqQiE6wSP3MWpjxim9bWQ==
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=+3SU5CPTAltdBkkfm+p76xkgQPRGikYDXGhCajOmHqY=;
 b=erkpgxlWeAWqMtqGtmOlXnVb5qSCWC1rHlvvb2H/am/5jhRJMsKBDlQFo7oEpqGIgg0VlPoyje0MA00zkeiJ9OAXooohz7/kVaJJMmwTmDN8KEaoVsikON82LPvsCL6PtXBUu1uDYa9E9w5yexndsa2dkCIGSoNvxstCPhmHCxwT1sp907/ElSuWstVQDp/YxoQYHatSyXtul45YlkLuaTPm32mdT7YOQZ8UdKbHrVDXMLTcRpW5BsPSq4pAvElrrkBOTE9ppARydj5ldlUoj3org0xvOm8YAi3lY+yLIOfnBzUyJQyJ6otIVqb6Ru/MsZMXuQj6AcP/zPI5E8gZXA==
From: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>, Xen-devel
	<xen-devel@lists.xenproject.org>
CC: ", Ayan Kumar Halder" <ayan.kumar.halder@amd.com>, Mykyta Poturai
	<Mykyta_Poturai@epam.com>, Juergen Gross <jgross@suse.com>, Teddy Astie
	<teddy.astie@vates.tech>, Bertrand Marquis <bertrand.marquis@arm.com>, Luca
 Fancellu <luca.fancellu@arm.com>, "Jason Andryuk," <jason.andryuk@amd.com>,
	Alejandro Vallejo <alejandro.vallejo@cloud.com>, Sergii Dmytruk
	<sergii.dmytruk@3mdeb.com>, "Penny Zheng," <Penny.Zheng@amd.com>,
	=?utf-8?B?TWFyZWsgTWFyY3p5a293c2tpLUfDs3JlY2tpLA==?=
	<marmarek@invisiblethingslab.com>, Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, "dmkhn@proton.me"
	<dmkhn@proton.me>, Mykola Kvach <xakep.amatop@gmail.com>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, Grygorii Strashko <gragst.linux@gmail.com>,
	Alejandro Vallejo <agarciav@amd.com>, "committers@xenproject.org"
	<committers@xenproject.org>, Community Manager
	<community.manager@xenproject.org>
Subject: Re: Xen 4.21 Development Update [June-July]
Thread-Topic: Xen 4.21 Development Update [June-July]
Thread-Index: AQHcBjWKnvMog0osvESC+B1KCmpb8bRXSw+A
Date: Thu, 7 Aug 2025 14:58:59 +0000
Message-ID: <37b648ff-7c11-4505-aa27-ea44d84ba88e@epam.com>
References: <ae2c2e35-72df-40ed-bffe-391f3c11b826@gmail.com>
In-Reply-To: <ae2c2e35-72df-40ed-bffe-391f3c11b826@gmail.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: PAVPR03MB8946:EE_|AS8PR03MB8668:EE_
x-ms-office365-filtering-correlation-id: 23db6af2-1f83-4087-720c-08ddd5c2f0d2
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|7416014|376014|13003099007|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?NkxMUWloUGxHZW92Sm0xak41VGRXQTRYNUI1NEUzRGNXZnc0NnZYclZ5ZkU3?=
 =?utf-8?B?NXhuUTc1b0FNdnNMMEl4dkZPTTBJUTZFaE9oSkd4MVdMd3dGWlhFWXZ5WmFK?=
 =?utf-8?B?NkI5cDR2d0ViMlEwWmJjUkxPU2ZlVm5hb2xtYTdqVURMZXlGakJvdnNwTmFT?=
 =?utf-8?B?UEFJYTNtLzdRcVcxY0JaRTc0UDRXanhUV2ZSMDlueCtyc28wSEQ2Y0xLaDJu?=
 =?utf-8?B?ZXB1MTY1NWdoL09DbzRjeDlzelJac2k2SGZVUUpRWGVVRTltN1FaOWNYZE1m?=
 =?utf-8?B?RXJoY0R5YlNhbHlwdVJ5cWcvdlN3dmpRY0d4S2NJQ3cxc1NnM1VtQWh2QlJy?=
 =?utf-8?B?Z0NXQkRRUHE0YXNYdkdrVm56S1Q4SlNUNDBxajN4QzZVdnRzajBlOEJwYXVR?=
 =?utf-8?B?TmkreG9JVE04SUZKZ1VIaXd0aXRRRlZ6SE5WYk1BNVBWcEtyUHhpNXl4MXF2?=
 =?utf-8?B?d0FGSmIzRmYzeHNoMFdjMEJsOXI3KzB2MUtzVTVPb3NPWFRQbVNjdVVrYWZW?=
 =?utf-8?B?TUhoWlc2Ykd4bisvSDFwMHo4em1jRXJtMEh1YTRuVW5EWURuLzdUNXFWc1B5?=
 =?utf-8?B?Tkpxcms5ZXdNbTcwb3NyUVhLeUtNOFJEL2NRVEU1cTdySy9XNU1HMlQ1L1c1?=
 =?utf-8?B?RCtOanpiWXNuOFpSNjBWQm10VDBCVnF4dHFzdk82blp2UVRjanRFMWloYVlq?=
 =?utf-8?B?WEloR0VCODVzRThkd2ZaRWNOZy8xci9Cc1ZCcjlUZCtWZFlSUCtpa3J5YVhO?=
 =?utf-8?B?MXZBOTExdHUzbUs2V2ZrcDFaYnpZRE9KY2hDNHVja3BKVkZKZzlsQ2g5bThJ?=
 =?utf-8?B?cmt2cnJVL0Iwd21YckwxYXNGY2RIa3U5YXhweWIxaGw4UjdTSlc2Wk5Eam9S?=
 =?utf-8?B?VnRkVDJXdVdDSFVwZC85WnVtYnloV21tbGlYVEFwRmFSZU4xR2R5QnBuTFFS?=
 =?utf-8?B?cHgzUzY2Y2FNUVc3L2xGcU5xdlIvTVNGWWNwclRwWW9BQkpjNm9OczhsVy9n?=
 =?utf-8?B?KzV0dHE2bUNYTGJQZ1ZaRkR5UEFDTUVRdXg0cFJJTTNoT0FKdWgyL3Vwak14?=
 =?utf-8?B?YVNiOXVyZDN6ZzBwQy91V3BYeDRYNUwzY21tUHQzOUpGT09RNWNJYStUaC93?=
 =?utf-8?B?Uk9nNFBaenJFOWhheTZJbC9VSVBLWktnRjVxMkt0RHhKNXdVSm1KK25oeERO?=
 =?utf-8?B?enY2QU41L2dHZU9qNFBVZVJLRWR5TGN3MTFQS1Q3KzUzSElTaDVzUlpva3Fn?=
 =?utf-8?B?VStFTmxQWmYwL3M4Z09KN2o1blU1VS9FNHNXa3VoQXR2YkhzUkJDQjR2ZjFO?=
 =?utf-8?B?YnBXczlXODJEcmNwa1U1V1FMSmh6MzNmNWNxWHYxc0VOK28yRnRQZDJnK0ZL?=
 =?utf-8?B?a3BuSHNzUHpmRXRUT0xsRDlYS3daZ3BzQmV4QmNkcThFWWwrWCtXZEs1bWd5?=
 =?utf-8?B?ZWRsamUzd2pNMGk0TGtoUTY0c1k4YUxiVFVBa2hUbVZncFFDby9GLzh3Y0tU?=
 =?utf-8?B?eXZKdmEvNjdhT1RGQ3hoK2dKbFYyQldiVHArZlNrR2xmY0owVzQvay9aWVJz?=
 =?utf-8?B?QW1adUIyNldrbzZjbGlOc2RRZXpxOXFieWJ5L0srSzlTbVJ1SlpFMmVibWE3?=
 =?utf-8?B?SU5aeUhzcElVZHgwa2tVWGFQb2dwR0Z5WUJac01DYjJ5UFArZ1pUNE5OM0Ri?=
 =?utf-8?B?R2xTRkx2ejNpM1ZMS0IrcmNDdzFzOFNWZFc1Wk5YZlJLVnhJRzV4Y3dJcDFY?=
 =?utf-8?B?NmdoeDZnU2ovTWt1eDNPZTI5ZmRaeWU2UDQydy91OEpxa0ZIRTBNV2dUUGhx?=
 =?utf-8?B?azFRY2lYNkxkY3FtVURaN0xIS2twdVlNdkJwUzdUeXl6V0doeW9pRlNWQWVa?=
 =?utf-8?B?dCtWS3VhenhxR2ZleDk5MjFkQzJTdmM5anNYVDF2TnJTY3kzQng3YWl0bnJ4?=
 =?utf-8?Q?62HgeFWU90Q=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB8946.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014)(13003099007)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?dWVaK0RzNGZucVA1eUFiTURBaGZ2aFhoSElpYUlrTTNld2dVWUFDbDFpSHdV?=
 =?utf-8?B?NWpPU0dUKzRIbDQ1SWsrUVZvWXVHUmQ1OHdnNnR3TEJXak43Ym5jQ0dMT3Rz?=
 =?utf-8?B?TFhCeGNESTNSWS9leVJzdVZPMWg2OWNrT1FKZG4zcFdobVZ3ZXJ1QnYyOE1Y?=
 =?utf-8?B?R2FKbjYyaEpYUFhmY2FQeVFiRC9mYURRWTEvZjg4TkNnckFyMzdTN1FNamtM?=
 =?utf-8?B?bGEyeEdEYWQzbWVlR2doUnJCK29PSzNKN1FvMkJVWG5ENU5MZTJRZnRsQ0tH?=
 =?utf-8?B?SUsxMnRjNVJYL2VJZ0xhTjhrSjZ6SVRFY0VhMVV1WHhubkR1S3dCUVNta090?=
 =?utf-8?B?Qmo0a0VHWkhmZjFNZlZZU2lwa3dDR2NCSFJzQnZLZlp4WDhESmduRUdORjdR?=
 =?utf-8?B?S25GUXBOSlJhQUg5OTZYWGNHNmpFOCtSUUJ1NHV1WmJjNmJGYUF0OW5mYUk3?=
 =?utf-8?B?M20vT0xhS1Nqc0YyZHNsbWJDUHVmN3p2eGpjZlZFeEZvUWdkaFVsQlZKQ2p3?=
 =?utf-8?B?ekNObHVyUFlSa21rMmFpMDY3YXVrZ3VNYTFDQkFHcE1kRW0zbjkzeDBaZmd4?=
 =?utf-8?B?b0luQUZ6U1NWdy9EU1E5VnBaMGlNOGZHekQ1c1c2QnlBYXFqbEhkZ3FURG55?=
 =?utf-8?B?UkhDY2RLYjc4Smp0YUQvNlVrNTdadmxLZzNjY1FxM3dIbXR5dVM2d01zcFd3?=
 =?utf-8?B?dWxJdWxUa1JKZmRabHA4WGZ4dTQ5TzF6MEtSQkZQUXdHOUpPbnVIRnlNYWxh?=
 =?utf-8?B?TlpKQ3g1MzFWa2ZTby9LYWdsK0lMZWk2dUd3TEFXd0pFVnhpQlRubmRTdXlG?=
 =?utf-8?B?NTUwbzQ3N2d3cVVJQnIyVS9YTDNUeGtWZ2QrYSt1RG1IK2FhV0hrNGZTNW9D?=
 =?utf-8?B?NU5mWjB1QlFmSUtDRXFFbUZWTnJDZHY2Sm55N2M0Y1M5eDRpNVg1YUYrR20x?=
 =?utf-8?B?Q1A5M2wveHVvSTFNUnA5bncxUjJET2hJS0lMNjEwRGxCRGpmRXJiK0pDTGlQ?=
 =?utf-8?B?c295YktyK0w0ZTdVRCtnN0xjM21TRU1sN2paRUIwN0h4RVU5QWdVVEY0RFVE?=
 =?utf-8?B?WmNtNEM5aVRUby9UWWdGM2Y3d3cyQnhCNkJpVXErcWtVdVRPdjUxTkVYbkJ5?=
 =?utf-8?B?eFNZcEJUNFZGRllWQWFjOUhNMFFxUzd5QU9tcTFGWWJLMkNQS0ZMd2crekpr?=
 =?utf-8?B?eE4yeGJqdGNQTnFSU290K2RpbmZsZTdYalNGOW51SDZsUUsrSVdodmxPWUlw?=
 =?utf-8?B?MDFwOUxoQWVDQmNwSm5FRCsrZVpwM3ZyU3BDeXAwbkcxbWhsOW85Zmx5dWRL?=
 =?utf-8?B?Z005OXg1dHRHMGJnbWo4MC9YcWphN0E3TkNLY0d3UUtiOFNNdWtwTU84Q05m?=
 =?utf-8?B?YTVDejFxamlTVEY3bXYzUlJ3aTRtZVFrNC9hN1NOU1M0SzRhNFRZSE5RMWNx?=
 =?utf-8?B?TjNtc0k2bGxHZUJtemlZcDBBUUFoa2FwdTBxWW9Vb3Q0WERqSmxUZEZSaFQ3?=
 =?utf-8?B?eUFiblNqbmZ1dzdubEk0VGNSNVk5YndFWld6a0swaEZ1UDFjM2dOUk11RmJn?=
 =?utf-8?B?UExVUnc5Rkt1bGFVdXRtRVpWSjdYSVNDNW01NnZLaVdQWml6ZUk3dUlBZC9K?=
 =?utf-8?B?UFdDUjdGSVdnU3BKU0VUZkZOejlvUUR1aDFRT1F3ODJoeGgrOWJNMUJmQWJq?=
 =?utf-8?B?STJYOWlJaVZIYktzT2FOM29hRC8zMFNxTUFnUURia1pMTHZ1cTF5Ukk4T1gw?=
 =?utf-8?B?WFhTMDNZK09IdWhvVUNRV013UFpJVllGNDFMdGRYT1c2R1VwMFZLQU53Mzho?=
 =?utf-8?B?M2ZTN2doT3JSUU5nWmNiT0p3cXYxYzY3RXN5N2pWWTg4QWo5bFRnU0xIZG80?=
 =?utf-8?B?a0E3c0ZmUGRFT3dUR1VESXVXM1hCNHA1NzBBYkk5bVNIVjk0MTBhZjR2U2hV?=
 =?utf-8?B?VnhIemRLV2FkVDk5Rk5PK1plNHltTXNWL3R3SXE3N2I5TVlOaXNqQ2Y5UTVO?=
 =?utf-8?B?VmVOdk9MY0FSTGZ0eDQ0WEczL05VRHlZbENyZVU0UXpweXNRaXJQNytNUkZP?=
 =?utf-8?B?UHRPWlNYSlRFU0lZVEVDNFNEOVpDMERweWpHOHVJWW9ZZlNRc0Z5ckFEOEZ2?=
 =?utf-8?B?YXBHK0xOUWRrNnhCcVAwZU1obXREQk5LWXFOM2dCRVhzSXRQRnp3eE1aeUM2?=
 =?utf-8?B?NXc9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <A72A51F78EAAD648944B90CB9FBDBA42@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: PAVPR03MB8946.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 23db6af2-1f83-4087-720c-08ddd5c2f0d2
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Aug 2025 14:58:59.6620
 (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: Ucg4uFGtgdi7Onc1DwOZBWBOgKS2ddek+TFuIgkhBTdfH7iDWVh5DtV25qEenGgoZwQJhaBfsYu2/I/KNluwtQFweIjH5WoXYM5i+c5j2G4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB8668

DQoNCk9uIDA1LzA4LzIwMjUgMjE6MTksIE9sZWtzaWkgS3Vyb2Noa28gd3JvdGU6DQo+IEhlbGxv
IGV2ZXJ5b25lLA0KPg0KPiBUaGlzIGVtYWlsIG9ubHkgdHJhY2tzIGJpZyBpdGVtcyBmb3IgeGVu
LmdpdCB0cmVlLiBQbGVhc2UgcmVwbHkgZm9yDQo+IGl0ZW1zIHlvdQ0KPiB3b3VsZCBsaWtlIHRv
IHNlZSBpbiA0LjIxIHNvIHRoYXQgcGVvcGxlIGhhdmUgYW4gaWRlYSB3aGF0IGlzIGdvaW5nIG9u
DQo+IGFuZA0KPiBwcmlvcml0aXNlIGFjY29yZGluZ2x5Lg0KPg0KPiBZb3UncmUgd2VsY29tZSB0
byBwcm92aWRlIGRlc2NyaXB0aW9uIGFuZCB1c2UgY2FzZXMgb2YgdGhlIGZlYXR1cmUgeW91J3Jl
DQo+IHdvcmtpbmcgb24uDQo+DQo+ID0gVGltZWxpbmUgPQ0KPg0KPiBUaGUgY3VycmVudCByZWxl
YXNlIHNjaGVkdWxlIGNvdWxkIGJlIGZvdW5kIGhlcmU6DQo+IGh0dHBzOi8vd2lraS54ZW5wcm9q
ZWN0Lm9yZy93aWtpL1hlbl9Qcm9qZWN0X1guWVlfUmVsZWFzZV9Ob3Rlcw0KPg0KPiBBbmQgYXMg
YSByZW1pbmRlciBJIHdvdWxkIGxpa2UgdG8gcmVtaW5kIGF0IHRoZSBvZiB0aGlzIHdlZWsgd2Ug
d2lsbCBoYXZlDQo+IExhc3QgcG9zdGluZyBkYXRlIChGcmkgQXVnIDA4LCAyMDI1KS4NCj4NCj4g
PSBVcGRhdGVzID0NCj4NCj4gVGhlIGZvbGxvd2luZyBpdGVtcyAoIHRoZSBsaW5rcyBmb3IgdGhl
bSBjb3VsZCBiZSBmb3VuZCBpbnQgdGhlIGxpc3QNCj4gYmVsb3cgKQ0KPiB3ZXJlIG1vdmVkIHRv
IGNvbXBsZXRlZDoNCj4gICBbc2luY2UgSnVuMiAtIEF1ZzVdOg0KPiAgICBBZGRlZCBzb21lIHRh
Z3M6IFs0LjIxXSwgW25leHQtcmVsKHMpXSB0byB0aGUgbGlzdCAiRnVsbCBsaXN0IG9mDQo+IGl0
ZW1zIg0KPiAgICBiZWxvdy4NCj4gICAgKiB4ODY6DQo+ICAgICAtIGtleGVjOiBhZGQga2V4ZWMg
c3VwcG9ydCB0byBNaW5pLU9TLg0KPiAgICAgLSB4ODY6IG1lbWNweSgpIC8gbWVtc2V0KCkgKG5v
bi0pRVJNUyBmbGF2b3JzIHBsdXMgZmFsbG91dA0KPiAgICAqIEFybToNCj4gICAgIC0gU01NVSBo
YW5kbGluZyBmb3IgUENJZSBQYXNzdGhyb3VnaCBvbiBBUk0uDQo+ICAgICAtIEFkZCBzdXBwb3J0
IGZvciBSLUNhciBHZW40IFBDSSBob3N0IGNvbnRyb2xsZXIuDQo+ICAgICAtIEZpcnN0IGNodW5r
IGZvciBBcm0gUjgyIGFuZCBNUFUgc3VwcG9ydC4NCj4gICAgIC0gRW5hYmxlIFI1MiBzdXBwb3J0
IGZvciB0aGUgZmlyc3QgY2h1bmsgb2YgTVBVIHN1cHBvcnQNCj4gICAgIC0gQVJNIHNwbGl0IGhh
cmR3YXJlIGFuZCBjb250cm9sIGRvbWFpbnMuDQo+ICAgICogUklTQy1WOg0KPiAgICAgLSBJbnRy
b2R1Y2UgYmFzaWMgVUFSVCBzdXBwb3J0IGFuZCBpbnRlcnJ1cHRzIGZvciBoeXBlcnZpc29yIG1v
ZGUuDQo+DQo+ICAgW3NpbmNlIE1heSA2IC0gSnVuMl06DQo+ICAgICAqIEh5cGVydmlzb3I6DQo+
ICAgICAgIC0gdG9vbHM6IHJlbW92ZSBxZW11LXRyYWRpdGlvbmFsDQo+ICAgICAqIEFybToNCj4g
ICAgICAgLSBQQ0kgZGV2aWNlcyBwYXNzdGhyb3VnaCBvbiBBcm0sIHBhcnQgMw0KPiAgICAgKiB4
ODY6DQo+ICAgICAgIC0geGVuOiBjYWNoZSBjb250cm9sIGltcHJvdmVtZW50cw0KPiAgIFtzaW5j
ZSA0LjIwIHJlbGVzZSAtIE1heSA2XToNCj4gICAgICogSHlwZXJ2aXNvcjoNCj4gICAgICAgLSBN
b3ZlIHBhcnRzIG9mIEFybSdzIERvbTBsZXNzIHRvIGNvbW1vbiBjb2RlDQo+ICAgICAgIC0gcmVt
b3ZlIGxpYnhlbmN0cmwgdXNhZ2UgZnJvbSB4ZW5zdG9yZWQNCj4gICAgICogQXJtOg0KPiAgICAg
ICAtIEVuYWJsZSBlYXJseSBib290dXAgb2YgQXJtdjgtUiBBQXJjaDMyIHN5c3RlbXMNCj4gICAg
ICogeDg2Og0KPiAgICAgICAtIHg4Ni9IVk06IGVtdWxhdGlvbiAoTU1JTykgaW1wcm92ZW1lbnRz
DQo+ICAgICAqIFJJU0MtVjoNCj4gICAgICAgLSBSSVNDLVYgc29tZSBwcmVpbml0IGNhbGxzLg0K
PiAgICAgICAtIEZpeGVzIGZvciBVQlNBTiAmIEdDT1Ygc3VwcG9ydCBmb3IgUklTQy1WLg0KPg0K
Pg0KW3NuaXBdDQo+ICogW25leHQtcmVsKHMpXSBWVC1kOiBTQVRDIGhhbmRsaW5nOyBBVFM6IHRp
ZHlpbmcgKHYyKQ0KPiAgIC0gIEphbiBCZXVsaWNoDQo+ICAgLQ0KPiBodHRwczovL3BhdGNoZXcu
b3JnL1hlbi82NGIwMjhiZS0yMTk3LTQ5NTEtYWU1Yi0zMmY5ZWFiZmE4NGFAc3VzZS5jb20vDQo+
DQo+ICogIFtuZXh0LXJlbChzKV0geDg2OiBwYXJhbGxlbGl6ZSBBUCBicmluZy11cCBkdXJpbmcg
Ym9vdCAodjEpDQo+ICAgLSAgS3J5c3RpYW4gSGViZWwNCj4gICAtDQo+IGh0dHBzOi8vbG9yZS5r
ZXJuZWwub3JnL3hlbi1kZXZlbC9jb3Zlci4xNjk5OTgyMTExLmdpdC5rcnlzdGlhbi5oZWJlbEAz
bWRlYi5jb20vDQo+DQo+ICogIFtuZXh0LXJlbChzKV0geDg2L3NwZWMtY3RybDogSUJQQiBpbXBy
b3ZlbWVudHMgKHY0KQ0KPiAgIC0gIEphbiBCZXVsaWNoDQo+ICAgLQ0KPiBodHRwczovL3BhdGNo
ZXcub3JnL1hlbi8wNjU5MWI2NC0yZjA1LWE0Y2MtYTJmMy1hNzRjM2M0YTc2ZDZAc3VzZS5jb20v
DQo+DQo+ICogIFtuZXh0LXJlbChzKV0gTW92ZSBzb21lIGJvb3QgY29kZSBmcm9tIGFzc2VtYmx5
IHRvIEMgKHYyKQ0KPiAgIC0gIEZyZWRpYW5vIFppZ2xpbw0KPiAgIC0NCj4gaHR0cHM6Ly9sb3Jl
Lmtlcm5lbC5vcmcveGVuLWRldmVsLzIwMjQxMTIyMDkzMzU4LjQ3ODc3NC0xLWZyZWRpYW5vLnpp
Z2xpb0BjbG91ZC5jb20vDQo+ICAgLQ0KPiBodHRwczovL3BhdGNoZXcub3JnL1hlbi8yMDI0MTEy
MjA5MzM1OC40Nzg3NzQtMS1mcmVkaWFuby56aWdsaW9AY2xvdWQuY29tLw0KPg0KPiAqICBbbmV4
dC1yZWwocyldYW1kLXBzdGF0ZSBDUFUgUGVyZm9ybWFuY2UgU2NhbGluZyBEcml2ZXIgKHYxKQ0K
PiAgIC0gIFBlbm55IFpoZW5nDQo+ICAgLQ0KPiBodHRwczovL3BhdGNoZXcub3JnL1hlbi8yMDI0
MTIwMzA4MTExMS40NjM0MDAtMS1QZW5ueS5aaGVuZ0BhbWQuY29tLw0KPiAgIC0NCj4gaHR0cHM6
Ly9sb3JlLmtlcm5lbC5vcmcveGVuLWRldmVsLzU5M2JhZWUyLTliZjEtNGRiNC04NmU4LTAxNWNh
ZTQ4ZGMxYUBzdXNlLmNvbS8NCj4NCj4gKiBbbmV4dC1yZWwocyldIHg4NjogYWR2ZW50dXJlcyBp
biBBZGRyZXNzIFNwYWNlIElzb2xhdGlvbg0KPiAgIC0gUm9nZXIgUGF1IE1vbm5lIDxyb2dlci5w
YXVAY2l0cml4LmNvbT4NCj4gICAtDQo+IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3hlbi1kZXZl
bC8yMDI1MDEwODE0MjY1OS45OTQ5MC0xLXJvZ2VyLnBhdUBjaXRyaXguY29tLw0KPg0KPiA9PT0g
QVJNID09PQ0KPg0KPiAqIFs0LjIxP10gTVBVIG1tIHN1YnNpc3RlbSBza2VsZXRvbg0KPiAgIC0g
THVjYSBGYW5jZWxsdQ0KPiAgIC0NCj4gaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcveGVuLWRldmVs
LzIwMjUwMzEyMTM1MjU4LjE4MTU3MDYtMS1sdWNhLmZhbmNlbGx1QGFybS5jb20vDQo+ICAgLQ0K
PiBodHRwczovL3BhdGNoZXcub3JnL1hlbi8yMDI1MDMxMjEzNTI1OC4xODE1NzA2LTEtbHVjYS5m
YW5jZWxsdUBhcm0uY29tLw0KPg0KPiAqIFs0LjIxP10gQWRkIGluaXRpYWwgWGVuIFN1c3BlbmQt
dG8tUkFNIHN1cHBvcnQgb24gQVJNNjQgKHY0KQ0KPiAgIC0gTXlrb2xhIEt2YWNoDQo+ICAgLQ0K
PiBodHRwczovL2xvcmUua2VybmVsLm9yZy94ZW4tZGV2ZWwvY292ZXIuMTc0ODg0ODQ4Mi5naXQu
bXlrb2xhX2t2YWNoQGVwYW0uY29tLw0KPg0KPiAqIFs0LjIxP10geGVuL2FybTogc2NtaTogaW50
cm9kdWNlIFNDSSBTQ01JIFNNQyBtdWx0aS1hZ2VudCBzdXBwb3J0DQo+ICgtPnY0KQ0KPiAgIC0g
T2xla3NpaSBNb2lzaWVpZXYNCj4gICAtDQo+IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3hlbi1k
ZXZlbC9jb3Zlci4xNzUzMTg0NDg3LmdpdC5vbGVrc2lpX21vaXNpZWlldkBlcGFtLmNvbS8NCj4N
CkhlbGxvIE9sZWtzaWkuDQoNCk15IHN0YXR1cyB1cGRhdGUgb24gdGhlIFNDTUkgZmVhdHVyZSB1
cHN0cmVhbWluZzoNCg0KVGhlIHY1IHBhdGNoIHNlcmllcyBbMV0gaGFzIGJlZW4gcG9zdGVkIGFu
ZCBoYXMgYWxyZWFkeSByZWNlaXZlZCBzb21lDQpBQ0tzLiBJJ20gbm93IHdhaXRpbmcgZm9yIHRo
ZSByZW1haW5pbmcgbWFpbnRhaW5lcnMgdG8gY29tcGxldGUgdGhlaXINCnJldmlld3MuIEFmdGVy
IHRoYXQsIEkgcGxhbiB0byBkcm9wIHRoZSBSRkMgdGFnIGFuZCBwb3N0IHRoZSBmaW5hbCB2ZXJz
aW9uLg0KDQpbMV0NCmh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3hlbi1kZXZlbC9jb3Zlci4xNzUz
MTg0NDg3LmdpdC5vbGVrc2lpX21vaXNpZWlldkBlcGFtLmNvbS8NCj4gKiBbbmV4dC1yZWwocyld
IEZGLUEgVk0gdG8gVk0gc3VwcG9ydCAodjYpDQo+ICAgLSBCZXJ0cmFuZCBNYXJxdWlzIDxiZXJ0
cmFuZC5tYXJxdWlzQGFybS5jb20+DQo+ICAgLQ0KPiBodHRwczovL2xvcmUua2VybmVsLm9yZy94
ZW4tZGV2ZWwvY292ZXIuMTc0NzkyNTI4Ny5naXQuYmVydHJhbmQubWFycXVpc0Bhcm0uY29tLw0K
PiAgIC0NCj4gaHR0cHM6Ly9wYXRjaGV3Lm9yZy9YZW4vY292ZXIuMTc0NzkyNTI4Ny5naXQuYmVy
dHJhbmQubWFycXVpc0Bhcm0uY29tLw0KPg0KW3NuaXBdDQo=


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 15:23:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 15:23:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073207.1436113 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk2SV-0000cy-MK; Thu, 07 Aug 2025 15:23:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073207.1436113; Thu, 07 Aug 2025 15:23: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 1uk2SV-0000cr-Ir; Thu, 07 Aug 2025 15:23:11 +0000
Received: by outflank-mailman (input) for mailman id 1073207;
 Thu, 07 Aug 2025 15:23:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oMMd=2T=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1uk2SU-0000cl-Ay
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 15:23:10 +0000
Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com
 [2a00:1450:4864:20::62a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6c9e1369-73a2-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 17:23:09 +0200 (CEST)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-af925cbd73aso219928266b.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 08:23:09 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af95734a066sm932627166b.44.2025.08.07.08.23.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Aug 2025 08:23:07 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6c9e1369-73a2-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754580189; x=1755184989; darn=lists.xenproject.org;
        h=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=L3la9+ubiSZUebmiPQN7HXRwbVxlhTumgnyD5HS5xLw=;
        b=Koln7aU6EM+wJvTUkCZ73DDA9GxUanp34NhHQ9mgHfYokJ6Wrl0GU6vs08Q9hoobYq
         pv7xmAbfn+njxUYQgZeA8tw/uhAZdczQ/oHD7djcHpkCooUhiOsv/7ujcSGBQT7LNgMH
         FWj99S/z7JS+oav7VBUw+GGciFAVQ8KiNwkRjOJLfCMG8vfSWwaryitK2Bs9w5vBHecq
         VGX/Q/Q6QXl6K4WyLN+yG4QQluVSOKsIVh+sb8lQVWhVRIZ9igR8VXPOogZpo1w3MxbR
         DHdSMCZG/+38hCIJkvQc22+/5fHh2LVM+KTWZBOZIz1G80sBScU36h2lpKPhOJ+iU9Uf
         uapA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754580189; x=1755184989;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=L3la9+ubiSZUebmiPQN7HXRwbVxlhTumgnyD5HS5xLw=;
        b=QlS8Ou56ebtfdas4BBfm9B3yx3rrFQFeFs6AhMyVtiD8EGQh/RA4hwgvySn6A11iNb
         PwQjCtcE0mdQSmBjEeAWP7fkLY4T1Hoczz9Q4CZtBniR+7WZuv0RBbBx4klK22Kxw0ND
         6OYHYY7Ni2Fq5un5FQeydRtmWpnYL49lqtv+WL4wocokIT9fsocsLDYzZo12Inx/SNMF
         ln9/ZuezFpjkVqTNtPvODaCDXbR8uevpAjgLQeiGi1gWVD88MLV+2A4MfIfMM0eB1ZOT
         IfH5eA+3RO/SJTicTlIFKQ3mYvkDFcf1gzRGQqqhTG1Xz+jYhEFDsogPLjvhNR/H/Mv9
         z5+Q==
X-Forwarded-Encrypted: i=1; AJvYcCU4EKwTKGijfMKYlZzBqYe83AfTYFLrPA3p1fF3MwET2vPcBAlFdLUtFbWbdrgTXBOXY4o3mikd0lQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw+/8VN/SBxrtXCU/l9zIDPf7F51hfiHuru9mAPjKDu0H9mbjHU
	vffMJo78OySm6n17fEkSgk3naZlXblFciQb+tuwHFu5BxAb3yuQmOYWsjDqy1A==
X-Gm-Gg: ASbGncvIFQo0LePUqeyYyNWU9796bR5dD8XVOMMJOU1sHDEwonsvkE7h3r9PqX4fvrF
	A8HniHzrXFpiOU8GONg3zqVTm9X4j57yHCUTLHLgXKOr8sSeDTxjec+AP4ez7MWfseZfcgmpLST
	3t3HviGhyhr84OR3xZuoUZLp4a6N37X3SVysGGpTNIB1Op/4kPK5PM6aZEaP0T/sHzFLqA+nG7g
	+oKbsGARDxMp+GMlKQNfwJI4IdhNOGXoLISqot5u08TG3BYHxqB44gtlP13PRscvWinj8dVWi8X
	dkwUFeY7I/OgZx5m+e7FB9ClvHZ2aJnqz5HFDIKg/Mb8corMuGXkrXK/dJuv9ifwfESjLRyLFfx
	5nMCdjCy2h7Ws02xbIVlzvEG9vQxtg/Y9B/vv1MXzzNmsE3VY9mQTKbkiZzBE4Yq278d61cI=
X-Google-Smtp-Source: AGHT+IHVAERvTO++Li5DAwE5O9x0U81ncmzWAkyELfDA36SmqR+5Np8835f4HBhtxZCcq71k8PW1Hw==
X-Received: by 2002:a17:907:98a:b0:af9:5260:9ed3 with SMTP id a640c23a62f3a-af9c1c8b29fmr32171866b.14.1754580188346;
        Thu, 07 Aug 2025 08:23:08 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------q37BbWsG2NRR6rHPIxlNV5xv"
Message-ID: <08aa8ab0-c102-464e-b829-0cf0e09a63e1@gmail.com>
Date: Thu, 7 Aug 2025 17:23:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 09/20] xen/dom0less: abstract Arm-specific p2m type
 name for device MMIO mappings
To: Jan Beulich <jbeulich@suse.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>,
 xen-devel@lists.xenproject.org
References: <cover.1753973161.git.oleksii.kurochko@gmail.com>
 <b9f7a13262cb3b482fb3d5cbbee6c72781fbfdc2.1753973161.git.oleksii.kurochko@gmail.com>
 <01442213-1bcb-465c-9e0d-252864ba88c8@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <01442213-1bcb-465c-9e0d-252864ba88c8@suse.com>

This is a multi-part message in MIME format.
--------------q37BbWsG2NRR6rHPIxlNV5xv
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 8/4/25 4:11 PM, Jan Beulich wrote:
> On 31.07.2025 17:58, Oleksii Kurochko wrote:
>> Rename `p2m_mmio_direct_dev` to a more architecture-neutral alias
>> `p2m_mmio_direct` to avoid leaking Arm-specific naming into common Xen code,
>> such as dom0less passthrough property handling.
>>
>> This helps reduce platform-specific terminology in shared logic and
>> improves clarity for future non-Arm ports (e.g. RISC-V or PowerPC).
>>
>> No functional changes â€” the definition is preserved via a macro alias
>> for Arm.
>>
>> Suggested-by: Jan Beulich<jbeulich@suse.com>
> I'm sorry, but no, ...
>
>> --- a/xen/arch/arm/include/asm/p2m.h
>> +++ b/xen/arch/arm/include/asm/p2m.h
>> @@ -137,6 +137,8 @@ typedef enum {
>>       p2m_max_real_type,  /* Types after this won't be store in the p2m */
>>   } p2m_type_t;
>>   
>> +#define p2m_mmio_direct p2m_mmio_direct_dev
> ... this isn't what I suggested. When Arm has three p2m_mmio_direct_*,
> randomly aliasing one to p2m_mmio_direct is imo more likely to create
> confusion than to help things. Imo you want to introduce ...

This is not randomly, this what Arm uses for device's node(s), which is going
to be passthroughed...

>
>> --- a/xen/common/device-tree/dom0less-build.c
>> +++ b/xen/common/device-tree/dom0less-build.c
>> @@ -185,7 +185,7 @@ static int __init handle_passthrough_prop(struct kernel_info *kinfo,
>>                                  gaddr_to_gfn(gstart),
>>                                  PFN_DOWN(size),
>>                                  maddr_to_mfn(mstart),
>> -                               p2m_mmio_direct_dev);
>> +                               p2m_mmio_direct);
> ... a per-arch inline function which returns the type to use here.
> The name of the function would want to properly reflect the purpose;
> my limited DT knowledge may make arch_dt_passthrough_p2m_type() an
> entirely wrong suggestion.

... But make it even more generic by providing an inline function which
just return p2m_type_t would be really better.

~ Oleksii

--------------q37BbWsG2NRR6rHPIxlNV5xv
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/4/25 4:11 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:01442213-1bcb-465c-9e0d-252864ba88c8@suse.com">
      <pre wrap="" class="moz-quote-pre">On 31.07.2025 17:58, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">Rename `p2m_mmio_direct_dev` to a more architecture-neutral alias
`p2m_mmio_direct` to avoid leaking Arm-specific naming into common Xen code,
such as dom0less passthrough property handling.

This helps reduce platform-specific terminology in shared logic and
improves clarity for future non-Arm ports (e.g. RISC-V or PowerPC).

No functional changes â€” the definition is preserved via a macro alias
for Arm.

Suggested-by: Jan Beulich <a class="moz-txt-link-rfc2396E" href="mailto:jbeulich@suse.com">&lt;jbeulich@suse.com&gt;</a>
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
I'm sorry, but no, ...

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/arm/include/asm/p2m.h
+++ b/xen/arch/arm/include/asm/p2m.h
@@ -137,6 +137,8 @@ typedef enum {
     p2m_max_real_type,  /* Types after this won't be store in the p2m */
 } p2m_type_t;
 
+#define p2m_mmio_direct p2m_mmio_direct_dev
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
... this isn't what I suggested. When Arm has three p2m_mmio_direct_*,
randomly aliasing one to p2m_mmio_direct is imo more likely to create
confusion than to help things. Imo you want to introduce ...</pre>
    </blockquote>
    <pre>This is not randomly, this what Arm uses for device's node(s), which is going
to be passthroughed...</pre>
    <blockquote type="cite"
      cite="mid:01442213-1bcb-465c-9e0d-252864ba88c8@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/common/device-tree/dom0less-build.c
+++ b/xen/common/device-tree/dom0less-build.c
@@ -185,7 +185,7 @@ static int __init handle_passthrough_prop(struct kernel_info *kinfo,
                                gaddr_to_gfn(gstart),
                                PFN_DOWN(size),
                                maddr_to_mfn(mstart),
-                               p2m_mmio_direct_dev);
+                               p2m_mmio_direct);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
... a per-arch inline function which returns the type to use here.
The name of the function would want to properly reflect the purpose;
my limited DT knowledge may make arch_dt_passthrough_p2m_type() an
entirely wrong suggestion.</pre>
    </blockquote>
    <pre>... But make it even more generic by providing an inline function which
just return p2m_type_t would be really better.
</pre>
    <pre>~ Oleksii
</pre>
  </body>
</html>

--------------q37BbWsG2NRR6rHPIxlNV5xv--


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 15:30:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 15:30:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073215.1436124 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk2ZQ-0002AX-DF; Thu, 07 Aug 2025 15:30:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073215.1436124; Thu, 07 Aug 2025 15:30: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 1uk2ZQ-0002AQ-98; Thu, 07 Aug 2025 15:30:20 +0000
Received: by outflank-mailman (input) for mailman id 1073215;
 Thu, 07 Aug 2025 15:30:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+2Ad=2T=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uk2ZP-0002AK-8F
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 15:30:19 +0000
Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com
 [2a00:1450:4864:20::632])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 69ea50eb-73a3-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 17:30:14 +0200 (CEST)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-af95ecfbd5bso215330666b.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 08:30: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
 a640c23a62f3a-af96bc4fb0dsm744720866b.112.2025.08.07.08.30.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Aug 2025 08:30: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>
X-Inumbo-ID: 69ea50eb-73a3-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754580614; x=1755185414; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=oX7zJNSglFlShZAkmD9jfV8HWgXHlPPuKXa58RsdfN4=;
        b=UzCzcmcAUTH87Ulun8h+QAhY09Bfdu8gCks2i8xT5J6fjtg47EX+VbYExqTeJFvQ9c
         qZHlo7ohKY5di12nh3jSzKD6szBZVP5+v4CRP/G1fQBZxPUZpGpo7LWpy9SVKHvLQj/5
         vr/HccA752y7rfacpPdCgsAV3kxY6LLt8T3KZPCiwZIRohxia39n4eVubJtGEUwCfauM
         yF+BtjHIYLSaEVn/Inu0wSmCu4Blva5y9YfAcrff+FBrUH9LsPpj4ekSwdaKIwG3UV5H
         niKBBVOyDspUOqRiMISPyohCUulz9fDojKG2PV8tVxbCgFiIxtKqG6dZCPMVazrSLGtu
         veKA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754580614; x=1755185414;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=oX7zJNSglFlShZAkmD9jfV8HWgXHlPPuKXa58RsdfN4=;
        b=IjpEvwYgVCpMjj/9NvylXj3PLpo2B9Ycz+j174Z8zVwJkRFphxowJtI9tjG3FBvZBa
         FCqhRS7CGx9eiQ93HPrBe9aFOXPHKWPsc5oq10MV3nLopao3kkwYPGHurb8r36P9wXqy
         XxIYjWrnh4BHIbkTj+Zx2SnwG43jRLbH2+vX0VWcaZV2uKctlixMrmpegC3SUEGijMR+
         R1JQaOZIoRDY5dNKPOLxNNzX5rdgQWExgRaakZM/hIr7WqdG3wg5PGwLju95bqPRHXIZ
         15/PlkqplNwcRawUqtYxZJjAHZEVGi11QOgn9kXXhmo+KeMya6eaZmxsZV82hfaEBfm5
         plEg==
X-Forwarded-Encrypted: i=1; AJvYcCVkERhj6ZCoe8eZSQ8lgdVECaG6Rjb7rI3jkQ6P2G1EkSBkIh0FlYcI/V24vgPyrJEEv5NLewW+8SI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzwr1NHkcPDKy0DfQo40cboOL/UgkVNIhrTnUc4ewEg9IBtPc6b
	ttXi0T54Aq1MmIA/UyU8RZDd0DF835X/XHU2cPIZ3CzTrEHwtzcbF99mf8uisqkWVQ==
X-Gm-Gg: ASbGncuHz+0XaxRLN4sB2qJni+5GEZw2XRgFBUeEg64JUlkCBpyfAeZbwNNVTaRaDq3
	nuiI4roxYEiLHGuEFKW5vmhVACrShRPwn1AkoeX81Prtz0BZhvrROlvHj07ZleIXaIdiSK96xND
	stN5g0N/7lbqjrjydOH0/chbwSLS/fI6XY7TB/plRUyajKJ2kWJYjcXlkyPP8uJJFN2JGxIXm6w
	WDLwcek6Y55AB6/pvTTgv4rJNRmAzqkHyX/kqkwiYWfv4g060M60zx0+Vf43oNL/UumQ8TTKBe+
	UsMsAEyrtPuhxHWsXebLyvOi5jobUXbGKDjZM49yHg4KMIG7U/mfrEpRECO9sn84T7e+RaInDlA
	tlXzMwG6I41/ZP1wWx5IhArhOFM7wtjMegzyXoh/7+NP3RN0f8hvrUK+xJEj+xILdXjqZhCLYbY
	sz6pu6CAA=
X-Google-Smtp-Source: AGHT+IE5v9wPcfGEbBvJOmKEJbeMPrqPy/q0EZrroHWcIFviUCpKBzW8ijmucZYUC/IoZVOJifwlBw==
X-Received: by 2002:a17:907:7b9d:b0:af9:34de:e4a1 with SMTP id a640c23a62f3a-af9902e4aacmr706788766b.33.1754580613633;
        Thu, 07 Aug 2025 08:30:13 -0700 (PDT)
Message-ID: <d81b41c9-59e1-4807-af27-9d952d35ba42@suse.com>
Date: Thu, 7 Aug 2025 17:30:11 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 06/20] xen/riscv: add root page table allocation
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <23c79f07221dee7eb782ebb160442f3a796a41b2.1753973161.git.oleksii.kurochko@gmail.com>
 <3c02593f-deae-4109-9334-0ac4376a9a9e@suse.com>
 <d160c6da-a4a8-44ca-9dc5-b1e3cb31bde5@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: <d160c6da-a4a8-44ca-9dc5-b1e3cb31bde5@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.08.2025 14:00, Oleksii Kurochko wrote:
> On 8/5/25 12:37 PM, Jan Beulich wrote:
>> On 31.07.2025 17:58, Oleksii Kurochko wrote:
>>> +    /*
>>> +     * Return back nr_root_pages to assure the root table memory is also
>>> +     * accounted against the P2M pool of the domain.
>>> +     */
>>> +    if ( !paging_ret_pages_to_domheap(d, nr_root_pages) )
>>> +        return -ENOMEM;
>>> +
>>> +    page = p2m_allocate_root(d);
>>> +    if ( !page )
>>> +        return -ENOMEM;
>> Hmm, and the pool is then left shrunk by 4 pages?
> 
> Yes until they are used for root table it shouldn't be in p2m pool (freelist),
> when root table will be freed then it makes sense to return them back.
> Am I missing something?

I'm commenting specifically on the error path here.

> Probably, you meant that it is needed to update p2m->pages?

That (I think) I commented on elsewhere, yes.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 15:41:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 15:41:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073232.1436133 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk2jr-00057E-EV; Thu, 07 Aug 2025 15:41:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073232.1436133; Thu, 07 Aug 2025 15: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 1uk2jr-000577-BE; Thu, 07 Aug 2025 15:41:07 +0000
Received: by outflank-mailman (input) for mailman id 1073232;
 Thu, 07 Aug 2025 15:41:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oMMd=2T=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1uk2jq-000571-JB
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 15:41:06 +0000
Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com
 [2a00:1450:4864:20::52b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ece8c226-73a4-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 17:41:03 +0200 (CEST)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-61592ff5ebbso1831840a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 08:41:03 -0700 (PDT)
Received: from [192.168.1.17] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a0766d1sm1334005666b.18.2025.08.07.08.41.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Aug 2025 08:41: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>
X-Inumbo-ID: ece8c226-73a4-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754581263; x=1755186063; darn=lists.xenproject.org;
        h=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=Ml60KIc2CYkWNPdjzB+KfxViAnMLY5u6Fz5Mxsc9eVI=;
        b=OCfb0vuYx1Jd4k8WbBjvL2I30KsPmWhMQSpuxwtW4tyfBBr2nkqEjpwMqnpvJNe0fu
         60ecqMbwlWiL50ZOqrVJ0hpq0yGzXlK7Z+4g2kH3w0+k/Ry57gYGXun4twJ2VMPNFA7T
         z4abP34awS16bVCHB2e/1isQlCiEsMv7cZ2ehQeIRTuMYcjePc5WhX75jQKiyA4XxvGS
         ejJVsKP3BP9CbaHW816eIP+DpS/IoPmOjxzu59vlXfU1ZoE+kzE6GQQUeMUngKQuAFkQ
         BZ4khqyn9tdlnu3kXhzeUSsb3sRyL+yBaVwxWwLUyMTUlih5tJkDhyRoVl26wiaCDrT2
         LxeQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754581263; x=1755186063;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=Ml60KIc2CYkWNPdjzB+KfxViAnMLY5u6Fz5Mxsc9eVI=;
        b=pvIFuupQ733bG7QIdwlOngnaV/VmZGQ2E0wFiDYurb6YTzZ1Xjz6HN+kGCtuw3UcC9
         Wk5wHLWCEroBS9YxUsNd8EFIGnxM21+2Cl82THUNKxUyuHpnKF489JIOKsdnoLKjelRJ
         49hvevPZQe0BksnSbCAYcVk5iHnYf7uapAmqLEKhYS7qMmeV34MDTiTNyJ47YXFIcrgJ
         zkCU43kxgrIKAMFOH5U6SnwINE0fBrtbM6Zy4O8QuWnBFnAjipWchdbK8ztnduAgnsm+
         Cu7yR3iF2UpsMuLZYKlde6Jk5SSJGOPmXjQDvUz1ak56SVMIMma918MarpaeyfacJDFd
         ORDA==
X-Forwarded-Encrypted: i=1; AJvYcCUDgup/Jwimfa7XHxbjuub59Bvtj82ZmgPxG0tACSow/vnbsQkW5iT+h7i1qgwhQGWB2vwj1IsekoE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzhaqAG0CxKbJdkoG1a/hEInt+nRAc2eajwFeCMpjqmJq/kkCMI
	RATiB0NDCeSN60r462dO/hcKF4EuQkxiA6/S3A1d2jswmT6ChMMTfwnu
X-Gm-Gg: ASbGnctdtvn9LHAUXXUt5btlS2bzkPnqHTv1/lKSw4xXzelAzB+q6gECZ1UH3h2+a5B
	co0xn3jl4KTuyUN+LoP+x0Pmlbrv5xjlUflE0rv2CYHOD1Bje1u0PNoP6l3TUpC45eEyt3PK14m
	FLp42EjX7OV3zfMpYzdwF6BleLrWTHLfUEQDIJu8694HXAXW2e8ia3Yu0/o2jF9vwIGU6bbc7TR
	2IQfzb8UFLTMzfN6VZ4tfUMNghSnuCBNSx1rTqzftU0Fex+pdTEQDro8j0ObrU+u6g8jg1ab4Gj
	mf9fptnS5EKgYCLbsbb+zRzPk8n6lC7lfXkiXVua6h21MFCgWqhvTcXBCp5RQcip/CvBFARzdAE
	drcFlS1vZFY0HTaVa1rHnKY3/gb2hZiOsMuUr31hJLA0nExUkv3oreMvTzPlk/NMAuVFnMKgFTM
	RZcBZOVOA=
X-Google-Smtp-Source: AGHT+IFZzBeO+CrkV99PhiYIeka1twZ0VKs0QEN93feMIL1d+GHXFsdYnJhWVnQXyj9HP8SxzqX0LQ==
X-Received: by 2002:a17:907:3e20:b0:ad8:9a3b:b274 with SMTP id a640c23a62f3a-af9c1e56b52mr35970466b.52.1754581262479;
        Thu, 07 Aug 2025 08:41:02 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------sgn0ZyzKW2f2ep2DX6nNsYTN"
Message-ID: <9a89f0ad-1ba8-47a5-8b9e-1d85f7be8308@gmail.com>
Date: Thu, 7 Aug 2025 17:41:00 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 08/20] xen/riscv: add new p2m types and helper macros
 for type classification
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <3d35b6f4bb79048647020ed4e7b222585ca3a9a3.1753973161.git.oleksii.kurochko@gmail.com>
 <48dcca92-4dd8-4d6e-a4cb-c10a7ee80f19@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <48dcca92-4dd8-4d6e-a4cb-c10a7ee80f19@suse.com>

This is a multi-part message in MIME format.
--------------sgn0ZyzKW2f2ep2DX6nNsYTN
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 8/4/25 4:16 PM, Jan Beulich wrote:
> On 31.07.2025 17:58, Oleksii Kurochko wrote:
>> - Extended p2m_type_t with additional types: p2m_mmio_direct,
>>    p2m_grant_map_{rw,ro}.
>> - Added macros to classify memory types: P2M_RAM_TYPES, P2M_GRANT_TYPES.
>> - Introduced helper predicates: p2m_is_ram(), p2m_is_any_ram().
>> - Define p2m_mmio_direct to tell handle_passthrough_prop() from common
>>    code how to map device memory.
>>
>> Signed-off-by: Oleksii Kurochko<oleksii.kurochko@gmail.com>
> Almost ready to be acked, except for ...
>
>> --- a/xen/arch/riscv/include/asm/p2m.h
>> +++ b/xen/arch/riscv/include/asm/p2m.h
>> @@ -62,8 +62,30 @@ struct p2m_domain {
>>   typedef enum {
>>       p2m_invalid = 0,    /* Nothing mapped here */
>>       p2m_ram_rw,         /* Normal read/write domain RAM */
>> +    p2m_mmio_direct_io, /* Read/write mapping of genuine Device MMIO area,
>> +                           PTE_PBMT_IO will be used for such mappings */
>> +    p2m_ext_storage,    /* Following types'll be stored outsude PTE bits: */
>> +    p2m_grant_map_rw,   /* Read/write grant mapping */
>> +    p2m_grant_map_ro,   /* Read-only grant mapping */
>>   } p2m_type_t;
>>   
>> +#define p2m_mmio_direct p2m_mmio_direct_io
> ... this (see reply to patch 09).
>
>> +/* We use bitmaps and mask to handle groups of types */
>> +#define p2m_to_mask(t_) BIT(t_, UL)
> I notice that you moved the underscore to the back of the parameters,
> compared to how Arm has it. I wonder though: What use are these
> underscores in the first place, here and below? (There are macros where
> conflicts could arise, but the ones here don't fall in that group,
> afaict.)

Good point, there is really no name conflicts here, so underscore could
be just dropped.

~ Oleksii

--------------sgn0ZyzKW2f2ep2DX6nNsYTN
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/4/25 4:16 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:48dcca92-4dd8-4d6e-a4cb-c10a7ee80f19@suse.com">
      <pre wrap="" class="moz-quote-pre">On 31.07.2025 17:58, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">- Extended p2m_type_t with additional types: p2m_mmio_direct,
  p2m_grant_map_{rw,ro}.
- Added macros to classify memory types: P2M_RAM_TYPES, P2M_GRANT_TYPES.
- Introduced helper predicates: p2m_is_ram(), p2m_is_any_ram().
- Define p2m_mmio_direct to tell handle_passthrough_prop() from common
  code how to map device memory.

Signed-off-by: Oleksii Kurochko <a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Almost ready to be acked, except for ...

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/include/asm/p2m.h
+++ b/xen/arch/riscv/include/asm/p2m.h
@@ -62,8 +62,30 @@ struct p2m_domain {
 typedef enum {
     p2m_invalid = 0,    /* Nothing mapped here */
     p2m_ram_rw,         /* Normal read/write domain RAM */
+    p2m_mmio_direct_io, /* Read/write mapping of genuine Device MMIO area,
+                           PTE_PBMT_IO will be used for such mappings */
+    p2m_ext_storage,    /* Following types'll be stored outsude PTE bits: */
+    p2m_grant_map_rw,   /* Read/write grant mapping */
+    p2m_grant_map_ro,   /* Read-only grant mapping */
 } p2m_type_t;
 
+#define p2m_mmio_direct p2m_mmio_direct_io
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
... this (see reply to patch 09).

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+/* We use bitmaps and mask to handle groups of types */
+#define p2m_to_mask(t_) BIT(t_, UL)
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
I notice that you moved the underscore to the back of the parameters,
compared to how Arm has it. I wonder though: What use are these
underscores in the first place, here and below? (There are macros where
conflicts could arise, but the ones here don't fall in that group,
afaict.)</pre>
    </blockquote>
    <pre>Good point, there is really no name conflicts here, so underscore could
be just dropped.

~ Oleksii
</pre>
  </body>
</html>

--------------sgn0ZyzKW2f2ep2DX6nNsYTN--


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 15:46:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 15:46:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073242.1436143 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk2p5-0006MM-16; Thu, 07 Aug 2025 15:46:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073242.1436143; Thu, 07 Aug 2025 15:46: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 1uk2p4-0006MF-Tl; Thu, 07 Aug 2025 15:46:30 +0000
Received: by outflank-mailman (input) for mailman id 1073242;
 Thu, 07 Aug 2025 15:46:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=V1Uc=2T=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1uk2p3-0006M8-QV
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 15:46:30 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on2062c.outbound.protection.outlook.com
 [2a01:111:f403:2415::62c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ab6344d6-73a5-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 17:46:24 +0200 (CEST)
Received: from CH2PR11CA0010.namprd11.prod.outlook.com (2603:10b6:610:54::20)
 by CH3PR12MB9219.namprd12.prod.outlook.com (2603:10b6:610:197::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.17; Thu, 7 Aug
 2025 15:46:18 +0000
Received: from CH1PEPF0000A349.namprd04.prod.outlook.com
 (2603:10b6:610:54:cafe::25) by CH2PR11CA0010.outlook.office365.com
 (2603:10b6:610:54::20) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9009.15 via Frontend Transport; Thu,
 7 Aug 2025 15:46:18 +0000
Received: from SATLEXMB04.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_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Thu, 7 Aug 2025 15:46:18 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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; Thu, 7 Aug
 2025 10:46:17 -0500
Received: from xcbayankuma40.xilinx.com (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via
 Frontend Transport; Thu, 7 Aug 2025 10:46:17 -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>
X-Inumbo-ID: ab6344d6-73a5-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=XnywDfJ0dsy+T66+K6LZC02TYMRbbQD5KlusqjC4ts45can3t3O98u3FtUJpTzhxhFoNmen2xYc+0Dvu10QiPzIW7/uaJTWwn8UWvWNKzK6ZfAg3/DhFKVQHSr7hZ5DRJfvzkLkQzBg4jQFKRbTU8CN9Lt/FDtVwuwzoRyNDGXFc9DjY1CXxA2dYOIssPFTCvZmC+6WXxA9yKDO6R6bQ9j0+94g955On3bbO5qwUH26Ndh+L4LsavsBYNlepaLrO2nG9ntvGA5u0P07bm0WC5OtMaWhavR09h6fBeHgGyWrrA4Ou1geUBS9F3M42/k0xY/YIeNjzSbd/M2V6197xIA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=5uxN93jMk7+Z4rEDJjTVZeidtGtjL4eNpluKhEjyj30=;
 b=ApjKnzVQmUjvPKIjDIPVocfM/IT/ZONBY9DhwYPSlbo6N2DzkIX5KIWuI88LQwbflSK0HU7jGFLW0lUmlHjAEax9g0fewBQS6+lPMDi6bZW9I7UJtSxLbIbsiV1TAtE54EsI/lYJ6IQeeaFtKg7d/8PGKy1Yyw07hUCVKbsW4YakQoJkjEhW2iRX4dOAwtztJrXpzE7Au3st+e8cF3eo0SZyAJWa7JwBEr3uvQDM+AtL5yB2GxErSAuIsqs8NkgR48j2WYk6K8c9ctdb++Kvglcm0Rat2/JM+T+uOdanTI90r40XApRYWdpywbg1xiDTfrakuCID1VHyhASta8fpdQ==
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=5uxN93jMk7+Z4rEDJjTVZeidtGtjL4eNpluKhEjyj30=;
 b=gaGwpZ9kW1bTlA4+76bSEu/2eOyJLXPpLnNbgixmg2riKisz5iE792PDSrl8lxaUlnsR8LFUy9aaM+LaTg2e7+hJrUn8TdIbQtTyl66FbLkp4K2GNhuaTDa6CF1pAzF73C2dVcACNzksaENu/D9Cv0mTKyhXXEkCLYxEZLs/5F0=
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=SATLEXMB04.amd.com; pr=C
From: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <sstabellini@kernel.org>, <michal.orzel@amd.com>,
	<andrei.cherechesu@nxp.com>, <dmukhin@ford.com>, Ayan Kumar Halder
	<ayan.kumar.halder@amd.com>
Subject: [ImageBuilder] Make DEVICE_TREE optional parameter
Date: Thu, 7 Aug 2025 16:46:14 +0100
Message-ID: <20250807154614.456654-1-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB04.amd.com: ayan.kumar.halder@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH1PEPF0000A349:EE_|CH3PR12MB9219:EE_
X-MS-Office365-Filtering-Correlation-Id: 60111baa-fa5b-4b77-d7e0-08ddd5c98cca
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?SFA1QUhaYmdyMTlibVZiYXJJZ05qY0J4TUo3QzBmdjdURWl3VlRTZUxvS0Qr?=
 =?utf-8?B?RDl4T3hTYzB2Ym9mVmJjWWl5Tk1KaDVPMEtYZkd0cEs4bU81OVRoZFlZNWU3?=
 =?utf-8?B?MFNMYzRuVktRWUc1Tmsvc3FUdkZJMC9hUktEWXVOQU1oTjFPdjFoZWR3bWI1?=
 =?utf-8?B?K05vaUQxVitoM1UrbjFvTy9wcW9zVW8xSW5IOVhKdEhTQXRGTFdsNG11bnRN?=
 =?utf-8?B?UzNEb1NnM2EyZGd4aDdTdldaSVNReVBNdkxpdXNKeU5xR2VPdUNkSk00Mjh5?=
 =?utf-8?B?bWxTaGUzdDl2MjUwSnhDcFRjb1BvellyWHJDRjljZms5Skc3Ym1OMnpKcVB6?=
 =?utf-8?B?RnF6amlLNUgzYkpLcmh4akMvUjkxSXoyay80WUJKUkVBR255MmkvandLUDFE?=
 =?utf-8?B?SFYwUGtReXVKREpoRnZ3eVE4QjdaVDFnRlVrMUN5V2JTbWFiOFZVcWFGSEsy?=
 =?utf-8?B?L3RPRVM1Z3VkeDk5TjhzM082U3RjUUxSaWRqS1NGTU5QNHV2dHgvbU1UZVE0?=
 =?utf-8?B?UEJ6QjdMNFdrbHlIZzFJUlhFMzBWcVREeVhjWlJ4MkpKRnR3QU8ybXVrU21R?=
 =?utf-8?B?QmtLMlpKN1YrS0hoTEFwd0JhZ3JlTjYxcHZGK010RFNNMXI4NXVsY2RaRHpx?=
 =?utf-8?B?VU4weURzU3dMZ0ZvV3RhbGV6TUhLbkdBTnoxYzQ1STBqS2pQcnlEcHFVM0V6?=
 =?utf-8?B?OUlqTHN5am10bElaL3pIN2YvQUplS1hjdkhXcVM0MS9MaFgyZjdsZHl3S0Jh?=
 =?utf-8?B?MC9OQWJ3MnprNjcrM2w0enVEQW1vZjlNdjNGaUhJdXVBY0kzcXJ1REhTbHJV?=
 =?utf-8?B?ZGtvQzl2QldPeW10Z3EyLzU3R0psUlNFVU16NldNUG9XSmlSdTVacGJlZTlX?=
 =?utf-8?B?RXFYRXFsdWJJdHJxaDlRQzgzdXh5TW9SZmJvOUV6cTlwLytMaytLaUdPMkF4?=
 =?utf-8?B?WkJjZ2k1RXBzNko5VzJJdjZXVVVFUVFYb3VQNEIrSUxteWJ1RUNBSzJ0Tnlx?=
 =?utf-8?B?TFl6cUJBWUlYQml4bzVlSDUyVmdTR2Y4OW04N1ZTSnpKY0NubFRHdXJWYXJW?=
 =?utf-8?B?dFpRbWNPbVdLd2JraXJrWk5WSGl1bjhOdWJFbENaUGd6ZzNHRndMK2RzV2Zo?=
 =?utf-8?B?YWRsajZ0cGFVaFdwdHpkY0k0cWRMelVQK2M2dGRJK1MrUUFaOE1mU3N2ckpX?=
 =?utf-8?B?RE5QV0hwZVZtcUU3SWNSblVja0dQQlRsM3dreGg4blI1VXNMWThQMGc3R3Q1?=
 =?utf-8?B?aUpPWTQ1aW12REpXVnZhQjFMVXViZjZKVmRocGpFQUJObW1ZbDYyTmRpbHp0?=
 =?utf-8?B?dzRUWXQ5QzR1Mm9yZC8rM1pCVDV1eHJoeTd3UVZkam4zS3NlSmJEWjF1Myto?=
 =?utf-8?B?dmhDWXEra2dKMHVOSFJERXp4b2w1WlIxTVN6ZVROY0laNTFxSEZqOHZyN2N0?=
 =?utf-8?B?QldnU3ZUM0xIODkrQW1jUWprRk9XODJrTnB4blRLenpVN3A0WVg3NDE1OVor?=
 =?utf-8?B?UENKMmJuc0FWWTlOV0ZsV2hDZ093N00xb2NPaWhQeDN3NllFdUp3bmVnRlJC?=
 =?utf-8?B?eGJCdjdlL2l4dGJMT3psc1orVUR3S0I2b1ZPanZtV3J0cWxDdUJheXJGMUhl?=
 =?utf-8?B?TG0zbVJMREFvdU01cFQ0K2wzQ3lQNXVadEV3aENWdHRtT3dJdWtQQVVyVG5E?=
 =?utf-8?B?U200RnplaC9qNzJFQnZnZ01IbmkxYUY1S3RFVGFhWEx6UlpQcXJ6aG1OOGZM?=
 =?utf-8?B?dnlkbUMxaWZPZzF1ZVMrcXJBNUZ5YWJuMVRlK3NoRkY5c3FjUHNackdHOGVv?=
 =?utf-8?B?SmNMTmIwcUZLb0xZa21CYS9NcEZJNlpXN2xzSGhOSlNrQUd4TGl2Vm1vRElx?=
 =?utf-8?B?Q1BQVVNSbTlLa1ZCTzJ6VFUwN3kyT1pRTWFZc01KN1hyZmkwTlpmai9Cb3BR?=
 =?utf-8?B?ZU85cUJKdW5ROTNJdTFhNHd2MW1hNG9WTjFkMFZDODFrZXRnbmI0K1hBUmNN?=
 =?utf-8?B?NERoYjh3c0x2RTlaY2NpMm1vQmxFYjZZdGhwbUR5QVBDOVNpSkUxbzh1Q3FI?=
 =?utf-8?Q?WQaNS5?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Aug 2025 15:46:18.3185
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 60111baa-fa5b-4b77-d7e0-08ddd5c98cca
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=[SATLEXMB04.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: CH3PR12MB9219

There are systems where device tree binary is passed by the U-Boot as
$fdtcontroladdr. In such cases, no external device tree binary is provided
during uboot script generation.

This is an enhancement on top of the following commit:-
uboot-script-gen: Dynamically compute addr and size when loading binaâ€¦

When DEVICE_TREE is not present, $CALC is set as the addresses and sizes should
be computed dynamically from U-Boot.

Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
---
 README.md                |  3 ++-
 scripts/uboot-script-gen | 26 +++++++++++++++++++-------
 2 files changed, 21 insertions(+), 8 deletions(-)

diff --git a/README.md b/README.md
index 4be6efb..d80bdc9 100644
--- a/README.md
+++ b/README.md
@@ -90,7 +90,8 @@ Where:
   DTB are stored in 'host_kernel_addr' and 'host_fdt_addr' u-boot
   env variables respectively, to be used manually when booting.
 
-- DEVICE_TREE specifies the DTB file to load.
+- DEVICE_TREE specifies the DTB file to load. If not set, then $fdtcontroladdr
+  is used as the address of the DTB loaded by u-boot.
 
 - XEN specifies the Xen hypervisor binary to load. Note that it has to
   be a regular Xen binary, not a u-boot binary.
diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
index fed53aa..9fe4a55 100755
--- a/scripts/uboot-script-gen
+++ b/scripts/uboot-script-gen
@@ -560,7 +560,7 @@ function device_tree_editing()
     if test $UBOOT_SOURCE
     then
         if test "$CALC"; then
-            echo "fdt addr \${host_fdt_addr}" >> $UBOOT_SOURCE
+            echo "fdt addr \${fdtcontroladdr}" >> $UBOOT_SOURCE
         else
             echo "fdt addr $device_tree_addr" >> $UBOOT_SOURCE
         fi
@@ -591,7 +591,7 @@ function device_tree_editing()
 
 function fill_reserved_spaces_from_dtb()
 {
-    if [ ! -f $DEVICE_TREE ]
+    if test ! -f $DEVICE_TREE || test -z ${DEVICE_TREE+x}
     then
         if test "$CALC"; then
             return
@@ -1502,6 +1502,11 @@ check_depends
 declare -A DOMU_VCPU_HARD_AFFINITY
 source "$cfg_file"
 
+if test -z ${DEVICE_TREE+x}
+then
+    CALC=y
+fi
+
 SCRIPT_PATH=$(dirname "$0")
 source "$SCRIPT_PATH/common"
 source "$SCRIPT_PATH/xen_dt_domu"
@@ -1703,9 +1708,13 @@ then
     done
 fi
 
-check_file_type $DEVICE_TREE "Device Tree Blob"
-device_tree_addr=$memaddr
-load_file $DEVICE_TREE "host_fdt" "$XEN_LOAD"
+if test ${DEVICE_TREE+x}
+then
+    check_file_type $DEVICE_TREE "Device Tree Blob"
+    device_tree_addr=$memaddr
+    load_file $DEVICE_TREE "host_fdt" "$XEN_LOAD"
+fi
+
 bitstream_load_and_config  # bitstream is loaded last but used first
 device_tree_editing $device_tree_addr
 
@@ -1727,14 +1736,17 @@ fi
 if [ "$BOOT_CMD" != "none" ]
 then
     if test "$CALC"; then
-        echo "$BOOT_CMD \${host_kernel_addr} $([ "$BOOT_CMD" = "bootefi" ] || echo '-') \${host_fdt_addr}" >> $UBOOT_SOURCE
+        echo "$BOOT_CMD \${host_kernel_addr} $([ "$BOOT_CMD" = "bootefi" ] || echo '-') \${fdtcontroladdr}" >> $UBOOT_SOURCE
     else
         echo "$BOOT_CMD $kernel_addr $([ "$BOOT_CMD" = "bootefi" ] || echo '-') $device_tree_addr" >> $UBOOT_SOURCE
     fi
 else
     # skip boot command but store load addresses to be used later
     echo "setenv host_kernel_addr $kernel_addr" >> $UBOOT_SOURCE
-    echo "setenv host_fdt_addr $device_tree_addr" >> $UBOOT_SOURCE
+    if test ${DEVICE_TREE+x}
+    then
+        echo "setenv host_fdt_addr $device_tree_addr" >> $UBOOT_SOURCE
+    fi
 fi
 
 if test "$FIT"
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 07 15:57:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 15:57:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073258.1436153 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk304-0000XX-VF; Thu, 07 Aug 2025 15:57:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073258.1436153; Thu, 07 Aug 2025 15:57: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 1uk304-0000XQ-SA; Thu, 07 Aug 2025 15:57:52 +0000
Received: by outflank-mailman (input) for mailman id 1073258;
 Thu, 07 Aug 2025 15:57:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+2Ad=2T=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uk303-0000X4-KF
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 15:57:51 +0000
Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com
 [2a00:1450:4864:20::530])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 451d50b0-73a7-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 17:57:50 +0200 (CEST)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-615398dc162so1876191a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 08:57: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
 4fb4d7f45d1cf-615a8f2b892sm12236540a12.25.2025.08.07.08.57.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Aug 2025 08:57: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>
X-Inumbo-ID: 451d50b0-73a7-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754582270; x=1755187070; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=sc4K/GGTJOODWjBVp/Eg2EoY1eJv9sdXLDIapNjsyZo=;
        b=cjmkxvTl9Q//cifowDIKlncwk53Jf34vvi6BCUROmNTVBI2XITZm3EzmwbXmpELNNy
         x4KpRm+dyocYNz0b5fwqaw5ibamxuQLTautSCyTROIQgy27mZHcBHQt7msFGujsMsFbi
         lMpyFjTFQ/oREvptDbLiwQnlBV6FJuk8qvUMbWV994EguTQMC4LR5DJXzarlqqO5YRBf
         puAR+trJtzt3gy0SbIMFInL+yYpn2c2M8OeTarvMdwlrq5DIc1Kmgy/+hPbpGzF6x495
         GOeLToraM50cej6z0tIxiEFe6/uBacT5xB7r1GFyOr2jrpOYcbo7wpKoUF1gKh5Ts2we
         j1bQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754582270; x=1755187070;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sc4K/GGTJOODWjBVp/Eg2EoY1eJv9sdXLDIapNjsyZo=;
        b=GPRHnyUO6jMLbmx2ctuIR2xJh5fpxi2T5Smq4+qiOM2Y79hEBeeHPHVObOKYN6+kV1
         XAuxF2+oLaO0G+RwVU+zHLkrU5AfMUb/KOqCmc4tN9uHNfPKLwJaQn3EU4L+5EvHJPw0
         jBOxltTegvpom0ZdnvUkVdhkvaMgsBMlHts1Gk2jI/dM95WcmbMcfzlB2KbuWWTQa0hm
         lapBHS0EEXag7UF4IVD1w6xau8PMDSQMx5wL/hEpLpb3Rzhd/b5A5fMdGhA02tERqjSH
         j6kUn/tSq+wb05wLIwFfZ06+m5sfupYT6t5JhBKy91Xwrc9G89XG4uBO0zHSBY7oDN9C
         6rDw==
X-Forwarded-Encrypted: i=1; AJvYcCWxNyHJ1vmW/TvxVmB92nrRLQd5CbS26Y0Dvvr3vbJIMUAZxIAa7IbrbHa595arVA6PQAKVMwVhJss=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzjSODK2WJbTcwVHvX5pzqaWgXe48qiYzBy3CqtnzTufQLATwlZ
	SI+ZHSWZRgUAm7jLyzz0mqsI1KcL8WUVt5qRXPWaAN9k9jhGL/oAgxq4Gk1GEI5SOQ==
X-Gm-Gg: ASbGncuB3SmxKkfJRCiqE9b7h4oDFutv+p8VJlCtOvGi0ZL6vRM7XumjTD0ebZp5hwe
	8GDzieO/fXH8JbiTrmDF8n7WA5hTCljyqJB4sTKnWyvU4rxhLVBnSCrcJC53ciDcxBA5fYrsvZK
	erEnCGrj0vhZfsZ924l/DJ6culcAT4KB3V1l9y1FnmgsFngah+SDkVgNPNM+yqbAwIFopdJgbsP
	J8v3KYbH2cedS79EIm6mQhlc4Poc6LGdZCK7N8GwrBjz2pzooEB0sYuuOo8iXPg/KWL7K93qNia
	LpID0Y0JQ9q8/idEAkgA4veGuRtm0YWp6jcyIv5/QlxhAF5lwHNKZ9554HGCEK8IBTIHN+v7cDQ
	sHyykyZC1T0aFsJ+6ptiqsTVHiZ/p2IMKuht/CxKwtP/Iu4+/f9frntqDurLii2swgkliGdzb02
	ZcXkiuA1k=
X-Google-Smtp-Source: AGHT+IFcenFdFzsv72NfyTJmIbLhoYinj/v1eQVO+SQWqIZevHxAMLCDr9vQKOp3ZJqfRKgRJwgqlA==
X-Received: by 2002:a05:6402:d0e:b0:615:c767:5ba1 with SMTP id 4fb4d7f45d1cf-617dc3607d6mr273326a12.3.1754582269880;
        Thu, 07 Aug 2025 08:57:49 -0700 (PDT)
Message-ID: <2aa2135f-e422-417f-a509-74f61c3b19de@suse.com>
Date: Thu, 7 Aug 2025 17:57:47 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 06/20] xen/riscv: add root page table allocation
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <23c79f07221dee7eb782ebb160442f3a796a41b2.1753973161.git.oleksii.kurochko@gmail.com>
 <7491c934-f847-4fe2-9d9b-a500f0888198@suse.com>
 <ccdd5caa-2c91-4125-9c6b-067c941649b1@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: <ccdd5caa-2c91-4125-9c6b-067c941649b1@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.08.2025 15:35, Oleksii Kurochko wrote:
> 
> On 8/5/25 12:43 PM, Jan Beulich wrote:
>> On 31.07.2025 17:58, Oleksii Kurochko wrote:
>>> +static int p2m_alloc_root_table(struct p2m_domain *p2m)
>>> +{
>>> +    struct domain *d = p2m->domain;
>>> +    struct page_info *page;
>>> +    const unsigned int nr_root_pages = P2M_ROOT_PAGES;
>>> +
>>> +    /*
>>> +     * Return back nr_root_pages to assure the root table memory is also
>>> +     * accounted against the P2M pool of the domain.
>>> +     */
>>> +    if ( !paging_ret_pages_to_domheap(d, nr_root_pages) )
>>> +        return -ENOMEM;
>>> +
>>> +    page = p2m_allocate_root(d);
>>> +    if ( !page )
>>> +        return -ENOMEM;
>>> +
>>> +    p2m->root = page;
>>> +
>>> +    return 0;
>>> +}
>> In the success case, shouldn't you bump the paging pool's total_pages by
>> P2M_ROOT_PAGES? (As the freeing side is missing so far, it's not easy to
>> tell whether there's [going to be] a balancing problem in the long run.
>> In the short run there certainly is.)
> 
> I think that total_pages should be updated only in case when page is added
> to freelist.
> In the case of p2m root table, we just returning some pages to domheap and
> durint that decreasing an amount of total_pages as freelist has lesser pages,
> and then just allocate pages from domheap without adding them to freelist.

But how's freeing of a root table going to look like? Logically that group
of 4 pages would be put back into the pool. And from that the pool's
total_pages should reflect that right after successful allocation.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 15:59:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 15:59:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073267.1436162 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk31d-00017t-Ak; Thu, 07 Aug 2025 15:59:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073267.1436162; Thu, 07 Aug 2025 15:59:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk31d-00017m-7u; Thu, 07 Aug 2025 15:59:29 +0000
Received: by outflank-mailman (input) for mailman id 1073267;
 Thu, 07 Aug 2025 15:59:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oMMd=2T=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1uk31b-00017c-FM
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 15:59:27 +0000
Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com
 [2a00:1450:4864:20::630])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7da6901d-73a7-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 17:59:25 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-ae6f8d3bcd4so227618266b.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 08:59:25 -0700 (PDT)
Received: from [192.168.1.17] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af93d62bc97sm1056064666b.80.2025.08.07.08.59.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Aug 2025 08:59: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>
X-Inumbo-ID: 7da6901d-73a7-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754582365; x=1755187165; darn=lists.xenproject.org;
        h=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=0wgtPBavqi4PFHyWY9Rb9EAc0CZ4jorCn0z6GQ8ZqWE=;
        b=RKtPQNkv97/JGpObUssHpocSl8hMwDX0AyxITsndHeDk6DD6ruWOjBvl6IlPTkJD1x
         owQQ6bnZve03zzQXqIyGIKcofnJmRM7ZkjQqterHoCXzRgl4weuhcOb+7WgKv3ABFkjp
         HYmnMsSC6IO8B+AY276xz6sfUt1lRImCoWwalUPEwNlWMToFY1Z5E2EdwJow+/FT7dVl
         m2/l7XXEgMq7C7YOwwfYMoWi8++4NB65ATNdX11NZd/mSOhtjFrw+syOUXi5gwpLR+IL
         GzBbevODLNzcu7rPZW2LMd0LYVwElUAVUgen3S2f8632uPbebKjwH5lCwXw+GQxDvICS
         0uig==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754582365; x=1755187165;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=0wgtPBavqi4PFHyWY9Rb9EAc0CZ4jorCn0z6GQ8ZqWE=;
        b=dP0gMuw0IteE18BTzJpXtla6YYiLWeWXIXtUB9eIBV5VE49iyftISqNlXBF0ZVEVdK
         RstcBWNpn78EviSUdVnf6QXoEUn5+nbud9TvRUBuoHVPrEanlvUD05G45KNFML7tElET
         0nHAT/O6u4obQ7Tle8sJP1GCALQwcuLzdWiHRdIAXZpGczOZQCR3Sg+OFEmCfmjWza69
         zC+QgMC+Fe7UFK6eU0OBDc7R2nLph+wWTsGYn+9e92u0aMOxlL0c5JdY8CDUbKNJ9vYS
         2m6XBCBD+fYLJARlshluJ4QjiT/OTXj5g/U0I3vZeVOjJWEll6dbE2vfgoGuh9tON7uO
         ntVA==
X-Forwarded-Encrypted: i=1; AJvYcCVNGlegRuVbvPWlb3TbmsPCKDjQxY1BNU5dWzUrFG18TA3PYH2TRg9jN+T5iOwZ89+WeSLwULWtpjc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzgrxqlPlOOBRVFpGiUl94OChS/K3qIu+22Z3TbwuvJgJHwr/FV
	i7pzFGvkkkgMY5EZJqwVYaeKnYVuwOL3ecO4jkR8tkZ7YiFzKCbwvcNM
X-Gm-Gg: ASbGncsDKmZjyDMCNz6PJXfAZeOvhqjZEiIvNXMPhdPyDmIapedvJ4KF3HqX3GHH2O8
	ESgHYiu4zsfQtvMf/w+I+6RdjAwUTkDbDi2FYjEnaKZB3ojlWk+22kd8PcFCZJzD4ouIJTTitz8
	Zz+WQ25EvuYOv6zGZUCEmBeZWJ1lgnRW0NpjqiSJqZTGvKBeUX0WwfBEQNVVcwD/1FyEm55e4kG
	CKgBsiGm7TeYphRXFn+/iaGScW1YI3fYKCQc4ldIqXCEe2SbGjDdvFPKKO0jJh3Ya4WUePoNdtB
	EaWYfqrVcj1VUsJmZmCfwfMSZZft+Z8yX0RJ8hQAxSZGMr7asRq1NBnTBMc0tsL5tJfxhqcYvVJ
	ujn5T+eNx+AkDmGR3KqE6TkEIOeEbsaL1J6EGgLEk7PIhJaE5lssfYN2fzWKe4smb49js43gx
X-Google-Smtp-Source: AGHT+IF6JpGu0ylcGSsFXKfkBWZUNHNaQB51sxXElkBY8cIkavWQP5x60LqdH4bvjmey/yjsXPrlhg==
X-Received: by 2002:a17:907:96a5:b0:ade:198c:4b6f with SMTP id a640c23a62f3a-af9c1c503ecmr42455566b.1.1754582364461;
        Thu, 07 Aug 2025 08:59:24 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------5KcyPkjop0awM4nKFAFs0bwU"
Message-ID: <9fec023f-3b93-49a4-8ee2-ab2194951b19@gmail.com>
Date: Thu, 7 Aug 2025 17:59:22 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 06/20] xen/riscv: add root page table allocation
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <23c79f07221dee7eb782ebb160442f3a796a41b2.1753973161.git.oleksii.kurochko@gmail.com>
 <3c02593f-deae-4109-9334-0ac4376a9a9e@suse.com>
 <d160c6da-a4a8-44ca-9dc5-b1e3cb31bde5@gmail.com>
 <d81b41c9-59e1-4807-af27-9d952d35ba42@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <d81b41c9-59e1-4807-af27-9d952d35ba42@suse.com>

This is a multi-part message in MIME format.
--------------5KcyPkjop0awM4nKFAFs0bwU
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 8/7/25 5:30 PM, Jan Beulich wrote:
> On 07.08.2025 14:00, Oleksii Kurochko wrote:
>> On 8/5/25 12:37 PM, Jan Beulich wrote:
>>> On 31.07.2025 17:58, Oleksii Kurochko wrote:
>>>> +    /*
>>>> +     * Return back nr_root_pages to assure the root table memory is also
>>>> +     * accounted against the P2M pool of the domain.
>>>> +     */
>>>> +    if ( !paging_ret_pages_to_domheap(d, nr_root_pages) )
>>>> +        return -ENOMEM;
>>>> +
>>>> +    page = p2m_allocate_root(d);
>>>> +    if ( !page )
>>>> +        return -ENOMEM;
>>> Hmm, and the pool is then left shrunk by 4 pages?
>> Yes until they are used for root table it shouldn't be in p2m pool (freelist),
>> when root table will be freed then it makes sense to return them back.
>> Am I missing something?
> I'm commenting specifically on the error path here.

Ohh, got it.

In this case, should we really care about this 4 pages as a domain can't be ran
without allocated page root table and a panic() will be occured anyway according
to the create_domUs() common code (construct_domU() -> domain_p2m_set_allocation()
-> p2m_set_allocation() -> p2m_alloc_root_table()):
...
         rc = construct_domU(&ki, node);
         if ( rc )
             panic("Could not set up domain %s (rc = %d)\n",
                   dt_node_name(node), rc);
...
(Note: I missed to return a value returned by p2m_alloc_root_table() in p2m_set_allocation()
so it isn't really propagated, at the moment, but I will fix that in the next patch
version) ...

>> Probably, you meant that it is needed to update p2m->pages?
> That (I think) I commented on elsewhere, yes.
...

if it is needed really to update p2m->pages when a page is allocated, I think
it will be better to in p2m_allocate_root() immediately after alloc_domheap_pages()
is called in p2m_allocate_root().

~ Oleksii


--------------5KcyPkjop0awM4nKFAFs0bwU
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/7/25 5:30 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:d81b41c9-59e1-4807-af27-9d952d35ba42@suse.com">
      <pre wrap="" class="moz-quote-pre">On 07.08.2025 14:00, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">On 8/5/25 12:37 PM, Jan Beulich wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">On 31.07.2025 17:58, Oleksii Kurochko wrote:
</pre>
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">+    /*
+     * Return back nr_root_pages to assure the root table memory is also
+     * accounted against the P2M pool of the domain.
+     */
+    if ( !paging_ret_pages_to_domheap(d, nr_root_pages) )
+        return -ENOMEM;
+
+    page = p2m_allocate_root(d);
+    if ( !page )
+        return -ENOMEM;
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">Hmm, and the pool is then left shrunk by 4 pages?
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
Yes until they are used for root table it shouldn't be in p2m pool (freelist),
when root table will be freed then it makes sense to return them back.
Am I missing something?
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
I'm commenting specifically on the error path here.</pre>
    </blockquote>
    <pre>Ohh, got it.

In this case, should we really care about this 4 pages as a domain can't be ran
without allocated page root table and a panic() will be occured anyway according
to the create_domUs() common code (construct_domU() -&gt; domain_p2m_set_allocation()
-&gt; p2m_set_allocation() -&gt; p2m_alloc_root_table()):
...
        rc = construct_domU(&amp;ki, node);
        if ( rc )
            panic("Could not set up domain %s (rc = %d)\n",
                  dt_node_name(node), rc);
...
(Note: I missed to return a value returned by p2m_alloc_root_table() in p2m_set_allocation()
so it isn't really propagated, at the moment, but I will fix that in the next patch
version) ...

</pre>
    <blockquote type="cite"
      cite="mid:d81b41c9-59e1-4807-af27-9d952d35ba42@suse.com">
      <pre wrap="" class="moz-quote-pre">
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">Probably, you meant that it is needed to update p2m-&gt;pages?
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
That (I think) I commented on elsewhere, yes.</pre>
    </blockquote>
    ... <br>
    <pre>if it is needed really to update p2m-&gt;pages when a page is allocated, I think
it will be better to in p2m_allocate_root() immediately after alloc_domheap_pages()
is called in p2m_allocate_root().

</pre>
    <pre>~ Oleksii
</pre>
    <br>
  </body>
</html>

--------------5KcyPkjop0awM4nKFAFs0bwU--


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 16:03:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 16:03:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073275.1436172 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk35l-00042l-R4; Thu, 07 Aug 2025 16:03:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073275.1436172; Thu, 07 Aug 2025 16:03: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 1uk35l-00042e-OU; Thu, 07 Aug 2025 16:03:45 +0000
Received: by outflank-mailman (input) for mailman id 1073275;
 Thu, 07 Aug 2025 16:03:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=+2Ad=2T=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uk35j-00042Y-N9
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 16:03:43 +0000
Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com
 [2a00:1450:4864:20::52d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 16f27e16-73a8-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 18:03:42 +0200 (CEST)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-60c9d8a169bso2035082a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 09:03:42 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a0766f9sm1356758766b.24.2025.08.07.09.03.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Aug 2025 09:03: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>
X-Inumbo-ID: 16f27e16-73a8-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754582622; x=1755187422; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=s8z43+lqwpm/treF8d/TNueTQC5pYCRnxN093/aiu5o=;
        b=DCVgOX/0mRki3IvDYlPfPLrZsXaEmr2NcLeFsJnw6CSdayRbaoMofzayIKMcq8s7Dy
         9GP8r6X6ZbYd4JPpCHvEeYzfuFM0it57L5m+6DUfi4JUMlBh0Wf42t46l12yrhHh9e9+
         jY193RybETYtLpIVtgH6tWtRlP/WX3dO9Gr7RYj0bEH4k2gnUo0VNpGSzh5kvLwqGCyO
         VcC7c4ZFyuvsLq9dJ/Z2e5CKDXjUBEPtljl+fDbroi9fpIKyAYizDFSl17at+Q6npKzn
         MeDAv6z1HYG1qss8b56FcYTmzIRhJkp5k5TnbLZMRJHwI9wt1CqRnACQAXqST+lEBn3d
         cbGA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754582622; x=1755187422;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=s8z43+lqwpm/treF8d/TNueTQC5pYCRnxN093/aiu5o=;
        b=Al8/dNvRH7jbo6Kjs2i5/V0m98voEWqAN6+7EWpGrdX6BhFCrK7DRv6bblL7/bDTTj
         2+JTSJJI4iLF1AMPXGbPjY+RaUXH8REK8hnnvyjgtMr04EhbETMyhNvCl8uKt9MZagr2
         Qzyi6BYAhue8aw9vGabwEWHinVtvuVVb07BeePSZ9bQtsq2pvxZq15ynxuhorD0vD/t0
         Yu/l3XwarI9A5mzdWqPeCCTcpB0R8sAIQEtP1pSm9hsKEEfIclFxlClwVybC09fJVcv+
         k/v5UBvoRfuNnLUVpcfXZu5QD8MS3aB6MkIt1FFnoPCi9yGya+to1L6ruUr3iwsYfJ8C
         teDw==
X-Forwarded-Encrypted: i=1; AJvYcCWdACisCeHHa5HdtNkr0FoMKVTWS9/okG7llon00L7IxleVKEN2FVaTVfliKJFqeZPwmPj6dL8TT7c=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwJ6tDRPy71agxrWJLM8unKS79dCj4D8DPtnNqtKlK4+M+zEW2/
	PNuWjj6BPEi7c4MFNr3zTDLVeAV0k9pKxj8sLJoYpMszSCfVxK8C0KwgpdO2gVdVzA==
X-Gm-Gg: ASbGnct/4OCM1RTRVPMpho3+o6ZrYOK/7GeAbdGtBOPbWIJMrHLYsmQAHOl8/48b+0g
	hMTRsAFUZNo49Z/KJxQx9JobV8Bh6TehOAekyjQSiBKzZUWqw7LS3VK8ZqlihHYV4NksuvHvWse
	2qtywKsGcIwZ0IOXsvoYpj6wYqmPrKCRypPSw2OomMyHquqVl9PuwrWgL27G+CVjZ+yY8FiggVo
	xMXrJZvui38XHO3KTenuI9P/hIyM8rdYWN9TtCMiH69mxmweoJ6W/fkROpGtPa7k1FTJftr35JJ
	OMGBJK4n/MN9mf8uws19PjOotnIt8LmdRePx+SnEDBUGFQGNFOc8VDl5LjRzgbWAxRcrCWy9clm
	Uf2uEjnGk7z2hXYXoaKDCjtHZRStNRoiUqYD5WmSzJDGo2OQU+unBwjrWKp8Q5tgPj414i4IIm+
	0m5r5W2Gc=
X-Google-Smtp-Source: AGHT+IGyWBZEyK3navZoOpsiNlN+Qi9aj2QGiY2HwK+Hkf91ZIbADUMvf+Yzc3Kao+bp/5JnjUfVhw==
X-Received: by 2002:a17:907:9810:b0:af8:fa64:917f with SMTP id a640c23a62f3a-af992c27b3emr707987366b.48.1754582621689;
        Thu, 07 Aug 2025 09:03:41 -0700 (PDT)
Message-ID: <412e9ac3-554f-41ee-b76c-86c38e13848a@suse.com>
Date: Thu, 7 Aug 2025 18:03:39 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 06/20] xen/riscv: add root page table allocation
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <23c79f07221dee7eb782ebb160442f3a796a41b2.1753973161.git.oleksii.kurochko@gmail.com>
 <3c02593f-deae-4109-9334-0ac4376a9a9e@suse.com>
 <d160c6da-a4a8-44ca-9dc5-b1e3cb31bde5@gmail.com>
 <d81b41c9-59e1-4807-af27-9d952d35ba42@suse.com>
 <9fec023f-3b93-49a4-8ee2-ab2194951b19@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: <9fec023f-3b93-49a4-8ee2-ab2194951b19@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.08.2025 17:59, Oleksii Kurochko wrote:
> On 8/7/25 5:30 PM, Jan Beulich wrote:
>> On 07.08.2025 14:00, Oleksii Kurochko wrote:
>>> On 8/5/25 12:37 PM, Jan Beulich wrote:
>>>> On 31.07.2025 17:58, Oleksii Kurochko wrote:
>>>>> +    /*
>>>>> +     * Return back nr_root_pages to assure the root table memory is also
>>>>> +     * accounted against the P2M pool of the domain.
>>>>> +     */
>>>>> +    if ( !paging_ret_pages_to_domheap(d, nr_root_pages) )
>>>>> +        return -ENOMEM;
>>>>> +
>>>>> +    page = p2m_allocate_root(d);
>>>>> +    if ( !page )
>>>>> +        return -ENOMEM;
>>>> Hmm, and the pool is then left shrunk by 4 pages?
>>> Yes until they are used for root table it shouldn't be in p2m pool (freelist),
>>> when root table will be freed then it makes sense to return them back.
>>> Am I missing something?
>> I'm commenting specifically on the error path here.
> 
> Ohh, got it.
> 
> In this case, should we really care about this 4 pages as a domain can't be ran
> without allocated page root table and a panic() will be occured anyway according
> to the create_domUs() common code (construct_domU() -> domain_p2m_set_allocation()
> -> p2m_set_allocation() -> p2m_alloc_root_table()):
> ...
>          rc = construct_domU(&ki, node);
>          if ( rc )
>              panic("Could not set up domain %s (rc = %d)\n",
>                    dt_node_name(node), rc);

Well, that's for dom0less. Even for tool-stack created VMs there would be
no problem. But root tables required on demand (altp2m, nested) would be
different. So what you do here may be good enough for now, but likely will
want improving later on. (Such temporary restrictions may want putting
down somewhere.)

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 16:07:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 16:07:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073281.1436184 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk39R-0004bJ-Az; Thu, 07 Aug 2025 16:07:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073281.1436184; Thu, 07 Aug 2025 16:07: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 1uk39R-0004bC-74; Thu, 07 Aug 2025 16:07:33 +0000
Received: by outflank-mailman (input) for mailman id 1073281;
 Thu, 07 Aug 2025 16:07:31 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SGIa=2T=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1uk39P-0004b6-4A
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 16:07:31 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9e2111ba-73a8-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 18:07:29 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by GV1PR03MB8768.eurprd03.prod.outlook.com (2603:10a6:150:a1::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.23; Thu, 7 Aug
 2025 16:07:26 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9009.013; Thu, 7 Aug 2025
 16:07:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9e2111ba-73a8-11f0-a324-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QMtWCnGsCOwCQKnfGXnpPZSrkvCaMaDYrtqMYQWtf6vWUnoJSM4eDtwaFkOdfSpheIKL9XoGR5fupNmgJYql3Vc0I1w1JySeDkA8BwO6jt7LCT7OWnxp3XXG+nCf3nJtaNQZkYZryo7ugApDpNtdRqPbTLnw2RfyVri69hapoyY5bIqjy1G67hTox0mfEVp8wK2GNZo7uaZB3NYpmdaZqKtpbWHLuI6o0/jzKLVnUBlkU/O0ZVAgxooOK58fwireHkfqqov4j7+5+krJNBGwT8jy9an09LiXnEOe9j7WIAeYKoOWLJai6z1q3UA2/rjYA28lv5fm9Wc3ISHRQ4593A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=1v4TyX7Fkos21dkAeeP06ZyOtoV2uiciVjCXVJGvUek=;
 b=s04Y6Q3PemhtPlsk1s+L3yFuWJ/7QLFmXtqH03YlY3ZP6dI2Pk9qL+UunocIIJPTafZlDNiL3Fyct0WQncHMQdJeJ2B5JAv0SAejwc1G5IqUYb1Da5mBPNUk+awerFgqIUYisY/hKzGqLCtunhS47HLDLc11aGnC+5qzllLdy7duPITd8AWrCqEw+nG+zoEO3EwAyZ+lGjLCXinUKWy+mwEgdK/IvajR0YWu0lld0CeimQiK/K9aP8ajbZqOsr/CRyEFeLre88JU8hsEXVye7EyvWAdf73q9q0u4fmrS7QKpMATX8c6I464oX6ILy4g48NjVSa+dWRFSPxmjcuHRdQ==
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=1v4TyX7Fkos21dkAeeP06ZyOtoV2uiciVjCXVJGvUek=;
 b=JaLA0uzvbT+Tir0mqTOUMDW+uE2ACV7e3wGZ+NwOP+BN9+rnC6gGK+i1i+THYtAbczxwLJrigRHnZRmVuoLZrKOwGnpDU4+KVSSExETCn/Uzq2NFP9Ma41SgjajE9pp8uTsdEZyArxLj8Qbc6eko4RB5PAN6uG0ZnPCHfk/E5qifK46EeRHn5EA0u9rdKjP61zftwznvI1832n1plQe6K76xtuuFgZdHPSRXZi0gmaMEZ/EIZFO1ro5MvZZIv7bd7kAP07U5qg2j5OEOG7FtIcRqNLxUz4vuJMq5DW1Sppqkk87+/wEyDRTb5pWdz+UWoZT2itKZS7rXhVC900BPSA==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>, Xen-devel
	<xen-devel@lists.xenproject.org>
CC: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>, Ayan Kumar Halder
	<ayan.kumar.halder@amd.com>, Mykyta Poturai <Mykyta_Poturai@epam.com>,
	Juergen Gross <jgross@suse.com>, Teddy Astie <teddy.astie@vates.tech>,
	Bertrand Marquis <bertrand.marquis@arm.com>, Luca Fancellu
	<luca.fancellu@arm.com>, "Jason Andryuk," <jason.andryuk@amd.com>, Alejandro
 Vallejo <alejandro.vallejo@cloud.com>, Sergii Dmytruk
	<sergii.dmytruk@3mdeb.com>, "Penny Zheng," <Penny.Zheng@amd.com>,
	=?utf-8?B?TWFyZWsgTWFyY3p5a293c2tpLUfDs3JlY2tpLA==?=
	<marmarek@invisiblethingslab.com>, Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, "dmkhn@proton.me"
	<dmkhn@proton.me>, Mykola Kvach <xakep.amatop@gmail.com>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, Grygorii Strashko <gragst.linux@gmail.com>,
	Alejandro Vallejo <agarciav@amd.com>, "committers@xenproject.org"
	<committers@xenproject.org>, Community Manager
	<community.manager@xenproject.org>
Subject: Re: Xen 4.21 Development Update [June-July]
Thread-Topic: Xen 4.21 Development Update [June-July]
Thread-Index: AQHcB7VdyMkZhhqGnEisplRAacP5HQ==
Date: Thu, 7 Aug 2025 16:07:26 +0000
Message-ID: <97ea4947-5212-4fc0-82b0-866deac3befb@epam.com>
References: <ae2c2e35-72df-40ed-bffe-391f3c11b826@gmail.com>
In-Reply-To: <ae2c2e35-72df-40ed-bffe-391f3c11b826@gmail.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: GV2PR03MB8678:EE_|GV1PR03MB8768:EE_
x-ms-office365-filtering-correlation-id: 0bae70ff-3cbb-4e09-de90-08ddd5cc80ce
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|7416014|376014|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?aGlaMUVRdG9sN2dEcG9VVVEyMUtxTDNwd05lamlGZjNxRVpmbGRDY3oyZ3Nt?=
 =?utf-8?B?V0IySEp6QnA1VlFML1hzVlN6S3k4WFV0cExJK1ZZbWlyNGtJaFZ0VEFJMWV0?=
 =?utf-8?B?bmNobHZuaVlENXRsVDZpNlFXUHFhOXBtN0RiL3RYMHNLaHFvNXpjM2EwTllP?=
 =?utf-8?B?Q3AvbXZDUkRmZm1GM0tyNWxaSVhkelExWWlCMzNSRFhXcGJnekc4M05EM3J0?=
 =?utf-8?B?aTVHWXNvbklkMUNUTkZpNWNOMHg2RHltbDdJTEhSZ3MwNzRlbGp4bXhjd1lI?=
 =?utf-8?B?eE1ZQW1UakxSYm16VDRUSXRrMDNnTmQ1ckdHVUhFUExlRE1aay9nd0g0dHU1?=
 =?utf-8?B?V1doaHdXYlNYY2R6NnEvYzI0VHlZVUMrNFcvaXYzQkFrNSs3aDVTNXc0eVpw?=
 =?utf-8?B?bkJYbG1jbytNeTA1L3hGSlk1a3ZpVTQyRnZncG45U0FsR3ljVXRVNndDN01R?=
 =?utf-8?B?b1FTalZoRWYrcFgzdXdjWkhIbXNHWitDQmxObzJvV2o4VUJGUHc4VllqZFlu?=
 =?utf-8?B?UmF3Ynd2bWtmaVBjSktqcmNSRHpJa0dJdUJTcUt4Wmh1N1BBalBTUVlTM04y?=
 =?utf-8?B?SEZqRkdIbFBYR1FGY1kyZ2VMa25GWjh4OGVmcE55TWkyYUFjZ3pUWm9wQVRF?=
 =?utf-8?B?dlJsQW5UNG9BOG9jTGFLQUJwQWVrZ0I2dGZURGJqcVZmS2lWdlhTejhOTzNp?=
 =?utf-8?B?MjMwS3lhbkM2aW9scFpzTkhSaHdTQW1NMzJUQStFbERKTG8rOVpxM3duM3Q5?=
 =?utf-8?B?S3pUWDJBRlN1V0JJOSt0TXkzcXJ4d1RkNktxWDRZQkhXU1hudFN5eEhNSHF5?=
 =?utf-8?B?bUhURFBoZm5CY3FSRSszWTVTWTZNMk9va2RXeGt5NThjN3IzSGhYUXRGRmV4?=
 =?utf-8?B?eldnUXBtUTh1ckUwczJXZFZzcHIvTTdWMzVxYnh0aGl2UnhDdDgzdmxZWERG?=
 =?utf-8?B?UHVyeU04eGlQbGh5OWtKbXd4K2JmUUUraGpqYnpobS8zWXVaSFdTN1dCWmZT?=
 =?utf-8?B?QWNuenhlZlBiMFZWK2dmRlFZa2F6MFF2VG5CUWRycGdUMHYxZmlYdXdLZ0hW?=
 =?utf-8?B?Qk0zSk9UU0cwbE8wNUtXS1dwS1UxSWJrYW9zejVwY1JkZjEzT3h0MXNFZlBn?=
 =?utf-8?B?VnFGTHk0aVg2aSt1T0ZPRmY1K0ZheDkrZGFqMldNeVNjOHZKdnpJb1ZLSjdk?=
 =?utf-8?B?WDBTSWNJekM2UGdoNThBQXQ5Y1dlRmw1NGcrVGc5NkpBdDY0TEwxYmRwTThv?=
 =?utf-8?B?NUtOYXlBaDFoVTNRdkZnVE1CcHZMeVEzazcwc0wzWGphajlsQWJTNy9UaHFM?=
 =?utf-8?B?UEhvMGtwRDMydURVUlcxYk9EdnIySitOcU13U21WQWwxQnNXSlpONDFBRDBu?=
 =?utf-8?B?WW1qeE9zT3FxVHVVOGFyOVE2clJBSWhVNXlaOUlNNjdwOVNxOWJ2QkVLaGwv?=
 =?utf-8?B?RVZPS2RZY1czbmtJaG05dm01aG4vTWl0bnY2MnhCemxlZlJtZ2RwVzdSK2dF?=
 =?utf-8?B?RFo2bVE2NU1LeUNCSnkvTHFYLzZlNTZuWWtyQk9DeGpKZGIrTnJpTWFJYlI1?=
 =?utf-8?B?VUcrVXZpYStyM2xHU3lzcm8zNlVwV1VZeTBLV0kxVjJHTE1qUWUzZUJuN3FO?=
 =?utf-8?B?SHMxVzN3dm11bS80czQ5bjV6YUEvdTlIWFRNQkg0eGhCckZkSXprdkpudDMr?=
 =?utf-8?B?RUJweENsaFhhQkVqQlQ2TnYrTEVUbG1ZWmo2NFhRWTRsMGxXQ25kQWFQY3RP?=
 =?utf-8?B?NDNDM25UWkJTTDVBNXdzOUVHTmIzQU5TM1VOZXJYLzhVTEs3K1pLNncyU2NX?=
 =?utf-8?B?dDEyWTVHNWJvMGFuZng1UFoySCtXU3FGKzdaQkxyNkpwZU5CZnR5KzdZeDdp?=
 =?utf-8?B?cWl4aWFXclJJS3ZLelhORVNEemQrT2xGMWNMaCtOTHpSUGtXSlRYVDBDK3c3?=
 =?utf-8?Q?TsCwGasIaJo=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?MUNwdTZ6SmpXQWwvT0xybEU1eXNDQXpadm5ORmtSTTdlUjcwbkowREw1a1pj?=
 =?utf-8?B?Wlp2TlU3YVh3SzU0ZG5LbWZBUURtUWpvTWhxM3NVWkZYUXJsUjlrVTRLV1No?=
 =?utf-8?B?Y0RCKzQ4bFc5VjY4UVpSMVNWaGp3NGdUZTFTZlR6aWxGS0czbnRlc3RSbEVk?=
 =?utf-8?B?SGZTRWxHVmNuWXRmYWNCNXQrOHJDTXdTREthcjRHdTcvUEJqeG9wSFFoVUUy?=
 =?utf-8?B?STNyNUswRVZsNkhkWVJGc2R2NjNhQ1FDMUx2enU4ZHl4QnB3L1A3N29PUG13?=
 =?utf-8?B?SmFESlA1QmkvUUVDNEVtZ29mUDQyanF5OElqeEFZb2xNenBUQkEyUEhnZ1k2?=
 =?utf-8?B?b2cxSGVmaEdQWXlHOTRlRE1TZmVMY09tbktTOGFUZ0R2RzlFbnRhejBpdTNX?=
 =?utf-8?B?WlJpcGFiSHRsYlBJLzE0TklIc0NQWGU2V3hSc3Q4NUk1Yi9IQVQ3QUZ1SUdx?=
 =?utf-8?B?djk4WXdPRC9tUUNXZWhDRmNKTmluRWZxeTdHM2ZYTWs3UTlBWksxYm9IZWZT?=
 =?utf-8?B?R2F5MUNhZ0ZKNk1IMkxjSWJ2cC9EUTI5RmhsdGdHeWRWVENqN3pGdHY3Zk5W?=
 =?utf-8?B?VXhLaldUTXRyU2Vmemx1OXFVbTJ0bSsxZWNyYURZRU1uVWpiYmpjaE9XdFlO?=
 =?utf-8?B?Wi8rTDFUcDdhRkFDbXNvdVREeVN3bXZLSkFRN3FyWWN4L0JGck5aNU1SWjdU?=
 =?utf-8?B?RXJlcWcvdDNNVW5ITG1aK0tabDVpbFJwYzJyd3N5dTRhMndweU1VdzNnMTBG?=
 =?utf-8?B?S1ZmR01VazNpdkJ3VGRDQVNMSUU3NFBiSjVQMFgrai9QMnBzWFV2TVczcTFn?=
 =?utf-8?B?TW5VQitsdVVrMlAvZVV0ZkNKK2c0ampSMzQzeTFQUzRiZ1lnQ2F5UzVkL3Jo?=
 =?utf-8?B?QXdlNWdmM0N5RGlOYS81RUdPaGVzMk4wVGw0MW8weXlyNkY2TDBpWkVUUUV0?=
 =?utf-8?B?VFJ5U3hSREZJNkhBdjU5UHpUWkltSWc0N0l3V0JDcHBvamFiZm1HVEFjOFVO?=
 =?utf-8?B?SlVKUTdnbkxTWDNkL3pxRWtCOVk3UnVzMWwxR1FsY1dTbTZlemY5aHp0eHoz?=
 =?utf-8?B?WnRwbEJzNUh3ZWVxWkE4Z3lURm45WjRoWDkwUUdkY1N6bGpVY3VuZEN5SExo?=
 =?utf-8?B?Q1pNb2VCNEFndmFkWXB4TW9yNmJhbFU0ZVJoNmNWdU5jN2g4NW1WeUMwQTlW?=
 =?utf-8?B?a0VvTDJDaDJNNHZCU0Z5MmpmZ0xwUUVKTko0TzJjZnpZd2hQWjVBcGhGaG1S?=
 =?utf-8?B?ZnpNUGlzK21SeitUUWZHZUlrOGh4RU5RSG5SWW50anlDQ1JDV3NUMDZObzU3?=
 =?utf-8?B?RTNhdkZ2S1FmT1FoaHlwVE4rMFFETURUV0o5T1NEN3ozaVFIQjVmUUp4c1J2?=
 =?utf-8?B?czFiTUJqZlcwdVVoNEY1OXpValZDc2JmejBVYmMrTlZWcHZnWGRIbXJwMnRr?=
 =?utf-8?B?V2VZb1pUWkY4Zjh0UGs1bkFHSkMwbHZOWXB2RTlzd1lDbGdqZjdjMFRLVmRS?=
 =?utf-8?B?ZmN2WWp5NFdxQUlSSmFLYmFsVEUzQlZ1NjcyM0R2eExJMUl6WVNmN3ZwYjN5?=
 =?utf-8?B?TzlNVXhhZkNqMG1GVU1Vb0xmV1NTa2FjcUFDemxubmVENmFHU0R4VldaV3lq?=
 =?utf-8?B?NnZEK04xSGowcW50SjM0WW5tdXoybXZ6Q05sSFZheENob3gwc3N3NkxpSHdm?=
 =?utf-8?B?RkhOSjN1M3JFelNPaTZkd3l3TTFvaEFrNDFZem1laFJiZUUzWnpSZGpnVDE4?=
 =?utf-8?B?cVpxYU5XdVlzSTBleFc3QXpyYzg4N0s1d0IzU2p4cFFtYitYOUlvaHpsZnFN?=
 =?utf-8?B?aGduaDAxcnh3bGg2RFJqVGtwdWhNTE1rQ1FNZkpDWVQzMVJKZVZ6UThOdVNo?=
 =?utf-8?B?M3EzdDVFa2dJNUNBWUNsWThyeWFFcHJXaXhBYjlJS0prZjlFWTQvWHlpSUV3?=
 =?utf-8?B?NDFEK2FKMXRrV0MrbWdLUlBKbEQxMGYybjdHeEVxeEZGTEpvQlhCczB5RHBX?=
 =?utf-8?B?dCtBZWtBUXRtRTY2TGNGOWhETkh4NDdEa1l5bThjcHJjZHFnekxBaXRzYVpw?=
 =?utf-8?B?RkN4VDZOVThlelRSWXpjTysvSk1uUkY0YVBYUHAzMHg4cDVoMUZPSWRhRVBB?=
 =?utf-8?B?Q2tkek9JeGlqMjc4eXdHaFQ5RmxkV3RNeXdhYkRCRWNyZkNtSmx2QVZSL2Ja?=
 =?utf-8?Q?KXcm9M9p5czSGdEmGesH8qY=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <65F2F0E34BFEA9458DDDF4ACC37C9D3F@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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0bae70ff-3cbb-4e09-de90-08ddd5cc80ce
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Aug 2025 16:07:26.7417
 (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: uFxd37SQ5rIfXbJVIHZ/nh4NNx7Q/NA5nz3aT2mUc8WewRK012/K55/h31s5nzAW1xo83tGym21MGi4vfvaoGBPDbTDpgGP4h/e7WxBS8zA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR03MB8768

SGkgT2xla3NpaSwNCg0KT24gMDUuMDguMjUgMjE6MTksIE9sZWtzaWkgS3Vyb2Noa28gd3JvdGU6
DQo+IEhlbGxvIGV2ZXJ5b25lLA0KPiANCj4gVGhpcyBlbWFpbCBvbmx5IHRyYWNrcyBiaWcgaXRl
bXMgZm9yIHhlbi5naXQgdHJlZS4gUGxlYXNlIHJlcGx5IGZvciANCj4gaXRlbXMgeW91DQo+IHdv
dWxkIGxpa2UgdG8gc2VlIGluIDQuMjEgc28gdGhhdCBwZW9wbGUgaGF2ZSBhbiBpZGVhIHdoYXQg
aXMgZ29pbmcgb24gYW5kDQo+IHByaW9yaXRpc2UgYWNjb3JkaW5nbHkuDQo+IA0KPiBZb3UncmUg
d2VsY29tZSB0byBwcm92aWRlIGRlc2NyaXB0aW9uIGFuZCB1c2UgY2FzZXMgb2YgdGhlIGZlYXR1
cmUgeW91J3JlDQo+IHdvcmtpbmcgb24uDQo+IA0KPiA9IFRpbWVsaW5lID0NCj4gDQo+IFRoZSBj
dXJyZW50IHJlbGVhc2Ugc2NoZWR1bGUgY291bGQgYmUgZm91bmQgaGVyZToNCj4gIMKgIGh0dHBz
Oi8vd2lraS54ZW5wcm9qZWN0Lm9yZy93aWtpL1hlbl9Qcm9qZWN0X1guWVlfUmVsZWFzZV9Ob3Rl
cw0KPiANCj4gQW5kIGFzIGEgcmVtaW5kZXIgSSB3b3VsZCBsaWtlIHRvIHJlbWluZCBhdCB0aGUg
b2YgdGhpcyB3ZWVrIHdlIHdpbGwgaGF2ZQ0KPiBMYXN0IHBvc3RpbmcgZGF0ZSAoRnJpIEF1ZyAw
OCwgMjAyNSkuDQo+IA0KDQpPdXIgdGVhbSBleHBlY3RzIHRoZSBlU1BJIGZlYXR1cmUgdG8gYmUg
aW5jbHVkZWQgaW4gdGhlIDQuMjEgcmVsZWFzZToNCmh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3hl
bi1kZXZlbC9jb3Zlci4xNzU0NTE0MjA2LmdpdC5sZW9uaWRfa29tYXJpYW5za3lpQGVwYW0uY29t
Lw0KDQpDdXJyZW50bHksIHRoZSBzZWNvbmQgdmVyc2lvbiBvZiB0aGUgcGF0Y2ggc2VyaWVzIGlz
IHVuZGVyIHJldmlldywgYW5kIEkgDQpob3BlIEkgd2lsbCBmaW5pc2ggaXQgYmVmb3JlIHRoZSBG
ZWF0dXJlIEZyZWV6ZS4NCg0KQmVzdCByZWdhcmRzLA0KTGVvbmlkIEtvbWFyaWFuc2t5aQ==


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 16:12:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 16:12:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073287.1436193 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk3E3-00077n-V6; Thu, 07 Aug 2025 16:12:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073287.1436193; Thu, 07 Aug 2025 16:12: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 1uk3E3-00077g-SM; Thu, 07 Aug 2025 16:12:19 +0000
Received: by outflank-mailman (input) for mailman id 1073287;
 Thu, 07 Aug 2025 16:12:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RnJu=2T=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1uk3E2-00077Y-Fy
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 16:12:18 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 46f55efb-73a9-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 18:12:12 +0200 (CEST)
Received: from DB9PR06CA0023.eurprd06.prod.outlook.com (2603:10a6:10:1db::28)
 by DU0PR08MB7994.eurprd08.prod.outlook.com (2603:10a6:10:3e1::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.16; Thu, 7 Aug
 2025 16:12:05 +0000
Received: from DU2PEPF00028D0C.eurprd03.prod.outlook.com
 (2603:10a6:10:1db:cafe::81) 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.8989.21 via Frontend Transport; Thu,
 7 Aug 2025 16:12:05 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DU2PEPF00028D0C.mail.protection.outlook.com (10.167.242.20) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9009.8
 via Frontend Transport; Thu, 7 Aug 2025 16:12:05 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com (2603:10a6:10:25a::24)
 by AM8PR08MB5651.eurprd08.prod.outlook.com (2603:10a6:20b:1c4::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.16; Thu, 7 Aug
 2025 16:11:30 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a]) by DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a%2]) with mapi id 15.20.8989.015; Thu, 7 Aug 2025
 16: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>
X-Inumbo-ID: 46f55efb-73a9-11f0-b898-0df219b8e170
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=jAJxQ4i8HLVK2k8EJlRjqKvuQQsfYsBImGcNLGs5Zhtq5HbGvp9z+uMseCpXO/3W1gnDVUa50OZ+G5rMT2LIDRI5KEqkkVDCqP6vSRCWuWgHIRr2pPKNJceSgaggj1ujPcmxHiba9b7pu3uE7Njkj0455RS4LWj7gX0CrK9ZSK+oI7ENOrF9qZeL1ydtX4lpTWpq4stBxo5bF/xiyvfpuLunHrm6/qbGl6xPFftf534rR7ursMBxR/k1y9ULWgZpBidbHm07Prr7B6MUWPz13MGbw/MK2iJm65H1vJk+oHL071AzF0uvjRBYGqNtkiKjeJ9VO7Ww90l7BvL59UW83Q==
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=C1TMIRmyQ00BM5V1Ux1pIi3Bj/gyz/OJCYq9ZVvlD/Y=;
 b=fDOPKkWotsnuDuGTKDVsnfX+8jYPqs+jx5ymoVCg6rQM/Hd6ZfUovl++M2lEeXH09vFAMs/cH6S7XNqK4dWDvenjMhNg7G+pOyyPJYfDbJsVP5GnT0HFCh0VaSVG3CwJSzJKKIapL+Z0aBhxC1dDQ1F8gk6u69U9uunCwr7RT2a0D8XQX+OE36MYOZMHqWqIk7UwrNZ6zom6ZUIg3FtZwxnMyVilRtlZpbYxMQtqDSJrWmxv6DXlFaj8x+dz2dP7k5nhQd/uolhx3J0W2yZjnfyO6Oa/9d5RtnQAka+t31sU0AGfIdNAbVff6n2d0PmNJuA7VnS1p/FGQznnnRKIQQ==
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=C1TMIRmyQ00BM5V1Ux1pIi3Bj/gyz/OJCYq9ZVvlD/Y=;
 b=PIeAiHXdC6O/gYK3w4/JzxuGIpLuxB1PTM0v6oLYlzmONO5B8saEC5Xi62XEiO+xOtg4rzQLRN+bnDW+iEkO5mOjuZgU+ud44kXIBOhuiSnQ00qbZOAoCoV1wa1CjhgX9ib3gDICqXpZigwiYP+YbKMKWEc9/IoC8IEb2Kcdyb8=
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=rKv1YSXLvQ0Lt/PwRYaHzAyZTuTjPUNL5BU7NlgqYMknrHyeXbFORnm6jt/ICXol5JW+iZU3jVP4qaWLPYoHxJCC6YOe+SxOpYGfzrdmAPNcCv8E2/eY+ATgXrddc2c9cdzTMUgQ3ZVz6t1vc0B4Jsu2sHn5pCu3AvQRjWY/K1PJ8rkgdv7o4YsL6gKtUNPjPCPO0eU7ly9eyImYsB11PoHHNVXiTZG3NcqGipRKRDTcjK3w1da3cF+x17krUvbpxQ/UxwSqu8ZS6YnIJ5EeTs+WMUi+8wWiFRrdIlexkZOTvvh6VjBG2/3WcqeBdOGA3LBcKhQbp4X4IOReM/Elow==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=C1TMIRmyQ00BM5V1Ux1pIi3Bj/gyz/OJCYq9ZVvlD/Y=;
 b=JcoWgeCoknt2dHusVhpaAtet1mj/uU7dxc3Fvb+00XD9naR8u6MGDnGZJgLSoVvjp2Zg9IuHxftGt/RRKbCOKgIk/eVmx+ipTReMrnlTQhHDh3w5KCKJSCoZtHuG5+kqjelAWFvzJGmCnp4JwkX5sJdZhZhpdNBblIO2i4znkXbA/a+RBh3h64K+/SsO22FX6Oy7bpWyysZm+ubwZjQ1yQpEmuzw1twe5Kn6fv+0qeGxCu7WMGnDuJIA8k8GhxJDzSv14lEId+VbcGslU5ic3E6AOVby4OPoDnv3H5eO8aeHFAaoqhcmMlVmkL84vu8uNKtQyflo2hgxeAKsUXArlQ==
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=C1TMIRmyQ00BM5V1Ux1pIi3Bj/gyz/OJCYq9ZVvlD/Y=;
 b=PIeAiHXdC6O/gYK3w4/JzxuGIpLuxB1PTM0v6oLYlzmONO5B8saEC5Xi62XEiO+xOtg4rzQLRN+bnDW+iEkO5mOjuZgU+ud44kXIBOhuiSnQ00qbZOAoCoV1wa1CjhgX9ib3gDICqXpZigwiYP+YbKMKWEc9/IoC8IEb2Kcdyb8=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Oleksii Moisieiev
	<Oleksii_Moisieiev@epam.com>, ", Ayan Kumar Halder"
	<ayan.kumar.halder@amd.com>, Mykyta Poturai <Mykyta_Poturai@epam.com>,
	Juergen Gross <jgross@suse.com>, Teddy Astie <teddy.astie@vates.tech>, Luca
 Fancellu <Luca.Fancellu@arm.com>, "Jason Andryuk," <jason.andryuk@amd.com>,
	Alejandro Vallejo <alejandro.vallejo@cloud.com>, Sergii Dmytruk
	<sergii.dmytruk@3mdeb.com>, "Penny Zheng," <Penny.Zheng@amd.com>,
	=?utf-8?B?TWFyZWsgTWFyY3p5a293c2tpLUfDs3JlY2tpLA==?=
	<marmarek@invisiblethingslab.com>, Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, "dmkhn@proton.me"
	<dmkhn@proton.me>, Mykola Kvach <xakep.amatop@gmail.com>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, Grygorii Strashko <gragst.linux@gmail.com>,
	Alejandro Vallejo <agarciav@amd.com>, "committers@xenproject.org"
	<committers@xenproject.org>, Community Manager
	<community.manager@xenproject.org>
Subject: Re: Xen 4.21 Development Update [June-July]
Thread-Topic: Xen 4.21 Development Update [June-July]
Thread-Index: AQHcBjWLDV0/ycWl8Uay77MmKsfR3rRXX2aA
Date: Thu, 7 Aug 2025 16:11:30 +0000
Message-ID: <24765D68-072F-4651-82A6-C1B65896BDD5@arm.com>
References: <ae2c2e35-72df-40ed-bffe-391f3c11b826@gmail.com>
In-Reply-To: <ae2c2e35-72df-40ed-bffe-391f3c11b826@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.600.51.1.1)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB9PR08MB6588:EE_|AM8PR08MB5651:EE_|DU2PEPF00028D0C:EE_|DU0PR08MB7994:EE_
X-MS-Office365-Filtering-Correlation-Id: 37f09085-0e67-4857-158d-08ddd5cd26e1
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|7416014|366016|376014|13003099007|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?NExaNGVXdXJVMlVtejRnNU9yZEtOb0l0YkREUEdCeklMR3J1QnFwVllERjlR?=
 =?utf-8?B?TVVRZzZ6akdiUGtMdXpQeUFSVDkvL3liUWFCZmUxOTdzNHhBbkhTR0NVY1lt?=
 =?utf-8?B?bFJrYkExcnMzL2c0c3A1YzN1c1ZXaU1iMU9ObHg1K1kvRFBpT3dRbS8rNHUy?=
 =?utf-8?B?dXA1ZC85MWlzdjdwamI0Q1pzUU4vSXpNNEVHRHhpazFkK3AzWlVNWnhMODVB?=
 =?utf-8?B?SDVEWFJWUTZKRWd0STRqNll6REdQTXpyMUdBVTA2SUlaVHgrNE9SbHdrSUNS?=
 =?utf-8?B?aVY0RURIZHRVMnVBV0VTR3B6Zy9uRFEycHd0Kzl5Ym12U05VaWZ0RmZhUFVE?=
 =?utf-8?B?OGdDSDRXT09YUHBNeEV4OGE0aVorY0JnM0gzUDlaemVqNXRHY3VEYnR6ZGlq?=
 =?utf-8?B?R3FqUWdzU3RCL3dlSXlqWkFjcnhVS2dVQXlCMDlRUWhJbVA0V2djUEZQaEJw?=
 =?utf-8?B?YnJMTXNsOFllWHVLTEhybjlrOVY4MzRTSm9kS1lHeFdGalUycTNXbm04dHRN?=
 =?utf-8?B?eFVScS8vSk9rMUp0ZzNEQTFEYkNwMGVhcGRFZXBBdVpUTEx5YVg1bDduNFNs?=
 =?utf-8?B?aVcrUkN1eUIxU2UvVVN6WHVhaEE4alRoUm1ZTmxubmhrTDJiQjhNM0Z1MXpL?=
 =?utf-8?B?eU11a2hSSk9SWnU0czNjd05rNkh5Q055N3hrWFRWOGc3ZE5zSXdsSXFqYVds?=
 =?utf-8?B?VTczWVZEM2hBQWZHRmxTdW4yQm1PMTZGL1NpeEhveCt3UkhFTnk4RjJpaHcx?=
 =?utf-8?B?T0drbkZoOGVpU0hHdVdnWTN1L1FzVTlMb1VrTm1XakNRUlpUSEw0d21kN2Ra?=
 =?utf-8?B?N2lXSWZ0bkdiSXo5UDZWUlFRRnQ1Yk45bkNiZk1uRy9TbmZkWkhGWFlxVkZX?=
 =?utf-8?B?WFdRY0lRNkJnSUhhY1paaVM3TVdqOXovdEh1bGF5RDZtOG5TWjNSem42TnlR?=
 =?utf-8?B?TEZ4dU43OFpXSmo1V29UTEVzUWMxTWRjTmhXSDlvaWFqeGFId205dTNsN3RI?=
 =?utf-8?B?Y2VxS1RjZmRoK0ZEWTJGMGQvWjVCSzYyY29tblprQTdQR1UxdzlIYy9nSXIv?=
 =?utf-8?B?N3d4WC9HUDdSdDJyS3BVWU5keCtXSzd4TmYzMDcwYVhzWUVvdDlhcXpqZWM5?=
 =?utf-8?B?RkJtZHl3K2xIOC92YUp1TVF2djZwM2dkYzJwZkpacXNFd2FrWmhERHgwZUJ1?=
 =?utf-8?B?QktWZHNyN3N0ajYycjhhMDJ4L3o1d1JhM2JkaTE5R2ZXTUZKekJlRUtJSFVL?=
 =?utf-8?B?T0UvdFBsVWxOclFsZk1nb3VROUJhSjJ4VnkreWxNRy9scjB3UFdOWVI0T3ND?=
 =?utf-8?B?dnovbG1OeVNWODgzK0ZSdmtzQlhEdEFTbE9CYmJUSVN4TUt2MlUxTGVldXVp?=
 =?utf-8?B?WDZMamFLWWcwcTFLcFlMQXhZQTFPYjNEd3lpRFA4d3N1cE9STnNIQzVsdm1q?=
 =?utf-8?B?UXYvVEc0MGxwdGEycHVWbjVCSVBFVDdyVTJseHBUM1BGdldGcW5QSkhscUps?=
 =?utf-8?B?dTI5eVlFWnRrcXlZdmRaZjZpUjQ0VDhyeVpyOUpKRlN1UGVMUXdvYzhGNXlm?=
 =?utf-8?B?VjlyQlNoS2h5OU5JQ0JxbFdYZ21uTkliMERKSXVnVDNsSjBXQ0UyMGZSdnRJ?=
 =?utf-8?B?OWIzWHcwMnIzenVjN3dma05WclNxbEp2Ulgrejc3U3YySGk1b0xkNHE3UWdt?=
 =?utf-8?B?d0VNTm80eGh0MG50ejBPZUk3UFBtQjR4TEdZNU5FZTNFRXZaUk1qV24vL1pJ?=
 =?utf-8?B?VWVKZllVclYvSWprcVlqVGZybHVXWXB6bzFYcGFtbGQ0YnA2T2ZsSnFZQzRn?=
 =?utf-8?B?T2xqTXRBaU95bGVnN0NNQ0VZQk5tSFE5SVBrN1V4NGwyL0NmSy9JWFZpY1ND?=
 =?utf-8?B?WFJ4Ri9IWWlZdk9UbUllOHJOZksvaGdTeGtJbHE3VS9kRWlFQk5COHk0WTdu?=
 =?utf-8?Q?mupCBlY+oqhUTgMnuSsNyeNu1lASKm1f?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR08MB6588.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(366016)(376014)(13003099007)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <2DCBB3D376CCB448A93A7C1271EB434E@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB5651
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DU2PEPF00028D0C.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	ac04ca3c-63d7-45c8-68bb-08ddd5cd11fc
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|82310400026|1800799024|35042699022|36860700013|376014|7416014|7053199007|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bXNmazluRitGWHlJYmRBdHBheWk0akh4Q3RXWFJ0VVJLZjlqdFhraTRROFVC?=
 =?utf-8?B?N0d0U1Yvc0dyMFAxUjdzZU5JWVpnU05hMGZRdGNlY2R5ZnMvdi9Zd3kvMlZo?=
 =?utf-8?B?UjVCZEFtQmZjQytrWXptUFhXNlVZMGRVdkdZVnRYMlJpRk9qREh6d0lvc2RM?=
 =?utf-8?B?dm1kVitaaFZNN3EyT3BKNlVuaFVtbWhIMnQxYjRQMzUzcERKSHBWdThOSDVQ?=
 =?utf-8?B?OVRBRkpQdEFQR1N1TVFIekVleXc1WHdjdXh1K2xoblBjV29QK2piSThidzJ3?=
 =?utf-8?B?OE5haEdsY3NBMjROczZLOW9LMEZQNXpqZkk2Y0o0a3l1Q2hxNUZrRzR4bWFZ?=
 =?utf-8?B?RUF2NEtnMk81QllJNFc4Mm45TitPdW82Z21ZdkRjU1VIamhUSmZneGZBYm5U?=
 =?utf-8?B?YWFGa3hNSG5pSkJQV2pBUWRFdlFWelk1cndZNWo1WFNlb293T1Zja081Qk9Z?=
 =?utf-8?B?QnhVS0VpZDdUUFRTUzNPMGIydlBoSmJaWFpPL05iYmtqNDZXQVBESWREYm1U?=
 =?utf-8?B?ZFJqRlA0ejh0ZVFPekFrL0FvaHJiR1R2V2o2aU56Sy9XbG96RmZSZlQyWkVX?=
 =?utf-8?B?TzU0TFJJcWVPeGtUQzVqNElXaG9RWVVhRllLelMzYTFFYnBiOHhZOE1DSGpH?=
 =?utf-8?B?akdPc3pjdmU2U1lXbTJZOS9jZkZuRlEwd29KeUt2d1dMcEMzOUwybDRORVpl?=
 =?utf-8?B?UmdtTHErVk9TckpsYkJPVWJlQWVtOEFBMDhaVkVOdHo4aDhKYlp2S2Y3WGVu?=
 =?utf-8?B?dEFPcGkyUFdWamFKVXdESExIa1U4SDROQjk5b2ZUQ3RibVJrS0daTk5yVGxM?=
 =?utf-8?B?SkdGRS9hVnk0ZGRlajAxTk1tZHBiUXpRKzdtbW9SMGtTNFJUYnZ2enp6dFNC?=
 =?utf-8?B?dkphZVpLRG44NXlRbU5XNXR1Z3lKb3RRRTU2SzBKWENWY1M1UERtSDFJNm1i?=
 =?utf-8?B?L1hPb0djM25qM3l1TlUzUHlrUU1ubkxlQXMwSVNzam1MTzZES0h0VUM5V2lC?=
 =?utf-8?B?UWI5bHE0VmdTeWtUcU5qUHlDWVRQVzlUTHJqOUlYSmdxd2J4RmhSRlRRdmtV?=
 =?utf-8?B?UndENm1IVmIwMHdBZGpucTZ1MlNidm9zWXZTQmtsdkxHOVkxY2VTVk5vR1pB?=
 =?utf-8?B?RjNxczFLTll0RFNzanB5ZkxxN1U0Q3RpU0p4T3RPLzdJdGFxcE1CcDQ3QzIr?=
 =?utf-8?B?R2xFMlp2M2Q0ZnFmYWhTNVpJMUdmWVJNb1MvdllpREFrdnRiQVZrRG5tdW1h?=
 =?utf-8?B?dS9Gbmptb2JRYVg0Nk9odDRab1NGa09IanVxdkRMYnhQMUxtenVaRWxEOWh0?=
 =?utf-8?B?OEpCMUdKYnF1MjgwaGNoZXdHSHBvM1kreStHNGp4SDlOY0tJM3BUV3AvaTF6?=
 =?utf-8?B?YzZyY2dnMWVmVHBZTVRZNjNiZUQyUmhYcWkzaDlnY3BMdEFGd0c2TTNmNytx?=
 =?utf-8?B?WFhUcGd1WjdsbHJGSTFNV0UyQ2pUYXRBUllDNThzTHNxZWxES2ZnMmhsbkdC?=
 =?utf-8?B?d3hmMHU5US9rcENhZGhWUTc2TGp1TTQwbWJyNWVWRkQrcUlLWU5DT0lFSUJn?=
 =?utf-8?B?RWFRKzRrZ0pFdmplTkFlVCtyQ3RKSXZyZlptTzA2VWFHcG8rOUhKd1RtWjFo?=
 =?utf-8?B?ZEorVEQyRU13clNkdVRzc3pKdHU1WFNTUGZKN3NnTmNqSTdOblhTTXY2cTA1?=
 =?utf-8?B?YU0wSUxsTkZ6T0xWQWpMc2JCMDY2eS9EeWpyYU5LRHJrMlg0RGc0MVVsOWxO?=
 =?utf-8?B?UmNocmg0eFg3MTVoekREYmFjY3NQVmMxZkhva3dnVGg3M05seHRvS1JuOTQ1?=
 =?utf-8?B?SS9Ndno0OGdyZXBJQWgzditzNE82cGovOXJhYWllVkhKcGY0Ulg1RW9YQ1RH?=
 =?utf-8?B?TFRMVVlGYUQzdnFRWFc0OVh4dndBNVUzTVFXamNTM014ZmFvVHZ3QzVITzlp?=
 =?utf-8?B?NE1UWldhNWFMTXcxSHlzOVdUZElBTkpzVmNtZ1BBM1JXdU4xaU1abU42M0dC?=
 =?utf-8?B?YjlXUmlrOWVRPT0=?=
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)(82310400026)(1800799024)(35042699022)(36860700013)(376014)(7416014)(7053199007)(13003099007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Aug 2025 16:12:05.2690
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 37f09085-0e67-4857-158d-08ddd5cd26e1
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DU2PEPF00028D0C.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB7994

SGkgT2xla3NpaSwNCg0KPiBPbiA1IEF1ZyAyMDI1LCBhdCAxOToxOSwgT2xla3NpaSBLdXJvY2hr
byA8b2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20+IHdyb3RlOg0KPiANCj4gSGVsbG8gZXZlcnlv
bmUsDQo+IA0KPiBUaGlzIGVtYWlsIG9ubHkgdHJhY2tzIGJpZyBpdGVtcyBmb3IgeGVuLmdpdCB0
cmVlLiBQbGVhc2UgcmVwbHkgZm9yIGl0ZW1zIHlvdQ0KPiB3b3VsZCBsaWtlIHRvIHNlZSBpbiA0
LjIxIHNvIHRoYXQgcGVvcGxlIGhhdmUgYW4gaWRlYSB3aGF0IGlzIGdvaW5nIG9uIGFuZA0KPiBw
cmlvcml0aXNlIGFjY29yZGluZ2x5Lg0KPiANCj4gWW91J3JlIHdlbGNvbWUgdG8gcHJvdmlkZSBk
ZXNjcmlwdGlvbiBhbmQgdXNlIGNhc2VzIG9mIHRoZSBmZWF0dXJlIHlvdSdyZQ0KPiB3b3JraW5n
IG9uLg0KPiANCj4gPSBUaW1lbGluZSA9DQo+IA0KPiBUaGUgY3VycmVudCByZWxlYXNlIHNjaGVk
dWxlIGNvdWxkIGJlIGZvdW5kIGhlcmU6DQo+ICAgaHR0cHM6Ly93aWtpLnhlbnByb2plY3Qub3Jn
L3dpa2kvWGVuX1Byb2plY3RfWC5ZWV9SZWxlYXNlX05vdGVzDQo+IA0KPiBBbmQgYXMgYSByZW1p
bmRlciBJIHdvdWxkIGxpa2UgdG8gcmVtaW5kIGF0IHRoZSBvZiB0aGlzIHdlZWsgd2Ugd2lsbCBo
YXZlDQo+IExhc3QgcG9zdGluZyBkYXRlIChGcmkgQXVnIDA4LCAyMDI1KS4NCj4gDQo+ID0gVXBk
YXRlcyA9DQo+IA0KPiBUaGUgZm9sbG93aW5nIGl0ZW1zICggdGhlIGxpbmtzIGZvciB0aGVtIGNv
dWxkIGJlIGZvdW5kIGludCB0aGUgbGlzdCBiZWxvdyApDQo+IHdlcmUgbW92ZWQgdG8gY29tcGxl
dGVkOg0KPiAgIFtzaW5jZSBKdW4yIC0gQXVnNV06DQo+ICAgIEFkZGVkIHNvbWUgdGFnczogWzQu
MjFdLCBbbmV4dC1yZWwocyldIHRvIHRoZSBsaXN0ICJGdWxsIGxpc3Qgb2YgaXRlbXMiDQo+ICAg
IGJlbG93Lg0KPiAgICAqIHg4NjoNCj4gICAgIC0ga2V4ZWM6IGFkZCBrZXhlYyBzdXBwb3J0IHRv
IE1pbmktT1MuDQo+ICAgICAtIHg4NjogbWVtY3B5KCkgLyBtZW1zZXQoKSAobm9uLSlFUk1TIGZs
YXZvcnMgcGx1cyBmYWxsb3V0DQo+ICAgICogQXJtOg0KPiAgICAgLSBTTU1VIGhhbmRsaW5nIGZv
ciBQQ0llIFBhc3N0aHJvdWdoIG9uIEFSTS4NCj4gICAgIC0gQWRkIHN1cHBvcnQgZm9yIFItQ2Fy
IEdlbjQgUENJIGhvc3QgY29udHJvbGxlci4NCj4gICAgIC0gRmlyc3QgY2h1bmsgZm9yIEFybSBS
ODIgYW5kIE1QVSBzdXBwb3J0Lg0KPiAgICAgLSBFbmFibGUgUjUyIHN1cHBvcnQgZm9yIHRoZSBm
aXJzdCBjaHVuayBvZiBNUFUgc3VwcG9ydA0KPiAgICAgLSBBUk0gc3BsaXQgaGFyZHdhcmUgYW5k
IGNvbnRyb2wgZG9tYWlucy4NCj4gICAgKiBSSVNDLVY6DQo+ICAgICAtIEludHJvZHVjZSBiYXNp
YyBVQVJUIHN1cHBvcnQgYW5kIGludGVycnVwdHMgZm9yIGh5cGVydmlzb3IgbW9kZS4NCj4gDQo+
ICAgW3NpbmNlIE1heSA2IC0gSnVuMl06DQo+ICAgICAqIEh5cGVydmlzb3I6DQo+ICAgICAgIC0g
dG9vbHM6IHJlbW92ZSBxZW11LXRyYWRpdGlvbmFsDQo+ICAgICAqIEFybToNCj4gICAgICAgLSBQ
Q0kgZGV2aWNlcyBwYXNzdGhyb3VnaCBvbiBBcm0sIHBhcnQgMw0KPiAgICAgKiB4ODY6DQo+ICAg
ICAgIC0geGVuOiBjYWNoZSBjb250cm9sIGltcHJvdmVtZW50cw0KPiAgIFtzaW5jZSA0LjIwIHJl
bGVzZSAtIE1heSA2XToNCj4gICAgICogSHlwZXJ2aXNvcjoNCj4gICAgICAgLSBNb3ZlIHBhcnRz
IG9mIEFybSdzIERvbTBsZXNzIHRvIGNvbW1vbiBjb2RlDQo+ICAgICAgIC0gcmVtb3ZlIGxpYnhl
bmN0cmwgdXNhZ2UgZnJvbSB4ZW5zdG9yZWQNCj4gICAgICogQXJtOg0KPiAgICAgICAtIEVuYWJs
ZSBlYXJseSBib290dXAgb2YgQXJtdjgtUiBBQXJjaDMyIHN5c3RlbXMNCj4gICAgICogeDg2Og0K
PiAgICAgICAtIHg4Ni9IVk06IGVtdWxhdGlvbiAoTU1JTykgaW1wcm92ZW1lbnRzDQo+ICAgICAq
IFJJU0MtVjoNCj4gICAgICAgLSBSSVNDLVYgc29tZSBwcmVpbml0IGNhbGxzLg0KPiAgICAgICAt
IEZpeGVzIGZvciBVQlNBTiAmIEdDT1Ygc3VwcG9ydCBmb3IgUklTQy1WLg0KPiANCj4gU29tZSBu
ZXcgaXRlbXMgYWRkZWQ6DQo+ICBbc2luY2UgTWF5XQ0KPiAgICAgKiB4ODY6DQo+ICAgICAgLSBB
bGxvdyB4ODYgdG8gdW5mbGF0dGVuIERUcw0KPiAgICAgIC0gaHlwZXJsYXVuY2g6IG1vdmUgcmVt
YWluaW5nIHB2aCBkb20wIGNvbnN0cnVjdGlvbg0KPiAgICAgIC0geDg2L2h5cGVybGF1bmNoOiBp
bnRyb2R1Y2UgY29uY2VwdCBvZiBjb3JlIGRvbWFpbnMNCj4gICAgICAtIENvbmZpZGVudGlhbCBj
b21wdXRpbmcgYW5kIEFNRCBTRVYgc3VwcG9ydA0KPiAgICAgKiBBcm06DQo+ICAgICAgLSBTTU1V
IGhhbmRsaW5nIGZvciBQQ0llIFBhc3N0aHJvdWdoIG9uIEFSTQ0KPiAgICAgIC0geGVuL2FybTog
c2NtaTogaW50cm9kdWNlIFNDSSBTQ01JIFNNQyBtdWx0aS1hZ2VudCBzdXBwb3J0DQo+ICAgICAg
LSBBZGQgaW5pdGlhbCBYZW4gU3VzcGVuZC10by1SQU0gc3VwcG9ydCBvbiBBUk02NA0KPiAgICAg
KiBSSVNDLVY6DQo+ICAgICAgLSBpbnRyb2R1Y2UgcDJtIGZ1bmN0aW9uYWxpdHkNCj4gIFtzaW5j
ZSA0LjIwIHJlbGVhc2VdDQo+ICAgICAqIEh5cGVydmlzb3I6DQo+ICAgICAgIC0gdG9vbHM6IHJl
bW92ZSBxZW11LXRyYWRpdGlvbmFsDQo+ICAgICAgIC0gUGh5c2ljYWwgYWRkcmVzcyBoeXBlcmNh
bGwgQUJJICgiSFZNdjIiKQ0KPiAgICAgICAtIHhlbjogVW50YW5nbGUgbW0uaA0KPiAgICAgICAt
IHhlbjogaW50cm9kdWNlIENPTkZJR19TWVNDVEwNCj4gICAgICAgLSBBZGQgc3VwcG9ydCBmb3Ig
ZXhhY3Qtbm9kZSBtZW1vcnkgY2xhaW1zDQo+ICAgICAgIC0gU2V2ZXJhbCBDSSBjbGVhbnVwcyBh
bmQgaW1wcm92ZW1lbnRzLCBwbHVzIHlldCBhbm90aGVyIG5ldyBydW5uZXINCj4gICAgICogeDg2
Og0KPiAgICAgICAtIHg4Ni9FRkk6IHByZXZlbnQgd3JpdGUtZXhlY3V0ZSBzZWN0aW9ucw0KPiAg
ICAgICAtIHg4NjogVHJlbmNoYm9vdCBTZWN1cmUgTGF1bmNoIERSVE0gKFhlbikNCj4gICAgICAg
LSBIeXBlcmxhdW5jaCBkZXZpY2UgdHJlZSBmb3IgZG9tMCAodjYpDQo+ICAgICAgIC0gYW1kLWNw
cGMgQ1BVIFBlcmZvcm1hbmNlIFNjYWxpbmcgRHJpdmVyICh2NCkNCj4gICAgICAgLSBIeXBlcmxh
dW5jaCBkb21haW4gYnVpbGRlcg0KPiAgICAgICAtIGtleGVjOiBhZGQga2V4ZWMgc3VwcG9ydCB0
byBNaW5pLU9TDQo+ICAgICAgIC0geGVuOiBjYWNoZSBjb250cm9sIGltcHJvdmVtZW50cyAoc2hv
dWxkIGJlIG1vdmVkIHRvICJIeXBlcnZpc29yIj8pDQo+ICAgICAgIC0geDg2OiBnZW5lcmF0ZSB4
ZW4uZWZpIGltYWdlIHdpdGggbm8gd3JpdGUtZXhlY3V0ZSBzZWN0aW9ucw0KPiAgICAgICAtIHg4
Ni9hc206IGNsZWFudXBzIGFmdGVyIHRvb2xjaGFpbiBiYXNlbGluZSB1cGdyYWRlDQo+ICAgICAq
IEFybToNCj4gICAgICAgLSBBZGQgc3VwcG9ydCBmb3IgUi1DYXIgR2VuNCBQQ0kgaG9zdCBjb250
cm9sbGVyICh2NCkNCj4gICAgICAgLSBGRi1BIFZNIHRvIFZNIHN1cHBvcnQgKHY1KQ0KDQpUaGlz
IHNlcmllIGlzIGN1cnJlbnRseSB1bmRlciByZXZpZXcgYXQgdjcgYW5kIHNob3VsZCBiZSBtZXJn
ZWQgYmVmb3JlIHRoZSByZWxlYXNlLg0KSSBoYXZlIGFuIG90aGVyIG9uZSBwZW5kaW5nIGZvciBG
Ri1BIHYxLjIgc3VwcG9ydCB0aGF0IGkgbmVlZCB0byBwdXNoIG9uY2UgdGhpcyBvbmUNCmlzIG1l
cmdlZCBidXQgaXQgd2lsbCBoYXZlIHRvIHdhaXQgYWZ0ZXIgdGhlIHJlbGVhc2UgZm9yIG5vdy4N
Cg0KQ2hlZXJzDQpCZXJ0cmFuZA0KDQo+ICAgICAgIC0gRmlyc3QgY2h1bmsgZm9yIEFybSBSODIg
YW5kIE1QVSBzdXBwb3J0ICh2NCkNCj4gICAgICAgLSBBUk0gc3BsaXQgaGFyZHdhcmUgYW5kIGNv
bnRyb2wgZG9tYWlucyAodjUpDQo+ICAgICAgIC0gTVBVIG1tIHN1YnNpc3RlbSBza2VsZXRvbg0K
PiAgICAgKiBSSVNDLVY6DQo+ICAgICAgIC0gaW50cm9kdWNlIGJhc2ljIFVBUlQgc3VwcG9ydCBh
bmQgaW50ZXJydXB0cyBmb3IgaHlwZXJ2aXNvciBtb2RlDQo+IA0KPiAqIEZ1bGwgbGlzdCBvZiBp
dGVtcyA6ICoNCj4gDQo+ID0gUHJvamVjdHMgPQ0KPiANCj4gPT0gSHlwZXJ2aXNvciA9PQ0KPiAN
Cj4gKiBbNC4yMV0geGVuL2NvbnNvbGU6IGNsZWFudXAgY29uc29sZSBpbnB1dCBzd2l0Y2ggbG9n
aWMgKHY1KQ0KPiAgIC0gRGVuaXMgTXVraGluDQo+ICAgLSBodHRwczovL2xvcmUua2VybmVsLm9y
Zy94ZW4tZGV2ZWwvMjAyNTA1MzAyMzE4NDEuNzMzODYtMS1kbXVraGluQGZvcmQuY29tLw0KPiAN
Cj4gKiBbNC4yMV0geGVuOiBpbnRyb2R1Y2UgQ09ORklHX1NZU0NUTCAodjQgLT4gdjgpDQo+ICAg
LSAgUGVubnkgWmhlbmcNCj4gICAtIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3hlbi1kZXZlbC8y
MDI1MDcxMTA0MzE1OC4yNTY2ODgwLTEtUGVubnkuWmhlbmdAYW1kLmNvbS8NCj4gDQo+ICogWzQu
MjFdIFNldmVyYWwgQ0kgY2xlYW51cHMgYW5kIGltcHJvdmVtZW50cywgcGx1cyB5ZXQgYW5vdGhl
ciBuZXcgcnVubmVyDQo+ICAgLSBNYXJlayBNYXJjenlrb3dza2ktR8OzcmVja2kNCj4gICAtIGh0
dHBzOi8vbG9yZS5rZXJuZWwub3JnL3hlbi1kZXZlbC9jb3Zlci43ZGExNzc3ODgyNzc0NDg2YTEz
ZTZmMzlmZjRhMjA5NmY2Yjc5MDFlLjE3NDQwMjg1NDkuZ2l0LXNlcmllcy5tYXJtYXJla0BpbnZp
c2libGV0aGluZ3NsYWIuY29tLw0KPiAgIC0gaHR0cHM6Ly9wYXRjaGV3Lm9yZy9YZW4vY292ZXIu
N2RhMTc3Nzg4Mjc3NDQ4NmExM2U2ZjM5ZmY0YTIwOTZmNmI3OTAxZS4xNzQ0MDI4NTQ5LmdpdC1z
ZXJpZXMubWFybWFyZWtAaW52aXNpYmxldGhpbmdzbGFiLmNvbS8NCj4gDQo+ICogWzQuMjFdIGF1
dG9tYXRpb246IFJlZnJlc2ggdGhlIHJlbWFpbmluZyBEZWJpYW4gY29udGFpbmVycyAodjIpDQo+
ICAgLSAgSmF2aSBNZXJpbm8NCj4gICAtIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3hlbi1kZXZl
bC9jb3Zlci4xNzMwNzQzMDc3LmdpdC5qYXZpLm1lcmlub0BjbG91ZC5jb20vVC8jbTVkOWFjYjdj
ZjVkYjNjMmJlM2Q2NTI3ZGUxNGI2OWIwNzgxMjMxNGUNCj4gDQo+ICogWzQuMjFdIE1TSS1YIHN1
cHBvcnQgd2l0aCBxZW11IGluIHN0dWJkb21haW4sIGFuZCBvdGhlciByZWxhdGVkIGNoYW5nZXMg
KHY4KQ0KPiAgIC0gIE1hcmVrIE1hcmN6eWtvd3NraS1Hw7NyZWNraQ0KPiAgIC0gaHR0cHM6Ly9s
b3JlLmtlcm5lbC5vcmcveGVuLWRldmVsL2NvdmVyLjMzZmI0Mzg1YjdkZDZjNTNiZGE0YWNmMGE5
ZTkxNzQ4YjNkN2IxZjcuMTcxNTMxMzE5Mi5naXQtc2VyaWVzLm1hcm1hcmVrQGludmlzaWJsZXRo
aW5nc2xhYi5jb20vDQo+ICAgLSAgT25seSBhdXRvbWF0aW9uIHBhdGNoIGxlZnQgdG8gYmUgcmV2
aWV3ZWQvbWVyZ2VkLg0KPiANCj4gKiBbbmV4dC1yZWwocyldIFBoeXNpY2FsIGFkZHJlc3MgaHlw
ZXJjYWxsIEFCSSAoIkhWTXYyIikNCj4gICAtIFRlZGR5IEFzdGllDQo+ICAgLSBodHRwczovL2xv
cmUua2VybmVsLm9yZy94ZW4tZGV2ZWwvY292ZXIuMTc0NDk4MTY1NC5naXQudGVkZHkuYXN0aWVA
dmF0ZXMudGVjaC8NCj4gDQo+ICogW25leHQtcmVsKHMpXSB4ZW46IFVudGFuZ2xlIG1tLmgNCj4g
ICAtICBBbmRyZXcgQ29vcGVyDQo+ICAgLSBodHRwczovL2xvcmUua2VybmVsLm9yZy94ZW4tZGV2
ZWwvMjAyNTAzMTIxNzQ1MTMuNDA3NTA2Ni0xLWFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20vDQo+
ICAgLSBodHRwczovL3BhdGNoZXcub3JnL1hlbi8yMDI1MDMxMjE3NDUxMy40MDc1MDY2LTEtYW5k
cmV3LmNvb3BlcjNAY2l0cml4LmNvbS8NCj4gDQo+ICogW25leHQtcmVsKHMpXSBBZGQgc3VwcG9y
dCBmb3IgZXhhY3Qtbm9kZSBtZW1vcnkgY2xhaW1zDQo+ICAgLSAgQWxlamFuZHJvIFZhbGxlam8N
Cj4gICAtIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3hlbi1kZXZlbC8yMDI1MDMxNDE3MjUwMi41
MzQ5OC0xLWFsZWphbmRyby52YWxsZWpvQGNsb3VkLmNvbS8NCj4gICAtIGh0dHBzOi8vcGF0Y2hl
dy5vcmcvWGVuLzIwMjUwMzE0MTcyNTAyLjUzNDk4LTEtYWxlamFuZHJvLnZhbGxlam9AY2xvdWQu
Y29tLw0KPiANCj4gKiBbbmV4dC1yZWwocyldIFJlbW92ZSB0aGUgZGlyZWN0bWFwICh2NSkNCj4g
ICAtICBBbGVqYW5kcm8gVmFsbGVqbw0KPiAgIC0gaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcveGVu
LWRldmVsLzIwMjUwMTA4MTUxODIyLjE2MDMwLTEtYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29t
Lw0KPiAgIC0gaHR0cHM6Ly9wYXRjaGV3Lm9yZy9YZW4vMjAyNTAxMDgxNTE4MjIuMTYwMzAtMS1h
bGVqYW5kcm8udmFsbGVqb0BjbG91ZC5jb20vDQo+IA0KPiAqIFtuZXh0LXJlbChzKV0gR1JVQjog
U3VwcG9ydGluZyBTZWN1cmUgQm9vdCBvZiB4ZW4uZ3ogKHYxKQ0KPiAgIC0gIFJvc3MgTGFnZXJ3
YWxsDQo+ICAgLSBodHRwczovL3BhdGNoZXcub3JnL1hlbi8yMDI0MDMxMzE1MDc0OC43OTEyMzYt
MS1yb3NzLmxhZ2Vyd2FsbEBjaXRyaXguY29tLw0KPiANCj4gKiBbbmV4dC1yZWwocyldIEludHJv
ZHVjZSB4ZW5iaW5kZ2VuIHRvIGF1dG9nZW4gaHlwZXJjYWxsIHN0cnVjdHMgKHYxKQ0KPiAgIC0g
IEFsZWphbmRybyBWYWxsZWpvDQo+ICAgLSBodHRwczovL3BhdGNoZXcub3JnL1hlbi8yMDI0MTEx
NTExNTIwMC4yODI0LTEtYWxlamFuZHJvLnZhbGxlam9AY2xvdWQuY29tLw0KPiANCj4gKiBbbmV4
dC1yZWwocyldIEludHJvZHVjZSBOUzgyNTAgVUFSVCBlbXVsYXRvciAodjIpDQo+ICAgLSAgRGVu
aXMgTXVraGluDQo+ICAgLSBodHRwczovL3BhdGNoZXcub3JnL1hlbi8yMDI0MTIwNS12dWFydC1u
czgyNTAtdjEtMC1lOWFhOTIzMTI3ZWJAZm9yZC5jb20vDQo+IA0KPiAqIFtuZXh0LXJlbChzKV0g
eGVuOiBmcmFtZXdvcmsgZm9yIFVBUlQgZW11bGF0b3JzDQo+ICAgLSBEZW5pcyBNdWtoaW4NCj4g
ICAtIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3hlbi1kZXZlbC8yMDI1MDYyNDAzNTQ0My4zNDQw
OTktMS1kbXVraGluQGZvcmQuY29tLw0KPiANCj4gPT09IHg4NiA9PT0NCj4gKiBbNC4yMV0geDg2
L2FzbTogY2xlYW51cHMgYWZ0ZXIgdG9vbGNoYWluIGJhc2VsaW5lIHVwZ3JhZGUgKHYxIC0+IHYy
KQ0KPiAgIC0gRGVuaXMgTXVraGluDQo+ICAgLSBodHRwczovL2xvcmUua2VybmVsLm9yZy94ZW4t
ZGV2ZWwvMjAyNTA0MDMxODIyNTAuMzMyOTQ5OC0xLWRtdWtoaW5AZm9yZC5jb20vDQo+ICAgLSBo
dHRwczovL3BhdGNoZXcub3JnL1hlbi8yMDI1MDQwMzE4MjI1MC4zMzI5NDk4LTEtZG11a2hpbkBm
b3JkLmNvbS8NCj4gDQo+ICogWzQuMjE/XSB4ODYvZWZpOiBGaXggYm9vdGluZyB3aGVuIE5YIGlz
IGRpc2FibGVkICh2MSAtPiB2MikNCj4gICAtIEFuZHJldyBDb29wZXINCj4gICAtIGh0dHBzOi8v
cGF0Y2hldy5vcmcvWGVuLzIwMjQwNzIyMTAxODM4LjM5NDY5ODMtMS1hbmRyZXcuY29vcGVyM0Bj
aXRyaXguY29tLw0KPiAgIC0gaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcveGVuLWRldmVsLzIwMjQw
NzIyMTAxODM4LjM5NDY5ODMtMS1hbmRyZXcuY29vcGVyM0BjaXRyaXguY29tLw0KPiANCj4gKiBb
NC4yMT9dIEh5cGVybGF1bmNoIGRldmljZSB0cmVlIGZvciBkb20wICh2NikNCj4gICAtIEFsZWph
bmRybyBWYWxsZWpvDQo+ICAgLSBodHRwczovL3BhdGNoZXcub3JnL1hlbi8yMDI1MDQyOTEyMzYy
OS4yMDgzOS0xLWFnYXJjaWF2QGFtZC5jb20vDQo+ICAgLSBodHRwczovL2xvcmUua2VybmVsLm9y
Zy94ZW4tZGV2ZWwvMjAyNTA0MjkxMjM2MjkuMjA4MzktMS1hZ2FyY2lhdkBhbWQuY29tLw0KPiAN
Cj4gKiAgWzQuMjE/XSBCb290IG1vZHVsZXMgZm9yIEh5cGVybGF1bmNoICh2OSkNCj4gICAtICBE
YW5pZWwgUC4gU21pdGgNCj4gICAtIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3hlbi1kZXZlbC8y
MDI0MTExNTEzMTIwNC4zMjEzNS0xLWRwc21pdGhAYXBlcnR1c3NvbHV0aW9ucy5jb20vDQo+ICAg
LSBodHRwczovL3BhdGNoZXcub3JnL1hlbi8yMDI0MTExNTEzMTIwNC4zMjEzNS0xLWRwc21pdGhA
YXBlcnR1c3NvbHV0aW9ucy5jb20vDQo+IA0KPiAqICBbNC4yMT9dIEFkZHJlc3MgU3BhY2UgSXNv
bGF0aW9uIEZQVSBwcmVwYXJhdGlvbnMgKHYyLT52MykNCj4gICAtICBBbGVqYW5kcm8gVmFsbGVq
bw0KPiAgIC0gaHR0cHM6Ly9wYXRjaGV3Lm9yZy9YZW4vMjAyNTAxMTAxMzI4MjMuMjQzNDgtMS1h
bGVqYW5kcm8udmFsbGVqb0BjbG91ZC5jb20vDQo+IA0KPiAqIFtuZXh0LXJlbChzKV0gSHlwZXJs
YXVuY2ggZG9tYWluIGJ1aWxkZXINCj4gICAtIERhbmllbCBQLiBTbWl0aA0KPiAgIC0gaHR0cHM6
Ly9sb3JlLmtlcm5lbC5vcmcveGVuLWRldmVsLzIwMjUwNTE1MTMxNzQ0LjM4NDMtMS1kcHNtaXRo
QGFwZXJ0dXNzb2x1dGlvbnMuY29tLw0KPiANCj4gKiBbbmV4dC1yZWwocyldIENvbmZpZGVudGlh
bCBjb21wdXRpbmcgYW5kIEFNRCBTRVYgc3VwcG9ydA0KPiAgIC0gVGVkZHkgQXN0aWUNCj4gICAt
IGh0dHBzOi8vcGF0Y2hldy5vcmcvWGVuL2NvdmVyLjE3NDczMTIzOTQuZ2l0LnRlZGR5LmFzdGll
QHZhdGVzLnRlY2gvDQo+ICAgLSBodHRwczovL2xvcmUua2VybmVsLm9yZy94ZW4tZGV2ZWwvY292
ZXIuMTc0NzMxMjM5NC5naXQudGVkZHkuYXN0aWVAdmF0ZXMudGVjaC8NCj4gDQo+ICogW25leHQt
cmVsKHMpXSBhbWQtY3BwYyBDUFUgUGVyZm9ybWFuY2UgU2NhbGluZyBEcml2ZXIgKHY1IC0+IHY2
KQ0KPiAgIC0gUGVubnkgWmhlbmcNCj4gICAtIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3hlbi1k
ZXZlbC8yMDI1MDcxMTAzNTEwNi4yNTQwNTIyLTEtUGVubnkuWmhlbmdAYW1kLmNvbS8NCj4gDQo+
ICogW25leHQtcmVsKHMpXSB4ODY6IFRyZW5jaGJvb3QgU2VjdXJlIExhdW5jaCBEUlRNIChYZW4p
ICh2MSAtPiB2MykNCj4gICAtIFNlcmdpaSBEbXl0cnVrDQo+ICAgLSBodHRwczovL3BhdGNoZXcu
b3JnL1hlbi9jb3Zlci4xNzQ1MTcyMDk0LmdpdC5zZXJnaWkuZG15dHJ1a0AzbWRlYi5jb20vDQo+
ICAgLSBodHRwczovL2xvcmUua2VybmVsLm9yZy94ZW4tZGV2ZWwvY292ZXIuMTc0ODYxMTA0MS5n
aXQuc2VyZ2lpLmRteXRydWtAM21kZWIuY29tLw0KPiANCj4gKiBbbmV4dC1yZWwocyldIHg4Ni9F
Rkk6IHByZXZlbnQgd3JpdGUtZXhlY3V0ZSBzZWN0aW9ucw0KPiAgIC0gUm9nZXIgUGF1IE1vbm5l
IDxyb2dlci5wYXVAY2l0cml4LmNvbT4NCj4gICAtIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3hl
bi1kZXZlbC8yMDI1MDQwMTEzMDg0MC43MjExOS0xLXJvZ2VyLnBhdUBjaXRyaXguY29tLw0KPiAN
Cj4gKiBbbmV4dC1yZWwocyldIHg4NjogZ2VuZXJhdGUgeGVuLmVmaSBpbWFnZSB3aXRoIG5vIHdy
aXRlLWV4ZWN1dGUgc2VjdGlvbnMNCj4gICAtIFJvZ2VyIFBhdSBNb25uZQ0KPiAgIC0gaHR0cHM6
Ly9sb3JlLmtlcm5lbC5vcmcveGVuLWRldmVsLzIwMjUwMzE4MTczNTQ3LjU5NDc1LTEtcm9nZXIu
cGF1QGNpdHJpeC5jb20vDQo+IA0KPiAqICBbbmV4dC1yZWwocyldIEV4cG9zZSBjb25zaXN0ZW50
IHRvcG9sb2d5IHRvIGd1ZXN0cyAodjcpDQo+ICAgLSAgQWxlamFuZHJvIFZhbGxlam8NCj4gICAt
IGh0dHBzOi8vcGF0Y2hldy5vcmcvWGVuLzIwMjQxMDIxMTU0NjAwLjExNzQ1LTEtYWxlamFuZHJv
LnZhbGxlam9AY2xvdWQuY29tLw0KPiANCj4gKiAgW25leHQtcmVsKHMpXSB4ODYvYWx0ZXJuYXRp
dmVzOiBBZGp1c3QgYWxsIGluc24tcmVsYXRpdmUgZmllbGRzICh2MikNCj4gICAtICBBbmRyZXcg
Q29vcGVyDQo+ICAgLSBodHRwczovL2xvcmUua2VybmVsLm9yZy94ZW4tZGV2ZWwvMjAyNDEwMDIx
NTI3MjUuMTg0MTU3NS0xLWFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20vVC8jbWFjMmRlYWVhN2Uw
MmEzNDMyMTBkNjE4ODc0ODY0MzNkOTQ2YWQxMjkNCj4gDQo+ICogIFtuZXh0LXJlbChzKV0geDg2
ZW11bDogbWlzYyBhZGRpdGlvbnMgKHY3KQ0KPiAgIC0gIEphbiBCZXVsaWNoDQo+ICAgLSBodHRw
czovL3BhdGNoZXcub3JnL1hlbi8zYTI1Y2Q1OS1lMWNiLTRiZmMtYjg2OC1mYjExNTk5ZDIyZjVA
c3VzZS5jb20vDQo+IA0KPiAqICBbbmV4dC1yZWwocyldIHg4Njogc3VwcG9ydCBBVlgxMCAodjMp
DQo+ICAgLSAgSmFuIEJldWxpY2gNCj4gICAtIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3hlbi1k
ZXZlbC81MTZiN2Y5YS0wNDhlLTQwOWQtOGE0ZS04OWFlYjhmZmFjYzRAc3VzZS5jb20vDQo+ICAg
LSBodHRwczovL3BhdGNoZXcub3JnL1hlbi81MTZiN2Y5YS0wNDhlLTQwOWQtOGE0ZS04OWFlYjhm
ZmFjYzRAc3VzZS5jb20vDQo+IA0KPiAqICBbbmV4dC1yZWwocyldIFZULWQ6IFNBVEMgaGFuZGxp
bmc7IEFUUzogdGlkeWluZyAodjIpDQo+ICAgLSAgSmFuIEJldWxpY2gNCj4gICAtIGh0dHBzOi8v
cGF0Y2hldy5vcmcvWGVuLzY0YjAyOGJlLTIxOTctNDk1MS1hZTViLTMyZjllYWJmYTg0YUBzdXNl
LmNvbS8NCj4gDQo+ICogIFtuZXh0LXJlbChzKV0geDg2OiBwYXJhbGxlbGl6ZSBBUCBicmluZy11
cCBkdXJpbmcgYm9vdCAodjEpDQo+ICAgLSAgS3J5c3RpYW4gSGViZWwNCj4gICAtIGh0dHBzOi8v
bG9yZS5rZXJuZWwub3JnL3hlbi1kZXZlbC9jb3Zlci4xNjk5OTgyMTExLmdpdC5rcnlzdGlhbi5o
ZWJlbEAzbWRlYi5jb20vDQo+IA0KPiAqICBbbmV4dC1yZWwocyldIHg4Ni9zcGVjLWN0cmw6IElC
UEIgaW1wcm92ZW1lbnRzICh2NCkNCj4gICAtICBKYW4gQmV1bGljaA0KPiAgIC0gaHR0cHM6Ly9w
YXRjaGV3Lm9yZy9YZW4vMDY1OTFiNjQtMmYwNS1hNGNjLWEyZjMtYTc0YzNjNGE3NmQ2QHN1c2Uu
Y29tLw0KPiANCj4gKiAgW25leHQtcmVsKHMpXSBNb3ZlIHNvbWUgYm9vdCBjb2RlIGZyb20gYXNz
ZW1ibHkgdG8gQyAodjIpDQo+ICAgLSAgRnJlZGlhbm8gWmlnbGlvDQo+ICAgLSBodHRwczovL2xv
cmUua2VybmVsLm9yZy94ZW4tZGV2ZWwvMjAyNDExMjIwOTMzNTguNDc4Nzc0LTEtZnJlZGlhbm8u
emlnbGlvQGNsb3VkLmNvbS8NCj4gICAtIGh0dHBzOi8vcGF0Y2hldy5vcmcvWGVuLzIwMjQxMTIy
MDkzMzU4LjQ3ODc3NC0xLWZyZWRpYW5vLnppZ2xpb0BjbG91ZC5jb20vDQo+IA0KPiAqICBbbmV4
dC1yZWwocyldYW1kLXBzdGF0ZSBDUFUgUGVyZm9ybWFuY2UgU2NhbGluZyBEcml2ZXIgKHYxKQ0K
PiAgIC0gIFBlbm55IFpoZW5nDQo+ICAgLSBodHRwczovL3BhdGNoZXcub3JnL1hlbi8yMDI0MTIw
MzA4MTExMS40NjM0MDAtMS1QZW5ueS5aaGVuZ0BhbWQuY29tLw0KPiAgIC0gaHR0cHM6Ly9sb3Jl
Lmtlcm5lbC5vcmcveGVuLWRldmVsLzU5M2JhZWUyLTliZjEtNGRiNC04NmU4LTAxNWNhZTQ4ZGMx
YUBzdXNlLmNvbS8NCj4gDQo+ICogW25leHQtcmVsKHMpXSB4ODY6IGFkdmVudHVyZXMgaW4gQWRk
cmVzcyBTcGFjZSBJc29sYXRpb24NCj4gICAtIFJvZ2VyIFBhdSBNb25uZSA8cm9nZXIucGF1QGNp
dHJpeC5jb20+DQo+ICAgLSBodHRwczovL2xvcmUua2VybmVsLm9yZy94ZW4tZGV2ZWwvMjAyNTAx
MDgxNDI2NTkuOTk0OTAtMS1yb2dlci5wYXVAY2l0cml4LmNvbS8NCj4gDQo+ID09PSBBUk0gPT09
DQo+IA0KPiAqIFs0LjIxP10gTVBVIG1tIHN1YnNpc3RlbSBza2VsZXRvbg0KPiAgIC0gTHVjYSBG
YW5jZWxsdQ0KPiAgIC0gaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcveGVuLWRldmVsLzIwMjUwMzEy
MTM1MjU4LjE4MTU3MDYtMS1sdWNhLmZhbmNlbGx1QGFybS5jb20vDQo+ICAgLSBodHRwczovL3Bh
dGNoZXcub3JnL1hlbi8yMDI1MDMxMjEzNTI1OC4xODE1NzA2LTEtbHVjYS5mYW5jZWxsdUBhcm0u
Y29tLw0KPiANCj4gKiBbNC4yMT9dIEFkZCBpbml0aWFsIFhlbiBTdXNwZW5kLXRvLVJBTSBzdXBw
b3J0IG9uIEFSTTY0ICh2NCkNCj4gICAtIE15a29sYSBLdmFjaA0KPiAgIC0gaHR0cHM6Ly9sb3Jl
Lmtlcm5lbC5vcmcveGVuLWRldmVsL2NvdmVyLjE3NDg4NDg0ODIuZ2l0Lm15a29sYV9rdmFjaEBl
cGFtLmNvbS8NCj4gDQo+ICogWzQuMjE/XSB4ZW4vYXJtOiBzY21pOiBpbnRyb2R1Y2UgU0NJIFND
TUkgU01DIG11bHRpLWFnZW50IHN1cHBvcnQgKC0+djQpDQo+ICAgLSBPbGVrc2lpIE1vaXNpZWll
dg0KPiAgIC0gaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcveGVuLWRldmVsL2NvdmVyLjE3NTMxODQ0
ODcuZ2l0Lm9sZWtzaWlfbW9pc2llaWV2QGVwYW0uY29tLw0KPiANCj4gKiBbbmV4dC1yZWwocyld
IEZGLUEgVk0gdG8gVk0gc3VwcG9ydCAodjYpDQo+ICAgLSBCZXJ0cmFuZCBNYXJxdWlzIDxiZXJ0
cmFuZC5tYXJxdWlzQGFybS5jb20+DQo+ICAgLSBodHRwczovL2xvcmUua2VybmVsLm9yZy94ZW4t
ZGV2ZWwvY292ZXIuMTc0NzkyNTI4Ny5naXQuYmVydHJhbmQubWFycXVpc0Bhcm0uY29tLw0KPiAg
IC0gaHR0cHM6Ly9wYXRjaGV3Lm9yZy9YZW4vY292ZXIuMTc0NzkyNTI4Ny5naXQuYmVydHJhbmQu
bWFycXVpc0Bhcm0uY29tLw0KPiANCj4gKiAgW25leHQtcmVsKHMpXSBBZGQgVmlydGlvLVBDSSBm
b3IgZG9tMGxlc3Mgb24gQVJNICh2MSkNCj4gICAtICBFZGdhciBFLiBJZ2xlc2lhcw0KPiAgIC0g
aHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcveGVuLWRldmVsLzIwMjQwOTI0MTYyMzU5LjEzOTA0ODct
MS1lZGdhci5pZ2xlc2lhc0BnbWFpbC5jb20vVC8jbWZhMTQ4OTkxYjk0MDhmMjIzYTA3OWQ0Y2Vm
NjEwMjQ0ZDViMDRjMmINCj4gICAtIGh0dHBzOi8vcGF0Y2hldy5vcmcvWGVuLzIwMjQwOTI0MTYy
MzU5LjEzOTA0ODctMS1lZGdhci5pZ2xlc2lhc0BnbWFpbC5jb20vDQo+IA0KPiAqICBbbmV4dC1y
ZWwocyldIERPTUNUTC1iYXNlZCBndWVzdCBtYWdpYyByZWdpb24gYWxsb2NhdGlvbiBmb3IgMTEg
ZG9tVXMgKHY0KQ0KPiAgIC0gIEhlbnJ5IFdhbmcNCj4gICAtIGh0dHBzOi8vcGF0Y2hldy5vcmcv
WGVuLzIwMjQwNDA5MDQ1MzU3LjIzNjgwMi0xLXhpbi53YW5nMkBhbWQuY29tLw0KPiANCj4gPT09
IFJJU0NWID09PQ0KPiANCj4gKiBbNC4yMV0geGVuL3Jpc2N2OiBpbnRyb2R1Y2UgcDJtIGZ1bmN0
aW9uYWxpdHkgKHYxLT52MykNCj4gICAtIE9sZWtzaWkgS3Vyb2Noa28NCj4gICAtIGh0dHBzOi8v
bG9yZS5rZXJuZWwub3JnL3hlbi1kZXZlbC9jb3Zlci4xNzUzOTczMTYxLmdpdC5vbGVrc2lpLmt1
cm9jaGtvQGdtYWlsLmNvbS9ULyN0DQo+IA0KPiA9PT0gUFBDID09PQ0KPiANCj4gKiAgRWFybHkg
Qm9vdCBBbGxvY2F0aW9uIG9uIFBvd2VyICh2NSkNCj4gICAtICBTaGF3biBBbmFzdGFzaW8NCj4g
ICAtIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3hlbi1kZXZlbC9jb3Zlci4xNzI3Mzg4OTI1Lmdp
dC5zYW5hc3Rhc2lvQHJhcHRvcmVuZ2luZWVyaW5nLmNvbS9ULyNtOGNhYzkxYTkzYjU2YTM1OWZh
MmQ1ZjA4NTk2YzRiZTYxZGNhMjkwZA0KPiAgIC0gaHR0cHM6Ly9wYXRjaGV3Lm9yZy9YZW4vY292
ZXIuMTcyNzM4ODkyNS5naXQuc2FuYXN0YXNpb0ByYXB0b3JlbmdpbmVlcmluZy5jb20vDQo+IA0K
PiA9PSBDb21wbGV0ZWQgPT0NCj4gDQo+ID09PSBIeXBlcnZpc29yID09PQ0KPiANCj4gKiB0b29s
czogcmVtb3ZlIHFlbXUtdHJhZGl0aW9uYWwNCj4gICAtIEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0Bz
dXNlLmNvbT4NCj4gICAtIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3hlbi1kZXZlbC8yMDI1MDUy
NzEzMjAzNS45ODUtMS1qZ3Jvc3NAc3VzZS5jb20vDQo+IA0KPiAqICByZW1vdmUgbGlieGVuY3Ry
bCB1c2FnZSBmcm9tIHhlbnN0b3JlZCAodjgpDQo+ICAgLSAgSnVlcmdlbiBHcm9zcw0KPiAgIC0g
aHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcveGVuLWRldmVsLzIwMjUwMjA0MTEzNDA3LjE2ODM5LTEt
amdyb3NzQHN1c2UuY29tLw0KPiANCj4gKiB4ZW4vY29uZmlnLmg6IE1vdmUgQklUU19QRVJfKiBk
ZWZpbml0aW9ucyBmcm9tIGFzbS9jb25maWcuaCB0byB4ZW4vY29uZmlnLmgNCj4gICAtIE9sZWtz
aWkgS3Vyb2Noa28NCj4gICAtIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3hlbi1kZXZlbC82YjIx
ZmIwNDZjZjFjOGNhNzYwZjVhZDcyZmEzY2MxM2I1OWM0MDY5LjE3NDMwOTI0ODUuZ2l0Lm9sZWtz
aWkua3Vyb2Noa29AZ21haWwuY29tLw0KPiANCj4gKiBNb3ZlIHBhcnRzIG9mIEFybSdzIERvbTBs
ZXNzIHRvIGNvbW1vbiBjb2RlDQo+ICAgLSBPbGVrc2lpIEt1cm9jaGtvDQo+ICAgLSBodHRwczov
L3BhdGNoZXcub3JnL1hlbi9jb3Zlci4xNzQ2NDY4MDAzLmdpdC5vbGVrc2lpLmt1cm9jaGtvQGdt
YWlsLmNvbS8NCj4gICAtIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3hlbi1kZXZlbC9jb3Zlci4x
NzQ2NDY4MDAzLmdpdC5vbGVrc2lpLmt1cm9jaGtvQGdtYWlsLmNvbS9ULyN0DQo+IA0KPiA9PT0g
eDg2ID09PQ0KPiANCj4gKiAgeDg2OiBtZW1jcHkoKSAvIG1lbXNldCgpIChub24tKUVSTVMgZmxh
dm9ycyBwbHVzIGZhbGxvdXQgKHY0IC0+IHY1KQ0KPiAgIC0gIEphbiBCZXVsaWNoDQo+ICAgLSBo
dHRwczovL3BhdGNoZXcub3JnL1hlbi8xNGI2NTIzMS1iODNiLTQzZmItYmJjZi1kZWM1YzA3ZDI4
NWJAc3VzZS5jb20vDQo+IA0KPiAqIGtleGVjOiBhZGQga2V4ZWMgc3VwcG9ydCB0byBNaW5pLU9T
ICh2MSAtPiB2MikNCj4gICAtIEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4NCj4gICAt
IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3hlbi1kZXZlbC8yMDI1MDYxNjA4NDYxOS4xMTExMi0x
LWpncm9zc0BzdXNlLmNvbS8NCj4gDQo+ICogWzQuMjFdIEFsbG93IHg4NiB0byB1bmZsYXR0ZW4g
RFRzICh2OCkNCj4gICAtIEFsZWphbmRybyBWYWxsZWpvDQo+ICAgLSBodHRwczovL2xvcmUua2Vy
bmVsLm9yZy94ZW4tZGV2ZWwvMjAyNTA3MjIwMDA1MjUuNzI0Ny0xLWFsZWphbmRyby5nYXJjaWF2
YWxsZWpvQGFtZC5jb20vI3QNCj4gDQo+ICogeGVuOiBjYWNoZSBjb250cm9sIGltcHJvdmVtZW50
cw0KPiAgIC0gUm9nZXIgUGF1IE1vbm5lDQo+ICAgLSBodHRwczovL2xvcmUua2VybmVsLm9yZy94
ZW4tZGV2ZWwvMjAyNTA1MDYwODMxNDguMzQ5NjMtMS1yb2dlci5wYXVAY2l0cml4LmNvbS8NCj4g
DQo+ICogIHg4Ni9IVk06IGVtdWxhdGlvbiAoTU1JTykgaW1wcm92ZW1lbnRzICh2MykNCj4gICAt
ICBKYW4gQmV1bGljaA0KPiAgIC0gaHR0cHM6Ly9wYXRjaGV3Lm9yZy9YZW4vNzI5Zjc4OTYtNTVi
Ny00YjViLWE3ZTktNmViMDQyMGUwYjE0QHN1c2UuY29tLw0KPiANCj4gPT09IEFSTSA9PT0NCj4g
DQo+ICogRW5hYmxlIFI1MiBzdXBwb3J0IGZvciB0aGUgZmlyc3QgY2h1bmsgb2YgTVBVIHN1cHBv
cnQNCj4gIC0gIEF5YW4gS3VtYXIgSGFsZGVyDQo+ICAtIGh0dHBzOi8vbG9yZS5rZXJuZWwub3Jn
L3hlbi1kZXZlbC8yMDI1MDYxOTExMzE1Mi4yNzIzMDY2LTEtYXlhbi5rdW1hci5oYWxkZXJAYW1k
LmNvbS8NCj4gDQo+ICogQVJNIHNwbGl0IGhhcmR3YXJlIGFuZCBjb250cm9sIGRvbWFpbnMgKHY1
KQ0KPiAgIC0gSmFzb24gQW5kcnl1aw0KPiAgIC0gaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcveGVu
LWRldmVsLzIwMjUwNDE2MjEyOTExLjQxMDk0Ni0xLWphc29uLmFuZHJ5dWtAYW1kLmNvbS8NCj4g
ICAtIGh0dHBzOi8vcGF0Y2hldy5vcmcvWGVuLzIwMjUwNDE2MjEyOTExLjQxMDk0Ni0xLWphc29u
LmFuZHJ5dWtAYW1kLmNvbS8NCj4gDQo+ICogRmlyc3QgY2h1bmsgZm9yIEFybSBSODIgYW5kIE1Q
VSBzdXBwb3J0ICh2NCAtPiB2NikNCj4gICAtIEx1Y2EgRmFuY2VsbHUNCj4gICAtIGh0dHBzOi8v
bG9yZS5rZXJuZWwub3JnL3hlbi1kZXZlbC8yMDI1MDUyMzA2NTQwNi4zNzk1NDIwLTEtbHVjYS5m
YW5jZWxsdUBhcm0uY29tLw0KPiAgIC0gaHR0cHM6Ly9wYXRjaGV3Lm9yZy9YZW4vMjAyNTA1MjMw
NjU0MDYuMzc5NTQyMC0xLWx1Y2EuZmFuY2VsbHVAYXJtLmNvbS8NCj4gDQo+ICogQWRkIHN1cHBv
cnQgZm9yIFItQ2FyIEdlbjQgUENJIGhvc3QgY29udHJvbGxlciAodjQgLT4gdjUpDQo+ICAgLSBN
eWt5dGEgUG90dXJhaQ0KPiAgIC0gaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcveGVuLWRldmVsL2Nv
dmVyLjE3NDc4MjA4NDQuZ2l0Lm15a3l0YV9wb3R1cmFpQGVwYW0uY29tLw0KPiAgIC0gaHR0cHM6
Ly9wYXRjaGV3Lm9yZy9YZW4vY292ZXIuMTc0NzgyMDg0NC5naXQubXlreXRhLl81RnBvdHVyYWlA
ZXBhbS5jb20vDQo+IA0KPiAqIFNNTVUgaGFuZGxpbmcgZm9yIFBDSWUgUGFzc3Rocm91Z2ggb24g
QVJNICh2MTEgLT4gdjEyKQ0KPiAgIC0gTXlreXRhIFBvdHVyYWkNCj4gICAtIGh0dHBzOi8vbG9y
ZS5rZXJuZWwub3JnL3hlbi1kZXZlbC9jb3Zlci4xNzUxNDM5ODg1LmdpdC5teWt5dGFfcG90dXJh
aUBlcGFtLmNvbS8NCj4gDQo+ICogIFBDSSBkZXZpY2VzIHBhc3N0aHJvdWdoIG9uIEFybSwgcGFy
dCAzICh2MTYtPnYyMC0+djIxKQ0KPiAgIC0gIFN0ZXdhcnQgSGlsZGVicmFuZA0KPiAgIC0gaHR0
cHM6Ly9wYXRjaGV3Lm9yZy9YZW4vMjAyNTA1MDgxMDQ2MDguNTMxMDc5LTEtc3Rld2FydC5oaWxk
ZWJyYW5kQGFtZC5jb20vDQo+ICAgLSBodHRwczovL2xvcmUua2VybmVsLm9yZy94ZW4tZGV2ZWwv
MjAyNTA1MDgxMDQ2MDguNTMxMDc5LTEtc3Rld2FydC5oaWxkZWJyYW5kQGFtZC5jb20vDQo+IA0K
PiAqIEVuYWJsZSBlYXJseSBib290dXAgb2YgQXJtdjgtUiBBQXJjaDMyIHN5c3RlbXMNCj4gICAt
IEF5YW4gS3VtYXIgSGFsZGVyDQo+ICAgLSBodHRwczovL2xvcmUua2VybmVsLm9yZy94ZW4tZGV2
ZWwvMjAyNTA0MTQxNjQ1MTQuNTg4MzczLTEtYXlhbi5rdW1hci5oYWxkZXJAYW1kLmNvbS8NCj4g
ICAtIGh0dHBzOi8vcGF0Y2hldy5vcmcvWGVuLzIwMjUwNDE0MTY0NTE0LjU4ODM3My0xLWF5YW4u
a3VtYXIuaGFsZGVyQGFtZC5jb20vDQo+IA0KPiA9PT0gUklTQy1WID09PQ0KPiANCj4gKiByaXNj
djogaW50cm9kdWNlIGJhc2ljIFVBUlQgc3VwcG9ydCBhbmQgaW50ZXJydXB0cyBmb3IgaHlwZXJ2
aXNvciBtb2RlICh2MiAtPiB2MykNCj4gICAtICBPbGVrc2lpIEt1cm9jaGtvDQo+ICAgLSBodHRw
czovL2xvcmUua2VybmVsLm9yZy94ZW4tZGV2ZWwvY292ZXIuMTc0Nzg0MzAwOS5naXQub2xla3Np
aS5rdXJvY2hrb0BnbWFpbC5jb20vDQo+ICAgLSBodHRwczovL3BhdGNoZXcub3JnL1hlbi9jb3Zl
ci4xNzQ3ODQzMDA5LmdpdC5vbGVrc2lpLmt1cm9jaGtvQGdtYWlsLmNvbS8NCj4gDQo+ICogUklT
Qy1WIHNvbWUgcHJlaW5pdCBjYWxsczoNCj4gICAtICBPbGVrc2lpIEt1cm9jaGtvDQo+ICAgLSBo
dHRwczovL2xvcmUua2VybmVsLm9yZy94ZW4tZGV2ZWwvNGRkZGU2MDM0N2VkZjY3NDBmYmM2OWI1
NzM5ZDA5OTYxNmY1YjVmZi4xNzQzMTY1NzkxLmdpdC5vbGVrc2lpLmt1cm9jaGtvQGdtYWlsLmNv
bS8NCj4gDQo+ICogRml4ZXMgZm9yIFVCU0FOICYgR0NPViBzdXBwb3J0IGZvciBSSVNDLVY6DQo+
ICAgLSAgT2xla3NpaSBLdXJvY2hrbw0KPiAgIC0gaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcveGVu
LWRldmVsLzlmYmI1ZTEzODliODRiZWQyZTk1Zjk5ZTRjMzgzZDAyMTVjN2E1MjQuMTc0NDg4OTE4
NS5naXQub2xla3NpaS5rdXJvY2hrb0BnbWFpbC5jb20vDQo+IA0KPiBIYXZlIGEgZ29vZCB3ZWVr
IQ0KPiANCj4gQmVzdCByZWdhcmRzLA0KPiAgT2xla3NpaQ0KDQo=


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 16:21:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 16:21:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073301.1436203 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk3MX-0000RX-Sw; Thu, 07 Aug 2025 16:21:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073301.1436203; Thu, 07 Aug 2025 16:21: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 1uk3MX-0000RN-Pb; Thu, 07 Aug 2025 16:21:05 +0000
Received: by outflank-mailman (input) for mailman id 1073301;
 Thu, 07 Aug 2025 16:21:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oMMd=2T=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1uk3MW-0000P0-JQ
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 16:21:04 +0000
Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com
 [2a00:1450:4864:20::633])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 83315e01-73aa-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 18:21:03 +0200 (CEST)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-ae6f8d3bcd4so232740866b.1
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 09:21:03 -0700 (PDT)
Received: from [192.168.1.17] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a076409sm1336478166b.12.2025.08.07.09.20.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Aug 2025 09:21: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>
X-Inumbo-ID: 83315e01-73aa-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754583663; x=1755188463; darn=lists.xenproject.org;
        h=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=yXpXALJthCDztrIM1HZ6qPaFkCMLZCF9ZUT9163fWQc=;
        b=X0UK0UsAMBZS5IdPH9xUajhV32qyu/EuIIDqbbY390WVFUmB62YbqL6PL3LHIPdl+n
         Ljta3hiNz3AXRq0ID+HtYhpF0CzxG2BwM1oORvH/AZ7RC7BHcx8qCr1ZyJMsR2OmE2+O
         MUFowxQWq77qVtJ8czudrSNd2ID6GBvaSvfEUSlU/WxJkr4YG2tORzSLtCI4e/cZsrAt
         h7/K5e90LhmzTHAtJodsxsmcCHLFHqnb7K/XPW56Z5Q3mth//l+t+dmMqWAsbiOpxsuS
         3OPNjKvKgHD3gOEaW7nRkvTn/iXZRnT2LfxU8W0pBrE67z3QN4YqqIbPCYse8rUDNL8v
         JMeg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754583663; x=1755188463;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=yXpXALJthCDztrIM1HZ6qPaFkCMLZCF9ZUT9163fWQc=;
        b=pr7diUP12xaqCtujvSrXnNfE6HosdqFsWTj3fuyrNad4lLSM8ag9ODkazplz4pS5c7
         pUKrAwy561TPOAEfrOUbDy5moiBFd/ZzMLC9y1m+tR76gACitP4oaKW9LgirH5+6pO1/
         eX5PxLcgdvWOZfTdjayfq5BsK5oeSmsnBcp/wzdAL4i5MdkUnz45FbzYDEfjDZ3VX7TZ
         1HPRZ4Ca93p++g8zJXCReg+WvOs4HMtqZIEs8iF2ewE9m18S60AYpkVEnYU9lKj9mz1l
         652gRZ/Ef39dKHyWv1jz3n0RUtjDNjCjxGMuA731Rp/WZRaSAwOUFuTGTT2HM6wpdQmQ
         t2Eg==
X-Forwarded-Encrypted: i=1; AJvYcCUxxMfaKHU5AZaR3bE/zSwqJGHQOp4ezRqYnHit7FRhl05oLdbRxgBIMfJyJPD08pUgZn4AYRZ0F1g=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy5xolgFRJ+rwcC1+L95wwErfnFM8aW3B365uPEfFFJIRwOJuco
	/duRP1eaxqnki5AYzb44XGdbkICdnbDgfHtqW3GhyexgyOuFkJivQ4QC
X-Gm-Gg: ASbGncv4rM4bpYkCiX4FJWYBrgbqbsk/BJ14Z/P9PByCYPlfHWiTYRerguufZiu44PP
	qMElcV74NIJfEm7NGSGUbdNLB58vvqRE4ycTq8HW4y8KsIaOhts6AsKFBgrcL7/fxJIbAZPUsxU
	kmCNdjdsQhVZOs4t4gaaXFgTboPi3rDUT/ctK7GOqjL8UJcbQncO3NhhYYvu+2xAH/csKAF6Q4w
	hB6o6ZB592zGxzJuaBFp4uTQXDBzLghK5YCrS3TSefMeBWq43wGeX0lxeCpfBeQGSkWu8Vg2sF+
	EP+U73v5mlNUlrhppq4ER4T+D5SCAx/72CaOdUOY9+rP2p0VVzSM1fqf+oQvMu7wVnmfrzmvdP4
	ZEOc+eLV/BJDVplRRJFRrf90L8mjiwYGncZX/qeslQiDY1I8jW3OklAcbE1vF2pLXe+wjI6M9fT
	vvBZLLM3c=
X-Google-Smtp-Source: AGHT+IErTAAJRpKGM3EAgdyPLEqWgtWj1uR/OhrGbW4M8r5Q7TITK6VbtIjGRAUja8HVJrzFFz1LOA==
X-Received: by 2002:a17:907:2d9e:b0:ae0:df46:abd1 with SMTP id a640c23a62f3a-af9c1e07ce6mr57683466b.45.1754583662317;
        Thu, 07 Aug 2025 09:21:02 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------GKNNIPSOQSz7Xh0KKKHrbF0A"
Message-ID: <a664643e-bf54-4518-83f9-497d2b9351f9@gmail.com>
Date: Thu, 7 Aug 2025 18:20:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Xen 4.21 Development Update [June-July]
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>,
 "committers@xenproject.org" <committers@xenproject.org>
Cc: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>,
 Ayan Kumar Halder <ayan.kumar.halder@amd.com>,
 Mykyta Poturai <Mykyta_Poturai@epam.com>, Juergen Gross <jgross@suse.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Luca Fancellu <luca.fancellu@arm.com>, "Jason Andryuk,"
 <jason.andryuk@amd.com>, Sergii Dmytruk <sergii.dmytruk@3mdeb.com>,
 "Penny Zheng," <Penny.Zheng@amd.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki=2C?=
 <marmarek@invisiblethingslab.com>, Roger Pau Monne <roger.pau@citrix.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, dmkhn@proton.me,
 Mykola Kvach <xakep.amatop@gmail.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Grygorii Strashko <gragst.linux@gmail.com>,
 Alejandro Vallejo <agarciav@amd.com>,
 Community Manager <community.manager@xenproject.org>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <ae2c2e35-72df-40ed-bffe-391f3c11b826@gmail.com>
 <242a93cf-20f7-4fcd-8eef-6945af5d864c@suse.com>
 <03a1d0b8-facd-4c02-97c6-45fa694da0b6@gmail.com>
 <f07b7bf9-8e9a-49b6-824e-0c3b346bebd2@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <f07b7bf9-8e9a-49b6-824e-0c3b346bebd2@suse.com>

This is a multi-part message in MIME format.
--------------GKNNIPSOQSz7Xh0KKKHrbF0A
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 8/6/25 10:12 AM, Jan Beulich wrote:
> On 06.08.2025 09:45, Oleksii Kurochko wrote:
>> On 8/6/25 8:05 AM, Jan Beulich wrote:
>>> Overall: There are very many items on this list, and it seems entirely clear to
>>> me that not all of them will make it. I think it would be quite helpful to strip
>>> down the set for 4.21 to some realistic subset. Maybe something to discuss on
>>> the community call later today?
>> Good point, lets discuss that tomorrow during the community call.
> Oh, right, it's only Wednesday today.

I had the Xen Community Call marked at 6 PM in my calendar, so I missed it as
it actually took place at 15:00... I'm not sure if a recording is available
somewhere, but based on the notes:
 Â Â Â  Call for major work items for 4.21 or 4.22
 Â Â Â Â Â Â Â  Please make yourself known if you are intending to work on major items
 Â Â Â Â Â Â Â  PDX compression.
 Â Â Â Â Â Â Â  FRED, AVX10, APX, and AMX support (x86)
 Â Â Â Â Â Â Â  Host UEFI Secure Boot
 Â Â Â Â Â Â Â  FF-A 1.2 Support (Arm)

I completely agree with the first point â€” it would be great to receive feedback
from the authors of major patch series, similar to how the team at EPAM does.

As for the other items, I assume this is a list of major work items that are
likely to slip to 4.22, correct? From the looks of it, PDX compression and
FRED-related work might still make it into 4.21.

I also wanted to ask this during the call, but since I missed it,
Iâ€™ll ask here instead:
What should be the criteria for continuing to track a patch series?
It seems that the best approach would be to rely on feedback from the series'
author. However, obtaining that feedback can be challenging. So perhaps the
only practical solution is to keep tracking major items throughout the current
release cycle and drop them at the start of the next cycle if no activity has
taken place.

P.S.: Andrew, could you please provide a list for FRED connected patch series,
I am tracking some of them, but wanted to be sure that I'm tracking all of them.
Thanks in advance.

~ Oleksii

--------------GKNNIPSOQSz7Xh0KKKHrbF0A
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/6/25 10:12 AM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:f07b7bf9-8e9a-49b6-824e-0c3b346bebd2@suse.com">
      <pre wrap="" class="moz-quote-pre">On 06.08.2025 09:45, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">On 8/6/25 8:05 AM, Jan Beulich wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">Overall: There are very many items on this list, and it seems entirely clear to
me that not all of them will make it. I think it would be quite helpful to strip
down the set for 4.21 to some realistic subset. Maybe something to discuss on
the community call later today?
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
Good point, lets discuss that tomorrow during the community call.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Oh, right, it's only Wednesday today.</pre>
    </blockquote>
    <pre>I had the Xen Community Call marked at 6 PM in my calendar, so I missed it as
it actually took place at 15:00... I'm not sure if a recording is available
somewhere, but based on the notes:
Â Â Â  Call for major work items for 4.21 or 4.22
Â Â Â Â Â Â Â  Please make yourself known if you are intending to work on major items
Â Â Â Â Â Â Â  PDX compression.
Â Â Â Â Â Â Â  FRED, AVX10, APX, and AMX support (x86)
Â Â Â Â Â Â Â  Host UEFI Secure Boot
Â Â Â Â Â Â Â  FF-A 1.2 Support (Arm)

I completely agree with the first point â€” it would be great to receive feedback
from the authors of major patch series, similar to how the team at EPAM does.

As for the other items, I assume this is a list of major work items that are
likely to slip to 4.22, correct? From the looks of it, PDX compression and
FRED-related work might still make it into 4.21.

I also wanted to ask this during the call, but since I missed it,
Iâ€™ll ask here instead:
What should be the criteria for continuing to track a patch series?
It seems that the best approach would be to rely on feedback from the series'
author. However, obtaining that feedback can be challenging. So perhaps the
only practical solution is to keep tracking major items throughout the current
release cycle and drop them at the start of the next cycle if no activity has
taken place.

P.S.: Andrew, could you please provide a list for FRED connected patch series,
I am tracking some of them, but wanted to be sure that I'm tracking all of them.
Thanks in advance.

~ Oleksii</pre>
  </body>
</html>

--------------GKNNIPSOQSz7Xh0KKKHrbF0A--


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 17:11:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 17:11:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073375.1436212 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk49F-0001j1-Rw; Thu, 07 Aug 2025 17:11:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073375.1436212; Thu, 07 Aug 2025 17:11: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 1uk49F-0001iu-Oj; Thu, 07 Aug 2025 17:11:25 +0000
Received: by outflank-mailman (input) for mailman id 1073375;
 Thu, 07 Aug 2025 17:11:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=LYnK=2T=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1uk49E-0001io-DV
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 17:11:24 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 885f481e-73b1-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 19:11:18 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-458bdde7dedso9422025e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 10:11:18 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459de91ea4csm155204845e9.10.2025.08.07.10.11.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Aug 2025 10: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>
X-Inumbo-ID: 885f481e-73b1-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754586678; x=1755191478; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4OP4xaE8pWnEnRqJ3aAsJLupQAdLmaGfhr4isia3Qz0=;
        b=kfBZiJkzvK+JYzvnZPpeInJp0jZ6Xitnvig+SHpoV+FGp0X6yV79yV+rfrljyCC4tR
         nLPiyHtXZKQHk24ueFkMCoBkGacZ20ZMUkyznNUsfcCYXwLUVJB9J7+jR9VSl1tT/xSM
         glyFUk2ux/ZFyhS8r6ikz7T+9yjhglkiJBKpc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754586678; x=1755191478;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4OP4xaE8pWnEnRqJ3aAsJLupQAdLmaGfhr4isia3Qz0=;
        b=ZO+j5iIWMvFU9/ffE74PP5fwXxjaUJ4OYR3eAoBa0xQgNzhQHrSE9FGX6v2/u4nZuo
         AtV231KqMhXa5Tca8w6sT96NrrTpJaiNZXAnxqmLq48sxeNac9NXZdE94t058ruG/1ku
         YAe7kCg8xAx1QjQw7wmJsauoPatE63HajGUgH6pG2ctZeCVfqMMln4xRSP9AaUbJpJhd
         jcJvX9Ga8iv5NxvRjtsCdiziKaMg+fuyQ3pKgcXJBhMtkvNuUT6AEpdIdqT0NfMER2ui
         EYklnK6O9csBcv9kGzdCVGGVltmWtP88bEoQQZl68a6B8O+6Z8vpEEksmF74ijOxkmYu
         t2Dg==
X-Forwarded-Encrypted: i=1; AJvYcCX1aAmte3WUkyEXh69DYoH6+d0/M1LjC4aeAU1Y3SocmJ52JsW9qjZr3SPf2TtBLcAW4dcsuT4bypY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywz67nWNzoRK8o4vu4Snla+4DdKMEd2NGqGAY5amC8ZjGKTsQXA
	le44E8PjkBOxht+WvEAX0vb6A/3JrP19fzZrM31WGq6zRhwty97fGpXgqo+4LypP8mo=
X-Gm-Gg: ASbGncvKBLWai73p6vOa7EfMNxr5M/LJO48m0oYKyFOJk1LypjEU/ghnMfXvmtiPUoP
	aWnj7Jg7IW6L0ZG9dQU/CaT2StBgGryuGt0E5Ai63CKgSCxfPWl1hBWKl+k/xK9OBZuHXuo7VJW
	aw/0tbs5Q59FxBvSP5tvkfx7h+mm3NMjDvKPocLaB3TyvRXyTFy12RtcyPFf3RQWaLLR4Zx23wW
	p+9/svvaJ9cB34BEVYEBCxtWJoCCIJZSPZkgiN0i8LSUjux1nFyCROf/rjh2JOSbNP3gtRJmJ0R
	Pkreaw8wo03zkE906c4rnZyNj+S/oMGB8Jf7ClRcs1ZxfrzdnFdFNr5rEJscss01skMdFO72uKQ
	vvKtQ8wIbzZYjBxX8AZofSH54RKVzeVa5ofjLCzw6tda7j5Lcye/DR6ZmQXn6d+ptBbAyvjqhqt
	Uf63w=
X-Google-Smtp-Source: AGHT+IEZPh43FidO1yNL2Q2uUuwwl2jQnV0BpEKn/o44jLPU92K1IxRmbLPWw1fhS84c4fFQq5ymBg==
X-Received: by 2002:a05:600c:19cf:b0:458:bfe1:4a82 with SMTP id 5b1f17b1804b1-459f43a3fcdmr3767005e9.16.1754586677648;
        Thu, 07 Aug 2025 10:11:17 -0700 (PDT)
Message-ID: <a0b6abb8-02d6-4748-9382-bea1b590dc6f@citrix.com>
Date: Thu, 7 Aug 2025 18:11:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86/mm: correct PG_log_dirty definition
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>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Penny Zheng <Penny.Zheng@amd.com>
References: <c506f225-0993-4ef3-9e7e-60b8f17c872e@suse.com>
 <65e27b35-9256-4ab0-966a-c50a18900ba5@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: <65e27b35-9256-4ab0-966a-c50a18900ba5@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05/08/2025 8:59 am, Jan Beulich wrote:
> While it is correct that in shim-exclusive mode log-dirty handling is
> all unreachable code, the present conditional still isn't correct: In a
> HVM=n and SHADOW_PAGING=n configuration log-dirty code also is all
> unreachable (and hence violating Misra rule 2.1).
>
> As we're aiming at moving away from special casing PV_SHIM_EXCLUSIVE=y,
> don't retain that part of the conditional.
>
> Because of hypercall-defs.c we need to carry out the dependency by
> introducing a new auxiliary PAGING control.
>
> Since compiling out mm/paging.c altogether would entail further changes,
> merely conditionalize the one function in there (paging_enable()) which
> would otherwise remain unreachable (Misra rule 2.1 again) when PAGING=n.
>
> Fixes: 23d4e0d17b76 ("x86/shim: fix build with PV_SHIM_EXCLUSIVE and SHADOW_PAGING")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

> ---
> Of course PAGING is at risk of being confused with MEM_PAGING. It not
> having a prompt, I hope that's tolerable, as I can't really think of a
> better name.

Honestly, PAGING is a bad name start with.Â  While it is to do with the
handling of pages, it is specifically not what people think of when
using the term paging.

Hence why we've got MEM_PAGING too, which is referring to what most
people think of when told the name paging.

I don't have a better suggestion, given the current codebase, but I'm
open to suggestions.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 17:30:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 17:30:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073390.1436223 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk4RL-0004iA-AD; Thu, 07 Aug 2025 17:30:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073390.1436223; Thu, 07 Aug 2025 17:30: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 1uk4RL-0004i3-6d; Thu, 07 Aug 2025 17:30:07 +0000
Received: by outflank-mailman (input) for mailman id 1073390;
 Thu, 07 Aug 2025 17:30:05 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=llzQ=2T=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1uk4RJ-0004O6-7E
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 17:30:05 +0000
Received: from fout-b4-smtp.messagingengine.com
 (fout-b4-smtp.messagingengine.com [202.12.124.147])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2570ea8e-73b4-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 19:30:01 +0200 (CEST)
Received: from phl-compute-12.internal (phl-compute-12.internal [10.202.2.52])
 by mailfout.stl.internal (Postfix) with ESMTP id 3D3EA1D000EB;
 Thu,  7 Aug 2025 13:30:00 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-12.internal (MEProxy); Thu, 07 Aug 2025 13:30:00 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 7 Aug 2025 13:29: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>
X-Inumbo-ID: 2570ea8e-73b4-11f0-a324-13f23c93f187
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=1754587800;
	 x=1754674200; bh=Bevdk7ICgKgrrnQo8ejvauzvjr053eD/iQdGeanZ8gk=; b=
	mzB+E7fVlkcknO1AGWJsZB5mnfCg0UQnyMxSs+wlkKGCJMZ+ZsrM5/+hijgoT2IF
	OLFwQdvEVwMbgC+wlwT4bfz6H0OKkpBj5LKzT86Lb11kFJ9IPjtrngHhobc6rJ+n
	q1wy6OwbvSJXNeAdmS5GmJwfnR6BbFfb0qN6tjYSRhcUZZmxFb+gkEGVWuuu2kZ9
	nK2CJ2H8kAFVtqHgXXlADXFNR9PF6JHNptxOPRTaHwaWcacXgY8o8zBQKYkxuu0H
	+xYsIuwf+ERShAqVlahafgThbE2VnvQdozhShwC7aePNCN1dHIVtoGvq1iWJaEll
	AQV0KKxXWykUOogpmiYJ4Q==
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=
	1754587800; x=1754674200; bh=Bevdk7ICgKgrrnQo8ejvauzvjr053eD/iQd
	GeanZ8gk=; b=Tb4G4tJvXsa8uza5ha/1SPRIn8KI0C0vTxhjbvTKh2Oc60AeakJ
	TnkDOj2GJkZaX/hCVqIs2a3A7l2LmOSjgYfgOvHGCjgg47RlQ5SImTCmgXBT74po
	dQtqEK/MMVXy2wzp6mf+23dl4AlZJjJx5dfPdR44ynCAlyU7AXWx6xpws8nI35cZ
	w9VUQhAX3fV1evj312bX53/Z6xBqTUpT2dhEhG/xh3UF0OIcPBJa1HcoWs1G4Jka
	5OLAH/ib2Rv3Y8vKOCwhYy7IWEWl3d/+2p8C8tZkgf0coroEGJq2QZ8SwqnnQ2DX
	hxc8mS3lRdGaFYb+mSQZiM/YPCFt7d/CYFg==
X-ME-Sender: <xms:l-KUaF7kjU4EqtKvPh2XprcOsW5lnadFiNVtIuEUE5hWj6bXFKT_kw>
    <xme:l-KUaGK4vCwl6D97kMwAvUY4mgbRfw_iKXetCQmfMPOul_XEAEKDk6_AgirmLt2Jt
    k_dYJPrgZNdEg>
X-ME-Received: <xmr:l-KUaF4RJXkhbUiZgf18h4xPT6AXutP7dKn_q7J4uaLN2ROOvSIF32yGIlq15bhP0bPHdlkb8j6gmtQw79WQJW_ZjoWz96d4vQA>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgdduvdduheefucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfduleet
    feevhfefheeiteeliefhjefhleduveetteekveettddvgeeuteefjedunecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepfedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtohepjhgsvghulhhitghhsehsuhhsvgdrtgho
    mhdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpd
    hrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdho
    rhhg
X-ME-Proxy: <xmx:l-KUaJxUbNPQ2KGNTtsTTv_kMOO41wIjmBWoRSZqxZ35Sv-glJpCKQ>
    <xmx:l-KUaJavhashJWybEwjskKCw4CcLByBHB4TPVdC75c6GE9XL0dM4Kg>
    <xmx:l-KUaLSQx4NQ11a4wRZdzRHrbyUAf0bPhqZNWAzJ7236dpk3ZZMRAA>
    <xmx:l-KUaDwVGUk3FRjvWimzbGi25xVl49T3PYV_uf3zqrBsty6IZZgZ6w>
    <xmx:mOKUaKLGKgUX5bTYNTKe2n5PcI8yrciH5yb0XCjl8eWtvvoi18u0UOmV>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 7 Aug 2025 19:29:57 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: S3 regression related to XSA-471 patches
Message-ID: <aJTilUXpchmRq2Ng@mail-itl>
References: <aJMtPLNqQFbGg5cs@mail-itl>
 <f971f8a8-487e-4b9f-8c75-80ebfe70c3b6@suse.com>
 <aJMyjYfeTL5uPRtk@mail-itl>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="StZy9aDMBBMzPOcv"
Content-Disposition: inline
In-Reply-To: <aJMyjYfeTL5uPRtk@mail-itl>


--StZy9aDMBBMzPOcv
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 7 Aug 2025 19:29:57 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: S3 regression related to XSA-471 patches

On Wed, Aug 06, 2025 at 12:46:36PM +0200, Marek Marczykowski-G=C3=B3recki w=
rote:
> On Wed, Aug 06, 2025 at 12:36:56PM +0200, Jan Beulich wrote:
> > On 06.08.2025 12:23, Marek Marczykowski-G=C3=B3recki wrote:
> > > We've got several reports that S3 reliability recently regressed. We
> > > identified it's definitely related to XSA-471 patches, and bisection
> > > points at "x86/idle: Remove broken MWAIT implementation". I don't have
> > > reliable reproduction steps, so I'm not 100% sure if it's really this
> > > patch, or maybe an earlier one - but it's definitely already broken at
> > > this point in the series. Most reports are about Xen 4.17 (as that's
> > > what stable Qubes OS version currently use), but I think I've seen
> > > somebody reporting the issue on 4.19 too (but I don't have clear
> > > evidence, especially if it's the same issue).
> >=20
> > At the time we've been discussing the explicit raising of TIMER_SOFTIRQ
> > in mwait_idle_with_hints() a lot. If it was now truly missing, that imo
> > shouldn't cause problems only after resume, but then it may have covered
> > for some omission during resume. As a far-fetched experiment, could you
> > try putting that back (including the calculation of the "expires" local
> > variable)?
>=20
> Sure, I'll try.

It appears this fixes the issue, at least in ~10 attempts so far
(usually I could reproduce the issue after 2-3 attempts).

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmiU4pUACgkQ24/THMrX
1yzrUggAmKvBqN547067aX+lyvof6FxoKnF8mO2PsjEWcaGNTtIg/hyRXrGfxQ2Z
WwxF4wUrZaVOEiy/JB1op50OQDyD8MPlDqwjWUxsDdQmGAip0n1jqZFaSDSZ78Cw
BXHMsyCL5USYLoYw0zYcG9/p29nk2JKnzuaT59EauglhRr0OVRDkbcEDzNJBCl4J
I9NesKshoPyzBrmEREfWFGsmWMx5sJcvYMvhRYKm1kEN3tHwiHzBabXB8WuCGEsY
t13fi58QsW/wXG0o+Qo2WKUuRLtjb/KlF8CseUK8V3zGziqDprflO1lZXgA+A9o3
dP0Bxxy3ZKVa9sRMPdgrBK6YvH68+w==
=2K1z
-----END PGP SIGNATURE-----

--StZy9aDMBBMzPOcv--


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 17:44:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 17:44:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073402.1436233 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk4f0-000753-EO; Thu, 07 Aug 2025 17:44:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073402.1436233; Thu, 07 Aug 2025 17: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 1uk4f0-00074w-BO; Thu, 07 Aug 2025 17:44:14 +0000
Received: by outflank-mailman (input) for mailman id 1073402;
 Thu, 07 Aug 2025 17:44:13 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ybbA=2T=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1uk4ey-00074q-2O
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 17:44:13 +0000
Received: from mail-24417.protonmail.ch (mail-24417.protonmail.ch
 [109.224.244.17]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1f722560-73b6-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 19:44:10 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1f722560-73b6-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1754588648; x=1754847848;
	bh=2khjs0/R2PTjMMCgr7LhMH+/mw4Wh5LX/qMb+fkAQuc=;
	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=FkUuF4cAHb7qhkqWQ8mwCTwpjAu8+0fbJVSWUQQGD8IHNKLdKqaDZvrFuRrsIcv7c
	 aOB//yRHzsUs60Ck1Onjj+9Na642ac3h5sD1gnwb+mc4uWZ33Xf+bv4npQTK6KgzFB
	 dC54MoA3SbqfnLTkHNErPSqUxlAGHFFukS02gWTzVrWOOZHdXBh30m7pVxFHFHETgR
	 tjsyPWNYG932sv34SCvBC5MnfD18oVlEsbqWIALANYes/Dt6COLRwEDQS7+1xWeMP5
	 vLq9n+SxJqWeoVQoVyyhJaliDch3yQvDM9wHmYUUkuMEHVHMnIODFHm4LjrmFEEZHx
	 b+ftc2W5n+zmw==
Date: Thu, 07 Aug 2025 17:43:57 +0000
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
From: dmkhn@proton.me
Cc: Jan Beulich <jbeulich@suse.com>, 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 v4 1/8] xen/domain: introduce common emulation flags
Message-ID: <aJTl1oZazXwq1KUo@kraken>
In-Reply-To: <5b604ac0-c832-496f-85b4-6261cbe06fcd@gmail.com>
References: <20250731192130.3948419-1-dmukhin@ford.com> <20250731192130.3948419-2-dmukhin@ford.com> <f2be5a00-63e6-489d-a26a-7d48d6ae41ad@suse.com> <aJFWQByvktADgYKu@kraken> <5b604ac0-c832-496f-85b4-6261cbe06fcd@gmail.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 4268cb77ce6929ce8dfa6cb2b97cfe43d4d6e9a1
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Thu, Aug 07, 2025 at 04:28:20PM +0200, Oleksii Kurochko wrote:
[..]
> Hi Arm/RISC-V maintainers,
>=20
> Do you foresee any need in bubbling up emulation_flags to the common `str=
uct
> domain`?
> </pre>
>     </blockquote>
>     <pre>At the moment, in RISC-V's downstream branches emulation_flags i=
sn't used. And,
> for now, I am not really sure that it's going to be used in the nearest f=
uture.

Thank you, I'll drop that patch.



From xen-devel-bounces@lists.xenproject.org Thu Aug 07 17:45:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 17:45:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073412.1436242 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk4gY-0007gH-Sq; Thu, 07 Aug 2025 17:45:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073412.1436242; Thu, 07 Aug 2025 17: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 1uk4gY-0007gA-Pr; Thu, 07 Aug 2025 17:45:50 +0000
Received: by outflank-mailman (input) for mailman id 1073412;
 Thu, 07 Aug 2025 17:45:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=V1Uc=2T=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1uk4gY-0007g2-AL
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 17:45:50 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20627.outbound.protection.outlook.com
 [2a01:111:f403:2415::627])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5708508f-73b6-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 19:45:45 +0200 (CEST)
Received: from MW4PR03CA0180.namprd03.prod.outlook.com (2603:10b6:303:8d::35)
 by CH3PR12MB8305.namprd12.prod.outlook.com (2603:10b6:610:12e::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.16; Thu, 7 Aug
 2025 17:45:40 +0000
Received: from SJ1PEPF00002322.namprd03.prod.outlook.com
 (2603:10b6:303:8d:cafe::14) by MW4PR03CA0180.outlook.office365.com
 (2603:10b6:303:8d::35) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.20 via Frontend Transport; Thu,
 7 Aug 2025 17:45:40 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF00002322.mail.protection.outlook.com (10.167.242.84) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Thu, 7 Aug 2025 17:45:39 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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; Thu, 7 Aug
 2025 12:45:38 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Thu, 7 Aug
 2025 12:45:38 -0500
Received: from xcbayankuma40.xilinx.com (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via
 Frontend Transport; Thu, 7 Aug 2025 12:45: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>
X-Inumbo-ID: 5708508f-73b6-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xrWBqLOmLt1AvMuybeJLDM81LMm7Ho2zvJ+e1yxMdWO2w3brFVEir0qOvnr3c78d/JEPRrk1p8r7k6JeB/WorwMUIDI7jYKmwwsp/3T06KjZfxwLp9mDbRwHan/LyCjwMNUMdsl+bKQzx9L6rJE3aRGj0qNxTAgKhiNPBgUWbLEXwEytDheSjI5P5w3La1VLlTgAcssYaG9KdcSTSsNn8dEr6K4U7pN10d8ItTVNrJy8eQb6o5Sg5HzfpwJZRbT7Nk1+8omoBg6LU5GE7vcft3sxjQWq+Xv3/fJYBGb9uObGZmYaf7RRuBwJ8lGZ/5EHFD4A+AduUKCrvhDheFZypw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ViRN9/MbwbgAKy455kGDx2MnZnuG0OZMSNBYgyjNvI4=;
 b=Fe5GKlQqWKXPj9YgSTx177++KNX7L3ZBu4xwDE8ImYVPHsewMHLb9Obl9a6IvkN0kBIsymNz6neFp3sUtQy98Cj5GtKmeoHbh2OKUwF0FyDZX5C/BOhcRBD3PZ4oA7iBwbKId8NlUXSAk/+K6OdY1Z3MBPbgHJNvikbih/zdKrDGlcC+ZLaOh+U935C3F3vRojmovcT/FjGTWJn14mCx0pO1kdFij+zhdATJckVwuQZE6zqmsNhiAPm0qlADiKWq1pO02Q8wr970OOpZG3dCp1kYziN4iLM4cB2k6WhuXU7W/emFqYd3CFiXN7grkW5NSDHJ/uAkGpufEqQXsjS2Sw==
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=ViRN9/MbwbgAKy455kGDx2MnZnuG0OZMSNBYgyjNvI4=;
 b=08b5db288A8uoaNdoEQB6JPFQz+eY8BDwqcyI4e2sDq6o8RDJXU6yVMKA9it/Ef7Zj60XRNtN+Ot3PXd9hFSRBRFoaI/22+B4XD13uaQg/MP9fJWnLxXE08wrp8LDSY887Ja/RcxIdjQS/23JVjQh3f9BOkFqQ1ARHhX3j+MJSM=
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=SATLEXMB04.amd.com; pr=C
From: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Ayan Kumar Halder <ayan.kumar.halder@amd.com>, Stefano Stabellini
	<sstabellini@kernel.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 v1 0/2] R52 MPU support (for "Third series for R82 MPU")
Date: Thu, 7 Aug 2025 18:45:27 +0100
Message-ID: <20250807174529.595577-1-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB05.amd.com: ayan.kumar.halder@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF00002322:EE_|CH3PR12MB8305:EE_
X-MS-Office365-Filtering-Correlation-Id: 9ff0b281-180e-48ba-bcdb-08ddd5da3945
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|82310400026|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?Oy0jk0U+FDIGEui6oELbcsfFGUhW77tfevs/6cJJHLNyVXgIN/nHcsaXQoj4?=
 =?us-ascii?Q?FsYsYy86JV+G2UrJGdSb+1AAzJWXo7X3pSD8zpMMjeTFOjAfHB3y6bcoabCa?=
 =?us-ascii?Q?TCeMi6nz+rhjTZ9D6H+AiXVXKCu+yrptBiH9VN6h9g4j1r4gUPoAoUCJ06sL?=
 =?us-ascii?Q?3juehHBjEQAiGer1Ej3gCA3QuU3fCmZ7HMlw6rPP+8nT8jtm0GpdIkhlcQbC?=
 =?us-ascii?Q?r+ms7oL6Dqxzuahzuz+PUiBvILHibEu4Iix799BmHPxFHmW/ALJymY9yHtd1?=
 =?us-ascii?Q?h8ePFQARKUdRTP8LPvp5aGC58xOxRkWc5GjrbVK7at6dDYfSYaopMNG5lZHV?=
 =?us-ascii?Q?bYYMcXB1f3FdnF8gBKFroaOT+ziSLYyEzfHlYRu1+N/OawfpK7fhSua4pl+a?=
 =?us-ascii?Q?C/ehOUHuD+1lY9uV810lArXSpcI8dWz1Iw6rl1bxs8iaHtMS5Tig58I9yGAB?=
 =?us-ascii?Q?Dj5kIXLAbX25CWuLBqRgXLrsNxQRyIxrcfwq+JiPpvacAoi3nYE9PaPVppGd?=
 =?us-ascii?Q?VDKy1k7FTHd9xLolMsH3xsL9lY+4/JXmpXscllK8EpBifISQScFxHL8GONWA?=
 =?us-ascii?Q?UwtAdzIh7GvV9BGiI+U+nfMIoGrxblq3s14EUH/Xgae4RmwSEzcduwl5DVhV?=
 =?us-ascii?Q?aCbaW0ANErQU705RxrWZStqRR8F0gDTz2L93ZOEd+U6wmnjDDfl4evKlCHD7?=
 =?us-ascii?Q?r2ab59AtPiESbYlp2rbuqzknvB/bHTBBeyC5A8gQH6NsBtYP/Mf75PkvK99j?=
 =?us-ascii?Q?gYJDXpoZhj+jd8vyhAfXQNBCbwJzxKfZswcq3Adr28kaS7r1WKNQd2YZ29HE?=
 =?us-ascii?Q?GErIvuy4ANGolYVppLTRYRBAGhgdr6b4DPlAuzes5CJE7agoOIHc80A4uCeR?=
 =?us-ascii?Q?XyQ91AGI+fz82OgkKCCI3fGQnnSRAn5sPlWkvhE6Ud3DFUX8H/xECo3BkgLs?=
 =?us-ascii?Q?wcgtJEFWiLpxAUcj5ci1vep8SmTrk7FqKSlK1VrNLrLnugyVdcOn3qJU9t6p?=
 =?us-ascii?Q?PNeMXGs5Xkcu321v9JMUASJFrc8x6lOgFO9gB4+Uu/lmRx1CFUxJgSNr4wB4?=
 =?us-ascii?Q?/bBhnC4IVkbPF4M1dOhEvIiGQQ1YtpTF20nnZUs1wRilAkMfPM5x+5Hw8BH4?=
 =?us-ascii?Q?m28H3xmeZBg41AtTPTg/wOEgwzW6pxaP5aoc/eHDC4V1BoKIIh/iHoZOhXpm?=
 =?us-ascii?Q?AU5PrtehHJ68g8NNF+kujihBhJgMRJMi3wCdK/l1I8kQtRtCpSncHiiO+wUU?=
 =?us-ascii?Q?0kzyuau7Lp+eeB7NQrl2FQqz3QCFDpFGFHWUQRyw8yRl1ctNty6IPDlAmR7P?=
 =?us-ascii?Q?GvVFF4u5oUP3JKnfYiG2uWqYSuKe+gzLRk7EVivfB08eKReKvMzYwHaDr43X?=
 =?us-ascii?Q?yfgFliQFX+qpk0Fh+YkuEziF/VcVpGszIQMaU6LUmrpDyKmhXa552qtHj2b7?=
 =?us-ascii?Q?DDTlqPu3Gw113UybmlR27nW+WbgjgOL2wS8ZinVmNOk4hWtZtoGA9yydde75?=
 =?us-ascii?Q?dVIQULuEfTSKTaFtsQu1k66PgWJvycBH7mn+?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Aug 2025 17:45:39.5595
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9ff0b281-180e-48ba-bcdb-08ddd5da3945
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF00002322.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8305

Hi all,

This series is related to
"[PATCH 0/5] Third series for R82 MPU support". There is no build dependency
between the two series.

At the end of these 2 series, R82 and R52 boot till the same point
(approximately).

Kind regards,
Ayan

Ayan Kumar Halder (2):
  arm/mpu: Enable is_xen_heap_page and co for ARM_32
  arm/mpu: Disable map_domain_page for MPU

 xen/arch/arm/Kconfig              |  2 +-
 xen/arch/arm/include/asm/mm.h     |  2 --
 xen/arch/arm/include/asm/mpu/mm.h |  5 ----
 xen/arch/arm/mpu/domain-page.c    | 45 -------------------------------
 4 files changed, 1 insertion(+), 53 deletions(-)
 delete mode 100644 xen/arch/arm/mpu/domain-page.c

-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 07 17:45:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 17:45:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073413.1436254 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk4ge-0007vY-53; Thu, 07 Aug 2025 17:45:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073413.1436254; Thu, 07 Aug 2025 17: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 1uk4ge-0007vP-0W; Thu, 07 Aug 2025 17:45:56 +0000
Received: by outflank-mailman (input) for mailman id 1073413;
 Thu, 07 Aug 2025 17:45:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=V1Uc=2T=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1uk4gd-0007fc-88
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 17:45:55 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20603.outbound.protection.outlook.com
 [2a01:111:f403:2412::603])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5c49c568-73b6-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 19:45:53 +0200 (CEST)
Received: from BL1PR13CA0404.namprd13.prod.outlook.com (2603:10b6:208:2c2::19)
 by PH7PR12MB9201.namprd12.prod.outlook.com (2603:10b6:510:2e8::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.18; Thu, 7 Aug
 2025 17:45:49 +0000
Received: from BL6PEPF0001AB4A.namprd04.prod.outlook.com
 (2603:10b6:208:2c2:cafe::3) by BL1PR13CA0404.outlook.office365.com
 (2603:10b6:208:2c2::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9031.7 via Frontend Transport; Thu, 7
 Aug 2025 17:45:49 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BL6PEPF0001AB4A.mail.protection.outlook.com (10.167.242.68) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Thu, 7 Aug 2025 17:45:48 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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; Thu, 7 Aug
 2025 12:45:48 -0500
Received: from xcbayankuma40.xilinx.com (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via
 Frontend Transport; Thu, 7 Aug 2025 12:45:47 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5c49c568-73b6-11f0-a324-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AO6sQEy15Fkp8pfP4sRM3ncTDlk4XCt0MBpx1EN3x21tipoag1m2q2kE2z2VRhsUCPJazRY7jY76/UDORSDp2Oqxsqt/hRIyD7LTQ05+iXIa6aDx3tvr5PVEu2cNKX4PMngFa8aL4w7mmHhw2p1txkpljoQJqGtpe1FKOCk0UhKgAXXlXieDvlT5eTAnjTxXfcY3+AjXYGJg69sDVOeWdlFIOB4CxWcrPOfdomSksP/tfxQ/MFJotE4AmKPe5GeiLoCDuVCxEdbrmViiFVjGQ2jzQ0nsLuWsiVu6FTOXLZA9Pg09/f3W1nOvtljeKeP0CItE7LhZBBtMWty3mQX7kA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=PMjZy1iH3csi0rSCh35yuz6rLVOJdV8SmtS3FK8InZo=;
 b=ywtbl8sZuKbPT0A0PrFw6VJm3rM+VSSeAXdNNGKHu1iZWnsN8cOE9HKqGCFuQ4Xuzy3CQVZ/MS9Zc9R4JOJHK1pxqLUb/s1ff3/HIH6v2kCOCCNHdW2LO5EE18EmwDm6Paw2GF+WFdBpUKB75WcIO2+yysHl6xGwNWaWHPGdPDsaLK7t6VC+geT01O8DkKmd9X8dYWCEe/dTjrSiVHak8ss3sXYnDz76NG2tC13vwyN12HzJk3QhuW5LRB4ObkAPJTLCR0AvmCdxke5mmh8XZSN4Nu6VlHBlOOJ5YORT93oZjLgcdGSBbuL4eJyVViBZMkk88zdz6bTdGQNhm/NVjA==
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=PMjZy1iH3csi0rSCh35yuz6rLVOJdV8SmtS3FK8InZo=;
 b=Y9Zg3HbKI85I41nsodcaZhcnBXRfFpSOoArQNRur5yVBLsB5V40mPVHE8/WqcxNhB8uT44smtRRbJm9qQBulgCnUnOw30hZJUoc5KyQEBnXUPb95s9ya5OSK9hvy5ug+T1ZioklDmRfgJSeaV2T9hUAhrmUKbNYHlMDyERZyaG0=
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=SATLEXMB03.amd.com; pr=C
From: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Ayan Kumar Halder <ayan.kumar.halder@amd.com>, Stefano Stabellini
	<sstabellini@kernel.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 v1 1/2] arm/mpu: Enable is_xen_heap_page and co for ARM_32
Date: Thu, 7 Aug 2025 18:45:28 +0100
Message-ID: <20250807174529.595577-2-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20250807174529.595577-1-ayan.kumar.halder@amd.com>
References: <20250807174529.595577-1-ayan.kumar.halder@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB03.amd.com: ayan.kumar.halder@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB4A:EE_|PH7PR12MB9201:EE_
X-MS-Office365-Filtering-Correlation-Id: 9ae6579a-18f1-448b-6553-08ddd5da3eb8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?2TlelXw/KcqJ3mhkmey5v+vQ3FxTvif2dgpLswM2lUseYzoJieDdzNLfD68l?=
 =?us-ascii?Q?ZeRFzCnKNpkzww3kQ+GQVX2mnE+qCzbhdbGbMZ8Db4PJsCMMvALY1Z+6XnzY?=
 =?us-ascii?Q?2D9d6Yo2C1FiTQYjBi7Hp4cp249cL7oXJAXhGJZEjrnKPENxjZT2qHwN3PZQ?=
 =?us-ascii?Q?X+solLVFL0fBo8WhRlaSxK1bGwDlHnDKf3V3mjmQvK6vhmvpWXi066/aVAKq?=
 =?us-ascii?Q?BFE0YWo1rEWVsH2BPPyCN0aNTDbXzBW0/8YUoItQhU5w3+cCXZAYT/BI4ZCl?=
 =?us-ascii?Q?PVAdIsvLhGCPD3Sogzdtx+3nj6r/ncSuFCHMMZd6fS9Jra70t0mluO9QiIZb?=
 =?us-ascii?Q?Fdm+yuOSQ0DjEVajpf0xfYI/FXm3lF9srzSR5VzTnTSTJiszPro/+bgC8Sth?=
 =?us-ascii?Q?XJaWMHTGF0H3NwoJhSdBiKmoG4szxPb4GnYGux7sPBWs8sEdoVtnaG/snH7s?=
 =?us-ascii?Q?bWkm2Ls7VAfSlTkCGLvo/K4Nkh2o1rQMQWKmUlU2De/krVsq8kfpavDFDmk+?=
 =?us-ascii?Q?X2paeItLKlb6S5mkz3ZsfdiJuaNH7HOWiAEvx1XawVUFlKj3HVgbxju0aq3N?=
 =?us-ascii?Q?B/Fb61oCxXNUqqHC7qQklnwxm3VZgw1JeYqBb6HxFYFznR5kROTXFvyFVgTM?=
 =?us-ascii?Q?B/tbHwKx5z7LjGuUUqby82zQ2TyE18TvKLS/Yw+x21eGgrMQWvjZ46ucA8R8?=
 =?us-ascii?Q?I84mpd6h5pP8JX4wnMBl8vn//RTGjzL4AggEIFSk++l1wc5tF8sX+y6Anp5L?=
 =?us-ascii?Q?unCPayfoplHt73PolO1ukbAR8smLhY49fjgPBzH468no7lhtpqmI/Ces8hHH?=
 =?us-ascii?Q?odpgy3Nwy5dsYQZJm9TzxLZY7ZG9KDH3+iud1sTyTsTAhuzk0gy8lWR9VU3O?=
 =?us-ascii?Q?ImQpNx3j/GRSfAjlo40uwANyXyFxAwBiowAbP6bzhUBDqSXxBRfqiZYVSRXL?=
 =?us-ascii?Q?vNECKQHOrkZeX1Qig/A/eIuPzbQoZ9E5o2KnjP2nYTKjVSHpIghfyE/gzkPi?=
 =?us-ascii?Q?NphKPjfTdsrD/q51IMa7OS8pc65AMQPn3kxFidSEWkC51GCpOeN9/svSOk1s?=
 =?us-ascii?Q?+U6xut3eGlxp4Wsx4HKkzU1xKzhOQqbs2+aviulUsd+dUXwvA/eIiAzIBBOu?=
 =?us-ascii?Q?xWPWftY6txLjDxkLZT8nNfafEw3XKWZVcUd1rXRG66fECHYkVos+XfI3w2YC?=
 =?us-ascii?Q?NqtpFcAHO/3beuMPwXsVoYq3O5w0lW/aMnaSalyabrSWpzdzrtE6b7ijmly8?=
 =?us-ascii?Q?wr+Z8z2Y4HT9046HO/+9SLDbpWRxyTbn9q3bqKr/vxZbtRsbYcI8eHjTHAdC?=
 =?us-ascii?Q?P/rWzlbyeePiZ7oBN2m86DOiSQt2dXh7ZWTOZvWw7Ns6UoHyhQtIjrYYwh69?=
 =?us-ascii?Q?uEte/kpYiqG4QP/SEQr27uSJe+isah0AOnS7sQatmLp9HBkSm8QOVqn5qbwR?=
 =?us-ascii?Q?irPlUaedoTJZmE2X5PE2fSW+O4doUP3rbsuL4HgrvQx4RRRq5Faa72oZJ6QK?=
 =?us-ascii?Q?ZUs7PBHfvnYY+1L1aa9lH5cyPNT9nv0Kumay?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(376014)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Aug 2025 17:45:48.7902
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9ae6579a-18f1-448b-6553-08ddd5da3eb8
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF0001AB4A.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB9201

In case of ARM_32, all of the RAM will be covered by a permanent contiguous
mapping (where VA == PA) and there will be a single heap. Thus, the memory
allocated from Xen heap uses PGC_xen_heap.
This is similar to the scenario described for
"CONFIG_SEPARATE_XENHEAP=n W/ DIRECT MAP OF ALL RAM" in common/page_alloc.c.

Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
---
 xen/arch/arm/include/asm/mm.h     | 2 --
 xen/arch/arm/include/asm/mpu/mm.h | 5 -----
 2 files changed, 7 deletions(-)

diff --git a/xen/arch/arm/include/asm/mm.h b/xen/arch/arm/include/asm/mm.h
index fb79aeb088..4eaa81d5e8 100644
--- a/xen/arch/arm/include/asm/mm.h
+++ b/xen/arch/arm/include/asm/mm.h
@@ -170,11 +170,9 @@ struct page_info
 #define _PGC_need_scrub   _PGC_allocated
 #define PGC_need_scrub    PGC_allocated
 
-#ifdef CONFIG_ARM_64
 #define is_xen_heap_page(page) ((page)->count_info & PGC_xen_heap)
 #define is_xen_heap_mfn(mfn) \
     (mfn_valid(mfn) && is_xen_heap_page(mfn_to_page(mfn)))
-#endif
 
 #define is_xen_fixed_mfn(mfn)                                   \
     ((mfn_to_maddr(mfn) >= virt_to_maddr(&_start)) &&           \
diff --git a/xen/arch/arm/include/asm/mpu/mm.h b/xen/arch/arm/include/asm/mpu/mm.h
index c32fac8905..e1ded6521d 100644
--- a/xen/arch/arm/include/asm/mpu/mm.h
+++ b/xen/arch/arm/include/asm/mpu/mm.h
@@ -27,11 +27,6 @@ extern pr_t xen_mpumap[MAX_MPU_REGION_NR];
 
 #define virt_to_maddr(va) ((paddr_t)((vaddr_t)(va) & PADDR_MASK))
 
-#ifdef CONFIG_ARM_32
-#define is_xen_heap_page(page) ({ BUG_ON("unimplemented"); false; })
-#define is_xen_heap_mfn(mfn) ({ BUG_ON("unimplemented"); false; })
-#endif
-
 /* On MPU systems there is no translation, ma == va. */
 static inline void *maddr_to_virt(paddr_t ma)
 {
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 07 17:45:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 17:45:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073414.1436263 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk4gf-0008A8-CL; Thu, 07 Aug 2025 17:45:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073414.1436263; Thu, 07 Aug 2025 17:45: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 1uk4gf-00089x-8L; Thu, 07 Aug 2025 17:45:57 +0000
Received: by outflank-mailman (input) for mailman id 1073414;
 Thu, 07 Aug 2025 17:45:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=V1Uc=2T=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1uk4ge-0007fc-Da
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 17:45:56 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20613.outbound.protection.outlook.com
 [2a01:111:f403:2414::613])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5db940cc-73b6-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 19:45:55 +0200 (CEST)
Received: from BYAPR05CA0054.namprd05.prod.outlook.com (2603:10b6:a03:74::31)
 by DM6PR12MB4220.namprd12.prod.outlook.com (2603:10b6:5:21d::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.21; Thu, 7 Aug
 2025 17:45:52 +0000
Received: from SJ1PEPF00002320.namprd03.prod.outlook.com
 (2603:10b6:a03:74:cafe::57) by BYAPR05CA0054.outlook.office365.com
 (2603:10b6:a03:74::31) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9031.8 via Frontend Transport; Thu, 7
 Aug 2025 17:45:52 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF00002320.mail.protection.outlook.com (10.167.242.86) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Thu, 7 Aug 2025 17:45:51 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) 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; Thu, 7 Aug
 2025 12:45:51 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Thu, 7 Aug
 2025 12:45:51 -0500
Received: from xcbayankuma40.xilinx.com (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via
 Frontend Transport; Thu, 7 Aug 2025 12:45: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>
X-Inumbo-ID: 5db940cc-73b6-11f0-a324-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=TDZCwSz6KW7Z5SEsVCrCKnE62VpN8L+16GKdE3nq70rvb5i25p/V9mPzSFB63uPEHoM1EE/IdFOFbHGGlOYU7Vl+QL9njdMYlzUVi5QEkxm1/JaboJ1JU6g65JicAvUalTgtTgo57TxbsySwYUqN6pBdXY3kUHctxuVnz1AQWMGw3EaV+8YA2lWPX5l2FQz/iHLAlWZjpUJK0qSB3EB86GBqFtPDEhKfWvNmciHjVmg97TmG/ePwUf0Mq6Bp5qfjyfza/LSKFtnY4rBPcuV771vhMCqkFpvN03SIwDAvv2WyIGcPLh+qF5YmrJNU9U2loDpgLwynaHzZhK/6GsmV6A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0M6b1UL7biVsHoVHL5Bl9AXfjXLOIBxns/y2a41TD6U=;
 b=d0LRGnjg9Y9k0AlDt/xCMzMCkzZ7Fhbn9EcFqSbX4XynC2CqssucMy8W5zV/HrQ22tLZEPbgj84e6FWIEesv8MFMOHMR4/BT4JYS42nb8/KLkEoLnXlagwf4OHbEwnVFvKY5zVKrWEBv7uo/D4tmxS0akP5fdTcK5UR3AjZgEaAxwjM5nIRFR17ROShEPXQahXdrccaSOV9Clr7vJOfmu8rbKWqEJ0wD78777GqireopjmGLkvHQLGMNEsiPsWsN27qeuG40RAg0pKZkuuuWahglp+/24HhH2GaodDZN14TppdHfGM/0ofq3bqbGSv3hU+yeHdU2eShUgdY55AlPuQ==
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=0M6b1UL7biVsHoVHL5Bl9AXfjXLOIBxns/y2a41TD6U=;
 b=CVPYaBHG6z1OiQEl2S65YpeT7nB6ryx42TgOtf4V2gLSyb4NzQ/Zz5wG/RfsgdsS/SKikqFKZg/fX5EY4wwBnj3U6e4oerPTrwrWQZjOeOHYmiG/pmFg1G4KpAfhwPB5OHMdnFxdWwWBf540Wk7XcH2iN7QgBxpO54S1SuiHDbM=
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=SATLEXMB04.amd.com; pr=C
From: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Ayan Kumar Halder <ayan.kumar.halder@amd.com>, Stefano Stabellini
	<sstabellini@kernel.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 v1 2/2] arm/mpu: Disable map_domain_page for MPU
Date: Thu, 7 Aug 2025 18:45:29 +0100
Message-ID: <20250807174529.595577-3-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20250807174529.595577-1-ayan.kumar.halder@amd.com>
References: <20250807174529.595577-1-ayan.kumar.halder@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF00002320:EE_|DM6PR12MB4220:EE_
X-MS-Office365-Filtering-Correlation-Id: e78130d8-df1c-4b30-1fa0-08ddd5da4068
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|376014|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?fqueSnf+QMKEwm/BzD70RAURYsZTYiXHj+8rfEFNkeql5UgtA1Nw+kSaBoMq?=
 =?us-ascii?Q?WazU0go6uPeqmrORKOMzyfbS6uad910jxl750xKrRH+bynRHrUvMp/YSLJqz?=
 =?us-ascii?Q?1SewUNA0SmAL0sWWaXPihVM3lHVgtmq+CI4WVYRsbtvpNA+h8uVVd2M1Asi4?=
 =?us-ascii?Q?bbpaufO4ZCPuQvXovVrmVbCQ4Xxe9ScEF1OBWE7S4H/Airlsp3Bhbk5NNlzK?=
 =?us-ascii?Q?2lQVIv4zY1/mPjQmR46WKM0v/7bmOh1a/8BZS/1zic9oXMkcWxlAx1cmlAe4?=
 =?us-ascii?Q?mXN0udvXO8uTZ3ZtyX5VTv5tIaHyA6X9QS47ZHrsawRk9quIi/bUoxOPj2W+?=
 =?us-ascii?Q?wyYDBX8D69157uXqMXrc8WGv+OjW/K7FlHdXqkSqW57qRfNXUjh05GRbL5sy?=
 =?us-ascii?Q?Vc09s2s5n6zi6IVBSFlb2p1T49tej8SDIxT4MmfWtZ9S5Dtgg7NCg/bM5+UE?=
 =?us-ascii?Q?hvstaaOvUl+hMEK5KNJXvA3ARnnoc2vhNzBpHpwV0hhYyn9Nm44EWfa8yj3W?=
 =?us-ascii?Q?wNC91FvzjUk4GJkREMboj+v9dIN0W572uZE9ucvqpd8rrIGB/GnF0WiZvHht?=
 =?us-ascii?Q?1DbIYBDoujHWqS1zcsaguMnGgxueRDswMw5maW1udjRf2EobQpXW395Bl4TL?=
 =?us-ascii?Q?LRiuacDlFPKsI/djd8sA2Nc+5bB9DxyBGTg/6ZF8KYMTtRxOHp0Qh2346DhA?=
 =?us-ascii?Q?LzoNnNcZsB8/UTCf1q25Z4LwGrGJj2hx9UyUxX/magBXFM8tczT9iip7cLxJ?=
 =?us-ascii?Q?Yf7lnW8m03pN24C3vAZGOaqBccJ2c3tlbA5pf7FFeUu2L4DIwmBiEpGlGxh8?=
 =?us-ascii?Q?ASW8wVSnsxHWjCxfeI8tEClBS99TAAlXp7wRjeBL2GMLK74WBmwO6vWnpxe+?=
 =?us-ascii?Q?t8Yxz1dnjRjOubp6CMp9JYH7bBTksM2JiXzxtRKBReW7Y7aaWq5XzWRq75lo?=
 =?us-ascii?Q?AYFa7SJkEeiBQrdwKjWzbmhVsNRIQbv/SFo1QZraC3NdabIqw/AUe4b16NAF?=
 =?us-ascii?Q?MtepORAmVJk2JKGqsyvvUXfzFdgEeI+WgTUBbZiI9MuvpX2PRtp6rBKZdZYH?=
 =?us-ascii?Q?ULcNsy/dsH2rcmR09I8fjtNoIdJ/aSFiepmqbGKYFd+92ajh1jK5HUX9/lp+?=
 =?us-ascii?Q?6OhuagVzzJpjnHohKLpG4rO5m8vorchnTw0ngyHmn6PYRYfUGx4MLjMutrbE?=
 =?us-ascii?Q?kL+IcrpZaw+Iu/dLTM6V+a+tOjP7vBSyGRlZNA4x4zt+c7Wo+i7rZCQ4dPmy?=
 =?us-ascii?Q?g/st6UDWSQ4ROb6pTb1O3KCu6tE8rZHafJJAg95GnF4+QZHI1ODaSlcMuSOd?=
 =?us-ascii?Q?cg1rqXopAQ2lnKiyysTy044DriwbssOzN/1NE/0SgJuL5kppQLjaXnhz9eBj?=
 =?us-ascii?Q?mc9lEhpXfVPKLtZYyKFl5bCAeUmQHbgKkxASztvRom02wRaYkplXsWP9YKnF?=
 =?us-ascii?Q?/6Hsb4virTIZvNArP0/xzczdKx4hCpuyTLubEgUZ0CX5VboPbHZEXq3laO98?=
 =?us-ascii?Q?nLJ2Guug6JxpcHuH4bf0sr5DfGosism1aSPW?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Aug 2025 17:45:51.5253
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e78130d8-df1c-4b30-1fa0-08ddd5da4068
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF00002320.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4220

There is no domheap for ARM_32. All of the RAM is mapped and VA == PA.

Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
---
 xen/arch/arm/Kconfig           |  2 +-
 xen/arch/arm/mpu/domain-page.c | 45 ----------------------------------
 2 files changed, 1 insertion(+), 46 deletions(-)
 delete mode 100644 xen/arch/arm/mpu/domain-page.c

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index a0c8160474..5355534f3d 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -1,7 +1,7 @@
 config ARM_32
 	def_bool y
 	depends on "$(ARCH)" = "arm32"
-	select ARCH_MAP_DOMAIN_PAGE
+	select ARCH_MAP_DOMAIN_PAGE if MMU
 
 config ARM_64
 	def_bool y
diff --git a/xen/arch/arm/mpu/domain-page.c b/xen/arch/arm/mpu/domain-page.c
deleted file mode 100644
index df5e06b6db..0000000000
--- a/xen/arch/arm/mpu/domain-page.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-
-#include <xen/bug.h>
-#include <xen/domain_page.h>
-#include <xen/mm-frame.h>
-#include <xen/types.h>
-
-void *map_domain_page_global(mfn_t mfn)
-{
-    BUG_ON("unimplemented");
-    return NULL;
-}
-
-/* Map a page of domheap memory */
-void *map_domain_page(mfn_t mfn)
-{
-    BUG_ON("unimplemented");
-    return NULL;
-}
-
-/* Release a mapping taken with map_domain_page() */
-void unmap_domain_page(const void *ptr)
-{
-    BUG_ON("unimplemented");
-}
-
-mfn_t domain_page_map_to_mfn(const void *ptr)
-{
-    BUG_ON("unimplemented");
-    return INVALID_MFN;
-}
-
-void unmap_domain_page_global(const void *va)
-{
-    BUG_ON("unimplemented");
-}
-
-/*
- * Local variables:
- * mode: C
- * c-file-style: "BSD"
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- */
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 07 17:54:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 17:54:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073444.1436273 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk4ob-0002Js-AG; Thu, 07 Aug 2025 17:54:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073444.1436273; Thu, 07 Aug 2025 17: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 1uk4ob-0002Jl-7E; Thu, 07 Aug 2025 17:54:09 +0000
Received: by outflank-mailman (input) for mailman id 1073444;
 Thu, 07 Aug 2025 17:54:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ybbA=2T=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1uk4oZ-0002Jf-O8
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 17:54:07 +0000
Received: from mail-24418.protonmail.ch (mail-24418.protonmail.ch
 [109.224.244.18]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 831abf3c-73b7-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 19:54:06 +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>
X-Inumbo-ID: 831abf3c-73b7-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=mavahywfqnhoxacldwxja6zvwa.protonmail; t=1754589245; x=1754848445;
	bh=2b7MEB+KgVsj9VrjGfGWife5O5w+xkq5MmtJBoPfeKw=;
	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=iOAfwUqqYjSXc5fY4w0Mrahsm4unTrSnHlQOHu08+5aK0Bhp7cVZ3zoDF6szWuu/a
	 7AU/NWroobbqiTVT3ByIYAxB6q2yfMNgzr1UWdLEVkepI8DzY+aLGTWs6Lo2MjB7YG
	 Yh8zYvNJPMUa9LPh0cnoHqdoC36Gcgly07wHMGweEy6uUw6kCrZcJ8NYbx2GiVUyjH
	 zG6+ZBDf+R2Bma//Dp5i4UlaScLTfb5nD/vgeDpNjyOiCuZyFn1jmt9fZVChD6AgZF
	 KfWn/FT24ql8nzAlga+uLIVRKAbOAY1Zz/QXG3r9rW4snw5RWl/bX+8zy18yAjAfJF
	 3Aeqctbl7wN0Q==
Date: Thu, 07 Aug 2025 17:54:01 +0000
To: =?utf-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
From: dmkhn@proton.me
Cc: Jan Beulich <jbeulich@suse.com>, andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org, michal.orzel@amd.com, sstabellini@kernel.org, oleksii.kurochko@gmail.com, dmukhin@ford.com, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 1/8] xen/domain: introduce common emulation flags
Message-ID: <aJToNFZ6z49nqAsF@kraken>
In-Reply-To: <aJNfGqiTDH991_8L@macbook.local>
References: <20250731192130.3948419-1-dmukhin@ford.com> <20250731192130.3948419-2-dmukhin@ford.com> <f2be5a00-63e6-489d-a26a-7d48d6ae41ad@suse.com> <aJFWQByvktADgYKu@kraken> <aJNfGqiTDH991_8L@macbook.local>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 675077b39625c45644c3f5e4eab550b65af05a9d
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Wed, Aug 06, 2025 at 03:56:42PM +0200, Roger Pau Monn=C3=A9 wrote:
> On Tue, Aug 05, 2025 at 12:54:31AM +0000, dmkhn@proton.me wrote:
> > + Cc: Oleskii
> >
> > On Mon, Aug 04, 2025 at 11:46:36AM +0200, Jan Beulich wrote:
> > > On 31.07.2025 21:21, dmkhn@proton.me wrote:
> > > > --- a/xen/include/xen/sched.h
> > > > +++ b/xen/include/xen/sched.h
> > > > @@ -652,6 +652,8 @@ struct domain
> > > >      unsigned int *llc_colors;
> > > >  #endif
> > > >
> > > > +    uint32_t emulation_flags;
> > >
> > > Just one further remark: The field probably never should have been of=
 this
> > > type; unsigned int will do, and imo will want switching to while the =
field
> > > is being moved. (Before giving an x86 ack, I want to convince myself =
though
> > > that this is moving us in the right direction.)
> >
> > Hi Jan,
> >
> > I can definitely use different mechanism for virt ns16550: add a new fi=
eld in
> > xen_arch_domainconfig. That will also simplify some of the emulation_fl=
ags
> > checks on x86 and will be more flexible wrt emulator configuration (e.g=
. I can
> > allow passing I/O ports ranges).
>=20
> For the time being, I would leave emulation_flags in
> xen_arch_domainconfig.

Ack; agreed.

>  The set of emulated devices is
> architecture-specific, and pulling it to the generic struct is IMO not
> specially helpful, as you then have the definition of the flags
> decoupled from the field definition.

NS16550 is not an arch-specific device though.
But yes, current implementation _is_ arch-specific.

>=20
> For the emulated UART, I don't think you need a new field in
> xen_arch_domainconfig, just a new bit in emulation_flags? IOW:

I think new field is needed, since there are four legacy PC UART resource
sets selectable by the user. I'm dropping COM port build-time selection
and reworking it to be xl-configurable. That will be more flexible and
there will be less in-hypervisor changes.

>=20
> #define _XEN_X86_EMU_VUART          11
> #define XEN_X86_EMU_VUART           (1U << _XEN_X86_EMU_VUART)
>=20
> Thanks, Roger.



From xen-devel-bounces@lists.xenproject.org Thu Aug 07 17:58:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 17:58:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073452.1436283 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk4t6-0002sW-Re; Thu, 07 Aug 2025 17:58:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073452.1436283; Thu, 07 Aug 2025 17:58: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 1uk4t6-0002sP-O6; Thu, 07 Aug 2025 17:58:48 +0000
Received: by outflank-mailman (input) for mailman id 1073452;
 Thu, 07 Aug 2025 17:58:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ck7v=2T=gmail.com=julien.grall.oss@srs-se1.protection.inumbo.net>)
 id 1uk4t6-0002sJ-95
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 17:58:48 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2a20f6c1-73b8-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 19:58:46 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-458bece40fcso7575925e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 10:58: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>
X-Inumbo-ID: 2a20f6c1-73b8-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754589526; x=1755194326; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=ZaVtEeTFOPXKnjN/YUL4KsNEe+UKZQVlkQ3V5nxpgm8=;
        b=itC1UwFY0KAl9Wl+WOYQ0z0ZaCWWn6FIbdkz6adoeoGBqQEZtwT/9Acmu+Ku8jWjfY
         OzzOdyHL+smkAUjCwcL4M/IjuRnYlWU0fjW4Cs9qlu7wy7PWm+Vrd+pmNACTJ1vNpba5
         KosJSYC+bwaRj6O0o15HP2Dw7BuxUkJA+b2zPTSrNA1bYtQCJmTsnx1DA2BUwJMIkw1j
         r/ENs5qyuY8jPFXM4UUO8e9ELeDxCBSqWbOjoedhMCRNfnk71cgOPyzE/hXzpcKpbQgR
         Aj86w8sz7301i7Vq826McXMyxW5JLTeiS+PWu7rY3O/bxktsnt027a7LtXUjIcKtBn8Q
         n3rA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754589526; x=1755194326;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=ZaVtEeTFOPXKnjN/YUL4KsNEe+UKZQVlkQ3V5nxpgm8=;
        b=cRmDwphruT/O81eJLlN3PTFi7SIMlYtsxkkp4tdPcdfgg47mtz2WytaOyx33udn3Hq
         4kyZrddIWmFPL1UsrYL8iDZsHdCGzfUOvUb8ao+yvnfg4OB46An4v+KNi4v5Yj26AD0s
         B5ISCmFdxcOCDpS+56DbLtUbpwiV4PiN32LsNKE0dl5uJMjctSHsCViy4imG8bL/gBEx
         E8/0bYbG1ZzNfcxhknTzKcEBE+KX5K/aePp2GJgJWCvFPaJA8lhqt0GxKge6fb7r4nNu
         e8aP+PStY0MF9BmDJv3rR9be5iCKKEp6Ka76drL2oMjpmpN3iRGQirY8DD3kYMi7xnrl
         4pvQ==
X-Gm-Message-State: AOJu0Yzzfg/csu1pxxnCSX0V8ItqtumCXA9BzspFv6zvi6poOMoROkrg
	HETbhfUFahvzq99HiosN0S5Y6Bskz/MJ+6CeMCfRIQcRnvBIwvA1rsSBc6Pc6hOnetS6FC+pop2
	24XUgpUJubCi82yeVEggqW/PO3AuhKoM=
X-Gm-Gg: ASbGncskd0BzqmQOctcc1/s1wAioPO2F0Vjme1BtjMysT0VTFy2H4vohB8+RrpgwZ/v
	feWVuiSgTaw7PXnMy0z1tlOJZS+IvPJ4MkMj8vp+c4M3ndSIV57Eo5La2VVPfBO1V8M397KCHng
	22k5irysvx6O0luUyG8xGkvgGzZqz+xz5Yf5GCmXSjAZ06aDdCdOZteCNbab1hBb+aIJC8RPy06
	U2QLBYUf8GT3EDsY2PpJbwuhG9MZ6v5Vo57ONXRow==
X-Google-Smtp-Source: AGHT+IElGcaCeliyS+2kBjL7DGwVcK2/gtoMdO6qLtpZ/ET68j1eLakrtnURgb2xsHfWj9Y/ZM+woDR2QIjO39E4bLU=
X-Received: by 2002:a05:6000:4283:b0:3b8:d8d1:6ceb with SMTP id
 ffacd0b85a97d-3b900b2de47mr182786f8f.24.1754589525913; Thu, 07 Aug 2025
 10:58:45 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1754580687.git.milan_djokic@epam.com>
In-Reply-To: <cover.1754580687.git.milan_djokic@epam.com>
From: Julien Grall <julien.grall.oss@gmail.com>
Date: Thu, 7 Aug 2025 18:58:34 +0100
X-Gm-Features: Ac12FXzeEfkEXXhWH7z12JYf_ohAFyKMyyVzXgNwl9xI8tiQszRr80PO1zzg6Po
Message-ID: <CAJ=z9a1eM6M+Gagond9TiFtF7c7EEQKOKHANcvDWDhW_3JzqOA@mail.gmail.com>
Subject: Re: [PATCH 00/20] Add SMMUv3 Stage 1 Support for XEN guests
To: Milan Djokic <milan_djokic@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
	Bertrand Marquis <bertrand.marquis@arm.com>, Rahul Singh <rahul.singh@arm.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, 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>, 
	Anthony PERARD <anthony.perard@vates.tech>, Nick Rosbrook <enr0n@ubuntu.com>, 
	George Dunlap <gwd@xenproject.org>, Juergen Gross <jgross@suse.com>, 
	Andrew Cooper <andrew.cooper3@citrix.com>
Content-Type: multipart/alternative; boundary="0000000000006b36ce063bca3518"

--0000000000006b36ce063bca3518
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Milan,

On Thu, 7 Aug 2025 at 17:55, Milan Djokic <milan_djokic@epam.com> wrote:

> This patch series represents a rebase of an older patch series implemente=
d
> and
> sumbitted by Rahul Singh as an RFC:
> https://patchwork.kernel.org/project/xen-devel/cover/cover.1669888522.git=
.rahul.singh@arm.com/
> .
> Original patch series content is aligned with the latest xen structure in
> terms of common/arch-specific code structuring.
> Some minor bugfixes are also applied:
> - Sanity checks / error handling
> - Non-pci devices support for emulated iommu


>
> Overall description of stage-1 support is available in the original
> patch series cover letter. Original commits structure with detailed
> explanation for each commit
> functionality is maintained.


I am a bit surprised not much has changed. Last time we asked a document to
explain the overall design of the vSMMU including some details on the
security posture. I can=E2=80=99t remember if this was ever posted.

If not, then you need to start with that. Otherwise, if is going to be
pretty difficult to review this series.

Cheers,


>
> Patch series testing is performed in qemu arm environment. Additionally,
> stage-1 translation for non-pci devices is verified on a Renesas platform=
.
>
> Jean-Philippe Brucker (1):
>   xen/arm: smmuv3: Maintain a SID->device structure
>
> Rahul Singh (19):
>   xen/arm: smmuv3: Add support for stage-1 and nested stage translation
>   xen/arm: smmuv3: Alloc io_domain for each device
>   xen/arm: vIOMMU: add generic vIOMMU framework
>   xen/arm: vsmmuv3: Add dummy support for virtual SMMUv3 for guests
>   xen/domctl: Add XEN_DOMCTL_CONFIG_VIOMMU_* and viommu config param
>   xen/arm: vIOMMU: Add cmdline boot option "viommu =3D <boolean>"
>   xen/arm: vsmmuv3: Add support for registers emulation
>   xen/arm: vsmmuv3: Add support for cmdqueue handling
>   xen/arm: vsmmuv3: Add support for command CMD_CFGI_STE
>   xen/arm: vsmmuv3: Attach Stage-1 configuration to SMMUv3 hardware
>   xen/arm: vsmmuv3: Add support for event queue and global error
>   xen/arm: vsmmuv3: Add "iommus" property node for dom0 devices
>   xen/arm: vIOMMU: IOMMU device tree node for dom0
>   xen/arm: vsmmuv3: Emulated SMMUv3 device tree node for dom0less
>   arm/libxl: vsmmuv3: Emulated SMMUv3 device tree node in libxl
>   xen/arm: vsmmuv3: Alloc virq for virtual SMMUv3
>   xen/arm: vsmmuv3: Add support to send stage-1 event to guest
>   libxl/arm: vIOMMU: Modify the partial device tree for iommus
>   xen/arm: vIOMMU: Modify the partial device tree for dom0less
>
>  docs/man/xl.cfg.5.pod.in                |  13 +
>  docs/misc/xen-command-line.pandoc       |   7 +
>  tools/golang/xenlight/helpers.gen.go    |   2 +
>  tools/golang/xenlight/types.gen.go      |   1 +
>  tools/include/libxl.h                   |   5 +
>  tools/libs/light/libxl_arm.c            | 123 +++-
>  tools/libs/light/libxl_types.idl        |   6 +
>  tools/xl/xl_parse.c                     |  10 +
>  xen/arch/arm/dom0less-build.c           |  72 ++
>  xen/arch/arm/domain.c                   |  26 +
>  xen/arch/arm/domain_build.c             | 103 ++-
>  xen/arch/arm/include/asm/domain.h       |   4 +
>  xen/arch/arm/include/asm/viommu.h       | 102 +++
>  xen/common/device-tree/dom0less-build.c |  31 +-
>  xen/drivers/passthrough/Kconfig         |  14 +
>  xen/drivers/passthrough/arm/Makefile    |   2 +
>  xen/drivers/passthrough/arm/smmu-v3.c   | 369 +++++++++-
>  xen/drivers/passthrough/arm/smmu-v3.h   |  49 +-
>  xen/drivers/passthrough/arm/viommu.c    |  87 +++
>  xen/drivers/passthrough/arm/vsmmu-v3.c  | 895 ++++++++++++++++++++++++
>  xen/drivers/passthrough/arm/vsmmu-v3.h  |  32 +
>  xen/include/public/arch-arm.h           |  14 +-
>  xen/include/public/device_tree_defs.h   |   1 +
>  xen/include/xen/iommu.h                 |  14 +
>  24 files changed, 1935 insertions(+), 47 deletions(-)
>  create mode 100644 xen/arch/arm/include/asm/viommu.h
>  create mode 100644 xen/drivers/passthrough/arm/viommu.c
>  create mode 100644 xen/drivers/passthrough/arm/vsmmu-v3.c
>  create mode 100644 xen/drivers/passthrough/arm/vsmmu-v3.h
>
> --
> 2.43.0
>

--0000000000006b36ce063bca3518
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div><div dir=3D"auto">Hi Milan,</div><div><br><div class=3D"gmail_quote"><=
/div></div></div><div><div dir=3D"ltr" class=3D"gmail_attr">On Thu, 7 Aug 2=
025 at 17:55, Milan Djokic &lt;<a href=3D"mailto:milan_djokic@epam.com" tar=
get=3D"_blank">milan_djokic@epam.com</a>&gt; wrote:<br></div><blockquote cl=
ass=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;p=
adding-left:1ex">This patch series represents a rebase of an older patch se=
ries implemented and<br>
sumbitted by Rahul Singh as an RFC: <a href=3D"https://patchwork.kernel.org=
/project/xen-devel/cover/cover.1669888522.git.rahul.singh@arm.com/" rel=3D"=
noreferrer" target=3D"_blank">https://patchwork.kernel.org/project/xen-deve=
l/cover/cover.1669888522.git.rahul.singh@arm.com/</a>.<br>
Original patch series content is aligned with the latest xen structure in t=
erms of common/arch-specific code structuring. <br>
Some minor bugfixes are also applied:<br>
- Sanity checks / error handling<br>
- Non-pci devices support for emulated iommu</blockquote><blockquote class=
=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd=
ing-left:1ex" dir=3D"auto"><br>
<br>
Overall description of stage-1 support is available in the original<br>
patch series cover letter. Original commits structure with detailed explana=
tion for each commit<br>
functionality is maintained.</blockquote><div dir=3D"auto"><br></div></div>=
<div><div dir=3D"auto">I am a bit surprised not much has changed. Last time=
 we asked a document to explain the overall design of the vSMMU=C2=A0<span =
style=3D"font-family:-apple-system,sans-serif">including some details on th=
e security posture. I can=E2=80=99t remember if this was ever posted.</span=
></div><div dir=3D"auto"><span style=3D"font-family:-apple-system,sans-seri=
f"><br></span></div><div dir=3D"auto"><span style=3D"font-family:-apple-sys=
tem,sans-serif">If not, then you need to start with that. Otherwise, if is =
going to be pretty difficult to review this series.</span></div><div dir=3D=
"auto"><span style=3D"font-family:-apple-system,sans-serif"><br></span></di=
v><div dir=3D"auto">Cheers,</div></div><div><div><div class=3D"gmail_quote"=
><div dir=3D"auto"><br></div><blockquote class=3D"gmail_quote" style=3D"mar=
gin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex" dir=3D"auto"><b=
r>
<br>
Patch series testing is performed in qemu arm environment. Additionally,<br=
>
stage-1 translation for non-pci devices is verified on a Renesas platform.<=
br>
<br>
Jean-Philippe Brucker (1):<br>
=C2=A0 xen/arm: smmuv3: Maintain a SID-&gt;device structure<br>
<br>
Rahul Singh (19):<br>
=C2=A0 xen/arm: smmuv3: Add support for stage-1 and nested stage translatio=
n<br>
=C2=A0 xen/arm: smmuv3: Alloc io_domain for each device<br>
=C2=A0 xen/arm: vIOMMU: add generic vIOMMU framework<br>
=C2=A0 xen/arm: vsmmuv3: Add dummy support for virtual SMMUv3 for guests<br=
>
=C2=A0 xen/domctl: Add XEN_DOMCTL_CONFIG_VIOMMU_* and viommu config param<b=
r>
=C2=A0 xen/arm: vIOMMU: Add cmdline boot option &quot;viommu =3D &lt;boolea=
n&gt;&quot;<br>
=C2=A0 xen/arm: vsmmuv3: Add support for registers emulation<br>
=C2=A0 xen/arm: vsmmuv3: Add support for cmdqueue handling<br>
=C2=A0 xen/arm: vsmmuv3: Add support for command CMD_CFGI_STE<br>
=C2=A0 xen/arm: vsmmuv3: Attach Stage-1 configuration to SMMUv3 hardware<br=
>
=C2=A0 xen/arm: vsmmuv3: Add support for event queue and global error<br>
=C2=A0 xen/arm: vsmmuv3: Add &quot;iommus&quot; property node for dom0 devi=
ces<br>
=C2=A0 xen/arm: vIOMMU: IOMMU device tree node for dom0<br>
=C2=A0 xen/arm: vsmmuv3: Emulated SMMUv3 device tree node for dom0less<br>
=C2=A0 arm/libxl: vsmmuv3: Emulated SMMUv3 device tree node in libxl<br>
=C2=A0 xen/arm: vsmmuv3: Alloc virq for virtual SMMUv3<br>
=C2=A0 xen/arm: vsmmuv3: Add support to send stage-1 event to guest<br>
=C2=A0 libxl/arm: vIOMMU: Modify the partial device tree for iommus<br>
=C2=A0 xen/arm: vIOMMU: Modify the partial device tree for dom0less<br>
<br>
=C2=A0docs/man/<a href=3D"http://xl.cfg.5.pod.in" rel=3D"noreferrer" target=
=3D"_blank">xl.cfg.5.pod.in</a>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 |=C2=A0 13 +<br>
=C2=A0docs/misc/xen-command-line.pandoc=C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 =
=C2=A07 +<br>
=C2=A0tools/golang/xenlight/helpers.gen.go=C2=A0 =C2=A0 |=C2=A0 =C2=A02 +<b=
r>
=C2=A0tools/golang/xenlight/types.gen.go=C2=A0 =C2=A0 =C2=A0 |=C2=A0 =C2=A0=
1 +<br>
=C2=A0tools/include/libxl.h=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0|=C2=A0 =C2=A05 +<br>
=C2=A0tools/libs/light/libxl_arm.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 | 123 +++-<br>
=C2=A0tools/libs/light/libxl_types.idl=C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 =
=C2=A06 +<br>
=C2=A0tools/xl/xl_parse.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 10 +<br>
=C2=A0xen/arch/arm/dom0less-build.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0|=C2=A0 72 ++<br>
=C2=A0xen/arch/arm/domain.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0|=C2=A0 26 +<br>
=C2=A0xen/arch/arm/domain_build.c=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0| 103 ++-<br>
=C2=A0xen/arch/arm/include/asm/domain.h=C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 =
=C2=A04 +<br>
=C2=A0xen/arch/arm/include/asm/viommu.h=C2=A0 =C2=A0 =C2=A0 =C2=A0| 102 +++=
<br>
=C2=A0xen/common/device-tree/dom0less-build.c |=C2=A0 31 +-<br>
=C2=A0xen/drivers/passthrough/Kconfig=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=
=A0 14 +<br>
=C2=A0xen/drivers/passthrough/arm/Makefile=C2=A0 =C2=A0 |=C2=A0 =C2=A02 +<b=
r>
=C2=A0xen/drivers/passthrough/arm/smmu-v3.c=C2=A0 =C2=A0| 369 +++++++++-<br=
>
=C2=A0xen/drivers/passthrough/arm/smmu-v3.h=C2=A0 =C2=A0|=C2=A0 49 +-<br>
=C2=A0xen/drivers/passthrough/arm/viommu.c=C2=A0 =C2=A0 |=C2=A0 87 +++<br>
=C2=A0xen/drivers/passthrough/arm/vsmmu-v3.c=C2=A0 | 895 ++++++++++++++++++=
++++++<br>
=C2=A0xen/drivers/passthrough/arm/vsmmu-v3.h=C2=A0 |=C2=A0 32 +<br>
=C2=A0xen/include/public/arch-arm.h=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0|=C2=A0 14 +-<br>
=C2=A0xen/include/public/device_tree_defs.h=C2=A0 =C2=A0|=C2=A0 =C2=A01 +<b=
r>
=C2=A0xen/include/xen/iommu.h=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0|=C2=A0 14 +<br>
=C2=A024 files changed, 1935 insertions(+), 47 deletions(-)<br>
=C2=A0create mode 100644 xen/arch/arm/include/asm/viommu.h<br>
=C2=A0create mode 100644 xen/drivers/passthrough/arm/viommu.c<br>
=C2=A0create mode 100644 xen/drivers/passthrough/arm/vsmmu-v3.c<br>
=C2=A0create mode 100644 xen/drivers/passthrough/arm/vsmmu-v3.h<br>
<br>
-- <br>
2.43.0<br>
</blockquote></div></div>
</div>

--0000000000006b36ce063bca3518--


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 18:31:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 18:31:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073324.1436294 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk5Ox-0000cr-A9; Thu, 07 Aug 2025 18:31:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073324.1436294; Thu, 07 Aug 2025 18:31: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 1uk5Ox-0000ck-4c; Thu, 07 Aug 2025 18:31:43 +0000
Received: by outflank-mailman (input) for mailman id 1073324;
 Thu, 07 Aug 2025 16:55:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5oaB=2T=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1uk3u8-00073q-1E
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 16:55:48 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5d133ed2-73af-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 18:55:46 +0200 (CEST)
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com (2603:10a6:102:ea::23)
 by AS8PR03MB7336.eurprd03.prod.outlook.com (2603:10a6:20b:2ec::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.16; Thu, 7 Aug
 2025 16:55:44 +0000
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f]) by PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f%6]) with mapi id 15.20.9009.013; Thu, 7 Aug 2025
 16:55: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>
X-Inumbo-ID: 5d133ed2-73af-11f0-a324-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=u1B9aUjeSW81eRL76e91fjpYwCyFKE8E+wVvBTCkkOF27S2D5u104WKlB+b5rdOfuWc0P1rBKXrWebmzJGGbLF8xiMLVfmqmHhn6ViVYh7CYUpxdLneCOL64Rblixme5/MNFPvYg5cfqkLEoAiSovE0yQYFxVnt33gCgdBVWOpmlksKn/XF22XhIPkCr1LcTVU/xqeopaV6r+IH44Uypl/CkfJitxeWsYYZfHRJBfSIIHhEHz3iXqqRNRgLUJ30xdZpy53x+0sDJfCv2KbeuGnUVHOYKFYuJ1bnJ0C36opLTS/pR2xh03kTV89pdqMWgmxeqmEvGE7A5pfea45Va1g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ztXQRdBq5/xIoulB1DpAIj1IW5SpeQp22L/j7ir9SBQ=;
 b=EUHT42F1OGC47q1jy6tH+wuvnYtSw+tKGx67ADiBr5AUENlzWl3TQPbboyh6BzZK/7Gg7ZQYLXkeZDSkT0NhEROm33XQkKUBd7R5lMUQgQLN53BX5gy+BM1C2ND0iKnqkuU0CdkkHXfdoYi7u1lQhYYfCuNbRRVfbvOWjdz+VAJ2ddmKC+wOAmqVDQ4YEg71rRcI7jmkVnuX+Nfoou89Rl5I9U0YA6GkAZT0jARJmdVa5f6vLReyeL6duKuvYqR6i5pYmftruPhFaRzuu4haZZvZEFDRQJpaV0aE6GZyY/xzjlJGzMx6BbyivZslYG3twGRf4YpybyYYMpx0doFmNA==
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=ztXQRdBq5/xIoulB1DpAIj1IW5SpeQp22L/j7ir9SBQ=;
 b=keqNsVm+h+ZKKdsbBIL5TKHHTe93Jl75dO2alNfYLCmkfOH4/ItSfCvcyZ0SBK71XuFs/M2uueTdN6Zfgi9g4z72Shl9fvsV1cVMY76XcjC/aPkEMON4D0krCZGI1V8R2qTpCdj0XCEujB7pcjGV/URz27THdS/Yp/OtbCs6qjt88oDO7Y5kJJEirg0PZJchmtxXdU4J5cnY6En7QWweam4nPJaT+ge143LFnAOtVuXLAc1KBFnmglPPEgtA8FFK5E5lMHHBycBxyA/OQ2JEV+RkG6MhdbgDOp6jEVfKojD1XC0IaxK1evCRxYoSfy55JoeeAuX846QqMb9sIpRrSw==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Milan Djokic <milan_djokic@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>,
	Jan Beulich <jbeulich@suse.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Nick
 Rosbrook <enr0n@ubuntu.com>, George Dunlap <gwd@xenproject.org>, Juergen
 Gross <jgross@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH 00/20] Add SMMUv3 Stage 1 Support for XEN guests
Thread-Topic: [PATCH 00/20] Add SMMUv3 Stage 1 Support for XEN guests
Thread-Index: AQHcB7wdmg15F24Gc0ClRsxpCVedRA==
Date: Thu, 7 Aug 2025 16:55:44 +0000
Message-ID: <cover.1754580687.git.milan_djokic@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: PA4PR03MB7136:EE_|AS8PR03MB7336:EE_
x-ms-office365-filtering-correlation-id: 37fde6cf-ed8e-4272-4b22-08ddd5d33ff8
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|7416014|376014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?UG5YVzZnMTRHSzFzQXBqN3VDVWFQS01TWm5LT0FSNkROTjZxY1daVXdTT3F1?=
 =?utf-8?B?ak5kdWxSTWRmZVF6cW9xVXRhNGxQQWFSMi9vYnoxY2NZVHhJT1FnZzgwalF1?=
 =?utf-8?B?NjltNUdFc2VxYUM5czV1QmwwQzM0ajNVSnFoR0ZSaWtnWWpPalJaUWdFMGpu?=
 =?utf-8?B?UlNDR21XbzBxRitrc255Y3hqRm81YVFna2ZadnFOTnpQd21qbG1QeEhnVnpB?=
 =?utf-8?B?cXJLOWRkTE1iOW5mblU2S2VtdVNUY25FTENYQ3IxcGhjUlY4TU5PKzA3OHdp?=
 =?utf-8?B?L3FWRVl5Y3RzdmVoUHM0ZWNUN0FqbzhtVmF3S01LTXp3SHNVZUlydGFXNmxH?=
 =?utf-8?B?dHVpeUtaWjhpZWxSU096SVJLSm9DTFJZdzg1OUFhU1FUYjkzOVQ4L01RbEg1?=
 =?utf-8?B?TkcyeDliZkd0WFlOK0ZkQlNWOXJSRmd2Ty9DYW1xWjlja21pbWpjNXE2bklN?=
 =?utf-8?B?dUxGaGhRSHJ4bUwxZk5qMDUzRDJLWHBvZG9McHFleExzbEJ6by9BY21QN2ZV?=
 =?utf-8?B?OWh4UjBhdXpXSUpVcHBVclpIV05aV0lNdDgxbFMySnlrL2pCYU04ckF3Rmdr?=
 =?utf-8?B?a3NUOGhpU3J3aVY1aGJKN1pCYkJ6Qk5mOHdoWGFLU1VDK1BvSjhGYnNvMy9q?=
 =?utf-8?B?MHRpOW81MERuMDg5Q2xkZXdjU1NRUGpJb3VJWDVuMFZ5Rk5PZGZ2YkQzdVB5?=
 =?utf-8?B?L0FkQm84OHc3ZkpxU003S1U1UDY1aDdrSWx2a241K0laQjdOZGFpWkNHQzI1?=
 =?utf-8?B?eTVQZXJmL2NIUWFuNTRlRERkcU1jR002R0lQT0UvTzhWakQwNEhjWXJxU2ZF?=
 =?utf-8?B?UG5TTmdHMC83dFR5dU9yMkpqcjgrWWlZbHdCdCtTTmlqR1BjWFg3VWhKa2dR?=
 =?utf-8?B?R21pRHNzNkRvbVVDUGRQMkNocWl2NGFIQ2dGZllOQkZGSlR5dlBMU0JRU1Jm?=
 =?utf-8?B?MXBqY3NjM1BkTm5TL01OMUV6KzB0eUFEcVB2anNxaGhjSkppbGh0a0UyWnNt?=
 =?utf-8?B?T3FPZ0dNUCtaM2pCd1hHallaMmxRbCtzbEM1eUUwL1ExK0V6R0FJSnE3T0NF?=
 =?utf-8?B?LzVLTW9Wa1NqSjY5SWpXUmdDdkdEK2lXejJiemlDSklSUGN6NEFmdTFpOEtr?=
 =?utf-8?B?clk5WWdtelQ1U0t2Qm9pY3QvcC9UZFR3WnJVdmFjVmU0bzk3VVIxbTFLKzYv?=
 =?utf-8?B?aXdHcExUVENGZ3lvT3ppOUFzbzQwdEhQV3psWWl6NmI4M3VFb0Z4a2wvMFVJ?=
 =?utf-8?B?K2VKY2dCbElDSW9DVHZ1QVBpU1Q1NklkMGNhZGVpaXdhRXJnNHM3OGtqeXFU?=
 =?utf-8?B?VHZsc1luM1RQa3UycUhVSjJlZ1haUHVOYisvWWh1NytuOCt4cDhYdlJVSW1E?=
 =?utf-8?B?a25XaGZZVTVYQ1c5blEvQUJucy9ua1owOUl6d3hPUXlrYzFmVkhHY1Yxdkoy?=
 =?utf-8?B?VmxNbjZCcHVYSUdJN2I2c1JyZXhSTUU0ZGtKdjc1YmZHYU1wVm5iUEpOdG9r?=
 =?utf-8?B?RXZCUHYvQnpDV2JTYzJIM1hqc2JNOHNWZFdFTFdjekVxYUJMZE9lMjhyblk4?=
 =?utf-8?B?OUZ2cU0wYlpyYmcyaklSNy9tT0I5cHFKdHcvN3Jidzh3M1Jlc2RqU1BIdGRw?=
 =?utf-8?B?VVpKVzVta3EyTUxualpkTWh6MkY4MjgwK3NaUDVjaXJFdk5jM1c1WUkwd0V2?=
 =?utf-8?B?NTk3OUxaQ1hHWWpzcHRIa2FmUEM1V3lvQU1hMisyVHRlSHhHZ3AzSXZrQlZr?=
 =?utf-8?B?ZWs0WWdQZVhOVWdkRzZXaHQrZHltS2hZVmVyWlNhb2dib0x5WG02ODRCTitJ?=
 =?utf-8?B?aGVmNW5XRDNYbmMxb1JIZThPZ1V1SU0vQ043M3NCeGk4Vno5RVpuYkVqOHB0?=
 =?utf-8?B?QWpzUVNoNEdzekMvTG0yWjJUanlXUGpaOG5YTW5JNHQ3UmdLc3FxbjVwZktZ?=
 =?utf-8?B?R2wwNDd1dFZlWTBnUXlXd0xveGRNQkxUVXA1SXZYaWlXSUI2REx2cE81ZEFC?=
 =?utf-8?Q?XUwo2a6FG50+f7yU2h2nrCiV3wa0Y0=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR03MB7136.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?QXVCRzVkZE51OWNRTEhFL0lPd0RaSktCWXhxbnh6RHlQQ1dWd3p6ZDMxOVhx?=
 =?utf-8?B?UlFmaVU1eTZQSXRndytwdjFpSXRkSmo4OFFHa3BBY2J1bEVJZHhDbnFRNHJu?=
 =?utf-8?B?UzhsRk1ITEg1ZlQyL2UrcnBXWkVDMWxUY1hDamovK3RrdWVEcHR3ejRIUjJ3?=
 =?utf-8?B?TTZUd05kZ2daTEcvV0tCcE81WmJvTVJkQ2MrUUIxSFFVYzlDK3NWQ3dSNW5C?=
 =?utf-8?B?NmFJY0R2bzNrMWtxNXc2Nk56cm1xZVc1ZjBuVnRlSkpCaENKVnd1RmhCWDk4?=
 =?utf-8?B?aWVBOVpaZXlnZm91NXJhSnNqR3NVc2hqNjZBYlpWNzNqTDYzWm5IL09tT0dp?=
 =?utf-8?B?OS92K2dBVDhlUDNmaTl6K0dFcW92UjFYRUpPcjJ3TEt4SUNPRDNlc3dEY0hC?=
 =?utf-8?B?NUhURkFKWS9KbTdFV2h1QWRsTHY1SnVTRTFwcWhSOStqeVZ6R0Q3Q05UaHVx?=
 =?utf-8?B?ZEp3WVp2QW03Vm9FS2k5WlBLckdmc3VKVGZmdzJIa0pNV1BmdHpVcFBtME90?=
 =?utf-8?B?RWJXVEtYaldJdkNUWENRNGgxN1hSRDBGOFN4MFNhTGhSWTBIeWhraEQzaTJ5?=
 =?utf-8?B?bklCMTRwQkc4TDFXemRyMTN3TWhRTW11aDEzMUhrODBWZXJKQjEwVFYyS3Rl?=
 =?utf-8?B?cnRzcjY1Wk5MTWtqSDdXNXN0OXU0ZjB0Vk9XRVpWQko3ckNhRWNZaXRyRVlV?=
 =?utf-8?B?T1hOY2ZhNEhSUmJlaU5YR3laK1g1ZE9OcEhSVG1LZnVhUVZGTEpOb2FRd0FP?=
 =?utf-8?B?eVh1VGMrTTFvdjQ1bFFSWXpZUzFVOVB6N00ySFlHemE2U2Qrcmx5K25jZEo1?=
 =?utf-8?B?TlFyOFNDTDZ2RDdNZGdCTmNJMGViK081akc2bFZCQ0RJbjlsR09YcTJBOEtQ?=
 =?utf-8?B?S3NmOGJIWjlsRE96dlZjSFcvTENEN2dicDZMODIxY215QjZDbzduZEpXVVhm?=
 =?utf-8?B?V0FXVFZlbHM3c293cTBWRXF1NERVN1hPTkFqRlNtcExZcjZINFhFVlpjajVW?=
 =?utf-8?B?MWU1UFYvSEEzRGZqb3JmUmh0QVU5eHZNR3ZhM2svN1dnQ0RMV2x3TmZLYldZ?=
 =?utf-8?B?ZEo1dEJKMXlvcWF1dFJVSGNuK2lTYmtVcDhGbURzd2QycnFsbXdEc05TUGNX?=
 =?utf-8?B?VHlaSjhBOEVCcVhJblBoSXNXRFZrckZnNjY5ZGpyMXNWM2tDOElva3NNTU5M?=
 =?utf-8?B?NUJFU0tVQ2xYVnpsRldkc1JSMTljTS9zZjMzMk51TlZYdTNRaTVFTHpQYlVT?=
 =?utf-8?B?TlJGOG5MK2YyZm5HZmpJUGU3S3BaMmxkZkRqVnpJdGErMUx4bEYyU1l6QXd2?=
 =?utf-8?B?RGZZbDN0K1lta1l1Slg4a01NbGFMZWZmY3BsdG82Rm5JN2NnRExhSFUyV00w?=
 =?utf-8?B?cjU5WWNwcmFYQU5rRDgvWEtGeFhidEx4S0xMMjMvbU5lUDdHaE9rU3BWeDZs?=
 =?utf-8?B?alZPbTRNWlNXd3lSQkFISDNLY3lvaW1uVXlwMFhjcUdZQUoyaUpYcDBzTlFY?=
 =?utf-8?B?VWRkV2JpUTcwMFNVLzNZZUY3dUEzRCthSXZEL2FzWDZaVDNPbGo2b2xoMTdj?=
 =?utf-8?B?K0dFLzg1WVdqOThhaGJIWU13aW9TeDVjb0xOUk1WRnp2TC90d210SjJMdjhD?=
 =?utf-8?B?YW9qUmN5cjRvT0dIWWlQeXpkR2tISi9Tb0RRdVk1NGJpYjZnUHBsK0g4U09X?=
 =?utf-8?B?UHd5cDg3WXk0WFRQSFdIcDlKbUVHTm5pbDlKS0VDRTU2ckYyeituc2VpRkxW?=
 =?utf-8?B?Mk5WVUp5cS95MWtQR2I1MWR6TS9lSjN4UnRsRm5WREJOUmd3TkNtVGVRZmVD?=
 =?utf-8?B?UEdGQjRjK2ZYeHJpbnFJYTJZd1dwVkdWd3BTc1QyTUlEa0g3REhJeW5oY3JU?=
 =?utf-8?B?MjFMRUpFQ2F6dVVlSzNkQmhsOVZGUnZ5UGVpdXVhYWU3NDROQjVYVVNSUnJ5?=
 =?utf-8?B?RlF6T21NeGNqMFArSzBmTmdDN0J6U3kwODZXS0tBci9BeGhvbXMvZlJRakxC?=
 =?utf-8?B?bzVVKzE3bWtobldHOG9wZThxUTVUNEplVXhVNFN3cFlOUjFjeEhoWjJYWldm?=
 =?utf-8?B?VEFqMU9HL3IvL2czMkVUQkkrWGtKV0FoT09zbzl0STFPZUVtSitaU0U5eWVa?=
 =?utf-8?Q?OvU8iD8z5vrOBfgGc1uvS1h09?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <CD23E2052339E645986CD34D9F7A0CBA@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: PA4PR03MB7136.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 37fde6cf-ed8e-4272-4b22-08ddd5d33ff8
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Aug 2025 16:55:44.4086
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: TGfn0QRSyubO2xgfssrMlug5W6ChPcpI+USsyhxHBvqO5M+mG/dfpL3dU1dxwR0xm3cWyIVFyyQgqjpLXy+Dfw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7336

VGhpcyBwYXRjaCBzZXJpZXMgcmVwcmVzZW50cyBhIHJlYmFzZSBvZiBhbiBvbGRlciBwYXRjaCBz
ZXJpZXMgaW1wbGVtZW50ZWQgYW5kDQpzdW1iaXR0ZWQgYnkgUmFodWwgU2luZ2ggYXMgYW4gUkZD
OiBodHRwczovL3BhdGNod29yay5rZXJuZWwub3JnL3Byb2plY3QveGVuLWRldmVsL2NvdmVyL2Nv
dmVyLjE2Njk4ODg1MjIuZ2l0LnJhaHVsLnNpbmdoQGFybS5jb20vLg0KT3JpZ2luYWwgcGF0Y2gg
c2VyaWVzIGNvbnRlbnQgaXMgYWxpZ25lZCB3aXRoIHRoZSBsYXRlc3QgeGVuIHN0cnVjdHVyZSBp
biB0ZXJtcyBvZiBjb21tb24vYXJjaC1zcGVjaWZpYyBjb2RlIHN0cnVjdHVyaW5nLiANClNvbWUg
bWlub3IgYnVnZml4ZXMgYXJlIGFsc28gYXBwbGllZDoNCi0gU2FuaXR5IGNoZWNrcyAvIGVycm9y
IGhhbmRsaW5nDQotIE5vbi1wY2kgZGV2aWNlcyBzdXBwb3J0IGZvciBlbXVsYXRlZCBpb21tdQ0K
DQpPdmVyYWxsIGRlc2NyaXB0aW9uIG9mIHN0YWdlLTEgc3VwcG9ydCBpcyBhdmFpbGFibGUgaW4g
dGhlIG9yaWdpbmFsDQpwYXRjaCBzZXJpZXMgY292ZXIgbGV0dGVyLiBPcmlnaW5hbCBjb21taXRz
IHN0cnVjdHVyZSB3aXRoIGRldGFpbGVkIGV4cGxhbmF0aW9uIGZvciBlYWNoIGNvbW1pdA0KZnVu
Y3Rpb25hbGl0eSBpcyBtYWludGFpbmVkLg0KDQpQYXRjaCBzZXJpZXMgdGVzdGluZyBpcyBwZXJm
b3JtZWQgaW4gcWVtdSBhcm0gZW52aXJvbm1lbnQuIEFkZGl0aW9uYWxseSwNCnN0YWdlLTEgdHJh
bnNsYXRpb24gZm9yIG5vbi1wY2kgZGV2aWNlcyBpcyB2ZXJpZmllZCBvbiBhIFJlbmVzYXMgcGxh
dGZvcm0uDQoNCkplYW4tUGhpbGlwcGUgQnJ1Y2tlciAoMSk6DQogIHhlbi9hcm06IHNtbXV2Mzog
TWFpbnRhaW4gYSBTSUQtPmRldmljZSBzdHJ1Y3R1cmUNCg0KUmFodWwgU2luZ2ggKDE5KToNCiAg
eGVuL2FybTogc21tdXYzOiBBZGQgc3VwcG9ydCBmb3Igc3RhZ2UtMSBhbmQgbmVzdGVkIHN0YWdl
IHRyYW5zbGF0aW9uDQogIHhlbi9hcm06IHNtbXV2MzogQWxsb2MgaW9fZG9tYWluIGZvciBlYWNo
IGRldmljZQ0KICB4ZW4vYXJtOiB2SU9NTVU6IGFkZCBnZW5lcmljIHZJT01NVSBmcmFtZXdvcmsN
CiAgeGVuL2FybTogdnNtbXV2MzogQWRkIGR1bW15IHN1cHBvcnQgZm9yIHZpcnR1YWwgU01NVXYz
IGZvciBndWVzdHMNCiAgeGVuL2RvbWN0bDogQWRkIFhFTl9ET01DVExfQ09ORklHX1ZJT01NVV8q
IGFuZCB2aW9tbXUgY29uZmlnIHBhcmFtDQogIHhlbi9hcm06IHZJT01NVTogQWRkIGNtZGxpbmUg
Ym9vdCBvcHRpb24gInZpb21tdSA9IDxib29sZWFuPiINCiAgeGVuL2FybTogdnNtbXV2MzogQWRk
IHN1cHBvcnQgZm9yIHJlZ2lzdGVycyBlbXVsYXRpb24NCiAgeGVuL2FybTogdnNtbXV2MzogQWRk
IHN1cHBvcnQgZm9yIGNtZHF1ZXVlIGhhbmRsaW5nDQogIHhlbi9hcm06IHZzbW11djM6IEFkZCBz
dXBwb3J0IGZvciBjb21tYW5kIENNRF9DRkdJX1NURQ0KICB4ZW4vYXJtOiB2c21tdXYzOiBBdHRh
Y2ggU3RhZ2UtMSBjb25maWd1cmF0aW9uIHRvIFNNTVV2MyBoYXJkd2FyZQ0KICB4ZW4vYXJtOiB2
c21tdXYzOiBBZGQgc3VwcG9ydCBmb3IgZXZlbnQgcXVldWUgYW5kIGdsb2JhbCBlcnJvcg0KICB4
ZW4vYXJtOiB2c21tdXYzOiBBZGQgImlvbW11cyIgcHJvcGVydHkgbm9kZSBmb3IgZG9tMCBkZXZp
Y2VzDQogIHhlbi9hcm06IHZJT01NVTogSU9NTVUgZGV2aWNlIHRyZWUgbm9kZSBmb3IgZG9tMA0K
ICB4ZW4vYXJtOiB2c21tdXYzOiBFbXVsYXRlZCBTTU1VdjMgZGV2aWNlIHRyZWUgbm9kZSBmb3Ig
ZG9tMGxlc3MNCiAgYXJtL2xpYnhsOiB2c21tdXYzOiBFbXVsYXRlZCBTTU1VdjMgZGV2aWNlIHRy
ZWUgbm9kZSBpbiBsaWJ4bA0KICB4ZW4vYXJtOiB2c21tdXYzOiBBbGxvYyB2aXJxIGZvciB2aXJ0
dWFsIFNNTVV2Mw0KICB4ZW4vYXJtOiB2c21tdXYzOiBBZGQgc3VwcG9ydCB0byBzZW5kIHN0YWdl
LTEgZXZlbnQgdG8gZ3Vlc3QNCiAgbGlieGwvYXJtOiB2SU9NTVU6IE1vZGlmeSB0aGUgcGFydGlh
bCBkZXZpY2UgdHJlZSBmb3IgaW9tbXVzDQogIHhlbi9hcm06IHZJT01NVTogTW9kaWZ5IHRoZSBw
YXJ0aWFsIGRldmljZSB0cmVlIGZvciBkb20wbGVzcw0KDQogZG9jcy9tYW4veGwuY2ZnLjUucG9k
LmluICAgICAgICAgICAgICAgIHwgIDEzICsNCiBkb2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5w
YW5kb2MgICAgICAgfCAgIDcgKw0KIHRvb2xzL2dvbGFuZy94ZW5saWdodC9oZWxwZXJzLmdlbi5n
byAgICB8ICAgMiArDQogdG9vbHMvZ29sYW5nL3hlbmxpZ2h0L3R5cGVzLmdlbi5nbyAgICAgIHwg
ICAxICsNCiB0b29scy9pbmNsdWRlL2xpYnhsLmggICAgICAgICAgICAgICAgICAgfCAgIDUgKw0K
IHRvb2xzL2xpYnMvbGlnaHQvbGlieGxfYXJtLmMgICAgICAgICAgICB8IDEyMyArKystDQogdG9v
bHMvbGlicy9saWdodC9saWJ4bF90eXBlcy5pZGwgICAgICAgIHwgICA2ICsNCiB0b29scy94bC94
bF9wYXJzZS5jICAgICAgICAgICAgICAgICAgICAgfCAgMTAgKw0KIHhlbi9hcmNoL2FybS9kb20w
bGVzcy1idWlsZC5jICAgICAgICAgICB8ICA3MiArKw0KIHhlbi9hcmNoL2FybS9kb21haW4uYyAg
ICAgICAgICAgICAgICAgICB8ICAyNiArDQogeGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jICAg
ICAgICAgICAgIHwgMTAzICsrLQ0KIHhlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9kb21haW4uaCAg
ICAgICB8ICAgNCArDQogeGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3Zpb21tdS5oICAgICAgIHwg
MTAyICsrKw0KIHhlbi9jb21tb24vZGV2aWNlLXRyZWUvZG9tMGxlc3MtYnVpbGQuYyB8ICAzMSAr
LQ0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL0tjb25maWcgICAgICAgICB8ICAxNCArDQogeGVu
L2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL01ha2VmaWxlICAgIHwgICAyICsNCiB4ZW4vZHJpdmVy
cy9wYXNzdGhyb3VnaC9hcm0vc21tdS12My5jICAgfCAzNjkgKysrKysrKysrLQ0KIHhlbi9kcml2
ZXJzL3Bhc3N0aHJvdWdoL2FybS9zbW11LXYzLmggICB8ICA0OSArLQ0KIHhlbi9kcml2ZXJzL3Bh
c3N0aHJvdWdoL2FybS92aW9tbXUuYyAgICB8ICA4NyArKysNCiB4ZW4vZHJpdmVycy9wYXNzdGhy
b3VnaC9hcm0vdnNtbXUtdjMuYyAgfCA4OTUgKysrKysrKysrKysrKysrKysrKysrKysrDQogeGVu
L2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL3ZzbW11LXYzLmggIHwgIDMyICsNCiB4ZW4vaW5jbHVk
ZS9wdWJsaWMvYXJjaC1hcm0uaCAgICAgICAgICAgfCAgMTQgKy0NCiB4ZW4vaW5jbHVkZS9wdWJs
aWMvZGV2aWNlX3RyZWVfZGVmcy5oICAgfCAgIDEgKw0KIHhlbi9pbmNsdWRlL3hlbi9pb21tdS5o
ICAgICAgICAgICAgICAgICB8ICAxNCArDQogMjQgZmlsZXMgY2hhbmdlZCwgMTkzNSBpbnNlcnRp
b25zKCspLCA0NyBkZWxldGlvbnMoLSkNCiBjcmVhdGUgbW9kZSAxMDA2NDQgeGVuL2FyY2gvYXJt
L2luY2x1ZGUvYXNtL3Zpb21tdS5oDQogY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9kcml2ZXJzL3Bh
c3N0aHJvdWdoL2FybS92aW9tbXUuYw0KIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vZHJpdmVycy9w
YXNzdGhyb3VnaC9hcm0vdnNtbXUtdjMuYw0KIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vZHJpdmVy
cy9wYXNzdGhyb3VnaC9hcm0vdnNtbXUtdjMuaA0KDQotLSANCjIuNDMuMA0K


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 18:31:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 18:31:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073351.1436399 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk5P4-0002df-86; Thu, 07 Aug 2025 18:31:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073351.1436399; Thu, 07 Aug 2025 18:31:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk5P3-0002c5-Ja; Thu, 07 Aug 2025 18:31:49 +0000
Received: by outflank-mailman (input) for mailman id 1073351;
 Thu, 07 Aug 2025 16:59:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5oaB=2T=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1uk3xn-00076W-36
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 16:59:35 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e4936a45-73af-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 18:59:34 +0200 (CEST)
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com (2603:10a6:102:ea::23)
 by AS8PR03MB7336.eurprd03.prod.outlook.com (2603:10a6:20b:2ec::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.16; Thu, 7 Aug
 2025 16:59:28 +0000
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f]) by PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f%6]) with mapi id 15.20.9009.013; Thu, 7 Aug 2025
 16:59: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>
X-Inumbo-ID: e4936a45-73af-11f0-a324-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZtbI+geXYrtGEpMXMm0SiMn211k7uNLwpiIiAsF3BYkDexUbRHlF24hIuWYGTbaU5bZdeVO3mPzuhQfHL+TL3hwjKt0YQyjVVYBy8J4xxbgMUdp7pWXJv/iqTlnmEJkbIDzU5HvPcgWDQdei0aS2xYcDbiDoHsp/m0N5RjKaJEeuR51TIQQTqTj8LpTHRK/wiss+54BfheqxUi54O1JHneCFvXJcmyGCyKsPTs0Z77Y+jeT0ndUBLphNt7qbK1HlARiRP+mFM/RqFQRDvTLHtt5VntgPsEqvC/froyCkIGCtrN5FlqOw3jlc6XCjJpjrs+iXkKdHSY8yR8X6OfO0Qw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=bzIg5GHDCWFcYWZJkLnWl/NOh0XfgRa9h4RfPtk/omM=;
 b=MtFmzOBzFNuuudnp32L9T3tCoYDVTIJ2b9eS9Y/FowrtHt29CQByKOpUrFMWWNF7vTwPltjKMzjeYqiWkYFlpzOD9AUaUyIj2XDILtebJdm/pzPn9ZySOR/8yVxxBQkIAO/Z44KyhY0rBGdkpwRPuIM/cymRBzOu6JE5UHy8JqSAckCSfEYGb4FsBjFssXKlPeN1v02B74y+IEIUg03l51Pio/Hb0AMrha3ae1fSz7TjDO/wOhuUwbtOJ8GzEFuFqSo2OXPcC/jRNWlzLIj+/FpLYA8OYzBBUvpG+Pvi7hQm6dQnf03PjXRpwbP3sxuw/wzc7jz6lnDfpaZktohs+A==
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=bzIg5GHDCWFcYWZJkLnWl/NOh0XfgRa9h4RfPtk/omM=;
 b=hs5V3EcyHzApptAFxZ+NbZCsP1v1gvIryq+eVjRkn0h1esnqB8g+JSLT3CzhOBpjDpzA88f2dlnEH12WubYJtbMma23c2xX0SqPUucj9UQz5IP+24hkITbIHzVunHrRwTqqZK1RP90AMIUa8IMxUJpJQCHJoIlZmyPEKT9851MK1Frrwbc2L1BqiiMfxg+t0AgV9k6+mRIn2znuX70jh4CKZ4gm9l3d0vGNZGS3hTepfoRXDn65/VMJPSR0DprTRjUxsW0ByW9WlP6nudJDGu6DFKxkoWnfVXtcdbEhOqU0w3ihfm0FTqLsejLtV/WgDfKxTYuVCWDA1DSQtL5Fxzg==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: 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>, Milan Djokic <milan_djokic@epam.com>
Subject: [PATCH 13/20] xen/arm: vsmmuv3: Add "iommus" property node for dom0
 devices
Thread-Topic: [PATCH 13/20] xen/arm: vsmmuv3: Add "iommus" property node for
 dom0 devices
Thread-Index: AQHcB7yjZjfsfeySMU+j/Wtm9iEvHQ==
Date: Thu, 7 Aug 2025 16:59:28 +0000
Message-ID:
 <ae2a37beca1f81016a97df2e521351c4f79f153a.1754580688.git.milan_djokic@epam.com>
References: <cover.1754580687.git.milan_djokic@epam.com>
In-Reply-To: <cover.1754580687.git.milan_djokic@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: PA4PR03MB7136:EE_|AS8PR03MB7336:EE_
x-ms-office365-filtering-correlation-id: 27341c5c-d8c9-42ff-b62b-08ddd5d3c58a
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?OGQyVTdO3Lf/Szu33R3gUcKJIM2/W1IYPe45qLb3mY80YPFy9m8S9N3RNN?=
 =?iso-8859-1?Q?3wKhDuyQ48aOhrmrY0ykyH3BYC4rqUkU59j5pbEoXyPeKzWa6gFhZXCcW6?=
 =?iso-8859-1?Q?IZrGxH5405eRmLPoSJgbZKUQ9CWJP6m7EYSc+6at3hfTlmyWsIiu33d86L?=
 =?iso-8859-1?Q?TnWi2kvxqZ4kxOJn+uHdcFpJFPUC9o39VuCz5d90zoa+5xAuoTlsmS86q8?=
 =?iso-8859-1?Q?5FtxzaQND24GdhEWthIyNg73AbG6OvGkHuFifnFvOh53QmEk3t38Whkn8B?=
 =?iso-8859-1?Q?IHTbIM4ipucNI7+bybi5qz8reU4x3hsyhK2Jc+SuJHD2RaqE3VTs1LKoK7?=
 =?iso-8859-1?Q?Ke6YXTi4Lxl+FznOVjcI2p2ai6Xdz9wj2+mRgTNwM0TC93REzF2cPCxxPG?=
 =?iso-8859-1?Q?V8pAqiu26s3RNxWmdGcjbKOVr6ZClh31dRhTvXV5y7HKl2TdE9N+R6GgkL?=
 =?iso-8859-1?Q?jZ+Id3xzU80kZzVeOugIeGNROOvpTp/oZNdTy4e52skbSTw7pmGjXGjbs/?=
 =?iso-8859-1?Q?t7YFyJ4g99DTzcFzAB6dBLdJQIgnn249cb/V174nLm31Uocsbll/zGzMCV?=
 =?iso-8859-1?Q?b9UoGEIP7atWbJmxA22veqhRPt+q6Fwnzm0azn8rBWKK+nkX1SskXBalme?=
 =?iso-8859-1?Q?f5K5+q+jg+5QB0UxDc8BNgjFZzpsoroDzmLBqEuJF7pykHW9gaVKtDxJoT?=
 =?iso-8859-1?Q?4QUvmGEpYxsezTin+ebhVWGHwqJXcQ2ub86zHvca+fgunINHHMczvXxRTb?=
 =?iso-8859-1?Q?l7+272vfh5y/V8z+ltUmY1/ltGIYCCUzY71esG12hb4ZOMM1bPMNu7GVye?=
 =?iso-8859-1?Q?RxjQgaqV3pv0F2ZFOPzB3y1W9FFIuQ2lCvfxfpPJKuQAMeeGUmRxW+x+Lf?=
 =?iso-8859-1?Q?cbbKsKG0kS2e3335K2mG9mJZUc6U2o2AU2LEi0VirdoG9GFg7teOlbhYAt?=
 =?iso-8859-1?Q?9+xTtTJTvGuBvQXBUwE8ThKqAKkIweySrf9SRLvg6/sxc3RCgBR3yHYzbh?=
 =?iso-8859-1?Q?GY0+i6mhuPeWT/3OU1B+MqnUb1CdjbOOX8Ixydc1UYJ0m16agwmMJ9/22w?=
 =?iso-8859-1?Q?giUlhjMGkEcxPJp6qDbPYI7lg2bxkX1QGRD3aZP3HWmY8vHQozL2TOG/8T?=
 =?iso-8859-1?Q?ROWzOtL//+RF2YEv2Hh9/k2x0g0Zr85FBndwWocY+WfHb4KQaQZ6lyjshi?=
 =?iso-8859-1?Q?yXgmwMwib1OHPbALfUqImRLCdKD02F5V3M7nKRMDH6VPHVzjhmTo+9hUse?=
 =?iso-8859-1?Q?qVrT7ffvuyv4d3v3D0w59iQQo1ev+Cc9cYbI9FtybZD8zOfuSp257RpCR/?=
 =?iso-8859-1?Q?VMcysK93WQpkoJHfATkL2N+dfB4fLASP7Gl3pVdFBLXlovqRmjpLDJP6Fa?=
 =?iso-8859-1?Q?sKOfr1Q7FO0IEk69BQUcprg7Ccl/8rjnf23Hg78F9qf0zbBsnBYKA47dBz?=
 =?iso-8859-1?Q?grMYQSCXpF1qSxNDrukXBhL+FRtjhhI9ASUGzeZxufkVen23gML2XzgYH+?=
 =?iso-8859-1?Q?gwex5GEMPcYF39w4jpc3Ksz7hEdIbwecgyLMmsbUIlkQ=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR03MB7136.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?xcRE77neETtlOnNm4NV3Z5JiLmAZ/r/EWs9plLih1K1sptLV+V5dzlTxwW?=
 =?iso-8859-1?Q?IFbGBzDAC0FbTL4ZLdaeCoy9jCKC7FpAC2nPllexpN/zM/UBxGofMsNWwU?=
 =?iso-8859-1?Q?INQrmcQPl7x3hQKgO8iCRxM2Xj3d5B7fjJVhO4sWHyr6R4lZEQTq1N4+J/?=
 =?iso-8859-1?Q?0xzAqukcDv8BJERInMQTTZxHENx1ucY5jBdt1nHLWRAQ4N4oZH9hWi+nyq?=
 =?iso-8859-1?Q?69yteWMHVxlgHYuiZCGn2LBOjiHfVuTaOi6F1/X/3LmckdTilAEw9yoFvX?=
 =?iso-8859-1?Q?1NF0sDQnfte4lLFKywe8BYLI/G5U3w567j+oj9z0C7lSueRgnQpsqTNDDH?=
 =?iso-8859-1?Q?BxmK1HRS/oi+DggVRy+QbJl1WgY8gMhYcni55XobuEO7De/cdX/kbtNzyX?=
 =?iso-8859-1?Q?FaJoFz7aN1d45qE76/l0IkDC72MayKyPfNVzuR0QbIr46afOyDWtse02z7?=
 =?iso-8859-1?Q?2GJ6SdGyuvkBSJIwwyp2rRLWioHYK/3iLT7sQtElOqRvyndN3IV7rps/65?=
 =?iso-8859-1?Q?twyok6x7td03Ej2KEgCjEaoKyd+ANbx8TUoiD8eHmrshwKRgRveJEKJtHI?=
 =?iso-8859-1?Q?ffgyXG5ya/LRLd3CsLJ6o+X1OIyYu8J+BiKh2/aCXV47nGmLxbcdmFzrWU?=
 =?iso-8859-1?Q?vt0llUER6bSGeyT1YobCTtMDOpCIfUK32xNPXwHbXXnzMjOdXOXecTSOv1?=
 =?iso-8859-1?Q?Yrt8GKhlMZnZ1oIUl+nX54JgIpBteJGgSejUt8aIeftMIiZsAey82S7hol?=
 =?iso-8859-1?Q?iBaxQ6l1TV6bLXjqrMP8FFr+42nEe7AM9IOvzzdRSOIXKZtzZzkJsMdtHM?=
 =?iso-8859-1?Q?g0jnshh1wlTWgMEfzueKpDz7c2k0beO47uxZ+w9v0We9lqN8Cv6SJFwk0l?=
 =?iso-8859-1?Q?/Cwl7qCEncyR1781Ev/MNQZT8blGUtDZMiGtULlPeVKvG9dbT4p5VD/JXE?=
 =?iso-8859-1?Q?tX9NakFiG53w9Lj3A6uiR+/fpEGAkOMc3Iw2C99NIZ+6yDzx2uKWvVnPAS?=
 =?iso-8859-1?Q?90SnWsQn8z8XbGMg2Ng/6S1WIeWXEe6nWeGvsknO7942FD7uwFXEOk/smp?=
 =?iso-8859-1?Q?0mIDTYZ9iuXsB/7JYo4t2k/h37aZ707/XmQIeppHey158B3E0Kk7N8wfpS?=
 =?iso-8859-1?Q?ZE6fa6GeqEVb17HPitCA/fXHZy7X8D7ybV5beSXyLmmH1DjPIJ0U8qUTef?=
 =?iso-8859-1?Q?GV7KDk1SD56sJKRCahEPsW/7NwJoS+Kr1DdFuSrJyNiXI9IvnC0CTn+F6K?=
 =?iso-8859-1?Q?wF6PVZujJcetL6MvyiSOjuFD4IKzcw6IKF9SumnFC6CcCKu4ETY5TmnCFJ?=
 =?iso-8859-1?Q?dFdmb/B38TOI7tpQaooQwHJaXvCMAS8Y2e/qV+M4l4CICtKpKAseFTfcoA?=
 =?iso-8859-1?Q?43Dk7sHq8PGwQ4W15qY9oH39n5nuJkQ7hLribqIbEfTF4vL1xKsP67T+JR?=
 =?iso-8859-1?Q?7x5yeTtjOeavzmB4jqQexeyYM0zdq0j9uxeHw+BHJUWn+pz8e841QieLe8?=
 =?iso-8859-1?Q?vYMAsKZr+twkZFV2kggcsZ104he43z1oAXVAmzhpsazqdP7e/fRek81+JP?=
 =?iso-8859-1?Q?r6Xs31f8T57vWzXwHRlEcClFqDF0MKpPDN648uMTxCGXfncpBJCzzCYLR3?=
 =?iso-8859-1?Q?78b02Usa2Z+YNGo1q2cZw3o26TRewyZyH0RkDF3CXs3+3cZb0+PEWbjg?=
 =?iso-8859-1?Q?=3D=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: PA4PR03MB7136.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 27341c5c-d8c9-42ff-b62b-08ddd5d3c58a
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Aug 2025 16:59:28.5033
 (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: Eyy9dMI9904W4IufNdjF5pRUIzpqECV9Swc0nttKmPh4HpSSOxsT+qVjbZtLeiy5ST0YsM+i4pEjllq3e/iZvg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7336

From: Rahul Singh <rahul.singh@arm.com>

"iommus" property will be added for dom0 devices to virtual
IOMMU node to enable the dom0 linux kernel to configure the IOMMU

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/arch/arm/domain_build.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 50e4f5fee4..9d2b0ea928 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -537,9 +537,12 @@ static int __init write_properties(struct domain *d, s=
truct kernel_info *kinfo,
             continue;
         }
=20
-        if ( iommu_node )
+        /*
+         * Expose IOMMU specific properties to hwdom when vIOMMU is
+         * enabled.
+         */
+        if ( iommu_node && !is_viommu_enabled() )
         {
-            /* Don't expose IOMMU specific properties to hwdom */
             if ( dt_property_name_is_equal(prop, "iommus") )
                 continue;
=20
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 18:31:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 18:31:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073339.1436342 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk5P0-0001PF-0C; Thu, 07 Aug 2025 18:31:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073339.1436342; Thu, 07 Aug 2025 18:31: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 1uk5Oz-0001Ne-J1; Thu, 07 Aug 2025 18:31:45 +0000
Received: by outflank-mailman (input) for mailman id 1073339;
 Thu, 07 Aug 2025 16:59:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5oaB=2T=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1uk3xe-000773-Sb
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 16:59:26 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id df5dba48-73af-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 18:59:25 +0200 (CEST)
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com (2603:10a6:102:ea::23)
 by AS8PR03MB7336.eurprd03.prod.outlook.com (2603:10a6:20b:2ec::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.16; Thu, 7 Aug
 2025 16:59:22 +0000
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f]) by PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f%6]) with mapi id 15.20.9009.013; Thu, 7 Aug 2025
 16:59: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>
X-Inumbo-ID: df5dba48-73af-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=WTYTZzlxLAFXorSc6HULDVixECOv0y+cJNkpDAD3V22BVWOidY6Jb7PX+biL5vDatcnfhd/Tf6WNZmUM2sOyTu/aiNqWpEbupUl0tEuJxDRAEVHASPSFW3Q0HQm86n+3Iq/jz0J4TRtbcRGPx31cQUOo6y86rqeGamoI4zqubYwXlUuH/3l2yYczu8FGk8p3jFewVS80eVmvnv14yKO3poHG6K9AcgzwdWiJ2A0qJ+wowbGgZpDw0A/3qlTkqXXztGqFuO8Z41YRP5pHzwgc5jb9KwDBtNXaM7RtY+a225MPxVjqCqjbyFX8oCqtMMwoQshZBepJND20GWIPrd9Dog==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IkqYZa3FRTnOPpkwt/VlfgBuNz63zorMdd4FHR0PPWg=;
 b=l8xzvBSxICnXXU4VHqMr8Vde16iCIp/t1VkS7JJYm2TSCkwDZjZnFm+Q+q0ACOD1mo909RyzC7LNhAphzAvdkLDDVtiIDPthGThh7CIdX1NYav1nda/SkQqVAqmspf4vpvhUkHXsLcNPT15levgO9w8ge9mxofFVetUCZaVlw175WwxcP9jVh1uRmkbU7Nb8DFbvrixbiJl3sS78Ucfeq8umxBkKLRAQOMuu0qpiI35+xiFsqOMaB/XOo/CmgKTDWC9HhUcDTtwuHa1ig/8O9B1Mf11r2OsOCZGxBLKdIVZkAxOOcaForgbB1+WDvHjtc/IK5EWS4C3fW2nCijX/yQ==
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=IkqYZa3FRTnOPpkwt/VlfgBuNz63zorMdd4FHR0PPWg=;
 b=eXjLWjo36rSfapjsD6VgpUWVpjrNNw0EERndALePxtkdEiiICcUyTLW/6ncOolNhTKfjBKPsV23w6vXsO0Ts8k/WWQbHSpmZ+2oyQ0smYCOCUXqLrmbqQu/mhSj3V/UtwJylrogCIfs/FMh2Tan3SEhQx5w2d43iLQd46nI2rGx899VQ+NPyfUqLvNNlUZAI5pXw91R1RwvBtNFzkJYP0PxidsRFVx+2Dlxd8VtLc6qkyDcGKJ/e4wHu3XGhnQj1Q1ANhKgTmXCbnY5FrUgn1+Mw0KshcMp1G01wYUFJ0ChmSmb5zSHbHuqcPaDimMldnHtjiiHK/lQjiQjZEOq4TQ==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Milan Djokic <milan_djokic@epam.com>
Subject: [PATCH 07/20] xen/arm: vIOMMU: Add cmdline boot option "viommu =
 <boolean>"
Thread-Topic: [PATCH 07/20] xen/arm: vIOMMU: Add cmdline boot option "viommu =
 <boolean>"
Thread-Index: AQHcB7yfTy1RKYdeLkuvW3i0Y8QAyQ==
Date: Thu, 7 Aug 2025 16:59:22 +0000
Message-ID:
 <c539f673eef6f44a1191b0f8213ff5571baa411a.1754580688.git.milan_djokic@epam.com>
References: <cover.1754580687.git.milan_djokic@epam.com>
In-Reply-To: <cover.1754580687.git.milan_djokic@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: PA4PR03MB7136:EE_|AS8PR03MB7336:EE_
x-ms-office365-filtering-correlation-id: 184e54df-0695-41ea-daed-08ddd5d3c1e8
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|7416014|376014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?E8abdjsECdzJASM0ki5Nd3CgoBkDykccYWjOWNcB+gzS+RkR1J2gUR265h?=
 =?iso-8859-1?Q?IKQe42mCSt7nc9K0ZPiyHSxJ3HCh6uCK8ILy1J9vnWaTQja78+HqfWNHQ+?=
 =?iso-8859-1?Q?+aRNaED9uasatuYKd6BlpniRUSMRHM3a6mW/KcReeVv02hm7ZjT9Cz3xB2?=
 =?iso-8859-1?Q?OUFXfvRlO2DJX+osR/8uP1Y4v9g9QDm82nx7gh90U97cbXVE02YsSGgWuW?=
 =?iso-8859-1?Q?ypnu/stoSxdFzZHUp/1Ir4N5uDUpw7PfZhKyeq3nqK/XzRdbB8tjOsiTPa?=
 =?iso-8859-1?Q?QxmU4O6cm8IrshwKepPa6b3BTepsMbro2OsiG0wAlBQhTYuXziWxHcmL0i?=
 =?iso-8859-1?Q?Z3gukAjsiWOM21GfAUDJ0AUPgE67ClhxkuT7PV8/2TK4M8Fa0/65qGKrdc?=
 =?iso-8859-1?Q?O9rG53nAQOOmZoDx8ueSyzzsdl35auAfuLvajg0opMoWiCvaJqiEvF9otE?=
 =?iso-8859-1?Q?0/OTo6eIuyw7GKaKi2vdYM/w7k4MnEH8fjndJ7OdNOvvTzXeKdnZ39ptu0?=
 =?iso-8859-1?Q?UC+P3oc0Wp/wdZ/Hxu6wqCMZrNdBd7WxsJhdvteiltN2557GxMfsB5D4MN?=
 =?iso-8859-1?Q?dObq78P/kyt9DmMykhinFGjdvJOwp8kd1lz2jGJHMMSaVdkZinF1twD6th?=
 =?iso-8859-1?Q?NEofJBmoxFMf/LrpJRP58jEP7YudlywjArWDcUJlJgNah/rbrszryTGV6Y?=
 =?iso-8859-1?Q?IUMGVqsgU837Pn9YM7gxJcq9EKZElvWgoYku8gN/QbXz8joAftVnETTiiz?=
 =?iso-8859-1?Q?GrUXkEEMH3KCKH17+aaFZcD8S1m9XC3Yz9k2Ngkl2Etcb/HWWbutxSQqWn?=
 =?iso-8859-1?Q?hzAZVyfeHEY3eTEXihSUli5t7ArpPC9OmhYxPAZMU87rwmZXRPXLMa7Sry?=
 =?iso-8859-1?Q?7qXu+zVoim6PNJwqzoBFNFxp1GiwtmkCxKj3XJX6LmbYGY/t6CDBkce0cW?=
 =?iso-8859-1?Q?39oZTGdsBIfkPpPY4tgUN8cKJLaCNTHdD+Vq8f2ACOWtuubCOMtuDCKmSP?=
 =?iso-8859-1?Q?EHEuqXqk4AU5ige/Uj+wT7Awp3qHWEcNj3VAr/ykp74LizqsCBitGeZM+i?=
 =?iso-8859-1?Q?9Yn0+W6/8lGpT/V358kCsJLOJ9MkGwawBxx9rNK9mPFeZMBEwTU+Egotwf?=
 =?iso-8859-1?Q?Bhf0+AThaS+HNd9l38IvoBXTghwP7YPf/Frx6YqNDdB3rsyFBqaV+MhE+g?=
 =?iso-8859-1?Q?vMiDAGLssxYG5WHEWbv4aKA7XpH+FejCb+vOkIQnY/LCxHjaRjj8ophAOc?=
 =?iso-8859-1?Q?8vgwUmJ6dwwsnqSIZmHRzPEEadEX91tYCOySIGdOLR7BqU5a+bFlsHE4f8?=
 =?iso-8859-1?Q?Vfgk/fU+0qNoMDFMRN1e+6OvjZCJPrXilRA5oBOnoUkvEgK/NwTbeDuAaP?=
 =?iso-8859-1?Q?P2tk42DNwkTZOfelJXraKmrofoWEGwg9OrqJhygrZ2vicGhonP4UOHDJ7U?=
 =?iso-8859-1?Q?Jh8f9eLixce56yiUty6d67qKYleNCBIgwkTuhPCEeRtz6+modhWEVDUrni?=
 =?iso-8859-1?Q?rEKaESstTbexZV2+kkFi+En8nDSSJ265HKljZFr3Ywjw=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR03MB7136.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?/0mbGkKn2N2adDv4N8Avw6EV2jwtd8yykfQHxxHrmuQR2jy06tfyt2jAWh?=
 =?iso-8859-1?Q?ri+Nvd04EVe1FbDYautQF0JMKo89loee80+z+c1t9WluTu4iVHSC7k/dEY?=
 =?iso-8859-1?Q?tziLpnPHuyH0KMhT8RCCIP9MlnK2Fgv9RbYMTgJoyo4MIRNhbPqNdMLsHs?=
 =?iso-8859-1?Q?St9DG1o1S12cAVDlXAz06aJvc7u03UPBuW2IpdBrOb3NltyUEzHJmX426H?=
 =?iso-8859-1?Q?x4yvFSQ3mTTeXwhwm4Vp0AeRK1pEnBLQbzeayaWpdedVP8Sf32y4ymsAaF?=
 =?iso-8859-1?Q?UP9s8johPmMPN/L9kr64eWaPqiyxlblJRhmOhOfaVRaSfT97h+DBlZfgRv?=
 =?iso-8859-1?Q?nm7KhJuo59TdPhbJu21luqmBUtNPitnxV2AZoHk092xrRM5ZE3EAHL5N7w?=
 =?iso-8859-1?Q?eOUJzTnRo9uqe9V3tGZoE3D12LqNQmcLbmprDbln+BGmWZezH60dy3pPEY?=
 =?iso-8859-1?Q?1X/6cyhIoyFRvU5tQpUvsOhWM+AWAjf2ZIv4Qj/8yMMbaQsUiV+Lkaf9UA?=
 =?iso-8859-1?Q?YHvrkoqrFiOvalBTz9AUK8kb0Dki8I+wAhY/64Fov1ZQRkNiMqKt0ISSUg?=
 =?iso-8859-1?Q?pAqSqnMgBuTixmKlP3momAUxZAidrtPQSMCf/fA/+RmauEkOFcDLjDfMa2?=
 =?iso-8859-1?Q?v0bbUesxvVqfzJQUHt98sfmeWkpCwaew3wTCxjYppwF8/Dvl5uN1+fyC7c?=
 =?iso-8859-1?Q?MfjppUYudbcrlfK2Bie17h/Q49v9bcfL6ocHC+OYjgnkXTCaRafzEXJ4YJ?=
 =?iso-8859-1?Q?FXu2wAcruMddEWOTvqAsSPW4Mt5HH8/eAeVVitAjwSBCVXxRF7AGHBPhCf?=
 =?iso-8859-1?Q?oD/f2Ef/RYVRhbJ6Q0sUMxzrXUcyPJkFXk11oMzHILmprMwErlQjlK2CPT?=
 =?iso-8859-1?Q?x2aIo+tWIBqS6JXu2NoroScz1e+4LqrAl2IXBjeaF7VD0zxoyTx7u42RGe?=
 =?iso-8859-1?Q?zXArZSZ7VT86/+1aUWlAowjcOxWcc0AX18nzxCbkI3bk81oCllORSxMv4V?=
 =?iso-8859-1?Q?nkf++QtIBLvTMp8D1XeptjeyRr/171cEO36EFqCDuN4ZELQetvhthVRJGe?=
 =?iso-8859-1?Q?7qGY6w0NaUhLZKKtTMBBPkDN2hqxePESRucdhPhZN79v5YorG8iFrXvzgD?=
 =?iso-8859-1?Q?uxHMFQiVJ51UPmy71qh/nDa4m0iysyiXZAOWnWc4fD0WxWHSs6bFySg+o2?=
 =?iso-8859-1?Q?eghV6jP2C1NcezZ0NKMdhwMYVF/WHt7kOcBvYyPflTEPifH8ejadDBePHR?=
 =?iso-8859-1?Q?7rK/UACXSfmbBkbeFyJruHmxfUk6ztQc2WdRIgBDKtNBYDEjbC4OJVPfI5?=
 =?iso-8859-1?Q?GGkcShNPPD3mNzxC0r4NLJkCFOxwkNvVPyl7kbfdVnEexwYfPObw7U0E9V?=
 =?iso-8859-1?Q?Q0/9Q2sA8r7AVMdMwlp0XR06Ss4bl1QMTc+aFtTK31PuPPmoTWaN0NYKbS?=
 =?iso-8859-1?Q?zvLyRJKfLgrbMLa/hAQZDNAHv2qXimmilW+K7IcEy6WuU/CU+UswRb8eSv?=
 =?iso-8859-1?Q?dlJfWUKJTCrNjAiXA0Ru04RGI9fwdo7mDJ/8J/QkPD2lXl7RvEbMqOzyJK?=
 =?iso-8859-1?Q?jRIYFZLDxUac46UX9gr2PUl3Se6Oq5ppgmGybdE8WVEVO3zolhHYxboKZU?=
 =?iso-8859-1?Q?CuJBNhqQmu2xwZTvxaYUeuUmI3FBajZegq?=
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: PA4PR03MB7136.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 184e54df-0695-41ea-daed-08ddd5d3c1e8
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Aug 2025 16:59:22.4293
 (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: qL+vHlGtKGKHffejAwuVFI9DgZtJVUnUynRG7yR6g21HjzAp8QloYOG2Vg/u6FFlyVQ9SmGgBTDBnhTOIvcsLw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7336

From: Rahul Singh <rahul.singh@arm.com>

Add cmdline boot option "viommu =3D <boolean>" to enable or disable the
virtual iommu support for guests on ARM.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 docs/misc/xen-command-line.pandoc      |  7 +++++++
 xen/arch/arm/include/asm/viommu.h      | 11 +++++++++++
 xen/drivers/passthrough/arm/viommu.c   |  9 +++++++++
 xen/drivers/passthrough/arm/vsmmu-v3.c |  3 +++
 4 files changed, 30 insertions(+)

diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line=
.pandoc
index 6865a61220..d6a2a6fbdd 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -2058,6 +2058,13 @@ This option can be specified more than once (up to 8=
 times at present).
=20
 Flag to enable or disable support for PCI passthrough
=20
+### viommu (arm)
+> `=3D <boolean>`
+
+> Default: `false`
+
+Flag to enable or disable support for Virtual IOMMU for guests.
+
 ### pcid (x86)
 > `=3D <boolean> | xpti=3D<bool>`
=20
diff --git a/xen/arch/arm/include/asm/viommu.h b/xen/arch/arm/include/asm/v=
iommu.h
index 4785877e2a..4de4cceeda 100644
--- a/xen/arch/arm/include/asm/viommu.h
+++ b/xen/arch/arm/include/asm/viommu.h
@@ -10,6 +10,7 @@
 #include <public/xen.h>
=20
 extern struct list_head host_iommu_list;
+extern bool viommu_enabled;
=20
 /* data structure for each hardware IOMMU */
 struct host_iommu {
@@ -50,6 +51,11 @@ uint16_t viommu_get_type(void);
 void add_to_host_iommu_list(paddr_t addr, paddr_t size,
                             const struct dt_device_node *node);
=20
+static always_inline bool is_viommu_enabled(void)
+{
+    return viommu_enabled;
+}
+
 #else
=20
 static inline uint8_t viommu_get_type(void)
@@ -76,6 +82,11 @@ static inline void add_to_host_iommu_list(paddr_t addr, =
paddr_t size,
     return;
 }
=20
+static always_inline bool is_viommu_enabled(void)
+{
+    return false;
+}
+
 #endif /* CONFIG_VIRTUAL_IOMMU */
=20
 #endif /* __ARCH_ARM_VIOMMU_H__ */
diff --git a/xen/drivers/passthrough/arm/viommu.c b/xen/drivers/passthrough=
/arm/viommu.c
index 53ae46349a..a1d6a04ba9 100644
--- a/xen/drivers/passthrough/arm/viommu.c
+++ b/xen/drivers/passthrough/arm/viommu.c
@@ -3,6 +3,7 @@
 #include <xen/errno.h>
 #include <xen/init.h>
 #include <xen/irq.h>
+#include <xen/param.h>
 #include <xen/types.h>
=20
 #include <asm/viommu.h>
@@ -38,8 +39,16 @@ void add_to_host_iommu_list(paddr_t addr, paddr_t size,
     list_add_tail(&iommu_data->entry, &host_iommu_list);
 }
=20
+/* By default viommu is disabled. */
+bool __read_mostly viommu_enabled;
+boolean_param("viommu", viommu_enabled);
+
 int domain_viommu_init(struct domain *d, uint16_t viommu_type)
 {
+    /* Enable viommu when it has been enabled explicitly (viommu=3Don). */
+    if ( !viommu_enabled )
+        return 0;
+
     if ( viommu_type =3D=3D XEN_DOMCTL_CONFIG_VIOMMU_NONE )
         return 0;
=20
diff --git a/xen/drivers/passthrough/arm/vsmmu-v3.c b/xen/drivers/passthrou=
gh/arm/vsmmu-v3.c
index 6b4009e5ef..e36f200ba5 100644
--- a/xen/drivers/passthrough/arm/vsmmu-v3.c
+++ b/xen/drivers/passthrough/arm/vsmmu-v3.c
@@ -105,6 +105,9 @@ void __init vsmmuv3_set_type(void)
 {
     const struct viommu_desc *desc =3D &vsmmuv3_desc;
=20
+    if ( !is_viommu_enabled() )
+        return;
+
     if ( cur_viommu && (cur_viommu !=3D desc) )
     {
         printk("WARNING: Cannot set vIOMMU, already set to a different val=
ue\n");
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 18:31:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 18:31:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073342.1436350 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk5P0-0001ar-G4; Thu, 07 Aug 2025 18:31:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073342.1436350; Thu, 07 Aug 2025 18:31: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 1uk5P0-0001Yq-62; Thu, 07 Aug 2025 18:31:46 +0000
Received: by outflank-mailman (input) for mailman id 1073342;
 Thu, 07 Aug 2025 16:59:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5oaB=2T=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1uk3xg-000773-H3
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 16:59:28 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e0470f5a-73af-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 18:59:26 +0200 (CEST)
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com (2603:10a6:102:ea::23)
 by AS8PR03MB7336.eurprd03.prod.outlook.com (2603:10a6:20b:2ec::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.16; Thu, 7 Aug
 2025 16:59:23 +0000
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f]) by PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f%6]) with mapi id 15.20.9009.013; Thu, 7 Aug 2025
 16:59: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>
X-Inumbo-ID: e0470f5a-73af-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HegMn5UxB9avag8CESU/JBSzUqFD5jWR9kmHaQ838gml4QFw8V8II3KTytleznv03HXMlH6E6xbRevFa24ColGOrD/97j8Mry5bnre8eFM0dWiliU64x8jcqgfFm+kqaKW/vaJ1GUNlh9/OsSp6GunGfpMoZuTGhV/cXuKRhDdrJUbu3AqkTPlu056g/SG8LCJ+r7TJ5Kg/lC/CC77EkDa3WtLwVPUkYVQj2GaY3QxD36eGfG9Bbh3uf5DjF+Ut1ECNePNuW9buNBN9mNcPvFMRwuC5qR8Hzy5eBLHJY+54I9/SBthBiRFQOkqpp7AnpvLe7DuVqzQ+GfEEDhOo96A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=PFJxt6SY/lulT4RXtLz5WMyN2ImvVsxM6Td1tl5EU9M=;
 b=r56W/WOg6LjntziWV6hnCXX2ERpavIIKcu+pxZ667/1glEPiJGMwbhj3ZsK7aMXfo2ag4xnKSqO4TTuXXu8P4LbTkbQ2o8L0KhSZsOs1eYOIi3NhBXGvPyETfbY2+lnksnvXgsrl++EoqCOGLunRg6wx5crmvcKSUOMdc/ChscgnCCmWksV0THV+K5cUrxtgKdncF7KY6WfkSUarreffTgpsQKnTGSCwTcyGOlsMF9YFK14u2N65eEiiA9LXZndkLEu7WR1eG4mHLZIcVFGHYcXhWAte6/wo0L1OvFz/nC6P/AG5qerwOq4xmHNI7t+sQpXlg2k1+qSVDb2f18GCcA==
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=PFJxt6SY/lulT4RXtLz5WMyN2ImvVsxM6Td1tl5EU9M=;
 b=gQLMcGOKZi4zGjeBrn2UnI+qVxUteWklDUIBL3PM8lFxHjBf39X43pWtMcUR58e40LKj8TpJa+TquKZCDe8qaffF4tWpd5tvt2A2LVYKYEGTvNQOqqMwPkb3kNxMeQDwx/zz1HGn7HxJ1TmKWpeVaqc7ZtUJEisE7gAujRNu2a4aoFMA50Ce5H7gB9PsS9uGnkonQQrhBPl24vJn6uZh8lPkpyQw8pGo6tBZ4GaCWD9frKWW2SHIqoiu7L7q+759IRxtssEctDuPeODF4dBM+d09NgR9+y61FXmUYc3xQHPecKirU92+SibQVTPNNtBwLfWzKqPfFpTmRALhKpQFVw==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: 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>, Milan Djokic <milan_djokic@epam.com>
Subject: [PATCH 08/20] xen/arm: vsmmuv3: Add support for registers emulation
Thread-Topic: [PATCH 08/20] xen/arm: vsmmuv3: Add support for registers
 emulation
Thread-Index: AQHcB7yf5fp8wcYRf0iby3/TDRcqpw==
Date: Thu, 7 Aug 2025 16:59:23 +0000
Message-ID:
 <77d962e8a344f3fd3f7afcd71ad35c12a604b372.1754580688.git.milan_djokic@epam.com>
References: <cover.1754580687.git.milan_djokic@epam.com>
In-Reply-To: <cover.1754580687.git.milan_djokic@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: PA4PR03MB7136:EE_|AS8PR03MB7336:EE_
x-ms-office365-filtering-correlation-id: 58253980-885a-4dfe-4ded-08ddd5d3c27a
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?orrmLF7YZj3dJVyTpWC4Bxc/OAdjDTG6VJ9KQ25sYXX31Nr2jnyLqrHxM6?=
 =?iso-8859-1?Q?R+cZH0qkjLIPH81NrYKKZFhLPgRcjVat0q3/WuapbOQckIQOi2s76m2luu?=
 =?iso-8859-1?Q?PzTlxpPxbC4YGMBCccxftUCYOA9Cz7/btwMFHM8f0tA95axVyKsCukEtDz?=
 =?iso-8859-1?Q?pGDAwSFsmunVSKGFfXRGMTKktIGY+PSTum1ONO1edaaXgLEifgsTj6j0+x?=
 =?iso-8859-1?Q?UDbsg3ADrJaQXIi6aJMphiP5QFGseRlabAlcPWLXfIdfx0rX4BjDvd6uSt?=
 =?iso-8859-1?Q?ek235GdgzX9zF92cp0AhfEo75cDsrkCDalJLYbYEmwDBO0b/CAtzVCqZw3?=
 =?iso-8859-1?Q?Y0Z1aG4yoEniopeG/T/bsU6OD8aUgJCloe5nEbP9vFsa0lWx0vJt8ay0iI?=
 =?iso-8859-1?Q?MOutL787cvRjxlhBnfh1F1HyZLWrIohDIay4Tglc71LA900IDLRT6dDTjL?=
 =?iso-8859-1?Q?FFKD39lQmEErhFsDlnk1ED/heev1j1gOjqnI8Ah/xQtU7gx+c0KqmYRISl?=
 =?iso-8859-1?Q?3ITtCkC3/L7MIM+ZjZWAuwXNbM8E1YQvb6iS9Y2a7yW8GpTDDYGTbQx8PD?=
 =?iso-8859-1?Q?fYhkQ/JCfDxbeMXgSm6ZQ2hn4PllOPiNwW09tbdg2+LAWly86oLF0McY0P?=
 =?iso-8859-1?Q?HmV1hFfdroJLLTdfL5OsixCk1DhS0ax9+VJ4IlzPmCCjXOu+vEZaOVN7Wg?=
 =?iso-8859-1?Q?5LmNo9/j2Du2GsItyJBOH2c59BvNgSymCTKueiUhllUpAGEtF9zOvRukfy?=
 =?iso-8859-1?Q?eT1v+9q8lDXBSiDPO4GfjpVhHduWXJ1utx9rMwTZNooWJGrWGgYIyIdCyu?=
 =?iso-8859-1?Q?JRe6O2Qs5ZyCnJqMhW0806FtVA421OSu7zjXyKNRDA7zpkM/uHMisEHxA+?=
 =?iso-8859-1?Q?IV984l/8xCpObxA03Asg8RTvsJGFCVHTCl9/70Gf0hDzpYI0MgoxJIeQtA?=
 =?iso-8859-1?Q?WoUqf4mTrZ7P7/iCGwAwdKYq4H6Q8GUX6gKVHouRU5h0sldfmDvMs3qQcU?=
 =?iso-8859-1?Q?T+Wq7gBeMUyNdvq8RqTW06Lr+eBApQGEhi7pkiQfKuQwVxwc7k6uE6OK/1?=
 =?iso-8859-1?Q?k66hfnE7Xqig3h9WKeX5zkmYoykHizZVMM1mZavYgOU9+9sKMWMcyxwwS0?=
 =?iso-8859-1?Q?uYv6m4/1sFBjtrSjKXUY59a6Rf7JN/0nP9k1owLE38VVxXQuEpHyNitUne?=
 =?iso-8859-1?Q?wd7YvxP0kjAOqHRYHKH8KQ+9uXK+ojyue3TgU5Cl+f6V9X8GW7RKwSEEsM?=
 =?iso-8859-1?Q?x1KDG1XmTtLmwsSfI9KTRwv/AsG1egae8qfGCz8JfCwLgyMiPrkVPgXapm?=
 =?iso-8859-1?Q?JF+Ln7HmsoqY1zC9tm5aW5AQGTaIg4KWdpv/eDGjfU7ReWXgBLsu8RDezE?=
 =?iso-8859-1?Q?nC1pkUzzAfAoChESNOAIQDKYWcbGZ1oJegq1rAO/p4matZSRQoNVprJ4Z1?=
 =?iso-8859-1?Q?kBZ7+CLLcJBykvDx8bbAXjlSVq+DaaeBT6Zdke/7HpGSm29rFd8fzRhrT9?=
 =?iso-8859-1?Q?T4nU9tq073RizAIw08tjvpHjFmlFoXUa7jZlTk65Xv4Q=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR03MB7136.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?Uas1dOLSav4hkuhpZ4Tap2fPSUa1h//LQ6niR3xbbd9M9WcR8XX66bY7+h?=
 =?iso-8859-1?Q?VGh2N9TF4DpL6KOG4fCv6ByNJKh/VA1YGlNc+PvVi8dWhK+Kz6Ie5K0a4E?=
 =?iso-8859-1?Q?96GintZiJb6cxG8KPo5LG6EKZrXAyJvN0LnPF0bkqenMh9DwJCjOZCo3xO?=
 =?iso-8859-1?Q?YOikdW/ReuAgy6mqcEfQ3LLO89HadcqeCjNtkUH6bicVXE4oKPH/9pL2C0?=
 =?iso-8859-1?Q?Reh32Yq4J0PeLJZBIU3lXjalCHaw7qqsdk3Uctb5xfvmQbZT0H6TPaZ+Ez?=
 =?iso-8859-1?Q?S8yjBQrRrVQEWpE26nPJklOBkX9CRTJQUQMe7rpEkrKwFrN+22snr3alJL?=
 =?iso-8859-1?Q?2EWrd19TTaZ7/v7mF23Mdy0WWA5bb9WRhzIPdKRcng4W6An5PHkQDn08+f?=
 =?iso-8859-1?Q?cB15THrOkZSSdfn/NV12zZ3jdIo7KBCW5BqJB6irAVYu90t7Vwn2YxyQkA?=
 =?iso-8859-1?Q?5969fnzo11QAjN5d4NgEGGwSHxyPXnq4BzjNHLsVcBhXpWb0KVaDZ0mfZ9?=
 =?iso-8859-1?Q?IEspGag5tMFq0qG4xGy6BzvS1hUN25PdXm96Thndr7RmQzeDUs0ifATsRc?=
 =?iso-8859-1?Q?XlvnYBB0YXQQqNDrSAJSVR2Ccs48ZhuZxCxc+aNBz3Xk6lTa3kQncwU5pK?=
 =?iso-8859-1?Q?K1AHkUira++MSZpbhJCarlHD9LT7bMDzwikekhDezgFrvamqc2bJeR/z9a?=
 =?iso-8859-1?Q?T/MsAV57QgxSCZKgVv4AhDe4unk0nTLR4aD4FvkXJ0+vQpQJeKdYtzXhrl?=
 =?iso-8859-1?Q?2DyHwkArBTfwUvlJuKkGuRX6X7Zqpa0z/l0skAIqs8/+CSU4GpGwkiQd4O?=
 =?iso-8859-1?Q?+hnCKlEGtNxlrwL0sSaMgL72e4p6aff0Za0HN9lGQVc6zVTvvylmMYWQiv?=
 =?iso-8859-1?Q?INvbLoUSKZD6MUN8LVQr1nGVBW52GQ+lTgXt5rmhFk43+15hQyocZrQ5e5?=
 =?iso-8859-1?Q?SOEbKZBK5k+9qHJIdE1AsolcxouCrzxgEV0FUq1lwuvtDlWlhr0hnzkyb6?=
 =?iso-8859-1?Q?lphUfriotUpVEcbQ+DTWCNLC23BRnWXq5j2sgiYzVBxdTSi6UjqrWMP2K8?=
 =?iso-8859-1?Q?FN8bd+/2Ru5ewd+JelbVhO+PpaH1WF8KmMnURlQujn6owal3+t1Psg7jzq?=
 =?iso-8859-1?Q?WACL2Qw7ZDNojgX558nPl7vGs/UE5QFyOaehtsd+AFMwvedXRcpQtVx2Xn?=
 =?iso-8859-1?Q?36cf6ho93BCvABncn7Ws/l4SkUROA+SM7w3jurk6KV2Yh/dOfVDyWBoeKg?=
 =?iso-8859-1?Q?x4sjdxmJ91A4eicOvPaLmppztqvywyoOpQa+0mTl62TrPcuP1lNqgP1SOc?=
 =?iso-8859-1?Q?FzhtJWl6wST6deakfL2qecyAza9w4d/G+Owjj1k5UCrQmiA7euOpzzQ5Kn?=
 =?iso-8859-1?Q?qS1TzeA4U5ktBh82th1gWBfKcEARiTXeRQoBSV5uTqn/OfHqYGPVZlrnnv?=
 =?iso-8859-1?Q?h2r750sPIrAyPGNwrXa0lyAwZEDxZcr2jOtKc++JQlqYCY6HaLp/WbBBgz?=
 =?iso-8859-1?Q?SG/4uI3rdo0GvgV/rm33tup3HW4OmwOfVj+KmPDdjdoee6mex9OChDMDLd?=
 =?iso-8859-1?Q?u4S8rLpfRZ+0vBd/06ZmSi87NKWkhS3zUlNbnk04G2iOBqSknqLttbnHZj?=
 =?iso-8859-1?Q?zaD8kv7gk8jUstgMu6jHF7iqavaji35XC9?=
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: PA4PR03MB7136.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 58253980-885a-4dfe-4ded-08ddd5d3c27a
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Aug 2025 16:59:23.3825
 (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: Xfm5eUfEld51REa5ck+nePTSnH/06BvUh4yJqIsdvIZp30SeK7FAwn2Bi/4P5CMoDu4mGzZVvaa1pKjRU4aNUg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7336

From: Rahul Singh <rahul.singh@arm.com>

Add initial support for various emulated registers for virtual SMMUv3
for guests and also add support for virtual cmdq and eventq.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/drivers/passthrough/arm/smmu-v3.h  |   6 +
 xen/drivers/passthrough/arm/vsmmu-v3.c | 286 +++++++++++++++++++++++++
 2 files changed, 292 insertions(+)

diff --git a/xen/drivers/passthrough/arm/smmu-v3.h b/xen/drivers/passthroug=
h/arm/smmu-v3.h
index 3411edc47f..d54f0a79f2 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.h
+++ b/xen/drivers/passthrough/arm/smmu-v3.h
@@ -60,6 +60,12 @@
 #define IDR5_VAX			GENMASK(11, 10)
 #define IDR5_VAX_52_BIT			1
=20
+#define ARM_SMMU_IIDR			0x18
+#define IIDR_PRODUCTID			GENMASK(31, 20)
+#define IIDR_VARIANT			GENMASK(19, 16)
+#define IIDR_REVISION			GENMASK(15, 12)
+#define IIDR_IMPLEMENTER		GENMASK(11, 0)
+
 #define ARM_SMMU_CR0			0x20
 #define CR0_ATSCHK			(1 << 4)
 #define CR0_CMDQEN			(1 << 3)
diff --git a/xen/drivers/passthrough/arm/vsmmu-v3.c b/xen/drivers/passthrou=
gh/arm/vsmmu-v3.c
index e36f200ba5..3ae1e62a50 100644
--- a/xen/drivers/passthrough/arm/vsmmu-v3.c
+++ b/xen/drivers/passthrough/arm/vsmmu-v3.c
@@ -3,25 +3,307 @@
 #include <xen/param.h>
 #include <xen/sched.h>
 #include <asm/mmio.h>
+#include <asm/vgic-emul.h>
 #include <asm/viommu.h>
+#include <asm/vreg.h>
+
+#include "smmu-v3.h"
+
+/* Register Definition */
+#define ARM_SMMU_IDR2       0x8
+#define ARM_SMMU_IDR3       0xc
+#define ARM_SMMU_IDR4       0x10
+#define IDR0_TERM_MODEL     (1 << 26)
+#define IDR3_RIL            (1 << 10)
+#define CR0_RESERVED        0xFFFFFC20
+#define SMMU_IDR1_SIDSIZE   16
+#define SMMU_CMDQS          19
+#define SMMU_EVTQS          19
+#define DWORDS_BYTES        8
+#define ARM_SMMU_IIDR_VAL   0x12
=20
 /* Struct to hold the vIOMMU ops and vIOMMU type */
 extern const struct viommu_desc __read_mostly *cur_viommu;
=20
+/* virtual smmu queue */
+struct arm_vsmmu_queue {
+    uint64_t    q_base; /* base register */
+    uint32_t    prod;
+    uint32_t    cons;
+    uint8_t     ent_size;
+    uint8_t     max_n_shift;
+};
+
 struct virt_smmu {
     struct      domain *d;
     struct      list_head viommu_list;
+    uint8_t     sid_split;
+    uint32_t    features;
+    uint32_t    cr[3];
+    uint32_t    cr0ack;
+    uint32_t    gerror;
+    uint32_t    gerrorn;
+    uint32_t    strtab_base_cfg;
+    uint64_t    strtab_base;
+    uint32_t    irq_ctrl;
+    uint64_t    gerror_irq_cfg0;
+    uint64_t    evtq_irq_cfg0;
+    struct      arm_vsmmu_queue evtq, cmdq;
 };
=20
 static int vsmmuv3_mmio_write(struct vcpu *v, mmio_info_t *info,
                               register_t r, void *priv)
 {
+    struct virt_smmu *smmu =3D priv;
+    uint64_t reg;
+    uint32_t reg32;
+
+    switch ( info->gpa & 0xffff )
+    {
+    case VREG32(ARM_SMMU_CR0):
+        reg32 =3D smmu->cr[0];
+        vreg_reg32_update(&reg32, r, info);
+        smmu->cr[0] =3D reg32;
+        smmu->cr0ack =3D reg32 & ~CR0_RESERVED;
+        break;
+
+    case VREG32(ARM_SMMU_CR1):
+        reg32 =3D smmu->cr[1];
+        vreg_reg32_update(&reg32, r, info);
+        smmu->cr[1] =3D reg32;
+        break;
+
+    case VREG32(ARM_SMMU_CR2):
+        reg32 =3D smmu->cr[2];
+        vreg_reg32_update(&reg32, r, info);
+        smmu->cr[2] =3D reg32;
+        break;
+
+    case VREG64(ARM_SMMU_STRTAB_BASE):
+        reg =3D smmu->strtab_base;
+        vreg_reg64_update(&reg, r, info);
+        smmu->strtab_base =3D reg;
+        break;
+
+    case VREG32(ARM_SMMU_STRTAB_BASE_CFG):
+        reg32 =3D smmu->strtab_base_cfg;
+        vreg_reg32_update(&reg32, r, info);
+        smmu->strtab_base_cfg =3D reg32;
+
+        smmu->sid_split =3D FIELD_GET(STRTAB_BASE_CFG_SPLIT, reg32);
+        smmu->features |=3D STRTAB_BASE_CFG_FMT_2LVL;
+        break;
+
+    case VREG32(ARM_SMMU_CMDQ_BASE):
+        reg =3D smmu->cmdq.q_base;
+        vreg_reg64_update(&reg, r, info);
+        smmu->cmdq.q_base =3D reg;
+        smmu->cmdq.max_n_shift =3D FIELD_GET(Q_BASE_LOG2SIZE, smmu->cmdq.q=
_base);
+        if ( smmu->cmdq.max_n_shift > SMMU_CMDQS )
+            smmu->cmdq.max_n_shift =3D SMMU_CMDQS;
+        break;
+
+    case VREG32(ARM_SMMU_CMDQ_PROD):
+        reg32 =3D smmu->cmdq.prod;
+        vreg_reg32_update(&reg32, r, info);
+        smmu->cmdq.prod =3D reg32;
+        break;
+
+    case VREG32(ARM_SMMU_CMDQ_CONS):
+        reg32 =3D smmu->cmdq.cons;
+        vreg_reg32_update(&reg32, r, info);
+        smmu->cmdq.cons =3D reg32;
+        break;
+
+    case VREG32(ARM_SMMU_EVTQ_BASE):
+        reg =3D smmu->evtq.q_base;
+        vreg_reg64_update(&reg, r, info);
+        smmu->evtq.q_base =3D reg;
+        smmu->evtq.max_n_shift =3D FIELD_GET(Q_BASE_LOG2SIZE, smmu->evtq.q=
_base);
+        if ( smmu->cmdq.max_n_shift > SMMU_EVTQS )
+            smmu->cmdq.max_n_shift =3D SMMU_EVTQS;
+        break;
+
+    case VREG32(ARM_SMMU_EVTQ_PROD):
+        reg32 =3D smmu->evtq.prod;
+        vreg_reg32_update(&reg32, r, info);
+        smmu->evtq.prod =3D reg32;
+        break;
+
+    case VREG32(ARM_SMMU_EVTQ_CONS):
+        reg32 =3D smmu->evtq.cons;
+        vreg_reg32_update(&reg32, r, info);
+        smmu->evtq.cons =3D reg32;
+        break;
+
+    case VREG32(ARM_SMMU_IRQ_CTRL):
+        reg32 =3D smmu->irq_ctrl;
+        vreg_reg32_update(&reg32, r, info);
+        smmu->irq_ctrl =3D reg32;
+        break;
+
+    case VREG64(ARM_SMMU_GERROR_IRQ_CFG0):
+        reg =3D smmu->gerror_irq_cfg0;
+        vreg_reg64_update(&reg, r, info);
+        smmu->gerror_irq_cfg0 =3D reg;
+        break;
+
+    case VREG64(ARM_SMMU_EVTQ_IRQ_CFG0):
+        reg =3D smmu->evtq_irq_cfg0;
+        vreg_reg64_update(&reg, r, info);
+        smmu->evtq_irq_cfg0 =3D reg;
+        break;
+
+    case VREG32(ARM_SMMU_GERRORN):
+        reg =3D smmu->gerrorn;
+        vreg_reg64_update(&reg, r, info);
+        smmu->gerrorn =3D reg;
+        break;
+
+    default:
+        printk(XENLOG_G_ERR
+               "%pv: vSMMUv3: unhandled write r%d offset %"PRIpaddr"\n",
+               v, info->dabt.reg, (unsigned long)info->gpa & 0xffff);
+        return IO_ABORT;
+    }
+
     return IO_HANDLED;
 }
=20
 static int vsmmuv3_mmio_read(struct vcpu *v, mmio_info_t *info,
                              register_t *r, void *priv)
 {
+    struct virt_smmu *smmu =3D priv;
+    uint64_t reg;
+
+    switch ( info->gpa & 0xffff )
+    {
+    case VREG32(ARM_SMMU_IDR0):
+        reg  =3D FIELD_PREP(IDR0_S1P, 1) | FIELD_PREP(IDR0_TTF, 2) |
+            FIELD_PREP(IDR0_COHACC, 0) | FIELD_PREP(IDR0_ASID16, 1) |
+            FIELD_PREP(IDR0_TTENDIAN, 0) | FIELD_PREP(IDR0_STALL_MODEL, 1)=
 |
+            FIELD_PREP(IDR0_ST_LVL, 1) | FIELD_PREP(IDR0_TERM_MODEL, 1);
+        *r =3D vreg_reg32_extract(reg, info);
+        break;
+
+    case VREG32(ARM_SMMU_IDR1):
+        reg  =3D FIELD_PREP(IDR1_SIDSIZE, SMMU_IDR1_SIDSIZE) |
+            FIELD_PREP(IDR1_CMDQS, SMMU_CMDQS) |
+            FIELD_PREP(IDR1_EVTQS, SMMU_EVTQS);
+        *r =3D vreg_reg32_extract(reg, info);
+        break;
+
+    case VREG32(ARM_SMMU_IDR2):
+        goto read_reserved;
+
+    case VREG32(ARM_SMMU_IDR3):
+        reg  =3D FIELD_PREP(IDR3_RIL, 0);
+        *r =3D vreg_reg32_extract(reg, info);
+        break;
+
+    case VREG32(ARM_SMMU_IDR4):
+        goto read_impl_defined;
+
+    case VREG32(ARM_SMMU_IDR5):
+        reg  =3D FIELD_PREP(IDR5_GRAN4K, 1) | FIELD_PREP(IDR5_GRAN16K, 1) =
|
+            FIELD_PREP(IDR5_GRAN64K, 1) | FIELD_PREP(IDR5_OAS, IDR5_OAS_48=
_BIT);
+        *r =3D vreg_reg32_extract(reg, info);
+        break;
+
+    case VREG32(ARM_SMMU_IIDR):
+        *r =3D vreg_reg32_extract(ARM_SMMU_IIDR_VAL, info);
+        break;
+
+    case VREG32(ARM_SMMU_CR0):
+        *r =3D vreg_reg32_extract(smmu->cr[0], info);
+        break;
+
+    case VREG32(ARM_SMMU_CR0ACK):
+        *r =3D vreg_reg32_extract(smmu->cr0ack, info);
+        break;
+
+    case VREG32(ARM_SMMU_CR1):
+        *r =3D vreg_reg32_extract(smmu->cr[1], info);
+        break;
+
+    case VREG32(ARM_SMMU_CR2):
+        *r =3D vreg_reg32_extract(smmu->cr[2], info);
+        break;
+
+    case VREG32(ARM_SMMU_STRTAB_BASE):
+        *r =3D vreg_reg64_extract(smmu->strtab_base, info);
+        break;
+
+    case VREG32(ARM_SMMU_STRTAB_BASE_CFG):
+        *r =3D vreg_reg32_extract(smmu->strtab_base_cfg, info);
+        break;
+
+    case VREG32(ARM_SMMU_CMDQ_BASE):
+        *r =3D vreg_reg64_extract(smmu->cmdq.q_base, info);
+        break;
+
+    case VREG32(ARM_SMMU_CMDQ_PROD):
+        *r =3D vreg_reg32_extract(smmu->cmdq.prod, info);
+        break;
+
+    case VREG32(ARM_SMMU_CMDQ_CONS):
+        *r =3D vreg_reg32_extract(smmu->cmdq.cons, info);
+        break;
+
+    case VREG32(ARM_SMMU_EVTQ_BASE):
+        *r =3D vreg_reg64_extract(smmu->evtq.q_base, info);
+        break;
+
+    case VREG32(ARM_SMMU_EVTQ_PROD):
+        *r =3D vreg_reg32_extract(smmu->evtq.prod, info);
+        break;
+
+    case VREG32(ARM_SMMU_EVTQ_CONS):
+        *r =3D vreg_reg32_extract(smmu->evtq.cons, info);
+        break;
+
+    case VREG32(ARM_SMMU_IRQ_CTRL):
+    case VREG32(ARM_SMMU_IRQ_CTRLACK):
+        *r =3D vreg_reg32_extract(smmu->irq_ctrl, info);
+        break;
+
+    case VREG64(ARM_SMMU_GERROR_IRQ_CFG0):
+        *r =3D vreg_reg64_extract(smmu->gerror_irq_cfg0, info);
+        break;
+
+    case VREG64(ARM_SMMU_EVTQ_IRQ_CFG0):
+        *r =3D vreg_reg64_extract(smmu->evtq_irq_cfg0, info);
+        break;
+
+    case VREG32(ARM_SMMU_GERROR):
+        *r =3D vreg_reg64_extract(smmu->gerror, info);
+        break;
+
+    case VREG32(ARM_SMMU_GERRORN):
+        *r =3D vreg_reg64_extract(smmu->gerrorn, info);
+        break;
+
+    default:
+        printk(XENLOG_G_ERR
+               "%pv: vSMMUv3: unhandled read r%d offset %"PRIpaddr"\n",
+               v, info->dabt.reg, (unsigned long)info->gpa & 0xffff);
+        return IO_ABORT;
+    }
+
+    return IO_HANDLED;
+
+ read_impl_defined:
+    printk(XENLOG_G_DEBUG
+           "%pv: vSMMUv3: RAZ on implementation defined register offset %"=
PRIpaddr"\n",
+           v, info->gpa & 0xffff);
+    *r =3D 0;
+    return IO_HANDLED;
+
+ read_reserved:
+    printk(XENLOG_G_DEBUG
+           "%pv: vSMMUv3: RAZ on reserved register offset %"PRIpaddr"\n",
+           v, info->gpa & 0xffff);
+    *r =3D 0;
     return IO_HANDLED;
 }
=20
@@ -39,6 +321,10 @@ static int vsmmuv3_init_single(struct domain *d, paddr_=
t addr, paddr_t size)
         return -ENOMEM;
=20
     smmu->d =3D d;
+    smmu->cmdq.q_base =3D FIELD_PREP(Q_BASE_LOG2SIZE, SMMU_CMDQS);
+    smmu->cmdq.ent_size =3D CMDQ_ENT_DWORDS * DWORDS_BYTES;
+    smmu->evtq.q_base =3D FIELD_PREP(Q_BASE_LOG2SIZE, SMMU_EVTQS);
+    smmu->evtq.ent_size =3D EVTQ_ENT_DWORDS * DWORDS_BYTES;
=20
     register_mmio_handler(d, &vsmmuv3_mmio_handler, addr, size, smmu);
=20
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 18:31:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 18:31:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073335.1436323 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk5Oy-00016P-Rk; Thu, 07 Aug 2025 18:31:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073335.1436323; Thu, 07 Aug 2025 18: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 1uk5Oy-00014I-M8; Thu, 07 Aug 2025 18:31:44 +0000
Received: by outflank-mailman (input) for mailman id 1073335;
 Thu, 07 Aug 2025 16:59:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5oaB=2T=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1uk3xb-000773-Gw
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 16:59:23 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dd4bdc69-73af-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 18:59:21 +0200 (CEST)
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com (2603:10a6:102:ea::23)
 by AS8PR03MB7336.eurprd03.prod.outlook.com (2603:10a6:20b:2ec::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.16; Thu, 7 Aug
 2025 16:59:20 +0000
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f]) by PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f%6]) with mapi id 15.20.9009.013; Thu, 7 Aug 2025
 16:59: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>
X-Inumbo-ID: dd4bdc69-73af-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=b6n9sHNDjRdkO/wjFznYxUX6XI3jkeGhb8so6IRXyn6WSBlrr5ykyXeZ1nZliuv0jJhbY4NU03Mrkyp/EJ/G7JAyTBeW6rwDeNdwI28U+u2W7Ze3T+88wUY7YofVD/fLM/xkm/tUvIt7Q0qL3UUEopHsAUQoYiee81sQKV4CcQOBKq+/8MhaJFWW5HtmxIxEyEaXEPNaFaUHlOYqVlzGbQd9N4Wdmg2kQuAN6u3+VpmbqNN7BHM28RGoD7jYsB+1ajJq1kLVp8MTwvK6PFVM7+b7CQ0at+bxUaJDAG+W9IuWtpJD5IeCojLHS5320n6DkVeG2S/d0M7DdmN/Y7zUQg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=W5bgCnmqREuCB9x7yrfXS0DVwJ5vmEllxhsq/3uGl74=;
 b=aPxb29Tj1IjlnB/XOgvciHwBtgjCw44WVJfzyETVYFsOakB0B9CdLWzv37rwPNC+2vro0OmU1lqZUUWt+QLEeyUzsjP3OowXpmOIll+1aS8EpCuR5jonNoHbsg+epQbeREZ6bt3w0Hnca9S+sCFsz6Wq5MqnyxPhzSv1bjJePahduW/PlAbewiXggmwF3RIrcHWsAdhLw7gdEZ0rcBhnhm05cbzvUoGv7OOAOrB97odf0NrLC5rXHUiVfzHtwmomKZCG4LG62Aw+lo3NwotkufRd+VGRcFBEv77i9lK3u123l/7aSMnc6Eic2aYZV/c0By3O6hwehhWyhjvwWYUbzQ==
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=W5bgCnmqREuCB9x7yrfXS0DVwJ5vmEllxhsq/3uGl74=;
 b=pj1bEzzve/UE6/qyDNO2Dl7xIetP/4/k9P/rxj0N8hoRrM/EknP0PdqLK5JAm8wv+we7v1HBjDKWqI5moj45MsznfJcAhVkHXeGsB4B9JjV4oJ6Z2Sm0chhfVpR+BYgEEIy0b6Qo9ijcrlXtSCP9RAva6lIdkQI+2DWrxxBuP1kfBh9hKuI3IGxl6hwwmKzIpcO3JUUZRRgtgeOJIgmL+YhDPmf2kVBFdOh2pXMrTLUecjN/+lX+eE1En8mLOhxMMD6sHI7Rtadsj3eowv4OBBEPzpFEVwdXAUFhOZI7mZmW0byGd+cee3ej8d9lF05nqDUtVLxDX8zozFZDvekC7w==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: 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?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Milan Djokic
	<milan_djokic@epam.com>
Subject: [PATCH 05/20] xen/arm: vsmmuv3: Add dummy support for virtual SMMUv3
 for guests
Thread-Topic: [PATCH 05/20] xen/arm: vsmmuv3: Add dummy support for virtual
 SMMUv3 for guests
Thread-Index: AQHcB7yeQvkt3U8dXUO5vMf5OxHVfQ==
Date: Thu, 7 Aug 2025 16:59:20 +0000
Message-ID:
 <757e832e781fd22aa2c7d2491239a61c9935cdc1.1754580688.git.milan_djokic@epam.com>
References: <cover.1754580687.git.milan_djokic@epam.com>
In-Reply-To: <cover.1754580687.git.milan_djokic@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: PA4PR03MB7136:EE_|AS8PR03MB7336:EE_
x-ms-office365-filtering-correlation-id: 36c7e33d-cb71-469c-1b26-08ddd5d3c09b
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?Q0dBL1hBU3lKT3dhYUUzeSt5VTNjT1UreGkyak9uUFBMUnFBOXp4eXJDbkFx?=
 =?utf-8?B?a3lzSWFNd3FXZDlXbnRqcGlianhrc3liN1diOG83TDlLYTVXU0hRTlVaM2JX?=
 =?utf-8?B?MG9IWHdtYmlkQnhFYXRva0o5R09LejlOaUxWcU5MdWl3T2g3YXYwb1Uwd2JD?=
 =?utf-8?B?bzVXQjlRR0swTEQ3a1hFOFNxelg5QTdYQjZvTnRLZVpmakhHcGJkV0ZPa2hp?=
 =?utf-8?B?a0duNDJqYm95Z1dtUFNSMVgyQnVabnM1YzF5THBzVE9DeThHd0srOUtyUzVH?=
 =?utf-8?B?RkRXNWFPUGcyZk5rS2JaNDVhaUhhWE56WXMxM3dKc2ZQR1BrUGxyZk1kTi9G?=
 =?utf-8?B?WGRVOVZBMzY4UjQvT0tqMXN0enMyU3N1a1EwNllrb09oT2twV3g0czFHdDBN?=
 =?utf-8?B?Z1IwMFpIam9zMlZaMmNtZk4zOUpIZ0N3MW9BcEUwWDMyZ0dYVUFMdVpaVjM2?=
 =?utf-8?B?eEZWZS9CVmhtMHJvU3FNci9yU2V4cDdQZGdFNGFLUjZzeDFYV0wwbGMrcVQ3?=
 =?utf-8?B?dWo2UDJQK3VCTUJvbU9xdThVNFhVV05TRTRJWTUxSUpzeUU1UU5GUmZRRnlo?=
 =?utf-8?B?NTk3aUtOSjVQY2JETytSZTg1ZG5FOVBxZ3VWTGpUOXFpM2VuL2hwbHFuTUY2?=
 =?utf-8?B?OUpNQTIrTHJtLzhncE5rS3dRQm5PczJaMEI2OUMybTZVKzdkTXc3WVFaQ3Q4?=
 =?utf-8?B?MHBKTlZXYnRBNXEyM2JuRHMrT1U3TnpMc1M2WDFmZXFTdjJhREQ4TnJ4YTI2?=
 =?utf-8?B?elNVRktLam81dmQrQ1BPQnkrY1NzT0NHQ0xrN003R2ZJWERmaDAxYUVHQlFK?=
 =?utf-8?B?amhOVnR5QW5kTzd6MDB6NmtBR0hJN0JiUnF6SmJEdFlRcnlXRE9yQ1hpVDVT?=
 =?utf-8?B?QjJKQWdQNTFMaFVmZUgyQlc4a1VPK3g2NS9sQW5ONFBmVXc0L2E1Q0svS2Rq?=
 =?utf-8?B?RUJrUTZTZXNkVEhmc0xjeDlSUUp3OUd1TEFWbngzdUpjNHRkMGM0M2U0bkVk?=
 =?utf-8?B?MWNkeWFMOVhSc3E0cVZjVWdkWnNTRVdEdXpRWTY5Qkh1WCtKRld3OWIvVi9H?=
 =?utf-8?B?YVdPTXdpOGhMU2xGSnlyNUxJU0lvbUt6TXFmUnVBUkV5OUc0SGJ5LzZ5STBB?=
 =?utf-8?B?MU9pNmFXaG42SjJHMGZFYVQ2Wk9aZnBmaUQraVV2WDZIcmkyenFSYWFLSTdt?=
 =?utf-8?B?WXFqbTVaaHBZcnVVQXVGYVR0SWZBbndUK2ZQWW13eTlUSTZYbVQxdTMzY1Q4?=
 =?utf-8?B?eElrRXdnV012WjZjZjRic3dhNVYyV0txeFQvMjR5RnNZcG0xa0lqUVdQL0Qv?=
 =?utf-8?B?M01SRHpWRHFlN255TWw1YnFXQTRQRXBZTUJEY2F6b1FHaEhIeTg3bzdURU9u?=
 =?utf-8?B?bjBkYmsvdGJwd3ExbkE0MHE1aHBFSkE3MG8zaHpoend6K2w0QnFOWVF3andz?=
 =?utf-8?B?OHU0OWhPYWp0NXZVNFBraHo2UXhpUkcvSkpyem5Tdnl5akVZWTdtdlJzYkhR?=
 =?utf-8?B?WEk5T3BndjYvNHJzZ1VQVFF6TXhLV3JtcWpWa0QrZzFtYjhlMFU5U3llNHMz?=
 =?utf-8?B?TEwzQ1k0ZVlvS3VGVFo1UEVGaHA0Z1RjOWtMMlBzUTJQTlpsU2lpdGg1RkEy?=
 =?utf-8?B?OGRnTTRsWXZyN1NDdENPWTNaUjJtbjJ1eDA5ZmRtU3MwcXMycmdxU2M4M0Z0?=
 =?utf-8?B?ZjJ4bGU3aWRUOW4zY2VMSFZrOFJjV0dhcTVlQ29xS2VhNWE5Y1JRYVVXMG85?=
 =?utf-8?B?WEd4V3gyeTRlOW1hcDNPTFlxK0Z0eEpyUk5ySnVVYVlCMFFJMDhxVnhRb0lm?=
 =?utf-8?B?VDhSeEZjZEpBMStnRFVXaDFzUUp6NlVqUUF0YnNkM01pa1JoNTNicktGbHIy?=
 =?utf-8?B?TCsxeUNobk85OUZNY1RKaEQvRnJMN2o2bEV6bHEzRkZ2TUI5WmhpeUR5QzMw?=
 =?utf-8?B?RGwzUDFLWTZmb0tiQ1pPMEMvejMrRVlyT0dpWEg2dDBLLzFjeE9vejllNEti?=
 =?utf-8?B?Ymw3YW1JS0ZBPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR03MB7136.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?TWtkTTdGV1VVSURMcjVTc1IydmxqbVdueXM5V1c4WDZ2YUg4aWpYWnlhY0hi?=
 =?utf-8?B?cmxCWEJISWo5YmRTaXZncG9lRVo3a3A5TTZRRDQ1b285NVMvQXU1ZStYMVhp?=
 =?utf-8?B?NHJRYjQ0UkN6WHlPTWVYZ2x4UHRaaVRGS0Z2TEV4WmVPQkhBeWxtUjlmRFg2?=
 =?utf-8?B?b2gySG1UN0M3V0pQTmdQLzY1YzZKMVgrRDRDZnJSSm1SZ2tGeE1GT2hzZXlh?=
 =?utf-8?B?Yk05SlVnU1krd25SYzkrWnRxcGUzbUV5elZ1WXpYK3pMOU1tWXBNZTNXWWRQ?=
 =?utf-8?B?U3h6a1VEVjBSYjFGdXVrTmxwY2hqOVJUbm14bVlTbHpPQVMrZ1F5TXhlZFVQ?=
 =?utf-8?B?bXFFTitvV2dKRUVtSFJVYllUSG13eGpMcDVYZjYvM0oyQ29OWW8rbHcybDZP?=
 =?utf-8?B?ZU1GeTFRaWo2YkhZRTJlRjl4QjYrRG9lZU5JMXpTUW5kT0w0dFBwbDkvdEdt?=
 =?utf-8?B?VDAyU3dLdlVFUWhQUHI3dG9OdVdITk9YbWUwYlV0SXFkb3ZHMGVDMThBUkIy?=
 =?utf-8?B?bDJvR0dzTGxjc05zdll2bW04Q1BVeTFXY1dDNjBCeHI3eGtoa3RDbC9DTWdP?=
 =?utf-8?B?U0xOZmd0YWtUZXI1SjI3OS9vN0RKM1lza1hJZEJ1T0NOYVNGVEwwVVYzNkN2?=
 =?utf-8?B?Q3BwaEhDaDlTUE13SVI1ZHp6T0YyY0pUYS9Id1g3L1piZGplQlZic3h0MFRq?=
 =?utf-8?B?aHoyTjJMMkw4MDFZODBVQVpBOFdUVG5ybEVpUUpYdWZOWHpUZHl2T2Z4NzY5?=
 =?utf-8?B?YUp1c3lVWVhRT1FzNG9SQjMzTFFTMEV5MjNLUitrd3QrRW9ZZFJIaWhNZlA1?=
 =?utf-8?B?MXNuK0xMcXZSTjFpOSt5ck51RDI3V2dtQlYwaEp6T0JDSWFWcG5YMUZoQW53?=
 =?utf-8?B?SkxacGY3LzhNelZGak93SnBYZFpjdGtMMDZEUDhPL3pWbHdzek5PbVA5M3hs?=
 =?utf-8?B?eTZEd1BuL25CNyt5OWo4OXpCdXhJTFM1THM0cG9VL1JuYVpxbkR3d1JiSCtP?=
 =?utf-8?B?cERkNzlwUytkY0d2ZFJqQzE3VFpzWVVvZmt6eEhnVndZWTBybEFPWEs5MHhu?=
 =?utf-8?B?RVRldlNVdUhGU2hoWngrWnV4bWw3SklNenlzOEZ0SGN0akpBemNCdGZ3bDFz?=
 =?utf-8?B?WEh0U2ZzK0g3R0JwY1FPdkVPYlBEMXNwSzY3S2w5YWQrcEFSNlRZb1F0SzRL?=
 =?utf-8?B?L1pOek5ILzA4enFoUFdBMnVMNEF5RmNxVVZoTTdXOWdTRncvVnhYTmRGbU1q?=
 =?utf-8?B?TkNKMGlhS29kajN2cHpabG9rTnkxb0QwQVZOZGtwUWdLMW1lOXpSZkUwK2FJ?=
 =?utf-8?B?T0xobDdyTnhhVU5uTmg4ZUNzTm9sTXNwemR6T2RNVmJyWGk3UXR6dWNXTGsy?=
 =?utf-8?B?V09BZGF0SUR4RGVvV0hPTFhsWW9oNU9BQ0xkQWdmaVZBTlM2RU1kWG1GNEJs?=
 =?utf-8?B?QUE2YnBoZDBXSVRMWHA1Y2dSclZxaHFBcjVVTUw0OXZSa2dzai9TWkpuTlhs?=
 =?utf-8?B?c3hsY1owazF5VFRkdGpwVWVnZjd3V0xrUW05bWpPVk1yQWtGMmk2em40YWdj?=
 =?utf-8?B?OGFkYXFzZnkrUzhZY2l0MjlJZ040KzdJRzFyYThvUWU2SEVnanJrUHloMGhp?=
 =?utf-8?B?UzdhZFRya2RCbVh3eFFBWDhsaUJNazMxajhDWmk4NTl6dS81a0cvdXVTRnkw?=
 =?utf-8?B?eWFhOFZaSkpWWHpHMUh6bVI1WE9HTjFUaWxzcVNUdUo3cnlLWlBrLzBKQTJs?=
 =?utf-8?B?K0YvYmx2K2lkLzl0clNKUk9lRUFmYUJuaFBkTXMxTWpmTTBJUnhNdzh0aVg5?=
 =?utf-8?B?WUVvWFFZc0dpNnNKemt3b3EwV1RURUs1WEx4RFdrUVEwQ0txbDNGdmtjdDZJ?=
 =?utf-8?B?SGVSWS93ZFJUU05KQU1yQ1JPaXF0Wno2cHc4K3lvTDJ2c2tYWnVTZmFBQUw0?=
 =?utf-8?B?M1crTmhTaU9BVWdVclRDYXpsdE5OMWRDODhqZXVZS0pvNm9iRzduUXhJKyt1?=
 =?utf-8?B?cGlyWVJDNkpYMENFYW90OUVGTjllWVUxZ2xibUxUbHp3N1ZOaDNCbmIzMjNM?=
 =?utf-8?B?cS9RVnI2S3Z3U0pVcE9RTmpLU0VrTW1VcHNDQWVYdDg5cTEzQUhsUHJra3hv?=
 =?utf-8?Q?5Iqph4mxM3FLfIfBgdZn/uKgu?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <3FE4F91D27F0E04893823C9B60DC5579@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: PA4PR03MB7136.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 36c7e33d-cb71-469c-1b26-08ddd5d3c09b
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Aug 2025 16:59:20.2470
 (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: 3Owx8BXOic2WjkxGIe4G2gdOha9HpqTAbv375zU+o8wpAJ8zmPgtyllXzoR3T/c8Sv8QeZbUY7Yktbz2QZDbQw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7336

RnJvbTogUmFodWwgU2luZ2ggPHJhaHVsLnNpbmdoQGFybS5jb20+DQoNCmRvbWFpbl92aW9tbXVf
aW5pdCgpIHdpbGwgYmUgY2FsbGVkIGR1cmluZyBkb21haW4gY3JlYXRpb24gYW5kIHdpbGwgYWRk
DQp0aGUgZHVtbXkgdHJhcCBoYW5kbGVyIGZvciB2aXJ0dWFsIElPTU1VcyBmb3IgZ3Vlc3RzLg0K
DQpBIGhvc3QgSU9NTVUgbGlzdCB3aWxsIGJlIGNyZWF0ZWQgd2hlbiBob3N0IElPTU1VIGRldmlj
ZXMgYXJlIHByb2JlZA0KYW5kIHRoaXMgbGlzdCB3aWxsIGJlIHVzZWQgdG8gY3JlYXRlIHRoZSBJ
T01NVSBkZXZpY2UgdHJlZSBub2RlIGZvcg0KZG9tMC4gRm9yIGRvbTAsIDEtMSBtYXBwaW5nIHdp
bGwgYmUgZXN0YWJsaXNoZWQgYmV0d2VlbiB2SU9NTVUgaW4gZG9tMA0KYW5kwqBwaHlzaWNhbCBJ
T01NVS4NCg0KRm9yIGRvbVVzLCB0aGUgMS1OIG1hcHBpbmcgd2lsbCBiZSBlc3RhYmxpc2hlZCBi
ZXR3ZWVuIGRvbVUgYW5kIHBoeXNpY2FsDQpJT01NVXMuIEEgbmV3IGFyZWEgaGFzIGJlZW4gcmVz
ZXJ2ZWQgaW4gdGhlIGFybSBndWVzdCBwaHlzaWNhbCBtYXAgYXQNCndoaWNoIHRoZSBlbXVsYXRl
ZCB2SU9NTVUgbm9kZSBpcyBjcmVhdGVkIGluIHRoZSBkZXZpY2UgdHJlZS4NCg0KQWxzbyBzZXQg
dGhlIHZJT01NVSB0eXBlIHRvIHZTTU1VdjMgdG8gZW5hYmxlIHZJT01NVSBmcmFtZXdvcmsgdG8g
Y2FsbA0KdlNNTVV2MyBkb21haW4gY3JlYXRpb24vZGVzdHJveSBmdW5jdGlvbnMuDQoNClNpZ25l
ZC1vZmYtYnk6IFJhaHVsIFNpbmdoIDxyYWh1bC5zaW5naEBhcm0uY29tPg0KU2lnbmVkLW9mZi1i
eTogTWlsYW4gRGpva2ljIDxtaWxhbl9kam9raWNAZXBhbS5jb20+DQotLS0NCiB4ZW4vYXJjaC9h
cm0vZG9tYWluLmMgICAgICAgICAgICAgICAgICB8ICAgMyArLQ0KIHhlbi9hcmNoL2FybS9pbmNs
dWRlL2FzbS9kb21haW4uaCAgICAgIHwgICA0ICsNCiB4ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20v
dmlvbW11LmggICAgICB8ICAyMCArKysrDQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvS2NvbmZp
ZyAgICAgICAgfCAgIDggKysNCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vTWFrZWZpbGUg
ICB8ICAgMSArDQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL3NtbXUtdjMuYyAgfCAgIDcg
KysNCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vdmlvbW11LmMgICB8ICAzMCArKysrKysN
CiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vdnNtbXUtdjMuYyB8IDEyNCArKysrKysrKysr
KysrKysrKysrKysrKysrDQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL3ZzbW11LXYzLmgg
fCAgMjAgKysrKw0KIHhlbi9pbmNsdWRlL3B1YmxpYy9hcmNoLWFybS5oICAgICAgICAgIHwgICA3
ICstDQogMTAgZmlsZXMgY2hhbmdlZCwgMjIyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0p
DQogY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS92c21tdS12
My5jDQogY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS92c21t
dS12My5oDQoNCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZG9tYWluLmMgYi94ZW4vYXJjaC9h
cm0vZG9tYWluLmMNCmluZGV4IGE2NmY3MWRhMTcuLmYwOTcxYTc2Y2IgMTAwNjQ0DQotLS0gYS94
ZW4vYXJjaC9hcm0vZG9tYWluLmMNCisrKyBiL3hlbi9hcmNoL2FybS9kb21haW4uYw0KQEAgLTcw
OCw3ICs3MDgsOCBAQCBpbnQgYXJjaF9zYW5pdGlzZV9kb21haW5fY29uZmlnKHN0cnVjdCB4ZW5f
ZG9tY3RsX2NyZWF0ZWRvbWFpbiAqY29uZmlnKQ0KICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQog
ICAgIH0NCiANCi0gICAgaWYgKCBjb25maWctPmFyY2gudmlvbW11X3R5cGUgIT0gWEVOX0RPTUNU
TF9DT05GSUdfVklPTU1VX05PTkUgKQ0KKyAgICBpZiAoIGNvbmZpZy0+YXJjaC52aW9tbXVfdHlw
ZSAhPSBYRU5fRE9NQ1RMX0NPTkZJR19WSU9NTVVfTk9ORSAmJg0KKyAgICAgICAgIGNvbmZpZy0+
YXJjaC52aW9tbXVfdHlwZSAhPSB2aW9tbXVfZ2V0X3R5cGUoKSApDQogICAgIHsNCiAgICAgICAg
IGRwcmludGsoWEVOTE9HX0lORk8sDQogICAgICAgICAgICAgICAgICJ2SU9NTVUgdHlwZSByZXF1
ZXN0ZWQgbm90IHN1cHBvcnRlZCBieSB0aGUgcGxhdGZvcm0gb3IgWGVuXG4iKTsNCmRpZmYgLS1n
aXQgYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vZG9tYWluLmggYi94ZW4vYXJjaC9hcm0vaW5j
bHVkZS9hc20vZG9tYWluLmgNCmluZGV4IGEzNDg3Y2E3MTMuLjI1ZWU3YzQyOTAgMTAwNjQ0DQot
LS0gYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vZG9tYWluLmgNCisrKyBiL3hlbi9hcmNoL2Fy
bS9pbmNsdWRlL2FzbS9kb21haW4uaA0KQEAgLTEyMSw2ICsxMjEsMTAgQEAgc3RydWN0IGFyY2hf
ZG9tYWluDQogICAgIHZvaWQgKnRlZTsNCiAjZW5kaWYNCiANCisjaWZkZWYgQ09ORklHX1ZJUlRV
QUxfSU9NTVUNCisgICAgc3RydWN0IGxpc3RfaGVhZCB2aW9tbXVfbGlzdDsgICAgIC8qIExpc3Qg
b2YgdmlydHVhbCBJT01NVXMgKi8NCisjZW5kaWYNCisNCiB9ICBfX2NhY2hlbGluZV9hbGlnbmVk
Ow0KIA0KIHN0cnVjdCBhcmNoX3ZjcHUNCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vaW5jbHVk
ZS9hc20vdmlvbW11LmggYi94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vdmlvbW11LmgNCmluZGV4
IDdjZDM4MThhMTIuLjQ3ODU4NzdlMmEgMTAwNjQ0DQotLS0gYS94ZW4vYXJjaC9hcm0vaW5jbHVk
ZS9hc20vdmlvbW11LmgNCisrKyBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS92aW9tbXUuaA0K
QEAgLTUsOSArNSwyMSBAQA0KICNpZmRlZiBDT05GSUdfVklSVFVBTF9JT01NVQ0KIA0KICNpbmNs
dWRlIDx4ZW4vbGliLmg+DQorI2luY2x1ZGUgPHhlbi9saXN0Lmg+DQogI2luY2x1ZGUgPHhlbi90
eXBlcy5oPg0KICNpbmNsdWRlIDxwdWJsaWMveGVuLmg+DQogDQorZXh0ZXJuIHN0cnVjdCBsaXN0
X2hlYWQgaG9zdF9pb21tdV9saXN0Ow0KKw0KKy8qIGRhdGEgc3RydWN0dXJlIGZvciBlYWNoIGhh
cmR3YXJlIElPTU1VICovDQorc3RydWN0IGhvc3RfaW9tbXUgew0KKyAgICBzdHJ1Y3QgbGlzdF9o
ZWFkIGVudHJ5Ow0KKyAgICBjb25zdCBzdHJ1Y3QgZHRfZGV2aWNlX25vZGUgKmR0X25vZGU7DQor
ICAgIHBhZGRyX3QgYWRkcjsNCisgICAgcGFkZHJfdCBzaXplOw0KKyAgICB1aW50MzJfdCBpcnE7
DQorfTsNCisNCiBzdHJ1Y3QgdmlvbW11X29wcyB7DQogICAgIC8qDQogICAgICAqIENhbGxlZCBk
dXJpbmcgZG9tYWluIGNvbnN0cnVjdGlvbiBpZiB0b29sc3RhY2sgcmVxdWVzdHMgdG8gZW5hYmxl
DQpAQCAtMzUsNiArNDcsOCBAQCBzdHJ1Y3QgdmlvbW11X2Rlc2Mgew0KIGludCBkb21haW5fdmlv
bW11X2luaXQoc3RydWN0IGRvbWFpbiAqZCwgdWludDE2X3QgdmlvbW11X3R5cGUpOw0KIGludCB2
aW9tbXVfcmVsaW5xdWlzaF9yZXNvdXJjZXMoc3RydWN0IGRvbWFpbiAqZCk7DQogdWludDE2X3Qg
dmlvbW11X2dldF90eXBlKHZvaWQpOw0KK3ZvaWQgYWRkX3RvX2hvc3RfaW9tbXVfbGlzdChwYWRk
cl90IGFkZHIsIHBhZGRyX3Qgc2l6ZSwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3Qgc3RydWN0IGR0X2RldmljZV9ub2RlICpub2RlKTsNCiANCiAjZWxzZQ0KIA0KQEAgLTU2LDYg
KzcwLDEyIEBAIHN0YXRpYyBpbmxpbmUgaW50IHZpb21tdV9yZWxpbnF1aXNoX3Jlc291cmNlcyhz
dHJ1Y3QgZG9tYWluICpkKQ0KICAgICByZXR1cm4gMDsNCiB9DQogDQorc3RhdGljIGlubGluZSB2
b2lkIGFkZF90b19ob3N0X2lvbW11X2xpc3QocGFkZHJfdCBhZGRyLCBwYWRkcl90IHNpemUsDQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGR0
X2RldmljZV9ub2RlICpub2RlKQ0KK3sNCisgICAgcmV0dXJuOw0KK30NCisNCiAjZW5kaWYgLyog
Q09ORklHX1ZJUlRVQUxfSU9NTVUgKi8NCiANCiAjZW5kaWYgLyogX19BUkNIX0FSTV9WSU9NTVVf
SF9fICovDQpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvS2NvbmZpZyBiL3hl
bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL0tjb25maWcNCmluZGV4IGZiZDU2ZWI5OTAuLmQ3MTExMjNj
YWMgMTAwNjQ0DQotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9LY29uZmlnDQorKysgYi94
ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9LY29uZmlnDQpAQCAtNDEsNiArNDEsMTQgQEAgY29uZmln
IFZJUlRVQUxfSU9NTVUNCiAJaGVscA0KIAkgU3VwcG9ydCB2aXJ0dWFsIElPTU1VIGluZnJhc3Ry
dWN0dXJlIHRvIGltcGxlbWVudCB2SU9NTVUuDQogDQorY29uZmlnIFZJUlRVQUxfQVJNX1NNTVVf
VjMNCisJYm9vbCAiQVJNIEx0ZC4gVmlydHVhbCBTTU1VdjMgU3VwcG9ydCAoVU5TVVBQT1JURUQp
IiBpZiBVTlNVUFBPUlRFRA0KKwlkZXBlbmRzIG9uIEFSTV9TTU1VX1YzICYmIFZJUlRVQUxfSU9N
TVUNCisJaGVscA0KKwkgU3VwcG9ydCBmb3IgaW1wbGVtZW50YXRpb25zIG9mIHRoZSB2aXJ0dWFs
IEFSTSBTeXN0ZW0gTU1VIGFyY2hpdGVjdHVyZQ0KKwkgdmVyc2lvbiAzLiBWaXJ0dWFsIFNNTVV2
MyBpcyB1bnN1cHBvcnRlZCBmZWF0dXJlIGFuZCBzaG91bGQgbm90IGJlIHVzZWQNCisJIGluIHBy
b2R1Y3Rpb24uDQorDQogZW5kaWYNCiANCiBjb25maWcgQU1EX0lPTU1VDQpkaWZmIC0tZ2l0IGEv
eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL01ha2VmaWxlIGIveGVuL2RyaXZlcnMvcGFzc3Ro
cm91Z2gvYXJtL01ha2VmaWxlDQppbmRleCA0Y2M1NGYzZjRkLi5lNzU4YTlkNmFhIDEwMDY0NA0K
LS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL01ha2VmaWxlDQorKysgYi94ZW4vZHJp
dmVycy9wYXNzdGhyb3VnaC9hcm0vTWFrZWZpbGUNCkBAIC0zLDMgKzMsNCBAQCBvYmotJChDT05G
SUdfQVJNX1NNTVUpICs9IHNtbXUubw0KIG9iai0kKENPTkZJR19JUE1NVV9WTVNBKSArPSBpcG1t
dS12bXNhLm8NCiBvYmotJChDT05GSUdfQVJNX1NNTVVfVjMpICs9IHNtbXUtdjMubw0KIG9iai0k
KENPTkZJR19WSVJUVUFMX0lPTU1VKSArPSB2aW9tbXUubw0KK29iai0kKENPTkZJR19WSVJUVUFM
X0FSTV9TTU1VX1YzKSArPSB2c21tdS12My5vDQpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFz
c3Rocm91Z2gvYXJtL3NtbXUtdjMuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS9zbW11
LXYzLmMNCmluZGV4IDE1ZmY3MDM0NTguLjE5M2M4OTJmY2QgMTAwNjQ0DQotLS0gYS94ZW4vZHJp
dmVycy9wYXNzdGhyb3VnaC9hcm0vc21tdS12My5jDQorKysgYi94ZW4vZHJpdmVycy9wYXNzdGhy
b3VnaC9hcm0vc21tdS12My5jDQpAQCAtOTMsNiArOTMsNyBAQA0KICNpbmNsdWRlIDxhc20vcGxh
dGZvcm0uaD4NCiANCiAjaW5jbHVkZSAic21tdS12My5oIg0KKyNpbmNsdWRlICJ2c21tdS12My5o
Ig0KIA0KICNkZWZpbmUgQVJNX1NNTVVfVlRDUl9TSF9JUwkJMw0KICNkZWZpbmUgQVJNX1NNTVVf
VlRDUl9SR05fV0JXQQkJMQ0KQEAgLTI3MDgsNiArMjcwOSw5IEBAIHN0YXRpYyBpbnQgX19pbml0
IGFybV9zbW11X2RldmljZV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KIAls
aXN0X2FkZCgmc21tdS0+ZGV2aWNlcywgJmFybV9zbW11X2RldmljZXMpOw0KIAlzcGluX3VubG9j
aygmYXJtX3NtbXVfZGV2aWNlc19sb2NrKTsNCiANCisgICAgLyogQWRkIHRvIGhvc3QgSU9NTVUg
bGlzdCB0byBpbml0aWFsaXplIHZJT01NVSBmb3IgZG9tMCAqLw0KKwlhZGRfdG9faG9zdF9pb21t
dV9saXN0KGlvYWRkciwgaW9zaXplLCBkZXZfdG9fZHQocGRldikpOw0KKw0KIAlyZXR1cm4gMDsN
CiANCiANCkBAIC0zMDM5LDYgKzMwNDMsOSBAQCBzdGF0aWMgX19pbml0IGludCBhcm1fc21tdV9k
dF9pbml0KHN0cnVjdCBkdF9kZXZpY2Vfbm9kZSAqZGV2LA0KIA0KIAlwbGF0Zm9ybV9mZWF0dXJl
cyAmPSBzbW11LT5mZWF0dXJlczsNCiANCisJLyogU2V0IHZJT01NVSB0eXBlIHRvIFNNTVV2MyAq
Lw0KKwl2c21tdXYzX3NldF90eXBlKCk7DQorDQogCXJldHVybiAwOw0KIH0NCiANCmRpZmYgLS1n
aXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vdmlvbW11LmMgYi94ZW4vZHJpdmVycy9w
YXNzdGhyb3VnaC9hcm0vdmlvbW11LmMNCmluZGV4IDdhYjYwNjFlMzQuLjUzYWU0NjM0OWEgMTAw
NjQ0DQotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vdmlvbW11LmMNCisrKyBiL3hl
bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS92aW9tbXUuYw0KQEAgLTIsMTIgKzIsNDIgQEANCiAN
CiAjaW5jbHVkZSA8eGVuL2Vycm5vLmg+DQogI2luY2x1ZGUgPHhlbi9pbml0Lmg+DQorI2luY2x1
ZGUgPHhlbi9pcnEuaD4NCiAjaW5jbHVkZSA8eGVuL3R5cGVzLmg+DQogDQogI2luY2x1ZGUgPGFz
bS92aW9tbXUuaD4NCiANCisvKiBMaXN0IG9mIGFsbCBob3N0IElPTU1VcyAqLw0KK0xJU1RfSEVB
RChob3N0X2lvbW11X2xpc3QpOw0KKw0KIGNvbnN0IHN0cnVjdCB2aW9tbXVfZGVzYyBfX3JlYWRf
bW9zdGx5ICpjdXJfdmlvbW11Ow0KIA0KKy8qIENvbW1vbiBmdW5jdGlvbiBmb3IgYWRkaW5nIHRv
IGhvc3RfaW9tbXVfbGlzdCAqLw0KK3ZvaWQgYWRkX3RvX2hvc3RfaW9tbXVfbGlzdChwYWRkcl90
IGFkZHIsIHBhZGRyX3Qgc2l6ZSwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
c3RydWN0IGR0X2RldmljZV9ub2RlICpub2RlKQ0KK3sNCisgICAgc3RydWN0IGhvc3RfaW9tbXUg
KmlvbW11X2RhdGE7DQorDQorICAgIGlvbW11X2RhdGEgPSB4emFsbG9jKHN0cnVjdCBob3N0X2lv
bW11KTsNCisgICAgaWYgKCAhaW9tbXVfZGF0YSApDQorICAgICAgICBwYW5pYygidklPTU1VOiBD
YW5ub3QgYWxsb2NhdGUgbWVtb3J5IGZvciBob3N0IElPTU1VIGRhdGFcbiIpOw0KKw0KKyAgICBp
b21tdV9kYXRhLT5hZGRyID0gYWRkcjsNCisgICAgaW9tbXVfZGF0YS0+c2l6ZSA9IHNpemU7DQor
ICAgIGlvbW11X2RhdGEtPmR0X25vZGUgPSBub2RlOw0KKyAgICBpb21tdV9kYXRhLT5pcnEgPSBw
bGF0Zm9ybV9nZXRfaXJxKG5vZGUsIDApOw0KKyAgICBpZiAoIGlvbW11X2RhdGEtPmlycSA8IDAg
KQ0KKyAgICB7DQorICAgICAgICBnZHByaW50ayhYRU5MT0dfRVJSLA0KKyAgICAgICAgICAgICAg
ICAgInZJT01NVTogQ2Fubm90IGZpbmQgYSB2YWxpZCBJT01NVSBpcnFcbiIpOw0KKyAgICAgICAg
cmV0dXJuOw0KKyAgICB9DQorDQorICAgIHByaW50aygidklPTU1VOiBGb3VuZCBJT01NVSBAMHgl
IlBSSXg2NCJcbiIsIGFkZHIpOw0KKw0KKyAgICBsaXN0X2FkZF90YWlsKCZpb21tdV9kYXRhLT5l
bnRyeSwgJmhvc3RfaW9tbXVfbGlzdCk7DQorfQ0KKw0KIGludCBkb21haW5fdmlvbW11X2luaXQo
c3RydWN0IGRvbWFpbiAqZCwgdWludDE2X3QgdmlvbW11X3R5cGUpDQogew0KICAgICBpZiAoIHZp
b21tdV90eXBlID09IFhFTl9ET01DVExfQ09ORklHX1ZJT01NVV9OT05FICkNCmRpZmYgLS1naXQg
YS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vdnNtbXUtdjMuYyBiL3hlbi9kcml2ZXJzL3Bh
c3N0aHJvdWdoL2FybS92c21tdS12My5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAw
MDAwMDAwMC4uNmI0MDA5ZTVlZg0KLS0tIC9kZXYvbnVsbA0KKysrIGIveGVuL2RyaXZlcnMvcGFz
c3Rocm91Z2gvYXJtL3ZzbW11LXYzLmMNCkBAIC0wLDAgKzEsMTI0IEBADQorLyogU1BEWC1MaWNl
bnNlLUlkZW50aWZpZXI6IChHUEwtMi4wLW9yLWxhdGVyIE9SIEJTRC0yLUNsYXVzZSkgKi8NCisN
CisjaW5jbHVkZSA8eGVuL3BhcmFtLmg+DQorI2luY2x1ZGUgPHhlbi9zY2hlZC5oPg0KKyNpbmNs
dWRlIDxhc20vbW1pby5oPg0KKyNpbmNsdWRlIDxhc20vdmlvbW11Lmg+DQorDQorLyogU3RydWN0
IHRvIGhvbGQgdGhlIHZJT01NVSBvcHMgYW5kIHZJT01NVSB0eXBlICovDQorZXh0ZXJuIGNvbnN0
IHN0cnVjdCB2aW9tbXVfZGVzYyBfX3JlYWRfbW9zdGx5ICpjdXJfdmlvbW11Ow0KKw0KK3N0cnVj
dCB2aXJ0X3NtbXUgew0KKyAgICBzdHJ1Y3QgICAgICBkb21haW4gKmQ7DQorICAgIHN0cnVjdCAg
ICAgIGxpc3RfaGVhZCB2aW9tbXVfbGlzdDsNCit9Ow0KKw0KK3N0YXRpYyBpbnQgdnNtbXV2M19t
bWlvX3dyaXRlKHN0cnVjdCB2Y3B1ICp2LCBtbWlvX2luZm9fdCAqaW5mbywNCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZWdpc3Rlcl90IHIsIHZvaWQgKnByaXYpDQorew0KKyAgICBy
ZXR1cm4gSU9fSEFORExFRDsNCit9DQorDQorc3RhdGljIGludCB2c21tdXYzX21taW9fcmVhZChz
dHJ1Y3QgdmNwdSAqdiwgbW1pb19pbmZvX3QgKmluZm8sDQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZWdpc3Rlcl90ICpyLCB2b2lkICpwcml2KQ0KK3sNCisgICAgcmV0dXJuIElPX0hB
TkRMRUQ7DQorfQ0KKw0KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbW1pb19oYW5kbGVyX29wcyB2c21t
dXYzX21taW9faGFuZGxlciA9IHsNCisgICAgLnJlYWQgID0gdnNtbXV2M19tbWlvX3JlYWQsDQor
ICAgIC53cml0ZSA9IHZzbW11djNfbW1pb193cml0ZSwNCit9Ow0KKw0KK3N0YXRpYyBpbnQgdnNt
bXV2M19pbml0X3NpbmdsZShzdHJ1Y3QgZG9tYWluICpkLCBwYWRkcl90IGFkZHIsIHBhZGRyX3Qg
c2l6ZSkNCit7DQorICAgIHN0cnVjdCB2aXJ0X3NtbXUgKnNtbXU7DQorDQorICAgIHNtbXUgPSB4
emFsbG9jKHN0cnVjdCB2aXJ0X3NtbXUpOw0KKyAgICBpZiAoICFzbW11ICkNCisgICAgICAgIHJl
dHVybiAtRU5PTUVNOw0KKw0KKyAgICBzbW11LT5kID0gZDsNCisNCisgICAgcmVnaXN0ZXJfbW1p
b19oYW5kbGVyKGQsICZ2c21tdXYzX21taW9faGFuZGxlciwgYWRkciwgc2l6ZSwgc21tdSk7DQor
DQorICAgIC8qIFJlZ2lzdGVyIHRoZSB2SU9NTVUgdG8gYmUgYWJsZSB0byBjbGVhbiBpdCB1cCBs
YXRlci4gKi8NCisgICAgbGlzdF9hZGRfdGFpbCgmc21tdS0+dmlvbW11X2xpc3QsICZkLT5hcmNo
LnZpb21tdV9saXN0KTsNCisNCisgICAgcmV0dXJuIDA7DQorfQ0KKw0KK2ludCBkb21haW5fdnNt
bXV2M19pbml0KHN0cnVjdCBkb21haW4gKmQpDQorew0KKyAgICBpbnQgcmV0Ow0KKyAgICBJTklU
X0xJU1RfSEVBRCgmZC0+YXJjaC52aW9tbXVfbGlzdCk7DQorDQorICAgIGlmICggaXNfaGFyZHdh
cmVfZG9tYWluKGQpICkNCisgICAgew0KKyAgICAgICAgc3RydWN0IGhvc3RfaW9tbXUgKmh3X2lv
bW11Ow0KKw0KKyAgICAgICAgbGlzdF9mb3JfZWFjaF9lbnRyeShod19pb21tdSwgJmhvc3RfaW9t
bXVfbGlzdCwgZW50cnkpDQorICAgICAgICB7DQorICAgICAgICAgICAgcmV0ID0gdnNtbXV2M19p
bml0X3NpbmdsZShkLCBod19pb21tdS0+YWRkciwgaHdfaW9tbXUtPnNpemUpOw0KKyAgICAgICAg
ICAgIGlmICggcmV0ICkNCisgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsNCisgICAgICAgIH0N
CisgICAgfQ0KKyAgICBlbHNlDQorICAgIHsNCisgICAgICAgIHJldCA9IHZzbW11djNfaW5pdF9z
aW5nbGUoZCwgR1VFU1RfVlNNTVVWM19CQVNFLCBHVUVTVF9WU01NVVYzX1NJWkUpOw0KKyAgICAg
ICAgaWYgKCByZXQgKQ0KKyAgICAgICAgICAgIHJldHVybiByZXQ7DQorICAgIH0NCisNCisgICAg
cmV0dXJuIDA7DQorfQ0KKw0KK2ludCB2c21tdXYzX3JlbGlucXVpc2hfcmVzb3VyY2VzKHN0cnVj
dCBkb21haW4gKmQpDQorew0KKyAgICBzdHJ1Y3QgdmlydF9zbW11ICpwb3MsICp0ZW1wOw0KKw0K
KyAgICAvKiBDb3BlIHdpdGggdW5pdGlhbGl6ZWQgdklPTU1VICovDQorICAgIGlmICggbGlzdF9o
ZWFkX2lzX251bGwoJmQtPmFyY2gudmlvbW11X2xpc3QpICkNCisgICAgICAgIHJldHVybiAwOw0K
Kw0KKyAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocG9zLCB0ZW1wLCAmZC0+YXJjaC52aW9t
bXVfbGlzdCwgdmlvbW11X2xpc3QgKQ0KKyAgICB7DQorICAgICAgICBsaXN0X2RlbCgmcG9zLT52
aW9tbXVfbGlzdCk7DQorICAgICAgICB4ZnJlZShwb3MpOw0KKyAgICB9DQorDQorICAgIHJldHVy
biAwOw0KK30NCisNCitzdGF0aWMgY29uc3Qgc3RydWN0IHZpb21tdV9vcHMgdnNtbXV2M19vcHMg
PSB7DQorICAgIC5kb21haW5faW5pdCA9IGRvbWFpbl92c21tdXYzX2luaXQsDQorICAgIC5yZWxp
bnF1aXNoX3Jlc291cmNlcyA9IHZzbW11djNfcmVsaW5xdWlzaF9yZXNvdXJjZXMsDQorfTsNCisN
CitzdGF0aWMgY29uc3Qgc3RydWN0IHZpb21tdV9kZXNjIHZzbW11djNfZGVzYyA9IHsNCisgICAg
Lm9wcyA9ICZ2c21tdXYzX29wcywNCisgICAgLnZpb21tdV90eXBlID0gWEVOX0RPTUNUTF9DT05G
SUdfVklPTU1VX1NNTVVWMywNCit9Ow0KKw0KK3ZvaWQgX19pbml0IHZzbW11djNfc2V0X3R5cGUo
dm9pZCkNCit7DQorICAgIGNvbnN0IHN0cnVjdCB2aW9tbXVfZGVzYyAqZGVzYyA9ICZ2c21tdXYz
X2Rlc2M7DQorDQorICAgIGlmICggY3VyX3Zpb21tdSAmJiAoY3VyX3Zpb21tdSAhPSBkZXNjKSAp
DQorICAgIHsNCisgICAgICAgIHByaW50aygiV0FSTklORzogQ2Fubm90IHNldCB2SU9NTVUsIGFs
cmVhZHkgc2V0IHRvIGEgZGlmZmVyZW50IHZhbHVlXG4iKTsNCisgICAgICAgIHJldHVybjsNCisg
ICAgfQ0KKw0KKyAgICBjdXJfdmlvbW11ID0gZGVzYzsNCit9DQorDQorLyoNCisgKiBMb2NhbCB2
YXJpYWJsZXM6DQorICogbW9kZTogQw0KKyAqIGMtZmlsZS1zdHlsZTogIkJTRCINCisgKiBjLWJh
c2ljLW9mZnNldDogNA0KKyAqIGluZGVudC10YWJzLW1vZGU6IG5pbA0KKyAqIEVuZDoNCisgKi8N
CmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vdnNtbXUtdjMuaCBiL3hl
bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS92c21tdS12My5oDQpuZXcgZmlsZSBtb2RlIDEwMDY0
NA0KaW5kZXggMDAwMDAwMDAwMC4uZTExZjg1YjQzMQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIveGVu
L2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL3ZzbW11LXYzLmgNCkBAIC0wLDAgKzEsMjAgQEANCisv
KiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogKEdQTC0yLjAtb3ItbGF0ZXIgT1IgQlNELTItQ2xh
dXNlKSAqLw0KKyNpZm5kZWYgX19BUkNIX0FSTV9WU01NVV9WM19IX18NCisjZGVmaW5lIF9fQVJD
SF9BUk1fVlNNTVVfVjNfSF9fDQorDQorI2luY2x1ZGUgPGFzbS92aW9tbXUuaD4NCisNCisjaWZk
ZWYgQ09ORklHX1ZJUlRVQUxfQVJNX1NNTVVfVjMNCisNCit2b2lkIHZzbW11djNfc2V0X3R5cGUo
dm9pZCk7DQorDQorI2Vsc2UNCisNCitzdGF0aWMgaW5saW5lIHZvaWQgdnNtbXV2M19zZXRfdHlw
ZSh2b2lkKQ0KK3sNCisgICAgcmV0dXJuOw0KK30NCisNCisjZW5kaWYgLyogQ09ORklHX1ZJUlRV
QUxfQVJNX1NNTVVfVjMgKi8NCisNCisjZW5kaWYgLyogX19BUkNIX0FSTV9WU01NVV9WM19IX18g
Ki8NCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC1hcm0uaCBiL3hlbi9pbmNs
dWRlL3B1YmxpYy9hcmNoLWFybS5oDQppbmRleCAwYTE1NWZlNjE1Li5kNjIwMWRmMDZhIDEwMDY0
NA0KLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2FyY2gtYXJtLmgNCisrKyBiL3hlbi9pbmNsdWRl
L3B1YmxpYy9hcmNoLWFybS5oDQpAQCAtMzI3LDcgKzMyNyw4IEBAIERFRklORV9YRU5fR1VFU1Rf
SEFORExFKHZjcHVfZ3Vlc3RfY29udGV4dF90KTsNCiAjZGVmaW5lIFhFTl9ET01DVExfQ09ORklH
X1RFRV9PUFRFRSAgICAgMQ0KICNkZWZpbmUgWEVOX0RPTUNUTF9DT05GSUdfVEVFX0ZGQSAgICAg
ICAyDQogDQotI2RlZmluZSBYRU5fRE9NQ1RMX0NPTkZJR19WSU9NTVVfTk9ORSAgIDANCisjZGVm
aW5lIFhFTl9ET01DVExfQ09ORklHX1ZJT01NVV9OT05FICAgICAgIDANCisjZGVmaW5lIFhFTl9E
T01DVExfQ09ORklHX1ZJT01NVV9TTU1VVjMgICAgIDENCiANCiBzdHJ1Y3QgeGVuX2FyY2hfZG9t
YWluY29uZmlnIHsNCiAgICAgLyogSU4vT1VUICovDQpAQCAtNDUwLDYgKzQ1MSwxMCBAQCB0eXBl
ZGVmIHVpbnQ2NF90IHhlbl9jYWxsYmFja190Ow0KICNkZWZpbmUgR1VFU1RfR0lDVjNfR0lDUjBf
QkFTRSAgICAgeGVuX21rX3VsbG9uZygweDAzMDIwMDAwKSAvKiB2Q1BVMC4uMTI3ICovDQogI2Rl
ZmluZSBHVUVTVF9HSUNWM19HSUNSMF9TSVpFICAgICB4ZW5fbWtfdWxsb25nKDB4MDEwMDAwMDAp
DQogDQorLyogdnNtbXV2MyBJVFMgbWFwcGluZ3MgKi8NCisjZGVmaW5lIEdVRVNUX1ZTTU1VVjNf
QkFTRSAgICAgeGVuX21rX3VsbG9uZygweDA0MDQwMDAwKQ0KKyNkZWZpbmUgR1VFU1RfVlNNTVVW
M19TSVpFICAgICB4ZW5fbWtfdWxsb25nKDB4MDAwNDAwMDApDQorDQogLyoNCiAgKiAyNTYgTUIg
aXMgcmVzZXJ2ZWQgZm9yIFZQQ0kgY29uZmlndXJhdGlvbiBzcGFjZSBiYXNlZCBvbiBjYWxjdWxh
dGlvbg0KICAqIDI1NiBidXNlcyB4IDMyIGRldmljZXMgeCA4IGZ1bmN0aW9ucyB4IDQgS0IgPSAy
NTYgTUINCi0tIA0KMi40My4wDQo=


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 18:31:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 18:31:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073330.1436303 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk5Ox-0000jL-Sy; Thu, 07 Aug 2025 18:31:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073330.1436303; Thu, 07 Aug 2025 18:31: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 1uk5Ox-0000hz-LF; Thu, 07 Aug 2025 18:31:43 +0000
Received: by outflank-mailman (input) for mailman id 1073330;
 Thu, 07 Aug 2025 16:59:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5oaB=2T=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1uk3xV-00076W-Qz
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 16:59:17 +0000
Received: from AM0PR83CU005.outbound.protection.outlook.com
 (mail-westeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c201::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id da5fcbae-73af-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 18:59:16 +0200 (CEST)
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com (2603:10a6:102:ea::23)
 by AS8PR03MB7336.eurprd03.prod.outlook.com (2603:10a6:20b:2ec::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.16; Thu, 7 Aug
 2025 16:59:13 +0000
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f]) by PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f%6]) with mapi id 15.20.9009.013; Thu, 7 Aug 2025
 16:59: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>
X-Inumbo-ID: da5fcbae-73af-11f0-a324-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=vSsuP7Kb8wnc4OTDoozQ0EEvPH0YLgWx8LXPdgrbgE7OPUcvX5KkyU+/Y1j0acUkgvq9OOEQToiukQSPbMvUd0aQ+Y60pqryIjheC+G1InSptzSUIy29M4JXGo/SClLCL26LAsPIfvjg7OX223RauW/xuOMnJdrWGokosDedIOxFKy430/c7VbMOc5+1YfA30tZ/vJdARdk7Db33aC9aFi43cIGepprHr5fNnuiftC99riaDVSlDcTfgrrxAkoD5ITD6yfTghLR54YH7AKslKZ9q6TYHRBUpsxRNneViVec+58wiyWRxt23BfymwPU1N76zQJ7RbH+36HLIm3EVaSw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=HKB6igQTiBvBVZ+hzzVtYJ9jrTpGh6BG/26CnOmMYXo=;
 b=TbLChE4/gYiD5JdI20frrr7JZc0wMAyY3frR2nYun6ZBvcNq8NGS8zdW90h22xAKV90bfCShCp85XgMEUXResHl/vvRK9EUfUQjcfa1sEIMUHsqd8z3fSSa1nMFvsIsXHFLWpfjzmfUmK8/PLCIdKLRJa9NqFpHCuHnSBRZyKwGTSjNm8nOg9z6EAM3mu68oQLKAId9Gc93wuEh5b+uXs1OsOP0u06W+HJpzCxc5wQwsgbtlJnBFLJATqdwdZg2Xy1ketTRHmMCxj7UUaU0zwnQVG6wpdSbYnoRfe+UPHJS6iMlvN70dxD/9y33jW5qjdBAKuIgSa7G7AhTpS+Lh4Q==
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=HKB6igQTiBvBVZ+hzzVtYJ9jrTpGh6BG/26CnOmMYXo=;
 b=BQUVNO3QlAQ+FXnOyk31bKg30Xk+uWc+oKFaOzEz7QmZPvs/VjzJOZRf3R9843Vb2dbLcV00KYTZVFdPi2cp4z+OLjvQx901tMPb5i0xdE447DTLscpNGgJbXLYTQ2KFHb27aGacQ1ht4Xuns7QFLiiCjidENXoRPAL8lHILdP0SO84xg42nRJJGGst11IRbHto8shUzubgl88gQZT39KajaUP0tclNmU32IT/aObovUGqRxEbCU/PqIfbbk2Ie8fQT76f8zNP0xGqHZERDMOp0ppK26w3vIpCSisA7N8iqS0UcTu68kV/FyNDHnxo5HcjemLnMhb1YJszGV4HengQ==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Milan Djokic <milan_djokic@epam.com>
Subject: [PATCH 02/20] xen/arm: smmuv3: Add support for stage-1 and nested
 stage translation
Thread-Topic: [PATCH 02/20] xen/arm: smmuv3: Add support for stage-1 and
 nested stage translation
Thread-Index: AQHcB7ya52I2vrwap0uCF6HUjZseiA==
Date: Thu, 7 Aug 2025 16:59:13 +0000
Message-ID:
 <8989630dd0c2b88e045a5af6fe11bb3aeb76e5b5.1754580687.git.milan_djokic@epam.com>
References: <cover.1754580687.git.milan_djokic@epam.com>
In-Reply-To: <cover.1754580687.git.milan_djokic@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: PA4PR03MB7136:EE_|AS8PR03MB7336:EE_
x-ms-office365-filtering-correlation-id: f60fd54e-12bd-4134-c1f5-08ddd5d3bcb1
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?UVP1aFdKspMvtDimbjLwiTP8xsmwYU03pVA7RHV90Mp9oVM9gcIDIl6zad?=
 =?iso-8859-1?Q?VjnmPLp8rBxdZa8V4xIElpo6gQK4FxfDRWBWRZR+MfssQfrKfp4NfA2jzH?=
 =?iso-8859-1?Q?xl4O5kUbJ71U61lYt2AG+046JaBSFRm3fzGSMO/ELwvi57RKmO8rfoKf7P?=
 =?iso-8859-1?Q?xB0u+r9FemA+pV1OO3zX4kV7nhmd/TlBukRe157F7SRkmQzKCL5D2Owqpy?=
 =?iso-8859-1?Q?8EiA06V1ON/ruIAU4U/EpFffh8p84hflgfmlDi3FF8nptBld+F/nbZltur?=
 =?iso-8859-1?Q?LfCmZpiV5Dk7dhE4rFtS01urifsAvw+kviLXW+Gxe+lCDZUDYczthKS+rY?=
 =?iso-8859-1?Q?V6sQGwr7/rWRQrci9a5yhuZicMFIeOAVQg5kUPJtd9oFSN+Nq4Ch0b+TMh?=
 =?iso-8859-1?Q?03RfAaylv5gZuhSO5qtyFj9VJbBfwR5mA/gl78ruKNZETadiFlNKyqEr50?=
 =?iso-8859-1?Q?/R6O40GoJ3aM7f/FNvXaLGwDX9pj8YrXibbQCBfDHjQjfb5W7XtelsvqqH?=
 =?iso-8859-1?Q?l1ZwYtghqZtxx4CBuIVm/DkVH3uuJse1gmufKolDNhzzblP0xsUFzD/Zuv?=
 =?iso-8859-1?Q?wVZncvrWAVbge0hEPt4k4C32siCcRswum1WXzoPLmpSgltgKTbV3b2FfNU?=
 =?iso-8859-1?Q?A0mZffv7B0W0ZfPegloBjYfDV5+8d/JmZjou0ad0qC31m+PNdVI5ooFTKp?=
 =?iso-8859-1?Q?QLWF1HysFPFA7jB/j2Xdy9ZaN9U8va/gBGtg2kv3kZUz97u9uMn1iSpAcC?=
 =?iso-8859-1?Q?2PZGjUjaaBd1BH5NXqQ0oQ5HlC5K27we7HQX6OpzcWfxV/bO80em7u2LEg?=
 =?iso-8859-1?Q?68+MmGjWATtUf8mVj7IHYO6z6Ijn9SutPGCNvgVLj6AlcnYykUstoEiJqe?=
 =?iso-8859-1?Q?yy2ErcgQ10WBgFEGQzBMrAoKnF9bqpZqjMv7hjkQs3qZdMariER6tUmWbD?=
 =?iso-8859-1?Q?dz7Qo/onEIogABfP1pF0ndGilzz2CioRz7qYErPA+GItsQk/xZPphlAf9B?=
 =?iso-8859-1?Q?0WkLFPnCXBgDkQVQ4A/JAB5G8M4+OAK0O6STNe0nPpCUmSqzUfyHqeY3TP?=
 =?iso-8859-1?Q?hfnqaEpinGJvU6r0pnThy9k4cU/PwY0x5n1dhS5Y0itkg9l4h6KibmhrDM?=
 =?iso-8859-1?Q?04819gIMWvNesnhyxxwWgfQJ6Zd2hEY9dtb8qfXO4n39QcQ3L91tF2vSIa?=
 =?iso-8859-1?Q?gHVVdjOBxSdNQOw5jDOCrXP4hWtRPa5pdR0HUrGqLiuKBw/436obX/MHRE?=
 =?iso-8859-1?Q?WKyZv4GK+dFlH14O7vaOGfN/htdtZnUCLOw/v+KLPNIS9Td30h0nEFASfa?=
 =?iso-8859-1?Q?IXV/7uIKYUska5jFsK/t6J0GxflSu0U6b81+dv5izgMZCtr8pv+tg6BueM?=
 =?iso-8859-1?Q?moFvRdL7MbZlYY0HMwXOc0oAlymlW/UjYGN1wSsmfRHOhUJ5mqK5PXVcHg?=
 =?iso-8859-1?Q?Ms/8ljmbQ3N6FFugmDzkGNiH+f5t/S5gcSpBmVyT3/x4XRazeoJW1S/Sq/?=
 =?iso-8859-1?Q?l9jka3pJXLBPCD4qBZxQBxbH6qKKXF3Wohhxz6N77WrA=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR03MB7136.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?ADgXfQjLrefROdtgAYCbgT9cYifrnBdLbQcZ4+vluWApVUTxwRHdwhQMuo?=
 =?iso-8859-1?Q?1rHvqRpEeTgjlDL5yQdKOjLPeD9IXEj0CcYSRK61dciKM0WaZ1epLJCKNV?=
 =?iso-8859-1?Q?KamBsm5bqFmY8QbjaRDF2RHfE164WSGT/mLeNYsN9YZYYzeG7WXwA5VISU?=
 =?iso-8859-1?Q?Cc32qL/Zfu2GgwUgzvOaIqqmj6YW7LusqvDhWdtoFKBM8sLGrxxK3qRNZu?=
 =?iso-8859-1?Q?lLJxq9dTdBY51Fy0Ez/bTMH6TB3xc4y15ZRed0+E4/q/IBxELlMPmiA/Pd?=
 =?iso-8859-1?Q?ABrhFJ+YF6oRs3Kdw0m9bqm8ATrBQk2PgO42EKcyv6OgL6XCwoFtKY+uZr?=
 =?iso-8859-1?Q?EipjP3jXBmzgvSnJASszMYaGFQciwuApiwd18ry5txI2u+sz9UOKUJ703D?=
 =?iso-8859-1?Q?Et8KcZEm/XCW6gCF7zvpMZHrTgergXeSHiSqHVrWa95guty/n9waa3sBLH?=
 =?iso-8859-1?Q?YTEtp1gpHQ1ULgMnbYbWxbOUJebLCPvXZ4+3v2+YT3FvbY7cXRO+H6lkmU?=
 =?iso-8859-1?Q?9RXoWzRnunioLz+eifv88YWFTcoiN4PFW0alyQUScXBZzUnRPj6Z/QzVxp?=
 =?iso-8859-1?Q?aSw5hBdh9AvIlE7I3hd7ZxsIcBioPrNMYORfj7+6FX9onUlvilfjIrox3C?=
 =?iso-8859-1?Q?3s/OXgro1Ov3AgMKiVijALoKrFiNjfsn89+mFE1jpMpufm4BWpBVo26b2B?=
 =?iso-8859-1?Q?vAwkYDTNIV6BCcRTCdxMOAyMiYpnTEfJ63o1jUXK3Ajo8bIKgkQaLj7LZC?=
 =?iso-8859-1?Q?6s4ai3izyYpHnNN7f48htZLCcHiGwAqgi4aBRqCYxP/R1NXFHHWq3god+2?=
 =?iso-8859-1?Q?EiLPwSz6I37MQAMMjyEHx59iqLR0YyFEgeF9EcMPpacR3D68GnQirEa6GE?=
 =?iso-8859-1?Q?JNoHzDiC5HwnJqVyzAIpHMu72/Bl5quPrrC/8kOZ0XiTe0Z25v93xzzYOC?=
 =?iso-8859-1?Q?ALrDA4+7WLfkAM50y+vM8Nsg+vZ1XmQUIjgbJn9WikCnd3oOpAa/fm3soW?=
 =?iso-8859-1?Q?sTFgfJ/SUn/Keps8v8CGIcGyWze9s4MpiR5GOdxem33u+7gh8pos8kDAA9?=
 =?iso-8859-1?Q?hurFo59altcKTyx+5haac1ut91yCR5qJGhZ8IVH3POAIHMZSJPq6kFtwDg?=
 =?iso-8859-1?Q?hWyDIDs+Io4U3VrREaK0snESekmPRCQkkhVri70d9J4qWt7EaJ7ekib921?=
 =?iso-8859-1?Q?Q1WQ3blL5RijBF7k63lePnNa1AvKUaZrGIY4CN0DW3L7O23GjkzJT8stQz?=
 =?iso-8859-1?Q?KAZELAI1hDIC5baLRRVwtGKZwEFMN70K7PaGrLmYBeWqsXb1SKRW98fx5X?=
 =?iso-8859-1?Q?YNL25SArSgoGy1loDGCexrUhp7lXHdSoRZqaZ685fjWHK+GpBMPzhoREsm?=
 =?iso-8859-1?Q?W4TsggxPLcmGtdOYiNNyXoEQa6r/vF1MabdQkxAnbgxp7xh6gLgFZ8SJ8C?=
 =?iso-8859-1?Q?jZtXfRHyXYHqomCYM6z7gD/kc9ijxjX4EF2zrhdXi6FMshakfHrRnU34Tx?=
 =?iso-8859-1?Q?QgGEITMlsBDKNa3/fdY5cXAjRjAd1dhPZG36E6JP/8HoVdiTCNdsdKaVj6?=
 =?iso-8859-1?Q?r00UQvugEbDlygNRckPFuSd/QOm7VqxELZghdRXRJW1DtOpaEI2Q13v5QM?=
 =?iso-8859-1?Q?QyaKcgv9J9zbdmWrN5zpZYNF9+ImSqmeTK?=
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: PA4PR03MB7136.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f60fd54e-12bd-4134-c1f5-08ddd5d3bcb1
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Aug 2025 16:59:13.6435
 (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: pcvE8iWNxNKyrqDah8COG4Q4hA+0Er5BibYNOXpAdfr9+Ns2qCQsAWIMK89YhnaZ8f+x/aC9ZxoT91t9LRhevQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7336

From: Rahul Singh <rahul.singh@arm.com>

Xen SMMUv3 driver only supports stage-2 translation. Add support for
Stage-1 translation that is required to support nested stage
translation.

In true nested mode, both s1_cfg and s2_cfg will coexist.
Let's remove the union. When nested stage translation is setup, both
s1_cfg and s2_cfg are valid.

We introduce a new smmu_domain abort field that will be set
upon guest stage-1 configuration passing. If no guest stage-1
config has been attached, it is ignored when writing the STE.

arm_smmu_write_strtab_ent() is modified to write both stage
fields in the STE and deal with the abort field.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/drivers/passthrough/arm/smmu-v3.c | 93 +++++++++++++++++++++++----
 xen/drivers/passthrough/arm/smmu-v3.h |  9 +++
 2 files changed, 91 insertions(+), 11 deletions(-)

diff --git a/xen/drivers/passthrough/arm/smmu-v3.c b/xen/drivers/passthroug=
h/arm/smmu-v3.c
index 307057ad8a..5c96e8ec7c 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.c
+++ b/xen/drivers/passthrough/arm/smmu-v3.c
@@ -667,8 +667,10 @@ static void arm_smmu_write_strtab_ent(struct arm_smmu_=
master *master, u32 sid,
 	 * 3. Update Config, sync
 	 */
 	u64 val =3D le64_to_cpu(dst[0]);
-	bool ste_live =3D false;
+	bool s1_live =3D false, s2_live =3D false, ste_live =3D false;
+	bool abort, translate =3D false;
 	struct arm_smmu_device *smmu =3D NULL;
+	struct arm_smmu_s1_cfg *s1_cfg =3D NULL;
 	struct arm_smmu_s2_cfg *s2_cfg =3D NULL;
 	struct arm_smmu_domain *smmu_domain =3D NULL;
 	struct arm_smmu_cmdq_ent prefetch_cmd =3D {
@@ -683,30 +685,54 @@ static void arm_smmu_write_strtab_ent(struct arm_smmu=
_master *master, u32 sid,
 		smmu =3D master->smmu;
 	}
=20
-	if (smmu_domain)
-		s2_cfg =3D &smmu_domain->s2_cfg;
+	if (smmu_domain) {
+		switch (smmu_domain->stage) {
+		case ARM_SMMU_DOMAIN_NESTED:
+			s1_cfg =3D &smmu_domain->s1_cfg;
+			fallthrough;
+		case ARM_SMMU_DOMAIN_S2:
+			s2_cfg =3D &smmu_domain->s2_cfg;
+			break;
+		default:
+			break;
+		}
+		translate =3D !!s1_cfg || !!s2_cfg;
+	}
=20
 	if (val & STRTAB_STE_0_V) {
 		switch (FIELD_GET(STRTAB_STE_0_CFG, val)) {
 		case STRTAB_STE_0_CFG_BYPASS:
 			break;
+		case STRTAB_STE_0_CFG_S1_TRANS:
+			s1_live =3D true;
+			break;
 		case STRTAB_STE_0_CFG_S2_TRANS:
-			ste_live =3D true;
+			s2_live =3D true;
+			break;
+		case STRTAB_STE_0_CFG_NESTED:
+			s1_live =3D true;
+			s2_live =3D true;
 			break;
 		case STRTAB_STE_0_CFG_ABORT:
-			BUG_ON(!disable_bypass);
 			break;
 		default:
 			BUG(); /* STE corruption */
 		}
 	}
=20
+	ste_live =3D s1_live || s2_live;
+
 	/* Nuke the existing STE_0 value, as we're going to rewrite it */
 	val =3D STRTAB_STE_0_V;
=20
 	/* Bypass/fault */
-	if (!smmu_domain || !(s2_cfg)) {
-		if (!smmu_domain && disable_bypass)
+	if (!smmu_domain)
+		abort =3D disable_bypass;
+	else
+		abort =3D smmu_domain->abort;
+
+	if (abort || !translate) {
+		if (abort)
 			val |=3D FIELD_PREP(STRTAB_STE_0_CFG, STRTAB_STE_0_CFG_ABORT);
 		else
 			val |=3D FIELD_PREP(STRTAB_STE_0_CFG, STRTAB_STE_0_CFG_BYPASS);
@@ -724,7 +750,33 @@ static void arm_smmu_write_strtab_ent(struct arm_smmu_=
master *master, u32 sid,
 		return;
 	}
=20
+	if (ste_live) {
+		/* First invalidate the live STE */
+		dst[0] =3D cpu_to_le64(STRTAB_STE_0_CFG_ABORT);
+		arm_smmu_sync_ste_for_sid(smmu, sid);
+	}
+
+	if (s1_cfg) {
+		BUG_ON(s1_live);
+		dst[1] =3D cpu_to_le64(
+			 FIELD_PREP(STRTAB_STE_1_S1DSS, STRTAB_STE_1_S1DSS_SSID0) |
+			 FIELD_PREP(STRTAB_STE_1_S1CIR, STRTAB_STE_1_S1C_CACHE_WBRA) |
+			 FIELD_PREP(STRTAB_STE_1_S1COR, STRTAB_STE_1_S1C_CACHE_WBRA) |
+			 FIELD_PREP(STRTAB_STE_1_S1CSH, ARM_SMMU_SH_ISH) |
+			 FIELD_PREP(STRTAB_STE_1_STRW, STRTAB_STE_1_STRW_NSEL1));
+
+		if (smmu->features & ARM_SMMU_FEAT_STALLS &&
+		   !(smmu->features & ARM_SMMU_FEAT_STALL_FORCE))
+			dst[1] |=3D cpu_to_le64(STRTAB_STE_1_S1STALLD);
+
+		val |=3D (s1_cfg->s1ctxptr & STRTAB_STE_0_S1CTXPTR_MASK) |
+			FIELD_PREP(STRTAB_STE_0_CFG, STRTAB_STE_0_CFG_S1_TRANS) |
+			FIELD_PREP(STRTAB_STE_0_S1CDMAX, s1_cfg->s1cdmax) |
+			FIELD_PREP(STRTAB_STE_0_S1FMT, s1_cfg->s1fmt);
+	}
+
 	if (s2_cfg) {
+		u64 vttbr =3D s2_cfg->vttbr & STRTAB_STE_3_S2TTB_MASK;
 		u64 strtab =3D
 			 FIELD_PREP(STRTAB_STE_2_S2VMID, s2_cfg->vmid) |
 			 FIELD_PREP(STRTAB_STE_2_VTCR, s2_cfg->vtcr) |
@@ -734,12 +786,19 @@ static void arm_smmu_write_strtab_ent(struct arm_smmu=
_master *master, u32 sid,
 			 STRTAB_STE_2_S2PTW | STRTAB_STE_2_S2AA64 |
 			 STRTAB_STE_2_S2R;
=20
-		BUG_ON(ste_live);
+		if (s2_live) {
+			u64 s2ttb =3D le64_to_cpu(dst[3]) & STRTAB_STE_3_S2TTB_MASK;
+			BUG_ON(s2ttb !=3D vttbr);
+		}
+
 		dst[2] =3D cpu_to_le64(strtab);
=20
-		dst[3] =3D cpu_to_le64(s2_cfg->vttbr & STRTAB_STE_3_S2TTB_MASK);
+		dst[3] =3D cpu_to_le64(vttbr);
=20
 		val |=3D FIELD_PREP(STRTAB_STE_0_CFG, STRTAB_STE_0_CFG_S2_TRANS);
+	} else {
+		dst[2] =3D 0;
+		dst[3] =3D 0;
 	}
=20
 	if (master->ats_enabled)
@@ -1238,6 +1297,15 @@ static int arm_smmu_domain_finalise(struct iommu_dom=
ain *domain,
 {
 	int ret;
 	struct arm_smmu_domain *smmu_domain =3D to_smmu_domain(domain);
+	struct arm_smmu_device *smmu =3D smmu_domain->smmu;
+
+	if (smmu_domain->stage =3D=3D ARM_SMMU_DOMAIN_NESTED &&
+		(!(smmu->features & ARM_SMMU_FEAT_TRANS_S1) ||
+		 !(smmu->features & ARM_SMMU_FEAT_TRANS_S2))) {
+			dev_info(smmu_domain->smmu->dev,
+					"does not implement two stages\n");
+			return -EINVAL;
+	}
=20
 	/* Restrict the stage to what we can actually support */
 	smmu_domain->stage =3D ARM_SMMU_DOMAIN_S2;
@@ -2334,11 +2402,14 @@ static int arm_smmu_device_hw_probe(struct arm_smmu=
_device *smmu)
 		break;
 	}
=20
+	if (reg & IDR0_S1P)
+		smmu->features |=3D ARM_SMMU_FEAT_TRANS_S1;
+
 	if (reg & IDR0_S2P)
 		smmu->features |=3D ARM_SMMU_FEAT_TRANS_S2;
=20
-	if (!(reg & IDR0_S2P)) {
-		dev_err(smmu->dev, "no stage-2 translation support!\n");
+	if (!(reg & (IDR0_S1P | IDR0_S2P))) {
+		dev_err(smmu->dev, "no translation support!\n");
 		return -ENXIO;
 	}
=20
diff --git a/xen/drivers/passthrough/arm/smmu-v3.h b/xen/drivers/passthroug=
h/arm/smmu-v3.h
index fe651ca5a7..3411edc47f 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.h
+++ b/xen/drivers/passthrough/arm/smmu-v3.h
@@ -197,6 +197,7 @@
 #define STRTAB_STE_0_CFG_BYPASS		4
 #define STRTAB_STE_0_CFG_S1_TRANS	5
 #define STRTAB_STE_0_CFG_S2_TRANS	6
+#define STRTAB_STE_0_CFG_NESTED		7
=20
 #define STRTAB_STE_0_S1FMT		GENMASK_ULL(5, 4)
 #define STRTAB_STE_0_S1FMT_LINEAR	0
@@ -546,6 +547,12 @@ struct arm_smmu_strtab_l1_desc {
 	dma_addr_t			l2ptr_dma;
 };
=20
+struct arm_smmu_s1_cfg {
+	u64				s1ctxptr;
+	u8				s1fmt;
+	u8				s1cdmax;
+};
+
 struct arm_smmu_s2_cfg {
 	u16				vmid;
 	u64				vttbr;
@@ -666,7 +673,9 @@ struct arm_smmu_domain {
 	atomic_t			nr_ats_masters;
=20
 	enum arm_smmu_domain_stage	stage;
+	struct arm_smmu_s1_cfg	s1_cfg;
 	struct arm_smmu_s2_cfg	s2_cfg;
+	bool			abort;
=20
 	/* Xen domain associated with this SMMU domain */
 	struct domain		*d;
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 18:31:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 18:31:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073348.1436378 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk5P2-0002D5-GJ; Thu, 07 Aug 2025 18:31:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073348.1436378; Thu, 07 Aug 2025 18:31: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 1uk5P2-00028W-2F; Thu, 07 Aug 2025 18:31:48 +0000
Received: by outflank-mailman (input) for mailman id 1073348;
 Thu, 07 Aug 2025 16:59:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5oaB=2T=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1uk3xl-000773-3q
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 16:59:33 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e314394a-73af-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 18:59:31 +0200 (CEST)
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com (2603:10a6:102:ea::23)
 by AS8PR03MB7336.eurprd03.prod.outlook.com (2603:10a6:20b:2ec::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.16; Thu, 7 Aug
 2025 16:59:26 +0000
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f]) by PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f%6]) with mapi id 15.20.9009.013; Thu, 7 Aug 2025
 16:59:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e314394a-73af-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=C4tYEYPxtx/fZPdXSMimyN5V0vlsMpgzYOAFPRmqKWCm0+Q1Z8TGw8u2a1QWGGLvMkQyAZ+OORje9TISg/Z+7tJHsxIyturjRxBfb39gN7xObRylTUtnyR2XAgEmISR3YTKvtuLOBx4zAtrScibqBtDeE2Dd9KYqL/yjpuplLzR9ALhvKopQPQufHfV0dOSsg5LFzg12h3uXmv6yHpGkMymifdJeiL8fYqP6nlod2yDpFKH80QFaqaouX7cQ6FnTivia3565SJPQlG7UvyRqv2NenULO94vV+VgIrs1mVfViDjmRUBSqsramhNRbGN7J4UNvvZ2xvDJK8gUc7pqQ2g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=KEniSrR57nVltdVydlhahhmJzE8muwus3yOrLndbPSk=;
 b=LXmHZb+EuI22YeJzJB/JXW1YvLapkgOzfsjkUJdY0fJ91K684dxmxXEZudD+zSY2F5veJ3Yf1VFf2WbWwHWtV/YlO90GihThSGa+oOJC1jbjsfNCFIavqhYIIYyHJvefH6PLqhRmfB7n35i5rWVpj9ILeO3HmfBclu0CHkcL3ZGTTtDZgj0jmEpwa3wsXHbb3ZA5kHTg/UDpumomzItoqbG3zdmmAADcOerOU6ZmaiRsk1r10xkFyu683oTy9k+vZ85nvL3+IZCxaMQHwnXXqPKppQa62stWkgPB6MqxuegktjnJC0QAeZTeST7NWonx1rYVxviGyJaZu3/gTGZx/Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=KEniSrR57nVltdVydlhahhmJzE8muwus3yOrLndbPSk=;
 b=pwXeznodns5JI/uPeh0dNuTdj5aq+MHZNeiffpaXT+kdlB/YiWQff+w50WgWyL61vwNR51Bi5ALGGcEf578/GgLlmefpy8XFrY0cXegYkbxWdlv4auTrIC+Tod906prLwijkbrH0xyEPy4BzgGVPKbT0JUj1jhkYohwlS1hnCU9Ao9T+oKn9xGtylXjuC8Ar5tkO0lqgFdLanjpJKPcXdiUOypdsbRnTEfHnU8th7Ig5naKcaqXkEC+B4yKLKNI+6Y3CV2tzOm2M9wjl7SA+72qwBEMJQcbMlRSYOf/S1SerJk8Ojm11I05hVsMcopEuhAkrIRqrBhbjDy+MQ2wlQQ==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Jan Beulich <jbeulich@suse.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Milan Djokic
	<milan_djokic@epam.com>
Subject: [PATCH 11/20] xen/arm: vsmmuv3: Attach Stage-1 configuration to
 SMMUv3 hardware
Thread-Topic: [PATCH 11/20] xen/arm: vsmmuv3: Attach Stage-1 configuration to
 SMMUv3 hardware
Thread-Index: AQHcB7yha1klxs18OESsoLM4R9ywNQ==
Date: Thu, 7 Aug 2025 16:59:26 +0000
Message-ID:
 <f90c81d800e040db7574906fdf2ee4d57e30f2e6.1754580688.git.milan_djokic@epam.com>
References: <cover.1754580687.git.milan_djokic@epam.com>
In-Reply-To: <cover.1754580687.git.milan_djokic@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: PA4PR03MB7136:EE_|AS8PR03MB7336:EE_
x-ms-office365-filtering-correlation-id: fc830f38-dc7f-48a2-56e0-08ddd5d3c42b
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?ancMAoT834YTNMxj9FQ2SRD9bCUlncsGFB/XjbJWIjboiRiGphuhywj8yo?=
 =?iso-8859-1?Q?EefAsg0Q923rzZJChspyLlYH4t+TR61278RJ/oTx6hgF74dLXp7sUZNLiX?=
 =?iso-8859-1?Q?8cSsIL7pKOOQ0Ppghy6o9WOdoVLvVN6jy2NezpEBc/ZGfYJvfckmqtUI+i?=
 =?iso-8859-1?Q?Qm6z+fNGnBe91rx4m6HHlROsLs3yXuo9kZ5q5hd2bj3eI+tQoE1o+uWWPj?=
 =?iso-8859-1?Q?41uf1aMcE7NCDIvgcRjcwxiidbkmsboIe6SoPm5dsLZnXoHVePe3d7XF54?=
 =?iso-8859-1?Q?1XWba6hKBhOSEoD/2eq6XEb9vs6/Jdt1cWK5JfdmAkS4QxU9lv7J2BK71p?=
 =?iso-8859-1?Q?Ejxz1vtTiGQbNoJpl6IBGOWnvg3XQ7qDa+cPZiF8IDwrwilenUk1O/n2W8?=
 =?iso-8859-1?Q?7q1fMHXNsXaJwhnwKZt3+GEgKLU+bE0H1Pz2Uf0ZIa/vHnh3uGyRFQ5P4+?=
 =?iso-8859-1?Q?AdGooG/NBJ7NnyUJnb7gs9HKq/kK6CliRuDNVty8unrmCz7mH75JcIt8AX?=
 =?iso-8859-1?Q?mbTgwBAa/wUPzc46B5oy0qLqUnPQ4Nftr5ro6Gfk6Q4IwqKZb8Xjd67OLA?=
 =?iso-8859-1?Q?VPSgEGnUpuxQ759znjqgPQAHdC7WM+yqLjkI0GaL0Isp1JSRWUkWh0VnPK?=
 =?iso-8859-1?Q?J169VqeT6g7n0lwWOxPdcEp/Lt0ONxYTt6o42O6VqoONX7SR2gTiXn6MD/?=
 =?iso-8859-1?Q?1xwhbhadloW+Tef0246E4kF9YzzSs/aoeepbzZnBV614XdMCSx+KW7VjpW?=
 =?iso-8859-1?Q?VCE+CQ9WRrDOOxI0C8x32sNdYXb4lhry5quGg2R9mDsBRe0MjSPu+2g0Sl?=
 =?iso-8859-1?Q?04sS4WTB6UWQilQmvKERgrsi6ujVDy2LkJ5HkFHAKbULbhx5lsVIBdG3Cy?=
 =?iso-8859-1?Q?HtccGzC2XLsE8sTqyU3UQyNNvJMyz+p8W1YVC3YhcYgYwXgl1IqV95Xzme?=
 =?iso-8859-1?Q?Qnoa2/rTs5TYEdSzGcpdGOIdKWsDJ3iisSQ66d/AjNjOxC9d9UG8pXOZbT?=
 =?iso-8859-1?Q?n0ChN1QxC/CSUwCvvNfe+YZdwQ5JDGVtXG6vvW8YyH1+AMlBA6YIcP9tO0?=
 =?iso-8859-1?Q?dvfCZIvroNI9XoIZ1nEtSBdfoR72+If2GMu+P8O5P+bq8qs9FxJT8eKEmO?=
 =?iso-8859-1?Q?/270hx94It/yFw9LrpP2fhM0u0tDFNhtejHxOMwRpAhRtTDNMefel1KF3a?=
 =?iso-8859-1?Q?QCAv6m3LjtJbytPmc33SqdfYc6+3HmCnU+eCfS1MWsCSA6w518V+hqS4Nj?=
 =?iso-8859-1?Q?x50ylOFOQefkJaEjFd6w805cLbX/xX+2SMzb9H5C22UpTXBYax9a4qwZFS?=
 =?iso-8859-1?Q?/RfbUvm6NtSrrqj3aHFk2W3VQ9L+8xIyxFh+FY/XMozp9w31VgB8bb7hw/?=
 =?iso-8859-1?Q?9asvlp2opu9f78qMhjbSc54qgl1C+i68nKsx9UkAcbKGImxDuvx8R7T09g?=
 =?iso-8859-1?Q?X4AS+EY1XrTEX0zemUiG2ha3g80XAg57947B0QpdqbFNQRhL4tkS7reAHl?=
 =?iso-8859-1?Q?JWVZgVWbXOoV1Gw8RpieeTBqk2s3ExkRDFYpMbAeXLPg=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR03MB7136.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?PdGhDwHVSTbTdywmDD77KACEMujCPRVnmB79XzTKfMKXSicIqgOf193QiA?=
 =?iso-8859-1?Q?EiNsPU6kMGTwujRFZBFgWZ/XrF6gMK/63WbyKp8i2IQNkZ3olTxDh4xS2w?=
 =?iso-8859-1?Q?DniZgaH1HFO7iYrRRKWfEoELHfBZeeNmn6s7hGebGWCQeHs3Uf4f9O3ut9?=
 =?iso-8859-1?Q?qskGXXbAf7kg9/zy5PbjcXNSZKFCumwwNuggG1p1JY3ysQXxFYFlnmgJ1k?=
 =?iso-8859-1?Q?3ZTCo+RMSD5GYHWkW7aetOEpT8Fe7OdtKfILfCpSDK1+s4PwsDuboGgkrg?=
 =?iso-8859-1?Q?OOzjLFloGs1IN3p/Qb++58k8/bwr7FeTv167Tt8B5KHR4FXk/p+T48FLYe?=
 =?iso-8859-1?Q?FE1r6LqKMyP3pMzB1Uhd0jz1nDWZqtDBnRYjKR3MMrSsdsLGnC/cMB1wHL?=
 =?iso-8859-1?Q?q1c7Vs7BJBj3Jp8gcV6JOcrLDgFGFRb/jl5FmojdTQbJbnw/UkxMVFOVmm?=
 =?iso-8859-1?Q?38xt69bCVZzs8rrHvjK5H5kfK2jvAgHnWcABL6kC5/NVP+ZQCwcGtAEKoQ?=
 =?iso-8859-1?Q?L4hSw5Bt5PVMUBa3PgnV9wtu1LhKshQHMyb13AQ1sPFbHiZCDalydZHMgC?=
 =?iso-8859-1?Q?4Jt3SYQFbJeLc0nKvXbm/r/uaGt+23vjsxTGmV9ZtCFJPWWFgdcRBAy8nK?=
 =?iso-8859-1?Q?g/T8imvr7oBivF2vFkTyUabun9qlLgzYAcQYqC6L+wYMWaMv72zG5H738g?=
 =?iso-8859-1?Q?A00KdUN8EG3CMGoKoDVJpvyQMHiCA77xuHUOsIj5ajJWCgzcQM80nOZgw5?=
 =?iso-8859-1?Q?t9ZoaGwxXKVEEC/9lQz2pBLyijNelHLEYNovvqWcl57CXWlXdWzZMoMmnH?=
 =?iso-8859-1?Q?Y2RC1Zom6tojZSnEGOryccgplj570PlaVa/m8gaE50qYqWuuS1lEPTxPsK?=
 =?iso-8859-1?Q?NdDlcJR6zk4HCfCJedpwLlyqcjPhhsNPI6c7crkHRmmScLexsvOG7QgtOq?=
 =?iso-8859-1?Q?6v0ATaLOKDa1VecgurMO4ZBEWf9KZAvCJ6geQ2FfBIG9YiVsFum8/ql1Cy?=
 =?iso-8859-1?Q?oxYhjmvR1k6ymArh4vmMhts3Qop/UiorZUgfTaZ2ykR3xdqM0cu4h8dDUb?=
 =?iso-8859-1?Q?5IXgj6UZ9X6pxBtBDhwCF0+Ag7B0Kk9ChnyExTJd4j9hSZXo9MwGY4IpDM?=
 =?iso-8859-1?Q?hm8kTvwahna8Nyo8AwmDXf+duZWLE3xc83zZCkAidjqGgFUFa/tDfazbp+?=
 =?iso-8859-1?Q?EmY0jbd2NBeMh5OTYgGsyg4mdUuIbBU4qgVtTwblcle9vt2dllRh552tTa?=
 =?iso-8859-1?Q?zt6Vgnu72yM+ZY1gl4nKWpyS08mOMBIgRdWo+DoYxQNUXxKrGn9MdCLSK5?=
 =?iso-8859-1?Q?okbFZuuxQb78z482KdkQ0jpFKkvUKc74RzzSffohQpH051LJwffxUHgryJ?=
 =?iso-8859-1?Q?9zfX952sKnf5DymDxCZY5KQd6gSIzl5kPZeM4WHwn/vHrjrd9fNnvhfv/v?=
 =?iso-8859-1?Q?5Hng4ENaKdwosleHduO7MipqbIcKgpveCxLokmpjSH0D1RUw1jdFbdZXRY?=
 =?iso-8859-1?Q?Oo8RkBPZc73kd/ywnJ9NFs89oUYGRoyvYY6tr+8A7Mlg04CWQrK0frVszT?=
 =?iso-8859-1?Q?rr70HjXL1DF4TZlgUM2SjmlO+GKCMOGyjNLaTwDTd+oPGmmBLusQ2kSrKg?=
 =?iso-8859-1?Q?nQop0r+nZ4jEov42HhgfXJkV0tNWTIvPBkiuqneA6r8zfpACpHuP1ADQ?=
 =?iso-8859-1?Q?=3D=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: PA4PR03MB7136.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fc830f38-dc7f-48a2-56e0-08ddd5d3c42b
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Aug 2025 16:59:26.2087
 (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: he4hEiepS5BgPBKkBCSnrQJzFrzMdzqX6gXiMURZ2JCZJs07ATbu0mMCkIPXZuIo52m3XgK11YTcqIVxf4Jluw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7336

From: Rahul Singh <rahul.singh@arm.com>

Attach the Stage-1 configuration to device STE to support nested
translation for the guests.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/drivers/passthrough/arm/smmu-v3.c  | 79 ++++++++++++++++++++++++++
 xen/drivers/passthrough/arm/smmu-v3.h  |  1 +
 xen/drivers/passthrough/arm/vsmmu-v3.c | 18 ++++++
 xen/include/xen/iommu.h                | 14 +++++
 4 files changed, 112 insertions(+)

diff --git a/xen/drivers/passthrough/arm/smmu-v3.c b/xen/drivers/passthroug=
h/arm/smmu-v3.c
index 193c892fcd..91bf72d420 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.c
+++ b/xen/drivers/passthrough/arm/smmu-v3.c
@@ -2791,6 +2791,37 @@ static struct arm_smmu_device *arm_smmu_get_by_dev(c=
onst struct device *dev)
 	return NULL;
 }
=20
+static struct iommu_domain *arm_smmu_get_domain_by_sid(struct domain *d,
+				u32 sid)
+{
+	int i;
+	unsigned long flags;
+	struct iommu_domain *io_domain;
+	struct arm_smmu_domain *smmu_domain;
+	struct arm_smmu_master *master;
+	struct arm_smmu_xen_domain *xen_domain =3D dom_iommu(d)->arch.priv;
+
+	/*
+	 * Loop through the &xen_domain->contexts to locate a context
+	 * assigned to this SMMU
+	 */
+	list_for_each_entry(io_domain, &xen_domain->contexts, list) {
+		smmu_domain =3D to_smmu_domain(io_domain);
+
+		spin_lock_irqsave(&smmu_domain->devices_lock, flags);
+		list_for_each_entry(master, &smmu_domain->devices, domain_head) {
+			for (i =3D 0; i < master->num_streams; i++) {
+				if (sid !=3D master->streams[i].id)
+					continue;
+				spin_unlock_irqrestore(&smmu_domain->devices_lock, flags);
+				return io_domain;
+			}
+		}
+		spin_unlock_irqrestore(&smmu_domain->devices_lock, flags);
+	}
+	return NULL;
+}
+
 static struct iommu_domain *arm_smmu_get_domain(struct domain *d,
 				struct device *dev)
 {
@@ -3003,6 +3034,53 @@ static void arm_smmu_iommu_xen_domain_teardown(struc=
t domain *d)
 	xfree(xen_domain);
 }
=20
+static int arm_smmu_attach_guest_config(struct domain *d, u32 sid,
+		struct iommu_guest_config *cfg)
+{
+	int ret =3D -EINVAL;
+	unsigned long flags;
+	struct arm_smmu_master *master;
+	struct arm_smmu_domain *smmu_domain;
+	struct arm_smmu_xen_domain *xen_domain =3D dom_iommu(d)->arch.priv;
+	struct iommu_domain *io_domain =3D arm_smmu_get_domain_by_sid(d, sid);
+
+	if (!io_domain)
+		return -ENODEV;
+
+	smmu_domain =3D to_smmu_domain(io_domain);
+
+	spin_lock(&xen_domain->lock);
+
+	switch (cfg->config) {
+	case ARM_SMMU_DOMAIN_ABORT:
+		smmu_domain->abort =3D true;
+		break;
+	case ARM_SMMU_DOMAIN_BYPASS:
+		smmu_domain->abort =3D false;
+		break;
+	case ARM_SMMU_DOMAIN_NESTED:
+		/* Enable Nested stage translation. */
+		smmu_domain->stage =3D ARM_SMMU_DOMAIN_NESTED;
+		smmu_domain->s1_cfg.s1ctxptr =3D cfg->s1ctxptr;
+		smmu_domain->s1_cfg.s1fmt =3D cfg->s1fmt;
+		smmu_domain->s1_cfg.s1cdmax =3D cfg->s1cdmax;
+		smmu_domain->abort =3D false;
+		break;
+	default:
+		goto out;
+	}
+
+	spin_lock_irqsave(&smmu_domain->devices_lock, flags);
+	list_for_each_entry(master, &smmu_domain->devices, domain_head)
+		arm_smmu_install_ste_for_dev(master);
+	spin_unlock_irqrestore(&smmu_domain->devices_lock, flags);
+
+	ret =3D 0;
+out:
+	spin_unlock(&xen_domain->lock);
+	return ret;
+}
+
 static const struct iommu_ops arm_smmu_iommu_ops =3D {
 	.page_sizes		=3D PAGE_SIZE_4K,
 	.init			=3D arm_smmu_iommu_xen_domain_init,
@@ -3015,6 +3093,7 @@ static const struct iommu_ops arm_smmu_iommu_ops =3D =
{
 	.unmap_page		=3D arm_iommu_unmap_page,
 	.dt_xlate		=3D arm_smmu_dt_xlate,
 	.add_device		=3D arm_smmu_add_device,
+	.attach_guest_config =3D arm_smmu_attach_guest_config
 };
=20
 static __init int arm_smmu_dt_init(struct dt_device_node *dev,
diff --git a/xen/drivers/passthrough/arm/smmu-v3.h b/xen/drivers/passthroug=
h/arm/smmu-v3.h
index d54f0a79f2..3e3a6cd080 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.h
+++ b/xen/drivers/passthrough/arm/smmu-v3.h
@@ -398,6 +398,7 @@ enum arm_smmu_domain_stage {
 	ARM_SMMU_DOMAIN_S2,
 	ARM_SMMU_DOMAIN_NESTED,
 	ARM_SMMU_DOMAIN_BYPASS,
+	ARM_SMMU_DOMAIN_ABORT,
 };
=20
 /* Xen specific code. */
diff --git a/xen/drivers/passthrough/arm/vsmmu-v3.c b/xen/drivers/passthrou=
gh/arm/vsmmu-v3.c
index 3ecbe4861b..3b073b9dac 100644
--- a/xen/drivers/passthrough/arm/vsmmu-v3.c
+++ b/xen/drivers/passthrough/arm/vsmmu-v3.c
@@ -224,8 +224,11 @@ static int arm_vsmmu_handle_cfgi_ste(struct virt_smmu =
*smmu, uint64_t *cmdptr)
 {
     int ret;
     uint64_t ste[STRTAB_STE_DWORDS];
+    struct domain *d =3D smmu->d;
+    struct domain_iommu *hd =3D dom_iommu(d);
     struct arm_vsmmu_s1_trans_cfg s1_cfg =3D {0};
     uint32_t sid =3D smmu_cmd_get_sid(cmdptr[0]);
+    struct iommu_guest_config guest_cfg =3D {0};
=20
     ret =3D arm_vsmmu_find_ste(smmu, sid, ste);
     if ( ret )
@@ -235,6 +238,21 @@ static int arm_vsmmu_handle_cfgi_ste(struct virt_smmu =
*smmu, uint64_t *cmdptr)
     if ( ret )
         return (ret =3D=3D -EAGAIN ) ? 0 : ret;
=20
+    guest_cfg.s1ctxptr =3D s1_cfg.s1ctxptr;
+    guest_cfg.s1fmt =3D s1_cfg.s1fmt;
+    guest_cfg.s1cdmax =3D s1_cfg.s1cdmax;
+
+    if ( s1_cfg.bypassed )
+        guest_cfg.config =3D ARM_SMMU_DOMAIN_BYPASS;
+    else if ( s1_cfg.aborted )
+        guest_cfg.config =3D ARM_SMMU_DOMAIN_ABORT;
+    else
+        guest_cfg.config =3D ARM_SMMU_DOMAIN_NESTED;
+
+    ret =3D hd->platform_ops->attach_guest_config(d, sid, &guest_cfg);
+    if ( ret )
+        return ret;
+
     return 0;
 }
=20
diff --git a/xen/include/xen/iommu.h b/xen/include/xen/iommu.h
index 37c4a1dc82..21f905d44f 100644
--- a/xen/include/xen/iommu.h
+++ b/xen/include/xen/iommu.h
@@ -311,6 +311,15 @@ static inline int iommu_add_dt_pci_sideband_ids(struct=
 pci_dev *pdev)
=20
 #endif /* HAS_DEVICE_TREE_DISCOVERY */
=20
+#ifdef CONFIG_ARM
+struct iommu_guest_config {
+    paddr_t     s1ctxptr;
+    uint8_t     config;
+    uint8_t     s1fmt;
+    uint8_t     s1cdmax;
+};
+#endif /* CONFIG_ARM */
+
 struct page_info;
=20
 /*
@@ -387,6 +396,11 @@ struct iommu_ops {
 #endif
     /* Inhibit all interrupt generation, to be used at shutdown. */
     void (*quiesce)(void);
+
+#ifdef CONFIG_ARM
+    int (*attach_guest_config)(struct domain *d, u32 sid,
+                               struct iommu_guest_config *cfg);
+#endif
 };
=20
 /*
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 18:31:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 18:31:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073331.1436309 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk5Oy-0000pT-8v; Thu, 07 Aug 2025 18:31:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073331.1436309; Thu, 07 Aug 2025 18: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 1uk5Ox-0000mk-W9; Thu, 07 Aug 2025 18:31:43 +0000
Received: by outflank-mailman (input) for mailman id 1073331;
 Thu, 07 Aug 2025 16:59:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5oaB=2T=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1uk3xY-000773-I7
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 16:59:20 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id db45dece-73af-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 18:59:18 +0200 (CEST)
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com (2603:10a6:102:ea::23)
 by AS8PR03MB7336.eurprd03.prod.outlook.com (2603:10a6:20b:2ec::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.16; Thu, 7 Aug
 2025 16:59:17 +0000
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f]) by PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f%6]) with mapi id 15.20.9009.013; Thu, 7 Aug 2025
 16:59:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: db45dece-73af-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mjccd5ex3iHvEOrOc83veBjvKOmxBGUITWDSvCTHbQqMOyt5fgaNNaBo6nhTf8bRYrVXL5Qi6tgQeoPzt4dv/MZf8J1R2Y9lfiv0IpsSTvmIc+RCE38IPo0rDdkw+s4QtPNFJEdcCMu7fssFFLynNXUUX7gclXTY08+fDvFpeazdUMezk7ucvKhqlFWoxEg2wXgHQzz04GOjqra+5YJusLkZiaMooAlp6T0+8BYx/Uztc3cqt6rorgmV08rAu7UOZUQp0H+sJljk6sR/OsVFWT69a/2b6hMaq9Ag+yHF9b9XgqdWPl8XUhOJHSS4617bjwHK4lJCqm1CVhBgUG98zQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xL00tNSF5yd9RoAGLx4Uq/x2+XNJeFpfg252zO6C4CE=;
 b=kXPM8uYcF8eKZNmUIOP2ub02mP5Sk1RDCRg/EmRjcdmhgrw76OfDIjl/VsI2QVBVvCwPAqre8LWLFqZOXAAYnQJp340cfjUa2mngJ3PIHD7SByTHB/GCEA7xaerE+BmiJlHDzpuDC+dcJ2ESwtFkE3cBZJhTJalSBN0vfnBwPU9aCgE6YDOk2Otbh7IvLsQF/FISksfCO83Vq11k7BEyKYAcqOjRXXZnszt4jGA0w7Fr1sMXSbJ3SqxL3vNk7f52XsPVVuJyg3esxfvClS3egdETmRDOKxUPcLvtzFq3WLZo2372SakMPLZ3CMalxvDu8RSJ0jrzsWxdQyPVzMSrBQ==
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=xL00tNSF5yd9RoAGLx4Uq/x2+XNJeFpfg252zO6C4CE=;
 b=V6PmL7wNiwNIGljrVkqKqykoydvlrozb6qqyXVulM90womosuht5b7AoiPx850V2mnO2voE7avovuD9iFzEZEY2EDkf2cSGq9E37x8X79I2lhCcRQRufAAaBFWc+dKbtdgo2sNvMrThjFi2EHSQZmvtuKGvfDxzrRvcetqTnbPntPIdAb4BvA2MU4DBXI+BRegLoTMAKW6yg830z0Ncgpvn+niOCIVaa1cIICCUCvB0b+BP1wh4LkFIgV0lvjoVvc7JaEchnKE9HxNqcoINPG80iyypLul+dWmySg8yaaPvXFntnPr0lNSTxBif/yCURoSWEmAx4rmjiLWDzloE6Wg==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Milan Djokic <milan_djokic@epam.com>
Subject: [PATCH 03/20] xen/arm: smmuv3: Alloc io_domain for each device
Thread-Topic: [PATCH 03/20] xen/arm: smmuv3: Alloc io_domain for each device
Thread-Index: AQHcB7ycdMk0c92iU0qjOO1oC+LJsw==
Date: Thu, 7 Aug 2025 16:59:16 +0000
Message-ID:
 <27a106209124c8d052d7cca6285d9b7b1b110ef2.1754580688.git.milan_djokic@epam.com>
References: <cover.1754580687.git.milan_djokic@epam.com>
In-Reply-To: <cover.1754580687.git.milan_djokic@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: PA4PR03MB7136:EE_|AS8PR03MB7336:EE_
x-ms-office365-filtering-correlation-id: e03d7344-5d52-4c09-a8d7-08ddd5d3bea1
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?FhLo/iG7C4abnVmAu7cgWGAKWMFwRqx31GF/VUzEgDpv5lJZZPzZNlscgv?=
 =?iso-8859-1?Q?UVG39Dz9Cilgv7QOsKocHC8Uxv7bmSweR9boaSH9I5n8QJhmrzxlWATsf9?=
 =?iso-8859-1?Q?B7+fWwnFpW+RlaG6ZmLnhxGZDxkJ6FDGidfAu+pAdsF/7lPDbsF+LMul/x?=
 =?iso-8859-1?Q?DBcgHLvpVygnT6fhMC5VF3nv6DPb+a/4fJK/3UPFURaI2RRUwNsPdlFZkR?=
 =?iso-8859-1?Q?ql4HgchpleMZzibTT0snGH248Z4Z6YU+9iz9eAqyQqpwa9IFA9oSvsCq3j?=
 =?iso-8859-1?Q?ECyGKDq9KCI6flHSQYbDD5oa/ORYIohvqXmkPn3h4SbYG/RfKk+rPqJvxc?=
 =?iso-8859-1?Q?HTTEBXumEKmOuAN9zcyUPDSzWfTn99A2OTX2nfRYrflNOCB2pCXeHacL/I?=
 =?iso-8859-1?Q?lpEdc3fKz4bs3gn757ydK9hZhPBLsG/jJR7HQKMVv2loenf41KkmOmfh38?=
 =?iso-8859-1?Q?ywkQJEToI2I/nLM4hmBVtRezlywoO7yfWMB3QjHFx6C6cMktwm+xAc72W5?=
 =?iso-8859-1?Q?ln4nCY1qXKehXnzuKIy0VT+dwA9gQF39eqiDP/Loxs1gR7GXCipVxheTR1?=
 =?iso-8859-1?Q?rAhX5MDG5Ruh2T5zmT2yLKKAczr87PI+JfS7jjbl9/JoNAFd56Hfn9eW6e?=
 =?iso-8859-1?Q?zYCXqoirGqrKsp7dS1/ZeVSUmvBTybIQ/FM7Qj+gA/boa9EEQ2QmlU990b?=
 =?iso-8859-1?Q?+8DA7LTRJo1MtYmxTvlVOA2sMcHokE4JdRXfI74+WLQUnXLYDm33NgkS0c?=
 =?iso-8859-1?Q?6eczLcGgEZqNHbbaCbFrZSydf8nVVYd3UZgqShse1KVIExGEo71s+k62nQ?=
 =?iso-8859-1?Q?FL2d0e+vpU+qGRHESqSuUfwGjO2mJhlf7+gZCS7rBQYeWM9AnGAv31ik3l?=
 =?iso-8859-1?Q?249jIXLnv87EUPbEoPhq0C2/3TBH4+EhZc3Rh/vbpr49OzYqQZyEwqlC2n?=
 =?iso-8859-1?Q?yCr4PwdLWMMETczlFYb/Q8VBFSfGkm6I2qF2jA/J2zrPI2W9axew3CYasw?=
 =?iso-8859-1?Q?VQKtoxeD9nqzrxRob6yJ5qhDOv2ARgpUpvVQD0RVgT60AnKH+I7PfZAUBQ?=
 =?iso-8859-1?Q?MK4H/iRF3bwrxjSXZw7LW+kjwSfxEUV1cWOzJFvrAcHeY221mO5XI9aZnC?=
 =?iso-8859-1?Q?SUCVHa+jjQUyvYJjFEZmuXGeod8m/WORVCqCJ0QEfZUOXWSnp+i+i1lJtH?=
 =?iso-8859-1?Q?AW7gxv0G+fnM0FxR1OunY4cJLjWPTtdtX3UVXXVaxP2YwGrShvjjliiuzh?=
 =?iso-8859-1?Q?IPqhL6TfoN1g383nshegXJTSlpmpYRrwIZn/4aaWFO4BdekT5479CH8PWI?=
 =?iso-8859-1?Q?hnJXgMRCvY6sO5f24QUCoXtB5rR1LsjpTBP0/agoUnEVb81u+EUhQyA6am?=
 =?iso-8859-1?Q?E9vEQrZhYM9CCzz8SdHa0CC1F1Cyn+9Oj4ktjM66bhSnYQT+X91koOdCCF?=
 =?iso-8859-1?Q?LJJwMpsnu+/SaeMJYTz4W2U0UILQqVz0NSGtiro+BcfCPIo6y+me41JNZL?=
 =?iso-8859-1?Q?bWaD9tXefzN7N9hinZbS4coS7t+ElwMCysZI8cG20o9g=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR03MB7136.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?fhSQe74irvxFRaUNm7ursNLknfncIFfsMBw/3iVW2mqjWuviaiErnHRK6B?=
 =?iso-8859-1?Q?r9RyEX99H7LT32RtalG6uxsrd6zujrgZNxHQKTacpEWgoZuKXCpMOor1Xu?=
 =?iso-8859-1?Q?iUwNT556Q2llSqP5ixlXWrl397WnuEiv9OuVADlnjJLqYZLVJ6O4bpyXUP?=
 =?iso-8859-1?Q?Y9zPhyZSI9D3qX5Z0VTQSGFpXa1a46e9WmObI3JSrVfINg0mpPEwOpSi0s?=
 =?iso-8859-1?Q?3pwmr90OV3vFcrrSCB5xmqGxs+6U4CJy/OS8Tey7Qc/MuhfZl+ffA3xY7s?=
 =?iso-8859-1?Q?heRcdV66yC0hUCbGqpVdardSwcGJG8WKhx/axOqQcxyQzL5lyirfetjj3R?=
 =?iso-8859-1?Q?ZFLy7D/xyCoGa7nxMDEz0idVUK4dBKBYiqwqdLhw+diEXmuhcVnCj38yKQ?=
 =?iso-8859-1?Q?m+u7Zkt7SGYFiT5f+T/mXEubMiappZo9SCN5OIb6rpqJELg/UH8Vly+ZdT?=
 =?iso-8859-1?Q?F6zzJja8NV86iG57I4jK9IUqEecxOqGjWtL4uGSGNMDliRNlEaUj+gQEnJ?=
 =?iso-8859-1?Q?xl6rjuVNZSRb6noLKbxkbXTB6JvI9IeeQZTf5hYSIGK1+2AlhaeCeMcGHN?=
 =?iso-8859-1?Q?IKXKNS509ITSMpcQ35QDbHVFAvKtbTW/4CM+N39pjBQdBHicu1YfJ0lBa+?=
 =?iso-8859-1?Q?clxi4j0t8kbkerxyN0uUQ2AzxgkqwTzsc5SmnRiEcF8DvoWq9bLoIWuils?=
 =?iso-8859-1?Q?PvWi64ktO0DqUnWCVJxOFRwa4olsLuE5Lz9ozl1XddQ/f0V+ySlaCG9P3a?=
 =?iso-8859-1?Q?1dPr9Y41kQb4lqZ6zbm8o4wb3JGa2UnDx78w7bG/YbLO6EGqLEd0F11BQK?=
 =?iso-8859-1?Q?jTciEaIL0iVRtqm3gfcvwbGA+BvmMNFUBP6V79K0yP81uVi8oRVAkqN2PD?=
 =?iso-8859-1?Q?YYfUGB6A7Pg7D1dZa0XppetAiBEPb2IG3Jf+k47SuWQR9OWakhnYRhn/rM?=
 =?iso-8859-1?Q?mgc5jqgMyZNk4c9luSV/i7mgdOsruE2l+9GAFHiR9MTB+tHsdM11LxZZct?=
 =?iso-8859-1?Q?mdTzvoIofsOpw2LN2PpDEBhdgmxWN4i3GU1PPkSIQzeMeLzvch45Tve8Pz?=
 =?iso-8859-1?Q?AmW+QO+ZSyW2HK9XZd45zlamprlyzRRmPfq5bv57CjQYWw7u1zBCNGkc4u?=
 =?iso-8859-1?Q?Bd7p45L67ISAlr/6M7WnYFEjmUn8gpdO5ZzMoOU/6wxv8cSb8eP5ZSRi3G?=
 =?iso-8859-1?Q?M1RWRMCuqCKZ4bd4bzW7cwdEBA8d2AGEa48irQCAomv99Tr3blh4MmIl0Y?=
 =?iso-8859-1?Q?G334JFVhehkNTRAf17jUzhZc5fN4SMzp9PuLS9eVm4qG4yneDtDf/enIPf?=
 =?iso-8859-1?Q?OA5g9Vanx/cSflY2fN7vl7JW4oK0hdVt/DxI5LxjyC1YSkWIdITq1xueJi?=
 =?iso-8859-1?Q?n3Ilt4SdwgF96pGDjH73oMCOFnhTete/lCpo3o9hlOtt1grIyHNfYoZefa?=
 =?iso-8859-1?Q?M9r8J1UpLH5gsxlqzEmbFTOpGrBq4PTvXSGbokiEuOpjjTrEB8RpNInMEs?=
 =?iso-8859-1?Q?ZwkBAXUVNfkfkL4zfPrgdE0MZEk2rISJiQcYpPHJJHJyoOXg8Egim4QI2w?=
 =?iso-8859-1?Q?IsVFVMFFGxIT7LwAfzWjKWgG9wXIwIsG/0nrbAL5wlMu7i96r0qqQCagP6?=
 =?iso-8859-1?Q?iQONytzByDE4HegoIZ9S4fKRODk9YLqDfl?=
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: PA4PR03MB7136.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e03d7344-5d52-4c09-a8d7-08ddd5d3bea1
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Aug 2025 16:59:16.9323
 (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: 6p/cR7AWA4AQleVmnJhKoggZVxXvKwXktFffnYsAgj2JTAc8tv4T2WQsV0TR0D4TTNYZzPXdhEMo8s/TI4o/gA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7336

From: Rahul Singh <rahul.singh@arm.com>

In current implementation io_domain is allocated once for each xen
domain as Stage2 translation is common for all devices in same xen
domain.

Nested stage supports S1 and S2 configuration at the same time. Stage1
translation will be different for each device as linux kernel will
allocate page-table for each device.

Alloc io_domain for each device so that each device can have different
Stage-1 and Stage-2 configuration structure.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/drivers/passthrough/arm/smmu-v3.c | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/xen/drivers/passthrough/arm/smmu-v3.c b/xen/drivers/passthroug=
h/arm/smmu-v3.c
index 5c96e8ec7c..15ff703458 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.c
+++ b/xen/drivers/passthrough/arm/smmu-v3.c
@@ -2790,11 +2790,13 @@ static struct arm_smmu_device *arm_smmu_get_by_dev(=
const struct device *dev)
 static struct iommu_domain *arm_smmu_get_domain(struct domain *d,
 				struct device *dev)
 {
+	unsigned long flags;
 	struct iommu_domain *io_domain;
 	struct arm_smmu_domain *smmu_domain;
 	struct iommu_fwspec *fwspec =3D dev_iommu_fwspec_get(dev);
 	struct arm_smmu_xen_domain *xen_domain =3D dom_iommu(d)->arch.priv;
 	struct arm_smmu_device *smmu =3D arm_smmu_get_by_dev(fwspec->iommu_dev);
+	struct arm_smmu_master *master;
=20
 	if (!smmu)
 		return NULL;
@@ -2805,8 +2807,15 @@ static struct iommu_domain *arm_smmu_get_domain(stru=
ct domain *d,
 	 */
 	list_for_each_entry(io_domain, &xen_domain->contexts, list) {
 		smmu_domain =3D to_smmu_domain(io_domain);
-		if (smmu_domain->smmu =3D=3D smmu)
-			return io_domain;
+
+		spin_lock_irqsave(&smmu_domain->devices_lock, flags);
+		list_for_each_entry(master, &smmu_domain->devices, domain_head) {
+			if (master->dev =3D=3D dev) {
+				spin_unlock_irqrestore(&smmu_domain->devices_lock, flags);
+				return io_domain;
+			}
+		}
+		spin_unlock_irqrestore(&smmu_domain->devices_lock, flags);
 	}
 	return NULL;
 }
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 18:31:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 18:31:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073344.1436358 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk5P1-0001mg-25; Thu, 07 Aug 2025 18:31:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073344.1436358; Thu, 07 Aug 2025 18:31: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 1uk5P0-0001lM-Ow; Thu, 07 Aug 2025 18:31:46 +0000
Received: by outflank-mailman (input) for mailman id 1073344;
 Thu, 07 Aug 2025 16:59:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5oaB=2T=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1uk3xi-000773-1F
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 16:59:30 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e141abe5-73af-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 18:59:28 +0200 (CEST)
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com (2603:10a6:102:ea::23)
 by AS8PR03MB7336.eurprd03.prod.outlook.com (2603:10a6:20b:2ec::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.16; Thu, 7 Aug
 2025 16:59:24 +0000
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f]) by PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f%6]) with mapi id 15.20.9009.013; Thu, 7 Aug 2025
 16:59: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>
X-Inumbo-ID: e141abe5-73af-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=WW5ilPlvQ0TCkfxG7JqdDRYdFOmxMECSCFug2TqFPBTvH1EWBmHivLr4r+6KbRvNkzs9wHXMSaOGePQI4FMyQtpeeVBRJbmmWcbq041qD/+R9tAbJKItw1qES5GLz9PEsBW0QMzq3d7CBkV9Oy0qNwKcHT5aVGXRTadYaghVt9RBsauZ9diS1dvv6svLKqg8vtG8wgphY7EWMnUm505MbY27kzd0l/ht8GefFQZmScOwO4ZpPEqJlRuQSOvA0GRlVSLSp1tEgfFHKEvz0jN971AeNY+/g313zfzwsejneJLoap6V8jN7MvRy2Cnolw2eil6pffpWIlyT8hQqCCyE7w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ziYBUTrB3P+AGN2Q/b5l0hgVM7EuLNty773Ail/6/I8=;
 b=zH8biVCwXKAt06mQ27r+YhJuO3Oke9OI9ycsR8E+ZTjEMsIR5RGcPaqBotNVLRuMPyiNNPIS5gPW73r1rDMkOgRp/GNNB33vh2dv0Blw+MyDGwcX1bAL5iCbBJ9CiNZ0CzsPpVNd0F9WFwp7xOAtBRl+ypPto/qDCYaSw9V9UAldy5fxH8x6hK89Gocix+AAtwi6M85Va9zI1ibB5okhXH4Iy/BV9NmLrm/KsSWbAHQF9P1o3OE2yqDUH+gXuHF8znfAFV+CskxGpNz+h4GdHfp5A5dWwuB8nnxrYfeu/to09ydsZmMONWXEFNv+V6/JwBo5bxnPRFLSIM2FlKqWKg==
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=ziYBUTrB3P+AGN2Q/b5l0hgVM7EuLNty773Ail/6/I8=;
 b=pX6/Ccxp2doCdJRVGV/MBpHLBGUHSSn9WrPXrAfafWgf3HDUS30U1bMbOIKq/cxtHANxFUiGtBi8/KeSw02zbrA94WhaoNytd617fTBD4zdcHq1ARnQ5t6Yfl3N8Gk7weZotT98gdyffDyK+CSnyV6NzGXjW+v9EMSTalOL706khoBXpiECLxVVR66Kd/EP+nSu1ePLqtQguoA14q138ZOAp7mePeZlNStC9Q/evcs5UFwer5/aQf4AaSC+fwCmok3KasFRGep6OuPHoKfmFnuuGh8yl1pCB/2HOgeogqvI5BRY4ERpgRVbrzozHIGf94z2EMfkh28a//5XTg3vjWw==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: 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>, Milan Djokic <milan_djokic@epam.com>
Subject: [PATCH 09/20] xen/arm: vsmmuv3: Add support for cmdqueue handling
Thread-Topic: [PATCH 09/20] xen/arm: vsmmuv3: Add support for cmdqueue
 handling
Thread-Index: AQHcB7ygaIRJk82f2U2cK2snO9G44g==
Date: Thu, 7 Aug 2025 16:59:24 +0000
Message-ID:
 <61dbd27ea536b80b6d0de1bf3ad0b4bab38e83a7.1754580688.git.milan_djokic@epam.com>
References: <cover.1754580687.git.milan_djokic@epam.com>
In-Reply-To: <cover.1754580687.git.milan_djokic@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: PA4PR03MB7136:EE_|AS8PR03MB7336:EE_
x-ms-office365-filtering-correlation-id: 6407eea4-105b-43eb-4ba1-08ddd5d3c2f6
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?t2aMweyVHcP2Y5Gp+VjPNRpooJ+i6aL8qgXX4nMAFKgLVD1wl/Nlv/oZTU?=
 =?iso-8859-1?Q?S6NKpjgn+mW8lmNMzAXd3fcraAAVmM8J79LA1E1Kvr50N8CSRIc77svF9K?=
 =?iso-8859-1?Q?cN3L3n+pz93uCQx9eN5l6SEG9xtL77TwHsLHyUGnQkXkzge+g//Akb7JCF?=
 =?iso-8859-1?Q?6CiVnXIvl3HJ527EcgmfihqM/4Q17E4L9s9K3vYenzSDArDt0ccyc0hTwF?=
 =?iso-8859-1?Q?/5iNl3fn2+M7k4T2hFpfhB5d0P281ixKB94AFA3Rp4mNnKJZkcSeKymb7P?=
 =?iso-8859-1?Q?DF8O1CEfSgdP5ah2wfRa8aJ9m+vmJIXPKQLL4dEcsjeyMO8neUDkbSuNB0?=
 =?iso-8859-1?Q?rKDlM/N2efsu3POeeA1dGZ5VrIW6uOyMbKtU/YtW5cm2iNuVBKm/AUsDy2?=
 =?iso-8859-1?Q?IIRZOovS8DbGD9NFZTSAAUW1tWcLgmC/XBRmQ5y4h/yKaQepAymphFsEYO?=
 =?iso-8859-1?Q?ULmBJmC+VygG2xo8zwYbYYp8476gzigOiK4EY/0YfvdOV94QLO8KHhY+BC?=
 =?iso-8859-1?Q?sr/VgVjCTqxwXykeKvT9FVSSgy7hRIoVnLDatb4IvdxBBL1gKTUiXjgtQ9?=
 =?iso-8859-1?Q?ht4nNK+jGFj6t8IHun5Bw09R39TTUP/wOH+FT5G87JO3LJZyzplZ67/5yD?=
 =?iso-8859-1?Q?0PcH2yDhg8YPjm5w7V2+kRQCr97Ij1CcQPLqnF7VReNflaf33OFeyzASTo?=
 =?iso-8859-1?Q?Vb3nz6mHL892SjX1Ag8Svs4fto8qzcMQ+nWuKbZHpGDK7Ml0Bc4bbPgd5J?=
 =?iso-8859-1?Q?s9gIfcrvkNOnmRVtDm2KQGB5E7jNq9gAK86Y3zlW+2yLd6UpxveSxAkoXV?=
 =?iso-8859-1?Q?n4xpeUUDGTh/CsaBl1LRSiRWZjJ5s+4/3PAW6vnI9ejkdJbtypP5V1ZHQJ?=
 =?iso-8859-1?Q?PJ5jYypgsyrqa/HQCH5xPCxsUaeGA+brODv0DI343VgiV8qmArk1USgSOz?=
 =?iso-8859-1?Q?Pm6KhA6rK3GcN3TLG0icYJMoRFce5djlkUlSJ0aPsnv5nleyr4VPGsGoxi?=
 =?iso-8859-1?Q?oMItK7ByFuwUUfp8ZKLmkzYfGg8p42tHDEaiUr0Y2Mrndfrw8OYSId3gtW?=
 =?iso-8859-1?Q?jzi4E0t/QXLTj9oyJ+0mR10/wrcBf6ZUaXF4wt1LXkA7tfdxppJZ3Ch4G/?=
 =?iso-8859-1?Q?yxGZxNYO9nMOM20SIpW8waCH7ctJkaeIOPqvUU2Dd4B74Oa4wcH8sybuPd?=
 =?iso-8859-1?Q?3Tq/DCkxMem0NYrKtmjd+veP+sNREVX0MS2x/fB3XMS8xA8ssZ9x+dFIiK?=
 =?iso-8859-1?Q?EGD9/GMZva/f1rgnhEUW4bTKdIlTWP2jkvF7N1cfSBPfmy35K9bDbZ6K/k?=
 =?iso-8859-1?Q?dpnEwFfMryxMe8kif9gtlUjfwILsIucBwmkQfu9RciCnnDTNBeoZex93Hy?=
 =?iso-8859-1?Q?NJd54friVP9WF2llabiT7rR8Z1nUmVtuzAENS3zJIOLJTlQfzogGSKy8jn?=
 =?iso-8859-1?Q?w3Kblz823bGwqD72Z87+blFbrWIQmpLSzETxO29RJilDOceMChkgoiaWxN?=
 =?iso-8859-1?Q?BU+2OcAW7OlxMAhtSWZwSSHRuAD9+vsazZDL98aNCX6A=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR03MB7136.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?HH7R2WVH4vMHeeEYAVltoir81JNQlpjlIleErX+dPrtwYHJCmKgVb2dBdt?=
 =?iso-8859-1?Q?pXh1184x53Em/2nkiQ5I8uO118ucHZ6RO8hzhSnyeg02OwQyD+eXLJllka?=
 =?iso-8859-1?Q?FgMBiHpj5NplRf/o1HPzHCPmmElk60c+/kiFLBtYVVdFH2HuIN1Rm/zMe0?=
 =?iso-8859-1?Q?8743Y/6gEyU0Y7o9cXNKCbXWq86rTFX9gFLT/HMxGlIvjGXXBjZonO8LgK?=
 =?iso-8859-1?Q?mmj14QUzza6NKyg5PmaAr1emvdombhhfHGl9fmDsx/kYwN2M6r9yvlEE3E?=
 =?iso-8859-1?Q?C69aUazuCs/LgqJwLcCuDE/gv6BK5EK4Ay0iAJUouzyQa1FsEDx4VEFels?=
 =?iso-8859-1?Q?N6Dh+j0Rj0brdYT4wNy9EfZqcmDDIwgzO7NsF++beHshzIFozRDre3uoet?=
 =?iso-8859-1?Q?P/Ibce+UIxXrZHwCshuTfILB/uFVv4a5YgJXyiv2PF0Ax7j/a4g1hvNkMg?=
 =?iso-8859-1?Q?Cr6kV3b+bAFf5FvNUgTNJJeUZ9uIau1gbCapoN1c+237No0iC4RJCbdBRA?=
 =?iso-8859-1?Q?ZpMM78inQPdf6KoDWxcXb/Sz0dwe8jOgPclt/h1wzsPSSwvioNRWFoRGOD?=
 =?iso-8859-1?Q?iFGlDTfzHaKp1w1iEy3KoXIBi9T56A5PF8f5wfsHG+ayasRtj+tz5X1D/K?=
 =?iso-8859-1?Q?TtWnVVoKAIXRy0VjbWnGCIKIbtbxN6j+dWnFhMl4heqAgsErRRwJbXCa38?=
 =?iso-8859-1?Q?oFcLhFHGrRHnbHye9+Trcm6Brs0IAqjH79Gv/XRmQDlWrZxYYu/cIUKhmI?=
 =?iso-8859-1?Q?9q35V1g2C8ge2h+DmJqb0FSTKk7GI0BDiyPwn+fuArwY4ic5dCL8qA/4G3?=
 =?iso-8859-1?Q?CuPk/IZRDn3f0Kk8AyR0x8z0fQ0SNfulS6ThBqE8DTk+7chILy53KSR5Oh?=
 =?iso-8859-1?Q?IfFSw6AZf6VntpRf1pxVIXG/Ov+RdjhRs5JVsTfNWz41AUve5toDbwd/cB?=
 =?iso-8859-1?Q?GmTNxjG4wEvxN0opR9ja/DHapKHwAwTouqyvVgshgxviBQ+7Zh3974De8j?=
 =?iso-8859-1?Q?muEX7jhGiMsqVE9SKMqwKqGKy5Ea8wfOD1YkUPauWB0nTKrLYuzl5uoBnI?=
 =?iso-8859-1?Q?VBvuJRlqjhBT7NrhUTFeFh7xVR4GKuRCRxGFC9lI74TS+aWqzFmmi2FN56?=
 =?iso-8859-1?Q?tTACgad8SQCR8pCzq+MSNcV/I3tGQ/RmAgKWhGFunBQNAcZX6Cbdq0CQup?=
 =?iso-8859-1?Q?isQ1B8BksxI1xG9ds3YWXWyGSYa0REvswzdgBx6iH9EYyQpBqk/8pAHlTb?=
 =?iso-8859-1?Q?7Ee18dDlI6y3q13aHtgmjCIUdeKM2hrAOP0klIFrEYUK/xu4rGZplVhnaR?=
 =?iso-8859-1?Q?KnJjNg5VXwf1nX6EqQMy/NkMNUNLZMjSoyr6m90puyQZmWty1O/grGcsyp?=
 =?iso-8859-1?Q?HXSe32FcGCedfo11mWVs02y2pUHxU/agm3PWOvsg620PvZaoKK1gEvLlp+?=
 =?iso-8859-1?Q?Awvn0M81Q4mUkgAYjI8YrfitzDf1rLLAsPStbaKpDqAcTBPkLnG5+gaU4D?=
 =?iso-8859-1?Q?71TjpnTjO/04tBcIzzis3hn/l+viCU9bVxoKtr5pPloJXShecwh6Rd1I01?=
 =?iso-8859-1?Q?Bj3FHHznS/MA6rcN8O7EjLV7yVw2rARx7BbLIztOBpAPxA0lJxu7ePa+wk?=
 =?iso-8859-1?Q?FeknSONeoRG/u9ELvPhs99aWVxJbZddHkG/WwJXjtmpIaCNgWaSEErVg?=
 =?iso-8859-1?Q?=3D=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: PA4PR03MB7136.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6407eea4-105b-43eb-4ba1-08ddd5d3c2f6
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Aug 2025 16:59:24.2071
 (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: 58A1hKHVygWtUdUtzKNXQywJYC/pRiiVGrc1QsDB5UU+kZEtKTXGIv8c7sNBHEPTDPbCMVxsoSPW+8jkeJ1ShQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7336

From: Rahul Singh <rahul.singh@arm.com>

Add support for virtual cmdqueue handling for guests

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/drivers/passthrough/arm/vsmmu-v3.c | 101 +++++++++++++++++++++++++
 1 file changed, 101 insertions(+)

diff --git a/xen/drivers/passthrough/arm/vsmmu-v3.c b/xen/drivers/passthrou=
gh/arm/vsmmu-v3.c
index 3ae1e62a50..84bd1f7327 100644
--- a/xen/drivers/passthrough/arm/vsmmu-v3.c
+++ b/xen/drivers/passthrough/arm/vsmmu-v3.c
@@ -1,5 +1,6 @@
 /* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) */
=20
+#include <xen/guest_access.h>
 #include <xen/param.h>
 #include <xen/sched.h>
 #include <asm/mmio.h>
@@ -25,6 +26,26 @@
 /* Struct to hold the vIOMMU ops and vIOMMU type */
 extern const struct viommu_desc __read_mostly *cur_viommu;
=20
+/* SMMUv3 command definitions */
+#define CMDQ_OP_PREFETCH_CFG    0x1
+#define CMDQ_OP_CFGI_STE        0x3
+#define CMDQ_OP_CFGI_ALL        0x4
+#define CMDQ_OP_CFGI_CD         0x5
+#define CMDQ_OP_CFGI_CD_ALL     0x6
+#define CMDQ_OP_TLBI_NH_ASID    0x11
+#define CMDQ_OP_TLBI_NH_VA      0x12
+#define CMDQ_OP_TLBI_NSNH_ALL   0x30
+#define CMDQ_OP_CMD_SYNC        0x46
+
+/* Queue Handling */
+#define Q_BASE(q)       ((q)->q_base & Q_BASE_ADDR_MASK)
+#define Q_CONS_ENT(q)   (Q_BASE(q) + Q_IDX(q, (q)->cons) * (q)->ent_size)
+#define Q_PROD_ENT(q)   (Q_BASE(q) + Q_IDX(q, (q)->prod) * (q)->ent_size)
+
+/* Helper Macros */
+#define smmu_get_cmdq_enabled(x)    FIELD_GET(CR0_CMDQEN, x)
+#define smmu_cmd_get_command(x)     FIELD_GET(CMDQ_0_OP, x)
+
 /* virtual smmu queue */
 struct arm_vsmmu_queue {
     uint64_t    q_base; /* base register */
@@ -49,8 +70,80 @@ struct virt_smmu {
     uint64_t    gerror_irq_cfg0;
     uint64_t    evtq_irq_cfg0;
     struct      arm_vsmmu_queue evtq, cmdq;
+    spinlock_t  cmd_queue_lock;
 };
=20
+/* Queue manipulation functions */
+static bool queue_empty(struct arm_vsmmu_queue *q)
+{
+    return Q_IDX(q, q->prod) =3D=3D Q_IDX(q, q->cons) &&
+           Q_WRP(q, q->prod) =3D=3D Q_WRP(q, q->cons);
+}
+
+static void queue_inc_cons(struct arm_vsmmu_queue *q)
+{
+    uint32_t cons =3D (Q_WRP(q, q->cons) | Q_IDX(q, q->cons)) + 1;
+    q->cons =3D Q_OVF(q->cons) | Q_WRP(q, cons) | Q_IDX(q, cons);
+}
+
+static void dump_smmu_command(uint64_t *command)
+{
+    gdprintk(XENLOG_ERR, "cmd 0x%02llx: %016lx %016lx\n",
+             smmu_cmd_get_command(command[0]), command[0], command[1]);
+}
+static int arm_vsmmu_handle_cmds(struct virt_smmu *smmu)
+{
+    struct arm_vsmmu_queue *q =3D &smmu->cmdq;
+    struct domain *d =3D smmu->d;
+    uint64_t command[CMDQ_ENT_DWORDS];
+    paddr_t addr;
+
+    if ( !smmu_get_cmdq_enabled(smmu->cr[0]) )
+        return 0;
+
+    while ( !queue_empty(q) )
+    {
+        int ret;
+
+        addr =3D Q_CONS_ENT(q);
+        ret =3D access_guest_memory_by_ipa(d, addr, command,
+                                         sizeof(command), false);
+        if ( ret )
+            return ret;
+
+        switch ( smmu_cmd_get_command(command[0]) )
+        {
+        case CMDQ_OP_CFGI_STE:
+            break;
+        case CMDQ_OP_PREFETCH_CFG:
+        case CMDQ_OP_CFGI_CD:
+        case CMDQ_OP_CFGI_CD_ALL:
+        case CMDQ_OP_CFGI_ALL:
+        case CMDQ_OP_CMD_SYNC:
+            break;
+        case CMDQ_OP_TLBI_NH_ASID:
+        case CMDQ_OP_TLBI_NSNH_ALL:
+        case CMDQ_OP_TLBI_NH_VA:
+            if ( !iommu_iotlb_flush_all(smmu->d, 1) )
+                break;
+        default:
+            gdprintk(XENLOG_ERR, "vSMMUv3: unhandled command\n");
+            dump_smmu_command(command);
+            break;
+        }
+
+        if ( ret )
+        {
+            gdprintk(XENLOG_ERR,
+                     "vSMMUv3: command error %d while handling command\n",
+                     ret);
+            dump_smmu_command(command);
+        }
+        queue_inc_cons(q);
+    }
+    return 0;
+}
+
 static int vsmmuv3_mmio_write(struct vcpu *v, mmio_info_t *info,
                               register_t r, void *priv)
 {
@@ -104,9 +197,15 @@ static int vsmmuv3_mmio_write(struct vcpu *v, mmio_inf=
o_t *info,
         break;
=20
     case VREG32(ARM_SMMU_CMDQ_PROD):
+        spin_lock(&smmu->cmd_queue_lock);
         reg32 =3D smmu->cmdq.prod;
         vreg_reg32_update(&reg32, r, info);
         smmu->cmdq.prod =3D reg32;
+
+        if ( arm_vsmmu_handle_cmds(smmu) )
+            gdprintk(XENLOG_ERR, "error handling vSMMUv3 commands\n");
+
+        spin_unlock(&smmu->cmd_queue_lock);
         break;
=20
     case VREG32(ARM_SMMU_CMDQ_CONS):
@@ -326,6 +425,8 @@ static int vsmmuv3_init_single(struct domain *d, paddr_=
t addr, paddr_t size)
     smmu->evtq.q_base =3D FIELD_PREP(Q_BASE_LOG2SIZE, SMMU_EVTQS);
     smmu->evtq.ent_size =3D EVTQ_ENT_DWORDS * DWORDS_BYTES;
=20
+    spin_lock_init(&smmu->cmd_queue_lock);
+
     register_mmio_handler(d, &vsmmuv3_mmio_handler, addr, size, smmu);
=20
     /* Register the vIOMMU to be able to clean it up later. */
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 18:31:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 18:31:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073337.1436333 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk5Oz-0001Fd-BU; Thu, 07 Aug 2025 18:31:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073337.1436333; Thu, 07 Aug 2025 18:31: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 1uk5Oz-0001E4-3J; Thu, 07 Aug 2025 18:31:45 +0000
Received: by outflank-mailman (input) for mailman id 1073337;
 Thu, 07 Aug 2025 16:59:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5oaB=2T=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1uk3xd-000773-BM
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 16:59:25 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id de729565-73af-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 18:59:23 +0200 (CEST)
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com (2603:10a6:102:ea::23)
 by AS8PR03MB7336.eurprd03.prod.outlook.com (2603:10a6:20b:2ec::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.16; Thu, 7 Aug
 2025 16:59:21 +0000
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f]) by PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f%6]) with mapi id 15.20.9009.013; Thu, 7 Aug 2025
 16:59: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>
X-Inumbo-ID: de729565-73af-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YyaKF9QaRa7MqtmUYgfjKKLs/ZZJujI7yOfLJw2wmxKIUINTrSUYPi0koxChrUAwq0cztICulF7sbJR00BJyzJGv2PfiFl92ycqvv5uiysMiFlJBZu3GEkSnxOV28unRmnqbqtVAWNoyXs0Z/BMkWfUEAcCv5gP+nZ716YL26safsEzFCPiTxClk/QY0J412nN9hbW1/Z8ESmts/1adpbt/ZuK9zPm7wqvjr/yTozkm6z1/RYMZ+thAvZ+UB+v0ttc1FpS6JuysBjQCqn3Ker18/VsDgV92TUusV5reg3Epr1go9lbPCbLyYV6pflB3yceXa7eR5IuPlpuxsEDNfvw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=68Lx4fYKL1tbLIfAe1PTz0kH1D8goLZ77LQnqJ/GQNI=;
 b=WRSDfGM+P0HL3VEDy4O+7YubluhxW64/+LEuxWSEt3ZMrxH62w41nVilQFDeP+JaQjUJ9RHlJPPfZ5YQjSRQpgT+X2tjcjKKYdPdmfHlMuS2caSY4hHDgnjTqBSTM2r8+cp5qghq2ywEDXzmqr3LpbQViP3F+osl4S1rT/42gGrPnxrf47hxhwVIL841mTuEapDu1go8OC3lj+3eQAzib3UW3t5pvW2IcH2u6kYmzA/B/mJLjD34ttNNOECiVvuDeoynp5sNX7gjG3F7woOhxoMjNNGQro3woD08l5KLDT5f7SwgFgSb8x2dYmsEpabw8GqFJcpQT1TZwP5IdZxOqg==
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=68Lx4fYKL1tbLIfAe1PTz0kH1D8goLZ77LQnqJ/GQNI=;
 b=HzFC/mSsMiCBiVsd8htYoPg8Z3kAkPDdrAEmZoBidWbrQKQV8GWP23LY3Sni7PWIcez9ULdwTL3rhzHKlQn2G6sw7hXQpo2JveTAl+d2JZlhDt40ofjQmxcCtQ8CVSQ53c0c02hRNbPp+PeiAJUuQ6eZa1nvXHCadWl45JYt/C1zb+ufMM9burz9k/NVLmNcPtlv7/vupMcBUgNlAv6tY5lwB7r9ktFZHMGlVkCSmk4lqrRfI/dFE53Uu+q70Cp8vxLmcRJoCdEnFbzqRzrfhJKCZqqP7C5Z7hsReo2ICMax/MGjUI5ZdQuOb3/7w1hH1kCVkIy1MlkcN2v/uGHYhA==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Nick Rosbrook <enr0n@ubuntu.com>, George Dunlap
	<gwd@xenproject.org>, Juergen Gross <jgross@suse.com>, Milan Djokic
	<milan_djokic@epam.com>
Subject: [PATCH 06/20] xen/domctl: Add XEN_DOMCTL_CONFIG_VIOMMU_* and viommu
 config param
Thread-Topic: [PATCH 06/20] xen/domctl: Add XEN_DOMCTL_CONFIG_VIOMMU_* and
 viommu config param
Thread-Index: AQHcB7yeWtqOMnUc4US5ATSpbJFzIQ==
Date: Thu, 7 Aug 2025 16:59:21 +0000
Message-ID:
 <76c461a4af7c824bc9a3d0958733ddb12ee724b7.1754580688.git.milan_djokic@epam.com>
References: <cover.1754580687.git.milan_djokic@epam.com>
In-Reply-To: <cover.1754580687.git.milan_djokic@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: PA4PR03MB7136:EE_|AS8PR03MB7336:EE_
x-ms-office365-filtering-correlation-id: 3e2796bb-0ade-4324-bcb6-08ddd5d3c146
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?QCA/y03v3my8S98zN6F7XKkqts3vaCMR0jsLzbX8CH3uD1LXIfDgIWm6uD?=
 =?iso-8859-1?Q?mp1En9GAs53Ay7VwFrtEP+4whznZSqkD2NFCmuZZlNacKJUbHyNfbZENZn?=
 =?iso-8859-1?Q?Kxy7L8A27qd99xGMIPHy9KDxnzJ05OW8KePnAEg6QoGFg1KqORFj+vexAu?=
 =?iso-8859-1?Q?liwSpGq34/CD8MfDqZzbUKsUO6pDCJoT6Hcug0j31Af+Lpp7N6Ahcqr4La?=
 =?iso-8859-1?Q?YoHh99P6wMKBZmqV1+GR8NoEXr8iLw+MHO9EB2MMB9FZBRFdN4zzyd8fW4?=
 =?iso-8859-1?Q?1LFQ1xRTikSU8ryHqYsYqdH4uwaDQ6FoZZ39g7Aoo5qrwpKwEBJctfLLF1?=
 =?iso-8859-1?Q?ok7B/Gm9vS+WW+YesjsmB7JG7ZeqnUqareItYLO5jeGzQNqF6R60C086ex?=
 =?iso-8859-1?Q?6eFeMFz/1P7wPxcMWftGJvi5HvxGguGRDVQNWeYFvXcmVaNGoVcfkALiLU?=
 =?iso-8859-1?Q?R8HxiS/vhgIuhprp1EW6vE9i7UG9jyMr/0h2ocuTdqVJh8A6YEPVzk0E4+?=
 =?iso-8859-1?Q?jhViY2A0p4O86yMB0VKdxLL063KTj0psWCjd5l0CTeBUAhBgcLJEjz7Jcb?=
 =?iso-8859-1?Q?etpFHPfFhH6iTvQSuSpYTdKePpaQHQUcsSytyM/WJ9xGiu6gFQFcRbc1Gu?=
 =?iso-8859-1?Q?Efh0mZCO58IAhzIMcXPlzDJ1dB8LRzck/7/JU43rds8QxqFubWZDFECckX?=
 =?iso-8859-1?Q?C31mZbzo5hDHXAFRFf4Q42Six4+wA/hLMhsK/5GvRDZ4hQX8h6yp4UIGdg?=
 =?iso-8859-1?Q?iPNk3+KCxSLKLzM3hzxMDtQjAhoyga41FVlhe3ns8HrnhfFrBvpR9mbMOC?=
 =?iso-8859-1?Q?Hbkslnbfvuk3hbAXg+hughdCaGdMeR+QusL5W4W7FpsxxBY33QYWaggZ7C?=
 =?iso-8859-1?Q?308+tq6J44Pf7TJ8otJcCcAtbB2PRugOeLUPXwD1CF2wuXWk3hZJ/miQxg?=
 =?iso-8859-1?Q?hc2tmdX8NV3ufovWiyqc9FqVVBXstpzeiQoJUdzWQpz7rHb/zPEwJSK6Lt?=
 =?iso-8859-1?Q?GAHlyfPOqcHy4zTJ9AIWgFqII1mHFkT40vzVlF2CS323Zh3EqwsxblBMcR?=
 =?iso-8859-1?Q?0K2iryrBliYgt9/8Ls9npwbNS/77Vq1nzvqYGYcwn/TX40CHyMLsUM9oio?=
 =?iso-8859-1?Q?qAbqDwudL8sAV+mmBxwhQ8zrsOwNVy/4JqcQONiSH08wzNZoKhA60ZHOPl?=
 =?iso-8859-1?Q?s0AxIajhedS7U6SC1swGEcQ5sv5U6gumOnWnQNle5PwuiadMLOtmMk5kCm?=
 =?iso-8859-1?Q?XkZIWlWnkhEMmqlDA49F5fL0j0BaeZGtYH7lh6uByD7CwE3qgEvCTtzXDy?=
 =?iso-8859-1?Q?IET0jGWWoRBGra9RbN+Z8htOyOuBptCBxlkh53NIeERHL0V3PR2wAkblhM?=
 =?iso-8859-1?Q?rNO76/lhvQfO/Jo/soM2FottNZwSuh1fex746WU7vCe1BRZaa8ykds1XSy?=
 =?iso-8859-1?Q?ZdTLXkQLWNzOSa/OUvuU4wU8cFLhnSoTeeLTGH+GQlsHBskLZoLS4Z1m6m?=
 =?iso-8859-1?Q?c2efFXfWy5VDb5jtR3HKS9qcL5E241B2ZRk4LL6n8iUQ=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR03MB7136.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?D1JxLFcwcj5o9FdhXPHc3DJc88eBi1fblIItGhQJOxzBM7h9bMeKrhjCkc?=
 =?iso-8859-1?Q?xzL4S8G9t/7WV12o4c0IHi9uMlMVN78OaTKMQ1LCMoCdFdv5kpg0lIlgPL?=
 =?iso-8859-1?Q?0x/WjeTsSFguhovO7DceQ0vW4tPyfwc26NuM5i0/kH+DWSOcKAPzBdao9I?=
 =?iso-8859-1?Q?CfrqP4JaqmtNXxEL3BkwSf+czBnN5VPQh5eetq6v/5EyxYS0x1Hp6IK1zx?=
 =?iso-8859-1?Q?VnRK4B3d+LV2HOU4zWzpL3lMUFTIdgSnk+eRSMQzegrEE5bT4XZJP3lkT0?=
 =?iso-8859-1?Q?rw2+SEa9DEN5PCd1sqBbZvMrQwCIzoyMj+drnQdMUHfgUtCGGJamERh0v3?=
 =?iso-8859-1?Q?vbk77xOOaDcJbsYmQD/z3urpCx2nESObinRcWY229VioxbvErw78pR6qhi?=
 =?iso-8859-1?Q?1cfv/nc/gSzEcoKreezOaY8KFPbkYmAKXY+vrcGEavHIPG1LgnfYf0rgwA?=
 =?iso-8859-1?Q?LeCbzekrG3arkkUoCV//nO6jSj07JxavqT6BiORdFkKqPRwrMXjej47fa3?=
 =?iso-8859-1?Q?87xoFauEfciFvLGPisaA83HAAwmONf5+f6FrCFbzsd6zTqTmJ6nM7P2JH4?=
 =?iso-8859-1?Q?ji+uX805vxHJQlPfVOk10kt0KRA5a6SKpG6G/KRwryJBcQE9ZT73yQn/JW?=
 =?iso-8859-1?Q?1ZkKA0RGKBLsZ00PwM/A0lAWqkJQoLLHFgJ+3SuKk8xv7JPuHfSf935/3i?=
 =?iso-8859-1?Q?tGAyR0ae3SgzBV1I93EWZ9GJm1aZrAltSbDANOTbMKeTh0uDNVI0VpiPL7?=
 =?iso-8859-1?Q?NoLW3oHZQPYwPJw9i5t5Y6/aPag2dig3LXCJmgcLJfrrcvtshunsLh2bc2?=
 =?iso-8859-1?Q?TaiVz8seGYQzdxZ4NPzIo4E/v+PPWkAoiL/s1GQVOOqt80Jw+N67pFu9dX?=
 =?iso-8859-1?Q?7YDUKOYHpqqQOwt8+nbJSgsMmrNdPXdQwczvIy3p2VFNco8Gib6vm+YdEQ?=
 =?iso-8859-1?Q?GQwNJkZLR7hScf+M/PUS+5xLvpzPRYaE+CRVxSU5ZGEOISRf1IrkJ8Wvdr?=
 =?iso-8859-1?Q?4/JO9S9U3QoekAolmaul2tmsyuVKyKM6FVjxThFZJic9CtroflrOj/72mV?=
 =?iso-8859-1?Q?9zIiy/Hi2OJT0uPKzwLUQt0ntCd8c5JJmF3rHpDSwI1QmR5PZe2h7qjIiI?=
 =?iso-8859-1?Q?954t4ze11JVrjyvGJEu+W1gr6tI+D9SFJzCoprvnXGy46exTAiD55mkZGR?=
 =?iso-8859-1?Q?YHObHO9qsu+F8/ri0DQAjy5C+ElDseDxQpm85wIdTydlCvQkjEFRvt0eoo?=
 =?iso-8859-1?Q?mUeCUCe0Sb4q+pTbTkPdbu/wmyAwHk2evl0lEyR7N49NW8SzVVdAN43Xh3?=
 =?iso-8859-1?Q?0KkSnQi8z2zHX3/9004TpAmghbZfQdIhFdBM1mwuEyjJBU6daiO4CDhL5h?=
 =?iso-8859-1?Q?aQYrluVL4AGZW5uVxaIiqnsivcJHKQsOaEk2ykdqnLZ5apVibth4yed9Xl?=
 =?iso-8859-1?Q?vJJ7jUGaLvbD6jmlA82KiKee5Jsh5YkSHeO/T3J2eXVRlTgJUFesZwrFMW?=
 =?iso-8859-1?Q?RzUKVKo44l/yC7T3VTDTci7+Xolwc0oMTbFxYBrrycl9u0NC9gR7rYUQj2?=
 =?iso-8859-1?Q?E9dyJX7XHYZRu5d1OP7ryIuNLC/157VE3ROq+WnT2LwvhyWwvVQpLYuvnC?=
 =?iso-8859-1?Q?qxxo8UjKmLO/vFqnQYEzqEfEAZE4ex5AUz?=
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: PA4PR03MB7136.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3e2796bb-0ade-4324-bcb6-08ddd5d3c146
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Aug 2025 16:59:21.3727
 (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: 2ORdUYyjCsDXmmxg+2nHqwmJgnmkYZipz8YThVl9ZpZiuI0lLf233zBtDllfNXkQhbvp0YlRcp0cxJvajzdzig==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7336

From: Rahul Singh <rahul.singh@arm.com>

Add new viommu_type field and field values XEN_DOMCTL_CONFIG_VIOMMU_NONE
XEN_DOMCTL_CONFIG_VIOMMU_SMMUV3 in xen_arch_domainconfig to
enable/disable vIOMMU support for domains.

Also add viommu=3D"N" parameter to xl domain configuration to enable the
vIOMMU for the domains. Currently, only the "smmuv3" type is supported
for ARM.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 docs/man/xl.cfg.5.pod.in             | 13 +++++++++++++
 tools/golang/xenlight/helpers.gen.go |  2 ++
 tools/golang/xenlight/types.gen.go   |  1 +
 tools/include/libxl.h                |  5 +++++
 tools/libs/light/libxl_arm.c         | 13 +++++++++++++
 tools/libs/light/libxl_types.idl     |  6 ++++++
 tools/xl/xl_parse.c                  | 10 ++++++++++
 7 files changed, 50 insertions(+)

diff --git a/docs/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.in
index f0c920b39d..25e9be073c 100644
--- a/docs/man/xl.cfg.5.pod.in
+++ b/docs/man/xl.cfg.5.pod.in
@@ -3125,6 +3125,19 @@ This option is only implemented for Arm where the de=
fault is enabled.
=20
 =3Dback
=20
+=3Dover 4
+
+=3Ditem B<viommu=3D"N">
+
+To enable viommu, user must specify the following option in the VM
+config file:
+
+viommu =3D "smmuv3"
+
+Currently, only the "smmuv3" type is supported for ARM.
+
+=3Dback
+
 =3Dhead3 x86
=20
 =3Dover 4
diff --git a/tools/golang/xenlight/helpers.gen.go b/tools/golang/xenlight/h=
elpers.gen.go
index 667030cbd7..23635afefe 100644
--- a/tools/golang/xenlight/helpers.gen.go
+++ b/tools/golang/xenlight/helpers.gen.go
@@ -1163,6 +1163,7 @@ x.ArchArm.GicVersion =3D GicVersion(xc.arch_arm.gic_v=
ersion)
 x.ArchArm.Vuart =3D VuartType(xc.arch_arm.vuart)
 x.ArchArm.SveVl =3D SveType(xc.arch_arm.sve_vl)
 x.ArchArm.NrSpis =3D uint32(xc.arch_arm.nr_spis)
+x.ArchArm.Viommu =3D ViommuType(xc.arch_arm.viommu)
 if err :=3D x.ArchX86.MsrRelaxed.fromC(&xc.arch_x86.msr_relaxed);err !=3D =
nil {
 return fmt.Errorf("converting field ArchX86.MsrRelaxed: %v", err)
 }
@@ -1699,6 +1700,7 @@ xc.arch_arm.gic_version =3D C.libxl_gic_version(x.Arc=
hArm.GicVersion)
 xc.arch_arm.vuart =3D C.libxl_vuart_type(x.ArchArm.Vuart)
 xc.arch_arm.sve_vl =3D C.libxl_sve_type(x.ArchArm.SveVl)
 xc.arch_arm.nr_spis =3D C.uint32_t(x.ArchArm.NrSpis)
+xc.arch_arm.viommu =3D C.libxl_viommu_type(x.ArchArm.Viommu)
 if err :=3D x.ArchX86.MsrRelaxed.toC(&xc.arch_x86.msr_relaxed); err !=3D n=
il {
 return fmt.Errorf("converting field ArchX86.MsrRelaxed: %v", err)
 }
diff --git a/tools/golang/xenlight/types.gen.go b/tools/golang/xenlight/typ=
es.gen.go
index e26b3cdfc7..23f5a300e0 100644
--- a/tools/golang/xenlight/types.gen.go
+++ b/tools/golang/xenlight/types.gen.go
@@ -599,6 +599,7 @@ GicVersion GicVersion
 Vuart VuartType
 SveVl SveType
 NrSpis uint32
+Viommu ViommuType
 }
 ArchX86 struct {
 MsrRelaxed Defbool
diff --git a/tools/include/libxl.h b/tools/include/libxl.h
index 185f74d8a8..f985426ae1 100644
--- a/tools/include/libxl.h
+++ b/tools/include/libxl.h
@@ -313,6 +313,11 @@
  */
 #define LIBXL_HAVE_BUILDINFO_ARCH_NR_SPIS 1
=20
+/*
+ * libxl_domain_build_info has the arch_arm.viommu_type field.
+ */
+#define LIBXL_HAVE_BUILDINFO_ARM_VIOMMU 1
+
 /*
  * LIBXL_HAVE_SOFT_RESET indicates that libxl supports performing
  * 'soft reset' for domains and there is 'soft_reset' shutdown reason
diff --git a/tools/libs/light/libxl_arm.c b/tools/libs/light/libxl_arm.c
index 4a19a8d22b..44b7bcd672 100644
--- a/tools/libs/light/libxl_arm.c
+++ b/tools/libs/light/libxl_arm.c
@@ -233,6 +233,19 @@ int libxl__arch_domain_prepare_config(libxl__gc *gc,
         config->arch.sve_vl =3D d_config->b_info.arch_arm.sve_vl / 128U;
     }
=20
+    switch (d_config->b_info.arch_arm.viommu_type) {
+    case LIBXL_VIOMMU_TYPE_NONE:
+        config->arch.viommu_type =3D XEN_DOMCTL_CONFIG_VIOMMU_NONE;
+        break;
+    case LIBXL_VIOMMU_TYPE_SMMUV3:
+        config->arch.viommu_type =3D XEN_DOMCTL_CONFIG_VIOMMU_SMMUV3;
+        break;
+    default:
+        LOG(ERROR, "Unknown vIOMMU type %d",
+            d_config->b_info.arch_arm.viommu_type);
+        return ERROR_FAIL;
+    }
+
     return 0;
 }
=20
diff --git a/tools/libs/light/libxl_types.idl b/tools/libs/light/libxl_type=
s.idl
index a6030a2dbd..0c8d2c7156 100644
--- a/tools/libs/light/libxl_types.idl
+++ b/tools/libs/light/libxl_types.idl
@@ -551,6 +551,11 @@ libxl_sve_type =3D Enumeration("sve_type", [
     (2048, "2048")
     ], init_val =3D "LIBXL_SVE_TYPE_DISABLED")
=20
+libxl_viommu_type =3D Enumeration("viommu_type", [
+    (0, "none"),
+    (1, "smmuv3")
+    ], init_val =3D "LIBXL_VIOMMU_TYPE_NONE")
+
 libxl_rdm_reserve =3D Struct("rdm_reserve", [
     ("strategy",    libxl_rdm_reserve_strategy),
     ("policy",      libxl_rdm_reserve_policy),
@@ -725,6 +730,7 @@ libxl_domain_build_info =3D Struct("domain_build_info",=
[
                                ("vuart", libxl_vuart_type),
                                ("sve_vl", libxl_sve_type),
                                ("nr_spis", uint32, {'init_val': 'LIBXL_NR_=
SPIS_DEFAULT'}),
+                               ("viommu_type", libxl_viommu_type),
                               ])),
     ("arch_x86", Struct(None, [("msr_relaxed", libxl_defbool),
                               ])),
diff --git a/tools/xl/xl_parse.c b/tools/xl/xl_parse.c
index 90c9386f5b..32236f7e5f 100644
--- a/tools/xl/xl_parse.c
+++ b/tools/xl/xl_parse.c
@@ -2989,6 +2989,16 @@ skip_usbdev:
     xlu_cfg_get_defbool(config, "trap_unmapped_accesses",
                         &b_info->trap_unmapped_accesses, 0);
=20
+
+    if (!xlu_cfg_get_string (config, "viommu", &buf, 1)) {
+        e =3D libxl_viommu_type_from_string(buf, &b_info->arch_arm.viommu_=
type);
+        if (e) {
+            fprintf(stderr,
+                    "Unknown vIOMMU type \"%s\" specified\n", buf);
+            exit(-ERROR_FAIL);
+        }
+    }
+
     parse_vkb_list(config, d_config);
=20
     d_config->virtios =3D NULL;
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 18:31:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 18:31:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073346.1436371 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk5P1-00020V-TQ; Thu, 07 Aug 2025 18:31:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073346.1436371; Thu, 07 Aug 2025 18:31: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 1uk5P1-0001yP-E1; Thu, 07 Aug 2025 18:31:47 +0000
Received: by outflank-mailman (input) for mailman id 1073346;
 Thu, 07 Aug 2025 16:59:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5oaB=2T=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1uk3xj-000773-Ir
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 16:59:31 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e228405c-73af-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 18:59:30 +0200 (CEST)
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com (2603:10a6:102:ea::23)
 by AS8PR03MB7336.eurprd03.prod.outlook.com (2603:10a6:20b:2ec::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.16; Thu, 7 Aug
 2025 16:59:25 +0000
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f]) by PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f%6]) with mapi id 15.20.9009.013; Thu, 7 Aug 2025
 16:59: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>
X-Inumbo-ID: e228405c-73af-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bwiiK0UZ9l9AYmpHENDXYNXghLJzjqFTTxlo44NojLCrJDreYzZvHaMePXbdcM6E+/e5MeuQLCY89w/2kyNtqNF3BXjsjAIxQuPFzxjm4YXeb9vk6m8bADaNAarTItrXiU9hkQlwZor0L67DBhIFpEsF8/wj8r6PcSq6hA0FBxxu5CciOISXnNhEajuGLiRnvfuef3b7LO1+20Y/xLiL4BcwersRj0ULC8NGr8gWJINHCZp6R8kWDaaSznwO4k1o/cIq6yQ/4g17NjXBz8UT9lceM3CtMnwx+FCqURca4zStUUmnF8rNSdxSM5Ek50Kqcv6fWdnQ6Tz5I9bTyk68RA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=VELNmVszE9BQTzKi1GRSdq0FFYAOcApUP1MBVb3E+KU=;
 b=wdfN7G3by9fa3QoYYfN9wyAjEtpkHUs0GkXM5J1+WSRpd/9HwOsZIjY2xJltLGIgDKhQMnTDcjcNhXNrr90fM2A+Erl6ItkRUclzMkoDwCSa7rkGJPMdI2jmcCa+u7gN6oX1Ofni8tuAUWueV9JoyzjJsAAAqdtJ5ZWxeD1h5VaY2hDJ9y4zjby/4Zt/6tcl54XB1/GeT0/dcvNgWLFVb4UQP2MUwad0EgeQ5L6oImHs5tyq/RJgynciBOIbb2j1wwkX4hMmJdvPIT6MzYOBDl5A9G+Yr0dbuGuJCpsgMGiQwCC+i1RW6OmKLcfklP/Qf1BG1mpmTYXizJSY3PBNpA==
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=VELNmVszE9BQTzKi1GRSdq0FFYAOcApUP1MBVb3E+KU=;
 b=sz7vp/uq9GxEo4PhfzQuZVkr4AIGDQxuLOniINfORp4MkxexT4DLaGCM/+N32oONrc33WFQF5ZGCIeNyyOoJQVSQwiE9PcFlegDjpikA5udeL8QGiQ1ncRsz3eSj+DRpXNMWE2QivBzCBSyF8O79gaJjgYCsZ+6/mFPwpFOaV+e3s6o/zt8o75a34vMa2iNf7609/n2EH/p2Amwm9Qtc+2Za/jlW+2Bwm/U9xK4ZyC9L/2mYO6FPYs0ri4dFDpxzyvTenf9xmwvA/80Epw2ny0EuGYriecZaIhdQzfJQ2zgQqr2CG2ZXO0BOGMHzL6QIpaVd4uWiUyy1yndt+Y8fDg==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: 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>, Milan Djokic <milan_djokic@epam.com>
Subject: [PATCH 10/20] xen/arm: vsmmuv3: Add support for command CMD_CFGI_STE
Thread-Topic: [PATCH 10/20] xen/arm: vsmmuv3: Add support for command
 CMD_CFGI_STE
Thread-Index: AQHcB7yhsDZE5DA1DUCoBRmJXjwGPQ==
Date: Thu, 7 Aug 2025 16:59:25 +0000
Message-ID:
 <ceceae0e4d996d44922977fefc88e56e58d4b9e8.1754580688.git.milan_djokic@epam.com>
References: <cover.1754580687.git.milan_djokic@epam.com>
In-Reply-To: <cover.1754580687.git.milan_djokic@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: PA4PR03MB7136:EE_|AS8PR03MB7336:EE_
x-ms-office365-filtering-correlation-id: 6804eb4a-da0a-4e1c-d7c3-08ddd5d3c38e
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?d4TW02nd0V9+cEWH5jvRUxgFilAUEiufhtI8A2HLZ79519S5hOKDnCqSLb?=
 =?iso-8859-1?Q?vXyQnijlgn7Kd7iYtYVyps8+2zCGksc4xbv9pHKKZ0nv385aRfunWkHFLo?=
 =?iso-8859-1?Q?SA4QaR/GEe2CMuB2Amb4HsyB3C2c39ckkl++64qj0olKK9Ou9erOwZSjn1?=
 =?iso-8859-1?Q?qk9nykgnitFf8ErzBNW0EgQr+optIbdtWgHPcTdMHQ9grzRRTNi3urokvq?=
 =?iso-8859-1?Q?h8RV8w8EyJ/hVcVBB9ofheFg9u1VNAY1X42znxudfQf4YJTpGG1/gHtYAN?=
 =?iso-8859-1?Q?Iy4CYldjREpqYTtjpNquO11gHY4FAQyIIlPB2bJMJtJIdfXev82d+NOeil?=
 =?iso-8859-1?Q?5K2yt5hn4GR0WPXhfURjjC86qxEcZ2OtVY4OTde41M52IscE15UckJ8dwz?=
 =?iso-8859-1?Q?gR5lite9Y6yZRxeqE0oE6BpgNBWQAVyr55trQ5Df68Hg4mArMlwDLIs10l?=
 =?iso-8859-1?Q?AxJK6/8EMR/Vx8ubmNjyPp72gC3ZIboCcffXKHUjDsexdqw/rDjayA7Adj?=
 =?iso-8859-1?Q?1jpP+BFVO5ILDTywrSlQUtAF3EcYIByXesxUo448lsxaswCILdnmNqBBx3?=
 =?iso-8859-1?Q?TsfHbueDbXM8MoEoiQh2cnhBE3FZxcQbQR2gNhJGVKgvV56UPktmp7f3NS?=
 =?iso-8859-1?Q?N2YK4xr1FfyVCFr+QlEz9UeGneYj88qkJkMm35Z/HuqkgVM2L7LCQxHbaI?=
 =?iso-8859-1?Q?TT+u7lheNJnqKbRWVkfxcy+vzjkiGkqPf1tzMSjbu+pi+eKe59Gmhua/w8?=
 =?iso-8859-1?Q?Uz8MNLiphWrIZGzWp1rohcZKV3j3/53d9Ceyd7RCSE1UJVEWUFsQSmEpLt?=
 =?iso-8859-1?Q?TADSUaIanyCHhZR5rk3a+ZkzGF71jKa2jkp/+eUCrla1V0pvf+mbRVCkA7?=
 =?iso-8859-1?Q?CoA+DeP9UY1utBEQ5lcDXtKd6t4kkgJC1WXy6eG/Xi3qK9Nyc7R9vKFks6?=
 =?iso-8859-1?Q?DXzCMmz6TTRS4oT/Zi0xO7A+rPKhedekRfm9Ofc+KpLpU9y89i8TJ7OT0y?=
 =?iso-8859-1?Q?f/CMa8Qxya5TkUMzhVP0Y/HiQuUO2cLvcVaifafgs1RXhyNV+iQuITQvoU?=
 =?iso-8859-1?Q?OmyIjWxNpnDCo8nbXig5ZcEXcZ3Sj62j3Ux2AYcBAcUpXTKYTI52Uo+IcF?=
 =?iso-8859-1?Q?SHx+h0Xrjyn5v2ffuTFOnUQbcNCa3bLZag8glvA/kAUMrSrRlomtwFVqUP?=
 =?iso-8859-1?Q?e/zKmYfHApuFoyMsmBUhDo7oWhGrAzs2BvtYEJ3vNzFVeVxUvW6Ysgmm7f?=
 =?iso-8859-1?Q?jL38LCybC06nkzMhzqWzMTlURRFbfSzija8t71FM3Wx/9sUsIhGCQj0oHF?=
 =?iso-8859-1?Q?AKAQnbmXffS3jAdFnfLMPCINAYyn6FqHYKlMip98AzS2ECTbp83yBsjJad?=
 =?iso-8859-1?Q?LcVuLJPjjcUdl9Mx3xM1uh9W7t7BnvVibaJ+uvHyhLzE1Tg0vyNnGt1PaG?=
 =?iso-8859-1?Q?6MZQZSK8Hu8aWsa4YvfFoNL5x+Tqoy7ybkKKAKhEHjgIzfTxPMiayNngR8?=
 =?iso-8859-1?Q?hVBfscjT+1TL9mx1H81Nxsdaw1TS3QxJuMGoQphFezKA=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR03MB7136.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?lV/fZtTz5sfuRM5zl8rzzpHu1wCAMQdT0GTn6rrFHMyGNtsYEbgTlTQ3Mg?=
 =?iso-8859-1?Q?/mQZy+MnE42rKmIGHsk2yFX6g/dcbqnWRWN7CuGq+WWPzozjMFpIwT584c?=
 =?iso-8859-1?Q?7pEBsZuYTsvx1mNgKsbbO0/nvrOTjigDXXqmB6Bu7IK4SJbWKzRYx31Ys+?=
 =?iso-8859-1?Q?ZCZdH3Y0ujO1GzPuA0uavMC62BS6tcDnvEsCJ7+QkzJ+Ez1XRAxlPKnd7J?=
 =?iso-8859-1?Q?HdsuQ64RzxfRUGkfUV13JVFHyY2F9u/PeIC+4TBg9rrgTdK3qiAKWHMk+c?=
 =?iso-8859-1?Q?G3hjDdzKrGi5QwkaB5awzsVcTo1VoW8yDqHjv2vNh3f1CBE2cdsONiHuum?=
 =?iso-8859-1?Q?ZcohnyT3Z2hwwfc9f8MfJAIJl9r3vJUC8VbYivFQXs0HGSivR8osagJ2Q6?=
 =?iso-8859-1?Q?YRhrIDI79lKjpD7A74EAsk+A2/mX94Pu3GgRlKk2vPL/n0OopSLEY4oefl?=
 =?iso-8859-1?Q?9hYSb/5fOSt9l4Biykqtmx3b7Uik+ymFUFlry/WeRrjcfFLBHDq9gCE+gX?=
 =?iso-8859-1?Q?L7+syq2PSLC8Lgs5DyLxvU2650o35tJIpOSitjMbk+nN8N3J/SzInxu13+?=
 =?iso-8859-1?Q?qFVwQaLP4UlVKcOpS71NLXEKZDK62Rrzj4SrbP+t3KAv1/RjN/FHqDjP8Q?=
 =?iso-8859-1?Q?tizXiHgQO0412Lj2uzUwpbCyKjngTOH5MgJ7EGxQd/QsSM9OHP6erNJy6o?=
 =?iso-8859-1?Q?a4rLHNdoGmbOyYIK37gC/W9LmNoTFkjlX+a1rx4rhqSq/GUb2aOkVm03Ej?=
 =?iso-8859-1?Q?qGYo0QPTs26u0ErIHAA+/jwTf6PuU/lsswDL9bgtmZ3v7D2CFMG/i5bIQ4?=
 =?iso-8859-1?Q?xSF0Dev3xmVKI8Yv5ACoXzoUvVNK0trM1OViTarUUNguj6uevxlQRuyTul?=
 =?iso-8859-1?Q?S2qPaSCdOpAUlRcaYQmbmuA7NYHcKoiRLWVAmzz+sprfLfaiD1icgnpGdg?=
 =?iso-8859-1?Q?4bqrUz62z0ymBH8QikfZqE6Q//84y6halGNHpcG9VdaikN1to7xON7rPJN?=
 =?iso-8859-1?Q?zT1E66toSVqPwixsVMygETjNzj+QG6pz1MnXzhr3RdVrsT3HOPhMpdrdcY?=
 =?iso-8859-1?Q?v0mn0z8C3dpLc8EAaQrGxn0FaaC9O+dISgsdP3bvyHhe11zI+rO7ZeNDxs?=
 =?iso-8859-1?Q?QWTYAKvszqD5liaZ5KM48qk653h6UEk49+cYphKPQ5GHsEQFgaB3wunLGe?=
 =?iso-8859-1?Q?2cSdOo24J8eRcpF3Cpoz2ZiKZHIrxkQySPW5aRujOUwzDCPb7dqpprBN3y?=
 =?iso-8859-1?Q?UgrFSsfj0wRXWykh7KpljiQ5badAEPkMg7qRZOpaZfmnUr1fTHKthEcutp?=
 =?iso-8859-1?Q?t4JJKXfNRn1Mk9NB0RDef/anLleYymedzMxB7DrShAcSD3V3vxiN/K2OWn?=
 =?iso-8859-1?Q?5D2vJcmZPCAEOKoEe5B1xZxCPRkDOL6dWcYH0s6uIIqSvR7BZNJXzj1hoR?=
 =?iso-8859-1?Q?vJ9wSLP2Zuq734BB2cAUKYZsy8+52UolUJTbaYWSk50AcJUqjv6sW2h+ug?=
 =?iso-8859-1?Q?NrDXqlW+JCkXr/FPEannbDfE68mJWQ2oXrCgohlaFOqhu/sE2S3O59IG1/?=
 =?iso-8859-1?Q?yY5Wz5TW+/WX3BiRtj0HFS3yodsvL5kVxuGhHq1gduR8PlJ5T7smwx2wP0?=
 =?iso-8859-1?Q?c/3hIc7XDZ2Ttb396YPHPpJhMsu6BQrUOmxeKR4lrezuLD7UosIFvrUw?=
 =?iso-8859-1?Q?=3D=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: PA4PR03MB7136.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6804eb4a-da0a-4e1c-d7c3-08ddd5d3c38e
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Aug 2025 16:59:25.1712
 (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: 7EMqOcWNGynaw6EUwGDpDoaKf95ykeT45Z8tk6aEI4O1w5WUcDsdw1JZBalMJ8u301cPxrn9vUbbWhgOeEw5hw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7336

From: Rahul Singh <rahul.singh@arm.com>

CMD_CFGI_STE is used to invalidate/validate the STE. Emulated vSMMUv3
driver in XEN will read the STE from the guest memory space and capture
the Stage-1 configuration required to support nested translation.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/drivers/passthrough/arm/vsmmu-v3.c | 148 +++++++++++++++++++++++++
 1 file changed, 148 insertions(+)

diff --git a/xen/drivers/passthrough/arm/vsmmu-v3.c b/xen/drivers/passthrou=
gh/arm/vsmmu-v3.c
index 84bd1f7327..3ecbe4861b 100644
--- a/xen/drivers/passthrough/arm/vsmmu-v3.c
+++ b/xen/drivers/passthrough/arm/vsmmu-v3.c
@@ -45,6 +45,21 @@ extern const struct viommu_desc __read_mostly *cur_viomm=
u;
 /* Helper Macros */
 #define smmu_get_cmdq_enabled(x)    FIELD_GET(CR0_CMDQEN, x)
 #define smmu_cmd_get_command(x)     FIELD_GET(CMDQ_0_OP, x)
+#define smmu_cmd_get_sid(x)         FIELD_GET(CMDQ_PREFETCH_0_SID, x)
+#define smmu_get_ste_s1cdmax(x)     FIELD_GET(STRTAB_STE_0_S1CDMAX, x)
+#define smmu_get_ste_s1fmt(x)       FIELD_GET(STRTAB_STE_0_S1FMT, x)
+#define smmu_get_ste_s1stalld(x)    FIELD_GET(STRTAB_STE_1_S1STALLD, x)
+#define smmu_get_ste_s1ctxptr(x)    FIELD_PREP(STRTAB_STE_0_S1CTXPTR_MASK,=
 \
+                                    FIELD_GET(STRTAB_STE_0_S1CTXPTR_MASK, =
x))
+
+/* stage-1 translation configuration */
+struct arm_vsmmu_s1_trans_cfg {
+    paddr_t s1ctxptr;
+    uint8_t s1fmt;
+    uint8_t s1cdmax;
+    bool    bypassed;             /* translation is bypassed */
+    bool    aborted;              /* translation is aborted */
+};
=20
 /* virtual smmu queue */
 struct arm_vsmmu_queue {
@@ -91,6 +106,138 @@ static void dump_smmu_command(uint64_t *command)
     gdprintk(XENLOG_ERR, "cmd 0x%02llx: %016lx %016lx\n",
              smmu_cmd_get_command(command[0]), command[0], command[1]);
 }
+static int arm_vsmmu_find_ste(struct virt_smmu *smmu, uint32_t sid,
+                              uint64_t *ste)
+{
+    paddr_t addr, strtab_base;
+    struct domain *d =3D smmu->d;
+    uint32_t log2size;
+    int strtab_size_shift;
+    int ret;
+
+    log2size =3D FIELD_GET(STRTAB_BASE_CFG_LOG2SIZE, smmu->strtab_base_cfg=
);
+
+    if ( sid >=3D (1 << MIN(log2size, SMMU_IDR1_SIDSIZE)) )
+        return -EINVAL;
+
+    if ( smmu->features & STRTAB_BASE_CFG_FMT_2LVL )
+    {
+        int idx, max_l2_ste, span;
+        paddr_t l1ptr, l2ptr;
+        uint64_t l1std;
+
+        strtab_size_shift =3D MAX(5, (int)log2size - smmu->sid_split - 1 +=
 3);
+        strtab_base =3D smmu->strtab_base & STRTAB_BASE_ADDR_MASK &
+                        ~GENMASK_ULL(strtab_size_shift, 0);
+        idx =3D (sid >> STRTAB_SPLIT) * STRTAB_L1_DESC_DWORDS;
+        l1ptr =3D (paddr_t)(strtab_base + idx * sizeof(l1std));
+
+        ret =3D access_guest_memory_by_ipa(d, l1ptr, &l1std,
+                                         sizeof(l1std), false);
+        if ( ret )
+        {
+            gdprintk(XENLOG_ERR,
+                     "Could not read L1PTR at 0X%"PRIx64"\n", l1ptr);
+            return ret;
+        }
+
+        span =3D FIELD_GET(STRTAB_L1_DESC_SPAN, l1std);
+        if ( !span )
+        {
+            gdprintk(XENLOG_ERR, "Bad StreamID span\n");
+            return -EINVAL;
+        }
+
+        max_l2_ste =3D (1 << span) - 1;
+        l2ptr =3D FIELD_PREP(STRTAB_L1_DESC_L2PTR_MASK,
+                    FIELD_GET(STRTAB_L1_DESC_L2PTR_MASK, l1std));
+        idx =3D sid & ((1 << smmu->sid_split) - 1);
+        if ( idx > max_l2_ste )
+        {
+            gdprintk(XENLOG_ERR, "idx=3D%d > max_l2_ste=3D%d\n",
+                     idx, max_l2_ste);
+            return -EINVAL;
+        }
+        addr =3D l2ptr + idx * sizeof(*ste) * STRTAB_STE_DWORDS;
+    }
+    else
+    {
+        strtab_size_shift =3D log2size + 5;
+        strtab_base =3D smmu->strtab_base & STRTAB_BASE_ADDR_MASK &
+                      ~GENMASK_ULL(strtab_size_shift, 0);
+        addr =3D strtab_base + sid * sizeof(*ste) * STRTAB_STE_DWORDS;
+    }
+    ret =3D access_guest_memory_by_ipa(d, addr, ste, sizeof(*ste), false);
+    if ( ret )
+    {
+        gdprintk(XENLOG_ERR,
+                "Cannot fetch pte at address=3D0x%"PRIx64"\n", addr);
+        return -EINVAL;
+    }
+
+    return 0;
+}
+
+static int arm_vsmmu_decode_ste(struct virt_smmu *smmu, uint32_t sid,
+                                struct arm_vsmmu_s1_trans_cfg *cfg,
+                                uint64_t *ste)
+{
+    uint64_t val =3D ste[0];
+
+    if ( !(val & STRTAB_STE_0_V) )
+        return -EAGAIN;
+
+    switch ( FIELD_GET(STRTAB_STE_0_CFG, val) )
+    {
+    case STRTAB_STE_0_CFG_BYPASS:
+        cfg->bypassed =3D true;
+        return 0;
+    case STRTAB_STE_0_CFG_ABORT:
+        cfg->aborted =3D true;
+        return 0;
+    case STRTAB_STE_0_CFG_S1_TRANS:
+        break;
+    case STRTAB_STE_0_CFG_S2_TRANS:
+        gdprintk(XENLOG_ERR, "vSMMUv3 does not support stage 2 yet\n");
+        goto bad_ste;
+    default:
+        BUG(); /* STE corruption */
+    }
+
+    cfg->s1ctxptr =3D smmu_get_ste_s1ctxptr(val);
+    cfg->s1fmt =3D smmu_get_ste_s1fmt(val);
+    cfg->s1cdmax =3D smmu_get_ste_s1cdmax(val);
+    if ( cfg->s1cdmax !=3D 0 )
+    {
+        gdprintk(XENLOG_ERR,
+                 "vSMMUv3 does not support multiple context descriptors\n"=
);
+        goto bad_ste;
+    }
+
+    return 0;
+
+bad_ste:
+    return -EINVAL;
+}
+
+static int arm_vsmmu_handle_cfgi_ste(struct virt_smmu *smmu, uint64_t *cmd=
ptr)
+{
+    int ret;
+    uint64_t ste[STRTAB_STE_DWORDS];
+    struct arm_vsmmu_s1_trans_cfg s1_cfg =3D {0};
+    uint32_t sid =3D smmu_cmd_get_sid(cmdptr[0]);
+
+    ret =3D arm_vsmmu_find_ste(smmu, sid, ste);
+    if ( ret )
+        return ret;
+
+    ret =3D arm_vsmmu_decode_ste(smmu, sid, &s1_cfg, ste);
+    if ( ret )
+        return (ret =3D=3D -EAGAIN ) ? 0 : ret;
+
+    return 0;
+}
+
 static int arm_vsmmu_handle_cmds(struct virt_smmu *smmu)
 {
     struct arm_vsmmu_queue *q =3D &smmu->cmdq;
@@ -114,6 +261,7 @@ static int arm_vsmmu_handle_cmds(struct virt_smmu *smmu=
)
         switch ( smmu_cmd_get_command(command[0]) )
         {
         case CMDQ_OP_CFGI_STE:
+            ret =3D arm_vsmmu_handle_cfgi_ste(smmu, command);
             break;
         case CMDQ_OP_PREFETCH_CFG:
         case CMDQ_OP_CFGI_CD:
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 18:31:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 18:31:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073349.1436391 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk5P3-0002Tj-Is; Thu, 07 Aug 2025 18:31:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073349.1436391; Thu, 07 Aug 2025 18:31:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk5P2-0002RO-SJ; Thu, 07 Aug 2025 18:31:48 +0000
Received: by outflank-mailman (input) for mailman id 1073349;
 Thu, 07 Aug 2025 16:59:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5oaB=2T=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1uk3xm-00076W-2t
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 16:59:34 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e40cd520-73af-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 18:59:33 +0200 (CEST)
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com (2603:10a6:102:ea::23)
 by AS8PR03MB7336.eurprd03.prod.outlook.com (2603:10a6:20b:2ec::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.16; Thu, 7 Aug
 2025 16:59:27 +0000
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f]) by PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f%6]) with mapi id 15.20.9009.013; Thu, 7 Aug 2025
 16:59: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>
X-Inumbo-ID: e40cd520-73af-11f0-a324-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=n3wGOBocLUc0jh22l40lhfG64O4w3l8ZNMZ86q+QwqZfOmiSv5oNFndsNkpTaOopquM0UGT7Hlcl3bVsurckYag/qWze5y+Sg1IDjRmBZE/XIlLAitx8CZacUby3Om6quPwym8daI+C6Ez7CCI78OWrPgZENN4oF8J2Wpd4AucS1EaFIxj9q8+YGfuwsJt48KlXLiDvAFKzoCnoVyX78BWfjhY/WMsL+qYVPJV+VlOC83iv7GFgw+Fyvb6rxwFa8epHtR7WdRu2R+2vJCEdMtmCKFgvkTjqFACoJWd4B2KuLZ8zR0btCLlp9gU0OQ4Ho754bF8aQ32Pl5dmu4nu+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=9/gacka5WP3MqeEz6IZtMxNW7sie3Uk4dQVfMgpBOEY=;
 b=Jz/37zBwNp5z/Vr22nNOvY264IP25SyArL3CGZ5NE4trQEj0gmoa8q6Nd6aeB7utuisYj7+h7xSUUlcCSFGLrFEK1vcTFwyuMrDuTYwH5arsLf4csG6DYz1TMv7xk+GXljvFb+PrKiqF9nl1WdGjs5PJknHxy5nyPTUJUbcgHvalCSFBsiFHh6lVIFzkDxDYZO2ZjvgC+yKwpG1TIFssKkYcu1zLlT3iaeIoxeiwneXsBB/SxOh8Z9bo89MvDNYS//bIb1LX4lMeYrF1GG9d0k8UXYb6RGgaRMUPRkQ6JGP6tr1VJJCgpUn171llN5lITxuAi+KovuAQdyIeTGtuHA==
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=9/gacka5WP3MqeEz6IZtMxNW7sie3Uk4dQVfMgpBOEY=;
 b=kDTDClQyu/U2QalD01181yrPJtrY3JVo1pt39y77EYjr7WiqQWMqdM/2lkM0Fh0nEmv6ndpFPkk3cBMily/Ly/MPK6H42t37A20yccLhqop29/OpTgZTi/BmDSUYwoqDk9LOruTh+15U0aWGo1fEG8CcrsUyQnnw5dzsypY93tgHQ8ONK/Yp87aXTlx5J9+9AsV6KKec7Muzjybnf2zsp/IMPgk9wIxBaY+yCdX/BEzsBgJqYHwMSOLTNR7M94Z31bKmvBkaCe0vWSpuw+YyeqlJ3HX/KtcPUGERh+I1pP3f/AsDK4FbEueFfCP0VgxP2jdTX0UdTW5XJqX//5Jr5Q==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: 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>, Milan Djokic <milan_djokic@epam.com>
Subject: [PATCH 12/20] xen/arm: vsmmuv3: Add support for event queue and
 global error
Thread-Topic: [PATCH 12/20] xen/arm: vsmmuv3: Add support for event queue and
 global error
Thread-Index: AQHcB7yi7AssCwTYaUG/iDk08I6dEw==
Date: Thu, 7 Aug 2025 16:59:27 +0000
Message-ID:
 <c3328f9245e6d928412ddefbce61b86b1176b5a6.1754580688.git.milan_djokic@epam.com>
References: <cover.1754580687.git.milan_djokic@epam.com>
In-Reply-To: <cover.1754580687.git.milan_djokic@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: PA4PR03MB7136:EE_|AS8PR03MB7336:EE_
x-ms-office365-filtering-correlation-id: b1438cd1-490e-4317-20fc-08ddd5d3c4f2
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?sB9i6tNRNSbKJIUi30JQywHae/uQhrH+iJqg5KH00mrwC8F/Is4uO56llR?=
 =?iso-8859-1?Q?tYWfu6PXaOsaJZoyeKCE/d0PK/+bRsi8NqI49cBMPUX7MaLNUfT4WnRuEB?=
 =?iso-8859-1?Q?1FX6YB6DjhEs2eNGmKLBxlBE4kzrayMhm5POshmmItYxM85o3YltPs0PS0?=
 =?iso-8859-1?Q?GMQux0l1ev64jW/riWmWJ7UPZdr43ZSd+eF4QCoBSH6Cpz4XZ92m7V4Dfe?=
 =?iso-8859-1?Q?lFPtSObR3I3G8Gzk/x6QnHcZ4cY+Rtr+vLpBntQ3apJw7tfWlHYagtpWUd?=
 =?iso-8859-1?Q?2mhJSFoigpli6Nyf+Io/hBHOv3+6hETFpUIkxcbhlZeGngiRmYRFPT2/sn?=
 =?iso-8859-1?Q?3MZ5W0kKzwIF9NcJQXit+T+e4KDT5nu4UQmPya9DIR4I8ZryylZD9jGOBx?=
 =?iso-8859-1?Q?hS0LFZqi4Er32/hiBHwpqCRiMOkRn/5WXodUoaDteT+8JQue93vfwXc8HL?=
 =?iso-8859-1?Q?DZNjsuVXzWzGYhQpNbalMSBpIy47VOWnC4wZ1uS3Pm/NPUqraM+8KPEhsY?=
 =?iso-8859-1?Q?9BNXU6UDypfc2ZvlU9Q0wChJIF/KTRZxYKWuiONbssuHvILd0yFGfJckAz?=
 =?iso-8859-1?Q?XwicuQ1w99XFnWOuiOC/ojXnDL7bwGaKgFAZyc8pmTQpjZhRIDI6S0sfuj?=
 =?iso-8859-1?Q?aDtwym+f1/nl56X6n0aeQs902lBecA+o7hgRYAE2gMEazlvDhSL2sec5Mi?=
 =?iso-8859-1?Q?h4nrP296GbtssMm12vUnC99gHufSierQc1sUgXCerQ2f+T34Mi1fFfhnqx?=
 =?iso-8859-1?Q?GkpRyDxqE249NGUq8yDW/08DAJjAsO601/I/y0HKhBLX9U2CxeCmP4TbQP?=
 =?iso-8859-1?Q?REO3GUCgnT1gyD2L/jM9ltyT3LDVX7mtIVkoK9f2JIvYXI98E0ITJfww/x?=
 =?iso-8859-1?Q?3G7KYuroR/RwzGFKSqPo6Lz1JWA5cHgONNppHFX8ccSn9P3zJNcbwtUeu3?=
 =?iso-8859-1?Q?7LsUJt/GxTHOHtOQ7dW6PE6Wpv+eOdRXXve9KF2pS3K89m4SwIT67kCCVf?=
 =?iso-8859-1?Q?pMEvUDQOIPv4LFtMv5GBULfUYy31oseEDpFVAnW4yldgaR9WigdO26lVBx?=
 =?iso-8859-1?Q?+NnJCWmu52D5OAUQTLscqTERJN5nwqfoFvdwPpKxv5i9fxgLa17o+kHsqj?=
 =?iso-8859-1?Q?SxM2XMthPXT3TXpWCn4ix6Nnyx6ZdAHYmNNzWfhXN/GRlgC2Qjr0H/RoN0?=
 =?iso-8859-1?Q?MlMsKVeUBHdfl1xkk2B72zFWSCRX8JX8KB59QrS0MK6tMilt+HU3d7BtbR?=
 =?iso-8859-1?Q?77s5s6S00LxxHAEnrLW9z8TKi6d1A7MNidiPzsTX36aPSzbVofFmH1oySN?=
 =?iso-8859-1?Q?VFcWRNikZW/+SdrJ/jZXYHPCGltQizxeqg2mbdgiJa72AmIwm7o3rC0NgP?=
 =?iso-8859-1?Q?o9h/AUdm3CBWlii7mFnqtxxbXGehCxv+MtCJFlvObxSl5UdKCUX1zrfSR5?=
 =?iso-8859-1?Q?Z8RXkBFAWZN4PM2xOCKEldT6Tt8rahvskrNjDUAq6NByq93P0kIGh0z8ie?=
 =?iso-8859-1?Q?B6aqqtTkS/KaD5WxnZbfu6FJXdZ7n8BiRq7izVQlFWcA=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR03MB7136.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?4o1euG+ESNVW9Y8tStXAJ1hKNLJRja4pq70t9s9J867d/bB1Je9ZSRhw/4?=
 =?iso-8859-1?Q?DxdCwzvSrERFkkulFfGZvGLjCmH+l07uBgHv9GJlfZstadxY56TeYGvfku?=
 =?iso-8859-1?Q?MqCgiuEr2c5oYWNjZ6OyWpozxdJahVMeJMcg/n0BNCCS/2HbbJvfLDr8R8?=
 =?iso-8859-1?Q?ivyPT3TSnecvzVvgzDEVDrmiIsYYAK0Nnrqq4rp8Ut15M8AVfZRktnFo3p?=
 =?iso-8859-1?Q?YMsSITsYhrQDJ9zCW88183hiskoxsQPmMCUMB3hNFvzcFUHlgubkQREIFf?=
 =?iso-8859-1?Q?i2jBlkDdt6FVEIikjC32r0crRzBwBbTPLHlkw2SImsMz1u0pkL+IGo89o2?=
 =?iso-8859-1?Q?DbWuX293dJG9zD7Ffc8QkNkFD2uiP7leqSmhMtf06buyc4O1AtRqQkPaZW?=
 =?iso-8859-1?Q?OB4f59yV2LCr6j++ZWOfuQQ2+NTHwWS7JwpuQW0N5Km/SUbaxwt1fnuTPA?=
 =?iso-8859-1?Q?SyemzKj0vFUhR+VwoainvoRt4P4n4kLkF2c4AahJdk5eQnTWZhSaYtgrkP?=
 =?iso-8859-1?Q?vWFwxjAE6xIhUGGFzD1qDvfcUwBduycBqxeeb0GEzDjnUcTYJqFhhPKvSM?=
 =?iso-8859-1?Q?rfWxUz+FQHgY26KLacmdQlieXDpWGRBJpJrMoei7NC2lvDJgc7/aXJE6rE?=
 =?iso-8859-1?Q?8+pIYuYDHp9Xa2VWtEBv2HxCvcMxbxmY2NjPzrDQpHOGpjB0lwAX3Ms7WC?=
 =?iso-8859-1?Q?GPu1tjOkxMMOwqIaXng8hDy1iUEUe7DdAQFhcLrAjX7fvBioXHB1wQW0sR?=
 =?iso-8859-1?Q?aZpNMfRb2jq9drKUPWkmB1+1EPrVXKmgCHn8XvAtMli1hPWqBAeibkDpCU?=
 =?iso-8859-1?Q?w6HRSWmDZbIX8tmGk2/hjjaXujY7Vjzk5CKz5iBnDy13b9F5OBp2jerQgM?=
 =?iso-8859-1?Q?MMKcMufATGTz4K9Un50mImt0+KRKIoYB+s3Fi9WYUR+WFQ8dskx7xpXwBg?=
 =?iso-8859-1?Q?820LSocvWQgwKuxgeIF1B/kimg6fSDKJnbHX9ww3xojFAZ7GYdHQkxyQ5B?=
 =?iso-8859-1?Q?sTJETJW+6bMSU/hpfo9LiDB9dl8kYVH7qIfJDAtnq9yrRPNxUYiWBcTYGe?=
 =?iso-8859-1?Q?0HXSfNRYWnuJ5a/9ZfZTRNtBP1TBrfgObmpl2h29nrNtsY1k3wJmSyEgtE?=
 =?iso-8859-1?Q?xUGkiaa47stBtpu2PUAXhOX/+skt5TGDivU2qFgZouKyz5QKVokP+urFfc?=
 =?iso-8859-1?Q?xL1vvf4fTusqHhWwplP6hL4GLIkJpuShPJcX5YDL3rr2d4VW6G4Sdlai/x?=
 =?iso-8859-1?Q?/dLOzoKJlOILYYS2k0U98izSnHqxBb7uWhPLzqRGm66xADunSJ/Ew4NoBu?=
 =?iso-8859-1?Q?SBsqtTWLsqiWArmgoN61F0Nt+tXm6PtnqpnqrIQ+WCM/maoucZ/DNDLqOS?=
 =?iso-8859-1?Q?yG2HxTmBflJRJXdwykwvWFxPCambrTT+fLiSxSt6K3LHKfsUFoy1zzT2wX?=
 =?iso-8859-1?Q?9Bj5Mdzhy9xobcPyCGb87or5+09ZVzzgPnnxAO8IvvNcRiXfd3XCQiDKYu?=
 =?iso-8859-1?Q?+q9pWOzI4DohozswMv0R1MItHvUZvL0qyeTve91tmpdDhspLrZDEeaFsj8?=
 =?iso-8859-1?Q?GWL4s1cZyP7XHunzIQKTw8T6NMPepYBVQdh3PSs8p1D+BSo2qFCgin1uCN?=
 =?iso-8859-1?Q?V90smjJ388/+YsgFpzHobrNJL74HaN1s9JD4rZ08jsJycT1fCGqkw7wQ?=
 =?iso-8859-1?Q?=3D=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: PA4PR03MB7136.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b1438cd1-490e-4317-20fc-08ddd5d3c4f2
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Aug 2025 16:59:27.5265
 (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: 0+70L6W+xs4zd0dzWlWrNdtvFUx4lrFc2kZ8jMI2RQE0MMywET6rIAzHdgArD8QvWlexJvLOCD8LO9Mqzw8lkw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7336

From: Rahul Singh <rahul.singh@arm.com>

Event queue is used to send the events to guest when there is an events/
faults. Add support for event queue to send events to guest.

Global error in SMMUv3 hw will be updated in smmu_gerror and
smmu_gerrorn register. Add support for global error registers to send
global error to guest.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/drivers/passthrough/arm/smmu-v3.h  |  20 +++
 xen/drivers/passthrough/arm/vsmmu-v3.c | 169 ++++++++++++++++++++++++-
 xen/include/public/arch-arm.h          |   5 +-
 3 files changed, 186 insertions(+), 8 deletions(-)

diff --git a/xen/drivers/passthrough/arm/smmu-v3.h b/xen/drivers/passthroug=
h/arm/smmu-v3.h
index 3e3a6cd080..820271a413 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.h
+++ b/xen/drivers/passthrough/arm/smmu-v3.h
@@ -354,6 +354,26 @@
=20
 #define EVTQ_0_ID			GENMASK_ULL(7, 0)
=20
+#define EVT_ID_BAD_STREAMID		0x02
+#define EVT_ID_BAD_STE		    	0x04
+#define EVT_ID_TRANSLATION_FAULT	0x10
+#define EVT_ID_ADDR_SIZE_FAULT		0x11
+#define EVT_ID_ACCESS_FAULT		0x12
+#define EVT_ID_PERMISSION_FAULT		0x13
+
+#define EVTQ_0_SSV			(1UL << 11)
+#define EVTQ_0_SSID			GENMASK_ULL(31, 12)
+#define EVTQ_0_SID			GENMASK_ULL(63, 32)
+#define EVTQ_1_STAG			GENMASK_ULL(15, 0)
+#define EVTQ_1_STALL			(1UL << 31)
+#define EVTQ_1_PnU			(1UL << 33)
+#define EVTQ_1_InD			(1UL << 34)
+#define EVTQ_1_RnW			(1UL << 35)
+#define EVTQ_1_S2			(1UL << 39)
+#define EVTQ_1_CLASS			GENMASK_ULL(41, 40)
+#define EVTQ_1_TT_READ			(1UL << 44)
+#define EVTQ_2_ADDR			GENMASK_ULL(63, 0)
+#define EVTQ_3_IPA			GENMASK_ULL(51, 12)
 /* PRI queue */
 #define PRIQ_ENT_SZ_SHIFT		4
 #define PRIQ_ENT_DWORDS			((1 << PRIQ_ENT_SZ_SHIFT) >> 3)
diff --git a/xen/drivers/passthrough/arm/vsmmu-v3.c b/xen/drivers/passthrou=
gh/arm/vsmmu-v3.c
index 3b073b9dac..7a6c18df53 100644
--- a/xen/drivers/passthrough/arm/vsmmu-v3.c
+++ b/xen/drivers/passthrough/arm/vsmmu-v3.c
@@ -44,6 +44,7 @@ extern const struct viommu_desc __read_mostly *cur_viommu=
;
=20
 /* Helper Macros */
 #define smmu_get_cmdq_enabled(x)    FIELD_GET(CR0_CMDQEN, x)
+#define smmu_get_evtq_enabled(x)    FIELD_GET(CR0_EVTQEN, x)
 #define smmu_cmd_get_command(x)     FIELD_GET(CMDQ_0_OP, x)
 #define smmu_cmd_get_sid(x)         FIELD_GET(CMDQ_PREFETCH_0_SID, x)
 #define smmu_get_ste_s1cdmax(x)     FIELD_GET(STRTAB_STE_0_S1CDMAX, x)
@@ -52,6 +53,35 @@ extern const struct viommu_desc __read_mostly *cur_viomm=
u;
 #define smmu_get_ste_s1ctxptr(x)    FIELD_PREP(STRTAB_STE_0_S1CTXPTR_MASK,=
 \
                                     FIELD_GET(STRTAB_STE_0_S1CTXPTR_MASK, =
x))
=20
+/* event queue entry */
+struct arm_smmu_evtq_ent {
+    /* Common fields */
+    uint8_t     opcode;
+    uint32_t    sid;
+
+    /* Event-specific fields */
+    union {
+        struct {
+            uint32_t ssid;
+            bool ssv;
+        } c_bad_ste_streamid;
+
+        struct {
+            bool stall;
+            uint16_t stag;
+            uint32_t ssid;
+            bool ssv;
+            bool s2;
+            uint64_t addr;
+            bool rnw;
+            bool pnu;
+            bool ind;
+            uint8_t class;
+            uint64_t addr2;
+        } f_translation;
+    };
+};
+
 /* stage-1 translation configuration */
 struct arm_vsmmu_s1_trans_cfg {
     paddr_t s1ctxptr;
@@ -82,6 +112,7 @@ struct virt_smmu {
     uint32_t    strtab_base_cfg;
     uint64_t    strtab_base;
     uint32_t    irq_ctrl;
+    uint32_t    virq;
     uint64_t    gerror_irq_cfg0;
     uint64_t    evtq_irq_cfg0;
     struct      arm_vsmmu_queue evtq, cmdq;
@@ -89,6 +120,12 @@ struct virt_smmu {
 };
=20
 /* Queue manipulation functions */
+static bool queue_full(struct arm_vsmmu_queue *q)
+{
+    return Q_IDX(q, q->prod) =3D=3D Q_IDX(q, q->cons) &&
+           Q_WRP(q, q->prod) !=3D Q_WRP(q, q->cons);
+}
+
 static bool queue_empty(struct arm_vsmmu_queue *q)
 {
     return Q_IDX(q, q->prod) =3D=3D Q_IDX(q, q->cons) &&
@@ -101,11 +138,105 @@ static void queue_inc_cons(struct arm_vsmmu_queue *q=
)
     q->cons =3D Q_OVF(q->cons) | Q_WRP(q, cons) | Q_IDX(q, cons);
 }
=20
+static void queue_inc_prod(struct arm_vsmmu_queue *q)
+{
+    u32 prod =3D (Q_WRP(q, q->prod) | Q_IDX(q, q->prod)) + 1;
+    q->prod =3D Q_OVF(q->prod) | Q_WRP(q, prod) | Q_IDX(q, prod);
+}
+
 static void dump_smmu_command(uint64_t *command)
 {
     gdprintk(XENLOG_ERR, "cmd 0x%02llx: %016lx %016lx\n",
              smmu_cmd_get_command(command[0]), command[0], command[1]);
 }
+
+static void arm_vsmmu_inject_irq(struct virt_smmu *smmu, bool is_gerror,
+                                uint32_t gerror_err)
+{
+    uint32_t new_gerrors, pending;
+
+    if ( is_gerror )
+    {
+        /* trigger global error irq to guest */
+        pending =3D smmu->gerror ^ smmu->gerrorn;
+        new_gerrors =3D ~pending & gerror_err;
+
+        /* only toggle non pending errors */
+        if (!new_gerrors)
+            return;
+
+        smmu->gerror ^=3D new_gerrors;
+    }
+
+    vgic_inject_irq(smmu->d, NULL, smmu->virq, true);
+}
+
+static int arm_vsmmu_write_evtq(struct virt_smmu *smmu, uint64_t *evt)
+{
+    struct arm_vsmmu_queue *q =3D &smmu->evtq;
+    struct domain *d =3D smmu->d;
+    paddr_t addr;
+    int ret;
+
+    if ( !smmu_get_evtq_enabled(smmu->cr[0]) )
+        return -EINVAL;
+
+    if ( queue_full(q) )
+        return -EINVAL;
+
+    addr =3D Q_PROD_ENT(q);
+    ret =3D access_guest_memory_by_gpa(d, addr, evt,
+                                     sizeof(*evt) * EVTQ_ENT_DWORDS, true)=
;
+    if ( ret )
+        return ret;
+
+    queue_inc_prod(q);
+
+    /* trigger eventq irq to guest */
+    if ( !queue_empty(q) )
+        arm_vsmmu_inject_irq(smmu, false, 0);
+
+    return 0;
+}
+
+void arm_vsmmu_send_event(struct virt_smmu *smmu,
+                          struct arm_smmu_evtq_ent *ent)
+{
+    uint64_t evt[EVTQ_ENT_DWORDS];
+    int ret;
+
+    memset(evt, 0, 1 << EVTQ_ENT_SZ_SHIFT);
+
+    if ( !smmu_get_evtq_enabled(smmu->cr[0]) )
+        return;
+
+    evt[0] |=3D FIELD_PREP(EVTQ_0_ID, ent->opcode);
+    evt[0] |=3D FIELD_PREP(EVTQ_0_SID, ent->sid);
+
+    switch (ent->opcode)
+    {
+    case EVT_ID_BAD_STREAMID:
+    case EVT_ID_BAD_STE:
+        evt[0] |=3D FIELD_PREP(EVTQ_0_SSID, ent->c_bad_ste_streamid.ssid);
+        evt[0] |=3D FIELD_PREP(EVTQ_0_SSV, ent->c_bad_ste_streamid.ssv);
+        break;
+    case EVT_ID_TRANSLATION_FAULT:
+    case EVT_ID_ADDR_SIZE_FAULT:
+    case EVT_ID_ACCESS_FAULT:
+    case EVT_ID_PERMISSION_FAULT:
+        break;
+    default:
+        gdprintk(XENLOG_WARNING, "vSMMUv3: event opcode is bad\n");
+        break;
+    }
+
+    ret =3D arm_vsmmu_write_evtq(smmu, evt);
+    if ( ret )
+        arm_vsmmu_inject_irq(smmu, true, GERROR_EVTQ_ABT_ERR);
+
+    return;
+}
+
 static int arm_vsmmu_find_ste(struct virt_smmu *smmu, uint32_t sid,
                               uint64_t *ste)
 {
@@ -114,11 +245,22 @@ static int arm_vsmmu_find_ste(struct virt_smmu *smmu,=
 uint32_t sid,
     uint32_t log2size;
     int strtab_size_shift;
     int ret;
+    struct arm_smmu_evtq_ent ent =3D {
+        .sid =3D sid,
+        .c_bad_ste_streamid =3D {
+            .ssid =3D 0,
+            .ssv =3D false,
+        },
+    };
=20
     log2size =3D FIELD_GET(STRTAB_BASE_CFG_LOG2SIZE, smmu->strtab_base_cfg=
);
=20
     if ( sid >=3D (1 << MIN(log2size, SMMU_IDR1_SIDSIZE)) )
+    {
+        ent.opcode =3D EVT_ID_BAD_STE;
+        arm_vsmmu_send_event(smmu, &ent);
         return -EINVAL;
+    }
=20
     if ( smmu->features & STRTAB_BASE_CFG_FMT_2LVL )
     {
@@ -132,7 +274,7 @@ static int arm_vsmmu_find_ste(struct virt_smmu *smmu, u=
int32_t sid,
         idx =3D (sid >> STRTAB_SPLIT) * STRTAB_L1_DESC_DWORDS;
         l1ptr =3D (paddr_t)(strtab_base + idx * sizeof(l1std));
=20
-        ret =3D access_guest_memory_by_ipa(d, l1ptr, &l1std,
+        ret =3D access_guest_memory_by_gpa(d, l1ptr, &l1std,
                                          sizeof(l1std), false);
         if ( ret )
         {
@@ -156,6 +298,8 @@ static int arm_vsmmu_find_ste(struct virt_smmu *smmu, u=
int32_t sid,
         {
             gdprintk(XENLOG_ERR, "idx=3D%d > max_l2_ste=3D%d\n",
                      idx, max_l2_ste);
+            ent.opcode =3D EVT_ID_BAD_STREAMID;
+            arm_vsmmu_send_event(smmu, &ent);
             return -EINVAL;
         }
         addr =3D l2ptr + idx * sizeof(*ste) * STRTAB_STE_DWORDS;
@@ -167,7 +311,7 @@ static int arm_vsmmu_find_ste(struct virt_smmu *smmu, u=
int32_t sid,
                       ~GENMASK_ULL(strtab_size_shift, 0);
         addr =3D strtab_base + sid * sizeof(*ste) * STRTAB_STE_DWORDS;
     }
-    ret =3D access_guest_memory_by_ipa(d, addr, ste, sizeof(*ste), false);
+    ret =3D access_guest_memory_by_gpa(d, addr, ste, sizeof(*ste), false);
     if ( ret )
     {
         gdprintk(XENLOG_ERR,
@@ -183,6 +327,14 @@ static int arm_vsmmu_decode_ste(struct virt_smmu *smmu=
, uint32_t sid,
                                 uint64_t *ste)
 {
     uint64_t val =3D ste[0];
+    struct arm_smmu_evtq_ent ent =3D {
+        .opcode =3D EVT_ID_BAD_STE,
+        .sid =3D sid,
+        .c_bad_ste_streamid =3D {
+            .ssid =3D 0,
+            .ssv =3D false,
+        },
+    };
=20
     if ( !(val & STRTAB_STE_0_V) )
         return -EAGAIN;
@@ -217,6 +369,7 @@ static int arm_vsmmu_decode_ste(struct virt_smmu *smmu,=
 uint32_t sid,
     return 0;
=20
 bad_ste:
+    arm_vsmmu_send_event(smmu, &ent);
     return -EINVAL;
 }
=20
@@ -271,7 +424,7 @@ static int arm_vsmmu_handle_cmds(struct virt_smmu *smmu=
)
         int ret;
=20
         addr =3D Q_CONS_ENT(q);
-        ret =3D access_guest_memory_by_ipa(d, addr, command,
+        ret =3D access_guest_memory_by_gpa(d, addr, command,
                                          sizeof(command), false);
         if ( ret )
             return ret;
@@ -577,7 +730,8 @@ static const struct mmio_handler_ops vsmmuv3_mmio_handl=
er =3D {
     .write =3D vsmmuv3_mmio_write,
 };
=20
-static int vsmmuv3_init_single(struct domain *d, paddr_t addr, paddr_t siz=
e)
+static int vsmmuv3_init_single(struct domain *d, paddr_t addr,
+                               paddr_t size, uint32_t virq)
 {
     struct virt_smmu *smmu;
=20
@@ -586,6 +740,7 @@ static int vsmmuv3_init_single(struct domain *d, paddr_=
t addr, paddr_t size)
         return -ENOMEM;
=20
     smmu->d =3D d;
+    smmu->virq =3D virq;
     smmu->cmdq.q_base =3D FIELD_PREP(Q_BASE_LOG2SIZE, SMMU_CMDQS);
     smmu->cmdq.ent_size =3D CMDQ_ENT_DWORDS * DWORDS_BYTES;
     smmu->evtq.q_base =3D FIELD_PREP(Q_BASE_LOG2SIZE, SMMU_EVTQS);
@@ -612,14 +767,16 @@ int domain_vsmmuv3_init(struct domain *d)
=20
         list_for_each_entry(hw_iommu, &host_iommu_list, entry)
         {
-            ret =3D vsmmuv3_init_single(d, hw_iommu->addr, hw_iommu->size)=
;
+            ret =3D vsmmuv3_init_single(d, hw_iommu->addr, hw_iommu->size,
+                                      hw_iommu->irq);
             if ( ret )
                 return ret;
         }
     }
     else
     {
-        ret =3D vsmmuv3_init_single(d, GUEST_VSMMUV3_BASE, GUEST_VSMMUV3_S=
IZE);
+        ret =3D vsmmuv3_init_single(d, GUEST_VSMMUV3_BASE, GUEST_VSMMUV3_S=
IZE,
+                                  GUEST_VSMMU_SPI);
         if ( ret )
             return ret;
     }
diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
index d6201df06a..1b03222b77 100644
--- a/xen/include/public/arch-arm.h
+++ b/xen/include/public/arch-arm.h
@@ -521,9 +521,10 @@ typedef uint64_t xen_callback_t;
 #define GUEST_EVTCHN_PPI        31
=20
 #define GUEST_VPL011_SPI        32
+#define GUEST_VSMMU_SPI         33
=20
-#define GUEST_VIRTIO_MMIO_SPI_FIRST   33
-#define GUEST_VIRTIO_MMIO_SPI_LAST    43
+#define GUEST_VIRTIO_MMIO_SPI_FIRST   34
+#define GUEST_VIRTIO_MMIO_SPI_LAST    44
=20
 /*
  * SGI is the preferred delivery mechanism of FF-A pending notifications o=
r
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 18:31:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 18:31:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073327.1436297 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk5Ox-0000eO-J0; Thu, 07 Aug 2025 18:31:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073327.1436297; Thu, 07 Aug 2025 18:31: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 1uk5Ox-0000dv-CR; Thu, 07 Aug 2025 18:31:43 +0000
Received: by outflank-mailman (input) for mailman id 1073327;
 Thu, 07 Aug 2025 16:57:21 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5oaB=2T=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1uk3vd-00075A-6t
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 16:57:21 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 94a8af35-73af-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 18:57:20 +0200 (CEST)
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com (2603:10a6:102:ea::23)
 by AS8PR03MB7336.eurprd03.prod.outlook.com (2603:10a6:20b:2ec::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.16; Thu, 7 Aug
 2025 16:57:18 +0000
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f]) by PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f%6]) with mapi id 15.20.9009.013; Thu, 7 Aug 2025
 16:57: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>
X-Inumbo-ID: 94a8af35-73af-11f0-a324-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aiu/W6u4v+RMGD6E3wI9Cg5Wodnq5NTBJBi5iG2J1vv2YuELzlA29SDC81GXv1tFUd/znF/Gby00IKqldtQz0d2lrze3hSePR18RCE/lvy3fbk+4Ck+MXZWl8X40nY0Lo5ZDcwWbylUn9bi2fv58EHDmez2rgpC8vR4BnELA0MwgP28QwXAwg7trtEAhb6LZg6qfh5PPTYUSfXIo+mKgzXPv5xYHhmK0LF/Y4Juj6SxCuUgYmJkpxn5U4fJV7Fwqwbk6ToZbW2a+vCzYtfmJHEsI0ELzmx5YH1tNRSvgxG5V44TNuNvptHzfxP2fX9D/AxTZV2gcIs4ufZnsFmQ+PA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8UM1qtAcBbUUXfA0PSZHA3rf9UWzJXGhA0wCTFpz1jc=;
 b=pwKIE2Bms5tv8T+pZu0/ETWoYux9TY/G5vE79Mwj7w47diwCCKOwmSsYVMHXg56ZFr3oYrdVZvhj3DfL5oUka8jD+FSBm5xGmsfjcoGr0qtzuik+ut10iUbzVyMbmbk+rdrfxW8TZVG8WXRHsPrlv27ZHpVDxKwKtB9MuccT6ruNQvJ6nsB7qPmBdktbP64ReuFJCdxegPJJh6JXHQWfxaz3r39JuW6vpLDNYZPxJbe1dDSoiMvkO40GNMgtdPGoOEFV9vE6b68gxuA5CVtFVly3D7yf7Jb9lK2K46Sb0g1SmvZj1mzbUqlA/IqzAjWoyKwhecicWsJTxz5ckByKVg==
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=8UM1qtAcBbUUXfA0PSZHA3rf9UWzJXGhA0wCTFpz1jc=;
 b=plqXWDIL4egukZpdFDz/IdqiEea4t0EoOcSK1OVLX0U1oHOniXqsG9wb93cQS1rMVvlR85r3TMkntdyZKZPjLAo8t7PZKyPeHH0NgbkXe/ZQ2R0xFArFUu2RMU4CFkn9TALnUHT7SOk/EsB28xX3F+axqUCXOUzCh0pbO1zUQNGAVs8Qfmxd6U6eVVz5b7vo2E0lPFSpRoI49YDbfm3o0Jc+Fku+2jT/ZAMpCRQPz9I+6tk1bZaxuNnLU/LcGdFzPKT8GnqwKKyevjd2hHUwMAIDh/bPKxe06wctZd9IUujakJC2WHAZXVeW0odaDB4jedkkMfu4+R289Y/quiJDIw==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Jean-Philippe Brucker <jean-philippe@linaro.org>, 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>,
	Jonathan Cameron <Jonathan.Cameron@huawei.com>, Eric Auger
	<eric.auger@redhat.com>, Keqian Zhu <zhukeqian1@huawei.com>, Will Deacon
	<will@kernel.org>, Joerg Roedel <jroedel@suse.de>
Subject: [PATCH 01/20] xen/arm: smmuv3: Maintain a SID->device structure
Thread-Topic: [PATCH 01/20] xen/arm: smmuv3: Maintain a SID->device structure
Thread-Index: AQHcB7xVBFFhVx5ypUmf6S+XKba4xQ==
Date: Thu, 7 Aug 2025 16:57:18 +0000
Message-ID:
 <1b9f56697cec0380c7bd1591405beed7d2bbddab.1754580687.git.milan_djokic@epam.com>
References: <cover.1754580687.git.milan_djokic@epam.com>
In-Reply-To: <cover.1754580687.git.milan_djokic@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: PA4PR03MB7136:EE_|AS8PR03MB7336:EE_
x-ms-office365-filtering-correlation-id: 6381b6d9-1233-4c20-8540-08ddd5d377e5
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|7416014|376014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?upCwRgjqt5d15yoIXoUeHh8jEIkYoQc28U5TyUKIkFUAcIY7fRhgfOuJZB?=
 =?iso-8859-1?Q?7D8TNW9GA0f9XFXKauPgLhHZmXDuxvKda8IvCNqha3MX2a3RyUrd3wAYrI?=
 =?iso-8859-1?Q?d9Q91put0uFFLbtOO0+Llcio2T9vKvl4qKUSzqLA0tkp+hHqZNnYOacj0j?=
 =?iso-8859-1?Q?od88NrqcVQk7vqhMjYpg2+woSmEYK/C/tSvCcKGNKl+Is8THPlqUn3kIgJ?=
 =?iso-8859-1?Q?Fanuhi0QBa7P/fBAjnzJPJ3ZwuhF3zzLnanL0ri3WgTP2bqUmoTfRwM6eq?=
 =?iso-8859-1?Q?9Wa/cipUwPU84Du4VY4s60kIrwMzsgZ0i7Xo9AJ9a8/SOOUnapWJOC8xuA?=
 =?iso-8859-1?Q?KKPfUe04BXQNtxNbv2J8bgfhDucvLtvC/PmWbIp7HvHvv0/sdSYmfxMWU9?=
 =?iso-8859-1?Q?6sMnLGDHxc80B9QPTAJk5nT8/pyTURvNChfnltlvdGU9vQjlZvLIeggbQw?=
 =?iso-8859-1?Q?hSOBlPrWfxF4euaEMRr3HT1SXXb5xfL0XUy6gjLJHGZUnYDQQXD5mwO7hp?=
 =?iso-8859-1?Q?pEesbMIqBas1gUiwQh6SV55BFFmwXEDnC5lSri8NqgFJN8HWAfok9J6fwC?=
 =?iso-8859-1?Q?LXdOYaoEeSJCC1YGGdLAznNIEAJoLBMA+RsZRN1rRtV2s2ca1JfhC01iVv?=
 =?iso-8859-1?Q?5eDXqr05d+/6vcM1egX+O8vZJiXgv1ZxWr9lpLM+UWB+gK3UYTk4odCAP9?=
 =?iso-8859-1?Q?5TqbCVzk20C+SrcRk+RGLQUbtKiecN7ZonGlw+4TNvqClCz2NEHwXRypNo?=
 =?iso-8859-1?Q?oGHfTgeudLS94tw+sOKLhGIRjmTHKGiNnNCNUcVSsR/Evks0pcJn1unMmb?=
 =?iso-8859-1?Q?Ry8oWy0Marhgu5ZW5j2gI7fgziJEAHW2spRqDy+m1Fx+i4vziYA7k2GaA5?=
 =?iso-8859-1?Q?scjaTSSw7p32g/lfxkl+9A7P+BJPyPdslUr5w5DOe8fmFhKVD5sjY7RHOH?=
 =?iso-8859-1?Q?KExpBU//2afe4+ETLQagC3A6H6DzLqTk7D8X1UqEoIluiUNyC2N/LCk5LE?=
 =?iso-8859-1?Q?T6mF4m87D7nSusH6HKN6eSzRMXCtpY7dX0O3PNQwkv/QSLL/QkEC91zUI0?=
 =?iso-8859-1?Q?OJFCD0DtlVKw+MBHp7oikbM7PwRSIX4mWH6x2gmM1fsXXqfiYRTrtxtDHZ?=
 =?iso-8859-1?Q?VUeCrLSJBZIBsBg0vs9ZahH24FH+Ou1bHWG57/LkW7D8ihaSsQnSqoK+B7?=
 =?iso-8859-1?Q?bTVFzEVgFkgl8c3IqUbl84jgH1FCjhuz8FT5x2CArrd98/95iLLJ/WZrb2?=
 =?iso-8859-1?Q?XL3wchxpzyKOUm/YwyZppZwI7MgjiQWnov1mMi/5ijVVvgfVDYsRVPlNFA?=
 =?iso-8859-1?Q?VBDSA7UkHadejqtvWeZxiNZQdjjrp/8/WXPTwsXgu8FyirPal9PMIv3sEa?=
 =?iso-8859-1?Q?oCBk77JAtd4mcjCQHz5GUo/+tqeAbXI6yh1rNtirfVgg5xORvmWuqe56KQ?=
 =?iso-8859-1?Q?zDqSW763YRSdhuk1/FKToURf3MDF+ay6BU8VtNpJP3riTRQG8bCEs/JODY?=
 =?iso-8859-1?Q?5dAeHjjYlZstbapXKPn2E4x7JQOoyBoD5hOcp0Q7cO5emz4cEnWSyF9N0f?=
 =?iso-8859-1?Q?VpM1/Dg=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR03MB7136.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?uh2Yoo12Yn++fdeYFNeTaiu9AkkqEBmxA8WEiL1UHX9QQ3ERVOhVF3s5+E?=
 =?iso-8859-1?Q?fV3RYOIHjmvp3Uk7IusfUMmNNet/NcKIPw4kxMQDLxPMTJUBoN1j5QXOJS?=
 =?iso-8859-1?Q?tHoBWwmPF4zBVKgh1j9VIOVxpGlMhSDQhncU3GdKPQttrM8viFcA2cvoik?=
 =?iso-8859-1?Q?ERVqYJpweFi5joJ5MVsjGp9aIfTkTdiXxzGC6COcA2ggYOkJo28EueCY2f?=
 =?iso-8859-1?Q?/48+nRtXvx7bT9WuJCMjvhmRqfuwzfVgIKL+E8kvAt5J5gldjFgt42gba8?=
 =?iso-8859-1?Q?zagJKGMridb2UbKGiGD8UDoqcIZLDODRHy9KYuqIdLinApCSsnpeEP5IPH?=
 =?iso-8859-1?Q?q/F85Y8EtYzUDVG6oMm7atM7b3MD/IBWpVXvaPyeASvboF+FSAEESpSs/3?=
 =?iso-8859-1?Q?fbyt9y1P/t0ysPeMGldJ8gDAkylX3t7qo5GpL3cA35G0L/zxfkoVQ6F/0u?=
 =?iso-8859-1?Q?qV+VkyQ6KJGTddGBuOK/vES+ZHGr1Fk5t3xjAPknskBBZTtmmTGiSDPFzc?=
 =?iso-8859-1?Q?o9w6/uA1CQjrNspiVQcCLGutqiA+Ty/Ik/RqNdrHow5Z8T2Yi6wF00ekMx?=
 =?iso-8859-1?Q?qbObvaUWXl/9oKGia7PIODkz6fhkB1b+reth8XYPBtf5/bwzs0YfXJIir9?=
 =?iso-8859-1?Q?Vx38eh8ju8GXnkb4Bq4uGpPHhNp09Y1PdDFuQ2gSadMivIS2pzs3BFR24e?=
 =?iso-8859-1?Q?x2QzNM+xqGPRpNnKw3T65DQML+Dw90rx80+ep07IQ0Sk9c2jbVvJD5u0CY?=
 =?iso-8859-1?Q?tcjXASBNQDEVhQm/yHg+7Fb6XZSDek75QiAMl+8H0IDFeeDX3l/Bc85M2/?=
 =?iso-8859-1?Q?3CaGzz4rLSiTv4f5OxasPl2zpdQJEeAWdLAzRJ5wIG8k7mKsm7Xs5ImU4p?=
 =?iso-8859-1?Q?mdFn2VKqRMf06azbyHmTNX59aENYvSpJyDeRczwg2ijhJ/zXfmYMZUJEbJ?=
 =?iso-8859-1?Q?6AxkdG21LbywetFh6oQv+86AVTJ/Sj0UcwVOuS68n5SZIh7THhgzdoRx8+?=
 =?iso-8859-1?Q?DiuGmgQS79XNb4u5fBfnujutiGuaVZkmLKo3SnbtGz1Cl/w/JqjfEI+XVW?=
 =?iso-8859-1?Q?lfYpyHNJNM/Bhl9PvRP9FzwwpkvL8eS1JhUt6qO/+ShUmkNt8Y+L7H21/A?=
 =?iso-8859-1?Q?N7DmAWJyMrQuuk1GVWcDrazZIOHkLmhgWEBPXiw1ojgm5kLXZQJEG3f/eF?=
 =?iso-8859-1?Q?rjrcwM8hRYDPxfPy1oTJgx6GCe+Mtl9DM+8qIHfPAlWduCA+5vIX7ifIJA?=
 =?iso-8859-1?Q?asBKe3ZDuB4KhSBDf1ds3MnmKOrCHQ+CIUFWtMk4yB7Efd4t/iClnuTm3V?=
 =?iso-8859-1?Q?EO1suVZV4LqNIqviStVdG9sDVeh1YXlLM3AeXcepc0Sq8Z9wbXNKuDI9ab?=
 =?iso-8859-1?Q?s68QyDaKP/uwbQfUzWtAnrp0qEasvPAZnEQC+K4VBj+nX39nNMIyiT02/b?=
 =?iso-8859-1?Q?3d+c+qwMJQWE693DisHlqgi3OQh5PrfrKRbAEWbQbgSQ2xKFM8PRAuVYE5?=
 =?iso-8859-1?Q?q3wstTzlHf3DqabTPCQYhHtqb09DhPh+9GvTz2Rlpi93bJL8aGfnIBPMgQ?=
 =?iso-8859-1?Q?QX1b+Mu4srC5D/qEviI4XJrQszvQD1D/LJLkSsaOIHx25G78/1o+QZxQ7v?=
 =?iso-8859-1?Q?+6vJudfrVCSyMif09nVG0Ps44/QYpUhC8O?=
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: PA4PR03MB7136.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6381b6d9-1233-4c20-8540-08ddd5d377e5
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Aug 2025 16:57:18.2614
 (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: 0HZ7JWChDPkC/eJbAkw+KGTR1Fx4/s+OtEpCGdXiJ/kFYK6JMKgtq2y9YRKFPhGz5nG/0Wenc9al/lPGlIBPzw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7336

From: Jean-Philippe Brucker <jean-philippe@linaro.org>

Backport Linux commit cdf315f907d4. This is the clean backport without
any changes.

When handling faults from the event or PRI queue, we need to find the
struct device associated with a SID. Add a rb_tree to keep track of
SIDs.

Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Keqian Zhu <zhukeqian1@huawei.com>
Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
Acked-by: Will Deacon <will@kernel.org>
Link: https://lore.kernel.org/r/20210401154718.307519-8-jean-philippe@linar=
o.org
Signed-off-by: Joerg Roedel <jroedel@suse.de>
Origin: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git cd=
f315f907d4
Signed-off-by: Rahul Singh <rahul.singh@arm.com>
---
 xen/drivers/passthrough/arm/smmu-v3.c | 131 +++++++++++++++++++++-----
 xen/drivers/passthrough/arm/smmu-v3.h |  13 ++-
 2 files changed, 118 insertions(+), 26 deletions(-)

diff --git a/xen/drivers/passthrough/arm/smmu-v3.c b/xen/drivers/passthroug=
h/arm/smmu-v3.c
index 5e9e3e048e..307057ad8a 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.c
+++ b/xen/drivers/passthrough/arm/smmu-v3.c
@@ -793,6 +793,27 @@ static int arm_smmu_init_l2_strtab(struct arm_smmu_dev=
ice *smmu, u32 sid)
 	return 0;
 }
=20
+__maybe_unused
+static struct arm_smmu_master *
+arm_smmu_find_master(struct arm_smmu_device *smmu, u32 sid)
+{
+	struct rb_node *node;
+	struct arm_smmu_stream *stream;
+
+	node =3D smmu->streams.rb_node;
+	while (node) {
+		stream =3D rb_entry(node, struct arm_smmu_stream, node);
+		if (stream->id < sid)
+			node =3D node->rb_right;
+		else if (stream->id > sid)
+			node =3D node->rb_left;
+		else
+			return stream->master;
+	}
+
+	return NULL;
+}
+
 /* IRQ and event handlers */
 static void arm_smmu_evtq_tasklet(void *dev)
 {
@@ -1026,8 +1047,8 @@ static int arm_smmu_atc_inv_master(struct arm_smmu_ma=
ster *master,
 	if (!master->ats_enabled)
 		return 0;
=20
-	for (i =3D 0; i < master->num_sids; i++) {
-		cmd->atc.sid =3D master->sids[i];
+	for (i =3D 0; i < master->num_streams; i++) {
+		cmd->atc.sid =3D master->streams[i].id;
 		arm_smmu_cmdq_issue_cmd(master->smmu, cmd);
 	}
=20
@@ -1255,13 +1276,13 @@ static void arm_smmu_install_ste_for_dev(struct arm=
_smmu_master *master)
 	int i, j;
 	struct arm_smmu_device *smmu =3D master->smmu;
=20
-	for (i =3D 0; i < master->num_sids; ++i) {
-		u32 sid =3D master->sids[i];
+    for (i =3D 0; i < master->num_streams; ++i) {
+		u32 sid =3D master->streams[i].id;
 		__le64 *step =3D arm_smmu_get_step_for_sid(smmu, sid);
=20
 		/* Bridged PCI devices may end up with duplicated IDs */
 		for (j =3D 0; j < i; j++)
-			if (master->sids[j] =3D=3D sid)
+			if (master->streams[j].id =3D=3D sid)
 				break;
 		if (j < i)
 			continue;
@@ -1470,6 +1491,80 @@ static bool arm_smmu_sid_in_range(struct arm_smmu_de=
vice *smmu, u32 sid)
=20
 	return sid < limit;
 }
+
+static int arm_smmu_insert_master(struct arm_smmu_device *smmu,
+				  struct arm_smmu_master *master)
+{
+	int i;
+	int ret =3D 0;
+	struct arm_smmu_stream *new_stream, *cur_stream;
+	struct rb_node **new_node, *parent_node =3D NULL;
+	struct iommu_fwspec *fwspec =3D dev_iommu_fwspec_get(master->dev);
+
+	master->streams =3D _xzalloc_array(sizeof(*master->streams), sizeof(void =
*),
+					fwspec->num_ids);
+	if (!master->streams)
+		return -ENOMEM;
+	master->num_streams =3D fwspec->num_ids;
+
+	mutex_lock(&smmu->streams_mutex);
+	for (i =3D 0; i < fwspec->num_ids; i++) {
+		u32 sid =3D fwspec->ids[i];
+
+		new_stream =3D &master->streams[i];
+		new_stream->id =3D sid;
+		new_stream->master =3D master;
+
+		/*
+		 * Check the SIDs are in range of the SMMU and our stream table
+		 */
+		if (!arm_smmu_sid_in_range(smmu, sid)) {
+			ret =3D -ERANGE;
+			break;
+		}
+
+		/* Ensure l2 strtab is initialised */
+		if (smmu->features & ARM_SMMU_FEAT_2_LVL_STRTAB) {
+			ret =3D arm_smmu_init_l2_strtab(smmu, sid);
+			if (ret)
+				break;
+		}
+
+		/* Insert into SID tree */
+		new_node =3D &(smmu->streams.rb_node);
+		while (*new_node) {
+			cur_stream =3D rb_entry(*new_node, struct arm_smmu_stream,
+					      node);
+			parent_node =3D *new_node;
+			if (cur_stream->id > new_stream->id) {
+				new_node =3D &((*new_node)->rb_left);
+			} else if (cur_stream->id < new_stream->id) {
+				new_node =3D &((*new_node)->rb_right);
+			} else {
+				dev_warn(master->dev,
+					 "stream %u already in tree\n",
+					 cur_stream->id);
+				ret =3D -EINVAL;
+				break;
+			}
+		}
+		if (ret)
+			break;
+
+		rb_link_node(&new_stream->node, parent_node, new_node);
+		rb_insert_color(&new_stream->node, &smmu->streams);
+	}
+
+	if (ret) {
+		for (i--; i >=3D 0; i--)
+			rb_erase(&master->streams[i].node, &smmu->streams);
+		xfree(master->streams);
+	}
+	mutex_unlock(&smmu->streams_mutex);
+
+	return ret;
+}
+
 /* Forward declaration */
 static struct arm_smmu_device *arm_smmu_get_by_dev(const struct device *de=
v);
 static int arm_smmu_assign_dev(struct domain *d, u8 devfn, struct device *=
dev,
@@ -1479,7 +1574,7 @@ static int arm_smmu_deassign_dev(struct domain *d, ui=
nt8_t devfn,
=20
 static int arm_smmu_add_device(u8 devfn, struct device *dev)
 {
-	int i, ret;
+	int ret;
 	struct arm_smmu_device *smmu;
 	struct arm_smmu_master *master;
 	struct iommu_fwspec *fwspec;
@@ -1516,26 +1611,11 @@ static int arm_smmu_add_device(u8 devfn, struct dev=
ice *dev)
=20
 	master->dev =3D dev;
 	master->smmu =3D smmu;
-	master->sids =3D fwspec->ids;
-	master->num_sids =3D fwspec->num_ids;
 	dev_iommu_priv_set(dev, master);
=20
-	/* Check the SIDs are in range of the SMMU and our stream table */
-	for (i =3D 0; i < master->num_sids; i++) {
-		u32 sid =3D master->sids[i];
-
-		if (!arm_smmu_sid_in_range(smmu, sid)) {
-			ret =3D -ERANGE;
-			goto err_free_master;
-		}
-
-		/* Ensure l2 strtab is initialised */
-		if (smmu->features & ARM_SMMU_FEAT_2_LVL_STRTAB) {
-			ret =3D arm_smmu_init_l2_strtab(smmu, sid);
-			if (ret)
-				goto err_free_master;
-		}
-	}
+	ret =3D arm_smmu_insert_master(smmu, master);
+	if (ret)
+		goto err_free_master;
=20
 	/*
 	 * Note that PASID must be enabled before, and disabled after ATS:
@@ -1777,6 +1857,9 @@ static int __init arm_smmu_init_structures(struct arm=
_smmu_device *smmu)
 {
 	int ret;
=20
+	mutex_init(&smmu->streams_mutex);
+	smmu->streams =3D RB_ROOT;
+
 	ret =3D arm_smmu_init_queues(smmu);
 	if (ret)
 		return ret;
diff --git a/xen/drivers/passthrough/arm/smmu-v3.h b/xen/drivers/passthroug=
h/arm/smmu-v3.h
index f09048812c..fe651ca5a7 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.h
+++ b/xen/drivers/passthrough/arm/smmu-v3.h
@@ -636,6 +636,15 @@ struct arm_smmu_device {
 	struct tasklet		evtq_irq_tasklet;
 	struct tasklet		priq_irq_tasklet;
 	struct tasklet		combined_irq_tasklet;
+
+	struct rb_root		streams;
+	struct mutex		streams_mutex;
+};
+
+struct arm_smmu_stream {
+	u32							id;
+	struct arm_smmu_master		*master;
+	struct rb_node				node;
 };
=20
 /* SMMU private data for each master */
@@ -644,8 +653,8 @@ struct arm_smmu_master {
 	struct device			*dev;
 	struct arm_smmu_domain		*domain;
 	struct list_head		domain_head;
-	u32				*sids;
-	unsigned int			num_sids;
+	struct arm_smmu_stream		*streams;
+	unsigned int				num_streams;
 	bool				ats_enabled;
 };
=20
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 18:31:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 18:31:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073333.1436315 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk5Oy-0000z7-Gh; Thu, 07 Aug 2025 18:31:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073333.1436315; Thu, 07 Aug 2025 18: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 1uk5Oy-0000vi-As; Thu, 07 Aug 2025 18:31:44 +0000
Received: by outflank-mailman (input) for mailman id 1073333;
 Thu, 07 Aug 2025 16:59:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5oaB=2T=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1uk3xZ-000773-ST
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 16:59:21 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dc552c36-73af-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 18:59:20 +0200 (CEST)
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com (2603:10a6:102:ea::23)
 by AS8PR03MB7336.eurprd03.prod.outlook.com (2603:10a6:20b:2ec::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.16; Thu, 7 Aug
 2025 16:59:18 +0000
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f]) by PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f%6]) with mapi id 15.20.9009.013; Thu, 7 Aug 2025
 16:59: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>
X-Inumbo-ID: dc552c36-73af-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=XGzNNGSK0Z93OfHeCZs7ARgUXPVODCr/fDZcYVZ9G+wBGaiR7KZoKsfttoJL7i+Xa6NzTmgv1lnW22pNFAK13lSA6IJZ9bX2bvDpQcxzORuB8wpJomtoCppsmGlTP4IgG0fErjBkUa1XWwfn/4wHgrmc9gOT19O85E+fmhylWx4YQ0ySA8R+X4JcSfSPKqKEqFerlY1kgpYQVScNBs38IgRxD2pz7hZhJDEedXD+JzgHNRXh9/Q9ix5Bmv52bm1QFXr9H16NUBh+JqTCMd6v0YZESvV99MEJ7T5GdYjVKMY96/lP8NL166I2uCeLa0hX/iENFQQ2zUlsyuZD9tp89A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=3+Zv6qBGmmQgEGZkjtADidTX/0058eu9yl2uEEkSt24=;
 b=AUA8cLrKf4bLqeU+rSQH48B9NdnnMnSmhgm+RProIMUd9by8gqgLAcY0XQctcw87YCbkJ17WI6sWBT08O6XQOBdwv7Gl/v3Y7zz/PlYBzheAO8hhogUNIuZU7crY1W5Agnb0JhwBc3xLrvvvKZi5FPyVEVzjID8ox0SUP0v6rQoY9q+vgW5MRB9tB7l0l8eSy1KI2LMsZCFp3ajTdabTlJ+3IiCdCajZbqMvT03yribvQE9MwiOcmwMRwtUSja5f/gnEAT0PX0xD0eiEK942sF/NPWxIS/w/E2aDBtdVzMOstZo59/0ohBHW1OegjiBkfe8BpcyjvxByhJBp5FyiYA==
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=3+Zv6qBGmmQgEGZkjtADidTX/0058eu9yl2uEEkSt24=;
 b=kiEHaEFK8HqcWasIvJDUq6sIcWZ9aNqN7sdM9dujnQWvCYP8kQJTKOE8PGtZnLVbU3yFg/kNobQI47QsS2VQbMe6m/Vp44NYnDQgF5zUcB5xzwqD42ETxSsLrpBk57irxLv5GthuwMD+3nvWS3klZvMvVsQx8Ql3gp6C3ic/dXsnaaH/uKCSdB/jEUr7BLAIlCkSamkchBFZhE9SPO4L2VjyNVzCDylM9w/hSGnvBdLgCVzXXwONp+KTwYU3hNvvRE+H9RSWYUDjyNy/pDdinEO/oCbCL3dHZEZEiBx3CThkUEcag1dt1EzGDsNThBalKoAdvnB8/BQOPqMg3/x+sQ==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: 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>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Milan Djokic
	<milan_djokic@epam.com>
Subject: [PATCH 04/20] xen/arm: vIOMMU: add generic vIOMMU framework
Thread-Topic: [PATCH 04/20] xen/arm: vIOMMU: add generic vIOMMU framework
Thread-Index: AQHcB7yc6FJdcKq17UOgpZ88dk+WBw==
Date: Thu, 7 Aug 2025 16:59:18 +0000
Message-ID:
 <87b001cfc0555192435967b32190f75783ffa746.1754580688.git.milan_djokic@epam.com>
References: <cover.1754580687.git.milan_djokic@epam.com>
In-Reply-To: <cover.1754580687.git.milan_djokic@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: PA4PR03MB7136:EE_|AS8PR03MB7336:EE_
x-ms-office365-filtering-correlation-id: bed35d96-4695-4a46-f5a5-08ddd5d3bf7c
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?bLbXga3aY5RUvJ8chjct6TcjN6jEskyeBEh49016rtHXe5VSn9/k51U5ph?=
 =?iso-8859-1?Q?xcrFac1Ba90izuZR6X0Ctb0NRTkI1ATB96usF0wu3Zdw6ymnnQBFX39i3T?=
 =?iso-8859-1?Q?cS1OvIyQZG/dCWrDXl+sT+haeLJVEHg0fBVze6RMmy1keOLnbAG61Qc0hM?=
 =?iso-8859-1?Q?z9gn+XsHkqeABjryCoe/MZAMYi7Y4HCl/Os8Fbt8j1PKqaodAN9bC9LbDB?=
 =?iso-8859-1?Q?U+CbDwj2IsxSAylypih+BVCGgQdGhPFS/KK+94FneCqzp217f8MZqq7WCm?=
 =?iso-8859-1?Q?NTzIoGAyHvMIt62ENzFkoGnVZVq5KZ7TJL7rw5vS6QHAzCsZxrAdr7fwU+?=
 =?iso-8859-1?Q?HlxfpYUULUSV8Q3oHzIMo0P4JCwGJNxivJ2MAMxRWqntK8T81XtkPBhwDD?=
 =?iso-8859-1?Q?2ESrlR1HT2u9yC2ePQ1zsGU6eW1kH+I+3IDrByPpLglBrG08gxQFsTwAMp?=
 =?iso-8859-1?Q?ABMOtBdCbtdd7fn0CiRO5uHP4ifdbmIXq6h/m5zb18WiQ8K2SF8g0N6GLA?=
 =?iso-8859-1?Q?jsHTDgtTf4RANkDYD1tqJC5s/NlPsZLkzmNhtB0FUMJRFPNIQK6XD3iZwb?=
 =?iso-8859-1?Q?bOuuo+zBSp5mopX90VJiPmFlZbS3IPcPJOB/ohag46LL3N0lrGySytaYcB?=
 =?iso-8859-1?Q?wDhWRysrKXY62uTAlSKLl9fBe1ENdZPEAZTRI8s9SjvZnwFucXqwiB5SKX?=
 =?iso-8859-1?Q?d98gJ7XyGCThESyyTS1TIy23WEuvO2SsYOUOwWY/Gs/BsNf1iM+1Wi7+KT?=
 =?iso-8859-1?Q?OCq4YR3PbhECU32WjgY92dJionsgQL5ktAteIrF+/E2UMbw9ZGs0iQ9SYx?=
 =?iso-8859-1?Q?bLe9JUkC56AYjVki8uUqgaBoaeRUmW6ome0+qtGQAObS96cKiZWgv/NGXd?=
 =?iso-8859-1?Q?n8cyGHahf0okg/aFJn7plHi7nwgHN076mbMJppPqnZY3lGrTTBKItoAiF/?=
 =?iso-8859-1?Q?MliMsF9pLkZ8Ib9JQCb73wYw5spEBUaAoCernnxzlMrfhONCyy8sUWYyxu?=
 =?iso-8859-1?Q?K6wsyDXSPGY6xUl0fSfPCo5pbpuM0kLEv/fugjnx7IFCZQRyDmkXFIxD1Y?=
 =?iso-8859-1?Q?CYd+rZCV5jJRftEh8Qk3k9hT+9kQxz041XCRULHeBkfmA9PnuImhkRNptG?=
 =?iso-8859-1?Q?m2ZAFn2ytmZ2GOgfScBZckhjA0GU2KdYd8hZOc9AUuHYBP4TIuh0SXJFiS?=
 =?iso-8859-1?Q?5Cdvmzzolsd7neCXRsU9+RXqrci4cNOk89685fd32MbpfOaMTofqMUVdKQ?=
 =?iso-8859-1?Q?y4x1vJueG7raLR0cLcRqQjCW9tQcf47G64QJiS7KTL4SWcLz7XUguejvY3?=
 =?iso-8859-1?Q?ip4Wg9Eu6CX9wXXFUtTK/z0DZovHv9Fjl3zIWkBLBTiJBIwwQ0/QAaLTB5?=
 =?iso-8859-1?Q?3ksgGzGSKItJWqS9udnnewCVo1OW9HeIUHKiLwwGV2NuRkw1iI64CTuqLM?=
 =?iso-8859-1?Q?c3I31/EpZM75Mu3BjV5ZUrw1w8dLR+RTNMoT2zWY9cy22lfPwHj23K86SN?=
 =?iso-8859-1?Q?nCLzHNQprwmJ70Dpt5S2uS5uSsopr1+9xPIjyL+JUmTA=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR03MB7136.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?9nbaHoCpD/WOvC1lDL9euTDWTx/7vrZaYLBISdwW/ujXse86hTrhO79Enm?=
 =?iso-8859-1?Q?3gkf03XSQuHl3w7umUK/DdPqXiEy6JMYEd0wTTUyO8mASlSyqEv1V7kTt7?=
 =?iso-8859-1?Q?Dga6Gy2825JGxRKgoG6W2+F9EiAXaptDOLLUfXIKPJw2q3p1jKqBDz5lKg?=
 =?iso-8859-1?Q?4VXoVGJ7WLE/VCEqLYwkv19K1ioQ4N+EEPMNMt6y2zr0NPFo6b07tCiUmA?=
 =?iso-8859-1?Q?LKRTVBdUq38rr2KDWnBoeG+wMEfb9mkRjRpHpYB53IJWcIt80lZIwDzFs9?=
 =?iso-8859-1?Q?nZr0MGrj8jP5NNiIO5o+g7rb/J7HbEoCgDngKLBP7QqabckYvpzlYolk94?=
 =?iso-8859-1?Q?a5MPoeaqaoAon+JZgEyep76Id3CIvxP1SwO0pvm9m5h1O+TEScSFLhSdrL?=
 =?iso-8859-1?Q?oZVTmy9lZq7bNNtj9ZfLo10btHLDT+Co4YX2s/8hKhBQ6emJizZYt/QRwm?=
 =?iso-8859-1?Q?GrRQnZKgAPBH0+NepbTVUfJEWnhXhbK8JlNYZt5VSTliUSI3VnvDNg2hmv?=
 =?iso-8859-1?Q?oU9zTEJSAEc5BPYjkTdiUTbjEz4Yx7xMpCrRWnSrZxnJP4P7gMVhASij7l?=
 =?iso-8859-1?Q?1E14vPt1AVRMa2c1EyQJO0wgpg6TufvHBYpvcjIapqRgVwUHz2ZBwo8nup?=
 =?iso-8859-1?Q?/uBlpyiQCu54wC+lewauK3D3oRQyPckqZQLjd3gmK69bZaiBkx/TdLUkjt?=
 =?iso-8859-1?Q?psnpnKttOvYhd1+2F/rHQLL5xkdm5OL4J0pVa68IM0zJ5m8topexAYAAgC?=
 =?iso-8859-1?Q?Wl6mUHGzLamycOQWSCNXxfRdMw01PM8lijkr2oJl4TIU1t/voXXg369txd?=
 =?iso-8859-1?Q?4WG6z9E1YW9mz0dzWbJDuNUx6mZWUKasOnBUP8OLHG7BKDddCG1v4b/s7N?=
 =?iso-8859-1?Q?act9x1XGtPvXnC6djL/8TfXtbCLhatG516Ry1FziwOhVuBOEtb9bLl+61L?=
 =?iso-8859-1?Q?L3IvtF5+UQDBOp70e5gqK4WvK28oYX4MozSF7HErBx5T4AzhxmJScmZSCC?=
 =?iso-8859-1?Q?buprVz32rOiqA4/Vw/50nlD0rwlYX7WFJerf9D6RgvhBC+X8Do/JdNtzcx?=
 =?iso-8859-1?Q?73r7tTkzpT+IqQD8Up4m0WE0Qw1u1szIzmQuQFqzAtbRG+d+0Af/fs8Mo4?=
 =?iso-8859-1?Q?V/pmRHyexhAx/9PJ6IugRiN1MIswaVpyOUip+ai92xIMZGA22MVK+idyZm?=
 =?iso-8859-1?Q?C66nCChJgmxDpb4bZJHu/IwI3sPkGrvNcZEHL683HGoh31fbQLycG8ZLoy?=
 =?iso-8859-1?Q?R4Sw6SCebYpsVD4q8iMqs/4JAoAZpuThiCbFUysp5hebfHI/dfAAI50erp?=
 =?iso-8859-1?Q?u/hnrPKs3JrIT6LPtYiI/Fy7ckDFsevG7/1P/oSc3/27Ert6TlMXLMb62Q?=
 =?iso-8859-1?Q?1/BTfZu0ATm2GORrxQoW6iyYDRp4ILWgxXzIfIA3yVHjbo3y2aldIMGpCr?=
 =?iso-8859-1?Q?Frlpv5W5aPyn9YUEhIes3lRqfSl0DK3hSaBxMTVZ2pII1oiQDwcabQK0Px?=
 =?iso-8859-1?Q?wWVzEvBWfGNt0ss2wdv8eE8haxkg/ce2PfssHBYQ7jXQi18vgV2cAtnUY4?=
 =?iso-8859-1?Q?IMFdt/k82SH6qWcOwqdraPhhcPdnrS7ENAaiZBSy/PxyXzv2/9BYR9Jvvz?=
 =?iso-8859-1?Q?ljIcx7w5/z57nqzOzVAyCTcFLvJI1rPSOl?=
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: PA4PR03MB7136.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: bed35d96-4695-4a46-f5a5-08ddd5d3bf7c
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Aug 2025 16:59:18.3569
 (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: NOZfGoyormVqoLrjK09Fl4ztpXhl878Lb+NZruR/EqG2nxG9nNxYTNLHYelBL7QaN6tM2hBie7Be0HqfDQGFjw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7336

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                | 25 ++++++++++
 xen/arch/arm/domain_build.c          |  2 +
 xen/arch/arm/include/asm/viommu.h    | 70 ++++++++++++++++++++++++++++
 xen/drivers/passthrough/Kconfig      |  6 +++
 xen/drivers/passthrough/arm/Makefile |  1 +
 xen/drivers/passthrough/arm/viommu.c | 48 +++++++++++++++++++
 xen/include/public/arch-arm.h        |  4 ++
 8 files changed, 158 insertions(+)
 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 c8d07213e2..1fa6df214b 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -22,6 +22,7 @@
=20
 #include <asm/arm64/sve.h>
 #include <asm/domain_build.h>
+#include <asm/viommu.h>
 #include <asm/grant_table.h>
 #include <asm/setup.h>
=20
@@ -280,6 +281,7 @@ int __init arch_parse_dom0less_node(struct dt_device_no=
de *node,
     uint32_t val;
=20
     d_cfg->arch.gic_version =3D XEN_DOMCTL_CONFIG_GIC_NATIVE;
+    d_cfg->arch.viommu_type =3D viommu_get_type();
     d_cfg->flags |=3D XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap;
=20
     if ( !dt_property_read_u32(node, "nr_spis", &d_cfg->arch.nr_spis) )
diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index 310c578909..a66f71da17 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -27,6 +27,7 @@
 #include <asm/tee/tee.h>
 #include <asm/vfp.h>
 #include <asm/vgic.h>
+#include <asm/viommu.h>
 #include <asm/vtimer.h>
=20
 #include "vpci.h"
@@ -699,6 +700,21 @@ int arch_sanitise_domain_config(struct xen_domctl_crea=
tedomain *config)
         return -EINVAL;
     }
=20
+    if ( !(config->flags & XEN_DOMCTL_CDF_iommu) &&
+         config->arch.viommu_type !=3D XEN_DOMCTL_CONFIG_VIOMMU_NONE )
+    {
+        dprintk(XENLOG_INFO,
+                "vIOMMU requested while iommu not enabled for domain\n");
+        return -EINVAL;
+    }
+
+    if ( config->arch.viommu_type !=3D XEN_DOMCTL_CONFIG_VIOMMU_NONE )
+    {
+        dprintk(XENLOG_INFO,
+                "vIOMMU type requested not supported by the platform or Xe=
n\n");
+        return -EINVAL;
+    }
+
     return 0;
 }
=20
@@ -791,6 +807,9 @@ int arch_domain_create(struct domain *d,
     d->arch.sve_vl =3D config->arch.sve_vl;
 #endif
=20
+    if ( (rc =3D domain_viommu_init(d, config->arch.viommu_type)) !=3D 0 )
+        goto fail;
+
     return 0;
=20
 fail:
@@ -1038,6 +1057,7 @@ static int relinquish_memory(struct domain *d, struct=
 page_list_head *list)
 enum {
     PROG_pci =3D 1,
     PROG_tee,
+    PROG_viommu,
     PROG_xen,
     PROG_page,
     PROG_mapping,
@@ -1089,6 +1109,11 @@ int domain_relinquish_resources(struct domain *d)
         if (ret )
             return ret;
=20
+    PROGRESS(viommu):
+        ret =3D viommu_relinquish_resources(d);
+        if (ret )
+            return ret;
+
     PROGRESS(xen):
         ret =3D 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 463ae4474d..50e4f5fee4 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -34,6 +34,7 @@
 #include <asm/arm64/sve.h>
 #include <asm/cpufeature.h>
 #include <asm/domain_build.h>
+#include <asm/viommu.h>
 #include <xen/event.h>
=20
 #include <xen/irq.h>
@@ -2057,6 +2058,7 @@ void __init create_dom0(void)
     dom0_cfg.arch.nr_spis =3D VGIC_DEF_NR_SPIS;
     dom0_cfg.arch.tee_type =3D tee_get_type();
     dom0_cfg.max_vcpus =3D dom0_max_vcpus();
+    dom0_cfg.arch.viommu_type =3D viommu_get_type();
=20
     if ( iommu_enabled )
         dom0_cfg.flags |=3D XEN_DOMCTL_CDF_iommu;
diff --git a/xen/arch/arm/include/asm/viommu.h b/xen/arch/arm/include/asm/v=
iommu.h
new file mode 100644
index 0000000000..7cd3818a12
--- /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_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;
+};
+
+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_typ=
e)
+{
+    if ( likely(viommu_type =3D=3D XEN_DOMCTL_CONFIG_VIOMMU_NONE) )
+        return 0;
+
+    return -ENODEV;
+}
+
+static inline int viommu_relinquish_resources(struct domain *d)
+{
+    return 0;
+}
+
+#endif /* CONFIG_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/Kcon=
fig
index b413c33a4c..fbd56eb990 100644
--- a/xen/drivers/passthrough/Kconfig
+++ b/xen/drivers/passthrough/Kconfig
@@ -35,6 +35,12 @@ 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.
=20
+config VIRTUAL_IOMMU
+	bool "Virtual IOMMU Support (UNSUPPORTED)" if UNSUPPORTED
+	default n
+	help
+	 Support virtual IOMMU infrastructure to implement vIOMMU.
+
 endif
=20
 config AMD_IOMMU
diff --git a/xen/drivers/passthrough/arm/Makefile b/xen/drivers/passthrough=
/arm/Makefile
index c5fb3b58a5..4cc54f3f4d 100644
--- a/xen/drivers/passthrough/arm/Makefile
+++ b/xen/drivers/passthrough/arm/Makefile
@@ -2,3 +2,4 @@ obj-y +=3D iommu.o iommu_helpers.o iommu_fwspec.o
 obj-$(CONFIG_ARM_SMMU) +=3D smmu.o
 obj-$(CONFIG_IPMMU_VMSA) +=3D ipmmu-vmsa.o
 obj-$(CONFIG_ARM_SMMU_V3) +=3D smmu-v3.o
+obj-$(CONFIG_VIRTUAL_IOMMU) +=3D 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;
+
+int domain_viommu_init(struct domain *d, uint16_t viommu_type)
+{
+    if ( viommu_type =3D=3D XEN_DOMCTL_CONFIG_VIOMMU_NONE )
+        return 0;
+
+    if ( !cur_viommu )
+        return -ENODEV;
+
+    if ( cur_viommu->viommu_type !=3D 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 e2412a1747..0a155fe615 100644
--- a/xen/include/public/arch-arm.h
+++ b/xen/include/public/arch-arm.h
@@ -327,12 +327,16 @@ DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t);
 #define XEN_DOMCTL_CONFIG_TEE_OPTEE     1
 #define XEN_DOMCTL_CONFIG_TEE_FFA       2
=20
+#define XEN_DOMCTL_CONFIG_VIOMMU_NONE   0
+
 struct xen_arch_domainconfig {
     /* IN/OUT */
     uint8_t gic_version;
     /* IN - Contains SVE vector length divided by 128 */
     uint8_t sve_vl;
     /* IN */
+    uint8_t viommu_type;
+    /* IN */
     uint16_t tee_type;
     /* IN */
     uint32_t nr_spis;
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 18:31:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 18:31:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073353.1436407 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk5P5-0002ts-5V; Thu, 07 Aug 2025 18:31:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073353.1436407; Thu, 07 Aug 2025 18:31: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 1uk5P4-0002oZ-DO; Thu, 07 Aug 2025 18:31:50 +0000
Received: by outflank-mailman (input) for mailman id 1073353;
 Thu, 07 Aug 2025 16:59:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5oaB=2T=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1uk3xo-00076W-3P
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 16:59:36 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e4cf57d6-73af-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 18:59:34 +0200 (CEST)
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com (2603:10a6:102:ea::23)
 by AS8PR03MB7336.eurprd03.prod.outlook.com (2603:10a6:20b:2ec::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.16; Thu, 7 Aug
 2025 16:59:29 +0000
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f]) by PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f%6]) with mapi id 15.20.9009.013; Thu, 7 Aug 2025
 16:59: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>
X-Inumbo-ID: e4cf57d6-73af-11f0-a324-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MdARz9YZHH9R86xxx+WlN/widb1iN5V1vq2JUm9qXHfLlqPF5o2ePgjEDKlToNs8CK1xdLhKYdbXNnpnFTSq78wQD31sUrxppnYfS/gOMh6Og9EBf0vrETH5i5ArSGL7DLbxvh3MNxk4b1kdkIl5TKE3AycgNvDz5Y++o1dIziKDXCTE2a/YMPfC8bDS9oefbGKQFsIX17MJHaeVnBMS1r5eaHCEpqK1JThFSvZcnV8Zp0BLS+Kbxa1mcLbYwxePIAyLUQjK11J71uNVTMm88IL20nBs5tkqDS1H4f+VG+H+7Flq6dGEwqHUVDne63QnFVO2QOzvFspwpHf0TH1O9Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=5OBPEBLSadQAGgVsqDpXNpr3niqH2AxeuuS4TFN9R9c=;
 b=I6Wsa0D3pT3z/2AtJ6TdZtCVrHeHvNQXMTIjo/3FfNUtjQ0Jc77idqILHT5nLfkc3/8IIYiEY20xmRZVpylv/elSgcG2pyET38CzknjKTFLMSTtFfVRMppF/D9GerDGhK+NnQ7cL/vaP97+1tnZVUYFWzwDoIsRMNQ/GniPhnJJFh9f21SIN6Darua3b3XR+xBTD4pDThozR/dMezUAx8onVHPggG/d/lUnAzSNHYH9MtxHRw831NDoRhEcR1AJhyvfj/IZOuatdlJvHwImelHfCHA9Q+1lzpbB5Di84gdtfDlNruTsmcoMstvJz78thEIsr3P4BYG2gdRevUpUK/A==
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=5OBPEBLSadQAGgVsqDpXNpr3niqH2AxeuuS4TFN9R9c=;
 b=U2hsHvVkd2EWlm9kQRhAeMk5s6ufVWjWcstZDkLsZu998tac8xfYXoR4fTcxOoDG1KVkqaKc7zAZlyvr+xOhr3HWM/v4kNU9luYtfNIO4HG4H3/MFbI2xNHo5t4XTVwzT435M8eHX2F8C5LEmxUYFlSlZgFIx3Dd5TLVrDib9zMHpdv8ydm98IA9x6qzoOyZv3il4AdP1jP3ZPR4VDn4O7/+k+8Mjoj71QeylrSUJ5eQp8ym3HW2xC3H+g98zMsWagf7OdvAWaQmRcGWsi3yuyDmYutAYFM21i0znlo5ihNW2ogy1OplHfRUrqNVbbOyTeane14qZ20ww6/IDV49pA==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: 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>, Milan Djokic <milan_djokic@epam.com>
Subject: [PATCH 14/20] xen/arm: vIOMMU: IOMMU device tree node for dom0
Thread-Topic: [PATCH 14/20] xen/arm: vIOMMU: IOMMU device tree node for dom0
Thread-Index: AQHcB7yjVZWSIfKg2EWj5KqbQYkZRQ==
Date: Thu, 7 Aug 2025 16:59:29 +0000
Message-ID:
 <b723bb23e0ede21ca312a2a9f3c7db00ce5e193b.1754580688.git.milan_djokic@epam.com>
References: <cover.1754580687.git.milan_djokic@epam.com>
In-Reply-To: <cover.1754580687.git.milan_djokic@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: PA4PR03MB7136:EE_|AS8PR03MB7336:EE_
x-ms-office365-filtering-correlation-id: a27e1c5f-8182-4af8-bbd1-08ddd5d3c619
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?vx8ht0I/phsmPbDtWLtomODWn758u2VW0HTy8Sb9vT+iycMWFrd7xV9aqK?=
 =?iso-8859-1?Q?p2gT5fG0NYdQEeyDEm7uFRfi6ntUd3H6K2uvcwlEdW0XkWGyY5HP8PHJPD?=
 =?iso-8859-1?Q?SlyP/dR6Kh0pnpIYpa5EvLZPp4N0dMjBncSqfLlTDAOaH28+/3w+nraFTQ?=
 =?iso-8859-1?Q?gls3uTUfflRPTAkNWcH1XGdKptjho0XNGT/Ohu/WPK7cD03hCsDlH78/GL?=
 =?iso-8859-1?Q?AHemYC7kMEB9Nte8xLCzlNIFOjwu2K3GRlM5MLoNlyZu9SaAmq7Auan4Z1?=
 =?iso-8859-1?Q?J2DbCZN6k2U1lBU4TK0btUZYYp+uA9NJEdQtd7QmuGJvVLcXjVCy+f4xcU?=
 =?iso-8859-1?Q?yqnI9i/H8YUzTXyOKTieAYv7fBGom9kdudpRfgWro8kQfm1Fqyv82LIJBz?=
 =?iso-8859-1?Q?H8jF5Zk6U+m5d+79pI+WsL6UkMfu0O6c4MF7Zj1fV3AOtP/uJFEKtdOG1z?=
 =?iso-8859-1?Q?bOPqwVxMJTQlQTnynKP7LCiiOf5TZ2YSszwqDeINsSGv7GhwjmNrrDFf4v?=
 =?iso-8859-1?Q?eQHf4plqZLM3Nz5hVg5UUQn5mDzPhLVhsgSaR1vR+DvszDfZ3j4dpnK2Ct?=
 =?iso-8859-1?Q?bA5FjgPh+8zypya1LwVp/qn12ZevDtuDM/kEeXRTORxeHPqJmuMZmFIhjl?=
 =?iso-8859-1?Q?wlUbsSH+yTzypYX42r3eQBBRjH71O4Ng0UZXHBUEXvM+9fGE/i7Y6Oto9e?=
 =?iso-8859-1?Q?D8vVYcYxBMdJ5zzuxF3G09QftzOLleQ69G+Vvk6ZUlqOSHWQrKiNGq+6zm?=
 =?iso-8859-1?Q?C2ruHjZ5X8KdHe3TZIwtcox8BS4bcmaKSrTl/Zart44c5VySB/Zezu1o5O?=
 =?iso-8859-1?Q?0fOT8xI456YY4mau0uEP2mXhXMEL9+hFUPZ/RSu8mLUg/sj8MPXj2Abbkx?=
 =?iso-8859-1?Q?CfmGc/35pujBZkjhPhfgEf3pOpeSAaYs95B4FfN/cbJJiwrR3JSyv3VKra?=
 =?iso-8859-1?Q?ge4NAvxQ9Bi15eYyhb1Hpk0c4rwyHYUSwmrDtlxUqxkgngLYzMFp8IkKs1?=
 =?iso-8859-1?Q?MbzEjMuQO7A3bod8XYX70dU0b4F26ihltooGlEqD+N9wWi2/hFKcwKqW0P?=
 =?iso-8859-1?Q?Z7tLlQPWi1wJ8+0AyQ2c2BV0B1AaWa8eBxpOfN784fy91ht/Wso5LyqUJZ?=
 =?iso-8859-1?Q?CvdgnH/NVeiZC3IWIStBu2M7/ZOO6ZCKybLtKzXcra05XA164luRYlDW8Z?=
 =?iso-8859-1?Q?8Z4PKzZZ/AMuz6zmTmA0c/WPbi+jTbWHffLgUc7Yea1VIHvYVhhOVaM+HR?=
 =?iso-8859-1?Q?y+avjHS4a2kDuXeSQUTmRYbX3EuCTjLGEqxznrIqsn5a0/Y1Z9w+CtCP3D?=
 =?iso-8859-1?Q?jqGUmaAGZGNRgJcUIrg0UItvFTykyLz0LtYHV3VLqmzB1h7IfBaJ0+yfIi?=
 =?iso-8859-1?Q?p2KgjaJrgt9mzInv3tjLEWukx4Idd8SoAVXwe4dHtAHXWqtIIUTXp8VLaZ?=
 =?iso-8859-1?Q?YCdw4j6F4Zo8ykIMEOBcySmoyrWLTh9turc6Qx1xeAUAU+aPUI0T7VuKxA?=
 =?iso-8859-1?Q?3lSqt1n/SmpwIUQhAgLo6KBzUUwACNHMJi471en1et6w=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR03MB7136.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?HgeC1+Rq4fhKH58OPL4SIJoM0r/uOh/Ti4qFKBt31u5vEoXK5Gu4xeG2Zv?=
 =?iso-8859-1?Q?dGp9faSGNuFUjZe87n7Ri32hLmAY3F5BJe7/9mzDAvQb59375vc5MO0yp3?=
 =?iso-8859-1?Q?rSOUHRB7GUUy1OkzjPgeV3JVXgGWESp9bivHCRqcbydsiD3VPVHr82w6KQ?=
 =?iso-8859-1?Q?AY9BecfVJdYfu8FnGCpWMGcCKqdHuFIZsUF5fKfnkt7WU+Jle1EZ7f84tQ?=
 =?iso-8859-1?Q?qA1f5EK+EEyW/9tbneDtrr02EOte069+ogK6Ivm7t34b1cJHSDKgIQ8egG?=
 =?iso-8859-1?Q?GJL95KB+z9aMP+H5K6aP0uHoXStow4eM/bt75KR6W5zk7+ZlB4GgOkS3RU?=
 =?iso-8859-1?Q?ODWXZvmFr/6OvZXV8oXMx8KPWnoXWDlg06rB8RGvfegl8ghP2iq0gSqwYk?=
 =?iso-8859-1?Q?ONmz+vdDgHaMB8D6zu+aQC+EDvBjzRWt7rDserzvgaYT8iqnH1rPCq8P8A?=
 =?iso-8859-1?Q?EWaNHlh8ZQBYBqO3q9vOAH+YD2S5gLe+w7WBgcfnieC3S3phZsBEG3/W0p?=
 =?iso-8859-1?Q?DEbG9/tr28xUMTyEdwQ565kFBabavx15dNpxaHmVNNYYAfAoRuBEzrWLuJ?=
 =?iso-8859-1?Q?WvrxCHNKgusTTQcdvPqXmegwq1s/bcjlQM2s54/lkJizc7P159E3i0hMFe?=
 =?iso-8859-1?Q?fd7jrF/DrBMmcviB+NoQ69/h4sw0T8jVytTpN6ebW/JrRDEkKkOr1zt365?=
 =?iso-8859-1?Q?nfDnJBxGYwmXTAlIW9pqJzw+xFtZlw+KT15hk4yZL8H7zj7DSQtp5xotc2?=
 =?iso-8859-1?Q?Lf6THRkbhqEBjLBaCl8k9EpUJdkZ2uf+QuaeOtTcQvPb1dnQjYYsAyJAIs?=
 =?iso-8859-1?Q?HUsEBD0woZR7/CtrGkgIoeUksGammS4+HrcrpuQwovvYu3MrmHvBRPwsrp?=
 =?iso-8859-1?Q?y1Hc4l9Ubg4oDPQa0/vjJyIXnWy51zEzeK7PRb9c9DLtswImuv36hlev/i?=
 =?iso-8859-1?Q?u+6MoJ9r87Y7uEyQYcXJqjDHDm3JdoShZt89g+rDOPjSfP1Z2zGha6Jx8D?=
 =?iso-8859-1?Q?y6wgKPBwTdKLOU1ebg987wAh5mzSEaUY6OuCHoYWJDAv4juM+M7JrQAUG0?=
 =?iso-8859-1?Q?Q55SZbwmnvnBNA5ToziVE6pjB1xG8hvgc7xuW01cLVSlNsUaOk1kBRlmDc?=
 =?iso-8859-1?Q?4eAfmkrq/23u2651DNiG8OFyN8fZfoUuOaVDXwyHtxPo2mZGhA1ATBOCEX?=
 =?iso-8859-1?Q?BIYlkZudPzx6zLT3j0GTMPJ1Sw5OsPQoQZQhSYBARKglW+VwAqSRfW2wN7?=
 =?iso-8859-1?Q?+Mt0EVVGB7QG5EphX94y13QviXq6oXEJrcaFL5YU3xv3PFYdsdwAAuYxpA?=
 =?iso-8859-1?Q?LjuPWmWhR6zpeH0RdQOY5Kok0/t0FSr9GSiqzDbCwnzfWcacmjpu6KAQqr?=
 =?iso-8859-1?Q?6Uc2iG2fYfH92y4ke2+ch/NFMeU8N07RWoW0Rbk2noVbkXFddjRG+ZtPWS?=
 =?iso-8859-1?Q?1V3EgP7UD9tF3ErcEIQQYM3CLyf71EOFLuo6kiU3d0wH+OrsJPsY0NuykQ?=
 =?iso-8859-1?Q?YGgZHp9Ke76/KIwXMeUH4CO6lWdXj8aSZEDgPqCt7ZdMOFrBWEJMbdoA8x?=
 =?iso-8859-1?Q?6r+fjM5MZZ7rVockg6uL2qePs4QfpXJs5mVExOY7EP54t9JWEt3OytmDdy?=
 =?iso-8859-1?Q?YCtdGW161p/dsu0dQP+FwQPuB3NM6y7pml6d6/XxRCHJLdltWT+5FQmg?=
 =?iso-8859-1?Q?=3D=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: PA4PR03MB7136.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a27e1c5f-8182-4af8-bbd1-08ddd5d3c619
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Aug 2025 16:59:29.4780
 (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: X4I64MS3a30bM3UtXqKGwkzKQm2Nj/vxTz/y/dMkPnJKOltLPi410wfxJqZLvNJ/iNdXcEEAcBcoFS9vMyJ0Yg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7336

From: Rahul Singh <rahul.singh@arm.com>

XEN will create an IOMMU device tree node in the device tree
to enable the dom0 to discover the virtual SMMUv3 during dom0 boot.
IOMMU device tree node will only be created when cmdline option viommu
is enabled.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/arch/arm/domain_build.c       | 94 +++++++++++++++++++++++++++++++
 xen/arch/arm/include/asm/viommu.h |  1 +
 2 files changed, 95 insertions(+)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 9d2b0ea928..aa2b3bdfcc 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -1559,6 +1559,95 @@ int __init make_chosen_node(const struct kernel_info=
 *kinfo)
     return res;
 }
=20
+#ifdef CONFIG_VIRTUAL_IOMMU
+static int make_hwdom_viommu_node(const struct kernel_info *kinfo)
+{
+    uint32_t len;
+    int res;
+    char buf[24];
+    void *fdt =3D kinfo->fdt;
+    const void *prop =3D NULL;
+    const struct dt_device_node *iommu =3D NULL;
+    struct host_iommu *iommu_data;
+    gic_interrupt_t intr;
+
+    if ( list_empty(&host_iommu_list) )
+        return 0;
+
+    list_for_each_entry( iommu_data, &host_iommu_list, entry )
+    {
+        if ( iommu_data->hwdom_node_created )
+            return 0;
+
+        iommu =3D iommu_data->dt_node;
+
+        snprintf(buf, sizeof(buf), "iommu@%"PRIx64, iommu_data->addr);
+
+        res =3D fdt_begin_node(fdt, buf);
+        if ( res )
+            return res;
+
+        prop =3D dt_get_property(iommu, "compatible", &len);
+        if ( !prop )
+        {
+            res =3D -FDT_ERR_XEN(ENOENT);
+            return res;
+        }
+
+        res =3D fdt_property(fdt, "compatible", prop, len);
+        if ( res )
+            return res;
+
+        if ( iommu->phandle )
+        {
+            res =3D fdt_property_cell(fdt, "phandle", iommu->phandle);
+            if ( res )
+                return res;
+        }
+
+        /* Use the same reg regions as the IOMMU node in host DTB. */
+        prop =3D dt_get_property(iommu, "reg", &len);
+        if ( !prop )
+        {
+            printk(XENLOG_ERR "vIOMMU: Can't find IOMMU reg property.\n");
+            res =3D -FDT_ERR_XEN(ENOENT);
+            return res;
+        }
+
+        res =3D fdt_property(fdt, "reg", prop, len);
+        if ( res )
+            return res;
+
+        prop =3D dt_get_property(iommu, "#iommu-cells", &len);
+        if ( !prop )
+        {
+            res =3D -FDT_ERR_XEN(ENOENT);
+            return res;
+        }
+
+        res =3D fdt_property(fdt, "#iommu-cells", prop, len);
+        if ( res )
+            return res;
+
+        res =3D fdt_property_string(fdt, "interrupt-names", "combined");
+        if ( res )
+            return res;
+
+        set_interrupt(intr, iommu_data->irq, 0xf, DT_IRQ_TYPE_LEVEL_HIGH);
+
+        res =3D fdt_property_interrupts(kinfo, &intr, 1);
+        if ( res )
+            return res;
+
+        iommu_data->hwdom_node_created =3D true;
+
+        fdt_end_node(fdt);
+    }
+
+    return res;
+}
+#endif
+
 static int __init handle_node(struct domain *d, struct kernel_info *kinfo,
                               struct dt_device_node *node,
                               p2m_type_t p2mt)
@@ -1627,6 +1716,11 @@ static int __init handle_node(struct domain *d, stru=
ct kernel_info *kinfo,
     if ( dt_match_node(timer_matches, node) )
         return make_timer_node(kinfo);
=20
+#ifdef CONFIG_VIRTUAL_IOMMU
+    if ( device_get_class(node) =3D=3D DEVICE_IOMMU && is_viommu_enabled()=
 )
+        return make_hwdom_viommu_node(kinfo);
+#endif
+
     /* Skip nodes used by Xen */
     if ( dt_device_used_by(node) =3D=3D DOMID_XEN )
     {
diff --git a/xen/arch/arm/include/asm/viommu.h b/xen/arch/arm/include/asm/v=
iommu.h
index 4de4cceeda..e6018f435b 100644
--- a/xen/arch/arm/include/asm/viommu.h
+++ b/xen/arch/arm/include/asm/viommu.h
@@ -19,6 +19,7 @@ struct host_iommu {
     paddr_t addr;
     paddr_t size;
     uint32_t irq;
+    bool hwdom_node_created;
 };
=20
 struct viommu_ops {
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 18:31:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 18:31:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073355.1436413 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk5P6-0003DU-Al; Thu, 07 Aug 2025 18:31:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073355.1436413; Thu, 07 Aug 2025 18:31: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 1uk5P5-0003AE-N8; Thu, 07 Aug 2025 18:31:51 +0000
Received: by outflank-mailman (input) for mailman id 1073355;
 Thu, 07 Aug 2025 16:59:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5oaB=2T=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1uk3xp-00076W-3c
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 16:59:37 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e513b6e4-73af-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 18:59:34 +0200 (CEST)
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com (2603:10a6:102:ea::23)
 by AS8PR03MB7336.eurprd03.prod.outlook.com (2603:10a6:20b:2ec::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.16; Thu, 7 Aug
 2025 16:59:30 +0000
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f]) by PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f%6]) with mapi id 15.20.9009.013; Thu, 7 Aug 2025
 16:59: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>
X-Inumbo-ID: e513b6e4-73af-11f0-a324-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HGcIWVJAgzSJ7SDTPk84jg2pvaskaLRYXIEcNDjTwQn5DUIGqSFDhtitobO2Zvj8rfdIrmdnOJRhzqdWBGho/OIzdFBllO4uEnIOLVIAnerr2eQ8F6JqDmd5xj0KAr8jSKYcGdJz4mlH9RNoURLRf4iH4visn3qKJwFmwvBGTIqnc6HIrMsrklpd5n+aXf/qV2xXVwHJ66psBduhtQCOpQEgo1hNO9Cn+dvssQNXPbifuxGaxrcM2e5TB14Bm6DYkrO1bKyQq5BIggD2mo8B1qKTm0xndeDXinVB3ntFnuiZB/MlHhyIc1c7AvpVptGEKyPeQhLiWR8U3F4ymGtTwQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=i0wLAFBe2B6lmF1G1qgjASfVwAIUTNN68hmplMu9YVA=;
 b=BdIJzCmkCHHYr5z0qNQOxUT1WgTYw/rekpiMq+SribW4vzH1ZFAzFYx3DnHS9tjwA/s1zqAtyzxwoiPNN0FJchJDWkwxFXU9zqYoM8u8gUMtvGaOhIVIgFfy2y/zJb7/LVChp8UQ+dbx62l9nSZzJ5pWK+zldjt6o6tg2ZO4f2Xn27UyZawuh6Ss03VQGCq1ONjZLUmTsS0Y0kM6mLAiyaiIoccpS+O4GPA75UOshAsDT+NE8SKjrbhFa89tw/hxmbdXzYseRDo4vqTdpOm4tP6lmcWCR7uHwhLTjXquv1F9l8pGL1UkYmyzGCqwhL4slRtZcriUlpMejp8wHS4kzQ==
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=i0wLAFBe2B6lmF1G1qgjASfVwAIUTNN68hmplMu9YVA=;
 b=BJg37zTeOjOgdTuDprqjLZQBFPCz8cU3gdLr6x/AlnShneL45HIRt+cWsAiBllOWLdIY530eN9TIAsqHbWpbH2ipjCpLgNoGAVTyVHHcTntO7ElMATrYby8kA+2klBIf+Q52cixZT4qnFShfEcsAHT6VsXA/9PeAEiprSZggaZFsKBjudFbnDsBYV6iYWeNFtkC3DZXZG3sdducBETPK/ZxZaJ7Y3E92ZFwYVkfJpZbH5KHxtMbYmq+RiN5GJH2rrYi//wEm13tJYCi3ve6MiLkqEDPBjthOE082dmEJXExXvLtBAwQIk0n7u8t0/0k3m7Qq60G23Q4CAGmceGMxDg==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: 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>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Milan Djokic <milan_djokic@epam.com>
Subject: [PATCH 15/20] xen/arm: vsmmuv3: Emulated SMMUv3 device tree node for
 dom0less
Thread-Topic: [PATCH 15/20] xen/arm: vsmmuv3: Emulated SMMUv3 device tree node
 for dom0less
Thread-Index: AQHcB7ykWuFnTntxcE+YZDhqvaBxqA==
Date: Thu, 7 Aug 2025 16:59:30 +0000
Message-ID:
 <0be8cd7abe1c3b2fde6cd4a0004e443f14f99d92.1754580688.git.milan_djokic@epam.com>
References: <cover.1754580687.git.milan_djokic@epam.com>
In-Reply-To: <cover.1754580687.git.milan_djokic@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: PA4PR03MB7136:EE_|AS8PR03MB7336:EE_
x-ms-office365-filtering-correlation-id: 06e2b492-ee99-4c72-38d1-08ddd5d3c6ab
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|7416014|376014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?0CzW3FYuGQdkUuk7YOPgePNQufbmtKL2y2dWL3sfwGBvv/Ncg7Qa/kgfGx?=
 =?iso-8859-1?Q?/ejnFXv9UTlo8zkQiL8TIbwXVJezIt94tZkv4tGtTboXQvganot0kgtI0g?=
 =?iso-8859-1?Q?nMLgtb27k/ThR0Qv3jKDsuJvO2WXhRoAGMXmfRcUiwQjMqgUfjdYx+W/7j?=
 =?iso-8859-1?Q?94Sk+nj5Vlpa13WK2o3iQQl1+5mF8SPQ453T8kBRLYO8ekoiHMtsj3JDmU?=
 =?iso-8859-1?Q?olJRszZ4NCL3C++ctIMwb6LFuvt0oU+KAxUCpyvjmWTZaPU9NHXl9dtHHt?=
 =?iso-8859-1?Q?pz+mVcbp1XG1HF0rtLDDqxuP1twKew4f6fdbTtArVSQq2VYYQhtq0nKtFR?=
 =?iso-8859-1?Q?OV5xaOYi9CGAyT6NSsAZWQpt8kG+1kX8diX4QF3PoY4JRmXkr4lP7hyXS1?=
 =?iso-8859-1?Q?Lr+cA/uCHJtvbhol2kxD9UKN/E/IdCk1JrtlA8yuGURygBkmHygJqAueDF?=
 =?iso-8859-1?Q?vMIrrlLwMkT34ZPWY5OrmW8yHegUNyV9iK/ln+Iz19N8yYU2XVx/1c6MLA?=
 =?iso-8859-1?Q?psuvwHiEbMB7gT+fWjtXw439hv9ht3F1gSHwZn1zUIzVFoPth93qVPLl3g?=
 =?iso-8859-1?Q?tJzg6r0dL8xlan1DDfShpKs7Xvboq/+sXMZohQYik+2vkpSp2PskZWox/i?=
 =?iso-8859-1?Q?K1w5tk3qKlBEtc1IjI/LPHKyFEpMMS4gGhsxCD7pXp22E/jgvBwmeMalFv?=
 =?iso-8859-1?Q?1kZO587+OBRoiacEMG4edIbSoNPosXU7iFCewV/mzkWv3FQTLLo79rUpq+?=
 =?iso-8859-1?Q?Ze4BpmvnafcBqUJJ1yVyWzExWKu1N+tdpC45xIuf6ntf2shjfd8PSpnDlz?=
 =?iso-8859-1?Q?3Mthds/tf7aM/I8sKoaFsE6X+Z+g+iV3EKRJrFtmXDGnMehcWaFR/rYn03?=
 =?iso-8859-1?Q?Av3ddbLdxwStNBpO02g72/V1X8geVcgF4MBvyRkTxorBwigSaeQrhnqgzO?=
 =?iso-8859-1?Q?1GLksVHxWn+bzaRTE08vM0Yo2Vxi5VLLPjnssblcGfa5xMtf+XBEcp+PBU?=
 =?iso-8859-1?Q?5WRXPDPHTfAexpFy5wT4gpQpmCIvPeVffZRSh85bO4lWD1IJ4uFNuiIYEE?=
 =?iso-8859-1?Q?AGfrrok9WsSUgtENIhWFvylUppDuLLzb3pp07aCrf2iYQItYK3C++Prhcq?=
 =?iso-8859-1?Q?3c77S27LauUcM/puQFf+KvBaH5z9dwD849cuU2uyrLRZNEkVTu5pge5L+N?=
 =?iso-8859-1?Q?7lAIwfu9uBxPitzOk/k8dF9AGXS6NkxQgAhfJEmARD9aiBhzoRk2YCZcF9?=
 =?iso-8859-1?Q?2vzNplLFmElRcTIc3YRnme9MkqkGg3ykMDtH4FeIV/G53y2A2EFIu+waZO?=
 =?iso-8859-1?Q?/B9pr79ohROTuRjBz1cu9TVrQKdIh1KmUuEIzyi2k0WyMdbpTBz5y8KTqg?=
 =?iso-8859-1?Q?+EkczRymnxpUQqwc5NZAwiS4MykPYGmbOgqswAwzS0fB9Khegzs8mgJJvc?=
 =?iso-8859-1?Q?qKcIyyNv9QM87k7/k/7ROekAsaHJKsrdc2lKGGnxSS0MyQCFdBagdMNSqG?=
 =?iso-8859-1?Q?dEk9TIA7CpUy820bWsyXlsf8t275BKkFJ66nKbBij71g=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR03MB7136.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?d7faCe9I/Z75OX0aI4If5Rpruzx9XL+8dZIOM29ouHBS3FEy3tP5/zeWEo?=
 =?iso-8859-1?Q?btFzs3L/2DukZANeGB4ejI9cAjwB3ZOSF4agxzeIXLc7mvXeEdA3mG9yVB?=
 =?iso-8859-1?Q?mI2Us9KHZVVhomM3oEnJ1gULGLQAN9PU3/gDIKxUM6iAmYEfkCX2FrQT9a?=
 =?iso-8859-1?Q?topv1X3YXPJ1DBo8y4riWraT8Vkvk07SJSULw5sBQ060Y/v3UASD7ifUaO?=
 =?iso-8859-1?Q?LJbrcVf1Y5OZBs7ZQ6PC9X8Ky4V6kMtMk2jLajxpnPneFhpPRMGv/tSzsc?=
 =?iso-8859-1?Q?k2MTP+z817jZlm7w9KlNOfARoioe1MvqdhCJxuUGhpoJxtghmdjaVO/UpM?=
 =?iso-8859-1?Q?tMtK7esEPa0tt5VbrOAkTCT0vUvS20YR25PQh0Mz8exZxtgMlUUE7CrkuP?=
 =?iso-8859-1?Q?mcB2jdfKAhdlkktEwAkLll5O2OL7IkFBes5iobkl4jxXR9LEJA1emHvqpf?=
 =?iso-8859-1?Q?0iOicG4CDucphujeB9oIoAB+7yVDWBB/igyE8+f5jg82mIk8P4MTCDfN5X?=
 =?iso-8859-1?Q?259WnX0Q7hfpQbOhmusrWciZ1Jyv4Nj9kPETWEMIj0121ny3pnkAMu3qmz?=
 =?iso-8859-1?Q?a737RPIXlgeD/wewrxGf2pqoO0hpeaZ4VLP1OFZ7PkDVXeeRz9q7CEk2K+?=
 =?iso-8859-1?Q?R/hTWTCYyLJ/83UD5cSgKQdN+CYau+aRCcahFaxXqplScrnfvt8eE7/PQ3?=
 =?iso-8859-1?Q?SOUCMuOkAYXl0uIKJddJQpGuUwr8WBgjJMae8uC2Kxk2c1e6kh1mr+Q5O2?=
 =?iso-8859-1?Q?RunkF9lw8mIfgr6AQTMrvwuLRYGF0jo7gSIKaGbJ67Zpdrd/UdycT8XACO?=
 =?iso-8859-1?Q?XEz7UmYBGxQnpNgavo7QfEund2TwTCVC177fwY9BACM0TC0aqROx87ZoGk?=
 =?iso-8859-1?Q?3LU6bqXhHgZErWEctQHjpvIvzkzrUkslLkmG2+nS7r8Cu6TCpplyFa5PbN?=
 =?iso-8859-1?Q?d2Rq01qw1pbFD/SSsVSDqWC5uP74MBJMJTBEzmPeV2RzCL1jdQ5fPsMfer?=
 =?iso-8859-1?Q?eueyCNFYpmg6bYRMdaHGEgfthNj2oiBU1rnz088x28xon+1KnlNngNbNtv?=
 =?iso-8859-1?Q?+5pPqviQxdMIF48Kc1xss4pn2E/uyOCrfRwkremUYWqPJe3ZMRCsoKjRyf?=
 =?iso-8859-1?Q?XQSKrLG0bwLyixLojrxDNgU+LP20GX5TanZlAZBSNdhigYkkqPMGY6dg+C?=
 =?iso-8859-1?Q?CJjJZwA3JypItv6YfaHHpfP2E7l6q8rLbbaO8njmh/FadBCB18hOi/FVmU?=
 =?iso-8859-1?Q?9O7Q72Xn7e4nPDAW+J+kkTC6K8bWM+txj3Man3BJSsYB+zIMBPYLNn/PyY?=
 =?iso-8859-1?Q?FeDpwBsr3yg7glb5rvykzYgsd1wBSGo3mp4XIuyeC/fKrTRu/DbH+xho/h?=
 =?iso-8859-1?Q?OfjFasaz5Xb6/Hik98NKB9NjRaZLm2SAz+hPRj9wWDi+GergIYrw0CYlYw?=
 =?iso-8859-1?Q?GuL12xuhFsVU3eAicT/3jKVJAeSCGxg8HvFMkUTEL+CZtJfgIDLu+zfick?=
 =?iso-8859-1?Q?sHz+tdJTAxz+PoBBYnwAvnzynADrmu8yjn5fQX0YyN5FyduP72TkHMF53o?=
 =?iso-8859-1?Q?lGxt3G02W4SXhnvPgCWhHU98Hv2pPpQjpMH/uSPLvX2Z2fBJmegPFNomxn?=
 =?iso-8859-1?Q?nbwd0ACEdSuRxf+bnSUraaMDuR7LpOtzIpyOyH7+hbiZS0sK9769MpmA?=
 =?iso-8859-1?Q?=3D=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: PA4PR03MB7136.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 06e2b492-ee99-4c72-38d1-08ddd5d3c6ab
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Aug 2025 16:59:30.4106
 (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: CKgTFF5H+wlbIq0Yr9mmupQZG1v3keFLYwzG0rvLWrUAySSCO9yOBFmLs1Ix0Q4jpgPc/IjWqkd8K8k8RS9DhA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7336

From: Rahul Singh <rahul.singh@arm.com>

XEN will create an Emulated SMMUv3 device tree node in the device tree
to enable the dom0less domains to discover the virtual SMMUv3 during
boot. Emulated SMMUv3 device tree node will only be created when cmdline
option vsmmuv3 is enabled.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/arch/arm/dom0less-build.c         | 53 +++++++++++++++++++++++++++
 xen/include/public/device_tree_defs.h |  1 +
 2 files changed, 54 insertions(+)

diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index 1fa6df214b..1e526c10de 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -217,10 +217,63 @@ static int __init make_vpl011_uart_node(struct kernel=
_info *kinfo)
 }
 #endif
=20
+#ifdef CONFIG_VIRTUAL_ARM_SMMU_V3
+static int __init make_vsmmuv3_node(const struct kernel_info *kinfo)
+{
+    int res;
+    char buf[24];
+    __be32 reg[GUEST_ROOT_ADDRESS_CELLS + GUEST_ROOT_SIZE_CELLS];
+    __be32 *cells;
+    void *fdt =3D kinfo->fdt;
+
+    snprintf(buf, sizeof(buf), "iommu@%llx", GUEST_VSMMUV3_BASE);
+
+    res =3D fdt_begin_node(fdt, buf);
+    if ( res )
+        return res;
+
+    res =3D fdt_property_string(fdt, "compatible", "arm,smmu-v3");
+    if ( res )
+        return res;
+
+    /* Create reg property */
+    cells =3D &reg[0];
+    dt_child_set_range(&cells, GUEST_ROOT_ADDRESS_CELLS, GUEST_ROOT_SIZE_C=
ELLS,
+                       GUEST_VSMMUV3_BASE, GUEST_VSMMUV3_SIZE);
+    res =3D fdt_property(fdt, "reg", reg,
+                       (GUEST_ROOT_ADDRESS_CELLS +
+                       GUEST_ROOT_SIZE_CELLS) * sizeof(*reg));
+    if ( res )
+        return res;
+
+    res =3D fdt_property_cell(fdt, "phandle", GUEST_PHANDLE_VSMMUV3);
+    if ( res )
+        return res;
+
+    res =3D fdt_property_cell(fdt, "#iommu-cells", 1);
+    if ( res )
+        return res;
+
+    res =3D fdt_end_node(fdt);
+
+    return res;
+}
+#endif
+
 int __init make_arch_nodes(struct kernel_info *kinfo)
 {
     int ret;
=20
+
+#ifdef CONFIG_VIRTUAL_ARM_SMMU_V3
+    if ( is_viommu_enabled() )
+    {
+        ret =3D make_vsmmuv3_node(kinfo);
+        if ( ret )
+            return -EINVAL;
+    }
+#endif
+
     ret =3D make_psci_node(kinfo->fdt);
     if ( ret )
         return -EINVAL;
diff --git a/xen/include/public/device_tree_defs.h b/xen/include/public/dev=
ice_tree_defs.h
index 9e80d0499d..7846a0425c 100644
--- a/xen/include/public/device_tree_defs.h
+++ b/xen/include/public/device_tree_defs.h
@@ -14,6 +14,7 @@
  */
 #define GUEST_PHANDLE_GIC (65000)
 #define GUEST_PHANDLE_IOMMU (GUEST_PHANDLE_GIC + 1)
+#define GUEST_PHANDLE_VSMMUV3 (GUEST_PHANDLE_IOMMU + 1)
=20
 #define GUEST_ROOT_ADDRESS_CELLS 2
 #define GUEST_ROOT_SIZE_CELLS 2
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 18:31:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 18:31:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073357.1436428 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk5P8-0003VY-7F; Thu, 07 Aug 2025 18:31:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073357.1436428; Thu, 07 Aug 2025 18:31: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 1uk5P7-0003QR-3a; Thu, 07 Aug 2025 18:31:53 +0000
Received: by outflank-mailman (input) for mailman id 1073357;
 Thu, 07 Aug 2025 16:59:38 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5oaB=2T=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1uk3xq-00076W-3y
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 16:59:38 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e55ca74e-73af-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 18:59:35 +0200 (CEST)
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com (2603:10a6:102:ea::23)
 by VI0PR03MB10757.eurprd03.prod.outlook.com (2603:10a6:800:267::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.21; Thu, 7 Aug
 2025 16:59:33 +0000
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f]) by PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f%6]) with mapi id 15.20.9009.013; Thu, 7 Aug 2025
 16:59: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>
X-Inumbo-ID: e55ca74e-73af-11f0-a324-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yFpuBRn7HLjnX5gNJT2PBswLUn0uuw7Qph+u/FMkZJMti14v9V+HovCntAw4rtgawedSxbRWvPGLkIYxGi/cOH098vThCdzA88j+ygOn+OfSw1Xmwl0BNRdFh2yTKfxgNyxWKG/pa8KtVPUbkVyJB7V+TUh7Vs+wbXlVl5tpqtw6YDIxE9jsiA87l3J0NDc2qgPkthVgWdxf2xCn5GLn9Ydk5F+4jMPuP3BIIboY+Mh9opcEyj8VB7wKRI4KZBJSrUxAADS/YleIpyMClnYVPJFqptTDKpXQjPy1ExxjNlPWhUZ4E4S7HNxHIbdxqo2wuuQyYIbCRVnYmPHDRqSbBw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LRKz4SORhM6Udu82OMwS2LwE/KWoTxc6MuWquW1TEVY=;
 b=x+Ow/p2AmEa+cP+GEbILxHSTJCGsrnaPuXgtn7ipyXVAMgFfvSdT5XSBQcuKyYZybfmfAgApebkYCgrPl1qhtp2Aeve/VUCeu5qOhFW1YMII4sg3bx3k973wop3tVi8PVDPDfLanBe5vY+iiQOMsC59wG6QjAX+j6HNhbaxuozBgNdVYt4wV0TiTOWYw4vTs7hi6nlXQ6Q2+Ao3EHWAdrjgrcP4bi6La33eBBDvbM+EiS0WDkTpTkFU5iTQGEykUItoGpOtcfRUialKT9D1HoZUkViWntf86aoEWme5ZZMDVwQqdDSrZXabXG5bTw+fyQDbjlsZiWVeEbwTvApa1Bg==
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=LRKz4SORhM6Udu82OMwS2LwE/KWoTxc6MuWquW1TEVY=;
 b=LGsOaPVhOhCZC8YEP3kljAZKFyAC09y7eq2359+MWDnXKU7x8CD9auq//yvUosMytBAoGmqf3TUEpSuCyUxDAnGTs+YiPA+86KAmTlZ1GE9LIZhBFxxEZUcVUZ2nmAB4hYPchY9jDBkCnUjCLRbh2PKeDDia6hnxeIYnz07b7Uj8OizEYaeebkeHNt4YHWYf3N8ylLA7D7rcxzs5YPe1xx4CA0w618L3KnWfbegNUhR4GId0ywZ9FQuJ7u4AMla5PcZ1drNTklpUysBl5FPkW8ME7WSAEEedSe3Ow0ES5+/HjOzEURHDpPAXITjesEQFy7T/Kqgfgx6CtiEC/fa2cA==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Milan Djokic <milan_djokic@epam.com>
Subject: [PATCH 18/20] xen/arm: vsmmuv3: Add support to send stage-1 event to
 guest
Thread-Topic: [PATCH 18/20] xen/arm: vsmmuv3: Add support to send stage-1
 event to guest
Thread-Index: AQHcB7ylYt7xb8ek2UKgm42MUihrsg==
Date: Thu, 7 Aug 2025 16:59:33 +0000
Message-ID:
 <0ca83cfb5d360d80813fc4ebbd3b038a3195cdd1.1754580688.git.milan_djokic@epam.com>
References: <cover.1754580687.git.milan_djokic@epam.com>
In-Reply-To: <cover.1754580687.git.milan_djokic@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: PA4PR03MB7136:EE_|VI0PR03MB10757:EE_
x-ms-office365-filtering-correlation-id: abb1c569-035c-40fc-a5fd-08ddd5d3c863
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?xjCu5XOMhJFyizGpQNV5v4FQbKclPggDRA3zWqR1A8kw/Wg1huIw1SO1LU?=
 =?iso-8859-1?Q?bZ2k3wqM20hwS8yL5YO527XaqawcdQtkmvDJWu7aqpFQKbvzGBujgrjkwv?=
 =?iso-8859-1?Q?uo728EELxF+kxfBLt3PpuzbTWA2MK/CvOMlMozMOmBCKJ5UJBrQK2xyE9U?=
 =?iso-8859-1?Q?YdwvSu/6Ug9Mw+VqXZ8pZv0lMUxwTm+Le3cJdOrBh9fPzmhPmW2PAz51F8?=
 =?iso-8859-1?Q?yzZZPieqGfVKdnL8hFxx1x6iaRDWX9/tmFb9625FMKvMGn1Zc6/DagnBNR?=
 =?iso-8859-1?Q?LYNLX+CAyf7e6XaqJ0Y0Wr3jhA5eYjD2kE4F5hPhArShy1KOd+sze2lEY7?=
 =?iso-8859-1?Q?nzF1z5SuRLmMHFd1uWufmOLCbrNK4/jEI4JiRBOQWC/lGcoDVVNaHKXxTj?=
 =?iso-8859-1?Q?kMOEQQeGWXwbQKtBoiVYC7tCIbNRblrb43qoaysthdY8zn8OXc53GafqoO?=
 =?iso-8859-1?Q?f7aInloj1pVHffFDNNfX8XVVYQQ4Pw36RKfBE7Lv44197P+wQTAkhQu+F6?=
 =?iso-8859-1?Q?JVS3tp/E0ywasNdtbqktJpRv0T5xWMqHPFQuy+phMFjZzdQ4WaPhVLAyTr?=
 =?iso-8859-1?Q?1DzwSv7e200tlNglvVLee9kRvE1/Z7M/NV5K9dA+xUQ08lsTi3ShVNtxY3?=
 =?iso-8859-1?Q?/snalATBXoIHmM8YxyfseNk3q/pGAGM3F9cludzT+mro4b0ZfCrAFEzHqr?=
 =?iso-8859-1?Q?3piC4F+uWa4XtZgKBx0Jep4X/KR+8BIX11IDrbM85eJE5bzUfhbNXEaVsM?=
 =?iso-8859-1?Q?dPQC+PqXuN8wn0sV64Zjpt4n/WmNLgUcHYjk/SJIS4GOS54hHXGJ1hZafc?=
 =?iso-8859-1?Q?UdCVsV9GSctYTyegKGIbFuE2jFgaCNWpJhfYWrTXuLkvpZEKiNlzHe9EUH?=
 =?iso-8859-1?Q?fGZldpnjNti1FOHbxGhZYXB+xNGIGEfS+hWtDDPio/Ml9h3/OaeHTDfP1A?=
 =?iso-8859-1?Q?a8ouzsdC6HVJLZMgA31QHrO/sarfo/KUCeO2qhsX7/0kIIu3kaO4qjIzbi?=
 =?iso-8859-1?Q?5L2TynbPqqC/81sYEMG+l5L0IkKlLvL1ZmprVsPja/wB4guZJu81b/Pttf?=
 =?iso-8859-1?Q?hx+DIuvCfdizJ3770kq/pNqyFqWqlF936C/mg+9oIb1BqyK9MFGy7WE1E8?=
 =?iso-8859-1?Q?EAX3WQ2zPS0KWZP3+CT5FDfutHJkmRf/dXIxcMaW88sh5CR0zqy/BtNAeP?=
 =?iso-8859-1?Q?RPe0t1ELWgMXPcuUTpJJH6hDNr16p5xNHXrY5lTQw0wV+FloPC0cBF/D4W?=
 =?iso-8859-1?Q?cNIsAr7wWgiSwkTtXDzfRiyEWROOyEp7gPUvFZz1M7NlXweDYITUWDkd3a?=
 =?iso-8859-1?Q?9EA2eDVtxFIkQYCPenCRvRrCWxe7Y0RReeLUdejyb2OkRnCEVO8+/ybhKA?=
 =?iso-8859-1?Q?er3Z25FOFhS/EV2+kgZYYwVwQMvHpxuXkx9NGJ0IrNE5LgnZZC5fZ41jDy?=
 =?iso-8859-1?Q?MqjvgdfK0gLoqzC6YdhZz6C7KpLUETWjpD6tyVu2cE8o5z8C9LXtsp+gSJ?=
 =?iso-8859-1?Q?6E24QKEK4iW3X5QWsMWFhwFeyHF7li9eMQ3YTxO3OnRw=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR03MB7136.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?c+VQZ7GYqMN7NcWxL6gGgcUiOdX0igjKbD6ErubDr8epbuuq4zcVbGbqL+?=
 =?iso-8859-1?Q?ZTh2DWFjz+nLyNjJZYapG8N6y+DPd1QZrzflGnxXyIA0wzWbud6UngYxTh?=
 =?iso-8859-1?Q?obNSVXfhoKhUyRU5iSZRJOf3sF7MMsoFJO51DNdYLnSNjxqkMwg0zZQT82?=
 =?iso-8859-1?Q?hrV1N4MC4om4g0rg/xGC0Ljwhd9Wpors+5EcMvVw6/b7luroJRwx7rj9H4?=
 =?iso-8859-1?Q?6aEbyH4yi4uanK/SSDFM4EpzvgXey5OP0ir5ubIIsN8dllf2QoFxvil/go?=
 =?iso-8859-1?Q?NB6omKoQKpf56WsT0QWC/UTcw81tyP21jXLSyB7EqNxtL4gWcBMO7HLZd/?=
 =?iso-8859-1?Q?SBAij6+Vfx45szWiVCkn68WZxRORaBAZK4oV9uTBCLKfAXiXFxBAbiFi2E?=
 =?iso-8859-1?Q?kyJIAIFHybftur8Gs/JLhoKZTDdvGR6MUnVTZ0bA3I+WZJKhR8ajbX0Lnc?=
 =?iso-8859-1?Q?zggizehem33dSltbf+xTAdK4/+KIQ4SPtJPR6dLrk8hDI1Ocb5RixihhVK?=
 =?iso-8859-1?Q?R/2gP8Woo+4VFThsrGKfOsfvW6P04wBHecByQg1ayU3QZEQQf6ApIyd706?=
 =?iso-8859-1?Q?ely3uMN0dkeN3qeUs6v3IJoFWwJcQyFySbTr5Cdlxldzh8/Uy4yqrpWoEF?=
 =?iso-8859-1?Q?hrxquA6E8MQ9/q8u/3IrBeAgaBmIb2dz+HchzdfDExYmT1kPKkJkyhh70O?=
 =?iso-8859-1?Q?9Mo0IO/0vBbKZYD4Puk3idnA36Bd2YwK/TNSJK845WiES/OzocwoUqFK6m?=
 =?iso-8859-1?Q?gwOzOOPapRQOlmQrLWfL0AmXDXo4VS4HBWsJsMAbGGn5MVKEg1HFs1Jc9/?=
 =?iso-8859-1?Q?u1Z0He4gV8SwxnjDZsrMxGIcoszl3pVzScbrsckyVB2ySgHPKe7MAgxXnq?=
 =?iso-8859-1?Q?Xl5JPq3I5iVebFYPhUYztP8LzNV/PpH2wiBIyY3q+ED7nTvWClaAQBqoYV?=
 =?iso-8859-1?Q?UeP6jA+ZqWBv4vSiqaCwRRNVxjGHy/uSkqlSYuIQ3VcsnIKJzd3nuIn7++?=
 =?iso-8859-1?Q?Q3jkyoB0wJIhXeazrGeF8G9RAgHzijooZqvKlRavDesjkOqjBsYw8YyjyV?=
 =?iso-8859-1?Q?XFqTrAQ4bVmU6IadPVxSEKPAHGxb0EHZSYln3Kyyq/zH0fXjf6k4Z6gL07?=
 =?iso-8859-1?Q?RutzwYhPgKisnQ2yFAMi9MzRhpnc4j9akKLYCPPxS5WSOxj0g+ZZl1r1+f?=
 =?iso-8859-1?Q?EsDp8Urq2rGXNBj7BaH0hhcJh8yfHUH06LEl4qHnKpt9VFEDyOFNmgTHXk?=
 =?iso-8859-1?Q?SPsv7twecbeKbf0wqnf0erqFNZg08F7U9uFMiguyOPT+yvUR+6QV4dpro/?=
 =?iso-8859-1?Q?tuDZ8L8yQ+HUAMGil7DodsCDtq1t1FRZrma7U5gxfVtIpxL3UkW8lvnEDF?=
 =?iso-8859-1?Q?6sxiSQ3WkShGyL21Ssz6iyUYIfZ8pqvmC8MNEO2LdiBjOGJmMJcsHFwsXT?=
 =?iso-8859-1?Q?B+YRaC1kYRgYnITfCKcACfHMmhVyOHxFHWGkZxStmxLXLpdas0D/b1CNxn?=
 =?iso-8859-1?Q?zSNaxXYtkamhSPHeixov83TmdLpHgNBAsL8fd2t9vdvZZVClMDPN34My/D?=
 =?iso-8859-1?Q?zOoU7Sn6c89yoDlHV1hECYD9GNbvw3CJU34VZ8LebBTUOMqdy87qs9DoJz?=
 =?iso-8859-1?Q?zeZC5C7WLjmOcNEiIKeJ0YKDskzPpkKk+7+9nzuRTRUBR6cVtcwRQyZA?=
 =?iso-8859-1?Q?=3D=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: PA4PR03MB7136.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: abb1c569-035c-40fc-a5fd-08ddd5d3c863
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Aug 2025 16:59:33.3082
 (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: gvB9AJQd4j1OvI08YFcqKucu2zRzbdw16/VC/CPnjQas9jNUSgJB1Q0Vc9VXITbSWjvgkmMyVPvbphxF/ktB2g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR03MB10757

From: Rahul Singh <rahul.singh@arm.com>

Stage-1 translation is handled by guest, therefore stage-1 fault has to
be forwarded to guest.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/drivers/passthrough/arm/smmu-v3.c  | 48 ++++++++++++++++++++++++--
 xen/drivers/passthrough/arm/vsmmu-v3.c | 45 ++++++++++++++++++++++++
 xen/drivers/passthrough/arm/vsmmu-v3.h | 12 +++++++
 3 files changed, 103 insertions(+), 2 deletions(-)

diff --git a/xen/drivers/passthrough/arm/smmu-v3.c b/xen/drivers/passthroug=
h/arm/smmu-v3.c
index 91bf72d420..4ea3e90c11 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.c
+++ b/xen/drivers/passthrough/arm/smmu-v3.c
@@ -853,7 +853,6 @@ static int arm_smmu_init_l2_strtab(struct arm_smmu_devi=
ce *smmu, u32 sid)
 	return 0;
 }
=20
-__maybe_unused
 static struct arm_smmu_master *
 arm_smmu_find_master(struct arm_smmu_device *smmu, u32 sid)
 {
@@ -874,10 +873,51 @@ arm_smmu_find_master(struct arm_smmu_device *smmu, u3=
2 sid)
 	return NULL;
 }
=20
+static int arm_smmu_handle_evt(struct arm_smmu_device *smmu, u64 *evt)
+{
+	int ret;
+	struct arm_smmu_master *master;
+	u32 sid =3D FIELD_GET(EVTQ_0_SID, evt[0]);
+
+	switch (FIELD_GET(EVTQ_0_ID, evt[0])) {
+	case EVT_ID_TRANSLATION_FAULT:
+		break;
+	case EVT_ID_ADDR_SIZE_FAULT:
+		break;
+	case EVT_ID_ACCESS_FAULT:
+		break;
+	case EVT_ID_PERMISSION_FAULT:
+		break;
+	default:
+		return -EOPNOTSUPP;
+	}
+
+	/* Stage-2 event */
+	if (evt[1] & EVTQ_1_S2)
+		return -EFAULT;
+
+	mutex_lock(&smmu->streams_mutex);
+	master =3D arm_smmu_find_master(smmu, sid);
+	if (!master) {
+		ret =3D -EINVAL;
+		goto out_unlock;
+	}
+
+	ret =3D arm_vsmmu_handle_evt(master->domain->d, smmu->dev, evt);
+	if (ret) {
+		ret =3D -EINVAL;
+		goto out_unlock;
+	}
+
+out_unlock:
+	mutex_unlock(&smmu->streams_mutex);
+	return ret;
+}
+
 /* IRQ and event handlers */
 static void arm_smmu_evtq_tasklet(void *dev)
 {
-	int i;
+	int i, ret;
 	struct arm_smmu_device *smmu =3D dev;
 	struct arm_smmu_queue *q =3D &smmu->evtq.q;
 	struct arm_smmu_ll_queue *llq =3D &q->llq;
@@ -887,6 +927,10 @@ static void arm_smmu_evtq_tasklet(void *dev)
 		while (!queue_remove_raw(q, evt)) {
 			u8 id =3D FIELD_GET(EVTQ_0_ID, evt[0]);
=20
+			ret =3D arm_smmu_handle_evt(smmu, evt);
+			if (!ret)
+				continue;
+
 			dev_info(smmu->dev, "event 0x%02x received:\n", id);
 			for (i =3D 0; i < ARRAY_SIZE(evt); ++i)
 				dev_info(smmu->dev, "\t0x%016llx\n",
diff --git a/xen/drivers/passthrough/arm/vsmmu-v3.c b/xen/drivers/passthrou=
gh/arm/vsmmu-v3.c
index a5b9700369..5d0dabd2b2 100644
--- a/xen/drivers/passthrough/arm/vsmmu-v3.c
+++ b/xen/drivers/passthrough/arm/vsmmu-v3.c
@@ -103,6 +103,7 @@ struct arm_vsmmu_queue {
 struct virt_smmu {
     struct      domain *d;
     struct      list_head viommu_list;
+    paddr_t     addr;
     uint8_t     sid_split;
     uint32_t    features;
     uint32_t    cr[3];
@@ -237,6 +238,49 @@ void arm_vsmmu_send_event(struct virt_smmu *smmu,
     return;
 }
=20
+static struct virt_smmu *vsmmuv3_find_by_addr(struct domain *d, paddr_t pa=
ddr)
+{
+    struct virt_smmu *smmu;
+
+    list_for_each_entry( smmu, &d->arch.viommu_list, viommu_list )
+    {
+        if ( smmu->addr =3D=3D paddr )
+            return smmu;
+    }
+
+    return NULL;
+}
+
+int arm_vsmmu_handle_evt(struct domain *d, struct device *dev, uint64_t *e=
vt)
+{
+    int ret;
+    struct virt_smmu *smmu;
+
+    if ( is_hardware_domain(d) )
+    {
+        paddr_t paddr;
+        /* Base address */
+        ret =3D dt_device_get_address(dev_to_dt(dev), 0, &paddr, NULL);
+        if ( ret )
+            return -EINVAL;
+
+        smmu =3D vsmmuv3_find_by_addr(d, paddr);
+        if ( !smmu )
+            return -ENODEV;
+    }
+    else
+    {
+        smmu =3D list_entry(d->arch.viommu_list.next,
+                          struct virt_smmu, viommu_list);
+    }
+
+    ret =3D arm_vsmmu_write_evtq(smmu, evt);
+    if ( ret )
+        arm_vsmmu_inject_irq(smmu, true, GERROR_EVTQ_ABT_ERR);
+
+    return 0;
+}
+
 static int arm_vsmmu_find_ste(struct virt_smmu *smmu, uint32_t sid,
                               uint64_t *ste)
 {
@@ -742,6 +786,7 @@ static int vsmmuv3_init_single(struct domain *d, paddr_=
t addr,
=20
     smmu->d =3D d;
     smmu->virq =3D virq;
+    smmu->addr =3D addr;
     smmu->cmdq.q_base =3D FIELD_PREP(Q_BASE_LOG2SIZE, SMMU_CMDQS);
     smmu->cmdq.ent_size =3D CMDQ_ENT_DWORDS * DWORDS_BYTES;
     smmu->evtq.q_base =3D FIELD_PREP(Q_BASE_LOG2SIZE, SMMU_EVTQS);
diff --git a/xen/drivers/passthrough/arm/vsmmu-v3.h b/xen/drivers/passthrou=
gh/arm/vsmmu-v3.h
index e11f85b431..c7bfd3fb59 100644
--- a/xen/drivers/passthrough/arm/vsmmu-v3.h
+++ b/xen/drivers/passthrough/arm/vsmmu-v3.h
@@ -8,6 +8,12 @@
=20
 void vsmmuv3_set_type(void);
=20
+static inline int arm_vsmmu_handle_evt(struct domain *d,
+                                       struct device *dev, uint64_t *evt)
+{
+    return -EINVAL;
+}
+
 #else
=20
 static inline void vsmmuv3_set_type(void)
@@ -15,6 +21,12 @@ static inline void vsmmuv3_set_type(void)
     return;
 }
=20
+static inline int arm_vsmmu_handle_evt(struct domain *d,
+                                       struct device *dev, uint64_t *evt)
+{
+    return -EINVAL;
+}
+
 #endif /* CONFIG_VIRTUAL_ARM_SMMU_V3 */
=20
 #endif /* __ARCH_ARM_VSMMU_V3_H__ */
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 18:31:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 18:31:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073359.1436440 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk5P9-0003xw-W1; Thu, 07 Aug 2025 18:31:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073359.1436440; Thu, 07 Aug 2025 18:31: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 1uk5P9-0003ux-4E; Thu, 07 Aug 2025 18:31:55 +0000
Received: by outflank-mailman (input) for mailman id 1073359;
 Thu, 07 Aug 2025 16:59:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5oaB=2T=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1uk3xr-00076W-4D
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 16:59:39 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e5d92072-73af-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 18:59:36 +0200 (CEST)
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com (2603:10a6:102:ea::23)
 by VI0PR03MB10757.eurprd03.prod.outlook.com (2603:10a6:800:267::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.21; Thu, 7 Aug
 2025 16:59:32 +0000
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f]) by PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f%6]) with mapi id 15.20.9009.013; Thu, 7 Aug 2025
 16:59: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>
X-Inumbo-ID: e5d92072-73af-11f0-a324-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qb5FtBvPKSQHM6OqDGtRW77un+hF0m/WxKcXk7/w+mrOVu3SAhcqXD6kMxdkurx03G/JRQXu34Q8bbJ+ml7LykVoDwOmX1oDsICXxb5a8tLFNmMoFKovmVE0gbc1F3potxS8nKbxTEnNIQi864L9fyJMvAzVTm7nP3QkqWOgu3vhRZk5f+7qfJdUJ+/S1FcOMMmXgqTc7B33yDBsGqe4YxBww7rz8GgvhOUC7h1O1/ORqGOHYYJgH/JZc9NGuXNNmKmEoFBlErWsJpesep2Nu9QBu8mubCUfDMkof2Og6Y15ARfCV6QE6/J3kFWb20ek92xoYkifohxzQ7ymwXvboQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=GBM/Oobt0LXDf7iN7IAMUwzJ2Wbk8CrHV22+yrEMYhM=;
 b=SqE5PYhlb4ZXoJ5E6tbW1Ux0AOm2UoMeNtx4rmQBstViTGwP11BhYSjb3pNUxKxX2CdSOwIHZtq51zEqAPrHwLgCkVeC3jOdnYNNsedeJNqfS4MY++dydvc95aR8LZfymE4nGmnlLPCXHsHOkDNYD5PgY1tgeuu340gqhwtvZg4awGWrGIV9qmZil8qhDi84jq2wr6LyvvUyAd+lIL3fj2/a3MuyN79xbRmZVu+pZsY60wzkJq7NprTrOd/yoVu/s2fkgF3TYq3EUT0OEyYc37GgOgQ5Pnzn4L6Nfk8Mglb3GD+CWBjDoXUgAAlC1PjhPLeWqpd67d7Rn4VkIXHAtg==
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=GBM/Oobt0LXDf7iN7IAMUwzJ2Wbk8CrHV22+yrEMYhM=;
 b=tLIBFxoFWce6G9NSIVsCP60GRcWPloTRC86VgxmwwMNmx2vsfCVqPtawoYPS+pwOW1VcifdEH/Lse7IrLcVIQG0Ap+ckPt/rnED3PU9k5pIPcIbXfv0/NNjK+xWrWswMq10JsAuhxlOSgG5aIJiSNRVyDo1Aa/5atD92boZUrwUIZk3xT+M9k544oO4JE0VqFXt5nN+ONA3w77GugNurNzJv2uH/Mq3YVClUlM4Fvytb2MHqBoMFD+LlyO4l5WE3j7nRrpg1JRjmt/zcZuxUu3pIP62qjMyWx0pLJrPVSnKpaOsUUgCS7TrPVFT3zTYGErqBTkfa2+FUqgqykUETpQ==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Juergen Gross <jgross@suse.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>, Milan Djokic
	<milan_djokic@epam.com>
Subject: [PATCH 17/20] xen/arm: vsmmuv3: Alloc virq for virtual SMMUv3
Thread-Topic: [PATCH 17/20] xen/arm: vsmmuv3: Alloc virq for virtual SMMUv3
Thread-Index: AQHcB7yl9f0v0YO6DkW2QyqxB5OyfA==
Date: Thu, 7 Aug 2025 16:59:32 +0000
Message-ID:
 <ce91f4111ea28b620db6c29e46f1fcfec79ad89b.1754580688.git.milan_djokic@epam.com>
References: <cover.1754580687.git.milan_djokic@epam.com>
In-Reply-To: <cover.1754580687.git.milan_djokic@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: PA4PR03MB7136:EE_|VI0PR03MB10757:EE_
x-ms-office365-filtering-correlation-id: b4d01857-a845-4cfb-c189-08ddd5d3c7bf
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?qGPuMi5YVwwyQMLtibypNfAc8205ifubbwQ9EhJe2Pyv52I2r55mvB5sGq?=
 =?iso-8859-1?Q?F4yxRorE+k8QMqUF+NErF/Fwo79w6ZNQLQTSQCMI/rczGDRoS7/nl+H5hO?=
 =?iso-8859-1?Q?SuuXH8Jsb9izYGT5qMQQnc8yFiGhH3Sxlko2X090tJX55KAJRuk/Bs0sWH?=
 =?iso-8859-1?Q?h87CMbpJPTv/3MUJdDYxfAvMwTTWXrti7U//ebxN06vmNF/+qCDAZxVbuB?=
 =?iso-8859-1?Q?34/aKr5hvs2co8zjcEgJ+mFBBFlBMPivCNu2JAmKIfUkz62wR1tFDi+0b1?=
 =?iso-8859-1?Q?ZfrCXiBoXJr7V5zsLTduSJVGAyQlYjtM5PitDtKM1PjnUt8kT48TfffCoH?=
 =?iso-8859-1?Q?i4IuhQxC3LJohPAxu5yoIDa8h1tKge09VY1GgmHrsZz36leCiU++/LnjW8?=
 =?iso-8859-1?Q?2QXbr6LJdF1fzkn99plDHRwT5DZEs5OXS253QIH6JMLjhGQEYmi+18tfpU?=
 =?iso-8859-1?Q?AOjwgGgpnNaeKtztgHNg/UQ+yxBDIP43GDl2FJLvvapuqt32Iye3CvEWcP?=
 =?iso-8859-1?Q?6Fofo8YzkZI8QLNQw0bF3YHTsv4ZsJK++eajmbrZGOGVWtwKr33BKphj6g?=
 =?iso-8859-1?Q?fKtQt3VAV9KHcYyJ78nes2MSTRknUtT21HeGEeLUC/8BB/2IPwgy9KSa31?=
 =?iso-8859-1?Q?AMjx/UKn+LH8nRdZhuC8+Vu+Qr6KuM+Fy/G5b6bRFVA/+X/pnrNhfc751n?=
 =?iso-8859-1?Q?F81nGVaWohriTEWJNH8O+skfvMOb+ugFKdpJ16iZrBrYsoGkC9428v+AYh?=
 =?iso-8859-1?Q?OvkrK50MDuxmv2LpS4Xtn7AeBhDO3V4PS34456BtISyCkeFZe8qDWI92v8?=
 =?iso-8859-1?Q?DrVkB2qkVktjDFtGekikIInB2h+zzbqyodsNC09n7FNlGhSYXd/Fj/lo58?=
 =?iso-8859-1?Q?xE86mvr01IfZdvWe/c1banojsth5LE+4CqlouIcok4MgVsM6Xcfa4zpLh3?=
 =?iso-8859-1?Q?PuyRyGRqViJxwa8BrLrM5FYKPKKFCIlhFvV6OmlLva9o8/paWPQiZ4iJcB?=
 =?iso-8859-1?Q?1R1EIIVnmulpP0ZM2rs4X3i3CWtC+QUIocTZRmCTtIzNI450BlH5u5nsv7?=
 =?iso-8859-1?Q?c+Vjd/lIXva0P08afRyCiKoSK/P4nlcvDHMSZUfkW66bQKuPFP64gIBoL/?=
 =?iso-8859-1?Q?2ZOZREFB27fS9WiDkJQZV2DK7NSlhMTvAph0a35c6OmU2dp3gYoo9GvzQk?=
 =?iso-8859-1?Q?ajPQ+xv9b7/V6q90X9P5N4mc/HvRou9tkwQEIHlYaCDqJSpV24P5igdP8H?=
 =?iso-8859-1?Q?pqXdYe6iVqA+PivH+TSxcZIIpUZlSseAFaUSpNvT7mzKbOaaXQxgSoK63N?=
 =?iso-8859-1?Q?BQnzJu1IXYNDyNSQjRw1nnOGAamsrlJHE0F0aS7SwolCCqXVmLAESoVuFL?=
 =?iso-8859-1?Q?pvJUv6i2Cj+C0DSwk0Ab+H8UM8R/Tirzf16eOnBYHBPWwhaLm7cuib25G9?=
 =?iso-8859-1?Q?ljZWNuF/4RRIrIOnSM9WfkgjJKrcT00WnpYfvcdEEY9X+cd/G+mmD+5OR9?=
 =?iso-8859-1?Q?i+PzZ73sXV867h4ugUYz0I2S+mdwbRNhxmVqiFaW02og=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR03MB7136.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?0NUIdagPzrogfuqHA7w/4vfOv5BPadHKGnSGAvBp06KeIQ0yG5FE94Hkt8?=
 =?iso-8859-1?Q?Ftn+PKXgTVpj1E79x8ePG3t3K0sWUK2W4bqO6OgSbLGF58i1EpR3OJhtOD?=
 =?iso-8859-1?Q?3bP3S58kIhp3rataefW2sW//jUd/+QEmVtykX1sUCsJDjX57lEQ37TbiKH?=
 =?iso-8859-1?Q?YoPPlnAHM7ysNr2p2tUOYunSfQh26+P64L96IwAfZ8DIOG3wKAR6HI9XFA?=
 =?iso-8859-1?Q?m3hKnsvhPZnyFTjX7zd2lV7N3gNvS3brqulcSZnS8kP2ZwsGe/6SePNlA4?=
 =?iso-8859-1?Q?zW7KVy7DF9pLDi2px67MsKwx5QcwjuqbjTpCoPufHdOZh6Ir6NE77gMMxz?=
 =?iso-8859-1?Q?dbDYS+Xlm9d0f6jl3QRN0orwpMDqMZRMLTfJgdiWgPHo3qev+iXGeurCHM?=
 =?iso-8859-1?Q?Y0d1w2z4NdUBPN5MCw149adCD3nGgb/kHcPhyIK5MUBinG7Tdnf6DMng24?=
 =?iso-8859-1?Q?q5h+fnyYlswPXs+yvj4lYzcqmBYW+0rjmpdGqStkYda4axYssvNplfSgIs?=
 =?iso-8859-1?Q?gNQAOn5MT11qfN4/YfuYoF1AlPqwtayO07LtdTLvCNVb3qj64ZvAhvlWfh?=
 =?iso-8859-1?Q?804vI0N/fkG9qyZQ6mftAthxMqVE8QQgyRvf58an9fjXEODkfwGLA5Q3QS?=
 =?iso-8859-1?Q?8Fp6Y6lNOtD0dbpS9ODRMJdy0FyvA1q7OYGtpELgPwveqfQcTh6cdJwjt8?=
 =?iso-8859-1?Q?6857mgq1kIbrONfwwwxKhomzFQldmPrU6OktQ2jgl/O1MfmdFvy7j0zVq1?=
 =?iso-8859-1?Q?Dr3T0YTkaGPOg2JmsVC1jV1CwAzVDNBjGFulRSx+a7s7NGSY3b/nQ4hBOk?=
 =?iso-8859-1?Q?g0N+uvvv46rL+GNvudyNbv4zyoLt3ddICzzCXQXV9zY8DfNs2Ykx+ObwxE?=
 =?iso-8859-1?Q?9Qt6iUZuB3jiMCuxBp61fyKyN2v4AI1HoNq+jVmQ66Bhub+6xG0BiKLmKa?=
 =?iso-8859-1?Q?XkeDDbcvr2TLcpffDvgxXmjlpp9ymFlrttjg/TlpKG+PadgNn/Tjji4ynV?=
 =?iso-8859-1?Q?+Y0OSdm9w4DMCs/lmt59EmwtOXcHPfxaTffsMvr9qF5arU4H8PwyB6Oywu?=
 =?iso-8859-1?Q?DcL4MbsRgNIqBQZLGiWb9ftjD0118ufu6k82JmsxPkswBHBASaCQM3iqcl?=
 =?iso-8859-1?Q?yKqRuAy6WD9+R2HmlMOcRLvraD7Zz0nkOV2WMbmUmKnFN2O97fTUrPWlDe?=
 =?iso-8859-1?Q?pbI6UJE6sxgSAFE309N8z38G4g7EHDeWjbieLGkov3qGXOTjajQAa+z1J0?=
 =?iso-8859-1?Q?8W2toujxEnzOAHF6U/ZzGAdLdHkkr2IitYyXjooMLfbgFncbpqrh67VCtB?=
 =?iso-8859-1?Q?nZgYM4WIgcVTcFTSu1oHAwl6tnn1Qav44jKPOI02JCz0Xd2YLrfAh4g59L?=
 =?iso-8859-1?Q?qplYMmOkjw1Ow1DUpt/oKnHcPrNC+xZ+5OfbTNR8sOChJMAKdGNPjmc/GI?=
 =?iso-8859-1?Q?70D2vrhrXeWu3Ev+e318KsG0zyhOwyAd4qeUoqFEx+Zb447ORpM08vp/fH?=
 =?iso-8859-1?Q?rhrmT0OGCaRXysURyioquhMDbUR+bBtIb/WNKaKvC9pvLqFr07big4EXqS?=
 =?iso-8859-1?Q?AbV2icXxSEaLBiNjZd4WBX7jJt7Elv6q3veBdRwdJ24a7shnDRoM52QHKQ?=
 =?iso-8859-1?Q?a/F1YJo58rl4R578g6LD0udM67ie9i9VrTvIjEa7/a3tKnNXi4LB8qiQ?=
 =?iso-8859-1?Q?=3D=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: PA4PR03MB7136.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b4d01857-a845-4cfb-c189-08ddd5d3c7bf
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Aug 2025 16:59:32.2435
 (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: ijOeTGxIc2NT81pp1R4dFmxpNSRLRV1qmC1Tbet8Wo8PESvhn3gEfh5QwqSk4vuzC939GuqKFEB6dZd3KiAFdQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR03MB10757

From: Rahul Singh <rahul.singh@arm.com>

Alloc and reserve virq for event queue and global error to send event to
guests. Also Modify the libxl to accomadate the new define virq.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 tools/libs/light/libxl_arm.c           | 28 ++++++++++++++++++++++++--
 xen/arch/arm/dom0less-build.c          | 17 ++++++++++++++++
 xen/drivers/passthrough/arm/vsmmu-v3.c | 13 ++++++++++++
 3 files changed, 56 insertions(+), 2 deletions(-)

diff --git a/tools/libs/light/libxl_arm.c b/tools/libs/light/libxl_arm.c
index c8255d8d4f..55beda8c0e 100644
--- a/tools/libs/light/libxl_arm.c
+++ b/tools/libs/light/libxl_arm.c
@@ -86,8 +86,8 @@ int libxl__arch_domain_prepare_config(libxl__gc *gc,
 {
     uint32_t nr_spis =3D 0, cfg_nr_spis =3D d_config->b_info.arch_arm.nr_s=
pis;
     unsigned int i;
-    uint32_t vuart_irq, virtio_irq =3D 0;
-    bool vuart_enabled =3D false, virtio_enabled =3D false;
+    uint32_t vuart_irq, virtio_irq =3D 0, vsmmu_irq =3D 0;
+    bool vuart_enabled =3D false, virtio_enabled =3D false, vsmmu_enabled =
=3D false;
     uint64_t virtio_mmio_base =3D GUEST_VIRTIO_MMIO_BASE;
     uint32_t virtio_mmio_irq =3D GUEST_VIRTIO_MMIO_SPI_FIRST;
     int rc;
@@ -102,6 +102,16 @@ int libxl__arch_domain_prepare_config(libxl__gc *gc,
         vuart_enabled =3D true;
     }
=20
+    /*
+     * If smmuv3 viommu is enabled then increment the nr_spis to allow all=
ocation
+     * of SPI VIRQ for VSMMU.
+     */
+    if (d_config->b_info.arch_arm.viommu_type =3D=3D LIBXL_VIOMMU_TYPE_SMM=
UV3) {
+        nr_spis +=3D (GUEST_VSMMU_SPI - 32) + 1;
+        vsmmu_irq =3D GUEST_VSMMU_SPI;
+        vsmmu_enabled =3D true;
+    }
+
     for (i =3D 0; i < d_config->num_disks; i++) {
         libxl_device_disk *disk =3D &d_config->disks[i];
=20
@@ -170,6 +180,11 @@ int libxl__arch_domain_prepare_config(libxl__gc *gc,
             return ERROR_FAIL;
         }
=20
+        if (vsmmu_enabled && irq =3D=3D vsmmu_irq) {
+            LOG(ERROR, "Physical IRQ %u conflicting with vSMMUv3 SPI\n", i=
rq);
+            return ERROR_FAIL;
+        }
+
         if (irq < 32)
             continue;
=20
@@ -893,6 +908,7 @@ static int make_vsmmuv3_node(libxl__gc *gc, void *fdt,
 {
     int res;
     const char *name =3D GCSPRINTF("iommu@%llx", GUEST_VSMMUV3_BASE);
+    gic_interrupt intr;
=20
     res =3D fdt_begin_node(fdt, name);
     if (res) return res;
@@ -911,6 +927,14 @@ static int make_vsmmuv3_node(libxl__gc *gc, void *fdt,
     res =3D fdt_property_cell(fdt, "#iommu-cells", 1);
     if (res) return res;
=20
+    res =3D fdt_property_string(fdt, "interrupt-names", "combined");
+    if (res) return res;
+
+    set_interrupt(intr, GUEST_VSMMU_SPI, 0xf, DT_IRQ_TYPE_LEVEL_HIGH);
+
+    res =3D fdt_property_interrupts(gc, fdt, &intr, 1);
+    if (res) return res;
+
     res =3D fdt_end_node(fdt);
     if (res) return res;
=20
diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index 1e526c10de..66ef3dfa1f 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -224,6 +224,7 @@ static int __init make_vsmmuv3_node(const struct kernel=
_info *kinfo)
     char buf[24];
     __be32 reg[GUEST_ROOT_ADDRESS_CELLS + GUEST_ROOT_SIZE_CELLS];
     __be32 *cells;
+    gic_interrupt_t intr;
     void *fdt =3D kinfo->fdt;
=20
     snprintf(buf, sizeof(buf), "iommu@%llx", GUEST_VSMMUV3_BASE);
@@ -254,6 +255,22 @@ static int __init make_vsmmuv3_node(const struct kerne=
l_info *kinfo)
     if ( res )
         return res;
=20
+    res =3D fdt_property_string(fdt, "interrupt-names", "combined");
+    if ( res )
+        return res;
+
+    set_interrupt(intr, GUEST_VSMMU_SPI, 0xf, DT_IRQ_TYPE_LEVEL_HIGH);
+
+    res =3D fdt_property(kinfo->fdt, "interrupts",
+                       intr, sizeof(intr));
+    if ( res )
+        return res;
+
+    res =3D fdt_property_cell(kinfo->fdt, "interrupt-parent",
+                            kinfo->phandle_intc);
+    if ( res )
+        return res;
+
     res =3D fdt_end_node(fdt);
=20
     return res;
diff --git a/xen/drivers/passthrough/arm/vsmmu-v3.c b/xen/drivers/passthrou=
gh/arm/vsmmu-v3.c
index 7a6c18df53..a5b9700369 100644
--- a/xen/drivers/passthrough/arm/vsmmu-v3.c
+++ b/xen/drivers/passthrough/arm/vsmmu-v3.c
@@ -733,6 +733,7 @@ static const struct mmio_handler_ops vsmmuv3_mmio_handl=
er =3D {
 static int vsmmuv3_init_single(struct domain *d, paddr_t addr,
                                paddr_t size, uint32_t virq)
 {
+    int ret;
     struct virt_smmu *smmu;
=20
     smmu =3D xzalloc(struct virt_smmu);
@@ -748,12 +749,24 @@ static int vsmmuv3_init_single(struct domain *d, padd=
r_t addr,
=20
     spin_lock_init(&smmu->cmd_queue_lock);
=20
+    ret =3D vgic_reserve_virq(d, virq);
+    if ( !ret )
+    {
+        ret =3D -EINVAL;
+        goto out;
+    }
+
     register_mmio_handler(d, &vsmmuv3_mmio_handler, addr, size, smmu);
=20
     /* Register the vIOMMU to be able to clean it up later. */
     list_add_tail(&smmu->viommu_list, &d->arch.viommu_list);
=20
     return 0;
+
+out:
+    xfree(smmu);
+    vgic_free_virq(d, virq);
+    return ret;
 }
=20
 int domain_vsmmuv3_init(struct domain *d)
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 18:31:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 18:31:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073361.1436451 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk5PB-0004NB-Qx; Thu, 07 Aug 2025 18:31:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073361.1436451; Thu, 07 Aug 2025 18:31: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 1uk5PA-0004Eg-NC; Thu, 07 Aug 2025 18:31:56 +0000
Received: by outflank-mailman (input) for mailman id 1073361;
 Thu, 07 Aug 2025 16:59:40 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5oaB=2T=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1uk3xs-00076W-4E
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 16:59:40 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e62dc112-73af-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 18:59:36 +0200 (CEST)
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com (2603:10a6:102:ea::23)
 by VI0PR03MB10757.eurprd03.prod.outlook.com (2603:10a6:800:267::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.21; Thu, 7 Aug
 2025 16:59:31 +0000
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f]) by PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f%6]) with mapi id 15.20.9009.013; Thu, 7 Aug 2025
 16:59:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e62dc112-73af-11f0-a324-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wg2eFhkhwYLhxWUBmc4QsNui7q9c/OA/fDw8StCRD9diilh7POY6NTIJQOhZbNaB30BoYCQeYspJDzKxtAxZ6jn8THb9AoJSM+BuU66XePT1bPqUNPJR9Gv+e7dAN6vRv7X/2WBA3lfN7aFxMfxVRXf0K6TFPjdKXVPhWkuF8YDDiU/RDljJvtmg76P8KQq7sATM0T11B3Cpaq1u4n4dV50NYDwGtsreaVHtjzqXNqnJLndWcfq6a0lApFGhLvrmcQb8kU6Ra1Zp4r/3puLSFbaa2ucvEwJn/YjmZ309ic+DL/wCenRpmsLT80VplGwfy3EiIPrX0lAuHkMEd3RSzg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=kD+Qf49VbgsplfZFP2D9e4GX39Tp6TJSZUfS2DxkCFc=;
 b=SPXQMz92stH3QPtQGqTvWC/vKsJ1HT6QOlhIrOKfY/4SpoqDrzQEyqWTBKPhNFaIfkOqK2CvXJAlzrzxl+MMF1HdSkTEHTy0SnEQGqidoWDhkMD/hO88wfRUyG3OqzPopmBuAP/0tGuxo+BX1SJGqm3cb1YMFJmSV2+MS4DZcCuNPDbhH46ViICVI+ANOGvMDcc4C7UxLCEoZA3chBphyXkg7EXMoHS8g2g62WA0ZCwWDJeoGAWmfK0e4J6z9/tEc3AaCarkR9/UfH9FbF2vLEVQhUb6txpHvuQYVo3Wqm2/iBEXC5Y1dMY8hhdZlAqEVwtnwWXVVYTpJg+49P7Y7w==
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=kD+Qf49VbgsplfZFP2D9e4GX39Tp6TJSZUfS2DxkCFc=;
 b=pGA7RvPGZ6emma4SJd8AqFtXNm4KmN2GqETa13grdway6uWEjJB2hTBtHOCvnkChdKROrLYJjIwymE6LAtMaSv84f4csYUC7rkY/DEF5+i094LB+xPAIU08hazwD1nxMrPMLrttfrbiA1IsTPa3cKJpR6h44l4/ARYXtKK8WVT/7bD4kZEfHGEPEKWWAoI+V/SxyfVBBzeCmt0dVsmRTI+FbNvQQ+exoF6bmtWFbfBKnNzjiNdYvxhrueHcVbQ1ykVNv+REaicJZ1QYkDOX45UW3BBqCe/SoB4Dil0UtQ9HiO07Nyl1HLPnvrsVToMRL8UdXZ7GHWu1d2H0RPlvVLw==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, Milan Djokic
	<milan_djokic@epam.com>
Subject: [PATCH 16/20] arm/libxl: vsmmuv3: Emulated SMMUv3 device tree node in
 libxl
Thread-Topic: [PATCH 16/20] arm/libxl: vsmmuv3: Emulated SMMUv3 device tree
 node in libxl
Thread-Index: AQHcB7yktmBVQsC5I0iGGX/Mv/uKhg==
Date: Thu, 7 Aug 2025 16:59:31 +0000
Message-ID:
 <b07e6c46650a41dc9459c5919ac2ecc4307fae0a.1754580688.git.milan_djokic@epam.com>
References: <cover.1754580687.git.milan_djokic@epam.com>
In-Reply-To: <cover.1754580687.git.milan_djokic@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: PA4PR03MB7136:EE_|VI0PR03MB10757:EE_
x-ms-office365-filtering-correlation-id: eef87d52-da43-4036-4403-08ddd5d3c73a
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?8bUOP3IciHzj68GMJmyjTTwCQMKBXssZZXs0JB8gW3u6H8sQ6I+9jLZGKz?=
 =?iso-8859-1?Q?BPKtPINwhrx/8teIIPV7PKZrokNk/R+YIN8blWKhsGYHH9jEGLFWtpuTSk?=
 =?iso-8859-1?Q?zebqFEuBdJL//DLj3/pdwFWpIvIVvnV1BIMZSkyymUIMgD487eAUJcm5pP?=
 =?iso-8859-1?Q?J/qVKLaV0jxk3zyXFpHz7hjFrhj3iLabXuOnItQNkuFTCHdevAeTtb8zVu?=
 =?iso-8859-1?Q?2e1mEhNmwKy6HcadoFc6t/6B4auA1lPKvp2kfLLA4RTBM59O77WxKxIvbA?=
 =?iso-8859-1?Q?j5q9GvNRF0DnRI2sgW5r+9s42fo2fdq6pE31jjd+B4RutFivLoXnasiZSr?=
 =?iso-8859-1?Q?noPw38+MUfeLCV37EwGR0LMntAyblYpjBrYFKLAvpQU3agwbdZEPGtF6Wq?=
 =?iso-8859-1?Q?hfwQz1eoucfcY+xraRCYtjhp63rsoRnGOFZKEkyXpviRRJjG/cM0DKaUde?=
 =?iso-8859-1?Q?IntREAMNMUxDg38PPFzaMnhkHvamBa+RDd4yI7Zj5iU3LHxXPba1yIhZ1A?=
 =?iso-8859-1?Q?MkFe5vC2h5EaaCe63gIjc2sF6KTSnAoEHDTPFRXBKM2wTwOYLshZrR3Qix?=
 =?iso-8859-1?Q?iTf10ro1PofCL7L1HxQD9a/aiAey5E2Jdd5U1qO5y/pF2wDRdXwesZhS6y?=
 =?iso-8859-1?Q?C1h3z72JXdfn2DzcTWNX0sVskCwSEu9MOhsyHjjBoUhMTtaN6QcZu+wVhf?=
 =?iso-8859-1?Q?ASpiCGzjpkk1oanWTh5fCVLIWN60CeLKFnhjyksH0FqVKCnX/qghrOMkyh?=
 =?iso-8859-1?Q?qTTioxruWC6ls9ECjoJLqtKj0MTS61bgF1J81m6TI4xTpFPHcuEC80Z+WL?=
 =?iso-8859-1?Q?WdE3ZKOw2/gJcGrOCAxq1j9BxZZWmpEf0kLGdADSLGlvRii9bz6VXtqK2d?=
 =?iso-8859-1?Q?OubyQpe5gX3OScblvyVAok2/WqLSbUswfrzLSX3bin9RO7GzJAAvbYtFY4?=
 =?iso-8859-1?Q?CjxX9DyqovQ6UYPpZbueR+xykJuQMkEaeyM79LjKzTqP+lrmizCMCQHptk?=
 =?iso-8859-1?Q?kc6W/4YmE7erYmxbTD2kRc2dsyovRSQc/WnhhyGfK2An8jsmj5v3VkO2M5?=
 =?iso-8859-1?Q?vxCVDQRlfDvj6TVNI7FoO8wW+ZogUJYl1l35PQqMavwPLL4hvgDE+a1aSh?=
 =?iso-8859-1?Q?2QluiknxsmNm4RO9BTbaSiV4jhRShRvrTYs7OYsclRVIGOa2eDZqtsB8U7?=
 =?iso-8859-1?Q?KSExcuDOdQIeol0rl+h7RhmzMu4l2xm9SAvdOCtx+8dDnh7PXnr/dkl+nl?=
 =?iso-8859-1?Q?oo7mcwkmIq/Q7KMGq0abRJsCGSh7oakr3HJeAPeRjf81Dv0n5T+pIxUvmH?=
 =?iso-8859-1?Q?CGeK/TZ94HWIlaeBMAwjyiZtmORtYvBIQUQCyB6+amUgZ5eZU2ZPijNYfC?=
 =?iso-8859-1?Q?6TzuAsj22nW55a+i/Yn1YGsUXnJH0ZCEdBuTnr9YgiIr3IJarebxWoH4nx?=
 =?iso-8859-1?Q?PpS2StnjYAW5QsZfPu9DSak8DSKqsgWgqvEqjA7RZ8P0vpnvOaOc2MqMXF?=
 =?iso-8859-1?Q?mNFW/gDsmtCAkv53k8ZvCH9sRSCgdOvCAwebp0C4/fqw=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR03MB7136.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?CuJtiYpM0BTIsCiBHDEeGzTXTemkdzxBDjQPI5ARTHvMhAetF1/nahT4qq?=
 =?iso-8859-1?Q?hpi0sC1PoXAJJQDhAGaRWDYv7nh+bJdEmBhrV6BqrC8ZiIV35OBrSjiPDp?=
 =?iso-8859-1?Q?R+0MEdyK2ooSz6syAuOoug0VJtU+I2mtpXD3jUoYdNlqLe/zLr3nPcj5ke?=
 =?iso-8859-1?Q?FY/+nUQdP2tPNAM42wATIxAAVxo+NGlj/OJTGfL8zcrxDMA5dec463HAX5?=
 =?iso-8859-1?Q?DmZj49fviUgzd+bZD9xJJhqArgEj1dh5xSuhrGTe1rbUsVTlT1xSa9TrJ8?=
 =?iso-8859-1?Q?+UTG76XEke6S3vWoazNZQN151xuyuUS/LAILFEfvPK1SrWxqwuYgr0CVRo?=
 =?iso-8859-1?Q?n9JeglvKQkoukFviYo3VatiAY1JccCs3S7ZMII+WxeiK4NBeDF56T52uAv?=
 =?iso-8859-1?Q?PBIUD7l4SKieizOyvGX68Ol/7TZjJ865JxJ/1yAiVsK9/GkbTa6hzMcnbD?=
 =?iso-8859-1?Q?puD4qDY5PYoO9NW8zKQLLSVJCNuGbDw0LoxPDBaSr9XPkE8s1lBmPPFT9T?=
 =?iso-8859-1?Q?TzlZQlTLvjDgVEnUCe3XEe1M6qeVIorWKHJY2LFgMFjdwvoEVwV61FOFKP?=
 =?iso-8859-1?Q?aX24XFpZ25izC4iLhIoirvoqmBKJ/oukyriHZaBu2moKbH9wCQl7JgOlxc?=
 =?iso-8859-1?Q?ssoLuNiVRtGcAv/H2Auq9N9i0KnHzE7I/u40V0cxXZdtlU66eJU2EQx9CQ?=
 =?iso-8859-1?Q?wWWe8tXLXieW3eV9S+xu/t+z5y7Y2w069FJzGbh8UFSAU+EWX/3WWRUejS?=
 =?iso-8859-1?Q?d2RqxYsxkagDOdWMEz1HV9oaP5PnhX7m6MxJdp2zyhLage8d4yeVLX26LQ?=
 =?iso-8859-1?Q?r5mpaJW2SOj4Y+f+tSqb20JhDYtoHQ9uNbBpN8loXZrGzstFTQPMHTMGua?=
 =?iso-8859-1?Q?adydg+D1+vaJqFNS3pGQf1+7uQz70tb8Lr32pMB8cXmqZZYoSDEptJKaRh?=
 =?iso-8859-1?Q?OFPgISpX/uJ1PjYTav/SSWzihfHapX4WnmNFdoh2TdFwe3F375rpapUYLr?=
 =?iso-8859-1?Q?e16/R+8uLJ0qfUM4g3/xsVNhmM72muKd1r/euAWMAtjSOKsubI74D+5UTU?=
 =?iso-8859-1?Q?BhjgmuoUaC2BqxtMsclrXrWBMo6VFSOnxdhTdcbuirBXx35QD0zFCVWBF8?=
 =?iso-8859-1?Q?9/c0xLSY7PgAJIMAO3td77DczZAm13r61zsRqCX9wz4diBXaNS0FASOWer?=
 =?iso-8859-1?Q?ozqvHMLLKr07EAikqr/r7zRX86aebHTje4viO9trtfCd5sIA2V6bfn0duG?=
 =?iso-8859-1?Q?w9vUdD8uaQBwdq9G9yDedZKDhZyt5YrrwmdlQFbZ6LUfLvQxz4ecVOIdfl?=
 =?iso-8859-1?Q?oxHSOvzfs1SiyERODd1dKignLePEZ+a6+RB/gCSeJhgPHzDKVQ2mVIn0na?=
 =?iso-8859-1?Q?AOanw+++ERZKf+LJEjIPdliUUP+XpovAmaiBHBE+NBiDnAA08WJ0pMmLiv?=
 =?iso-8859-1?Q?28AlcBaVCnptMVbJrDIlV6beuT5q9FfjXNGIAIbwhDb8cAvjT2Ppyo3L+8?=
 =?iso-8859-1?Q?m4L0QpRNJ/cMD9cCMQtRygt7X1WdyRvS9yh+WvnwrtNNZrpClip2GkxQig?=
 =?iso-8859-1?Q?BcSBeLQw2uc8FPTi5bKg0rbpAKk9JQ4buj2mY91heuBGuylJGJwgUJp8Pn?=
 =?iso-8859-1?Q?8UY2CtX3VpEO3qheL4m/uFqrzsj/2ld0I5bHhnC67VDkQiNGD9iT+9mw?=
 =?iso-8859-1?Q?=3D=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: PA4PR03MB7136.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: eef87d52-da43-4036-4403-08ddd5d3c73a
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Aug 2025 16:59:31.3519
 (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: 1N2r8UALrIN+PA3mEjzNheIuUEwv0ohNfLjZGiWn2jOA5s9ozogPYHiR31jEf7E1W6BjMQCn0E2prER11gk3fg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR03MB10757

From: Rahul Singh <rahul.singh@arm.com>

libxl will create an Emulated SMMUv3 device tree node in the device
tree to enable the guest OS to discover the virtual SMMUv3 during guest
boot.

Emulated SMMUv3 device tree node will only be created when
"viommu=3Dsmmuv3" is set in xl domain configuration.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 tools/libs/light/libxl_arm.c | 37 ++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/tools/libs/light/libxl_arm.c b/tools/libs/light/libxl_arm.c
index 44b7bcd672..c8255d8d4f 100644
--- a/tools/libs/light/libxl_arm.c
+++ b/tools/libs/light/libxl_arm.c
@@ -887,6 +887,36 @@ static int make_vpl011_uart_node(libxl__gc *gc, void *=
fdt,
     return 0;
 }
=20
+static int make_vsmmuv3_node(libxl__gc *gc, void *fdt,
+                             const struct arch_info *ainfo,
+                             struct xc_dom_image *dom)
+{
+    int res;
+    const char *name =3D GCSPRINTF("iommu@%llx", GUEST_VSMMUV3_BASE);
+
+    res =3D fdt_begin_node(fdt, name);
+    if (res) return res;
+
+    res =3D fdt_property_compat(gc, fdt, 1, "arm,smmu-v3");
+    if (res) return res;
+
+    res =3D fdt_property_regs(gc, fdt, GUEST_ROOT_ADDRESS_CELLS,
+                            GUEST_ROOT_SIZE_CELLS, 1, GUEST_VSMMUV3_BASE,
+                            GUEST_VSMMUV3_SIZE);
+    if (res) return res;
+
+    res =3D fdt_property_cell(fdt, "phandle", GUEST_PHANDLE_VSMMUV3);
+    if (res) return res;
+
+    res =3D fdt_property_cell(fdt, "#iommu-cells", 1);
+    if (res) return res;
+
+    res =3D fdt_end_node(fdt);
+    if (res) return res;
+
+    return 0;
+}
+
 static int make_vpci_node(libxl__gc *gc, void *fdt,
                           const struct arch_info *ainfo,
                           struct xc_dom_image *dom)
@@ -928,6 +958,10 @@ static int make_vpci_node(libxl__gc *gc, void *fdt,
         GUEST_VPCI_PREFETCH_MEM_SIZE);
     if (res) return res;
=20
+    res =3D fdt_property_values(gc, fdt, "iommu-map", 4, 0,
+                              GUEST_PHANDLE_VSMMUV3, 0, 0x10000);
+    if (res) return res;
+
     res =3D fdt_end_node(fdt);
     if (res) return res;
=20
@@ -1394,6 +1428,9 @@ next_resize:
         if (d_config->num_pcidevs)
             FDT( make_vpci_node(gc, fdt, ainfo, dom) );
=20
+        if (info->arch_arm.viommu_type =3D=3D LIBXL_VIOMMU_TYPE_SMMUV3)
+            FDT( make_vsmmuv3_node(gc, fdt, ainfo, dom) );
+
         for (i =3D 0; i < d_config->num_disks; i++) {
             libxl_device_disk *disk =3D &d_config->disks[i];
=20
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 18:32:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 18:32:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073363.1436460 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk5PD-0004lI-GN; Thu, 07 Aug 2025 18:31:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073363.1436460; Thu, 07 Aug 2025 18:31: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 1uk5PC-0004d0-Gk; Thu, 07 Aug 2025 18:31:58 +0000
Received: by outflank-mailman (input) for mailman id 1073363;
 Thu, 07 Aug 2025 16:59:41 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5oaB=2T=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1uk3xt-00076W-4Q
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 16:59:41 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e67b1a2d-73af-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 18:59:37 +0200 (CEST)
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com (2603:10a6:102:ea::23)
 by VI0PR03MB10757.eurprd03.prod.outlook.com (2603:10a6:800:267::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.21; Thu, 7 Aug
 2025 16:59:34 +0000
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f]) by PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f%6]) with mapi id 15.20.9009.013; Thu, 7 Aug 2025
 16:59: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>
X-Inumbo-ID: e67b1a2d-73af-11f0-a324-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NajIWZLffrca0TmSh0u2AtMJo5oLQxUJqDhGvtdoRyrh0qIIhw7O+jskLuPmWYl0AGGE0wHAi8+K88uo3DOIs0YTZQ3UsSljo9wf++TCASdPIwWFAalpMkuHB2gFf0HcabO3LcZJ8hDAQQQqYS/jTEOKQaFG/wVW9yu0cta4gYoWDRqiFMYPNdxn+gP07UU2Al2D4rmUrCqvL/qGnBGLQjoH6i8lX3g/Qges9A6Fzlivnt2mCz6c1j1LGqR6Wta/wW8qMePi1UdRZh3Y11CObMzQYcsxshgQHroLABCDum0foD+SmHlNE/dhpPcpoHzVjAHclAU5MSioX1A/t/0v9Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=mgbEu8g+cR8hWWcI+vmWjbFyPNSrKMsI150S5qEBQE0=;
 b=DXSbnBr/U/YwMSQTjj2iz5A56230ct9mqBtqh9BJkvJM1Jv+O6vlsyN3fZAW/51fXuDHSReqR6WDsiLVlGCwN13awEqpD9ZCtYzSqIRf3KDR/cfxn9A5vcflWWUK5VtmIfaeBvqRKFaZimkUtedFDuwC+blt25Z5mhwSiRPbkHxp4NehmE0bwYFBW+n12XnbPpBjfDKoqGqL//RLvQ2M+hxzRtTp8KkZqHBUhXoY0RV4GxmCke+cPJjdwsT5721P3HdPHNP/MuRhT6A/fi3ulAzbJ1G3K/0XtuX6oR4Z22cDaMoaJEk/aZDUL4qqwgYKU/NEjzQbrNyUPcTJ5rOb6Q==
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=mgbEu8g+cR8hWWcI+vmWjbFyPNSrKMsI150S5qEBQE0=;
 b=jvjhKcqt2EhBC3kffGH+untvrK69GaxYJ9PUY+sF9fCvnN3uTQRUCNeC/bWCiYYYKX0B9hXH4BV/OV+F2E1sJZeEw92wxO4htC1DYGURsXDjC8NM7fZGc/LawkL6kk1v1vy5BUaEcvSJ6CeF3YysST8PubWPQ2mVKE2HKU/EGf8xtEgav9NWEnKfyaGXNutmavSwbimcW+ntd/6MkOfUYPYr3z39IckdRSoDWNGoO5L/LGfIizn3+dynPBUqt3y7UpAjcp4aPv0YDw1O0SPKXe9Nhuhv0K9QxrDDzg2FsnpZ2NjnaiScrJuo2c1gPDVIPt8GuACN9dZDrWcX3sqRZw==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Rahul Singh <rahul.singh@arm.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, Milan Djokic
	<milan_djokic@epam.com>
Subject: [PATCH 19/20] libxl/arm: vIOMMU: Modify the partial device tree for
 iommus
Thread-Topic: [PATCH 19/20] libxl/arm: vIOMMU: Modify the partial device tree
 for iommus
Thread-Index: AQHcB7ym3rNlr743m0uxb+sgzlQOeg==
Date: Thu, 7 Aug 2025 16:59:34 +0000
Message-ID:
 <93021553689384d7c0dbbb41466677adfe331fd8.1754580688.git.milan_djokic@epam.com>
References: <cover.1754580687.git.milan_djokic@epam.com>
In-Reply-To: <cover.1754580687.git.milan_djokic@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: PA4PR03MB7136:EE_|VI0PR03MB10757:EE_
x-ms-office365-filtering-correlation-id: ea134fe5-c68f-481c-00ca-08ddd5d3c913
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?e91ESCL/h3C45GynofHgb4w8DZc41ERMwNmUN1aoJOgSospcgsycsABRDL?=
 =?iso-8859-1?Q?Ne7HOWp+SNsXNalwxERxhv7fyeEXf6XswOYIwglQPaWMsdhW5O8xEsqWce?=
 =?iso-8859-1?Q?73Xh3ENEAbJNxkfQZeXCj/813N3OuP7FINN8MeVufDA9MEDljztHkkqp4i?=
 =?iso-8859-1?Q?8g/5rZ+8kAyn7NOnXBI3lx3DC/amdT1pyOFEPRNGAz93BkGeddXJUPtPjZ?=
 =?iso-8859-1?Q?otyTVWjULPUa3UBmZn+OBhbqZyQTLyESKTO3mFbH1XqrYbQwNGDysK0loS?=
 =?iso-8859-1?Q?bLfW7d5zihZMdGbBlLAqw9plFtblw85Q3ynhsdRLaFL7C6nOEYV/84X415?=
 =?iso-8859-1?Q?AjpLOJ0XtCXqOUs40hR/G1+qZ31lnYKJ4PqqCPThPg1+2FbdcJF/Vk4XfV?=
 =?iso-8859-1?Q?/x3bVOGA4Tome6owNRacGgB4tauJGf0AoxXk6dW4bAdV0yYnyJ0mI9DOGU?=
 =?iso-8859-1?Q?y9yQ7YlWDzSWTHC9EVRvtoDs9xZoZIg+wKB9FI7NEaTHSGd+saPNP3gmjI?=
 =?iso-8859-1?Q?gjN0uyF0N00rbJ+1uNCUQo4YW/KBN02cboibo7OYC0TuNVoMbL6x6h2XUV?=
 =?iso-8859-1?Q?WERZygFibaW+ZeVJwouW+1vpyJEkBOZ3LkmArsFYRhMsczG7x8KTmjc+/t?=
 =?iso-8859-1?Q?N8J+dD2XpJlqxVQXN/jVxQKmi961pK4fYq4ZBGQMlWYBALQhGWvddKJUAv?=
 =?iso-8859-1?Q?/kaIvfdiAwWvnqgeVOgVSbrpSNiTfknx0ZhJIWSNWPQEHXPn3jEYImUIyy?=
 =?iso-8859-1?Q?2nEXhqCIWp6l3T3YYjbKJj6WwJ62aFJnBu6tx4miei9B98M7hsoTE83tNB?=
 =?iso-8859-1?Q?WWOQGWZTwN+zvEQNIQp0mwrqpu+t+9upa0nWUgmOY6/mEouXnM1BauV6NN?=
 =?iso-8859-1?Q?LbSgSjHpRz198lXxuv7CUgfJIiZUFen5FraJul/QbRk/wWDQ1AnOJrcp2l?=
 =?iso-8859-1?Q?lU5pEXZVhrD68EWnWVJRSbjD3kP+psjfH5189K6gjjoGNU1HUkCA0Ci2i7?=
 =?iso-8859-1?Q?4SiyEcKXuCiz1kThCpRGADZMTzJU+eZ6iHII+mZZZq1NKfC3ZKYco995Qi?=
 =?iso-8859-1?Q?GACL/l9a9kVI81zpgGyoV7Dx1R4yEeAAL6kn9fGbpK/2jNhvb3c1h6KHUf?=
 =?iso-8859-1?Q?Wm/LbzrIQvzUjFGon0WekIHMC0Rn3g1LvC8HYt6tdqDwvDelQ/nkroJKw2?=
 =?iso-8859-1?Q?aMt8INU13pFDTIUlpNvb7nqY3Nb+4qVKBDBjYnFmyYeEDmUTB+f7WyJ3Xc?=
 =?iso-8859-1?Q?C6rD+TpHI1vsS/AWoKUa0J0zuLt73+k9C4nYrMa2PxDpAHnL2Acpdvf1gB?=
 =?iso-8859-1?Q?/Up/mkV3Dibepa9nuFPXXn2JwZ5zRmoejU6LcaLrJ9Tvn1hyL+ZOkgwXVs?=
 =?iso-8859-1?Q?MWQMgJxNnKcWyImD/N8VBEyIqRhkz2eZtj2DUPGhKemnOLdTHdp3mpWnmF?=
 =?iso-8859-1?Q?PVeFT0jlP3HWHoKxuEv0wqVrOgckyHz3v5BmzxuHsB7/svD3TVvfmsBnNy?=
 =?iso-8859-1?Q?7cReajSJ3omqe6gS4yhc/AQkDXlwmjczHbh1RJE5liLg=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR03MB7136.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?wKREvlsBtqGNjU3nrciv+mTzatP7I6B9MT+7T912Y8aZU+Rv7OnbZGW/h2?=
 =?iso-8859-1?Q?ecoJe7LJ8CZBWFSO2Rqvj0RhQtOgfKgPPVEZUggOYbVB/qBq+DBpk5XODt?=
 =?iso-8859-1?Q?lJjro+IOUIVYMQQbgSWOLTZgaJLR0wv5BEioLnEXviME3vETWX/r7GY47f?=
 =?iso-8859-1?Q?QauNIV4uiZciMvl2+KYO1DazYE/TlEPWbmfgmBof+BQnKlXFnvgtwdkexJ?=
 =?iso-8859-1?Q?WaYgoYQPqwOsjQvPA4gcRKLCIN6598KmihAX3l8Hg4MS/vopWOFRenn8wQ?=
 =?iso-8859-1?Q?1U3xsxsQ0+e6pTiQlfCMBwhDNnlVIXZxafJJX3h3Ns0Iq65Zh0YCgqf2pz?=
 =?iso-8859-1?Q?paLPbILkwEcI3St0eiJb8NEXFUsykrKzMoMWcdanHTNJ+bIjU+ZNYBrQaH?=
 =?iso-8859-1?Q?QYp1ljLNVOqAW7gPuBl47SwrgudFB2RLVSJ8iH1CjaX4eLIAOFC5MLDcY3?=
 =?iso-8859-1?Q?2LCNanpoZw25gYmgVtHhO0kP7w2Klry/GMjvN2VrfQ7qSaxiWj5iaycH6w?=
 =?iso-8859-1?Q?k8Gkp0DVWO/s5xrIwjeUSm8I6FJnla+OterosnOPF581biViBF9R0BwDm1?=
 =?iso-8859-1?Q?8Tt+tqJWfM03fCyfhrdt6hODyUi3dIWhd5fTrWMPG6YaRkDIeOORzGAkwG?=
 =?iso-8859-1?Q?3iBQeE2nlPKQpKFJ+IgrqoVTF3ildj1Cl4lN3xgbwVV+XLQ8aT+S5vCo4y?=
 =?iso-8859-1?Q?4a3UijjTXjJ6wvFBAnyK+NwNBcBkx34iJtv33KPVVnH9f0USGMaVQpiH58?=
 =?iso-8859-1?Q?kDqdSwXOc5okuIyzLh4EP1ATdDb3AAINPElZF9/JgKGqmLPw0gySPm0JNa?=
 =?iso-8859-1?Q?RRgB2u35Es7j5mPm2dHClsDTTUdbMGAY6Srg7aWdmnac9CwfagZ0Pvbu4i?=
 =?iso-8859-1?Q?VyWLeq3DEQ9IbLlRThYNWmK6JuIZxpb/npjE/m2WOjEgAG/O0pjnOTd1Sg?=
 =?iso-8859-1?Q?IiulGs67yHTdZlQLRIqHMa1W/PLW+lmo91zEMrQZnroUXrchFNw2kaNvKs?=
 =?iso-8859-1?Q?OLr4yujdT2UeEH9OAnfruwhRLtyeAc5319kekVwsmpPwzsqerVZw1lkTBS?=
 =?iso-8859-1?Q?KSMJhgaAwcJsxncwRZgMuOS8Niio7Trt6Q+ixEcp6X5qM1sVWMqccNumDp?=
 =?iso-8859-1?Q?nwHIz7UKZt4Bz8bTHxFurfEKqfFsl/XTmo7m5utFOKfZAIq1k55Z2qykK0?=
 =?iso-8859-1?Q?dRENe2JA7CdnK8w7GeIDuRZ32Fjj1x5WAH9Dv9M6PdR2gtkGr5LCA2eXRT?=
 =?iso-8859-1?Q?sYM46FnVOC0GF2u4YFrXXpMNXK4/1Qu4B97uQXCnU5gd6LsavMlEmC9uRA?=
 =?iso-8859-1?Q?NqUpXgEP7HgcogDY33dvsvjRz7usIsD9EoofyyjQKX01GjF15pwYIjaxgk?=
 =?iso-8859-1?Q?snI0uEmRUGnmgkwosU4LQn6i/y10a75QCuJAdoc1JCypT5pQZc6x9bCQVj?=
 =?iso-8859-1?Q?NXhCJ7tZNVnuTys0IrZRwUUDIcZKqJH7jXXHmupy6RICqI5aLATKxVbJxW?=
 =?iso-8859-1?Q?TOKUWHDNhZJFyU1Ufe5CSRGPG1i8Zx6o3V7isKH/ROytW3whdAE2sQkzr2?=
 =?iso-8859-1?Q?VYVEL29PlyvCV/Y5ekDLZtrE4al0aBMMGeELe7jVany38Abhp19HU6goj4?=
 =?iso-8859-1?Q?ZTFnpPV75yIob3+corXrRGiU54NNpCmsTCL6z9DGknTcqzIvjY0vJjGA?=
 =?iso-8859-1?Q?=3D=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: PA4PR03MB7136.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ea134fe5-c68f-481c-00ca-08ddd5d3c913
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Aug 2025 16:59:34.4204
 (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: HS5uz8LCLWlndQrSzCtskKaoonZvBpOfwePBUeQfThoCLUfvcg7HWcxCX0uya/ZtQxU+N0rBPMRtdpd3eAlhIQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR03MB10757

From: Rahul Singh <rahul.singh@arm.com>

To configure IOMMU in guest for passthrough devices, user will need to
copy the unmodified "iommus" property from host device tree to partial
device tree. To enable the dom0 linux kernel to confiure the IOMMU
correctly replace the phandle in partial device tree with virtual
IOMMU phandle when "iommus" property is set.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Singed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 tools/libs/light/libxl_arm.c | 47 +++++++++++++++++++++++++++++++++++-
 1 file changed, 46 insertions(+), 1 deletion(-)

diff --git a/tools/libs/light/libxl_arm.c b/tools/libs/light/libxl_arm.c
index 55beda8c0e..d99f49b831 100644
--- a/tools/libs/light/libxl_arm.c
+++ b/tools/libs/light/libxl_arm.c
@@ -1312,6 +1312,41 @@ static int copy_partial_fdt(libxl__gc *gc, void *fdt=
, void *pfdt)
     return 0;
 }
=20
+static int modify_partial_fdt(libxl__gc *gc, void *pfdt)
+{
+    int nodeoff, proplen, i, r;
+    const fdt32_t *prop;
+    fdt32_t *prop_c;
+
+    nodeoff =3D fdt_path_offset(pfdt, "/passthrough");
+    if (nodeoff < 0)
+        return nodeoff;
+
+    for (nodeoff =3D fdt_first_subnode(pfdt, nodeoff);
+         nodeoff >=3D 0;
+         nodeoff =3D fdt_next_subnode(pfdt, nodeoff)) {
+
+        prop =3D fdt_getprop(pfdt, nodeoff, "iommus", &proplen);
+        if (!prop)
+            continue;
+
+        prop_c =3D libxl__zalloc(gc, proplen);
+
+        for (i =3D 0; i < proplen / 8; ++i) {
+            prop_c[i * 2] =3D cpu_to_fdt32(GUEST_PHANDLE_VSMMUV3);
+            prop_c[i * 2 + 1] =3D prop[i * 2 + 1];
+        }
+
+        r =3D fdt_setprop(pfdt, nodeoff, "iommus", prop_c, proplen);
+        if (r) {
+            LOG(ERROR, "Can't set the iommus property in partial FDT");
+            return r;
+        }
+    }
+
+    return 0;
+}
+
 #else
=20
 static int check_partial_fdt(libxl__gc *gc, void *fdt, size_t size)
@@ -1330,6 +1365,13 @@ static int copy_partial_fdt(libxl__gc *gc, void *fdt=
, void *pfdt)
     return -FDT_ERR_INTERNAL;
 }
=20
+static int modify_partial_fdt(libxl__gc *gc, void *pfdt)
+{
+    LOG(ERROR, "partial device tree not supported");
+
+    return ERROR_FAIL;
+}
+
 #endif /* ENABLE_PARTIAL_DEVICE_TREE */
=20
 #define FDT_MAX_SIZE (1<<20)
@@ -1452,8 +1494,11 @@ next_resize:
         if (d_config->num_pcidevs)
             FDT( make_vpci_node(gc, fdt, ainfo, dom) );
=20
-        if (info->arch_arm.viommu_type =3D=3D LIBXL_VIOMMU_TYPE_SMMUV3)
+        if (info->arch_arm.viommu_type =3D=3D LIBXL_VIOMMU_TYPE_SMMUV3) {
             FDT( make_vsmmuv3_node(gc, fdt, ainfo, dom) );
+            if (pfdt)
+                FDT( modify_partial_fdt(gc, pfdt) );
+        }
=20
         for (i =3D 0; i < d_config->num_disks; i++) {
             libxl_device_disk *disk =3D &d_config->disks[i];
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 18:32:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 18:32:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073364.1436470 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk5PF-00056z-SX; Thu, 07 Aug 2025 18:32:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073364.1436470; Thu, 07 Aug 2025 18:32: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 1uk5PE-00050a-Ct; Thu, 07 Aug 2025 18:32:00 +0000
Received: by outflank-mailman (input) for mailman id 1073364;
 Thu, 07 Aug 2025 16:59:42 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5oaB=2T=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1uk3xu-00076W-4g
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 16:59:42 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e71243a9-73af-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 18:59:38 +0200 (CEST)
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com (2603:10a6:102:ea::23)
 by VI0PR03MB10757.eurprd03.prod.outlook.com (2603:10a6:800:267::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.21; Thu, 7 Aug
 2025 16:59:35 +0000
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f]) by PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f%6]) with mapi id 15.20.9009.013; Thu, 7 Aug 2025
 16:59: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>
X-Inumbo-ID: e71243a9-73af-11f0-a324-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=W0VhczSh8b1n66G6+pDtD4QUIJyDY4+65PQi18x6yY41CWARNwBCzyLbXbosyftaxIl44vV0D1mSXvBLB6aioVCguYDfB6UOdzC9Z6N65TFBOkpLQCEip3tXBW3mBNtiRmKLTdDbdC4IY5T4edxat+4JQpJA6JEoXir0LV9oadDuB7mWTbioPmJniBrApKHGojQx7cgdIvoLkbb24sA1N4BYSenlHWgta37sNbZWrVSYValkMqaGbjyhL9sRQCwXmSsAjeM4qTVILaR03l64QC19VEg1Jhi888KKMFSMlyJP5fTtrBwRwpko4cNAJx0RRJzMstIuumyyyCtRqr7qhw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=N139GbhE8zRhemLrZtoyLCg0r1ZmYt9NvxgUFa12HIU=;
 b=PwA70XNqIFG3T0Fji25/fV99Ffst+QIFy5HS4pQkBUSwaiuI9AwN3DVnUigzH/PXWHH56+K9dB5r0YN0u61e5RNsep3/bqrsKHY+OTJToxv72rODOg2T1conFSEgEmxJgUcc83+R9+OlL5jgbwkGoeCdjI0XQoLAC89gFKEB0CROtXEeLXSPhQYHqxgs3NVTgq9c9N4GecKDQVw7RROLbAwNSN5R6rujWPShect659AU7V5qiCvagmUscj3ksdYsSercP71/Utaeo5BFQv6tSkcv/oHkCdETIeJiWO47N8JQeHSGu2NAl13D+ZCf3aOulGNfHe8LLyq8Jsto1cODOA==
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=N139GbhE8zRhemLrZtoyLCg0r1ZmYt9NvxgUFa12HIU=;
 b=XCvUyNWX67kK/d+CdBkILPz0ZDhLG+UQhydC7ATSt7TyMufjpOoYJKcR13/hCmovK0VKDyDTpEt9VBlJOptIq2t8LqLdcRyY3YOZixrqTpqqZ55VrMTuk/BBw6y/LI6HHI9OxhhHZc1TbKaR2H9pX+JyJgMELa9DJxdfKP59r01ifjl2sSUvg3kjO1xZFJ+0iAFyhrL4wTfhQei2ODliimERFOdTzGBAJbW7UpnefJ/Bjh/iFj9arGG0lju7EX8ZJzIrqgZCx5ZP+po3afH33o4PjnuHfp+CtQsTuntYh08OsUupaYQEp3lhPXfOu1f2z4HxijSlEXL8wGik1DXe6g==
From: Milan Djokic <milan_djokic@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: 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>, Milan Djokic
	<milan_djokic@epam.com>
Subject: [PATCH 20/20] xen/arm: vIOMMU: Modify the partial device tree for
 dom0less
Thread-Topic: [PATCH 20/20] xen/arm: vIOMMU: Modify the partial device tree
 for dom0less
Thread-Index: AQHcB7ynr3/KXhUzEkK9AiVwODSe+g==
Date: Thu, 7 Aug 2025 16:59:35 +0000
Message-ID:
 <dfc3876d97763a06178cee2dcd70cce9dedc7919.1754580688.git.milan_djokic@epam.com>
References: <cover.1754580687.git.milan_djokic@epam.com>
In-Reply-To: <cover.1754580687.git.milan_djokic@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: PA4PR03MB7136:EE_|VI0PR03MB10757:EE_
x-ms-office365-filtering-correlation-id: 5af17c9d-a294-44e6-6ce5-08ddd5d3c9b4
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?MHyszSv8bSPZCq5g3+sS1JN650X+9m5WjIcbusTKHG4E87DlXF23xbGymf?=
 =?iso-8859-1?Q?FlLJ0cKxy/nFL1AnSph6cmNlJde2+aZ+3I+OFi1CE66NIYRHXmoXJ5kcoz?=
 =?iso-8859-1?Q?tD+a1kSZzhGQHff0iKzZ9P5ieM0DgMrqEPLkzkJMyReOio/Tmgl8ymtMba?=
 =?iso-8859-1?Q?VsKjD78Fw/9F4hXnGae9Abo+lrHnMHdD7/I9nPDIv2FTy3fIDFV0ETxnNS?=
 =?iso-8859-1?Q?3HnDjQh8+vckQol1lIFjfdsv4e6MKkHCniHSGSC9NK9djaSaVGDm5P7jje?=
 =?iso-8859-1?Q?o4tGjYZXg3XhQ+fCNVyyW1THp0WBK06tfheU09l7xR5/XoCJM6He9J7ORM?=
 =?iso-8859-1?Q?LUshEWEpnHE1F3cOOMGLvl0Lk3FsnvqoLQ5WdXrZnO3d9TJikEvNRKTjw4?=
 =?iso-8859-1?Q?doyvnrE+3KW5rmPicSkI6c3l7h+hJb4KghbI7mwYTq9RlOtTembLizbvG+?=
 =?iso-8859-1?Q?c4TR6xuPY0FyRYkF21lpbXy0WkZTDfuBz78sMjyZoOtu780iHua8xXiloq?=
 =?iso-8859-1?Q?/3YxRw8cQOdRFWdO+fdmDDvbFnj1Ol6Mls0FTHzKQ++VDBGBgh1Y0drFeI?=
 =?iso-8859-1?Q?/AP7SfoLL12b0PABdTck0BUzrgkpxtL7bzH450iyQBUXDcvHpSNWs+u6Ff?=
 =?iso-8859-1?Q?1wdHxR3A9HI0QwWBgT3aTAqJ37IOGdEGjVdOF7ILPLFrvv3Eidswnyzbrb?=
 =?iso-8859-1?Q?RNkEPdtzI9lf2SnCVsZQqqYmZilyYxhEL/rnhrZ723eVWhXjktCMDw52Qu?=
 =?iso-8859-1?Q?+DznvBHGIKb17qhaxVqMgBv6elHfz1RF91errP6bPu5WnhO76gu27NGyiu?=
 =?iso-8859-1?Q?pcKJNETES8Mi9iq9e05FxPdqJ5QoppK4+FAkZbzS91SKI4xsrWA5YviQny?=
 =?iso-8859-1?Q?FUpu04gQNyY+malthQpizyIUjoNbObkPsi2W6pJSuNu1rzf91ozJgjAirG?=
 =?iso-8859-1?Q?y/p8uxy6EQtOAbYKNOKta3KV0zS63GQQLOk4PH1sOLgG4dZtBAqAhqa1Gw?=
 =?iso-8859-1?Q?43pLY3u8SCNhte5ocCJE25RmbhIrfK2IJYs35SXroKUiPV/UDgg7aItFPL?=
 =?iso-8859-1?Q?AwF8Ryn/Cp55ZyESuzS0nVhxgsmzK0kjo6tXr9itScmMmMDFJ5KZv08A7z?=
 =?iso-8859-1?Q?zxEV9F0I/+/eaZReYUB0FynkW8TcmB7UuFCOhooLfsddESExO0V06pLG9g?=
 =?iso-8859-1?Q?EZv8QAHPYLKUBvsxdVyMiBa2SS3oQ2fwjjbkjexirqdtMzDYfLyNBwPNZ0?=
 =?iso-8859-1?Q?RpWPYAjm5NRTZN16fpOr1VXcSplcRrCYF1NWS/Xd1AkCNKOXLy7zCyHHrg?=
 =?iso-8859-1?Q?V1QTwly9ZmhCngLOZoeDuAsIXpvyjdqbXxg8Q3yL75hYGVuuFlnG/+lVIR?=
 =?iso-8859-1?Q?CKKUEQJrIY9st72r4EXZl4vDlRaNJhWh7clCGZVOq/K7bcmM8JwaQMmrAR?=
 =?iso-8859-1?Q?EBUejOppCU9V6ahNMahMv8C9cxuHjb338pkx7cOf/wvKhXGrWPcKMZrKml?=
 =?iso-8859-1?Q?X+u9s/UGTPksFVNpPwbmMR9OjJYWEsXXiEN7bwh0E93A=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR03MB7136.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?b+n7hy1ljQn09teDJ8LT8lj7RMIQqeykzP3THCV6gc7rhuX+42drqWgjxk?=
 =?iso-8859-1?Q?JMICThJNAeVCPd88Dv4XAmmRLqUNeBbweectBEMi0/vSaDKB8qXeqsAtkX?=
 =?iso-8859-1?Q?HFKMXIS8ZdxgABkuJ4Vcx1MaPWPI1dXV6MCIHtrpU88jj2vZzXYQp/uQKb?=
 =?iso-8859-1?Q?kfczS4UpNTcuNUKFa8/IwYIQFHe1gDC0JMJ4wEu39yt5l4dzKsuKk6IZaN?=
 =?iso-8859-1?Q?7rpsRsC+fWysSPTQnEskr10x8y4D3ogaIYRIEMCkwv/TK+xOJKAAhYoLDk?=
 =?iso-8859-1?Q?XT0LmFAYl/VED2WlL4C+SPmguNYb/OzkasjBOofjKUK/Mjwx0aSSFh4Jsg?=
 =?iso-8859-1?Q?LHGBD+gxObSJ3llZXqbygv0wUlaKqMm8e6tuttH5Fne++2Gw39OgEAZTxa?=
 =?iso-8859-1?Q?sVD+pgrPUACoyHp9K9o9NqG/WhJrkpzsnp88pVHOGDSDtduDzP3oRbBq84?=
 =?iso-8859-1?Q?2OcbtqtNczRfEDQBcJQj3ZsfyrAQsbwIvb42gdqCskVK8D5YASu2nQ0Oju?=
 =?iso-8859-1?Q?gXGCihhXED4zWGhI0y7sOmQKFLQlUdKYTcTqFktMEUwZia8jgovZW5kiHW?=
 =?iso-8859-1?Q?h/KtFMS8H4P7s+dJLGQTaoz3ugwnNZILAdNkkx1JHfTwoecmEJyJXO2Ixu?=
 =?iso-8859-1?Q?fmN9+Qa1h6qRswUTNoUKfq7mnf5rp2Gqv2sqcQArpPaFilQHJc8Hekdx+e?=
 =?iso-8859-1?Q?oAGqLocLvnPM56rP803A2lGURHFTg2/iRatbF8CRt7Lv8W8VCqdL48IwJp?=
 =?iso-8859-1?Q?C8pLK9ScHlAVJZhhq443NB4yvoMdu1URJlrElFdP1+R8hAPejerEbqLL7o?=
 =?iso-8859-1?Q?WLQUoKki/UPnW2/O6v7fPIydN1Yq68gBJ025gyjsdPwBdVvCnPjVgjmNvs?=
 =?iso-8859-1?Q?ZccsyGw4uubfM4nmMr79ZeBvV7wssUX4SgKCskI17tkomx7EkPAxiOej/9?=
 =?iso-8859-1?Q?/YFEcHiW5Z3EjQdwZGfBTEzRmBF/nm41eEJlbDCA0nT6B9jFhpF+pyvCXu?=
 =?iso-8859-1?Q?UlthRpHA+crBqKqMqx7RhpsKhTRz2nJo4ifveNFKjdFDM8E1fvd9J3fDpY?=
 =?iso-8859-1?Q?ExvPijN2Ub0ql151eaT86HnbQCsmz5Q31k+SF7gH1iHWbiZZVY+r86T62A?=
 =?iso-8859-1?Q?Pq5ahZArFt0j3XX3wFW6xps7FAjDTlJPPuUcoNz1XN5vqMOsCb6JZlrN3p?=
 =?iso-8859-1?Q?l9P/y1ovOqauc/4BGlvAhnMImkju5I9K7Ymc5RYUEpnfoZGgLJRFHmie3a?=
 =?iso-8859-1?Q?2/xNgFx+P9KLjhK1Z+A6yxbK9TMeNbvDBflKLJqV/W4mMRbhOrIJdRwdGM?=
 =?iso-8859-1?Q?iivmQXnwl5N5te7990m4cksPYp2P06aI2RjpStU5EtXAsbIiB9DJPsZdlN?=
 =?iso-8859-1?Q?GnPOT4bn6ICbkJxH0HruRlWpkn6lwysYkDdPbs3rjklw4nxSIuHIVG3BUN?=
 =?iso-8859-1?Q?8JmaT8AzmpWvoFtgLWFmOtsYJj4A6ssqBQcjP/TgCG15HhSaSxt0UwTXUk?=
 =?iso-8859-1?Q?zKieDUQQTtumKGdH5QWcLTFyY9wJ4nfmi0pNeS3CJl2KyjaTzURahJLpHg?=
 =?iso-8859-1?Q?n+r/A17UKbLSBGarX4Yl5uy018KhWTxBoP5J0wZeyI0QcWuzvqXKdaAObr?=
 =?iso-8859-1?Q?zQ2QzulECYrvKCu3mY7ShrXqlVEtAI0o9RvF1/fXpuGFjxHPgwBRZ53g?=
 =?iso-8859-1?Q?=3D=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: PA4PR03MB7136.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5af17c9d-a294-44e6-6ce5-08ddd5d3c9b4
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Aug 2025 16:59:35.5097
 (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: ehSu/DYwzUTdg51mcRV3NurZ7OjTMwLylPpsuStBCWSH6XnNhEH7Pcat0uUBjqimihbbrNUImA5wMq3oE3KqpQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR03MB10757

From: Rahul Singh <rahul.singh@arm.com>

To configure IOMMU in guest for passthrough devices, user will need to
copy the unmodified "iommus" property from host device tree to partial
device tree. To enable the dom0 linux kernel to confiure the IOMMU
correctly replace the phandle in partial device tree with virtual
IOMMU phandle when "iommus" property is set.

Signed-off-by: Rahul Singh <rahul.singh@arm.com>
Signed-off-by: Milan Djokic <milan_djokic@epam.com>
---
 xen/common/device-tree/dom0less-build.c | 31 ++++++++++++++++++++++++-
 1 file changed, 30 insertions(+), 1 deletion(-)

diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tr=
ee/dom0less-build.c
index 6bb038111d..3cfffa6581 100644
--- a/xen/common/device-tree/dom0less-build.c
+++ b/xen/common/device-tree/dom0less-build.c
@@ -314,7 +314,35 @@ static int __init handle_prop_pfdt(struct kernel_info =
*kinfo,
     return ( propoff !=3D -FDT_ERR_NOTFOUND ) ? propoff : 0;
 }
=20
-static int __init scan_pfdt_node(struct kernel_info *kinfo, const void *pf=
dt,
+static void modify_pfdt_node(void *pfdt, int nodeoff)
+{
+    int proplen, i, rc;
+    const fdt32_t *prop;
+    fdt32_t *prop_c;
+
+    prop =3D fdt_getprop(pfdt, nodeoff, "iommus", &proplen);
+    if ( !prop )
+        return;
+
+    prop_c =3D xzalloc_bytes(proplen);
+
+    for ( i =3D 0; i < proplen / 8; ++i )
+    {
+        prop_c[i * 2] =3D cpu_to_fdt32(GUEST_PHANDLE_VSMMUV3);
+        prop_c[i * 2 + 1] =3D prop[i * 2 + 1];
+    }
+
+    rc =3D fdt_setprop(pfdt, nodeoff, "iommus", prop_c, proplen);
+    if ( rc )
+    {
+        dprintk(XENLOG_ERR, "Can't set the iommus property in partial FDT"=
);
+        return;
+    }
+
+    return;
+}
+
+static int __init scan_pfdt_node(struct kernel_info *kinfo, void *pfdt,
                                  int nodeoff,
                                  uint32_t address_cells, uint32_t size_cel=
ls,
                                  bool scan_passthrough_prop)
@@ -340,6 +368,7 @@ static int __init scan_pfdt_node(struct kernel_info *ki=
nfo, const void *pfdt,
     node_next =3D fdt_first_subnode(pfdt, nodeoff);
     while ( node_next > 0 )
     {
+        modify_pfdt_node(pfdt, node_next);
         rc =3D scan_pfdt_node(kinfo, pfdt, node_next, address_cells, size_=
cells,
                             scan_passthrough_prop);
         if ( rc )
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 18:49:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 18:49:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073621.1436503 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk5gJ-0005wV-KJ; Thu, 07 Aug 2025 18:49:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073621.1436503; Thu, 07 Aug 2025 18:49: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 1uk5gJ-0005wO-HB; Thu, 07 Aug 2025 18:49:39 +0000
Received: by outflank-mailman (input) for mailman id 1073621;
 Thu, 07 Aug 2025 18:49:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ybbA=2T=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1uk5gI-0005wI-09
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 18:49:38 +0000
Received: from mail-10628.protonmail.ch (mail-10628.protonmail.ch
 [79.135.106.28]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 431e3f7f-73bf-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 20:49:35 +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>
X-Inumbo-ID: 431e3f7f-73bf-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=fbqvfxsjfbbdfh3vmn7i2fdw5a.protonmail; t=1754592572; x=1754851772;
	bh=uP79nJUPMZvjz+y6rF/Ogp5wiZ2MFlwz5FUaKnU40Ys=;
	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=Wrxqq5Gi1lhbccHjXfkmJtjPBXn9ayqKkPeS+jZV7phcwIDUwhjBlmvKZ48J3PIad
	 8GJadstYXArUHi5J8jE3rxsovmOzt39UM6XyqkDqm/1G7XRqxgplUKg2XOhq9Bb2Ot
	 4Pnh+7S1kt6wEBS4+RE0DcBmIN2wZZqRnSYgmaQlsOVCtYg5HPGV3ZsglcTs+p5p1a
	 35EISxQC/lO+c7dDZI/XlzSLx15I10/6DIOP5fT92J1RSXDDgAOVMeiBXsOYA+X92u
	 zG3eEKwqDenQbmqenznCSeGcdIkqi9gYCsw4VU/+DNUbjXJe7usZ/5Axq50yCdWPL4
	 v53qSGdRTByeQ==
Date: Thu, 07 Aug 2025 18:49:28 +0000
To: =?utf-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: Re: [PATCH v4 5/8] emul/vuart-ns16550: introduce NS16550-compatible UART emulator (x86)
Message-ID: <aJT1M6wHFEXp25w1@kraken>
In-Reply-To: <aJNvcLgsUOahsQZl@macbook.local>
References: <20250731192130.3948419-1-dmukhin@ford.com> <20250731192130.3948419-6-dmukhin@ford.com> <aJNvcLgsUOahsQZl@macbook.local>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 9d1546b44189c93768678115b91a4512e9deefee
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Wed, Aug 06, 2025 at 05:06:24PM +0200, Roger Pau Monn=C3=A9 wrote:
[..]
> > @@ -0,0 +1,1009 @@
> > +/* SPDX-License-Identifier: GPL-2.0-only */
> > +/*
> > + * NS16550-compatible UART Emulator.
> > + *
> > + * See:
> > + * - Serial and UART Tutorial:
> > + *     https://download.freebsd.org/doc/en/articles/serial-uart/serial=
-uart_en.pdf
> > + * - UART w/ 16 byte FIFO:
> > + *     https://www.ti.com/lit/ds/symlink/tl16c550c.pdf
> > + * - UART w/ 64 byte FIFO:
> > + *     https://www.ti.com/lit/ds/symlink/tl16c750.pdf
> > + *
> > + * Limitations:
> > + * - Only x86;
> > + * - Only HVM domains support (build-time), PVH domains are not suppor=
ted yet;
> > + * - Only legacy COM{1,2,3,4} resources via Kconfig, custom I/O ports/=
IRQs
> > + *   are not supported;
> > + * - Only Xen console as a backend, no inter-domain communication (sim=
ilar to
> > + *   vpl011 on Arm);
> > + * - Only 8n1 emulation (8-bit data, no parity, 1 stop bit);
> > + * - No toolstack integration;
> > + * - No baud rate emulation (reports 115200 baud to the guest OS);
> > + * - No FIFO-less mode emulation;
> > + * - No RX FIFO interrupt moderation (FCR) emulation;
> > + * - No integration w/ VM snapshotting (HVM_REGISTER_SAVE_RESTORE() an=
d
> > + *   friends);
> > + * - No ISA IRQ sharing allowed;
> > + * - No MMIO-based UART emulation.
>=20
> Listing the limitations here might not be the beast approach, this is
> likely to get out of sync as it's too far away from the code
> implementation.
>=20
> If anything those comments want to be closer together to where the
> feature would otherwise be implemented.

I wanted to have some rough overview of the emulation capabilities in one
place so it is easy to get a grasp of how emulator can be used.

But I agree that can get out of hand if not maintained; I plan to maintain
that code.

>=20
> > + */
> > +
> > +#define pr_prefix               "ns16550"
> > +#define pr_fmt(fmt)             pr_prefix ": " fmt
> > +#define pr_log_level            CONFIG_VUART_NS16550_LOG_LEVEL
> > +
> > +#include <xen/8250-uart.h>
> > +#include <xen/console.h>
> > +#include <xen/iocap.h>
> > +#include <xen/ioreq.h>
> > +#include <xen/resource.h>
> > +#include <xen/vuart.h>
> > +#include <xen/xvmalloc.h>
> > +
> > +#include <public/io/console.h>
> > +
> > +#define pr_err(fmt, args...) do { \
> > +    gprintk(KERN_ERR, pr_fmt(fmt), ## args); \
> > +} while (0)
> > +
> > +#define pr_warn(fmt, args...) do { \
> > +    if ( pr_log_level >=3D 1) \
> > +        gprintk(KERN_WARNING, pr_fmt(fmt), ## args); \
> > +} while (0)
> > +
> > +#define pr_info(fmt, args...) do { \
> > +    if ( pr_log_level >=3D 2 ) \
> > +        gprintk(KERN_INFO, pr_fmt(fmt), ## args); \
> > +} while (0)
> > +
> > +#define pr_debug(fmt, args...) do { \
> > +    if ( pr_log_level >=3D 3 ) \
> > +        gprintk(KERN_DEBUG, pr_fmt(fmt), ## args); \
> > +} while (0)
>=20
> We would use the pr_* set of logging functions for code imported from
> Linux, but for Xen code we would directly use the gprintk() functions
> rather than wrap them as you do.

Oh, I see, pr_ is a "reserved namespace".

I will rename these to ns16550_ since those are extremely helpful for
debugging.

>=20
> > +
> > +#if defined(CONFIG_VUART_NS16550_PC_COM1)
> > +#define X86_PC_UART_IDX         0
> > +#elif defined(CONFIG_VUART_NS16550_PC_COM2)
> > +#define X86_PC_UART_IDX         1
> > +#elif defined(CONFIG_VUART_NS16550_PC_COM3)
> > +#define X86_PC_UART_IDX         2
> > +#elif defined(CONFIG_VUART_NS16550_PC_COM4)
> > +#define X86_PC_UART_IDX         3
> > +#else
> > +#error "Unsupported I/O port"
> > +#endif
> > +
> > +#ifdef CONFIG_VUART_NS16550_DEBUG
> > +#define guest_prefix            "FROM GUEST "
> > +#else
> > +#define guest_prefix            ""
> > +#endif
> > +
> > +/*
> > + * Number of supported registers in the UART.
> > + */
> > +#define NS16550_REGS_NUM        ( UART_SCR + 1 )
>=20
> Extra spaces around parentheses? (here and below)

Ack.

>=20
> > +
> > +/*
> > + * Number of emulated registers.
> > + *
> > + * - Emulated registers [0..NS16550_REGS_NUM] are R/W registers for DL=
AB=3D0.
> > + * - DLAB=3D1, R/W, DLL            =3D NS16550_REGS_NUM + 0
> > + * - DLAB=3D1, R/W, DLM            =3D NS16550_REGS_NUM + 1
> > + * -         R/O, IIR (IIR_THR)  =3D NS16550_REGS_NUM + 2
> > + */
> > +#define NS16550_EMU_REGS_NUM    ( NS16550_REGS_NUM + 3 )
> > +
> > +/*
> > + * Virtual NS16550 device state.
> > + */
> > +struct vuart_ns16550 {
> > +    struct xencons_interface cons;      /* Emulated RX/TX FIFOs */
> > +    uint8_t regs[NS16550_EMU_REGS_NUM]; /* Emulated registers */
> > +    unsigned int irq;                   /* Emulated IRQ# */
> > +    uint64_t io_addr;                   /* Emulated I/O region base ad=
dress */
> > +    uint64_t io_size;                   /* Emulated I/O region size */
> > +    const char *name;                   /* Device name */
> > +    struct domain *owner;               /* Owner domain */
> > +    spinlock_t lock;                    /* Protection */
> > +};
> > +
> > +/*
> > + * Virtual device description.
> > + */
> > +struct virtdev_desc {
> > +    const char *name;
> > +    const struct resource *res;
> > +};
> > +
> > +/*
> > + * Legacy IBM PC NS16550 resources.
> > + * There are only 4 I/O port ranges, hardcoding all of them here.
> > + */
> > +static const struct virtdev_desc x86_pc_uarts[4] =3D {
> > +    [0] =3D {
>=20
> You don't need the explicit array indexes?

Muscle memory; I will nuke that huge static array in v5.

>=20
> > +        .name =3D "COM1",
> > +        .res =3D (const struct resource[]){
> > +            { .type =3D IORESOURCE_IO,  .addr =3D 0x3f8, .size =3D NS1=
6550_REGS_NUM },
> > +            { .type =3D IORESOURCE_IRQ, .addr =3D 4,     .size =3D 1 }=
,
> > +            { .type =3D IORESOURCE_UNKNOWN },
> > +        },
> > +    },
> > +    [1] =3D {
> > +        .name =3D "COM2",
> > +        .res =3D (const struct resource[]){
> > +            { .type =3D IORESOURCE_IO,  .addr =3D 0x2f8, .size =3D NS1=
6550_REGS_NUM },
> > +            { .type =3D IORESOURCE_IRQ, .addr =3D 3,     .size =3D 1 }=
,
> > +            { .type =3D IORESOURCE_UNKNOWN },
> > +        },
> > +    },
> > +    [2] =3D {
> > +        .name =3D "COM3",
> > +        .res =3D (const struct resource[]){
> > +            { .type =3D IORESOURCE_IO,  .addr =3D 0x3e8, .size =3D NS1=
6550_REGS_NUM },
> > +            { .type =3D IORESOURCE_IRQ, .addr =3D 4,     .size =3D 1 }=
,
> > +            { .type =3D IORESOURCE_UNKNOWN },
> > +        },
> > +    },
> > +    [3] =3D {
> > +        .name =3D "COM4",
> > +        .res =3D (const struct resource[]){
> > +            { .type =3D IORESOURCE_IO,  .addr =3D 0x2e8, .size =3D NS1=
6550_REGS_NUM },
> > +            { .type =3D IORESOURCE_IRQ, .addr =3D 3,     .size =3D 1 }=
,
> > +            { .type =3D IORESOURCE_UNKNOWN },
> > +        },
> > +    },
> > +};
[..]
> > diff --git a/xen/include/public/arch-x86/xen.h b/xen/include/public/arc=
h-x86/xen.h
> > index fc2487986642..f905e1252c70 100644
> > --- a/xen/include/public/arch-x86/xen.h
> > +++ b/xen/include/public/arch-x86/xen.h
> > @@ -283,13 +283,15 @@ struct xen_arch_domainconfig {
> >  #define XEN_X86_EMU_USE_PIRQ        (1U<<_XEN_X86_EMU_USE_PIRQ)
> >  #define _XEN_X86_EMU_VPCI           10
> >  #define XEN_X86_EMU_VPCI            (1U<<_XEN_X86_EMU_VPCI)
> > +#define _XEN_X86_EMU_NS16550        11
> > +#define XEN_X86_EMU_NS16550         (1U<<_XEN_X86_EMU_NS16550)
> >
> >  #define XEN_X86_EMU_ALL             (XEN_X86_EMU_LAPIC | XEN_X86_EMU_H=
PET |  \
> >                                       XEN_X86_EMU_PM | XEN_X86_EMU_RTC =
|      \
> >                                       XEN_X86_EMU_IOAPIC | XEN_X86_EMU_=
PIC |  \
> >                                       XEN_X86_EMU_VGA | XEN_X86_EMU_IOM=
MU |   \
> >                                       XEN_X86_EMU_PIT | XEN_X86_EMU_USE=
_PIRQ |\
> > -                                     XEN_X86_EMU_VPCI)
> > +                                     XEN_X86_EMU_VPCI | XEN_X86_EMU_NS=
16550)
>=20
> libxl also consumes XEN_X86_EMU_ALL, and with the proposed change here
> it will create all HVM domains with XEN_X86_EMU_NS16550, which I don't
> think it's indented?
>=20
> Overall I agree for Jan it would be better if this patch could be
> split into somehow smaller units.  Is this something feasible?  We
> don't want a patch for each register handle, but maybe you cna somehow
> grup those into functional sections, so that patches can be < 250
> lines?
>=20
> Maybe you have already considered this approach and it wasn't
> feasible?

There __were__ pretty comprehensive reviews of this very emulator code
in the past without raising such concern (and this is v4).

Just in case, the most comprehensive review was this one (thanks Roger!):
  https://lore.kernel.org/xen-devel/Z1wd4iAmVzv1ISPZ@macbook.local/



From xen-devel-bounces@lists.xenproject.org Thu Aug 07 18:57:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 18:57:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073641.1436513 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk5o2-0000TV-CO; Thu, 07 Aug 2025 18:57:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073641.1436513; Thu, 07 Aug 2025 18:57: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 1uk5o2-0000TO-8e; Thu, 07 Aug 2025 18:57:38 +0000
Received: by outflank-mailman (input) for mailman id 1073641;
 Thu, 07 Aug 2025 18:57:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ybbA=2T=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1uk5o0-0000TI-VC
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 18:57:37 +0000
Received: from mail-4316.protonmail.ch (mail-4316.protonmail.ch [185.70.43.16])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5e765486-73c0-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 20:57:30 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5e765486-73c0-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=iiwm5axhvjcqnm3f4iormuplti.protonmail; t=1754593048; x=1754852248;
	bh=YgxH0Wy0rhS+i07K30j1sLDyMeC8MYHgXyDq64rg0Mg=;
	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=N9YZKpwwgpAJnfbJoaGiUQZKLxCeF71Kir842XL4S5tCdKvZKHjR7QbEgrVGDB+g2
	 TkiMo5cyX0XZspzW2qhLxWr5TakMXKjz5hkqjPcInAe89YCwGvED1S5e3Uad14PMLm
	 6nVIECYD+TMk2BCQvGo2AjRnc3/5fvilQF1o+ZYT5Upo97IO82pj17v9pfAh2bRlK3
	 OTKFh48zh5jkwY7unuKOHl+9tuMOnOMvh+CR5ibsV+5fgwK9gvTiWzoQV+4DBAyFSS
	 rog4UgPGQe4j/aioNT64hQnzc5HK/DxncnrzyzVVJKaIDt3S4QUpLmfp3lMVIMUx3f
	 Bsug0+gKiLE0g==
Date: Thu, 07 Aug 2025 18:57:23 +0000
To: =?utf-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: Re: [PATCH v4 3/8] x86/domain: allocate d->{iomem,irq}_caps before arch-specific initialization
Message-ID: <aJT3D9mPLe7oHkTD@kraken>
In-Reply-To: <aJNoo6s_7CV6tIjy@macbook.local>
References: <20250731192130.3948419-1-dmukhin@ford.com> <20250731192130.3948419-4-dmukhin@ford.com> <aJNoo6s_7CV6tIjy@macbook.local>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 0d0161579be9a226da1c1f15a6575303ef1ad271
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Wed, Aug 06, 2025 at 04:37:23PM +0200, Roger Pau Monn=C3=A9 wrote:
> On Thu, Jul 31, 2025 at 07:21:54PM +0000, dmkhn@proton.me wrote:
> > From: Denis Mukhin <dmukhin@ford.com>
> >
> > Move IRQ/IOMEM rangesets allocation before arch_domain_create().
> >
> > That guarantees that arch-specific code could access those rangesets to
> > register traps for emulation.
> >
> > It is necessary for those emulators registering trap handlers and ensur=
ing
> > that emulated IRQs are not shared with the physical IRQs.
> >
> > Move dom0_setup_permissions() call right after I/O rangesets are alloca=
ted.
> >
> > Move pvh_setup_mmcfg() inside dom0_setup_permissions() close to the pla=
ce
> > where MMCFG ranges are initialized.
>=20
> I'm a bit puzzled by this, you don't need I/O permission to setup
> traps.  You can setup traps everywhere, the I/O rangesets control
> whether a domain can access the physical resource, not whether
> accesses can be emulated.

I do not want to setup traps if there's physical I/O range owned by the sam=
e
domain already. Emulator will report a misconfiguration in this case.

>=20
> The dependency between MMCFG registration (pvh_setup_mmcfg()) and
> calling dom0_setup_permissions() is because the later consumes the
> MMCFG ranges added by the former to mark them as not accessible by
> a PVH dom0.
>=20
> I think you don't need this for vUARTS, as the ports are know at build
> time, and hence you can block access to them without requiring the
> actual vUART to be initialized.

Oh, I see now why I have it: that spilled from MMIO-based UART.

What I need is I/O ports and IRQs rangesets allocation before emulator
initialization.

>=20
> Thanks, Roger.



From xen-devel-bounces@lists.xenproject.org Thu Aug 07 18:59:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 18:59:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073648.1436523 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk5pk-00011A-Lv; Thu, 07 Aug 2025 18:59:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073648.1436523; Thu, 07 Aug 2025 18:59: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 1uk5pk-000113-Ie; Thu, 07 Aug 2025 18:59:24 +0000
Received: by outflank-mailman (input) for mailman id 1073648;
 Thu, 07 Aug 2025 18:59:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ybbA=2T=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1uk5pj-00010B-H1
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 18:59:23 +0000
Received: from mail-24418.protonmail.ch (mail-24418.protonmail.ch
 [109.224.244.18]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a0946138-73c0-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 20:59: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>
X-Inumbo-ID: a0946138-73c0-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1754593160; x=1754852360;
	bh=DCrlIMUi9fecDJincYq57PU4LJ4nmeQwJeAkX/k33qw=;
	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=ArL7EWbozKO09O4aCyJ1i24LklEjTk68/M4jJsJV2hXBGRmZ5Gm2V9Kif0UG+RPxV
	 bHw1G8Lhlc60pKDws1JHuoOlgmstdGPsZoVH2nEyytfQrv+jCq6lG/HsiAV2GkqNcI
	 7A64c13w/EU7VSPesKjEKhCjfC5/ZXkrx/o7AiyY1vTMwWbfTk6zmuIgN+JM8qDZvd
	 OViPEuHb53i6ZONN59zKd0XN3B8Q+7iKKhJNY+0+yO3XOY6clyc7M8Kj9kHN5Xi9Kn
	 eC5TIssuRm/mxaMzNgiSi0rFqfrl7kyTt7kmLNd+cmcLSziiHvQfywYazexrdF3Nlo
	 a281Ap108W9TQ==
Date: Thu, 07 Aug 2025 18:59:17 +0000
To: Jan Beulich <jbeulich@suse.com>
From: dmkhn@proton.me
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 v4 3/8] x86/domain: allocate d->{iomem,irq}_caps before arch-specific initialization
Message-ID: <aJT3gDRsynTqUlx6@kraken>
In-Reply-To: <032daad1-29a0-48ca-9f50-5234d42a3ea1@suse.com>
References: <20250731192130.3948419-1-dmukhin@ford.com> <20250731192130.3948419-4-dmukhin@ford.com> <032daad1-29a0-48ca-9f50-5234d42a3ea1@suse.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: ecd36905f95ede267fee9578c34aa46fa07ebfe9
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Mon, Aug 04, 2025 at 12:20:11PM +0200, Jan Beulich wrote:
> On 31.07.2025 21:21, dmkhn@proton.me wrote:
> > From: Denis Mukhin <dmukhin@ford.com>
> >
> > Move IRQ/IOMEM rangesets allocation before arch_domain_create().
> >
> > That guarantees that arch-specific code could access those rangesets to
> > register traps for emulation.
> >
> > It is necessary for those emulators registering trap handlers and ensur=
ing
> > that emulated IRQs are not shared with the physical IRQs.
> >
> > Move dom0_setup_permissions() call right after I/O rangesets are alloca=
ted.
> >
> > Move pvh_setup_mmcfg() inside dom0_setup_permissions() close to the pla=
ce
> > where MMCFG ranges are initialized.
>=20
> And this is just because you like doing so? I ask because first and forem=
ost
> I can't make the connection between this and the purpose of this patch.

No, that is a bad leftover from the MMIO-based emulator.

>=20
> > --- a/xen/arch/x86/dom0_build.c
> > +++ b/xen/arch/x86/dom0_build.c
> > @@ -471,6 +471,24 @@ static void __init process_dom0_ioports_disable(st=
ruct domain *dom0)
> >      }
> >  }
> >
> > +static void __hwdom_init setup_mmcfg(struct domain *d)
>=20
> Why __hwdom_init when ...
>=20
> > @@ -480,6 +498,14 @@ int __init dom0_setup_permissions(struct domain *d=
)
> >      if ( pv_shim )
> >          return 0;
> >
> > +    /*
> > +     * MMCFG initialization must be performed before setting domain
> > +     * permissions, as the MCFG areas must not be part of the domain I=
OMEM
> > +     * accessible regions.
> > +     */
> > +    if ( is_hvm_domain(d) )
> > +        setup_mmcfg(d);
>=20
> ... the sole caller is __init?
>=20
> Jan



From xen-devel-bounces@lists.xenproject.org Thu Aug 07 19:04:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 19:04:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073656.1436532 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk5uo-0003ie-8A; Thu, 07 Aug 2025 19:04:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073656.1436532; Thu, 07 Aug 2025 19:04: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 1uk5uo-0003iW-51; Thu, 07 Aug 2025 19:04:38 +0000
Received: by outflank-mailman (input) for mailman id 1073656;
 Thu, 07 Aug 2025 19:04:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=LYnK=2T=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1uk5un-0003iQ-1k
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 19:04:37 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 597a02ba-73c1-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 21:04:31 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-4563cfac2d2so11396595e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 12:04:31 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-458b8aab8c0sm237292645e9.19.2025.08.07.12.04.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Aug 2025 12: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>
X-Inumbo-ID: 597a02ba-73c1-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754593471; x=1755198271; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=8MIpdjmfH98TCgyyxMleGJjD5tieYsqryJwfoVYi/iY=;
        b=Y/c2ME74xmMmO4nbE129stwUjKgkLXwTx7RVdeODCp49WHjf1rTV4nG/vRxMQPNbIz
         7GXGoJENFGUY3uM1aty94hhnGxW8cWg03QgWDIde8SrLOidFZj+DMh4bshpl43bXjNI+
         NJb0if4q6NVS2tNAlLlG+2G6Ai11DQRXfg3bk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754593471; x=1755198271;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8MIpdjmfH98TCgyyxMleGJjD5tieYsqryJwfoVYi/iY=;
        b=Og8AUelqQaGZFS2ues/PDRBKF8X3xnEkKKI0NiaIgPQFXCFzlXP0asaFiZE6i0g4AU
         x7OgEJIxhDf5/MLctPX+jmfMK6P6pCn1sxnjuNdmn4VWTXqx5S4HKjPeoMUjQUdNXuPP
         NqNkdeZS4lwd32c7dA7ibfXWEXz/hdTCMFB5jugClRszlq8iRZGI48csss7arE7sTFZf
         67lQfG/4jiNM1zJs1IfHKWJ6oFw32TNpFM2Ffd0zg0/87lgX3kmkyW54+rTDWqnNGKvS
         KeAsJyP0BIfopn2sUvdKfaSbbG4ewoJvtTpKK9nFmGxKbx/g5/dI3ellQlpS/qsfsxlQ
         ogtA==
X-Forwarded-Encrypted: i=1; AJvYcCU2VApNpDADJaymJuwamJIkbOZjik8m/wR9e83kswxqwAU/t4Tj6+LzfZT63Pn//KYw2s4TkUHRcc8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwwBgysdv5MbPmfg5j7Wwe4oDGtyODNDzwGnmoIXeS3al13aqmv
	73CrX6xkUFnkFym2ZJFUf3NJQqJ2HbOSM+jlomJOtm1FkjHu0c0dtJd4vmj4PqGnOAs=
X-Gm-Gg: ASbGnctaYIm/X4dcVa0iJpgPgcfIZcJ8DEzqjdaBpx8sUN3XpdDyRahrKeLZR83YzrB
	9QUEW5vzAoXdTHe6wO73xvF0axmN9pTIuA1d02JyrQvhWcAxjab2RAv7UafZUu7HeZ81AP9eO9b
	I3LDScleguFBiFZkc4pD877eYHOBb8omHlhrx5xMBsPvtA2xQftAXENbSd8phVoAXXMro7nP9p0
	2MI/HMpDBGCyuIRd6kHES+nTf5aYZPVOu0fA0+EY1XJ0GxncV3zAOWIwHRHbh5X/+cbVkNJMhVm
	XwoLCmv5RX53640OdhfBy3TestwNxpMfTeJmrIQ0jIzJoXRJPbm2F1gHplZDqBQ8Vd3Wtq8ViyF
	Lxkprn+F7FCnJDWVSVkOosrsDGDAu+Ho5lIPgNrSFatyOC/pcDAMQ2ZPcjLiwXxgvdT1Z
X-Google-Smtp-Source: AGHT+IEhQdSNiFgOUR0Uy0m3Td+Ae36MO+b7rURiUFSjvYbkFIkVBez45Eh/RbbH/zQ35FymtTLLMw==
X-Received: by 2002:a05:600c:35cb:b0:456:1c4a:82b2 with SMTP id 5b1f17b1804b1-459f4eaf75emr1201825e9.10.1754593471038;
        Thu, 07 Aug 2025 12:04:31 -0700 (PDT)
Message-ID: <dbc003a2-9202-46ec-bf87-2829d8a63d53@citrix.com>
Date: Thu, 7 Aug 2025 20:04:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [regression] Re: [PATCH v2] x86/vpci: fix handling of BAR overlaps
 with non-hole regions
To: Roger Pau Monne <roger.pau@citrix.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>,
 Jan Beulich <jbeulich@suse.com>,
 Stefano Stabellini <stefano.stabellini@amd.com>,
 Victor M Lira <victorm.lira@amd.com>
References: <20250516083159.61945-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: <20250516083159.61945-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 16/05/2025 9:31 am, Roger Pau Monne wrote:
> diff --git a/xen/arch/x86/pci.c b/xen/arch/x86/pci.c
> index 97b792e578f1..afaf9fe1c053 100644
> --- a/xen/arch/x86/pci.c
> +++ b/xen/arch/x86/pci.c
> @@ -98,3 +98,53 @@ int pci_conf_write_intercept(unsigned int seg, unsigned int bdf,
>  
>      return rc;
>  }
> +
> +bool pci_check_bar(const struct pci_dev *pdev, mfn_t start, mfn_t end)
> +{
> +    /*
> +     * Check if BAR is not overlapping with any memory region defined
> +     * in the memory map.
> +     */
> +    if ( !is_memory_hole(start, end) )
> +        gdprintk(XENLOG_WARNING,
> +                 "%pp: BAR at [%"PRI_mfn", %"PRI_mfn"] not in memory map hole\n",
> +                 &pdev->sbdf, mfn_x(start), mfn_x(end));


This is causing substantial logspam now.Â  From adl-* in CI,

(XEN) [Â Â Â  4.131847] PCI add device 0000:00:14.0
[Â Â Â  0.227775] pci 0000:00:14.2: [8086:7aa7] type 00 class 0x050000
(XEN) [Â Â Â  4.131987] arch/x86/pci.c:109:d0v0 0000:00:14.2: BAR at [00000, 00003] not in memory map hole
(XEN) [Â Â Â  4.131996] arch/x86/pci.c:109:d0v0 0000:00:14.2: BAR at [00000, 00000] not in memory map hole
(XEN) [Â Â Â  4.132013] arch/x86/pci.c:109:d0v0 0000:00:14.2: BAR at [00000, 00003] not in memory map hole
(XEN) [Â Â Â  4.132015] arch/x86/pci.c:109:d0v0 0000:00:14.2: BAR at [00000, 00000] not in memory map hole
(XEN) [Â Â Â  4.132062] arch/x86/pci.c:109:d0v0 0000:00:14.2: BAR at [00000, 00003] not in memory map hole
(XEN) [Â Â Â  4.132070] arch/x86/pci.c:109:d0v0 0000:00:14.2: BAR at [00000, 00000] not in memory map hole
(XEN) [Â Â Â  4.132084] arch/x86/pci.c:109:d0v0 0000:00:14.2: BAR at [00000, 00003] not in memory map hole
(XEN) [Â Â Â  4.132086] arch/x86/pci.c:109:d0v0 0000:00:14.2: BAR at [00000, 00000] not in memory map hole
[Â Â Â  0.227942] pci 0000:00:14.2: reg 0x10: [mem 0x00000000-0x00003fff 64bit]
(XEN) [Â Â Â  4.132130] arch/x86/pci.c:109:d0v0 0000:00:14.2: BAR at [00000, 00003] not in memory map hole
(XEN) [Â Â Â  4.132138] arch/x86/pci.c:109:d0v0 0000:00:14.2: BAR at [00000, 00000] not in memory map hole
(XEN) [Â Â Â  4.132153] arch/x86/pci.c:109:d0v0 0000:00:14.2: BAR at [00000, 00003] not in memory map hole
(XEN) [Â Â Â  4.132155] arch/x86/pci.c:109:d0v0 0000:00:14.2: BAR at [00000, 00000] not in memory map hole
(XEN) [Â Â Â  4.132202] arch/x86/pci.c:109:d0v0 0000:00:14.2: BAR at [00000, 00003] not in memory map hole
(XEN) [Â Â Â  4.132210] arch/x86/pci.c:109:d0v0 0000:00:14.2: BAR at [00000, 00000] not in memory map hole
(XEN) [Â Â Â  4.132224] arch/x86/pci.c:109:d0v0 0000:00:14.2: BAR at [00000, 00003] not in memory map hole
(XEN) [Â Â Â  4.132226] arch/x86/pci.c:109:d0v0 0000:00:14.2: BAR at [00000, 00000] not in memory map hole
[Â Â Â  0.228082] pci 0000:00:14.2: reg 0x18: [mem 0x00000000-0x00000fff 64bit]
(XEN) [Â Â Â  4.132270] arch/x86/pci.c:109:d0v0 0000:00:14.2: BAR at [00000, 00003] not in memory map hole
(XEN) [Â Â Â  4.132277] arch/x86/pci.c:109:d0v0 0000:00:14.2: BAR at [00000, 00000] not in memory map hole
(XEN) [Â Â Â  4.132291] arch/x86/pci.c:109:d0v0 0000:00:14.2: BAR at [00000, 00003] not in memory map hole
(XEN) [Â Â Â  4.132294] arch/x86/pci.c:109:d0v0 0000:00:14.2: BAR at [00000, 00000] not in memory map hole
(XEN) [Â Â Â  4.132322] arch/x86/pci.c:109:d0v0 0000:00:14.2: BAR at [00000, 00003] not in memory map hole
(XEN) [Â Â Â  4.132330] arch/x86/pci.c:109:d0v0 0000:00:14.2: BAR at [00000, 00000] not in memory map hole
(XEN) [Â Â Â  4.132343] arch/x86/pci.c:109:d0v0 0000:00:14.2: BAR at [00000, 00003] not in memory map hole
(XEN) [Â Â Â  4.132346] arch/x86/pci.c:109:d0v0 0000:00:14.2: BAR at [00000, 00000] not in memory map hole
(XEN) [Â Â Â  4.132360] arch/x86/pci.c:109:d0v0 0000:00:14.2: BAR at [00000, 00003] not in memory map hole
(XEN) [Â Â Â  4.132368] arch/x86/pci.c:109:d0v0 0000:00:14.2: BAR at [00000, 00000] not in memory map hole
(XEN) [Â Â Â  4.132382] arch/x86/pci.c:109:d0v0 0000:00:14.2: BAR at [00000, 00003] not in memory map hole
(XEN) [Â Â Â  4.132384] arch/x86/pci.c:109:d0v0 0000:00:14.2: BAR at [00000, 00000] not in memory map hole
(XEN) [Â Â Â  4.132412] arch/x86/pci.c:109:d0v0 0000:00:14.2: BAR at [00000, 00003] not in memory map hole
(XEN) [Â Â Â  4.132420] arch/x86/pci.c:109:d0v0 0000:00:14.2: BAR at [00000, 00000] not in memory map hole
(XEN) [Â Â Â  4.132433] arch/x86/pci.c:109:d0v0 0000:00:14.2: BAR at [00000, 00003] not in memory map hole
(XEN) [Â Â Â  4.132436] arch/x86/pci.c:109:d0v0 0000:00:14.2: BAR at [00000, 00000] not in memory map hole
(XEN) [Â Â Â  4.132451] arch/x86/pci.c:109:d0v0 0000:00:14.2: BAR at [00000, 00003] not in memory map hole
(XEN) [Â Â Â  4.132458] arch/x86/pci.c:109:d0v0 0000:00:14.2: BAR at [00000, 00000] not in memory map hole
(XEN) [Â Â Â  4.132474] arch/x86/pci.c:109:d0v0 0000:00:14.2: BAR at [00000, 00003] not in memory map hole
(XEN) [Â Â Â  4.132476] arch/x86/pci.c:109:d0v0 0000:00:14.2: BAR at [00000, 00000] not in memory map hole
(XEN) [Â Â Â  4.132528] arch/x86/pci.c:109:d0v0 0000:00:14.2: BAR at [00000, 00003] not in memory map hole
(XEN) [Â Â Â  4.132536] arch/x86/pci.c:109:d0v0 0000:00:14.2: BAR at [00000, 00000] not in memory map hole
(XEN) [Â Â Â  4.132550] arch/x86/pci.c:109:d0v0 0000:00:14.2: BAR at [00000, 00003] not in memory map hole
(XEN) [Â Â Â  4.132552] arch/x86/pci.c:109:d0v0 0000:00:14.2: BAR at [00000, 00000] not in memory map hole
(XEN) [Â Â Â  4.132729] PCI add device 0000:00:14.2

It really needs to become less verbose.

~Andrew



From xen-devel-bounces@lists.xenproject.org Thu Aug 07 19:12:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 19:12:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073668.1436543 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk62C-0005xz-3j; Thu, 07 Aug 2025 19:12:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073668.1436543; Thu, 07 Aug 2025 19:12: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 1uk62B-0005xs-WA; Thu, 07 Aug 2025 19:12:15 +0000
Received: by outflank-mailman (input) for mailman id 1073668;
 Thu, 07 Aug 2025 19:12:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ybbA=2T=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1uk629-0005xg-Tc
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 19:12:14 +0000
Received: from mail-24417.protonmail.ch (mail-24417.protonmail.ch
 [109.224.244.17]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6b42da76-73c2-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 21:12:11 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6b42da76-73c2-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1754593928; x=1754853128;
	bh=CfGH4U++VyHQzycl2NYSaCJI7Pl5Tfs/2kRNN199kbs=;
	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=NKBzma8JZjNdyFzcusjgv96Hqx4CuT/6RjccwvLiAlivG7ZEh8OpKJg9tv1XH99nI
	 VhHu9mSriOBzwVoRxZ6enZU62MtUx2diPqhqzj6jREb52WjDQcoNH7HX2Ex8Oo/usj
	 KF6dcttlUH1ovqoVKlMChMHeTdmutZwITvyrzdlwHxgSb3H57STyUBBW7f80BxfEsO
	 nMQGZbnVeWgrsVPolADH/ia5t/ItrDwZHYNJMwHT8YPMazdS3pKuuL0AFCyhCeSm/C
	 PETYDAqO5icxLIGpVvH/S6x7DG/BmZLU7dUkMSu80MM72y/M7WmVx3MeF+8kfss5h5
	 ZssQaK8j8S8rw==
Date: Thu, 07 Aug 2025 19:12:04 +0000
To: =?utf-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: Re: [PATCH v4 2/8] emul/vuart: introduce framework for UART emulators
Message-ID: <aJT6fwpNpDuZpR3o@kraken>
In-Reply-To: <aJNltFHxLtCq4qio@macbook.local>
References: <20250731192130.3948419-1-dmukhin@ford.com> <20250731192130.3948419-3-dmukhin@ford.com> <aJNltFHxLtCq4qio@macbook.local>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: e1743175ef3ffd52514c65f05e020c4385426647
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Wed, Aug 06, 2025 at 04:24:52PM +0200, Roger Pau Monn=C3=A9 wrote:
> On Thu, Jul 31, 2025 at 07:21:49PM +0000, dmkhn@proton.me wrote:
> > From: Denis Mukhin <dmukhin@ford.com>
> >
> > Introduce a driver framework to abstract UART emulators in the hypervis=
or.
> >
> > That allows for architecture-independent handling of virtual UARTs in t=
he
> > console driver and simplifies enabling new UART emulators.
> >
> > The framework is built under CONFIG_HAS_VUART, which will be automatica=
lly
> > enabled once the user enables any UART emulator.
> >
> > Current implementation supports maximum of one vUART of each kind per d=
omain.
> >
> > Use new domain_has_vuart() in the console driver code to check whether =
to
> > forward console input to the domain using vUART.
> >
> > Note: existing vUARTs are deliberately *not* hooked to the new framewor=
k to
> > minimize the scope of the patch: vpl011 (i.e. SBSA) emulator and "vuart=
" (i.e.
> > minimalistic MMIO-mapped dtuart for hwdoms on Arm) are kept unmodified.
> >
> > Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> > ---
> > Changes since v3:
> > - new patch
> > - original patch from ML: https://lore.kernel.org/xen-devel/20250624035=
443.344099-16-dmukhin@ford.com/
> > ---
> >  xen/arch/arm/xen.lds.S         |   1 +
> >  xen/arch/ppc/xen.lds.S         |   1 +
> >  xen/arch/riscv/xen.lds.S       |   1 +
> >  xen/arch/x86/xen.lds.S         |   1 +
> >  xen/common/Kconfig             |   2 +
> >  xen/common/Makefile            |   1 +
> >  xen/common/emul/Kconfig        |   6 ++
> >  xen/common/emul/Makefile       |   1 +
> >  xen/common/emul/vuart/Kconfig  |   6 ++
> >  xen/common/emul/vuart/Makefile |   1 +
> >  xen/common/emul/vuart/vuart.c  | 112 +++++++++++++++++++++++++++++++++
> >  xen/common/keyhandler.c        |   3 +
> >  xen/drivers/char/console.c     |   4 ++
> >  xen/include/xen/vuart.h        |  84 +++++++++++++++++++++++++
> >  xen/include/xen/xen.lds.h      |  10 +++
> >  15 files changed, 234 insertions(+)
> >  create mode 100644 xen/common/emul/Kconfig
> >  create mode 100644 xen/common/emul/Makefile
> >  create mode 100644 xen/common/emul/vuart/Kconfig
> >  create mode 100644 xen/common/emul/vuart/Makefile
> >  create mode 100644 xen/common/emul/vuart/vuart.c
> >  create mode 100644 xen/include/xen/vuart.h
> >
> > diff --git a/xen/arch/arm/xen.lds.S b/xen/arch/arm/xen.lds.S
> > index 9f30c3a13ed1..bdba7eaa4f65 100644
> > --- a/xen/arch/arm/xen.lds.S
> > +++ b/xen/arch/arm/xen.lds.S
> > @@ -58,6 +58,7 @@ SECTIONS
> >         *(.rodata)
> >         *(.rodata.*)
> >         VPCI_ARRAY
> > +       VUART_ARRAY
> >         *(.data.rel.ro)
> >         *(.data.rel.ro.*)
> >
> > diff --git a/xen/arch/ppc/xen.lds.S b/xen/arch/ppc/xen.lds.S
> > index 1de0b77fc6b9..f9d4e5b0dcd8 100644
> > --- a/xen/arch/ppc/xen.lds.S
> > +++ b/xen/arch/ppc/xen.lds.S
> > @@ -52,6 +52,7 @@ SECTIONS
> >          *(.rodata)
> >          *(.rodata.*)
> >          VPCI_ARRAY
> > +        VUART_ARRAY
> >          *(.data.rel.ro)
> >          *(.data.rel.ro.*)
> >
> > diff --git a/xen/arch/riscv/xen.lds.S b/xen/arch/riscv/xen.lds.S
> > index edcadff90bfe..59dcaa5fef9a 100644
> > --- a/xen/arch/riscv/xen.lds.S
> > +++ b/xen/arch/riscv/xen.lds.S
> > @@ -47,6 +47,7 @@ SECTIONS
> >          *(.rodata)
> >          *(.rodata.*)
> >          VPCI_ARRAY
> > +        VUART_ARRAY
> >          *(.data.rel.ro)
> >          *(.data.rel.ro.*)
> >
> > diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
> > index 8e9cac75b09e..43426df33092 100644
> > --- a/xen/arch/x86/xen.lds.S
> > +++ b/xen/arch/x86/xen.lds.S
> > @@ -136,6 +136,7 @@ SECTIONS
> >         *(.rodata)
> >         *(.rodata.*)
> >         VPCI_ARRAY
> > +       VUART_ARRAY
> >         *(.data.rel.ro)
> >         *(.data.rel.ro.*)
> >
> > diff --git a/xen/common/Kconfig b/xen/common/Kconfig
> > index 16936418a6e6..4e0bd524dc43 100644
> > --- a/xen/common/Kconfig
> > +++ b/xen/common/Kconfig
> > @@ -1,6 +1,8 @@
> >
> >  menu "Common Features"
> >
> > +source "common/emul/Kconfig"
> > +
> >  config COMPAT
> >  =09bool
> >  =09help
> > diff --git a/xen/common/Makefile b/xen/common/Makefile
> > index c316957fcb36..c0734480ee4b 100644
> > --- a/xen/common/Makefile
> > +++ b/xen/common/Makefile
> > @@ -11,6 +11,7 @@ obj-$(filter-out $(CONFIG_X86),$(CONFIG_ACPI)) +=3D d=
evice.o
> >  obj-$(CONFIG_DEVICE_TREE_PARSE) +=3D device-tree/
> >  obj-$(CONFIG_IOREQ_SERVER) +=3D dm.o
> >  obj-y +=3D domain.o
> > +obj-y +=3D emul/
> >  obj-y +=3D event_2l.o
> >  obj-y +=3D event_channel.o
> >  obj-$(CONFIG_EVTCHN_FIFO) +=3D event_fifo.o
> > diff --git a/xen/common/emul/Kconfig b/xen/common/emul/Kconfig
> > new file mode 100644
> > index 000000000000..7c6764d1756b
> > --- /dev/null
> > +++ b/xen/common/emul/Kconfig
> > @@ -0,0 +1,6 @@
> > +menu "Domain Emulation Features"
> > +=09visible if EXPERT
> > +
> > +source "common/emul/vuart/Kconfig"
> > +
> > +endmenu
> > diff --git a/xen/common/emul/Makefile b/xen/common/emul/Makefile
> > new file mode 100644
> > index 000000000000..670682102c13
> > --- /dev/null
> > +++ b/xen/common/emul/Makefile
> > @@ -0,0 +1 @@
> > +obj-$(CONFIG_HAS_VUART) +=3D vuart/
> > diff --git a/xen/common/emul/vuart/Kconfig b/xen/common/emul/vuart/Kcon=
fig
> > new file mode 100644
> > index 000000000000..02f7dd6dc1a1
> > --- /dev/null
> > +++ b/xen/common/emul/vuart/Kconfig
> > @@ -0,0 +1,6 @@
> > +config HAS_VUART
> > +=09bool
> > +
> > +menu "UART Emulation"
> > +
> > +endmenu
> > diff --git a/xen/common/emul/vuart/Makefile b/xen/common/emul/vuart/Mak=
efile
> > new file mode 100644
> > index 000000000000..c6400b001e85
> > --- /dev/null
> > +++ b/xen/common/emul/vuart/Makefile
> > @@ -0,0 +1 @@
> > +obj-$(CONFIG_HAS_VUART) +=3D vuart.o
> > diff --git a/xen/common/emul/vuart/vuart.c b/xen/common/emul/vuart/vuar=
t.c
> > new file mode 100644
> > index 000000000000..14a7f8bd8b79
> > --- /dev/null
> > +++ b/xen/common/emul/vuart/vuart.c
> > @@ -0,0 +1,112 @@
> > +/* SPDX-License-Identifier: GPL-2.0-only */
> > +/*
> > + * UART emulator framework.
> > + *
> > + * Copyright 2025 Ford Motor Company
> > + */
> > +
> > +#include <xen/errno.h>
> > +#include <xen/sched.h>
> > +#include <xen/vuart.h>
> > +
> > +#define VUART_ARRAY_SIZE    (__start_vuart_end - __start_vuart_array)
> > +
> > +#define for_each_vuart(vdev) \
> > +    for (unsigned __i =3D 0; \
> > +         __i < VUART_ARRAY_SIZE && (vdev =3D __start_vuart_array[__i],=
 1); \
> > +         __i++)
>=20
> Could you possibly do:
>=20
> #define for_each_vuart(vdev) \
>     for ( vdev =3D __start_vuart_array; vdev < __start_vuart_end: vdev++ =
)
>=20
> To avoid the extra __i variable in the inner scope?
>=20
> > +
> > +extern const struct vuart_ops *const __start_vuart_array[];
> > +extern const struct vuart_ops *const __start_vuart_end[];
>=20
> Naming here looks weird, why not __vuart_{start,end}?  Or
> __{start,end}_vuart_array.

I overlooked that, thanks.

>=20
> > +
> > +int vuart_add_node(struct domain *d, const void *node)
>=20
> What's the purpose of this function?  There's no comment here or in
> the declaration to figure out what's the purpose.  It's also not being
> called, which makes it unreachable code.  MISRA will likely complain
> about it?

That supposed to ge a hook to generate virtual firmware description for the
guest OS. On Arm/RISC-V that would be DT, on x86 that would be DSDT record =
in
guest's ACPI.

Stefano already asked to drop that until it is actually used, like for Arm'=
s
vUARTs.

Will remove in v5.

>=20
> > +{
> > +    const struct vuart_ops *vdev;
> > +    int rc;
> > +
> > +    for_each_vuart(vdev)
> > +    {
> > +        if ( !vdev->add_node )
> > +            continue;
> > +
> > +        rc =3D vdev->add_node(d, node);
> > +        if ( rc )
> > +            return rc;
> > +    }
> > +
> > +    return 0;
> > +}
> > +
> > +int vuart_init(struct domain *d, struct vuart_params *params)
> > +{
> > +    const struct vuart_ops *vdev;
> > +    int rc;
> > +
> > +    if ( !domain_has_vuart(d) )
> > +        return 0;
>=20
> Don't you need the domain_has_vuart() checks in all the handlers?
> Otherwise you are pointlessly iterating and calling handlers that
> won't do anything?

All handlers should check for vuart handler (per-vUART data structure)
not being NULL. Will update that code in v5.

>=20
> > +
> > +    for_each_vuart(vdev)
> > +    {
> > +        rc =3D vdev->init(d, params);
> > +        if ( rc )
> > +            return rc;
> > +    }
> > +
> > +    d->console.input_allowed =3D true;
> > +
> > +    return 0;
> > +}
> > +
> > +/*
> > + * Release any resources taken by UART emulators.
> > + *
> > + * NB: no flags are cleared, since currently exit() is called only dur=
ing
> > + * domain destroy.
> > + */
> > +void vuart_deinit(struct domain *d)
> > +{
> > +    const struct vuart_ops *vdev;
> > +
> > +    for_each_vuart(vdev)
> > +        vdev->deinit(d);
> > +}
> > +
> > +void vuart_dump_state(const struct domain *d)
> > +{
> > +    const struct vuart_ops *vdev;
> > +
> > +    for_each_vuart(vdev)
> > +        vdev->dump_state(d);
> > +}
> > +
> > +/*
> > + * Put character to the first suitable emulated UART's FIFO.
> > + */
> > +int vuart_put_rx(struct domain *d, char c)
> > +{
> > +    const struct vuart_ops *vdev =3D NULL;
> > +
> > +    ASSERT(domain_has_vuart(d));
> > +
> > +    for_each_vuart(vdev)
> > +        if ( vdev->put_rx )
> > +            break;
> > +
> > +    return vdev ? vdev->put_rx(d, c) : -ENODEV;
>=20
> The above functions seems to be designed to deal with multiple vUARTs
> in-use by the same domain, while the put_rx code gives up as soon as
> it finds an implementation that has the ->put_rx() hook set.

Correct, that is to account for hwdom vUART (or just "vuart" on Arm) which =
by
design has no RX buffer/register emulation.

>=20
> > +}
> > +
> > +bool domain_has_vuart(const struct domain *d)
> > +{
> > +    uint32_t mask =3D 0;
> > +
> > +    return !!(d->emulation_flags & mask);
> > +}
> > +
> > +/*
> > + * Local variables:
> > + * mode: C
> > + * c-file-style: "BSD"
> > + * c-basic-offset: 4
> > + * indent-tabs-mode: nil
> > + * End:
> > + */
> > diff --git a/xen/common/keyhandler.c b/xen/common/keyhandler.c
> > index eccd97c565c6..af427d25dc0d 100644
> > --- a/xen/common/keyhandler.c
> > +++ b/xen/common/keyhandler.c
> > @@ -22,6 +22,7 @@
> >  #include <xen/mm.h>
> >  #include <xen/watchdog.h>
> >  #include <xen/init.h>
> > +#include <xen/vuart.h>
> >  #include <asm/div64.h>
> >
> >  static unsigned char keypress_key;
> > @@ -354,6 +355,8 @@ static void cf_check dump_domains(unsigned char key=
)
> >                             v->periodic_period / 1000000);
> >              }
> >          }
> > +
> > +        vuart_dump_state(d);
> >      }
> >
> >      for_each_domain ( d )
> > diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
> > index 963c7b043cd8..93254979817b 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/vuart.h>
> >
> >  #ifdef CONFIG_X86
> >  #include <asm/guest.h>
> > @@ -601,6 +602,7 @@ static void __serial_rx(char c)
> >          /*
> >           * Deliver input to the hardware domain buffer, unless it is
> >           * already full.
> > +         * NB: must be the first check: hardware domain may have emula=
ted UART.
> >           */
> >          if ( (serial_rx_prod - serial_rx_cons) !=3D SERIAL_RX_SIZE )
> >              serial_rx_ring[SERIAL_RX_MASK(serial_rx_prod++)] =3D c;
> > @@ -611,6 +613,8 @@ static void __serial_rx(char c)
> >           */
> >          send_global_virq(VIRQ_CONSOLE);
> >      }
> > +    else if ( domain_has_vuart(d) )
> > +        rc =3D vuart_put_rx(d, c);
> >  #ifdef CONFIG_SBSA_VUART_CONSOLE
> >      else
> >          /* Deliver input to the emulated UART. */
> > diff --git a/xen/include/xen/vuart.h b/xen/include/xen/vuart.h
> > new file mode 100644
> > index 000000000000..e843026df4b1
> > --- /dev/null
> > +++ b/xen/include/xen/vuart.h
> > @@ -0,0 +1,84 @@
> > +/* SPDX-License-Identifier: GPL-2.0-only */
> > +/*
> > + * UART emulator framework.
> > + *
> > + * Copyright 2025 Ford Motor Company
> > + */
> > +
> > +#ifndef XEN_VUART_H
> > +#define XEN_VUART_H
> > +
> > +#include <public/xen.h>
> > +#include <public/event_channel.h>
> > +#include <xen/types.h>
> > +
> > +struct vuart_params {
> > +    domid_t console_domid;
> > +    gfn_t gfn;
> > +    evtchn_port_t evtchn;
>=20
> I think this should be empty initially, as there's no implementation
> that uses the hooks it's completely opaque to me what should be placed
> in vuart_params.

Good point, will do.

>=20
> > +};
> > +
> > +struct vuart_ops {
> > +    int (*add_node)(struct domain *d, const void *node);
> > +    int (*init)(struct domain *d, struct vuart_params *params);
> > +    void (*deinit)(struct domain *d);
> > +    void (*dump_state)(const struct domain *d);
> > +    int (*put_rx)(struct domain *d, char c);
>=20
> We haven't been very good at this, but ideally hooks should be
> documented as to which task they are expected to perform, so that
> future implementations have some initial help in understanding how
> this is supposed to work.

Agreed.

>=20
> > +};
> > +
> > +#define VUART_REGISTER(name, x) \
> > +    static const struct vuart_ops *const __name##_entry \
> > +        __used_section(".data.vuart." #name) =3D (x);
>=20
> For vPCI we are moving this to a different section, I think you want
> to use ".data.rel.ro.vuart" here.

Ack.

>=20
> Thanks, Roger.



From xen-devel-bounces@lists.xenproject.org Thu Aug 07 19:39:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 19:39:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073691.1436553 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk6S0-00029K-3F; Thu, 07 Aug 2025 19:38:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073691.1436553; Thu, 07 Aug 2025 19:38: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 1uk6S0-00029D-0H; Thu, 07 Aug 2025 19:38:56 +0000
Received: by outflank-mailman (input) for mailman id 1073691;
 Thu, 07 Aug 2025 19:38:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ybbA=2T=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1uk6Rx-00028o-L6
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 19:38:54 +0000
Received: from mail-10629.protonmail.ch (mail-10629.protonmail.ch
 [79.135.106.29]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2228c100-73c6-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 21:38:46 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2228c100-73c6-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=awzlv4zhezhw7oemvznntk3xka.protonmail; t=1754595524; x=1754854724;
	bh=Md4ZLamh7K53myDSejrsncYY3j59Md3XIf85NqU/2bg=;
	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=RL3dZNEG0TCqAeLp60w7Ors34LqrN5TRWWcxIqTk+BevYoZvQd6SnSdh4TYP16jDJ
	 ru1g7b3MD2T9EPNzHYpPd+QAZxlcs8inVdrxU14OiszOc5B6zIEe0ZF53m8m4Be3Kv
	 mFSqfB6vxe6EgHX0ZZjHnyKOQeSx0EgP5C2Hx8z+jgM15SFC6otZbLACRdj3vzdksq
	 YDoZyPFHMZM0mGqyGIvndyAghTx4RYdh4nzEEY/bT2Dc0cZo6lpaB2VFs8TYlrdCNk
	 gOWxrqrmi1DzMR/GnG45Nbaln4RnyifkWOyZNPMI9/S7EtdUYr/h/3j5eZ8RO+sLIk
	 SBM+SbCfu26Iw==
Date: Thu, 07 Aug 2025 19:38:40 +0000
To: Jan Beulich <jbeulich@suse.com>
From: dmkhn@proton.me
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 v4 7/8] tools/xl: enable NS16550-compatible UART emulator for PVH (x86)
Message-ID: <aJUAu46dcUzwrclZ@kraken>
In-Reply-To: <549bde88-38a3-4920-9309-f898b48d3bda@suse.com>
References: <20250731192130.3948419-1-dmukhin@ford.com> <20250731192130.3948419-8-dmukhin@ford.com> <549bde88-38a3-4920-9309-f898b48d3bda@suse.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: d701da045a4ecc044bfc76dffd6ecadda041c7c4
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Mon, Aug 04, 2025 at 01:06:32PM +0200, Jan Beulich wrote:
> On 31.07.2025 21:22, dmkhn@proton.me wrote:
> > From: Denis Mukhin <dmukhin@ford.com>
> >
> > Enable virtual NS16550 for PVH domains in xl.
> >
> > {map,unmap}_domain_emuirq_pirq() infrastructure is modified by adding n=
ew
> > type of interrupt resources 'IRQ_EMU' which means 'emulated device IRQ'
> > (similarly to IRQ_MSI_EMU).
> >
> > This is necessary to for IOAPIC emulation code to skip IRQ->PIRQ mappin=
g
> > (vioapic_hwdom_map_gsi()) when guest OS unmasks vIOAPIC pin correspondi=
ng to
> > virtual device's IRQ.
> >
> > Also, hvm_gsi_eoi() is modified to trigger assertion in hvm_gsi_deasser=
t()
> > path for ISA IRQs.
> >
> > Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> > ---
> > Changes since v3:
> > - new patch
> > ---
> >  tools/libs/light/libxl_x86.c          |  2 +-
> >  xen/arch/x86/domain.c                 |  2 ++
> >  xen/arch/x86/hvm/vioapic.c            | 10 ++++++++++
> >  xen/arch/x86/include/asm/irq.h        |  1 +
> >  xen/common/emul/vuart/vuart-ns16550.c | 27 +++++++++++++++++++++++++--
> >  xen/drivers/passthrough/x86/hvm.c     |  9 ++++-----
> >  6 files changed, 43 insertions(+), 8 deletions(-)
>=20
> Given this diffstat, how come the patch prefix is "tools/xl:"? You don't =
even
> touch xl ...

Yeah, my bad, that should have been saying something like
"enable IRQ emulation via vIOAPIC"

Will update.

>=20
> > --- a/xen/common/emul/vuart/vuart-ns16550.c
> > +++ b/xen/common/emul/vuart/vuart-ns16550.c
> > @@ -355,7 +355,9 @@ static void ns16550_irq_assert(const struct vuart_n=
s16550 *vdev)
> >      struct domain *d =3D vdev->owner;
> >      int vector;
> >
> > -    if ( has_vpic(d) ) /* HVM */
> > +    if ( has_vioapic(d) && !has_vpic(d) ) /* PVH */
> > +        vector =3D hvm_ioapic_assert(d, vdev->irq, false);
> > +    else if ( has_vpic(d) ) /* HVM */
> >          vector =3D hvm_isa_irq_assert(d, vdev->irq, vioapic_get_vector=
);
>=20
> Why not
>=20
>     if ( has_vpic(d) ) /* HVM */
>          vector =3D hvm_isa_irq_assert(d, vdev->irq, vioapic_get_vector);
>     else if ( has_vioapic(d) ) /* PVH */
>         vector =3D hvm_ioapic_assert(d, vdev->irq, false);
>=20
> Less code churn and maybe even less generated code.
>=20
> > @@ -367,7 +369,9 @@ static void ns16550_irq_deassert(const struct vuart=
_ns16550 *vdev)
> >  {
> >      struct domain *d =3D vdev->owner;
> >
> > -    if ( has_vpic(d) ) /* HVM */
> > +    if ( has_vioapic(d) && !has_vpic(d) ) /* PVH */
> > +        hvm_ioapic_deassert(d, vdev->irq);
> > +    else if ( has_vpic(d) ) /* HVM */
> >          hvm_isa_irq_deassert(d, vdev->irq);
>=20
> Same here then.
>=20
> > --- a/xen/drivers/passthrough/x86/hvm.c
> > +++ b/xen/drivers/passthrough/x86/hvm.c
> > @@ -924,12 +924,11 @@ static void hvm_gsi_eoi(struct domain *d, unsigne=
d int gsi)
> >  {
> >      struct pirq *pirq =3D pirq_info(d, gsi);
> >
> > -    /* Check if GSI is actually mapped. */
> > -    if ( !pirq_dpci(pirq) )
> > -        return;
> > -
> >      hvm_gsi_deassert(d, gsi);
> > -    hvm_pirq_eoi(pirq);
> > +
> > +    /* Check if GSI is actually mapped. */
> > +    if ( pirq_dpci(pirq) )
> > +        hvm_pirq_eoi(pirq);
> >  }
>=20
> The correctness of this change (in particular hvm_gsi_deassert() now alwa=
ys
> running) wants reasoning about in the description.
>=20
> Jan
>=20



From xen-devel-bounces@lists.xenproject.org Thu Aug 07 19:40:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 19:40:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073698.1436564 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk6T8-0003V5-E8; Thu, 07 Aug 2025 19:40:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073698.1436564; Thu, 07 Aug 2025 19:40: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 1uk6T8-0003Uy-8P; Thu, 07 Aug 2025 19:40:06 +0000
Received: by outflank-mailman (input) for mailman id 1073698;
 Thu, 07 Aug 2025 19:40:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gbW2=2T=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1uk6T6-0002bD-UG
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 19:40:05 +0000
Received: from mail-lf1-x133.google.com (mail-lf1-x133.google.com
 [2a00:1450:4864:20::133])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5011acef-73c6-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 21:40:03 +0200 (CEST)
Received: by mail-lf1-x133.google.com with SMTP id
 2adb3069b0e04-55b9855f671so1097703e87.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 12:40:03 -0700 (PDT)
Received: from yp-VivoBook-ASUSLaptop-M1503QA-M1503QA.. ([95.67.15.120])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-55b8898bfc6sm2759188e87.10.2025.08.07.12.40.01
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Aug 2025 12:40: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>
X-Inumbo-ID: 5011acef-73c6-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754595602; x=1755200402; 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=3PCKBVkOOiGwztb7dubHx+ShtxfyDDP66VQQbwirhOY=;
        b=hPl/dmVZupC9iScdWmXGaemNAITxpLDBzHTayVBrg/djA3Um2WN7ow8FmnRqI846/f
         4INBWXvnCPkW8oF1JCN5apDP3xecXRwYvs9N7iw5b1MKjgf2nHkiPGovS1CBtmLUmlLJ
         9c8eu2GvUcu98GAbmtnnl1HtnIpvIQDHIVY8eYirfsubCCrDUSKUlHjk16kTlg6UlOMV
         mXiOm4o+sVjVK2GsI6VYBWxF/IuC55iuj7rjoVMkrNdYpZStqVpEIrD76bcH3r/mnTXw
         c77QhSdHGS8k6rXdGXL4+yLLDeYGrzCeqZBFtHKKWYXaQ6KYeJhshP6t8BeD1Era9n1k
         LYiw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754595602; x=1755200402;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=3PCKBVkOOiGwztb7dubHx+ShtxfyDDP66VQQbwirhOY=;
        b=FaXII8d50ZIvaGen9e5XLvThspZHQ42VD063/J6u6jcDkzZ6yBbp7RgBUpFs1szsJs
         HpQHN2zVd48D9FflEKot4QwbGyYkmTCJnNrEHo0ySED0qtKz5J6l3ZGibMebP3B/+aIC
         HSe6rQ+pnJ7m1h4CTeZ7nYUZFENNsXMwstH30nBMC6dbZtt5XHCaGiK10M3nAd7q7gGa
         M8/jhgvY6b9rjRdxowZL6IKTxpeNFVnNK97ha97aBav689lth5TsGfbId/63XdeZrR0y
         R7LVmOoEjy8a08GyBeorL4/5v0wG6ns41Sx+8l2IAGsb2MvElQdK3JnHEVKg/sJFWJpS
         j7vQ==
X-Gm-Message-State: AOJu0YwMMwPU1wigVcoFU/oWIgN+OZgVecC3CuPvy+5E2y+gymes3ylk
	zhkLtOQj23BtHMGS/OgSCDh8PGKWUlZNlZBwe7/6ISuIPMFiKpplcJHNEAKR0ZUkF6w=
X-Gm-Gg: ASbGnctbhs9azpuSxBR6TBP3e10h2YCsE8I7kGa5fkwOxOxGK/wqYJw6p7bnve1g9pA
	VLlrIaYubpb0OGHjlvlAdU8hNZnod+HJIDMlpcM/uq8anKaaWa321D9kxqBSvHze5kbrs41BKxi
	Yl8DQL18o61mVg2JCwpqpOObRSkjbV6kVxejKxR6zYkIwLPN1dm/zTlpeFiWHLRXJiNH/8DukVz
	9l0Dl8j1KfjpW7EDFLQVsn/owkQiPCESjnymceN0yjtbTgevtJ9fQJCyTKp7o9u2tQgplQ8iCGz
	mPiUfToy3nzsnv6EriNAVJ63LjZz7RlTNr2vr3yhfGJ/eEaMXGXp2cEMddjXzqrGw3ffd/J0qeW
	sQIDsR1429YRpDjgZbMxypYksXEASKPfPyCswILFoMyv+167F83Gq3vyGLcshMg==
X-Google-Smtp-Source: AGHT+IEcX+5TflQqQCCowXcla5nXZQlyNz6i14wmvRuwklH41h2IcJZ3jqsT9dcgBKwlRHwdpapRHA==
X-Received: by 2002:a05:6512:3d9e:b0:550:e8b6:6996 with SMTP id 2adb3069b0e04-55cb5c7886fmr1371456e87.2.1754595602201;
        Thu, 07 Aug 2025 12:40:02 -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>,
	Juergen Gross <jgross@suse.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Community Manager <community.manager@xenproject.org>
Subject: [PATCH v8 0/4] Enable guest suspend/resume support on ARM via vPSCI
Date: Thu,  7 Aug 2025 22:39:24 +0300
Message-ID: <cover.1754595198.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.48.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

This patch series introduces the initial support for guest suspend
and resume on ARM platforms using the PSCI SYSTEM_SUSPEND interface. The main
goal is to allow ARM guests to request suspension using PSCI and be resumed
by the control domain (e.g., via "xl resume").

### Background

The PSCI SYSTEM_SUSPEND call is part of the PSCI v1.0+ specification and is
used by guests to enter the deepest possible power state. On Xen/ARM, we
emulate this interface in the virtual PSCI (vPSCI) layer for guests.

This series includes:

1. A new vPSCI implementation of the PSCI SYSTEM_SUSPEND function for guests
2. Documentation updates to SUPPORT.md to reflect PSCI and vPSCI support status
3. Enabling "xl resume" command compilation for ARM, which was previously disabled

### Usage

For Linux-based guests:
  - Suspend can be triggered using: "echo mem > /sys/power/state" or "systemctl suspend"
  - Resume can be performed from control domain using: "xl resume <domain>"

For more information, refer to the official Linux kernel documentation on power management.

Note that currently, SYSTEM_SUSPEND is supported only for guest domains (not for
the hardware domain).
---

TODO: enable "xl suspend" for ARM
---

This is the first part of previous patch series and originally consist only
with necessary changes needed for guest domain suspend.

Changes in V8:
- GIC and virtual timer context saved when the domain suspends
- rework locking
- minor changes after code review

Changes in V7:
- add proper locking
- minor changes after code review

Main changes in V6:
- Skip execution of ctxt_switch_from for VCPUs in paused domains.
- Implement domain_resume_nopause
- Add a helper to determine if a VCPU is in suspended domain.
- Ignore upper 32 bits of arguments for 64-bit domains calling SMC32 SYSTEM_SUSPEND.
- Macro renamed from LIBXL_HAVE_NO_SUSPEND_RESUME to LIBXL_HAVE_NO_SUSPEND for clarity.
- Documentation now focuses only on the SYSTEM_SUSPEND function, with improved wording and structure.
- Changelog and commit messages refined for clarity and to remove redundant explanations.

Main change in V5:
  - Reverted the logic related to suspending domains. Instead of the standby
    mode introduced in v4, domains now resume execution at the point provided
    during suspend

The rest of the minor changes are described in the changelog of each commit.

Previous versions of this patch series:
  V1: https://lists.xenproject.org/archives/html/xen-devel/2018-11/msg01093.html
  V2: https://marc.info/?l=xen-devel&m=166514782207736&w=2
  V3: https://lists.xenproject.org/archives/html/xen-devel/2025-03/msg00168.html

Mykola Kvach (4):
  xen/arm: Implement PSCI SYSTEM_SUSPEND call for guests
  tools/xl: Allow compilation of 'xl resume' command on Arm
  SUPPORT.md: Document PSCI SYSTEM_SUSPEND support for guests
  CHANGELOG: Document guest suspend/resume to RAM support on Arm

 CHANGELOG.md                          |   2 +
 SUPPORT.md                            |   5 +-
 tools/include/libxl.h                 |   1 -
 tools/xl/xl.h                         |   4 +-
 tools/xl/xl_cmdtable.c                |   4 +-
 tools/xl/xl_migrate.c                 |   2 +-
 tools/xl/xl_saverestore.c             |   2 +-
 tools/xl/xl_vmcontrol.c               |  12 +--
 xen/arch/arm/domain.c                 |  17 +++--
 xen/arch/arm/include/asm/perfc_defn.h |   1 +
 xen/arch/arm/include/asm/psci.h       |   2 +
 xen/arch/arm/include/asm/vpsci.h      |   2 +-
 xen/arch/arm/vpsci.c                  | 101 ++++++++++++++++++++++----
 xen/common/domain.c                   |  22 ++++--
 xen/include/xen/sched.h               |   6 ++
 15 files changed, 139 insertions(+), 44 deletions(-)

-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 07 19:40:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 19:40:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073699.1436572 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk6TA-0003pa-O9; Thu, 07 Aug 2025 19:40:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073699.1436572; Thu, 07 Aug 2025 19:40:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk6TA-0003pT-LG; Thu, 07 Aug 2025 19:40:08 +0000
Received: by outflank-mailman (input) for mailman id 1073699;
 Thu, 07 Aug 2025 19:40:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gbW2=2T=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1uk6T8-0002bD-Qw
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 19:40:06 +0000
Received: from mail-lf1-x12d.google.com (mail-lf1-x12d.google.com
 [2a00:1450:4864:20::12d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 511ada61-73c6-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 21:40:05 +0200 (CEST)
Received: by mail-lf1-x12d.google.com with SMTP id
 2adb3069b0e04-55b8a7a505cso1803401e87.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 12:40:05 -0700 (PDT)
Received: from yp-VivoBook-ASUSLaptop-M1503QA-M1503QA.. ([95.67.15.120])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-55b8898bfc6sm2759188e87.10.2025.08.07.12.40.02
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Aug 2025 12:40: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>
X-Inumbo-ID: 511ada61-73c6-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754595604; x=1755200404; 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=fJUB20LiWerUQhv0sVWwQBJUkY/1OeouJfHXDztIoDM=;
        b=daYeQaQ1VIgGNp+RpJdtjEcvtlm7HBeazMbcKik48weB2LPwXBcxQSijptgrtKPeDh
         svq4krqsBOFCV5yul1oD1s9CA9NqAITMDikZI9Vkkz4YiYluj1eI8BtbGFDZRCqXdO2x
         syMYYNg39K5qQY6OqoXGNX2oilRLmfcg0TUYuIGkO++jCD1TbqsIsgVsEgTeTUMeeh8e
         tJnTjKD7srDP5DsX+3GD8MNLDish1LOEaQ3r7FX7du+SwHNpAIlcPwPRY2JH2QeaqVP9
         4yB2sTgWb43nfWQHxVPu2AjLJWnqM5doJoDo2wafgi4t8wWqv7ZRtSWDxVjUIh//bMLj
         Akjg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754595604; x=1755200404;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=fJUB20LiWerUQhv0sVWwQBJUkY/1OeouJfHXDztIoDM=;
        b=f9fV5rfXGTVlyJaw+5WZaVWeDJPJ9WSv2FALwOBYc638MY9zefxnwWuCXlHb7lq1uz
         Am+TZ57TkYCoLO7YSYOzWmhHLuScbDMP5RNRWuzBZLFPhzai+F5PSq4Bl+zpbTjYsHJW
         IBoXee79JATKr8vWUdeKzXGqMNgDnJiAgbnkUF3zLlC19jOExXSkHKVqrqasL7X1iZFl
         RDbeqSgQ2BpCQOq+/aDSHVNnBtb4sj1xUgpPU0We0U3+EkOLMxQfub2f4X0gE14nt9qT
         t7IQHMYW08uY9SeeHDYk86hbj5njzg5ZV5MlchHdez/y1er8yowJbROfEti8pEigbIo1
         IFSg==
X-Gm-Message-State: AOJu0YwSCiq9OWZVpfXCTaiY/cYW1wNlnP4+M0woOVzat67keNcDR6wj
	q+1w900J8QuuFWEzMWXMwoHV7elpp/jtcOM4Efi6e1uYEsw/zpQFPdqo+BpibbEIs+A=
X-Gm-Gg: ASbGncttp3NKtG4JfvzoybsUHrfuomk/apJgtWKOKR5urmYvHP+MIEhZ1nUOKkIRG71
	tEW+e6Axe1rtCneTNdUDcY9eJCw6xbE29cs8QDVFfNF/G4lnbRX3bOhnXAs/wr9b1hGUXOd12nb
	Lxh93P3Qmp7f8UggIR475vhpmqwC35mGUeHxykvfsUBE816P68JGyzYXlDEs+R4syPJjE8N3bsz
	O+Yv5w4T8cDDJbseT2Mxo1zATfM7J2BENLY/tWNGlHMeyffwszNoZuHs91G4xFf7dUxLRUAiIdQ
	9l14hMTed1axoKf+b89jjQoQSwjVnvQ7+Q1wTNpQzq+uMIMQ7q9gclPiflSwMA9hKbl13oO6GSs
	TqSduLtO7JKK8VhF7VWQCspHbxRX6zAQx46OQSj6Hv4Fkxii3j/6a20I/F18+2A==
X-Google-Smtp-Source: AGHT+IFvgkpt3O7sUpxvIO2fyn30cA6jxh06Jp6tGDDEJGuFiwLSoKayaTfR0T1sxT7i8mRt82y0YA==
X-Received: by 2002:ac2:4c53:0:b0:55b:87d9:3bad with SMTP id 2adb3069b0e04-55cc00fe7fcmr2939e87.34.1754595603834;
        Thu, 07 Aug 2025 12:40:03 -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 v8 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for guests
Date: Thu,  7 Aug 2025 22:39:25 +0300
Message-ID: <64cbfa58af7935c47141a2b1c0560e8d63e3d712.1754595198.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.1754595198.git.mykola_kvach@epam.com>
References: <cover.1754595198.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

This patch adds support for the PSCI SYSTEM_SUSPEND function in the vPSCI
(virtual PSCI) interface, allowing guests to request suspend via the PSCI
v1.0 SYSTEM_SUSPEND call (both 32-bit and 64-bit variants).

The implementation:
- Adds SYSTEM_SUSPEND function IDs to PSCI definitions
- Implements trapping and handling of SYSTEM_SUSPEND in vPSCI
- Allows only non-hardware domains to invoke SYSTEM_SUSPEND; for the
  hardware domain, PSCI_NOT_SUPPORTED is returned to avoid halting the
  system in hwdom_shutdown() called from domain_shutdown
- Ensures all secondary VCPUs of the calling domain are offline before
  allowing suspend due to PSCI spec

GIC and virtual timer context must be saved when the domain suspends.
This is done by moving the respective code in ctxt_switch_from
before the return that happens if the domain suspended.

Usage:

For Linux-based guests, suspend can be initiated with:
    echo mem > /sys/power/state
or via:
    systemctl suspend

Resuming the guest is performed from control domain using:
      xl resume <domain>

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in V8:
- GIC and virtual timer context must be saved when the domain suspends
- rework locking
- minor changes after code review

Changes in V7:
- add proper locking
- minor changes after code review

Changes in V6:
- skip execution of ctxt_switch_from for vcpu that is in paused domain
- add implementation of domain_resume without domain_pause
- add helper function to determine if vcpu is suspended or not
- ignore upper 32 bits of argument values when the domain is 64-bit
  and calls the SMC32 SYSTEM_SUSPEND function
- cosmetic changes after review

Changes in V5:
- don't use standby mode, restore execution in a provided by guest point
- move checking that all CPUs, except current one, are offline to after
  pausing the vCPUs
- provide ret status from arch_domain_shutdown and handle it in
  domain_shutdown
- adjust VPSCI_NR_FUNCS to reflect the number of newly added PSCI functions

Changes in V4:
Dropped all changes related to watchdog, domain is marked as shutting
down in domain_shutdown and watchdog timeout handler won't trigger
because of it.

Previous versions included code to manage Xen watchdog timers during suspend,
but this was removed. When a guest OS starts the Xen watchdog (either via the
kernel driver or xenwatchdogd), it is responsible for managing that state
across suspend/resume. On Linux, the Xen kernel driver properly stops the
watchdog during suspend. However, when xenwatchdogd is used instead, suspend
handling is incomplete, potentially leading to watchdog-triggered resets on
resume. Xen leaves watchdog handling to the guest OS and its services.

Dropped all changes related to VCPU context, because instead domain_shutdown
is used, so we don't need any extra changes for suspending domain.

Changes in V3:
Dropped all domain flags and related code (which touched common functions like
vcpu_unblock), keeping only the necessary changes for Xen suspend/resume, i.e.
suspend/resume is now fully supported only for the hardware domain.
Proper support for domU suspend/resume will be added in a future patch.
This patch does not yet include VCPU context reset or domain context
restoration in VCPU.
---
 xen/arch/arm/domain.c                 |  17 +++--
 xen/arch/arm/include/asm/perfc_defn.h |   1 +
 xen/arch/arm/include/asm/psci.h       |   2 +
 xen/arch/arm/include/asm/vpsci.h      |   2 +-
 xen/arch/arm/vpsci.c                  | 101 ++++++++++++++++++++++----
 xen/common/domain.c                   |  22 ++++--
 xen/include/xen/sched.h               |   6 ++
 7 files changed, 122 insertions(+), 29 deletions(-)

diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index 310c578909..9e9649c4e2 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -90,6 +90,16 @@ static void ctxt_switch_from(struct vcpu *p)
     if ( is_idle_vcpu(p) )
         return;
 
+    /* Arch timer */
+    p->arch.cntkctl = READ_SYSREG(CNTKCTL_EL1);
+    virt_timer_save(p);
+
+    /* VGIC */
+    gic_save_state(p);
+
+    if ( test_bit(_VPF_suspended, &p->pause_flags) )
+        return;
+
     p2m_save_state(p);
 
     /* CP 15 */
@@ -106,10 +116,6 @@ static void ctxt_switch_from(struct vcpu *p)
     p->arch.tpidrro_el0 = READ_SYSREG(TPIDRRO_EL0);
     p->arch.tpidr_el1 = READ_SYSREG(TPIDR_EL1);
 
-    /* Arch timer */
-    p->arch.cntkctl = READ_SYSREG(CNTKCTL_EL1);
-    virt_timer_save(p);
-
     if ( is_32bit_domain(p->domain) && cpu_has_thumbee )
     {
         p->arch.teecr = READ_SYSREG(TEECR32_EL1);
@@ -158,9 +164,6 @@ static void ctxt_switch_from(struct vcpu *p)
 
     /* XXX MPU */
 
-    /* VGIC */
-    gic_save_state(p);
-
     isb();
 }
 
diff --git a/xen/arch/arm/include/asm/perfc_defn.h b/xen/arch/arm/include/asm/perfc_defn.h
index effd25b69e..8dfcac7e3b 100644
--- a/xen/arch/arm/include/asm/perfc_defn.h
+++ b/xen/arch/arm/include/asm/perfc_defn.h
@@ -33,6 +33,7 @@ PERFCOUNTER(vpsci_system_reset,        "vpsci: system_reset")
 PERFCOUNTER(vpsci_cpu_suspend,         "vpsci: cpu_suspend")
 PERFCOUNTER(vpsci_cpu_affinity_info,   "vpsci: cpu_affinity_info")
 PERFCOUNTER(vpsci_features,            "vpsci: features")
+PERFCOUNTER(vpsci_system_suspend,      "vpsci: system_suspend")
 
 PERFCOUNTER(vcpu_kick,                 "vcpu: notify other vcpu")
 
diff --git a/xen/arch/arm/include/asm/psci.h b/xen/arch/arm/include/asm/psci.h
index 4780972621..48a93e6b79 100644
--- a/xen/arch/arm/include/asm/psci.h
+++ b/xen/arch/arm/include/asm/psci.h
@@ -47,10 +47,12 @@ void call_psci_system_reset(void);
 #define PSCI_0_2_FN32_SYSTEM_OFF          PSCI_0_2_FN32(8)
 #define PSCI_0_2_FN32_SYSTEM_RESET        PSCI_0_2_FN32(9)
 #define PSCI_1_0_FN32_PSCI_FEATURES       PSCI_0_2_FN32(10)
+#define PSCI_1_0_FN32_SYSTEM_SUSPEND      PSCI_0_2_FN32(14)
 
 #define PSCI_0_2_FN64_CPU_SUSPEND         PSCI_0_2_FN64(1)
 #define PSCI_0_2_FN64_CPU_ON              PSCI_0_2_FN64(3)
 #define PSCI_0_2_FN64_AFFINITY_INFO       PSCI_0_2_FN64(4)
+#define PSCI_1_0_FN64_SYSTEM_SUSPEND      PSCI_0_2_FN64(14)
 
 /* PSCI v0.2 affinity level state returned by AFFINITY_INFO */
 #define PSCI_0_2_AFFINITY_LEVEL_ON      0
diff --git a/xen/arch/arm/include/asm/vpsci.h b/xen/arch/arm/include/asm/vpsci.h
index 0cca5e6830..69d40f9d7f 100644
--- a/xen/arch/arm/include/asm/vpsci.h
+++ b/xen/arch/arm/include/asm/vpsci.h
@@ -23,7 +23,7 @@
 #include <asm/psci.h>
 
 /* Number of function implemented by virtual PSCI (only 0.2 or later) */
-#define VPSCI_NR_FUNCS  12
+#define VPSCI_NR_FUNCS  14
 
 /* Functions handle PSCI calls from the guests */
 bool do_vpsci_0_1_call(struct cpu_user_regs *regs, uint32_t fid);
diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
index 7ba9ccd94b..67d369a8a2 100644
--- a/xen/arch/arm/vpsci.c
+++ b/xen/arch/arm/vpsci.c
@@ -10,28 +10,18 @@
 
 #include <public/sched.h>
 
-static int do_common_cpu_on(register_t target_cpu, register_t entry_point,
-                            register_t context_id)
+static int do_setup_vcpu_ctx(struct vcpu *v, register_t entry_point,
+                      register_t context_id)
 {
-    struct vcpu *v;
     struct domain *d = current->domain;
     struct vcpu_guest_context *ctxt;
     int rc;
     bool is_thumb = entry_point & 1;
-    register_t vcpuid;
-
-    vcpuid = vaffinity_to_vcpuid(target_cpu);
-
-    if ( (v = domain_vcpu(d, vcpuid)) == NULL )
-        return PSCI_INVALID_PARAMETERS;
 
     /* THUMB set is not allowed with 64-bit domain */
     if ( is_64bit_domain(d) && is_thumb )
         return PSCI_INVALID_ADDRESS;
 
-    if ( !test_bit(_VPF_down, &v->pause_flags) )
-        return PSCI_ALREADY_ON;
-
     if ( (ctxt = alloc_vcpu_guest_context()) == NULL )
         return PSCI_DENIED;
 
@@ -78,11 +68,32 @@ static int do_common_cpu_on(register_t target_cpu, register_t entry_point,
     if ( rc < 0 )
         return PSCI_DENIED;
 
-    vcpu_wake(v);
-
     return PSCI_SUCCESS;
 }
 
+static int do_common_cpu_on(register_t target_cpu, register_t entry_point,
+                            register_t context_id)
+{
+    int rc;
+    struct vcpu *v;
+    struct domain *d = current->domain;
+    register_t vcpuid;
+
+    vcpuid = vaffinity_to_vcpuid(target_cpu);
+
+    if ( (v = domain_vcpu(d, vcpuid)) == NULL )
+        return PSCI_INVALID_PARAMETERS;
+
+    if ( !test_bit(_VPF_down, &v->pause_flags) )
+        return PSCI_ALREADY_ON;
+
+    rc = do_setup_vcpu_ctx(v, entry_point, context_id);
+    if ( rc == PSCI_SUCCESS )
+        vcpu_wake(v);
+
+    return rc;
+}
+
 static int32_t do_psci_cpu_on(uint32_t vcpuid, register_t entry_point)
 {
     int32_t ret;
@@ -197,6 +208,48 @@ static void do_psci_0_2_system_reset(void)
     domain_shutdown(d,SHUTDOWN_reboot);
 }
 
+static int32_t do_psci_1_0_system_suspend(register_t epoint, register_t cid)
+{
+    int32_t rc;
+    struct vcpu *v;
+    struct domain *d = current->domain;
+
+    /* 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 )
+    {
+        if ( v != current && is_vcpu_online(v) )
+        {
+            domain_unlock(d);
+            return PSCI_DENIED;
+        }
+    }
+    domain_unlock(d);
+
+    rc = domain_shutdown(d, SHUTDOWN_suspend);
+    if ( rc )
+        return PSCI_DENIED;
+
+    rc = do_setup_vcpu_ctx(current, epoint, cid);
+    if ( rc != PSCI_SUCCESS )
+    {
+        domain_resume_nopause(d);
+        return rc;
+    }
+
+    set_bit(_VPF_suspended, &current->pause_flags);
+
+    dprintk(XENLOG_DEBUG,
+            "Dom %u: SYSTEM_SUSPEND requested, epoint=%#lx, cid=%#lx\n",
+            d->domain_id, epoint, cid);
+
+    return rc;
+}
+
 static int32_t do_psci_1_0_features(uint32_t psci_func_id)
 {
     /* /!\ Ordered by function ID and not name */
@@ -214,6 +267,8 @@ static int32_t do_psci_1_0_features(uint32_t psci_func_id)
     case PSCI_0_2_FN32_SYSTEM_OFF:
     case PSCI_0_2_FN32_SYSTEM_RESET:
     case PSCI_1_0_FN32_PSCI_FEATURES:
+    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
+    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
     case ARM_SMCCC_VERSION_FID:
         return 0;
     default:
@@ -344,6 +399,24 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid)
         return true;
     }
 
+    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
+    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
+    {
+        register_t epoint = PSCI_ARG(regs, 1);
+        register_t cid = PSCI_ARG(regs, 2);
+
+        if ( is_64bit_domain(current->domain) &&
+             fid == PSCI_1_0_FN32_SYSTEM_SUSPEND )
+        {
+            epoint &= GENMASK(31, 0);
+            cid &= GENMASK(31, 0);
+        }
+
+        perfc_incr(vpsci_system_suspend);
+        PSCI_SET_RESULT(regs, do_psci_1_0_system_suspend(epoint, cid));
+        return true;
+    }
+
     default:
         return false;
     }
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 5241a1629e..c3609b0cb0 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -1343,16 +1343,13 @@ int domain_shutdown(struct domain *d, u8 reason)
     return 0;
 }
 
-void domain_resume(struct domain *d)
+#ifndef CONFIG_ARM
+static
+#endif
+void domain_resume_nopause(struct domain *d)
 {
     struct vcpu *v;
 
-    /*
-     * Some code paths assume that shutdown status does not get reset under
-     * their feet (e.g., some assertions make this assumption).
-     */
-    domain_pause(d);
-
     spin_lock(&d->shutdown_lock);
 
     d->is_shutting_down = d->is_shut_down = 0;
@@ -1360,13 +1357,24 @@ void domain_resume(struct domain *d)
 
     for_each_vcpu ( d, v )
     {
+        clear_bit(_VPF_suspended, &v->pause_flags);
+
         if ( v->paused_for_shutdown )
             vcpu_unpause(v);
         v->paused_for_shutdown = 0;
     }
 
     spin_unlock(&d->shutdown_lock);
+}
 
+void domain_resume(struct domain *d)
+{
+    /*
+     * Some code paths assume that shutdown status does not get reset under
+     * their feet (e.g., some assertions make this assumption).
+     */
+    domain_pause(d);
+    domain_resume_nopause(d);
     domain_unpause(d);
 }
 
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index fd5c9f9333..4050b5dc6a 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -814,6 +814,9 @@ void domain_destroy(struct domain *d);
 int domain_kill(struct domain *d);
 int domain_shutdown(struct domain *d, u8 reason);
 void domain_resume(struct domain *d);
+#ifdef CONFIG_ARM
+void domain_resume_nopause(struct domain *d);
+#endif
 
 int domain_soft_reset(struct domain *d, bool resuming);
 
@@ -1010,6 +1013,9 @@ static inline struct domain *next_domain_in_cpupool(
 /* VCPU is parked. */
 #define _VPF_parked          8
 #define VPF_parked           (1UL<<_VPF_parked)
+/* VCPU is suspended. */
+#define _VPF_suspended 9
+#define VPF_suspended (1UL<<_VPF_suspended)
 
 static inline bool vcpu_runnable(const struct vcpu *v)
 {
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 07 19:40:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 19:40:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073700.1436577 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk6TB-0003si-2F; Thu, 07 Aug 2025 19:40:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073700.1436577; Thu, 07 Aug 2025 19:40: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 1uk6TA-0003ra-Tc; Thu, 07 Aug 2025 19:40:08 +0000
Received: by outflank-mailman (input) for mailman id 1073700;
 Thu, 07 Aug 2025 19:40:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gbW2=2T=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1uk6T8-0003Yg-UG
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 19:40:06 +0000
Received: from mail-lf1-x135.google.com (mail-lf1-x135.google.com
 [2a00:1450:4864:20::135])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 517a9fca-73c6-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 21:40:05 +0200 (CEST)
Received: by mail-lf1-x135.google.com with SMTP id
 2adb3069b0e04-55b8b8e00caso1646312e87.3
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 12:40:05 -0700 (PDT)
Received: from yp-VivoBook-ASUSLaptop-M1503QA-M1503QA.. ([95.67.15.120])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-55b8898bfc6sm2759188e87.10.2025.08.07.12.40.04
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Aug 2025 12:40:04 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 517a9fca-73c6-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754595605; x=1755200405; 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=iKQtb2yDXXgVIM20M/9ZKDqMqVSaENj70H3OApwPWOA=;
        b=Fjkza2zmh2l5E+cZhNCKsg5Yvi+tUOMiAn1SFO94o1AY4hfqKZqTdGg5z+Y6JX4gwX
         FTtSChmRaT5sW/cPEexRXwB46eX2w+AFr3lJHxm3+QSs8esUubwI7JM6vKf06PWg03kh
         UI1tChyJl8hWeI7I7EkymKxdY1SfFdDIDOAGEJi6dSgd5RVRlH8pOONsmrbm/ws50gzX
         mLPUAXJpOVgW3KOw++9EuQLqcTGCnvo1qdBBz9MfucFbPNl8gTq+3gX0YpyAUyy7T68z
         0aHJyQoDJOfXKiJ0Fcdr/nRa8HBK1SVmSL4SVVsZIk98fRemPORHZUPLXNSphpMTrZdA
         ME0w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754595605; x=1755200405;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=iKQtb2yDXXgVIM20M/9ZKDqMqVSaENj70H3OApwPWOA=;
        b=dExmHx++cdxipzLO5hNWp4ka8M4pgm2TKeNIX7wPV5BRqIMb3OG0nbm6H5PS2um53D
         xZDk6DMhY74gMAodYNfh/U/JeI1lntwKYYyqJ4TfsRtVBkCS1qAfGt1Ydtd7cC27wtxA
         s2JZE6FXYO9b7l8lf4q4akYIsiBOic7924dt7KXw9NNOvDmP9618CU7KzlEb2IiLYdoA
         CiQE9/22wr1aOYwDVI5yyin8PJ5Vl7vviMPqp1GA/85Ios4qKDaDX/+E7btNAg/VfZHG
         8WjSL2oPAshQ0LwnXWnSys1RIqPTnXEL7992QMribduhqzRZz5L/uXaTtfH6c0BIjmF4
         Huyg==
X-Gm-Message-State: AOJu0Yytu24YdrJ0zB7k1daMxUwQwpexq7ENGlj0Dr/qHdwWdUk7rh6T
	adRRfsPVwyGCHcvVxKt3IPhQcXyxmjddbDptV7e+ON1bLYATdm3zV08XKHOU6t2T10Y=
X-Gm-Gg: ASbGncvXHJNAmEo0KUpNRtFYVN7DvNE5AphNDfBJ/ApQxpkB+RQ4Y7ECuPzv0+Pg094
	iidkDObwuPatjVI7uOBMCYEfC+riU7vuaXtI704FcSmML4UYwj3ENOSV9033UngItFH35njPOs8
	i+c1CBHQT7Cd/UfA/4rdz9+zF2vmjffI3XVQ9qUlpjbtKlZfx5V1nANfcYNajlC5bNgj5NB8whw
	XMhMi+rue4n65HmnsQlbFzAPgoEPkMmGP10Ldh8VLIXp3JcHPEnAuwx/W+Gotf5gN9uioFmqnS1
	GaLfoT8rRL6VCCyNK7IECreydMEOV0AsmSlC/K2B2gIGf7fJPPSlYtLlQ4YS6FY8L+WZ+eFyoKo
	ZqrNqXV0F74woLLO/y+oTUcpjgmZv8lYgozEAGRZLB4k/XR7o5lJhvG5exGmahw==
X-Google-Smtp-Source: AGHT+IHdckCE7TiG/8zuVJAAQKkrn/Dz72NRaBEBYSXYLEPrGbCVJrfIM5mAHyOtZQ2IC9q9ld3OAQ==
X-Received: by 2002:a05:6512:130e:b0:55b:9424:dda5 with SMTP id 2adb3069b0e04-55cc011952emr5500e87.44.1754595604816;
        Thu, 07 Aug 2025 12:40:04 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH v8 2/4] tools/xl: Allow compilation of 'xl resume' command on Arm
Date: Thu,  7 Aug 2025 22:39:26 +0300
Message-ID: <d9320d7ef2deb330f99a0b20d9f9cf3c8d7d4f70.1754595198.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.1754595198.git.mykola_kvach@epam.com>
References: <cover.1754595198.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

The "xl resume" command was previously excluded from Arm builds because
system suspend/resume (e.g., SYSTEM_SUSPEND via vPSCI) was not
implemented. On x86, this command is used for resume.

This change enables compilation of `xl resume` on Arm regardless of the
underlying implementation status, making the tool available for testing
and future feature support. The relevant libxl infrastructure and handler
functions are already present and usable.

Note: This does not imply full system suspend/resume support on Arm.
      The `xl suspend` command still does not work on Arm platforms.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
Acked-by: Anthony PERARD <anthony.perard@vates.tech>
---
Changes in v7:
- dropped renaming of LIBXL_HAVE_NO_SUSPEND_RESUME macro

Changes in v6:
- Renamed macro from LIBXL_HAVE_NO_SUSPEND_RESUME to LIBXL_HAVE_NO_SUSPEND
  to better reflect the scope of this change
- Applied cosmetic changes based on review feedback
---
 tools/include/libxl.h     |  1 -
 tools/xl/xl.h             |  4 ++--
 tools/xl/xl_cmdtable.c    |  4 ++--
 tools/xl/xl_migrate.c     |  2 +-
 tools/xl/xl_saverestore.c |  2 +-
 tools/xl/xl_vmcontrol.c   | 12 ++++++------
 6 files changed, 12 insertions(+), 13 deletions(-)

diff --git a/tools/include/libxl.h b/tools/include/libxl.h
index 185f74d8a8..b204fc5e2e 100644
--- a/tools/include/libxl.h
+++ b/tools/include/libxl.h
@@ -1140,7 +1140,6 @@ typedef struct libxl__ctx libxl_ctx;
  * restoring or migrating a domain. In this case the related functions
  * should be expected to return failure. That is:
  *  - libxl_domain_suspend
- *  - libxl_domain_resume
  *  - libxl_domain_remus_start
  */
 #if defined(__arm__) || defined(__aarch64__)
diff --git a/tools/xl/xl.h b/tools/xl/xl.h
index 45745f0dbb..9233b73f85 100644
--- a/tools/xl/xl.h
+++ b/tools/xl/xl.h
@@ -65,7 +65,7 @@ static const char migrate_permission_to_go[]=
     "domain is yours, you are cleared to unpause";
 static const char migrate_report[]=
     "my copy unpause results are as follows";
-#endif
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
 
   /* followed by one byte:
    *     0: everything went well, domain is running
@@ -130,8 +130,8 @@ int main_migrate_receive(int argc, char **argv);
 int main_save(int argc, char **argv);
 int main_migrate(int argc, char **argv);
 int main_suspend(int argc, char **argv);
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
 int main_resume(int argc, char **argv);
-#endif
 int main_dump_core(int argc, char **argv);
 int main_pause(int argc, char **argv);
 int main_unpause(int argc, char **argv);
diff --git a/tools/xl/xl_cmdtable.c b/tools/xl/xl_cmdtable.c
index 06a0039718..bcb2d233cc 100644
--- a/tools/xl/xl_cmdtable.c
+++ b/tools/xl/xl_cmdtable.c
@@ -198,12 +198,12 @@ const struct cmd_spec cmd_table[] = {
       "Suspend a domain to RAM",
       "<Domain>",
     },
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
     { "resume",
       &main_resume, 0, 1,
       "Resume a domain from RAM",
       "<Domain>",
     },
-#endif
     { "dump-core",
       &main_dump_core, 0, 1,
       "Core dump a domain",
@@ -548,7 +548,7 @@ const struct cmd_spec cmd_table[] = {
       "                        checkpoint must be disabled.\n"
       "-p                      Use COLO userspace proxy."
     },
-#endif
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
     { "devd",
       &main_devd, 0, 1,
       "Daemon that listens for devices and launches backends",
diff --git a/tools/xl/xl_migrate.c b/tools/xl/xl_migrate.c
index b8594f44a5..4b4a379aa1 100644
--- a/tools/xl/xl_migrate.c
+++ b/tools/xl/xl_migrate.c
@@ -767,7 +767,7 @@ int main_remus(int argc, char **argv)
     close(send_fd);
     return EXIT_FAILURE;
 }
-#endif
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
 
 
 /*
diff --git a/tools/xl/xl_saverestore.c b/tools/xl/xl_saverestore.c
index 953d791d1a..747094ec7b 100644
--- a/tools/xl/xl_saverestore.c
+++ b/tools/xl/xl_saverestore.c
@@ -270,7 +270,7 @@ int main_save(int argc, char **argv)
     return EXIT_SUCCESS;
 }
 
-#endif /* LIBXL_HAVE_NO_SUSPEND_RESUME */
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
 
 
 
diff --git a/tools/xl/xl_vmcontrol.c b/tools/xl/xl_vmcontrol.c
index c813732838..93766f631b 100644
--- a/tools/xl/xl_vmcontrol.c
+++ b/tools/xl/xl_vmcontrol.c
@@ -38,11 +38,6 @@ static void suspend_domain(uint32_t domid)
     libxl_domain_suspend_only(ctx, domid, NULL);
 }
 
-static void resume_domain(uint32_t domid)
-{
-    libxl_domain_resume(ctx, domid, 1, NULL);
-}
-
 int main_suspend(int argc, char **argv)
 {
     int opt;
@@ -55,6 +50,12 @@ int main_suspend(int argc, char **argv)
 
     return EXIT_SUCCESS;
 }
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
+
+static void resume_domain(uint32_t domid)
+{
+    libxl_domain_resume(ctx, domid, 1, NULL);
+}
 
 int main_resume(int argc, char **argv)
 {
@@ -68,7 +69,6 @@ int main_resume(int argc, char **argv)
 
     return EXIT_SUCCESS;
 }
-#endif
 
 static void pause_domain(uint32_t domid)
 {
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 07 19:40:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 19:40:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073701.1436593 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk6TC-0004HV-8N; Thu, 07 Aug 2025 19:40:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073701.1436593; Thu, 07 Aug 2025 19:40:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk6TC-0004Gk-5N; Thu, 07 Aug 2025 19:40:10 +0000
Received: by outflank-mailman (input) for mailman id 1073701;
 Thu, 07 Aug 2025 19:40:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gbW2=2T=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1uk6TA-0002bD-Of
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 19:40:08 +0000
Received: from mail-lf1-x136.google.com (mail-lf1-x136.google.com
 [2a00:1450:4864:20::136])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 52588521-73c6-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 21:40:07 +0200 (CEST)
Received: by mail-lf1-x136.google.com with SMTP id
 2adb3069b0e04-55cbf9a78dbso107223e87.2
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 12:40:07 -0700 (PDT)
Received: from yp-VivoBook-ASUSLaptop-M1503QA-M1503QA.. ([95.67.15.120])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-55b8898bfc6sm2759188e87.10.2025.08.07.12.40.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Aug 2025 12:40: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>
X-Inumbo-ID: 52588521-73c6-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754595606; x=1755200406; 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=gDyBEr2C8bHK7ao0mUQj4cm53R0gNtsq0NOW3g9oj/Q=;
        b=WCQFw1rMT1oINudprca/SDATDhr02M+VB9xCnFnlKxa62b34pfjk+GkJrc6sojxpgr
         DkUIPhAZEU5PzRvHFhpc1Zb1NmznHCBdfdGsIukp8FsgTn6PMyHESrxPL74pIjkblaRq
         CRCs3I5uc8AhRS5LYGY/LulLa7Fyyn5XeKrAMX59XiTNS989YwV7lzN/rWyfF56traGd
         Y/xISX7BfyGIcZhfm1j8gz+oJyKiF1XnBGFCQKLlXLvEFmyp3rAjUE1AY5EU4sXrPQhl
         9yfIgx/GFeI8lrLpTUX4YpziuIfaB709sGER4s6mwZ/74CLPSfayNBxK+Oic1IozgOIX
         LDnA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754595606; x=1755200406;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=gDyBEr2C8bHK7ao0mUQj4cm53R0gNtsq0NOW3g9oj/Q=;
        b=jeOXq/0qaBGrZeo6xWKlH929GuBqis08vB1KA0dKeP/OS/G+v/umPzT/XJykzyDNV4
         M2T+XFC3YlyJoyhBNLO+ep8A4YhHZ6jtGF4WK+Xqn913dhjIZFU7vGZlQ7X7rSWNv1FF
         FR1Yyv1fztgiXRNYSEn0250u8M0VZHV4bHuQE+JsAfGwNtq8NdD+6IHQTBzQ2QrpPc6A
         155C2sjR2PX+qzNiPYfXg78TJBS3kq0tu82hgFhBhbkis1i4rQmnNBHAVYL9CWETQNMY
         9Wb1KaTQv7HNJHT/a4tHlwj7THiFn/eevm1t+Kz5VnTAjSwoQ2X60Ym18t9Si+TgVpMt
         Cm4Q==
X-Gm-Message-State: AOJu0YxUQXbHl842vN1K1BAwLKWS3RJ2hRuuT0awhPnMwDA3jdzHG7K3
	zJxRymAuXfclMehxFhQkbcNW3j0AktHMALFSwdMcLs0T2vmzeaUMjiHWDPuM5pvxpEY=
X-Gm-Gg: ASbGncs4Fz9okZrNEXDLmdklgjbjC5XWvNJhM57tV038uPLJR3YFval0pZqW+ZWGKAl
	sBu0DaWD3//M0gALDv/uy5880h9n4Hr+yWNK9a/qU/MQEqYg9GNdeOJp87P39mDswJ/NZvtrCuG
	yFPvilATmPfYcw8lPjLD5jfV/7OT8+W9G78tobYj/ApvUeZEPmU3UgOMoj2pEvhE/g4SNqn1Cgs
	5ODOjwz+14zn53BjhBcVDhyULUeR1gNjGON+HEFfAGWCfUbHAxD8QEjpATbKdXyu60wvoeB8QJt
	Z3XrcjzbFZu8qEp3rmd2xkAg4vGD/JqyGPQzga1kz4UYfw9gLA7CmAothI1E7Xxcj4oL9impAdI
	0+1Izy6ZS7QaWqieKowPa8p4MUr/2v8rZb/9xvl7F0vhKuQMbB/YTYPYO68uUpg==
X-Google-Smtp-Source: AGHT+IHd5mku6Hr7ZB+akI86NbSReKcfifdCUy67j8XwAyW6QYyyYFldfw0yaBtqvWftHZQItFt5Mw==
X-Received: by 2002:a05:6512:3050:b0:55b:83b3:6764 with SMTP id 2adb3069b0e04-55cc015eb1bmr1493e87.51.1754595606063;
        Thu, 07 Aug 2025 12:40:06 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v8 3/4] SUPPORT.md: Document PSCI SYSTEM_SUSPEND support for guests
Date: Thu,  7 Aug 2025 22:39:27 +0300
Message-ID: <60902266c3817ed221a45f6acf265438bc7ff322.1754595198.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.1754595198.git.mykola_kvach@epam.com>
References: <cover.1754595198.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

Add a new entry under the "Virtual Hardware, QEMU" section documenting
support for the optional PSCI SYSTEM_SUSPEND function exposed to guests.

This function is available via the virtual PSCI (vPSCI) interface and
allows guest domains (domUs) to initiate system suspend operations.

The feature is currently marked as Experimental.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in v6:
- Dropped the generic guest PSCI support entry (merged in a separate patch)
- This patch now documents only the SYSTEM_SUSPEND optional function
- Reworded commit message to match the final form after rebase

Changes in v5:
- Dropped ARM/PSCI entry: this refers to internal use of PSCI SMC calls,
  which is not relevant for SUPPORT.md
- Added a dedicated entry for PSCI SYSTEM_SUSPEND instead of generic guest
  PSCI info; guest PSCI support was documented in a separate patch
---
 SUPPORT.md | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/SUPPORT.md b/SUPPORT.md
index 6a82a92189..b5ab049b52 100644
--- a/SUPPORT.md
+++ b/SUPPORT.md
@@ -962,8 +962,9 @@ Emulated PSCI interface exposed to guests. We support all mandatory
 functions of PSCI 1.1. See below for the list of optional PSCI call
 implemented and their status.
 
-   Status, Mandatory: Supported
-   Status, MIGRATE_INFO_TYPE: Supported
+    Status, Mandatory: Supported
+    Status, MIGRATE_INFO_TYPE: Supported
+    Status, SYSTEM_SUSPEND: Experimental
 
 ## Virtual Hardware, QEMU
 
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 07 19:40:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 19:40:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073702.1436599 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk6TC-0004Kj-Js; Thu, 07 Aug 2025 19:40:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073702.1436599; Thu, 07 Aug 2025 19:40:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk6TC-0004K7-CV; Thu, 07 Aug 2025 19:40:10 +0000
Received: by outflank-mailman (input) for mailman id 1073702;
 Thu, 07 Aug 2025 19:40:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gbW2=2T=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1uk6TB-0002bD-7u
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 19:40:09 +0000
Received: from mail-lf1-x133.google.com (mail-lf1-x133.google.com
 [2a00:1450:4864:20::133])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 52b6b026-73c6-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 21:40:07 +0200 (CEST)
Received: by mail-lf1-x133.google.com with SMTP id
 2adb3069b0e04-55b85413019so1642334e87.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 12:40:07 -0700 (PDT)
Received: from yp-VivoBook-ASUSLaptop-M1503QA-M1503QA.. ([95.67.15.120])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-55b8898bfc6sm2759188e87.10.2025.08.07.12.40.06
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Aug 2025 12:40: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>
X-Inumbo-ID: 52b6b026-73c6-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754595607; x=1755200407; 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=rSXErmgf4mUOU3w7XCCgpOwuZwNZDieNzbmZWIHlqM8=;
        b=WCws9Aw1GRrs0fu7/k0RKxGywLWj/m7DWIFy0j2aj8+zfGG7Aa9kuXuOhb94UaqFXU
         WXzZbejTf6YX+KTz5KAKYNE752xAqBUiJ60EjYTErY6Capqd9Rx0/g+D9XGKhWfgR+X1
         AdvhnWyaJftPyw6JbftQXU4nMcklWBd4xkWMjoYCVZUgq2jQsF25AL7vOBzDIXqq+D+C
         Ew0j/m5/mXEig0bcQXKMLCeMLrtQxFGYyzGdOXaKyW+G66RbCL7QAhsxe+Wn14zbB/nc
         +U1lauJ4WOGgw4WBXR5y7wHFOJw+D1yu9ZJoZ4RF3bGDc30C8KLAPAZsd9aB5C/QsXF0
         nk7g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754595607; x=1755200407;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=rSXErmgf4mUOU3w7XCCgpOwuZwNZDieNzbmZWIHlqM8=;
        b=UqJsiYvew5OJKEprt2YBnoapQ+idVpS56ecsfIQFf9ChSJ+8hnjHIvyLif0WTTfJYM
         uenAdghaWr1IB3JuZmPIvFsyey1j2znOXYuSkM0A3SCU45Ls8oZMgjbx00Zt7Up5ioY1
         E91vTYi34IEKo2B2Csmr30QdD1knIVLBAwmsXSya+S9w6kTIAaYB3SuNxviVbm5mzo2K
         rFW+GjcpDzdIspRzGixFjD+dGgzilAfeX5tgYyWW3iIyTBuL0D5YMJeyQbIl234pm9I3
         YbNCS/AZHtnu8xj4Fg/STbvWMItwTClKXwPKnaRLQXSv7KBnwcTKvkC1KyEpXXTmIxB/
         Hnzw==
X-Gm-Message-State: AOJu0YxN1tGMQoQtkNRmQdmmx6HN23pZAzb0NJrgyNktT0mWRgQl2yZ9
	pmZ6Xa+ATrIR1SaLOHI7xw4a7ITx5/ozoFnQ6pTNSZ+Rah+zs5RqILe8li9mNVbDXZA=
X-Gm-Gg: ASbGncvnSpQHpfJLQUqJWnPD+7YXRDMWffkvlgVvw0YRK9/kdZoFDM0WSON0kbZ1U8w
	thuP0kLVTrbxUWKE7LF7a1CowlId12yy45XeTxaozn27EZOBPPk2sQXOaDEEB9GgvE9ukB3eODF
	fRAWNlhm6xj7xkTPMNHQStmriDOCqwaa9zMi64iAC7Bh5ycTMiBwTfsV0SfH2YZQL2xH8g8BMgM
	WPKWT7j06zD/J2WS5e7b5F1kCuE/CRGeALGAIkIpZbG/HvzDu297toTyOyKIHMH8L2/sI08GpoY
	yIPWnfsmDkQca/YHI2FO5OgH+6uwb8mktaOyOGu5A73kSUHgeRQvo53AHz3HDD98MUwOs8hQy5U
	PUs9uhpFPA5tEuVeT+NjkniFDlfzuY6sl8VdCNp+FRINsNM89g5P1B9XrqTL4LHfc+rMKtb0b
X-Google-Smtp-Source: AGHT+IGDE2E2qVl2jQrOnsm1SnR2TTApnzMHmXoI/kJvn8kt3Qy7rwjRRTG+seAClqEkYdAQlbyXnQ==
X-Received: by 2002:a05:6512:3045:b0:55c:adae:37ce with SMTP id 2adb3069b0e04-55cc01251b8mr5296e87.47.1754595606911;
        Thu, 07 Aug 2025 12:40:06 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Community Manager <community.manager@xenproject.org>
Subject: [PATCH v8 4/4] CHANGELOG: Document guest suspend/resume to RAM support on Arm
Date: Thu,  7 Aug 2025 22:39:28 +0300
Message-ID: <f641421c7fd89ecad0800c197297f3dae07bcb55.1754595198.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.1754595198.git.mykola_kvach@epam.com>
References: <cover.1754595198.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

Mention the newly added support for guest suspend and resume to/from
RAM via vPSCI on Arm platforms.

This support is limited to non-hardware domain guests.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Chnages in v6:
- removed reduntand explanation that thi support added for
  both arm32 and arm64.

Changes in v5:
- adjustments to the commit title and message
- expanded the changelog entry to include more context about
  suspend/resume support introduced in this patch series
---
 CHANGELOG.md | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5f31ca08fe..7e42ca9b59 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -29,6 +29,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
 
  - On Arm:
     - Ability to enable stack protector
+    - Support for guest suspend and resume to/from RAM via vPSCI.
+      Applies only to non-hardware domain guests.
 
 ### Removed
  - On x86:
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 07 19:52:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 19:52:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073745.1436613 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk6ei-0000S8-MY; Thu, 07 Aug 2025 19:52:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073745.1436613; Thu, 07 Aug 2025 19:52: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 1uk6ei-0000S1-JZ; Thu, 07 Aug 2025 19:52:04 +0000
Received: by outflank-mailman (input) for mailman id 1073745;
 Thu, 07 Aug 2025 19:52:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ybbA=2T=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1uk6UH-0002bD-6O
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 19:41:17 +0000
Received: from mail-10628.protonmail.ch (mail-10628.protonmail.ch
 [79.135.106.28]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7afae8a4-73c6-11f0-b898-0df219b8e170;
 Thu, 07 Aug 2025 21:41: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>
X-Inumbo-ID: 7afae8a4-73c6-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1754595674; x=1754854874;
	bh=bweBhttY+RKorq/sriT2aTEg4aDPhmF6aPdjup9SFIo=;
	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=aqGKJW9q2lEwnTXdNN6UySgCKEahUmdQz2ekJhy9HIBQhgAZ8WYO1b8oTCwF9vUhG
	 sxKSvk/4n3DUFC0nZuhQPkyIf1egb2ko6OhnuBnA0zxqX6R+sPAKilUg84c6Pw3yfa
	 sJoE3QKK7yWr4GU1tg2rrjl08eMa7/z4+pGP/DgpMTn9urxOcps1RurVyak2WTapvo
	 e6ANEeeN48gAcWMLoW7D/KrdfMuBRN9mbXnW+xpPCgHdFrxE7/LJpfL6OwKJgmPanN
	 DMQazYF9LPw+YM35LJsKxJ2Wh1/3hPG6t0Ce6DP3IvIOWQKhaHCMmAXnswhXAVEdVO
	 wbvaMW4Rj/G5g==
Date: Thu, 07 Aug 2025 19:41:09 +0000
To: Jan Beulich <jbeulich@suse.com>
From: dmkhn@proton.me
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 v4 4/8] xen/8250-uart: update definitions
Message-ID: <aJUBUSm9oBPSHC7l@kraken>
In-Reply-To: <b207d809-bd2a-43fb-9592-58e8c37de31a@suse.com>
References: <20250731192130.3948419-1-dmukhin@ford.com> <20250731192130.3948419-5-dmukhin@ford.com> <b207d809-bd2a-43fb-9592-58e8c37de31a@suse.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 0360f84061203a04567f34cd791ddeb5d3ec63e0
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Mon, Aug 04, 2025 at 12:23:34PM +0200, Jan Beulich wrote:
> On 31.07.2025 21:22, dmkhn@proton.me wrote:
> > From: Denis Mukhin <dmukhin@ford.com>
> >
> > Added missing definitions needed for NS16550 UART emulator.
> >
> > Newly introduced MSR definitions re-used in the existing ns16550 driver=
.
> >
> > Also, corrected FCR DMA definition bit#3 (0x08) as per:
> >   https://www.ti.com/lit/ds/symlink/tl16c550c.pdf
> > See "7.7.2 FIFO Control Register (FCR)".
> >
> > Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> > ---
> > Changes since v3:
> > - feedback addressed
> > - made use of new UART_MCR_XXX bits in ns16550 driver
> > - Link to v3: https://lore.kernel.org/xen-devel/20250103-vuart-ns8250-v=
3-v1-19-c5d36b31d66c@ford.com/
> > ---
> >  xen/drivers/char/ns16550.c  |  6 ++---
> >  xen/include/xen/8250-uart.h | 50 ++++++++++++++++++++++++++++++-------
> >  2 files changed, 44 insertions(+), 12 deletions(-)
> >
> > diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c
> > index df7fff7f81df..a899711e2a8b 100644
> > --- a/xen/drivers/char/ns16550.c
> > +++ b/xen/drivers/char/ns16550.c
> > @@ -739,9 +739,9 @@ static int __init check_existence(struct ns16550 *u=
art)
> >       * Check to see if a UART is really there.
> >       * Use loopback test mode.
> >       */
> > -    ns_write_reg(uart, UART_MCR, UART_MCR_LOOP | 0x0A);
> > -    status =3D ns_read_reg(uart, UART_MSR) & 0xF0;
> > -    return (status =3D=3D 0x90);
> > +    ns_write_reg(uart, UART_MCR, UART_MCR_LOOP | UART_MCR_RTS | UART_M=
CR_OUT2);
> > +    status =3D ns_read_reg(uart, UART_MSR) & UART_MSR_STATUS;
> > +    return (status =3D=3D (UART_MSR_CTS | UART_MSR_DCD));
> >  }
> >
> >  #ifdef CONFIG_HAS_PCI
> > diff --git a/xen/include/xen/8250-uart.h b/xen/include/xen/8250-uart.h
> > index d13352940c13..bc11cdc376c9 100644
> > --- a/xen/include/xen/8250-uart.h
> > +++ b/xen/include/xen/8250-uart.h
> > @@ -32,6 +32,7 @@
> >  #define UART_MCR          0x04    /* Modem control        */
> >  #define UART_LSR          0x05    /* line status          */
> >  #define UART_MSR          0x06    /* Modem status         */
> > +#define UART_SCR          0x07    /* Scratch pad          */
> >  #define UART_USR          0x1f    /* Status register (DW) */
> >  #define UART_DLL          0x00    /* divisor latch (ls) (DLAB=3D1) */
> >  #define UART_DLM          0x01    /* divisor latch (ms) (DLAB=3D1) */
> > @@ -42,6 +43,8 @@
> >  #define UART_IER_ETHREI   0x02    /* tx reg. empty        */
> >  #define UART_IER_ELSI     0x04    /* rx line status       */
> >  #define UART_IER_EMSI     0x08    /* MODEM status         */
> > +#define UART_IER_MASK \
> > +    (UART_IER_ERDAI | UART_IER_ETHREI | UART_IER_ELSI | UART_IER_EMSI)
>=20
> At the example of this: It having no users here, how are we to know it'll
> gain some (and hence be useful)? Adding missing base definitions is imo
> fine without immediate users, but for derived ones it's less clear.

There're UART_IIR and UART_IER bits which could be re-used.
Will update ns16550 driver.
Thanks.



From xen-devel-bounces@lists.xenproject.org Thu Aug 07 21:54:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 21:54:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073803.1436622 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk8Ys-0001KL-2Z; Thu, 07 Aug 2025 21:54:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073803.1436622; Thu, 07 Aug 2025 21:54: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 1uk8Yr-0001KE-WF; Thu, 07 Aug 2025 21:54:10 +0000
Received: by outflank-mailman (input) for mailman id 1073803;
 Thu, 07 Aug 2025 21:54:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Qi0u=2T=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1uk8Yp-0001K7-Pc
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 21:54:08 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 09c9b619-73d9-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 23:54:06 +0200 (CEST)
Received: from localhost.localdomain (93-57-249-207.ip167.fastwebnet.it
 [93.57.249.207]) (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPSA id 10EB34EE3C03;
 Thu,  7 Aug 2025 23:54:01 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 09c9b619-73d9-11f0-a324-13f23c93f187
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=93.57.249.207
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1754603644;
	b=1B/UGFpqqkt+gSwtRlw/gEHvAeLoqreonljhtdJVpZBrT3IdkbxqcQxxEQJ78pr+D6ls
	 zMSwHBISqVZgD8H9HF2ZEfPGjS83gUij0AJW1ONuNKbLsnbc0yuXksfCIwktKIL7Ht6/x
	 S0uXMCvXXkdm8+yku1xgRDd8uFBvHgu1aDbD40IlE7lblwKF5Mo+2Ur0/DRqoj3eQOP67
	 sZ+pLqzKd/PgXmtTXtT2rQEvZOaf1hhsU1+BtvZ4FlCE/fwGLtWk2bUNLtCKylCh/hK4u
	 VLSyZuggdvUQWCitRjNjyhmMJVwIqCx6ZW+glj9PxM1JR8gGyreXRABMhWCeRQm7RaA0c
	 /9WY7t3vXCN+BlhjG7AzL3TaDuur1SlDqbOkhiyA8dDPS8D0VPeWvjSMSXuTWQ67jfX/G
	 kkV8ZvReXMLLjv/xSB+QwBP60WpiATwY+wWv+acP3ehTI+JcYkCIF38GHaD7IQbEbczAe
	 uO3knh35zZXJ1LX5zHOwifqARaTkcTKqxn/Er5jfCjiskoK16tnyro6eKFrCYyFx2BXd1
	 lH1FZ5odpadL4DP+6izUpYg9t5OZs18n4NRaneZdJwoC7FhzLDCgQVVEAbYIZGduCJ/7V
	 Ih7+ZnW+kiW3Z68Z6sODGcEiv7cmMOv8AwPnHo5hgbnc1HCGvp1Ji78WTG/6hdg=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1754603644;
	h=DKIM-Signature:From:To:Cc:Subject:Date:Message-ID:X-Mailer:
	 MIME-Version:Content-Transfer-Encoding;
	bh=qFuvZ+swQQPjceeObM5baItpe6tINcMkCFRA54Gvm44=;
	b=tCLxcpL/F0iCws1GmmkirFQ7eU9Hd9YlkpgiPOITKuKc2sL3PeAHDdZojfg+D3GkbmMi
	 BjTdS8+58sZ0IyURQ7OGYaYlFSnXR3N3iGdF+WLc8T+078JM5RYdsRlo1YWiHge1ZKIRQ
	 lHHllr4VfGQeMX5MiFiimAjDBeB15yY3+Bx3Ypl9jxqns6Pd8GRwYT+bk2CSonPeR9uFw
	 xMhy5auQbRkkgBFCofIFe75UWRxNngM9lfCDmW+ZYCvytDbOR2evxtTxusXgFWs9fJ1Wv
	 1MrE0hpXomdhG/pXBqKWasWidTpVCMiYUd4DZ+oIqo88SSJmM2sLFVrO+8qAN3UJWvLWi
	 PnUR9dDtREdeEoXvzcd1fjZJuYUxA0+QSE9kPcSbW8qKXqPibgwbUMFxJrweDOhB2G1gf
	 /sgCHn1nferEK4IhROHmE/4iOmp7DtQvEnZmkGUI1tTIFshCs5JROAU8mPUBH4gLqy0lK
	 xVXUkASw88rIxCP5FLnOxcwKGkKjcScBGcTZEQWsFhT08ZxmgJZWltBLeHqqAeKGgU+bu
	 LGiOqs6tjAyA0T1nlFiR9A1+F6iNUQIMXeRJ0E2tBpsUi5yG0H0gp7KBCm/hudYPMTzcL
	 w0mD6YC1L/iKzQl/V6yIP9uvQ5EN8Voknu2TFaNaUsj0+ZHqEuCr1CVtOcHg4dU=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=93.57.249.207
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1754603644; bh=q43OfBL8YD5tbNqVHj8MYPctFYXKfq24FymRSVpqVGg=;
	h=From:To:Cc:Subject:Date:From;
	b=R1K+4+BDFdLybj1m5LxigOaY9c0+bECIcL+cgXv2Dd8y4gDwk1jaj+yxxtt3eM8E5
	 FRjy8Vz73xH7TpUNrbyFjzCKwMsE1DoMhmPoFGrIIgonZHaPsmcxeQ6vXI2QQ2cdIj
	 z58+TjTANtAp1Gle+0uOcw91ioHwAUKRvyPj8z6P6fsDbSh4aVAunb//bkVcC9hZ+W
	 B4pBHYVJYD9miaPdiAI5Fwh3QgNzQf3rPZnxGj3edsPvqo3+Dan9+Eb4Xk+Sq8IwE7
	 J2QnB0i4MBpEv5+IhzQtExzuZXTzClqFEgT7W20tl4mil6HaLU++dEx1qY8c/LIT78
	 dQD+Zx0230qIg==
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: sstabellini@kernel.org,
	michal.orzel@amd.com,
	xenia.ragiadakou@amd.com,
	ayan.kumar.halder@amd.com,
	consulting@bugseng.com,
	Nicola Vetrini <nicola.vetrini@bugseng.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [XEN PATCH] automation/eclair: restrict clean target to xen
Date: Thu,  7 Aug 2025 23:53:56 +0200
Message-ID: <a1127245a45139c3c3fcd05b07c1c1e6dabb66c0.1747387457.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The clean target also clears files outside the xen directory,
which is not needed for the purposes of running an analysis.

No functional change.

Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 automation/eclair_analysis/prepare.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/automation/eclair_analysis/prepare.sh b/automation/eclair_analysis/prepare.sh
index 4285ff26de54..e941e6edc4f3 100755
--- a/automation/eclair_analysis/prepare.sh
+++ b/automation/eclair_analysis/prepare.sh
@@ -39,12 +39,12 @@ fi
     fi
 
     ./configure
-    make clean
+    make -C xen clean
     find . -type f -name "*.safparse" -print -delete
     "${script_dir}/build.sh" "$1"
     # Generate additional configuration files
     "${script_dir}/ECLAIR/generate_ecl.sh"
-    make clean
+    make -C xen clean
     cd xen
     make -f "${script_dir}/Makefile.prepare" prepare
     # Translate the /* SAF-n-safe */ comments into ECLAIR CBTs
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Aug 07 21:57:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 21:57:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073811.1436633 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk8cA-0001sL-GT; Thu, 07 Aug 2025 21:57:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073811.1436633; Thu, 07 Aug 2025 21:57: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 1uk8cA-0001sE-Dg; Thu, 07 Aug 2025 21:57:34 +0000
Received: by outflank-mailman (input) for mailman id 1073811;
 Thu, 07 Aug 2025 21:57:33 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=P7F5=2T=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1uk8c9-0001s8-7w
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 21:57:33 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20628.outbound.protection.outlook.com
 [2a01:111:f403:2418::628])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 836364b9-73d9-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 23:57:30 +0200 (CEST)
Received: from BN8PR12CA0027.namprd12.prod.outlook.com (2603:10b6:408:60::40)
 by LV9PR12MB9832.namprd12.prod.outlook.com (2603:10b6:408:2f3::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.13; Thu, 7 Aug
 2025 21:57:25 +0000
Received: from BN3PEPF0000B06D.namprd21.prod.outlook.com
 (2603:10b6:408:60:cafe::5) by BN8PR12CA0027.outlook.office365.com
 (2603:10b6:408:60::40) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9009.14 via Frontend Transport; Thu,
 7 Aug 2025 21:57:25 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BN3PEPF0000B06D.mail.protection.outlook.com (10.167.243.72) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9031.0 via Frontend Transport; Thu, 7 Aug 2025 21:57:25 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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; Thu, 7 Aug
 2025 16:57:25 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Thu, 7 Aug
 2025 16:57:25 -0500
Received: from [172.29.241.50] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Thu, 7 Aug 2025 16:57: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>
X-Inumbo-ID: 836364b9-73d9-11f0-a324-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ok5UyrXDt11YRB5y/NaPlRDuYQ5SVBScu886zkeKFuCytZBgoRn4WW9ML8wKvPc36eV/xLZc5Nx9j9bwXTfBH/wjUXTHGdgiq7LqgrDlv+9wdfUxVhPYxW+kOEeppNT+TWpgOBdToTsW4VA1aeuilfx1emg4oRhcKz3/cmhxH8ktH9+0UpzQoGPqiCLnoXiBpD83BO6EXeuibZfcXNV3tXXzJYDNwGn05jqG7YkdJpIDoIbwWu9kGmFS1St/u1alVM5S7ZcuF6n/mLqyHg7aBjdOaRtMj4Mco+rcJfCQYBWtii5zLfHNqK7JJrpUWGfLMUWpkgqlB2aA5HzJGyaykA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=RshG21jZ+iIkiAyrPOkEh1PHxL9Lb1bwV1Ux5hVlX/g=;
 b=iBU2njBorvPZneBoe8jLGVF0+vK9dP4dxvFb+nYzM56RVPCjRT6jyIiK8WjbwiRc8FjFFIKttVzDXqsL4WDKGjOvlo0rQ5TwN+mVSTO/unDo7Iupe/ShNK/OrX4FctJ7NNxa3pQrrCkc9ClPsaX4Sh4b+UIhLB05Ocfw2i+zGwj18xZg6yPDyAxxJwU8JfDqtASUzJswIlp5tMoLZLOrX7DVUZq4uFfHJYSpGChUycmR+MJyu57jODqLGk5dgjgWJmNYxWWtFscXr23OzrawPTNpM8NnYszUmlEoRuSc1i4ittRXVWdf71Tog1RPdtDiPy1Ihw4HI9y7I6WPkFguhA==
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=RshG21jZ+iIkiAyrPOkEh1PHxL9Lb1bwV1Ux5hVlX/g=;
 b=klIgvE8h8JszDVLjseUsV0MHrMfD4VpkiBYYfJyFFxMBg7fPF7NF2mqtogWdv6pIcgXusUeYAmcBOT9nL8kSw1Mq6FdJh8b16dFkgUuOI2N9/Z0KvCsslI1oQd9eJPGsq7pN00WKNm3LvON8OQVMQy7baWbdshVNYCV0RyFTbgs=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <5d8d1880-242b-46c7-a5da-7b1c2437f66d@amd.com>
Date: Thu, 7 Aug 2025 17:57:26 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] xenconsole: Add connected flag
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
	<xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@vates.tech>
References: <20250807015606.4427-1-jason.andryuk@amd.com>
 <25745d45-d506-4277-8ccd-302cd1316707@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <25745d45-d506-4277-8ccd-302cd1316707@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB05.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN3PEPF0000B06D:EE_|LV9PR12MB9832:EE_
X-MS-Office365-Filtering-Correlation-Id: 927f826e-7bcd-4332-56a8-08ddd5fd6543
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?SG5BaXN6eDYzNlIvN2ZXb2tFaFp5NG8ydThqbUVZK0UwMjNoemNzNXQ0cVp6?=
 =?utf-8?B?cUFGM3d1QVhyVnhHYnNnVjBudytZcFErWjdTQldxcGlsR1p5S0huTVVtamdp?=
 =?utf-8?B?TzhrV1huakdCU1dkWDN2aVNpNmJNcWdVQTlKZGNOSXpQOHhzdGdhT0l2OGtx?=
 =?utf-8?B?UGs3bmNTQjQrWEZPOVFhQ09xLzFVS3FuTE05NFp2RjZ5dWlrZG8vdHNMS0oz?=
 =?utf-8?B?b2JMYWk1R043b242SWRSZGNkWHNZQkhVMHAvVzVCUUJLQ2E1VklsSVJQNE1E?=
 =?utf-8?B?NXBGQXoySVc0YUNsQkNxOUorZ1BldFJuVGc0M3hDalN3OWRLdkY5MTdwdVVz?=
 =?utf-8?B?Q1FOWnlsbERkeTBYL3NsWktGMVl5MGh3em9mRnd2SitBSVFrcXVlNW9LZDJk?=
 =?utf-8?B?c3Q1NTl5RC96bTlZZlA3NDdVQkZCQllCWjZsRXNMVjhhVE92QlNQKzBib1g4?=
 =?utf-8?B?V2JIcDdwTGs2b1pTbTVrc3Rnc2ZPeDZjbDJyYU42ejc5V3V5aVhKQ0tmcHlG?=
 =?utf-8?B?WVQxRk96Q1FEZktRTzJZL2JvQU5Od3k0NldhVVNxS1BJYzBDQzJNT3g0bklR?=
 =?utf-8?B?MlM4OFBaUWlaNXMzbVdBcm5kREtrdjdsL1EzNUd2dE9RWWswblgwNDNwVy9O?=
 =?utf-8?B?RkIvSTN5RzY0RS9YTTM3azgrZE41MDZ1cE91NEY1WmdxMGRaelAvdjc0Y1JD?=
 =?utf-8?B?N2treThuNEczUDUveVA5Qi83cC9hQnpBVUJIQ2RTSFk0YThSUVdnaDFBYXho?=
 =?utf-8?B?WnBtMzQzL1kzZndDdHY2TVpudXozVXhGSFZsQjZreEpqb3pvNE9sazkyL3Ax?=
 =?utf-8?B?c2E1MTFBelF1bHR5TG1NOFlTOUQ5YXJmeG5yWEk5bzJjRmYrS2dMZ0RGeWxs?=
 =?utf-8?B?bnFCZEtWaFVVM2xPR2xBSGNXREhCSFdXNjZzT2E2M3F6Q1FyRmY0Ty96eE5w?=
 =?utf-8?B?N1IrRElGS1E2QmlydXU5Z0FYTVprZDE4ZC9iSkErZ2F1dlNzUXhhbWtBNnhs?=
 =?utf-8?B?UlB3WXU0TzVMWVlGc0V3SjhoRHZPVWlYRXgwaG54elpOZURRZEphYnBSS1JU?=
 =?utf-8?B?YVZtMW9pWUhQbjBsOVh5czlVa24rbTUvQTR6d0M1SHZidmk1MzZMVE54M2Vz?=
 =?utf-8?B?VE9Yc1E0a2tGRjdadVgwS3ZNKzJORFBOM2VSbXZqb2YyRXJ5dmtPWm5na1lG?=
 =?utf-8?B?SmRnRnNmT3A5aTJUWjd5SjRnNGxIbmZMbUtHT3dDcnpXcnlXeUMzM3QxczZm?=
 =?utf-8?B?VGljT3YwY3JBT21qeHZ3eWxtSmtsa1VTb2dOVmw0R1hpdnA2eXkvRmlwNkgr?=
 =?utf-8?B?cEtzOTQ5ajFJdW5HbFN5bjMwREZ0d2tPVExBVnoyM0NkV1MyMm9iR2Jsa3ZV?=
 =?utf-8?B?RldDT254RTlYSlJ2NmppRThzN1k1WndnWS9TTzY5YzdyMXhsS3l4OVF2T3o0?=
 =?utf-8?B?cUdXMHYwMDBZRjlmejRyR282Qm1iL2xkaWg5VUxRaTNFMlhDUXlNUWdKcjJx?=
 =?utf-8?B?WkNqU1pHMURZZzJpQ3NlUmlrckVwM3k3dCtUSk9QaFJuckEyOG9kTEZKMHNM?=
 =?utf-8?B?aU9CSmVkelRHM0Q3eUZHK1d3NEtHdTJPMUJoSHNZRHY2ZjFwNHBlU0VHbUgv?=
 =?utf-8?B?Z3VZYXhCWVdxWmZ3dEJxcWlUYnluVmtOcVhpNVg0d1gzakY1QVIvRUxSQmV1?=
 =?utf-8?B?SlJBK2tNVnlOa2p2QnR0MjBKY0RnbENHdGgyWG1LSWxUOFVWb0x5ZnREUU9a?=
 =?utf-8?B?aHVhMThXYkxIbFpOMEVpUExNSklUTWNLb0MrVGQyRXVtSkhDUFNsNklZQ1VF?=
 =?utf-8?B?QWJkYnB5YTA3a2R4bmNHdFk4Vzcwc1VFNjN5eG0yTDVLVnNvVTBBU2NsZ3lZ?=
 =?utf-8?B?ZDJiUXlSWjlDSjJDd04zaE9XOGUyWEdmWUJkKzVOQkhJcFErcW9LSVVqZk1G?=
 =?utf-8?B?THJMY1dHQUdjbElXN3RoZXk5MVQ4QUxiTkxnVmFUR1dzTXhWWFREeDROa1Ja?=
 =?utf-8?B?TUYwamp5eTBJSStlM2tWTnZ4SDhudEQwbjFDbmk0c1JWZ1VVcWU1UTU4ODBo?=
 =?utf-8?Q?gGMPPV?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(1800799024)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Aug 2025 21:57:25.8389
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 927f826e-7bcd-4332-56a8-08ddd5fd6543
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN3PEPF0000B06D.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV9PR12MB9832

On 2025-08-07 03:00, JÃ¼rgen GroÃŸ wrote:
> On 07.08.25 03:56, Jason Andryuk wrote:
>> With hyperlaunch, a domU can start before its console ring is connected
>> by xenconsoled.Â  With nothing emptying the ring, it can quickly fill
>> during boot.Â  In domU_write_console(), __write_console() returns 0 when
>> the ring is full.Â  This loops spins until xenconsoled starts emptying
>> the ring:
>>
>> Â Â Â Â Â Â Â Â  while (len) {
>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  ssize_t sent = __write_console(cons, data, len);
>>
>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  if (sent < 0)
>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  return sent;
>>
>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  data += sent;
>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  len -= sent;
>>
>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  if (unlikely(len))
>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  HYPERVISOR_sched_op(SCHEDOP_yield, NULL);
>> Â Â Â Â Â Â Â Â  }
>>
>> The goal of this patch is to add a way for the frontend to know when a
>> console is connected.Â  This patch adds a new flag to the end of the
>> console ring structure.Â  It is used for the backend to indicate that it
>> has connected and started servicing the page.
>>
>> The two values are
>> XENCONSOLE_DISCONNECTED 1
>> XENCONSOLE_CONNECTEDÂ Â Â  0
>>
>> XENCONSOLE_DISCONNECTED indicates to the guest that ring is
>> disconnected, so it will not be serviced.Â  The guest can avoid writing
>> into it in that case.Â  A domU can use console hypercalls and only
>> transition to the ring when it is connected and won't fill and block.
>>
>> Once the backend (xenconsoled) maps and starts servicing the
>> console, the flag will be set to XENCONSOLE_CONNECTED (0) to indicate
>> the backend state to the frontend.
>>
>> The connected value as 0 will be match the default of a zero-ed console
>> page.Â  Hyperlaunch can set the flag to XENCONSOLE_DISCONNECTED and let
>> xenconsoled set to XENCONSOLE_CONNECTED.
> 
> I think libxenguest should set XENCONSOLE_DISCONNECTED as well (see below).
> 
>>
>> Old domU hvc_xen drivers won't check the flag.
>> New domU hvc_xen running on a new xen/xenconsoled will work properly.
>> New domU hvc_xen on old xen/xenconsoled should only see a 0 for the flag
>> and behave as if connected.
>>
>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> 
> Adapt the title of the patch?

With Jan's naming suggestion, it'll be "xenconsole: Add connection field"

>> ---
>> v1:
>> Remove evtchn notify call
>> Set connected later when there is no error
>>
>> RFC v3:
>> Flip flag values so 0 is connected.
>>
>> The other option would be to add:
>> uint32_t features
>> uint32_t connected
>>
>> New domUs would check features for a magic value and/or flag to know
>> they can rely on connected transitioning.
>>
>> I think making XENCONSOLE_CONNECTED == 0 side steps the need for
>> an additional features field.Â  As long as assuming zero-ed memory is
>> acceptable.Â  However, this only matters for a hyperlaunched guest -
>> xenconsoled will normally readily connect the console and set the value.
> 
> I'd like to consider other cases as well, e.g. a console driver domain.
> So any instance creating a domain with a console ring page should set the
> flag initially to "disconnected".

Sure, that makes sense.

I don't have immediate plans for this, but I had the additional thought 
of placing the event channel inside the page like we do for xenstore. 
Today xenconsoled uses xenstore for the ring-ref and event channel, 
thought it tries the reserved console grant first.  With the reserved 
grant, and the event channel inside, that dependency would be removed. 
Xenconsoled still needs some way to know when domains come and go, and 
it depends on xenstore's @introduceDomain/@releaseDomain for that.  So 
it couldn't be completely decoupled without some other mechanism.

>> This assumes that existing frontends are not using the flag space for
>> some other use.
>>
>> Removed idea:
>> Send an event channel notification to let the domU know that xenconsoled
>> is connected.Â  Xenstored does similar, but for xenstore, the xenstore
>> driver owns the event channel/irq and can rebind it.Â  For hvc_xen, the
>> hvc subsystem owns the irq, so it isn't readily available for rebinding.
>> This is not implemented.
>>
>> I had the idea for the kernel to use a static key and switch writing
>> from the hypercall to the PV ring once connected.Â  It didn't actually
>> work in my short attempt - I think changing the static key from within
>> an interupt was wrong.Â  I fell back to just checking the flag directly
> 
> You'd need to do the static key changing from a worker thread instead.

Thanks.  I'll investigate.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Thu Aug 07 21:58:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 07 Aug 2025 21:58:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073822.1436643 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uk8cy-0002QC-SX; Thu, 07 Aug 2025 21:58:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073822.1436643; Thu, 07 Aug 2025 21: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 1uk8cy-0002Q5-PE; Thu, 07 Aug 2025 21:58:24 +0000
Received: by outflank-mailman (input) for mailman id 1073822;
 Thu, 07 Aug 2025 21:58:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=P7F5=2T=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1uk8cx-0001s8-C3
 for xen-devel@lists.xenproject.org; Thu, 07 Aug 2025 21:58:23 +0000
Received: from NAM04-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam04on2062a.outbound.protection.outlook.com
 [2a01:111:f403:2409::62a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a139d550-73d9-11f0-a324-13f23c93f187;
 Thu, 07 Aug 2025 23:58:22 +0200 (CEST)
Received: from BN1PR14CA0024.namprd14.prod.outlook.com (2603:10b6:408:e3::29)
 by BY5PR12MB4082.namprd12.prod.outlook.com (2603:10b6:a03:212::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.16; Thu, 7 Aug
 2025 21:58:16 +0000
Received: from BN3PEPF0000B06B.namprd21.prod.outlook.com
 (2603:10b6:408:e3:cafe::64) by BN1PR14CA0024.outlook.office365.com
 (2603:10b6:408:e3::29) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9009.14 via Frontend Transport; Thu,
 7 Aug 2025 21:58:15 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BN3PEPF0000B06B.mail.protection.outlook.com (10.167.243.70) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9031.0 via Frontend Transport; Thu, 7 Aug 2025 21:58:15 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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; Thu, 7 Aug
 2025 16:58:14 -0500
Received: from [172.29.241.50] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Thu, 7 Aug 2025 16:58: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>
X-Inumbo-ID: a139d550-73d9-11f0-a324-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=VlyiORexYDgSRd38Oygbwxn1WRI0MkNKlvfszzqb7ga39hGeqeTdMS4olrb1XPj1pNtDYjB3g1C0BuuBwFoHFUxybSiA5ECmKKa5ig6lFONZpW70FyiiUoCmS4b71ak5XecrCSt8TU9jbu+UNaIwF1DcP/waJK9VCUsWQtqFfPFrkeH8xOr3BxwGRPmTV4Ux6nBWw0D+hq7dxFpEv+YU4HCxWjfcjPPt5frn/UQJ/8WgbQMBg9BjVJ1cHqqy1y5R05uvmsI5dZVgzmA8KUq6yh/Kh9YslyvJHbPNrSP0mu49MWKRWXEeIz92EnHXdFMDim6nZwdhd2B4WHd69qAd3g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LY54khLp+kjz5rHvyNQ6+xUysKQi2R8LFJ3RRKANeeA=;
 b=a5s51g5XIJqL4hNEDeRmOK11iQfIGDMCEJBq1clQzRCyw3CQatpphQ1dBXuLF+rmmtshBV9v7e7FJ47Lgd/+Ydy5R/LaveEgqhRkA6OrhE7Rj8YhhM3/AxHLw56Fv/FLekQ4EKamWJDVzV32zxXzSbPu8rS/3l3opQJ747X7+eEMEL3rbkHLoswU4PUi2ksndmo/3gNT+D9ZnNtNpkQxpjERNp1vQ1ftsYzgEqBcgdr3SL3zwmm0nAnfMlC82GvxxsVOYya4bgtxUujOUnYg0rBpvHAAha52lTrgu2mwpnZpbq5Py7QMSpJhN1eneDoneZhll9oNV1lsORVmQcRgKA==
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=LY54khLp+kjz5rHvyNQ6+xUysKQi2R8LFJ3RRKANeeA=;
 b=HRiDfDSpI2SkDOR7Z58MnM29JR1LRnPajNGfW3iBJZ2rvahwnhmYQk4oEG3DbVIJmqhrp0xI2/pdf0bIJn4d1YICzbtye8p+VOmdK8sbHoZX8U9wqRbdvQuKMMIcLRlU7gsTD1KWKOcpEv7yKN03MrUhsdfhL+wN4NvlcUBwvlw=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <ba4e582e-6647-4e3e-9c0e-2b5b5ac3f911@amd.com>
Date: Thu, 7 Aug 2025 17:58:15 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] xenconsole: Add connected flag
To: Jan Beulich <jbeulich@suse.com>
CC: Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross
	<jgross@suse.com>, <xen-devel@lists.xenproject.org>
References: <20250807015606.4427-1-jason.andryuk@amd.com>
 <49691142-a9eb-4d39-a43a-07c5062dd2fe@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <49691142-a9eb-4d39-a43a-07c5062dd2fe@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB03.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN3PEPF0000B06B:EE_|BY5PR12MB4082:EE_
X-MS-Office365-Filtering-Correlation-Id: ea0cdc91-5910-4924-0247-08ddd5fd82d9
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?d2F1KzdIaTRLZ21DS0NpSnlxQkpBQ1B3NzYya0VLMXhrMldlTnpQc0tYcWF3?=
 =?utf-8?B?VnpaSU8xS2RnMGhldll3YjlmU21JSjNnQ3c1RjBHOE8rWkFrMjA1N3JPWW5u?=
 =?utf-8?B?NDVzaHhEM0ZRZkQ5UXhCUGpiYkdscldoS1ExZytRSG9BbmFic1BSQnVkK0Jw?=
 =?utf-8?B?ZDZSQlNQdWxwT2J5K0lBdWQ5OXU1eFZsMFBFNEJMN094bTRNa1ovdE5xa2RM?=
 =?utf-8?B?dlZLR1Q3cUF4a3VXcFVoMlFaQUswZG1raS9ISW1JL2dmRFMwQkFnR0VuNDZT?=
 =?utf-8?B?blFUelplYVdFVFltcGN4YkRTVFFSUWhVcDBpQTFHNmdHVGF6S2JUV1laQ0pP?=
 =?utf-8?B?Y2FzVExsYTBTZmJsa0JJZERWWi9rSjZEYzlJV2hib2ViWE9WZXdaVXV1Q3ZR?=
 =?utf-8?B?NWZlZm9Gc1Uwelh3NktnbDQxM2pCZCtRMVFIV0NyNGNPT3M0YkMwOG04d3FB?=
 =?utf-8?B?eWtBeFRNZXNyRnNKZWpKMlZNMWUwN3pwcDdKWTcyUzRqOEFtQ3R4RVdMK1Nu?=
 =?utf-8?B?RWxIQk8yVVliYkRuYktCTmlHMWJVczc2TGpNVGJWMm5IM3VpOFRSQmxZWElW?=
 =?utf-8?B?WHgxYUN5cVZRZHQzd2h0eGViYTVNVXNKSS91RkFYREV2bkIwNzRjekRHVlEx?=
 =?utf-8?B?bWZxdjlVcXhVTWwzbVRpYk9GK0FHMlpTd0llbXhleGEzVlZtT2c0d0RFS2Nk?=
 =?utf-8?B?V3ZYejh4MW5HR3pTODdoWFp3bHY0RnZrUTNZSzJCWGlhT0ZlaHVqRHBTWm1w?=
 =?utf-8?B?YjVTY0xQb1hDSHNtVnFRRklIekxnVXRZZVZVWnRjcnZrelNmOEFoTlZlMmF4?=
 =?utf-8?B?R1orOHZsNTNlNHIzQWQxK1F1YU1oT2JZc3VnblE0bjJhMU5KYnVDczRvRzVG?=
 =?utf-8?B?aCsrS0dYODdmYy9MUnZ2Q3hxKzJRaUZaSG5GUlF2QVNDTHJRazhTbmJwRnZ6?=
 =?utf-8?B?RURvSDNScFhzVERiaFFYWFNaaCszK2NCazBpTDhWMVRISGNZeHhnbGlPOEN6?=
 =?utf-8?B?SVRvL09IcHpyN3gyaXZPeC9VeGdvcUQ4bkxJUlJJSXdwdU5sSzJwN0hVcEZM?=
 =?utf-8?B?NnlINlIxSUUyOWtNWWtHUVBORzJBQllhMEVhSWREWm9BK0NiSHlrdDJVcGg2?=
 =?utf-8?B?N1cxYjBlTFFXTEpkVVVUTVVYNG9GM3U2ZzNOZGFzTStXUVJxNDBSVHNTczlP?=
 =?utf-8?B?WFU4bHR3aWw1ekRIUitveEM2c1MzMkJPREZwZWx2QmJuV0RPWGxwNXRUNUps?=
 =?utf-8?B?b1o1UUpMaDEvUnlscHJmU0ZSdGpxcE42eGRmdFkzMHdJSHN5d0FWeVJsYlZV?=
 =?utf-8?B?UDIvUTRianNNVTRnT0hBeVBRWjJVVzFGenpUVUFWWHZPeUNTblYvRFU4RUdQ?=
 =?utf-8?B?S3Jya2djUE5vbDJNaUptM3Zib2tKcHNySnM4S25ldnFtKzIrVnR0VW02Q09I?=
 =?utf-8?B?aE9hWmh2SER3NUZ3OHpzME4vWC9RdGdZK1V1ZlBCa3grS2VYUWRqQUpwVjU3?=
 =?utf-8?B?YUgrMFdYVzhYWmpKZXlCa1pocnpLcUw2Zk5RWXVrRk5xUWFDSkVCRjVwOG0v?=
 =?utf-8?B?ZklpQ3k0S002VTg1aVpkUzVYNEpsMUpPeDgyTFRRN0JXT0QzWW5udFJvMTZ2?=
 =?utf-8?B?MmE2SVNubVlqMGhHY1dSRkpjUHAwbnlPTzc0N2xkUXNPMW5XblplVEJCS2ww?=
 =?utf-8?B?UkxVc041aCtza3YybmNsVWtpeDljNy9XZzM2R1g1bXB5UXVTS0RpakUrYjZY?=
 =?utf-8?B?ODJoNll5dXc4bWkzaGNXVWxtRW1Nb3ZUSkZydk9aL3VZQmVPcGtoVGp0TEw0?=
 =?utf-8?B?ck5BL0JNYk0yRENXWUtoZ0NBd1FCMU9GYVBMMzdzNERiVFlFUnFBUktMTW1P?=
 =?utf-8?B?RFhwNG83anVkcjRUSGorQi9ZTmFSY3MvRDlHMUtTdGNPN2VCdjdzZTdMQkQv?=
 =?utf-8?B?NmpZZUIzME1vVWNIRlBNakY4VnZoMHNNN2ZvV1kzckRvQXd6WkJRSWtWQUFu?=
 =?utf-8?B?NDRkK0U0eVJmVjk2ZU5mWTdLSmxubjkzWFdFMzBNdGdRNzNLOXVPSHFmU1hv?=
 =?utf-8?Q?xMV15X?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(376014)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Aug 2025 21:58:15.4757
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ea0cdc91-5910-4924-0247-08ddd5fd82d9
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN3PEPF0000B06B.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4082

On 2025-08-07 05:19, Jan Beulich wrote:
> On 07.08.2025 03:56, Jason Andryuk wrote:
>> --- a/xen/include/public/io/console.h
>> +++ b/xen/include/public/io/console.h
>> @@ -19,6 +19,19 @@ struct xencons_interface {
>>       char out[2048];
>>       XENCONS_RING_IDX in_cons, in_prod;
>>       XENCONS_RING_IDX out_cons, out_prod;
>> +/*
>> + * Flag values signaling from backend to frontend whether the console is
>> + * connected.  i.e. Whether it will be serviced and emptied.
>> + *
>> + * The flag starts as disconnected.
>> + */
>> +#define XENCONSOLE_DISCONNECTED 1
>> +/*
>> + * The flag is set to connected when the backend connects and the console
>> + * will be serviced.
>> + */
>> +#define XENCONSOLE_CONNECTED    0
>> +    uint32_t flag;
>>   };
> 
> Even if the field name is singular, there's the possible reading of everything
> together as the connected state merely taking one bit, with other bits available
> for future use. IOW I think the field wants giving a less generic name, and
> perhaps also shrinking to unsigned char (or uint8_t, but char is being used in
> the structure already anyway).

It could become a bit in a multi-flag field, dut the structure has a 
good bit of space to the end of the page,  A named field, "connection", 
sounds good.

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Fri Aug 08 01:48:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 01:48:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073895.1436653 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukCD4-0000Ki-AI; Fri, 08 Aug 2025 01:47:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073895.1436653; Fri, 08 Aug 2025 01:47: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 1ukCD4-0000Ka-5i; Fri, 08 Aug 2025 01:47:54 +0000
Received: by outflank-mailman (input) for mailman id 1073895;
 Fri, 08 Aug 2025 01:47:52 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=hyIc=2U=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1ukCD1-0000KU-S6
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 01:47:52 +0000
Received: from mail-24416.protonmail.ch (mail-24416.protonmail.ch
 [109.224.244.16]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ae7f8791-73f9-11f0-b898-0df219b8e170;
 Fri, 08 Aug 2025 03:47:46 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ae7f8791-73f9-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1754617664; x=1754876864;
	bh=PupGkEt+H2hruks94NFk3Xw/txr6q5cPMt03fQ8gads=;
	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=IyvJ+BKojN/1QNJRYoqhCV0Qi1A48bs66jVj6TDuBM4cwteRPn0Q+EZvgL0Lmmc0k
	 Y36R6RgZBxYaIFJ1Sm/0gxouucpwlcJxKun0GLU/KWaCn2DEQUSXhpqIWTy5g+dchq
	 /S4R3zF8CpC0XtyVc8F6niI/tnVJoD2TxNzAVl18ppO19qnf4hhI4NF7iKxh+RJ+wX
	 2bYnu8oD3IYiwlDlbDBwAWN/3oIL3n2cGPORTKqNaQexDmdyjMDlE1lfdhaDuv/4EW
	 WpUMz1liIPVRbeL/u2odfQFntEwo8WzU9Lw41gWX/m905JYhKhRWLuxB53i7tEYH5l
	 NFMdzEBkdfw6A==
Date: Fri, 08 Aug 2025 01:47:40 +0000
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, sstabellini@kernel.org, michal.orzel@amd.com, xenia.ragiadakou@amd.com, ayan.kumar.halder@amd.com, consulting@bugseng.com, Doug Goldstein <cardoe@cardoe.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [XEN PATCH] automation/eclair: restrict clean target to xen
Message-ID: <aJVXNofYlNG32ZiU@kraken>
In-Reply-To: <a1127245a45139c3c3fcd05b07c1c1e6dabb66c0.1747387457.git.nicola.vetrini@bugseng.com>
References: <a1127245a45139c3c3fcd05b07c1c1e6dabb66c0.1747387457.git.nicola.vetrini@bugseng.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 2f5436f19dcc19127e1753d1dfb035d1ef92496e
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Thu, Aug 07, 2025 at 11:53:56PM +0200, Nicola Vetrini wrote:
> The clean target also clears files outside the xen directory,
> which is not needed for the purposes of running an analysis.
>=20
> No functional change.
>=20
> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

Reviewed-by: Denis Mukhin <dmukhin@ford.com>=20

> ---
>  automation/eclair_analysis/prepare.sh | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>=20
> diff --git a/automation/eclair_analysis/prepare.sh b/automation/eclair_an=
alysis/prepare.sh
> index 4285ff26de54..e941e6edc4f3 100755
> --- a/automation/eclair_analysis/prepare.sh
> +++ b/automation/eclair_analysis/prepare.sh
> @@ -39,12 +39,12 @@ fi
>      fi
>=20
>      ./configure
> -    make clean
> +    make -C xen clean
>      find . -type f -name "*.safparse" -print -delete
>      "${script_dir}/build.sh" "$1"
>      # Generate additional configuration files
>      "${script_dir}/ECLAIR/generate_ecl.sh"
> -    make clean
> +    make -C xen clean
>      cd xen
>      make -f "${script_dir}/Makefile.prepare" prepare
>      # Translate the /* SAF-n-safe */ comments into ECLAIR CBTs
> --
> 2.43.0
>=20
>=20



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 02:20:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 02:20:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073903.1436663 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukCiD-00065j-N9; Fri, 08 Aug 2025 02:20:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073903.1436663; Fri, 08 Aug 2025 02:20:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukCiD-00065c-IM; Fri, 08 Aug 2025 02:20:05 +0000
Received: by outflank-mailman (input) for mailman id 1073903;
 Fri, 08 Aug 2025 02:20:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=hyIc=2U=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1ukCiC-0005lR-4n
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 02:20:05 +0000
Received: from mail-10630.protonmail.ch (mail-10630.protonmail.ch
 [79.135.106.30]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 305b74fd-73fe-11f0-b898-0df219b8e170;
 Fri, 08 Aug 2025 04:20:02 +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>
X-Inumbo-ID: 305b74fd-73fe-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1754619601; x=1754878801;
	bh=AHtqm8Rq9uACsvnZ5tyK7BjxNs5//7MbFetoXPPO1cc=;
	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=f1PscD6lZO/kOSm5kakrnC6D82MYnPHIZr0g91tB5xPWdgrf29WE5a1FTRkesx5HU
	 X8yY+m9DWwph3vtAuI+0AQ5sqy0JcDrYtCwpL0Xrxs+b01cf5aFZzamKgXGoCYqJhB
	 RvCss5FzdMyAl5j2dbOdJJ9naCO3/piwmhz8bHy/F7P2SqaKPm3nD7y8mji3KMNFna
	 FAHK2ARShX9ueyck1b7AwcdiZlbHQaRfuD5sEtPM5GhcCsp6rOMzY+5ssrhGUSlSxj
	 qNNctoSAyx8WoIBmxUbqjrd0bCwTyb0jwV67sH0q0ZEP1PCWQoKun8wOe0VNEP+tod
	 cyd5D1RLJKz7Q==
Date: Fri, 08 Aug 2025 02:19:56 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
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 v14 1/4] xen/domain: unify domain ID allocation
Message-ID: <20250808021938.669855-2-dmukhin@ford.com>
In-Reply-To: <20250808021938.669855-1-dmukhin@ford.com>
References: <20250808021938.669855-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 19e5857599a554055eca274ea5705df5675bb685
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>=20

Currently, there are two different domain ID allocation implementations:

  1) Sequential IDs allocation in dom0less Arm code based on max_init_domid=
;

  2) Sequential IDs allocation in XEN_DOMCTL_createdomain; does not use
     max_init_domid (both Arm and x86).

The domain ID allocation covers dom0 or late hwdom, predefined domains,
post-boot domains, excluding Xen system domains (domid >=3D
DOMID_FIRST_RESERVED).

It makes sense to have a common helper code for such task across architectu=
res
(Arm and x86) and between dom0less / toolstack domU allocation.

Note, fixing dependency on max_init_domid is out of scope of this patch.

Wrap the domain ID allocation as an arch-independent function domid_alloc()=
 in
new common/domid.c based on the bitmap.

Allocation algorithm:
- If an explicit domain ID is provided, verify its availability and use it =
if
  ID is not used;
- If DOMID_INVALID is provided, search the range [1..DOMID_FIRST_RESERVED-1=
],
  starting from the last used ID.
  Implementation guarantees that two consecutive calls will never return th=
e
  same ID. ID#0 is reserved for the first boot domain (currently, dom0) and
  excluded from the allocation range.

Remove is_free_domid() helper as it is not needed now.

No functional change intended.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v13:
- fixed panic() formatting in x86's create_dom0()
- fixed login in do_domctl()
- optimizations in domid_alloc()
---
 xen/arch/arm/domain_build.c             |  7 +-
 xen/arch/x86/setup.c                    |  7 +-
 xen/common/Makefile                     |  1 +
 xen/common/device-tree/dom0less-build.c | 15 ++--
 xen/common/domain.c                     |  2 +
 xen/common/domctl.c                     | 43 ++---------
 xen/common/domid.c                      | 95 +++++++++++++++++++++++++
 xen/include/xen/domain.h                |  3 +
 8 files changed, 126 insertions(+), 47 deletions(-)
 create mode 100644 xen/common/domid.c

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 463ae4474d30..789f2b9d3ce7 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -2050,6 +2050,7 @@ void __init create_dom0(void)
         .grant_opts =3D XEN_DOMCTL_GRANT_version(opt_gnttab_max_version),
     };
     unsigned int flags =3D CDF_privileged | CDF_hardware;
+    domid_t domid;
     int rc;
=20
     /* The vGIC for DOM0 is exactly emulating the hardware GIC */
@@ -2074,7 +2075,11 @@ void __init create_dom0(void)
     if ( !llc_coloring_enabled )
         flags |=3D CDF_directmap;
=20
-    dom0 =3D domain_create(0, &dom0_cfg, flags);
+    domid =3D domid_alloc(0);
+    if ( domid =3D=3D DOMID_INVALID )
+        panic("Error allocating domain ID 0\n");
+
+    dom0 =3D domain_create(domid, &dom0_cfg, flags);
     if ( IS_ERR(dom0) )
         panic("Error creating domain 0 (rc =3D %ld)\n", PTR_ERR(dom0));
=20
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 1543dd251cc6..398da734c0c5 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1047,8 +1047,11 @@ static struct domain *__init create_dom0(struct boot=
_info *bi)
     if ( iommu_enabled )
         dom0_cfg.flags |=3D XEN_DOMCTL_CDF_iommu;
=20
-    /* Create initial domain.  Not d0 for pvshim. */
-    bd->domid =3D get_initial_domain_id();
+    /* Allocate initial domain ID.  Not d0 for pvshim. */
+    bd->domid =3D domid_alloc(get_initial_domain_id());
+    if ( bd->domid =3D=3D DOMID_INVALID )
+        panic("Error allocating domain ID %u\n", get_initial_domain_id());
+
     d =3D domain_create(bd->domid, &dom0_cfg,
                       pv_shim ? 0 : CDF_privileged | CDF_hardware);
     if ( IS_ERR(d) )
diff --git a/xen/common/Makefile b/xen/common/Makefile
index c316957fcb36..0c7d0f5d46e1 100644
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -11,6 +11,7 @@ obj-$(filter-out $(CONFIG_X86),$(CONFIG_ACPI)) +=3D devic=
e.o
 obj-$(CONFIG_DEVICE_TREE_PARSE) +=3D device-tree/
 obj-$(CONFIG_IOREQ_SERVER) +=3D dm.o
 obj-y +=3D domain.o
+obj-y +=3D domid.o
 obj-y +=3D event_2l.o
 obj-y +=3D event_channel.o
 obj-$(CONFIG_EVTCHN_FIFO) +=3D event_fifo.o
diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tr=
ee/dom0less-build.c
index 6bb038111de9..f4b6b515d2d2 100644
--- a/xen/common/device-tree/dom0less-build.c
+++ b/xen/common/device-tree/dom0less-build.c
@@ -833,6 +833,7 @@ void __init create_domUs(void)
     {
         struct kernel_info ki =3D KERNEL_INFO_INIT;
         int rc =3D parse_dom0less_node(node, &ki.bd);
+        domid_t domid;
=20
         if ( rc =3D=3D -ENOENT )
             continue;
@@ -842,13 +843,13 @@ void __init create_domUs(void)
         if ( (max_init_domid + 1) >=3D DOMID_FIRST_RESERVED )
             panic("No more domain IDs available\n");
=20
-        /*
-         * The variable max_init_domid is initialized with zero, so here i=
t's
-         * very important to use the pre-increment operator to call
-         * domain_create() with a domid > 0. (domid =3D=3D 0 is reserved f=
or Dom0)
-         */
-        ki.bd.d =3D domain_create(++max_init_domid,
-                                &ki.bd.create_cfg, ki.bd.create_flags);
+        domid =3D domid_alloc(DOMID_INVALID);
+        if ( domid =3D=3D DOMID_INVALID )
+            panic("Error allocating ID for domain %s\n", dt_node_name(node=
));
+
+        max_init_domid =3D max(max_init_domid, domid);
+
+        ki.bd.d =3D domain_create(domid, &ki.bd.create_cfg, ki.bd.create_f=
lags);
         if ( IS_ERR(ki.bd.d) )
             panic("Error creating domain %s (rc =3D %ld)\n",
                   dt_node_name(node), PTR_ERR(ki.bd.d));
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 5241a1629eeb..a7e303253d1a 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -692,6 +692,8 @@ static void _domain_destroy(struct domain *d)
=20
     lock_profile_deregister_struct(LOCKPROF_TYPE_PERDOM, d);
=20
+    domid_free(d->domain_id);
+
     free_domain_struct(d);
 }
=20
diff --git a/xen/common/domctl.c b/xen/common/domctl.c
index f2a7caaf853c..71e712c1f316 100644
--- a/xen/common/domctl.c
+++ b/xen/common/domctl.c
@@ -51,20 +51,6 @@ static int xenctl_bitmap_to_nodemask(nodemask_t *nodemas=
k,
                                    MAX_NUMNODES);
 }
=20
-static inline int is_free_domid(domid_t dom)
-{
-    struct domain *d;
-
-    if ( dom >=3D DOMID_FIRST_RESERVED )
-        return 0;
-
-    if ( (d =3D rcu_lock_domain_by_id(dom)) =3D=3D NULL )
-        return 1;
-
-    rcu_unlock_domain(d);
-    return 0;
-}
-
 void getdomaininfo(struct domain *d, struct xen_domctl_getdomaininfo *info=
)
 {
     struct vcpu *v;
@@ -423,36 +409,19 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u=
_domctl)
=20
     case XEN_DOMCTL_createdomain:
     {
-        domid_t        dom;
-        static domid_t rover =3D 0;
+        /* NB: ID#0 is reserved, find the first suitable ID instead. */
+        domid_t domid =3D domid_alloc(op->domain ?: DOMID_INVALID);
=20
-        dom =3D op->domain;
-        if ( (dom > 0) && (dom < DOMID_FIRST_RESERVED) )
+        if ( domid =3D=3D DOMID_INVALID )
         {
             ret =3D -EEXIST;
-            if ( !is_free_domid(dom) )
-                break;
-        }
-        else
-        {
-            for ( dom =3D rover + 1; dom !=3D rover; dom++ )
-            {
-                if ( dom =3D=3D DOMID_FIRST_RESERVED )
-                    dom =3D 1;
-                if ( is_free_domid(dom) )
-                    break;
-            }
-
-            ret =3D -ENOMEM;
-            if ( dom =3D=3D rover )
-                break;
-
-            rover =3D dom;
+            break;
         }
=20
-        d =3D domain_create(dom, &op->u.createdomain, false);
+        d =3D domain_create(domid, &op->u.createdomain, false);
         if ( IS_ERR(d) )
         {
+            domid_free(domid);
             ret =3D PTR_ERR(d);
             d =3D NULL;
             break;
diff --git a/xen/common/domid.c b/xen/common/domid.c
new file mode 100644
index 000000000000..7839a2885810
--- /dev/null
+++ b/xen/common/domid.c
@@ -0,0 +1,95 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Domain ID allocator.
+ *
+ * Covers dom0 or late hwdom, predefined domains, post-boot domains.
+ * Excludes system domains (ID >=3D DOMID_FIRST_RESERVED).
+ *
+ * Copyright 2025 Ford Motor Company
+ */
+
+#include <xen/domain.h>
+
+static DEFINE_SPINLOCK(domid_lock);
+static DECLARE_BITMAP(domid_bitmap, DOMID_FIRST_RESERVED);
+
+/*
+ * Allocate domain ID.
+ *
+ * @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] rang=
e,
+ *   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 allocat=
ion
+ *   range.
+ * @return Valid domain ID in case of successful allocation,
+ *         DOMID_INVALID - otherwise.
+ */
+domid_t domid_alloc(domid_t domid)
+{
+    static domid_t domid_last;
+
+    spin_lock(&domid_lock);
+
+    /* Exact match. */
+    if ( domid < DOMID_FIRST_RESERVED )
+    {
+        if ( __test_and_set_bit(domid, domid_bitmap) )
+            domid =3D DOMID_INVALID;
+    }
+    /*
+     * Exhaustive search.
+     *
+     * Domain ID#0 is reserved for the first boot domain (e.g. control dom=
ain)
+     * and excluded from allocation.
+     */
+    else
+    {
+        domid_t num =3D DOMID_FIRST_RESERVED;
+
+        domid =3D find_next_zero_bit(domid_bitmap, num, domid_last + 1);
+        if ( domid =3D=3D num && domid_last !=3D 0 )
+        {
+            num =3D domid_last + 1;
+            domid =3D find_next_zero_bit(domid_bitmap, num, 1);
+        }
+
+        ASSERT(domid <=3D DOMID_FIRST_RESERVED);
+        if ( domid < num )
+        {
+            __set_bit(domid, domid_bitmap);
+            domid_last =3D domid;
+        }
+        else
+            domid =3D DOMID_INVALID;
+    }
+
+    spin_unlock(&domid_lock);
+
+    return domid;
+}
+
+void domid_free(domid_t domid)
+{
+    int rc;
+
+    ASSERT(domid <=3D DOMID_FIRST_RESERVED);
+
+    spin_lock(&domid_lock);
+    rc =3D __test_and_clear_bit(domid, domid_bitmap);
+    spin_unlock(&domid_lock);
+
+    ASSERT(rc);
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
index e10baf2615fd..8aab05ae93c8 100644
--- a/xen/include/xen/domain.h
+++ b/xen/include/xen/domain.h
@@ -38,6 +38,9 @@ void arch_get_domain_info(const struct domain *d,
=20
 domid_t get_initial_domain_id(void);
=20
+domid_t domid_alloc(domid_t domid);
+void domid_free(domid_t domid);
+
 /* CDF_* constant. Internal flags for domain creation. */
 /* Is this a privileged domain? */
 #define CDF_privileged           (1U << 0)
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Fri Aug 08 02:20:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 02:20:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073905.1436683 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukCiG-0006cv-7X; Fri, 08 Aug 2025 02:20:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073905.1436683; Fri, 08 Aug 2025 02:20: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 1ukCiG-0006co-3g; Fri, 08 Aug 2025 02:20:08 +0000
Received: by outflank-mailman (input) for mailman id 1073905;
 Fri, 08 Aug 2025 02:20:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=hyIc=2U=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1ukCiE-0005lR-TJ
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 02:20:06 +0000
Received: from mail-10630.protonmail.ch (mail-10630.protonmail.ch
 [79.135.106.30]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2d46bfd3-73fe-11f0-b898-0df219b8e170;
 Fri, 08 Aug 2025 04:19:57 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2d46bfd3-73fe-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1754619595; x=1754878795;
	bh=stVa1HKaR9JbhqBTNg21Pcbp803WN5qumq0YW0VzvYU=;
	h=Date:To:From:Cc:Subject:Message-ID:Feedback-ID:From:To:Cc:Date:
	 Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector;
	b=I2FQpbdXx/qfU387wVI+swtd8fLgTyWU3Z19sllblAS8IPNnaIZ7bNG10MLaOADUb
	 nNfma3DrF0xl/3rZ1on5ZfkRRQhj61wlfQAwlmMfghNBCqtXbMoHOn6aRfqOirt4mI
	 812c7q5e9mpWKcLyYTLoa2Ix3gEuRg5WlbK3YxfAzdqXUlnfbQ/XZPbKuU4l9b2/B8
	 xfTOs7dMRC8O+xHY9GO6fqQu00PTq0enMNmJbKrGBG/GazSHCHySl4yAyuZOMDq82v
	 qD4vIvI/TGfGnERZuymplO9w7mRe0LaWJtZv5hm56seGeRjacDbl78S3eW2QMBXy2S
	 bki9zVSTLq+oA==
Date: Fri, 08 Aug 2025 02:19:49 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
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 v14 0/4] xen/domain: domain ID allocation
Message-ID: <20250808021938.669855-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 7ace57401cf8f129a6f603051e6379a07c53936e
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Patch 1 introduces new domid_{alloc,free} calls.
Patch 2 is a prep change for domain ID allocator test.
Patch 3 introduces some basic testing for domain ID allocator.
Patch 4 adjusts create_dom0() messages (use %pd).

Link to v13: https://lore.kernel.org/xen-devel/20250730174042.1632011-1-dmu=
khin@ford.com/
Link to CI: https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelines/1=
973569163

Denis Mukhin (4):
  xen/domain: unify domain ID allocation
  tools/include: move xc_bitops.h to xen-tools/bitops.h
  tools/tests: introduce unit tests for domain ID allocator
  xen/domain: update create_dom0() messages

 .../xen-tools/bitops.h}                       | 16 +++-
 tools/libs/ctrl/xc_misc.c                     | 13 +--
 tools/libs/guest/xg_dom_elfloader.c           |  3 +-
 tools/libs/guest/xg_dom_hvmloader.c           |  3 +-
 tools/libs/guest/xg_private.h                 |  2 +-
 tools/libs/guest/xg_sr_common.h               |  3 +-
 tools/tests/Makefile                          |  2 +-
 tools/tests/domid/.gitignore                  |  2 +
 tools/tests/domid/Makefile                    | 56 +++++++++++
 tools/tests/domid/harness.h                   | 54 +++++++++++
 tools/tests/domid/include/xen/domain.h        |  1 +
 tools/tests/domid/test-domid.c                | 86 +++++++++++++++++
 xen/arch/arm/domain_build.c                   | 13 ++-
 xen/arch/x86/setup.c                          | 11 ++-
 xen/common/Makefile                           |  1 +
 xen/common/device-tree/dom0less-build.c       | 15 +--
 xen/common/domain.c                           |  2 +
 xen/common/domctl.c                           | 43 ++-------
 xen/common/domid.c                            | 95 +++++++++++++++++++
 xen/include/xen/domain.h                      |  3 +
 xen/lib/find-next-bit.c                       |  5 +
 21 files changed, 362 insertions(+), 67 deletions(-)
 rename tools/{libs/ctrl/xc_bitops.h =3D> include/xen-tools/bitops.h} (84%)
 create mode 100644 tools/tests/domid/.gitignore
 create mode 100644 tools/tests/domid/Makefile
 create mode 100644 tools/tests/domid/harness.h
 create mode 120000 tools/tests/domid/include/xen/domain.h
 create mode 100644 tools/tests/domid/test-domid.c
 create mode 100644 xen/common/domid.c

--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Fri Aug 08 02:20:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 02:20:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073904.1436672 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukCiE-0006Oq-SQ; Fri, 08 Aug 2025 02:20:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073904.1436672; Fri, 08 Aug 2025 02: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 1ukCiE-0006Oj-Pa; Fri, 08 Aug 2025 02:20:06 +0000
Received: by outflank-mailman (input) for mailman id 1073904;
 Fri, 08 Aug 2025 02:20:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=hyIc=2U=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1ukCiE-0005lR-3K
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 02:20:06 +0000
Received: from mail-10628.protonmail.ch (mail-10628.protonmail.ch
 [79.135.106.28]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 31e040a1-73fe-11f0-b898-0df219b8e170;
 Fri, 08 Aug 2025 04:20: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>
X-Inumbo-ID: 31e040a1-73fe-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1754619603; x=1754878803;
	bh=1lN7KrswBcgK3b8OieY9/AL8KilzLZgi3os/mOWZTtg=;
	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=h1UkwJBKFwvWaG9fRq456OB/WC4UJxAEZ+Wp8jqnGg2Dgu2rc1x+9oxPexGhKk+1+
	 shuptePMchUdJVxI8AjpI5+AdtEoXmBzctP9IKZQTzKzMGKsO0MAOELmZznkkdGQTN
	 8tiKSN76yby+oIXLiPxRRN/HKW07TthBsU0TiPYM67mpUTnsTonQJZ4NuNeQBU7P1T
	 vJytRd+OE5BTr9HQ1L4ruDx9s6zRv9wdlherDTucvtuYOFTMgLkhd+LjCwBMg5J06L
	 3whaetW+QfcaU7zZRKFbooeEQxAxh/I1APmjHrHjkgleCDhY7QDVEorP+H6355gGpt
	 A4jAi58go/cvw==
Date: Fri, 08 Aug 2025 02:20:01 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
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 v14 2/4] tools/include: move xc_bitops.h to xen-tools/bitops.h
Message-ID: <20250808021938.669855-3-dmukhin@ford.com>
In-Reply-To: <20250808021938.669855-1-dmukhin@ford.com>
References: <20250808021938.669855-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 4efdcc0a6a1de61435c9134bd34210d95ff3a232
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>=20

Move xc_bitops.h to common tools location to be shared between
the toolstack and unit test code.

Adjust the guard in xen-tools/bitops.h

Correct the #include directives and comments referring to the old
xc_bitops.h in the toolstack code.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v13:
- new patch
---
 .../ctrl/xc_bitops.h =3D> include/xen-tools/bitops.h} |  6 +++---
 tools/libs/ctrl/xc_misc.c                           | 13 +++++++------
 tools/libs/guest/xg_dom_elfloader.c                 |  3 ++-
 tools/libs/guest/xg_dom_hvmloader.c                 |  3 ++-
 tools/libs/guest/xg_private.h                       |  2 +-
 tools/libs/guest/xg_sr_common.h                     |  3 +--
 6 files changed, 16 insertions(+), 14 deletions(-)
 rename tools/{libs/ctrl/xc_bitops.h =3D> include/xen-tools/bitops.h} (95%)

diff --git a/tools/libs/ctrl/xc_bitops.h b/tools/include/xen-tools/bitops.h
similarity index 95%
rename from tools/libs/ctrl/xc_bitops.h
rename to tools/include/xen-tools/bitops.h
index 4a776dc3a57f..681482f6759f 100644
--- a/tools/libs/ctrl/xc_bitops.h
+++ b/tools/include/xen-tools/bitops.h
@@ -1,5 +1,5 @@
-#ifndef XC_BITOPS_H
-#define XC_BITOPS_H 1
+#ifndef __XEN_TOOLS_BITOPS_H__
+#define __XEN_TOOLS_BITOPS_H__
=20
 /* bitmap operations for single threaded access */
=20
@@ -81,4 +81,4 @@ static inline void bitmap_or(void *_dst, const void *_oth=
er,
         dst[i] |=3D other[i];
 }
=20
-#endif  /* XC_BITOPS_H */
+#endif  /* __XEN_TOOLS_BITOPS_H__ */
diff --git a/tools/libs/ctrl/xc_misc.c b/tools/libs/ctrl/xc_misc.c
index 33e87bac2868..10ddf85667a9 100644
--- a/tools/libs/ctrl/xc_misc.c
+++ b/tools/libs/ctrl/xc_misc.c
@@ -17,8 +17,8 @@
  * License along with this library; If not, see <http://www.gnu.org/licens=
es/>.
  */
=20
-#include "xc_bitops.h"
 #include "xc_private.h"
+#include <xen-tools/bitops.h>
 #include <xen/hvm/hvm_op.h>
=20
 int xc_get_max_cpus(xc_interface *xch)
@@ -94,11 +94,12 @@ xc_cpumap_t xc_cpumap_alloc(xc_interface *xch)
 }
=20
 /*
- * xc_bitops.h has macros that do this as well - however they assume that
- * the bitmask is word aligned but xc_cpumap_t is only guaranteed to be
- * byte aligned and so we need byte versions for architectures which do
- * not support misaligned accesses (which is basically everyone
- * but x86, although even on x86 it can be inefficient).
+ * <xen-tools/bitops.h> has macros that do this as well - however they
+ * assume that the bitmask is word aligned but xc_cpumap_t is only
+ * guaranteed to be byte aligned and so we need byte versions for
+ * architectures which do not support misaligned accesses (which is
+ * basically everyone but x86, although even on x86 it can be
+ * inefficient).
  *
  * NOTE: The xc_bitops macros now use byte alignment.
  * TODO: Clean up the users of this interface.
diff --git a/tools/libs/guest/xg_dom_elfloader.c b/tools/libs/guest/xg_dom_=
elfloader.c
index f17930d98bf7..8531e90f8e21 100644
--- a/tools/libs/guest/xg_dom_elfloader.c
+++ b/tools/libs/guest/xg_dom_elfloader.c
@@ -25,8 +25,9 @@
 #include <stdarg.h>
 #include <inttypes.h>
=20
+#include <xen-tools/bitops.h>
+
 #include "xg_private.h"
-#include "xc_bitops.h"
=20
 #define XEN_VER "xen-3.0"
=20
diff --git a/tools/libs/guest/xg_dom_hvmloader.c b/tools/libs/guest/xg_dom_=
hvmloader.c
index 39e1e5f579a7..0f569c20c522 100644
--- a/tools/libs/guest/xg_dom_hvmloader.c
+++ b/tools/libs/guest/xg_dom_hvmloader.c
@@ -24,8 +24,9 @@
 #include <inttypes.h>
 #include <assert.h>
=20
+#include <xen-tools/bitops.h>
+
 #include "xg_private.h"
-#include "xc_bitops.h"
=20
 /* -----------------------------------------------------------------------=
- */
 /* parse elf binary                                                       =
  */
diff --git a/tools/libs/guest/xg_private.h b/tools/libs/guest/xg_private.h
index d73947094f2e..285229cf82a3 100644
--- a/tools/libs/guest/xg_private.h
+++ b/tools/libs/guest/xg_private.h
@@ -28,9 +28,9 @@
 #include <sys/stat.h>
=20
 #include "xc_private.h"
-#include "xc_bitops.h"
 #include "xenguest.h"
=20
+#include <xen-tools/bitops.h>
 #include <xen/memory.h>
 #include <xen/elfnote.h>
 #include <xen/libelf/libelf.h>
diff --git a/tools/libs/guest/xg_sr_common.h b/tools/libs/guest/xg_sr_commo=
n.h
index 2f058ee3a6ff..2e583f2eac72 100644
--- a/tools/libs/guest/xg_sr_common.h
+++ b/tools/libs/guest/xg_sr_common.h
@@ -2,11 +2,10 @@
 #define __COMMON__H
=20
 #include <stdbool.h>
+#include <xen-tools/bitops.h>
=20
 #include "xg_private.h"
 #include "xg_save_restore.h"
-#include "xc_bitops.h"
-
 #include "xg_sr_stream_format.h"
=20
 /* String representation of Domain Header types. */
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Fri Aug 08 02:20:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 02:20:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073906.1436693 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukCiM-0006vX-F1; Fri, 08 Aug 2025 02:20:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073906.1436693; Fri, 08 Aug 2025 02:20:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukCiM-0006vQ-AF; Fri, 08 Aug 2025 02:20:14 +0000
Received: by outflank-mailman (input) for mailman id 1073906;
 Fri, 08 Aug 2025 02:20:12 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=hyIc=2U=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1ukCiK-0005lR-Im
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 02:20:12 +0000
Received: from mail-10630.protonmail.ch (mail-10630.protonmail.ch
 [79.135.106.30]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3571a221-73fe-11f0-b898-0df219b8e170;
 Fri, 08 Aug 2025 04:20:10 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3571a221-73fe-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1754619609; x=1754878809;
	bh=MfcqJMCGLvKKLORmQsBuD+qKANuEjczqzM62iWDooNI=;
	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=Q9peYj4Uj9X9daoxPvLFV/DjSYouKvbC0xB412ZwnX6tt8qhIqsLZ+Tb5+72YxH67
	 /d/kzVZ+LB2Gspj6DZXrkD9c8goiKU/G3XGJb0bjHTwMwTrzm/fLdHN9pNmwHM6cia
	 icJ8pIDPz4w+XdKef952fxASiZZV7V3V2kNNubsAwdONq+PL3ABz0N3QO8Wy0B2RWQ
	 uzjYrIYuW1SOK4d47JyXZsac1Qw5ZMghTh6J6egRKc4NVulIua3EWb5qdPJlQlFsUl
	 RRegUSXr9sQho2xvxIKOzyYyyzKP6LwmyP8JZaFD6L7T7b7CFbI/UT/vgh/93Glu/c
	 ROC68ocuwTHdg==
Date: Fri, 08 Aug 2025 02:20:06 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
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 v14 3/4] tools/tests: introduce unit tests for domain ID allocator
Message-ID: <20250808021938.669855-4-dmukhin@ford.com>
In-Reply-To: <20250808021938.669855-1-dmukhin@ford.com>
References: <20250808021938.669855-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: ebb21ab60ce31068396a36c70917b3b4aae55742
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>=20

Introduce some basic infrastructure for doing domain ID allocation unit tes=
ts,
and add a few tests that ensure correctness of the domain ID allocator.

Use <xen-tools/bitops.h> and xen/lib/find-next-bit.c in test hardness code.

Adjust find-next-bit.c to be compiled with __XEN_TOOLS__.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v13:
- reworked bitops integration
- hooked xen/lib/find-next-bit.c
- cleaned up harness.h code
- made test to use more IDs
---
 tools/include/xen-tools/bitops.h       | 10 +++
 tools/tests/Makefile                   |  2 +-
 tools/tests/domid/.gitignore           |  2 +
 tools/tests/domid/Makefile             | 56 +++++++++++++++++
 tools/tests/domid/harness.h            | 54 ++++++++++++++++
 tools/tests/domid/include/xen/domain.h |  1 +
 tools/tests/domid/test-domid.c         | 86 ++++++++++++++++++++++++++
 xen/lib/find-next-bit.c                |  5 ++
 8 files changed, 215 insertions(+), 1 deletion(-)
 create mode 100644 tools/tests/domid/.gitignore
 create mode 100644 tools/tests/domid/Makefile
 create mode 100644 tools/tests/domid/harness.h
 create mode 120000 tools/tests/domid/include/xen/domain.h
 create mode 100644 tools/tests/domid/test-domid.c

diff --git a/tools/include/xen-tools/bitops.h b/tools/include/xen-tools/bit=
ops.h
index 681482f6759f..3b98fba6d74c 100644
--- a/tools/include/xen-tools/bitops.h
+++ b/tools/include/xen-tools/bitops.h
@@ -12,6 +12,16 @@
 #define BITS_PER_LONG 32
 #endif
=20
+#define ffsl(x)       __builtin_ffsl(x)
+
+#define BIT_WORD(nr)  ((nr) / BITS_PER_LONG)
+
+#define BITS_TO_LONGS(bits) \
+    (((bits) + BITS_PER_LONG - 1) / BITS_PER_LONG)
+
+#define DECLARE_BITMAP(name, bits) \
+    unsigned long name[BITS_TO_LONGS(bits)]
+
 #define BITMAP_ENTRY(_nr,_bmap) ((_bmap))[(_nr) / 8]
 #define BITMAP_SHIFT(_nr) ((_nr) % 8)
=20
diff --git a/tools/tests/Makefile b/tools/tests/Makefile
index 36928676a666..ff1666425436 100644
--- a/tools/tests/Makefile
+++ b/tools/tests/Makefile
@@ -1,7 +1,7 @@
 XEN_ROOT =3D $(CURDIR)/../..
 include $(XEN_ROOT)/tools/Rules.mk
=20
-SUBDIRS-y :=3D
+SUBDIRS-y :=3D domid
 SUBDIRS-y +=3D resource
 SUBDIRS-$(CONFIG_X86) +=3D cpu-policy
 SUBDIRS-$(CONFIG_X86) +=3D tsx
diff --git a/tools/tests/domid/.gitignore b/tools/tests/domid/.gitignore
new file mode 100644
index 000000000000..70e306b3c074
--- /dev/null
+++ b/tools/tests/domid/.gitignore
@@ -0,0 +1,2 @@
+*.o
+test-domid
diff --git a/tools/tests/domid/Makefile b/tools/tests/domid/Makefile
new file mode 100644
index 000000000000..d96ceca6d954
--- /dev/null
+++ b/tools/tests/domid/Makefile
@@ -0,0 +1,56 @@
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# Unit tests for domain ID allocator.
+#
+# Copyright 2025 Ford Motor Company
+
+XEN_ROOT=3D$(CURDIR)/../../..
+include $(XEN_ROOT)/tools/Rules.mk
+
+TESTS :=3D test-domid
+
+vpath domid.c $(XEN_ROOT)/xen/common/
+vpath find-next-bit.c $(XEN_ROOT)/xen/lib/
+
+.PHONY: all
+all: $(TESTS)
+
+.PHONY: run
+run: $(TESTS)
+=09$(foreach t,$(TESTS),./$(t);)
+
+.PHONY: clean
+clean:
+=09$(RM) -- *.o $(TESTS) $(DEPS_RM)
+
+.PHONY: distclean
+distclean: clean
+=09$(RM) -- *~
+
+.PHONY: install
+install: all
+=09$(INSTALL_DIR) $(DESTDIR)$(LIBEXEC)/tests
+=09$(INSTALL_PROG) test-domid $(DESTDIR)$(LIBEXEC)/tests
+
+.PHONY: uninstall
+uninstall:
+=09$(RM) -- $(DESTDIR)$(LIBEXEC)/tests/test-domid
+
+CFLAGS +=3D -D__XEN_TOOLS__
+# find-next-bit.c
+CFLAGS +=3D '-DEXPORT_SYMBOL(x)=3D' \
+          -Dfind_first_bit \
+          -Dfind_first_zero_bit \
+          -Dfind_next_bit \
+          -Dfind_next_bit_le \
+          -Dfind_next_zero_bit_le
+CFLAGS +=3D $(APPEND_CFLAGS)
+CFLAGS +=3D $(CFLAGS_xeninclude)
+CFLAGS +=3D -I./include/
+
+LDFLAGS +=3D $(APPEND_LDFLAGS)
+
+test-domid: domid.o find-next-bit.o test-domid.o
+=09$(CC) $^ -o $@ $(LDFLAGS)
+
+-include $(DEPS_INCLUDE)
diff --git a/tools/tests/domid/harness.h b/tools/tests/domid/harness.h
new file mode 100644
index 000000000000..b043519dcb35
--- /dev/null
+++ b/tools/tests/domid/harness.h
@@ -0,0 +1,54 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Unit test harness for domain ID allocator.
+ *
+ * Copyright 2025 Ford Motor Company
+ */
+
+#ifndef _TEST_HARNESS_
+#define _TEST_HARNESS_
+
+#include <assert.h>
+#include <stdbool.h>
+#include <stdint.h>
+#include <stdio.h>
+
+#include <xen-tools/common-macros.h>
+#include <xen-tools/bitops.h>
+
+typedef bool spinlock_t;
+typedef uint16_t domid_t;
+
+extern domid_t domid_alloc(domid_t domid);
+extern void domid_free(domid_t domid);
+
+extern unsigned long find_next_zero_bit(const unsigned long *addr,
+                                        unsigned long size,
+                                        unsigned long offset);
+
+#define __test_and_set_bit(nr, addr)    test_and_set_bit(nr, addr)
+#define __test_and_clear_bit(nr, addr)  test_and_clear_bit(nr, addr)
+#define __set_bit(nr, addr)             set_bit(nr, addr)
+
+#define BUG_ON(x)                       assert(!(x))
+#define ASSERT(x)                       assert(x)
+
+#define DEFINE_SPINLOCK(l)              spinlock_t l
+#define spin_lock(l)                    (*(l) =3D true)
+#define spin_unlock(l)                  (*(l) =3D false)
+
+#define printk                          printf
+
+#define DOMID_FIRST_RESERVED            (100)
+#define DOMID_INVALID                   (101)
+
+#endif /* _TEST_HARNESS_ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/tools/tests/domid/include/xen/domain.h b/tools/tests/domid/inc=
lude/xen/domain.h
new file mode 120000
index 000000000000..2eda9aed088e
--- /dev/null
+++ b/tools/tests/domid/include/xen/domain.h
@@ -0,0 +1 @@
+../../harness.h
\ No newline at end of file
diff --git a/tools/tests/domid/test-domid.c b/tools/tests/domid/test-domid.=
c
new file mode 100644
index 000000000000..7b6fb5ee2a7b
--- /dev/null
+++ b/tools/tests/domid/test-domid.c
@@ -0,0 +1,86 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Unit tests for domain ID allocator.
+ *
+ * Copyright 2025 Ford Motor Company
+ */
+
+#include "harness.h"
+
+#define verify(exp, fmt, args...) do { \
+    if ( !(exp) ) \
+        printf(fmt, ## args); \
+    assert(exp); \
+} while (0);
+
+/*
+ * Fail on the first error, since tests are dependent on each other.
+ */
+int main(int argc, char **argv)
+{
+    domid_t expected, allocated;
+
+    /* Test ID#0 cannot be allocated twice. */
+    allocated =3D domid_alloc(0);
+    verify(allocated =3D=3D 0,
+           "TEST 1: expected %u allocated %u\n", 0, allocated);
+    allocated =3D domid_alloc(0);
+    verify(allocated =3D=3D DOMID_INVALID,
+           "TEST 1: expected %u allocated %u\n", DOMID_INVALID, allocated)=
;
+
+    /* Ensure ID is not allocated. */
+    domid_free(0);
+
+    /*
+     * Test that that two consecutive calls of domid_alloc(DOMID_INVALID)
+     * will never return the same ID.
+     * NB: ID#0 is reserved and shall not be allocated by
+     * domid_alloc(DOMID_INVALID).
+     */
+    for ( expected =3D 1; expected < DOMID_FIRST_RESERVED; expected++ )
+    {
+        allocated =3D domid_alloc(DOMID_INVALID);
+        verify(allocated =3D=3D expected,
+               "TEST 2: expected %u allocated %u\n", expected, allocated);
+    }
+    for ( expected =3D 1; expected < DOMID_FIRST_RESERVED; expected++ )
+    {
+        allocated =3D domid_alloc(DOMID_INVALID);
+        verify(allocated =3D=3D DOMID_INVALID,
+               "TEST 3: expected %u allocated %u\n", DOMID_INVALID, alloca=
ted);
+    }
+
+    /* Re-allocate first ID from [1..DOMID_FIRST_RESERVED/2]. */
+    for ( expected =3D 1; expected < DOMID_FIRST_RESERVED / 2; expected++ =
)
+        domid_free(expected);
+    for ( expected =3D 1; expected < DOMID_FIRST_RESERVED / 2; expected++ =
)
+    {
+        allocated =3D domid_alloc(DOMID_INVALID);
+        verify(allocated =3D=3D expected,
+               "TEST 4: expected %u allocated %u\n", expected, allocated);
+    }
+
+    /* Re-allocate last ID from [1..DOMID_FIRST_RESERVED - 1]. */
+    expected =3D DOMID_FIRST_RESERVED - 1;
+    domid_free(DOMID_FIRST_RESERVED - 1);
+    allocated =3D domid_alloc(DOMID_INVALID);
+    verify(allocated =3D=3D expected,
+           "TEST 5: expected %u allocated %u\n", expected, allocated);
+
+    /* Allocate an invalid ID. */
+    expected =3D DOMID_INVALID;
+    allocated =3D domid_alloc(DOMID_FIRST_RESERVED);
+    verify(allocated =3D=3D expected,
+           "TEST 6: expected %u allocated %u\n", expected, allocated);
+
+    return 0;
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/lib/find-next-bit.c b/xen/lib/find-next-bit.c
index 9b8d7814f20c..539c7f2022b0 100644
--- a/xen/lib/find-next-bit.c
+++ b/xen/lib/find-next-bit.c
@@ -8,8 +8,13 @@
  * as published by the Free Software Foundation; either version
  * 2 of the License, or (at your option) any later version.
  */
+
+#ifdef __XEN_TOOLS__
+#include <xen-tools/bitops.h>
+#else
 #include <xen/bitops.h>
 #include <xen/byteorder.h>
+#endif
=20
 #define __ffs(x) (ffsl(x) - 1)
 #define ffz(x) __ffs(~(x))
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Fri Aug 08 02:20:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 02:20:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073908.1436703 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukCiO-0007Db-LU; Fri, 08 Aug 2025 02:20:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073908.1436703; Fri, 08 Aug 2025 02:20: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 1ukCiO-0007DK-IP; Fri, 08 Aug 2025 02:20:16 +0000
Received: by outflank-mailman (input) for mailman id 1073908;
 Fri, 08 Aug 2025 02:20:15 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=hyIc=2U=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1ukCiN-0006ub-NO
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 02:20:15 +0000
Received: from mail-24416.protonmail.ch (mail-24416.protonmail.ch
 [109.224.244.16]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 38032ac4-73fe-11f0-a324-13f23c93f187;
 Fri, 08 Aug 2025 04:20:15 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 38032ac4-73fe-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1754619613; x=1754878813;
	bh=w1vXTdbNOk206daF/36KWblBn/nIoRXEyoJHQ+f1hZU=;
	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=ecJFNIo0Umy96CPupWMSmSZLjc6su7G7FQBytKNOIbylBG+NdHG/EgVyV/kwiUGZQ
	 hbICjn3Z3giREjoKtUBRzF5xu1+zylsfrE+drw0uWliU1UrNjNG4aoO+wpbcYuq/DM
	 dW+okdx0bUbf7W4mpFl7juZI/KZkMgVXN2MKuvDPc5DVvTeTtC4TnKtcvWyL85PhkC
	 5KhhLIndC7PTfLSJlqCvy/i8SzXFA3BoqpsCFKjhUAKMdRZ78T0f3bwTq9QM49rXOp
	 G/U9jtKoj9kJMC5AAcr/NPRytSxBnjFLgMgl6qhC1sMIL2TR0jwEhDv52qDKLGyeOm
	 gWphzsMj1imVw==
Date: Fri, 08 Aug 2025 02:20:10 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
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, Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Subject: [PATCH v14 4/4] xen/domain: update create_dom0() messages
Message-ID: <20250808021938.669855-5-dmukhin@ford.com>
In-Reply-To: <20250808021938.669855-1-dmukhin@ford.com>
References: <20250808021938.669855-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 979d403c01bbec8174ef645088b4912da0736fab
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>=20

Use %pd for domain identification in error/panic messages in create_dom0().

No functional change.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
Reviewed-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes since v13:
- n/a
---
 xen/arch/arm/domain_build.c | 6 +++---
 xen/arch/x86/setup.c        | 4 ++--
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 789f2b9d3ce7..02a15d160962 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -2084,14 +2084,14 @@ void __init create_dom0(void)
         panic("Error creating domain 0 (rc =3D %ld)\n", PTR_ERR(dom0));
=20
     if ( llc_coloring_enabled && (rc =3D dom0_set_llc_colors(dom0)) )
-        panic("Error initializing LLC coloring for domain 0 (rc =3D %d)\n"=
, rc);
+        panic("Error initializing LLC coloring for %pd (rc =3D %d)\n", dom=
0, rc);
=20
     if ( vcpu_create(dom0, 0) =3D=3D NULL )
-        panic("Error creating domain 0 vcpu0\n");
+        panic("Error creating %pdv0\n", dom0);
=20
     rc =3D construct_dom0(dom0);
     if ( rc )
-        panic("Could not set up DOM0 guest OS (rc =3D %d)\n", rc);
+        panic("Could not set up %pd guest OS (rc =3D %d)\n", dom0, rc);
=20
     set_xs_domain(dom0);
 }
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 398da734c0c5..bf21c55f7193 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1084,7 +1084,7 @@ static struct domain *__init create_dom0(struct boot_=
info *bi)
=20
         if ( (strlen(acpi_param) =3D=3D 0) && acpi_disabled )
         {
-            printk("ACPI is disabled, notifying Domain 0 (acpi=3Doff)\n");
+            printk("ACPI is disabled, notifying %pd (acpi=3Doff)\n", d);
             safe_strcpy(acpi_param, "off");
         }
=20
@@ -1099,7 +1099,7 @@ static struct domain *__init create_dom0(struct boot_=
info *bi)
=20
     bd->d =3D d;
     if ( construct_dom0(bd) !=3D 0 )
-        panic("Could not construct domain 0\n");
+        panic("Could not construct %pd\n", d);
=20
     bd->cmdline =3D NULL;
     xfree(cmdline);
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Fri Aug 08 03:33:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 03:33:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1073973.1436712 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukDr9-0002EM-Qe; Fri, 08 Aug 2025 03:33:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1073973.1436712; Fri, 08 Aug 2025 03:33: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 1ukDr9-0002EF-Nw; Fri, 08 Aug 2025 03:33:23 +0000
Received: by outflank-mailman (input) for mailman id 1073973;
 Fri, 08 Aug 2025 03:33:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6qX/=2U=gmail.com=arraybolt3@srs-se1.protection.inumbo.net>)
 id 1ukDr8-0002E9-DZ
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 03:33:22 +0000
Received: from mail-il1-x134.google.com (mail-il1-x134.google.com
 [2607:f8b0:4864:20::134])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6e1473c6-7408-11f0-a324-13f23c93f187;
 Fri, 08 Aug 2025 05:33:21 +0200 (CEST)
Received: by mail-il1-x134.google.com with SMTP id
 e9e14a558f8ab-3e3df510580so702055ab.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 20:33:21 -0700 (PDT)
Received: from kf-m2g5 ([2607:fb91:1183:972:b5b0:f8fc:81d2:9bb])
 by smtp.gmail.com with ESMTPSA id
 8926c6da1cb9f-50ae9bdc54asm216371173.52.2025.08.07.20.33.18
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 07 Aug 2025 20:33: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>
X-Inumbo-ID: 6e1473c6-7408-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754624000; x=1755228800; darn=lists.xenproject.org;
        h=mime-version:references:in-reply-to:message-id:subject:to:from:date
         :from:to:cc:subject:date:message-id:reply-to;
        bh=wuqdC+wZSlfbOIzaKM+JGjSTsgrg7y1Xmtc+a4LsI24=;
        b=IWT9/aFznwTBfGdXvBeOXnT4lLYEHcv7SKuSmhMQGp8occTxy/B6JHVvFeWEEoMr2y
         ScVllJJTN0PgopL6MNUc2WmL+3YKEQLiS/+IAL2NkY5++3Ur4O//+2W14r0BGh61zfuI
         PqtqmprhKJQ/Op35s9Ix2IReBOWpQuNClcYbPRbWNuK9CNUgR2eZ2ZUaxiCk+/r6T++W
         aAMXx1gzntm3qVeTf/8VPE3wv60MfsD+xG+kOnT071ZjnaL1EyG/Vf6I0c6xDXBYU6gA
         NdcHFhMAy4iTOkMC3A2h+dMnzXCxjHg4HlUQmexMYxLT86hPi17QudR+me1cdjnCXHpo
         50/w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754624000; x=1755228800;
        h=mime-version:references:in-reply-to:message-id:subject:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=wuqdC+wZSlfbOIzaKM+JGjSTsgrg7y1Xmtc+a4LsI24=;
        b=afhNKMeeSTpFwUxVGKpxDTWBSvuIuB6BbWpqimV7RCUKCTk1ym+TPBIIPAKY1+gMvH
         u8hIsBoNWlxOIie/3U6SloePiYqFUj38tYrnxsQV3wzRXI6/EckMyiQTC4Riua8ppkEv
         PkAonGrXJuphaXnbcewXKltigXZh6jqbQlahxw4BWzXc5KeED2QqwO+Vp0X5Mgtv00aN
         tjhk5uKsspZ8XZeDEeuc03t3E07RRRkAz+qIh8QV+W3tZXIhCVai5F5ock+PQG5Jkz0Q
         OHXP6jrxwK1daF9AE6JSWu5NRkDfWP4SyyWdbyDFobhOOWQ2T/l2tUMdpy1PjTsay8Gx
         /DqA==
X-Forwarded-Encrypted: i=1; AJvYcCVwGR6Kl1mDe9b0CT0ppTUExD68F0nTTG/TpIP0Wg68CWehSfxDRQlOYVS0/hLais5DgSMUj73qr+0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwyvEvEjpUm71jFHZfHnLsKk0QvDpHLFq2ld41frzKD4svCgvrC
	rh4MsxFS6tTo2aMWdjJmwgeBU2c/SpOA2CBxgVp1VB9uHsTsm4x/RKU1
X-Gm-Gg: ASbGncvAeTXCo6aS3vmaZL37yUh3XvzKQyGGfOEsPQ1PYPUS8p4RRJS7upfa6AkJ5FA
	g3nkrUGUM51bY/+NO8cXRpjLEGKl8IiQJ8SjOO6sq29oC9wfRehEJ8GNp1E5R1y6oEGNOHzwWqW
	A5zF9bK3eaMW4abyZbrEZyjmihCOMW+fFRPBELVT3yHwp4zfDUh9MBw6CHPB/h7CfaeDHpyPiIT
	52OFQVJphXbSuHwIiQnT5a8HqjY89LPVAJ+ejrjcvnT7jq2UeKPmvijVHygxmENT1F+hV3x4JDt
	qR4AStTz9wZxuufUSID7c/dM2RVb5/N21zxUM2Y1G3ngXvFme4ZjgO9l7w5jhHoXwQ5D9BDeW6K
	ypwdrxCHyvA2OazOCuDoQNHHS88FblOvdNfu2q+s=
X-Google-Smtp-Source: AGHT+IGx2bYcdOer58Y4Fx1XNGXtROMnGzgqbpHQBJQ9YhkL60Qv6zZ3FYmYhwbapvnXbuovn/bsCw==
X-Received: by 2002:a05:6e02:190d:b0:3e4:8c0:5a49 with SMTP id e9e14a558f8ab-3e533174002mr9089295ab.6.1754623999797;
        Thu, 07 Aug 2025 20:33:19 -0700 (PDT)
Date: Thu, 7 Aug 2025 22:33:12 -0500
From: Aaron Rainbolt <arraybolt3@gmail.com>
To: grub-devel@gnu.org, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 2/2] kern/xen: Add Xen command line parsing
Message-ID: <20250807223312.100a8ab4@kf-m2g5>
In-Reply-To: <20250804235009.30e39bd9@kf-m2g5>
References: <20250804234816.3d14f53f@kf-m2g5>
	<20250804234911.3cc3997c@kf-m2g5>
	<20250804235009.30e39bd9@kf-m2g5>
X-Mailer: Claws Mail 4.3.1 (GTK 3.24.41; x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="Sig_/nNdR5oRnuudB/zN3nJu_MvE";
 protocol="application/pgp-signature"; micalg=pgp-sha512

--Sig_/nNdR5oRnuudB/zN3nJu_MvE
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

On Mon, 4 Aug 2025 23:50:09 -0500
Aaron Rainbolt <arraybolt3@gmail.com> wrote:

> Xen traditionally allows customizing guest behavior by passing
> arguments to the VM kernel via the kernel command line. This is no
> longer possible when using GRUB with Xen, as the kernel command line
> is decided by the GRUB configuration file within the guest, not data
> passed to the guest by Xen.
>=20
> To work around this limitation, enable GRUB to parse a command line
> passed to it by Xen, and expose data from the command line to the GRUB
> configuration as environment variables. These variables can be used in
> the GRUB configuration for any desired purpose, such as extending the
> kernel command line passed to the guest. The command line format is
> inspired by the Linux kernel's command line format.
>=20
> To reduce the risk of misuse, abuse, or accidents in production, the
> command line will only be parsed if it consists entirely of 7-bit
> ASCII characters, only alphabetical characters and underscores are
> permitted in variable names, and all variable names must start with
> the string "xen_grub_env_". This also allows room for expanding the
> command line arguments accepted by GRUB in the future, should other
> arguments end up becoming desirable in the future.

Darn. I sent this patch as a reply to the previous patch in the stack,
not as a reply to the cover letter. That's probably not the right way
to do things.

I should just set up git-send-email and stop trying to make Claws Mail
barely work for this kind of thing... Will resend the patch soon-ish,
this time formatted right (unless that would just cause needless noise).

--Sig_/nNdR5oRnuudB/zN3nJu_MvE
Content-Type: application/pgp-signature
Content-Description: OpenPGP digital signature

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

iQIzBAEBCgAdFiEEudh48PFXwyPDa0wGpwkWDXPHkQkFAmiVb/gACgkQpwkWDXPH
kQlsZg//UyTi6GewosMb9Q1V+INPSVwkzf47vrMgEwysTXq1JOLOqjYwe1352Y5D
IYhNxdDpt7vt7k4iRbKIu4iuMrgOmSn8jqzXa88n/tATCU3dz4bXNGr5O/yxl6BA
V5//5ek54GrEBihvd/FFVVPcs6XNw64mStWYR/ZUDmh4ZRlKFpZl+pqoixOaVyN5
4PLJ09OOx4OXhg9t9O4kMGT0G3ce9f6IG9TvQpFxRniYk1acsf7R/PJatcwzgaON
oWyNgL14DRgzqm3V8PmsxgHcmaLhd3SPBmYv0xHndFwgp0tBC+8h0qm6EkqLs+n8
tUpj+Kx+aMi4sCcGLR5cwsJi79h40D15DIgtBFOvwKbPOCxdGLW2pNZi7bIXpqf2
DKKgXeq1VuCI/sIBvLSQNMlL12YfoGSOUaRCZTmIL9M0V5lGw/AkMRjZXVX9ku6g
6zezZSMCxIfVeUYjJzAKxSM7/udWxqoF639YNIge3cxXoMEXA4fD56Ltw2c0GyqR
Kz8US5vn729QiSuu6TcbsEQYILCr8gxcnuPY0+RApB4VOUx3bugH1J3OSxwgqkAm
Mz7u1ickmQX+EnNmuMkEIw5Exez4InCl7wtbvR60QTKErbsxaQFR3mNcxI/KwM4V
CGkjnUk6LW+K3CVW1q/mEyN5ABRIntF+QG5FCy7eoJlAfl1BF0Y=
=/B9Z
-----END PGP SIGNATURE-----

--Sig_/nNdR5oRnuudB/zN3nJu_MvE--


From xen-devel-bounces@lists.xenproject.org Fri Aug 08 06:04:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 06:04:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074014.1436722 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukGD9-0005tO-TH; Fri, 08 Aug 2025 06:04:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074014.1436722; Fri, 08 Aug 2025 06:04:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukGD9-0005tH-Qh; Fri, 08 Aug 2025 06:04:15 +0000
Received: by outflank-mailman (input) for mailman id 1074014;
 Fri, 08 Aug 2025 06:04:14 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=illN=2U=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ukGD8-0005tB-CI
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 06:04:14 +0000
Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com
 [2a00:1450:4864:20::62f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 81a766c9-741d-11f0-a324-13f23c93f187;
 Fri, 08 Aug 2025 08:04:12 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-af97c0290dcso323635866b.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 23:04: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
 a640c23a62f3a-af91a21c06bsm1434159366b.119.2025.08.07.23.04.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Aug 2025 23:04: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>
X-Inumbo-ID: 81a766c9-741d-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754633052; x=1755237852; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=wE/fhVaUFn7jesFbrfTRvtqsCfjCoY7T1fwfr2b8YIE=;
        b=LIDAVS2k29kC2SiTQoeIbcdTKf2u7s6MyS50jZ9u5H+dMoECPEP1Cyn15/Xf2OjZ+H
         e+q0WEvN1G8vRfB6wVtZx9IHb4fHyq4+JkaGqnoOuZeB02kDKS7hZY9KsDONSk2TwrWb
         xaC69aOH04LUpjCi3aByQZdXEtoP0k8kjBTXgPR345Q6gpu0tmIkOVKUQh8aBYENXTrt
         mM48Ug5T7gE7IvVKUTbEhfoWaGdrm5rbZjV9IERVTsMRAC8wZ0NjN0fwzmLqEv30DR+a
         7dmxRL7REp5ifc2ZZz6Aa8580572K3dI49InUqfygMkK10L6Yj23At9a7o8mLsQzk2og
         Gmnw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754633052; x=1755237852;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wE/fhVaUFn7jesFbrfTRvtqsCfjCoY7T1fwfr2b8YIE=;
        b=lm9uTt/Q7zAQdjmkcrJ2wBrMVUhGCjs6BkNtik4SkSt1lXJLV6fv+EcsRE12m+PAQs
         Ufg2LcCcXa48et03RnbG8DWrOSZinNFGgkxacERMo0qSQgHZdnrhv6hwxk1+cX3O2rrY
         fL6RgP6th9u9J/segrn0kVtxMNFUniMixEovGVdlXw/Nm/BlTyMZ/F1guNnGVxZbJe8k
         Umrld15VHPHhI7Mq8n8SQwRMm1gIuXmZjGdep07ny0SIH9O/EuzbG3AgRkdrVgbP9vmM
         efSv1neDlEgbiRB2HeuIvDiv2e3eVcnVfuOqpaW46OxfZ9XyZV2hEqKggW1AbO+mhVmj
         bJAQ==
X-Forwarded-Encrypted: i=1; AJvYcCXu0eswWj1KnCoOy5R+GkdGMdGcB1uNdf3VcDHl2/oy3dwm+gsjfo2XAAGUoGwLmBBZJKiPtNApivQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyX7OiDI0zRTN0EY7SoRmR7LJWsj3Vie1gKQZ69hckIzXR7zKBq
	qRapWyiH+a+FdMsVC4HYR4tCQIEhOoGXItna3nnB9T+suZpqMLztp5m0vE9Q7Bxuww==
X-Gm-Gg: ASbGnctDxjz5o/AYYPzcypg5IAs5dgQd8xsnfYNkIJSZ2jm1A1glCiT6bJHNihI+GQ3
	eEj8bwpcFgvGhXPioWeZ24gJV9r0wWUn3tr3OMdHLcSh0lwx/5HmE6JE5uByGvbI8hqRfdfwSTi
	IwmSxKd3BQ0AA5UTJgwlz6H4ifuNYEuxl12r9+eDyDjY9Tap2F/qm2WCRo9JyV6wBZGuYhpXE6S
	Lewi8jrE5w3FE+OChUNuq7NxAtKWvUhCLISgHN2HDBLM0/fS5AxTWR8MdSmqoYUND2nd1eXQgLS
	sjseGY7CckZOGPAkh9nklYUgFUNam184eESoYlhmD70azt/UoMPpH40cIWxngHJA26tx/MZQTnc
	gUKyxdBHVC5sRWo+verjtsglLbf72u8gC7AWYssBr/YO09JmJ4ySC0Yq6P4GmngHlSYc/MWq/oO
	90CoDnwC4=
X-Google-Smtp-Source: AGHT+IEqVhUrfBNakI9VU2ypaR62MJ7IHTHKwaL8kcVWyURcgIbjnfUWjIjIm06agCPsDt9iyaZzTQ==
X-Received: by 2002:a17:907:3cd6:b0:af9:bfef:156b with SMTP id a640c23a62f3a-af9c65e83ccmr135894866b.59.1754633052451;
        Thu, 07 Aug 2025 23:04:12 -0700 (PDT)
Message-ID: <65a67891-34a6-4ef4-ba43-f9e793979067@suse.com>
Date: Fri, 8 Aug 2025 08:04:10 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Xen 4.21 Development Update [June-July]
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>,
 Ayan Kumar Halder <ayan.kumar.halder@amd.com>,
 Mykyta Poturai <Mykyta_Poturai@epam.com>, Juergen Gross <jgross@suse.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Luca Fancellu <luca.fancellu@arm.com>, "Jason Andryuk,"
 <jason.andryuk@amd.com>, Sergii Dmytruk <sergii.dmytruk@3mdeb.com>,
 "Penny Zheng," <Penny.Zheng@amd.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki=2C?=
 <marmarek@invisiblethingslab.com>, Roger Pau Monne <roger.pau@citrix.com>,
 dmkhn@proton.me, Mykola Kvach <xakep.amatop@gmail.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Grygorii Strashko <gragst.linux@gmail.com>,
 Alejandro Vallejo <agarciav@amd.com>,
 Community Manager <community.manager@xenproject.org>,
 Xen-devel <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 "committers@xenproject.org" <committers@xenproject.org>
References: <ae2c2e35-72df-40ed-bffe-391f3c11b826@gmail.com>
 <242a93cf-20f7-4fcd-8eef-6945af5d864c@suse.com>
 <03a1d0b8-facd-4c02-97c6-45fa694da0b6@gmail.com>
 <f07b7bf9-8e9a-49b6-824e-0c3b346bebd2@suse.com>
 <a664643e-bf54-4518-83f9-497d2b9351f9@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: <a664643e-bf54-4518-83f9-497d2b9351f9@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 07.08.2025 18:20, Oleksii Kurochko wrote:
> 
> On 8/6/25 10:12 AM, Jan Beulich wrote:
>> On 06.08.2025 09:45, Oleksii Kurochko wrote:
>>> On 8/6/25 8:05 AM, Jan Beulich wrote:
>>>> Overall: There are very many items on this list, and it seems entirely clear to
>>>> me that not all of them will make it. I think it would be quite helpful to strip
>>>> down the set for 4.21 to some realistic subset. Maybe something to discuss on
>>>> the community call later today?
>>> Good point, lets discuss that tomorrow during the community call.
>> Oh, right, it's only Wednesday today.
> 
> I had the Xen Community Call marked at 6 PM in my calendar, so I missed it as
> it actually took place at 15:00... I'm not sure if a recording is available
> somewhere, but based on the notes:
>  Â Â Â  Call for major work items for 4.21 or 4.22
>  Â Â Â Â Â Â Â  Please make yourself known if you are intending to work on major items
>  Â Â Â Â Â Â Â  PDX compression.
>  Â Â Â Â Â Â Â  FRED, AVX10, APX, and AMX support (x86)
>  Â Â Â Â Â Â Â  Host UEFI Secure Boot
>  Â Â Â Â Â Â Â  FF-A 1.2 Support (Arm)
> 
> I completely agree with the first point â€” it would be great to receive feedback
> from the authors of major patch series, similar to how the team at EPAM does.
> 
> As for the other items, I assume this is a list of major work items that are
> likely to slip to 4.22, correct? From the looks of it, PDX compression and
> FRED-related work might still make it into 4.21.
> 
> I also wanted to ask this during the call, but since I missed it,
> Iâ€™ll ask here instead:
> What should be the criteria for continuing to track a patch series?
> It seems that the best approach would be to rely on feedback from the series'
> author. However, obtaining that feedback can be challenging. So perhaps the
> only practical solution is to keep tracking major items throughout the current
> release cycle and drop them at the start of the next cycle if no activity has
> taken place.
> 
> P.S.: Andrew, could you please provide a list for FRED connected patch series,
> I am tracking some of them, but wanted to be sure that I'm tracking all of them.

This is possibly one of the problems: The tracking is too fine-grained. I don't
think every little piece needs tracking throughout the entire dev cycle. Close
to relevant milestones, adding certain things (like bugfixes) that definitely
want to go in for the release may make sense. But prior to that I think it would
help if things were more coarse grained, and less focused on individual patches
or patch series. (Connecting the individual items with their series would of
course be a plus, but to allow having an overview the two aspects may want
separating.)

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 08 06:16:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 06:16:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074032.1436734 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukGPJ-0007t0-3v; Fri, 08 Aug 2025 06:16:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074032.1436734; Fri, 08 Aug 2025 06:16: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 1ukGPI-0007st-VT; Fri, 08 Aug 2025 06:16:48 +0000
Received: by outflank-mailman (input) for mailman id 1074032;
 Fri, 08 Aug 2025 06:16:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=illN=2U=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ukGPH-0007sn-Dl
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 06:16:47 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4227adfe-741f-11f0-b898-0df219b8e170;
 Fri, 08 Aug 2025 08:16:45 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-af93381a1d2so297798666b.3
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 23:16: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
 a640c23a62f3a-af91a0753f9sm1442856666b.20.2025.08.07.23.16.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Aug 2025 23:16: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>
X-Inumbo-ID: 4227adfe-741f-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754633805; x=1755238605; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ZS60Uo2sFNWjxbmJGMlyR/21UXwOhQn9J3EviXRfFMQ=;
        b=dTGMul0R8wMaYeamiGsTZeiO8hOCqz785W2hONlc/0F6mkKxQlBRADRh42fDyq6efR
         lq0TyeZYaijWEm2DTVsKHCFCJyg2Y9zo3oPMksNSA2wxKEKljJ47fSfxyQdpQKq8NYuQ
         rH2hE5i/9tOPJa6MA1kyo0YWpasA82tya8X+nR+2eU875miT16PBtfx4tjhMZcqz9d8V
         lg3rFovBjn5aUFI0r6AkPuA6B3ME2ZpU3G2TunRtPC32PbAsQ5zc3bs5s6Tyz5WIOQOn
         NuwvPhvzwBtEcArqOWEV21Wsxh3BPgXghD5nj/XXuNoHRSUFrufflLYFO4FbwN0IW++r
         nXqg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754633805; x=1755238605;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ZS60Uo2sFNWjxbmJGMlyR/21UXwOhQn9J3EviXRfFMQ=;
        b=vlkA4SsCEiGcOa95kmp5Q4nSssqoc00Zin1Lk7fpHsvqnMSOfxek3ywVtU3Xz0pesX
         CcoXu/BCmtQeYaMYPcDX1tz3ahsaM7dYko4CNrl0HeHssb/VKYNL0f+H61grofeQQ8Wd
         Smm+vn1UxQj6IDmv+0vVYQPI8nRCMEMGumejgQ2OqVhr53Hr4EGYFHNQib2Birmx0sKE
         4wWw1HCkKpt3tu9JJHyOKQQfeDnwBIj6L580sfJSxzE2zYvlvhHO4BAZMDlq4kutZxnS
         iF+usSEU0yFO+oseT6Czb8X9AL6UgL4kINZINW569vNcQQRfvM0eFIMgdpdmuGmzwtv1
         acjg==
X-Forwarded-Encrypted: i=1; AJvYcCX6BE4XvR16GU+ntklN+Kp2YtJ6qO7YDCd21aX4h3y3Rh5IBpyTIy38AfzhxhwjF3mzCamUpMUVy8o=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzQ/9FmOQGNZ28UVbXaCoa2TA+f0m51tGBF4I35BOiln9Dm20jo
	4b2Ilkk6lFf8BI4Xn0vk/EhECQmX5xD89MoD3IhVKeXLix/GKOkpuk/mOLhi84hiAA==
X-Gm-Gg: ASbGnctU4QPg3WmY1LgiqxG6cURy0KbITvxrTy6J/an/wFVVQxn2j+0Ulan6AfEFc+d
	E9QSATxPWWuvEsNfewwMX+UrUbAJK/0Fv+Rmu47lIwVZ0uw+VZGzJXedEVQwR9CwnhF5QDj+HHt
	GKeOw2I3xmpNI7oRGpxngRNolzWn6RwJHvEFuaS6S35lJ98V2AT5b0v+eSZeLxl+c4/2hXqoJqe
	srcELK/SfCe1RovH7BAZhrJFcNr9dLPoj4hMA+kxOgqyizH0PJ8oTdmJy5sxjSVp7AFmwsLIrct
	N6/0ye2G0H1KGfVrgyxi9QKGUuWvZwucjtBM2m5e7Ex+VXI9hY0LNMCkcTy1u47lM6ULRE/DzGD
	eTzgLLAGIh3q7bsdy6hVeqbRRixNyqYK33MSCW9YK
X-Google-Smtp-Source: AGHT+IELrwjx5Giwps2KtMXrkboo7Rc8fb347vTgghjcfjn76CRv9gOyT/bmhoOGKXG5dw0Z9PnMtQ==
X-Received: by 2002:a17:907:1c98:b0:af9:57ae:dbb3 with SMTP id a640c23a62f3a-af9c6375f2fmr148678366b.22.1754633802737;
        Thu, 07 Aug 2025 23:16:42 -0700 (PDT)
Message-ID: <d0d09d33-669f-4e38-8e9b-4131ca7c3e79@suse.com>
Date: Fri, 8 Aug 2025 08:16:41 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 04/20] xen/arm: vIOMMU: add generic vIOMMU framework
To: Milan Djokic <milan_djokic@epam.com>
Cc: 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>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1754580687.git.milan_djokic@epam.com>
 <87b001cfc0555192435967b32190f75783ffa746.1754580688.git.milan_djokic@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: <87b001cfc0555192435967b32190f75783ffa746.1754580688.git.milan_djokic@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.08.2025 18:59, Milan Djokic wrote:
> --- a/xen/drivers/passthrough/Kconfig
> +++ b/xen/drivers/passthrough/Kconfig
> @@ -35,6 +35,12 @@ 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 VIRTUAL_IOMMU
> +	bool "Virtual IOMMU Support (UNSUPPORTED)" if UNSUPPORTED
> +	default n

Nit: Please omit this redundant line.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 08 06:21:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 06:21:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074040.1436743 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukGTO-0001JQ-Ht; Fri, 08 Aug 2025 06:21:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074040.1436743; Fri, 08 Aug 2025 06:21: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 1ukGTO-0001JJ-El; Fri, 08 Aug 2025 06:21:02 +0000
Received: by outflank-mailman (input) for mailman id 1074040;
 Fri, 08 Aug 2025 06:21:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=illN=2U=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ukGTM-0001Is-Ib
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 06:21:00 +0000
Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com
 [2a00:1450:4864:20::62b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d9c6268b-741f-11f0-a324-13f23c93f187;
 Fri, 08 Aug 2025 08:20:59 +0200 (CEST)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-af9180a11bcso366526766b.0
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 23:20: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
 a640c23a62f3a-af99148eab9sm484037666b.77.2025.08.07.23.20.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Aug 2025 23:20:58 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d9c6268b-741f-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754634059; x=1755238859; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=t/ZVNGssmV1swo3G4gqvI055lSSTPFlKR8S+iSThrzI=;
        b=AtDQO3PvLoN6Yg37IsOcZn5H6yDUZFGnxX1wq3W1HQ1HARq5Yk49ONRpCT3HSsnSYZ
         PNg6zBGKp+CM+Au42Bxv2JzJUiFy8WeNOy5O9YM1OTpu2R06+IZ9AQcYv73+whi9Ihpa
         iqtM5IdrJQW+oYgGc+QDD0XJEsSU1flvIrY6fVE/Sxd1QesoNZpsjeXXwkCiGwR8Apko
         D4pLK7OmiqlNufQxso6ZH5BLbXoix0Oin/B8Or1cmXP6POAvkiXgQDMrXXo7Sh2cQCdO
         fL6bjQM2d5I7t9OgByEFZ9xq3wrxT5yL+YzUArH4t48UD0cjoyJRN04XSM/+zVnGHa90
         iyhw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754634059; x=1755238859;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=t/ZVNGssmV1swo3G4gqvI055lSSTPFlKR8S+iSThrzI=;
        b=azNo309yudFSsrjl9eba02sOCsQAO0hf/0Kg3xDOXdI4AQpvfHlJT7ZNuyBYzenWyk
         He+lFyEH/InBPXzPGwcpFKqqVQCXRnU9SaXmxz3gUgNo6Ylrs8zTmT99Rwv2jKKZCR+o
         sODC/fGE989PsLkX4tkMMSPOwG0JyPoHy6mUH8X+CXzimsIybWt5nzWZ16Jq0Vldp7vP
         ya3mNKYfvXNg15QZ8Bwwrk7nT9K2PnjRprYekRvPr7Bt9c5zle4VKzY8y7cxTCMBzgJC
         UYw64HLO57xlDtecLmlI2ftEZpol9Hgbp4ZnIJJJO8BBxKAKGXPzZkwtZEET/d7ubRko
         8shg==
X-Forwarded-Encrypted: i=1; AJvYcCUqNQUeTk6VcDW1hIeyVaZ+GRdQMPYT2PjS9cO6mwacn131DNS8VFPwAhZisBHe96HnRArnT5NKZp4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyLEo2TSSMEaHU+bYsEWWWr9z6Y9lVUuNWGbKy/zUiVFfnC/8/0
	OVz7oIdewR/YCDhzcbne6/zBsgvhCvh/JIgI6x50NTnYMhCBnGSJONKK4VcHFUcyzA==
X-Gm-Gg: ASbGnct9ZaGkoT5moaFkrumLA42u6Dp5c1OD3oM2WyxIbgdHu+phvnw9oaPK0PkQwhb
	tt6VcC0vmJq6cBuVXyjr5ttGp6qv21LQUEOqbdw6DoWlOJsn5F6RVCLrXTniezayGX6ssnKqDCd
	QtZWkBOFr30b7+IvfOJ1ZbYf/JHndzPlUnjfHcJZi677mcUrhf506OuuWTnLUAiAxGsLgzrJqgB
	ND25LFEzIHbA8fdVlE4H9hvGRzgol+4CsFTDK7fiilL0n9rsQIHduBhnTn0q/7abgcznzh0mWy0
	TEQbgk81gR7l8pSV4pEj6uZ8bxxHQsVTaScMRyqGyAqvPYH0fhwqVOpxVxbwi8bGADXxon+Yg9h
	g4ZlyCPKf7tBV6qwsSnA6GBqhfnWtoAlWx5WYtWRyoEy9+8uT1KUTtnLKe53it6ReYvK4+y3vQp
	NbNUgs3mAE8GyN3uqkqA==
X-Google-Smtp-Source: AGHT+IE1spSqbHh7qWI12yKBcu+/NGzUpi1v6bpwVVPckjgGn8qxWG6KBd7fsScJImf2jginJyJAXA==
X-Received: by 2002:a17:907:9707:b0:af8:fef0:9b23 with SMTP id a640c23a62f3a-af9c700a332mr134313966b.20.1754634058977;
        Thu, 07 Aug 2025 23:20:58 -0700 (PDT)
Message-ID: <dd006b8c-c198-4f38-bfaa-990122bb7174@suse.com>
Date: Fri, 8 Aug 2025 08:20:57 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 07/20] xen/arm: vIOMMU: Add cmdline boot option "viommu =
 <boolean>"
To: Milan Djokic <milan_djokic@epam.com>
Cc: Rahul Singh <rahul.singh@arm.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, 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>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1754580687.git.milan_djokic@epam.com>
 <c539f673eef6f44a1191b0f8213ff5571baa411a.1754580688.git.milan_djokic@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: <c539f673eef6f44a1191b0f8213ff5571baa411a.1754580688.git.milan_djokic@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.08.2025 18:59, Milan Djokic wrote:
> --- a/docs/misc/xen-command-line.pandoc
> +++ b/docs/misc/xen-command-line.pandoc
> @@ -2058,6 +2058,13 @@ This option can be specified more than once (up to 8 times at present).
>  
>  Flag to enable or disable support for PCI passthrough
>  
> +### viommu (arm)
> +> `= <boolean>`
> +
> +> Default: `false`
> +
> +Flag to enable or disable support for Virtual IOMMU for guests.

Isn't this too coarse-grained? IOW don't you want to specify the kind of IOMMU
to use, even if right now only one is being implemented? Also - why on the
command line? Isn't this rather a per-guest setting?

>  ### pcid (x86)
>  > `= <boolean> | xpti=<bool>`

Also, seeing this adjacent entry, you're inserting in the wrong place. The
options are supposed to be alphabetically sorted.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 08 06:22:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 06:22:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074047.1436753 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukGUx-0001oh-SA; Fri, 08 Aug 2025 06:22:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074047.1436753; Fri, 08 Aug 2025 06:22: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 1ukGUx-0001oa-On; Fri, 08 Aug 2025 06:22:39 +0000
Received: by outflank-mailman (input) for mailman id 1074047;
 Fri, 08 Aug 2025 06:22:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=illN=2U=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ukGUw-0001oS-V7
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 06:22:38 +0000
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com
 [2a00:1450:4864:20::52a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 13d418d1-7420-11f0-b898-0df219b8e170;
 Fri, 08 Aug 2025 08:22:37 +0200 (CEST)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-61592ff5ebbso2799137a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 23:22: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
 a640c23a62f3a-af91a21c081sm1423945766b.97.2025.08.07.23.22.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Aug 2025 23:22: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>
X-Inumbo-ID: 13d418d1-7420-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754634156; x=1755238956; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=6aXxFV3eD5Lof/Z1Tv1rnOToxgqOe+zWIms9TM3lhUw=;
        b=Wcq9Zsj8lQcRVPYkEc95ux0lcj1FcVRulVi4rrSsEYiCprya7IA4BTDfeN8dY5h3td
         mEkITT3Z7TZt47aDu7gqX4eA2BvW4Ba0jV/XRULR0OW++D7+HOb6PkCVQgDNRVq5xOtw
         rzDdyzbTE4R1gOJ1nlVx1/lJUWAuzjxAX7O7/kylv2eiGVubKdI1+dMuoWZVRbnemeuk
         j/ZD64QVrXQGbNGCBbr0UjU2uaZrazytA88oTXpRqCuLmPiNAjGzS80vW1hhIf7mWdy2
         C2GiyjvCODN7gcUy6U662LMr756Y85CifNmxeymD3ci1XSAZ1/Lm+kowa6mDNzQ5gjS7
         VDhw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754634156; x=1755238956;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6aXxFV3eD5Lof/Z1Tv1rnOToxgqOe+zWIms9TM3lhUw=;
        b=XljEKVxq66G6uk6wz2GcyEPhCwkBSZzUUNcthf+5A6aXJmA7jqswuoKpYa7e8h9t5p
         FDniDThtGZmC/Ucfv34UkEHBR4STDumm9aamndnqVBPiv5oXvdSbZVtgUfPJC5qzpGkI
         +XChVf0TpaTq9OKxNOzIqYw7p0zv128unPXCSbxFTg5G0ikwvdnC0B9r0RO5TH5TqatV
         VPPsOw/UJChTJrEcmk7WksL6Ccpy+Cnu+ymIODTHOzdocg6kWqmsZAD60Z2+zFCfKB8r
         DF3ljyeSmPezeojnal94hrROxDnPPpCk2G6zinF/UCXW/ksIPYo6Cl6VvsbMxOwLQ2cw
         vxTg==
X-Forwarded-Encrypted: i=1; AJvYcCWALMqpiDw910PaDzQ6M4a2B5EFW5ZEHwQyR2cO+9ewKLGU2mqUmayJrxKW3JmFtPiiwzBfGeiJe/c=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw3J/HxfqD/qOZGwqWWowf/x7nF5ui3dAeblxTHitB0YvBj8BZh
	I5fg07r3cPUFqf++H7rA00Zl0zSigtXVjNgrj3QzBXownRlwg6sDt10HPHV2sStOVw==
X-Gm-Gg: ASbGncvIFYEhUk17Dh/Nv1HvkFmx9B12pAS932WffwgKiOq9BDy0nvuu9x+Xw1k/gY7
	Ux6FcaUB22doMFIwmWTIyjfllt30krYRY735n8qhCxWEI6gMzpGcG/49HYUmdjpXHa/9jBoIj0h
	Ea0Yz5fixGgoY9ZC62u8U7DajF3neI7ZMe5/viejtdPitXh1FYa9ZU0bkextYodYoaKomSkzy0D
	9CriCb1NDcwh9QXa+nb55Gab76ZHbSwXCHXTHSkVPrHaV7aQt1Q4KdZ+KMqbbGkGHpi9v3KR+gi
	yPrkfD0lZ99rmbswb77r3WREOyu2Cu66QtnhbGhQBaLtrq9voSaSnN2hUmz+IRaTrlhfNS7A6dw
	NYUkBBpM8PDfma1hdE9n694+XNROYMqnbBG94/E0f0IHjcsc/N9RPVxUtW44e87FJuFZdm0zFgo
	WLEIdGugw=
X-Google-Smtp-Source: AGHT+IHhYW/igUCOdkMxzMzlRvljMTBoWejWsxcT15amTjq9FtYzCHcKEBz2ejAyJUGBf9Pz098L6g==
X-Received: by 2002:a17:906:fe45:b0:ae6:c555:8dcf with SMTP id a640c23a62f3a-af9c63b08f4mr169060066b.26.1754634156426;
        Thu, 07 Aug 2025 23:22:36 -0700 (PDT)
Message-ID: <563a59a7-07fa-46c5-b22e-0f0318fb1c48@suse.com>
Date: Fri, 8 Aug 2025 08:22:35 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 11/20] xen/arm: vsmmuv3: Attach Stage-1 configuration to
 SMMUv3 hardware
To: Milan Djokic <milan_djokic@epam.com>
Cc: Rahul Singh <rahul.singh@arm.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1754580687.git.milan_djokic@epam.com>
 <f90c81d800e040db7574906fdf2ee4d57e30f2e6.1754580688.git.milan_djokic@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: <f90c81d800e040db7574906fdf2ee4d57e30f2e6.1754580688.git.milan_djokic@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.08.2025 18:59, Milan Djokic wrote:
> --- a/xen/include/xen/iommu.h
> +++ b/xen/include/xen/iommu.h
> @@ -311,6 +311,15 @@ static inline int iommu_add_dt_pci_sideband_ids(struct pci_dev *pdev)
>  
>  #endif /* HAS_DEVICE_TREE_DISCOVERY */
>  
> +#ifdef CONFIG_ARM
> +struct iommu_guest_config {
> +    paddr_t     s1ctxptr;
> +    uint8_t     config;
> +    uint8_t     s1fmt;
> +    uint8_t     s1cdmax;
> +};
> +#endif /* CONFIG_ARM */

This looks like it should rather go into Arm's asm/iommu.h.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 08 06:33:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 06:33:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074059.1436763 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukGfc-0003qg-PP; Fri, 08 Aug 2025 06:33:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074059.1436763; Fri, 08 Aug 2025 06:33: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 1ukGfc-0003qZ-Mj; Fri, 08 Aug 2025 06:33:40 +0000
Received: by outflank-mailman (input) for mailman id 1074059;
 Fri, 08 Aug 2025 06:33:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=illN=2U=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ukGfb-0003qS-EG
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 06:33:39 +0000
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com
 [2a00:1450:4864:20::636])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9de2c0d9-7421-11f0-a324-13f23c93f187;
 Fri, 08 Aug 2025 08:33:38 +0200 (CEST)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-af9618282a5so350451366b.2
 for <xen-devel@lists.xenproject.org>; Thu, 07 Aug 2025 23:33: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
 a640c23a62f3a-af919e96050sm1435296066b.0.2025.08.07.23.33.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 07 Aug 2025 23:33: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>
X-Inumbo-ID: 9de2c0d9-7421-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754634817; x=1755239617; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Mgnlu6T6dibGuDZ36cwuOck/YnogbGDvuR1nQdpOTso=;
        b=QjKkFdTWuTTLk6oRHorSEU3C1FRbCJI906SFEOXsrYjBi6Bp4qwPOjXuBVu9ewG3oi
         BwEJ+py8FJMF4xgac+Nc8g9Ws4qiwio+dXN/jZNS+HPi+wRRMw8gC08kbZTP+HjHo3Gq
         cW7fMMHZteUjg3fRJaVw20U2laV4OQAbXK0KQS2WL3Tp9DMwZotwV9fEWCX0pQBJXZww
         tWXi9cyAUBIxy3snMA/XQYtHF/aQPGj3pJcqFNFOJ5ErmY5Sq98+qAUNR9uYYUFBH6+3
         U6FQq4BkuUvaBVZof2nG6xUZ5W6y3j+1UtZwmLeJ3WdVmmn4PNPsk4WrA99PZSP/iuLp
         ys4A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754634817; x=1755239617;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Mgnlu6T6dibGuDZ36cwuOck/YnogbGDvuR1nQdpOTso=;
        b=WkLlesFUbQeanjl0NWgw+sQpWa1YdOpk9WJNoBFn0r78Om/BHMm4UvKFWebcJnx5N5
         zBrQe2IVRHkSr+PoiE5LuBg6Tv1sk/2L7d3jfhHVpaWHSp3uS9hSF2ebdR0PM/G7Zp2y
         d3wVOGPbnk0upNJVbzAi9N0r+/lP5y38AM8qBW8M9g6lITZt/JlXD4dhA6m5J+RFLac4
         PSbCrAR5uKsKsV6tRKIe5C3PgoXgJ5v9UO/L8ZqzzYOhnVYJqak3PKS0pFRmh6IJkAJf
         7hTE1uAx0PCkLRYpABaNIMFlYuzEo1b01X6oT25DqI/bmWe7eE1EkJrgoy3eYieN7Vcm
         OCtw==
X-Forwarded-Encrypted: i=1; AJvYcCV3tTfecQ4HNIjjNOFFC/30EUIYGy1PgckigufnHBYMoV2O5D7b5BzKvtpFZ6zkPMyitBLfeaPj2yg=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx8QjxA8zyy0977r+921OUkKbO60gNqmeVDYj+fpTh7mKavWQUt
	0YC+eBd3xJNploigePaPgj00tQiN5u1rPg0BaolCx92s7FAEj789+j+xYfTYSCy/xw==
X-Gm-Gg: ASbGncumZXlY4INlekF7QKLACu9bqkFiNb0TweqHBXPKj4F1L/efevCwpqFoZsEkkK9
	+UXBNko+7GWv9fspR9yDdt922Cxe/m35Q4X9TsVccONjsJD7EXEbqrVDzRshPzxvwLfkgBw39c1
	1tgvLP2oOEQcpfpiC/rKg7HAmEjRtB/fGZ5ecXM8fh30SWfwxfn7zeAyGP0MtAe+pGRak4NNwVV
	uVGHoVXUYiMAsQ86uc8TOdVxBoTIPas8JsbHM74EAdUg8n6xJmqtpKclWXTWCuo6epn5n8H+bbp
	ei08KnFs3GYMKss9/DUiqkLR60qo+4qjE0LpBzRb97Y5M6QdGmJ1MC54X2iWCsJTWqDEvdQhqbj
	ARN6CPh/8Q7D4XM1vFkPUC8JLmsljFwKDggLTHPsaqFzB2B8O3fq5pVw4DMJYmnlDFFZ9dMxogU
	fC7gwRk0E=
X-Google-Smtp-Source: AGHT+IHqTH8yjlMm/py9+saZQJO/izF+hW9c5Wd3C5bG8IpOHt1X5x0TgT8wi1Loe44XVR9/F2fP7w==
X-Received: by 2002:a17:906:4796:b0:af9:1720:425a with SMTP id a640c23a62f3a-af9c65528afmr152590166b.30.1754634817516;
        Thu, 07 Aug 2025 23:33:37 -0700 (PDT)
Message-ID: <f3973f06-8305-4895-97f9-6d52f03d03b3@suse.com>
Date: Fri, 8 Aug 2025 08:33:36 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for
 guests
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: Mykola Kvach <mykola_kvach@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1754595198.git.mykola_kvach@epam.com>
 <64cbfa58af7935c47141a2b1c0560e8d63e3d712.1754595198.git.mykola_kvach@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <64cbfa58af7935c47141a2b1c0560e8d63e3d712.1754595198.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.08.2025 21:39, Mykola Kvach wrote:
> From: Mykola Kvach <mykola_kvach@epam.com>
> 
> This patch adds support for the PSCI SYSTEM_SUSPEND function in the vPSCI
> (virtual PSCI) interface, allowing guests to request suspend via the PSCI
> v1.0 SYSTEM_SUSPEND call (both 32-bit and 64-bit variants).
> 
> The implementation:
> - Adds SYSTEM_SUSPEND function IDs to PSCI definitions
> - Implements trapping and handling of SYSTEM_SUSPEND in vPSCI
> - Allows only non-hardware domains to invoke SYSTEM_SUSPEND; for the
>   hardware domain, PSCI_NOT_SUPPORTED is returned to avoid halting the
>   system in hwdom_shutdown() called from domain_shutdown
> - Ensures all secondary VCPUs of the calling domain are offline before
>   allowing suspend due to PSCI spec
> 
> GIC and virtual timer context must be saved when the domain suspends.
> This is done by moving the respective code in ctxt_switch_from
> before the return that happens if the domain suspended.
> 
> Usage:
> 
> For Linux-based guests, suspend can be initiated with:
>     echo mem > /sys/power/state
> or via:
>     systemctl suspend
> 
> Resuming the guest is performed from control domain using:
>       xl resume <domain>
> 
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>

Nothing is being said on why domain_resume_nopause() would be needed. While this
may be entirely obvious to Arm people, the change is done in common code.

> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -1343,16 +1343,13 @@ int domain_shutdown(struct domain *d, u8 reason)
>      return 0;
>  }
>  
> -void domain_resume(struct domain *d)
> +#ifndef CONFIG_ARM
> +static
> +#endif
> +void domain_resume_nopause(struct domain *d)
>  {
>      struct vcpu *v;
>  
> -    /*
> -     * Some code paths assume that shutdown status does not get reset under
> -     * their feet (e.g., some assertions make this assumption).
> -     */
> -    domain_pause(d);
> -
>      spin_lock(&d->shutdown_lock);
>  
>      d->is_shutting_down = d->is_shut_down = 0;
> @@ -1360,13 +1357,24 @@ void domain_resume(struct domain *d)
>  
>      for_each_vcpu ( d, v )
>      {
> +        clear_bit(_VPF_suspended, &v->pause_flags);

Similarly it's not becoming clear why unconditionally doing this here would
be correct (now and going forward). There are other calls to this function,
after all.

> --- a/xen/include/xen/sched.h
> +++ b/xen/include/xen/sched.h
> @@ -814,6 +814,9 @@ void domain_destroy(struct domain *d);
>  int domain_kill(struct domain *d);
>  int domain_shutdown(struct domain *d, u8 reason);
>  void domain_resume(struct domain *d);
> +#ifdef CONFIG_ARM
> +void domain_resume_nopause(struct domain *d);
> +#endif
>  
>  int domain_soft_reset(struct domain *d, bool resuming);
>  
> @@ -1010,6 +1013,9 @@ static inline struct domain *next_domain_in_cpupool(
>  /* VCPU is parked. */
>  #define _VPF_parked          8
>  #define VPF_parked           (1UL<<_VPF_parked)
> +/* VCPU is suspended. */
> +#define _VPF_suspended 9
> +#define VPF_suspended (1UL<<_VPF_suspended)

And then, even if it's "only" style: With how adjacent code is formatted,
how come there's no suitable blank padding here? If anything wants (and
really needs) doing differently from pre-existing code, then to have
blanks around the << as well.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 08 08:04:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 08:04:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074089.1436788 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukI57-0000f4-Nk; Fri, 08 Aug 2025 08:04:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074089.1436788; Fri, 08 Aug 2025 08:04: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 1ukI57-0000ei-Jf; Fri, 08 Aug 2025 08:04:05 +0000
Received: by outflank-mailman (input) for mailman id 1074089;
 Fri, 08 Aug 2025 08:04:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mRAb=2U=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1ukI56-0000bG-H4
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 08:04:04 +0000
Received: from NAM04-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam04on20603.outbound.protection.outlook.com
 [2a01:111:f403:2409::603])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3e4c3744-742e-11f0-b898-0df219b8e170;
 Fri, 08 Aug 2025 10:04:02 +0200 (CEST)
Received: from SJ0PR13CA0178.namprd13.prod.outlook.com (2603:10b6:a03:2c7::33)
 by CH3PR12MB7499.namprd12.prod.outlook.com (2603:10b6:610:142::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.16; Fri, 8 Aug
 2025 08:03:56 +0000
Received: from CO1PEPF000066E6.namprd05.prod.outlook.com
 (2603:10b6:a03:2c7:cafe::d7) by SJ0PR13CA0178.outlook.office365.com
 (2603:10b6:a03:2c7::33) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9031.9 via Frontend Transport; Fri, 8
 Aug 2025 08:03:55 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CO1PEPF000066E6.mail.protection.outlook.com (10.167.249.4) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Fri, 8 Aug 2025 08:03:54 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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; Fri, 8 Aug
 2025 03:03:54 -0500
Received: from cjq-desktop.amd.com (10.180.168.240) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Fri, 8 Aug
 2025 03:03: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>
X-Inumbo-ID: 3e4c3744-742e-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=KeWu31v2uCnFt/4y/TUd1CmP5eCV4IpymbK9iDN9McK190uH1+wC/VJh5tY1kNFVJh4H2Gn0V2mQEWmXidJovK1A5Q5W2iA+YUiGBMjiMj0tQZGuYx79pFb0yKknNU0NHtHTtmuIDY4dqtzD+JWtNciLeiQClWwOtsRXq0EnSvSTMtdch/CGiFG/DnysCcMG68J+qxiZj1441TDbBLjTSYDOcIrjlZOzriSTknvLd9N6wkqA9n4T2fsFnrRPl5jr968WFjwzDt8yIbu1bWSY8Xtf0PfhGcFgWjg9qwIlfKRsRt2G+DE9U0AXancBqPvQy9liEe+rcF414FS8HRxxrQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=s5PL1NmXDbMegVT5M1N6mCB6DOySvIDls9rbNkrvwiM=;
 b=SMhbk7pk7FrLdeUI671unierffjtDAnBeDcv2Kdyt4sJ5I4TI8AiNeHwOBwbWborB5q7WXQNxWfVeGWEt0N3PIm/sDYixZLU3lJd40fmvRZDtC+LZ6KfWTiV6JioApo1PyUhl1UCEqu2ozeTIXdGDulaoQgcIOBQNunkzPK8PuqA3+VbR3t+27rHjHjgX5udV2IzfHL9OyeQ+ZHJ50UYmcjSKj4fkbrwITrf3cVAigz6tEVVahPTHdEeqTC6X9uy7+2ORhi+AvDKYSsA7ZP8GKZIITBVjutKHxtox+mX6XXuVu3zYQO3Pp9S+KjpLQNeItZO5b7NHNoVcRJOObXZkg==
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=s5PL1NmXDbMegVT5M1N6mCB6DOySvIDls9rbNkrvwiM=;
 b=riyAY7yNnKamOOyTc+B5xcPKlALEqDOMed+KYZEiBpfgd89O9y8nPSlhVxSy9LQiw0fB8RKhfDrz0jxBibeDGMKnV1BTNACVbf2ADRDOsB4Q2nqt/nPhNVHx8PMOblSsBkrAq6Jvv1zsVCTd99BlFGMFBzk96Srt0ph/bxxfkOo=
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=SATLEXMB03.amd.com; pr=C
From: Jiqian Chen <Jiqian.Chen@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v11 1/5] vpci: Use cleanup to free capability resource during deassign
Date: Fri, 8 Aug 2025 16:03:33 +0800
Message-ID: <20250808080337.28609-2-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250808080337.28609-1-Jiqian.Chen@amd.com>
References: <20250808080337.28609-1-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB05.amd.com
 (10.181.40.146)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF000066E6:EE_|CH3PR12MB7499:EE_
X-MS-Office365-Filtering-Correlation-Id: c9824d61-7052-4ed6-a7db-08ddd6521ee7
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|82310400026|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?SUNIcTNPZnA1MlN2QVdOUWxZeDIrRW9JTnNsczRVSW9xbE5FZXhjbDJBS3Bu?=
 =?utf-8?B?bWxSTWNYZTl5Z2EwZkRRVjNzOUFtakJXYjQ0YmVZeGJTUnpWaGtBN1krUEhH?=
 =?utf-8?B?RGtUT1NJeU5EeTRMNFZNeVFEQ0kzQ2NHVDRwZ3lka1Urczc5d0VrcmdiNlVW?=
 =?utf-8?B?TkhxNlk0OXVUR3QzTFM5b21KeE50YmYrM29wUU9YNVB0emQwN0M0Y2JTc2VK?=
 =?utf-8?B?N2ErVm55a1grV3Joamx0VmxsS0xlQWpsa0JYSENSVnZ5RGQ2alFjOHg0Vk5y?=
 =?utf-8?B?NzhOTk53bHdVVlozaGs3VUQ4SWVIdzFPSEVYU2VBS29USGNQelp5UWJ2MkZT?=
 =?utf-8?B?ZUcvTzdnQzdxNzI1UmdiUHE2UzkyWU5ORGJMYTlLUlc5VHZ6em5zV2lVS2xV?=
 =?utf-8?B?eVRZRDY5anJPdE9oUHFhMEMrendrcEh1RVdlblI1ZUVmWWVpWWZnUUR5ZVBl?=
 =?utf-8?B?TC9tYTViaXVtUVhwUGFWRmUwYWZoR3JMQW0yZ1V5NWVkaDVGUnlic1d3OFE0?=
 =?utf-8?B?bFFCM1Nub2VGdXFxeEdoaHZ2Q0RuOVFZb0pwUDRGbGx5bG5rREJwU051dit0?=
 =?utf-8?B?eXc4eVZQbCtPYjdycDJ1dWxxdFVvclFrMkp2M3dzZ3l2aXBWNnI2RysyRWFD?=
 =?utf-8?B?VG8wbTZVRVVsdE5NdWJUTzdGalZSRGdwTXJYQlphdGlmU21wUXUyRlMrbUo5?=
 =?utf-8?B?VVBKUk9Oa0ErQzc3eENyQkZuN29NclBWTmFpcjdnYjh4OCtRM1NVTy9ZZjBT?=
 =?utf-8?B?QldHTXhybCs3VzkwNDl5MGp0ZkdqcHk1aUVsNDFwazc5YjE1bGJHM2RTNW9F?=
 =?utf-8?B?ZnErTzFLbWVTbGxFelZsU0RNR2tabEVVYmJleHZuT2J5b2k0OThUOXpnOE5E?=
 =?utf-8?B?M2JoTHZHU3dYTVF3UWZpYy96QnREblVLUGVYWUMycGVpWU1VZUxtbTdQMG55?=
 =?utf-8?B?eldHditpZ0hIR2JjOUw3OWNXVWVwcFhZT0FYdzVVeUdDYWIrcGlKMGFZQm5R?=
 =?utf-8?B?VXBxV1hlaFlzL0lyanM3VzJ6WXRhamVnMUVoMEJBRDQveHRyemY5MysrWDM5?=
 =?utf-8?B?Y2NZVDdnU2pPMFpRcVZTSDE4c3h4RTZmYU5iRkFra1pkMVV1VE91bE5DZUFz?=
 =?utf-8?B?b2o0UDJlWG9uLzBub1pMcEhaR242WE13YVlGKzB3R0hIOFRqYUdEVm83ZmxT?=
 =?utf-8?B?aGxHWS85OVRmenhOZGV3bTNPeEhHTTVqa0JVVXJISEorRkZoZTlCTEdXZTg3?=
 =?utf-8?B?dVBXSktPSlpoQnVVOXVSVmcveVFlMXorNU1zdHZhNjJVMm11b2xSaXFCK0ZC?=
 =?utf-8?B?RjlOdzE3MDh0OVFpS2hFelg1dUQ5MG1Ba3paVldHOHl1M2hOT243My9iaUNW?=
 =?utf-8?B?UVZWamU3ekxpY1JwRmoyYkJBZVZkRzMrY3ZTRklaS0NmN3lNbVhJakF4S2dS?=
 =?utf-8?B?YjB1M3UrdGUyYkhwZ2dTWDFqazl4REt1VDRYQ1MrdEpJci9jQy9VSHBOK08y?=
 =?utf-8?B?dGVzVDFSeTc1bmd6N3JNS2dCbFdBNW9ERk5EUXd2OXJwM1dGVlpRTzljWlpV?=
 =?utf-8?B?WFB6eU9MTnNsNU40NVQzd05yOXNCd1BpTTdEbWJ0aEFFT3VHZWhiZXoxRlg4?=
 =?utf-8?B?bDdnL042d1JOUGx1SUExWE84cytQQVlnMWZKbkZ0NkYzblBOMU9mSDRLOVZE?=
 =?utf-8?B?Mjd2dEdWdXh2QjVNcFNWN0wyZ2RDMlJuR0NTNTg1Q0YvQkpYV216TWZlaWx0?=
 =?utf-8?B?elRWQmpOcHQ1ZXdrNmVnWUpxbmVsZmkzOUsxNnZqTWM5NlF6dUl1NFNEeld2?=
 =?utf-8?B?TTB6d3JoQzlwWm0yR040TXpCZGdFeWdqZGRCNHNCZXlXYXZ6SDBDYzVtbEVa?=
 =?utf-8?B?UFcvYVkwRjNiSEZ0V29ObE5CQU1NbHEvVWhhaHhrckQvSG9WVnM3cFlFWElx?=
 =?utf-8?B?b2tLV25VM1ZqWk04MThVN2FBdUU1K3licElRdWFkd2Riazg1SEcyQlNpR2N2?=
 =?utf-8?B?WjdxaExFWk1URG45ekIxN2NjVWVZc2pLanR3bk84b081SjlCdURrR0RCbmpJ?=
 =?utf-8?Q?EqyOxO?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Aug 2025 08:03:54.9277
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c9824d61-7052-4ed6-a7db-08ddd6521ee7
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF000066E6.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB7499

As cleanup hook of all supported capabilities will be implemented in
follow-on changes, so to pre-call hook in vpci_deassign_device(), and
the capability specific clean open-code in there will be removed by
follow-on corresponding capability changes.

Since vpci_deassign_device() and vpci_init_capabilities() require
different cleanup actions, add a boolean parameter to cleanup hook
to distinguish them.

Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
---
cc: "Roger Pau MonnÃ©" <roger.pau@citrix.com>
---
v10->v11 changes:
new patch.
---
 xen/drivers/vpci/vpci.c | 25 ++++++++++++++++++++++++-
 xen/include/xen/vpci.h  |  2 +-
 2 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index fd02718b47ea..120a919f08e3 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -280,7 +280,7 @@ static int vpci_init_capabilities(struct pci_dev *pdev)
 
             if ( capability->cleanup )
             {
-                rc = capability->cleanup(pdev);
+                rc = capability->cleanup(pdev, true);
                 if ( rc )
                 {
                     printk(XENLOG_ERR "%pd %pp: clean %s cap %u fail rc=%d\n",
@@ -321,6 +321,29 @@ void vpci_deassign_device(struct pci_dev *pdev)
                     &pdev->domain->vpci_dev_assigned_map);
 #endif
 
+    for ( i = 0; i < NUM_VPCI_INIT; i++ )
+    {
+        const vpci_capability_t *capability = &__start_vpci_array[i];
+        const unsigned int cap = capability->id;
+        unsigned int pos = 0;
+
+        if ( !capability->cleanup )
+            continue;
+
+        if ( !capability->is_ext )
+            pos = pci_find_cap_offset(pdev->sbdf, cap);
+        else if ( is_hardware_domain(pdev->domain) )
+            pos = pci_find_ext_capability(pdev->sbdf, cap);
+        if ( pos )
+        {
+            int rc = capability->cleanup(pdev, false);
+            if ( rc )
+                printk(XENLOG_ERR "%pd %pp: clean %s cap %u fail rc=%d\n",
+                       pdev->domain, &pdev->sbdf,
+                       capability->is_ext ? "extended" : "legacy", cap, rc);
+        }
+    }
+
     spin_lock(&pdev->vpci->lock);
     while ( !list_empty(&pdev->vpci->handlers) )
     {
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index 17cfecb0aabf..4b7b9298c4e8 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -17,7 +17,7 @@ typedef struct {
     unsigned int id;
     bool is_ext;
     int (* init)(struct pci_dev *pdev);
-    int (* cleanup)(const struct pci_dev *pdev);
+    int (* cleanup)(const struct pci_dev *pdev, bool hide);
 } vpci_capability_t;
 
 #define VPCI_ECAM_BDF(addr)     (((addr) & 0x0ffff000) >> 12)
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 08:04:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 08:04:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074091.1436799 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukI58-0000p3-8x; Fri, 08 Aug 2025 08:04:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074091.1436799; Fri, 08 Aug 2025 08:04:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukI58-0000mY-2m; Fri, 08 Aug 2025 08:04:06 +0000
Received: by outflank-mailman (input) for mailman id 1074091;
 Fri, 08 Aug 2025 08:04:05 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mRAb=2U=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1ukI57-0000NJ-9h
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 08:04:05 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on2062a.outbound.protection.outlook.com
 [2a01:111:f403:2415::62a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3f29db0e-742e-11f0-a324-13f23c93f187;
 Fri, 08 Aug 2025 10:04:04 +0200 (CEST)
Received: from SJ0PR13CA0210.namprd13.prod.outlook.com (2603:10b6:a03:2c3::35)
 by IA0PR12MB8085.namprd12.prod.outlook.com (2603:10b6:208:400::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.18; Fri, 8 Aug
 2025 08:03:58 +0000
Received: from CO1PEPF000066E7.namprd05.prod.outlook.com
 (2603:10b6:a03:2c3:cafe::b9) by SJ0PR13CA0210.outlook.office365.com
 (2603:10b6:a03:2c3::35) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9031.8 via Frontend Transport; Fri, 8
 Aug 2025 08:03:58 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CO1PEPF000066E7.mail.protection.outlook.com (10.167.249.9) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Fri, 8 Aug 2025 08:03:58 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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; Fri, 8 Aug
 2025 03:03:57 -0500
Received: from cjq-desktop.amd.com (10.180.168.240) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Fri, 8 Aug
 2025 03:03:56 -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>
X-Inumbo-ID: 3f29db0e-742e-11f0-a324-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=JVD+rExi1qyn4QuulvuawVC37J7wQvzVpLfMD/7XjQtZyp6jUlQUL25HJZk7svywGtQbaiwzASfmQfvnb/6DtR+bROtclIqaPX2YMM2a0sZaHna8zLOcxTvbg1lWY1+DzEg0QKy0Df28p0sTO6ezfCK3pzlv0uQW4NbbllpKpNfP18JrRY4v3OxsfWZjwu0R3VqRJA7egoufdZ5An0a75CmVyhYNbR/SGD+T/H7dCSMddS+JNmYMoDfnOxLNtGkfBbUMxwFLellzoVimoXNVxCdTh6wIr9qQp+Ad3qt8iK3CHkzuJ57z2mI65SSjRmmAb6YXvvryTCh+FmnSVy+1pA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=yBv3jlSFwccpU8t5cui6kDODepuc2n9RRMkKvA1OlLw=;
 b=HeivYsUPpJ7uJJd8WHqPFTKsOKXDUw+yDg0ndmWIVznSMPj6kobLxLbxyKckk+h7kNMqqNFVFU0VKSD/QiY9j0wT6KH2ZagwjCzpAkaU8umNRY4MXy2x5/NouoEkuf3amg+a4em0Y4Iv1ew56XRv7CoiUiMJNKqb5BI0m5n7YvY27PWGZJrpav8RZfU1aai8jQjtfkrhlQuSEzf6LpJYE2+zMv/csveVLd1R4ZjZSnkFQtJLPZsCycZCte/tjBVMRoaUE3wUPan9Y+0lUhyp0LGhyYsHuMmgLLArA8TuZxIAxV0l1VrqWSZzAXhEV1lG+Fw9qEr7do18iKOkynR7HA==
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=yBv3jlSFwccpU8t5cui6kDODepuc2n9RRMkKvA1OlLw=;
 b=QG7TrbY+nOiOtk+g4nVhNqbVOjBXHgE28rLy6MT1Jxv+AcjktcSuhcn1Tb1hsXYAg04pHYawstpQlyY/4V/vYZvIYWWscAWpDdBtz2LdE6nmlFxY5WSg/OcJ5xZSiCeIgmYOPUvvsY4GFjjMnt1fPUR7zJU0LSarTvcTO1hDxAU=
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=SATLEXMB03.amd.com; pr=C
From: Jiqian Chen <Jiqian.Chen@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v11 3/5] vpci/rebar: Implement cleanup function for Rebar
Date: Fri, 8 Aug 2025 16:03:35 +0800
Message-ID: <20250808080337.28609-4-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250808080337.28609-1-Jiqian.Chen@amd.com>
References: <20250808080337.28609-1-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB05.amd.com
 (10.181.40.146)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF000066E7:EE_|IA0PR12MB8085:EE_
X-MS-Office365-Filtering-Correlation-Id: a104aeef-552e-437c-623b-08ddd65220cf
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|82310400026|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bzZEc3VqVFdPZml1QWhsRWZoZFowcG9YeWYzdDhwMDBQOVhtTU5MbEkxYkZH?=
 =?utf-8?B?NlNkM0c5eWhQNnlEZ3JUV0laNmM1cDdqQzNFNUFiaHdFYUVObGdXSUZGYTBZ?=
 =?utf-8?B?RUt1TVhuZUhqMGNTdGkvcjVoem1VU05leXlXaElUbHBpSDF6bzBrTXJFaDlJ?=
 =?utf-8?B?d0ZMb2d3NlJmdzExMXA3YTlGek5SVWJXaVFUQXVGSzFVdjc0M2lhcHJ3Nkho?=
 =?utf-8?B?dGs0ODJ1aWV0SHE2N2hJejRDTW5yaFpicjJMM3p5UlQ3b0w5Yyt2ejV2M1ZV?=
 =?utf-8?B?RjcwSEdTc1o3WTdIdUlQazFWNG5EdGRYbUJtSUQ2M2pINVJ1Yk9RWmF2Y0g0?=
 =?utf-8?B?MDhDdEsvS1puU0x5dDMrUU9hTnhQNUxicVlhdENVZy9SVk4vQzhDZERNUGRr?=
 =?utf-8?B?NFV2U3lia1M1NXY5SHhNMGxhUWpqcUFlN3dzcU8wTmdDSWROUU5IYisyM1RS?=
 =?utf-8?B?WnVtRXJmTTZUTFlJTWkwNmhvVURMTDNGQ2lZaTBOOGFKc2dFS1pHTzF4VDhU?=
 =?utf-8?B?cmtvL1RLbkpkc0dBa3ZTWklCTmV2eExqVk9WaS93anZSVUZVM1FJUHkvVk1R?=
 =?utf-8?B?TmRvL3BTU2UwSzZmYXVSaThmMUp1VC81dE05WHlKYmU4RXI0Yi9zaHh0dDlm?=
 =?utf-8?B?eGZHRldBY20weW1TUkd2TzFEdi9ubDRmMzg1MEt5MTdaU0ZuVkE3ZG5yMlBN?=
 =?utf-8?B?Y3ptMktxMkx5TkpRRzYrYzlieE1abG82RmNIbXdZUFVwMCsxZ0hwck44TXJm?=
 =?utf-8?B?QnJoazJQWG1hTmlnVEtpQm9BQVNtTzFqZzU0QWhFSlRZOEF1SzlRVkl0N0pa?=
 =?utf-8?B?bUtubW1kdjhjd3FsaUVKMnpCbUNuWURoUm4vbWVNemtGNnRJN21BeU03cXNM?=
 =?utf-8?B?d0MyZjNYZExaTEJ5SytkUERSQ29mbUdMRnpnUUl4Zzd4K1k1YTRMVEhaVkpY?=
 =?utf-8?B?eEdLSEg2cTNXcWFHdUVSeHhQTk1vTnBMN1BQVkppV1l3R25jYUJRaXlEUTc4?=
 =?utf-8?B?Zk4wTVo5aVdJbUROQStKU0FuRUUwekRNL0R0bFg4OU5HZlRRbXE3VDVhbkxB?=
 =?utf-8?B?SmJXaW9HajNBYStRWEswdUxVNHBjL1RVRXFEL0hhZnJHbDZjckpISlhhbzdm?=
 =?utf-8?B?UU5GL250Wm1GSkRhZDVRTk10OW9KL003UDdNNFFZRTBYYzZHdHRlVDNmNURB?=
 =?utf-8?B?U3EzOWJEZzNIbTVXUDhKQjFBSkY3ZVVLZEMzdVhPbG9JZU42ZXJHa1NSVEV2?=
 =?utf-8?B?Z25ieXJtNzUxdDlweStBamV2d1BkdzBEcWFUaCsyV3A4WHNHcVdhcUxZcXZp?=
 =?utf-8?B?cFUrbnVZN0VFT0w5ZndBV2lsc0lqK2ZzakNWZjVwMWJVdnUyUzZ6NXprZUlS?=
 =?utf-8?B?NlZOakhLWWk0VzkyRGNSajZEUnN0b3VvMTFOa0hEU09oMkF5QlhxdUNUcHJS?=
 =?utf-8?B?UHJMalkxVXpuMUdldDRuZXFTakUwUzFTM2w4aHJmVUQrbnJ2blR5Q0Q0enhI?=
 =?utf-8?B?YjBXTEI5QVdWd3plQnI1YzZocytLNE9Na05IcXUza3hhQU1BRTIwR2xteXBU?=
 =?utf-8?B?cXROOUNvajNYNEtBMjJyR01LbVVUdTN0V3JJc1BvL0drTlJyd2RMcUZTWWtX?=
 =?utf-8?B?RkhuQXdzdFR6cXFaWDEwMkFJajFDTUhMVis2OHFIa05FVW5yTWllSWUwaCtM?=
 =?utf-8?B?V0s3aDU5dmtXdk9QTGtvTmI2M2dZdXlDSnBhcjd0dzUxM1JvVS9WT0JPNCtp?=
 =?utf-8?B?Qll5SCs5bnZoYVJEMlNwVEQvMFdKQzFhbW5nZUp3aFd0OFh3bERoWmM5L0NU?=
 =?utf-8?B?RFl6bWVSbWhXc0lGWUxzTjRBUXExeEJTcU5rRFE1bTY0cDdJSXV0MHMzQlF6?=
 =?utf-8?B?ZlNmNzFrUmxtNlNRczk3WTdpOTNQanBET0NyQjE1ZzFOUmE4Q3JKRnd5Q3BR?=
 =?utf-8?B?S0RJUTVFbWFxYTUySU9Ic01UR094UWFnRm5OME44WmFaeEowOTJwWnhKOUdZ?=
 =?utf-8?B?bkdOZS80VmZuYkhkK20wSHM4UEV0ODU2WjlqNzRzQ0tnRkZCRnBxMTRyc3l2?=
 =?utf-8?Q?CNQCVt?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Aug 2025 08:03:58.1254
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a104aeef-552e-437c-623b-08ddd65220cf
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF000066E7.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB8085

When Rebar initialization fails, vPCI hides the capability, but
removing handlers and datas won't be performed until the device is
deassigned. So, implement Rebar cleanup hook that will be called to
cleanup Rebar related handlers and free it's associated data when
initialization fails.

Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
---
cc: "Roger Pau MonnÃ©" <roger.pau@citrix.com>
---
v10->v11 changes:
* Add ASSERT_UNREACHABLE() when vpci_remove_registers() fails
* When hide == true, add handlers to let Rebar ctrl be RO.
* Remove Roger's Reviewed-by since patch change.

v9->v10 changes:
v8->v9 changes:
No.

v7->v8 changes:
* Add Roger's Reviewed-by.

v6->v7 changes:
* Change the pointer parameter of cleanup_rebar() to be const.
* Print error when vpci_remove_registers() fail in cleanup_rebar().

v5->v6 changes:
No.

v4->v5 changes:
* Change definition "static void cleanup_rebar" to "static int cf_check cleanup_rebar" since cleanup hook is changed to be int.

v3->v4 changes:
* Change function name from fini_rebar() to cleanup_rebar().
* Change the error number to be E2BIG and ENXIO in init_rebar().

v2->v3 changes:
* Use fini_rebar() to remove all register instead of in the failure path of init_rebar();

v1->v2 changes:
* Called vpci_remove_registers() to remove all possible registered registers instead of using a array to record all registered register.

Best regards,
Jiqian Chen.
---
 xen/drivers/vpci/rebar.c | 66 +++++++++++++++++++++++++++++++++-------
 1 file changed, 55 insertions(+), 11 deletions(-)

diff --git a/xen/drivers/vpci/rebar.c b/xen/drivers/vpci/rebar.c
index 3c18792d9bcd..91d5369d75e2 100644
--- a/xen/drivers/vpci/rebar.c
+++ b/xen/drivers/vpci/rebar.c
@@ -49,6 +49,57 @@ static void cf_check rebar_ctrl_write(const struct pci_dev *pdev,
     bar->guest_addr = bar->addr;
 }
 
+static int cf_check cleanup_rebar(const struct pci_dev *pdev, bool hide)
+{
+    int rc;
+    uint32_t ctrl;
+    unsigned int nbars;
+    unsigned int rebar_offset = pci_find_ext_capability(pdev->sbdf,
+                                                        PCI_EXT_CAP_ID_REBAR);
+
+    if ( !rebar_offset || !is_hardware_domain(pdev->domain) )
+    {
+        ASSERT_UNREACHABLE();
+        return 0;
+    }
+
+    ctrl = pci_conf_read32(pdev->sbdf, rebar_offset + PCI_REBAR_CTRL(0));
+    nbars = MASK_EXTR(ctrl, PCI_REBAR_CTRL_NBAR_MASK);
+
+    rc = vpci_remove_registers(pdev->vpci, rebar_offset + PCI_REBAR_CAP(0),
+                               PCI_REBAR_CTRL(nbars - 1));
+    if ( rc )
+    {
+        printk(XENLOG_ERR "%pd %pp: fail to remove Rebar handlers rc=%d\n",
+               pdev->domain, &pdev->sbdf, rc);
+        ASSERT_UNREACHABLE();
+        return rc;
+    }
+
+    if ( !hide )
+        return 0;
+
+    /*
+     * The driver may not traverse the capability list and think device
+     * supports Rebar by default. So here let the control register of Rebar
+     * be Read-Only is to ensure Rebar disabled.
+     */
+    for ( unsigned int i = 0; i < nbars; i++ )
+    {
+        rc = vpci_add_register(pdev->vpci, vpci_hw_read32, NULL,
+                               rebar_offset + PCI_REBAR_CTRL(i), 4, NULL);
+        if ( rc )
+        {
+            printk(XENLOG_ERR
+                   "%pd %pp: fail to add Rebar ctrl handler rc=%d\n",
+                   pdev->domain, &pdev->sbdf, rc);
+            return rc;
+        }
+    }
+
+    return 0;
+}
+
 static int cf_check init_rebar(struct pci_dev *pdev)
 {
     uint32_t ctrl;
@@ -80,7 +131,7 @@ static int cf_check init_rebar(struct pci_dev *pdev)
         {
             printk(XENLOG_ERR "%pd %pp: too big BAR number %u in REBAR_CTRL\n",
                    pdev->domain, &pdev->sbdf, index);
-            continue;
+            return -E2BIG;
         }
 
         bar = &pdev->vpci->header.bars[index];
@@ -88,7 +139,7 @@ static int cf_check init_rebar(struct pci_dev *pdev)
         {
             printk(XENLOG_ERR "%pd %pp: BAR%u is not in memory space\n",
                    pdev->domain, &pdev->sbdf, index);
-            continue;
+            return -ENXIO;
         }
 
         rc = vpci_add_register(pdev->vpci, vpci_hw_read32, rebar_ctrl_write,
@@ -97,14 +148,7 @@ static int cf_check init_rebar(struct pci_dev *pdev)
         {
             printk(XENLOG_ERR "%pd %pp: BAR%u fail to add reg of REBAR_CTRL rc=%d\n",
                    pdev->domain, &pdev->sbdf, index, rc);
-            /*
-             * Ideally we would hide the ReBar capability on error, but code
-             * for doing so still needs to be written. Use continue instead
-             * to keep any already setup register hooks, as returning an
-             * error will cause the hardware domain to get unmediated access
-             * to all device registers.
-             */
-            continue;
+            return rc;
         }
 
         bar->resizable_sizes =
@@ -118,7 +162,7 @@ static int cf_check init_rebar(struct pci_dev *pdev)
 
     return 0;
 }
-REGISTER_VPCI_EXTCAP(REBAR, init_rebar, NULL);
+REGISTER_VPCI_EXTCAP(REBAR, init_rebar, cleanup_rebar);
 
 /*
  * Local variables:
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 08:04:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 08:04:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074087.1436773 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukI54-0000NW-5I; Fri, 08 Aug 2025 08:04:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074087.1436773; Fri, 08 Aug 2025 08:04: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 1ukI54-0000NP-26; Fri, 08 Aug 2025 08:04:02 +0000
Received: by outflank-mailman (input) for mailman id 1074087;
 Fri, 08 Aug 2025 08:04:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mRAb=2U=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1ukI52-0000NJ-JT
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 08:04:00 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on2060b.outbound.protection.outlook.com
 [2a01:111:f403:2415::60b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3ceabe82-742e-11f0-a324-13f23c93f187;
 Fri, 08 Aug 2025 10:03:59 +0200 (CEST)
Received: from SJ0PR13CA0207.namprd13.prod.outlook.com (2603:10b6:a03:2c3::32)
 by MN2PR12MB4061.namprd12.prod.outlook.com (2603:10b6:208:19a::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.18; Fri, 8 Aug
 2025 08:03:54 +0000
Received: from CO1PEPF000066E7.namprd05.prod.outlook.com
 (2603:10b6:a03:2c3:cafe::86) by SJ0PR13CA0207.outlook.office365.com
 (2603:10b6:a03:2c3::32) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9031.8 via Frontend Transport; Fri, 8
 Aug 2025 08:03:54 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CO1PEPF000066E7.mail.protection.outlook.com (10.167.249.9) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Fri, 8 Aug 2025 08:03:52 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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; Fri, 8 Aug
 2025 03:03:52 -0500
Received: from cjq-desktop.amd.com (10.180.168.240) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Fri, 8 Aug
 2025 03:03: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>
X-Inumbo-ID: 3ceabe82-742e-11f0-a324-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aXSrTRhPELm82XuCircHYQQZeyRAr5oWH/QT8NcSterq1oPBo5LX1IKmAKyPLEcGR1dYnGIv2AoFWcqtWJQzld/YuSKmMMekHmDRJJC3Fc4m+zE3/hty3FPNXoRZqB376V8EL2fI1j1ggzyTEAQUKHCKWLR4v9RkcXd8c1Jj9wi8x3tMOK4C+wLtZMZcELcrQuT++up2c0BrpkFJuKgjXTQi4guBPLgesJ9vazxbTZ2uYez83oFRG0oKIr8uFzJFHiMGDqastk79HoltnSYnH62frU5gWmNJAiHgKle/kPoewNaZBaF8bztgvnsJHxJcI+klKJ41r8a/bi39u0bJvw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=PbkZOn+6Yp13WyrcBqTHgOEVpIDCAULsuben0T5moQM=;
 b=tU/mDtnJ7BP6R3HHkHfQh/vqDv79j45cVIXiTY1NGFk2Hb4SccLQO8bTUzqPzWxjy6oUl1SIEfEx9GTnnNAHIiPXKgZ5Oyb+U4gAyuVrUyV9gaQxdWKTU0lwLiz9TNveQnTfusw/rpXH4vUHlgL1/p6keTim7vy8wtxtiCRVTla9Wr60iEBZJrzDkme4EMXJsmIziJhSs6XcPtyBPMqXMC9IfgLQ9jRWt7mq5EkWPNGb0SxdPt2yxxEoQFZDyK/ukMU65DY72jo/qTdrxBoTKqsxDmxenpTuyyojcR1aetB4DVKZNpKmfZS8C+bCQ61K/Z7Qw2bVuw2eVWsIxMMgZQ==
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=PbkZOn+6Yp13WyrcBqTHgOEVpIDCAULsuben0T5moQM=;
 b=OkFPMZ/R9MIaa93NglELlL4hV1GWSAKLIh9ry+pdho4sCattCHqxSOWV0UDjLijecvYQSSAKYSqkFfNavcxASsml51fxEuR/7SOylA14VAjmmW+rC++036yBfLN+6i7Pyq36C234cMXoEcjYT4mneedCXDrDtkK9ZhbfjvUh6qo=
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=SATLEXMB03.amd.com; pr=C
From: Jiqian Chen <Jiqian.Chen@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>
Subject: [PATCH v11 0/5] Support hiding capability when its initialization fails
Date: Fri, 8 Aug 2025 16:03:32 +0800
Message-ID: <20250808080337.28609-1-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB05.amd.com
 (10.181.40.146)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF000066E7:EE_|MN2PR12MB4061:EE_
X-MS-Office365-Filtering-Correlation-Id: b1807d93-9d99-4fe0-4822-08ddd6521da7
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|36860700013|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?d3dEbkNzcGdVVnl1bXNwb0ZVbEhHeHFyZjlvZ0JocHdGODZhSmdua014cXNp?=
 =?utf-8?B?RnB6QlgvcTBsTTcvUzE4MVI2eUNnV3VlL201OVJPU2lxZGhXZ3RNSnUzb1Zq?=
 =?utf-8?B?dTNHN1VMZkozNng3R1dra0FwL082Z0EwcGMyai9UdVR3aDNIaFRMR2diOEgz?=
 =?utf-8?B?MkJ3WUJJaVhGc2d1amZCVldtRW4xb3hmbTBhZFFTQ1RBNXFSK2lKYTNPMjBp?=
 =?utf-8?B?UE1IUUVqMnJidVJOS0k2cDVQRXF3RVdOUDR4VmVEYzFBMW9PNmthQWtEUE1w?=
 =?utf-8?B?UnVkT01jKzlMMEpVVlhpMWpmQ0hiVzBGN2F4S215MVBUWnU3aDltSFRCalEw?=
 =?utf-8?B?TFkyd280NUhONk9xRHhNM25wbC8yTDd6UzVTR3lqcm1kYWVZZytGb0d1NVV5?=
 =?utf-8?B?TytSM1hkLzZPKy9PNXV1T2RwY3NuUlF4SlVTenhZS0Y1bllEdDJxa3hadWQw?=
 =?utf-8?B?Q1NzL0IzTmZ1MmN1SmczaG05L0QvUG1iZVQvbk9mS3NTbWFoUE5hWkJZNlVl?=
 =?utf-8?B?WjBTYjFQRkNrWU9iaGtNckZyYkxkYm56cWR1R3R0QlJuenltV01saERrYzZS?=
 =?utf-8?B?Q2J3YnF6c1JJTkU2K2dMZ21EWmE2b1hlbUVidExJQU1uMkVpcHh5N3ZEWjJo?=
 =?utf-8?B?R2xUcHk4OWlsR3NzeUh4WkozRWdGUHZBcUQrVE12L2VIVmhMd2t5RUlvcEN1?=
 =?utf-8?B?bGZ0TkJ2c3gveDRNOWpLako5ekJ6M0pVTmJFcmIwSEFOcXBYelhZS0JiV2Y4?=
 =?utf-8?B?ckhCU1IvUG5WWUdsdnhLQlpKOCttMlJuaGNQQUNOOFpNOEs4YUlUcWdTR2Fr?=
 =?utf-8?B?UjdsWEpiRXBNeUh1dm84dm1OMmM1SFRsWFVIcmhUMkUrb05RcjJ3WUNBZWg1?=
 =?utf-8?B?SXZZL3dkUTh6WFhsVmxaSFdTaEJCUTBEL0F0anZWQXJPVk92MjFjdGlQdG5X?=
 =?utf-8?B?MUpOVmZtNGU1QmVHZG81cDlqSHZFUFgvRHNhSHFuclUvTEtQcHhiUW1XN0RI?=
 =?utf-8?B?cGV2dzJ5aDhXU1dVS0x1NGkyT09xZ2RWaTh2YU10M083cjVmL1lJaFplaFY1?=
 =?utf-8?B?WmR2NEpuRkY0STl3T0QrOWgyRllLTnZVSFpyN0hTM25hZ0RjWHBxY0hsYWlr?=
 =?utf-8?B?NHdvUkRJa0thdWVxdlllK25TMlVSRkU2MXZBZWRGcVdZN09hRkxHT0ZTRHNh?=
 =?utf-8?B?d1JNcExESDQ5OExsWDRvV2ZhWmZCR0cxUzZRNldZUFR4d3ZUTFdoblpQRTNG?=
 =?utf-8?B?K3FwdG5wZk1aK0UvU2pjakNHOTRWMTE5K2E1ZURKMS9oMHA0TldxbWxrR1Ev?=
 =?utf-8?B?bVZoRUpNTjExOUdpK3VQQnEyVDZma1QySEQ2bkR0UEFYTlhXVmcyTTZkdWRn?=
 =?utf-8?B?Rk9oZy9PbnpzM3VoU0dBejN2cTVndW9VRGpvMVd5OVM0bFlHQUpTdGxDWUcv?=
 =?utf-8?B?MUFoMS9NQmJMK3ZjVWcxWXlSVGZLN3FlbXAwMzNEUWNYVkNqemEwRXZhL1Bi?=
 =?utf-8?B?TGRzQi9ieFJzejQrVS95Ky94Y1dTQWl0eTJteFd6M080c1VIQTZ5bnFwY1Rz?=
 =?utf-8?B?a21ZL0R1Yk1ScUp1bXBWV1F0dWhlU2prNjFWaUNIYTVXMitTSkdnOFhPUWRJ?=
 =?utf-8?B?MXQ1SjBGNjRzdWYrMHhXa3JLS283OXJVamNkWU1Ra1p3b3FvcjAzeWtzN3JN?=
 =?utf-8?B?ZGNkYTZYd0pTZFlaQ2p5Z1psSE9SMVZwaHZnVzE1ZnFHd0NvaUVKUnYzZzh3?=
 =?utf-8?B?ZXpFNUlkTVFQc3pjQjBjYXEyeWpvaVBGcTZiVFNGVFlrMUtJYlo1bWFEV3Y4?=
 =?utf-8?B?ZTFwaTYrNzdVclFWalRER05OOVpwV0xIbGVCU0FmWkxZQU1TTXdGbktBUTBJ?=
 =?utf-8?B?N1lnbC90dzIvYXdqdjlEUWRCYW02dys5MTcyMnRPS3JDRmcyQy9FMkZuU3I1?=
 =?utf-8?B?SjlYbEUvaGhEaUs5U0lxYno3QkJuVnU2cktTMUNYZXBUa0lyQzV4M2x1SXg4?=
 =?utf-8?B?bFF5c0lyY1NWV3lZWkluczFMM3FWTGxoYmh4L1Y1cXNpcmpsbHJYaXlJL0NS?=
 =?utf-8?Q?XSWKeo?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700013)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Aug 2025 08:03:52.8297
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b1807d93-9d99-4fe0-4822-08ddd6521da7
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF000066E7.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4061

Hi,

This series is to
emulate extended capability list for dom0;
hide legacy and extended capability when its initialization fails;
above two parts had been merged.
remove all related registers and other resources when initializing capability fails, including patch #1, #2, #3, #4, #5.

Best regards,
Jiqian Chen.
---
cc: "Roger Pau MonnÃ©" <roger.pau@citrix.com>
cc: Anthony PERARD <anthony.perard@vates.tech>
---
Jiqian Chen (5):
  vpci: Use cleanup to free capability resource during deassign
  vpci: Refactor vpci_remove_register to remove matched registers
  vpci/rebar: Implement cleanup function for Rebar
  vpci/msi: Implement cleanup function for MSI
  vpci/msix: Implement cleanup function for MSI-X

 tools/tests/vpci/main.c  |  8 ++---
 xen/drivers/vpci/msi.c   | 49 ++++++++++++++++++++++++++-
 xen/drivers/vpci/msix.c  | 47 +++++++++++++++++++++++++-
 xen/drivers/vpci/rebar.c | 66 ++++++++++++++++++++++++++++++------
 xen/drivers/vpci/vpci.c  | 72 ++++++++++++++++++++++++----------------
 xen/include/xen/vpci.h   |  6 ++--
 6 files changed, 200 insertions(+), 48 deletions(-)

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 08:04:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 08:04:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074090.1436794 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukI58-0000ih-0Q; Fri, 08 Aug 2025 08:04:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074090.1436794; Fri, 08 Aug 2025 08:04: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 1ukI57-0000hf-R2; Fri, 08 Aug 2025 08:04:05 +0000
Received: by outflank-mailman (input) for mailman id 1074090;
 Fri, 08 Aug 2025 08:04:05 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mRAb=2U=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1ukI56-0000NJ-Up
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 08:04:04 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on20621.outbound.protection.outlook.com
 [2a01:111:f403:2406::621])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3f881b32-742e-11f0-a324-13f23c93f187;
 Fri, 08 Aug 2025 10:04:04 +0200 (CEST)
Received: from SJ0PR13CA0206.namprd13.prod.outlook.com (2603:10b6:a03:2c3::31)
 by DM6PR12MB4139.namprd12.prod.outlook.com (2603:10b6:5:214::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.18; Fri, 8 Aug
 2025 08:04:00 +0000
Received: from CO1PEPF000066E7.namprd05.prod.outlook.com
 (2603:10b6:a03:2c3:cafe::e6) by SJ0PR13CA0206.outlook.office365.com
 (2603:10b6:a03:2c3::31) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9031.8 via Frontend Transport; Fri, 8
 Aug 2025 08:03:59 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CO1PEPF000066E7.mail.protection.outlook.com (10.167.249.9) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Fri, 8 Aug 2025 08:03:59 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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; Fri, 8 Aug
 2025 03:03:59 -0500
Received: from cjq-desktop.amd.com (10.180.168.240) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Fri, 8 Aug
 2025 03:03:57 -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>
X-Inumbo-ID: 3f881b32-742e-11f0-a324-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MJrBX/zGQfApatTe+tVlk7YokxMY+bESiR8r/zleobIFu59ygifi3qPfG2chc2zejc7DmIsZIKGl91LWymBPNRNq/4LIXQNRbKSLNcrl/QBeFckGq7oL7OzyHKkgSKQED99bSvWd/iyLQ0ZFo/IUNozsICcQos7PUPCwSG1n5xaovRYEPB5EULJAWL2/6MIS/sgSATc4S79AW4mrWzd1s36hTmaux48qxGLuhlr8NtH4RkhN+O7abIEEUaEbrTnuSlCasw8B2gUb6RMi9KyvFM8OZ8lqJEsHnbdOu2bZfH9+vwy6A6AKlqOorVRZ4FMHOt0gC3C8igswfVnr6ajDKg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=18PN0RiKa9jBkMT8VyeUB7eM6IqgO1+zMKS0ZzYFsYg=;
 b=J8OgN29dBWIjlHsAfIqdQEPCfOUfWT6dsVji4/A9yhZ2HON+/D6YFdlsAt+6+fpirYWQuaEEx/8jYIba/1KRe9ewOW0pxukxt5J6+DMXgRPfaFmuabny5SxGsNfTOdhNlrZWNQMWhEHt5uTyt0Jl8wO6A+kSiijQc5m1ok5GK+3tFc0bt2pC/jNAsHIytqf1boSLtukXrZXgn3kYcgUpoUP+iMkUkxOYrsERwbgvU//rJW36gAT0aSq0LKjrZoE3XQbLlnabeTvvKBvHWSAVlWsXtkO4XDlLODyQt2bHDrX4Z/C0VaSIx52m1fo9Fi+o5CINYh1PEy5EF+bLJ+XcIw==
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=18PN0RiKa9jBkMT8VyeUB7eM6IqgO1+zMKS0ZzYFsYg=;
 b=AtxupAHSNXUHiggVIaPeyJu0D65KIrNI3v6UJdZ/9G/KkqBrqajruagU9aLflWvo0PWoOYJ6szhpEUcFSXJXAFa28CHyJ+kB2SbhKO/k9KsTOjqapdFvcwNS5qhB5ds0VllkCFFB9oUaoQzDUxiOfF/Gv1vbCOaXIzPZD7E46JE=
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=SATLEXMB03.amd.com; pr=C
From: Jiqian Chen <Jiqian.Chen@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v11 4/5] vpci/msi: Implement cleanup function for MSI
Date: Fri, 8 Aug 2025 16:03:36 +0800
Message-ID: <20250808080337.28609-5-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250808080337.28609-1-Jiqian.Chen@amd.com>
References: <20250808080337.28609-1-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB05.amd.com
 (10.181.40.146)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF000066E7:EE_|DM6PR12MB4139:EE_
X-MS-Office365-Filtering-Correlation-Id: d8a84b56-2370-4f14-9997-08ddd65221bf
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?QUpNS0crWmRvejBGOUJQRFhCc0ZFUWQ1RG9EUXFUWXhqaVAyazcvNWFFblpK?=
 =?utf-8?B?MjJhTHBTZTdhWXgvN2JNVDBwNVJaczRpWEJrZWVUZ1pZU2FkTGJFSkxVQy9L?=
 =?utf-8?B?MWhBVTRDdzk2cGJka09yOFNOdkVtS0haQ1lBOVVPSk5VSmxYVXlyZU13UUtG?=
 =?utf-8?B?QVpkQkxTK3Q0MERkZXh2ZW9ETjY5K0VhUTVKN2RpWUV6RHJqaXhjQ2EwcHJv?=
 =?utf-8?B?VUJjSExKVmtSMk82M2hHdzRndm9BWlFMb1ZpN2ZSTjJ1WlVTZE5PTlhHODNS?=
 =?utf-8?B?ZnlLK3Y5ZVNNanViaS9aaUhPVElVSzVBbGZCU1hKU3k3Slg3cnZ1SHRZOHVV?=
 =?utf-8?B?REF3OU1tNGZ0Uml6TWtrK0YvOW5waG0xV3F3UkFrRUsrcU13M0VpTCt2cXha?=
 =?utf-8?B?N2lKN0U5eU1WNm9pUkRMZXg1K3paRlZ0cjFrTlBXcjVNQTlWN0N5QkJ2SWV2?=
 =?utf-8?B?TUhZckxGNUsxczR3WU41TXJNNEF3eEplWnV2UkpjTTd4dEFxTW1RRlZqbisx?=
 =?utf-8?B?Z3BVSW5PTGk4Wk5Hd1QrVnJVUDVlb1ZzVTZraEJocHhnQW96RERQcm45d29w?=
 =?utf-8?B?OGMxUm5UTXZ1NDRiWUN4RGlITUYvOC9iNThCREZsUWRLQ0dvZWNibHlEelRE?=
 =?utf-8?B?TjNVTnltdlY0WVgvbFdUczBMQi93MGw4QlVNRC9DK1BFV2hrQ2pvMDdtM1Jh?=
 =?utf-8?B?ejJxd3Zocm8xMFpnZzVncElKNi9ocHc5TVlZZEg2ZGZhN1BhczF0L3dnQ0oy?=
 =?utf-8?B?TEFIcUhHVmZtUURRQkJwdEh6elJ3R0tZajdta1lOempUbFFPbU81OHpFamto?=
 =?utf-8?B?QkdhUjVIbmdaQXJQaDV3QWtHVkcvRzBSeEt2eUZWUDF5c0t4UjZaT3lXZ0ln?=
 =?utf-8?B?c0p6dnRrS1NaVTk1Z0FUZWVpS2FlMTBGVVNTT0R5TXJhRkljM3lGS0VwYkF2?=
 =?utf-8?B?ZTdaQTFnTHp0M2xQZjIyOUdKWVNwa2syaVlwS0dpNnpLTjlXcGR6WGZvS2Fs?=
 =?utf-8?B?ekdzdE5zNTVKWFlCamtncnRFT1NSWGkrU0VPYXpRaVAwcWh1K3VYSmtISFpq?=
 =?utf-8?B?YVhjVEpiVW16bUZYWHpJZVJaQXRZSW95WGdRL1FnaEZHZTN3MnBUeEYrV2E1?=
 =?utf-8?B?TzV4UkRDNVdlTGFWbDdQOG9LV0N6ZEFyc3VVY1ZvSFhXZEdBeUh2VjU5Yysz?=
 =?utf-8?B?QTR1WDM4YzVmdVc3OWV4bkF1dFdJd0V5dk9qN0R2SHhycU9kUFhmc2ZEemhH?=
 =?utf-8?B?cHhVWVNZUHk2U280dzhRZ1hkS2lpUlpXbkVPVFVXanpTTHU4dFducGd0aU1t?=
 =?utf-8?B?QXlGRHJkUG9yaVMxUzVmVkRYY2xHTDZMZjE3RjVjM2pyZkxra2VIOEFJVGY4?=
 =?utf-8?B?MDJNUUtoK0Myc3A1U3JiWkZzclY5UmRKWTBHRXprTE5reDRQMC9BZTM3bFRD?=
 =?utf-8?B?T0ZDY3hhOHRwSE5CSlN0U09PNnEvZEthcUY1WWVPc1lFRGhYK1pLYzZ6TjIw?=
 =?utf-8?B?N0dnMGlRdVNUV010eVlHNndUNDRLVXY5V28va0c4ZFpaVmhCWE5aSitZcDA0?=
 =?utf-8?B?algvYjdkQ0RzcWNxN2czSWlDOGUxeWN5My8zbU14bGZodUc1NHQ5Szd6eVcw?=
 =?utf-8?B?UUVjdFFkNFB4VTlsc0cwdVdmZm9Vamh2TEJTZFFYcVZOU1FlcVdLbWFxUU5R?=
 =?utf-8?B?eEVNdEV3S1ppdmI3QjRhMCswQ1VENGxGYlRIT2R2WDkvcUpxQThqSWd2ek1K?=
 =?utf-8?B?N0JHdnZ6V1ZKeFhoUkxjT0JtNi9iWnZqWGVXWnZIc25xdlBZTlNPOFpCK1JD?=
 =?utf-8?B?ZjJPRkZkd1NOVy84MXpRRkl2b2R0VUpkMGxsd0ovMEo1aW92N2NWditWNEdO?=
 =?utf-8?B?czZWRUV6NE9KU21XSm43Ynhod01aLzVlKzZiZElOTWZvUkJuaHpSZTZzN2VE?=
 =?utf-8?B?N20vM2lzMXJmbHJJRXdIZlJMd1lqWDFyaXVLclhYMDVkeFczcFRsNGQzcWx5?=
 =?utf-8?B?aEk5b0pTSytnOTRQd0dySWdYRWhhZ2JFbkEvRWlIOUYwcUlxSytuaVpGdHZh?=
 =?utf-8?Q?GCJwQ2?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(376014)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Aug 2025 08:03:59.7000
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d8a84b56-2370-4f14-9997-08ddd65221bf
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF000066E7.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4139

When MSI initialization fails, vPCI hides the capability, but
removing handlers and datas won't be performed until the device is
deassigned. So, implement MSI cleanup hook that will be called to
cleanup MSI related handlers and free it's associated data when
initialization fails.

Since cleanup function of MSI is implemented, delete the open-code
in vpci_deassign_device().

Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
---
cc: "Roger Pau MonnÃ©" <roger.pau@citrix.com>
---
v10->v11 changes:
* Add hide paratemer to cleanup_msi().
* Check hide, if false return directly instead of letting ctrl RO.
* Delete xfree(pdev->vpci->msi); in vpci_deassign_device().
* Remove Roger's Reviewed-by since patch change.

v9->v10 changes:
No.

v8->v9 changes:
* Add Roger's Reviewed-by.

v7->v8 changes:
* Add a comment to describe why "-2" in cleanup_msi().
* Given the code in vpci_remove_registers() an error in the removal of
  registers would likely imply memory corruption, at which point it's
  best to fully disable the device. So, Rollback the last two modifications of v7.

v6->v7 changes:
* Change the pointer parameter of cleanup_msi() to be const.
* When vpci_remove_registers() in cleanup_msi() fails, not to return
  directly, instead try to free msi and re-add ctrl handler.
* Pass pdev->vpci into vpci_add_register() instead of pdev->vpci->msi in
  init_msi() since we need that every handler realize that msi is NULL
  when msi is free but handlers are still in there.

v5->v6 changes:
No.

v4->v5 changes:
* Change definition "static void cleanup_msi" to "static int cf_check cleanup_msi"
  since cleanup hook is changed to be int.
* Add a read-only register for MSI Control Register in the end of cleanup_msi.

v3->v4 changes:
* Change function name from fini_msi() to cleanup_msi().
* Remove unnecessary comment.
* Change to use XFREE to free vpci->msi.

v2->v3 changes:
* Remove all fail path, and use fini_msi() hook instead.
* Change the method to calculating the size of msi registers.

v1->v2 changes:
* Added a new function fini_msi to free all MSI resources instead of using an array
  to record registered registers.

Best regards,
Jiqian Chen.
---
 xen/drivers/vpci/msi.c  | 49 ++++++++++++++++++++++++++++++++++++++++-
 xen/drivers/vpci/vpci.c |  1 -
 2 files changed, 48 insertions(+), 2 deletions(-)

diff --git a/xen/drivers/vpci/msi.c b/xen/drivers/vpci/msi.c
index c3eba4e14870..6ab45b9ba655 100644
--- a/xen/drivers/vpci/msi.c
+++ b/xen/drivers/vpci/msi.c
@@ -193,6 +193,53 @@ static void cf_check mask_write(
     msi->mask = val;
 }
 
+static int cf_check cleanup_msi(const struct pci_dev *pdev, bool hide)
+{
+    int rc;
+    unsigned int end;
+    struct vpci *vpci = pdev->vpci;
+    const unsigned int msi_pos = pdev->msi_pos;
+    const unsigned int ctrl = msi_control_reg(msi_pos);
+
+    if ( !msi_pos || !vpci->msi )
+        return 0;
+
+    if ( vpci->msi->masking )
+        end = msi_pending_bits_reg(msi_pos, vpci->msi->address64);
+    else
+        /*
+         * "-2" here is to cut the reserved 2 bytes of Message Data when
+         * there is no masking support.
+         */
+        end = msi_mask_bits_reg(msi_pos, vpci->msi->address64) - 2;
+
+    rc = vpci_remove_registers(vpci, ctrl, end - ctrl);
+    if ( rc )
+    {
+        printk(XENLOG_ERR "%pd %pp: fail to remove MSI handlers rc=%d\n",
+               pdev->domain, &pdev->sbdf, rc);
+        ASSERT_UNREACHABLE();
+        return rc;
+    }
+
+    XFREE(vpci->msi);
+
+    if ( !hide )
+        return 0;
+
+    /*
+     * The driver may not traverse the capability list and think device
+     * supports MSI by default. So here let the control register of MSI
+     * be Read-Only is to ensure MSI disabled.
+     */
+    rc = vpci_add_register(vpci, vpci_hw_read16, NULL, ctrl, 2, NULL);
+    if ( rc )
+        printk(XENLOG_ERR "%pd %pp: fail to add MSI ctrl handler rc=%d\n",
+               pdev->domain, &pdev->sbdf, rc);
+
+    return rc;
+}
+
 static int cf_check init_msi(struct pci_dev *pdev)
 {
     unsigned int pos = pdev->msi_pos;
@@ -270,7 +317,7 @@ static int cf_check init_msi(struct pci_dev *pdev)
 
     return 0;
 }
-REGISTER_VPCI_CAP(MSI, init_msi, NULL);
+REGISTER_VPCI_CAP(MSI, init_msi, cleanup_msi);
 
 void vpci_dump_msi(void)
 {
diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index 6ecb70052b93..3122847524d2 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -367,7 +367,6 @@ void vpci_deassign_device(struct pci_dev *pdev)
         rangeset_destroy(pdev->vpci->header.bars[i].mem);
 
     xfree(pdev->vpci->msix);
-    xfree(pdev->vpci->msi);
     xfree(pdev->vpci);
     pdev->vpci = NULL;
 }
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 08:04:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 08:04:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074088.1436783 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukI57-0000bm-D5; Fri, 08 Aug 2025 08:04:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074088.1436783; Fri, 08 Aug 2025 08:04: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 1ukI57-0000bf-96; Fri, 08 Aug 2025 08:04:05 +0000
Received: by outflank-mailman (input) for mailman id 1074088;
 Fri, 08 Aug 2025 08:04:03 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mRAb=2U=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1ukI55-0000NJ-9D
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 08:04:03 +0000
Received: from NAM04-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam04on20629.outbound.protection.outlook.com
 [2a01:111:f403:2409::629])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3f18ed9c-742e-11f0-a324-13f23c93f187;
 Fri, 08 Aug 2025 10:04:02 +0200 (CEST)
Received: from MW4PR03CA0171.namprd03.prod.outlook.com (2603:10b6:303:8d::26)
 by SN7PR12MB7249.namprd12.prod.outlook.com (2603:10b6:806:2a9::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.14; Fri, 8 Aug
 2025 08:03:58 +0000
Received: from CO1PEPF000066E9.namprd05.prod.outlook.com
 (2603:10b6:303:8d:cafe::cd) by MW4PR03CA0171.outlook.office365.com
 (2603:10b6:303:8d::26) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.18 via Frontend Transport; Fri,
 8 Aug 2025 08:03:58 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CO1PEPF000066E9.mail.protection.outlook.com (10.167.249.11) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Fri, 8 Aug 2025 08:03:57 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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; Fri, 8 Aug
 2025 03:03:56 -0500
Received: from cjq-desktop.amd.com (10.180.168.240) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Fri, 8 Aug
 2025 03:03: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>
X-Inumbo-ID: 3f18ed9c-742e-11f0-a324-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NBqwU8uSX+sHBP4/kTblp/3ZB8etGJNoeP1j9wwmH2AAVg4jDyVx6Ffh7zP7TsKf62Z3aPEGjN0iF7A3JesNFxBjIW8ildFq8SMfKkQklEGKNJnNCW65h6qhtU1OCqXJ4c2NFhtDvu2RlKJcnJ/rozgKrSPbWuesYU8n4S0tsAbGN0Cy/iKK/lG5giaxf+ZedBh/+SHTiSJJWPUpLAL6wIGXC41Gpez0FydhdLds20CwzJiMeDtfLOr2HmYyTrKkYuiszPdWKHFgFneUz6QUxE+kg/+NPHkwcLwenaoTfORmP2e0vuDWga9vkeODrhiSOLyVMWFii3GD45u6NE+PIg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Cy5ubspdr70xaDp9A3gBSFa0/3M4XGQrEgGFMcPaeo0=;
 b=Q+/p1NkBaNGCPc1gw4tXGJnthMfcoU5Rn10vg6P3b4eHjau/LG+qle8Pex9OZ4K6zOhv5JlHlxQkP3dzDfXRBTcXY71ZNmO1RdAR8Vb9NiI++4BpWDelOhYtV6izSfw+7QrrUqJ68ilZ167cV7n5nk8Pbute3hDAKYZIQt+BUpH8Pm0a7EE5xkq//PgH9TSrDklENLKBId6sgmXMYWcfhpXIsc5OMD2YDEzJb38fF4586zlfI/n1VJ6gQe5Qxmgfe4gQkvCDBaGOuFvAgJPga9nUVCLAebN1LPXNYvmNLkL7B3qNjqcZWMcKjwuWrLVrRRUg+yEIjl57GXbB4sxmkA==
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=Cy5ubspdr70xaDp9A3gBSFa0/3M4XGQrEgGFMcPaeo0=;
 b=YJMb2SuvT0PNOYEUksJKOo+X1dNP2dCkz3rDjtYn5fDNB+4QALUOAhInroLxWFKa/WXG7QKD+ZtdkZrTW/XMB1CR7P7mXEesaMCyGheVYvWmDqUtZ0XV3fA6qB/0wkIz98Uuq4NNx1Q7Rfb93PSpD5DeX2Wn26/dEKCuSEUS0yE=
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=SATLEXMB03.amd.com; pr=C
From: Jiqian Chen <Jiqian.Chen@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>
Subject: [PATCH v11 2/5] vpci: Refactor vpci_remove_register to remove matched registers
Date: Fri, 8 Aug 2025 16:03:34 +0800
Message-ID: <20250808080337.28609-3-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250808080337.28609-1-Jiqian.Chen@amd.com>
References: <20250808080337.28609-1-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB05.amd.com
 (10.181.40.146)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF000066E9:EE_|SN7PR12MB7249:EE_
X-MS-Office365-Filtering-Correlation-Id: f2145d63-8447-4ca6-d2f8-08ddd6522051
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|36860700013|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?TUZlOUxXZGZLd3lHMnpqU2JnZlZWV0Uzdm9sa1JhZzFVWitKZTN0MlFVdUwx?=
 =?utf-8?B?U3RBdFU5cnBTbkZiZCtKa3JGMFB5VW9ZYjBKRmtZd1dzUEtaWXF5Y2pKcFNx?=
 =?utf-8?B?VC9lUFg5Qnlyd1BoYkNqbHA2cTZoaWI5MlhjQVpIamkydm1KK2pnVlRTa0VY?=
 =?utf-8?B?V3FmUHV6anJVZTNxd0J5YnFIUWRTUVJTOUFlWVhpb3FiVlI4Vm9Xd3VWditG?=
 =?utf-8?B?YVloWStrS3MvckxEZDMrTFJEZ0V5QlI5UEhWdlQxaHVCbUptdXFuQ1Mza2hM?=
 =?utf-8?B?ZU5kUkNkdTk0dDYyUzB6TktMZitxQXc4eEl0UU5wcVBJNkRRWEw3cEs2d1hr?=
 =?utf-8?B?Qng3dk5IMjR1MHpNQXI0ZUNsVWlTR0orRkNJVFFHaVhxSHNzcVQ0VWhKZUt1?=
 =?utf-8?B?WjRRVUpPSE1GVjExNnZTR0Y2eC9lNHhjOERDKzRJYmZ2a0w5dVJ1SDBHcEp2?=
 =?utf-8?B?L3ZGVVh1Ykg5M0Rodi8yQitMd3kzc2NlT2FKakpKU2pHeklwWVVUTk1PMStp?=
 =?utf-8?B?SEo3c29vanhRYVZtQWcvR3U0cEhQZU4yWXFkWWwrekxvNVJjbjU4dW80MHdn?=
 =?utf-8?B?c0ZKREh2cnhaSzdpTm1LMG13a2hkR3BiRnNmUkpyM1g5bnVpb0dKVlZkQWVQ?=
 =?utf-8?B?Qnh0cGtiMlBIcXVlWE52Q0k5UXB5MXpsMGlXemgyKythblRxOUlXTlpmQTdr?=
 =?utf-8?B?aXhvd3MrajBkZkJOWUowMHZvVEM3U0hBL0MwZTNjVlMvNGFIbDNZYkRrekVO?=
 =?utf-8?B?RGdRR1BkOFkwRDU2anlZMGZNZTF2QVBMaG5IME1BWlhNS3k5UFNZSytZVTZu?=
 =?utf-8?B?eklOZzZDNUs3N05jekthMjZWNVo2T2pveGR4TStPZDBVOWdjQ21uRkkycE50?=
 =?utf-8?B?R1J0RFIyWHJzWTBkUEhYUW9hSDJuTTJ4N2doRlVhSzJqMUtqaHVqTktvUVJH?=
 =?utf-8?B?NmJoWWRzeXN3MXNNYnBUVmFLRzVxNXprRzBhYmZLdHFFSHdRNWJaSW0waVpI?=
 =?utf-8?B?dlJhcERmbWVBaGVBMGFzUDM3SnJTb2ZCcWRYdE5KZzVESVRucHR6ekFwUDRT?=
 =?utf-8?B?eHFkZHBBWkJHbFBaQ1NOcHpyeU1zRmR5NllUUjdvUHA5NG5EM0g5THM4L0ZI?=
 =?utf-8?B?U2tDUE1VeVlzOXdQWkJmbHkyV0pvN0NjZ3pGSFZ4SVhKbW5zM0YxTVB0RnRS?=
 =?utf-8?B?MkJrL0Y2NEpUcWJ2Rm53RzdLbVdLN21rK0dBTUxHZ1NLamdQYUpTZEo1c0hw?=
 =?utf-8?B?TTRsRFYySkdUMCtJbGQ1Sm9RUE9OeVFLMVk5Zm91bStyM3FINjl0TFl2aUpr?=
 =?utf-8?B?M1hJeGl1SWJqWVZ0Q0t3MGNDbHZvNldRSjVFd0lMNzNyeStYWFRCS01ranVS?=
 =?utf-8?B?akJybWxCVDVvbEVrTEkxSDRseC9BN201VU1CYlp5dDU3WlMrbkorYjBtQnpE?=
 =?utf-8?B?QlozLzlXaWVUMm1lUDJHN095VlVxZVI1VS9iZHVwblVUbkJmUjEzdldsSzVm?=
 =?utf-8?B?YXBZNXRJZG0vSlo2NkQ2SUpuVGFLZ1dhT0RuNlV2WmlwR2U3T1QxbU9kWWpt?=
 =?utf-8?B?TEVsQk9uRnJObFExOTNKVzFDL0tsSGhyRTdiL2dMU3N6dFkrYUhldVRGclRQ?=
 =?utf-8?B?cCtGcHkva1FHckM0MVJoU1czY1RGRjVMWjVIMHlPSlRHT2N3bjR5bVJkalZX?=
 =?utf-8?B?RjRuZU8zZGplM1ppV2R3bFhsN2VIbEdEVmZlZXBTL0ZCaDBYaEpHMWVJckRy?=
 =?utf-8?B?blVjcmcrTnZXRjJxT0podmZhT2xvSUQ4dStGNC9RSjBNZ2hwaE9MeHlSYS9j?=
 =?utf-8?B?c0JsOHVmT2lXejhTaEljbU5DdFhzTjdCbDZybUVWc2ZFdWVLNVdHblJVTzRK?=
 =?utf-8?B?KzRLSVV4SHppNEx3TkswMG0yVkY0c254djd3TmJKSzhGTlAvbDBja2Rkblpt?=
 =?utf-8?B?dlF1Nk9hZTR2Uk1RY1VzS3ZkRU1GcmFlTEhrUzQreTNueHdTTUt3cTFFK0hS?=
 =?utf-8?B?VnNLenFzcWtRMUtPWWRTQVFvZ0szd3lPeG5LR2dtUlpDUUMyRjZRNHdSQXRH?=
 =?utf-8?Q?350rpO?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Aug 2025 08:03:57.3028
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f2145d63-8447-4ca6-d2f8-08ddd6522051
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF000066E9.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7249

vpci_remove_register() only supports removing a register in a time,
but the follow-on changes need to remove all registers within a range.
So, refactor it to support removing all registers in a given region.

And it is no issue to remove a non exist register, so remove the
__must_check prefix.

Note: two test cases don't math the new logic of
vpci_remove_registers(), then modify them.

Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
---
cc: "Roger Pau MonnÃ©" <roger.pau@citrix.com>
cc: Anthony PERARD <anthony.perard@vates.tech>
---
v10->v11 changes:
No.

v9->v10 changes:
* Since logic change of vpci_remove_registers() affect the test cases of
  tools/tests/vpci/main.c, change them to match the new function logic.
* Remove Roger's Reviewed-by since patch changed.

v8->v9 changes:
v7->v8 changes:
v6->v7 changes:
No.

v5->v6 changes:
* Modify commit message.
* Add Roger's Reviewed-by.

v4->v5 changes:
No.

v3->v4 changes:
* Use list_for_each_entry_safe instead of list_for_each_entry.
* Return ERANGE if overlap.

v2->v3 changes:
* Add new check to return error if registers overlap but not inside range.

v1->v2 changes:
new patch

Best regards,
Jiqian Chen.
---
 tools/tests/vpci/main.c |  8 ++++----
 xen/drivers/vpci/vpci.c | 38 ++++++++++++++++++++------------------
 xen/include/xen/vpci.h  |  4 ++--
 3 files changed, 26 insertions(+), 24 deletions(-)

diff --git a/tools/tests/vpci/main.c b/tools/tests/vpci/main.c
index 33223db3eb77..2ef8d4e03f1d 100644
--- a/tools/tests/vpci/main.c
+++ b/tools/tests/vpci/main.c
@@ -132,10 +132,10 @@ static void vpci_write32_mask(const struct pci_dev *pdev, unsigned int reg,
                                   rsvdz_mask))
 
 #define VPCI_REMOVE_REG(off, size)                                          \
-    assert(!vpci_remove_register(test_pdev.vpci, off, size))
+    assert(!vpci_remove_registers(test_pdev.vpci, off, size))
 
 #define VPCI_REMOVE_INVALID_REG(off, size)                                  \
-    assert(vpci_remove_register(test_pdev.vpci, off, size))
+    assert(vpci_remove_registers(test_pdev.vpci, off, size))
 
 /* Read a 32b register using all possible sizes. */
 void multiread4_check(unsigned int reg, uint32_t val)
@@ -402,10 +402,10 @@ main(int argc, char **argv)
     VPCI_REMOVE_REG(28, 1);
     VPCI_REMOVE_REG(24, 4);
     VPCI_REMOVE_REG(12, 2);
+    VPCI_REMOVE_REG(16, 2);
+    VPCI_REMOVE_REG(30, 2);
 
     VPCI_REMOVE_INVALID_REG(20, 1);
-    VPCI_REMOVE_INVALID_REG(16, 2);
-    VPCI_REMOVE_INVALID_REG(30, 2);
 
     return 0;
 }
diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index 120a919f08e3..6ecb70052b93 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -152,7 +152,7 @@ static int vpci_capability_hide(const struct pci_dev *pdev, unsigned int cap)
 
     prev_r->private = next_r->private;
     /*
-     * Not calling vpci_remove_register() here is to avoid redoing
+     * Not calling vpci_remove_registers() here is to avoid redoing
      * the register search.
      */
     list_del(&next_r->node);
@@ -160,7 +160,7 @@ static int vpci_capability_hide(const struct pci_dev *pdev, unsigned int cap)
     xfree(next_r);
 
     if ( !is_hardware_domain(pdev->domain) )
-        return vpci_remove_register(vpci, offset + PCI_CAP_LIST_ID, 1);
+        return vpci_remove_registers(vpci, offset + PCI_CAP_LIST_ID, 1);
 
     return 0;
 }
@@ -572,34 +572,36 @@ int vpci_add_register_mask(struct vpci *vpci, vpci_read_t *read_handler,
     return 0;
 }
 
-int vpci_remove_register(struct vpci *vpci, unsigned int offset,
-                         unsigned int size)
+int vpci_remove_registers(struct vpci *vpci, unsigned int start,
+                          unsigned int size)
 {
-    const struct vpci_register r = { .offset = offset, .size = size };
-    struct vpci_register *rm;
+    struct vpci_register *rm, *tmp;
+    unsigned int end = start + size;
 
     spin_lock(&vpci->lock);
-    list_for_each_entry ( rm, &vpci->handlers, node )
+    list_for_each_entry_safe ( rm, tmp, &vpci->handlers, node )
     {
-        int cmp = vpci_register_cmp(&r, rm);
-
-        /*
-         * NB: do not use a switch so that we can use break to
-         * get out of the list loop earlier if required.
-         */
-        if ( !cmp && rm->offset == offset && rm->size == size )
+        /* Remove rm if rm is inside the range. */
+        if ( rm->offset >= start && rm->offset + rm->size <= end )
         {
             list_del(&rm->node);
-            spin_unlock(&vpci->lock);
             xfree(rm);
-            return 0;
+            continue;
         }
-        if ( cmp <= 0 )
+
+        /* Return error if registers overlap but not inside. */
+        if ( rm->offset + rm->size > start && rm->offset < end )
+        {
+            spin_unlock(&vpci->lock);
+            return -ERANGE;
+        }
+
+        if ( start < rm->offset )
             break;
     }
     spin_unlock(&vpci->lock);
 
-    return -ENOENT;
+    return 0;
 }
 
 /* Wrappers for performing reads/writes to the underlying hardware. */
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index 4b7b9298c4e8..9ae75d946af4 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -70,8 +70,8 @@ static inline int __must_check vpci_add_register(struct vpci *vpci,
                                   size, data, 0, 0, 0, 0);
 }
 
-int __must_check vpci_remove_register(struct vpci *vpci, unsigned int offset,
-                                      unsigned int size);
+int vpci_remove_registers(struct vpci *vpci, unsigned int start,
+                          unsigned int size);
 
 /* Generic read/write handlers for the PCI config space. */
 uint32_t vpci_read(pci_sbdf_t sbdf, unsigned int reg, unsigned int size);
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 08:04:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 08:04:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074092.1436823 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukI5E-0001cr-R5; Fri, 08 Aug 2025 08:04:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074092.1436823; Fri, 08 Aug 2025 08:04: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 1ukI5E-0001ck-NV; Fri, 08 Aug 2025 08:04:12 +0000
Received: by outflank-mailman (input) for mailman id 1074092;
 Fri, 08 Aug 2025 08:04:11 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mRAb=2U=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1ukI5D-0000bG-Qy
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 08:04:11 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20620.outbound.protection.outlook.com
 [2a01:111:f403:2416::620])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4367dbab-742e-11f0-b898-0df219b8e170;
 Fri, 08 Aug 2025 10:04:09 +0200 (CEST)
Received: from SJ0PR13CA0158.namprd13.prod.outlook.com (2603:10b6:a03:2c7::13)
 by CH3PR12MB9396.namprd12.prod.outlook.com (2603:10b6:610:1d0::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.15; Fri, 8 Aug
 2025 08:04:02 +0000
Received: from CO1PEPF000066E6.namprd05.prod.outlook.com
 (2603:10b6:a03:2c7:cafe::c5) by SJ0PR13CA0158.outlook.office365.com
 (2603:10b6:a03:2c7::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9031.9 via Frontend Transport; Fri, 8
 Aug 2025 08:04:02 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CO1PEPF000066E6.mail.protection.outlook.com (10.167.249.4) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9009.8 via Frontend Transport; Fri, 8 Aug 2025 08:04:02 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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; Fri, 8 Aug
 2025 03:04:00 -0500
Received: from cjq-desktop.amd.com (10.180.168.240) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Fri, 8 Aug
 2025 03:03:59 -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>
X-Inumbo-ID: 4367dbab-742e-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=A5xzeeb+oBemMmfiM60fXAe7XbHLDaEMCBFH4ghVTQYeJ6U9ijcgO7Coc/UJV4CxG3tZO+m+yreH9v9iKhydr3MrSk82aMX/lGRdHHKeIHeTExmJYc0muA9NSmHfqmNjkem0C9uYCwnCB6GYmyyurqB34Sbw+i/dBulKjYBXS8xICn5IZKik0c7QbtdWN1+E1TINPneO8xlvCglCO/GDfrdA28/sTfLAo7azzQ/FphHOfAXohwRoND0BOx5JcrhbaW5OEn0aRHScIxFGc41P3AtzKufDLe/rBcQwcTktqHgIXMTPyKuyFbkJsCEERI9cBayUrn2GQ1mtHPuNldMD9A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lfDBFfGIT5kbUPhIlv/Q2Hfqw+zHQFe3k8qVer8Mvqo=;
 b=RsMDkMWnODg+kJ1Z+yhiY6vAhugfqpUscLlnIHWV27p/4YrnzQN/rwM1d37am9xCFl7zl6uxbXkXWEZBCUs6ChQ0WKd79geLkuVtMWASZ3jS+lWASv9KSQxkjl1pOpNBvcdAkWsXoT6TQJQ7ruhUN+xhNH28P7HtDM3ECB9/XH+DVeixjnlefwuQjnStqg9qDNVgz3MUNaMlAAxvYgS0PtFIjIAvdnmiNj9vl5knOpFwERR974g6awT7p2qfhEia18OSLBDN7pht8O4RQUYQ24cAJWCdDn7hqb5nimc3ns+6g93bYT9y9EMENAuVqGouY+/ctvrmVIMuy91ZKIc0zw==
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=lfDBFfGIT5kbUPhIlv/Q2Hfqw+zHQFe3k8qVer8Mvqo=;
 b=w1rj+svw2ivqG40jPWeP+Tx7Ad4MBtNyi0o48bVDZKe0lBvOaP3RY7/gibas38qmCc4JivMdHSRs03JhNZnoAM7HGfLZ6x7wa386DFaT/WzSiW/abz3pFDKp011WxZsmno0W8ADVvXirw8cYDg2PwqMUDruBfn3FOfrwfxQ6jZ8=
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=SATLEXMB03.amd.com; pr=C
From: Jiqian Chen <Jiqian.Chen@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Huang Rui <ray.huang@amd.com>, Jiqian Chen <Jiqian.Chen@amd.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v11 5/5] vpci/msix: Implement cleanup function for MSI-X
Date: Fri, 8 Aug 2025 16:03:37 +0800
Message-ID: <20250808080337.28609-6-Jiqian.Chen@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250808080337.28609-1-Jiqian.Chen@amd.com>
References: <20250808080337.28609-1-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB05.amd.com
 (10.181.40.146)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF000066E6:EE_|CH3PR12MB9396:EE_
X-MS-Office365-Filtering-Correlation-Id: 50e51d3b-2d25-4dd7-688e-08ddd6522324
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|376014|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?UC9WNEUzVUt0ZGRGQlhkd2c0MXEyU2wrcUoxQ28zNGNOemhvWUNIcGVOYVcr?=
 =?utf-8?B?VU9uWHRYUmtPWTJpNC9SQUlUemJ1eTBJWkRvUVdNSCtTcUROQjZBbXVNdUNv?=
 =?utf-8?B?YkZXbE52dGp0em1jVjRTSmtPOFZHRGZyeGttR21iQTVkRFQwTXJCSHcxSmdp?=
 =?utf-8?B?RXlJemtXTjhMdlJ5WjdmTktSVkdTWmlNL2xnR2VMK0t5N1pQYmNyK3N6QXR0?=
 =?utf-8?B?R1ZXQTcweDk2Y28wTEM3VWJLVnN0dHk4NU5QYVRqZGV6ZWoxVzhMU2hERW5n?=
 =?utf-8?B?VXVibzFnSU9maHlxbDVNL2VQbGdQQzVLdklaS20zN3pSbVZxVGY1NTI3cU9G?=
 =?utf-8?B?VDlWcHhDL0JKd0VPWTBaZzVkZGRycDYwVkgrYzhMZSswTzRWUUR1K3lsaThz?=
 =?utf-8?B?L3pFOTJoS1pNL2JTZEJQUFlvZmpYMDVDVTM5YVE4L0FkMmhobW1YV1RiclFQ?=
 =?utf-8?B?bEllSzZOK0JqMUl3WmJUc2pBQWh6eUhvOVVscm9tQkl0TTNzaFV6d2F1RGdT?=
 =?utf-8?B?b0h5eHZvNXdTUS9sWmRtNWhPNEJDT1dwWk5qT1V3K3FmMk55WVVUSSt6UytE?=
 =?utf-8?B?VktPR1BkdVBYUmMvMi9sQlNOTExoR2RoOGEvZTFEOFBpcVpOWWk0a2ZiU3NP?=
 =?utf-8?B?NnBhNVdsR2xLWGhqVzU0VXRUS1h3SXFRSE9aa1RFd1ZzSzJzS29NZjVUc21j?=
 =?utf-8?B?UWRONE8xaGQzbXAvVnErNk9wb2xBNVJrYmxVaTI2Y25POUF1VmhSZjByVVNL?=
 =?utf-8?B?Z1JzMFhhejZoK2RxdytodFNpSURLTVQ0Um1qdUZhUlpOM25ERTk1eUZKWExO?=
 =?utf-8?B?VUZNcWtzZlFBaHhqcHJra1hnRktRWTA1QkxKVGM4cHRmN0RIREtYNU1vcEl4?=
 =?utf-8?B?Vi9peEhvbCs0NE54emp2cXJRNDZ5a1hPS0JwalRyMjRzRG9Mak42UXY3QUlX?=
 =?utf-8?B?bS9YSS92bkNHcXVuY0pRYW9mSWRLRnFIdWZhTGRISjRCYWxJZ2VScE1GaER1?=
 =?utf-8?B?MDErRmErTHpQRFY3TjlJTmNDRXpYMlB1WDRYejl1VlNpYXBBdE0vVUZodGVE?=
 =?utf-8?B?L2c5VlZ5VlB1ZWVLUjF5SmpsMjgxdlUrem9aQlpCZGRjb1FnYjkrcEtTQllt?=
 =?utf-8?B?cTdkTy9RRllwaWZaMTZIU1BNUFluVDdzeEpHNDllR3UwYWMvNlFDWktKRGNq?=
 =?utf-8?B?amNDLzdUcGEvK3JKRlRNVktMNkJXUGxsVE1Ib0s1Sis0czNFR1cyNVNxSjVs?=
 =?utf-8?B?bEQzUGZFZy9IZ1cyZnBFanhYc2dBcVBxRmF6cWNnTVB5MWVkVmpCU2pib2pC?=
 =?utf-8?B?dTM3aGVhanZDdXVYS3BqRU14OC95NG5WeGh4WDZNS2ltdlhxMyt2aGgvcUo2?=
 =?utf-8?B?MFZ1V0pQZFphclppbEZFQ011Y1o4ZE1FNHhFZGdhdkxTS090RTE0UXU2dmFI?=
 =?utf-8?B?Tk03YjBGdUFCMzcyT2lDcHJEZU5RbzB0NzhCTWRpaWZSZzFNMlp0UStEdU5F?=
 =?utf-8?B?M21yQjdiVjhpNnBkbHRlZ3Q1VmpDemg4MU43S0JoaGdjcUVHRi94UHlEMTlS?=
 =?utf-8?B?Q1BEL1dDMXBUaHBpT0llMkdScmNIckk4a3dJc3lsUForVjdGNXRtV3FUN2d3?=
 =?utf-8?B?VzlYUXRLRDRhWERUMHFyVEhDOWhZSW8wMUdtTXoyLzVJZWVEakdDVEVCcExn?=
 =?utf-8?B?bnJxVzFtWThNOTFiMkt5MzdINzVNbGhvb0RqT2l3UlBpNkFLREQ0WEhlRERM?=
 =?utf-8?B?eEZyUk5MQmwrRGtUMkd4QjdWY0pRTG05ZEkxL0RzdzBqUmFMZXc1RUJtRlBl?=
 =?utf-8?B?MENyK2NFTUMrM1FXQjNCalQ5d1VSWjQvYmFxR01ZcU9YVEJSS2Q4cGxUcy9H?=
 =?utf-8?B?b1dKLzlxOVVBc3k4TUtYbGNlRExBQjBaUnFROEkvUkxobFp3K0dvZy9CYVFM?=
 =?utf-8?B?OUIrOHBnalo2Tkw1bHFENDRvSnlKLzRwTTlJeS9Rb05xaWpMSnBQYnBzSjVj?=
 =?utf-8?B?MW05QnhXdDRURFQxcGpYWGViakIrdTRHZGVLV2tkZlZSd1RKc0U2VkdLWTJr?=
 =?utf-8?Q?M0BzDr?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Aug 2025 08:04:02.0373
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 50e51d3b-2d25-4dd7-688e-08ddd6522324
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF000066E6.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB9396

When MSI-X initialization fails, vPCI hides the capability, but
removing handlers and datas won't be performed until the device is
deassigned. So, implement MSI-X cleanup hook that will be called
to cleanup MSI-X related handlers and free it's associated data when
initialization fails.

Since cleanup function of MSI-X is implemented, delete the open-code
in vpci_deassign_device().

Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
---
cc: "Roger Pau MonnÃ©" <roger.pau@citrix.com>
---
v10->v11 changes:
* Move calling all cleanup hook in vpci_deassign_device() out of this patch.
* Add hide parameter to cleanup_msix().
* Check hide, if it is false, return directly instead of letting ctrl RO.

v9->v10 changes:
* Call all cleanup hook in vpci_deassign_device() instead of cleanup_msix().

v8->v9 changes:
* Modify commit message.
* Call cleanup_msix() in vpci_deassign_device() to remove the open-code to cleanup msix datas.
* In cleanup_msix(), move "list_del(&vpci->msix->next);" above for loop of iounmap msix tables.

v7->v8 changes:
* Given the code in vpci_remove_registers() an error in the removal of
  registers would likely imply memory corruption, at which point it's
  best to fully disable the device. So, Rollback the last two modifications of v7.

v6->v7 changes:
* Change the pointer parameter of cleanup_msix() to be const.
* When vpci_remove_registers() in cleanup_msix() fails, not to return
  directly, instead try to free msix and re-add ctrl handler.
* Pass pdev->vpci into vpci_add_register() instead of pdev->vpci->msix in
  init_msix() since we need that every handler realize that msix is NULL
  when msix is freed but handlers are still in there.

v5->v6 changes:
* Change the logic to add dummy handler when !vpci->msix in cleanup_msix().

v4->v5 changes:
* Change definition "static void cleanup_msix" to "static int cf_check cleanup_msix"
  since cleanup hook is changed to be int.
* Add a read-only register for MSIX Control Register in the end of cleanup_msix().

v3->v4 changes:
* Change function name from fini_msix() to cleanup_msix().
* Change to use XFREE to free vpci->msix.
* In cleanup function, change the sequence of check and remove action according to
  init_msix().

v2->v3 changes:
* Remove unnecessary clean operations in fini_msix().

v1->v2 changes:
new patch.

Best regards,
Jiqian Chen.
---
 xen/drivers/vpci/msix.c | 47 ++++++++++++++++++++++++++++++++++++++++-
 xen/drivers/vpci/vpci.c |  8 -------
 2 files changed, 46 insertions(+), 9 deletions(-)

diff --git a/xen/drivers/vpci/msix.c b/xen/drivers/vpci/msix.c
index 54a5070733aa..287aafda9157 100644
--- a/xen/drivers/vpci/msix.c
+++ b/xen/drivers/vpci/msix.c
@@ -655,6 +655,51 @@ int vpci_make_msix_hole(const struct pci_dev *pdev)
     return 0;
 }
 
+static int cf_check cleanup_msix(const struct pci_dev *pdev, bool hide)
+{
+    int rc;
+    struct vpci *vpci = pdev->vpci;
+    const unsigned int msix_pos = pdev->msix_pos;
+
+    if ( !msix_pos )
+        return 0;
+
+    rc = vpci_remove_registers(vpci, msix_control_reg(msix_pos), 2);
+    if ( rc )
+    {
+        printk(XENLOG_ERR "%pd %pp: fail to remove MSIX handlers rc=%d\n",
+               pdev->domain, &pdev->sbdf, rc);
+        ASSERT_UNREACHABLE();
+        return rc;
+    }
+
+    if ( vpci->msix )
+    {
+        list_del(&vpci->msix->next);
+        for ( unsigned int i = 0; i < ARRAY_SIZE(vpci->msix->table); i++ )
+            if ( vpci->msix->table[i] )
+                iounmap(vpci->msix->table[i]);
+
+        XFREE(vpci->msix);
+    }
+
+    if ( !hide )
+        return 0;
+
+    /*
+     * The driver may not traverse the capability list and think device
+     * supports MSIX by default. So here let the control register of MSIX
+     * be Read-Only is to ensure MSIX disabled.
+     */
+    rc = vpci_add_register(vpci, vpci_hw_read16, NULL,
+                           msix_control_reg(msix_pos), 2, NULL);
+    if ( rc )
+        printk(XENLOG_ERR "%pd %pp: fail to add MSIX ctrl handler rc=%d\n",
+               pdev->domain, &pdev->sbdf, rc);
+
+    return rc;
+}
+
 static int cf_check init_msix(struct pci_dev *pdev)
 {
     struct domain *d = pdev->domain;
@@ -710,7 +755,7 @@ static int cf_check init_msix(struct pci_dev *pdev)
      */
     return vpci_make_msix_hole(pdev);
 }
-REGISTER_VPCI_CAP(MSIX, init_msix, NULL);
+REGISTER_VPCI_CAP(MSIX, init_msix, cleanup_msix);
 
 /*
  * Local variables:
diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index 3122847524d2..394d75490db9 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -355,18 +355,10 @@ void vpci_deassign_device(struct pci_dev *pdev)
         xfree(r);
     }
     spin_unlock(&pdev->vpci->lock);
-    if ( pdev->vpci->msix )
-    {
-        list_del(&pdev->vpci->msix->next);
-        for ( i = 0; i < ARRAY_SIZE(pdev->vpci->msix->table); i++ )
-            if ( pdev->vpci->msix->table[i] )
-                iounmap(pdev->vpci->msix->table[i]);
-    }
 
     for ( i = 0; i < ARRAY_SIZE(pdev->vpci->header.bars); i++ )
         rangeset_destroy(pdev->vpci->header.bars[i].mem);
 
-    xfree(pdev->vpci->msix);
     xfree(pdev->vpci);
     pdev->vpci = NULL;
 }
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 08:58:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 08:58:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074156.1436834 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukIvQ-0002Ki-KQ; Fri, 08 Aug 2025 08:58:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074156.1436834; Fri, 08 Aug 2025 08:58: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 1ukIvQ-0002Kb-GK; Fri, 08 Aug 2025 08:58:08 +0000
Received: by outflank-mailman (input) for mailman id 1074156;
 Fri, 08 Aug 2025 08:58:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=illN=2U=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ukIvP-0002KV-EY
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 08:58:07 +0000
Received: from mail-ed1-x535.google.com (mail-ed1-x535.google.com
 [2a00:1450:4864:20::535])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cbddb32c-7435-11f0-b898-0df219b8e170;
 Fri, 08 Aug 2025 10:58:05 +0200 (CEST)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-60bfcada295so3125918a12.1
 for <xen-devel@lists.xenproject.org>; Fri, 08 Aug 2025 01:58: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
 4fb4d7f45d1cf-617c843c48fsm2220856a12.10.2025.08.08.01.58.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 08 Aug 2025 01:58:04 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cbddb32c-7435-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754643484; x=1755248284; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=b3Xrb/kMCbbPdbyyPoWEKuJ48aiOOWYFah5ZkKo8rjQ=;
        b=LGy0IeaP0z5azPiiyHImOY2wn8pLvwJp4gDSo3NQA5pnRm0X+kd9UJbsUDHzc3d9TH
         Nq0+19zL3wXlHX8sdKbyzkbJFG7kL8rZF1bY8K0Si6+xiyw3HLC4HmTr0KM0Lj9pvndn
         Dc0BPQXFwWWZiqUzoLNdnvd/R14yHkyBqK0dPAk4iikLVlV5R+Gn8FZfoQqIyyckoOOc
         drM5mpDflnRUmCjXZwyPuvM4JyJWTr7gRL1UPeaYo23wApLnVghNGygO0ZfWe8I5FXkG
         TzCgP7nAkldqwSXsNd7mWxJgoT4o2TKqfrahDvtr8yKvqdi9goHHTonBB5V/lJDzzX/1
         Pwtg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754643485; x=1755248285;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=b3Xrb/kMCbbPdbyyPoWEKuJ48aiOOWYFah5ZkKo8rjQ=;
        b=AcNGfl97uxZIfBRrL1TikYL1HVReBkwwiskFWJklQOozo3smUSy5KyBIOHgikqeDcf
         AtTENyQMPxVbU4qsHemdV2/RQJDKVLj2iMstqQkdKAt9Iu8NH+6Cp08Dx6aPuZXH5U3L
         xNREl3u6kPjeIcIOD7WtTyDYdJvMHM2RlYvp0dYLddMJftWibsZJJSt4VHhCmSvXNPdZ
         D4bTOQuWJyWMTbGlGf0G40FmKWz2vM2FkSAcdgGvQIHTp5uwQDqbrnxp3uM8UtqnMxC3
         qq3rwuoRQ1jargaXceCRjKkzWmDUpvZmVnj5NAL9nOEjLAugabY9A0uVTSjl4dc8qXAT
         pPWQ==
X-Forwarded-Encrypted: i=1; AJvYcCXw+oyO+zBZQqZbq3XTR+mOA+DDGzBaILwuOjjQrJEvx1VTMwCU0c7jW8hxY+ciVy4dWPLFCEXF1Xk=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy/oUUe9A6GYKh/5A00tzkmKrp2qzWMEddEzRkh0e7CbQK7syp1
	raKEF41B/ZDu24hvq9sdxTBnhLDoieAmw+Tgx9KuOfzO70JTM0FNftm/nsHGuLlWGw==
X-Gm-Gg: ASbGncsB+EcAEKBHUIad1wOQCelkUT3bguJEIKxAUJL/B4Ky/Y37fs3OxGeGA7b6Inx
	+newK6cwCLh/FxyvvQhhes0QaUZcHAPmi3L5ed4I6SqqTLoN+ojC4sxusIf7KIEW8zKceNdQdsI
	gXkZS1MvVdVZnKrSejBqBXBa5jtZCRt6jHYhsBACZ6zJMISJdPzcC6uDGvdPqm8sUJVh3UknXqu
	psLqTZpmk9h8iQRw+pFTclW+cXiGtU8fqvOu2wdydvBCwCHo9AboqOOwYFuguv2/vGhVPLJ+y/O
	ZDamOmJrbSNibtfmpztbbnmy7Y7kRrgKvKoWdlJGuG4F9OfMBY6yINzhc0ljkOv7jxH17YZuKbG
	dIVa170sptHIdIDsIGGHxcEb4Edkg3hqdaWbXPC6cF5YLf4Yiwm+8m+qXhfjzpQX9V6DV6tpLHG
	SMabdwKrI=
X-Google-Smtp-Source: AGHT+IHBQ6PXQ6mldcVCCjJququGjw1l4crXtly8IPfMEivMZhgLpqk9YVhHI5wg2CFgx8+UqSiVgA==
X-Received: by 2002:a05:6402:1ec4:b0:615:9b4e:7b81 with SMTP id 4fb4d7f45d1cf-617e2b8bf98mr1752673a12.7.1754643484550;
        Fri, 08 Aug 2025 01:58:04 -0700 (PDT)
Message-ID: <31f9800f-5d2a-4614-9850-07d6bbe232d8@suse.com>
Date: Fri, 8 Aug 2025 10:58:03 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v11 1/5] vpci: Use cleanup to free capability resource
 during deassign
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: Huang Rui <ray.huang@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <20250808080337.28609-1-Jiqian.Chen@amd.com>
 <20250808080337.28609-2-Jiqian.Chen@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: <20250808080337.28609-2-Jiqian.Chen@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.08.2025 10:03, Jiqian Chen wrote:
> @@ -321,6 +321,29 @@ void vpci_deassign_device(struct pci_dev *pdev)
>                      &pdev->domain->vpci_dev_assigned_map);
>  #endif
>  
> +    for ( i = 0; i < NUM_VPCI_INIT; i++ )
> +    {
> +        const vpci_capability_t *capability = &__start_vpci_array[i];
> +        const unsigned int cap = capability->id;
> +        unsigned int pos = 0;
> +
> +        if ( !capability->cleanup )
> +            continue;
> +
> +        if ( !capability->is_ext )
> +            pos = pci_find_cap_offset(pdev->sbdf, cap);
> +        else if ( is_hardware_domain(pdev->domain) )
> +            pos = pci_find_ext_capability(pdev->sbdf, cap);
> +        if ( pos )
> +        {
> +            int rc = capability->cleanup(pdev, false);
> +            if ( rc )

Nit: Blank line between declaration(s) and statement(s) please. (Likely
easy enough to adjust while committing, if no other need for a v12
arises.)

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 08 09:14:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 09:14:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074173.1436843 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukJBF-0005X7-SX; Fri, 08 Aug 2025 09:14:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074173.1436843; Fri, 08 Aug 2025 09:14: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 1ukJBF-0005X0-Q3; Fri, 08 Aug 2025 09:14:29 +0000
Received: by outflank-mailman (input) for mailman id 1074173;
 Fri, 08 Aug 2025 09:14:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2rj7=2U=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1ukJBE-0005Wu-R5
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 09:14:28 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 14e55648-7438-11f0-b898-0df219b8e170;
 Fri, 08 Aug 2025 11:14:26 +0200 (CEST)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-af934d7c932so279095766b.3
 for <xen-devel@lists.xenproject.org>; Fri, 08 Aug 2025 02:14:26 -0700 (PDT)
Received: from [192.168.1.17] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a0a37a8sm1466918266b.40.2025.08.08.02.14.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 08 Aug 2025 02:14: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>
X-Inumbo-ID: 14e55648-7438-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754644466; x=1755249266; darn=lists.xenproject.org;
        h=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=Pl1ZzAy1LqPq4LjhFItU9Y3FV9NUFt6Urx1O9YusIrI=;
        b=gJXLZXIe+Q2CGIaRKQCce+5qPJAhpjajWPSV64imR1TEFIpIjmyQsHlCjon9Uk9CD0
         ZEED0cwQVxTUfPhV86adrdESN1DcqkUvHi/tMCmCItUllRv5Jr2ot4lxf879MMpXe/Pk
         bq8mIVkufaBvAjGoKoC9ggd/kbjBzO70qT6kUNlsmGsmG3DAo4/Ts7dViujx3ux2Tza1
         BwDQHEqsyJsFeYv8WatYSRx5gfB/y6SKnXUFuRCNxhi0QJh+VyeOakZEcQr8xtf/eRpU
         tMTHEY/i5q2Ggx7pjxE5XADSdS+S00qty56OkyDElpCFH5zje//Z0u+VeD0nOBGgbKO8
         PhrQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754644466; x=1755249266;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=Pl1ZzAy1LqPq4LjhFItU9Y3FV9NUFt6Urx1O9YusIrI=;
        b=afOwLFKQ6CRKoiBINLxTh2TySKMn8SFnAe1EAdow5av77tAhT7KQgNk0mbhwHP8TQn
         hcG/14AxevpjmkyAvA7qecIVreM+uJJ1/oGfnWzDhDC9tDzxiTfYOkr//HYyCLj9dRbv
         DPMwqi9Nzx5b73WM7xKbzAGgsk+QCfDaK/6jcZui5w7tjQ4pGKsc//G8SRlqej7Sw4yZ
         hujTu3X7WwFBvdYANHOL+5MmARyvDNUFs1ESl7tHKSOmxNWWAXTAzK9WZ5R4FCENU6eV
         YNhrWVbB54PNkJGxOdDKzSndTBtERtqeXozfj0E3ZvoW/B756hlyvpDZBmh1zXBsEenr
         woXg==
X-Forwarded-Encrypted: i=1; AJvYcCViOsCQpKSKieP+2VNfLiVHnrnvkzl3gdr8R1b5z3ZBB7eMtk6x7qg/mWtaqgmXCiVHlAixq54S7v4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxivc8fm6EgJObC46RbLXvGvtxpNwBqmJiDQ6hNdtHUAF9VUWO2
	muvXYYY+sjp0njyZ0mF0AKHN8xd8NzzjzaHF6SSqYdbOqhBYlGMX5tjL
X-Gm-Gg: ASbGncvSOqZ52/iJE0jhADnb3kpvHo4FunHjFgB/wUYmlpLnBEw406hZje8e3+OyOOL
	QCIlDiG5id2D/hXb7yboB1RutfaZb8Dz2nJ0SMcYpsBCr4kNz8JxriAXRhyRJxkt/6UINYuuJPK
	V0hXh8AsuKWuJpsxX9V94q/Pq5gB2/SaBXOZxiYTDOgOTthwd4T9/2brm/foIBMDVemvZa9CLxY
	BeFihjUODhxrfzurnsCV3M0xAGOeHOMHfHmyMD3vxMSMYKGK1nBkRHSO3QAG9PkTWLu8m5DDNAK
	rPs4pWVOFAugdLwRHZjTTdfP6+YlbP4ri1Z4ZWY0QFQOOANwLJCNTkyYjTDpwZxxwk69j69NREb
	ZM/pIaveYTWXizuG94aD6L/z/uce/I0sGV3IpXEj5VtICnWb5fG+tVzMgImfOYPZM7dmUIwf6
X-Google-Smtp-Source: AGHT+IF+pDHxr80uiDkVGpp0iwsLT6WwNpqrsQ9pSp0lRazEh55jnBkJqGMqVlbwXcdxUum8rQ4Nkg==
X-Received: by 2002:a17:907:9281:b0:af8:fa64:917f with SMTP id a640c23a62f3a-af9c650abc2mr203839066b.48.1754644465719;
        Fri, 08 Aug 2025 02:14:25 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------t95ZBYk0mol7q0a0O8M8qfXE"
Message-ID: <6f9714f7-3b65-4903-acbf-a0aa537bb3f5@gmail.com>
Date: Fri, 8 Aug 2025 11:14:23 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 06/20] xen/riscv: add root page table allocation
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <23c79f07221dee7eb782ebb160442f3a796a41b2.1753973161.git.oleksii.kurochko@gmail.com>
 <7491c934-f847-4fe2-9d9b-a500f0888198@suse.com>
 <ccdd5caa-2c91-4125-9c6b-067c941649b1@gmail.com>
 <2aa2135f-e422-417f-a509-74f61c3b19de@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <2aa2135f-e422-417f-a509-74f61c3b19de@suse.com>

This is a multi-part message in MIME format.
--------------t95ZBYk0mol7q0a0O8M8qfXE
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 8/7/25 5:57 PM, Jan Beulich wrote:
> On 07.08.2025 15:35, Oleksii Kurochko wrote:
>> On 8/5/25 12:43 PM, Jan Beulich wrote:
>>> On 31.07.2025 17:58, Oleksii Kurochko wrote:
>>>> +static int p2m_alloc_root_table(struct p2m_domain *p2m)
>>>> +{
>>>> +    struct domain *d = p2m->domain;
>>>> +    struct page_info *page;
>>>> +    const unsigned int nr_root_pages = P2M_ROOT_PAGES;
>>>> +
>>>> +    /*
>>>> +     * Return back nr_root_pages to assure the root table memory is also
>>>> +     * accounted against the P2M pool of the domain.
>>>> +     */
>>>> +    if ( !paging_ret_pages_to_domheap(d, nr_root_pages) )
>>>> +        return -ENOMEM;
>>>> +
>>>> +    page = p2m_allocate_root(d);
>>>> +    if ( !page )
>>>> +        return -ENOMEM;
>>>> +
>>>> +    p2m->root = page;
>>>> +
>>>> +    return 0;
>>>> +}
>>> In the success case, shouldn't you bump the paging pool's total_pages by
>>> P2M_ROOT_PAGES? (As the freeing side is missing so far, it's not easy to
>>> tell whether there's [going to be] a balancing problem in the long run.
>>> In the short run there certainly is.)
>> I think that total_pages should be updated only in case when page is added
>> to freelist.
>> In the case of p2m root table, we just returning some pages to domheap and
>> durint that decreasing an amount of total_pages as freelist has lesser pages,
>> and then just allocate pages from domheap without adding them to freelist.
> But how's freeing of a root table going to look like?

We have saved pointer to first page of P2M_ROOT_PAGES allocated for root page
table which is stored in p2m->root. Then when a domain is going to be destroyed,
then do something like:
     for ( i = 0; i < P2M_ROOT_PAGES; i++ )
         clear_and_clean_page(p2m->root + i);
...


> Logically that group
> of 4 pages would be put back into the pool. And from that the pool's
> total_pages should reflect that right after successful allocation.

... I think instead of having the loop mentioned above we could add root table
pages to p2m->pages (as you suggested) in p2m_allocate_root() and then a domain
is being destroyed just do the following:
   while ( (pg = page_list_remove_head(&p2m->pages)) )
   {
       p2m_free_page(p2m->domain, pg);
And it will be a job of internals of p2m_free_page() -> paging_free_page() to
adjust freelist's total_pages and return back page(s) allocated for root table
to the freelist. (Note: the current implementation of paging_free_page() just
add a page to freelist without updating of freelist's total_pages what looks
incorrect. And it will be enough as total_pages is present only for freelist
and there is not separate total_pages (or something similar) for p2m->pages).

~ Oleksii

--------------t95ZBYk0mol7q0a0O8M8qfXE
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/7/25 5:57 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:2aa2135f-e422-417f-a509-74f61c3b19de@suse.com">
      <pre wrap="" class="moz-quote-pre">On 07.08.2025 15:35, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">
On 8/5/25 12:43 PM, Jan Beulich wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">On 31.07.2025 17:58, Oleksii Kurochko wrote:
</pre>
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">+static int p2m_alloc_root_table(struct p2m_domain *p2m)
+{
+    struct domain *d = p2m-&gt;domain;
+    struct page_info *page;
+    const unsigned int nr_root_pages = P2M_ROOT_PAGES;
+
+    /*
+     * Return back nr_root_pages to assure the root table memory is also
+     * accounted against the P2M pool of the domain.
+     */
+    if ( !paging_ret_pages_to_domheap(d, nr_root_pages) )
+        return -ENOMEM;
+
+    page = p2m_allocate_root(d);
+    if ( !page )
+        return -ENOMEM;
+
+    p2m-&gt;root = page;
+
+    return 0;
+}
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">In the success case, shouldn't you bump the paging pool's total_pages by
P2M_ROOT_PAGES? (As the freeing side is missing so far, it's not easy to
tell whether there's [going to be] a balancing problem in the long run.
In the short run there certainly is.)
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
I think that total_pages should be updated only in case when page is added
to freelist.
In the case of p2m root table, we just returning some pages to domheap and
durint that decreasing an amount of total_pages as freelist has lesser pages,
and then just allocate pages from domheap without adding them to freelist.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
But how's freeing of a root table going to look like? </pre>
    </blockquote>
    <pre>We have saved pointer to first page of P2M_ROOT_PAGES allocated for root page
table which is stored in p2m-&gt;root. Then when a domain is going to be destroyed,
then do something like:
    for ( i = 0; i &lt; P2M_ROOT_PAGES; i++ )
        clear_and_clean_page(p2m-&gt;root + i);
...
</pre>
    <p><br>
    </p>
    <blockquote type="cite"
      cite="mid:2aa2135f-e422-417f-a509-74f61c3b19de@suse.com">
      <pre wrap="" class="moz-quote-pre">Logically that group
of 4 pages would be put back into the pool. And from that the pool's
total_pages should reflect that right after successful allocation.</pre>
    </blockquote>
    <pre>... I think instead of having the loop mentioned above we could add root table
pages to p2m-&gt;pages (as you suggested) in p2m_allocate_root() and then a domain
is being destroyed just do the following:
  while ( (pg = page_list_remove_head(&amp;p2m-&gt;pages)) )
  {
      p2m_free_page(p2m-&gt;domain, pg);
And it will be a job of internals of p2m_free_page() -&gt; paging_free_page() to
adjust freelist's total_pages and return back page(s) allocated for root table
to the freelist. (Note: the current implementation of paging_free_page() just
add a page to freelist without updating of freelist's total_pages what looks
incorrect. And it will be enough as total_pages is present only for freelist
and there is not separate total_pages (or something similar) for p2m-&gt;pages).

~ Oleksii</pre>
  </body>
</html>

--------------t95ZBYk0mol7q0a0O8M8qfXE--


From xen-devel-bounces@lists.xenproject.org Fri Aug 08 09:17:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 09:17:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074181.1436853 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukJDj-00063D-9t; Fri, 08 Aug 2025 09:17:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074181.1436853; Fri, 08 Aug 2025 09:17: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 1ukJDj-000636-6L; Fri, 08 Aug 2025 09:17:03 +0000
Received: by outflank-mailman (input) for mailman id 1074181;
 Fri, 08 Aug 2025 09:17:01 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2rj7=2U=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1ukJDh-00062v-DM
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 09:17:01 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 70065d9e-7438-11f0-b898-0df219b8e170;
 Fri, 08 Aug 2025 11:16:59 +0200 (CEST)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-61580eb7995so4045855a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 Aug 2025 02:16:59 -0700 (PDT)
Received: from [192.168.1.17] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-615a9115562sm13474676a12.59.2025.08.08.02.16.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 08 Aug 2025 02:16: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>
X-Inumbo-ID: 70065d9e-7438-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754644619; x=1755249419; darn=lists.xenproject.org;
        h=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=dsFLNMXueMtZJuH6skzEsGzdNwMqOBracJK+aOQpVEE=;
        b=BL3HPSkWYbkt47XFcZIeO0NEODvAHUpuTqEMqiX8sLiw6RsvJjJuoLl2m3g9ib8UaD
         Ep7xla1ZmzYJf0n0LjO4FE+uSggRyTwT+OfDRNyUuBuzH69hT+Rc6T5V6ssQZ+o2GyVR
         vU21cplKO7Od22jgO3L1tNCGEw0lW8Vuk6e1CiLfD9UsvixbAba+iWurPVBf4Gdl4jqk
         VnvQVT95hi+ipWSnQXcVTxQswCD8LB/7RJG8DUoRjKH0Dt4PlyhCdQPCdhd3NwLkt8UI
         Mkn/vZMlZFL0hGK/smXG9PLO0uV2EUPM0/2gXOU2Vbquzu6ns/Fn9DwuPGph96XrOk5L
         6/Ow==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754644619; x=1755249419;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=dsFLNMXueMtZJuH6skzEsGzdNwMqOBracJK+aOQpVEE=;
        b=q7kFfaHn65m39ijkEnlCdetlpsNfZfVSGmh54/jtqPKekhEVeaouJTrTv/kDHZYr8r
         4AbAqnwfdJIdGwgpODppDYdNdJ0eBiuqWQvWB3XyN3OSkB/qNsm5hPdIS+/mRUqC/c6S
         7GJUG/cVnR4LggRswn9qzkPee0HK85xszUogxH65LtwNHvEo7sjSc3c7PwLVeUcr3szK
         Kcbt8c1tD0E75pGgiD8uMxphn93xdMNl7Nr33MRj6iTrFjtBpSUTxUDvtBarO+Ymo6LV
         JVcJ/WVwjma1AkPjdqDGFQwXcYY+xpxzPErdnkrdBLAV4ZvtvwOiIdzUKSmn8xNkwk7z
         ZwNg==
X-Forwarded-Encrypted: i=1; AJvYcCV6lYdVxHDWGlz5TRt8jzOG2qNBgzUHkPMaWVH2kk5+Y6qjyfRuurhml3Gak8pluAvTs9B4WKrJ5Gs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzesNJzhn3u3RG/0IHYrvFie/fSvkjId/mt5jF0OzAYLT9q2HPj
	VKNqxgHNI/53c+nebMriF0n1pdYxoa3kL0Z9GpXXiVF7f485Bp38ejrq
X-Gm-Gg: ASbGncue6kLeDNjUkrpz5tw1Hw9CvjzBQJiaKmBvW3TrM37QzucNHxJrp/JFxxymIIR
	zYEsYbt9RhjP0j2ezlwBbtSEeskCe9zRZ8Lnb7IqhBl+EwHDfWL0lgxWEeyba4E3FMs9rSQiglw
	J2bjJODWAoiHUT7dMcb2reVN6psek2cdcOEdElQ3Qq2RFLnehcOet7BXDo/kiLTeMu9kcNkaTHK
	bCk9ul0aBP3vNqdcOJ05UpxIdZzCcb3s04m8sjldxptM5ekMc87K6Q6fO9pYqdKuSqDJiDxM9Jb
	GUonz8ewp4ye3Yt5dMgyWIZmsXBciUw4gYJ3V/GOJys/DysckFW+HWJ8g7EdUJeXh3AxOUXEePB
	LcqvOVL3kpjyFjvSzv9eMDMrle+SbctXYzF43Fp7D7/8kLRtVVoHKKq+bwm6P2Ucp0n0+WglW0O
	b+QercDIc=
X-Google-Smtp-Source: AGHT+IGbSh3Q0jVeTL1ILLSqirnBbHP9K9hms+Nwg/fKDBChZxxxbEqoJZfExrXJPgqq8eV18IrApA==
X-Received: by 2002:a50:9ece:0:b0:615:7e88:ef95 with SMTP id 4fb4d7f45d1cf-617b37dab62mr3382839a12.11.1754644618765;
        Fri, 08 Aug 2025 02:16:58 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------4voFqTaAumBVl3v4Ha3017VV"
Message-ID: <b30d4be6-e7d8-4996-9ce3-3514fb05d7b5@gmail.com>
Date: Fri, 8 Aug 2025 11:16:56 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 10/20] xen/riscv: introduce
 page_{get,set}_xenheap_gfn()
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <5aa3beb7fc0b7fc7f4d6d07ae25f37d44fc38858.1753973161.git.oleksii.kurochko@gmail.com>
 <eb865048-ec3a-479e-a552-b19fc57b6786@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <eb865048-ec3a-479e-a552-b19fc57b6786@suse.com>

This is a multi-part message in MIME format.
--------------4voFqTaAumBVl3v4Ha3017VV
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 8/5/25 4:11 PM, Jan Beulich wrote:
> On 31.07.2025 17:58, Oleksii Kurochko wrote:
>> --- a/xen/arch/riscv/include/asm/mm.h
>> +++ b/xen/arch/riscv/include/asm/mm.h
>> @@ -12,6 +12,7 @@
>>   #include <xen/sections.h>
>>   #include <xen/types.h>
>>   
>> +#include <asm/cmpxchg.h>
>>   #include <asm/page.h>
>>   #include <asm/page-bits.h>
>>   
>> @@ -247,9 +248,17 @@ static inline bool arch_mfns_in_directmap(unsigned long mfn, unsigned long nr)
>>   #define PGT_writable_page PG_mask(1, 1)  /* has writable mappings?         */
>>   #define PGT_type_mask     PG_mask(1, 1)  /* Bits 31 or 63.                 */
>>   
>> -/* Count of uses of this frame as its current type. */
>> -#define PGT_count_width   PG_shift(2)
>> -#define PGT_count_mask    ((1UL << PGT_count_width) - 1)
>> + /* 9-bit count of uses of this frame as its current type. */
> Nit: Stray blank at start of line.
>
>> +#define PGT_count_mask    PG_mask(0x3FF, 10)
> A 9-bit count corresponds to a mask of 0x1ff, doesn't it? With 0x3ff the count
> can spill over the type.

It should be really 0x1ff, thanks.

~ Oleksii

--------------4voFqTaAumBVl3v4Ha3017VV
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/5/25 4:11 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:eb865048-ec3a-479e-a552-b19fc57b6786@suse.com">
      <pre wrap="" class="moz-quote-pre">On 31.07.2025 17:58, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/include/asm/mm.h
+++ b/xen/arch/riscv/include/asm/mm.h
@@ -12,6 +12,7 @@
 #include &lt;xen/sections.h&gt;
 #include &lt;xen/types.h&gt;
 
+#include &lt;asm/cmpxchg.h&gt;
 #include &lt;asm/page.h&gt;
 #include &lt;asm/page-bits.h&gt;
 
@@ -247,9 +248,17 @@ static inline bool arch_mfns_in_directmap(unsigned long mfn, unsigned long nr)
 #define PGT_writable_page PG_mask(1, 1)  /* has writable mappings?         */
 #define PGT_type_mask     PG_mask(1, 1)  /* Bits 31 or 63.                 */
 
-/* Count of uses of this frame as its current type. */
-#define PGT_count_width   PG_shift(2)
-#define PGT_count_mask    ((1UL &lt;&lt; PGT_count_width) - 1)
+ /* 9-bit count of uses of this frame as its current type. */
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Nit: Stray blank at start of line.

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+#define PGT_count_mask    PG_mask(0x3FF, 10)
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
A 9-bit count corresponds to a mask of 0x1ff, doesn't it? With 0x3ff the count
can spill over the type.</pre>
    </blockquote>
    <pre>It should be really 0x1ff, thanks.

~ Oleksii</pre>
  </body>
</html>

--------------4voFqTaAumBVl3v4Ha3017VV--


From xen-devel-bounces@lists.xenproject.org Fri Aug 08 10:09:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 10:09:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074197.1436863 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukK2H-000573-Uw; Fri, 08 Aug 2025 10:09:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074197.1436863; Fri, 08 Aug 2025 10: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 1ukK2H-00056w-Ru; Fri, 08 Aug 2025 10:09:17 +0000
Received: by outflank-mailman (input) for mailman id 1074197;
 Fri, 08 Aug 2025 10:09:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=illN=2U=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ukK2G-00056q-B8
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 10:09:16 +0000
Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com
 [2a00:1450:4864:20::533])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bcd8a4d3-743f-11f0-a324-13f23c93f187;
 Fri, 08 Aug 2025 12:09:15 +0200 (CEST)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-61557997574so2767840a12.3
 for <xen-devel@lists.xenproject.org>; Fri, 08 Aug 2025 03:09: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
 4fb4d7f45d1cf-615a8f245c1sm13354525a12.22.2025.08.08.03.09.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 08 Aug 2025 03:09: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>
X-Inumbo-ID: bcd8a4d3-743f-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754647754; x=1755252554; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=pFylwkEPqA78lxqBJYekMme0Z60LMD8EElrPlYl6198=;
        b=KcssY97W84Ja53mPyOuLetruddxZYOXcZ53Vb7uZXr1oEXCURcsRFkl+FY1YLPUVk9
         +LyZwfl+4zBCakkVQS6X9MzhDgjyYrwQEAVffAuStLF1sid66YxLlX+C5kEFVlQTWl5F
         Q12M5EZTL1L1/tIqnRPmYYgv5LDMfvUUz1UtH1XCOzfy2wXfWpizEaRO6OsFVP3uBImM
         BioYs6Tdcaw1zR3kRrlyrQTbe0KHMyc8ldFFOGCATM5tACcOtqnBwe/r/lOf5540wweX
         G81TG7pnuIQdyaL9Ld2v5XS4I+2UV7xUB01WwW61w4k+2EHvPmmwDykmmHOeQKMc/TBt
         ffBg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754647754; x=1755252554;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=pFylwkEPqA78lxqBJYekMme0Z60LMD8EElrPlYl6198=;
        b=njEwnafUxgZe/mxeBVm/UTVmr4LKcasQbDkFdGqadIJxmqvrEi18lxbGPS4agjr4IF
         h8d1YOlhcsp6XjMkb9GLJIW8HTg+glXQFrOMG9mZj3C8gyD50+71bpbWLTAoAiqVjSkV
         xIMncdYU5Dr5MF4nYva6hwnZS9Mdda3GWMN7TSdYX0n3CppqC+VT1M3DvZ68n5RpfHLN
         AHKtxSwXP6Vg7vbZWR2j1lKO6qHZJdZTzDTsfLEmXwpzlN4T4ptOhdYHl13Ryz3vajTy
         2aIvec8kiMjG7NIAiuwtumEeUBwELBTmmQXy6l5C5OyRqHhLYfRZQiCywrQvJ1sd2pjH
         6Aag==
X-Forwarded-Encrypted: i=1; AJvYcCVoJpz8L1QJ4W3nbZliKz87CGSotp2peXDrcW4gQEc1IUbGeU29iI/0OL4RWNmulnFCfWbypUN/+EE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzA8Ghs2FtgOTy8hz9fXDtFKYAOzXSceAghE8arjGID0wi3yFn2
	v+3GWwYTN2QJeGGP8fzR4uOFERiCiBSw484Lj5Bl3BAycfIef2aKGIE9PkZIadMPFA==
X-Gm-Gg: ASbGncspGnRM57YcMguD3ihTNeIeK+jagPuk2hQs5w9LW9TwCYjRn1JGfEZzCdcyOfC
	oixQnYzKJlF2Xqcq5czzArRyKNOLMcokVR2cCngjqqPD7f60HbaoZqEcDAxuZPACMfR99zgd/mK
	luUxRlAOUDFS+5BoE66CYqimvyljdjhuItoTunOD5R8G1AlMGyi7+TWwvBksJS8zNDtVBUdmTHp
	LGvH6yltkFq2QcWU5hXxlYTXMECyubH6hrp1cFRD9Lq4kemV/G8mvI/sDP+APdudGAoo/TCmF3O
	9EwHpsBoOfOSvBcDaex+FEHI9QJkXwiLO1IZpAVf10jBR4D5kAnA3J6gfVIMQK1cwDroHeCsHFD
	BqV5agrB6ciN78wL9HtOyoLE4gpLNAGXpUaA68jkT12YZ0u85VR0omIiFV6ETdOujVSALdAuJXQ
	/PfHDVSk0=
X-Google-Smtp-Source: AGHT+IHtZ8NsNuSwPEAiHsMzg45IhQDZBxOtprpHkE7tZAU8RP4+lnTbqLvtWEx8+1pHNET7ZUALxQ==
X-Received: by 2002:a05:6402:3485:b0:617:bb83:99a0 with SMTP id 4fb4d7f45d1cf-617e2e7c16dmr1892990a12.30.1754647754351;
        Fri, 08 Aug 2025 03:09:14 -0700 (PDT)
Message-ID: <ed587862-b239-429b-a478-e2f574312a2a@suse.com>
Date: Fri, 8 Aug 2025 12:09:13 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/4] x86/domctl: Stop using XLAT_cpu_user_regs()
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250807111657.201849-1-andrew.cooper3@citrix.com>
 <20250807111657.201849-2-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: <20250807111657.201849-2-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.08.2025 13:16, Andrew Cooper wrote:
> In order to support FRED, we're going to have to remove the {ds..gs} fields
> from struct cpu_user_regs, meaning that it is going to have to become a
> different type to the structure embedded in vcpu_guest_context_u.
> 
> In both arch_{get,set}_info_guest(), expand the memcpy()/XLAT_cpu_user_regs()
> to copy the fields individually.  This will allow us to eventually make them
> different types.
> 
> This does cause some minor changes in behaviour for the hypercalls.
> 
> It is specifically not the case that a toolstack could set_info(); get_info();
> and get an identical bit pattern back.  Amongst other things, the
> architectural sticky bits in registers are applied during setting.
> 
> Previously, XLAT_cpu_user_regs() omitted the _pad fields in the compat case
> whereas the non-compat case included them owing to the single memcpy().
> 
> Omit the _pad fields in the non-compat case too; for all but the oldest of
> CPUs, the segment selectors are zero-extended by hardware when pushed onto the
> stack, so non-zero values here get lost naturally.  Furthermore, FRED reuses
> the space above cs and ss for extra state, and a PV guest for now at least
> must not be able to write the control state.
> 
> Omit the error_code and entry_vector fields too.  They're already identified
> as private fields in the public API, and are stale outside of Xen's
> interrupt/exception/syscall handler.  They're also a very minor information
> leak of which event caused the last deschedule of a vCPU.

I think my prior remark towards tools like xenctx wasn't really addressed.
Then again that particular tool doesn't use the fields now, so apparently
no-one ever saw a need.

> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -1233,7 +1233,24 @@ int arch_set_info_guest(
>  
>      if ( !compat )
>      {
> -        memcpy(&v->arch.user_regs, &c.nat->user_regs, sizeof(c.nat->user_regs));
> +        memset(&v->arch.user_regs, 0, sizeof(v->arch.user_regs));

Any reason to have this and ...

> +        v->arch.user_regs.rbx               = c.nat->user_regs.rbx;
> +        v->arch.user_regs.rcx               = c.nat->user_regs.rcx;
> +        v->arch.user_regs.rdx               = c.nat->user_regs.rdx;
> +        v->arch.user_regs.rsi               = c.nat->user_regs.rsi;
> +        v->arch.user_regs.rdi               = c.nat->user_regs.rdi;
> +        v->arch.user_regs.rbp               = c.nat->user_regs.rbp;
> +        v->arch.user_regs.rax               = c.nat->user_regs.rax;
> +        v->arch.user_regs.rip               = c.nat->user_regs.rip;
> +        v->arch.user_regs.cs                = c.nat->user_regs.cs;
> +        v->arch.user_regs.rflags            = c.nat->user_regs.rflags;
> +        v->arch.user_regs.rsp               = c.nat->user_regs.rsp;
> +        v->arch.user_regs.ss                = c.nat->user_regs.ss;
> +        v->arch.user_regs.es                = c.nat->user_regs.es;
> +        v->arch.user_regs.ds                = c.nat->user_regs.ds;
> +        v->arch.user_regs.fs                = c.nat->user_regs.fs;
> +        v->arch.user_regs.gs                = c.nat->user_regs.gs;
> +
>          if ( is_pv_domain(d) )
>              memcpy(v->arch.pv.trap_ctxt, c.nat->trap_ctxt,
>                     sizeof(c.nat->trap_ctxt));
> @@ -1241,7 +1258,24 @@ int arch_set_info_guest(
>  #ifdef CONFIG_COMPAT
>      else
>      {
> -        XLAT_cpu_user_regs(&v->arch.user_regs, &c.cmp->user_regs);
> +        memset(&v->arch.user_regs, 0, sizeof(v->arch.user_regs));

... this separate, rather than putting just one ahead of the if()?

Preferably with that adjustment:
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 08 10:13:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 10:13:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074207.1436872 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukK6k-0006zU-IW; Fri, 08 Aug 2025 10:13:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074207.1436872; Fri, 08 Aug 2025 10:13: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 1ukK6k-0006zN-Fp; Fri, 08 Aug 2025 10:13:54 +0000
Received: by outflank-mailman (input) for mailman id 1074207;
 Fri, 08 Aug 2025 10:13:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SvPY=2U=cloud.com=ross.lagerwall@srs-se1.protection.inumbo.net>)
 id 1ukK6j-0006zF-HG
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 10:13:53 +0000
Received: from mail-oa1-x30.google.com (mail-oa1-x30.google.com
 [2001:4860:4864:20::30])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5f86ffba-7440-11f0-b898-0df219b8e170;
 Fri, 08 Aug 2025 12:13:48 +0200 (CEST)
Received: by mail-oa1-x30.google.com with SMTP id
 586e51a60fabf-30c30d2ff71so195586fac.1
 for <xen-devel@lists.xenproject.org>; Fri, 08 Aug 2025 03:13: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>
X-Inumbo-ID: 5f86ffba-7440-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754648027; x=1755252827; 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=N2v7JQqVkNH6NHxVDd6NoAQpyK1BmZjLSWjmc41y8y4=;
        b=JcpPRkY2qQutkJg8OQnpdgBBubChhRn8exmQGLXBQNS7Fg0tCTuYP8eev+u1zRbx86
         WHqNpFRdHLGu6St5sWBMmLYlKatOQ2YvpXoMbzNHgnWJAdqrq3kZ80gWHhdcM7ZHFUe4
         QrtwMzSDgmD/tpqWaEmayZgLR55zTvCbY4/u8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754648027; x=1755252827;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=N2v7JQqVkNH6NHxVDd6NoAQpyK1BmZjLSWjmc41y8y4=;
        b=AkzWgriV6vm66iKo2GCS9QQHnClKccT3FEgMq+1EA8c+KaAsNNjK5qWFvLeHkvKUit
         TtvDkFPpFvOJuLAiVW2aeebEdpmrfpQrh7xuVut3zjQSnLCiTcCTTEseMFszIK6QHQtL
         RCQBQMQReNdX1Aee8CZgmI2rVCC1tdrdh+sga3QnZ+JZyQGCNhvBLrvPkKHJLBNFrUyg
         8RAIxkb6ZQ/9gtxgrwQAK88oeOC+dPOiGfJkAB090kQRdRqLPNb7Jwt+i5mOvsKfHRJ2
         zd6ZDwT7FjPPJIDPzphZRLUQOSNejHpz7+gWkKr/4txqgODbVP0uIo37IgkE0kYTtZK8
         xe9g==
X-Forwarded-Encrypted: i=1; AJvYcCXH8ynw4b2+1jJ1OHK4iuaaFYgCQKXzW7qVydQUdQ7zcUXFqGt+5U7WP87hBqmTKmlyTRoh18verPc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyE7UAlrfvfHxdd5LiWaAAoQWZMCiDwMWRLympPlEX01090fYiG
	cQIheUd90bP+2fXneOgfPYZJ5RmtmLmqnoDgbaNIJmyXDXHWC1DMAYv+X78uo0WYBdPl0tHFLD5
	Fltf+OOA36P6jvyVgRkuRfdetlEHEkufdLI3FaGeq
X-Gm-Gg: ASbGncvvoGdHx8oVwSNvOzSlm3HP4jxPY62vWyQgzpWcvD+b16BWf+S9OHTEFcB3713
	qru2s9+iNZx/oC47aLEq74QlfYTc05B0tezqX3ZUMUquy8zK4qHaZhsy4dB7vyk9Vn6Bn5uFnhx
	mX5AlhCmepWHiuT66RmHTWzaiJpc4uG2DZs57SsDP/V2heJrtFRFxBL79c9iGVXq5i7OEtA53hj
	cH2cg==
X-Google-Smtp-Source: AGHT+IGzA9o/VLXPI90g7EVYibXu/6ZjB86/+2e9+gguBL0zs0cVp8Z8GplcNQkRIEQW7p6Js48ogvnrqB7DQ04CztU=
X-Received: by 2002:a05:6870:d09:b0:2a3:832e:5492 with SMTP id
 586e51a60fabf-30c212bf693mr1292490fac.25.1754648027067; Fri, 08 Aug 2025
 03:13:47 -0700 (PDT)
MIME-Version: 1.0
References: <20250805163204.3631483-1-ross.lagerwall@citrix.com>
 <20250805163204.3631483-3-ross.lagerwall@citrix.com> <3010ef8a-3d07-42f5-ac66-c62b7d50f745@suse.com>
In-Reply-To: <3010ef8a-3d07-42f5-ac66-c62b7d50f745@suse.com>
From: Ross Lagerwall <ross.lagerwall@citrix.com>
Date: Fri, 8 Aug 2025 11:13:36 +0100
X-Gm-Features: Ac12FXx1fb1s7DPKqH0VDwaUtI6uOQLecJXfK4b_y5sbzdl-5Yv11ypwfMm9Vtc
Message-ID: <CAG7k0EoX-M36CT7zcyCajvmq6Oi24xuxYFudvtvbi=mHGi8w5g@mail.gmail.com>
Subject: Re: [PATCH 2/2] efi: Stop using StdErr
To: Jan Beulich <jbeulich@suse.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
	=?UTF-8?Q?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>, 
	xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Wed, Aug 6, 2025 at 7:32=E2=80=AFAM Jan Beulich <jbeulich@suse.com> wrot=
e:
>
> On 05.08.2025 18:32, Ross Lagerwall wrote:
> > Xen's use of StdErr is inconsistent. Some boot errors are reported usin=
g
> > PrintErr() which uses StdErr and some are reported using blexit() which
> > uses StdOut.
>
> ... with PrintErrMesg() having
>
>     StdOut =3D StdErr;
>
> apparently to address at least some of the inconsistencies. Perhaps
> blexit(), when not passed NULL, should similarly override StdOut.
>
> > On my test system using OVMF, StdErr is not displayed on the emulated
> > screen. Looking at other EFI applications, StdErr is just used for debu=
g
> > messages if at all.
>
> That's hardly how StdErr was meant to be used. And at the risk of being
> flamed for saying so, looking at other EFI applications (without saying
> of what prominence or origin they are) can hardly serve as a justificatio=
n.
> If OVMF doesn't set up StdErr correctly (despite being configured / set u=
p
> correctly), and if that can't be fixed there, imo what you want as a
> workaround is a command line option to override StdErr by StdOut even whe=
n
> SystemTable->StdErr is non-NULL.
>
> Along the lines of the comment further up, inconsistencies in the use of
> StdErr vs StdOut may want addressing (separately).
>

I tried to reproduce this on a few physical hosts and was unable to so
for now I'll chalk it up as an OVMF bug / configuration issue and
retract this patch. And yes, the StdErr vs StdOut issue should probably
be addressed separately.

Thanks,
Ross


From xen-devel-bounces@lists.xenproject.org Fri Aug 08 10:14:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 10:14:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074214.1436884 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukK7H-0007Uf-Rk; Fri, 08 Aug 2025 10:14:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074214.1436884; Fri, 08 Aug 2025 10:14:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukK7H-0007UY-Nd; Fri, 08 Aug 2025 10:14:27 +0000
Received: by outflank-mailman (input) for mailman id 1074214;
 Fri, 08 Aug 2025 10:14:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SvPY=2U=cloud.com=ross.lagerwall@srs-se1.protection.inumbo.net>)
 id 1ukK7H-0006zF-6I
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 10:14:27 +0000
Received: from mail-oa1-x35.google.com (mail-oa1-x35.google.com
 [2001:4860:4864:20::35])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 75a4f747-7440-11f0-b898-0df219b8e170;
 Fri, 08 Aug 2025 12:14:25 +0200 (CEST)
Received: by mail-oa1-x35.google.com with SMTP id
 586e51a60fabf-2eb5cbe41e1so1948515fac.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 Aug 2025 03:14: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>
X-Inumbo-ID: 75a4f747-7440-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754648064; x=1755252864; 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=/MfRw4khzjTmRDNJRDeCo93aHPdWkYyI70htnmoVSbI=;
        b=Rw0SrCNGyb+ik2z1N88MFiwYSrkS11zm/D9r4IMMQKK4XEL9ZuvD1a8Opi9crSnHxc
         Icz93zOpmwUpTPafy7IDgP1P9G3PA4T8x1nGRJy9sXfK96NI7DQJXyJlW3u9LaSFrA7v
         9PoBZQLA2xcKTuFYXj6eY9LPTCJ+ZogTJKKDY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754648064; x=1755252864;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=/MfRw4khzjTmRDNJRDeCo93aHPdWkYyI70htnmoVSbI=;
        b=lghTjEMwj9KnMnxn4/U9an2+SxS2XPZFKzjWw9IkICe9Dk+tXb2RDRqiUdHkm7Wjx9
         Gm39NPyw1GSiEX63BE1XGJzLaR1k664fHzUAmcyi42iiaGmG9ijhH5URK/8+127lmlYW
         gzJRcc85f4LLSCfcMpJwQuvm57eNm04Cv7RYZjGNM86ov4MudAAajjdnHxCNv5L8w3ik
         vaL0hTmXHy3agSh3jDepS52Ix8dmBgC+GECGnSDejQp35r/DXqG1USVHu2Ky+x+KoLrP
         X9brsHv7vgXsMLAf4Gwbtma9bm2ZNcJdI8oNCfqWCXblYuVMFKGGgOeyPQ+Zk2nRjQtF
         k7NQ==
X-Forwarded-Encrypted: i=1; AJvYcCXA1YDqXlaZ+2ZBFeTWWcGOKLq78S0y9UPDj2XLHvCf6aS/p4SiVR8dkQYtpRr8RbLXQgUreWCWdvc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz9z8Yyvym3h2ARL2pot6EKEpiSVidgjgJoUyst2jTErqBE5uAb
	kAZi8TWToa864m2l1+lKb97ZLXBnev5JZipRhGzJc2zGVLcVD6BoZJxOGzo1ZExOAFlqakyJnHD
	eOBzVwUoPoo+JW/vFHP9jqLpThWHw/t8lML563FUiGcdg9mBrWm5LaQ==
X-Gm-Gg: ASbGncv8gflR1H7vu8H4d4EiX4qOJST1ZtNgVC9/bjwE3ZxXL/1yMoRiGhk6nj9Jb56
	+SREUmj+0mj5MdjPygCSGg5k6jdIqGhUsTrRTrxlnwVkxebw5zwVDT00DFK+6j6vgUNzpPvGwUL
	WMOVNAkR56qzzUtA8tcTKDw2tkPr2xgpMqL5AFk+F1yFdLTWIeP5mIzXGrIP3aXIiW4mboGb4S7
	GQ770QUiz8mF/lw
X-Google-Smtp-Source: AGHT+IEZGVoAX84V4g1iMqQpCH/bsX0hJM40PZ8Zta9YrEHn7s5JriImZr1xok7b4JomZRPfVT2WtRzcqJgMf1MRnvQ=
X-Received: by 2002:a05:6870:a449:b0:30b:a9d5:d475 with SMTP id
 586e51a60fabf-30c2114ee68mr1466873fac.28.1754648064319; Fri, 08 Aug 2025
 03:14:24 -0700 (PDT)
MIME-Version: 1.0
References: <20250805163204.3631483-1-ross.lagerwall@citrix.com>
 <20250805163204.3631483-2-ross.lagerwall@citrix.com> <f4c2a251-146d-4121-88ff-8f6d7624d298@suse.com>
In-Reply-To: <f4c2a251-146d-4121-88ff-8f6d7624d298@suse.com>
From: Ross Lagerwall <ross.lagerwall@citrix.com>
Date: Fri, 8 Aug 2025 11:14:13 +0100
X-Gm-Features: Ac12FXzCsrsoopuoYTyKYJ9EQP-ZzvyprqeK6Hi5rUaltyGxwSn1Egx6pQm1EcA
Message-ID: <CAG7k0Eo-CF0=EZTznDU2MYEv9ewB5GDHj9GBaUzCRHZYEZdO6g@mail.gmail.com>
Subject: Re: [PATCH 1/2] efi: Call FreePages only if needed
To: Jan Beulich <jbeulich@suse.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
	=?UTF-8?Q?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>, 
	xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Wed, Aug 6, 2025 at 7:16=E2=80=AFAM Jan Beulich <jbeulich@suse.com> wrot=
e:
>
> On 05.08.2025 18:32, Ross Lagerwall wrote:
> > If the config file is builtin, cfg.addr will be zero but Xen
> > unconditionally calls FreePages() on the address.
> >
> > Xen may also call FreePages() with a zero address if blexit() is called
> > after this point since cfg.need_to_free is not set to false.
> >
> > The UEFI specification does not say whether calling FreePages() with a
> > zero address is allowed so let's be cautious and use cfg.need_to_free
> > properly.
>
> Well, no, this paragraph makes no sense. Of course this is allowed, but
> not as no-op behavior (like free(NULL) would be), but to free memory
> starting at 0.

Fair enough. This paragraph could simply be dropped then.

>
> > Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
>
> This pretty clearly wants a Fixes: tag, or maybe it even needs to be two.
> I've checked the original code in 4.2, and things were consistent there,
> afaics. So breakage was introduced perhaps in one or two of the many
> re-works.
>

Fixes: 8a71d50ed40b ("efi: Enable booting unified
hypervisor/kernel/initrd images")
Fixes: 04be2c3a0678 ("efi/boot.c: add file.need_to_free")

Do you want an updated patch or can these tweaks be done while committing?

Thanks,
Ross


From xen-devel-bounces@lists.xenproject.org Fri Aug 08 10:20:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 10:20:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074227.1436893 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukKDG-0000ds-Br; Fri, 08 Aug 2025 10:20:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074227.1436893; Fri, 08 Aug 2025 10:20:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukKDG-0000dl-96; Fri, 08 Aug 2025 10:20:38 +0000
Received: by outflank-mailman (input) for mailman id 1074227;
 Fri, 08 Aug 2025 10:20:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=illN=2U=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ukKDE-0000df-P6
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 10:20:36 +0000
Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com
 [2a00:1450:4864:20::52b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5252e039-7441-11f0-a324-13f23c93f187;
 Fri, 08 Aug 2025 12:20:35 +0200 (CEST)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-617b36cc489so3791866a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 Aug 2025 03:20: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
 4fb4d7f45d1cf-615a9115562sm13556169a12.59.2025.08.08.03.20.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 08 Aug 2025 03:20:34 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5252e039-7441-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754648434; x=1755253234; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=21kcGoK8EU0vLgx4YF/BuAadgiyc9oojaTg6aDJcko0=;
        b=KRBzR0FnTJSHJEHVAKSxXdt7KI6yCH//fXHRPaw94/LTSEcdrBQH7iyo9Zhb39CxN2
         uF6Iw64fTyAhyuIExfu7tklsbWY+Ve9lkjfLQ6E3lptkM4x1B2tHGAI1h7hVzqrrvn6x
         FO/zunKBBbQkoXFfzjQ5qlf0aaPeELDYDSkgFWiNF1A220nGVWYGV0EmU7UuwDPNQh8i
         wyUz5NEoy+plLlRnb1dxEjXyQH3fwUGiPvGBYeH8PxrtszY2KLgyf4eavw/S0eYMDW/h
         eVRxFdoOO9DQaYTCCq2hl5IXxcNJR/RVsLVAqp9t60Q2j2Dvtm6xGJXatnSq87FhRykf
         16jA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754648435; x=1755253235;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=21kcGoK8EU0vLgx4YF/BuAadgiyc9oojaTg6aDJcko0=;
        b=hoYpyx78jC39pvJmwsR/XxcrLmA9OYTAt+gicXqbccdCkgt5gLbCNOLtrZdt7gR9Kt
         K3pkIjaOAirdRcvRqGnPHoThzBK2Oj8ZXvxvFULPBhy0tKJMVy0FSgacYZVXHuxXghR1
         PnKLotXJD1BEu8BwVxbykVaoHB9w3J3QIdPmZLy627RQrjTnsp3VD2HXJCL8Hshu26wY
         SktBVQq/OIHsKAtixZzSd99S1zagiQqPIZbW9gCbE71OXNu8az6SR/ksNECdiNxSzNcv
         tBbpCZW1cLcdq/b9xV1osx2M2FNVmcZeMIprtN41FipNbwBbrKOsnIM5i+txw2+mlmp7
         iTbg==
X-Forwarded-Encrypted: i=1; AJvYcCUiLt0VSxt7ctEHG823m9MAacQ1xVFe32sSa8ckfcgrhD3QNozaKDEflWwH1HoSXWXpf0KXmvZQ7oc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz1MPgt6chLA6K6TiBoYCdI7YB4dctESmfIqb9gQ/H9daKBckC/
	kRHwxCisoC5HEa2qMhMZOlacBrJV0NttmaQWAOB3IeS3K3U37pNldU+p0df9Bbo0Pg==
X-Gm-Gg: ASbGncu+3qBlvVO0IlCxsU7Tv+JaaMKL87OgQN4kOt5YxCujOFD8kxSYKnYK3I54N8Z
	gOXwZejA/PZ7vs93pqU1InqwgOiwKjMMERecneA++ncCFvxSXTirnhQs4+RIihVnkk9JgvHezzP
	gLXSJG8dBZamEwG12OHSpRIHajb3iQArocQthXWnBTS9lREMtRDyI2YeFIIrs9T51DTwJVOubwz
	MwN7EGISRZcR4t85/rFX3m1h5Lp7N61WaMk4Gv2WNf1K8aG9XZI3oCdD+MIEImqGwoJGZaG/jH2
	09uf31YyoCz3ezry8lFVD+UTjxb58k+nc1rlcvCkTPF8M/yH6vo868GGOICia2h5bSAStyUtPzk
	/eYQ56scR3lz8HpN7LJwgAmGNSnT8juABuH8Au0vfKm1uPuqKT8i0SORPoBxQTTpjt58UFoAIAI
	QWMIQ7XyY=
X-Google-Smtp-Source: AGHT+IEDjYFBS2M9hzivBWOaOruDtywnG5SvG/wiSgij/xW5Mir1IpzsM0744cBxPrttBdi+x3mT9A==
X-Received: by 2002:a05:6402:234c:b0:615:eeb4:3a26 with SMTP id 4fb4d7f45d1cf-617e2c4bd13mr2054802a12.17.1754648434555;
        Fri, 08 Aug 2025 03:20:34 -0700 (PDT)
Message-ID: <ed663b9f-434c-42e8-921b-b9b4f195b24b@suse.com>
Date: Fri, 8 Aug 2025 12:20:33 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] efi: Call FreePages only if needed
To: Ross Lagerwall <ross.lagerwall@citrix.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
References: <20250805163204.3631483-1-ross.lagerwall@citrix.com>
 <20250805163204.3631483-2-ross.lagerwall@citrix.com>
 <f4c2a251-146d-4121-88ff-8f6d7624d298@suse.com>
 <CAG7k0Eo-CF0=EZTznDU2MYEv9ewB5GDHj9GBaUzCRHZYEZdO6g@mail.gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <CAG7k0Eo-CF0=EZTznDU2MYEv9ewB5GDHj9GBaUzCRHZYEZdO6g@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 08.08.2025 12:14, Ross Lagerwall wrote:
> On Wed, Aug 6, 2025 at 7:16â€¯AM Jan Beulich <jbeulich@suse.com> wrote:
>>
>> On 05.08.2025 18:32, Ross Lagerwall wrote:
>>> If the config file is builtin, cfg.addr will be zero but Xen
>>> unconditionally calls FreePages() on the address.
>>>
>>> Xen may also call FreePages() with a zero address if blexit() is called
>>> after this point since cfg.need_to_free is not set to false.
>>>
>>> The UEFI specification does not say whether calling FreePages() with a
>>> zero address is allowed so let's be cautious and use cfg.need_to_free
>>> properly.
>>
>> Well, no, this paragraph makes no sense. Of course this is allowed, but
>> not as no-op behavior (like free(NULL) would be), but to free memory
>> starting at 0.
> 
> Fair enough. This paragraph could simply be dropped then.
> 
>>
>>> Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
>>
>> This pretty clearly wants a Fixes: tag, or maybe it even needs to be two.
>> I've checked the original code in 4.2, and things were consistent there,
>> afaics. So breakage was introduced perhaps in one or two of the many
>> re-works.
>>
> 
> Fixes: 8a71d50ed40b ("efi: Enable booting unified
> hypervisor/kernel/initrd images")
> Fixes: 04be2c3a0678 ("efi/boot.c: add file.need_to_free")
> 
> Do you want an updated patch or can these tweaks be done while committing?

If the maintainers have no other requests that require a v2, I'm sure this
can be done while committing.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 08 10:39:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 10:39:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074244.1436903 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukKVN-000366-Os; Fri, 08 Aug 2025 10:39:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074244.1436903; Fri, 08 Aug 2025 10:39:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukKVN-00035z-Lp; Fri, 08 Aug 2025 10:39:21 +0000
Received: by outflank-mailman (input) for mailman id 1074244;
 Fri, 08 Aug 2025 10:39:20 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=HESy=2U=ideasonboard.com=tomi.valkeinen@srs-se1.protection.inumbo.net>)
 id 1ukKVL-00035t-NF
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 10:39:20 +0000
Received: from perceval.ideasonboard.com (perceval.ideasonboard.com
 [213.167.242.64]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ef1d272d-7443-11f0-a324-13f23c93f187;
 Fri, 08 Aug 2025 12:39:17 +0200 (CEST)
Received: from [192.168.88.20] (91-158-153-178.elisa-laajakaista.fi
 [91.158.153.178])
 by perceval.ideasonboard.com (Postfix) with ESMTPSA id 8BE56185B;
 Fri,  8 Aug 2025 12:38:25 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ef1d272d-7443-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;
	s=mail; t=1754649506;
	bh=Y0gS6J0mhQktSq+C0TT5Um8U9ovXu1q7Nt6P8iHnDWs=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=Jr5lVrSPVUOSgI3ZG7rnQxfQ0mqE4UQeD1awvg09VPwIcXyhDp4kr260Cag2+AVUu
	 3UVp9sYtGyq1oS9DwSsYsCKf661vS8pRO1lByoraJdJwR4zimofODif1GIbMYMWmRh
	 eA9PS7yFrsupq3Eo+Lr3hdO59qI70eg9MvUL2/P4=
Message-ID: <a23636e1-4930-405e-abc0-92f99b830148@ideasonboard.com>
Date: Fri, 8 Aug 2025 13:39:12 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 02/25] drm/dumb-buffers: Provide helper to set pitch
 and size
To: Thomas Zimmermann <tzimmermann@suse.de>
Cc: dri-devel@lists.freedesktop.org, linux-mediatek@lists.infradead.org,
 freedreno@lists.freedesktop.org, linux-arm-msm@vger.kernel.org,
 imx@lists.linux.dev, linux-samsung-soc@vger.kernel.org,
 nouveau@lists.freedesktop.org, virtualization@lists.linux.dev,
 spice-devel@lists.freedesktop.org, linux-renesas-soc@vger.kernel.org,
 linux-rockchip@lists.infradead.org, linux-tegra@vger.kernel.org,
 intel-xe@lists.freedesktop.org, xen-devel@lists.xenproject.org,
 simona@ffwll.ch, airlied@gmail.com, mripard@kernel.org,
 maarten.lankhorst@linux.intel.com, geert@linux-m68k.org
References: <20250613090431.127087-1-tzimmermann@suse.de>
 <20250613090431.127087-3-tzimmermann@suse.de>
Content-Language: en-US
From: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Autocrypt: addr=tomi.valkeinen@ideasonboard.com; keydata=
 xsFNBE6ms0cBEACyizowecZqXfMZtnBniOieTuFdErHAUyxVgtmr0f5ZfIi9Z4l+uUN4Zdw2
 wCEZjx3o0Z34diXBaMRJ3rAk9yB90UJAnLtb8A97Oq64DskLF81GCYB2P1i0qrG7UjpASgCA
 Ru0lVvxsWyIwSfoYoLrazbT1wkWRs8YBkkXQFfL7Mn3ZMoGPcpfwYH9O7bV1NslbmyJzRCMO
 eYV258gjCcwYlrkyIratlHCek4GrwV8Z9NQcjD5iLzrONjfafrWPwj6yn2RlL0mQEwt1lOvn
 LnI7QRtB3zxA3yB+FLsT1hx0va6xCHpX3QO2gBsyHCyVafFMrg3c/7IIWkDLngJxFgz6DLiA
 G4ld1QK/jsYqfP2GIMH1mFdjY+iagG4DqOsjip479HCWAptpNxSOCL6z3qxCU8MCz8iNOtZk
 DYXQWVscM5qgYSn+fmMM2qN+eoWlnCGVURZZLDjg387S2E1jT/dNTOsM/IqQj+ZROUZuRcF7
 0RTtuU5q1HnbRNwy+23xeoSGuwmLQ2UsUk7Q5CnrjYfiPo3wHze8avK95JBoSd+WIRmV3uoO
 rXCoYOIRlDhg9XJTrbnQ3Ot5zOa0Y9c4IpyAlut6mDtxtKXr4+8OzjSVFww7tIwadTK3wDQv
 Bus4jxHjS6dz1g2ypT65qnHen6mUUH63lhzewqO9peAHJ0SLrQARAQABzTBUb21pIFZhbGtl
 aW5lbiA8dG9taS52YWxrZWluZW5AaWRlYXNvbmJvYXJkLmNvbT7CwY4EEwEIADgWIQTEOAw+
 ll79gQef86f6PaqMvJYe9QUCX/HruAIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRD6
 PaqMvJYe9WmFD/99NGoD5lBJhlFDHMZvO+Op8vCwnIRZdTsyrtGl72rVh9xRfcSgYPZUvBuT
 VDxE53mY9HaZyu1eGMccYRBaTLJSfCXl/g317CrMNdY0k40b9YeIX10feiRYEWoDIPQ3tMmA
 0nHDygzcnuPiPT68JYZ6tUOvAt7r6OX/litM+m2/E9mtp8xCoWOo/kYO4mOAIoMNvLB8vufi
 uBB4e/AvAjtny4ScuNV5c5q8MkfNIiOyag9QCiQ/JfoAqzXRjVb4VZG72AKaElwipiKCWEcU
 R4+Bu5Qbaxj7Cd36M/bI54OrbWWETJkVVSV1i0tghCd6HHyquTdFl7wYcz6cL1hn/6byVnD+
 sR3BLvSBHYp8WSwv0TCuf6tLiNgHAO1hWiQ1pOoXyMEsxZlgPXT+wb4dbNVunckwqFjGxRbl
 Rz7apFT/ZRwbazEzEzNyrBOfB55xdipG/2+SmFn0oMFqFOBEszXLQVslh64lI0CMJm2OYYe3
 PxHqYaztyeXsx13Bfnq9+bUynAQ4uW1P5DJ3OIRZWKmbQd/Me3Fq6TU57LsvwRgE0Le9PFQs
 dcP2071rMTpqTUteEgODJS4VDf4lXJfY91u32BJkiqM7/62Cqatcz5UWWHq5xeF03MIUTqdE
 qHWk3RJEoWHWQRzQfcx6Fn2fDAUKhAddvoopfcjAHfpAWJ+ENc7BTQROprNHARAAx0aat8GU
 hsusCLc4MIxOQwidecCTRc9Dz/7U2goUwhw2O5j9TPqLtp57VITmHILnvZf6q3QAho2QMQyE
 DDvHubrdtEoqaaSKxKkFie1uhWNNvXPhwkKLYieyL9m2JdU+b88HaDnpzdyTTR4uH7wk0bBa
 KbTSgIFDDe5lXInypewPO30TmYNkFSexnnM3n1PBCqiJXsJahE4ZQ+WnV5FbPUj8T2zXS2xk
 0LZ0+DwKmZ0ZDovvdEWRWrz3UzJ8DLHb7blPpGhmqj3ANXQXC7mb9qJ6J/VSl61GbxIO2Dwb
 xPNkHk8fwnxlUBCOyBti/uD2uSTgKHNdabhVm2dgFNVuS1y3bBHbI/qjC3J7rWE0WiaHWEqy
 UVPk8rsph4rqITsj2RiY70vEW0SKePrChvET7D8P1UPqmveBNNtSS7In+DdZ5kUqLV7rJnM9
 /4cwy+uZUt8cuCZlcA5u8IsBCNJudxEqBG10GHg1B6h1RZIz9Q9XfiBdaqa5+CjyFs8ua01c
 9HmyfkuhXG2OLjfQuK+Ygd56mV3lq0aFdwbaX16DG22c6flkkBSjyWXYepFtHz9KsBS0DaZb
 4IkLmZwEXpZcIOQjQ71fqlpiXkXSIaQ6YMEs8WjBbpP81h7QxWIfWtp+VnwNGc6nq5IQDESH
 mvQcsFS7d3eGVI6eyjCFdcAO8eMAEQEAAcLBXwQYAQIACQUCTqazRwIbDAAKCRD6PaqMvJYe
 9fA7EACS6exUedsBKmt4pT7nqXBcRsqm6YzT6DeCM8PWMTeaVGHiR4TnNFiT3otD5UpYQI7S
 suYxoTdHrrrBzdlKe5rUWpzoZkVK6p0s9OIvGzLT0lrb0HC9iNDWT3JgpYDnk4Z2mFi6tTbq
 xKMtpVFRA6FjviGDRsfkfoURZI51nf2RSAk/A8BEDDZ7lgJHskYoklSpwyrXhkp9FHGMaYII
 m9EKuUTX9JPDG2FTthCBrdsgWYPdJQvM+zscq09vFMQ9Fykbx5N8z/oFEUy3ACyPqW2oyfvU
 CH5WDpWBG0s5BALp1gBJPytIAd/pY/5ZdNoi0Cx3+Z7jaBFEyYJdWy1hGddpkgnMjyOfLI7B
 CFrdecTZbR5upjNSDvQ7RG85SnpYJTIin+SAUazAeA2nS6gTZzumgtdw8XmVXZwdBfF+ICof
 92UkbYcYNbzWO/GHgsNT1WnM4sa9lwCSWH8Fw1o/3bX1VVPEsnESOfxkNdu+gAF5S6+I6n3a
 ueeIlwJl5CpT5l8RpoZXEOVtXYn8zzOJ7oGZYINRV9Pf8qKGLf3Dft7zKBP832I3PQjeok7F
 yjt+9S+KgSFSHP3Pa4E7lsSdWhSlHYNdG/czhoUkSCN09C0rEK93wxACx3vtxPLjXu6RptBw
 3dRq7n+mQChEB1am0BueV1JZaBboIL0AGlSJkm23kw==
In-Reply-To: <20250613090431.127087-3-tzimmermann@suse.de>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Hi,

On 13/06/2025 12:00, Thomas Zimmermann wrote:
> Add drm_modes_size_dumb(), a helper to calculate the dumb-buffer
> scanline pitch and allocation size. Implementations of struct
> drm_driver.dumb_create can call the new helper for their size
> computations.
> 
> There is currently quite a bit of code duplication among DRM's
> memory managers. Each calculates scanline pitch and buffer size
> from the given arguments, but the implementations are inconsistent
> in how they treat alignment and format support. Later patches will
> unify this code on top of drm_mode_size_dumb() as much as possible.
> 
> drm_mode_size_dumb() uses existing 4CC format helpers to interpret
> the given color mode. This makes the dumb-buffer interface behave
> similar the kernel's video= parameter. Current per-driver implementations
> again likely have subtle differences or bugs in how they support color
> modes.
> 
> The dumb-buffer UAPI is only specified for known color modes. These
> values describe linear, single-plane RGB color formats or legacy index
> formats. Other values should not be specified. But some user space
> still does. So for unknown color modes, there are a number of known
> exceptions for which drm_mode_size_dumb() calculates the pitch from
> the bpp value, as before. All other values work the same but print
> an error.
> 
> v5:
> - check for overflows with check_mul_overflow() (Tomi)
> v4:
> - use %u conversion specifier (Geert)
> - list DRM_FORMAT_Dn in UAPI docs (Geert)
> - avoid dmesg spamming with drm_warn_once() (Sima)
> - add more information about bpp special case (Sima)
> - clarify parameters for hardware alignment
> - add a TODO item for DUMB_CREATE2
> v3:
> - document the UAPI semantics
> - compute scanline pitch from for unknown color modes (Andy, Tomi)
> 
> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
> Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
> ---
>  Documentation/gpu/todo.rst         |  27 ++++++
>  drivers/gpu/drm/drm_dumb_buffers.c | 130 +++++++++++++++++++++++++++++
>  include/drm/drm_dumb_buffers.h     |  14 ++++
>  include/uapi/drm/drm_mode.h        |  50 ++++++++++-
>  4 files changed, 220 insertions(+), 1 deletion(-)
>  create mode 100644 include/drm/drm_dumb_buffers.h
> 
> diff --git a/Documentation/gpu/todo.rst b/Documentation/gpu/todo.rst
> index be8637da3fe9..f7312afa87b5 100644
> --- a/Documentation/gpu/todo.rst
> +++ b/Documentation/gpu/todo.rst
> @@ -648,6 +648,33 @@ Contact: Thomas Zimmermann <tzimmermann@suse.de>, Simona Vetter
>  
>  Level: Advanced
>  
> +Implement a new DUMB_CREATE2 ioctl
> +----------------------------------
> +
> +The current DUMB_CREATE ioctl is not well defined. Instead of a pixel and
> +framebuffer format, it only accepts a color mode of vague semantics. Assuming
> +a linear framebuffer, the color mode gives and idea of the supported pixel

"an" idea.

> +format. But userspace effectively has to guess the correct values. It really
> +only works reliable with framebuffers in XRGB8888. Userspace has begun to

"reliably"

> +workaround these limitations by computing arbitrary format's buffer sizes and
> +calculating their sizes in terms of XRGB8888 pixels.
> +
> +One possible solution is a new ioctl DUMB_CREATE2. It should accept a DRM
> +format and a format modifier to resolve the color mode's ambiguity. As
> +framebuffers can be multi-planar, the new ioctl has to return the buffer size,
> +pitch and GEM handle for each individual color plane.
> +
> +In the first step, the new ioctl can be limited to the current features of
> +the existing DUMB_CREATE. Individual drivers can then be extended to support
> +multi-planar formats. Rockchip might require this and would be a good candidate.
> +
> +In addition to the kernel implementation, there must be user-space support
> +for the new ioctl. There's code in Mesa that might be able to use the new
> +call.

I think it would be important to allow non-alloc use of DUMB_CREATE2, or
have another ioctl for it. In other words, you could ask the driver what
the buffers for pixel format XYZ have to look like, and then you could
allocate the actual memory buffers from somewhere else.

Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>

 Tomi

> +Contact: Thomas Zimmermann <tzimmermann@suse.de>
> +
> +Level: Advanced
>  
>  Better Testing
>  ==============
> diff --git a/drivers/gpu/drm/drm_dumb_buffers.c b/drivers/gpu/drm/drm_dumb_buffers.c
> index 9916aaf5b3f2..e9eed9a5b760 100644
> --- a/drivers/gpu/drm/drm_dumb_buffers.c
> +++ b/drivers/gpu/drm/drm_dumb_buffers.c
> @@ -25,6 +25,8 @@
>  
>  #include <drm/drm_device.h>
>  #include <drm/drm_drv.h>
> +#include <drm/drm_dumb_buffers.h>
> +#include <drm/drm_fourcc.h>
>  #include <drm/drm_gem.h>
>  #include <drm/drm_mode.h>
>  
> @@ -57,6 +59,134 @@
>   * a hardware-specific ioctl to allocate suitable buffer objects.
>   */
>  
> +static int drm_mode_align_dumb(struct drm_mode_create_dumb *args,
> +			       unsigned long hw_pitch_align,
> +			       unsigned long hw_size_align)
> +{
> +	u32 pitch = args->pitch;
> +	u32 size;
> +
> +	if (!pitch)
> +		return -EINVAL;
> +
> +	if (hw_pitch_align)
> +		pitch = roundup(pitch, hw_pitch_align);
> +
> +	if (!hw_size_align)
> +		hw_size_align = PAGE_SIZE;
> +	else if (!IS_ALIGNED(hw_size_align, PAGE_SIZE))
> +		return -EINVAL; /* TODO: handle this if necessary */
> +
> +	if (check_mul_overflow(args->height, pitch, &size))
> +		return -EINVAL;
> +	size = ALIGN(size, hw_size_align);
> +	if (!size)
> +		return -EINVAL;
> +
> +	args->pitch = pitch;
> +	args->size = size;
> +
> +	return 0;
> +}
> +
> +/**
> + * drm_mode_size_dumb - Calculates the scanline and buffer sizes for dumb buffers
> + * @dev: DRM device
> + * @args: Parameters for the dumb buffer
> + * @hw_pitch_align: Hardware scanline alignment in bytes
> + * @hw_size_align: Hardware buffer-size alignment in bytes
> + *
> + * The helper drm_mode_size_dumb() calculates the size of the buffer
> + * allocation and the scanline size for a dumb buffer. Callers have to
> + * set the buffers width, height and color mode in the argument @arg.
> + * The helper validates the correctness of the input and tests for
> + * possible overflows. If successful, it returns the dumb buffer's
> + * required scanline pitch and size in &args.
> + *
> + * The parameter @hw_pitch_align allows the driver to specifies an
> + * alignment for the scanline pitch, if the hardware requires any. The
> + * calculated pitch will be a multiple of the alignment. The parameter
> + * @hw_size_align allows to specify an alignment for buffer sizes. The
> + * provided alignment should represent requirements of the graphics
> + * hardware. drm_mode_size_dumb() handles GEM-related constraints
> + * automatically across all drivers and hardware. For example, the
> + * returned buffer size is always a multiple of PAGE_SIZE, which is
> + * required by mmap().
> + *
> + * Returns:
> + * Zero on success, or a negative error code otherwise.
> + */
> +int drm_mode_size_dumb(struct drm_device *dev,
> +		       struct drm_mode_create_dumb *args,
> +		       unsigned long hw_pitch_align,
> +		       unsigned long hw_size_align)
> +{
> +	u64 pitch = 0;
> +	u32 fourcc;
> +
> +	/*
> +	 * The scanline pitch depends on the buffer width and the color
> +	 * format. The latter is specified as a color-mode constant for
> +	 * which we first have to find the corresponding color format.
> +	 *
> +	 * Different color formats can have the same color-mode constant.
> +	 * For example XRGB8888 and BGRX8888 both have a color mode of 32.
> +	 * It is possible to use different formats for dumb-buffer allocation
> +	 * and rendering as long as all involved formats share the same
> +	 * color-mode constant.
> +	 */
> +	fourcc = drm_driver_color_mode_format(dev, args->bpp);
> +	if (fourcc != DRM_FORMAT_INVALID) {
> +		const struct drm_format_info *info = drm_format_info(fourcc);
> +
> +		if (!info)
> +			return -EINVAL;
> +		pitch = drm_format_info_min_pitch(info, 0, args->width);
> +	} else if (args->bpp) {
> +		/*
> +		 * Some userspace throws in arbitrary values for bpp and
> +		 * relies on the kernel to figure it out. In this case we
> +		 * fall back to the old method of using bpp directly. The
> +		 * over-commitment of memory from the rounding is acceptable
> +		 * for compatibility with legacy userspace. We have a number
> +		 * of deprecated legacy values that are explicitly supported.
> +		 */
> +		switch (args->bpp) {
> +		default:
> +			drm_warn_once(dev,
> +				      "Unknown color mode %u; guessing buffer size.\n",
> +				      args->bpp);
> +			fallthrough;
> +		/*
> +		 * These constants represent various YUV formats supported by
> +		 * drm_gem_afbc_get_bpp().
> +		 */
> +		case 12: // DRM_FORMAT_YUV420_8BIT
> +		case 15: // DRM_FORMAT_YUV420_10BIT
> +		case 30: // DRM_FORMAT_VUY101010
> +			fallthrough;
> +		/*
> +		 * Used by Mesa and Gstreamer to allocate NV formats and others
> +		 * as RGB buffers. Technically, XRGB16161616F formats are RGB,
> +		 * but the dumb buffers are not supposed to be used for anything
> +		 * beyond 32 bits per pixels.
> +		 */
> +		case 10: // DRM_FORMAT_NV{15,20,30}, DRM_FORMAT_P010
> +		case 64: // DRM_FORMAT_{XRGB,XBGR,ARGB,ABGR}16161616F
> +			pitch = args->width * DIV_ROUND_UP(args->bpp, SZ_8);
> +			break;
> +		}
> +	}
> +
> +	if (!pitch || pitch > U32_MAX)
> +		return -EINVAL;
> +
> +	args->pitch = pitch;
> +
> +	return drm_mode_align_dumb(args, hw_pitch_align, hw_size_align);
> +}
> +EXPORT_SYMBOL(drm_mode_size_dumb);
> +
>  int drm_mode_create_dumb(struct drm_device *dev,
>  			 struct drm_mode_create_dumb *args,
>  			 struct drm_file *file_priv)
> diff --git a/include/drm/drm_dumb_buffers.h b/include/drm/drm_dumb_buffers.h
> new file mode 100644
> index 000000000000..1f3a8236fb3d
> --- /dev/null
> +++ b/include/drm/drm_dumb_buffers.h
> @@ -0,0 +1,14 @@
> +/* SPDX-License-Identifier: MIT */
> +
> +#ifndef __DRM_DUMB_BUFFERS_H__
> +#define __DRM_DUMB_BUFFERS_H__
> +
> +struct drm_device;
> +struct drm_mode_create_dumb;
> +
> +int drm_mode_size_dumb(struct drm_device *dev,
> +		       struct drm_mode_create_dumb *args,
> +		       unsigned long hw_pitch_align,
> +		       unsigned long hw_size_align);
> +
> +#endif
> diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h
> index c082810c08a8..efe8f5ad35ee 100644
> --- a/include/uapi/drm/drm_mode.h
> +++ b/include/uapi/drm/drm_mode.h
> @@ -1058,7 +1058,7 @@ struct drm_mode_crtc_page_flip_target {
>   * struct drm_mode_create_dumb - Create a KMS dumb buffer for scanout.
>   * @height: buffer height in pixels
>   * @width: buffer width in pixels
> - * @bpp: bits per pixel
> + * @bpp: color mode
>   * @flags: must be zero
>   * @handle: buffer object handle
>   * @pitch: number of bytes between two consecutive lines
> @@ -1066,6 +1066,54 @@ struct drm_mode_crtc_page_flip_target {
>   *
>   * User-space fills @height, @width, @bpp and @flags. If the IOCTL succeeds,
>   * the kernel fills @handle, @pitch and @size.
> + *
> + * The value of @bpp is a color-mode number describing a specific format
> + * or a variant thereof. The value often corresponds to the number of bits
> + * per pixel for most modes, although there are exceptions. Each color mode
> + * maps to a DRM format plus a number of modes with similar pixel layout.
> + * Framebuffer layout is always linear.
> + *
> + * Support for all modes and formats is optional. Even if dumb-buffer
> + * creation with a certain color mode succeeds, it is not guaranteed that
> + * the DRM driver supports any of the related formats. Most drivers support
> + * a color mode of 32 with a format of DRM_FORMAT_XRGB8888 on their primary
> + * plane.
> + *
> + * +------------+------------------------+------------------------+
> + * | Color mode | Framebuffer format     | Compatible formats     |
> + * +============+========================+========================+
> + * |     32     |  * DRM_FORMAT_XRGB8888 |  * DRM_FORMAT_BGRX8888 |
> + * |            |                        |  * DRM_FORMAT_RGBX8888 |
> + * |            |                        |  * DRM_FORMAT_XBGR8888 |
> + * +------------+------------------------+------------------------+
> + * |     24     |  * DRM_FORMAT_RGB888   |  * DRM_FORMAT_BGR888   |
> + * +------------+------------------------+------------------------+
> + * |     16     |  * DRM_FORMAT_RGB565   |  * DRM_FORMAT_BGR565   |
> + * +------------+------------------------+------------------------+
> + * |     15     |  * DRM_FORMAT_XRGB1555 |  * DRM_FORMAT_BGRX1555 |
> + * |            |                        |  * DRM_FORMAT_RGBX1555 |
> + * |            |                        |  * DRM_FORMAT_XBGR1555 |
> + * +------------+------------------------+------------------------+
> + * |      8     |  * DRM_FORMAT_C8       |  * DRM_FORMAT_D8       |
> + * |            |                        |  * DRM_FORMAT_R8       |
> + * +------------+------------------------+------------------------+
> + * |      4     |  * DRM_FORMAT_C4       |  * DRM_FORMAT_D4       |
> + * |            |                        |  * DRM_FORMAT_R4       |
> + * +------------+------------------------+------------------------+
> + * |      2     |  * DRM_FORMAT_C2       |  * DRM_FORMAT_D2       |
> + * |            |                        |  * DRM_FORMAT_R2       |
> + * +------------+------------------------+------------------------+
> + * |      1     |  * DRM_FORMAT_C1       |  * DRM_FORMAT_D1       |
> + * |            |                        |  * DRM_FORMAT_R1       |
> + * +------------+------------------------+------------------------+
> + *
> + * Color modes of 10, 12, 15, 30 and 64 are only supported for use by
> + * legacy user space. Please don't use them in new code. Other modes
> + * are not support.
> + *
> + * Do not attempt to allocate anything but linear framebuffer memory
> + * with single-plane RGB data. Allocation of other framebuffer
> + * layouts requires dedicated ioctls in the respective DRM driver.
>   */
>  struct drm_mode_create_dumb {
>  	__u32 height;



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 10:43:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 10:43:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074255.1436913 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukKYy-00053F-9T; Fri, 08 Aug 2025 10:43:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074255.1436913; Fri, 08 Aug 2025 10:43:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukKYy-000538-6Z; Fri, 08 Aug 2025 10:43:04 +0000
Received: by outflank-mailman (input) for mailman id 1074255;
 Fri, 08 Aug 2025 10:43:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Dtzj=2U=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ukKYw-000532-Cy
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 10:43:02 +0000
Received: from mail-wr1-x441.google.com (mail-wr1-x441.google.com
 [2a00:1450:4864:20::441])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 73ccafe2-7444-11f0-b898-0df219b8e170;
 Fri, 08 Aug 2025 12:43:00 +0200 (CEST)
Received: by mail-wr1-x441.google.com with SMTP id
 ffacd0b85a97d-3a6cd1a6fecso1413356f8f.3
 for <xen-devel@lists.xenproject.org>; Fri, 08 Aug 2025 03:43:00 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459e6867193sm126691735e9.6.2025.08.08.03.42.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 08 Aug 2025 03:42:59 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 73ccafe2-7444-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754649780; x=1755254580; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=gtA0WL2tqSrtxY3a/9ST5sU1cXkGfa3ReQ4mP+Og9T4=;
        b=V28Fz2xtYY+4DCL/x2GnKhyQtQ0Qes9Ks0R4h5J8s3hFta8z9fxJZTinOBUb5re7Fh
         zVAtCuQDBxoGZ8EgWESDUZa9ovVuzGS5uVrtkIGIWIClU0CPa5ZnOpJNQ+Sap0jV5oU2
         KuZ57jeaQX7HJfvqxY+HWimIEDz2lK4T+fsag=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754649780; x=1755254580;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gtA0WL2tqSrtxY3a/9ST5sU1cXkGfa3ReQ4mP+Og9T4=;
        b=jnuQVONi35TtUzMVsd/VxS8UfWi54t8sLx/B2IH7nGlKRWe5gNcWHk9s1NcxjbHWEW
         AG+aUXe9gHauyTSq+ncHKNkk7raoKz9x6f+PYRFeRNXx2Oqz0qB4SkQOXE4srU80/PtC
         59Is4esYSp7JHQQ4h96OxLvH4cbFwRnC15rDKYePXxjUf8hhY9IIt/wCEagQr0mQ1v0g
         /sMWD9KmAd2NRRVi5lOj2iaCQAaXsy1C2LRZ5EtHcbpFAPMKjMUybP5uUmFDGEZ7u0Eq
         7W4qgGpVj4tOV1RNE/sNoVIw7/NckAo28KM5NKbg2fwLCU9Bqh3Cx210ZxMcRm1mkHi0
         7G3Q==
X-Forwarded-Encrypted: i=1; AJvYcCVy5Kk0Nkjnhun9ZpXvvuGMFVXp/pL8LJQevclnuT2Q/7ijCcSFqohg42MfqwktzrdbvNxsZLoPs34=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzRWqS2Fdr8hlsOJkK3lCQJGmr66S/7fwWll3f74NSmU1LgreMD
	C1SaW9EQm2H8pHxSjEQUE1R1OemTkXbuTKjB4JilT4xPtzh/Z8sr+HqlLYo6XQBAkNl5DNlY4AD
	WQ3cocL6TPA==
X-Gm-Gg: ASbGncvbamsZVqfqZcRlu2+NagDX9qYf2qqT2Vaxk3KkbtagAmgTdZ0CAruCZmhU86k
	3ynczWkYY+d1cM1vlaj0JRyVU72ShogDwZSJUTg0Uv3yOdca5Q1Bph0o8OzAPRRUZ+O2fhjJ/nd
	vAbUU8bYfaZqAWzFVjMbgXZuFJzpKfBRb2pFK7cuzRFBtVOV7PrPKzRGg5Vc+Vhh9i859HMxPMW
	z0tlywagfeHDxcwTVzfFWVzKXh/oWRLkeZ7ieI7Do4xCZhZeA04A8PpExSVOtKotrS+UzphyE9T
	3uQH2worCiQTB+NRnBT6ESQAxxrj/fHg6vAsm2da/QBslIqCsWiaWbMrOJOA4hRA3oly2d31BF3
	LM/125De2canzDh9siSENXULcfYQ8bfxRPKhOFR+1FtZJrgGogqXivswkr9JgGbI9IG57
X-Google-Smtp-Source: AGHT+IFRRwK/8TxNv2uYo0WdoO5iMjBn0b1np7stAJMFoaKLsbsOiBHctUQp07tX+6jCsYIQ97w7xA==
X-Received: by 2002:a05:6000:4029:b0:3b7:7d96:e24a with SMTP id ffacd0b85a97d-3b900b7b057mr2153405f8f.35.1754649779582;
        Fri, 08 Aug 2025 03:42:59 -0700 (PDT)
Message-ID: <ff3e404c-979e-42a5-98de-45d1b4288230@citrix.com>
Date: Fri, 8 Aug 2025 11:42:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/4] x86/domctl: Stop using XLAT_cpu_user_regs()
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250807111657.201849-1-andrew.cooper3@citrix.com>
 <20250807111657.201849-2-andrew.cooper3@citrix.com>
 <ed587862-b239-429b-a478-e2f574312a2a@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: <ed587862-b239-429b-a478-e2f574312a2a@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 08/08/2025 11:09 am, Jan Beulich wrote:
> On 07.08.2025 13:16, Andrew Cooper wrote:
>> In order to support FRED, we're going to have to remove the {ds..gs} fields
>> from struct cpu_user_regs, meaning that it is going to have to become a
>> different type to the structure embedded in vcpu_guest_context_u.
>>
>> In both arch_{get,set}_info_guest(), expand the memcpy()/XLAT_cpu_user_regs()
>> to copy the fields individually.  This will allow us to eventually make them
>> different types.
>>
>> This does cause some minor changes in behaviour for the hypercalls.
>>
>> It is specifically not the case that a toolstack could set_info(); get_info();
>> and get an identical bit pattern back.  Amongst other things, the
>> architectural sticky bits in registers are applied during setting.
>>
>> Previously, XLAT_cpu_user_regs() omitted the _pad fields in the compat case
>> whereas the non-compat case included them owing to the single memcpy().
>>
>> Omit the _pad fields in the non-compat case too; for all but the oldest of
>> CPUs, the segment selectors are zero-extended by hardware when pushed onto the
>> stack, so non-zero values here get lost naturally.  Furthermore, FRED reuses
>> the space above cs and ss for extra state, and a PV guest for now at least
>> must not be able to write the control state.
>>
>> Omit the error_code and entry_vector fields too.  They're already identified
>> as private fields in the public API, and are stale outside of Xen's
>> interrupt/exception/syscall handler.  They're also a very minor information
>> leak of which event caused the last deschedule of a vCPU.
> I think my prior remark towards tools like xenctx wasn't really addressed.
> Then again that particular tool doesn't use the fields now, so apparently
> no-one ever saw a need.

Oh, sorry.Â  I did specifically look (everywhere in tools, not just
xenctx), and they're not used at all.

Xenalyze uses an error_code, but that's a field name from the EPT/NPT
fault trace record, not from cpu_user_regs.

Finally, the observation about the information leak.Â  The information
present is often the timer interrupt (end of time-slice), or the event
check IPI (from vcpu_pause()).

gdbsx is the only utility that stands a chance of reliably using
->entry_vector, and even it doesn't because that's not how GDB works.

Overall, I'd say people have been pretty good at following the /*
Private */ note in the public ABI.


>
>> --- a/xen/arch/x86/domain.c
>> +++ b/xen/arch/x86/domain.c
>> @@ -1233,7 +1233,24 @@ int arch_set_info_guest(
>>  
>>      if ( !compat )
>>      {
>> -        memcpy(&v->arch.user_regs, &c.nat->user_regs, sizeof(c.nat->user_regs));
>> +        memset(&v->arch.user_regs, 0, sizeof(v->arch.user_regs));
> Any reason to have this and ...
>
>> +        v->arch.user_regs.rbx               = c.nat->user_regs.rbx;
>> +        v->arch.user_regs.rcx               = c.nat->user_regs.rcx;
>> +        v->arch.user_regs.rdx               = c.nat->user_regs.rdx;
>> +        v->arch.user_regs.rsi               = c.nat->user_regs.rsi;
>> +        v->arch.user_regs.rdi               = c.nat->user_regs.rdi;
>> +        v->arch.user_regs.rbp               = c.nat->user_regs.rbp;
>> +        v->arch.user_regs.rax               = c.nat->user_regs.rax;
>> +        v->arch.user_regs.rip               = c.nat->user_regs.rip;
>> +        v->arch.user_regs.cs                = c.nat->user_regs.cs;
>> +        v->arch.user_regs.rflags            = c.nat->user_regs.rflags;
>> +        v->arch.user_regs.rsp               = c.nat->user_regs.rsp;
>> +        v->arch.user_regs.ss                = c.nat->user_regs.ss;
>> +        v->arch.user_regs.es                = c.nat->user_regs.es;
>> +        v->arch.user_regs.ds                = c.nat->user_regs.ds;
>> +        v->arch.user_regs.fs                = c.nat->user_regs.fs;
>> +        v->arch.user_regs.gs                = c.nat->user_regs.gs;
>> +
>>          if ( is_pv_domain(d) )
>>              memcpy(v->arch.pv.trap_ctxt, c.nat->trap_ctxt,
>>                     sizeof(c.nat->trap_ctxt));
>> @@ -1241,7 +1258,24 @@ int arch_set_info_guest(
>>  #ifdef CONFIG_COMPAT
>>      else
>>      {
>> -        XLAT_cpu_user_regs(&v->arch.user_regs, &c.cmp->user_regs);
>> +        memset(&v->arch.user_regs, 0, sizeof(v->arch.user_regs));
> ... this separate, rather than putting just one ahead of the if()?

Code generation.Â  If you hoist the memset(), it can't be merged with the
assignments.

Although I see now it's not even attempting the mere (it was in the
past), and I don't care enough to argue, so I'll change it.

> Preferably with that adjustment:
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thanks.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Aug 08 10:43:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 10:43:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074259.1436923 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukKZT-0005WM-Hi; Fri, 08 Aug 2025 10:43:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074259.1436923; Fri, 08 Aug 2025 10:43: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 1ukKZT-0005WF-Ef; Fri, 08 Aug 2025 10:43:35 +0000
Received: by outflank-mailman (input) for mailman id 1074259;
 Fri, 08 Aug 2025 10:43:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=HESy=2U=ideasonboard.com=tomi.valkeinen@srs-se1.protection.inumbo.net>)
 id 1ukKZS-000532-Kt
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 10:43:34 +0000
Received: from perceval.ideasonboard.com (perceval.ideasonboard.com
 [213.167.242.64]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 867af520-7444-11f0-b898-0df219b8e170;
 Fri, 08 Aug 2025 12:43:31 +0200 (CEST)
Received: from [192.168.88.20] (91-158-153-178.elisa-laajakaista.fi
 [91.158.153.178])
 by perceval.ideasonboard.com (Postfix) with ESMTPSA id 8DD69185B;
 Fri,  8 Aug 2025 12:42:40 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 867af520-7444-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;
	s=mail; t=1754649761;
	bh=CO/fvxXdKYelSk5S5fAYN0XS8+AAuk2srS4DoLT3ZxM=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=gmw+egswFeELA4hrEgb/gv6AnnuHPDpLKEaeIB6/fk/2O9nUlvYYatSDjAwEXj/Ji
	 PZ6qJC94/wghfA7P0erc6aW5f8PYvf1NjL6Eoy6vro58JfA7g7zkJzP7EiDoApj54S
	 Fea8twCe/sZIRdtDy5B1s4rc9z9k1UtPtpr4rcZs=
Message-ID: <c07ff778-3d5d-448f-95ba-1c770c388fcc@ideasonboard.com>
Date: Fri, 8 Aug 2025 13:43:27 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 03/25] drm/gem-dma: Compute dumb-buffer sizes with
 drm_mode_size_dumb()
To: Thomas Zimmermann <tzimmermann@suse.de>
Cc: dri-devel@lists.freedesktop.org, linux-mediatek@lists.infradead.org,
 freedreno@lists.freedesktop.org, linux-arm-msm@vger.kernel.org,
 imx@lists.linux.dev, linux-samsung-soc@vger.kernel.org,
 nouveau@lists.freedesktop.org, virtualization@lists.linux.dev,
 spice-devel@lists.freedesktop.org, linux-renesas-soc@vger.kernel.org,
 linux-rockchip@lists.infradead.org, linux-tegra@vger.kernel.org,
 intel-xe@lists.freedesktop.org, xen-devel@lists.xenproject.org,
 simona@ffwll.ch, airlied@gmail.com, mripard@kernel.org,
 maarten.lankhorst@linux.intel.com, geert@linux-m68k.org
References: <20250613090431.127087-1-tzimmermann@suse.de>
 <20250613090431.127087-4-tzimmermann@suse.de>
Content-Language: en-US
From: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Autocrypt: addr=tomi.valkeinen@ideasonboard.com; keydata=
 xsFNBE6ms0cBEACyizowecZqXfMZtnBniOieTuFdErHAUyxVgtmr0f5ZfIi9Z4l+uUN4Zdw2
 wCEZjx3o0Z34diXBaMRJ3rAk9yB90UJAnLtb8A97Oq64DskLF81GCYB2P1i0qrG7UjpASgCA
 Ru0lVvxsWyIwSfoYoLrazbT1wkWRs8YBkkXQFfL7Mn3ZMoGPcpfwYH9O7bV1NslbmyJzRCMO
 eYV258gjCcwYlrkyIratlHCek4GrwV8Z9NQcjD5iLzrONjfafrWPwj6yn2RlL0mQEwt1lOvn
 LnI7QRtB3zxA3yB+FLsT1hx0va6xCHpX3QO2gBsyHCyVafFMrg3c/7IIWkDLngJxFgz6DLiA
 G4ld1QK/jsYqfP2GIMH1mFdjY+iagG4DqOsjip479HCWAptpNxSOCL6z3qxCU8MCz8iNOtZk
 DYXQWVscM5qgYSn+fmMM2qN+eoWlnCGVURZZLDjg387S2E1jT/dNTOsM/IqQj+ZROUZuRcF7
 0RTtuU5q1HnbRNwy+23xeoSGuwmLQ2UsUk7Q5CnrjYfiPo3wHze8avK95JBoSd+WIRmV3uoO
 rXCoYOIRlDhg9XJTrbnQ3Ot5zOa0Y9c4IpyAlut6mDtxtKXr4+8OzjSVFww7tIwadTK3wDQv
 Bus4jxHjS6dz1g2ypT65qnHen6mUUH63lhzewqO9peAHJ0SLrQARAQABzTBUb21pIFZhbGtl
 aW5lbiA8dG9taS52YWxrZWluZW5AaWRlYXNvbmJvYXJkLmNvbT7CwY4EEwEIADgWIQTEOAw+
 ll79gQef86f6PaqMvJYe9QUCX/HruAIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRD6
 PaqMvJYe9WmFD/99NGoD5lBJhlFDHMZvO+Op8vCwnIRZdTsyrtGl72rVh9xRfcSgYPZUvBuT
 VDxE53mY9HaZyu1eGMccYRBaTLJSfCXl/g317CrMNdY0k40b9YeIX10feiRYEWoDIPQ3tMmA
 0nHDygzcnuPiPT68JYZ6tUOvAt7r6OX/litM+m2/E9mtp8xCoWOo/kYO4mOAIoMNvLB8vufi
 uBB4e/AvAjtny4ScuNV5c5q8MkfNIiOyag9QCiQ/JfoAqzXRjVb4VZG72AKaElwipiKCWEcU
 R4+Bu5Qbaxj7Cd36M/bI54OrbWWETJkVVSV1i0tghCd6HHyquTdFl7wYcz6cL1hn/6byVnD+
 sR3BLvSBHYp8WSwv0TCuf6tLiNgHAO1hWiQ1pOoXyMEsxZlgPXT+wb4dbNVunckwqFjGxRbl
 Rz7apFT/ZRwbazEzEzNyrBOfB55xdipG/2+SmFn0oMFqFOBEszXLQVslh64lI0CMJm2OYYe3
 PxHqYaztyeXsx13Bfnq9+bUynAQ4uW1P5DJ3OIRZWKmbQd/Me3Fq6TU57LsvwRgE0Le9PFQs
 dcP2071rMTpqTUteEgODJS4VDf4lXJfY91u32BJkiqM7/62Cqatcz5UWWHq5xeF03MIUTqdE
 qHWk3RJEoWHWQRzQfcx6Fn2fDAUKhAddvoopfcjAHfpAWJ+ENc7BTQROprNHARAAx0aat8GU
 hsusCLc4MIxOQwidecCTRc9Dz/7U2goUwhw2O5j9TPqLtp57VITmHILnvZf6q3QAho2QMQyE
 DDvHubrdtEoqaaSKxKkFie1uhWNNvXPhwkKLYieyL9m2JdU+b88HaDnpzdyTTR4uH7wk0bBa
 KbTSgIFDDe5lXInypewPO30TmYNkFSexnnM3n1PBCqiJXsJahE4ZQ+WnV5FbPUj8T2zXS2xk
 0LZ0+DwKmZ0ZDovvdEWRWrz3UzJ8DLHb7blPpGhmqj3ANXQXC7mb9qJ6J/VSl61GbxIO2Dwb
 xPNkHk8fwnxlUBCOyBti/uD2uSTgKHNdabhVm2dgFNVuS1y3bBHbI/qjC3J7rWE0WiaHWEqy
 UVPk8rsph4rqITsj2RiY70vEW0SKePrChvET7D8P1UPqmveBNNtSS7In+DdZ5kUqLV7rJnM9
 /4cwy+uZUt8cuCZlcA5u8IsBCNJudxEqBG10GHg1B6h1RZIz9Q9XfiBdaqa5+CjyFs8ua01c
 9HmyfkuhXG2OLjfQuK+Ygd56mV3lq0aFdwbaX16DG22c6flkkBSjyWXYepFtHz9KsBS0DaZb
 4IkLmZwEXpZcIOQjQ71fqlpiXkXSIaQ6YMEs8WjBbpP81h7QxWIfWtp+VnwNGc6nq5IQDESH
 mvQcsFS7d3eGVI6eyjCFdcAO8eMAEQEAAcLBXwQYAQIACQUCTqazRwIbDAAKCRD6PaqMvJYe
 9fA7EACS6exUedsBKmt4pT7nqXBcRsqm6YzT6DeCM8PWMTeaVGHiR4TnNFiT3otD5UpYQI7S
 suYxoTdHrrrBzdlKe5rUWpzoZkVK6p0s9OIvGzLT0lrb0HC9iNDWT3JgpYDnk4Z2mFi6tTbq
 xKMtpVFRA6FjviGDRsfkfoURZI51nf2RSAk/A8BEDDZ7lgJHskYoklSpwyrXhkp9FHGMaYII
 m9EKuUTX9JPDG2FTthCBrdsgWYPdJQvM+zscq09vFMQ9Fykbx5N8z/oFEUy3ACyPqW2oyfvU
 CH5WDpWBG0s5BALp1gBJPytIAd/pY/5ZdNoi0Cx3+Z7jaBFEyYJdWy1hGddpkgnMjyOfLI7B
 CFrdecTZbR5upjNSDvQ7RG85SnpYJTIin+SAUazAeA2nS6gTZzumgtdw8XmVXZwdBfF+ICof
 92UkbYcYNbzWO/GHgsNT1WnM4sa9lwCSWH8Fw1o/3bX1VVPEsnESOfxkNdu+gAF5S6+I6n3a
 ueeIlwJl5CpT5l8RpoZXEOVtXYn8zzOJ7oGZYINRV9Pf8qKGLf3Dft7zKBP832I3PQjeok7F
 yjt+9S+KgSFSHP3Pa4E7lsSdWhSlHYNdG/czhoUkSCN09C0rEK93wxACx3vtxPLjXu6RptBw
 3dRq7n+mQChEB1am0BueV1JZaBboIL0AGlSJkm23kw==
In-Reply-To: <20250613090431.127087-4-tzimmermann@suse.de>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13/06/2025 12:00, Thomas Zimmermann wrote:
> Call drm_mode_size_dumb() to compute dumb-buffer scanline pitch and
> buffer size. Align the pitch to a multiple of 8.
> 
> Push the current calculation into the only direct caller imx. Imx's
> hardware requires the framebuffer width to be aligned to 8. The
> driver's current approach is actually incorrect, as it only guarantees
> this implicitly and requires bpp to be a multiple of 8 already. A
> later commit will fix this problem by aligning the scanline pitch
> such that an aligned width still fits into each scanline's memory.
> 
> A number of other drivers are build on top of gem-dma helpers and
> implement their own dumb-buffer allocation. These drivers invoke
> drm_gem_dma_dumb_create_internal(), which is not affected by this
> commit.
> 
> v5:
> - avoid reset of arguments (Tomi)
> 
> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
> ---
>  drivers/gpu/drm/drm_gem_dma_helper.c     | 7 +++++--
>  drivers/gpu/drm/imx/ipuv3/imx-drm-core.c | 4 +++-
>  2 files changed, 8 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_gem_dma_helper.c b/drivers/gpu/drm/drm_gem_dma_helper.c
> index b7f033d4352a..49be9b033610 100644
> --- a/drivers/gpu/drm/drm_gem_dma_helper.c
> +++ b/drivers/gpu/drm/drm_gem_dma_helper.c
> @@ -20,6 +20,7 @@
>  #include <drm/drm.h>
>  #include <drm/drm_device.h>
>  #include <drm/drm_drv.h>
> +#include <drm/drm_dumb_buffers.h>
>  #include <drm/drm_gem_dma_helper.h>
>  #include <drm/drm_vma_manager.h>
>  
> @@ -304,9 +305,11 @@ int drm_gem_dma_dumb_create(struct drm_file *file_priv,
>  			    struct drm_mode_create_dumb *args)
>  {
>  	struct drm_gem_dma_object *dma_obj;
> +	int ret;
>  
> -	args->pitch = DIV_ROUND_UP(args->width * args->bpp, 8);
> -	args->size = args->pitch * args->height;
> +	ret = drm_mode_size_dumb(drm, args, SZ_8, 0);
> +	if (ret)
> +		return ret;
>  
>  	dma_obj = drm_gem_dma_create_with_handle(file_priv, drm, args->size,
>  						 &args->handle);
> diff --git a/drivers/gpu/drm/imx/ipuv3/imx-drm-core.c b/drivers/gpu/drm/imx/ipuv3/imx-drm-core.c
> index ec5fd9a01f1e..af4a30311e18 100644
> --- a/drivers/gpu/drm/imx/ipuv3/imx-drm-core.c
> +++ b/drivers/gpu/drm/imx/ipuv3/imx-drm-core.c
> @@ -145,8 +145,10 @@ static int imx_drm_dumb_create(struct drm_file *file_priv,
>  	int ret;
>  
>  	args->width = ALIGN(width, 8);
> +	args->pitch = DIV_ROUND_UP(args->width * args->bpp, 8);
> +	args->size = args->pitch * args->height;
>  
> -	ret = drm_gem_dma_dumb_create(file_priv, drm, args);
> +	ret = drm_gem_dma_dumb_create_internal(file_priv, drm, args);
>  	if (ret)
>  		return ret;
>  

Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>

 Tomi



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 10:44:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 10:44:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074269.1436934 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukKa5-000625-S4; Fri, 08 Aug 2025 10:44:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074269.1436934; Fri, 08 Aug 2025 10:44: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 1ukKa5-00061y-NE; Fri, 08 Aug 2025 10:44:13 +0000
Received: by outflank-mailman (input) for mailman id 1074269;
 Fri, 08 Aug 2025 10:44:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=X7wO=2U=cloud.com=kevin.lampis@srs-se1.protection.inumbo.net>)
 id 1ukKa4-0005NR-88
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 10:44:12 +0000
Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com
 [2a00:1450:4864:20::536])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9e9b4bf2-7444-11f0-a324-13f23c93f187;
 Fri, 08 Aug 2025 12:44:11 +0200 (CEST)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-6154655c8aeso2885433a12.3
 for <xen-devel@lists.xenproject.org>; Fri, 08 Aug 2025 03:44:11 -0700 (PDT)
Received: from fedora.eng.citrite.net ([185.25.67.249])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-615a8eff60esm13490420a12.13.2025.08.08.03.44.07
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Aug 2025 03: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>
X-Inumbo-ID: 9e9b4bf2-7444-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1754649851; x=1755254651; 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=6OPhMV1SXhoUeCkmofhNOg12vmHdK5r/c0U6u2GaPw4=;
        b=k7RGlQJZTfHkcw4M2pKDr0cTtM+AOCd//ePXatO4Ee5AFKAj+OUvkM3sfwj9ANFExd
         GaIPj0k4OEuipcBva8rCiH2Lh9c563OFD5fqqrwv6YtspdasAcP3G5dSXtX3g4hcrzsI
         z6/AmxaMGY3aO7GVH6YXsm3wqKSWsAlNitaAs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754649851; x=1755254651;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=6OPhMV1SXhoUeCkmofhNOg12vmHdK5r/c0U6u2GaPw4=;
        b=ORjQgZCl3VY76oBtd6FjxwsrGCJOPh4bV5y5NLAuxjbfDvhfmufrSDnRaV0hIVkyH1
         aSoAjro/ImL19GFErs1/7NAHCMw4gNJByV5T+eZ6st9mWVeicAlGAFPFXn0mKbf3Ocg+
         bG5L0ZL4C013assHSdz+TCes45/qciqnx9E+3/IafgidMGCDo7j+z67dbohmTHXNJC8X
         AU0f1p1X2B8TiWN6rsE0m+EskoUESgxVQovKFVE5wK5+SjpU0p8uEZ7yF8zrXLIpeKwJ
         Ku2Qx5H9XS2yXkBsJAlOYzCAgCelHQDRt5a8SzjiiV6Bf+c4Cz7nTk/3UGwZh543HuAY
         w4kw==
X-Gm-Message-State: AOJu0YzdvT8ybDMyAGJWpyBFiqRxIlPxG1+VUHfOnaHyQTEtWqLDjlSi
	lEPFCYotjb/TpYr/v+bFX8kMyjbemXjVFPOtb5pNEgCpjO5lPb6ywBl+eDmSrAfCf5Euq9k8ayp
	DDKro
X-Gm-Gg: ASbGnctPYJ/I4C7d3DcF5MfIUUldktHnu8kHIifAVOnsRP0YfCrABmn9mYl2G41yIxi
	DWcR3ce+upqoWkV9Bjq/yae+mhkTnSVDlhcrwO6OOAe+fLlKNFc5u4pV37ujx31BgrM6qNOJYAY
	W3bGZKmUbt1Wvv8La651K34vEWqSzdjKul/tNjnSi0o7IYQ9ygK5iICcE3zug4K1iezQYXiUWRh
	KFrenEZezkxUryUeUm9qmFRjB+gOx42mBRPqItLf9cenkj5hMImgFS/LRG6ELFJC5pbIr7Cp/Ui
	2Ja2DvC99PVS2gNQdQoQ44hoOGH7Cn97YzpPJJRJH+4QYQ/Ut9Nn3C+IpGmujn/Jo3GLkOYmc+J
	8he/d17w2iQgnzLqePswFsbpI/hv0ebD0Zb+tNIcNYn+279BhSA==
X-Google-Smtp-Source: AGHT+IGUU9ZjQhzrtb23k4QdrryOAYnrPnFYz6oHFjNei9rxZCVaq6wHHTecwNylL4tmyf9Co2pe2A==
X-Received: by 2002:a05:6402:278d:b0:615:c767:5b94 with SMTP id 4fb4d7f45d1cf-617ed1d8376mr800208a12.9.1754649849273;
        Fri, 08 Aug 2025 03:44:09 -0700 (PDT)
From: Kevin Lampis <kevin.lampis@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	roger.pau@citrix.com,
	Kevin Lampis <kevin.lampis@cloud.com>
Subject: [PATCH] x86: Remove x86 prefixed names from cpuinfo
Date: Fri,  8 Aug 2025 11:43:49 +0100
Message-ID: <20250808104349.635091-1-kevin.lampis@cloud.com>
X-Mailer: git-send-email 2.50.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

struct cpuinfo_x86
  .x86        => .family
  .x86_vendor => .vendor
  .x86_model  => .model
  .x86_mask   => .stepping

No functional change.

Signed-off-by: Kevin Lampis <kevin.lampis@cloud.com>
---
 xen/arch/x86/acpi/cpu_idle.c             | 20 +++---
 xen/arch/x86/acpi/cpufreq/acpi.c         |  2 +-
 xen/arch/x86/acpi/cpufreq/cpufreq.c      |  4 +-
 xen/arch/x86/acpi/cpufreq/powernow.c     |  4 +-
 xen/arch/x86/alternative.c               |  8 +--
 xen/arch/x86/apic.c                      |  8 +--
 xen/arch/x86/cpu/amd.c                   | 84 ++++++++++++------------
 xen/arch/x86/cpu/centaur.c               |  4 +-
 xen/arch/x86/cpu/common.c                | 38 +++++------
 xen/arch/x86/cpu/hygon.c                 |  4 +-
 xen/arch/x86/cpu/intel.c                 | 30 ++++-----
 xen/arch/x86/cpu/intel_cacheinfo.c       |  6 +-
 xen/arch/x86/cpu/mcheck/amd_nonfatal.c   |  2 +-
 xen/arch/x86/cpu/mcheck/mcaction.c       |  2 +-
 xen/arch/x86/cpu/mcheck/mce.c            | 30 ++++-----
 xen/arch/x86/cpu/mcheck/mce.h            |  2 +-
 xen/arch/x86/cpu/mcheck/mce_amd.c        | 16 ++---
 xen/arch/x86/cpu/mcheck/mce_intel.c      |  5 +-
 xen/arch/x86/cpu/mcheck/non-fatal.c      |  2 +-
 xen/arch/x86/cpu/mcheck/vmce.c           |  8 +--
 xen/arch/x86/cpu/mtrr/generic.c          |  6 +-
 xen/arch/x86/cpu/mwait-idle.c            |  4 +-
 xen/arch/x86/cpu/vpmu.c                  |  4 +-
 xen/arch/x86/cpu/vpmu_amd.c              |  6 +-
 xen/arch/x86/cpu/vpmu_intel.c            |  4 +-
 xen/arch/x86/cpuid.c                     |  2 +-
 xen/arch/x86/dom0_build.c                |  4 +-
 xen/arch/x86/domain.c                    | 12 ++--
 xen/arch/x86/e820.c                      |  2 +-
 xen/arch/x86/hvm/hvm.c                   |  2 +-
 xen/arch/x86/hvm/svm/svm.c               |  6 +-
 xen/arch/x86/hvm/vmx/vmcs.c              |  4 +-
 xen/arch/x86/hvm/vmx/vmx.c               | 28 ++++----
 xen/arch/x86/i8259.c                     |  2 +-
 xen/arch/x86/include/asm/cpufeature.h    | 21 ++----
 xen/arch/x86/include/asm/intel-family.h  |  4 ++
 xen/arch/x86/io_apic.c                   |  2 +-
 xen/arch/x86/irq.c                       |  4 +-
 xen/arch/x86/mpparse.c                   |  8 +--
 xen/arch/x86/msr.c                       |  4 +-
 xen/arch/x86/nmi.c                       | 12 ++--
 xen/arch/x86/platform_hypercall.c        |  6 +-
 xen/arch/x86/pv/domain.c                 |  2 +-
 xen/arch/x86/pv/emul-priv-op.c           | 30 ++++-----
 xen/arch/x86/setup.c                     |  6 +-
 xen/arch/x86/traps-setup.c               |  4 +-
 xen/arch/x86/tsx.c                       |  4 +-
 xen/drivers/passthrough/amd/iommu_init.c |  6 +-
 48 files changed, 234 insertions(+), 244 deletions(-)

diff --git a/xen/arch/x86/acpi/cpu_idle.c b/xen/arch/x86/acpi/cpu_idle.c
index d60a07bfd5..95a626f49c 100644
--- a/xen/arch/x86/acpi/cpu_idle.c
+++ b/xen/arch/x86/acpi/cpu_idle.c
@@ -178,10 +178,10 @@ static void cf_check do_get_hw_residencies(void *arg)
     struct cpuinfo_x86 *c = &current_cpu_data;
     struct hw_residencies *hw_res = arg;
 
-    if ( c->x86_vendor != X86_VENDOR_INTEL || c->x86 != 6 )
+    if ( c->vendor != X86_VENDOR_INTEL || c->family != 6 )
         return;
 
-    switch ( c->x86_model )
+    switch ( c->model )
     {
     /* 4th generation Intel Core (Haswell) */
     case 0x45:
@@ -915,7 +915,7 @@ void cf_check acpi_dead_idle(void)
             mwait(cx->address, 0);
         }
     }
-    else if ( (current_cpu_data.x86_vendor &
+    else if ( (current_cpu_data.vendor &
                (X86_VENDOR_AMD | X86_VENDOR_HYGON)) &&
               cx->entry_method == ACPI_CSTATE_EM_SYSIO )
     {
@@ -1042,8 +1042,8 @@ static void acpi_processor_power_init_bm_check(struct acpi_processor_flags *flag
     flags->bm_check = 0;
     if ( num_online_cpus() == 1 )
         flags->bm_check = 1;
-    else if ( (c->x86_vendor == X86_VENDOR_INTEL) ||
-              ((c->x86_vendor == X86_VENDOR_AMD) && (c->x86 == 0x15)) )
+    else if ( (c->vendor == X86_VENDOR_INTEL) ||
+              ((c->vendor == X86_VENDOR_AMD) && (c->family == 0x15)) )
     {
         /*
          * Today all MP CPUs that support C3 share cache.
@@ -1059,8 +1059,8 @@ static void acpi_processor_power_init_bm_check(struct acpi_processor_flags *flag
      * is not required while entering C3 type state on
      * P4, Core and beyond CPUs
      */
-    if ( c->x86_vendor == X86_VENDOR_INTEL &&
-        (c->x86 > 0x6 || (c->x86 == 6 && c->x86_model >= 14)) )
+    if ( c->vendor == X86_VENDOR_INTEL &&
+        (c->family > 0x6 || (c->family == 6 && c->model >= 14)) )
             flags->bm_control = 0;
 }
 
@@ -1416,12 +1416,12 @@ static void amd_cpuidle_init(struct acpi_processor_power *power)
     if ( vendor_override < 0 )
         return;
 
-    switch ( c->x86 )
+    switch ( c->model )
     {
     case 0x1a:
     case 0x19:
     case 0x18:
-        if ( boot_cpu_data.x86_vendor != X86_VENDOR_HYGON )
+        if ( boot_cpu_data.vendor != X86_VENDOR_HYGON )
         {
     default:
             vendor_override = -1;
@@ -1648,7 +1648,7 @@ static int cf_check cpu_callback(
         break;
 
     case CPU_ONLINE:
-        if ( (boot_cpu_data.x86_vendor &
+        if ( (boot_cpu_data.vendor &
               (X86_VENDOR_AMD | X86_VENDOR_HYGON)) &&
              processor_powers[cpu] )
             amd_cpuidle_init(processor_powers[cpu]);
diff --git a/xen/arch/x86/acpi/cpufreq/acpi.c b/xen/arch/x86/acpi/cpufreq/acpi.c
index 0c25376406..8a102baff3 100644
--- a/xen/arch/x86/acpi/cpufreq/acpi.c
+++ b/xen/arch/x86/acpi/cpufreq/acpi.c
@@ -468,7 +468,7 @@ static int cf_check acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
 
     /* Check for APERF/MPERF support in hardware
      * also check for boost support */
-    if (c->x86_vendor == X86_VENDOR_INTEL && c->cpuid_level >= 6)
+    if ( c->vendor == X86_VENDOR_INTEL && c->cpuid_level >= 6 )
         on_selected_cpus(cpumask_of(cpu), feature_detect, policy, 1);
 
     /*
diff --git a/xen/arch/x86/acpi/cpufreq/cpufreq.c b/xen/arch/x86/acpi/cpufreq/cpufreq.c
index 45f301f354..abb19573a7 100644
--- a/xen/arch/x86/acpi/cpufreq/cpufreq.c
+++ b/xen/arch/x86/acpi/cpufreq/cpufreq.c
@@ -128,7 +128,7 @@ static int __init cf_check cpufreq_driver_init(void)
 
     if ( cpufreq_controller == FREQCTL_xen )
     {
-        switch ( boot_cpu_data.x86_vendor )
+        switch ( boot_cpu_data.vendor )
         {
         case X86_VENDOR_INTEL:
             ret = -ENOENT;
@@ -182,7 +182,7 @@ __initcall(cpufreq_driver_late_init);
 int cpufreq_cpu_init(unsigned int cpu)
 {
     /* Currently we only handle Intel, AMD and Hygon processor */
-    if ( boot_cpu_data.x86_vendor &
+    if ( boot_cpu_data.vendor &
          (X86_VENDOR_INTEL | X86_VENDOR_AMD | X86_VENDOR_HYGON) )
         return cpufreq_add_cpu(cpu);
 
diff --git a/xen/arch/x86/acpi/cpufreq/powernow.c b/xen/arch/x86/acpi/cpufreq/powernow.c
index 12fca45b45..4c04dd242f 100644
--- a/xen/arch/x86/acpi/cpufreq/powernow.c
+++ b/xen/arch/x86/acpi/cpufreq/powernow.c
@@ -144,7 +144,7 @@ static void amd_fixup_frequency(struct xen_processor_px *px)
     int index = px->control & 0x00000007;
     const struct cpuinfo_x86 *c = &current_cpu_data;
 
-    if ((c->x86 != 0x10 || c->x86_model >= 10) && c->x86 != 0x11)
+    if ((c->family != 0x10 || c->model >= 10) && c->family != 0x11)
         return;
 
     rdmsr(MSR_PSTATE_DEF_BASE + index, lo, hi);
@@ -157,7 +157,7 @@ static void amd_fixup_frequency(struct xen_processor_px *px)
 
     fid = lo & 0x3f;
     did = (lo >> 6) & 7;
-    if (c->x86 == 0x10)
+    if (c->family == 0x10)
         px->core_frequency = (100 * (fid + 16)) >> did;
     else
         px->core_frequency = (100 * (fid + 8)) >> did;
diff --git a/xen/arch/x86/alternative.c b/xen/arch/x86/alternative.c
index 9f844241bc..5ed0c26725 100644
--- a/xen/arch/x86/alternative.c
+++ b/xen/arch/x86/alternative.c
@@ -89,7 +89,7 @@ static bool init_or_livepatch_read_mostly toolchain_nops_are_ideal;
 
 static void __init arch_init_ideal_nops(void)
 {
-    switch ( boot_cpu_data.x86_vendor )
+    switch ( boot_cpu_data.vendor )
     {
     case X86_VENDOR_INTEL:
         /*
@@ -97,10 +97,10 @@ static void __init arch_init_ideal_nops(void)
          * actually perform better with the "k8_nops" than with the SDM-
          * recommended NOPs.
          */
-        if ( boot_cpu_data.x86 != 6 )
+        if ( boot_cpu_data.family != 6 )
             break;
 
-        switch ( boot_cpu_data.x86_model )
+        switch ( boot_cpu_data.model )
         {
         case 0x0f ... 0x1b:
         case 0x1d ... 0x25:
@@ -111,7 +111,7 @@ static void __init arch_init_ideal_nops(void)
         break;
 
     case X86_VENDOR_AMD:
-        if ( boot_cpu_data.x86 <= 0xf )
+        if ( boot_cpu_data.family <= 0xf )
             ideal_nops = k8_nops;
         break;
     }
diff --git a/xen/arch/x86/apic.c b/xen/arch/x86/apic.c
index 0fd8bdba70..5cd9d8c47d 100644
--- a/xen/arch/x86/apic.c
+++ b/xen/arch/x86/apic.c
@@ -96,12 +96,12 @@ static int modern_apic(void)
 {
     unsigned int lvr, version;
     /* AMD systems use old APIC versions, so check the CPU */
-    if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD &&
-        boot_cpu_data.x86 >= 0xf)
+    if (boot_cpu_data.vendor == X86_VENDOR_AMD &&
+        boot_cpu_data.family >= 0xf)
         return 1;
 
     /* Hygon systems use modern APIC */
-    if (boot_cpu_data.x86_vendor == X86_VENDOR_HYGON)
+    if (boot_cpu_data.vendor == X86_VENDOR_HYGON)
         return 1;
 
     lvr = apic_read(APIC_LVR);
@@ -447,7 +447,7 @@ void __init init_bsp_APIC(void)
     value |= APIC_SPIV_APIC_ENABLED;
     
     /* This bit is reserved on P4/Xeon and should be cleared */
-    if ((boot_cpu_data.x86_vendor == X86_VENDOR_INTEL) && (boot_cpu_data.x86 == 15))
+    if ((boot_cpu_data.vendor == X86_VENDOR_INTEL) && (boot_cpu_data.family == 15))
         value &= ~APIC_SPIV_FOCUS_DISABLED;
     else
         value |= APIC_SPIV_FOCUS_DISABLED;
diff --git a/xen/arch/x86/cpu/amd.c b/xen/arch/x86/cpu/amd.c
index eb428f284e..2062d8779c 100644
--- a/xen/arch/x86/cpu/amd.c
+++ b/xen/arch/x86/cpu/amd.c
@@ -190,7 +190,7 @@ static void __init noinline probe_masking_msrs(void)
 	 */
 
 	/* Fam11 doesn't support masking at all. */
-	if (c->x86 == 0x11)
+	if (c->family == 0x11)
 		return;
 
 	cpuidmask_defaults._1cd =
@@ -202,7 +202,7 @@ static void __init noinline probe_masking_msrs(void)
 		cpuidmask_defaults._7ab0 =
 			_probe_mask_msr(MSR_AMD_L7S0_FEATURE_MASK, LCAP_7ab0);
 
-	if (c->x86 == 0x15 && c->cpuid_level >= 6 && cpuid_ecx(6))
+	if (c->family == 0x15 && c->cpuid_level >= 6 && cpuid_ecx(6))
 		cpuidmask_defaults._6c =
 			_probe_mask_msr(MSR_AMD_THRM_FEATURE_MASK, LCAP_6c);
 
@@ -219,7 +219,7 @@ static void __init noinline probe_masking_msrs(void)
 	       expected_levelling_cap, levelling_caps,
 	       (expected_levelling_cap ^ levelling_caps) & levelling_caps);
 	printk(XENLOG_WARNING "Fam %#x, model %#x level %#x\n",
-	       c->x86, c->x86_model, c->cpuid_level);
+	       c->family, c->model, c->cpuid_level);
 	printk(XENLOG_WARNING
 	       "If not running virtualised, please report a bug\n");
 }
@@ -428,7 +428,7 @@ int cpu_has_amd_erratum(const struct cpuinfo_x86 *cpu, int osvw_id, ...)
 	u32 range;
 	u32 ms;
 	
-	if (cpu->x86_vendor != X86_VENDOR_AMD)
+	if (cpu->vendor != X86_VENDOR_AMD)
 		return 0;
 
 	if (osvw_id >= 0 && cpu_has(cpu, X86_FEATURE_OSVW)) {
@@ -449,9 +449,9 @@ int cpu_has_amd_erratum(const struct cpuinfo_x86 *cpu, int osvw_id, ...)
 	/* OSVW unavailable or ID unknown, match family-model-stepping range */
 	va_start(ap, osvw_id);
 
-	ms = (cpu->x86_model << 4) | cpu->x86_mask;
+	ms = (cpu->model << 4) | cpu->stepping;
 	while ((range = va_arg(ap, int))) {
-		if ((cpu->x86 == AMD_MODEL_RANGE_FAMILY(range)) &&
+		if ((cpu->family == AMD_MODEL_RANGE_FAMILY(range)) &&
 		    (ms >= AMD_MODEL_RANGE_START(range)) &&
 		    (ms <= AMD_MODEL_RANGE_END(range))) {
 			va_end(ap);
@@ -519,8 +519,8 @@ static void check_syscfg_dram_mod_en(void)
 {
 	uint64_t syscfg;
 
-	if (!((boot_cpu_data.x86_vendor == X86_VENDOR_AMD) &&
-		(boot_cpu_data.x86 >= 0x0f)))
+	if (!((boot_cpu_data.vendor == X86_VENDOR_AMD) &&
+		(boot_cpu_data.family >= 0x0f)))
 		return;
 
 	rdmsrl(MSR_K8_SYSCFG, syscfg);
@@ -563,7 +563,7 @@ static void amd_get_topology(struct cpuinfo_x86 *c)
                 cpuid(0x8000001e, &eax, &ebx, &ecx, &edx);
                 c->x86_num_siblings = ((ebx >> 8) & 0xff) + 1;
 
-                if (c->x86 < 0x17)
+                if (c->family < 0x17)
                         c->compute_unit_id = ebx & 0xFF;
                 else {
                         c->cpu_core_id = ebx & 0xFF;
@@ -621,10 +621,10 @@ static void amd_process_freq(const struct cpuinfo_x86 *c,
 	unsigned int idx = 0, h;
 	uint64_t hi, lo, val;
 
-	if (c->x86 < 0x10 || c->x86 > 0x1A)
+	if (c->family < 0x10 || c->family > 0x1A)
 		return;
 
-	if (c->x86 < 0x17) {
+	if (c->family < 0x17) {
 		unsigned int node = 0;
 		uint64_t nbcfg;
 
@@ -674,7 +674,7 @@ static void amd_process_freq(const struct cpuinfo_x86 *c,
 				 * accounted for in order to correctly fetch the
 				 * nominal frequency of the processor.
 				 */
-				switch (c->x86) {
+				switch (c->family) {
 				case 0x10: idx = 1; break;
 				case 0x12: idx = 7; break;
 				case 0x14: idx = 7; break;
@@ -694,7 +694,7 @@ static void amd_process_freq(const struct cpuinfo_x86 *c,
 	}
 
 	lo = 0; /* gcc may not recognize the loop having at least 5 iterations */
-	for (h = c->x86 == 0x10 ? 5 : 8; h--; )
+	for (h = c->family == 0x10 ? 5 : 8; h--; )
 		if (!rdmsr_safe(0xC0010064 + h, lo) && (lo >> 63))
 			break;
 	if (!(lo >> 63))
@@ -704,18 +704,18 @@ static void amd_process_freq(const struct cpuinfo_x86 *c,
 	    !rdmsr_safe(0xC0010064 + idx, val) && (val >> 63) &&
 	    !rdmsr_safe(0xC0010064, hi) && (hi >> 63)) {
 		if (nom_mhz)
-			*nom_mhz = amd_parse_freq(c->x86, val);
+			*nom_mhz = amd_parse_freq(c->family, val);
 		if (low_mhz)
-			*low_mhz = amd_parse_freq(c->x86, lo);
+			*low_mhz = amd_parse_freq(c->family, lo);
 		if (hi_mhz)
-			*hi_mhz = amd_parse_freq(c->x86, hi);
+			*hi_mhz = amd_parse_freq(c->family, hi);
 	} else if (h && !rdmsr_safe(0xC0010064, hi) && (hi >> 63)) {
 		if (low_mhz)
-			*low_mhz = amd_parse_freq(c->x86, lo);
+			*low_mhz = amd_parse_freq(c->family, lo);
 		if (hi_mhz)
-			*hi_mhz = amd_parse_freq(c->x86, hi);
+			*hi_mhz = amd_parse_freq(c->family, hi);
 	} else if (low_mhz)
-		*low_mhz = amd_parse_freq(c->x86, lo);
+		*low_mhz = amd_parse_freq(c->family, lo);
 }
 
 void cf_check early_init_amd(struct cpuinfo_x86 *c)
@@ -794,7 +794,7 @@ static bool set_legacy_ssbd(const struct cpuinfo_x86 *c, bool enable)
 {
 	int bit = -1;
 
-	switch (c->x86) {
+	switch (c->family) {
 	case 0x15: bit = 54; break;
 	case 0x16: bit = 33; break;
 	case 0x17:
@@ -856,7 +856,7 @@ bool __init amd_setup_legacy_ssbd(void)
 {
 	unsigned int i;
 
-	if ((boot_cpu_data.x86 != 0x17 && boot_cpu_data.x86 != 0x18) ||
+	if ((boot_cpu_data.family != 0x17 && boot_cpu_data.family != 0x18) ||
 	    boot_cpu_data.x86_num_siblings <= 1 || opt_ssbd)
 		return true;
 
@@ -903,7 +903,7 @@ static void core_set_legacy_ssbd(bool enable)
 
 	BUG_ON(this_cpu(legacy_ssbd) == enable);
 
-	if ((c->x86 != 0x17 && c->x86 != 0x18) || c->x86_num_siblings <= 1) {
+	if ((c->family != 0x17 && c->family != 0x18) || c->x86_num_siblings <= 1) {
 		BUG_ON(!set_legacy_ssbd(c, enable));
 		return;
 	}
@@ -994,10 +994,10 @@ void amd_check_zenbleed(void)
 	 * position to care either way.  An admin doesn't want to be disabling
 	 * AVX as a mitigation on any build of Xen with this logic present.
 	 */
-	if (cpu_has_hypervisor || boot_cpu_data.x86 != 0x17)
+	if (cpu_has_hypervisor || boot_cpu_data.family != 0x17)
 		return;
 
-	switch (boot_cpu_data.x86_model) {
+	switch (boot_cpu_data.model) {
 	case 0x30 ... 0x3f: good_rev = 0x0830107a; break;
 	case 0x60 ... 0x67: good_rev = 0x0860010b; break;
 	case 0x68 ... 0x6f: good_rev = 0x08608105; break;
@@ -1082,7 +1082,7 @@ static void amd_check_bp_cfg(void)
 	/*
 	 * AMD Erratum #1485.  Set bit 5, as instructed.
 	 */
-	if (!cpu_has_hypervisor && boot_cpu_data.x86 == 0x19 && is_zen4_uarch())
+	if (!cpu_has_hypervisor && boot_cpu_data.family == 0x19 && is_zen4_uarch())
 		new |= (1 << 5);
 
 	/*
@@ -1125,7 +1125,7 @@ static void cf_check init_amd(struct cpuinfo_x86 *c)
 	 * Errata 63 for SH-B3 steppings
 	 * Errata 122 for all steppings (F+ have it disabled by default)
 	 */
-	if (c->x86 == 15) {
+	if (c->family == 15) {
 		rdmsrl(MSR_K8_HWCR, value);
 		value |= 1 << 6;
 		wrmsrl(MSR_K8_HWCR, value);
@@ -1138,7 +1138,7 @@ static void cf_check init_amd(struct cpuinfo_x86 *c)
 	 */
 	__clear_bit(X86_FEATURE_PBE, c->x86_capability);
 	
-	if (c->x86 == 0xf && c->x86_model < 0x14
+	if (c->family == 0xf && c->model < 0x14
 	    && cpu_has(c, X86_FEATURE_LAHF_LM)) {
 		/*
 		 * Some BIOSes incorrectly force this feature, but only K8
@@ -1157,7 +1157,7 @@ static void cf_check init_amd(struct cpuinfo_x86 *c)
 	if (c == &boot_cpu_data && !cpu_has(c, X86_FEATURE_RSTR_FP_ERR_PTRS))
 		setup_force_cpu_cap(X86_BUG_FPU_PTRS);
 
-	if (c->x86 == 0x0f || c->x86 == 0x11)
+	if (c->family == 0x0f || c->family == 0x11)
 		/* Always dispatch serialising on this hardare. */
 		__set_bit(X86_FEATURE_LFENCE_DISPATCH, c->x86_capability);
 	else /* Implicily "== 0x10 || >= 0x12" by being 64bit. */
@@ -1165,12 +1165,12 @@ static void cf_check init_amd(struct cpuinfo_x86 *c)
 
 	amd_init_ssbd(c);
 
-	if (c->x86 == 0x17)
+	if (c->family == 0x17)
 		amd_init_spectral_chicken();
 
 	/* Probe for NSCB on Zen2 CPUs when not virtualised */
 	if (!cpu_has_hypervisor && !cpu_has_nscb && c == &boot_cpu_data &&
-	    c->x86 == 0x17)
+	    c->family == 0x17)
 		detect_zen2_null_seg_behaviour();
 
 	/*
@@ -1192,7 +1192,7 @@ static void cf_check init_amd(struct cpuinfo_x86 *c)
 	if (c == &boot_cpu_data && !cpu_has_clflushopt)
 		setup_force_cpu_cap(X86_BUG_CLFLUSH_MFENCE);
 
-	switch(c->x86)
+	switch(c->family)
 	{
 	case 0xf ... 0x11:
 		disable_c1e(NULL);
@@ -1241,15 +1241,15 @@ static void cf_check init_amd(struct cpuinfo_x86 *c)
 		if (cpu_has(c, X86_FEATURE_ITSC)) {
 			__set_bit(X86_FEATURE_CONSTANT_TSC, c->x86_capability);
 			__set_bit(X86_FEATURE_NONSTOP_TSC, c->x86_capability);
-			if (c->x86 != 0x11)
+			if (c->family != 0x11)
 				__set_bit(X86_FEATURE_TSC_RELIABLE,
 					  c->x86_capability);
 		}
 	}
 
 	/* re-enable TopologyExtensions if switched off by BIOS */
-	if ((c->x86 == 0x15) &&
-	    (c->x86_model >= 0x10) && (c->x86_model <= 0x1f) &&
+	if ((c->family == 0x15) &&
+	    (c->model >= 0x10) && (c->model <= 0x1f) &&
 	    !cpu_has(c, X86_FEATURE_TOPOEXT) &&
 	    !rdmsr_safe(MSR_K8_EXT_FEATURE_MASK, value)) {
 		value |= 1ULL << 54;
@@ -1266,14 +1266,14 @@ static void cf_check init_amd(struct cpuinfo_x86 *c)
 	 * The way access filter has a performance penalty on some workloads.
 	 * Disable it on the affected CPUs.
 	 */
-	if (c->x86 == 0x15 && c->x86_model >= 0x02 && c->x86_model < 0x20 &&
+	if (c->family == 0x15 && c->model >= 0x02 && c->model < 0x20 &&
 	    !rdmsr_safe(MSR_AMD64_IC_CFG, value) && (value & 0x1e) != 0x1e)
 		wrmsr_safe(MSR_AMD64_IC_CFG, value | 0x1e);
 
         amd_get_topology(c);
 
 	/* Pointless to use MWAIT on Family10 as it does not deep sleep. */
-	if (c->x86 == 0x10)
+	if (c->family == 0x10)
 		__clear_bit(X86_FEATURE_MONITOR, c->x86_capability);
 
 	if (!cpu_has_amd_erratum(c, AMD_ERRATUM_121))
@@ -1290,7 +1290,7 @@ static void cf_check init_amd(struct cpuinfo_x86 *c)
 		       "*** Pass \"allow_unsafe\" if you're trusting"
 		       " all your (PV) guest kernels. ***\n");
 
-	if (c->x86 == 0x16 && c->x86_model <= 0xf) {
+	if (c->family == 0x16 && c->model <= 0xf) {
 		if (c == &boot_cpu_data) {
 			l = pci_conf_read32(PCI_SBDF(0, 0, 0x18, 3), 0x58);
 			h = pci_conf_read32(PCI_SBDF(0, 0, 0x18, 3), 0x5c);
@@ -1318,7 +1318,7 @@ static void cf_check init_amd(struct cpuinfo_x86 *c)
 					    smp_processor_id());
 			wrmsrl(MSR_AMD64_LS_CFG, value | (1 << 15));
 		}
-	} else if (c->x86 == 0x12) {
+	} else if (c->family == 0x12) {
 		rdmsrl(MSR_AMD64_DE_CFG, value);
 		if (!(value & (1U << 31))) {
 			if (c == &boot_cpu_data || opt_cpu_info)
@@ -1332,7 +1332,7 @@ static void cf_check init_amd(struct cpuinfo_x86 *c)
 	/* AMD CPUs do not support SYSENTER outside of legacy mode. */
 	__clear_bit(X86_FEATURE_SEP, c->x86_capability);
 
-	if (c->x86 == 0x10) {
+	if (c->family == 0x10) {
 		/* do this for boot cpu */
 		if (c == &boot_cpu_data)
 			check_enable_amd_mmconf_dmi();
@@ -1355,14 +1355,14 @@ static void cf_check init_amd(struct cpuinfo_x86 *c)
 	 * Family 0x12 and above processors have APIC timer
 	 * running in deep C states.
 	 */
-	if ( opt_arat && c->x86 > 0x11 )
+	if ( opt_arat && c->family > 0x11 )
 		__set_bit(X86_FEATURE_ARAT, c->x86_capability);
 
 	/*
 	 * Prior to Family 0x14, perf counters are not reset during warm reboot.
 	 * We have to reset them manually.
 	 */
-	if (nmi_watchdog != NMI_LOCAL_APIC && c->x86 < 0x14) {
+	if (nmi_watchdog != NMI_LOCAL_APIC && c->family < 0x14) {
 		wrmsrl(MSR_K7_PERFCTR0, 0);
 		wrmsrl(MSR_K7_PERFCTR1, 0);
 		wrmsrl(MSR_K7_PERFCTR2, 0);
@@ -1404,7 +1404,7 @@ static int __init cf_check amd_check_erratum_1474(void)
 	s_time_t delta;
 
 	if (cpu_has_hypervisor ||
-	    (boot_cpu_data.x86 != 0x17 && boot_cpu_data.x86 != 0x18))
+	    (boot_cpu_data.family != 0x17 && boot_cpu_data.family != 0x18))
 		return 0;
 
 	/*
diff --git a/xen/arch/x86/cpu/centaur.c b/xen/arch/x86/cpu/centaur.c
index 750168d1e8..d0e10cafc7 100644
--- a/xen/arch/x86/cpu/centaur.c
+++ b/xen/arch/x86/cpu/centaur.c
@@ -39,7 +39,7 @@ static void init_c3(struct cpuinfo_x86 *c)
 		}
 	}
 
-	if (c->x86 == 0x6 && c->x86_model >= 0xf) {
+	if (c->family == 0x6 && c->model >= 0xf) {
 		c->x86_cache_alignment = c->x86_clflush_size * 2;
 		__set_bit(X86_FEATURE_CONSTANT_TSC, c->x86_capability);
 	}
@@ -50,7 +50,7 @@ static void init_c3(struct cpuinfo_x86 *c)
 
 static void cf_check init_centaur(struct cpuinfo_x86 *c)
 {
-	if (c->x86 == 6)
+	if (c->family == 6)
 		init_c3(c);
 }
 
diff --git a/xen/arch/x86/cpu/common.c b/xen/arch/x86/cpu/common.c
index e063fe790a..3738109a99 100644
--- a/xen/arch/x86/cpu/common.c
+++ b/xen/arch/x86/cpu/common.c
@@ -338,8 +338,8 @@ void __init early_cpu_init(bool verbose)
 	*(u32 *)&c->x86_vendor_id[8] = ecx;
 	*(u32 *)&c->x86_vendor_id[4] = edx;
 
-	c->x86_vendor = x86_cpuid_lookup_vendor(ebx, ecx, edx);
-	switch (c->x86_vendor) {
+	c->vendor = x86_cpuid_lookup_vendor(ebx, ecx, edx);
+	switch (c->vendor) {
 	case X86_VENDOR_INTEL:    intel_unlock_cpuid_leaves(c);
 				  actual_cpu = intel_cpu_dev;    break;
 	case X86_VENDOR_AMD:      actual_cpu = amd_cpu_dev;      break;
@@ -356,7 +356,7 @@ void __init early_cpu_init(bool verbose)
 	}
 
 	cpuid(0x00000001, &eax, &ebx, &ecx, &edx);
-	c->x86 = get_cpu_family(eax, &c->x86_model, &c->x86_mask);
+	c->family = get_cpu_family(eax, &c->model, &c->stepping);
 
 	edx &= ~cleared_caps[FEATURESET_1d];
 	ecx &= ~cleared_caps[FEATURESET_1c];
@@ -400,8 +400,8 @@ void __init early_cpu_init(bool verbose)
 		printk(XENLOG_INFO
 		       "CPU Vendor: %s, Family %u (%#x), "
 		       "Model %u (%#x), Stepping %u (raw %08x)\n",
-		       x86_cpuid_vendor_to_str(c->x86_vendor), c->x86,
-		       c->x86, c->x86_model, c->x86_model, c->x86_mask,
+		       x86_cpuid_vendor_to_str(c->vendor), c->family,
+		       c->family, c->model, c->model, c->stepping,
 		       eax);
 
 	if (c->cpuid_level >= 7) {
@@ -442,7 +442,7 @@ void __init early_cpu_init(bool verbose)
 		paddr_bits -= (ebx >> 6) & 0x3f;
 	}
 
-	if (!(c->x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)))
+	if (!(c->vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)))
 		park_offline_cpus = opt_mce;
 
 	initialize_cpu_data(0);
@@ -452,10 +452,10 @@ void reset_cpuinfo(struct cpuinfo_x86 *c, bool keep_basic)
 {
     if ( !keep_basic )
     {
-        c->x86_vendor = 0;
-        c->x86 = 0;
-        c->x86_model = 0;
-        c->x86_mask = 0;
+        c->vendor = 0;
+        c->family = 0;
+        c->model = 0;
+        c->stepping = 0;
         memset(&c->x86_capability, 0, sizeof(c->x86_capability));
         memset(&c->x86_vendor_id, 0, sizeof(c->x86_vendor_id));
         memset(&c->x86_model_id, 0, sizeof(c->x86_model_id));
@@ -474,18 +474,18 @@ static void generic_identify(struct cpuinfo_x86 *c)
 	*(u32 *)&c->x86_vendor_id[8] = ecx;
 	*(u32 *)&c->x86_vendor_id[4] = edx;
 
-	c->x86_vendor = x86_cpuid_lookup_vendor(ebx, ecx, edx);
-	if (boot_cpu_data.x86_vendor != c->x86_vendor)
+	c->vendor = x86_cpuid_lookup_vendor(ebx, ecx, edx);
+	if (boot_cpu_data.vendor != c->vendor)
 		printk(XENLOG_ERR "CPU%u vendor %u mismatch against BSP %u\n",
-		       smp_processor_id(), c->x86_vendor,
-		       boot_cpu_data.x86_vendor);
+		       smp_processor_id(), c->vendor,
+		       boot_cpu_data.vendor);
 
 	/* Initialize the standard set of capabilities */
 	/* Note that the vendor-specific code below might override */
 
 	/* Model and family information. */
 	cpuid(1, &eax, &ebx, &ecx, &edx);
-	c->x86 = get_cpu_family(eax, &c->x86_model, &c->x86_mask);
+	c->family = get_cpu_family(eax, &c->model, &c->stepping);
 	c->apicid = phys_pkg_id((ebx >> 24) & 0xFF, 0);
 	c->phys_proc_id = c->apicid;
 
@@ -610,7 +610,7 @@ void identify_cpu(struct cpuinfo_x86 *c)
 	if ( !c->x86_model_id[0] ) {
 		/* Last resort... */
 		snprintf(c->x86_model_id, sizeof(c->x86_model_id),
-			"%02x/%02x", c->x86_vendor, c->x86_model);
+			"%02x/%02x", c->vendor, c->model);
 	}
 
 	/* Now the feature flags better reflect actual CPU features! */
@@ -829,16 +829,16 @@ void print_cpu_info(unsigned int cpu)
 
 	printk("CPU%u: ", cpu);
 
-	vendor = x86_cpuid_vendor_to_str(c->x86_vendor);
+	vendor = x86_cpuid_vendor_to_str(c->vendor);
 	if (strncmp(c->x86_model_id, vendor, strlen(vendor)))
 		printk("%s ", vendor);
 
 	if (!c->x86_model_id[0])
-		printk("%d86", c->x86);
+		printk("%d86", c->family);
 	else
 		printk("%s", c->x86_model_id);
 
-	printk(" stepping %02x\n", c->x86_mask);
+	printk(" stepping %02x\n", c->stepping);
 }
 
 static cpumask_t cpu_initialized;
diff --git a/xen/arch/x86/cpu/hygon.c b/xen/arch/x86/cpu/hygon.c
index f7508cc8fc..f454fbef33 100644
--- a/xen/arch/x86/cpu/hygon.c
+++ b/xen/arch/x86/cpu/hygon.c
@@ -36,12 +36,12 @@ static void cf_check init_hygon(struct cpuinfo_x86 *c)
 
 	/* Probe for NSCB on Zen2 CPUs when not virtualised */
 	if (!cpu_has_hypervisor && !cpu_has_nscb && c == &boot_cpu_data &&
-	    c->x86 == 0x18)
+	    c->family == 0x18)
 		detect_zen2_null_seg_behaviour();
 
 	/*
 	 * TODO: Check heuristic safety with Hygon first
-	if (c->x86 == 0x18)
+	if (c->family == 0x18)
 		amd_init_spectral_chicken();
 	 */
 
diff --git a/xen/arch/x86/cpu/intel.c b/xen/arch/x86/cpu/intel.c
index 29144ffe37..60bb1a5ae7 100644
--- a/xen/arch/x86/cpu/intel.c
+++ b/xen/arch/x86/cpu/intel.c
@@ -86,7 +86,7 @@ static void __init check_memory_type_self_snoop_errata(void)
 	if (!boot_cpu_has(X86_FEATURE_SS))
 		return;
 
-	switch (boot_cpu_data.x86_model) {
+	switch (boot_cpu_data.model) {
 	case 0x0f: /* Merom */
 	case 0x16: /* Merom L */
 	case 0x17: /* Penryn */
@@ -137,10 +137,10 @@ static void __init probe_masking_msrs(void)
 	unsigned int exp_msr_basic, exp_msr_ext, exp_msr_xsave;
 
 	/* Only family 6 supports this feature. */
-	if (c->x86 != 6)
+	if (c->family != 6)
 		return;
 
-	switch (c->x86_model) {
+	switch (c->model) {
 	case 0x17: /* Yorkfield, Wolfdale, Penryn, Harpertown(DP) */
 	case 0x1d: /* Dunnington(MP) */
 		msr_basic = MSR_INTEL_MASK_V1_CPUID1;
@@ -191,7 +191,7 @@ static void __init probe_masking_msrs(void)
 	       expected_levelling_cap, levelling_caps,
 	       (expected_levelling_cap ^ levelling_caps) & levelling_caps);
 	printk(XENLOG_WARNING "Fam %#x, model %#x expected (%#x/%#x/%#x), "
-	       "got (%#x/%#x/%#x)\n", c->x86, c->x86_model,
+	       "got (%#x/%#x/%#x)\n", c->family, c->model,
 	       exp_msr_basic, exp_msr_ext, exp_msr_xsave,
 	       msr_basic, msr_ext, msr_xsave);
 	printk(XENLOG_WARNING
@@ -265,7 +265,7 @@ static void __init noinline intel_init_levelling(void)
 	 * so skip it altogether. In the case where Xen is virtualized these
 	 * MSRs may be emulated though, so we allow it in that case.
 	 */
-	if ((boot_cpu_data.x86 != 0xf || cpu_has_hypervisor) &&
+	if ((boot_cpu_data.family != 0xf || cpu_has_hypervisor) &&
 	    probe_cpuid_faulting()) {
 		expected_levelling_cap |= LCAP_faulting;
 		levelling_caps |= LCAP_faulting;
@@ -348,7 +348,7 @@ void intel_unlock_cpuid_leaves(struct cpuinfo_x86 *c)
 static void cf_check early_init_intel(struct cpuinfo_x86 *c)
 {
 	/* Netburst reports 64 bytes clflush size, but does IO in 128 bytes */
-	if (c->x86 == 15 && c->x86_cache_alignment == 64)
+	if (c->family == 15 && c->x86_cache_alignment == 64)
 		c->x86_cache_alignment = 128;
 
 	if (c == &boot_cpu_data &&
@@ -358,8 +358,8 @@ static void cf_check early_init_intel(struct cpuinfo_x86 *c)
 	intel_unlock_cpuid_leaves(c);
 
 	/* CPUID workaround for Intel 0F33/0F34 CPU */
-	if (boot_cpu_data.x86 == 0xF && boot_cpu_data.x86_model == 3 &&
-	    (boot_cpu_data.x86_mask == 3 || boot_cpu_data.x86_mask == 4))
+	if (boot_cpu_data.vfm == INTEL_P4_PRESCOTT &&
+	    (boot_cpu_data.stepping == 3 || boot_cpu_data.stepping == 4))
 		paddr_bits = 36;
 
 	if (c == &boot_cpu_data) {
@@ -458,7 +458,7 @@ static void Intel_errata_workarounds(struct cpuinfo_x86 *c)
 {
 	unsigned long lo, hi;
 
-	if ((c->x86 == 15) && (c->x86_model == 1) && (c->x86_mask == 1)) {
+	if ( c->vfm == INTEL_P4_WILLAMETTE && c->stepping == 1 ) {
 		rdmsr (MSR_IA32_MISC_ENABLE, lo, hi);
 		if ((lo & (1<<9)) == 0) {
 			printk (KERN_INFO "CPU: C0 stepping P4 Xeon detected.\n");
@@ -468,8 +468,8 @@ static void Intel_errata_workarounds(struct cpuinfo_x86 *c)
 		}
 	}
 
-	if (c->x86 == 6 && cpu_has_clflush &&
-	    (c->x86_model == 29 || c->x86_model == 46 || c->x86_model == 47))
+	if (c->family == 6 && cpu_has_clflush &&
+	    (c->model == 29 || c->model == 46 || c->model == 47))
 		setup_force_cpu_cap(X86_BUG_CLFLUSH_MONITOR);
 
 	probe_c3_errata(c);
@@ -540,7 +540,7 @@ static void intel_log_freq(const struct cpuinfo_x86 *c)
         }
     }
 
-    switch ( c->x86 )
+    switch ( c->family )
     {
         static const unsigned short core_factors[] =
             { 26667, 13333, 20000, 16667, 33333, 10000, 40000 };
@@ -553,7 +553,7 @@ static void intel_log_freq(const struct cpuinfo_x86 *c)
         if ( !max_ratio )
             return;
 
-        switch ( c->x86_model )
+        switch ( c->model )
         {
         case 0x0e: /* Core */
         case 0x0f: case 0x16: case 0x17: case 0x1d: /* Core2 */
@@ -657,8 +657,8 @@ static void cf_check init_intel(struct cpuinfo_x86 *c)
 	/* Work around errata */
 	Intel_errata_workarounds(c);
 
-	if ((c->x86 == 0xf && c->x86_model >= 0x03) ||
-		(c->x86 == 0x6 && c->x86_model >= 0x0e))
+	if ((c->family == 0xf && c->model >= 0x03) ||
+		(c->family == 0x6 && c->model >= 0x0e))
 		__set_bit(X86_FEATURE_CONSTANT_TSC, c->x86_capability);
 	if (cpu_has(c, X86_FEATURE_ITSC)) {
 		__set_bit(X86_FEATURE_CONSTANT_TSC, c->x86_capability);
diff --git a/xen/arch/x86/cpu/intel_cacheinfo.c b/xen/arch/x86/cpu/intel_cacheinfo.c
index e88faa7545..a81d0764fb 100644
--- a/xen/arch/x86/cpu/intel_cacheinfo.c
+++ b/xen/arch/x86/cpu/intel_cacheinfo.c
@@ -168,15 +168,15 @@ void init_intel_cacheinfo(struct cpuinfo_x86 *c)
 	 * Don't use cpuid2 if cpuid4 is supported. For P4, we use cpuid2 for
 	 * trace cache
 	 */
-	if ((num_cache_leaves == 0 || c->x86 == 15) && c->cpuid_level > 1 &&
-	    c->x86_vendor != X86_VENDOR_SHANGHAI)
+	if ((num_cache_leaves == 0 || c->family == 15) && c->cpuid_level > 1 &&
+	    c->vendor != X86_VENDOR_SHANGHAI)
 	{
 		/* supports eax=2  call */
 		unsigned int i, j, n, regs[4];
 		unsigned char *dp = (unsigned char *)regs;
 		int only_trace = 0;
 
-		if (num_cache_leaves != 0 && c->x86 == 15)
+		if (num_cache_leaves != 0 && c->family == 15)
 			only_trace = 1;
 
 		/* Number of times to iterate */
diff --git a/xen/arch/x86/cpu/mcheck/amd_nonfatal.c b/xen/arch/x86/cpu/mcheck/amd_nonfatal.c
index 7d48c9ab5f..fb52639e13 100644
--- a/xen/arch/x86/cpu/mcheck/amd_nonfatal.c
+++ b/xen/arch/x86/cpu/mcheck/amd_nonfatal.c
@@ -191,7 +191,7 @@ static void cf_check mce_amd_work_fn(void *data)
 
 void __init amd_nonfatal_mcheck_init(struct cpuinfo_x86 *c)
 {
-	if (!(c->x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)))
+	if (!(c->vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)))
 		return;
 
 	/* Assume we are on K8 or newer AMD or Hygon CPU here */
diff --git a/xen/arch/x86/cpu/mcheck/mcaction.c b/xen/arch/x86/cpu/mcheck/mcaction.c
index bf7a0de965..236424569a 100644
--- a/xen/arch/x86/cpu/mcheck/mcaction.c
+++ b/xen/arch/x86/cpu/mcheck/mcaction.c
@@ -101,7 +101,7 @@ mc_memerr_dhandler(struct mca_binfo *binfo,
                       * not always precise. In that case, fallback to broadcast.
                       */
                      global->mc_domid != bank->mc_domid ||
-                     (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL &&
+                     (boot_cpu_data.vendor == X86_VENDOR_INTEL &&
                       (!(global->mc_gstatus & MCG_STATUS_LMCE) ||
                        !(d->vcpu[mc_vcpuid]->arch.vmce.mcg_ext_ctl &
                          MCG_EXT_CTL_LMCE_EN))) )
diff --git a/xen/arch/x86/cpu/mcheck/mce.c b/xen/arch/x86/cpu/mcheck/mce.c
index bbc0d24732..8ebaae242e 100644
--- a/xen/arch/x86/cpu/mcheck/mce.c
+++ b/xen/arch/x86/cpu/mcheck/mce.c
@@ -334,7 +334,7 @@ mcheck_mca_logout(enum mca_source who, struct mca_banks *bankmask,
                 mca_init_global(mc_flags, mig);
                 /* A hook here to get global extended msrs */
                 if ( IS_ENABLED(CONFIG_INTEL) &&
-                     boot_cpu_data.x86_vendor == X86_VENDOR_INTEL )
+                     boot_cpu_data.vendor == X86_VENDOR_INTEL )
                     intel_get_extended_msrs(mig, mci);
             }
         }
@@ -564,8 +564,8 @@ bool mce_available(const struct cpuinfo_x86 *c)
  */
 unsigned int mce_firstbank(struct cpuinfo_x86 *c)
 {
-    return c->x86 == 6 &&
-           c->x86_vendor == X86_VENDOR_INTEL && c->x86_model < 0x1a;
+    return c->family == 6 &&
+           c->vendor == X86_VENDOR_INTEL && c->model < 0x1a;
 }
 
 static int show_mca_info(int inited, struct cpuinfo_x86 *c)
@@ -596,7 +596,7 @@ static int show_mca_info(int inited, struct cpuinfo_x86 *c)
         case mcheck_amd_famXX:
         case mcheck_hygon:
             printk("%s%s Fam%xh machine check reporting enabled\n",
-                   prefix, type_str[inited], c->x86);
+                   prefix, type_str[inited], c->family);
             break;
 
         case mcheck_none:
@@ -766,7 +766,7 @@ void mcheck_init(struct cpuinfo_x86 *c, bool bsp)
     else if ( cpu_bank_alloc(cpu) )
         panic("Insufficient memory for MCE bank allocations\n");
 
-    switch ( c->x86_vendor )
+    switch ( c->vendor )
     {
 #ifdef CONFIG_AMD
     case X86_VENDOR_AMD:
@@ -777,7 +777,7 @@ void mcheck_init(struct cpuinfo_x86 *c, bool bsp)
 
 #ifdef CONFIG_INTEL
     case X86_VENDOR_INTEL:
-        switch ( c->x86 )
+        switch ( c->family )
         {
         case 6:
         case 15:
@@ -866,7 +866,7 @@ static void x86_mcinfo_apei_save(
     memset(&m, 0, sizeof(struct mce));
 
     m.cpu = mc_global->mc_coreid;
-    m.cpuvendor = boot_cpu_data.x86_vendor;
+    m.cpuvendor = boot_cpu_data.vendor;
     m.cpuid = cpuid_eax(1);
     m.socketid = mc_global->mc_socketid;
     m.apicid = mc_global->mc_apicid;
@@ -967,10 +967,10 @@ static void cf_check __maybe_unused do_mc_get_cpu_info(void *v)
                         &xcp->mc_apicid, &xcp->mc_ncores,
                         &xcp->mc_ncores_active, &xcp->mc_nthreads);
     xcp->mc_cpuid_level = c->cpuid_level;
-    xcp->mc_family = c->x86;
-    xcp->mc_vendor = c->x86_vendor;
-    xcp->mc_model = c->x86_model;
-    xcp->mc_step = c->x86_mask;
+    xcp->mc_family = c->family;
+    xcp->mc_vendor = c->vendor;
+    xcp->mc_model = c->model;
+    xcp->mc_step = c->stepping;
     xcp->mc_cache_size = c->x86_cache_size;
     xcp->mc_cache_alignment = c->x86_cache_alignment;
     memcpy(xcp->mc_vendorid, c->x86_vendor_id, sizeof xcp->mc_vendorid);
@@ -1126,7 +1126,7 @@ static bool __maybe_unused x86_mc_msrinject_verify(struct xen_mc_msrinject *mci)
 
         if ( IS_MCA_BANKREG(reg, mci->mcinj_cpunr) )
         {
-            if ( c->x86_vendor == X86_VENDOR_AMD )
+            if ( c->vendor == X86_VENDOR_AMD )
             {
                 /*
                  * On AMD we can set MCi_STATUS_WREN in the
@@ -1161,15 +1161,15 @@ static bool __maybe_unused x86_mc_msrinject_verify(struct xen_mc_msrinject *mci)
             case MSR_F10_MC4_MISC1:
             case MSR_F10_MC4_MISC2:
             case MSR_F10_MC4_MISC3:
-                if ( c->x86_vendor != X86_VENDOR_AMD )
+                if ( c->vendor != X86_VENDOR_AMD )
                     reason = "only supported on AMD";
-                else if ( c->x86 < 0x10 )
+                else if ( c->family < 0x10 )
                     reason = "only supported on AMD Fam10h+";
                 break;
 
             /* MSRs that the HV will take care of */
             case MSR_K8_HWCR:
-                if ( c->x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON) )
+                if ( c->vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON) )
                     reason = "HV will operate HWCR";
                 else
                     reason = "only supported on AMD or Hygon";
diff --git a/xen/arch/x86/cpu/mcheck/mce.h b/xen/arch/x86/cpu/mcheck/mce.h
index eba4b536c7..5c50453cb5 100644
--- a/xen/arch/x86/cpu/mcheck/mce.h
+++ b/xen/arch/x86/cpu/mcheck/mce.h
@@ -136,7 +136,7 @@ void x86_mcinfo_dump(struct mc_info *mi);
 
 static inline int mce_vendor_bank_msr(const struct vcpu *v, uint32_t msr)
 {
-    switch (boot_cpu_data.x86_vendor) {
+    switch (boot_cpu_data.vendor) {
     case X86_VENDOR_INTEL:
         if (msr >= MSR_IA32_MC0_CTL2 &&
             msr < MSR_IA32_MCx_CTL2(v->arch.vmce.mcg_cap & MCG_CAP_COUNT) )
diff --git a/xen/arch/x86/cpu/mcheck/mce_amd.c b/xen/arch/x86/cpu/mcheck/mce_amd.c
index 4f06a3153b..690c72c455 100644
--- a/xen/arch/x86/cpu/mcheck/mce_amd.c
+++ b/xen/arch/x86/cpu/mcheck/mce_amd.c
@@ -160,17 +160,17 @@ mcequirk_lookup_amd_quirkdata(const struct cpuinfo_x86 *c)
 {
     unsigned int i;
 
-    BUG_ON(c->x86_vendor != X86_VENDOR_AMD);
+    BUG_ON(c->vendor != X86_VENDOR_AMD);
 
     for ( i = 0; i < ARRAY_SIZE(mce_amd_quirks); i++ )
     {
-        if ( c->x86 != mce_amd_quirks[i].cpu_family )
+        if ( c->family != mce_amd_quirks[i].cpu_family )
             continue;
         if ( (mce_amd_quirks[i].cpu_model != ANY) &&
-             (mce_amd_quirks[i].cpu_model != c->x86_model) )
+             (mce_amd_quirks[i].cpu_model != c->model) )
             continue;
         if ( (mce_amd_quirks[i].cpu_stepping != ANY) &&
-             (mce_amd_quirks[i].cpu_stepping != c->x86_mask) )
+             (mce_amd_quirks[i].cpu_stepping != c->stepping) )
                 continue;
         return mce_amd_quirks[i].quirk;
     }
@@ -291,13 +291,13 @@ amd_mcheck_init(const struct cpuinfo_x86 *c, bool bsp)
     uint32_t i;
     enum mcequirk_amd_flags quirkflag = 0;
 
-    if ( c->x86_vendor != X86_VENDOR_HYGON )
+    if ( c->vendor != X86_VENDOR_HYGON )
         quirkflag = mcequirk_lookup_amd_quirkdata(c);
 
     /* Assume that machine check support is available.
      * The minimum provided support is at least the K8. */
     if ( bsp )
-        mce_handler_init(c->x86 == 0xf ? &k8_callbacks : &k10_callbacks);
+        mce_handler_init(c->family == 0xf ? &k8_callbacks : &k10_callbacks);
 
     for ( i = 0; i < this_cpu(nr_mce_banks); i++ )
     {
@@ -311,7 +311,7 @@ amd_mcheck_init(const struct cpuinfo_x86 *c, bool bsp)
         }
     }
 
-    if ( c->x86 == 0xf )
+    if ( c->family == 0xf )
         return mcheck_amd_k8;
 
     if ( quirkflag == MCEQUIRK_F10_GART )
@@ -337,6 +337,6 @@ amd_mcheck_init(const struct cpuinfo_x86 *c, bool bsp)
             ppin_msr = MSR_AMD_PPIN;
     }
 
-    return c->x86_vendor == X86_VENDOR_HYGON ?
+    return c->vendor == X86_VENDOR_HYGON ?
             mcheck_hygon : mcheck_amd_famXX;
 }
diff --git a/xen/arch/x86/cpu/mcheck/mce_intel.c b/xen/arch/x86/cpu/mcheck/mce_intel.c
index 1e52b1ac25..c266c4e3b9 100644
--- a/xen/arch/x86/cpu/mcheck/mce_intel.c
+++ b/xen/arch/x86/cpu/mcheck/mce_intel.c
@@ -709,8 +709,7 @@ static bool mce_is_broadcast(struct cpuinfo_x86 *c)
      * DisplayFamily_DisplayModel encoding of 06H_EH and above,
      * a MCA signal is broadcast to all logical processors in the system
      */
-    if ( c->x86_vendor == X86_VENDOR_INTEL && c->x86 == 6 &&
-         c->x86_model >= 0xe )
+    if ( c->vendor == X86_VENDOR_INTEL && c->family == 6 && c->model >= 0xe )
         return true;
     return false;
 }
@@ -858,7 +857,7 @@ static void intel_init_ppin(const struct cpuinfo_x86 *c)
      * other purposes.  Despite the late addition of a CPUID bit (rendering
      * the MSR architectural), keep using the same detection logic there.
      */
-    switch ( c->x86_model )
+    switch ( c->model )
     {
         uint64_t val;
 
diff --git a/xen/arch/x86/cpu/mcheck/non-fatal.c b/xen/arch/x86/cpu/mcheck/non-fatal.c
index a9ee9bb94f..4e7c64abef 100644
--- a/xen/arch/x86/cpu/mcheck/non-fatal.c
+++ b/xen/arch/x86/cpu/mcheck/non-fatal.c
@@ -23,7 +23,7 @@ static int __init cf_check init_nonfatal_mce_checker(void)
 	/*
 	 * Check for non-fatal errors every MCE_RATE s
 	 */
-	switch (c->x86_vendor) {
+	switch (c->vendor) {
 #ifdef CONFIG_AMD
 	case X86_VENDOR_AMD:
 	case X86_VENDOR_HYGON:
diff --git a/xen/arch/x86/cpu/mcheck/vmce.c b/xen/arch/x86/cpu/mcheck/vmce.c
index 5abdf4cb5f..bef4eedb31 100644
--- a/xen/arch/x86/cpu/mcheck/vmce.c
+++ b/xen/arch/x86/cpu/mcheck/vmce.c
@@ -45,7 +45,7 @@ void vmce_init_vcpu(struct vcpu *v)
     int i;
 
     /* global MCA MSRs init */
-    if ( boot_cpu_data.x86_vendor == X86_VENDOR_INTEL )
+    if ( boot_cpu_data.vendor == X86_VENDOR_INTEL )
         v->arch.vmce.mcg_cap = INTEL_GUEST_MCG_CAP;
     else
         v->arch.vmce.mcg_cap = AMD_GUEST_MCG_CAP;
@@ -63,7 +63,7 @@ int vmce_restore_vcpu(struct vcpu *v, const struct hvm_vmce_vcpu *ctxt)
 {
     unsigned long guest_mcg_cap;
 
-    if ( boot_cpu_data.x86_vendor == X86_VENDOR_INTEL )
+    if ( boot_cpu_data.vendor == X86_VENDOR_INTEL )
         guest_mcg_cap = INTEL_GUEST_MCG_CAP | MCG_LMCE_P;
     else
         guest_mcg_cap = AMD_GUEST_MCG_CAP;
@@ -136,7 +136,7 @@ static int bank_mce_rdmsr(const struct vcpu *v, uint32_t msr, uint64_t *val)
         break;
 
     default:
-        switch ( boot_cpu_data.x86_vendor )
+        switch ( boot_cpu_data.vendor )
         {
 #ifdef CONFIG_INTEL
         case X86_VENDOR_CENTAUR:
@@ -273,7 +273,7 @@ static int bank_mce_wrmsr(struct vcpu *v, uint32_t msr, uint64_t val)
         break;
 
     default:
-        switch ( boot_cpu_data.x86_vendor )
+        switch ( boot_cpu_data.vendor )
         {
 #ifdef CONFIG_INTEL
         case X86_VENDOR_INTEL:
diff --git a/xen/arch/x86/cpu/mtrr/generic.c b/xen/arch/x86/cpu/mtrr/generic.c
index c587e9140e..190be7f1b4 100644
--- a/xen/arch/x86/cpu/mtrr/generic.c
+++ b/xen/arch/x86/cpu/mtrr/generic.c
@@ -218,9 +218,9 @@ static void __init print_mtrr_state(const char *level)
 			printk("%s  %u disabled\n", level, i);
 	}
 
-	if ((boot_cpu_data.x86_vendor == X86_VENDOR_AMD &&
-	     boot_cpu_data.x86 >= 0xf) ||
-	     boot_cpu_data.x86_vendor == X86_VENDOR_HYGON) {
+	if ((boot_cpu_data.vendor == X86_VENDOR_AMD &&
+	     boot_cpu_data.family >= 0xf) ||
+	     boot_cpu_data.vendor == X86_VENDOR_HYGON) {
 		uint64_t syscfg, tom2;
 
 		rdmsrl(MSR_K8_SYSCFG, syscfg);
diff --git a/xen/arch/x86/cpu/mwait-idle.c b/xen/arch/x86/cpu/mwait-idle.c
index f47fdfb569..37322c46c0 100644
--- a/xen/arch/x86/cpu/mwait-idle.c
+++ b/xen/arch/x86/cpu/mwait-idle.c
@@ -1637,7 +1637,7 @@ static int __init mwait_idle_probe(void)
 		lapic_timer_reliable_states = LAPIC_TIMER_ALWAYS_RELIABLE;
 
 	pr_debug(PREFIX "v" MWAIT_IDLE_VERSION " model %#x\n",
-		 boot_cpu_data.x86_model);
+		 boot_cpu_data.model);
 
 	pr_debug(PREFIX "lapic_timer_reliable_states %#x\n",
 		 lapic_timer_reliable_states);
@@ -1816,7 +1816,7 @@ bool __init mwait_pc10_supported(void)
 {
 	unsigned int ecx, edx, dummy;
 
-	if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL ||
+	if (boot_cpu_data.vendor != X86_VENDOR_INTEL ||
 	    !cpu_has_monitor ||
 	    boot_cpu_data.cpuid_level < CPUID_MWAIT_LEAF)
 		return false;
diff --git a/xen/arch/x86/cpu/vpmu.c b/xen/arch/x86/cpu/vpmu.c
index c28192ea26..64328bdf3f 100644
--- a/xen/arch/x86/cpu/vpmu.c
+++ b/xen/arch/x86/cpu/vpmu.c
@@ -398,7 +398,7 @@ int vpmu_load(struct vcpu *v, bool from_guest)
 static int vpmu_arch_initialise(struct vcpu *v)
 {
     struct vpmu_struct *vpmu = vcpu_vpmu(v);
-    uint8_t vendor = current_cpu_data.x86_vendor;
+    uint8_t vendor = current_cpu_data.vendor;
     int ret;
 
     BUILD_BUG_ON(sizeof(struct xen_pmu_intel_ctxt) > XENPMU_CTXT_PAD_SZ);
@@ -815,7 +815,7 @@ static struct notifier_block cpu_nfb = {
 
 static int __init cf_check vpmu_init(void)
 {
-    int vendor = current_cpu_data.x86_vendor;
+    int vendor = current_cpu_data.vendor;
     const struct arch_vpmu_ops *ops = NULL;
 
     if ( !opt_vpmu_enabled )
diff --git a/xen/arch/x86/cpu/vpmu_amd.c b/xen/arch/x86/cpu/vpmu_amd.c
index a6117dfebf..16d8d8cef3 100644
--- a/xen/arch/x86/cpu/vpmu_amd.c
+++ b/xen/arch/x86/cpu/vpmu_amd.c
@@ -538,7 +538,7 @@ static const struct arch_vpmu_ops *__init common_init(void)
     if ( !num_counters )
     {
         printk(XENLOG_WARNING "VPMU: Unsupported CPU family %#x\n",
-               current_cpu_data.x86);
+               current_cpu_data.family);
         return ERR_PTR(-EINVAL);
     }
 
@@ -563,7 +563,7 @@ static const struct arch_vpmu_ops *__init common_init(void)
 
 const struct arch_vpmu_ops *__init amd_vpmu_init(void)
 {
-    switch ( current_cpu_data.x86 )
+    switch ( current_cpu_data.family )
     {
     case 0x15:
     case 0x17:
@@ -591,7 +591,7 @@ const struct arch_vpmu_ops *__init amd_vpmu_init(void)
 
 const struct arch_vpmu_ops *__init hygon_vpmu_init(void)
 {
-    switch ( current_cpu_data.x86 )
+    switch ( current_cpu_data.family )
     {
     case 0x18:
         num_counters = F15H_NUM_COUNTERS;
diff --git a/xen/arch/x86/cpu/vpmu_intel.c b/xen/arch/x86/cpu/vpmu_intel.c
index 7ce98ee42e..bc9d871056 100644
--- a/xen/arch/x86/cpu/vpmu_intel.c
+++ b/xen/arch/x86/cpu/vpmu_intel.c
@@ -923,7 +923,7 @@ const struct arch_vpmu_ops *__init core2_vpmu_init(void)
         return ERR_PTR(-EINVAL);
     }
 
-    if ( current_cpu_data.x86 != 6 )
+    if ( current_cpu_data.family != 6 )
     {
         printk(XENLOG_WARNING "VPMU: only family 6 is supported\n");
         return ERR_PTR(-EINVAL);
@@ -964,7 +964,7 @@ const struct arch_vpmu_ops *__init core2_vpmu_init(void)
               sizeof(struct xen_pmu_cntr_pair) * arch_pmc_cnt;
 
     /* TODO: It's clearly incorrect for this to quirk all Intel Fam6 CPUs. */
-    pmc_quirk = current_cpu_data.x86 == 6;
+    pmc_quirk = current_cpu_data.family == 6;
 
     if ( sizeof(struct xen_pmu_data) + sizeof(uint64_t) * fixed_pmc_cnt +
          sizeof(struct xen_pmu_cntr_pair) * arch_pmc_cnt > PAGE_SIZE )
diff --git a/xen/arch/x86/cpuid.c b/xen/arch/x86/cpuid.c
index 8dc68945f7..cd7df0f117 100644
--- a/xen/arch/x86/cpuid.c
+++ b/xen/arch/x86/cpuid.c
@@ -434,7 +434,7 @@ void guest_cpuid(const struct vcpu *v, uint32_t leaf,
 
     case 0xa:
         /* TODO: Rework vPMU control in terms of toolstack choices. */
-        if ( boot_cpu_data.x86_vendor != X86_VENDOR_INTEL ||
+        if ( boot_cpu_data.vendor != X86_VENDOR_INTEL ||
              !vpmu_available(v) )
             *res = EMPTY_LEAF;
         else
diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
index 0b467fd4a4..864dd9e53e 100644
--- a/xen/arch/x86/dom0_build.c
+++ b/xen/arch/x86/dom0_build.c
@@ -572,10 +572,10 @@ int __init dom0_setup_permissions(struct domain *d)
             rc |= iomem_deny_access(d, mfn, mfn);
     }
     /* HyperTransport range. */
-    if ( boot_cpu_data.x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON) )
+    if ( boot_cpu_data.vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON) )
     {
         mfn = paddr_to_pfn(1UL <<
-                           (boot_cpu_data.x86 < 0x17 ? 40 : paddr_bits));
+                           (boot_cpu_data.family < 0x17 ? 40 : paddr_bits));
         rc |= iomem_deny_access(d, mfn - paddr_to_pfn(3UL << 32), mfn - 1);
     }
 
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 56c3816187..234e828bb3 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -317,7 +317,7 @@ void domain_cpu_policy_changed(struct domain *d)
             if ( cpu_has_htt )
                 edx |= cpufeat_mask(X86_FEATURE_HTT);
 
-            switch ( boot_cpu_data.x86_vendor )
+            switch ( boot_cpu_data.vendor )
             {
             case X86_VENDOR_INTEL:
                 /*
@@ -370,7 +370,7 @@ void domain_cpu_policy_changed(struct domain *d)
         {
             uint64_t mask = cpuidmask_defaults._6c;
 
-            if ( boot_cpu_data.x86_vendor == X86_VENDOR_AMD )
+            if ( boot_cpu_data.vendor == X86_VENDOR_AMD )
                 mask &= (~0ULL << 32) | p->basic.raw[6].c;
 
             d->arch.pv.cpuidmasks->_6c = mask;
@@ -385,7 +385,7 @@ void domain_cpu_policy_changed(struct domain *d)
              * wholesale from the policy, but clamp the features in 7[0].ebx
              * per usual.
              */
-            if ( boot_cpu_data.x86_vendor &
+            if ( boot_cpu_data.vendor &
                  (X86_VENDOR_AMD | X86_VENDOR_HYGON) )
                 mask = (((uint64_t)p->feat.max_subleaf << 32) |
                         ((uint32_t)mask & p->feat._7b0));
@@ -398,7 +398,7 @@ void domain_cpu_policy_changed(struct domain *d)
             uint64_t mask = cpuidmask_defaults.Da1;
             uint32_t eax = p->xstate.Da1;
 
-            if ( boot_cpu_data.x86_vendor == X86_VENDOR_INTEL )
+            if ( boot_cpu_data.vendor == X86_VENDOR_INTEL )
                 mask &= (~0ULL << 32) | eax;
 
             d->arch.pv.cpuidmasks->Da1 = mask;
@@ -425,7 +425,7 @@ void domain_cpu_policy_changed(struct domain *d)
             if ( !(p->x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)) )
                 edx &= ~CPUID_COMMON_1D_FEATURES;
 
-            switch ( boot_cpu_data.x86_vendor )
+            switch ( boot_cpu_data.vendor )
             {
             case X86_VENDOR_INTEL:
                 mask &= ((uint64_t)edx << 32) | ecx;
@@ -455,7 +455,7 @@ void domain_cpu_policy_changed(struct domain *d)
         cpu_policy_updated(v);
 
         /* If PMU version is zero then the guest doesn't have VPMU */
-        if ( boot_cpu_data.x86_vendor == X86_VENDOR_INTEL &&
+        if ( boot_cpu_data.vendor == X86_VENDOR_INTEL &&
              p->basic.pmu_version == 0 )
             vpmu_destroy(v);
     }
diff --git a/xen/arch/x86/e820.c b/xen/arch/x86/e820.c
index ca577c0bde..872208ab37 100644
--- a/xen/arch/x86/e820.c
+++ b/xen/arch/x86/e820.c
@@ -426,7 +426,7 @@ static uint64_t __init mtrr_top_of_ram(void)
 
     /* By default we check only Intel systems. */
     if ( e820_mtrr_clip == -1 )
-        e820_mtrr_clip = boot_cpu_data.x86_vendor == X86_VENDOR_INTEL;
+        e820_mtrr_clip = boot_cpu_data.vendor == X86_VENDOR_INTEL;
 
     if ( !e820_mtrr_clip )
         return 0;
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index cb8ecd050d..2459b43d32 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -3881,7 +3881,7 @@ void hvm_ud_intercept(struct cpu_user_regs *regs)
 {
     struct vcpu *cur = current;
     bool should_emulate =
-        cur->domain->arch.cpuid->x86_vendor != boot_cpu_data.x86_vendor;
+        cur->domain->arch.cpuid->x86_vendor != boot_cpu_data.vendor;
     struct hvm_emulate_ctxt ctxt;
 
     hvm_emulate_init_once(&ctxt, opt_hvm_fep ? NULL : is_cross_vendor, regs);
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index fce750ca1f..c79822787d 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -588,7 +588,7 @@ static void cf_check svm_cpuid_policy_changed(struct vcpu *v)
     u32 bitmap = vmcb_get_exception_intercepts(vmcb);
 
     if ( opt_hvm_fep ||
-         (v->domain->arch.cpuid->x86_vendor != boot_cpu_data.x86_vendor) )
+         (v->domain->arch.cpuid->x86_vendor != boot_cpu_data.vendor) )
         bitmap |= (1U << X86_EXC_UD);
     else
         bitmap &= ~(1U << X86_EXC_UD);
@@ -1053,7 +1053,7 @@ static void svm_guest_osvw_init(struct domain *d)
      * be conservative here and therefore we tell the guest that erratum 298
      * is present (because we really don't know).
      */
-    if ( osvw_length == 0 && boot_cpu_data.x86 == 0x10 )
+    if ( osvw_length == 0 && boot_cpu_data.family == 0x10 )
         svm->osvw.status |= 1;
 
     spin_unlock(&osvw_lock);
@@ -1788,7 +1788,7 @@ static int cf_check svm_msr_read_intercept(
         if ( !rdmsr_safe(msr, *msr_content) )
             break;
 
-        if ( boot_cpu_data.x86 == 0xf )
+        if ( boot_cpu_data.family == 0xf )
         {
             /*
              * Win2k8 x64 reads this MSR on revF chips, where it wasn't
diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
index ab8b1c87ec..a5eef5970c 100644
--- a/xen/arch/x86/hvm/vmx/vmcs.c
+++ b/xen/arch/x86/hvm/vmx/vmcs.c
@@ -2145,8 +2145,8 @@ int __init vmx_vmcs_init(void)
 
     if ( opt_ept_ad < 0 )
         /* Work around Erratum AVR41 on Avoton processors. */
-        opt_ept_ad = !(boot_cpu_data.x86 == 6 &&
-                       boot_cpu_data.x86_model == 0x4d);
+        opt_ept_ad = !(boot_cpu_data.family == 6 &&
+                       boot_cpu_data.model == 0x4d);
 
     ret = _vmx_cpu_up(true);
 
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index cb82d52ef0..f441e41531 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -497,10 +497,10 @@ static const struct lbr_info *__ro_after_init model_specific_lbr;
 
 static const struct lbr_info *__init get_model_specific_lbr(void)
 {
-    switch ( boot_cpu_data.x86 )
+    switch ( boot_cpu_data.family )
     {
     case 6:
-        switch ( boot_cpu_data.x86_model )
+        switch ( boot_cpu_data.model )
         {
         /* Core2 Duo */
         case 0x0f:
@@ -556,7 +556,7 @@ static const struct lbr_info *__init get_model_specific_lbr(void)
         break;
 
     case 15:
-        switch ( boot_cpu_data.x86_model )
+        switch ( boot_cpu_data.model )
         {
         /* Pentium4/Xeon with em64t */
         case 3: case 4: case 6:
@@ -792,7 +792,7 @@ static void cf_check vmx_cpuid_policy_changed(struct vcpu *v)
     int rc = 0;
 
     if ( opt_hvm_fep ||
-         (v->domain->arch.cpuid->x86_vendor != boot_cpu_data.x86_vendor) )
+         (v->domain->arch.cpuid->x86_vendor != boot_cpu_data.vendor) )
         v->arch.hvm.vmx.exception_bitmap |= (1U << X86_EXC_UD);
     else
         v->arch.hvm.vmx.exception_bitmap &= ~(1U << X86_EXC_UD);
@@ -2984,11 +2984,11 @@ static bool __init has_if_pschange_mc(void)
      * IF_PSCHANGE_MC is only known to affect Intel Family 6 processors at
      * this time.
      */
-    if ( boot_cpu_data.x86_vendor != X86_VENDOR_INTEL ||
-         boot_cpu_data.x86 != 6 )
+    if ( boot_cpu_data.vendor != X86_VENDOR_INTEL ||
+         boot_cpu_data.family != 6 )
         return false;
 
-    switch ( boot_cpu_data.x86_model )
+    switch ( boot_cpu_data.model )
     {
         /*
          * Core processors since at least Nehalem are vulnerable.
@@ -3047,7 +3047,7 @@ static bool __init has_if_pschange_mc(void)
 
     default:
         printk("Unrecognised CPU model %#x - assuming vulnerable to IF_PSCHANGE_MC\n",
-               boot_cpu_data.x86_model);
+               boot_cpu_data.model);
         return true;
     }
 }
@@ -3336,11 +3336,11 @@ static void __init lbr_tsx_fixup_check(void)
      * fixed up as well.
      */
     if ( cpu_has_hle || cpu_has_rtm ||
-         boot_cpu_data.x86_vendor != X86_VENDOR_INTEL ||
-         boot_cpu_data.x86 != 6 )
+         boot_cpu_data.vendor != X86_VENDOR_INTEL ||
+         boot_cpu_data.family != 6 )
         return;
 
-    switch ( boot_cpu_data.x86_model )
+    switch ( boot_cpu_data.model )
     {
     case 0x3c: /* HSM182, HSD172 - 4th gen Core */
     case 0x3f: /* HSE117 - Xeon E5 v3 */
@@ -3381,11 +3381,11 @@ static void __init ler_to_fixup_check(void)
      * that are not equal to bit[47].  Attempting to context switch this value
      * may cause a #GP.  Software should sign extend the MSR.
      */
-    if ( boot_cpu_data.x86_vendor != X86_VENDOR_INTEL ||
-         boot_cpu_data.x86 != 6 )
+    if ( boot_cpu_data.vendor != X86_VENDOR_INTEL ||
+         boot_cpu_data.family != 6 )
         return;
 
-    switch ( boot_cpu_data.x86_model )
+    switch ( boot_cpu_data.model )
     {
     case 0x3d: /* BDM131 - 5th gen Core */
     case 0x47: /* BDD??? - 5th gen Core (H-Processor line)
diff --git a/xen/arch/x86/i8259.c b/xen/arch/x86/i8259.c
index 5c7e21a751..d2a08661f8 100644
--- a/xen/arch/x86/i8259.c
+++ b/xen/arch/x86/i8259.c
@@ -419,7 +419,7 @@ void __init init_IRQ(void)
          * the interrupt.
          */
         cpumask_copy(desc->arch.cpu_mask,
-                     (boot_cpu_data.x86_vendor &
+                     (boot_cpu_data.vendor &
                       (X86_VENDOR_AMD | X86_VENDOR_HYGON) ? &cpumask_all
                                                           : cpumask_of(cpu)));
         desc->arch.vector = LEGACY_VECTOR(irq);
diff --git a/xen/arch/x86/include/asm/cpufeature.h b/xen/arch/x86/include/asm/cpufeature.h
index 441a7ecc49..0fefb4acb1 100644
--- a/xen/arch/x86/include/asm/cpufeature.h
+++ b/xen/arch/x86/include/asm/cpufeature.h
@@ -37,29 +37,16 @@
 #ifndef __ASSEMBLY__
 
 struct cpuinfo_x86 {
-    /* TODO: Phase out the x86 prefixed names. */
     union {
         struct {
-            union {
-                uint8_t x86_model;
-                uint8_t model;
-            };
-            union {
-                uint8_t x86;
-                uint8_t family;
-            };
-            union {
-                uint8_t x86_vendor;
-                uint8_t vendor;
-            };
+            uint8_t model;
+            uint8_t family;
+            uint8_t vendor;
             uint8_t _rsvd;             /* Use of this needs coordinating with VFM_MAKE() */
         };
         uint32_t vfm;                  /* Vendor Family Model */
     };
-    union {
-        uint8_t x86_mask;
-        uint8_t stepping;
-    };
+    uint8_t stepping;
 
     unsigned int cpuid_level;          /* Maximum supported CPUID level */
     unsigned int extended_cpuid_level; /* Maximum supported CPUID extended level */
diff --git a/xen/arch/x86/include/asm/intel-family.h b/xen/arch/x86/include/asm/intel-family.h
index d8c0bcc406..c71e744731 100644
--- a/xen/arch/x86/include/asm/intel-family.h
+++ b/xen/arch/x86/include/asm/intel-family.h
@@ -179,6 +179,10 @@
 #define INTEL_XEON_PHI_KNL		IFM(6, 0x57) /* Knights Landing */
 #define INTEL_XEON_PHI_KNM		IFM(6, 0x85) /* Knights Mill */
 
+/* Family 15 - NetBurst */
+#define INTEL_P4_WILLAMETTE		IFM(15, 0x01) /* Also Xeon Foster */
+#define INTEL_P4_PRESCOTT		IFM(15, 0x03)
+
 /* Family 5 */
 #define INTEL_FAM5_QUARK_X1000		0x09 /* Quark X1000 SoC */
 #define INTEL_QUARK_X1000		IFM(5, 0x09) /* Quark X1000 SoC */
diff --git a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c
index 1816e1c0b9..15d6b855cb 100644
--- a/xen/arch/x86/io_apic.c
+++ b/xen/arch/x86/io_apic.c
@@ -1480,7 +1480,7 @@ static void __init setup_ioapic_ids_from_mpc(void)
      * Don't check I/O APIC IDs for xAPIC systems. They have
      * no meaning without the serial APIC bus.
      */
-    if (!(boot_cpu_data.x86_vendor == X86_VENDOR_INTEL)
+    if (!(boot_cpu_data.vendor == X86_VENDOR_INTEL)
         || APIC_XAPIC(apic_version[boot_cpu_physical_apicid]))
         return;
 
diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c
index 556134f85a..c1d60395ed 100644
--- a/xen/arch/x86/irq.c
+++ b/xen/arch/x86/irq.c
@@ -1984,8 +1984,8 @@ void do_IRQ(struct cpu_user_regs *regs)
                      * interrupts have been delivered to CPUs
                      * different than the BSP.
                      */
-                    (boot_cpu_data.x86_vendor & (X86_VENDOR_AMD |
-                                                 X86_VENDOR_HYGON))) &&
+                    (boot_cpu_data.vendor & (X86_VENDOR_AMD |
+                                             X86_VENDOR_HYGON))) &&
                    bogus_8259A_irq(vector - FIRST_LEGACY_VECTOR)) )
             {
                 printk("CPU%u: No irq handler for vector %02x (IRQ %d%s)\n",
diff --git a/xen/arch/x86/mpparse.c b/xen/arch/x86/mpparse.c
index e74a714f50..38ba90d1cb 100644
--- a/xen/arch/x86/mpparse.c
+++ b/xen/arch/x86/mpparse.c
@@ -511,9 +511,9 @@ static inline void __init construct_default_ISA_mptable(int mpc_default_type)
 	/* Either an integrated APIC or a discrete 82489DX. */
 	processor.mpc_apicver = mpc_default_type > 4 ? 0x10 : 0x01;
 	processor.mpc_cpuflag = CPU_ENABLED;
-	processor.mpc_cpufeature = (boot_cpu_data.x86 << 8) |
-				   (boot_cpu_data.x86_model << 4) |
-				   boot_cpu_data.x86_mask;
+	processor.mpc_cpufeature = (boot_cpu_data.family << 8) |
+				   (boot_cpu_data.model << 4) |
+				   boot_cpu_data.stepping;
 	processor.mpc_featureflag =
             boot_cpu_data.x86_capability[FEATURESET_1d];
 	processor.mpc_reserved[0] = 0;
@@ -891,7 +891,7 @@ void __init mp_register_ioapic (
 	mp_ioapics[idx].mpc_apicaddr = address;
 
 	set_fixmap_nocache(FIX_IO_APIC_BASE_0 + idx, address);
-	if ((boot_cpu_data.x86_vendor == X86_VENDOR_INTEL)
+	if ((boot_cpu_data.vendor == X86_VENDOR_INTEL)
 		&& !APIC_XAPIC(apic_version[boot_cpu_physical_apicid]))
 		tmpid = io_apic_get_unique_id(idx, id);
 	else
diff --git a/xen/arch/x86/msr.c b/xen/arch/x86/msr.c
index 2cd46b6c8a..ffee35daed 100644
--- a/xen/arch/x86/msr.c
+++ b/xen/arch/x86/msr.c
@@ -169,7 +169,7 @@ int guest_rdmsr(struct vcpu *v, uint32_t msr, uint64_t *val)
 
     case MSR_IA32_PLATFORM_ID:
         if ( !(cp->x86_vendor & X86_VENDOR_INTEL) ||
-             !(boot_cpu_data.x86_vendor & X86_VENDOR_INTEL) )
+             !(boot_cpu_data.vendor & X86_VENDOR_INTEL) )
             goto gp_fault;
         rdmsrl(MSR_IA32_PLATFORM_ID, *val);
         break;
@@ -189,7 +189,7 @@ int guest_rdmsr(struct vcpu *v, uint32_t msr, uint64_t *val)
          * the guest.
          */
         if ( !(cp->x86_vendor & (X86_VENDOR_INTEL | X86_VENDOR_AMD)) ||
-             !(boot_cpu_data.x86_vendor &
+             !(boot_cpu_data.vendor &
                (X86_VENDOR_INTEL | X86_VENDOR_AMD)) ||
              rdmsr_safe(MSR_AMD_PATCHLEVEL, *val) )
             goto gp_fault;
diff --git a/xen/arch/x86/nmi.c b/xen/arch/x86/nmi.c
index 9793fa2316..c61167fab8 100644
--- a/xen/arch/x86/nmi.c
+++ b/xen/arch/x86/nmi.c
@@ -216,12 +216,12 @@ void disable_lapic_nmi_watchdog(void)
 {
     if (nmi_active <= 0)
         return;
-    switch (boot_cpu_data.x86_vendor) {
+    switch (boot_cpu_data.vendor) {
     case X86_VENDOR_AMD:
         wrmsr(MSR_K7_EVNTSEL0, 0, 0);
         break;
     case X86_VENDOR_INTEL:
-        switch (boot_cpu_data.x86) {
+        switch (boot_cpu_data.family) {
         case 6:
             wrmsr(MSR_P6_EVNTSEL(0), 0, 0);
             break;
@@ -362,7 +362,7 @@ static void setup_p4_watchdog(void)
         clear_msr_range(0x3F1, 2);
     /* MSR 0x3F0 seems to have a default value of 0xFC00, but current
        docs doesn't fully define it, so leave it alone for now. */
-    if (boot_cpu_data.x86_model >= 0x3) {
+    if (boot_cpu_data.model >= 0x3) {
         /* MSR_P4_IQ_ESCR0/1 (0x3ba/0x3bb) removed */
         clear_msr_range(0x3A0, 26);
         clear_msr_range(0x3BC, 3);
@@ -387,16 +387,16 @@ void setup_apic_nmi_watchdog(void)
     if ( nmi_watchdog == NMI_NONE )
         return;
 
-    switch ( boot_cpu_data.x86_vendor )
+    switch ( boot_cpu_data.vendor )
     {
     case X86_VENDOR_AMD:
         setup_k7_watchdog();
         break;
 
     case X86_VENDOR_INTEL:
-        switch (boot_cpu_data.x86) {
+        switch (boot_cpu_data.family) {
         case 6:
-            setup_p6_watchdog((boot_cpu_data.x86_model < 14) 
+            setup_p6_watchdog((boot_cpu_data.model < 14)
                               ? P6_EVENT_CPU_CLOCKS_NOT_HALTED
                               : CORE_EVENT_CPU_CLOCKS_NOT_HALTED);
             break;
diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hypercall.c
index 3eba791889..65faf2b6f9 100644
--- a/xen/arch/x86/platform_hypercall.c
+++ b/xen/arch/x86/platform_hypercall.c
@@ -640,9 +640,9 @@ ret_t do_platform_op(
             const struct cpuinfo_x86 *c = &cpu_data[ver->xen_cpuid];
 
             memcpy(ver->vendor_id, c->x86_vendor_id, sizeof(ver->vendor_id));
-            ver->family = c->x86;
-            ver->model = c->x86_model;
-            ver->stepping = c->x86_mask;
+            ver->family = c->family;
+            ver->model = c->model;
+            ver->stepping = c->stepping;
         }
 
         ver->max_present = cpumask_last(&cpu_present_map);
diff --git a/xen/arch/x86/pv/domain.c b/xen/arch/x86/pv/domain.c
index 9334da1dab..b089a1e348 100644
--- a/xen/arch/x86/pv/domain.c
+++ b/xen/arch/x86/pv/domain.c
@@ -173,7 +173,7 @@ static int __init cf_check pge_init(void)
 {
     if ( opt_global_pages == -1 )
         opt_global_pages = !cpu_has_hypervisor ||
-                           !(boot_cpu_data.x86_vendor &
+                           !(boot_cpu_data.vendor &
                              (X86_VENDOR_AMD | X86_VENDOR_HYGON));
 
     return 0;
diff --git a/xen/arch/x86/pv/emul-priv-op.c b/xen/arch/x86/pv/emul-priv-op.c
index f3f012f8fb..e64ebad938 100644
--- a/xen/arch/x86/pv/emul-priv-op.c
+++ b/xen/arch/x86/pv/emul-priv-op.c
@@ -243,8 +243,8 @@ static bool pci_cfg_ok(struct domain *currd, unsigned int start,
     start |= CF8_ADDR_LO(currd->arch.pci_cf8);
     /* AMD extended configuration space access? */
     if ( CF8_ADDR_HI(currd->arch.pci_cf8) &&
-         boot_cpu_data.x86_vendor == X86_VENDOR_AMD &&
-         boot_cpu_data.x86 >= 0x10 && boot_cpu_data.x86 < 0x17 )
+         boot_cpu_data.vendor == X86_VENDOR_AMD &&
+         boot_cpu_data.family >= 0x10 && boot_cpu_data.family < 0x17 )
     {
         uint64_t msr_val;
 
@@ -867,7 +867,7 @@ static uint64_t guest_efer(const struct domain *d)
      */
     if ( is_pv_32bit_domain(d) )
         val &= ~(EFER_LME | EFER_LMA |
-                 (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL
+                 (boot_cpu_data.vendor == X86_VENDOR_INTEL
                   ? EFER_SCE : 0));
     return val;
 }
@@ -942,7 +942,7 @@ static int cf_check read_msr(
     case MSR_K8_PSTATE5:
     case MSR_K8_PSTATE6:
     case MSR_K8_PSTATE7:
-        if ( boot_cpu_data.x86_vendor != X86_VENDOR_AMD )
+        if ( boot_cpu_data.vendor != X86_VENDOR_AMD )
             break;
         if ( unlikely(is_cpufreq_controller(currd)) )
             goto normal;
@@ -950,8 +950,8 @@ static int cf_check read_msr(
         return X86EMUL_OKAY;
 
     case MSR_FAM10H_MMIO_CONF_BASE:
-        if ( boot_cpu_data.x86_vendor != X86_VENDOR_AMD ||
-             boot_cpu_data.x86 < 0x10 || boot_cpu_data.x86 >= 0x17 )
+        if ( boot_cpu_data.vendor != X86_VENDOR_AMD ||
+             boot_cpu_data.family < 0x10 || boot_cpu_data.family >= 0x17 )
             break;
         /* fall through */
     case MSR_AMD64_NB_CFG:
@@ -975,13 +975,13 @@ static int cf_check read_msr(
     case MSR_P6_EVNTSEL(0) ... MSR_P6_EVNTSEL(3):
     case MSR_CORE_PERF_FIXED_CTR0 ... MSR_CORE_PERF_FIXED_CTR2:
     case MSR_CORE_PERF_FIXED_CTR_CTRL ... MSR_CORE_PERF_GLOBAL_OVF_CTRL:
-        if ( boot_cpu_data.x86_vendor == X86_VENDOR_INTEL )
+        if ( boot_cpu_data.vendor == X86_VENDOR_INTEL )
         {
             vpmu_msr = true;
             /* fall through */
     case MSR_AMD_FAM15H_EVNTSEL0 ... MSR_AMD_FAM15H_PERFCTR5:
     case MSR_K7_EVNTSEL0 ... MSR_K7_PERFCTR3:
-            if ( vpmu_msr || (boot_cpu_data.x86_vendor &
+            if ( vpmu_msr || (boot_cpu_data.vendor &
                               (X86_VENDOR_AMD | X86_VENDOR_HYGON)) )
             {
                 if ( vpmu_do_rdmsr(reg, val) )
@@ -1084,7 +1084,7 @@ static int cf_check write_msr(
     case MSR_K8_PSTATE6:
     case MSR_K8_PSTATE7:
     case MSR_K8_HWCR:
-        if ( !(boot_cpu_data.x86_vendor &
+        if ( !(boot_cpu_data.vendor &
                (X86_VENDOR_AMD | X86_VENDOR_HYGON)) )
             break;
         if ( likely(!is_cpufreq_controller(currd)) ||
@@ -1103,8 +1103,8 @@ static int cf_check write_msr(
         break;
 
     case MSR_FAM10H_MMIO_CONF_BASE:
-        if ( boot_cpu_data.x86_vendor != X86_VENDOR_AMD ||
-             boot_cpu_data.x86 < 0x10 || boot_cpu_data.x86 >= 0x17 )
+        if ( boot_cpu_data.vendor != X86_VENDOR_AMD ||
+             boot_cpu_data.family < 0x10 || boot_cpu_data.family >= 0x17 )
             break;
         if ( !is_hwdom_pinned_vcpu(curr) )
             return X86EMUL_OKAY;
@@ -1132,7 +1132,7 @@ static int cf_check write_msr(
 
     case MSR_IA32_MPERF:
     case MSR_IA32_APERF:
-        if ( !(boot_cpu_data.x86_vendor &
+        if ( !(boot_cpu_data.vendor &
                (X86_VENDOR_INTEL | X86_VENDOR_AMD | X86_VENDOR_HYGON)) )
             break;
         if ( likely(!is_cpufreq_controller(currd)) ||
@@ -1142,7 +1142,7 @@ static int cf_check write_msr(
 
     case MSR_IA32_THERM_CONTROL:
     case MSR_IA32_ENERGY_PERF_BIAS:
-        if ( boot_cpu_data.x86_vendor != X86_VENDOR_INTEL )
+        if ( boot_cpu_data.vendor != X86_VENDOR_INTEL )
             break;
         if ( !is_hwdom_pinned_vcpu(curr) || wrmsr_safe(reg, val) == 0 )
             return X86EMUL_OKAY;
@@ -1152,12 +1152,12 @@ static int cf_check write_msr(
     case MSR_P6_EVNTSEL(0) ... MSR_P6_EVNTSEL(3):
     case MSR_CORE_PERF_FIXED_CTR0 ... MSR_CORE_PERF_FIXED_CTR2:
     case MSR_CORE_PERF_FIXED_CTR_CTRL ... MSR_CORE_PERF_GLOBAL_OVF_CTRL:
-        if ( boot_cpu_data.x86_vendor == X86_VENDOR_INTEL )
+        if ( boot_cpu_data.vendor == X86_VENDOR_INTEL )
         {
             vpmu_msr = true;
     case MSR_AMD_FAM15H_EVNTSEL0 ... MSR_AMD_FAM15H_PERFCTR5:
     case MSR_K7_EVNTSEL0 ... MSR_K7_PERFCTR3:
-            if ( vpmu_msr || (boot_cpu_data.x86_vendor &
+            if ( vpmu_msr || (boot_cpu_data.vendor &
                               (X86_VENDOR_AMD | X86_VENDOR_HYGON)) )
             {
                 if ( (vpmu_mode & XENPMU_MODE_ALL) &&
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 1543dd251c..94e914201c 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1392,7 +1392,7 @@ void asmlinkage __init noreturn __start_xen(void)
          * supervisor shadow stacks are now safe to use.
          */
         bool cpu_has_bug_shstk_fracture =
-            boot_cpu_data.x86_vendor == X86_VENDOR_INTEL &&
+            boot_cpu_data.vendor == X86_VENDOR_INTEL &&
             !boot_cpu_has(X86_FEATURE_CET_SSS);
 
         /*
@@ -2024,10 +2024,10 @@ void asmlinkage __init noreturn __start_xen(void)
 
     /* Do not enable SMEP/SMAP in PV shim on AMD and Hygon by default */
     if ( opt_smep == -1 )
-        opt_smep = !pv_shim || !(boot_cpu_data.x86_vendor &
+        opt_smep = !pv_shim || !(boot_cpu_data.vendor &
                                  (X86_VENDOR_AMD | X86_VENDOR_HYGON));
     if ( opt_smap == -1 )
-        opt_smap = !pv_shim || !(boot_cpu_data.x86_vendor &
+        opt_smap = !pv_shim || !(boot_cpu_data.vendor &
                                  (X86_VENDOR_AMD | X86_VENDOR_HYGON));
 
     if ( !opt_smep )
diff --git a/xen/arch/x86/traps-setup.c b/xen/arch/x86/traps-setup.c
index a8385b26ae..06ab71171c 100644
--- a/xen/arch/x86/traps-setup.c
+++ b/xen/arch/x86/traps-setup.c
@@ -30,10 +30,10 @@ static void __init init_ler(void)
      * Intel Pentium 4 is the only known CPU to not use the architectural MSR
      * indicies.
      */
-    switch ( boot_cpu_data.x86_vendor )
+    switch ( boot_cpu_data.vendor )
     {
     case X86_VENDOR_INTEL:
-        if ( boot_cpu_data.x86 == 0xf )
+        if ( boot_cpu_data.family == 0xf )
         {
             msr = MSR_P4_LER_FROM_LIP;
             break;
diff --git a/xen/arch/x86/tsx.c b/xen/arch/x86/tsx.c
index fbdd05971c..52636462d9 100644
--- a/xen/arch/x86/tsx.c
+++ b/xen/arch/x86/tsx.c
@@ -148,8 +148,8 @@ void tsx_init(void)
             {
                 printk(XENLOG_ERR
                        "FIRMWARE BUG: CPU %02x-%02x-%02x, ucode 0x%08x: RTM_ALWAYS_ABORT vs RTM mismatch\n",
-                       boot_cpu_data.x86, boot_cpu_data.x86_model,
-                       boot_cpu_data.x86_mask, this_cpu(cpu_sig).rev);
+                       boot_cpu_data.family, boot_cpu_data.model,
+                       boot_cpu_data.stepping, this_cpu(cpu_sig).rev);
 
                 setup_clear_cpu_cap(X86_FEATURE_RTM_ALWAYS_ABORT);
                 setup_clear_cpu_cap(X86_FEATURE_TSX_FORCE_ABORT);
diff --git a/xen/drivers/passthrough/amd/iommu_init.c b/xen/drivers/passthrough/amd/iommu_init.c
index 3f6d2f5db5..476d569e81 100644
--- a/xen/drivers/passthrough/amd/iommu_init.c
+++ b/xen/drivers/passthrough/amd/iommu_init.c
@@ -835,9 +835,9 @@ static void amd_iommu_erratum_746_workaround(struct amd_iommu *iommu)
 {
     u32 value;
 
-    if ( (boot_cpu_data.x86 != 0x15) ||
-         (boot_cpu_data.x86_model < 0x10) ||
-         (boot_cpu_data.x86_model > 0x1f) )
+    if ( (boot_cpu_data.family != 0x15) ||
+         (boot_cpu_data.model < 0x10) ||
+         (boot_cpu_data.model > 0x1f) )
         return;
 
     pci_conf_write32(iommu->sbdf, 0xf0, 0x90);
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 10:46:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 10:46:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074281.1436942 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukKcf-0006gq-Dk; Fri, 08 Aug 2025 10:46:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074281.1436942; Fri, 08 Aug 2025 10:46: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 1ukKcf-0006gj-B0; Fri, 08 Aug 2025 10:46:53 +0000
Received: by outflank-mailman (input) for mailman id 1074281;
 Fri, 08 Aug 2025 10:46:52 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=HESy=2U=ideasonboard.com=tomi.valkeinen@srs-se1.protection.inumbo.net>)
 id 1ukKce-0006gd-HJ
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 10:46:52 +0000
Received: from perceval.ideasonboard.com (perceval.ideasonboard.com
 [213.167.242.64]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fde9467c-7444-11f0-a324-13f23c93f187;
 Fri, 08 Aug 2025 12:46:51 +0200 (CEST)
Received: from [192.168.88.20] (91-158-153-178.elisa-laajakaista.fi
 [91.158.153.178])
 by perceval.ideasonboard.com (Postfix) with ESMTPSA id A9F54185B;
 Fri,  8 Aug 2025 12:46:00 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fde9467c-7444-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;
	s=mail; t=1754649961;
	bh=aQZJ/ACAteL1Xe/fs+a56dnUeh7YIhfVoFkhEVZ11OI=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=wZUMfrjyCRUxfFQYD2A6qF3ZH6eFLp8DLnCkLjR1H5yIUW8fWHy0BO+JVzjmrQfkA
	 TPRktYsf0e/oWVJtiBcF/INX79qdjT+sK4Yi+HtJoigCiC95TT5u7jtd0ziBzxu29v
	 Q4LLAsWDuHGyhnkeyE3UicJEnQv6TJJcXZjtGT2k=
Message-ID: <1aaa3b42-a80e-48cf-b5ba-a4cece86b620@ideasonboard.com>
Date: Fri, 8 Aug 2025 13:46:47 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 25/25] drm/xlnx: Compute dumb-buffer sizes with
 drm_mode_size_dumb()
To: Thomas Zimmermann <tzimmermann@suse.de>
Cc: dri-devel@lists.freedesktop.org, linux-mediatek@lists.infradead.org,
 freedreno@lists.freedesktop.org, linux-arm-msm@vger.kernel.org,
 imx@lists.linux.dev, linux-samsung-soc@vger.kernel.org,
 nouveau@lists.freedesktop.org, virtualization@lists.linux.dev,
 spice-devel@lists.freedesktop.org, linux-renesas-soc@vger.kernel.org,
 linux-rockchip@lists.infradead.org, linux-tegra@vger.kernel.org,
 intel-xe@lists.freedesktop.org, xen-devel@lists.xenproject.org,
 Laurent Pinchart <laurent.pinchart@ideasonboard.com>, simona@ffwll.ch,
 airlied@gmail.com, mripard@kernel.org, maarten.lankhorst@linux.intel.com,
 geert@linux-m68k.org
References: <20250613090431.127087-1-tzimmermann@suse.de>
 <20250613090431.127087-26-tzimmermann@suse.de>
Content-Language: en-US
From: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Autocrypt: addr=tomi.valkeinen@ideasonboard.com; keydata=
 xsFNBE6ms0cBEACyizowecZqXfMZtnBniOieTuFdErHAUyxVgtmr0f5ZfIi9Z4l+uUN4Zdw2
 wCEZjx3o0Z34diXBaMRJ3rAk9yB90UJAnLtb8A97Oq64DskLF81GCYB2P1i0qrG7UjpASgCA
 Ru0lVvxsWyIwSfoYoLrazbT1wkWRs8YBkkXQFfL7Mn3ZMoGPcpfwYH9O7bV1NslbmyJzRCMO
 eYV258gjCcwYlrkyIratlHCek4GrwV8Z9NQcjD5iLzrONjfafrWPwj6yn2RlL0mQEwt1lOvn
 LnI7QRtB3zxA3yB+FLsT1hx0va6xCHpX3QO2gBsyHCyVafFMrg3c/7IIWkDLngJxFgz6DLiA
 G4ld1QK/jsYqfP2GIMH1mFdjY+iagG4DqOsjip479HCWAptpNxSOCL6z3qxCU8MCz8iNOtZk
 DYXQWVscM5qgYSn+fmMM2qN+eoWlnCGVURZZLDjg387S2E1jT/dNTOsM/IqQj+ZROUZuRcF7
 0RTtuU5q1HnbRNwy+23xeoSGuwmLQ2UsUk7Q5CnrjYfiPo3wHze8avK95JBoSd+WIRmV3uoO
 rXCoYOIRlDhg9XJTrbnQ3Ot5zOa0Y9c4IpyAlut6mDtxtKXr4+8OzjSVFww7tIwadTK3wDQv
 Bus4jxHjS6dz1g2ypT65qnHen6mUUH63lhzewqO9peAHJ0SLrQARAQABzTBUb21pIFZhbGtl
 aW5lbiA8dG9taS52YWxrZWluZW5AaWRlYXNvbmJvYXJkLmNvbT7CwY4EEwEIADgWIQTEOAw+
 ll79gQef86f6PaqMvJYe9QUCX/HruAIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRD6
 PaqMvJYe9WmFD/99NGoD5lBJhlFDHMZvO+Op8vCwnIRZdTsyrtGl72rVh9xRfcSgYPZUvBuT
 VDxE53mY9HaZyu1eGMccYRBaTLJSfCXl/g317CrMNdY0k40b9YeIX10feiRYEWoDIPQ3tMmA
 0nHDygzcnuPiPT68JYZ6tUOvAt7r6OX/litM+m2/E9mtp8xCoWOo/kYO4mOAIoMNvLB8vufi
 uBB4e/AvAjtny4ScuNV5c5q8MkfNIiOyag9QCiQ/JfoAqzXRjVb4VZG72AKaElwipiKCWEcU
 R4+Bu5Qbaxj7Cd36M/bI54OrbWWETJkVVSV1i0tghCd6HHyquTdFl7wYcz6cL1hn/6byVnD+
 sR3BLvSBHYp8WSwv0TCuf6tLiNgHAO1hWiQ1pOoXyMEsxZlgPXT+wb4dbNVunckwqFjGxRbl
 Rz7apFT/ZRwbazEzEzNyrBOfB55xdipG/2+SmFn0oMFqFOBEszXLQVslh64lI0CMJm2OYYe3
 PxHqYaztyeXsx13Bfnq9+bUynAQ4uW1P5DJ3OIRZWKmbQd/Me3Fq6TU57LsvwRgE0Le9PFQs
 dcP2071rMTpqTUteEgODJS4VDf4lXJfY91u32BJkiqM7/62Cqatcz5UWWHq5xeF03MIUTqdE
 qHWk3RJEoWHWQRzQfcx6Fn2fDAUKhAddvoopfcjAHfpAWJ+ENc7BTQROprNHARAAx0aat8GU
 hsusCLc4MIxOQwidecCTRc9Dz/7U2goUwhw2O5j9TPqLtp57VITmHILnvZf6q3QAho2QMQyE
 DDvHubrdtEoqaaSKxKkFie1uhWNNvXPhwkKLYieyL9m2JdU+b88HaDnpzdyTTR4uH7wk0bBa
 KbTSgIFDDe5lXInypewPO30TmYNkFSexnnM3n1PBCqiJXsJahE4ZQ+WnV5FbPUj8T2zXS2xk
 0LZ0+DwKmZ0ZDovvdEWRWrz3UzJ8DLHb7blPpGhmqj3ANXQXC7mb9qJ6J/VSl61GbxIO2Dwb
 xPNkHk8fwnxlUBCOyBti/uD2uSTgKHNdabhVm2dgFNVuS1y3bBHbI/qjC3J7rWE0WiaHWEqy
 UVPk8rsph4rqITsj2RiY70vEW0SKePrChvET7D8P1UPqmveBNNtSS7In+DdZ5kUqLV7rJnM9
 /4cwy+uZUt8cuCZlcA5u8IsBCNJudxEqBG10GHg1B6h1RZIz9Q9XfiBdaqa5+CjyFs8ua01c
 9HmyfkuhXG2OLjfQuK+Ygd56mV3lq0aFdwbaX16DG22c6flkkBSjyWXYepFtHz9KsBS0DaZb
 4IkLmZwEXpZcIOQjQ71fqlpiXkXSIaQ6YMEs8WjBbpP81h7QxWIfWtp+VnwNGc6nq5IQDESH
 mvQcsFS7d3eGVI6eyjCFdcAO8eMAEQEAAcLBXwQYAQIACQUCTqazRwIbDAAKCRD6PaqMvJYe
 9fA7EACS6exUedsBKmt4pT7nqXBcRsqm6YzT6DeCM8PWMTeaVGHiR4TnNFiT3otD5UpYQI7S
 suYxoTdHrrrBzdlKe5rUWpzoZkVK6p0s9OIvGzLT0lrb0HC9iNDWT3JgpYDnk4Z2mFi6tTbq
 xKMtpVFRA6FjviGDRsfkfoURZI51nf2RSAk/A8BEDDZ7lgJHskYoklSpwyrXhkp9FHGMaYII
 m9EKuUTX9JPDG2FTthCBrdsgWYPdJQvM+zscq09vFMQ9Fykbx5N8z/oFEUy3ACyPqW2oyfvU
 CH5WDpWBG0s5BALp1gBJPytIAd/pY/5ZdNoi0Cx3+Z7jaBFEyYJdWy1hGddpkgnMjyOfLI7B
 CFrdecTZbR5upjNSDvQ7RG85SnpYJTIin+SAUazAeA2nS6gTZzumgtdw8XmVXZwdBfF+ICof
 92UkbYcYNbzWO/GHgsNT1WnM4sa9lwCSWH8Fw1o/3bX1VVPEsnESOfxkNdu+gAF5S6+I6n3a
 ueeIlwJl5CpT5l8RpoZXEOVtXYn8zzOJ7oGZYINRV9Pf8qKGLf3Dft7zKBP832I3PQjeok7F
 yjt+9S+KgSFSHP3Pa4E7lsSdWhSlHYNdG/czhoUkSCN09C0rEK93wxACx3vtxPLjXu6RptBw
 3dRq7n+mQChEB1am0BueV1JZaBboIL0AGlSJkm23kw==
In-Reply-To: <20250613090431.127087-26-tzimmermann@suse.de>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13/06/2025 12:00, Thomas Zimmermann wrote:
> Call drm_mode_size_dumb() to compute dumb-buffer scanline pitch and
> buffer size. Align the pitch according to hardware requirements.
> 
> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Cc: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
> ---
>  drivers/gpu/drm/xlnx/zynqmp_kms.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xlnx/zynqmp_kms.c b/drivers/gpu/drm/xlnx/zynqmp_kms.c
> index b47463473472..7ea0cd4f71d3 100644
> --- a/drivers/gpu/drm/xlnx/zynqmp_kms.c
> +++ b/drivers/gpu/drm/xlnx/zynqmp_kms.c
> @@ -19,6 +19,7 @@
>  #include <drm/drm_crtc.h>
>  #include <drm/drm_device.h>
>  #include <drm/drm_drv.h>
> +#include <drm/drm_dumb_buffers.h>
>  #include <drm/drm_encoder.h>
>  #include <drm/drm_fbdev_dma.h>
>  #include <drm/drm_fourcc.h>
> @@ -363,10 +364,12 @@ static int zynqmp_dpsub_dumb_create(struct drm_file *file_priv,
>  				    struct drm_mode_create_dumb *args)
>  {
>  	struct zynqmp_dpsub *dpsub = to_zynqmp_dpsub(drm);
> -	unsigned int pitch = DIV_ROUND_UP(args->width * args->bpp, 8);
> +	int ret;
>  
>  	/* Enforce the alignment constraints of the DMA engine. */
> -	args->pitch = ALIGN(pitch, dpsub->dma_align);
> +	ret = drm_mode_size_dumb(drm, args, dpsub->dma_align, 0);
> +	if (ret)
> +		return ret;
>  
>  	return drm_gem_dma_dumb_create_internal(file_priv, drm, args);
>  }

Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>

 Tomi



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 10:50:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 10:50:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074290.1436953 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukKgY-00007I-Sv; Fri, 08 Aug 2025 10:50:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074290.1436953; Fri, 08 Aug 2025 10:50: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 1ukKgY-00007A-Pc; Fri, 08 Aug 2025 10:50:54 +0000
Received: by outflank-mailman (input) for mailman id 1074290;
 Fri, 08 Aug 2025 10:50:53 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=HESy=2U=ideasonboard.com=tomi.valkeinen@srs-se1.protection.inumbo.net>)
 id 1ukKaY-0005NR-Cs
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 10:44:42 +0000
Received: from perceval.ideasonboard.com (perceval.ideasonboard.com
 [213.167.242.64]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b08abb12-7444-11f0-a324-13f23c93f187;
 Fri, 08 Aug 2025 12:44:41 +0200 (CEST)
Received: from [192.168.88.20] (91-158-153-178.elisa-laajakaista.fi
 [91.158.153.178])
 by perceval.ideasonboard.com (Postfix) with ESMTPSA id E822C185B;
 Fri,  8 Aug 2025 12:43:50 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b08abb12-7444-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;
	s=mail; t=1754649831;
	bh=1uVulE40X4A2dJjstqLNnHit5pUAxqYUenS5oB3Qshc=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=Na62xKvLb7i4tgr4FK8HULEj00O/gbqHgF1NdnNweCcID9WZux7UGeurwH82Y58uP
	 oKRwkTfn+fpMOivDVGso/cHD2WFNzuxmtQe+4whQsY2YchPCsOzwvF14BNaQtCh8h1
	 /zAR7f7UvaWEK9x8X34b/o8W/EXw3mB5NoNN78P8=
Message-ID: <88b35dcb-70cb-4be1-9d6d-3cfb0920ecb5@ideasonboard.com>
Date: Fri, 8 Aug 2025 13:44:37 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 04/25] drm/gem-shmem: Compute dumb-buffer sizes with
 drm_mode_size_dumb()
To: Thomas Zimmermann <tzimmermann@suse.de>
Cc: dri-devel@lists.freedesktop.org, linux-mediatek@lists.infradead.org,
 freedreno@lists.freedesktop.org, linux-arm-msm@vger.kernel.org,
 imx@lists.linux.dev, linux-samsung-soc@vger.kernel.org,
 nouveau@lists.freedesktop.org, virtualization@lists.linux.dev,
 spice-devel@lists.freedesktop.org, linux-renesas-soc@vger.kernel.org,
 linux-rockchip@lists.infradead.org, linux-tegra@vger.kernel.org,
 intel-xe@lists.freedesktop.org, xen-devel@lists.xenproject.org,
 simona@ffwll.ch, airlied@gmail.com, mripard@kernel.org,
 maarten.lankhorst@linux.intel.com, geert@linux-m68k.org
References: <20250613090431.127087-1-tzimmermann@suse.de>
 <20250613090431.127087-5-tzimmermann@suse.de>
Content-Language: en-US
From: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Autocrypt: addr=tomi.valkeinen@ideasonboard.com; keydata=
 xsFNBE6ms0cBEACyizowecZqXfMZtnBniOieTuFdErHAUyxVgtmr0f5ZfIi9Z4l+uUN4Zdw2
 wCEZjx3o0Z34diXBaMRJ3rAk9yB90UJAnLtb8A97Oq64DskLF81GCYB2P1i0qrG7UjpASgCA
 Ru0lVvxsWyIwSfoYoLrazbT1wkWRs8YBkkXQFfL7Mn3ZMoGPcpfwYH9O7bV1NslbmyJzRCMO
 eYV258gjCcwYlrkyIratlHCek4GrwV8Z9NQcjD5iLzrONjfafrWPwj6yn2RlL0mQEwt1lOvn
 LnI7QRtB3zxA3yB+FLsT1hx0va6xCHpX3QO2gBsyHCyVafFMrg3c/7IIWkDLngJxFgz6DLiA
 G4ld1QK/jsYqfP2GIMH1mFdjY+iagG4DqOsjip479HCWAptpNxSOCL6z3qxCU8MCz8iNOtZk
 DYXQWVscM5qgYSn+fmMM2qN+eoWlnCGVURZZLDjg387S2E1jT/dNTOsM/IqQj+ZROUZuRcF7
 0RTtuU5q1HnbRNwy+23xeoSGuwmLQ2UsUk7Q5CnrjYfiPo3wHze8avK95JBoSd+WIRmV3uoO
 rXCoYOIRlDhg9XJTrbnQ3Ot5zOa0Y9c4IpyAlut6mDtxtKXr4+8OzjSVFww7tIwadTK3wDQv
 Bus4jxHjS6dz1g2ypT65qnHen6mUUH63lhzewqO9peAHJ0SLrQARAQABzTBUb21pIFZhbGtl
 aW5lbiA8dG9taS52YWxrZWluZW5AaWRlYXNvbmJvYXJkLmNvbT7CwY4EEwEIADgWIQTEOAw+
 ll79gQef86f6PaqMvJYe9QUCX/HruAIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRD6
 PaqMvJYe9WmFD/99NGoD5lBJhlFDHMZvO+Op8vCwnIRZdTsyrtGl72rVh9xRfcSgYPZUvBuT
 VDxE53mY9HaZyu1eGMccYRBaTLJSfCXl/g317CrMNdY0k40b9YeIX10feiRYEWoDIPQ3tMmA
 0nHDygzcnuPiPT68JYZ6tUOvAt7r6OX/litM+m2/E9mtp8xCoWOo/kYO4mOAIoMNvLB8vufi
 uBB4e/AvAjtny4ScuNV5c5q8MkfNIiOyag9QCiQ/JfoAqzXRjVb4VZG72AKaElwipiKCWEcU
 R4+Bu5Qbaxj7Cd36M/bI54OrbWWETJkVVSV1i0tghCd6HHyquTdFl7wYcz6cL1hn/6byVnD+
 sR3BLvSBHYp8WSwv0TCuf6tLiNgHAO1hWiQ1pOoXyMEsxZlgPXT+wb4dbNVunckwqFjGxRbl
 Rz7apFT/ZRwbazEzEzNyrBOfB55xdipG/2+SmFn0oMFqFOBEszXLQVslh64lI0CMJm2OYYe3
 PxHqYaztyeXsx13Bfnq9+bUynAQ4uW1P5DJ3OIRZWKmbQd/Me3Fq6TU57LsvwRgE0Le9PFQs
 dcP2071rMTpqTUteEgODJS4VDf4lXJfY91u32BJkiqM7/62Cqatcz5UWWHq5xeF03MIUTqdE
 qHWk3RJEoWHWQRzQfcx6Fn2fDAUKhAddvoopfcjAHfpAWJ+ENc7BTQROprNHARAAx0aat8GU
 hsusCLc4MIxOQwidecCTRc9Dz/7U2goUwhw2O5j9TPqLtp57VITmHILnvZf6q3QAho2QMQyE
 DDvHubrdtEoqaaSKxKkFie1uhWNNvXPhwkKLYieyL9m2JdU+b88HaDnpzdyTTR4uH7wk0bBa
 KbTSgIFDDe5lXInypewPO30TmYNkFSexnnM3n1PBCqiJXsJahE4ZQ+WnV5FbPUj8T2zXS2xk
 0LZ0+DwKmZ0ZDovvdEWRWrz3UzJ8DLHb7blPpGhmqj3ANXQXC7mb9qJ6J/VSl61GbxIO2Dwb
 xPNkHk8fwnxlUBCOyBti/uD2uSTgKHNdabhVm2dgFNVuS1y3bBHbI/qjC3J7rWE0WiaHWEqy
 UVPk8rsph4rqITsj2RiY70vEW0SKePrChvET7D8P1UPqmveBNNtSS7In+DdZ5kUqLV7rJnM9
 /4cwy+uZUt8cuCZlcA5u8IsBCNJudxEqBG10GHg1B6h1RZIz9Q9XfiBdaqa5+CjyFs8ua01c
 9HmyfkuhXG2OLjfQuK+Ygd56mV3lq0aFdwbaX16DG22c6flkkBSjyWXYepFtHz9KsBS0DaZb
 4IkLmZwEXpZcIOQjQ71fqlpiXkXSIaQ6YMEs8WjBbpP81h7QxWIfWtp+VnwNGc6nq5IQDESH
 mvQcsFS7d3eGVI6eyjCFdcAO8eMAEQEAAcLBXwQYAQIACQUCTqazRwIbDAAKCRD6PaqMvJYe
 9fA7EACS6exUedsBKmt4pT7nqXBcRsqm6YzT6DeCM8PWMTeaVGHiR4TnNFiT3otD5UpYQI7S
 suYxoTdHrrrBzdlKe5rUWpzoZkVK6p0s9OIvGzLT0lrb0HC9iNDWT3JgpYDnk4Z2mFi6tTbq
 xKMtpVFRA6FjviGDRsfkfoURZI51nf2RSAk/A8BEDDZ7lgJHskYoklSpwyrXhkp9FHGMaYII
 m9EKuUTX9JPDG2FTthCBrdsgWYPdJQvM+zscq09vFMQ9Fykbx5N8z/oFEUy3ACyPqW2oyfvU
 CH5WDpWBG0s5BALp1gBJPytIAd/pY/5ZdNoi0Cx3+Z7jaBFEyYJdWy1hGddpkgnMjyOfLI7B
 CFrdecTZbR5upjNSDvQ7RG85SnpYJTIin+SAUazAeA2nS6gTZzumgtdw8XmVXZwdBfF+ICof
 92UkbYcYNbzWO/GHgsNT1WnM4sa9lwCSWH8Fw1o/3bX1VVPEsnESOfxkNdu+gAF5S6+I6n3a
 ueeIlwJl5CpT5l8RpoZXEOVtXYn8zzOJ7oGZYINRV9Pf8qKGLf3Dft7zKBP832I3PQjeok7F
 yjt+9S+KgSFSHP3Pa4E7lsSdWhSlHYNdG/czhoUkSCN09C0rEK93wxACx3vtxPLjXu6RptBw
 3dRq7n+mQChEB1am0BueV1JZaBboIL0AGlSJkm23kw==
In-Reply-To: <20250613090431.127087-5-tzimmermann@suse.de>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13/06/2025 12:00, Thomas Zimmermann wrote:
> Call drm_mode_size_dumb() to compute dumb-buffer scanline pitch and
> buffer size. Align the pitch to a multiple of 8.
> 
> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
> ---
>  drivers/gpu/drm/drm_gem_shmem_helper.c | 16 +++++-----------
>  1 file changed, 5 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_gem_shmem_helper.c b/drivers/gpu/drm/drm_gem_shmem_helper.c
> index 8ac0b1fa5287..0fc09484dfa6 100644
> --- a/drivers/gpu/drm/drm_gem_shmem_helper.c
> +++ b/drivers/gpu/drm/drm_gem_shmem_helper.c
> @@ -18,6 +18,7 @@
>  #include <drm/drm.h>
>  #include <drm/drm_device.h>
>  #include <drm/drm_drv.h>
> +#include <drm/drm_dumb_buffers.h>
>  #include <drm/drm_gem_shmem_helper.h>
>  #include <drm/drm_prime.h>
>  #include <drm/drm_print.h>
> @@ -518,18 +519,11 @@ EXPORT_SYMBOL_GPL(drm_gem_shmem_purge_locked);
>  int drm_gem_shmem_dumb_create(struct drm_file *file, struct drm_device *dev,
>  			      struct drm_mode_create_dumb *args)
>  {
> -	u32 min_pitch = DIV_ROUND_UP(args->width * args->bpp, 8);
> +	int ret;
>  
> -	if (!args->pitch || !args->size) {
> -		args->pitch = min_pitch;
> -		args->size = PAGE_ALIGN(args->pitch * args->height);
> -	} else {
> -		/* ensure sane minimum values */
> -		if (args->pitch < min_pitch)
> -			args->pitch = min_pitch;
> -		if (args->size < args->pitch * args->height)
> -			args->size = PAGE_ALIGN(args->pitch * args->height);
> -	}
> +	ret = drm_mode_size_dumb(dev, args, SZ_8, 0);
> +	if (ret)
> +		return ret;
>  
>  	return drm_gem_shmem_create_with_handle(file, dev, args->size, &args->handle);
>  }

Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>

 Tomi



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 10:58:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 10:58:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074299.1436962 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukKnk-00011W-Is; Fri, 08 Aug 2025 10:58:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074299.1436962; Fri, 08 Aug 2025 10:58:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukKnk-00011P-G1; Fri, 08 Aug 2025 10:58:20 +0000
Received: by outflank-mailman (input) for mailman id 1074299;
 Fri, 08 Aug 2025 10:58:18 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=illN=2U=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ukKni-00011G-FM
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 10:58:18 +0000
Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com
 [2a00:1450:4864:20::52d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 968b4d5b-7446-11f0-a324-13f23c93f187;
 Fri, 08 Aug 2025 12:58:17 +0200 (CEST)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-6157ed5dc51so3082878a12.1
 for <xen-devel@lists.xenproject.org>; Fri, 08 Aug 2025 03:58: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
 a640c23a62f3a-af91a078afbsm1472476166b.4.2025.08.08.03.58.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 08 Aug 2025 03:58: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>
X-Inumbo-ID: 968b4d5b-7446-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754650697; x=1755255497; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=jl73XMyaXmupn5Rj/nJpGseDEzad6aGCPwYOw8VsIyQ=;
        b=Og1qnjlsLR0aH1n0SUSBep985p1XOQdX8e3FBL+prnxkVHeIciMnjNZpz51Syj53IP
         UNW7Qmn5sXRnbybdXL5QwpdIS7bsynwu1/JG5EsqT51EnxaO5nyXeqNAwwvXW7VB4V6l
         437ognyXYKPm/KiZkgEefXwXKQJikBrpGgvVdBTT3EBTYguX73Enl/J0YjZZ85fxdOlg
         Il8CLnOcNGXn3e0+BAIks6P4NKKpeJhm3GlOXU9fibY4Si/lZF4qS+iNc0OAtu5X26AF
         QcoHJD4mjff+6/K+uL2mYEE6xfY68r5/8TfGRaf+WaOp/vDqR6WsN0Pd+S7MoUuTTxs0
         IYUQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754650697; x=1755255497;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jl73XMyaXmupn5Rj/nJpGseDEzad6aGCPwYOw8VsIyQ=;
        b=aACcrdRzX+C7xJTitYi/VNlHDWq8t8/BJFXX3G0I5EcJjMHnIkm4o5gYr/ZG1YQs4g
         vDsx/vS+zhoejM4OA/fR5/QTAz7IJaGG0V5LVUFdinAuDLIdP80BCyERuG5xZgi8WwZx
         Ea1xVaUHABgajO3vgGmsx3eszAL7bxKQ1t/ikEyk2Lz79GbLYaPmqFEL80iGAAnsV/rh
         aIYbwx1fn4dQfhmzr9wWNfjzN6j1OD13DpEvsYMUe+ztdtet1ITnIaJLCTZynGHLCTgp
         qs8D2ART/4OJcsxN7Wo0yr4Nyi44AACRn4+PPhZOwJq7BlJeM/+YeVv9d6mGkSAYvVA5
         mHfQ==
X-Forwarded-Encrypted: i=1; AJvYcCWFTwLhuTe5f0vEZhdNY5jqVUa4wF4reGghT518Y7UdTAKquuOmTjF23+lOKF4RltbE/KoJ+hye/Vk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxQqwUxFzaRynb2gKvtz69I64pmlapbJ6BBvISTLTpRuEZupBDk
	ftJoBKdYp/vt4/gev6yR6ht1RbTXJisDP/oWixm6+bj1YAEuDFT1HpJRwNYRg+qChg==
X-Gm-Gg: ASbGnctI/6/skBRv67YavkwtwW9hoexolYhdJ5qoHoo1mcrmIGhGwtxTx21tM7LzMHT
	0sqzexC75Ild8mg16lUQxXNyHHXnbFkGznIaq4q4xBid3esiwROgOOdyaZrq3y2PqopkNiFsAzZ
	uDgjimmD7y9hsQO1JwOUgAAGGRCNlrV03nRDBZJlCzzwx0FSDDn/bPD8pzmI5GtG6SgA/a2kbJk
	xnmUOXefmEUrBWY4soynxEvikKcA/ozih4MNZ4QiJgW+uQEzwK9JXoy/3X+EqKhhmte4cds35HU
	NK2LQsnspubyCSyZDY4i4UiYavWDdbEt8hYAo4psTScAZft99/aVeFDZ0eri99G95Z7/mSYpqMv
	XOf4MvBKl7z2dR93iYseRuSvRro8OY07mh3NQw/X9pXUEa2EfwwEkwPeKfsX5U/ZJleqDrr+d7P
	JE3h6Br4g=
X-Google-Smtp-Source: AGHT+IHeQNKIXxmjbxdDqcsQGAg6pIwmxe2qjpuXyT9zwlxbNqfrkmVGJz9pbGyV3cWKGPa+DtiI2g==
X-Received: by 2002:a17:907:3c84:b0:ad5:d597:561e with SMTP id a640c23a62f3a-af9c659f0c9mr219708666b.56.1754650696596;
        Fri, 08 Aug 2025 03:58:16 -0700 (PDT)
Message-ID: <789c023e-4098-4e54-acea-abab9e24bb0d@suse.com>
Date: Fri, 8 Aug 2025 12:58:15 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86: Remove x86 prefixed names from cpuinfo
To: Kevin Lampis <kevin.lampis@cloud.com>
Cc: andrew.cooper3@citrix.com, roger.pau@citrix.com,
 xen-devel@lists.xenproject.org
References: <20250808104349.635091-1-kevin.lampis@cloud.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: <20250808104349.635091-1-kevin.lampis@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.08.2025 12:43, Kevin Lampis wrote:
> struct cpuinfo_x86
>   .x86        => .family
>   .x86_vendor => .vendor
>   .x86_model  => .model
>   .x86_mask   => .stepping
> 
> No functional change.
> 
> Signed-off-by: Kevin Lampis <kevin.lampis@cloud.com>
> ---
>  xen/arch/x86/acpi/cpu_idle.c             | 20 +++---
>  xen/arch/x86/acpi/cpufreq/acpi.c         |  2 +-
>  xen/arch/x86/acpi/cpufreq/cpufreq.c      |  4 +-
>  xen/arch/x86/acpi/cpufreq/powernow.c     |  4 +-
>  xen/arch/x86/alternative.c               |  8 +--
>  xen/arch/x86/apic.c                      |  8 +--
>  xen/arch/x86/cpu/amd.c                   | 84 ++++++++++++------------
>  xen/arch/x86/cpu/centaur.c               |  4 +-
>  xen/arch/x86/cpu/common.c                | 38 +++++------
>  xen/arch/x86/cpu/hygon.c                 |  4 +-
>  xen/arch/x86/cpu/intel.c                 | 30 ++++-----
>  xen/arch/x86/cpu/intel_cacheinfo.c       |  6 +-
>  xen/arch/x86/cpu/mcheck/amd_nonfatal.c   |  2 +-
>  xen/arch/x86/cpu/mcheck/mcaction.c       |  2 +-
>  xen/arch/x86/cpu/mcheck/mce.c            | 30 ++++-----
>  xen/arch/x86/cpu/mcheck/mce.h            |  2 +-
>  xen/arch/x86/cpu/mcheck/mce_amd.c        | 16 ++---
>  xen/arch/x86/cpu/mcheck/mce_intel.c      |  5 +-
>  xen/arch/x86/cpu/mcheck/non-fatal.c      |  2 +-
>  xen/arch/x86/cpu/mcheck/vmce.c           |  8 +--
>  xen/arch/x86/cpu/mtrr/generic.c          |  6 +-
>  xen/arch/x86/cpu/mwait-idle.c            |  4 +-
>  xen/arch/x86/cpu/vpmu.c                  |  4 +-
>  xen/arch/x86/cpu/vpmu_amd.c              |  6 +-
>  xen/arch/x86/cpu/vpmu_intel.c            |  4 +-
>  xen/arch/x86/cpuid.c                     |  2 +-
>  xen/arch/x86/dom0_build.c                |  4 +-
>  xen/arch/x86/domain.c                    | 12 ++--
>  xen/arch/x86/e820.c                      |  2 +-
>  xen/arch/x86/hvm/hvm.c                   |  2 +-
>  xen/arch/x86/hvm/svm/svm.c               |  6 +-
>  xen/arch/x86/hvm/vmx/vmcs.c              |  4 +-
>  xen/arch/x86/hvm/vmx/vmx.c               | 28 ++++----
>  xen/arch/x86/i8259.c                     |  2 +-
>  xen/arch/x86/include/asm/cpufeature.h    | 21 ++----
>  xen/arch/x86/include/asm/intel-family.h  |  4 ++
>  xen/arch/x86/io_apic.c                   |  2 +-
>  xen/arch/x86/irq.c                       |  4 +-
>  xen/arch/x86/mpparse.c                   |  8 +--
>  xen/arch/x86/msr.c                       |  4 +-
>  xen/arch/x86/nmi.c                       | 12 ++--
>  xen/arch/x86/platform_hypercall.c        |  6 +-
>  xen/arch/x86/pv/domain.c                 |  2 +-
>  xen/arch/x86/pv/emul-priv-op.c           | 30 ++++-----
>  xen/arch/x86/setup.c                     |  6 +-
>  xen/arch/x86/traps-setup.c               |  4 +-
>  xen/arch/x86/tsx.c                       |  4 +-
>  xen/drivers/passthrough/amd/iommu_init.c |  6 +-
>  48 files changed, 234 insertions(+), 244 deletions(-)

Can you perhaps get this broken up some? The bigger such a patch, the easier it
is that one unintended change slips through.

When doing the conversion wholesale, backporting considerations also come into
play: More adjustments may then need making all in one go when crossing the
4.21 / 4.20 boundary.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 08 11:05:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 11:05:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074315.1436974 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukKun-0003NI-8u; Fri, 08 Aug 2025 11:05:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074315.1436974; Fri, 08 Aug 2025 11:05: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 1ukKun-0003NB-42; Fri, 08 Aug 2025 11:05:37 +0000
Received: by outflank-mailman (input) for mailman id 1074315;
 Fri, 08 Aug 2025 11:05:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Dtzj=2U=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ukKum-0003N5-F9
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 11:05:36 +0000
Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com
 [2a00:1450:4864:20::430])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9bceb895-7447-11f0-a324-13f23c93f187;
 Fri, 08 Aug 2025 13:05:35 +0200 (CEST)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-3b78d337dd9so1212647f8f.3
 for <xen-devel@lists.xenproject.org>; Fri, 08 Aug 2025 04:05:35 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3b79c3abec8sm31176637f8f.8.2025.08.08.04.05.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 08 Aug 2025 04:05:34 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9bceb895-7447-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754651135; x=1755255935; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=gUT/hYCVu68Lcst+jSP/HdnuEfocUhU3Co36eEiQWpA=;
        b=aeGLCEZUD3+j3uS0+y98z6+xtrBvRK2T/eJ1lle5cma23+W5dOG43RK4ZCvorgXELc
         WntL80Be6s0zcJMDNbMxUE5c4P600tq/auu6VOqWhzzYZX8JrIVpAFULZmZ0/VyQvSXb
         E13mqDXE/+xRQ9ri15X0na0AyMCazAG6kLZzk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754651135; x=1755255935;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gUT/hYCVu68Lcst+jSP/HdnuEfocUhU3Co36eEiQWpA=;
        b=l9QVeW7zNUlK11EO2KbVFgZFnjKhFHNakFe2eqyjHNODSCj4Q4s20aBjjOFuEaYnt2
         zNVBaC7qBpNcvyah3EtrBJIW2syDDaEPn1UgWLOM4luBfaWl1c9mTeKYdSTC6XR+WkvC
         hPAW6U/tWVlOrgCB89X8JdL7GQC0Ie5+BHV5pnslJ6ofP/goT83UYqchsJCv05n+20T2
         pfFQZSIKYUViyuFdGh7jeJpC4RYP2lxs1X41jvwkH0IBAWOH30GBRuVqRQTv7TDocuzU
         L63HjP4b6+FvqGlPI9OD1/kH5EejSDc7TFO0RtHm86VBdC6AOofDMwFCHdiJbW6SUx1R
         kcFQ==
X-Forwarded-Encrypted: i=1; AJvYcCWaZ3O+A62isRHQXiRlwt9kOt3W9+SZxy7BR8Qmyq8ot2EcPZwiWEOAm+xVZK5WVMd1zQANyrPYZ2s=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwkZpZmk/+jgBvXBAISmPmdBaztAwGl9Q//XbZbEQyHmfVNU2Y5
	MyIw22dLddHCq/E1LiBDDm4QGUINL45IyWcSayw45cTSa9s1zJwYYiQTAtsfu4NxdlQ=
X-Gm-Gg: ASbGncugGMZIM9dsPL/h5Q16LH6ciWGrTeZ7UKOClJiU+btOq+a9on9tLYqM7At5MW7
	1gaYop/D6aSVCdke8o8VrSVbwzrzsJpFV8AlzmF5fsAjmHA+Zj9XIVHLywMrxJNn00nPiahmksl
	FvYl4PHLNRgFaGr2ysKwoihWDrDhBdVQhBJK3VZV5Wi2Do9lC0r1dVUODzfRV2pFWIvuzqV+gjB
	m/skLHsxq8xm9tmsO6EjcnW3A5d5nzir/gxIg2ffJEHSBePrYe8a32amlv5IU3LaQT5Xglwmqdk
	0dVJUci49apnOiCtUYgjg57pGxP0Gp5Qk9LD85I2rWfVQxvj7rL4n4TeUQlq4phiF9YmhJfgUY8
	xqLXRgwAwG8GO+6xZvGRQBFULiw69vbNC0YzSSQrtVUdok1kvpEyd+CKmroZ07xH8JyXH
X-Google-Smtp-Source: AGHT+IF55V4ZIK0zJtzM5+9CRL05tbVVcZLHon75wjCLTio8NtGVKURHPAV5uf2l3tmOITaWTbywhg==
X-Received: by 2002:a05:6000:2386:b0:3b7:90c7:3277 with SMTP id ffacd0b85a97d-3b900b2d94amr2003293f8f.17.1754651134847;
        Fri, 08 Aug 2025 04:05:34 -0700 (PDT)
Message-ID: <1285633d-de71-42ba-89cc-993f8ac574c7@citrix.com>
Date: Fri, 8 Aug 2025 12:05:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86: Remove x86 prefixed names from cpuinfo
To: Kevin Lampis <kevin.lampis@cloud.com>, xen-devel@lists.xenproject.org
Cc: jbeulich@suse.com, roger.pau@citrix.com
References: <20250808104349.635091-1-kevin.lampis@cloud.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: <20250808104349.635091-1-kevin.lampis@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 08/08/2025 11:43 am, Kevin Lampis wrote:
> diff --git a/xen/arch/x86/acpi/cpu_idle.c b/xen/arch/x86/acpi/cpu_idle.c
> index d60a07bfd5..95a626f49c 100644
> --- a/xen/arch/x86/acpi/cpu_idle.c
> +++ b/xen/arch/x86/acpi/cpu_idle.c
> @@ -1059,8 +1059,8 @@ static void acpi_processor_power_init_bm_check(struct acpi_processor_flags *flag
>       * is not required while entering C3 type state on
>       * P4, Core and beyond CPUs
>       */
> -    if ( c->x86_vendor == X86_VENDOR_INTEL &&
> -        (c->x86 > 0x6 || (c->x86 == 6 && c->x86_model >= 14)) )
> +    if ( c->vendor == X86_VENDOR_INTEL &&
> +        (c->family > 0x6 || (c->family == 6 && c->model >= 14)) )
>              flags->bm_control = 0;
>  }

One of the purposes of the name change was to audit every use of these
fields for safety.

This is an example which needs reworking.Â  It is technically safe with
Family 18/19, because of the way the relation works, but


> @@ -468,8 +468,8 @@ static void Intel_errata_workarounds(struct
> cpuinfo_x86 *c) } } - if (c->x86 == 6 && cpu_has_clflush && -
> (c->x86_model == 29 || c->x86_model == 46 || c->x86_model == 47)) + if
> (c->family == 6 && cpu_has_clflush && + (c->model == 29 || c->model ==
> 46 || c->model == 47)) setup_force_cpu_cap(X86_BUG_CLFLUSH_MONITOR);
> probe_c3_errata(c);

This is one which wants converting to using real CPU names.

Also, this really cannot be one giant patch.Â  It's unreviewable by shear
volume of change (and isn't a mechanical change that can be trivially
confirmed).

Perhaps start by doing a patch covering mcheck (but even then you've got
one conversion to a real CPU name I can see), and one covering vPMU.Â 
They're both not oneliners, and about the right order of magnitude for a
change like this.

~Andrew




From xen-devel-bounces@lists.xenproject.org Fri Aug 08 11:40:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 11:40:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074279.1436983 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukLSU-0001ez-SY; Fri, 08 Aug 2025 11:40:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074279.1436983; Fri, 08 Aug 2025 11:40:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukLSU-0001es-Of; Fri, 08 Aug 2025 11:40:26 +0000
Received: by outflank-mailman (input) for mailman id 1074279;
 Fri, 08 Aug 2025 10:46:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=CE/V=2U=ideasonboard.com=tomi.valkeinen+renesas@srs-se1.protection.inumbo.net>)
 id 1ukKbo-0006f9-Cn
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 10:46:00 +0000
Received: from perceval.ideasonboard.com (perceval.ideasonboard.com
 [213.167.242.64]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id de2611ae-7444-11f0-b898-0df219b8e170;
 Fri, 08 Aug 2025 12:45:58 +0200 (CEST)
Received: from [192.168.88.20] (91-158-153-178.elisa-laajakaista.fi
 [91.158.153.178])
 by perceval.ideasonboard.com (Postfix) with ESMTPSA id 6F313185B;
 Fri,  8 Aug 2025 12:45: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>
X-Inumbo-ID: de2611ae-7444-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;
	s=mail; t=1754649908;
	bh=brJMRHo/8Tl3e7xMygG9eyiFT2hDjy5O7wtChHaeNYM=;
	h=Date:Subject:To:Cc:References:From:In-Reply-To:From;
	b=bpVMEvVV/KjgNPSTx09Y1zAid5VLUpMgHxMncGlh/eIqSnOEbYo/e7pfZcCaLnvMR
	 a4WP/S0JCHnwihLwBpo0WvGkuChuDoTi3adY52UACj4F5WD116oIVmo+wa34Zq++Sp
	 qyMsD/KygsGrVig9ySGURL4Ju5+a5JMr5a6kJVSM=
Message-ID: <20be7c9d-ad67-4157-b03e-18f91534a1cd@ideasonboard.com>
Date: Fri, 8 Aug 2025 13:45:54 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 17/25] drm/renesas/rcar-du: Compute dumb-buffer sizes
 with drm_mode_size_dumb()
To: Thomas Zimmermann <tzimmermann@suse.de>
Cc: dri-devel@lists.freedesktop.org, linux-mediatek@lists.infradead.org,
 freedreno@lists.freedesktop.org, linux-arm-msm@vger.kernel.org,
 imx@lists.linux.dev, linux-samsung-soc@vger.kernel.org,
 nouveau@lists.freedesktop.org, virtualization@lists.linux.dev,
 spice-devel@lists.freedesktop.org, linux-renesas-soc@vger.kernel.org,
 linux-rockchip@lists.infradead.org, linux-tegra@vger.kernel.org,
 intel-xe@lists.freedesktop.org, xen-devel@lists.xenproject.org,
 Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
 Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>, simona@ffwll.ch,
 airlied@gmail.com, mripard@kernel.org, maarten.lankhorst@linux.intel.com,
 geert@linux-m68k.org
References: <20250613090431.127087-1-tzimmermann@suse.de>
 <20250613090431.127087-18-tzimmermann@suse.de>
Content-Language: en-US
From: Tomi Valkeinen <tomi.valkeinen+renesas@ideasonboard.com>
In-Reply-To: <20250613090431.127087-18-tzimmermann@suse.de>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13/06/2025 12:00, Thomas Zimmermann wrote:
> Call drm_mode_size_dumb() to compute dumb-buffer scanline pitch and
> buffer size. Align the pitch according to hardware requirements.
> 
> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Cc: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
> ---
>  drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c b/drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c
> index 4c8fe83dd610..dd353fb858ef 100644
> --- a/drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c
> +++ b/drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c
> @@ -11,6 +11,7 @@
>  #include <drm/drm_atomic_helper.h>
>  #include <drm/drm_crtc.h>
>  #include <drm/drm_device.h>
> +#include <drm/drm_dumb_buffers.h>
>  #include <drm/drm_framebuffer.h>
>  #include <drm/drm_gem_dma_helper.h>
>  #include <drm/drm_gem_framebuffer_helper.h>
> @@ -407,8 +408,8 @@ int rcar_du_dumb_create(struct drm_file *file, struct drm_device *dev,
>  			struct drm_mode_create_dumb *args)
>  {
>  	struct rcar_du_device *rcdu = to_rcar_du_device(dev);
> -	unsigned int min_pitch = DIV_ROUND_UP(args->width * args->bpp, 8);
>  	unsigned int align;
> +	int ret;
>  
>  	/*
>  	 * The R8A7779 DU requires a 16 pixels pitch alignment as documented,
> @@ -419,7 +420,9 @@ int rcar_du_dumb_create(struct drm_file *file, struct drm_device *dev,
>  	else
>  		align = 16 * args->bpp / 8;
>  
> -	args->pitch = roundup(min_pitch, align);
> +	ret = drm_mode_size_dumb(dev, args, align, 0);
> +	if (ret)
> +		return ret;
>  
>  	return drm_gem_dma_dumb_create_internal(file, dev, args);
>  }

Reviewed-by: Tomi Valkeinen <tomi.valkeinen+renesas@ideasonboard.com>

 Tomi



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 13:46:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 13:46:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074387.1437008 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukNQj-0002hb-GF; Fri, 08 Aug 2025 13:46:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074387.1437008; Fri, 08 Aug 2025 13:46: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 1ukNQj-0002hU-Dj; Fri, 08 Aug 2025 13:46:45 +0000
Received: by outflank-mailman (input) for mailman id 1074387;
 Fri, 08 Aug 2025 13:46:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2rj7=2U=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1ukNQi-0002hO-6L
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 13:46:44 +0000
Received: from mail-ej1-x62e.google.com (mail-ej1-x62e.google.com
 [2a00:1450:4864:20::62e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1d6911b5-745e-11f0-b898-0df219b8e170;
 Fri, 08 Aug 2025 15:46:41 +0200 (CEST)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-af93c3bac8fso312229666b.2
 for <xen-devel@lists.xenproject.org>; Fri, 08 Aug 2025 06:46:42 -0700 (PDT)
Received: from [192.168.1.17] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a1e8359sm1493378766b.89.2025.08.08.06.46.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 08 Aug 2025 06:46: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>
X-Inumbo-ID: 1d6911b5-745e-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754660801; x=1755265601; darn=lists.xenproject.org;
        h=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=9X/gHSWHoD5/52Bh3JqREg4+5ErH7JV/Pztmadne+Vo=;
        b=eQVGtWHx69NFc29s3zBk0dM/ptM59L03KnB6iyBsr4mNOnoq3dENpPxyTWxtHz4gBA
         epWjcOzCxie0OByQNdGGYJWhoGYt1h++p80sSY32ruQ90Nmj/XBav9WPL3RQnmWZaa55
         2GkFB+PkXep419HSQJzTeyeRdPIzhWGDbQ1x8gJzopUt6PsVeBkFb44TNBJQ0E7v4foZ
         7H8RKXRxm6+7GxXnW4QzKksA+IROTWPOMH0A7t+YyRQ+VKf5zE/3Gf7Vlu+fB52vopYW
         e6n0C9z9ApMSFFOa+++kY7bOOL/WKyUHuwculZza2D6T+VksatOQhQ1QmW7ZrJUgJA63
         dbKw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754660801; x=1755265601;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=9X/gHSWHoD5/52Bh3JqREg4+5ErH7JV/Pztmadne+Vo=;
        b=EVFwwRWLOQjNMMLLYacCh5MaOLKpS5AH7749BS9V0OB+shs6zBTbfKwyCKyecw7An2
         t7zWm0gG3VNP7md8cdaGHJKwnVXY7Py/psSKCH3nMIMDdU6eZtsFHjLUTWf9F/i13mLf
         5ir+kMzCMs/JHx2/OwJjYL8zIo+apLuF4Ye7sUTqlT5ntruB8DA9USA5j/uUOVacQxIK
         Fa8rwAQQZDWGou9fH2ogfbEXTZ934AVtpMbmhNKvJDKw+nuBJn52QX8IbotcAADSRdhE
         5PAHvhoZ4zjR4etZKsmTCK1Kzih7g815kNztL+w9EqtBg2bXQayGT3/JpBzwkL6i80Xe
         xJ6A==
X-Forwarded-Encrypted: i=1; AJvYcCW1cWTDqAimKaYnIg6dLvSBa7FkHVPIHmril7G9chyNIMoIcMGI5Qyoak1Zn8Uvn9oWcxPEP/8MVz0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzKi+X141JqD82e02vB4t5QwFgSIZPDDj08WFJ2oaEiD4+mzJhp
	ynUrqzNWV9cezwMq8fCKe8125EfhSiDPV4NPSbOYP5vJNgmxfAbyy/Wp
X-Gm-Gg: ASbGncuIH5vQQWuxbJ0RxftDx8H/ud+qCf66cQxL5n4xPgSyrbCEndJ9YlBHUXFoOjM
	JzDYI2EQXuxpv4ehOTc2qFPNjO/Xf6Fqr5thX/ZWTCjLRgCM4HSfC5K8XT2exw/FfmVbAWmcQRs
	CRUq2F0Q1UYmc8rZOjIGJfUpDedn4fVMM6XjhCsq8r+t2SgC0RVHhsWxEsO6zspGWjTZqAjM3ht
	7gUvERxoKBNxOz8kOzvC119nEbyo2JuYgZwtXFsZ670r4E5yUO9nRzCkw0ifpfCJIK92ccphnXU
	GCxOp8KRu1WKRZ/VjMGcdtVvfEC7a9UVtEPPogH5Kbh3rErrlBCX1uhLx1zojyKBlITsyqt6Wp4
	GCjCkt54+tG+8s7fgTNv3ReP6rwWTiB/9/GeLy4O8kYZVnsdV6BWi0IpZZU3WMDxA+x1p7Ko4
X-Google-Smtp-Source: AGHT+IG2csbz+Qw9X2IDb/H+Yt9lAGgaf/HP8bwc1mA1dQBm1Mw/3SjEqmp08n5rm7Q2w6P6Ddmt7g==
X-Received: by 2002:a17:907:a45:b0:af1:8336:6651 with SMTP id a640c23a62f3a-af9c64f7465mr294133766b.33.1754660801051;
        Fri, 08 Aug 2025 06:46:41 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------UeLToCNY0qfZGDEeATW01CXA"
Message-ID: <31c75a64-8b69-47ac-9e08-6010fa6cfb9c@gmail.com>
Date: Fri, 8 Aug 2025 15:46:39 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 11/20] xen/riscv: implement function to map memory in
 guest p2m
To: Jan Beulich <jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1753973161.git.oleksii.kurochko@gmail.com>
 <e00dcbecf8f0dbe863628dcc45526100f9ee86a3.1753973161.git.oleksii.kurochko@gmail.com>
 <e7b4b220-4da9-4a87-a4d6-179350849eaa@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <e7b4b220-4da9-4a87-a4d6-179350849eaa@suse.com>

This is a multi-part message in MIME format.
--------------UeLToCNY0qfZGDEeATW01CXA
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 8/5/25 5:20 PM, Jan Beulich wrote:
> On 31.07.2025 17:58, Oleksii Kurochko wrote:
>> Implement map_regions_p2mt() to map a region in the guest p2m with
>> a specific p2m type. The memory attributes will be derived from the
>> p2m type. This function is going to be called from dom0less common
>> code.
> s/is going to be/is/ ? Such a call exists already, after all.
>
>> --- a/xen/arch/riscv/include/asm/p2m.h
>> +++ b/xen/arch/riscv/include/asm/p2m.h
>> @@ -121,21 +121,22 @@ static inline int guest_physmap_mark_populate_on_demand(struct domain *d,
>>       return -EOPNOTSUPP;
>>   }
>>   
>> -static inline int guest_physmap_add_entry(struct domain *d,
>> -                                          gfn_t gfn, mfn_t mfn,
>> -                                          unsigned long page_order,
>> -                                          p2m_type_t t)
>> -{
>> -    BUG_ON("unimplemented");
>> -    return -EINVAL;
>> -}
>> +/*
>> + * Map a region in the guest p2m with a specific p2m type.
> What is "the guest p2m"? In your answer, please consider the possible
> (and at some point likely necessary) existence of altp2m and nestedp2m.
> In patch 04 you introduce p2m_get_hostp2m(), and I expect it's that
> what you mean here.

In the current one context it is host p2m. I can update the comment with:
"guest's hostp2m".

>
>> --- a/xen/arch/riscv/p2m.c
>> +++ b/xen/arch/riscv/p2m.c
>> @@ -9,6 +9,41 @@
>>   
>>   unsigned int __read_mostly p2m_root_order;
>>   
>> +/*
>> + * Force a synchronous P2M TLB flush.
>> + *
>> + * Must be called with the p2m lock held.
>> + */
>> +static void p2m_force_tlb_flush_sync(struct p2m_domain *p2m)
>> +{
>> +    struct domain *d = p2m->domain;
> Pointer-to-const please. Personally, given the implementation of this
> function (and also ...
>
>> +    ASSERT(p2m_is_write_locked(p2m));
>> +
>> +    sbi_remote_hfence_gvma(d->dirty_cpumask, 0, 0);
>> +
>> +    p2m->need_flush = false;
>> +}
>> +
>> +void p2m_tlb_flush_sync(struct p2m_domain *p2m)
>> +{
>> +    if ( p2m->need_flush )
>> +        p2m_force_tlb_flush_sync(p2m);
>> +}
> ... this one) I'd further ask for the function parameters to also be
> pointer-to-const, but Andrew may object to that. Andrew - it continues to
> be unclear to me under what conditions you agree with adding const, and
> under what conditions you would object to me asking for such. Please can
> you take the time to clarify this?
>
>> +/* Unlock the flush and do a P2M TLB flush if necessary */
>> +void p2m_write_unlock(struct p2m_domain *p2m)
>> +{
>> +    /*
>> +     * The final flush is done with the P2M write lock taken to avoid
>> +     * someone else modifying the P2M wbefore the TLB invalidation has
> Nit: Stray 'w'.
>
>> +     * completed.
>> +     */
>> +    p2m_tlb_flush_sync(p2m);
> Wasn't the plan to have this be conditional?

Not really, probably, I misunderstood you before.

Previously, I only had|p2m_force_tlb_flush_sync()| here, instead of
|p2m_tlb_flush_sync()|, and the latter includes a condition check on
|p2m->need_flush|.

>
>> @@ -139,3 +174,33 @@ int p2m_set_allocation(struct domain *d, unsigned long pages, bool *preempted)
>>   
>>       return 0;
>>   }
>> +
>> +static int p2m_set_range(struct p2m_domain *p2m,
>> +                         gfn_t sgfn,
>> +                         unsigned long nr,
>> +                         mfn_t smfn,
>> +                         p2m_type_t t)
>> +{
>> +    return -EOPNOTSUPP;
>> +}
>> +
>> +static int p2m_insert_mapping(struct p2m_domain *p2m, gfn_t start_gfn,
>> +                              unsigned long nr, mfn_t mfn, p2m_type_t t)
>> +{
>> +    int rc;
>> +
>> +    p2m_write_lock(p2m);
>> +    rc = p2m_set_range(p2m, start_gfn, nr, mfn, t);
>> +    p2m_write_unlock(p2m);
>> +
>> +    return rc;
>> +}
>> +
>> +int map_regions_p2mt(struct domain *d,
>> +                     gfn_t gfn,
>> +                     unsigned long nr,
>> +                     mfn_t mfn,
>> +                     p2m_type_t p2mt)
>> +{
>> +    return p2m_insert_mapping(p2m_get_hostp2m(d), gfn, nr, mfn, p2mt);
>> +}
> And eventually both helper functions will gain further callers? Otherwise
> it's a little hard to see why they would both need to be separate functions.

Good point.
Actually, I think that it is enough to have map_regions_p2mt() as it is used
for dom0less common code, and re-use it every where potentially p2m_insert_mapping()
will be needed.

~ Oleksii

--------------UeLToCNY0qfZGDEeATW01CXA
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/5/25 5:20 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:e7b4b220-4da9-4a87-a4d6-179350849eaa@suse.com">
      <pre wrap="" class="moz-quote-pre">On 31.07.2025 17:58, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">Implement map_regions_p2mt() to map a region in the guest p2m with
a specific p2m type. The memory attributes will be derived from the
p2m type. This function is going to be called from dom0less common
code.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
s/is going to be/is/ ? Such a call exists already, after all.

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/include/asm/p2m.h
+++ b/xen/arch/riscv/include/asm/p2m.h
@@ -121,21 +121,22 @@ static inline int guest_physmap_mark_populate_on_demand(struct domain *d,
     return -EOPNOTSUPP;
 }
 
-static inline int guest_physmap_add_entry(struct domain *d,
-                                          gfn_t gfn, mfn_t mfn,
-                                          unsigned long page_order,
-                                          p2m_type_t t)
-{
-    BUG_ON("unimplemented");
-    return -EINVAL;
-}
+/*
+ * Map a region in the guest p2m with a specific p2m type.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
What is "the guest p2m"? In your answer, please consider the possible
(and at some point likely necessary) existence of altp2m and nestedp2m.
In patch 04 you introduce p2m_get_hostp2m(), and I expect it's that
what you mean here.</pre>
    </blockquote>
    <pre>In the current one context it is host p2m. I can update the comment with:
"guest's hostp2m".

</pre>
    <blockquote type="cite"
      cite="mid:e7b4b220-4da9-4a87-a4d6-179350849eaa@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -9,6 +9,41 @@
 
 unsigned int __read_mostly p2m_root_order;
 
+/*
+ * Force a synchronous P2M TLB flush.
+ *
+ * Must be called with the p2m lock held.
+ */
+static void p2m_force_tlb_flush_sync(struct p2m_domain *p2m)
+{
+    struct domain *d = p2m-&gt;domain;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Pointer-to-const please. Personally, given the implementation of this
function (and also ...

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    ASSERT(p2m_is_write_locked(p2m));
+
+    sbi_remote_hfence_gvma(d-&gt;dirty_cpumask, 0, 0);
+
+    p2m-&gt;need_flush = false;
+}
+
+void p2m_tlb_flush_sync(struct p2m_domain *p2m)
+{
+    if ( p2m-&gt;need_flush )
+        p2m_force_tlb_flush_sync(p2m);
+}
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
... this one) I'd further ask for the function parameters to also be
pointer-to-const, but Andrew may object to that. Andrew - it continues to
be unclear to me under what conditions you agree with adding const, and
under what conditions you would object to me asking for such. Please can
you take the time to clarify this?

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+/* Unlock the flush and do a P2M TLB flush if necessary */
+void p2m_write_unlock(struct p2m_domain *p2m)
+{
+    /*
+     * The final flush is done with the P2M write lock taken to avoid
+     * someone else modifying the P2M wbefore the TLB invalidation has
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Nit: Stray 'w'.

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+     * completed.
+     */
+    p2m_tlb_flush_sync(p2m);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Wasn't the plan to have this be conditional?</pre>
    </blockquote>
    <pre>Not really, probably, I misunderstood you before.

Previously, I only had <code data-start="76" data-end="104">p2m_force_tlb_flush_sync()</code> here, instead of
<code data-start="122" data-end="144">p2m_tlb_flush_sync()</code>, and the latter includes a condition check on
<code data-start="191" data-end="208">p2m-&gt;need_flush</code>.

</pre>
    <blockquote type="cite"
      cite="mid:e7b4b220-4da9-4a87-a4d6-179350849eaa@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">@@ -139,3 +174,33 @@ int p2m_set_allocation(struct domain *d, unsigned long pages, bool *preempted)
 
     return 0;
 }
+
+static int p2m_set_range(struct p2m_domain *p2m,
+                         gfn_t sgfn,
+                         unsigned long nr,
+                         mfn_t smfn,
+                         p2m_type_t t)
+{
+    return -EOPNOTSUPP;
+}
+
+static int p2m_insert_mapping(struct p2m_domain *p2m, gfn_t start_gfn,
+                              unsigned long nr, mfn_t mfn, p2m_type_t t)
+{
+    int rc;
+
+    p2m_write_lock(p2m);
+    rc = p2m_set_range(p2m, start_gfn, nr, mfn, t);
+    p2m_write_unlock(p2m);
+
+    return rc;
+}
+
+int map_regions_p2mt(struct domain *d,
+                     gfn_t gfn,
+                     unsigned long nr,
+                     mfn_t mfn,
+                     p2m_type_t p2mt)
+{
+    return p2m_insert_mapping(p2m_get_hostp2m(d), gfn, nr, mfn, p2mt);
+}
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
And eventually both helper functions will gain further callers? Otherwise
it's a little hard to see why they would both need to be separate functions.</pre>
    </blockquote>
    <pre>Good point.
Actually, I think that it is enough to have map_regions_p2mt() as it is used
for dom0less common code, and re-use it every where potentially p2m_insert_mapping()
will be needed.
</pre>
    <pre>~ Oleksii
</pre>
  </body>
</html>

--------------UeLToCNY0qfZGDEeATW01CXA--


From xen-devel-bounces@lists.xenproject.org Fri Aug 08 14:34:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 14:34:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074620.1437110 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukOAQ-0003D2-6k; Fri, 08 Aug 2025 14:33:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074620.1437110; Fri, 08 Aug 2025 14:33: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 1ukOAQ-0003Ci-0R; Fri, 08 Aug 2025 14:33:58 +0000
Received: by outflank-mailman (input) for mailman id 1074620;
 Fri, 08 Aug 2025 14:33:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9AHj=2U=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1ukOAO-00039T-M4
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 14:33:56 +0000
Received: from fhigh-a8-smtp.messagingengine.com
 (fhigh-a8-smtp.messagingengine.com [103.168.172.159])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b53db71c-7464-11f0-b898-0df219b8e170;
 Fri, 08 Aug 2025 16:33:54 +0200 (CEST)
Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 6F54E140006F;
 Fri,  8 Aug 2025 10:33:53 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-01.internal (MEProxy); Fri, 08 Aug 2025 10:33:53 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 8 Aug 2025 10:33:52 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b53db71c-7464-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm3; t=1754663633; x=1754750033; bh=rzH4S8PiQY
	diFvv5Qp3o/668oqL/9FARyEfSxtejKVY=; b=QLTuakdyjuPwQnOn2z9gSn0OZZ
	dOm9h5I9hfZh4yS3OEp9q/3WXh5XlQBHClLt+FmTib2KFehCyxd7meOkkleKcosY
	N0jVEbZJAFVkvSx/cLksDah/raMruafz+wpNctY9yvZ52IeTN3Xp1smLJXN5Ihzg
	00TNSXTJDa5KzZOGJO653eWP5mUk7JUesCYYL3Aob4C/4TUk3zGSQAaOd3nAUjcc
	hf5aMkGzsJAQ70PfOq56oPhgDP9fycM+sm69htNDFwDnexfPYvf1pckWcr9WSNnL
	idJKeDKFWnsbkBwsDhMonM/6ABJgiXVAGTwToxaqCvwa7aME3rRZM3tJGiXQ==
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=1754663633; x=
	1754750033; bh=rzH4S8PiQYdiFvv5Qp3o/668oqL/9FARyEfSxtejKVY=; b=M
	RNeb3teBGXiL4wWU3/hE74OQ+yn/jGAdVbgwP6HZM+rgaKl8P2C48ayka/SabaOD
	uVLzas8+v0ufnBbyIcwMGXAJozH1hxckjfy4vyMZbos5mWiayJqKj3cOQfY0+/Zr
	I2GDIglvvPM79kymdUE+M+l7HLgO9IKl/pIcVJ0f6n3ndLhtg/dXwuw5O+Z9cNiE
	wB98X0rzA9bLqtoYzDFCpA0VL4Kc0bpFB+kzeycrd9hHJJ0/8HjyqkCsT4GxQaUw
	jPiPA5TGRUdh5SjyWNnU4a1g93YZxXdWtL/wbqcVpUwlM7+jn241Iehepa/ozwfY
	Y3EbLlFIvft5AidKc7V0Q==
X-ME-Sender: <xms:0QqWaD9GnxiqNsK8RfEnkV7kO9R6Y579zrzZ4yY4mEJ3S5czcXvvUw>
    <xme:0QqWaKSQ62Zf1HMUrjM9Xxa5Rkngedu5h7M3jwRDUthm6-OB8_DhwUp5_AmP3keZ0
    UZD8nageGJrUg>
X-ME-Received: <xmr:0QqWaNn7j95jrV5YMX9Db4sXXCf0jdwva0bJxrBcg1FOh90CulpNnPJYc1y4UCnxJLqmeXePeRvRklwXwuwq6TR8dqRE1LUL6zyPJNwgCdsCMGCT7taG>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgdduvdegtdeiucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghk
    ucforghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvh
    hishhisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefguedu
    hefgvdefheehudejheefudevueeghfekhfehleegveduteeuiedugffgffenucevlhhush
    htvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhes
    ihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeegpd
    hmohguvgepshhmthhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhs
    rdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopehmrghrmhgrrhgvkhesihhnvh
    hishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhrtghpthhtoheptggrrhguohgvsegt
    rghrughovgdrtghomhdprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvghrnhgvlh
    drohhrgh
X-ME-Proxy: <xmx:0QqWaCRn4CZD737lfR57PmrN237my-iMkvPXIMFqszQeh4bF1hwcEg>
    <xmx:0QqWaDOQ_MVvyx7lfFl5O41fEsIlMraKfkS8IEG63IoFDs7-i9K-nQ>
    <xmx:0QqWaDVLBuf7ySC1KNrD77S-29KjYiyU9ClgtkeDAES4QKT73iAC9w>
    <xmx:0QqWaCeKSGsWYF52LbcGF-yQRsx43RHPCyRucQ0PxCRBXumVAvOPGA>
    <xmx:0QqWaJ7qCNh_X-q3jUo16_9Bz7t7ZBCHv3Y2U6LX1xF8BgBstuE1x69z>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 1/3] CI: Add driver domains tests
Date: Fri,  8 Aug 2025 16:32:41 +0200
Message-ID: <0243d946ec451ddf18a620dbcaaa45eba861810a.1754663560.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.961bf2f7929562a899b182283446598d4c055149.1754663560.git-series.marmarek@invisiblethingslab.com>
References: <cover.961bf2f7929562a899b182283446598d4c055149.1754663560.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Setup a simple two domU system. One with network backend, running
xendriverdomain service, and one with frontend, trying to ping the
backend.

Contrary to other similar tests, use disk image instead of initrd, to
allow bigger rootfs without adding more RAM (for both dom0 and domU).
But keep using pxelinux as a bootloader as it's easier to setup than
installing grub on the disk. Theoretically, it could be started via direct
kernel boot in QEMU, but pxelinux is slightly closer to real-world
deployment.

Signed-off-by: Marek Marczykowski-GÃ³recki <marmarek@invisiblethingslab.com>
---
Changes in v2:
- use heredoc
- limit ping loop iterations
- use full "backend" / "frontend" in disk image names
- print domU consoles directly to /dev/console, to avoid systemd-added
  messages prefix
- terminate test on failure, don't wait for timeout
---
 automation/gitlab-ci/test.yaml                  |   8 +-
 automation/scripts/qemu-driverdomains-x86_64.sh | 130 +++++++++++++++++-
 2 files changed, 138 insertions(+)
 create mode 100755 automation/scripts/qemu-driverdomains-x86_64.sh

diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 1f0b27b2378a..5c4b2dc304b4 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -656,6 +656,14 @@ qemu-alpine-x86_64-gcc:
     - *x86-64-test-needs
     - alpine-3.18-gcc
 
+qemu-alpine-driverdomains-x86_64-gcc:
+  extends: .qemu-x86-64
+  script:
+    - ./automation/scripts/qemu-driverdomains-x86_64.sh 2>&1 | tee ${LOGFILE}
+  needs:
+    - *x86-64-test-needs
+    - alpine-3.18-gcc
+
 qemu-smoke-x86-64-gcc:
   extends: .qemu-smoke-x86-64
   script:
diff --git a/automation/scripts/qemu-driverdomains-x86_64.sh b/automation/scripts/qemu-driverdomains-x86_64.sh
new file mode 100755
index 000000000000..a8e2ceb33527
--- /dev/null
+++ b/automation/scripts/qemu-driverdomains-x86_64.sh
@@ -0,0 +1,130 @@
+#!/bin/bash
+
+set -ex -o pipefail
+
+dom0_rootfs_extra_comp=()
+dom0_rootfs_extra_uncomp=()
+
+cd binaries
+
+# DomU rootfs
+
+mkdir -p rootfs
+cd rootfs
+mkdir -p etc/local.d
+passed="ping test passed"
+failed="TEST FAILED"
+cat > etc/local.d/xen.start << EOF
+#!/bin/bash
+
+set -x
+
+if grep -q test=backend /proc/cmdline; then
+    brctl addbr xenbr0
+    ip link set xenbr0 up
+    ip addr add 192.168.0.1/24 dev xenbr0
+    bash /etc/init.d/xendriverdomain start
+    # log backend-related logs to the console
+    tail -F /var/log/xen/xldevd.log /var/log/xen/xen-hotplug.log >>/dev/console 2>/dev/null &
+else
+    ip link set eth0 up
+    ip addr add 192.168.0.2/24 dev eth0
+    timeout=6 # 6*10s
+    until ping -c 10 192.168.0.1; do
+        sleep 1
+        if [ \$timeout -le 0 ]; then
+            echo "${failed}"
+            exit 1
+        fi
+        ((timeout--))
+    done
+    echo "${passed}"
+fi
+EOF
+chmod +x etc/local.d/xen.start
+zcat ../rootfs.cpio.gz | cpio -imd
+zcat ../xen-tools.cpio.gz | cpio -imd
+mkfs.ext4 -d . ../domU-rootfs.img 1024M
+cd ..
+rm -rf rootfs
+
+# Dom0 rootfs
+mkdir -p rootfs
+cd rootfs
+zcat ../rootfs.cpio.gz | cpio -imd
+zcat ../xen-tools.cpio.gz | cpio -imd
+mkdir -p root etc/local.d
+cat > root/backend.cfg << EOF
+name="backend"
+memory=512
+vcpus=1
+kernel="/root/bzImage"
+extra="console=hvc0 root=/dev/xvda net.ifnames=0 test=backend"
+disk=[ '/root/domU-rootfs-backend.img,raw,xvda,rw' ]
+EOF
+cat > root/frontend.cfg << EOF
+name="frontend"
+memory=512
+vcpus=1
+kernel="/root/bzImage"
+extra="console=hvc0 root=/dev/xvda net.ifnames=0 test=frontend"
+disk=[ '/root/domU-rootfs-frontend.img,raw,xvda,rw' ]
+vif=[ 'bridge=xenbr0,backend=backend' ]
+EOF
+
+cat > etc/local.d/xen.start << EOF
+#!/bin/bash
+
+set -x
+
+bash /etc/init.d/xencommons start
+
+xl list
+
+tail -F /var/log/xen/console/guest-backend.log 2>/dev/null | sed -e "s/^/(backend) /" >>/dev/console &
+tail -F /var/log/xen/console/guest-frontend.log 2>/dev/null | sed -e "s/^/(frontend) /" >>/dev/console &
+xl -vvv create /root/backend.cfg
+xl -vvv create /root/frontend.cfg
+EOF
+chmod +x etc/local.d/xen.start
+
+cp ../domU-rootfs.img ./root/domU-rootfs-backend.img
+cp ../domU-rootfs.img ./root/domU-rootfs-frontend.img
+cp ../bzImage ./root/
+mkdir -p etc/default
+echo 'XENCONSOLED_TRACE=all' >> etc/default/xencommons
+mkdir -p var/log/xen/console
+mkfs.ext4 -d . ../dom0-rootfs.img 2048M
+cd ..
+rm -rf rootfs
+
+cd ..
+
+cat >> binaries/pxelinux.0 << EOF
+#!ipxe
+
+kernel xen console=com1 console_timestamps=boot
+module bzImage console=hvc0 root=/dev/sda net.ifnames=0
+boot
+EOF
+
+# Run the test
+rm -f smoke.serial
+export TEST_CMD="qemu-system-x86_64 \
+    -cpu qemu64,+svm \
+    -m 2G -smp 2 \
+    -monitor none -serial stdio \
+    -nographic \
+    -device virtio-net-pci,netdev=n0 \
+    -netdev user,id=n0,tftp=binaries,bootfile=/pxelinux.0 \
+    -drive file=binaries/dom0-rootfs.img,format=raw"
+
+export TEST_LOG="smoke.serial"
+export BOOT_MSG="Latest ChangeSet: "
+export LOG_MSG="Domain-0"
+# exit early on test failure too, check if it was success below
+export PASSED="$passed|$failed"
+
+./automation/scripts/console.exp | sed 's/\r\+$//'
+
+grep "$passed" smoke.serial
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Fri Aug 08 14:34:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 14:34:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074619.1437102 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukOAP-00039p-SC; Fri, 08 Aug 2025 14:33:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074619.1437102; Fri, 08 Aug 2025 14: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 1ukOAP-00039i-PL; Fri, 08 Aug 2025 14:33:57 +0000
Received: by outflank-mailman (input) for mailman id 1074619;
 Fri, 08 Aug 2025 14:33:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9AHj=2U=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1ukOAO-00039R-7E
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 14:33:56 +0000
Received: from fhigh-a8-smtp.messagingengine.com
 (fhigh-a8-smtp.messagingengine.com [103.168.172.159])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b4bc2978-7464-11f0-a324-13f23c93f187;
 Fri, 08 Aug 2025 16:33:54 +0200 (CEST)
Received: from phl-compute-06.internal (phl-compute-06.internal [10.202.2.46])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 337BF1400034;
 Fri,  8 Aug 2025 10:33:52 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-06.internal (MEProxy); Fri, 08 Aug 2025 10:33:52 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 8 Aug 2025 10:33: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>
X-Inumbo-ID: b4bc2978-7464-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:message-id:mime-version:reply-to:subject:subject:to:to; s=fm3;
	 t=1754663632; x=1754750032; bh=TywbdyKjTGb9zQiPw3CNvdD+jR/ex2Ns
	bXDulvj78D4=; b=CzF/1M7+66UZIBm1PBx01eKIKKwYfkwMOJ8ZgWoW4tEJFG3q
	YbrzbDVspD81Z94VhU8f8C+wEHCoGYq+NHg1XcD564ZSV5/RL3sgRp9nm1NTj1Eb
	oZmVP4XS/2MR60xSBBThHFvtRs0kcyOcO5DtJHniZ873cd07laqa/Ry7PewbW5uE
	kA5BD1hy5PbO9gRdhjAglY56lsWrTU1XswXPai3LXAwgQZCCloXPxbQwotUfwV1K
	LPQeq82+347FeedjhMIlPOHuyUUnbXIYjAhWAPUzw4BaKkNUcSsM9H93S+Qlc1Wq
	GMy61QkdurOzUdacBReX4fd+ypT2GOkhp7NmOA==
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=1754663632; x=1754750032; bh=TywbdyKjTGb9zQiPw3CNvdD+jR/e
	x2NsbXDulvj78D4=; b=GC56FbsiToye44FrO0GIb5WfMLgTCdy3s7I5sI/evtpT
	NAqbRupYFXo8iExb8gvHBy3BzP7azCQaBTJDA2Z0jB9SihASp4zjvdawxWSslz6s
	SRHPaJOWCLApGPucVpRVFuvO4CMkMhxTLDcH4P7I+ocIQcmOt2u+xXtZs+JzCeSZ
	G3OP1klC92/GKIq0Wo7R7/BAzJ+v9BMjifoEBtoZ0kSropgQu7sd/1gyQCBndLTq
	tnvHQLMOE+LUEO2YczPsGTNdkZETMUBlqpQX5VkelshZ8XqPvMJW3K1Ls+iqD5iF
	b43H1L+qU0YmRDleSLEW/EoIWCKKSukW/egwj/hRpA==
X-ME-Sender: <xms:zwqWaNdsj1bfGDAr40_gehE_So5zIK4NvXdbpe6YmifSeu4XCH9MSw>
    <xme:zwqWaLZ3V7Mv1W7dxPvLQlM68G7GNFXt0MdLvBgSWv3vP5LjFcVjR-lLOmbLZ8R3t
    hgUGmgo82HLIw>
X-ME-Received: <xmr:zwqWaIXFbUmRBLezuNAqCgt5GGnwmv42NouRveeU7jzj2IlhjOOWzdBbf7A3eut9ioDKB7GIEnxWsaE7Q2Na0sWlrCnpB3JLNEdjE9YVTLVJCZi4XEqG>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgdduvdegtdeiucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucenucfjughrpefhvfevufffkffogggtgfesthekredtre
    dtjeenucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhi
    uceomhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqne
    cuggftrfgrthhtvghrnhepjeeufefhleeikeegfedtgfeiueeghfduteejtefhfeevheff
    jefhieeggfejkeelnecuffhomhgrihhnpehgihhtlhgrsgdrtghomhenucevlhhushhtvg
    hrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopedvpdhmoh
    guvgepshhmthhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdig
    vghnphhrohhjvggtthdrohhrghdprhgtphhtthhopehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhm
X-ME-Proxy: <xmx:zwqWaFgVlTn7_mHWrCgi8LPKxTRBUXca2iqai7qiLhQb5OegYtpq2g>
    <xmx:zwqWaOURXxCgj1Jb7co6Pecn91yvR2E1RBkw-NfVQA7senGCDYIcoA>
    <xmx:zwqWaEMPP1PowLKaA3G0SWNt_mY2bq-eKC9G-Q7tZbKMoCQflMZAlA>
    <xmx:zwqWaCapJffV-7gxEauN9SWcqEJV4EBv8l793BSwvVE2r_IfGMu1vw>
    <xmx:0AqWaM6YEAm6Zkbk_DpWJr6AZOlqGT7lfspit-8_5s_FJLvrZAVYZiFb>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v2 0/3] Add driver domains test
Date: Fri,  8 Aug 2025 16:32:40 +0200
Message-ID: <cover.961bf2f7929562a899b182283446598d4c055149.1754663560.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.49.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This is intended to detect issues like recent xl devd crash in domU.

Pipeline:
https://gitlab.com/xen-project/people/marmarek/xen/-/pipelines/1974548454

I did checked that indeed it fails with the fix reverted - that's why the
second patch - Alpine version did not detected that regression.

Requires debian in test-artifacts repo - patch sent separately.

Marek Marczykowski-GÃ³recki (3):
  CI: Add driver domains tests
  CI: Add configure --enable-systemd for full build
  CI: Run driver domains test on Debian too

 automation/build/debian/12-x86_64.dockerfile    |   1 +-
 automation/gitlab-ci/test.yaml                  |  27 +++-
 automation/scripts/build                        |   3 +-
 automation/scripts/qemu-driverdomains-x86_64.sh | 144 +++++++++++++++++-
 4 files changed, 175 insertions(+)
 create mode 100755 automation/scripts/qemu-driverdomains-x86_64.sh

base-commit: dbcbbed4e9dc25faa211d359c2f04a9c70f087c9
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Fri Aug 08 14:34:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 14:34:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074622.1437133 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukOAR-0003nZ-O6; Fri, 08 Aug 2025 14:33:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074622.1437133; Fri, 08 Aug 2025 14:33: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 1ukOAR-0003nD-Jr; Fri, 08 Aug 2025 14:33:59 +0000
Received: by outflank-mailman (input) for mailman id 1074622;
 Fri, 08 Aug 2025 14:33:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9AHj=2U=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1ukOAQ-00039T-DA
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 14:33:58 +0000
Received: from fhigh-a8-smtp.messagingengine.com
 (fhigh-a8-smtp.messagingengine.com [103.168.172.159])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b6afda05-7464-11f0-b898-0df219b8e170;
 Fri, 08 Aug 2025 16:33:56 +0200 (CEST)
Received: from phl-compute-12.internal (phl-compute-12.internal [10.202.2.52])
 by mailfhigh.phl.internal (Postfix) with ESMTP id D874B1400034;
 Fri,  8 Aug 2025 10:33:55 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-12.internal (MEProxy); Fri, 08 Aug 2025 10:33:55 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 8 Aug 2025 10:33:54 -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>
X-Inumbo-ID: b6afda05-7464-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm3; t=1754663635; x=1754750035; bh=0FfikJ2T24
	3hLk5SFXlL0/Gmd9mpE0L//k8/Yat58M0=; b=Q07ZKEVnxXm3Z98IR/8fl6ZXdT
	8Y30a5qAlUuvVpMa/BogtipmkdpF2ogZmlemtMqmOHw+NV4cK7SbsZzxA4r3QBSR
	zp70SatkI93IJnJODpmCGSnRkCEYrUbRFj+oXnLmFgBFuFmL0zstx1EmEMcmq0Zf
	KaotkrSWJbQJhhoZNGDnr8E6jtB6dfv4hcb45Hv/Z/nlfTXr8z1xvkfppDxJHcSy
	8dLeVP+frF99NDlwC5ed/L13EQsIUjSwH+PuZiKjEXszyICNEJkTzD191c/ikcaj
	VZYJbxdg2K9cGhrMd9ZfY4Mohg+OVzWbIr0SLy+RpUobPxTYHbu0xzGDuL6Q==
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=1754663635; x=
	1754750035; bh=0FfikJ2T243hLk5SFXlL0/Gmd9mpE0L//k8/Yat58M0=; b=X
	oPYWGoIHbJynpoSfvWTtDpU/x4BNeS2+yK9GoNvI0ZwUTdKV+ldM9EztxVZPUdOd
	RwMvLyBWY0nBNcehK9eZR7tk1oWiJGHMWFhPmOaSuCDnwOZufKgJ5dfWoVbu7f9n
	sApBDFxKVQqN+8oL6sggOC7CaINRmIKUMdc6eJGaJpyN3bbutPdpaJPKt79LppFC
	Abtw/NHiqW8ti9hr6qWiNEtovVgh/9XZ0ZhEobVCxYGkCNtFUudhQvFXJfUwqbSS
	URVDcVVtLpRTvLrY5IcmlafbEgqy0rVKCH9WRn/esD7+aG2r432PIYzMhDjaLHMu
	qeCNN8SiNon1NVXmgmJYg==
X-ME-Sender: <xms:0wqWaEx03JtUJBxW1NIEA_OEjaEY4k3DTRNiISPH_q8ZJDh_Y_N50A>
    <xme:0wqWaC3aU_kxGpQd2cJCpuRQFN245MLTdWZ2-sR0NacS6lIbyt5sPcUxm93kuy1gb
    A5TKaSXOHVu1Q>
X-ME-Received: <xmr:0wqWaC5hVH9q_CVcBV8e53GeB0dtjw4vL9V4QlVw1ZX9D8R1TWzW-27J3XQNKR9QX_xjw5GlLq8FtNXyU6sV4BxZjOgePfpbeFrMWHoKbF0LVEH5gKIf>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgdduvdegtdeiucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghk
    ucforghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvh
    hishhisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpeelfedt
    fefgfffghfevhfehvdeileehheffueekieetfeffhfetgefggfejudfggeenucffohhmrg
    hinhepghhithhlrggsrdgtohhmnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghm
    pehmrghilhhfrhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslh
    grsgdrtghomhdpnhgspghrtghpthhtohepgedpmhhouggvpehsmhhtphhouhhtpdhrtghp
    thhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpd
    hrtghpthhtohepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdr
    tghomhdprhgtphhtthhopegtrghrughovgestggrrhguohgvrdgtohhmpdhrtghpthhtoh
    epshhsthgrsggvlhhlihhniheskhgvrhhnvghlrdhorhhg
X-ME-Proxy: <xmx:0wqWaFXq5S0-p5B0ZU8CsZFW9l0I2AyiPZOEceRlo0AUH27Gus7HBw>
    <xmx:0wqWaBByXyZbYBBh7FtvkFOc5xD-zrIhiCW7sSMarQH7IQDjWE9ALA>
    <xmx:0wqWaE4EyaX1G2bzP3nxHgL-2osA3970QeWajgYKyF0wJfUwQsDOaQ>
    <xmx:0wqWaMzPiecpGpXT1K5j2YurLhio4NibhOSDgLM1zwYO7gcjxtEeTA>
    <xmx:0wqWaEvipflItB7ApE-b5NazmEVCSdtsBeOrMSUR1fE3IyvuYR4Gnh13>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 3/3] CI: Run driver domains test on Debian too
Date: Fri,  8 Aug 2025 16:32:43 +0200
Message-ID: <3f4e22c2424e8b534fe743aad1e1ee4934f9444c.1754663560.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.961bf2f7929562a899b182283446598d4c055149.1754663560.git-series.marmarek@invisiblethingslab.com>
References: <cover.961bf2f7929562a899b182283446598d4c055149.1754663560.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The recent failure affected only glibc-based systems, so do the test on
Debian too.

Signed-off-by: Marek Marczykowski-GÃ³recki <marmarek@invisiblethingslab.com>
---
Changes in v2:
- use systemd in Debian

I once got the following timeout:

    (backend) ==> /var/log/xen/xldevd.log <==
    (backend) libxl: error: libxl_aoutils.c:539:async_exec_timeout: killing execution of /etc/xen/scripts/vif-bridge online because of timeout

https://gitlab.com/xen-project/people/marmarek/xen/-/jobs/10961394681
(docker-bobcat runner)

Could be related to having systemd in domU (and being on QEMU TCG, not
even KVM). I never hit this case on Alpine nor Debian with OpenRC. If
that will repeat, may need some adjustments - more CPUs in QEMU? limit
to more powerful runners? setup KVM on the runners?
---
 automation/gitlab-ci/test.yaml                  | 19 ++++++++++++++++++-
 automation/scripts/qemu-driverdomains-x86_64.sh | 18 +++++++++++++++--
 2 files changed, 35 insertions(+), 2 deletions(-)

diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 5c4b2dc304b4..a5ae03b0eee9 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -30,6 +30,17 @@
     job: microcode-x86
     ref: master
 
+.debian-x86-64-test-needs: &debian-x86-64-test-needs
+  - project: xen-project/hardware/test-artifacts
+    job: linux-6.6.56-x86_64
+    ref: master
+  - project: xen-project/hardware/test-artifacts
+    job: debian-12-x86_64-rootfs
+    ref: master
+  - project: xen-project/hardware/test-artifacts
+    job: microcode-x86
+    ref: master
+
 .qemu-arm64:
   extends: .test-jobs-common
   variables:
@@ -664,6 +675,14 @@ qemu-alpine-driverdomains-x86_64-gcc:
     - *x86-64-test-needs
     - alpine-3.18-gcc
 
+qemu-debian-12-driverdomains-x86_64-gcc:
+  extends: .qemu-x86-64
+  script:
+    - ./automation/scripts/qemu-driverdomains-x86_64.sh 2>&1 | tee ${LOGFILE}
+  needs:
+    - *debian-x86-64-test-needs
+    - debian-12-x86_64-gcc-debug
+
 qemu-smoke-x86-64-gcc:
   extends: .qemu-smoke-x86-64
   script:
diff --git a/automation/scripts/qemu-driverdomains-x86_64.sh b/automation/scripts/qemu-driverdomains-x86_64.sh
index a8e2ceb33527..e5765ba5dbd6 100755
--- a/automation/scripts/qemu-driverdomains-x86_64.sh
+++ b/automation/scripts/qemu-driverdomains-x86_64.sh
@@ -23,7 +23,11 @@ if grep -q test=backend /proc/cmdline; then
     brctl addbr xenbr0
     ip link set xenbr0 up
     ip addr add 192.168.0.1/24 dev xenbr0
-    bash /etc/init.d/xendriverdomain start
+    if [ -d /run/systemd ]; then
+        systemctl start xendriverdomain
+    else
+        bash /etc/init.d/xendriverdomain start
+    fi
     # log backend-related logs to the console
     tail -F /var/log/xen/xldevd.log /var/log/xen/xen-hotplug.log >>/dev/console 2>/dev/null &
 else
@@ -77,7 +81,11 @@ cat > etc/local.d/xen.start << EOF
 
 set -x
 
-bash /etc/init.d/xencommons start
+if [ -d /run/systemd ]; then
+    systemctl start xen-init-dom0.service
+else
+    bash /etc/init.d/xencommons start
+fi
 
 xl list
 
@@ -94,6 +102,12 @@ cp ../bzImage ./root/
 mkdir -p etc/default
 echo 'XENCONSOLED_TRACE=all' >> etc/default/xencommons
 mkdir -p var/log/xen/console
+if [ -e etc/systemd/system.conf ]; then
+    chroot . systemctl enable proc-xen.mount \
+        xenstored.service \
+        xenconsoled.service \
+        xen-init-dom0.service
+fi
 mkfs.ext4 -d . ../dom0-rootfs.img 2048M
 cd ..
 rm -rf rootfs
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Fri Aug 08 14:34:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 14:34:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074621.1437117 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukOAQ-0003M5-Js; Fri, 08 Aug 2025 14:33:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074621.1437117; Fri, 08 Aug 2025 14:33: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 1ukOAQ-0003KB-CW; Fri, 08 Aug 2025 14:33:58 +0000
Received: by outflank-mailman (input) for mailman id 1074621;
 Fri, 08 Aug 2025 14:33:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9AHj=2U=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1ukOAO-00039R-SN
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 14:33:56 +0000
Received: from fout-a8-smtp.messagingengine.com
 (fout-a8-smtp.messagingengine.com [103.168.172.151])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b5e94a86-7464-11f0-a324-13f23c93f187;
 Fri, 08 Aug 2025 16:33:55 +0200 (CEST)
Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41])
 by mailfout.phl.internal (Postfix) with ESMTP id 8C848EC010F;
 Fri,  8 Aug 2025 10:33:54 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-01.internal (MEProxy); Fri, 08 Aug 2025 10:33:54 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 8 Aug 2025 10:33: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>
X-Inumbo-ID: b5e94a86-7464-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm3; t=1754663634; x=1754750034; bh=XYEM16PFEC
	+C07aNCwHNTryayJQ8IVoh25l/VJaDrnI=; b=AAKUwHAzcwi3Evi2oQse0eEMLv
	jGvcAxYOqwLeq47mHYUh0/4azDf1+u8TOK6Wgsb3HGhwZhN40qSyXr4ynmyTj9y5
	puu4HoH75rQ0u1tw1IFuSEmqj0ow+8hh7MSc/IAFvf/88ENkPLwglSqaA/Bkof/1
	+2alFGnxVdPxXHbRG2jt03Syvtdhf7nW6V1NKuvUr+CwE/AR4ttJitComTXHWcIv
	rClGZ6/2k8BuUX03OTWbfmwRHKNneUKDGuQm4Pb2cJyjvCybbPzvABGP7+L+6Pe/
	OdM589AGGli6o///I8GxBHmP8ajln6wYhNckw21OpCJaCqMgiEK98NO1lhyg==
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=1754663634; x=
	1754750034; bh=XYEM16PFEC+C07aNCwHNTryayJQ8IVoh25l/VJaDrnI=; b=b
	AhjKWTTYwlP61LretcNs6b4KC6T54iAAqaGaPcFgbQZHQ7BgxgsAgYtSjtEzzx8G
	khvmTVTkBBrKgryMRRKq43Zqeb7SxWdf3i2MxderjDQcLWmdHS13vd5CZ1nKIcXw
	DFqy/KSzg+gtbPPBmglazFIeHejssOlA7elfQJ8tWlrwuYI1FAHa0C6hvlP+llDo
	EbjZsTsYSZ3dg6/Kcpb9yZZGT2yn7DAY8Gi7unEYINVl+byzpZYRMBpX+TcS7H/4
	b1zqtXOMGJMklLmXQLcTef/R0X8lU3cMhJ4nN1qGmLUb9ai08RqDzGPXbdbQ/rZz
	GjDPNafosO5gYnUJWog/Q==
X-ME-Sender: <xms:0gqWaLdxl_KVF32lP4laybwSABZJNnWlbjmwJb5Qx7SeiBcIRuddvw>
    <xme:0gqWaLziQ0-IWKh8C4qe1C82ZjBw-MaqR7t7VpRAkoFPmTxCbXvqIIoF-DOuWqL4D
    FetpzlxoBXhVg>
X-ME-Received: <xmr:0gqWaBGADKQb5EQu6HYCoWb8HvRLjMJN6qY0ekl4EKlJPDmIlKu12iJea4IVOeSu4FaNiQ9rbhKUxoVJOYmgPgqI5LycxACLqmCy-0WUAevuojvoKcQ2>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgdduvdegtdeiucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghk
    ucforghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvh
    hishhisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpefguedu
    hefgvdefheehudejheefudevueeghfekhfehleegveduteeuiedugffgffenucevlhhush
    htvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhes
    ihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeegpd
    hmohguvgepshhmthhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhs
    rdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopehmrghrmhgrrhgvkhesihhnvh
    hishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhrtghpthhtoheptggrrhguohgvsegt
    rghrughovgdrtghomhdprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvghrnhgvlh
    drohhrgh
X-ME-Proxy: <xmx:0gqWaPwCT48h-2jDqcc1diqG4rGjd5r56eC4vwLvvgxv2QsBlso59A>
    <xmx:0gqWaCv7OJhbsuED2U1Yh4RQeCwpwuaxN_Ioh_TDa4lLOXfUs8zEew>
    <xmx:0gqWaM2mel_ANFFM15I0TfpB3TkvrEHlXgkHUzmgfuQeHSuG-w1zwA>
    <xmx:0gqWaN8ZPn9JBOzHCQ580ivw0EQER3HiiQFTNjLwGCPxnrm0YL-xeQ>
    <xmx:0gqWaBZFkWZPxsMilqqiWTos4CCCdjSGxMrdqBvwXiFYmFT5mB5WwBv5>
Feedback-ID: i1568416f:Fastmail
From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 2/3] CI: Add configure --enable-systemd for full build
Date: Fri,  8 Aug 2025 16:32:42 +0200
Message-ID: <526d26a85bd1f164dd8a421dfcc1e765c3ff5590.1754663560.git-series.marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <cover.961bf2f7929562a899b182283446598d4c055149.1754663560.git-series.marmarek@invisiblethingslab.com>
References: <cover.961bf2f7929562a899b182283446598d4c055149.1754663560.git-series.marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This doesn't exclude sysvinit scripts, but allows testing systemd too.

Signed-off-by: Marek Marczykowski-GÃ³recki <marmarek@invisiblethingslab.com>
--
New in v2.

Requires containers rebuild
---
 automation/build/debian/12-x86_64.dockerfile | 1 +
 automation/scripts/build                     | 3 +++
 2 files changed, 4 insertions(+)

diff --git a/automation/build/debian/12-x86_64.dockerfile b/automation/build/debian/12-x86_64.dockerfile
index e26a19079e38..3a53d92ddf6d 100644
--- a/automation/build/debian/12-x86_64.dockerfile
+++ b/automation/build/debian/12-x86_64.dockerfile
@@ -24,6 +24,7 @@ RUN <<EOF
         git-core
         pkg-config
         wget
+        systemd
         # libxenguest dombuilder
         libbz2-dev
         liblzma-dev
diff --git a/automation/scripts/build b/automation/scripts/build
index 0e7494ff6d87..4ad42889c78c 100755
--- a/automation/scripts/build
+++ b/automation/scripts/build
@@ -69,6 +69,9 @@ else
     # Full build.  Figure out our ./configure options
     cfgargs=("--prefix=/usr")
     cfgargs+=("--enable-docs")
+    if pkg-config systemd; then
+        cfgargs+=("--enable-systemd")
+    fi
 
     # booleans for which compiler is in use
     cc_is_gcc="$($cc --version | grep -q gcc && echo "y" || :)"
-- 
git-series 0.9.1


From xen-devel-bounces@lists.xenproject.org Fri Aug 08 14:56:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 14:56:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074667.1437193 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukOVw-0000zb-1G; Fri, 08 Aug 2025 14:56:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074667.1437193; Fri, 08 Aug 2025 14:56: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 1ukOVv-0000zO-RX; Fri, 08 Aug 2025 14:56:11 +0000
Received: by outflank-mailman (input) for mailman id 1074667;
 Fri, 08 Aug 2025 14:56:10 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1ukOVu-0000Vw-2P
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 14:56:10 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1ukOVt-007zrZ-2w;
 Fri, 08 Aug 2025 14:56:09 +0000
Received: from [2a01:e0a:1da:8420:b77:bd5:6e45:7633] (helo=l14..)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1ukOVt-009BYT-27;
 Fri, 08 Aug 2025 14:56: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:
	References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From;
	bh=vRMIu2sOc8ho9gldf/0/Ow6xK9iiXJMrSVqeHIXyoNY=; b=t4yE+O72N18PnGBjxjBJtEwsPG
	AJwQ4blV8QeBEnXfj/CRBe6ulEqOU7avsptKBYrpUqqwDxWoeUG2aRL52pVYjQbqZus/ABQHfha1B
	le4fknbkC8BPUG/OLy3CpFM2LykUbYxJM2CRzn1jVSOHCIrOhsSDXYZ2EhvRypjnSSqI=;
From: Anthony PERARD <anthony@xenproject.org>
To: xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [XEN PATCH 05/11] libxl: Convert libxl__json_parse() to use json-c
Date: Fri,  8 Aug 2025 16:55:56 +0200
Message-Id: <20250808145602.41716-6-anthony@xenproject.org>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250808145602.41716-1-anthony@xenproject.org>
References: <20250808145602.41716-1-anthony@xenproject.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Anthony PERARD <anthony.perard@vates.tech>

This reuse the "json_callback_*" implemented for the yajl parser as
they don't really need to be changed. It's just awkward to have to
cast between `unsigned char` and `char.`

Replace few strncpy() by memcpy() to let the compiler know we want to
copy the string without the terminating nul, as we are adding it just
after.

Also, it should be possible to keep using YAJL parser when json-c
library isn't available.

Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>
---
 tools/include/libxl_json.h    |   4 ++
 tools/libs/light/libxl_json.c | 120 ++++++++++++++++++++++++++++++++--
 2 files changed, 120 insertions(+), 4 deletions(-)

diff --git a/tools/include/libxl_json.h b/tools/include/libxl_json.h
index 3f97267eae..f0b4871e0e 100644
--- a/tools/include/libxl_json.h
+++ b/tools/include/libxl_json.h
@@ -42,6 +42,7 @@ yajl_gen_status libxl_ms_vm_genid_gen_json(yajl_gen hand, libxl_ms_vm_genid *p);
 #  define HAVE_YAJL_V2 1
 #endif
 
+#ifdef HAVE_LIBYAJL
 #ifdef HAVE_YAJL_V2
 
 typedef size_t libxl_yajl_length;
@@ -89,5 +90,8 @@ static inline yajl_gen libxl_yajl_gen_alloc(const yajl_alloc_funcs *allocFuncs)
 }
 
 #endif /* !HAVE_YAJL_V2 */
+#else
+typedef size_t libxl_yajl_length;
+#endif /* !HAVE_LIBYAJL */
 
 #endif /* LIBXL_JSON_H */
diff --git a/tools/libs/light/libxl_json.c b/tools/libs/light/libxl_json.c
index 9b8ef2cab9..44ee6e213f 100644
--- a/tools/libs/light/libxl_json.c
+++ b/tools/libs/light/libxl_json.c
@@ -16,7 +16,25 @@
 
 #include <math.h>
 
+#ifdef HAVE_LIBJSONC
+#include <json-c/json.h>
+#define USE_LIBJSONC_PARSER
+#endif
+
+#ifdef HAVE_LIBYAJL
+#  ifndef USE_LIBJSONC_PARSER
+#    define USE_LIBYAJL_PARSER
+#  endif
+#endif
+
+
+#ifdef USE_LIBJSONC_PARSER
+#include <json-c/json_visit.h>
+#endif
+
+#ifdef USE_LIBYAJL_PARSER
 #include <yajl/yajl_parse.h>
+#endif
 #include <yajl/yajl_gen.h>
 
 #include "libxl_internal.h"
@@ -25,7 +43,9 @@
 
 typedef struct libxl__yajl_ctx {
     libxl__gc *gc;
+#ifdef USE_LIBYAJL_PARSER
     yajl_handle hand;
+#endif
     libxl__json_object *head;
     libxl__json_object *current;
 #ifdef DEBUG_ANSWER
@@ -33,7 +53,7 @@ typedef struct libxl__yajl_ctx {
 #endif
 } libxl__yajl_ctx;
 
-#ifdef DEBUG_ANSWER
+#if defined(DEBUG_ANSWER) && defined(USE_LIBYAJL_PARSER)
 #if YAJL_VERSION < 20000
 #  define DEBUG_GEN_ALLOC(ctx)                  \
     if ((ctx)->g == NULL) {                     \
@@ -759,7 +779,7 @@ static int json_callback_number(void *opaque, const char *s, libxl_yajl_length l
     obj = libxl__json_object_alloc(ctx->gc, JSON_NUMBER);
 
     t = libxl__zalloc(ctx->gc, len + 1);
-    strncpy(t, s, len);
+    memcpy(t, s, len);
     t[len] = 0;
 
     obj->u.string = t;
@@ -806,7 +826,7 @@ static int json_callback_map_key(void *opaque, const unsigned char *str,
 
     DEBUG_GEN_STRING(ctx, str, len);
 
-    strncpy(t, (const char *) str, len);
+    memcpy(t, (const char *) str, len);
     t[len] = 0;
 
     if (libxl__json_object_is_map(obj)) {
@@ -890,6 +910,7 @@ static int json_callback_end_array(void *opaque)
     return 1;
 }
 
+#ifdef USE_LIBYAJL_PARSER
 static yajl_callbacks callbacks = {
     json_callback_null,
     json_callback_boolean,
@@ -903,28 +924,111 @@ static yajl_callbacks callbacks = {
     json_callback_start_array,
     json_callback_end_array
 };
+#endif
 
 static void yajl_ctx_free(libxl__yajl_ctx *yajl_ctx)
 {
+#ifdef USE_LIBYAJL_PARSER
     if (yajl_ctx->hand) {
         yajl_free(yajl_ctx->hand);
         yajl_ctx->hand = NULL;
     }
+#endif
     DEBUG_GEN_FREE(yajl_ctx);
 }
 
+#ifdef USE_LIBJSONC_PARSER
+static int jso_visiter(json_object *jso,
+                       int flags,
+                       json_object *parent_jso,
+                       const char *jso_key,
+                       size_t *jso_index,
+                       void *userarg)
+{
+    enum json_type type;
+    int r;
+
+    if (jso_key && flags != JSON_C_VISIT_SECOND) {
+        json_callback_map_key(userarg, (const unsigned char*)jso_key, strlen(jso_key));
+    }
+    type = json_object_get_type(jso);
+    switch (type) {
+    case json_type_null:
+        r = json_callback_null(userarg);
+        break;
+    case json_type_boolean:
+        r = json_callback_boolean(userarg, json_object_get_boolean(jso));
+        break;
+    case json_type_int:
+    case json_type_double: {
+        // it might be better to use on of
+        // json_object_get_{int,int64,uint64,double} instead.
+        // but would need to replace json_callback_number().
+        const char *s = json_object_get_string(jso);
+        r = json_callback_number(userarg, s, strlen(s));
+        break;
+    }
+    case json_type_object:
+        if (flags != JSON_C_VISIT_SECOND) {
+            r = json_callback_start_map(userarg);
+        } else {
+            r = json_callback_end_map(userarg);
+        }
+        break;
+    case json_type_array:
+        if (flags != JSON_C_VISIT_SECOND) {
+            r = json_callback_start_array(userarg);
+        } else {
+            r = json_callback_end_array(userarg);
+        }
+        break;
+    case json_type_string: {
+        const char *s = json_object_get_string(jso);
+        const int len = json_object_get_string_len(jso);
+        r = json_callback_string(userarg, (const unsigned char*)s, len);
+        break;
+    }
+    default:
+        /* error */
+        r = 0;
+    }
+    if (r == 0)
+        return JSON_C_VISIT_RETURN_ERROR;
+    return JSON_C_VISIT_RETURN_CONTINUE;
+}
+#endif
+
 libxl__json_object *libxl__json_parse(libxl__gc *gc, const char *s)
 {
+#ifdef USE_LIBYAJL_PARSER
     yajl_status status;
+    unsigned char *str = NULL;
+#endif
     libxl__yajl_ctx yajl_ctx;
     libxl__json_object *o = NULL;
-    unsigned char *str = NULL;
+#ifdef USE_LIBJSONC_PARSER
+    json_object *jso;
+    enum json_tokener_error error;
+
+    jso = json_tokener_parse_verbose(s, &error);
+    if (!jso) {
+        LOG(ERROR, "json-c parse error: %s", json_tokener_error_desc(error));
+        goto out;
+    }
+#endif
 
     memset(&yajl_ctx, 0, sizeof (yajl_ctx));
     yajl_ctx.gc = gc;
 
     DEBUG_GEN_ALLOC(&yajl_ctx);
 
+#ifdef USE_LIBJSONC_PARSER
+    int r = json_c_visit(jso, 0, jso_visiter, &yajl_ctx);
+    if (r < 0) {
+        LOG(ERROR, "json_c_visit failed");
+        goto out;
+    }
+#elif defined(USE_LIBYAJL_PARSER)
     if (yajl_ctx.hand == NULL) {
         yajl_ctx.hand = libxl__yajl_alloc(&callbacks, NULL, &yajl_ctx);
     }
@@ -935,6 +1039,7 @@ libxl__json_object *libxl__json_parse(libxl__gc *gc, const char *s)
     status = yajl_complete_parse(yajl_ctx.hand);
     if (status != yajl_status_ok)
         goto out;
+#endif
 
     o = yajl_ctx.head;
 
@@ -943,13 +1048,20 @@ libxl__json_object *libxl__json_parse(libxl__gc *gc, const char *s)
     yajl_ctx.head = NULL;
 
     yajl_ctx_free(&yajl_ctx);
+#ifdef USE_LIBJSONC_PARSER
+    json_object_put(jso);
+#endif
     return o;
 
 out:
+#ifdef USE_LIBJSONC_PARSER
+    json_object_put(jso);
+#elif defined(USE_LIBYAJL_PARSER)
     str = yajl_get_error(yajl_ctx.hand, 1, (const unsigned char*)s, strlen(s));
 
     LIBXL__LOG(libxl__gc_owner(gc), LIBXL__LOG_ERROR, "yajl error: %s", str);
     yajl_free_error(yajl_ctx.hand, str);
+#endif
     yajl_ctx_free(&yajl_ctx);
     return NULL;
 }
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 14:56:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 14:56:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074662.1437142 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukOVs-0008JE-GV; Fri, 08 Aug 2025 14:56:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074662.1437142; Fri, 08 Aug 2025 14:56:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukOVs-0008J7-Dh; Fri, 08 Aug 2025 14:56:08 +0000
Received: by outflank-mailman (input) for mailman id 1074662;
 Fri, 08 Aug 2025 14:56:06 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1ukOVq-0008IZ-TY
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 14:56:06 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1ukOVq-007zr5-1s;
 Fri, 08 Aug 2025 14:56:06 +0000
Received: from [2a01:e0a:1da:8420:b77:bd5:6e45:7633] (helo=l14..)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1ukOVq-009BYT-0y;
 Fri, 08 Aug 2025 14: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:
	References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From;
	bh=raD2DxVICJDfaNLubZN80EJ1w54pDYHTSpJpYmDjXXs=; b=Vul31LkpIc2hYvJ13DGCLv6uKG
	Ztrg7XC5+LRyqnCPjLrwyrxlQhGLmLNImC4S0fwhtzWuxKdS7Dh0/CgSM1Mn5GaU/QnP9Ja5zIGNw
	JcyrNYKrTEukecn8VRSqC515AgwQ5R5IHRz9hLDNlQpWv2WFTc0oGhkqlSL/SUxL4O1Q=;
From: Anthony PERARD <anthony@xenproject.org>
To: xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>
Subject: [XEN PATCH 01/11] xl: move printf_info prototype to an header
Date: Fri,  8 Aug 2025 16:55:52 +0200
Message-Id: <20250808145602.41716-2-anthony@xenproject.org>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250808145602.41716-1-anthony@xenproject.org>
References: <20250808145602.41716-1-anthony@xenproject.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Anthony PERARD <anthony.perard@vates.tech>

In a single place.

Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>
---
 tools/xl/xl.h      | 3 +++
 tools/xl/xl_info.c | 3 ---
 tools/xl/xl_misc.c | 3 ---
 3 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/tools/xl/xl.h b/tools/xl/xl.h
index 45745f0dbb..9000df00de 100644
--- a/tools/xl/xl.h
+++ b/tools/xl/xl.h
@@ -310,6 +310,9 @@ extern void printf_info_sexp(int domid, libxl_domain_config *d_config, FILE *fh)
 extern void apply_global_affinity_masks(libxl_domain_type type,
                                         libxl_bitmap *vcpu_affinity_array,
                                         unsigned int size);
+void printf_info(enum output_format output_format,
+                 int domid,
+                 libxl_domain_config *d_config, FILE *fh);
 
 #define XL_GLOBAL_CONFIG XEN_CONFIG_DIR "/xl.conf"
 #define XL_LOCK_FILE XEN_LOCK_DIR "/xl"
diff --git a/tools/xl/xl_info.c b/tools/xl/xl_info.c
index eb019e3ee9..3fbc0698b7 100644
--- a/tools/xl/xl_info.c
+++ b/tools/xl/xl_info.c
@@ -96,9 +96,6 @@ static yajl_gen_status printf_info_one_json(yajl_gen hand, int domid,
     return s;
 }
 
-void printf_info(enum output_format output_format,
-                 int domid,
-                 libxl_domain_config *d_config, FILE *fh);
 void printf_info(enum output_format output_format,
                  int domid,
                  libxl_domain_config *d_config, FILE *fh)
diff --git a/tools/xl/xl_misc.c b/tools/xl/xl_misc.c
index 08f0fb6dc9..f0167e1603 100644
--- a/tools/xl/xl_misc.c
+++ b/tools/xl/xl_misc.c
@@ -256,9 +256,6 @@ int main_dump_core(int argc, char **argv)
     return EXIT_SUCCESS;
 }
 
-extern void printf_info(enum output_format output_format,
-                        int domid,
-                        libxl_domain_config *d_config, FILE *fh);
 int main_config_update(int argc, char **argv)
 {
     uint32_t domid;
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 14:56:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 14:56:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074663.1437148 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukOVs-0008LA-Qb; Fri, 08 Aug 2025 14:56:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074663.1437148; Fri, 08 Aug 2025 14:56:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukOVs-0008Ka-K2; Fri, 08 Aug 2025 14:56:08 +0000
Received: by outflank-mailman (input) for mailman id 1074663;
 Fri, 08 Aug 2025 14:56:07 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1ukOVr-0008Ie-06
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 14:56:07 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1ukOVp-007zr1-2z;
 Fri, 08 Aug 2025 14:56:05 +0000
Received: from [2a01:e0a:1da:8420:b77:bd5:6e45:7633] (helo=l14..)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1ukOVp-009BYT-1q;
 Fri, 08 Aug 2025 14:56: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:
	Message-Id:Date:Subject:Cc:To:From;
	bh=ga3rdHXbHTe5bxe1ccYqmMj+8JODCgO+SO4MQwmxz10=; b=JEikGWsB49R4sHXaTIijAQo2CP
	6ybyObkKzRJftWe+lrEluNyG9/tPcu+t/PYRD4k2zc6Vs29xNcvtdaz2jb6ciEnTdJ/DviExpBfb/
	DGuc0ealNCW6veQes9VpkSinoGOfRpeHHZpNPXfd87qEQUaBKjp+zVYNizGSC9joHDDo=;
From: Anthony PERARD <anthony@xenproject.org>
To: xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Community Manager <community.manager@xenproject.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [XEN PATCH 00/11] Allow to build libxl and other tools with json-c instead of yajl
Date: Fri,  8 Aug 2025 16:55:51 +0200
Message-Id: <20250808145602.41716-1-anthony@xenproject.org>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Anthony PERARD <anthony.perard@vates.tech>

Patch series available in this git branch:
https://xenbits.xenproject.org/git-http/people/aperard/xen-unstable.git br.libxl-libjsonc-v1

Hi,

The library YAJL has been unmaintained for several years, without an obvious
fork to pick.

On the other and the library json-c is been maintained and use by several other
project, it's probably already installed on your machine. So this patch series
intend to allow to build the Xen toolstack again json-c, and forgo yajl.

Just in case, YAJL is can still be used.

There's bit of libxl API that exposes YAJL, mainly so it can be used by `xl` to
call libxl_domain_config_gen_json(). It was exposed via the "libxl_json.h"
headers. This functions and others won't be available when libxl is build
against json-c.

Cheers,

Anthony PERARD (11):
  xl: move printf_info prototype to an header
  libxl: Remove duplicate libxl_domain_config_gen_json prototype
  libxl: remove duplicated libxl__yajl_gen_asciiz() prototype
  tools/configure: Introduce deps on json-c lib for libxl
  libxl: Convert libxl__json_parse() to use json-c
  libxl: convert libxl__json_object_to_yajl_gen to
    libxl__json_object_to_libjsonc_object
  libxl: libxl__object_to_json() to json-c
  libxl: convert libxl__json_object_to_json() to json_object
  tools/libxenstat: Use json-c when available
  configure: Use json-c by default, fallback to yajl
  Update CHANGELOG and README with dependency on json-c

 CHANGELOG.md                              |   2 +
 README                                    |   2 +-
 config/Tools.mk.in                        |   2 +
 tools/config.h.in                         |   3 +
 tools/configure                           | 136 +++++-
 tools/configure.ac                        |  10 +-
 tools/include/libxl_json.h                |  30 +-
 tools/libs/light/Makefile                 |   7 +-
 tools/libs/light/gentypes.py              | 160 ++++++-
 tools/libs/light/idl.py                   |   7 +-
 tools/libs/light/libxl_cpuid.c            | 119 +++++
 tools/libs/light/libxl_internal.h         |  25 +-
 tools/libs/light/libxl_json.c             | 557 +++++++++++++++++++++-
 tools/libs/light/libxl_qmp.c              |  53 ++
 tools/libs/light/libxl_types.idl          |   7 +-
 tools/libs/light/libxl_types_internal.idl |   3 +-
 tools/libs/stat/Makefile                  |   3 +-
 tools/libs/stat/xenstat_qmp.c             | 126 ++++-
 tools/xl/Makefile                         |   2 +-
 tools/xl/xl.h                             |   3 +
 tools/xl/xl_info.c                        | 105 +++-
 tools/xl/xl_misc.c                        |   3 -
 22 files changed, 1313 insertions(+), 52 deletions(-)

-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 14:56:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 14:56:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074668.1437198 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukOVw-00012t-Df; Fri, 08 Aug 2025 14:56:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074668.1437198; Fri, 08 Aug 2025 14:56: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 1ukOVw-00012F-6Q; Fri, 08 Aug 2025 14:56:12 +0000
Received: by outflank-mailman (input) for mailman id 1074668;
 Fri, 08 Aug 2025 14:56:10 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1ukOVu-0000jH-TS
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 14:56:10 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1ukOVu-007zrg-2R;
 Fri, 08 Aug 2025 14:56:10 +0000
Received: from [2a01:e0a:1da:8420:b77:bd5:6e45:7633] (helo=l14..)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1ukOVu-009BYT-1b;
 Fri, 08 Aug 2025 14: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:
	References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From;
	bh=dcQEIpjSqwJNNN97D3SvCHSjmd4l+W6ydBENkrkkG8A=; b=Cw5C3xDkqxHQcoGogOzp/+nHqW
	ipjba7VAEVJg5anvNy3oWv9WrAU+B43l7G0LdueLHvsMGz+VNsUAQvdMrIWuGV7npIp6jpMsbNgyy
	2jzZQUXqdL1I04AewWTPHLc41suIZqC3XevLJaeinEcFp/wNRugjE1Gsr0Sj5W1ea98c=;
From: Anthony PERARD <anthony@xenproject.org>
To: xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [XEN PATCH 06/11] libxl: convert libxl__json_object_to_yajl_gen to libxl__json_object_to_libjsonc_object
Date: Fri,  8 Aug 2025 16:55:57 +0200
Message-Id: <20250808145602.41716-7-anthony@xenproject.org>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250808145602.41716-1-anthony@xenproject.org>
References: <20250808145602.41716-1-anthony@xenproject.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Anthony PERARD <anthony.perard@vates.tech>

Convert yajl_gen to json_object from lib json-c.

And make use of it in qmp_prepare_cmd(), which can be compiled with
either lib.

Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>
---
 tools/include/libxl_json.h        |  6 ++
 tools/libs/light/libxl_internal.h |  7 +++
 tools/libs/light/libxl_json.c     | 95 +++++++++++++++++++++++++++++++
 tools/libs/light/libxl_qmp.c      | 53 +++++++++++++++++
 4 files changed, 161 insertions(+)

diff --git a/tools/include/libxl_json.h b/tools/include/libxl_json.h
index f0b4871e0e..e2ef8151f0 100644
--- a/tools/include/libxl_json.h
+++ b/tools/include/libxl_json.h
@@ -15,12 +15,18 @@
 #ifndef LIBXL_JSON_H
 #define LIBXL_JSON_H
 
+#ifdef HAVE_LIBJSONC
+#include <json-c/json.h>
+#endif
+
+#ifdef HAVE_LIBYAJL
 #include <yajl/yajl_gen.h>
 #include <yajl/yajl_parse.h>
 
 #ifdef HAVE_YAJL_YAJL_VERSION_H
 #  include <yajl/yajl_version.h>
 #endif
+#endif
 
 yajl_gen_status libxl__uint64_gen_json(yajl_gen hand, uint64_t val);
 yajl_gen_status libxl_defbool_gen_json(yajl_gen hand, libxl_defbool *p);
diff --git a/tools/libs/light/libxl_internal.h b/tools/libs/light/libxl_internal.h
index 4b6587a27a..b66aaa779d 100644
--- a/tools/libs/light/libxl_internal.h
+++ b/tools/libs/light/libxl_internal.h
@@ -2234,9 +2234,16 @@ _hidden const libxl__json_object *libxl__json_map_get(const char *key,
  */
 _hidden libxl__json_object *libxl__json_object_alloc(libxl__gc *gc_opt,
                                                      libxl__json_node_type type);
+#ifdef HAVE_LIBJSONC
+_hidden int libxl__json_object_to_json_object(libxl__gc *gc,
+                                              json_object **jso_out,
+                                              const libxl__json_object *obj);
+#endif
+#ifdef HAVE_LIBYAJL
 _hidden yajl_status libxl__json_object_to_yajl_gen(libxl__gc *gc_opt,
                                                    yajl_gen hand,
                                                    const libxl__json_object *param);
+#endif
 _hidden void libxl__json_object_free(libxl__gc *gc_opt,
                                      libxl__json_object *obj);
 
diff --git a/tools/libs/light/libxl_json.c b/tools/libs/light/libxl_json.c
index 44ee6e213f..b26ac901d6 100644
--- a/tools/libs/light/libxl_json.c
+++ b/tools/libs/light/libxl_json.c
@@ -631,6 +631,100 @@ const libxl__json_object *libxl__json_map_get(const char *key,
     return NULL;
 }
 
+#ifdef HAVE_LIBJSONC
+int libxl__json_object_to_json_object(libxl__gc *gc,
+                                      json_object **jso_out,
+                                      const libxl__json_object *obj)
+{
+    int idx = 0;
+    int rc, r;
+
+    switch (obj->type) {
+    case JSON_NULL:
+        *jso_out = json_object_new_null();
+        return 0;
+    case JSON_BOOL:
+        *jso_out = json_object_new_boolean(obj->u.b);
+        if (!*jso_out)
+            return ERROR_NOMEM;
+        return 0;
+    case JSON_INTEGER:
+        *jso_out = json_object_new_int64(obj->u.i);
+        if (!*jso_out)
+            return ERROR_NOMEM;
+        return 0;
+    case JSON_DOUBLE:
+        *jso_out = json_object_new_double(obj->u.d);
+        if (!*jso_out)
+            return ERROR_NOMEM;
+        return 0;
+    case JSON_NUMBER:
+        *jso_out = json_object_new_string(obj->u.string);
+        if (!*jso_out)
+            return ERROR_NOMEM;
+        return 0;
+    case JSON_STRING:
+        *jso_out = json_object_new_string(obj->u.string);
+        if (!*jso_out)
+            return ERROR_NOMEM;
+        return 0;
+    case JSON_MAP: {
+        libxl__json_map_node *node = NULL;
+        json_object *map_root = json_object_new_object();
+        json_object *node_value;
+
+        for (idx = 0; idx < obj->u.map->count; idx++) {
+            if (flexarray_get(obj->u.map, idx, (void**)&node) != 0)
+                break;
+
+            rc = libxl__json_object_to_json_object(gc, &node_value, node->obj);
+            if (rc) {
+                json_object_put(map_root);
+                return rc;
+            }
+
+            r = json_object_object_add(map_root, node->map_key, node_value);
+            if (r < 0) {
+                json_object_put(node_value);
+                json_object_put(map_root);
+                return ERROR_FAIL;
+            }
+        }
+        *jso_out = map_root;
+        return 0;
+    }
+    case JSON_ARRAY: {
+        libxl__json_object *node = NULL;
+        json_object *array_root = json_object_new_array_ext(obj->u.array->count);
+        json_object *node_value;
+
+        for (idx = 0; idx < obj->u.array->count; idx++) {
+            if (flexarray_get(obj->u.array, idx, (void**)&node) != 0)
+                break;
+
+            rc = libxl__json_object_to_json_object(gc, &node_value, node);
+            if (rc) {
+                json_object_put(array_root);
+                return rc;
+            }
+            r = json_object_array_add(array_root, node_value);
+            if (r < 0) {
+                json_object_put(node_value);
+                json_object_put(array_root);
+                return ERROR_FAIL;
+            }
+        }
+        *jso_out = array_root;
+        return 0;
+    }
+    case JSON_ANY:
+    default:
+        /* JSON_ANY is not a valid value for obj->type. */
+        return ERROR_FAIL;
+    }
+}
+#endif
+#ifdef HAVE_LIBYAJL
 yajl_status libxl__json_object_to_yajl_gen(libxl__gc *gc,
                                            yajl_gen hand,
                                            const libxl__json_object *obj)
@@ -698,6 +792,7 @@ yajl_status libxl__json_object_to_yajl_gen(libxl__gc *gc,
     abort();
 #undef CONVERT_YAJL_GEN_TO_STATUS
 }
+#endif
 
 
 /*
diff --git a/tools/libs/light/libxl_qmp.c b/tools/libs/light/libxl_qmp.c
index 84740bd4b3..94b6fdb559 100644
--- a/tools/libs/light/libxl_qmp.c
+++ b/tools/libs/light/libxl_qmp.c
@@ -61,7 +61,11 @@
 
 #include <sys/un.h>
 
+#ifdef HAVE_LIBJSONC
+#include <json-c/json.h>
+#elif defined(HAVE_LIBYAJL)
 #include <yajl/yajl_gen.h>
+#endif
 
 #include "xen_list.h"
 #include "libxl_internal.h"
@@ -481,13 +485,56 @@ static char *qmp_prepare_cmd(libxl__gc *gc, const char *cmd,
                              const libxl__json_object *args,
                              int id)
 {
+#ifdef HAVE_LIBJSONC
+    json_object *jso = NULL;
+    json_object *jso_value = NULL;
+    /* memory for 'buf' is owned by 'jso' */
+    const char *buf;
+    int rc, r;
+#elif defined(HAVE_LIBYAJL)
     yajl_gen hand = NULL;
     /* memory for 'buf' is owned by 'hand' */
     const unsigned char *buf;
     libxl_yajl_length len;
     yajl_gen_status s;
+#else
+#  error Missing JSON library
+#endif
     char *ret = NULL;
 
+#ifdef HAVE_LIBJSONC
+    jso = json_object_new_object();
+    if (!jso)
+        goto out;
+
+    jso_value = json_object_new_string(cmd);
+    if (!jso_value)
+        goto out;
+    r = json_object_object_add(jso, "execute", jso_value);
+    if (r < 0)
+        goto out;
+    jso_value = json_object_new_int(id);
+    if (!jso_value)
+        goto out;
+    r = json_object_object_add(jso, "id", jso_value);
+    if (r < 0)
+        goto out;
+    /* `jso_value` now part of `jso`, shouldn't free it anymore */
+    jso_value = NULL;
+    if (args) {
+        rc = libxl__json_object_to_json_object(gc, &jso_value, args);
+        if (rc)
+            goto out;
+        r = json_object_object_add(jso, "arguments", jso_value);
+        if (r < 0)
+            goto out;
+        jso_value = NULL;
+    }
+
+    buf = json_object_to_json_string_ext(jso, JSON_C_TO_STRING_PLAIN);
+    ret = libxl__sprintf(gc, "%s\r\n", buf);
+
+#elif defined(HAVE_LIBYAJL)
     hand = libxl_yajl_gen_alloc(NULL);
 
     if (!hand) {
@@ -516,9 +563,15 @@ static char *qmp_prepare_cmd(libxl__gc *gc, const char *cmd,
         goto out;
 
     ret = libxl__sprintf(gc, "%*.*s\r\n", (int)len, (int)len, buf);
+#endif
 
 out:
+#ifdef HAVE_LIBJSONC
+    json_object_put(jso_value);
+    json_object_put(jso);
+#elif defined(HAVE_LIBYAJL)
     yajl_gen_free(hand);
+#endif
     return ret;
 }
 
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 14:56:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 14:56:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074666.1437179 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukOVu-0000Yn-Hv; Fri, 08 Aug 2025 14:56:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074666.1437179; Fri, 08 Aug 2025 14:56: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 1ukOVu-0000YX-CL; Fri, 08 Aug 2025 14:56:10 +0000
Received: by outflank-mailman (input) for mailman id 1074666;
 Fri, 08 Aug 2025 14:56:09 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1ukOVt-00008B-7a
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 14:56:09 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1ukOVt-007zrT-0F;
 Fri, 08 Aug 2025 14:56:09 +0000
Received: from [2a01:e0a:1da:8420:b77:bd5:6e45:7633] (helo=l14..)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1ukOVs-009BYT-2d;
 Fri, 08 Aug 2025 14:56: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:
	References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From;
	bh=xVf4OX8RTJY7OuVusTIEIHCb9A67uli5402HnQS/1A4=; b=PAp8+tUObouyoV7Q3feKgOs4KJ
	bI6VKXuLkaKAth9yVNlidl0QVptXYVvXp6M9jEd+rCn500hT4ulL17+c6+ePGRWl2MLLguOfReHEI
	wacDlYTQhUhnAqYQpdfkpSKv/Y8hWO9yNXyvyMyHEMjUF9yaH559udyf/skXqsUAGOYI=;
From: Anthony PERARD <anthony@xenproject.org>
To: xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [XEN PATCH 04/11] tools/configure: Introduce deps on json-c lib for libxl
Date: Fri,  8 Aug 2025 16:55:55 +0200
Message-Id: <20250808145602.41716-5-anthony@xenproject.org>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250808145602.41716-1-anthony@xenproject.org>
References: <20250808145602.41716-1-anthony@xenproject.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Anthony PERARD <anthony.perard@vates.tech>

To replace yajl.

Introduce YAJL_LIBS variable, to be able to remove "-lyajl" later.

Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>
---
 config/Tools.mk.in        |   2 +
 tools/config.h.in         |   3 ++
 tools/configure           | 107 +++++++++++++++++++++++++++++++++++++-
 tools/configure.ac        |   6 ++-
 tools/libs/light/Makefile |   5 +-
 tools/xl/Makefile         |   2 +-
 6 files changed, 119 insertions(+), 6 deletions(-)

diff --git a/config/Tools.mk.in b/config/Tools.mk.in
index e47ac23d11..c2201021d1 100644
--- a/config/Tools.mk.in
+++ b/config/Tools.mk.in
@@ -65,6 +65,8 @@ EXTFS_LIBS          := @EXTFS_LIBS@
 CURSES_LIBS         := @CURSES_LIBS@
 TINFO_LIBS          := @TINFO_LIBS@
 ARGP_LDFLAGS        := @argp_ldflags@
+LIBJSONC_LIBS       := @libjsonc_LIBS@
+YAJL_LIBS           := @YAJL_LIBS@
 
 FILE_OFFSET_BITS    := @FILE_OFFSET_BITS@
 
diff --git a/tools/config.h.in b/tools/config.h.in
index fe2a94cfc4..ed0042018d 100644
--- a/tools/config.h.in
+++ b/tools/config.h.in
@@ -27,6 +27,9 @@
 /* Define to 1 if you have the `fdt' library (-lfdt). */
 #undef HAVE_LIBFDT
 
+/* Use library json-c */
+#undef HAVE_LIBJSONC
+
 /* Define to 1 if you have the `lzma' library (-llzma). */
 #undef HAVE_LIBLZMA
 
diff --git a/tools/configure b/tools/configure
index 5abd44e21e..edd1701b2d 100755
--- a/tools/configure
+++ b/tools/configure
@@ -660,6 +660,9 @@ libnl
 LIBNL3_LIBS
 LIBNL3_CFLAGS
 argp_ldflags
+YAJL_LIBS
+libjsonc_LIBS
+libjsonc_CFLAGS
 PTHREAD_LIBS
 PTHREAD_LDFLAGS
 PTHREAD_CFLAGS
@@ -882,6 +885,8 @@ pixman_CFLAGS
 pixman_LIBS
 libzstd_CFLAGS
 libzstd_LIBS
+libjsonc_CFLAGS
+libjsonc_LIBS
 LIBNL3_CFLAGS
 LIBNL3_LIBS
 SYSTEMD_SLEEP_DIR'
@@ -1633,6 +1638,10 @@ Some influential environment variables:
               C compiler flags for libzstd, overriding pkg-config
   libzstd_LIBS
               linker flags for libzstd, overriding pkg-config
+  libjsonc_CFLAGS
+              C compiler flags for libjsonc, overriding pkg-config
+  libjsonc_LIBS
+              linker flags for libjsonc, overriding pkg-config
   LIBNL3_CFLAGS
               C compiler flags for LIBNL3, overriding pkg-config
   LIBNL3_LIBS linker flags for LIBNL3, overriding pkg-config
@@ -9624,6 +9633,99 @@ printf "%s\n" "$ax_cv_pthread_flags" >&6; }
 
 
 
+
+pkg_failed=no
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libjsonc" >&5
+printf %s "checking for libjsonc... " >&6; }
+
+if test -n "$libjsonc_CFLAGS"; then
+    pkg_cv_libjsonc_CFLAGS="$libjsonc_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"json-c\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "json-c") 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_libjsonc_CFLAGS=`$PKG_CONFIG --cflags "json-c" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$libjsonc_LIBS"; then
+    pkg_cv_libjsonc_LIBS="$libjsonc_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"json-c\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "json-c") 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_libjsonc_LIBS=`$PKG_CONFIG --libs "json-c" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+   	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+	        libjsonc_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "json-c" 2>&1`
+        else
+	        libjsonc_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "json-c" 2>&1`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$libjsonc_PKG_ERRORS" >&5
+
+	as_fn_error $? "Package requirements (json-c) were not met:
+
+$libjsonc_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables libjsonc_CFLAGS
+and libjsonc_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details." "$LINENO" 5
+elif test $pkg_failed = untried; then
+     	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+	{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables libjsonc_CFLAGS
+and libjsonc_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details" "$LINENO" 5; }
+else
+	libjsonc_CFLAGS=$pkg_cv_libjsonc_CFLAGS
+	libjsonc_LIBS=$pkg_cv_libjsonc_LIBS
+        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+
+printf "%s\n" "#define HAVE_LIBJSONC 1" >>confdefs.h
+
+fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for yajl_alloc in -lyajl" >&5
 printf %s "checking for yajl_alloc in -lyajl... " >&6; }
 if test ${ac_cv_lib_yajl_yajl_alloc+y}
@@ -9661,9 +9763,10 @@ fi
 printf "%s\n" "$ac_cv_lib_yajl_yajl_alloc" >&6; }
 if test "x$ac_cv_lib_yajl_yajl_alloc" = xyes
 then :
-  printf "%s\n" "#define HAVE_LIBYAJL 1" >>confdefs.h
+  YAJL_LIBS=-lyajl
 
-  LIBS="-lyajl $LIBS"
+
+printf "%s\n" "#define HAVE_LIBYAJL 1" >>confdefs.h
 
 else $as_nop
   as_fn_error $? "Could not find yajl" "$LINENO" 5
diff --git a/tools/configure.ac b/tools/configure.ac
index dada1c3b15..bb40b5b3f0 100644
--- a/tools/configure.ac
+++ b/tools/configure.ac
@@ -424,7 +424,11 @@ AC_SUBST([ZLIB_CFLAGS])
 AC_SUBST([ZLIB_LIBS])
 AX_CHECK_EXTFS
 AX_CHECK_PTHREAD
-AC_CHECK_LIB([yajl], [yajl_alloc], [],
+PKG_CHECK_MODULES([libjsonc], [json-c],
+    [AC_DEFINE([HAVE_LIBJSONC], [1], [Use library json-c])])
+AC_CHECK_LIB([yajl], [yajl_alloc],
+   [AC_SUBST([YAJL_LIBS],[-lyajl])
+    AC_DEFINE([HAVE_LIBYAJL],[1],[Define to 1 if you have the `yajl' library (-lyajl).])],
     [AC_MSG_ERROR([Could not find yajl])])
 AC_CHECK_LIB([z], [deflateCopy], [], [AC_MSG_ERROR([Could not find zlib])])
 AC_CHECK_HEADER([argp.h], [
diff --git a/tools/libs/light/Makefile b/tools/libs/light/Makefile
index b690d92159..fa2a338c2b 100644
--- a/tools/libs/light/Makefile
+++ b/tools/libs/light/Makefile
@@ -166,7 +166,8 @@ LDLIBS-$(CONFIG_Linux) += -luuid
 LDLIBS-$(CONFIG_Linux) += -lrt
 LDLIBS-$(CONFIG_ARM) += -lfdt
 LDLIBS-y += $(PTHREAD_LIBS)
-LDLIBS-y += -lyajl
+LDLIBS-y += $(YAJL_LIBS)
+LDLIBS-y += $(LIBJSONC_LIBS)
 LDLIBS += $(LDLIBS-y)
 
 $(OBJS-y) $(PIC_OBJS) $(LIBXL_TEST_OBJS): CFLAGS += $(CFLAGS_LIBXL) -include $(XEN_ROOT)/tools/config.h
@@ -246,7 +247,7 @@ libxenlight_test.so: $(PIC_OBJS) $(LIBXL_TEST_OBJS)
 	$(CC) $(LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,libxenlight.so.$(MAJOR) $(SHLIB_LDFLAGS) -o $@ $^ $(LDLIBS) $(APPEND_LDFLAGS)
 
 test_%: test_%.o test_common.o libxenlight_test.so
-	$(CC) $(LDFLAGS) -o $@ $^ $(filter-out %libxenlight.so, $(LDLIBS_libxenlight)) $(LDLIBS_libxentoollog) $(LDLIBS_libxentoolcore) -lyajl $(APPEND_LDFLAGS)
+	$(CC) $(LDFLAGS) -o $@ $^ $(filter-out %libxenlight.so, $(LDLIBS_libxenlight)) $(LDLIBS_libxentoollog) $(LDLIBS_libxentoolcore) $(YAJL_LIBS) $(LIBJSONC_LIBS) $(APPEND_LDFLAGS)
 
 libxl-save-helper: $(SAVE_HELPER_OBJS) libxenlight.so
 	$(CC) $(LDFLAGS) -o $@ $(SAVE_HELPER_OBJS) $(LDLIBS_libxentoollog) $(LDLIBS_libxenctrl) $(LDLIBS_libxenguest) $(LDLIBS_libxentoolcore) $(APPEND_LDFLAGS)
diff --git a/tools/xl/Makefile b/tools/xl/Makefile
index ad577cdd70..ff7a5aee94 100644
--- a/tools/xl/Makefile
+++ b/tools/xl/Makefile
@@ -33,7 +33,7 @@ $(XL_OBJS): CFLAGS += -include $(XEN_ROOT)/tools/config.h # libxl_json.h needs i
 all: xl
 
 xl: $(XL_OBJS)
-	$(CC) $(LDFLAGS) -o $@ $(XL_OBJS) $(LDLIBS_libxenutil) $(LDLIBS_libxenlight) $(LDLIBS_libxentoollog) $(LDLIBS_libxenstore) -lyajl $(APPEND_LDFLAGS)
+	$(CC) $(LDFLAGS) -o $@ $(XL_OBJS) $(LDLIBS_libxenutil) $(LDLIBS_libxenlight) $(LDLIBS_libxentoollog) $(LDLIBS_libxenstore) $(YAJL_LIBS) $(LIBJSONC_LIBS) $(APPEND_LDFLAGS)
 
 .PHONY: install
 install: all
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 14:56:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 14:56:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074669.1437213 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukOVy-0001Uy-1a; Fri, 08 Aug 2025 14:56:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074669.1437213; Fri, 08 Aug 2025 14: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 1ukOVx-0001Th-SZ; Fri, 08 Aug 2025 14:56:13 +0000
Received: by outflank-mailman (input) for mailman id 1074669;
 Fri, 08 Aug 2025 14:56:12 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1ukOVv-000100-UR
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 14:56:11 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1ukOVv-007zrm-2N;
 Fri, 08 Aug 2025 14:56:11 +0000
Received: from [2a01:e0a:1da:8420:b77:bd5:6e45:7633] (helo=l14..)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1ukOVv-009BYT-19;
 Fri, 08 Aug 2025 14:56: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:
	References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From;
	bh=yNC5zIuniXe7MpzZB+le6KyA7cchPYRApjLfmWNgdQA=; b=sUuj1GM1OiRkIHneldzZWNnwRd
	XwX6R4WEoiomSYj258RbMc9CloFHj86mTWfCEbFyVuKtGTwNcOPHq5Qy9yN/M7EKA9mFzsPgz8hSX
	Hdmi8D0ovaRa9B6p1IXZrQNxAroIngYnVUlXzDCC9O5ce+X/FXv6KYbLdbQJ7gKoBLcI=;
From: Anthony PERARD <anthony@xenproject.org>
To: xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [XEN PATCH 07/11] libxl: libxl__object_to_json() to json-c
Date: Fri,  8 Aug 2025 16:55:58 +0200
Message-Id: <20250808145602.41716-8-anthony@xenproject.org>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250808145602.41716-1-anthony@xenproject.org>
References: <20250808145602.41716-1-anthony@xenproject.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Anthony PERARD <anthony.perard@vates.tech>

- libxl changes:

While doing so, we rename all "*_gen_json" function to "*_gen_jso" as
they have different prototype. All the function pointer are been cast
to (libxl__gen_json_callback) by "gentypes.py" when generating
"*_to_json()" functions.

We also introduce a few more "*_gen_jso" functions for "int" and
"bool" because we can't use json_object_*() functions from json-c
directly like it's done with yajl.

To make the generation of _libxl_types*json.[ch] with both YAJL and
json-c we add "--libjsonc" to gentypes.py so it can generate
functions/types for both.

Also introducing "jsonc_json_gen_fn" in the IDL, to be able to point
to a different function when using json-c.

Also, don't export any of the new *_gen_jso() function, at the cost of
having "_hidden" macro in semi-public headers.

- xl changes:

Also, rework the implementation of printf_info() in `xl` to avoid
using libxl_domain_config_gen_json() which isn't available without
YAJL. The implementation using "json_object" call
libxl_domain_config_to_json() which generate a plain string of JSON,
which we parse to add it to our own json; this avoid a dependency on
the json library used by libxl.

Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>
---
 tools/include/libxl_json.h                |  17 ++
 tools/libs/light/Makefile                 |   2 +-
 tools/libs/light/gentypes.py              | 160 ++++++++++-
 tools/libs/light/idl.py                   |   7 +-
 tools/libs/light/libxl_cpuid.c            | 119 ++++++++
 tools/libs/light/libxl_internal.h         |  16 +-
 tools/libs/light/libxl_json.c             | 316 ++++++++++++++++++++++
 tools/libs/light/libxl_types.idl          |   7 +-
 tools/libs/light/libxl_types_internal.idl |   3 +-
 tools/xl/xl_info.c                        | 102 ++++++-
 10 files changed, 729 insertions(+), 20 deletions(-)

diff --git a/tools/include/libxl_json.h b/tools/include/libxl_json.h
index e2ef8151f0..c130e88a5e 100644
--- a/tools/include/libxl_json.h
+++ b/tools/include/libxl_json.h
@@ -28,6 +28,22 @@
 #endif
 #endif
 
+#ifdef HAVE_LIBJSONC
+#ifndef _hidden
+#define _hidden
+#endif
+_hidden int libxl__uint64_gen_jso(json_object **jso_r, uint64_t val);
+_hidden int libxl_defbool_gen_jso(json_object **jso_r, libxl_defbool *p);
+_hidden int libxl_uuid_gen_jso(json_object **jso_r, libxl_uuid *p);
+_hidden int libxl_mac_gen_jso(json_object **jso_r, libxl_mac *p);
+_hidden int libxl_bitmap_gen_jso(json_object **jso_r, libxl_bitmap *p);
+_hidden int libxl_cpuid_policy_list_gen_jso(json_object **jso_r,libxl_cpuid_policy_list *p);
+_hidden int libxl_string_list_gen_jso(json_object **jso_r,libxl_string_list *p);
+_hidden int libxl_key_value_list_gen_jso(json_object **jso_r, libxl_key_value_list *p);
+_hidden int libxl_hwcap_gen_jso(json_object **jso_r, libxl_hwcap *p);
+_hidden int libxl_ms_vm_genid_gen_jso(json_object **jso_r, libxl_ms_vm_genid *p);
+#endif
+#if defined(HAVE_LIBYAJL)
 yajl_gen_status libxl__uint64_gen_json(yajl_gen hand, uint64_t val);
 yajl_gen_status libxl_defbool_gen_json(yajl_gen hand, libxl_defbool *p);
 yajl_gen_status libxl_uuid_gen_json(yajl_gen hand, libxl_uuid *p);
@@ -40,6 +56,7 @@ yajl_gen_status libxl_key_value_list_gen_json(yajl_gen hand,
                                               libxl_key_value_list *p);
 yajl_gen_status libxl_hwcap_gen_json(yajl_gen hand, libxl_hwcap *p);
 yajl_gen_status libxl_ms_vm_genid_gen_json(yajl_gen hand, libxl_ms_vm_genid *p);
+#endif
 
 #include <_libxl_types_json.h>
 
diff --git a/tools/libs/light/Makefile b/tools/libs/light/Makefile
index fa2a338c2b..c59c2cf198 100644
--- a/tools/libs/light/Makefile
+++ b/tools/libs/light/Makefile
@@ -227,7 +227,7 @@ testidl.o: $(XEN_INCLUDE)/libxl.h
 # This exploits the 'multi-target pattern rule' trick.
 # gentypes.py should be executed only once to make all the targets.
 _libxl_type%.h _libxl_type%_json.h _libxl_type%_private.h _libxl_type%.c: libxl_type%.idl gentypes.py idl.py
-	$(PYTHON) gentypes.py libxl_type$(*F).idl __libxl_type$(*F).h __libxl_type$(*F)_private.h \
+	$(PYTHON) gentypes.py $(if $(LIBJSONC_LIBS),--libjsonc) libxl_type$(*F).idl __libxl_type$(*F).h __libxl_type$(*F)_private.h \
 		__libxl_type$(*F)_json.h  __libxl_type$(*F).c
 	$(call move-if-changed,__libxl_type$(*F).h,_libxl_type$(*F).h)
 	$(call move-if-changed,__libxl_type$(*F)_private.h,_libxl_type$(*F)_private.h)
diff --git a/tools/libs/light/gentypes.py b/tools/libs/light/gentypes.py
index 3fe3873242..006bea170a 100644
--- a/tools/libs/light/gentypes.py
+++ b/tools/libs/light/gentypes.py
@@ -256,6 +256,30 @@ def libxl_C_type_member_init(ty, field):
     s += "\n"
     return s
 
+# For json-c gen_jso functions
+def libxl_C_type_gen_jso_map_key(f, parent, indent, scope_object, sub_scope_object):
+    s = ""
+    if isinstance(f.type, idl.KeyedUnion):
+        s += "switch (%s) {\n" % (parent + f.type.keyvar.name)
+        for x in f.type.fields:
+            v = f.type.keyvar.name + "." + x.name
+            s += "case %s:\n" % x.enumname
+            s += "    if (json_object_object_add(%s, \"%s\", %s)) {\n" % (scope_object, v, sub_scope_object)
+            s += "        json_object_put(%s);\n" % (sub_scope_object)
+            s += "        goto out;\n"
+            s += "    }\n"
+            s += "    break;\n"
+        s += "}\n"
+    else:
+        s += "if (json_object_object_add(%s, \"%s\", %s)) {\n" % (scope_object, f.name, sub_scope_object)
+        s += "    json_object_put(%s);\n" % (sub_scope_object)
+        s += "    goto out;\n"
+        s += "}\n"
+    if s != "":
+        s = indent + s
+    return s.replace("\n", "\n%s" % indent).rstrip(indent)
+
+# For YAJL gen_json functions
 def libxl_C_type_gen_map_key(f, parent, indent = ""):
     s = ""
     if isinstance(f.type, idl.KeyedUnion):
@@ -352,6 +376,86 @@ def get_default_expr(f, nparent, fexpr):
 
     return "%s" % fexpr
 
+# For json-c gen_json functions
+def libxl_C_type_gen_jso(ty, v, indent = "    ", parent = None, scope_object = "jso"):
+    s = ""
+    if parent is None:
+        s += "json_object *jso;\n"
+        s += "int rc;\n"
+        sub_scope_object = "jso_sub_1"
+    else:
+        sub_scope_object = "jso_sub_%d" % (1+int(scope_object.removeprefix("jso_sub_")))
+
+    if isinstance(ty, idl.Array):
+        if parent is None:
+            raise Exception("Array type must have a parent")
+        s += "{\n"
+        s += "    int i;\n"
+        s += "    %s = json_object_new_array_ext(%s);\n" % (scope_object, parent + ty.lenvar.name)
+        s += "    if (!%s)\n" % (scope_object)
+        s += "        goto out;\n"
+        s += "    for (i=0; i<%s; i++) {\n" % (parent + ty.lenvar.name)
+        s += "        json_object *%s;\n" % (sub_scope_object)
+        # remove some indent, it's over indented at least in one case libxl_vcpu_sched_params_gen_json
+        s += libxl_C_type_gen_jso(ty.elem_type, v+"[i]",
+                                   indent + "    ", parent, sub_scope_object)
+        s += "        if (json_object_array_add(%s, %s)) {\n" % (scope_object, sub_scope_object)
+        s += "            json_object_put(%s);\n" % (sub_scope_object)
+        s += "            goto out;\n"
+        s += "        }\n"
+        s += "    }\n"
+        s += "}\n"
+    elif isinstance(ty, idl.Enumeration):
+        s += "rc = libxl__enum_gen_jso(&%s, %s_to_string(%s));\n" % (scope_object, ty.typename, ty.pass_arg(v, parent is None))
+        s += "if (rc)\n"
+        s += "    goto out;\n"
+    elif isinstance(ty, idl.KeyedUnion):
+        if parent is None:
+            raise Exception("KeyedUnion type must have a parent")
+        s += "switch (%s) {\n" % (parent + ty.keyvar.name)
+        for f in ty.fields:
+            (nparent,fexpr) = ty.member(v, f, parent is None)
+            s += "case %s:\n" % f.enumname
+            if f.type is not None:
+                s += libxl_C_type_gen_jso(f.type, fexpr, indent + "    ", nparent, scope_object)
+            else:
+                s += "    %s = json_object_new_object();\n" % (scope_object)
+                s += "    if (!%s)\n" % (scope_object)
+                s += "        goto out;\n"
+            s += "    break;\n"
+        s += "}\n"
+    elif isinstance(ty, idl.Struct) and (parent is None or ty.json_gen_fn is None):
+        s += "%s = json_object_new_object();\n" % (scope_object)
+        s += "if (!%s)\n" % (scope_object)
+        s += "    goto out;\n"
+        for f in [f for f in ty.fields if not f.const and not f.type.private]:
+            (nparent,fexpr) = ty.member(v, f, parent is None)
+            default_expr = get_default_expr(f, nparent, fexpr)
+            s += "if (%s) {\n" % default_expr
+            s += "    json_object *%s = NULL;\n" % (sub_scope_object)
+            s += libxl_C_type_gen_jso(f.type, fexpr, "    ", nparent, sub_scope_object)
+            s += libxl_C_type_gen_jso_map_key(f, nparent, "    ", scope_object, sub_scope_object)
+
+            s += "}\n"
+
+    else:
+        if ty.json_gen_fn is not None:
+            s += "rc = %s(&%s, %s);\n" % (ty.json_gen_fn, scope_object, ty.pass_arg(v, parent is None))
+            s += "if (rc)\n"
+            s += "    goto out;\n"
+
+    if parent is None:
+        s += "*jso_r = jso;\n"
+        s += "return 0;\n"
+        s += "out:\n"
+        s += "json_object_put(jso);\n"
+        s += "return ERROR_FAIL;\n"
+
+    if s != "":
+        s = indent + s
+    return s.replace("\n", "\n%s" % indent).rstrip(indent)
+
+# For YAJL gen_json functions
 def libxl_C_type_gen_json(ty, v, indent = "    ", parent = None):
     s = ""
     if parent is None:
@@ -426,9 +530,9 @@ def libxl_C_type_gen_json(ty, v, indent = "    ", parent = None):
         s = indent + s
     return s.replace("\n", "\n%s" % indent).rstrip(indent)
 
-def libxl_C_type_to_json(ty, v, indent = "    "):
+def libxl_C_type_to_json(ty, v, indent = "    ", fn_ptr_type="libxl__gen_json_callback", fn_suffix="_gen_json"):
     s = ""
-    gen = "(libxl__gen_json_callback)&%s_gen_json" % ty.typename
+    gen = "(%s)&%s%s" % (fn_ptr_type, ty.typename, fn_suffix)
     s += "return libxl__object_to_json(ctx, \"%s\", %s, (void *)%s);\n" % (ty.typename, gen, ty.pass_arg(v, passby=idl.PASS_BY_REFERENCE))
 
     if s != "":
@@ -589,14 +693,38 @@ def clean_header_define(header_path):
 
 
 if __name__ == '__main__':
+    opt_libjsonc = False
+    if len(sys.argv) == 7:
+        if sys.argv.pop(1) == "--libjsonc":
+            opt_libjsonc = True
     if len(sys.argv) != 6:
         print("Usage: gentypes.py <idl> <header> <header-private> <header-json> <implementation>", file=sys.stderr)
         sys.exit(1)
 
     (_, idlname, header, header_private, header_json, impl) = sys.argv
 
+    # Overwrite `json_gen_fn` for standard types
+    if opt_libjsonc:
+        idl.bool.json_gen_fn = "libxl__boolean_gen_jso"
+        idl.size_t.json_gen_fn = "libxl__int_gen_jso"
+        idl.integer .json_gen_fn = "libxl__int_gen_jso"
+        idl.uint8.json_gen_fn = "libxl__int_gen_jso"
+        idl.uint16.json_gen_fn = "libxl__int_gen_jso"
+        idl.uint32.json_gen_fn = "libxl__int_gen_jso"
+        idl.uint64.json_gen_fn = "libxl__uint64_gen_jso"
+        idl.string.json_gen_fn = "libxl__string_gen_jso"
+
     (builtins,types) = idl.parse(idlname)
 
+    # Overwrite `json_gen_fn` with `jsonc_json_gen_fn` for types from the IDL
+    if opt_libjsonc:
+        for t in builtins:
+            if t.jsonc_json_gen_fn is not None:
+                t.json_gen_fn = t.jsonc_json_gen_fn
+        for t in types:
+            if t.jsonc_json_gen_fn is not None:
+                t.json_gen_fn = t.jsonc_json_gen_fn
+
     print("outputting libxl type definitions to %s" % header)
 
     f = open(header, "w")
@@ -665,7 +793,11 @@ if __name__ == '__main__':
 """ % (header_json_define, header_json_define, " ".join(sys.argv)))
 
     for ty in [ty for ty in types if ty.json_gen_fn is not None]:
-        f.write("%syajl_gen_status %s_gen_json(yajl_gen hand, %s);\n" % (ty.hidden(), ty.typename, ty.make_arg("p", passby=idl.PASS_BY_REFERENCE)))
+        if opt_libjsonc:
+            # Always hide JSON generators base on json-c
+            f.write("%sint %s_gen_jso(json_object **jso_r, %s);\n" % ("_hidden ", ty.typename, ty.make_arg("p", passby=idl.PASS_BY_REFERENCE)))
+        else:
+            f.write("%syajl_gen_status %s_gen_json(yajl_gen hand, %s);\n" % (ty.hidden(), ty.typename, ty.make_arg("p", passby=idl.PASS_BY_REFERENCE)))
 
     f.write("\n")
     f.write("""#endif /* %s */\n""" % header_json_define)
@@ -769,15 +901,25 @@ if __name__ == '__main__':
         f.write("\n")
 
     for ty in [t for t in types if t.json_gen_fn is not None]:
-        f.write("yajl_gen_status %s_gen_json(yajl_gen hand, %s)\n" % (ty.typename, ty.make_arg("p", passby=idl.PASS_BY_REFERENCE)))
-        f.write("{\n")
-        f.write(libxl_C_type_gen_json(ty, "p"))
-        f.write("}\n")
-        f.write("\n")
+        if opt_libjsonc:
+            f.write("int %s_gen_jso(json_object **jso_r, %s)\n" % (ty.typename, ty.make_arg("p", passby=idl.PASS_BY_REFERENCE)))
+            f.write("{\n")
+            f.write(libxl_C_type_gen_jso(ty, "p"))
+            f.write("}\n")
+            f.write("\n")
+        else:
+            f.write("yajl_gen_status %s_gen_json(yajl_gen hand, %s)\n" % (ty.typename, ty.make_arg("p", passby=idl.PASS_BY_REFERENCE)))
+            f.write("{\n")
+            f.write(libxl_C_type_gen_json(ty, "p"))
+            f.write("}\n")
+            f.write("\n")
 
         f.write("char *%s_to_json(libxl_ctx *ctx, %s)\n" % (ty.typename, ty.make_arg("p")))
         f.write("{\n")
-        f.write(libxl_C_type_to_json(ty, "p"))
+        if opt_libjsonc:
+            f.write(libxl_C_type_to_json(ty, "p", fn_ptr_type="libxl__gen_json_callback", fn_suffix="_gen_jso"))
+        else:
+            f.write(libxl_C_type_to_json(ty, "p", fn_ptr_type="libxl__gen_json_callback", fn_suffix="_gen_json"))
         f.write("}\n")
         f.write("\n")
 
diff --git a/tools/libs/light/idl.py b/tools/libs/light/idl.py
index d7367503b4..61c8e14004 100644
--- a/tools/libs/light/idl.py
+++ b/tools/libs/light/idl.py
@@ -79,6 +79,7 @@ class Type(object):
 
         if self.typename is not None and not self.private:
             self.json_gen_fn = kwargs.setdefault('json_gen_fn', self.typename + "_gen_json")
+            self.jsonc_json_gen_fn = kwargs.setdefault('jsonc_json_gen_fn', self.typename + "_gen_jso")
             self.json_parse_type = kwargs.setdefault('json_parse_type', "JSON_ANY")
             if self.namespace is not None:
                 self.json_parse_fn = kwargs.setdefault('json_parse_fn',
@@ -88,6 +89,7 @@ class Type(object):
                                                        self.typename + "_parse_json")
         else:
             self.json_gen_fn = kwargs.setdefault('json_gen_fn', None)
+            self.jsonc_json_gen_fn = kwargs.setdefault('jsonc_json_gen_fn', None)
             self.json_parse_type = kwargs.setdefault('json_parse_type', None)
             self.json_parse_fn = kwargs.setdefault('json_parse_fn', None)
 
@@ -142,6 +144,7 @@ class Number(Builtin):
         kwargs.setdefault('copy_fn', None)
         kwargs.setdefault('signed', False)
         kwargs.setdefault('json_gen_fn', "yajl_gen_integer")
+        kwargs.setdefault('jsonc_json_gen_fn', "libxl__int_gen_jso")
         kwargs.setdefault('json_parse_type', "JSON_INTEGER")
         # json_parse_fn might be overriden on specific type
         kwargs.setdefault('json_parse_fn', "libxl__int_parse_json")
@@ -290,6 +293,7 @@ void = Builtin("void *", namespace = None)
 bool = Builtin("bool", namespace = None,
                copy_fn=None,
                json_gen_fn = "yajl_gen_bool",
+               jsonc_json_gen_fn = "libxl__boolean_gen_jso",
                json_parse_type = "JSON_BOOL",
                json_parse_fn = "libxl__bool_parse_json",
                autogenerate_json = False)
@@ -301,10 +305,11 @@ integer = Number("int", namespace = None, signed = True)
 uint8 = UInt(8)
 uint16 = UInt(16)
 uint32 = UInt(32)
-uint64 = UInt(64, json_gen_fn = "libxl__uint64_gen_json")
+uint64 = UInt(64, json_gen_fn = "libxl__uint64_gen_json", jsonc_json_gen_fn = "libxl__uint64_gen_jso")
 
 string = Builtin("char *", namespace = None, copy_fn = "libxl_string_copy", dispose_fn = "free",
                  json_gen_fn = "libxl__string_gen_json",
+                 jsonc_json_gen_fn = "libxl__string_gen_jso",
                  json_parse_type = "JSON_STRING | JSON_NULL",
                  json_parse_fn = "libxl__string_parse_json",
                  autogenerate_json = False,
diff --git a/tools/libs/light/libxl_cpuid.c b/tools/libs/light/libxl_cpuid.c
index f738e17b19..8420b2465f 100644
--- a/tools/libs/light/libxl_cpuid.c
+++ b/tools/libs/light/libxl_cpuid.c
@@ -545,6 +545,124 @@ static const char *policy_names[4] = { "eax", "ebx", "ecx", "edx" };
  * }
  */
 
+#ifdef HAVE_LIBJSONC
+int libxl_cpuid_policy_list_gen_jso(json_object **jso_r, libxl_cpuid_policy_list *pl)
+{
+    libxl_cpuid_policy_list policy = *pl;
+    struct xc_xend_cpuid *cpuid;
+    const struct xc_msr *msr;
+    json_object *jso_outer;
+    json_object *jso_array;
+    int i, j;
+    int r;
+    int rc = ERROR_FAIL;
+
+    jso_outer = json_object_new_object();
+    if (!jso_outer) goto out;
+
+    jso_array = json_object_new_array();
+    if (!jso_array) goto out;
+
+    r = json_object_object_add(jso_outer, "cpuid", jso_array);
+    if (r < 0) {
+        json_object_put(jso_array);
+        goto out;
+    }
+
+    if (policy == NULL || policy->cpuid == NULL) goto empty;
+    cpuid = policy->cpuid;
+
+    for (i = 0; cpuid[i].input[0] != XEN_CPUID_INPUT_UNUSED; i++) {
+        json_object *jso_inner;
+        jso_inner = json_object_new_object();
+        if (!jso_inner) goto out;
+
+        r = json_object_array_add(jso_array, jso_inner);
+        if (r < 0) {
+            json_object_put(jso_inner);
+            goto out;
+        }
+
+        for (j = 0; j < 2; j++) {
+            if (cpuid[i].input[j] != XEN_CPUID_INPUT_UNUSED) {
+                json_object *jso_value = json_object_new_int(cpuid[i].input[j]);
+                if (!jso_value) goto out;
+                r = json_object_object_add(jso_inner, input_names[j], jso_value);
+                if (r < 0) {
+                    json_object_put(jso_value);
+                    goto out;
+                }
+            }
+        }
+
+        for (j = 0; j < 4; j++) {
+            if (cpuid[i].policy[j] != NULL) {
+                json_object *jso_value = json_object_new_string_len(cpuid[i].policy[j], 32);
+                if (!jso_value) goto out;
+                r = json_object_object_add(jso_inner, policy_names[j], jso_value);
+                if (r < 0) {
+                    json_object_put(jso_value);
+                    goto out;
+                }
+            }
+        }
+    }
+
+empty:
+
+    jso_array = json_object_new_array();
+    if (!jso_array) goto out;
+
+    r = json_object_object_add(jso_outer, "msr", jso_array);
+    if (r < 0) {
+        json_object_put(jso_array);
+        goto out;
+    }
+
+    if (!policy || !policy->msr) goto done;
+    msr = policy->msr;
+
+    for (i = 0; msr[i].index != XC_MSR_INPUT_UNUSED; i++) {
+        json_object *jso_inner;
+        json_object *jso_value;
+
+        jso_inner = json_object_new_object();
+        if (!jso_inner) goto out;
+
+        r = json_object_array_add(jso_array, jso_inner);
+        if (r < 0) {
+            json_object_put(jso_inner);
+            goto out;
+        }
+
+        jso_value = json_object_new_int(msr[i].index);
+        if (!jso_value) goto out;
+        r = json_object_object_add(jso_inner, "index", jso_value);
+        if (r < 0) {
+            json_object_put(jso_value);
+            goto out;
+        }
+
+        jso_value = json_object_new_string_len(msr[i].policy, 64);
+        if (!jso_value) goto out;
+        r = json_object_object_add(jso_inner, "policy", jso_value);
+        if (r < 0) {
+            json_object_put(jso_value);
+            goto out;
+        }
+    }
+
+done:
+    *jso_r = jso_outer;
+    jso_outer = NULL;
+    rc = 0;
+out:
+    json_object_put(jso_outer);
+    return rc;
+}
+#endif
+
+#ifdef HAVE_LIBYAJL
 yajl_gen_status libxl_cpuid_policy_list_gen_json(yajl_gen hand,
                                 libxl_cpuid_policy_list *pl)
 {
@@ -630,6 +748,7 @@ yajl_gen_status libxl_cpuid_policy_list_gen_json(yajl_gen hand,
 out:
     return s;
 }
+#endif
 
 int libxl__cpuid_policy_list_parse_json(libxl__gc *gc,
                                         const libxl__json_object *o,
diff --git a/tools/libs/light/libxl_internal.h b/tools/libs/light/libxl_internal.h
index b66aaa779d..0f707e4204 100644
--- a/tools/libs/light/libxl_internal.h
+++ b/tools/libs/light/libxl_internal.h
@@ -1993,9 +1993,11 @@ _hidden char *libxl__cpupoolid_to_name(libxl__gc *gc, uint32_t poolid);
 _hidden int libxl__enum_from_string(const libxl_enum_string_table *t,
                                     const char *s, int *e) NN(2);
 
-_hidden yajl_gen_status libxl__string_gen_json(yajl_gen hand, const char *p);
-
+#ifdef HAVE_LIBJSONC
+typedef int (*libxl__gen_json_callback)(json_object **jso_r, void *);
+#elif defined(HAVE_LIBYAJL)
 typedef yajl_gen_status (*libxl__gen_json_callback)(yajl_gen hand, void *);
+#endif
 _hidden char *libxl__object_to_json(libxl_ctx *ctx, const char *type,
                                     libxl__gen_json_callback gen, void *p);
 
@@ -2084,11 +2086,21 @@ int libxl__recvmsg_fds(libxl__gc *gc, int carrier,
                        void *databuf, size_t datalen,
                        int nfds, int fds[], const char *what);
 
+#ifdef HAVE_LIBJSONC
+_hidden int libxl__enum_gen_jso(json_object **jso_r, const char *str);
+_hidden int libxl__int_gen_jso(json_object **jso_r, int i);
+_hidden int libxl__boolean_gen_jso(json_object **jso_r, bool b);
+_hidden int libxl__string_gen_jso(json_object **jso_r, const char *p);
+#endif
+
+#ifdef HAVE_LIBYAJL
 /* from libxl_json */
 #include <yajl/yajl_gen.h>
 
 _hidden yajl_gen_status libxl__yajl_gen_asciiz(yajl_gen hand, const char *str);
 _hidden yajl_gen_status libxl__yajl_gen_enum(yajl_gen hand, const char *str);
+_hidden yajl_gen_status libxl__string_gen_json(yajl_gen hand, const char *p);
+#endif
 
 typedef enum {
     JSON_NULL    = (1 << 0),
diff --git a/tools/libs/light/libxl_json.c b/tools/libs/light/libxl_json.c
index b26ac901d6..01944ef94d 100644
--- a/tools/libs/light/libxl_json.c
+++ b/tools/libs/light/libxl_json.c
@@ -19,12 +19,16 @@
 #ifdef HAVE_LIBJSONC
 #include <json-c/json.h>
 #define USE_LIBJSONC_PARSER
+#define USE_LIBJSONC_GEN
 #endif
 
 #ifdef HAVE_LIBYAJL
 #  ifndef USE_LIBJSONC_PARSER
 #    define USE_LIBYAJL_PARSER
 #  endif
+#  ifndef USE_LIBJSONC_GEN
+#    define USE_LIBYAJL_GEN
+#  endif
 #endif
 
 
@@ -35,7 +39,9 @@
 #ifdef USE_LIBYAJL_PARSER
 #include <yajl/yajl_parse.h>
 #endif
+#ifdef USE_LIBYAJL_GEN
 #include <yajl/yajl_gen.h>
+#endif
 
 #include "libxl_internal.h"
 
@@ -103,6 +109,21 @@ yajl_gen_status libxl__yajl_gen_asciiz(yajl_gen hand, const char *str)
     return yajl_gen_string(hand, (const unsigned char *)str, strlen(str));
 }
 
+#ifdef HAVE_LIBJSONC
+int libxl__enum_gen_jso(json_object **jso_r, const char *str)
+{
+    if (str) {
+        *jso_r = json_object_new_string(str);
+        if (!*jso_r)
+            return ERROR_FAIL;
+    } else {
+        *jso_r = json_object_new_null();
+    }
+    return 0;
+}
+#endif
+
+#ifdef HAVE_LIBYAJL
 yajl_gen_status libxl__yajl_gen_enum(yajl_gen hand, const char *str)
 {
     if (str)
@@ -110,15 +131,28 @@ yajl_gen_status libxl__yajl_gen_enum(yajl_gen hand, const char *str)
     else
         return yajl_gen_null(hand);
 }
+#endif
 
 /*
  * YAJL generators for builtin libxl types.
  */
+#ifdef HAVE_LIBJSONC
+int libxl_defbool_gen_jso(json_object **jso_r, libxl_defbool *db)
+{
+    *jso_r = json_object_new_string(libxl_defbool_to_string(*db));
+    if (!*jso_r)
+        return ERROR_FAIL;
+    return 0;
+}
+#endif
+
+#ifdef HAVE_LIBYAJL
 yajl_gen_status libxl_defbool_gen_json(yajl_gen hand,
                                        libxl_defbool *db)
 {
     return libxl__yajl_gen_asciiz(hand, libxl_defbool_to_string(*db));
 }
+#endif
 
 int libxl__defbool_parse_json(libxl__gc *gc, const libxl__json_object *o,
                               libxl_defbool *p)
@@ -145,6 +179,16 @@ int libxl__defbool_parse_json(libxl__gc *gc, const libxl__json_object *o,
     return 0;
 }
 
+#ifdef HAVE_LIBJSONC
+int libxl__boolean_gen_jso(json_object **jso_r, bool b)
+{
+    *jso_r = json_object_new_boolean(b);
+    if (!*jso_r)
+        return ERROR_FAIL;
+    return 0;
+}
+#endif
+
 int libxl__bool_parse_json(libxl__gc *gc, const libxl__json_object *o,
                            bool *p)
 {
@@ -156,6 +200,19 @@ int libxl__bool_parse_json(libxl__gc *gc, const libxl__json_object *o,
     return 0;
 }
 
+#ifdef HAVE_LIBJSONC
+int libxl_uuid_gen_jso(json_object **jso_r, libxl_uuid *uuid)
+{
+    char buf[LIBXL_UUID_FMTLEN+1];
+    snprintf(buf, sizeof(buf), LIBXL_UUID_FMT, LIBXL_UUID_BYTES((*uuid)));
+    *jso_r = json_object_new_string_len(buf, LIBXL_UUID_FMTLEN);
+    if (!*jso_r)
+        return ERROR_FAIL;
+    return 0;
+}
+#endif
+
+#ifdef HAVE_LIBYAJL
 yajl_gen_status libxl_uuid_gen_json(yajl_gen hand,
                                     libxl_uuid *uuid)
 {
@@ -163,6 +220,7 @@ yajl_gen_status libxl_uuid_gen_json(yajl_gen hand,
     snprintf(buf, sizeof(buf), LIBXL_UUID_FMT, LIBXL_UUID_BYTES((*uuid)));
     return yajl_gen_string(hand, (const unsigned char *)buf, LIBXL_UUID_FMTLEN);
 }
+#endif
 
 int libxl__uuid_parse_json(libxl__gc *gc, const libxl__json_object *o,
                            libxl_uuid *p)
@@ -173,6 +231,39 @@ int libxl__uuid_parse_json(libxl__gc *gc, const libxl__json_object *o,
     return libxl_uuid_from_string(p, o->u.string);
 }
 
+#ifdef HAVE_LIBJSONC
+int libxl_bitmap_gen_jso(json_object **jso_r, libxl_bitmap *bitmap)
+{
+    json_object *jso;
+    int i;
+    int r;
+    int rc = ERROR_FAIL;
+
+    jso = json_object_new_array();
+    if (!jso) goto out;
+
+    libxl_for_each_bit(i, *bitmap) {
+        if (libxl_bitmap_test(bitmap, i)) {
+            json_object *jso_value = json_object_new_int(i);
+            if (!jso_value) goto out;
+            r = json_object_array_add(jso, jso_value);
+            if (r) {
+                json_object_put(jso_value);
+                goto out;
+            }
+        }
+    }
+
+    *jso_r = jso;
+    jso = NULL;
+    rc = 0;
+out:
+    json_object_put(jso);
+    return rc;
+}
+#endif
+
+#ifdef HAVE_LIBYAJL
 yajl_gen_status libxl_bitmap_gen_json(yajl_gen hand,
                                       libxl_bitmap *bitmap)
 {
@@ -192,6 +283,7 @@ yajl_gen_status libxl_bitmap_gen_json(yajl_gen hand,
 out:
     return s;
 }
+#endif
 
 int libxl__bitmap_parse_json(libxl__gc *gc, const libxl__json_object *o,
                             libxl_bitmap *p)
@@ -227,6 +319,42 @@ int libxl__bitmap_parse_json(libxl__gc *gc, const libxl__json_object *o,
     return 0;
 }
 
+#ifdef HAVE_LIBJSONC
+int libxl_key_value_list_gen_jso(json_object **jso_r, libxl_key_value_list *pkvl)
+{
+    libxl_key_value_list kvl = *pkvl;
+    json_object *jso;
+    int i;
+
+    jso = json_object_new_object();
+    if (!jso) goto out;
+
+    if (!kvl) goto empty;
+
+    for (i = 0; kvl[i] != NULL; i += 2) {
+        json_object *jso_value;
+        if (kvl[i + 1]) {
+            jso_value = json_object_new_string(kvl[i+1]);
+            if (!jso_value) goto out;
+        } else {
+            jso_value = json_object_new_null();
+        }
+        int r = json_object_object_add(jso, kvl[i], jso_value);
+        if (r) {
+            json_object_put(jso_value);
+            goto out;
+        }
+    }
+empty:
+    *jso_r = jso;
+    return 0;
+out:
+    json_object_put(jso);
+    return ERROR_FAIL;
+}
+#endif
+
+#ifdef HAVE_LIBYAJL
 yajl_gen_status libxl_key_value_list_gen_json(yajl_gen hand,
                                               libxl_key_value_list *pkvl)
 {
@@ -253,6 +381,7 @@ yajl_gen_status libxl_key_value_list_gen_json(yajl_gen hand,
 out:
     return s;
 }
+#endif
 
 int libxl__key_value_list_parse_json(libxl__gc *gc, const libxl__json_object *o,
                                      libxl_key_value_list *p)
@@ -289,6 +418,39 @@ int libxl__key_value_list_parse_json(libxl__gc *gc, const libxl__json_object *o,
     return 0;
 }
 
+#ifdef HAVE_LIBJSONC
+int libxl_string_list_gen_jso(json_object **jso_r, libxl_string_list *pl)
+{
+    libxl_string_list l = *pl;
+    json_object *jso;
+    int i;
+    int rc = ERROR_FAIL;
+
+    jso = json_object_new_array();
+    if (!jso) goto out;
+
+    if (!l) goto empty;
+
+    for (i = 0; l[i] != NULL; i++) {
+        json_object *jso_value = json_object_new_string(l[i]);
+        if (!jso_value) goto out;
+        int r = json_object_array_add(jso, jso_value);
+        if (r) {
+            json_object_put(jso_value);
+            goto out;
+        }
+    }
+empty:
+    *jso_r = jso;
+    jso = NULL;
+    rc = 0;
+out:
+    json_object_put(jso);
+    return rc;
+}
+#endif
+
+#ifdef HAVE_LIBYAJL
 yajl_gen_status libxl_string_list_gen_json(yajl_gen hand, libxl_string_list *pl)
 {
     libxl_string_list l = *pl;
@@ -309,6 +471,7 @@ yajl_gen_status libxl_string_list_gen_json(yajl_gen hand, libxl_string_list *pl)
 out:
     return s;
 }
+#endif
 
 int libxl__string_list_parse_json(libxl__gc *gc, const libxl__json_object *o,
                                   libxl_string_list *p)
@@ -342,12 +505,26 @@ int libxl__string_list_parse_json(libxl__gc *gc, const libxl__json_object *o,
     return 0;
 }
 
+#ifdef HAVE_LIBJSONC
+int libxl_mac_gen_jso(json_object **jso_r, libxl_mac *mac)
+{
+    char buf[LIBXL_MAC_FMTLEN+1];
+    snprintf(buf, sizeof(buf), LIBXL_MAC_FMT, LIBXL_MAC_BYTES((*mac)));
+    *jso_r = json_object_new_string_len(buf, LIBXL_MAC_FMTLEN);
+    if (!*jso_r)
+        return ERROR_FAIL;
+    return 0;
+}
+#endif
+
+#ifdef HAVE_LIBYAJL
 yajl_gen_status libxl_mac_gen_json(yajl_gen hand, libxl_mac *mac)
 {
     char buf[LIBXL_MAC_FMTLEN+1];
     snprintf(buf, sizeof(buf), LIBXL_MAC_FMT, LIBXL_MAC_BYTES((*mac)));
     return yajl_gen_string(hand, (const unsigned char *)buf, LIBXL_MAC_FMTLEN);
 }
+#endif
 
 int libxl__mac_parse_json(libxl__gc *gc, const libxl__json_object *o,
                           libxl_mac *p)
@@ -358,6 +535,36 @@ int libxl__mac_parse_json(libxl__gc *gc, const libxl__json_object *o,
     return libxl__parse_mac(libxl__json_object_get_string(o), *p);
 }
 
+#ifdef HAVE_LIBJSONC
+int libxl_hwcap_gen_jso(json_object **jso_r, libxl_hwcap *p)
+{
+    json_object *jso;
+    int i;
+    int rc = ERROR_FAIL;
+
+    jso = json_object_new_array();
+    if (!jso) goto out;
+
+    for(i=0; i<4; i++) {
+        json_object *jso_value = json_object_new_int((*p)[i]);
+        if (!jso_value)
+            goto out;
+        int r = json_object_array_add(jso, jso_value);
+        if (r) {
+            json_object_put(jso_value);
+            goto out;
+        }
+    }
+    *jso_r = jso;
+    jso = NULL;
+    rc = 0;
+out:
+    json_object_put(jso);
+    return rc;
+}
+#endif
+
+#ifdef HAVE_LIBYAJL
 yajl_gen_status libxl_hwcap_gen_json(yajl_gen hand,
                                      libxl_hwcap *p)
 {
@@ -375,6 +582,7 @@ yajl_gen_status libxl_hwcap_gen_json(yajl_gen hand,
 out:
     return s;
 }
+#endif
 
 int libxl__hwcap_parse_json(libxl__gc *gc, const libxl__json_object *o,
                             libxl_hwcap *p)
@@ -397,6 +605,37 @@ int libxl__hwcap_parse_json(libxl__gc *gc, const libxl__json_object *o,
     return 0;
 }
 
+#ifdef HAVE_LIBJSONC
+int libxl_ms_vm_genid_gen_jso(json_object **jso_r, libxl_ms_vm_genid *p)
+{
+    json_object *jso;
+    int i;
+    int rc = ERROR_FAIL;
+
+    jso = json_object_new_array_ext(LIBXL_MS_VM_GENID_LEN);
+    if (!jso) goto out;
+
+    for (i = 0; i < LIBXL_MS_VM_GENID_LEN; i++) {
+        json_object *jso_value = json_object_new_int(p->bytes[i]);
+        if (!jso_value)
+            goto out;
+        int r = json_object_array_add(jso, jso_value);
+        if (r) {
+            json_object_put(jso_value);
+            goto out;
+        }
+    }
+
+    *jso_r = jso;
+    jso = NULL;
+    rc = 0;
+out:
+    json_object_put(jso);
+    return rc;
+}
+#endif
+
+#ifdef HAVE_LIBYAJL
 yajl_gen_status libxl_ms_vm_genid_gen_json(yajl_gen hand, libxl_ms_vm_genid *p)
 {
     yajl_gen_status s;
@@ -414,6 +653,7 @@ yajl_gen_status libxl_ms_vm_genid_gen_json(yajl_gen hand, libxl_ms_vm_genid *p)
 
     return yajl_gen_array_close(hand);
 }
+#endif
 
 int libxl__ms_vm_genid_parse_json(libxl__gc *gc, const libxl__json_object *o,
                                   libxl_ms_vm_genid *p)
@@ -436,6 +676,21 @@ int libxl__ms_vm_genid_parse_json(libxl__gc *gc, const libxl__json_object *o,
     return 0;
 }
 
+#ifdef HAVE_LIBJSONC
+int libxl__string_gen_jso(json_object **jso_r, const char *p)
+{
+    if (p) {
+        *jso_r = json_object_new_string(p);
+        if (!*jso_r)
+            return ERROR_FAIL;
+    } else {
+        *jso_r = json_object_new_null();
+    }
+    return 0;
+}
+#endif
+
+#ifdef HAVE_LIBYAJL
 yajl_gen_status libxl__string_gen_json(yajl_gen hand,
                                        const char *p)
 {
@@ -444,6 +699,7 @@ yajl_gen_status libxl__string_gen_json(yajl_gen hand,
     else
         return yajl_gen_null(hand);
 }
+#endif
 
 int libxl__string_parse_json(libxl__gc *gc, const libxl__json_object *o,
                              char **p)
@@ -1161,6 +1417,7 @@ libxl__json_object *libxl__json_parse(libxl__gc *gc, const char *s)
     return NULL;
 }
 
+#ifdef USE_LIBYAJL_GEN
 static const char *yajl_gen_status_to_string(yajl_gen_status s)
 {
         switch (s) {
@@ -1185,7 +1442,43 @@ static const char *yajl_gen_status_to_string(yajl_gen_status s)
             return "unknown error";
         }
 }
+#endif
 
+#ifdef USE_LIBJSONC_GEN
+char *libxl__object_to_json(libxl_ctx *ctx, const char *type,
+                            libxl__gen_json_callback gen, void *p)
+{
+    const char *buf;
+    char *ret = NULL;
+    json_object *jso = NULL;
+    int rc;
+
+    rc = gen(&jso, p);
+    if (rc)
+        goto out;
+
+    buf = json_object_to_json_string_ext(jso, JSON_C_TO_STRING_PRETTY);
+    if (!buf)
+        goto out;
+    ret = strdup((const char *)buf);
+
+out:
+    json_object_put(jso);
+
+    if (rc) {
+        LIBXL__LOG(ctx, LIBXL__LOG_ERROR,
+                   "unable to convert %s to JSON representation. ",
+                   type);
+    } else if (!ret) {
+        LIBXL__LOG(ctx, LIBXL__LOG_ERROR,
+                   "unable to allocate space for to JSON representation of %s",
+                   type);
+    }
+
+    return ret;
+}
+
+#elif defined(USE_LIBYAJL_GEN)
 char *libxl__object_to_json(libxl_ctx *ctx, const char *type,
                             libxl__gen_json_callback gen, void *p)
 {
@@ -1224,6 +1517,7 @@ char *libxl__object_to_json(libxl_ctx *ctx, const char *type,
 
     return ret;
 }
+#endif
 
 char *libxl__json_object_to_json(libxl__gc *gc,
                                  const libxl__json_object *args)
@@ -1257,6 +1551,17 @@ char *libxl__json_object_to_json(libxl__gc *gc,
     return ret;
 }
 
+#ifdef HAVE_LIBJSONC
+int libxl__uint64_gen_jso(json_object **jso_r, uint64_t val)
+{
+    *jso_r = json_object_new_uint64(val);
+    if (!*jso_r)
+        return ERROR_FAIL;
+    return 0;
+}
+#endif
+
+#ifdef HAVE_LIBYAJL
 yajl_gen_status libxl__uint64_gen_json(yajl_gen hand, uint64_t val)
 {
     char *num;
@@ -1277,6 +1582,7 @@ yajl_gen_status libxl__uint64_gen_json(yajl_gen hand, uint64_t val)
 out:
     return s;
 }
+#endif
 
 int libxl__object_from_json(libxl_ctx *ctx, const char *type,
                             libxl__json_parse_callback parse,
@@ -1308,6 +1614,16 @@ int libxl__object_from_json(libxl_ctx *ctx, const char *type,
     return rc;
 }
 
+#ifdef HAVE_LIBJSONC
+int libxl__int_gen_jso(json_object **jso_r, int i)
+{
+    *jso_r = json_object_new_int(i);
+    if (!*jso_r)
+        return ERROR_FAIL;
+    return 0;
+}
+#endif
+
 int libxl__int_parse_json(libxl__gc *gc, const libxl__json_object *o,
                           void *p)
 {
diff --git a/tools/libs/light/libxl_types.idl b/tools/libs/light/libxl_types.idl
index a6030a2dbd..caeddbcdc0 100644
--- a/tools/libs/light/libxl_types.idl
+++ b/tools/libs/light/libxl_types.idl
@@ -7,9 +7,9 @@ namespace("libxl_")
 
 libxl_defbool = Builtin("defbool", json_parse_type="JSON_STRING", passby=PASS_BY_REFERENCE, copy_fn=None,
                         check_default_fn="libxl__defbool_is_default")
-libxl_domid = Builtin("domid", json_gen_fn = "yajl_gen_integer", json_parse_fn = "libxl__uint32_parse_json",
+libxl_domid = Builtin("domid", json_gen_fn = "yajl_gen_integer", jsonc_json_gen_fn = "libxl__uint64_gen_jso", json_parse_fn = "libxl__uint32_parse_json",
                       json_parse_type = "JSON_INTEGER", autogenerate_json = False, copy_fn=None)
-libxl_devid = Builtin("devid", json_gen_fn = "yajl_gen_integer", json_parse_fn = "libxl__int_parse_json",
+libxl_devid = Builtin("devid", json_gen_fn = "yajl_gen_integer", jsonc_json_gen_fn = "libxl__int_gen_jso", json_parse_fn = "libxl__int_parse_json",
                       json_parse_type = "JSON_INTEGER", autogenerate_json = False, signed = True, init_val="-1",
                       copy_fn=None)
 libxl_uuid = Builtin("uuid", json_parse_type="JSON_STRING", passby=PASS_BY_REFERENCE, check_default_fn="libxl_uuid_is_nil",
@@ -37,7 +37,8 @@ libxl_ms_vm_genid = Builtin("ms_vm_genid", passby=PASS_BY_REFERENCE, check_defau
 # Specific integer types
 #
 
-MemKB = UInt(64, init_val = "LIBXL_MEMKB_DEFAULT", json_gen_fn = "libxl__uint64_gen_json")
+MemKB = UInt(64, init_val = "LIBXL_MEMKB_DEFAULT",
+             json_gen_fn = "libxl__uint64_gen_json", jsonc_json_gen_fn = "libxl__uint64_gen_jso")
 
 #
 # Constants / Enumerations
diff --git a/tools/libs/light/libxl_types_internal.idl b/tools/libs/light/libxl_types_internal.idl
index 0425e9b6b0..ab4ee92870 100644
--- a/tools/libs/light/libxl_types_internal.idl
+++ b/tools/libs/light/libxl_types_internal.idl
@@ -1,7 +1,8 @@
 namespace("libxl__")
 hidden(True)
 
-libxl_domid = Builtin("domid", namespace="libxl_", json_gen_fn = "yajl_gen_integer",
+libxl_domid = Builtin("domid", namespace="libxl_",
+                      json_gen_fn = "yajl_gen_integer", jsonc_json_gen_fn = "libxl__uint64_gen_jso",
 		      json_parse_fn = "libxl__uint32_parse_json", json_parse_type = "JSON_INTEGER",
 		      autogenerate_json = False, copy_fn = None)
 
diff --git a/tools/xl/xl_info.c b/tools/xl/xl_info.c
index 3fbc0698b7..18cfd3c217 100644
--- a/tools/xl/xl_info.c
+++ b/tools/xl/xl_info.c
@@ -60,6 +60,48 @@ static int maybe_printf(const char *fmt, ...)
     return count;
 }
 
+
+#ifdef HAVE_LIBJSONC
+static int printf_info_one_json(json_object **jso_r, int domid,
+                                libxl_domain_config *d_config)
+{
+    json_object *jso = NULL;
+    json_object *jso_config = NULL;
+    enum json_tokener_error error;
+    char *s = NULL;
+    int r = EXIT_FAILURE;
+
+    s = libxl_domain_config_to_json(ctx, d_config);
+    jso_config = json_tokener_parse_verbose(s, &error);
+    if (!jso_config) {
+        fprintf(stderr, "fail to parse JSON from libxl_domain_config_to_json(): %s\n",
+                json_tokener_error_desc(error));
+        goto out;
+    }
+
+    jso = json_object_new_object();
+    if (domid != -1)
+        json_object_object_add(jso, "domid", json_object_new_int(domid));
+    else
+        json_object_object_add(jso, "domid", json_object_new_null());
+
+
+    json_object_object_add(jso, "config", jso_config);
+    jso_config = NULL;
+
+    *jso_r = jso;
+    jso = NULL;
+    r = EXIT_SUCCESS;
+
+out:
+    free(s);
+    json_object_put(jso);
+    json_object_put(jso_config);
+    return r;
+}
+
+#elif defined(HAVE_LIBYAJL)
+
 static yajl_gen_status printf_info_one_json(yajl_gen hand, int domid,
                                             libxl_domain_config *d_config)
 {
@@ -95,6 +137,7 @@ static yajl_gen_status printf_info_one_json(yajl_gen hand, int domid,
 out:
     return s;
 }
+#endif
 
 void printf_info(enum output_format output_format,
                  int domid,
@@ -103,6 +146,27 @@ void printf_info(enum output_format output_format,
     if (output_format == OUTPUT_FORMAT_SXP)
         return printf_info_sexp(domid, d_config, fh);
 
+#ifdef HAVE_LIBJSONC
+    int r;
+    const char *buf;
+    json_object *jso;
+
+    r = printf_info_one_json(&jso, domid, d_config);
+    if (r)
+        goto out;
+
+    buf = json_object_to_json_string_ext(jso, JSON_C_TO_STRING_PRETTY);
+    if (!buf)
+        goto out;
+
+    fputs(buf, fh);
+
+out:
+    json_object_put(jso);
+    flush_stream(fh);
+    return;
+
+#elif defined(HAVE_LIBYAJL)
     const char *buf;
     libxl_yajl_length len = 0;
     yajl_gen_status s;
@@ -132,6 +196,7 @@ void printf_info(enum output_format output_format,
                 "unable to format domain config as JSON (YAJL:%d)\n", s);
 
     flush_stream(fh);
+#endif
 }
 
 static void output_xeninfo(void)
@@ -475,11 +540,20 @@ static void list_domains_details(const libxl_dominfo *info, int nb_domain)
 
     int i, rc;
 
+    const char *buf;
+#ifdef HAVE_LIBJSONC
+    json_object *jso = NULL;
+#elif defined(HAVE_LIBYAJL)
     yajl_gen hand = NULL;
     yajl_gen_status s;
-    const char *buf;
     libxl_yajl_length yajl_len = 0;
+#endif
 
+#ifdef HAVE_LIBJSONC
+    if (default_output_format == OUTPUT_FORMAT_JSON) {
+        jso = json_object_new_array();
+    }
+#elif defined(HAVE_LIBYAJL)
     if (default_output_format == OUTPUT_FORMAT_JSON) {
         hand = libxl_yajl_gen_alloc(NULL);
         if (!hand) {
@@ -492,6 +566,7 @@ static void list_domains_details(const libxl_dominfo *info, int nb_domain)
             goto out;
     } else
         s = yajl_gen_status_ok;
+#endif
 
     for (i = 0; i < nb_domain; i++) {
         libxl_domain_config_init(&d_config);
@@ -499,16 +574,32 @@ static void list_domains_details(const libxl_dominfo *info, int nb_domain)
                                                  &d_config, NULL);
         if (rc)
             continue;
-        if (default_output_format == OUTPUT_FORMAT_JSON)
+        if (default_output_format == OUTPUT_FORMAT_JSON) {
+#ifdef HAVE_LIBJSONC
+            json_object *jso_value;
+            rc = printf_info_one_json(&jso_value, info[i].domid, &d_config);
+            json_object_array_add(jso, jso_value);
+#elif defined(HAVE_LIBYAJL)
             s = printf_info_one_json(hand, info[i].domid, &d_config);
-        else
+#endif
+        } else
             printf_info_sexp(info[i].domid, &d_config, stdout);
         libxl_domain_config_dispose(&d_config);
+#ifdef HAVE_LIBJSONC
+        if (rc)
+            goto out;
+#elif defined(HAVE_LIBYAJL)
         if (s != yajl_gen_status_ok)
             goto out;
+#endif
     }
 
     if (default_output_format == OUTPUT_FORMAT_JSON) {
+#ifdef HAVE_LIBJSONC
+        buf = json_object_to_json_string_ext(jso, JSON_C_TO_STRING_PRETTY);
+        if (!buf)
+            goto out;
+#elif defined(HAVE_LIBYAJL)
         s = yajl_gen_array_close(hand);
         if (s != yajl_gen_status_ok)
             goto out;
@@ -516,16 +607,21 @@ static void list_domains_details(const libxl_dominfo *info, int nb_domain)
         s = yajl_gen_get_buf(hand, (const unsigned char **)&buf, &yajl_len);
         if (s != yajl_gen_status_ok)
             goto out;
+#endif
 
         puts(buf);
     }
 
 out:
     if (default_output_format == OUTPUT_FORMAT_JSON) {
+#ifdef HAVE_LIBJSONC
+        json_object_put(jso);
+#elif defined(HAVE_LIBYAJL)
         yajl_gen_free(hand);
         if (s != yajl_gen_status_ok)
             fprintf(stderr,
                     "unable to format domain config as JSON (YAJL:%d)\n", s);
+#endif
     }
 }
 
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 14:56:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 14:56:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074665.1437173 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukOVu-0000X6-8c; Fri, 08 Aug 2025 14:56:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074665.1437173; Fri, 08 Aug 2025 14:56: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 1ukOVu-0000Wz-4u; Fri, 08 Aug 2025 14:56:10 +0000
Received: by outflank-mailman (input) for mailman id 1074665;
 Fri, 08 Aug 2025 14:56:08 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1ukOVs-0008JK-GM
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 14:56:08 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1ukOVs-007zrL-0o;
 Fri, 08 Aug 2025 14:56:08 +0000
Received: from [2a01:e0a:1da:8420:b77:bd5:6e45:7633] (helo=l14..)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1ukOVr-009BYT-38;
 Fri, 08 Aug 2025 14:56: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:
	References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From;
	bh=CCPKtC0shQwlH1BCzBftuuKxzSUgHWgFXX9AJ0JhOKY=; b=i8CX6XAz3rZHc+IEL4zubcuVDm
	KlQMZusduGAEouJznIY0K//WwqePAsfA39EaQm+L6DXMf7jgI/bzqwu6IZmwGNqmVQkv3kNNnAgMN
	CfKdAPI69q+A833Lx2OOWwCJsmiLg7AAjPgp9ISCa6lokj8kTx7u9HiEo5WTgq1jpvuI=;
From: Anthony PERARD <anthony@xenproject.org>
To: xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [XEN PATCH 03/11] libxl: remove duplicated libxl__yajl_gen_asciiz() prototype
Date: Fri,  8 Aug 2025 16:55:54 +0200
Message-Id: <20250808145602.41716-4-anthony@xenproject.org>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250808145602.41716-1-anthony@xenproject.org>
References: <20250808145602.41716-1-anthony@xenproject.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Anthony PERARD <anthony.perard@vates.tech>

Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>
---
 tools/libs/light/libxl_internal.h | 2 --
 1 file changed, 2 deletions(-)

diff --git a/tools/libs/light/libxl_internal.h b/tools/libs/light/libxl_internal.h
index 2a5b233caa..4b6587a27a 100644
--- a/tools/libs/light/libxl_internal.h
+++ b/tools/libs/light/libxl_internal.h
@@ -1993,8 +1993,6 @@ _hidden char *libxl__cpupoolid_to_name(libxl__gc *gc, uint32_t poolid);
 _hidden int libxl__enum_from_string(const libxl_enum_string_table *t,
                                     const char *s, int *e) NN(2);
 
-_hidden yajl_gen_status libxl__yajl_gen_asciiz(yajl_gen hand, const char *str);
-
 _hidden yajl_gen_status libxl__string_gen_json(yajl_gen hand, const char *p);
 
 typedef yajl_gen_status (*libxl__gen_json_callback)(yajl_gen hand, void *);
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 14:56:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 14:56:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074671.1437225 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukOVz-0001jP-39; Fri, 08 Aug 2025 14:56:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074671.1437225; Fri, 08 Aug 2025 14:56: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 1ukOVy-0001ht-Sf; Fri, 08 Aug 2025 14:56:14 +0000
Received: by outflank-mailman (input) for mailman id 1074671;
 Fri, 08 Aug 2025 14:56:13 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1ukOVx-0001QK-J2
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 14:56:13 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1ukOVx-007zrz-1I;
 Fri, 08 Aug 2025 14:56:13 +0000
Received: from [2a01:e0a:1da:8420:b77:bd5:6e45:7633] (helo=l14..)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1ukOVx-009BYT-0R;
 Fri, 08 Aug 2025 14:56: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:
	References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From;
	bh=f3B1XR/rJqzESb9x9Ihv7VOZk7psRW9ng9FNM3jhUwY=; b=BGYlQfWXBzDQz4BrtRW8Dn5nPG
	2R5//+BgDe8stX3MZHkI252eE/IYblCZ82+rLY4026MIwGysx1pi/9GwXBVduF+sTJsZR8qcqVgZf
	+pAWRePIk6SKUGCSqn2zFEPuC7rsnVY/+adAIRfFi7oquHuSY7cgrWsM/lVlgu+Aun2c=;
From: Anthony PERARD <anthony@xenproject.org>
To: xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [XEN PATCH 09/11] tools/libxenstat: Use json-c when available
Date: Fri,  8 Aug 2025 16:56:00 +0200
Message-Id: <20250808145602.41716-10-anthony@xenproject.org>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250808145602.41716-1-anthony@xenproject.org>
References: <20250808145602.41716-1-anthony@xenproject.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Anthony PERARD <anthony.perard@vates.tech>

This is mainly a copy of the existing code in yajl and use json-c
instead.

Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>
---
 tools/libs/stat/Makefile      |   3 +-
 tools/libs/stat/xenstat_qmp.c | 126 ++++++++++++++++++++++++++++++++--
 2 files changed, 121 insertions(+), 8 deletions(-)

diff --git a/tools/libs/stat/Makefile b/tools/libs/stat/Makefile
index a968eaff48..3f13cf07be 100644
--- a/tools/libs/stat/Makefile
+++ b/tools/libs/stat/Makefile
@@ -24,7 +24,8 @@ OBJS-$(CONFIG_SunOS) += xenstat_solaris.o
 OBJS-$(CONFIG_NetBSD) += xenstat_netbsd.o
 OBJS-$(CONFIG_FreeBSD) += xenstat_freebsd.o
 
-LDLIBS-y += -lyajl
+LDLIBS-y += $(YAJL_LIBS)
+LDLIBS-y += $(LIBJSONC_LIBS)
 LDLIBS-$(CONFIG_SunOS) += -lkstat
 LDLIBS += $(LDLIBS-y)
 
diff --git a/tools/libs/stat/xenstat_qmp.c b/tools/libs/stat/xenstat_qmp.c
index 9909b9727e..21e321fffa 100644
--- a/tools/libs/stat/xenstat_qmp.c
+++ b/tools/libs/stat/xenstat_qmp.c
@@ -24,6 +24,10 @@
 
 #include "xenstat_priv.h"
 
+#ifdef HAVE_LIBJSONC
+#include <json-c/json.h>
+
+#elif defined(HAVE_LIBYAJL)
 #ifdef HAVE_YAJL_YAJL_VERSION_H
 #  include <yajl/yajl_version.h>
 #endif
@@ -32,11 +36,13 @@
 #if defined(YAJL_MAJOR) && (YAJL_MAJOR > 1)
 #  define HAVE_YAJL_V2 1
 #endif
+#endif
 
 #ifdef HAVE_YAJL_V2
-
 #include <yajl/yajl_tree.h>
+#endif
 
+#if defined(HAVE_LIBJSONC) || defined(HAVE_YAJL_V2)
 static unsigned char *qmp_query(int, const char *);
 
 enum query_blockstats {
@@ -76,9 +82,10 @@ enum query_block {
             "type": 'str'
           }]}
 */
-static char *qmp_get_block_image(xenstat_node *node, char *qmp_devname, int qfd)
+static char *qmp_get_block_image(xenstat_node *node, const char *qmp_devname, int qfd)
 {
-	char *tmp, *file = NULL;
+	const char *tmp;
+	char *file = NULL;
 	const char *query_block_cmd = "{ \"execute\": \"query-block\" }";
 	static const char *const qblock[] = {
 		[ QMP_BLOCK_RETURN  ] = "return",
@@ -88,13 +95,56 @@ static char *qmp_get_block_image(xenstat_node *node, char *qmp_devname, int qfd)
 	};
 	const char *ptr[] = {0, 0};
 	unsigned char *qmp_stats;
-	yajl_val info, ret_obj, dev_obj, n;
 	int i;
 
 	if ((qmp_stats = qmp_query(qfd, query_block_cmd)) == NULL)
 		return NULL;
 
+#ifdef HAVE_LIBJSONC
+	json_object *jso;
+	enum json_tokener_error error;
+	jso = json_tokener_parse_verbose((const char *)qmp_stats, &error);
+	free(qmp_stats);
+	if (jso == NULL)
+		return NULL;
+
+	ptr[0] = qblock[QMP_BLOCK_RETURN]; /* "return" */
+	json_object *ret_jso = json_object_object_get(jso, ptr[0]);
+	if (ret_jso == NULL)
+		goto done;
+
+	for (i=0; i<json_object_array_length(ret_jso); i++) {
+		json_object *n = json_object_array_get_idx(ret_jso, i);
+
+		ptr[0] = qblock[QMP_BLOCK_DEVICE]; /* "device" */
+		json_object *dev_jso = json_object_object_get(n, ptr[0]);
+		if (dev_jso) {
+			tmp = json_object_get_string(dev_jso);
+			if (!tmp || strcmp(qmp_devname, tmp))
+				continue;
+		} else {
+			continue;
+		}
+
+		ptr[0] = qblock[QMP_INSERTED]; /* "inserted" */
+		n = json_object_object_get(n, ptr[0]);
+		if (n) {
+			ptr[0] = qblock[QMP_FILE]; /* "file" */
+			n = json_object_object_get(n, ptr[0]);
+			if (n && json_object_is_type(n, json_type_string)) {
+				tmp = json_object_get_string(n);
+				file = malloc(strlen(tmp)+1);
+				if (file != NULL)
+					strcpy(file, tmp);
+				goto done;
+			}
+		}
+	}
+done:
+	json_object_put(jso);
+#elif defined(HAVE_LIBYAJL)
 	/* Use libyajl version 2.0.3 or newer for the tree parser feature with bug fixes */
+	yajl_val info, ret_obj, dev_obj, n;
 	info = yajl_tree_parse((char *)qmp_stats, NULL, 0);
 	free(qmp_stats);
 	if (info == NULL)
@@ -132,12 +182,13 @@ static char *qmp_get_block_image(xenstat_node *node, char *qmp_devname, int qfd)
 	}
 done:
 	yajl_tree_free(info);
+#endif
 	return file;
 }
 
 
 /* Given a QMP device name, lookup the associated xenstore qdisk device id */
-static void lookup_xenstore_devid(xenstat_node * node, unsigned int domid, char *qmp_devname,
+static void lookup_xenstore_devid(xenstat_node * node, unsigned int domid, const char *qmp_devname,
 	int qfd, unsigned int *dev, unsigned int *sector_size)
 {
 	char **dev_ids, *tmp, *ptr, *image, path[80];
@@ -191,7 +242,7 @@ static void lookup_xenstore_devid(xenstat_node * node, unsigned int domid, char
 /* Parse the stats buffer which contains I/O data for all the disks belonging to domid */
 static void qmp_parse_stats(xenstat_node *node, unsigned int domid, unsigned char *stats_buf, int qfd)
 {
-	char *qmp_devname;
+	const char *qmp_devname;
 	static const char *const qstats[] = {
 		[ QMP_STATS_RETURN  ] = "return",
 		[ QMP_STATS_DEVICE  ] = "device",
@@ -202,12 +253,72 @@ static void qmp_parse_stats(xenstat_node *node, unsigned int domid, unsigned cha
 		[ QMP_WR_OPERATIONS ] = "wr_operations",
 	};
 	const char *ptr[] = {0, 0};
-	yajl_val info, ret_obj, stats_obj, n;
 	xenstat_vbd vbd;
 	xenstat_domain *domain;
 	unsigned int sector_size = 512;
 	int i, j;
 
+#ifdef HAVE_LIBJSONC
+	json_object *jso, *ret_jso, *stats_obj, *n;
+	enum json_tokener_error error;
+
+	jso = json_tokener_parse_verbose((const char *)stats_buf, &error);
+	if (jso == NULL)
+		return;
+
+	ptr[0] = qstats[QMP_STATS_RETURN]; /* "return" */
+	ret_jso = json_object_object_get(jso, ptr[0]);
+	if (ret_jso == NULL)
+		goto done;
+
+	/* Array of devices */
+	for (i=0; i<json_object_array_length(ret_jso); i++) {
+		memset(&vbd, 0, sizeof(xenstat_vbd));
+		qmp_devname = NULL;
+		stats_obj = json_object_array_get_idx(ret_jso, i);
+
+		ptr[0] = qstats[QMP_STATS_DEVICE]; /* "device" */
+		n = json_object_object_get(stats_obj, ptr[0]);
+		if (n)
+			qmp_devname = json_object_get_string(n);
+
+		ptr[0] = qstats[QMP_STATS]; /* "stats" */
+		stats_obj = json_object_object_get(stats_obj, ptr[0]);
+		if (stats_obj && json_object_is_type(stats_obj, json_type_object)) {
+			for (j=3; j<7; j++) {
+				ptr[0] = qstats[j];
+				n = json_object_object_get(stats_obj, ptr[0]);
+				if (n && json_object_is_type(n, json_type_int)) {
+					switch(j) {
+					case QMP_RD_BYTES: /* "rd_bytes" */
+						vbd.rd_sects = json_object_get_int64(n) / sector_size;
+						break;
+					case QMP_WR_BYTES: /* "wr_bytes" */
+						vbd.wr_sects = json_object_get_int64(n) / sector_size;
+						break;
+					case QMP_RD_OPERATIONS: /* "rd_operations" */
+						vbd.rd_reqs = json_object_get_int64(n);
+						break;
+					case QMP_WR_OPERATIONS: /* "wr_operations" */
+						vbd.wr_reqs = json_object_get_int64(n);
+						break;
+					}
+				}
+			}
+			/* With the QMP device name, lookup the xenstore qdisk device ID and set vdb.dev */
+			if (qmp_devname)
+				lookup_xenstore_devid(node, domid, qmp_devname, qfd, &vbd.dev, &sector_size);
+			if ((domain = xenstat_node_domain(node, domid)) == NULL)
+				continue;
+			if ((xenstat_save_vbd(domain, &vbd)) == NULL)
+				goto done;
+		}
+	}
+done:
+	json_object_put(jso);
+#elif defined(HAVE_LIBYAJL)
+	yajl_val info, ret_obj, stats_obj, n;
+
 	/* Use libyajl version 2.0.3 or newer for the tree parser feature */
 	if ((info = yajl_tree_parse((char *)stats_buf, NULL, 0)) == NULL)
 		return;
@@ -260,6 +371,7 @@ static void qmp_parse_stats(xenstat_node *node, unsigned int domid, unsigned cha
 	}
 done:
 	yajl_tree_free(info);
+#endif
 }
 
 /* Write a command via the QMP. Returns number of bytes written */
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 14:56:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 14:56:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074670.1437220 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukOVy-0001eG-LS; Fri, 08 Aug 2025 14:56:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074670.1437220; Fri, 08 Aug 2025 14:56:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukOVy-0001c8-FX; Fri, 08 Aug 2025 14:56:14 +0000
Received: by outflank-mailman (input) for mailman id 1074670;
 Fri, 08 Aug 2025 14:56:12 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1ukOVw-0001BL-Oz
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 14:56:12 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1ukOVw-007zrt-1n;
 Fri, 08 Aug 2025 14:56:12 +0000
Received: from [2a01:e0a:1da:8420:b77:bd5:6e45:7633] (helo=l14..)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1ukOVw-009BYT-0y;
 Fri, 08 Aug 2025 14:56: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:
	References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From;
	bh=ifWlGzTUU1FY9skxB0Gurmq9TF1yYQXRL2ntyqKDdmw=; b=u2zzoRO9ZvKkaKuhjxRpPiqHHX
	sU0CZMwSW8rP2QH7c/CKzAXK1kBOJMeIxKR/qKgpk5JpXkTffqdbWwG8BMoHFFN05NjhDEebiFauy
	nNZTRzGMToOHOgHPMVImCHOo46WEujyVqbjI5pDAT3NJs+dfmRSKqk/pziB53sSh1H+4=;
From: Anthony PERARD <anthony@xenproject.org>
To: xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [XEN PATCH 08/11] libxl: convert libxl__json_object_to_json() to json_object
Date: Fri,  8 Aug 2025 16:55:59 +0200
Message-Id: <20250808145602.41716-9-anthony@xenproject.org>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250808145602.41716-1-anthony@xenproject.org>
References: <20250808145602.41716-1-anthony@xenproject.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Anthony PERARD <anthony.perard@vates.tech>

But keep the implementation done for YAJL.

Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>
---
 tools/libs/light/libxl_json.c | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/tools/libs/light/libxl_json.c b/tools/libs/light/libxl_json.c
index 01944ef94d..cffda158d2 100644
--- a/tools/libs/light/libxl_json.c
+++ b/tools/libs/light/libxl_json.c
@@ -104,10 +104,12 @@ typedef struct libxl__yajl_ctx {
  * YAJL Helper
  */
 
+#ifdef HAVE_LIBYAJL
 yajl_gen_status libxl__yajl_gen_asciiz(yajl_gen hand, const char *str)
 {
     return yajl_gen_string(hand, (const unsigned char *)str, strlen(str));
 }
+#endif
 
 #ifdef HAVE_LIBJSONC
 int libxl__enum_gen_jso(json_object **jso_r, const char *str)
@@ -1522,6 +1524,29 @@ char *libxl__object_to_json(libxl_ctx *ctx, const char *type,
 char *libxl__json_object_to_json(libxl__gc *gc,
                                  const libxl__json_object *args)
 {
+#ifdef HAVE_LIBJSONC
+    const char *buf;
+    json_object *root;
+    char *ret = NULL;
+    int rc;
+
+    if (!args)
+        return NULL;
+
+    rc = libxl__json_object_to_json_object(gc, &root, args);
+    if (rc)
+        goto out;
+
+    buf = json_object_to_json_string_ext(root, JSON_C_TO_STRING_PRETTY);
+    if (!buf)
+        goto out;
+
+    ret = libxl__strdup(gc, buf);
+
+out:
+    json_object_put(root);
+    return ret;
+#elif defined(HAVE_LIBYAJL)
     const unsigned char *buf;
     libxl_yajl_length len;
     yajl_gen_status s;
@@ -1549,6 +1574,7 @@ char *libxl__json_object_to_json(libxl__gc *gc,
 out:
     yajl_gen_free(hand);
     return ret;
+#endif
 }
 
 #ifdef HAVE_LIBJSONC
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 14:56:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 14:56:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074664.1437153 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukOVt-0008Qj-0z; Fri, 08 Aug 2025 14:56:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074664.1437153; Fri, 08 Aug 2025 14:56:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukOVs-0008PH-Sq; Fri, 08 Aug 2025 14:56:08 +0000
Received: by outflank-mailman (input) for mailman id 1074664;
 Fri, 08 Aug 2025 14:56:07 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1ukOVr-0008J1-Ka
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 14:56:07 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1ukOVr-007zrE-1I;
 Fri, 08 Aug 2025 14:56:07 +0000
Received: from [2a01:e0a:1da:8420:b77:bd5:6e45:7633] (helo=l14..)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1ukOVr-009BYT-0R;
 Fri, 08 Aug 2025 14:56: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:
	References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From;
	bh=k+bhmnBEE95exmmfH0gnf9+dEFpUHSD0leW6AxF9H9o=; b=K/G9SAdrcZ6aFpedRTh0sPWLD3
	dn5YzTV26u8XzxR23nEvgofIeasByb9DlHcGRYPBKm72LHTQqyw3b2zJGDa1ESbDn54UdK+ABJK4q
	T5EqYyUD0LNXtxpW0Xwc/lsIjJi0AEI4vkDqEBg2z86HtPl8yQl6wXtKfJ0j85P0JAao=;
From: Anthony PERARD <anthony@xenproject.org>
To: xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [XEN PATCH 02/11] libxl: Remove duplicate libxl_domain_config_gen_json prototype
Date: Fri,  8 Aug 2025 16:55:53 +0200
Message-Id: <20250808145602.41716-3-anthony@xenproject.org>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250808145602.41716-1-anthony@xenproject.org>
References: <20250808145602.41716-1-anthony@xenproject.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Anthony PERARD <anthony.perard@vates.tech>

Since f9e681d3d1b8, the prototype of libxl_domain_config_gen_json is
generated from IDL in _libxl_types_json.h.

Fixes: f9e681d3d1b8 ("libxl: move definition of libxl_domain_config into the IDL")
Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>
---
 tools/include/libxl_json.h | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/tools/include/libxl_json.h b/tools/include/libxl_json.h
index 260783bfde..3f97267eae 100644
--- a/tools/include/libxl_json.h
+++ b/tools/include/libxl_json.h
@@ -90,7 +90,4 @@ static inline yajl_gen libxl_yajl_gen_alloc(const yajl_alloc_funcs *allocFuncs)
 
 #endif /* !HAVE_YAJL_V2 */
 
-yajl_gen_status libxl_domain_config_gen_json(yajl_gen hand,
-                                             libxl_domain_config *p);
-
 #endif /* LIBXL_JSON_H */
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 15:00:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 15:00:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074700.1437242 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukOaG-00065L-Pd; Fri, 08 Aug 2025 15:00:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074700.1437242; Fri, 08 Aug 2025 15: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 1ukOaG-00065E-N5; Fri, 08 Aug 2025 15:00:40 +0000
Received: by outflank-mailman (input) for mailman id 1074700;
 Fri, 08 Aug 2025 15:00:40 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1ukOaG-00064e-8n
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 15:00:40 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1ukOaG-00800R-0c;
 Fri, 08 Aug 2025 15:00:40 +0000
Received: from [2a01:e0a:1da:8420:b77:bd5:6e45:7633] (helo=l14..)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1ukOVx-009BYT-2n;
 Fri, 08 Aug 2025 14: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:
	References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From;
	bh=9LmUJ4zuB4olL3YoOObx5zrJYD33c+ZXbGLTgVb/atI=; b=4l+P6WMM1+cZLcw5pbkvqZMpgi
	d/gUyDA88izucPA6REXG8q0Zwv4vJmYH1xyHevK2wDhjM+zmqukNG504BRDEuwSspYKR6mBORIGyx
	KKQKechLTjeE9NnIw5fvpu/NSSgRrQWF4d2cGu8VdYs8x9DCALPV4QV99dgKdQY8x1Ws=;
From: Anthony PERARD <anthony@xenproject.org>
To: xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>
Subject: [XEN PATCH 10/11] configure: Use json-c by default, fallback to yajl
Date: Fri,  8 Aug 2025 16:56:01 +0200
Message-Id: <20250808145602.41716-11-anthony@xenproject.org>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250808145602.41716-1-anthony@xenproject.org>
References: <20250808145602.41716-1-anthony@xenproject.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Anthony PERARD <anthony.perard@vates.tech>

Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>
---
 tools/configure    | 97 +++++++++++++++++++++++++++++-----------------
 tools/configure.ac | 12 +++---
 2 files changed, 69 insertions(+), 40 deletions(-)

diff --git a/tools/configure b/tools/configure
index edd1701b2d..0eb7a0ab6a 100755
--- a/tools/configure
+++ b/tools/configure
@@ -9692,41 +9692,7 @@ fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$libjsonc_PKG_ERRORS" >&5
 
-	as_fn_error $? "Package requirements (json-c) were not met:
-
-$libjsonc_PKG_ERRORS
-
-Consider adjusting the PKG_CONFIG_PATH environment variable if you
-installed software in a non-standard prefix.
-
-Alternatively, you may set the environment variables libjsonc_CFLAGS
-and libjsonc_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details." "$LINENO" 5
-elif test $pkg_failed = untried; then
-     	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-	{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
-is in your PATH or set the PKG_CONFIG environment variable to the full
-path to pkg-config.
-
-Alternatively, you may set the environment variables libjsonc_CFLAGS
-and libjsonc_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-
-To get pkg-config, see <http://pkg-config.freedesktop.org/>.
-See \`config.log' for more details" "$LINENO" 5; }
-else
-	libjsonc_CFLAGS=$pkg_cv_libjsonc_CFLAGS
-	libjsonc_LIBS=$pkg_cv_libjsonc_LIBS
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-
-printf "%s\n" "#define HAVE_LIBJSONC 1" >>confdefs.h
-
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for yajl_alloc in -lyajl" >&5
+	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for yajl_alloc in -lyajl" >&5
 printf %s "checking for yajl_alloc in -lyajl... " >&6; }
 if test ${ac_cv_lib_yajl_yajl_alloc+y}
 then :
@@ -9772,6 +9738,67 @@ else $as_nop
   as_fn_error $? "Could not find yajl" "$LINENO" 5
 fi
 
+
+elif test $pkg_failed = untried; then
+     	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for yajl_alloc in -lyajl" >&5
+printf %s "checking for yajl_alloc in -lyajl... " >&6; }
+if test ${ac_cv_lib_yajl_yajl_alloc+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lyajl  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+char yajl_alloc ();
+int
+main (void)
+{
+return yajl_alloc ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+  ac_cv_lib_yajl_yajl_alloc=yes
+else $as_nop
+  ac_cv_lib_yajl_yajl_alloc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_yajl_yajl_alloc" >&5
+printf "%s\n" "$ac_cv_lib_yajl_yajl_alloc" >&6; }
+if test "x$ac_cv_lib_yajl_yajl_alloc" = xyes
+then :
+  YAJL_LIBS=-lyajl
+
+
+printf "%s\n" "#define HAVE_LIBYAJL 1" >>confdefs.h
+
+else $as_nop
+  as_fn_error $? "Could not find yajl" "$LINENO" 5
+fi
+
+
+else
+	libjsonc_CFLAGS=$pkg_cv_libjsonc_CFLAGS
+	libjsonc_LIBS=$pkg_cv_libjsonc_LIBS
+        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+
+printf "%s\n" "#define HAVE_LIBJSONC 1" >>confdefs.h
+
+fi
+
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for deflateCopy in -lz" >&5
 printf %s "checking for deflateCopy in -lz... " >&6; }
 if test ${ac_cv_lib_z_deflateCopy+y}
diff --git a/tools/configure.ac b/tools/configure.ac
index bb40b5b3f0..7267d02a04 100644
--- a/tools/configure.ac
+++ b/tools/configure.ac
@@ -425,11 +425,13 @@ AC_SUBST([ZLIB_LIBS])
 AX_CHECK_EXTFS
 AX_CHECK_PTHREAD
 PKG_CHECK_MODULES([libjsonc], [json-c],
-    [AC_DEFINE([HAVE_LIBJSONC], [1], [Use library json-c])])
-AC_CHECK_LIB([yajl], [yajl_alloc],
-   [AC_SUBST([YAJL_LIBS],[-lyajl])
-    AC_DEFINE([HAVE_LIBYAJL],[1],[Define to 1 if you have the `yajl' library (-lyajl).])],
-    [AC_MSG_ERROR([Could not find yajl])])
+    [AC_DEFINE([HAVE_LIBJSONC], [1], [Use library json-c])],
+    [AC_CHECK_LIB([yajl], [yajl_alloc],
+        [AC_SUBST([YAJL_LIBS],[-lyajl])
+         AC_DEFINE([HAVE_LIBYAJL],[1],[Define to 1 if you have the `yajl' library (-lyajl).])],
+        [AC_MSG_ERROR([Could not find yajl])])
+])
+
 AC_CHECK_LIB([z], [deflateCopy], [], [AC_MSG_ERROR([Could not find zlib])])
 AC_CHECK_HEADER([argp.h], [
 AC_CHECK_LIB([argp], [argp_usage], [argp_ldflags="-largp"])
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 15:00:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 15:00:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074705.1437253 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukOaJ-0006L0-0u; Fri, 08 Aug 2025 15:00:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074705.1437253; Fri, 08 Aug 2025 15:00: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 1ukOaI-0006Kt-Ty; Fri, 08 Aug 2025 15:00:42 +0000
Received: by outflank-mailman (input) for mailman id 1074705;
 Fri, 08 Aug 2025 15:00:41 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1ukOaH-0006Ie-K5
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 15:00:41 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1ukOaG-00800T-0j;
 Fri, 08 Aug 2025 15:00:40 +0000
Received: from [2a01:e0a:1da:8420:b77:bd5:6e45:7633] (helo=l14..)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1ukOVz-009BYT-1b;
 Fri, 08 Aug 2025 14:56:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:
	References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From;
	bh=OI5YJNC114wPAaP6LK8uGuarwiAKbs2E8HSv0E4xKds=; b=6aVE2vFT0EtHMQZpcEjIyNDb+R
	O59epHd7LvO0+/TYMmLJVos4FH7fsfVTF2lCmrUI6LiFl/O1qqgMR9llBigfyQnJu6lY60dyvzPMz
	1d19COEExUGVbKuYkFGOfoIdYIe8D8SZM/RMksQM2F7k2XGxx/nnZxp9VIbCdKveVLRU=;
From: Anthony PERARD <anthony@xenproject.org>
To: xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Community Manager <community.manager@xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH 11/11] Update CHANGELOG and README with dependency on json-c
Date: Fri,  8 Aug 2025 16:56:02 +0200
Message-Id: <20250808145602.41716-12-anthony@xenproject.org>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250808145602.41716-1-anthony@xenproject.org>
References: <20250808145602.41716-1-anthony@xenproject.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Anthony PERARD <anthony.perard@vates.tech>

Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>
---
 CHANGELOG.md | 2 ++
 README       | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5f31ca08fe..83195e2dae 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,6 +11,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
    - For x86, GCC 5.1 and Binutils 2.25, or Clang/LLVM 11
    - For ARM32 and ARM64, GCC 5.1 and Binutils 2.25
  - Linux based device model stubdomains are now fully supported.
+ - New dependency on library json-c, the toolstack will prefer it to `YAJL`
+   when available.
 
  - On x86:
    - Restrict the cache flushing done as a result of guest physical memory map
diff --git a/README b/README
index 6ee58f7b35..9329f30e13 100644
--- a/README
+++ b/README
@@ -53,7 +53,7 @@ provided by your OS distributor:
     * Development install of Python 2.7 or later (e.g., python-dev)
     * Development install of curses (e.g., libncurses-dev)
     * Development install of uuid (e.g. uuid-dev)
-    * Development install of yajl (e.g. libyajl-dev)
+    * Development install of json-c (e.g. libjson-c-dev) or yajl (e.g. libyajl-dev)
     * Development install of libaio (e.g. libaio-dev) version 0.3.107 or
       greater.
     * Development install of GLib v2.0 (e.g. libglib2.0-dev)
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 15:14:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 15:14:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074779.1437271 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukOnG-0000jm-5J; Fri, 08 Aug 2025 15:14:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074779.1437271; Fri, 08 Aug 2025 15:14: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 1ukOnG-0000jf-2X; Fri, 08 Aug 2025 15:14:06 +0000
Received: by outflank-mailman (input) for mailman id 1074779;
 Fri, 08 Aug 2025 15:14:05 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Dtzj=2U=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ukOnF-0000j2-6K
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 15:14:05 +0000
Received: from mail-wm1-x343.google.com (mail-wm1-x343.google.com
 [2a00:1450:4864:20::343])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 51cdc808-746a-11f0-a324-13f23c93f187;
 Fri, 08 Aug 2025 17:14:03 +0200 (CEST)
Received: by mail-wm1-x343.google.com with SMTP id
 5b1f17b1804b1-459e794b331so14349095e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 08 Aug 2025 08:14:03 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459eec47306sm78552235e9.28.2025.08.08.08.14.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 08 Aug 2025 08:14: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>
X-Inumbo-ID: 51cdc808-746a-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754666043; x=1755270843; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=L6QeaRW+WIW5U2byUpDORJ/8NpY51iUgoECmJTNcRcs=;
        b=QTgoaDbfd/5UoRintq4ZafP/FENg7jE/qa3hNQ2wEjS7pox9BJa9J1mcC/R6MMM79o
         aS8eeo5zVBhUM6hrHIDPitQYdngnZ37Xuyuh8gCsos8JFnzgJCyT/DLCGK6D3BW623qm
         7E2WUUOp9khRqf5FeT96znIdrgbqL6bUitHKQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754666043; x=1755270843;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=L6QeaRW+WIW5U2byUpDORJ/8NpY51iUgoECmJTNcRcs=;
        b=f9StlNWE2ct9/bAacBwoGidoZQ6V77NZvuc2B4swxKo0vKWRJdb4bVyOJhfcW5Mrks
         vmZFQiAfkXIgwSLsBvXcToRLBg6r8w0aSmi1BeG43FkOdYIS1MoZMSW7uNXMwk7M1K9F
         AXJLkgk65/SSWZ6JULhUFVn7SrnTY8/xWJXQMqj8sya9hgVGOGYQzeDL7RfLvhhPt37o
         50XrFgFeJEoJlnnNIoRNMp0qzOiJYw4+UrAWw7pimK7zoF/F0Lw1XltF82TDg7X+sBmi
         CAfNR2fRTPF57QKI70IYRjQoJrKRoa28+yulGKgLQnd5c91StT6CCuqV+8AJpPzeFaji
         aLQw==
X-Forwarded-Encrypted: i=1; AJvYcCVL8/UmyDqAFni4Y1M79XqXytVd+idcydMnP+pGzsekTNfXzw7fjH3pzWOr8DISoR/jIZlqKIauJf0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxby+2zwbveZ68izC/n10s96UAzi8BAEQ1J4d7f+QoklCIqBr1z
	P8NYTXm6x/YiTw4kagUgqG3Qn+0+TRA6V2X4JmtmK40H91ci2FduNZrQrF5BJh5ugZw=
X-Gm-Gg: ASbGncsumEx+6WBgV3hlQztSlWK8Shi1qKQrz3dlrl0NW9rdJacyIR72tbzRk0M1Oy3
	QwZ8SZus724z0fkkaIVMEXh+JNQ/B4D6FFo5hRtwa8QQHyMiMnx+VnUqOYds4xJKLLF290rTRiY
	7bJV0akelXNZdzH2TtHz83602uiga0mM60U61zzCeL8iSWmOeZwp/E002/tpYDihWTvg0ycl9bv
	dsw55N6jYzaIXaHdCPK7ZHQnoXDtAj2ijfc/h3rnzuK8G0cQCGueXA9S3otO/+ovGMqd/4zl6pG
	CFEUWLczVAhmEESzWl3OrDKf8Ycjb8x4YcJW06Aw4RjauC854j9otwz7udu8sPOfeFtVKwP/uiY
	jJ2p/NX8qDw3d5rqMzrpKeSx7vHxR9w/8sXrkUohQeSrvyOIxAiK/gX9W1Y0L5xcx+DRd
X-Google-Smtp-Source: AGHT+IHkR7i1Y8Vb6ycDxVG5pZyajuq5FMH49c41KClaugjlQ4md+mMDjVq/Ksc64gieFgg/dvBMMg==
X-Received: by 2002:a05:600c:c493:b0:453:66f:b96e with SMTP id 5b1f17b1804b1-459faf4758bmr7614135e9.11.1754666043131;
        Fri, 08 Aug 2025 08:14:03 -0700 (PDT)
Message-ID: <d3b8235b-38db-4b7c-8bcf-be4122b07b3b@citrix.com>
Date: Fri, 8 Aug 2025 16:14:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 00/11] Allow to build libxl and other tools with
 json-c instead of yajl
To: Anthony PERARD <anthony@xenproject.org>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Jan Beulich <jbeulich@suse.com>,
 Community Manager <community.manager@xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Michal Orzel <michal.orzel@amd.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <20250808145602.41716-1-anthony@xenproject.org>
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: <20250808145602.41716-1-anthony@xenproject.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08/08/2025 3:55 pm, Anthony PERARD wrote:
> From: Anthony PERARD <anthony.perard@vates.tech>
>
> Patch series available in this git branch:
> https://xenbits.xenproject.org/git-http/people/aperard/xen-unstable.git br.libxl-libjsonc-v1
>
> Hi,
>
> The library YAJL has been unmaintained for several years, without an obvious
> fork to pick.
>
> On the other and the library json-c is been maintained and use by several other
> project, it's probably already installed on your machine. So this patch series
> intend to allow to build the Xen toolstack again json-c, and forgo yajl.
>
> Just in case, YAJL is can still be used.
>
> There's bit of libxl API that exposes YAJL, mainly so it can be used by `xl` to
> call libxl_domain_config_gen_json(). It was exposed via the "libxl_json.h"
> headers. This functions and others won't be available when libxl is build
> against json-c.
>
> Cheers,
>
> Anthony PERARD (11):
>   xl: move printf_info prototype to an header
>   libxl: Remove duplicate libxl_domain_config_gen_json prototype
>   libxl: remove duplicated libxl__yajl_gen_asciiz() prototype

First three, trivially Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

I'll look at the rest when I've got a bit more time.


From xen-devel-bounces@lists.xenproject.org Fri Aug 08 15:16:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 15:16:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074794.1437280 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukOpo-0001Lz-LM; Fri, 08 Aug 2025 15:16:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074794.1437280; Fri, 08 Aug 2025 15:16: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 1ukOpo-0001Ls-Ip; Fri, 08 Aug 2025 15:16:44 +0000
Received: by outflank-mailman (input) for mailman id 1074794;
 Fri, 08 Aug 2025 15:16:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Dtzj=2U=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ukOpn-0001Lm-FJ
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 15:16:43 +0000
Received: from mail-wr1-x441.google.com (mail-wr1-x441.google.com
 [2a00:1450:4864:20::441])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id adeeeab2-746a-11f0-b898-0df219b8e170;
 Fri, 08 Aug 2025 17:16:38 +0200 (CEST)
Received: by mail-wr1-x441.google.com with SMTP id
 ffacd0b85a97d-3b79bdc9a7dso1270924f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 08 Aug 2025 08:16:38 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3b8f8b1bc81sm8289222f8f.69.2025.08.08.08.16.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 08 Aug 2025 08:16: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>
X-Inumbo-ID: adeeeab2-746a-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754666198; x=1755270998; 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=UlCCSBOGyt/alOiIsi4ur2+ZRdDyb3EuCXPGeG4MBdE=;
        b=sbvnW7912X57iNvIsLo/LlXf4/v879MUbtn5321cvIsu8GhmAiA7tbpd/40M1XJDto
         zahPWmTxt4hUygpBRsqWfb4ULQ1ZAyTkkbrswBiCSnBk3tLd554AatBr3Bik98rN7Hxn
         cgP6JVIpWk9cfulVJeVmPWvUO6JNdQjBbTuPY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754666198; x=1755270998;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=UlCCSBOGyt/alOiIsi4ur2+ZRdDyb3EuCXPGeG4MBdE=;
        b=wYaEMW/zIHhbJd//tbzUE9qTsGmNg5F+/2NA09Rc7lNOjCgDVW7ZNdGiTA7Qxmb5n8
         Z/xOoF8ieA5Tff4ArsH1Dhiw/xv5Q1gguJvpkL53YcbTGj6GG917eZZi+2O14yUTjJVl
         XVpqO7cIvpl8jN7nayCpCVVqJY0Z4sb7Sl4IziyE2LnNjnwaxrBIsFFRGjTonKh3zdxc
         JxvN/BZm7BUnGBc/Qvp27tfqXsMdGGohwoxZh5Bhwul5pUn+cAZLHha2fEEwkkrBvhW+
         upxjYM/vz/ITZlwycbwScu7c5d2PeK4iEOIUzmjGL4CMCy+8mz/xaaI6NfEx58y8wCI1
         rMWw==
X-Forwarded-Encrypted: i=1; AJvYcCXFTfI1fmtSIuX7VXd6wbOUyIXDgojAuT62P/tMAockRmFM9gz11Qa1POUrXyxpKskSGZxl4ka39mo=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw5iIN7ZDEJTWXvfbJv47rByLwePRn6rnkCxxyvjHTvdVFmp53Q
	+TP9bAm3X4rdEZqZ7LJudjo4jrv+KF/d7aW9hbbHhZtFsw53F94hJdnAAF5Y6trT9qw=
X-Gm-Gg: ASbGncuYcyxEwdy5coBW3nmEYsKDDw1xhy6aS+HnCF4V0zedljs+riT1ccx3yl3AoGl
	VIvPG6haMkjn0Yquk9WCECHIeyG1HY8j2EloNwk5CG8pGjjNRy48aWeNR6P2iLOGjXahus9f5Qy
	Mj+pg92QxB9BPQV9cSrjz1PWd4VqqPhVU7eZN3zhBx3T0m9MNnwFdL9XEX7HE+BNwWd1CtlPG7z
	07+VeglKg+qqcFwUBUHaM3/ue75885Ffrpi0SRkSu4gRS5XupkgaW2SKhbq3zGpD2yhMf1U37F2
	LyC9PUPRvxNiFyDSHK2Jr3F9PRfvuOvGPggstAhqSc/iayJODkueNMZdy8Jlbs5XSOO15uteVe3
	4T4H1CpmKMljSiTj3tM1BTHOygG7i7uAl6v6xAfWPTD11T+wKUffY0KB7OO/Oy7jACb/+TBQh6u
	G7khI=
X-Google-Smtp-Source: AGHT+IEmPfmGffSn5h6oyOdDKN/cxMWMpMs0ON2XwIfZfiF1tbpTQ0FLbDepH0/FGncTDkSpT5HH8A==
X-Received: by 2002:a05:6000:220c:b0:3b7:8abc:eba2 with SMTP id ffacd0b85a97d-3b900b4f140mr2657755f8f.20.1754666197784;
        Fri, 08 Aug 2025 08:16:37 -0700 (PDT)
Message-ID: <5bef1a60-e608-4f9f-b658-a702e2306ebd@citrix.com>
Date: Fri, 8 Aug 2025 16:16:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Fork or replace dependency yajl?
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: =?UTF-8?Q?Christoph_Gr=C3=BCninger?= <foss@grueninger.de>,
 xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>
References: <d49ad645-35dd-4bd2-b166-d1803b2d95ba@grueninger.de>
 <25afca10-18e7-445c-b914-98d767016d70@citrix.com>
Content-Language: en-GB
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: <25afca10-18e7-445c-b914-98d767016d70@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 03/08/2025 2:36 pm, Andrew Cooper wrote:
> On 03/08/2025 9:52 am, Christoph GrÃ¼ninger wrote:
>> Dear Xen developers,
>>
>> you are using the dependency yajl (yet another json library, [1]) to
>> parse JSON files. The project seems abandoned with the last commit 10
>> years ago, the last release over 11 years ago, and 75 open pull
>> requests. Packaging yajl requires patches, e.g., to make it compatible
>> with CMake 4.0.
>> There are some forks but none has replaced the old one yet [2].
>>
>> I think there are three paths forward:
>> 1. Xen could pick a prominent fork and use it as its main dependency.
>> 2. Xen could create a fork of its own, hopefully attracting more
>> people interested in an maintained successor of yajl.
>> 3. Switch to a different JSON parser library that remained healthy.
>>
>> Sure, you could stick to option 4., do nothing an offload the burden
>> to fix yajl to distribution packagers.
>>
>> Xen is an important project and its decision can create momentum that
>> might lead other projects.
>>
>> [1] https://github.com/lloyd/yajl
>> [2] https://github.com/lloyd/yajl/issues/252
> CCing the libxl maintainers.

To follow up here, please try
https://lore.kernel.org/xen-devel/20250808145602.41716-1-anthony@xenproject.org/T/#u
which should make libxl use json-c by preference.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Aug 08 15:28:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 15:28:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074800.1437291 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukP1W-0003NV-Mh; Fri, 08 Aug 2025 15:28:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074800.1437291; Fri, 08 Aug 2025 15:28: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 1ukP1W-0003NO-Jf; Fri, 08 Aug 2025 15:28:50 +0000
Received: by outflank-mailman (input) for mailman id 1074800;
 Fri, 08 Aug 2025 15:28:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Dtzj=2U=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ukP1V-0003NI-7j
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 15:28:49 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 604a1026-746c-11f0-b898-0df219b8e170;
 Fri, 08 Aug 2025 17:28:47 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-458bf6d69e4so20138025e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 08 Aug 2025 08:28:47 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459dcb86d6asm193478935e9.5.2025.08.08.08.28.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 08 Aug 2025 08:28: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>
X-Inumbo-ID: 604a1026-746c-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754666926; x=1755271726; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=L+fjovgMHvAMO2GTAbojTnvppBMO9jbILXOU0N9Q2PE=;
        b=l8phi0yDGUExs7W9sa/SoV2yB92njG0DVcBt+kXFtr9LIV7JHQAKpJSAdudvIcm/AD
         3co/dW0HJnu6Nrt/Qz5R7YrCHxqieN4u9wwW4EkoOkeHs7fqD6gbxT9df4nq7LdwntL5
         UCZiZKoUSJM/aDzhK0PEsBJlCh8f08zgfMbDk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754666926; x=1755271726;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=L+fjovgMHvAMO2GTAbojTnvppBMO9jbILXOU0N9Q2PE=;
        b=mgpJScYJTOjtAs8Aqs/vQb/f8q8CUuo2gU1bbBGNgRGRnvWV3fsCXoaHaP5EQEF5ZI
         p+IIJ4+HwYsQW91hlHbwpFvrs9cSQZSlgZn7t6B0k1nVZOttImLO1f0IC+KtX82I8YAs
         y7/tCRGUfkeQsr5lCLXtFX8MOUooUsjRkLLfU3WmgAdRlxd3yeWBrOs5rSUqspkkh8ai
         h3TfNH6D7F40UypDyuDxLb+V7+K1nMCnW1hYyaghCnZYRglbDlhgT2nhyki4WKfoK80u
         kYu0EfXgqRewAduG42Ccn1hVktZEx6kHKJzruhfhKzXvByq3sBUlRmJBAsgFGZqxUcFB
         zjkA==
X-Forwarded-Encrypted: i=1; AJvYcCWPsQWzlF1ahBdaAONtVVRt+EqlDfEI6j7pDEmFvR22Rvy+Kb6+W2/U9NmKH4E9Rw0HY8k8sJTtOgo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzgsalsmfbjV0j5InqVr2Fb9xcoL9mama7oGqwfhubSVZTP0xdw
	9t83bqvSQwHCywmcbiU1iHLiivEt2PH8xHKvYLGIfnehxoVCh8/zGF9iB8MwGTpCp/M=
X-Gm-Gg: ASbGncvcl6OxBxsyzmpLGKqDwD3+tT2k72kGaf3+bYgjzT26WQN0uLpy7/p4AlIpfzr
	1Y5Zyn5u5zRgIz50bqFHcpXS9+ltg08OJiLn/Usoe9m3rJ+TrNJmZmDLGBUA2CNTgGjnDWoEs14
	XkF+ozHvsd1t+Wumi518TypekVsC92TIass5oWcBMclHTRDPIRD5mMdwaAvVZFZrObVGAR6cX00
	C5vMqy1siTw+rY3Fapk1YHSw5tKj76bFymj2l4dR0Rqx8v2N4YOz4FBFi5XcfPZ626YKgHM5vQp
	R/WfLhAhb0wXToX+q9TqQQdaLkQa8VqyltmIIKuQLCmUx4tGcrWuj6nINX5lOLbrEEmoIqBYJIQ
	eI6P0GgF09g8NmffPTDa/+ygXVJpN+Qd2uC72mvfhfFdvxb3wiJt3ObWst87N7uEM+KHz
X-Google-Smtp-Source: AGHT+IFmr7aXeMUDqxisXJmiOXnf0OsqiQCyhbexW56xGxwGZz64qTrkFGgXx52O3bptJ9U08y9q6Q==
X-Received: by 2002:a05:6000:2890:b0:3a4:d64a:3df6 with SMTP id ffacd0b85a97d-3b900b49992mr3370730f8f.3.1754666926520;
        Fri, 08 Aug 2025 08:28:46 -0700 (PDT)
Message-ID: <bab1e787-d690-41fc-8406-28695f0887fc@citrix.com>
Date: Fri, 8 Aug 2025 16:28:45 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH] automation/eclair: restrict clean target to xen
To: Nicola Vetrini <nicola.vetrini@bugseng.com>,
 xen-devel@lists.xenproject.org
Cc: sstabellini@kernel.org, michal.orzel@amd.com, xenia.ragiadakou@amd.com,
 ayan.kumar.halder@amd.com, consulting@bugseng.com,
 Doug Goldstein <cardoe@cardoe.com>
References: <a1127245a45139c3c3fcd05b07c1c1e6dabb66c0.1747387457.git.nicola.vetrini@bugseng.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <a1127245a45139c3c3fcd05b07c1c1e6dabb66c0.1747387457.git.nicola.vetrini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07/08/2025 10:53 pm, Nicola Vetrini wrote:
> The clean target also clears files outside the xen directory,
> which is not needed for the purposes of running an analysis.
>
> No functional change.
>
> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Fri Aug 08 16:53:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 16:53:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074856.1437321 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukQLR-0000fs-Nf; Fri, 08 Aug 2025 16:53:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074856.1437321; Fri, 08 Aug 2025 16:53:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukQLR-0000fl-Ke; Fri, 08 Aug 2025 16:53:29 +0000
Received: by outflank-mailman (input) for mailman id 1074856;
 Fri, 08 Aug 2025 16:53:28 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1ukQLQ-0000ff-2Z
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 16:53:28 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ukQLP-0082jh-1e;
 Fri, 08 Aug 2025 16:53:27 +0000
Received: from [2a02:8012:3a1:0:a91b:b567:8726:98f7]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ukQLP-009JTZ-0v;
 Fri, 08 Aug 2025 16:53: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=xVGlLHV/S2IO9jByEajlUvng8m4rJSVsMd3dAgZ3GX8=; b=VN0pJ/MjJqLpJNiQ1lgd7AsgIw
	EgMkJmH4y28kC4wm04pfGh5ZdeoWlEmOxU36jkGkB9v3bZielaLdAwizb/hyr961e9drFYtstV61J
	dgTcJzHxj05ADy/GU5SnrOOhATRcMiz4b7kz4ximyV/PtzB9LTqeBr0dVfn2XGxIbrGU=;
Message-ID: <39df0f84-3004-479e-990d-a8437a384294@xen.org>
Date: Fri, 8 Aug 2025 17:53:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 3/6] xen/arm: ffa: Introduce VM to VM support
To: Bertrand Marquis <bertrand.marquis@arm.com>,
 xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org, Volodymyr Babchuk
 <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>
References: <cover.1752754016.git.bertrand.marquis@arm.com>
 <50224eb7cca4eaef2646ad8e33f689d912704733.1752754016.git.bertrand.marquis@arm.com>
Content-Language: en-GB
From: Julien Grall <julien@xen.org>
In-Reply-To: <50224eb7cca4eaef2646ad8e33f689d912704733.1752754016.git.bertrand.marquis@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Bertrand,

On 17/07/2025 13:11, Bertrand Marquis wrote:
> Create a CONFIG_FFA_VM_TO_VM parameter to activate FFA communication
> between VMs.
> When activated list VMs in the system with FF-A support in part_info_get.
> 
> When VM to VM is activated, Xen will be tainted as Insecure and a
> message is displayed to the user during the boot as there is no
> filtering of VMs in FF-A so any VM can communicate or see any other VM
> in the system.
> 
> WARNING: There is no filtering for now and all VMs are listed !!
> 
> This patch is reorganizing the ffa_ctx structure to make clear which
> lock is protecting what parts.
> 
> This patch is introducing a chain list of the ffa_ctx with a FFA Version
> negociated allowing to create the partinfo results for VMs in parallel
> by using rwlock which only ensure addition/removal of entries are
> protected.
> 
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>

With two remarks below:

Acked-by: Julien Grall <jgrall@amazon.com>

> ---
> Changes in v7:
> - protect ffa_ctx list with a rw lock to allow several partinfo_get in
>    parallel but protect adding/removing entries.
> Changes in v6:
> - remove ACCESS_ONCE for guest_vers access and take the context lock
>    before modifying it
> - move guest_vers in context declaration to fields protected by the
>    context lock and add a comment to state that lock in only needed when
>    modifying it
> Changes in v5:
> - remove invalid comment about 1.1 firmware support
> - rename variables from d and dom to curr_d and dest_d (Julien)
> - add a TODO in the code for potential holding for long of the CPU
>    (Julien)
> - use an atomic global variable to store the number of VMs instead of
>    recomputing the value each time (Julien)
> - add partinfo information in ffa_ctx (id, cpus and 64bit) and create a
>    chain list of ctx. Use this chain list to create the partinfo result
>    without holding a global lock to prevent concurrency issues.
> - Move some changes in a preparation patch modifying partinfo for sps to
>    reduce this patch size and make the review easier
> Changes in v4:
> - properly handle SPMC version 1.0 header size case in partinfo_get
> - switch to local counting variables instead of *pointer += 1 form
> - coding style issue with missing spaces in if ()
> Changes in v3:
> - break partinfo_get in several sub functions to make the implementation
>    easier to understand and lock handling easier
> - rework implementation to check size along the way and prevent previous
>    implementation limits which had to check that the number of VMs or SPs
>    did not change
> - taint Xen as INSECURE when VM to VM is enabled
> Changes in v2:
> - Switch ifdef to IS_ENABLED
> - dom was not switched to d as requested by Jan because there is already
>    a variable d pointing to the current domain and it must not be
>    shadowed.
> ---
>   xen/arch/arm/tee/Kconfig        |  11 +++
>   xen/arch/arm/tee/ffa.c          |  47 +++++++++++++
>   xen/arch/arm/tee/ffa_partinfo.c | 100 ++++++++++++++++++++++++---
>   xen/arch/arm/tee/ffa_private.h  | 117 ++++++++++++++++++++++++++------
>   4 files changed, 245 insertions(+), 30 deletions(-)
> 
> diff --git a/xen/arch/arm/tee/Kconfig b/xen/arch/arm/tee/Kconfig
> index c5b0f88d7522..88a4c4c99154 100644
> --- a/xen/arch/arm/tee/Kconfig
> +++ b/xen/arch/arm/tee/Kconfig
> @@ -28,5 +28,16 @@ config FFA
>   
>   	  [1] https://developer.arm.com/documentation/den0077/latest
>   
> +config FFA_VM_TO_VM
> +    bool "Enable FF-A between VMs (UNSUPPORTED)" if UNSUPPORTED
> +    default n
> +    depends on FFA
> +    help
> +      This option enables to use FF-A between VMs.
> +      This is experimental and there is no access control so any
> +      guest can communicate with any other guest.
> +
> +      If unsure, say N.
> +
>   endmenu
>   
> diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
> index 3bbdd7168a6b..be71eda4869f 100644
> --- a/xen/arch/arm/tee/ffa.c
> +++ b/xen/arch/arm/tee/ffa.c
> @@ -118,6 +118,13 @@ void *ffa_tx __read_mostly;
>   DEFINE_SPINLOCK(ffa_rx_buffer_lock);
>   DEFINE_SPINLOCK(ffa_tx_buffer_lock);
>   
> +struct list_head ffa_ctx_head;

A more common pattern is to use LIST_HEAD(ffa_ctx_head) and ...

> +/* RW Lock to protect addition/removal and reading in ffa_ctx_head */
> +rwlock_t ffa_ctx_list_rwlock;

... DEFINE_RWLOCK(ffa_ctx_list_rwlock) which will also initialize 
list/rwlock for you. So no need for extra code further down and less 
risk if the variables are used before they are initialized.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 17:02:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 17:02:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074872.1437331 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukQUG-0002aw-J3; Fri, 08 Aug 2025 17:02:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074872.1437331; Fri, 08 Aug 2025 17:02:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukQUG-0002ap-Ez; Fri, 08 Aug 2025 17:02:36 +0000
Received: by outflank-mailman (input) for mailman id 1074872;
 Fri, 08 Aug 2025 17:02:35 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1ukQUF-0002aj-Cx
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 17:02:35 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ukQUE-0082wr-1t;
 Fri, 08 Aug 2025 17:02:34 +0000
Received: from [2a02:8012:3a1:0:a91b:b567:8726:98f7]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ukQUE-009MO7-1B;
 Fri, 08 Aug 2025 17:02: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=Rsu6vkFDxAmTPGpq7GAfGNxGTL0ClhXGWPAf5bKYDeg=; b=fPLxYfSHPh04/3SPesLaLbmJJY
	JBO+3WMaFdxX3rgws4I0DzW8ob+dGneNK4NUOLq+s7Eg8ofs8qLoGy7A/xN8NEc3jP0s2or9xVmJk
	nyybVCD29hPL0/iCYjzqoSi3uxx9E/ioZVRL3UYxiqB2mSydpZIjr8BgPjYGeF6urwFY=;
Message-ID: <3352e385-0b45-4e63-b594-4be664481577@xen.org>
Date: Fri, 8 Aug 2025 18:02:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 5/6] xen/arm: ffa: Add indirect message between VM
Content-Language: en-GB
To: Bertrand Marquis <bertrand.marquis@arm.com>,
 xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org, Volodymyr Babchuk
 <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>
References: <cover.1752754016.git.bertrand.marquis@arm.com>
 <1a5ef965eca870918a120221667e2f26c7604afc.1752754016.git.bertrand.marquis@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <1a5ef965eca870918a120221667e2f26c7604afc.1752754016.git.bertrand.marquis@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Bertrand,

On 17/07/2025 13:11, Bertrand Marquis wrote:
> Add support for indirect messages between VMs.
> This is only enabled if CONFIG_FFA_VM_TO_VM is selected.
> 
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

Acked-by: Julien Grall <jgrall@amazon.com>

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 17:02:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 17:02:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074873.1437341 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukQUU-0002tx-Pp; Fri, 08 Aug 2025 17:02:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074873.1437341; Fri, 08 Aug 2025 17:02:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukQUU-0002tq-Lu; Fri, 08 Aug 2025 17:02:50 +0000
Received: by outflank-mailman (input) for mailman id 1074873;
 Fri, 08 Aug 2025 17:02:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=hyIc=2U=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1ukQUR-0002s0-MX
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 17:02:48 +0000
Received: from mail-4322.protonmail.ch (mail-4322.protonmail.ch [185.70.43.22])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8163c9ce-7479-11f0-a324-13f23c93f187;
 Fri, 08 Aug 2025 19:02:46 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8163c9ce-7479-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=5fnnr7ct25cqfmen5z7rikb6zi.protonmail; t=1754672565; x=1754931765;
	bh=NT5uDmgXURs4R2qifQWh81lYqf3GVBj1s5TDaAnGFGo=;
	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=lppTQfQjqtWAykrczXzU8H+1BPOutmtFHBaqTW36NR2GLVAN2hB5J/MYCLVrjG87G
	 1jvmnFz4dPtBq5xrmQkJnvyjpp3K9LmNTxVHG9Z6/OPaaMPFNbHozdzL5zdP/bprJV
	 VPM1mqi8pLnZe22tP/V97opLyPGXWauTwN5diAeB4IWxZy1Nt7p3E3KDnp606RDNjp
	 kMBe2fhHNw/MMmkgfcqS7gaZyWrzKTmno1NF2gBP4OiPLf+/mVtnBfTIiQBZcNQ5ch
	 LJb4Sstxlw2tbqhh4wSyGsMxqLHcwtH5j/PEH1SfSOAXcFrY2EIHWKHkRw+WAtM5Ir
	 mkBOXTiFFbc5w==
Date: Fri, 08 Aug 2025 17:02:40 +0000
To: =?utf-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, Doug Goldstein <cardoe@cardoe.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v2 1/3] CI: Add driver domains tests
Message-ID: <aJYtrF5jZLSftOLh@kraken>
In-Reply-To: <0243d946ec451ddf18a620dbcaaa45eba861810a.1754663560.git-series.marmarek@invisiblethingslab.com>
References: <cover.961bf2f7929562a899b182283446598d4c055149.1754663560.git-series.marmarek@invisiblethingslab.com> <0243d946ec451ddf18a620dbcaaa45eba861810a.1754663560.git-series.marmarek@invisiblethingslab.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 9dce6ccc4ceece617a9c45442342e044968590c8
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Fri, Aug 08, 2025 at 04:32:41PM +0200, Marek Marczykowski-G=C3=B3recki w=
rote:
> Setup a simple two domU system. One with network backend, running
> xendriverdomain service, and one with frontend, trying to ping the
> backend.
>=20
> Contrary to other similar tests, use disk image instead of initrd, to
> allow bigger rootfs without adding more RAM (for both dom0 and domU).
> But keep using pxelinux as a bootloader as it's easier to setup than
> installing grub on the disk. Theoretically, it could be started via direc=
t
> kernel boot in QEMU, but pxelinux is slightly closer to real-world
> deployment.
>=20
> Signed-off-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingsl=
ab.com>

Reviewed-by: Denis Mukhin <dmukhin@ford.com>=20

> ---
> Changes in v2:
> - use heredoc
> - limit ping loop iterations
> - use full "backend" / "frontend" in disk image names
> - print domU consoles directly to /dev/console, to avoid systemd-added
>   messages prefix
> - terminate test on failure, don't wait for timeout
> ---
>  automation/gitlab-ci/test.yaml                  |   8 +-
>  automation/scripts/qemu-driverdomains-x86_64.sh | 130 +++++++++++++++++-
>  2 files changed, 138 insertions(+)
>  create mode 100755 automation/scripts/qemu-driverdomains-x86_64.sh
>=20
> diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.y=
aml
> index 1f0b27b2378a..5c4b2dc304b4 100644
> --- a/automation/gitlab-ci/test.yaml
> +++ b/automation/gitlab-ci/test.yaml
> @@ -656,6 +656,14 @@ qemu-alpine-x86_64-gcc:
>      - *x86-64-test-needs
>      - alpine-3.18-gcc
>=20
> +qemu-alpine-driverdomains-x86_64-gcc:
> +  extends: .qemu-x86-64
> +  script:
> +    - ./automation/scripts/qemu-driverdomains-x86_64.sh 2>&1 | tee ${LOG=
FILE}
> +  needs:
> +    - *x86-64-test-needs
> +    - alpine-3.18-gcc
> +
>  qemu-smoke-x86-64-gcc:
>    extends: .qemu-smoke-x86-64
>    script:
> diff --git a/automation/scripts/qemu-driverdomains-x86_64.sh b/automation=
/scripts/qemu-driverdomains-x86_64.sh
> new file mode 100755
> index 000000000000..a8e2ceb33527
> --- /dev/null
> +++ b/automation/scripts/qemu-driverdomains-x86_64.sh
> @@ -0,0 +1,130 @@
> +#!/bin/bash
> +
> +set -ex -o pipefail
> +
> +dom0_rootfs_extra_comp=3D()
> +dom0_rootfs_extra_uncomp=3D()
> +
> +cd binaries
> +
> +# DomU rootfs
> +
> +mkdir -p rootfs
> +cd rootfs
> +mkdir -p etc/local.d
> +passed=3D"ping test passed"
> +failed=3D"TEST FAILED"
> +cat > etc/local.d/xen.start << EOF
> +#!/bin/bash
> +
> +set -x
> +
> +if grep -q test=3Dbackend /proc/cmdline; then
> +    brctl addbr xenbr0
> +    ip link set xenbr0 up
> +    ip addr add 192.168.0.1/24 dev xenbr0
> +    bash /etc/init.d/xendriverdomain start
> +    # log backend-related logs to the console
> +    tail -F /var/log/xen/xldevd.log /var/log/xen/xen-hotplug.log >>/dev/=
console 2>/dev/null &
> +else
> +    ip link set eth0 up
> +    ip addr add 192.168.0.2/24 dev eth0
> +    timeout=3D6 # 6*10s
> +    until ping -c 10 192.168.0.1; do
> +        sleep 1
> +        if [ \$timeout -le 0 ]; then
> +            echo "${failed}"
> +            exit 1
> +        fi
> +        ((timeout--))
> +    done
> +    echo "${passed}"
> +fi
> +EOF
> +chmod +x etc/local.d/xen.start
> +zcat ../rootfs.cpio.gz | cpio -imd
> +zcat ../xen-tools.cpio.gz | cpio -imd
> +mkfs.ext4 -d . ../domU-rootfs.img 1024M
> +cd ..
> +rm -rf rootfs
> +
> +# Dom0 rootfs
> +mkdir -p rootfs
> +cd rootfs
> +zcat ../rootfs.cpio.gz | cpio -imd
> +zcat ../xen-tools.cpio.gz | cpio -imd
> +mkdir -p root etc/local.d
> +cat > root/backend.cfg << EOF
> +name=3D"backend"
> +memory=3D512
> +vcpus=3D1
> +kernel=3D"/root/bzImage"
> +extra=3D"console=3Dhvc0 root=3D/dev/xvda net.ifnames=3D0 test=3Dbackend"
> +disk=3D[ '/root/domU-rootfs-backend.img,raw,xvda,rw' ]
> +EOF
> +cat > root/frontend.cfg << EOF
> +name=3D"frontend"
> +memory=3D512
> +vcpus=3D1
> +kernel=3D"/root/bzImage"
> +extra=3D"console=3Dhvc0 root=3D/dev/xvda net.ifnames=3D0 test=3Dfrontend=
"
> +disk=3D[ '/root/domU-rootfs-frontend.img,raw,xvda,rw' ]
> +vif=3D[ 'bridge=3Dxenbr0,backend=3Dbackend' ]
> +EOF
> +
> +cat > etc/local.d/xen.start << EOF
> +#!/bin/bash
> +
> +set -x
> +
> +bash /etc/init.d/xencommons start
> +
> +xl list
> +
> +tail -F /var/log/xen/console/guest-backend.log 2>/dev/null | sed -e "s/^=
/(backend) /" >>/dev/console &
> +tail -F /var/log/xen/console/guest-frontend.log 2>/dev/null | sed -e "s/=
^/(frontend) /" >>/dev/console &
> +xl -vvv create /root/backend.cfg
> +xl -vvv create /root/frontend.cfg
> +EOF
> +chmod +x etc/local.d/xen.start
> +
> +cp ../domU-rootfs.img ./root/domU-rootfs-backend.img
> +cp ../domU-rootfs.img ./root/domU-rootfs-frontend.img
> +cp ../bzImage ./root/
> +mkdir -p etc/default
> +echo 'XENCONSOLED_TRACE=3Dall' >> etc/default/xencommons
> +mkdir -p var/log/xen/console
> +mkfs.ext4 -d . ../dom0-rootfs.img 2048M
> +cd ..
> +rm -rf rootfs
> +
> +cd ..
> +
> +cat >> binaries/pxelinux.0 << EOF
> +#!ipxe
> +
> +kernel xen console=3Dcom1 console_timestamps=3Dboot
> +module bzImage console=3Dhvc0 root=3D/dev/sda net.ifnames=3D0
> +boot
> +EOF
> +
> +# Run the test
> +rm -f smoke.serial
> +export TEST_CMD=3D"qemu-system-x86_64 \
> +    -cpu qemu64,+svm \
> +    -m 2G -smp 2 \
> +    -monitor none -serial stdio \
> +    -nographic \
> +    -device virtio-net-pci,netdev=3Dn0 \
> +    -netdev user,id=3Dn0,tftp=3Dbinaries,bootfile=3D/pxelinux.0 \
> +    -drive file=3Dbinaries/dom0-rootfs.img,format=3Draw"
> +
> +export TEST_LOG=3D"smoke.serial"
> +export BOOT_MSG=3D"Latest ChangeSet: "
> +export LOG_MSG=3D"Domain-0"
> +# exit early on test failure too, check if it was success below
> +export PASSED=3D"$passed|$failed"
> +
> +./automation/scripts/console.exp | sed 's/\r\+$//'
> +
> +grep "$passed" smoke.serial
> --
> git-series 0.9.1
>=20



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 17:03:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 17:03:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074883.1437350 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukQVD-0003c4-7N; Fri, 08 Aug 2025 17:03:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074883.1437350; Fri, 08 Aug 2025 17:03: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 1ukQVD-0003bx-4s; Fri, 08 Aug 2025 17:03:35 +0000
Received: by outflank-mailman (input) for mailman id 1074883;
 Fri, 08 Aug 2025 17:03:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=hyIc=2U=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1ukQVC-0002tT-FY
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 17:03:34 +0000
Received: from mail-10631.protonmail.ch (mail-10631.protonmail.ch
 [79.135.106.31]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9b287429-7479-11f0-b898-0df219b8e170;
 Fri, 08 Aug 2025 19:03:29 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9b287429-7479-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1754672606; x=1754931806;
	bh=qmKyze0v7woqNcJVAbJEuZPdAnxGGABTkSBBx4vd3l4=;
	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=HlAOK+28GEELYNVEN95InCUPTihjLWi4jUhsQtLrM618S93mpU3YcPbkkhI1siWtL
	 O5zGLIXCFYcCquQajGNiBQZ7O9jJ3te19CXfgVSzMGLY85JPSBB4Dhv47qPUut/y6q
	 NglrGeGS4NLMlkeJPTh89tvS/cyNfA2OCYRhniz79jshqZVLWixeUm0t7H72bndwEP
	 JCyIM6g66rDE43KHMVi69a/bgCeUC85qZua7K5PFhJLKbu/9KoKbh8LHjr+WUSU0r6
	 6aZTA93Su4E8eokqN6oxOYiiuk0OESJX4AGmgp0IeLCm2LLgaMWyOQWE8T0lxXfRBH
	 sVgAcQEmqe9qQ==
Date: Fri, 08 Aug 2025 17:03:22 +0000
To: =?utf-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, Doug Goldstein <cardoe@cardoe.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v2 2/3] CI: Add configure --enable-systemd for full build
Message-ID: <aJYt1xDj2ClP3mrw@kraken>
In-Reply-To: <526d26a85bd1f164dd8a421dfcc1e765c3ff5590.1754663560.git-series.marmarek@invisiblethingslab.com>
References: <cover.961bf2f7929562a899b182283446598d4c055149.1754663560.git-series.marmarek@invisiblethingslab.com> <526d26a85bd1f164dd8a421dfcc1e765c3ff5590.1754663560.git-series.marmarek@invisiblethingslab.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 95ef0145e607ca172d16f19766c0bc4b79857fff
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Fri, Aug 08, 2025 at 04:32:42PM +0200, Marek Marczykowski-G=C3=B3recki w=
rote:
> This doesn't exclude sysvinit scripts, but allows testing systemd too.
>=20
> Signed-off-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingsl=
ab.com>

Reviewed-by: Denis Mukhin <dmukhin@ford.com>=20

> --
> New in v2.
>=20
> Requires containers rebuild
> ---
>  automation/build/debian/12-x86_64.dockerfile | 1 +
>  automation/scripts/build                     | 3 +++
>  2 files changed, 4 insertions(+)
>=20
> diff --git a/automation/build/debian/12-x86_64.dockerfile b/automation/bu=
ild/debian/12-x86_64.dockerfile
> index e26a19079e38..3a53d92ddf6d 100644
> --- a/automation/build/debian/12-x86_64.dockerfile
> +++ b/automation/build/debian/12-x86_64.dockerfile
> @@ -24,6 +24,7 @@ RUN <<EOF
>          git-core
>          pkg-config
>          wget
> +        systemd
>          # libxenguest dombuilder
>          libbz2-dev
>          liblzma-dev
> diff --git a/automation/scripts/build b/automation/scripts/build
> index 0e7494ff6d87..4ad42889c78c 100755
> --- a/automation/scripts/build
> +++ b/automation/scripts/build
> @@ -69,6 +69,9 @@ else
>      # Full build.  Figure out our ./configure options
>      cfgargs=3D("--prefix=3D/usr")
>      cfgargs+=3D("--enable-docs")
> +    if pkg-config systemd; then
> +        cfgargs+=3D("--enable-systemd")
> +    fi
>=20
>      # booleans for which compiler is in use
>      cc_is_gcc=3D"$($cc --version | grep -q gcc && echo "y" || :)"
> --
> git-series 0.9.1
>=20



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 17:04:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 17:04:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074892.1437361 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukQW8-0004B0-Hb; Fri, 08 Aug 2025 17:04:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074892.1437361; Fri, 08 Aug 2025 17:04: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 1ukQW8-0004At-EC; Fri, 08 Aug 2025 17:04:32 +0000
Received: by outflank-mailman (input) for mailman id 1074892;
 Fri, 08 Aug 2025 17:04:31 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1ukQW7-0004Ah-9o
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 17:04:31 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ukQW6-0082ys-2z;
 Fri, 08 Aug 2025 17:04:30 +0000
Received: from [2a02:8012:3a1:0:a91b:b567:8726:98f7]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ukQW6-009MRY-2Q;
 Fri, 08 Aug 2025 17:04: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=Sw8BCxiBnS3dZm4Eomw4ndZ4m8tGN3vOSmmNUYA5sXY=; b=Hotdm+hbkGquTAUsn6vn3gFVUS
	WtunmQGsEt0eE7eF1cJpHMWz2+L2Iib6WDpMygKn5Q6oXu3S7Q6K+LObL6MKw/tTk0uI80wv3kK9K
	RKpwrmx6QVuDjrW3EMPICPCywJrechkegOP3szol60rOxTENz+T3bTmNtbBQyh+LKzj0=;
Message-ID: <ee580076-994d-47a4-b4a8-450783369738@xen.org>
Date: Fri, 8 Aug 2025 18:04:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 6/6] xen/arm: ffa: Enable VM to VM without firmware
Content-Language: en-GB
To: Bertrand Marquis <bertrand.marquis@arm.com>,
 xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.org, Volodymyr Babchuk
 <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>
References: <cover.1752754016.git.bertrand.marquis@arm.com>
 <9ed199ef3be4b6dc665f19f96ba4063c61ccbf00.1752754016.git.bertrand.marquis@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <9ed199ef3be4b6dc665f19f96ba4063c61ccbf00.1752754016.git.bertrand.marquis@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Bertrand,

On 17/07/2025 13:11, Bertrand Marquis wrote:
> When VM to VM support is activated and there is no suitable FF-A support
> in the firmware, enable FF-A support for VMs to allow using it for VM to
> VM communications.
> If there is OP-TEE running in the secure world and using the non FF-A
> communication system, having CONFIG_FFA_VM_TO_VM could be non functional
> (if optee is probed first) or OP-TEE could be non functional (if FF-A is
> probed first) so it is not recommended to activate the configuration
> option for such systems.
> 
> To make buffer full notification work between VMs when there is no
> firmware, rework the notification handling and modify the global flag to
> only be used as check for firmware notification support instead.
> 
> Also split probe function into one for firmware and one for vm to vm to
> make the implementation clearer.
> 
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

Acked-by: Julien Grall <jgrall@amazon.com>

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 17:10:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 17:10:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074898.1437371 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukQbj-0005iy-4Q; Fri, 08 Aug 2025 17:10:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074898.1437371; Fri, 08 Aug 2025 17:10:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukQbj-0005ir-1J; Fri, 08 Aug 2025 17:10:19 +0000
Received: by outflank-mailman (input) for mailman id 1074898;
 Fri, 08 Aug 2025 17:10:17 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1ukQbh-0005il-Jr
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 17:10:17 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ukQbh-008358-02;
 Fri, 08 Aug 2025 17:10:17 +0000
Received: from [2a02:8012:3a1:0:a91b:b567:8726:98f7]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ukQbg-009MZF-2d;
 Fri, 08 Aug 2025 17:10:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=Risfi83inZ5256jtnn+XLkdIpym8WWNbCkv3WmHFzPQ=; b=0sNmpZzcHPATnhHPJrfhnqrzsY
	6ZZIneIXJweW+KXUA5U/Qvr5sua8AOHGzHr1Y87pRE/cYIrkBkQodY5IjhPzMKT7G8biDnOirRSlD
	5dPpnaD+y8o8EntOQE9ENj528fTxpRp9YXTMgq2tVSaMlWwsKboR9yLrd2SSZHABjDfE=;
Message-ID: <f6631efb-8929-4c5e-8e20-7aec4ff84574@xen.org>
Date: Fri, 8 Aug 2025 18:10:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/8] kconfig: turn PDX compression into a choice
Content-Language: en-GB
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: 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>
References: <20250805095257.74975-1-roger.pau@citrix.com>
 <20250805095257.74975-2-roger.pau@citrix.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20250805095257.74975-2-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Roger,

On 05/08/2025 10:52, Roger Pau Monne wrote:
> Rename the current CONFIG_PDX_COMPRESSION to CONFIG_PDX_MASK_COMPRESSION,
> and make it part of the PDX compression choice block, in preparation for
> adding further PDX compression algorithms.
> 
> The PDX compression defaults should still be the same for all
> architectures, however the choice block cannot be protected under EXPERT
> and still have a default choice being unconditionally selected.  As a
> result, the new "PDX (Page inDeX) compression" item will be unconditionally
> visible in Kconfig, even on architectures like x86 that previously had no
> way to enable PDX compression.
> 
> As part of this preparation work to introduce new PDX compressions, adjust
> some of the comments on pdx.h to note they apply to a specific PDX
> compression.  Also shuffle function prototypes and dummy implementations
> around to make it easier to introduce a new PDX compression.  Note all
> PDX compression implementations are expected to provide a
> pdx_is_region_compressible() that takes the same set of arguments.
> 
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Julien Grall <jgrall@amazon.com>

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 17:21:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 17:21:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074910.1437382 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukQmb-0008AC-3J; Fri, 08 Aug 2025 17:21:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074910.1437382; Fri, 08 Aug 2025 17:21: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 1ukQma-0008A5-Vc; Fri, 08 Aug 2025 17:21:32 +0000
Received: by outflank-mailman (input) for mailman id 1074910;
 Fri, 08 Aug 2025 17:21:31 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1ukQmZ-00089z-Mt
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 17:21:31 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ukQmZ-0083Ki-0A;
 Fri, 08 Aug 2025 17:21:31 +0000
Received: from [2a02:8012:3a1:0:a91b:b567:8726:98f7]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ukQmY-009N2g-2m;
 Fri, 08 Aug 2025 17:21: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=hS/RSivYCtyHijQmtH3hyBlWsLYA+NJJub2+aT6ayy8=; b=wgZ2dABwtvyzz6lByjkwWJn/0a
	ZBUi6j0gnWCBDpMfQgSJ6bsMYSHmc8mX1QPP0yuALCWC5sYpxz8outIRdiYlL7C1B4hUNkbOXc1Sg
	N+hmyrBjcW95BzBMZSf0fS8X8UXfr8wnkaCaLnmjYscSEkd1Ac5fyH0RuDJXSAAxgvio=;
Message-ID: <5b940bdf-9bc0-49b2-af92-7251b2780c71@xen.org>
Date: Fri, 8 Aug 2025 18:21:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 2/8] pdx: provide a unified set of unit functions
Content-Language: en-GB
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: 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>
References: <20250805095257.74975-1-roger.pau@citrix.com>
 <20250805095257.74975-3-roger.pau@citrix.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20250805095257.74975-3-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Roger,

On 05/08/2025 10:52, Roger Pau Monne wrote:
> diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
> index a77b31071ed8..ba35bf1fe3bb 100644
> --- a/xen/arch/arm/setup.c
> +++ b/xen/arch/arm/setup.c
> @@ -256,9 +256,11 @@ void __init init_pdx(void)
>   {
>       const struct membanks *mem = bootinfo_get_mem();
>       paddr_t bank_start, bank_size, bank_end, ram_end = 0;
> -    int bank;
> +    unsigned int bank;
>   
>   #ifndef CONFIG_PDX_NONE
> +    for ( bank = 0 ; bank < mem->nr_banks; bank++ )
> +        pfn_pdx_add_region(mem->bank[bank].start, mem->bank[bank].size);
>       /*
>        * Arm does not have any restrictions on the bits to compress. Pass 0 to
>        * let the common code further restrict the mask.
> @@ -266,26 +268,24 @@ void __init init_pdx(void)
>        * If the logic changes in pfn_pdx_hole_setup we might have to
>        * update this function too.
>        */
> -    uint64_t mask = pdx_init_mask(0x0);
> -
> -    for ( bank = 0 ; bank < mem->nr_banks; bank++ )
> -    {
> -        bank_start = mem->bank[bank].start;
> -        bank_size = mem->bank[bank].size;
> -
> -        mask |= bank_start | pdx_region_mask(bank_start, bank_size);
> -    }
> +    pfn_pdx_compression_setup(0);
>   
>       for ( bank = 0 ; bank < mem->nr_banks; bank++ )
>       {
> -        bank_start = mem->bank[bank].start;
> -        bank_size = mem->bank[bank].size;
> -
> -        if (~mask & pdx_region_mask(bank_start, bank_size))
> -            mask = 0;
> +        if ( !pdx_is_region_compressible(
> +                  mem->bank[bank].start,
> +                  PFN_UP(mem->bank[bank].start + mem->bank[bank].size) -
> +                  PFN_DOWN(mem->bank[bank].start)) )

This code is a bit too verbose. Can we at least introduce "bank = 
&mem->bank[bank]" to reduce a bit the verbosity?

The rest of the logic looks fine. So:

Acked-by: Julien Grall <jgrall@amazon.com> # ARM

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 17:30:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 17:30:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074919.1437391 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukQvV-0001NF-S6; Fri, 08 Aug 2025 17:30:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074919.1437391; Fri, 08 Aug 2025 17:30: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 1ukQvV-0001N8-PJ; Fri, 08 Aug 2025 17:30:45 +0000
Received: by outflank-mailman (input) for mailman id 1074919;
 Fri, 08 Aug 2025 17:30:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=hyIc=2U=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1ukQvT-0001IW-2P
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 17:30:44 +0000
Received: from mail-10631.protonmail.ch (mail-10631.protonmail.ch
 [79.135.106.31]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 672f3a0a-747d-11f0-b898-0df219b8e170;
 Fri, 08 Aug 2025 19:30:40 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 672f3a0a-747d-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1754674236; x=1754933436;
	bh=PYlItJ7VdB1lNO0igL3cbKXbxjyBwIPBcnOMcJ+6nPs=;
	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=amC8nZRiq6Qg9aumA5UW0o2VJJVle0VQQxjpeoJOnju/2brI822exfmVRff+3IhCo
	 ZgjFS97VqO4qlvqvBq1NsPp1xI0Y0CtkVQ44boymqtdluwtOgqm+C9dm3ukD9R/y4I
	 AcbwEnFcIjj1uMX7PdV9Gh9iGbRSDfwN28BOqzdw3Q2hvAFkOm+C2o6zuyLcgmQFM6
	 srJbx6wEBy6lCvHv1LGhKWZCktdlvjWqlTnIE+bvdBeDrUqYVErORD2akvlnHNUf0J
	 n1qna9F4m6neBByPjii7WR4RPgSps6v99oINfVKf/stzN+fBiiIfZQ5RMFv4BaslSI
	 3YvauV3MFFDoA==
Date: Fri, 08 Aug 2025 17:30:33 +0000
To: =?utf-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, Doug Goldstein <cardoe@cardoe.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v2 3/3] CI: Run driver domains test on Debian too
Message-ID: <aJY0NYbcHF6sZ/bY@kraken>
In-Reply-To: <3f4e22c2424e8b534fe743aad1e1ee4934f9444c.1754663560.git-series.marmarek@invisiblethingslab.com>
References: <cover.961bf2f7929562a899b182283446598d4c055149.1754663560.git-series.marmarek@invisiblethingslab.com> <3f4e22c2424e8b534fe743aad1e1ee4934f9444c.1754663560.git-series.marmarek@invisiblethingslab.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 3c013f5f2558418e7c7fe9b607a3b0fdb25416ec
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Fri, Aug 08, 2025 at 04:32:43PM +0200, Marek Marczykowski-G=C3=B3recki w=
rote:
> The recent failure affected only glibc-based systems, so do the test on
> Debian too.
>=20
> Signed-off-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingsl=
ab.com>

Just one tiny comment below, otherwise looks good to me!

With or without addressing it:

Reviewed-by: Denis Mukhin <dmukhin@ford.com>=20

> ---
> Changes in v2:
> - use systemd in Debian
>=20
> I once got the following timeout:
>=20
>     (backend) =3D=3D> /var/log/xen/xldevd.log <=3D=3D
>     (backend) libxl: error: libxl_aoutils.c:539:async_exec_timeout: killi=
ng execution of /etc/xen/scripts/vif-bridge online because of timeout
>=20
> https://gitlab.com/xen-project/people/marmarek/xen/-/jobs/10961394681
> (docker-bobcat runner)
>=20
> Could be related to having systemd in domU (and being on QEMU TCG, not
> even KVM). I never hit this case on Alpine nor Debian with OpenRC. If
> that will repeat, may need some adjustments - more CPUs in QEMU? limit
> to more powerful runners? setup KVM on the runners?
> ---
>  automation/gitlab-ci/test.yaml                  | 19 ++++++++++++++++++-
>  automation/scripts/qemu-driverdomains-x86_64.sh | 18 +++++++++++++++--
>  2 files changed, 35 insertions(+), 2 deletions(-)
>=20
> diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.y=
aml
> index 5c4b2dc304b4..a5ae03b0eee9 100644
> --- a/automation/gitlab-ci/test.yaml
> +++ b/automation/gitlab-ci/test.yaml
> @@ -30,6 +30,17 @@
>      job: microcode-x86
>      ref: master
>=20
> +.debian-x86-64-test-needs: &debian-x86-64-test-needs
> +  - project: xen-project/hardware/test-artifacts
> +    job: linux-6.6.56-x86_64
> +    ref: master
> +  - project: xen-project/hardware/test-artifacts
> +    job: debian-12-x86_64-rootfs
> +    ref: master
> +  - project: xen-project/hardware/test-artifacts
> +    job: microcode-x86
> +    ref: master
> +
>  .qemu-arm64:
>    extends: .test-jobs-common
>    variables:
> @@ -664,6 +675,14 @@ qemu-alpine-driverdomains-x86_64-gcc:
>      - *x86-64-test-needs
>      - alpine-3.18-gcc
>=20
> +qemu-debian-12-driverdomains-x86_64-gcc:
> +  extends: .qemu-x86-64
> +  script:
> +    - ./automation/scripts/qemu-driverdomains-x86_64.sh 2>&1 | tee ${LOG=
FILE}
> +  needs:
> +    - *debian-x86-64-test-needs
> +    - debian-12-x86_64-gcc-debug
> +
>  qemu-smoke-x86-64-gcc:
>    extends: .qemu-smoke-x86-64
>    script:
> diff --git a/automation/scripts/qemu-driverdomains-x86_64.sh b/automation=
/scripts/qemu-driverdomains-x86_64.sh
> index a8e2ceb33527..e5765ba5dbd6 100755
> --- a/automation/scripts/qemu-driverdomains-x86_64.sh
> +++ b/automation/scripts/qemu-driverdomains-x86_64.sh
> @@ -23,7 +23,11 @@ if grep -q test=3Dbackend /proc/cmdline; then
>      brctl addbr xenbr0
>      ip link set xenbr0 up
>      ip addr add 192.168.0.1/24 dev xenbr0
> -    bash /etc/init.d/xendriverdomain start
> +    if [ -d /run/systemd ]; then
> +        systemctl start xendriverdomain
> +    else
> +        bash /etc/init.d/xendriverdomain start
> +    fi
>      # log backend-related logs to the console
>      tail -F /var/log/xen/xldevd.log /var/log/xen/xen-hotplug.log >>/dev/=
console 2>/dev/null &
>  else
> @@ -77,7 +81,11 @@ cat > etc/local.d/xen.start << EOF
>=20
>  set -x
>=20
> -bash /etc/init.d/xencommons start
> +if [ -d /run/systemd ]; then
> +    systemctl start xen-init-dom0.service
> +else
> +    bash /etc/init.d/xencommons start
> +fi
>=20
>  xl list
>=20
> @@ -94,6 +102,12 @@ cp ../bzImage ./root/
>  mkdir -p etc/default
>  echo 'XENCONSOLED_TRACE=3Dall' >> etc/default/xencommons
>  mkdir -p var/log/xen/console
> +if [ -e etc/systemd/system.conf ]; then
> +    chroot . systemctl enable proc-xen.mount \
> +        xenstored.service \
> +        xenconsoled.service \
> +        xen-init-dom0.service

I would keep the list of files sorted; that may help with future merges, if
any.

> +fi
>  mkfs.ext4 -d . ../dom0-rootfs.img 2048M
>  cd ..
>  rm -rf rootfs
> --
> git-series 0.9.1
>=20



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 17:42:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 17:42:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074933.1437402 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukR6U-0003ji-SV; Fri, 08 Aug 2025 17:42:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074933.1437402; Fri, 08 Aug 2025 17: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 1ukR6U-0003jb-Of; Fri, 08 Aug 2025 17:42:06 +0000
Received: by outflank-mailman (input) for mailman id 1074933;
 Fri, 08 Aug 2025 17:42:05 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1ukR6T-0003jV-RB
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 17:42:05 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ukR6T-0083iv-0h;
 Fri, 08 Aug 2025 17:42:05 +0000
Received: from [2a02:8012:3a1:0:a91b:b567:8726:98f7]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ukR6T-009O9f-03;
 Fri, 08 Aug 2025 17:42:05 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=D0daikWVaMxeVMkcoBVafYdjcbgci5pTVOZNNWWTonk=; b=pnix0kgfFb3Sfu0NbB+qNtw2BW
	tq95Hxco2hejXGkqnAUcainMjO8LWSCxscG/+nH9lbrhhVWETVYJD7OLcpjYwyj9gvDnHD6RmxhPj
	Fs/w6y3SzOlJKUsI48BbeX9HtbMo506h1nUIxdIdix/r2nXL/YdFf0XtPtzQUZGtl+ic=;
Message-ID: <400bf35e-65cc-40a6-ae7a-3c134e6d9c49@xen.org>
Date: Fri, 8 Aug 2025 18:42:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v14 1/4] xen/domain: unify domain ID allocation
Content-Language: en-GB
To: dmkhn@proton.me, xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com,
 michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
 dmukhin@ford.com
References: <20250808021938.669855-1-dmukhin@ford.com>
 <20250808021938.669855-2-dmukhin@ford.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20250808021938.669855-2-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Denis,

On 08/08/2025 03:19, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com>
> 
> Currently, there are two different domain ID allocation implementations:
> 
>    1) Sequential IDs allocation in dom0less Arm code based on max_init_domid;
> 
>    2) Sequential IDs allocation in XEN_DOMCTL_createdomain; does not use
>       max_init_domid (both Arm and x86).
> 
> The domain ID allocation covers dom0 or late hwdom, predefined domains,
> post-boot domains, excluding Xen system domains (domid >=
> DOMID_FIRST_RESERVED).
> 
> It makes sense to have a common helper code for such task across architectures
> (Arm and x86) and between dom0less / toolstack domU allocation.
> 
> Note, fixing dependency on max_init_domid is out of scope of this patch.
> 
> Wrap the domain ID allocation as an arch-independent function domid_alloc() in
> new common/domid.c based on the bitmap.
> 
> Allocation algorithm:
> - If an explicit domain ID is provided, verify its availability and use it if
>    ID is not used;
> - If DOMID_INVALID is provided, search the range [1..DOMID_FIRST_RESERVED-1],
>    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 range.
> 
> Remove is_free_domid() helper as it is not needed now.
> 
> No functional change intended.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>

Reviewed-by: Julien Grall <jgrall@amazon.com>

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 17:56:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 17:56:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074947.1437411 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukRKI-0005mM-1W; Fri, 08 Aug 2025 17:56:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074947.1437411; Fri, 08 Aug 2025 17:56: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 1ukRKH-0005mF-Tq; Fri, 08 Aug 2025 17:56:21 +0000
Received: by outflank-mailman (input) for mailman id 1074947;
 Fri, 08 Aug 2025 17:56:20 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1ukRKG-0005m9-JE
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 17:56:20 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ukRKF-0083zQ-2g;
 Fri, 08 Aug 2025 17:56:19 +0000
Received: from [2a02:8012:3a1:0:a91b:b567:8726:98f7]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ukRKF-009Ooj-20;
 Fri, 08 Aug 2025 17:56: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=JlEVCllSTcaeMn+RlU3GvP2eB8RVH/IE3eKMmcJeHkw=; b=rs6JbEL6juz8GUH7WX8JtR0O8K
	4bDFpInSurwnH9rnKJ9DlB/fQ0Jeqd8L9dvlDy07lbrWWHpm82VOh3secdw8jkxbwytLt0mPmtPQC
	SDLgJEZH7TbPNs0Y5v34R3lTwdrF3efz4a1HeEfPUUzncP16P21suzFpfzToK+YOYRrY=;
Message-ID: <230593d5-f3a2-4be8-973a-530c2debcb08@xen.org>
Date: Fri, 8 Aug 2025 18:56:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v14 3/4] tools/tests: introduce unit tests for domain ID
 allocator
Content-Language: en-GB
To: dmkhn@proton.me, xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com,
 michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
 dmukhin@ford.com
References: <20250808021938.669855-1-dmukhin@ford.com>
 <20250808021938.669855-4-dmukhin@ford.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20250808021938.669855-4-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Denis,

On 08/08/2025 03:20, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com>
> 
> Introduce some basic infrastructure for doing domain ID allocation unit tests,
> and add a few tests that ensure correctness of the domain ID allocator.

I am quite happy to see more unit tests for Xen :).

> 
> Use <xen-tools/bitops.h> and xen/lib/find-next-bit.c in test hardness code.
> 
> Adjust find-next-bit.c to be compiled with __XEN_TOOLS__.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>

With a couple of remarks below:

Acked-by: Julien Grall <jgrall@amazon.com>

> ---
> Changes since v13:
> - reworked bitops integration
> - hooked xen/lib/find-next-bit.c
> - cleaned up harness.h code
> - made test to use more IDs
> ---
>   tools/include/xen-tools/bitops.h       | 10 +++
>   tools/tests/Makefile                   |  2 +-
>   tools/tests/domid/.gitignore           |  2 +
>   tools/tests/domid/Makefile             | 56 +++++++++++++++++
>   tools/tests/domid/harness.h            | 54 ++++++++++++++++
>   tools/tests/domid/include/xen/domain.h |  1 +
>   tools/tests/domid/test-domid.c         | 86 ++++++++++++++++++++++++++
>   xen/lib/find-next-bit.c                |  5 ++
>   8 files changed, 215 insertions(+), 1 deletion(-)
>   create mode 100644 tools/tests/domid/.gitignore
>   create mode 100644 tools/tests/domid/Makefile
>   create mode 100644 tools/tests/domid/harness.h
>   create mode 120000 tools/tests/domid/include/xen/domain.h
>   create mode 100644 tools/tests/domid/test-domid.c
> 
> diff --git a/tools/include/xen-tools/bitops.h b/tools/include/xen-tools/bitops.h
> index 681482f6759f..3b98fba6d74c 100644
> --- a/tools/include/xen-tools/bitops.h
> +++ b/tools/include/xen-tools/bitops.h
> @@ -12,6 +12,16 @@
>   #define BITS_PER_LONG 32
>   #endif
>   
> +#define ffsl(x)       __builtin_ffsl(x)
> +
> +#define BIT_WORD(nr)  ((nr) / BITS_PER_LONG)
> +
> +#define BITS_TO_LONGS(bits) \
> +    (((bits) + BITS_PER_LONG - 1) / BITS_PER_LONG)
> +
> +#define DECLARE_BITMAP(name, bits) \
> +    unsigned long name[BITS_TO_LONGS(bits)]
> +
>   #define BITMAP_ENTRY(_nr,_bmap) ((_bmap))[(_nr) / 8]
>   #define BITMAP_SHIFT(_nr) ((_nr) % 8)
>   
> diff --git a/tools/tests/Makefile b/tools/tests/Makefile
> index 36928676a666..ff1666425436 100644
> --- a/tools/tests/Makefile
> +++ b/tools/tests/Makefile
> @@ -1,7 +1,7 @@
>   XEN_ROOT = $(CURDIR)/../..
>   include $(XEN_ROOT)/tools/Rules.mk
>   
> -SUBDIRS-y :=
> +SUBDIRS-y := domid

I would prefer if we keep SUBDIRST-y := as it is and add a new line 
SUBDIRS-y +=. This is mostly to reduce the chance that someone will add 
a new directory "abc" and forgot to update the line containing "domid".

>   SUBDIRS-y += resource
>   SUBDIRS-$(CONFIG_X86) += cpu-policy
>   SUBDIRS-$(CONFIG_X86) += tsx
> diff --git a/tools/tests/domid/.gitignore b/tools/tests/domid/.gitignore
> new file mode 100644
> index 000000000000..70e306b3c074
> --- /dev/null
> +++ b/tools/tests/domid/.gitignore
> @@ -0,0 +1,2 @@
> +*.o
> +test-domid
> diff --git a/tools/tests/domid/Makefile b/tools/tests/domid/Makefile
> new file mode 100644
> index 000000000000..d96ceca6d954
> --- /dev/null
> +++ b/tools/tests/domid/Makefile
> @@ -0,0 +1,56 @@
> +# SPDX-License-Identifier: GPL-2.0-only
> +#
> +# Unit tests for domain ID allocator.
> +#
> +# Copyright 2025 Ford Motor Company
> +
> +XEN_ROOT=$(CURDIR)/../../..
> +include $(XEN_ROOT)/tools/Rules.mk
> +
> +TESTS := test-domid
> +
> +vpath domid.c $(XEN_ROOT)/xen/common/
> +vpath find-next-bit.c $(XEN_ROOT)/xen/lib/
> +
> +.PHONY: all
> +all: $(TESTS)
> +
> +.PHONY: run
> +run: $(TESTS)
> +	$(foreach t,$(TESTS),./$(t);)
> +
> +.PHONY: clean
> +clean:
> +	$(RM) -- *.o $(TESTS) $(DEPS_RM)
> +
> +.PHONY: distclean
> +distclean: clean
> +	$(RM) -- *~
> +
> +.PHONY: install
> +install: all
> +	$(INSTALL_DIR) $(DESTDIR)$(LIBEXEC)/tests
> +	$(INSTALL_PROG) test-domid $(DESTDIR)$(LIBEXEC)/tests
> +
> +.PHONY: uninstall
> +uninstall:
> +	$(RM) -- $(DESTDIR)$(LIBEXEC)/tests/test-domid
> +
> +CFLAGS += -D__XEN_TOOLS__
> +# find-next-bit.c
> +CFLAGS += '-DEXPORT_SYMBOL(x)=' \
> +          -Dfind_first_bit \
> +          -Dfind_first_zero_bit \
> +          -Dfind_next_bit \
> +          -Dfind_next_bit_le \
> +          -Dfind_next_zero_bit_le
> +CFLAGS += $(APPEND_CFLAGS)
> +CFLAGS += $(CFLAGS_xeninclude)
> +CFLAGS += -I./include/
> +
> +LDFLAGS += $(APPEND_LDFLAGS)
> +
> +test-domid: domid.o find-next-bit.o test-domid.o
> +	$(CC) $^ -o $@ $(LDFLAGS)
> +
> +-include $(DEPS_INCLUDE)
> diff --git a/tools/tests/domid/harness.h b/tools/tests/domid/harness.h
> new file mode 100644
> index 000000000000..b043519dcb35
> --- /dev/null
> +++ b/tools/tests/domid/harness.h
> @@ -0,0 +1,54 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Unit test harness for domain ID allocator.
> + *
> + * Copyright 2025 Ford Motor Company
> + */
> +
> +#ifndef _TEST_HARNESS_
> +#define _TEST_HARNESS_
> +
> +#include <assert.h>
> +#include <stdbool.h>
> +#include <stdint.h>
> +#include <stdio.h>
> +
> +#include <xen-tools/common-macros.h>
> +#include <xen-tools/bitops.h>
> +
> +typedef bool spinlock_t;
> +typedef uint16_t domid_t;
> +
> +extern domid_t domid_alloc(domid_t domid);
> +extern void domid_free(domid_t domid);
> +
> +extern unsigned long find_next_zero_bit(const unsigned long *addr,
> +                                        unsigned long size,
> +                                        unsigned long offset);
> +
> +#define __test_and_set_bit(nr, addr)    test_and_set_bit(nr, addr)
> +#define __test_and_clear_bit(nr, addr)  test_and_clear_bit(nr, addr)
> +#define __set_bit(nr, addr)             set_bit(nr, addr)
> +
> +#define BUG_ON(x)                       assert(!(x))
> +#define ASSERT(x)                       assert(x)
> +
> +#define DEFINE_SPINLOCK(l)              spinlock_t l
> +#define spin_lock(l)                    (*(l) = true)
> +#define spin_unlock(l)                  (*(l) = false)

NIT: For hardening purpose, I wonder whether we should also assert that 
"l" is "false" for spin_lock() and "true" for spin_unlock(). This would 
help catching any bug in the locking.

> +
> +#define printk                          printf
> +
> +#define DOMID_FIRST_RESERVED            (100)
> +#define DOMID_INVALID                   (101)
> +
> +#endif /* _TEST_HARNESS_ */
> +
> +/*
> + * Local variables:
> + * mode: C
> + * c-file-style: "BSD"
> + * c-basic-offset: 4
> + * indent-tabs-mode: nil
> + * End:
> + */
> diff --git a/tools/tests/domid/include/xen/domain.h b/tools/tests/domid/include/xen/domain.h
> new file mode 120000
> index 000000000000..2eda9aed088e
> --- /dev/null
> +++ b/tools/tests/domid/include/xen/domain.h
> @@ -0,0 +1 @@
> +../../harness.h
> \ No newline at end of file
> diff --git a/tools/tests/domid/test-domid.c b/tools/tests/domid/test-domid.c
> new file mode 100644
> index 000000000000..7b6fb5ee2a7b
> --- /dev/null
> +++ b/tools/tests/domid/test-domid.c
> @@ -0,0 +1,86 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Unit tests for domain ID allocator.
> + *
> + * Copyright 2025 Ford Motor Company
> + */
> +
> +#include "harness.h"
> +
> +#define verify(exp, fmt, args...) do { \
> +    if ( !(exp) ) \
> +        printf(fmt, ## args); \
> +    assert(exp); \
> +} while (0);
> +
> +/*
> + * Fail on the first error, since tests are dependent on each other.
> + */
> +int main(int argc, char **argv)
> +{
> +    domid_t expected, allocated;
> +
> +    /* Test ID#0 cannot be allocated twice. */

For future improvement, we could check that for any domid [0; 
DOMID_FIRST_RESERVED[, we can allocate domid_alloc().

This would also confirm that domid_alloc() *only* allocates *one* ID.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 17:57:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 17:57:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074958.1437421 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukRL8-0006JC-Bt; Fri, 08 Aug 2025 17:57:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074958.1437421; Fri, 08 Aug 2025 17:57: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 1ukRL8-0006J5-8r; Fri, 08 Aug 2025 17:57:14 +0000
Received: by outflank-mailman (input) for mailman id 1074958;
 Fri, 08 Aug 2025 17:57:12 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1ukRL6-0006Ip-PV
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 17:57:12 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ukRL6-00840D-0X;
 Fri, 08 Aug 2025 17:57:12 +0000
Received: from [2a02:8012:3a1:0:a91b:b567:8726:98f7]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ukRL5-009Op5-2t;
 Fri, 08 Aug 2025 17:57: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:
	References:Cc:To:From:Subject:MIME-Version:Date:Message-ID;
	bh=bvFuWTz5Ug366ZF+g+XdWCG3kViw1DzJk1heNfwXdE8=; b=pyoCq5PflIppSqv7w0kBIDPNFn
	tZMlfu2MxObO9CfxTyPR6bsp46VcZ+CB9uoJxNtVAyf8yX9kdg6+NlrZ+/EkhnR+xfH1OHvNXG2wo
	OWf8AYnvci3enmXIJkR9tg+7i9AnTNDH/KJBvLg+DyCIXA8elcapCMnKN3+WW1PW3fZ4=;
Message-ID: <44b43350-8c0a-497d-b0b0-034a548afac0@xen.org>
Date: Fri, 8 Aug 2025 18:57:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v14 3/4] tools/tests: introduce unit tests for domain ID
 allocator
Content-Language: en-GB
From: Julien Grall <julien@xen.org>
To: dmkhn@proton.me, xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com,
 michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
 dmukhin@ford.com
References: <20250808021938.669855-1-dmukhin@ford.com>
 <20250808021938.669855-4-dmukhin@ford.com>
 <230593d5-f3a2-4be8-973a-530c2debcb08@xen.org>
In-Reply-To: <230593d5-f3a2-4be8-973a-530c2debcb08@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 08/08/2025 18:56, Julien Grall wrote:
> Hi Denis,
> 
> On 08/08/2025 03:20, dmkhn@proton.me wrote:
>> From: Denis Mukhin <dmukhin@ford.com>
>>
>> Introduce some basic infrastructure for doing domain ID allocation 
>> unit tests,
>> and add a few tests that ensure correctness of the domain ID allocator.
> 
> I am quite happy to see more unit tests for Xen :).
> 
>>
>> Use <xen-tools/bitops.h> and xen/lib/find-next-bit.c in test hardness 
>> code.
>>
>> Adjust find-next-bit.c to be compiled with __XEN_TOOLS__.
>>
>> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> 
> With a couple of remarks below:
> 
> Acked-by: Julien Grall <jgrall@amazon.com>

Actually, this should have been a Reviewed-by tag. Sorry.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 17:57:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 17:57:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074966.1437431 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukRLo-0006oq-Kn; Fri, 08 Aug 2025 17:57:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074966.1437431; Fri, 08 Aug 2025 17:57: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 1ukRLo-0006oj-Gh; Fri, 08 Aug 2025 17:57:56 +0000
Received: by outflank-mailman (input) for mailman id 1074966;
 Fri, 08 Aug 2025 17:57:55 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1ukRLn-0006oX-9b
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 17:57:55 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ukRLm-008412-2B;
 Fri, 08 Aug 2025 17:57:54 +0000
Received: from [2a02:8012:3a1:0:a91b:b567:8726:98f7]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ukRLm-009OpN-1g;
 Fri, 08 Aug 2025 17:57: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=DITnkZOB8mTZCe9y83DIK0g3T+kMeEHcKiQBFAJgHNY=; b=Hch70cDvefeZxLLQLrsN+gTuXq
	jETUZeq1UnXLCxFJcnia+rn0MtSA6SbFj5hJC4oTO9AOPNWLOLpLcIOSTpj27GZY/y0jNesDsdzfO
	qVh7Qq0vOP1Ln+EwnJtf3U3juaMAexk9SayMhp/xnBKtCvpgG0utjh8jwcvI5E3KfrBY=;
Message-ID: <b09dcc3c-4524-4b1d-a167-1ca0d617fb90@xen.org>
Date: Fri, 8 Aug 2025 18:57:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v14 4/4] xen/domain: update create_dom0() messages
Content-Language: en-GB
To: dmkhn@proton.me, xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com,
 michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
 dmukhin@ford.com, Alejandro Vallejo <alejandro.garciavallejo@amd.com>
References: <20250808021938.669855-1-dmukhin@ford.com>
 <20250808021938.669855-5-dmukhin@ford.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20250808021938.669855-5-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Denis,

On 08/08/2025 03:20, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com>
> 
> Use %pd for domain identification in error/panic messages in create_dom0().
> 
> No functional change.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> Reviewed-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Julien Grall <jgrall@amazon.com>

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 18:51:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 18:51:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1074987.1437440 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukSBU-0007qP-CP; Fri, 08 Aug 2025 18:51:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1074987.1437440; Fri, 08 Aug 2025 18:51: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 1ukSBU-0007qI-9v; Fri, 08 Aug 2025 18:51:20 +0000
Received: by outflank-mailman (input) for mailman id 1074987;
 Fri, 08 Aug 2025 18:51:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=cFBd=2U=samsung.com=m.szyprowski@srs-se1.protection.inumbo.net>)
 id 1ukSBS-0007qA-Az
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 18:51:19 +0000
Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com
 [210.118.77.11]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a8b21195-7488-11f0-b898-0df219b8e170;
 Fri, 08 Aug 2025 20:51:15 +0200 (CEST)
Received: from eucas1p2.samsung.com (unknown [182.198.249.207])
 by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id
 20250808185114euoutp0162c911292defe8bfee54f2309b1e8171~Z31I7WGpl0720707207euoutp01Y;
 Fri,  8 Aug 2025 18:51:14 +0000 (GMT)
Received: from eusmtip1.samsung.com (unknown [203.254.199.221]) by
 eucas1p2.samsung.com (KnoxPortal) with ESMTPA id
 20250808185112eucas1p285bfbeb3352a16df0b5c8f262fadbf2f~Z31Hzuzfc1555715557eucas1p2H;
 Fri,  8 Aug 2025 18:51:12 +0000 (GMT)
Received: from [106.210.134.192] (unknown [106.210.134.192]) by
 eusmtip1.samsung.com (KnoxPortal) with ESMTPA id
 20250808185109eusmtip1cf791168d581e5b5b824a27d8cdd9069~Z31ElK-rK1126511265eusmtip1F;
 Fri,  8 Aug 2025 18:51:09 +0000 (GMT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a8b21195-7488-11f0-b898-0df219b8e170
DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20250808185114euoutp0162c911292defe8bfee54f2309b1e8171~Z31I7WGpl0720707207euoutp01Y
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com;
	s=mail20170921; t=1754679074;
	bh=eZMpLLPpWLfEcYOqjTqa6+eB/bqRZJ+BbYqsgnnPbkY=;
	h=Date:Subject:To:Cc:From:In-Reply-To:References:From;
	b=WGyqUFMDFBBsAtsI8xiD1Ayr7WYuZYdyBJMCoPCRGfrVxwAdMcl3GCV7Qwkcc4nI/
	 gnDfUeRP8iiJIUgEStFM4TfVVnoq/LDogKUpBA2D+NmwrtJRryBOG1ru2ITf74oehS
	 IO287BU42jFk8ZARXzvIDO/cRSfPjtUJVNlWylGo=
Message-ID: <a154e058-c0e6-4208-9f52-57cec22eaf7d@samsung.com>
Date: Fri, 8 Aug 2025 20:51:08 +0200
MIME-Version: 1.0
User-Agent: Betterbird (Windows)
Subject: Re: [PATCH v1 00/16] dma-mapping: migrate to physical address-based
 API
To: Jason Gunthorpe <jgg@nvidia.com>, Leon Romanovsky <leon@kernel.org>
Cc: Abdiel Janulgue <abdiel.janulgue@gmail.com>, Alexander Potapenko
	<glider@google.com>, Alex Gaynor <alex.gaynor@gmail.com>, Andrew Morton
	<akpm@linux-foundation.org>, Christoph Hellwig <hch@lst.de>, Danilo
	Krummrich <dakr@kernel.org>, iommu@lists.linux.dev, Jason Wang
	<jasowang@redhat.com>, Jens Axboe <axboe@kernel.dk>, Joerg Roedel
	<joro@8bytes.org>, Jonathan Corbet <corbet@lwn.net>, Juergen Gross
	<jgross@suse.com>, kasan-dev@googlegroups.com, Keith Busch
	<kbusch@kernel.org>, linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org, Madhavan Srinivasan
	<maddy@linux.ibm.com>, Masami Hiramatsu <mhiramat@kernel.org>, Michael
	Ellerman <mpe@ellerman.id.au>, "Michael S. Tsirkin" <mst@redhat.com>, Miguel
	Ojeda <ojeda@kernel.org>, Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org, Sagi Grimberg <sagi@grimberg.me>, Stefano
	Stabellini <sstabellini@kernel.org>, Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Content-Language: en-US
From: Marek Szyprowski <m.szyprowski@samsung.com>
In-Reply-To: <20250807141929.GN184255@nvidia.com>
Content-Transfer-Encoding: 8bit
X-CMS-MailID: 20250808185112eucas1p285bfbeb3352a16df0b5c8f262fadbf2f
X-Msg-Generator: CA
Content-Type: text/plain; charset="utf-8"
X-RootMTR: 20250807141938eucas1p2319a0526b25db120b3c9aeb49f69cce1
X-EPHeader: CA
X-CMS-RootMailID: 20250807141938eucas1p2319a0526b25db120b3c9aeb49f69cce1
References: <cover.1754292567.git.leon@kernel.org>
	<CGME20250807141938eucas1p2319a0526b25db120b3c9aeb49f69cce1@eucas1p2.samsung.com>
	<20250807141929.GN184255@nvidia.com>

On 07.08.2025 16:19, Jason Gunthorpe wrote:
> On Mon, Aug 04, 2025 at 03:42:34PM +0300, Leon Romanovsky wrote:
>> Changelog:
>> v1:
>>   * Added new DMA_ATTR_MMIO attribute to indicate
>>     PCI_P2PDMA_MAP_THRU_HOST_BRIDGE path.
>>   * Rewrote dma_map_* functions to use thus new attribute
>> v0: https://lore.kernel.org/all/cover.1750854543.git.leon@kernel.org/
>> ------------------------------------------------------------------------
>>
>> This series refactors the DMA mapping to use physical addresses
>> as the primary interface instead of page+offset parameters. This
>> change aligns the DMA API with the underlying hardware reality where
>> DMA operations work with physical addresses, not page structures.
> Lets elaborate this as Robin asked:
>
> This series refactors the DMA mapping API to provide a phys_addr_t
> based, and struct-page free, external API that can handle all the
> mapping cases we want in modern systems:
>
>   - struct page based cachable DRAM
>   - struct page MEMORY_DEVICE_PCI_P2PDMA PCI peer to peer non-cachable MMIO
>   - struct page-less PCI peer to peer non-cachable MMIO
>   - struct page-less "resource" MMIO
>
> Overall this gets much closer to Matthew's long term wish for
> struct-pageless IO to cachable DRAM. The remaining primary work would
> be in the mm side to allow kmap_local_pfn()/phys_to_virt() to work on
> phys_addr_t without a struct page.
>
> The general design is to remove struct page usage entirely from the
> DMA API inner layers. For flows that need to have a KVA for the
> physical address they can use kmap_local_pfn() or phys_to_virt(). This
> isolates the struct page requirements to MM code only. Long term all
> removals of struct page usage are supporting Matthew's memdesc
> project which seeks to substantially transform how struct page works.
>
> Instead make the DMA API internals work on phys_addr_t. Internally
> there are still dedicated 'page' and 'resource' flows, except they are
> now distinguished by a new DMA_ATTR_MMIO instead of by callchain. Both
> flows use the same phys_addr_t.
>
> When DMA_ATTR_MMIO is specified things work similar to the existing
> 'resource' flow. kmap_local_pfn(), phys_to_virt(), phys_to_page(),
> pfn_valid(), etc are never called on the phys_addr_t. This requires
> rejecting any configuration that would need swiotlb. CPU cache
> flushing is not required, and avoided, as ATTR_MMIO also indicates the
> address have no cachable mappings. This effectively removes any
> DMA API side requirement to have struct page when DMA_ATTR_MMIO is
> used.
>
> In the !DMA_ATTR_MMIO mode things work similarly to the 'page' flow,
> except on the common path of no cache flush, no swiotlb it never
> touches a struct page. When cache flushing or swiotlb copying
> kmap_local_pfn()/phys_to_virt() are used to get a KVA for CPU
> usage. This was already the case on the unmap side, now the map side
> is symmetric.
>
> Callers are adjusted to set DMA_ATTR_MMIO. Existing 'resource' users
> must set it. The existing struct page based MEMORY_DEVICE_PCI_P2PDMA
> path must also set it. This corrects some existing bugs where iommu
> mappings for P2P MMIO were improperly marked IOMMU_CACHE.
>
> Since ATTR_MMIO is made to work with all the existing DMA map entry
> points, particularly dma_iova_link(), this finally allows a way to use
> the new DMA API to map PCI P2P MMIO without creating struct page. The
> VFIO DMABUF series demonstrates how this works. This is intended to
> replace the incorrect driver use of dma_map_resource() on PCI BAR
> addresses.
>
> This series does the core code and modern flows. A followup series
> will give the same treatement to the legacy dma_ops implementation.

Thanks for the elaborate description, that's something that was missing 
in the previous attempt. I read again all the previous discussion and 
this explanation and there are stillÂ two things that imho needs more 
clarification.


First - basing theÂ API on the phys_addr_t.

Page based API had the advantage that it was really hard to abuse it and 
call for something that is not 'a normal RAM'. I initially though that 
phys_addr_t based API will somehow simplify arch specific 
implementation, as some of them indeed rely on phys_addr_t internally, 
but I missed other things pointed by Robin. Do we have here any 
alternative?


Second - making dma_map_phys() a single API to handle all cases.

Do we really need such single function to handle all cases? To handle 
P2P case, the caller already must pass DMA_ATTR_MMIO, so it must somehow 
keep such information internally. Cannot it just call existing 
dma_map_resource(), so there will be clearÂ distinction between these 2 
cases (DMA to RAM and P2P DMA)? Do we need additional check for 
DMA_ATTR_MMIO for every typical DMA user? I know that branching is 
cheap, but this will probably increase code size for most of the typical 
users for no reason.


Best regards
-- 
Marek Szyprowski, PhD
Samsung R&D Institute Poland



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 20:23:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 20:23:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1075026.1437527 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukTcg-0007Ui-CA; Fri, 08 Aug 2025 20:23:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1075026.1437527; Fri, 08 Aug 2025 20:23: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 1ukTcg-0007TE-2w; Fri, 08 Aug 2025 20:23:30 +0000
Received: by outflank-mailman (input) for mailman id 1075026;
 Fri, 08 Aug 2025 20:23:28 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Dtzj=2U=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ukTce-0005tW-4N
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 20:23:28 +0000
Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com
 [2a00:1450:4864:20::431])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8acc2793-7495-11f0-a324-13f23c93f187;
 Fri, 08 Aug 2025 22:23:27 +0200 (CEST)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-3b79bdc9a7dso1424472f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 08 Aug 2025 13:23:27 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459e075047fsm103989805e9.1.2025.08.08.13.23.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Aug 2025 13:23: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>
X-Inumbo-ID: 8acc2793-7495-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754684607; x=1755289407; 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=b2avIK78ICYjlmOagbLqWHEpOkiTfdHUyKFlDzZ7jHg=;
        b=UilhFhEJbZhZC2zsnafjD+jqAqgNRJG33GuL6VCyNO9dUH07xHbaMsAHUchk52HodJ
         fHItsT9Cg8dE5FyPPyv0fLcYjt0GQkjDdSG+dzi5MLC/x3ODRIThhmloT9OddiKNijVs
         6tSzJql/blKWEyRPeBZ8nHUF8AIgNiMfZ1uXI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754684607; x=1755289407;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=b2avIK78ICYjlmOagbLqWHEpOkiTfdHUyKFlDzZ7jHg=;
        b=gHJv0RyNNnlIMRxkY0B8mRrtf8CriM15oOQRtwxr52DOyiOMvJwhWNmc/9dZ2NTyEQ
         P3Ym/IOPF+ZHSmCRLqyZ7rFePf3Mg2maX0jr2hRc1nnye2u7S6GurN25WxUBnRpzKlhe
         g1cMgOLgB+s+ZX6Cf2P2c8+g8t9tjZCy7psTqzexRlivBdGQY1DnBBpS2zdheHs+4fzf
         tCUalZH5hi2Ap0vouhWooZY1TPKaIzV6HP8KBEHki92+mBJgYubYhsAIhcbr/esxPIsA
         jrA067/vdDkaPdwK4g57yJh9DU2GoYNB4/0zAWpMahl2Pg8vijxtqFLYfN31a4m+1myO
         90DQ==
X-Gm-Message-State: AOJu0YzWrwfDb3OHWDksLgE2FtKbSiyJdvwZSlFLhYTQcRRR6YI9a12i
	v2uhAPP5GhRw8rgmZH84zJ4BZiq5H2UgdWqIUdLYgNrs2THXMwe5cw8bPZJqDQc3enbt+YeYUwx
	HJe4nzJI=
X-Gm-Gg: ASbGncvYAdrAJksvMqo+kSkGDB79R432BJt9KL8aeJNI4oqEB6gcMkZuYrpjyNDCyzz
	8lXMTuvqos6UeLtOZPFR5hR4CU7miV23ikKGwgHf/RNt6TsvX2yhU6tY55fSWdmoJERpmPWqWiq
	WYZy3ptzAKd7sOukAEX7mXgOuiKxELviEOPTx+dFCNfEUVle1Y4DPfPQqU4q5VYA9utxKg87N1I
	PqmGiGss8Kg77KFoPaYiyQ9L11KHOqI7BkOcVqUyTnlxO8/BAeLGaNmKMbQk8EtAIpQrrZSFQql
	q8GeBz2O1b2nW3gOzW15dE8LaO9i53fdBtvHyCyMySqjysFS3cIJ79nfsNrQRX54eNth0BthEW/
	qMt6lOld3jjO+f9YpOhQOV4D1O1eB7b7z0wYM//ail0Sb/H6euPf+rZZMIOVNtiWbyhktt+qoDI
	TP1daxaSCtDOw=
X-Google-Smtp-Source: AGHT+IFhsUqtMUd00xT8YcU446osfo1/oRuXTXfsZYBCQBDf1L75TZHaWK6AXiKPj7YHi0QESLC+PQ==
X-Received: by 2002:a05:6000:2408:b0:3b8:d1d9:70ba with SMTP id ffacd0b85a97d-3b900b7517dmr3549077f8f.32.1754684606743;
        Fri, 08 Aug 2025 13:23:26 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 09/22] x86/traps: Move load_system_tables() into traps-setup.c
Date: Fri,  8 Aug 2025 21:23:01 +0100
Message-Id: <20250808202314.1045968-10-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Switch it to Xen coding style and fix MISRA violations.  Make it static as
there are no external caller now.

Since commit a35816b5cae8 ("x86/traps: Introduce early_traps_init() and
simplify setup"), load_system_tables() is called later on the BSP, so the
SYS_STATE_early_boot check can be dropped from the safety BUG_ON().

Move the BUILD_BUG_ON() into build_assertions(), and introduce an
endof_field() helper to make the expression clearer.

Swap wrmsrl(MSR_ISST, ...) for wrmsrns().  No serialisation is needed at this
point.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/cpu/common.c         | 118 --------------------------
 xen/arch/x86/include/asm/system.h |   1 -
 xen/arch/x86/traps-setup.c        | 132 ++++++++++++++++++++++++++++++
 xen/include/xen/macros.h          |   2 +
 4 files changed, 134 insertions(+), 119 deletions(-)

diff --git a/xen/arch/x86/cpu/common.c b/xen/arch/x86/cpu/common.c
index cdc41248d4e9..da05015578aa 100644
--- a/xen/arch/x86/cpu/common.c
+++ b/xen/arch/x86/cpu/common.c
@@ -843,124 +843,6 @@ void print_cpu_info(unsigned int cpu)
 
 static cpumask_t cpu_initialized;
 
-/*
- * Sets up system tables and descriptors.
- *
- * - Sets up TSS with stack pointers, including ISTs
- * - Inserts TSS selector into regular and compat GDTs
- * - Loads GDT, IDT, TR then null LDT
- * - Sets up IST references in the IDT
- */
-void load_system_tables(void)
-{
-	unsigned int i, cpu = smp_processor_id();
-	unsigned long stack_bottom = get_stack_bottom(),
-		stack_top = stack_bottom & ~(STACK_SIZE - 1);
-	/*
-	 * NB: define tss_page as a local variable because clang 3.5 doesn't
-	 * support using ARRAY_SIZE against per-cpu variables.
-	 */
-	struct tss_page *tss_page = &this_cpu(tss_page);
-	idt_entry_t *idt = this_cpu(idt);
-
-	/* The TSS may be live.	 Disuade any clever optimisations. */
-	volatile struct tss64 *tss = &tss_page->tss;
-	seg_desc_t *gdt =
-		this_cpu(gdt) - FIRST_RESERVED_GDT_ENTRY;
-
-	const struct desc_ptr gdtr = {
-		.base = (unsigned long)gdt,
-		.limit = LAST_RESERVED_GDT_BYTE,
-	};
-	const struct desc_ptr idtr = {
-		.base = (unsigned long)idt,
-		.limit = sizeof(bsp_idt) - 1,
-	};
-
-	/*
-	 * Set up the TSS.  Warning - may be live, and the NMI/#MC must remain
-	 * valid on every instruction boundary.  (Note: these are all
-	 * semantically ACCESS_ONCE() due to tss's volatile qualifier.)
-	 *
-	 * rsp0 refers to the primary stack.  #MC, NMI, #DB and #DF handlers
-	 * each get their own stacks.  No IO Bitmap.
-	 */
-	tss->rsp0 = stack_bottom;
-	tss->ist[IST_MCE - 1] = stack_top + (1 + IST_MCE) * PAGE_SIZE;
-	tss->ist[IST_NMI - 1] = stack_top + (1 + IST_NMI) * PAGE_SIZE;
-	tss->ist[IST_DB  - 1] = stack_top + (1 + IST_DB)  * PAGE_SIZE;
-	tss->ist[IST_DF  - 1] = stack_top + (1 + IST_DF)  * PAGE_SIZE;
-	tss->bitmap = IOBMP_INVALID_OFFSET;
-
-	/* All other stack pointers poisioned. */
-	for ( i = IST_MAX; i < ARRAY_SIZE(tss->ist); ++i )
-		tss->ist[i] = 0x8600111111111111ul;
-	tss->rsp1 = 0x8600111111111111ul;
-	tss->rsp2 = 0x8600111111111111ul;
-
-	/*
-	 * Set up the shadow stack IST.  Used entries must point at the
-	 * supervisor stack token.  Unused entries are poisoned.
-	 *
-	 * This IST Table may be live, and the NMI/#MC entries must
-	 * remain valid on every instruction boundary, hence the
-	 * volatile qualifier.
-	 */
-	if (cpu_has_xen_shstk) {
-		volatile uint64_t *ist_ssp = tss_page->ist_ssp;
-		unsigned long
-			mce_ssp = stack_top + (IST_MCE * IST_SHSTK_SIZE) - 8,
-			nmi_ssp = stack_top + (IST_NMI * IST_SHSTK_SIZE) - 8,
-			db_ssp  = stack_top + (IST_DB  * IST_SHSTK_SIZE) - 8,
-			df_ssp  = stack_top + (IST_DF  * IST_SHSTK_SIZE) - 8;
-
-		ist_ssp[0] = 0x8600111111111111ul;
-		ist_ssp[IST_MCE] = mce_ssp;
-		ist_ssp[IST_NMI] = nmi_ssp;
-		ist_ssp[IST_DB]	 = db_ssp;
-		ist_ssp[IST_DF]	 = df_ssp;
-		for ( i = IST_DF + 1; i < ARRAY_SIZE(tss_page->ist_ssp); ++i )
-			ist_ssp[i] = 0x8600111111111111ul;
-
-		if (IS_ENABLED(CONFIG_XEN_SHSTK) && rdssp() != SSP_NO_SHSTK) {
-			/*
-			 * Rewrite supervisor tokens when shadow stacks are
-			 * active.  This resets any busy bits left across S3.
-			 */
-			wrss(mce_ssp, _p(mce_ssp));
-			wrss(nmi_ssp, _p(nmi_ssp));
-			wrss(db_ssp,  _p(db_ssp));
-			wrss(df_ssp,  _p(df_ssp));
-		}
-
-		wrmsrl(MSR_ISST, (unsigned long)ist_ssp);
-	}
-
-	_set_tssldt_desc(gdt + TSS_ENTRY, (unsigned long)tss,
-			 sizeof(*tss) - 1, SYS_DESC_tss_avail);
-	if ( IS_ENABLED(CONFIG_PV32) )
-		_set_tssldt_desc(
-			this_cpu(compat_gdt) - FIRST_RESERVED_GDT_ENTRY + TSS_ENTRY,
-			(unsigned long)tss, sizeof(*tss) - 1, SYS_DESC_tss_busy);
-
-	per_cpu(full_gdt_loaded, cpu) = false;
-	lgdt(&gdtr);
-	lidt(&idtr);
-	ltr(TSS_SELECTOR);
-	lldt(0);
-
-	enable_each_ist(idt);
-
-	/*
-	 * Bottom-of-stack must be 16-byte aligned!
-	 *
-	 * Defer checks until exception support is sufficiently set up.
-	 */
-	BUILD_BUG_ON((sizeof(struct cpu_info) -
-		      sizeof(struct cpu_user_regs)) & 0xf);
-	BUG_ON(system_state != SYS_STATE_early_boot && (stack_bottom & 0xf));
-}
-
 static void skinit_enable_intr(void)
 {
 	uint64_t val;
diff --git a/xen/arch/x86/include/asm/system.h b/xen/arch/x86/include/asm/system.h
index 57446c5b465c..3cdc56e4ba6d 100644
--- a/xen/arch/x86/include/asm/system.h
+++ b/xen/arch/x86/include/asm/system.h
@@ -256,7 +256,6 @@ static inline int local_irq_is_enabled(void)
 #define BROKEN_ACPI_Sx          0x0001
 #define BROKEN_INIT_AFTER_S1    0x0002
 
-void load_system_tables(void);
 void subarch_percpu_traps_init(void);
 
 #endif
diff --git a/xen/arch/x86/traps-setup.c b/xen/arch/x86/traps-setup.c
index 8ca379c9e4cb..13b8fcf0ba51 100644
--- a/xen/arch/x86/traps-setup.c
+++ b/xen/arch/x86/traps-setup.c
@@ -7,6 +7,7 @@
 
 #include <asm/idt.h>
 #include <asm/msr.h>
+#include <asm/shstk.h>
 #include <asm/system.h>
 #include <asm/traps.h>
 
@@ -19,6 +20,124 @@ boolean_param("ler", opt_ler);
 
 void nocall entry_PF(void);
 
+/*
+ * Sets up system tables and descriptors for IDT devliery.
+ *
+ * - Sets up TSS with stack pointers, including ISTs
+ * - Inserts TSS selector into regular and compat GDTs
+ * - Loads GDT, IDT, TR then null LDT
+ * - Sets up IST references in the IDT
+ */
+static void load_system_tables(void)
+{
+    unsigned int i, cpu = smp_processor_id();
+    unsigned long stack_bottom = get_stack_bottom(),
+        stack_top = stack_bottom & ~(STACK_SIZE - 1);
+    /*
+     * NB: define tss_page as a local variable because clang 3.5 doesn't
+     * support using ARRAY_SIZE against per-cpu variables.
+     */
+    struct tss_page *tss_page = &this_cpu(tss_page);
+    idt_entry_t *idt = this_cpu(idt);
+
+    /* The TSS may be live.  Disuade any clever optimisations. */
+    volatile struct tss64 *tss = &tss_page->tss;
+    seg_desc_t *gdt =
+        this_cpu(gdt) - FIRST_RESERVED_GDT_ENTRY;
+
+    const struct desc_ptr gdtr = {
+        .base = (unsigned long)gdt,
+        .limit = LAST_RESERVED_GDT_BYTE,
+    };
+    const struct desc_ptr idtr = {
+        .base = (unsigned long)idt,
+        .limit = sizeof(bsp_idt) - 1,
+    };
+
+    /*
+     * Set up the TSS.  Warning - may be live, and the NMI/#MC must remain
+     * valid on every instruction boundary.  (Note: these are all
+     * semantically ACCESS_ONCE() due to tss's volatile qualifier.)
+     *
+     * rsp0 refers to the primary stack.  #MC, NMI, #DB and #DF handlers
+     * each get their own stacks.  No IO Bitmap.
+     */
+    tss->rsp0 = stack_bottom;
+    tss->ist[IST_MCE - 1] = stack_top + (1 + IST_MCE) * PAGE_SIZE;
+    tss->ist[IST_NMI - 1] = stack_top + (1 + IST_NMI) * PAGE_SIZE;
+    tss->ist[IST_DB  - 1] = stack_top + (1 + IST_DB)  * PAGE_SIZE;
+    tss->ist[IST_DF  - 1] = stack_top + (1 + IST_DF)  * PAGE_SIZE;
+    tss->bitmap = IOBMP_INVALID_OFFSET;
+
+    /* All other stack pointers poisioned. */
+    for ( i = IST_MAX; i < ARRAY_SIZE(tss->ist); ++i )
+        tss->ist[i] = 0x8600111111111111UL;
+    tss->rsp1 = 0x8600111111111111UL;
+    tss->rsp2 = 0x8600111111111111UL;
+
+    /*
+     * Set up the shadow stack IST.  Used entries must point at the
+     * supervisor stack token.  Unused entries are poisoned.
+     *
+     * This IST Table may be live, and the NMI/#MC entries must
+     * remain valid on every instruction boundary, hence the
+     * volatile qualifier.
+     */
+    if ( cpu_has_xen_shstk )
+    {
+        volatile uint64_t *ist_ssp = tss_page->ist_ssp;
+        unsigned long
+            mce_ssp = stack_top + (IST_MCE * IST_SHSTK_SIZE) - 8,
+            nmi_ssp = stack_top + (IST_NMI * IST_SHSTK_SIZE) - 8,
+            db_ssp  = stack_top + (IST_DB  * IST_SHSTK_SIZE) - 8,
+            df_ssp  = stack_top + (IST_DF  * IST_SHSTK_SIZE) - 8;
+
+        ist_ssp[0] = 0x8600111111111111UL;
+        ist_ssp[IST_MCE] = mce_ssp;
+        ist_ssp[IST_NMI] = nmi_ssp;
+        ist_ssp[IST_DB]  = db_ssp;
+        ist_ssp[IST_DF]  = df_ssp;
+        for ( i = IST_DF + 1; i < ARRAY_SIZE(tss_page->ist_ssp); ++i )
+            ist_ssp[i] = 0x8600111111111111UL;
+
+        if ( IS_ENABLED(CONFIG_XEN_SHSTK) && rdssp() != SSP_NO_SHSTK )
+        {
+            /*
+             * Rewrite supervisor tokens when shadow stacks are
+             * active.  This resets any busy bits left across S3.
+             */
+            wrss(mce_ssp, _p(mce_ssp));
+            wrss(nmi_ssp, _p(nmi_ssp));
+            wrss(db_ssp,  _p(db_ssp));
+            wrss(df_ssp,  _p(df_ssp));
+        }
+
+        wrmsrns(MSR_ISST, (unsigned long)ist_ssp);
+    }
+
+    _set_tssldt_desc(gdt + TSS_ENTRY, (unsigned long)tss,
+                     sizeof(*tss) - 1, SYS_DESC_tss_avail);
+    if ( IS_ENABLED(CONFIG_PV32) )
+        _set_tssldt_desc(
+            this_cpu(compat_gdt) - FIRST_RESERVED_GDT_ENTRY + TSS_ENTRY,
+            (unsigned long)tss, sizeof(*tss) - 1, SYS_DESC_tss_busy);
+
+    per_cpu(full_gdt_loaded, cpu) = false;
+    lgdt(&gdtr);
+    lidt(&idtr);
+    ltr(TSS_SELECTOR);
+    lldt(0);
+
+    enable_each_ist(idt);
+
+    /*
+     * tss->rsp0 must be 16-byte aligned.
+     *
+     * Defer checks until exception support is sufficiently set up.
+     */
+    BUG_ON(stack_bottom & 15);
+}
+
 static void __init init_ler(void)
 {
     unsigned int msr = 0;
@@ -139,3 +258,16 @@ void asmlinkage ap_early_traps_init(void)
 {
     load_system_tables();
 }
+
+static void __init __maybe_unused build_assertions(void)
+{
+    /*
+     * This is best-effort (it doesn't cover some padding corner cases), but
+     * is preforable to hitting the check at boot time.
+     *
+     * tss->rsp0, pointing at the end of cpu_info.guest_cpu_user_regs, must be
+     * 16-byte aligned.
+     */
+    BUILD_BUG_ON((sizeof(struct cpu_info) -
+                  endof_field(struct cpu_info, guest_cpu_user_regs)) & 15);
+}
diff --git a/xen/include/xen/macros.h b/xen/include/xen/macros.h
index cd528fbdb127..726ba221e0d8 100644
--- a/xen/include/xen/macros.h
+++ b/xen/include/xen/macros.h
@@ -102,6 +102,8 @@
  */
 #define sizeof_field(type, member) sizeof(((type *)NULL)->member)
 
+#define endof_field(type, member) (offsetof(type, member) + sizeof_field(type, member))
+
 /* Cast an arbitrary integer to a pointer. */
 #define _p(x) ((void *)(unsigned long)(x))
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 20:23:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 20:23:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1075022.1437501 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukTce-0006xy-BN; Fri, 08 Aug 2025 20:23:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1075022.1437501; Fri, 08 Aug 2025 20:23: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 1ukTce-0006wp-5K; Fri, 08 Aug 2025 20:23:28 +0000
Received: by outflank-mailman (input) for mailman id 1075022;
 Fri, 08 Aug 2025 20:23:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Dtzj=2U=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ukTcc-0005tW-BF
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 20:23:26 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 89bf789a-7495-11f0-a324-13f23c93f187;
 Fri, 08 Aug 2025 22:23:26 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-4589b3e3820so26573755e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 08 Aug 2025 13:23:26 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459e075047fsm103989805e9.1.2025.08.08.13.23.24
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Aug 2025 13:23: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>
X-Inumbo-ID: 89bf789a-7495-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754684605; x=1755289405; 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=h85hVDVJx6qX407q69uvd9gGoiZ0d1y+NYblpylfdg8=;
        b=qGZfcltPjK3K4MD4I+U4S/OW6x2tBlO0r/RYcWspvxqXjEdkQdZTeh+91IYvjEanDJ
         IzCHL6aHaM8W5hk4mNX6kdFgzPz+2ShkOOLPtNgFKkN7HyU1r21E5+1vmlI+gy35XSUo
         GCPKfplEeA3fA15QduhXq8wht+UJIg32t4LIE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754684605; x=1755289405;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=h85hVDVJx6qX407q69uvd9gGoiZ0d1y+NYblpylfdg8=;
        b=iX6HQqJCotE6A/zWeOMKiflhHY0K1rY4JUYqWmaE0jJfXcPS9fK+13rKhEHKpNYNZi
         gcw2aNGM/ONiMaUG3ejPpvI2i60Ve7niv2iIFkQmQDfGIRvlU8YeL+V2IUYIwmI1+e+p
         DnzekAHho4Zn05tIfq+037AJbNpEHJELXx+8GtaAeLEFsw+fAIBPOv6hZ5KZ9cFE3+R5
         MrnGr+F5cMeN6heFgXqxgAsMngG4Zd8fNXb2dc/tNZxpdZVhT/gy6D6jbLbMQDlfoyWp
         vz3tYaqo/RpEf0X14c0wjuXUs71xNLk9SLxZmz403GJ80SfoXVr4hkVH5aJkGbCXm/ml
         yDUQ==
X-Gm-Message-State: AOJu0Yzj8O0cet9RcD1Z0xR0XuGRtQzeao6vqtUtRtock+SsacJBoFG/
	kVtryNMMYK3Ance/GMdvyMKNNI99xIxVw0axo/tVUGF5/uks+DuvJzqxyKe2NLum9ILKJXoQKOO
	hPIfI21M=
X-Gm-Gg: ASbGncvl+kcmVNZD3FRJNRDGvZFGSrAwXB3Vc3P9+CTo7gGR/MsNJ4j7G/kCe8T2Tmp
	ZsXUyVLwN1tb98orIgz+MaHgmot0fQX3lv5tqU7v1Hdri12ID8TeMxaGj+2/TxTAoBII62f+fIe
	O7F1If6Vhz5fWv5zv0uixMB1qIR4E8YMGlkyGK3b/WrxztwktmVpwdtgBivEH1POAfy8Z8Oippa
	OXN4uFj/RAQ4ez4NLMwlctZybH4j/a21qJYnYjBYrVy48NDu9YR3zs0n8S+NZundwOKF8VNCRhI
	GWjzUXqoUzfBJL+HQSxWMoaOwwxqCxOth+MfAB79MDGdbCwUBApktrYaaO6UBtaGy275uyFy+wp
	ERZ0ClNMXvygXfaIGHw8xysSx/xZUOZPJFS9TbqfX3x9KLL6Pg1FWGnzOgTJUGEUBE1aOKvj92m
	nR
X-Google-Smtp-Source: AGHT+IGYu93z8rD/S4ZzA0Js9mi1Yg20K9J7g4zt6O4WDVxrf7zwfkIAFpVjDibxTtyZOq96BOWg6Q==
X-Received: by 2002:a05:600c:1c98:b0:456:eab:633e with SMTP id 5b1f17b1804b1-459fb4fb214mr14807545e9.17.1754684605171;
        Fri, 08 Aug 2025 13:23: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>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 07/22] x86/spec-ctrl: Rework init_shadow_spec_ctrl_state() to take an info pointer
Date: Fri,  8 Aug 2025 21:22:59 +0100
Message-Id: <20250808202314.1045968-8-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

We're going to want to reuse it for a remote stack shortly.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/include/asm/spec_ctrl.h | 4 +---
 xen/arch/x86/setup.c                 | 2 +-
 xen/arch/x86/smpboot.c               | 2 +-
 xen/arch/x86/spec_ctrl.c             | 2 +-
 4 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/xen/arch/x86/include/asm/spec_ctrl.h b/xen/arch/x86/include/asm/spec_ctrl.h
index 6724d3812029..3d92928f9439 100644
--- a/xen/arch/x86/include/asm/spec_ctrl.h
+++ b/xen/arch/x86/include/asm/spec_ctrl.h
@@ -99,10 +99,8 @@ extern bool opt_bp_spec_reduce;
  */
 extern paddr_t l1tf_addr_mask, l1tf_safe_maddr;
 
-static inline void init_shadow_spec_ctrl_state(void)
+static inline void init_shadow_spec_ctrl_state(struct cpu_info *info)
 {
-    struct cpu_info *info = get_cpu_info();
-
     info->shadow_spec_ctrl = 0;
     info->xen_spec_ctrl = default_xen_spec_ctrl;
     info->scf = default_scf;
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index c8c408e02436..6fb42c5a5f95 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1126,7 +1126,7 @@ void asmlinkage __init noreturn __start_xen(void)
 
     /* Critical region without exception handling.  Any fault is deadly! */
 
-    init_shadow_spec_ctrl_state();
+    init_shadow_spec_ctrl_state(info);
 
     percpu_init_areas();
 
diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c
index 302be4341bf3..ce4862dde5a7 100644
--- a/xen/arch/x86/smpboot.c
+++ b/xen/arch/x86/smpboot.c
@@ -332,7 +332,7 @@ void asmlinkage start_secondary(void)
     set_current(idle_vcpu[cpu]);
     this_cpu(curr_vcpu) = idle_vcpu[cpu];
     rdmsrl(MSR_EFER, this_cpu(efer));
-    init_shadow_spec_ctrl_state();
+    init_shadow_spec_ctrl_state(info);
 
     /*
      * Just as during early bootstrap, it is convenient here to disable
diff --git a/xen/arch/x86/spec_ctrl.c b/xen/arch/x86/spec_ctrl.c
index feae0d710f8e..1ff3d6835d9d 100644
--- a/xen/arch/x86/spec_ctrl.c
+++ b/xen/arch/x86/spec_ctrl.c
@@ -2226,7 +2226,7 @@ void __init init_speculation_mitigations(void)
         opt_eager_fpu = should_use_eager_fpu();
 
     /* (Re)init BSP state now that default_scf has been calculated. */
-    init_shadow_spec_ctrl_state();
+    init_shadow_spec_ctrl_state(get_cpu_info());
 
     /*
      * For microcoded IBRS only (i.e. Intel, pre eIBRS), it is recommended to
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 20:23:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 20:23:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1075024.1437509 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukTcf-00079H-1f; Fri, 08 Aug 2025 20:23:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1075024.1437509; Fri, 08 Aug 2025 20:23: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 1ukTce-00077k-Rz; Fri, 08 Aug 2025 20:23:28 +0000
Received: by outflank-mailman (input) for mailman id 1075024;
 Fri, 08 Aug 2025 20:23:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Dtzj=2U=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ukTcd-0005tW-EJ
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 20:23:27 +0000
Received: from mail-wr1-x432.google.com (mail-wr1-x432.google.com
 [2a00:1450:4864:20::432])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8a5e068f-7495-11f0-a324-13f23c93f187;
 Fri, 08 Aug 2025 22:23:27 +0200 (CEST)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-3a6cd1a6fecso1813886f8f.3
 for <xen-devel@lists.xenproject.org>; Fri, 08 Aug 2025 13:23:27 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459e075047fsm103989805e9.1.2025.08.08.13.23.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Aug 2025 13:23: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>
X-Inumbo-ID: 8a5e068f-7495-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754684606; x=1755289406; 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=xVi01EX33hOUrp3MMSd3/Vp73DFlKzoPe7RHBP32PRE=;
        b=l2P59wmR4jF4FKc2/fKvU95WSbrQAzwaU+aEzmgAztNdISJOfT+dgxwdWQcnXieHYR
         1B0q+GYlYYhCsINrmv6L8x2ZZ52+GcmJaOrcd5drkU2qVEqWI10wUkY10W9Qi98azZBo
         J2uPX5IPudEtG0THuGlnRJKZeAAjF6orlrNNg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754684606; x=1755289406;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=xVi01EX33hOUrp3MMSd3/Vp73DFlKzoPe7RHBP32PRE=;
        b=fScvTiAf+Ymj3prVS+Maz3gaTlSrBO1Kclj8J4WLUqJgKFO3wZ5UCUSwmX5uo6IgrA
         CbNpK0DkHHvstLDiaDrQBqAx9KnbOMaztA4xSoFfJs9FKZO/bZ8qkc9+VzTbQvCCGk66
         qWTrmg8tYpp3tTiXbMBh3PIPDWoAUEvNiO0LQZH9OsUm00VXNYUK6AxV/8VAp5JJAgJ3
         gWcSkpUfeOM9jLzPjoTYwQbtz5SFu7BMWL8eYg3jFUwqzAvw7+aOZ5TnBSK1lQVYnD0C
         QTL73cOt4ZBefWm2H+TQKmicUlokSdHZiEjB77robdjUs6mrU8BkqB78A+n+U+/gjcLM
         eqQA==
X-Gm-Message-State: AOJu0YyuvMcmuTKVNwJiTU6WrrcFKk1P+JLn20j+4Yr/pWtZ0dkD/tif
	OWUac8UHPjZHLJbjJz980xGSv78EceoeevPbJ8VIptDmEKroC/OdgaePiwhBiNVQSa8gj5RPlUN
	nocbe8Dw=
X-Gm-Gg: ASbGncuC4m+JkGGlBoLqzRgb9VbyGv5YGbDD7OutVHFiKw59KibhO5jKzi9UxqvgSrf
	OEoCd1cYBcR5dNIKIuWto05BLz7ICSq66PKLZSteplidNnPWGGemW865vWjwjplwLVlpVMSdKFE
	NinBGYns0YFN6V4QEJ63LQ5aGc9CIDvlOdDODCjW28MUm/Rx1BDZDFEwYeZh3HbS1BKIYJgeHtX
	GGEBFI2SyAcs9QDjHqnI3b0+kLgDFqblnLIUOl01ibq0eVPJWJ1e6l6V6J13JqHZPyhmuz5RITw
	c5u/qxWjG1TEiEa9zI+8+Ac7DTGKHxDbY+Mba/GElmEXWHWrhBBLYzAgSYj2BbrWr1SDnSW6rAU
	pyd+jEw1kNVBRjxwYANssyFDEqZ6832T5wg3KP3xGHgHejOm+02FJZ9S8P0NUSV11XHE9uOfynF
	Ho
X-Google-Smtp-Source: AGHT+IFcWAFnsh+w6TGUK7qxOIWp6b3CF1PqJ7dhPI4YKqhFhpNG4OBh3gsO+Yg3uQaEBt5spBU4Fg==
X-Received: by 2002:a05:6000:400b:b0:3b7:61e5:a8a5 with SMTP id ffacd0b85a97d-3b900b83578mr3949467f8f.47.1754684606025;
        Fri, 08 Aug 2025 13:23:26 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 08/22] x86/traps: Introduce ap_early_traps_init() and set up exception handling earlier
Date: Fri,  8 Aug 2025 21:23:00 +0100
Message-Id: <20250808202314.1045968-9-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

As things stand, we set up AP/S3 exception handling marginally after the
fragile activity of setting up shadow stacks.  Shadow stack setup is going to
get more complicated under FRED.

Introduce ap_early_traps_init() and call it ahead of setting up shadow stacks.
To start with, call load_system_tables() which is sufficient to set up full
exception handling.

In order to handle exceptions, current and the speculation controls needs to
work.  cpu_smpboot_alloc() already constructs some of the AP's top-of-stack
block, so have it set up a little more.

This gets us complete exception coverage of setting up shadow stacks, rather
than dying with a triple fault.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/acpi/wakeup_prot.S |  5 +++--
 xen/arch/x86/boot/x86_64.S      |  5 ++++-
 xen/arch/x86/smpboot.c          | 17 ++++-------------
 xen/arch/x86/traps-setup.c      | 12 ++++++++++++
 4 files changed, 23 insertions(+), 16 deletions(-)

diff --git a/xen/arch/x86/acpi/wakeup_prot.S b/xen/arch/x86/acpi/wakeup_prot.S
index 92af6230b31f..60eca4010042 100644
--- a/xen/arch/x86/acpi/wakeup_prot.S
+++ b/xen/arch/x86/acpi/wakeup_prot.S
@@ -63,6 +63,9 @@ LABEL(s3_resume)
         pushq   %rax
         lretq
 1:
+        /* Set up early exceptions and CET before entering C properly. */
+        call    ap_early_traps_init
+
 #if defined(CONFIG_XEN_SHSTK) || defined(CONFIG_XEN_IBT)
         call    xen_msr_s_cet_value
         test    %eax, %eax
@@ -117,8 +120,6 @@ LABEL(s3_resume)
 .L_cet_done:
 #endif /* CONFIG_XEN_SHSTK || CONFIG_XEN_IBT */
 
-        call    load_system_tables
-
         /* Restore CR4 from the cpuinfo block. */
         GET_STACK_END(bx)
         mov     STACK_CPUINFO_FIELD(cr4)(%rbx), %rax
diff --git a/xen/arch/x86/boot/x86_64.S b/xen/arch/x86/boot/x86_64.S
index 95a6b6cf63bd..0dfcc8a88a40 100644
--- a/xen/arch/x86/boot/x86_64.S
+++ b/xen/arch/x86/boot/x86_64.S
@@ -30,7 +30,10 @@ ENTRY(__high_start)
         test    %ebx,%ebx
         jz      .L_bsp
 
-        /* APs.  Set up CET before entering C properly. */
+        /* APs.  Set up early exceptions and CET before entering C properly. */
+
+        call    ap_early_traps_init
+
 #if defined(CONFIG_XEN_SHSTK) || defined(CONFIG_XEN_IBT)
         call    xen_msr_s_cet_value
         test    %eax, %eax
diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c
index ce4862dde5a7..8af6556999d7 100644
--- a/xen/arch/x86/smpboot.c
+++ b/xen/arch/x86/smpboot.c
@@ -327,12 +327,7 @@ void asmlinkage start_secondary(void)
     struct cpu_info *info = get_cpu_info();
     unsigned int cpu = smp_processor_id();
 
-    /* Critical region without IDT or TSS.  Any fault is deadly! */
-
-    set_current(idle_vcpu[cpu]);
-    this_cpu(curr_vcpu) = idle_vcpu[cpu];
     rdmsrl(MSR_EFER, this_cpu(efer));
-    init_shadow_spec_ctrl_state(info);
 
     /*
      * Just as during early bootstrap, it is convenient here to disable
@@ -352,14 +347,6 @@ void asmlinkage start_secondary(void)
      */
     spin_debug_disable();
 
-    get_cpu_info()->use_pv_cr3 = false;
-    get_cpu_info()->xen_cr3 = 0;
-    get_cpu_info()->pv_cr3 = 0;
-
-    load_system_tables();
-
-    /* Full exception support from here on in. */
-
     if ( cpu_has_pks )
         wrpkrs_and_cache(0); /* Must be before setting CR4.PKS */
 
@@ -1064,8 +1051,12 @@ static int cpu_smpboot_alloc(unsigned int cpu)
             goto out;
 
     info = get_cpu_info_from_stack((unsigned long)stack_base[cpu]);
+    memset(info, 0, sizeof(*info));
+    init_shadow_spec_ctrl_state(info);
     info->processor_id = cpu;
     info->per_cpu_offset = __per_cpu_offset[cpu];
+    info->current_vcpu = idle_vcpu[cpu];
+    per_cpu(curr_vcpu, cpu) = idle_vcpu[cpu];
 
     gdt = per_cpu(gdt, cpu) ?: alloc_xenheap_pages(0, memflags);
     if ( gdt == NULL )
diff --git a/xen/arch/x86/traps-setup.c b/xen/arch/x86/traps-setup.c
index 370f4d5f7b60..8ca379c9e4cb 100644
--- a/xen/arch/x86/traps-setup.c
+++ b/xen/arch/x86/traps-setup.c
@@ -127,3 +127,15 @@ void percpu_traps_init(void)
     if ( cpu_has_xen_lbr )
         wrmsrl(MSR_IA32_DEBUGCTLMSR, IA32_DEBUGCTLMSR_LBR);
 }
+
+/*
+ * Configure exception handling on APs and S3.  Called before entering C
+ * properly, and before shadow stacks are activated.
+ *
+ * boot_gdt is currently loaded, and we must switch to our local GDT.  The
+ * local IDT has unknown IST-ness.
+ */
+void asmlinkage ap_early_traps_init(void)
+{
+    load_system_tables();
+}
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 20:23:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 20:23:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1075018.1437455 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukTcb-0005ww-2t; Fri, 08 Aug 2025 20:23:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1075018.1437455; Fri, 08 Aug 2025 20:23: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 1ukTca-0005wb-VA; Fri, 08 Aug 2025 20:23:24 +0000
Received: by outflank-mailman (input) for mailman id 1075018;
 Fri, 08 Aug 2025 20:23:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Dtzj=2U=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ukTcZ-0005tJ-TR
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 20:23:23 +0000
Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com
 [2a00:1450:4864:20::331])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8774018f-7495-11f0-b898-0df219b8e170;
 Fri, 08 Aug 2025 22:23:22 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-45994a72356so19662905e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 Aug 2025 13:23:22 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459e075047fsm103989805e9.1.2025.08.08.13.23.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Aug 2025 13:23: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>
X-Inumbo-ID: 8774018f-7495-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754684601; x=1755289401; 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=6XPZdbzmMxNNc6YJDmmLb0VrWoSZ8jhqn1MaPLISSgE=;
        b=pl7zeZzauvFfYNP2aRlxBVf/rMBY6t/hnALX1fIDn1dEEw/PDMoxidWZ2SM6RCR9R0
         R5z2fRigiG0a62BfO8o31Fc8Xrh3CTrsPBLQlbqSTt1RKprSp5ay7da5XKJVqoDGL+sx
         cBjlQ9yRWaRLG1ZNfQViCC2uB+8CxiiJ/N/ug=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754684601; x=1755289401;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=6XPZdbzmMxNNc6YJDmmLb0VrWoSZ8jhqn1MaPLISSgE=;
        b=vFCOnVrguvRwszygC49Yj1ygLJyHWXVIPbzSgyQHDOOlF7awWg2q/W2bQMs7GZGSpM
         y3s0tSGl6q1oduZqcmjW28tJ8e443dN1eXU12ut5oaBCMPkgyuISjRBIH8CmdbYWQQzP
         HGQ8vfmJP+asc7I35nGYhSC63hMj2G6kCHARVBdeCAux3lf3+tuuwbr9iQk4FeYGbW/2
         mm7tCFm57F99QRWBoGmbkZrPLrou+LqX52S8At9g2IvUdvfxiym4ziRRwpCmu6O/bTs9
         W+w/DHvcZuUlhxqTwYOZKu/XnATXdENHVF8E6yvAi8vTnqqAXBZrz0I+mqQyV4+lEa9M
         gLlw==
X-Gm-Message-State: AOJu0YyBH9HLOD/WzN1r7Cu6KVnDAC5a0+Uu9kiPy79QxsEtZzCzIWLY
	jr+7OYjYKHKsTl3ihxPozlBKi5izHWxg2zRI+faj2tOr94phJFo7fgEipJJbuRZXCDUTzp07PMN
	oWCj54Fg=
X-Gm-Gg: ASbGnctunAoZeo1IvFNM4qgwHBYVH4YaTRJfkJNtD2MF2tc4MlVzFTAdxHBZZVTiWjd
	60tUDqJRKiggg7AVPb4hLOd4P+tXjeco+nDPxytouhLYzgjl9GM6CtGECPncQU4hVxUSsw/o5Ep
	pYrWxAh7/C43ggAcMriubegsAkI8JBiWYxwR1Cxn3hFc5msCseu8a/p29ZU9jr74gi93DKtJGXL
	Xhyj9mR01WQAtddET8sQVeQJEm040KF2UgAVasNNPRAsojcj9XwvnbS9CuCBllhzQgtn5Zmt0sx
	C9NZBUkohXHp+97hMcjFLyWHYLrPFQ4OdDPXg85HtZOnjjH8gbgnQSA+BpI1unAN5VC0sw3bOsM
	YcYcJsgmUPlGe8Qgp9V4QgvJOb1JJdgLoKilWB30bV3LTdx2M92hNl2Esmw94XlzFhjla4Y5Vya
	EW
X-Google-Smtp-Source: AGHT+IFGc/gbZa6En9xjXehNP/ecIwgegsDSFIj239IUr/R3bVfNbyu+lhGZaNFvH+BLOBDQlEonVA==
X-Received: by 2002:a05:6000:2c01:b0:3a5:8991:64b7 with SMTP id ffacd0b85a97d-3b8f97f50c7mr8332086f8f.26.1754684601059;
        Fri, 08 Aug 2025 13:23:21 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 02/22] x86/msr: Rename wrmsr_ns() to wrmsrns(), and take 64bit value
Date: Fri,  8 Aug 2025 21:22:54 +0100
Message-Id: <20250808202314.1045968-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

In hindsight, having the wrapper name not be the instruction mnemonic was a
poor choice.  Also, PKS turns out to be quite rare in wanting a split value.

Switch to using a single 64bit value in preparation for new users.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/include/asm/msr.h      | 4 ++--
 xen/arch/x86/include/asm/prot-key.h | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/include/asm/msr.h b/xen/arch/x86/include/asm/msr.h
index 4c4f18b3a54d..b6b85b04c3fd 100644
--- a/xen/arch/x86/include/asm/msr.h
+++ b/xen/arch/x86/include/asm/msr.h
@@ -39,7 +39,7 @@ static inline void wrmsrl(unsigned int msr, uint64_t val)
 }
 
 /* Non-serialising WRMSR, when available.  Falls back to a serialising WRMSR. */
-static inline void wrmsr_ns(uint32_t msr, uint32_t lo, uint32_t hi)
+static inline void wrmsrns(uint32_t msr, uint64_t val)
 {
     /*
      * WRMSR is 2 bytes.  WRMSRNS is 3 bytes.  Pad WRMSR with a redundant CS
@@ -47,7 +47,7 @@ static inline void wrmsr_ns(uint32_t msr, uint32_t lo, uint32_t hi)
      */
     alternative_input(".byte 0x2e; wrmsr",
                       ".byte 0x0f,0x01,0xc6", X86_FEATURE_WRMSRNS,
-                      "c" (msr), "a" (lo), "d" (hi));
+                      "c" (msr), "a" (val), "d" (val >> 32));
 }
 
 /* rdmsr with exception handling */
diff --git a/xen/arch/x86/include/asm/prot-key.h b/xen/arch/x86/include/asm/prot-key.h
index 0cbecc2df401..3e9c2eaef415 100644
--- a/xen/arch/x86/include/asm/prot-key.h
+++ b/xen/arch/x86/include/asm/prot-key.h
@@ -72,14 +72,14 @@ static inline void wrpkrs(uint32_t pkrs)
     {
         *this_pkrs = pkrs;
 
-        wrmsr_ns(MSR_PKRS, pkrs, 0);
+        wrmsrns(MSR_PKRS, pkrs);
     }
 }
 
 static inline void wrpkrs_and_cache(uint32_t pkrs)
 {
     this_cpu(pkrs) = pkrs;
-    wrmsr_ns(MSR_PKRS, pkrs, 0);
+    wrmsrns(MSR_PKRS, pkrs);
 }
 
 #endif /* ASM_PROT_KEY_H */
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 20:23:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 20:23:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1075028.1437543 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukTch-0007p3-Ru; Fri, 08 Aug 2025 20:23:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1075028.1437543; Fri, 08 Aug 2025 20:23: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 1ukTch-0007nc-9t; Fri, 08 Aug 2025 20:23:31 +0000
Received: by outflank-mailman (input) for mailman id 1075028;
 Fri, 08 Aug 2025 20:23:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Dtzj=2U=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ukTcg-0005tW-3i
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 20:23:30 +0000
Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com
 [2a00:1450:4864:20::331])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8c001588-7495-11f0-a324-13f23c93f187;
 Fri, 08 Aug 2025 22:23:29 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-459e20ec1d9so24524555e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 08 Aug 2025 13:23:29 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459e075047fsm103989805e9.1.2025.08.08.13.23.28
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Aug 2025 13:23: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>
X-Inumbo-ID: 8c001588-7495-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754684609; x=1755289409; 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=OQy5F9doSNclJVLZkjhL80Mb6WmdBvuJ0DVpDy8dHq4=;
        b=FSki63DBNfcQkQCdvzrAgcUYcAbHQifdz3T8HUpCPRa2ne/dn7650uNJUfAUkRE6li
         yS4oQXSoOVnzOy4a/0GU8UnbSHjSYcnFWF01RCADBXmF/cJHXyXLD4SJP24ws5l0hmgA
         w+Kh7yR2rOs7vg6CW6VNXZGGke1IQl4bf56/0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754684609; x=1755289409;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=OQy5F9doSNclJVLZkjhL80Mb6WmdBvuJ0DVpDy8dHq4=;
        b=BNOx/DSrdWd/IB66K5SzsmlvNS6yUAcgf00Qxc/vpgbmmCi5JMWAJTDQO6L49cuG5u
         EzY2U4jLTXBl9SIP7voPfYWHqPirhztKUotArw3LER8bs9Vpu0XyT4oyn4H4JfgbZOm9
         vN6buHl5OZW5IEZhCI9odLrbYTkhzR94Vct4xzA05WGoTSf/G2rJ4qe4w/Tfn8BjdCbX
         Eh/Sixfbeeg1l3xyKECOo/J6l1M2IXhfKkU35Dz/JvFrZnRKZ+DbBIpWoaS3dmBPxid5
         R18ZnRk1RrZhpvtJdipFBCwU2rC3ek/qnTEZbb2Fwwxw+Nq7GrtlE4CZgPzaCcGy9kxq
         7q5g==
X-Gm-Message-State: AOJu0YziYc6Jgz4DJwhRPFelOCFW/gGbTBbddc4YVT+l0ChCbIHiUB+7
	aTF7XQHOt5WpLz9joRoRtXBXeecQU8wOoHIvGJ05aLqJG9vUdtvBZ9kkSOsqWLk1EiywwCIbGJ5
	GbZcctuU=
X-Gm-Gg: ASbGnctIgkNoEBSgOf/JlLLCx2rdorDAIROBgtvp30eLYebpNTOUKfJKdC41zknc0g+
	bcMANN6QK1ktSqCUDh7Kmugsehs0CiMpRYU28O9srngIlTDmi2Iqz5B83rhm/2/wVwu99295hau
	8rB/OL9QrBFu3anMdrIjURsmOgeupxSWjn2s6EAKXsOKKejmme+ekN4OCJZmCl2Qjg7xqByBzFW
	USYNAZ55Kc9oEHjL81Rzm5FP8nzr0uoi0wflJax6wq8fzoNv8kxStyXdSBeywcYkVu15qmKi9Cc
	pdCAKXRf3RT0AiKJyT5IfGU3OIHd3rQgLl12HLKUDY/ecU8wA4dlVsoAEfsLmwYlW7+1M/3EsMR
	3/bfw+7JVZgeP8ZViJzJQ/9JmSNi8TwXZr5lUmwQrP9A+q31egnmBofX7pvcvjelpIOkBCzAVgI
	+g
X-Google-Smtp-Source: AGHT+IH/9GpSQOFtDlOQA9hsHRhGb/JyXgWKb8FMm/mo0y68SuwtQWXBgWJ7uHB6Gv04SCO7jpCHbA==
X-Received: by 2002:a05:600c:4f4a:b0:459:dc92:b95f with SMTP id 5b1f17b1804b1-459f4f3df4bmr39680335e9.5.1754684608927;
        Fri, 08 Aug 2025 13:23:28 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 12/22] x86/traps: Unexport show_code() and show_stack_overflow()
Date: Fri,  8 Aug 2025 21:23:04 +0100
Message-Id: <20250808202314.1045968-13-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

These can become static now the two traps.c have been merged.

No fucntional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/include/asm/processor.h | 2 --
 xen/arch/x86/traps.c                 | 4 ++--
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/include/asm/processor.h b/xen/arch/x86/include/asm/processor.h
index 2799d59e385a..1342241742ac 100644
--- a/xen/arch/x86/include/asm/processor.h
+++ b/xen/arch/x86/include/asm/processor.h
@@ -333,8 +333,6 @@ extern void write_ptbase(struct vcpu *v);
 /* PAUSE (encoding: REP NOP) is a good thing to insert into busy-wait loops. */
 #define cpu_relax() asm volatile ( "pause" ::: "memory" )
 
-void show_code(const struct cpu_user_regs *regs);
-void show_stack_overflow(unsigned int cpu, const struct cpu_user_regs *regs);
 void show_registers(const struct cpu_user_regs *regs);
 #define dump_execution_state() run_in_exception_handler(show_execution_state)
 void show_page_walk(unsigned long addr);
diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index ab8ff36acfe6..270b93ed623e 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -354,7 +354,7 @@ void show_page_walk(unsigned long addr)
            l1_table_offset(addr), l1e_get_intpte(l1e), pfn);
 }
 
-void show_code(const struct cpu_user_regs *regs)
+static void show_code(const struct cpu_user_regs *regs)
 {
     unsigned char insns_before[8] = {}, insns_after[16] = {};
     unsigned int i, tmp, missing_before, missing_after;
@@ -838,7 +838,7 @@ static void show_stack(const struct cpu_user_regs *regs)
     show_trace(regs);
 }
 
-void show_stack_overflow(unsigned int cpu, const struct cpu_user_regs *regs)
+static void show_stack_overflow(unsigned int cpu, const struct cpu_user_regs *regs)
 {
     unsigned long esp = regs->rsp;
     unsigned long curr_stack_base = esp & ~(STACK_SIZE - 1);
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 20:23:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 20:23:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1075025.1437521 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukTcf-0007Ln-Ru; Fri, 08 Aug 2025 20:23:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1075025.1437521; Fri, 08 Aug 2025 20:23: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 1ukTcf-0007KS-Iw; Fri, 08 Aug 2025 20:23:29 +0000
Received: by outflank-mailman (input) for mailman id 1075025;
 Fri, 08 Aug 2025 20:23:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Dtzj=2U=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ukTcd-0005tJ-TY
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 20:23:27 +0000
Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com
 [2a00:1450:4864:20::32d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 895497cd-7495-11f0-b898-0df219b8e170;
 Fri, 08 Aug 2025 22:23:25 +0200 (CEST)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-459ebb6bbdfso16617565e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 Aug 2025 13:23:25 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459e075047fsm103989805e9.1.2025.08.08.13.23.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Aug 2025 13: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>
X-Inumbo-ID: 895497cd-7495-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754684604; x=1755289404; 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=caOVNgxtLJ5K64XlKHZ2JgkxvEgD9Gt7Q0o1sCQ6UZg=;
        b=PLE7MiksilklFd+GuyiBAfcnEzz2AHJOe8fGD8lp/JL4eBNo+D1M7JR05TA/WHgwY+
         YUZxMXmqHRvmqpCiuUpK4JZmbyPxqA7wyIUi9usm0o4FcT+RrY0Jbg4yjBofnvu2JBfs
         SSwzugldX1ndxjdagwjCFfuks0mhsF3/yjAsE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754684604; x=1755289404;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=caOVNgxtLJ5K64XlKHZ2JgkxvEgD9Gt7Q0o1sCQ6UZg=;
        b=BSmEGvIfzMVaHEI39nfUcaEDTyl/lTmUw5tFT0X7htHGLuSXZFiTbeMV50EZcHwzo+
         yd/I/MpsHQhaZHQYtT14IkWTumLJrETYCVn4KZLXP8+TeCC4m6xBceUQEfhq1JxiuCP1
         hJnbSK8n9gTomGr6XVv7j/N27uCi49xQnQWtCvOQHbS5ONpZ0OLtge88TJyGpyZt07v2
         spCs9PjtIa5dm9zMzC49WjZFhpkeo/qpaYHY+1pd/3WiHc8MQaZtwKuYNgtVVObekGcO
         MsXbaSM1BGiDUbJwJSXCIKxC93lu7rJoPhfD0nRr6MAET0hGlAnXBsfIEp830qAhXRHg
         IBxg==
X-Gm-Message-State: AOJu0YwVbgc9ULesr5RGN+xSKgSiSEyGOWL81GefASoacGzJFSHM+FlY
	1gUbwOiUO07CypUsGGIDFVFl4CEvQowc0mxYz+R9lSa0bARAoQJ4V9Z+AMiNjZeypwB0deDklZQ
	OB6qH9L0=
X-Gm-Gg: ASbGnctPEYpZTmx669sQ910jwRPFrUwCPtK9J4JjLrMgh2apEVLpFOw4uZKLk+3aH3T
	mOatoW0+dT/nPNaEao8ubBHSHbC4oSzk1U+uzKauMkDo+MITEM3C7MkMZd2rX7JqHDk7UolJcZh
	tkCDSmJJm8Tg6B903NIUKXN1ZY63kVnR14Xbx7Ztd1iLeirfiDib11K1aJWlVnkFQirKj6/Xq43
	xA3fBekl0TThmZpxhL1PGX+QJRBUi2SDdb3GqG+1Ox/YV3MhUkVXwMsoJtzQXsP47Im/sZw4TnZ
	QK4OBDDr+nnC2ltWduOAW0s54WA1Qx6ErkocPB0cBLNsw6nhSYwEhi8zrXZHdgNrsRQo0vZ83ky
	f0B/NLALZQddC8hKLS0VgQfX01e5WsDwxX9otPftQfCqKXDtUAxhzrgrapm00Mz9nFwI1hFuj2e
	u8
X-Google-Smtp-Source: AGHT+IGOw0qlDsxnoU+vKA/UvdlwbYyhckxJzdRWuP44Ae/YhL3fBnTji410tsUsLoTPsQG0MJuVlQ==
X-Received: by 2002:a05:6000:290b:b0:3b7:8fcc:a1e3 with SMTP id ffacd0b85a97d-3b900b5108cmr3392835f8f.48.1754684604384;
        Fri, 08 Aug 2025 13:23:24 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 06/22] x86/traps: Introduce bsp_traps_reinit()
Date: Fri,  8 Aug 2025 21:22:58 +0100
Message-Id: <20250808202314.1045968-7-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

... to abstract away updating the refereces to the old BSP stack.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/include/asm/traps.h | 1 +
 xen/arch/x86/setup.c             | 6 +-----
 xen/arch/x86/traps-setup.c       | 9 +++++++++
 3 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/include/asm/traps.h b/xen/arch/x86/include/asm/traps.h
index 7414420e57d8..6ae451d3fc70 100644
--- a/xen/arch/x86/include/asm/traps.h
+++ b/xen/arch/x86/include/asm/traps.h
@@ -9,6 +9,7 @@
 
 void bsp_early_traps_init(void);
 void traps_init(void);
+void bsp_traps_reinit(void);
 void percpu_traps_init(void);
 
 extern unsigned int ler_msr;
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 64f02699e1aa..c8c408e02436 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -902,11 +902,7 @@ static void __init noreturn reinit_bsp_stack(void)
     unsigned long *stack = (void*)(get_stack_bottom() & ~(STACK_SIZE - 1));
     int rc;
 
-    /* Update TSS and ISTs */
-    load_system_tables();
-
-    /* Update SYSCALL trampolines */
-    percpu_traps_init();
+    bsp_traps_reinit();
 
     stack_base[0] = stack;
 
diff --git a/xen/arch/x86/traps-setup.c b/xen/arch/x86/traps-setup.c
index 7713f427d344..370f4d5f7b60 100644
--- a/xen/arch/x86/traps-setup.c
+++ b/xen/arch/x86/traps-setup.c
@@ -107,6 +107,15 @@ void __init traps_init(void)
     percpu_traps_init();
 }
 
+/*
+ * Re-initialise all state referencing the early-boot stack.
+ */
+void bsp_traps_reinit(void)
+{
+    load_system_tables();
+    percpu_traps_init();
+}
+
 /*
  * Set up per-CPU linkage registers for exception, interrupt and syscall
  * handling.
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 20:23:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 20:23:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1075027.1437536 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukTch-0007bg-3x; Fri, 08 Aug 2025 20:23:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1075027.1437536; Fri, 08 Aug 2025 20:23: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 1ukTcg-0007a4-Gy; Fri, 08 Aug 2025 20:23:30 +0000
Received: by outflank-mailman (input) for mailman id 1075027;
 Fri, 08 Aug 2025 20:23:28 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Dtzj=2U=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ukTce-0005tW-L5
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 20:23:28 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8b1d62d2-7495-11f0-a324-13f23c93f187;
 Fri, 08 Aug 2025 22:23:28 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-454f428038eso22148205e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 08 Aug 2025 13:23:28 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459e075047fsm103989805e9.1.2025.08.08.13.23.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Aug 2025 13:23: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>
X-Inumbo-ID: 8b1d62d2-7495-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754684607; x=1755289407; 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=ycWquJLCuLcfKthxLYACscQrBOx1g62XAtvbDRfueiI=;
        b=FKijCjbRt280AOa/FvYi3b762G+b1MIqw4vG+5HVNoTvUM+zAz1/N0np5RIIPVddCV
         WaFp860TTrk+lhcs9cw9bfyi5GL255BddELv6qZj0dzXHzgFMb1bktMMDioafslTF1Yu
         T+Ax+T0vba/NYDWoES7X7R99LbB+n/94Z7eWU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754684607; x=1755289407;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=ycWquJLCuLcfKthxLYACscQrBOx1g62XAtvbDRfueiI=;
        b=XsbXEd0HXhvLkqz81CLohObsTMyc0Rl7VGif7CklZQFYqUkD7niSbqGd6xQActxrrr
         08W34fVFr70TlbYLM078bXvJB0vQ+A85YqmxmFwEAZIif4YYsXnhy1VV8zLzIdbm4pkc
         EEn6idTSy6DFfG9b+YwRFWp3EoEBC5ludy8xslDAhtgdZZmGdc+TOztwdHzSU8oxUVmH
         7ArOi4GLAH0MjrckUvEZlOorml9gRGI1ZqTXXzL8EVqA54SqdIdOO9ANQYWlCxPtrLaO
         KNIhFivwiOmYu31aBNG5U85o97HUT7MwZO4RzorFOiuxspxERxPZjbWf8Q2ODKTKGkZw
         zRTg==
X-Gm-Message-State: AOJu0Yy6mlxSY1Dzu7D6WhYfs1B7J7myFksVGW7XkP+iIu3M9OlsS0Zo
	woHlt6xXqZbFqZfiCv7jMp55hdBEXFQM4H6shmsLKIN+imk+Opms/ac0z0IxlkAhcAiLzaAkZNU
	G+kn8ajs=
X-Gm-Gg: ASbGncuDu0SrQkx44kdL52pErPdlaFsR8j4UvX4LmLtERCXbGaoP5pdYrcMLjQjj+D1
	4o/OZcsaQK5DPlXhrXkenPYSBTjhbLOO/UVMoPxMUlf4vxD6rrVY5UQ7USjVsFbn2kn2Usi6hII
	Kh5Maqsl5uPY0NVZe2boTQmk3oNj5cuFQ/2tVKyFWHS6WiWhhbkN2rrASLa6d5dAqMoG/6j+voE
	i8K3na4XOOHAJK92FDfQAMAYbdvk4cyCODYXxEXGE1JgJquuvzX1j5wTUl9dc66JkKP0CqIGzv1
	cCi9JXCr78IArXO0hGKBChQ5wFQBGad/irGyjWwy6voiro1s7AGRz4uXkX+T001hx7ZJC+VDQrZ
	lT6YCcVpb3XjNjDqhN6GH5dfpYKTLGKWrRiYbC2J5s3YX9PnKCbVem8rOZMHQ0t+syfEwzyobxF
	/E
X-Google-Smtp-Source: AGHT+IHC1e3aIoYtIc1z104Icp0iXqK9OPOFRvHJgtTMLHe0A8+iMJldljWaYTsqa9SCuWx0CufkMg==
X-Received: by 2002:a05:600c:3b8d:b0:458:a992:6f1e with SMTP id 5b1f17b1804b1-459fc09db82mr3514055e9.5.1754684607458;
        Fri, 08 Aug 2025 13:23: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>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 10/22] x86/traps: Move subarch_percpu_traps_init() into traps-setup.c
Date: Fri,  8 Aug 2025 21:23:02 +0100
Message-Id: <20250808202314.1045968-11-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

... along with the supporting functions.  Switch to Xen coding style, and make
static as there are no external callers.

Rename to legacy_syscall_init() as a more accurate name.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/include/asm/system.h |  2 -
 xen/arch/x86/traps-setup.c        | 97 ++++++++++++++++++++++++++++++-
 xen/arch/x86/x86_64/traps.c       | 92 -----------------------------
 3 files changed, 95 insertions(+), 96 deletions(-)

diff --git a/xen/arch/x86/include/asm/system.h b/xen/arch/x86/include/asm/system.h
index 3cdc56e4ba6d..6c2800d8158d 100644
--- a/xen/arch/x86/include/asm/system.h
+++ b/xen/arch/x86/include/asm/system.h
@@ -256,6 +256,4 @@ static inline int local_irq_is_enabled(void)
 #define BROKEN_ACPI_Sx          0x0001
 #define BROKEN_INIT_AFTER_S1    0x0002
 
-void subarch_percpu_traps_init(void);
-
 #endif
diff --git a/xen/arch/x86/traps-setup.c b/xen/arch/x86/traps-setup.c
index 13b8fcf0ba51..fbae7072c292 100644
--- a/xen/arch/x86/traps-setup.c
+++ b/xen/arch/x86/traps-setup.c
@@ -2,13 +2,15 @@
 /*
  * Configuration of event handling for all CPUs.
  */
+#include <xen/domain_page.h>
 #include <xen/init.h>
 #include <xen/param.h>
 
+#include <asm/endbr.h>
 #include <asm/idt.h>
 #include <asm/msr.h>
 #include <asm/shstk.h>
-#include <asm/system.h>
+#include <asm/stubs.h>
 #include <asm/traps.h>
 
 DEFINE_PER_CPU_READ_MOSTLY(idt_entry_t *, idt);
@@ -19,6 +21,8 @@ static bool __initdata opt_ler;
 boolean_param("ler", opt_ler);
 
 void nocall entry_PF(void);
+void nocall lstar_enter(void);
+void nocall cstar_enter(void);
 
 /*
  * Sets up system tables and descriptors for IDT devliery.
@@ -138,6 +142,95 @@ static void load_system_tables(void)
     BUG_ON(stack_bottom & 15);
 }
 
+static unsigned int write_stub_trampoline(
+    unsigned char *stub, unsigned long stub_va,
+    unsigned long stack_bottom, unsigned long target_va)
+{
+    unsigned char *p = stub;
+
+    if ( cpu_has_xen_ibt )
+    {
+        place_endbr64(p);
+        p += 4;
+    }
+
+    /* Store guest %rax into %ss slot */
+    /* movabsq %rax, stack_bottom - 8 */
+    *p++ = 0x48;
+    *p++ = 0xa3;
+    *(uint64_t *)p = stack_bottom - 8;
+    p += 8;
+
+    /* Store guest %rsp in %rax */
+    /* movq %rsp, %rax */
+    *p++ = 0x48;
+    *p++ = 0x89;
+    *p++ = 0xe0;
+
+    /* Switch to Xen stack */
+    /* movabsq $stack_bottom - 8, %rsp */
+    *p++ = 0x48;
+    *p++ = 0xbc;
+    *(uint64_t *)p = stack_bottom - 8;
+    p += 8;
+
+    /* jmp target_va */
+    *p++ = 0xe9;
+    *(int32_t *)p = target_va - (stub_va + (p - stub) + 4);
+    p += 4;
+
+    /* Round up to a multiple of 16 bytes. */
+    return ROUNDUP(p - stub, 16);
+}
+
+static void legacy_syscall_init(void)
+{
+    unsigned long stack_bottom = get_stack_bottom();
+    unsigned long stub_va = this_cpu(stubs.addr);
+    unsigned char *stub_page;
+    unsigned int offset;
+
+    /* No PV guests?  No need to set up SYSCALL/SYSENTER infrastructure. */
+    if ( !IS_ENABLED(CONFIG_PV) )
+        return;
+
+    stub_page = map_domain_page(_mfn(this_cpu(stubs.mfn)));
+
+    /*
+     * Trampoline for SYSCALL entry from 64-bit mode.  The VT-x HVM vcpu
+     * context switch logic relies on the SYSCALL trampoline being at the
+     * start of the stubs.
+     */
+    wrmsrl(MSR_LSTAR, stub_va);
+    offset = write_stub_trampoline(stub_page + (stub_va & ~PAGE_MASK),
+                                   stub_va, stack_bottom,
+                                   (unsigned long)lstar_enter);
+    stub_va += offset;
+
+    if ( cpu_has_sep )
+    {
+        /* SYSENTER entry. */
+        wrmsrl(MSR_IA32_SYSENTER_ESP, stack_bottom);
+        wrmsrl(MSR_IA32_SYSENTER_EIP, (unsigned long)sysenter_entry);
+        wrmsr(MSR_IA32_SYSENTER_CS, __HYPERVISOR_CS, 0);
+    }
+
+    /* Trampoline for SYSCALL entry from compatibility mode. */
+    wrmsrl(MSR_CSTAR, stub_va);
+    offset += write_stub_trampoline(stub_page + (stub_va & ~PAGE_MASK),
+                                    stub_va, stack_bottom,
+                                    (unsigned long)cstar_enter);
+
+    /* Don't consume more than half of the stub space here. */
+    ASSERT(offset <= STUB_BUF_SIZE / 2);
+
+    unmap_domain_page(stub_page);
+
+    /* Common SYSCALL parameters. */
+    wrmsrl(MSR_STAR, XEN_MSR_STAR);
+    wrmsrl(MSR_SYSCALL_MASK, XEN_SYSCALL_MASK);
+}
+
 static void __init init_ler(void)
 {
     unsigned int msr = 0;
@@ -241,7 +334,7 @@ void bsp_traps_reinit(void)
  */
 void percpu_traps_init(void)
 {
-    subarch_percpu_traps_init();
+    legacy_syscall_init();
 
     if ( cpu_has_xen_lbr )
         wrmsrl(MSR_IA32_DEBUGCTLMSR, IA32_DEBUGCTLMSR_LBR);
diff --git a/xen/arch/x86/x86_64/traps.c b/xen/arch/x86/x86_64/traps.c
index 34adf55e48df..81e64466e47e 100644
--- a/xen/arch/x86/x86_64/traps.c
+++ b/xen/arch/x86/x86_64/traps.c
@@ -311,98 +311,6 @@ void asmlinkage noreturn do_double_fault(struct cpu_user_regs *regs)
     panic("DOUBLE FAULT -- system shutdown\n");
 }
 
-static unsigned int write_stub_trampoline(
-    unsigned char *stub, unsigned long stub_va,
-    unsigned long stack_bottom, unsigned long target_va)
-{
-    unsigned char *p = stub;
-
-    if ( cpu_has_xen_ibt )
-    {
-        place_endbr64(p);
-        p += 4;
-    }
-
-    /* Store guest %rax into %ss slot */
-    /* movabsq %rax, stack_bottom - 8 */
-    *p++ = 0x48;
-    *p++ = 0xa3;
-    *(uint64_t *)p = stack_bottom - 8;
-    p += 8;
-
-    /* Store guest %rsp in %rax */
-    /* movq %rsp, %rax */
-    *p++ = 0x48;
-    *p++ = 0x89;
-    *p++ = 0xe0;
-
-    /* Switch to Xen stack */
-    /* movabsq $stack_bottom - 8, %rsp */
-    *p++ = 0x48;
-    *p++ = 0xbc;
-    *(uint64_t *)p = stack_bottom - 8;
-    p += 8;
-
-    /* jmp target_va */
-    *p++ = 0xe9;
-    *(int32_t *)p = target_va - (stub_va + (p - stub) + 4);
-    p += 4;
-
-    /* Round up to a multiple of 16 bytes. */
-    return ROUNDUP(p - stub, 16);
-}
-
-void nocall lstar_enter(void);
-void nocall cstar_enter(void);
-
-void subarch_percpu_traps_init(void)
-{
-    unsigned long stack_bottom = get_stack_bottom();
-    unsigned long stub_va = this_cpu(stubs.addr);
-    unsigned char *stub_page;
-    unsigned int offset;
-
-    /* No PV guests?  No need to set up SYSCALL/SYSENTER infrastructure. */
-    if ( !IS_ENABLED(CONFIG_PV) )
-        return;
-
-    stub_page = map_domain_page(_mfn(this_cpu(stubs.mfn)));
-
-    /*
-     * Trampoline for SYSCALL entry from 64-bit mode.  The VT-x HVM vcpu
-     * context switch logic relies on the SYSCALL trampoline being at the
-     * start of the stubs.
-     */
-    wrmsrl(MSR_LSTAR, stub_va);
-    offset = write_stub_trampoline(stub_page + (stub_va & ~PAGE_MASK),
-                                   stub_va, stack_bottom,
-                                   (unsigned long)lstar_enter);
-    stub_va += offset;
-
-    if ( cpu_has_sep )
-    {
-        /* SYSENTER entry. */
-        wrmsrl(MSR_IA32_SYSENTER_ESP, stack_bottom);
-        wrmsrl(MSR_IA32_SYSENTER_EIP, (unsigned long)sysenter_entry);
-        wrmsr(MSR_IA32_SYSENTER_CS, __HYPERVISOR_CS, 0);
-    }
-
-    /* Trampoline for SYSCALL entry from compatibility mode. */
-    wrmsrl(MSR_CSTAR, stub_va);
-    offset += write_stub_trampoline(stub_page + (stub_va & ~PAGE_MASK),
-                                    stub_va, stack_bottom,
-                                    (unsigned long)cstar_enter);
-
-    /* Don't consume more than half of the stub space here. */
-    ASSERT(offset <= STUB_BUF_SIZE / 2);
-
-    unmap_domain_page(stub_page);
-
-    /* Common SYSCALL parameters. */
-    wrmsrl(MSR_STAR, XEN_MSR_STAR);
-    wrmsrl(MSR_SYSCALL_MASK, XEN_SYSCALL_MASK);
-}
-
 /*
  * Local variables:
  * mode: C
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 20:23:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 20:23:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1075023.1437505 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukTce-000739-MD; Fri, 08 Aug 2025 20:23:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1075023.1437505; Fri, 08 Aug 2025 20:23: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 1ukTce-00072d-Go; Fri, 08 Aug 2025 20:23:28 +0000
Received: by outflank-mailman (input) for mailman id 1075023;
 Fri, 08 Aug 2025 20:23:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Dtzj=2U=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ukTcc-0005tJ-TV
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 20:23:26 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 88d09291-7495-11f0-b898-0df219b8e170;
 Fri, 08 Aug 2025 22:23:24 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-4538bc52a8dso16784535e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 08 Aug 2025 13:23:24 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459e075047fsm103989805e9.1.2025.08.08.13.23.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Aug 2025 13: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>
X-Inumbo-ID: 88d09291-7495-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754684603; x=1755289403; 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=92/m+z5VSr5yDc/35xwQUmi5Oo4699FS2wmqHV80iA8=;
        b=SVuBACqQCDWC0blNGkX/1UDb/tRFmjhUcw+PJfVeVktU+woFBdwQklJZy33zur1oGT
         Z8xHt8tXT8xrnTNnCLuZQCUDJoOcrA/5SXUiuRFmW5+LSa3CHxx5cesvA55Dh6bZXuTP
         b8/BwXFpsWzMB5hKE24JM2MCJJ72g7B8VnU5c=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754684603; x=1755289403;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=92/m+z5VSr5yDc/35xwQUmi5Oo4699FS2wmqHV80iA8=;
        b=IEz6pW1jh3Orb6nUX/GLWs8rzpRk4CbsGnqb2PeoHZ6Tjg3FcrXex7t6Nldy2R2IlL
         IMlVEB6W1lgGNDlutqU8PmOVsj4ZuuAVkb4lpioRRi4ofrL3cgeg++tBCXqzVTFGHLst
         XUolOsA+9izPDBTR077IvJ+ME1GCw50vjXfA5j19ANWJZn4511jBIkAD4YB6p7nIaDE2
         1oyJPBW/Mrc8QQBGjqLDDt3fl/howR7xiAYeHsyYK/2ZMmEoEq7AkfZfwbgu1CHxZoQ7
         wi9gnjobwXry/lrQgoKCIhA2XdbZqmbOcvSPG/EXdPtF68TMyM2vdXi99AHUE3tQ5vCy
         pIyg==
X-Gm-Message-State: AOJu0YyNucQfTKjEwz+7YXC8nga63WonYqNw/5F9PkzwhFihBt55wcTA
	zSLZI8c04v/MOjr+zqfGqIijZkUWN+5n/L0a9dBskNw+PuJ9kdqIILxP802AsrnzZ5BKExZTEb5
	G78gjb6k=
X-Gm-Gg: ASbGnctqfa0hzNFu0zwQ1n+SEXpMlYMFBUfjoRfFBgyrsmb4Cm73VzMEnZhEdELRKhS
	IuC/xXsnHYaKHGW4uRilP86gH82udsUhz9GZYO3lIos1E3JZoSVMHTMTljKCZry4ugy8GSbNgLD
	Di9bFfBPx2F171lURRMIbnroZgBQ4AyZ56F0MSOTo5nwzl1A38to7MqhvPl7MZhq0bRi/Ti+VaG
	GORmsfBzrdSYtBMnH+a/xYs4NLYdBtQ0b20uyC3JyCp4AgWRkorkJq7MyOh14m3RnmKNaL+ifGn
	YvhaVA4kmqy6SbRg2g5W+OqwCPELyvN48DLjB2tVrUs0l8pZ/NoFrKCPfwO+nxaN+CCd4soKH1Z
	ZwSnliLeZ+Q0FAQZOtmy0gyL9mk2drBVouKmKYEFhtyVBRZRMwEuWG00s7lsJpkyBJAEZ/1N9cT
	q6
X-Google-Smtp-Source: AGHT+IH7pSYE5Lclhd4aEb3Drtv+hwANdcPJQryN8Y2tv4K7EYzZDiNo7xU2Laf05Zk4TKgP5N5Z7w==
X-Received: by 2002:a05:6000:2dc2:b0:3b8:fa8c:f1ac with SMTP id ffacd0b85a97d-3b900b327f1mr4132646f8f.24.1754684603531;
        Fri, 08 Aug 2025 13:23:23 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 05/22] x86/traps: Rename early_traps_init() to bsp_early_traps_init()
Date: Fri,  8 Aug 2025 21:22:57 +0100
Message-Id: <20250808202314.1045968-6-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

We're going to want to introduce an AP version shortly.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/include/asm/traps.h | 2 +-
 xen/arch/x86/setup.c             | 2 +-
 xen/arch/x86/traps-setup.c       | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/include/asm/traps.h b/xen/arch/x86/include/asm/traps.h
index 72c33a33e283..7414420e57d8 100644
--- a/xen/arch/x86/include/asm/traps.h
+++ b/xen/arch/x86/include/asm/traps.h
@@ -7,7 +7,7 @@
 #ifndef ASM_TRAP_H
 #define ASM_TRAP_H
 
-void early_traps_init(void);
+void bsp_early_traps_init(void);
 void traps_init(void);
 void percpu_traps_init(void);
 
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 1543dd251cc6..64f02699e1aa 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1134,7 +1134,7 @@ void asmlinkage __init noreturn __start_xen(void)
 
     percpu_init_areas();
 
-    early_traps_init();
+    bsp_early_traps_init();
 
     smp_prepare_boot_cpu();
     sort_exception_tables();
diff --git a/xen/arch/x86/traps-setup.c b/xen/arch/x86/traps-setup.c
index a8385b26ae9b..7713f427d344 100644
--- a/xen/arch/x86/traps-setup.c
+++ b/xen/arch/x86/traps-setup.c
@@ -62,7 +62,7 @@ static void __init init_ler(void)
  * boot_gdt is already loaded, and bsp_idt[] is constructed without IST
  * settings, so we don't need a TSS configured yet.
  */
-void __init early_traps_init(void)
+void __init bsp_early_traps_init(void)
 {
     const struct desc_ptr idtr = {
         .base = (unsigned long)bsp_idt,
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 20:23:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 20:23:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1075020.1437476 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukTcc-0006OD-KJ; Fri, 08 Aug 2025 20:23:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1075020.1437476; Fri, 08 Aug 2025 20: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 1ukTcc-0006Nx-EB; Fri, 08 Aug 2025 20:23:26 +0000
Received: by outflank-mailman (input) for mailman id 1075020;
 Fri, 08 Aug 2025 20:23:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Dtzj=2U=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ukTca-0005tJ-TQ
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 20:23:24 +0000
Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com
 [2a00:1450:4864:20::431])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 87d7868a-7495-11f0-b898-0df219b8e170;
 Fri, 08 Aug 2025 22:23:22 +0200 (CEST)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-3b790dbb112so1485084f8f.3
 for <xen-devel@lists.xenproject.org>; Fri, 08 Aug 2025 13:23:22 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459e075047fsm103989805e9.1.2025.08.08.13.23.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Aug 2025 13:23:21 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 87d7868a-7495-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754684602; x=1755289402; 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=FcfZyu/epGsYTIYAnbjH73oe/DBgcrJShKfH8bNACvc=;
        b=erMwqvgwleJE/KA79ONKK54Wx1n5jSIDDs3+Yg2Azt89wEHy2aW3j6lhZrdmpGoIX7
         9htf5141quVFZkothIeOUeAjjvGxSt8+2fY03zOXSzAx1qj7DrF7mHRLd6hkWIwliWcD
         HKGHOIDbvgRisG8H0oKI49d7vdxYX4s8JSKQs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754684602; x=1755289402;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=FcfZyu/epGsYTIYAnbjH73oe/DBgcrJShKfH8bNACvc=;
        b=H4kdYm46h44Kn9+HY65djuLsVhTF+/XCMZhnbgbpepESGGBf8Z5vBBNrfN5JxgH/ft
         C5QNls8GaNBySfwouarDmsMt3xqedjIJLMUV7v8aEvHPoVsWQ5G40wJI1a4ekIrKCrdi
         ZBx2ATS+RMeHD8jdGDdg2zBCX9+54VsMg1KjRIAVvP1V+yiQBiIfHl5v/11pOQ7N3c+d
         NDbKy7EGv7FdoxOhQUC9pPLuQ3ljIVCQKTRzBV7YK+dle0ruG+eMS7WS9HubLT7JE3SR
         86yRw/20mVZa42xjbPrMdkZ6Bkmbjq4Y63prKwG6JnpdhODsavE/m/rYlN2dflaI+XS7
         x0Xw==
X-Gm-Message-State: AOJu0Yw+dWpf3Pl9ddobv/Sek52G6CY6iDJtf4WzyGyP5TpLPV5i6e9X
	y2WKBKFMmZkaSaB5vNB6hk2FjxnPmMs2sRqF3OAY4PHUMn1TbkO9OXHpVEIqhUOcMhxUxYw33Kx
	/xWeUdsE=
X-Gm-Gg: ASbGnctg8bh8E9tOmhiGWp/57o4PF7o0WYCj6ewJqcYWGhQjFRbujeytYPwyUX6c5Jh
	Xhhf8t9xJOA9627z4EJbJquPfz/HOSdLRWEQaE5CsgPPtTCAnSReTGLMdd+UQpPxu+l8NEwC4eK
	S0qDvMkxgbTcvEVaL0HLMEww6FmlBZ3Y6c2L8sycs8i+lAyLS9GtuR9PfcjDxIEPy/V4KBIb/Ym
	XGT44/Iiyx+/umTmsG+Y31EH3FHGe7OY6XYum/2FT5N9YWOMhKCxY0RA7lzGH5A51KeGauIqRA6
	9bppLacotEwSWBc5l3JAL5cTqNK/U/UWy2RsHzsnm5XPzRBz4eIQc0RZ0NctLgX5xcbI4l/3NUS
	vnZDQ30YAHisrjeCoqtxd0FbsMIoMkqsDIKqmrf5X7wBdFYmGdsXZrpV7FuWXDh1XS3sg1Nf5Y+
	Q6
X-Google-Smtp-Source: AGHT+IGV4Rh+tboonqUGllTTt1cR6ll0dm4fTrORfg6GmZFbQ/bDDdOWU0N8EyrhS+VU3dkuxbGbYQ==
X-Received: by 2002:a05:6000:18a9:b0:3b8:4da3:cace with SMTP id ffacd0b85a97d-3b900b5027amr3277977f8f.29.1754684601767;
        Fri, 08 Aug 2025 13:23:21 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 03/22] x86/traps: Drop incorrect BUILD_BUG_ON() and comment in load_system_tables()
Date: Fri,  8 Aug 2025 21:22:55 +0100
Message-Id: <20250808202314.1045968-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This was added erroneously by me.

Hardware task switching does demand a TSS of at least 0x67 bytes, but that's
not relevant in 64bit, and not relevant for Xen since commit
5d1181a5ea5e ("xen: Remove x86_32 build target.") in 2012.

We already load a 0-length TSS in early_traps_init() demonstrating that it's
possible.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/cpu/common.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/xen/arch/x86/cpu/common.c b/xen/arch/x86/cpu/common.c
index f6ec5c9df522..cdc41248d4e9 100644
--- a/xen/arch/x86/cpu/common.c
+++ b/xen/arch/x86/cpu/common.c
@@ -936,8 +936,6 @@ void load_system_tables(void)
 		wrmsrl(MSR_ISST, (unsigned long)ist_ssp);
 	}
 
-	BUILD_BUG_ON(sizeof(*tss) <= 0x67); /* Mandated by the architecture. */
-
 	_set_tssldt_desc(gdt + TSS_ENTRY, (unsigned long)tss,
 			 sizeof(*tss) - 1, SYS_DESC_tss_avail);
 	if ( IS_ENABLED(CONFIG_PV32) )
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 20:23:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 20:23:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1075017.1437451 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukTca-0005tj-R6; Fri, 08 Aug 2025 20:23:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1075017.1437451; Fri, 08 Aug 2025 20:23:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukTca-0005tc-NV; Fri, 08 Aug 2025 20:23:24 +0000
Received: by outflank-mailman (input) for mailman id 1075017;
 Fri, 08 Aug 2025 20:23:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Dtzj=2U=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ukTcZ-0005tJ-8i
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 20:23:23 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 86dfa4cb-7495-11f0-b898-0df219b8e170;
 Fri, 08 Aug 2025 22:23:21 +0200 (CEST)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-451d41e1ad1so17066065e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 08 Aug 2025 13:23:21 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459e075047fsm103989805e9.1.2025.08.08.13.23.19
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Aug 2025 13:23: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>
X-Inumbo-ID: 86dfa4cb-7495-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754684600; x=1755289400; 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=0H7WNQDzd5coV9BflfHCTzf9vlWwg8AwlAqm3G08bnQ=;
        b=madKix2vVa20HxRrrLSBG3Q9AYjwXFOyUL5BooaPEJcXx9K7GparuWqTEFLpgbG3Px
         Ct2gS+W4TDJjsxROH6CsSnYEtBozQbM+ICztduMapP/ZV1F455bip/4Kg7H5+TpbYRx6
         dEFcqofiF0lRw8+xDLjTuqsc70opWEhwn3TMI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754684600; x=1755289400;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=0H7WNQDzd5coV9BflfHCTzf9vlWwg8AwlAqm3G08bnQ=;
        b=xL5gwTQbbnBptFWgSbtV6HSTO0RfEZPNGJtFBGXT1GvhBCqomqn+S1Jy4iIg3BErhE
         xGnyox4IHhEInzXMIDtUS/76Q8NtjT+w5uwQPMqihrWXlP7d4iALAQqFoeSWCQAht2aI
         jHVJfgYFHmf3TbhDKrQTPZbtgK/K9dPZsEcgYy/4gGpKjzsfd0caeW/YsDA2Ut5T4AfA
         mAu3QHD9MLI26nn54Zi4J1I/Dtrygn2y6HBvJHP7Efi6kzMS+BmKjeyCd105fe5vG5Ae
         bs6xAxp4Zvyg3BiWNVC5/VDF86OhxZOqyUbXugc5BM7MtWeTC9yRer6p40Ahgz+XMBu2
         TAnw==
X-Gm-Message-State: AOJu0YxZqmSj2XGNB6Bq5GVvAsvIppUaPZ5MxxgNjAIs9Ffd006coMfM
	J7DSxbONdTN6OG/1E2EszDFkY+0P4olBN4gqNuZT88Dh9j/xieBQ2OWjwBVweyOxhZtZqkOAaEN
	szhYV9pQ=
X-Gm-Gg: ASbGnctgYT2NhoJyxt5rPoD+xBb47X580+AII+AS7+sx0qzNYDZX+yjZdulTINPZrrf
	Skqyb0zw5mj/kPaMMKAd1OzNd71dumoTZew8jc2JDx4AodEfkZQ/buNUGTg2pFiIsKvtTbWjd+d
	7kAkbuAMVgURtWmEuT57Q8Ed0mtZ9veGQQI5SZQcgKsjcgHD+o8IqtNF0t4nf7QAEKid4LLnxPr
	XCkS/V3FZztuPq7AqOiFT4NZdaJraX8ViaxOS9K+xajgWPQss6j3FBw6UMCPKzbhj5ohV1h8dNE
	JWUkDLyEy56hxpIMrHs5yd0tPWVJ8zKq+4Q8h8TwdNW76Qkh7HdxG7aYr+PAfMilPfweuOj0uom
	+cTmts6MkYv9/4cJegtkasPZuz7nSnb5XCYuW9L11rKYtLFHIqry+Wt+yegmQPZkXqcidESqkJ2
	Hi
X-Google-Smtp-Source: AGHT+IH6yG/YuCvIOBCxqVl+zkEoGEh5lVQi4A1hkpcjzwyoBm/xu52KU+29D/n5OkKNzCyeruYPKQ==
X-Received: by 2002:a05:600c:1d01:b0:458:be62:dcd3 with SMTP id 5b1f17b1804b1-459f4f9bd34mr45225575e9.17.1754684600251;
        Fri, 08 Aug 2025 13:23:20 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 01/22] x86/msr: Rename MSR_INTERRUPT_SSP_TABLE to MSR_ISST
Date: Fri,  8 Aug 2025 21:22:53 +0100
Message-Id: <20250808202314.1045968-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The name AMD chose is rather more concise.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/cpu/common.c            | 2 +-
 xen/arch/x86/include/asm/msr-index.h | 2 +-
 xen/arch/x86/msr.c                   | 4 ++--
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/cpu/common.c b/xen/arch/x86/cpu/common.c
index 97bdda1d4a25..f6ec5c9df522 100644
--- a/xen/arch/x86/cpu/common.c
+++ b/xen/arch/x86/cpu/common.c
@@ -933,7 +933,7 @@ void load_system_tables(void)
 			wrss(df_ssp,  _p(df_ssp));
 		}
 
-		wrmsrl(MSR_INTERRUPT_SSP_TABLE, (unsigned long)ist_ssp);
+		wrmsrl(MSR_ISST, (unsigned long)ist_ssp);
 	}
 
 	BUILD_BUG_ON(sizeof(*tss) <= 0x67); /* Mandated by the architecture. */
diff --git a/xen/arch/x86/include/asm/msr-index.h b/xen/arch/x86/include/asm/msr-index.h
index 2e7e2aff9a33..428d993ee89b 100644
--- a/xen/arch/x86/include/asm/msr-index.h
+++ b/xen/arch/x86/include/asm/msr-index.h
@@ -157,7 +157,7 @@
 #define MSR_PL1_SSP                         0x000006a5
 #define MSR_PL2_SSP                         0x000006a6
 #define MSR_PL3_SSP                         0x000006a7
-#define MSR_INTERRUPT_SSP_TABLE             0x000006a8
+#define MSR_ISST                            0x000006a8
 
 #define MSR_PKRS                            0x000006e1
 
diff --git a/xen/arch/x86/msr.c b/xen/arch/x86/msr.c
index 2cd46b6c8afa..1bf117cbd80f 100644
--- a/xen/arch/x86/msr.c
+++ b/xen/arch/x86/msr.c
@@ -138,7 +138,7 @@ int guest_rdmsr(struct vcpu *v, uint32_t msr, uint64_t *val)
     case MSR_RTIT_OUTPUT_BASE ... MSR_RTIT_ADDR_B(7):
     case MSR_U_CET:
     case MSR_S_CET:
-    case MSR_PL0_SSP ... MSR_INTERRUPT_SSP_TABLE:
+    case MSR_PL0_SSP ... MSR_ISST:
     case MSR_AMD64_LWP_CFG:
     case MSR_AMD64_LWP_CBADDR:
     case MSR_PPIN_CTL:
@@ -442,7 +442,7 @@ int guest_wrmsr(struct vcpu *v, uint32_t msr, uint64_t val)
     case MSR_RTIT_OUTPUT_BASE ... MSR_RTIT_ADDR_B(7):
     case MSR_U_CET:
     case MSR_S_CET:
-    case MSR_PL0_SSP ... MSR_INTERRUPT_SSP_TABLE:
+    case MSR_PL0_SSP ... MSR_ISST:
     case MSR_AMD64_LWP_CFG:
     case MSR_AMD64_LWP_CBADDR:
     case MSR_PPIN_CTL:
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 20:23:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 20:23:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1075019.1437470 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukTcc-0006Kr-8y; Fri, 08 Aug 2025 20:23:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1075019.1437470; Fri, 08 Aug 2025 20: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 1ukTcc-0006Kk-6H; Fri, 08 Aug 2025 20:23:26 +0000
Received: by outflank-mailman (input) for mailman id 1075019;
 Fri, 08 Aug 2025 20:23:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Dtzj=2U=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ukTca-0005tW-EG
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 20:23:24 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 884a98fc-7495-11f0-a324-13f23c93f187;
 Fri, 08 Aug 2025 22:23:23 +0200 (CEST)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-459e3926cbbso12472755e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 08 Aug 2025 13:23:23 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459e075047fsm103989805e9.1.2025.08.08.13.23.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Aug 2025 13:23: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>
X-Inumbo-ID: 884a98fc-7495-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754684603; x=1755289403; 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=13MkauBuH09ermsY/i1fhguUQBZhfWnVGzvmuz1PuqQ=;
        b=ScOn8kF4jiQ8iKD/gbwMSxVCNgNincQLxNBtLg6hOoIx/eYp20LCDuOcAygCTnaLq/
         K5Nz+JhzjGsjonOvEvpHRzhy9dyk65e5qOqjQw7uGYSFA0RN622+gQjCidGdcOKwAdlr
         gXqLlp6w1INOOFI2gdmBJx3U9YqSTX1iWCG8w=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754684603; x=1755289403;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=13MkauBuH09ermsY/i1fhguUQBZhfWnVGzvmuz1PuqQ=;
        b=LeBNYUcSrdyZ35LlkmBMHHkPPE2zOIaCyeLMQDFC4wRRrun9vdw+FZbXss2tdMRv8W
         znVvmvLvfLnlzNuSNjK4D8bFfICWYqfND422H6Bh/DIRIM7ffSXAdmFr7LhPMo0+GkrH
         d21UxXQmtcJwEr+dMmWWC23zFM0SRCLfd/GPCtjznZQPAv8eT78NAAMgysnGh0HGVscO
         ynN0bYcaRwUNYd91fxMOj28JvMsBmBehlFRhna/qn2lF9jzJp+ha0Ay1Q7pKb1wr37yf
         Me7pQTFmx+V7j4dFA/TRbKblHsGoghvHN5+ZEQDsGkoR97aNL336ScI7jPOs50IS2GrY
         UuKg==
X-Gm-Message-State: AOJu0Yz18Jb8ZqO43JuEGtjth2mPdhy+WW+iTkiYGpcj86RQIwSy6KIJ
	ouZ8Poppff5B2wBHpmh5IZWAb1FrqIlmAW2c3+FWh+NV6zhrmJ1ASbhHFhPP560qKsB7oceak4g
	XVlMM1Yo=
X-Gm-Gg: ASbGncvDP9VVkSEf8Kwc6w+Qfp4Cl3v0anl/iB46zSXDeXy0RCZkpoM58q9givyIKA1
	Dl8FROs58foZbLE+We07lzjnVaPDvLUIMK+LewgPhG8ypI6gpEeFzw48DzvEP1O/qt7OlKA2P6K
	tFPSAbo5grw4eiBDK/vkzR19T4e1lP2vvcGwoZ9X3ZtgguOuFVq8mb0OQG4L453aOFtKbx9PX3C
	18fpMqahC55qy74ylJEfXKlvk9pJTyt1AFX2crKbZO6ND6mKnYOOC6msWMrXJAqfkrRRvtGi3AW
	AoT9+H8CsgMn3h4CHNH0xORj652luBMur0xUkDIyRqZ+IGOPU4BjZ0Dv3EB1XofPaA+1aheRgeY
	DQTWbe5iphzLtyYT7llvkXvN8ddMIGTHMbEeqkQ6ATWAgfZj1W5fKcQA13+MJFPQAjipJOM6/qo
	zk
X-Google-Smtp-Source: AGHT+IGbesx9l8nGMf7CTQnVncyxpSWuGQ63dhjBS4w7wPbc3OOUllijciJt7hVxgf563vnk/RVjJg==
X-Received: by 2002:a05:600c:1d22:b0:43d:fa59:af97 with SMTP id 5b1f17b1804b1-459f4fc40b1mr34036485e9.32.1754684602672;
        Fri, 08 Aug 2025 13:23: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>
Subject: [PATCH 04/22] x86/idt: Minor improvements to _update_gate_addr_lower()
Date: Fri,  8 Aug 2025 21:22:56 +0100
Message-Id: <20250808202314.1045968-5-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

After some experimentation, using .a/.b makes far better logic than using the
named fields, as both Clang and GCC spill idte to the stack when named fields
are used.

GCC seems to do something very daft for the addr1 field.  It takes addr,
shifts it by 32, then ANDs with 0xffff0000000000000UL, which requires
manifesting a MOVABS.

Clang follows the C, whereby it ANDs with $imm32, then shifts, avoiding the
MOVABS entirely.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

I'm disappointed about how poor the code generation is when assigning to named
fields, but I suppose it is a harder problem for the compiler to figure out.

add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-24 (-24)
Function                                     old     new   delta
machine_kexec                                356     348      -8
traps_init                                   434     418     -16
---
 xen/arch/x86/include/asm/idt.h | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/xen/arch/x86/include/asm/idt.h b/xen/arch/x86/include/asm/idt.h
index f613d5693e0e..b5e570a77fae 100644
--- a/xen/arch/x86/include/asm/idt.h
+++ b/xen/arch/x86/include/asm/idt.h
@@ -92,15 +92,16 @@ static inline void _set_gate_lower(idt_entry_t *gate, unsigned long type,
  * Update the lower half handler of an IDT entry, without changing any other
  * configuration.
  */
-static inline void _update_gate_addr_lower(idt_entry_t *gate, void *addr)
+static inline void _update_gate_addr_lower(idt_entry_t *gate, void *_addr)
 {
+    unsigned long addr = (unsigned long)_addr;
+    unsigned int addr1 = addr & 0xffff0000U; /* GCC force better codegen. */
     idt_entry_t idte;
-    idte.a = gate->a;
 
-    idte.b = ((unsigned long)(addr) >> 32);
-    idte.a &= 0x0000FFFFFFFF0000ULL;
-    idte.a |= (((unsigned long)(addr) & 0xFFFF0000UL) << 32) |
-        ((unsigned long)(addr) & 0xFFFFUL);
+    idte.b = addr >> 32;
+    idte.a = gate->a & 0x0000ffffffff0000UL;
+    idte.a |= (unsigned long)addr1 << 32;
+    idte.a |= addr & 0xffff;
 
     _write_gate_lower(gate, &idte);
 }
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 20:23:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 20:23:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1075021.1437484 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukTcd-0006XW-4a; Fri, 08 Aug 2025 20:23:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1075021.1437484; Fri, 08 Aug 2025 20: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 1ukTcc-0006W1-TQ; Fri, 08 Aug 2025 20:23:26 +0000
Received: by outflank-mailman (input) for mailman id 1075021;
 Fri, 08 Aug 2025 20:23:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Dtzj=2U=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ukTcb-0005tJ-TT
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 20:23:25 +0000
Received: from mail-wm1-x344.google.com (mail-wm1-x344.google.com
 [2a00:1450:4864:20::344])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 865873cd-7495-11f0-b898-0df219b8e170;
 Fri, 08 Aug 2025 22:23:20 +0200 (CEST)
Received: by mail-wm1-x344.google.com with SMTP id
 5b1f17b1804b1-458b885d6eeso16335155e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 08 Aug 2025 13:23:20 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459e075047fsm103989805e9.1.2025.08.08.13.23.18
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Aug 2025 13:23: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>
X-Inumbo-ID: 865873cd-7495-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754684599; x=1755289399; 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=NXB3evWZT2QzGQ/J5BzSyaQ1jIiR7GXFqd50zzqLOmQ=;
        b=bMrI3an2I3UqEGkn2ZNgxp+lFXuwJyYHez+8hjPuUSuROd/VkSmWiyyHFwuGDWMbGo
         gS3kcQxx5jt3Fe5XqAIoITakSQClYDVZDpaPl8albzmrzsOj3mt2MNEw4jEtZh+7fG2G
         Laf1u0Y31p6S2ce8BM1ij0WYYJuUEqR6icss8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754684599; x=1755289399;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=NXB3evWZT2QzGQ/J5BzSyaQ1jIiR7GXFqd50zzqLOmQ=;
        b=JIn1qpDs7In/CVvd45n8H0yxm9LDGazbFq3nIhbWyKg1ApOgxFTizk1s4yRotMDoI9
         v3ZMxytsRnOs6LTFu6KVK6fiobRNDHjE+/yVJFzTFoMu8XVULUwUC3pB49YKkiAwizjq
         plAnB5TQ1aPe4P3VqAxksiLnqO0FJXUvO6TuPDc7ecrx1sEay03wIc1rbXkc19Bp6zM6
         Sn/SxdC6UYXW4kP0gHyqbajz1oexybRqRHveD5uTSe3pH5TLxkepmtqbC/rKqYHldU+e
         S3BFXjsyxF1mIko/aMNmXoRJB3S3Taaw1EUcxqhErgmpfv/OHtUeoliInaOKVh2Lff7o
         +X2w==
X-Gm-Message-State: AOJu0YwjFMrS9Jz2FA+XsTtxnTWOJxhpLE5bV9jGyU+m+bNoqYAZQcJa
	Ku0LNs87dcPxzKZRVffw8ENjCbGmR2J1iymibGjTuuVIbWe5yyM+M3EHpaq7mJnVVxF4TQWM3UD
	Lwaf6JRxinQ==
X-Gm-Gg: ASbGnct0WKbTWrylgMeDR67QJzAvrO67uJ9eo5CcAWQY8LnZWuNtQTbNam+YT3UvpLf
	wDQnihqtYUkwN8PYydKflCePuG6aQjcsQyx/gdL/JCQRBTMuDbWvpFZtJIRU6OPQ1L/BWo2GO7w
	qWvUiFSXQVpdMRSz8fv2+Zi7vbavs4/goJcIk0KrFNvdj1koD7mEEidjo3xjZzwckdrE6YXlnfb
	Vryth91t9g6QvmH7goDmDE8CqlZkq7vpKKszAt8GSUAvcdnI1fE20z538gzRSm23vzrHgcFERNl
	CHgms1PkHmURci3Wn16Dg8LsxaTchSCFmuPRJoxOPXan7Xubh1/pR+kkLxPEn0nBvqddChsSBTp
	KemAE74oXLHn4zSPohaU+bdjy70nCiSDfwEz5bipHMkX0XlQbu621JA+U2/vZPnfj4XHymGoIVQ
	Oi
X-Google-Smtp-Source: AGHT+IEWfXGmnWSAfrcKcA8kPPSp8RIjb9u20ShqxnvVUVZlpICEvaGami8eRfr1Y30jsJWCYUzvIg==
X-Received: by 2002:a05:600c:46c7:b0:456:1a41:f932 with SMTP id 5b1f17b1804b1-459f4f048d7mr37200675e9.22.1754684599342;
        Fri, 08 Aug 2025 13:23: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>
Subject: [PATCH 00/22] x86: FRED support, part 1 (stacks and exceptions)
Date: Fri,  8 Aug 2025 21:22:52 +0100
Message-Id: <20250808202314.1045968-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

Patches 1-12 are cleanup and rearrangement in order to fit FRED in more
nicely.

Patches 13-22 are the start of FRED support, setting up the stacks and
exception handling.

By the end of this series, Xen can run a PVH dom0 (if NMIs aren't in use -
VT-x has a really nasty corner case here), or can get to the point of
launching a PV dom0.  Running a PV dom0 is going to take a similar quantity of
work.

All deveopment work has been done with Intel SIMICS.  I don't yet have real
hardware to test on.

The Gitlab CI AlderLake box, sporting both Shadow Stacks and S3 has been
working overtime checking that S3 works on every relevant patch boundary.

https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/1974989391


Andrew Cooper (22):
  x86/msr: Rename MSR_INTERRUPT_SSP_TABLE to MSR_ISST
  x86/msr: Rename wrmsr_ns() to wrmsrns(), and take 64bit value
  x86/traps: Drop incorrect BUILD_BUG_ON() and comment in load_system_tables()
  x86/idt: Minor improvements to _update_gate_addr_lower()
  x86/traps: Rename early_traps_init() to bsp_early_traps_init()
  x86/traps: Introduce bsp_traps_reinit()
  x86/spec-ctrl: Rework init_shadow_spec_ctrl_state() to take an info pointer
  x86/traps: Introduce ap_early_traps_init() and set up exception handling earlier
  x86/traps: Move load_system_tables() into traps-setup.c
  x86/traps: Move subarch_percpu_traps_init() into traps-setup.c
  x86/traps: Fold x86_64/traps.c into traps.c
  x86/traps: Unexport show_code() and show_stack_overflow()
  x86: FRED enumerations
  x86/traps: Extend struct cpu_user_regs/cpu_info with FRED fields
  x86/traps: Introduce opt_fred
  x86/boot: Adjust CR4 handling around ap_early_traps_init()
  x86/S3: Switch to using RSTORSSP to recover SSP on resume
  x86/traps: Set MSR_PL0_SSP in load_system_tables()
  x86/boot: Use RSTORSSP to establish SSP
  x86/traps: Alter switch_stack_and_jump() for FRED mode
  x86/traps: Introduce FRED entrypoints
  x86/traps: Enable FRED when requested

 docs/misc/xen-command-line.pandoc           |  10 +
 xen/arch/x86/Kconfig                        |   4 +
 xen/arch/x86/acpi/wakeup_prot.S             |  57 +--
 xen/arch/x86/boot/x86_64.S                  |  53 ++-
 xen/arch/x86/cpu/common.c                   | 120 ------
 xen/arch/x86/include/asm/asm-defns.h        |   9 +
 xen/arch/x86/include/asm/asm_defns.h        |  65 +++
 xen/arch/x86/include/asm/cpu-user-regs.h    |  71 +++-
 xen/arch/x86/include/asm/cpufeature.h       |   3 +
 xen/arch/x86/include/asm/current.h          |  14 +-
 xen/arch/x86/include/asm/idt.h              |  13 +-
 xen/arch/x86/include/asm/msr-index.h        |  13 +-
 xen/arch/x86/include/asm/msr.h              |  12 +-
 xen/arch/x86/include/asm/processor.h        |   2 -
 xen/arch/x86/include/asm/prot-key.h         |   4 +-
 xen/arch/x86/include/asm/spec_ctrl.h        |   4 +-
 xen/arch/x86/include/asm/system.h           |   3 -
 xen/arch/x86/include/asm/traps.h            |   7 +-
 xen/arch/x86/include/asm/x86-defns.h        |   1 +
 xen/arch/x86/msr.c                          |   4 +-
 xen/arch/x86/setup.c                        |  37 +-
 xen/arch/x86/smpboot.c                      |  17 +-
 xen/arch/x86/spec_ctrl.c                    |   2 +-
 xen/arch/x86/traps-setup.c                  | 358 +++++++++++++++-
 xen/arch/x86/traps.c                        | 448 +++++++++++++++++++-
 xen/arch/x86/x86_64/Makefile                |   2 +-
 xen/arch/x86/x86_64/entry-fred.S            |  35 ++
 xen/arch/x86/x86_64/traps.c                 | 414 ------------------
 xen/include/public/arch-x86/cpufeatureset.h |   3 +
 xen/include/xen/macros.h                    |   2 +
 30 files changed, 1142 insertions(+), 645 deletions(-)
 create mode 100644 xen/arch/x86/x86_64/entry-fred.S
 delete mode 100644 xen/arch/x86/x86_64/traps.c

-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 20:23:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 20:23:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1075029.1437559 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukTck-0008Sa-AL; Fri, 08 Aug 2025 20:23:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1075029.1437559; Fri, 08 Aug 2025 20:23: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 1ukTcj-0008QO-Tf; Fri, 08 Aug 2025 20:23:33 +0000
Received: by outflank-mailman (input) for mailman id 1075029;
 Fri, 08 Aug 2025 20:23:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Dtzj=2U=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ukTch-0005tJ-BX
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 20:23:31 +0000
Received: from mail-wm1-x341.google.com (mail-wm1-x341.google.com
 [2a00:1450:4864:20::341])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8bc4cbd6-7495-11f0-b898-0df219b8e170;
 Fri, 08 Aug 2025 22:23:29 +0200 (CEST)
Received: by mail-wm1-x341.google.com with SMTP id
 5b1f17b1804b1-4563cfac2d2so21412155e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 08 Aug 2025 13:23:29 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459e075047fsm103989805e9.1.2025.08.08.13.23.27
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Aug 2025 13:23: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>
X-Inumbo-ID: 8bc4cbd6-7495-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754684608; x=1755289408; 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=EYSlQMm9Cg/ibksse8IJEEki/WS5Q2289Zk24bEsFVE=;
        b=O+MWar/pr97dbrLMpDU6MvM5coRi3QBfY2a261nJsuo319lXp3m1QfAGZ/3K58WeV/
         p7FrFTBJxahO5llVQcRfu6MwyV6Iju8t/eBHtIZwHtTSlo0O06UaLd5GXMV3Milffy17
         yn+O2E/JhDR4NuFdGjnCrOk1yXTl5+umwMLxg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754684608; x=1755289408;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=EYSlQMm9Cg/ibksse8IJEEki/WS5Q2289Zk24bEsFVE=;
        b=AYFbBJZa1qIy57hUzT7dC47j6ZLP/+N6bpB2xau9EGxb/2zbBB1THUIdXkKjg9wpOm
         OzMcj0SImCeRy5QMf8a+mviZD1f7zuSQRYe2UJeZSO1m9dITOiCJDwNxOzm9SFX65H3S
         O8AIR9bpRVnFHo/AonzkwQSI7a5d2k9p7FAitn5LR8d9q3e/onA1pWjr25sub85bcfYx
         +wFX+4RCimmjAkRZBdl/2A1907b7QR9XE3rAd5ySuNz+n3I7YH+7yQN1bUHiqp/duP85
         vStIc/ggi/XHpx0yEf9e2M5/RLmbzpW39ccdfUzhdv5jiUoFFrmHa188g/KxLw1e8cBO
         NQ6g==
X-Gm-Message-State: AOJu0YxEA7Sc8hCkakM9M4Z7KxbHfiAvFCR3h/FCSgCiJqu7uEvz5SDr
	TSESKd01gtmcx5PquUq6O3/6YpHKsyfzraZsDEqLSUqqcI5yuRBvcIUcVQrpbNRmDboIsZhb9F+
	PH6l645VSGg==
X-Gm-Gg: ASbGncsqBeds1hCYM4QgjB9XU0S9uhigvabn4mBy2SRcysiRbOUeXAOxjf16fkkzKZN
	Wq+WGVuuWvO5cnJkP+e8wweabeWL4rJhc6eZRuaMp6wj9FJioCGWzciAk5xWq3D27tQ+xKgx47i
	ilz4Y1g4j2nXM+cUMwtqR+krQUUrJg+vvoETZ/GXXqz5HLXufM+6oJ7AL9Ms7qvPwE2/dgxgmiU
	8HUJ/sZPH5uvRCo3Btj0qvi1KfyiJteGMRKF2V2C14q+C1QJZF2wahVUMi5ucEvV7RMl5aqsq4R
	HxD3YxhYUqfGlNKQgU6XnBQ9d0g8G3+48gAcmJI9Qofu40ZwGaiSBA9RazTrK92ickvAWXsKvnD
	AWbnOBXXZQ5H6tP8qscKJWeaNdbwr7aSVPrXjieTnStAixlPGYOvx91K5UOxOXL01OEe4S6hACr
	M8tRcVVux/bk4=
X-Google-Smtp-Source: AGHT+IHhtFes+Q8CMqJAxDSkbc1Og9KmkGx4Itl9VotfFtVd/SioKsjGcSsC8M31fmd9tARYk80H8w==
X-Received: by 2002:a05:600c:4e91:b0:453:6ca:16b1 with SMTP id 5b1f17b1804b1-459f4f144e5mr37960055e9.26.1754684608285;
        Fri, 08 Aug 2025 13:23:28 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 11/22] x86/traps: Fold x86_64/traps.c into traps.c
Date: Fri,  8 Aug 2025 21:23:03 +0100
Message-Id: <20250808202314.1045968-12-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

It's now just the double fault handler and various state dumping functions.

Swap u64 for uint64_t, and fix a few other minor style issues.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/traps.c         | 291 +++++++++++++++++++++++++++++++
 xen/arch/x86/x86_64/Makefile |   1 -
 xen/arch/x86/x86_64/traps.c  | 322 -----------------------------------
 3 files changed, 291 insertions(+), 323 deletions(-)
 delete mode 100644 xen/arch/x86/x86_64/traps.c

diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index 238d923dd188..ab8ff36acfe6 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -26,6 +26,7 @@
 #include <xen/sched.h>
 #include <xen/softirq.h>
 #include <xen/trace.h>
+#include <xen/version.h>
 #include <xen/watchdog.h>
 
 #include <asm/apic.h>
@@ -87,6 +88,272 @@ const unsigned int nmi_cpu;
 #define stack_words_per_line 4
 #define ESP_BEFORE_EXCEPTION(regs) ((unsigned long *)(regs)->rsp)
 
+struct extra_state
+{
+    unsigned long cr0, cr2, cr3, cr4;
+    unsigned long fsb, gsb, gss;
+    uint16_t ds, es, fs, gs;
+};
+
+static void print_xen_info(void)
+{
+    char taint_str[TAINT_STRING_MAX_LEN];
+
+    printk("----[ Xen-%d.%d%s  x86_64  %s  %s ]----\n",
+           xen_major_version(), xen_minor_version(), xen_extra_version(),
+           xen_build_info(), print_tainted(taint_str));
+}
+
+enum context {
+    CTXT_hypervisor,
+    CTXT_pv_guest,
+    CTXT_hvm_guest,
+};
+
+static void read_registers(struct extra_state *state)
+{
+    state->cr0 = read_cr0();
+    state->cr2 = read_cr2();
+    state->cr3 = read_cr3();
+    state->cr4 = read_cr4();
+
+    state->fsb = read_fs_base();
+    state->gsb = read_gs_base();
+    state->gss = read_gs_shadow();
+
+    asm ( "mov %%ds, %0" : "=m" (state->ds) );
+    asm ( "mov %%es, %0" : "=m" (state->es) );
+    asm ( "mov %%fs, %0" : "=m" (state->fs) );
+    asm ( "mov %%gs, %0" : "=m" (state->gs) );
+}
+
+static void get_hvm_registers(struct vcpu *v, struct cpu_user_regs *regs,
+                              struct extra_state *state)
+{
+    struct segment_register sreg;
+
+    state->cr0 = v->arch.hvm.guest_cr[0];
+    state->cr2 = v->arch.hvm.guest_cr[2];
+    state->cr3 = v->arch.hvm.guest_cr[3];
+    state->cr4 = v->arch.hvm.guest_cr[4];
+
+    hvm_get_segment_register(v, x86_seg_cs, &sreg);
+    regs->cs = sreg.sel;
+
+    hvm_get_segment_register(v, x86_seg_ds, &sreg);
+    state->ds = sreg.sel;
+
+    hvm_get_segment_register(v, x86_seg_es, &sreg);
+    state->es = sreg.sel;
+
+    hvm_get_segment_register(v, x86_seg_fs, &sreg);
+    state->fs = sreg.sel;
+    state->fsb = sreg.base;
+
+    hvm_get_segment_register(v, x86_seg_gs, &sreg);
+    state->gs = sreg.sel;
+    state->gsb = sreg.base;
+
+    hvm_get_segment_register(v, x86_seg_ss, &sreg);
+    regs->ss = sreg.sel;
+
+    state->gss = hvm_get_reg(v, MSR_SHADOW_GS_BASE);
+}
+
+static void _show_registers(
+    const struct cpu_user_regs *regs, const struct extra_state *state,
+    enum context context, const struct vcpu *v)
+{
+    static const char *const context_names[] = {
+        [CTXT_hypervisor] = "hypervisor",
+        [CTXT_pv_guest]   = "pv guest",
+        [CTXT_hvm_guest]  = "hvm guest",
+    };
+
+    printk("RIP:    %04x:[<%016lx>]", regs->cs, regs->rip);
+    if ( context == CTXT_hypervisor )
+        printk(" %pS", _p(regs->rip));
+    printk("\nRFLAGS: %016lx   ", regs->rflags);
+    if ( (context == CTXT_pv_guest) && v && v->vcpu_info_area.map )
+        printk("EM: %d   ", !!vcpu_info(v, evtchn_upcall_mask));
+    printk("CONTEXT: %s", context_names[context]);
+    if ( v && !is_idle_vcpu(v) )
+        printk(" (%pv)", v);
+
+    printk("\nrax: %016lx   rbx: %016lx   rcx: %016lx\n",
+           regs->rax, regs->rbx, regs->rcx);
+    printk("rdx: %016lx   rsi: %016lx   rdi: %016lx\n",
+           regs->rdx, regs->rsi, regs->rdi);
+    printk("rbp: %016lx   rsp: %016lx   r8:  %016lx\n",
+           regs->rbp, regs->rsp, regs->r8);
+    printk("r9:  %016lx   r10: %016lx   r11: %016lx\n",
+           regs->r9,  regs->r10, regs->r11);
+    printk("r12: %016lx   r13: %016lx   r14: %016lx\n",
+           regs->r12, regs->r13, regs->r14);
+    printk("r15: %016lx   cr0: %016lx   cr4: %016lx\n",
+           regs->r15, state->cr0, state->cr4);
+    printk("cr3: %016lx   cr2: %016lx\n", state->cr3, state->cr2);
+    printk("fsb: %016lx   gsb: %016lx   gss: %016lx\n",
+           state->fsb, state->gsb, state->gss);
+    printk("ds: %04x   es: %04x   fs: %04x   gs: %04x   ss: %04x   cs: %04x\n",
+           state->ds, state->es, state->fs,
+           state->gs, regs->ss, regs->cs);
+}
+
+void show_registers(const struct cpu_user_regs *regs)
+{
+    struct cpu_user_regs fault_regs = *regs;
+    struct extra_state fault_state;
+    enum context context;
+    struct vcpu *v = system_state >= SYS_STATE_smp_boot ? current : NULL;
+
+    if ( guest_mode(regs) && is_hvm_vcpu(v) )
+    {
+        get_hvm_registers(v, &fault_regs, &fault_state);
+        context = CTXT_hvm_guest;
+    }
+    else
+    {
+        read_registers(&fault_state);
+
+        if ( guest_mode(regs) )
+        {
+            context = CTXT_pv_guest;
+            fault_state.cr2 = arch_get_cr2(v);
+        }
+        else
+        {
+            context = CTXT_hypervisor;
+        }
+    }
+
+    print_xen_info();
+    printk("CPU:    %d\n", smp_processor_id());
+    _show_registers(&fault_regs, &fault_state, context, v);
+
+    if ( ler_msr && !guest_mode(regs) )
+    {
+        uint64_t from, to;
+
+        rdmsrl(ler_msr, from);
+        rdmsrl(ler_msr + 1, to);
+
+        /* Upper bits may store metadata.  Re-canonicalise for printing. */
+        printk("ler: from %016"PRIx64" [%ps]\n",
+               from, _p(canonicalise_addr(from)));
+        printk("       to %016"PRIx64" [%ps]\n",
+               to, _p(canonicalise_addr(to)));
+    }
+}
+
+void vcpu_show_registers(struct vcpu *v)
+{
+    const struct cpu_user_regs *regs = &v->arch.user_regs;
+    struct cpu_user_regs aux_regs;
+    struct extra_state state;
+    enum context context;
+
+    if ( is_hvm_vcpu(v) )
+    {
+        aux_regs = *regs;
+        get_hvm_registers(v, &aux_regs, &state);
+        regs = &aux_regs;
+        context = CTXT_hvm_guest;
+    }
+    else
+    {
+        bool kernel = guest_kernel_mode(v, regs);
+        unsigned long gsb, gss;
+
+        state.cr0 = v->arch.pv.ctrlreg[0];
+        state.cr2 = arch_get_cr2(v);
+        state.cr3 = pagetable_get_paddr(kernel
+                                        ? v->arch.guest_table
+                                        : v->arch.guest_table_user);
+        state.cr4 = v->arch.pv.ctrlreg[4];
+
+        gsb = v->arch.pv.gs_base_user;
+        gss = v->arch.pv.gs_base_kernel;
+        if ( kernel )
+            SWAP(gsb, gss);
+
+        state.fsb = v->arch.pv.fs_base;
+        state.gsb = gsb;
+        state.gss = gss;
+
+        state.ds = v->arch.pv.ds;
+        state.es = v->arch.pv.es;
+        state.fs = v->arch.pv.fs;
+        state.gs = v->arch.pv.gs;
+
+        context = CTXT_pv_guest;
+    }
+
+    _show_registers(regs, &state, context, v);
+}
+
+void show_page_walk(unsigned long addr)
+{
+    unsigned long pfn, mfn = read_cr3() >> PAGE_SHIFT;
+    l4_pgentry_t l4e, *l4t;
+    l3_pgentry_t l3e, *l3t;
+    l2_pgentry_t l2e, *l2t;
+    l1_pgentry_t l1e, *l1t;
+
+    printk("Pagetable walk from %016lx:\n", addr);
+    if ( !is_canonical_address(addr) )
+        return;
+
+    l4t = map_domain_page(_mfn(mfn));
+    l4e = l4t[l4_table_offset(addr)];
+    unmap_domain_page(l4t);
+    mfn = l4e_get_pfn(l4e);
+    pfn = mfn_valid(_mfn(mfn)) && machine_to_phys_mapping_valid ?
+          get_gpfn_from_mfn(mfn) : INVALID_M2P_ENTRY;
+    printk(" L4[0x%03lx] = %"PRIpte" %016lx\n",
+           l4_table_offset(addr), l4e_get_intpte(l4e), pfn);
+    if ( !(l4e_get_flags(l4e) & _PAGE_PRESENT) ||
+         !mfn_valid(_mfn(mfn)) )
+        return;
+
+    l3t = map_domain_page(_mfn(mfn));
+    l3e = l3t[l3_table_offset(addr)];
+    unmap_domain_page(l3t);
+    mfn = l3e_get_pfn(l3e);
+    pfn = mfn_valid(_mfn(mfn)) && machine_to_phys_mapping_valid ?
+          get_gpfn_from_mfn(mfn) : INVALID_M2P_ENTRY;
+    printk(" L3[0x%03lx] = %"PRIpte" %016lx%s\n",
+           l3_table_offset(addr), l3e_get_intpte(l3e), pfn,
+           (l3e_get_flags(l3e) & _PAGE_PSE) ? " (PSE)" : "");
+    if ( !(l3e_get_flags(l3e) & _PAGE_PRESENT) ||
+         (l3e_get_flags(l3e) & _PAGE_PSE) ||
+         !mfn_valid(_mfn(mfn)) )
+        return;
+
+    l2t = map_domain_page(_mfn(mfn));
+    l2e = l2t[l2_table_offset(addr)];
+    unmap_domain_page(l2t);
+    mfn = l2e_get_pfn(l2e);
+    pfn = mfn_valid(_mfn(mfn)) && machine_to_phys_mapping_valid ?
+          get_gpfn_from_mfn(mfn) : INVALID_M2P_ENTRY;
+    printk(" L2[0x%03lx] = %"PRIpte" %016lx%s\n",
+           l2_table_offset(addr), l2e_get_intpte(l2e), pfn,
+           (l2e_get_flags(l2e) & _PAGE_PSE) ? " (PSE)" : "");
+    if ( !(l2e_get_flags(l2e) & _PAGE_PRESENT) ||
+         (l2e_get_flags(l2e) & _PAGE_PSE) ||
+         !mfn_valid(_mfn(mfn)) )
+        return;
+
+    l1t = map_domain_page(_mfn(mfn));
+    l1e = l1t[l1_table_offset(addr)];
+    unmap_domain_page(l1t);
+    mfn = l1e_get_pfn(l1e);
+    pfn = mfn_valid(_mfn(mfn)) && machine_to_phys_mapping_valid ?
+          get_gpfn_from_mfn(mfn) : INVALID_M2P_ENTRY;
+    printk(" L1[0x%03lx] = %"PRIpte" %016lx\n",
+           l1_table_offset(addr), l1e_get_intpte(l1e), pfn);
+}
+
 void show_code(const struct cpu_user_regs *regs)
 {
     unsigned char insns_before[8] = {}, insns_after[16] = {};
@@ -762,6 +1029,30 @@ const char *vector_name(unsigned int vec)
     return (vec < ARRAY_SIZE(names) && names[vec][0]) ? names[vec] : "???";
 }
 
+void asmlinkage do_double_fault(struct cpu_user_regs *regs)
+{
+    unsigned int cpu;
+    struct extra_state state;
+
+    console_force_unlock();
+
+    asm ( "lsll %[sel], %[limit]" : [limit] "=r" (cpu)
+                                  : [sel] "r" (PER_CPU_SELECTOR) );
+
+    /* Find information saved during fault and dump it to the console. */
+    printk("*** DOUBLE FAULT ***\n");
+    print_xen_info();
+
+    read_registers(&state);
+
+    printk("CPU:    %d\n", cpu);
+    _show_registers(regs, &state, CTXT_hypervisor, NULL);
+    show_code(regs);
+    show_stack_overflow(cpu, regs);
+
+    panic("DOUBLE FAULT -- system shutdown\n");
+}
+
 /*
  * This is called for faults at very unexpected times (e.g., when interrupts
  * are disabled). In such situations we can't do much that is safe. We try to
diff --git a/xen/arch/x86/x86_64/Makefile b/xen/arch/x86/x86_64/Makefile
index 472b2bab523d..f20763088740 100644
--- a/xen/arch/x86/x86_64/Makefile
+++ b/xen/arch/x86/x86_64/Makefile
@@ -1,7 +1,6 @@
 obj-$(CONFIG_PV32) += compat/
 
 obj-bin-y += entry.o
-obj-y += traps.o
 obj-$(CONFIG_KEXEC) += machine_kexec.o
 obj-y += pci.o
 obj-y += acpi_mmcfg.o
diff --git a/xen/arch/x86/x86_64/traps.c b/xen/arch/x86/x86_64/traps.c
deleted file mode 100644
index 81e64466e47e..000000000000
--- a/xen/arch/x86/x86_64/traps.c
+++ /dev/null
@@ -1,322 +0,0 @@
-#include <xen/console.h>
-#include <xen/errno.h>
-#include <xen/guest_access.h>
-#include <xen/hypercall.h>
-#include <xen/init.h>
-#include <xen/irq.h>
-#include <xen/lib.h>
-#include <xen/mm.h>
-#include <xen/sched.h>
-#include <xen/shutdown.h>
-#include <xen/symbols.h>
-#include <xen/version.h>
-#include <xen/watchdog.h>
-
-#include <asm/current.h>
-#include <asm/endbr.h>
-#include <asm/event.h>
-#include <asm/flushtlb.h>
-#include <asm/hvm/hvm.h>
-#include <asm/msr.h>
-#include <asm/nmi.h>
-#include <asm/page.h>
-#include <asm/shared.h>
-#include <asm/stubs.h>
-#include <asm/traps.h>
-
-struct extra_state
-{
-    unsigned long cr0, cr2, cr3, cr4;
-    unsigned long fsb, gsb, gss;
-    uint16_t ds, es, fs, gs;
-};
-
-static void print_xen_info(void)
-{
-    char taint_str[TAINT_STRING_MAX_LEN];
-
-    printk("----[ Xen-%d.%d%s  x86_64  %s  %s ]----\n",
-           xen_major_version(), xen_minor_version(), xen_extra_version(),
-           xen_build_info(), print_tainted(taint_str));
-}
-
-enum context { CTXT_hypervisor, CTXT_pv_guest, CTXT_hvm_guest };
-
-static void read_registers(struct extra_state *state)
-{
-    state->cr0 = read_cr0();
-    state->cr2 = read_cr2();
-    state->cr3 = read_cr3();
-    state->cr4 = read_cr4();
-
-    state->fsb = read_fs_base();
-    state->gsb = read_gs_base();
-    state->gss = read_gs_shadow();
-
-    asm ( "mov %%ds, %0" : "=m" (state->ds) );
-    asm ( "mov %%es, %0" : "=m" (state->es) );
-    asm ( "mov %%fs, %0" : "=m" (state->fs) );
-    asm ( "mov %%gs, %0" : "=m" (state->gs) );
-}
-
-static void get_hvm_registers(struct vcpu *v, struct cpu_user_regs *regs,
-                              struct extra_state *state)
-{
-    struct segment_register sreg;
-
-    state->cr0 = v->arch.hvm.guest_cr[0];
-    state->cr2 = v->arch.hvm.guest_cr[2];
-    state->cr3 = v->arch.hvm.guest_cr[3];
-    state->cr4 = v->arch.hvm.guest_cr[4];
-
-    hvm_get_segment_register(v, x86_seg_cs, &sreg);
-    regs->cs = sreg.sel;
-
-    hvm_get_segment_register(v, x86_seg_ds, &sreg);
-    state->ds = sreg.sel;
-
-    hvm_get_segment_register(v, x86_seg_es, &sreg);
-    state->es = sreg.sel;
-
-    hvm_get_segment_register(v, x86_seg_fs, &sreg);
-    state->fs = sreg.sel;
-    state->fsb = sreg.base;
-
-    hvm_get_segment_register(v, x86_seg_gs, &sreg);
-    state->gs = sreg.sel;
-    state->gsb = sreg.base;
-
-    hvm_get_segment_register(v, x86_seg_ss, &sreg);
-    regs->ss = sreg.sel;
-
-    state->gss = hvm_get_reg(v, MSR_SHADOW_GS_BASE);
-}
-
-static void _show_registers(
-    const struct cpu_user_regs *regs, const struct extra_state *state,
-    enum context context, const struct vcpu *v)
-{
-    static const char *const context_names[] = {
-        [CTXT_hypervisor] = "hypervisor",
-        [CTXT_pv_guest]   = "pv guest",
-        [CTXT_hvm_guest]  = "hvm guest"
-    };
-
-    printk("RIP:    %04x:[<%016lx>]", regs->cs, regs->rip);
-    if ( context == CTXT_hypervisor )
-        printk(" %pS", _p(regs->rip));
-    printk("\nRFLAGS: %016lx   ", regs->rflags);
-    if ( (context == CTXT_pv_guest) && v && v->vcpu_info_area.map )
-        printk("EM: %d   ", !!vcpu_info(v, evtchn_upcall_mask));
-    printk("CONTEXT: %s", context_names[context]);
-    if ( v && !is_idle_vcpu(v) )
-        printk(" (%pv)", v);
-
-    printk("\nrax: %016lx   rbx: %016lx   rcx: %016lx\n",
-           regs->rax, regs->rbx, regs->rcx);
-    printk("rdx: %016lx   rsi: %016lx   rdi: %016lx\n",
-           regs->rdx, regs->rsi, regs->rdi);
-    printk("rbp: %016lx   rsp: %016lx   r8:  %016lx\n",
-           regs->rbp, regs->rsp, regs->r8);
-    printk("r9:  %016lx   r10: %016lx   r11: %016lx\n",
-           regs->r9,  regs->r10, regs->r11);
-    printk("r12: %016lx   r13: %016lx   r14: %016lx\n",
-           regs->r12, regs->r13, regs->r14);
-    printk("r15: %016lx   cr0: %016lx   cr4: %016lx\n",
-           regs->r15, state->cr0, state->cr4);
-    printk("cr3: %016lx   cr2: %016lx\n", state->cr3, state->cr2);
-    printk("fsb: %016lx   gsb: %016lx   gss: %016lx\n",
-           state->fsb, state->gsb, state->gss);
-    printk("ds: %04x   es: %04x   fs: %04x   gs: %04x   "
-           "ss: %04x   cs: %04x\n",
-           state->ds, state->es, state->fs,
-           state->gs, regs->ss, regs->cs);
-}
-
-void show_registers(const struct cpu_user_regs *regs)
-{
-    struct cpu_user_regs fault_regs = *regs;
-    struct extra_state fault_state;
-    enum context context;
-    struct vcpu *v = system_state >= SYS_STATE_smp_boot ? current : NULL;
-
-    if ( guest_mode(regs) && is_hvm_vcpu(v) )
-    {
-        get_hvm_registers(v, &fault_regs, &fault_state);
-        context = CTXT_hvm_guest;
-    }
-    else
-    {
-        read_registers(&fault_state);
-
-        if ( guest_mode(regs) )
-        {
-            context = CTXT_pv_guest;
-            fault_state.cr2 = arch_get_cr2(v);
-        }
-        else
-        {
-            context = CTXT_hypervisor;
-        }
-    }
-
-    print_xen_info();
-    printk("CPU:    %d\n", smp_processor_id());
-    _show_registers(&fault_regs, &fault_state, context, v);
-
-    if ( ler_msr && !guest_mode(regs) )
-    {
-        u64 from, to;
-
-        rdmsrl(ler_msr, from);
-        rdmsrl(ler_msr + 1, to);
-
-        /* Upper bits may store metadata.  Re-canonicalise for printing. */
-        printk("ler: from %016"PRIx64" [%ps]\n",
-               from, _p(canonicalise_addr(from)));
-        printk("       to %016"PRIx64" [%ps]\n",
-               to, _p(canonicalise_addr(to)));
-    }
-}
-
-void vcpu_show_registers(struct vcpu *v)
-{
-    const struct cpu_user_regs *regs = &v->arch.user_regs;
-    struct cpu_user_regs aux_regs;
-    struct extra_state state;
-    enum context context;
-
-    if ( is_hvm_vcpu(v) )
-    {
-        aux_regs = *regs;
-        get_hvm_registers(v, &aux_regs, &state);
-        regs = &aux_regs;
-        context = CTXT_hvm_guest;
-    }
-    else
-    {
-        bool kernel = guest_kernel_mode(v, regs);
-        unsigned long gsb, gss;
-
-        state.cr0 = v->arch.pv.ctrlreg[0];
-        state.cr2 = arch_get_cr2(v);
-        state.cr3 = pagetable_get_paddr(kernel
-                                        ? v->arch.guest_table
-                                        : v->arch.guest_table_user);
-        state.cr4 = v->arch.pv.ctrlreg[4];
-
-        gsb = v->arch.pv.gs_base_user;
-        gss = v->arch.pv.gs_base_kernel;
-        if ( kernel )
-            SWAP(gsb, gss);
-
-        state.fsb = v->arch.pv.fs_base;
-        state.gsb = gsb;
-        state.gss = gss;
-
-        state.ds = v->arch.pv.ds;
-        state.es = v->arch.pv.es;
-        state.fs = v->arch.pv.fs;
-        state.gs = v->arch.pv.gs;
-
-        context = CTXT_pv_guest;
-    }
-
-    _show_registers(regs, &state, context, v);
-}
-
-void show_page_walk(unsigned long addr)
-{
-    unsigned long pfn, mfn = read_cr3() >> PAGE_SHIFT;
-    l4_pgentry_t l4e, *l4t;
-    l3_pgentry_t l3e, *l3t;
-    l2_pgentry_t l2e, *l2t;
-    l1_pgentry_t l1e, *l1t;
-
-    printk("Pagetable walk from %016lx:\n", addr);
-    if ( !is_canonical_address(addr) )
-        return;
-
-    l4t = map_domain_page(_mfn(mfn));
-    l4e = l4t[l4_table_offset(addr)];
-    unmap_domain_page(l4t);
-    mfn = l4e_get_pfn(l4e);
-    pfn = mfn_valid(_mfn(mfn)) && machine_to_phys_mapping_valid ?
-          get_gpfn_from_mfn(mfn) : INVALID_M2P_ENTRY;
-    printk(" L4[0x%03lx] = %"PRIpte" %016lx\n",
-           l4_table_offset(addr), l4e_get_intpte(l4e), pfn);
-    if ( !(l4e_get_flags(l4e) & _PAGE_PRESENT) ||
-         !mfn_valid(_mfn(mfn)) )
-        return;
-
-    l3t = map_domain_page(_mfn(mfn));
-    l3e = l3t[l3_table_offset(addr)];
-    unmap_domain_page(l3t);
-    mfn = l3e_get_pfn(l3e);
-    pfn = mfn_valid(_mfn(mfn)) && machine_to_phys_mapping_valid ?
-          get_gpfn_from_mfn(mfn) : INVALID_M2P_ENTRY;
-    printk(" L3[0x%03lx] = %"PRIpte" %016lx%s\n",
-           l3_table_offset(addr), l3e_get_intpte(l3e), pfn,
-           (l3e_get_flags(l3e) & _PAGE_PSE) ? " (PSE)" : "");
-    if ( !(l3e_get_flags(l3e) & _PAGE_PRESENT) ||
-         (l3e_get_flags(l3e) & _PAGE_PSE) ||
-         !mfn_valid(_mfn(mfn)) )
-        return;
-
-    l2t = map_domain_page(_mfn(mfn));
-    l2e = l2t[l2_table_offset(addr)];
-    unmap_domain_page(l2t);
-    mfn = l2e_get_pfn(l2e);
-    pfn = mfn_valid(_mfn(mfn)) && machine_to_phys_mapping_valid ?
-          get_gpfn_from_mfn(mfn) : INVALID_M2P_ENTRY;
-    printk(" L2[0x%03lx] = %"PRIpte" %016lx%s\n",
-           l2_table_offset(addr), l2e_get_intpte(l2e), pfn,
-           (l2e_get_flags(l2e) & _PAGE_PSE) ? " (PSE)" : "");
-    if ( !(l2e_get_flags(l2e) & _PAGE_PRESENT) ||
-         (l2e_get_flags(l2e) & _PAGE_PSE) ||
-         !mfn_valid(_mfn(mfn)) )
-        return;
-
-    l1t = map_domain_page(_mfn(mfn));
-    l1e = l1t[l1_table_offset(addr)];
-    unmap_domain_page(l1t);
-    mfn = l1e_get_pfn(l1e);
-    pfn = mfn_valid(_mfn(mfn)) && machine_to_phys_mapping_valid ?
-          get_gpfn_from_mfn(mfn) : INVALID_M2P_ENTRY;
-    printk(" L1[0x%03lx] = %"PRIpte" %016lx\n",
-           l1_table_offset(addr), l1e_get_intpte(l1e), pfn);
-}
-
-void asmlinkage noreturn do_double_fault(struct cpu_user_regs *regs)
-{
-    unsigned int cpu;
-    struct extra_state state;
-
-    console_force_unlock();
-
-    asm ( "lsll %[sel], %[limit]" : [limit] "=r" (cpu)
-                                  : [sel] "r" (PER_CPU_SELECTOR) );
-
-    /* Find information saved during fault and dump it to the console. */
-    printk("*** DOUBLE FAULT ***\n");
-    print_xen_info();
-
-    read_registers(&state);
-
-    printk("CPU:    %d\n", cpu);
-    _show_registers(regs, &state, CTXT_hypervisor, NULL);
-    show_code(regs);
-    show_stack_overflow(cpu, regs);
-
-    panic("DOUBLE FAULT -- system shutdown\n");
-}
-
-/*
- * Local variables:
- * mode: C
- * c-file-style: "BSD"
- * c-basic-offset: 4
- * tab-width: 4
- * indent-tabs-mode: nil
- * End:
- */
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 20:23:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 20:23:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1075031.1437568 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukTcl-0000E0-FZ; Fri, 08 Aug 2025 20:23:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1075031.1437568; Fri, 08 Aug 2025 20:23: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 1ukTck-0000As-Qq; Fri, 08 Aug 2025 20:23:34 +0000
Received: by outflank-mailman (input) for mailman id 1075031;
 Fri, 08 Aug 2025 20:23:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Dtzj=2U=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ukTch-0005tW-V1
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 20:23:31 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8cff654d-7495-11f0-a324-13f23c93f187;
 Fri, 08 Aug 2025 22:23:31 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-459ebb6bbdfso16617975e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 08 Aug 2025 13:23:31 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459e075047fsm103989805e9.1.2025.08.08.13.23.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Aug 2025 13:23: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>
X-Inumbo-ID: 8cff654d-7495-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754684611; x=1755289411; 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=cTq1zY2I26ChNKndjNiVvn62M1r/PKSnKEK0vFDd4Xw=;
        b=kVvnBQfBbtrtxRxxaGQ17AIwAqM7oGoJ4A/1Yz44F7oP2m3LuZ5V7+QUHuyCQaYU7A
         ckY50RlcOPesuuP5VGRZiMZQoz0kAtppRTgvmaHgFfs1FuPTbK9ufTLr9Usc6ua+K+PD
         yf45tykm4zbiMcuroRjipZRERiOaQwWn4cNoA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754684611; x=1755289411;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=cTq1zY2I26ChNKndjNiVvn62M1r/PKSnKEK0vFDd4Xw=;
        b=AdC1G685ZJg8B1jAh5E8iv+DS0YtMoLiT/Hw+XX4l90xWAGPUuRb93X7f3Snqmzw+U
         6Zbauve894wacCoJezqbkSc6KB3+HRsHtCJud/2h8jdwJibkrWNoQ5oKap3kVK3vsqIT
         56nW0SG/MZTje5FZlCaF5oKzoyzHrcxkHUGbWv5Z4avUvHMP6wNuLn1KP612AclVmDRs
         zQMDpZtUBorhj8VZoAtUFJSWE52vFd0sCjmo6zJlJYeTBxQXCZlJKoDx20//xxkKT/er
         p+tLl0YmKnonowuJJcBi+2TUGL4xOLFJoQs4/c1/nCu+T/74f1gEw/40dUQSaRSxT0Zc
         5HMw==
X-Gm-Message-State: AOJu0YzCAglu+kopE86ZPab3/e8FrEi35RtAAsOKWT29/nmTSOqFC+ai
	6g/Q1QcdrM9cfGcqxOo+aJz9jMeaiR295rj8Z5BUHBmYXVb/14iZHOCHs/NQj6oYbG4iifdbn7o
	wtHFHzNY=
X-Gm-Gg: ASbGncvl4MPyIbB1dI+6S1iiPTFOLl6U8zOdhZkrncOaj8PQVENM6DYWpMz3ZbrN6ac
	L1xkMoEV+jOWJY5EXzZT4tVXevZ82PxKvoPrxRtYHau0axQbsA83SgjCbB10dh5nugeAzQUJOWi
	uu5HXP3BousCTKTeyQrDm+y3DS0zFn7aS//Svyhsv0s6F/NxRIXLwSsyqvSXMDQcjLrfH5A097j
	KejuUqVbhkPj7Te2GyfTSLTlZXzHHPAzD3CPZcwhab7XoEMM7GrPU5M0Oc8ILm6yTYpj6h7hKTu
	G1uOpTQftAhvTOeiBUBsrgO+A4hnoxkbZwwaBMF7Nydy3xo2PHPTH49qE2FLQzHHuJbMS23aU7y
	DW7AEYtD+g3d0hgLoHkJ8N02fcxh/rMnmK1yTJd+ViHLRi5n+kZBupG7FXzDh7CL8wU3mUpCd9a
	xA
X-Google-Smtp-Source: AGHT+IGsLXCOpXJvGiSWbmlCj4KaXirNJ77sHY86pggs96EcE/yz32J/KyrLLWRQ6t+iEhKWqpgulA==
X-Received: by 2002:a05:600c:b86:b0:459:dde3:1a3d with SMTP id 5b1f17b1804b1-459f4fb0174mr32998035e9.26.1754684610501;
        Fri, 08 Aug 2025 13:23: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>
Subject: [PATCH 14/22] x86/traps: Extend struct cpu_user_regs/cpu_info with FRED fields
Date: Fri,  8 Aug 2025 21:23:06 +0100
Message-Id: <20250808202314.1045968-15-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The FRED on-stack format is larger than the IDT format, but is by and large
compatible.  FRED reuses space above cs and ss for extra metadata, some of
which is purely informational, and some of which causes additional effects in
ERET{U,S}.

Follow Linux's choice of naming for fred_{c,s}s structures, to make it very
clear at the point of use that it's dependent on FRED.

There is also the event data field and reserved fields, but we cannot include
these in struct cpu_user_regs without reintroducing OoB structure accesses in
the non-FRED case.  See commit 6065a05adf15 ("x86/traps: 'Fix' safety of
read_registers() in #DF path"). for more details.

Instead, use a new struct fred_info and position it suitably in struct
cpu_info.  This boundary will be loaded into MSR_FRED_RSP_SL0, and must be
64-byte aligned.

This does add 16 bytes back into struct cpu_info, undoing the saving we made
by dropping the vm86 data segment selectors.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/include/asm/cpu-user-regs.h | 71 ++++++++++++++++++++++--
 xen/arch/x86/include/asm/current.h       |  2 +
 xen/arch/x86/traps-setup.c               |  5 ++
 3 files changed, 74 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/include/asm/cpu-user-regs.h b/xen/arch/x86/include/asm/cpu-user-regs.h
index d700a3ef3447..06d9cbfbe6ba 100644
--- a/xen/arch/x86/include/asm/cpu-user-regs.h
+++ b/xen/arch/x86/include/asm/cpu-user-regs.h
@@ -30,6 +30,10 @@ struct cpu_user_regs
     /*
      * During IDT delivery for exceptions with an error code, hardware pushes
      * to this point.  Entry_vector is filled in by software.
+     *
+     * During FRED delivery, hardware always pushes to this point.  Software
+     * copies fred_ss.vector into entry_vector so most interrupt/exception
+     * handling can be FRED-agnostic.
      */
 
     uint32_t error_code;
@@ -42,17 +46,76 @@ struct cpu_user_regs
      */
 
     union { uint64_t rip;    uint32_t eip;    uint16_t ip; };
-    uint16_t cs, _pad0[1];
-    uint8_t  saved_upcall_mask; /* PV (v)rflags.IF == !saved_upcall_mask */
-    uint8_t  _pad1[3];
+    union {
+        struct {
+            uint16_t      cs;
+            unsigned long :16;
+            uint8_t       saved_upcall_mask; /* PV (v)rflags.IF == !saved_upcall_mask */
+        };
+        unsigned long     csx;
+        struct {
+            /*
+             * Bits 0 thru 31 control ERET{U,S} behaviour, and is state of the
+             * interrupted context.
+             */
+            uint16_t      cs;
+            unsigned int  sl:2;      /* Stack Level */
+            bool          wfe:1;     /* Wait-for-ENDBRANCH state */
+        } fred_cs;
+    };
     union { uint64_t rflags; uint32_t eflags; uint16_t flags; };
     union { uint64_t rsp;    uint32_t esp;    uint16_t sp;    uint8_t spl; };
-    uint16_t ss, _pad2[3];
+    union {
+        uint16_t          ss;
+        unsigned long     ssx;
+        struct {
+            /*
+             * Bits 0 thru 31 control ERET{U,S} behaviour, and is state about
+             * the event which occured.
+             */
+            uint16_t      ss;
+            bool          sti:1;     /* Was blocked-by-STI, and not cancelled */
+            bool          swint:1;   /* Was a SYSCALL/SYSENTER/INT $N */
+            bool          nmi:1;     /* Was an NMI. */
+            unsigned long :13;
+
+            /*
+             * Bits 32 thru 63 are ignored by ERET{U,S} and are informative
+             * only.
+             */
+            uint8_t       vector;
+            unsigned long :8;
+            unsigned int  type:4;    /* X86_ET_* */
+            unsigned long :4;
+            bool          enclave:1; /* Event taken in SGX mode */
+            bool          lm:1;      /* Was in Long Mode */
+            bool          nested:1;  /* Exception during event delivery, clear for #DF */
+            unsigned long :1;
+            unsigned int  insnlen:4; /* .type >= SW_INT */
+        } fred_ss;
+    };
 
     /*
      * For IDT delivery, tss->rsp0 points to this boundary as embedded within
      * struct cpu_info.  It must be 16-byte aligned.
      */
 };
+struct fred_info
+{
+    /*
+     * Event Data.  For:
+     *   #DB: PENDING_DBG (%dr6 with positive polarity)
+     *   NMI: NMI-Source Bitmap (on capable hardware)
+     *   #PF: %cr2
+     *   #NM: MSR_XFD_ERR (only XFD-induced #NMs)
+     */
+    uint64_t edata;
+    uint64_t _rsvd;
+
+    /*
+     * For FRED delivery, MSR_FRED_RSP_SL0 points to this boundary as embedded
+     * within struct cpu_info.  It must be 64-byte aligned.
+     */
+};
 
 #endif /* X86_CPU_USER_REGS_H */
diff --git a/xen/arch/x86/include/asm/current.h b/xen/arch/x86/include/asm/current.h
index a7c9473428b2..962eb76a82b3 100644
--- a/xen/arch/x86/include/asm/current.h
+++ b/xen/arch/x86/include/asm/current.h
@@ -38,6 +38,8 @@ struct vcpu;
 
 struct cpu_info {
     struct cpu_user_regs guest_cpu_user_regs;
+    struct fred_info _fred; /* Only used when FRED is active. */
+
     unsigned int processor_id;
     unsigned int verw_sel;
     struct vcpu *current_vcpu;
diff --git a/xen/arch/x86/traps-setup.c b/xen/arch/x86/traps-setup.c
index fbae7072c292..37202c17fcea 100644
--- a/xen/arch/x86/traps-setup.c
+++ b/xen/arch/x86/traps-setup.c
@@ -360,7 +360,12 @@ static void __init __maybe_unused build_assertions(void)
      *
      * tss->rsp0, pointing at the end of cpu_info.guest_cpu_user_regs, must be
      * 16-byte aligned.
+     *
+     * MSR_FRED_RSP_SL0, pointing to the end of cpu_info._fred must be 64-byte
+     * aligned.
      */
     BUILD_BUG_ON((sizeof(struct cpu_info) -
                   endof_field(struct cpu_info, guest_cpu_user_regs)) & 15);
+    BUILD_BUG_ON((sizeof(struct cpu_info) -
+                  endof_field(struct cpu_info, _fred)) & 63);
 }
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 20:23:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 20:23:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1075033.1437577 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukTcm-0000Z0-VJ; Fri, 08 Aug 2025 20:23:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1075033.1437577; Fri, 08 Aug 2025 20:23: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 1ukTcm-0000V3-79; Fri, 08 Aug 2025 20:23:36 +0000
Received: by outflank-mailman (input) for mailman id 1075033;
 Fri, 08 Aug 2025 20:23:33 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Dtzj=2U=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ukTcj-0005tW-A6
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 20:23:33 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8de1f6e8-7495-11f0-a324-13f23c93f187;
 Fri, 08 Aug 2025 22:23:32 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-451d3f72391so20485505e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 08 Aug 2025 13:23:32 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459e075047fsm103989805e9.1.2025.08.08.13.23.31
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Aug 2025 13:23: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>
X-Inumbo-ID: 8de1f6e8-7495-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754684612; x=1755289412; 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=KnuSzFJrJdbU/x73TUxu0/lQq8zKDVIUYGotpIOmF90=;
        b=GSYQ0UK3j08cp6HhNdpxeLF0fIGzqVp+rei5YzBtzbuGG420GJF/8zbPN12LMCN8x2
         JDMkSGcjbcrcy4ubVjD31kBj/Qcu86wquEiofzgYu7+5L8Hr3SXuOoD0QYkHh4FXWfdx
         NIGTn1wo7t0brWGsjRfAaXw033jnnspuYWNhI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754684612; x=1755289412;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=KnuSzFJrJdbU/x73TUxu0/lQq8zKDVIUYGotpIOmF90=;
        b=rsgRkpKXrL6M+bdbR8YwCP37Nu8QNeflNrcgCJRppeXVmy2pRkmzEhe96H7Jdi0VCq
         EMEdbV77SNiDWiy3VNPVxtPegxEs+gY3lankzQlMOgy6wyW/5xih2jJxT+xaBF6LzhUG
         x5GxJxti+LG9AVpWhQD37naDXFotuB220pyvOTk5qpvRcbz7pnGVIEO97J5UHwtONqht
         BHgOW0TuTHOgto7buXmCNdAxNwDlvViciKKtyKT9FjJS5MH3XSUVv0ytZ3YqzIEJUxze
         GZgPCrxyWJamjd5iQqEdx3AEq5G7pJ7Gh6t2LsmLaTGw0a1zIbWJTXJOfujX8OZzJ7m0
         pQ6g==
X-Gm-Message-State: AOJu0YzZEvQAvWeo4w1+Hn4R6FACMXKo8ZjsgC5QvuXttzvp6GM9H+UB
	Wo9Z4RmgcsCHRl4u5d+XMfWtaesgYShk8xsFRbXJNCiv2Jq8qBEFFTVHQ5BQ+tU3hUWSG9/qHU/
	pjBsWhE8=
X-Gm-Gg: ASbGnctxcC5FnT5W+miLQVn5hVaprTF3KYN7d7vT23rj/pPLJ1sboyTIdUIAvZRcl+3
	j8lfP+EiWKbXsuVQaAOUyLksSGLMImMOO34W28qG/nU3SlUasyednpB4RF4SHRp876c82JG856A
	Wx3ryuk97ns3m+hDr6fBT6PIsieM2It/qKgu9tKQauKkaGPhwXpbZZUv/TYfLNozkFO1aBH30fH
	VziQ4cF8kuD08oxsVYsn7+yTP5j8UrIBPX0eNArmzK/PRxQZznO8ZoqrkcSGNZ0v9gdD2cVkqaH
	+w+QeqJFboD9WH4/DJkT4FO9snomQfmpnRSqMH64LwoIyQQ+/2q7uLZkil+XLXNap4tTWDNav+P
	ACyww3MeW3flwRQbsAz/v/yphcZRi6jW8kqX+8smxbr5I2PxJ6AI47hAKPF4bkyx3L+JnBUp4vf
	VuX57V/VqJscY=
X-Google-Smtp-Source: AGHT+IG7hgWCsa4bQd2lSIYwBLbz9l3LdUBr7IJMT7qdKkc5WBbzt9hhSlaY9vrTRKlSGdJCpgQ8Ag==
X-Received: by 2002:a05:600c:354a:b0:43c:f8fe:dd82 with SMTP id 5b1f17b1804b1-459f4f0f57fmr43002675e9.18.1754684611999;
        Fri, 08 Aug 2025 13:23:31 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 16/22] x86/boot: Adjust CR4 handling around ap_early_traps_init()
Date: Fri,  8 Aug 2025 21:23:08 +0100
Message-Id: <20250808202314.1045968-17-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

ap_early_traps_init() will shortly be setting CR4.FRED.  This requires that
cpu_info->cr4 is already set up, and that the enablement of CET doesn't
truncate FRED back out because of it's 32bit logic.

For __high_start(), defer re-loading XEN_MINIMAL_CR4 until after %rsp is set
up and we can store the result in the cr4 field too.

For s3_resume(), explicitly re-load XEN_MINIMAL_CR4.  Later when loading all
features, use the mmu_cr4_features variable which is how the rest of Xen
performs this operation.

No functional change, yet.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/acpi/wakeup_prot.S | 18 ++++++++++++++----
 xen/arch/x86/boot/x86_64.S      | 15 ++++++++++-----
 2 files changed, 24 insertions(+), 9 deletions(-)

diff --git a/xen/arch/x86/acpi/wakeup_prot.S b/xen/arch/x86/acpi/wakeup_prot.S
index 60eca4010042..dfc8c6ac6e8c 100644
--- a/xen/arch/x86/acpi/wakeup_prot.S
+++ b/xen/arch/x86/acpi/wakeup_prot.S
@@ -63,6 +63,14 @@ LABEL(s3_resume)
         pushq   %rax
         lretq
 1:
+
+        GET_STACK_END(15)
+
+        /* Enable minimal CR4 features. */
+        mov     $XEN_MINIMAL_CR4, %eax
+        mov     %rax, STACK_CPUINFO_FIELD(cr4)(%r15)
+        mov     %rax, %cr4
+
         /* Set up early exceptions and CET before entering C properly. */
         call    ap_early_traps_init
 
@@ -77,7 +85,9 @@ LABEL(s3_resume)
         wrmsr
 
         /* Enable CR4.CET. */
-        mov     $XEN_MINIMAL_CR4 | X86_CR4_CET, %ecx
+        mov     $X86_CR4_CET, %ecx
+        or      STACK_CPUINFO_FIELD(cr4)(%r15), %rcx
+        mov     %rcx, STACK_CPUINFO_FIELD(cr4)(%r15)
         mov     %rcx, %cr4
 
         /* WARNING! call/ret now fatal (iff SHSTK) until SETSSBSY loads SSP */
@@ -120,9 +130,9 @@ LABEL(s3_resume)
 .L_cet_done:
 #endif /* CONFIG_XEN_SHSTK || CONFIG_XEN_IBT */
 
-        /* Restore CR4 from the cpuinfo block. */
-        GET_STACK_END(bx)
-        mov     STACK_CPUINFO_FIELD(cr4)(%rbx), %rax
+        /* Load all CR4 settings. */
+        mov     mmu_cr4_features(%rip), %rax
+        mov     %rax, STACK_CPUINFO_FIELD(cr4)(%r15)
         mov     %rax, %cr4
 
         call    mtrr_bp_restore
diff --git a/xen/arch/x86/boot/x86_64.S b/xen/arch/x86/boot/x86_64.S
index 0dfcc8a88a40..631ea2f8236e 100644
--- a/xen/arch/x86/boot/x86_64.S
+++ b/xen/arch/x86/boot/x86_64.S
@@ -11,16 +11,19 @@ ENTRY(__high_start)
         mov     %ecx,%gs
         mov     %ecx,%ss
 
-        /* Enable minimal CR4 features. */
-        mov     $XEN_MINIMAL_CR4,%rcx
-        mov     %rcx,%cr4
-
         mov     stack_start(%rip),%rsp
 
         /* Reset EFLAGS (subsumes CLI and CLD). */
         pushq   $0
         popf
 
+        GET_STACK_END(15)
+
+        /* Enable minimal CR4 features. */
+        mov     $XEN_MINIMAL_CR4, %eax
+        mov     %rax, STACK_CPUINFO_FIELD(cr4)(%r15)
+        mov     %rax, %cr4
+
         /* Reload code selector. */
         pushq   $__HYPERVISOR_CS
         leaq    1f(%rip),%rax
@@ -45,7 +48,9 @@ ENTRY(__high_start)
         wrmsr
 
         /* Enable CR4.CET. */
-        mov     $XEN_MINIMAL_CR4 | X86_CR4_CET, %ecx
+        mov     $X86_CR4_CET, %ecx
+        or      STACK_CPUINFO_FIELD(cr4)(%r15), %rcx
+        mov     %rcx, STACK_CPUINFO_FIELD(cr4)(%r15)
         mov     %rcx, %cr4
 
         /* WARNING! call/ret now fatal (iff SHSTK) until SETSSBSY loads SSP */
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 20:23:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 20:23:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1075034.1437585 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukTcn-0000id-PZ; Fri, 08 Aug 2025 20:23:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1075034.1437585; Fri, 08 Aug 2025 20:23: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 1ukTcm-0000eT-VT; Fri, 08 Aug 2025 20:23:36 +0000
Received: by outflank-mailman (input) for mailman id 1075034;
 Fri, 08 Aug 2025 20:23:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Dtzj=2U=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ukTcj-0005tJ-Bi
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 20:23:33 +0000
Received: from mail-wm1-x342.google.com (mail-wm1-x342.google.com
 [2a00:1450:4864:20::342])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8ca908cc-7495-11f0-b898-0df219b8e170;
 Fri, 08 Aug 2025 22:23:30 +0200 (CEST)
Received: by mail-wm1-x342.google.com with SMTP id
 5b1f17b1804b1-4589b3e3820so26574225e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 08 Aug 2025 13:23:30 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459e075047fsm103989805e9.1.2025.08.08.13.23.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Aug 2025 13:23: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>
X-Inumbo-ID: 8ca908cc-7495-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754684610; x=1755289410; 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=YFVhdfvOQDjUoAaTEi0zstvy9aZcNZFPXKOhNL4LWc4=;
        b=ecW0HfCefNtC44XOQAVsPkiuTPIpzzA6LpioQ0O8kyQfKiwMzT3RIO0owGBi4fec0A
         PzufxLDZNaeSeudj/cRHe4MDvHjCol6qaE7z+oYUJYEk5ybEIoOCQfpb2bErTYH4xpI9
         TkDOKetrekXI41cy3wtGz+HuPYke3o1FY2Pe4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754684610; x=1755289410;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=YFVhdfvOQDjUoAaTEi0zstvy9aZcNZFPXKOhNL4LWc4=;
        b=RK4QLcK321EULbgy2Bdd74l5o+fUXqS5Xd+0Tu5lxG8Z1tG23J8Hrfy36jkbKZ5/dL
         qn4caYEIsTTToj0Zh7gr6chaD2F1LNscZCpwq1rTpmx5pge8tBl6tkuIw78zg6Eo8pZ1
         f/6dF4hRlx9fMeqCqXT9KxhN/tyBFfzY8Cw/5p70+vRe04X7X5XUe9GmMhVF8d5M6Kye
         0ETy3pxe2lZI19s4d1BCAjWlNZdtZcVazAywojPg5Ri2oRVdeqOEJ6ICd+RP2J6JUpvt
         Yneb9A9/vXlE5ax6tZQzF6PNyex+RAmRvpnFNei1uj+16NQBCSQKLe41L7pqjG0BTuaB
         v6Yg==
X-Gm-Message-State: AOJu0Yx8zT41ChgCODrJqyubVpmD7uGOO5t70uQfiubeYvV3RlFexfUF
	pCdX32aP7WwQLHWcbc6SALLBs20sOQTf4252K9xUJhf9aSSvZx93tmoSdYzFLVaw5NbbbeA51jO
	Fz6QJ/s02xw==
X-Gm-Gg: ASbGnctGehCwC2XM4GcF+T3nIbeGI7dY/VmgIarRb4jgl3q63pvcCfNIoytFmH3SOUP
	bp0ENm/52yRVTQpV/mwViNgg7kmYo/PP4ftqDChGJ4vXkKi/pKte6Ueyan72haO/YfMjR1px/o4
	Hl4LuilMS+PFMNIojDGsSZJFa16fSIk0Dx0ktefFEoEL9ydxZQUBN189yhkb2T/n4ra33GEgxj0
	yP+CjejTP94WF9ppsAwUUwKrVWlzVsP5towp0vpTqEtURAzHMMqXQJ8lF/bQBs1ScTtYfU38ImH
	9Og9AxygDCgdjejixdTM2a/sabS9pvZJrvxYSd/YxSnrXIVcDfRwlPV55dSKSF2tf9tThJcR8Y6
	IMF3wJaJrK7ZDebnhKRFm6Lg2s56DEDKewSMn+GwoMEIM7nFaYXJAZwhkJD3SG4AhFWiZdCLUMu
	x6
X-Google-Smtp-Source: AGHT+IErUFYgJYCqo/f1FYTdB8yWmXUcMHWGJQXVcASgvlDey1jG1psADqBZ0NXjta7z31LyFSqxXA==
X-Received: by 2002:a05:600c:34d2:b0:458:caec:a741 with SMTP id 5b1f17b1804b1-459f525bfa8mr34064775e9.24.1754684609878;
        Fri, 08 Aug 2025 13:23:29 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 13/22] x86: FRED enumerations
Date: Fri,  8 Aug 2025 21:23:05 +0100
Message-Id: <20250808202314.1045968-14-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Of note, CR4.FRED is bit 32 and cannot enabled outside of 64bit mode.

Most supported toolchains don't understand the FRED instructions yet.  ERETU
and ERETS are easy to wrap (they encoded as REPZ/REPNE CLAC), while LKGS is
more complicated and deferred for now.

I have intentionally named the FRED MSRs differently to the spec.  In the
spec, the stack pointer names alias the TSS fields of the same name, despite
very different semantics.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/Kconfig                        |  4 ++++
 xen/arch/x86/include/asm/asm-defns.h        |  9 +++++++++
 xen/arch/x86/include/asm/cpufeature.h       |  3 +++
 xen/arch/x86/include/asm/msr-index.h        | 11 +++++++++++
 xen/arch/x86/include/asm/x86-defns.h        |  1 +
 xen/include/public/arch-x86/cpufeatureset.h |  3 +++
 6 files changed, 31 insertions(+)

diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
index a45ce106e210..90cbad13a7c7 100644
--- a/xen/arch/x86/Kconfig
+++ b/xen/arch/x86/Kconfig
@@ -57,6 +57,10 @@ config HAS_CC_CET_IBT
 	# Retpoline check to work around https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93654
 	def_bool $(cc-option,-fcf-protection=branch -mmanual-endbr -mindirect-branch=thunk-extern) && $(as-instr,endbr64)
 
+config HAS_AS_FRED
+	# binutils >= 2.41 or LLVM >= 19
+	def_bool $(as-instr,eretu;lkgs %ax)
+
 menu "Architecture Features"
 
 source "arch/x86/Kconfig.cpu"
diff --git a/xen/arch/x86/include/asm/asm-defns.h b/xen/arch/x86/include/asm/asm-defns.h
index 61a5faf90446..2e5200b94b82 100644
--- a/xen/arch/x86/include/asm/asm-defns.h
+++ b/xen/arch/x86/include/asm/asm-defns.h
@@ -4,6 +4,15 @@
     .byte 0x0f, 0x01, 0xfc
 .endm
 
+#ifndef CONFIG_HAS_AS_FRED
+.macro eretu
+    .byte 0xf3, 0x0f, 0x01, 0xca
+.endm
+.macro erets
+    .byte 0xf2, 0x0f, 0x01, 0xca
+.endm
+#endif
+
 /*
  * Call a noreturn function.  This could be JMP, but CALL results in a more
  * helpful backtrace.  BUG is to catch functions which do decide to return...
diff --git a/xen/arch/x86/include/asm/cpufeature.h b/xen/arch/x86/include/asm/cpufeature.h
index 441a7ecc494b..b6cf0c8dfc7c 100644
--- a/xen/arch/x86/include/asm/cpufeature.h
+++ b/xen/arch/x86/include/asm/cpufeature.h
@@ -246,6 +246,9 @@ static inline bool boot_cpu_has(unsigned int feat)
 #define cpu_has_avx_vnni        boot_cpu_has(X86_FEATURE_AVX_VNNI)
 #define cpu_has_avx512_bf16     boot_cpu_has(X86_FEATURE_AVX512_BF16)
 #define cpu_has_cmpccxadd       boot_cpu_has(X86_FEATURE_CMPCCXADD)
+#define cpu_has_fred            boot_cpu_has(X86_FEATURE_FRED)
+#define cpu_has_lkgs            boot_cpu_has(X86_FEATURE_LKGS)
+#define cpu_has_nmi_src         boot_cpu_has(X86_FEATURE_NMI_SRC)
 #define cpu_has_avx_ifma        boot_cpu_has(X86_FEATURE_AVX_IFMA)
 
 /* CPUID level 0x80000021.eax */
diff --git a/xen/arch/x86/include/asm/msr-index.h b/xen/arch/x86/include/asm/msr-index.h
index 428d993ee89b..bb48d16f0c6d 100644
--- a/xen/arch/x86/include/asm/msr-index.h
+++ b/xen/arch/x86/include/asm/msr-index.h
@@ -115,6 +115,17 @@
 #define  MCU_OPT_CTRL_GDS_MIT_DIS           (_AC(1, ULL) <<  4)
 #define  MCU_OPT_CTRL_GDS_MIT_LOCK          (_AC(1, ULL) <<  5)
 
+#define MSR_FRED_RSP_SL0                    0x000001cc
+#define MSR_FRED_RSP_SL1                    0x000001cd
+#define MSR_FRED_RSP_SL2                    0x000001ce
+#define MSR_FRED_RSP_SL3                    0x000001cf
+#define MSR_FRED_STK_LVLS                   0x000001d0
+#define MSR_FRED_SSP_SL0                    MSR_PL0_SSP
+#define MSR_FRED_SSP_SL1                    0x000001d1
+#define MSR_FRED_SSP_SL2                    0x000001d2
+#define MSR_FRED_SSP_SL3                    0x000001d3
+#define MSR_FRED_CONFIG                     0x000001d4
+
 #define MSR_RTIT_OUTPUT_BASE                0x00000560
 #define MSR_RTIT_OUTPUT_MASK                0x00000561
 #define MSR_RTIT_CTL                        0x00000570
diff --git a/xen/arch/x86/include/asm/x86-defns.h b/xen/arch/x86/include/asm/x86-defns.h
index 23579c471f4a..513f18b3be4e 100644
--- a/xen/arch/x86/include/asm/x86-defns.h
+++ b/xen/arch/x86/include/asm/x86-defns.h
@@ -75,6 +75,7 @@
 #define X86_CR4_PKE        0x00400000 /* enable PKE */
 #define X86_CR4_CET        0x00800000 /* Control-flow Enforcement Technology */
 #define X86_CR4_PKS        0x01000000 /* Protection Key Supervisor */
+#define X86_CR4_FRED      0x100000000 /* Fast Return and Event Delivery */
 
 #define X86_CR8_VALID_MASK 0xf
 
diff --git a/xen/include/public/arch-x86/cpufeatureset.h b/xen/include/public/arch-x86/cpufeatureset.h
index f7312e0b04e7..9cd778586f10 100644
--- a/xen/include/public/arch-x86/cpufeatureset.h
+++ b/xen/include/public/arch-x86/cpufeatureset.h
@@ -310,7 +310,10 @@ XEN_CPUFEATURE(ARCH_PERF_MON, 10*32+8) /*   Architectural Perfmon */
 XEN_CPUFEATURE(FZRM,         10*32+10) /*A  Fast Zero-length REP MOVSB */
 XEN_CPUFEATURE(FSRS,         10*32+11) /*A  Fast Short REP STOSB */
 XEN_CPUFEATURE(FSRCS,        10*32+12) /*A  Fast Short REP CMPSB/SCASB */
+XEN_CPUFEATURE(FRED,         10*32+17) /*   Fast Return and Event Delivery */
+XEN_CPUFEATURE(LKGS,         10*32+18) /*   Load Kernel GS instruction */
 XEN_CPUFEATURE(WRMSRNS,      10*32+19) /*S  WRMSR Non-Serialising */
+XEN_CPUFEATURE(NMI_SRC,      10*32+20) /*   NMI-Source Reporting */
 XEN_CPUFEATURE(AMX_FP16,     10*32+21) /*   AMX FP16 instruction */
 XEN_CPUFEATURE(AVX_IFMA,     10*32+23) /*A  AVX-IFMA Instructions */
 XEN_CPUFEATURE(LAM,          10*32+26) /*   Linear Address Masking */
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 20:23:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 20:23:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1075035.1437593 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukTco-0000sM-PD; Fri, 08 Aug 2025 20:23:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1075035.1437593; Fri, 08 Aug 2025 20:23: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 1ukTcn-0000oL-Mh; Fri, 08 Aug 2025 20:23:37 +0000
Received: by outflank-mailman (input) for mailman id 1075035;
 Fri, 08 Aug 2025 20:23:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Dtzj=2U=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ukTck-0005tJ-Br
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 20:23:34 +0000
Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com
 [2a00:1450:4864:20::331])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8d62ff3e-7495-11f0-b898-0df219b8e170;
 Fri, 08 Aug 2025 22:23:32 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-4589b3e3820so26574315e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 08 Aug 2025 13:23:32 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459e075047fsm103989805e9.1.2025.08.08.13.23.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Aug 2025 13:23: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>
X-Inumbo-ID: 8d62ff3e-7495-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754684611; x=1755289411; 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=DhpjCRwETK5+wDVQikgEEWpf2jqHKcYBrZS42n+RtV8=;
        b=QJ6pLEKbdP8ljyhSD3rnHOiqFQ21/KhnmGVDOVqyjUjvO87vk70AbN46LyK7DMXUT4
         QwWYONoXOFklFWMx/jrAK35l6G/+EmTMLw2PRLa49jiyIZqTWL7LjLyEpcEHuXxn99ct
         80IJWf5859VtXe8nwU2Ljd8litDb03NXDgXbM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754684611; x=1755289411;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=DhpjCRwETK5+wDVQikgEEWpf2jqHKcYBrZS42n+RtV8=;
        b=R/WeOuYrLcaAdERhurc82LvIFh7sjlqnF1It7QV+gWW8Bus42BFmYRN5OwG/wfm/4n
         hYDlwD4k9nYkL7mHTWDtb+SqQrBx01ifbqpHBgutzL9ffiRWfwxGx2bKGD2+SlEHI8Eb
         DdRfYd4Jumo7eOr8NCPxxQdmSDYIKTVEbm57n3SJYSttgPwB9AgKyYvdk1cMQ0xPEDYh
         D0nLwWWyWt4ykEUV8Mwh8c/bli9yo4HWHWP0UEUZ7Z/tLJNAK7qgw7auXCyBd9i3jS6f
         5ZyQNxGuo5Gniyz1xbeGuh/firXuGkAOOKMt5vGIQZzYnYJytLeaa8xWe+1fNj5B5Yu0
         SO4A==
X-Gm-Message-State: AOJu0YyoLC/SVUns7U39Wy12f3ymgc2caXKiMji5QUMO+WSx/g7q77Tf
	GybydeW8RheCMoyRLB9vysUCEItojr1ZFfs13FR9NIrf72E9PyJN56SFhTVoM+ySJPqpBnLrtil
	+YDVsEnI=
X-Gm-Gg: ASbGncuogLfNBDztZanAGUo+c2RJXBwUBgoONCnDwi09LHWLOkvddoB4i4IwBiNkV8o
	LUn2GwOh5G4B4beRUytjxrBrvHGjgUbNcOF2fxf6gqdcl72AkDTuPCL2lJYL3qWvqL67eaP8pjb
	4Scs3Am862EFIO2XkzUw8peZqdkkh2YnnYKgKx+vUXwG/lnvhBwTnsrHqX1Kw8mACTlrJK5h2rF
	IP4dFMzezNvQHVmidiD/AEVhw/Jk1O+lvsnX4+h8WaXde302m2A9o6mDxDX8NY4Qk0mNNkHAVdZ
	2XohvW2MEGOchJQ/2vpRNQBR+M1kGm1TGnhTKBNP20NskaTLuR6CIJcPs8a4lL+Mv2mzGhmQPC8
	NGfDPe/u3mn74IJMUBg3+p4PWnvE2Qqpb1vzhGA2/MUiVHRArltBNW65V4pxuVo9nHqq1uoVCQy
	Nc
X-Google-Smtp-Source: AGHT+IEKNxT84SXyyCmdr7B91ibNP+tqO5b0I6jUv6ULvgnNTNIVapfHxAOZYXD0pcHgV0ZKovcgWA==
X-Received: by 2002:a05:600c:8216:b0:459:f90e:4f5a with SMTP id 5b1f17b1804b1-459f90e4f9fmr30471795e9.15.1754684611133;
        Fri, 08 Aug 2025 13:23:31 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH 15/22] x86/traps: Introduce opt_fred
Date: Fri,  8 Aug 2025 21:23:07 +0100
Message-Id: <20250808202314.1045968-16-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

... disabled by default.  There is a lot of work before FRED can be enabled by
default.

One part of FRED, the LKGS (Load Kernel GS) instruction, is enumerated
separately but is mandatory as FRED disallows the SWAPGS instruction.
Therefore, both CPUID bits must be checked.

FRED formally removes the use of Ring1 and Ring2, meaning we cannot run 32bit
PV guests.  Therefore, don't enable FRED by default in shim mode.  OTOH, if
FRED is active, then PV32 needs disabling like with CET.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
 docs/misc/xen-command-line.pandoc | 10 ++++++++++
 xen/arch/x86/include/asm/traps.h  |  4 ++++
 xen/arch/x86/traps-setup.c        | 31 +++++++++++++++++++++++++++++++
 3 files changed, 45 insertions(+)

diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
index 6865a61220ca..f293d973a8e8 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -1283,6 +1283,16 @@ requirement can be relaxed.  This option is particularly useful for nested
 virtualization, to allow the L1 hypervisor to use EPT even if the L0 hypervisor
 does not provide `VM_ENTRY_LOAD_GUEST_PAT`.
 
+### fred (x86)
+> `= <bool>`
+
+> Default: `false`
+
+Flexible Return and Event Delivery is an overhaul of interrupt, exception and
+system call handling, fixing many corner cases in the x86 architecture, and
+expected in hardware from 2025.  Support in Xen is a work in progress and
+disabled by default.
+
 ### gnttab
 > `= List of [ max-ver:<integer>, transitive=<bool>, transfer=<bool> ]`
 
diff --git a/xen/arch/x86/include/asm/traps.h b/xen/arch/x86/include/asm/traps.h
index 6ae451d3fc70..73097e957d05 100644
--- a/xen/arch/x86/include/asm/traps.h
+++ b/xen/arch/x86/include/asm/traps.h
@@ -7,6 +7,10 @@
 #ifndef ASM_TRAP_H
 #define ASM_TRAP_H
 
+#include <xen/types.h>
+
+extern int8_t opt_fred;
+
 void bsp_early_traps_init(void);
 void traps_init(void);
 void bsp_traps_reinit(void);
diff --git a/xen/arch/x86/traps-setup.c b/xen/arch/x86/traps-setup.c
index 37202c17fcea..3b5e4969a375 100644
--- a/xen/arch/x86/traps-setup.c
+++ b/xen/arch/x86/traps-setup.c
@@ -9,6 +9,8 @@
 #include <asm/endbr.h>
 #include <asm/idt.h>
 #include <asm/msr.h>
+#include <asm/pv/domain.h>
+#include <asm/pv/shim.h>
 #include <asm/shstk.h>
 #include <asm/stubs.h>
 #include <asm/traps.h>
@@ -20,6 +22,9 @@ unsigned int __ro_after_init ler_msr;
 static bool __initdata opt_ler;
 boolean_param("ler", opt_ler);
 
+int8_t __ro_after_init opt_fred = 0; /* -1 when supported. */
+boolean_param("fred", opt_fred);
+
 void nocall entry_PF(void);
 void nocall lstar_enter(void);
 void nocall cstar_enter(void);
@@ -305,6 +310,32 @@ void __init traps_init(void)
     /* Replace early pagefault with real pagefault handler. */
     _update_gate_addr_lower(&bsp_idt[X86_EXC_PF], entry_PF);
 
+    if ( !cpu_has_fred || !cpu_has_lkgs )
+    {
+        if ( opt_fred )
+            printk(XENLOG_WARNING "FRED not available, ignoring\n");
+        opt_fred = false;
+    }
+
+    if ( opt_fred == -1 )
+        opt_fred = !pv_shim;
+
+    if ( opt_fred )
+    {
+#ifdef CONFIG_PV32
+        if ( opt_pv32 )
+        {
+            opt_pv32 = 0;
+            printk(XENLOG_INFO "Disabling PV32 due to FRED\n");
+        }
+#endif
+        printk("Using FRED event delivery\n");
+    }
+    else
+    {
+        printk("Using IDT event delivery\n");
+    }
+
     load_system_tables();
 
     init_ler();
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 20:23:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 20:23:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1075036.1437597 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukTcp-00015b-KA; Fri, 08 Aug 2025 20:23:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1075036.1437597; Fri, 08 Aug 2025 20:23: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 1ukTco-0000zr-Pm; Fri, 08 Aug 2025 20:23:38 +0000
Received: by outflank-mailman (input) for mailman id 1075036;
 Fri, 08 Aug 2025 20:23:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Dtzj=2U=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ukTck-0005tW-VP
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 20:23:34 +0000
Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com
 [2a00:1450:4864:20::435])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8ed307b4-7495-11f0-a324-13f23c93f187;
 Fri, 08 Aug 2025 22:23:34 +0200 (CEST)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-3b8de6f7556so1395818f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 08 Aug 2025 13:23:34 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459e075047fsm103989805e9.1.2025.08.08.13.23.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Aug 2025 13:23: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>
X-Inumbo-ID: 8ed307b4-7495-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754684613; x=1755289413; 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=qtfP7bNe0+lt/InVx7VRHyBE0nSzZYZ5UWpR2AJnNEw=;
        b=qTMWSBT4XKNjjisltoqSLZHvY5M+XUlcF5f86W4LqJ22wXxWOw30fDt16+ZtnZ0Tgo
         fBat6Axv3AoUfqa5rxe66TD/5tRDWIgxKuvjXVlNb/4s0P+tRq9T8ct1wqHPfxObRRo9
         g4CED3Qn9c1hxSqVUX1nSByV/MKusSVQz5FDc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754684613; x=1755289413;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=qtfP7bNe0+lt/InVx7VRHyBE0nSzZYZ5UWpR2AJnNEw=;
        b=DXq3i8lkSNRwcfsRuagYCLhdq5el9f1YtX/Llx3IWryg4UXvwVnP5qjIulAetT0ImZ
         oxpTxavTMirvbYU5LDWJdhbpcjSderWX5NyjNRtuvnAn5vrozQk+NdfyQwRMdthzMxVo
         bP6PDdA1cOKKazFNIN2orcYPHoqKFUxX/R7af7BbLBKGTYC9mr8vVfYJJ8+n8R/1UXA9
         q5tBmYG4pWLOd0zgHtOloZiBbPjT0cEvGzeZnAnPaUKg8OhOcvR2hvZZMfzGkZBIbfZw
         KPCFAJN9i0DhTzdE4o26wxs6sx03gskwHzD8TCBKDxOXEOK/tRjat4INOmuJFpxghjXX
         satQ==
X-Gm-Message-State: AOJu0Yw4f2Mx5Fz+SkI0cw5CkaPZKHBYjyKc6QRjsCSk9+f89UgGMMey
	tU/jdyxGisUON3jyF4ZzpAO6MlWbi6ndZx0Rq0niQ+4fbbi9YdnDPHahu1bi5wETlAMuzEffi40
	yJZ7V5Qs=
X-Gm-Gg: ASbGnctUsWfqJoGn65p6xBl1kz3oC3q2fwksvZr2H+DT5anIIMvfcW2+GhzcY/vlp3V
	xOSWVZlKZHCFKJhuPpV5UYGLpdksghHhXmHUWOW907EYLn1Q5ZKXnDLKz9ButKcD5gvhzaWh+kU
	6RAIgiqIYU85AAYE5LWaHlLyygPOeGZ2J8HAdRdT7z1lSp1JsLDYveXlQB4QeOZ2KddbqjBvw0P
	uKJ//WDE4VmhaSts8lD4rZXqWTj5z2RhAUmQsBpoO+hwNQbcyHegxElfrBUdHwhLG+/yoYwLtRb
	2wza7h9jHi6UBrwd+RHAApgJeyRXxV/1e/L4FubQqRzDPMfRkHAtc5DZxNttd4ChkYtkqeEXU9L
	qKxjiwhsjtgzw2x0JxrZEHQYp+9Dgqa1LoU/2AHyax1OgBT2tU6ih2bhdnRV+htOKNk9sT0Lwo5
	4k
X-Google-Smtp-Source: AGHT+IFaijqglVcsIvXxaBiwyvcNEApIzhSD/6AHb8eHwAkK1ZQiMPNf+3Iqf593eESX8CsZDqQWtQ==
X-Received: by 2002:a05:6000:1449:b0:3b7:8d70:ed05 with SMTP id ffacd0b85a97d-3b900929b4cmr3639173f8f.5.1754684613507;
        Fri, 08 Aug 2025 13:23:33 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 18/22] x86/traps: Set MSR_PL0_SSP in load_system_tables()
Date: Fri,  8 Aug 2025 21:23:10 +0100
Message-Id: <20250808202314.1045968-19-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

FRED and IDT differ by a Supervisor Token on the base of the shstk.  This
means that the value they load into MSR_PL0_SSP differs by 8.

s3_resume() in particular has logic which is otherwise invariant of FRED mode,
and must not clobber a FRED MSR_PL0_SSP with an IDT one.

This also simplifies the AP path too.  Updating reinit_bsp_stack() is deferred
until later.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/acpi/wakeup_prot.S |  9 ---------
 xen/arch/x86/boot/x86_64.S      | 12 +++---------
 xen/arch/x86/traps-setup.c      |  2 ++
 3 files changed, 5 insertions(+), 18 deletions(-)

diff --git a/xen/arch/x86/acpi/wakeup_prot.S b/xen/arch/x86/acpi/wakeup_prot.S
index 6ddc4011d8b6..c800cd28a7c9 100644
--- a/xen/arch/x86/acpi/wakeup_prot.S
+++ b/xen/arch/x86/acpi/wakeup_prot.S
@@ -104,15 +104,6 @@ LABEL(s3_resume)
          */
         mov     saved_ssp(%rip), %rdi
 
-        /* Calculate MSR_PL0_SSP from SSP. */
-        mov     $MSR_PL0_SSP, %ecx
-        mov     %rdi, %rdx
-        shr     $32, %rdx
-        mov     %edi, %eax
-        and     $~(STACK_SIZE - 1), %eax
-        or      $(PRIMARY_SHSTK_SLOT + 1) * PAGE_SIZE - 8, %eax
-        wrmsr
-
         /*
          * A Restore Token's value is &token + 8 + 64BIT (bit 0).
          * We want to put this on the shstk at SSP - 8.
diff --git a/xen/arch/x86/boot/x86_64.S b/xen/arch/x86/boot/x86_64.S
index 631ea2f8236e..ebb91d5e3f60 100644
--- a/xen/arch/x86/boot/x86_64.S
+++ b/xen/arch/x86/boot/x86_64.S
@@ -65,17 +65,11 @@ ENTRY(__high_start)
         or      $(PRIMARY_SHSTK_SLOT + 1) * PAGE_SIZE - 8, %rdx
 
         /*
-         * Write a new supervisor token.  Doesn't matter on boot, but for S3
-         * resume this clears the busy bit.
+         * Write a new Supervisor Token.  It doesn't matter the first time a
+         * CPU boots, but for S3 resume or CPU hot re-add, this clears the
+         * busy bit.
          */
         wrssq   %rdx, (%rdx)
-
-        /* Point MSR_PL0_SSP at the token. */
-        mov     $MSR_PL0_SSP, %ecx
-        mov     %edx, %eax
-        shr     $32, %rdx
-        wrmsr
-
         setssbsy
 
 #endif /* CONFIG_XEN_SHSTK */
diff --git a/xen/arch/x86/traps-setup.c b/xen/arch/x86/traps-setup.c
index 3b5e4969a375..c4825fc1b11a 100644
--- a/xen/arch/x86/traps-setup.c
+++ b/xen/arch/x86/traps-setup.c
@@ -96,6 +96,7 @@ static void load_system_tables(void)
     {
         volatile uint64_t *ist_ssp = tss_page->ist_ssp;
         unsigned long
+            ssp = stack_top + (PRIMARY_SHSTK_SLOT + 1) * PAGE_SIZE - 8,
             mce_ssp = stack_top + (IST_MCE * IST_SHSTK_SIZE) - 8,
             nmi_ssp = stack_top + (IST_NMI * IST_SHSTK_SIZE) - 8,
             db_ssp  = stack_top + (IST_DB  * IST_SHSTK_SIZE) - 8,
@@ -122,6 +123,7 @@ static void load_system_tables(void)
         }
 
         wrmsrns(MSR_ISST, (unsigned long)ist_ssp);
+        wrmsrns(MSR_PL0_SSP, (unsigned long)ssp);
     }
 
     _set_tssldt_desc(gdt + TSS_ENTRY, (unsigned long)tss,
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 20:31:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 20:31:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1075066.1437632 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukTjw-0007yc-9e; Fri, 08 Aug 2025 20:31:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1075066.1437632; Fri, 08 Aug 2025 20: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 1ukTjw-0007yV-4z; Fri, 08 Aug 2025 20:31:00 +0000
Received: by outflank-mailman (input) for mailman id 1075066;
 Fri, 08 Aug 2025 20:30:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Dtzj=2U=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ukTcp-0005tJ-Cb
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 20:23:39 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 903ed1c6-7495-11f0-b898-0df219b8e170;
 Fri, 08 Aug 2025 22:23:36 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-458b885d6eeso16336355e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 08 Aug 2025 13:23:36 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459e075047fsm103989805e9.1.2025.08.08.13.23.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Aug 2025 13:23: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>
X-Inumbo-ID: 903ed1c6-7495-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754684616; x=1755289416; 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=WsFhpIo0YigHSrjbxG9J6eIfg+GeQRU9SY28qtRRbpw=;
        b=gbseeufeN3+19RuT5mg5UqzSK8el5b/jA6KIDXbRFu0/eayo/gR3og4TnyqvYPs/Ja
         EDa0XkPPmXcCxiYNFMkeRbTU+NBuAwFhWKxiTSNOtK+UgaCV3JsDeH9QSHX3wyFhbmZO
         Q0joQ+M2660J3SsG8lSPA9sRwaYAJGif/rI0E=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754684616; x=1755289416;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=WsFhpIo0YigHSrjbxG9J6eIfg+GeQRU9SY28qtRRbpw=;
        b=gy87NyOUhUl132Na+doXVpO2oolcFOuppWncazus608jE1Rl8M/jP1dHK58dUUG5t1
         /IhVGpAOAlIwOqj0AUM5VRPClWF8V5upp60Yu+mwsdhBhQuUEO54eSujbVcBknNQbF62
         2p1oW34+W+lNRidVGXKPaXrsqqkmHMhpJj2dA4g6GLQSxMrI+wOYKiaE+rLZlGguroNX
         8kNQ/r0WW4dOy2j9+geo16PtQSmquLm2VEAqEU406d6IPmhwjjFdJVFEDKO+Htq1Lz+s
         5Iy3Bjo8f2Ks9rP6H+Ho4LW+PG9qsTs/UDzQy2NkvVTYFEm5uZi5haUw5soGFJHvMLbw
         nyJA==
X-Gm-Message-State: AOJu0YyCC0SkfJ4WfVyZ2xK/mTKA6TOcZqaaKbGYfhY0RPp4QZ1sB0Wb
	k2vQBQyMsaGMqbNzgpfQ7K1RxOT+QPz9e9Jio3+H+9xetF9DkzDH0ptzy8JZ0Or1Lzn9KnNIqBB
	C1URhDF8=
X-Gm-Gg: ASbGncuRaOR1sRpS0XzKGG36SDf91JYXgx3Pcv6UlInpmuGIQ1SCaZi/wWuTNe5YIGk
	kXNSmn0Qjz+MW8Kz/4jdH+ZmO0w6PlJZ4tDC6KVreKTQNxQdS9DNiJCyXtb6ENFyfcr5XPjHiLd
	+WrsoPnP4cbRJl6Rq52Pl6+tGfns6JDTyyELixUf/zc9FfKqGxVxq7rSWY8iyeB7YANP1jRipNH
	KeHKr1kd64B0hlog1HnHMDNGyw2to126ZwVMCHRbNEsSSK2QODgBBIwS6jWroBRtI3vKGqyLQn0
	8hcpn/B+hzOARxEUmOApxJFc9jv6daAhsY17a0lef/EP2P6Q5s/PhAfZuvXuEnrfeE34Kli6Agf
	MieE/W56+fatgi1nhKjeyLNQnCoTIrtRbcdn8VaNkXinQdl7BAqB6sLJwRS233fySCqIr1ybBMJ
	G+
X-Google-Smtp-Source: AGHT+IE572nf5LZxzkOTMhXEn8wFDD0IPspugflCbO1IMUJ6sUJcgov1fEG344lninmoXczdA611pA==
X-Received: by 2002:a05:6000:26c9:b0:3b8:ff3a:86c2 with SMTP id ffacd0b85a97d-3b900b4da7cmr2978215f8f.37.1754684615819;
        Fri, 08 Aug 2025 13:23:35 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 21/22] x86/traps: Introduce FRED entrypoints
Date: Fri,  8 Aug 2025 21:23:13 +0100
Message-Id: <20250808202314.1045968-22-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Under FRED, there's one entrypoint from Ring 3, and one from Ring 0.

FRED gives us a good stack (even for SYSCALL/SYSENTER), and a unified event
frame on the stack, meaing that all software needs to do is spill the GPRs
with a line of PUSHes.  Introduce PUSH_AND_CLEAR_GPRS and POP_GPRS for this
purpose.

Introduce entry_FRED_R0() which to a first appoximation is complete for all
event handling within Xen.

entry_FRED_R0() needs deriving from entry_FRED_R3(), so introduce a basic
handler.  There is more work required to make the return-to-guest path work
under FRED, so leave a BUG clearly in place.

Also introduce entry_from_{xen,pv}() to be the C level handlers.  By simply
copying regs->fred_ss.vector into regs->entry_vector, we can reuse all the
existing fault handlers.

Extend fatal_trap() to render the event type, including by name, when FRED is
active.  This is slightly complicated, because X86_ET_OTHER must not use
vector_name() or SYSCALL and SYSENTER get rendered as #BP and #DB.  Also,
{read,write}_gs_shadow() needs modifying to avoid the SWAPGS instruction,
which is disallowed in FRED mode.

This is sufficient to handle all interrupts and exceptions encountered during
development, including plenty of Double Faults.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

SIMICS hasn't been updated to the FRED v9, and still wants ENDBR instructions
at the entrypoints.
---
 xen/arch/x86/include/asm/asm_defns.h |  65 ++++++++++++
 xen/arch/x86/include/asm/msr.h       |   8 +-
 xen/arch/x86/traps.c                 | 153 ++++++++++++++++++++++++++-
 xen/arch/x86/x86_64/Makefile         |   1 +
 xen/arch/x86/x86_64/entry-fred.S     |  35 ++++++
 5 files changed, 256 insertions(+), 6 deletions(-)
 create mode 100644 xen/arch/x86/x86_64/entry-fred.S

diff --git a/xen/arch/x86/include/asm/asm_defns.h b/xen/arch/x86/include/asm/asm_defns.h
index 72a0082d319d..a81a4043d0f1 100644
--- a/xen/arch/x86/include/asm/asm_defns.h
+++ b/xen/arch/x86/include/asm/asm_defns.h
@@ -315,6 +315,71 @@ static always_inline void stac(void)
         subq  $-(UREGS_error_code-UREGS_r15+\adj), %rsp
 .endm
 
+/*
+ * Push and clear GPRs
+ */
+.macro PUSH_AND_CLEAR_GPRS
+        push  %rdi
+        xor   %edi, %edi
+        push  %rsi
+        xor   %esi, %esi
+        push  %rdx
+        xor   %edx, %edx
+        push  %rcx
+        xor   %ecx, %ecx
+        push  %rax
+        xor   %eax, %eax
+        push  %r8
+        xor   %r8d, %r8d
+        push  %r9
+        xor   %r9d, %r9d
+        push  %r10
+        xor   %r10d, %r10d
+        push  %r11
+        xor   %r11d, %r11d
+        push  %rbx
+        xor   %ebx, %ebx
+        push  %rbp
+#ifdef CONFIG_FRAME_POINTER
+/* Indicate special exception stack frame by inverting the frame pointer. */
+        mov   %rsp, %rbp
+        notq  %rbp
+#else
+        xor   %ebp, %ebp
+#endif
+        push  %r12
+        xor   %r12d, %r12d
+        push  %r13
+        xor   %r13d, %r13d
+        push  %r14
+        xor   %r14d, %r14d
+        push  %r15
+        xor   %r15d, %r15d
+.endm
+
+/*
+ * POP GPRs from a UREGS_* frame on the stack.  Does not modify flags.
+ *
+ * @rax: Alternative destination for the %rax value on the stack.
+ */
+.macro POP_GPRS rax=%rax
+        pop   %r15
+        pop   %r14
+        pop   %r13
+        pop   %r12
+        pop   %rbp
+        pop   %rbx
+        pop   %r11
+        pop   %r10
+        pop   %r9
+        pop   %r8
+        pop   \rax
+        pop   %rcx
+        pop   %rdx
+        pop   %rsi
+        pop   %rdi
+.endm
+
 #ifdef CONFIG_PV32
 #define CR4_PV32_RESTORE                               \
     ALTERNATIVE_2 "",                                  \
diff --git a/xen/arch/x86/include/asm/msr.h b/xen/arch/x86/include/asm/msr.h
index b6b85b04c3fd..01f510315ffe 100644
--- a/xen/arch/x86/include/asm/msr.h
+++ b/xen/arch/x86/include/asm/msr.h
@@ -202,9 +202,9 @@ static inline unsigned long read_gs_base(void)
 
 static inline unsigned long read_gs_shadow(void)
 {
-    unsigned long base;
+    unsigned long base, cr4 = read_cr4();
 
-    if ( read_cr4() & X86_CR4_FSGSBASE )
+    if ( !(cr4 & X86_CR4_FRED) && (cr4 & X86_CR4_FSGSBASE) )
     {
         asm volatile ( "swapgs" );
         base = __rdgsbase();
@@ -234,7 +234,9 @@ static inline void write_gs_base(unsigned long base)
 
 static inline void write_gs_shadow(unsigned long base)
 {
-    if ( read_cr4() & X86_CR4_FSGSBASE )
+    unsigned long cr4 = read_cr4();
+
+    if ( !(cr4 & X86_CR4_FRED) && (cr4 & X86_CR4_FSGSBASE) )
     {
         asm volatile ( "swapgs\n\t"
                        "wrgsbase %0\n\t"
diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index 270b93ed623e..e67a428e4362 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -1013,6 +1013,32 @@ void show_execution_state_nmi(const cpumask_t *mask, bool show_all)
         printk("Non-responding CPUs: {%*pbl}\n", CPUMASK_PR(&show_state_mask));
 }
 
+static const char *x86_et_name(unsigned int type)
+{
+    static const char *const names[] = {
+        [X86_ET_EXT_INTR]    = "EXT_INTR",
+        [X86_ET_NMI]         = "NMI",
+        [X86_ET_HW_EXC]      = "HW_EXC",
+        [X86_ET_SW_INT]      = "SW_INT",
+        [X86_ET_PRIV_SW_EXC] = "PRIV_SW_EXEC",
+        [X86_ET_SW_EXC]      = "SW_EXEC",
+        [X86_ET_OTHER]       = "OTHER",
+    };
+
+    return (type < ARRAY_SIZE(names) && names[type]) ? names[type] : "???";
+}
+
+static const char *x86_et_other_name(unsigned int vec)
+{
+    static const char *const names[] = {
+        [0] = "MTF",
+        [1] = "SYSCALL",
+        [2] = "SYSENTER",
+    };
+
+    return (vec < ARRAY_SIZE(names) && names[vec][0]) ? names[vec] : "???";
+}
+
 const char *vector_name(unsigned int vec)
 {
     static const char names[][4] = {
@@ -1091,9 +1117,42 @@ void fatal_trap(const struct cpu_user_regs *regs, bool show_remote)
         }
     }
 
-    panic("FATAL TRAP: vec %u, %s[%04x]%s\n",
-          trapnr, vector_name(trapnr), regs->error_code,
-          (regs->eflags & X86_EFLAGS_IF) ? "" : " IN INTERRUPT CONTEXT");
+    if ( read_cr4() & X86_CR4_FRED )
+    {
+        bool render_ec = false;
+        const char *vec_name = NULL;
+
+        switch ( regs->fred_ss.type )
+        {
+        case X86_ET_HW_EXC:
+        case X86_ET_SW_INT:
+        case X86_ET_PRIV_SW_EXC:
+        case X86_ET_SW_EXC:
+            render_ec = true;
+            vec_name = vector_name(regs->fred_ss.vector);
+            break;
+
+        case X86_ET_OTHER:
+            vec_name = x86_et_other_name(regs->fred_ss.vector);
+            break;
+        }
+
+        if ( render_ec )
+            panic("Fatal TRAP: type %u, %s, vec %u, %s[%04x]%s\n",
+                  regs->fred_ss.type, x86_et_name(regs->fred_ss.type),
+                  regs->fred_ss.vector, vec_name ?: "",
+                  regs->error_code,
+                  (regs->eflags & X86_EFLAGS_IF) ? "" : " IN INTERRUPT CONTEXT");
+        else
+            panic("Fatal TRAP: type %u, %s, vec %u, %s%s\n",
+                  regs->fred_ss.type, x86_et_name(regs->fred_ss.type),
+                  regs->fred_ss.vector, vec_name ?: "",
+                  (regs->eflags & X86_EFLAGS_IF) ? "" : " IN INTERRUPT CONTEXT");
+    }
+    else
+        panic("FATAL TRAP: vec %u, %s[%04x]%s\n",
+              trapnr, vector_name(trapnr), regs->error_code,
+              (regs->eflags & X86_EFLAGS_IF) ? "" : " IN INTERRUPT CONTEXT");
 }
 
 void asmlinkage noreturn do_unhandled_trap(struct cpu_user_regs *regs)
@@ -2181,6 +2240,94 @@ void asmlinkage check_ist_exit(const struct cpu_user_regs *regs, bool ist_exit)
 }
 #endif
 
+void asmlinkage entry_from_pv(struct cpu_user_regs *regs)
+{
+    /* Copy fred_ss.vector into entry_vector as IDT delivery would have done. */
+    regs->entry_vector = regs->fred_ss.vector;
+
+    switch ( regs->fred_ss.type )
+    {
+    case X86_ET_EXT_INTR:
+        do_IRQ(regs);
+        break;
+
+    case X86_ET_NMI:
+        do_nmi(regs);
+        break;
+
+    case X86_ET_HW_EXC:
+    case X86_ET_SW_INT:
+    case X86_ET_PRIV_SW_EXC:
+    case X86_ET_SW_EXC:
+        goto fatal;
+
+    default:
+        goto fatal;
+    }
+
+    return;
+
+ fatal:
+    fatal_trap(regs, false);
+}
+
+void asmlinkage entry_from_xen(struct cpu_user_regs *regs)
+{
+    /* Copy fred_ss.vector into entry_vector as IDT delivery would have done. */
+    regs->entry_vector = regs->fred_ss.vector;
+
+    switch ( regs->fred_ss.type )
+    {
+    case X86_ET_EXT_INTR:
+        do_IRQ(regs);
+        break;
+
+    case X86_ET_NMI:
+        do_nmi(regs);
+        break;
+
+    case X86_ET_HW_EXC:
+    case X86_ET_SW_INT:
+    case X86_ET_PRIV_SW_EXC:
+    case X86_ET_SW_EXC:
+        switch ( regs->fred_ss.vector )
+        {
+        case X86_EXC_PF:  do_page_fault(regs); break;
+        case X86_EXC_GP:  do_general_protection(regs); break;
+        case X86_EXC_UD:  do_invalid_op(regs); break;
+        case X86_EXC_NM:  do_device_not_available(regs); break;
+        case X86_EXC_BP:  do_int3(regs); break;
+        case X86_EXC_DB:  do_debug(regs); break;
+        case X86_EXC_DF:  do_double_fault(regs); break;
+
+        case X86_EXC_DE:
+        case X86_EXC_OF:
+        case X86_EXC_BR:
+        case X86_EXC_NP:
+        case X86_EXC_SS:
+        case X86_EXC_MF:
+        case X86_EXC_AC:
+        case X86_EXC_XM:
+            do_trap(regs);
+            break;
+
+        case X86_EXC_CP:  do_entry_CP(regs); break;
+
+        default:
+            goto fatal;
+        }
+        break;
+
+    default:
+        goto fatal;
+    }
+
+    return;
+
+ fatal:
+    fatal_trap(regs, false);
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/arch/x86/x86_64/Makefile b/xen/arch/x86/x86_64/Makefile
index f20763088740..5ec933539adb 100644
--- a/xen/arch/x86/x86_64/Makefile
+++ b/xen/arch/x86/x86_64/Makefile
@@ -1,6 +1,7 @@
 obj-$(CONFIG_PV32) += compat/
 
 obj-bin-y += entry.o
+obj-bin-y += entry-fred.o
 obj-$(CONFIG_KEXEC) += machine_kexec.o
 obj-y += pci.o
 obj-y += acpi_mmcfg.o
diff --git a/xen/arch/x86/x86_64/entry-fred.S b/xen/arch/x86/x86_64/entry-fred.S
new file mode 100644
index 000000000000..88d262b91f92
--- /dev/null
+++ b/xen/arch/x86/x86_64/entry-fred.S
@@ -0,0 +1,35 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+        .file "x86_64/entry-fred.S"
+
+#include <asm/asm_defns.h>
+#include <asm/page.h>
+
+        .section .text.entry, "ax", @progbits
+
+        /* The Ring3 entry point is required to be 4k aligned. */
+
+FUNC(entry_FRED_R3, 4096)
+        PUSH_AND_CLEAR_GPRS
+
+        mov     %rsp, %rdi
+        call    entry_from_pv
+
+        BUG     /* TODO - return to guest path */
+
+        POP_GPRS
+        eretu
+END(entry_FRED_R3)
+
+        /* The Ring0 entrypoint is at Ring3 + 256. */
+        .org entry_FRED_R3 + 256, 0xcc
+
+FUNC_LOCAL(entry_FRED_R0, 0)
+        PUSH_AND_CLEAR_GPRS
+
+        mov     %rsp, %rdi
+        call    entry_from_xen
+
+        POP_GPRS
+        erets
+END(entry_FRED_R0)
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 20:31:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 20:31:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1075092.1437641 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukTkA-0008Pe-Gh; Fri, 08 Aug 2025 20:31:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1075092.1437641; Fri, 08 Aug 2025 20:31: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 1ukTkA-0008PX-DA; Fri, 08 Aug 2025 20:31:14 +0000
Received: by outflank-mailman (input) for mailman id 1075092;
 Fri, 08 Aug 2025 20:31:12 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Dtzj=2U=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ukTcr-0005tJ-Cy
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 20:23:41 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9098a2cb-7495-11f0-b898-0df219b8e170;
 Fri, 08 Aug 2025 22:23:37 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-451d41e1ad1so17067035e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 08 Aug 2025 13:23:37 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459e075047fsm103989805e9.1.2025.08.08.13.23.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Aug 2025 13:23: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>
X-Inumbo-ID: 9098a2cb-7495-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754684616; x=1755289416; 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=evLhAYiRD6wyqduVR5JzlpDskt89ckAuh4iEnU2F4jA=;
        b=oLtukjId3XrsVDvcs9NMr0rTqZdTadAqdF2f0kdhlHECFncksHx8SreIn3+2NRR9us
         P/Pn+tOTvjC7Cp/jl2YdDt/dYFZWMxU7nnVr8nFEZLSigygwPCuIkFxVknZOGChvzCrZ
         F9rjBe2GybOHrzPvmCkCA6NeBFCkJz/rpR2aE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754684616; x=1755289416;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=evLhAYiRD6wyqduVR5JzlpDskt89ckAuh4iEnU2F4jA=;
        b=VSyYbtcvFhfljcaejlgb7h28MgX0vAVCuFRMrj1eDthUiqUi/CcxBOHzu/79yE6pQL
         IgRB/rf4HEyph8BvDGfpaG3zBDveuakKegaEwcwgi1mqr6HHMq3jSOQ+Y0j+khcYTrTK
         UIWs6tSHaI0rEqyWafqZEbRSjRm6aXxyyfW/wRKvzk7GRnRO7sRNCum5gs7uWIVVqdbA
         o7GOGgR6behrmlaXdCgX0m8b6+1rx8lcK+6Bq87TbyaM4tCsb8ASOjBX+mSMkk9pxcb6
         m/YgAh4GFyatjTGHYiNiz4JU9I9AuJY3pfi2Vaxmo2H+Y/dGOdYzZg4Tnf6dQ3g3M9hz
         09gg==
X-Gm-Message-State: AOJu0YzBiaOt7n2WYN7Gtvt9jR6ZUskhGgbaIUxV8Cv8dKorQo/dk8eH
	jx74ji3jPx6Ct1G+EskPTFO4TbxEunzyEfFjtqy66z+ZfTf98O2gVBrJjeb6nn8GOrKUlt6NhXB
	IoP/mf/8=
X-Gm-Gg: ASbGncvE6vl0uB/cI2ZN34HUvCH5GMCG16EST5m+fy1G0OPAZJNeBJZIeIweLYproCU
	5gFwzZJnbZEMTkA15nQjlMHLvuIOg6QwGoY4a9FuDvYKa2H481kPzrvtA+gueHMjRUd1iwvn1/o
	3oJcHp7+Haa3qmQ5EFL1DkaTvTtfNqc8dxYvLWbugF/KnZMFABrkrebXDuQxqXQM3N8NIfrMvOB
	2B0uEHh4PWNx4AFRHb3H3CiN28cDifXVTjPlbc21ebeANrdu3x1CUbyrhyZjFRhzvCl42mFIHyy
	C7hnUst94o0ROiqoowC9nOdlK4K1PVspBUZmlTCo2cnRn3JYYNQOlzpWEe4/NKkLZUnmIEF2J3e
	+fT/KwbgMxZaCFAswtDxf0eQfFCrD0eRDcfVHYrDXAI74wy4CNcOPQTD8+AzDSKKXdv6BqHyXzM
	QH
X-Google-Smtp-Source: AGHT+IGnrev+Fn9IitHmppKh6Q8rFalcNx8FXnd9zAAIoH6loW+O/7BQrlWew/vjceQpRcOGSOsOCw==
X-Received: by 2002:a05:600c:4e09:b0:458:bbed:a806 with SMTP id 5b1f17b1804b1-459f7114067mr30272445e9.22.1754684616504;
        Fri, 08 Aug 2025 13:23:36 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 22/22] x86/traps: Enable FRED when requested
Date: Fri,  8 Aug 2025 21:23:14 +0100
Message-Id: <20250808202314.1045968-23-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

With the shadow stack and exception handling adjustements in place, we can now
activate FRED when appropriate.  Note that opt_fred is still disabled by
default.

Introduce init_fred() to set up all the MSRs relevant for FRED.  FRED uses
MSR_STAR (entries from Ring3 only), and MSR_FRED_SSP_SL0 aliases MSR_PL0_SSP
when CET-SS is active.  Otherwise, they're all new MSRs.

With init_fred() existing, load_system_tables() and legacy_syscall_init()
should only be used when setting up IDT delivery.  Insert ASSERT()s to this
effect, and adjust the various *_init() functions to make this property true.

Per the documentation, ap_early_traps_init() is responsible for switching off
the boot GDT, which needs doing even in FRED mode.

Finally, set CR4.FRED in {bsp,ap}_early_traps_init().

Xen can now boot in FRED mode up until starting a PV guest, where it faults
because IRET is not permitted to change privilege.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

In principle we can stop allocating the IDT and TSS for CPUs now, although I
want to get shutdown and kexec working before making this optimisation, in
case there's something I've overlooked.
---
 xen/arch/x86/include/asm/current.h |  3 ++
 xen/arch/x86/traps-setup.c         | 78 +++++++++++++++++++++++++++---
 2 files changed, 75 insertions(+), 6 deletions(-)

diff --git a/xen/arch/x86/include/asm/current.h b/xen/arch/x86/include/asm/current.h
index 24d7d906a8c6..046740447db0 100644
--- a/xen/arch/x86/include/asm/current.h
+++ b/xen/arch/x86/include/asm/current.h
@@ -24,6 +24,9 @@
  * 2 - NMI IST stack
  * 1 - #MC IST stack
  * 0 - IST Shadow Stacks (4x 1k, read-only)
+ *
+ * In FRED mode, #DB and NMI do not need special stacks, so their stacks are
+ * unused.
  */
 
 /*
diff --git a/xen/arch/x86/traps-setup.c b/xen/arch/x86/traps-setup.c
index c4825fc1b11a..fdcfc7f5777d 100644
--- a/xen/arch/x86/traps-setup.c
+++ b/xen/arch/x86/traps-setup.c
@@ -26,6 +26,7 @@ int8_t __ro_after_init opt_fred = 0; /* -1 when supported. */
 boolean_param("fred", opt_fred);
 
 void nocall entry_PF(void);
+void nocall entry_FRED_R3(void);
 void nocall lstar_enter(void);
 void nocall cstar_enter(void);
 
@@ -63,6 +64,8 @@ static void load_system_tables(void)
         .limit = sizeof(bsp_idt) - 1,
     };
 
+    ASSERT(opt_fred == 0);
+
     /*
      * Set up the TSS.  Warning - may be live, and the NMI/#MC must remain
      * valid on every instruction boundary.  (Note: these are all
@@ -197,6 +200,8 @@ static void legacy_syscall_init(void)
     unsigned char *stub_page;
     unsigned int offset;
 
+    ASSERT(opt_fred == 0);
+
     /* No PV guests?  No need to set up SYSCALL/SYSENTER infrastructure. */
     if ( !IS_ENABLED(CONFIG_PV) )
         return;
@@ -274,6 +279,44 @@ static void __init init_ler(void)
     setup_force_cpu_cap(X86_FEATURE_XEN_LBR);
 }
 
+/*
+ * Set up all MSRs relevant for FRED event delivery.
+ *
+ * Xen does not use any of the optional config in MSR_FRED_CONFIG, so all that
+ * is needed is the entrypoint.
+ *
+ * Because FRED always provides a good stack, NMI and #DB do not need any
+ * special treatment.  Only #DF needs another stack level, and #MC for the
+ * offchance that Xen's main stack suffers an uncorrectable error.
+ *
+ * FRED reuses MSR_STAR to provide the segment selector values to load on
+ * entry from Ring3.  Entry from Ring0 leave %cs and %ss unmodified.
+ */
+static void init_fred(void)
+{
+    unsigned long stack_top = get_stack_bottom() & ~(STACK_SIZE - 1);
+
+    ASSERT(opt_fred == 1);
+
+    wrmsrns(MSR_STAR, XEN_MSR_STAR);
+    wrmsrns(MSR_FRED_CONFIG, (unsigned long)entry_FRED_R3);
+
+    wrmsrns(MSR_FRED_RSP_SL0, (unsigned long)(&get_cpu_info()->_fred + 1));
+    wrmsrns(MSR_FRED_RSP_SL1, 0);
+    wrmsrns(MSR_FRED_RSP_SL2, stack_top + (1 + IST_MCE)  * PAGE_SIZE);
+    wrmsrns(MSR_FRED_RSP_SL3, stack_top + (1 + IST_DF)   * PAGE_SIZE);
+    wrmsrns(MSR_FRED_STK_LVLS, ((2UL << (X86_EXC_MC * 2)) |
+                                (3UL << (X86_EXC_DF * 2))));
+
+    if ( cpu_has_xen_shstk )
+    {
+        wrmsrns(MSR_FRED_SSP_SL0, stack_top + (PRIMARY_SHSTK_SLOT + 1) * PAGE_SIZE);
+        wrmsrns(MSR_FRED_SSP_SL1, 0);
+        wrmsrns(MSR_FRED_SSP_SL2, stack_top + (IST_MCE * IST_SHSTK_SIZE));
+        wrmsrns(MSR_FRED_SSP_SL3, stack_top + (IST_DF  * IST_SHSTK_SIZE));
+    }
+}
+
 /*
  * Configure basic exception handling.  This is prior to parsing the command
  * line or configuring a console, and needs to be as simple as possible.
@@ -331,15 +374,18 @@ void __init traps_init(void)
             printk(XENLOG_INFO "Disabling PV32 due to FRED\n");
         }
 #endif
+        init_fred();
+        set_in_cr4(X86_CR4_FRED);
+
         printk("Using FRED event delivery\n");
     }
     else
     {
+        load_system_tables();
+
         printk("Using IDT event delivery\n");
     }
 
-    load_system_tables();
-
     init_ler();
 
     /* Cache {,compat_}gdt_l1e now that physically relocation is done. */
@@ -357,8 +403,13 @@ void __init traps_init(void)
  */
 void bsp_traps_reinit(void)
 {
-    load_system_tables();
-    percpu_traps_init();
+    if ( opt_fred )
+        init_fred();
+    else
+    {
+        load_system_tables();
+        percpu_traps_init();
+    }
 }
 
 /*
@@ -367,7 +418,8 @@ void bsp_traps_reinit(void)
  */
 void percpu_traps_init(void)
 {
-    legacy_syscall_init();
+    if ( !opt_fred )
+        legacy_syscall_init();
 
     if ( cpu_has_xen_lbr )
         wrmsrl(MSR_IA32_DEBUGCTLMSR, IA32_DEBUGCTLMSR_LBR);
@@ -382,7 +434,21 @@ void percpu_traps_init(void)
  */
 void asmlinkage ap_early_traps_init(void)
 {
-    load_system_tables();
+    if ( opt_fred )
+    {
+        const seg_desc_t *gdt = this_cpu(gdt) - FIRST_RESERVED_GDT_ENTRY;
+        const struct desc_ptr gdtr = {
+            .base = (unsigned long)gdt,
+            .limit = LAST_RESERVED_GDT_BYTE,
+        };
+
+        lgdt(&gdtr);
+
+        init_fred();
+        write_cr4(read_cr4() | X86_CR4_FRED);
+    }
+    else
+        load_system_tables();
 }
 
 static void __init __maybe_unused build_assertions(void)
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 20:32:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 20:32:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1075125.1437651 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukTku-0000x5-S2; Fri, 08 Aug 2025 20:32:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1075125.1437651; Fri, 08 Aug 2025 20: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 1ukTku-0000wy-PH; Fri, 08 Aug 2025 20:32:00 +0000
Received: by outflank-mailman (input) for mailman id 1075125;
 Fri, 08 Aug 2025 20:31:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Dtzj=2U=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ukTcn-0005tW-W4
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 20:23:37 +0000
Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com
 [2a00:1450:4864:20::42d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8f993f6a-7495-11f0-a324-13f23c93f187;
 Fri, 08 Aug 2025 22:23:35 +0200 (CEST)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-3b78bca0890so1221880f8f.3
 for <xen-devel@lists.xenproject.org>; Fri, 08 Aug 2025 13:23:35 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459e075047fsm103989805e9.1.2025.08.08.13.23.34
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Aug 2025 13:23: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>
X-Inumbo-ID: 8f993f6a-7495-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754684615; x=1755289415; 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=nAd9iHYMcX06IGN3X/Q4h7oZi4HPIwI/IwRbI7UnnSY=;
        b=E4fOoEtbfjIwG2N3rcHlDy2FoaBsRR02mG8Aydy7lJJZqGa8zu4JgEglSL0cpCuVW1
         SV0TKey8gAS7o46oyfxVfyxJvuv8aWgliawJNsHEke7d1FIV3mNTAnvudUeSyT9vnMFL
         1EsKC3h2pbHaLBgwd9aP7CWuNv5owpsYRGV04=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754684615; x=1755289415;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=nAd9iHYMcX06IGN3X/Q4h7oZi4HPIwI/IwRbI7UnnSY=;
        b=p9rzL0gaKsSvbpGD0Qx+YBTV+3ycLC5UeV6F3cyfEqiFIO2Chwmh70B4VqH1yqZEMs
         HINxun17WI+r/DfX/hmrohKwUyg5wxx5FDvnylfVyazo57sax1ik6CbpxlYcgr/3tAhZ
         PfIXTdVnKjW3JI0jC3zcwK7ecjxe9EOIVNQ+AM05MYmC7S+jh592vE0Q0mbv5bWK99z6
         /zyqmC/GYgflXsXKRpXz+W1krgCQcp48nMrq6CpNroToGVoB1NtukokAP4l4V1Q8MvoR
         zxgRIzTmchwDTiOQgHnDl+u67K3WIyULbCWSoJukZ9EzT2fvxeHRXpsHGUy67/EPwKz+
         hmNA==
X-Gm-Message-State: AOJu0Yw6AZ7Zw+TZuAhQ+W5NySF5ewxfvnu6mAPy+D53lGR4r3OARxXT
	2OuG39ziXLVB1SS0/mLzawGhqB4sjNRo5mSKSDx74eMrwLpUHw+VHRNHt5HGp8lMRSeNRBDosbV
	A4dqVP4Y=
X-Gm-Gg: ASbGncsh0TV0FuMJFnPZNFNkW6JLDXMqqppxmcQvHu8c1n5gAfmtXUmJuMvkUDT1wio
	KIUuJpBtbwYt6qgY9TqnhK0BT+rWFRuX4e3wLKfxAdjt2dwI3Dgi4+0gvuMGdWkhzdezRbbutaj
	4BrGr/SzjnTLZNau5XakTYLsWqdDM9Zs3AKOnDgD+PN/5KuaN3LPfw07Y1AsCcQgQygeMZvZhey
	gkYzUJjE8SXhPzMApHswLql/LoSHQQpDMg/LmXA75692YXq+UJdJTF/YOI+F5gwZ5UAWZAGccVy
	VhfvpKoc+zAN9lqFnhVQ0aEZunuTJ2VZk66ctrv4usIXuxNhbMLBLFUcS0MhB2nubgwynMXSc+E
	yrhaxCaUd/jWAh7OucLLymVqazMRpJahxlxrcB+BIR9vpAB+p93I3DMPL21pcWYa6z7ULr9EGu8
	+A
X-Google-Smtp-Source: AGHT+IH1tZDOHe6Lnce61CjDEETd3H3QQKXhBfuREDUtylAMTzZV87JNoqp2AcJxtHkYk938vxIINQ==
X-Received: by 2002:a05:6000:230f:b0:3b8:d1a4:bacb with SMTP id ffacd0b85a97d-3b900b5118emr3505157f8f.42.1754684615006;
        Fri, 08 Aug 2025 13:23:35 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 20/22] x86/traps: Alter switch_stack_and_jump() for FRED mode
Date: Fri,  8 Aug 2025 21:23:12 +0100
Message-Id: <20250808202314.1045968-21-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

FRED and IDT differ by a Supervisor Token on the base of the shstk.  This
means that switch_stack_and_jump() needs to discard one extra word when FRED
is active.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

RFC.  I don't like this, but it does work.

This emits opt_fred logic outside of CONFIG_XEN_SHSTK.  But frankly, the
construct is already too unweildly, and all options I can think of make it
moreso.
---
 xen/arch/x86/include/asm/current.h | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/include/asm/current.h b/xen/arch/x86/include/asm/current.h
index 962eb76a82b3..24d7d906a8c6 100644
--- a/xen/arch/x86/include/asm/current.h
+++ b/xen/arch/x86/include/asm/current.h
@@ -11,6 +11,7 @@
 #include <xen/page-size.h>
 
 #include <asm/cpu-user-regs.h>
+#include <asm/traps.h>
 
 /*
  * Xen's cpu stacks are 8 pages (8-page aligned), arranged as:
@@ -154,7 +155,6 @@ unsigned long get_stack_dump_bottom (unsigned long sp);
     "rdsspd %[ssp];"                                            \
     "cmp $1, %[ssp];"                                           \
     "je .L_shstk_done.%=;" /* CET not active?  Skip. */         \
-    "mov $%c[skstk_base], %[val];"                              \
     "and $%c[stack_mask], %[ssp];"                              \
     "sub %[ssp], %[val];"                                       \
     "shr $3, %[val];"                                           \
@@ -177,6 +177,8 @@ unsigned long get_stack_dump_bottom (unsigned long sp);
 
 #define switch_stack_and_jump(fn, instr, constr)                        \
     ({                                                                  \
+        unsigned int token_offset =                                     \
+            (PRIMARY_SHSTK_SLOT + 1) * PAGE_SIZE - (opt_fred ? 0 : 8);  \
         unsigned int tmp;                                               \
         BUILD_BUG_ON(!ssaj_has_attr_noreturn(fn));                      \
         __asm__ __volatile__ (                                          \
@@ -184,12 +186,11 @@ unsigned long get_stack_dump_bottom (unsigned long sp);
             "mov %[stk], %%rsp;"                                        \
             CHECK_FOR_LIVEPATCH_WORK                                    \
             instr "[fun]"                                               \
-            : [val] "=&r" (tmp),                                        \
+            : [val] "=r" (tmp),                                         \
               [ssp] "=&r" (tmp)                                         \
             : [stk] "r" (guest_cpu_user_regs()),                        \
               [fun] constr (fn),                                        \
-              [skstk_base] "i"                                          \
-              ((PRIMARY_SHSTK_SLOT + 1) * PAGE_SIZE - 8),               \
+              "[val]" (token_offset),                                   \
               [stack_mask] "i" (STACK_SIZE - 1),                        \
               _ASM_BUGFRAME_INFO(BUGFRAME_bug, __LINE__,                \
                                  __FILE__, NULL)                        \
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 20:32:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 20:32:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1075141.1437661 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukTky-0001FB-30; Fri, 08 Aug 2025 20:32:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1075141.1437661; Fri, 08 Aug 2025 20:32: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 1ukTky-0001F2-04; Fri, 08 Aug 2025 20:32:04 +0000
Received: by outflank-mailman (input) for mailman id 1075141;
 Fri, 08 Aug 2025 20:32:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Dtzj=2U=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ukTcl-0005tJ-CD
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 20:23:35 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8e46660f-7495-11f0-b898-0df219b8e170;
 Fri, 08 Aug 2025 22:23:33 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-4563cfac2d2so21412555e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 08 Aug 2025 13:23:33 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459e075047fsm103989805e9.1.2025.08.08.13.23.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Aug 2025 13:23: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>
X-Inumbo-ID: 8e46660f-7495-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754684613; x=1755289413; 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=g0+lABFbcbDRQyVLuDKpWi9Q/vTwEudyUax4FU2we4k=;
        b=rARpPgTeGPErQq0e3+wb9FjncWB6gITb21s7MkiAOUXgS2yFaoSnLvGPH5qAND5M6q
         8tEmszXAborRuFc5k9Sr4KYIhx1hBbDy2tL2UdaUCCQf0y30Ler+MtKbsoX+bzvSIRya
         RLLtndDzjOvBQ12wU8XNvmhmUbkZ5CAjXyQgo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754684613; x=1755289413;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=g0+lABFbcbDRQyVLuDKpWi9Q/vTwEudyUax4FU2we4k=;
        b=Na/jRdDTdVzCsEm3KmhfiHUq+loP+FQne9lLGrQExjItzTaqR1IU9P7Xh2elXOii3n
         hMkoMKm3WxSKaFMHAT2QyQgI5WNUKqvcpXK85yCXw1yNJjIgrLC9sn3zD4HabP/EbPQr
         C8whaw89WWkmzt98dBiudeiG2fGHvNu18auuG2vAwEdZT8n5GahEyLsVH+KiYkJVcu8e
         Ksd+ofDC+0JbTOVIDcmMCMPEW8UKrXKmxf8ciFIOhrQe+IsVs5xgiNsX4gtcYRWGW9+l
         rLgI40QuHyurrbXyq9sQoARdEEBzzkmVcZAQ0FsskpfBnk2yzAu6rlMcSnveMzLRwcY8
         oTyg==
X-Gm-Message-State: AOJu0YxMjJr1EGVnMat/yuTYqLQCJmhY8gEbl5Ib8dPZnpYUeCnK1B2f
	5qDir6tRzszFbydn1SUkqgKZRs6SDM05DK+31kuEY896TC3jH5z8eahlInQG2fEtzmC98ud9nxT
	eMU0kqcE=
X-Gm-Gg: ASbGncvC9gSY2pznrR3I/0g/yrnccamPBriL5fyJ7LrWu82rlzhD1fFy6p5Znzt/AF7
	ywIVCt1RGzS6+RWsDt4ql/ocVt1iatT9s3xCpnDz2ia19Y7VKNW83oCC26t23E4Pf9dQyZPzbRI
	fgIQ+e2W9t4HMpIaEkfom/t7QPE7vFbEHzFswMu5XZei+n04KuhZ/jnryZQ1eEeZqoZzSzcRXj8
	IAHLHi+fQOhLYiG8qANw5ojWRLGT6We0rZfqt0bAyMlk3OlpLVmCayNKx27+J7yj5kZZ9FHMmkR
	qd2aIp/ZyA7gGolnfVYC54WA/PqDsY/K/NriU0UEPVAtogRdyUTu3sheIRZENOCenNQnDcSB3bV
	XjYg0RxiyR78fBL8pOuWXU+X6TsnY+ykwMBSP37OZdN6WMQ1I7Tbw3iYWoWBBXYG9jfAfLufvMT
	xs
X-Google-Smtp-Source: AGHT+IFv8BFy8CiiAYDhU6YYdfX21Rsk3CpUh43kzdxpdKNgBsdJlp2pWcFU87juIIAPy6rcU5U25w==
X-Received: by 2002:a05:600c:4fca:b0:43c:e70d:44f0 with SMTP id 5b1f17b1804b1-459f4f03764mr38192155e9.19.1754684612636;
        Fri, 08 Aug 2025 13:23:32 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 17/22] x86/S3: Switch to using RSTORSSP to recover SSP on resume
Date: Fri,  8 Aug 2025 21:23:09 +0100
Message-Id: <20250808202314.1045968-18-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Under FRED, SETSSBSY is unavailable, and we want to be setting up FRED prior
to setting up shadow stacks.  Luckily, RSTORSSP will also work in this case.

This involves a new type of shadow stack token, the Restore Token, which is
distinguished from the Supervisor Token by pointing to the adjacent slot on
the shadow stack rather than pointing at itself.

In the short term, this logic still needs to load MSR_PL0_SSP.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/acpi/wakeup_prot.S | 31 +++++++++++++++----------------
 1 file changed, 15 insertions(+), 16 deletions(-)

diff --git a/xen/arch/x86/acpi/wakeup_prot.S b/xen/arch/x86/acpi/wakeup_prot.S
index dfc8c6ac6e8c..6ddc4011d8b6 100644
--- a/xen/arch/x86/acpi/wakeup_prot.S
+++ b/xen/arch/x86/acpi/wakeup_prot.S
@@ -90,7 +90,7 @@ LABEL(s3_resume)
         mov     %rcx, STACK_CPUINFO_FIELD(cr4)(%r15)
         mov     %rcx, %cr4
 
-        /* WARNING! call/ret now fatal (iff SHSTK) until SETSSBSY loads SSP */
+        /* WARNING! CALL/RET now fatal (iff SHSTK) until RSTORSSP loads SSP */
 
 #if defined(CONFIG_XEN_SHSTK)
         test    $CET_SHSTK_EN, %al
@@ -98,32 +98,31 @@ LABEL(s3_resume)
 
         /*
          * Restoring SSP is a little complicated, because we are intercepting
-         * an in-use shadow stack.  Write a temporary token under the stack,
-         * so SETSSBSY will successfully load a value useful for us, then
-         * reset MSR_PL0_SSP to its usual value and pop the temporary token.
+         * an in-use shadow stack.  Write a Restore Token under the stack, and
+         * use RSTORSSP to load it.  RSTORSSP converts the token to a
+         * Previous-SSP Token, which we discard.
          */
         mov     saved_ssp(%rip), %rdi
 
-        /* Construct the temporary supervisor token under SSP. */
-        sub     $8, %rdi
-
-        /* Load it into MSR_PL0_SSP. */
+        /* Calculate MSR_PL0_SSP from SSP. */
         mov     $MSR_PL0_SSP, %ecx
         mov     %rdi, %rdx
         shr     $32, %rdx
         mov     %edi, %eax
-        wrmsr
-
-        /* Write the temporary token onto the shadow stack, and activate it. */
-        wrssq   %rdi, (%rdi)
-        setssbsy
-
-        /* Reset MSR_PL0_SSP back to its normal value. */
         and     $~(STACK_SIZE - 1), %eax
         or      $(PRIMARY_SHSTK_SLOT + 1) * PAGE_SIZE - 8, %eax
         wrmsr
 
-        /* Pop the temporary token off the stack. */
+        /*
+         * A Restore Token's value is &token + 8 + 64BIT (bit 0).
+         * We want to put this on the shstk at SSP - 8.
+         */
+        lea     1(%rdi), %rax
+        sub     $8, %rdi
+        wrssq   %rax, (%rdi)
+        rstorssp (%rdi)
+
+        /* Discard the Previous-SSP Token from the shstk. */
         mov     $2, %eax
         incsspd %eax
 #endif /* CONFIG_XEN_SHSTK */
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 20:33:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 20:33:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1075169.1437670 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukTmb-0002Yt-DU; Fri, 08 Aug 2025 20:33:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1075169.1437670; Fri, 08 Aug 2025 20:33: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 1ukTmb-0002Ym-A1; Fri, 08 Aug 2025 20:33:45 +0000
Received: by outflank-mailman (input) for mailman id 1075169;
 Fri, 08 Aug 2025 20:33:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Dtzj=2U=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ukTcl-0005tW-Vk
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 20:23:35 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8f208a38-7495-11f0-a324-13f23c93f187;
 Fri, 08 Aug 2025 22:23:35 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-459d4d7c745so23770325e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 08 Aug 2025 13:23:35 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459e075047fsm103989805e9.1.2025.08.08.13.23.33
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Aug 2025 13:23: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>
X-Inumbo-ID: 8f208a38-7495-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754684614; x=1755289414; 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=2sRLbDL6y30wDJ02d0Gb0iATvGt1mHINfHCOu1y5TSM=;
        b=bt8gt3r2W1Eo5RStFBvyapoJ9ArMzCN6x52FwjJul5sZDHeBbayKbTin9bwk6SUZkg
         LSkWPbvScWcGSbuKoBfUfKSZvO7yp652v2taLz2hTK83R/9aaYnDpXe/MLTLdE7Uaxq5
         KZyeftX5qyDd0ZSKjRz88ZkPayNL/ed2yNpkQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754684614; x=1755289414;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=2sRLbDL6y30wDJ02d0Gb0iATvGt1mHINfHCOu1y5TSM=;
        b=JGsBlHZA8+9/wlSmjpA+uI6ytFOAzKsTksFgMkoxyFdsn0r1xrsgrEWt+9WbbBdKmf
         yMkOIdl8PqWqAcrBIdzyw3qmS56FcaH3nQYYQqbB7C5QytvUskcCO4dJAzL0mgO0HErG
         1w3lUpbcJ3rsQJS/EdC6l9VW/UNcdvBhBaFr7wQldbsxvYEXt+PYYu3qBh+dvv4NEI+X
         4Tqg7ss+TIvmV2tZ0oHV48yWzto8xIW3wFzlynONLZqOWsdNLSbDcjmVlsMHByFmP+rk
         bunDkBnEoO0624vJK+yEg8WTR7/kWAO9ebzyGJ+HKPc1kC8cMnC2WcRHZ0dNxAYGDrNa
         pIYQ==
X-Gm-Message-State: AOJu0YxgMfr5fLyj5kAjlBpBVLgZGfOXMf5pP3YFK+62QU8aRAXAkbIk
	osHRjqsS79OxPSTWP9r2Gt38jHkeqHTccMRqKQatbGNt6lDq/nRhI/YYZKPEc7DBpatcWJSJi26
	JDlPpRYs=
X-Gm-Gg: ASbGncsbNioEeXUvavXu51UETMU2wQY65ffRAiGp2kIbsDS+1ezDgqkf9km6DrryuMq
	f+YwC7eJs1YSv8rEeo4Fn1FVR3aJSykt3IdFSWblNQSifeK2bAv3/OS/MzXzxDUw4yEsBldCZmP
	Fg0Ea9CBOYyFH0YpSBLyQhJN3UHGPLCeozlqoKUlMwNgwmNyQycALdcABrZ4HjW6deifN9/QVpz
	KYqHC/c6hTB5XXiomhoaYSyq7p8i2kjeJwmCKBn0Jmn3AiC5LAID3nKVSB2pLtFPFZAMtC34UCW
	fZudfQw0s7wk7SikfvsdbgA4XUBkK/OvutEz4vgeyw5OUpiAIOEcoLo/+OU8+4IULUSZ8TAgg3U
	AClBzGGNZMUT7JuYxHUe8oxDARZl6UMoyDn8X873Jm01izy/xnGSLMG1JtTn8jVBzPVDBvOAi5/
	+k
X-Google-Smtp-Source: AGHT+IG56gRK8s+AKlb+k2Xl44dfQcJRp2GsOb84OirZJroaWvK/7U5/0BXeGwcEJM2vr7exXaccow==
X-Received: by 2002:a05:600c:3542:b0:459:e06b:afbd with SMTP id 5b1f17b1804b1-459f4f14792mr35129715e9.29.1754684614211;
        Fri, 08 Aug 2025 13:23:34 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 19/22] x86/boot: Use RSTORSSP to establish SSP
Date: Fri,  8 Aug 2025 21:23:11 +0100
Message-Id: <20250808202314.1045968-20-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Under FRED, SETSSBSY is unavailable, and we want to be setting up FRED prior
to setting up shadow stacks.  As we still need Supervisor Tokens in IDT mode,
we need mode-specific logic to establish SSP.

In FRED mode, write a Restore Token, RSTORSSP it, and discard the resulting
Previous-SSP token.

No change outside of FRED mode.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/boot/x86_64.S | 23 +++++++++++++++++++++--
 xen/arch/x86/setup.c       | 27 ++++++++++++++++++++++++---
 2 files changed, 45 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/boot/x86_64.S b/xen/arch/x86/boot/x86_64.S
index ebb91d5e3f60..138501f52158 100644
--- a/xen/arch/x86/boot/x86_64.S
+++ b/xen/arch/x86/boot/x86_64.S
@@ -53,17 +53,21 @@ ENTRY(__high_start)
         mov     %rcx, STACK_CPUINFO_FIELD(cr4)(%r15)
         mov     %rcx, %cr4
 
-        /* WARNING! call/ret now fatal (iff SHSTK) until SETSSBSY loads SSP */
+        /* WARNING! CALL/RET now fatal (iff SHSTK) until SETSSBSY/RSTORSSP loads SSP */
 
 #if defined(CONFIG_XEN_SHSTK)
         test    $CET_SHSTK_EN, %al
         jz      .L_ap_cet_done
 
-        /* Derive the supervisor token address from %rsp. */
+        /* Derive the token address from %rsp. */
         mov     %rsp, %rdx
         and     $~(STACK_SIZE - 1), %rdx
         or      $(PRIMARY_SHSTK_SLOT + 1) * PAGE_SIZE - 8, %rdx
 
+        /* Establishing SSP depends on whether we're using FRED or IDT mode. */
+        bt      $32 /* ilog2(X86_CR4_FRED) */, %rcx
+        jc      .L_fred_shstk
+
         /*
          * Write a new Supervisor Token.  It doesn't matter the first time a
          * CPU boots, but for S3 resume or CPU hot re-add, this clears the
@@ -71,6 +75,21 @@ ENTRY(__high_start)
          */
         wrssq   %rdx, (%rdx)
         setssbsy
+        jmp     .L_ap_cet_done
+
+.L_fred_shstk:
+
+        /*
+         * Write a Restore Token, value: &token + 8 + * 64BIT (bit 0) at the
+         * base of the shstk (which isn't in use yet).
+         */
+        lea     9(%rdx), %rdi
+        wrssq   %rdi, (%rdx)
+        rstorssp (%rdx)
+
+        /* Discard the Previous-SSP Token from the shstk. */
+        mov     $2, %edx
+        incsspd %edx
 
 #endif /* CONFIG_XEN_SHSTK */
 .L_ap_cet_done:
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 6fb42c5a5f95..c5dd2051dffe 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -53,6 +53,7 @@
 #include <asm/prot-key.h>
 #include <asm/pv/domain.h>
 #include <asm/setup.h>
+#include <asm/shstk.h>
 #include <asm/smp.h>
 #include <asm/spec_ctrl.h>
 #include <asm/stubs.h>
@@ -912,10 +913,30 @@ static void __init noreturn reinit_bsp_stack(void)
 
     if ( cpu_has_xen_shstk )
     {
-        wrmsrl(MSR_PL0_SSP,
-               (unsigned long)stack + (PRIMARY_SHSTK_SLOT + 1) * PAGE_SIZE - 8);
         wrmsrl(MSR_S_CET, xen_msr_s_cet_value());
-        asm volatile ("setssbsy" ::: "memory");
+
+        /*
+         * IDT and FRED differ by a Supervisor Token on the shadow stack, and
+         * therefore by the value in MSR_PL0_SSP.
+         *
+         * In IDT mode, we use SETSSBSY to mark the Supervisor Token as busy.
+         * In FRED mode, there is no token, so we need a transient Restore
+         * Token to establish SSP.
+         */
+        if ( opt_fred )
+        {
+            unsigned long *token =
+                (void *)stack + (PRIMARY_SHSTK_SLOT + 1) * PAGE_SIZE - 8;
+
+            wrss((unsigned long)token + 9, token);
+            asm volatile ( "rstorssp %0" : "+m" (*token) );
+            /*
+             * We need to discard the resulting Previous-SSP Token, but
+             * reset_stack_and_jump() will do that for us.
+             */
+        }
+        else
+            asm volatile ( "setssbsy" ::: "memory" );
     }
 
     reset_stack_and_jump(init_done);
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 21:41:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 21:41:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1075243.1437691 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukUph-0001mI-GM; Fri, 08 Aug 2025 21:41:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1075243.1437691; Fri, 08 Aug 2025 21:41:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukUph-0001mB-DY; Fri, 08 Aug 2025 21:41:01 +0000
Received: by outflank-mailman (input) for mailman id 1075243;
 Fri, 08 Aug 2025 21:41:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wHVc=2U=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1ukUpg-0001RO-H4
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 21:41:00 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5fc2c88c-74a0-11f0-a324-13f23c93f187;
 Fri, 08 Aug 2025 23:41:00 +0200 (CEST)
Received: from nico.tail79467d.ts.net (93-57-251-141.ip167.fastwebnet.it
 [93.57.251.141]) (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPSA id 49F5F4EE3C10;
 Fri,  8 Aug 2025 23:40: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>
X-Inumbo-ID: 5fc2c88c-74a0-11f0-a324-13f23c93f187
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=93.57.251.141
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1754689259;
	b=q5g7RvThsuYjmcpBItnZcbFV9lVRoa5sTlyqsaJ17n+nRnMD5iPp+5SOh0xOGvczGUQK
	 0FaJkU6Xh4mXo6BnaAfewvWoVwkcxfdgKbEHLU7SsMG7gJ4BjNypNgGIjPDfC8/lHUmq7
	 xUGuBrQKsmgUEIOFrowpYEB+cpShayMOlOR/DF8CiWXmBbdYPhCxUxdyGH0MvPQgTrg6Z
	 LgiPyYRDe66a6MFFTyqfvUjuxDD57v9zF9DE3+eKaw+zzBqlrYeh81NKxhHkmQfwT4a85
	 X5hGvwjQf+5M+kHagn7tTGfjUn4nBif2k839RB+t3DgvzNWKUxHdVjlqRTyUaKaXRJ9+d
	 kP/LUqMctQZR3HD/dHkkumUVwpSHJan0o9QUcIqIVB0LOF/T4qTAcVAEL5A9vBhdZ3AK0
	 SlE47Tx8Ieds9yRzMV89W2xfJnLN/Fp5+xs8XSeFbKnH5PTRpIbbqm0ROA1q6WAFNzQZF
	 Ci2fDcJQme7fZ+7/j0mgQ0I34MMvLwst6FkV6CFGGBno7cn09f+C9f15e5IRwcC6K9gFb
	 8WeIr/MGByHMjYP2o/eHVotugVnEnZHrh4zCiP+iCBPulHnR8rNU/v2kC6DdMbP2ONLPE
	 f3j8TkCCQyrlJlMDyfCKsQRl+t/zQNNxSM1XovBdkSwfV8UO2sU9sid+wVrVhEY=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1754689259;
	h=DKIM-Signature:From:To:Cc:Subject:Date:Message-ID:X-Mailer:
	 In-Reply-To:References:MIME-Version:Content-Transfer-Encoding;
	bh=NGuzVXZc9lVbFupjO0fco9+V+MPeZQpDHOKUM0agI9I=;
	b=PuVOB3kGCIWKxZSRdepALhZMBzzlpFCTdwU9KWNpECW618asLW0TbcUDesRxFjmFinbc
	 9qgTVLgjDXkZku0kLiannJj2lP4HyoGbyD0EjAKtCvWGz843l7UOpEVV1v/0eJ7w8dI8O
	 vZr+w6VvP96PiaQtGQvq5DdesaOaJVUSjKmTyGGKOIJsaMkP2iZ8cw1CwpJ2ifuQDQzpf
	 mzmEFUcq6o4XEAhJzciuo93+igxkBY6dVf3D46dl0G9n4dB1zStAn1N9CCdvOXP6CXWQn
	 1zGVStea10bl9aWbaebQQdLH4czUdSq+hIPEt5BoxK/5sPYt/NJZceAJ5MbyZHkVkQVim
	 772nQAwA7okaVB+711FCPAPF+rD2SOeUjygUB4JwkHeoyuuzg4RFNjYstmdAlXoAPAb8d
	 roS2bavCgJm/FYMk+S/MlkqoYEDqYlkCRzwi+ILPaumD0CRBoVBdar7vANf1joTKszUXT
	 YNJHW+oQjfw1AYuz2lIn1GvLvTKXqbUvctCp277x8Mf5F0nbZjVjyidDr6K384v8YKJsR
	 yKpBVvj35y2R3z9m3OOyaX4QIzJBDdavMu5lIhmiVHzOM39DZRuqXWyyq4ESRmzphIgLU
	 kKpm3setpvm26KBoNKgC9wgBeDR1bnEpXmdmKHUMcYZ+Ax2hucjR7CBKX9X+xRc=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=93.57.251.141
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1754689259; bh=buA/oGxgBNRfiekroD96f1pJfErjZVJm/KPiOe3FnYo=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=CQyQp2dxXXLn6ZSntdNlo+sb89wTqyioUBjI6rF1wZwcBsaaZyFhAZh4S/48oS4io
	 mAyFCSN4DUXK3fpGo4kQoc9Quhu5/EttADb48L2Nfl17RVZmOCBvmuHcfhi5os5Bk9
	 tGS3SE4/3KsdqGvGKRqI44HxJjjS6Ils1O0oWrhthBAkni+iWJ9dw2UTvvp3dx0fF5
	 LPMSzBilHeadatxTfcRJEOn3Uy3a6+mPF6aYgScRsyq5KePU0KmMqTYdiV9zUbi5JX
	 AHo2JsrR8VfrHYSOpinEPgOquEVFikUxyqq19GVtILmC0Fzr5MtH41x7YlFlTO0O1z
	 wAtnuWYZZ++pw==
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: sstabellini@kernel.org,
	consulting@bugseng.com,
	dmytro_prokopchuk1@epam.com,
	andrew.cooper3@citrix.com,
	jbeulich@suse.com,
	Nicola Vetrini <nicola.vetrini@bugseng.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: [XEN PATCH 2/2] Address violation of MISRA C Rule 13.1 involving asm side effects.
Date: Fri,  8 Aug 2025 23:40:47 +0200
Message-ID: <c4da2554d94c3f7bd4b1e460dcaa27db382ece2f.1754689062.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <1283be3b76d76814af244bbca544f6a3b74a04de.1754689062.git.nicola.vetrini@bugseng.com>
References: <1283be3b76d76814af244bbca544f6a3b74a04de.1754689062.git.nicola.vetrini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The rule states: "Initializer lists shall not contain persistent side effects".
The specific way in which the 'mrs' instruction is used does not lead to
visible side effects for the surrounding code.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
Not yet tested on the Xen ECLAIR runner, as the syntax used in the deviation
is only supported after updating the runner.

What the tool is reporting is that due to the '=r' constraint and the
semantics of the instruction, there is the side effect of writing to '_r',
but this is not observable outside the stmt expr. The deviation ends up being
a bit too general for my taste, but the restriction on the actual istruction
should be enough to limit applicability to cases that are arguably safe in
practice.

An alternative approach would be represented by stating that side effects in
'READ_SYSREG64' are safe, but this is not true in general.
---
 automation/eclair_analysis/ECLAIR/deviations.ecl | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
index ec0cac797e5f..6b492e38505d 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -437,6 +437,10 @@ write or not"
 # Series 13
 #
 
+-doc_begin="Consider the asm instruction to read an Arm system register to have no side effects."
+-asm_properties+={"asm(any())&&child(text, ast_field(value,^mrs\\s+%0.*$))", {no_side_effect}}
+-doc_end
+
 -doc_begin="All developers and reviewers can be safely assumed to be well aware
 of the short-circuit evaluation strategy of such logical operators."
 -config=MC3A2.R13.5,reports+={disapplied,"any()"}
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 21:41:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 21:41:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1075242.1437682 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukUpg-0001Vt-7p; Fri, 08 Aug 2025 21:41:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1075242.1437682; Fri, 08 Aug 2025 21: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 1ukUpg-0001Vm-2x; Fri, 08 Aug 2025 21:41:00 +0000
Received: by outflank-mailman (input) for mailman id 1075242;
 Fri, 08 Aug 2025 21:40:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wHVc=2U=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1ukUpe-0001RO-CJ
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 21:40:58 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5d5af0e4-74a0-11f0-a324-13f23c93f187;
 Fri, 08 Aug 2025 23:40:56 +0200 (CEST)
Received: from nico.tail79467d.ts.net (93-57-251-141.ip167.fastwebnet.it
 [93.57.251.141]) (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPSA id 2DBBE4EE3C0F;
 Fri,  8 Aug 2025 23:40:52 +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>
X-Inumbo-ID: 5d5af0e4-74a0-11f0-a324-13f23c93f187
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=93.57.251.141
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1754689255;
	b=AcpM+x1ANmqfogQxztAXLaV/H0O0g7zpQiC0m7fUlkZLGJSmCUsDBJbmZtPkyRO3/us8
	 850U/OAzvdj4IEssXRpXMvg0YlXOq5w5SJiETBfvKGz6mnGGT8fJsEgbXmdUaQw9Z4k5j
	 HZZxfyJMvnF1kni5/wogW89q7riDhcPjWX+LhwS0vx5AEInmniEMt9LdzAUrc32ykppr2
	 s2VOvi3VAFF/Dp4AxKxiq1KGwUV/gK+r3Vbve0EAsajyPfYdPVaTvA5hGrVyo9zdUS4c0
	 VKgQyyydUUQ7xQPQRCSHJExYsJa3Nad6maMjIA7W1U3uEe1WCG+FxBFAxTZuytcz0yXkk
	 TcN6vKag1Y1XOzPGc4V4olW679/zaZPBHDZ2hBfo5dFdNdfWvlePuOKGbgdyp4qzhR0yc
	 iFGyfCjtqBab8xBZbuKJ25QJbDEc4pOt8pPfNtOEki/ReNOnjqFETQ4RALZkzwsFrh6GB
	 kZ28/lGriAyolE6RVhM1ltpq0rornWktfhu53Zaol1eLk97HlF/n3o5C0TKjXVSYuY/K8
	 nNK8AaDjojGhEtRFXh6wuvN7USKszs4pOaGmKza+utQeauGQu3hcv/lbE7hZlKw66JkFE
	 Wz2axYkWxPmd6cv9rrMwZ03GJLvSc2beZcIRadIRWNxANg8+FmgRsz5xHxyJlE4=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1754689255;
	h=DKIM-Signature:From:To:Cc:Subject:Date:Message-ID:X-Mailer:
	 MIME-Version:Content-Transfer-Encoding;
	bh=ceLU869e29JG31IlOZ9OqwoMLz6q4g1Sh4I2G9VfcPA=;
	b=ludvSVCmVazeOOAoua/i1kRG+95zylb5l3bGzLaEX8rJItKAeKDmQJe8a+n5ZLfSsuyl
	 yX2a7QLkDVXAaXM7qLU5K+VTWlJWurCcWIFMlv1j/Qz+B590OYoX2nxhsnWzCuH9XHje4
	 zxcJzadt0rE/D3J0JMfb6qa/RiH/9NAyvXHMmmgL0RoCFn3gwWvu5jxNOtqCBAL4nQsww
	 zwiv5AJiIZq+nzQ0FMDJFprstFYnbi0AoScWEtFwj/VaVRGyNDZrMCVPDDc5Xj/jHJiMb
	 1tqN8h6fBwO+PC9kEseVWynsyl8deEmR0wZD1qAAEYzOgA74qJ0QQcr1z1bhyYrkey7Th
	 RhQszi1pI7kod5fBI+NVbM660Sih8QTeSmfimaH/dy5ruNBApn0zg1HNvN6jaAK45Upxl
	 JrobnAXST+obPfuN38iiJ1xldhAzepnD6IKe0GGZi8p2EIU31A5+PYLqFtV2sB6GqNCaF
	 a+KAW0YfaU+s+KSlvbg7+cA6Eg/J8Iz8hmVq9ff6eOsExbTL/QKmOzRdQeIFGgQ6AL/bZ
	 1prNLQjSXvjZhnEPjw9DgCFkqsrmFagUHs0JSFNrqPsEj2Qk8zjnEoMjz97IW1O6F/WhC
	 T2pM6oO8wOiLX9CwNzR3znt3mfc2OAeWV3oJidedQaNS84nKzXZoKGcLVGNzICw=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=93.57.251.141
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1754689255; bh=zO9FAG2I+pMJXMZeo32isS7tt845hhaI+5ng7/nc4g0=;
	h=From:To:Cc:Subject:Date:From;
	b=QpEP4XRQlocmAmu9MOnWgHUKej4gOmx9KcRKiG+k4MuZR3isLPzrH4RfHTYrGKifp
	 /ku5T6Aiw6OLpBjuYgfBEOnreZo6sf3zO2BhySxd07cEe5+AATMGKwSIlwBdOoU1Cu
	 xHgPsFxhPTMAhfswvg8vXe9yO6WYkGzncmsud0HiA9PaXx4TP1Z2vK92AiF5iVSLNu
	 a5v6iiebicgNXAN+J9qP75v5NgKtJhJpe+MQFgU04lhKWox+nSDPvyAzmSU+qcYtXG
	 iV6zCukiM2kxQTT8nf1jfKPJdQbKROlxul/UHSurhbwvUG78Zp4XCrZcd4bNwJ4FzL
	 58eVbtVtBTPnA==
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: sstabellini@kernel.org,
	consulting@bugseng.com,
	dmytro_prokopchuk1@epam.com,
	andrew.cooper3@citrix.com,
	jbeulich@suse.com,
	Nicola Vetrini <nicola.vetrini@bugseng.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: [XEN PATCH 1/2] automation/eclair: ECLAIR configuration changes due to GitLab runner update
Date: Fri,  8 Aug 2025 23:40:46 +0200
Message-ID: <1283be3b76d76814af244bbca544f6a3b74a04de.1754689062.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Update configurations to adapt to the new syntax used by the newer
version of the tool in the GitLab runner.

No functional changes.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
This will of course need coordination with me to update the runners
just before committing the patches, as any analysis done in between will
fail due to syntax errors in the tool configuration files.
---
 automation/eclair_analysis/ECLAIR/deviations.ecl | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
index ebce1ceab912..ec0cac797e5f 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -536,8 +536,8 @@ safe."
 -config=MC3A2.R16.3,reports+={safe, "any_area(end_loc(any_exp(text(^(?s).*/\\* [fF]all ?through\\.? \\*/.*$,0..2))))"}
 -doc_end
 
--doc_begin="Switch statements having a controlling expression of enum type deliberately do not have a default case: gcc -Wall enables -Wswitch which warns (and breaks the build as we use -Werror) if one of the enum labels is missing from the switch."
--config=MC3A2.R16.4,reports+={deliberate,'any_area(kind(context)&&^.* has no `default.*$&&stmt(node(switch_stmt)&&child(cond,skip(__non_syntactic_paren_stmts,type(canonical(enum_underlying_type(any())))))))'}
+-doc_begin="Switch statements having a controlling expression of enum type deliberately do not have a default case: gcc -Wall enables -Wswitch which warns (and breaks the build as -Werror is used) if one of the enumeration values is missing from the switch."
+-config=MC3A2.R16.4,reports+={deliberate,"any_area(kind(context)&&^.* has no `default.*$&&stmt(node(switch_stmt)&&child(cond,skip(__non_syntactic_paren_stmts,ref(enum_underlying_type(any()))))))"}
 -doc_end
 
 -doc_begin="A switch statement with a single switch clause and no default label may be used in place of an equivalent if statement if it is considered to improve readability."
@@ -596,10 +596,10 @@ in assignments; (5) as initializers, possibly designated, in initalizer lists;
 -config=MC3A2.R20.7,expansion_context=
 {safe, "context(__call_expr_arg_contexts)"},
 {safe, "left_right(^[(,\\[]$,^[),\\]]$)"},
-{safe, "context(skip_to(__expr_non_syntactic_contexts, stmt_child(node(array_subscript_expr), subscript)))"},
-{safe, "context(skip_to(__expr_non_syntactic_contexts, stmt_child(operator(assign), lhs)))"},
-{safe, "context(skip_to(__expr_non_syntactic_contexts, stmt_child(node(init_list_expr||designated_init_expr), init)))"},
-{safe, "context(skip_to(__expr_non_syntactic_contexts, stmt_child(node(case_stmt), lower||upper)))"}
+{safe, "context(skip(__expr_non_syntactic_contexts, is(subscript)&&node(array_subscript_expr)))"},
+{safe, "context(skip(__expr_non_syntactic_contexts, is(lhs)&&stmt(operator(assign))))"},
+{safe, "context(skip(__expr_non_syntactic_contexts, is(init)&&node(init_list_expr||designated_init_expr)))"},
+{safe, "context(skip(__expr_non_syntactic_contexts, is(lower||upper)&&node(case_stmt)))"}
 -doc_end
 
 -doc_begin="Violations involving the __config_enabled macros cannot be fixed without
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 21:43:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 21:43:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1075260.1437700 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukUsQ-00039f-Ub; Fri, 08 Aug 2025 21:43:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1075260.1437700; Fri, 08 Aug 2025 21:43:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukUsQ-00039Y-Rh; Fri, 08 Aug 2025 21:43:50 +0000
Received: by outflank-mailman (input) for mailman id 1075260;
 Fri, 08 Aug 2025 21:43:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Dtzj=2U=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ukUsQ-00039R-3V
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 21:43:50 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c3f33e95-74a0-11f0-b898-0df219b8e170;
 Fri, 08 Aug 2025 23:43:48 +0200 (CEST)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-459e72abdd2so15064865e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 08 Aug 2025 14:43:48 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3b79c4530b3sm32343148f8f.34.2025.08.08.14.43.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 08 Aug 2025 14: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>
X-Inumbo-ID: c3f33e95-74a0-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754689427; x=1755294227; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=z7etg8bUSQj0ZxnUbnxf2Ljs7wMJYzMLw77Dh+fZK0Q=;
        b=Q69SeEgvhGvTG51obOJLn+qsA35lSBPxrrWDBLdfZdygyvFbFsEZVs86DV6GTgKbG9
         fm4BZZ9xjn5EuESfqCluOxvncMJVHsbWsr3Gqr1M7i6oOGMllGPXbsCXyyUYfUJiCHgy
         1ub6qEdv/Bex8+kyjiAqPivS74xVI3OJJ7nho=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754689427; x=1755294227;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=z7etg8bUSQj0ZxnUbnxf2Ljs7wMJYzMLw77Dh+fZK0Q=;
        b=MDlWmYvd06ghe7O5zp2I4knFRjWmYTP7nKHtsl/K5rFOwNX+aHvPQZ6Ih1bC5qg0wY
         JGlw54YY3AqqDOBqEg7Qm5eS2JZbPgokHrB+tSRK8Kwgethcc3SWEy/dUE8+Tofhkmth
         fXumvUpezsJkJkN2yt76ILm+AK67FE1g44eRgf53Bz5b2/OIpUD9jsNy3SSFBsRA+ZtW
         I7pGunIZGpBDQXYWPLMkJ4oaBDOvccABp/yDxBFyW6K3r+cs2Km+ZnhLygjvqHioJ+2p
         ZWyex1YTAQsDQLWBwldcYf7uoMFzL9qsbH3GZmM8kN7scOhazqKNHIuS5cyZ+Gi92YVO
         1oyA==
X-Forwarded-Encrypted: i=1; AJvYcCUz8fGPM/Hzm69jC9sY1zcJjN/5M0efSzXMWmGDdyvzbxbcN2oWpYQRyxd/LrPp4E63IXg8rN9Y9KQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz5dZ6RNwiz2yhsCjzem49WtarU/AVaSAWIAg5UxDwrkEWQCVHg
	xLn+U9LoV+LLjUBuANmPU24KKApy4RklqAVTGZTc6GeL30pAhhCByD6DgliAGBPg5sA=
X-Gm-Gg: ASbGnctdifq3wVUpkQAhpjFyxnb7NrVE6Fca6eFySuTpjXwmwzguG4LHNOOLl4At+ux
	cT7CXWD6GHatyV0rQkZWHUFWhgDD+yYvHWyy3xLOKj6UmZDPy9caxdTbDPlFtn4rO2kxQiaj6yb
	fIssuk80E5oHACxQibt3J6X1mQhTKa7SXPN6QzDr4wSbknMffb9FlDduiRC0fDqlo5ot4KPgnSf
	o/Esmq2S+RDCm6xZfL4CCqw6+6W5V1oBFc/hxRc75fZF/FVbfJLB/LjPhcUl3MRcJ68Lcbqw3r6
	qrzIbN/nfvMCK/CdQWX4NfQXZn+guXptvd2MZYEevU1mTs373RJt5xiAv1YYSJvxbR2plTZxG76
	Ufk9ohvRjUHN1UIsS2Zp5KHfVAAzlRXYCIEqKxeoaZ6VjWwQu0tlf2tcVO/EXxHQJbpym
X-Google-Smtp-Source: AGHT+IEZAbV+KgYol0es5wU1H/XaJMYEQD5piXhCrk5CG5eYJbQ/P7Tabe2Sowp27pHmGU4M0iKMUA==
X-Received: by 2002:a05:600c:474f:b0:456:1d61:b0f2 with SMTP id 5b1f17b1804b1-459f4fc32fbmr46905455e9.30.1754689427348;
        Fri, 08 Aug 2025 14:43:47 -0700 (PDT)
Message-ID: <0a57848b-c9c6-4f57-befb-195a9766daba@citrix.com>
Date: Fri, 8 Aug 2025 22:43:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 1/2] automation/eclair: ECLAIR configuration changes
 due to GitLab runner update
To: Nicola Vetrini <nicola.vetrini@bugseng.com>,
 xen-devel@lists.xenproject.org
Cc: sstabellini@kernel.org, consulting@bugseng.com,
 dmytro_prokopchuk1@epam.com, jbeulich@suse.com,
 Doug Goldstein <cardoe@cardoe.com>
References: <1283be3b76d76814af244bbca544f6a3b74a04de.1754689062.git.nicola.vetrini@bugseng.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <1283be3b76d76814af244bbca544f6a3b74a04de.1754689062.git.nicola.vetrini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08/08/2025 10:40 pm, Nicola Vetrini wrote:
> Update configurations to adapt to the new syntax used by the newer
> version of the tool in the GitLab runner.
>
> No functional changes.
>
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> ---
> This will of course need coordination with me to update the runners
> just before committing the patches, as any analysis done in between will
> fail due to syntax errors in the tool configuration files.

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Fri Aug 08 21:48:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 21:48:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1075267.1437711 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukUwh-0003lU-EC; Fri, 08 Aug 2025 21:48:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1075267.1437711; Fri, 08 Aug 2025 21:48:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukUwh-0003lN-B5; Fri, 08 Aug 2025 21:48:15 +0000
Received: by outflank-mailman (input) for mailman id 1075267;
 Fri, 08 Aug 2025 21:48:13 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wHVc=2U=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1ukUwf-0003lH-Qy
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 21:48:13 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 61c1b711-74a1-11f0-a324-13f23c93f187;
 Fri, 08 Aug 2025 23:48:12 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 8CEB74EE3C0F;
 Fri,  8 Aug 2025 23:48:11 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 61c1b711-74a1-11f0-a324-13f23c93f187
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=1754689691;
	b=LraQxGs/6v/ylioM9b3HQ7xMbZHpBYNlFEjpQv+6o1NBkHaT1owc6biH5x65if854Ud3
	 kpeD/15snqbO8j99T1StJgsvYzSR+jxzc77/DINMxwaGA6ya9M4zhNVTrmhc3tcMl3Wl9
	 uw6weqWa3F9wWws5cx+IjBC55onNaUe2LFB7BRwF5+7lhbadmeDCdS/IFAe8clE74WFWZ
	 0OVcpxg8eUpmexsBqYN8qqAiFg4AAWTDJihkNkOKKJlDrVMiaJVAv3OmbTbxFQ2LReWAB
	 gfrw7IBx412E3ON+DtkX2rSw5MWCr92oNLROcaJ6UJskSXFKQVk8B6xdtURc8RONaVgAN
	 hPX1yosKY4AKVxoRlRJknyuu9V3OViioBhGBM8+SZtrXWwapLMwX7XLwjTxcJOtufCpwD
	 OfsIXUEWrlIFFEaBNNUG+BdaxshH1B+X2l5UwUQ+1bL45kV5Hj63kN4ivsA8RTDbnigc9
	 D9Iyq53xen5ySoppWVQqLZmpozp3zpkbn0nP+2rABP4sBPaTG5z9MSa2Zt6pIs6fx684g
	 UOlVWe+GFSZyEespSvAKvVEKeeJdkVWv207300qgJ4qWoy3DpM7sYvx7eaxfOG9Rf5Ros
	 +wU6rvEYHY1KpfbvyPxG81Ug2ly6pzuYpPXImQuaTZo8R6pedfqwdQvSqwZ8fAo=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1754689691;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=xFcQKHXegIvKJblG1Z3LGDUHf+S7KN1+cD6cSTYks0E=;
	b=vYMeuOckxNiHzqDn3b+V7wyaMLVBm0cbh8bGMEDwq76glLFI1QbYE3CQbh2xTMwE7OYC
	 OVNoZcUq/y7sA4+2rss+T5xuv1HpKKoHvmsAUJGFqQbNfY8SAflQ429tG7vkTHSaanTBN
	 Cub/DxLAsG6n1+jjcGtnNXi6qWAJ9D7vqwQ7xnpYWRfXFZncVv9cskuNy7nW0hLu94Im/
	 +yLjuDvo9l9k8Vu/rRUH44vPOdlKGXURxZF9Zx938euzTIe9bOOyIy3kAZiApQY8xogDI
	 NrXPZ2k4RSLm3MkF6GtVbT3M4tk2KP4/vYtJm03ftjdgAOZe7NSIM140hMkpdSQs3JD+H
	 jJqAEXdNudsEsJn63j9aRYdAFgrWPJa6iLvxchS3pP9k5PNqDl7JeBQ4bHKTZGXj01nRR
	 gxRowfcN8YW0XqqSWZXRS2AFJmFnBtZNxbHHEGjQiPimxQfxB3YFnXogOJEmvJfxcMMe1
	 1WmfskNCHYqQpkxYQ9eZjBLC4FvPuoWlqDo5YEgDnbjJncFq2aYh8AuV4/ZtTD6ZbwdA9
	 8FKu+3SuGtxDYLDeSG6OzqjD5hHo00ksmZXti4MEFRP3GimesbKmyb0IiFqCVf1UBlboT
	 sBVoiMzUliv7Ul1TbiOZrG0e/rWcm1PWJOfhTA+s4BlbEXnNEzvJNtAJKOBrfTQ=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1754689691; bh=ysuzWgd3sr4j/IHxZwC3H6VTCfSPR6a0Xlv7ccrgPXc=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=H0wbnSGPSVy3KISgY2saU/ARDgww4GEjvDI4xzqXd9z0ecv2EQ7F3k1HN9O7p6Nwv
	 gQDkXVZiZ0URhcTJjB0GewALT1AjEzetczg69ZjmujaXjfnXhGOTdAZLC6FBAmHimR
	 3cPojdGv3kCoJyVjesDMwICqQOG/7jYKRSMYAVA+cM0IWRb/BQan6OSUyrdWZrPLMA
	 QNtdLX05FDI8SevxDIhWRxZzIkSqGvXN/1l+TQnbeAG+BRnIhDwvpHY77ZWoBF1EjM
	 HqYYyTrO26TQp5lk8hh3FKzyL2K8Du6UUiGt+vRey342/ph/zGF8CSZ2MqGw6JG8xR
	 Cn2cqIbm2D3Tg==
MIME-Version: 1.0
Date: Fri, 08 Aug 2025 23:48:11 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: xen-devel@lists.xenproject.org
Cc: sstabellini@kernel.org, consulting@bugseng.com,
 dmytro_prokopchuk1@epam.com, andrew.cooper3@citrix.com, jbeulich@suse.com,
 Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [XEN PATCH 1/2] automation/eclair: ECLAIR configuration changes
 due to GitLab runner update
In-Reply-To: <1283be3b76d76814af244bbca544f6a3b74a04de.1754689062.git.nicola.vetrini@bugseng.com>
References: <1283be3b76d76814af244bbca544f6a3b74a04de.1754689062.git.nicola.vetrini@bugseng.com>
Message-ID: <7dfa016caddc615b7bbbef3781dd23a4@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

On 2025-08-08 23:40, Nicola Vetrini wrote:
> Update configurations to adapt to the new syntax used by the newer
> version of the tool in the GitLab runner.
> 

Sorry, forgot to include the cover letter. See below.

 From c4da2554d94c3f7bd4b1e460dcaa27db382ece2f Mon Sep 17 00:00:00 2001
Message-ID: <cover.1754689388.git.nicola.vetrini@bugseng.com>
 From: Nicola Vetrini <nicola.vetrini@bugseng.com>
Date: Fri, 8 Aug 2025 23:43:08 +0200
Subject: [XEN PATCH 0/2] Update ECLAIR runner and address MISRA 
violations

The first patch of the series contains the necessary updates to the
ECLAIR syntax needed to run the updated runners. The change was
motivated by usage of the new syntax in a deviation that is part of the
second patch.

As a result, the runners should be updated either just before or just
after committing the patches.

These have not been properly tested yet on an ECLAIR analysis of Xen, 
but
I sent the patches to get some feedback first and then coordinate with
maintainers to take the needed action once agreed on the approach.

Nicola Vetrini (2):
   automation/eclair: ECLAIR configuration changes due to GitLab runner
     update
   Address violation of MISRA C Rule 13.1 involving asm side effects.

  automation/eclair_analysis/ECLAIR/deviations.ecl | 16 ++++++++++------
  1 file changed, 10 insertions(+), 6 deletions(-)

-- 
2.43.0


> No functional changes.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> ---
> This will of course need coordination with me to update the runners
> just before committing the patches, as any analysis done in between 
> will
> fail due to syntax errors in the tool configuration files.
> ---
>  automation/eclair_analysis/ECLAIR/deviations.ecl | 12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl 
> b/automation/eclair_analysis/ECLAIR/deviations.ecl
> index ebce1ceab912..ec0cac797e5f 100644
> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
> @@ -536,8 +536,8 @@ safe."
>  -config=MC3A2.R16.3,reports+={safe, 
> "any_area(end_loc(any_exp(text(^(?s).*/\\* [fF]all ?through\\.? 
> \\*/.*$,0..2))))"}
>  -doc_end
> 
> --doc_begin="Switch statements having a controlling expression of enum 
> type deliberately do not have a default case: gcc -Wall enables 
> -Wswitch which warns (and breaks the build as we use -Werror) if one of 
> the enum labels is missing from the switch."
> --config=MC3A2.R16.4,reports+={deliberate,'any_area(kind(context)&&^.* 
> has no 
> `default.*$&&stmt(node(switch_stmt)&&child(cond,skip(__non_syntactic_paren_stmts,type(canonical(enum_underlying_type(any())))))))'}
> +-doc_begin="Switch statements having a controlling expression of enum 
> type deliberately do not have a default case: gcc -Wall enables 
> -Wswitch which warns (and breaks the build as -Werror is used) if one 
> of the enumeration values is missing from the switch."
> +-config=MC3A2.R16.4,reports+={deliberate,"any_area(kind(context)&&^.* 
> has no 
> `default.*$&&stmt(node(switch_stmt)&&child(cond,skip(__non_syntactic_paren_stmts,ref(enum_underlying_type(any()))))))"}
>  -doc_end
> 
>  -doc_begin="A switch statement with a single switch clause and no 
> default label may be used in place of an equivalent if statement if it 
> is considered to improve readability."
> @@ -596,10 +596,10 @@ in assignments; (5) as initializers, possibly 
> designated, in initalizer lists;
>  -config=MC3A2.R20.7,expansion_context=
>  {safe, "context(__call_expr_arg_contexts)"},
>  {safe, "left_right(^[(,\\[]$,^[),\\]]$)"},
> -{safe, "context(skip_to(__expr_non_syntactic_contexts, 
> stmt_child(node(array_subscript_expr), subscript)))"},
> -{safe, "context(skip_to(__expr_non_syntactic_contexts, 
> stmt_child(operator(assign), lhs)))"},
> -{safe, "context(skip_to(__expr_non_syntactic_contexts, 
> stmt_child(node(init_list_expr||designated_init_expr), init)))"},
> -{safe, "context(skip_to(__expr_non_syntactic_contexts, 
> stmt_child(node(case_stmt), lower||upper)))"}
> +{safe, "context(skip(__expr_non_syntactic_contexts, 
> is(subscript)&&node(array_subscript_expr)))"},
> +{safe, "context(skip(__expr_non_syntactic_contexts, 
> is(lhs)&&stmt(operator(assign))))"},
> +{safe, "context(skip(__expr_non_syntactic_contexts, 
> is(init)&&node(init_list_expr||designated_init_expr)))"},
> +{safe, "context(skip(__expr_non_syntactic_contexts, 
> is(lower||upper)&&node(case_stmt)))"}
>  -doc_end
> 
>  -doc_begin="Violations involving the __config_enabled macros cannot be 
> fixed without

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Fri Aug 08 22:20:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 22:20:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1075293.1437722 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukVRj-00028X-Sp; Fri, 08 Aug 2025 22:20:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1075293.1437722; Fri, 08 Aug 2025 22:20: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 1ukVRj-00028Q-Nz; Fri, 08 Aug 2025 22:20:19 +0000
Received: by outflank-mailman (input) for mailman id 1075293;
 Fri, 08 Aug 2025 22:20:18 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Dtzj=2U=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ukVRi-00028K-1B
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 22:20:18 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dc7fa2d7-74a5-11f0-a324-13f23c93f187;
 Sat, 09 Aug 2025 00:20:17 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-458bf6d69e4so22935735e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 08 Aug 2025 15:20:16 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459e5843021sm168998675e9.3.2025.08.08.15.20.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Aug 2025 15:20: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>
X-Inumbo-ID: dc7fa2d7-74a5-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754691616; x=1755296416; 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=e1kWj+Bc4KrYJW7fHKpr7xe5mQtHUF28JS4QCE9FHKg=;
        b=Tii0DgkMlIYOOVI0mimUTkIYgVfgromxNfPXV0UwzqsrleevcT4ZhR8mgKP9LrnCxA
         75Fm9Reh8hFygX4e5cfABnksJcixipTi/0ijNXNvEcLEje09zCTfRKG1iOKDqBMhB5M6
         N+ElgKo8Yz2W/uYLbORGwbN3G8Tep+fQ4ems4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754691616; x=1755296416;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=e1kWj+Bc4KrYJW7fHKpr7xe5mQtHUF28JS4QCE9FHKg=;
        b=l97IYR8QZR7dMqsbJMoWtHNtM3QCit4+eJ5ll2gWA/vyHhl9x/IXRpwOb7wXDHjaE/
         T4hbf87SQPn7syoOTp3nULUjbJw1PhI7LAdUJaJpY+GGaiYtYRtL0UUOz2aqkQhYw7nX
         gXS0bufpTIYaDqo6hg/ZEuLfDTDQ5D7jJGT9R8BzxEEfoENEt77GUW9gXyL3eBR/vRB7
         vm7UmaVlAh6nVkANGYsp6q8og3dO+LZJgYv15+5UjcudHTPOP1ApGWrlgsJyGoYbaIdm
         a6wMPS7k4h+kbjYZB09SyD7SoKhDRobmS+fFg1JbUgauweOuqz3+OF0FxE+aQy+tmLLR
         gwsA==
X-Gm-Message-State: AOJu0Yyk+J4hEDVNkVyGlL3yFo/8/JPtBnGhDVqmUZV9TiCtSFvA5y8P
	P1+tVulf2QOr5EZBLhzbgW11SKd1Z8CJQ2/zzNcZztYZeL5uZ9pHiVJE6vpnfqtJfrxEA4Nx3Wf
	Bb1g2h2I=
X-Gm-Gg: ASbGncs95XPkBSXZzfHG7/FOPXnUuhpynFsZy1sCEeXU9YvQIh5h1pCwY349SpuGWf2
	PIOAZh4SY1rMsQDcltQr5E28qXrJ8gdG69LD1LufI/H8PYD3He9S9jUmZI2Lt8aZhSYrUyZvVuZ
	kOUq8HD//n6WbHocKeV8ZXrdtJvMLo/2sF+D0akY0vRxxuBmtBu/xxEE+JXYS7kvXkZrFih52Er
	7KNwhfel9Q70eyYD6KAxdg5Wg5heBCKaCR/HaNdjmvUNslSR114G43tSofe0ezx9lnzG+IFA/ln
	iRdGud+7X47erWvI2/A23oHiEC3S7cgyJ8Qhge5oONPo1LHDJBapopGFdszWrUDdTTBOT1lZYGh
	hUW6kfDbXH+XRjaCPoIcYQoO77vsM0kwrs66Q60vgv1QBCQQ/eSKWKW9AqCzQ4ukf9iZjeBpFNR
	fL
X-Google-Smtp-Source: AGHT+IHlHxElapDMSIPic5DXWAqyyQx0siuGpbJGWcIRtiF1mpMpy9DWchBPoQdu8yhTgXcZKPqCEA==
X-Received: by 2002:a05:600c:1c2a:b0:459:d8c2:80b2 with SMTP id 5b1f17b1804b1-459f4f3dc83mr35257895e9.7.1754691615817;
        Fri, 08 Aug 2025 15:20:15 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH] RFC x86/msr: Use WRMSRNS $imm when available
Date: Fri,  8 Aug 2025 23:20:13 +0100
Message-Id: <20250808222013.1071291-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

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

This is on top of the FRED series for the wrmsrns() cleanup, but otherwise
unrelated.

The code generation isn't entirely ideal

  Function                                     old     new   delta
  init_fred                                    255     274     +19
  vmx_set_reg                                  248     256      +8
  enter_state_helper.cold                     1014    1018      +4
  __start_xen                                 8893    8897      +4

but made worse by the the prior codegen for wrmsrns(MSR_STAR, ...) being mad:

  mov    $0xc0000081,%ecx
  mov    $0xe023e008,%edx
  movabs $0xe023e00800000000,%rax
  cs wrmsr

The two sources of code expansion come from the compiler not being able to
construct %eax and %edx separately, and not being able propagate constants.

Loading 0 is possibly common enough to warrant another specialisation where we
can use "a" (0), "d" (0) and forgo the MOV+SHR.

I'm probably overthinking things.  The addition will be in the noise in
practice, and Intel are sure the advantage of MSR_IMM will not be.
---
 xen/arch/x86/include/asm/alternative.h      |  7 ++++
 xen/arch/x86/include/asm/msr.h              | 39 ++++++++++++++++++++-
 xen/include/public/arch-x86/cpufeatureset.h |  1 +
 3 files changed, 46 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/include/asm/alternative.h b/xen/arch/x86/include/asm/alternative.h
index 0482bbf7cbf1..fe87b15ec72c 100644
--- a/xen/arch/x86/include/asm/alternative.h
+++ b/xen/arch/x86/include/asm/alternative.h
@@ -151,6 +151,13 @@ extern void alternative_instructions(void);
         ALTERNATIVE(oldinstr, newinstr, feature)                        \
         :: input )
 
+#define alternative_input_2(oldinstr, newinstr1, feature1,              \
+                            newinstr2, feature2, input...)              \
+    asm_inline volatile (                                               \
+        ALTERNATIVE_2(oldinstr, newinstr1, feature1,                    \
+                      newinstr2, feature2)                              \
+        :: input )
+
 /* Like alternative_input, but with a single output argument */
 #define alternative_io(oldinstr, newinstr, feature, output, input...)   \
     asm_inline volatile (                                               \
diff --git a/xen/arch/x86/include/asm/msr.h b/xen/arch/x86/include/asm/msr.h
index 01f510315ffe..434fcac854e1 100644
--- a/xen/arch/x86/include/asm/msr.h
+++ b/xen/arch/x86/include/asm/msr.h
@@ -38,9 +38,46 @@ static inline void wrmsrl(unsigned int msr, uint64_t val)
         wrmsr(msr, lo, hi);
 }
 
+/*
+ * Non-serialising WRMSR with a compile-time constant index, when available.
+ * Falls back to plain WRMSRNS, or to a serialising WRMSR.
+ */
+static always_inline void __wrmsrns_imm(uint32_t msr, uint64_t val)
+{
+    /*
+     * For best performance, WRMSRNS %r64, $msr is recommended.  For
+     * compatibility, we need to fall back to plain WRMSRNS, or to WRMSR.
+     *
+     * The combined ABI is awkward, because WRMSRNS $imm takes a single r64,
+     * whereas WRMSR{,NS} takes a split edx:eax pair.
+     *
+     * Always use WRMSRNS %rax, $imm, because it has the most in common with
+     * the legacy forms.  When MSR_IMM isn't available, emit setup logic for
+     * %ecx and %edx too.
+     */
+    alternative_input_2(
+        "mov $%c[msr], %%ecx\n\t"
+        "mov %%rax, %%rdx\n\t"
+        "shr $32, %%rdx\n\t"
+        ".byte 0x2e; wrmsr",
+
+        /* WRMSRNS %rax, $msr */
+        ".byte 0xc4,0xe7,0x7a,0xf6,0xc0; .long %c[msr]", X86_FEATURE_MSR_IMM,
+
+        "mov $%c[msr], %%ecx\n\t"
+        "mov %%rax, %%rdx\n\t"
+        "shr $32, %%rdx\n\t"
+        ".byte 0x0f,0x01,0xc6", X86_FEATURE_WRMSRNS,
+
+        [msr] "i" (msr), "a" (val) : "rcx", "rdx");
+}
+
 /* Non-serialising WRMSR, when available.  Falls back to a serialising WRMSR. */
-static inline void wrmsrns(uint32_t msr, uint64_t val)
+static always_inline void wrmsrns(uint32_t msr, uint64_t val)
 {
+    if ( __builtin_constant_p(msr) )
+        return __wrmsrns_imm(msr, val);
+
     /*
      * WRMSR is 2 bytes.  WRMSRNS is 3 bytes.  Pad WRMSR with a redundant CS
      * prefix to avoid a trailing NOP.
diff --git a/xen/include/public/arch-x86/cpufeatureset.h b/xen/include/public/arch-x86/cpufeatureset.h
index 9cd778586f10..af69cf3822eb 100644
--- a/xen/include/public/arch-x86/cpufeatureset.h
+++ b/xen/include/public/arch-x86/cpufeatureset.h
@@ -352,6 +352,7 @@ XEN_CPUFEATURE(MCDT_NO,            13*32+ 5) /*A  MCDT_NO */
 XEN_CPUFEATURE(UC_LOCK_DIS,        13*32+ 6) /*   UC-lock disable */
 
 /* Intel-defined CPU features, CPUID level 0x00000007:1.ecx, word 14 */
+XEN_CPUFEATURE(MSR_IMM,            14*32+ 5) /*   {RD,WR}MSR $imm32 */
 
 /* Intel-defined CPU features, CPUID level 0x00000007:1.edx, word 15 */
 XEN_CPUFEATURE(AVX_VNNI_INT8,      15*32+ 4) /*A  AVX-VNNI-INT8 Instructions */
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 08 23:49:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 08 Aug 2025 23:49:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1075335.1437731 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukWq0-0006R0-Rg; Fri, 08 Aug 2025 23:49:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1075335.1437731; Fri, 08 Aug 2025 23: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 1ukWq0-0006Qt-Oa; Fri, 08 Aug 2025 23:49:28 +0000
Received: by outflank-mailman (input) for mailman id 1075335;
 Fri, 08 Aug 2025 23:49:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Dtzj=2U=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ukWpy-0006Qn-Oh
 for xen-devel@lists.xenproject.org; Fri, 08 Aug 2025 23:49:26 +0000
Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com
 [2a00:1450:4864:20::42f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4fa78546-74b2-11f0-a324-13f23c93f187;
 Sat, 09 Aug 2025 01:49:24 +0200 (CEST)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-3b79bd3b1f7so1302703f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 08 Aug 2025 16:49:24 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3b79c3b95desm31287588f8f.20.2025.08.08.16.49.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 08 Aug 2025 16:49: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>
X-Inumbo-ID: 4fa78546-74b2-11f0-a324-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754696963; x=1755301763; 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=/QLw1MS9Yw991F1kr3BalCx2KYqxD20VN1RIVcE4BH8=;
        b=Rt9s+pHBBBKNEBBR20uTulcChOhnQyxEHwq0SJ/WpdKxUQNKZu/I3/jndNzCVHJHXp
         cYh6eNMJZPC6s7KUqdyvcWPpXcQq0VJ7T34MEtg28yxzhFg/2vXI6ZuggvxF65HplhVK
         8hLoHbASS1ZO6pUl0Oa/Os47oQpMeK1Yqhs+0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754696963; x=1755301763;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=/QLw1MS9Yw991F1kr3BalCx2KYqxD20VN1RIVcE4BH8=;
        b=fmXnBn2sSU/DpcjEtAIfX27TP6t1Sck1E/d4kDGdedPxnzm/JZ7bMfY/WvhDZIRMdo
         GIBMMxfu3XfFLMMdSXedssYU2uE6RFGFNgdItkoit0EYGFZvz14p6WRAUtWgjhPs5Pm3
         ty8A9X7dF74MV8qDxdu9z9HYbSj2ZBYEj0qUKrVhQkXFrvT8C9mranEbDc7wb3yrW9gH
         Nbix6R5NrbVH6DLki5lZ4jwYk40NPqICahJRMDVtuOz7wj4ZAxDJ1NIYVbeGvSSbiMsw
         VFAYTcsiQQYPC65+DV84HHARN/SqoSLWMy1t7FZFWgeqCuEAh8S0hqcSG1525phFTdtw
         PzIg==
X-Gm-Message-State: AOJu0YxaiSiIGKK4rx//YtEVvFj8/gX1+uW3t5/rLJMFXwcfF4ER+m/3
	phe3i/JzjKJohcJmZOTj8lcCUHMqhrewtiuInFpD4XfwwkNM8bOIdKjl5hMHqYjiwjV+Kd+qNTK
	3UmN40v4=
X-Gm-Gg: ASbGnctaLpHwepFADZ5OnkP+L+EzU2DvqcufuehDJgRjJleRHRTLMlD/ex/Etxx7Vsp
	5uqpfG3rQF7jcMZPTidGmxIFZQn+R7sNFeiuJ44ZM7btk5BjNI3y874DKNLM9qINHq2gxmlFsHV
	IhshGbE3Shhm36cjWnREU7oh+muGTQs+w2ZIxFR62WnD4EJkMGr3t4h4FoUa7TehnF/fMD3t0mI
	ciPssKTtUjzd9+eah2paxdxUJFR+9C23iClt7hABTSDkcZ5c6h6yK6YL9j6t6WvKyhzhID4AvgS
	VbcbeelO/nqLNCYV54/l0uWUlVvWZKKQDaYexNu9Hrg3IWHL3ubOAiEx4CJYKX01O1AlTh3+zTT
	lHF8ys0FxBjPTUjOiRbLxtLn6YYfg0ntnileCGH1lM0WqFr0HEbJCnyTPjGjcXj5sUg5J7D1e/6
	TO
X-Google-Smtp-Source: AGHT+IF/7kyzaFIg1l+Xvl2Bk/rf229iF8VlwI/rAIRYEKzqF9JkfLPQphoOBPo0Rh1qmBoZRw/I8Q==
X-Received: by 2002:a5d:5846:0:b0:3a4:dc2a:924e with SMTP id ffacd0b85a97d-3b90093e6famr3713949f8f.6.1754696963506;
        Fri, 08 Aug 2025 16:49:23 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 23/22] x86/vmx: Adjust NMI handling for FRED
Date: Sat,  9 Aug 2025 00:49:20 +0100
Message-Id: <20250808234920.1214924-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Handling NMIs in VT-x is awkward.  It turns out that using INT $2 happens to
be correct for IDT delivery, and can be made to be correct under FRED too.

Xen can now boot in FRED mode and run PVH dom0 even with the watchdog enabled.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/hvm/vmx/vmx.c | 14 ++++++++++++--
 xen/arch/x86/traps.c       | 16 +++++++++++++++-
 2 files changed, 27 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index cb82d52ef035..577a5e2d59c6 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -4209,8 +4209,18 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_regs *regs)
              ((intr_info & INTR_INFO_INTR_TYPE_MASK) ==
               MASK_INSR(X86_ET_NMI, INTR_INFO_INTR_TYPE_MASK)) )
         {
-            do_nmi(regs);
-            enable_nmis();
+            /*
+             * If we exited because of an NMI, NMIs are blocked in hardware,
+             * but software is expected to invoke the handler.
+             *
+             * Use INT $2.  Combined with the current state, it is the correct
+             * architectural state for the NMI handler, and the IRET on the
+             * way back out will unblock NMIs.
+             *
+             * In FRED mode, we can spot this trick and cause the ERETS to
+             * unblock NMIs too.
+             */
+            asm ("int $2");
         }
         break;
     case EXIT_REASON_MCE_DURING_VMENTRY:
diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index f58e6dcf13b7..16dd335cadb2 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -2285,8 +2285,22 @@ void asmlinkage entry_from_xen(struct cpu_user_regs *regs)
         do_nmi(regs);
         break;
 
-    case X86_ET_HW_EXC:
     case X86_ET_SW_INT:
+        if ( regs->fred_ss.vector == 2 )
+        {
+            /*
+             * Explicit request from the the VMExit handler.  Rewrite the FRED
+             * frame to look like it was a real NMI, and go around again.
+             */
+            regs->fred_ss.swint = false;
+            regs->fred_ss.nmi = true;
+            regs->fred_ss.type = X86_ET_NMI;
+            regs->fred_ss.insnlen = 0;
+
+            return entry_from_xen(regs);
+        }
+        fallthrough;
+    case X86_ET_HW_EXC:
     case X86_ET_PRIV_SW_EXC:
     case X86_ET_SW_EXC:
         switch ( regs->fred_ss.vector )
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Sat Aug 09 13:35:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 Aug 2025 13:35:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1075959.1437741 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukjj0-000145-79; Sat, 09 Aug 2025 13:35:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1075959.1437741; Sat, 09 Aug 2025 13:35: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 1ukjj0-00013x-1l; Sat, 09 Aug 2025 13:35:06 +0000
Received: by outflank-mailman (input) for mailman id 1075959;
 Sat, 09 Aug 2025 13:35:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=7I+o=2V=nvidia.com=jgg@srs-se1.protection.inumbo.net>)
 id 1ukjiy-00013r-HX
 for xen-devel@lists.xenproject.org; Sat, 09 Aug 2025 13:35:04 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on2062c.outbound.protection.outlook.com
 [2a01:111:f403:2417::62c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a5495011-7525-11f0-a325-13f23c93f187;
 Sat, 09 Aug 2025 15:35:02 +0200 (CEST)
Received: from CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13)
 by CH2PR12MB4120.namprd12.prod.outlook.com (2603:10b6:610:7b::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.16; Sat, 9 Aug
 2025 13:34:56 +0000
Received: from CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732]) by CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732%4]) with mapi id 15.20.9009.018; Sat, 9 Aug 2025
 13:34:56 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a5495011-7525-11f0-a325-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=LVWxGMpQHc+QFX0/tTrsQ+8oHoHhaaBptiFL16N9lUZjafg2Vwxo83jWrmIx0ys15EM9iLwa74lxSiyNk5ftshFT+e1Eta7JIqCOTCrW5byLiQBsfKVaCVBBzPup2XaTOnikWBB7vgKTU+z4zXiTNeng/jCqYBe2h2PYH2fwzQ3PKP8NSselMu8jizZmYlls+PHYCRS2pHfeAG3XPYxZzpJWN8N4qmR31PJItd4uPx4olthfFjDZ02xGEMNGj13mDybVgBPs2TerV0xYuzIS54FH+0SOXfMTRaQBcIHb+RSZ1q23RYtpQ+AgpWmPR1O+sGDFqziTlb5ldPoq5gKYOQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=5hQwFjXQOmqNPj4Z17V9pB+cg3fmuvcbi4cPAiVbgUQ=;
 b=S0eeE5f0L2EE2VBH3feGr3RpQeI9Jf7XwUukXfSWpH0rHI4Cbbq4k8XxHRnzfC3h7A9scNhTRHpB7NPASDxxAvsF2uVw8haHpy80o4tFiNNNIUw1ZrWJjHDZ1HkWrvT4659y433RL1/B32AmUWgHSAbFI2tU2kxcPmRuXX7k97ZcM1BUQ4rRwzn/DGDFShh03rW4LPHeitwa11rKRDFgk34lLSqUk2yOrJhN0A6/HuISK79BDAUQ9Ggyj1furszHvdXn3ecKKQh2Rkhx62Vk0/hAZ8KMsrpAQdp6sLgJo3ysePjx/XPBGuO1iqY+XpwavZOZCbPSJLUiTUCrjYqJXA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com;
 dkim=pass header.d=nvidia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=5hQwFjXQOmqNPj4Z17V9pB+cg3fmuvcbi4cPAiVbgUQ=;
 b=ixJwxTcm+kMKNa9ZTfkl9q/o6ev8PVNhKEbMjdsrg+H/yTiFRoJ2euaU869KCzSfeGn9H/vLmpUZdjSjHFlDHqNaHmllIc10ECQatkdpiuleb+Knbk+tFIZHhwR9iL8nXEM3zYbe8Rg5DOC1evdVGNJ8ruG6NcLB7HnZdrXeAR4XOFAgsC+8tfOHdlu/c0aPJThwgtyh1JkHkPwiPWAq8ktbbdSmztha/wBga5v5PHzke09E7ei/dXf22IvZmYzqagBxnWwCGKeDxF7oRfVM7V0XK2E8HQnukn5ZWhXcY194nEA/ikp9XYSVRduQqYyaKi2HMxM0JFDOmNJjQjrESQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=nvidia.com;
Date: Sat, 9 Aug 2025 10:34:54 -0300
From: Jason Gunthorpe <jgg@nvidia.com>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leon@kernel.org>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 00/16] dma-mapping: migrate to physical address-based
 API
Message-ID: <20250809133454.GP184255@nvidia.com>
References: <cover.1754292567.git.leon@kernel.org>
 <CGME20250807141938eucas1p2319a0526b25db120b3c9aeb49f69cce1@eucas1p2.samsung.com>
 <20250807141929.GN184255@nvidia.com>
 <a154e058-c0e6-4208-9f52-57cec22eaf7d@samsung.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <a154e058-c0e6-4208-9f52-57cec22eaf7d@samsung.com>
X-ClientProxiedBy: YT1PR01CA0136.CANPRD01.PROD.OUTLOOK.COM
 (2603:10b6:b01:2f::15) To CH3PR12MB8659.namprd12.prod.outlook.com
 (2603:10b6:610:17c::13)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PR12MB8659:EE_|CH2PR12MB4120:EE_
X-MS-Office365-Filtering-Correlation-Id: ea51f777-dd35-4f45-4aa8-08ddd7498728
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?U3E5Z09lcGdXblFaVVFad0VLYzdKWGJzZTU5V0ZwN1c2SEJ2cVpwV1YxZm1q?=
 =?utf-8?B?Y0hBSTNKb3ViWGVZL1lyNmRaVUFOelhBelJEdnQvbDQvTWpXTHhURENMOEZj?=
 =?utf-8?B?R1grOXQ0ZG5Ma3hGU2NwZ0xJamIyaVhwRjcwSXJoa1ZuaDhqRXRPMGs5dE1v?=
 =?utf-8?B?T2wzK0huNCtXUnNlME81dW1pak5ySno4TTZyYzJaNFBVbHF0RWhmZ0ttZnRM?=
 =?utf-8?B?RnBpQWozaWRMak9BZjBaRlRGdW1rd3JtTDVIVFFhUHBETEZ5R3UvTjkzdFRl?=
 =?utf-8?B?d1FYYkZ2aUJxU3BpWVNZUVlSdW9yYU1GbTBHVFp5MXVoSXZIbFE3WE1yUW1G?=
 =?utf-8?B?N0YwaU9OTEVnaXZKeklrYk1OTVFJclVVZ25xRTk4VE9HMkJQR0tRZjBMblRO?=
 =?utf-8?B?YW41b3pnd2wyNDY0U05hQVMvY1N0SVVQT3JUMmFZcXVLbmxDdkhsZ0NKK0Fw?=
 =?utf-8?B?bTBlUVMxRlpoWWRDYUJIOU5vZzlSTDVvZTk5Y2E1eVZaZFdrUC9rN0F0L0Vk?=
 =?utf-8?B?WVdEOThFelpDdzJXeVlFcWVCZjMwMHpXQVB6YTlKSFdsMlBWRndwV29JaGpJ?=
 =?utf-8?B?b2ErNVRtY3VjTUIyMDZtc1d3THJxKzBYNlg3eFBxSmFwbzlJOW04Ni9GeFk3?=
 =?utf-8?B?eVlaVW1iakpKN2ZMQ3dDTTBJelFINVF0Z3djWndaK0U4MjdYaXR6eCtaZVJq?=
 =?utf-8?B?N3h6VndrZnhFYVBrQ2I3OC93eVVXRzVWUFlXbk4rU2RyQ2ZnU0JPU09nUXEz?=
 =?utf-8?B?MUNvNjIyeWZqWDZhdDFSK0M3NHYxTkRNRkovZzl2cTd3RGhBZThpSkFWK09J?=
 =?utf-8?B?UVkrMkhTWkgvanpUcTcwMFRieVB6NGk1VTU3NjFxTVZlbXVqMWkzYVhxb3Ji?=
 =?utf-8?B?YlFxcFRHUUZBNTdPc3FxVlJkVkhMbTlKZ2ZRUDNVOHZsMzFrS094TStiRUNu?=
 =?utf-8?B?Snk2S3ZZRThpdXFOQXZRb25jQ2orZHdtNllFY0xSUnM2LzdyYm5FYXdWT0tO?=
 =?utf-8?B?NUptdVFQU25WKzNBQ0Ezc3pqd0VSMzlIejNJSVJDY1VHTE5IUzhGamRBTExt?=
 =?utf-8?B?NFIwMnh5bkxBb1BoeDUxdWtlUnhKZTBKS2NwT2MweDI0eklrSDl1WUo1TG9P?=
 =?utf-8?B?bFpROTRGcU9MK2dabXpiUThLZ0NHc0tScUgrK2hSUFFJaDVRV01hN2xMZVBI?=
 =?utf-8?B?SWZQSUE2cnFmTC9aMHJzREE3YjhLNG5IcW9XZzc5K0RiRTh4Wmk0bENHbUtp?=
 =?utf-8?B?NVRZRElsZjhLOFZJbkJ2OWQzeUVIOVU5SUZLMWlSaUtFTG1HZWF3RVVJQ09u?=
 =?utf-8?B?N1c4SkxOV0N1SDIzcWQvdmNzSGtqbGtMOTdRWVB1NGp3S294enNqY1Njai8v?=
 =?utf-8?B?RTNod2U2N3F4QzZDVitscFN1K3h2VjNIcHFKNDY5WXJmQTd5eUI3aWRZaEFE?=
 =?utf-8?B?RHRuY3lLcXZKa3pkMEhkQXk2OEFicE1EdisyMEt1ZXJxTElVNXNYZWRseGV6?=
 =?utf-8?B?WC9IRHV2MlVLZ3YrZk5EdmdPTDNSNkRPeVpKMi9xdW15RGsvYzNadlV0eUor?=
 =?utf-8?B?UjBMdmNxMC9yNkp1MDNGc2RSODU3NzVTTytySmNkcXJ4TmJCSWNHdDdLRmpy?=
 =?utf-8?B?WGpHVEFkL1FvdzlNRkk4bjlXMCtCbDR2UWw3NmpUMnl3QzUydFJTOGVxd2w0?=
 =?utf-8?B?UktRRUN5M1NoMjlEWThpQVpuTURCM2Jvaml6Q2pmbkZzUkF1MnlaUlRNNHFK?=
 =?utf-8?B?aURCd1lxT09UNU83bC9yaGlNNDRnTDZZUVhrVktweEJxcXdLSUc5MTM0TDFn?=
 =?utf-8?B?Ym9kU0VLLzc4UnI4YVFEUUU0QUVIemVnSzA4ZkNPdWFMME11YUpjOGtsbndE?=
 =?utf-8?B?MGkrN1ZHNFRaZDhoS21ER1U1U0RTNnhWNVBzVUdkOUljOWk3ZnJBSWFNRjFq?=
 =?utf-8?Q?clzIDg9uv2o=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR12MB8659.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?cUlPQ3Q2bW1obUhaZnE4MTdVVlpBcVlKSkc3OWdGMHE2N2prNk1JQjRwTVMy?=
 =?utf-8?B?M0RZd1VqN1RIK1VLMVN2emZaRzNkSk9iSjZ0bUZYcU8wczFkRGtKeTRqNmJ4?=
 =?utf-8?B?Sjg5OUZVanMzM0o1U1RkVysvcWFVSTRwV2d3UDUwVUhGaGhoYmNjT1BwWThm?=
 =?utf-8?B?VXlsMGlidi8wZmc4MDQ1T21FYWwxa2dpbHlESEM1SGhIM1JFeDNFQ1NZL2JC?=
 =?utf-8?B?cGhFekdyTnlZdlpCVUhwOTdhYVI5WHJKVm9SaURENHlWNUVxSzlRL1V0Y2tr?=
 =?utf-8?B?cHhsY2lHSFN2WFgzSjlUVXo3T1g1cWlocEFZMG9maDBSS1ZuckVrVXVySDJn?=
 =?utf-8?B?NFpnZnZycnY5dU1ra3RNd0g0Q0JKY2hNVWRrRTFaMDh2b29zdGlneE9DOTdi?=
 =?utf-8?B?WlNjK1pHbFppekFqSWR4M3p1dGxwbGwvalU4aS81Sm1VdkVwSmR3RlVOcjFF?=
 =?utf-8?B?RUhjYm1WNVlxaCs0dThjOVRnZk9mOXdxWWk1S3M5eTVVcWphQ294VnFaNDF1?=
 =?utf-8?B?T01OYktuQzR3QWlnQlFoRG90dkJpbFB4K05jZnBDUnVBRHMwdURWVi9VRjhZ?=
 =?utf-8?B?OTduOG5Ra3JLeHI0aWMrNExRaWhWK0kxM0pQZDUxam1PMFhSTG9DanFiMTZO?=
 =?utf-8?B?YzhTb3B3d1FQVEd3MzdzUUh3RXFNS2dnMkdrdUUyc3laWjhaQkVDWUFxTUt4?=
 =?utf-8?B?WVIxUkdoUW80NVUwZldDZVIzZXB4TXZ0Q3pjQjhNOHNOK3hBYndrNkZQelNr?=
 =?utf-8?B?NTdkdGpYSzhjMDJMZEw4TjREeFg5cFlsV3pmUTlieU1oYW5ZSzF5MDJGTzlp?=
 =?utf-8?B?SC8vTTBuRTlHTytOQTdvWmNjaHdvYnNsYzN5aGI2Wk9ld3NjN1NGemxjRysx?=
 =?utf-8?B?bEl2NERCQndsTUF0emNaYXVKUHU5TFR3dzAwOXFCczVxYnNxeEVHK2F2Njkr?=
 =?utf-8?B?MlFxSU1FdzB6K3FCeE9Wb3RiZkVUMXhCMHVKMDRIMVZ5ZWhqelZZbWhsY0Nq?=
 =?utf-8?B?TDF4bmV6ckVCSWc2aVZicGZna0ptTFpmVGZ4WWVheGhuZjhxQVFZNnBqdkc3?=
 =?utf-8?B?ci8yWE1RRjhWR1MyMEpHWC84eFZWZmJJa0ZhM0RzR0ZnWVM5SnE4UERZTnRH?=
 =?utf-8?B?WEdDalhKd0JoVW9iU0RqNXRLNlFDZ2NiVTdhcW5PV3VaL2JFNkVCT1pLWlFR?=
 =?utf-8?B?eUxzSW1kcG9CblNOQVRMZWcwdk5jMURrZk51MTFFWXg1ZlBFc0Y3U3MydGo5?=
 =?utf-8?B?b1B6ODJkaDVCVVV0VUgwNlFvbU5WUEQ1b2FvK0F6Y1NweUhnblErWkpmbXcv?=
 =?utf-8?B?UDZYUUVCSzk2RHVzSWx0V3gyZ3RGTDU3cTBIblhEbWJtVVFsRGxCVk0yZEZk?=
 =?utf-8?B?RTFzQjJ2MTNKa3drczcvZGNtNUE0b0lPMmVON0pPL2pIaG14OTdLZExtQzk2?=
 =?utf-8?B?eXFCbWkrNlVIdDM5eEJLWmNtUithY1pqVFVZWGRVeExXMldhNjlVTXBNSzAr?=
 =?utf-8?B?aUVHZDZsaDJSdXo4dzJ4Yk9KOHRyaEJHS0luL01uNG82bllEaWhETmhRNjhQ?=
 =?utf-8?B?OCs2U2dlUWhyeFZGbVd3TElrWnNaR1RLTkRQVEhBb0xvT05IZjJQVWhZSVBx?=
 =?utf-8?B?eU5RNkZFanYvODZEaWNEK1VBdlRRcmRwcitHNGJxbU9UdUo1eHlTempVaVZU?=
 =?utf-8?B?cDFsbnY0QXE2TCtFMlorSVJSWWZaVEl4OEZZUzFnWGV2ZjlQZkxTZy9Nd1R3?=
 =?utf-8?B?cFBHWmRnb2FHZmZZejNKZHlobFhaNTJsV2Jyb2lkK0Rxdzk4SFFabFJjSjFt?=
 =?utf-8?B?MC9OZ2d3dmdrUVBJK1hkZHIwODFPdThwei8rUXJ6NlJCOW9UY1VMOWhjZjN4?=
 =?utf-8?B?QWRZMFJOVkN3YlFPN004U2I2aWI3OWhpUU1CaFUvSmVnOUdEK3Q2cGVRQmh2?=
 =?utf-8?B?djI4Mk5vZDBxbElxMVowc1hXTys0cWgzbjRQK0dEc1duMmhxc3FjM3dXZTlr?=
 =?utf-8?B?WEt2SmQ0Z3prcEdtRjJ2TldKMEowYUN6ZkRNVnZ6azkwdm40U29selB1ZzdX?=
 =?utf-8?B?bGM4MHJUbzdsdW5Kamc0VkJHaDh3d3plRVVOdVFYMmcyMVBpVkZtaXdodnho?=
 =?utf-8?Q?MjQ4=3D?=
X-OriginatorOrg: Nvidia.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ea51f777-dd35-4f45-4aa8-08ddd7498728
X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8659.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Aug 2025 13:34:55.9153
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 6Ly2R1iyYEFH7E0g275dSDdE+KiUwr3rSanp+t+S8WiLKTigRjsg+luIZBAobiS3
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4120

On Fri, Aug 08, 2025 at 08:51:08PM +0200, Marek Szyprowski wrote:
> First - basing theÂ API on the phys_addr_t.
> 
> Page based API had the advantage that it was really hard to abuse it and 
> call for something that is not 'a normal RAM'. 

This is not true anymore. Today we have ZONE_DEVICE as a struct page
type with a whole bunch of non-dram sub-types:

enum memory_type {
	/* 0 is reserved to catch uninitialized type fields */
	MEMORY_DEVICE_PRIVATE = 1,
	MEMORY_DEVICE_COHERENT,
	MEMORY_DEVICE_FS_DAX,
	MEMORY_DEVICE_GENERIC,
	MEMORY_DEVICE_PCI_P2PDMA,
};

Few of which are kmappable/page_to_virtable() in a way that is useful
for the DMA API.

DMA API sort of ignores all of this and relies on the caller to not
pass in an incorrect struct page. eg we rely on things like the block
stack to do the right stuff when a MEMORY_DEVICE_PCI_P2PDMA is present
in a bio_vec.

Which is not really fundamentally different from just using
phys_addr_t in the first place.

Sure, this was a stronger argument when this stuff was originally
written, before ZONE_DEVICE was invented.

> I initially though that phys_addr_t based API will somehow simplify
> arch specific implementation, as some of them indeed rely on
> phys_addr_t internally, but I missed other things pointed by
> Robin. Do we have here any alternative?

I think it is less of a code simplification, more as a reduction in
conceptual load. When we can say directly there is no struct page type
anyhwere in the DMA API layers then we only have to reason about
kmap/phys_to_virt compatibly.

This is also a weaker overall requirement than needing an actual
struct page which allows optimizing other parts of the kernel. Like we
aren't forced to create MEMORY_DEVICE_PCI_P2PDMA stuct pages just to
use the dma api.

Again, any place in the kernel we can get rid of struct page the
smoother the road will be for the MM side struct page restructuring.

For example one of the bigger eventual goes here is to make a bio_vec
store phys_addr_t, not struct page pointers.

DMA API is not alone here, we have been de-struct-paging the kernel
for a long time now:

netdev: https://lore.kernel.org/linux-mm/20250609043225.77229-1-byungchul@sk.com/
slab: https://lore.kernel.org/linux-mm/20211201181510.18784-1-vbabka@suse.cz/
iommmu: https://lore.kernel.org/all/0-v4-c8663abbb606+3f7-iommu_pages_jgg@nvidia.com/
page tables: https://lore.kernel.org/linux-mm/20230731170332.69404-1-vishal.moola@gmail.com/
zswap: https://lore.kernel.org/all/20241216150450.1228021-1-42.hyeyoo@gmail.com/

With a long term goal that struct page only exists for legacy code,
and is maybe entirely compiled out of modern server kernels.

> Second - making dma_map_phys() a single API to handle all cases.
> 
> Do we really need such single function to handle all cases? 

If we accept the direction to remove struct page then it makes little
sense to have a dma_map_ram(phys_addr) and dma_map_resource(phys_addr)
and force key callers (like block) to have more ifs - especially if
the conditional could become "free" inside the dma API (see below).

Plus if we keep the callchain split then adding a
"dma_link_resource"/etc are now needed as well.

> DMA_ATTR_MMIO for every typical DMA user? I know that branching is 
> cheap, but this will probably increase code size for most of the typical 
> users for no reason.

Well, having two call chains will increase the code size much more,
and 'resource' can't be compiled out. Arguably this unification should
reduce the .text size since many of the resource only functions go
away.

There are some branches, and I think the push toward re-using
DMA_ATTR_SKIP_CPU_SYNC was directly to try to reduce that branch
cost.

However, I think we should be looking for a design here that is "free"
on the fast no-swiotlb and non-cache-flush path. I think this can be
achieved by checking ATTR_MMIO only after seeing swiotlb is needed
(like today's is p2p check). And we can probably freely fold it into
the existing sync check:

	if ((attrs & (DMA_ATTR_SKIP_CPU_SYNC | DMA_ATTR_MMIO)) == 0)

I saw Leon hasn't done these micro optimizations, but it seems like it
could work out.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Sat Aug 09 14:33:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 Aug 2025 14:33:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1075987.1437751 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukkdD-0000Po-9g; Sat, 09 Aug 2025 14:33:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1075987.1437751; Sat, 09 Aug 2025 14:33: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 1ukkdD-0000Ph-6u; Sat, 09 Aug 2025 14:33:11 +0000
Received: by outflank-mailman (input) for mailman id 1075987;
 Sat, 09 Aug 2025 14:33:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Pqdr=2V=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1ukkdC-0000Pb-HP
 for xen-devel@lists.xenproject.org; Sat, 09 Aug 2025 14:33:10 +0000
Received: from mail-lf1-x12d.google.com (mail-lf1-x12d.google.com
 [2a00:1450:4864:20::12d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c4c54883-752d-11f0-b898-0df219b8e170;
 Sat, 09 Aug 2025 16:33:08 +0200 (CEST)
Received: by mail-lf1-x12d.google.com with SMTP id
 2adb3069b0e04-5561ab55c4dso3118194e87.2
 for <xen-devel@lists.xenproject.org>; Sat, 09 Aug 2025 07:33:08 -0700 (PDT)
Received: from yp-VivoBook-ASUSLaptop-M1503QA-M1503QA.. ([95.67.15.120])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-55cc859266dsm254716e87.38.2025.08.09.07.33.06
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sat, 09 Aug 2025 07:33: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>
X-Inumbo-ID: c4c54883-752d-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754749988; x=1755354788; 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=MYfp+c3nhwNqnX6G10kpUDWkp2DnR8OEjC6Y4iNd7tk=;
        b=aVxdPqL1GthpEttWaSlNYTHaFD1H1y5XOpTRTAFtj0tZz9hBxIEyCrvaVpQ+erF1PS
         Y6FVaodCcRzFDDhk2+0JaGFFm6nTQv/CU4m6ooxhOWsk/c/cOJPWDdQ4QAyGUpbkX1Kn
         dpRLZ3f+VCFw6BHp8NLFXPmUXJC/r0YGkgo60CsEu9i9LCB8CsrVB0dcziU4S0e3OO/A
         Z5BH13Z8zrPFv2uTjCuRPlZtSosMNumcDlvlUWxmOaTTZErjzm43/OHKEZdrRm/WRPGb
         x79PTAzELEZfz1nNq5o8U7uc52twEEzB8goLTjtEZb4bF1MsWpuHGcmE+K25D0xlMKHl
         VrmQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754749988; x=1755354788;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=MYfp+c3nhwNqnX6G10kpUDWkp2DnR8OEjC6Y4iNd7tk=;
        b=rSzKQq46H0CEtJSxP3BZ2JAM3M6a25mUw9j3bzHZiF/fRkJJx1eOAWp6Ig7amg680N
         oKZR1aJRUKNQq4GAKkqvcLE1lbH+1i0BCHOCb3bKqiz3ZRk5XkQjbBUUK+RBJKXZGLfQ
         eB+/g9wMwfxu0hTOtRpwuARzh5ngldMRzkowBC8VmHE1SGeRW1ZZhTS2wehuRnJRxqAM
         Ftjt2lmcrZ0t7/pqqr2CEIrPjsBlCgwex78pOXn8iSehZOL5zs60WsvtkhWVfVnRRetO
         ETOLW2m+tNalNCU7IGOn8+q5vo+OgCgHvUMIjPEEcJKnk2BiQkCb2Xa2tkaWa2FVISvQ
         uoPg==
X-Gm-Message-State: AOJu0YyOmUs0Sh4+EOqArvu0a3vjq5n+XP8eDGAMfX3/7v/mo7ycGe2x
	0nSpG/fvk+lXB4pAO4NCHOS/F2EBUXMYAAHZcY/gx2Hj/zWXZMbpDLv8vFgtuA==
X-Gm-Gg: ASbGnctb4zepVT8KG2c85I8OuxIjNISNZXMXz3nqvrstc4LA9Y/lDoX7gQPvJtcHxz+
	+6IPtlWO0chmU9UFM3Q4C3AM7nXrx0h3eHqXJahcCxFjq7914SXhMPDcScPLmfqPP5P6bxDU9Wg
	2uCh1Zvy4rV/dUKhNUcvvrGKpPC74XXP7P/dp8qONziiwZqZPNdsbTIytfxW3Q2s/5mZJ0R+Bxu
	Ub5og2FdeqjVmcIm1HTGLN8G6pYOg6LwcIr2CaKS5xC0xGZtT5e/kpb5arj1W1C8R7PIPbKoMBW
	7GSesdEgvB+X57YWZoifviiA56bI94qCU5AbuLZfuTLSNDjKI9qkcgiq4By3icznVZcj9FYYMBk
	eFD/Eth4Un3Z+g7YmFFNzqJCGlq2XuUwUWx7pYMH5vl7IwAcqkh4pAvOrVktUzQ==
X-Google-Smtp-Source: AGHT+IGa5z6R6QL8Zn7/8joMosEoXHJ0mRodGl0MTubwKSJ4t2/8Qhgd3FHFNvIfvb4Iow6aItTKcQ==
X-Received: by 2002:a05:6512:3b0f:b0:553:cede:6a9 with SMTP id 2adb3069b0e04-55cc014da54mr1724142e87.55.1754749987270;
        Sat, 09 Aug 2025 07:33:07 -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: irq: add missing spin_unlock() in init_local_irq_data() error path
Date: Sat,  9 Aug 2025 17:32:41 +0300
Message-ID: <bd707bd0fd88fc53974a1214313a9b9103162bcc.1754749899.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.48.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

If init_one_irq_desc() fails, init_local_irq_data() returns without
releasing local_irqs_type_lock, leading to a possible deadlock.

Release the lock before returning to ensure proper cleanup.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
 xen/arch/arm/irq.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
index 4bbf0b0664..02ca82c089 100644
--- a/xen/arch/arm/irq.c
+++ b/xen/arch/arm/irq.c
@@ -94,7 +94,10 @@ static int init_local_irq_data(unsigned int cpu)
         int rc = init_one_irq_desc(desc);
 
         if ( rc )
+        {
+            spin_unlock(&local_irqs_type_lock);
             return rc;
+        }
 
         desc->irq = irq;
         desc->action  = NULL;
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Sat Aug 09 16:23:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 Aug 2025 16:23:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1076038.1437761 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukmLL-0005ho-Uj; Sat, 09 Aug 2025 16:22:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1076038.1437761; Sat, 09 Aug 2025 16:22:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukmLL-0005gv-RG; Sat, 09 Aug 2025 16:22:51 +0000
Received: by outflank-mailman (input) for mailman id 1076038;
 Sat, 09 Aug 2025 16:22:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=pNAa=2V=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1ukmLK-0005fV-D9
 for xen-devel@lists.xenproject.org; Sat, 09 Aug 2025 16:22:50 +0000
Received: from fout-a8-smtp.messagingengine.com
 (fout-a8-smtp.messagingengine.com [103.168.172.151])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 10067afa-753d-11f0-b898-0df219b8e170;
 Sat, 09 Aug 2025 18:22:37 +0200 (CEST)
Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44])
 by mailfout.phl.internal (Postfix) with ESMTP id 9925CEC0102;
 Sat,  9 Aug 2025 12:22:36 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-04.internal (MEProxy); Sat, 09 Aug 2025 12:22:36 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat,
 9 Aug 2025 12:22: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>
X-Inumbo-ID: 10067afa-753d-11f0-b898-0df219b8e170
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=1754756556;
	 x=1754842956; bh=Bvpb9bB3+tIQeHs3qb+fmGsq3zBTrrLusZFuVbT98pk=; b=
	BpzEl5nIeGVmtXbxqeMvu3NwNUSk/SmMxP82lFoAhNGYMkukvNZCvm9LGQLABJ5w
	dYpaB99SFTqdBizXtBxONC0riUmXUJSuGBTR9qFcz9Yoseh7n63g3U8a6YWNh9Cv
	icD4BRehM/kRog594Kjoxzp6TPpBUgEfT2cGy7DSdyhFlS1724nhc5kztcFRXP/h
	AGWRu+2K3yWM3FpgVJFudMWYcS0qgyCOrG9/jzV4FkkMV1kM+yJhiTV21keJSeJ0
	E+bWqHDjV4Nn7uxgoc3WJs0RFgYPcud2q+X6/+HQWjHBljQFaY4MeeLp9YHLAECT
	44/dW4wNQYBWoAC7PboWeg==
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=
	1754756556; x=1754842956; bh=Bvpb9bB3+tIQeHs3qb+fmGsq3zBTrrLusZF
	uVbT98pk=; b=GWt6XrYbv3F0g3WY8XtK/OfjEEmlBc9y4rBmgJ//QVl1xok34l2
	puE2ocIt1zdwCG0ZztHlX3lIRUn0+o5n+e7SY2To/Vt7hwUURSlSpJ9LQrxF43PQ
	ISH9iVAMFM2+kKSj9VphuS7tZHyud5iM6ALmGjjGGyOFDwZSCznkMGckswasP1em
	soRe56XL0yTDHonezXAjXZQ1iZNzT9R1ya4QEsN9bmmr6xG2faPVYXbqvgWi2qj9
	3mOq1Uja9dvaS77XRWgFmiA4UXH7zd++SqOf+tMhzdAf3Zev3+5mHhy6SqVYIVxr
	1lcjoBzmh4Dytca1M6wNBz5IlLBA3zeKt3A==
X-ME-Sender: <xms:y3WXaI5pkmQBwDOYdw5Io4kkh2Er7aoqNFgExSAJ3zY60Wu_mShoqA>
    <xme:y3WXaCXg1xhq7MDOLGD3btlg4M8RXUyA8entaZ_IAraQaiffnOLNsYbxiaFpUXzE9
    sIkUAa9pZJwGw>
X-ME-Received: <xmr:y3WXaH4dVSO4yAQqAoWblI4UmLqE1XO8_w4upxzA6Iw-Fg19Xp5orb5M_BabZjLMrC2AvMME9FRQANpVjIRjRVtMdpTPFbMpbis>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgdduvdejudeiucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepveeujeet
    geelleetudeuvefhtefgffejvedtvdfgieevheetheelgeeuledvjeevnecuffhomhgrih
    hnpehgihhtlhgrsgdrtghomhenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhep
    mhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrg
    gsrdgtohhmpdhnsggprhgtphhtthhopeeipdhmohguvgepshhmthhpohhuthdprhgtphht
    thhopegrnhhthhhonhihseigvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopeigvg
    hnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtphhtthho
    pegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhrtghpthhtoheprg
    hnthhhohhnhidrphgvrhgrrhgusehvrghtvghsrdhtvggthhdprhgtphhtthhopegtrghr
    ughovgestggrrhguohgvrdgtohhmpdhrtghpthhtohepshhsthgrsggvlhhlihhniheskh
    gvrhhnvghlrdhorhhg
X-ME-Proxy: <xmx:y3WXaNqRWl4n9P0eOiz93OMAlAZiSqJ3u-ZsSXnpxsubWsseX5zw9g>
    <xmx:y3WXaKkUwptJIzLY8QDjlYpJv5QPpMfpksuQrvztH80ve1778Ex5Hw>
    <xmx:y3WXaJMYB1i8JKbZmFKSdpNMzcldUtnQ053emHK_bB901ylV9A4u4g>
    <xmx:y3WXaOOMa_uyQqGbv2yS-vS84cVmW6VCWJLKrKAZUGsHlM1_QASM1Q>
    <xmx:zHWXaE_sdxdruzVW2NYR07Oh8kn1Dipmi75vjDRBy5i0KHuqEnbsxkv7>
Feedback-ID: i1568416f:Fastmail
Date: Sat, 9 Aug 2025 18:22:33 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Anthony PERARD <anthony@xenproject.org>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN PATCH v2 1/3] CI: Rework run-tools-test exit path
Message-ID: <aJd1yaBFSjTx_wsl@mail-itl>
References: <20250730152602.45436-1-anthony@xenproject.org>
 <20250730152602.45436-2-anthony@xenproject.org>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="aMZBcusYaCrcvdhH"
Content-Disposition: inline
In-Reply-To: <20250730152602.45436-2-anthony@xenproject.org>


--aMZBcusYaCrcvdhH
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Sat, 9 Aug 2025 18:22:33 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Anthony PERARD <anthony@xenproject.org>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN PATCH v2 1/3] CI: Rework run-tools-test exit path

On Wed, Jul 30, 2025 at 05:26:00PM +0200, Anthony PERARD wrote:
> From: Anthony PERARD <anthony.perard@vates.tech>
>=20
> The main script expect to find the string "$passed" or it just timeout
> and doesn't try to download the junit file in this case. So we ignore
> the return value of run-tools-test to always print "$passed" and
> instead look for failure in the generated junit file. If the junit
> report is incomplete, this will also result in a failure of the job.
>=20
> Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>
> ---
>=20
> Notes:
>     Changes in v2:
>     - This squash both patch "CI: Ignore run-tools-test return value" and
>       "CI: Have the gitlab job fail on tools/tests failure"
>     - grep for '<failure type=3D"failure"' instead of '</failure>'
>=20
>  automation/scripts/qubes-x86-64.sh | 13 +++++++++++--
>  1 file changed, 11 insertions(+), 2 deletions(-)
>=20
> diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qube=
s-x86-64.sh
> index 2750d24eba..21dcd9b063 100755
> --- a/automation/scripts/qubes-x86-64.sh
> +++ b/automation/scripts/qubes-x86-64.sh
> @@ -135,10 +135,11 @@ done
>      ### tests: tools-tests-pv, tools-tests-pvh
>      "tools-tests-pv"|"tools-tests-pvh")
>          retrieve_xml=3D1
> -        passed=3D"test passed"
> +        passed=3D"run-tools-test over"
>          domU_check=3D""
>          dom0_check=3D"
> -/root/run-tools-tests /usr/lib/xen/tests /tmp/tests-junit.xml && echo \"=
${passed}\"
> +/root/run-tools-tests /usr/lib/xen/tests /tmp/tests-junit.xml ||:
> +echo \"${passed}\"
>  nc -l -p 8080 < /tmp/tests-junit.xml >/dev/null &
>  "
>          if [ "${test_variant}" =3D "tools-tests-pvh" ]; then
> @@ -297,6 +298,14 @@ TEST_RESULT=3D$?
> =20
>  if [ -n "$retrieve_xml" ]; then
>      nc -w 10 "$SUT_ADDR" 8080 > tests-junit.xml </dev/null
> +    # Findout if one of the test failed
> +    if ! grep -q '</testsuites>' tests-junit.xml; then
> +        echo "ERROR: tests-junit.xml is incomplete or missing."
> +        TEST_RESULT=3D1
> +    # Only match "type=3Dfailure" to allow to "tolerable" for example.
> +    elif grep -q '<failure type=3D"failure"' tests-junit.xml; then

Maybe drop -q here, or add some message? Otherwise it's not obvious why it =
failed. See for example:
https://gitlab.com/xen-project/people/marmarek/xen/-/jobs/10968674458

Yes, you can click "Test summary" link, but it isn't obvious by looking
at the final part of the log. Alternatively, this can be combined with
my "CI: list failed tests at the end of tools job" patch (already
reviewed by Andrew), but I had an impression this series is supposed to
be included instead of that one.

> +        TEST_RESULT=3D1
> +    fi
>  fi
> =20
>  exit "$TEST_RESULT"
> --=20
> Anthony PERARD
>=20

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmiXdckACgkQ24/THMrX
1yzGmAf/fyBtLTHmu1SFvpckPQHZ7F6xvSFcBmB5/8VRt8QUKOFn99AnngJLOYsK
qN9B7QgCMbnP4N8R/ioVgyofHArAuz71Ad+GXM1uw4M+fSTGe8Q7w83ecno1CzVO
8T1l7f15ExbK5cHTON65KJnMsBoMnMzcaqqbGjU5krSbfQHrKGCfz9mjyLe8NTc5
UVxpm9yrIjn1bk5xsOyKrkMRiuOdlano0tkOPmCsjuUpm8kqZitt0WHb7aQHBPdQ
PQlT9+1QkKuf5Ki52TsjmbU2jUH1sTdifxQENfCePyQHdflEI7mBaS9d5BXmfv3m
Z+/VAHeKgFxStgQ4zYSOpwNtJSRifA==
=fIyO
-----END PGP SIGNATURE-----

--aMZBcusYaCrcvdhH--


From xen-devel-bounces@lists.xenproject.org Sat Aug 09 16:23:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 Aug 2025 16:23:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1076047.1437771 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukmME-0006CM-A7; Sat, 09 Aug 2025 16:23:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1076047.1437771; Sat, 09 Aug 2025 16:23: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 1ukmME-0006CF-63; Sat, 09 Aug 2025 16:23:46 +0000
Received: by outflank-mailman (input) for mailman id 1076047;
 Sat, 09 Aug 2025 16:23:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=pNAa=2V=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1ukmMD-0005fV-1n
 for xen-devel@lists.xenproject.org; Sat, 09 Aug 2025 16:23:45 +0000
Received: from fout-a8-smtp.messagingengine.com
 (fout-a8-smtp.messagingengine.com [103.168.172.151])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 372cd2e7-753d-11f0-b898-0df219b8e170;
 Sat, 09 Aug 2025 18:23:43 +0200 (CEST)
Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44])
 by mailfout.phl.internal (Postfix) with ESMTP id 97D7FEC0225;
 Sat,  9 Aug 2025 12:23:42 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-04.internal (MEProxy); Sat, 09 Aug 2025 12:23:42 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat,
 9 Aug 2025 12:23: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>
X-Inumbo-ID: 372cd2e7-753d-11f0-b898-0df219b8e170
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=1754756622;
	 x=1754843022; bh=F0Ky5wS2PJkSBI2nzoISIIw4CjXdEK0f4y24qO0QVzY=; b=
	MRPC8DJKTKOTBFmqxh2y22cd67UENz6tYpzNhxnADruL450/mxDpkqlcrJT1XlNP
	fi0My4xQS8TfagAJzgkBBN10UwJYn5c25QMsMD9V/YLsJVIdQTI4aDXhEx3mgr0G
	LQSHPnJR19zP6X6X/opoVHSYVsG45TpOvUvbDTSoi8DylLTUb+a08sJy9Er76E3/
	BPQ1UEv2bAYo1obxeBfKOLiU2LxbacfTB7AGtnUYC+96lX5NdiZhSV0fnYMVpumb
	ztfKZaObt5uXSzBkzruCDyZ2mNRvEg9mNSVNEXBndST3QOSOryMJwiJD79mDYSuj
	Tc9j5M7FND2xKgEohBcZ6Q==
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=
	1754756622; x=1754843022; bh=F0Ky5wS2PJkSBI2nzoISIIw4CjXdEK0f4y2
	4qO0QVzY=; b=a5upKmTyEL/EtX0uYU9+mwwG13Dg8cRmNisoJqZ2QRzaXkPeQYA
	Xyvba7+t79h8oB5HfcMbz7xHp6XADk34CnGjPKMr3nv4ElXZGaaT60yDeC+LdHZU
	MZcHjq4EQwqlHzOP9rnB4+/2yFJ+UQvr4QkLKfmpV2TS1xoTLj8h/BGMWCfzrMYj
	tiDWLJoyzZnCNQul68Ggh9GafqbMNO2LF6wOc37DIc4Rw3P6P1QgFtUJ/JYWWEjc
	ROr+3Ug+QBwDFSj9ugj4bsZvKkO47qLxKNxGuTg4dN/H4boLXcJqjEa+uMPxRk4G
	u91nz3ZZjYw3+m6B7GWoNdr/9H54UDLdvvQ==
X-ME-Sender: <xms:DnaXaLq60bdfejceYDqHdhUeQqD2CR3LsrW1ffbjCSC0teDS4MFYBQ>
    <xme:DnaXaO8MdQUkrAkn-3pWdIFDxOsCUjmNAdz_Uix7lRH7GpbZoSJqb3A0g_qCoGNKC
    9IqgpmUSeYp8Q>
X-ME-Received: <xmr:DnaXaPcKPxHQKUmDPXNq3juC_k_wN5cRHwLnNLovMpp8ih16HmAvm6UMfMxa9SObWGhHTeY7OP7lvJj1oiLvfgJDKeFpOOr_sIw>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgdduvdejudeiucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfduleet
    feevhfefheeiteeliefhjefhleduveetteekveettddvgeeuteefjedunecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepiedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtoheprghnthhhohhnhiesgigvnhhprhhojhgv
    tghtrdhorhhgpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprh
    hojhgvtghtrdhorhhgpdhrtghpthhtoheprghnughrvgifrdgtohhophgvrhefsegtihht
    rhhigidrtghomhdprhgtphhtthhopegrnhhthhhonhihrdhpvghrrghrugesvhgrthgvsh
    drthgvtghhpdhrtghpthhtoheptggrrhguohgvsegtrghrughovgdrtghomhdprhgtphht
    thhopehsshhtrggsvghllhhinhhisehkvghrnhgvlhdrohhrgh
X-ME-Proxy: <xmx:DnaXaAK0ldhihGmUdaQ-3jkSloFcmh_309v2HNacadG6FOEX6yC7AA>
    <xmx:DnaXaHjnV3MxaHX3x8A0-Wyz0pxBqwGO7xdWQVl_tX2xTSDjv3T-Lw>
    <xmx:DnaXaGRi0Ye9skqsMj3pKpFzMOin8hM5FVewQ4dQVTGfVOqPQ0sTWQ>
    <xmx:DnaXaJWYAEqBmPSVPtgD0EC3G_PGSJ7BiZ4ki-WYGJE1FG8o26gOtw>
    <xmx:DnaXaFHq4C-M7boZP4tmsfFuCZ1-n63hU1cZLDRj5ika1sHsHQE85NJz>
Feedback-ID: i1568416f:Fastmail
Date: Sat, 9 Aug 2025 18:23:39 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Anthony PERARD <anthony@xenproject.org>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN PATCH v2 2/3] CI: Upload junit result as artefact
Message-ID: <aJd2C3tRE7aT9vdL@mail-itl>
References: <20250730152602.45436-1-anthony@xenproject.org>
 <20250730152602.45436-3-anthony@xenproject.org>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="KkaOKcL73dj9wRBK"
Content-Disposition: inline
In-Reply-To: <20250730152602.45436-3-anthony@xenproject.org>


--KkaOKcL73dj9wRBK
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Sat, 9 Aug 2025 18:23:39 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Anthony PERARD <anthony@xenproject.org>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN PATCH v2 2/3] CI: Upload junit result as artefact

On Wed, Jul 30, 2025 at 05:26:01PM +0200, Anthony PERARD wrote:
> From: Anthony PERARD <anthony.perard@vates.tech>
>=20
> This allows to investigate the junit file in cases of parse error.
>=20
> Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>

Reviewed-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.c=
om>
> ---
>=20
> Notes:
>     Changes in v2:
>     - more concise patch description.
>=20
>  automation/gitlab-ci/test.yaml | 1 +
>  1 file changed, 1 insertion(+)
>=20
> diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.y=
aml
> index 1f0b27b237..feb03cc7ed 100644
> --- a/automation/gitlab-ci/test.yaml
> +++ b/automation/gitlab-ci/test.yaml
> @@ -155,6 +155,7 @@
>      paths:
>        - smoke.serial
>        - '*.log'
> +      - tests-junit.xml
>      when: always
>    rules:
>      - if: $SELECTED_JOBS_ONLY && $CI_JOB_NAME =3D~ $SELECTED_JOBS_ONLY
> --=20
> Anthony PERARD
>=20

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmiXdgsACgkQ24/THMrX
1yx91wgAgZ2/JmSBI0M7PLlRNyEPrzVlVmcPGpSeHWGmXFRpaG1A7VeP75zaj0W0
j4yJ4xVHflwibNDjA4lFID1NUY63EAkEmVrzWfTRGIFOGjlMXSNWetFaMM7zmOTj
bl/X/merGFGrQA0G1SQfyfwlpg1rWr+7oR1d6PvXGIPD4iMpeN3J4SdCUkyIyJo5
jpGQleSf3N+KIesTHZpEIItGMsrVWmDPh6OIVEtTbgfLO7qu2a3KgpN1t7sUVDF5
AytXLrcM4zOUHP2FIP1KBm0u8j7CknN/ZecSu1JVXxRjg/RybueX0EfMmFuNYgs3
pyOzTornGqp5/HqBZliYFzTA3QssFQ==
=1NpR
-----END PGP SIGNATURE-----

--KkaOKcL73dj9wRBK--


From xen-devel-bounces@lists.xenproject.org Sat Aug 09 16:25:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 Aug 2025 16:25:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1076054.1437781 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukmNy-0006m1-KC; Sat, 09 Aug 2025 16:25:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1076054.1437781; Sat, 09 Aug 2025 16:25: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 1ukmNy-0006lu-Ge; Sat, 09 Aug 2025 16:25:34 +0000
Received: by outflank-mailman (input) for mailman id 1076054;
 Sat, 09 Aug 2025 16:25:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=pNAa=2V=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1ukmNw-0006lg-Ro
 for xen-devel@lists.xenproject.org; Sat, 09 Aug 2025 16:25:32 +0000
Received: from fout-a8-smtp.messagingengine.com
 (fout-a8-smtp.messagingengine.com [103.168.172.151])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 77eb4ae9-753d-11f0-a325-13f23c93f187;
 Sat, 09 Aug 2025 18:25:32 +0200 (CEST)
Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42])
 by mailfout.phl.internal (Postfix) with ESMTP id 38BB8EC0692;
 Sat,  9 Aug 2025 12:25:31 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-02.internal (MEProxy); Sat, 09 Aug 2025 12:25:31 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat,
 9 Aug 2025 12:25:29 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 77eb4ae9-753d-11f0-a325-13f23c93f187
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=1754756731;
	 x=1754843131; bh=zS+8Cb70qLjojvObOhXUZtr4XGKJjLy7vzLKSXHxvec=; b=
	lpeDdCIB/+LMT5AmxOcnKJKV+5wZ9B5Ra7VlmHyE8T3ZozSxMiyLianyZ70/YqaA
	56KGsF08+/DLX+KEkfb/V6+UTFvaUmPXGjAFGG42W7tUzA/FLDMSoJ1+T7yuXCPP
	5P7vtFw4Ii5hmmyXGRlBb5/mQxrFOLkVJPacnDOv4M/Ot7fAG2m0ECatbr2FN0Zu
	K3ZszImj+M2B0JnHuyAeq6huit3pPOJbViDAimE556jWk3qs+YUv3c9E5T03J9Ef
	NSNo10nL7r5HOvuBrKo7S4Yvv1a4GqNPRbc/t6UTwVAr6pzIg7dCR0C2vo9pIsk5
	N75sbv071hePx6axgvttNA==
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=
	1754756731; x=1754843131; bh=zS+8Cb70qLjojvObOhXUZtr4XGKJjLy7vzL
	KSXHxvec=; b=SOfatopEcc0ZZW0brlJmejXym7QQcP9DnDhconLJ1XLgu97W2vK
	rycsqLfsXN2xNa8hvhUtam2zswED0sEiFsfY/TQz1mHjHuujbmucCi8bZSYZ6hLt
	C4wWgRpCZX+1JN1Cb1bfotrFfgIHw+BrQoz95Dh2SnenXNg2xy/nVL6SdQt+Yhol
	z6+GCNF/0lmVZs2ToaCZdW0K8LlJWTY6cpluV62wa47ACPKhbTchG8/zx7IvLFIK
	YzgXoBTzFQsDvbxKYodqCRnjzyCX4Fy/Ir3Mgf79XfjU7eZuKDzHoOxYpIm/VZfb
	3iznyPJHCQLUnSvczPMKsz8RJgAFw/5sUZA==
X-ME-Sender: <xms:enaXaPmhNMM0RzB_Cc-SL3l3-VnwDmehofJ6ILv6S2GP5Pn0VxqQ6g>
    <xme:enaXaLQHPu_ZYOKgVE9dYVUaDj8_qUOP0-xsc0w9V-SC8pZrxWnAkKy8Rm2vz3RsW
    oyTEB0Etz-cmw>
X-ME-Received: <xmr:enaXaGFvMq5-vs8ZpBQNggMB4f-mudAdpzKKn0xTj2kjlc7y2kCGrSCrhSXWZXBEPmHER7BQC6DNOOM0Nxc34tAPaltWYPXeCxI>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgdduvdejudejucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfduleet
    feevhfefheeiteeliefhjefhleduveetteekveettddvgeeuteefjedunecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepiedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtoheprghnthhhohhnhiesgigvnhhprhhojhgv
    tghtrdhorhhgpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprh
    hojhgvtghtrdhorhhgpdhrtghpthhtoheprghnughrvgifrdgtohhophgvrhefsegtihht
    rhhigidrtghomhdprhgtphhtthhopegrnhhthhhonhihrdhpvghrrghrugesvhgrthgvsh
    drthgvtghhpdhrtghpthhtoheptggrrhguohgvsegtrghrughovgdrtghomhdprhgtphht
    thhopehsshhtrggsvghllhhinhhisehkvghrnhgvlhdrohhrgh
X-ME-Proxy: <xmx:enaXaIFhbK0HAr3Skm3C1YE6PZDUcSoXSbJg2Q58FWqgD096tx2u2w>
    <xmx:enaXaMSI24aAbfJHJ0fndMeXsWoHQ-dppgEgs8aPpTlrD6obfoXzrQ>
    <xmx:enaXaBLKEcMr1SB_DP9yfpc3vBNgyApysreLooq-3U9CWRyoZMWRWg>
    <xmx:enaXaPY5he2oT22-JIAKqQghVBsI0vzG_-1pzzgLfVwbn8xkzmpa6Q>
    <xmx:e3aXaMJeMiPhoZSNNEZOMx2fK3DWJengmhR4PGtcvkV2zxxdkyilPVNI>
Feedback-ID: i1568416f:Fastmail
Date: Sat, 9 Aug 2025 18:25:28 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Anthony PERARD <anthony@xenproject.org>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN PATCH v2 3/3] CI: Workaround extra content in junit
Message-ID: <aJd2eHFgiLBNiWCy@mail-itl>
References: <20250730152602.45436-1-anthony@xenproject.org>
 <20250730152602.45436-4-anthony@xenproject.org>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="ixp8jPEmCs6W2s3B"
Content-Disposition: inline
In-Reply-To: <20250730152602.45436-4-anthony@xenproject.org>


--ixp8jPEmCs6W2s3B
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Sat, 9 Aug 2025 18:25:28 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Anthony PERARD <anthony@xenproject.org>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN PATCH v2 3/3] CI: Workaround extra content in junit

On Wed, Jul 30, 2025 at 05:26:02PM +0200, Anthony PERARD wrote:
> From: Anthony PERARD <anthony.perard@vates.tech>
>=20
> Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>

Is it still an issue? AFAIR similar issue was fixed together with fixing
xml upload hanging.

> ---
>  automation/scripts/qubes-x86-64.sh | 6 ++++++
>  1 file changed, 6 insertions(+)
>=20
> diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qube=
s-x86-64.sh
> index 21dcd9b063..f1b7e02e63 100755
> --- a/automation/scripts/qubes-x86-64.sh
> +++ b/automation/scripts/qubes-x86-64.sh
> @@ -298,6 +298,12 @@ TEST_RESULT=3D$?
> =20
>  if [ -n "$retrieve_xml" ]; then
>      nc -w 10 "$SUT_ADDR" 8080 > tests-junit.xml </dev/null
> +    # Workaround duplicated data been received
> +    sed -i.old '/^<\/testsuites>/q' tests-junit.xml > /dev/null
> +    extra_line_in_junit=3D$(($(wc -l < tests-junit.xml.old) - $(wc -l < =
tests-junit.xml)))
> +    if [ $extra_line_in_junit -gt 0 ]; then
> +        echo "WARNING: Found $extra_line_in_junit too many lines in juni=
t."
> +    fi
>      # Findout if one of the test failed
>      if ! grep -q '</testsuites>' tests-junit.xml; then
>          echo "ERROR: tests-junit.xml is incomplete or missing."
> --=20
> Anthony PERARD
>=20

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmiXdngACgkQ24/THMrX
1ywVxAf/VyXVYyff+VxZWa1rxo3PwObk3mzOS4TcOZQMOcBVDuMXzZuIu79A/jC2
2ZcOCO0pjx6+/6siW6vAJm4ROA6W8rGGyGfc23SqfIcDJpNqArgB4w2Y6pEKJP4O
cWZDTucxY7aWyUElWRqsEsgkD8X7vcls4/6l1th+rzbSaEwTibWBo07plKpoW6rc
No34PV65SpL3EX7yIbHeuAJLL1jc+zkRYC1+w4KTqOvZ+BiSYne6CqwZPrWc8ZKx
PtnTtzalOIpiARVc5SXoN02h1919Yh/gD2rBPm/iM5ax4G6RR2j09tQKGzbD/v29
P1z/e8kD7JozMsiyQ0v1PQqGwIG8Zg==
=kSx7
-----END PGP SIGNATURE-----

--ixp8jPEmCs6W2s3B--


From xen-devel-bounces@lists.xenproject.org Sat Aug 09 16:53:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 Aug 2025 16:53:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1076070.1437792 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukmp4-0002Zs-Po; Sat, 09 Aug 2025 16:53:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1076070.1437792; Sat, 09 Aug 2025 16:53:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukmp4-0002Zl-KX; Sat, 09 Aug 2025 16:53:34 +0000
Received: by outflank-mailman (input) for mailman id 1076070;
 Sat, 09 Aug 2025 16:53:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9Mhn=2V=gmail.com=demiobenour@srs-se1.protection.inumbo.net>)
 id 1ukmp4-0002Zf-4q
 for xen-devel@lists.xenproject.org; Sat, 09 Aug 2025 16:53:34 +0000
Received: from mail-qk1-x72c.google.com (mail-qk1-x72c.google.com
 [2607:f8b0:4864:20::72c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6125f07d-7541-11f0-b898-0df219b8e170;
 Sat, 09 Aug 2025 18:53:31 +0200 (CEST)
Received: by mail-qk1-x72c.google.com with SMTP id
 af79cd13be357-7e81c336e10so357123685a.0
 for <xen-devel@lists.xenproject.org>; Sat, 09 Aug 2025 09:53:31 -0700 (PDT)
Received: from [10.138.10.6] ([89.187.178.201])
 by smtp.gmail.com with ESMTPSA id
 af79cd13be357-7e840d96d78sm64740685a.3.2025.08.09.09.53.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sat, 09 Aug 2025 09:53: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>
X-Inumbo-ID: 6125f07d-7541-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754758410; x=1755363210; 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=b82Zl5v+n85Fe4l4e0mlHahtdka+pmXx7LMxto17f5Q=;
        b=YSpHgzK5qCF9Sk4g0aeX/MP4kqHEIVYY/COl4stgI5AP/PHqi9huopvofDdemta3RY
         lR743nF/zccydPgqiME/NBIBtHVIwm4kgxdExZTHKtIJHvwUe/D/QO2tu4PDToyNW9oD
         euDQucnMN0qaUJ1kO+XYNXtGrNO+tZrSkzROL0dPxQAbzBjsEb6N3nVsNuKBXDXyblas
         dD85BHhLLB5As1UJFegFziO3IpT76gN4z4q5eXZzXzOP2jT1kwvrkgZA6kY1ITfyYWG4
         yb3Fcht6qtHD/p1G/HNCFWvrXbLQr5+n0GhN4S7R8gMERj2BzssQ4lrewt0p5K1ghl4D
         vgYw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754758410; x=1755363210;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=b82Zl5v+n85Fe4l4e0mlHahtdka+pmXx7LMxto17f5Q=;
        b=QDVp9wh/GXykZBe8Mu0+VvxMXf7vqj3UezhTdI0WsV2bijiZhgTVlYyrnF+ATDTRYN
         005riDQcf1BTIVIc9vQWZAKX15dyn//ubyxdkHo35ReYXPxZC/T1By52WObppR2O5rgc
         YH+qGQnLd2ZvhEtTpU0nAX942sryzBwHMojZ50TRaTJCPNie6r3arLOD4kFZHU2nN9qL
         Na9AmamL/jXJ6HngXxSeWiFXas+UhyVH67m7R9C2+AZdD7C7BEdzDuFcBwLD5qZnXis8
         rfa8tdYDtnTNUWLGBxV/ROGGEhunwuW3Z6NkXytQr3OA4tzOpLVBzEJzFJ4OTBitxYYp
         Z1Cg==
X-Forwarded-Encrypted: i=1; AJvYcCVM/e+YmzmliG5pMezkuzx2oFzhdqqTYLDJz9dLWx41YFiffesbxzEcmDQdh0RErcfI6+4+wUsEgBk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzsCYvqm93r8AtMaN/QXe9r08Fh07hDVstu+Vfolc6yTJbxh1sA
	I/HdsYM0D+f42ADSoC2jwqF7WTu1Jrk/CjW6rNiSk7pWhUGFLGKnDyWw
X-Gm-Gg: ASbGnctsBsLJ9ITeUf8C0oMYGGQJnvBFv034rh/QsymZ6zoiqIrI1MRSTiWYcV14zqX
	NILBFg/EeR90DI6rTJzxPE3BH2BGmm66H+z5vsbqF/luAaxLmFsz0pyxD1p4HWysFMWbP2pvNIs
	zh5i9M5OPH50Myd9QqhBI9mMQr3c1IY1+V7u7qZGuUqY9nk2Qk82rhDfM7HM/CsbfhbU83tI6Ej
	vxGBOp6ABRSum9mdXTCOcd/10L0AvbnYnOEryTtnsy+vawjFCKIUZIOThrQ4GCON+kr2sO9dl6p
	sBBpvnxK2V5I/fqGGQqBSb4fOI4eVTbJ3m9fSE+LTdd7enIFmNXQ7XE8hmyEZNanOgYebUbzjg7
	XR0CA27Lm2l5mxH/bKJKug7xs6iN4gLzoFd7xdA==
X-Google-Smtp-Source: AGHT+IF9oGm+vOmYY4e4ObD+uhpA4yymxsi+N6AjJ7hC/qynLLDha6S5LoqCkRbeKeqnaRxdFbffcA==
X-Received: by 2002:a05:620a:70e7:b0:7e1:ef9c:551b with SMTP id af79cd13be357-7e82c67f4b6mr814292485a.14.1754758410392;
        Sat, 09 Aug 2025 09:53:30 -0700 (PDT)
Message-ID: <6cbaa3a3-694e-4951-abb3-b88e6c9d6638@gmail.com>
Date: Sat, 9 Aug 2025 12:53:09 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 00/16] dma-mapping: migrate to physical address-based
 API
To: Jason Gunthorpe <jgg@nvidia.com>,
 Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leon@kernel.org>,
 Abdiel Janulgue <abdiel.janulgue@gmail.com>,
 Alexander Potapenko <glider@google.com>, Alex Gaynor
 <alex.gaynor@gmail.com>, Andrew Morton <akpm@linux-foundation.org>,
 Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
 iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
 Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
 Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
 kasan-dev@googlegroups.com, Keith Busch <kbusch@kernel.org>,
 linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
 linux-kernel@vger.kernel.org, linux-mm@kvack.org,
 linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
 linux-trace-kernel@vger.kernel.org, Madhavan Srinivasan
 <maddy@linux.ibm.com>, Masami Hiramatsu <mhiramat@kernel.org>,
 Michael Ellerman <mpe@ellerman.id.au>, "Michael S. Tsirkin"
 <mst@redhat.com>, Miguel Ojeda <ojeda@kernel.org>,
 Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
 Sagi Grimberg <sagi@grimberg.me>, Stefano Stabellini
 <sstabellini@kernel.org>, Steven Rostedt <rostedt@goodmis.org>,
 virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1754292567.git.leon@kernel.org>
 <CGME20250807141938eucas1p2319a0526b25db120b3c9aeb49f69cce1@eucas1p2.samsung.com>
 <20250807141929.GN184255@nvidia.com>
 <a154e058-c0e6-4208-9f52-57cec22eaf7d@samsung.com>
 <20250809133454.GP184255@nvidia.com>
Content-Language: en-US
From: Demi Marie Obenour <demiobenour@gmail.com>
Autocrypt: addr=demiobenour@gmail.com; keydata=
 xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49yB+l2nipd
 aq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYfbWpr/si88QKgyGSV
 Z7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/UorR+FaSuVwT7rqzGrTlscnT
 DlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7MMPCJwI8JpPlBedRpe9tfVyfu3euTPLPx
 wcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9Hzx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR
 6h3nBc3eyuZ+q62HS1pJ5EvUT1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl
 5FMWo8TCniHynNXsBtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2
 Bkg1b//r6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
 9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nSm9BBff0N
 m0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQABzTxEZW1pIE1hcmll
 IE9iZW5vdXIgKGxvdmVyIG9mIGNvZGluZykgPGRlbWlvYmVub3VyQGdtYWlsLmNvbT7CwXgE
 EwECACIFAlp+A0oCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJELKItV//nCLBhr8Q
 AK/xrb4wyi71xII2hkFBpT59ObLN+32FQT7R3lbZRjVFjc6yMUjOb1H/hJVxx+yo5gsSj5LS
 9AwggioUSrcUKldfA/PKKai2mzTlUDxTcF3vKx6iMXKA6AqwAw4B57ZEJoMM6egm57TV19kz
 PMc879NV2nc6+elaKl+/kbVeD3qvBuEwsTe2Do3HAAdrfUG/j9erwIk6gha/Hp9yZlCnPTX+
 VK+xifQqt8RtMqS5R/S8z0msJMI/ajNU03kFjOpqrYziv6OZLJ5cuKb3bZU5aoaRQRDzkFIR
 6aqtFLTohTo20QywXwRa39uFaOT/0YMpNyel0kdOszFOykTEGI2u+kja35g9TkH90kkBTG+a
 EWttIht0Hy6YFmwjcAxisSakBuHnHuMSOiyRQLu43ej2+mDWgItLZ48Mu0C3IG1seeQDjEYP
 tqvyZ6bGkf2Vj+L6wLoLLIhRZxQOedqArIk/Sb2SzQYuxN44IDRt+3ZcDqsPppoKcxSyd1Ny
 2tpvjYJXlfKmOYLhTWs8nwlAlSHX/c/jz/ywwf7eSvGknToo1Y0VpRtoxMaKW1nvH0OeCSVJ
 itfRP7YbiRVc2aNqWPCSgtqHAuVraBRbAFLKh9d2rKFB3BmynTUpc1BQLJP8+D5oNyb8Ts4x
 Xd3iV/uD8JLGJfYZIR7oGWFLP4uZ3tkneDfYzsFNBFp+A0oBEAC9ynZI9LU+uJkMeEJeJyQ/
 8VFkCJQPQZEsIGzOTlPnwvVna0AS86n2Z+rK7R/usYs5iJCZ55/JISWd8xD57ue0eB47bcJv
 VqGlObI2DEG8TwaW0O0duRhDgzMEL4t1KdRAepIESBEA/iPpI4gfUbVEIEQuqdqQyO4GAe+M
 kD0Hy5JH/0qgFmbaSegNTdQg5iqYjRZ3ttiswalql1/iSyv1WYeC1OAs+2BLOAT2NEggSiVO
 txEfgewsQtCWi8H1SoirakIfo45Hz0tk/Ad9ZWh2PvOGt97Ka85o4TLJxgJJqGEnqcFUZnJJ
 riwoaRIS8N2C8/nEM53jb1sH0gYddMU3QxY7dYNLIUrRKQeNkF30dK7V6JRH7pleRlf+wQcN
 fRAIUrNlatj9TxwivQrKnC9aIFFHEy/0mAgtrQShcMRmMgVlRoOA5B8RTulRLCmkafvwuhs6
 dCxN0GNAORIVVFxjx9Vn7OqYPgwiofZ6SbEl0hgPyWBQvE85klFLZLoj7p+joDY1XNQztmfA
 rnJ9x+YV4igjWImINAZSlmEcYtd+xy3Li/8oeYDAqrsnrOjb+WvGhCykJk4urBog2LNtcyCj
 kTs7F+WeXGUo0NDhbd3Z6AyFfqeF7uJ3D5hlpX2nI9no/ugPrrTVoVZAgrrnNz0iZG2DVx46
 x913pVKHl5mlYQARAQABwsFfBBgBAgAJBQJafgNKAhsMAAoJELKItV//nCLBwNIP/AiIHE8b
 oIqReFQyaMzxq6lE4YZCZNj65B/nkDOvodSiwfwjjVVE2V3iEzxMHbgyTCGA67+Bo/d5aQGj
 gn0TPtsGzelyQHipaUzEyrsceUGWYoKXYyVWKEfyh0cDfnd9diAm3VeNqchtcMpoehETH8fr
 RHnJdBcjf112PzQSdKC6kqU0Q196c4Vp5HDOQfNiDnTf7gZSj0BraHOByy9LEDCLhQiCmr+2
 E0rW4tBtDAn2HkT9uf32ZGqJCn1O+2uVfFhGu6vPE5qkqrbSE8TG+03H8ecU2q50zgHWPdHM
 OBvy3EhzfAh2VmOSTcRK+tSUe/u3wdLRDPwv/DTzGI36Kgky9MsDC5gpIwNbOJP2G/q1wT1o
 Gkw4IXfWv2ufWiXqJ+k7HEi2N1sree7Dy9KBCqb+ca1vFhYPDJfhP75I/VnzHVssZ/rYZ9+5
 1yDoUABoNdJNSGUYl+Yh9Pw9pE3Kt4EFzUlFZWbE4xKL/NPno+z4J9aWemLLszcYz/u3XnbO
 vUSQHSrmfOzX3cV4yfmjM5lewgSstoxGyTx2M8enslgdXhPthZlDnTnOT+C+OTsh8+m5tos8
 HQjaPM01MKBiAqdPgksm1wu2DrrwUi6ChRVTUBcj6+/9IJ81H2P2gJk3Ls3AVIxIffLoY34E
 +MYSfkEjBz0E8CLOcAw7JIwAaeBT
In-Reply-To: <20250809133454.GP184255@nvidia.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------ANOjCz5i1k7QI0nCYN2dEm0B"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------ANOjCz5i1k7QI0nCYN2dEm0B
Content-Type: multipart/mixed; boundary="------------Tcin0j6gTuXw4zaLOgBCLymL";
 protected-headers="v1"
From: Demi Marie Obenour <demiobenour@gmail.com>
To: Jason Gunthorpe <jgg@nvidia.com>,
 Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leon@kernel.org>,
 Abdiel Janulgue <abdiel.janulgue@gmail.com>,
 Alexander Potapenko <glider@google.com>, Alex Gaynor
 <alex.gaynor@gmail.com>, Andrew Morton <akpm@linux-foundation.org>,
 Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
 iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
 Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
 Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
 kasan-dev@googlegroups.com, Keith Busch <kbusch@kernel.org>,
 linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
 linux-kernel@vger.kernel.org, linux-mm@kvack.org,
 linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
 linux-trace-kernel@vger.kernel.org, Madhavan Srinivasan
 <maddy@linux.ibm.com>, Masami Hiramatsu <mhiramat@kernel.org>,
 Michael Ellerman <mpe@ellerman.id.au>, "Michael S. Tsirkin"
 <mst@redhat.com>, Miguel Ojeda <ojeda@kernel.org>,
 Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
 Sagi Grimberg <sagi@grimberg.me>, Stefano Stabellini
 <sstabellini@kernel.org>, Steven Rostedt <rostedt@goodmis.org>,
 virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
 xen-devel@lists.xenproject.org
Message-ID: <6cbaa3a3-694e-4951-abb3-b88e6c9d6638@gmail.com>
Subject: Re: [PATCH v1 00/16] dma-mapping: migrate to physical address-based
 API
References: <cover.1754292567.git.leon@kernel.org>
 <CGME20250807141938eucas1p2319a0526b25db120b3c9aeb49f69cce1@eucas1p2.samsung.com>
 <20250807141929.GN184255@nvidia.com>
 <a154e058-c0e6-4208-9f52-57cec22eaf7d@samsung.com>
 <20250809133454.GP184255@nvidia.com>
In-Reply-To: <20250809133454.GP184255@nvidia.com>
Autocrypt-Gossip: 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==

--------------Tcin0j6gTuXw4zaLOgBCLymL
Content-Type: multipart/mixed; boundary="------------XI3qD7GRJn9UB00QQXegC2mE"

--------------XI3qD7GRJn9UB00QQXegC2mE
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On 8/9/25 09:34, Jason Gunthorpe wrote:
> On Fri, Aug 08, 2025 at 08:51:08PM +0200, Marek Szyprowski wrote:
>> First - basing the=C2=A0API on the phys_addr_t.
>>
>> Page based API had the advantage that it was really hard to abuse it a=
nd=20
>> call for something that is not 'a normal RAM'.=20
>=20
> This is not true anymore. Today we have ZONE_DEVICE as a struct page
> type with a whole bunch of non-dram sub-types:
>=20
> enum memory_type {
> 	/* 0 is reserved to catch uninitialized type fields */
> 	MEMORY_DEVICE_PRIVATE =3D 1,
> 	MEMORY_DEVICE_COHERENT,
> 	MEMORY_DEVICE_FS_DAX,
> 	MEMORY_DEVICE_GENERIC,
> 	MEMORY_DEVICE_PCI_P2PDMA,
> };
>=20
> Few of which are kmappable/page_to_virtable() in a way that is useful
> for the DMA API.
>=20
> DMA API sort of ignores all of this and relies on the caller to not
> pass in an incorrect struct page. eg we rely on things like the block
> stack to do the right stuff when a MEMORY_DEVICE_PCI_P2PDMA is present
> in a bio_vec.
>=20
> Which is not really fundamentally different from just using
> phys_addr_t in the first place.
>=20
> Sure, this was a stronger argument when this stuff was originally
> written, before ZONE_DEVICE was invented.
>=20
>> I initially though that phys_addr_t based API will somehow simplify
>> arch specific implementation, as some of them indeed rely on
>> phys_addr_t internally, but I missed other things pointed by
>> Robin. Do we have here any alternative?
>=20
> I think it is less of a code simplification, more as a reduction in
> conceptual load. When we can say directly there is no struct page type
> anyhwere in the DMA API layers then we only have to reason about
> kmap/phys_to_virt compatibly.
>=20
> This is also a weaker overall requirement than needing an actual
> struct page which allows optimizing other parts of the kernel. Like we
> aren't forced to create MEMORY_DEVICE_PCI_P2PDMA stuct pages just to
> use the dma api.
>=20
> Again, any place in the kernel we can get rid of struct page the
> smoother the road will be for the MM side struct page restructuring.
>=20
> For example one of the bigger eventual goes here is to make a bio_vec
> store phys_addr_t, not struct page pointers.
>=20
> DMA API is not alone here, we have been de-struct-paging the kernel
> for a long time now:
>=20
> netdev: https://lore.kernel.org/linux-mm/20250609043225.77229-1-byungch=
ul@sk.com/
> slab: https://lore.kernel.org/linux-mm/20211201181510.18784-1-vbabka@su=
se.cz/
> iommmu: https://lore.kernel.org/all/0-v4-c8663abbb606+3f7-iommu_pages_j=
gg@nvidia.com/
> page tables: https://lore.kernel.org/linux-mm/20230731170332.69404-1-vi=
shal.moola@gmail.com/
> zswap: https://lore.kernel.org/all/20241216150450.1228021-1-42.hyeyoo@g=
mail.com/
>=20
> With a long term goal that struct page only exists for legacy code,
> and is maybe entirely compiled out of modern server kernels.

Why just server kernels?  I suspect client systems actually run
newer kernels than servers do.
--=20
Sincerely,
Demi Marie Obenour (she/her/hers)
--------------XI3qD7GRJn9UB00QQXegC2mE
Content-Type: application/pgp-keys; name="OpenPGP_0xB288B55FFF9C22C1.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB288B55FFF9C22C1.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

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

xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49y
B+l2nipdaq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYf
bWpr/si88QKgyGSVZ7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/
UorR+FaSuVwT7rqzGrTlscnTDlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7M
MPCJwI8JpPlBedRpe9tfVyfu3euTPLPxwcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9H
zx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR6h3nBc3eyuZ+q62HS1pJ5EvU
T1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl5FMWo8TCniHynNXs
BtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2Bkg1b//r
6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nS
m9BBff0Nm0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQAB
zTxEZW1pIE9iZW5vdXIgKElUTCBFbWFpbCBLZXkpIDxhdGhlbmFAaW52aXNpYmxl
dGhpbmdzbGFiLmNvbT7CwY4EEwEIADgWIQR2h02fEza6IlkHHHGyiLVf/5wiwQUC
X6YJvQIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRCyiLVf/5wiwWRhD/0Y
R+YYC5Kduv/2LBgQJIygMsFiRHbR4+tWXuTFqgrxxFSlMktZ6gQrQCWe38WnOXkB
oY6n/5lSJdfnuGd2UagZ/9dkaGMUkqt+5WshLFly4BnP7pSsWReKgMP7etRTwn3S
zk1OwFx2lzY1EnnconPLfPBc6rWG2moA6l0WX+3WNR1B1ndqpl2hPSjT2jUCBWDV
rGOUSX7r5f1WgtBeNYnEXPBCUUM51pFGESmfHIXQrqFDA7nBNiIVFDJTmQzuEqIy
Jl67pKNgooij5mKzRhFKHfjLRAH4mmWZlB9UjDStAfFBAoDFHwd1HL5VQCNQdqEc
/9lZDApqWuCPadZN+pGouqLysesIYsNxUhJ7dtWOWHl0vs7/3qkWmWun/2uOJMQh
ra2u8nA9g91FbOobWqjrDd6x3ZJoGQf4zLqjmn/P514gb697788e573WN/MpQ5XI
Fl7aM2d6/GJiq6LC9T2gSUW4rbPBiqOCeiUx7Kd/sVm41p9TOA7fEG4bYddCfDsN
xaQJH6VRK3NOuBUGeL+iQEVF5Xs6Yp+U+jwvv2M5Lel3EqAYo5xXTx4ls0xaxDCu
fudcAh8CMMqx3fguSb7Mi31WlnZpk0fDuWQVNKyDP7lYpwc4nCCGNKCj622ZSocH
AcQmX28L8pJdLYacv9pU3jPy4fHcQYvmTavTqowGnM08RGVtaSBNYXJpZSBPYmVu
b3VyIChsb3ZlciBvZiBjb2RpbmcpIDxkZW1pb2Jlbm91ckBnbWFpbC5jb20+wsF4
BBMBAgAiBQJafgNKAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRCyiLVf
/5wiwYa/EACv8a2+MMou9cSCNoZBQaU+fTmyzft9hUE+0d5W2UY1RY3OsjFIzm9R
/4SVccfsqOYLEo+S0vQMIIIqFEq3FCpXXwPzyimotps05VA8U3Bd7yseojFygOgK
sAMOAee2RCaDDOnoJue01dfZMzzHPO/TVdp3OvnpWipfv5G1Xg96rwbhMLE3tg6N
xwAHa31Bv4/Xq8CJOoIWvx6fcmZQpz01/lSvsYn0KrfEbTKkuUf0vM9JrCTCP2oz
VNN5BYzqaq2M4r+jmSyeXLim922VOWqGkUEQ85BSEemqrRS06IU6NtEMsF8EWt/b
hWjk/9GDKTcnpdJHTrMxTspExBiNrvpI2t+YPU5B/dJJAUxvmhFrbSIbdB8umBZs
I3AMYrEmpAbh5x7jEjoskUC7uN3o9vpg1oCLS2ePDLtAtyBtbHnkA4xGD7ar8mem
xpH9lY/i+sC6CyyIUWcUDnnagKyJP0m9ks0GLsTeOCA0bft2XA6rD6aaCnMUsndT
ctrab42CV5XypjmC4U1rPJ8JQJUh1/3P48/8sMH+3krxpJ06KNWNFaUbaMTGiltZ
7x9DngklSYrX0T+2G4kVXNmjaljwkoLahwLla2gUWwBSyofXdqyhQdwZsp01KXNQ
UCyT/Pg+aDcm/E7OMV3d4lf7g/CSxiX2GSEe6BlhSz+Lmd7ZJ3g32M1ARGVtaSBN
YXJpZSBPYmVub3VyIChJVEwgRW1haWwgS2V5KSA8ZGVtaUBpbnZpc2libGV0aGlu
Z3NsYWIuY29tPsLBjgQTAQgAOBYhBHaHTZ8TNroiWQcccbKItV//nCLBBQJgOEV+
AhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJELKItV//nCLBKwoP/1WSnFdv
SAD0g7fD0WlF+oi7ISFT7oqJnchFLOwVHK4Jg0e4hGn1ekWsF3Ha5tFLh4V/7UUu
obYJpTfBAA2CckspYBqLtKGjFxcaqjjpO1I2W/jeNELVtSYuCOZICjdNGw2Hl9yH
KRZiBkqc9u8lQcHDZKq4LIpVJj6ZQV/nxttDX90ax2No1nLLQXFbr5wb465LAPpU
lXwunYDij7xJGye+VUASQh9datye6orZYuJvNo8Tr3mAQxxkfR46LzWgxFCPEAZJ
5P56Nc0IMHdJZj0Uc9+1jxERhOGppp5jlLgYGK7faGB/jTV6LaRQ4Ad+xiqokDWp
mUOZsmA+bMbtPfYjDZBz5mlyHcIRKIFpE1l3Y8F7PhJuzzMUKkJi90CYakCV4x/a
Zs4pzk5E96c2VQx01RIEJ7fzHF7lwFdtfTS4YsLtAbQFsKayqwkGcVv2B1AHeqdo
TMX+cgDvjd1ZganGlWA8Sv9RkNSMchn1hMuTwERTyFTr2dKPnQdA1F480+jUap41
ClXgn227WkCIMrNhQGNyJsnwyzi5wS8rBVRQ3BOTMyvGM07j3axUOYaejEpg7wKi
wTPZGLGH1sz5GljD/916v5+v2xLbOo5606j9dWf5/tAhbPuqrQgWv41wuKDi+dDD
EKkODF7DHes8No+QcHTDyETMn1RYm7t0RKR4zsFNBFp+A0oBEAC9ynZI9LU+uJkM
eEJeJyQ/8VFkCJQPQZEsIGzOTlPnwvVna0AS86n2Z+rK7R/usYs5iJCZ55/JISWd
8xD57ue0eB47bcJvVqGlObI2DEG8TwaW0O0duRhDgzMEL4t1KdRAepIESBEA/iPp
I4gfUbVEIEQuqdqQyO4GAe+MkD0Hy5JH/0qgFmbaSegNTdQg5iqYjRZ3ttiswalq
l1/iSyv1WYeC1OAs+2BLOAT2NEggSiVOtxEfgewsQtCWi8H1SoirakIfo45Hz0tk
/Ad9ZWh2PvOGt97Ka85o4TLJxgJJqGEnqcFUZnJJriwoaRIS8N2C8/nEM53jb1sH
0gYddMU3QxY7dYNLIUrRKQeNkF30dK7V6JRH7pleRlf+wQcNfRAIUrNlatj9Txwi
vQrKnC9aIFFHEy/0mAgtrQShcMRmMgVlRoOA5B8RTulRLCmkafvwuhs6dCxN0GNA
ORIVVFxjx9Vn7OqYPgwiofZ6SbEl0hgPyWBQvE85klFLZLoj7p+joDY1XNQztmfA
rnJ9x+YV4igjWImINAZSlmEcYtd+xy3Li/8oeYDAqrsnrOjb+WvGhCykJk4urBog
2LNtcyCjkTs7F+WeXGUo0NDhbd3Z6AyFfqeF7uJ3D5hlpX2nI9no/ugPrrTVoVZA
grrnNz0iZG2DVx46x913pVKHl5mlYQARAQABwsFfBBgBAgAJBQJafgNKAhsMAAoJ
ELKItV//nCLBwNIP/AiIHE8boIqReFQyaMzxq6lE4YZCZNj65B/nkDOvodSiwfwj
jVVE2V3iEzxMHbgyTCGA67+Bo/d5aQGjgn0TPtsGzelyQHipaUzEyrsceUGWYoKX
YyVWKEfyh0cDfnd9diAm3VeNqchtcMpoehETH8frRHnJdBcjf112PzQSdKC6kqU0
Q196c4Vp5HDOQfNiDnTf7gZSj0BraHOByy9LEDCLhQiCmr+2E0rW4tBtDAn2HkT9
uf32ZGqJCn1O+2uVfFhGu6vPE5qkqrbSE8TG+03H8ecU2q50zgHWPdHMOBvy3Ehz
fAh2VmOSTcRK+tSUe/u3wdLRDPwv/DTzGI36Kgky9MsDC5gpIwNbOJP2G/q1wT1o
Gkw4IXfWv2ufWiXqJ+k7HEi2N1sree7Dy9KBCqb+ca1vFhYPDJfhP75I/VnzHVss
Z/rYZ9+51yDoUABoNdJNSGUYl+Yh9Pw9pE3Kt4EFzUlFZWbE4xKL/NPno+z4J9aW
emLLszcYz/u3XnbOvUSQHSrmfOzX3cV4yfmjM5lewgSstoxGyTx2M8enslgdXhPt
hZlDnTnOT+C+OTsh8+m5tos8HQjaPM01MKBiAqdPgksm1wu2DrrwUi6ChRVTUBcj
6+/9IJ81H2P2gJk3Ls3AVIxIffLoY34E+MYSfkEjBz0E8CLOcAw7JIwAaeBTzsFN
BGbyLVgBEACqClxh50hmBepTSVlan6EBq3OAoxhrAhWZYEwN78k+ENhK68KhqC5R
IsHzlL7QHW1gmfVBQZ63GnWiraM6wOJqFTL4ZWvRslga9u28FJ5XyK860mZLgYhK
9BzoUk4s+dat9jVUbq6LpQ1Ot5I9vrdzo2p1jtQ8h9WCIiFxSYy8s8pZ3hHh5T64
GIj1m/kY7lG3VIdUgoNiREGf/iOMjUFjwwE9ZoJ26j9p7p1U+TkKeF6wgswEB1T3
J8KCAtvmRtqJDq558IU5jhg5fgN+xHB8cgvUWulgK9FIF9oFxcuxtaf/juhHWKMO
RtL0bHfNdXoBdpUDZE+mLBUAxF6KSsRrvx6AQyJs7VjgXJDtQVWvH0PUmTrEswgb
49nNU+dLLZQAZagxqnZ9Dp5l6GqaGZCHERJcLmdY/EmMzSf5YazJ6c0vO8rdW27M
kn73qcWAplQn5mOXaqbfzWkAUPyUXppuRHfrjxTDz3GyJJVOeMmMrTxH4uCaGpOX
Z8tN6829J1roGw4oKDRUQsaBAeEDqizXMPRc+6U9vI5FXzbAsb+8lKW65G7JWHym
YPOGUt2hK4DdTA1PmVo0DxH00eWWeKxqvmGyX+Dhcg+5e191rPsMRGsDlH6KihI6
+3JIuc0y6ngdjcp6aalbuvPIGFrCRx3tnRtNc7He6cBWQoH9RPwluwARAQABwsOs
BBgBCgAgFiEEdodNnxM2uiJZBxxxsoi1X/+cIsEFAmbyLVgCGwICQAkQsoi1X/+c
IsHBdCAEGQEKAB0WIQSilC2pUlbVp66j3+yzNoc6synyUwUCZvItWAAKCRCzNoc6
synyU85gD/0T1QDtPhovkGwoqv4jUbEMMvpeYQf+oWgm/TjWPeLwdjl7AtY0G9Ml
ZoyGniYkoHi37Gnn/ShLT3B5vtyI58ap2+SSa8SnGftdAKRLiWFWCiAEklm9FRk8
N3hwxhmSFF1KR/AIDS4g+HIsZn7YEMubBSgLlZZ9zHl4O4vwuXlREBEW97iL/FSt
VownU2V39t7PtFvGZNk+DJH7eLO3jmNRYB0PL4JOyyda3NH/J92iwrFmjFWWmmWb
/Xz8l9DIs+Z59pRCVTTwbBEZhcUc7rVMCcIYL+q1WxBG2e6lMn15OQJ5WfiE6E0I
sGirAEDnXWx92JNGx5l+mMpdpsWhBZ5iGTtttZesibNkQfd48/eCgFi4cxJUC4PT
UQwfD9AMgzwSTGJrkI5XGy+XqxwOjL8UA0iIrtTpMh49zw46uV6kwFQCgkf32jZM
OLwLTNSzclbnA7GRd8tKwezQ/XqeK3dal2n+cOr+o+Eka7yGmGWNUqFbIe8cjj9T
JeF3mgOCmZOwMI+wIcQYRSf+e5VTMO6TNWH5BI3vqeHSt7HkYuPlHT0pGum88d4a
pWqhulH4rUhEMtirX1hYx8Q4HlUOQqLtxzmwOYWkhl1C+yPObAvUDNiHCLf9w28n
uihgEkzHt9J4VKYulyJM9fe3ENcyU6rpXD7iANQqcr87ogKXFxknZ97uEACvSucc
RbnnAgRqZ7GDzgoBerJ2zrmhLkeREZ08iz1zze1JgyW3HEwdr2UbyAuqvSADCSUU
GN0vtQHsPzWl8onRc7lOPqPDF8OO+UfN9NAfA4wl3QyChD1GXl9rwKQOkbvdlYFV
UFx9u86LNi4ssTmU8p9NtHIGpz1SYMVYNoYy9NU7EVqypGMguDCL7gJt6GUmA0sw
p+YCroXiwL2BJ7RwRqTpgQuFL1gShkA17D5jK4mDPEetq1d8kz9rQYvAR/sTKBsR
ImC3xSfn8zpWoNTTB6lnwyP5Ng1bu6esS7+SpYprFTe7ZqGZF6xhvBPf1Ldi9UAm
U2xPN1/eeWxEa2kusidmFKPmN8lcT4miiAvwGxEnY7Oww9CgZlUB+LP4dl5VPjEt
sFeAhrgxLdpVTjPRRwTd9VQF3/XYl83j5wySIQKIPXgT3sG3ngAhDhC8I8GpM36r
8WJJ3x2yVzyJUbBPO0GBhWE2xPNIfhxVoU4cGGhpFqz7dPKSTRDGq++MrFgKKGpI
ZwT3CPTSSKc7ySndEXWkOYArDIdtyxdE1p5/c3aoz4utzUU7NDHQ+vVIwlnZSMiZ
jek2IJP3SZ+COOIHCVxpUaZ4lnzWT4eDqABhMLpIzw6NmGfg+kLBJhouqz81WITr
EtJuZYM5blWncBOJCoWMnBEcTEo/viU3GgcVRw=3D=3D
=3Dx94R
-----END PGP PUBLIC KEY BLOCK-----

--------------XI3qD7GRJn9UB00QQXegC2mE--

--------------Tcin0j6gTuXw4zaLOgBCLymL--

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

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

iQIzBAEBCAAdFiEEopQtqVJW1aeuo9/sszaHOrMp8lMFAmiXfP8ACgkQszaHOrMp
8lOWXBAAnJj/H7NOyJp7v2jGgmnhKlYEqtVi6qlmJcJz14v7rr9/EaskUUoYUujH
YJp2/18HGnAPoUbUjxec8OzMRUwx1/a93C3+eCSL1AGwf46p6+oTZqMI8RKa10EN
N8Zn/HcQBQ59AAowJ/XM4UB7bbcG7iqY35SqJ4EiE638m6TkA1I8aFz4xNBS0fuA
5SdjEn7Pdy9MU5J5Isy8K6eDGwHmKOGVLw2wh7PwCOeBX+Nxy6dKs918KO+tQ5OE
V/XHQuejVDUEjzknLlJygVa8riswgiP5sEHUT3ByvPP3gR9pPxw734I5LtLKI6vT
FZHDmcBLkOKsCN7aCP17hef8GziM+krJOh2eMOaMyN6FTvRD3iUluF0TvtEqlnFY
KZ6/eb/T0W5uz++VA9hFaOlq7sLIFUKRZZqdMXPKGVWSfv90jA12s7t12/gah/SY
YKNo6UxWKoDXSZWghJ9AZulG6aXoidf4Z1OIDA/bWR7k0XPYO/ibs9HGKXxfpcC1
ic+vKawKRYsAymyBOrUPYq0tyIO8H6ZGxzSM/U1HvkPnCkcLfb+EhgN0vb10r8+L
vzcnKJc0HQrXPaW9fqEikyWD+KAmpGhUTEJZFlQaiCMk3VYK1cBx1iVi1i+cZY4S
zdJjfggKCJ9cXiQB+4wmUT3TiA+fqC/I9hplAia1eXYCQeDQiNM=
=TrA+
-----END PGP SIGNATURE-----

--------------ANOjCz5i1k7QI0nCYN2dEm0B--


From xen-devel-bounces@lists.xenproject.org Sat Aug 09 17:02:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 Aug 2025 17:02:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1076088.1437801 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukmxN-0004W8-Kx; Sat, 09 Aug 2025 17:02:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1076088.1437801; Sat, 09 Aug 2025 17:02: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 1ukmxN-0004W1-Hp; Sat, 09 Aug 2025 17:02:09 +0000
Received: by outflank-mailman (input) for mailman id 1076088;
 Sat, 09 Aug 2025 17:02:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=gHj1=2V=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1ukmxL-0004Vv-Ox
 for xen-devel@lists.xenproject.org; Sat, 09 Aug 2025 17:02:08 +0000
Received: from mail-24417.protonmail.ch (mail-24417.protonmail.ch
 [109.224.244.17]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 91e218a9-7542-11f0-b898-0df219b8e170;
 Sat, 09 Aug 2025 19:02:02 +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>
X-Inumbo-ID: 91e218a9-7542-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1754758921; x=1755018121;
	bh=RNwNYmzfw8F0e9LpcZDYhhMXFutaRzDGYY5yPsTsnYs=;
	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=WAez2JetV+gSJC4grfP5rkYNZYVw9YtDZrQcVafn/4uBu16gTuun5yYu51Rdgy3Eq
	 AQ+/UCT2m2M49UvDcnj/NWhKx9ZFo7QBr6ydt8BSFDMSGWPJzb8Ph5if82iU+pQxJs
	 FEOOlMxUBZOrVu0YyvWLQ/M6RRZXW1wdFx+N3hGz9ffpj+rDLaXo4Oux2r7UlTwPLT
	 hM2d9vck+2MsMOWE03LacYfaDsbbjBblqATOA5eXId/HEI98rvbykL7zShcjpNMCCm
	 7f2BueLlxkS5H4J3/0gOEaQmooAMGbHJT5K3Pcgr8uN1OC0ST+jBwGEcs6YGqvD5JA
	 pQARw7jFm2ZiA==
Date: Sat, 09 Aug 2025 17:01:57 +0000
To: Julien Grall <julien@xen.org>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: Re: [PATCH v14 1/4] xen/domain: unify domain ID allocation
Message-ID: <aJd/AJ6CicRik55R@kraken>
In-Reply-To: <400bf35e-65cc-40a6-ae7a-3c134e6d9c49@xen.org>
References: <20250808021938.669855-1-dmukhin@ford.com> <20250808021938.669855-2-dmukhin@ford.com> <400bf35e-65cc-40a6-ae7a-3c134e6d9c49@xen.org>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 48e33562c141b26f2b23e546d24fd92233f868a7
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Fri, Aug 08, 2025 at 06:42:03PM +0100, Julien Grall wrote:
> Hi Denis,
>=20
> On 08/08/2025 03:19, dmkhn@proton.me wrote:
> > From: Denis Mukhin <dmukhin@ford.com>
> >
> > Currently, there are two different domain ID allocation implementations=
:
> >
> >    1) Sequential IDs allocation in dom0less Arm code based on max_init_=
domid;
> >
> >    2) Sequential IDs allocation in XEN_DOMCTL_createdomain; does not us=
e
> >       max_init_domid (both Arm and x86).
> >
> > The domain ID allocation covers dom0 or late hwdom, predefined domains,
> > post-boot domains, excluding Xen system domains (domid >=3D
> > DOMID_FIRST_RESERVED).
> >
> > It makes sense to have a common helper code for such task across archit=
ectures
> > (Arm and x86) and between dom0less / toolstack domU allocation.
> >
> > Note, fixing dependency on max_init_domid is out of scope of this patch=
.
> >
> > Wrap the domain ID allocation as an arch-independent function domid_all=
oc() in
> > new common/domid.c based on the bitmap.
> >
> > Allocation algorithm:
> > - If an explicit domain ID is provided, verify its availability and use=
 it if
> >    ID is not used;
> > - If DOMID_INVALID is provided, search the range [1..DOMID_FIRST_RESERV=
ED-1],
> >    starting from the last used ID.
> >    Implementation guarantees that two consecutive calls will never retu=
rn the
> >    same ID. ID#0 is reserved for the first boot domain (currently, dom0=
) and
> >    excluded from the allocation range.
> >
> > Remove is_free_domid() helper as it is not needed now.
> >
> > No functional change intended.
> >
> > Signed-off-by: Denis Mukhin <dmukhin@ford.com>
>=20
> Reviewed-by: Julien Grall <jgrall@amazon.com>

Thank you!

>=20
> Cheers,
>=20
> --
> Julien Grall
>=20
>=20



From xen-devel-bounces@lists.xenproject.org Sat Aug 09 17:03:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 Aug 2025 17:03:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1076097.1437810 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukmys-00051q-UP; Sat, 09 Aug 2025 17:03:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1076097.1437810; Sat, 09 Aug 2025 17:03: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 1ukmys-00051j-Rl; Sat, 09 Aug 2025 17:03:42 +0000
Received: by outflank-mailman (input) for mailman id 1076097;
 Sat, 09 Aug 2025 17:03:42 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=gHj1=2V=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1ukmys-00051d-0b
 for xen-devel@lists.xenproject.org; Sat, 09 Aug 2025 17:03:42 +0000
Received: from mail-10630.protonmail.ch (mail-10630.protonmail.ch
 [79.135.106.30]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cc8c6ee6-7542-11f0-a325-13f23c93f187;
 Sat, 09 Aug 2025 19:03:40 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cc8c6ee6-7542-11f0-a325-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=2f2zkja2czcx3jpxbatzd55lfa.protonmail; t=1754759019; x=1755018219;
	bh=Q7zJ6sf0bST3mqohqkgLyO9t4SoH2/P+M4nqRjXd4d8=;
	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=IgxXmbgIAc6UI6ewuk89A/d4G1AJdvyyl493lUpHQLCwpn1N0lYV+ZhpCQ0/4teIA
	 qL+O3kU6h8nH6W5Ud9EWTqO1fLAD37AebeGSiqOcsKsibvEQ5u597QOtM+eUo/fYfL
	 zQgtJBD8jPQL9YfmAWrtKQNq9dUExAT1Y3LJoN2Q7TwOcbMA3jv6WVvw9IiPFGFzG4
	 afruwn2r9phaXvA3bSa7ck3rZf10AGbIXyHPQ8Qg1gv6tBKJjtDBEam8cTN6UdfxqD
	 G2FrBj5MP0jT3v1ehHYwP+2UjqT55TPDbGnfBvOtpbpeTi4g9vlLpNMMKmc6FwAPKE
	 IiDR7bgoqJAiw==
Date: Sat, 09 Aug 2025 17:03:34 +0000
To: Julien Grall <julien@xen.org>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: Re: [PATCH v14 3/4] tools/tests: introduce unit tests for domain ID allocator
Message-ID: <aJd/Yha2Rih9FyMw@kraken>
In-Reply-To: <230593d5-f3a2-4be8-973a-530c2debcb08@xen.org>
References: <20250808021938.669855-1-dmukhin@ford.com> <20250808021938.669855-4-dmukhin@ford.com> <230593d5-f3a2-4be8-973a-530c2debcb08@xen.org>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 28dfc7dac1275fc42928ad150f4a0c3f300a8aaf
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Fri, Aug 08, 2025 at 06:56:16PM +0100, Julien Grall wrote:
> Hi Denis,
>=20
> On 08/08/2025 03:20, dmkhn@proton.me wrote:
> > From: Denis Mukhin <dmukhin@ford.com>
> >
> > Introduce some basic infrastructure for doing domain ID allocation unit=
 tests,
> > and add a few tests that ensure correctness of the domain ID allocator.
>=20
> I am quite happy to see more unit tests for Xen :).
>=20
> >
> > Use <xen-tools/bitops.h> and xen/lib/find-next-bit.c in test hardness c=
ode.
> >
> > Adjust find-next-bit.c to be compiled with __XEN_TOOLS__.
> >
> > Signed-off-by: Denis Mukhin <dmukhin@ford.com>
>=20
> With a couple of remarks below:
>=20
> Acked-by: Julien Grall <jgrall@amazon.com>
>=20
> > ---
> > Changes since v13:
> > - reworked bitops integration
> > - hooked xen/lib/find-next-bit.c
> > - cleaned up harness.h code
> > - made test to use more IDs
> > ---
> >   tools/include/xen-tools/bitops.h       | 10 +++
> >   tools/tests/Makefile                   |  2 +-
> >   tools/tests/domid/.gitignore           |  2 +
> >   tools/tests/domid/Makefile             | 56 +++++++++++++++++
> >   tools/tests/domid/harness.h            | 54 ++++++++++++++++
> >   tools/tests/domid/include/xen/domain.h |  1 +
> >   tools/tests/domid/test-domid.c         | 86 +++++++++++++++++++++++++=
+
> >   xen/lib/find-next-bit.c                |  5 ++
> >   8 files changed, 215 insertions(+), 1 deletion(-)
> >   create mode 100644 tools/tests/domid/.gitignore
> >   create mode 100644 tools/tests/domid/Makefile
> >   create mode 100644 tools/tests/domid/harness.h
> >   create mode 120000 tools/tests/domid/include/xen/domain.h
> >   create mode 100644 tools/tests/domid/test-domid.c
> >
> > diff --git a/tools/include/xen-tools/bitops.h b/tools/include/xen-tools=
/bitops.h
> > index 681482f6759f..3b98fba6d74c 100644
> > --- a/tools/include/xen-tools/bitops.h
> > +++ b/tools/include/xen-tools/bitops.h
> > @@ -12,6 +12,16 @@
> >   #define BITS_PER_LONG 32
> >   #endif
> >
> > +#define ffsl(x)       __builtin_ffsl(x)
> > +
> > +#define BIT_WORD(nr)  ((nr) / BITS_PER_LONG)
> > +
> > +#define BITS_TO_LONGS(bits) \
> > +    (((bits) + BITS_PER_LONG - 1) / BITS_PER_LONG)
> > +
> > +#define DECLARE_BITMAP(name, bits) \
> > +    unsigned long name[BITS_TO_LONGS(bits)]
> > +
> >   #define BITMAP_ENTRY(_nr,_bmap) ((_bmap))[(_nr) / 8]
> >   #define BITMAP_SHIFT(_nr) ((_nr) % 8)
> >
> > diff --git a/tools/tests/Makefile b/tools/tests/Makefile
> > index 36928676a666..ff1666425436 100644
> > --- a/tools/tests/Makefile
> > +++ b/tools/tests/Makefile
> > @@ -1,7 +1,7 @@
> >   XEN_ROOT =3D $(CURDIR)/../..
> >   include $(XEN_ROOT)/tools/Rules.mk
> >
> > -SUBDIRS-y :=3D
> > +SUBDIRS-y :=3D domid
>=20
> I would prefer if we keep SUBDIRST-y :=3D as it is and add a new line
> SUBDIRS-y +=3D. This is mostly to reduce the chance that someone will add
> a new directory "abc" and forgot to update the line containing "domid".

Ack.

>=20
> >   SUBDIRS-y +=3D resource
> >   SUBDIRS-$(CONFIG_X86) +=3D cpu-policy
> >   SUBDIRS-$(CONFIG_X86) +=3D tsx
> > diff --git a/tools/tests/domid/.gitignore b/tools/tests/domid/.gitignor=
e
> > new file mode 100644
> > index 000000000000..70e306b3c074
> > --- /dev/null
> > +++ b/tools/tests/domid/.gitignore
> > @@ -0,0 +1,2 @@
> > +*.o
> > +test-domid
> > diff --git a/tools/tests/domid/Makefile b/tools/tests/domid/Makefile
> > new file mode 100644
> > index 000000000000..d96ceca6d954
> > --- /dev/null
> > +++ b/tools/tests/domid/Makefile
> > @@ -0,0 +1,56 @@
> > +# SPDX-License-Identifier: GPL-2.0-only
> > +#
> > +# Unit tests for domain ID allocator.
> > +#
> > +# Copyright 2025 Ford Motor Company
> > +
> > +XEN_ROOT=3D$(CURDIR)/../../..
> > +include $(XEN_ROOT)/tools/Rules.mk
> > +
> > +TESTS :=3D test-domid
> > +
> > +vpath domid.c $(XEN_ROOT)/xen/common/
> > +vpath find-next-bit.c $(XEN_ROOT)/xen/lib/
> > +
> > +.PHONY: all
> > +all: $(TESTS)
> > +
> > +.PHONY: run
> > +run: $(TESTS)
> > +=09$(foreach t,$(TESTS),./$(t);)
> > +
> > +.PHONY: clean
> > +clean:
> > +=09$(RM) -- *.o $(TESTS) $(DEPS_RM)
> > +
> > +.PHONY: distclean
> > +distclean: clean
> > +=09$(RM) -- *~
> > +
> > +.PHONY: install
> > +install: all
> > +=09$(INSTALL_DIR) $(DESTDIR)$(LIBEXEC)/tests
> > +=09$(INSTALL_PROG) test-domid $(DESTDIR)$(LIBEXEC)/tests
> > +
> > +.PHONY: uninstall
> > +uninstall:
> > +=09$(RM) -- $(DESTDIR)$(LIBEXEC)/tests/test-domid
> > +
> > +CFLAGS +=3D -D__XEN_TOOLS__
> > +# find-next-bit.c
> > +CFLAGS +=3D '-DEXPORT_SYMBOL(x)=3D' \
> > +          -Dfind_first_bit \
> > +          -Dfind_first_zero_bit \
> > +          -Dfind_next_bit \
> > +          -Dfind_next_bit_le \
> > +          -Dfind_next_zero_bit_le
> > +CFLAGS +=3D $(APPEND_CFLAGS)
> > +CFLAGS +=3D $(CFLAGS_xeninclude)
> > +CFLAGS +=3D -I./include/
> > +
> > +LDFLAGS +=3D $(APPEND_LDFLAGS)
> > +
> > +test-domid: domid.o find-next-bit.o test-domid.o
> > +=09$(CC) $^ -o $@ $(LDFLAGS)
> > +
> > +-include $(DEPS_INCLUDE)
> > diff --git a/tools/tests/domid/harness.h b/tools/tests/domid/harness.h
> > new file mode 100644
> > index 000000000000..b043519dcb35
> > --- /dev/null
> > +++ b/tools/tests/domid/harness.h
> > @@ -0,0 +1,54 @@
> > +/* SPDX-License-Identifier: GPL-2.0-only */
> > +/*
> > + * Unit test harness for domain ID allocator.
> > + *
> > + * Copyright 2025 Ford Motor Company
> > + */
> > +
> > +#ifndef _TEST_HARNESS_
> > +#define _TEST_HARNESS_
> > +
> > +#include <assert.h>
> > +#include <stdbool.h>
> > +#include <stdint.h>
> > +#include <stdio.h>
> > +
> > +#include <xen-tools/common-macros.h>
> > +#include <xen-tools/bitops.h>
> > +
> > +typedef bool spinlock_t;
> > +typedef uint16_t domid_t;
> > +
> > +extern domid_t domid_alloc(domid_t domid);
> > +extern void domid_free(domid_t domid);
> > +
> > +extern unsigned long find_next_zero_bit(const unsigned long *addr,
> > +                                        unsigned long size,
> > +                                        unsigned long offset);
> > +
> > +#define __test_and_set_bit(nr, addr)    test_and_set_bit(nr, addr)
> > +#define __test_and_clear_bit(nr, addr)  test_and_clear_bit(nr, addr)
> > +#define __set_bit(nr, addr)             set_bit(nr, addr)
> > +
> > +#define BUG_ON(x)                       assert(!(x))
> > +#define ASSERT(x)                       assert(x)
> > +
> > +#define DEFINE_SPINLOCK(l)              spinlock_t l
> > +#define spin_lock(l)                    (*(l) =3D true)
> > +#define spin_unlock(l)                  (*(l) =3D false)
>=20
> NIT: For hardening purpose, I wonder whether we should also assert that
> "l" is "false" for spin_lock() and "true" for spin_unlock(). This would
> help catching any bug in the locking.

Good idea! Will do.

>=20
> > +
> > +#define printk                          printf
> > +
> > +#define DOMID_FIRST_RESERVED            (100)
> > +#define DOMID_INVALID                   (101)
> > +
> > +#endif /* _TEST_HARNESS_ */
> > +
> > +/*
> > + * Local variables:
> > + * mode: C
> > + * c-file-style: "BSD"
> > + * c-basic-offset: 4
> > + * indent-tabs-mode: nil
> > + * End:
> > + */
> > diff --git a/tools/tests/domid/include/xen/domain.h b/tools/tests/domid=
/include/xen/domain.h
> > new file mode 120000
> > index 000000000000..2eda9aed088e
> > --- /dev/null
> > +++ b/tools/tests/domid/include/xen/domain.h
> > @@ -0,0 +1 @@
> > +../../harness.h
> > \ No newline at end of file
> > diff --git a/tools/tests/domid/test-domid.c b/tools/tests/domid/test-do=
mid.c
> > new file mode 100644
> > index 000000000000..7b6fb5ee2a7b
> > --- /dev/null
> > +++ b/tools/tests/domid/test-domid.c
> > @@ -0,0 +1,86 @@
> > +/* SPDX-License-Identifier: GPL-2.0-only */
> > +/*
> > + * Unit tests for domain ID allocator.
> > + *
> > + * Copyright 2025 Ford Motor Company
> > + */
> > +
> > +#include "harness.h"
> > +
> > +#define verify(exp, fmt, args...) do { \
> > +    if ( !(exp) ) \
> > +        printf(fmt, ## args); \
> > +    assert(exp); \
> > +} while (0);
> > +
> > +/*
> > + * Fail on the first error, since tests are dependent on each other.
> > + */
> > +int main(int argc, char **argv)
> > +{
> > +    domid_t expected, allocated;
> > +
> > +    /* Test ID#0 cannot be allocated twice. */
>=20
> For future improvement, we could check that for any domid [0;
> DOMID_FIRST_RESERVED[, we can allocate domid_alloc().
>=20
> This would also confirm that domid_alloc() *only* allocates *one* ID.

Will update.

>=20
> Cheers,
>=20
> --
> Julien Grall
>=20
>=20



From xen-devel-bounces@lists.xenproject.org Sat Aug 09 17:04:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 Aug 2025 17:04:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1076101.1437821 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukmzJ-0005SL-5h; Sat, 09 Aug 2025 17:04:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1076101.1437821; Sat, 09 Aug 2025 17:04: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 1ukmzJ-0005SE-2y; Sat, 09 Aug 2025 17:04:09 +0000
Received: by outflank-mailman (input) for mailman id 1076101;
 Sat, 09 Aug 2025 17:04:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=gHj1=2V=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1ukmzI-0005It-1q
 for xen-devel@lists.xenproject.org; Sat, 09 Aug 2025 17:04:08 +0000
Received: from mail-10628.protonmail.ch (mail-10628.protonmail.ch
 [79.135.106.28]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dbc1a8c5-7542-11f0-b898-0df219b8e170;
 Sat, 09 Aug 2025 19:04:06 +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>
X-Inumbo-ID: dbc1a8c5-7542-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1754759045; x=1755018245;
	bh=CeN47zJMWBPURCftni0LFkpjN7se1ih1MjMEkeLXVD8=;
	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=QoNk6Y0+0ySeSNyKf67YpTwGmf5F7AFkg+p4QBMkqNnIpGENDCY3D+A6mmvMku6sM
	 W7Or97VARyGLNtLtp8dNxWK0g9gwyTorvBhFZP4B216Dx/scZ6ouqqc5dfWg9B7qj3
	 HVdOjiDJGqan/bTId54lRkI6twpoaFx6V9MwoiWWLJBJQ2fHaOoKu5Jg/Px3Zoxuyx
	 S8maelWcyjWv05EnMkHFig+jKfm7sYQ2haz71sHhpZsfEuBv4Ym1AvJGBCUNe2UqbT
	 bYBYQdJTkG88XxxkQNAnRp2DrPbEq/ZLelts2ygARH/+l5vL1KAbtrwDdc5stndb2F
	 T4e3L6ywXvITQ==
Date: Sat, 09 Aug 2025 17:04:02 +0000
To: Julien Grall <julien@xen.org>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: Re: [PATCH v14 3/4] tools/tests: introduce unit tests for domain ID allocator
Message-ID: <aJd/fUPtOJNkpZsS@kraken>
In-Reply-To: <44b43350-8c0a-497d-b0b0-034a548afac0@xen.org>
References: <20250808021938.669855-1-dmukhin@ford.com> <20250808021938.669855-4-dmukhin@ford.com> <230593d5-f3a2-4be8-973a-530c2debcb08@xen.org> <44b43350-8c0a-497d-b0b0-034a548afac0@xen.org>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: b5eb2d535fa435f7938c3c275b26d557ce4ffd1a
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Fri, Aug 08, 2025 at 06:57:07PM +0100, Julien Grall wrote:
>=20
>=20
> On 08/08/2025 18:56, Julien Grall wrote:
> > Hi Denis,
> >
> > On 08/08/2025 03:20, dmkhn@proton.me wrote:
> >> From: Denis Mukhin <dmukhin@ford.com>
> >>
> >> Introduce some basic infrastructure for doing domain ID allocation
> >> unit tests,
> >> and add a few tests that ensure correctness of the domain ID allocator=
.
> >
> > I am quite happy to see more unit tests for Xen :).
> >
> >>
> >> Use <xen-tools/bitops.h> and xen/lib/find-next-bit.c in test hardness
> >> code.
> >>
> >> Adjust find-next-bit.c to be compiled with __XEN_TOOLS__.
> >>
> >> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> >
> > With a couple of remarks below:
> >
> > Acked-by: Julien Grall <jgrall@amazon.com>
>=20
> Actually, this should have been a Reviewed-by tag. Sorry.

Thanks for review!

>=20
> Cheers,
>=20
> --
> Julien Grall
>=20



From xen-devel-bounces@lists.xenproject.org Sat Aug 09 17:08:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 Aug 2025 17:08:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1076114.1437831 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukn37-00067n-MB; Sat, 09 Aug 2025 17:08:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1076114.1437831; Sat, 09 Aug 2025 17:08:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukn37-00067g-IP; Sat, 09 Aug 2025 17:08:05 +0000
Received: by outflank-mailman (input) for mailman id 1076114;
 Sat, 09 Aug 2025 17:08:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=gHj1=2V=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1ukn35-00067a-PE
 for xen-devel@lists.xenproject.org; Sat, 09 Aug 2025 17:08:03 +0000
Received: from mail-10629.protonmail.ch (mail-10629.protonmail.ch
 [79.135.106.29]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 67e89545-7543-11f0-b898-0df219b8e170;
 Sat, 09 Aug 2025 19:08:01 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 67e89545-7543-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1754759280; x=1755018480;
	bh=dzTeda/nVcjDcwXZrveSqaXuvzDFXQyXrX9LBVAs2EA=;
	h=Date:To:From:Cc:Subject:Message-ID:Feedback-ID:From:To:Cc:Date:
	 Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector;
	b=KEd8hT5Y4xZesDM+yVEbTJasB9Ef110DLAUr/hXHP7jzSehRjsxwJ7Pu30NISex0g
	 cPqKqEIlSZWCASsTqWbpzMAw46R5m09cYl210iCrTOOGy3/+vhWvfe6rS1H/ITSbdb
	 x84dcpyNWRYIMmydgOCvp7d+GwasTA1xyO+NWz0E8AklwqA+fEVZafUOPi+G5v+mR4
	 Xm7XuDGaY3Q+W+LbEX5tmy4C4H2Fog78God6NtnYALJdrvZKDJCA4G2ha5CtI/a1gs
	 6sJjRCvBXYLFqXbSv4qJG0+E3Y39nbC0ODJ6ZP07a+Hu6FyUzcFVGV1yPca3QK6aFF
	 rn6wMzHwGaGsw==
Date: Sat, 09 Aug 2025 17:07:54 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
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 v15 0/4] xen/domain: domain ID allocation
Message-ID: <20250809170747.1836880-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 6067f08f202a416a9cbbc37624dbd050faf2b452
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Patch 1 introduces new domid_{alloc,free} calls.
Patch 2 is a prep change for domain ID allocator test.
Patch 3 introduces some basic testing for domain ID allocator.
Patch 4 adjusts create_dom0() messages (use %pd).

Link to v14: https://lore.kernel.org/xen-devel/20250808021938.669855-1-dmuk=
hin@ford.com/
Link to CI: https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelines/1=
975302322

Denis Mukhin (4):
  xen/domain: unify domain ID allocation
  tools/include: move xc_bitops.h to xen-tools/bitops.h
  tools/tests: introduce unit tests for domain ID allocator
  xen/domain: update create_dom0() messages

 .../xen-tools/bitops.h}                       | 16 +++-
 tools/libs/ctrl/xc_misc.c                     | 13 +--
 tools/libs/guest/xg_dom_elfloader.c           |  3 +-
 tools/libs/guest/xg_dom_hvmloader.c           |  3 +-
 tools/libs/guest/xg_private.h                 |  2 +-
 tools/libs/guest/xg_sr_common.h               |  3 +-
 tools/tests/Makefile                          |  1 +
 tools/tests/domid/.gitignore                  |  2 +
 tools/tests/domid/Makefile                    | 56 +++++++++++
 tools/tests/domid/harness.h                   | 54 +++++++++++
 tools/tests/domid/include/xen/domain.h        |  1 +
 tools/tests/domid/test-domid.c                | 93 ++++++++++++++++++
 xen/arch/arm/domain_build.c                   | 13 ++-
 xen/arch/x86/setup.c                          | 11 ++-
 xen/common/Makefile                           |  1 +
 xen/common/device-tree/dom0less-build.c       | 15 +--
 xen/common/domain.c                           |  2 +
 xen/common/domctl.c                           | 43 ++-------
 xen/common/domid.c                            | 95 +++++++++++++++++++
 xen/include/xen/domain.h                      |  3 +
 xen/lib/find-next-bit.c                       |  5 +
 21 files changed, 369 insertions(+), 66 deletions(-)
 rename tools/{libs/ctrl/xc_bitops.h =3D> include/xen-tools/bitops.h} (84%)
 create mode 100644 tools/tests/domid/.gitignore
 create mode 100644 tools/tests/domid/Makefile
 create mode 100644 tools/tests/domid/harness.h
 create mode 120000 tools/tests/domid/include/xen/domain.h
 create mode 100644 tools/tests/domid/test-domid.c
 create mode 100644 xen/common/domid.c

--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Sat Aug 09 17:08:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 Aug 2025 17:08:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1076115.1437841 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukn3C-0006N0-SB; Sat, 09 Aug 2025 17:08:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1076115.1437841; Sat, 09 Aug 2025 17:08: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 1ukn3C-0006Mt-P5; Sat, 09 Aug 2025 17:08:10 +0000
Received: by outflank-mailman (input) for mailman id 1076115;
 Sat, 09 Aug 2025 17:08:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=gHj1=2V=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1ukn3B-00067a-Lq
 for xen-devel@lists.xenproject.org; Sat, 09 Aug 2025 17:08:09 +0000
Received: from mail-24417.protonmail.ch (mail-24417.protonmail.ch
 [109.224.244.17]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6b9ceb37-7543-11f0-b898-0df219b8e170;
 Sat, 09 Aug 2025 19:08: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>
X-Inumbo-ID: 6b9ceb37-7543-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1754759286; x=1755018486;
	bh=SIdwdVJMczv7eycxkorGAFaR8S3DOIfzCzEqXquOhjc=;
	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=OP7SALR6Ck4tZy8RWLxJSFbh5xcyHTJKXysIMjwEksVhtLPZYGHxBps99/aqdG6j7
	 m8GsKaRoKxIrxxt97k/K5a5k9hF8UU4RoOyM+AUCbVfccVwlXrP5DkYme4vb9iKorc
	 an0IgAzXspvqGCIaRhiCwtKxQOTwTDQy3IPl72Gmwi/kxEcvt0DOqFJE2jES79qdE5
	 oXkEmmx+HlXNONKsRMv1HDuTK37col1r1i3oaQRJK7t2X7bT5WS4nBU3IocgGGmunp
	 x7Ay217r6SbTqtKuWR0EAoRxQP1vvU+UJdGncHXekkwChIUMN3DNYlY/0QOwjFy9It
	 /hbQ4W/4CvsJw==
Date: Sat, 09 Aug 2025 17:08:00 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
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, Julien Grall <jgrall@amazon.com>
Subject: [PATCH v15 1/4] xen/domain: unify domain ID allocation
Message-ID: <20250809170747.1836880-2-dmukhin@ford.com>
In-Reply-To: <20250809170747.1836880-1-dmukhin@ford.com>
References: <20250809170747.1836880-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 05b805dc0fe4ec16df1426ce341da2ba6ef2eb99
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>=20

Currently, there are two different domain ID allocation implementations:

  1) Sequential IDs allocation in dom0less Arm code based on max_init_domid=
;

  2) Sequential IDs allocation in XEN_DOMCTL_createdomain; does not use
     max_init_domid (both Arm and x86).

The domain ID allocation covers dom0 or late hwdom, predefined domains,
post-boot domains, excluding Xen system domains (domid >=3D
DOMID_FIRST_RESERVED).

It makes sense to have a common helper code for such task across architectu=
res
(Arm and x86) and between dom0less / toolstack domU allocation.

Note, fixing dependency on max_init_domid is out of scope of this patch.

Wrap the domain ID allocation as an arch-independent function domid_alloc()=
 in
new common/domid.c based on the bitmap.

Allocation algorithm:
- If an explicit domain ID is provided, verify its availability and use it =
if
  ID is not used;
- If DOMID_INVALID is provided, search the range [1..DOMID_FIRST_RESERVED-1=
],
  starting from the last used ID.
  Implementation guarantees that two consecutive calls will never return th=
e
  same ID. ID#0 is reserved for the first boot domain (currently, dom0) and
  excluded from the allocation range.

Remove is_free_domid() helper as it is not needed now.

No functional change intended.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
Reviewed-by: Julien Grall <jgrall@amazon.com>
---
Changes since v14:
- added Julien's R-b
---
 xen/arch/arm/domain_build.c             |  7 +-
 xen/arch/x86/setup.c                    |  7 +-
 xen/common/Makefile                     |  1 +
 xen/common/device-tree/dom0less-build.c | 15 ++--
 xen/common/domain.c                     |  2 +
 xen/common/domctl.c                     | 43 ++---------
 xen/common/domid.c                      | 95 +++++++++++++++++++++++++
 xen/include/xen/domain.h                |  3 +
 8 files changed, 126 insertions(+), 47 deletions(-)
 create mode 100644 xen/common/domid.c

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 463ae4474d30..789f2b9d3ce7 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -2050,6 +2050,7 @@ void __init create_dom0(void)
         .grant_opts =3D XEN_DOMCTL_GRANT_version(opt_gnttab_max_version),
     };
     unsigned int flags =3D CDF_privileged | CDF_hardware;
+    domid_t domid;
     int rc;
=20
     /* The vGIC for DOM0 is exactly emulating the hardware GIC */
@@ -2074,7 +2075,11 @@ void __init create_dom0(void)
     if ( !llc_coloring_enabled )
         flags |=3D CDF_directmap;
=20
-    dom0 =3D domain_create(0, &dom0_cfg, flags);
+    domid =3D domid_alloc(0);
+    if ( domid =3D=3D DOMID_INVALID )
+        panic("Error allocating domain ID 0\n");
+
+    dom0 =3D domain_create(domid, &dom0_cfg, flags);
     if ( IS_ERR(dom0) )
         panic("Error creating domain 0 (rc =3D %ld)\n", PTR_ERR(dom0));
=20
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 1543dd251cc6..398da734c0c5 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1047,8 +1047,11 @@ static struct domain *__init create_dom0(struct boot=
_info *bi)
     if ( iommu_enabled )
         dom0_cfg.flags |=3D XEN_DOMCTL_CDF_iommu;
=20
-    /* Create initial domain.  Not d0 for pvshim. */
-    bd->domid =3D get_initial_domain_id();
+    /* Allocate initial domain ID.  Not d0 for pvshim. */
+    bd->domid =3D domid_alloc(get_initial_domain_id());
+    if ( bd->domid =3D=3D DOMID_INVALID )
+        panic("Error allocating domain ID %u\n", get_initial_domain_id());
+
     d =3D domain_create(bd->domid, &dom0_cfg,
                       pv_shim ? 0 : CDF_privileged | CDF_hardware);
     if ( IS_ERR(d) )
diff --git a/xen/common/Makefile b/xen/common/Makefile
index c316957fcb36..0c7d0f5d46e1 100644
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -11,6 +11,7 @@ obj-$(filter-out $(CONFIG_X86),$(CONFIG_ACPI)) +=3D devic=
e.o
 obj-$(CONFIG_DEVICE_TREE_PARSE) +=3D device-tree/
 obj-$(CONFIG_IOREQ_SERVER) +=3D dm.o
 obj-y +=3D domain.o
+obj-y +=3D domid.o
 obj-y +=3D event_2l.o
 obj-y +=3D event_channel.o
 obj-$(CONFIG_EVTCHN_FIFO) +=3D event_fifo.o
diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tr=
ee/dom0less-build.c
index 6bb038111de9..f4b6b515d2d2 100644
--- a/xen/common/device-tree/dom0less-build.c
+++ b/xen/common/device-tree/dom0less-build.c
@@ -833,6 +833,7 @@ void __init create_domUs(void)
     {
         struct kernel_info ki =3D KERNEL_INFO_INIT;
         int rc =3D parse_dom0less_node(node, &ki.bd);
+        domid_t domid;
=20
         if ( rc =3D=3D -ENOENT )
             continue;
@@ -842,13 +843,13 @@ void __init create_domUs(void)
         if ( (max_init_domid + 1) >=3D DOMID_FIRST_RESERVED )
             panic("No more domain IDs available\n");
=20
-        /*
-         * The variable max_init_domid is initialized with zero, so here i=
t's
-         * very important to use the pre-increment operator to call
-         * domain_create() with a domid > 0. (domid =3D=3D 0 is reserved f=
or Dom0)
-         */
-        ki.bd.d =3D domain_create(++max_init_domid,
-                                &ki.bd.create_cfg, ki.bd.create_flags);
+        domid =3D domid_alloc(DOMID_INVALID);
+        if ( domid =3D=3D DOMID_INVALID )
+            panic("Error allocating ID for domain %s\n", dt_node_name(node=
));
+
+        max_init_domid =3D max(max_init_domid, domid);
+
+        ki.bd.d =3D domain_create(domid, &ki.bd.create_cfg, ki.bd.create_f=
lags);
         if ( IS_ERR(ki.bd.d) )
             panic("Error creating domain %s (rc =3D %ld)\n",
                   dt_node_name(node), PTR_ERR(ki.bd.d));
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 5241a1629eeb..a7e303253d1a 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -692,6 +692,8 @@ static void _domain_destroy(struct domain *d)
=20
     lock_profile_deregister_struct(LOCKPROF_TYPE_PERDOM, d);
=20
+    domid_free(d->domain_id);
+
     free_domain_struct(d);
 }
=20
diff --git a/xen/common/domctl.c b/xen/common/domctl.c
index f2a7caaf853c..71e712c1f316 100644
--- a/xen/common/domctl.c
+++ b/xen/common/domctl.c
@@ -51,20 +51,6 @@ static int xenctl_bitmap_to_nodemask(nodemask_t *nodemas=
k,
                                    MAX_NUMNODES);
 }
=20
-static inline int is_free_domid(domid_t dom)
-{
-    struct domain *d;
-
-    if ( dom >=3D DOMID_FIRST_RESERVED )
-        return 0;
-
-    if ( (d =3D rcu_lock_domain_by_id(dom)) =3D=3D NULL )
-        return 1;
-
-    rcu_unlock_domain(d);
-    return 0;
-}
-
 void getdomaininfo(struct domain *d, struct xen_domctl_getdomaininfo *info=
)
 {
     struct vcpu *v;
@@ -423,36 +409,19 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u=
_domctl)
=20
     case XEN_DOMCTL_createdomain:
     {
-        domid_t        dom;
-        static domid_t rover =3D 0;
+        /* NB: ID#0 is reserved, find the first suitable ID instead. */
+        domid_t domid =3D domid_alloc(op->domain ?: DOMID_INVALID);
=20
-        dom =3D op->domain;
-        if ( (dom > 0) && (dom < DOMID_FIRST_RESERVED) )
+        if ( domid =3D=3D DOMID_INVALID )
         {
             ret =3D -EEXIST;
-            if ( !is_free_domid(dom) )
-                break;
-        }
-        else
-        {
-            for ( dom =3D rover + 1; dom !=3D rover; dom++ )
-            {
-                if ( dom =3D=3D DOMID_FIRST_RESERVED )
-                    dom =3D 1;
-                if ( is_free_domid(dom) )
-                    break;
-            }
-
-            ret =3D -ENOMEM;
-            if ( dom =3D=3D rover )
-                break;
-
-            rover =3D dom;
+            break;
         }
=20
-        d =3D domain_create(dom, &op->u.createdomain, false);
+        d =3D domain_create(domid, &op->u.createdomain, false);
         if ( IS_ERR(d) )
         {
+            domid_free(domid);
             ret =3D PTR_ERR(d);
             d =3D NULL;
             break;
diff --git a/xen/common/domid.c b/xen/common/domid.c
new file mode 100644
index 000000000000..7839a2885810
--- /dev/null
+++ b/xen/common/domid.c
@@ -0,0 +1,95 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Domain ID allocator.
+ *
+ * Covers dom0 or late hwdom, predefined domains, post-boot domains.
+ * Excludes system domains (ID >=3D DOMID_FIRST_RESERVED).
+ *
+ * Copyright 2025 Ford Motor Company
+ */
+
+#include <xen/domain.h>
+
+static DEFINE_SPINLOCK(domid_lock);
+static DECLARE_BITMAP(domid_bitmap, DOMID_FIRST_RESERVED);
+
+/*
+ * Allocate domain ID.
+ *
+ * @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] rang=
e,
+ *   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 allocat=
ion
+ *   range.
+ * @return Valid domain ID in case of successful allocation,
+ *         DOMID_INVALID - otherwise.
+ */
+domid_t domid_alloc(domid_t domid)
+{
+    static domid_t domid_last;
+
+    spin_lock(&domid_lock);
+
+    /* Exact match. */
+    if ( domid < DOMID_FIRST_RESERVED )
+    {
+        if ( __test_and_set_bit(domid, domid_bitmap) )
+            domid =3D DOMID_INVALID;
+    }
+    /*
+     * Exhaustive search.
+     *
+     * Domain ID#0 is reserved for the first boot domain (e.g. control dom=
ain)
+     * and excluded from allocation.
+     */
+    else
+    {
+        domid_t num =3D DOMID_FIRST_RESERVED;
+
+        domid =3D find_next_zero_bit(domid_bitmap, num, domid_last + 1);
+        if ( domid =3D=3D num && domid_last !=3D 0 )
+        {
+            num =3D domid_last + 1;
+            domid =3D find_next_zero_bit(domid_bitmap, num, 1);
+        }
+
+        ASSERT(domid <=3D DOMID_FIRST_RESERVED);
+        if ( domid < num )
+        {
+            __set_bit(domid, domid_bitmap);
+            domid_last =3D domid;
+        }
+        else
+            domid =3D DOMID_INVALID;
+    }
+
+    spin_unlock(&domid_lock);
+
+    return domid;
+}
+
+void domid_free(domid_t domid)
+{
+    int rc;
+
+    ASSERT(domid <=3D DOMID_FIRST_RESERVED);
+
+    spin_lock(&domid_lock);
+    rc =3D __test_and_clear_bit(domid, domid_bitmap);
+    spin_unlock(&domid_lock);
+
+    ASSERT(rc);
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
index e10baf2615fd..8aab05ae93c8 100644
--- a/xen/include/xen/domain.h
+++ b/xen/include/xen/domain.h
@@ -38,6 +38,9 @@ void arch_get_domain_info(const struct domain *d,
=20
 domid_t get_initial_domain_id(void);
=20
+domid_t domid_alloc(domid_t domid);
+void domid_free(domid_t domid);
+
 /* CDF_* constant. Internal flags for domain creation. */
 /* Is this a privileged domain? */
 #define CDF_privileged           (1U << 0)
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Sat Aug 09 17:08:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 Aug 2025 17:08:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1076116.1437851 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukn3F-0006dB-5K; Sat, 09 Aug 2025 17:08:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1076116.1437851; Sat, 09 Aug 2025 17: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 1ukn3F-0006d3-2b; Sat, 09 Aug 2025 17:08:13 +0000
Received: by outflank-mailman (input) for mailman id 1076116;
 Sat, 09 Aug 2025 17:08:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=gHj1=2V=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1ukn3E-0006aV-3U
 for xen-devel@lists.xenproject.org; Sat, 09 Aug 2025 17:08:12 +0000
Received: from mail-10630.protonmail.ch (mail-10630.protonmail.ch
 [79.135.106.30]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6dbe049d-7543-11f0-a325-13f23c93f187;
 Sat, 09 Aug 2025 19:08:11 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6dbe049d-7543-11f0-a325-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1754759290; x=1755018490;
	bh=Es84L8oRwrgAkzEhly87rLnuqCOooOEEWtnGCIZmB6A=;
	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=WTSzYoMP9V7IJp1Rh9QQnJL9ONTxWH9qwQPz277vOywCRB/bIgjCjv1SlFTWhB41b
	 VEkr5JcaQX2fZVRkd0YeC14RBVNlG9Exmh+RIZxE3S3i3aOBgcyrMTVT3/a0Vg9NO5
	 mL9OMGXqBehFyMtLKC53rpwFLOB26jqXy1TrbxMcn6N0vus4upR2Dm8YtEXn/8A2Xv
	 bZ33Vg8quXB7KMcs/i4Vry/oB0bVG941oZUNdUdOpRUGPRjVdibvIy1GLTHpZv0W71
	 K0dL555ftowf9/cU2Ii1FHx+q+zxQyj6+SRcGxHSNcEjAzJUWv2YwRFYAelHCsS6Du
	 N1pFBNDsokNRw==
Date: Sat, 09 Aug 2025 17:08:07 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
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 v15 2/4] tools/include: move xc_bitops.h to xen-tools/bitops.h
Message-ID: <20250809170747.1836880-3-dmukhin@ford.com>
In-Reply-To: <20250809170747.1836880-1-dmukhin@ford.com>
References: <20250809170747.1836880-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: baf432781d20edcac9d3e8e20312925e4e1bf7cb
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>=20

Move xc_bitops.h to common tools location to be shared between
the toolstack and unit test code.

Adjust the guard in xen-tools/bitops.h

Correct the #include directives and comments referring to the old
xc_bitops.h in the toolstack code.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v14:
- n/a
---
 .../ctrl/xc_bitops.h =3D> include/xen-tools/bitops.h} |  6 +++---
 tools/libs/ctrl/xc_misc.c                           | 13 +++++++------
 tools/libs/guest/xg_dom_elfloader.c                 |  3 ++-
 tools/libs/guest/xg_dom_hvmloader.c                 |  3 ++-
 tools/libs/guest/xg_private.h                       |  2 +-
 tools/libs/guest/xg_sr_common.h                     |  3 +--
 6 files changed, 16 insertions(+), 14 deletions(-)
 rename tools/{libs/ctrl/xc_bitops.h =3D> include/xen-tools/bitops.h} (95%)

diff --git a/tools/libs/ctrl/xc_bitops.h b/tools/include/xen-tools/bitops.h
similarity index 95%
rename from tools/libs/ctrl/xc_bitops.h
rename to tools/include/xen-tools/bitops.h
index 4a776dc3a57f..681482f6759f 100644
--- a/tools/libs/ctrl/xc_bitops.h
+++ b/tools/include/xen-tools/bitops.h
@@ -1,5 +1,5 @@
-#ifndef XC_BITOPS_H
-#define XC_BITOPS_H 1
+#ifndef __XEN_TOOLS_BITOPS_H__
+#define __XEN_TOOLS_BITOPS_H__
=20
 /* bitmap operations for single threaded access */
=20
@@ -81,4 +81,4 @@ static inline void bitmap_or(void *_dst, const void *_oth=
er,
         dst[i] |=3D other[i];
 }
=20
-#endif  /* XC_BITOPS_H */
+#endif  /* __XEN_TOOLS_BITOPS_H__ */
diff --git a/tools/libs/ctrl/xc_misc.c b/tools/libs/ctrl/xc_misc.c
index 33e87bac2868..10ddf85667a9 100644
--- a/tools/libs/ctrl/xc_misc.c
+++ b/tools/libs/ctrl/xc_misc.c
@@ -17,8 +17,8 @@
  * License along with this library; If not, see <http://www.gnu.org/licens=
es/>.
  */
=20
-#include "xc_bitops.h"
 #include "xc_private.h"
+#include <xen-tools/bitops.h>
 #include <xen/hvm/hvm_op.h>
=20
 int xc_get_max_cpus(xc_interface *xch)
@@ -94,11 +94,12 @@ xc_cpumap_t xc_cpumap_alloc(xc_interface *xch)
 }
=20
 /*
- * xc_bitops.h has macros that do this as well - however they assume that
- * the bitmask is word aligned but xc_cpumap_t is only guaranteed to be
- * byte aligned and so we need byte versions for architectures which do
- * not support misaligned accesses (which is basically everyone
- * but x86, although even on x86 it can be inefficient).
+ * <xen-tools/bitops.h> has macros that do this as well - however they
+ * assume that the bitmask is word aligned but xc_cpumap_t is only
+ * guaranteed to be byte aligned and so we need byte versions for
+ * architectures which do not support misaligned accesses (which is
+ * basically everyone but x86, although even on x86 it can be
+ * inefficient).
  *
  * NOTE: The xc_bitops macros now use byte alignment.
  * TODO: Clean up the users of this interface.
diff --git a/tools/libs/guest/xg_dom_elfloader.c b/tools/libs/guest/xg_dom_=
elfloader.c
index f17930d98bf7..8531e90f8e21 100644
--- a/tools/libs/guest/xg_dom_elfloader.c
+++ b/tools/libs/guest/xg_dom_elfloader.c
@@ -25,8 +25,9 @@
 #include <stdarg.h>
 #include <inttypes.h>
=20
+#include <xen-tools/bitops.h>
+
 #include "xg_private.h"
-#include "xc_bitops.h"
=20
 #define XEN_VER "xen-3.0"
=20
diff --git a/tools/libs/guest/xg_dom_hvmloader.c b/tools/libs/guest/xg_dom_=
hvmloader.c
index 39e1e5f579a7..0f569c20c522 100644
--- a/tools/libs/guest/xg_dom_hvmloader.c
+++ b/tools/libs/guest/xg_dom_hvmloader.c
@@ -24,8 +24,9 @@
 #include <inttypes.h>
 #include <assert.h>
=20
+#include <xen-tools/bitops.h>
+
 #include "xg_private.h"
-#include "xc_bitops.h"
=20
 /* -----------------------------------------------------------------------=
- */
 /* parse elf binary                                                       =
  */
diff --git a/tools/libs/guest/xg_private.h b/tools/libs/guest/xg_private.h
index d73947094f2e..285229cf82a3 100644
--- a/tools/libs/guest/xg_private.h
+++ b/tools/libs/guest/xg_private.h
@@ -28,9 +28,9 @@
 #include <sys/stat.h>
=20
 #include "xc_private.h"
-#include "xc_bitops.h"
 #include "xenguest.h"
=20
+#include <xen-tools/bitops.h>
 #include <xen/memory.h>
 #include <xen/elfnote.h>
 #include <xen/libelf/libelf.h>
diff --git a/tools/libs/guest/xg_sr_common.h b/tools/libs/guest/xg_sr_commo=
n.h
index 2f058ee3a6ff..2e583f2eac72 100644
--- a/tools/libs/guest/xg_sr_common.h
+++ b/tools/libs/guest/xg_sr_common.h
@@ -2,11 +2,10 @@
 #define __COMMON__H
=20
 #include <stdbool.h>
+#include <xen-tools/bitops.h>
=20
 #include "xg_private.h"
 #include "xg_save_restore.h"
-#include "xc_bitops.h"
-
 #include "xg_sr_stream_format.h"
=20
 /* String representation of Domain Header types. */
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Sat Aug 09 17:08:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 Aug 2025 17:08:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1076121.1437861 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukn3S-0007EP-Eu; Sat, 09 Aug 2025 17:08:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1076121.1437861; Sat, 09 Aug 2025 17:08:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukn3S-0007EG-Bg; Sat, 09 Aug 2025 17:08:26 +0000
Received: by outflank-mailman (input) for mailman id 1076121;
 Sat, 09 Aug 2025 17:08:24 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=gHj1=2V=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1ukn3Q-00067a-GP
 for xen-devel@lists.xenproject.org; Sat, 09 Aug 2025 17:08:24 +0000
Received: from mail-4316.protonmail.ch (mail-4316.protonmail.ch [185.70.43.16])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 729b6eaf-7543-11f0-b898-0df219b8e170;
 Sat, 09 Aug 2025 19:08:19 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 729b6eaf-7543-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=kuzy6lodpvdb7aowi7jungvymu.protonmail; t=1754759298; x=1755018498;
	bh=QIoDWNQvjB0vbubD3Q49dV/LoY+Oz8PxC/SZyX5a+h8=;
	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=UuwnSDOwq4q36HjWOKuLmgYllt37Gny8YB4Oi+7y/P5Bl+R52Q0AIxQSWZ9hw5dvp
	 sG070horqC6MLd7FKdiqGg3FUXxiuCQ2SsbuXf4Li7u+D9iBxldUbLL6XyYf2xSczZ
	 YnqWO0cYlk+V8D6w6ALzOWoyxVI2ZDtz+CoukEaARL0R3il6JcE747HtwTn9CHP37B
	 4t7N1cSgx6Y/vwDp5N71qHl94YAVQ/CoYWN0Zl0FhPGcpCwFMnODbf3RG3rfUeraIF
	 M8APCPmfZz+gMVTbLTyWylzcVo0Tpz8pxoS6Rw+PB8SUOEqsGQu2yHM+j/UByynIHA
	 ncUu2qIwvYyGg==
Date: Sat, 09 Aug 2025 17:08:13 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
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, Julien Grall <jgrall@amazon.com>
Subject: [PATCH v15 3/4] tools/tests: introduce unit tests for domain ID allocator
Message-ID: <20250809170747.1836880-4-dmukhin@ford.com>
In-Reply-To: <20250809170747.1836880-1-dmukhin@ford.com>
References: <20250809170747.1836880-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 4686383e3422d33880488c4f47c0d279d9d8ee00
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>=20

Introduce some basic infrastructure for doing domain ID allocation unit tes=
ts,
and add a few tests that ensure correctness of the domain ID allocator.

Use <xen-tools/bitops.h> and xen/lib/find-next-bit.c in test hardness code.

Adjust find-next-bit.c to be compiled with __XEN_TOOLS__.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
Reviewed-by: Julien Grall <jgrall@amazon.com>
---
Changes since v14:
- addressed NITs from v14's review
- extended the test for exact IDs allocation (trivial change)
- added Julien's R-b=20
---
 tools/include/xen-tools/bitops.h       | 10 +++
 tools/tests/Makefile                   |  1 +
 tools/tests/domid/.gitignore           |  2 +
 tools/tests/domid/Makefile             | 56 ++++++++++++++++
 tools/tests/domid/harness.h            | 54 +++++++++++++++
 tools/tests/domid/include/xen/domain.h |  1 +
 tools/tests/domid/test-domid.c         | 93 ++++++++++++++++++++++++++
 xen/lib/find-next-bit.c                |  5 ++
 8 files changed, 222 insertions(+)
 create mode 100644 tools/tests/domid/.gitignore
 create mode 100644 tools/tests/domid/Makefile
 create mode 100644 tools/tests/domid/harness.h
 create mode 120000 tools/tests/domid/include/xen/domain.h
 create mode 100644 tools/tests/domid/test-domid.c

diff --git a/tools/include/xen-tools/bitops.h b/tools/include/xen-tools/bit=
ops.h
index 681482f6759f..3b98fba6d74c 100644
--- a/tools/include/xen-tools/bitops.h
+++ b/tools/include/xen-tools/bitops.h
@@ -12,6 +12,16 @@
 #define BITS_PER_LONG 32
 #endif
=20
+#define ffsl(x)       __builtin_ffsl(x)
+
+#define BIT_WORD(nr)  ((nr) / BITS_PER_LONG)
+
+#define BITS_TO_LONGS(bits) \
+    (((bits) + BITS_PER_LONG - 1) / BITS_PER_LONG)
+
+#define DECLARE_BITMAP(name, bits) \
+    unsigned long name[BITS_TO_LONGS(bits)]
+
 #define BITMAP_ENTRY(_nr,_bmap) ((_bmap))[(_nr) / 8]
 #define BITMAP_SHIFT(_nr) ((_nr) % 8)
=20
diff --git a/tools/tests/Makefile b/tools/tests/Makefile
index 36928676a666..94fa80c16880 100644
--- a/tools/tests/Makefile
+++ b/tools/tests/Makefile
@@ -2,6 +2,7 @@ XEN_ROOT =3D $(CURDIR)/../..
 include $(XEN_ROOT)/tools/Rules.mk
=20
 SUBDIRS-y :=3D
+SUBDIRS-y +=3D domid
 SUBDIRS-y +=3D resource
 SUBDIRS-$(CONFIG_X86) +=3D cpu-policy
 SUBDIRS-$(CONFIG_X86) +=3D tsx
diff --git a/tools/tests/domid/.gitignore b/tools/tests/domid/.gitignore
new file mode 100644
index 000000000000..70e306b3c074
--- /dev/null
+++ b/tools/tests/domid/.gitignore
@@ -0,0 +1,2 @@
+*.o
+test-domid
diff --git a/tools/tests/domid/Makefile b/tools/tests/domid/Makefile
new file mode 100644
index 000000000000..d96ceca6d954
--- /dev/null
+++ b/tools/tests/domid/Makefile
@@ -0,0 +1,56 @@
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# Unit tests for domain ID allocator.
+#
+# Copyright 2025 Ford Motor Company
+
+XEN_ROOT=3D$(CURDIR)/../../..
+include $(XEN_ROOT)/tools/Rules.mk
+
+TESTS :=3D test-domid
+
+vpath domid.c $(XEN_ROOT)/xen/common/
+vpath find-next-bit.c $(XEN_ROOT)/xen/lib/
+
+.PHONY: all
+all: $(TESTS)
+
+.PHONY: run
+run: $(TESTS)
+=09$(foreach t,$(TESTS),./$(t);)
+
+.PHONY: clean
+clean:
+=09$(RM) -- *.o $(TESTS) $(DEPS_RM)
+
+.PHONY: distclean
+distclean: clean
+=09$(RM) -- *~
+
+.PHONY: install
+install: all
+=09$(INSTALL_DIR) $(DESTDIR)$(LIBEXEC)/tests
+=09$(INSTALL_PROG) test-domid $(DESTDIR)$(LIBEXEC)/tests
+
+.PHONY: uninstall
+uninstall:
+=09$(RM) -- $(DESTDIR)$(LIBEXEC)/tests/test-domid
+
+CFLAGS +=3D -D__XEN_TOOLS__
+# find-next-bit.c
+CFLAGS +=3D '-DEXPORT_SYMBOL(x)=3D' \
+          -Dfind_first_bit \
+          -Dfind_first_zero_bit \
+          -Dfind_next_bit \
+          -Dfind_next_bit_le \
+          -Dfind_next_zero_bit_le
+CFLAGS +=3D $(APPEND_CFLAGS)
+CFLAGS +=3D $(CFLAGS_xeninclude)
+CFLAGS +=3D -I./include/
+
+LDFLAGS +=3D $(APPEND_LDFLAGS)
+
+test-domid: domid.o find-next-bit.o test-domid.o
+=09$(CC) $^ -o $@ $(LDFLAGS)
+
+-include $(DEPS_INCLUDE)
diff --git a/tools/tests/domid/harness.h b/tools/tests/domid/harness.h
new file mode 100644
index 000000000000..17eb22a9a854
--- /dev/null
+++ b/tools/tests/domid/harness.h
@@ -0,0 +1,54 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Unit test harness for domain ID allocator.
+ *
+ * Copyright 2025 Ford Motor Company
+ */
+
+#ifndef _TEST_HARNESS_
+#define _TEST_HARNESS_
+
+#include <assert.h>
+#include <stdbool.h>
+#include <stdint.h>
+#include <stdio.h>
+
+#include <xen-tools/common-macros.h>
+#include <xen-tools/bitops.h>
+
+typedef bool spinlock_t;
+typedef uint16_t domid_t;
+
+extern domid_t domid_alloc(domid_t domid);
+extern void domid_free(domid_t domid);
+
+extern unsigned long find_next_zero_bit(const unsigned long *addr,
+                                        unsigned long size,
+                                        unsigned long offset);
+
+#define __test_and_set_bit(nr, addr)    test_and_set_bit(nr, addr)
+#define __test_and_clear_bit(nr, addr)  test_and_clear_bit(nr, addr)
+#define __set_bit(nr, addr)             set_bit(nr, addr)
+
+#define BUG_ON(x)                       assert(!(x))
+#define ASSERT(x)                       assert(x)
+
+#define DEFINE_SPINLOCK(l)              spinlock_t l
+#define spin_lock(l)                    (assert(!*(l)), *(l) =3D true)
+#define spin_unlock(l)                  (assert(*(l)), *(l) =3D false)
+
+#define printk                          printf
+
+#define DOMID_FIRST_RESERVED            (100)
+#define DOMID_INVALID                   (101)
+
+#endif /* _TEST_HARNESS_ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/tools/tests/domid/include/xen/domain.h b/tools/tests/domid/inc=
lude/xen/domain.h
new file mode 120000
index 000000000000..2eda9aed088e
--- /dev/null
+++ b/tools/tests/domid/include/xen/domain.h
@@ -0,0 +1 @@
+../../harness.h
\ No newline at end of file
diff --git a/tools/tests/domid/test-domid.c b/tools/tests/domid/test-domid.=
c
new file mode 100644
index 000000000000..51a88a6a9550
--- /dev/null
+++ b/tools/tests/domid/test-domid.c
@@ -0,0 +1,93 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Unit tests for domain ID allocator.
+ *
+ * Copyright 2025 Ford Motor Company
+ */
+
+#include "harness.h"
+
+#define verify(exp, fmt, args...) do { \
+    if ( !(exp) ) \
+        printf(fmt, ## args); \
+    assert(exp); \
+} while (0);
+
+/*
+ * Fail on the first error, since tests are dependent on each other.
+ */
+int main(int argc, char **argv)
+{
+    domid_t expected, allocated;
+
+    /* Test ID cannot be allocated twice. */
+    for ( expected =3D 0; expected < DOMID_FIRST_RESERVED; expected++ )
+    {
+        allocated =3D domid_alloc(expected);
+        verify(allocated =3D=3D expected,
+               "TEST 1: expected %u allocated %u\n", expected, allocated);
+    }
+    for ( expected =3D 0; expected < DOMID_FIRST_RESERVED; expected++ )
+    {
+        allocated =3D domid_alloc(expected);
+        verify(allocated =3D=3D DOMID_INVALID,
+               "TEST 2: expected %u allocated %u\n", DOMID_INVALID, alloca=
ted);
+    }
+
+    /* Ensure all IDs, including ID#0 are not allocated. */
+    for ( expected =3D 0; expected < DOMID_FIRST_RESERVED; expected++ )
+        domid_free(expected);
+
+    /*
+     * Test that that two consecutive calls of domid_alloc(DOMID_INVALID)
+     * will never return the same ID.
+     * NB: ID#0 is reserved and shall not be allocated by
+     * domid_alloc(DOMID_INVALID).
+     */
+    for ( expected =3D 1; expected < DOMID_FIRST_RESERVED; expected++ )
+    {
+        allocated =3D domid_alloc(DOMID_INVALID);
+        verify(allocated =3D=3D expected,
+               "TEST 3: expected %u allocated %u\n", expected, allocated);
+    }
+    for ( expected =3D 1; expected < DOMID_FIRST_RESERVED; expected++ )
+    {
+        allocated =3D domid_alloc(DOMID_INVALID);
+        verify(allocated =3D=3D DOMID_INVALID,
+               "TEST 4: expected %u allocated %u\n", DOMID_INVALID, alloca=
ted);
+    }
+
+    /* Re-allocate first ID from [1..DOMID_FIRST_RESERVED/2]. */
+    for ( expected =3D 1; expected < DOMID_FIRST_RESERVED / 2; expected++ =
)
+        domid_free(expected);
+    for ( expected =3D 1; expected < DOMID_FIRST_RESERVED / 2; expected++ =
)
+    {
+        allocated =3D domid_alloc(DOMID_INVALID);
+        verify(allocated =3D=3D expected,
+               "TEST 5: expected %u allocated %u\n", expected, allocated);
+    }
+
+    /* Re-allocate last ID from [1..DOMID_FIRST_RESERVED - 1]. */
+    expected =3D DOMID_FIRST_RESERVED - 1;
+    domid_free(DOMID_FIRST_RESERVED - 1);
+    allocated =3D domid_alloc(DOMID_INVALID);
+    verify(allocated =3D=3D expected,
+           "TEST 6: expected %u allocated %u\n", expected, allocated);
+
+    /* Allocate an invalid ID. */
+    expected =3D DOMID_INVALID;
+    allocated =3D domid_alloc(DOMID_FIRST_RESERVED);
+    verify(allocated =3D=3D expected,
+           "TEST 7: expected %u allocated %u\n", expected, allocated);
+
+    return 0;
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/lib/find-next-bit.c b/xen/lib/find-next-bit.c
index 9b8d7814f20c..539c7f2022b0 100644
--- a/xen/lib/find-next-bit.c
+++ b/xen/lib/find-next-bit.c
@@ -8,8 +8,13 @@
  * as published by the Free Software Foundation; either version
  * 2 of the License, or (at your option) any later version.
  */
+
+#ifdef __XEN_TOOLS__
+#include <xen-tools/bitops.h>
+#else
 #include <xen/bitops.h>
 #include <xen/byteorder.h>
+#endif
=20
 #define __ffs(x) (ffsl(x) - 1)
 #define ffz(x) __ffs(~(x))
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Sat Aug 09 17:08:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 Aug 2025 17:08:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1076130.1437871 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukn3Y-0007cp-N6; Sat, 09 Aug 2025 17:08:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1076130.1437871; Sat, 09 Aug 2025 17: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 1ukn3Y-0007ci-J1; Sat, 09 Aug 2025 17:08:32 +0000
Received: by outflank-mailman (input) for mailman id 1076130;
 Sat, 09 Aug 2025 17:08:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=gHj1=2V=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1ukn3W-00067a-Kj
 for xen-devel@lists.xenproject.org; Sat, 09 Aug 2025 17:08:30 +0000
Received: from mail-24418.protonmail.ch (mail-24418.protonmail.ch
 [109.224.244.18]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 77be217e-7543-11f0-b898-0df219b8e170;
 Sat, 09 Aug 2025 19:08: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>
X-Inumbo-ID: 77be217e-7543-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1754759307; x=1755018507;
	bh=ExFqjWjqjBKIkst9TjGPeYZbHwQVcQbFc9c45DPIdPw=;
	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=T1gKrSUhD10gMR/Wh0kd43tRjLerGP22zAUN/pnrNLCaovAvOEwowwcdViRb8PA4V
	 D9X1AGwZ25IYLI6k0gbvGi4S2stDMdIX8RU+BpHdZi2Faw7NgsryN+99hB+b+04RVF
	 Y7A4184Ag6h/Yc8uSZyCxAMPvHK68iexGI0jGMGPyAFTBBKB5CO6Yx2gZMXt/aWK5N
	 YBHWKOeGpxHbPeScP530LLyYwlcoYZiDtWaTwA0Sl5fTgZxP8LRyIDFZmod6i+CsY3
	 IDsuSSj58+iIH9Gfa0A2LqzCPiTHLmnndMWkV/Cf7JxUG0cGyCbdbireGaTHIXknZg
	 zNTljc+rutuDA==
Date: Sat, 09 Aug 2025 17:08:20 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
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, Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Julien Grall <jgrall@amazon.com>
Subject: [PATCH v15 4/4] xen/domain: update create_dom0() messages
Message-ID: <20250809170747.1836880-5-dmukhin@ford.com>
In-Reply-To: <20250809170747.1836880-1-dmukhin@ford.com>
References: <20250809170747.1836880-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: e32306d32ff33ac3514e7b7e19bddf676a2d82ee
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>=20

Use %pd for domain identification in error/panic messages in create_dom0().

No functional change.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
Reviewed-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Julien Grall <jgrall@amazon.com>
---
Changes since v14:
- added Julien's A-b
---
 xen/arch/arm/domain_build.c | 6 +++---
 xen/arch/x86/setup.c        | 4 ++--
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 789f2b9d3ce7..02a15d160962 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -2084,14 +2084,14 @@ void __init create_dom0(void)
         panic("Error creating domain 0 (rc =3D %ld)\n", PTR_ERR(dom0));
=20
     if ( llc_coloring_enabled && (rc =3D dom0_set_llc_colors(dom0)) )
-        panic("Error initializing LLC coloring for domain 0 (rc =3D %d)\n"=
, rc);
+        panic("Error initializing LLC coloring for %pd (rc =3D %d)\n", dom=
0, rc);
=20
     if ( vcpu_create(dom0, 0) =3D=3D NULL )
-        panic("Error creating domain 0 vcpu0\n");
+        panic("Error creating %pdv0\n", dom0);
=20
     rc =3D construct_dom0(dom0);
     if ( rc )
-        panic("Could not set up DOM0 guest OS (rc =3D %d)\n", rc);
+        panic("Could not set up %pd guest OS (rc =3D %d)\n", dom0, rc);
=20
     set_xs_domain(dom0);
 }
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 398da734c0c5..bf21c55f7193 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1084,7 +1084,7 @@ static struct domain *__init create_dom0(struct boot_=
info *bi)
=20
         if ( (strlen(acpi_param) =3D=3D 0) && acpi_disabled )
         {
-            printk("ACPI is disabled, notifying Domain 0 (acpi=3Doff)\n");
+            printk("ACPI is disabled, notifying %pd (acpi=3Doff)\n", d);
             safe_strcpy(acpi_param, "off");
         }
=20
@@ -1099,7 +1099,7 @@ static struct domain *__init create_dom0(struct boot_=
info *bi)
=20
     bd->d =3D d;
     if ( construct_dom0(bd) !=3D 0 )
-        panic("Could not construct domain 0\n");
+        panic("Could not construct %pd\n", d);
=20
     bd->cmdline =3D NULL;
     xfree(cmdline);
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Sat Aug 09 17:15:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 Aug 2025 17:15:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1076159.1437881 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uknA3-0001rO-BH; Sat, 09 Aug 2025 17:15:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1076159.1437881; Sat, 09 Aug 2025 17:15: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 1uknA3-0001rH-7B; Sat, 09 Aug 2025 17:15:15 +0000
Received: by outflank-mailman (input) for mailman id 1076159;
 Sat, 09 Aug 2025 17:15:14 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=gHj1=2V=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1uknA2-0001rB-0U
 for xen-devel@lists.xenproject.org; Sat, 09 Aug 2025 17:15:14 +0000
Received: from mail-10631.protonmail.ch (mail-10631.protonmail.ch
 [79.135.106.31]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6929d338-7544-11f0-a325-13f23c93f187;
 Sat, 09 Aug 2025 19:15:13 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6929d338-7544-11f0-a325-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1754759712; x=1755018912;
	bh=thanlJuksLNx6tanpBgKgBiIGs9aSMKVMgh72IminGE=;
	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=b8+GPoqdm+/6I5vBnZUuonjTdbJ3Jxx/28dTIRk0/AXuKi7JaH1rPe2B2TxtZL68k
	 ZYqenzlENMJSNJIf/f1dNuefZx7ScarLbbsnzCen/ahMyF6SFQPE0K1cyV6lSe0kV0
	 nvq16NQR6Yupg3z062BjOnAz3HptGiITXjj0VvltVcnD5qDgiROYvsrFlDRcROXO7l
	 Cuocu9wv8r4JD4kVDVpXoNlCJ9zqCFGe9TVlcZAd8KBASDZvfN6f/+KeksWRqFqs9F
	 x0VzhN9jzhYfgIobktfuyH6oaiBJDy29m60UHjuAj3iVgqX5+W+G5itroHCkZ7o4JU
	 /qna6U3xgnGgA==
Date: Sat, 09 Aug 2025 17:15:04 +0000
To: Mykola Kvach <xakep.amatop@gmail.com>
From: dmkhn@proton.me
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>
Subject: Re: [PATCH] xen/arm: irq: add missing spin_unlock() in init_local_irq_data() error path
Message-ID: <aJeCElyVkGY8Ri3i@kraken>
In-Reply-To: <bd707bd0fd88fc53974a1214313a9b9103162bcc.1754749899.git.mykola_kvach@epam.com>
References: <bd707bd0fd88fc53974a1214313a9b9103162bcc.1754749899.git.mykola_kvach@epam.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 03b61940d2d15721c225bcebd61a236476080a71
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Sat, Aug 09, 2025 at 05:32:41PM +0300, Mykola Kvach wrote:
> From: Mykola Kvach <mykola_kvach@epam.com>
>=20
> If init_one_irq_desc() fails, init_local_irq_data() returns without
> releasing local_irqs_type_lock, leading to a possible deadlock.
>=20
> Release the lock before returning to ensure proper cleanup.
>=20
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>

Nice catch!

Please consider:

Reviewed-by: Denis Mukhin <dmukhin@ford.com>=20

> ---
>  xen/arch/arm/irq.c | 3 +++
>  1 file changed, 3 insertions(+)
>=20
> diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
> index 4bbf0b0664..02ca82c089 100644
> --- a/xen/arch/arm/irq.c
> +++ b/xen/arch/arm/irq.c
> @@ -94,7 +94,10 @@ static int init_local_irq_data(unsigned int cpu)
>          int rc =3D init_one_irq_desc(desc);
>=20
>          if ( rc )
> +        {
> +            spin_unlock(&local_irqs_type_lock);
>              return rc;
> +        }
>=20
>          desc->irq =3D irq;
>          desc->action  =3D NULL;
> --
> 2.48.1
>=20
>=20



From xen-devel-bounces@lists.xenproject.org Sat Aug 09 18:37:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 Aug 2025 18:37:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1076205.1437890 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukoRV-0004uS-Pt; Sat, 09 Aug 2025 18:37:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1076205.1437890; Sat, 09 Aug 2025 18:37:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukoRV-0004uL-NB; Sat, 09 Aug 2025 18:37:21 +0000
Received: by outflank-mailman (input) for mailman id 1076205;
 Sat, 09 Aug 2025 18:37:20 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=gHj1=2V=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1ukoRS-0004uF-T8
 for xen-devel@lists.xenproject.org; Sat, 09 Aug 2025 18:37:20 +0000
Received: from mail-4322.protonmail.ch (mail-4322.protonmail.ch [185.70.43.22])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id df6acb60-754f-11f0-a325-13f23c93f187;
 Sat, 09 Aug 2025 20:37:16 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: df6acb60-754f-11f0-a325-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1754764634; x=1755023834;
	bh=n5Ehv5KB0OtjRGUxggTUAaUhi43nCx1jRRE/9S54hLk=;
	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=JPEBJqxwBKDH0YItkp6RrTEg+BsIcHiI5tK0XYqQoC+i5Enm9blVJHANpfMGfChTY
	 qSGm18Y4OoE2nMfuJ4LtkjG6kPNmvAfcSDPC4pAO/AKVv8pkR8gDLYBy2ToV/CsAG4
	 TD25gDJ/L7OHw3HuiKSnz5TIuRFkk9ILxJvTL83vvartqbN4t1sF0fXdbrIlby/YKD
	 fDhK40IvrNW3bJjZhcRBPX0PCh4C/nNPUm72yqHBddabsGehqnFQHkLHnETx9sDr+z
	 CQst12OaMsq62K9uXYl76wMtjlMid5KceczEnJDwYEyIj7nc391HU1trQhPwpVQvfG
	 XAm0/CRg6+whQ==
Date: Sat, 09 Aug 2025 18:37:07 +0000
To: Jan Beulich <jbeulich@suse.com>
From: dmkhn@proton.me
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 v4 5/8] emul/vuart-ns16550: introduce NS16550-compatible UART emulator (x86)
Message-ID: <aJeVTIG2nU3bqGwO@starscream>
In-Reply-To: <5c0589a2-91fe-484d-bded-5a68a1626355@suse.com>
References: <20250731192130.3948419-1-dmukhin@ford.com> <20250731192130.3948419-6-dmukhin@ford.com> <5c0589a2-91fe-484d-bded-5a68a1626355@suse.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: c627fc21628400d7789407cd5d43beba529c74dd
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Mon, Aug 04, 2025 at 12:53:36PM +0200, Jan Beulich wrote:
> On 31.07.2025 21:22, dmkhn@proton.me wrote:
> > From: Denis Mukhin <dmukhin@ford.com>
> >
> > Add initial in-hypervisor emulator for NS8250/NS16x50-compatible UARTs =
under
> > CONFIG_VUART_NS16550 for x86 port of Xen.
> >
> > x86 port of Xen lacks vUART facility similar to Arm's SBSA emulator to =
support
> > x86 guest OS bring up in the embedded setups.
> >
> > In parallel domain creation scenario (hyperlaunch), NS16550 emulator he=
lps
> > early guest firmware and/or OS bringup debugging, because it eliminates
> > dependency on the external emulator (qemu) being operational by the tim=
e
> > domains are created.
> >
> > The emulator also allows to forward the physical console input to the x=
86
> > domain which is useful when a system has only one physical UART for ear=
ly
> > debugging and this UART is owned by Xen. Such functionality is limited =
to dom0
> > use currently.
> >
> > By default, CONFIG_VUART_NS16550 enables emulation of NS16550 at I/O po=
rt
> > 0x3f8, IRQ#4 in guest OS (legacy COM1).
> >
> > Legacy COM resources can be selected at built-time and cannot be config=
ured
> > per-domain via .cfg or DT yet.
> >
> > Introduce new emulation flag for virtual UART on x86 and plumb it throu=
gh
> > domain creation code so NS16550 emulator can be instantiated properly.
> >
> > Please refer to the NS16550 emulator code for full list of limitations.
> >
> > Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> > ---
> > Changes since v3:
> > - feedback addressed
> > - adjusted to new vUART framework APIs
> > - Link to v3: https://lore.kernel.org/xen-devel/20250103-vuart-ns8250-v=
3-v1-21-c5d36b31d66c@ford.com/
> > ---
> >  xen/arch/x86/hvm/hvm.c                |    9 +
> >  xen/arch/x86/include/asm/domain.h     |    4 +-
> >  xen/arch/x86/include/asm/hvm/domain.h |    4 +
> >  xen/common/emul/vuart/Kconfig         |   48 ++
> >  xen/common/emul/vuart/Makefile        |    1 +
> >  xen/common/emul/vuart/vuart-ns16550.c | 1009 +++++++++++++++++++++++++
> >  xen/common/emul/vuart/vuart.c         |    4 +
> >  xen/include/public/arch-x86/xen.h     |    4 +-
> >  xen/include/xen/resource.h            |    3 +
> >  9 files changed, 1084 insertions(+), 2 deletions(-)
> >  create mode 100644 xen/common/emul/vuart/vuart-ns16550.c
>=20
> Overall I think this patch is too large to sensibly review. Surely base s=
tructure
> and then (incrementally) fleshing out of the hooks can be separated from =
one
> another?

I'll do a split.

>=20
> > --- a/xen/arch/x86/hvm/hvm.c
> > +++ b/xen/arch/x86/hvm/hvm.c
> > @@ -31,6 +31,7 @@
> >  #include <xen/nospec.h>
> >  #include <xen/vm_event.h>
> >  #include <xen/console.h>
> > +#include <xen/vuart.h>
> >  #include <asm/shadow.h>
> >  #include <asm/hap.h>
> >  #include <asm/current.h>
> > @@ -702,6 +703,10 @@ int hvm_domain_initialise(struct domain *d,
> >      if ( rc !=3D 0 )
> >          goto fail1;
> >
> > +    rc =3D vuart_init(d, NULL);
> > +    if ( rc !=3D 0 )
> > +        goto out_vioapic_deinit;
> > +
> >      stdvga_init(d);
> >
> >      rtc_init(d);
> > @@ -725,6 +730,8 @@ int hvm_domain_initialise(struct domain *d,
> >      return 0;
> >
> >   fail2:
> > +    vuart_deinit(d);
> > + out_vioapic_deinit:
> >      vioapic_deinit(d);
> >   fail1:
> >      if ( is_hardware_domain(d) )
>=20
> Would be better if vuart_deinit() was idempotent, and hence could be call=
ed
> unconditionally here.

Agree, vuart_deinit() is idempotent even in this submisson.
Will update.

>=20
> > @@ -787,6 +794,8 @@ void hvm_domain_destroy(struct domain *d)
> >      if ( hvm_funcs.domain_destroy )
> >          alternative_vcall(hvm_funcs.domain_destroy, d);
> >
> > +    vuart_deinit(d);
>=20
> You require a fair level of idempotency already anyway, as a domain may n=
ot
> have any vUART, so this call already needs to be "capabale" of doing noth=
ing.
>=20
> > --- a/xen/arch/x86/include/asm/hvm/domain.h
> > +++ b/xen/arch/x86/include/asm/hvm/domain.h
> > @@ -149,6 +149,10 @@ struct hvm_domain {
> >  #ifdef CONFIG_MEM_SHARING
> >      struct mem_sharing_domain mem_sharing;
> >  #endif
> > +
> > +#ifdef CONFIG_VUART_NS16550
> > +    void *vuart; /* Virtual UART handle. */
> > +#endif
> >  };
>=20
> With your framework you allow for multiple vUART drivers. Either the fiel=
d
> looks misnamed or the CONFIG_* option checked is the wrong one.

Agree; will update.

>=20
> Also, why's this x86-specific? NS16550s can exist anywhere, can't they?
> (The present, but presumably temporary tying to x86 looks to be the use o=
f
> I/O ports.)

struct hvm_domain is arch-specific.

I do not think I need to add NS16550 to, say RISC-V's, hvm_domain without
implementing MMIO part and guest DT-binding generation.

>=20
> > --- a/xen/common/emul/vuart/Kconfig
> > +++ b/xen/common/emul/vuart/Kconfig
> > @@ -3,4 +3,52 @@ config HAS_VUART
> >
> >  menu "UART Emulation"
> >
> > +config VUART_NS16550
> > +=09bool "NS16550-compatible UART Emulation" if EXPERT
> > +=09depends on X86 && HVM
> > +=09select HAS_VUART
> > +=09help
> > +=09  In-hypervisor NS16550/NS16x50 UART emulation.
> > +
> > +=09  Only legacy PC I/O ports are emulated.
> > +
> > +=09  This is strictly for testing purposes (such as early HVM guest co=
nsole),
> > +=09  and not appropriate for use in production.
> > +
> > +choice VUART_NS16550_PC
> > +=09prompt "IBM PC COM resources"
> > +=09depends on VUART_NS16550
> > +=09default VUART_NS16550_PC_COM1
> > +=09help
> > +=09  Default emulated NS16550 resources.
> > +
> > +config VUART_NS16550_PC_COM1
> > +=09bool "COM1 (I/O port 0x3f8, IRQ#4)"
> > +
> > +config VUART_NS16550_PC_COM2
> > +=09bool "COM2 (I/O port 0x2f8, IRQ#3)"
> > +
> > +config VUART_NS16550_PC_COM3
> > +=09bool "COM3 (I/O port 0x3e8, IRQ#4)"
> > +
> > +config VUART_NS16550_PC_COM4
> > +=09bool "COM4 (I/O port 0x2e8, IRQ#3)"
> > +
> > +endchoice
> > +
> > +config VUART_NS16550_LOG_LEVEL
> > +=09int "UART emulator verbosity level"
> > +=09range 0 3
> > +=09default "1"
> > +=09depends on VUART_NS16550
> > +=09help
> > +=09  Set the default log level of UART emulator.
> > +=09  See include/xen/config.h for more details.
>=20
> For someone merely running kconfig but not otherwise knowing the sources,
> this isn't an overly helful pointer. But I question the need for such a
> control anyway, and I think I did say so already before.

I'll drop that Kconfig setting.

>=20
> > +config VUART_NS16550_DEBUG
> > +=09bool "UART emulator development debugging"
> > +=09depends on VUART_NS16550
>=20
> && DEBUG ?

I will drop that Kconfig.

>=20
> > --- a/xen/common/emul/vuart/Makefile
> > +++ b/xen/common/emul/vuart/Makefile
> > @@ -1 +1,2 @@
> >  obj-$(CONFIG_HAS_VUART) +=3D vuart.o
> > +obj-$(CONFIG_VUART_NS16550) +=3D vuart-ns16550.o
>=20
> I don't think files in this directory need a vuart- name prefix.

Ack.

Hmm, there's already ns16550.c which is UART driver, so it may be confusing=
 to
have two ns16550s (although in different directories).

I do not have a strong preference on the naming here.

>=20
> > --- /dev/null
> > +++ b/xen/common/emul/vuart/vuart-ns16550.c
> > @@ -0,0 +1,1009 @@
> > +/* SPDX-License-Identifier: GPL-2.0-only */
> > +/*
> > + * NS16550-compatible UART Emulator.
> > + *
> > + * See:
> > + * - Serial and UART Tutorial:
> > + *     https://download.freebsd.org/doc/en/articles/serial-uart/serial=
-uart_en.pdf
> > + * - UART w/ 16 byte FIFO:
> > + *     https://www.ti.com/lit/ds/symlink/tl16c550c.pdf
> > + * - UART w/ 64 byte FIFO:
> > + *     https://www.ti.com/lit/ds/symlink/tl16c750.pdf
> > + *
> > + * Limitations:
> > + * - Only x86;
> > + * - Only HVM domains support (build-time), PVH domains are not suppor=
ted yet;
> > + * - Only legacy COM{1,2,3,4} resources via Kconfig, custom I/O ports/=
IRQs
> > + *   are not supported;
> > + * - Only Xen console as a backend, no inter-domain communication (sim=
ilar to
> > + *   vpl011 on Arm);
> > + * - Only 8n1 emulation (8-bit data, no parity, 1 stop bit);
> > + * - No toolstack integration;
> > + * - No baud rate emulation (reports 115200 baud to the guest OS);
> > + * - No FIFO-less mode emulation;
> > + * - No RX FIFO interrupt moderation (FCR) emulation;
> > + * - No integration w/ VM snapshotting (HVM_REGISTER_SAVE_RESTORE() an=
d
> > + *   friends);
> > + * - No ISA IRQ sharing allowed;
> > + * - No MMIO-based UART emulation.
> > + */
> > +
> > +#define pr_prefix               "ns16550"
> > +#define pr_fmt(fmt)             pr_prefix ": " fmt
> > +#define pr_log_level            CONFIG_VUART_NS16550_LOG_LEVEL
> > +
> > +#include <xen/8250-uart.h>
> > +#include <xen/console.h>
> > +#include <xen/iocap.h>
> > +#include <xen/ioreq.h>
> > +#include <xen/resource.h>
> > +#include <xen/vuart.h>
> > +#include <xen/xvmalloc.h>
> > +
> > +#include <public/io/console.h>
>=20
> Except for cases where Xen itself runs as a guest, I don't think any of t=
hese
> headers should be used in Xen sources. If I'm not mistaken, ...

I'll double check, thanks.

>=20
> > +/*
> > + * Virtual NS16550 device state.
> > + */
> > +struct vuart_ns16550 {
> > +    struct xencons_interface cons;      /* Emulated RX/TX FIFOs */
>=20
> ... this also isn't to communicate with some remote, but merely to use so=
me
> of the fields conveniently.

The plan is to add peer-to-peer connection over vUART similarly to existing
vpl011.

>=20
> > +    uint8_t regs[NS16550_EMU_REGS_NUM]; /* Emulated registers */
> > +    unsigned int irq;                   /* Emulated IRQ# */
> > +    uint64_t io_addr;                   /* Emulated I/O region base ad=
dress */
> > +    uint64_t io_size;                   /* Emulated I/O region size */
>=20
> These are huge; for the size that's true even if considering future MMIO-
> based emulation.

Ack.

>=20
> > +    const char *name;                   /* Device name */
> > +    struct domain *owner;               /* Owner domain */
> > +    spinlock_t lock;                    /* Protection */
> > +};
> > +
> > +/*
> > + * Virtual device description.
> > + */
> > +struct virtdev_desc {
> > +    const char *name;
> > +    const struct resource *res;
> > +};
> > +
> > +/*
> > + * Legacy IBM PC NS16550 resources.
> > + * There are only 4 I/O port ranges, hardcoding all of them here.
> > + */
> > +static const struct virtdev_desc x86_pc_uarts[4] =3D {
> > +    [0] =3D {
> > +        .name =3D "COM1",
> > +        .res =3D (const struct resource[]){
> > +            { .type =3D IORESOURCE_IO,  .addr =3D 0x3f8, .size =3D NS1=
6550_REGS_NUM },
> > +            { .type =3D IORESOURCE_IRQ, .addr =3D 4,     .size =3D 1 }=
,
> > +            { .type =3D IORESOURCE_UNKNOWN },
> > +        },
> > +    },
> > +    [1] =3D {
> > +        .name =3D "COM2",
> > +        .res =3D (const struct resource[]){
> > +            { .type =3D IORESOURCE_IO,  .addr =3D 0x2f8, .size =3D NS1=
6550_REGS_NUM },
> > +            { .type =3D IORESOURCE_IRQ, .addr =3D 3,     .size =3D 1 }=
,
> > +            { .type =3D IORESOURCE_UNKNOWN },
> > +        },
> > +    },
> > +    [2] =3D {
> > +        .name =3D "COM3",
> > +        .res =3D (const struct resource[]){
> > +            { .type =3D IORESOURCE_IO,  .addr =3D 0x3e8, .size =3D NS1=
6550_REGS_NUM },
> > +            { .type =3D IORESOURCE_IRQ, .addr =3D 4,     .size =3D 1 }=
,
> > +            { .type =3D IORESOURCE_UNKNOWN },
> > +        },
> > +    },
> > +    [3] =3D {
> > +        .name =3D "COM4",
> > +        .res =3D (const struct resource[]){
> > +            { .type =3D IORESOURCE_IO,  .addr =3D 0x2e8, .size =3D NS1=
6550_REGS_NUM },
> > +            { .type =3D IORESOURCE_IRQ, .addr =3D 3,     .size =3D 1 }=
,
> > +            { .type =3D IORESOURCE_UNKNOWN },
> > +        },
> > +    },
> > +};
>=20
> The choice of COMn is at build time. Why do we need all four configuratio=
ns
> resident not only in the binary, but even at (post-init) runtime? Also, t=
he
> way you do initialization of .res, I think adding __initconst to the main
> array wouldn't have the effect of pulling all those inti .init.* as well.
> For the time being I simply don't see the need for the extra level of
> indirection: All instances have two entries (plus the then likely not
> necessary sentinel).

Will rework that.

>=20
> > +static bool cf_check ns16550_iir_check_lsi(const struct vuart_ns16550 =
*vdev)
> > +{
> > +    return !!(vdev->regs[UART_LSR] & UART_LSR_MASK);
>=20
> No need for !! (also elsewhere).

Ack.

>=20
> > --- a/xen/include/xen/resource.h
> > +++ b/xen/include/xen/resource.h
> > @@ -31,4 +31,7 @@ struct resource {
> >
> >  #define resource_size(res)      ((res)->size)
> >
> > +#define for_each_resource(res) \
> > +    for ( ; (res) && (res)->type !=3D IORESOURCE_UNKNOWN; (res)++ )
>=20
> I'm not sure this is a good generic #define; imo it wants keeping local t=
o
> the one file that uses it.

Ack.

>=20
> Jan
>=20



From xen-devel-bounces@lists.xenproject.org Sat Aug 09 18:55:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 Aug 2025 18:55:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1076217.1437900 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukojQ-0007vF-8r; Sat, 09 Aug 2025 18:55:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1076217.1437900; Sat, 09 Aug 2025 18:55: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 1ukojQ-0007v8-6H; Sat, 09 Aug 2025 18:55:52 +0000
Received: by outflank-mailman (input) for mailman id 1076217;
 Sat, 09 Aug 2025 18:55:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=gHj1=2V=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1ukojP-0007v2-8W
 for xen-devel@lists.xenproject.org; Sat, 09 Aug 2025 18:55:51 +0000
Received: from mail-24418.protonmail.ch (mail-24418.protonmail.ch
 [109.224.244.18]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 74a1ca3e-7552-11f0-b898-0df219b8e170;
 Sat, 09 Aug 2025 20:55:45 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 74a1ca3e-7552-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1754765744; x=1755024944;
	bh=V0dPOPPGKZioYBhiypfxDr+zGniz/rls6nMEBhUeJK0=;
	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=NZ9i7Nik2NDWTh0lPHQyeKFRPMRv4EapJMUmW5cRcWd7X7SKEvgLxLEw4j2eXbjl7
	 /dQ+jZdQNaxecZC+9YhOHypMeOmIfS8sdYIvFRCyXTnv+vlrMnDu0tefGBo7D4SLQf
	 kVAMHLkM/F9gtOavAZ8UdnJ4s1uZtIKPdw/T5+uoJz0sBe0voqQToSh/kMUEVKRAbb
	 0nID0J8zXLnUP5L8VrARimzDy4xC0EytWmWPVZQmnFZupAABmTGL51+TRL7g62Y+to
	 wOGlR3C1QXidGu++vUbZpdzoXRyM1kl486tq0ylY6htZJFK6L0RQG9bI9ulJ8M7u4i
	 LOcX/nuIs3Zvg==
Date: Sat, 09 Aug 2025 18:55:39 +0000
To: Jan Beulich <jbeulich@suse.com>
From: dmkhn@proton.me
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 v4 2/8] emul/vuart: introduce framework for UART emulators
Message-ID: <aJeZpiM35gOtB+4Z@starscream>
In-Reply-To: <a416cc08-5970-433a-8015-5d2aa961a000@suse.com>
References: <20250731192130.3948419-1-dmukhin@ford.com> <20250731192130.3948419-3-dmukhin@ford.com> <a416cc08-5970-433a-8015-5d2aa961a000@suse.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 91913e1add216a34988391efbfb1d45c74a31d02
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Mon, Aug 04, 2025 at 12:11:03PM +0200, Jan Beulich wrote:
> On 31.07.2025 21:21, dmkhn@proton.me wrote:
> > From: Denis Mukhin <dmukhin@ford.com>
> >
> > Introduce a driver framework to abstract UART emulators in the hypervis=
or.
> >
> > That allows for architecture-independent handling of virtual UARTs in t=
he
> > console driver and simplifies enabling new UART emulators.
> >
> > The framework is built under CONFIG_HAS_VUART, which will be automatica=
lly
> > enabled once the user enables any UART emulator.
>=20
> Yet then still - why "HAS"? Call it just VUART or VUART_FRAMEWORK or some=
 such.
>=20
> > --- a/xen/common/Kconfig
> > +++ b/xen/common/Kconfig
> > @@ -1,6 +1,8 @@
> >
> >  menu "Common Features"
> >
> > +source "common/emul/Kconfig"
> > +
> >  config COMPAT
>=20
> Why at the very top?

I did not find a better place, since the settings are not sorted and to me =
it
makes sense to list emulation capabilities first...

Where would be the best location for that submenu?
Close to another submenu `source "common/sched/Kconfig"`?

>=20
> > --- a/xen/common/Makefile
> > +++ b/xen/common/Makefile
> > @@ -11,6 +11,7 @@ obj-$(filter-out $(CONFIG_X86),$(CONFIG_ACPI)) +=3D d=
evice.o
> >  obj-$(CONFIG_DEVICE_TREE_PARSE) +=3D device-tree/
> >  obj-$(CONFIG_IOREQ_SERVER) +=3D dm.o
> >  obj-y +=3D domain.o
> > +obj-y +=3D emul/
> >  obj-y +=3D event_2l.o
> >  obj-y +=3D event_channel.o
> >  obj-$(CONFIG_EVTCHN_FIFO) +=3D event_fifo.o
> > diff --git a/xen/common/emul/Kconfig b/xen/common/emul/Kconfig
> > new file mode 100644
> > index 000000000000..7c6764d1756b
> > --- /dev/null
> > +++ b/xen/common/emul/Kconfig
> > @@ -0,0 +1,6 @@
> > +menu "Domain Emulation Features"
> > +=09visible if EXPERT
> > +
> > +source "common/emul/vuart/Kconfig"
> > +
> > +endmenu
> > diff --git a/xen/common/emul/Makefile b/xen/common/emul/Makefile
> > new file mode 100644
> > index 000000000000..670682102c13
> > --- /dev/null
> > +++ b/xen/common/emul/Makefile
> > @@ -0,0 +1 @@
> > +obj-$(CONFIG_HAS_VUART) +=3D vuart/
>=20
> With this you can ...
>=20
> > --- /dev/null
> > +++ b/xen/common/emul/vuart/Makefile
> > @@ -0,0 +1 @@
> > +obj-$(CONFIG_HAS_VUART) +=3D vuart.o
>=20
> ... use the simpler obj-y here.

Thanks.

>=20
> > --- /dev/null
> > +++ b/xen/common/emul/vuart/vuart.c
> > @@ -0,0 +1,112 @@
> > +/* SPDX-License-Identifier: GPL-2.0-only */
> > +/*
> > + * UART emulator framework.
> > + *
> > + * Copyright 2025 Ford Motor Company
> > + */
> > +
> > +#include <xen/errno.h>
> > +#include <xen/sched.h>
> > +#include <xen/vuart.h>
> > +
> > +#define VUART_ARRAY_SIZE    (__start_vuart_end - __start_vuart_array)
> > +
> > +#define for_each_vuart(vdev) \
> > +    for (unsigned __i =3D 0; \
> > +         __i < VUART_ARRAY_SIZE && (vdev =3D __start_vuart_array[__i],=
 1); \
> > +         __i++)
>=20
> Nit: Xen style please. Any preferably no leading underscores; in no case
> two of them.

Ack.

>=20
> > +extern const struct vuart_ops *const __start_vuart_array[];
> > +extern const struct vuart_ops *const __start_vuart_end[];
>=20
> Is there an actual need for this extra level of indirection? It is in the
> process of being done away with for vPCI.

Ack.

>=20
> > +int vuart_add_node(struct domain *d, const void *node)
> > +{
> > +    const struct vuart_ops *vdev;
> > +    int rc;
> > +
> > +    for_each_vuart(vdev)
> > +    {
> > +        if ( !vdev->add_node )
> > +            continue;
> > +
> > +        rc =3D vdev->add_node(d, node);
>=20
> Here and below - shouldn't you call hooks only when the kind of driver is
> actually enabled for the domkain in question?

Thanks; this looks a bit raw...

I will rework that in the follow on change. I will drop vuart_add_node()
from NS16550 series since it is not used yet.

>=20
> > +        if ( rc )
> > +            return rc;
> > +    }
> > +
> > +    return 0;
> > +}
> > +
> > +int vuart_init(struct domain *d, struct vuart_params *params)
> > +{
> > +    const struct vuart_ops *vdev;
> > +    int rc;
> > +
> > +    if ( !domain_has_vuart(d) )
> > +        return 0;
> > +
> > +    for_each_vuart(vdev)
> > +    {
> > +        rc =3D vdev->init(d, params);
> > +        if ( rc )
> > +            return rc;
> > +    }
> > +
> > +    d->console.input_allowed =3D true;
>=20
> Unconditionally?

Thanks.
That should be a least under rc =3D=3D 0.

>=20
> > +void vuart_deinit(struct domain *d)
> > +{
> > +    const struct vuart_ops *vdev;
> > +
> > +    for_each_vuart(vdev)
> > +        vdev->deinit(d);
> > +}
>=20
> I can perhaps see why this hook wants to uniformly be set, but ...
>=20
> > +void vuart_dump_state(const struct domain *d)
> > +{
> > +    const struct vuart_ops *vdev;
> > +
> > +    for_each_vuart(vdev)
> > +        vdev->dump_state(d);
> > +}
>=20
> ... state dumping pretty surely wants to be optional?

Ack.

>=20
> > +/*
> > + * Put character to the first suitable emulated UART's FIFO.
> > + */
>=20
> What's "suitable"? Along the lines of the earlier remark, what if the dom=
ain
> has vUART kind A configured, ...

"suitable" is meant to be the first emulator with put_rx !=3D NULL.
I will update that.

>=20
> > +int vuart_put_rx(struct domain *d, char c)
> > +{
> > +    const struct vuart_ops *vdev =3D NULL;
> > +
> > +    ASSERT(domain_has_vuart(d));
> > +
> > +    for_each_vuart(vdev)
> > +        if ( vdev->put_rx )
>=20
> ... but only kind B offers this hook?
>=20
> > +            break;
> > +
> > +    return vdev ? vdev->put_rx(d, c) : -ENODEV;
>=20
> The check for NULL helps for the "no vUART drivers" case, but it won't
> help if you exhausted the array without finding a driver with the wanted
> hook.

Ack.

>=20
> > +}
> > +
> > +bool domain_has_vuart(const struct domain *d)
> > +{
> > +    uint32_t mask =3D 0;
>=20
> unsigned int?

Ack.

>=20
> > --- a/xen/common/keyhandler.c
> > +++ b/xen/common/keyhandler.c
> > @@ -22,6 +22,7 @@
> >  #include <xen/mm.h>
> >  #include <xen/watchdog.h>
> >  #include <xen/init.h>
> > +#include <xen/vuart.h>
> >  #include <asm/div64.h>
> >
> >  static unsigned char keypress_key;
> > @@ -354,6 +355,8 @@ static void cf_check dump_domains(unsigned char key=
)
> >                             v->periodic_period / 1000000);
> >              }
> >          }
> > +
> > +        vuart_dump_state(d);
>=20
> How verbose is this going to get?

Looks something like this:
```
(XEN) [   88.334893] 'q' pressed -> dumping domain info (now =3D 8833482830=
3)
[..]
(XEN) [   88.335673] Virtual ns16550 (COM2) I/O port 0x02f8 IRQ#3 owner d0
(XEN) [   88.335681]   RX FIFO size 1024 in_prod 258 in_cons 258 used 0
(XEN) [   88.335689]   TX FIFO size 2048 out_prod 15 out_cons 0 used 15
(XEN) [   88.335696]   00 RBR 02 THR 6f DLL 01 DLM 00
(XEN) [   88.335703]   01 IER 05
(XEN) [   88.335709]   02 FCR 81 IIR c1
(XEN) [   88.335715]   03 LCR 13
(XEN) [   88.335720]   04 MCR 0b
(XEN) [   88.335726]   05 LSR 60
(XEN) [   88.335731]   06 MSR b0
(XEN) [   88.335736]   07 SCR 00

```

>=20
> > --- /dev/null
> > +++ b/xen/include/xen/vuart.h
> > @@ -0,0 +1,84 @@
> > +/* SPDX-License-Identifier: GPL-2.0-only */
> > +/*
> > + * UART emulator framework.
> > + *
> > + * Copyright 2025 Ford Motor Company
> > + */
> > +
> > +#ifndef XEN_VUART_H
> > +#define XEN_VUART_H
> > +
> > +#include <public/xen.h>
> > +#include <public/event_channel.h>
> > +#include <xen/types.h>
>=20
> The order is wrong - types must be available before public headers are in=
cluded.

Ack.

>=20
> > +struct vuart_params {
> > +    domid_t console_domid;
> > +    gfn_t gfn;
> > +    evtchn_port_t evtchn;
> > +};
> > +
> > +struct vuart_ops {
> > +    int (*add_node)(struct domain *d, const void *node);
> > +    int (*init)(struct domain *d, struct vuart_params *params);
> > +    void (*deinit)(struct domain *d);
> > +    void (*dump_state)(const struct domain *d);
> > +    int (*put_rx)(struct domain *d, char c);
> > +};
> > +
> > +#define VUART_REGISTER(name, x) \
> > +    static const struct vuart_ops *const __name##_entry \
> > +        __used_section(".data.vuart." #name) =3D (x);
> > +
> > +#ifdef CONFIG_HAS_VUART
> > +
> > +int vuart_add_node(struct domain *d, const void *node);
> > +int vuart_init(struct domain *d, struct vuart_params *params);
> > +void vuart_deinit(struct domain *d);
> > +void vuart_dump_state(const struct domain *d);
> > +int vuart_put_rx(struct domain *d, char c);
> > +bool domain_has_vuart(const struct domain *d);
> > +
> > +#else
> > +
> > +static inline int vuart_add_node(struct domain *d, const void *node)
> > +{
> > +    return 0;
> > +}
> > +
> > +static inline int vuart_init(struct domain *d, struct vuart_params *pa=
rams)
> > +{
> > +    return 0;
> > +}
> > +
> > +static inline void vuart_deinit(struct domain *d)
> > +{
> > +}
> > +
> > +static inline void vuart_dump_state(const struct domain *d)
> > +{
> > +}
> > +
> > +static inline int vuart_put_rx(struct domain *d, char c)
> > +{
> > +    ASSERT_UNREACHABLE();
> > +    return -ENODEV;
> > +}
> > +
> > +static inline bool domain_has_vuart(const struct domain *d)
> > +{
> > +    return false;
> > +}
>=20
> With this, some of the other stubs should not be necessary. Declarations
> will suffice, e.g. for vuart_put_rx().

Thanks, will update.

>=20
> > --- a/xen/include/xen/xen.lds.h
> > +++ b/xen/include/xen/xen.lds.h
> > @@ -194,4 +194,14 @@
> >  #define VPCI_ARRAY
> >  #endif
> >
> > +#ifdef CONFIG_HAS_VUART
> > +#define VUART_ARRAY     \
> > +       . =3D ALIGN(POINTER_ALIGN); \
> > +       __start_vuart_array =3D .;  \
> > +       *(SORT(.data.vuart.*))    \
>=20
> This is r/o data afaict, so would want naming .rodata.vuart.*. Which in
> turn means the uses of the macros need to move up in the linker scripts.

Ack.

>=20
> Jan
>=20



From xen-devel-bounces@lists.xenproject.org Sat Aug 09 22:12:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 Aug 2025 22:12:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1076301.1437943 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukrnW-0006Oh-TQ; Sat, 09 Aug 2025 22:12:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1076301.1437943; Sat, 09 Aug 2025 22:12: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 1ukrnW-0006N9-HV; Sat, 09 Aug 2025 22:12:18 +0000
Received: by outflank-mailman (input) for mailman id 1076301;
 Sat, 09 Aug 2025 22:12:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gSuF=2V=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ukrnU-0005qO-NM
 for xen-devel@lists.xenproject.org; Sat, 09 Aug 2025 22:12:16 +0000
Received: from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com
 [2a00:1450:4864:20::42c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e72a9bba-756d-11f0-b898-0df219b8e170;
 Sun, 10 Aug 2025 00:12:14 +0200 (CEST)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-3b786421e36so1706392f8f.3
 for <xen-devel@lists.xenproject.org>; Sat, 09 Aug 2025 15:12:14 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3b79c453ab0sm35424323f8f.44.2025.08.09.15.12.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sat, 09 Aug 2025 15:12: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>
X-Inumbo-ID: e72a9bba-756d-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754777533; x=1755382333; 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=sfND0zg2ZLDeX3cn2aUNtMfsNyhu9pemRzEnrfx6pMg=;
        b=RreJLoH9gntuJDdsOj+t1oAS0eRBG6E5qU0EkyGZZUTuLl4NZUwGIhELDDVLeUOuwb
         i8NiG+gs1JDc5Ot5+6+vzmyvtdtB7z2vhwHL/Q1OxQ4qRy4anHFtfU0j2abXR/HHjjah
         kA7TZyePuqTF6GXnfhV4h9DjTy6tbPKSRm8MU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754777533; x=1755382333;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=sfND0zg2ZLDeX3cn2aUNtMfsNyhu9pemRzEnrfx6pMg=;
        b=ahvytwk78aYTSr+PFcSM2xhCVtBL9BeL+fhfNtBWobuf7CFWgjSBQPS2OWxMBy209G
         snAkj7g918+Bopg27KTtoBmNnW28Pd4l97Y1/mWXZVrFAxP+iCb5nCp9amPwPB/PE/tb
         tYcXIQyylTJPSQ9fDGAlQxKY61wob4w5+XKtrrLJCFB0mPI2gpZOm+/N92pRohWmPbti
         PvX1MhiLhwtuFCo39Mg38s9C/2NVd0aYDi0fxftNTSouel6Uxjnl9z4e9nYjQfQuEn1A
         fkX9pY4eG57Myv3OCa9iM5hoDlBPuCgyV24c06xHfQJSilFaC/PO3ykk7hW+inkZHlj3
         F0vw==
X-Gm-Message-State: AOJu0YzN1r4TVB3gHw8/3kJoCHb7TDd3jFUxyRDG1/nwHmwAQBAjQnHZ
	vCZl+rlM++ksBv8CrdNEwMwibs+iE+ksIio9BFcCoseYHi48XjXCCDUdKenv30pRi1kL7cgVSeS
	3oDtBuCY=
X-Gm-Gg: ASbGnctzoLx/y/R6y885OAN9Wl6557394XpAXwU2n3L3JDF6kafQL3ymZw1BFmoOALm
	jw4K6yg8LQd6FjonwJjU5MgV0fMmbjK6gJgorHbuiunsXimJ1j2PXwC18zRregtbnmdgOMnOUEQ
	Ea18rNpA3XjqWkHhsetVY+DV/pk3kW5pVTaj8w0nsdxT/FwG6KEecXpLl4WrHv+D0xGT6sJ2Zd+
	4EnDnY+DDJYsx5/zZq2jKx6LNKTcuzc/CiT21u1vOfDeDN+WNfFs76uHvCJoEHI9JRoj2c4IgBF
	I8j95LWHXbg470KPnjn2E2TfYVDx3o2LZ/U7od9yszawo8/qn8GoC2Bc97ib7a8L2zdbzep60Qh
	6Mck0IWzONCY6WI4zhXyBFhXPMC8gH+KLfpDlMNPU7X65eLNZn/1WRw1mLBzGItVaTgHvEyQHYL
	H+
X-Google-Smtp-Source: AGHT+IF56eny7f5TY2zNi77piWoa/BoaYTwZw+7F+6xe3Y3GzRAWxu7PyUIxjQbhhGnLBTyQpUHk+g==
X-Received: by 2002:a05:6000:288a:b0:3b8:d2d1:5c11 with SMTP id ffacd0b85a97d-3b900b56f28mr6273885f8f.51.1754777533210;
        Sat, 09 Aug 2025 15:12:13 -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>,
	Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH 4/5] stubdom: Fix -Wimplicit-int in newlib
Date: Sat,  9 Aug 2025 23:12:05 +0100
Message-Id: <20250809221206.1260861-5-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250809221206.1260861-1-andrew.cooper3@citrix.com>
References: <20250809221206.1260861-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This is an error now Debian Trixie's gcc-14

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: Samuel Thibault <samuel.thibault@ens-lyon.org>
CC: Juergen Gross <jgross@suse.com>

I really think we need to move onto Unikraft as a maintained base...
---
 stubdom/Makefile               |  1 +
 stubdom/newlib-fix-etext.patch | 23 +++++++++++++++++++++++
 2 files changed, 24 insertions(+)
 create mode 100644 stubdom/newlib-fix-etext.patch

diff --git a/stubdom/Makefile b/stubdom/Makefile
index 666c3221dcd7..9aa0d3dee4de 100644
--- a/stubdom/Makefile
+++ b/stubdom/Makefile
@@ -94,6 +94,7 @@ newlib-$(NEWLIB_VERSION): newlib-$(NEWLIB_VERSION).tar.gz
 	patch -d $@ -p1 < newlib-cygmon-gmon.patch
 	patch -d $@ -p1 < newlib-makedoc.patch
 	patch -d $@ -p1 < newlib-fix-copy_past_newline.patch
+	patch -d $@ -p1 < newlib-fix-etext.patch
 	find $@ -type f | xargs perl -i.bak \
 		-pe 's/\b_(tzname|daylight|timezone)\b/$$1/g'
 	touch $@
diff --git a/stubdom/newlib-fix-etext.patch b/stubdom/newlib-fix-etext.patch
new file mode 100644
index 000000000000..e7bd4bb0cead
--- /dev/null
+++ b/stubdom/newlib-fix-etext.patch
@@ -0,0 +1,23 @@
+GCC-14 in Debian Trixie i386 complains:
+
+../../../../newlib-1.16.0/libgloss/i386/cygmon-gmon.c: In function '_mcount':
+../../../../newlib-1.16.0/libgloss/i386/cygmon-gmon.c:227:14: error: type defaults to 'int' in declaration of '_etext' [-Wimplicit-int]
+  227 |       extern _etext();
+      |              ^~~~~~
+../../../../newlib-1.16.0/libgloss/i386/cygmon-gmon.c:228:14: error: type defaults to 'int' in declaration of '_ftext' [-Wimplicit-int]
+  228 |       extern _ftext();
+      |              ^~~~~~
+
+--- newlib-1.16.0/libgloss/i386/cygmon-gmon.c.orig	2025-08-09 22:48:09.864068481 +0100
++++ newlib-1.16.0/libgloss/i386/cygmon-gmon.c	2025-08-09 22:52:18.458393484 +0100
+@@ -224,8 +224,8 @@
+ 
+   if (! already_setup) 
+     {
+-      extern _etext();
+-      extern _ftext();
++      extern char _etext[];
++      extern char _ftext[];
+       already_setup = 1;
+       monstartup(_ftext, _etext);
+       atexit(_mcleanup);
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Sat Aug 09 22:12:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 Aug 2025 22:12:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1076299.1437927 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukrnW-00067i-0W; Sat, 09 Aug 2025 22:12:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1076299.1437927; Sat, 09 Aug 2025 22:12: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 1ukrnV-000661-R1; Sat, 09 Aug 2025 22:12:17 +0000
Received: by outflank-mailman (input) for mailman id 1076299;
 Sat, 09 Aug 2025 22:12:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gSuF=2V=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ukrnU-0005qO-9S
 for xen-devel@lists.xenproject.org; Sat, 09 Aug 2025 22:12:16 +0000
Received: from mail-wr1-x443.google.com (mail-wr1-x443.google.com
 [2a00:1450:4864:20::443])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e6454e55-756d-11f0-b898-0df219b8e170;
 Sun, 10 Aug 2025 00:12:12 +0200 (CEST)
Received: by mail-wr1-x443.google.com with SMTP id
 ffacd0b85a97d-3b78127c5d1so2038729f8f.3
 for <xen-devel@lists.xenproject.org>; Sat, 09 Aug 2025 15:12:12 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3b79c453ab0sm35424323f8f.44.2025.08.09.15.12.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sat, 09 Aug 2025 15:12: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>
X-Inumbo-ID: e6454e55-756d-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754777532; x=1755382332; 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=1kbtQDcuNUXyTRgEfiYKqd93Fy+PpDHUdfFPn9AHKy0=;
        b=ottUsF2VPN/vpe0sOiJ3Z8WwfaETrVeLIwPO7jQVe6uBHT76JGcp89yTZM7JlE1Cxl
         MpZou9RhjDLhlxTzaaq3DYIH8IgNs9cGuHxkNE0J7L9beYY9IsWfMlN0qbDabi8UWHjC
         i75gw4v0KZPd4vyQPM0F2MHXgLU6vUmv1QX6c=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754777532; x=1755382332;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=1kbtQDcuNUXyTRgEfiYKqd93Fy+PpDHUdfFPn9AHKy0=;
        b=U2JIo5mXjCELBVESaTzpcJ8iOZZ0UIAChVuVvxMgfQVIb2vlOuMAi56QzCKoO/XnJ2
         DDqSU+pmdjM2NR2eu7s2+EhJVGfNQXw5nlBGqQWrb8aY0wv6qAeQwhuZAoaJedk4/xR3
         J38ZrVLxgBCiL84nTivqc29Va42tkp3TqYAHcBFJhgsedGEu+eFo/wWr0Gy48sSFZ5ni
         +cqVdn+maSwhQvDviieeuV59L4uuX5FHRkHsPPHoAAGp+nwYPKtbKy3Ut4Ux+zxxpIzu
         dAdkRwaLvtyX47ze36JXeqjKoSMSF6C+SotJZvj2E9NDD+cvYHd/XGgjH6vOYErksjIa
         H/MA==
X-Gm-Message-State: AOJu0Yy+QkvemdDvcOWf9JnbfE2qTrfby4Fp6yfcZ6d08lzUeXvxoMgC
	67fnCIz03MKJSYxgGvrkLnSsbPT8XPAy19d8s9l9LJWuxBhDxl7IDnCgW3qjBIagQjVfRMSzDC5
	hqLSqgohhTw==
X-Gm-Gg: ASbGnctsp/uEo/TUbrFqYT/JQBUUog6TexLb5yVBMIjPWcidxQz7EhI+J51XiTa0UuI
	WEGbJobLScIgvYMMip2D7Aw6ROLGeQppErz2q9lW3MXMR6YK47mcO4ONH7FUL0ULPHhjnilS2XD
	co4qlHEuGg4sk2eQrE1dbe/o3A++sd1+y3VX3PPdmx6rDRJoNiC4HnCLMrJrMZga+DMx7Of5Vyl
	vOszttsjblrO1d+g/mM3eoHsjJYci1kwHiEkRrAAQi/nY6q+n3xPTE4IC/ad41wRN/SfYvvK4Ph
	wQP4J3Hrid/Oz7v37hWS/gdHdMB1ho3rbbA+zzDHPf/up+n6M+rjtvBvJ9kGWjiPhAw6IDVL4wy
	C2ib4fYeHxn/Je/bE+QFIt4kJZPNtmXpSP5NNKk74iFlGwCO8awVpHE6DNvgR4IjtUk6qhjZYLX
	uq
X-Google-Smtp-Source: AGHT+IFVUsXbEO2zVpXVjvHoXeRW6wapD2jvYXCp/PAWUAe+QB6L/kYoJd3KgWjcL7YcgRDmrzj4Lw==
X-Received: by 2002:a5d:64e9:0:b0:3b7:6d94:a032 with SMTP id ffacd0b85a97d-3b900929b41mr6646095f8f.3.1754777531680;
        Sat, 09 Aug 2025 15:12: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>,
	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>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Victor Lira <victorm.lira@amd.com>
Subject: [PATCH 2/5] CI: Update ppc64 to use Debian Trixie
Date: Sat,  9 Aug 2025 23:12:03 +0100
Message-Id: <20250809221206.1260861-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250809221206.1260861-1-andrew.cooper3@citrix.com>
References: <20250809221206.1260861-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Everything works fine with Debian 13.  Provide two new build jobs (for a total
of 6), and update the test job.

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: Shawn Anastasio <sanastasio@raptorengineering.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Doug Goldstein <cardoe@cardoe.com>
CC: Marek Marczykowski-GÃ³recki <marmarek@invisiblethingslab.com>
CC: Victor Lira <victorm.lira@amd.com>

https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/1975927256
---
 automation/gitlab-ci/build.yaml | 18 ++++++++++++++++--
 automation/gitlab-ci/test.yaml  |  2 +-
 2 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index ab5211f77e5e..3fe539dc5683 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -319,10 +319,10 @@ debian-12-x86_64-clang-debug:
   variables:
     CONTAINER: debian:12-x86_64
 
-debian-12-ppc64le-gcc-debug:
+debian-13-ppc64le-gcc-debug:
   extends: .gcc-ppc64le-cross-build-debug
   variables:
-    CONTAINER: debian:12-ppc64le
+    CONTAINER: debian:13-ppc64le
     KBUILD_DEFCONFIG: ppc64_defconfig
     HYPERVISOR_ONLY: y
     EXTRA_XEN_CONFIG: |
@@ -705,6 +705,20 @@ debian-12-ppc64le-gcc:
     KBUILD_DEFCONFIG: ppc64_defconfig
     HYPERVISOR_ONLY: y
 
+debian-12-ppc64le-gcc-debug:
+  extends: .gcc-ppc64le-cross-build-debug
+  variables:
+    CONTAINER: debian:12-ppc64le
+    KBUILD_DEFCONFIG: ppc64_defconfig
+    HYPERVISOR_ONLY: y
+
+debian-13-ppc64le-gcc:
+  extends: .gcc-ppc64le-cross-build
+  variables:
+    CONTAINER: debian:13-ppc64le
+    KBUILD_DEFCONFIG: ppc64_defconfig
+    HYPERVISOR_ONLY: y
+
 # RISC-V 64 cross-build
 debian-12-riscv64-gcc:
   extends: .gcc-riscv64-cross-build
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 1f0b27b2378a..2f6f3affa637 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -712,4 +712,4 @@ qemu-smoke-ppc64le-powernv9-gcc:
   script:
     - ./automation/scripts/qemu-smoke-ppc64le.sh powernv9 2>&1 | tee ${LOGFILE}
   needs:
-    - debian-12-ppc64le-gcc-debug
+    - debian-13-ppc64le-gcc-debug
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Sat Aug 09 22:12:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 Aug 2025 22:12:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1076302.1437949 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukrnX-0006Re-3P; Sat, 09 Aug 2025 22:12:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1076302.1437949; Sat, 09 Aug 2025 22:12: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 1ukrnW-0006QK-Oz; Sat, 09 Aug 2025 22:12:18 +0000
Received: by outflank-mailman (input) for mailman id 1076302;
 Sat, 09 Aug 2025 22:12:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gSuF=2V=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ukrnV-0005qO-HS
 for xen-devel@lists.xenproject.org; Sat, 09 Aug 2025 22:12:17 +0000
Received: from mail-wm1-x343.google.com (mail-wm1-x343.google.com
 [2a00:1450:4864:20::343])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e5c3e878-756d-11f0-b898-0df219b8e170;
 Sun, 10 Aug 2025 00:12:11 +0200 (CEST)
Received: by mail-wm1-x343.google.com with SMTP id
 5b1f17b1804b1-458bf6d69e4so29172715e9.2
 for <xen-devel@lists.xenproject.org>; Sat, 09 Aug 2025 15:12:11 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3b79c453ab0sm35424323f8f.44.2025.08.09.15.12.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sat, 09 Aug 2025 15:12: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>
X-Inumbo-ID: e5c3e878-756d-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754777531; x=1755382331; 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=sgBHSZwGd1Mv4E+MHMlHeHL6OU/uMibF4bRSau40TK0=;
        b=QPkoaF9+BMESe6lwPVF3e4LOt07wznvtDDetG36P5IA667aiJEs3tgu20YztSa8PAQ
         sHmZnmijwSDfYFbePtg1lOA/yLLnJVcKgYHNVROXP4VWCIxYsWguUpZA7mkJu7LxV000
         DJzxuACgIwobJdlQgo+4ff5VWNGOHggvxqP7Q=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754777531; x=1755382331;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=sgBHSZwGd1Mv4E+MHMlHeHL6OU/uMibF4bRSau40TK0=;
        b=f10cLDnZqtGPTN8cAb4XS8QjLmQHa6wEcCDi0ggcY5+vIg0Ti2oTB41tsDe1zARai8
         Ut2TgzdcKZ7vbutESIQpJVx46Cn8cfhWnmmMb5o54AIxirRXy0WcrqaxDro3uiohGzj7
         cznTVRETHpmlT7w5moxGHtBcQO7ncy4tOWgryp69ys4IcOJpH9fVCYMH7krhId4QI5Ao
         /yiMd25odxX1c2ydPeyobjs82LpYSVNwdP+2Q6+ZNrPbNX6OPlnW0iT2pPqhW+Fns6CS
         PPOAUI+H845GaXl5+7SQ7cei0HVF6C32Usd1sweR9cPIHdFN9ECtC84zSAe6jWTnpHcT
         FCVw==
X-Gm-Message-State: AOJu0YxwNQKfDmBDcsPRMG6TkMtja8UdvFhwTvL8W7IblZwLQVEoTWX2
	9raC7p/fyEzaEGTlKabf//8YQC6w3PNrJQ2mfOrFt4ggDgRo8xsZxYD1IYjgHn8nTGywUSu+pcQ
	4AXnSsqTweg==
X-Gm-Gg: ASbGnctjGeMJQ0NjjelEqgwIjRg5X54tPX1BZ5hnLhXtwgl2PuT6gJio7SCws72TG97
	M7c3HexVe5vYT4rRr86l877DpdNCdSPoX0v08GLTkKDWayoxNgxM6DJH5nfzZrQh45PoeUl5Z8w
	bWndDLgY1LBfG9CnlaGR7lFQmQiZGbsnA3BNjABvaqy+GAw6+3revxa6QQ3aOjX2tc/L/Qk5FeV
	M/PZsyfrJFRKCo3tq4Hou99TQSWmRDANU6rEHy2MRbNo74RTJEd9PYUK9U07mjeFg4m0QXKf3Pa
	9ooLVfruBvwm4ocS1Dwp2KKyaPapXBV3oFQ7t3ftRcqVD/Q/riV1I2CVPM7Ugp9YXESvfzu8YQu
	Vhs8dDPym2C5D8KqleK2bllVnh9zNwNedJ6IV0UK94g35v9KMJyRDrJCjkQVDemAbDOGMONhiy/
	iC
X-Google-Smtp-Source: AGHT+IF2eO3jSQdww33CznVGiZVxiiyT47RBIRYXhug1GROIV/1Q9aOH6AUZzM+oMef1E2Xh4m69EQ==
X-Received: by 2002:a5d:5f4d:0:b0:3b7:9546:a0e8 with SMTP id ffacd0b85a97d-3b900b7aecbmr6415128f8f.41.1754777530767;
        Sat, 09 Aug 2025 15:12: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>,
	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>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Victor Lira <victorm.lira@amd.com>
Subject: [PATCH 1/5] CI: Trixie containers
Date: Sat,  9 Aug 2025 23:12:02 +0100
Message-Id: <20250809221206.1260861-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250809221206.1260861-1-andrew.cooper3@citrix.com>
References: <20250809221206.1260861-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Debian Trixie has been released.  Provide new containers.

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: Shawn Anastasio <sanastasio@raptorengineering.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Doug Goldstein <cardoe@cardoe.com>
CC: Marek Marczykowski-GÃ³recki <marmarek@invisiblethingslab.com>
CC: Victor Lira <victorm.lira@amd.com>

I've deployed these containers already so people can play.

No ARM yet.  There's an (old) outstanding series cleaning up the arm
infrastructure, blocked on unclear root requirements for the Xilinx runners.
That series really needs fixing.
---
 automation/build/debian/13-ppc64le.dockerfile | 37 ++++++++++
 automation/build/debian/13-riscv64.dockerfile | 37 ++++++++++
 automation/build/debian/13-x86_32.dockerfile  | 51 +++++++++++++
 automation/build/debian/13-x86_64.dockerfile  | 74 +++++++++++++++++++
 4 files changed, 199 insertions(+)
 create mode 100644 automation/build/debian/13-ppc64le.dockerfile
 create mode 100644 automation/build/debian/13-riscv64.dockerfile
 create mode 100644 automation/build/debian/13-x86_32.dockerfile
 create mode 100644 automation/build/debian/13-x86_64.dockerfile

diff --git a/automation/build/debian/13-ppc64le.dockerfile b/automation/build/debian/13-ppc64le.dockerfile
new file mode 100644
index 000000000000..5b22a4545842
--- /dev/null
+++ b/automation/build/debian/13-ppc64le.dockerfile
@@ -0,0 +1,37 @@
+# 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"
+
+ENV DEBIAN_FRONTEND=noninteractive
+ENV CROSS_COMPILE=powerpc64le-linux-gnu-
+ENV XEN_TARGET_ARCH=ppc64
+
+RUN <<EOF
+#!/bin/bash
+    set -e
+
+    useradd --create-home user
+
+    apt-get update
+
+    DEPS=(
+        # Xen
+        bison
+        build-essential
+        checkpolicy
+        flex
+        gcc-powerpc64le-linux-gnu
+        python3-minimal
+
+        # Qemu for test phase
+        qemu-system-ppc
+        expect
+    )
+
+    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/13-riscv64.dockerfile b/automation/build/debian/13-riscv64.dockerfile
new file mode 100644
index 000000000000..d2736c657d10
--- /dev/null
+++ b/automation/build/debian/13-riscv64.dockerfile
@@ -0,0 +1,37 @@
+# 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"
+
+ENV DEBIAN_FRONTEND=noninteractive
+ENV CROSS_COMPILE=riscv64-linux-gnu-
+ENV XEN_TARGET_ARCH=riscv64
+
+RUN <<EOF
+#!/bin/bash
+    set -e
+
+    useradd --create-home user
+
+    apt-get update
+
+    DEPS=(
+        # Xen
+        bison
+        build-essential
+        checkpolicy
+        flex
+        gcc-riscv64-linux-gnu
+        python3-minimal
+
+        # Qemu for test phase
+        qemu-system-riscv64
+        expect
+    )
+
+    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/13-x86_32.dockerfile b/automation/build/debian/13-x86_32.dockerfile
new file mode 100644
index 000000000000..3c35c207d25a
--- /dev/null
+++ b/automation/build/debian/13-x86_32.dockerfile
@@ -0,0 +1,51 @@
+# syntax=docker/dockerfile:1
+FROM --platform=linux/i386 debian:trixie
+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
+        clang
+        flex
+
+        # Tools (general)
+        ca-certificates
+        git-core
+        pkg-config
+        wget
+        # libacpi
+        acpica-tools
+        # libxl
+        uuid-dev
+        libyajl-dev
+        # xentop
+        libncurses5-dev
+        # Python bindings
+        python3-dev
+        python3-setuptools
+        # Ocaml bindings/oxenstored
+        ocaml-nox
+        ocaml-findlib
+    )
+
+    apt-get -y --no-install-recommends install "${DEPS[@]}"
+
+    rm -rf /var/lib/apt/lists*
+EOF
+
+USER user
+WORKDIR /build
+ENTRYPOINT ["linux32"]
diff --git a/automation/build/debian/13-x86_64.dockerfile b/automation/build/debian/13-x86_64.dockerfile
new file mode 100644
index 000000000000..947e68a440de
--- /dev/null
+++ b/automation/build/debian/13-x86_64.dockerfile
@@ -0,0 +1,74 @@
+# syntax=docker/dockerfile:1
+FROM --platform=linux/amd64 debian:trixie
+LABEL maintainer.name="The Xen Project"
+LABEL maintainer.email="xen-devel@lists.xenproject.org"
+
+ENV DEBIAN_FRONTEND=noninteractive
+
+RUN <<EOF
+#!/bin/bash
+    set -eu
+
+    apt-get update
+
+    DEPS=(
+        # Xen
+        bison
+        build-essential
+        checkpolicy
+        clang
+        flex
+
+        # Tools (general)
+        ca-certificates
+        git-core
+        pkg-config
+        wget
+        # libxenguest dombuilder
+        libbz2-dev
+        liblzma-dev
+        liblzo2-dev
+        libzstd-dev
+        zlib1g-dev
+        # libacpi
+        acpica-tools
+        # libxl
+        uuid-dev
+        libnl-3-dev
+        libyajl-dev
+        # RomBIOS
+        bcc
+        bin86
+        # xentop
+        libncurses5-dev
+        # Python bindings
+        python3-dev
+        python3-setuptools
+        # Golang bindings
+        golang-go
+        # Ocaml bindings/oxenstored
+        ocaml-nox
+        ocaml-findlib
+
+        # for test phase, qemu-smoke-* jobs
+        expect
+        qemu-system-x86
+
+        # for build-each-commit-gcc
+        ccache
+
+        # for qemu-alpine-x86_64-gcc
+        busybox-static
+        cpio
+
+        # For *-efi jobs
+        ovmf
+    )
+
+    apt-get -y --no-install-recommends install "${DEPS[@]}"
+
+    rm -rf /var/lib/apt/lists*
+EOF
+
+USER root
+WORKDIR /build
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Sat Aug 09 22:12:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 Aug 2025 22:12:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1076300.1437932 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukrnW-0006Du-8D; Sat, 09 Aug 2025 22:12:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1076300.1437932; Sat, 09 Aug 2025 22:12: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 1ukrnW-0006CE-3q; Sat, 09 Aug 2025 22:12:18 +0000
Received: by outflank-mailman (input) for mailman id 1076300;
 Sat, 09 Aug 2025 22:12:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gSuF=2V=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ukrnU-0005qO-GO
 for xen-devel@lists.xenproject.org; Sat, 09 Aug 2025 22:12:16 +0000
Received: from mail-wr1-x432.google.com (mail-wr1-x432.google.com
 [2a00:1450:4864:20::432])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e53f4d9e-756d-11f0-b898-0df219b8e170;
 Sun, 10 Aug 2025 00:12:10 +0200 (CEST)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-3b7892609a5so1784268f8f.1
 for <xen-devel@lists.xenproject.org>; Sat, 09 Aug 2025 15:12:10 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3b79c453ab0sm35424323f8f.44.2025.08.09.15.12.08
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sat, 09 Aug 2025 15:12:08 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e53f4d9e-756d-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754777530; x=1755382330; 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=lh4a8o2Cj1kZRtez3yhL6/zREtjrE8nJebwU6afQ+n8=;
        b=JzMAzm2SA6DqT51AKGXsjeWdKtiCgrnvQnw993H/D6v604DZGJyV1nTQuC8uIep4kV
         9wbK3KyR2cp62bfbjmKp+xl2j+pkO5bJAaA/pDiP/tLtPj8zZYEQ2MVRyNMUwh2HVoXW
         f0D25RDyXPZBuzsV7/i/ou2blupdwVjsBetlo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754777530; x=1755382330;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=lh4a8o2Cj1kZRtez3yhL6/zREtjrE8nJebwU6afQ+n8=;
        b=wxP4UQ5yHeypKvZiZ8SWh68+4zbtb3Lovdux6X+U3KSF5QZAiUX4tG3hnXtHEa8wlG
         /a8vNmmREtEdv0XOWXABCN3Xg+Y+CKW3X+KUHTEz0qVk1bpSfa23oUSOpxU0S7QWbyNN
         /tOmlbYxYpbQG9oaWRCY7ZB3kxruMtHNAl213Uk9qeFvp6WO2UpOx0hx530KB8vJWT/K
         WETdo5yx3D+hl/VfOpxVzp7ID8Nrb10HK1DtWrV2j2p6oDYUf3Cv6EP60y/t5/T1et+q
         wOImx4e5WJ/tMEaH6GAbJmrcAOJtlSAGhIWQ27nRcd04dHRGK92+KJKz7olPcebNerh+
         f2fg==
X-Gm-Message-State: AOJu0Yx3qVwZe8IaqYMC77cIxtJ03wrenPXbTuRMkuggMTakWDl/uVE8
	UJtpnM7Mro5FtIJG7EEHJ6wldw9Jg2PuwvVK3ZHnpaQW/zOrp7fyWZK6bMfubhCd5ARgByM1Ydo
	A/nYLkMk=
X-Gm-Gg: ASbGncvGlZxBna7XJmrxyLZwrnp5aDqCIw+YpR2M8PjI1chV64b0jejBJWZn8GzSKWs
	DX8kzwPkV5QIxVw9MCJLD+lzkuLBJkifv/2Ngg+m3Cecv5per2mC09mITuWnlGf3ikajwFF6G3t
	VMamEch6qlYD4xtKMKEquV3Iy833dFeQ7em42YXJLdfIf+KJ/oMiJh9KiDqOuklmR0f2KfneJGY
	jgF/IHzaRVm9SQcfZWq+/UsAaGY/sjvJWiwZg3cLEoMllqt+2qEyPPU/JPFIWJ8PacmcUT0RAyX
	ofkjJLJyKgHbwcuIkPBQAg/agOJjD3W9RlN/xd5Czx+pcYscaiepQBFV2pbss5B1hyXP+Vy3OiT
	+BhRHqJVQr8w7VWPpcUYIVBPmRtH2sFLQ5tIiPo49UzlYg/U6JvDgH7Le0NsHeTrjIdSrg6Pgmg
	X0
X-Google-Smtp-Source: AGHT+IG/cJIfjwwKByHhQx+n1LZqJv0rVgSazJarinQUcI21HSnqw/Ly3g2G5PgiAmWPoVatjfKrzw==
X-Received: by 2002:a5d:5848:0:b0:3b8:893f:a17d with SMTP id ffacd0b85a97d-3b900b511b8mr6590422f8f.49.1754777529942;
        Sat, 09 Aug 2025 15:12: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>,
	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>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Victor Lira <victorm.lira@amd.com>,
	Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH for-4.21 0/5] CI: Add Debian Trixie
Date: Sat,  9 Aug 2025 23:12:01 +0100
Message-Id: <20250809221206.1260861-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

I know it's past the last-post deadline, but Trixie was only released today.

In terms of backports, we should at least go back to the bugfix branches.

Andrew Cooper (5):
  CI: Trixie containers
  CI: Update ppc64 to use Debian Trixie
  CI: Update riscv64 to use Debian Trixie
  stubdom: Fix -Wimplicit-int in newlib
  CI: Update x86 to use Debian Trixie

 automation/build/debian/13-ppc64le.dockerfile | 37 ++++++++
 automation/build/debian/13-riscv64.dockerfile | 37 ++++++++
 automation/build/debian/13-x86_32.dockerfile  | 51 ++++++++++
 automation/build/debian/13-x86_64.dockerfile  | 74 +++++++++++++++
 automation/gitlab-ci/build.yaml               | 94 +++++++++++++++----
 automation/gitlab-ci/test.yaml                | 14 +--
 stubdom/Makefile                              |  1 +
 stubdom/newlib-fix-etext.patch                | 23 +++++
 8 files changed, 306 insertions(+), 25 deletions(-)
 create mode 100644 automation/build/debian/13-ppc64le.dockerfile
 create mode 100644 automation/build/debian/13-riscv64.dockerfile
 create mode 100644 automation/build/debian/13-x86_32.dockerfile
 create mode 100644 automation/build/debian/13-x86_64.dockerfile
 create mode 100644 stubdom/newlib-fix-etext.patch

-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Sat Aug 09 22:12:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 Aug 2025 22:12:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1076297.1437911 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukrnU-0005qk-GN; Sat, 09 Aug 2025 22:12:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1076297.1437911; Sat, 09 Aug 2025 22:12: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 1ukrnU-0005qd-Cz; Sat, 09 Aug 2025 22:12:16 +0000
Received: by outflank-mailman (input) for mailman id 1076297;
 Sat, 09 Aug 2025 22:12:15 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gSuF=2V=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ukrnT-0005qN-1o
 for xen-devel@lists.xenproject.org; Sat, 09 Aug 2025 22:12:15 +0000
Received: from mail-wm1-x341.google.com (mail-wm1-x341.google.com
 [2a00:1450:4864:20::341])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e6b94cbe-756d-11f0-a325-13f23c93f187;
 Sun, 10 Aug 2025 00:12:13 +0200 (CEST)
Received: by mail-wm1-x341.google.com with SMTP id
 5b1f17b1804b1-451d3f72391so25592555e9.3
 for <xen-devel@lists.xenproject.org>; Sat, 09 Aug 2025 15:12:13 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3b79c453ab0sm35424323f8f.44.2025.08.09.15.12.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sat, 09 Aug 2025 15:12: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>
X-Inumbo-ID: e6b94cbe-756d-11f0-a325-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754777532; x=1755382332; 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=W1InbWNIn9kEj9hdKR1puWI33YAQ4yKAVpamMRnwML8=;
        b=QrTmMDOa6lu4F89PpnRD+MQvYq2TxS43PhwtMoq3akOSTzSeeKrHd1Tvw1aELCgkKD
         HBRZKzVf8pnRsJfMbrNmpXpyu+W5dWemcdcmgk5xWAZqOxNsYeGnVL1EVJSZOA/f5Y1S
         O/Nvp9fu7Oc3XI8cmqcD5J1FYYAT2llBSXbjs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754777532; x=1755382332;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=W1InbWNIn9kEj9hdKR1puWI33YAQ4yKAVpamMRnwML8=;
        b=JPI8jSmHf0VTVwQrQaBu9+hVkEz453ag+aCkNXcs3FITZ3zhY/v0/plqAP5uqe4lkl
         ObjSmJmp2T7nfYycyEWGT4DXgTYwaVlBbPMUOE4zSkF9UTpa3LRUxWVDmGQujHZaCTG1
         dx9iaW8ep//CAQfWHQWUi7jv1YG5/1m6ROhjTH7U4jrXLqMp924w0s04rfTYpyGUc8c6
         d2+a1CZul3Avp3tgQUHPAkYYkF7il/DNclcPz4FFbgf/J0BuNikjYj7ETXtu40lSEtw8
         LafvhpeC7GKnD3wNWf2m9AnX8pLz4Xex4rC8TwFTdFcO4BQE0qwp5sWYrUhNMM4AuEZa
         wBjw==
X-Gm-Message-State: AOJu0YzwMLjZnNkzrWvyO+Ypw/CFe0t9htKNxL44UaJqpjcVBry4q1k3
	dqcC95FB9ZB2dsLCWWXWlju1mQJ7eOd79w59aRJdSLQ6IpXQkU4kSSn4hxhjbGYFeRGRuNy+N3J
	bDY8lMk4t8A==
X-Gm-Gg: ASbGnctDm3O5Sxl3aY6OyTxnPwL89oiaozc8DwxL1O6EPbWF45BDboQ6m73Aa+i+UFN
	uZewh5bzWdwmNbfm7AkgHEeTuN3yy+IbBmzp5SMOY5NXm4YAv1TKrZKLWh0Wavs05bhkNz5kLb4
	fc9rENoV80B+9eCdkLa765jfthhS2NCzn/Uz+A+prJvlLH13LuhhvxWmqE1DM4xj3HgaisewJAT
	+U+Gjj0GGniEpxALSK08l224wNJY2HmXpIIAo1UQ0MjiAzHTXTnd2JyFADwjtizDN6F1fTAB54u
	w1ZofU3+1F2Iud6k3HJ/067ZtSs7DDqCNwJGO7lAqn5RLUvsuQHyx4UMjGMko3JgVx2xZLT2gwU
	jLJSbCvlXlbjQ9FCBFpOjOdOBMitXeyYkwJFaPXJZBO7LU6nj2FKu85+NiLhvgKe13MI0YmRkqX
	MG
X-Google-Smtp-Source: AGHT+IEWLBt6JAVymy0iPTqZYOzsL0c0vEPxi/XIXIpC2HGIwkuFh1Wii6izAKTSzTIP0QpJ3amErA==
X-Received: by 2002:a05:600c:5254:b0:456:13d8:d141 with SMTP id 5b1f17b1804b1-459f4f282damr60550315e9.27.1754777532480;
        Sat, 09 Aug 2025 15:12: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>,
	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>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Victor Lira <victorm.lira@amd.com>
Subject: [PATCH 3/5] CI: Update riscv64 to use Debian Trixie
Date: Sat,  9 Aug 2025 23:12:04 +0100
Message-Id: <20250809221206.1260861-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250809221206.1260861-1-andrew.cooper3@citrix.com>
References: <20250809221206.1260861-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Everything works fine with Debian 13.  Provide two new build jobs, and update
both the randconfig the test jobs.

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: Shawn Anastasio <sanastasio@raptorengineering.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Doug Goldstein <cardoe@cardoe.com>
CC: Marek Marczykowski-GÃ³recki <marmarek@invisiblethingslab.com>
CC: Victor Lira <victorm.lira@amd.com>

https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/1975929387
---
 automation/gitlab-ci/build.yaml | 22 ++++++++++++++++++----
 automation/gitlab-ci/test.yaml  |  2 +-
 2 files changed, 19 insertions(+), 5 deletions(-)

diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index 3fe539dc5683..f8e45f3467c8 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -329,10 +329,10 @@ debian-13-ppc64le-gcc-debug:
       CONFIG_UBSAN=y
       CONFIG_UBSAN_FATAL=y
 
-debian-12-riscv64-gcc-debug:
+debian-13-riscv64-gcc-debug:
   extends: .gcc-riscv64-cross-build-debug
   variables:
-    CONTAINER: debian:12-riscv64
+    CONTAINER: debian:13-riscv64
     KBUILD_DEFCONFIG: tiny64_defconfig
     HYPERVISOR_ONLY: y
     EXTRA_XEN_CONFIG: |
@@ -727,6 +727,20 @@ debian-12-riscv64-gcc:
     KBUILD_DEFCONFIG: tiny64_defconfig
     HYPERVISOR_ONLY: y
 
+debian-12-riscv64-gcc-debug:
+  extends: .gcc-riscv64-cross-build-debug
+  variables:
+    CONTAINER: debian:12-riscv64
+    KBUILD_DEFCONFIG: tiny64_defconfig
+    HYPERVISOR_ONLY: y
+
+debian-13-riscv64-gcc:
+  extends: .gcc-riscv64-cross-build
+  variables:
+    CONTAINER: debian:13-riscv64
+    KBUILD_DEFCONFIG: tiny64_defconfig
+    HYPERVISOR_ONLY: y
+
 .riscv-fixed-randconfig:
   variables: &riscv-fixed-randconfig
     EXTRA_FIXED_RANDCONFIG: |
@@ -739,10 +753,10 @@ debian-12-riscv64-gcc:
       CONFIG_VM_EVENT=n
       CONFIG_XSM=n
 
-debian-12-riscv64-gcc-randconfig:
+debian-13-riscv64-gcc-randconfig:
   extends: .gcc-riscv64-cross-build
   variables:
-    CONTAINER: debian:12-riscv64
+    CONTAINER: debian:13-riscv64
     KBUILD_DEFCONFIG: tiny64_defconfig
     RANDCONFIG: y
     <<: *riscv-fixed-randconfig
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 2f6f3affa637..9acd984d294c 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -705,7 +705,7 @@ qemu-smoke-riscv64-gcc:
   script:
     - ./automation/scripts/qemu-smoke-riscv64.sh 2>&1 | tee ${LOGFILE}
   needs:
-    - debian-12-riscv64-gcc-debug
+    - debian-13-riscv64-gcc-debug
 
 qemu-smoke-ppc64le-powernv9-gcc:
   extends: .qemu-ppc64le
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Sat Aug 09 22:12:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 Aug 2025 22:12:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1076298.1437921 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukrnV-00064R-O0; Sat, 09 Aug 2025 22:12:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1076298.1437921; Sat, 09 Aug 2025 22:12: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 1ukrnV-00064K-Jk; Sat, 09 Aug 2025 22:12:17 +0000
Received: by outflank-mailman (input) for mailman id 1076298;
 Sat, 09 Aug 2025 22:12:15 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gSuF=2V=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ukrnT-0005qN-SW
 for xen-devel@lists.xenproject.org; Sat, 09 Aug 2025 22:12:15 +0000
Received: from mail-wr1-x441.google.com (mail-wr1-x441.google.com
 [2a00:1450:4864:20::441])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e812a21a-756d-11f0-a325-13f23c93f187;
 Sun, 10 Aug 2025 00:12:15 +0200 (CEST)
Received: by mail-wr1-x441.google.com with SMTP id
 ffacd0b85a97d-3b78315ff04so2741325f8f.0
 for <xen-devel@lists.xenproject.org>; Sat, 09 Aug 2025 15:12:15 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3b79c453ab0sm35424323f8f.44.2025.08.09.15.12.13
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sat, 09 Aug 2025 15:12: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>
X-Inumbo-ID: e812a21a-756d-11f0-a325-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754777535; x=1755382335; 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=x8jEOu6+Wmu2jfug+vxWSSfDmwNVRaIms3wraAaPkLY=;
        b=Dz9vn92BJ2/ySmJ9P3NT+nMOKO7mp6sYZp4m4Y99sSj5SzinDmwxVbvE1sNUQsuZx5
         kjmQB9rOV5gPDa1nJHtSVoo/4GrQKtlh00j4JEC1tWjn9q9J/1u7QTXWi0FCyMvwN6vs
         j8czStDMGitj6nRzE3jSYXhDxR/2OFG0HFMXo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754777535; x=1755382335;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=x8jEOu6+Wmu2jfug+vxWSSfDmwNVRaIms3wraAaPkLY=;
        b=ZJVwnZMLXRF7UvEW19vKJcGvGhTDkKWPb97plLwqx7XZ1I1HdOQraZCPMhxjpaSIgU
         rbZAwAx5lxnnU/OvNKQFPxaUwjAVDNzAiqyVo6NyqwFRQAWmcVFqYzn6eMYIiBRGf8tu
         QVEVBz52dK1kwybGAuBs9X03nriEV9lpeAkeHIT0bY3LsoQrQe0JoMRu3F+7r6IGgWbA
         fhCm0+o4vULMCZRtiR3kdJpMElE5NE499dsoLel/hJo5t45gfkwcR0sin5IR0r49yvki
         TOUNj+HKsT3zC9K7HBXec1ErO0xazS08SaqMN83zDMDToBXAer1DtofhrWbMte7eQ5zq
         JuDQ==
X-Gm-Message-State: AOJu0YxJ4LEiGFovoFgGrCz3Dggb/Hy+KGgmWe1B8wBz9hn1bETTs/9/
	bjjDw8bJngpnYrOklavnDnyZ2A4Jk+5w5pN6RIBGoqmh4bw0kCH/M1QZRv9kwIK7Trh+edcsZFX
	y5NCLoCi2OA==
X-Gm-Gg: ASbGncsTXXwXu6K9DNFa8sq7QB5cMxua3gYx76YEKzJT8h6N1i5uT1725qOWfi/yH6B
	S0EVHNi4pkK9d80jDxW6cblmPKauWaetQ6f80qU3g6W51Jx0NMoo4+ZbW5srn8SWmDl0TToRNzn
	s+KXK5dGAnlFhp3FmI3S79xQj7/llUSJ3ohCZEkI5iA6jfI/LUHBQ2iEnNMBYzHXxk8djkeX9Wp
	mecNXraw/UvFIF5kH/0oL52V7SkY5YccJVwycymlLimGVESgima7/cbchcbFJNK1J7Iq28zdcDj
	ZvFjjkdvAZCbk80eM9Auj7CY0VGr9KJBCQ43K4FMuUH8jhq62X0hu70Q+8cBGDLfzsaCZRVirQA
	MIckWw859VIDotTH8jKJDDaS9kM5k9mzbsgf0gPVZX0052Y+KDYByw5P2eLB7LnbsLQehNUWpIx
	+/
X-Google-Smtp-Source: AGHT+IH0EYhksleZNTZuq5+L/1QNNPMQh/53GIa6ar0t3hlOvb82O7XDJykDV4EsYFApiPg/bioABA==
X-Received: by 2002:a05:6000:1ac7:b0:3b7:6d95:56d2 with SMTP id ffacd0b85a97d-3b900b449b0mr5556976f8f.7.1754777534659;
        Sat, 09 Aug 2025 15:12:14 -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>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Victor Lira <victorm.lira@amd.com>
Subject: [PATCH 5/5] CI: Update x86 to use Debian Trixie
Date: Sat,  9 Aug 2025 23:12:06 +0100
Message-Id: <20250809221206.1260861-6-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250809221206.1260861-1-andrew.cooper3@citrix.com>
References: <20250809221206.1260861-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

With the exception of the custom IBT job, copy all Debian 12 jobs making
Debian 13 versions, then trim the Debian 12 ranconfig jobs.  Update the test
jobs.

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: Shawn Anastasio <sanastasio@raptorengineering.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Doug Goldstein <cardoe@cardoe.com>
CC: Marek Marczykowski-GÃ³recki <marmarek@invisiblethingslab.com>
CC: Victor Lira <victorm.lira@amd.com>

https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/1975958452

We may want to trim a few more jobs, but I'm not sure where the right balance is.
---
 automation/gitlab-ci/build.yaml | 54 +++++++++++++++++++++++++--------
 automation/gitlab-ci/test.yaml  | 10 +++---
 2 files changed, 47 insertions(+), 17 deletions(-)

diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index f8e45f3467c8..4cb52fe59715 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -309,15 +309,15 @@ alpine-3.18-gcc-debug:
       CONFIG_UCODE_SCAN_DEFAULT=y
       CONFIG_XHCI=y
 
-debian-12-x86_64-gcc-debug:
+debian-13-x86_64-gcc-debug:
   extends: .gcc-x86-64-build-debug
   variables:
-    CONTAINER: debian:12-x86_64
+    CONTAINER: debian:13-x86_64
 
-debian-12-x86_64-clang-debug:
+debian-13-x86_64-clang-debug:
   extends: .clang-x86-64-build-debug
   variables:
-    CONTAINER: debian:12-x86_64
+    CONTAINER: debian:13-x86_64
 
 debian-13-ppc64le-gcc-debug:
   extends: .gcc-ppc64le-cross-build-debug
@@ -545,24 +545,20 @@ debian-12-x86_64-clang:
   variables:
     CONTAINER: debian:12-x86_64
 
-debian-12-x86_64-clang-randconfig:
-  extends: .clang-x86-64-build
+debian-12-x86_64-clang-debug:
+  extends: .clang-x86-64-build-debug
   variables:
     CONTAINER: debian:12-x86_64
-    RANDCONFIG: y
-    EXTRA_FIXED_RANDCONFIG: |
-      CONFIG_COVERAGE=n # Disable coverage otherwise build times out.
 
 debian-12-x86_64-gcc:
   extends: .gcc-x86-64-build
   variables:
     CONTAINER: debian:12-x86_64
 
-debian-12-x86_64-gcc-randconfig:
-  extends: .gcc-x86-64-build
+debian-12-x86_64-gcc-debug:
+  extends: .gcc-x86-64-build-debug
   variables:
     CONTAINER: debian:12-x86_64
-    RANDCONFIG: y
 
 debian-12-x86_32-clang-debug:
   extends: .clang-x86-32-build-debug
@@ -574,6 +570,40 @@ debian-12-x86_32-gcc-debug:
   variables:
     CONTAINER: debian:12-x86_32
 
+debian-13-x86_64-clang:
+  extends: .clang-x86-64-build
+  variables:
+    CONTAINER: debian:13-x86_64
+
+debian-13-x86_64-clang-randconfig:
+  extends: .clang-x86-64-build
+  variables:
+    CONTAINER: debian:13-x86_64
+    RANDCONFIG: y
+    EXTRA_FIXED_RANDCONFIG: |
+      CONFIG_COVERAGE=n # Disable coverage otherwise build times out.
+
+debian-13-x86_64-gcc:
+  extends: .gcc-x86-64-build
+  variables:
+    CONTAINER: debian:13-x86_64
+
+debian-13-x86_64-gcc-randconfig:
+  extends: .gcc-x86-64-build
+  variables:
+    CONTAINER: debian:13-x86_64
+    RANDCONFIG: y
+
+debian-13-x86_32-clang-debug:
+  extends: .clang-x86-32-build-debug
+  variables:
+    CONTAINER: debian:13-x86_32
+
+debian-13-x86_32-gcc-debug:
+  extends: .gcc-x86-32-build-debug
+  variables:
+    CONTAINER: debian:13-x86_32
+
 fedora-41-x86_64-gcc:
   extends: .gcc-x86-64-build
   variables:
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 9acd984d294c..96e952235737 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -661,35 +661,35 @@ qemu-smoke-x86-64-gcc:
   script:
     - ./automation/scripts/qemu-xtf.sh x86-64 pv64 example 2>&1 | tee ${LOGFILE}
   needs:
-    - debian-12-x86_64-gcc-debug
+    - debian-13-x86_64-gcc-debug
 
 qemu-smoke-x86-64-clang:
   extends: .qemu-smoke-x86-64
   script:
     - ./automation/scripts/qemu-xtf.sh x86-64 pv64 example 2>&1 | tee ${LOGFILE}
   needs:
-    - debian-12-x86_64-clang-debug
+    - debian-13-x86_64-clang-debug
 
 qemu-smoke-x86-64-gcc-pvh:
   extends: .qemu-smoke-x86-64
   script:
     - ./automation/scripts/qemu-xtf.sh x86-64 hvm64 example 2>&1 | tee ${LOGFILE}
   needs:
-    - debian-12-x86_64-gcc-debug
+    - debian-13-x86_64-gcc-debug
 
 qemu-smoke-x86-64-clang-pvh:
   extends: .qemu-smoke-x86-64
   script:
     - ./automation/scripts/qemu-xtf.sh x86-64 hvm64 example 2>&1 | tee ${LOGFILE}
   needs:
-    - debian-12-x86_64-clang-debug
+    - debian-13-x86_64-clang-debug
 
 qemu-smoke-x86-64-gcc-efi:
   extends: .qemu-smoke-x86-64
   script:
     - ./automation/scripts/qemu-xtf.sh x86-64-efi pv64 example 2>&1 | tee ${LOGFILE}
   needs:
-    - debian-12-x86_64-gcc-debug
+    - debian-13-x86_64-gcc-debug
 
 qemu-xtf-argo-x86_64-gcc-debug:
   extends: .qemu-smoke-x86-64
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Sat Aug 09 23:03:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 09 Aug 2025 23:03:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1076376.1437970 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uksah-0006fx-IG; Sat, 09 Aug 2025 23:03:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1076376.1437970; Sat, 09 Aug 2025 23:03:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uksah-0006fq-Fc; Sat, 09 Aug 2025 23:03:07 +0000
Received: by outflank-mailman (input) for mailman id 1076376;
 Sat, 09 Aug 2025 23:03:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=jH7k=2V=kernel.org=ardb@srs-se1.protection.inumbo.net>)
 id 1uksah-0006fJ-53
 for xen-devel@lists.xenproject.org; Sat, 09 Aug 2025 23:03:07 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0112c7f8-7575-11f0-b898-0df219b8e170;
 Sun, 10 Aug 2025 01:03:04 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 3016245CB4
 for <xen-devel@lists.xenproject.org>; Sat,  9 Aug 2025 23:03:03 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0D429C4CEF8
 for <xen-devel@lists.xenproject.org>; Sat,  9 Aug 2025 23:03:03 +0000 (UTC)
Received: by mail-lj1-f170.google.com with SMTP id
 38308e7fff4ca-3323b99094fso27909031fa.0
 for <xen-devel@lists.xenproject.org>; Sat, 09 Aug 2025 16:03: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>
X-Inumbo-ID: 0112c7f8-7575-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1754780583;
	bh=st/eweHiwV92mUXCvAGpIiPGkvX3rErOBfHnwy2GSps=;
	h=References:In-Reply-To:From:Date:Subject:To:Cc:From;
	b=NhkQpTou8reSM51IS+2E4WNb4pJgZFOq/hiUQIN0TiElPNcMp+LS6vjXxnv71d4GX
	 CZ8daBgABogz2YQMbScCOF/d8NbeFW758Rd7zV2ByVOhKuIt2kltfkzhwnHxif1Tm3
	 9VQYogOHuqRGA+YDMuekUicwZt+o5UA5FCbCY72jizCTMxVBRyJyfTrP9oh0MGmZAQ
	 N2g5GZu8o3juqPBxT6HV374BnxqpEcyNfGmE1jlFN7gDhQzD2Qsv20tH/QBo+X9vRE
	 9t/LN5bDUAIJ4uIwGiW0lkf2p8zzdxxw28/w7CukWqdthBfNDALjDtlGDEGzwidSC5
	 bfV52PDqTIPVQ==
X-Forwarded-Encrypted: i=1; AJvYcCWomncXOWwigfuHOV5zQBsO52QEaLL1+Jg1NVX4tdAwKJ2hVlrrlcSRQ3TcEv/INelR1iFiy5NizxI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwvjzJOundgbMXaWyUdb2sknLw1GAQi1qhlJmT8mlihNse7tutJ
	zlCGGQPEK5CNQtLyYG8qq1Fg7CqU6RA6CecrjLnKDsqtJPR1217ZOcUoS5dBaE6Z/gxhEtkQDUz
	MKYOiAsGqzt51rNxL0b5SJTgKMQj3k60=
X-Google-Smtp-Source: AGHT+IHacj93S4TAyJS2Y33dq5fDEf3fw3H8pVieqGYKOrts0lqIXyoZID+Z9tXd8YeI87NlNCl9WjBC2eK/6u6auvE=
X-Received: by 2002:a05:651c:3799:b0:32a:7270:5c29 with SMTP id
 38308e7fff4ca-333a213e262mr13218821fa.2.1754780581250; Sat, 09 Aug 2025
 16:03:01 -0700 (PDT)
MIME-Version: 1.0
References: <20250714060843.4029171-5-ardb+git@google.com> <20250714060843.4029171-6-ardb+git@google.com>
 <20250803010449df1f5cfb@mail.local>
In-Reply-To: <20250803010449df1f5cfb@mail.local>
From: Ard Biesheuvel <ardb@kernel.org>
Date: Sun, 10 Aug 2025 09:02:49 +1000
X-Gmail-Original-Message-ID: <CAMj1kXGQyLXwk9Bq24xhPPsB1nO9RcSkvh=0p8aNP=Q=Az8V7w@mail.gmail.com>
X-Gm-Features: Ac12FXyxSfM9EC_oe23LQ4fW6u1l84sRZB4iGnVNSBFl1E9opWCoKNhC-oXMcUQ
Message-ID: <CAMj1kXGQyLXwk9Bq24xhPPsB1nO9RcSkvh=0p8aNP=Q=Az8V7w@mail.gmail.com>
Subject: Re: [RFC PATCH 1/3] efi-rtc: Remove wakeup functionality
To: Alexandre Belloni <alexandre.belloni@bootlin.com>
Cc: Ard Biesheuvel <ardb+git@google.com>, linux-kernel@vger.kernel.org, 
	linux-arm-kernel@lists.infradead.org, 
	Heinrich Schuchardt <heinrich.schuchardt@canonical.com>, Feng Tang <feng.tang@linux.alibaba.com>, 
	Juergen Gross <jgross@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, Sunil V L <sunilvl@ventanamicro.com>, 
	Bibo Mao <maobibo@loongson.cn>, linux-rtc@vger.kernel.org, linux-efi@vger.kernel.org, 
	xen-devel@lists.xenproject.org, x86@kernel.org, 
	linux-riscv@lists.infradead.org, loongarch@lists.linux.dev
Content-Type: text/plain; charset="UTF-8"

On Sun, 3 Aug 2025 at 11:05, Alexandre Belloni
<alexandre.belloni@bootlin.com> wrote:
>
> Hello,
>
> Apart from the topic that should be "rtc: efi:...", I'm ready to apply
> this patch.
>

Thanks, please go ahead.

> On 14/07/2025 08:08:45+0200, Ard Biesheuvel wrote:
> > From: Ard Biesheuvel <ardb@kernel.org>
> >
> > The EFI rtc driver is used by non-x86 architectures only, and exposes
> > the get/set wakeup time functionality provided by the underlying
> > platform. This is usually broken on most platforms, and not widely used
> > to begin with [if at all], so let's just remove it.
> >
> > Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
> > ---
> >  drivers/rtc/rtc-efi.c | 76 +-------------------
> >  1 file changed, 2 insertions(+), 74 deletions(-)
> >
> > diff --git a/drivers/rtc/rtc-efi.c b/drivers/rtc/rtc-efi.c
> > index fa8bf82df948..b4f44999ef0f 100644
> > --- a/drivers/rtc/rtc-efi.c
> > +++ b/drivers/rtc/rtc-efi.c
> > @@ -112,48 +112,6 @@ convert_from_efi_time(efi_time_t *eft, struct rtc_time *wtime)
> >       return true;
> >  }
> >
> > -static int efi_read_alarm(struct device *dev, struct rtc_wkalrm *wkalrm)
> > -{
> > -     efi_time_t eft;
> > -     efi_status_t status;
> > -
> > -     /*
> > -      * As of EFI v1.10, this call always returns an unsupported status
> > -      */
> > -     status = efi.get_wakeup_time((efi_bool_t *)&wkalrm->enabled,
> > -                                  (efi_bool_t *)&wkalrm->pending, &eft);
> > -
> > -     if (status != EFI_SUCCESS)
> > -             return -EINVAL;
> > -
> > -     if (!convert_from_efi_time(&eft, &wkalrm->time))
> > -             return -EIO;
> > -
> > -     return rtc_valid_tm(&wkalrm->time);
> > -}
> > -
> > -static int efi_set_alarm(struct device *dev, struct rtc_wkalrm *wkalrm)
> > -{
> > -     efi_time_t eft;
> > -     efi_status_t status;
> > -
> > -     convert_to_efi_time(&wkalrm->time, &eft);
> > -
> > -     /*
> > -      * XXX Fixme:
> > -      * As of EFI 0.92 with the firmware I have on my
> > -      * machine this call does not seem to work quite
> > -      * right
> > -      *
> > -      * As of v1.10, this call always returns an unsupported status
> > -      */
> > -     status = efi.set_wakeup_time((efi_bool_t)wkalrm->enabled, &eft);
> > -
> > -     dev_warn(dev, "write status is %d\n", (int)status);
> > -
> > -     return status == EFI_SUCCESS ? 0 : -EINVAL;
> > -}
> > -
> >  static int efi_read_time(struct device *dev, struct rtc_time *tm)
> >  {
> >       efi_status_t status;
> > @@ -188,17 +146,13 @@ static int efi_set_time(struct device *dev, struct rtc_time *tm)
> >
> >  static int efi_procfs(struct device *dev, struct seq_file *seq)
> >  {
> > -     efi_time_t        eft, alm;
> > +     efi_time_t        eft;
> >       efi_time_cap_t    cap;
> > -     efi_bool_t        enabled, pending;
> > -     struct rtc_device *rtc = dev_get_drvdata(dev);
> >
> >       memset(&eft, 0, sizeof(eft));
> > -     memset(&alm, 0, sizeof(alm));
> >       memset(&cap, 0, sizeof(cap));
> >
> >       efi.get_time(&eft, &cap);
> > -     efi.get_wakeup_time(&enabled, &pending, &alm);
> >
> >       seq_printf(seq,
> >                  "Time\t\t: %u:%u:%u.%09u\n"
> > @@ -214,26 +168,6 @@ static int efi_procfs(struct device *dev, struct seq_file *seq)
> >               /* XXX fixme: convert to string? */
> >               seq_printf(seq, "Timezone\t: %u\n", eft.timezone);
> >
> > -     if (test_bit(RTC_FEATURE_ALARM, rtc->features)) {
> > -             seq_printf(seq,
> > -                        "Alarm Time\t: %u:%u:%u.%09u\n"
> > -                        "Alarm Date\t: %u-%u-%u\n"
> > -                        "Alarm Daylight\t: %u\n"
> > -                        "Enabled\t\t: %s\n"
> > -                        "Pending\t\t: %s\n",
> > -                        alm.hour, alm.minute, alm.second, alm.nanosecond,
> > -                        alm.year, alm.month, alm.day,
> > -                        alm.daylight,
> > -                        enabled == 1 ? "yes" : "no",
> > -                        pending == 1 ? "yes" : "no");
> > -
> > -             if (alm.timezone == EFI_UNSPECIFIED_TIMEZONE)
> > -                     seq_puts(seq, "Timezone\t: unspecified\n");
> > -             else
> > -                     /* XXX fixme: convert to string? */
> > -                     seq_printf(seq, "Timezone\t: %u\n", alm.timezone);
> > -     }
> > -
> >       /*
> >        * now prints the capabilities
> >        */
> > @@ -249,8 +183,6 @@ static int efi_procfs(struct device *dev, struct seq_file *seq)
> >  static const struct rtc_class_ops efi_rtc_ops = {
> >       .read_time      = efi_read_time,
> >       .set_time       = efi_set_time,
> > -     .read_alarm     = efi_read_alarm,
> > -     .set_alarm      = efi_set_alarm,
> >       .proc           = efi_procfs,
> >  };
> >
> > @@ -271,11 +203,7 @@ static int __init efi_rtc_probe(struct platform_device *dev)
> >       platform_set_drvdata(dev, rtc);
> >
> >       rtc->ops = &efi_rtc_ops;
> > -     clear_bit(RTC_FEATURE_UPDATE_INTERRUPT, rtc->features);
> > -     if (efi_rt_services_supported(EFI_RT_SUPPORTED_WAKEUP_SERVICES))
> > -             set_bit(RTC_FEATURE_ALARM_WAKEUP_ONLY, rtc->features);
> > -     else
> > -             clear_bit(RTC_FEATURE_ALARM, rtc->features);
> > +     clear_bit(RTC_FEATURE_ALARM, rtc->features);
> >
> >       device_init_wakeup(&dev->dev, true);
> >
> > --
> > 2.50.0.727.gbf7dc18ff4-goog
> >
>
> --
> Alexandre Belloni, co-owner and COO, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
>


From xen-devel-bounces@lists.xenproject.org Sun Aug 10 06:14:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 10 Aug 2025 06:14:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1076541.1437981 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ukzKG-0005cB-Nu; Sun, 10 Aug 2025 06:14:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1076541.1437981; Sun, 10 Aug 2025 06:14: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 1ukzKG-0005c4-Kl; Sun, 10 Aug 2025 06:14:36 +0000
Received: by outflank-mailman (input) for mailman id 1076541;
 Sun, 10 Aug 2025 06:14:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=MvAv=2W=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1ukzKE-0005bi-T3
 for xen-devel@lists.xenproject.org; Sun, 10 Aug 2025 06:14:35 +0000
Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com
 [2a00:1450:4864:20::62f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 468d4e82-75b1-11f0-a325-13f23c93f187;
 Sun, 10 Aug 2025 08:14:30 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-af93150f7c2so523453866b.3
 for <xen-devel@lists.xenproject.org>; Sat, 09 Aug 2025 23:14:30 -0700 (PDT)
Received: from ?IPV6:2003:e5:872d:3c00:27e3:fc0:fb5:67a3?
 (p200300e5872d3c0027e30fc00fb567a3.dip0.t-ipconnect.de.
 [2003:e5:872d:3c00:27e3:fc0:fb5:67a3])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a21c099sm1793022766b.108.2025.08.09.23.14.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sat, 09 Aug 2025 23:14: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>
X-Inumbo-ID: 468d4e82-75b1-11f0-a325-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754806470; x=1755411270; 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=IFxpocUlKyk2kptDIl31/0vQ3O1I0mFxUCZpnJ6gvkc=;
        b=LexG+4t4vkH8LBV2HcyTjLPyJKe0/9j243NhiSQFQSiBgbWDSbxAfLTOzqO04P1CIA
         Ttm+aaghfSi4dUm5zPn9ddUh7whQxpxpmP2Nxe1fgwTRwJReFFKwNzmJ8BZEqOuqFMzx
         YH4HKIh6YrofFkENkVzcyRCFRBENy8RdPHcgfIhtYohG/RoAPSi5JOx8/MkiNGUb4F+G
         WOqr6V/JUS1l4yDWlP+7mqAog6eF0aylyN/amZqpottpcIHD9CWWhOZ+aeIxJBZTx8tk
         8fsEUBs0QXm5wSomeYTr5LyxOu5xtrJ/NdOpjdshbs985eW6nt2Yd/nXzAYxYCFoYFKf
         pf6g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754806470; x=1755411270;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=IFxpocUlKyk2kptDIl31/0vQ3O1I0mFxUCZpnJ6gvkc=;
        b=FQF3WMu1T3wwbuBV1AvKcd0DJm9UejjidOvXxr5fYdPnBVIaYrx1ZQTVvEgarepg1x
         uREz5HxGDTzBqnSWa+dRwLUkzgECAsW9G8CFYvNg1ji9K9Rifr3244WMFFFxiwcWmtbF
         mARPWMYXGrF19iay5Ae31boqbJyz2QJlSq/Qpxko4wcTgFBy8Rjh1ObJq/ymj/fxJZcU
         vAD07jiAM8Uw0cKe4HH+1SY8mTNRGHDqJcYvbfVHEP8MMqN6MMHGDNlOPIiWo00ohJRq
         Nl7qKXe6D+LjHQHxQWFqHqrAKqmBo/6gTvEudaN4TSUfte1CGsovzNi6/oa6eHA8CCOe
         GhlA==
X-Forwarded-Encrypted: i=1; AJvYcCV5V3GT5cf0WQD+P52Bs2dUEdfdCoqW+exkpwLgNxWaghWj4cFYF4gXn7pPwBvJDoBpoBKonvKnjU4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzVL3xOCqcwagapNdL+WaTiRmBgkM6PcTakp4mIp+aK4f3c0vtu
	IVrCP/IsAfX2oppQeIgo5LE761bR6yMjNpdWMATXHWeyhtdGPTmlZwVR2VkgMeCHRys=
X-Gm-Gg: ASbGncs5Ne10ANfIiiHTGSd0qV4FXsuBACTUecldjFSQTgV0pK8xJbuCw5MMSeM0jZk
	PKfylzi0u5T2hyM3bLy42O9/OrcRIDy/Sd6k8Le2Iwcn18NxOPCmL6CdCAZd/nEsJ4fUPGbZI6A
	rul/JDI1jnEoDHM0pC7H43H1ZBoEEGvsYOdldIHWwSrfkQspV8a9LmrFhEL78/Rpe8h1oxUC3Ar
	vRWKxB2TJbMOEre8+pZuFVkdm8CKL+WPAx+aVOXtUVOqFwviP2Ylxc/1zFFMX4yJlo8ntBmTrhG
	CzDHWS1Ye8tNS5+IBPbiWB+IPIHwwEI6gtRs57u85nWCF+ScAZ8SM0+rBTU8RXPklTIcKxhG0bo
	d+dOWwIX0Hv57GUMa796nn/jRG4wo8dTEusX6c7hAWsuQSnlhkLSj2mF6Zk02CerxmrS3KuW0Nn
	Ho0FuFbuiWlZr1GNEFUwwkEdZ7PZuR8EUqpFm/Zx6xxQ==
X-Google-Smtp-Source: AGHT+IE5EXKAoo2KTMfE4MelMnus5zBwlvl4uq4rl3lyquQJwMXZBmOxTvX6oBmZtUdjGUmxa0KwYw==
X-Received: by 2002:a17:906:fd8d:b0:ae6:c9b3:57cb with SMTP id a640c23a62f3a-af9c63b08d6mr869146466b.5.1754806469589;
        Sat, 09 Aug 2025 23:14:29 -0700 (PDT)
Message-ID: <93d27332-d813-47ed-a57e-0119a12e0a1e@suse.com>
Date: Sun, 10 Aug 2025 08:14:27 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/5] stubdom: Fix -Wimplicit-int in newlib
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Samuel Thibault <samuel.thibault@ens-lyon.org>
References: <20250809221206.1260861-1-andrew.cooper3@citrix.com>
 <20250809221206.1260861-5-andrew.cooper3@citrix.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: <20250809221206.1260861-5-andrew.cooper3@citrix.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------ov7hTQ1wVtNaG6leQuWeLhcc"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------ov7hTQ1wVtNaG6leQuWeLhcc
Content-Type: multipart/mixed; boundary="------------TyaQcn8ZtdmLXlK4ccCv10kW";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Samuel Thibault <samuel.thibault@ens-lyon.org>
Message-ID: <93d27332-d813-47ed-a57e-0119a12e0a1e@suse.com>
Subject: Re: [PATCH 4/5] stubdom: Fix -Wimplicit-int in newlib
References: <20250809221206.1260861-1-andrew.cooper3@citrix.com>
 <20250809221206.1260861-5-andrew.cooper3@citrix.com>
In-Reply-To: <20250809221206.1260861-5-andrew.cooper3@citrix.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=

--------------TyaQcn8ZtdmLXlK4ccCv10kW
Content-Type: multipart/mixed; boundary="------------nBra1eLk9q0QDn54cTx30TM0"

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

T24gMTAuMDguMjUgMDA6MTIsIEFuZHJldyBDb29wZXIgd3JvdGU6DQo+IFRoaXMgaXMgYW4g
ZXJyb3Igbm93IERlYmlhbiBUcml4aWUncyBnY2MtMTQNCj4gDQo+IFNpZ25lZC1vZmYtYnk6
IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+DQoNClJldmlld2Vk
LWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+DQoNCj4gLS0tDQo+IENDOiBB
bnRob255IFBFUkFSRCA8YW50aG9ueS5wZXJhcmRAdmF0ZXMudGVjaD4NCj4gQ0M6IE1pY2hh
bCBPcnplbCA8bWljaGFsLm9yemVsQGFtZC5jb20+DQo+IENDOiBKYW4gQmV1bGljaCA8amJl
dWxpY2hAc3VzZS5jb20+DQo+IENDOiBKdWxpZW4gR3JhbGwgPGp1bGllbkB4ZW4ub3JnPg0K
PiBDQzogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+DQo+IENDOiBT
dGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+DQo+IENDOiBTYW11
ZWwgVGhpYmF1bHQgPHNhbXVlbC50aGliYXVsdEBlbnMtbHlvbi5vcmc+DQo+IENDOiBKdWVy
Z2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+DQo+IA0KPiBJIHJlYWxseSB0aGluayB3ZSBu
ZWVkIHRvIG1vdmUgb250byBVbmlrcmFmdCBhcyBhIG1haW50YWluZWQgYmFzZS4uLg0KDQpU
aGlzIHdvdWxkIHJlcXVpcmUgYSBfbG90XyBvZiB3b3JrIHRvIHJlYWNoIGZlYXR1cmUgcGFy
aXR5IChiYWxsb29uaW5nLA0Ka2V4ZWMgY29tZSB0byBteSBtaW5kIGltbWVkaWF0ZWx5KS4N
Cg0KSSdtIG5vdCBzdXJlIHdoZW4gVW5pa3JhZnQgdG9vayBNaW5pLU9TIGFzIHRoZSBiYXNl
LCBidXQgaXQgc2VlbXMgdG8gaGF2ZQ0KaGFwcGVuZWQgYmVmb3JlIEkgYWRkZWQgYmFsbG9v
bmluZywgc28gNC43IG9yIGVhcmxpZXIuDQoNCkl0IHByb2JhYmx5IHdvdWxkIGJlIGVhc2ll
ciB0byAianVzdCIgdGFrZSBhbiB1cC10by1kYXRlIG5ld2xpYiBmb3IgTWluaS1PUw0KKGJ0
dywgVW5pa3JhZnQgaXMgYmFzZWQgb24gbmV3bGliIDIuNSwgd2hpY2ggaXNuJ3QgdXAtdG8t
ZGF0ZSBlaXRoZXIpLg0KDQpPVE9IIHVzaW5nIFVuaWtyYWZ0IHdvdWxkIGdpdmUgdXMgQXJt
IHN1cHBvcnQgImZvciBmcmVlIiwgd2hpY2ggd291bGRuJ3QgYmUNCmEgbWlub3IgZWZmb3J0
IHRvIGFkZCB0byBNaW5pLU9TLg0KDQpTbyBJJ20gbm90IG9wcG9zZWQgdG8gc3dpdGNoIHRv
IFVuaWtyYWZ0LCBidXQgYmVmb3JlIHN0YXJ0aW5nIHRoaXMgYWR2ZW50dXJlDQpJJ2QgbGlr
ZSB0byBkaXNjdXNzIGEgcGF0aCB0byBmZWF0dXJlIHBhcml0eSBjb21wYXJlZCB0byBNaW5p
LU9TIHdpdGggdGhlDQpVbmlrcmFmdCBjb21tdW5pdHkgKGVzcGVjaWFsbHkgbG9va2luZyBh
dCBYZW5zdG9yZSBzdXBwb3J0IGluY2x1ZGluZyBsaXZlDQp1cGRhdGUpLg0KDQoNCkp1ZXJn
ZW4NCg==
--------------nBra1eLk9q0QDn54cTx30TM0
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-----

--------------nBra1eLk9q0QDn54cTx30TM0--

--------------TyaQcn8ZtdmLXlK4ccCv10kW--

--------------ov7hTQ1wVtNaG6leQuWeLhcc
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/Ey8FAmiYOMQFAwAAAAAACgkQsN6d1ii/Ey+c
igf/R7R7f+whW+pwogueZ8g9zMwW4eAPDYexZ7yWNPbKoApviBR7GVysZ9xqUkw7pdmr3gz9OnOr
agAcPbWCcKphQXGT6oVpyLUb1sTEaTsXImKpNSWlhkN3diDgCrpI/NOCTNQ1t9rwwf9wzWwG0kaT
iFm8f4u8nkqyNfCzXjIzZ0eOCDInjx1mpp+NtSFFSiwJGZ4RNzM5VA1yJNY/v/wKudq+Ih8UMu23
XTRfaaPPR5/kPAIjZ3JFLclfBlITufZLG3U1gbpQrIFK0YhlZLcz54Hej86tpAVl4vLaB2bM5iR2
ghOPgfteVYLBPkh0kaBm4kylVlCqxIstEf4bCpIADg==
=vM0w
-----END PGP SIGNATURE-----

--------------ov7hTQ1wVtNaG6leQuWeLhcc--


From xen-devel-bounces@lists.xenproject.org Sun Aug 10 13:06:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 10 Aug 2025 13:06:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1076671.1437991 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ul5kp-0001qt-TL; Sun, 10 Aug 2025 13:06:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1076671.1437991; Sun, 10 Aug 2025 13:06: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 1ul5kp-0001ql-ON; Sun, 10 Aug 2025 13:06:27 +0000
Received: by outflank-mailman (input) for mailman id 1076671;
 Sun, 10 Aug 2025 13:05:19 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=AkvK=2W=gmail.com=nicola.vetrini@bugseng.com>)
 id 1ul5jj-0001pP-10
 for xen-devel@lists.xenproject.org; Sun, 10 Aug 2025 13:05:19 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a93a15e4-75ea-11f0-a325-13f23c93f187;
 Sun, 10 Aug 2025 15:05:17 +0200 (CEST)
Received: from nico.tail79467d.ts.net (unknown [46.228.253.214])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPSA id D4BC64EE0744;
 Sun, 10 Aug 2025 15:05:13 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a93a15e4-75ea-11f0-a325-13f23c93f187
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=46.228.253.214
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1754831116;
	b=fpKYXOsawbT/B0gieMLHTKuUgi3fgyM1C8YDH7ksLEPdgalPDTveiYFF474U3Y6Q3BMy
	 1Z82uxdVNPVQwVFQRYpU0dMdiw9/Ylz6W5US+TjW7B2RFyY7habJHyL4AwHvVnOI+Awfg
	 o0X28Mv51m8ZQ9bR6lXRjRLW/gGW8ZmU00H52MdFw7h2DXhQDGOvkHLjf1W20gRTqap2i
	 cWI8D0PZNXvpOGaXYnmztLIipm6wQuB+D3TIpfKPsPDVzhMYw9QWC6yEifk54hx+/bbKq
	 w7pMFPSQiFt2Qy//ixFwC8+YGI60QjCkfFkrgWn4Pw2KIIFJvzmd+1MkhUIMnM8Gk7WU4
	 us0g0i5BoPAGDjmVItW+rMfZPkRyDPhFm1mxIyaO1Kr/NO6sXJFIyndm6SxKG6bvyg1pj
	 ezrw4yRwxRgMP++dyeXYcHfLpfaofPuxM3Ndph4EXLYDvL05Vd1Bu/UjxNRCKN+PNQU9H
	 MM6RkficDc1Ry8bSrt4/P1m8khtCqKXpQCWrbIKt1LwyMvFK+dn+H2yxwEqqq+ZR3noxQ
	 jl5Z/8jrXgCGKjNSG79zFG9pVFbE0JaG0dC4+qDzRFt07aWjQkhYKS0+1rYerDkyPgS1F
	 kE/xF7GZgp5zL9mcTJOvwuBcY7vcmw0eHXHdV/wS7ivrUKWukkYuA6yvMbr/s4o=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1754831116;
	h=From:To:Cc:Subject:Date:Message-ID:X-Mailer:MIME-Version:
	 Content-Transfer-Encoding;
	bh=Wmwa6eEi2HUkBCkPAQOZ2YgwGrySmusYzIvJZGl4xUw=;
	b=tS8oeWr19VM4yJtAZKh+tUG0Zfg45inl5Vw6x5GteVziHGXPAPKDY8Okk2wF+fjO5RI0
	 rM/nQXocpjyOiOMpbyeZc4f5XjkpKSUIaSIR0wzBFrqRMLJbflOqDy6hsstazC4Q09Bz2
	 UnEtUmqON5kd/T9L3I9xYfX3pFmLpsdA2X7sd7gxnMxOu9ljLI33clk9L30v+1A++vxl8
	 9mvyVwn+9me4EMkx3nfmCZn8sBsM10IfMNBoARJx/SciJXjefKp3muHXgGpWuEYOXjSqy
	 bNuPA9GRpc9S92xeI30gzJ/gAcx79P7onqMeUsIO+lYPnjPfwJTnkruuSK+JYrDrmcghs
	 +7IYCxW/v2KnpaWigr9S4tBzXl6TmyNQpPyqZcOzQJhkC2CmNQ/bNFuMZZ/4gb2XdkMSz
	 H7CTmdIvTHYNZ4jTYzBK4NB8IND3JVL60lldcjDBoOYlWRri3+ETvTQjQXyx3vZhZd/n3
	 YBaJoOE0eU47fjYswIbKbIe70Yrot3fKEXlEJQBOw3dp8FSFIBXTKGbgGjLAc5WqeCe/d
	 6LNrYnJDV4dBuZ/g+jY1WQFGBg4hxkD6HRCDvCVqe0yz1jV7sBVOZnHIa0+CWC1sLG8Pc
	 99DZ6VHFhm4jdEfS6xHBkCHP8ftG86vpkZNdyPPh+TWTrOfM+z3xqfXgw+5d4FM=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=46.228.253.214
From: nicola.vetrini@gmail.com
To: xen-devel@lists.xenproject.org
Cc: Nicola Vetrini <nicola.vetrini@bugseng.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>,
	Nicola Vetrini <nicola.vetrini@gmail.com>
Subject: [XEN PATCH] xen: Drop logic for old clang versions.
Date: Sun, 10 Aug 2025 15:03:53 +0200
Message-ID: <e8bb42876317c19aca79f81c3fc48dc3a4fdaf71.1754830862.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Nicola Vetrini <nicola.vetrini@bugseng.com>

The enforced toolchain baseline for clang is version 11,
therefore this logic is effectively dead code.

No functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@gmail.com>
---
Mentioned in https://gitlab.com/xen-project/xen/-/issues/201
---
 xen/common/coverage/llvm.c   | 4 ----
 xen/include/xen/self-tests.h | 9 +--------
 2 files changed, 1 insertion(+), 12 deletions(-)

diff --git a/xen/common/coverage/llvm.c b/xen/common/coverage/llvm.c
index 50d7a3c5d301..517b2aa8c202 100644
--- a/xen/common/coverage/llvm.c
+++ b/xen/common/coverage/llvm.c
@@ -44,12 +44,8 @@
     ((uint64_t)'f' << 16) | ((uint64_t)'R' << 8)  | ((uint64_t)129)
 #endif
 
-#if __clang_major__ >= 4 || (__clang_major__ == 3 && __clang_minor__ >= 9)
 #define LLVM_PROFILE_VERSION    4
 #define LLVM_PROFILE_NUM_KINDS  2
-#else
-#error "clang version not supported with coverage"
-#endif
 
 struct llvm_profile_data {
     uint64_t name_ref;
diff --git a/xen/include/xen/self-tests.h b/xen/include/xen/self-tests.h
index bd8a4867aa40..c57cceb3b962 100644
--- a/xen/include/xen/self-tests.h
+++ b/xen/include/xen/self-tests.h
@@ -10,16 +10,12 @@
 #include <xen/lib.h>
 
 /*
- * Check that fn(val) can be calcuated by the compiler, and that it gives the
+ * Check that fn(val) can be calculated by the compiler, and that it gives the
  * expected answer.
  *
- * Clang < 8 can't fold constants through static inlines, causing this to
- * fail.  Simply skip it for incredibly old compilers.
- *
  * N.B. fn is intentionally not bracketed to allow us to test function-like
  * macros too.
  */
-#if !defined(CONFIG_CC_IS_CLANG) || CONFIG_CLANG_VERSION >= 80000
 #define COMPILE_CHECK(fn, val, res)                                     \
     do {                                                                \
         typeof(fn(val)) real = fn(val);                                 \
@@ -29,9 +25,6 @@
         else if ( real != (res) )                                       \
             BUILD_ERROR("Compile time check '" STR(fn(val) == res) "' failed"); \
     } while ( 0 )
-#else
-#define COMPILE_CHECK(fn, val, res)
-#endif
 
 /*
  * Check that Xen's runtime logic for fn(val) gives the expected answer.  This
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sun Aug 10 17:02:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 10 Aug 2025 17:02:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1076744.1438000 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ul9Qz-0004EQ-Tp; Sun, 10 Aug 2025 17:02:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1076744.1438000; Sun, 10 Aug 2025 17:02:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ul9Qz-0004EJ-Qi; Sun, 10 Aug 2025 17:02:13 +0000
Received: by outflank-mailman (input) for mailman id 1076744;
 Sun, 10 Aug 2025 17:02:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=PLEy=2W=nvidia.com=jgg@srs-se1.protection.inumbo.net>)
 id 1ul9Qz-0004ED-Ae
 for xen-devel@lists.xenproject.org; Sun, 10 Aug 2025 17:02:13 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20615.outbound.protection.outlook.com
 [2a01:111:f403:2418::615])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c0ad86a6-760b-11f0-b898-0df219b8e170;
 Sun, 10 Aug 2025 19:02:10 +0200 (CEST)
Received: from CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13)
 by PH7PR12MB5596.namprd12.prod.outlook.com (2603:10b6:510:136::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.20; Sun, 10 Aug
 2025 17:02:04 +0000
Received: from CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732]) by CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732%4]) with mapi id 15.20.9009.018; Sun, 10 Aug 2025
 17:02:03 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c0ad86a6-760b-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=DMRLHMDJvs4Dw51AHB0C/toHvAnkUMx83nUrbZgwAmrohiQwvqiWrVeNpY4s6GPJEJdqWljBHaE7NqrWh/ZiHoITJP1fZjOXRaqJL/qBSVpMBk1Ac48svWQn/z9II72HeGeGTHn19uu9JD0iQLRXZArYc2aJ6GVmBLLDX2057tDIGCxubfcqHCF1AltFf5a3vefDk/dMnMhXAr3ho9EJIWAQ01IR2iBbKDs+03VLE+Mrp/6ZMbG7cKBhEJbQaal7oaK7YlKTv4hIp7pwJa652rG2FiMhCTFOEzNKIPMERNCRIudLFS4ENN+maWygCgJJEY6Tli29Rs6AI1roFOaTZg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Twvo1MGwqVkIFIxri1sLWRAUlkj0wwBSKggdGXA8Hqc=;
 b=FmwCDkrxqMDJZd9SiWxxD2PaihTYKmDPTPsBjrspsEubvJ/X7HGk01fJ1pNu6PMmxK8A2uOudtiDP07B2EQiras7H+qkbq9K1eSnIXi8q/hKz6YyhFwriY2G2K6mT5C8ArjZYDmASDZJFuujhWe5Sk8FuTFy/+DxafILE3Ydwz5aYRC4hr5k0N2vImv34UtId3GmFbWs0Lsy2ZxjKWTVR0v/D2kfIc4jHMCjKVGkoorT+XSuVBszau6gM21h4BDnEvJkfo4OPUapTEuUPV+zn5PnLzADrH+5vdDULeABEfmyPGzjiTPhwwe578rfvHd9RrgI1zNYVM7Pz59CKEn7/w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com;
 dkim=pass header.d=nvidia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Twvo1MGwqVkIFIxri1sLWRAUlkj0wwBSKggdGXA8Hqc=;
 b=esaqSj8bYMgfNy9YNWn/bD1qrC05cydZsn7MILq3cKWDWf7UW21ZV/MdjiA3yUg7Z8S//X9XIeRzUUR1ZOxIOS7IyMGAwk3cvEvdGnAwmtdC0CSxfrU8QUGAr11dI+zdzB3KkdTpDXx3AzJhzrtdlmRc80FmykbCEDcCRq+fqiWrqecoX53zj5ybUIjxvT6VYSyIFTeocZtPZtZ5Gn2HhQtZRBDHDkcDnYyzHpDM2cWxamI66j94yQNtFWD3/mU8zRLIl7OkhwlN4f6VW0MFNUpLpUvFEPQLdPLBhwqLuwugFqcT5t9qe5St2YMzJ5mu503tXtV/ojasWagE/PoolA==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=nvidia.com;
Date: Sun, 10 Aug 2025 14:02:02 -0300
From: Jason Gunthorpe <jgg@nvidia.com>
To: Demi Marie Obenour <demiobenour@gmail.com>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Leon Romanovsky <leon@kernel.org>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 00/16] dma-mapping: migrate to physical address-based
 API
Message-ID: <20250810170202.GQ184255@nvidia.com>
References: <cover.1754292567.git.leon@kernel.org>
 <CGME20250807141938eucas1p2319a0526b25db120b3c9aeb49f69cce1@eucas1p2.samsung.com>
 <20250807141929.GN184255@nvidia.com>
 <a154e058-c0e6-4208-9f52-57cec22eaf7d@samsung.com>
 <20250809133454.GP184255@nvidia.com>
 <6cbaa3a3-694e-4951-abb3-b88e6c9d6638@gmail.com>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <6cbaa3a3-694e-4951-abb3-b88e6c9d6638@gmail.com>
X-ClientProxiedBy: YT4PR01CA0163.CANPRD01.PROD.OUTLOOK.COM
 (2603:10b6:b01:ac::16) To CH3PR12MB8659.namprd12.prod.outlook.com
 (2603:10b6:610:17c::13)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PR12MB8659:EE_|PH7PR12MB5596:EE_
X-MS-Office365-Filtering-Correlation-Id: fec849dc-1ee6-4528-8aba-08ddd82fa0dd
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?tQ7R8t1K+FbIOGnc0aJmvxih0vp1cw9yA1yhHKE6+q0uUN5Qdl+Rlhg9ZSCb?=
 =?us-ascii?Q?Qo2keWV9B6ntQxdesYFS4a/Sfse6j7UKnxNTGuCMChZSZDnbTNLbvJrRsZdE?=
 =?us-ascii?Q?hepTFH1q7vgcNIvrmS5hlHUSAnNHxmSX42I/UI8xSHtaZo+PEr+Z/alXGQIK?=
 =?us-ascii?Q?QuGj9uZxAdbSs0wtYKEL8Yc7ZCNUuj/bAmql5VrKwAfR5Z6kD1C4jVBZC162?=
 =?us-ascii?Q?PFqQMQE3Alc9ZXx7EAm2SmE7sIErmtjpPYkAPmPHa8aA1hcP2uePrahBqS6y?=
 =?us-ascii?Q?V6Cnrfc7Whlac65SqD5Nwe5cACms/vP8r5cHO0PKaDpcgaiHxlIULjkHh/ez?=
 =?us-ascii?Q?GFrD/fJmov5ZoJFRPOk7lNOTe0wL1ObyiVHIgFPyjkZO3Kvf1tac5C6BxrhB?=
 =?us-ascii?Q?j7w8meCgGYUxzYRvxLMb9it2QXTjZA+TRZ5kIIDNUTdiUfaqMFedwJOn62TM?=
 =?us-ascii?Q?kmj4HXwtUTJtxqQGL4z267xtb4o4WN3+gIHxSbBVidGjzig8xJzS/sklhLGC?=
 =?us-ascii?Q?D44SK7WyFpZv/SHDscq94Sw8zJ7QpuejWHEJSvdmiqB4Tc3/pHD/coPi75iH?=
 =?us-ascii?Q?0UvyLysJ6zsIEQZAiEjLkg82dbGJIeerPLaLxgl44Ip90d5j5ktjouMjqVE7?=
 =?us-ascii?Q?uvwO2/KfzlOJLif3Xp+iwsmJVFM+NNBuqT3XXMcBH3Lv13ZR3qpMebnJdNFC?=
 =?us-ascii?Q?maBW8Hzj7QKbl92n9tAwxsvc50X0at/AHo6cdE/8Skv+R/4+mpJh6nSCCauk?=
 =?us-ascii?Q?8TA0wPUNrpCnNFzzarYuV+ZKwdnA9y57zSWbvN9pf1jB3DXGVmR6OhBcIMdI?=
 =?us-ascii?Q?GHNodaeA/Ct7PSfiNUkeycvt8c/ODVcvWSnbf7HQltjWV1dInOD7c5M3trC0?=
 =?us-ascii?Q?V5K3ntgj/vQ0NzKRU01lALB5Sxj2NVPOxf1wp4aZcdqFnaGw7/l5RROVrDud?=
 =?us-ascii?Q?oQhgIEpV1kL7VF2ZPLveObCaPoABBtQl5JWYw51OdW3nNmCmZmNZ7YFRYulk?=
 =?us-ascii?Q?7QZF4LpzOJ5Fx0TDefciNhrtzaFt1CpCdPzpLZhxIkSuBerYa20Z7wZdo9/3?=
 =?us-ascii?Q?3caSGtHtn7AAFhohOV9toc7r81df1eoLgXfS6V67zTj25uTZxYWjRDDTX7Cr?=
 =?us-ascii?Q?FDwjuv4VjrJJysz/rjY94XyqwVcEZO4XffIjYCUsRwiNEESpVtc6he1qzVLJ?=
 =?us-ascii?Q?cuslVADC1KFhHrDzIVb+VFGcv2wm8YZ3BTDRIfebpeiN98rCZv9IUTld7CIX?=
 =?us-ascii?Q?jTFyYVxYjZQtyQzaSEXG2Uc6452KRKVyQeLkdVRADeWN1n8aAOvNVp4HAu9Q?=
 =?us-ascii?Q?x+PQcSgUSknsyDgjJZ//mdhB8tlc6LnCatIi3+hfxcR6v8NGlp9d/laqnv2d?=
 =?us-ascii?Q?1k3SMuRg5Dd6s7yyYdlfoyfU3iNc/Amrj+GVkacOr/7w/EmtHSCq7azvCzwY?=
 =?us-ascii?Q?zo926LRBsL0=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR12MB8659.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?s4vtM7QfcEK3pnSfpgdvdzEG1xxhmc0TDHTkbowPQHBiG7Js+F0EgSX3gR6e?=
 =?us-ascii?Q?LXKcn+Fk2D6v6uf0owIyEpBDKzCXNNkKlfOplXJD7I78uN251+l/4KRZbDV4?=
 =?us-ascii?Q?VC3ekjb0ET/hs/ETa04VhoVGGTuOBs9EB0viANhV7QCclMJ2RP70oTo/ySnD?=
 =?us-ascii?Q?UyzL16K+lCHpLy6KnA7WOk7myWGn2w872BSqBT6lbQWwAdUuFhCW/mIZxXkD?=
 =?us-ascii?Q?aHAi7LPZ2GHY30eZbSWG2YyTgBXolbuQBDyWlrGxra0dpOBsRY5aIwXPph3u?=
 =?us-ascii?Q?M3hcDrp7XBjkPyeaueEs2BUFfvmfZnQEg847Wlqbe2QWDM3RPoC1PGHnzKpt?=
 =?us-ascii?Q?/E3B7B6fE4vShteFtFySv/mR5e78pydy6dlyc0rvOClY/K9Atr0QXJxws9Uh?=
 =?us-ascii?Q?RBNxaEzBKZOGcfDPUqlZiPVB+a4WkR9tVQASiO072FkxLemZdiFGxoTZ5/XL?=
 =?us-ascii?Q?3ep6s5SDm69wRPq/KpfGd4SyPxzwTSTJ65667r5peGCUmSdSrJegZOogwFCA?=
 =?us-ascii?Q?bL3ey7+p5VpMa3+oGQd8wruIQlR8PX5Tmpd46QfVzhxfv5YTrXhunKbFzhZO?=
 =?us-ascii?Q?+ORlxaSx8DuOkCSQ6JOlK+rpd5Zr/aT6bq2XO0A+xk+dr6h6mHTPIsUb0Ba7?=
 =?us-ascii?Q?hASmrGZBJ+Yz9y9sekurvDHP+3+WT4gF6OYe80bzPjvXJxwrOcXAW0eVhlBl?=
 =?us-ascii?Q?MIk7XstZuj8qPWjqzcYzkde4AbmRw6pnLCIX6lTKViKmk29dxQlN3DS0Nic4?=
 =?us-ascii?Q?yBH9mRFgEtzGe+VbJQS4sCFtjNpg5Jo7Xok56YYIYIF3gg2tWCYlDBLIwtPS?=
 =?us-ascii?Q?BjddUK9zHiYo5OwYs6ukon6HM/ubFasl3RJc9wpQ631Ar6fmei/9GxDhcaMS?=
 =?us-ascii?Q?nZtXb+MQxbVt+DweGbOu8cClr2OjauWTWlEHhbfj7mAMGbv8R+EdbFfPlU1h?=
 =?us-ascii?Q?SysghU6TUunBigsYnjs1XQ3/FwkJm32lyxevA2jmvSkLGZF9wvTGkQF13Maa?=
 =?us-ascii?Q?HouAIwU8PPnf5xKke5aogbMEfyEOowGRxDKN9iR8nE/Rs4nIWlBMZwNuvPtu?=
 =?us-ascii?Q?2ZPbElPvkuHRmtyBswzUf0JZ3FeR2CKnn4lpl3mLD4EoSCeuevnmWr/LYQHK?=
 =?us-ascii?Q?nyg1SQTFKr7oxPt8sv/hm6l4x9UpgtrXocfyg4tpklBDinzsMkBd3ViazkLO?=
 =?us-ascii?Q?XuZmQy9EfznyFUStLHpG7lr6V32jIzjQHbkQDvy6qBEcvdrOHfHjW6/AXic6?=
 =?us-ascii?Q?cm6U3Vw2RHqiVeBduCcYFcdJ6H2i85FM2/k0SQpnIxDnY6Zcrsgas9pPWmJ3?=
 =?us-ascii?Q?4FmsWwSQbIbgx4Z+G+hR4eeF9FESAofr1cX0+Dm7xknDbs8e0u3eB+gcsZoO?=
 =?us-ascii?Q?0f6Pv/QeJvaf2BMhwTKL/TdhKKJ/Z09hIa9AM8dSY1WQJAMxmjNxK4mC/JAs?=
 =?us-ascii?Q?vu26/xOtRQPcN3L7DWyUgCf50rVmAOjmZZJ8ZARKMHj3KkM5NlKwjqO6DV77?=
 =?us-ascii?Q?9vdc1etf8ZozpPf3kvFM/NMKI/SpLZ6W16sJFD+ysAcbQNC/6sUsgSFmvEW9?=
 =?us-ascii?Q?sPp/rkUVFUz3DGY6d4Q=3D?=
X-OriginatorOrg: Nvidia.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fec849dc-1ee6-4528-8aba-08ddd82fa0dd
X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8659.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Aug 2025 17:02:03.3537
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ATcPNo+pa28eZCR8JftR0i9jgCDxmwcDt/C1JwNANqcLcmzpVdD0nFciBdhhfL3Z
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB5596

On Sat, Aug 09, 2025 at 12:53:09PM -0400, Demi Marie Obenour wrote:
> > With a long term goal that struct page only exists for legacy code,
> > and is maybe entirely compiled out of modern server kernels.
> 
> Why just server kernels?  I suspect client systems actually run
> newer kernels than servers do.

I would guess this is because of the people who are interested in this
work. Frankly there isn't much benifit for small memory client
systems. Modern servers have > 1TB of memory and struct page really
hurts here.

The flip side of this is the work is enormous and I think there is a
general idea that the smaller set of server related drivers and
subsystems will get ready well before the wider universe of stuff a
client or android might use.

It is not that more can't happen it just ultimately depends on
interest and time.

Many modern servers use quite new kernels if you ignore the enterprise
distros :\

Jason


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 04:05:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 04:05:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1076880.1438011 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulJmY-0004xD-Jq; Mon, 11 Aug 2025 04:05:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1076880.1438011; Mon, 11 Aug 2025 04:05: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 1ulJmY-0004x5-E2; Mon, 11 Aug 2025 04:05:10 +0000
Received: by outflank-mailman (input) for mailman id 1076880;
 Mon, 11 Aug 2025 04:05:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kugx=2X=amd.com=Jiqian.Chen@srs-se1.protection.inumbo.net>)
 id 1ulJmW-0004wz-CX
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 04:05:08 +0000
Received: from NAM04-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam04on2060f.outbound.protection.outlook.com
 [2a01:111:f403:2408::60f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 59ba581e-7668-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 06:05:01 +0200 (CEST)
Received: from BL1PR12MB5849.namprd12.prod.outlook.com (2603:10b6:208:384::18)
 by CY8PR12MB7516.namprd12.prod.outlook.com (2603:10b6:930:94::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.21; Mon, 11 Aug
 2025 04:04:57 +0000
Received: from BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285]) by BL1PR12MB5849.namprd12.prod.outlook.com
 ([fe80::b77f:9333:3a5a:d285%4]) with mapi id 15.20.9009.018; Mon, 11 Aug 2025
 04: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>
X-Inumbo-ID: 59ba581e-7668-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=eUme0jmvhkKzrKJpMOmk6TffDb1t+sJpTVVb/+8NX5eXQO1aaxR8BJB0lr5sXjVDrzNcbIr4xfYHHiGjoWvMiNIfAvTXKUX0VCt/NhXRPcQWY32XM4PxSySUk8pn+Q/VYlxdoiDiNB7D1prKoFCk362DXZqQTBhHrhGVm3NJRI79Dd/1PZbAqgaNuX8z1Z+qzzJBp1FkMBS2MdzTg3LLcQj6o7iWJ4Wme7hu63jDExRumj8xlhsSSPaxgK1fzSDtoLcIGy0lL08wu8VVc2/vye5/JhUnWCfCnOHxgLkJVCiEKT4wrEJioF8yXu1JjHUehhhOr9T3qgBAYIak6v5XUA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=w18p9Hmn8xl43ty+RobpzmMHh/4kV2nLidd4zqdEpxY=;
 b=Y+UjqKrIBleRlQi15B/iJOzfsDB8Hz7MUZljBcqlS7/I60w7I8TnejTlAigJ1VenZuvzLXqHKJAfviFEihGkuPA5qnX04Qb2I6ebI8i5HxMzr3NIsBj8C8R7YY1YQt0HqY8tpjRW5DX6zmkmN1NuKCaxAlaBspCntWKLgh23ZodW04CebrfJ1M+7eiMPNtiqavf3yYly6DkDWfWkxWAjUczAdvMHxZOOqlKl1hqv2HECdXZ40f/cdNBKknDLI1UtvzgdPKLOvzdLQ5u8gRPbr6s7cQrvvXkDX0kLD9czV3l9dWcDPGJBv6Lb2MluPIXsX8v8djwojRh0wzwOZf+ZQQ==
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=w18p9Hmn8xl43ty+RobpzmMHh/4kV2nLidd4zqdEpxY=;
 b=WQJc1Yza8iRv7bIkz8jCA7coFsCBtMnATjgJXVhI6ClMGVOcbCNLlyIoKOJUX0G9zldnbO5JhysEcHFPf7NdC6vZz+sAahTJat7twNNGYXuit6bqdtIRrqklbNJqr+ygMW7pYyXqg2Y7Le/Fu7kOZt+9lT1Gscbu1d8cK/1n78U=
From: "Chen, Jiqian" <Jiqian.Chen@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, "Chen, Jiqian" <Jiqian.Chen@amd.com>
Subject: Re: [PATCH v11 1/5] vpci: Use cleanup to free capability resource
 during deassign
Thread-Topic: [PATCH v11 1/5] vpci: Use cleanup to free capability resource
 during deassign
Thread-Index: AQHcCDr/CaLOehn+20Smgxu8slgKHbRYdKKAgATqx4A=
Date: Mon, 11 Aug 2025 04:04:57 +0000
Message-ID:
 <BL1PR12MB584915F4FA5E4366E0338FC0E728A@BL1PR12MB5849.namprd12.prod.outlook.com>
References: <20250808080337.28609-1-Jiqian.Chen@amd.com>
 <20250808080337.28609-2-Jiqian.Chen@amd.com>
 <31f9800f-5d2a-4614-9850-07d6bbe232d8@suse.com>
In-Reply-To: <31f9800f-5d2a-4614-9850-07d6bbe232d8@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-imapappendstamp: BL1PR12MB5849.namprd12.prod.outlook.com
 (15.20.9009.009)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BL1PR12MB5849:EE_|CY8PR12MB7516:EE_
x-ms-office365-filtering-correlation-id: 425baea3-9457-4d28-052e-08ddd88c3c43
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?emNGNmFqT2IwY2lJc0FqcWliSXdzZWdwdnlHUzlacm96Z1d3K09MaXBnTFR0?=
 =?utf-8?B?NDZocTNCM3pwRVRMOStsSnB5OFlTdmxWT3NsVU9DMGxQMkY1ZjVYRzNkYUhH?=
 =?utf-8?B?SXFpVkVwUWhoVmgzSllvTkgyTEFuVWMzVG5yU2dNaHREeHR0VVg3Rk5ENHNU?=
 =?utf-8?B?eHVxQ2FicHdROUdoa1JRRjZQOEp2Ni9UeEVKLzVZM1l2WkZiN1FPamtEa2I0?=
 =?utf-8?B?b1VOQkU3VVo0K1pxS0lTejlva2tPWVoreFphb2xpWWZscWwvNGVmSVZubVNX?=
 =?utf-8?B?WFd0bVB5dkNmOEJSdDN3cUJRSVdQeE1scHRMSmpDbFZkd25mNmVZVFBNZHFL?=
 =?utf-8?B?OTMwK0lNSld0R2lmOUN5TGNTRXBQZ3BxZGJ3NTVWT1Mzb3FGUllCdkoybnFB?=
 =?utf-8?B?Y1BsalluYUF5N3J4OVkwRWg1K0lrLzkyR2RVWk96T3pWL1c3cmsyb1g5Tlow?=
 =?utf-8?B?MThOa3BoMVBhVUs2ajNYNGRHNThxMWJmcjdtOTRoelpSajFKS0tvaVZ6Z2RE?=
 =?utf-8?B?NE5DMEN1QUNTdUZCQ1UwWlRpVURNLy9EWFl2c0o5UW82VklLOFVSNCttL1VG?=
 =?utf-8?B?RUpFVFJEcy9QenlSU1Vhb2p0WENVVnp1eUMrekh5cnh3T0pFTnhmWHM3WTIr?=
 =?utf-8?B?ZnlIS0ljKyt4NTI0amtIa0pGL3c5UmlpM2NTQjB1QUZWRkVZNS85aFBXY09L?=
 =?utf-8?B?VHYxSk5pRm1FOXBkQUw0ZUp2TWIwbitDN1FLcEJOelQzbkh4T3VlTDZWRFN4?=
 =?utf-8?B?VjVIZWRTNTU5V004ZS9DTTN2bDdKL0pLamJBMWtXNVlyemFvNGJhY0R6Y2hE?=
 =?utf-8?B?ZVdpK2s1a2d1OWNGN1dKYmpmbWF0UUYxS0duRDdROTFiR3RsUWhNMWdGU0Ni?=
 =?utf-8?B?SGgwRDBUQ2gzUWRJd0l4bVJVdysyUFhrWW03c1RZcUpQTlBrZVZ3QmxrS3pw?=
 =?utf-8?B?bEN0VjlSbGx6WHA1WE5rZER4L1RZckFvbkZlRnJoRWd6RHdsT2FVVmRXTjFs?=
 =?utf-8?B?L25admlUQVNheldGem5EMTEzZWJYcm1BdHpUaEp1V0dBL1RuQ2xqSUhudUJG?=
 =?utf-8?B?OFdJeVlKeE0ySjV5ZU0wRlIzeWhCeWRUemxlSVJ4SnpubmpjUEh6TDZ2WnJW?=
 =?utf-8?B?NlI0Qjd5UHVvTk5zcmpOYzUrSkU3SmZ6d0grbmtMR1JlOFVFaGV3Q2ZlMUFW?=
 =?utf-8?B?cEJmYUpQano1VWIyYzZoZmx5YjNqMi9USVpvV09TMkZiNkIvWGlLQ2FSSDRk?=
 =?utf-8?B?SlJwdnJEclc2VGJrYitieUJtaSsvOGR2ZmxPb0kyc3lSTmZHemNrbFFzZk9r?=
 =?utf-8?B?K1RWMHNjK05kRFVjeDZia0FubUd1K1RLYkRCaXNxNXV3bERNck1KVnl0UEN2?=
 =?utf-8?B?SWZ5SHpSemE0ajVud2FDUDkwS0JqSEYwVnlOWUFQNnFlTWdKSkNzK1ZweExK?=
 =?utf-8?B?OWVUK2JYbEhPenNSQ01HOEM0bHp6SFhaRittSFN1UTdnS3dzQjFWY3picjBD?=
 =?utf-8?B?QmlHYXFiYlN6RE1uYTNKZlVNQlhNUC9QZXRCZGN4SEsxREcvNE5yUFFXUFpZ?=
 =?utf-8?B?aThOVkpUWnJCM2dza3RRRTYzVmlqQUJMVlhoMURIbWQ4MDFzN2VsT2E5ZDNV?=
 =?utf-8?B?Q2Z1aGt6MjFUVU5Bbmp5NzVkc2hmNFdZVmRmQWJ5L0hWaDYxbEZjVVFZMSt6?=
 =?utf-8?B?aTcvVVRrbXFEbmVmb3VRQ1ZNSUlFZnJyUlBsNkI5TzlxVi9ya1dPQVlNWHFT?=
 =?utf-8?B?K0NVRzAxNnN5ajB2L0JKaC9BZFlaUFNzTUh6QnRHcWR0SFNMZWFuYlVKOUZX?=
 =?utf-8?B?Q1JNRDdoYWZSZzJvRllRQ0xIMzAzYkxKL3l6aWpuVW9oSVFQbS9VTGdQMjdT?=
 =?utf-8?B?b0pkZHdRRnZWM252em9LRGZaVUNTdHp6NDV2RTlWYzBTWkxlNTA1VG5UdDRL?=
 =?utf-8?B?QzZyRkttNlppV3YwKzc5Uy92cldYbzgvOWo0VThYR0syeEw4alBEa2pmd2Vh?=
 =?utf-8?Q?KpfbfNM5Ncln5oEYXl7mNV6rYa762s=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR12MB5849.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?NGtkVDZyRkZWaWhnU01jekZROE5wakxrY2ZPQXkyS293V2oza0F0dTZvU01B?=
 =?utf-8?B?YlR1UVdqNmJMVkdvQlFtcFA0LzV2NEpFNlZ0M1RCcGJUMHBHS0Y4MjRKUkhw?=
 =?utf-8?B?bHBodjRsN2txL3VlSFBDdTJuUHMrVVZINlNsVE14bVZLN3ZDNzJEWW93b2hp?=
 =?utf-8?B?UTBWQ0pWYUNSbFI4V2djVEVtUU1sN1RZVytHbjFSSys4YTlnY1JFbnJoUVQx?=
 =?utf-8?B?UFZ2Y3VoUGFSaXBhK0VUaGdhc1dsRHhaUGhaL0VtdVpzdDBWUlNJcElYM1U1?=
 =?utf-8?B?MTlEaE5EMnY0Y05IVGxlL0VCSVp1dXh1bGUrdDAyYVR1Rm1sb0tFVnFHbWRw?=
 =?utf-8?B?U2RUZjl1NHV1SzBlakFaSWtGMWU1T2N4cUVqdEFBZ25yRFVwRXJJazd0MWZK?=
 =?utf-8?B?NEl1ZU5mQ0JBa0dEaFlKSGM5dkg2ajBXZXl5QVVDblhoMlRUeFVxUEFCMThu?=
 =?utf-8?B?aXpxRzIzdlJRWFNXYmREMHg4VU9zbFVLdzRSWWkvWU9XWlZPaEszS29TQjhT?=
 =?utf-8?B?MStnbXQybFpCckN6d29USjltTXJjWERnYXZKc29BdU5tdUo2Rk1qbjBLRnVW?=
 =?utf-8?B?TlRkMVBVVXllWnY5NjlpWmRZKzRWUWw5Ym9xcGNPeDhXYUNrcVJhL0F1RnMx?=
 =?utf-8?B?S3p0MVNweUQ0TnlwTkVWd3ZmL3NEcjdjNlU4M3ZBcFRQZ0RYT2t1aXNlc2lM?=
 =?utf-8?B?N2o2SVJuMjVKREVPTnltTXBIZ3FyNnZjL1EvbEIxa3I0V0t3TUl6VVhjbzNH?=
 =?utf-8?B?YmZoV3ZUdW9BQUJGSnd2Q1lSNlVQKzFjendtWkN2U2h1ZjhuQmdMc3pFSkZW?=
 =?utf-8?B?U3YzNTcvN3YvSjE0eVRJdjdEdnRIMVd1WTdXRk0wdFFyVjZHamFQeWVkVDdh?=
 =?utf-8?B?cGJzV0gzSkJtOUpnTThGN0RSYmJUbjVENTEwNTVHUWhUZDY2N0ZPWHIxN3B4?=
 =?utf-8?B?MDJLeXJHZTYray9rZUZlWWdEeHMzd3Fld2gvWWkycU1sOVpYdXNLcG5teU44?=
 =?utf-8?B?clhCTTZQcSs0bUl6dlBCc3lHaUU0TjNETldobVpvcm5YenE3LzMzN05kWERY?=
 =?utf-8?B?YSs1Z3ZXeGhKM0JDYldoMnJ0SEpSdFdtL0J5Q2F1aTBVWWZMTU5IVXJBV0Vj?=
 =?utf-8?B?Z2RtSDhvbHREVmt4Q2JVRmNvZ29SdVRmczFRcFNlRGRyS1doVElER3ZDclMr?=
 =?utf-8?B?WUo5d25VRnBqUWZLV0Vrbyt1SnFuZlprMmdZUnJ4MmdtcWEyV1NqbzRZL1h1?=
 =?utf-8?B?MTRZeTNqMzY5dUMvQ3RnMUwwQVl0WWIyQ1g4WUpNUVRZaWhFVTlmM1pGTjFn?=
 =?utf-8?B?Mmk1UTJzTnRvdXZsZTIyazBoL2plem1YbXV1SU5mcmVGZ3dPM3JaYzFvOE5a?=
 =?utf-8?B?Nm1aZEdKZW1NTGoxOU8yUmt6VjRhL0RTc0g5SVU3UC9JWjViN296dllVY3lm?=
 =?utf-8?B?R3N3Zm9zR2MwZERTa1BXWDFxMmFkKzZVcjNpSlEraFJVY3pYNXBQR3pNcGVI?=
 =?utf-8?B?LzdpMUsrZ0V2RTNBL1BHVWdOYXBUZG5qM3JPS3M4S3FEZGYwaEF1OTFkcFZu?=
 =?utf-8?B?cnZwQnRVVzhSNXgzTm5GemRMOVNpbjAvZDRYcWdCdVBjTUYweSsvS3BuREdt?=
 =?utf-8?B?MEtaOHZBTmM1OGFReDl6RVZLSmxzTXRVK0F6eFp6RkxzRjNOTkdIYmVWV2g2?=
 =?utf-8?B?OHNYL3hNTlh4bU1GcGp2UjhBWHQ0Yi9WMTJEMzhNc1RWa2ZQeWwwOVJacnpX?=
 =?utf-8?B?Z2VNbFY0bGphZnVnRjVmMmhORlo5WVhzTUZDTnhQOEN5S1VaalhoMVRZSmh3?=
 =?utf-8?B?MjlqSjZqVmN3ekxCQkhMTVR0QXpVWVU2a1B4TDkzbTJ1YllsVWhPYUY3cU9x?=
 =?utf-8?B?NTRzUzlFL1FvRWE0eEtXVDJlY1UrMkJERUhiVVFwMEFMQ29ER3JlZnVCM01v?=
 =?utf-8?B?TzI5L01Ed1J2N0hhSmtQN2Q1K2xDbXBLUmpLbFVpVHhWTllZQmtvanVzZnNB?=
 =?utf-8?B?Z3hmODNrR0FTTlVWM0o3cWhPOWNSYzJyT3JHNldGa2dnUm1ueXNuNzhnQWEw?=
 =?utf-8?B?bTBHYnhENitxS1M0cG45Vlh3eFFyRVMzNGdEMzJiL0tONlFqM0JseEI5V0dV?=
 =?utf-8?Q?CdJ0=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <2CF6310250EB1544AA5E6870DB2C9DF2@amdcloud.onmicrosoft.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BL1PR12MB5849.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 425baea3-9457-4d28-052e-08ddd88c3c43
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Aug 2025 04:04:57.3989
 (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: tp3oyfyqm/X3jLRsJTmKy/QRjlPNs/hvY8ZDD3o4+0BY+mo/I5PkY5effc5atVMvD8LIOMn65YIbnmmqqxW+Zw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7516

T24gMjAyNS84LzggMTY6NTgsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAwOC4wOC4yMDI1IDEw
OjAzLCBKaXFpYW4gQ2hlbiB3cm90ZToNCj4+IEBAIC0zMjEsNiArMzIxLDI5IEBAIHZvaWQgdnBj
aV9kZWFzc2lnbl9kZXZpY2Uoc3RydWN0IHBjaV9kZXYgKnBkZXYpDQo+PiAgICAgICAgICAgICAg
ICAgICAgICAmcGRldi0+ZG9tYWluLT52cGNpX2Rldl9hc3NpZ25lZF9tYXApOw0KPj4gICNlbmRp
Zg0KPj4gIA0KPj4gKyAgICBmb3IgKCBpID0gMDsgaSA8IE5VTV9WUENJX0lOSVQ7IGkrKyApDQo+
PiArICAgIHsNCj4+ICsgICAgICAgIGNvbnN0IHZwY2lfY2FwYWJpbGl0eV90ICpjYXBhYmlsaXR5
ID0gJl9fc3RhcnRfdnBjaV9hcnJheVtpXTsNCj4+ICsgICAgICAgIGNvbnN0IHVuc2lnbmVkIGlu
dCBjYXAgPSBjYXBhYmlsaXR5LT5pZDsNCj4+ICsgICAgICAgIHVuc2lnbmVkIGludCBwb3MgPSAw
Ow0KPj4gKw0KPj4gKyAgICAgICAgaWYgKCAhY2FwYWJpbGl0eS0+Y2xlYW51cCApDQo+PiArICAg
ICAgICAgICAgY29udGludWU7DQo+PiArDQo+PiArICAgICAgICBpZiAoICFjYXBhYmlsaXR5LT5p
c19leHQgKQ0KPj4gKyAgICAgICAgICAgIHBvcyA9IHBjaV9maW5kX2NhcF9vZmZzZXQocGRldi0+
c2JkZiwgY2FwKTsNCj4+ICsgICAgICAgIGVsc2UgaWYgKCBpc19oYXJkd2FyZV9kb21haW4ocGRl
di0+ZG9tYWluKSApDQo+PiArICAgICAgICAgICAgcG9zID0gcGNpX2ZpbmRfZXh0X2NhcGFiaWxp
dHkocGRldi0+c2JkZiwgY2FwKTsNCj4+ICsgICAgICAgIGlmICggcG9zICkNCj4+ICsgICAgICAg
IHsNCj4+ICsgICAgICAgICAgICBpbnQgcmMgPSBjYXBhYmlsaXR5LT5jbGVhbnVwKHBkZXYsIGZh
bHNlKTsNCj4+ICsgICAgICAgICAgICBpZiAoIHJjICkNCj4gDQo+IE5pdDogQmxhbmsgbGluZSBi
ZXR3ZWVuIGRlY2xhcmF0aW9uKHMpIGFuZCBzdGF0ZW1lbnQocykgcGxlYXNlLiAoTGlrZWx5DQo+
IGVhc3kgZW5vdWdoIHRvIGFkanVzdCB3aGlsZSBjb21taXR0aW5nLCBpZiBubyBvdGhlciBuZWVk
IGZvciBhIHYxMg0KPiBhcmlzZXMuKQ0KVGhhbmtzLg0KQlRXLCBkbyBJIG5lZWQgZm9yLTQuMjEg
ZmxhZyBpZiBJIGV4cGVjdCB0aGlzIHNlcmllcyB0byBiZSBtZXJnZWQgYmVmb3JlIDQuMjEgcmVs
ZWFzZT8NCg0KPiANCj4gSmFuDQoNCi0tIA0KQmVzdCByZWdhcmRzLA0KSmlxaWFuIENoZW4uDQoN
Cg==


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 06:37:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 06:37:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1076915.1438020 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulM9a-0005wa-RD; Mon, 11 Aug 2025 06:37:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1076915.1438020; Mon, 11 Aug 2025 06:37: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 1ulM9a-0005wT-O5; Mon, 11 Aug 2025 06:37:06 +0000
Received: by outflank-mailman (input) for mailman id 1076915;
 Mon, 11 Aug 2025 06:37:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=92re=2X=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ulM9Z-0005wL-9S
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 06:37:05 +0000
Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com
 [2a00:1450:4864:20::436])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 928dd67e-767d-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 08:36:55 +0200 (CEST)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-3b783ea5014so2067616f8f.0
 for <xen-devel@lists.xenproject.org>; Sun, 10 Aug 2025 23:36:55 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3b8e009e465sm30837961f8f.43.2025.08.10.23.36.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 10 Aug 2025 23:36: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>
X-Inumbo-ID: 928dd67e-767d-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754894214; x=1755499014; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=da6plSrU7tXzWlA0zgg2moTYg2a1oxT5nHXgJraLh08=;
        b=mmfcLsSI0AhKrXTnjFbPGq64bANMMoCskYRmZ4/x4orOnkqtj5gCwdFHKnEnt2q0HL
         kSdqiH8oRCWPRyGuk8fNVBV4Fb8XsdgyhygrvlyG3+MXgjuFExr4G1Z5gOQBIdX/77q/
         VKfKkS5NTAgoMdkOEVYTuQmxZUr3mFFI1+mq4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754894214; x=1755499014;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=da6plSrU7tXzWlA0zgg2moTYg2a1oxT5nHXgJraLh08=;
        b=pEkoD7DC8pSKEqyYsWEIt+5UDjmGURc1CO1MoB7GRoFtDkXtbkhMuUE3W0mINlAdYq
         XJFZc+a9hXO3/D7POocBO49/JUYP4symq3RYeUcXB4grylXGWZbsRgAge/z/NK3FBR/x
         WWWBHCLz0Y7cTbAaGtOWKzBQdmwDGnbtjOvWDg8I++UDeHIbDUpF8GIcPW4pX9KH5txN
         ABYv0SvVz644mShfnayEwyULOnfQ6v39ulcv/6hr47bV8Mq1eE2MonYSUqkk3w5toTpO
         pYW1oMJtkPpkTZenxVXWNiRu1Lm2XzWczeHTg525HaZXMyI5IOdUvDFDymMElJK9hEZ/
         cZrA==
X-Gm-Message-State: AOJu0YwfNUZYIoCEg535AC3+r5IaVH/7KFOpUV4RYPBE+uzl1FT329IF
	EWGT/OsyDUzyR9fvF0oPY+inpW8NFdv8iS0rBkQ+7RnL+jEr2JR1XSkDzFuxxTXKLFrY6EYlnJ6
	adCK5ROA=
X-Gm-Gg: ASbGnctO1K6edBG1EkYdLeLXE6L2NCLIsYZMJ4BWCnCIn8B8K3zX5cAQQ7dyY0Nedf+
	1jF9SnPud6m5N0wugOgqcVeliYD9rCGLA4POFRgej37aJrRhXRjft2pWpGD2tyAlAmwq8SAfNrk
	aspCso3k7nPrPAhwaWizJkMd/wNkBETVasmQB+SOz0oVy+A8qDU+bHVBi/xq8hmFqichiKvuPpu
	UaSBsUt/gYBaFKM36MRDn2wqOZxGdBjwDykpFKiKkq4IavXSKSm3SHq2vP36VM5HlPbN1+8hPkr
	+F7d5UuSxNgsLoXszW0ZkZXG53toGCQhmd3eSn0pDNZ48aem9PFRoQTHfLnhYp8kC3rnXh2/NIk
	nOsBNZk6INPkhrpMrjuKrkNTSQ4EgcGJZT83JOO71qo7WuhcPSZfFR+6F//gOB0cWfbXs
X-Google-Smtp-Source: AGHT+IE67wkAKEQqwyB8+ailwpG3sfceZbqpcFOqQ17X8wFak8hbEOyXyjnM3yvipSzbiLhuKT7tKw==
X-Received: by 2002:a05:6000:40ce:b0:3b7:c703:ce4 with SMTP id ffacd0b85a97d-3b900b6aad8mr7998590f8f.59.1754894214269;
        Sun, 10 Aug 2025 23:36:54 -0700 (PDT)
Message-ID: <be2b70cc-11ba-4f3a-b0b8-0ead6d14934f@citrix.com>
Date: Mon, 11 Aug 2025 07:36:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 02/22] x86/msr: Rename wrmsr_ns() to wrmsrns(), and take
 64bit value
To: 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: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-3-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: <20250808202314.1045968-3-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 08/08/2025 9:22 pm, Andrew Cooper wrote:
> In hindsight, having the wrapper name not be the instruction mnemonic was a
> poor choice.  Also, PKS turns out to be quite rare in wanting a split value.
>
> Switch to using a single 64bit value in preparation for new users.
>
> No functional change.
>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
> ---
>  xen/arch/x86/include/asm/msr.h      | 4 ++--
>  xen/arch/x86/include/asm/prot-key.h | 4 ++--
>  2 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/xen/arch/x86/include/asm/msr.h b/xen/arch/x86/include/asm/msr.h
> index 4c4f18b3a54d..b6b85b04c3fd 100644
> --- a/xen/arch/x86/include/asm/msr.h
> +++ b/xen/arch/x86/include/asm/msr.h
> @@ -39,7 +39,7 @@ static inline void wrmsrl(unsigned int msr, uint64_t val)
>  }
>  
>  /* Non-serialising WRMSR, when available.  Falls back to a serialising WRMSR. */
> -static inline void wrmsr_ns(uint32_t msr, uint32_t lo, uint32_t hi)
> +static inline void wrmsrns(uint32_t msr, uint64_t val)
>  {
>      /*
>       * WRMSR is 2 bytes.  WRMSRNS is 3 bytes.  Pad WRMSR with a redundant CS
> @@ -47,7 +47,7 @@ static inline void wrmsr_ns(uint32_t msr, uint32_t lo, uint32_t hi)
>       */
>      alternative_input(".byte 0x2e; wrmsr",
>                        ".byte 0x0f,0x01,0xc6", X86_FEATURE_WRMSRNS,
> -                      "c" (msr), "a" (lo), "d" (hi));
> +                      "c" (msr), "a" (val), "d" (val >> 32));
>  }

It turns out this is the case poor code generation for MSR_STAR.

I've adjusted it to:

@@ -39,8 +39,10 @@ static inline void wrmsrl(unsigned int msr, uint64_t val)
Â }
Â 
Â /* Non-serialising WRMSR, when available.Â  Falls back to a serialising WRMSR. */
-static inline void wrmsr_ns(uint32_t msr, uint32_t lo, uint32_t hi)
+static inline void wrmsrns(uint32_t msr, uint64_t val)
Â {
+Â Â Â  uint32_t lo = val, hi = val >> 32;
+
Â Â Â Â  /*
Â Â Â Â Â  * WRMSR is 2 bytes.Â  WRMSRNS is 3 bytes.Â  Pad WRMSR with a redundant CS
Â Â Â Â Â  * prefix to avoid a trailing NOP.


which stops the compiler from loading the high half of %rax too.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 07:24:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 07:24:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1076943.1438035 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulMtb-0003l6-8x; Mon, 11 Aug 2025 07:24:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1076943.1438035; Mon, 11 Aug 2025 07:24: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 1ulMtb-0003kz-65; Mon, 11 Aug 2025 07:24:39 +0000
Received: by outflank-mailman (input) for mailman id 1076943;
 Mon, 11 Aug 2025 07:24:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ku41=2X=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ulMta-0003kt-1y
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 07:24:38 +0000
Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com
 [2a00:1450:4864:20::532])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 396a6ef7-7684-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 09:24:32 +0200 (CEST)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-615398dc162so6382196a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 00:24: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
 4fb4d7f45d1cf-615a8fe7944sm17707156a12.33.2025.08.11.00.24.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 00:24: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>
X-Inumbo-ID: 396a6ef7-7684-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754897071; x=1755501871; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=zDlCfej6ttBAkB6klhF/uEI3o5KH14EGls0y+nduFas=;
        b=erjoXBfDLrDGLiiv2zVWVTZ6ze8v90KD2K9u6pxyvhr71vFMaJZaM67gARw38V5+Ah
         cdZqdsTs5YJ/olyLuKCaIMgjVdbOPljUQpok8Qip4YmrLehPCi+r8Fi7kWOKDFo1XvXS
         XtQtF/LP1F88FE11BhgUdvh9IumiFsS+ZMcMcOQWv1x0GU8Fool+vMwDuT6q18RBZa5G
         JCyYPb84rErHvjPdSlDA0iJ2DSIsaQ6ydeD3IP+xxMuvbY43CkoknWOFbHG28BSBRnkK
         D1bl5qXzRrVxMpAA/nRpEH9ndM4mdp4GnAgn8XnBDLddR4kZeYvZywJRqF8JGE+Cv++f
         jEgA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754897071; x=1755501871;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zDlCfej6ttBAkB6klhF/uEI3o5KH14EGls0y+nduFas=;
        b=wqmh3ukRn0epOOmZctt/8V96xS4x0MDzkqev1ImvsBVbwfTz3ZXRB9GPKmklomSfEw
         m4AhSVNeStYD97BndzD5gox4csoajEpK5Lo6OXrZiwzVeh3gtmAfHeUDb2zSoJl+VBoj
         NKC3FxzNdOXL7e45WTtRkOP0zQm8nz8vb9AmOLj8xnOyyC+7wgw2IDUEatthmI4PQSr0
         scio7ENIegPgcbEX/PDYpo3YFHFTGEJibz9r3cWFPXs9OkLXB3AjVH10nKkJJtto5NMY
         /1HgW5Rkh8L+7scw7K/E8/lAxfdHLHUGrs0dudPyJmh/DHhpwRWBhgeNI6YzKzzht9KW
         8tnQ==
X-Forwarded-Encrypted: i=1; AJvYcCXdtD69e75E+Pfhs/C3TBwBk8REh8bqONtie56ynIhsXDO3tkn0MLGbucw256Elp3mjjK9u9A38kIE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwuxkK2woaUucAKPx7PVuGC3SrGidKwsps/yf/Mj3m9ln6MeTrK
	O9FGRC7a8KZK+Ttetj+1Odo2wud57ztTI+L21fKNce8j4CTYZHRZx9u9kE1SIWhtEw==
X-Gm-Gg: ASbGncuUmIBIMWuDnr8qnZXlbniB8496mTTktuoE+zxTC+EbcGm+eJ/swpOjILPxDkq
	FqawyAEs3Z6kZTPGDmP1CCsoYVOBDvrZRWvdSwGm1+dXqilIdJNY1bWvZRvb4Q3rsdj6wAmAnbd
	MFB3UXMIqDhbuH9iMxVF/x7EdxvJc2B8Cszg9qWQEtayGTCN3Oy3TzE1FKHqde+8HQ9X45BtpTP
	Nw+zLcJnKNkW4kWin1PMI+N+S5DBjvPllqwcxTRVh0tmFO04nXhhbxm7Hi10p8PKp/cla0cuJhF
	z/r7/E/qHJf421pOr1Jonav/XddDr2HFb69VP9oxSJFdyec7poW/jDsLt/eox8aPhy49gSt1xHz
	uHKOm8Njc3Xx4Qy233JFWiBwvcUZkM6t5fUg5MYSv1axFzrJ4Ct5G1lH8RBwe6v9pacrhx6kpSP
	uegLTq3d0=
X-Google-Smtp-Source: AGHT+IFlA77HUI4WF7UNYhvRZp3saESxGcVEbIsjsAYLw7MSg5zI/N/QFbS9pgfzqMjFAfvKo/JUxg==
X-Received: by 2002:a17:906:4788:b0:ae9:8dc8:511c with SMTP id a640c23a62f3a-af9c641a806mr1021904666b.13.1754897071474;
        Mon, 11 Aug 2025 00:24:31 -0700 (PDT)
Message-ID: <5e4b3bb2-653e-46cf-9fc3-5bf57296f2c0@suse.com>
Date: Mon, 11 Aug 2025 09:24:33 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v11 1/5] vpci: Use cleanup to free capability resource
 during deassign
To: "Chen, Jiqian" <Jiqian.Chen@amd.com>
Cc: "Huang, Ray" <Ray.Huang@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20250808080337.28609-1-Jiqian.Chen@amd.com>
 <20250808080337.28609-2-Jiqian.Chen@amd.com>
 <31f9800f-5d2a-4614-9850-07d6bbe232d8@suse.com>
 <BL1PR12MB584915F4FA5E4366E0338FC0E728A@BL1PR12MB5849.namprd12.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: <BL1PR12MB584915F4FA5E4366E0338FC0E728A@BL1PR12MB5849.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.08.2025 06:04, Chen, Jiqian wrote:
> On 2025/8/8 16:58, Jan Beulich wrote:
>> On 08.08.2025 10:03, Jiqian Chen wrote:
>>> @@ -321,6 +321,29 @@ void vpci_deassign_device(struct pci_dev *pdev)
>>>                      &pdev->domain->vpci_dev_assigned_map);
>>>  #endif
>>>  
>>> +    for ( i = 0; i < NUM_VPCI_INIT; i++ )
>>> +    {
>>> +        const vpci_capability_t *capability = &__start_vpci_array[i];
>>> +        const unsigned int cap = capability->id;
>>> +        unsigned int pos = 0;
>>> +
>>> +        if ( !capability->cleanup )
>>> +            continue;
>>> +
>>> +        if ( !capability->is_ext )
>>> +            pos = pci_find_cap_offset(pdev->sbdf, cap);
>>> +        else if ( is_hardware_domain(pdev->domain) )
>>> +            pos = pci_find_ext_capability(pdev->sbdf, cap);
>>> +        if ( pos )
>>> +        {
>>> +            int rc = capability->cleanup(pdev, false);
>>> +            if ( rc )
>>
>> Nit: Blank line between declaration(s) and statement(s) please. (Likely
>> easy enough to adjust while committing, if no other need for a v12
>> arises.)
> Thanks.
> BTW, do I need for-4.21 flag if I expect this series to be merged before 4.21 release?

I wouldn't say "need", but adding such a tag may now be advisable.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 07:28:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 07:28:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1076952.1438044 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulMx6-0004J6-Me; Mon, 11 Aug 2025 07:28:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1076952.1438044; Mon, 11 Aug 2025 07:28:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulMx6-0004Iz-K8; Mon, 11 Aug 2025 07:28:16 +0000
Received: by outflank-mailman (input) for mailman id 1076952;
 Mon, 11 Aug 2025 07:28:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ku41=2X=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ulMx4-0004Ir-TT
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 07:28:14 +0000
Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com
 [2a00:1450:4864:20::530])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bb4a3a7b-7684-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 09:28:10 +0200 (CEST)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-615d0b11621so8837235a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 00:28: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
 4fb4d7f45d1cf-615a8f000c3sm18059751a12.4.2025.08.11.00.28.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 00:28: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>
X-Inumbo-ID: bb4a3a7b-7684-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754897289; x=1755502089; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=7wJ6Oq2TWjLoeNua3H6TFQOypTZjRK2+DjCno4Lq9gI=;
        b=ADkHuUkgVE6vBxnxEQEKzsSS8CDKswnRmubyF7AWzdQj/6JqaisEDoD+b5Da895Fyf
         RNjX1FaLNcgaBkMqqSpwh2JF39UBH2weJSg5EugXY+5YAm+Zn380e9/CKdO+fjxaejab
         qyKzT72wwbdI6hdtvZ4BMWHz5fev8iRFgZPNc277pBOUnkjPR9mm64AYD8uS6wNk1y9a
         W4kB/KkMG9EMKPMK6EZvgu2B/tvh5EwIHBE14L8jyUf0XGCBeFiXGp1gYHlV95EjnkfP
         MvVlFRoxSql+UI6XP/r5hzlF+F1MLO8/5SzgRU47Q66K/Xi5oJlr5+ARXAUUHq7LJV05
         FCuw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754897289; x=1755502089;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7wJ6Oq2TWjLoeNua3H6TFQOypTZjRK2+DjCno4Lq9gI=;
        b=gStjHlmUiUzXmqnPdjxfX4A9V4QKdQlk+2OyLBIXnSALQOErsxpNxPJQuCYEi/dEbD
         BnlXv1s7MgIg3X0GI+YA/7a0yxLdiF+/k+qj3PdDQ3m8ETgzUVE8cxNbLrt55l2Dy2P2
         OcJgagLjQ5t8q0213lf8QfvySJyynLBtp8uyZ+dTie4VVu/3u49HjV8NktcgdQ6Z1wjj
         iUrmOTgiUMJIHF/vlkMjicn+dWvPr38DqhA5yAje2bF/mKeyzVBwegN8Ua1vz2SGMAFI
         tszHGAuyQh9ojU+CcdO8b25lLysCNIyvjbF59BLchccokOtmkgvTyyYb+yEj0Ssm1g+Y
         feGQ==
X-Forwarded-Encrypted: i=1; AJvYcCUkBbXv9IuFIdoTq8MfPAT4cyOtYidzcjOowyMcatZjq5IleqRSLLHLkIKhJICXyCSzORugYzmsAjc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yww0N1MJYR2GpcLVPjxNrY+IWY8p/jjxXagcHxQuX4uxdeb2U56
	IhRlfvGVFTso72BpYS++fE7ufwE4IExHDyD2INSx1OKKLt4oj2TQGTj0q0qRReCe8A==
X-Gm-Gg: ASbGnct0WMzQGPIqNwEcJnq/sh2vo0hXgNk3TFMIno0j9T1JdoJN9yW0oESIe/S2Ipb
	zmxP+EMh+j7vkD0LhqerBiIU427ZxbYyOzzHS1frpO60e3+Yc27Wc66LKkkPB33qd6t697q22bw
	1GW2i551U/5pKZ4U4rQAK49gdhZV47YounD2ftCEOBJB7U7EhhXwHCaA0aSFlCgFp/Py5WcW1tD
	E4+rmrJyCDx+fjQdAg+k2uz4/AJpTRgApuwvo8e4UqlAorvUzUm0COrnTFhmwzTksV3+ZZUMyg8
	OOZDnWD4+zm5wpKogN9/yfR78HIlP+1po9ySwwYT82c6kGGAvEBOgfrrgf/bKYUYNiehcVTuM/K
	kVDUDu8+/B2aHdwDcbtaLii2RLpFUwl/Ao/alG4J9SH5hl1GuKHUNO1hxDk5H1MB2ONGRwzlMgQ
	CSxwHnwwPV6a5orLQr0g==
X-Google-Smtp-Source: AGHT+IHoG3IhpsWdj8cmoqJ01J4+Ck2QD6aVHr1tKz4Uv+qojUmvdqCGNRRzCHwiPD5xzkqDVHCY8Q==
X-Received: by 2002:a17:907:7247:b0:af9:6863:9d41 with SMTP id a640c23a62f3a-af9a3e3f258mr1608592966b.14.1754897289344;
        Mon, 11 Aug 2025 00:28:09 -0700 (PDT)
Message-ID: <ffec4fe0-cca7-40fb-a870-6fdf0201f44a@suse.com>
Date: Mon, 11 Aug 2025 09:28:11 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 11/20] xen/riscv: implement function to map memory in
 guest p2m
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <cover.1753973161.git.oleksii.kurochko@gmail.com>
 <e00dcbecf8f0dbe863628dcc45526100f9ee86a3.1753973161.git.oleksii.kurochko@gmail.com>
 <e7b4b220-4da9-4a87-a4d6-179350849eaa@suse.com>
 <31c75a64-8b69-47ac-9e08-6010fa6cfb9c@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: <31c75a64-8b69-47ac-9e08-6010fa6cfb9c@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.08.2025 15:46, Oleksii Kurochko wrote:
> On 8/5/25 5:20 PM, Jan Beulich wrote:
>> On 31.07.2025 17:58, Oleksii Kurochko wrote:
>>> +/* Unlock the flush and do a P2M TLB flush if necessary */
>>> +void p2m_write_unlock(struct p2m_domain *p2m)
>>> +{
>>> +    /*
>>> +     * The final flush is done with the P2M write lock taken to avoid
>>> +     * someone else modifying the P2M wbefore the TLB invalidation has
>> Nit: Stray 'w'.
>>
>>> +     * completed.
>>> +     */
>>> +    p2m_tlb_flush_sync(p2m);
>> Wasn't the plan to have this be conditional?
> 
> Not really, probably, I misunderstood you before.
> 
> Previously, I only had|p2m_force_tlb_flush_sync()| here, instead of
> |p2m_tlb_flush_sync()|, and the latter includes a condition check on
> |p2m->need_flush|.

Just to re-iterate my point: Not every unlock will require a flush. Hence
why I expect the flush to be conditional upon there being an indication
that some change was done that requires flushing.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 07:34:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 07:34:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1076961.1438054 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulN3X-00061I-Al; Mon, 11 Aug 2025 07:34:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1076961.1438054; Mon, 11 Aug 2025 07:34: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 1ulN3X-00061B-88; Mon, 11 Aug 2025 07:34:55 +0000
Received: by outflank-mailman (input) for mailman id 1076961;
 Mon, 11 Aug 2025 07:34:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6owi=2X=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1ulN3V-000615-7c
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 07:34:53 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a8312b97-7685-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 09:34:47 +0200 (CEST)
Received: from DB9PR02CA0026.eurprd02.prod.outlook.com (2603:10a6:10:1d9::31)
 by AS2PR08MB9569.eurprd08.prod.outlook.com (2603:10a6:20b:60b::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.21; Mon, 11 Aug
 2025 07:34:40 +0000
Received: from DU2PEPF00028D0F.eurprd03.prod.outlook.com
 (2603:10a6:10:1d9:cafe::8e) 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.9009.22 via Frontend Transport; Mon,
 11 Aug 2025 07:34:40 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DU2PEPF00028D0F.mail.protection.outlook.com (10.167.242.23) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9031.11
 via Frontend Transport; Mon, 11 Aug 2025 07:34:39 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com (2603:10a6:10:25a::24)
 by PAVPR08MB9817.eurprd08.prod.outlook.com (2603:10a6:102:31d::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.21; Mon, 11 Aug
 2025 07:34:07 +0000
Received: from DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a]) by DB9PR08MB6588.eurprd08.prod.outlook.com
 ([fe80::a8fc:ea0d:baf1:23a%2]) with mapi id 15.20.9009.017; Mon, 11 Aug 2025
 07:34: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>
X-Inumbo-ID: a8312b97-7685-11f0-b898-0df219b8e170
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=gOa0uEeNG8pav6Xn3nUfSoTD1OJLbByMR88xy4xNvKE5az42Kp8DVqPtvFnC3xuIVHC4TnSlMJcxbOkOqlSkmZ9nftJjOnf3WYSLu0J1q7n0PqNPGRZxg3gZ9/W8oKKVgEpa6H/BP15FFPOB4fwSKV4UDmF/haGKur0Wwr8Me8cUYi6TtrxMQs2W2P0Nw5q8IgPv1zWBXbnxGfg+U0QdzArtwIW1cagNO0R6DqdgluaCJyQojA0BbDSnmzYrbc2dmFxw8bBRHaRFr6lW+c5i5TOjghYGcyTLcht13OunqOXOP38CCPCPe2gEj5FmX9nyLV9JKmktHpbRjvr7J6zc5g==
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=BhG4rbTSHhy/Sr/3v+F7BVCUauPzVThuTt12zVq3ehk=;
 b=iTBjlI5bqc1rLjdDZn7bzRJyKTtUk7HDf/bWq6gDwZW556RBnXld6OX3ted124Me+B/kRrRS7NBv0z6LTKGL12dCerZNqXlwqffKHzC5KHVwAT0hY0CuvIg42WMDI1qwbxEAner/GK2so/HwsxDbt8oUgxXgYS04RklvUARBh/lc+UUUGIwPdjR3IQ3x3h7hiNi9WNFVBaNdahO2YtbZQglWxLabOOSMnseevqicN/fpAtw2M7ZRXWidb1BU7QjawlRkTopK/SOJ8D3NURJRtH3rYkUE8gcLybSTE/xLHANTxeBPdMh7hMdSwAqAh9eP27+EmxROSeM3cfIJBTe5oQ==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=xen.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=BhG4rbTSHhy/Sr/3v+F7BVCUauPzVThuTt12zVq3ehk=;
 b=WnWoGSuouvXJOZqMfPRosyT9JMU0VZC127ko21UAWFpjLMQ5MI7Elj/Nd1wIOAb5Lup82EAAKmpZCXVO8JUajj5an2X5ahBcFh7JMvEjLJDfMJCn6N0JbMdD+kohMqqkQlZktjVf5ZIEJuaRRxWjOucAKKANdb2T+jGaOgPyYiI=
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=zIkUHUi/g24AJSRUQuewArLFSwrr0eYUc1tLeeGPlNo3ugfljAUCEuWOBuDGUs8i8N0FxzfVOtJ1CT18GEjAa5eJLxcLDqB7aFFLjA8d6ZBrTRc6t5CdFgL6j21mC33hAUC1qKOj9aQ0s/GzYjatSpYcgFKZuC2eqFJ9EcPefDWNuP9d0POjfBSXLwQhIOKrv6OO+DmCWyi6OJ/pXR5OZ03JE38PaKSjTSPh5F3WLIu/auMY8dSEwbFyKe2ZreXlK/dtrXXcFe4Sy1HPo1WANG6fD+kp1B7DCGDLn6aME0ErBszi8tltmiPzSTlkVLY3ID+IlQvCtvvvjk0AYbEXAg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=BhG4rbTSHhy/Sr/3v+F7BVCUauPzVThuTt12zVq3ehk=;
 b=I4UFEfn7/LiDsp6wO0gkR9KprCRJ+x275KCKzc3AwVl0Gz188TSIuH5ynx0xmdZpGQWb9HXetR1p01hpGDcvmLftOBsnR+C0QG9vfTXuTIp4SYzn4ErDIGd4KFL/bd1sg5vHBvIAd0p3tqdFdHKILsZqFMS4XIEOvAuj6UQzQidcnL2x5VCWzyM8ME2Q7HxQ3P1hjovPjeEELsOxqd2S8+1JQ/Qc36vLtZZ5Vr1+ZW4enOZOQrgyIoOPLHXk7QozFNHEFzLTFjmWqFMKioBgGcLbvtIlsanvGkoDWOep+xkz6c82/Bm7IuXfmOw1SLxX2Ea+NmeGJpfvH2Ww9Ry0eg==
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=BhG4rbTSHhy/Sr/3v+F7BVCUauPzVThuTt12zVq3ehk=;
 b=WnWoGSuouvXJOZqMfPRosyT9JMU0VZC127ko21UAWFpjLMQ5MI7Elj/Nd1wIOAb5Lup82EAAKmpZCXVO8JUajj5an2X5ahBcFh7JMvEjLJDfMJCn6N0JbMdD+kohMqqkQlZktjVf5ZIEJuaRRxWjOucAKKANdb2T+jGaOgPyYiI=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Julien Grall <julien@xen.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"jens.wiklander@linaro.org" <jens.wiklander@linaro.org>, Volodymyr Babchuk
	<volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v7 3/6] xen/arm: ffa: Introduce VM to VM support
Thread-Topic: [PATCH v7 3/6] xen/arm: ffa: Introduce VM to VM support
Thread-Index: AQHb9xP9tgnM92Sxpk+5sdmAsJMirrRZG8AAgAQargA=
Date: Mon, 11 Aug 2025 07:34:06 +0000
Message-ID: <85167096-B676-4EB3-80EE-8BCC8DCF68DE@arm.com>
References: <cover.1752754016.git.bertrand.marquis@arm.com>
 <50224eb7cca4eaef2646ad8e33f689d912704733.1752754016.git.bertrand.marquis@arm.com>
 <39df0f84-3004-479e-990d-a8437a384294@xen.org>
In-Reply-To: <39df0f84-3004-479e-990d-a8437a384294@xen.org>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.600.51.1.1)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DB9PR08MB6588:EE_|PAVPR08MB9817:EE_|DU2PEPF00028D0F:EE_|AS2PR08MB9569:EE_
X-MS-Office365-Filtering-Correlation-Id: ea1ab3ac-dfe4-49d9-4b10-08ddd8a98808
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|10070799003|366016|1800799024|376014|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?us-ascii?Q?BQNh4o1vAFo96jzG+beWiCnKUp+sCaHaBmoxdQSGiZ9DwjuQLfwZEPrNFX3J?=
 =?us-ascii?Q?UuT9ZlYVufbvGm67V50nSGdju8aEJRMXZu9FlPuA5BbeX/FvTJJeDmU7DW18?=
 =?us-ascii?Q?putl29ghwIyTqDHJh4Q6F1edV7lHZF9kVjJL/O36W+D3NG3XcglkAy5eiI/X?=
 =?us-ascii?Q?WYuidnodHI5Ee2fJYhg2NxWrF6XXUnBab+i3GgY+qELockxGEEnWc4vSXbk3?=
 =?us-ascii?Q?lwSIrWkPq07dEh0I6bl3ZDl95krK6m7o8Xv+iIMR8rpxbkVjTjwjCz1DFw84?=
 =?us-ascii?Q?+RX62aYwyhTSt+r9aTr9U2iiQ+0ycQTq8A1227HOn7DvnhYWBgBIGadv9YuL?=
 =?us-ascii?Q?b5RmsldrsKH6VKKr77P7xHi196fD5APa16lx4EQgVvMct3HpRiB9JQs9zboN?=
 =?us-ascii?Q?ZwstTblzlzOjmMSeaPkcTDVZq1itSD3gRem4i4QcHGNrkiHKsgmN5JD7z874?=
 =?us-ascii?Q?qfPDNYckVOjSbQYFVXKugoPzDMzjEePpG2Mh5WrBCSyUJ+hn76TWVHqpwKim?=
 =?us-ascii?Q?c06Y5u9/1ctIwNggdcjUz//1hGXaKhTOyNmg7+uYUTrzii/8WCyMzd8u8NOC?=
 =?us-ascii?Q?vVyHxRw/HLDSmcY5mKuUsQrMFbQcLtyf/FUkO3NzQMWOv7jpS/Mm7yXQMB86?=
 =?us-ascii?Q?4inQpMDzGtK3mO/+L6L2wUZGC/QkmVOYqMa4SGRkjsw5iZdls2d8ITfdTVpG?=
 =?us-ascii?Q?ZlyRUHV+iKc3uwShaG1Fsud0B9M4f8JqrmEnS568V3Erz2jwkcIgL6sTWg57?=
 =?us-ascii?Q?jMeZJyfvbX1op8UWZseDDZnvJ8ysO1iO9ZDuwp3nGi9YtufR1chku8GGlhJX?=
 =?us-ascii?Q?lRozqKDu19OrFuvnhaytX6gOdzZ2CDjSGVJ1wdasojKV4eUs2VY5ApNfegLD?=
 =?us-ascii?Q?9JVyb+1MLHUGAYD6EOaNjamOUjV+ERavjrzbMBnnXEi6YsLCciHnAJpt2jpT?=
 =?us-ascii?Q?ywkj3vL+HjmyyA//Im4Lpq4+u77IxOsJNUGNgWCrtKBBTzycK8B/HW68elOu?=
 =?us-ascii?Q?LIuL/kzeXF7rKZN0LoFi/o/CqIWxf6uE3IN6JVPTvfXdGW+386xx126scNXK?=
 =?us-ascii?Q?sc4Qy4F7PtnvZqpmFgFVBw0vdrKiT4mRFyHUUJD+8UOIbUUIVTFJneFUKqLO?=
 =?us-ascii?Q?4Uc2j1zlCQv+XnSNUbZUHr/oJV8GGq1k7Z+ae4AmUSEfMmKLjDyFqCUsAAHV?=
 =?us-ascii?Q?FM9Cc608hB87yncc8Ug181bjx8YuUY2UaSLnpVKkFY36MuXWD7ALej/0BifU?=
 =?us-ascii?Q?ECN5XtPiHIwF7pVgkJba+zbM7fQXMTpE1Th3+EmqCC0k0aquARkkHeKAtZRA?=
 =?us-ascii?Q?b/OkgCK+1CLqqIzcihG2avKIu1IoIZ1W67uuknu3DG2A0hI9IbJmtStJJ1Fo?=
 =?us-ascii?Q?oPG6OX7x2zAvrrpzswCRMVLor1R43wCYEfvLuCZAwMdySROS/r7QgxHyMkLQ?=
 =?us-ascii?Q?5J/OR8sC4Kh7S/uhu/IHpELWD+ev78pC+jqutqINHfBmM93ZQOZOMjGzuSvF?=
 =?us-ascii?Q?RfMWKW+22W0l5pE=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR08MB6588.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <06413ACFA6834544BD7553C168D1F65E@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR08MB9817
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DU2PEPF00028D0F.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	c4689afc-c325-4f57-225e-08ddd8a97453
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|376014|82310400026|1800799024|35042699022|36860700013|13003099007|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?hh3FZMywHqt/95oHMrAQIGBNJVJWqApoGj9JIRCEk8rChVLRvt/gUAPe41NE?=
 =?us-ascii?Q?6pe2GDNVSpCITM3RoIIrihs1OAfhqy2gGEfBlBryX2REoLEfGquiiHIoF09L?=
 =?us-ascii?Q?FA/H3Tjce8iBOCV0L41f/8kBThn34BAITBYuWq9Xuz43hn79or9GSLPhFL5B?=
 =?us-ascii?Q?yfIwqESgaXLYKfZUFXld6Yb5+nYtFjRyUpuhIq5kedGa8eFmAczp4Mw31ny+?=
 =?us-ascii?Q?Wviy7GWWFpOQfsUq4B2a/c3uUrhyra2+UlTqAOY4nspOHKquMrnCtVggYNln?=
 =?us-ascii?Q?bJUfyzROnYq47jm8M/YW9e5skutrKNDguGNVDN1I012ip5+P2AxX6if1ezaj?=
 =?us-ascii?Q?SLnPBNe+77990b5RagEn/Ef/51n7GKNFAk8MaZiPNE1Z9Cr5A6+dj6KQTUr0?=
 =?us-ascii?Q?YvdxJBCmjklU2wFeUI8kN3cmReBdUZqcDVlWxKm6wVupr8P9bkg1H5441cfG?=
 =?us-ascii?Q?i6iAzByESovGyAVHjMq0Y97OdMvMJXpLmfdNSIvXiYd1tmsejbTYDWXcQwKJ?=
 =?us-ascii?Q?tI/g9PSsuKOau3sR8XZtM9yFIozkHXcn6RJvWZIiOfOqcUcqyzmNNafeML0C?=
 =?us-ascii?Q?qdj7YT9ySLsiEy+XfULfZuiJXdDqw+roOZm2rFjyQn0rRHZox/h2AvAV368d?=
 =?us-ascii?Q?KMdKcgVIssroJc/k1oroCkzA7vegv+dk/HK8eTrZG2BNi73sC6jD6Ys86SNZ?=
 =?us-ascii?Q?LQElOd/bIRGlN0cvvfnrAkf8tPXaq+XLdbv7S0vs28Z0TPAdmf9EDlGiZXUU?=
 =?us-ascii?Q?VXWvLSl96R7nFedYTgDhiXph31YRZsqIhzEUCPfyuuGIi53+kS8E44w85iQr?=
 =?us-ascii?Q?4QVvbd/FGDcpeXOnDaXvoUm4e/txudg6/v56lFcXnvaPtd7z8Vu2fUCErtec?=
 =?us-ascii?Q?25PQftEsE9WfCUWQ15HboUTlvBnJRlGcbxpla2b3gHZF7NXQ4X5kWsFhJjpG?=
 =?us-ascii?Q?+e6LWLnX1FkH58+YrMjX3fZ06ix34JkpaT+6WluYux4rG/lGJIdQrPXcI7f5?=
 =?us-ascii?Q?YuW6TNzpxPVhrcTBE9Xe85MMXuiKVZuAQi2F4X/pL6EieKehp3Zz5P+AuAgz?=
 =?us-ascii?Q?H/ZgWyDbIQQVTtw4OPWMmCsyTGNBt38iazDj1wKXJUTn8P1XFB/MpvSqKjRn?=
 =?us-ascii?Q?h9krWFO3dvY1zfvKQ3kqJt98jlzlCIXJXE8R1f5HRp61zPBCggm3mJuqjApk?=
 =?us-ascii?Q?NEdfaq0jsHEz1A0LAqvy3mJwmYjNBsWvEFsfcn3VArj4+PQ4EWabWRJpdQXI?=
 =?us-ascii?Q?U/kVf+bNtcnH0+Lr5V1SUMqNV6T8UcHrr61GctW49yQEYcUWHb3agJMADQNs?=
 =?us-ascii?Q?dZOofeXr1ul4Qp3pc/CMiK0YopoLHJipPueFRpLf48xbsMk3jySkcN6QJi+d?=
 =?us-ascii?Q?ZRF3dvzrPcvyeMSBq7hw1Q7led9BYM5OqzneXIQKaTOADT32L3mgy+iSmxeU?=
 =?us-ascii?Q?EKkMwn1E9ywY+cBgaYItHdHQsAC04IFDC4jqzDcG6+Ot6L/+cp8CkGNG+M10?=
 =?us-ascii?Q?M1VGSRSqGPCvdJzMbkU1KuESFpN40xBQhNhIyekR3pow69kuBBJKosompQ?=
 =?us-ascii?Q?=3D=3D?=
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)(376014)(82310400026)(1800799024)(35042699022)(36860700013)(13003099007)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Aug 2025 07:34:39.8719
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ea1ab3ac-dfe4-49d9-4b10-08ddd8a98808
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:
	DU2PEPF00028D0F.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB9569

Hi Julien,

> On 8 Aug 2025, at 18:53, Julien Grall <julien@xen.org> wrote:
>=20
> Hi Bertrand,
>=20
> On 17/07/2025 13:11, Bertrand Marquis wrote:
>> Create a CONFIG_FFA_VM_TO_VM parameter to activate FFA communication
>> between VMs.
>> When activated list VMs in the system with FF-A support in part_info_get=
.
>> When VM to VM is activated, Xen will be tainted as Insecure and a
>> message is displayed to the user during the boot as there is no
>> filtering of VMs in FF-A so any VM can communicate or see any other VM
>> in the system.
>> WARNING: There is no filtering for now and all VMs are listed !!
>> This patch is reorganizing the ffa_ctx structure to make clear which
>> lock is protecting what parts.
>> This patch is introducing a chain list of the ffa_ctx with a FFA Version
>> negociated allowing to create the partinfo results for VMs in parallel
>> by using rwlock which only ensure addition/removal of entries are
>> protected.
>> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
>=20
> With two remarks below:
>=20
> Acked-by: Julien Grall <jgrall@amazon.com>
>=20
>> ---
>> Changes in v7:
>> - protect ffa_ctx list with a rw lock to allow several partinfo_get in
>>   parallel but protect adding/removing entries.
>> Changes in v6:
>> - remove ACCESS_ONCE for guest_vers access and take the context lock
>>   before modifying it
>> - move guest_vers in context declaration to fields protected by the
>>   context lock and add a comment to state that lock in only needed when
>>   modifying it
>> Changes in v5:
>> - remove invalid comment about 1.1 firmware support
>> - rename variables from d and dom to curr_d and dest_d (Julien)
>> - add a TODO in the code for potential holding for long of the CPU
>>   (Julien)
>> - use an atomic global variable to store the number of VMs instead of
>>   recomputing the value each time (Julien)
>> - add partinfo information in ffa_ctx (id, cpus and 64bit) and create a
>>   chain list of ctx. Use this chain list to create the partinfo result
>>   without holding a global lock to prevent concurrency issues.
>> - Move some changes in a preparation patch modifying partinfo for sps to
>>   reduce this patch size and make the review easier
>> Changes in v4:
>> - properly handle SPMC version 1.0 header size case in partinfo_get
>> - switch to local counting variables instead of *pointer +=3D 1 form
>> - coding style issue with missing spaces in if ()
>> Changes in v3:
>> - break partinfo_get in several sub functions to make the implementation
>>   easier to understand and lock handling easier
>> - rework implementation to check size along the way and prevent previous
>>   implementation limits which had to check that the number of VMs or SPs
>>   did not change
>> - taint Xen as INSECURE when VM to VM is enabled
>> Changes in v2:
>> - Switch ifdef to IS_ENABLED
>> - dom was not switched to d as requested by Jan because there is already
>>   a variable d pointing to the current domain and it must not be
>>   shadowed.
>> ---
>>  xen/arch/arm/tee/Kconfig        |  11 +++
>>  xen/arch/arm/tee/ffa.c          |  47 +++++++++++++
>>  xen/arch/arm/tee/ffa_partinfo.c | 100 ++++++++++++++++++++++++---
>>  xen/arch/arm/tee/ffa_private.h  | 117 ++++++++++++++++++++++++++------
>>  4 files changed, 245 insertions(+), 30 deletions(-)
>> diff --git a/xen/arch/arm/tee/Kconfig b/xen/arch/arm/tee/Kconfig
>> index c5b0f88d7522..88a4c4c99154 100644
>> --- a/xen/arch/arm/tee/Kconfig
>> +++ b/xen/arch/arm/tee/Kconfig
>> @@ -28,5 +28,16 @@ config FFA
>>       [1] https://developer.arm.com/documentation/den0077/latest
>>  +config FFA_VM_TO_VM
>> +    bool "Enable FF-A between VMs (UNSUPPORTED)" if UNSUPPORTED
>> +    default n
>> +    depends on FFA
>> +    help
>> +      This option enables to use FF-A between VMs.
>> +      This is experimental and there is no access control so any
>> +      guest can communicate with any other guest.
>> +
>> +      If unsure, say N.
>> +
>>  endmenu
>>  diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
>> index 3bbdd7168a6b..be71eda4869f 100644
>> --- a/xen/arch/arm/tee/ffa.c
>> +++ b/xen/arch/arm/tee/ffa.c
>> @@ -118,6 +118,13 @@ void *ffa_tx __read_mostly;
>>  DEFINE_SPINLOCK(ffa_rx_buffer_lock);
>>  DEFINE_SPINLOCK(ffa_tx_buffer_lock);
>>  +struct list_head ffa_ctx_head;
>=20
> A more common pattern is to use LIST_HEAD(ffa_ctx_head) and ...
>=20
>> +/* RW Lock to protect addition/removal and reading in ffa_ctx_head */
>> +rwlock_t ffa_ctx_list_rwlock;
>=20
> ... DEFINE_RWLOCK(ffa_ctx_list_rwlock) which will also initialize list/rw=
lock for you. So no need for extra code further down and less risk if the v=
ariables are used before they are initialized.

I will modify those and push a v7 to the mailing list today.

Thanks again.

Bertrand

>=20
> Cheers,
>=20
> --=20
> Julien Grall




From xen-devel-bounces@lists.xenproject.org Mon Aug 11 07:34:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 07:34:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1076962.1438065 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulN3a-0006Fk-Mn; Mon, 11 Aug 2025 07:34:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1076962.1438065; Mon, 11 Aug 2025 07:34: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 1ulN3a-0006Fd-JU; Mon, 11 Aug 2025 07:34:58 +0000
Received: by outflank-mailman (input) for mailman id 1076962;
 Mon, 11 Aug 2025 07:34:57 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ku41=2X=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ulN3Z-0006FE-Rk
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 07:34:57 +0000
Received: from mail-ed1-x535.google.com (mail-ed1-x535.google.com
 [2a00:1450:4864:20::535])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ada540e0-7685-11f0-a325-13f23c93f187;
 Mon, 11 Aug 2025 09:34:56 +0200 (CEST)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-6180b9e4e74so3299117a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 00:34: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
 a640c23a62f3a-af91a1e820asm1966038266b.90.2025.08.11.00.34.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 00:34: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>
X-Inumbo-ID: ada540e0-7685-11f0-a325-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754897696; x=1755502496; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=xnhLHmlAdg3UBmQKbDdLSbrl7y/jkLDjBREa5M48IFo=;
        b=Rdia5uF8q7PQ6BBnUaGTcOXfIbJBoN9RxJLMrsG6s/VlobC2qNOGODx0O5vUxsF3xy
         7BYQvllSbr+0eJGWMh/VEe8TGEZ9fTXCyLBUV69L3MRXZRZ3C41IVV5eC73A524WjNLa
         afrF4mKD1k7QKgAJRn28vsqqyrmq1Aus2dJLukItEWrU8y2wOrTLaFV+aoE9FV9MsYdm
         b3qjWNfDeenX1CKxaaz06G3VtsBoJ8bjSp4PjiXnugPyBQfQBSwZsnEtouLDMH1KupGn
         eh6nEU8VK4npqt7AMNvsJmePIv36wEUctRWToBmdPfMMS3v8hgcoksm7IqDUdj7NzVlw
         eo8A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754897696; x=1755502496;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xnhLHmlAdg3UBmQKbDdLSbrl7y/jkLDjBREa5M48IFo=;
        b=k2Yw31mwEiXm7szCcuNQHEeBu8W8lVqTwjOhOzB/sgNygxe84t9I7EiiqGB9FLmuU1
         OywS9BTuGpUz3ELdwYqvep6TsajxrtIq4jBV5W2KPktVJ33hLxsQAFCmRHpXhgSJXL1e
         dpYm0Gy1IKmUOM3Nt7QbNNl+4fk+6+tvBDvAtclO9g09yX5cx18UyJozV1SkKUZLNEfc
         tT3+hPm123yA7cW9EGGRMiRdWEWFx08Ws/zUwUawHNd68epjh5opHPbJOQbH6TAG7c6L
         17UziXUviV6XBlIBSSXx+t8o5ZWu4GtZLEljEJvpjKj+zj8RenYm3u2QbnWp3Up/v5f1
         M7Uw==
X-Forwarded-Encrypted: i=1; AJvYcCUFkTLbgicow3/H6n5GoRyINLUos1BEGQBIb2J1KlA04wR4cu/hLr2IFO3gDBis8TzK5fLc/+kBbPQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxdTwUnK1z/bi67nxlKQ2ALbEfOzH8MKMM/DNc5tv6ZapA6a241
	NgEhWJpacctF7H6XxMqo5x6xRiac6i8qGW4eU7u+9MX8gq3bwM2IiNDBSJTW4ZucrA==
X-Gm-Gg: ASbGncsoHur/uKRvIN9WcVpShq9Z1rHjtT14RM+ArnYmARtQWFAohznt5pKxgBfikLN
	kYWOZIn0j/5GsBRw6yiJPHgs9xocQRF352nVsuL0v3Ou7X9a0Wgn9tVLhYU1XjOFuMzYy8itisd
	noayksslbHAKcBlqWfMNduqisKERdDexz5GV4CJMX1FVO4MQWBhARVgEdQ+5OhEM7jP8vzVJwpk
	8SA27suFzTy8EM8la5WtnQt4RWfzCxjcBHUC+oSHbzzapXyVB6+1cIZ8ZWZKteSSjX/qS4K/LyO
	X/9r1t/xrMt/HAk4rxQ3lk883TW5KS8iFxMoWLBqj+eF0WD+LgoZwD551rG7qiLjTdeSrEi1B9/
	xypeSsKTJjLA6QwK0uGYmcpprbsmv1kRg1YWNXCPzaO/N61yAeStAt9nTuq/I/XIb8RVcjHY4+M
	mnSAE+I78=
X-Google-Smtp-Source: AGHT+IHpO33tqORSb2xzYM4z9vFKGmBHNNFJV3GXLAyAjMU6JUMsrzZcT3ezwBQbdd3xuKFoDixuqw==
X-Received: by 2002:a17:907:7212:b0:af9:3c68:f743 with SMTP id a640c23a62f3a-af9c6516d1emr987755766b.34.1754897695872;
        Mon, 11 Aug 2025 00:34:55 -0700 (PDT)
Message-ID: <6953603b-8c3f-4f12-9f5e-45cb553fe8cc@suse.com>
Date: Mon, 11 Aug 2025 09:34:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 2/8] emul/vuart: introduce framework for UART emulators
To: dmkhn@proton.me
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
References: <20250731192130.3948419-1-dmukhin@ford.com>
 <20250731192130.3948419-3-dmukhin@ford.com>
 <a416cc08-5970-433a-8015-5d2aa961a000@suse.com> <aJeZpiM35gOtB+4Z@starscream>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aJeZpiM35gOtB+4Z@starscream>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.08.2025 20:55, dmkhn@proton.me wrote:
> On Mon, Aug 04, 2025 at 12:11:03PM +0200, Jan Beulich wrote:
>> On 31.07.2025 21:21, dmkhn@proton.me wrote:
>>> --- a/xen/common/Kconfig
>>> +++ b/xen/common/Kconfig
>>> @@ -1,6 +1,8 @@
>>>
>>>  menu "Common Features"
>>>
>>> +source "common/emul/Kconfig"
>>> +
>>>  config COMPAT
>>
>> Why at the very top?
> 
> I did not find a better place, since the settings are not sorted and to me it
> makes sense to list emulation capabilities first...
> 
> Where would be the best location for that submenu?
> Close to another submenu `source "common/sched/Kconfig"`?

At least below there. Possibly yet further down.

>>> +int vuart_init(struct domain *d, struct vuart_params *params)
>>> +{
>>> +    const struct vuart_ops *vdev;
>>> +    int rc;
>>> +
>>> +    if ( !domain_has_vuart(d) )
>>> +        return 0;
>>> +
>>> +    for_each_vuart(vdev)
>>> +    {
>>> +        rc = vdev->init(d, params);
>>> +        if ( rc )
>>> +            return rc;
>>> +    }
>>> +
>>> +    d->console.input_allowed = true;
>>
>> Unconditionally?
> 
> Thanks.
> That should be a least under rc == 0.

You only ever make it there with rc == 0, though. (In fact that variable's
scope would better be just the loop body.)

>>> +/*
>>> + * Put character to the first suitable emulated UART's FIFO.
>>> + */
>>
>> What's "suitable"? Along the lines of the earlier remark, what if the domain
>> has vUART kind A configured, ...
> 
> "suitable" is meant to be the first emulator with put_rx != NULL.
> I will update that.

Except that, as iirc Roger also pointed out, "first emulator with put_rx != NULL"
is a questionable condition.

>>> --- a/xen/common/keyhandler.c
>>> +++ b/xen/common/keyhandler.c
>>> @@ -22,6 +22,7 @@
>>>  #include <xen/mm.h>
>>>  #include <xen/watchdog.h>
>>>  #include <xen/init.h>
>>> +#include <xen/vuart.h>
>>>  #include <asm/div64.h>
>>>
>>>  static unsigned char keypress_key;
>>> @@ -354,6 +355,8 @@ static void cf_check dump_domains(unsigned char key)
>>>                             v->periodic_period / 1000000);
>>>              }
>>>          }
>>> +
>>> +        vuart_dump_state(d);
>>
>> How verbose is this going to get?
> 
> Looks something like this:
> ```
> (XEN) [   88.334893] 'q' pressed -> dumping domain info (now = 88334828303)
> [..]
> (XEN) [   88.335673] Virtual ns16550 (COM2) I/O port 0x02f8 IRQ#3 owner d0
> (XEN) [   88.335681]   RX FIFO size 1024 in_prod 258 in_cons 258 used 0
> (XEN) [   88.335689]   TX FIFO size 2048 out_prod 15 out_cons 0 used 15
> (XEN) [   88.335696]   00 RBR 02 THR 6f DLL 01 DLM 00
> (XEN) [   88.335703]   01 IER 05
> (XEN) [   88.335709]   02 FCR 81 IIR c1
> (XEN) [   88.335715]   03 LCR 13
> (XEN) [   88.335720]   04 MCR 0b
> (XEN) [   88.335726]   05 LSR 60
> (XEN) [   88.335731]   06 MSR b0
> (XEN) [   88.335736]   07 SCR 00
> 
> ```

Definitely too much (for my taste) to put under 'q'.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 07:39:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 07:39:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1076981.1438074 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulN8E-00079p-5v; Mon, 11 Aug 2025 07:39:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1076981.1438074; Mon, 11 Aug 2025 07: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 1ulN8E-00079i-3G; Mon, 11 Aug 2025 07:39:46 +0000
Received: by outflank-mailman (input) for mailman id 1076981;
 Mon, 11 Aug 2025 07:39:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ku41=2X=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ulN8D-00079c-9C
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 07:39:45 +0000
Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com
 [2a00:1450:4864:20::536])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 56e38018-7686-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 09:39:40 +0200 (CEST)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-6182ea5a6c0so957604a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 00:39: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
 a640c23a62f3a-af91a0df10asm1972985166b.59.2025.08.11.00.39.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 00:39:39 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 56e38018-7686-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754897980; x=1755502780; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=XBE0vuhks1Zq36ADLjy2EsNSbL4gLinB8BhT8KF5Rfs=;
        b=PVjODw8ah4bhtjqExClC/sAAAd3crrQboeXXgAswL90dLR/xYL+7dpXTeRANYmiS4k
         wickQhf8LY5mE+YP5Fzz69JnvFvHVAdw2VfRIALljayyBhg1+RvaaQhJj8VvBILlXnG2
         wkUolY78mOR6DsnFLsKttSPBmjVwO/6b9uh5dMUF2AoxC4x4YWRJLnU9YKyCqVGEcNkG
         ++z1sOLdtBmZWX1YRARc8sl2U8SvmGVVpd1XvC5sqNVB1HtBprGq0Ec1r6qSCJsf3wfK
         FyLwBXbL3JoUYLB3iVbSRdXXDn9deqOTadZgkGeMwDnTdva7fmH25+iS2r6Y++kNM6oo
         5wqQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754897980; x=1755502780;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XBE0vuhks1Zq36ADLjy2EsNSbL4gLinB8BhT8KF5Rfs=;
        b=OhCLKgc3fq91dM8eUSamQbMEe1+Ft3MlPk0CusDONXuaV3p+vpb6hxBw9aL5aDA6EB
         cQzYKTo44gbIm4L8NdCbTJ80nOGlji6oRzsWMRmWM6gRGXrlxtl3wyYvs6g/6DLs76hF
         n6FWzXsj4S1v0afpAVdXV+IuZqNIHmyFrMsPqH490Qa6cqvX4gIYN7nQOv0i34tPJm2n
         LKCG7yu8SybXZiZcudQZFi9LMixA1LZyeJJJYagNy32HHhdrdPEkqJ2blmkKy+BrHuFj
         b5hxzOLM+fa08ynGw+6PrOdUlOGocOI6IKICqPTMhJ8ritNqMlGYRyv45FqlMQolKB/m
         sNoQ==
X-Forwarded-Encrypted: i=1; AJvYcCUtLyijXdDJ/HR6gMRiU8ue0l295ZpfuXTnHzwsxOjsO+7+PEzq+lu+cgw6+ZyKxbw+k99vOq2CBs4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyIPgnlZL29JSD4j/bnO1OCP7FleZ8ngf094ym1iVtDBCYQpTd1
	z4OS3nDm/h1RRjv2X+NxKWpnUekQgLsSiSnQZUSA9FcLpkhYK6H7SWRzpLZHd6i6uwVsFYI1sEx
	1+KI=
X-Gm-Gg: ASbGncvxa00HJQv+v+QVEABomr0219iJ6ivrGmNyFhWRHt9l0fv6lKc5poFuRbNanaW
	LEHhPD0drOWzMU9WXeJy0ThNxcZlNpyejWiKTXI+O28czxFnwNSxbfcrOTKeFNRuzojexmt0XrS
	Bap/w5Wk0BTnjcSIwFw24UgiteXpqOUT7IxSm4m4g/MEYfcvFVqC3PNQmMp0o9RymBKvzXVhM+q
	feiNOuGTOtuhdsLAm2epCzja7rq4yjXB2/RG4IFt2qszvBWYy+qV2jwW9hV+29hzqA8acuGOirD
	p9RMKmzfImllDi5YZqbW3eZO5q+kZX3Zmer+hmn5MweeQllPCUwcR00CM1YU0mPk6gT/riOSE4n
	wYl4NWbrhobSTvQHxSxAId53hEywYs8rjdSTQfKmBGV+SBPFowSoq21ug2YtjC1RFVuMZln4dOk
	Q0ft3xP5c=
X-Google-Smtp-Source: AGHT+IFxlUMKfQyJuHL7TDiSrf3KGn01gbZM8y4VbuAf0oY/zugkKxhZ+dgDGSONzhathf3hY33W8Q==
X-Received: by 2002:a17:907:d14:b0:af8:fad5:aeed with SMTP id a640c23a62f3a-af9c64d4032mr1055291566b.29.1754897979890;
        Mon, 11 Aug 2025 00:39:39 -0700 (PDT)
Message-ID: <32cd30fb-190c-44f0-824f-1c4583635250@suse.com>
Date: Mon, 11 Aug 2025 09:39:42 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 5/8] emul/vuart-ns16550: introduce NS16550-compatible
 UART emulator (x86)
To: dmkhn@proton.me
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
References: <20250731192130.3948419-1-dmukhin@ford.com>
 <20250731192130.3948419-6-dmukhin@ford.com>
 <5c0589a2-91fe-484d-bded-5a68a1626355@suse.com> <aJeVTIG2nU3bqGwO@starscream>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aJeVTIG2nU3bqGwO@starscream>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.08.2025 20:37, dmkhn@proton.me wrote:
> On Mon, Aug 04, 2025 at 12:53:36PM +0200, Jan Beulich wrote:
>> On 31.07.2025 21:22, dmkhn@proton.me wrote:
>>> --- a/xen/common/emul/vuart/Makefile
>>> +++ b/xen/common/emul/vuart/Makefile
>>> @@ -1 +1,2 @@
>>>  obj-$(CONFIG_HAS_VUART) += vuart.o
>>> +obj-$(CONFIG_VUART_NS16550) += vuart-ns16550.o
>>
>> I don't think files in this directory need a vuart- name prefix.
> 
> Ack.
> 
> Hmm, there's already ns16550.c which is UART driver, so it may be confusing to
> have two ns16550s (although in different directories).
> 
> I do not have a strong preference on the naming here.

We have several examples of files with the same name in distinct directories.
As an aside - is it really only 16550-s that you emulate? Otherwise the name
may want to be e.g. ns16x50.c or ns8250.c.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 07:47:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 07:47:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1076990.1438085 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulNFe-0000Ro-Te; Mon, 11 Aug 2025 07:47:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1076990.1438085; Mon, 11 Aug 2025 07:47:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulNFe-0000Rh-QT; Mon, 11 Aug 2025 07:47:26 +0000
Received: by outflank-mailman (input) for mailman id 1076990;
 Mon, 11 Aug 2025 07:47:25 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8H9H=2X=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1ulNFd-0000Rb-N7
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 07:47:25 +0000
Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com
 [2a00:1450:4864:20::42d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6b74bc14-7687-11f0-a325-13f23c93f187;
 Mon, 11 Aug 2025 09:47:24 +0200 (CEST)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-3b785a69454so2219776f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 00:47:24 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3b79c3ac115sm39636210f8f.12.2025.08.11.00.47.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Aug 2025 00:47: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>
X-Inumbo-ID: 6b74bc14-7687-11f0-a325-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754898444; x=1755503244; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=ezl5tCBooH8WN9HvZvjHdhsjX5bPZiSZee/ywlRokhM=;
        b=MSdGU4ioW7bQWucHMLBar1pawq98XguFKRV8lfVUP8E5otPksNI2uGkUtFFHkpucFJ
         3XLFBc6WTepxiq7mcvB1Rtndhy4OODkY+1b3JInC2SF2aHoDdEKNwiBc1xe1wErmP8WW
         +lQyx8PJcsDBmUWDkIAG3pRP7TumB44mPMj94=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754898444; x=1755503244;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=ezl5tCBooH8WN9HvZvjHdhsjX5bPZiSZee/ywlRokhM=;
        b=jFM/p8hC1WpB9Q/bLFIXARI2uqWiDPYJFLXzwnIRc6L/otEhK3e/CptMGFjpCxKlFM
         yZcuTadaNMUqnWjAJSDMMzAVhXXbmXVBMHg83vFLZUGqQE76e3/uD5h1CD6F3m/gpdb6
         /5CRK/vjqHMmVweBO1YpecYBT1ZE3Ogr75acCGyzS6+97cS3vTHLJ2Y4aComkEltWsQk
         yQ0pU5i12RpG3XBVV43Z3It+z65Oezxjf2eZx59Gr9Euc8RDpTsKHquqCiKs2XaKyO74
         Yk9SVQ/IPucDAeR2iMC8CNWUWSXlgNeoZrHNJxE5BbhcCdapnXcsVz0BoQdRqwldDTKT
         OqzA==
X-Gm-Message-State: AOJu0YwImui4rfbV0698kphQzwYkPG37OPeQJCjUDym7RxLahRZH5SiM
	V4vfzQZ8l15mk0Kcx1Hd87eMSMDgnhEOKqQnYhWAhNdlz/fouCgxyW/p/Rh4S8xlUsA=
X-Gm-Gg: ASbGncsnFsONvYZ7nOk93u1hYpXAvz37B3NqtBkgGjslLd8foN0Yl7vwjOkOhddcfE3
	U6kiv9KqfwrhfK8Xx2d7procinlApSRbHedE1obRRfb4236IOUTWAVBv6b5DPWaOv8AZ6IKV0Kj
	/1IfPQhf3RfUWN6+Q7eCakNswslDhcEf5iJhHfkdonvX5XUBGQmdXk0PJYTrc2EC+w2q3bkKJpr
	vZkHSZRtEE94ubPI/rjbrUxWok9Blmgul/SQl9F882mIunO8bzsQy3EocNABzXw/juFci6MrVjN
	eSASKNa7ic49yxTduvJkX5KUM219EUcHdGe3N+kyk2gJoSpnaWh4v8tNzzdAn/k6qVoN4RvZ4mE
	7BuoS2cbkCsbwLTmPmIQL2BZQxpBq8+Ov+sVxLuwNw44vbIrQKq1DSNqPjyjDc576Aw==
X-Google-Smtp-Source: AGHT+IGNpEhkW2UGeIE1UZYhj9rlhoyt/UrpoBJbp2gTZV/6Vk1yZaZBkT534aOUDF8Ru9bWWnPhtA==
X-Received: by 2002:a05:6000:2282:b0:3b7:8b20:6fdc with SMTP id ffacd0b85a97d-3b900b31494mr10938322f8f.24.1754898443888;
        Mon, 11 Aug 2025 00:47:23 -0700 (PDT)
Date: Mon, 11 Aug 2025 09:47:22 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: nicola.vetrini@gmail.com
Cc: xen-devel@lists.xenproject.org,
	Nicola Vetrini <nicola.vetrini@bugseng.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>
Subject: Re: [XEN PATCH] xen: Drop logic for old clang versions.
Message-ID: <aJmgCv4wgl-IHupn@macbook.local>
References: <e8bb42876317c19aca79f81c3fc48dc3a4fdaf71.1754830862.git.nicola.vetrini@bugseng.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <e8bb42876317c19aca79f81c3fc48dc3a4fdaf71.1754830862.git.nicola.vetrini@bugseng.com>

On Sun, Aug 10, 2025 at 03:03:53PM +0200, nicola.vetrini@gmail.com wrote:
> From: Nicola Vetrini <nicola.vetrini@bugseng.com>
> 
> The enforced toolchain baseline for clang is version 11,
> therefore this logic is effectively dead code.
> 
> No functional change.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@gmail.com>

Acked-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

> ---
> Mentioned in https://gitlab.com/xen-project/xen/-/issues/201
> ---
>  xen/common/coverage/llvm.c   | 4 ----
>  xen/include/xen/self-tests.h | 9 +--------
>  2 files changed, 1 insertion(+), 12 deletions(-)
> 
> diff --git a/xen/common/coverage/llvm.c b/xen/common/coverage/llvm.c
> index 50d7a3c5d301..517b2aa8c202 100644
> --- a/xen/common/coverage/llvm.c
> +++ b/xen/common/coverage/llvm.c
> @@ -44,12 +44,8 @@
>      ((uint64_t)'f' << 16) | ((uint64_t)'R' << 8)  | ((uint64_t)129)
>  #endif
>  
> -#if __clang_major__ >= 4 || (__clang_major__ == 3 && __clang_minor__ >= 9)
>  #define LLVM_PROFILE_VERSION    4
>  #define LLVM_PROFILE_NUM_KINDS  2
> -#else
> -#error "clang version not supported with coverage"
> -#endif

Rant: most of the LLVM coverage stuff is already kind of dead code, as
the format of the data changes between versions and there's no way for
LLVM to generate the blob itself using a builtin function or
similar.  We haven't kept up with new formats, and now it's not
possible to parse the output coverage data when using newish LLVM
versions.

Linux converts it's LLVM coverage data to gcov format (which AFAIK is
way more stable), and exports it in gcov format.  We should consider
importing that from Linux.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 07:53:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 07:53:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1076999.1438094 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulNLD-00029A-GW; Mon, 11 Aug 2025 07:53:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1076999.1438094; Mon, 11 Aug 2025 07: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 1ulNLD-000293-DS; Mon, 11 Aug 2025 07:53:11 +0000
Received: by outflank-mailman (input) for mailman id 1076999;
 Mon, 11 Aug 2025 07:53:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ku41=2X=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ulNLC-00028x-A9
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 07:53:10 +0000
Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com
 [2a00:1450:4864:20::52f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 38ca145e-7688-11f0-a325-13f23c93f187;
 Mon, 11 Aug 2025 09:53:09 +0200 (CEST)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-61564c06e0dso6491679a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 00:53: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
 4fb4d7f45d1cf-615a8eff596sm17983224a12.5.2025.08.11.00.53.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 00:53:08 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 38ca145e-7688-11f0-a325-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754898788; x=1755503588; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=UYq3tbyq5L2/+OjRE1tWnYqj1uRI8eS2QwLZ90xBb4Y=;
        b=B1MIUB2ZjqSta3BcO+kgtFlZfsuLn6jPYvNuX5EPnqUwOylNK04iO7p1Cc0cwiZHjc
         hCKgHp2rJ8GhUfgMCo2f9Fi2A4Pfubknv6kj16WKWRUTZBN0JxJSwDnVBzfArNHC49ia
         UGxrk+uZ4nhAMMo2KPAqZQzUChtkcH/SYIJmPqF+TDEdbyAjaNLGpq/XiC7yEOuJkrZP
         9sf0LA9n4vj/Y6sZ6IQ6j2GSNxXNhl0dN1xLX0Q2IXXZd0M2Qj8anA8pNT+Bsf+EmT65
         PnNjIGECNfx75c5Bw3LzOE/3No8blB17zKyZuV+B+NpactZEKd/aiEi3zW/EqtZz3gzA
         EYSg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754898788; x=1755503588;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=UYq3tbyq5L2/+OjRE1tWnYqj1uRI8eS2QwLZ90xBb4Y=;
        b=DyJesP2dp8uWW42tkjsLgR1y2Sq6IBQIBvU1ybhXvNgp53xvkrPTATu9+LLB84JRgW
         LHdClX6TRd68sIQZ78XjpKrRWc1QsIg5EimtVV34f0ydKc/Nl4RuqZhqG2vunzAeGm3n
         grdyRkFj2IeganHU1ET3JEvrLJtxTe1JYl4wvTsZcFbvBT4OTFo4D3GTJM+Ptg0zI9HE
         GoZ7xnwx+kbXCS4YNRt+KjjU6JjeYry275nlEN7wl+/ExaSLxbrDTxgwUg/IUI0A0THa
         kmqCK59n4iU9fekHkjCxa+Oi2J90zDYXNebCXMo4udty/hhjco/Hj6FFafwEDQgp3HQQ
         4jFQ==
X-Forwarded-Encrypted: i=1; AJvYcCWq6nJEVUGcCxIzUYPsIfuZBMyLaOmkmGJi8YaN6BhWdui9ZrjsTsO3OPFGnEOyoHOrFIETSwOkUDI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxLaujmdfO48CrzPNGPsO3mucjZ40j4lAiZIh6m5Y3MiiuqelC6
	kWtCahJ+MjF14bWVZpTBMTLjtfRU1/8VFW88X7zx26HSc8eeM8zeiE2d9pjRbfYJ8A==
X-Gm-Gg: ASbGncsqQRb8v01YEguyKuDNrU0455yHvA0ToN7Gx9tu7bs6jdx85tYq1iulDysp6Xc
	pHXvtZLIw2pP+7ty4WXEsLyDMzoH02ir0qZkQ1hbZRn4CGBrZgytkx4nWe/IYwxbAX0TyHkNz7s
	w//gs1Jj8GclBpkRxP/kd70aTUxPQK7jWp/bRX+yDc1GIABmlkq5atd4YUcR7WXmwFzDMF8EZTQ
	RJY0n6gH3qfkCMvJCG+nemvqlFUOnSjgqF0RxhMAadJvcJSb22isEWDy7LdPnV0RpF9yN45b6Qs
	f1UJWoeoxPRPMOsVlnK1lsvc2V/QXSqnh7lu9IDZzFBJ3AF0Im9K+m1PDTXUys7hbtvUwGYwnjy
	BDnmo068QAy3rVrarKoGqkejgy4f46OcDHPcVBtdKzUv08uVrdeHnWQ7TegBv4ZvzWwgBeMP/07
	l6qn9icmc=
X-Google-Smtp-Source: AGHT+IG/YPwzYCI21EGwXGQjZiz4zdr4CKgfBPJxkcs3CAadTxyLNpCqKqTN9WkViDH7gGQ/QaKDcw==
X-Received: by 2002:a05:6402:5108:b0:615:8b0b:7c6b with SMTP id 4fb4d7f45d1cf-617e2becb29mr9918460a12.13.1754898788461;
        Mon, 11 Aug 2025 00:53:08 -0700 (PDT)
Message-ID: <977c6c31-af2a-4108-8b28-172dc3916731@suse.com>
Date: Mon, 11 Aug 2025 09:53:10 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: irq: add missing spin_unlock() in
 init_local_irq_data() error path
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: Mykola Kvach <mykola_kvach@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 xen-devel@lists.xenproject.org
References: <bd707bd0fd88fc53974a1214313a9b9103162bcc.1754749899.git.mykola_kvach@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <bd707bd0fd88fc53974a1214313a9b9103162bcc.1754749899.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.08.2025 16:32, Mykola Kvach wrote:
> From: Mykola Kvach <mykola_kvach@epam.com>
> 
> If init_one_irq_desc() fails, init_local_irq_data() returns without
> releasing local_irqs_type_lock, leading to a possible deadlock.
> 
> Release the lock before returning to ensure proper cleanup.
> 
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>

Pretty likely wants backporting, which would best be indicated by a suitable
Fixes: tag.

Jan

> --- a/xen/arch/arm/irq.c
> +++ b/xen/arch/arm/irq.c
> @@ -94,7 +94,10 @@ static int init_local_irq_data(unsigned int cpu)
>          int rc = init_one_irq_desc(desc);
>  
>          if ( rc )
> +        {
> +            spin_unlock(&local_irqs_type_lock);
>              return rc;
> +        }
>  
>          desc->irq = irq;
>          desc->action  = NULL;



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 07:58:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 07:58:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077013.1438105 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulNQK-0002o9-6c; Mon, 11 Aug 2025 07:58:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077013.1438105; Mon, 11 Aug 2025 07:58:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulNQK-0002o2-3G; Mon, 11 Aug 2025 07:58:28 +0000
Received: by outflank-mailman (input) for mailman id 1077013;
 Mon, 11 Aug 2025 07:58:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ku41=2X=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ulNQJ-0002nw-Gp
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 07:58:27 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f54e7277-7688-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 09:58:25 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-af949891d3aso542394866b.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 00:58:25 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a0a3b58sm1975485166b.58.2025.08.11.00.58.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 00:58:21 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f54e7277-7688-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754899105; x=1755503905; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=3P3YpIOxHiMEOchp4wE39XwwSZg4kriCoNnh1w2XAN4=;
        b=bWpzsu/LjnmiApQSK+PdHMyBGN3zlQuN27XHMXbeCjHZAr3WgEHKev01D9MumYsA5G
         AfrXn/cZror7VjQuriMGe0UNwOHIf/vaOR6GdQz+shrzT+z8sNAOqUABqlVIhUml6qqO
         YnZcoNEXuM05dFj35Yzyg/sKdMNbukmq0oX574CcvNu+KaTh51jtbaLD9evMthjJzP5Y
         dxKbW8iUInfeddgTE6KdBHubO2jPZl+7QGmFW9fapmvKt4J68VuBQdXzzCIjOfdhjq5o
         z9YwRKYF1b4NCUJaRO20RxWHmRxyR4HaE93NMO9D8IfCchZfH74wE8t3ewUB338KE7H9
         6PGw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754899105; x=1755503905;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3P3YpIOxHiMEOchp4wE39XwwSZg4kriCoNnh1w2XAN4=;
        b=FKlWz3rjlp85SNKz57vNFTnkgIrHEBXLn94zyunBSCUZMAGrJjL4uS8ECKQGfHspEg
         Z5BxrzyVrj0BFedQ+5IbaHNxLArRw8eY+LnNmpt4OjytqoaClXhQJUCtYgCDzbboVKET
         U6RvnWpfRoOBqgmMi9fF5okplPv+QhxsYb/uoveS2C2bDD3cVpXs8PmROtZZQga1McdJ
         hFTybCkLTSJx9ryF6CVumfvrKyjVCg0gAveyXJ7RvNXYLM8NsrooMl7Z2UjR3Mvb91JI
         r/OwWYIS4Q5TgKBmJDDkUi9cnISMbMoXeH+/eCLHsdL6B00Qtis3z/5w1uQBHqaLuyMS
         0gwg==
X-Forwarded-Encrypted: i=1; AJvYcCUBr9w+Nggj5l4bQG6zioBcgWc3qQZNAv/uQb/on5ackYbo/uoT5iN740g66VLv7vj056OaoxOcB8o=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwZwjkylnbcovzquPIaA4YbRjGIOVKvkwDhf22jleQ4Wga/yC7+
	Z9OHYe3BgCL3YYbWfqn7BarBLcj5EdNcbOfmPdGJGzzra44GJWAAKtk9zrBOOQElDQ==
X-Gm-Gg: ASbGncvjmG5AWcrY4DeaPTsyWLrdKws3xEWEHy0ugBbvUdGCvB0JG/BD2YJ5Ue6IyrP
	XTI1oH3U/pd4zpsUiINdw9wqXzneBvgWP3dJmpiKywDzMUCaGEAps5ewOOWZgni65vtZvY/xp9j
	YklIPFfIgKpJLxZjhOHkpnGBvvvfQHZjyOp/IUu4Cuvpc4xtYj9s0ZqkEwAdLs1UzI10a1C2HYj
	VKGX22ZWX8X+cU2QiPRN+Hpizo0y8QSnXDZ1ZpJJjoJNorUb1I+Keq8zdVzI4KY6d/La5SjEJiI
	qtSf8bF6UjX0DOZcRyM30vfK8qNVePwryQGXxuIFx4Igb8laVvU5LB7pBkQfaj0cSJ3l67bzUes
	Ko2gNA7ZWMPpflZ8opTCBssHoAoQdJNjUuiUvriWs1pnFSn3o8y4DVw3WjhQm//xO0hKDWSSDSa
	OND6OyzBU74JX2E5N6Yw==
X-Google-Smtp-Source: AGHT+IHGvbZ3Eyopubw8r479czsRcLSul94sXht6XkYe1XybcL7iR78wsfXpO6zL7tv9R1LOMa8oxg==
X-Received: by 2002:a17:906:d542:b0:ae3:6657:9e73 with SMTP id a640c23a62f3a-af9c637547cmr1178310866b.20.1754899102203;
        Mon, 11 Aug 2025 00:58:22 -0700 (PDT)
Message-ID: <0089146c-fe86-42b5-afa7-72dffb08c3b7@suse.com>
Date: Mon, 11 Aug 2025 09:58:24 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v15 3/4] tools/tests: introduce unit tests for domain ID
 allocator
To: dmkhn@proton.me
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, Julien Grall <jgrall@amazon.com>,
 xen-devel@lists.xenproject.org
References: <20250809170747.1836880-1-dmukhin@ford.com>
 <20250809170747.1836880-4-dmukhin@ford.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: <20250809170747.1836880-4-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.08.2025 19:08, dmkhn@proton.me wrote:
> diff --git a/tools/tests/domid/include/xen/domain.h b/tools/tests/domid/include/xen/domain.h
> new file mode 120000
> index 000000000000..2eda9aed088e
> --- /dev/null
> +++ b/tools/tests/domid/include/xen/domain.h
> @@ -0,0 +1 @@
> +../../harness.h
> \ No newline at end of file

In the tests we generally generate symlinks as necessary, rather than having them be
present in git. Furthermore it's not quite clear why a file of this name is needed
in a test harness anyway. Elsewhere we adjust hypervisor sources to make respective
#include-s conditional.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 08:07:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 08:07:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077028.1438115 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulNYr-0005CQ-4o; Mon, 11 Aug 2025 08:07:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077028.1438115; Mon, 11 Aug 2025 08:07: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 1ulNYr-0005CJ-1E; Mon, 11 Aug 2025 08:07:17 +0000
Received: by outflank-mailman (input) for mailman id 1077028;
 Mon, 11 Aug 2025 08:07:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=92re=2X=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ulNYq-0005By-BV
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 08:07:16 +0000
Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com
 [2a00:1450:4864:20::42d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 319612f7-768a-11f0-a325-13f23c93f187;
 Mon, 11 Aug 2025 10:07:15 +0200 (CEST)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-3b78d337dd9so2451301f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 01:07:15 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-458bd5a1148sm211018735e9.0.2025.08.11.01.07.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 01:07: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>
X-Inumbo-ID: 319612f7-768a-11f0-a325-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754899635; x=1755504435; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=KyGxyNxuALVI3DPa+y6OngNu8v1cFKDSX5qh3gQ1d0A=;
        b=ZrcnAyOM9LP+nxVUoufBBHmqj++NwgfHIpWPxEoGWKkoStzZasSqsatE87Tujjr3jT
         AIVu5ci9P3a2t6pRUFjM5G2Cll/a45MOUlGSJnIy4Q8/OQJ60I+AXM9jwGLc/xTisr/w
         mkITgkJSpOz+uel0nvVzGvcoHApJbJM6Zw8EM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754899635; x=1755504435;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=KyGxyNxuALVI3DPa+y6OngNu8v1cFKDSX5qh3gQ1d0A=;
        b=pHv0z4ISy18FfWBgfyKOQYN0k82FhbWU+dJE2VgGSMhK8zQO96ABgfhvcysKWgwmFz
         CrH8oR9/5XaaFattvrq+XFB2WyGM0EvtD7FvieQrprBNoEZYLwwSGUupQp9OYe5cAZj7
         xANZERaGZSjzPvblXvCthxEoMRGjzNtcYfOwymO41HD1WIwVd+pxX7E7UVqXuG3dbbvB
         +kfpu6nO2ZEK4YKO0q5Zhe852cliuq02pRsoGviBK8r4fC1aw41bUwj/PmWU/nhyQVMu
         Rx90jOLQhWi7cg/Ps8l09QAgc3EWJodbJsVF66aLIvXYNv8+EMvAAke9EIiuhMTJQCpG
         NGQg==
X-Forwarded-Encrypted: i=1; AJvYcCUe1u6xKUun7c0CVRZu9NCD5wPoH3zdfS+niKt6i9J4P1DKzDuUGL1HGF+5OHrSBPRR0lQnTNoI9VY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyR4vDOBNm8CaEoN8cpjsx9pax7+qMbsjmPNroVsczJe8AGgKUv
	qa9heldjZW05q/vQ9nvwQ5N5HQ4mN7l0nP3vGaNjPNWeSARWXstFkAgorwBY7R+s9wk=
X-Gm-Gg: ASbGncu3oHnJBP3NWw6c1ojc55dz/Tu0Eu2uBp0TlNsso5fPCO8p9KUjiuzMy8qapXV
	+eX9srrB7It3jku2X+bSQA9HEnPHz4WKK8J2iFId3Q5J0Tec4mkINqBYdIooJbfrlec0v0828Ui
	Xfh1osX/lynJi4p7Vp6Sk69n9n38xqbe+2n4GZ44NrW4yqsyUZKt9+rGhkZ4TunTtDtdXibjMxH
	VSE+JwKA69ec1l6FFSI45xyXwRIwW2kHv+BnGRmzeF+SwxwXsTrZV4S3F51M0+QMVBQ+5EkyhSc
	hEZ842Fub69WShaYgvh6qaojC+pdSxaKNFWGlPTZGULohG7dUJ/ro527GmETnd8JMr6pjjND0az
	tZNCh1qDvBzyL4sN2yUL9zHV5Rv1aQ8zErMP1rUQWYg+ntD6CyLPs3lmaZxxFuNgXBy25
X-Google-Smtp-Source: AGHT+IFH+ZjHQHMjtWu9N06NWC7TyPc82GMPGor/CjsDKzM/y6qGOAT+vL8+FxxrzZqFTR0AblOzIQ==
X-Received: by 2002:a5d:5886:0:b0:3b7:94c6:865e with SMTP id ffacd0b85a97d-3b900b50436mr9393421f8f.30.1754899635286;
        Mon, 11 Aug 2025 01:07:15 -0700 (PDT)
Message-ID: <96b878a1-2a4e-4df3-900c-a2b2142f0638@citrix.com>
Date: Mon, 11 Aug 2025 09:07:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH] xen: Drop logic for old clang versions.
To: nicola.vetrini@gmail.com, xen-devel@lists.xenproject.org
Cc: Nicola Vetrini <nicola.vetrini@bugseng.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: <e8bb42876317c19aca79f81c3fc48dc3a4fdaf71.1754830862.git.nicola.vetrini@bugseng.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <e8bb42876317c19aca79f81c3fc48dc3a4fdaf71.1754830862.git.nicola.vetrini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 10/08/2025 2:03 pm, nicola.vetrini@gmail.com wrote:
> From: Nicola Vetrini <nicola.vetrini@bugseng.com>
>
> The enforced toolchain baseline for clang is version 11,
> therefore this logic is effectively dead code.
>
> No functional change.
>
> Signed-off-by: Nicola Vetrini <nicola.vetrini@gmail.com>

Thanks for the patch, but your From and SoB lines don't match.Â  Which is
it supposed to be?

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 08:07:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 08:07:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077034.1438126 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulNZT-0005g7-DS; Mon, 11 Aug 2025 08:07:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077034.1438126; Mon, 11 Aug 2025 08:07: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 1ulNZT-0005fy-8z; Mon, 11 Aug 2025 08:07:55 +0000
Received: by outflank-mailman (input) for mailman id 1077034;
 Mon, 11 Aug 2025 08:07:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8H9H=2X=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1ulNZS-0005fq-GX
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 08:07:54 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4770ea04-768a-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 10:07:52 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-459ebb6bbdfso25498955e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 01:07:52 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-459e587d378sm241320605e9.23.2025.08.11.01.07.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Aug 2025 01:07: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>
X-Inumbo-ID: 4770ea04-768a-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754899672; x=1755504472; 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=mZ+pZ7l4e9RR7L7THQFCqTDL7wK39W7F6Kd0ZbKuM2E=;
        b=l0E0NGVa5d/2odDKVX9RQhGQ86QPFlbXF7ps5MlaAN3Dsm9Nq3f2wydiXsJMQt/eqw
         aDeuyyY7nbYs+a81/JE9narJ7RfyJEEvka8O5Ln7tZEdWcdu7U8AsIFevBU8l+/5FiYe
         UmOnp24Ltn19K4wKAADw+As+4DMR9Uxj4xzfg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754899672; x=1755504472;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mZ+pZ7l4e9RR7L7THQFCqTDL7wK39W7F6Kd0ZbKuM2E=;
        b=DJi0OlgVv86WulNUvHUeyA0vWwyoqiRM8PLWfm9u1O4T1lHg7JYDV10LpeVd9zUofM
         rRhrCajlpNBbEagarr7NxqA7xNg3Myr86AhsTDBTnGu5j4sWwBHsPy5GyNInY7uQtzhW
         /nP9Fx0wFclxAA5Mia10XoDvhclohG0opL4+WqX/A4qAKZi28l6iqG4bG7Lfrm1DoAJq
         weHKqWW9IndPpSwnf0sgSMKaZmm2okjDVI88epp+9qlBvyXmO7JwxDccvs8XM8Fqtj0C
         iMRfWz2CnxYaTAydsQH3mu0Ik0UgNRJev8bcNPM7Ulwv9KsQUKVAa74tQ0kPi7HTY4eT
         f2QQ==
X-Gm-Message-State: AOJu0YwGgAxKgkeGzEnozJqLmXvdwHLpCpxs0cEyas/F5ig1jvzDPgzY
	aXkQTARCqcH9WxN/lCFx5mE8GBrWpk0msHVIdHkBi1+uUhZP75r0XYJrejNGuW9WNn8=
X-Gm-Gg: ASbGncv26DWKdrvsaVuIkUMHKOL1ovMVzr5ppXiE9bKfQNFz99o2E+FH6qul9nQK7ny
	lT8bE7/MlCi3Xjj42U0ZZ58GAaDk4X4nIFg25soCXxAMcIpnlK6m5Qv0lY2DXsozv3I+BEWKDL4
	VJIR+hOynIKBJTzGt/+kBNl3Cp3SNNIdgZsUEiOpztPCH43PIKqiemRmbv9pWKXcUZnyaBi7I29
	/1pC2cL/6ls4YtPOK8VcDTSoc6APrT2qfpUUgbR6pBPP/VrJ3QBc+z5Km75wC4mlIP7BchsikZW
	NUYyVMBmLWV1UnQ4wsd2TXc9IEMJALE/MRGdBgTD+tuykkYmx+WxtPRekTuGFjuVyDSROXQOFLr
	lNTW0Vc5EOWxYQHFa4wXzsIusClao2KQNnUWs0TCRimFIXs/O2U2rhlOIn5oFLOHFHw==
X-Google-Smtp-Source: AGHT+IEfaHIK3LvfODUDhcotHG9abNrL3G3gl+wt7OOfF9zs5PotjL9oSKunBIBe2aB44hOJNEo2ZA==
X-Received: by 2002:a5d:5f8d:0:b0:3b8:d893:5230 with SMTP id ffacd0b85a97d-3b900b510dcmr9614621f8f.47.1754899671842;
        Mon, 11 Aug 2025 01:07:51 -0700 (PDT)
Date: Mon, 11 Aug 2025 10:07:50 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Julien Grall <julien@xen.org>
Cc: xen-devel@lists.xenproject.org,
	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>
Subject: Re: [PATCH v4 2/8] pdx: provide a unified set of unit functions
Message-ID: <aJmk1o7sUT2UZJ8M@macbook.local>
References: <20250805095257.74975-1-roger.pau@citrix.com>
 <20250805095257.74975-3-roger.pau@citrix.com>
 <5b940bdf-9bc0-49b2-af92-7251b2780c71@xen.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <5b940bdf-9bc0-49b2-af92-7251b2780c71@xen.org>

On Fri, Aug 08, 2025 at 06:21:29PM +0100, Julien Grall wrote:
> Hi Roger,
> 
> On 05/08/2025 10:52, Roger Pau Monne wrote:
> > diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
> > index a77b31071ed8..ba35bf1fe3bb 100644
> > --- a/xen/arch/arm/setup.c
> > +++ b/xen/arch/arm/setup.c
> > @@ -256,9 +256,11 @@ void __init init_pdx(void)
> >   {
> >       const struct membanks *mem = bootinfo_get_mem();
> >       paddr_t bank_start, bank_size, bank_end, ram_end = 0;
> > -    int bank;
> > +    unsigned int bank;
> >   #ifndef CONFIG_PDX_NONE
> > +    for ( bank = 0 ; bank < mem->nr_banks; bank++ )
> > +        pfn_pdx_add_region(mem->bank[bank].start, mem->bank[bank].size);
> >       /*
> >        * Arm does not have any restrictions on the bits to compress. Pass 0 to
> >        * let the common code further restrict the mask.
> > @@ -266,26 +268,24 @@ void __init init_pdx(void)
> >        * If the logic changes in pfn_pdx_hole_setup we might have to
> >        * update this function too.
> >        */
> > -    uint64_t mask = pdx_init_mask(0x0);
> > -
> > -    for ( bank = 0 ; bank < mem->nr_banks; bank++ )
> > -    {
> > -        bank_start = mem->bank[bank].start;
> > -        bank_size = mem->bank[bank].size;
> > -
> > -        mask |= bank_start | pdx_region_mask(bank_start, bank_size);
> > -    }
> > +    pfn_pdx_compression_setup(0);
> >       for ( bank = 0 ; bank < mem->nr_banks; bank++ )
> >       {
> > -        bank_start = mem->bank[bank].start;
> > -        bank_size = mem->bank[bank].size;
> > -
> > -        if (~mask & pdx_region_mask(bank_start, bank_size))
> > -            mask = 0;
> > +        if ( !pdx_is_region_compressible(
> > +                  mem->bank[bank].start,
> > +                  PFN_UP(mem->bank[bank].start + mem->bank[bank].size) -
> > +                  PFN_DOWN(mem->bank[bank].start)) )
> 
> This code is a bit too verbose. Can we at least introduce "bank =
> &mem->bank[bank]" to reduce a bit the verbosity?

I cannot introduce a `bank` local variable as it's already used as the
index cursor for the loop.  Would you be fine with:

    for ( bank = 0 ; bank < mem->nr_banks; bank++ )
    {
        const struct membank *m = &mem->bank[bank];

        if ( !pdx_is_region_compressible(m->start,
                                         PFN_UP(m->start + m->size) -
                                         PFN_DOWN(m->start)) )
        {
            pfn_pdx_compression_reset();
            printk(XENLOG_WARNING
                   "PFN compression disabled, RAM region [%#" PRIpaddr ", %#"
                   PRIpaddr "] not covered\n",
                   m->start, m->start + m->size - 1);
            break;
        }
    }

> The rest of the logic looks fine. So:
> 
> Acked-by: Julien Grall <jgrall@amazon.com> # ARM

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 08:16:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 08:16:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077047.1438136 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulNhy-0007Xf-6a; Mon, 11 Aug 2025 08:16:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077047.1438136; Mon, 11 Aug 2025 08:16: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 1ulNhy-0007XY-2X; Mon, 11 Aug 2025 08:16:42 +0000
Received: by outflank-mailman (input) for mailman id 1077047;
 Mon, 11 Aug 2025 08:16:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ku41=2X=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ulNhx-0007XS-2V
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 08:16:41 +0000
Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com
 [2a00:1450:4864:20::630])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8132802c-768b-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 10:16:39 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-af66d49daffso679174766b.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 01:16:39 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a1e8332sm1982160366b.75.2025.08.11.01.16.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 01:16: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>
X-Inumbo-ID: 8132802c-768b-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754900198; x=1755504998; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=POEA0QPnqm96S4bVm2RNz/pXhYhvjppDTaMDLoij+T8=;
        b=cffa8gMEHtFTAmZIcJbgLvdcNYv5CVFDsxgSEaXo8kmW9rBO+0cTS3cLB9wyQvB594
         QVHkuhMeAMtoWe2gQAiFJ6hvG4YjRV7a2j/pHlTflvLos2AiuHbj1RZ4Ey1XUufNXNMB
         D5XBP305w2fkXYkKN6LdVuOewd3T267ZB9harOOwTfVhagDn+R3Z4RcMLE4w8Bw1H0Up
         yGBmP9JwiIrioV6uZ8+i0wYA45wglY5DmhGDO1vGrOULi0QYsXWSJ0fz9lJpBiMhqdXf
         MMgl1FK36f1HhDgSpZgb6crtVMMoWV/sRsTffUeVY9bXhEdY81TehgCXQgcWbLq5GC+T
         l6Fw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754900198; x=1755504998;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=POEA0QPnqm96S4bVm2RNz/pXhYhvjppDTaMDLoij+T8=;
        b=B4D0bQm+heD27zTHt+hmaSU+cMCl0IBA6v5pDJ2zHT8/Ymay+HGbcMfn3EgBsgb6Qj
         KZPOS16vpLyeTeWgKChj6TMvIbeL2AcimUVKPWDDVyO2IZMC3W3xLE2javeRKBkQPTSi
         3xRoFtoUIqCT+6fjhk2s1xKhTQgUAg2MqmnsSbhpb5Uu3HymOOcK/qCyJjV4HLfrnFjF
         2lHbHMb6FMGH8mcXXVbd7doI/zYDWvITfyyyY7JtapD0Ls3oGTH07Y9q87cB0qmYzFX3
         Y7qCH68VXreybimrGVt5Ti7wMdodh4Rda0ro64tn3+K8NDhbpIpqe3KsC7Qt8hLiSgLz
         UN0g==
X-Forwarded-Encrypted: i=1; AJvYcCV4XJFASGxLGz1MQRdZt4oz2iruH4ArVlKk6iVncfKacUwOiUCiBW/W+Xaj202bOjTsG0XcQqb4rzE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyHo3+tMe5knEbhB1crJQNgfkX913BqofEEsUeyRIeACjxMGkf1
	Pi66d6gVjh3Ql2uPJaz2+MIj0T8CuHCBry5mgq8LErlR5Wr7HRVEDepZbFMIw8HGgg==
X-Gm-Gg: ASbGncve8V4hCgB0jZfoTspQVJ2xmcd7yQ6lBiySwnSG0SjVZXAgZWm3kNsC3DcJX4K
	43ScAIvskKc2zlJrlDxX+L0hLju3oWceKoNg9gGtxUzQhkv9WtHVaiDgY5ABG8MhurBTEHQnveW
	L3eBNQw8WaL8q41CpSvOjf6o3d/l98gsapLngFGwA+KJH1+d/qyg2PyF3rsJYYUM5fanWQoNxwZ
	gzorbd2DVmLbG/ZODLyHYjfScDgVeAyI9cxqCfDxZuYmnP78x0uIwSQxdQF9Hgpmig4QCSNYxYU
	EGoIY6KUt1K9lBarq4BU50q34OaXCEzAamPAJIrut9E/MFu+TGQrf1CvXvmITxH5Fho/m7NlsRC
	doAnr9UV8/ohyRNdqu3LJXqgyZ7ubknwSFp3mCuTy1ehXgrZnPsznyBfSLOC+Ka3pAI1LlMFw9m
	KREg0uoNo=
X-Google-Smtp-Source: AGHT+IH9XB1F5/tWxvzPRdeH1fRSk3N3ISBm//mTuYCl8k35C6SNDNpjgwkyHlGm4FsifqWx0Xeozg==
X-Received: by 2002:a17:907:8690:b0:ae3:ed38:8f63 with SMTP id a640c23a62f3a-af9c63fc36bmr1152670466b.14.1754900198211;
        Mon, 11 Aug 2025 01:16:38 -0700 (PDT)
Message-ID: <e81bc459-347c-4eb9-8f8e-ada25fe8966f@suse.com>
Date: Mon, 11 Aug 2025 10:16:40 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] RFC x86/msr: Use WRMSRNS $imm when available
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808222013.1071291-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: <20250808222013.1071291-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09.08.2025 00:20, Andrew Cooper wrote:
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
> 
> This is on top of the FRED series for the wrmsrns() cleanup, but otherwise
> unrelated.
> 
> The code generation isn't entirely ideal
> 
>   Function                                     old     new   delta
>   init_fred                                    255     274     +19
>   vmx_set_reg                                  248     256      +8
>   enter_state_helper.cold                     1014    1018      +4
>   __start_xen                                 8893    8897      +4
> 
> but made worse by the the prior codegen for wrmsrns(MSR_STAR, ...) being mad:
> 
>   mov    $0xc0000081,%ecx
>   mov    $0xe023e008,%edx
>   movabs $0xe023e00800000000,%rax
>   cs wrmsr
> 
> The two sources of code expansion come from the compiler not being able to
> construct %eax and %edx separately, and not being able propagate constants.
> 
> Loading 0 is possibly common enough to warrant another specialisation where we
> can use "a" (0), "d" (0) and forgo the MOV+SHR.
> 
> I'm probably overthinking things.  The addition will be in the noise in
> practice, and Intel are sure the advantage of MSR_IMM will not be.

It's not entirely clear to me what the overall effects are now with your
02/22 reply on the FRED series. Nevertheless a nit or two here.

> --- a/xen/arch/x86/include/asm/msr.h
> +++ b/xen/arch/x86/include/asm/msr.h
> @@ -38,9 +38,46 @@ static inline void wrmsrl(unsigned int msr, uint64_t val)
>          wrmsr(msr, lo, hi);
>  }
>  
> +/*
> + * Non-serialising WRMSR with a compile-time constant index, when available.
> + * Falls back to plain WRMSRNS, or to a serialising WRMSR.
> + */
> +static always_inline void __wrmsrns_imm(uint32_t msr, uint64_t val)
> +{
> +    /*
> +     * For best performance, WRMSRNS %r64, $msr is recommended.  For
> +     * compatibility, we need to fall back to plain WRMSRNS, or to WRMSR.
> +     *
> +     * The combined ABI is awkward, because WRMSRNS $imm takes a single r64,
> +     * whereas WRMSR{,NS} takes a split edx:eax pair.
> +     *
> +     * Always use WRMSRNS %rax, $imm, because it has the most in common with
> +     * the legacy forms.  When MSR_IMM isn't available, emit setup logic for
> +     * %ecx and %edx too.
> +     */
> +    alternative_input_2(
> +        "mov $%c[msr], %%ecx\n\t"

Simply %[msr] here?

And then, might it make sense to pull out this and ...

> +        "mov %%rax, %%rdx\n\t"
> +        "shr $32, %%rdx\n\t"
> +        ".byte 0x2e; wrmsr",
> +
> +        /* WRMSRNS %rax, $msr */
> +        ".byte 0xc4,0xe7,0x7a,0xf6,0xc0; .long %c[msr]", X86_FEATURE_MSR_IMM,
> +
> +        "mov $%c[msr], %%ecx\n\t"

... this, to ...

> +        "mov %%rax, %%rdx\n\t"
> +        "shr $32, %%rdx\n\t"
> +        ".byte 0x0f,0x01,0xc6", X86_FEATURE_WRMSRNS,
> +
> +        [msr] "i" (msr), "a" (val) : "rcx", "rdx");

        [msr] "i" (msr), "a" (val), "c" (msr) : "rdx");

allowing the compiler to actually know what's put in %ecx? That'll make
original and 2nd replacement code 10 bytes, better balancing with the 9
bytes of the 1st replacement. And I'd guess that the potentially dead
MOV to %ecx would be hidden in the noise as well.

Then, seeing your use of a CS: prefix on WRMSR, why not also add one to
the 1st replacement, thus not requiring any NOP padding?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 08:17:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 08:17:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077059.1438145 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulNj9-00086b-II; Mon, 11 Aug 2025 08:17:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077059.1438145; Mon, 11 Aug 2025 08:17:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulNj9-00086U-Eq; Mon, 11 Aug 2025 08:17:55 +0000
Received: by outflank-mailman (input) for mailman id 1077059;
 Mon, 11 Aug 2025 08:17:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=92re=2X=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ulNj7-00086I-8c
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 08:17:53 +0000
Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com
 [2a00:1450:4864:20::431])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ac3f80ff-768b-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 10:17:51 +0200 (CEST)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-3b7825e2775so3611705f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 01:17:51 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3b8e009e465sm31174068f8f.43.2025.08.11.01.17.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 01:17: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>
X-Inumbo-ID: ac3f80ff-768b-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754900270; x=1755505070; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=g9PMvwxCExZeAokalVGUH3LPbAT7/E9R+VBk5rApJFs=;
        b=qLlGWLrDiplLfsPi266fFhFjoZoHxNx9Oj/V8oGMY84opSbfbDLsdL3a9prvWzNXMq
         Zpefla/FT8fgJzcAByFQ4UIwMIEgDmX8n//IBou1l05Z6qGtZhQTvVbYhT1p5wEze2Le
         BVpqylespRXWOcOXJfJ7KmntyaoEO9MPbzyeQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754900270; x=1755505070;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=g9PMvwxCExZeAokalVGUH3LPbAT7/E9R+VBk5rApJFs=;
        b=Qtn4tPpIenz548tXflmtWz6GrmwEjTbjusMfkLVE2/srIzAkdbdz1K8zm8g+xL0mew
         lJxkUCPmudxpZ8r9jvtIPxlDWGmw5CQ4XSPhmDDH4Pr3mqJBB1WUwVUSbsptS0PoQdAN
         uWhCpNpl+jlUpcP6gMxQ8NmGzronZ6SwmSPF5f3ssnKD73J0dThR3hW98TBDR6/3e1ae
         1woHSR4KZJbKccpJNj5X6ujN/s/MtqnCTcyQ75E8qpKRVeuTiOD7OeOPmNwFNCjwG1vb
         N1HADX++f5IXIgkKC4jq54XROzSn66H0LzmmWCdj7Zjnj5/Bt8enxh/ASO3XJoSF+/Xp
         NP5w==
X-Gm-Message-State: AOJu0YxuC9kzNwaN7O2wd3IN1kwnS0zu1WnDJbvUtuCzfZS8veOsHnyT
	5sq6oam5vuolXGyEUUqpLEmxIwzdnfenpJGMRwWevDGkEhJJaUDaS/6mSCmVAVmR4ZAXM8/BDUx
	ncNEdWRM=
X-Gm-Gg: ASbGncuvFnvACgEltGDv+fewV6ZwgiQLuiFkWkZCWC8uelQ5zhgi1Mn1VsTEsvncPKk
	Z6t6oqcurG45CbqPZPgJWWHOVbJ0XE81SRipiC5MfExjRSoAvkuzmtTIedPmouAZarFWjBFVWd7
	Uy4uwiQiGSBJG9g+uYmx3d8mueIN0MP6WAW3FpFRkXyn/oGnHK5ZD8n9ktXLV6rvTdGltMoB9Dk
	cZEXH7gSbd0gAonV8RSFlS26k5ngerswl9ArgmMllIe6yelSX3eI7AEJVrB8h3Td0bpd9Xb/Vx2
	nIP3g6TWEyUXK6uK319Ma6pc4nOvXJYFg1dLTrfzIDX8sQWltjDWbM6ddttSdMdPFFn/GtfMU7M
	XI0y0rVaEUEvwMCHGdyVFIJlyEm24ll1GgOvloNxEI2v5bMDD0YRql+u5yp1qF0+ifZ9Ga5EJni
	WCeCc=
X-Google-Smtp-Source: AGHT+IG+1ktLNOSz3yYoHgwGH2/62TvvbxjUubXxMiB5p2cnN1GjhetPRQqdB0FEItrfNeEubjUiWQ==
X-Received: by 2002:a05:6000:2910:b0:3b8:d22d:a8ad with SMTP id ffacd0b85a97d-3b900b448e7mr9448889f8f.3.1754900270382;
        Mon, 11 Aug 2025 01:17:50 -0700 (PDT)
Message-ID: <646c538a-850a-4370-8132-c06d9be8b422@citrix.com>
Date: Mon, 11 Aug 2025 09:17:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 10/22] x86/traps: Move subarch_percpu_traps_init() into
 traps-setup.c
To: 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: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-11-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: <20250808202314.1045968-11-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 08/08/2025 9:23 pm, Andrew Cooper wrote:
> ... along with the supporting functions.  Switch to Xen coding style, and make
> static as there are no external callers.
>
> Rename to legacy_syscall_init() as a more accurate name.
>
> No functional change.
>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
> ---
>  xen/arch/x86/include/asm/system.h |  2 -
>  xen/arch/x86/traps-setup.c        | 97 ++++++++++++++++++++++++++++++-
>  xen/arch/x86/x86_64/traps.c       | 92 -----------------------------
>  3 files changed, 95 insertions(+), 96 deletions(-)
>
> diff --git a/xen/arch/x86/include/asm/system.h b/xen/arch/x86/include/asm/system.h
> index 3cdc56e4ba6d..6c2800d8158d 100644
> --- a/xen/arch/x86/include/asm/system.h
> +++ b/xen/arch/x86/include/asm/system.h
> @@ -256,6 +256,4 @@ static inline int local_irq_is_enabled(void)
>  #define BROKEN_ACPI_Sx          0x0001
>  #define BROKEN_INIT_AFTER_S1    0x0002
>  
> -void subarch_percpu_traps_init(void);
> -
>  #endif
> diff --git a/xen/arch/x86/traps-setup.c b/xen/arch/x86/traps-setup.c
> index 13b8fcf0ba51..fbae7072c292 100644
> --- a/xen/arch/x86/traps-setup.c
> +++ b/xen/arch/x86/traps-setup.c
> @@ -2,13 +2,15 @@
>  /*
>   * Configuration of event handling for all CPUs.
>   */
> +#include <xen/domain_page.h>
>  #include <xen/init.h>
>  #include <xen/param.h>
>  
> +#include <asm/endbr.h>
>  #include <asm/idt.h>
>  #include <asm/msr.h>
>  #include <asm/shstk.h>
> -#include <asm/system.h>
> +#include <asm/stubs.h>
>  #include <asm/traps.h>
>  
>  DEFINE_PER_CPU_READ_MOSTLY(idt_entry_t *, idt);
> @@ -19,6 +21,8 @@ static bool __initdata opt_ler;
>  boolean_param("ler", opt_ler);
>  
>  void nocall entry_PF(void);
> +void nocall lstar_enter(void);
> +void nocall cstar_enter(void);
>  
>  /*
>   * Sets up system tables and descriptors for IDT devliery.
> @@ -138,6 +142,95 @@ static void load_system_tables(void)
>      BUG_ON(stack_bottom & 15);
>  }
>  
> +static unsigned int write_stub_trampoline(
> +    unsigned char *stub, unsigned long stub_va,
> +    unsigned long stack_bottom, unsigned long target_va)
> +{
> +    unsigned char *p = stub;
> +
> +    if ( cpu_has_xen_ibt )
> +    {
> +        place_endbr64(p);
> +        p += 4;
> +    }
> +
> +    /* Store guest %rax into %ss slot */
> +    /* movabsq %rax, stack_bottom - 8 */
> +    *p++ = 0x48;
> +    *p++ = 0xa3;
> +    *(uint64_t *)p = stack_bottom - 8;
> +    p += 8;
> +
> +    /* Store guest %rsp in %rax */
> +    /* movq %rsp, %rax */
> +    *p++ = 0x48;
> +    *p++ = 0x89;
> +    *p++ = 0xe0;
> +
> +    /* Switch to Xen stack */
> +    /* movabsq $stack_bottom - 8, %rsp */
> +    *p++ = 0x48;
> +    *p++ = 0xbc;
> +    *(uint64_t *)p = stack_bottom - 8;
> +    p += 8;
> +
> +    /* jmp target_va */
> +    *p++ = 0xe9;
> +    *(int32_t *)p = target_va - (stub_va + (p - stub) + 4);
> +    p += 4;
> +
> +    /* Round up to a multiple of 16 bytes. */
> +    return ROUNDUP(p - stub, 16);
> +}
> +
> +static void legacy_syscall_init(void)
> +{
> +    unsigned long stack_bottom = get_stack_bottom();
> +    unsigned long stub_va = this_cpu(stubs.addr);
> +    unsigned char *stub_page;
> +    unsigned int offset;
> +
> +    /* No PV guests?  No need to set up SYSCALL/SYSENTER infrastructure. */
> +    if ( !IS_ENABLED(CONFIG_PV) )
> +        return;
> +
> +    stub_page = map_domain_page(_mfn(this_cpu(stubs.mfn)));
> +
> +    /*
> +     * Trampoline for SYSCALL entry from 64-bit mode.  The VT-x HVM vcpu
> +     * context switch logic relies on the SYSCALL trampoline being at the
> +     * start of the stubs.
> +     */
> +    wrmsrl(MSR_LSTAR, stub_va);
> +    offset = write_stub_trampoline(stub_page + (stub_va & ~PAGE_MASK),
> +                                   stub_va, stack_bottom,
> +                                   (unsigned long)lstar_enter);
> +    stub_va += offset;
> +
> +    if ( cpu_has_sep )
> +    {
> +        /* SYSENTER entry. */
> +        wrmsrl(MSR_IA32_SYSENTER_ESP, stack_bottom);
> +        wrmsrl(MSR_IA32_SYSENTER_EIP, (unsigned long)sysenter_entry);
> +        wrmsr(MSR_IA32_SYSENTER_CS, __HYPERVISOR_CS, 0);
> +    }
> +
> +    /* Trampoline for SYSCALL entry from compatibility mode. */
> +    wrmsrl(MSR_CSTAR, stub_va);
> +    offset += write_stub_trampoline(stub_page + (stub_va & ~PAGE_MASK),
> +                                    stub_va, stack_bottom,
> +                                    (unsigned long)cstar_enter);
> +
> +    /* Don't consume more than half of the stub space here. */
> +    ASSERT(offset <= STUB_BUF_SIZE / 2);
> +
> +    unmap_domain_page(stub_page);
> +
> +    /* Common SYSCALL parameters. */
> +    wrmsrl(MSR_STAR, XEN_MSR_STAR);
> +    wrmsrl(MSR_SYSCALL_MASK, XEN_SYSCALL_MASK);
> +}

These want adjusting to use wrmsrns(), similarly to the previous patch.Â 
Fixed locally.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 08:23:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 08:23:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077069.1438155 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulNog-0001Ol-56; Mon, 11 Aug 2025 08:23:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077069.1438155; Mon, 11 Aug 2025 08:23: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 1ulNog-0001Od-2U; Mon, 11 Aug 2025 08:23:38 +0000
Received: by outflank-mailman (input) for mailman id 1077069;
 Mon, 11 Aug 2025 08:23:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=NowU=2X=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1ulNof-0001OX-6D
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 08:23:37 +0000
Received: from NAM04-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam04on20612.outbound.protection.outlook.com
 [2a01:111:f403:240a::612])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 76a1c1fb-768c-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 10:23:32 +0200 (CEST)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 SJ0PR12MB6967.namprd12.prod.outlook.com (2603:10b6:a03:44b::6) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8989.17; Mon, 11 Aug 2025 08:23:27 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d%7]) with mapi id 15.20.9009.018; Mon, 11 Aug 2025
 08:23:27 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 76a1c1fb-768c-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tA2OlXwQ8tKOTKBpWzjrNJC+Yb2Vn4Kfd0sPziw0tn9qBAA21mFolZrCZ3DGzdUHc60cRk54Gn6SUvYn1Neg9axN2cCwhrFHib8H8nHwaKvMZw84BA/4PmUbM23iRByOb8NrHJiADIw1CHji9TcU1S758bFVjDOmrrwUq39Ak0tZkR17XhNR/Ob6WOO5vu40vk6HL1HEIAE3BJmpl2qiIiTiBZcbJ3KH9UPegSwNmZu01SIgnsl/kylM/M4VTUQ8TJOAQmhwLrvo2Q6tlYwuUuQJhGgjfIDwVm9SHjWfXFigFrm+bWW10mqG82kKv0g784HB+49qTJIb+/EuAeMcHg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=XA+6qBJFfAcU6uUPUx/xX6ZfMwWuHXFgNARnbW/qYaM=;
 b=Q2tL/CeafFjnUuQ0W0bWHy7NAl6a378bjByDF4A3il2BdEfwiCr+KHGY6R+vY/ds00Fg9BqBB9KAurtfi7UqOECfdSNP6JYWqum87HXzYsV+i3hkfAEtD/8JdiTur/ZyTsl43mLU8FrHlHKsvjsV8BCeFSJBn2kJN2zFNo9Xgn2gl/97XRcGQmrgTMGK2Rot5Ua+J/L/8pBsD8N4ZQVCOHKy4GVdIRgdLF1sRCqEhEj3bfzu9AiyshT6Ll8NmZYlLwiG0hAhrMgIYDvTdxeE2r/4fXEfpWWmy+AmKMzKiacw/MHCHO8Yp9UX2LK31Pl2myH4AU5NhxmcLMjr3hXVXQ==
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=XA+6qBJFfAcU6uUPUx/xX6ZfMwWuHXFgNARnbW/qYaM=;
 b=gt5AsRYEjfDjAxDCrbOsfU1jnBWswbfTGChDsEDKxC2XrhZ2gaeD+BwbIhpQL4D2hDJ2MJj9TErhrZqJHMuG7EefSQtpUqXfaWSW1jfXfrukINCHubvYUOnzDq7vA10D8v2MohPCG0H/wVdEvGjNyFtpDE+YOchmYIVlzRHs2hc=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Orzel,
 Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v6 12/19] xen/cpufreq: implement amd-cppc driver for CPPC
 in passive mode
Thread-Topic: [PATCH v6 12/19] xen/cpufreq: implement amd-cppc driver for CPPC
 in passive mode
Thread-Index: AQHb8hcm/2j2N+pZoEenN2J+6s0qPrQ2T+AAgCb91HA=
Date: Mon, 11 Aug 2025 08:23:27 +0000
Message-ID:
 <DM4PR12MB8451D773D2D9823E4CC03E30E128A@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20250711035106.2540522-1-Penny.Zheng@amd.com>
 <20250711035106.2540522-13-Penny.Zheng@amd.com>
 <1899ebd0-c64a-4bb8-bf3d-0bf90f2b6299@suse.com>
In-Reply-To: <1899ebd0-c64a-4bb8-bf3d-0bf90f2b6299@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-08-11T08:23:21.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|SJ0PR12MB6967:EE_
x-ms-office365-filtering-correlation-id: 4ae9c1a4-0548-445a-89dc-08ddd8b058f5
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?ZEVVWm5BcXhwMzhoQllZMFBvZEliTnNxMUVKeWRRSmw4d2JxMGxSa1p6SG5E?=
 =?utf-8?B?VlFQK3Y2bWtCWUlDZWdwc3BGc0dPdmk0enRDSDd4OXFEZk9SekRyWEl2aVNk?=
 =?utf-8?B?VWdWSkZPWWhkQ3RLc2h5VVpLczF4dy9hM3lDZFAyRjhJVERmUUNKekQrM0gz?=
 =?utf-8?B?a0hYUHhmeVVIK0plWGxVdTIvbDV4VE1scnMzVzJJMGg5THZPVWFtUkw3Wm5F?=
 =?utf-8?B?bzhkZzVESEk3eUIvUmNxcFJ3emRIUjRKekFBK3p0UzhPZlA4RWZPWWNmTG5z?=
 =?utf-8?B?WmQyVGgvVlRhelFvRVBlNkF3MGNpSm1yVmkxOEF1ZzdiQWdRcERnYjI0c2dI?=
 =?utf-8?B?ZkU4ZGhjM3YrWjlpSVFDK3Z4TExhN1RZdmdGYkd2VHJ2ekdWQnZ1aDhPRXJx?=
 =?utf-8?B?VDYxU05Fbzl3eWxyemMybFNGeTZ0T0FVYjFxYkZsanlJTlRBV1JTcXBwcXJX?=
 =?utf-8?B?aXBnQkpVeEZPZmtOd2hCNVQ1WUh0N1dOTlF4eXhKa1p4aGVnS2YyeUR5aU00?=
 =?utf-8?B?bDIxWERDSmlLa2xFSnVYOERhSmFEMXpuWHgwNjQzZFJnbzZYbWdtM2pyM05y?=
 =?utf-8?B?NUVCdjZTeVZOUVN6ZjBVaG9SSXpWc3dUYUJPYW8vWEJ4Y0t4TWw0eUJOUU1Q?=
 =?utf-8?B?TkdBMnFUUzhTMUV6Y1g4a3hHV0h4VUJhWFJDVzJOVWJ0ajF1clJUd3ZEMG5C?=
 =?utf-8?B?RUFMdGpQZ2ErdVk0VXRiNG9QNitPeXpwaytQV3FPc3pGbVg4MW9nbmZVekU2?=
 =?utf-8?B?MFhoUG1wcGFPV29meUlFK2EyWXZTaERHMTlVcE1yVm80NTM5cUs4aUF2WCsz?=
 =?utf-8?B?UGtsV0gyM01MSEpPVG9XNVoyYTZCQnc4WlppZkdjRy9YTlNSVWJoR1drTlpu?=
 =?utf-8?B?aHJaYk0vNytzazV2ank3cGhjSXgzM0VVN1J1dnJMMUV2VEhyRVVwZ2w0ZXpq?=
 =?utf-8?B?cUt5OEorVStmN0xlMjU3WkVTL3FCSGdEYk5FNXdCMlF0RzZYM1lxdmNRa3Rx?=
 =?utf-8?B?dDN2NGI3OXdtdGZJZlZERUFRYVVlWWxqbytFWnk3TXZMRjdZUDNVTGZFaWxK?=
 =?utf-8?B?UDZ1YlRGVW5lVEg1cVRYd2x6SFJsSkZTczlZRXhhRGc5N2ZXQmRFNUVhQVdE?=
 =?utf-8?B?TVcvT0xmdFExZnR2eDZCNDdiRm96L0VTOGNKb0JqaUZPeGN0SThBRFJ4bm0v?=
 =?utf-8?B?Rk1OZTl2ZVNWRm0yZjlFbVYxaHkvNGVyQnd4NmhNbFFGbXBYVTZaQkhaSms5?=
 =?utf-8?B?SFk5ZGxwVnNvZk1ranppcjdTZm5qZmNudlhXTWo0MXVZbWhSNzJyTk5jeWs5?=
 =?utf-8?B?THBiSHhTQU1Fc0xPK0FncUV0MnJoU0ZYb1NCOS95YWZPSzNRelNic1VBd1g2?=
 =?utf-8?B?NXFMajE0QkZyQkRCNVhuaEZnK0FURkFmbEpMNkZBYW0rZGs4Y3dnVXIwTzJk?=
 =?utf-8?B?Q2hwaVdiRzZ3U24vanJQS3VpdE5UMmV4VEdKck9YbU5KTklSTWhjUFRoZ0xZ?=
 =?utf-8?B?N2JsQ2RCTXF3aDRzWVJoYVNsaWJQc0liZUxhemo5eTZGTndBa2VFRXN0dE9O?=
 =?utf-8?B?YWFkR3R3VDY4WTRscmhGSUhJbUxKdXJjeGw1cDV3bEo1VHo0aVQ2SEVENDl4?=
 =?utf-8?B?QldnS0MzcCs4anFjdldzSkgrYW9sQ2Y1Tldzc2VuTlNxVEV6aFl0cCtCM2w4?=
 =?utf-8?B?RWs3WU5hS1pieGZqcStQQk1WTU9LVERZemlDemJhcXMzelBhdTg3YlUvZFVz?=
 =?utf-8?B?QzVlWjF1UnBqVHFaaW1EcVdMWk5WTWFueFcyRFQ4NCsrektSaWFSbjdodWZY?=
 =?utf-8?B?YUpuRy9ERG9LOWdmSURwdG91SWJneXVTRHFhOUpwSVlwUVRBK0ZRL2hNWVFT?=
 =?utf-8?B?Rk1IRitqaEsyMlkzM0hFd2tTelo0SGhVUWtXV0UrY1lLQXVpUlNrdWhGRGwz?=
 =?utf-8?B?YjZHanIxZGZjVll1V1VnRGJ5QzlCbzk0RC81dkdWaUpmRlR6aVUzNTNlRDBW?=
 =?utf-8?Q?/kjB3+bv0YLMln6MK2nd/TWcLQLV7g=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?ZHZka0ZzY3p0aXdPZkJSVGxxNkxMRU1SdmVRa2s5cU5sQTdXQ0M2Vk14ZjRv?=
 =?utf-8?B?cHczWVVYSHBiMno2ZWFkTDYwU2xSSkhwZGcwTHJYTHRSOCtYdUJ1OXA0Z2U3?=
 =?utf-8?B?aFppYjNsR2pZdjc1N3lOVGhJUHJyWE5iUDRyelNVWUJOU1pJQ1N1VEpUQW1W?=
 =?utf-8?B?bm8vRHRjeDdiUnpuSGtMOEEwUTFuMnljdXZiMm90bm94K29TQ0RFc2RYYkNT?=
 =?utf-8?B?YWJXT3F1T25FSmRPU1JiWG9OblZ5aUxBVm9ON3U0Nkt6TFNXWXp3NG0wS2d1?=
 =?utf-8?B?N2V1THlrVEdWMUZ6N3EzcVQ0ZkpuaEdlZzJZYjlqOU1EbXp6MVlpVDU2cFZw?=
 =?utf-8?B?b0xKdUQzWTFRYm5OUUlxWEtKVHlsREJLanFuQVpsamdWbDR6ZEI3MFNvaStP?=
 =?utf-8?B?NGhML3JiRHV0cTJ5ZmNFMGliNmg1OGZCWkxrSmR6b045KzZOSW9wL2x6VWo5?=
 =?utf-8?B?NCszRlMzaTFQTjloeWZwSDdQZ0xwM3BqcDNudE9ka3ZYd0p4TDVLVHNxbWRo?=
 =?utf-8?B?ZHAva25Cdk8raUNKczk0bUF6dis1ODdBMStuSUJHMnBDdFhJL2psVEUxK2V3?=
 =?utf-8?B?Yk5tTEM0VG1oS2JCeUlOdFhsT01jQkRKVlNaS0pPSjlmQUZyQ1IwYnUyMERG?=
 =?utf-8?B?QXRxZ2RXOHYxei9zUUhvNmRodTgyNFJZdXcyZi9Md0U5L2dYWVBwUVRaR043?=
 =?utf-8?B?ZFNncnZPdUcxRzZiL2I0S1NlMVptSnVkQlovR0pBSi9KaHhPL1JQdnlOK1Fn?=
 =?utf-8?B?bmViVWJZdDZwL21aZjUrbm02S3Q4aWk5bEdEajJVenlBeUJEZTRITWJLdjkz?=
 =?utf-8?B?eXBkUmdzRXVaYVJLVVFaSUJDRWovUUVaSllzY01YOGtKQnRmYU9iZFRnRDJB?=
 =?utf-8?B?WGRVVW5HUzg1MThCdnkweHRKZ3VZUzhESC9mZGtXSU0vaWtNNDRDTTArc1Bz?=
 =?utf-8?B?S2tZcjBLamZPbVJLYXBUbHJWSklRWmp4bFYyTGpEV2dyekpPdmNwQzViZ2hw?=
 =?utf-8?B?emJHQnNNTmVnQmVvL3pTdUpJazdCME4yNkd6Yy9FbmFvVzdjQ3FWSURYTStj?=
 =?utf-8?B?aGYrL3R6SUZxczVKejhFVysyUVNKL2F4OTJXMStjcFZReklBVGg1NFR5QnV1?=
 =?utf-8?B?WVE2ajJjZndyMTBVK2JBOGMzQWIweU5ZMStodGJJVmM1ZUc1clJ5N010OXNG?=
 =?utf-8?B?dmUwZ1JpYVUySzdPQ2ZLbkFRWDNZRGpKcEtVQU0yc21nMkFSSGtrT0VGanZF?=
 =?utf-8?B?UTd6T1dhOXFCNXpVdXo4Z1FjTWdPaG15V0VrTXFGMXhRRXJydG5RWjBvTWVa?=
 =?utf-8?B?dmhxM1FoemdHM1JYbHdsU2NTYkZrY1NJZkhKTFhPeC95eUpqRFhmTWNHZmxL?=
 =?utf-8?B?WGRaTHJmNlRYN0QydDdzdHplS0ZRQzkwcG9iRU9QZFB6eVFKOFpKY1lnUTNI?=
 =?utf-8?B?NXV1WVpUVWdMTXE2dXdNbEI2VUxnaTByRlpPR1o5UHJQbmFpcVlFUTYzWmlB?=
 =?utf-8?B?YW1JMWtlWEJyZ24za0dkWjg0akFDSEgwaUpKbnVKNWRISE9lQlVWc055bUFn?=
 =?utf-8?B?MkdINk1oMm9ON3F3NjQydnJmSGFKbitvN3BJa0tpenZyTXNRZkVmZ05vY000?=
 =?utf-8?B?VlJWUW9QeDROekgrdGl2VzgxcE5FbTNCb0pGdERtbERMZXJlV3BYd3dsMHQv?=
 =?utf-8?B?a1RWLzR6Ym8wcGMxTDQvelUvU2g3SXdvWVhxVHB6NmRKUDBXY0FyV043Z2po?=
 =?utf-8?B?NWNhdWhuSk5qa3B2Sk10QTB4UTE4L3RsVXdxdGZNVXFnMTJDaG96aXZMc3ln?=
 =?utf-8?B?Uk4rWFFldmcxM1JqdzRZNWRLaEpESmRxbnU4S2NsNm1rNkhjdUNMTHhjeHNu?=
 =?utf-8?B?TXlOQ3NZVm1RRUdCVlQxZEY5OUx2QmJrTWdYS2x1WExkbWk1WklFQ1I5aVl6?=
 =?utf-8?B?bkJ1OVBnVzNob3ZpVEd0cU5HZUdXZU9oNlBwQ2JOWHNOVm9CcGdpbHUyMFQv?=
 =?utf-8?B?VzlKa3hRNmVsc2pBc0w3eUlydVZ6eVJSOTN5QmlzV3pOUG9uUVdLNFlHY2J6?=
 =?utf-8?B?VHY0YXpiV2JxRE82dTloVmhJTERQMjEwZmVqTWdJdUlkUCtIVmZYMXdmUlNV?=
 =?utf-8?Q?p+T8=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4ae9c1a4-0548-445a-89dc-08ddd8b058f5
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Aug 2025 08:23:27.4725
 (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: DliUUkfoOMAfTu3cAL7PCf2TPPXLHZ1GgqRm7K80k979kXyYt3uOMHNRKWCW/xZc7KIPVvGO9Zj2b9bZZSlfOg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB6967

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFRodXJzZGF5LCBKdWx5IDE3LCAyMDI1
IDg6NTUgUE0NCj4gVG86IFBlbm55LCBaaGVuZyA8cGVubnkuemhlbmdAYW1kLmNvbT4NCj4gQ2M6
IEh1YW5nLCBSYXkgPFJheS5IdWFuZ0BhbWQuY29tPjsgQW5kcmV3IENvb3Blcg0KPiA8YW5kcmV3
LmNvb3BlcjNAY2l0cml4LmNvbT47IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXgu
Y29tPjsNCj4gQW50aG9ueSBQRVJBUkQgPGFudGhvbnkucGVyYXJkQHZhdGVzLnRlY2g+OyBPcnpl
bCwgTWljaGFsDQo+IDxNaWNoYWwuT3J6ZWxAYW1kLmNvbT47IEp1bGllbiBHcmFsbCA8anVsaWVu
QHhlbi5vcmc+OyBTdGVmYW5vIFN0YWJlbGxpbmkNCj4gPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+
OyB4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gU3ViamVjdDogUmU6IFtQQVRDSCB2
NiAxMi8xOV0geGVuL2NwdWZyZXE6IGltcGxlbWVudCBhbWQtY3BwYyBkcml2ZXIgZm9yIENQUEMN
Cj4gaW4gcGFzc2l2ZSBtb2RlDQo+DQo+IE9uIDExLjA3LjIwMjUgMDU6NTAsIFBlbm55IFpoZW5n
IHdyb3RlOg0KPiA+IC0tLSBhL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdWZyZXEvYW1kLWNwcGMuYw0K
PiA+ICsrKyBiL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdWZyZXEvYW1kLWNwcGMuYw0KPiA+ICsgICAg
aWYgKCByZXMgPCAwICkNCj4gPiArICAgIHsNCj4gPiArICAgICAgICBwcmludGtfb25jZShYRU5M
T0dfV0FSTklORw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICJQZXJmIHZhbHVlIHNtYWxsZXIg
dGhhbiBtaW5pbXVtIHZhbHVlIDA6ICVkXG4iLCByZXMpOw0KPiA+ICsgICAgICAgICpwZXJmID0g
MDsNCj4gPiArICAgICAgICByZXR1cm4gMDsNCj4gPiArICAgIH0NCj4gPiArICAgICpwZXJmID0g
cmVzOw0KPg0KPiBDb25zaWRlcmluZyB0aGF0IGFtZF9jcHBjX2luaXRfbXNycygpIHJlamVjdHMg
cGVyZiB2YWx1ZXMgb2YgMCBhcyBpbnZhbGlkLCBpcyAwDQo+IGFjdHVhbGx5IHZhbGlkIGFzIGFu
IG91dHB1dCBoZXJlPw0KPg0KDQpZZXMuLi4gd2UgYXJlIHJlamVjdGluZyAwIGluIHRoZXJlLiBN
YXliZSBJIHNoYWxsIHJldHVybiAtRVJBTkdFIGhlcmUgaW5zdGVhZA0KDQo+IEphbg0K


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 08:27:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 08:27:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077076.1438165 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulNsa-0001xn-Kp; Mon, 11 Aug 2025 08:27:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077076.1438165; Mon, 11 Aug 2025 08:27: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 1ulNsa-0001xg-HH; Mon, 11 Aug 2025 08:27:40 +0000
Received: by outflank-mailman (input) for mailman id 1077076;
 Mon, 11 Aug 2025 08:27:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=MOyo=2X=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1ulNsZ-0001xa-C8
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 08:27:39 +0000
Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com
 [2a00:1450:4864:20::52e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 099f5b71-768d-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 10:27:37 +0200 (CEST)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-6154d14d6b7so4753690a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 01:27:37 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a23fec4sm1984307966b.121.2025.08.11.01.27.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 01:27: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>
X-Inumbo-ID: 099f5b71-768d-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754900857; x=1755505657; darn=lists.xenproject.org;
        h=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=7H+n72LjNEssch+2Htm6ggRF93EOIzn/BLE/Hvkm6/w=;
        b=klJ21eNxt0y7zNL3ki1hIF2JIbJ6oBu+nTjfvak7OO/iBhTLcrzgp2tEsO3VC6mhS9
         U9PJMX63ChbNONxCSMqqBiIolnqBGGNHshVtV9VkXgsbHA05W4RQdKQCMlcI9YLdZ/6l
         H75VYnwUQfX64UlaTouEhiuHKt55TIAFJQ+IkzvY3UQXx+cWOzRs0AtT3MfQ1YscW2zk
         z3iOZesWAVBOyxWcqN2KjoWcQC3DFFf+qcpQ314T8JtP3khNeHsu/y0mZa/1VFSpbxvf
         HuAc8/h7VHZo7HEY/9GkEgUYZwFMXl19HA+9fCDB+nHzkZc/dJk31hjJgJl7uCjjBIYr
         m4sw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754900857; x=1755505657;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=7H+n72LjNEssch+2Htm6ggRF93EOIzn/BLE/Hvkm6/w=;
        b=NhMfb/BEKCBikTHvSBJ93+QtQNCAfA3n67hRUBQg8dv3iMbUql8g60JzmwYvRPGEN0
         G98Oy11NzPRIns7o9B52c1PdfRUbs56Lz9kLL+Aa6Hm+BVvt0kEyTpbhArBNQKEj5TWt
         9dE9GFLMvzLSVy2oWUkP/rXPDSVEguSKZ3Qd1KDrKWB0VvedhdByFFariSHE9B3WrbBg
         myD/QUUXyOoLefWa+Jd/YJe8HSpwUDoEPNQyzgCa/q9K6TfYq8+tyuxQO48BFIyRzVe/
         uwiVG+0NL0EnpXlnRrSyB9xPn3RpkLvs5ZxS/EpHuKhiU8xhYJqXuT5x/TNCnWXEt5Gl
         26Eg==
X-Forwarded-Encrypted: i=1; AJvYcCWodYKcnWFGDMc6eGLmdy0SxLlcqyZROiv3x13CRfEpYPQWA48flIbabthv9bo6sJjybY3Ud6bquY8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzmPResL6G9g6y9pwmoIwntj7RpcBzlU2lnTpfMuzmN6PnJtnJP
	gkYR7rGWlf9sCAQj+hAcLxilZuC92TY4Z8aWRsZPr8ZcqagpbbvzzaAx
X-Gm-Gg: ASbGncsG5NjgBBtp+D4q0HW8SL3ft5WSRvf84I9F0Psea87nCLO4PKSNx+tj9WWdSm4
	+n9w+LiZnGE1OX/mYUVS7800RKradjmeG3TjmGxuP4KMnKuZKggbldYRyobsLTrphGC+lCEaWOT
	b4/Rp4v5r481u5Y/CgkOq6R7oNSUtqp0BA3KCZP96Rkedm9YV7KahmOs6tW0WRMIoz5JPBe8rGw
	7ntsbnMeb6sStmK1LYq7T5uJedruJHcsKM7evJ6q9c8lLfYcL9SLNYaHPhzL0OHlGahvQbhk/63
	yM4k0y7WNRVjx9hkzhx6DDRiWtndAknn2SKMY7lnpXsgOtxHpcHW42Y4SlKTHUQl2Q2jib+6zve
	CG0Knyo1tU64TpoVSWPO95KlEsk5s5JMUpZGvpMJQWkiU/jOkQ4ZhHg0GfrZLnnW/Hl6NYsk=
X-Google-Smtp-Source: AGHT+IFh0g7OiWOqykr+/q27GAFm7PAn8kbFCE6Kj8XIA2Orvf2v1pvFV49P/+tQVHYPMs8omPf6Lw==
X-Received: by 2002:a17:907:6eab:b0:add:fe17:e970 with SMTP id a640c23a62f3a-af9c63b12f4mr1116210166b.14.1754900856479;
        Mon, 11 Aug 2025 01:27:36 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------HWaOhxSqo62uZovjrqlsQOyW"
Message-ID: <10097ea3-f0a6-45cb-971f-a9c342bc4589@gmail.com>
Date: Mon, 11 Aug 2025 10:27:31 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 11/11] Update CHANGELOG and README with dependency on
 json-c
To: Anthony PERARD <anthony@xenproject.org>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Community Manager <community.manager@xenproject.org>,
 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_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <20250808145602.41716-1-anthony@xenproject.org>
 <20250808145602.41716-12-anthony@xenproject.org>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <20250808145602.41716-12-anthony@xenproject.org>

This is a multi-part message in MIME format.
--------------HWaOhxSqo62uZovjrqlsQOyW
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 8/8/25 4:56 PM, Anthony PERARD wrote:
> From: Anthony PERARD<anthony.perard@vates.tech>
>
> Signed-off-by: Anthony PERARD<anthony.perard@vates.tech>

LGTM: Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail>
With one question ...


> ---
>   CHANGELOG.md | 2 ++
>   README       | 2 +-
>   2 files changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/CHANGELOG.md b/CHANGELOG.md
> index 5f31ca08fe..83195e2dae 100644
> --- a/CHANGELOG.md
> +++ b/CHANGELOG.md
> @@ -11,6 +11,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>      - For x86, GCC 5.1 and Binutils 2.25, or Clang/LLVM 11
>      - For ARM32 and ARM64, GCC 5.1 and Binutils 2.25
>    - Linux based device model stubdomains are now fully supported.
> + - New dependency on library json-c, the toolstack will prefer it to `YAJL`
> +   when available.
>   
>    - On x86:
>      - Restrict the cache flushing done as a result of guest physical memory map
> diff --git a/README b/README
> index 6ee58f7b35..9329f30e13 100644
> --- a/README
> +++ b/README
> @@ -53,7 +53,7 @@ provided by your OS distributor:
>       * Development install of Python 2.7 or later (e.g., python-dev)
>       * Development install of curses (e.g., libncurses-dev)
>       * Development install of uuid (e.g. uuid-dev)
> -    * Development install of yajl (e.g. libyajl-dev)
> +    * Development install of json-c (e.g. libjson-c-dev) or yajl (e.g. libyajl-dev)

... as you mentioned in the cover letter libyajl-dev is unmaintained for several years. Do any plans
exist to drop libyajl-dev at all? Can't it be dropped now?

~ Oleksii

>       * Development install of libaio (e.g. libaio-dev) version 0.3.107 or
>         greater.
>       * Development install of GLib v2.0 (e.g. libglib2.0-dev)
--------------HWaOhxSqo62uZovjrqlsQOyW
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/8/25 4:56 PM, Anthony PERARD
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:20250808145602.41716-12-anthony@xenproject.org">
      <pre wrap="" class="moz-quote-pre">From: Anthony PERARD <a class="moz-txt-link-rfc2396E" href="mailto:anthony.perard@vates.tech">&lt;anthony.perard@vates.tech&gt;</a>

Signed-off-by: Anthony PERARD <a class="moz-txt-link-rfc2396E" href="mailto:anthony.perard@vates.tech">&lt;anthony.perard@vates.tech&gt;</a></pre>
    </blockquote>
    <pre>LGTM: Acked-by: Oleksii Kurochko &lt;oleksii.kurochko@gmail&gt;
With one question ...
</pre>
    <p><br>
    </p>
    <blockquote type="cite"
      cite="mid:20250808145602.41716-12-anthony@xenproject.org">
      <pre wrap="" class="moz-quote-pre">
---
 CHANGELOG.md | 2 ++
 README       | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5f31ca08fe..83195e2dae 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,6 +11,8 @@ The format is based on [Keep a Changelog](<a class="moz-txt-link-freetext" href="https://keepachangelog.com/en/1.0.0/">https://keepachangelog.com/en/1.0.0/</a>)
    - For x86, GCC 5.1 and Binutils 2.25, or Clang/LLVM 11
    - For ARM32 and ARM64, GCC 5.1 and Binutils 2.25
  - Linux based device model stubdomains are now fully supported.
+ - New dependency on library json-c, the toolstack will prefer it to `YAJL`
+   when available.
 
  - On x86:
    - Restrict the cache flushing done as a result of guest physical memory map
diff --git a/README b/README
index 6ee58f7b35..9329f30e13 100644
--- a/README
+++ b/README
@@ -53,7 +53,7 @@ provided by your OS distributor:
     * Development install of Python 2.7 or later (e.g., python-dev)
     * Development install of curses (e.g., libncurses-dev)
     * Development install of uuid (e.g. uuid-dev)
-    * Development install of yajl (e.g. libyajl-dev)
+    * Development install of json-c (e.g. libjson-c-dev) or yajl (e.g. libyajl-dev)</pre>
    </blockquote>
    <pre>... as you mentioned in the cover letter libyajl-dev is unmaintained for several years. Do any plans
exist to drop libyajl-dev at all? Can't it be dropped now?

~ Oleksii
</pre>
    <blockquote type="cite"
      cite="mid:20250808145602.41716-12-anthony@xenproject.org">
      <pre wrap="" class="moz-quote-pre">
     * Development install of libaio (e.g. libaio-dev) version 0.3.107 or
       greater.
     * Development install of GLib v2.0 (e.g. libglib2.0-dev)
</pre>
    </blockquote>
  </body>
</html>

--------------HWaOhxSqo62uZovjrqlsQOyW--


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 08:32:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 08:32:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077088.1438175 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulNxZ-0003pG-9w; Mon, 11 Aug 2025 08:32:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077088.1438175; Mon, 11 Aug 2025 08:32: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 1ulNxZ-0003p9-6T; Mon, 11 Aug 2025 08:32:49 +0000
Received: by outflank-mailman (input) for mailman id 1077088;
 Mon, 11 Aug 2025 08:32:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=MOyo=2X=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1ulNxY-0003oy-1T
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 08:32:48 +0000
Received: from mail-ej1-x631.google.com (mail-ej1-x631.google.com
 [2a00:1450:4864:20::631])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bf53877b-768d-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 10:32:42 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-af96fba3b37so765938166b.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 01:32:42 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-615a8efffa5sm17835287a12.12.2025.08.11.01.32.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 01:32: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>
X-Inumbo-ID: bf53877b-768d-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754901162; x=1755505962; darn=lists.xenproject.org;
        h=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=KqB1qKOkqrm1zXo8p4CdwqDni3YZEqsSA0MOPs6/vz8=;
        b=VxVZSWmflR6SxNNjRJaoAVuGout0/Mt3y7ohiwoMIujYYNxVCKTzKvW6ps57K01xh9
         AfnM8kaWrks7knkZzAUvl5XY2hfBW7nbEYX6/ulvxsR9K6bgGY4scUcFx1P3L2htyJhT
         OmL7egbiei81uRJZbnZtIm1N/VuZ7SyGKeT0+YYT/C4MQgJze3Egbc+R4MQkbkFv+WIi
         Y2Cnlg17DS8CArkNYqNelSPDPKuKUqmDsNgTIBcJBxcu1KErKjrpDA4oNeyWj3YgH2mc
         LFCc/jeTAqsfFhJNfThckskWD0fN+4U9M5/U+RNQfvA2S4zs/3loy/QtKZ5E2HngbmTB
         377g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754901162; x=1755505962;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=KqB1qKOkqrm1zXo8p4CdwqDni3YZEqsSA0MOPs6/vz8=;
        b=fzIgrdEFKaCQWNYbzVrhdyovcvVE5dsPNsavbeY/SgdviCunmw0lbT4Q1YLOCmqB6a
         CHYr4CnLMVybmOgpSUrn7o/sa7FGUvBJIovM8N4Q9VIWj+jL4sym+t+jcRbqmyjysUbV
         aRgOW8uu2un08yGqj+90pvbL3XzqMqXrPXAoFAkk2MUkulRuA3OK+lqqsupRwKh2fWoB
         ABYGLi29HSz1L8dnbZqXKTBo/oefOa4uVKkrYssK45k9gAs3rN8zzrVCzAap2AGNkrrC
         uMo6V60hcd3jdu7anbX+BJTDPDarU8DopbnzYhQmwUdT40bOLSrs1Jc/LNc4DqhLaVI2
         vYIg==
X-Forwarded-Encrypted: i=1; AJvYcCU1LlCbiWmxyBqULeYLAaQRbF+N+Pzut/VH1oivZB92ZyjOzFVf7vSHb67vFLZlfkh5jyro5nXa2J0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxcg7cvLrjgPXT0XrJ65AFnJkKbmfGKEsSVGJnM7ab4lk3Lnt8H
	6TYcmbC2WPCcs28RdR+yCkgfWfc0QqlD3JbwPlXa1BSQZAnV5mHF6a2h
X-Gm-Gg: ASbGnctT6P/HifCcuvPxulS+37RHZzT2AgBN1vHltOfV6Im38AMqJKbbwIm2opTQiU2
	ChRp5+yU3Opbael6SRakQ+m9n31Q5qMjavXq0JNvIQZFBED7eluHbXyT1leEI4tTXoRZP5S+uVN
	+zcN16rTKplvK5O9otkz37vyMARYCVQeij7OPW0z/LJipQ7n3lWJ9Jttw8LywB7t/ctmksT4820
	6jFBYTUp2SQP0bAldSZPxHorMpelgWmMNP1IhpF5KT9G5EyKF89Ai9IoE/09sMbDFFCOLypiWn9
	dnPCdlmpTb11XyVa2ykD1qJmJquelgwnFW8IZ52K+H7qf5d8QW/4tCl+MaNeVBaEfWOmrMoP7dj
	gMyxdr0qzkMkAwdiDoObpufwt17rAYUYmsXr1KppuE+C4TSA58l+Wz83CjEbmx40LcRLAlL0=
X-Google-Smtp-Source: AGHT+IEHZudf7zr9VtjzqSHQzU4oOpnmsLv1Dp0ScodEo5yxjSsFO4x7tSJsDptn+yA9l42bA76XvA==
X-Received: by 2002:a17:907:7fac:b0:ae0:d019:dac7 with SMTP id a640c23a62f3a-af9c636eaa2mr1126136166b.23.1754901161321;
        Mon, 11 Aug 2025 01:32:41 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------q2ZztWGWwEFsyTyk9ZlGEKqq"
Message-ID: <043a8643-ca4f-4102-a6ad-5eaf948f6459@gmail.com>
Date: Mon, 11 Aug 2025 10:32:39 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.21 0/5] CI: Add Debian Trixie
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Victor Lira <victorm.lira@amd.com>,
 Samuel Thibault <samuel.thibault@ens-lyon.org>,
 Juergen Gross <jgross@suse.com>
References: <20250809221206.1260861-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <20250809221206.1260861-1-andrew.cooper3@citrix.com>

This is a multi-part message in MIME format.
--------------q2ZztWGWwEFsyTyk9ZlGEKqq
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 8/10/25 12:12 AM, Andrew Cooper wrote:
> I know it's past the last-post deadline, but Trixie was only released today.

Lets consider it for 4.21:
  Release-Acked-by: Oleksii Kurochko<oleksii.kurochko@gmail.com>

Thanks.

~ Oleksii

>
> In terms of backports, we should at least go back to the bugfix branches.
>
> Andrew Cooper (5):
>    CI: Trixie containers
>    CI: Update ppc64 to use Debian Trixie
>    CI: Update riscv64 to use Debian Trixie
>    stubdom: Fix -Wimplicit-int in newlib
>    CI: Update x86 to use Debian Trixie
>
>   automation/build/debian/13-ppc64le.dockerfile | 37 ++++++++
>   automation/build/debian/13-riscv64.dockerfile | 37 ++++++++
>   automation/build/debian/13-x86_32.dockerfile  | 51 ++++++++++
>   automation/build/debian/13-x86_64.dockerfile  | 74 +++++++++++++++
>   automation/gitlab-ci/build.yaml               | 94 +++++++++++++++----
>   automation/gitlab-ci/test.yaml                | 14 +--
>   stubdom/Makefile                              |  1 +
>   stubdom/newlib-fix-etext.patch                | 23 +++++
>   8 files changed, 306 insertions(+), 25 deletions(-)
>   create mode 100644 automation/build/debian/13-ppc64le.dockerfile
>   create mode 100644 automation/build/debian/13-riscv64.dockerfile
>   create mode 100644 automation/build/debian/13-x86_32.dockerfile
>   create mode 100644 automation/build/debian/13-x86_64.dockerfile
>   create mode 100644 stubdom/newlib-fix-etext.patch
>
--------------q2ZztWGWwEFsyTyk9ZlGEKqq
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/10/25 12:12 AM, Andrew Cooper
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:20250809221206.1260861-1-andrew.cooper3@citrix.com">
      <pre wrap="" class="moz-quote-pre">I know it's past the last-post deadline, but Trixie was only released today.</pre>
    </blockquote>
    <pre>Lets consider it for 4.21:
 Release-Acked-by: Oleksii Kurochko <a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>

Thanks.

~ Oleksii
</pre>
    <blockquote type="cite"
      cite="mid:20250809221206.1260861-1-andrew.cooper3@citrix.com">
      <pre wrap="" class="moz-quote-pre">

In terms of backports, we should at least go back to the bugfix branches.

Andrew Cooper (5):
  CI: Trixie containers
  CI: Update ppc64 to use Debian Trixie
  CI: Update riscv64 to use Debian Trixie
  stubdom: Fix -Wimplicit-int in newlib
  CI: Update x86 to use Debian Trixie

 automation/build/debian/13-ppc64le.dockerfile | 37 ++++++++
 automation/build/debian/13-riscv64.dockerfile | 37 ++++++++
 automation/build/debian/13-x86_32.dockerfile  | 51 ++++++++++
 automation/build/debian/13-x86_64.dockerfile  | 74 +++++++++++++++
 automation/gitlab-ci/build.yaml               | 94 +++++++++++++++----
 automation/gitlab-ci/test.yaml                | 14 +--
 stubdom/Makefile                              |  1 +
 stubdom/newlib-fix-etext.patch                | 23 +++++
 8 files changed, 306 insertions(+), 25 deletions(-)
 create mode 100644 automation/build/debian/13-ppc64le.dockerfile
 create mode 100644 automation/build/debian/13-riscv64.dockerfile
 create mode 100644 automation/build/debian/13-x86_32.dockerfile
 create mode 100644 automation/build/debian/13-x86_64.dockerfile
 create mode 100644 stubdom/newlib-fix-etext.patch

</pre>
    </blockquote>
  </body>
</html>

--------------q2ZztWGWwEFsyTyk9ZlGEKqq--


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 08:43:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 08:43:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077097.1438185 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulO7r-0005iR-4N; Mon, 11 Aug 2025 08:43:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077097.1438185; Mon, 11 Aug 2025 08: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 1ulO7r-0005iK-1b; Mon, 11 Aug 2025 08:43:27 +0000
Received: by outflank-mailman (input) for mailman id 1077097;
 Mon, 11 Aug 2025 08:43:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=MOyo=2X=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1ulO7p-0005iE-Bb
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 08:43:25 +0000
Received: from mail-ed1-x534.google.com (mail-ed1-x534.google.com
 [2a00:1450:4864:20::534])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 37d0324d-768f-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 10:43:13 +0200 (CEST)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-6154655c8aeso5758420a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 01:43:13 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-615a8ffbde5sm17944208a12.54.2025.08.11.01.43.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 01:43: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>
X-Inumbo-ID: 37d0324d-768f-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754901793; x=1755506593; darn=lists.xenproject.org;
        h=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=KWCgUz6GVKLbEbvxJqlmU/6PlX5HX7aQWbOcWcqHhwE=;
        b=kd0lZ/UipTjMexU+XMp9I3FZ1FPsVZ6wa/M4JgoiEko6XQ6KAGC5Sk8VLqOr+laLk3
         IBxo2q+voAabezcSt1dMkkm+apxT7CGpzolEMvhaci4Dfiiu6X3BZYUNwnYAKc1VmlwB
         bHzfm8/swp4R+P5Ymb3CEnwMNcQcloUgXP2Y/eGhtas5ssZt2btHXMExKS3rJ6CH2EA4
         hXgXdqw5jKMhmvY659tV5Xs5umwYZl1Q2XC0s6DSxhGE4+gMM5gURZruY6jkiyIkyZzu
         G3KU7EsygVv1dkA3Rj3TG/WtKNNrqC41yStywplJbsW/bRhuHF/vjGWy+WKBpRiloGeS
         l8zg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754901793; x=1755506593;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=KWCgUz6GVKLbEbvxJqlmU/6PlX5HX7aQWbOcWcqHhwE=;
        b=b/c68G05xXMxwBCAAK7MF+/+cKQMvAIHpOV1oeoVEGJTDLOXMgj4UI0FmoT0V5wI8k
         8TPy1hy1SMf1yVFy74ek7QUXa1TXzbVcfUb5C0tJxHjsjJOjlN0KiUTroax71fSIT1/B
         iOBSGo8zyGQyLWTQT0jFeo+s+6qK/ngF8grfxy/yJrkvl53H6AjOFiIKw1UX1yWGNyXZ
         TyEE+8mLMs0bqEsxwAPCb2AA3JiVaQ7/LVXG7/Y9vZGS1ApLkSHtnZ/JDzWfay27i8BT
         qkSI9Bu86DVxxS6ax9NE2mxLtL+45DqP8ZqCvPATbkQHevCFz5v3D7XpSzLasPgUqemJ
         AJMg==
X-Forwarded-Encrypted: i=1; AJvYcCWsQ0JcgOWJIm1sMXaLSaE0Y6ivNEmKr/5d13v23/lGtppVOX8HgCN1T66crnjVbjzqAs+fPplK+Uo=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywulv2Jaoo9GO0GbnlpX1GwCKI2BzUS8gp2cluISky0rp8KWie9
	Ib85EAa/1JFxAZRNpwRE+qJoX0jFYYe1n6Z+DKt3UT8EzoC6lXNvOzmu
X-Gm-Gg: ASbGnct8nUiMdYqp29n7Ku89T315KOR35Qeg//1mzKfciPObNH7EzZ75PYlZW5YDAo+
	JbnchJmM2+x6DMyKbLuflBNz6CH6JypRnMp8s+Vjw6TpWmy3zThGTUYBRKFJJi4nBpTyCy2p/mu
	LbvK44e2MJ9mN7i0UdlX5IwLY+GYUdaukJUsBv4ABRDjPkQdgJSQ1oZ0uBTGllCrrsS3awmCQZv
	3FcaXVYv5IdgH6ww3VjUH9LwXCkbCx3AS+XrMis39AMmLvAVaA8g10NAW5B0QIMszkGL4rwX+4f
	9452hHqEV9xTd3biLMVhuuQSUJ7LyksXE+d6PZKYRzh+wfvcoEZFLESdN0whBiJCg4JS15tlaxP
	3g+aLxn7WjVuR9nWLF28xZYo1/CFQeHgispmOj2/BhrP4FYJbVlAvxtQL3B4f2GEK+D4CdAI=
X-Google-Smtp-Source: AGHT+IE8ov+ppGayhzOqdELEGfgDTzgS2m/jQdZ5RGMlI6MSf+mKq58nwED8TZmFOjY7Gpi3cgMG2Q==
X-Received: by 2002:a05:6402:5216:b0:612:a86b:ac79 with SMTP id 4fb4d7f45d1cf-617e2b77876mr10829070a12.2.1754901792998;
        Mon, 11 Aug 2025 01:43:12 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------jBo8MouCJ84UWa0950Sndq1f"
Message-ID: <2919f22b-0b0c-488e-b0c6-96b9538e63d9@gmail.com>
Date: Mon, 11 Aug 2025 10:43:10 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/5] CI: Update riscv64 to use Debian Trixie
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Victor Lira <victorm.lira@amd.com>
References: <20250809221206.1260861-1-andrew.cooper3@citrix.com>
 <20250809221206.1260861-4-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <20250809221206.1260861-4-andrew.cooper3@citrix.com>

This is a multi-part message in MIME format.
--------------jBo8MouCJ84UWa0950Sndq1f
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 8/10/25 12:12 AM, Andrew Cooper wrote:
> Everything works fine with Debian 13.  Provide two new build jobs, and update
> both the randconfig the test jobs.
>
> 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: Shawn Anastasio<sanastasio@raptorengineering.com>
> CC: Oleksii Kurochko<oleksii.kurochko@gmail.com>
> CC: Doug Goldstein<cardoe@cardoe.com>
> CC: Marek Marczykowski-GÃ³recki<marmarek@invisiblethingslab.com>
> CC: Victor Lira<victorm.lira@amd.com>
>
> https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/1975929387
> ---
>   automation/gitlab-ci/build.yaml | 22 ++++++++++++++++++----
>   automation/gitlab-ci/test.yaml  |  2 +-
>   2 files changed, 19 insertions(+), 5 deletions(-)
>
> diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
> index 3fe539dc5683..f8e45f3467c8 100644
> --- a/automation/gitlab-ci/build.yaml
> +++ b/automation/gitlab-ci/build.yaml
> @@ -329,10 +329,10 @@ debian-13-ppc64le-gcc-debug:
>         CONFIG_UBSAN=y
>         CONFIG_UBSAN_FATAL=y
>   
> -debian-12-riscv64-gcc-debug:
> +debian-13-riscv64-gcc-debug:
>     extends: .gcc-riscv64-cross-build-debug
>     variables:
> -    CONTAINER: debian:12-riscv64
> +    CONTAINER: debian:13-riscv64
>       KBUILD_DEFCONFIG: tiny64_defconfig
>       HYPERVISOR_ONLY: y
>       EXTRA_XEN_CONFIG: |
> @@ -727,6 +727,20 @@ debian-12-riscv64-gcc:
>       KBUILD_DEFCONFIG: tiny64_defconfig
>       HYPERVISOR_ONLY: y
>   
> +debian-12-riscv64-gcc-debug:
> +  extends: .gcc-riscv64-cross-build-debug
> +  variables:
> +    CONTAINER: debian:12-riscv64
> +    KBUILD_DEFCONFIG: tiny64_defconfig
> +    HYPERVISOR_ONLY: y

Don't you mind to keep an order? So:
   debian-12-riscv64-gcc-debug:
   ...
   debian-13-riscv64-gcc-debug:
   ...

Also, it will make a diff a little bit better.

> +
> +debian-13-riscv64-gcc:
> +  extends: .gcc-riscv64-cross-build
> +  variables:
> +    CONTAINER: debian:13-riscv64
> +    KBUILD_DEFCONFIG: tiny64_defconfig
> +    HYPERVISOR_ONLY: y
> +
>   .riscv-fixed-randconfig:
>     variables: &riscv-fixed-randconfig
>       EXTRA_FIXED_RANDCONFIG: |
> @@ -739,10 +753,10 @@ debian-12-riscv64-gcc:
>         CONFIG_VM_EVENT=n
>         CONFIG_XSM=n
>   
> -debian-12-riscv64-gcc-randconfig:
> +debian-13-riscv64-gcc-randconfig:

Are we going to have randconfig build test only for Debian-13?

>     extends: .gcc-riscv64-cross-build
>     variables:
> -    CONTAINER: debian:12-riscv64
> +    CONTAINER: debian:13-riscv64
>       KBUILD_DEFCONFIG: tiny64_defconfig
>       RANDCONFIG: y
>       <<: *riscv-fixed-randconfig
> diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
> index 2f6f3affa637..9acd984d294c 100644
> --- a/automation/gitlab-ci/test.yaml
> +++ b/automation/gitlab-ci/test.yaml
> @@ -705,7 +705,7 @@ qemu-smoke-riscv64-gcc:
>     script:
>       - ./automation/scripts/qemu-smoke-riscv64.sh 2>&1 | tee ${LOGFILE}
>     needs:
> -    - debian-12-riscv64-gcc-debug
> +    - debian-13-riscv64-gcc-debug

The same as above, are we going to run smoke tests only for Debian-13?

If the answer to this and the question above is â€œyes,â€ then (probably
keeping the order â€” first debian-12, then debian-13 â€” for the jobs):
  Reviewed-by: Oleksii Kurochko<oleksii.kurochko@gmail.com>

Thanks.

~ Oleksii

>   
>   qemu-smoke-ppc64le-powernv9-gcc:
>     extends: .qemu-ppc64le
--------------jBo8MouCJ84UWa0950Sndq1f
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/10/25 12:12 AM, Andrew Cooper
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:20250809221206.1260861-4-andrew.cooper3@citrix.com">
      <pre wrap="" class="moz-quote-pre">Everything works fine with Debian 13.  Provide two new build jobs, and update
both the randconfig the test jobs.

Signed-off-by: Andrew Cooper <a class="moz-txt-link-rfc2396E" href="mailto:andrew.cooper3@citrix.com">&lt;andrew.cooper3@citrix.com&gt;</a>
---
CC: Anthony PERARD <a class="moz-txt-link-rfc2396E" href="mailto:anthony.perard@vates.tech">&lt;anthony.perard@vates.tech&gt;</a>
CC: Michal Orzel <a class="moz-txt-link-rfc2396E" href="mailto:michal.orzel@amd.com">&lt;michal.orzel@amd.com&gt;</a>
CC: Jan Beulich <a class="moz-txt-link-rfc2396E" href="mailto:jbeulich@suse.com">&lt;jbeulich@suse.com&gt;</a>
CC: Julien Grall <a class="moz-txt-link-rfc2396E" href="mailto:julien@xen.org">&lt;julien@xen.org&gt;</a>
CC: Roger Pau MonnÃ© <a class="moz-txt-link-rfc2396E" href="mailto:roger.pau@citrix.com">&lt;roger.pau@citrix.com&gt;</a>
CC: Stefano Stabellini <a class="moz-txt-link-rfc2396E" href="mailto:sstabellini@kernel.org">&lt;sstabellini@kernel.org&gt;</a>
CC: Shawn Anastasio <a class="moz-txt-link-rfc2396E" href="mailto:sanastasio@raptorengineering.com">&lt;sanastasio@raptorengineering.com&gt;</a>
CC: Oleksii Kurochko <a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>
CC: Doug Goldstein <a class="moz-txt-link-rfc2396E" href="mailto:cardoe@cardoe.com">&lt;cardoe@cardoe.com&gt;</a>
CC: Marek Marczykowski-GÃ³recki <a class="moz-txt-link-rfc2396E" href="mailto:marmarek@invisiblethingslab.com">&lt;marmarek@invisiblethingslab.com&gt;</a>
CC: Victor Lira <a class="moz-txt-link-rfc2396E" href="mailto:victorm.lira@amd.com">&lt;victorm.lira@amd.com&gt;</a>

<a class="moz-txt-link-freetext" href="https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/1975929387">https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/1975929387</a>
---
 automation/gitlab-ci/build.yaml | 22 ++++++++++++++++++----
 automation/gitlab-ci/test.yaml  |  2 +-
 2 files changed, 19 insertions(+), 5 deletions(-)

diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index 3fe539dc5683..f8e45f3467c8 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -329,10 +329,10 @@ debian-13-ppc64le-gcc-debug:
       CONFIG_UBSAN=y
       CONFIG_UBSAN_FATAL=y
 
-debian-12-riscv64-gcc-debug:
+debian-13-riscv64-gcc-debug:
   extends: .gcc-riscv64-cross-build-debug
   variables:
-    CONTAINER: debian:12-riscv64
+    CONTAINER: debian:13-riscv64
     KBUILD_DEFCONFIG: tiny64_defconfig
     HYPERVISOR_ONLY: y
     EXTRA_XEN_CONFIG: |
@@ -727,6 +727,20 @@ debian-12-riscv64-gcc:
     KBUILD_DEFCONFIG: tiny64_defconfig
     HYPERVISOR_ONLY: y
 
+debian-12-riscv64-gcc-debug:
+  extends: .gcc-riscv64-cross-build-debug
+  variables:
+    CONTAINER: debian:12-riscv64
+    KBUILD_DEFCONFIG: tiny64_defconfig
+    HYPERVISOR_ONLY: y</pre>
    </blockquote>
    <pre>Don't you mind to keep an order? So:
  debian-12-riscv64-gcc-debug:
  ...
  debian-13-riscv64-gcc-debug:
  ...

Also, it will make a diff a little bit better.

</pre>
    <blockquote type="cite"
      cite="mid:20250809221206.1260861-4-andrew.cooper3@citrix.com">
      <pre wrap="" class="moz-quote-pre">
+
+debian-13-riscv64-gcc:
+  extends: .gcc-riscv64-cross-build
+  variables:
+    CONTAINER: debian:13-riscv64
+    KBUILD_DEFCONFIG: tiny64_defconfig
+    HYPERVISOR_ONLY: y
+
 .riscv-fixed-randconfig:
   variables: &amp;riscv-fixed-randconfig
     EXTRA_FIXED_RANDCONFIG: |
@@ -739,10 +753,10 @@ debian-12-riscv64-gcc:
       CONFIG_VM_EVENT=n
       CONFIG_XSM=n
 
-debian-12-riscv64-gcc-randconfig:
+debian-13-riscv64-gcc-randconfig:</pre>
    </blockquote>
    <pre>Are we going to have randconfig build test only for Debian-13?

</pre>
    <blockquote type="cite"
      cite="mid:20250809221206.1260861-4-andrew.cooper3@citrix.com">
      <pre wrap="" class="moz-quote-pre">
   extends: .gcc-riscv64-cross-build
   variables:
-    CONTAINER: debian:12-riscv64
+    CONTAINER: debian:13-riscv64
     KBUILD_DEFCONFIG: tiny64_defconfig
     RANDCONFIG: y
     &lt;&lt;: *riscv-fixed-randconfig
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 2f6f3affa637..9acd984d294c 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -705,7 +705,7 @@ qemu-smoke-riscv64-gcc:
   script:
     - ./automation/scripts/qemu-smoke-riscv64.sh 2&gt;&amp;1 | tee ${LOGFILE}
   needs:
-    - debian-12-riscv64-gcc-debug
+    - debian-13-riscv64-gcc-debug</pre>
    </blockquote>
    <pre>The same as above, are we going to run smoke tests only for Debian-13?

If the answer to this and the question above is â€œyes,â€ then (probably
keeping the order â€” first debian-12, then debian-13 â€” for the jobs):
 Reviewed-by: Oleksii Kurochko <a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>

Thanks.

~ Oleksii
</pre>
    <blockquote type="cite"
      cite="mid:20250809221206.1260861-4-andrew.cooper3@citrix.com">
      <pre wrap="" class="moz-quote-pre">
 
 qemu-smoke-ppc64le-powernv9-gcc:
   extends: .qemu-ppc64le
</pre>
    </blockquote>
  </body>
</html>

--------------jBo8MouCJ84UWa0950Sndq1f--


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 08:45:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 08:45:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077105.1438194 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulO9r-0006EB-H4; Mon, 11 Aug 2025 08:45:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077105.1438194; Mon, 11 Aug 2025 08:45: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 1ulO9r-0006E4-Dl; Mon, 11 Aug 2025 08:45:31 +0000
Received: by outflank-mailman (input) for mailman id 1077105;
 Mon, 11 Aug 2025 08:45:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=21ui=2X=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1ulO9q-0006Dw-0Q
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 08:45:30 +0000
Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com
 [2a00:1450:4864:20::536])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8867c500-768f-11f0-a325-13f23c93f187;
 Mon, 11 Aug 2025 10:45:29 +0200 (CEST)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-6180b9e4e74so3409385a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 01:45:29 -0700 (PDT)
Received: from yp-VivoBook-ASUSLaptop-M1503QA-M1503QA.Dlink ([77.52.179.37])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a0a3e80sm1995121866b.47.2025.08.11.01.45.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Aug 2025 01:45: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>
X-Inumbo-ID: 8867c500-768f-11f0-a325-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754901928; x=1755506728; 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=gOdShwPIr5kiLYik+t8QMnDr8E3Is5wCiMPgD2hGSeM=;
        b=UR4gSywtT2i9cL3hiuKIKc/B1cWkP7TLTpfuEwI8gL7qgivhy3jP21Jo/X5imsydDY
         LE/uKj1CWbnMszWXD2v9oiy+sLK7SsPO9jfzzWdLbFGuD/t/AYO0yXaH395IW0cT9yPp
         ZeZLS5KYB0ORNNu5WPdmUuJw5xQwRUBT/aPrOHASPo/Awholk34jGY8Q7B85LrKkIYUC
         5WefiJVY7BG+viKYadbvJ0fF/uzXg2uR4wU9Umbq2fgr99dqvIUfWrBF7n0LCShDBpcH
         kPcFuJkhfIwRTNW0Wr2Q+Ndob6iKQp6DQbyejmfyB9eFAccccG00N8dEHNTRvlS8UPRn
         9vEA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754901928; x=1755506728;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=gOdShwPIr5kiLYik+t8QMnDr8E3Is5wCiMPgD2hGSeM=;
        b=nLfrXFTZU5NMOe+4aUcStG7U6VQsZzskW3ORGL6rsJ9sIImcsRdrPNLP01YKlw5k/Z
         OCyZKbvgWaW0Vq0N2MoHE2NiFsX5jg2VJoW4hvRa+rwLON8WyvhCTGTX3/cegV0AvURd
         7MRtRPv69iIHX0IL1cXmm+N+TQzhHmtyqaVbpFF5dTMjINVTZ0SkCzP7G1hromAWkIl/
         gvtMOvTHDXATKZxUbRMN1wnJD6RHYZfI8BhPuozlqQHnhX07nArkObX+NNwNGO8CGVdK
         3XF5VBpDvCDtOr8CfLidrPWR7THxNeKBvftsDDaRpHIYdAPDOWkzGnBAgbrm8g0Cochk
         aLhg==
X-Gm-Message-State: AOJu0YxG305OEgNrha6vJYxKTuXGOGPi7+BHk7ppNOfnKcUG59Mxyc7V
	m6J2EByHD48/97ZQSAra1P5IGAsoL1riCKxyuz4aw9nNcNq6tcyx690sl7MwHQ==
X-Gm-Gg: ASbGncsDFN1h5+VTeLgS89ttyj0X/FFz9+Cvxo1+KNvGjITCzryihuxcG88qsdrmdTR
	YEHcPKarhUfjURIchRBD1gaBE+fpNEVcWRLFti3bb6kAzJ6rSN3JmzKDlVKO87zDKypI+yGIu6+
	ihh9hNNwWAzL3tRKwsUWyjloR2aSwJfnttI1rV6WvlskPZXd6BOFHdm0BU8T65dkQ6rdPKtrxHX
	6HbPTfu+9CIecrPv2PYAY2XeiZgj42eRfaRK7HGr0RPrytTD5s0bbYERrOjD+0fQQO5CL5M13Yj
	sCIpZzNzje7HCHSuKrtQDMiC6Lly17qQsXK9Xa45IWqilVFl8KpQpfncQT5ruc/61ZGBziwqoOT
	nTOO2X1cFiL6pshqlNQmC0xvD7jYsfuUdmdy2bm3fayql2f+CnOEJzK2VmeuTfx6JbxRse+8sRD
	3nkA==
X-Google-Smtp-Source: AGHT+IGUlIxSW/LjM+RZqJFYDftesPxQGIv1eDYD5ommX9a3Vaa6gtSD5P6RCX2uVd6PP4UC4nCv/g==
X-Received: by 2002:a17:907:971f:b0:ae3:cc60:8ce7 with SMTP id a640c23a62f3a-af9c64545admr1117750466b.19.1754901928057;
        Mon, 11 Aug 2025 01:45:28 -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>,
	Denis Mukhin <dmukhin@ford.com>
Subject: [PATCH v2] xen/arm: irq: add missing spin_unlock() in init_local_irq_data() error path
Date: Mon, 11 Aug 2025 11:45:20 +0300
Message-ID: <f983bb7c3c9f0912da7e7f2fc22384ce1081a7a3.1754901835.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.48.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

If init_one_irq_desc() fails, init_local_irq_data() returns without
releasing local_irqs_type_lock, leading to a possible deadlock.

Release the lock before returning to ensure proper cleanup.

Fixes: 2bb32b809250 ("xen/irq: Propagate the error from init_one_desc_irq() in init_*_irq_data()")
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
Reviewed-by: Denis Mukhin <dmukhin@ford.com>
---
 xen/arch/arm/irq.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
index 4bbf0b0664..02ca82c089 100644
--- a/xen/arch/arm/irq.c
+++ b/xen/arch/arm/irq.c
@@ -94,7 +94,10 @@ static int init_local_irq_data(unsigned int cpu)
         int rc = init_one_irq_desc(desc);
 
         if ( rc )
+        {
+            spin_unlock(&local_irqs_type_lock);
             return rc;
+        }
 
         desc->irq = irq;
         desc->action  = NULL;
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 08:48:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 08:48:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077114.1438204 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulOCW-0006ll-T8; Mon, 11 Aug 2025 08:48:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077114.1438204; Mon, 11 Aug 2025 08:48: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 1ulOCW-0006le-Qb; Mon, 11 Aug 2025 08:48:16 +0000
Received: by outflank-mailman (input) for mailman id 1077114;
 Mon, 11 Aug 2025 08:48:15 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=21ui=2X=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1ulOCV-0006lY-RZ
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 08:48:15 +0000
Received: from mail-lf1-x129.google.com (mail-lf1-x129.google.com
 [2a00:1450:4864:20::129])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id eb3badfe-768f-11f0-a325-13f23c93f187;
 Mon, 11 Aug 2025 10:48:14 +0200 (CEST)
Received: by mail-lf1-x129.google.com with SMTP id
 2adb3069b0e04-55502821bd2so4254900e87.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 01:48: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>
X-Inumbo-ID: eb3badfe-768f-11f0-a325-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754902094; x=1755506894; 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=hqGsWRXWp/HZdOQieC5QgH2PV9Ff0EAfQeIphWwDWg8=;
        b=f6KqDr4AFNhEeMe6sBiA+Da1OBc3UrZ+NushuAdmuTexqrTYGjraqREP4THAXlJfr8
         RURTCznJT7rXKp4UpUEHZtPDpdpv9z5Nedph8uiohgsh6pUvoa3Y64UnrlAFByiPAwI8
         h5Vr+7hkVyXHMkVtOj1fQvleEhz/Md0b+k5WbcIH43USlQAupUvxb1DC3mZwYMKAfrob
         qrjRjSJD0vddCR6gQOpg4K+enSKUp/ne4BoSdgbNZvtklARhKyCkh7zTNxp1tmuWt/t+
         GxCmHYOC6fyb/iRfNDbK33D+e1E4Rtyd2KDo2GettrSpzkdqyMqXRBGkqSs3W+QICcaO
         hGZg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754902094; x=1755506894;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=hqGsWRXWp/HZdOQieC5QgH2PV9Ff0EAfQeIphWwDWg8=;
        b=SBtCsPxTSH0BcBqylgwv+YEURhKWae7UAuiPOO50bE8ZCHojPww0AFlucG4xVjmYgn
         lrpf1DajnWj+Rasc0YzAIMCkWF7qIufmutlTEYE/jWhHW8tvFpxk404ziekWmBEuG8D2
         cixKfZoy92gDA7zfQ6Cd6saRBCvmej4UpJOKvqcD1fqAvUpprx0O0ug10susFDN0vz0i
         Q2s8nw9aKJuR6gG3MQjzFYl1NsJskPynJq6O532K/qYhkKWH9aJ1HdDG134+4l6uSJkX
         ssTp3QSHgvxQs/gcRX3B6KqBqHzkMm4/tydsDl8J+7oc63Uc+0CiAByYNsD3u8Ub43cQ
         BJ7A==
X-Forwarded-Encrypted: i=1; AJvYcCWf3AJcIkZS3Hbyq8GPlWfzprRxhX/kYxEPZjoblHpLqgCEMm8BPlteeLpRovjyPCfiERU8d/ZsQNw=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywd+woO/fBRHF2ZHUPZ1i02aPSnysTqoo9LlgHv0fDxO82cybD6
	mpjVa6132hQ13zPGRg02+7xd6O/7RxPywIob2P6bpwgAcCSNQolFkcmu7nnH/vzyb9DGxyhjXkT
	s1V71EdI2FG+isSKnCnjihxwC8wAXRZ4=
X-Gm-Gg: ASbGncvAeQXVp6PHhoMJ9/40ChLxXM7ZAr8eECCoc9NFluCfx1NABW+GNtKpbSzLt1S
	rjC+k8yl9w2dDYpULccu5wWyvgp82rpRXm1WY6bqYHKvWL5LoGDLDRKyq7NgNV5Dz24VEvUDgy2
	HsMoAok+9XUGc4brimxybCxaFEEduOy7iTqikDnmH6BLPsJSTHQ+KFn1N8jls6ugn8sweDbvVjo
	oetIQ==
X-Google-Smtp-Source: AGHT+IHUk2b7VFDDxFKffd7YN4DgqdGks8yJwuMLGYNPVMHkOT+AKcDp94OpW17PcX2JAQ5279sADMLm9h/4WbTwzsI=
X-Received: by 2002:a05:6512:1043:b0:55b:8ab3:c1a1 with SMTP id
 2adb3069b0e04-55cc012781fmr3201076e87.49.1754902094073; Mon, 11 Aug 2025
 01:48:14 -0700 (PDT)
MIME-Version: 1.0
References: <bd707bd0fd88fc53974a1214313a9b9103162bcc.1754749899.git.mykola_kvach@epam.com>
 <977c6c31-af2a-4108-8b28-172dc3916731@suse.com>
In-Reply-To: <977c6c31-af2a-4108-8b28-172dc3916731@suse.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Mon, 11 Aug 2025 11:48:01 +0300
X-Gm-Features: Ac12FXwfKdgosCmxV3tOTGt6GjUB0-CZ6yOxbGr4JqHR4FtaUSN_gPYRXuMSITk
Message-ID: <CAGeoDV8eB6dFP=kek9CnEOd=w4bJB5-CjO6S6v8Fp=ZJqyDg6w@mail.gmail.com>
Subject: Re: [PATCH] xen/arm: irq: add missing spin_unlock() in
 init_local_irq_data() error path
To: Jan Beulich <jbeulich@suse.com>
Cc: Mykola Kvach <mykola_kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, 
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
	xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Mon, Aug 11, 2025 at 10:53=E2=80=AFAM Jan Beulich <jbeulich@suse.com> wr=
ote:
>
> On 09.08.2025 16:32, Mykola Kvach wrote:
> > From: Mykola Kvach <mykola_kvach@epam.com>
> >
> > If init_one_irq_desc() fails, init_local_irq_data() returns without
> > releasing local_irqs_type_lock, leading to a possible deadlock.
> >
> > Release the lock before returning to ensure proper cleanup.
> >
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
>
> Pretty likely wants backporting, which would best be indicated by a suita=
ble
> Fixes: tag.

I have added the Fixes: tag as suggested and resent the patch.
Thank you for pointing this out.

>
> Jan
>
> > --- a/xen/arch/arm/irq.c
> > +++ b/xen/arch/arm/irq.c
> > @@ -94,7 +94,10 @@ static int init_local_irq_data(unsigned int cpu)
> >          int rc =3D init_one_irq_desc(desc);
> >
> >          if ( rc )
> > +        {
> > +            spin_unlock(&local_irqs_type_lock);
> >              return rc;
> > +        }
> >
> >          desc->irq =3D irq;
> >          desc->action  =3D NULL;
>

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 09:13:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 09:13:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077146.1438219 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulOaw-0002q8-Vi; Mon, 11 Aug 2025 09:13:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077146.1438219; Mon, 11 Aug 2025 09:13: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 1ulOaw-0002q1-St; Mon, 11 Aug 2025 09:13:30 +0000
Received: by outflank-mailman (input) for mailman id 1077146;
 Mon, 11 Aug 2025 09:13:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nn8B=2X=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1ulOav-0002pv-64
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 09:13:29 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6ea06e2d-7693-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 11:13:23 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 50C524EE0744;
 Mon, 11 Aug 2025 11:13:22 +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>
X-Inumbo-ID: 6ea06e2d-7693-11f0-b898-0df219b8e170
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=1754903602;
	b=vzrh74IgDLvYH0LeuDF09Zzm2GDPczQPWQ31fQxjSW+F7l1yIeQ+Y5rGO3niIJeMS8DN
	 LPYt5pG9Wm8oj2rAM2PCITjwlb+NMbhWKQjm4WzeZUbllm8EpvtaALvdgu6VxHmYi7ant
	 tSUevFczpGrCxIshsKIZoNXrQFiFpxgglxV6cIji4S+qnJHknCFE+sd1XnKSME02s1TmV
	 fUSX5vJGV1hXulXRZjlzSpZj5O/HhldMnmswg7vYIysgH0l0V9qpry4+Hky5EqA7E8Qfx
	 Yp0pusnO7IWbpVDo6gobgYtljvz62qyzlylAAh+GaujtKNCD4MB/slQocLo9R/pY7JedD
	 oAdTOfkjW6KRpSimLfzwzhXDAZdjY+d0bvnUuhawiKLz1wtjN445O9tcgVWrYVUYQwIcy
	 opWxmIWXdN7JR2USb8h54Qcq707RaeAN+jnODOI9eKCbkg+D1xQOItHRpqOVMagPgJFCJ
	 0twHD42pB8AePdmSQVil/pBLuEQzbOoJTysT2ru5DvRtGGeRN5eq/WlHNybWJGKNkXK+c
	 6cIp9uC1Q1uEgLxR9wRoDznGJnNqtQo0M/FaAmntVVq2ITtiMb+YeAq6NA0JzQ4cYRhi9
	 77ov9+KKlLF5Ya0dRnr6Q5aEFoadhM5uNMNc7nqO+wAkbqPDXwpebyQ+OllFIGk=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1754903602;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=k8Qtvar8YbFN8TMOa5vQk7H+KLOwckI7poc6ZXfBqbU=;
	b=2VEuvT4ywPsj6ytq+o4KcJaSxJTBhmPF6VopKBdeZylIYS5aM3qzUtwciP4+U6nluE0h
	 nV6tRNmD6JJbRGWIQjgooSXOqdgdFtsEo3MkzxXK8OeYlMxRR/P8CNXZ300k4YlEzVDGO
	 0b99XqDFKN9I/4zl/U6aT9WC0hGYi6COENcJKmXTCpNB57/q9kzeXKkag6eNR5gkV9EkO
	 9DVBlyajoxKeabGZSIvFkJVB6Ez0N8gpiRY/VWqGtwMzn2Fu+OvajUAarAS+d3H2BpgKN
	 URRse/wZK9oe6XpuJBnbWyaoVlPj4ao2uvfvvVstFU5jmyUziWeIXneo/m9DARibIU7PM
	 8twkoGIuE/CkzXw4fa02xqA11TiWgtRafh+8QW8vLRoqlFZH4Cn6cMobIeVkZTnSh6sCC
	 PPbn6QUeHJgpf/aX4W6rtaMY7PSnuL3Gn6mSjJpZB3fvpINwhK/JE/wm2xTob87q4pBRT
	 soAXRji8k2L06OKg6ZcNCFKAzbp9oqljH/y1pmHwwaHNGOe8erQZNaFP28hXrCGEjL2xm
	 ygG2qshK122CMlZ9oiTdfvrarpqVDMZPApfwsXJcYtS5D2i5IDgFF5w1IIcBHEvItLhUU
	 geTHBgO1gsCxqSxzBSYB5pyZsg1cXPtCzUyJRY8J6x02bky/nMELPasFuxBFRNY=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1754903602; bh=sy4XWIXsvu+oCHkQjWNZTb2qFLKm/lHyRlC9QS4Llb8=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=xDV675i5UnkevtsZ36AsRVeC9q25p9+q6yr6Q9jPhWma995RyhyNMI+A5f9F6NHX2
	 Bq33vAfARUU5U4HFfyNvYPf6dOQ/FQirMIDEqybx4qxfl17PKKIQLmaxVyGKbr2sWm
	 QLyB5PrSPkt/cGk/QfrNRUz50iJ+dazg35F7qszCt70xfk11856Q3rycT/7w+8IlBc
	 oWGpJWusvjg/l4zVUagh6a9BtZmmDdqLRB7Hd/JJYp2Y0Re+0WAx1hvg2CYIKTsr+h
	 Tx1vPM7rpZG2IHcffyQ9o2sfH7vDKsXAxoTcOWkU3FyATzYq0ozRpweoTqP1cq0KBK
	 eshh3ULkEDlKQ==
MIME-Version: 1.0
Date: Mon, 11 Aug 2025 11:13:22 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: nicola.vetrini@gmail.com, xen-devel@lists.xenproject.org, Anthony PERARD
 <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan
 Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Stefano Stabellini
 <sstabellini@kernel.org>
Subject: Re: [XEN PATCH] xen: Drop logic for old clang versions.
In-Reply-To: <96b878a1-2a4e-4df3-900c-a2b2142f0638@citrix.com>
References: <e8bb42876317c19aca79f81c3fc48dc3a4fdaf71.1754830862.git.nicola.vetrini@bugseng.com>
 <96b878a1-2a4e-4df3-900c-a2b2142f0638@citrix.com>
Message-ID: <3a1fe9570bdaf5332c93a97c1da38255@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

On 2025-08-11 10:07, Andrew Cooper wrote:
> On 10/08/2025 2:03 pm, nicola.vetrini@gmail.com wrote:
>> From: Nicola Vetrini <nicola.vetrini@bugseng.com>
>> 
>> The enforced toolchain baseline for clang is version 11,
>> therefore this logic is effectively dead code.
>> 
>> No functional change.
>> 
>> Signed-off-by: Nicola Vetrini <nicola.vetrini@gmail.com>
> 
> Thanks for the patch, but your From and SoB lines don't match.Â  Which 
> is
> it supposed to be?
> 
> ~Andrew

The gmail one, git misconfiguration, sorry. Should I resend?

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 09:30:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 09:30:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077157.1438229 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulOqq-0004dZ-A9; Mon, 11 Aug 2025 09:29:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077157.1438229; Mon, 11 Aug 2025 09:29: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 1ulOqq-0004dS-6G; Mon, 11 Aug 2025 09:29:56 +0000
Received: by outflank-mailman (input) for mailman id 1077157;
 Mon, 11 Aug 2025 09:29:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=MOyo=2X=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1ulOqo-0004dM-TO
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 09:29:54 +0000
Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com
 [2a00:1450:4864:20::634])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bcbe3934-7695-11f0-a325-13f23c93f187;
 Mon, 11 Aug 2025 11:29:53 +0200 (CEST)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-af968aa2de4so760406866b.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 02:29:53 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91dfd4b31sm1960350966b.85.2025.08.11.02.29.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 02:29: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>
X-Inumbo-ID: bcbe3934-7695-11f0-a325-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754904593; x=1755509393; darn=lists.xenproject.org;
        h=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=ygEu8Zq34Qj+4eE6Zo2ZjMIiW9SUV/Kk87MPF/tT2VY=;
        b=Se+fbOdXSRtnjVY93xfKRTAdkNeKO7w5QdML5nrEyWeBsIpGtYplrMxyklTGRO62DL
         FtvHnvv6XEclmlvMrlt3SMUpWrL96jzAFtp3GkC/hF+4tSdw1NgieFFS7butWkT19CtI
         SgEPXil/4l8X3w6iCdb+aQ2fvOvUy5IwhOoBu0IZcbgEW+I22BqjFbP/FFEocZrCFyOH
         m4pRxT+Nfp1FEJUorD2R3q+oF+l3/qporEk2yvaoDdV20dtuPzyj1cMgFvKwvDqX6fny
         Jff4yx6C4Wn8sd7mQlskzgoPjuHJa7C1NLt8jBxb4b7LfKCJmsyDcCbdKmjMrfJ70963
         M63w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754904593; x=1755509393;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=ygEu8Zq34Qj+4eE6Zo2ZjMIiW9SUV/Kk87MPF/tT2VY=;
        b=Clh9/46Wu5c5b8zCHYtV93sxwu5Bbb59iBq+mvoUs36LCG9a8ZrAqgXaCEuncL0ck6
         XAN3EXc78Xr51S2sa+2lN27ittKlU0OTGStmm1D2vK8uons1y25hYvbs3bBY4RPVIODE
         XU+3b5DesxS/q7ARQIS17EetI0JfCvVUZ3si/lGOpVEuhdMTcYPnRpytCIJVEeblmK5F
         brOTDX9tgj5ZdnLAphy7Vz1GFrSHR8loDyLR0QlkOg3aHSwzzaHLy3MQNfOKNZIzLYI4
         lS3izbo0W7Es8VWrE0nriao9gSKmr5oKfxu40idJNSExlI+Npr1nrWd66eA6zu53fEtj
         mtrA==
X-Forwarded-Encrypted: i=1; AJvYcCVKJMqVJDQh6kVE1N7Es0aXUO0qsiXBm6Ri1x5czDPKvScCxVLHA+cvtnla9rvHSiDe0T4Pfwnlt1g=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzJt+sF+hzl8dV4nHh5j3N72eqShwJi4aM0ZXU1sh0Lo9B26pcf
	Xs1OSaUGhVUPHvpYUrqPMiXKuoSIvk1yH477P48/tcVaqD/W0+XmUCEL
X-Gm-Gg: ASbGncuqRPurHH/WgFrEpCepcL7+sM5xkkb5yPmr6pCgBnBOhJUrEcveFIwPS7s15qx
	NCGLTphepTPf9+NjcCIAggU2QFDhrQ+yfexoR9sU4ehWjBlpQKMb8JnbkKyf0Fl4ZVNvQMZoE3P
	GFcbkkgS95IsMuW6+FdlKsTOi5tu0zUbLcof7U0/LkIW9/cswcVq8cPC3IJ3o5/dURyZ+w3p6e+
	+cB+xMXooZ/N4PFG+bxbBN9uOcc3neCaHlP6E7Jeq4pYTa02/YWtcNYwnccVdoUponYVNbFZUxN
	9k++znbnnOdehT+/QiV3PtYU2MDM2dcGk2KW6d80gXTdJTK++qJ4E1WB/8GvYh9mTldz0741w6k
	SsiAQzwyPodXN6UfxkrNkfd1NFnmw8NTNB02mjk+FthsJZYj1BdDFxf0heUBiwjuAE/M6xcU=
X-Google-Smtp-Source: AGHT+IFd8UJ5bwzo5FO2pkFNIF2c/faOTe1hNAdhQI7m35AbUmaa/g9grOw+c3n8D7pUpk1qvlr0yw==
X-Received: by 2002:a17:906:730a:b0:af9:c31c:eeca with SMTP id a640c23a62f3a-af9c6546458mr1234671566b.48.1754904593108;
        Mon, 11 Aug 2025 02:29:53 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------ZP86uGEkdA3IPxgR203hpA6P"
Message-ID: <89787fe2-3eea-44b7-ad38-82d0d09be06f@gmail.com>
Date: Mon, 11 Aug 2025 11:29:49 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 11/20] xen/riscv: implement function to map memory in
 guest p2m
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <cover.1753973161.git.oleksii.kurochko@gmail.com>
 <e00dcbecf8f0dbe863628dcc45526100f9ee86a3.1753973161.git.oleksii.kurochko@gmail.com>
 <e7b4b220-4da9-4a87-a4d6-179350849eaa@suse.com>
 <31c75a64-8b69-47ac-9e08-6010fa6cfb9c@gmail.com>
 <ffec4fe0-cca7-40fb-a870-6fdf0201f44a@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <ffec4fe0-cca7-40fb-a870-6fdf0201f44a@suse.com>

This is a multi-part message in MIME format.
--------------ZP86uGEkdA3IPxgR203hpA6P
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 8/11/25 9:28 AM, Jan Beulich wrote:
> On 08.08.2025 15:46, Oleksii Kurochko wrote:
>> On 8/5/25 5:20 PM, Jan Beulich wrote:
>>> On 31.07.2025 17:58, Oleksii Kurochko wrote:
>>>> +/* Unlock the flush and do a P2M TLB flush if necessary */
>>>> +void p2m_write_unlock(struct p2m_domain *p2m)
>>>> +{
>>>> +    /*
>>>> +     * The final flush is done with the P2M write lock taken to avoid
>>>> +     * someone else modifying the P2M wbefore the TLB invalidation has
>>> Nit: Stray 'w'.
>>>
>>>> +     * completed.
>>>> +     */
>>>> +    p2m_tlb_flush_sync(p2m);
>>> Wasn't the plan to have this be conditional?
>> Not really, probably, I misunderstood you before.
>>
>> Previously, I only had|p2m_force_tlb_flush_sync()| here, instead of
>> |p2m_tlb_flush_sync()|, and the latter includes a condition check on
>> |p2m->need_flush|.
> Just to re-iterate my point: Not every unlock will require a flush. Hence
> why I expect the flush to be conditional upon there being an indication
> that some change was done that requires flushing.
>
The flush is actually conditional; the condition is inside
|p2m_tlb_flush_sync()|:
   void p2m_tlb_flush_sync(struct p2m_domain *p2m)
   {
     if ( p2m->need_flush )
       p2m_force_tlb_flush_sync(p2m);
   }

~ Oleksii

--------------ZP86uGEkdA3IPxgR203hpA6P
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/11/25 9:28 AM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:ffec4fe0-cca7-40fb-a870-6fdf0201f44a@suse.com">
      <pre wrap="" class="moz-quote-pre">On 08.08.2025 15:46, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">On 8/5/25 5:20 PM, Jan Beulich wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">On 31.07.2025 17:58, Oleksii Kurochko wrote:
</pre>
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">+/* Unlock the flush and do a P2M TLB flush if necessary */
+void p2m_write_unlock(struct p2m_domain *p2m)
+{
+    /*
+     * The final flush is done with the P2M write lock taken to avoid
+     * someone else modifying the P2M wbefore the TLB invalidation has
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">Nit: Stray 'w'.

</pre>
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">+     * completed.
+     */
+    p2m_tlb_flush_sync(p2m);
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">Wasn't the plan to have this be conditional?
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
Not really, probably, I misunderstood you before.

Previously, I only had|p2m_force_tlb_flush_sync()| here, instead of
|p2m_tlb_flush_sync()|, and the latter includes a condition check on
|p2m-&gt;need_flush|.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Just to re-iterate my point: Not every unlock will require a flush. Hence
why I expect the flush to be conditional upon there being an indication
that some change was done that requires flushing.

</pre>
    </blockquote>
    <pre>The flush is actually conditional; the condition is inside
<code data-start="94" data-end="116">p2m_tlb_flush_sync()</code>:
  void p2m_tlb_flush_sync(struct p2m_domain *p2m)
  {
    if ( p2m-&gt;need_flush )
      p2m_force_tlb_flush_sync(p2m);
  }

~ Oleksii</pre>
  </body>
</html>

--------------ZP86uGEkdA3IPxgR203hpA6P--


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 09:34:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 09:34:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077165.1438238 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulOv0-0006IC-P8; Mon, 11 Aug 2025 09:34:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077165.1438238; Mon, 11 Aug 2025 09:34: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 1ulOv0-0006I5-MG; Mon, 11 Aug 2025 09:34:14 +0000
Received: by outflank-mailman (input) for mailman id 1077165;
 Mon, 11 Aug 2025 09:34:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=92re=2X=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ulOuy-0006Hx-Ju
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 09:34:12 +0000
Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com
 [2a00:1450:4864:20::435])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 566c08d1-7696-11f0-a325-13f23c93f187;
 Mon, 11 Aug 2025 11:34:11 +0200 (CEST)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-3b79bd3b1f7so1887519f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 02:34:11 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3b79c3ad803sm39660387f8f.6.2025.08.11.02.34.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 02:34: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>
X-Inumbo-ID: 566c08d1-7696-11f0-a325-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754904851; x=1755509651; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=8Cz/d1D2rU6ODDYD7qOW4j4fo0XFs1scsOGjxN01U+A=;
        b=Vh7ZrfnbYXTz91jjEFKyu8PcyhAGU6PIyOYURD/Q4u5tpm/eeymdwQShBBV5Zt1SPb
         OiaTSeq4GR18l4E959aFSlpv0C1LvyMO9AeC8twg+IymXvE/tanodIWk27Lq8/Z0B9+a
         pJFqp6IxS405q0edR6Gpk/IdwY7QB6z643unE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754904851; x=1755509651;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8Cz/d1D2rU6ODDYD7qOW4j4fo0XFs1scsOGjxN01U+A=;
        b=R9f3GKgROcZIPV6INoKDRCmOdiLU1juxrA5H3WHSMaIx7bnDMokgkBYV0UbTpeOwJ2
         sdBBt4gkq4xn375QfspCBeZsAn77Z59q1cSL5xiLdsZauR3Ik4Z+VbgeSh9p/rxd47Md
         xhEfyksStmW45xCCVx9cP3jGMPr8Wb6poRLiF/1i1xB1GYS9swGQ+57Gng14gz19NhIe
         xGwxlyveNhk86MAaJfAHw5PmVoX7ynyeIOo7+osW6X6L6kEnwIPzdBfIgqBxDnVtIdGU
         VXt4s9uhkwpQjPikSgQQI3Z1D0RrgDLkLwarwsr/PVLPbqPKvigNFYRYT3GB9XNl/7+0
         73CQ==
X-Forwarded-Encrypted: i=1; AJvYcCUsB5LTFpUES8oDYNKXFfbVP9BgpX/JVoMaaucb5hDVtGfUt5VjzopFj8cAI6ASAgSyXjuNYzP7h8g=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzO/vnsZfCL/jmB7egTgVWOxGunpj490EVoAWSsLxF/t4opbB8w
	IPYxUzDx6ElU41vaWtghiMphJOyjHXuJATm1nu0hx5CQcGcAzEcKYB39ihd+Yh/rz/A=
X-Gm-Gg: ASbGncv8UkVO3raSu0Y5iKnna/z1QbAga5jrX1DCg8RUn5hWUYi3FbPKnZVCeNIHVtD
	Y4UdjJZlLb2ZuncSaLWmzer1Xk/N3dvNDVQemnF96MaNGDxJ2RJtCi1B4nWatAifEi6YvGTO7p7
	fuqhJSUG1EiSja0KKvfWOVJVQYHos1kIK9kokSruaoDiExAGbPBYzBHbKstGiAwW5uzcLadi+w+
	oiXfa/KSM6xd61wtAC8QFPKkc51GdLr77fbB6FB4lv36bO/FYGJeL1jOStEd5jzH7fVhwQXwEry
	/AZpOlXOHis6CLw4CCEBRIk8rZqVmQtT+GT6cR7/qsPICqQAnB+qVGHb6r23jK32u5z4ksQc1L5
	xnsNktCeEygjA/aYvKgVVmTYBbrYdJEFw4EyKBscjmXn0ily+l/4Fmw3NN4+46mWgU1/Z
X-Google-Smtp-Source: AGHT+IEQZ7ByTq2SeYaVU30pzH0vZBcachC15kCFt3Y1t/KhmeeyoaSEdQuItA2RapOOleym1Y7cRA==
X-Received: by 2002:a05:6000:25c7:b0:3b7:970d:a565 with SMTP id ffacd0b85a97d-3b900b551c7mr9589869f8f.46.1754904851086;
        Mon, 11 Aug 2025 02:34:11 -0700 (PDT)
Message-ID: <80a714e6-0c9b-44af-b786-6b8b53ea9e25@citrix.com>
Date: Mon, 11 Aug 2025 10:34:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH] xen: Drop logic for old clang versions.
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: nicola.vetrini@gmail.com, xen-devel@lists.xenproject.org,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <e8bb42876317c19aca79f81c3fc48dc3a4fdaf71.1754830862.git.nicola.vetrini@bugseng.com>
 <96b878a1-2a4e-4df3-900c-a2b2142f0638@citrix.com>
 <3a1fe9570bdaf5332c93a97c1da38255@bugseng.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <3a1fe9570bdaf5332c93a97c1da38255@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/08/2025 10:13 am, Nicola Vetrini wrote:
> On 2025-08-11 10:07, Andrew Cooper wrote:
>> On 10/08/2025 2:03 pm, nicola.vetrini@gmail.com wrote:
>>> From: Nicola Vetrini <nicola.vetrini@bugseng.com>
>>>
>>> The enforced toolchain baseline for clang is version 11,
>>> therefore this logic is effectively dead code.
>>>
>>> No functional change.
>>>
>>> Signed-off-by: Nicola Vetrini <nicola.vetrini@gmail.com>
>>
>> Thanks for the patch, but your From and SoB lines don't match.Â  Which is
>> it supposed to be?
>>
>> ~Andrew
>
> The gmail one, git misconfiguration, sorry. Should I resend?
>

No need.Â  I can fix up on commit.Â  Thanks.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 09:35:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 09:35:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077172.1438249 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulOw8-0006mq-1u; Mon, 11 Aug 2025 09:35:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077172.1438249; Mon, 11 Aug 2025 09: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 1ulOw7-0006mj-V9; Mon, 11 Aug 2025 09:35:23 +0000
Received: by outflank-mailman (input) for mailman id 1077172;
 Mon, 11 Aug 2025 09:35:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ku41=2X=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ulOw6-0006mb-6t
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 09:35:22 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7f45a130-7696-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 11:35:20 +0200 (CEST)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-6182ea5a6c0so1112113a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 02:35: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
 a640c23a62f3a-af91a21e44csm1972179466b.113.2025.08.11.02.35.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 02:35: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>
X-Inumbo-ID: 7f45a130-7696-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754904920; x=1755509720; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=xu/o5lhozpSl2swzBnM4sfNjUphVc7yoGvbpld/MyxU=;
        b=IWTo2JRH1RkSxIcVuB8nFsJ4t3EwShH66NbwjgBH7UZasLyZE4Du5Q1Gtpb1iWFOvh
         Zc6jNSdmGDR1a9TUCRHy+ZaaohrvkRImpfr6nyWGZjhOaTk6eDZIHwTwGXm1Bpvuv4SS
         HkJsEUUXZDpcx3mm0APeb4EV0o0pfxq00OjUyNzl18INk+deQlU2THayGvP1kE9El3rX
         Kmvlesl9FHTt/P0M4fcw3gNGpsRYcgg88dn9NEY/SB4mS3uIW0Pgn0W4ljzygJFQDPN1
         KP4ajsjqIBNC5rgTERoFNp6SeKcTftyts2dnEprFmbxcHPs1J5y2LSvOt+8nsPSsHx7o
         4oeQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754904920; x=1755509720;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xu/o5lhozpSl2swzBnM4sfNjUphVc7yoGvbpld/MyxU=;
        b=DZmc127tbnD440rnWcH+U6cJT2lgwpULO6uYOvHg+d2PGIrYD20dVIyRtuacRIPQkX
         BVCnmt5O31MF6ZguVt9RpwpVSuD2Qm7QAEnN9X1LWcw2uJeYXk/X+rO99gkQiIrlp0J0
         u5MhASv1CVCEC0HNjmv0ILetjFkLutino54tKRG1KSSj1lNhqoI7YYpvnMLkeAMhPiu/
         YCSZSqr/QcRb0Qmzo9EvYGv3DfMljTfOWnBQrUkSm/5YgCMwWyyJ34CrddMWIlm6SxGF
         Dchd81KOXJIuffhrgeNh9mcwiGDtJBSCStHcFXVx5pMkrZjG7A3T68vg2c3Y2l10wsJS
         avXA==
X-Forwarded-Encrypted: i=1; AJvYcCWFzDAdOcZTkKBTc24MzjPhivAd6RqTGSqQV+Ownboj0csyXhkVFdSMaAH7sL0oMyK+z+r752ix2vQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyWv6nabrQiT8u27IaLNY1JgtLbjV+KUr16p2kOVdLIBEG8nXOL
	3/I+ucEfbKMnyQVQy9eM6yHIseKe7eNziTCZfhVul4iZ6hsCe28kLMuyCE1MQddpeg==
X-Gm-Gg: ASbGnct6aGhceRKcXsD6EMIhNPg9Mj3QCVwqFlZmDVQZtgf6LzJ+TqOKWRw/sgiebHQ
	44cBqId52BdmHxZUOL2ejWidIaFkO4+GL1va8NZrV2C0dirp4RJ8S3e6WfO2Oc0cyA50JPhZR3G
	xuD6WNAup4DeBxXozePOocCT3xnhgI7Zkdm2apQXPNtzS8DzDio5LWWLP4iMAj+F4PdKuxK/IdT
	HLcLhO7hbuxsh+nVv+OMRR0/suXGV+z5VAI9QIC49Dr0OFVG+WnjBSjnYknEOaoVEKioSv4RdMk
	r0Zz97xttBtTea7kSn2FJVcmnI+dLW86kL5ZngFvPuM8MJQwZZQBD066jg+NTbP2gcanZQlUJ9O
	3J2l4s/BguA2poY0P4zw9nAAJhGmpsMGd7d/eyK7RkJb/xTHo2OXbOF2E7XeIMfm60irq63veWj
	G2O15q25k=
X-Google-Smtp-Source: AGHT+IFUykwHz4HJem7pDZXoFKquzfKda0fMMlFcJg0nwG12IixG21hmUXZ9W6e2UD+KpGWJZmm6lw==
X-Received: by 2002:a17:907:72c3:b0:af9:6e2b:f30c with SMTP id a640c23a62f3a-af9c64d4ac0mr1061771566b.34.1754904919572;
        Mon, 11 Aug 2025 02:35:19 -0700 (PDT)
Message-ID: <c913ead7-46f4-4906-821e-2289d0f30b63@suse.com>
Date: Mon, 11 Aug 2025 11:35:21 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 11/20] xen/riscv: implement function to map memory in
 guest p2m
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <cover.1753973161.git.oleksii.kurochko@gmail.com>
 <e00dcbecf8f0dbe863628dcc45526100f9ee86a3.1753973161.git.oleksii.kurochko@gmail.com>
 <e7b4b220-4da9-4a87-a4d6-179350849eaa@suse.com>
 <31c75a64-8b69-47ac-9e08-6010fa6cfb9c@gmail.com>
 <ffec4fe0-cca7-40fb-a870-6fdf0201f44a@suse.com>
 <89787fe2-3eea-44b7-ad38-82d0d09be06f@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: <89787fe2-3eea-44b7-ad38-82d0d09be06f@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.08.2025 11:29, Oleksii Kurochko wrote:
> 
> On 8/11/25 9:28 AM, Jan Beulich wrote:
>> On 08.08.2025 15:46, Oleksii Kurochko wrote:
>>> On 8/5/25 5:20 PM, Jan Beulich wrote:
>>>> On 31.07.2025 17:58, Oleksii Kurochko wrote:
>>>>> +/* Unlock the flush and do a P2M TLB flush if necessary */
>>>>> +void p2m_write_unlock(struct p2m_domain *p2m)
>>>>> +{
>>>>> +    /*
>>>>> +     * The final flush is done with the P2M write lock taken to avoid
>>>>> +     * someone else modifying the P2M wbefore the TLB invalidation has
>>>> Nit: Stray 'w'.
>>>>
>>>>> +     * completed.
>>>>> +     */
>>>>> +    p2m_tlb_flush_sync(p2m);
>>>> Wasn't the plan to have this be conditional?
>>> Not really, probably, I misunderstood you before.
>>>
>>> Previously, I only had|p2m_force_tlb_flush_sync()| here, instead of
>>> |p2m_tlb_flush_sync()|, and the latter includes a condition check on
>>> |p2m->need_flush|.
>> Just to re-iterate my point: Not every unlock will require a flush. Hence
>> why I expect the flush to be conditional upon there being an indication
>> that some change was done that requires flushing.
>>
> The flush is actually conditional; the condition is inside
> |p2m_tlb_flush_sync()|:
>    void p2m_tlb_flush_sync(struct p2m_domain *p2m)
>    {
>      if ( p2m->need_flush )
>        p2m_force_tlb_flush_sync(p2m);
>    }

Hmm, I'd consider this misleading function naming then. Especially with
"force" and "sync" being kind of redundant with one another already anyway.
See x86'es naming.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 09:37:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 09:37:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077184.1438259 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulOyU-0007Pu-GB; Mon, 11 Aug 2025 09:37:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077184.1438259; Mon, 11 Aug 2025 09:37: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 1ulOyU-0007Pn-DY; Mon, 11 Aug 2025 09:37:50 +0000
Received: by outflank-mailman (input) for mailman id 1077184;
 Mon, 11 Aug 2025 09:37:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nn8B=2X=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1ulOyT-0007Ph-9B
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 09:37:49 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d77c4386-7696-11f0-a325-13f23c93f187;
 Mon, 11 Aug 2025 11:37:48 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id F34804EE0744;
 Mon, 11 Aug 2025 11:37:46 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d77c4386-7696-11f0-a325-13f23c93f187
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=1754905067;
	b=TpoGD1L2+fY/HabGhqi3AyvB0j6fnspRCTaQsDcv4irAa36GEeUyYXMUNfksJvxqVITE
	 K5UANGizzf+m+oJ638rifzJoJj+ByOwFWS2R2vD0s8cBaTnoDZunprMn0iKmNtiZqXMpG
	 vDdcLJYMRCsV6PsCm8ROI6pYMRzDbka9Y/ekf4UXT9KceDQk+ChUyLofCZgvK0HeDHeUO
	 OKuqTsLqe3X2dEFvngSMnIcbk5bVUhQbmcJn6czwOBw8VI9tQ6WoBL2mEG/rDjx02TN/O
	 Wlk2yKVu1koLyPU+X76Q+vPzZfq/5UMvUzv9oEN/JRZL9wck1goHFVHQcRAdv9PqDLpgE
	 j2HvzeDH1hhVotXp7ZY8ZGh+ZnJFUWraCfxpkxopVycdbCZC+lCFA7AjJ+rV0n4Fl1ZkK
	 kc5iZzjVBN/6JsyBNy3togwG/i7i32bp518uW+S6JtrPZl+dupbncQFfWlyIlinl+8HlK
	 jJvC6++PGZCsIV7q2F3Jse5NIKMWXul1P31NVNwBudy/3RXhxoDK/HBmhMxkh/FJFZaq4
	 SIt+aSwbs2++LaoQZm6STngO1QTYNUdCEVAJ+L3j/McSAh7AgZS0U9X23Bo7xNODCuIKh
	 xyr2sGFIP2Ek6zTdwlfc89deJKeL0c9ZLAVwigVLdo6B1IzU/fNuNCWmutrVJUc=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1754905067;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=B+VCLIM59gNO7oGRL5RbaIyllKvsSR+p7SZBqqqyJgc=;
	b=rsk7fDjJx/QcV3mHeCFtevo7ZMugQvqoObBdB5BWOeYUlirQ03Jb2CM6wpCYg6AycjA7
	 h/8705csLGzt93uaqwCcfBloPHRcGCB7DsGbMj3sUHEAdwHZlfZCZDYw+NUkFFxTFW/eR
	 0YTvHiCw5HGyH5Tj9nKh/B3Bbovl1lNQpc9ggOql9QV8o1+PnPiWvYXUYl8CXOPJwXBEr
	 +/H0TnTYp+AzOHig74l1CNfCVJMHvrP+XgLgogJ4XlvlOtUTsq0VtQWop9eyoao5cAPmu
	 NdipGi1jSHa5F79xWgqVDmse+iZxGtMI/hfrAFygIi5/dimU4ZTCbHWmzsypgchu25M/y
	 I7TlbSxxVyRU4VbEaKKbXCC6+lnP1DQ88aXkHphbEsRXkFXLOdffk9VViWQgcl9QnsAUL
	 Oxsg/qpMYJiiPz7G5BZiu1jJDebQ/pmO4RXFfHagtzfSnIVxpxLQr7UUQ7tY3TYZ0JG6s
	 yg1yFFMmfc0nU55BArxruJ8a17b0IYcA8PmoZVGctrPQL9JqrFNb1Ig30QcAIkFTA47BN
	 vMuyrIDYX7zdgXhOqC3m61InbTR7jpMGEh7A8jYx2/gzE/HOheaW3F8vZuGVwo66b5Qpn
	 sA3iHSvG3ZAsd2D0RAJa+M+sFnaTyXE0ww80X8q4k1p7mXL92ZrKwpS0WKcwm0o=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1754905067; bh=fPizuQcs0OTx9Ca+iCbtlDW9LGWCBhL4ud03pLLkJIA=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=ZEhAbXw6s11UnP16cY3+bUTmpRGJ4oasM8DryrJph9YJOe1jIvN4vo0y7PI7oL70z
	 NUOwq4d4DJAufOop0H8y7LsiI+3FocCHDJHWDRRBRHYJxAEieWGGWVgTTgHYEbEcbW
	 Z/IxzlZBMUPPu8IOIc7/8yawBx822O1QSWPc+41sLF7RtwX3GAtBhWdtxt1IEoNNU9
	 0lBASq0j8oYsQ4UxUGkI32icLB5QGcf81YuRp/L7qy/S6oenzSEKUkr+wz2AdYPwCW
	 OG/E5wbF87GoWbSydIhLAo+XbXPUV8hBXcrdYhIUwTRs1evw21PNaV7fnXRwTgfnZu
	 S+qD9Quli3mVw==
MIME-Version: 1.0
Date: Mon, 11 Aug 2025 11:37:46 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: nicola.vetrini@gmail.com, xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN PATCH] xen: Drop logic for old clang versions.
In-Reply-To: <aJmgCv4wgl-IHupn@macbook.local>
References: <e8bb42876317c19aca79f81c3fc48dc3a4fdaf71.1754830862.git.nicola.vetrini@bugseng.com>
 <aJmgCv4wgl-IHupn@macbook.local>
Message-ID: <2ca7082120df5e1ad6a29582d6dfb215@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

On 2025-08-11 09:47, Roger Pau MonnÃ© wrote:
> On Sun, Aug 10, 2025 at 03:03:53PM +0200, nicola.vetrini@gmail.com 
> wrote:
>> From: Nicola Vetrini <nicola.vetrini@bugseng.com>
>> 
>> The enforced toolchain baseline for clang is version 11,
>> therefore this logic is effectively dead code.
>> 
>> No functional change.
>> 
>> Signed-off-by: Nicola Vetrini <nicola.vetrini@gmail.com>
> 
> Acked-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> 
>> ---
>> Mentioned in https://gitlab.com/xen-project/xen/-/issues/201
>> ---
>>  xen/common/coverage/llvm.c   | 4 ----
>>  xen/include/xen/self-tests.h | 9 +--------
>>  2 files changed, 1 insertion(+), 12 deletions(-)
>> 
>> diff --git a/xen/common/coverage/llvm.c b/xen/common/coverage/llvm.c
>> index 50d7a3c5d301..517b2aa8c202 100644
>> --- a/xen/common/coverage/llvm.c
>> +++ b/xen/common/coverage/llvm.c
>> @@ -44,12 +44,8 @@
>>      ((uint64_t)'f' << 16) | ((uint64_t)'R' << 8)  | ((uint64_t)129)
>>  #endif
>> 
>> -#if __clang_major__ >= 4 || (__clang_major__ == 3 && __clang_minor__ 
>> >= 9)
>>  #define LLVM_PROFILE_VERSION    4
>>  #define LLVM_PROFILE_NUM_KINDS  2
>> -#else
>> -#error "clang version not supported with coverage"
>> -#endif
> 
> Rant: most of the LLVM coverage stuff is already kind of dead code, as
> the format of the data changes between versions and there's no way for
> LLVM to generate the blob itself using a builtin function or
> similar.  We haven't kept up with new formats, and now it's not
> possible to parse the output coverage data when using newish LLVM
> versions.
> 
> Linux converts it's LLVM coverage data to gcov format (which AFAIK is
> way more stable), and exports it in gcov format.  We should consider
> importing that from Linux.
> 
> Thanks, Roger.

Fair point. Generally I found coverage reports generated using LLVM 
tooling a bit more informative than gcov's, but I don't know how much 
work would it be to adapt Xen for newer versions of LLVM.

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 09:51:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 09:51:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077194.1438268 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulPBG-00022i-J5; Mon, 11 Aug 2025 09:51:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077194.1438268; Mon, 11 Aug 2025 09:51:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulPBG-00022b-GI; Mon, 11 Aug 2025 09:51:02 +0000
Received: by outflank-mailman (input) for mailman id 1077194;
 Mon, 11 Aug 2025 09:51:01 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=92re=2X=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ulPBF-00022U-0u
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 09:51:01 +0000
Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com
 [2a00:1450:4864:20::32d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ae7c7f93-7698-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 11:50:58 +0200 (CEST)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-459e794b331so24820165e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 02:50:58 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-458f713eb44sm371093015e9.14.2025.08.11.02.50.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 02:50:57 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ae7c7f93-7698-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754905858; x=1755510658; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=VctuL99TGMSbM9k2sDcx8mKeApKJEWYgjDa2qFkfm+U=;
        b=qX30mlkhNJy+OJ0jws4CnrqwIJiwzAtrSHm+67Zn2KxnX1+70QE3hO5Nm7JCl3aTF/
         3Y2QvpmpjPdnmI6odI3JXAKyya9iylkRQhu8Y2yKaSGS2SFZ14G50nQAJKvH+2QSi2n8
         SuvcYtZlfGO2h/rJXuNkS5nIG6mlUbqiud8O4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754905858; x=1755510658;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=VctuL99TGMSbM9k2sDcx8mKeApKJEWYgjDa2qFkfm+U=;
        b=TA89phn2AJirh6h3VCPR3Pdi7dtYysF+HzIJvD+JBYht6CvBX1qYAxDMsg+h2HF3yO
         Cec/ZG/+DhqHT7XeGgZ1sfXj3DLECXC7RJJXncrRmtapDfzYUtNHsEdEvbGmWuf1F931
         jlxjOjVgyJB88CFta+2XcmuiSGxCbxPRRGd6KYKu0yySVMA7vQUqPr/d2Ie7sKSUYpHF
         i/+KxsOTBPbNfRd/sQV/BxPEW9roESLN/Q053Py3bceUFGxmkoMkfcYZt4edzgO0BxcC
         Mfpdu3QDDEUOSU9zuK7Vbeddk2oJMjx3E4U9Dk+YuqLatvHar1zDYuSgXjyBt9vsOM09
         LDAA==
X-Forwarded-Encrypted: i=1; AJvYcCXRFfJVvwLJPoA8FDpQjL6CFUo8ZaBPgnTx0Ej0MdHAuyVUGJwBBmw17Ozvf3JkDq2sj++d3agVcok=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzJdqt/dCAtcwKWTAlusjNlIc/MRusRncegAcMHIHzxWw9A+SMW
	2LYXgpZpmbvORjJGHRIDWObJxr5Ja1L16Rqny+MpE4dUu7Ucj3EdB/a19kjQA4Q+DBI=
X-Gm-Gg: ASbGncv9n0PjpAPO2xfABerM4goobfMNqo6Lvq6kKCuMa3dJiOLIx53FzbU03j9T63i
	LZyKTRvRHHem+YdyApUwM7S0dnNSUb+4oOiP24KRR//E7yfvDnwRfmJj2pLUupirsdSbtWy8Z6x
	eA65cjfNaY9+akryY4sS2aoiBktXDtYuG7K/qlrj/Y2ZXbKPZwp90oe08ZB85IfTlUDiY7vwVsC
	BLEZpnpwM4Gn6mMl2j+KqyGaZl1XEFK/ottss0TNdwibV9ur+ALq2gN2uZc6j0LP9ChdioZVs9u
	AjQsn2jNhgZ/Ol5aLTxGc8J3BclAnvAf11f8JgxZ6KMHx1i7bY7TrxfFVmXoCEahKxjRoMjlZDw
	Ausy0W10MwPxtIoY6Awnxucd3gmMIuPTSAFXIoP1TmFJVNUkFC0avlC+f2cZEzRMBBzmp
X-Google-Smtp-Source: AGHT+IHe7JjdCabchw4vqGyYXQkhiLINMsVkJ1ZSJ2yhu3FIkDhmrRnDUL1L1Hv6jH7JFMbcmYgJRw==
X-Received: by 2002:a05:600c:1d01:b0:459:dba8:bb7b with SMTP id 5b1f17b1804b1-459f4ecf85cmr111572515e9.13.1754905857805;
        Mon, 11 Aug 2025 02:50:57 -0700 (PDT)
Message-ID: <0d78dd8e-af92-4b29-9706-e08c2c06ee89@citrix.com>
Date: Mon, 11 Aug 2025 10:50:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] RFC x86/msr: Use WRMSRNS $imm when available
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808222013.1071291-1-andrew.cooper3@citrix.com>
 <e81bc459-347c-4eb9-8f8e-ada25fe8966f@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: <e81bc459-347c-4eb9-8f8e-ada25fe8966f@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/08/2025 9:16 am, Jan Beulich wrote:
> On 09.08.2025 00:20, Andrew Cooper wrote:
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> ---
>> CC: Jan Beulich <JBeulich@suse.com>
>> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
>>
>> This is on top of the FRED series for the wrmsrns() cleanup, but otherwise
>> unrelated.
>>
>> The code generation isn't entirely ideal
>>
>>   Function                                     old     new   delta
>>   init_fred                                    255     274     +19
>>   vmx_set_reg                                  248     256      +8
>>   enter_state_helper.cold                     1014    1018      +4
>>   __start_xen                                 8893    8897      +4
>>
>> but made worse by the the prior codegen for wrmsrns(MSR_STAR, ...) being mad:
>>
>>   mov    $0xc0000081,%ecx
>>   mov    $0xe023e008,%edx
>>   movabs $0xe023e00800000000,%rax
>>   cs wrmsr
>>
>> The two sources of code expansion come from the compiler not being able to
>> construct %eax and %edx separately, and not being able propagate constants.
>>
>> Loading 0 is possibly common enough to warrant another specialisation where we
>> can use "a" (0), "d" (0) and forgo the MOV+SHR.
>>
>> I'm probably overthinking things.  The addition will be in the noise in
>> practice, and Intel are sure the advantage of MSR_IMM will not be.
> It's not entirely clear to me what the overall effects are now with your
> 02/22 reply on the FRED series.

The delta gets larger now that 2/22 isn't quite as bad as it was.

>  Nevertheless a nit or two here.
>
>> --- a/xen/arch/x86/include/asm/msr.h
>> +++ b/xen/arch/x86/include/asm/msr.h
>> @@ -38,9 +38,46 @@ static inline void wrmsrl(unsigned int msr, uint64_t val)
>>          wrmsr(msr, lo, hi);
>>  }
>>  
>> +/*
>> + * Non-serialising WRMSR with a compile-time constant index, when available.
>> + * Falls back to plain WRMSRNS, or to a serialising WRMSR.
>> + */
>> +static always_inline void __wrmsrns_imm(uint32_t msr, uint64_t val)
>> +{
>> +    /*
>> +     * For best performance, WRMSRNS %r64, $msr is recommended.  For
>> +     * compatibility, we need to fall back to plain WRMSRNS, or to WRMSR.
>> +     *
>> +     * The combined ABI is awkward, because WRMSRNS $imm takes a single r64,
>> +     * whereas WRMSR{,NS} takes a split edx:eax pair.
>> +     *
>> +     * Always use WRMSRNS %rax, $imm, because it has the most in common with
>> +     * the legacy forms.  When MSR_IMM isn't available, emit setup logic for
>> +     * %ecx and %edx too.
>> +     */
>> +    alternative_input_2(
>> +        "mov $%c[msr], %%ecx\n\t"
> Simply %[msr] here?
>
> And then, might it make sense to pull out this and ...
>
>> +        "mov %%rax, %%rdx\n\t"
>> +        "shr $32, %%rdx\n\t"
>> +        ".byte 0x2e; wrmsr",
>> +
>> +        /* WRMSRNS %rax, $msr */
>> +        ".byte 0xc4,0xe7,0x7a,0xf6,0xc0; .long %c[msr]", X86_FEATURE_MSR_IMM,
>> +
>> +        "mov $%c[msr], %%ecx\n\t"
> ... this, to ...
>
>> +        "mov %%rax, %%rdx\n\t"
>> +        "shr $32, %%rdx\n\t"
>> +        ".byte 0x0f,0x01,0xc6", X86_FEATURE_WRMSRNS,
>> +
>> +        [msr] "i" (msr), "a" (val) : "rcx", "rdx");
>         [msr] "i" (msr), "a" (val), "c" (msr) : "rdx");
>
> allowing the compiler to actually know what's put in %ecx? That'll make
> original and 2nd replacement code 10 bytes, better balancing with the 9
> bytes of the 1st replacement. And I'd guess that the potentially dead
> MOV to %ecx would be hidden in the noise as well.

I considered that, but what can the compiler do as a result of knowing %ecx?

That said, we do need an RDMSR form (which I desperately want to make
foo = rdmsr(MSR_BAR) but my cleanup series from 2019 got nowhere), and
in a read+write case I suppose the compiler could deduplicate the setup
of %ecx.

A dead mov $imm, %ecx probably is as close to a nop as makes no difference.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 09:56:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 09:56:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077203.1438278 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulPGK-0002cC-4J; Mon, 11 Aug 2025 09:56:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077203.1438278; Mon, 11 Aug 2025 09: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 1ulPGK-0002c5-1c; Mon, 11 Aug 2025 09:56:16 +0000
Received: by outflank-mailman (input) for mailman id 1077203;
 Mon, 11 Aug 2025 09:56:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=92re=2X=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ulPGI-0002bz-SJ
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 09:56:14 +0000
Received: from mail-wm1-x343.google.com (mail-wm1-x343.google.com
 [2a00:1450:4864:20::343])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 69ce6f17-7699-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 11:56:12 +0200 (CEST)
Received: by mail-wm1-x343.google.com with SMTP id
 5b1f17b1804b1-459d62184c9so23758225e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 02:56:12 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3b79c3b9386sm40087750f8f.18.2025.08.11.02.56.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 02:56:11 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 69ce6f17-7699-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754906172; x=1755510972; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=wF76E3pK10aybSWJoNLKNKlJoCYBCDGZ1DFhqWgInXw=;
        b=lWOS478q/TulV6iALvi/wBOPZ4ry8VPQPkDs0bvznDV5eTzJUJ2IsgpWOBliEChGp0
         Ky4kdB0FNl0kI8CrzqF57IpEMTwFMDZVycfdCPNxWc/SwWLbcvz59pS8xA2NrbIO/tvm
         zncO4mdafRx17Ha0Hq1z7txXvlchwdFmtY2lU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754906172; x=1755510972;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wF76E3pK10aybSWJoNLKNKlJoCYBCDGZ1DFhqWgInXw=;
        b=t1YIeSVpPdHp66ukrP9oWhKTL394n8BfslxZw3gDudftc5MkL7XALU01cX74Xc8nZr
         7AIvoXww229s1xkLWmjRsz7CAMLxJRQObsqRQqZdXR0Lgg/NJ2M0Ah1m4M3cQf6XTDlM
         XLRqtpzelWocmITOEjy2dncrlZsSZ0+uc7DWWK8fpC+SPvSTrJVjTABpcd+ZlBZPA0iy
         Dspa7ao3GGBLOZLPn7cRcjmcsbdFB4SU3VYyuo6XdQSmJ0+lf1BvADbnql1+eL3gByfr
         y4kAIOftPolMXX5hE465Eo1KopZg6LBr4nZvN+vF2SFqE8T2N65M8TF756rJdbnEf3bz
         Z6ow==
X-Forwarded-Encrypted: i=1; AJvYcCUDUDTam/XEzPbDrSQuKjvQ1Ikiwi56Cf12M//FmA6yZW/LyNq7wjc6qAYqxzZq9tY6sVr3ny3jKkU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzkS59ejXd7Lf43/KOOVkUYyPrgkiVZfJJrKgTFyum/2ijLakIv
	E+BXLHzbAb49YIOZcoYt1Rw9sCdnhIAlLq5bkc7ZDuCs2aHuRJp0XXa0eUNcX2uoY+g=
X-Gm-Gg: ASbGncsmXB2b0SmtGnqfk+8N/slAiCV8ZLYQv4/AAzKsve6j9/gahEgW9jVjISVMSO6
	4uiPlJMqc1aaE1VMRRlceJbx9LwSmCJvLHh1SDmRhQd4ahONO2HuiD4KKq0KUjkVSeQmX7NJdj3
	ZoxJpuHN4coKoPkgtt38+KE6RBIw0bEMr/6mwss8VRi7MxmPl+vFNPrW1pSXJIjeg/7KuGLH4oR
	OjGrJYoe5K9tS8EMU/VLcWGCE/nZ4fv+75dJmv76e8h8HJdiHFW0cSibAHKS+BsijFKSrc+KJXj
	M6GcfboCDeo31ccD5Oe8KiJ9oaIsWt4HGtSy6yupvHSHnxsie/t8gzcA2I+IPdPsSB0caSSZWdF
	3oaf4/V6R3QOjUMCG0n7KT8Y+oJmr1jlP636cD1I2ZG6WRxiKn+Ud9xa4dkOC3mYkkyo1
X-Google-Smtp-Source: AGHT+IEqWhkjwHDaufB0hgjvJZMDTyb3rwb9F/2bwF7cPDMMs6fBXobf70GFQzaxlMhjLKCbInpyOw==
X-Received: by 2002:a05:600c:4e16:b0:456:db0:4f3d with SMTP id 5b1f17b1804b1-459f7a37036mr97810955e9.24.1754906172025;
        Mon, 11 Aug 2025 02:56:12 -0700 (PDT)
Message-ID: <2e3412e8-9d62-449b-87e6-22d34ce06e30@citrix.com>
Date: Mon, 11 Aug 2025 10:56:10 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/5] CI: Update riscv64 to use Debian Trixie
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Victor Lira <victorm.lira@amd.com>
References: <20250809221206.1260861-1-andrew.cooper3@citrix.com>
 <20250809221206.1260861-4-andrew.cooper3@citrix.com>
 <2919f22b-0b0c-488e-b0c6-96b9538e63d9@gmail.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <2919f22b-0b0c-488e-b0c6-96b9538e63d9@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/08/2025 9:43 am, Oleksii Kurochko wrote:
>
>
> On 8/10/25 12:12 AM, Andrew Cooper wrote:
>> Everything works fine with Debian 13.  Provide two new build jobs, and update
>> both the randconfig the test jobs.
>>
>> 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: Shawn Anastasio <sanastasio@raptorengineering.com>
>> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>> CC: Doug Goldstein <cardoe@cardoe.com>
>> CC: Marek Marczykowski-GÃ³recki <marmarek@invisiblethingslab.com>
>> CC: Victor Lira <victorm.lira@amd.com>
>>
>> https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/1975929387
>> ---
>>  automation/gitlab-ci/build.yaml | 22 ++++++++++++++++++----
>>  automation/gitlab-ci/test.yaml  |  2 +-
>>  2 files changed, 19 insertions(+), 5 deletions(-)
>>
>> diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
>> index 3fe539dc5683..f8e45f3467c8 100644
>> --- a/automation/gitlab-ci/build.yaml
>> +++ b/automation/gitlab-ci/build.yaml
>> @@ -329,10 +329,10 @@ debian-13-ppc64le-gcc-debug:
>>        CONFIG_UBSAN=y
>>        CONFIG_UBSAN_FATAL=y
>>  
>> -debian-12-riscv64-gcc-debug:
>> +debian-13-riscv64-gcc-debug:
>>    extends: .gcc-riscv64-cross-build-debug
>>    variables:
>> -    CONTAINER: debian:12-riscv64
>> +    CONTAINER: debian:13-riscv64
>>      KBUILD_DEFCONFIG: tiny64_defconfig
>>      HYPERVISOR_ONLY: y
>>      EXTRA_XEN_CONFIG: |
>> @@ -727,6 +727,20 @@ debian-12-riscv64-gcc:
>>      KBUILD_DEFCONFIG: tiny64_defconfig
>>      HYPERVISOR_ONLY: y
>>  
>> +debian-12-riscv64-gcc-debug:
>> +  extends: .gcc-riscv64-cross-build-debug
>> +  variables:
>> +    CONTAINER: debian:12-riscv64
>> +    KBUILD_DEFCONFIG: tiny64_defconfig
>> +    HYPERVISOR_ONLY: y
> Don't you mind to keep an order? So:
>   debian-12-riscv64-gcc-debug:
>   ...
>   debian-13-riscv64-gcc-debug:
>   ...

Notice how those 2 hunks are 400 lines apart in the file.

This is deliberate so debian-13-riscv64-gcc-debug (the one needed for
tests) is scheduled with higher priority than the others.

The diff certainly isn't great, but this is necessary to shorten the
pipeline.

>
> Also, it will make a diff a little bit better.
>
>> +
>> +debian-13-riscv64-gcc:
>> +  extends: .gcc-riscv64-cross-build
>> +  variables:
>> +    CONTAINER: debian:13-riscv64
>> +    KBUILD_DEFCONFIG: tiny64_defconfig
>> +    HYPERVISOR_ONLY: y
>> +
>>  .riscv-fixed-randconfig:
>>    variables: &riscv-fixed-randconfig
>>      EXTRA_FIXED_RANDCONFIG: |
>> @@ -739,10 +753,10 @@ debian-12-riscv64-gcc:
>>        CONFIG_VM_EVENT=n
>>        CONFIG_XSM=n
>>  
>> -debian-12-riscv64-gcc-randconfig:
>> +debian-13-riscv64-gcc-randconfig:
> Are we going to have randconfig build test only for Debian-13?

We only have finite test capacity.

>
>>    extends: .gcc-riscv64-cross-build
>>    variables:
>> -    CONTAINER: debian:12-riscv64
>> +    CONTAINER: debian:13-riscv64
>>      KBUILD_DEFCONFIG: tiny64_defconfig
>>      RANDCONFIG: y
>>      <<: *riscv-fixed-randconfig
>> diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
>> index 2f6f3affa637..9acd984d294c 100644
>> --- a/automation/gitlab-ci/test.yaml
>> +++ b/automation/gitlab-ci/test.yaml
>> @@ -705,7 +705,7 @@ qemu-smoke-riscv64-gcc:
>>    script:
>>      - ./automation/scripts/qemu-smoke-riscv64.sh 2>&1 | tee ${LOGFILE}
>>    needs:
>> -    - debian-12-riscv64-gcc-debug
>> +    - debian-13-riscv64-gcc-debug
> The same as above, are we going to run smoke tests only for Debian-13?

Again, test capacity.Â  Even for x86 and ARM, we only have one main build
under test.

>
> If the answer to this and the question above is â€œyes,â€ then (probably
> keeping the order â€” first debian-12, then debian-13 â€” for the jobs):
>  Reviewed-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Sorry, but rearranging is one thing that can't really happen.Â  Are you
happy with my justification?

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 09:56:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 09:56:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077211.1438288 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulPGt-00035R-Fz; Mon, 11 Aug 2025 09:56:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077211.1438288; Mon, 11 Aug 2025 09:56: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 1ulPGt-00035K-DH; Mon, 11 Aug 2025 09:56:51 +0000
Received: by outflank-mailman (input) for mailman id 1077211;
 Mon, 11 Aug 2025 09:56:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=92re=2X=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ulPGs-0002bz-0K
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 09:56:50 +0000
Received: from mail-wr1-x432.google.com (mail-wr1-x432.google.com
 [2a00:1450:4864:20::432])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7f1519b3-7699-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 11:56:48 +0200 (CEST)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-3b7823559a5so1871389f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 02:56:48 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3b79c3b9c7dsm39789224f8f.26.2025.08.11.02.56.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 02:56: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>
X-Inumbo-ID: 7f1519b3-7699-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754906208; x=1755511008; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Ux+FTk2Cd1CY17fcCBAF9+6lyRgRi7vQ0izw6onAcm4=;
        b=YEe/4wSKLmJH+AvXV3Clg1boiDZ6/P9u0QSrgUhtEjRXlLqCpjw+AWQn8nHLwEn9e3
         81EWnEsfXb50YgQOhdFCUClFCw7exhuytBVsPvkPrKj3qJhu0gnFOcVnQTzGWEXqk+xp
         P1tBu+Zn9gUR/ywhQG8bimWPrtw4PboMyIuEo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754906208; x=1755511008;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Ux+FTk2Cd1CY17fcCBAF9+6lyRgRi7vQ0izw6onAcm4=;
        b=J4Ut+TsnA9+Qzh3ioZGYp5NAxQpedqKhb67CrZaPGWEcWn72naXRosR8VG8+fGRSsB
         VAosn1yT3U8rVRif+ok+/4OkbCM48xqPJzDFPYHL846Epb2gynB0tL2j/qW/K+nqItbV
         mSpvnXKhA4azWFp9smUJ124OLtxAcd6CqhZdo7a3CG8tddCBz+zDqeP7WqtdVoqfAh2u
         71HwY1WlxbJTnUgN51cTd05pd+HzlQ2btDpDtFar58EScgC+S045IVlv1AUHL2uqSN+W
         20RtvD2NjEf97Kbjx8TFJBtdJ9T7y6iaRwuethfZ56WFfGilk4whsuwV3QMbcaHoQSwe
         EjXw==
X-Forwarded-Encrypted: i=1; AJvYcCWykBf4BkkvVbh2U29xGJN9Kot4MwQixmi17TQIZHO8QrpC0ANKsWtBLEI7BSr7T5Zq+uIjB5LMsZI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyzXehbMNmB2yuc/1Zlx2mn6Vs07owNtxAYsw2FejZAS4GL4weG
	95C7IedFUHD6LvUhFj0uRIVVkPcs/IMIuLcA8yHnwF7Bc7eL4J7YV05b4F363ngpj94=
X-Gm-Gg: ASbGncvqSycNSsFtLe2khjE8Pwu1aj9+jWVq9gdBOuYcRKx80oKKd2JKsjVMhw39tBN
	Kk2/uKsHRKbb1aIq7eUwujkZRnKGCPWih6YtOuEWa7Li945lAeu8o3SvAEQwbHJ3YXruKam6HPA
	j2Xchfd5A2V+9a/bVwhfg4DOg2sxZQD5LzPeutLFgTA2nPWLQq2YSJX8AfUuyyFOUXjHiBYS+GW
	mll4TTH3cVS1g93q1S+AJmugym3PHsn5LUUgs2b3TDanKsNASPct1SouMNvj8UfalRHOxUGq7B9
	CisA6XmkkMiftjw44Wen9EbeHTKgA0Lx3mZsVxmqHwnhxJubfwj6OKEAUUOqWgFsq9ynQ+xXa6F
	GRHffX1E+M7CfSWSaEA73+w2+CSTkVAlvzHHVeMOdEGFwyHFHIZvQUi6X9KOVTQnqcPnU
X-Google-Smtp-Source: AGHT+IFy0HDnIVP1kg2ixTdd23oCiCiaBBB6MEzUV5IttwAhY3cko+lVwDIf+G3En9TFaTxXouxA4w==
X-Received: by 2002:a05:6000:26c1:b0:3b7:8b5e:831d with SMTP id ffacd0b85a97d-3b900b2d7aemr3169570f8f.17.1754906207736;
        Mon, 11 Aug 2025 02:56:47 -0700 (PDT)
Message-ID: <19ae8104-9a87-4b44-a2fe-9d72a6d07fef@citrix.com>
Date: Mon, 11 Aug 2025 10:56:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/5] CI: Trixie containers
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Victor Lira <victorm.lira@amd.com>
References: <20250809221206.1260861-1-andrew.cooper3@citrix.com>
 <20250809221206.1260861-2-andrew.cooper3@citrix.com>
 <37edbe9d-3c14-422b-b21b-49a5fa25a453@gmail.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <37edbe9d-3c14-422b-b21b-49a5fa25a453@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11/08/2025 9:47 am, Oleksii Kurochko wrote:
>
>
> On 8/10/25 12:12 AM, Andrew Cooper wrote:
>> Debian Trixie has been released.  Provide new containers.
>>
>> 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: Shawn Anastasio <sanastasio@raptorengineering.com>
>> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>> CC: Doug Goldstein <cardoe@cardoe.com>
>> CC: Marek Marczykowski-GÃ³recki <marmarek@invisiblethingslab.com>
>> CC: Victor Lira <victorm.lira@amd.com>
>>
>> I've deployed these containers already so people can play.
>>
>> No ARM yet.  There's an (old) outstanding series cleaning up the arm
>> infrastructure, blocked on unclear root requirements for the Xilinx runners.
>> That series really needs fixing.
>> ---
>>  automation/build/debian/13-ppc64le.dockerfile | 37 ++++++++++
>>  automation/build/debian/13-riscv64.dockerfile | 37 ++++++++++
> LKGTM: Reviewed-by: Oleksii Kurochko <oleksii.kurochko@gmail.com> #riscv
>
> Also, shouldnâ€™t we update the |automation/scripts/containerize| script to
> add Debian 13 support?

Yes, and I should probably put something in Changelog too.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 10:06:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 10:06:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077227.1438298 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulPPv-00055P-C6; Mon, 11 Aug 2025 10:06:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077227.1438298; Mon, 11 Aug 2025 10:06:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulPPv-00055I-8x; Mon, 11 Aug 2025 10:06:11 +0000
Received: by outflank-mailman (input) for mailman id 1077227;
 Mon, 11 Aug 2025 10:06:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ku41=2X=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ulPPu-00055C-PT
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 10:06:10 +0000
Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com
 [2a00:1450:4864:20::634])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cc9224bb-769a-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 12:06:07 +0200 (CEST)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-af9180a11bcso824590366b.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 03:06: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
 a640c23a62f3a-af91a21c0f4sm1981443066b.106.2025.08.11.03.06.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 03:06:06 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cc9224bb-769a-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754906767; x=1755511567; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=rwa5hDRlm6ED9r8XhxDoq0M3ih9cHxB9U4KsWn+JG1g=;
        b=SEuTIiyroxQWsZnZFKi3Ow89B1b/qK4EYv+qhDuOh8TELgyOxdyJvLucnBVN3RIPTm
         uKENaIOLFgURtoeCLiPbMWpVYdYPY2a9IrTaq0LyazwDJa88vWw9g/WOENbUToqcDQVC
         RWp+XJsfCNx92Dc3yFzm0cXkNj26lm0scLOJoQTbivbpg5y3Nkn2ksOojW7o+4BMZdj/
         MfbLXZMtp4hDV4hqTR7Ba6Au3I5tnI/JbW9E1oBrnSPtWMAzDwhIZMDeCT47eaM/qJ55
         +bKILvc70POmkIa7sCXdzCgJqG8ajXilXKB3Gg/NVeqvDh6htBp4yuGPyibOUeOPwhcj
         LAzw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754906767; x=1755511567;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rwa5hDRlm6ED9r8XhxDoq0M3ih9cHxB9U4KsWn+JG1g=;
        b=gE634+DT5XlyJPm77JZSPxnzl7QZUwLfaOOKjrtqfRwvmuSJGWgXUYI8KSweF8BPAS
         GSXvqhYygI33JkllrIiGAjHkBHCvPHnyeoC/DlN8owNsdZuxszBs85CLHWqulYFiTo3r
         9ZxoAIuIRsGp+UOnrpkCGyNTYyBWSmH3LwQPYDgpVgwQzM7qDh/PrUbfwH9kB0/RX2Bs
         01vrB9zcSybwiws6Vy2ZFDR87ihB02NaytYYhQ5ugyQsl6ubxf5vR/gyV3DfIEk41rA3
         V1V0Q9ia5nNSZ+awFT3vXpPXIqULOFhYa5R2c/cfhHfCJMNKXyLlfkOwQVrRg2UtrTTd
         p2hA==
X-Forwarded-Encrypted: i=1; AJvYcCU9p/cdGJ44Ejm/tH6NpLs9fjOuc2NAIFVavHSH+rpLkZrsNxGaqu13Rh3w2jQKLvW95Artp1Jxka0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy9dbBYOSf3Ah/Pd0ieKn/eZKnNoxr/6FO99c5b7NXgSPGayubm
	vNXuwkLqLc2emZBto3FNrm3iBBloWbVU72HX4QOd5nUVWuYcr/qPl0rChZA9P3WXYg==
X-Gm-Gg: ASbGnctFTrWae+Wojeh3LED6AvlR6xHPBA89EMe/4zELuH14e4I09YSzMicnV1ENxxy
	yhrfGo4ivZcDIz0ul11vrz3goaRGP3FiRJL3OUkM9ZM6e8DlLuEGu1HwOOpZhuKRPKaoPbUzTKa
	/bu275Rc/av412sRFMkaCf9vT+5ObN7X0fgEbPxlyRfon2TOubrAQFd43TLbgXkuWiRkFq+dgmF
	sqjywIMMw52Wp5Pt0zwv4viQZsf3+lEH5TSsuM+0B+LnqDDJW/msDBLFBBTiTX7coG/MS9BHy5S
	MXGLZ4rx/3Sb/dQK1C+5zBl0glbqLjTfgTOjwhZt2PDc4NoWi8FWZZclOYeNuoSn+aNdsglToV3
	CP0badrP4+4e0ETOT8ihqQfFsFaU/C7n6WTR5lGNRHviiKWl86zsaLVNnJ/K8jlhHwM68KabJRH
	fcFCt4Gf6m2shlBC9FqA==
X-Google-Smtp-Source: AGHT+IEgVEj6auOp7ZrFVpVoEHVOLgA1m1YaSccgB1Vsd0mMKCnfEfyqzXZQw/4SWPCzt5dS8N1XPQ==
X-Received: by 2002:a17:907:d16:b0:af9:8739:10ca with SMTP id a640c23a62f3a-af9a3ebc937mr1689572966b.28.1754906767255;
        Mon, 11 Aug 2025 03:06:07 -0700 (PDT)
Message-ID: <d6b13991-e158-4232-8850-44c0b027edbb@suse.com>
Date: Mon, 11 Aug 2025 12:06:06 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] RFC x86/msr: Use WRMSRNS $imm when available
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808222013.1071291-1-andrew.cooper3@citrix.com>
 <e81bc459-347c-4eb9-8f8e-ada25fe8966f@suse.com>
 <0d78dd8e-af92-4b29-9706-e08c2c06ee89@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: <0d78dd8e-af92-4b29-9706-e08c2c06ee89@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.08.2025 11:50, Andrew Cooper wrote:
> On 11/08/2025 9:16 am, Jan Beulich wrote:
>> On 09.08.2025 00:20, Andrew Cooper wrote:
>>> --- a/xen/arch/x86/include/asm/msr.h
>>> +++ b/xen/arch/x86/include/asm/msr.h
>>> @@ -38,9 +38,46 @@ static inline void wrmsrl(unsigned int msr, uint64_t val)
>>>          wrmsr(msr, lo, hi);
>>>  }
>>>  
>>> +/*
>>> + * Non-serialising WRMSR with a compile-time constant index, when available.
>>> + * Falls back to plain WRMSRNS, or to a serialising WRMSR.
>>> + */
>>> +static always_inline void __wrmsrns_imm(uint32_t msr, uint64_t val)
>>> +{
>>> +    /*
>>> +     * For best performance, WRMSRNS %r64, $msr is recommended.  For
>>> +     * compatibility, we need to fall back to plain WRMSRNS, or to WRMSR.
>>> +     *
>>> +     * The combined ABI is awkward, because WRMSRNS $imm takes a single r64,
>>> +     * whereas WRMSR{,NS} takes a split edx:eax pair.
>>> +     *
>>> +     * Always use WRMSRNS %rax, $imm, because it has the most in common with
>>> +     * the legacy forms.  When MSR_IMM isn't available, emit setup logic for
>>> +     * %ecx and %edx too.
>>> +     */
>>> +    alternative_input_2(
>>> +        "mov $%c[msr], %%ecx\n\t"
>> Simply %[msr] here?
>>
>> And then, might it make sense to pull out this and ...
>>
>>> +        "mov %%rax, %%rdx\n\t"
>>> +        "shr $32, %%rdx\n\t"
>>> +        ".byte 0x2e; wrmsr",
>>> +
>>> +        /* WRMSRNS %rax, $msr */
>>> +        ".byte 0xc4,0xe7,0x7a,0xf6,0xc0; .long %c[msr]", X86_FEATURE_MSR_IMM,
>>> +
>>> +        "mov $%c[msr], %%ecx\n\t"
>> ... this, to ...
>>
>>> +        "mov %%rax, %%rdx\n\t"
>>> +        "shr $32, %%rdx\n\t"
>>> +        ".byte 0x0f,0x01,0xc6", X86_FEATURE_WRMSRNS,
>>> +
>>> +        [msr] "i" (msr), "a" (val) : "rcx", "rdx");
>>         [msr] "i" (msr), "a" (val), "c" (msr) : "rdx");
>>
>> allowing the compiler to actually know what's put in %ecx? That'll make
>> original and 2nd replacement code 10 bytes, better balancing with the 9
>> bytes of the 1st replacement. And I'd guess that the potentially dead
>> MOV to %ecx would be hidden in the noise as well.
> 
> I considered that, but what can the compiler do as a result of knowing %ecx?

For example ...

> That said, we do need an RDMSR form (which I desperately want to make
> foo = rdmsr(MSR_BAR) but my cleanup series from 2019 got nowhere), and
> in a read+write case I suppose the compiler could deduplicate the setup
> of %ecx.

... this. But also simply to use a good pattern (exposing as much as possible
to the compiler), so there are more good instances of code for future cloning
from. (In size-optimizing builds, the compiler could further favor ADD/SUB
over MOV when the two MSRs accessed are relatively close together.)

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 10:16:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 10:16:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077241.1438309 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulPZw-0006rD-6r; Mon, 11 Aug 2025 10:16:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077241.1438309; Mon, 11 Aug 2025 10:16: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 1ulPZw-0006r6-39; Mon, 11 Aug 2025 10:16:32 +0000
Received: by outflank-mailman (input) for mailman id 1077241;
 Mon, 11 Aug 2025 10:16:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=92re=2X=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ulPZu-0006r0-Qa
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 10:16:30 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3f62b38b-769c-11f0-a325-13f23c93f187;
 Mon, 11 Aug 2025 12:16:30 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-4563cfac2d2so35622485e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 03:16:30 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459e58400f5sm244405935e9.2.2025.08.11.03.16.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 03:16: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>
X-Inumbo-ID: 3f62b38b-769c-11f0-a325-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754907389; x=1755512189; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=wqEDJMYm3BxFPQ6vTPSnNYFpQUMJHB6Lb7Dl7wc0nmU=;
        b=wHvztIFBUjZ9KC+5jT2Yh1CNGPF0joS2WSfD5ItaGClSzzMOibWFEG26yMDK/KVkBu
         tpsF4EWNPgYgb3DqAni2epduUE1spvZWSSytAMhirkoj6Bl3jhzaoZUMqXJZ3c9dXpbP
         iu0YPr9My641PWTs4PV28VEvfgplZSk3yCAIk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754907389; x=1755512189;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wqEDJMYm3BxFPQ6vTPSnNYFpQUMJHB6Lb7Dl7wc0nmU=;
        b=UN9DY1nriVkmqisGF6L/BdU6U2XJ+nEEWShDaB3eqR3unrr2Xomo0yreH9mLMl6JgV
         0+uEkIgDl6Bo2Lr44+N8ZwQTgdm0NkZ75Gn+faUlKCH8iX/tz/2LTMPNFKUyPQrgeOnj
         kYCr5hOTjdRbQ7GqsMo0DeaYfuFFIxLSX0oV1zyg7A7V6GiP0v8PQf2I2nbYU0i237cS
         ghR+ne2x/JoFGLmiUa34UMm0/ifO0bUVIx3WZv1rm+UHFb37anxlWNw+fjIBQ2LTvPYM
         Jw37+3l+8STV2BCvq9ZEMXm0HlOc0xfqIu6/6vmlE2Ivvk8hmjQ9fDK54gxvdcI2I38k
         L65A==
X-Forwarded-Encrypted: i=1; AJvYcCWcMQCKxW2MA0/r+v6vf0qUR8Xoz50GWusN2mD+eHx8wZ5EgQMDIPjwyBA9GLnirobZbRWYLPPMPss=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxaf8/co/9OuhxyhJTzca88875hSTpgcVU/zUOYnQ+WB+tLjg8S
	+ONlXzyD90yMGR8Kjs2c0AlOzjeJSPZ5e/M1KIlCFpcz1nuaCQWeRk6zBD/3tJr7cpI=
X-Gm-Gg: ASbGncvzdlUBFZAyDCQPgAj1KyeMjftN6oGK13ewSVi9ePogi69Etyufgt4ufm1elln
	3BLCMjqMpl02lUPC87+YnkWKw0qvcjV76475msUdYyMw+SoC1Mg6otq989K28NwnLcMe0D/yjno
	GfRToAZJC0+BZr4wJzKF2bAOn9NFnBFiefjQsuTu/T0RdkOk09A/GSWhCa3hOGQkRCdK5BbG73g
	8jN8rDgg0jRxU9GD5KA0PqzsG/gK1nwwKdMmZ8RZtTPEPr33lMgo/aLXINbIQ+stbJKVAVTxZvt
	K3ZqiU4SyHrEnYt33g8xpd3AjclcywgjNtQpufb1Hgqux6CEqBTlLRnsf9leJUr2Xfc/HL2cUbR
	5YCzydpdikfxIswEG5BjZkUFg/CckaDq7P1lLKr8Tanfl24gisgBMREg2RgisYUTt9uBT
X-Google-Smtp-Source: AGHT+IGf086o9zT+fwKdarpuHUYTKJzzqTvlsEkez6k3hFaa6vdZPJ8cqTZwujRUfGM6XIJYLtHSmA==
X-Received: by 2002:a05:600c:1d09:b0:456:1bca:7faf with SMTP id 5b1f17b1804b1-459f4f04237mr112730105e9.16.1754907389334;
        Mon, 11 Aug 2025 03:16:29 -0700 (PDT)
Message-ID: <a8cf2ecc-ec39-4e6e-8279-e49cdd2c6d38@citrix.com>
Date: Mon, 11 Aug 2025 11:16:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] RFC x86/msr: Use WRMSRNS $imm when available
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808222013.1071291-1-andrew.cooper3@citrix.com>
 <e81bc459-347c-4eb9-8f8e-ada25fe8966f@suse.com>
 <0d78dd8e-af92-4b29-9706-e08c2c06ee89@citrix.com>
 <d6b13991-e158-4232-8850-44c0b027edbb@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: <d6b13991-e158-4232-8850-44c0b027edbb@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11/08/2025 11:06 am, Jan Beulich wrote:
> On 11.08.2025 11:50, Andrew Cooper wrote:
>> On 11/08/2025 9:16 am, Jan Beulich wrote:
>>> On 09.08.2025 00:20, Andrew Cooper wrote:
>>>> +        "mov %%rax, %%rdx\n\t"
>>>> +        "shr $32, %%rdx\n\t"
>>>> +        ".byte 0x0f,0x01,0xc6", X86_FEATURE_WRMSRNS,
>>>> +
>>>> +        [msr] "i" (msr), "a" (val) : "rcx", "rdx");
>>>         [msr] "i" (msr), "a" (val), "c" (msr) : "rdx");
>>>
>>> allowing the compiler to actually know what's put in %ecx? That'll make
>>> original and 2nd replacement code 10 bytes, better balancing with the 9
>>> bytes of the 1st replacement. And I'd guess that the potentially dead
>>> MOV to %ecx would be hidden in the noise as well.
>> I considered that, but what can the compiler do as a result of knowing %ecx?
> For example ...
>
>> That said, we do need an RDMSR form (which I desperately want to make
>> foo = rdmsr(MSR_BAR) but my cleanup series from 2019 got nowhere), and
>> in a read+write case I suppose the compiler could deduplicate the setup
>> of %ecx.
> ... this. But also simply to use a good pattern (exposing as much as possible
> to the compiler), so there are more good instances of code for future cloning
> from. (In size-optimizing builds, the compiler could further favor ADD/SUB
> over MOV when the two MSRs accessed are relatively close together.)

I have seen the compiler do this in the past, but couldn't reproduce it
for this work.

We specifically do not want any conversion to ADD/SUB, because that
takes our "close to a nop" and makes it no so.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 10:32:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 10:32:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077249.1438319 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulPos-0001Mi-EX; Mon, 11 Aug 2025 10:31:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077249.1438319; Mon, 11 Aug 2025 10:31: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 1ulPos-0001Mb-Bw; Mon, 11 Aug 2025 10:31:58 +0000
Received: by outflank-mailman (input) for mailman id 1077249;
 Mon, 11 Aug 2025 10:31:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ku41=2X=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ulPor-0001MS-Cm
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 10:31:57 +0000
Received: from mail-ej1-x62e.google.com (mail-ej1-x62e.google.com
 [2a00:1450:4864:20::62e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 66846272-769e-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 12:31:54 +0200 (CEST)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-af95b919093so613436966b.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 03:31: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
 a640c23a62f3a-af91a21e44csm1979783366b.113.2025.08.11.03.31.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 03:31:53 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 66846272-769e-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754908314; x=1755513114; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=CcECooaoX2K3eYcUs8dHALXgGv0tdfmv1BNxzXjhzFo=;
        b=ZXf9nYdoWCrbVDPPiWi0DxInlLXcsZAzFqrk8gm/fpu8pg6sg2ravd0KWUhqF1spxW
         GScr7vjZpQ0FXCjusC7Y1UtIhjion9MIgiShNyq0JhpVTDZvnaRKKBA6nAI+JlynbZnY
         9lBBfLYgzwOwTBI5QVe1+rXgnK+wNoyiH8GlLxW724UhGyrm6/noO6GMu5BnwuIq7l3W
         xX3N2P8kqgQggLC5dcI935vdswGoaeRylXMZCsL+YwRdvgPPs7RK216cLo74MAlRnHmr
         v7u5iC/PWk56gPWGTJroJgUsPWA/ZFY1XT0Y7KCD11LK3cURQQ6CfCweouOrK6nZp8Zw
         3meQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754908314; x=1755513114;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CcECooaoX2K3eYcUs8dHALXgGv0tdfmv1BNxzXjhzFo=;
        b=EekcGo2/zKdwzUcg4LUU7kIN4UyzopuReG1Kr0kYp+YbHY897bNa63W6NyI8j+dgUW
         uEq4Q3c6qYs8t5R2e4TpLq9OXLBi8dMYNzdqGeoD+tLA85AV4uYw6Zm4tswVvJyUZ0wD
         k/w41wKTI1+xcGMSnIVj9zrNliQ0pCT7aFx0yFRj8rL0mVzmc6WUQakkQX/1O31sTbd2
         S9DOP79FeDlqu0DUMqlsz/wAGFImEljB4LzX0onf4rei9bZL0IJs9NIUXCzfzmFYvtce
         So1T9NQ3mKUGfQN/hCW+7rBiSNlRU8GEhsHVz/8H5UcDINoHS266izSQQj3EYEkKGjWZ
         b/FA==
X-Forwarded-Encrypted: i=1; AJvYcCUqhAWYx8DUVuNL9BpUBl2PFx4dgyFUROPeqHLaXdbqKDmtsKacCQEerQsi7BSWO2c/dlS1RfGRn/A=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxUq2Pg5oeRi3PtD2hpIGqyrgsNvPOYHzQSG41HDPHTCKOjQ/2X
	YspaFkagH4FjA4ifi48slOoyTbIBeJTN4/cYpynB3tdZ7B/KlJq8gN0YVraWJL7zcg==
X-Gm-Gg: ASbGncszlNo+jYht1QHAeNUhVAQVDqTXM5/Mp4doM7ECsPoOy4niPuo/e38YtsfgoGP
	xMriUn9UcxGoGwZ5vSzc75yyxRG27V/BEt3k/1pD/Q+3FdCEH6UPhKn9o56oBwtpAFSEMqC8Uyp
	vBWRq29HtNiir4H8Zv1TXbGXAPH6GVA3JOboL/XTIdex/Yn+1fGQpcTgUeYasQe3WKFZhpwZxlb
	aluBI2nbRGwkU3riemAe2rBqj5FC2RIC9+aaMmsHMQObRRRbAsKe+2ERpScwvWwfvrPLRg1/WMx
	7wzmYjH+AI6SG4tZhfkSIHqBY6wAeh6mGcybsA9H2mj9Mspm1UzzAf78VBBrTQk5tJmPnQFJBJ4
	qvwbP/yjLpK3d+1j47M6nIM6v3mw8V6NiSZmeX/hpdswbuLjitJh7nIC93rWQaRMbi8GjkLSpFM
	D7/m+NZtA=
X-Google-Smtp-Source: AGHT+IEyssErcQyDK8UUnso3kpYdejaQTfW3cPNsLubyTKDxeMrQPeNKTo11wfspe81LuYiZs5xufg==
X-Received: by 2002:a17:907:e90:b0:ae3:5e70:330d with SMTP id a640c23a62f3a-af9c640ea1bmr1166439066b.12.1754908314008;
        Mon, 11 Aug 2025 03:31:54 -0700 (PDT)
Message-ID: <5af38bf6-ec55-45e1-9367-9479c2f9b298@suse.com>
Date: Mon, 11 Aug 2025 12:31:53 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] RFC x86/msr: Use WRMSRNS $imm when available
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808222013.1071291-1-andrew.cooper3@citrix.com>
 <e81bc459-347c-4eb9-8f8e-ada25fe8966f@suse.com>
 <0d78dd8e-af92-4b29-9706-e08c2c06ee89@citrix.com>
 <d6b13991-e158-4232-8850-44c0b027edbb@suse.com>
 <a8cf2ecc-ec39-4e6e-8279-e49cdd2c6d38@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: <a8cf2ecc-ec39-4e6e-8279-e49cdd2c6d38@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.08.2025 12:16, Andrew Cooper wrote:
> On 11/08/2025 11:06 am, Jan Beulich wrote:
>> On 11.08.2025 11:50, Andrew Cooper wrote:
>>> On 11/08/2025 9:16 am, Jan Beulich wrote:
>>>> On 09.08.2025 00:20, Andrew Cooper wrote:
>>>>> +        "mov %%rax, %%rdx\n\t"
>>>>> +        "shr $32, %%rdx\n\t"
>>>>> +        ".byte 0x0f,0x01,0xc6", X86_FEATURE_WRMSRNS,
>>>>> +
>>>>> +        [msr] "i" (msr), "a" (val) : "rcx", "rdx");
>>>>         [msr] "i" (msr), "a" (val), "c" (msr) : "rdx");
>>>>
>>>> allowing the compiler to actually know what's put in %ecx? That'll make
>>>> original and 2nd replacement code 10 bytes, better balancing with the 9
>>>> bytes of the 1st replacement. And I'd guess that the potentially dead
>>>> MOV to %ecx would be hidden in the noise as well.
>>> I considered that, but what can the compiler do as a result of knowing %ecx?
>> For example ...
>>
>>> That said, we do need an RDMSR form (which I desperately want to make
>>> foo = rdmsr(MSR_BAR) but my cleanup series from 2019 got nowhere), and
>>> in a read+write case I suppose the compiler could deduplicate the setup
>>> of %ecx.
>> ... this. But also simply to use a good pattern (exposing as much as possible
>> to the compiler), so there are more good instances of code for future cloning
>> from. (In size-optimizing builds, the compiler could further favor ADD/SUB
>> over MOV when the two MSRs accessed are relatively close together.)
> 
> I have seen the compiler do this in the past, but couldn't reproduce it
> for this work.
> 
> We specifically do not want any conversion to ADD/SUB, because that
> takes our "close to a nop" and makes it no so.

Imo when size optimizing, size matters and "close-to-a-NOP" doesn't (as much).

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 10:48:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 10:48:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077273.1438333 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulQ4l-0003Lf-Vq; Mon, 11 Aug 2025 10:48:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077273.1438333; Mon, 11 Aug 2025 10:48:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulQ4l-0003LY-Rz; Mon, 11 Aug 2025 10:48:23 +0000
Received: by outflank-mailman (input) for mailman id 1077273;
 Mon, 11 Aug 2025 10:48:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=92re=2X=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ulQ4k-0003LS-GO
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 10:48:22 +0000
Received: from mail-wm1-x342.google.com (mail-wm1-x342.google.com
 [2a00:1450:4864:20::342])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b2992dc1-76a0-11f0-a325-13f23c93f187;
 Mon, 11 Aug 2025 12:48:21 +0200 (CEST)
Received: by mail-wm1-x342.google.com with SMTP id
 5b1f17b1804b1-459d44d286eso21874815e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 03:48:21 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459e0cd2c90sm296746935e9.17.2025.08.11.03.48.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 03:48:20 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b2992dc1-76a0-11f0-a325-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754909301; x=1755514101; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=RxgmWu82o6zYA67WCzb73s7Sm3cXFFVg1QtDZm0HFkg=;
        b=wN4eDUKMNDIPG5+zgeW7SZhXVzYHkqUQ2sUyyUwsQjnHfagZG8TDfe1qI8numR+pR+
         gT9DM8Ek3OLPTHlSdNtM6Rq322qORIO/c7Fx4FPpVZTzQT/+2T9MZ4T2IikWpIxbce5v
         j9x6uW88+8j9jWTOnmS9Tg+LDzr5FnL711Jno=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754909301; x=1755514101;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RxgmWu82o6zYA67WCzb73s7Sm3cXFFVg1QtDZm0HFkg=;
        b=qfX9N+K724yCf3rPFJzCNSj3IiL2ce7erDamA3/gKvcBfcCvmP5mIe1mFG6GP9B3sH
         qxzgyJcfNCdmrh7Ge+3c/FM5GMgtyxSuE/vwFewQGYOkblac/baQoKCsTQ3R2kfrJYTG
         e6WCDYrCA1e9oq4JFWZ5nEKSnKMaqgPAbaVZrQizzWyId+e7ioeykzh+8JtokDfWJgbI
         nWQNq1Y3g1eKr02lFmE5Rx/POt1v38DZ8I2iFjWVD8GHsdZF/aZuOPHDl//gy0zFbUeI
         2wF6J8uaURQfEwuuShTeUav74N57qhE7/kZV5RFkGURrBVt6ldyLe3/TIFC8PuFJxItW
         ReLg==
X-Forwarded-Encrypted: i=1; AJvYcCW57oVKZWygaXQDQQQPf0m5F4TE6pVwCNxI5FxpEgE3y0CYKqY0XaDZrf5v80/Dq2yibmh/wO797wA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyv2T4/12n8j2qTAQvB2aP1MSOYO7sHO9wwe2JUJTjTThgkQRRM
	OkCdISOTzRmL9O45oJcKeFft9LHinHWcxlxhAikIrtdLF7Wxeox+RqjxPb7kQnRvV9I=
X-Gm-Gg: ASbGncs6NuMg9rBYnMDydbjx/PPbl9t0tYPQ+SfG2fWqtzvlQ8E/ZpFrYgOtkU7QwrY
	FdPmLdLuOYTllGCvu15mzvtCasuVsr8nyoIyGJVFWZOT2PjlEAn63wxxmxIADaf9gygsN1gmNJ9
	XEn4cjUymTpNPidPwknj+Hu5X1rxMI5iaKZoQWnysZwcOgkboCZ+1e4sVNz3dBhxpqNyt0ZUpef
	lx8ClmB6c/nV9GDZX5ydNzceyUUeurYrYkYMqSkoMRqzVhvLZu9HLRCS5QyJ15uKhsC/9DPAcTO
	r/XaIsAbVa4SPjaGRSv2NW+s318tFeE2KRnfWqkbanBmidxm/HSu8aWWiUJ6gFBuP6z9D4L9Gv2
	RVQA4Fxp5Yg9twmGP25k4REV6nIXtNffoqiRAjRXrbWpk+fTSx69/B9xysr13/F8QftKY
X-Google-Smtp-Source: AGHT+IHjDWDNWu0o9fzflwXjk9ee1sPyd7RZ/TglaIZZsIsZsvrynkaGbdTkrJCYvRC5gDoAS4dp4g==
X-Received: by 2002:a05:600c:474f:b0:456:1157:59ac with SMTP id 5b1f17b1804b1-459f51c510cmr107991035e9.7.1754909300637;
        Mon, 11 Aug 2025 03:48:20 -0700 (PDT)
Message-ID: <5de6ae46-8398-46ab-b79a-df45358c5c30@citrix.com>
Date: Mon, 11 Aug 2025 11:48:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 04/11] tools/configure: Introduce deps on json-c lib
 for libxl
To: Anthony PERARD <anthony@xenproject.org>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>
References: <20250808145602.41716-1-anthony@xenproject.org>
 <20250808145602.41716-5-anthony@xenproject.org>
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: <20250808145602.41716-5-anthony@xenproject.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08/08/2025 3:55 pm, Anthony PERARD wrote:
> diff --git a/tools/libs/light/Makefile b/tools/libs/light/Makefile
> index b690d92159..fa2a338c2b 100644
> --- a/tools/libs/light/Makefile
> +++ b/tools/libs/light/Makefile
> @@ -166,7 +166,8 @@ LDLIBS-$(CONFIG_Linux) += -luuid
>  LDLIBS-$(CONFIG_Linux) += -lrt
>  LDLIBS-$(CONFIG_ARM) += -lfdt
>  LDLIBS-y += $(PTHREAD_LIBS)
> -LDLIBS-y += -lyajl
> +LDLIBS-y += $(YAJL_LIBS)
> +LDLIBS-y += $(LIBJSONC_LIBS)
>  LDLIBS += $(LDLIBS-y)
>  
>  $(OBJS-y) $(PIC_OBJS) $(LIBXL_TEST_OBJS): CFLAGS += $(CFLAGS_LIBXL) -include $(XEN_ROOT)/tools/config.h
> @@ -246,7 +247,7 @@ libxenlight_test.so: $(PIC_OBJS) $(LIBXL_TEST_OBJS)
>  	$(CC) $(LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,libxenlight.so.$(MAJOR) $(SHLIB_LDFLAGS) -o $@ $^ $(LDLIBS) $(APPEND_LDFLAGS)
>  
>  test_%: test_%.o test_common.o libxenlight_test.so
> -	$(CC) $(LDFLAGS) -o $@ $^ $(filter-out %libxenlight.so, $(LDLIBS_libxenlight)) $(LDLIBS_libxentoollog) $(LDLIBS_libxentoolcore) -lyajl $(APPEND_LDFLAGS)
> +	$(CC) $(LDFLAGS) -o $@ $^ $(filter-out %libxenlight.so, $(LDLIBS_libxenlight)) $(LDLIBS_libxentoollog) $(LDLIBS_libxentoolcore) $(YAJL_LIBS) $(LIBJSONC_LIBS) $(APPEND_LDFLAGS)
>  
>  libxl-save-helper: $(SAVE_HELPER_OBJS) libxenlight.so
>  	$(CC) $(LDFLAGS) -o $@ $(SAVE_HELPER_OBJS) $(LDLIBS_libxentoollog) $(LDLIBS_libxenctrl) $(LDLIBS_libxenguest) $(LDLIBS_libxentoolcore) $(APPEND_LDFLAGS)
> diff --git a/tools/xl/Makefile b/tools/xl/Makefile
> index ad577cdd70..ff7a5aee94 100644
> --- a/tools/xl/Makefile
> +++ b/tools/xl/Makefile
> @@ -33,7 +33,7 @@ $(XL_OBJS): CFLAGS += -include $(XEN_ROOT)/tools/config.h # libxl_json.h needs i
>  all: xl
>  
>  xl: $(XL_OBJS)
> -	$(CC) $(LDFLAGS) -o $@ $(XL_OBJS) $(LDLIBS_libxenutil) $(LDLIBS_libxenlight) $(LDLIBS_libxentoollog) $(LDLIBS_libxenstore) -lyajl $(APPEND_LDFLAGS)
> +	$(CC) $(LDFLAGS) -o $@ $(XL_OBJS) $(LDLIBS_libxenutil) $(LDLIBS_libxenlight) $(LDLIBS_libxentoollog) $(LDLIBS_libxenstore) $(YAJL_LIBS) $(LIBJSONC_LIBS) $(APPEND_LDFLAGS)
>  
>  .PHONY: install
>  install: all

Specifying both isn't entirely great when one is supposed to be empty.

Could we not have XEN_JSON_LIB(s) which is set to either $YAJL_LIBS or
$LIBJSONC_LIBS as appropriate?

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 10:48:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 10:48:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077279.1438343 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulQ5D-0003mY-5u; Mon, 11 Aug 2025 10:48:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077279.1438343; Mon, 11 Aug 2025 10: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 1ulQ5D-0003mP-3C; Mon, 11 Aug 2025 10:48:51 +0000
Received: by outflank-mailman (input) for mailman id 1077279;
 Mon, 11 Aug 2025 10:48:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ku41=2X=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ulQ5B-0003LS-59
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 10:48:49 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c2ca76de-76a0-11f0-a325-13f23c93f187;
 Mon, 11 Aug 2025 12:48:48 +0200 (CEST)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-af9618282a5so812624866b.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 03:48: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
 a640c23a62f3a-af91a0a38b5sm1984422066b.45.2025.08.11.03.48.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 03:48: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>
X-Inumbo-ID: c2ca76de-76a0-11f0-a325-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754909328; x=1755514128; 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=sbm3KbZyAJ+XghdbEalKI6jCWVJ4zMDPQPcHycTTnlA=;
        b=PQntT7brKEqCaiPw6MG7jy4RchpqymOIYpYbJf2j1Zg7/x3iwt7jDUP/b/Vqb006ye
         cX8J3OtAvSdiEO4rHlzn0CzKeBFG8OVZa91EHahiSDElzFXUr7EVWcdsANFh3NhhgSFv
         Q+Q/lvGUVdwyaGQ3qwtJGUC2ED9HMylbiUoF5prxpFe+lFKyb+L7h1EAPRDJtizmqr2j
         A0Cmq6ewLyaF+rYLS6pPwRZ1IPi2boEIJu8DPkFvGDoEkUQ7Ml77LxNRaIMxDjbcTe5y
         ohyASVjjzLlkgSd0fXdjIqsSImDvwYQ7PKGsZwa1tJgjnler3SmXYc8cd6dO3uTUKZmq
         c/8w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754909328; x=1755514128;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=sbm3KbZyAJ+XghdbEalKI6jCWVJ4zMDPQPcHycTTnlA=;
        b=lo57cVESKxStKoTzGpeCbUD+eIOQq9fy3E31PzZrMfqvKLO6oX6e0PvWefPvup6SQB
         v07A1HmMRDPNwKK2585XIXukfuvOqGR63UBh1sy2vIYinimu9pUwQOXNs3ZqdIMcj5hO
         sBAVS53erxdXCdoCMUQiGZPk+HHlzL17KgmYPrsErsepXuUvJMwqP1nLuCy4+DWzrPt6
         njlanldYLtKwPHi5SueP5X/lv9OtuTeiwEswFB95UXMw5l5ffYN7CpcUuO3KHMCfxVHl
         TGz8b7/cBuCG4pdgu6L+a24Tii49chQSp2JMH+oW9L6nyzSvgNGLZB1Zf7dLlsciWEFH
         nbTg==
X-Gm-Message-State: AOJu0YzrUxnkRZzPHcB9K3HLOk8yxtygg0aWR9I5CyisHv312rb7ecm7
	aYKG/RG2TJa1gYnYflAJu3GNmdsByogSIIUhCc/qBAVKMBKtEqx240wd0LLQiiZVxqzGg2igZJL
	BslU=
X-Gm-Gg: ASbGncuWkdoiBGApgiNQ7J2ZzyiH1ldNDVqa3UOTjVCv2RgvnwkxE9P8kvYKG0GnKmD
	MQV+HRMeB60Rgw55L8LJ7/OFiTiauGHsA4YdV4ACiyG5qStSuu1o6FQ6gYogNyeKX/nWwi7N9nu
	MxaVzv73gsu/2IRltEfSkgR6KdDYXiWeZDeR78Sgso9mXjChMGoLtgFPkc/7aD4+l6d1jZklEv0
	fpOXXPlFPfbcqo0KwdjB12laXER/Hba+A4SGoRp4gUBF2KP0V+wxVpLKVtH6g6nFGS4yFmsI0Br
	FzBzmDcuqiK5LPYp3bJUijQfwoHf2dh2Maej/eQiaV78gAAEP+u9zV9/9Ihw9adNf3Uv+PJfWEI
	BkNdAsL8D3rPZILes796U+gpJVdU9YSzlpktsV8fJ04Yuu3pDJxCF+3HiHKu/+rghRLT7LdBO4R
	MrvsRGZU98cmm40ntPew==
X-Google-Smtp-Source: AGHT+IGq/AcezY/TTTrAfKIyX187mJ/fBPxnqnKeXTijPj9qBoXcaE73CnlcyYTHg3rzR3H6RqcKCg==
X-Received: by 2002:a17:907:c08:b0:ad8:9a86:cf52 with SMTP id a640c23a62f3a-af9c640db18mr1164942566b.11.1754909327824;
        Mon, 11 Aug 2025 03:48:47 -0700 (PDT)
Message-ID: <ddfd86ad-19b3-495b-930c-1770dd92fa99@suse.com>
Date: Mon, 11 Aug 2025 12:48:47 +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>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v2 0/2] x86/mm: unmapping and marking-as-I/O in
 arch_init_memory()
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

What we unmap there are mappings we better wouldn't have established in
the first place. Arrange for us to only ever map RAM, and then drop the
unmapping code, which was flawed anyway.

Nothing with a similar effect as patch 1 needs doing for xen.efi: Prior
to GNU binutils commit a844415db878 ("bfd/PE: correct SizeOfImage
calculation") too large a size was calculated. With that change in place,
image size is properly rounded up to a multiple of 2Mb.

1: mkelf32: pad load segment to 2Mb boundary
2: mm: drop unmapping from marking-as-I/O in arch_init_memory()

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 10:50:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 10:50:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077291.1438353 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulQ6L-0004LT-GT; Mon, 11 Aug 2025 10:50:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077291.1438353; Mon, 11 Aug 2025 10:50: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 1ulQ6L-0004LH-Dk; Mon, 11 Aug 2025 10:50:01 +0000
Received: by outflank-mailman (input) for mailman id 1077291;
 Mon, 11 Aug 2025 10:50:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ku41=2X=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ulQ6K-0004L9-Hs
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 10:50:00 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ec8d174c-76a0-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 12:49:58 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-af958127df5so632791966b.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 03: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
 a640c23a62f3a-af929c6a157sm1883763266b.91.2025.08.11.03.49.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 03:49: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>
X-Inumbo-ID: ec8d174c-76a0-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754909398; x=1755514198; 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=c0kRRXWE/dsdx4mKZYOIAFzRpb2D9T2OWENbKt8BtM0=;
        b=LcT9RvDwy+fK5IxjNq/TtFZ7JNl+IPMYHNSEs9t/StxBVeEyXqV954GMri3o1S9EAd
         kFnun4SAK6HbCDFWUXxMd+297WUpSoE3H7DbVZxKZh4dxCk+GnlaCOmwY+C8EDgVVwfO
         8R99P1H+zrpMIpSkDeXjMlFq6ONsYAGGvtKRh6puCIMqfXQYFyuLZ8gChRsv/odvHV8t
         u0rio2kaWQd68LPGDIVboXQ8u8M/LRhpGVCQc35h1iTlP+peRRy14VuwAxd5rhS9wlVj
         ciuzMdVAJwnff8428ncHQQ2j/2xpSf9Lp3rP13C90L30vtJ+L/n6XaWxHoMbgzZm6wUg
         rqgQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754909398; x=1755514198;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=c0kRRXWE/dsdx4mKZYOIAFzRpb2D9T2OWENbKt8BtM0=;
        b=fVjduTrfbVPKNS2PV73kc4jdEiyB/bJw5E/kjL0ooJZ3O/Uhw36PGdGI0behKDwqtW
         oZtqpMgCYsOtx3LMFM86//v7yESCVBayNyMPb2cBeZRRrpPmsCcfA4MF2XZFXk+1wgYh
         1KxlZvBuHIo7s59rCrRtO44/GRg3clvKE3kvR69eMvJXFKcbZW2RjXwY5ywldYGNv/oG
         LkuxdtRhanukE2r/AAJ/khu6k5/fVtDVS6uSikVG5BIgw/bvyN0rIp9WuUpJ5yRcHzTL
         lKRr8AOcv/HS+yCRSzLXfaRuxR/mi1DpZhrt/dJtGcdHMyKxqcgllPYBor3nYVXxFEXb
         CthQ==
X-Gm-Message-State: AOJu0YxF4zZ3J3Ys/N3Mp237gEZApIAn4+eQCDl/B7thNkgkV+xpyJ2P
	WeWu5mEcpY8qHZAxV14Ym/TpjEMslU6wwtBnkp/y7cX4pSKtbYBYIBwrkpWjf4NPu93pB3yo71w
	Td/Y=
X-Gm-Gg: ASbGncsetAeQ0gaDw0EnXwAYug1QhIRMJkQDQoyPgcLpfVAyMe+moRN4UgVPAJ+glfZ
	Au+QUyTvZAbaLz1wJMp7MaT+/exopQUilpxmiH+by7ITzjcSr9BGiDEYte2jYObRYBC6nFWCvxj
	bLiOY2yoSGaBLs2W1ajjlfLtm6h2AHx3WVqzOrjnm+STw18erg/NlWDu8kGIa0HA6KsfPwvJCJU
	f/gulUMOMJmd2sDxPbURhoGOk+2xtiJ5z4K3fiPs/RyMuizwlctKSbOB3F5lSTrV3FnLImJOsxA
	e/Wunmkqy1mzehzMHJwWYJMJTfuDTmCBelbVlJabqNc0Xof8ydeISo2EG5384SYvVeZtiTqv6OV
	5FSodtcQw0T8U9TPgYKDquo/2jr9R2Yac+dRM41YjCe+Hzkj+AoZaCOG4y0VveIL2JERj6u1y+0
	kPV/p5ZkY=
X-Google-Smtp-Source: AGHT+IFIiIOXTIfVIQ0ibV7NNZ95KDX2AyW9ZiKJINRkwWBFe/0km40+ll+vOgX3b6y501vFfzYcEQ==
X-Received: by 2002:a17:907:cd0e:b0:af9:3ad2:6930 with SMTP id a640c23a62f3a-af9c64859a3mr1060375766b.24.1754909397940;
        Mon, 11 Aug 2025 03:49:57 -0700 (PDT)
Message-ID: <6e295921-0432-435e-9efe-51caa106f203@suse.com>
Date: Mon, 11 Aug 2025 12:49:57 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v2 1/2] x86/mkelf32: pad load segment to 2Mb boundary
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: <ddfd86ad-19b3-495b-930c-1770dd92fa99@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: <ddfd86ad-19b3-495b-930c-1770dd92fa99@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

In order to legitimately set up initial mappings past _end[], we need
to make sure that the entire mapped range is inside a RAM region.
Therefore we need to inform the bootloader (or alike) that our allocated
size is larger than just the next SECTION_ALIGN-ed boundary past _end[].

This allows dropping a command line option from the tool, which was
introduced to work around a supposed linker bug, when the problem was
really Xen's.

While adjusting adjacent code, correct the argc check to also cover the
case correctly when --notes was passed.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
There's no good Fixes: tag, I don't think, as in theory the issue could
even have happened when we still required to be loaded at a fixed
physical address (1Mb originally, later 2Mb), and when we statically
mapped the low 16Mb. If we assumed such can't happen below 16Mb, these
two should be added:
Fixes: e4dd91ea85a3 ("x86: Ensure RAM holes really are not mapped in Xen's ongoing 1:1 physmap")
Fixes: 7cd7f2f5e116 ("x86/boot: Remove the preconstructed low 16M superpage mappings")
---
v2: New.

--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -130,8 +130,7 @@ orphan-handling-$(call ld-option,--orpha
 
 $(TARGET): TMP = $(dot-target).elf32
 $(TARGET): $(TARGET)-syms $(efi-y) $(obj)/boot/mkelf32
-	$(obj)/boot/mkelf32 $(notes_phdrs) $(TARGET)-syms $(TMP) $(XEN_IMG_OFFSET) \
-	               `$(NM) $(TARGET)-syms | sed -ne 's/^\([^ ]*\) . __2M_rwdata_end$$/0x\1/p'`
+	$(obj)/boot/mkelf32 $(notes_phdrs) $(TARGET)-syms $(TMP) $(XEN_IMG_OFFSET)
 	od -t x4 -N 8192 $(TMP)  | grep 1badb002 > /dev/null || \
 		{ echo "No Multiboot1 header found" >&2; false; }
 	od -t x4 -N 32768 $(TMP) | grep e85250d6 > /dev/null || \
--- a/xen/arch/x86/boot/mkelf32.c
+++ b/xen/arch/x86/boot/mkelf32.c
@@ -248,7 +248,6 @@ static void do_read(int fd, void *data,
 
 int main(int argc, char **argv)
 {
-    uint64_t   final_exec_addr;
     uint32_t   loadbase, dat_siz, mem_siz, note_base, note_sz, offset;
     char      *inimage, *outimage;
     int        infd, outfd;
@@ -261,22 +260,24 @@ int main(int argc, char **argv)
     Elf64_Ehdr in64_ehdr;
     Elf64_Phdr in64_phdr;
 
-    if ( argc < 5 )
+    if ( argc < 4 )
     {
+    help:
         fprintf(stderr, "Usage: mkelf32 [--notes] <in-image> <out-image> "
-                "<load-base> <final-exec-addr>\n");
+                "<load-base>\n");
         return 1;
     }
 
     if ( !strcmp(argv[1], "--notes") )
     {
+        if ( argc < 5 )
+            goto help;
         i = 2;
         num_phdrs = 2;
     }
     inimage  = argv[i++];
     outimage = argv[i++];
     loadbase = strtoul(argv[i++], NULL, 16);
-    final_exec_addr = strtoull(argv[i++], NULL, 16);
 
     infd = open(inimage, O_RDONLY);
     if ( infd == -1 )
@@ -339,9 +340,12 @@ int main(int argc, char **argv)
     (void)lseek(infd, in64_phdr.p_offset, SEEK_SET);
     dat_siz = (uint32_t)in64_phdr.p_filesz;
 
-    /* Do not use p_memsz: it does not include BSS alignment padding. */
-    /*mem_siz = (uint32_t)in64_phdr.p_memsz;*/
-    mem_siz = (uint32_t)(final_exec_addr - in64_phdr.p_vaddr);
+    /*
+     * We don't pad .bss in the linker script, but during early boot we map
+     * the Xen image using 2M pages.  To avoid running into adjacent non-RAM
+     * regions, pad the segment to the next 2M boundary.
+     */
+    mem_siz = ((uint32_t)in64_phdr.p_memsz + (1U << 20) - 1) & (-1U << 20);
 
     note_sz = note_base = offset = 0;
     if ( num_phdrs > 1 )



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 10:50:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 10:50:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077296.1438363 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulQ6l-0005lL-Np; Mon, 11 Aug 2025 10:50:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077296.1438363; Mon, 11 Aug 2025 10:50: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 1ulQ6l-0005kR-KS; Mon, 11 Aug 2025 10:50:27 +0000
Received: by outflank-mailman (input) for mailman id 1077296;
 Mon, 11 Aug 2025 10:50:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ku41=2X=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ulQ6k-0005a8-9S
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 10:50:26 +0000
Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com
 [2a00:1450:4864:20::52c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fc2ed450-76a0-11f0-a325-13f23c93f187;
 Mon, 11 Aug 2025 12:50:24 +0200 (CEST)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-61530559887so6661329a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 03:50: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
 4fb4d7f45d1cf-615a8ff9ae5sm17911920a12.43.2025.08.11.03.50.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 03:50: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>
X-Inumbo-ID: fc2ed450-76a0-11f0-a325-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754909424; x=1755514224; 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=NNP7nFEccI8WBoRocVIQ5vYhIflCxYg5OB3S5qlC4j0=;
        b=SNgEFLv7XtAKkgCPBDBbxsUdEoJc9x6BMPtQskPHxnpySGDEeSa1kXWuwa0rx6MGik
         jz53cGDYM+sdmOj96HOpeAhQ/ehq/tbbCd3XXGZnOrYiTJWt2EoS+dfuYRvJezBQF3VK
         DR/0fn7NBIeExL/MWP2LkdVO0gsPTJzBJtfQQUuHEDfr4oJmsJaVlRASbNwTWJcY9CBD
         JcbskeZq7JiRcPiT7U6XQpC4VAj9K+4uKYhkJ6TMBdoRPNMuPmOvomLiJK/PSS62+cQd
         rOvqviaCmRpzw/CzOuY87sRE6yG5fz8I6WEojZAovvZgQs1OSlkv9SI/LcAM3MBqEL+F
         TnTw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754909424; x=1755514224;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=NNP7nFEccI8WBoRocVIQ5vYhIflCxYg5OB3S5qlC4j0=;
        b=JFFCkgu0ac3IcFHdzYF25asY1WeEu4ZlO2/dGcII5jO1Abq7okAZZPeOz/yuJxTC8Y
         t4hlw4WFzpG8Yrgtevb+2+WgPJ19784J2oX6jWFOyZATGIRm9uXScDkdEvdjlLIpmGzN
         l7lp9bLXJPY+lfpnOXJWF5Az7egpF2trpHEYuAsKnQ64WrSLvblf/xM07APG1+KIagn+
         I1V0IEyd2HHTahpdFoLjRQQ3BQ2RmzvtMNtK/xDqvBfXQ/fHG+HbnTUwbbUD5cOrhv6w
         v1XZuQkq/eBYy26zFF/VEtBkd/V5oO1wtWJYDfvaQuz0/tgWUS2OkbzHmgBqfh6iOy2q
         Kobw==
X-Gm-Message-State: AOJu0YxVVEDLHuu31Mi3A5xayT0KurJbxXI55UCC5U8cXyQlZ30PsyBU
	MmhAQiIkcBfDcyKmOEtAvZlg7GFThAI1giM3uK2TDprTPk+dlCtbpXiAeIScqj8T0Ka6XHEg+KX
	fk+g=
X-Gm-Gg: ASbGncu7kLAI0XwTVmUG4lQrnOppR858zHy4bc/jozuUAPSJWIsREsoyL+l3JKfgBbH
	5XOpNB5pYly56TNBptKhntZY1PXw+naKCZSqbKvqf0i2DzifgSdZpEyP8sP+ThP6EmxJthPRxpG
	v6WyEA8azC+cg9miWV8ZuleEnbH5jYIZrRJ0JC8blyDYMdxOm9AmDPaB6jVrlAWTo3fcpt3aQrx
	d4H69WapUYG84MTGcgfvB60KczYW02D9wVASIXGWeSXbfsxA/1xpPR/XCnc8BDIgbO6Mw5wNF/+
	4z34K3V5ulcusD6zV4/v49H++z3QS9EBP+qjg0+rKFymMgj3iwLw/QEwxTzHwN6RJ73KYQJRvlP
	WVVUIpp7cRI9E1NrUsz1rCSeFyZEqz+zf+Ye1GzQkRacFNF5HK3O4oxK+AqoHM+Q+m2yXQ7pXvl
	0px4ZRpOM=
X-Google-Smtp-Source: AGHT+IGzX4dx7d/KHV1d0qMMph5KvSflSYCtu7+99cMBUjVuyjE3Mr8n2aQNe/dZhuCR+ATvlFYa2Q==
X-Received: by 2002:a05:6402:1ec4:b0:615:87a6:58a7 with SMTP id 4fb4d7f45d1cf-617e2e9e45bmr12117531a12.33.1754909424149;
        Mon, 11 Aug 2025 03:50:24 -0700 (PDT)
Message-ID: <5a862787-40d8-4c9f-bd89-01d866648120@suse.com>
Date: Mon, 11 Aug 2025 12:50:23 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v2 2/2] x86/mm: drop unmapping from marking-as-I/O in
 arch_init_memory()
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: <ddfd86ad-19b3-495b-930c-1770dd92fa99@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: <ddfd86ad-19b3-495b-930c-1770dd92fa99@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The unmapping part would have wanted to cover UNUSABLE regions as well,
and it would now have been necessary for space outside the low 16Mb
(wherever Xen is placed). However, with everything up to the next 2Mb
boundary now properly backed by RAM, we don't need to unmap anything
anymore: Space up to __2M_rwdata_end[] is properly reserved, whereas
space past that mark (up to the next 2Mb boundary) is ordinary RAM.

While there, limit the scopes of involved variables.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
v2: Drop unmapping code altogether.

--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -275,8 +275,6 @@ static void __init assign_io_page(struct
 
 void __init arch_init_memory(void)
 {
-    unsigned long i, pfn, rstart_pfn, rend_pfn, iostart_pfn, ioend_pfn;
-
     /*
      * Basic guest-accessible flags:
      *   PRESENT, R/W, USER, A/D, AVAIL[0,1,2], AVAIL_HIGH, NX (if available).
@@ -292,12 +290,17 @@ void __init arch_init_memory(void)
      * case the low 1MB.
      */
     BUG_ON(pvh_boot && trampoline_phys != 0x1000);
-    for ( i = 0; i < 0x100; i++ )
+    for ( unsigned int i = 0; i < MB(1) >> PAGE_SHIFT; i++ )
         assign_io_page(mfn_to_page(_mfn(i)));
 
-    /* Any areas not specified as RAM by the e820 map are considered I/O. */
-    for ( i = 0, pfn = 0; pfn < max_page; i++ )
+    /*
+     * Any areas not specified as RAM or UNUSABLE by the e820 map are
+     * considered I/O.
+     */
+    for ( unsigned long i = 0, pfn = 0; pfn < max_page; i++ )
     {
+        unsigned long rstart_pfn, rend_pfn;
+
         while ( (i < e820.nr_map) &&
                 (e820.map[i].type != E820_RAM) &&
                 (e820.map[i].type != E820_UNUSABLE) )
@@ -317,17 +320,6 @@ void __init arch_init_memory(void)
                                PFN_DOWN(e820.map[i].addr + e820.map[i].size));
         }
 
-        /*
-         * Make sure any Xen mappings of RAM holes above 1MB are blown away.
-         * In particular this ensures that RAM holes are respected even in
-         * the statically-initialised 1-16MB mapping area.
-         */
-        iostart_pfn = max_t(unsigned long, pfn, 1UL << (20 - PAGE_SHIFT));
-        ioend_pfn = min(rstart_pfn, 16UL << (20 - PAGE_SHIFT));
-        if ( iostart_pfn < ioend_pfn )
-            destroy_xen_mappings((unsigned long)mfn_to_virt(iostart_pfn),
-                                 (unsigned long)mfn_to_virt(ioend_pfn));
-
         /* Mark as I/O up to next RAM region. */
         for ( ; pfn < rstart_pfn; pfn++ )
         {
@@ -365,6 +357,7 @@ void __init arch_init_memory(void)
                     const l3_pgentry_t *l3idle = map_l3t_from_l4e(
                             idle_pg_table[l4_table_offset(split_va)]);
                     l3_pgentry_t *l3tab = map_domain_page(l3mfn);
+                    unsigned int i;
 
                     for ( i = 0; i < l3_table_offset(split_va); ++i )
                         l3tab[i] = l3idle[i];



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 10:54:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 10:54:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077311.1438373 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulQAR-0006hY-Bo; Mon, 11 Aug 2025 10:54:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077311.1438373; Mon, 11 Aug 2025 10:54: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 1ulQAR-0006hR-89; Mon, 11 Aug 2025 10:54:15 +0000
Received: by outflank-mailman (input) for mailman id 1077311;
 Mon, 11 Aug 2025 10:54:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ku41=2X=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ulQAP-0006hL-TC
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 10:54:13 +0000
Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com
 [2a00:1450:4864:20::632])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 827e03dd-76a1-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 12:54:10 +0200 (CEST)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-af968aa2de4so771470266b.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 03:54: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
 a640c23a62f3a-af91a21c157sm2007428166b.100.2025.08.11.03.54.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 03:54: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>
X-Inumbo-ID: 827e03dd-76a1-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754909649; x=1755514449; 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=mUCV2NyNMANoGwoFXtVyYXTcA8jNF19RM15JavBWQsA=;
        b=ZIXto8UJXTPOx6rvHSAjWRizj3Yyg1yIuITsZtI8v4M6hunbad/rep54povaoqEsO1
         JXPthrEskt1IBk+1aRpXlfdOfatVXm5w+fbyOYYaFvSvCRZmSi/DWE0bU9D7QbPBUnv+
         +gjmXuuc+98NGy7sclagSu06JOU0AUE/bYgGlCzwkl487KUrn69TJyqWt7bW3wzAgS2P
         QP+0g8sJpsJUKxIUzzsG3o96yMpcAIafTq6M8nVICEh03IBUYqeonOMJfJqlwxkelj4p
         CtyB3nMlmC0rARSYIKdB4WtIqYxxAZquRLnuQym5zwc8oFmCrk24YNogAbW9/nVTDogc
         AnZw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754909649; x=1755514449;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=mUCV2NyNMANoGwoFXtVyYXTcA8jNF19RM15JavBWQsA=;
        b=afP/lV++z74KKxWfMDA9XikJlTERyosLbqo/VBItS+i+8cF3ixK386YcKfjNuBmcLl
         op6SLk0OHe6K2+F8zLk7yfQHdeCVq5dAulVNH/+sycApnZwItNhTKZD5nrHGxZft/XUr
         40GVjbibvmASQMhnv9pASQzboVOJyd4+CDXBnzv5YZwSxRryaj17EXY4W2I8U6cVK6aG
         g7lNBLX2Aj4rk8A5k5H8fDQpaOh5haAwczYn7KGyGxpqwKXMLFyrPu4ISrCAOkapZ4+1
         /m45sFOYSifAX3zrY96cZcTVJpRilLHt72HxoYK8w3WrjCkEU5cT200hdmoDLzTvoyG0
         yngA==
X-Gm-Message-State: AOJu0Yw1jDOTgf9y20VMFCm3MuPcYIAwjwORY0OwXJDdNHl2pIjG/CLg
	sldvq5ZV3IYAbNt6mYJc+1DqjTnv+/OClJrP6aiK5yC+7BjL6R35OB/YGs1YKcOCGkgUm+NFZHp
	wG+A=
X-Gm-Gg: ASbGncvaXI1ecYAvqgxpnbA0UgQpUsY8ibfqZ+ip0F1nw2bz1xNT/RPGYkZEQLDz9we
	GknPcLlsVGGQs6/RAcY5k27TNqh8+Y02tMjy/yRZq6LNaX8aFR0nmii4FVXOW0mPQyFpAlJvQOz
	5As4/yjzO5ocvEewJ0jwolsu3Va+QwI5Z/bsU4wPvjau+g7x6qM6e6lRoWTT0WREBmPeZBm3vWj
	3ZxKkZnugBXwXMVxpB7MQmLGcuJRRqj6oQXK5jvakNFFbDoN3anrz1ppb3G8Qy448+HDYSNzUcI
	sn0kZcXwL+fzjC4fitrZyI/4xWt4GCq9TTiiYRfhgd5Jr2/wxL8MTzdvHsOIfXsv4v6Xn5iQJiQ
	fNe9ryQQFCC9bFWvyLafcrBVzbnyubv4Osl5fCDTdzGhU2EKr/Gb9RN5h2bBnsxfSyu4qxDYaex
	7ev5NiY5k=
X-Google-Smtp-Source: AGHT+IEgpHnKU7MIqgsQKSml3pAYfURDH06SDAw2wLNd+pnihsRB4O/q5UxkvwbxVKljV96FShrZ2A==
X-Received: by 2002:a17:906:6a02:b0:af9:4fa9:b132 with SMTP id a640c23a62f3a-af9c6516306mr1100470366b.33.1754909649391;
        Mon, 11 Aug 2025 03:54:09 -0700 (PDT)
Message-ID: <c6e38491-6fcd-4d14-a7da-fa77c9edc4a2@suse.com>
Date: Mon, 11 Aug 2025 12:54:08 +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] ELF: correct .note.* alignment handling
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

The present uniform 4-byte alignment hasn't been right for, I think, a
very long time (albeit not forever). As per e.g. [1], 8-byte alignment
is required in 64-bit ELF containers (and assembler-generated
.note.gnu.property, for example, is 8-byte aligned, while - oddly -
linker-generated .note.gnu.build-id is only 4-byte aligned [2]). Sadly
libelf is also affected, and hence going strictly by the spec would
break kernels also getting it wrong (e.g. Linux). Apply the same
heuristic as GNU readelf does: If section alignment is 4 or less, assume
only 4-byte padding.

[1] https://refspecs.linuxfoundation.org/elf/gabi4+/ch5.pheader.html#note_section
[2] https://sourceware.org/bugzilla/show_bug.cgi?id=33259

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
x86's mkelf32 also isn't dealing right with .note.* sections: Due to the
different padding rules for 32- and 64-bit ELF, what is correct in
xen-syms would need adjustment in xen. Question is whether we care
enough, as long as it's only a cosmetic problem: In the shim, the Xen
note comes first, and that's the only thing that really needs looking at
from the outside, aiui. (Since we actively tail-pad .note.Xen entries,
.note.gnu-build-id ends up correctly placed anyway, despite GNU ld only
aligning it at a 4-byte boundary.)

Arguably the spec text is ambiguous as to the width of namesz, descsz,
and type: They could well be meant to be 8-byte quantities in 64-bit
ELF as per "each entry is an array of 8-byte words". Yet with everyone
using 4-byte fields, that's the defacto standard now anyway.

--- a/xen/arch/x86/include/asm/asm_defns.h
+++ b/xen/arch/x86/include/asm/asm_defns.h
@@ -334,14 +334,14 @@ static always_inline void stac(void)
 
 #define ELFNOTE(name, type, desc)           \
     .pushsection .note.name, "a", @note   ; \
-    .p2align 2                            ; \
+    .balign BYTES_PER_LONG                ; \
     .long 2f - 1f       /* namesz */      ; \
     .long 4f - 3f       /* descsz */      ; \
     .long type          /* type   */      ; \
 1:  .asciz #name        /* name   */      ; \
-2:  .p2align 2                            ; \
+2:  .balign BYTES_PER_LONG                ; \
 3:  desc                /* desc   */      ; \
-4:  .p2align 2                            ; \
+4:  .balign BYTES_PER_LONG                ; \
     .popsection
 
 #define ASM_CONSTANT(name, value)                \
--- a/xen/common/libelf/libelf-dominfo.c
+++ b/xen/common/libelf/libelf-dominfo.c
@@ -583,6 +583,8 @@ elf_errorstatus elf_xen_parse(struct elf
     count = elf_phdr_count(elf);
     for ( i = 0; i < count; i++ )
     {
+        unsigned orig_align = elf->note_align;
+
         phdr = elf_phdr_by_index(elf, i);
         if ( !elf_access_ok(elf, ELF_HANDLE_PTRVAL(phdr), 1) )
             /* input has an insane program header count field */
@@ -597,10 +599,15 @@ elf_errorstatus elf_xen_parse(struct elf
         if (elf_uval(elf, phdr, p_offset) == 0)
              continue;
 
+        elf->note_align = elf_uval(elf, phdr, p_align);
+
         more_notes = elf_xen_parse_notes(elf, parms,
                                  elf_segment_start(elf, phdr),
                                  elf_segment_end(elf, phdr),
                                  &total_note_count);
+
+        elf->note_align = orig_align;
+
         if ( more_notes == ELF_NOTE_INVALID )
             return -1;
 
@@ -616,6 +623,8 @@ elf_errorstatus elf_xen_parse(struct elf
         count = elf_shdr_count(elf);
         for ( i = 1; i < count; i++ )
         {
+            unsigned orig_align = elf->note_align;
+
             shdr = elf_shdr_by_index(elf, i);
             if ( !elf_access_ok(elf, ELF_HANDLE_PTRVAL(shdr), 1) )
                 /* input has an insane section header count field */
@@ -624,11 +633,15 @@ elf_errorstatus elf_xen_parse(struct elf
             if ( elf_uval(elf, shdr, sh_type) != SHT_NOTE )
                 continue;
 
+            elf->note_align = elf_uval(elf, shdr, sh_addralign);
+
             more_notes = elf_xen_parse_notes(elf, parms,
                                      elf_section_start(elf, shdr),
                                      elf_section_end(elf, shdr),
                                      &total_note_count);
 
+            elf->note_align = orig_align;
+
             if ( more_notes == ELF_NOTE_INVALID )
                 return -1;
 
--- a/xen/common/libelf/libelf-loader.c
+++ b/xen/common/libelf/libelf-loader.c
@@ -72,6 +72,9 @@ elf_errorstatus elf_init(struct elf_bina
         return -1;
     }
 
+    /* Record default note alignment, as per EI_CLASS. */
+    elf->note_align = elf_64bit(elf) ? 8 : 4;
+
     /* Find section string table. */
     section = elf_uval(elf, elf->ehdr, e_shstrndx);
     shdr = elf_shdr_by_index(elf, section);
--- a/xen/common/libelf/libelf-tools.c
+++ b/xen/common/libelf/libelf-tools.c
@@ -288,6 +288,20 @@ ELF_HANDLE_DECL(elf_sym) elf_sym_by_inde
     return sym;
 }
 
+/*
+ * Notes are special: Formally for a long time the spec has demanded that
+ * 64-bit ELF would have 8-byte padding at respective places.  However, many
+ * producers were never updated, so apply a heuristic GNU readelf also applies:
+ * Take section (or segment) alignment into consideration.  When alignment is 4
+ * or less, assume only 4-byte padding.
+ */
+static unsigned elf_note_round_up(const struct elf_binary *elf, unsigned pos)
+{
+    unsigned align = elf_32bit(elf) || elf->note_align <= 4 ? 4 : 8;
+
+    return (pos + align - 1) & ~(align - 1);
+}
+
 const char *elf_note_name(struct elf_binary *elf, ELF_HANDLE_DECL(elf_note) note)
 {
     return elf_strval(elf, ELF_HANDLE_PTRVAL(note) + elf_size(elf, note));
@@ -295,9 +309,9 @@ const char *elf_note_name(struct elf_bin
 
 elf_ptrval elf_note_desc(struct elf_binary *elf, ELF_HANDLE_DECL(elf_note) note)
 {
-    unsigned namesz = (elf_uval(elf, note, namesz) + 3) & ~3;
-
-    return ELF_HANDLE_PTRVAL(note) + elf_size(elf, note) + namesz;
+    return ELF_HANDLE_PTRVAL(note) +
+           elf_note_round_up(elf,
+                             elf_size(elf, note) + elf_uval(elf, note, namesz));
 }
 
 uint64_t elf_note_numeric(struct elf_binary *elf, ELF_HANDLE_DECL(elf_note) note)
@@ -339,11 +353,9 @@ uint64_t elf_note_numeric_array(struct e
 
 ELF_HANDLE_DECL(elf_note) elf_note_next(struct elf_binary *elf, ELF_HANDLE_DECL(elf_note) note)
 {
-    unsigned namesz = (elf_uval(elf, note, namesz) + 3) & ~3;
-    unsigned descsz = (elf_uval(elf, note, descsz) + 3) & ~3;
-
-    elf_ptrval ptrval = ELF_HANDLE_PTRVAL(note)
-        + elf_size(elf, note) + namesz + descsz;
+    elf_ptrval ptrval =
+        elf_note_desc(elf, note) +
+        elf_note_round_up(elf, elf_uval(elf, note, descsz));
 
     if ( ( ptrval <= ELF_HANDLE_PTRVAL(note) || /* wrapped or stuck */
            !elf_access_ok(elf, ELF_HANDLE_PTRVAL(note), 1) ) )
--- a/xen/include/xen/elf.h
+++ b/xen/include/xen/elf.h
@@ -29,7 +29,7 @@
 
 #include <xen/elfstructs.h>
 
-#define ELFNOTE_ALIGN(_n_) (((_n_)+3)&~3)
+#define ELFNOTE_ALIGN(_n_) ROUNDUP(_n_, BYTES_PER_LONG)
 #define ELFNOTE_NAME(_n_) ((char*)(_n_) + sizeof(*(_n_)))
 #define ELFNOTE_DESC(_n_) (ELFNOTE_NAME(_n_) + ELFNOTE_ALIGN((_n_)->namesz))
 #define ELFNOTE_NEXT(_n_) ((Elf_Note *)(ELFNOTE_DESC(_n_) + ELFNOTE_ALIGN((_n_)->descsz)))
--- a/xen/include/xen/libelf.h
+++ b/xen/include/xen/libelf.h
@@ -181,6 +181,12 @@ struct elf_binary {
     char class;
     char data;
 
+    /*
+     * Note alignment is defaulted from EI_CLASS, but overridden by
+     * segment / section alignment.
+     */
+    unsigned note_align;
+
     ELF_HANDLE_DECL(elf_ehdr) ehdr;
     elf_ptrval sec_strtab;
     ELF_HANDLE_DECL(elf_shdr) sym_tab;


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 10:55:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 10:55:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077320.1438383 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulQBI-0007As-Jr; Mon, 11 Aug 2025 10:55:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077320.1438383; Mon, 11 Aug 2025 10:55:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulQBI-0007Al-GI; Mon, 11 Aug 2025 10:55:08 +0000
Received: by outflank-mailman (input) for mailman id 1077320;
 Mon, 11 Aug 2025 10:55:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=92re=2X=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ulQBG-00077e-Le
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 10:55:06 +0000
Received: from mail-wr1-x442.google.com (mail-wr1-x442.google.com
 [2a00:1450:4864:20::442])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a3c419ac-76a1-11f0-a325-13f23c93f187;
 Mon, 11 Aug 2025 12:55:06 +0200 (CEST)
Received: by mail-wr1-x442.google.com with SMTP id
 ffacd0b85a97d-3b783ea5014so2217484f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 03:55:06 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3b79c45346asm40154974f8f.39.2025.08.11.03.55.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 03: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>
X-Inumbo-ID: a3c419ac-76a1-11f0-a325-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754909705; x=1755514505; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=3y1G0o9q7WkoHWUqFPzY0iITIhOqZA3q0hcyApoZFpo=;
        b=FU9dRL2Jj6lxRplgB5hJtEEJwXzqz4wylqs3Z3zKAVbsJTHY8SzgOZ3+wzzDnDq9FJ
         2ztrmYYMM0KpSWH6tSagSu+RqSl6Sqqe58FQYRXY1EVov6bHRbYf6dyDYB4x5s+hIMT9
         GrS71DA6g/j0PbqFNFRON9uWs8Zih7vd/PI50=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754909705; x=1755514505;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3y1G0o9q7WkoHWUqFPzY0iITIhOqZA3q0hcyApoZFpo=;
        b=hbiwdhR4tyjRsLQ+xGNF1nAb22w3fkjfQgzw5Bt3xVRAzDcTzM9oN8IZxIUKkuozd5
         ZQwr1dG+c1Fm0NkbQByW6+7838dxo/3AZCViZLH3e2TshvjFXvbh8/GsLyo+pQefGGD7
         hfTo1wqqhF2UOMpXJ0CFciL/d07Vs6R2JFHq6MNIFTxxW0Kb8d5Tqt3IjF4RbkJdcKZk
         YMvaCJx8JVXTHxi+8uCuSUg4CmBmzG0oNv37NZfUtXs+VCPScA3H5Zqq8vSvKRvGM8jg
         U0X2kYr5Xyd17xFCxinzXQw45nkG/Tiq2ofJlayvuwkWKJ1Mkk5L6XYYwuiuz9uaDz9d
         UjLA==
X-Forwarded-Encrypted: i=1; AJvYcCV83PrSsvgN6UDNhxeKSs75uFO5CryyIc/7gWLrFhuZMCvR8iPpMqhDh8XDtEeOhFjjuN3Ht/ROQDM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxmOq0hLo+3GYaQEfFtAored13yiPhiItfuXoroKUryKArZ35WE
	LtKOR2rl+xm7TN/2k9nN70p6APlLDuChtNFVCVqZ5urvsxRObxzDTt7vscnR0iSFBEc=
X-Gm-Gg: ASbGncvtuUnu9VL5nocIw0wL59xRdHKuQTtxxg4rPzYQSbkFyCFO2QxaMFp6ugIVhXw
	mlKfFuGX15rz+7saxW4etIl7qG2VMaUFo+C7ZsCSTEK1jtSWApEZvqu5UP47j5xK4JlUurGDrbH
	Jl1wYhFE4uEYBnSZOz4DiVzMe9WZvQC2pK1o8EvbVLfVzl4dFTmHEa8msyGAU1lI8PlJdzqPiML
	BKYckQUV7E4hnMH/44/zm8gmoR51haCRzz0pSlTHRjtCK2N9xzMcd8dHHzkqpEa10GXcLUE7Ep4
	xArM0am50cIj9CZHPP2KbEkeM7F3vZ0eG0L6ARSGU9GeCq3jQZ2l2lRLd4TVGMoUYmN8243v0mP
	ejZ+W0HWf6dywgfjrFQ+ks8aGfefBM+uyOpSWxLnebHNvBeuJarcI2UqWbNE+EAzpj7dk
X-Google-Smtp-Source: AGHT+IGZGrgAx6eXpBSvlAk4LgvuGLqG8uyelBpfNSZd7VYVMaHyhvFwYtj0lHPYh/CdZFqajTB2wA==
X-Received: by 2002:a05:6000:2301:b0:3b7:9bfe:4f64 with SMTP id ffacd0b85a97d-3b900b6a9cbmr10593236f8f.54.1754909705275;
        Mon, 11 Aug 2025 03:55:05 -0700 (PDT)
Message-ID: <2f073fa0-5064-4cd2-b332-c3a6ceaf537a@citrix.com>
Date: Mon, 11 Aug 2025 11:55:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 11/11] Update CHANGELOG and README with dependency on
 json-c
To: Anthony PERARD <anthony@xenproject.org>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Community Manager <community.manager@xenproject.org>,
 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: <20250808145602.41716-1-anthony@xenproject.org>
 <20250808145602.41716-12-anthony@xenproject.org>
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: <20250808145602.41716-12-anthony@xenproject.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 08/08/2025 3:56 pm, Anthony PERARD wrote:
> From: Anthony PERARD <anthony.perard@vates.tech>
>
> Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>
> ---
>  CHANGELOG.md | 2 ++
>  README       | 2 +-
>  2 files changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/CHANGELOG.md b/CHANGELOG.md
> index 5f31ca08fe..83195e2dae 100644
> --- a/CHANGELOG.md
> +++ b/CHANGELOG.md
> @@ -11,6 +11,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>     - For x86, GCC 5.1 and Binutils 2.25, or Clang/LLVM 11
>     - For ARM32 and ARM64, GCC 5.1 and Binutils 2.25
>   - Linux based device model stubdomains are now fully supported.
> + - New dependency on library json-c, the toolstack will prefer it to `YAJL`
> +   when available.
>  
>   - On x86:
>     - Restrict the cache flushing done as a result of guest physical memory map
> diff --git a/README b/README
> index 6ee58f7b35..9329f30e13 100644
> --- a/README
> +++ b/README
> @@ -53,7 +53,7 @@ provided by your OS distributor:
>      * Development install of Python 2.7 or later (e.g., python-dev)
>      * Development install of curses (e.g., libncurses-dev)
>      * Development install of uuid (e.g. uuid-dev)
> -    * Development install of yajl (e.g. libyajl-dev)
> +    * Development install of json-c (e.g. libjson-c-dev) or yajl (e.g. libyajl-dev)
>      * Development install of libaio (e.g. libaio-dev) version 0.3.107 or
>        greater.
>      * Development install of GLib v2.0 (e.g. libglib2.0-dev)

What are we going to do about testing this?

We should add libjson-c to some build containers.Â  We need to annotate #
Xen < 4.21 in the existing containers so we can drop it in due course.

Also, for a container we don't intend to backport to stable trees, we
should have libjson-c only and no yajl.Â  Probably best to do this in the
Alpine update which is long overdue.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 11:00:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 11:00:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077328.1438393 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulQGT-0000Ki-5f; Mon, 11 Aug 2025 11:00:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077328.1438393; Mon, 11 Aug 2025 11:00: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 1ulQGT-0000Kb-2u; Mon, 11 Aug 2025 11:00:29 +0000
Received: by outflank-mailman (input) for mailman id 1077328;
 Mon, 11 Aug 2025 11:00:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=iJrJ=2X=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1ulQGR-0000KQ-B3
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 11:00:27 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20614.outbound.protection.outlook.com
 [2a01:111:f403:2417::614])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5ef17a1f-76a2-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 13:00:20 +0200 (CEST)
Received: from SA0PR11CA0030.namprd11.prod.outlook.com (2603:10b6:806:d3::35)
 by DM4PR12MB5915.namprd12.prod.outlook.com (2603:10b6:8:68::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.21; Mon, 11 Aug
 2025 11:00:17 +0000
Received: from SA2PEPF00003AEA.namprd02.prod.outlook.com
 (2603:10b6:806:d3:cafe::e1) by SA0PR11CA0030.outlook.office365.com
 (2603:10b6:806:d3::35) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9009.22 via Frontend Transport; Mon,
 11 Aug 2025 11:00:16 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SA2PEPF00003AEA.mail.protection.outlook.com (10.167.248.10) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9031.11 via Frontend Transport; Mon, 11 Aug 2025 11:00:15 +0000
Received: from localhost (10.180.168.240) 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 Aug
 2025 06:00:01 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5ef17a1f-76a2-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lv+PNXNE87bFQRPgsKXCtDuJP/f1WCt9pgVgv2zKveDTe9InEH4ajcy02xwq4mkJ085eVBZ8wSknHkkJO02OeGeGkiqZeinhMZh3N1WB+hPNHBEJYj3sF4fJghnaoAQORDJPRJt1NdEFBJILIJRDKWxeMtQc12t5MqOO8C38r3TN7Br6AdJKLEwJ93JE1WX67FjQmA0f2LFV2EQKbCuc0LqgYDCV1RXQtSnqg96XnS9A3l4UVz1qLMT6orUvy72oKPtJIQPYj8P3G5e+mqDi1bEcVor7Mr3wmLEaGYAmDH9Mr/kc7gP5RkoBQuUPnyloO1HY22D8+lX6lXvCU2VnRg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=6A+pbogFJrgKXrRlewIh3dkOnPguZ/VwrOay1zAcApQ=;
 b=MkV1m+qCq9XizdwVTtm6NAS9uvTMjQ3o6IQNLtHtZmIRFttdlXzRckBeScpQTeI63AkUKs+22YPP2CA6RtPai1HWaFqQnx/IpN0XvcPtmmsA+zguodXM+I5+L+yl03TZBaEvATEPkL2yNkCO1Bvn9qg7b+wHladoRE1jXvhj7QRYOEm+8VzBjN+5rPsZQun/149lUizIM8QJtndb8u/eZ6b6jUS8gYpYRN++wKg2rz0XyM2MiIpeV6HFRfzL23DALZ1jwVP7fQTVajpC1OQn7A/9rf5mobbCWIx4yBV8U2DEJIVbZYkgmn+CIShN10BmT0dGxWwpax6G4/OhEs/hPA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=proton.me 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=6A+pbogFJrgKXrRlewIh3dkOnPguZ/VwrOay1zAcApQ=;
 b=IGwhulCqTtdCeSPuxDacMElEVLBO68vCQ9SzzZbGZiyW8WggRlYxgyg+lJjM7HprnWJko7ijw9davUEd6Hrq331y+wtEdkd9JtLJawF+OvwVzKVoGxQY8/FVgCwsAZAKJhSyWmKRhMwGyf0infWQb4xuMwl/DHOfDgFYLIucfWk=
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=SATLEXMB04.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 11 Aug 2025 13:00:00 +0200
Message-ID: <DBZJOCP6J9OD.UBC62HPF2AJI@amd.com>
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>, "Julien
 Grall" <jgrall@amazon.com>, Xen-devel
	<xen-devel-bounces@lists.xenproject.org>
Subject: Re: [PATCH v15 1/4] xen/domain: unify domain ID allocation
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: <dmkhn@proton.me>, <xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.20.1
References: <20250809170747.1836880-1-dmukhin@ford.com>
 <20250809170747.1836880-2-dmukhin@ford.com>
In-Reply-To: <20250809170747.1836880-2-dmukhin@ford.com>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF00003AEA:EE_|DM4PR12MB5915:EE_
X-MS-Office365-Filtering-Correlation-Id: 0ea1a02a-3f2b-4db3-68a9-08ddd8c640db
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|376014|7416014|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?ZzlmMm1HaURoSHBrdCt5cmNOREkwMnVFdGs5dlkwQUxLL2ppU1hsNGdETFpH?=
 =?utf-8?B?R2RERUI3VWNDSTFuVGh1VDNoa3VjVU5FOHl0VUFCdFEya2xCMWRTeEpOU3hm?=
 =?utf-8?B?aWJJQXY5MUNrZFBlekxLVStBdFFKaXdTaElPRlFRMGFKMDNtS3RXYjIrUVg5?=
 =?utf-8?B?emZsQlhiZGozK3NlNVU2THNMcHRRVHcxWmVqeGRlTG1QVjM0NnplSDRCall2?=
 =?utf-8?B?OVdFWmp3WE5sVHpxT0d5eFE5Z1lzRUxLWGxNTHVZUmpkRFRkakVhazNwL1Za?=
 =?utf-8?B?RGl2MXpweFZXcjZEZVdwNkxtWm83RUdYUWRoRDlZcVBMdW5MM3d0NDVOYzRw?=
 =?utf-8?B?cW5KSmNxTGNSZE9lUDBKUGgxMWNwQjZLN24zVzBjSW44Z3l5akFLMTJQdzZk?=
 =?utf-8?B?bWJaakVNaHc4Um5XUU9lbUNMbVk3Q1NWM3RWcjk0WEF2NFNvblBzci9GR3N4?=
 =?utf-8?B?cTR1bTF0QXRSbk8vRHo2cWpndE1RazRrcWs5VmxOc2s0SVovZGpIOWx3MmNv?=
 =?utf-8?B?NktKRTlGS0V4OGpvTFhHeis2U3dMN3ZOaHA1ZUpqTWxvM1lOREU2am10ekpy?=
 =?utf-8?B?cnZXWmNSME5oaTVhM3MzUU85YU1zY1haWE91TXdtVkJpVFUrZFZ2VC9qUjZa?=
 =?utf-8?B?YTR6RE5XZE9XeXpFK0JGTFNLTUwzQkFDczFjVkZyRXVCRnlNbk42TGhCdE54?=
 =?utf-8?B?b0xKdk9WWUlyUk1zUjl2QiszSGVBeDZBb2NUTjVnN0oyZzBxODdYZ2FST2N2?=
 =?utf-8?B?cXVySjJIbWFoSGFzdFFJSVhTa0J6UjlZeVloby9qZGo1bXZNTEdraHRmQ1N6?=
 =?utf-8?B?MkFpaVNkSFpma2I2Wmg5N3dpR2J6R05HNExnVVBTMHBOaml6R0ExQWNYd2Er?=
 =?utf-8?B?R1N6Q0g1WjlEQkFLdzhZa08vWkZneGQxem1yZlh1em1EekRJZFNsNFBpVnJs?=
 =?utf-8?B?cUllYlhDR1h3MlNCbXBEVmYwcmRvWVpLbXRtSHY4QzFUZzRZUHVsVUY0Ny80?=
 =?utf-8?B?YkRTQzF1WlZMdzgreFpqei8wcEQrUkQ3ZEMraE9BQ0NaT2I4Zit0dGhRNTJL?=
 =?utf-8?B?dkFsK2ZZdEJweDVxQ012OGsxYXFvWjBVZjNrYkoyYk14L3lxaXZZQmZpTERr?=
 =?utf-8?B?amdhRjlSQXNVUCtYZTYrOGs0Ymx2MThMeUFuQWgxd0l6RlhlcFRBSU9OdDdL?=
 =?utf-8?B?QU5wSEVYZmt1SDNZLzBpWktxNUR4alNRb1BzcEw5b0NncWpmM1Y2WmZOTUJJ?=
 =?utf-8?B?NFdxaEkyMWF4TEhnNm5uNUJJbG15MFBDS2hEQmR6UExDNE1lMUQxSUV3TTNP?=
 =?utf-8?B?bjFxQjFCWTE0SGRIaGxSMHgvTzJtL2JWalhLMkU1ZjFIa0VGLzJTMWJrUnVm?=
 =?utf-8?B?Y0tZTFZYYlRYNkErOXF1QUxnUko5TUR5MG9Yc0J1aXVWTFIyUXBZZjNXSlpa?=
 =?utf-8?B?a0FhQXBoRm1KSk5rMXplOHJyaTJDeU9UeDV6TGlaaytmQjErS1d0UVFENktM?=
 =?utf-8?B?UXJWTHBmMzJobUVHRnhUQ1h1NXBCQmhWRFM1b0RtVnNkY28xSjZHV0N4RTRJ?=
 =?utf-8?B?aWFGZFQ1RzJtK3hwZlVGeWxNQ2dUZ3VZUFZVQzVHRWhQcUVabXRMUGJweUlp?=
 =?utf-8?B?Mk9IdkFYTWlyMWsvR05oVSticmZwRHVwQkozMURiK3RERTZBMnZzT0ZDeTR6?=
 =?utf-8?B?R2FLUHhIRzJJYXRrYWhibGVZdEdkS0ZoYkNZT0xMeFJrVkdjN2Q2dWxXR0Fl?=
 =?utf-8?B?QVdNVDBhK2NEdFNtOXpHc1lQdTNWcHpmNXVQK1dqMzJFS1BiaXJQNDhaMHZs?=
 =?utf-8?B?eE90NlJaYXJoK0VUTFlQSXFXUUl5WXBqRG8xQjZUbHZyQTdmU3FoQWZDeGNR?=
 =?utf-8?B?YUhnbi9WNG5qVGdZSmw4eEhLQ1U3cjQ3K3dJYy9YSGtWRkdyd2RpRnRzMlpq?=
 =?utf-8?B?NWpNTG5QR0dIQU8xUVoySlZXVk9nTTl1MlhTM0ZCK0tLUitLN3BUaXVSTERC?=
 =?utf-8?B?bjI5ZzJ4ZFVnTVdXMEtQSXBBM0RMbmM0K0hNZkFRM1pnQWV4ZnVDcm1NYmdi?=
 =?utf-8?Q?ptHkTg?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(376014)(7416014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Aug 2025 11:00:15.9071
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0ea1a02a-3f2b-4db3-68a9-08ddd8c640db
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF00003AEA.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5915

On Sat Aug 9, 2025 at 7:08 PM CEST, dmkhn wrote:
> From: Denis Mukhin <dmukhin@ford.com>=20
>
> Currently, there are two different domain ID allocation implementations:
>
>   1) Sequential IDs allocation in dom0less Arm code based on max_init_dom=
id;
>
>   2) Sequential IDs allocation in XEN_DOMCTL_createdomain; does not use
>      max_init_domid (both Arm and x86).
>
> The domain ID allocation covers dom0 or late hwdom, predefined domains,
> post-boot domains, excluding Xen system domains (domid >=3D
> DOMID_FIRST_RESERVED).
>
> It makes sense to have a common helper code for such task across architec=
tures
> (Arm and x86) and between dom0less / toolstack domU allocation.
>
> Note, fixing dependency on max_init_domid is out of scope of this patch.
>
> Wrap the domain ID allocation as an arch-independent function domid_alloc=
() in
> new common/domid.c based on the bitmap.
>
> Allocation algorithm:
> - If an explicit domain ID is provided, verify its availability and use i=
t if
>   ID is not used;
> - If DOMID_INVALID is provided, search the range [1..DOMID_FIRST_RESERVED=
-1],
>   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) a=
nd
>   excluded from the allocation range.
>
> Remove is_free_domid() helper as it is not needed now.
>
> No functional change intended.
>
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> Reviewed-by: Julien Grall <jgrall@amazon.com>

There's a nit below about a change in v14, but with or without that:

  Reviewed-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>

> ---
> Changes since v14:
> - added Julien's R-b
> ---
>  xen/arch/arm/domain_build.c             |  7 +-
>  xen/arch/x86/setup.c                    |  7 +-
>  xen/common/Makefile                     |  1 +
>  xen/common/device-tree/dom0less-build.c | 15 ++--
>  xen/common/domain.c                     |  2 +
>  xen/common/domctl.c                     | 43 ++---------
>  xen/common/domid.c                      | 95 +++++++++++++++++++++++++
>  xen/include/xen/domain.h                |  3 +
>  8 files changed, 126 insertions(+), 47 deletions(-)
>  create mode 100644 xen/common/domid.c
>
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index 463ae4474d30..789f2b9d3ce7 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -2050,6 +2050,7 @@ void __init create_dom0(void)
>          .grant_opts =3D XEN_DOMCTL_GRANT_version(opt_gnttab_max_version)=
,
>      };
>      unsigned int flags =3D CDF_privileged | CDF_hardware;
> +    domid_t domid;
>      int rc;
> =20
>      /* The vGIC for DOM0 is exactly emulating the hardware GIC */
> @@ -2074,7 +2075,11 @@ void __init create_dom0(void)
>      if ( !llc_coloring_enabled )
>          flags |=3D CDF_directmap;
> =20
> -    dom0 =3D domain_create(0, &dom0_cfg, flags);
> +    domid =3D domid_alloc(0);
> +    if ( domid =3D=3D DOMID_INVALID )
> +        panic("Error allocating domain ID 0\n");
> +
> +    dom0 =3D domain_create(domid, &dom0_cfg, flags);
>      if ( IS_ERR(dom0) )
>          panic("Error creating domain 0 (rc =3D %ld)\n", PTR_ERR(dom0));
> =20
> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> index 1543dd251cc6..398da734c0c5 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -1047,8 +1047,11 @@ static struct domain *__init create_dom0(struct bo=
ot_info *bi)
>      if ( iommu_enabled )
>          dom0_cfg.flags |=3D XEN_DOMCTL_CDF_iommu;
> =20
> -    /* Create initial domain.  Not d0 for pvshim. */
> -    bd->domid =3D get_initial_domain_id();
> +    /* Allocate initial domain ID.  Not d0 for pvshim. */
> +    bd->domid =3D domid_alloc(get_initial_domain_id());
> +    if ( bd->domid =3D=3D DOMID_INVALID )
> +        panic("Error allocating domain ID %u\n", get_initial_domain_id()=
);
> +
>      d =3D domain_create(bd->domid, &dom0_cfg,
>                        pv_shim ? 0 : CDF_privileged | CDF_hardware);
>      if ( IS_ERR(d) )
> diff --git a/xen/common/Makefile b/xen/common/Makefile
> index c316957fcb36..0c7d0f5d46e1 100644
> --- a/xen/common/Makefile
> +++ b/xen/common/Makefile
> @@ -11,6 +11,7 @@ obj-$(filter-out $(CONFIG_X86),$(CONFIG_ACPI)) +=3D dev=
ice.o
>  obj-$(CONFIG_DEVICE_TREE_PARSE) +=3D device-tree/
>  obj-$(CONFIG_IOREQ_SERVER) +=3D dm.o
>  obj-y +=3D domain.o
> +obj-y +=3D domid.o
>  obj-y +=3D event_2l.o
>  obj-y +=3D event_channel.o
>  obj-$(CONFIG_EVTCHN_FIFO) +=3D event_fifo.o
> diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-=
tree/dom0less-build.c
> index 6bb038111de9..f4b6b515d2d2 100644
> --- a/xen/common/device-tree/dom0less-build.c
> +++ b/xen/common/device-tree/dom0less-build.c
> @@ -833,6 +833,7 @@ void __init create_domUs(void)
>      {
>          struct kernel_info ki =3D KERNEL_INFO_INIT;
>          int rc =3D parse_dom0less_node(node, &ki.bd);
> +        domid_t domid;
> =20
>          if ( rc =3D=3D -ENOENT )
>              continue;
> @@ -842,13 +843,13 @@ void __init create_domUs(void)
>          if ( (max_init_domid + 1) >=3D DOMID_FIRST_RESERVED )
>              panic("No more domain IDs available\n");
> =20
> -        /*
> -         * The variable max_init_domid is initialized with zero, so here=
 it's
> -         * very important to use the pre-increment operator to call
> -         * domain_create() with a domid > 0. (domid =3D=3D 0 is reserved=
 for Dom0)
> -         */
> -        ki.bd.d =3D domain_create(++max_init_domid,
> -                                &ki.bd.create_cfg, ki.bd.create_flags);
> +        domid =3D domid_alloc(DOMID_INVALID);
> +        if ( domid =3D=3D DOMID_INVALID )
> +            panic("Error allocating ID for domain %s\n", dt_node_name(no=
de));
> +
> +        max_init_domid =3D max(max_init_domid, domid);
> +
> +        ki.bd.d =3D domain_create(domid, &ki.bd.create_cfg, ki.bd.create=
_flags);
>          if ( IS_ERR(ki.bd.d) )
>              panic("Error creating domain %s (rc =3D %ld)\n",
>                    dt_node_name(node), PTR_ERR(ki.bd.d));
> diff --git a/xen/common/domain.c b/xen/common/domain.c
> index 5241a1629eeb..a7e303253d1a 100644
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -692,6 +692,8 @@ static void _domain_destroy(struct domain *d)
> =20
>      lock_profile_deregister_struct(LOCKPROF_TYPE_PERDOM, d);
> =20
> +    domid_free(d->domain_id);
> +
>      free_domain_struct(d);
>  }
> =20
> diff --git a/xen/common/domctl.c b/xen/common/domctl.c
> index f2a7caaf853c..71e712c1f316 100644
> --- a/xen/common/domctl.c
> +++ b/xen/common/domctl.c
> @@ -51,20 +51,6 @@ static int xenctl_bitmap_to_nodemask(nodemask_t *nodem=
ask,
>                                     MAX_NUMNODES);
>  }
> =20
> -static inline int is_free_domid(domid_t dom)
> -{
> -    struct domain *d;
> -
> -    if ( dom >=3D DOMID_FIRST_RESERVED )
> -        return 0;
> -
> -    if ( (d =3D rcu_lock_domain_by_id(dom)) =3D=3D NULL )
> -        return 1;
> -
> -    rcu_unlock_domain(d);
> -    return 0;
> -}
> -
>  void getdomaininfo(struct domain *d, struct xen_domctl_getdomaininfo *in=
fo)
>  {
>      struct vcpu *v;
> @@ -423,36 +409,19 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t)=
 u_domctl)
> =20
>      case XEN_DOMCTL_createdomain:
>      {
> -        domid_t        dom;
> -        static domid_t rover =3D 0;
> +        /* NB: ID#0 is reserved, find the first suitable ID instead. */
> +        domid_t domid =3D domid_alloc(op->domain ?: DOMID_INVALID);
> =20
> -        dom =3D op->domain;
> -        if ( (dom > 0) && (dom < DOMID_FIRST_RESERVED) )
> +        if ( domid =3D=3D DOMID_INVALID )
>          {
>              ret =3D -EEXIST;
> -            if ( !is_free_domid(dom) )
> -                break;
> -        }
> -        else
> -        {
> -            for ( dom =3D rover + 1; dom !=3D rover; dom++ )
> -            {
> -                if ( dom =3D=3D DOMID_FIRST_RESERVED )
> -                    dom =3D 1;
> -                if ( is_free_domid(dom) )
> -                    break;
> -            }
> -
> -            ret =3D -ENOMEM;
> -            if ( dom =3D=3D rover )
> -                break;
> -
> -            rover =3D dom;
> +            break;
>          }
> =20
> -        d =3D domain_create(dom, &op->u.createdomain, false);
> +        d =3D domain_create(domid, &op->u.createdomain, false);
>          if ( IS_ERR(d) )
>          {
> +            domid_free(domid);
>              ret =3D PTR_ERR(d);
>              d =3D NULL;
>              break;
> diff --git a/xen/common/domid.c b/xen/common/domid.c
> new file mode 100644
> index 000000000000..7839a2885810
> --- /dev/null
> +++ b/xen/common/domid.c
> @@ -0,0 +1,95 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Domain ID allocator.
> + *
> + * Covers dom0 or late hwdom, predefined domains, post-boot domains.
> + * Excludes system domains (ID >=3D DOMID_FIRST_RESERVED).
> + *
> + * Copyright 2025 Ford Motor Company
> + */
> +
> +#include <xen/domain.h>
> +
> +static DEFINE_SPINLOCK(domid_lock);
> +static DECLARE_BITMAP(domid_bitmap, DOMID_FIRST_RESERVED);
> +
> +/*
> + * Allocate domain ID.
> + *
> + * @param domid Domain ID hint:
> + * - If an explicit domain ID is provided, verify its availability and u=
se it
> + *   if ID is not used;
> + * - If DOMID_INVALID is provided, search [1..DOMID_FIRST_RESERVED-1] ra=
nge,
> + *   starting from the last used ID. Implementation guarantees that two
> + *   consecutive calls will never return the same ID. ID#0 is reserved f=
or
> + *   the first boot domain (currently, dom0) and excluded from the alloc=
ation
> + *   range.
> + * @return Valid domain ID in case of successful allocation,
> + *         DOMID_INVALID - otherwise.
> + */
> +domid_t domid_alloc(domid_t domid)
> +{
> +    static domid_t domid_last;
> +
> +    spin_lock(&domid_lock);
> +
> +    /* Exact match. */
> +    if ( domid < DOMID_FIRST_RESERVED )
> +    {
> +        if ( __test_and_set_bit(domid, domid_bitmap) )
> +            domid =3D DOMID_INVALID;
> +    }
> +    /*
> +     * Exhaustive search.
> +     *
> +     * Domain ID#0 is reserved for the first boot domain (e.g. control d=
omain)
> +     * and excluded from allocation.
> +     */
> +    else
> +    {
> +        domid_t num =3D DOMID_FIRST_RESERVED;

nit: s/num/bound/, or something like that.

I don't care much though. If there's not going to be a v16 (and I hope not.=
 The
series has been girdling the mailing list long enough) feel free to ignore =
this.

> +
> +        domid =3D find_next_zero_bit(domid_bitmap, , domid_last + 1);
> +        if ( domid =3D=3D num && domid_last !=3D 0 )
> +        {
> +            num =3D domid_last + 1;
> +            domid =3D find_next_zero_bit(domid_bitmap, num, 1);
> +        }
> +
> +        ASSERT(domid <=3D DOMID_FIRST_RESERVED);
> +        if ( domid < num )
> +        {
> +            __set_bit(domid, domid_bitmap);
> +            domid_last =3D domid;
> +        }
> +        else
> +            domid =3D DOMID_INVALID;
> +    }
> +
> +    spin_unlock(&domid_lock);
> +
> +    return domid;
> +}
> +
> +void domid_free(domid_t domid)
> +{
> +    int rc;
> +
> +    ASSERT(domid <=3D DOMID_FIRST_RESERVED);
> +
> +    spin_lock(&domid_lock);
> +    rc =3D __test_and_clear_bit(domid, domid_bitmap);
> +    spin_unlock(&domid_lock);
> +
> +    ASSERT(rc);
> +}
> +
> +/*
> + * Local variables:
> + * mode: C
> + * c-file-style: "BSD"
> + * c-basic-offset: 4
> + * tab-width: 4
> + * indent-tabs-mode: nil
> + * End:
> + */
> diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
> index e10baf2615fd..8aab05ae93c8 100644
> --- a/xen/include/xen/domain.h
> +++ b/xen/include/xen/domain.h
> @@ -38,6 +38,9 @@ void arch_get_domain_info(const struct domain *d,
> =20
>  domid_t get_initial_domain_id(void);
> =20
> +domid_t domid_alloc(domid_t domid);
> +void domid_free(domid_t domid);
> +
>  /* CDF_* constant. Internal flags for domain creation. */
>  /* Is this a privileged domain? */
>  #define CDF_privileged           (1U << 0)



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 11:02:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 11:02:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077344.1438403 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulQIg-0001Gr-Lw; Mon, 11 Aug 2025 11:02:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077344.1438403; Mon, 11 Aug 2025 11:02:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulQIg-0001Gk-IY; Mon, 11 Aug 2025 11:02:46 +0000
Received: by outflank-mailman (input) for mailman id 1077344;
 Mon, 11 Aug 2025 11:02:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ku41=2X=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ulQIf-0001Ge-K5
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 11:02:45 +0000
Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com
 [2a00:1450:4864:20::530])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b48c48f7-76a2-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 13:02:43 +0200 (CEST)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-615460d9897so4867695a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 04:02: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
 a640c23a62f3a-af985e63730sm1178098266b.67.2025.08.11.04.02.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 04:02: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>
X-Inumbo-ID: b48c48f7-76a2-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754910163; x=1755514963; 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=0AbdxcfE/93uEpfKNSHP2CpS1hPezW07bTy7hhuuf1o=;
        b=SobbXrx8be3NVkAY7/197OlTsMTt2BoCY1541OAIzffX8K8VA6gXt6kBGI+RBIAk8/
         ccmHu0SvtBCokZo8odWJYa6PErzjI0BvJKQM3hB7qTjo8FJB0GQX6odgrqU10b55Jo2c
         VD8q38ox9BMzZwyodh/CPK4x7MREgqDRy/KgrRmadwd6XEzHo2Xxt1HBMWIz4fAUBHnr
         Ih0yZd18Jgz7LPMoipLMEFrr7bWzVf60QtWWuFtjnOGm3+JdWnQoy54TToTqm+4z0k5X
         upNuzayYWt5G8la17D7YBdFYiw7KxEnyUdwqgXJheLk12Yh+SzzHKjhNCXVSwPXTYJk5
         VDgA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754910163; x=1755514963;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=0AbdxcfE/93uEpfKNSHP2CpS1hPezW07bTy7hhuuf1o=;
        b=par7dekpa7uBQougi2hyr3VFj25Xs/5TnBbaxjESqeNZ75M7v6Fiwr67VsrcfMVnUc
         xsHtkbspTSkMkcWaMA0gONdIvHq2NJXYYYszR+NeISZitZecU1othPsT0O6s5k+icMHk
         tAWGILYcTPNAP8uk5iU467QVeOFIYJJMvZnz4oD+1/v6f+djohgjlVAgjpWuqGGh5Y4c
         E1bLKI3cgdLclEaV++aFD16an/BIwd6GiE0D37BMDVjnDNIIQVBbyxJeIwkhnqX5jl6+
         bcWg8dORvwDnnKhHJNWUguV/OcEcOBx6tvkK+aAiXaeEfQPjrZ+6NTdy5HgluTAVgM9P
         lFfg==
X-Gm-Message-State: AOJu0Yxcfs6YR8g1pEe8acywVCkPzR4yQQ5ZkRs42aXCIaOXLIq8E485
	x8RIsOPuHSl5mo/HQXzvRFe7YMiyS4qyPJsOssP3D+HjV/l32bJq2ntOCXWwZBgmlF0mkvGdDfD
	d1wM=
X-Gm-Gg: ASbGnctq3hJXgVNoZ8EE3djC0J8Hx+xsdUSr7ZJvtvnufp6xWH5DTatbwOREb+faWEB
	PBw9Z+1FEByl3u/3O1kL3Mxfnm98Ik159bgsmIbgMZQDfBMEaYAz4nFoPPVyokMlgvNbTFJ920C
	hq3bnsAl2Bm3mmUQpvRyXo726CF2ku/DKTstp5Q0Rz/jWg3VAv0tqppBryzlyhzRr7r7DUUn80q
	2qKwSMGAcEFljTAwRflXYinUYetPKg5Izs3ZGh5edGrASZjlBDAVyhdLkB9DKj5RJM2rx5fMZXB
	BRijPsrnQCGU9cnubjridC6tsC7e3+goYglXngrIWdtLkYDpb754As5gQZEVjQyIinVmfqAVOiC
	uGs0V/dXbLq9niebyafbpRhMOxSXCg8vBrpN0e8GnOaNrjtzOIUtV2JqQt26M+nfF0jr6pMU9pK
	et+fwwvDw3lsUQMkGFQQ==
X-Google-Smtp-Source: AGHT+IG7BI2fdJ+WmphpimgFK13VQDU56WaLOjncuHCXd8Joe2oal9SCDEXUZ+srDC7dmW7GTXa/AQ==
X-Received: by 2002:a17:906:730a:b0:af9:566c:4cd1 with SMTP id a640c23a62f3a-af9c6485b27mr1139701366b.24.1754910162737;
        Mon, 11 Aug 2025 04:02:42 -0700 (PDT)
Message-ID: <7a24d8c9-97c2-4721-9e38-600858b30119@suse.com>
Date: Mon, 11 Aug 2025 13:02: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>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH for-4.21?] x86: drop detection of ld supporting
 SORT_BY_INIT_PRIORITY()
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

GNU ld 2.25 supports this, and we already assume all lld versions do.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
While past the submission deadline, this fits the toolchain baseline
update we did in this release cycle, so I'd like to ask that it be
considered to still permit this in.

--- a/xen/arch/x86/arch.mk
+++ b/xen/arch/x86/arch.mk
@@ -72,16 +72,6 @@ ifeq ($(CONFIG_UBSAN),y)
 $(call cc-option-add,CFLAGS_UBSAN,CC,-fno-sanitize=alignment)
 endif
 
-ifeq ($(CONFIG_LD_IS_GNU),y)
-# While not much better than going by raw GNU ld version, utilize that the
-# feature we're after has appeared in the same release as the
-# --print-output-format command line option.
-AFLAGS-$(call ld-option,--print-output-format) += -DHAVE_LD_SORT_BY_INIT_PRIORITY
-else
-# Assume all versions of LLD support this.
-AFLAGS += -DHAVE_LD_SORT_BY_INIT_PRIORITY
-endif
-
 ifneq ($(CONFIG_PV_SHIM_EXCLUSIVE),y)
 
 efi-check := arch/x86/efi/check
--- a/xen/arch/x86/xen.lds.S
+++ b/xen/arch/x86/xen.lds.S
@@ -35,10 +35,6 @@ ENTRY(start_pa)
 # define SECTION_ALIGN PAGE_SIZE
 #endif
 
-#ifndef HAVE_LD_SORT_BY_INIT_PRIORITY
-# define SORT_BY_INIT_PRIORITY SORT
-#endif
-
 OUTPUT_FORMAT(FORMAT, FORMAT, FORMAT)
 
 OUTPUT_ARCH(i386:x86-64)


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 11:10:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 11:10:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077359.1438412 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulQQG-0002pn-DI; Mon, 11 Aug 2025 11:10:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077359.1438412; Mon, 11 Aug 2025 11:10:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulQQG-0002pg-Aj; Mon, 11 Aug 2025 11:10:36 +0000
Received: by outflank-mailman (input) for mailman id 1077359;
 Mon, 11 Aug 2025 11:10:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=92re=2X=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ulQQE-0001si-Qf
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 11:10:34 +0000
Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com
 [2a00:1450:4864:20::429])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cd23164e-76a3-11f0-a325-13f23c93f187;
 Mon, 11 Aug 2025 13:10:34 +0200 (CEST)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-3b7961cf660so3436425f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 04:10:34 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3b79c3abec8sm41873193f8f.8.2025.08.11.04.10.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 04:10: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>
X-Inumbo-ID: cd23164e-76a3-11f0-a325-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754910634; x=1755515434; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ihhxUOplkDCJ0sk+3/G1R8Pi/mQRhc86idSFJNHoez8=;
        b=VZQLvqCNOOH+3dffI1IZTzG28aOayicZr0JEEcdy0jdkfOmjtGRFwSk4/FSIFdkyU2
         2zxLT/hQV1W+u5elWT+V8fW77QSRr2tpRUhPqmezRs84r+WV4+6dmEPUtCg/QJ9wU48K
         5PBiOSxU7RVy+pmPgLgBdaHBI0doZ92XUM+Gs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754910634; x=1755515434;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ihhxUOplkDCJ0sk+3/G1R8Pi/mQRhc86idSFJNHoez8=;
        b=o/NyurCXPVMx92RP3P6cTaSpM8Xx0cZpv6h705c0k1cgDOgZCeq1LePy6JhcS9kfjE
         B6C9WCj8/mulAKzToGU2qbwNzzPfeExvwVESAuPlkpIqVwLJG0SfbMme6S8ICfYSVJAQ
         IvAgqT7IamJXxc32r0QpM3NlvvFlmDMYfW2hP45g2/52qkx9+QRBECEiaHuFVyF5bZ06
         J18Ses8lWdvn0PspXToLU7JdFGxU/EWzIKIXRA+BfLad2fBXW0onW9dwGBJdgy9fDjx0
         JE0x2dtndbRrpc3X8kYUrl41oleMYvlMdVWi7z6lZWTZZWMqOZ1HqFuNXLyzlzekfw3R
         gHxw==
X-Forwarded-Encrypted: i=1; AJvYcCWhEOnj8/aC2XNgC9BfvdT2LrCLlTnehGoacWsEa5ONsinTnb4kwv596+0L8JkdEyRa/ne7P5U1uW8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YymbYy18jNlM5yvaQrpJEW7vFVqr7AgMGhACqmw/vDrOOQCSwt2
	Vtko3uozA4J+BJoj4q2SvzhOXTPxB+hjITLMmIYX8gR1G7sydfBV2bTT2G2ioJMSPshldX7uo5V
	Szxa9s80=
X-Gm-Gg: ASbGnct4dJP65uJUigX1ukZUgXuSoPbQU5IobSQQFSemBr1oTWT0koNwHZcNq/5bQYg
	wI6FBZE5OXGTil6QWqNSK53T2OqnDuayKeTuu1D7/5gJxFP8X/cHLmWGnxbDecVvVQdM6S15gfu
	zhJRCjwvcHSvxQt8wZOZgYlQxbw6HyqNaFA+l4R2AUd85ktqeUdQAL6laUDajkZQ18bQ13G4221
	yC86LaybinmzivaCppsPrrYOn3oOjVhDyFpRZ/q0TeZMx0LNEe+E/XQa08nr8dyv7c0BjoDcksK
	LKuijz+nz+14jB+LkOolnT3jReSsTY3HJFNIKjdCnWnwrZ2DraeRjSdQUE51mzQaoGNIfG8eQZc
	iclTaWiuzPc/Tm0PyYuLzQyEVkL6rr3h46L+VCGQK76enr/Ss2y39dVjzZnw0OlHxu+JT
X-Google-Smtp-Source: AGHT+IFoYD35fxyc5jjW34hWU15OblY2lT4CeY4FI5/5uvEjJysPX0gln4wFkCYM43JAwPf6tHnEnQ==
X-Received: by 2002:a05:6000:20c4:b0:3b8:d493:31ed with SMTP id ffacd0b85a97d-3b900b7941fmr7230860f8f.47.1754910633644;
        Mon, 11 Aug 2025 04:10:33 -0700 (PDT)
Message-ID: <75f5d54e-8ec1-42dd-8f4f-6023113203ee@citrix.com>
Date: Mon, 11 Aug 2025 12:10:32 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.21?] x86: drop detection of ld supporting
 SORT_BY_INIT_PRIORITY()
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <7a24d8c9-97c2-4721-9e38-600858b30119@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: <7a24d8c9-97c2-4721-9e38-600858b30119@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11/08/2025 12:02 pm, Jan Beulich wrote:
> GNU ld 2.25 supports this, and we already assume all lld versions do.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

> ---
> While past the submission deadline, this fits the toolchain baseline
> update we did in this release cycle, so I'd like to ask that it be
> considered to still permit this in.

There's loads of cleanup still in the ticket I made and talked about at
the start of 4.21.

There are a view bits posted and still in need of pushing through, but I
consider anything along these lines to be fair game in the short term.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 11:14:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 11:14:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077368.1438423 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulQUQ-0003l2-Vo; Mon, 11 Aug 2025 11:14:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077368.1438423; Mon, 11 Aug 2025 11:14: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 1ulQUQ-0003kv-SB; Mon, 11 Aug 2025 11:14:54 +0000
Received: by outflank-mailman (input) for mailman id 1077368;
 Mon, 11 Aug 2025 11:14:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ku41=2X=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ulQUP-0003kp-OZ
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 11:14:53 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6674cf61-76a4-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 13:14:51 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-af949bdf36cso668994466b.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 04:14:51 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a078bcbsm2017405666b.13.2025.08.11.04.14.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 04:14: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>
X-Inumbo-ID: 6674cf61-76a4-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754910891; x=1755515691; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=KkCzwSV/g866fK3s1DnmfYgGH7Z2U9nOnZh0BEhlf/0=;
        b=aw0zjIUy6e4as/zmZO8PMjrv7WFRbwENhYbnf9zgPtH67tYE7r+v7QZHUGpw7xL+Kl
         RjsI0IGNvhIZwO8YRgkgvKr624cRjWATfiYkAYPWDpcYtR9g2MWp/y70abFwuEuYX1PO
         9P01MGz8lkMSRbQ5npKxBese2a3A1z5gm+/0wX6gdIySFrnb7alP4GpQWF+ItjNdBHSS
         YJjjKbw6pRbo27Pfx24VMcXNjCeORV2rfZDEo61LLpRyBo5zZ6y/YBO56Y0wg9WcOIOJ
         9q78Z6A0H/rnLShmd+ehZyXvLzdZj+R22sWCAi5xwpJVtYaxWW1LcXNQmtFzAinhvZRt
         wfCQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754910891; x=1755515691;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=KkCzwSV/g866fK3s1DnmfYgGH7Z2U9nOnZh0BEhlf/0=;
        b=ef4iRCqSGpqJW3jbaHBDKN+fhS+9LkOUxtNG1N14n18XdOb2yRrscU3wiI03V3CJNW
         K35qaKxmAHWayXctj8JVCdG50jaif3+zUiIC373o05Iigz0iET6JnWLoOPmdjM/GXYxW
         SeO5+8knUNrNstVjSKOOKQjyxLV/WYBB0tR6zgQuSI3A2i1SJilajSVLk2+3rIi+zudc
         zK89aIHpP2NVuZkbj/3A/sdw/VC/3MOfTWCah+pml4r9oKWjQP3pZcT4X1cFt1GF+H8M
         YCP9zT361oS5NgvDlwPfwMA0Nz6P7H7w7mOH3AQ4R/DhzliR91rgQeJcDJgkwV7dSPha
         ohYA==
X-Forwarded-Encrypted: i=1; AJvYcCVO9x6+ppzKwJt0doIant5P5E8AJgm6a1KfwB/Wn/CpEnWJqxvMTl2EZ2uSkU3C5gaw/aHXDgKBiD8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw737RU/kMlbTmAQi7n1AOeDizBXmVlUs8Y2D11qPdQclFI14Uo
	+TiGkhbAoi4Ep3ezVtzUkGTgo3XcHycP4ELGaBZ95CsJK41ckYPt920tKfiD+YFPGA==
X-Gm-Gg: ASbGnctc5YHe3QRowfPAEH4OwjyC45LlfbwVL2CzhD2e3q+gCecTPBN/zPZBIDi5G7U
	3/iMTEN5JVRE/nBaQqqm/VkHdfqBNbCWTFO8s2c+NJsiENB78NEvhBqE4YiQZ0IrNpWSpZ/ApnI
	7TDcE8TspcmXk4YzyIAr5flKxjhrvLX/M6tB3WZedheEXUtRuhLOPuPzoWkNyg7YRJ/GDfFIVS4
	dTOpp2b4qWGNV26Jg1AVjUxfgH2w4qYzJwndmkGQhnd1SrP3LdF80TwTY858wkcz0/rdq5Rzn7A
	1IkWLBCmlxBp7kvUeyZgi+2qhLhaNAzColNn0yX1iQjZpILIbFX1COXxWybWicLT0Qkd//zYLUw
	1R/i8AZ9j9osI5On+ywmWjp7UtzGHG2M5BRojSp5lMgofRTSESYtczB0iWbYmUXz48fBTgax+8/
	lZtFiFPsQ=
X-Google-Smtp-Source: AGHT+IGmhjF8w+DtfcJEiqASmVeiH3t77PaOIxhG48piG1AY/D5XEzAjpXj6cte47n0yV4eKQnCvfw==
X-Received: by 2002:a17:906:c114:b0:af9:add3:6bbb with SMTP id a640c23a62f3a-af9c64f2202mr1194435566b.29.1754910890888;
        Mon, 11 Aug 2025 04:14:50 -0700 (PDT)
Message-ID: <db85bafd-c2f8-4aa0-9cf4-0529b0a39bcd@suse.com>
Date: Mon, 11 Aug 2025 13:14:49 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v15 1/4] xen/domain: unify domain ID allocation
To: dmkhn@proton.me
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, Julien Grall <jgrall@amazon.com>,
 xen-devel@lists.xenproject.org
References: <20250809170747.1836880-1-dmukhin@ford.com>
 <20250809170747.1836880-2-dmukhin@ford.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: <20250809170747.1836880-2-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.08.2025 19:08, dmkhn@proton.me wrote:
> --- /dev/null
> +++ b/xen/common/domid.c
> @@ -0,0 +1,95 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Domain ID allocator.
> + *
> + * Covers dom0 or late hwdom, predefined domains, post-boot domains.
> + * Excludes system domains (ID >= DOMID_FIRST_RESERVED).
> + *
> + * Copyright 2025 Ford Motor Company
> + */
> +
> +#include <xen/domain.h>
> +
> +static DEFINE_SPINLOCK(domid_lock);
> +static DECLARE_BITMAP(domid_bitmap, DOMID_FIRST_RESERVED);
> +
> +/*
> + * Allocate domain ID.
> + *
> + * @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,
> + *   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
> + *   range.
> + * @return Valid domain ID in case of successful allocation,
> + *         DOMID_INVALID - otherwise.
> + */
> +domid_t domid_alloc(domid_t domid)
> +{
> +    static domid_t domid_last;
> +
> +    spin_lock(&domid_lock);
> +
> +    /* Exact match. */
> +    if ( domid < DOMID_FIRST_RESERVED )
> +    {
> +        if ( __test_and_set_bit(domid, domid_bitmap) )
> +            domid = DOMID_INVALID;
> +    }
> +    /*
> +     * Exhaustive search.
> +     *
> +     * Domain ID#0 is reserved for the first boot domain (e.g. control domain)
> +     * and excluded from allocation.
> +     */
> +    else
> +    {
> +        domid_t num = DOMID_FIRST_RESERVED;
> +
> +        domid = find_next_zero_bit(domid_bitmap, num, domid_last + 1);
> +        if ( domid == num && domid_last != 0 )

I'm pretty sure I commented on this before, yet then maybe it was in the context
of another patch: Using == here isn't sufficient; it needs to be >=. See e.g.
cpumask_next().

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 11:26:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 11:26:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077377.1438432 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulQfp-0005jV-Vk; Mon, 11 Aug 2025 11:26:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077377.1438432; Mon, 11 Aug 2025 11:26: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 1ulQfp-0005jO-TD; Mon, 11 Aug 2025 11:26:41 +0000
Received: by outflank-mailman (input) for mailman id 1077377;
 Mon, 11 Aug 2025 11:26:40 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Gc+J=2X=redhat.com=dhildenb@srs-se1.protection.inumbo.net>)
 id 1ulQfo-0005jI-GH
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 11:26:40 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.129.124])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0b8341de-76a6-11f0-a325-13f23c93f187;
 Mon, 11 Aug 2025 13:26:38 +0200 (CEST)
Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com
 [209.85.221.70]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-55-73juwwmYPlytD73zY6wTZg-1; Mon, 11 Aug 2025 07:26:36 -0400
Received: by mail-wr1-f70.google.com with SMTP id
 ffacd0b85a97d-3b78329f180so2068216f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 04:26:36 -0700 (PDT)
Received: from localhost
 (p200300d82f06a600a397de1d2f8bb66f.dip0.t-ipconnect.de.
 [2003:d8:2f06:a600:a397:de1d:2f8b:b66f])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3b79c3c4beasm39217323f8f.30.2025.08.11.04.26.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 04:26: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>
X-Inumbo-ID: 0b8341de-76a6-11f0-a325-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1754911597;
	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;
	bh=gjYKWewbFPIH0RV/ky7WxO7hTalH23xVuPMUQKkA/fk=;
	b=b9N4yw0qMi0C8VmE0T8CzhuELAtoRudiBaBzoe2QxuU0jGyQZeVcsguuEgSKWiNTzYZlmD
	Qqbex8QzN7gqvjsJMa1MbWNJJr0hHw1MEWUxVgVlR8Fn/+nFpClSj6NhO3CuAgGkWx+0UA
	FR0tB7Bn/9Vw2hKooJuAhpDPIVgwpUo=
X-MC-Unique: 73juwwmYPlytD73zY6wTZg-1
X-Mimecast-MFC-AGG-ID: 73juwwmYPlytD73zY6wTZg_1754911595
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754911595; x=1755516395;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=gjYKWewbFPIH0RV/ky7WxO7hTalH23xVuPMUQKkA/fk=;
        b=QEQ4lDuK4lK6KA4N6vHoFcDsHCI9F2BZoZly0zPqcvChAMeDP5A72dquM7Y1BHB+b6
         Xfp5esb94famjTsg0ZdtqaLdChLnkRZFDYz2L/0hOVTwtCAYUg3e1fXeOdjEm4No2wvx
         aIXZOG1zA9dW2BE0lxR0eXr7zrQoIDeK2JuP8qKfaQ0BHfe9MK32XajRSlBXzu8ORuIJ
         yC7AmnyLY1SFFhvYHb0Jm3ctu9LCrHvqEu+/+64LBzCflL0349EwZ+sCz2CwVi7IF4X9
         FsYPYg2rX6Ov+PxzPRlXPjAR9M7Xavz5bKfG85wZSExMsN5XANEVjnbnV1kxgTC0pVYD
         FITw==
X-Forwarded-Encrypted: i=1; AJvYcCUZdIU+1tg4OZO99Qd8GBMmPEuI+/GaMuKabyedENjVkShDlMtcwbWbpiLNxnqLscZitykOHyWMVdg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyOGmEGqbN/ch+WSudT546QeI7s6Cu0k3MVjrIl8LO8/aaBJaEv
	7bfkbi5PUSOgxkR2P7I4eagd7Zdhy/zJRxb649l0O9RiQAGWB2ts0WelzxwH5q3nCBbe88IcvGV
	iGPJDxf6qLIw0Mo6r6PjhewYRlnttizriHxgwyQHF9w2j0KUeKn9ZmvjnkHFlIy6ynsT2
X-Gm-Gg: ASbGncum7bFyWWFyRLW7+9nSB5Nnodbth1FHiRo2gLAsFz9Zl0nTTgdYiuQubd6QIEa
	ShNc6rZk7zCploVbrnJ/PYY49FYwrKcOoz3CkYTAS8yvkhW1nphWt8blEJZ6MP60GBn+bwDNMth
	91L5Rq0KnbVJ47PiIEEZ5/Z2oEv9l9ZwUUghqHk29k0xXiLBQ1xlhIN7nw3vIWeByzaquiYc35Z
	0IiSpn5gtF86PI98dR8+pBdYBJljzRHg/WJfORl9RHpYv9ghiy87+g0nK3hhk/3V66ZmaLepToK
	oYmRKUbnC03fDkGIpsHAtg7W1BLIXQYwD37spcm+bYxUFKnYXZkaY3YBeIbuZ4SC9EMiEcZ27b5
	S8AynICseYU3l42OCt/XB78n8
X-Received: by 2002:a05:6000:2f85:b0:3b7:8d70:e0ad with SMTP id ffacd0b85a97d-3b900b4d8c1mr8490180f8f.32.1754911594904;
        Mon, 11 Aug 2025 04:26:34 -0700 (PDT)
X-Google-Smtp-Source: AGHT+IHdQyxmL2k0hEit4q6ggWaLK63vDyy/XYp/bptTEvLLiDZ4Kssrq6afY7SHtzCWpxX9HX5tXQ==
X-Received: by 2002:a05:6000:2f85:b0:3b7:8d70:e0ad with SMTP id ffacd0b85a97d-3b900b4d8c1mr8490151f8f.32.1754911594303;
        Mon, 11 Aug 2025 04:26:34 -0700 (PDT)
From: David Hildenbrand <david@redhat.com>
To: linux-kernel@vger.kernel.org
Cc: linux-mm@kvack.org,
	xen-devel@lists.xenproject.org,
	linux-fsdevel@vger.kernel.org,
	nvdimm@lists.linux.dev,
	linuxppc-dev@lists.ozlabs.org,
	David Hildenbrand <david@redhat.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Nicholas Piggin <npiggin@gmail.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Dan Williams <dan.j.williams@intel.com>,
	Matthew Wilcox <willy@infradead.org>,
	Jan Kara <jack@suse.cz>,
	Alexander Viro <viro@zeniv.linux.org.uk>,
	Christian Brauner <brauner@kernel.org>,
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Mike Rapoport <rppt@kernel.org>,
	Suren Baghdasaryan <surenb@google.com>,
	Michal Hocko <mhocko@suse.com>,
	Zi Yan <ziy@nvidia.com>,
	Baolin Wang <baolin.wang@linux.alibaba.com>,
	Nico Pache <npache@redhat.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Dev Jain <dev.jain@arm.com>,
	Barry Song <baohua@kernel.org>,
	Jann Horn <jannh@google.com>,
	Pedro Falcato <pfalcato@suse.de>,
	Hugh Dickins <hughd@google.com>,
	Oscar Salvador <osalvador@suse.de>,
	Lance Yang <lance.yang@linux.dev>
Subject: [PATCH v3 00/11] mm: vm_normal_page*() improvements
Date: Mon, 11 Aug 2025 13:26:20 +0200
Message-ID: <20250811112631.759341-1-david@redhat.com>
X-Mailer: git-send-email 2.50.1
MIME-Version: 1.0
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: lZMQmXNCsXVopIRX4hN-CD5oazmRptcrTEc3Z9Psknw_1754911595
X-Mimecast-Originator: redhat.com
Content-Transfer-Encoding: 8bit
content-type: text/plain; charset="US-ASCII"; x-default=true

Based on mm/mm-new from today.

Cleanup and unify vm_normal_page_*() handling, also marking the
huge zerofolio as special in the PMD. Add+use vm_normal_page_pud() and
cleanup that XEN vm_ops->find_special_page thingy.

There are plans of using vm_normal_page_*() more widely soon.

Briefly tested on UML (making sure vm_normal_page() still works as expected
without pte_special() support) and on x86-64 with a bunch of tests.
Cross-compiled for a variety of weird archs.

v2 -> v3:
* "mm/huge_memory: mark PMD mappings of the huge zero folio special"
 -> Extend vm_normal_page_pmd() comment + patch description
 -> Take care of copy_huge_pmd() checking for pmd_special().
* "powerpc/ptdump: rename "struct pgtable_level" to "struct ptdump_pglevel""
 -> Added
* "mm/rmap: convert "enum rmap_level" to "enum pgtable_level""
 -> Added
* "mm/memory: convert print_bad_pte() to print_bad_page_map()"
 -> Consume level so we can keep the level indication through
    pgtable_level_to_str().
 -> Improve locking comments
* "mm/memory: factor out common code from vm_normal_page_*()"
 -> Factor everything out into __vm_normal_page() and let it consume the
    special bit + pfn (and the value+level for error reporting purposes)
 -> Improve function docs
 -> Improve patch description

v1 -> v2:
* "mm/memory: convert print_bad_pte() to print_bad_page_map()"
 -> Don't use pgdp_get(), because it's broken on some arm configs
 -> Extend patch description
 -> Don't use pmd_val(pmdp_get()), because that doesn't work on some
    m68k configs
* Added RBs

RFC -> v1:
* Dropped the highest_memmap_pfn removal stuff and instead added
  "mm/memory: convert print_bad_pte() to print_bad_page_map()"
* Dropped "mm: compare pfns only if the entry is present when inserting
  pfns/pages" for now, will probably clean that up separately.
* Dropped "mm: remove "horrible special case to handle copy-on-write
  behaviour"", and "mm: drop addr parameter from vm_normal_*_pmd()" will
  require more thought
* "mm/huge_memory: support huge zero folio in vmf_insert_folio_pmd()"
 -> Extend patch description.
* "fs/dax: use vmf_insert_folio_pmd() to insert the huge zero folio"
 -> Extend patch description.
* "mm/huge_memory: mark PMD mappings of the huge zero folio special"
 -> Remove comment from vm_normal_page_pmd().
* "mm/memory: factor out common code from vm_normal_page_*()"
 -> Adjust to print_bad_page_map()/highest_memmap_pfn changes.
 -> Add proper kernel doc to all involved functions
* "mm: introduce and use vm_normal_page_pud()"
 -> Adjust to print_bad_page_map() changes.

Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Nicholas Piggin <npiggin@gmail.com>
Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
Cc: Juergen Gross <jgross@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Jan Kara <jack@suse.cz>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Cc: Christian Brauner <brauner@kernel.org>
Cc: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Cc: "Liam R. Howlett" <Liam.Howlett@oracle.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: Mike Rapoport <rppt@kernel.org>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Zi Yan <ziy@nvidia.com>
Cc: Baolin Wang <baolin.wang@linux.alibaba.com>
Cc: Nico Pache <npache@redhat.com>
Cc: Ryan Roberts <ryan.roberts@arm.com>
Cc: Dev Jain <dev.jain@arm.com>
Cc: Barry Song <baohua@kernel.org>
Cc: Jann Horn <jannh@google.com>
Cc: Pedro Falcato <pfalcato@suse.de>
Cc: Hugh Dickins <hughd@google.com>
Cc: Oscar Salvador <osalvador@suse.de>
Cc: Lance Yang <lance.yang@linux.dev>

David Hildenbrand (11):
  mm/huge_memory: move more common code into insert_pmd()
  mm/huge_memory: move more common code into insert_pud()
  mm/huge_memory: support huge zero folio in vmf_insert_folio_pmd()
  fs/dax: use vmf_insert_folio_pmd() to insert the huge zero folio
  mm/huge_memory: mark PMD mappings of the huge zero folio special
  powerpc/ptdump: rename "struct pgtable_level" to "struct
    ptdump_pglevel"
  mm/rmap: convert "enum rmap_level" to "enum pgtable_level"
  mm/memory: convert print_bad_pte() to print_bad_page_map()
  mm/memory: factor out common code from vm_normal_page_*()
  mm: introduce and use vm_normal_page_pud()
  mm: rename vm_ops->find_special_page() to vm_ops->find_normal_page()

 arch/powerpc/mm/ptdump/8xx.c      |   2 +-
 arch/powerpc/mm/ptdump/book3s64.c |   2 +-
 arch/powerpc/mm/ptdump/ptdump.h   |   4 +-
 arch/powerpc/mm/ptdump/shared.c   |   2 +-
 drivers/xen/Kconfig               |   1 +
 drivers/xen/gntdev.c              |   5 +-
 fs/dax.c                          |  47 +----
 include/linux/mm.h                |  20 +-
 include/linux/pgtable.h           |  27 +++
 include/linux/rmap.h              |  60 +++---
 mm/Kconfig                        |   2 +
 mm/huge_memory.c                  | 122 +++++------
 mm/memory.c                       | 332 +++++++++++++++++++++---------
 mm/pagewalk.c                     |  20 +-
 mm/rmap.c                         |  56 ++---
 tools/testing/vma/vma_internal.h  |  18 +-
 16 files changed, 421 insertions(+), 299 deletions(-)


base-commit: 53c448023185717d0ed56b5546dc2be405da92ff
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 11:26:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 11:26:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077379.1438453 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulQft-0006C0-Hh; Mon, 11 Aug 2025 11:26:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077379.1438453; Mon, 11 Aug 2025 11:26: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 1ulQft-0006Bt-Db; Mon, 11 Aug 2025 11:26:45 +0000
Received: by outflank-mailman (input) for mailman id 1077379;
 Mon, 11 Aug 2025 11:26:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Gc+J=2X=redhat.com=dhildenb@srs-se1.protection.inumbo.net>)
 id 1ulQfs-0005jI-AV
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 11:26:44 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.133.124])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0e5f98b8-76a6-11f0-a325-13f23c93f187;
 Mon, 11 Aug 2025 13:26:43 +0200 (CEST)
Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com
 [209.85.221.71]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-128-sBgO6IejNDue9xi0LMjSkg-1; Mon, 11 Aug 2025 07:26:41 -0400
Received: by mail-wr1-f71.google.com with SMTP id
 ffacd0b85a97d-3b604541741so2205048f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 04:26:41 -0700 (PDT)
Received: from localhost
 (p200300d82f06a600a397de1d2f8bb66f.dip0.t-ipconnect.de.
 [2003:d8:2f06:a600:a397:de1d:2f8b:b66f])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3b79c3ac158sm41049329f8f.4.2025.08.11.04.26.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 04:26: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>
X-Inumbo-ID: 0e5f98b8-76a6-11f0-a325-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1754911602;
	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=1yyyzSa9KFCInkfs6rUjYFvQXjYygLyaHB4l27+lC7g=;
	b=auck456mTdU7YHdrANxIHldIkTQsFdlVSdzEmQr7AP5S3leBdk18h5JkTPz5naqoBAi1uk
	8C250HfjHjsPBmTUhdp4TsYt2lEkbX+NWh+f7Oqn3l4n4XOzPfg5fZ+osqWk4NOZIlKOuE
	xjC1Gpix8ZNZFhYBlaPrChGdlErFk4Y=
X-MC-Unique: sBgO6IejNDue9xi0LMjSkg-1
X-Mimecast-MFC-AGG-ID: sBgO6IejNDue9xi0LMjSkg_1754911600
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754911600; x=1755516400;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=1yyyzSa9KFCInkfs6rUjYFvQXjYygLyaHB4l27+lC7g=;
        b=agbBBy4fPEe3LdiL39lVpkJbS/nCT5zVDtaI1XoxBkWFqwQi/eb62qDEbQ2O/XdRqC
         WgZT+iANb++UJTwzAalVH0MkWWnzkPZHnwO7j41zB81gULXqOoG+nj+/7MbsaJLTvMfO
         4dCceFVjMLsCRr0QcX0kCq6PY5/OzqtlTGk+qG3cWeGuPLGB9CorRIMpMpH6NZQe+MxG
         xgW7L9hx9pxjApgaIPdKHwdwcKFr+rrMfZsUSnJlvoMe+eMkRpXuFrUMv+Bc38sgDJCV
         bWau6Nl9DwuDf+bGb4Fqbr1WoVYfc8+YunkvHPwK4kTnJjzvUXJkQlDAEMRHFGNJtgJK
         J4dQ==
X-Forwarded-Encrypted: i=1; AJvYcCWG9VqoNyIZZ4jUhE/Mgl8sNY8GahyNbmOuvUyX60+Ofb6Es3vKtSNHXGL9WCnbPZ0Vk8Ub4VVSb5s=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzZXLkyoaQ4RE/XA5DrEg1dSh+1xnZfJ/wMDSOThsQiy70YIEbA
	Dw+s5Eph7Tst/BhhhAD2EvUdlxarsMOSGAkEXCpTPaw7brqkiNubPctdKmmDXuABo7hNZK6EB2U
	h8xB0+Qc9Atn+aNbFsoGjdHdoaq89FSuhFxWqPPNUTEEaj3wq6zJ3bry1YXFaFyPVZ7p4
X-Gm-Gg: ASbGncuMUF3oeCpQAPFPI0IsOUNfyCRTIDI3x+0v+fW7pPgTijV0D4bAUPRgAxrP8QC
	K1iT33T2tPtlrEzoLbCtCZXW48b3hE3fP1VGcppOdytHL+zYEhfJAV6hJFlAoY1K2dnldz3oJhn
	s0nQsUaJFsW8FgTyxVBVCVCSpbqQ/prr/79U6hKf8D0222gYu7NNYuZCvgCL2oWtVuUrD/4VOzx
	czK9rUwfz62WgBFpyooSG3j2vrDxEC8Fo6l3Wf8oLVpbFDGF0RQ4gkpMZKjNWKt8doQAglRXSAw
	88+xC3UmXyewW00udw4NWIyjTuscDbrJEYWiNaKTLrBdl96TT0paVM/R+YZZpjsBN1RcdLwqoVu
	jLroiQZsE2Lj5rAbAfvQokpos
X-Received: by 2002:a05:6000:420f:b0:3b7:8c98:2f4c with SMTP id ffacd0b85a97d-3b900b750bfmr10920299f8f.33.1754911599891;
        Mon, 11 Aug 2025 04:26:39 -0700 (PDT)
X-Google-Smtp-Source: AGHT+IG6Mu1XA5qq3G00OwHlXO/yqxgcBzsacx06Jz+W5A1O+vqwNvOeLKy9GaCA2AZU3zaKT01H6g==
X-Received: by 2002:a05:6000:420f:b0:3b7:8c98:2f4c with SMTP id ffacd0b85a97d-3b900b750bfmr10920251f8f.33.1754911599405;
        Mon, 11 Aug 2025 04:26:39 -0700 (PDT)
From: David Hildenbrand <david@redhat.com>
To: linux-kernel@vger.kernel.org
Cc: linux-mm@kvack.org,
	xen-devel@lists.xenproject.org,
	linux-fsdevel@vger.kernel.org,
	nvdimm@lists.linux.dev,
	linuxppc-dev@lists.ozlabs.org,
	David Hildenbrand <david@redhat.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Nicholas Piggin <npiggin@gmail.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Dan Williams <dan.j.williams@intel.com>,
	Matthew Wilcox <willy@infradead.org>,
	Jan Kara <jack@suse.cz>,
	Alexander Viro <viro@zeniv.linux.org.uk>,
	Christian Brauner <brauner@kernel.org>,
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Mike Rapoport <rppt@kernel.org>,
	Suren Baghdasaryan <surenb@google.com>,
	Michal Hocko <mhocko@suse.com>,
	Zi Yan <ziy@nvidia.com>,
	Baolin Wang <baolin.wang@linux.alibaba.com>,
	Nico Pache <npache@redhat.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Dev Jain <dev.jain@arm.com>,
	Barry Song <baohua@kernel.org>,
	Jann Horn <jannh@google.com>,
	Pedro Falcato <pfalcato@suse.de>,
	Hugh Dickins <hughd@google.com>,
	Oscar Salvador <osalvador@suse.de>,
	Lance Yang <lance.yang@linux.dev>,
	Alistair Popple <apopple@nvidia.com>,
	Wei Yang <richard.weiyang@gmail.com>
Subject: [PATCH v3 02/11] mm/huge_memory: move more common code into insert_pud()
Date: Mon, 11 Aug 2025 13:26:22 +0200
Message-ID: <20250811112631.759341-3-david@redhat.com>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250811112631.759341-1-david@redhat.com>
References: <20250811112631.759341-1-david@redhat.com>
MIME-Version: 1.0
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: 2zV0Bc21GohKuoi5U4zDBF3S50vqwpmwGFZf3gWoiCA_1754911600
X-Mimecast-Originator: redhat.com
Content-Transfer-Encoding: 8bit
content-type: text/plain; charset="US-ASCII"; x-default=true

Let's clean it all further up.

No functional change intended.

Reviewed-by: Oscar Salvador <osalvador@suse.de>
Reviewed-by: Alistair Popple <apopple@nvidia.com>
Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Reviewed-by: Wei Yang <richard.weiyang@gmail.com>
Signed-off-by: David Hildenbrand <david@redhat.com>
---
 mm/huge_memory.c | 36 +++++++++++++-----------------------
 1 file changed, 13 insertions(+), 23 deletions(-)

diff --git a/mm/huge_memory.c b/mm/huge_memory.c
index 5314a89d676f1..7933791b75f4d 100644
--- a/mm/huge_memory.c
+++ b/mm/huge_memory.c
@@ -1507,25 +1507,30 @@ static pud_t maybe_pud_mkwrite(pud_t pud, struct vm_area_struct *vma)
 	return pud;
 }
 
-static void insert_pud(struct vm_area_struct *vma, unsigned long addr,
+static vm_fault_t insert_pud(struct vm_area_struct *vma, unsigned long addr,
 		pud_t *pud, struct folio_or_pfn fop, pgprot_t prot, bool write)
 {
 	struct mm_struct *mm = vma->vm_mm;
+	spinlock_t *ptl;
 	pud_t entry;
 
+	if (addr < vma->vm_start || addr >= vma->vm_end)
+		return VM_FAULT_SIGBUS;
+
+	ptl = pud_lock(mm, pud);
 	if (!pud_none(*pud)) {
 		const unsigned long pfn = fop.is_folio ? folio_pfn(fop.folio) :
 					  fop.pfn;
 
 		if (write) {
 			if (WARN_ON_ONCE(pud_pfn(*pud) != pfn))
-				return;
+				goto out_unlock;
 			entry = pud_mkyoung(*pud);
 			entry = maybe_pud_mkwrite(pud_mkdirty(entry), vma);
 			if (pudp_set_access_flags(vma, addr, pud, entry, 1))
 				update_mmu_cache_pud(vma, addr, pud);
 		}
-		return;
+		goto out_unlock;
 	}
 
 	if (fop.is_folio) {
@@ -1544,6 +1549,9 @@ static void insert_pud(struct vm_area_struct *vma, unsigned long addr,
 	}
 	set_pud_at(mm, addr, pud, entry);
 	update_mmu_cache_pud(vma, addr, pud);
+out_unlock:
+	spin_unlock(ptl);
+	return VM_FAULT_NOPAGE;
 }
 
 /**
@@ -1565,7 +1573,6 @@ vm_fault_t vmf_insert_pfn_pud(struct vm_fault *vmf, unsigned long pfn,
 	struct folio_or_pfn fop = {
 		.pfn = pfn,
 	};
-	spinlock_t *ptl;
 
 	/*
 	 * If we had pud_special, we could avoid all these restrictions,
@@ -1577,16 +1584,9 @@ vm_fault_t vmf_insert_pfn_pud(struct vm_fault *vmf, unsigned long pfn,
 						(VM_PFNMAP|VM_MIXEDMAP));
 	BUG_ON((vma->vm_flags & VM_PFNMAP) && is_cow_mapping(vma->vm_flags));
 
-	if (addr < vma->vm_start || addr >= vma->vm_end)
-		return VM_FAULT_SIGBUS;
-
 	pfnmap_setup_cachemode_pfn(pfn, &pgprot);
 
-	ptl = pud_lock(vma->vm_mm, vmf->pud);
-	insert_pud(vma, addr, vmf->pud, fop, pgprot, write);
-	spin_unlock(ptl);
-
-	return VM_FAULT_NOPAGE;
+	return insert_pud(vma, addr, vmf->pud, fop, pgprot, write);
 }
 EXPORT_SYMBOL_GPL(vmf_insert_pfn_pud);
 
@@ -1603,25 +1603,15 @@ vm_fault_t vmf_insert_folio_pud(struct vm_fault *vmf, struct folio *folio,
 {
 	struct vm_area_struct *vma = vmf->vma;
 	unsigned long addr = vmf->address & PUD_MASK;
-	pud_t *pud = vmf->pud;
-	struct mm_struct *mm = vma->vm_mm;
 	struct folio_or_pfn fop = {
 		.folio = folio,
 		.is_folio = true,
 	};
-	spinlock_t *ptl;
-
-	if (addr < vma->vm_start || addr >= vma->vm_end)
-		return VM_FAULT_SIGBUS;
 
 	if (WARN_ON_ONCE(folio_order(folio) != PUD_ORDER))
 		return VM_FAULT_SIGBUS;
 
-	ptl = pud_lock(mm, pud);
-	insert_pud(vma, addr, vmf->pud, fop, vma->vm_page_prot, write);
-	spin_unlock(ptl);
-
-	return VM_FAULT_NOPAGE;
+	return insert_pud(vma, addr, vmf->pud, fop, vma->vm_page_prot, write);
 }
 EXPORT_SYMBOL_GPL(vmf_insert_folio_pud);
 #endif /* CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD */
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 11:26:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 11:26:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077378.1438443 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulQfr-0005xM-Ac; Mon, 11 Aug 2025 11:26:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077378.1438443; Mon, 11 Aug 2025 11:26: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 1ulQfr-0005xF-6o; Mon, 11 Aug 2025 11:26:43 +0000
Received: by outflank-mailman (input) for mailman id 1077378;
 Mon, 11 Aug 2025 11:26:42 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Gc+J=2X=redhat.com=dhildenb@srs-se1.protection.inumbo.net>)
 id 1ulQfq-0005jI-AO
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 11:26:42 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.133.124])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0cf58e09-76a6-11f0-a325-13f23c93f187;
 Mon, 11 Aug 2025 13:26:41 +0200 (CEST)
Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com
 [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-498-v6WxP5U-M2i8oZ1wGWdFug-1; Mon, 11 Aug 2025 07:26:38 -0400
Received: by mail-wm1-f71.google.com with SMTP id
 5b1f17b1804b1-459de8f00cfso17528645e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 04:26:38 -0700 (PDT)
Received: from localhost
 (p200300d82f06a600a397de1d2f8bb66f.dip0.t-ipconnect.de.
 [2003:d8:2f06:a600:a397:de1d:2f8b:b66f])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3b79c3abf33sm40550137f8f.7.2025.08.11.04.26.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 04:26: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>
X-Inumbo-ID: 0cf58e09-76a6-11f0-a325-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1754911600;
	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=Htya8lk0ohNZGoVKNkWH4Tb4G28S+mHG9GYTekXNGbw=;
	b=BSFR/Fi34tP9TYXtSKf6EKayic9rWNswzONRojFnyHfcPvfZqbKbk1pYdoZv+k5ZXanlKC
	4pj2xi/Wk1jDEb46x/FoHBY6I0DYUxjAeV1N1okm3WVuall1fJ8kl28ToTSspr0DYwffuY
	xdWkElrZ4TN6nvSt5P+AYfKKi//FXn0=
X-MC-Unique: v6WxP5U-M2i8oZ1wGWdFug-1
X-Mimecast-MFC-AGG-ID: v6WxP5U-M2i8oZ1wGWdFug_1754911598
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754911597; x=1755516397;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=Htya8lk0ohNZGoVKNkWH4Tb4G28S+mHG9GYTekXNGbw=;
        b=PhY8M2DU7oBJw8PAaEQG1n3NG2GRgQdhZDrIEZsG16ln50iInnlmkSMyuT0C7uPhr+
         NI1NU8L8bWYrJkcduEf4LEEffaJPmYeD34QPSTD7tBadJYR0mcgsyy+PWXkP91soUMrW
         JXIO2TwOr1Agcyq40xXMHa1JRmY3unhDGNXeaQFwn4oeWQDFeoTgBFSuqU2bICLCjlrM
         v5+iXwgM1wScTLkXFHz5p1a6M0eU+6iBKToqznsPWhTgrS52Qg0Ayv63L0K4K8g9JcP0
         C1CehowoJL7MFACUMXMkwuRgKpI9i0BgkxvdQFEZlvZA5nC0i+b1ud4zW2HAUNkYRdr8
         HFdA==
X-Forwarded-Encrypted: i=1; AJvYcCUHxsPBN8pT3PwCqEKMt+UMjyZny150UExZgFBwvd8JH+A6PWlxiDjmTg7NwLsghU+jHP9yUFSrwOU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxrmbs95Gob2F9uXXZ7XB2/K7thcHfF2EIMNcz0etu2CQ9jYvOp
	dk8uv3Wp2FN6dqBeeCrtnEAZhuywL3vR7oO7dcElwniwL+HtKj+0xpeApekRjae6WbO5cfmzY6O
	5xyCFjig/Zv4X41UtFdQ80AelXsL0YXsAmfZZw1ZRUm4+QvMeZIsrZLXdp2kZTsGsOUyd
X-Gm-Gg: ASbGncvf92Yn51S2KdHj28zwMQN82v5LgFA6Gu4BE/eg1xepeHCcf/2W4xpP59DW626
	eVwDD+rU+2CnppoGYARi+WXKbgcp/ahZzQImpXh7UhJ1QeaPXguTpvFG8hGDi9tYnV5xTy0kQXK
	siZ8NyNslLJVvVXfusDMNOGTMEzSLrbKrTj+EBLJ1rvLamUyBLwAksx8tVE11mrzvzOKSIEyJvj
	RQiXPDGFE8Ibtp+qE0ZpN2tUdUop7RcWDBxC1zEPOMJcRAk5CoSnxucyG+oJQaYt9KPbVhiff2H
	JeXp5NrZGJm5bgRnnt+cfibB7ikRJ1ZEPsE/jzjuKbw8Jx8wKhAaq6cH87CcdbKG7M6AdhTEMAf
	A/WvXK893MybHuMrMHzyMMI24
X-Received: by 2002:a05:600c:458b:b0:459:e3f8:92ec with SMTP id 5b1f17b1804b1-459f4eb4176mr127957775e9.10.1754911597498;
        Mon, 11 Aug 2025 04:26:37 -0700 (PDT)
X-Google-Smtp-Source: AGHT+IGdNxb5gc4DwQKatpkXot61uX7cGVvKpORGwTw8/tHuwPs0r2lWbt+TytrRicLCoC+zeQmPIg==
X-Received: by 2002:a05:600c:458b:b0:459:e3f8:92ec with SMTP id 5b1f17b1804b1-459f4eb4176mr127957415e9.10.1754911596965;
        Mon, 11 Aug 2025 04:26:36 -0700 (PDT)
From: David Hildenbrand <david@redhat.com>
To: linux-kernel@vger.kernel.org
Cc: linux-mm@kvack.org,
	xen-devel@lists.xenproject.org,
	linux-fsdevel@vger.kernel.org,
	nvdimm@lists.linux.dev,
	linuxppc-dev@lists.ozlabs.org,
	David Hildenbrand <david@redhat.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Nicholas Piggin <npiggin@gmail.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Dan Williams <dan.j.williams@intel.com>,
	Matthew Wilcox <willy@infradead.org>,
	Jan Kara <jack@suse.cz>,
	Alexander Viro <viro@zeniv.linux.org.uk>,
	Christian Brauner <brauner@kernel.org>,
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Mike Rapoport <rppt@kernel.org>,
	Suren Baghdasaryan <surenb@google.com>,
	Michal Hocko <mhocko@suse.com>,
	Zi Yan <ziy@nvidia.com>,
	Baolin Wang <baolin.wang@linux.alibaba.com>,
	Nico Pache <npache@redhat.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Dev Jain <dev.jain@arm.com>,
	Barry Song <baohua@kernel.org>,
	Jann Horn <jannh@google.com>,
	Pedro Falcato <pfalcato@suse.de>,
	Hugh Dickins <hughd@google.com>,
	Oscar Salvador <osalvador@suse.de>,
	Lance Yang <lance.yang@linux.dev>,
	Alistair Popple <apopple@nvidia.com>,
	Wei Yang <richard.weiyang@gmail.com>
Subject: [PATCH v3 01/11] mm/huge_memory: move more common code into insert_pmd()
Date: Mon, 11 Aug 2025 13:26:21 +0200
Message-ID: <20250811112631.759341-2-david@redhat.com>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250811112631.759341-1-david@redhat.com>
References: <20250811112631.759341-1-david@redhat.com>
MIME-Version: 1.0
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: t9iNsmv56PupQH8OZSzZdQpcJU_GvnHdIcSkoFK66Ac_1754911598
X-Mimecast-Originator: redhat.com
Content-Transfer-Encoding: 8bit
content-type: text/plain; charset="US-ASCII"; x-default=true

Let's clean it all further up.

No functional change intended.

Reviewed-by: Oscar Salvador <osalvador@suse.de>
Reviewed-by: Alistair Popple <apopple@nvidia.com>
Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Reviewed-by: Wei Yang <richard.weiyang@gmail.com>
Signed-off-by: David Hildenbrand <david@redhat.com>
---
 mm/huge_memory.c | 72 ++++++++++++++++--------------------------------
 1 file changed, 24 insertions(+), 48 deletions(-)

diff --git a/mm/huge_memory.c b/mm/huge_memory.c
index 2b4ea5a2ce7d2..5314a89d676f1 100644
--- a/mm/huge_memory.c
+++ b/mm/huge_memory.c
@@ -1379,15 +1379,25 @@ struct folio_or_pfn {
 	bool is_folio;
 };
 
-static int insert_pmd(struct vm_area_struct *vma, unsigned long addr,
+static vm_fault_t insert_pmd(struct vm_area_struct *vma, unsigned long addr,
 		pmd_t *pmd, struct folio_or_pfn fop, pgprot_t prot,
-		bool write, pgtable_t pgtable)
+		bool write)
 {
 	struct mm_struct *mm = vma->vm_mm;
+	pgtable_t pgtable = NULL;
+	spinlock_t *ptl;
 	pmd_t entry;
 
-	lockdep_assert_held(pmd_lockptr(mm, pmd));
+	if (addr < vma->vm_start || addr >= vma->vm_end)
+		return VM_FAULT_SIGBUS;
 
+	if (arch_needs_pgtable_deposit()) {
+		pgtable = pte_alloc_one(vma->vm_mm);
+		if (!pgtable)
+			return VM_FAULT_OOM;
+	}
+
+	ptl = pmd_lock(mm, pmd);
 	if (!pmd_none(*pmd)) {
 		const unsigned long pfn = fop.is_folio ? folio_pfn(fop.folio) :
 					  fop.pfn;
@@ -1395,15 +1405,14 @@ static int insert_pmd(struct vm_area_struct *vma, unsigned long addr,
 		if (write) {
 			if (pmd_pfn(*pmd) != pfn) {
 				WARN_ON_ONCE(!is_huge_zero_pmd(*pmd));
-				return -EEXIST;
+				goto out_unlock;
 			}
 			entry = pmd_mkyoung(*pmd);
 			entry = maybe_pmd_mkwrite(pmd_mkdirty(entry), vma);
 			if (pmdp_set_access_flags(vma, addr, pmd, entry, 1))
 				update_mmu_cache_pmd(vma, addr, pmd);
 		}
-
-		return -EEXIST;
+		goto out_unlock;
 	}
 
 	if (fop.is_folio) {
@@ -1424,11 +1433,17 @@ static int insert_pmd(struct vm_area_struct *vma, unsigned long addr,
 	if (pgtable) {
 		pgtable_trans_huge_deposit(mm, pmd, pgtable);
 		mm_inc_nr_ptes(mm);
+		pgtable = NULL;
 	}
 
 	set_pmd_at(mm, addr, pmd, entry);
 	update_mmu_cache_pmd(vma, addr, pmd);
-	return 0;
+
+out_unlock:
+	spin_unlock(ptl);
+	if (pgtable)
+		pte_free(mm, pgtable);
+	return VM_FAULT_NOPAGE;
 }
 
 /**
@@ -1450,9 +1465,6 @@ vm_fault_t vmf_insert_pfn_pmd(struct vm_fault *vmf, unsigned long pfn,
 	struct folio_or_pfn fop = {
 		.pfn = pfn,
 	};
-	pgtable_t pgtable = NULL;
-	spinlock_t *ptl;
-	int error;
 
 	/*
 	 * If we had pmd_special, we could avoid all these restrictions,
@@ -1464,25 +1476,9 @@ vm_fault_t vmf_insert_pfn_pmd(struct vm_fault *vmf, unsigned long pfn,
 						(VM_PFNMAP|VM_MIXEDMAP));
 	BUG_ON((vma->vm_flags & VM_PFNMAP) && is_cow_mapping(vma->vm_flags));
 
-	if (addr < vma->vm_start || addr >= vma->vm_end)
-		return VM_FAULT_SIGBUS;
-
-	if (arch_needs_pgtable_deposit()) {
-		pgtable = pte_alloc_one(vma->vm_mm);
-		if (!pgtable)
-			return VM_FAULT_OOM;
-	}
-
 	pfnmap_setup_cachemode_pfn(pfn, &pgprot);
 
-	ptl = pmd_lock(vma->vm_mm, vmf->pmd);
-	error = insert_pmd(vma, addr, vmf->pmd, fop, pgprot, write,
-			   pgtable);
-	spin_unlock(ptl);
-	if (error && pgtable)
-		pte_free(vma->vm_mm, pgtable);
-
-	return VM_FAULT_NOPAGE;
+	return insert_pmd(vma, addr, vmf->pmd, fop, pgprot, write);
 }
 EXPORT_SYMBOL_GPL(vmf_insert_pfn_pmd);
 
@@ -1491,35 +1487,15 @@ vm_fault_t vmf_insert_folio_pmd(struct vm_fault *vmf, struct folio *folio,
 {
 	struct vm_area_struct *vma = vmf->vma;
 	unsigned long addr = vmf->address & PMD_MASK;
-	struct mm_struct *mm = vma->vm_mm;
 	struct folio_or_pfn fop = {
 		.folio = folio,
 		.is_folio = true,
 	};
-	spinlock_t *ptl;
-	pgtable_t pgtable = NULL;
-	int error;
-
-	if (addr < vma->vm_start || addr >= vma->vm_end)
-		return VM_FAULT_SIGBUS;
 
 	if (WARN_ON_ONCE(folio_order(folio) != PMD_ORDER))
 		return VM_FAULT_SIGBUS;
 
-	if (arch_needs_pgtable_deposit()) {
-		pgtable = pte_alloc_one(vma->vm_mm);
-		if (!pgtable)
-			return VM_FAULT_OOM;
-	}
-
-	ptl = pmd_lock(mm, vmf->pmd);
-	error = insert_pmd(vma, addr, vmf->pmd, fop, vma->vm_page_prot,
-			   write, pgtable);
-	spin_unlock(ptl);
-	if (error && pgtable)
-		pte_free(mm, pgtable);
-
-	return VM_FAULT_NOPAGE;
+	return insert_pmd(vma, addr, vmf->pmd, fop, vma->vm_page_prot, write);
 }
 EXPORT_SYMBOL_GPL(vmf_insert_folio_pmd);
 
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 11:26:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 11:26:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077380.1438463 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulQfv-0006SF-Pz; Mon, 11 Aug 2025 11:26:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077380.1438463; Mon, 11 Aug 2025 11:26: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 1ulQfv-0006S3-MZ; Mon, 11 Aug 2025 11:26:47 +0000
Received: by outflank-mailman (input) for mailman id 1077380;
 Mon, 11 Aug 2025 11:26:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Gc+J=2X=redhat.com=dhildenb@srs-se1.protection.inumbo.net>)
 id 1ulQfu-0005jI-SB
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 11:26:46 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.129.124])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0ff532c8-76a6-11f0-a325-13f23c93f187;
 Mon, 11 Aug 2025 13:26:46 +0200 (CEST)
Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com
 [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-583-fm1wS3A2Ox2omxRUGQmMAA-1; Mon, 11 Aug 2025 07:26:43 -0400
Received: by mail-wm1-f70.google.com with SMTP id
 5b1f17b1804b1-459d7ae12b8so30613995e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 04:26:43 -0700 (PDT)
Received: from localhost
 (p200300d82f06a600a397de1d2f8bb66f.dip0.t-ipconnect.de.
 [2003:d8:2f06:a600:a397:de1d:2f8b:b66f])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-459e6dcdbbbsm122068765e9.7.2025.08.11.04.26.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 04:26: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>
X-Inumbo-ID: 0ff532c8-76a6-11f0-a325-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1754911605;
	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=OPzS7A0H2JYY/4bVoDqq5vs7hjaSrgBmC9jJDJzHOMU=;
	b=MHIgDDercPLuz7pteul5tWFHjneuoapL5+LHdKKsGx/LVYDv8WWTlu0eatfgXf8yOiFYi9
	fubb/gj2MmuibpOIlWSpHbJqsNH/zWt97BArdZXWX8psJpsCOWalF4ZtFzOyVvTZ6TNn+2
	QXLLtrj5s8q5WQ5dfYehsejmXfWo0iQ=
X-MC-Unique: fm1wS3A2Ox2omxRUGQmMAA-1
X-Mimecast-MFC-AGG-ID: fm1wS3A2Ox2omxRUGQmMAA_1754911603
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754911602; x=1755516402;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=OPzS7A0H2JYY/4bVoDqq5vs7hjaSrgBmC9jJDJzHOMU=;
        b=dJ6Hfjj9V/OQSwWpXcuS+gVB/uVnBq6FKsqUBfzZ1EF+IVRXLyv1h79jh6iACyRgv9
         Xyf+N6PQJsTOInfeNDF/xmewes2+faPYjo6ZkoFq49cJLRzm59Vl9xVrumVBYRoHFfXq
         5CxhlzGkvtahT7ePOHmr29mBwr/MhBLnqYe47fK3dcgaXcPjyr6wAHnIY6w/kkDR4K1L
         dEVn72LdavJprodcrECFEg8TI2Ri/NsXmEvy2Pe0VjEfZxZHWfHl2/YIljO1QkbG/Eb6
         n5V7NDhEfsya0hFU0HI6rm4NFyFUXL36eSrnH7ruSTIM1F8Vf2+y0OJDg0i+NM0IUvkW
         kwuQ==
X-Forwarded-Encrypted: i=1; AJvYcCVg+OyoxviS1i+Z7hpBhpHKjq9oo15LwNajL3LhUVujPNa/0gioRDgrJRJAj5Y+hbv1wG8MOQjUAsw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxmEBArZJW/Iof972vqEKuQ9PcLGecLYvJ5q9egiJIIlLzi7yxC
	Yq8gM98490ZI6gsVSRdPhtdKkQchkK3ISxHhcpSCoJXUJSXNXZU9Lfi1km9FAVPWoOW6uFLBw4d
	ZNOsM5Q2cEFp+y628gs9iOi1mPnisZgwD9zkvizaz74trnh17AY2A1MF80fLDno0kFZWA
X-Gm-Gg: ASbGncsh+oFXBM9ZFHLZ/xogahsSiCiE0RV9w/4lwUR6qhyCmA0wXV4OPrrtHUAFWyb
	1kViSqXVuuI1CgAkVyqT5DDrYIkP4xW6UyMfJRp5V/iXqIlCq/y5CjLRsg/F7ShP5J3kgAQrtFB
	OEywJfsQpEulSiU+Ufi5frUJZKd0ttJTSs6xklhOudqzieQMtOkVDynt+v5Q/pJTZewQZAQOdr1
	HtxH21gmQzibgpbTzDuwDedTHfOPWj1LbuNoaP4ICk4colHy+oYJi9qf8P+zPCbEW2Oi+fAee+4
	A88sgHx9s3teoteZ4eEkQhalQuTs0iBX4QSWpthcTCDePLct2tjvAnQp8aEwCCHS2/GtGqSPCaW
	WPjsNE93/bGS8Xg5yGwC4+Y4J
X-Received: by 2002:a05:600c:4ec7:b0:459:e398:ed89 with SMTP id 5b1f17b1804b1-459f4ea2167mr89525585e9.1.1754911602500;
        Mon, 11 Aug 2025 04:26:42 -0700 (PDT)
X-Google-Smtp-Source: AGHT+IF2VXT8eja0G/6oYjAzMox3Wj/YsLa0WXg9I30LI+rqq9mj5h9Avu9edvonRgK7PI+OIDYPVA==
X-Received: by 2002:a05:600c:4ec7:b0:459:e398:ed89 with SMTP id 5b1f17b1804b1-459f4ea2167mr89525255e9.1.1754911602063;
        Mon, 11 Aug 2025 04:26:42 -0700 (PDT)
From: David Hildenbrand <david@redhat.com>
To: linux-kernel@vger.kernel.org
Cc: linux-mm@kvack.org,
	xen-devel@lists.xenproject.org,
	linux-fsdevel@vger.kernel.org,
	nvdimm@lists.linux.dev,
	linuxppc-dev@lists.ozlabs.org,
	David Hildenbrand <david@redhat.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Nicholas Piggin <npiggin@gmail.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Dan Williams <dan.j.williams@intel.com>,
	Matthew Wilcox <willy@infradead.org>,
	Jan Kara <jack@suse.cz>,
	Alexander Viro <viro@zeniv.linux.org.uk>,
	Christian Brauner <brauner@kernel.org>,
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Mike Rapoport <rppt@kernel.org>,
	Suren Baghdasaryan <surenb@google.com>,
	Michal Hocko <mhocko@suse.com>,
	Zi Yan <ziy@nvidia.com>,
	Baolin Wang <baolin.wang@linux.alibaba.com>,
	Nico Pache <npache@redhat.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Dev Jain <dev.jain@arm.com>,
	Barry Song <baohua@kernel.org>,
	Jann Horn <jannh@google.com>,
	Pedro Falcato <pfalcato@suse.de>,
	Hugh Dickins <hughd@google.com>,
	Oscar Salvador <osalvador@suse.de>,
	Lance Yang <lance.yang@linux.dev>,
	Wei Yang <richard.weiyang@gmail.com>
Subject: [PATCH v3 03/11] mm/huge_memory: support huge zero folio in vmf_insert_folio_pmd()
Date: Mon, 11 Aug 2025 13:26:23 +0200
Message-ID: <20250811112631.759341-4-david@redhat.com>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250811112631.759341-1-david@redhat.com>
References: <20250811112631.759341-1-david@redhat.com>
MIME-Version: 1.0
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: csAcMqdVqaGW0MmvgYD-ogNLAorTHZNicgXo9HCFzD0_1754911603
X-Mimecast-Originator: redhat.com
Content-Transfer-Encoding: 8bit
content-type: text/plain; charset="US-ASCII"; x-default=true

Just like we do for vmf_insert_page_mkwrite() -> ... ->
insert_page_into_pte_locked() with the shared zeropage, support the
huge zero folio in vmf_insert_folio_pmd().

When (un)mapping the huge zero folio in page tables, we neither
adjust the refcount nor the mapcount, just like for the shared zeropage.

For now, the huge zero folio is not marked as special yet, although
vm_normal_page_pmd() really wants to treat it as special. We'll change
that next.

Reviewed-by: Oscar Salvador <osalvador@suse.de>
Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Reviewed-by: Wei Yang <richard.weiyang@gmail.com>
Signed-off-by: David Hildenbrand <david@redhat.com>
---
 mm/huge_memory.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/mm/huge_memory.c b/mm/huge_memory.c
index 7933791b75f4d..ec89e0607424e 100644
--- a/mm/huge_memory.c
+++ b/mm/huge_memory.c
@@ -1418,9 +1418,11 @@ static vm_fault_t insert_pmd(struct vm_area_struct *vma, unsigned long addr,
 	if (fop.is_folio) {
 		entry = folio_mk_pmd(fop.folio, vma->vm_page_prot);
 
-		folio_get(fop.folio);
-		folio_add_file_rmap_pmd(fop.folio, &fop.folio->page, vma);
-		add_mm_counter(mm, mm_counter_file(fop.folio), HPAGE_PMD_NR);
+		if (!is_huge_zero_folio(fop.folio)) {
+			folio_get(fop.folio);
+			folio_add_file_rmap_pmd(fop.folio, &fop.folio->page, vma);
+			add_mm_counter(mm, mm_counter_file(fop.folio), HPAGE_PMD_NR);
+		}
 	} else {
 		entry = pmd_mkhuge(pfn_pmd(fop.pfn, prot));
 		entry = pmd_mkspecial(entry);
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 11:26:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 11:26:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077382.1438473 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulQg1-0006on-26; Mon, 11 Aug 2025 11:26:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077382.1438473; Mon, 11 Aug 2025 11:26: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 1ulQg0-0006oc-U6; Mon, 11 Aug 2025 11:26:52 +0000
Received: by outflank-mailman (input) for mailman id 1077382;
 Mon, 11 Aug 2025 11:26:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Gc+J=2X=redhat.com=dhildenb@srs-se1.protection.inumbo.net>)
 id 1ulQfz-0005jI-I5
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 11:26:51 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.133.124])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 12bc6834-76a6-11f0-a325-13f23c93f187;
 Mon, 11 Aug 2025 13:26:50 +0200 (CEST)
Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com
 [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-508-gDj_NH0vOTuZMzS60FoHlg-1; Mon, 11 Aug 2025 07:26:48 -0400
Received: by mail-wm1-f72.google.com with SMTP id
 5b1f17b1804b1-459dfbece11so21811795e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 04:26:48 -0700 (PDT)
Received: from localhost
 (p200300d82f06a600a397de1d2f8bb66f.dip0.t-ipconnect.de.
 [2003:d8:2f06:a600:a397:de1d:2f8b:b66f])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-459e6214640sm259832575e9.1.2025.08.11.04.26.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 04:26:46 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 12bc6834-76a6-11f0-a325-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1754911609;
	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=DNeO4mnK34t1j+RunD3+GtheXBl5F9uGzS1IAgGiaS8=;
	b=EUirt2cnGsd3GncXXFwTue7LbvCqjLItstkOGbfSRPhNcVcKGphViRXUJHK3bmYQXRbvdr
	QZSmreySxgyOOqOjoh0EBzhFk62+iX/X7NbfShdTzDaAr4I7183Utf/yjW6MTUw7OTwKs/
	vEu6cMPa55m/3fAATlrns0Uf+Zyl1X4=
X-MC-Unique: gDj_NH0vOTuZMzS60FoHlg-1
X-Mimecast-MFC-AGG-ID: gDj_NH0vOTuZMzS60FoHlg_1754911607
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754911607; x=1755516407;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=DNeO4mnK34t1j+RunD3+GtheXBl5F9uGzS1IAgGiaS8=;
        b=M5tqNf6Th0XmI3FnFGCED9zIyugNGjsMvNS9fWuBsSRBs8ABAiU0EDmGA2qulxu2aq
         PGrO6qI1r/xUpWtOc1JTAJU6EAlE4tHa1opQrHmUlGVsMHMKB35RI074rYGtZRs0MfJ2
         v8S9Xy6jIbT6bI8oSWuET4/YTH36dfJasX/pS8IGBpSfjwFau1FosIDSvYK2y4xpIGxD
         /i5qOVBBXS/Z5z24ccw/i4saY6wld5R7j5ynjOZFYbkiXeWDIsXYQtkxlD2WqcCdHh49
         1uh/uazkFzsCEtKJ4he2iN0uDVV+XFe5hLuwKzNBHu+jW6njD4QHyrEMFYjMutLGyMEA
         80ow==
X-Forwarded-Encrypted: i=1; AJvYcCW7Kso6cQJQS34rdnMHytf9UqPfxCnHarxLogPXrjHEEAWs7S0Yhbtz6B0b/kCODKnarmbZOmi/k7c=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxohp5e51WvxKXMtVhh5+aL1cyO57usRWpnw66EO9yTLV1+JobI
	znAsRFhUh8t5K6a9IqmKRH5BO6YgcrIXoUxJck7UFteG4oyicupM1VEKkZocg/7Q1eVLn8PfIPA
	CYs3UJE50aYpmXstdjbY+fNgSz29IEDn9yae98yRpfchgFHDerG3la9+s7/sRlnnwiXVZ
X-Gm-Gg: ASbGnctGRqhtinNjxivz08eFgQfBwzHk177ss2vzHPrs7zFoHIgLfaKyOfZiLhbu51m
	uMv6BkTMDEcsKGDRTgoyL1JkVJv2DShJH5BHknHwaPaQXQdztOelJHd474CT30qW8YhEltTgSiV
	HMPMdHg1QeIdyzbN1iJnTmc8LulCYEAFk3qhuBhkn5X8GHwUg5Lw86XkPumvTIhMA4wXrZbswHX
	hnwG5U6qqlijUfouC949UT0MHZdMgicafIhXuksJDJDoC89eRbzEhTkFAgwxn4qEuaI8wvImK+s
	ZZdFGU8Q8MC0YnrkHak9Y/urYNPrb2AN/4/tjIl32sXO9NhTLgxz+dxQ2GyarzCHQTXRFs/bjbE
	LmQeST3BCg/Uz36eDBW8Ur9E3
X-Received: by 2002:a05:600c:4746:b0:453:23fe:ca86 with SMTP id 5b1f17b1804b1-459f4ea0f2dmr115559585e9.4.1754911607430;
        Mon, 11 Aug 2025 04:26:47 -0700 (PDT)
X-Google-Smtp-Source: AGHT+IF+SYBbVCDa86Al3Rw//iuzbWoSgvjLT8uLZDTY5p6isO9HqDz+nOTt8CKLJXWJJ2UJD3ft4A==
X-Received: by 2002:a05:600c:4746:b0:453:23fe:ca86 with SMTP id 5b1f17b1804b1-459f4ea0f2dmr115559215e9.4.1754911607000;
        Mon, 11 Aug 2025 04:26:47 -0700 (PDT)
From: David Hildenbrand <david@redhat.com>
To: linux-kernel@vger.kernel.org
Cc: linux-mm@kvack.org,
	xen-devel@lists.xenproject.org,
	linux-fsdevel@vger.kernel.org,
	nvdimm@lists.linux.dev,
	linuxppc-dev@lists.ozlabs.org,
	David Hildenbrand <david@redhat.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Nicholas Piggin <npiggin@gmail.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Dan Williams <dan.j.williams@intel.com>,
	Matthew Wilcox <willy@infradead.org>,
	Jan Kara <jack@suse.cz>,
	Alexander Viro <viro@zeniv.linux.org.uk>,
	Christian Brauner <brauner@kernel.org>,
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Mike Rapoport <rppt@kernel.org>,
	Suren Baghdasaryan <surenb@google.com>,
	Michal Hocko <mhocko@suse.com>,
	Zi Yan <ziy@nvidia.com>,
	Baolin Wang <baolin.wang@linux.alibaba.com>,
	Nico Pache <npache@redhat.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Dev Jain <dev.jain@arm.com>,
	Barry Song <baohua@kernel.org>,
	Jann Horn <jannh@google.com>,
	Pedro Falcato <pfalcato@suse.de>,
	Hugh Dickins <hughd@google.com>,
	Oscar Salvador <osalvador@suse.de>,
	Lance Yang <lance.yang@linux.dev>
Subject: [PATCH v3 05/11] mm/huge_memory: mark PMD mappings of the huge zero folio special
Date: Mon, 11 Aug 2025 13:26:25 +0200
Message-ID: <20250811112631.759341-6-david@redhat.com>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250811112631.759341-1-david@redhat.com>
References: <20250811112631.759341-1-david@redhat.com>
MIME-Version: 1.0
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: nHdveVaFIoUHub9BdqKrlewaEtNZkRl7xEhjixB_pkM_1754911607
X-Mimecast-Originator: redhat.com
Content-Transfer-Encoding: 8bit
content-type: text/plain; charset="US-ASCII"; x-default=true

The huge zero folio is refcounted (+mapcounted -- is that a word?)
differently than "normal" folios, similarly (but different) to the ordinary
shared zeropage.

For this reason, we special-case these pages in
vm_normal_page*/vm_normal_folio*, and only allow selected callers to
still use them (e.g., GUP can still take a reference on them).

vm_normal_page_pmd() already filters out the huge zero folio, to
indicate it a special (return NULL). However, so far we are not making
use of pmd_special() on architectures that support it
(CONFIG_ARCH_HAS_PTE_SPECIAL), like we would with the ordinary shared
zeropage.

Let's mark PMD mappings of the huge zero folio similarly as special, so we
can avoid the manual check for the huge zero folio with
CONFIG_ARCH_HAS_PTE_SPECIAL next, and only perform the check on
!CONFIG_ARCH_HAS_PTE_SPECIAL.

In copy_huge_pmd(), where we have a manual pmd_special() check to handle
PFNMAP, we have to manually rule out the huge zero folio. That code
needs a serious cleanup, but that's something for another day.

While at it, update the doc regarding the shared zero folios.

No functional change intended: vm_normal_page_pmd() still returns NULL
when it encounters the huge zero folio.

Reviewed-by: Oscar Salvador <osalvador@suse.de>
Signed-off-by: David Hildenbrand <david@redhat.com>
---
 mm/huge_memory.c |  8 ++++++--
 mm/memory.c      | 15 ++++++++++-----
 2 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/mm/huge_memory.c b/mm/huge_memory.c
index ec89e0607424e..58bac83e7fa31 100644
--- a/mm/huge_memory.c
+++ b/mm/huge_memory.c
@@ -1309,6 +1309,7 @@ static void set_huge_zero_folio(pgtable_t pgtable, struct mm_struct *mm,
 {
 	pmd_t entry;
 	entry = folio_mk_pmd(zero_folio, vma->vm_page_prot);
+	entry = pmd_mkspecial(entry);
 	pgtable_trans_huge_deposit(mm, pmd, pgtable);
 	set_pmd_at(mm, haddr, pmd, entry);
 	mm_inc_nr_ptes(mm);
@@ -1418,7 +1419,9 @@ static vm_fault_t insert_pmd(struct vm_area_struct *vma, unsigned long addr,
 	if (fop.is_folio) {
 		entry = folio_mk_pmd(fop.folio, vma->vm_page_prot);
 
-		if (!is_huge_zero_folio(fop.folio)) {
+		if (is_huge_zero_folio(fop.folio)) {
+			entry = pmd_mkspecial(entry);
+		} else {
 			folio_get(fop.folio);
 			folio_add_file_rmap_pmd(fop.folio, &fop.folio->page, vma);
 			add_mm_counter(mm, mm_counter_file(fop.folio), HPAGE_PMD_NR);
@@ -1643,7 +1646,8 @@ int copy_huge_pmd(struct mm_struct *dst_mm, struct mm_struct *src_mm,
 	int ret = -ENOMEM;
 
 	pmd = pmdp_get_lockless(src_pmd);
-	if (unlikely(pmd_present(pmd) && pmd_special(pmd))) {
+	if (unlikely(pmd_present(pmd) && pmd_special(pmd) &&
+		     !is_huge_zero_pmd(pmd))) {
 		dst_ptl = pmd_lock(dst_mm, dst_pmd);
 		src_ptl = pmd_lockptr(src_mm, src_pmd);
 		spin_lock_nested(src_ptl, SINGLE_DEPTH_NESTING);
diff --git a/mm/memory.c b/mm/memory.c
index 0ba4f6b718471..626caedce35e0 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -555,7 +555,14 @@ static void print_bad_pte(struct vm_area_struct *vma, unsigned long addr,
  *
  * "Special" mappings do not wish to be associated with a "struct page" (either
  * it doesn't exist, or it exists but they don't want to touch it). In this
- * case, NULL is returned here. "Normal" mappings do have a struct page.
+ * case, NULL is returned here. "Normal" mappings do have a struct page and
+ * are ordinarily refcounted.
+ *
+ * Page mappings of the shared zero folios are always considered "special", as
+ * they are not ordinarily refcounted: neither the refcount nor the mapcount
+ * of these folios is adjusted when mapping them into user page tables.
+ * Selected page table walkers (such as GUP) can still identify mappings of the
+ * shared zero folios and work with the underlying "struct page".
  *
  * There are 2 broad cases. Firstly, an architecture may define a pte_special()
  * pte bit, in which case this function is trivial. Secondly, an architecture
@@ -585,9 +592,8 @@ static void print_bad_pte(struct vm_area_struct *vma, unsigned long addr,
  *
  * VM_MIXEDMAP mappings can likewise contain memory with or without "struct
  * page" backing, however the difference is that _all_ pages with a struct
- * page (that is, those where pfn_valid is true) are refcounted and considered
- * normal pages by the VM. The only exception are zeropages, which are
- * *never* refcounted.
+ * page (that is, those where pfn_valid is true, except the shared zero
+ * folios) are refcounted and considered normal pages by the VM.
  *
  * The disadvantage is that pages are refcounted (which can be slower and
  * simply not an option for some PFNMAP users). The advantage is that we
@@ -667,7 +673,6 @@ struct page *vm_normal_page_pmd(struct vm_area_struct *vma, unsigned long addr,
 {
 	unsigned long pfn = pmd_pfn(pmd);
 
-	/* Currently it's only used for huge pfnmaps */
 	if (unlikely(pmd_special(pmd)))
 		return NULL;
 
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 11:26:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 11:26:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077385.1438483 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulQg3-000782-Gd; Mon, 11 Aug 2025 11:26:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077385.1438483; Mon, 11 Aug 2025 11:26: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 1ulQg3-00077n-CA; Mon, 11 Aug 2025 11:26:55 +0000
Received: by outflank-mailman (input) for mailman id 1077385;
 Mon, 11 Aug 2025 11:26:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Gc+J=2X=redhat.com=dhildenb@srs-se1.protection.inumbo.net>)
 id 1ulQg2-000725-Bs
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 11:26:54 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.129.124])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1192623b-76a6-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 13:26:49 +0200 (CEST)
Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com
 [209.85.221.72]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-561-W1i_k4xVO1uXNMAJbHv6aA-1; Mon, 11 Aug 2025 07:26:46 -0400
Received: by mail-wr1-f72.google.com with SMTP id
 ffacd0b85a97d-3b7806a620cso2471972f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 04:26:46 -0700 (PDT)
Received: from localhost
 (p200300d82f06a600a397de1d2f8bb66f.dip0.t-ipconnect.de.
 [2003:d8:2f06:a600:a397:de1d:2f8b:b66f])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3b79c4696c8sm39325003f8f.55.2025.08.11.04.26.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 04: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>
X-Inumbo-ID: 1192623b-76a6-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1754911607;
	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=2CQ37fr3U8Nz67n3Rs/zLbnQBIPHeKcdveRJNY/DHTc=;
	b=HF8efkpCovdeGRPT70MfYPsAaEiWTZ0y0ohE1OCjP9NFvhh3mBJAR0NzOoyN7yRZsnnMbv
	yKxXZRR0BGgjmmJxZDPiXaWdv0OP1kCchRY6xd42FcdTIX36zkbmkucopok+npSTISmJWr
	YmszCzw+ACqKcu3akQc4KqyhROT33jU=
X-MC-Unique: W1i_k4xVO1uXNMAJbHv6aA-1
X-Mimecast-MFC-AGG-ID: W1i_k4xVO1uXNMAJbHv6aA_1754911605
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754911605; x=1755516405;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=2CQ37fr3U8Nz67n3Rs/zLbnQBIPHeKcdveRJNY/DHTc=;
        b=hyJgJFIwSOPKHjD6c+HcjVXFZBJH04YOTjLR40Qxlii+79O9ha8SAiNN+fR0HV0343
         fJsekuVkeSYKjex+h+vB5Eir4bmpgBs2USCRiLM10drVWA+2t40Imx094Xm4Wp9kPq3J
         yyEt9L+wbT6RGTyNqAyMNLidYvSrbAuquG43AIh2V31pmzwOhJKahC0KjTNl8tEAY1x0
         eOndrob2tpTynLezTlZ/KW8ovu3RyUFkLd+ORk/7zBWS5ojwMc1sCQjSEBJ5hLotN8Gh
         VXf84A+XUIGWcIReTfk1G4J+WESMOUXXOglldVDy1Uqte0ncPpPfigVFxskiAYaGTcWW
         +0Vg==
X-Forwarded-Encrypted: i=1; AJvYcCVzGVjTxc5r1HEBRZl3R2E56p4JtOTcxSwENvc+M2PsKdIfHcc2Mh5n8tmfrcVsOuSPOJ0690VX4lA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyG71EPdsEhOb2pB1DYdyONUyY3iv00GrJ0QEIpfQHLdurTRo/l
	BTYECI0VMZxmxyrMCXrymS7cef8XIRUe0vznBmlgQd8WX1ny+xPlyHSaEmHzaN8W0Cht3aUwxiw
	JtB/2+9dNlKaoqNjvpnikufLkqvf371XiHeo8rlaR/kptrIE+nLcXibdgj0QETZGxknJr
X-Gm-Gg: ASbGncvzT3ZntM/fcFm9Af8Y6tgAz+2eDQ0S4elmGQezAzhMQi8g/H1xnRkRSeMfpiK
	46Wz3y91LYxtPZEO7+vRb7lT8pLQJAga9ouBoNarv64NjJQ+uEFlhWqNE5CXBV7V2E3LFTCiH5I
	ekn40Qs9jP1cMyLLGCUty85nzyzs8LnYK+q8EXYdXnnXcQcDmgm3oYJqGMH5ar0GJTxowDpYamU
	FkvqBwOIFSVrVK44MQo7nMfJsOA5ZN2wp11FwflLcUmFQR4Dgkmzm6KZELOld7O2J8GQHtE6Kom
	tT07/MCupg2nlI5iDbw1NLf21RiHgay0AZusPEpfvPMb42sDtkDnW1cq69LkprktlGqkz8VABoV
	fybv4zZX1B8R698n0flUaKqwG
X-Received: by 2002:a05:6000:220c:b0:3b3:9c75:acc6 with SMTP id ffacd0b85a97d-3b900b579abmr8417879f8f.59.1754911604978;
        Mon, 11 Aug 2025 04:26:44 -0700 (PDT)
X-Google-Smtp-Source: AGHT+IHhtoj1JC1TeyGzrT2XifHRNOizQnW6DZ2myFR7vrwjVvSFSoQpoWzRIG0dK3lnMunpNHs17g==
X-Received: by 2002:a05:6000:220c:b0:3b3:9c75:acc6 with SMTP id ffacd0b85a97d-3b900b579abmr8417828f8f.59.1754911604480;
        Mon, 11 Aug 2025 04:26:44 -0700 (PDT)
From: David Hildenbrand <david@redhat.com>
To: linux-kernel@vger.kernel.org
Cc: linux-mm@kvack.org,
	xen-devel@lists.xenproject.org,
	linux-fsdevel@vger.kernel.org,
	nvdimm@lists.linux.dev,
	linuxppc-dev@lists.ozlabs.org,
	David Hildenbrand <david@redhat.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Nicholas Piggin <npiggin@gmail.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Dan Williams <dan.j.williams@intel.com>,
	Matthew Wilcox <willy@infradead.org>,
	Jan Kara <jack@suse.cz>,
	Alexander Viro <viro@zeniv.linux.org.uk>,
	Christian Brauner <brauner@kernel.org>,
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Mike Rapoport <rppt@kernel.org>,
	Suren Baghdasaryan <surenb@google.com>,
	Michal Hocko <mhocko@suse.com>,
	Zi Yan <ziy@nvidia.com>,
	Baolin Wang <baolin.wang@linux.alibaba.com>,
	Nico Pache <npache@redhat.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Dev Jain <dev.jain@arm.com>,
	Barry Song <baohua@kernel.org>,
	Jann Horn <jannh@google.com>,
	Pedro Falcato <pfalcato@suse.de>,
	Hugh Dickins <hughd@google.com>,
	Oscar Salvador <osalvador@suse.de>,
	Lance Yang <lance.yang@linux.dev>,
	Alistair Popple <apopple@nvidia.com>
Subject: [PATCH v3 04/11] fs/dax: use vmf_insert_folio_pmd() to insert the huge zero folio
Date: Mon, 11 Aug 2025 13:26:24 +0200
Message-ID: <20250811112631.759341-5-david@redhat.com>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250811112631.759341-1-david@redhat.com>
References: <20250811112631.759341-1-david@redhat.com>
MIME-Version: 1.0
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: YBzh-O3fn_PVBRwRWXx9nqcdbKfRJOI99aXcNNnYfpQ_1754911605
X-Mimecast-Originator: redhat.com
Content-Transfer-Encoding: 8bit
content-type: text/plain; charset="US-ASCII"; x-default=true

Let's convert to vmf_insert_folio_pmd().

There is a theoretical change in behavior: in the unlikely case there is
already something mapped, we'll now still call trace_dax_pmd_load_hole()
and return VM_FAULT_NOPAGE.

Previously, we would have returned VM_FAULT_FALLBACK, and the caller
would have zapped the PMD to try a PTE fault.

However, that behavior was different to other PTE+PMD faults, when there
would already be something mapped, and it's not even clear if it could
be triggered.

Assuming the huge zero folio is already mapped, all good, no need to
fallback to PTEs.

Assuming there is already a leaf page table ... the behavior would be
just like when trying to insert a PMD mapping a folio through
dax_fault_iter()->vmf_insert_folio_pmd().

Assuming there is already something else mapped as PMD? It sounds like
a BUG, and the behavior would be just like when trying to insert a PMD
mapping a folio through dax_fault_iter()->vmf_insert_folio_pmd().

So, it sounds reasonable to not handle huge zero folios differently
to inserting PMDs mapping folios when there already is something mapped.

Reviewed-by: Alistair Popple <apopple@nvidia.com>
Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Signed-off-by: David Hildenbrand <david@redhat.com>
---
 fs/dax.c | 47 ++++++++++-------------------------------------
 1 file changed, 10 insertions(+), 37 deletions(-)

diff --git a/fs/dax.c b/fs/dax.c
index 4229513806bea..ae90706674a3f 100644
--- a/fs/dax.c
+++ b/fs/dax.c
@@ -1375,51 +1375,24 @@ static vm_fault_t dax_pmd_load_hole(struct xa_state *xas, struct vm_fault *vmf,
 		const struct iomap_iter *iter, void **entry)
 {
 	struct address_space *mapping = vmf->vma->vm_file->f_mapping;
-	unsigned long pmd_addr = vmf->address & PMD_MASK;
-	struct vm_area_struct *vma = vmf->vma;
 	struct inode *inode = mapping->host;
-	pgtable_t pgtable = NULL;
 	struct folio *zero_folio;
-	spinlock_t *ptl;
-	pmd_t pmd_entry;
-	unsigned long pfn;
+	vm_fault_t ret;
 
 	zero_folio = mm_get_huge_zero_folio(vmf->vma->vm_mm);
 
-	if (unlikely(!zero_folio))
-		goto fallback;
-
-	pfn = page_to_pfn(&zero_folio->page);
-	*entry = dax_insert_entry(xas, vmf, iter, *entry, pfn,
-				  DAX_PMD | DAX_ZERO_PAGE);
-
-	if (arch_needs_pgtable_deposit()) {
-		pgtable = pte_alloc_one(vma->vm_mm);
-		if (!pgtable)
-			return VM_FAULT_OOM;
-	}
-
-	ptl = pmd_lock(vmf->vma->vm_mm, vmf->pmd);
-	if (!pmd_none(*(vmf->pmd))) {
-		spin_unlock(ptl);
-		goto fallback;
+	if (unlikely(!zero_folio)) {
+		trace_dax_pmd_load_hole_fallback(inode, vmf, zero_folio, *entry);
+		return VM_FAULT_FALLBACK;
 	}
 
-	if (pgtable) {
-		pgtable_trans_huge_deposit(vma->vm_mm, vmf->pmd, pgtable);
-		mm_inc_nr_ptes(vma->vm_mm);
-	}
-	pmd_entry = folio_mk_pmd(zero_folio, vmf->vma->vm_page_prot);
-	set_pmd_at(vmf->vma->vm_mm, pmd_addr, vmf->pmd, pmd_entry);
-	spin_unlock(ptl);
-	trace_dax_pmd_load_hole(inode, vmf, zero_folio, *entry);
-	return VM_FAULT_NOPAGE;
+	*entry = dax_insert_entry(xas, vmf, iter, *entry, folio_pfn(zero_folio),
+				  DAX_PMD | DAX_ZERO_PAGE);
 
-fallback:
-	if (pgtable)
-		pte_free(vma->vm_mm, pgtable);
-	trace_dax_pmd_load_hole_fallback(inode, vmf, zero_folio, *entry);
-	return VM_FAULT_FALLBACK;
+	ret = vmf_insert_folio_pmd(vmf, zero_folio, false);
+	if (ret == VM_FAULT_NOPAGE)
+		trace_dax_pmd_load_hole(inode, vmf, zero_folio, *entry);
+	return ret;
 }
 #else
 static vm_fault_t dax_pmd_load_hole(struct xa_state *xas, struct vm_fault *vmf,
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 11:26:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 11:26:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077386.1438493 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulQg4-0007Nq-NC; Mon, 11 Aug 2025 11:26:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077386.1438493; Mon, 11 Aug 2025 11:26: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 1ulQg4-0007NK-JW; Mon, 11 Aug 2025 11:26:56 +0000
Received: by outflank-mailman (input) for mailman id 1077386;
 Mon, 11 Aug 2025 11:26:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Gc+J=2X=redhat.com=dhildenb@srs-se1.protection.inumbo.net>)
 id 1ulQg3-000725-K8
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 11:26:55 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.129.124])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 14892cdd-76a6-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 13:26:54 +0200 (CEST)
Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com
 [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-651-Kyeru32TNf-OLIcXhsSyrw-1; Mon, 11 Aug 2025 07:26:51 -0400
Received: by mail-wm1-f69.google.com with SMTP id
 5b1f17b1804b1-459d7da3647so36284065e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 04:26:51 -0700 (PDT)
Received: from localhost
 (p200300d82f06a600a397de1d2f8bb66f.dip0.t-ipconnect.de.
 [2003:d8:2f06:a600:a397:de1d:2f8b:b66f])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3b79c3bf93dsm40408983f8f.27.2025.08.11.04.26.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 04:26: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>
X-Inumbo-ID: 14892cdd-76a6-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1754911612;
	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=UJDg4sW92zbLWKqBjb1tVZssT9gBBixv5gdvUlii8Zs=;
	b=Dw7hYDSn4ECdNdnpa6TzGzoX5SH1fo2SKgFssJItHmYvklx91CAYj5o+2ABXjcY/u4gWDD
	d6CQLcHShyJgVUl9k0eMRfsfMmliaFqWdYBFuyf75U07P62r875NBLQI2a1KovrvpTdNHg
	zexyAy+1g/yo9F4j1QYoIm34b+RnVVE=
X-MC-Unique: Kyeru32TNf-OLIcXhsSyrw-1
X-Mimecast-MFC-AGG-ID: Kyeru32TNf-OLIcXhsSyrw_1754911610
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754911610; x=1755516410;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=UJDg4sW92zbLWKqBjb1tVZssT9gBBixv5gdvUlii8Zs=;
        b=tamhXQvB/1CwSZ2Ihn7u372K1VjCqeSoEAj4VspftRE/kSFXv0v7bsBo60gTquZXHs
         SfTJxvQT1jfIVRx2dq9jGM2yvIuyqro12OrXfqNEpqhqJM9oG12VTmP7MgBGhq+3r9TP
         QJlFJMnIq6Yhpm9SayTSrW+CRWxOWuVDTi1i3oH/Fk+RmtJ0LJNzKyKHxI5fcd1Tmx8K
         Ygav1R+/CIrc3mtQlEjnmsj3ZMfaRGR/pjo+PZ13q/66SgPOxOF/pFHkYF8qOcP1cdHF
         TdfdqSIvA0nKnig25oFcszVd+1YhDaPl2LZRsWSFRxBh8Rvk38+ngEn5JAPGvkbHEeim
         gKxw==
X-Forwarded-Encrypted: i=1; AJvYcCV7C3O6pXhHHlSCjT4jD+hezaUAT5LQ4dTX1pReEgiuIxIO7hwnEi0CUy01POSLzijXtPZmlUtEGW4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzOJCPux44KbJa7vSakCy0cDO8fT9aYYSTHI7JFxTUBG+Ho3tFX
	Gzw13VbmUA0CuZpxIVKiEJYhiT1nyDg4v9GUhDrLLvZ1J9XVikj2KXuXjCA3ie7lj+UJ5QeaooS
	r9P5x5qkVnLib8PgQ1JnfW41MHhnnNNzlisPxzsd6MFCeMsCmPlWQ8tfFsn054X5yEv/+
X-Gm-Gg: ASbGncsxaqoJKWYiH85pfQQc2rlhWMeAGcpCD7dNMuIYjdYHE2G0iTP/y0ggpUoslYA
	L6d2B6SrZnvAB74AwwbJkLZQVJB/HWUI/TRShIudW+R3eWpHlktFrw11K8i/+TwsPjKeLZ0iHhT
	OpD0Q+vc4wjRwkmbSQo0SAAxooYUfLaCvVNK6kO5E1edl6ofjFSXTd8ZWvVbrJ2l2EMvhpm12iM
	gX90+iy7svk9m+y4nhdPab+8x5r8VADu/0Sa4NpRNRuc+T61iyErRbgL9PgxzoRMi9U+u6u+7Uj
	CQz3YxSQl5lrGs1+idb934gpaXqlrMvaikgpSmDhv5CPba/x+d+ZVRukmsHkPOLQpOXQytPwXhP
	DZPkaX6DHu3LZ1U7TsKtZQBXp
X-Received: by 2002:a05:6000:2010:b0:3b7:9d83:5104 with SMTP id ffacd0b85a97d-3b900b83ce4mr10356616f8f.51.1754911610053;
        Mon, 11 Aug 2025 04:26:50 -0700 (PDT)
X-Google-Smtp-Source: AGHT+IH28XXBuV6P4eMmACbygagN9E2w90dcNlvtCQwFebmNkdYsSnJof6QrfGHsOh8VfCIdvok2gg==
X-Received: by 2002:a05:6000:2010:b0:3b7:9d83:5104 with SMTP id ffacd0b85a97d-3b900b83ce4mr10356583f8f.51.1754911609552;
        Mon, 11 Aug 2025 04:26:49 -0700 (PDT)
From: David Hildenbrand <david@redhat.com>
To: linux-kernel@vger.kernel.org
Cc: linux-mm@kvack.org,
	xen-devel@lists.xenproject.org,
	linux-fsdevel@vger.kernel.org,
	nvdimm@lists.linux.dev,
	linuxppc-dev@lists.ozlabs.org,
	David Hildenbrand <david@redhat.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Nicholas Piggin <npiggin@gmail.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Dan Williams <dan.j.williams@intel.com>,
	Matthew Wilcox <willy@infradead.org>,
	Jan Kara <jack@suse.cz>,
	Alexander Viro <viro@zeniv.linux.org.uk>,
	Christian Brauner <brauner@kernel.org>,
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Mike Rapoport <rppt@kernel.org>,
	Suren Baghdasaryan <surenb@google.com>,
	Michal Hocko <mhocko@suse.com>,
	Zi Yan <ziy@nvidia.com>,
	Baolin Wang <baolin.wang@linux.alibaba.com>,
	Nico Pache <npache@redhat.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Dev Jain <dev.jain@arm.com>,
	Barry Song <baohua@kernel.org>,
	Jann Horn <jannh@google.com>,
	Pedro Falcato <pfalcato@suse.de>,
	Hugh Dickins <hughd@google.com>,
	Oscar Salvador <osalvador@suse.de>,
	Lance Yang <lance.yang@linux.dev>
Subject: [PATCH v3 06/11] powerpc/ptdump: rename "struct pgtable_level" to "struct ptdump_pglevel"
Date: Mon, 11 Aug 2025 13:26:26 +0200
Message-ID: <20250811112631.759341-7-david@redhat.com>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250811112631.759341-1-david@redhat.com>
References: <20250811112631.759341-1-david@redhat.com>
MIME-Version: 1.0
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: jASotZICgm03kaWSxHZduxhtEllZrMuzIZw-n2P_1uQ_1754911610
X-Mimecast-Originator: redhat.com
Content-Transfer-Encoding: 8bit
content-type: text/plain; charset="US-ASCII"; x-default=true

We want to make use of "pgtable_level" for an enum in core-mm. Other
architectures seem to call "struct pgtable_level" either:
* "struct pg_level" when not exposed in a header (riscv, arm)
* "struct ptdump_pg_level" when expose in a header (arm64)

So let's follow what arm64 does.

Signed-off-by: David Hildenbrand <david@redhat.com>
---
 arch/powerpc/mm/ptdump/8xx.c      | 2 +-
 arch/powerpc/mm/ptdump/book3s64.c | 2 +-
 arch/powerpc/mm/ptdump/ptdump.h   | 4 ++--
 arch/powerpc/mm/ptdump/shared.c   | 2 +-
 4 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/arch/powerpc/mm/ptdump/8xx.c b/arch/powerpc/mm/ptdump/8xx.c
index b5c79b11ea3c2..4ca9cf7a90c9e 100644
--- a/arch/powerpc/mm/ptdump/8xx.c
+++ b/arch/powerpc/mm/ptdump/8xx.c
@@ -69,7 +69,7 @@ static const struct flag_info flag_array[] = {
 	}
 };
 
-struct pgtable_level pg_level[5] = {
+struct ptdump_pg_level pg_level[5] = {
 	{ /* pgd */
 		.flag	= flag_array,
 		.num	= ARRAY_SIZE(flag_array),
diff --git a/arch/powerpc/mm/ptdump/book3s64.c b/arch/powerpc/mm/ptdump/book3s64.c
index 5ad92d9dc5d10..6b2da9241d4c4 100644
--- a/arch/powerpc/mm/ptdump/book3s64.c
+++ b/arch/powerpc/mm/ptdump/book3s64.c
@@ -102,7 +102,7 @@ static const struct flag_info flag_array[] = {
 	}
 };
 
-struct pgtable_level pg_level[5] = {
+struct ptdump_pg_level pg_level[5] = {
 	{ /* pgd */
 		.flag	= flag_array,
 		.num	= ARRAY_SIZE(flag_array),
diff --git a/arch/powerpc/mm/ptdump/ptdump.h b/arch/powerpc/mm/ptdump/ptdump.h
index 154efae96ae09..4232aa4b57eae 100644
--- a/arch/powerpc/mm/ptdump/ptdump.h
+++ b/arch/powerpc/mm/ptdump/ptdump.h
@@ -11,12 +11,12 @@ struct flag_info {
 	int		shift;
 };
 
-struct pgtable_level {
+struct ptdump_pg_level {
 	const struct flag_info *flag;
 	size_t num;
 	u64 mask;
 };
 
-extern struct pgtable_level pg_level[5];
+extern struct ptdump_pg_level pg_level[5];
 
 void pt_dump_size(struct seq_file *m, unsigned long delta);
diff --git a/arch/powerpc/mm/ptdump/shared.c b/arch/powerpc/mm/ptdump/shared.c
index 39c30c62b7ea7..58998960eb9a4 100644
--- a/arch/powerpc/mm/ptdump/shared.c
+++ b/arch/powerpc/mm/ptdump/shared.c
@@ -67,7 +67,7 @@ static const struct flag_info flag_array[] = {
 	}
 };
 
-struct pgtable_level pg_level[5] = {
+struct ptdump_pg_level pg_level[5] = {
 	{ /* pgd */
 		.flag	= flag_array,
 		.num	= ARRAY_SIZE(flag_array),
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 11:27:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 11:27:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077388.1438503 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulQg8-0007oT-06; Mon, 11 Aug 2025 11:27:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077388.1438503; Mon, 11 Aug 2025 11:26: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 1ulQg7-0007oG-RT; Mon, 11 Aug 2025 11:26:59 +0000
Received: by outflank-mailman (input) for mailman id 1077388;
 Mon, 11 Aug 2025 11:26:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Gc+J=2X=redhat.com=dhildenb@srs-se1.protection.inumbo.net>)
 id 1ulQg6-000725-T0
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 11:26:59 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.133.124])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1613735d-76a6-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 13:26:56 +0200 (CEST)
Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com
 [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-584-mGypFQuTM5yBodg4X-wNqA-1; Mon, 11 Aug 2025 07:26:54 -0400
Received: by mail-wm1-f71.google.com with SMTP id
 5b1f17b1804b1-459d4b5db81so23748435e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 04:26:53 -0700 (PDT)
Received: from localhost
 (p200300d82f06a600a397de1d2f8bb66f.dip0.t-ipconnect.de.
 [2003:d8:2f06:a600:a397:de1d:2f8b:b66f])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3b79c3bf93dsm40409120f8f.27.2025.08.11.04.26.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 04:26:51 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1613735d-76a6-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1754911615;
	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=P87rLpAYrvMbmMGGuIRrtBN562miOXHo6Y54j1JPV6I=;
	b=cnTBegtjCtwdi9jmHMhftrWMtKrvTFxEJIIR9jl9DLgOVzIVcHkkbDVNMBfYJPKKjs8sUu
	V1IeVqYZ2VOVe/PJOxRXg+r7qNZb8Udh9euA0hckBfXfAZCDUEX6dVVLgfAKo7yuFSY4go
	XxtOmX4zdWbAYFQtizayN6rYxrA5+YU=
X-MC-Unique: mGypFQuTM5yBodg4X-wNqA-1
X-Mimecast-MFC-AGG-ID: mGypFQuTM5yBodg4X-wNqA_1754911613
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754911613; x=1755516413;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=P87rLpAYrvMbmMGGuIRrtBN562miOXHo6Y54j1JPV6I=;
        b=SecNzKKZi9p8VW2g4cXHe3iEcXhl0cKyjVrJxINhGCoe7o17F8hF+sezb4aBBUSmPg
         k5UggYus8UBL/JXyEfuC7NbFJPdrRCcDH8K9hUqe5Gig7gX4CnJ53MQ7Bd6tEioot2Gc
         h4H3qppJvKLsgif4eqtGFpepZVG9B51SzjWUBqVQz5IOfi5CZ58G25psXDsQMynyUQtt
         rO3AZKeFgSFrNCoQbUzWddNbU7749LP/M0ZTFLsJZk8gh3w+RiXWOPiWT49rTFuU1MxK
         wmXO7q5wHpwFcMDp9orsJuiD4GfTKeB3KRRudkZR+yvYE2wyj0gwqGIcMF1pAKd4Fu4P
         ylAw==
X-Forwarded-Encrypted: i=1; AJvYcCVabkO2VfgrVwt83RaF2X5fmFI7zE3SLC6VAdl/2LST9ShZSLx53VeOTbEkUu93dh72gMv+dKVnoUU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxCqH6FU+622/HHiXPpTJ7Kh9YZVP83oVdkQVj/mx8LTe5SYesg
	aBNBZtaQcCwnB9rdNP7A+ANgR1K4HN2/76pQ6Z6dDu9+aLdOb8o7zxNZvJNgA0OcVFuDz+mqbv8
	Qa2eQnJ4uSyyYdDDvWU0k14AqveJaZC92GyywguY9Opj+rJl4Hx4+XI8EvSYfPh0FbTj0
X-Gm-Gg: ASbGncvXXT39Hq3ctKabjihmhb/xHbF+XEPYMlxouWURlP4NUaW+2BhcYaVDNm0Q0sL
	EwYBMTYe9dP6+lXgBYE5l1Rcg8QEbKe+6vx8iRLByAMHRi6MLXy5TPvu1GXZy0hhPLZixMst4Jc
	8KXDJJl1kHIAX8gUIhVGR5u8L7VIL//G9SJ9/T0nDLU1S6hSirq3BHLpD9rj+bAlZRWtOgKsXJx
	322fDbCMzmgZJ+RjS1KXSQ24tsKL0BuSgQH9nrexU41pZln3a2YmF7aPXZF+DXF5UZGY055NM+h
	ogn196ZyoaP0cLoS6z6xpxG1IXgjWMdyrIrGRQKmikR25ulviDKSI6AxW4Slx8t2G+5uJJeztLO
	nwSYwckFJa03Nx+7kOgsyxocl
X-Received: by 2002:a05:600c:3589:b0:459:dfa8:b881 with SMTP id 5b1f17b1804b1-459f4f3cfd9mr103523365e9.7.1754911612587;
        Mon, 11 Aug 2025 04:26:52 -0700 (PDT)
X-Google-Smtp-Source: AGHT+IEiy2Q6M1gIlNBDGe4u7ez53xLkuOFeUzXf29NvQrYJzqDFFp1B3pMcW/PtvRUdMabZHM2Urw==
X-Received: by 2002:a05:600c:3589:b0:459:dfa8:b881 with SMTP id 5b1f17b1804b1-459f4f3cfd9mr103523005e9.7.1754911612074;
        Mon, 11 Aug 2025 04:26:52 -0700 (PDT)
From: David Hildenbrand <david@redhat.com>
To: linux-kernel@vger.kernel.org
Cc: linux-mm@kvack.org,
	xen-devel@lists.xenproject.org,
	linux-fsdevel@vger.kernel.org,
	nvdimm@lists.linux.dev,
	linuxppc-dev@lists.ozlabs.org,
	David Hildenbrand <david@redhat.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Nicholas Piggin <npiggin@gmail.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Dan Williams <dan.j.williams@intel.com>,
	Matthew Wilcox <willy@infradead.org>,
	Jan Kara <jack@suse.cz>,
	Alexander Viro <viro@zeniv.linux.org.uk>,
	Christian Brauner <brauner@kernel.org>,
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Mike Rapoport <rppt@kernel.org>,
	Suren Baghdasaryan <surenb@google.com>,
	Michal Hocko <mhocko@suse.com>,
	Zi Yan <ziy@nvidia.com>,
	Baolin Wang <baolin.wang@linux.alibaba.com>,
	Nico Pache <npache@redhat.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Dev Jain <dev.jain@arm.com>,
	Barry Song <baohua@kernel.org>,
	Jann Horn <jannh@google.com>,
	Pedro Falcato <pfalcato@suse.de>,
	Hugh Dickins <hughd@google.com>,
	Oscar Salvador <osalvador@suse.de>,
	Lance Yang <lance.yang@linux.dev>
Subject: [PATCH v3 07/11] mm/rmap: convert "enum rmap_level" to "enum pgtable_level"
Date: Mon, 11 Aug 2025 13:26:27 +0200
Message-ID: <20250811112631.759341-8-david@redhat.com>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250811112631.759341-1-david@redhat.com>
References: <20250811112631.759341-1-david@redhat.com>
MIME-Version: 1.0
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: xkzyXj5Gr93sltnD2sx9S4vd8k-EPCQeJwTMHL04hDU_1754911613
X-Mimecast-Originator: redhat.com
Content-Transfer-Encoding: 8bit
content-type: text/plain; charset="US-ASCII"; x-default=true

Let's factor it out, and convert all checks for unsupported levels to
BUILD_BUG(). The code is written in a way such that force-inlining will
optimize out the levels.

Signed-off-by: David Hildenbrand <david@redhat.com>
---
 include/linux/pgtable.h |  8 ++++++
 include/linux/rmap.h    | 60 +++++++++++++++++++----------------------
 mm/rmap.c               | 56 +++++++++++++++++++++-----------------
 3 files changed, 66 insertions(+), 58 deletions(-)

diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h
index 4c035637eeb77..bff5c4241bf2e 100644
--- a/include/linux/pgtable.h
+++ b/include/linux/pgtable.h
@@ -1958,6 +1958,14 @@ static inline bool arch_has_pfn_modify_check(void)
 /* Page-Table Modification Mask */
 typedef unsigned int pgtbl_mod_mask;
 
+enum pgtable_level {
+	PGTABLE_LEVEL_PTE = 0,
+	PGTABLE_LEVEL_PMD,
+	PGTABLE_LEVEL_PUD,
+	PGTABLE_LEVEL_P4D,
+	PGTABLE_LEVEL_PGD,
+};
+
 #endif /* !__ASSEMBLY__ */
 
 #if !defined(MAX_POSSIBLE_PHYSMEM_BITS) && !defined(CONFIG_64BIT)
diff --git a/include/linux/rmap.h b/include/linux/rmap.h
index 6cd020eea37a2..9d40d127bdb78 100644
--- a/include/linux/rmap.h
+++ b/include/linux/rmap.h
@@ -394,18 +394,8 @@ typedef int __bitwise rmap_t;
 /* The anonymous (sub)page is exclusive to a single process. */
 #define RMAP_EXCLUSIVE		((__force rmap_t)BIT(0))
 
-/*
- * Internally, we're using an enum to specify the granularity. We make the
- * compiler emit specialized code for each granularity.
- */
-enum rmap_level {
-	RMAP_LEVEL_PTE = 0,
-	RMAP_LEVEL_PMD,
-	RMAP_LEVEL_PUD,
-};
-
 static inline void __folio_rmap_sanity_checks(const struct folio *folio,
-		const struct page *page, int nr_pages, enum rmap_level level)
+		const struct page *page, int nr_pages, enum pgtable_level level)
 {
 	/* hugetlb folios are handled separately. */
 	VM_WARN_ON_FOLIO(folio_test_hugetlb(folio), folio);
@@ -427,18 +417,18 @@ static inline void __folio_rmap_sanity_checks(const struct folio *folio,
 	VM_WARN_ON_FOLIO(page_folio(page + nr_pages - 1) != folio, folio);
 
 	switch (level) {
-	case RMAP_LEVEL_PTE:
+	case PGTABLE_LEVEL_PTE:
 		break;
-	case RMAP_LEVEL_PMD:
+	case PGTABLE_LEVEL_PMD:
 		/*
 		 * We don't support folios larger than a single PMD yet. So
-		 * when RMAP_LEVEL_PMD is set, we assume that we are creating
+		 * when PGTABLE_LEVEL_PMD is set, we assume that we are creating
 		 * a single "entire" mapping of the folio.
 		 */
 		VM_WARN_ON_FOLIO(folio_nr_pages(folio) != HPAGE_PMD_NR, folio);
 		VM_WARN_ON_FOLIO(nr_pages != HPAGE_PMD_NR, folio);
 		break;
-	case RMAP_LEVEL_PUD:
+	case PGTABLE_LEVEL_PUD:
 		/*
 		 * Assume that we are creating a single "entire" mapping of the
 		 * folio.
@@ -447,7 +437,7 @@ static inline void __folio_rmap_sanity_checks(const struct folio *folio,
 		VM_WARN_ON_FOLIO(nr_pages != HPAGE_PUD_NR, folio);
 		break;
 	default:
-		VM_WARN_ON_ONCE(true);
+		BUILD_BUG();
 	}
 
 	/*
@@ -567,14 +557,14 @@ static inline void hugetlb_remove_rmap(struct folio *folio)
 
 static __always_inline void __folio_dup_file_rmap(struct folio *folio,
 		struct page *page, int nr_pages, struct vm_area_struct *dst_vma,
-		enum rmap_level level)
+		enum pgtable_level level)
 {
 	const int orig_nr_pages = nr_pages;
 
 	__folio_rmap_sanity_checks(folio, page, nr_pages, level);
 
 	switch (level) {
-	case RMAP_LEVEL_PTE:
+	case PGTABLE_LEVEL_PTE:
 		if (!folio_test_large(folio)) {
 			atomic_inc(&folio->_mapcount);
 			break;
@@ -587,11 +577,13 @@ static __always_inline void __folio_dup_file_rmap(struct folio *folio,
 		}
 		folio_add_large_mapcount(folio, orig_nr_pages, dst_vma);
 		break;
-	case RMAP_LEVEL_PMD:
-	case RMAP_LEVEL_PUD:
+	case PGTABLE_LEVEL_PMD:
+	case PGTABLE_LEVEL_PUD:
 		atomic_inc(&folio->_entire_mapcount);
 		folio_inc_large_mapcount(folio, dst_vma);
 		break;
+	default:
+		BUILD_BUG();
 	}
 }
 
@@ -609,13 +601,13 @@ static __always_inline void __folio_dup_file_rmap(struct folio *folio,
 static inline void folio_dup_file_rmap_ptes(struct folio *folio,
 		struct page *page, int nr_pages, struct vm_area_struct *dst_vma)
 {
-	__folio_dup_file_rmap(folio, page, nr_pages, dst_vma, RMAP_LEVEL_PTE);
+	__folio_dup_file_rmap(folio, page, nr_pages, dst_vma, PGTABLE_LEVEL_PTE);
 }
 
 static __always_inline void folio_dup_file_rmap_pte(struct folio *folio,
 		struct page *page, struct vm_area_struct *dst_vma)
 {
-	__folio_dup_file_rmap(folio, page, 1, dst_vma, RMAP_LEVEL_PTE);
+	__folio_dup_file_rmap(folio, page, 1, dst_vma, PGTABLE_LEVEL_PTE);
 }
 
 /**
@@ -632,7 +624,7 @@ static inline void folio_dup_file_rmap_pmd(struct folio *folio,
 		struct page *page, struct vm_area_struct *dst_vma)
 {
 #ifdef CONFIG_TRANSPARENT_HUGEPAGE
-	__folio_dup_file_rmap(folio, page, HPAGE_PMD_NR, dst_vma, RMAP_LEVEL_PTE);
+	__folio_dup_file_rmap(folio, page, HPAGE_PMD_NR, dst_vma, PGTABLE_LEVEL_PTE);
 #else
 	WARN_ON_ONCE(true);
 #endif
@@ -640,7 +632,7 @@ static inline void folio_dup_file_rmap_pmd(struct folio *folio,
 
 static __always_inline int __folio_try_dup_anon_rmap(struct folio *folio,
 		struct page *page, int nr_pages, struct vm_area_struct *dst_vma,
-		struct vm_area_struct *src_vma, enum rmap_level level)
+		struct vm_area_struct *src_vma, enum pgtable_level level)
 {
 	const int orig_nr_pages = nr_pages;
 	bool maybe_pinned;
@@ -665,7 +657,7 @@ static __always_inline int __folio_try_dup_anon_rmap(struct folio *folio,
 	 * copying if the folio maybe pinned.
 	 */
 	switch (level) {
-	case RMAP_LEVEL_PTE:
+	case PGTABLE_LEVEL_PTE:
 		if (unlikely(maybe_pinned)) {
 			for (i = 0; i < nr_pages; i++)
 				if (PageAnonExclusive(page + i))
@@ -687,8 +679,8 @@ static __always_inline int __folio_try_dup_anon_rmap(struct folio *folio,
 		} while (page++, --nr_pages > 0);
 		folio_add_large_mapcount(folio, orig_nr_pages, dst_vma);
 		break;
-	case RMAP_LEVEL_PMD:
-	case RMAP_LEVEL_PUD:
+	case PGTABLE_LEVEL_PMD:
+	case PGTABLE_LEVEL_PUD:
 		if (PageAnonExclusive(page)) {
 			if (unlikely(maybe_pinned))
 				return -EBUSY;
@@ -697,6 +689,8 @@ static __always_inline int __folio_try_dup_anon_rmap(struct folio *folio,
 		atomic_inc(&folio->_entire_mapcount);
 		folio_inc_large_mapcount(folio, dst_vma);
 		break;
+	default:
+		BUILD_BUG();
 	}
 	return 0;
 }
@@ -730,7 +724,7 @@ static inline int folio_try_dup_anon_rmap_ptes(struct folio *folio,
 		struct vm_area_struct *src_vma)
 {
 	return __folio_try_dup_anon_rmap(folio, page, nr_pages, dst_vma,
-					 src_vma, RMAP_LEVEL_PTE);
+					 src_vma, PGTABLE_LEVEL_PTE);
 }
 
 static __always_inline int folio_try_dup_anon_rmap_pte(struct folio *folio,
@@ -738,7 +732,7 @@ static __always_inline int folio_try_dup_anon_rmap_pte(struct folio *folio,
 		struct vm_area_struct *src_vma)
 {
 	return __folio_try_dup_anon_rmap(folio, page, 1, dst_vma, src_vma,
-					 RMAP_LEVEL_PTE);
+					 PGTABLE_LEVEL_PTE);
 }
 
 /**
@@ -770,7 +764,7 @@ static inline int folio_try_dup_anon_rmap_pmd(struct folio *folio,
 {
 #ifdef CONFIG_TRANSPARENT_HUGEPAGE
 	return __folio_try_dup_anon_rmap(folio, page, HPAGE_PMD_NR, dst_vma,
-					 src_vma, RMAP_LEVEL_PMD);
+					 src_vma, PGTABLE_LEVEL_PMD);
 #else
 	WARN_ON_ONCE(true);
 	return -EBUSY;
@@ -778,7 +772,7 @@ static inline int folio_try_dup_anon_rmap_pmd(struct folio *folio,
 }
 
 static __always_inline int __folio_try_share_anon_rmap(struct folio *folio,
-		struct page *page, int nr_pages, enum rmap_level level)
+		struct page *page, int nr_pages, enum pgtable_level level)
 {
 	VM_WARN_ON_FOLIO(!folio_test_anon(folio), folio);
 	VM_WARN_ON_FOLIO(!PageAnonExclusive(page), folio);
@@ -873,7 +867,7 @@ static __always_inline int __folio_try_share_anon_rmap(struct folio *folio,
 static inline int folio_try_share_anon_rmap_pte(struct folio *folio,
 		struct page *page)
 {
-	return __folio_try_share_anon_rmap(folio, page, 1, RMAP_LEVEL_PTE);
+	return __folio_try_share_anon_rmap(folio, page, 1, PGTABLE_LEVEL_PTE);
 }
 
 /**
@@ -904,7 +898,7 @@ static inline int folio_try_share_anon_rmap_pmd(struct folio *folio,
 {
 #ifdef CONFIG_TRANSPARENT_HUGEPAGE
 	return __folio_try_share_anon_rmap(folio, page, HPAGE_PMD_NR,
-					   RMAP_LEVEL_PMD);
+					   PGTABLE_LEVEL_PMD);
 #else
 	WARN_ON_ONCE(true);
 	return -EBUSY;
diff --git a/mm/rmap.c b/mm/rmap.c
index 84a8d8b02ef77..0e9c4041f8687 100644
--- a/mm/rmap.c
+++ b/mm/rmap.c
@@ -1265,7 +1265,7 @@ static void __folio_mod_stat(struct folio *folio, int nr, int nr_pmdmapped)
 
 static __always_inline void __folio_add_rmap(struct folio *folio,
 		struct page *page, int nr_pages, struct vm_area_struct *vma,
-		enum rmap_level level)
+		enum pgtable_level level)
 {
 	atomic_t *mapped = &folio->_nr_pages_mapped;
 	const int orig_nr_pages = nr_pages;
@@ -1274,7 +1274,7 @@ static __always_inline void __folio_add_rmap(struct folio *folio,
 	__folio_rmap_sanity_checks(folio, page, nr_pages, level);
 
 	switch (level) {
-	case RMAP_LEVEL_PTE:
+	case PGTABLE_LEVEL_PTE:
 		if (!folio_test_large(folio)) {
 			nr = atomic_inc_and_test(&folio->_mapcount);
 			break;
@@ -1300,11 +1300,11 @@ static __always_inline void __folio_add_rmap(struct folio *folio,
 
 		folio_add_large_mapcount(folio, orig_nr_pages, vma);
 		break;
-	case RMAP_LEVEL_PMD:
-	case RMAP_LEVEL_PUD:
+	case PGTABLE_LEVEL_PMD:
+	case PGTABLE_LEVEL_PUD:
 		first = atomic_inc_and_test(&folio->_entire_mapcount);
 		if (IS_ENABLED(CONFIG_NO_PAGE_MAPCOUNT)) {
-			if (level == RMAP_LEVEL_PMD && first)
+			if (level == PGTABLE_LEVEL_PMD && first)
 				nr_pmdmapped = folio_large_nr_pages(folio);
 			nr = folio_inc_return_large_mapcount(folio, vma);
 			if (nr == 1)
@@ -1323,7 +1323,7 @@ static __always_inline void __folio_add_rmap(struct folio *folio,
 				 * We only track PMD mappings of PMD-sized
 				 * folios separately.
 				 */
-				if (level == RMAP_LEVEL_PMD)
+				if (level == PGTABLE_LEVEL_PMD)
 					nr_pmdmapped = nr_pages;
 				nr = nr_pages - (nr & FOLIO_PAGES_MAPPED);
 				/* Raced ahead of a remove and another add? */
@@ -1336,6 +1336,8 @@ static __always_inline void __folio_add_rmap(struct folio *folio,
 		}
 		folio_inc_large_mapcount(folio, vma);
 		break;
+	default:
+		BUILD_BUG();
 	}
 	__folio_mod_stat(folio, nr, nr_pmdmapped);
 }
@@ -1427,7 +1429,7 @@ static void __page_check_anon_rmap(const struct folio *folio,
 
 static __always_inline void __folio_add_anon_rmap(struct folio *folio,
 		struct page *page, int nr_pages, struct vm_area_struct *vma,
-		unsigned long address, rmap_t flags, enum rmap_level level)
+		unsigned long address, rmap_t flags, enum pgtable_level level)
 {
 	int i;
 
@@ -1440,20 +1442,22 @@ static __always_inline void __folio_add_anon_rmap(struct folio *folio,
 
 	if (flags & RMAP_EXCLUSIVE) {
 		switch (level) {
-		case RMAP_LEVEL_PTE:
+		case PGTABLE_LEVEL_PTE:
 			for (i = 0; i < nr_pages; i++)
 				SetPageAnonExclusive(page + i);
 			break;
-		case RMAP_LEVEL_PMD:
+		case PGTABLE_LEVEL_PMD:
 			SetPageAnonExclusive(page);
 			break;
-		case RMAP_LEVEL_PUD:
+		case PGTABLE_LEVEL_PUD:
 			/*
 			 * Keep the compiler happy, we don't support anonymous
 			 * PUD mappings.
 			 */
 			WARN_ON_ONCE(1);
 			break;
+		default:
+			BUILD_BUG();
 		}
 	}
 
@@ -1507,7 +1511,7 @@ void folio_add_anon_rmap_ptes(struct folio *folio, struct page *page,
 		rmap_t flags)
 {
 	__folio_add_anon_rmap(folio, page, nr_pages, vma, address, flags,
-			      RMAP_LEVEL_PTE);
+			      PGTABLE_LEVEL_PTE);
 }
 
 /**
@@ -1528,7 +1532,7 @@ void folio_add_anon_rmap_pmd(struct folio *folio, struct page *page,
 {
 #ifdef CONFIG_TRANSPARENT_HUGEPAGE
 	__folio_add_anon_rmap(folio, page, HPAGE_PMD_NR, vma, address, flags,
-			      RMAP_LEVEL_PMD);
+			      PGTABLE_LEVEL_PMD);
 #else
 	WARN_ON_ONCE(true);
 #endif
@@ -1609,7 +1613,7 @@ void folio_add_new_anon_rmap(struct folio *folio, struct vm_area_struct *vma,
 
 static __always_inline void __folio_add_file_rmap(struct folio *folio,
 		struct page *page, int nr_pages, struct vm_area_struct *vma,
-		enum rmap_level level)
+		enum pgtable_level level)
 {
 	VM_WARN_ON_FOLIO(folio_test_anon(folio), folio);
 
@@ -1634,7 +1638,7 @@ static __always_inline void __folio_add_file_rmap(struct folio *folio,
 void folio_add_file_rmap_ptes(struct folio *folio, struct page *page,
 		int nr_pages, struct vm_area_struct *vma)
 {
-	__folio_add_file_rmap(folio, page, nr_pages, vma, RMAP_LEVEL_PTE);
+	__folio_add_file_rmap(folio, page, nr_pages, vma, PGTABLE_LEVEL_PTE);
 }
 
 /**
@@ -1651,7 +1655,7 @@ void folio_add_file_rmap_pmd(struct folio *folio, struct page *page,
 		struct vm_area_struct *vma)
 {
 #ifdef CONFIG_TRANSPARENT_HUGEPAGE
-	__folio_add_file_rmap(folio, page, HPAGE_PMD_NR, vma, RMAP_LEVEL_PMD);
+	__folio_add_file_rmap(folio, page, HPAGE_PMD_NR, vma, PGTABLE_LEVEL_PMD);
 #else
 	WARN_ON_ONCE(true);
 #endif
@@ -1672,7 +1676,7 @@ void folio_add_file_rmap_pud(struct folio *folio, struct page *page,
 {
 #if defined(CONFIG_TRANSPARENT_HUGEPAGE) && \
 	defined(CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD)
-	__folio_add_file_rmap(folio, page, HPAGE_PUD_NR, vma, RMAP_LEVEL_PUD);
+	__folio_add_file_rmap(folio, page, HPAGE_PUD_NR, vma, PGTABLE_LEVEL_PUD);
 #else
 	WARN_ON_ONCE(true);
 #endif
@@ -1680,7 +1684,7 @@ void folio_add_file_rmap_pud(struct folio *folio, struct page *page,
 
 static __always_inline void __folio_remove_rmap(struct folio *folio,
 		struct page *page, int nr_pages, struct vm_area_struct *vma,
-		enum rmap_level level)
+		enum pgtable_level level)
 {
 	atomic_t *mapped = &folio->_nr_pages_mapped;
 	int last = 0, nr = 0, nr_pmdmapped = 0;
@@ -1689,7 +1693,7 @@ static __always_inline void __folio_remove_rmap(struct folio *folio,
 	__folio_rmap_sanity_checks(folio, page, nr_pages, level);
 
 	switch (level) {
-	case RMAP_LEVEL_PTE:
+	case PGTABLE_LEVEL_PTE:
 		if (!folio_test_large(folio)) {
 			nr = atomic_add_negative(-1, &folio->_mapcount);
 			break;
@@ -1719,11 +1723,11 @@ static __always_inline void __folio_remove_rmap(struct folio *folio,
 
 		partially_mapped = nr && atomic_read(mapped);
 		break;
-	case RMAP_LEVEL_PMD:
-	case RMAP_LEVEL_PUD:
+	case PGTABLE_LEVEL_PMD:
+	case PGTABLE_LEVEL_PUD:
 		if (IS_ENABLED(CONFIG_NO_PAGE_MAPCOUNT)) {
 			last = atomic_add_negative(-1, &folio->_entire_mapcount);
-			if (level == RMAP_LEVEL_PMD && last)
+			if (level == PGTABLE_LEVEL_PMD && last)
 				nr_pmdmapped = folio_large_nr_pages(folio);
 			nr = folio_dec_return_large_mapcount(folio, vma);
 			if (!nr) {
@@ -1743,7 +1747,7 @@ static __always_inline void __folio_remove_rmap(struct folio *folio,
 			nr = atomic_sub_return_relaxed(ENTIRELY_MAPPED, mapped);
 			if (likely(nr < ENTIRELY_MAPPED)) {
 				nr_pages = folio_large_nr_pages(folio);
-				if (level == RMAP_LEVEL_PMD)
+				if (level == PGTABLE_LEVEL_PMD)
 					nr_pmdmapped = nr_pages;
 				nr = nr_pages - (nr & FOLIO_PAGES_MAPPED);
 				/* Raced ahead of another remove and an add? */
@@ -1757,6 +1761,8 @@ static __always_inline void __folio_remove_rmap(struct folio *folio,
 
 		partially_mapped = nr && nr < nr_pmdmapped;
 		break;
+	default:
+		BUILD_BUG();
 	}
 
 	/*
@@ -1796,7 +1802,7 @@ static __always_inline void __folio_remove_rmap(struct folio *folio,
 void folio_remove_rmap_ptes(struct folio *folio, struct page *page,
 		int nr_pages, struct vm_area_struct *vma)
 {
-	__folio_remove_rmap(folio, page, nr_pages, vma, RMAP_LEVEL_PTE);
+	__folio_remove_rmap(folio, page, nr_pages, vma, PGTABLE_LEVEL_PTE);
 }
 
 /**
@@ -1813,7 +1819,7 @@ void folio_remove_rmap_pmd(struct folio *folio, struct page *page,
 		struct vm_area_struct *vma)
 {
 #ifdef CONFIG_TRANSPARENT_HUGEPAGE
-	__folio_remove_rmap(folio, page, HPAGE_PMD_NR, vma, RMAP_LEVEL_PMD);
+	__folio_remove_rmap(folio, page, HPAGE_PMD_NR, vma, PGTABLE_LEVEL_PMD);
 #else
 	WARN_ON_ONCE(true);
 #endif
@@ -1834,7 +1840,7 @@ void folio_remove_rmap_pud(struct folio *folio, struct page *page,
 {
 #if defined(CONFIG_TRANSPARENT_HUGEPAGE) && \
 	defined(CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD)
-	__folio_remove_rmap(folio, page, HPAGE_PUD_NR, vma, RMAP_LEVEL_PUD);
+	__folio_remove_rmap(folio, page, HPAGE_PUD_NR, vma, PGTABLE_LEVEL_PUD);
 #else
 	WARN_ON_ONCE(true);
 #endif
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 11:27:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 11:27:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077389.1438512 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulQg9-000883-D9; Mon, 11 Aug 2025 11:27:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077389.1438512; Mon, 11 Aug 2025 11: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 1ulQg9-00087F-8d; Mon, 11 Aug 2025 11:27:01 +0000
Received: by outflank-mailman (input) for mailman id 1077389;
 Mon, 11 Aug 2025 11:26:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Gc+J=2X=redhat.com=dhildenb@srs-se1.protection.inumbo.net>)
 id 1ulQg7-0005jI-PO
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 11:26:59 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.129.124])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 17885278-76a6-11f0-a325-13f23c93f187;
 Mon, 11 Aug 2025 13:26:59 +0200 (CEST)
Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com
 [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-617-NsEbjSgrMgSL9TmYbqp4vQ-1; Mon, 11 Aug 2025 07:26:56 -0400
Received: by mail-wm1-f72.google.com with SMTP id
 5b1f17b1804b1-451d30992bcso40949665e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 04:26:56 -0700 (PDT)
Received: from localhost
 (p200300d82f06a600a397de1d2f8bb66f.dip0.t-ipconnect.de.
 [2003:d8:2f06:a600:a397:de1d:2f8b:b66f])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3b79c4530b3sm41080102f8f.34.2025.08.11.04.26.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 04:26: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>
X-Inumbo-ID: 17885278-76a6-11f0-a325-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1754911617;
	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=cAxz8wtEYwnzSbLFT0UZ22FzefKNNzcleMeX5Ma3lWM=;
	b=iR1WrxDNbGUaAIjQeyLPXO0TEnwD5+xxqMDcuc7O+LhPclkuMwNCMJUr5DLu23HcfKk6+I
	T3N36B3f73fwPbaQWASTnvAhDwAMOdzgJu/TgvtBLhKjmGILGXnjlfj/WWT2oDt8Y/xj0H
	iwyCyXPSyo+hJpjJx/NaB3J2xXRESoE=
X-MC-Unique: NsEbjSgrMgSL9TmYbqp4vQ-1
X-Mimecast-MFC-AGG-ID: NsEbjSgrMgSL9TmYbqp4vQ_1754911615
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754911615; x=1755516415;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=cAxz8wtEYwnzSbLFT0UZ22FzefKNNzcleMeX5Ma3lWM=;
        b=Uz+9jiyJ4Qi1/qP3l8fRQdY7aOZ7AmcLDCIJU8SjYwJowFGrBV6B0r9Nn2s1uTDu7j
         4WcQgi7nXbVLECgbm1MyAGKik806ufuWbbSbXvu7vDYTXAfRklkm+cccMeXi7RzyPtfj
         odx1rZqcfDLPDHIwEFSjdmLrr+/PLCLino2qJukcEr9UbANbYt0mghy/2Cw8qeE/Ht2I
         obqgmBh1Z2/89IkG7+vTCdlb0hDTXLqZ3JSi8u97KEd7h+kIaTJJhaH2+nRFQicCqaVN
         yh2OpmeRdHoo5Xla3CJQKOrjDUyb0HlyCOSJfiGWOUfSBKbg1voZs1+OWfiAFM8FwHjw
         gP7g==
X-Forwarded-Encrypted: i=1; AJvYcCWAevMYpY4Sda8k1BzIZj6XAZexcnAHIc7zwYak9O3K+3DogjUhwDZEVXW3uoW9V+5nvqlB9vkm940=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwH5wg25iFZ7rT40qoC7ppFsU8UmqroZtZLDvcvJRfc6g4T7eRq
	UXzauvH/3IpLfm+7oQFBhoNsfgmG1rJKxt5Nkv7RmbANKVfz5n2SfZqjKWmwUdttnjlrlSzsyOa
	8y5mQdlrwf2saugDCL0ry5W/tBhDks1AhhAnbCYFq/f3DDyIds0/m7AUfqeoiP1ZNLpZ+
X-Gm-Gg: ASbGncuU4OugYHl6+x9pr04Xw4dFaCpJ2yjoevIk7oEn1e3QUa0BFC714X1yPknegal
	0mLtOR96GW4cpIiczmUWfeAwI2HiquceN6dguhcDwh+BWjfSy0DOQc+5HNpLB6++MiuS+E7Kk/C
	G4ubxc6YlnURlnAqBc/mNXcW4vF6mZwq/0FUEzET4gYu14+MEV2NFJJ2bWpS8tgXZKV7dVnK74g
	PoKmgSQSvodCpV2lREFizxMNNLj2YHAW4gwpn+ICYjWmjcI5pQT9sK7IAk6fvgHUwg3nS/s8tU+
	4jxYb2NG1BF8MWtAZibSYK033obeZtlHq6PoddpYG56b3wdS0vH+YCiVImlwB7ekc6oirD6PU+Q
	Sp2pmVcMbDT1VRcWK2+0852g1
X-Received: by 2002:a05:600c:350f:b0:456:1560:7c63 with SMTP id 5b1f17b1804b1-459f4f3dde5mr124071065e9.3.1754911615200;
        Mon, 11 Aug 2025 04:26:55 -0700 (PDT)
X-Google-Smtp-Source: AGHT+IHKs8kYesKmGWPRfo05vS75I0Yn/yE7Pq2L/J4XRbC28zXbi7Rocgkv1+OCyQd3aXR+1J2h1Q==
X-Received: by 2002:a05:600c:350f:b0:456:1560:7c63 with SMTP id 5b1f17b1804b1-459f4f3dde5mr124070425e9.3.1754911614678;
        Mon, 11 Aug 2025 04:26:54 -0700 (PDT)
From: David Hildenbrand <david@redhat.com>
To: linux-kernel@vger.kernel.org
Cc: linux-mm@kvack.org,
	xen-devel@lists.xenproject.org,
	linux-fsdevel@vger.kernel.org,
	nvdimm@lists.linux.dev,
	linuxppc-dev@lists.ozlabs.org,
	David Hildenbrand <david@redhat.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Nicholas Piggin <npiggin@gmail.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Dan Williams <dan.j.williams@intel.com>,
	Matthew Wilcox <willy@infradead.org>,
	Jan Kara <jack@suse.cz>,
	Alexander Viro <viro@zeniv.linux.org.uk>,
	Christian Brauner <brauner@kernel.org>,
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Mike Rapoport <rppt@kernel.org>,
	Suren Baghdasaryan <surenb@google.com>,
	Michal Hocko <mhocko@suse.com>,
	Zi Yan <ziy@nvidia.com>,
	Baolin Wang <baolin.wang@linux.alibaba.com>,
	Nico Pache <npache@redhat.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Dev Jain <dev.jain@arm.com>,
	Barry Song <baohua@kernel.org>,
	Jann Horn <jannh@google.com>,
	Pedro Falcato <pfalcato@suse.de>,
	Hugh Dickins <hughd@google.com>,
	Oscar Salvador <osalvador@suse.de>,
	Lance Yang <lance.yang@linux.dev>
Subject: [PATCH v3 08/11] mm/memory: convert print_bad_pte() to print_bad_page_map()
Date: Mon, 11 Aug 2025 13:26:28 +0200
Message-ID: <20250811112631.759341-9-david@redhat.com>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250811112631.759341-1-david@redhat.com>
References: <20250811112631.759341-1-david@redhat.com>
MIME-Version: 1.0
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: 1v7BmQgpxPNvKRzGkXypQ5jUwCR6YCDHTDRpB1rcqzI_1754911615
X-Mimecast-Originator: redhat.com
Content-Transfer-Encoding: 8bit
content-type: text/plain; charset="US-ASCII"; x-default=true

print_bad_pte() looks like something that should actually be a WARN
or similar, but historically it apparently has proven to be useful to
detect corruption of page tables even on production systems -- report
the issue and keep the system running to make it easier to actually detect
what is going wrong (e.g., multiple such messages might shed a light).

As we want to unify vm_normal_page_*() handling for PTE/PMD/PUD, we'll have
to take care of print_bad_pte() as well.

Let's prepare for using print_bad_pte() also for non-PTEs by adjusting the
implementation and renaming the function to print_bad_page_map().
Provide print_bad_pte() as a simple wrapper.

Document the implicit locking requirements for the page table re-walk.

To make the function a bit more readable, factor out the ratelimit check
into is_bad_page_map_ratelimited() and place the printing of page
table content into __print_bad_page_map_pgtable(). We'll now dump
information from each level in a single line, and just stop the table
walk once we hit something that is not a present page table.

The report will now look something like (dumping pgd to pmd values):

[   77.943408] BUG: Bad page map in process XXX  pte:80000001233f5867
[   77.944077] addr:00007fd84bb1c000 vm_flags:08100071 anon_vma: ...
[   77.945186] pgd:10a89f067 p4d:10a89f067 pud:10e5a2067 pmd:105327067

Not using pgdp_get(), because that does not work properly on some arm
configs where pgd_t is an array. Note that we are dumping all levels
even when levels are folded for simplicity.

Signed-off-by: David Hildenbrand <david@redhat.com>
---
 include/linux/pgtable.h |  19 ++++++++
 mm/memory.c             | 104 ++++++++++++++++++++++++++++++++--------
 2 files changed, 103 insertions(+), 20 deletions(-)

diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h
index bff5c4241bf2e..33c84b38b7ec6 100644
--- a/include/linux/pgtable.h
+++ b/include/linux/pgtable.h
@@ -1966,6 +1966,25 @@ enum pgtable_level {
 	PGTABLE_LEVEL_PGD,
 };
 
+static inline const char *pgtable_level_to_str(enum pgtable_level level)
+{
+	switch (level) {
+	case PGTABLE_LEVEL_PTE:
+		return "pte";
+	case PGTABLE_LEVEL_PMD:
+		return "pmd";
+	case PGTABLE_LEVEL_PUD:
+		return "pud";
+	case PGTABLE_LEVEL_P4D:
+		return "p4d";
+	case PGTABLE_LEVEL_PGD:
+		return "pgd";
+	default:
+		VM_WARN_ON_ONCE(1);
+		return "unknown";
+	}
+}
+
 #endif /* !__ASSEMBLY__ */
 
 #if !defined(MAX_POSSIBLE_PHYSMEM_BITS) && !defined(CONFIG_64BIT)
diff --git a/mm/memory.c b/mm/memory.c
index 626caedce35e0..dc0107354d37b 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -491,22 +491,8 @@ static inline void add_mm_rss_vec(struct mm_struct *mm, int *rss)
 			add_mm_counter(mm, i, rss[i]);
 }
 
-/*
- * This function is called to print an error when a bad pte
- * is found. For example, we might have a PFN-mapped pte in
- * a region that doesn't allow it.
- *
- * The calling function must still handle the error.
- */
-static void print_bad_pte(struct vm_area_struct *vma, unsigned long addr,
-			  pte_t pte, struct page *page)
+static bool is_bad_page_map_ratelimited(void)
 {
-	pgd_t *pgd = pgd_offset(vma->vm_mm, addr);
-	p4d_t *p4d = p4d_offset(pgd, addr);
-	pud_t *pud = pud_offset(p4d, addr);
-	pmd_t *pmd = pmd_offset(pud, addr);
-	struct address_space *mapping;
-	pgoff_t index;
 	static unsigned long resume;
 	static unsigned long nr_shown;
 	static unsigned long nr_unshown;
@@ -518,7 +504,7 @@ static void print_bad_pte(struct vm_area_struct *vma, unsigned long addr,
 	if (nr_shown == 60) {
 		if (time_before(jiffies, resume)) {
 			nr_unshown++;
-			return;
+			return true;
 		}
 		if (nr_unshown) {
 			pr_alert("BUG: Bad page map: %lu messages suppressed\n",
@@ -529,15 +515,91 @@ static void print_bad_pte(struct vm_area_struct *vma, unsigned long addr,
 	}
 	if (nr_shown++ == 0)
 		resume = jiffies + 60 * HZ;
+	return false;
+}
+
+static void __print_bad_page_map_pgtable(struct mm_struct *mm, unsigned long addr)
+{
+	unsigned long long pgdv, p4dv, pudv, pmdv;
+	p4d_t p4d, *p4dp;
+	pud_t pud, *pudp;
+	pmd_t pmd, *pmdp;
+	pgd_t *pgdp;
+
+	/*
+	 * Although this looks like a fully lockless pgtable walk, it is not:
+	 * see locking requirements for print_bad_page_map().
+	 */
+	pgdp = pgd_offset(mm, addr);
+	pgdv = pgd_val(*pgdp);
+
+	if (!pgd_present(*pgdp) || pgd_leaf(*pgdp)) {
+		pr_alert("pgd:%08llx\n", pgdv);
+		return;
+	}
+
+	p4dp = p4d_offset(pgdp, addr);
+	p4d = p4dp_get(p4dp);
+	p4dv = p4d_val(p4d);
+
+	if (!p4d_present(p4d) || p4d_leaf(p4d)) {
+		pr_alert("pgd:%08llx p4d:%08llx\n", pgdv, p4dv);
+		return;
+	}
+
+	pudp = pud_offset(p4dp, addr);
+	pud = pudp_get(pudp);
+	pudv = pud_val(pud);
+
+	if (!pud_present(pud) || pud_leaf(pud)) {
+		pr_alert("pgd:%08llx p4d:%08llx pud:%08llx\n", pgdv, p4dv, pudv);
+		return;
+	}
+
+	pmdp = pmd_offset(pudp, addr);
+	pmd = pmdp_get(pmdp);
+	pmdv = pmd_val(pmd);
+
+	/*
+	 * Dumping the PTE would be nice, but it's tricky with CONFIG_HIGHPTE,
+	 * because the table should already be mapped by the caller and
+	 * doing another map would be bad. print_bad_page_map() should
+	 * already take care of printing the PTE.
+	 */
+	pr_alert("pgd:%08llx p4d:%08llx pud:%08llx pmd:%08llx\n", pgdv,
+		 p4dv, pudv, pmdv);
+}
+
+/*
+ * This function is called to print an error when a bad page table entry (e.g.,
+ * corrupted page table entry) is found. For example, we might have a
+ * PFN-mapped pte in a region that doesn't allow it.
+ *
+ * The calling function must still handle the error.
+ *
+ * This function must be called during a proper page table walk, as it will
+ * re-walk the page table to dump information: the caller MUST prevent page
+ * table teardown (by holding mmap, vma or rmap lock) and MUST hold the leaf
+ * page table lock.
+ */
+static void print_bad_page_map(struct vm_area_struct *vma,
+		unsigned long addr, unsigned long long entry, struct page *page,
+		enum pgtable_level level)
+{
+	struct address_space *mapping;
+	pgoff_t index;
+
+	if (is_bad_page_map_ratelimited())
+		return;
 
 	mapping = vma->vm_file ? vma->vm_file->f_mapping : NULL;
 	index = linear_page_index(vma, addr);
 
-	pr_alert("BUG: Bad page map in process %s  pte:%08llx pmd:%08llx\n",
-		 current->comm,
-		 (long long)pte_val(pte), (long long)pmd_val(*pmd));
+	pr_alert("BUG: Bad page map in process %s  %s:%08llx", current->comm,
+		 pgtable_level_to_str(level), entry);
+	__print_bad_page_map_pgtable(vma->vm_mm, addr);
 	if (page)
-		dump_page(page, "bad pte");
+		dump_page(page, "bad page map");
 	pr_alert("addr:%px vm_flags:%08lx anon_vma:%px mapping:%px index:%lx\n",
 		 (void *)addr, vma->vm_flags, vma->anon_vma, mapping, index);
 	pr_alert("file:%pD fault:%ps mmap:%ps mmap_prepare: %ps read_folio:%ps\n",
@@ -549,6 +611,8 @@ static void print_bad_pte(struct vm_area_struct *vma, unsigned long addr,
 	dump_stack();
 	add_taint(TAINT_BAD_PAGE, LOCKDEP_NOW_UNRELIABLE);
 }
+#define print_bad_pte(vma, addr, pte, page) \
+	print_bad_page_map(vma, addr, pte_val(pte), page, PGTABLE_LEVEL_PTE)
 
 /*
  * vm_normal_page -- This function gets the "struct page" associated with a pte.
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 11:27:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 11:27:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077397.1438522 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulQgC-0000Gv-OH; Mon, 11 Aug 2025 11:27:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077397.1438522; Mon, 11 Aug 2025 11: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 1ulQgC-0000GU-Jt; Mon, 11 Aug 2025 11:27:04 +0000
Received: by outflank-mailman (input) for mailman id 1077397;
 Mon, 11 Aug 2025 11:27:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Gc+J=2X=redhat.com=dhildenb@srs-se1.protection.inumbo.net>)
 id 1ulQgB-000725-Ku
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 11:27:03 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.133.124])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1904dc33-76a6-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 13:27:01 +0200 (CEST)
Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com
 [209.85.221.72]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-296-zm1sSPvPMrqCoENuOLkvtw-1; Mon, 11 Aug 2025 07:26:59 -0400
Received: by mail-wr1-f72.google.com with SMTP id
 ffacd0b85a97d-3b90ab438b9so469403f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 04:26:58 -0700 (PDT)
Received: from localhost
 (p200300d82f06a600a397de1d2f8bb66f.dip0.t-ipconnect.de.
 [2003:d8:2f06:a600:a397:de1d:2f8b:b66f])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3b79c453d6esm40173200f8f.37.2025.08.11.04.26.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 04:26: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>
X-Inumbo-ID: 1904dc33-76a6-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1754911620;
	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=+EOzLE+RTai94Qoe+vHWeyxEes26RRi+ewlRPXeNOJQ=;
	b=hVVP4aueCoOS7lXCo5xbS+v7oP0xgL8ED/uuvs96r2r+XPEQFC+n58IffKorap5T7fHJrL
	yT7LMfceSSk69jDWhWbdXbLbhvjy37KEvsHbOpt9Rf07tU/+ZjPVpgjxc4Jzbn3oJs0EP/
	IeZOU8sHJGj5IluQtLXwWiamM+NW5UA=
X-MC-Unique: zm1sSPvPMrqCoENuOLkvtw-1
X-Mimecast-MFC-AGG-ID: zm1sSPvPMrqCoENuOLkvtw_1754911618
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754911618; x=1755516418;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=+EOzLE+RTai94Qoe+vHWeyxEes26RRi+ewlRPXeNOJQ=;
        b=lI9dhfdr7V54PIhojAMvMKBWU1ZVpSw9ZNbQeQfcWuCPxB5qTLfUr75BG6u9bBVTbT
         3penzFpfh8SmipKnGbpT8HAQiprhhu1XRu6pwLRtcx1XKU5XQdfw29H8kuPWy+7urYX4
         R1PEQ/N15RLl+5A0m5X29GJcx79BhaD5SK1rv6hKQN20i88YGUHtJyp4jaKrQ50aLiOk
         fQRUDacH5vbv74h3ZTgmkvdEcogoDgau9LcI7XaFzjE7Qkwu/gWpngyTXzPyaunHpgro
         lAL+gg0GxiKmLQc2BAmTyGCbo7bR6dj7v6gvux+qR5b1NpSmbVOPP+QzRDmJ1C/2RHWr
         ZxxA==
X-Forwarded-Encrypted: i=1; AJvYcCVS1mJc1kMLDwpwlZmAZr9HS77uHO/rqHZYV9+I9es3L1UuSSO1GIBYBBy24saAqcxSPND9Xxlh1w0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzxwYMFIZmGqIhwZ45J9bw90LtyCb0uvJ5LrgkRAfjIzdZ8Irs/
	4mIWUXoLRedL1Cm7rqWc5uyar8LjP/dC4AnEsCNM1sd9aQmBKafu613B1wpgBgULbYN3ttiDkgt
	vZHwjzNpxynIWAMYc7BBWZa3JvhDWeh4gMZ4le0O4aj+qNBX6kW+5MUnags36T8QEIEmS
X-Gm-Gg: ASbGncsj7o/60MsuQI2+fw76dVgIcYjIDm7uA27GigFLw91Whkjiq3bu7fj2Y3+r45X
	wwbPAeXyo/neeHv2o2QrokpwahEP83tS1q32kee9fXKe6/6J1CVEgXHOoqeb0QepVXvVnnPPEhC
	dZjJUIS/dzgcDl3HR7oa/1s8t5+JARR4zCpsvZ7hjCz6pMyTVV8IEKWfriQ2mPYfjU9BJfJF9IC
	l3JGWzleYA3BeE6lYFlL5XyK1HafUtO2cXqazgvKVE4G4j2XgufmqxtRQpJl+80txBTlyWofrxr
	aBpqJRSSkv5QMINaLwPvJn48HFEPFbgJGGPox23/aL1Hb3NlE7FD0EfomzWfFtx7qKpNViGccT7
	44oWh/rUQa66F5I3ygzvNVVLC
X-Received: by 2002:a05:6000:40da:b0:3b7:9d87:97c6 with SMTP id ffacd0b85a97d-3b900b552ccmr11182475f8f.44.1754911617651;
        Mon, 11 Aug 2025 04:26:57 -0700 (PDT)
X-Google-Smtp-Source: AGHT+IHgzaZVe/bWq5ilsSm3I+nGmnBoU4tOWHlsDn35ubDMQPCamCfdsJ8Ebz2VnZDz+OwT7Da1fQ==
X-Received: by 2002:a05:6000:40da:b0:3b7:9d87:97c6 with SMTP id ffacd0b85a97d-3b900b552ccmr11182439f8f.44.1754911617130;
        Mon, 11 Aug 2025 04:26:57 -0700 (PDT)
From: David Hildenbrand <david@redhat.com>
To: linux-kernel@vger.kernel.org
Cc: linux-mm@kvack.org,
	xen-devel@lists.xenproject.org,
	linux-fsdevel@vger.kernel.org,
	nvdimm@lists.linux.dev,
	linuxppc-dev@lists.ozlabs.org,
	David Hildenbrand <david@redhat.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Nicholas Piggin <npiggin@gmail.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Dan Williams <dan.j.williams@intel.com>,
	Matthew Wilcox <willy@infradead.org>,
	Jan Kara <jack@suse.cz>,
	Alexander Viro <viro@zeniv.linux.org.uk>,
	Christian Brauner <brauner@kernel.org>,
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Mike Rapoport <rppt@kernel.org>,
	Suren Baghdasaryan <surenb@google.com>,
	Michal Hocko <mhocko@suse.com>,
	Zi Yan <ziy@nvidia.com>,
	Baolin Wang <baolin.wang@linux.alibaba.com>,
	Nico Pache <npache@redhat.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Dev Jain <dev.jain@arm.com>,
	Barry Song <baohua@kernel.org>,
	Jann Horn <jannh@google.com>,
	Pedro Falcato <pfalcato@suse.de>,
	Hugh Dickins <hughd@google.com>,
	Oscar Salvador <osalvador@suse.de>,
	Lance Yang <lance.yang@linux.dev>
Subject: [PATCH v3 09/11] mm/memory: factor out common code from vm_normal_page_*()
Date: Mon, 11 Aug 2025 13:26:29 +0200
Message-ID: <20250811112631.759341-10-david@redhat.com>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250811112631.759341-1-david@redhat.com>
References: <20250811112631.759341-1-david@redhat.com>
MIME-Version: 1.0
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: 8tLx9QVwPHJ0I7om2SMxci1oTAWjFG9Yv1KXmy5zbxg_1754911618
X-Mimecast-Originator: redhat.com
Content-Transfer-Encoding: 8bit
content-type: text/plain; charset="US-ASCII"; x-default=true

Let's reduce the code duplication and factor out the non-pte/pmd related
magic into __vm_normal_page().

To keep it simpler, check the pfn against both zero folios, which
shouldn't really make a difference.

It's a good question if we can even hit the !CONFIG_ARCH_HAS_PTE_SPECIAL
scenario in the PMD case in practice: but doesn't really matter, as
it's now all unified in vm_normal_page_pfn().

Add kerneldoc for all involved functions.

Note that, as a side product, we now:
* Support the find_special_page special thingy also for PMD
* Don't check for is_huge_zero_pfn() anymore if we have
  CONFIG_ARCH_HAS_PTE_SPECIAL and the PMD is not special. The
  VM_WARN_ON_ONCE would catch any abuse

No functional change intended.

Reviewed-by: Oscar Salvador <osalvador@suse.de>
Signed-off-by: David Hildenbrand <david@redhat.com>
---
 mm/memory.c | 186 ++++++++++++++++++++++++++++++----------------------
 1 file changed, 109 insertions(+), 77 deletions(-)

diff --git a/mm/memory.c b/mm/memory.c
index dc0107354d37b..78af3f243cee7 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -614,8 +614,14 @@ static void print_bad_page_map(struct vm_area_struct *vma,
 #define print_bad_pte(vma, addr, pte, page) \
 	print_bad_page_map(vma, addr, pte_val(pte), page, PGTABLE_LEVEL_PTE)
 
-/*
- * vm_normal_page -- This function gets the "struct page" associated with a pte.
+/**
+ * __vm_normal_page() - Get the "struct page" associated with a page table entry.
+ * @vma: The VMA mapping the page table entry.
+ * @addr: The address where the page table entry is mapped.
+ * @pfn: The PFN stored in the page table entry.
+ * @special: Whether the page table entry is marked "special".
+ * @level: The page table level for error reporting purposes only.
+ * @entry: The page table entry value for error reporting purposes only.
  *
  * "Special" mappings do not wish to be associated with a "struct page" (either
  * it doesn't exist, or it exists but they don't want to touch it). In this
@@ -628,10 +634,10 @@ static void print_bad_page_map(struct vm_area_struct *vma,
  * Selected page table walkers (such as GUP) can still identify mappings of the
  * shared zero folios and work with the underlying "struct page".
  *
- * There are 2 broad cases. Firstly, an architecture may define a pte_special()
- * pte bit, in which case this function is trivial. Secondly, an architecture
- * may not have a spare pte bit, which requires a more complicated scheme,
- * described below.
+ * There are 2 broad cases. Firstly, an architecture may define a "special"
+ * page table entry bit, such as pte_special(), in which case this function is
+ * trivial. Secondly, an architecture may not have a spare page table
+ * entry bit, which requires a more complicated scheme, described below.
  *
  * A raw VM_PFNMAP mapping (ie. one that is not COWed) is always considered a
  * special mapping (even if there are underlying and valid "struct pages").
@@ -664,63 +670,94 @@ static void print_bad_page_map(struct vm_area_struct *vma,
  * don't have to follow the strict linearity rule of PFNMAP mappings in
  * order to support COWable mappings.
  *
+ * Return: Returns the "struct page" if this is a "normal" mapping. Returns
+ *	   NULL if this is a "special" mapping.
  */
-struct page *vm_normal_page(struct vm_area_struct *vma, unsigned long addr,
-			    pte_t pte)
+static inline struct page *__vm_normal_page(struct vm_area_struct *vma,
+		unsigned long addr, unsigned long pfn, bool special,
+		unsigned long long entry, enum pgtable_level level)
 {
-	unsigned long pfn = pte_pfn(pte);
-
 	if (IS_ENABLED(CONFIG_ARCH_HAS_PTE_SPECIAL)) {
-		if (likely(!pte_special(pte)))
-			goto check_pfn;
-		if (vma->vm_ops && vma->vm_ops->find_special_page)
-			return vma->vm_ops->find_special_page(vma, addr);
-		if (vma->vm_flags & (VM_PFNMAP | VM_MIXEDMAP))
-			return NULL;
-		if (is_zero_pfn(pfn))
-			return NULL;
-
-		print_bad_pte(vma, addr, pte, NULL);
-		return NULL;
-	}
-
-	/* !CONFIG_ARCH_HAS_PTE_SPECIAL case follows: */
-
-	if (unlikely(vma->vm_flags & (VM_PFNMAP|VM_MIXEDMAP))) {
-		if (vma->vm_flags & VM_MIXEDMAP) {
-			if (!pfn_valid(pfn))
+		if (unlikely(special)) {
+			if (vma->vm_ops && vma->vm_ops->find_special_page)
+				return vma->vm_ops->find_special_page(vma, addr);
+			if (vma->vm_flags & (VM_PFNMAP | VM_MIXEDMAP))
 				return NULL;
-			if (is_zero_pfn(pfn))
-				return NULL;
-			goto out;
-		} else {
-			unsigned long off;
-			off = (addr - vma->vm_start) >> PAGE_SHIFT;
-			if (pfn == vma->vm_pgoff + off)
-				return NULL;
-			if (!is_cow_mapping(vma->vm_flags))
+			if (is_zero_pfn(pfn) || is_huge_zero_pfn(pfn))
 				return NULL;
+
+			print_bad_page_map(vma, addr, entry, NULL, level);
+			return NULL;
 		}
-	}
+		/*
+		 * With CONFIG_ARCH_HAS_PTE_SPECIAL, any special page table
+		 * mappings (incl. shared zero folios) are marked accordingly.
+		 */
+	} else {
+		if (unlikely(vma->vm_flags & (VM_PFNMAP | VM_MIXEDMAP))) {
+			if (vma->vm_flags & VM_MIXEDMAP) {
+				/* If it has a "struct page", it's "normal". */
+				if (!pfn_valid(pfn))
+					return NULL;
+			} else {
+				unsigned long off = (addr - vma->vm_start) >> PAGE_SHIFT;
 
-	if (is_zero_pfn(pfn))
-		return NULL;
+				/* Only CoW'ed anon folios are "normal". */
+				if (pfn == vma->vm_pgoff + off)
+					return NULL;
+				if (!is_cow_mapping(vma->vm_flags))
+					return NULL;
+			}
+		}
+
+		if (is_zero_pfn(pfn) || is_huge_zero_pfn(pfn))
+			return NULL;
+	}
 
-check_pfn:
 	if (unlikely(pfn > highest_memmap_pfn)) {
-		print_bad_pte(vma, addr, pte, NULL);
+		/* Corrupted page table entry. */
+		print_bad_page_map(vma, addr, entry, NULL, level);
 		return NULL;
 	}
-
 	/*
 	 * NOTE! We still have PageReserved() pages in the page tables.
-	 * eg. VDSO mappings can cause them to exist.
+	 * For example, VDSO mappings can cause them to exist.
 	 */
-out:
-	VM_WARN_ON_ONCE(is_zero_pfn(pfn));
+	VM_WARN_ON_ONCE(is_zero_pfn(pfn) || is_huge_zero_pfn(pfn));
 	return pfn_to_page(pfn);
 }
 
+/**
+ * vm_normal_page() - Get the "struct page" associated with a PTE
+ * @vma: The VMA mapping the @pte.
+ * @addr: The address where the @pte is mapped.
+ * @pte: The PTE.
+ *
+ * Get the "struct page" associated with a PTE. See __vm_normal_page()
+ * for details on "normal" and "special" mappings.
+ *
+ * Return: Returns the "struct page" if this is a "normal" mapping. Returns
+ *	   NULL if this is a "special" mapping.
+ */
+struct page *vm_normal_page(struct vm_area_struct *vma, unsigned long addr,
+			    pte_t pte)
+{
+	return __vm_normal_page(vma, addr, pte_pfn(pte), pte_special(pte),
+				pte_val(pte), PGTABLE_LEVEL_PTE);
+}
+
+/**
+ * vm_normal_folio() - Get the "struct folio" associated with a PTE
+ * @vma: The VMA mapping the @pte.
+ * @addr: The address where the @pte is mapped.
+ * @pte: The PTE.
+ *
+ * Get the "struct folio" associated with a PTE. See __vm_normal_page()
+ * for details on "normal" and "special" mappings.
+ *
+ * Return: Returns the "struct folio" if this is a "normal" mapping. Returns
+ *	   NULL if this is a "special" mapping.
+ */
 struct folio *vm_normal_folio(struct vm_area_struct *vma, unsigned long addr,
 			    pte_t pte)
 {
@@ -732,42 +769,37 @@ struct folio *vm_normal_folio(struct vm_area_struct *vma, unsigned long addr,
 }
 
 #ifdef CONFIG_PGTABLE_HAS_HUGE_LEAVES
+/**
+ * vm_normal_page_pmd() - Get the "struct page" associated with a PMD
+ * @vma: The VMA mapping the @pmd.
+ * @addr: The address where the @pmd is mapped.
+ * @pmd: The PMD.
+ *
+ * Get the "struct page" associated with a PTE. See __vm_normal_page()
+ * for details on "normal" and "special" mappings.
+ *
+ * Return: Returns the "struct page" if this is a "normal" mapping. Returns
+ *	   NULL if this is a "special" mapping.
+ */
 struct page *vm_normal_page_pmd(struct vm_area_struct *vma, unsigned long addr,
 				pmd_t pmd)
 {
-	unsigned long pfn = pmd_pfn(pmd);
-
-	if (unlikely(pmd_special(pmd)))
-		return NULL;
-
-	if (unlikely(vma->vm_flags & (VM_PFNMAP|VM_MIXEDMAP))) {
-		if (vma->vm_flags & VM_MIXEDMAP) {
-			if (!pfn_valid(pfn))
-				return NULL;
-			goto out;
-		} else {
-			unsigned long off;
-			off = (addr - vma->vm_start) >> PAGE_SHIFT;
-			if (pfn == vma->vm_pgoff + off)
-				return NULL;
-			if (!is_cow_mapping(vma->vm_flags))
-				return NULL;
-		}
-	}
-
-	if (is_huge_zero_pfn(pfn))
-		return NULL;
-	if (unlikely(pfn > highest_memmap_pfn))
-		return NULL;
-
-	/*
-	 * NOTE! We still have PageReserved() pages in the page tables.
-	 * eg. VDSO mappings can cause them to exist.
-	 */
-out:
-	return pfn_to_page(pfn);
+	return __vm_normal_page(vma, addr, pmd_pfn(pmd), pmd_special(pmd),
+				pmd_val(pmd), PGTABLE_LEVEL_PMD);
 }
 
+/**
+ * vm_normal_folio_pmd() - Get the "struct folio" associated with a PMD
+ * @vma: The VMA mapping the @pmd.
+ * @addr: The address where the @pmd is mapped.
+ * @pmd: The PMD.
+ *
+ * Get the "struct folio" associated with a PTE. See __vm_normal_page()
+ * for details on "normal" and "special" mappings.
+ *
+ * Return: Returns the "struct folio" if this is a "normal" mapping. Returns
+ *	   NULL if this is a "special" mapping.
+ */
 struct folio *vm_normal_folio_pmd(struct vm_area_struct *vma,
 				  unsigned long addr, pmd_t pmd)
 {
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 11:27:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 11:27:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077402.1438533 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulQgH-0000pu-3m; Mon, 11 Aug 2025 11:27:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077402.1438533; Mon, 11 Aug 2025 11:27:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulQgG-0000pb-Ut; Mon, 11 Aug 2025 11:27:08 +0000
Received: by outflank-mailman (input) for mailman id 1077402;
 Mon, 11 Aug 2025 11:27:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Gc+J=2X=redhat.com=dhildenb@srs-se1.protection.inumbo.net>)
 id 1ulQgG-000725-AI
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 11:27:08 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.133.124])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1c05911f-76a6-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 13:27:06 +0200 (CEST)
Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com
 [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-22-WVUObBroM6WGvBAFp4ZeRQ-1; Mon, 11 Aug 2025 07:27:04 -0400
Received: by mail-wm1-f72.google.com with SMTP id
 5b1f17b1804b1-451d3f03b74so24370385e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 04:27:03 -0700 (PDT)
Received: from localhost
 (p200300d82f06a600a397de1d2f8bb66f.dip0.t-ipconnect.de.
 [2003:d8:2f06:a600:a397:de1d:2f8b:b66f])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-459e5862be7sm264659195e9.15.2025.08.11.04.27.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 04:27: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>
X-Inumbo-ID: 1c05911f-76a6-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1754911625;
	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=dH19/uKoiHEMTv0r8rJb8O7lP73Me8TJFFXM58SZ7zM=;
	b=BYnqfPTN51kj9BxlD5BWsa/T+EPe2W8VlztA4ZGzQrIC1t0265HzoVMdcbWNMHKmQGuTLO
	cZUMDYwLQvveti3peNZnAQSpeDxDkdZGvmXQWT02YmkPkQf/DjztInidBdqfkdpwPVZiPv
	NxNvf6ZirjRFaUdEWfQyg9jNVnBGx6Q=
X-MC-Unique: WVUObBroM6WGvBAFp4ZeRQ-1
X-Mimecast-MFC-AGG-ID: WVUObBroM6WGvBAFp4ZeRQ_1754911623
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754911623; x=1755516423;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=dH19/uKoiHEMTv0r8rJb8O7lP73Me8TJFFXM58SZ7zM=;
        b=btUPBuxqZlXuj1Fd0GgTnOwoa4EzXLi2HtuqX/MrHeV+dzpk6NDt8qp+2wfeLo+GOL
         SKyRN9nNfcc+sKiM9HG/XJlu/qGmStvKQVIZckCLWvXZa5Lb/unAdFoCN3grELdiJQoL
         eVSVjVUCLWTQwdWT7eRQaDkz9XpGW9OGcW/1pyvLK2rnxO5NvW1J5IYtidRDUJuheqiG
         jUjTvoojejitOiN2Wq2QktyS6YHyLqwrA/RIUcnlODt2VtjqDvo9xvYyh8QVHmL5nQtd
         0USpRLx84pJCe8y7hBA4TkcSevtMHPfVMBldYIfCE/RJiDb14ilDNJ8sUwUivociB6mo
         S6qg==
X-Forwarded-Encrypted: i=1; AJvYcCVWtB+P2xR2DD2oskFMziPrexAGTUk6VxQFB4LXubqmmpXsU4nssOtvJeOYTNv4cqHnBa92+8ioThs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxPLepL3jtRLf3mFUMWhyr5rZak26mAlxxc2PteKKAZsfmcZdPU
	OyKWqYn+4QPsD3E+fTpiTmPpG3r8V8Dm6xJp1wf/f6Hlee0tAnPYDRBz52n28ii204U+o1AHKEi
	RaJNHnDbuPKOhrQeQ4zn6xVD/1ryr1PICicz7boQZgHNbhWwzEV8ZC0qsxW10uFsfN+p5
X-Gm-Gg: ASbGnctBmvuXngLy2Fu1+1/cBoMWfvWTieJA3/RlS7oEhckC2VTnlD+T2+RWoOpt2fW
	uTQiCPCrdRBqX8ZeSx6WrJK2tWTjJvMZDgjbakJG9o1uH+TnCXRUJKj+So0ptA7EeojSXCdPB/7
	h4oyCBCXImJ7DVpgFpO3KIqhdoSFpcfDBhpZD3uj6ul5LVI+jCz2JYAY9q4joEwgWWXLLJIHiht
	bfVAw93PA5vVa9peazpSr3VvZOdMElLqw9vikQnlcNo7zvFICnDmZAmQgNmRUc8SMKEXpl0zL1G
	8psu4MM2lwaeYO5ORaihHSwUZQ3vJ5kfY3dirTPKhCrPexzqt5zTaJ/JUhFFTqd3CZqDk1GhbIX
	F4gvJkrrzfrXcI1cmlAHPujpk
X-Received: by 2002:a5d:5d0a:0:b0:3a5:2653:7308 with SMTP id ffacd0b85a97d-3b900b5742bmr9602283f8f.57.1754911622728;
        Mon, 11 Aug 2025 04:27:02 -0700 (PDT)
X-Google-Smtp-Source: AGHT+IGGXEgHnsOD9ZoHC3rozcCl2T1/SKhNFUvb83wEfWy/U4w8SmZE0De8ROcIUkzkJT6XleOZhA==
X-Received: by 2002:a5d:5d0a:0:b0:3a5:2653:7308 with SMTP id ffacd0b85a97d-3b900b5742bmr9602254f8f.57.1754911622182;
        Mon, 11 Aug 2025 04:27:02 -0700 (PDT)
From: David Hildenbrand <david@redhat.com>
To: linux-kernel@vger.kernel.org
Cc: linux-mm@kvack.org,
	xen-devel@lists.xenproject.org,
	linux-fsdevel@vger.kernel.org,
	nvdimm@lists.linux.dev,
	linuxppc-dev@lists.ozlabs.org,
	David Hildenbrand <david@redhat.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Nicholas Piggin <npiggin@gmail.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Dan Williams <dan.j.williams@intel.com>,
	Matthew Wilcox <willy@infradead.org>,
	Jan Kara <jack@suse.cz>,
	Alexander Viro <viro@zeniv.linux.org.uk>,
	Christian Brauner <brauner@kernel.org>,
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Mike Rapoport <rppt@kernel.org>,
	Suren Baghdasaryan <surenb@google.com>,
	Michal Hocko <mhocko@suse.com>,
	Zi Yan <ziy@nvidia.com>,
	Baolin Wang <baolin.wang@linux.alibaba.com>,
	Nico Pache <npache@redhat.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Dev Jain <dev.jain@arm.com>,
	Barry Song <baohua@kernel.org>,
	Jann Horn <jannh@google.com>,
	Pedro Falcato <pfalcato@suse.de>,
	Hugh Dickins <hughd@google.com>,
	Oscar Salvador <osalvador@suse.de>,
	Lance Yang <lance.yang@linux.dev>,
	David Vrabel <david.vrabel@citrix.com>,
	Wei Yang <richard.weiyang@gmail.com>
Subject: [PATCH v3 11/11] mm: rename vm_ops->find_special_page() to vm_ops->find_normal_page()
Date: Mon, 11 Aug 2025 13:26:31 +0200
Message-ID: <20250811112631.759341-12-david@redhat.com>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250811112631.759341-1-david@redhat.com>
References: <20250811112631.759341-1-david@redhat.com>
MIME-Version: 1.0
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: 366KhDGigQpE7Fn0odaRIeW7EKBxbwAR70ugJmENHGQ_1754911623
X-Mimecast-Originator: redhat.com
Content-Transfer-Encoding: 8bit
content-type: text/plain; charset="US-ASCII"; x-default=true

... and hide it behind a kconfig option. There is really no need for
any !xen code to perform this check.

The naming is a bit off: we want to find the "normal" page when a PTE
was marked "special". So it's really not "finding a special" page.

Improve the documentation, and add a comment in the code where XEN ends
up performing the pte_mkspecial() through a hypercall. More details can
be found in commit 923b2919e2c3 ("xen/gntdev: mark userspace PTEs as
special on x86 PV guests").

Cc: David Vrabel <david.vrabel@citrix.com>
Reviewed-by: Oscar Salvador <osalvador@suse.de>
Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Reviewed-by: Wei Yang <richard.weiyang@gmail.com>
Signed-off-by: David Hildenbrand <david@redhat.com>
---
 drivers/xen/Kconfig              |  1 +
 drivers/xen/gntdev.c             |  5 +++--
 include/linux/mm.h               | 18 +++++++++++++-----
 mm/Kconfig                       |  2 ++
 mm/memory.c                      | 12 ++++++++++--
 tools/testing/vma/vma_internal.h | 18 +++++++++++++-----
 6 files changed, 42 insertions(+), 14 deletions(-)

diff --git a/drivers/xen/Kconfig b/drivers/xen/Kconfig
index 24f485827e039..f9a35ed266ecf 100644
--- a/drivers/xen/Kconfig
+++ b/drivers/xen/Kconfig
@@ -138,6 +138,7 @@ config XEN_GNTDEV
 	depends on XEN
 	default m
 	select MMU_NOTIFIER
+	select FIND_NORMAL_PAGE
 	help
 	  Allows userspace processes to use grants.
 
diff --git a/drivers/xen/gntdev.c b/drivers/xen/gntdev.c
index 1f21607656182..26f13b37c78e6 100644
--- a/drivers/xen/gntdev.c
+++ b/drivers/xen/gntdev.c
@@ -321,6 +321,7 @@ static int find_grant_ptes(pte_t *pte, unsigned long addr, void *data)
 	BUG_ON(pgnr >= map->count);
 	pte_maddr = arbitrary_virt_to_machine(pte).maddr;
 
+	/* Note: this will perform a pte_mkspecial() through the hypercall. */
 	gnttab_set_map_op(&map->map_ops[pgnr], pte_maddr, flags,
 			  map->grants[pgnr].ref,
 			  map->grants[pgnr].domid);
@@ -528,7 +529,7 @@ static void gntdev_vma_close(struct vm_area_struct *vma)
 	gntdev_put_map(priv, map);
 }
 
-static struct page *gntdev_vma_find_special_page(struct vm_area_struct *vma,
+static struct page *gntdev_vma_find_normal_page(struct vm_area_struct *vma,
 						 unsigned long addr)
 {
 	struct gntdev_grant_map *map = vma->vm_private_data;
@@ -539,7 +540,7 @@ static struct page *gntdev_vma_find_special_page(struct vm_area_struct *vma,
 static const struct vm_operations_struct gntdev_vmops = {
 	.open = gntdev_vma_open,
 	.close = gntdev_vma_close,
-	.find_special_page = gntdev_vma_find_special_page,
+	.find_normal_page = gntdev_vma_find_normal_page,
 };
 
 /* ------------------------------------------------------------------ */
diff --git a/include/linux/mm.h b/include/linux/mm.h
index 8ca7d2fa71343..3868ca1a25f9c 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -657,13 +657,21 @@ struct vm_operations_struct {
 	struct mempolicy *(*get_policy)(struct vm_area_struct *vma,
 					unsigned long addr, pgoff_t *ilx);
 #endif
+#ifdef CONFIG_FIND_NORMAL_PAGE
 	/*
-	 * Called by vm_normal_page() for special PTEs to find the
-	 * page for @addr.  This is useful if the default behavior
-	 * (using pte_page()) would not find the correct page.
+	 * Called by vm_normal_page() for special PTEs in @vma at @addr. This
+	 * allows for returning a "normal" page from vm_normal_page() even
+	 * though the PTE indicates that the "struct page" either does not exist
+	 * or should not be touched: "special".
+	 *
+	 * Do not add new users: this really only works when a "normal" page
+	 * was mapped, but then the PTE got changed to something weird (+
+	 * marked special) that would not make pte_pfn() identify the originally
+	 * inserted page.
 	 */
-	struct page *(*find_special_page)(struct vm_area_struct *vma,
-					  unsigned long addr);
+	struct page *(*find_normal_page)(struct vm_area_struct *vma,
+					 unsigned long addr);
+#endif /* CONFIG_FIND_NORMAL_PAGE */
 };
 
 #ifdef CONFIG_NUMA_BALANCING
diff --git a/mm/Kconfig b/mm/Kconfig
index e443fe8cd6cf2..59a04d0b2e272 100644
--- a/mm/Kconfig
+++ b/mm/Kconfig
@@ -1381,6 +1381,8 @@ config PT_RECLAIM
 
 	  Note: now only empty user PTE page table pages will be reclaimed.
 
+config FIND_NORMAL_PAGE
+	def_bool n
 
 source "mm/damon/Kconfig"
 
diff --git a/mm/memory.c b/mm/memory.c
index 6f806bf3cc994..002c28795d8b7 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -639,6 +639,12 @@ static void print_bad_page_map(struct vm_area_struct *vma,
  * trivial. Secondly, an architecture may not have a spare page table
  * entry bit, which requires a more complicated scheme, described below.
  *
+ * With CONFIG_FIND_NORMAL_PAGE, we might have the "special" bit set on
+ * page table entries that actually map "normal" pages: however, that page
+ * cannot be looked up through the PFN stored in the page table entry, but
+ * instead will be looked up through vm_ops->find_normal_page(). So far, this
+ * only applies to PTEs.
+ *
  * A raw VM_PFNMAP mapping (ie. one that is not COWed) is always considered a
  * special mapping (even if there are underlying and valid "struct pages").
  * COWed pages of a VM_PFNMAP are always normal.
@@ -679,8 +685,10 @@ static inline struct page *__vm_normal_page(struct vm_area_struct *vma,
 {
 	if (IS_ENABLED(CONFIG_ARCH_HAS_PTE_SPECIAL)) {
 		if (unlikely(special)) {
-			if (vma->vm_ops && vma->vm_ops->find_special_page)
-				return vma->vm_ops->find_special_page(vma, addr);
+#ifdef CONFIG_FIND_NORMAL_PAGE
+			if (vma->vm_ops && vma->vm_ops->find_normal_page)
+				return vma->vm_ops->find_normal_page(vma, addr);
+#endif /* CONFIG_FIND_NORMAL_PAGE */
 			if (vma->vm_flags & (VM_PFNMAP | VM_MIXEDMAP))
 				return NULL;
 			if (is_zero_pfn(pfn) || is_huge_zero_pfn(pfn))
diff --git a/tools/testing/vma/vma_internal.h b/tools/testing/vma/vma_internal.h
index 3639aa8dd2b06..cb1c2a8afe265 100644
--- a/tools/testing/vma/vma_internal.h
+++ b/tools/testing/vma/vma_internal.h
@@ -467,13 +467,21 @@ struct vm_operations_struct {
 	struct mempolicy *(*get_policy)(struct vm_area_struct *vma,
 					unsigned long addr, pgoff_t *ilx);
 #endif
+#ifdef CONFIG_FIND_NORMAL_PAGE
 	/*
-	 * Called by vm_normal_page() for special PTEs to find the
-	 * page for @addr.  This is useful if the default behavior
-	 * (using pte_page()) would not find the correct page.
+	 * Called by vm_normal_page() for special PTEs in @vma at @addr. This
+	 * allows for returning a "normal" page from vm_normal_page() even
+	 * though the PTE indicates that the "struct page" either does not exist
+	 * or should not be touched: "special".
+	 *
+	 * Do not add new users: this really only works when a "normal" page
+	 * was mapped, but then the PTE got changed to something weird (+
+	 * marked special) that would not make pte_pfn() identify the originally
+	 * inserted page.
 	 */
-	struct page *(*find_special_page)(struct vm_area_struct *vma,
-					  unsigned long addr);
+	struct page *(*find_normal_page)(struct vm_area_struct *vma,
+					 unsigned long addr);
+#endif /* CONFIG_FIND_NORMAL_PAGE */
 };
 
 struct vm_unmapped_area_info {
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 11:31:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 11:31:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077485.1438542 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulQke-0005Gw-Ow; Mon, 11 Aug 2025 11:31:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077485.1438542; Mon, 11 Aug 2025 11:31: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 1ulQke-0005Gp-M5; Mon, 11 Aug 2025 11:31:40 +0000
Received: by outflank-mailman (input) for mailman id 1077485;
 Mon, 11 Aug 2025 11:31:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Gc+J=2X=redhat.com=dhildenb@srs-se1.protection.inumbo.net>)
 id 1ulQgC-0005jI-Nn
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 11:27:04 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.129.124])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1a90028c-76a6-11f0-a325-13f23c93f187;
 Mon, 11 Aug 2025 13:27:04 +0200 (CEST)
Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com
 [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-15-J7Bl7JtlPwejkEaYRIShJg-1; Mon, 11 Aug 2025 07:27:01 -0400
Received: by mail-wm1-f69.google.com with SMTP id
 5b1f17b1804b1-458c0c8d169so25192455e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 04:27:01 -0700 (PDT)
Received: from localhost
 (p200300d82f06a600a397de1d2f8bb66f.dip0.t-ipconnect.de.
 [2003:d8:2f06:a600:a397:de1d:2f8b:b66f])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-458be70c5f7sm376335155e9.26.2025.08.11.04.26.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 04:26: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>
X-Inumbo-ID: 1a90028c-76a6-11f0-a325-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1754911622;
	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=DfX1fQMnvUejv+2+JWwebv5CirI4aCq8/b8BncrLfY4=;
	b=M/Jia8ylEwFnEJIKIYmljTKYo6R6xqrWqn7X4qPa7gz2cUI61e6gR5b/lj8ZsoHg25RODd
	7L/Bk+QO9Vk4qZFIlTdOl5Su7iT7lyFRpqmDRGuSznrNiln0F0y1SakoWlmwOXtsRQLwKm
	Vi2RIdft5S16EXXPZ1No4hLtFCTYXQA=
X-MC-Unique: J7Bl7JtlPwejkEaYRIShJg-1
X-Mimecast-MFC-AGG-ID: J7Bl7JtlPwejkEaYRIShJg_1754911620
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754911620; x=1755516420;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=DfX1fQMnvUejv+2+JWwebv5CirI4aCq8/b8BncrLfY4=;
        b=LNd8aKz/jsxuqs8nOjmm6wIG0maLf0fCDrpIj3DkehDoTWP2ErzI7SJyfMa4GH4eqs
         jfc6tibdXLaWA4qQrVWrClxdTe/do0QRHvutycWUZwC1n/o974hLOFh2AbI2RCMpToer
         dBYIWU2R9srn8YtXYXwtXJtHmTnU4fARSnFSCGO1ODxo8WSmrSBGWjfIXyUC1Iedu4NM
         ZGY+5Z8Rxc+rg6+QaZwwn31ddTg0FYxFFxiQL9bMps71to7zvawUT7pXBWRRlwkzWtWq
         dGk+6Om8695QSjRok86Yl0/zGnoipzlC6qKDBjOnHmhvoyo1NurCiuKtNIvFfqkdsadx
         Z2HQ==
X-Forwarded-Encrypted: i=1; AJvYcCVvVEuLleVNOcUzryJODScPunEi9daJ9O7vbMdPOMn0RMaDGT66Wuo7KCgEfIudfbMyPDRV76ZTZqE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz2L1MLAhT9gPhjsl/udj9qZzfpHA5wQqU2+ypsmPW617gAed2d
	p0twFKJZELKKeLHd4VMnB6WWmfdkOQKtP7kp7/R5wkGrLa7MMh0AkvpGPruQcwt+nBPzVd3FfvV
	LgcReBItbhGrm2QIbx6TDRnxdXBMbXTrED+Chs7NiB+apBueAvZrsxWux5MUazgGn9oPE
X-Gm-Gg: ASbGncvBJVA4BaQMliAN1nXDCkuUAOL2p+72K7GdWU2ZycHLml9YElFDgz0QMAstuOD
	QKCV+EaBM28NszDZ4jSuGRBt4Vxjw/FiSRMhHhcrX2jtfxaH5zk4F2Uw9magVdgsDGTglBCpwLT
	VLwtKgZF0c2KZY4XIpik6dShpeac0Q6mH2LOITCO+ro8A0sjrSZuuAFrklbsfF1duXu25NTDV93
	dI2BAQa0oq/7CnaS24RqaciUnrxgGd82o/jH19uOkeihQCO+cSnN1xO2TrwBmevZ+2E+4SKPy+N
	JOCuJsqpja2xsUV4vj3d9Slj5jGF8jd7mLMu85pKH1CDn0T2SFTvMwSgwUMaTvYus/oCdMNkRzS
	1z+IfWGalF5ofmtFIO76CUPPn
X-Received: by 2002:a05:600c:c493:b0:453:66f:b96e with SMTP id 5b1f17b1804b1-459faf4758bmr80581265e9.11.1754911620237;
        Mon, 11 Aug 2025 04:27:00 -0700 (PDT)
X-Google-Smtp-Source: AGHT+IHBm+6FX9Xdf6wc1nTSJlLqt7RXq7PC8peG73SnR2aY3/2U0Fhn5nWzADDyt5hVIbhoPtrtZw==
X-Received: by 2002:a05:600c:c493:b0:453:66f:b96e with SMTP id 5b1f17b1804b1-459faf4758bmr80581015e9.11.1754911619781;
        Mon, 11 Aug 2025 04:26:59 -0700 (PDT)
From: David Hildenbrand <david@redhat.com>
To: linux-kernel@vger.kernel.org
Cc: linux-mm@kvack.org,
	xen-devel@lists.xenproject.org,
	linux-fsdevel@vger.kernel.org,
	nvdimm@lists.linux.dev,
	linuxppc-dev@lists.ozlabs.org,
	David Hildenbrand <david@redhat.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Nicholas Piggin <npiggin@gmail.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Dan Williams <dan.j.williams@intel.com>,
	Matthew Wilcox <willy@infradead.org>,
	Jan Kara <jack@suse.cz>,
	Alexander Viro <viro@zeniv.linux.org.uk>,
	Christian Brauner <brauner@kernel.org>,
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Mike Rapoport <rppt@kernel.org>,
	Suren Baghdasaryan <surenb@google.com>,
	Michal Hocko <mhocko@suse.com>,
	Zi Yan <ziy@nvidia.com>,
	Baolin Wang <baolin.wang@linux.alibaba.com>,
	Nico Pache <npache@redhat.com>,
	Ryan Roberts <ryan.roberts@arm.com>,
	Dev Jain <dev.jain@arm.com>,
	Barry Song <baohua@kernel.org>,
	Jann Horn <jannh@google.com>,
	Pedro Falcato <pfalcato@suse.de>,
	Hugh Dickins <hughd@google.com>,
	Oscar Salvador <osalvador@suse.de>,
	Lance Yang <lance.yang@linux.dev>,
	Wei Yang <richard.weiyang@gmail.com>
Subject: [PATCH v3 10/11] mm: introduce and use vm_normal_page_pud()
Date: Mon, 11 Aug 2025 13:26:30 +0200
Message-ID: <20250811112631.759341-11-david@redhat.com>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250811112631.759341-1-david@redhat.com>
References: <20250811112631.759341-1-david@redhat.com>
MIME-Version: 1.0
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: cXmDKqwDzBOs5btzypjSt2G1Oox1iBOnaumI81hhUkw_1754911620
X-Mimecast-Originator: redhat.com
Content-Transfer-Encoding: 8bit
content-type: text/plain; charset="US-ASCII"; x-default=true

Let's introduce vm_normal_page_pud(), which ends up being fairly simple
because of our new common helpers and there not being a PUD-sized zero
folio.

Use vm_normal_page_pud() in folio_walk_start() to resolve a TODO,
structuring the code like the other (pmd/pte) cases. Defer
introducing vm_normal_folio_pud() until really used.

Note that we can so far get PUDs with hugetlb, daxfs and PFNMAP entries.

Reviewed-by: Wei Yang <richard.weiyang@gmail.com>
Reviewed-by: Oscar Salvador <osalvador@suse.de>
Signed-off-by: David Hildenbrand <david@redhat.com>
---
 include/linux/mm.h |  2 ++
 mm/memory.c        | 19 +++++++++++++++++++
 mm/pagewalk.c      | 20 ++++++++++----------
 3 files changed, 31 insertions(+), 10 deletions(-)

diff --git a/include/linux/mm.h b/include/linux/mm.h
index b626d1bacef52..8ca7d2fa71343 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -2360,6 +2360,8 @@ struct folio *vm_normal_folio_pmd(struct vm_area_struct *vma,
 				  unsigned long addr, pmd_t pmd);
 struct page *vm_normal_page_pmd(struct vm_area_struct *vma, unsigned long addr,
 				pmd_t pmd);
+struct page *vm_normal_page_pud(struct vm_area_struct *vma, unsigned long addr,
+		pud_t pud);
 
 void zap_vma_ptes(struct vm_area_struct *vma, unsigned long address,
 		  unsigned long size);
diff --git a/mm/memory.c b/mm/memory.c
index 78af3f243cee7..6f806bf3cc994 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -809,6 +809,25 @@ struct folio *vm_normal_folio_pmd(struct vm_area_struct *vma,
 		return page_folio(page);
 	return NULL;
 }
+
+/**
+ * vm_normal_page_pud() - Get the "struct page" associated with a PUD
+ * @vma: The VMA mapping the @pud.
+ * @addr: The address where the @pud is mapped.
+ * @pud: The PUD.
+ *
+ * Get the "struct page" associated with a PUD. See __vm_normal_page()
+ * for details on "normal" and "special" mappings.
+ *
+ * Return: Returns the "struct page" if this is a "normal" mapping. Returns
+ *	   NULL if this is a "special" mapping.
+ */
+struct page *vm_normal_page_pud(struct vm_area_struct *vma,
+		unsigned long addr, pud_t pud)
+{
+	return __vm_normal_page(vma, addr, pud_pfn(pud), pud_special(pud),
+				pud_val(pud), PGTABLE_LEVEL_PUD);
+}
 #endif
 
 /**
diff --git a/mm/pagewalk.c b/mm/pagewalk.c
index 648038247a8d2..c6753d370ff4e 100644
--- a/mm/pagewalk.c
+++ b/mm/pagewalk.c
@@ -902,23 +902,23 @@ struct folio *folio_walk_start(struct folio_walk *fw,
 		fw->pudp = pudp;
 		fw->pud = pud;
 
-		/*
-		 * TODO: FW_MIGRATION support for PUD migration entries
-		 * once there are relevant users.
-		 */
-		if (!pud_present(pud) || pud_special(pud)) {
+		if (pud_none(pud)) {
 			spin_unlock(ptl);
 			goto not_found;
-		} else if (!pud_leaf(pud)) {
+		} else if (pud_present(pud) && !pud_leaf(pud)) {
 			spin_unlock(ptl);
 			goto pmd_table;
+		} else if (pud_present(pud)) {
+			page = vm_normal_page_pud(vma, addr, pud);
+			if (page)
+				goto found;
 		}
 		/*
-		 * TODO: vm_normal_page_pud() will be handy once we want to
-		 * support PUD mappings in VM_PFNMAP|VM_MIXEDMAP VMAs.
+		 * TODO: FW_MIGRATION support for PUD migration entries
+		 * once there are relevant users.
 		 */
-		page = pud_page(pud);
-		goto found;
+		spin_unlock(ptl);
+		goto not_found;
 	}
 
 pmd_table:
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 11:36:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 11:36:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077500.1438553 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulQpQ-0005rk-B0; Mon, 11 Aug 2025 11:36:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077500.1438553; Mon, 11 Aug 2025 11:36: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 1ulQpQ-0005rd-7u; Mon, 11 Aug 2025 11:36:36 +0000
Received: by outflank-mailman (input) for mailman id 1077500;
 Mon, 11 Aug 2025 11:36:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ku41=2X=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ulQpO-0005rX-7l
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 11:36:34 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6d8de603-76a7-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 13:36:31 +0200 (CEST)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-af95525bac4so762583466b.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 04:36: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
 a640c23a62f3a-af91a07659dsm1990757566b.21.2025.08.11.04.36.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 04: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>
X-Inumbo-ID: 6d8de603-76a7-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754912191; x=1755516991; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=XPDykFm7ig9ojixPgGFnVK8vToDaGfT56W5dWqqo6aQ=;
        b=e30nGKu0OC0TqW/gSfFPhyF7iAKWP+7Lrwl1GSrBg3QYkY9aqT+rxcK46xAzvEU2i8
         7Vo/LtixYitYfROF0MVzfQ53AqfeJTEKCy5UlAbZna9nd5PwnS4UQRa4MYiEi5vHig7h
         zIRU884IXnZ/kOxz5EVscMCR6TPI8NKT9o6rmxVdocUDmF+mrPmlY/j4Wfn1vMIERGtU
         tD+tFpnJg+l3Ptx8QIKDhOSvxhV/6hsggztW+6qm9eWLaGYtoYrpVBxs5Itjc+ePhLAc
         yGMS5BQe5+TCy8cDFxsSTbs4LZjji09YRHHsU4PESbII4Y7AXTmumz5yFn2EsBfZ4Jag
         kaRQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754912191; x=1755516991;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XPDykFm7ig9ojixPgGFnVK8vToDaGfT56W5dWqqo6aQ=;
        b=t+wx4CcFCRDU69Z+llY0flY0ixPgXZZCa/cLQoIMKLDNMqsova6CRYSe1C+S08LLfX
         SrqDam5SMt/Wj+iAKbEZXk7QuASQqkW03QgSwFRM1MVtX47wXhDgvP9R3g1ckjzWAJap
         3V2UsnP71+MwZYxxJtDHlStywu4LbWJH4bPsPqlFt+sSdk09//LQymR1OOmAok59BxtL
         LEc8/ejICXaPcridKDmM7f3dVPnoIt68g5afZdqmtMGtr4UIVTgh/JGUzUWVpSBZhe+6
         S6neQz09Nu5xU/X9F34tp+nI+tZGtyCvMJzAJxX2bM+EsMFFNtubc/uKWFr2TrmBdcyl
         nQmQ==
X-Forwarded-Encrypted: i=1; AJvYcCX64z2oAdhCLd7chYO1DNM5z7eqQjlyf6l+RXdVs9VkU+x9/Mz17yyGw9997NTYbgaIUPHlSjsJpUM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxZZ56R+Vsw0S5OpS0HVkxVCx4KmRel3Vj5/qBjDQXiNBTyMwf9
	fgoWOAqLRm6u/Do2ZGPzXzRG2RbJ7rteLfxhHXT95BW9u3oIhMfAIZKiHIaWi48FBn8rOdnWx2s
	dW84=
X-Gm-Gg: ASbGnct91USDa2ghWc/P17E+qutMzT8COYw5K6+fVvF+SM3CrFRGUjsbcpxMCBM7c3d
	kaTbZ5VMKhFHrssr2tblNpjLXRVTvvl4U0IcOBc8e53hBlQycIAsCSd1hRLBWND1ibL1/tiQdws
	uqo59IVjko1KRaQPf9TP0T1qy4os5OWy2oeaTC9WijBYdd8ovFqbtHqN3sTn7/6dLWaEf9b92xP
	sYn7l0h0wCgqSM7z8s4qRxaYN2lQTWpj+Bwy/8xLq1p//5uGAeE4hfoSaFOJP54dZA2vSS8kc9Z
	g1Y798r4lFLAE5jbhreTwy2MMqAQohZIwbu7LxLlDoLCBh7IbMm0CMSyylwrLC0OGKGVCMRKg73
	xMf3pGFDZlaCRRBRYZsycd+FTngFP2BbzQ6D5qaJU6fRqi8ZgZvXTz2vD/s1JjuCrxCNFNJLVoR
	p9lzVooHw=
X-Google-Smtp-Source: AGHT+IGD3zOL2Ex7TbX2SnV02P5tUAtglVdOjmzTodiqgxNGGdZ7PaPQKiMWF6tkX0/6Ljf+lrXY1Q==
X-Received: by 2002:a17:907:972a:b0:ad8:8719:f6f3 with SMTP id a640c23a62f3a-af9c645b793mr1065087466b.22.1754912191299;
        Mon, 11 Aug 2025 04:36:31 -0700 (PDT)
Message-ID: <3ede10e7-8e43-4277-9197-14a3e5ab1cc1@suse.com>
Date: Mon, 11 Aug 2025 13:36:28 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 14/20] xen/riscv: Implement p2m_pte_from_mfn() and
 support PBMT configuration
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <1370613cd6f52e90591b15ad52c95d7c81908cf6.1753973161.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: <1370613cd6f52e90591b15ad52c95d7c81908cf6.1753973161.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 31.07.2025 17:58, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/p2m.c
> +++ b/xen/arch/riscv/p2m.c
> @@ -1,3 +1,4 @@
> +#include <xen/bug.h>
>  #include <xen/domain_page.h>
>  #include <xen/mm.h>
>  #include <xen/rwlock.h>
> @@ -197,6 +198,18 @@ static pte_t *p2m_get_root_pointer(struct p2m_domain *p2m, gfn_t gfn)
>      return __map_domain_page(p2m->root + root_table_indx);
>  }
>  
> +static int p2m_set_type(pte_t *pte, p2m_type_t t)
> +{
> +    int rc = 0;
> +
> +    if ( t > p2m_ext_storage )

Seeing this separator enumerator in use, it becomes pretty clear that its name
needs to change, so one doesn't need to go look at its definition to understand
whether it's inclusive or exclusive. (This isn't helped by there presently being
a spare entry, which, when made use of, might then cause problems with
expressions like this one as well.)

> @@ -222,11 +235,71 @@ static inline void p2m_clean_pte(pte_t *p, bool clean_pte)
>      p2m_write_pte(p, pte, clean_pte);
>  }
>  
> -static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t)
> +static void p2m_set_permission(pte_t *e, p2m_type_t t)
>  {
> -    panic("%s: hasn't been implemented yet\n", __func__);
> +    e->pte &= ~PTE_ACCESS_MASK;
> +
> +    switch ( t )
> +    {
> +    case p2m_grant_map_rw:
> +    case p2m_ram_rw:
> +        e->pte |= PTE_READABLE | PTE_WRITABLE;
> +        break;

While I agree for r/w grants, shouldn't r/w RAM also be executable?

> +    case p2m_ext_storage:

Why exactly would this placeholder ...

> +    case p2m_mmio_direct_io:
> +        e->pte |= PTE_ACCESS_MASK;
> +        break;

... gain full access? It shouldn't make it here at all, should it?

> +
> +    case p2m_invalid:
> +        e->pte &= ~(PTE_ACCESS_MASK | PTE_VALID);

Redundantly masking off PTE_ACCESS_MASK? (Plus, for the entry to be
invalid, turning off PTE_VALID alone ought to suffice anyway?)

> +        break;
> +
> +    case p2m_grant_map_ro:
> +        e->pte |= PTE_READABLE;
> +        break;
> +
> +    default:
> +        ASSERT_UNREACHABLE();
> +        break;
> +    }
> +}
> +
> +static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t, bool is_table)
> +{
> +    pte_t e = (pte_t) { PTE_VALID };

This and the rest of the function demand that mfn != INVALID_MFN, no matter
whether ...

> +    switch ( t )
> +    {
> +    case p2m_mmio_direct_io:
> +        e.pte |= PTE_PBMT_IO;
> +        break;
> +
> +    default:
> +        break;
> +    }
> +
> +    pte_set_mfn(&e, mfn);
> +
> +    ASSERT(!(mfn_to_maddr(mfn) & ~PADDR_MASK));

... PADDR_MASK is actually narrow enough to catch that case. Maybe best to
add an explicit assertion to that effect?

> +    if ( !is_table )
> +    {
> +        p2m_set_permission(&e, t);
> +
> +        if ( t < p2m_ext_storage )
> +            p2m_set_type(&e, t);
> +        else
> +            panic("unimplemeted\n");

The check is already done inside p2m_set_type() - why open-code it here?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 11:38:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 11:38:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077509.1438563 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulQrX-0006PN-Lw; Mon, 11 Aug 2025 11:38:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077509.1438563; Mon, 11 Aug 2025 11:38:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulQrX-0006PG-JC; Mon, 11 Aug 2025 11:38:47 +0000
Received: by outflank-mailman (input) for mailman id 1077509;
 Mon, 11 Aug 2025 11:38:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=92re=2X=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ulQrW-0006P6-DW
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 11:38:46 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bc7719a4-76a7-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 13:38:44 +0200 (CEST)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-459d62184c9so24453695e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 04:38:44 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459e585586esm266337595e9.13.2025.08.11.04.38.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 04:38: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>
X-Inumbo-ID: bc7719a4-76a7-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754912323; x=1755517123; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=qqjOfXFMmZAfftxklX2kz4tF2SaqqC01TwGBHxbvoUo=;
        b=dXOqlR6No1YHqHSc3RLDg9YBElw1HesjbWJLS/P+d+RBAhRxfhGQU3khScsJCGfNcH
         ioXbF7n7aNZmbp38d0k5W5nzem620KgU/Fc1Zy/pYbw4KR1w5/VrjhswaZN53/fpupFo
         CF9jD9uEF41h7DR6v0WePYeP+//qCN4c/bpJc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754912323; x=1755517123;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qqjOfXFMmZAfftxklX2kz4tF2SaqqC01TwGBHxbvoUo=;
        b=E2yL1J0mI9DsvN83YFnAe+DYW0Fyfv+F5REf1zDfXZ/FjmXAmwCrzBScPmNbvbRfmn
         kQ3isHa9fKIFPr5on+eB0Nd/RZSYFAJJJPZjQ0HtzfsoTTvWhmuNi0AZXVDU2/mFi6bl
         zWRR+oeIcgKOnkqUeOdsM2ReomCGFsBF6CNgtedavwH/in2cz0r5az+xVpORbxgD7ZtO
         gZR4QGdZuB2TnGq8bNnEpbM/2FgdS1hOxTePsujmbaW2LAhRPn3yyzY73WbIPIQBZeeM
         7m2Fp5J5JPmw+Vps5LiuZo5KTkkk/Oqs4DrA1WaXUoiQxNNz5Sw1y+I5w3MNe+2nTDdX
         H1nw==
X-Gm-Message-State: AOJu0YyWsnbtGsEbED9LydwxsaqMhZGcT2/A360FsHR5STtIKWRXTWTH
	KtzwwQmbyNhZbQIcp9rDnkxQN0CS3DVAaEwjbMpUvFIv5lw4EsXgTzhElgnXlGG+CI2BO64rr93
	3tU2+5tE=
X-Gm-Gg: ASbGncs9J7N7KSqGjpYh+ONn/Hrhjrs81qzfPzfBfXJo5fvKjZzw+hM2htQ1UnjA0NK
	UjYTSKiTvn+526UZo/JT21LOOB0qTMvXHx4gNfYb/LVuHj4sUgH23PRM6i8G0OSwR0KMaYSjFx8
	PlpWb5CZo3kp2X9hQ0EZr4aWGvU1IoVeYP9ELyvWtPRBhqCiXPJQrG6XYeOydYL3DysBtG3fylF
	2M85YE7+hCUweDOSSCnm42NK4lotL3759J0/wYxBV7m0dDjlEEXOwgHeyREaIX8yi+cAa5WN/cA
	Zqm96QwtvIAG+tnNQPNiv7tXW36+pbtWbOxxKldLQQgKpBuSazq6IDCYT43LR2lPmlAYMapw85/
	iJMwsU0IDkCQPtO2tHWB+b/o7Ugxxh0L4VC7QzvZkSK3nN7v91PVfMqNfKt6KdYDKR6fK
X-Google-Smtp-Source: AGHT+IFZ7boyfhDojHkKAwsqaOJHH7JJU4Mv0CwImghiMqBQEgT3sMQ2pIoFwsUUykHqYzSPlr8N/Q==
X-Received: by 2002:a05:600c:310d:b0:459:aa0a:db2d with SMTP id 5b1f17b1804b1-459f4f141bdmr93580155e9.28.1754912323517;
        Mon, 11 Aug 2025 04:38:43 -0700 (PDT)
Message-ID: <59303864-c6c7-4d6c-be43-8cf9a887cfe2@citrix.com>
Date: Mon, 11 Aug 2025 12:38:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 21/22] x86/traps: Introduce FRED entrypoints
To: 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: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-22-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: <20250808202314.1045968-22-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 08/08/2025 9:23 pm, Andrew Cooper wrote:
> diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
> index 270b93ed623e..e67a428e4362 100644
> --- a/xen/arch/x86/traps.c
> +++ b/xen/arch/x86/traps.c
> @@ -2181,6 +2240,94 @@ void asmlinkage check_ist_exit(const struct cpu_user_regs *regs, bool ist_exit)
>  }
>  #endif
>  
> +void asmlinkage entry_from_pv(struct cpu_user_regs *regs)
> +{
> +    /* Copy fred_ss.vector into entry_vector as IDT delivery would have done. */
> +    regs->entry_vector = regs->fred_ss.vector;
> +
> +    switch ( regs->fred_ss.type )
> +    {
> +    case X86_ET_EXT_INTR:
> +        do_IRQ(regs);
> +        break;
> +
> +    case X86_ET_NMI:
> +        do_nmi(regs);
> +        break;
> +
> +    case X86_ET_HW_EXC:
> +    case X86_ET_SW_INT:
> +    case X86_ET_PRIV_SW_EXC:
> +    case X86_ET_SW_EXC:
> +        goto fatal;
> +
> +    default:
> +        goto fatal;
> +    }
> +
> +    return;
> +
> + fatal:
> +    fatal_trap(regs, false);
> +}
> +
> +void asmlinkage entry_from_xen(struct cpu_user_regs *regs)
> +{
> +    /* Copy fred_ss.vector into entry_vector as IDT delivery would have done. */
> +    regs->entry_vector = regs->fred_ss.vector;
> +
> +    switch ( regs->fred_ss.type )
> +    {
> +    case X86_ET_EXT_INTR:
> +        do_IRQ(regs);
> +        break;
> +
> +    case X86_ET_NMI:
> +        do_nmi(regs);
> +        break;
> +
> +    case X86_ET_HW_EXC:
> +    case X86_ET_SW_INT:
> +    case X86_ET_PRIV_SW_EXC:
> +    case X86_ET_SW_EXC:
> +        switch ( regs->fred_ss.vector )
> +        {
> +        case X86_EXC_PF:  do_page_fault(regs); break;
> +        case X86_EXC_GP:  do_general_protection(regs); break;
> +        case X86_EXC_UD:  do_invalid_op(regs); break;
> +        case X86_EXC_NM:  do_device_not_available(regs); break;
> +        case X86_EXC_BP:  do_int3(regs); break;
> +        case X86_EXC_DB:  do_debug(regs); break;
> +        case X86_EXC_DF:  do_double_fault(regs); break;
> +
> +        case X86_EXC_DE:
> +        case X86_EXC_OF:
> +        case X86_EXC_BR:
> +        case X86_EXC_NP:
> +        case X86_EXC_SS:
> +        case X86_EXC_MF:
> +        case X86_EXC_AC:
> +        case X86_EXC_XM:
> +            do_trap(regs);
> +            break;
> +
> +        case X86_EXC_CP:  do_entry_CP(regs); break;
> +
> +        default:
> +            goto fatal;
> +        }
> +        break;
> +
> +    default:
> +        goto fatal;
> +    }
> +
> +    return;
> +
> + fatal:
> +    fatal_trap(regs, false);
> +}

Having started work on the PV support, I think this patch needs to
change somewhat.

I've split #DB and #PF to have separate IDT prologues, which in turns
gives us uniform handling of IRQ re-enabling for synchronous actions.Â 
But, async still needs special handling.

I think we want something that looks more like:

Â Â Â  switch ( regs->fred_ss.type )
Â Â Â  {
Â Â Â  case X86_ET_EXT_INTR: return do_IRQ(regs);
Â Â Â  case X86_ET_NMI:      return do_nmi(regs);
Â Â Â  case X86_ET_HW_EXC:
Â Â Â Â Â Â Â  if ( regs->fred_ss.vector == X86_EXC_MC )
Â Â Â Â Â Â Â      return do_machine_check(regs);
Â Â Â      break;
Â Â Â  }

Â Â Â  if ( regs->eflags & X86_EFLAGS_IF ) // From Xen only
Â Â Â Â Â Â Â  local_irq_enable();Â Â Â Â Â Â Â Â Â Â Â Â  // From both

Â Â Â  switch ( regs->fred_ss.type )


Either way, it's probably not worth focusing too much on how the C in
this patch looks for now.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 11:44:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 11:44:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077522.1438572 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulQwy-0000oy-Bo; Mon, 11 Aug 2025 11:44:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077522.1438572; Mon, 11 Aug 2025 11:44: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 1ulQwy-0000or-8k; Mon, 11 Aug 2025 11:44:24 +0000
Received: by outflank-mailman (input) for mailman id 1077522;
 Mon, 11 Aug 2025 11:44:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ku41=2X=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ulQwx-0000ol-CX
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 11:44:23 +0000
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com
 [2a00:1450:4864:20::636])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 85642f7c-76a8-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 13:44:21 +0200 (CEST)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-af95b919093so623255966b.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 04:44:21 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a0a3792sm1997441966b.50.2025.08.11.04.44.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 04:44: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>
X-Inumbo-ID: 85642f7c-76a8-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754912661; x=1755517461; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=H6IgQA1IS1QG0Ap2C4UrD5lFa+wKraqXe2AGVdf/5tw=;
        b=R+fvc/x52S2hEcfQOcnvu8SrfcNKpnlQ+mRUJytN6xY9Vd3gbe2FmdUirJnL1Ybdhj
         fKciudOvtQ2wV3x6nKdZUgHfGEjD0ql6NHUexcRsllxoECYCLKRNVM2EE5rjVFvZaIWO
         5dDaSOqUINFxYWn3HX1vJmeoOI4xjnbTYRsHPH4JZQXcjBUwAefsk31LjAZsLTriKfJQ
         DEPDic/OyqmD2dqFUK9JjZWBBURnDtZ1SKlIgFDhEnGZga2fPRYBsYPlldB9cqnmFKY0
         0zbW0M0fORXENXtrIXo0lMrbOH3QrPMV17Gd6KzQDyEZLqhTL3kfLauVtV6KfbUiY+8x
         vDXQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754912661; x=1755517461;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=H6IgQA1IS1QG0Ap2C4UrD5lFa+wKraqXe2AGVdf/5tw=;
        b=DE3iKsmSa9JJGrn/FPhVf6K2DDnrJQsr25x3fUgjVfYMdPwIYxA2AC5CIp+82JIKv6
         qKHkqC0GntDjSrUIZ7xKSiJAByO10JsS42IhQUATaaQF0q/3235sNo3enennA0tf2vy3
         pQJserd6ZCHnVj+Kd3Klz2lakZIBF4XXe2IkdsHT90K8+hsD4IXz6GeaOXomb2fPydZi
         AK+PD1MPX8s6hD7i+3vN5udIfU/jvSjOYvbHOhA8xbY5FRMdCSJAi4i5s9u7wiAcu1VM
         w0Y3VArbg7p7aJ/SmeBAIs6LqYX8m/HmImcNu8qFNB8g9OceSnW7rDpDk4d+ZemiSgAU
         j6xw==
X-Forwarded-Encrypted: i=1; AJvYcCUL3ayfdKZ68zGe86ke0R4T/t1pKAmY/8mYuIazdsGhDWUrmtsOsrWustcLGr6AytDURWGYLTc5Gfw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzPhTf+o47K5rBkkrkTIVkhLctADOCfNJo2Pi0QSknZLDqUSFmM
	FIeAzoHGUEBfuTLw9OxLCnhCqVwMEYDTE1wHtdqwClBQMUkK0P1St+AkxqM80LePRA==
X-Gm-Gg: ASbGncu3TMhTiUr4vEttLzV5nsmHr8D9DSq1KxS9vcsTv72LNx6qtE3saqpgEvMAYTM
	bOOwlZ0YFZplZ+BLGh4syDhgwBm0q3jPbqisqiwgSQTlnurR6irXXpakCKetRbGc9lUmsTR9XJ8
	pBI8Q770K4BNYf8+FwjvUnE/kexDGz8Jr5h7C0SU4fQlma1HitT1/H6L6dzID1w7sQ+Guh+37Td
	MiRQj0h3WS+yTIlvUBIigftJEV2eDVAgIMIVPuAHywftoEx/o5SA/oy/kYkPo7jba4nvdPVsgKc
	8/aUsMhE7pcKIR+yvEBRefZuQI5OfOMctXfyBKHVt4h8ZYbhOyNYFo37znKKuTD/TdijBL/uEYS
	UCL3b2JD1jnu+Ncf2Ips/1iYNPWfO0vVAz+gI7+QWPNbv4FpZ3kyaiBBwKpkmndXR/iJHneli1b
	+EbVjr3pg=
X-Google-Smtp-Source: AGHT+IHu8/6+G9QRuGim/hl6exZqou+QHqgVbxJwSqZC2+yyQNEs/F/SNq7dvi/A8ceMKwhMBs51Zw==
X-Received: by 2002:a17:906:99c3:b0:af9:a4de:f092 with SMTP id a640c23a62f3a-af9c65f2e00mr1144935766b.55.1754912660766;
        Mon, 11 Aug 2025 04:44:20 -0700 (PDT)
Message-ID: <d1803b0c-b536-4d31-a070-c2c146b3132b@suse.com>
Date: Mon, 11 Aug 2025 13:44:18 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 15/20] xen/riscv: implement p2m_next_level()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <8d8953fb00b4ac64bb2e82d827da4fbbe0c29918.1753973161.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: <8d8953fb00b4ac64bb2e82d827da4fbbe0c29918.1753973161.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 31.07.2025 17:58, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/p2m.c
> +++ b/xen/arch/riscv/p2m.c
> @@ -302,6 +302,48 @@ static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t, bool is_table)
>      return e;
>  }
>  
> +/* Generate table entry with correct attributes. */
> +static pte_t page_to_p2m_table(struct page_info *page)

You don't mean to alter what page points to, so pointer-to-const please.

> @@ -326,9 +368,43 @@ static int p2m_next_level(struct p2m_domain *p2m, bool alloc_tbl,
>                            unsigned int level, pte_t **table,
>                            unsigned int offset)
>  {
> -    panic("%s: hasn't been implemented yet\n", __func__);
> +    pte_t *entry;
> +    int ret;

Please can this move into the more narrow scope it's (solely) used in?

> +    mfn_t mfn;
> +
> +    /* The function p2m_next_level() is never called at the last level */
> +    ASSERT(level != 0);

The revlog says "move", but ...

> +    entry = *table + offset;
> +
> +    if ( !pte_is_valid(*entry) )
> +    {
> +        if ( !alloc_tbl )
> +            return P2M_TABLE_MAP_NONE;
> +
> +        ret = p2m_create_table(p2m, entry);
> +        if ( ret )
> +            return P2M_TABLE_MAP_NOMEM;
> +    }
> +
> +    /* The function p2m_next_level() is never called at the last level */
> +    ASSERT(level != 0);

... the original one's still here.

> --- a/xen/arch/riscv/paging.c
> +++ b/xen/arch/riscv/paging.c
> @@ -91,6 +91,17 @@ void paging_free_page(struct domain *d, struct page_info *pg)
>      spin_unlock(&d->arch.paging.lock);
>  }
>  
> +struct page_info * paging_alloc_page(struct domain *d)

Nit: Stray blank after *.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 11:59:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 11:59:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077534.1438583 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulRBC-0003jZ-Iq; Mon, 11 Aug 2025 11:59:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077534.1438583; Mon, 11 Aug 2025 11: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 1ulRBC-0003jS-Ev; Mon, 11 Aug 2025 11:59:06 +0000
Received: by outflank-mailman (input) for mailman id 1077534;
 Mon, 11 Aug 2025 11:59:05 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ku41=2X=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ulRBB-0003jH-Aa
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 11:59:05 +0000
Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com
 [2a00:1450:4864:20::62d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 92c4e783-76aa-11f0-a325-13f23c93f187;
 Mon, 11 Aug 2025 13:59:02 +0200 (CEST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-adfb562266cso586168366b.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 04:59: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
 a640c23a62f3a-af91a23ffc3sm2008166766b.124.2025.08.11.04.59.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 04: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>
X-Inumbo-ID: 92c4e783-76aa-11f0-a325-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754913542; x=1755518342; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Lj0GM1Ir9wAJW/08C1hiiJS7uJTmr8GPBiyo0b2B28k=;
        b=B6C8THoeYSe/tcYPV3gCKB1BffAquy9ftj+tOra253JZw3efyqlKl8dJxenmZNsfeA
         g/tt0oIdcnmKkDB/0A1QZbFI+HsCezmXKAiczd9itBhOMsCFjOLjSE0Gr/fKwfmQCvNN
         dsVS/2ZK3HfNfvqlfTWSefPTLNbKScbQ4FD3sFBsjhSixgrt4uZri1vwga4Teye57CZH
         4xyP7ftM9lp9Vb6efXM1HHNsSm4onsWLKaMydRPEHYLIXIJLRKlvZuTK/H3FDujTM2p1
         OA+I5E3qsafbM08Tjsa1+Tf30UQy5cDUTFbcislcwKs1xsqnfFeqX7xMl36IEl1NA4PT
         bEow==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754913542; x=1755518342;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Lj0GM1Ir9wAJW/08C1hiiJS7uJTmr8GPBiyo0b2B28k=;
        b=FQ4KKJDoy0wC9G7LTB3gdz49gw4FYiHk6uBBLAgU2I2i/d67QRaa+u2IZ6VJq6/wRT
         8/pZL4tK6DoL0E3cr1LXvXNVXZNDlRNb1tUuButDCaAuV2s3NpTJqGFQKO2Vgt9QhwkM
         cBJYHuIoWRfur5vuzExYbzso+JyGaQ/Fo1L7NgBpCY4syKPNO+R7ESqEv4tgqvyfOBeN
         FssyraTfs7wSLvesQhcB821dx/joSw442/suv3TsGXT9Br9vuRcvW9elly7gNVwgZPcV
         rvRynm91KVpCy6A4UgkcbDCCEc0RWuru4s8SdsJTvupulOqL2FsAOCkZ6CE/RB7zz+G9
         72mw==
X-Forwarded-Encrypted: i=1; AJvYcCVXZY+pCduXt8ccd/asYS7Q7KBn9p34CQTtRCc2yMGtI1r7lcCJuGE/5HtWFkQLN9cqDfRkGzKi6Rg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzofsR1E2YAPZSnkqpjxr0ev6riWqg0tmZz0MZiJ7EAnaHm7zlL
	kzZLAWVDcTvR/V1+iuUcbZegfWYDsEffIBQejTZY7R++cry0UMPVnj3K+ZSv4xXwHg==
X-Gm-Gg: ASbGnctno3ZqAxKEgazCNgL6MCQYQJ8RqU+9CKlciRp2AwfZWWeWv7b/6sc6hOm5Ho9
	ecaWJqmTeL0hRR9r7SgvlpEgrrtG9JbsNNOgEG8Htluap/UoNHxN5YsnsYcFMGmK+8r5tc+HDye
	B89Hq+k0iny55IoB+XCaLRS6K8v7JUHjRY0cuaq8XpJTHqwOBQI7POLWzoeJUIazF1c74x6ID/8
	c/CE8iY4YKm1EZWf1L5zgGXYZOMR0P/Ybe0kkuB8X1acHlV2wQAhVvaYvdh2vsSEDAEaOUKACTR
	Qfyic8UJ4ccnIg0Q3Pa6QVyK3m93dF9DwsD9aXUIzmZ5uJmgyhE+oDwDYqMV5E7wJB4pxorbbFT
	Sg0S5aBlPKQnxWBSRjS/vmovuSk8xU7Qdy+0v5qLqXMzukifrH49eXEvbhLPGpOlczpWODih7Go
	bvxVXQE5Y=
X-Google-Smtp-Source: AGHT+IFOEH7v7byAjBYR4alZDP3KWHRhfqW4/wS1sguHqQ5pIS4lqjSFze9jK9qx3n+4rp16VkzGWg==
X-Received: by 2002:a17:906:6a02:b0:af7:37d1:93b6 with SMTP id a640c23a62f3a-af9c6371790mr1202794266b.15.1754913542083;
        Mon, 11 Aug 2025 04:59:02 -0700 (PDT)
Message-ID: <cc0fd91c-2dd1-4094-997a-87856f6cd914@suse.com>
Date: Mon, 11 Aug 2025 13:59:01 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 16/20] xen/riscv: Implement superpage splitting for p2m
 mappings
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <6890f77e577493194ea94834989dc0841d18eed0.1753973161.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: <6890f77e577493194ea94834989dc0841d18eed0.1753973161.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 31.07.2025 17:58, Oleksii Kurochko wrote:
> Add support for down large memory mappings ("superpages") in the RISC-V
> p2m mapping so that smaller, more precise mappings ("finer-grained entries")
> can be inserted into lower levels of the page table hierarchy.
> 
> To implement that the following is done:
> - Introduce p2m_split_superpage(): Recursively shatters a superpage into
>   smaller page table entries down to the target level, preserving original
>   permissions and attributes.
> - p2m_set_entry() updated to invoke superpage splitting when inserting
>   entries at lower levels within a superpage-mapped region.
> 
> This implementation is based on the ARM code, with modifications to the part
> that follows the BBM (break-before-make) approach, some parts are simplified
> as according to RISC-V spec:
>   It is permitted for multiple address-translation cache entries to co-exist
>   for the same address. This represents the fact that in a conventional
>   TLB hierarchy, it is possible for multiple entries to match a single
>   address if, for example, a page is upgraded to a superpage without first
>   clearing the original non-leaf PTEâ€™s valid bit and executing an SFENCE.VMA
>   with rs1=x0, or if multiple TLBs exist in parallel at a given level of the
>   hierarchy. In this case, just as if an SFENCE.VMA is not executed between
>   a write to the memory-management tables and subsequent implicit read of the
>   same address: it is unpredictable whether the old non-leaf PTE or the new
>   leaf PTE is used, but the behavior is otherwise well defined.
> In contrast to the Arm architecture, where BBM is mandatory and failing to
> use it in some cases can lead to CPU instability, RISC-V guarantees
> stability, and the behavior remains safe â€” though unpredictable in terms of
> which translation will be used.
> 
> Additionally, the page table walk logic has been adjusted, as ARM uses the
> opposite number of levels compared to RISC-V.

As before, I think you mean "numbering".

> --- a/xen/arch/riscv/p2m.c
> +++ b/xen/arch/riscv/p2m.c
> @@ -539,6 +539,91 @@ static void p2m_free_subtree(struct p2m_domain *p2m,
>      p2m_free_page(p2m, pg);
>  }
>  
> +static bool p2m_split_superpage(struct p2m_domain *p2m, pte_t *entry,
> +                                unsigned int level, unsigned int target,
> +                                const unsigned int *offsets)
> +{
> +    struct page_info *page;
> +    unsigned long i;
> +    pte_t pte, *table;
> +    bool rv = true;
> +
> +    /* Convenience aliases */
> +    mfn_t mfn = pte_get_mfn(*entry);
> +    unsigned int next_level = level - 1;
> +    unsigned int level_order = XEN_PT_LEVEL_ORDER(next_level);
> +
> +    /*
> +     * This should only be called with target != level and the entry is
> +     * a superpage.
> +     */
> +    ASSERT(level > target);
> +    ASSERT(pte_is_superpage(*entry, level));
> +
> +    page = p2m_alloc_page(p2m->domain);
> +    if ( !page )
> +    {
> +        /*
> +         * The caller is in charge to free the sub-tree.
> +         * As we didn't manage to allocate anything, just tell the
> +         * caller there is nothing to free by invalidating the PTE.
> +         */
> +        memset(entry, 0, sizeof(*entry));
> +        return false;
> +    }
> +
> +    table = __map_domain_page(page);
> +
> +    /*
> +     * We are either splitting a second level 1G page into 512 first level
> +     * 2M pages, or a first level 2M page into 512 zero level 4K pages.
> +     */

Such a comment is at risk of (silently) going stale when support for 512G
mappings is added. I wonder if it's really that informative to have here.

> +    for ( i = 0; i < XEN_PT_ENTRIES; i++ )
> +    {
> +        pte_t *new_entry = table + i;
> +
> +        /*
> +         * Use the content of the superpage entry and override
> +         * the necessary fields. So the correct permission are kept.
> +         */

It's not just permissions though? The memory type field also needs
retaining (and is being retained this way). Maybe better say "attributes"?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 12:35:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 12:35:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077553.1438593 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulRjt-0004kd-9r; Mon, 11 Aug 2025 12:34:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077553.1438593; Mon, 11 Aug 2025 12:34:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulRjt-0004kW-6C; Mon, 11 Aug 2025 12:34:57 +0000
Received: by outflank-mailman (input) for mailman id 1077553;
 Mon, 11 Aug 2025 12:34:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ku41=2X=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ulRjr-0004kP-Q5
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 12:34:55 +0000
Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com
 [2a00:1450:4864:20::62b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9553ad99-76af-11f0-a325-13f23c93f187;
 Mon, 11 Aug 2025 14:34:54 +0200 (CEST)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-af934d7c932so564595566b.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 05:34: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
 a640c23a62f3a-af91a218cf8sm2031179866b.95.2025.08.11.05.34.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 05:34: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>
X-Inumbo-ID: 9553ad99-76af-11f0-a325-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754915694; x=1755520494; 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=q8I+YLL5Oftq4fsAcZAeKMsXq0/WEQfNuJ9V59e4WoI=;
        b=Pw0EW1oVwTZd6BPaGiEsiFMh9pUh30pXWmmDVY6GrPotuRge3R2IdOQf7M9zjxAiIl
         ajEvohDXwibqkGxpdsQPDLJTAStOMF9tG110l8pOiRgTQxPF3Vs+lQIvaRuNuQOYX8I5
         FJ65kiVtcfXS/Fw2wGNEBLftca+YRvK1ekiWl1Ymw7AXrkKM0HENYPMfGL1OEjIF1xPI
         rljYZLdic6WeGNmH9xlBXSnhbfa7t726oo+vXKNl2MN+M6ggAU2ksqErMrvwWGReSE7R
         EaF9dCh+YRipXmY03zBPlzxbLHFMB4LE+PhxpkhsZaTXr5Xuce5rapjv29QY7oPHUmlS
         SU/Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754915694; x=1755520494;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=q8I+YLL5Oftq4fsAcZAeKMsXq0/WEQfNuJ9V59e4WoI=;
        b=QDz4zjJRdf/r/HqzOvcfKks2PF3Bo8rfWGgXUiPNHNS0L8UrkUnVV5BFwzIAZBzS73
         HV+vLE/Byhjl2JVtwrpuW1ak0BmTz5MKtVVW4DCv72lUgTyHi/70GdmD1IThzPxZq/uO
         U61IUW+yFJ6o9OPhljkOwh0ntoULUJ7IH2utGeSqAMqb2uQnG6rhGYteeYdON57cj8QY
         L9F9q/oDNX0lQsHUrGnM11AI46edvb8faSAz/ZZU201sW1rn5OeIcp+xjJt4x0aN4vQL
         Cp5rh3aTa50192paXTnR/d3H7S0otVQeGaZf+ARyyDjdYq3xJ+OyTXkyficKjOYuXOTF
         AzhA==
X-Gm-Message-State: AOJu0YyQWn3R1i9yjpDFCZ/xMQb4nRAfEZtrAaaVxlBniJ1OTpatrGex
	tzt88nb9lEVlPiyDEwmnbHXCYq6OYwpAENtiWd5kXmpgUlqv8y5VdRM/BwTgDopubw==
X-Gm-Gg: ASbGncupMUov8htigJzr0YHtpV/Zlbqqjs2t9mV9BvWMnNmDjY0DCnPp4AnZnsFSLBW
	yJOF9/GgyNBlzTWI6A9i1vh7M51ecT3ZLo9sCLcS+mpTLlQKY0arj5+Z6JBLGdN0k2vBWn4C0r/
	P3TcZ4XnJeC+RVjgzwPFka0bgtxuhiySiXkeN4QRGK9thf+M6z6B1zxJxQ/734g0nCz/mhib8fC
	EhFaT2qQrMb2Q/Zlai2/VoMcBLT0X12HNgjCIPLNEZYL+zeP+AztCqldrQxzEr5RrABQpFibx+D
	BSMZS85BuxiCrjl46ltEDrwAspkOAPMXJiksBp9YCshyD/5+BB0KuqyAubwDqsBWiET7QPLmci5
	TVJOvts4c0377+1GuQeQUUe+ca+ubuOWAgnqRmTJuYeso6WOxSf6VY+6nWV5lpXhWIqeMjQqu8z
	qpKCieDy0=
X-Google-Smtp-Source: AGHT+IEP2df2VTD7XIadDhRFUTT3SEl+mGc8gQfPKjlbsqNc2aK+n9aTFLNSuqFs8N1kkh3/qP3faQ==
X-Received: by 2002:a17:907:72c9:b0:af2:7ccd:3429 with SMTP id a640c23a62f3a-af9c634faccmr1109345566b.9.1754915693943;
        Mon, 11 Aug 2025 05:34:53 -0700 (PDT)
Message-ID: <a23b88f6-87b9-45bf-ae9b-ee2f3f66cb38@suse.com>
Date: Mon, 11 Aug 2025 14:34:53 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Ping: [PATCH v3] EFI/runtime: switch to xv[mz]alloc_array()
From: Jan Beulich <jbeulich@suse.com>
To: Marek Marczykowski <marmarek@invisiblethingslab.com>,
 Daniel Smith <dpsmith@apertussolutions.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <41b7e14c-59ef-40f5-8c43-69bdc5fb4531@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: <41b7e14c-59ef-40f5-8c43-69bdc5fb4531@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.07.2025 15:39, Jan Beulich wrote:
> Use the more "modern" form, thus doing away with effectively open-coding
> xmalloc_array() at the same time. While there is a difference in
> generated code, as xmalloc_bytes() forces SMP_CACHE_BYTES alignment, if
> code really cared about such higher than default alignment, it should
> request so explicitly.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> v3: Use xv[mz]alloc_array().

May I ask for an ack (or otherwise) please? Perhaps also for Ross'es
"efi: Call FreePages only if needed"?

Thanks, Jan

> --- a/xen/common/efi/runtime.c
> +++ b/xen/common/efi/runtime.c
> @@ -6,6 +6,7 @@
>  #include <xen/irq.h>
>  #include <xen/sections.h>
>  #include <xen/time.h>
> +#include <xen/xvmalloc.h>
>  
>  DEFINE_XEN_GUEST_HANDLE(CHAR16);
>  
> @@ -500,23 +501,23 @@ int efi_runtime_call(struct xenpf_efi_ru
>          len = gwstrlen(guest_handle_cast(op->u.get_variable.name, CHAR16));
>          if ( len < 0 )
>              return len;
> -        name = xmalloc_array(CHAR16, ++len);
> +        name = xvmalloc_array(CHAR16, ++len);
>          if ( !name )
>             return -ENOMEM;
>          if ( __copy_from_guest(name, op->u.get_variable.name, len) ||
>               wmemchr(name, 0, len) != name + len - 1 )
>          {
> -            xfree(name);
> +            xvfree(name);
>              return -EIO;
>          }
>  
>          size = op->u.get_variable.size;
>          if ( size )
>          {
> -            data = xmalloc_bytes(size);
> +            data = xvmalloc_array(unsigned char, size);
>              if ( !data )
>              {
> -                xfree(name);
> +                xvfree(name);
>                  return -ENOMEM;
>              }
>          }
> @@ -539,8 +540,8 @@ int efi_runtime_call(struct xenpf_efi_ru
>          else
>              rc = -EOPNOTSUPP;
>  
> -        xfree(data);
> -        xfree(name);
> +        xvfree(data);
> +        xvfree(name);
>      }
>      break;
>  
> @@ -553,17 +554,17 @@ int efi_runtime_call(struct xenpf_efi_ru
>          len = gwstrlen(guest_handle_cast(op->u.set_variable.name, CHAR16));
>          if ( len < 0 )
>              return len;
> -        name = xmalloc_array(CHAR16, ++len);
> +        name = xvmalloc_array(CHAR16, ++len);
>          if ( !name )
>             return -ENOMEM;
>          if ( __copy_from_guest(name, op->u.set_variable.name, len) ||
>               wmemchr(name, 0, len) != name + len - 1 )
>          {
> -            xfree(name);
> +            xvfree(name);
>              return -EIO;
>          }
>  
> -        data = xmalloc_bytes(op->u.set_variable.size);
> +        data = xvmalloc_array(unsigned char, op->u.set_variable.size);
>          if ( !data )
>              rc = -ENOMEM;
>          else if ( copy_from_guest(data, op->u.set_variable.data,
> @@ -581,8 +582,8 @@ int efi_runtime_call(struct xenpf_efi_ru
>              efi_rs_leave(&state);
>          }
>  
> -        xfree(data);
> -        xfree(name);
> +        xvfree(data);
> +        xvfree(name);
>      }
>      break;
>  
> @@ -598,13 +599,13 @@ int efi_runtime_call(struct xenpf_efi_ru
>              return -EINVAL;
>  
>          size = op->u.get_next_variable_name.size;
> -        name.raw = xzalloc_bytes(size);
> +        name.raw = xvzalloc_array(unsigned char, size);
>          if ( !name.raw )
>              return -ENOMEM;
>          if ( copy_from_guest(name.raw, op->u.get_next_variable_name.name,
>                               size) )
>          {
> -            xfree(name.raw);
> +            xvfree(name.raw);
>              return -EFAULT;
>          }
>  
> @@ -629,7 +630,7 @@ int efi_runtime_call(struct xenpf_efi_ru
>          else
>              rc = -EOPNOTSUPP;
>  
> -        xfree(name.raw);
> +        xvfree(name.raw);
>      }
>      break;
>  



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 12:43:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 12:43:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077564.1438603 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulRsD-0007Bq-36; Mon, 11 Aug 2025 12:43:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077564.1438603; Mon, 11 Aug 2025 12:43: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 1ulRsC-0007Bj-VU; Mon, 11 Aug 2025 12:43:32 +0000
Received: by outflank-mailman (input) for mailman id 1077564;
 Mon, 11 Aug 2025 12:43:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ku41=2X=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ulRsB-0006wq-QH
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 12:43:31 +0000
Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com
 [2a00:1450:4864:20::532])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c8a153e4-76b0-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 14:43:30 +0200 (CEST)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-60bfcada295so7140629a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 05:43: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
 4fb4d7f45d1cf-6181bb2146esm3108863a12.1.2025.08.11.05.43.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 05:43: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>
X-Inumbo-ID: c8a153e4-76b0-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754916210; x=1755521010; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=B/8ybL7MvsDiewusQFnz68Ow+DYCryDfvpQw//n2idY=;
        b=WYCG7Yw5LiZQx0YdzJo1a43onDMlXqbdFsEIwaau+DxXc0lmfEDsYo5d3BAm6uOEfa
         F0iFl2ylqBrKLKIczYepoiNebfX92UNL31nsEC+s7yJurZ8+yVvJy1hhXzShBlVDmgw9
         YKp2+DKCnZ8FS0gpix72eB0H84pe4fT6kggp19rqV6TCZ9/fCa//oK9jpUPG3HCPQeH/
         kVsfa2j5v8AP6fKO4bZE2noAH2+XN8NlQlFWs13L3MfQ2N1AWi/3rI4GtizhnvABFOf7
         cCZ3qRaTwVS5b2HvTM7vBznYJcAdyuc+ystJ5B1TF4XZsNCSl3wdrWWXV6NQPclLpdyc
         fTiw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754916210; x=1755521010;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=B/8ybL7MvsDiewusQFnz68Ow+DYCryDfvpQw//n2idY=;
        b=YTPrLaUi0wL0DIGvmse5Z/fcASnH6wSpF6yz2MUE+0dgG9YzBdBzLK2D4/Afr2bPKt
         fKgCp3A+FrYS/h3ScM8i1LKsW0gcvXXrrHtM5fkYI4RoHWhxSyUaqBPeFtVm+of5/qId
         XiGUG3S7MwotBFOeY2zW3+Vhm/TZ73MISgAV9qn69OXvNJGIRJc0e6I1ObJW2QOVQG39
         3mobiO5uMH9rRXuOPCbJpmQY3JgL/Chic6Mo7r7HLcKYFXLRGY05FCoUA1UKXnd9SaQh
         AXrT7hP4sm47zzzEcOpzp9tUUWeZa4CwAhrGiu67UivIxKW23w026KJjE6xAjRlwCgRV
         eUFA==
X-Forwarded-Encrypted: i=1; AJvYcCVHw8SM7SBQL7J3vAOtTVkGprIgA31Dnwq++9k3fXj2dqmXnzz8SCT09C2nEfL9q12fxIe1tyod4b8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz4fMCNmUeP0jq1KJYILJGjMmJTl0jknhf3ijOKQVIn6FeeWaPx
	7cRgTsXiC9qB9M1qalKuQubZtAVDMvv37GLHtMrHyTib9LqLQH7U142Vl5KHrr9/mg==
X-Gm-Gg: ASbGncv+AUj6+6kVfEl3mZ3I7Pn/SIs+E5KxSX78VEEZlKfWoUhb2cS7BXw8IG5MVi1
	ld5LQ3M2eSqTu5jKTIelS1eUUrJAtXXZydvai29gbUKLG3X61rwKwffXLOA0OT+J5c+bH2mhJ0v
	nSJFABrP/6HkkfNr1vFuY95v4RLeBeCJYbo8frnBiRomNZkahHPUwnLs/c+g/jLDYW0pSIg0HyJ
	UnUAWvnq2oYyd5U6BXjv9T9IRkwqfUzZc6I6NvUf3RDUsphhx2vQflp5pWYpiqF9ERxu4Bui7ZA
	nISC5H5mgKyiCo5h8IdWYuD5mp7Ueob2HCYflFlUG4mnA+acEXPQYSfLp0lk09xNqL5ui1jtORY
	W7y/pM4ky/yF6hCq14sbcBaPQ73/uXZtZZdBGvetaGsSNEQxu6VU35FZVF5AH5jZjwWvZwKB2yN
	9OLfGcjrE=
X-Google-Smtp-Source: AGHT+IG4M2se9fxD7BIN0yyAyRe4OsX1HunqHYhQxHyl3ErTy36vdNdU67wJy3d7WIVnQdzkFzUxNQ==
X-Received: by 2002:a05:6402:5107:b0:617:eb72:b207 with SMTP id 4fb4d7f45d1cf-617eb72b6camr9098409a12.11.1754916209564;
        Mon, 11 Aug 2025 05:43:29 -0700 (PDT)
Message-ID: <aaf27a60-9f3c-4b4b-bad1-ace6f24260cf@suse.com>
Date: Mon, 11 Aug 2025 14:43:28 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 17/20] xen/riscv: implement put_page()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <7a7c07d431fc943e655216d389322638a640b2cd.1753973161.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: <7a7c07d431fc943e655216d389322638a640b2cd.1753973161.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 31.07.2025 17:58, Oleksii Kurochko wrote:
> Implement put_page(), as it will be used by p2m_put_code().

I would have ack-ed the code change, but the description is irritating:
Who or what is p2m_put_code() (going to be)?

> Although CONFIG_STATIC_MEMORY has not yet been introduced for RISC-V,
> a stub for PGC_static is added to avoid cluttering the code of
> put_page_nr() with #ifdefs.

There isn't any put_page_nr() being introduced (anymore), though.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 12:50:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 12:50:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077572.1438613 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulRyq-0000TD-OO; Mon, 11 Aug 2025 12:50:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077572.1438613; Mon, 11 Aug 2025 12:50: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 1ulRyq-0000T6-LR; Mon, 11 Aug 2025 12:50:24 +0000
Received: by outflank-mailman (input) for mailman id 1077572;
 Mon, 11 Aug 2025 12:50:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ku41=2X=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ulRyq-0000T0-3k
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 12:50:24 +0000
Received: from mail-ej1-x62e.google.com (mail-ej1-x62e.google.com
 [2a00:1450:4864:20::62e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id be845a97-76b1-11f0-a325-13f23c93f187;
 Mon, 11 Aug 2025 14:50:22 +0200 (CEST)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-af967835d0aso611209466b.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 05:50: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
 a640c23a62f3a-af91a076aecsm2007165166b.9.2025.08.11.05.50.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 05:50:21 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: be845a97-76b1-11f0-a325-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754916622; x=1755521422; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=TCbyDIF94AlamRIYQYWfUDGlkZFGfhhbNuFZHDH84sU=;
        b=Y3eesaKGwAVfrDO3Rpqty953loYDodfHBZDbX5I77JGtPw5Z1uuDUFfr8yek4pRLPe
         F1ZLKCGLeBKTVCGH2eOj/Dq1Zh8COWwSoTZG+zeao7bT6uqDfcfGV4nxAeLOGAZd6RbR
         U/oP9kX2S92lykcf8yh9JQ1ksK1hMR70YPbaNQArEW/H2sif0NVI3tGbBZXzMUvhdIRN
         eYZNkbpZ6SAdxPa+Y2qXWq4sWRI+ntR4zohsFPTk2noayfUPbR4142Me1WhKo4f+v3FH
         N+xqxAzA11IyOUFu7+/S83GyeEnF680EaVKUNm91N5nJIHQPJATLGYIQ+/yCufIaqRBk
         jS0w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754916622; x=1755521422;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=TCbyDIF94AlamRIYQYWfUDGlkZFGfhhbNuFZHDH84sU=;
        b=lrPaIxDrIPfJQq2NQR2zmZYTCGjEd+jxYj4JY3znTCdSWhLHv/4zn/i+OUI2bk+xbN
         rmQQP0EwBDh/r4BAghvDoJ3bX135ywlUbMZhwthM4EE6lOtP7a/KZ1Ovx9rxejyweXQ3
         7OWJxPyV2+TNDA+52CpLYY1ZPQkevruHv0VNFYAKtqqSwA3XzlLd+yxeCcLDQ/vNU2aD
         1cRcNqW4qNMVK+WXPAMa3YpL6LvSKAqrZ201hdBXsoXg8AI4aWtDkziYW6VZIAJD5SYu
         o7kiG1O8FQXRHTDdgRHiQAv6ybQOpnZVvsq/PThf8p1VbFPZnxKRtCQ00BjH54Tiktav
         7q3w==
X-Forwarded-Encrypted: i=1; AJvYcCUJ/bVM4P6GHQpwqlboojBaYqU6w1jdb9GRgmD+UyAJI3bkYVT6xTMKespBrLIvOCVPLlWia6sbotY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxMK20sfcXwUAOWeYdO6x96/FNmkYnEjCzppxfqYGZmq47USlZ7
	/INf1Q6NUqIBgpHbYUfoiwQWQcp+x1tKcRx1O59MuIPmDMCu2IlGMHMDk40iOWSzYA==
X-Gm-Gg: ASbGncufg8sQNB5fdr4LvUtVEGSuKXbtEDJd9Lljc+lOs0bBDgTGgh3ktOgx66Kgoq9
	kl7aK1uP+FkY5On54Nlw2YD1lckg2+vaZT5BjNgWGT3FeChXOUxUIwjr8kRx+1a44615b8D9Tf6
	EUkO5BLtakznkyeigg23Sc51iW0u25p89W5Mhk6lu4k+T4NVn9O2nYCDo4lFZ5jhkFFCpBjyrrv
	8LXVY7cntpGckri6DdAhkryVX4VmWG35CfglLZ2QJMA0lo1L0uUE6AjqioDELYrVN4LCPsyLhZZ
	aftqYbXJSkQ1hIk7Aavth/BVjpUA0mRHfQjoxa9hZ8Nw9p2T5uXUX/FW3s5HlRzt3sptSe7e0yS
	I5uRwK70TwHVCnasaphRQUAw1lEtCJUxyzw+RhxmmaCKbA/Ukuq4TrzuFOhx6rshwameREHQ+uR
	9CQFzzTlMNCHwt0eLw5w==
X-Google-Smtp-Source: AGHT+IHtsdPfHP4cx1aN6wUXGX/juk3gsHg1VJvYln/2taaYdfRrhghC6sucUAFbBARsShp6PysUDQ==
X-Received: by 2002:a17:906:a4b:b0:af9:d863:5ce4 with SMTP id a640c23a62f3a-af9d8635f81mr724326366b.15.1754916621980;
        Mon, 11 Aug 2025 05:50:21 -0700 (PDT)
Message-ID: <60a8be02-430b-4c37-bb4c-6285c2676c10@suse.com>
Date: Mon, 11 Aug 2025 14:50:20 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 18/20] xen/riscv: implement mfn_valid() and page
 reference, ownership handling helpers
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <fe455eac54b6c874b8ddb69e94703c9a28330a4c.1753973161.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: <fe455eac54b6c874b8ddb69e94703c9a28330a4c.1753973161.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 31.07.2025 17:58, Oleksii Kurochko wrote:
> Implement the mfn_valid() macro to verify whether a given MFN is valid by
> checking that it falls within the range [start_page, max_page).
> These bounds are initialized based on the start and end addresses of RAM.
> 
> As part of this patch, start_page is introduced and initialized with the
> PFN of the first RAM page.
> Also, initialize pdx_group_valid() by calling set_pdx_range() when
> memory banks are being mapped.
> 
> Also, after providing a non-stub implementation of the mfn_valid() macro,
> the following compilation errors started to occur:
>   riscv64-linux-gnu-ld: prelink.o: in function `__next_node':
>   /build/xen/./include/xen/nodemask.h:202: undefined reference to `page_is_ram_type'
>   riscv64-linux-gnu-ld: prelink.o: in function `get_free_buddy':
>   /build/xen/common/page_alloc.c:881: undefined reference to `page_is_ram_type'
>   riscv64-linux-gnu-ld: prelink.o: in function `alloc_heap_pages':
>   /build/xen/common/page_alloc.c:1043: undefined reference to `page_get_owner_and_reference'
>   riscv64-linux-gnu-ld: /build/xen/common/page_alloc.c:1098: undefined reference to `page_is_ram_type'
>   riscv64-linux-gnu-ld: prelink.o: in function `ns16550_interrupt':
>   /build/xen/drivers/char/ns16550.c:205: undefined reference to `get_page'
>   riscv64-linux-gnu-ld: ./.xen-syms.0: hidden symbol `page_get_owner_and_reference' isn't defined
>   riscv64-linux-gnu-ld: final link failed: bad value
>   make[2]: *** [arch/riscv/Makefile:35: xen-syms] Error 1
> To resolve these errors, the following functions have also been introduced,
> based on their Arm counterparts:
> - page_get_owner_and_reference() and its variant to safely acquire a
>   reference to a page and retrieve its owner.
> - A stub for page_is_ram_type() that currently always returns 0 and asserts
>   unreachable, as RAM type checking is not yet implemented.

For this latter part I can only repeat that the code is reachable, and hence it
is wrong to put ASSERT_UNREACHABLE() there. That's true for Arm's code as well.

> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

With said line dropped:
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 13:02:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 13:02:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077580.1438622 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulS9z-0003IT-Nt; Mon, 11 Aug 2025 13:01:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077580.1438622; Mon, 11 Aug 2025 13:01: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 1ulS9z-0003IM-LM; Mon, 11 Aug 2025 13:01:55 +0000
Received: by outflank-mailman (input) for mailman id 1077580;
 Mon, 11 Aug 2025 13:01:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ku41=2X=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ulS9y-0003Gh-H4
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 13:01:54 +0000
Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com
 [2a00:1450:4864:20::52e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 544afa90-76b3-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 15:01:43 +0200 (CEST)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-61571192ba5so6834385a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 06:01: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
 4fb4d7f45d1cf-615a86758fcsm18332979a12.0.2025.08.11.06.01.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 06:01: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>
X-Inumbo-ID: 544afa90-76b3-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754917303; x=1755522103; 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=L/ElbyNMZW5/7VaCj4lt7JPKoAcnq+O1zUIsSfH05Rg=;
        b=PxxvZH4wZu6sE8PyzAErq+ct8guCzeXUWPGkZgWk/PkLBw2sxcohwr5nWigPS8M5Q0
         1qarcIFBfokCK5rX/hTR2tIbAXurdgxxCp01zxx3PUwUZAFdj9OnySyK9ONPd8KUmzs9
         cPS+hP7PJmlalVU1jcnF3tDi4Lu50PadcGz6dtYwzLNtqCzwA5tcf8rCTB49Xxzgh6gw
         zGwkINMB70MdCShDf25T5hlmYbsCJR8EoikZDHm3j9n9s6xfTv/j2SvAF/zxDyXVUSHh
         /RT9hA7pguhUeVBF+0MCvttw4aG0HCwzSONbDbURginP0NuDW2fD7MjMJsORjTi8xSbA
         K5Mg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754917303; x=1755522103;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=L/ElbyNMZW5/7VaCj4lt7JPKoAcnq+O1zUIsSfH05Rg=;
        b=RKKNC2zcEEesDlKnCPxRliMOPJKFcL5fe5mpAZcUxBJOqWAOs4MY1waFagpWouWF/2
         0XzHSbcJHHtc2ZrdohGwQXZ9wHzXSRUeFr/8kkEwt1inZVCWOlOy+IxAVi3BTLzEobxL
         yv6voj/U1B0o37wPI4SIWnDpkg6E7/Bg8YuPxHTY0z6etvZp+byo31CXB+nFbumdi8QA
         Hw8cTctDRWJYLIz0Tnst4vF1doycrqtebbGtG7jg0LmZl4kVb8oClQ0RdhqZG9YC+Nau
         7cBQN0Ali8P66SGgWLaNaz/3pTXjPRJnbPInhMdC0e6fA3LWlUlmBaGf7XZsOyFcYM46
         sesA==
X-Gm-Message-State: AOJu0Yz8QQO6qSvOZulc6w1UKxviO3IVwFLutnjv8TIDHODY28QfH+gy
	YzmuD/EFoa/WdSNa4SG3h4Gn7lR2dvjDjRXKp13xa7h7kBbodvl59zb3ji7/hai2lvUyfKQ7gei
	8YCE=
X-Gm-Gg: ASbGncvlFgSkPYWyjvdXmHobomksg9whGaY57lfvj4hTTVfpJGDUHeQEAVzASldNQpN
	EIMjSRboAEvydfPNafKCbODwMABy96ic5e5CYRY3Gyed/IsX282U1KNe7jcfPFanjW4uJ2r0uXJ
	VvdPCN7JKhW3syAd/BPmYSQtn7xZuWwVOU6m3nfhZ2A7dy5/dQMPUIuI9dP6KI009kANtoIfORj
	2oUxFTXlIBSukcE4/AFgDpHcOe57rnSwzx+HmD9zAI5lcSt2g+Z8BS8ZFFEWRbVZrEIS61c5vWI
	5i6zIYcq44fURKpO3PZpSDZ6ktgr7wr4X04z69C/8kA2pDGI24w8i8K+TYEOpeDsqqkHiqsfNhg
	5lbpERjX2mU+5wB4z+pBcpo+ZZKryxGpXva9AyVUh8jRL5LzDKbR7F6JVjayjC2LVGkgCCVW0Fd
	h5l3FqSQjTlK30taYFaw==
X-Google-Smtp-Source: AGHT+IEDRBLp+aoagzcLD9pSmG5HEcTm5YYLMmhkgti8Ri2YhqayFK/NyJniUw0HQo6xvmkupB3yOg==
X-Received: by 2002:a05:6402:5193:b0:618:d6b:8d9e with SMTP id 4fb4d7f45d1cf-6180d6b904emr6578381a12.32.1754917302657;
        Mon, 11 Aug 2025 06:01:42 -0700 (PDT)
Message-ID: <804094ae-bb76-4165-9e07-46b775b4b46e@suse.com>
Date: Mon, 11 Aug 2025 15:01: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: 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>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] Arm: drop assertion from page_is_ram_type()
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

Its uses in offline_page() and query_page_offline() make it reachable on
Arm, as long as XEN_SYSCTL_page_offline_op doesn't have any Arm-specific
code added. It being reachable was even mentioned in the commit
introducing it, claiming it "clearly shouldn't be called on ARM just
yet".

Fixes: 214c4cd94a80 ("xen: arm: stub page_is_ram_type")
Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/arch/arm/mm.c
+++ b/xen/arch/arm/mm.c
@@ -66,7 +66,6 @@ int steal_page(
 
 int page_is_ram_type(unsigned long mfn, unsigned long mem_type)
 {
-    ASSERT_UNREACHABLE();
     return 0;
 }
 


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 13:17:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 13:17:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077599.1438632 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulSOW-0006hB-2v; Mon, 11 Aug 2025 13:16:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077599.1438632; Mon, 11 Aug 2025 13:16: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 1ulSOW-0006h4-0P; Mon, 11 Aug 2025 13:16:56 +0000
Received: by outflank-mailman (input) for mailman id 1077599;
 Mon, 11 Aug 2025 13:16:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=92re=2X=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ulSOU-0006gy-DS
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 13:16:54 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6fd415fd-76b5-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 15:16:48 +0200 (CEST)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-459ebb6bbdfso27596425e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 06:16:48 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3b79c3bf93dsm40730669f8f.27.2025.08.11.06.16.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 06:16: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>
X-Inumbo-ID: 6fd415fd-76b5-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754918208; x=1755523008; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=5myF4aui7F/pjoMuI7/Jcxv0qY1yShjpcKQ694jxm5Q=;
        b=TVoklmKqQNm0ej3uWVOtWNdVrRdFR56Itz6AWGqwAergCkpJDPReKb3YVaLkzxK6JI
         iOEy2wYG9/plj4dchEKvwADjvjMJ4HO+IinGK0E0yqxZ9Ekey4g00OAMpkbkSGRju8nl
         Ylf0vMVq8MpUKL/dreyBMm3LaZYXXM/0KSWcw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754918208; x=1755523008;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5myF4aui7F/pjoMuI7/Jcxv0qY1yShjpcKQ694jxm5Q=;
        b=Qz/WFGhvsJMAfxfuClk7UcCluhqSfzkSkJewX/ZvBaowQlkNbCfuYh9NnPE05vxibS
         rWxpM9f6EJpeethXYeHtQ+Ka18HBecxcMfRI8pTUWihotxK9aTSordveOf+Ck7vXKFZM
         Ao7O6tNhntUUuloCoz8+EZxy5Vc3eVS67Zp2rBqDmBS5qacshyhF+EqjbdMmIE1t9ibt
         NgqyR8LQb+SZqN2A1ljscRbJYZfdigcxtQmJuKg573jPCcux8go4rteVacVNQe+I2ceO
         K4UO7cuH19RDV+QQirh1RXzAlVQO6wUuIWmwuirWV/BO785ZRxGfN45/vFQ6RqdQtx2P
         Aoow==
X-Gm-Message-State: AOJu0YyZHul7cLJzaBmxsOGnLBt+UAGWzZ+JAsLNdEcdiIG+dOFvUXb0
	a0McaWk6Z6ggoBUyr6p41CKqdEOiGdL6SCav3pN0S61Ah78XVM6NrMCHLJrpvIqaAy4=
X-Gm-Gg: ASbGncvukimz8qrRxvtzvmfmfipSNhPEDgxdV7qjZyNmj0dLhHSvSCPdNLU36ARI6wd
	6Dv4SzITV/RB7h5CK0PZNeHXPRrzP1Bhl0QMaaWxz5XWHY6gq9TOnoZmAOFd+/s4Iz5mTmVLYP5
	X+wPlOeBqiM+5XlkzZhApF7NhdrmgzPh6jDZ0EJdK6Hi0mFGxWrBpGozyzf1LW/JaTurJZ0rpOQ
	aVH2uP52aH6209Y/w69cVZYDaIvetz7GtWTzC0owOQy+lFpUswMcSNuJAaGiMzyecEOopR1oieH
	Z3g7ySW80OqeneccJujHXi9ZTkXZFjv6WdSpG5z9gV54HAhyr+AZmXHgDQjwR1pWNh0/sfyZ5E6
	1kv+wLxtKhQs1tlr0iVc7J5bCTYmviRn6c2N/cuqBnLv1vwYvzVMZ5juCifC3PUGYUyoM
X-Google-Smtp-Source: AGHT+IF8n0iu976Dai538Iar5sFYvijTM2LBx5PULRxNLxAmEJRIFjrQt07F6tXAuSms5aqALW4dVw==
X-Received: by 2002:a05:600c:5490:b0:459:d645:bff7 with SMTP id 5b1f17b1804b1-459f4f52999mr115874275e9.12.1754918208077;
        Mon, 11 Aug 2025 06:16:48 -0700 (PDT)
Message-ID: <4fb544d7-fede-46b8-950e-f9c4af1cb04f@citrix.com>
Date: Mon, 11 Aug 2025 14:16:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: S3 regression related to XSA-471 patches
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Jan Beulich <jbeulich@suse.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>
References: <aJMtPLNqQFbGg5cs@mail-itl>
 <f971f8a8-487e-4b9f-8c75-80ebfe70c3b6@suse.com> <aJMyjYfeTL5uPRtk@mail-itl>
 <aJTilUXpchmRq2Ng@mail-itl>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <aJTilUXpchmRq2Ng@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 07/08/2025 6:29 pm, Marek Marczykowski-GÃ³recki wrote:
> On Wed, Aug 06, 2025 at 12:46:36PM +0200, Marek Marczykowski-GÃ³recki wrote:
>> On Wed, Aug 06, 2025 at 12:36:56PM +0200, Jan Beulich wrote:
>>> On 06.08.2025 12:23, Marek Marczykowski-GÃ³recki wrote:
>>>> We've got several reports that S3 reliability recently regressed. We
>>>> identified it's definitely related to XSA-471 patches, and bisection
>>>> points at "x86/idle: Remove broken MWAIT implementation". I don't have
>>>> reliable reproduction steps, so I'm not 100% sure if it's really this
>>>> patch, or maybe an earlier one - but it's definitely already broken at
>>>> this point in the series. Most reports are about Xen 4.17 (as that's
>>>> what stable Qubes OS version currently use), but I think I've seen
>>>> somebody reporting the issue on 4.19 too (but I don't have clear
>>>> evidence, especially if it's the same issue).
>>> At the time we've been discussing the explicit raising of TIMER_SOFTIRQ
>>> in mwait_idle_with_hints() a lot. If it was now truly missing, that imo
>>> shouldn't cause problems only after resume, but then it may have covered
>>> for some omission during resume. As a far-fetched experiment, could you
>>> try putting that back (including the calculation of the "expires" local
>>> variable)?
>> Sure, I'll try.
> It appears this fixes the issue, at least in ~10 attempts so far
> (usually I could reproduce the issue after 2-3 attempts).
>

Can you show the exact code which seems to have made this stable?

We discussed this in the x86 maintainers meeting, and our best guess is
a timer that's not torn down or recreated properly on S3, but this is
largely speculation.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 13:25:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 13:25:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077608.1438642 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulSWY-0000Yb-RF; Mon, 11 Aug 2025 13:25:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077608.1438642; Mon, 11 Aug 2025 13:25:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulSWY-0000YU-Oi; Mon, 11 Aug 2025 13:25:14 +0000
Received: by outflank-mailman (input) for mailman id 1077608;
 Mon, 11 Aug 2025 13:25:13 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ku41=2X=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ulSWX-0000YO-1x
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 13:25:13 +0000
Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com
 [2a00:1450:4864:20::635])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9b9f2228-76b6-11f0-a325-13f23c93f187;
 Mon, 11 Aug 2025 15:25:11 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-af95b919093so639822366b.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 06:25: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
 a640c23a62f3a-af91a0a396fsm2029839266b.42.2025.08.11.06.25.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 06:25: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>
X-Inumbo-ID: 9b9f2228-76b6-11f0-a325-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754918711; x=1755523511; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=1QakprPly9v0H+YwMbntGulgbO21nLMu9KER28L80Gs=;
        b=chBK22rdZ86AdeMryVz55wKHr9Vo5AL1jUBdXu6+SAuUl00tFlJFiy34ZZlpRie4SN
         GwBgV4hdYd10nlrc5nyOR9q5rODlREHngtRC1A9OM9YnD0d3Iwrso6y34xSFcDeIj0Jp
         dwP35WveRi5ayHuyR543obuOUmn8GnZ153aM2N1nJOGq/aCyt2hrWdr+6aLnfuaHeB+e
         CYQnAKA/mfVV1j6gmSNMap+kAZ+xbV+f6yDkwg4A4KYy0AdHHhjyCRBNBYYiYpJpLw7h
         5nVJggHmjWXOgpc4ZDPKRtGg3YMlGMk5EWCW+XXFOB1jaBCwwxuVAQYViL+HzfqSRcut
         +01w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754918711; x=1755523511;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1QakprPly9v0H+YwMbntGulgbO21nLMu9KER28L80Gs=;
        b=FqCjFAkiqI/O1T7prkr3JylqG17b2N6ZrzJfNVxomVfK2re0H2MoRfZKxgevqhGzCP
         GZWef/+l5/O7UnzvfZflm/sAzMzQmRrKv+Gk56yaVYX+XVLz7xPH2GaIh+l6dYKnTUX0
         G0LooqUXQUdyYW0oXDBQPZpHWxIj380g+HJL9OzyUc99VaLmcs7eArHYRdQ/63Os1Fuw
         g+vtAUR9ARbz1Vwt9N/7IylvKa56k3U5Mf1yj7U+hONlkCptuVckpYiz5FOoSiPGREv/
         6oYxpCeP1M8oMbngX13peQ3PN1ITZtUaos89E5I0CJV8BbnYZ3ongiBK7D7+hBTeEkt4
         WHDg==
X-Forwarded-Encrypted: i=1; AJvYcCXVmZU7/cDopuiad4LtDIoVUNUhtbXQmo6nrKHH6TlIbRiLOvaj7acFjicpH31h2lkAIuudf1y1FiE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzxfDO12pQ9Hv3N3Mt+q/+rkhHFnC6FMtskqvgHW3BjvpSsAfw2
	DPESb3IPnlmqChIt6oR7GTWAM8hdUJHev+1Iuy1EGOFpWuz+iHt4MH+0/9g5YvP+jg==
X-Gm-Gg: ASbGnctnus9P+T5Wu38A2FE7i8LwbfqqaRZkBJZmMPTT4ulZXodatmnJ3nAktRyEVha
	mPSJTG40Lw/wPO9Yx1DZdWZU1dxv6ceA4MAxinV7oSH3QcKG2X0XmLEReNs07WUvZtJJ1G9tlJr
	Z+JEZBO+9SZxTFMhPm6AW4Q8C33Hj+NRTB6ZZGdzjdVjmMyEOHXJPBQmstBt2VUyle8sNoa8v6g
	MekmT0rsuT+vfRtvaYlOlEoFa5WUe5z0g/lRxUwYYrFpf89uV3sDYnfIYCXvRko9AgKtCsqk3Fb
	yRSmFEwqU9v/tjZCTWkBz8HHnb5oEiEWqdf/Q6nkd6R2cOywqaitVfi1eIKvwBitGfC4Ku5UCpm
	HbDp+aBMOFSMEmGS0qoy5Njm0I4niCHabt5a07kzFmQueVOjRh5APBLFEyReUO8FOG9fzExwOXk
	pf1VLMU9g=
X-Google-Smtp-Source: AGHT+IHY4Rm+lGrXLtN2Td2JlKwbYXsjIbG9k3+P4y+Q8mBCEV0q5v2le7EJnCJ4dLrAiWEuSf5YSg==
X-Received: by 2002:a17:907:3d8d:b0:af9:5ca0:e4fe with SMTP id a640c23a62f3a-af9c6608b5amr1158947566b.56.1754918710929;
        Mon, 11 Aug 2025 06:25:10 -0700 (PDT)
Message-ID: <f7f81e65-5c85-4e30-a68b-01cdcf51dc07@suse.com>
Date: Mon, 11 Aug 2025 15:25:09 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 19/20] xen/riscv: add support of page lookup by GFN
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <24bb8ca6ad9d325f48d0c64b0fa461db5f0d0cc5.1753973161.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: <24bb8ca6ad9d325f48d0c64b0fa461db5f0d0cc5.1753973161.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 31.07.2025 17:58, Oleksii Kurochko wrote:
> Introduce helper functions for safely querying the P2M (physical-to-machine)
> mapping:
>  - add p2m_read_lock(), p2m_read_unlock(), and p2m_is_locked() for managing
>    P2M lock state.
>  - Implement p2m_get_entry() to retrieve mapping details for a given GFN,
>    including MFN, page order, and validity.
>  - Add p2m_lookup() to encapsulate read-locked MFN retrieval.
>  - Introduce p2m_get_page_from_gfn() to convert a GFN into a page_info
>    pointer, acquiring a reference to the page if valid.
>  - Introduce get_page().
> 
> Implementations are based on Arm's functions with some minor modifications:
> - p2m_get_entry():
>   - Reverse traversal of page tables, as RISC-V uses the opposite level
>     numbering compared to Arm.
>   - Removed the return of p2m_access_t from p2m_get_entry() since
>     mem_access_settings is not introduced for RISC-V.
>   - Updated BUILD_BUG_ON() to check using the level 0 mask, which corresponds
>     to Arm's THIRD_MASK.
>   - Replaced open-coded bit shifts with the BIT() macro.
>   - Other minor changes, such as using RISC-V-specific functions to validate
>     P2M PTEs, and replacing Arm-specific GUEST_* macros with their RISC-V
>     equivalents.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
> Changes in V3:
>  - Add is_p2m_foreign() macro and connected stuff.

What is this about?

> --- a/xen/arch/riscv/include/asm/p2m.h
> +++ b/xen/arch/riscv/include/asm/p2m.h
> @@ -202,6 +202,24 @@ static inline int p2m_is_write_locked(struct p2m_domain *p2m)
>  
>  unsigned long construct_hgatp(struct p2m_domain *p2m, uint16_t vmid);
>  
> +static inline void p2m_read_lock(struct p2m_domain *p2m)
> +{
> +    read_lock(&p2m->lock);
> +}
> +
> +static inline void p2m_read_unlock(struct p2m_domain *p2m)
> +{
> +    read_unlock(&p2m->lock);
> +}
> +
> +static inline int p2m_is_locked(struct p2m_domain *p2m)

bool return type (also for p2m_is_write_locked() in patch 11)? Also perhaps
pointer-to-const parameter?

> --- a/xen/arch/riscv/p2m.c
> +++ b/xen/arch/riscv/p2m.c
> @@ -852,3 +852,139 @@ int map_regions_p2mt(struct domain *d,
>  {
>      return p2m_insert_mapping(p2m_get_hostp2m(d), gfn, nr, mfn, p2mt);
>  }
> +
> +/*
> + * Get the details of a given gfn.
> + *
> + * If the entry is present, the associated MFN will be returned type filled up.

This sentence doesn't really parse, perhaps due to missing words.

> + * The page_order will correspond to the order of the mapping in the page
> + * table (i.e it could be a superpage).
> + *
> + * If the entry is not present, INVALID_MFN will be returned and the
> + * page_order will be set according to the order of the invalid range.
> + *
> + * valid will contain the value of bit[0] (e.g valid bit) of the
> + * entry.
> + */
> +static mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn,
> +                           p2m_type_t *t,
> +                           unsigned int *page_order,
> +                           bool *valid)
> +{
> +    unsigned int level = 0;
> +    pte_t entry, *table;
> +    int rc;
> +    mfn_t mfn = INVALID_MFN;
> +    DECLARE_OFFSETS(offsets, gfn_to_gaddr(gfn));
> +
> +    ASSERT(p2m_is_locked(p2m));
> +    BUILD_BUG_ON(XEN_PT_LEVEL_MAP_MASK(0) != PAGE_MASK);

What function-wide property is this check about? Even when moved ...

> +    if ( valid )
> +        *valid = false;
> +
> +    /* XXX: Check if the mapping is lower than the mapped gfn */

(Nested: What is this about?)

> +    /* This gfn is higher than the highest the p2m map currently holds */
> +    if ( gfn_x(gfn) > gfn_x(p2m->max_mapped_gfn) )
> +    {
> +        for ( level = P2M_ROOT_LEVEL; level; level-- )
> +            if ( (gfn_x(gfn) & (XEN_PT_LEVEL_MASK(level) >> PAGE_SHIFT)) >

... into the more narrow scope where another XEN_PT_LEVEL_MASK() exists I
can't really spot what the check is to guard against.

> +                 gfn_x(p2m->max_mapped_gfn) )
> +                break;
> +
> +        goto out;
> +    }
> +
> +    table = p2m_get_root_pointer(p2m, gfn);
> +
> +    /*
> +     * the table should always be non-NULL because the gfn is below
> +     * p2m->max_mapped_gfn and the root table pages are always present.
> +     */

Nit: Style.

> +    if ( !table )
> +    {
> +        ASSERT_UNREACHABLE();
> +        level = P2M_ROOT_LEVEL;
> +        goto out;
> +    }
> +
> +    for ( level = P2M_ROOT_LEVEL; level; level-- )
> +    {
> +        rc = p2m_next_level(p2m, true, level, &table, offsets[level]);

Why would you blindly allocate a page table (hierarchy) here? If anything,
this may need doing upon caller request (as it's only up the call chain
where the necessary knowledge exists). For example, ...

> +static mfn_t p2m_lookup(struct p2m_domain *p2m, gfn_t gfn, p2m_type_t *t)
> +{
> +    mfn_t mfn;
> +
> +    p2m_read_lock(p2m);
> +    mfn = p2m_get_entry(p2m, gfn, t, NULL, NULL);

... this (by its name) pretty likely won't want allocation, while ...

> +    p2m_read_unlock(p2m);
> +
> +    return mfn;
> +}
> +
> +struct page_info *p2m_get_page_from_gfn(struct p2m_domain *p2m, gfn_t gfn,
> +                                        p2m_type_t *t)
> +{

... this will. Yet then ...

> +    struct page_info *page;
> +    p2m_type_t p2mt = p2m_invalid;
> +    mfn_t mfn = p2m_lookup(p2m, gfn, t);

... you use the earlier one here.

> +    if ( !mfn_valid(mfn) )
> +        return NULL;
> +
> +    if ( t )
> +        p2mt = *t;
> +
> +    page = mfn_to_page(mfn);
> +
> +    /*
> +     * get_page won't work on foreign mapping because the page doesn't
> +     * belong to the current domain.
> +     */
> +    if ( p2m_is_foreign(p2mt) )
> +    {
> +        struct domain *fdom = page_get_owner_and_reference(page);
> +        ASSERT(fdom != NULL);
> +        ASSERT(fdom != p2m->domain);
> +        return page;

In a release build (with no assertions) this will be wrong if either of the
two condition would not be satisfied. See x86'es respective code.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 13:35:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 13:35:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077620.1438653 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulSg0-0002s0-NP; Mon, 11 Aug 2025 13:35:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077620.1438653; Mon, 11 Aug 2025 13:35: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 1ulSg0-0002rt-K0; Mon, 11 Aug 2025 13:35:00 +0000
Received: by outflank-mailman (input) for mailman id 1077620;
 Mon, 11 Aug 2025 13:35:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6owi=2X=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1ulSg0-0002rn-9A
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 13:35:00 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id f70a6ca8-76b7-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 15:34:54 +0200 (CEST)
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 D73ED150C;
 Mon, 11 Aug 2025 06:34:45 -0700 (PDT)
Received: from C3HXLD123V.arm.com (unknown [10.57.55.159])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 36F7C3F63F;
 Mon, 11 Aug 2025 06:34: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>
X-Inumbo-ID: f70a6ca8-76b7-11f0-b898-0df219b8e170
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Julien Grall <jgrall@amazon.com>
Subject: [PATCH v8 0/6] FF-A VM to VM support
Date: Mon, 11 Aug 2025 15:34:41 +0200
Message-ID: <cover.1754899329.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.47.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This patch serie adds support to use FF-A between VM for communications
using indirect messages.

It adds a Kconfig parameter to enable this feature and marks it as
experimental as for now there is no system to restrict communication
rights between VM using this system.

It also adds support to use VM to VM communications using FF-A even if
there is no firmware support for FF-A. As this feature enables FF-A
support in all cases, we also introduce a new command line parameter to
allow the user to force which tee is to be used between FF-A and Optee
to have a solution to enable optee support if FF-A VM to VM is enabled.

Changes since v7:
- typo fixes
- use LIST_HEAD and DEFINE_RWLOCK
- add Jens R-b and Julien A-b

Changes since v6:
- use a rwlock to protect access to the chain list of context
- rebase on top of staging
- add some R-b/A-b from Jens and Julien

Changes since v5:
- coding style fixes
- rework version negociation to use the context lock
- split probe into fw and vm to vm probe to make code clearer
- add some R-b from Jens

Changes since v4:
- fix typos and optimize command line parameter
- split VM to VM support in 2 patches to ease review
- organize ffa contexts in a chain list to be able to build the partinfo
  result without taking the global domain lock
- introduce a maximum number of SPs to prevent holding the CPU for too
  long during partinfo call
- use an atomic to store the number of FF-A VMs
- prevent potential overflows in indirect message handling
- fix copy bug in indirect message introduced in v4

Changes since v3:
- reintroduce firmare v1.0 support in partinfo
- fix a possible TOC/TOU issue in indirect message handling
- typos and small fixes

Changes since v2:
- Rework partition_info_get implementation
- Taint Xen and display a message when VM to VM is enabled
- Various fixes explained in each patch

Changes since v1 (rfc):
- add a tee command line parameter
- use IS_ENABLED instead of ifdef when possible
- rebase on latest staging


Bertrand Marquis (6):
  xen/arm: Create tee command line parameter
  xen/arm: ffa: Rework partinfo_get implementation
  xen/arm: ffa: Introduce VM to VM support
  xen/arm: ffa: Add buffer full notification support
  xen/arm: ffa: Add indirect message between VM
  xen/arm: ffa: Enable VM to VM without firmware

 docs/misc/xen-command-line.pandoc  |  14 ++
 xen/arch/arm/include/asm/tee/tee.h |   4 +
 xen/arch/arm/tee/Kconfig           |  11 ++
 xen/arch/arm/tee/ffa.c             | 112 ++++++++---
 xen/arch/arm/tee/ffa_msg.c         | 117 ++++++++++--
 xen/arch/arm/tee/ffa_notif.c       | 140 ++++++++------
 xen/arch/arm/tee/ffa_partinfo.c    | 292 ++++++++++++++++++++---------
 xen/arch/arm/tee/ffa_private.h     | 158 +++++++++++++---
 xen/arch/arm/tee/tee.c             |  32 ++++
 9 files changed, 665 insertions(+), 215 deletions(-)

-- 
2.47.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 13:35:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 13:35:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077626.1438662 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulSgU-0003J8-VU; Mon, 11 Aug 2025 13:35:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077626.1438662; Mon, 11 Aug 2025 13:35: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 1ulSgU-0003J1-ST; Mon, 11 Aug 2025 13:35:30 +0000
Received: by outflank-mailman (input) for mailman id 1077626;
 Mon, 11 Aug 2025 13:35:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6owi=2X=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1ulSgU-0003IJ-A1
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 13:35:30 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 0ba046c3-76b8-11f0-a325-13f23c93f187;
 Mon, 11 Aug 2025 15:35:29 +0200 (CEST)
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 5FD1D150C;
 Mon, 11 Aug 2025 06:35:20 -0700 (PDT)
Received: from C3HXLD123V.arm.com (unknown [10.57.55.159])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id B406E3F63F;
 Mon, 11 Aug 2025 06:35: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>
X-Inumbo-ID: 0ba046c3-76b8-11f0-a325-13f23c93f187
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Julien Grall <jgrall@amazon.com>
Subject: [PATCH v8 1/6] xen/arm: Create tee command line parameter
Date: Mon, 11 Aug 2025 15:34:57 +0200
Message-ID: <c2e116655396a539a67e4467dc1aef3c312e4359.1754899329.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.47.1
In-Reply-To: <cover.1754899329.git.bertrand.marquis@arm.com>
References: <cover.1754899329.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add a new command line parameter "tee=" to be used to explicitly select
what tee mediator is to be used by Xen and fail if it does not exist
or the probe function for it failed.

Without specifying which tee is to be used, Xen will use the first one
for which the probe function succeeds which depends on the order of the
mediator list which depends on the compiler.
Using the command line argument, it is now possible to explicit request
a specific TEE mediator and panic on boot if it is not available.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Acked-by: Julien Grall <jgrall@amazon.com>
---
Changes in v8:
- None
Changes in v7:
- Add Julien A-b
Changes in v6:
- Add Jens R-b
Changes in v5:
- Typo fix and rewording in command line doc (Julien)
- fix include order in tee.c (Julien)
- use a local bool instead of retesting the string each time in tee_init
  (Julien)
Changes in v4:
- None
Changes in v3:
- Properly classify tee as arm specific (Jan)
Changes in v2:
- Patch introduced to add a command line selection of the TEE
---
 docs/misc/xen-command-line.pandoc  | 14 +++++++++++++
 xen/arch/arm/include/asm/tee/tee.h |  4 ++++
 xen/arch/arm/tee/tee.c             | 32 ++++++++++++++++++++++++++++++
 3 files changed, 50 insertions(+)

diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
index 6865a61220ca..ad5800ac45a8 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -2655,6 +2655,20 @@ Specify the per-cpu trace buffer size in pages.
 
 Flag to enable TSC deadline as the APIC timer mode.
 
+### tee (arm)
+> `= <string>`
+
+Specify the TEE mediator to be probed and use.
+
+The default behaviour is to probe all TEEs supported by Xen and use
+the first one successfully probed. When this parameter is passed, Xen will
+probe only the TEE mediator passed as argument and boot will fail if this
+mediator is not properly probed or if the requested TEE is not supported by
+Xen.
+
+This parameter can be set to `optee` or `ffa` if the corresponding mediators
+are compiled in.
+
 ### tevt_mask
 > `= <integer>`
 
diff --git a/xen/arch/arm/include/asm/tee/tee.h b/xen/arch/arm/include/asm/tee/tee.h
index 0169fd746bcd..15d664e28dce 100644
--- a/xen/arch/arm/include/asm/tee/tee.h
+++ b/xen/arch/arm/include/asm/tee/tee.h
@@ -55,6 +55,9 @@ struct tee_mediator_desc {
     /* Printable name of the TEE. */
     const char *name;
 
+    /* Command line name of the TEE (to be used with tee= cmdline option) */
+    const char *cmdline_name;
+
     /* Mediator callbacks as described above. */
     const struct tee_mediator_ops *ops;
 
@@ -77,6 +80,7 @@ void tee_free_domain_ctx(struct domain *d);
 static const struct tee_mediator_desc __tee_desc_##_name __used     \
 __section(".teemediator.info") = {                                  \
     .name = _namestr,                                               \
+    .cmdline_name = #_name,                                         \
     .ops = _ops,                                                    \
     .tee_type = _type                                               \
 }
diff --git a/xen/arch/arm/tee/tee.c b/xen/arch/arm/tee/tee.c
index 3f65e45a7892..8501443c8e57 100644
--- a/xen/arch/arm/tee/tee.c
+++ b/xen/arch/arm/tee/tee.c
@@ -18,6 +18,7 @@
 
 #include <xen/errno.h>
 #include <xen/init.h>
+#include <xen/param.h>
 #include <xen/types.h>
 
 #include <asm/tee/tee.h>
@@ -25,6 +26,10 @@
 extern const struct tee_mediator_desc _steemediator[], _eteemediator[];
 static const struct tee_mediator_desc __read_mostly *cur_mediator;
 
+/* Select the TEE mediator using a name on command line. */
+static char __initdata opt_mediator[16] = "";
+string_param("tee", opt_mediator);
+
 /*
  * TODO: Add function to alter Dom0 DTB, so we can properly describe
  * present TEE.
@@ -80,15 +85,42 @@ uint16_t tee_get_type(void)
 static int __init tee_init(void)
 {
     const struct tee_mediator_desc *desc;
+    bool select_mediator = strcmp(opt_mediator, "");
+
+    if ( select_mediator )
+        printk(XENLOG_INFO "TEE Mediator %s selected from command line\n",
+               opt_mediator);
 
+    /*
+     * When a specific TEE is selected using the 'tee=' command line
+     * argument, we panic if the probe fails or if the requested TEE is not
+     * supported.
+     */
     for ( desc = _steemediator; desc != _eteemediator; desc++ )
     {
+        if ( select_mediator &&
+             strncmp(opt_mediator, desc->cmdline_name, sizeof(opt_mediator)) )
+            continue;
+
         if ( desc->ops->probe() )
         {
             printk(XENLOG_INFO "Using TEE mediator for %s\n", desc->name);
             cur_mediator = desc;
             return 0;
         }
+        else if ( select_mediator )
+        {
+            panic("TEE mediator %s from command line probe failed\n",
+                  opt_mediator);
+            return -EFAULT;
+        }
+    }
+
+    if ( select_mediator )
+    {
+        panic("TEE Mediator %s from command line not supported\n",
+              opt_mediator);
+        return -EINVAL;
     }
 
     return 0;
-- 
2.47.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 13:35:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 13:35:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077627.1438674 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulSgY-0003Zg-BA; Mon, 11 Aug 2025 13:35:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077627.1438674; Mon, 11 Aug 2025 13:35: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 1ulSgY-0003ZZ-6V; Mon, 11 Aug 2025 13:35:34 +0000
Received: by outflank-mailman (input) for mailman id 1077627;
 Mon, 11 Aug 2025 13:35:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6owi=2X=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1ulSgW-0002rn-Sj
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 13:35:32 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 0c852d79-76b8-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 15:35:30 +0200 (CEST)
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 E08022641;
 Mon, 11 Aug 2025 06:35:21 -0700 (PDT)
Received: from C3HXLD123V.arm.com (unknown [10.57.55.159])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id C992E3F63F;
 Mon, 11 Aug 2025 06:35: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>
X-Inumbo-ID: 0c852d79-76b8-11f0-b898-0df219b8e170
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Julien Grall <jgrall@amazon.com>
Subject: [PATCH v8 2/6] xen/arm: ffa: Rework partinfo_get implementation
Date: Mon, 11 Aug 2025 15:34:58 +0200
Message-ID: <f172763fa35c5b0d964d2a16d2740b24f2805741.1754899329.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.47.1
In-Reply-To: <cover.1754899329.git.bertrand.marquis@arm.com>
References: <cover.1754899329.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This patch is in preparation for VM to VM support in order to do the
changes on the SP handling part of partinfo_get before adding support
for the VM part.

This patches is doing the following changes:
- split partinfo_get into 3 functions to have the locking handling and
  proper exit on error handled more clearly
- add some potential overflow checks to validate the offset and sizes
  passed by the VM on partinfo call.
- Introduce a maximum number of SPs (for now set to 64) to prevent
  holding the CPU for too long in case there would be a lot of
  partitions in the secure world. The limit currently set is thought to
  be realistic for most use cases as 64 secure partitions is a very high
  number compared to current seen usage (more 3 or 4).
- fix include ordering in ffa_private.h to be in alphabetic order

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Acked-by: Julien Grall <jgrall@amazon.com>
---
Changes in v8:
- None
Changes in v7:
- add Julien A-b
Changes in v6:
- add missing empty line before ffa_handle_partition_info_get
- add Jens R-b
Changes in v5:
- patch added
---
 xen/arch/arm/tee/ffa_partinfo.c | 202 +++++++++++++++++++-------------
 xen/arch/arm/tee/ffa_private.h  |  18 ++-
 2 files changed, 132 insertions(+), 88 deletions(-)

diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_partinfo.c
index c0510ceb8338..dfa0b23eaf38 100644
--- a/xen/arch/arm/tee/ffa_partinfo.c
+++ b/xen/arch/arm/tee/ffa_partinfo.c
@@ -63,9 +63,96 @@ static int32_t ffa_partition_info_get(uint32_t *uuid, uint32_t flags,
     return ret;
 }
 
-void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
+static int32_t ffa_get_sp_count(uint32_t *uuid, uint32_t *sp_count)
+{
+    uint32_t src_size;
+
+    return ffa_partition_info_get(uuid, FFA_PARTITION_INFO_GET_COUNT_FLAG,
+                                  sp_count, &src_size);
+}
+
+static int32_t ffa_get_sp_partinfo(uint32_t *uuid, uint32_t *sp_count,
+                                   void *dst_buf, void *end_buf,
+                                   uint32_t dst_size)
 {
     int32_t ret;
+    uint32_t src_size, real_sp_count;
+    void *src_buf = ffa_rx;
+    uint32_t count = 0;
+
+    /* Do we have a RX buffer with the SPMC */
+    if ( !ffa_rx )
+        return FFA_RET_DENIED;
+
+    /* We need to use the RX buffer to receive the list */
+    spin_lock(&ffa_rx_buffer_lock);
+
+    ret = ffa_partition_info_get(uuid, 0, &real_sp_count, &src_size);
+    if ( ret )
+        goto out;
+
+    /* We now own the RX buffer */
+
+    /* Validate the src_size we got */
+    if ( src_size < sizeof(struct ffa_partition_info_1_0) ||
+         src_size >= FFA_PAGE_SIZE )
+    {
+        ret = FFA_RET_NOT_SUPPORTED;
+        goto out_release;
+    }
+
+    /*
+     * Limit the maximum time we hold the CPU by limiting the number of SPs.
+     * We just ignore the extra ones as this is tested during init in
+     * ffa_partinfo_init so the only possible reason is SP have been added
+     * since boot.
+     */
+    if ( real_sp_count > FFA_MAX_NUM_SP )
+        real_sp_count = FFA_MAX_NUM_SP;
+
+    /* Make sure the data fits in our buffer */
+    if ( real_sp_count > (FFA_RXTX_PAGE_COUNT * FFA_PAGE_SIZE) / src_size )
+    {
+        ret = FFA_RET_NOT_SUPPORTED;
+        goto out_release;
+    }
+
+    for ( uint32_t sp_num = 0; sp_num < real_sp_count; sp_num++ )
+    {
+        struct ffa_partition_info_1_1 *fpi = src_buf;
+
+        /* filter out SP not following bit 15 convention if any */
+        if ( FFA_ID_IS_SECURE(fpi->id) )
+        {
+            if ( dst_buf > (end_buf - dst_size) )
+            {
+                ret = FFA_RET_NO_MEMORY;
+                goto out_release;
+            }
+
+            memcpy(dst_buf, src_buf, MIN(src_size, dst_size));
+            if ( dst_size > src_size )
+                memset(dst_buf + src_size, 0, dst_size - src_size);
+
+            dst_buf += dst_size;
+            count++;
+        }
+
+        src_buf += src_size;
+    }
+
+    *sp_count = count;
+
+out_release:
+    ffa_hyp_rx_release();
+out:
+    spin_unlock(&ffa_rx_buffer_lock);
+    return ret;
+}
+
+void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
+{
+    int32_t ret = FFA_RET_OK;
     struct domain *d = current->domain;
     struct ffa_ctx *ctx = d->arch.tee;
     uint32_t flags = get_user_reg(regs, 5);
@@ -75,8 +162,8 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
         get_user_reg(regs, 3),
         get_user_reg(regs, 4),
     };
-    uint32_t src_size, dst_size;
-    void *dst_buf;
+    uint32_t dst_size = 0;
+    void *dst_buf, *end_buf;
     uint32_t ffa_sp_count = 0;
 
     /*
@@ -89,31 +176,26 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
     else
         dst_size = sizeof(struct ffa_partition_info_1_1);
 
-    /*
-     * FF-A v1.0 has w5 MBZ while v1.1 allows
-     * FFA_PARTITION_INFO_GET_COUNT_FLAG to be non-zero.
-     *
-     * FFA_PARTITION_INFO_GET_COUNT is only using registers and not the
-     * rxtx buffer so do the partition_info_get directly.
-     */
-    if ( flags == FFA_PARTITION_INFO_GET_COUNT_FLAG &&
-         ctx->guest_vers == FFA_VERSION_1_1 )
+    /* Only count requested */
+    if ( flags )
     {
+        /*
+         * FF-A v1.0 has w5 MBZ while v1.1 allows
+         * FFA_PARTITION_INFO_GET_COUNT_FLAG to be non-zero.
+         */
+        if ( ctx->guest_vers == FFA_VERSION_1_0 ||
+                flags != FFA_PARTITION_INFO_GET_COUNT_FLAG )
+        {
+            ret = FFA_RET_INVALID_PARAMETERS;
+            goto out;
+        }
+
         if ( ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) )
-            ret = ffa_partition_info_get(uuid, flags, &ffa_sp_count,
-                                        &src_size);
-        else
-            ret = FFA_RET_OK;
+            ret = ffa_get_sp_count(uuid, &ffa_sp_count);
 
         goto out;
     }
 
-    if ( flags )
-    {
-        ret = FFA_RET_INVALID_PARAMETERS;
-        goto out;
-    }
-
     if ( !ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) )
     {
         /* Just give an empty partition list to the caller */
@@ -121,80 +203,33 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
         goto out;
     }
 
+    /* Get the RX buffer to write the list of partitions */
     ret = ffa_rx_acquire(d);
     if ( ret != FFA_RET_OK )
         goto out;
 
     dst_buf = ctx->rx;
+    end_buf = ctx->rx + ctx->page_count * FFA_PAGE_SIZE;
 
-    if ( !ffa_rx )
-    {
-        ret = FFA_RET_DENIED;
-        goto out_rx_release;
-    }
-
-    spin_lock(&ffa_rx_buffer_lock);
-
-    ret = ffa_partition_info_get(uuid, 0, &ffa_sp_count, &src_size);
-
-    if ( ret )
-        goto out_rx_hyp_unlock;
+    /* An entry should be smaller than a page */
+    BUILD_BUG_ON(sizeof(struct ffa_partition_info_1_1) > FFA_PAGE_SIZE);
 
     /*
-     * ffa_partition_info_get() succeeded so we now own the RX buffer we
-     * share with the SPMC. We must give it back using ffa_hyp_rx_release()
-     * once we've copied the content.
+     * Check for overflow and that we can at least store one entry.
+     * page_count cannot be 0 so we have at least one page.
      */
-
-    /* we cannot have a size smaller than 1.0 structure */
-    if ( src_size < sizeof(struct ffa_partition_info_1_0) )
-    {
-        ret = FFA_RET_NOT_SUPPORTED;
-        goto out_rx_hyp_release;
-    }
-
-    if ( ctx->page_count * FFA_PAGE_SIZE < ffa_sp_count * dst_size )
+    if ( dst_buf >= end_buf || dst_buf > (end_buf - dst_size) )
     {
-        ret = FFA_RET_NO_MEMORY;
-        goto out_rx_hyp_release;
+        ret = FFA_RET_INVALID_PARAMETERS;
+        goto out_rx_release;
     }
 
-    if ( ffa_sp_count > 0 )
-    {
-        uint32_t n, n_limit = ffa_sp_count;
-        void *src_buf = ffa_rx;
-
-        /* copy the secure partitions info */
-        for ( n = 0; n < n_limit; n++ )
-        {
-            struct ffa_partition_info_1_1 *fpi = src_buf;
-
-            /* filter out SP not following bit 15 convention if any */
-            if ( FFA_ID_IS_SECURE(fpi->id) )
-            {
-                memcpy(dst_buf, src_buf, dst_size);
-                dst_buf += dst_size;
-            }
-            else
-                ffa_sp_count--;
+    ret = ffa_get_sp_partinfo(uuid, &ffa_sp_count, dst_buf, end_buf,
+                              dst_size);
 
-            src_buf += src_size;
-        }
-    }
 
-out_rx_hyp_release:
-    ffa_hyp_rx_release();
-out_rx_hyp_unlock:
-    spin_unlock(&ffa_rx_buffer_lock);
 out_rx_release:
-    /*
-     * The calling VM RX buffer only contains data to be used by the VM if the
-     * call was successful, in which case the VM has to release the buffer
-     * once it has used the data.
-     * If something went wrong during the call, we have to release the RX
-     * buffer back to the SPMC as the VM will not do it.
-     */
-    if ( ret != FFA_RET_OK )
+    if ( ret )
         ffa_rx_release(d);
 out:
     if ( ret )
@@ -353,9 +388,10 @@ bool ffa_partinfo_init(void)
         goto out;
     }
 
-    if ( count >= UINT16_MAX )
+    if ( count >= FFA_MAX_NUM_SP )
     {
-        printk(XENLOG_ERR "ffa: Impossible number of SPs: %u\n", count);
+        printk(XENLOG_ERR "ffa: More SPs than the maximum supported: %u - %u\n",
+               count, FFA_MAX_NUM_SP);
         goto out;
     }
 
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index c4cd65538908..0a9c1082db28 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -6,15 +6,15 @@
 #ifndef __FFA_PRIVATE_H__
 #define __FFA_PRIVATE_H__
 
+#include <xen/bitmap.h>
 #include <xen/const.h>
-#include <xen/sizes.h>
-#include <xen/types.h>
-#include <xen/mm.h>
 #include <xen/list.h>
-#include <xen/spinlock.h>
+#include <xen/mm.h>
 #include <xen/sched.h>
+#include <xen/sizes.h>
+#include <xen/spinlock.h>
 #include <xen/time.h>
-#include <xen/bitmap.h>
+#include <xen/types.h>
 
 /* Error codes */
 #define FFA_RET_OK                      0
@@ -108,6 +108,14 @@
  */
 #define FFA_CTX_TEARDOWN_DELAY          SECONDS(1)
 
+/*
+ * The maximum number of Secure partitions we support for partinfo_get.
+ * This prevents holding the CPU during potentially to long time during
+ * a partinfo_get call. Value choosen seems realistic for any configuration
+ * but can be incremented here if needed.
+ */
+#define FFA_MAX_NUM_SP                  64
+
 /*
  * We rely on the convention suggested but not mandated by the FF-A
  * specification that secure world endpoint identifiers have the bit 15
-- 
2.47.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 13:35:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 13:35:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077628.1438683 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulSgZ-0003oJ-Hn; Mon, 11 Aug 2025 13:35:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077628.1438683; Mon, 11 Aug 2025 13: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 1ulSgZ-0003o9-EB; Mon, 11 Aug 2025 13:35:35 +0000
Received: by outflank-mailman (input) for mailman id 1077628;
 Mon, 11 Aug 2025 13:35:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6owi=2X=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1ulSgY-0003IJ-DZ
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 13:35:34 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 0e54fd77-76b8-11f0-a325-13f23c93f187;
 Mon, 11 Aug 2025 15:35:33 +0200 (CEST)
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 EF0EA2641;
 Mon, 11 Aug 2025 06:35:24 -0700 (PDT)
Received: from C3HXLD123V.arm.com (unknown [10.57.55.159])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id D49253F63F;
 Mon, 11 Aug 2025 06: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>
X-Inumbo-ID: 0e54fd77-76b8-11f0-a325-13f23c93f187
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Julien Grall <jgrall@amazon.com>
Subject: [PATCH v8 4/6] xen/arm: ffa: Add buffer full notification support
Date: Mon, 11 Aug 2025 15:35:00 +0200
Message-ID: <67db91dfbde26dd777b1575dda9bc83b0a676193.1754899329.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.47.1
In-Reply-To: <cover.1754899329.git.bertrand.marquis@arm.com>
References: <cover.1754899329.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add support to raise a Rx buffer full notification to a VM.
This function will be used for indirect message support between VM and
is only activated if CONFIG_FFA_VM_TO_VM is selected.

Even if there are 32 framework notifications possible, right now only
one is defined so the implementation is simplified to only handle the
buffer full notification using a boolean. If other framework
notifications have to be supported one day, the design will have to be
modified to handle it properly.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Acked-by: Julien Grall <jgrall@amazon.com>
---
Changes in v8:
- None
Changes in v7:
- Add Julien A-b
Changes in v6:
- None
Changes in v5:
- None
Changes in v4:
- Add Jens R-b
Changes in v3:
- introduce a vm_pending boolean to track if VM notifications are
  pending and allow to decorelate pending secure notifications from
  pending vm ones
- remove ifdef around boolean entries for notifications and make use of
  IS_ENABLED instead of ifdefs when possible
- Fix notification number signaled to VMs for buffer full to use the
  proper GUEST_FFA_NOTIF_PEND_INTR_ID instead of the identifier received
  from the SPMC.
- Move back into this patch ffa_private.h part which was wrongly in the
  patch for indirect messages between VM
Changes in v2:
- Switch ifdef to IS_ENABLED when possible
---
 xen/arch/arm/tee/ffa_notif.c   | 36 ++++++++++++++++++++++++++++------
 xen/arch/arm/tee/ffa_private.h | 23 +++++++++++++++++++++-
 2 files changed, 52 insertions(+), 7 deletions(-)

diff --git a/xen/arch/arm/tee/ffa_notif.c b/xen/arch/arm/tee/ffa_notif.c
index 00efaf8f7353..f6df2f15bb00 100644
--- a/xen/arch/arm/tee/ffa_notif.c
+++ b/xen/arch/arm/tee/ffa_notif.c
@@ -69,6 +69,7 @@ void ffa_handle_notification_info_get(struct cpu_user_regs *regs)
 {
     struct domain *d = current->domain;
     struct ffa_ctx *ctx = d->arch.tee;
+    bool notif_pending;
 
     if ( !notif_enabled )
     {
@@ -76,7 +77,11 @@ void ffa_handle_notification_info_get(struct cpu_user_regs *regs)
         return;
     }
 
-    if ( test_and_clear_bool(ctx->notif.secure_pending) )
+    notif_pending = test_and_clear_bool(ctx->notif.secure_pending);
+    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
+        notif_pending |= test_and_clear_bool(ctx->notif.vm_pending);
+
+    if ( notif_pending )
     {
         /* A pending global notification for the guest */
         ffa_set_regs(regs, FFA_SUCCESS_64, 0,
@@ -93,6 +98,7 @@ void ffa_handle_notification_info_get(struct cpu_user_regs *regs)
 void ffa_handle_notification_get(struct cpu_user_regs *regs)
 {
     struct domain *d = current->domain;
+    struct ffa_ctx *ctx = d->arch.tee;
     uint32_t recv = get_user_reg(regs, 1);
     uint32_t flags = get_user_reg(regs, 2);
     uint32_t w2 = 0;
@@ -132,11 +138,7 @@ void ffa_handle_notification_get(struct cpu_user_regs *regs)
          */
         if ( ( flags  & FFA_NOTIF_FLAG_BITMAP_SP ) &&
              ( flags & FFA_NOTIF_FLAG_BITMAP_SPM ) )
-        {
-                struct ffa_ctx *ctx = d->arch.tee;
-
-                ACCESS_ONCE(ctx->notif.secure_pending) = false;
-        }
+            ACCESS_ONCE(ctx->notif.secure_pending) = false;
 
         arm_smccc_1_2_smc(&arg, &resp);
         e = ffa_get_ret_code(&resp);
@@ -156,6 +158,14 @@ void ffa_handle_notification_get(struct cpu_user_regs *regs)
             w6 = resp.a6;
     }
 
+    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) &&
+          flags & FFA_NOTIF_FLAG_BITMAP_HYP &&
+          test_and_clear_bool(ctx->notif.buff_full_pending) )
+    {
+        ACCESS_ONCE(ctx->notif.vm_pending) = false;
+        w7 = FFA_NOTIF_RX_BUFFER_FULL;
+    }
+
     ffa_set_regs(regs, FFA_SUCCESS_32, 0, w2, w3, w4, w5, w6, w7);
 }
 
@@ -178,6 +188,20 @@ int ffa_handle_notification_set(struct cpu_user_regs *regs)
                            bitmap_hi);
 }
 
+#ifdef CONFIG_FFA_VM_TO_VM
+void ffa_raise_rx_buffer_full(struct domain *d)
+{
+    struct ffa_ctx *ctx = d->arch.tee;
+
+    if ( !ctx )
+        return;
+
+    ACCESS_ONCE(ctx->notif.buff_full_pending) = true;
+    if ( !test_and_set_bool(ctx->notif.vm_pending) )
+        vgic_inject_irq(d, d->vcpu[0], GUEST_FFA_NOTIF_PEND_INTR_ID, true);
+}
+#endif
+
 /*
  * Extract a 16-bit ID (index n) from the successful return value from
  * FFA_NOTIFICATION_INFO_GET_64 or FFA_NOTIFICATION_INFO_GET_32. IDs are
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index 5cb2b5171419..6dbdb200d840 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -218,6 +218,8 @@
 #define FFA_NOTIF_INFO_GET_ID_COUNT_SHIFT   7
 #define FFA_NOTIF_INFO_GET_ID_COUNT_MASK    0x1F
 
+#define FFA_NOTIF_RX_BUFFER_FULL        BIT(0, U)
+
 /* Feature IDs used with FFA_FEATURES */
 #define FFA_FEATURE_NOTIF_PEND_INTR     0x1U
 #define FFA_FEATURE_SCHEDULE_RECV_INTR  0x2U
@@ -303,9 +305,20 @@ struct ffa_mem_region {
 struct ffa_ctx_notif {
     /*
      * True if domain is reported by FFA_NOTIFICATION_INFO_GET to have
-     * pending global notifications.
+     * pending notifications from the secure world.
      */
     bool secure_pending;
+
+    /*
+     * True if domain is reported by FFA_NOTIFICATION_INFO_GET to have
+     * pending notifications from VMs (including framework ones).
+     */
+    bool vm_pending;
+
+    /*
+     * True if domain has buffer full notification pending
+     */
+    bool buff_full_pending;
 };
 
 struct ffa_ctx {
@@ -419,6 +432,14 @@ void ffa_handle_notification_info_get(struct cpu_user_regs *regs);
 void ffa_handle_notification_get(struct cpu_user_regs *regs);
 int ffa_handle_notification_set(struct cpu_user_regs *regs);
 
+#ifdef CONFIG_FFA_VM_TO_VM
+void ffa_raise_rx_buffer_full(struct domain *d);
+#else
+static inline void ffa_raise_rx_buffer_full(struct domain *d)
+{
+}
+#endif
+
 void ffa_handle_msg_send_direct_req(struct cpu_user_regs *regs, uint32_t fid);
 int32_t ffa_handle_msg_send2(struct cpu_user_regs *regs);
 
-- 
2.47.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 13:35:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 13:35:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077629.1438689 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulSgZ-0003ry-Tu; Mon, 11 Aug 2025 13:35:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077629.1438689; Mon, 11 Aug 2025 13: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 1ulSgZ-0003rE-Ma; Mon, 11 Aug 2025 13:35:35 +0000
Received: by outflank-mailman (input) for mailman id 1077629;
 Mon, 11 Aug 2025 13:35:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6owi=2X=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1ulSgY-0002rn-D3
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 13:35:34 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 0d6d1958-76b8-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 15:35:32 +0200 (CEST)
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 6B223150C;
 Mon, 11 Aug 2025 06:35:23 -0700 (PDT)
Received: from C3HXLD123V.arm.com (unknown [10.57.55.159])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 57E0A3F63F;
 Mon, 11 Aug 2025 06:35: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>
X-Inumbo-ID: 0d6d1958-76b8-11f0-b898-0df219b8e170
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Julien Grall <jgrall@amazon.com>
Subject: [PATCH v8 3/6] xen/arm: ffa: Introduce VM to VM support
Date: Mon, 11 Aug 2025 15:34:59 +0200
Message-ID: <12f24629ed75b638d9307cc549ecde46d225c5c1.1754899329.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.47.1
In-Reply-To: <cover.1754899329.git.bertrand.marquis@arm.com>
References: <cover.1754899329.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Create a CONFIG_FFA_VM_TO_VM parameter to activate FFA communication
between VMs.
When activated list VMs in the system with FF-A support in part_info_get.

When VM to VM is activated, Xen will be tainted as Insecure and a
message is displayed to the user during the boot as there is no
filtering of VMs in FF-A so any VM can communicate or see any other VM
in the system.

WARNING: There is no filtering for now and all VMs are listed !!

This patch is reorganizing the ffa_ctx structure to make clear which
lock is protecting what parts.

This patch is introducing a chain list of the ffa_ctx with a FFA Version
negotiated allowing to create the partinfo results for VMs in parallel
by using rwlock which only ensure addition/removal of entries are
protected.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Acked-by: Julien Grall <jgrall@amazon.com>
---
Changes in v8;
- fix typo: negociat.. to negotiat..
- use LIST_HEAD and DEFINE_RWLOCK for declarations (Julien)
- add Jens R-b
- add Julien A-b
Changes in v7:
- protect ffa_ctx list with a rw lock to allow several partinfo_get in
  parallel but protect adding/removing entries.
Changes in v6:
- remove ACCESS_ONCE for guest_vers access and take the context lock
  before modifying it
- move guest_vers in context declaration to fields protected by the
  context lock and add a comment to state that lock in only needed when
  modifying it
Changes in v5:
- remove invalid comment about 1.1 firmware support
- rename variables from d and dom to curr_d and dest_d (Julien)
- add a TODO in the code for potential holding for long of the CPU
  (Julien)
- use an atomic global variable to store the number of VMs instead of
  recomputing the value each time (Julien)
- add partinfo information in ffa_ctx (id, cpus and 64bit) and create a
  chain list of ctx. Use this chain list to create the partinfo result
  without holding a global lock to prevent concurrency issues.
- Move some changes in a preparation patch modifying partinfo for sps to
  reduce this patch size and make the review easier
Changes in v4:
- properly handle SPMC version 1.0 header size case in partinfo_get
- switch to local counting variables instead of *pointer += 1 form
- coding style issue with missing spaces in if ()
Changes in v3:
- break partinfo_get in several sub functions to make the implementation
  easier to understand and lock handling easier
- rework implementation to check size along the way and prevent previous
  implementation limits which had to check that the number of VMs or SPs
  did not change
- taint Xen as INSECURE when VM to VM is enabled
Changes in v2:
- Switch ifdef to IS_ENABLED
- dom was not switched to d as requested by Jan because there is already
  a variable d pointing to the current domain and it must not be
  shadowed.
---
 xen/arch/arm/tee/Kconfig        |  11 +++
 xen/arch/arm/tee/ffa.c          |  49 ++++++++++++-
 xen/arch/arm/tee/ffa_partinfo.c | 100 ++++++++++++++++++++++++---
 xen/arch/arm/tee/ffa_private.h  | 117 ++++++++++++++++++++++++++------
 4 files changed, 245 insertions(+), 32 deletions(-)

diff --git a/xen/arch/arm/tee/Kconfig b/xen/arch/arm/tee/Kconfig
index c5b0f88d7522..88a4c4c99154 100644
--- a/xen/arch/arm/tee/Kconfig
+++ b/xen/arch/arm/tee/Kconfig
@@ -28,5 +28,16 @@ config FFA
 
 	  [1] https://developer.arm.com/documentation/den0077/latest
 
+config FFA_VM_TO_VM
+    bool "Enable FF-A between VMs (UNSUPPORTED)" if UNSUPPORTED
+    default n
+    depends on FFA
+    help
+      This option enables to use FF-A between VMs.
+      This is experimental and there is no access control so any
+      guest can communicate with any other guest.
+
+      If unsure, say N.
+
 endmenu
 
diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 3bbdd7168a6b..0eb6a0bda5fb 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -118,10 +118,18 @@ void *ffa_tx __read_mostly;
 DEFINE_SPINLOCK(ffa_rx_buffer_lock);
 DEFINE_SPINLOCK(ffa_tx_buffer_lock);
 
+LIST_HEAD(ffa_ctx_head);
+/* RW Lock to protect addition/removal and reading in ffa_ctx_head */
+DEFINE_RWLOCK(ffa_ctx_list_rwlock);
+
+#ifdef CONFIG_FFA_VM_TO_VM
+atomic_t ffa_vm_count;
+#endif
 
 /* Used to track domains that could not be torn down immediately. */
 static struct timer ffa_teardown_timer;
-static struct list_head ffa_teardown_head;
+
+static LIST_HEAD(ffa_teardown_head);
 static DEFINE_SPINLOCK(ffa_teardown_lock);
 
 static bool ffa_get_version(uint32_t *vers)
@@ -151,6 +159,7 @@ static void handle_version(struct cpu_user_regs *regs)
     struct domain *d = current->domain;
     struct ffa_ctx *ctx = d->arch.tee;
     uint32_t vers = get_user_reg(regs, 1);
+    uint32_t old_vers;
 
     /*
      * Guest will use the version it requested if it is our major and minor
@@ -160,10 +169,23 @@ static void handle_version(struct cpu_user_regs *regs)
      */
     if ( FFA_VERSION_MAJOR(vers) == FFA_MY_VERSION_MAJOR )
     {
+        spin_lock(&ctx->lock);
+        old_vers = ctx->guest_vers;
+
         if ( FFA_VERSION_MINOR(vers) > FFA_MY_VERSION_MINOR )
             ctx->guest_vers = FFA_MY_VERSION;
         else
             ctx->guest_vers = vers;
+        spin_unlock(&ctx->lock);
+
+        if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) && !old_vers )
+        {
+            /* One more VM with FF-A support available */
+            inc_ffa_vm_count();
+            write_lock(&ffa_ctx_list_rwlock);
+            list_add_tail(&ctx->ctx_list, &ffa_ctx_head);
+            write_unlock(&ffa_ctx_list_rwlock);
+        }
     }
     ffa_set_regs(regs, FFA_MY_VERSION, 0, 0, 0, 0, 0, 0, 0);
 }
@@ -345,6 +367,10 @@ static int ffa_domain_init(struct domain *d)
     ctx->teardown_d = d;
     INIT_LIST_HEAD(&ctx->shm_list);
 
+    ctx->ffa_id = ffa_get_vm_id(d);
+    ctx->num_vcpus = d->max_vcpus;
+    ctx->is_64bit = is_64bit_domain(d);
+
     /*
      * ffa_domain_teardown() will be called if ffa_domain_init() returns an
      * error, so no need for cleanup in this function.
@@ -421,6 +447,14 @@ static int ffa_domain_teardown(struct domain *d)
     if ( !ctx )
         return 0;
 
+    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) && ctx->guest_vers )
+    {
+        dec_ffa_vm_count();
+        write_lock(&ffa_ctx_list_rwlock);
+        list_del(&ctx->ctx_list);
+        write_unlock(&ffa_ctx_list_rwlock);
+    }
+
     ffa_rxtx_domain_destroy(d);
     ffa_notif_domain_destroy(d);
 
@@ -464,6 +498,18 @@ static bool ffa_probe(void)
     printk(XENLOG_INFO "ARM FF-A Mediator version %u.%u\n",
            FFA_MY_VERSION_MAJOR, FFA_MY_VERSION_MINOR);
 
+    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
+    {
+        /*
+         * When FFA VM to VM is enabled, the current implementation does not
+         * offer any way to limit which VM can communicate with which VM using
+         * FF-A.
+         * Signal this in the xen console and taint the system as insecure.
+         * TODO: Introduce a solution to limit what a VM can do through FFA.
+         */
+        printk(XENLOG_ERR "ffa: VM to VM is enabled, system is insecure !!\n");
+        add_taint(TAINT_MACHINE_INSECURE);
+    }
     /*
      * psci_init_smccc() updates this value with what's reported by EL-3
      * or secure world.
@@ -537,7 +583,6 @@ static bool ffa_probe(void)
         goto err_rxtx_destroy;
 
     ffa_notif_init();
-    INIT_LIST_HEAD(&ffa_teardown_head);
     init_timer(&ffa_teardown_timer, ffa_teardown_timer_callback, NULL, 0);
 
     return true;
diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_partinfo.c
index dfa0b23eaf38..fa56b1587e3b 100644
--- a/xen/arch/arm/tee/ffa_partinfo.c
+++ b/xen/arch/arm/tee/ffa_partinfo.c
@@ -150,6 +150,73 @@ out:
     return ret;
 }
 
+static int32_t ffa_get_vm_partinfo(uint32_t *vm_count, void *dst_buf,
+                                   void *end_buf, uint32_t dst_size)
+{
+    struct ffa_ctx *curr_ctx = current->domain->arch.tee;
+    struct ffa_ctx *dest_ctx;
+    uint32_t count = 0;
+    int32_t ret = FFA_RET_OK;
+
+    /*
+     * There could potentially be a lot of VMs in the system and we could
+     * hold the CPU for long here.
+     * Right now there is no solution in FF-A specification to split
+     * the work in this case.
+     * TODO: Check how we could delay the work or have preemption checks.
+     */
+    read_lock(&ffa_ctx_list_rwlock);
+    list_for_each_entry(dest_ctx, &ffa_ctx_head, ctx_list)
+    {
+        /*
+         * Do not include an entry for the caller VM as the spec is not
+         * clearly mandating it and it is not supported by Linux.
+         */
+        if ( dest_ctx != curr_ctx )
+        {
+            /*
+             * We do not have UUID info for VMs so use
+             * the 1.0 structure so that we set UUIDs to
+             * zero using memset
+             */
+            struct ffa_partition_info_1_0 info;
+
+            if  ( dst_buf > (end_buf - dst_size) )
+            {
+                ret = FFA_RET_NO_MEMORY;
+                goto out;
+            }
+
+            /*
+             * Context might has been removed since we go it or being removed
+             * right now so we might return information for a VM not existing
+             * anymore. This is acceptable as we return a view of the system
+             * which could change at any time.
+             */
+            info.id = dest_ctx->ffa_id;
+            info.execution_context = dest_ctx->num_vcpus;
+            info.partition_properties = FFA_PART_VM_PROP;
+            if ( dest_ctx->is_64bit )
+                info.partition_properties |= FFA_PART_PROP_AARCH64_STATE;
+
+            memcpy(dst_buf, &info, MIN(sizeof(info), dst_size));
+
+            if ( dst_size > sizeof(info) )
+                memset(dst_buf + sizeof(info), 0,
+                       dst_size - sizeof(info));
+
+            dst_buf += dst_size;
+            count++;
+        }
+    }
+    *vm_count = count;
+
+out:
+    read_unlock(&ffa_ctx_list_rwlock);
+
+    return ret;
+}
+
 void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
 {
     int32_t ret = FFA_RET_OK;
@@ -164,7 +231,7 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
     };
     uint32_t dst_size = 0;
     void *dst_buf, *end_buf;
-    uint32_t ffa_sp_count = 0;
+    uint32_t ffa_vm_count = 0, ffa_sp_count = 0;
 
     /*
      * If the guest is v1.0, he does not get back the entry size so we must
@@ -191,15 +258,18 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
         }
 
         if ( ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) )
+        {
             ret = ffa_get_sp_count(uuid, &ffa_sp_count);
+            if ( ret )
+                goto out;
+        }
 
-        goto out;
-    }
+        /*
+         * Do not count the caller VM as the spec is not clearly mandating it
+         * and it is not supported by Linux.
+         */
+        ffa_vm_count = get_ffa_vm_count() - 1;
 
-    if ( !ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) )
-    {
-        /* Just give an empty partition list to the caller */
-        ret = FFA_RET_OK;
         goto out;
     }
 
@@ -224,9 +294,19 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
         goto out_rx_release;
     }
 
-    ret = ffa_get_sp_partinfo(uuid, &ffa_sp_count, dst_buf, end_buf,
-                              dst_size);
+    if ( ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) )
+    {
+        ret = ffa_get_sp_partinfo(uuid, &ffa_sp_count, dst_buf, end_buf,
+                                  dst_size);
+
+        if ( ret )
+            goto out_rx_release;
+
+        dst_buf += ffa_sp_count * dst_size;
+    }
 
+    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
+        ret = ffa_get_vm_partinfo(&ffa_vm_count, dst_buf, end_buf, dst_size);
 
 out_rx_release:
     if ( ret )
@@ -235,7 +315,7 @@ out:
     if ( ret )
         ffa_set_regs_error(regs, ret);
     else
-        ffa_set_regs_success(regs, ffa_sp_count, dst_size);
+        ffa_set_regs_success(regs, ffa_sp_count + ffa_vm_count, dst_size);
 }
 
 static int32_t ffa_direct_req_send_vm(uint16_t sp_id, uint16_t vm_id,
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index 0a9c1082db28..5cb2b5171419 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -195,6 +195,18 @@
  */
 #define FFA_PARTITION_INFO_GET_COUNT_FLAG BIT(0, U)
 
+/*
+ * Partition properties we give for a normal world VM:
+ * - can send direct message but not receive them
+ * - can handle indirect messages
+ * - can receive notifications
+ * 32/64 bit flag is set depending on the VM
+ */
+#define FFA_PART_VM_PROP    (FFA_PART_PROP_DIRECT_REQ_SEND | \
+                             FFA_PART_PROP_INDIRECT_MSGS | \
+                             FFA_PART_PROP_RECV_NOTIF | \
+                             FFA_PART_PROP_IS_PE_ID)
+
 /* Flags used in calls to FFA_NOTIFICATION_GET interface  */
 #define FFA_NOTIF_FLAG_BITMAP_SP        BIT(0, U)
 #define FFA_NOTIF_FLAG_BITMAP_VM        BIT(1, U)
@@ -297,36 +309,72 @@ struct ffa_ctx_notif {
 };
 
 struct ffa_ctx {
-    void *rx;
-    const void *tx;
-    struct page_info *rx_pg;
-    struct page_info *tx_pg;
+    /*
+     * Chain list of all FF-A contexts.
+     * As we might have several read from the list of context through parallel
+     * partinfo_get but fewer additions/removal as those happen only during a
+     * version negotiation or guest shutdown, access to this list is protected
+     * through a rwlock (addition/removal with write lock, reading through a
+     * read lock).
+     */
+    struct list_head ctx_list; /* chain list of all FF-A contexts */
+
+    /*
+     * Data access unlocked (mainly for part_info_get in VM to VM).
+     * Those should be set before the ctx is added in the list.
+     */
+    /* FF-A Endpoint ID */
+    uint16_t ffa_id;
+    uint16_t num_vcpus;
+    bool is_64bit;
+
+    /*
+     * Global data accessed atomically or using ACCES_ONCE.
+     */
+    struct ffa_ctx_notif notif;
+
+    /*
+     * Global data accessed with lock locked.
+     */
+    spinlock_t lock;
+    /*
+     * FF-A version negotiated by the guest, only modifications to
+     * this field are done with the lock held as this is expected to
+     * be done once at init by a guest.
+     */
+    uint32_t guest_vers;
     /* Number of 4kB pages in each of rx/rx_pg and tx/tx_pg */
     unsigned int page_count;
-    /* FF-A version used by the guest */
-    uint32_t guest_vers;
-    bool rx_is_free;
-    /* Used shared memory objects, struct ffa_shm_mem */
-    struct list_head shm_list;
     /* Number of allocated shared memory object */
     unsigned int shm_count;
-    struct ffa_ctx_notif notif;
+    /* Used shared memory objects, struct ffa_shm_mem */
+    struct list_head shm_list;
+
     /*
-     * tx_lock is used to serialize access to tx
-     * rx_lock is used to serialize access to rx_is_free
-     * lock is used for the rest in this struct
+     * Rx buffer, accessed with rx_lock locked.
+     * rx_is_free is used to serialize access.
      */
-    spinlock_t tx_lock;
     spinlock_t rx_lock;
-    spinlock_t lock;
-    /* Used if domain can't be torn down immediately */
+    bool rx_is_free;
+    void *rx;
+    struct page_info *rx_pg;
+
+    /*
+     * Tx buffer, access with tx_lock locked.
+     */
+    spinlock_t tx_lock;
+    const void *tx;
+    struct page_info *tx_pg;
+
+
+    /*
+     * Domain teardown handling if data shared or used by other domains
+     * do not allow to teardown the domain immediately.
+     */
     struct domain *teardown_d;
     struct list_head teardown_list;
     s_time_t teardown_expire;
-    /*
-     * Used for ffa_domain_teardown() to keep track of which SPs should be
-     * notified that this guest is being destroyed.
-     */
+    /* Keep track of SPs that should be notified of VM destruction */
     unsigned long *vm_destroy_bitmap;
 };
 
@@ -336,6 +384,12 @@ extern spinlock_t ffa_rx_buffer_lock;
 extern spinlock_t ffa_tx_buffer_lock;
 extern DECLARE_BITMAP(ffa_fw_abi_supported, FFA_ABI_BITMAP_SIZE);
 
+extern struct list_head ffa_ctx_head;
+extern rwlock_t ffa_ctx_list_rwlock;
+#ifdef CONFIG_FFA_VM_TO_VM
+extern atomic_t ffa_vm_count;
+#endif
+
 bool ffa_shm_domain_destroy(struct domain *d);
 void ffa_handle_mem_share(struct cpu_user_regs *regs);
 int ffa_handle_mem_reclaim(uint64_t handle, uint32_t flags);
@@ -368,6 +422,29 @@ int ffa_handle_notification_set(struct cpu_user_regs *regs);
 void ffa_handle_msg_send_direct_req(struct cpu_user_regs *regs, uint32_t fid);
 int32_t ffa_handle_msg_send2(struct cpu_user_regs *regs);
 
+#ifdef CONFIG_FFA_VM_TO_VM
+static inline uint16_t get_ffa_vm_count(void)
+{
+    return atomic_read(&ffa_vm_count);
+}
+
+static inline void inc_ffa_vm_count(void)
+{
+    atomic_inc(&ffa_vm_count);
+}
+
+static inline void dec_ffa_vm_count(void)
+{
+    ASSERT(atomic_read(&ffa_vm_count) > 0);
+    atomic_dec(&ffa_vm_count);
+}
+#else
+/* Only count the caller VM */
+#define get_ffa_vm_count()  ((uint16_t)1UL)
+#define inc_ffa_vm_count()  do {} while(0)
+#define dec_ffa_vm_count()  do {} while(0)
+#endif
+
 static inline uint16_t ffa_get_vm_id(const struct domain *d)
 {
     /* +1 since 0 is reserved for the hypervisor in FF-A */
-- 
2.47.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 13:35:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 13:35:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077631.1438703 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulSgc-0004L5-Aj; Mon, 11 Aug 2025 13:35:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077631.1438703; Mon, 11 Aug 2025 13:35: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 1ulSgc-0004Kw-7R; Mon, 11 Aug 2025 13:35:38 +0000
Received: by outflank-mailman (input) for mailman id 1077631;
 Mon, 11 Aug 2025 13:35:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6owi=2X=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1ulSgb-0002rn-J8
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 13:35:37 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 0f46d7bc-76b8-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 15:35:35 +0200 (CEST)
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 863E92661;
 Mon, 11 Aug 2025 06:35:26 -0700 (PDT)
Received: from C3HXLD123V.arm.com (unknown [10.57.55.159])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 668533F63F;
 Mon, 11 Aug 2025 06:35: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>
X-Inumbo-ID: 0f46d7bc-76b8-11f0-b898-0df219b8e170
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Julien Grall <jgrall@amazon.com>
Subject: [PATCH v8 5/6] xen/arm: ffa: Add indirect message between VM
Date: Mon, 11 Aug 2025 15:35:01 +0200
Message-ID: <af08e871b9db21a78d79374505c9e180e80cd2c0.1754899329.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.47.1
In-Reply-To: <cover.1754899329.git.bertrand.marquis@arm.com>
References: <cover.1754899329.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add support for indirect messages between VMs.
This is only enabled if CONFIG_FFA_VM_TO_VM is selected.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Acked-by: Julien Grall <jgrall@amazon.com>
---
Change in v8:
- Add Julien A-b
Changes in v7:
- None
Changes in v6:
- fix code alignment (Jens)
- add Jens R-b
Changes in v5:
- Prevent potential overflow in send2 handling (Julien)
- Only use page_count with rx lock acquired
- Fix an issue where send2 between VMs was not doing the copy from the
  tx buffer but from a wrong location in the stack. This bug was
  introduced in v4 when switching to a local copy for the header.
Changes in v4:
- Use a local copy of the message header to prevent a TOC/TOU possible
  issue when using the payload size
Changes in v3:
- Move vm to vm indirect message handling in a sub function to simplify
  lock handling and make implementation easier to read
Changes in v2:
- Switch ifdef to IS_ENABLED
---
 xen/arch/arm/tee/ffa_msg.c | 117 ++++++++++++++++++++++++++++++++-----
 1 file changed, 102 insertions(+), 15 deletions(-)

diff --git a/xen/arch/arm/tee/ffa_msg.c b/xen/arch/arm/tee/ffa_msg.c
index ee594e737fc7..c20c5bec0f76 100644
--- a/xen/arch/arm/tee/ffa_msg.c
+++ b/xen/arch/arm/tee/ffa_msg.c
@@ -88,43 +88,130 @@ out:
                  resp.a7 & mask);
 }
 
+static int32_t ffa_msg_send2_vm(uint16_t dst_id, const void *src_buf,
+                                struct ffa_part_msg_rxtx *src_msg)
+{
+    struct domain *dst_d;
+    struct ffa_ctx *dst_ctx;
+    struct ffa_part_msg_rxtx *dst_msg;
+    int err;
+    int32_t ret;
+
+    if ( dst_id == 0 )
+        /* FF-A ID 0 is the hypervisor, this is not valid */
+        return FFA_RET_INVALID_PARAMETERS;
+
+    /* This is also checking that dest is not src */
+    err = rcu_lock_live_remote_domain_by_id(dst_id - 1, &dst_d);
+    if ( err )
+        return FFA_RET_INVALID_PARAMETERS;
+
+    if ( dst_d->arch.tee == NULL )
+    {
+        ret = FFA_RET_INVALID_PARAMETERS;
+        goto out_unlock;
+    }
+
+    dst_ctx = dst_d->arch.tee;
+    if ( !dst_ctx->guest_vers )
+    {
+        ret = FFA_RET_INVALID_PARAMETERS;
+        goto out_unlock;
+    }
+
+    /* This also checks that destination has set a Rx buffer */
+    ret = ffa_rx_acquire(dst_d);
+    if ( ret )
+        goto out_unlock;
+
+    /* we need to have enough space in the destination buffer */
+    if ( (dst_ctx->page_count * FFA_PAGE_SIZE -
+          sizeof(struct ffa_part_msg_rxtx)) < src_msg->msg_size )
+    {
+        ret = FFA_RET_NO_MEMORY;
+        ffa_rx_release(dst_d);
+        goto out_unlock;
+    }
+
+    dst_msg = dst_ctx->rx;
+
+    /* prepare destination header */
+    dst_msg->flags = 0;
+    dst_msg->reserved = 0;
+    dst_msg->msg_offset = sizeof(struct ffa_part_msg_rxtx);
+    dst_msg->send_recv_id = src_msg->send_recv_id;
+    dst_msg->msg_size = src_msg->msg_size;
+
+    memcpy(dst_ctx->rx + sizeof(struct ffa_part_msg_rxtx),
+           src_buf + src_msg->msg_offset, src_msg->msg_size);
+
+    /* receiver rx buffer will be released by the receiver*/
+
+out_unlock:
+    rcu_unlock_domain(dst_d);
+    if ( !ret )
+        ffa_raise_rx_buffer_full(dst_d);
+
+    return ret;
+}
+
 int32_t ffa_handle_msg_send2(struct cpu_user_regs *regs)
 {
     struct domain *src_d = current->domain;
     struct ffa_ctx *src_ctx = src_d->arch.tee;
-    const struct ffa_part_msg_rxtx *src_msg;
+    struct ffa_part_msg_rxtx src_msg;
     uint16_t dst_id, src_id;
     int32_t ret;
 
-    if ( !ffa_fw_supports_fid(FFA_MSG_SEND2) )
-        return FFA_RET_NOT_SUPPORTED;
+    BUILD_BUG_ON(sizeof(struct ffa_part_msg_rxtx) >= FFA_PAGE_SIZE);
 
     if ( !spin_trylock(&src_ctx->tx_lock) )
         return FFA_RET_BUSY;
 
-    src_msg = src_ctx->tx;
-    src_id = src_msg->send_recv_id >> 16;
-    dst_id = src_msg->send_recv_id & GENMASK(15,0);
+    /* create a copy of the message header */
+    memcpy(&src_msg, src_ctx->tx, sizeof(src_msg));
 
-    if ( src_id != ffa_get_vm_id(src_d) || !FFA_ID_IS_SECURE(dst_id) )
+    src_id = src_msg.send_recv_id >> 16;
+    dst_id = src_msg.send_recv_id & GENMASK(15,0);
+
+    if ( src_id != ffa_get_vm_id(src_d) )
     {
         ret = FFA_RET_INVALID_PARAMETERS;
-        goto out_unlock_tx;
+        goto out;
     }
 
     /* check source message fits in buffer */
-    if ( src_ctx->page_count * FFA_PAGE_SIZE <
-         src_msg->msg_offset + src_msg->msg_size ||
-         src_msg->msg_offset < sizeof(struct ffa_part_msg_rxtx) )
+    if ( src_msg.msg_offset < sizeof(struct ffa_part_msg_rxtx) ||
+            src_msg.msg_size == 0 ||
+            src_msg.msg_offset > src_ctx->page_count * FFA_PAGE_SIZE ||
+            src_msg.msg_size > (src_ctx->page_count * FFA_PAGE_SIZE -
+                                src_msg.msg_offset) )
     {
         ret = FFA_RET_INVALID_PARAMETERS;
-        goto out_unlock_tx;
+        goto out;
     }
 
-    ret = ffa_simple_call(FFA_MSG_SEND2,
-                          ((uint32_t)ffa_get_vm_id(src_d)) << 16, 0, 0, 0);
+    if ( FFA_ID_IS_SECURE(dst_id) )
+    {
+        /* Message for a secure partition */
+        if ( !ffa_fw_supports_fid(FFA_MSG_SEND2) )
+        {
+            ret = FFA_RET_NOT_SUPPORTED;
+            goto out;
+        }
+
+        ret = ffa_simple_call(FFA_MSG_SEND2,
+                              ((uint32_t)ffa_get_vm_id(src_d)) << 16, 0, 0, 0);
+    }
+    else if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
+    {
+        /* Message for a VM */
+        ret = ffa_msg_send2_vm(dst_id, src_ctx->tx, &src_msg);
+    }
+    else
+        ret = FFA_RET_INVALID_PARAMETERS;
 
-out_unlock_tx:
+out:
     spin_unlock(&src_ctx->tx_lock);
     return ret;
 }
-- 
2.47.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 13:35:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 13:35:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077633.1438713 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulSge-0004dG-KN; Mon, 11 Aug 2025 13:35:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077633.1438713; Mon, 11 Aug 2025 13:35: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 1ulSge-0004d9-Gu; Mon, 11 Aug 2025 13:35:40 +0000
Received: by outflank-mailman (input) for mailman id 1077633;
 Mon, 11 Aug 2025 13:35:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6owi=2X=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1ulSgd-0002rn-6X
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 13:35:39 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 102dff35-76b8-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 15:35:36 +0200 (CEST)
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 10F562641;
 Mon, 11 Aug 2025 06:35:28 -0700 (PDT)
Received: from C3HXLD123V.arm.com (unknown [10.57.55.159])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id EE3123F63F;
 Mon, 11 Aug 2025 06: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>
X-Inumbo-ID: 102dff35-76b8-11f0-b898-0df219b8e170
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Julien Grall <jgrall@amazon.com>
Subject: [PATCH v8 6/6] xen/arm: ffa: Enable VM to VM without firmware
Date: Mon, 11 Aug 2025 15:35:02 +0200
Message-ID: <51eebef30505dafbd9f3ccbf9e0dd99bb316c852.1754899329.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.47.1
In-Reply-To: <cover.1754899329.git.bertrand.marquis@arm.com>
References: <cover.1754899329.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

When VM to VM support is activated and there is no suitable FF-A support
in the firmware, enable FF-A support for VMs to allow using it for VM to
VM communications.
If there is OP-TEE running in the secure world and using the non FF-A
communication system, having CONFIG_FFA_VM_TO_VM could be non functional
(if optee is probed first) or OP-TEE could be non functional (if FF-A is
probed first) so it is not recommended to activate the configuration
option for such systems.

To make buffer full notification work between VMs when there is no
firmware, rework the notification handling and modify the global flag to
only be used as check for firmware notification support instead.

Also split probe function into one for firmware and one for vm to vm to
make the implementation clearer.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Acked-by: Julien Grall <jgrall@amazon.com>
---
Changes in v8:
- add Julien A-b
Changes in v7:
- add Jens R-b
Changes in v6:
- split probe into fw and vm_to_vm probe
Changes in v5:
- init ctx list when there is no firmware
- rework init a bit to prevent duplicates
- Remove Jens R-b due to changes done
Changes in v4:
- Fix Optee to OP-TEE in commit message
- Add Jens R-b
Changes in v3:
- fix typos in commit message
- add spaces around <<
- move notification id fix back into buffer full patch
- fix | position in if
Changes in v2:
- replace ifdef with IS_ENABLED when possible
---
 xen/arch/arm/tee/ffa.c       |  87 +++++++++++++++++------------
 xen/arch/arm/tee/ffa_notif.c | 104 ++++++++++++++++-------------------
 2 files changed, 101 insertions(+), 90 deletions(-)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 0eb6a0bda5fb..1d0239cf6950 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -346,8 +346,9 @@ static int ffa_domain_init(struct domain *d)
     struct ffa_ctx *ctx;
     int ret;
 
-    if ( !ffa_fw_version )
+    if ( !IS_ENABLED(CONFIG_FFA_VM_TO_VM) && !ffa_fw_version )
         return -ENODEV;
+
     /*
      * We are using the domain_id + 1 as the FF-A ID for VMs as FF-A ID 0 is
      * reserved for the hypervisor and we only support secure endpoints using
@@ -478,38 +479,12 @@ static void ffa_init_secondary(void)
     ffa_notif_init_interrupt();
 }
 
-static bool ffa_probe(void)
+static bool ffa_probe_fw(void)
 {
     uint32_t vers;
     unsigned int major_vers;
     unsigned int minor_vers;
 
-    /*
-     * FF-A often works in units of 4K pages and currently it's assumed
-     * that we can map memory using that granularity. See also the comment
-     * above the FFA_PAGE_SIZE define.
-     *
-     * It is possible to support a PAGE_SIZE larger than 4K in Xen, but
-     * until that is fully handled in this code make sure that we only use
-     * 4K page sizes.
-     */
-    BUILD_BUG_ON(PAGE_SIZE != FFA_PAGE_SIZE);
-
-    printk(XENLOG_INFO "ARM FF-A Mediator version %u.%u\n",
-           FFA_MY_VERSION_MAJOR, FFA_MY_VERSION_MINOR);
-
-    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
-    {
-        /*
-         * When FFA VM to VM is enabled, the current implementation does not
-         * offer any way to limit which VM can communicate with which VM using
-         * FF-A.
-         * Signal this in the xen console and taint the system as insecure.
-         * TODO: Introduce a solution to limit what a VM can do through FFA.
-         */
-        printk(XENLOG_ERR "ffa: VM to VM is enabled, system is insecure !!\n");
-        add_taint(TAINT_MACHINE_INSECURE);
-    }
     /*
      * psci_init_smccc() updates this value with what's reported by EL-3
      * or secure world.
@@ -528,11 +503,6 @@ static bool ffa_probe(void)
         goto err_no_fw;
     }
 
-    /* Some sanity check in case we update the version we support */
-    BUILD_BUG_ON(FFA_MIN_SPMC_VERSION > FFA_MY_VERSION);
-    BUILD_BUG_ON(FFA_VERSION_MAJOR(FFA_MIN_SPMC_VERSION) !=
-                                   FFA_MY_VERSION_MAJOR);
-
     major_vers = FFA_VERSION_MAJOR(vers);
     minor_vers = FFA_VERSION_MINOR(vers);
 
@@ -583,7 +553,6 @@ static bool ffa_probe(void)
         goto err_rxtx_destroy;
 
     ffa_notif_init();
-    init_timer(&ffa_teardown_timer, ffa_teardown_timer_callback, NULL, 0);
 
     return true;
 
@@ -597,6 +566,56 @@ err_no_fw:
     return false;
 }
 
+static bool ffa_probe_vm_to_vm(void)
+{
+    if ( !IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
+        return false;
+
+    /*
+     * When FFA VM to VM is enabled, the current implementation does not
+     * offer any way to limit which VM can communicate with which VM using
+     * FF-A.
+     * Signal this in the xen console and taint the system as insecure.
+     * TODO: Introduce a solution to limit what a VM can do through FFA.
+     */
+    printk(XENLOG_ERR "ffa: VM to VM is enabled, system is insecure !!\n");
+    add_taint(TAINT_MACHINE_INSECURE);
+
+    return true;
+}
+
+static bool ffa_probe(void)
+{
+    /*
+     * FF-A often works in units of 4K pages and currently it's assumed
+     * that we can map memory using that granularity. See also the comment
+     * above the FFA_PAGE_SIZE define.
+     *
+     * It is possible to support a PAGE_SIZE larger than 4K in Xen, but
+     * until that is fully handled in this code make sure that we only use
+     * 4K page sizes.
+     */
+    BUILD_BUG_ON(PAGE_SIZE != FFA_PAGE_SIZE);
+
+    /* Some sanity check in case we update the version we support */
+    BUILD_BUG_ON(FFA_MIN_SPMC_VERSION > FFA_MY_VERSION);
+    BUILD_BUG_ON(FFA_VERSION_MAJOR(FFA_MIN_SPMC_VERSION) !=
+                                   FFA_MY_VERSION_MAJOR);
+
+    printk(XENLOG_INFO "ARM FF-A Mediator version %u.%u\n",
+           FFA_MY_VERSION_MAJOR, FFA_MY_VERSION_MINOR);
+
+    if ( !ffa_probe_fw() && !ffa_probe_vm_to_vm() )
+        return false;
+
+    if ( !ffa_fw_version )
+        printk(XENLOG_INFO "ARM FF-A only available between VMs\n");
+
+    init_timer(&ffa_teardown_timer, ffa_teardown_timer_callback, NULL, 0);
+
+    return true;
+}
+
 static const struct tee_mediator_ops ffa_ops =
 {
     .probe = ffa_probe,
diff --git a/xen/arch/arm/tee/ffa_notif.c b/xen/arch/arm/tee/ffa_notif.c
index f6df2f15bb00..86bef6b3b2ab 100644
--- a/xen/arch/arm/tee/ffa_notif.c
+++ b/xen/arch/arm/tee/ffa_notif.c
@@ -16,7 +16,7 @@
 
 #include "ffa_private.h"
 
-static bool __ro_after_init notif_enabled;
+static bool __ro_after_init fw_notif_enabled;
 static unsigned int __ro_after_init notif_sri_irq;
 
 int ffa_handle_notification_bind(struct cpu_user_regs *regs)
@@ -27,21 +27,17 @@ int ffa_handle_notification_bind(struct cpu_user_regs *regs)
     uint32_t bitmap_lo = get_user_reg(regs, 3);
     uint32_t bitmap_hi = get_user_reg(regs, 4);
 
-    if ( !notif_enabled )
-        return FFA_RET_NOT_SUPPORTED;
-
     if ( (src_dst & 0xFFFFU) != ffa_get_vm_id(d) )
         return FFA_RET_INVALID_PARAMETERS;
 
     if ( flags )    /* Only global notifications are supported */
         return FFA_RET_DENIED;
 
-    /*
-     * We only support notifications from SP so no need to check the sender
-     * endpoint ID, the SPMC will take care of that for us.
-     */
-    return ffa_simple_call(FFA_NOTIFICATION_BIND, src_dst, flags, bitmap_lo,
-                           bitmap_hi);
+    if ( FFA_ID_IS_SECURE(src_dst >> 16) && fw_notif_enabled )
+        return ffa_simple_call(FFA_NOTIFICATION_BIND, src_dst, flags,
+                               bitmap_lo, bitmap_hi);
+
+    return FFA_RET_NOT_SUPPORTED;
 }
 
 int ffa_handle_notification_unbind(struct cpu_user_regs *regs)
@@ -51,18 +47,14 @@ int ffa_handle_notification_unbind(struct cpu_user_regs *regs)
     uint32_t bitmap_lo = get_user_reg(regs, 3);
     uint32_t bitmap_hi = get_user_reg(regs, 4);
 
-    if ( !notif_enabled )
-        return FFA_RET_NOT_SUPPORTED;
-
     if ( (src_dst & 0xFFFFU) != ffa_get_vm_id(d) )
         return FFA_RET_INVALID_PARAMETERS;
 
-    /*
-     * We only support notifications from SP so no need to check the
-     * destination endpoint ID, the SPMC will take care of that for us.
-     */
-    return  ffa_simple_call(FFA_NOTIFICATION_UNBIND, src_dst, 0, bitmap_lo,
-                            bitmap_hi);
+    if ( FFA_ID_IS_SECURE(src_dst >> 16) && fw_notif_enabled )
+        return  ffa_simple_call(FFA_NOTIFICATION_UNBIND, src_dst, 0, bitmap_lo,
+                                bitmap_hi);
+
+    return FFA_RET_NOT_SUPPORTED;
 }
 
 void ffa_handle_notification_info_get(struct cpu_user_regs *regs)
@@ -71,7 +63,7 @@ void ffa_handle_notification_info_get(struct cpu_user_regs *regs)
     struct ffa_ctx *ctx = d->arch.tee;
     bool notif_pending;
 
-    if ( !notif_enabled )
+    if ( !IS_ENABLED(CONFIG_FFA_VM_TO_VM) && !fw_notif_enabled )
     {
         ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
         return;
@@ -108,7 +100,7 @@ void ffa_handle_notification_get(struct cpu_user_regs *regs)
     uint32_t w6 = 0;
     uint32_t w7 = 0;
 
-    if ( !notif_enabled )
+    if ( !IS_ENABLED(CONFIG_FFA_VM_TO_VM) && !fw_notif_enabled )
     {
         ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
         return;
@@ -120,7 +112,8 @@ void ffa_handle_notification_get(struct cpu_user_regs *regs)
         return;
     }
 
-    if ( flags & ( FFA_NOTIF_FLAG_BITMAP_SP | FFA_NOTIF_FLAG_BITMAP_SPM ) )
+    if ( fw_notif_enabled && (flags & ( FFA_NOTIF_FLAG_BITMAP_SP |
+                                        FFA_NOTIF_FLAG_BITMAP_SPM )) )
     {
         struct arm_smccc_1_2_regs arg = {
             .a0 = FFA_NOTIFICATION_GET,
@@ -177,15 +170,14 @@ int ffa_handle_notification_set(struct cpu_user_regs *regs)
     uint32_t bitmap_lo = get_user_reg(regs, 3);
     uint32_t bitmap_hi = get_user_reg(regs, 4);
 
-    if ( !notif_enabled )
-        return FFA_RET_NOT_SUPPORTED;
-
     if ( (src_dst >> 16) != ffa_get_vm_id(d) )
         return FFA_RET_INVALID_PARAMETERS;
 
-    /* Let the SPMC check the destination of the notification */
-    return ffa_simple_call(FFA_NOTIFICATION_SET, src_dst, flags, bitmap_lo,
-                           bitmap_hi);
+    if ( FFA_ID_IS_SECURE(src_dst >> 16) && fw_notif_enabled )
+        return ffa_simple_call(FFA_NOTIFICATION_SET, src_dst, flags, bitmap_lo,
+                               bitmap_hi);
+
+    return FFA_RET_NOT_SUPPORTED;
 }
 
 #ifdef CONFIG_FFA_VM_TO_VM
@@ -371,7 +363,7 @@ void ffa_notif_init_interrupt(void)
 {
     int ret;
 
-    if ( notif_enabled && notif_sri_irq < NR_GIC_SGI )
+    if ( fw_notif_enabled && notif_sri_irq < NR_GIC_SGI )
     {
         /*
          * An error here is unlikely since the primary CPU has already
@@ -402,41 +394,41 @@ void ffa_notif_init(void)
     int ret;
 
     /* Only enable fw notification if all ABIs we need are supported */
-    if ( !(ffa_fw_supports_fid(FFA_NOTIFICATION_BITMAP_CREATE) &&
-           ffa_fw_supports_fid(FFA_NOTIFICATION_BITMAP_DESTROY) &&
-           ffa_fw_supports_fid(FFA_NOTIFICATION_GET) &&
-           ffa_fw_supports_fid(FFA_NOTIFICATION_INFO_GET_64)) )
-        return;
-
-    arm_smccc_1_2_smc(&arg, &resp);
-    if ( resp.a0 != FFA_SUCCESS_32 )
-        return;
-
-    irq = resp.a2;
-    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 )
+    if ( ffa_fw_supports_fid(FFA_NOTIFICATION_BITMAP_CREATE) &&
+         ffa_fw_supports_fid(FFA_NOTIFICATION_BITMAP_DESTROY) &&
+         ffa_fw_supports_fid(FFA_NOTIFICATION_GET) &&
+         ffa_fw_supports_fid(FFA_NOTIFICATION_INFO_GET_64) )
     {
-        printk(XENLOG_ERR "ffa: request_irq irq %u failed: error %d\n",
-               irq, ret);
-        return;
-    }
+        arm_smccc_1_2_smc(&arg, &resp);
+        if ( resp.a0 != FFA_SUCCESS_32 )
+            return;
 
-    notif_enabled = true;
+        irq = resp.a2;
+        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);
+            return;
+        }
+        fw_notif_enabled = true;
+    }
 }
 
 int ffa_notif_domain_init(struct domain *d)
 {
     int32_t res;
 
-    if ( !notif_enabled )
-        return 0;
+    if ( fw_notif_enabled )
+    {
 
-    res = ffa_notification_bitmap_create(ffa_get_vm_id(d), d->max_vcpus);
-    if ( res )
-        return -ENOMEM;
+        res = ffa_notification_bitmap_create(ffa_get_vm_id(d), d->max_vcpus);
+        if ( res )
+            return -ENOMEM;
+    }
 
     return 0;
 }
@@ -447,6 +439,6 @@ void ffa_notif_domain_destroy(struct domain *d)
      * Call bitmap_destroy even if bitmap create failed as the SPMC will
      * return a DENIED error that we will ignore.
      */
-    if ( notif_enabled )
+    if ( fw_notif_enabled )
         ffa_notification_bitmap_destroy(ffa_get_vm_id(d));
 }
-- 
2.47.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 14:36:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 14:36:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077695.1438723 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulTcx-0007Dn-Qr; Mon, 11 Aug 2025 14:35:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077695.1438723; Mon, 11 Aug 2025 14:35: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 1ulTcx-0007Dg-Nc; Mon, 11 Aug 2025 14:35:55 +0000
Received: by outflank-mailman (input) for mailman id 1077695;
 Mon, 11 Aug 2025 14:35:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8H9H=2X=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1ulTcw-0007DC-00
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 14:35:54 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7b61603d-76c0-11f0-a325-13f23c93f187;
 Mon, 11 Aug 2025 16:35:53 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-459e20ec1d9so44250905e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 07:35:52 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-459e587d378sm255047825e9.23.2025.08.11.07.35.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Aug 2025 07:35: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>
X-Inumbo-ID: 7b61603d-76c0-11f0-a325-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754922952; x=1755527752; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=GTUev54ZcTfpbtj0slFOAhsdQHUK4EUNpAEgpCcOuvE=;
        b=k45mmMiJw7QHUvmJ8l5ZZtsWmJVM67seTDo96RxFwMjQnwN9TiVYEL7dDJdnAIEvjd
         gIdoSTse6/tk3/AEJHrg9Lqm1/qp7jsFG7rhGG2gs9LbAcIBYPKqtS6SE9ykdSfHKjSA
         LqzwJnS7MG69R1BTxZaZ9r1WagHhDMuz1Eo3I=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754922952; x=1755527752;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=GTUev54ZcTfpbtj0slFOAhsdQHUK4EUNpAEgpCcOuvE=;
        b=lPAUM9h2uDpnKYL9D2sZrIe+sU+tGjXj4rtHTQEf2g1c3s16WuOTtQOwush1bm2Sn+
         mZVAHQN+sadDv1lWpiI5w7McCxByZN4w2W96vBwkJB2c9bYegt1F6esYsEbYG919boj8
         kKSKVh+CPL7jddTwsVvzw6jZU6PM5vVJYpH9ayoLJE7/cINHH9mH8FePLNarZyEMUtOe
         PIayFNIhj220GS3bzCRYEegXlHl3sVzG2TdtsZ4SZA3X2K9PEGkCMljZRp9CVtF0tzu/
         QzctObL3L5JK9jQ0mapaGcIEWZWGXmtEbcPOrv20MZALDH53CBLpzRUAmkDR5yMyEbW8
         RaRA==
X-Forwarded-Encrypted: i=1; AJvYcCUPz6a1YRhgTRy+LzsM9h8DPt8LRWif92IRv10RbgsCzQNUzKrXv/MIukHOrEHNl5ZbLkM0ELyso4A=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzHqSIvRWr0XQFyPEeC9ttDtuXjupsyo8vWEB7ybGiPfB9AVV5A
	71Zptw78vV2vbe8dZDBE3m2Sl+1vIn6yA508wczk+cRmhUBWOHHFrCd7O1kwO9bErx0=
X-Gm-Gg: ASbGncvr2A1iS9TyUMMwBgNhsjEUIYdo3Jya+Zann7NPrpR1dlZWvIL0ibL0zZii4LJ
	9rRxX7uveNd5rVLnWD9zASs6Q87obsV7i0XT3vyGbN8YT6oMapOWfZeltTGSz/5ifnCEErOyc4F
	QDz+8E4Jli3f29+UMfhUIjekMdbHszwxNQDAf+gFew+TUu1vIJ5kT8JaH6fQJoPbthjKtjV35mh
	H/D6M475m9NbTj0evFk3AG++FDZEZ3/ON1RFSfL/9KvhX5IRpJ/YOSEUftw1MEdLdBTlsUfhiIi
	uL+23PgBqQxLV87MSc42NPzhIVkNOj9kDFFd1BASDYXifK0R0duPc1I8VKruYJl/g3yOZs8W2Oc
	D/UIGjEPghQKzvy03hoQRC6FUG0fOz20iDQDAKwWQ6AfS5ELiTyPZN2hgR+BK7qlwTwql1uZOnT
	VQ
X-Google-Smtp-Source: AGHT+IFLT/Dy8tcf/vsaSHC663m+mEX+vX5uYQIc1kukmhi8UimxCTzELxuGhOEn9DNofrW+WR5YTA==
X-Received: by 2002:a05:600c:3b99:b0:458:bbed:a827 with SMTP id 5b1f17b1804b1-459f4f3dc39mr100977145e9.1.1754922951809;
        Mon, 11 Aug 2025 07:35:51 -0700 (PDT)
Date: Mon, 11 Aug 2025 16:35:50 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: nicola.vetrini@gmail.com, xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN PATCH] xen: Drop logic for old clang versions.
Message-ID: <aJn_xi5dVD3-imnz@macbook.local>
References: <e8bb42876317c19aca79f81c3fc48dc3a4fdaf71.1754830862.git.nicola.vetrini@bugseng.com>
 <aJmgCv4wgl-IHupn@macbook.local>
 <2ca7082120df5e1ad6a29582d6dfb215@bugseng.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <2ca7082120df5e1ad6a29582d6dfb215@bugseng.com>

On Mon, Aug 11, 2025 at 11:37:46AM +0200, Nicola Vetrini wrote:
> On 2025-08-11 09:47, Roger Pau MonnÃ© wrote:
> > On Sun, Aug 10, 2025 at 03:03:53PM +0200, nicola.vetrini@gmail.com
> > wrote:
> > > From: Nicola Vetrini <nicola.vetrini@bugseng.com>
> > > 
> > > The enforced toolchain baseline for clang is version 11,
> > > therefore this logic is effectively dead code.
> > > 
> > > No functional change.
> > > 
> > > Signed-off-by: Nicola Vetrini <nicola.vetrini@gmail.com>
> > 
> > Acked-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> > 
> > > ---
> > > Mentioned in https://gitlab.com/xen-project/xen/-/issues/201
> > > ---
> > >  xen/common/coverage/llvm.c   | 4 ----
> > >  xen/include/xen/self-tests.h | 9 +--------
> > >  2 files changed, 1 insertion(+), 12 deletions(-)
> > > 
> > > diff --git a/xen/common/coverage/llvm.c b/xen/common/coverage/llvm.c
> > > index 50d7a3c5d301..517b2aa8c202 100644
> > > --- a/xen/common/coverage/llvm.c
> > > +++ b/xen/common/coverage/llvm.c
> > > @@ -44,12 +44,8 @@
> > >      ((uint64_t)'f' << 16) | ((uint64_t)'R' << 8)  | ((uint64_t)129)
> > >  #endif
> > > 
> > > -#if __clang_major__ >= 4 || (__clang_major__ == 3 &&
> > > __clang_minor__ >= 9)
> > >  #define LLVM_PROFILE_VERSION    4
> > >  #define LLVM_PROFILE_NUM_KINDS  2
> > > -#else
> > > -#error "clang version not supported with coverage"
> > > -#endif
> > 
> > Rant: most of the LLVM coverage stuff is already kind of dead code, as
> > the format of the data changes between versions and there's no way for
> > LLVM to generate the blob itself using a builtin function or
> > similar.  We haven't kept up with new formats, and now it's not
> > possible to parse the output coverage data when using newish LLVM
> > versions.
> > 
> > Linux converts it's LLVM coverage data to gcov format (which AFAIK is
> > way more stable), and exports it in gcov format.  We should consider
> > importing that from Linux.
> > 
> > Thanks, Roger.
> 
> Fair point. Generally I found coverage reports generated using LLVM tooling
> a bit more informative than gcov's, but I don't know how much work would it
> be to adapt Xen for newer versions of LLVM.

It's a pain because they keep changing the blob format between
versions, so we would basically need code in Xen to be able to
generate the right blob for each possible clang version.

It would be helpful if clang provided the helpers to generate the
coverage data in a version agnostic way, but so far I haven't found a
way to do it.  I've raised a question with upstream LLVM project, but
no replies:

https://github.com/llvm/llvm-project/issues/123034

Regards, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 14:37:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 14:37:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077708.1438733 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulTer-0007oe-AN; Mon, 11 Aug 2025 14:37:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077708.1438733; Mon, 11 Aug 2025 14:37: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 1ulTer-0007oX-6S; Mon, 11 Aug 2025 14:37:53 +0000
Received: by outflank-mailman (input) for mailman id 1077708;
 Mon, 11 Aug 2025 14:37:51 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1ulTep-0007oR-Sh
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 14:37:51 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1ulTeo-00072X-0l;
 Mon, 11 Aug 2025 14:37:50 +0000
Received: from [2a01:cb15:80df:da00:c70a:43d:5717:e951] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1ulTeo-000Dfp-0m;
 Mon, 11 Aug 2025 14:37:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Transfer-Encoding:
	Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date;
	bh=pUvTOK7d21O0RFicswGWQ0GbYd+15lKWkdu6ppvKHpo=; b=5wOqFEDbqb5Cb1jPgNe0arN0a1
	KgHFc4xsTJc1RHRPDDZZXQp7ivUafeC+H6hgmFYCW2XbX4LjHTc5ErnhAejQbbvpk99SKXYgXr5yk
	NWDzmuNaC8dfv4Jw0SBSDD8n4Kegn7m6JbVzHKzm82byydfCMhF9qcy3Fy0hiymOZ+Hc=;
Date: Mon, 11 Aug 2025 16:37:47 +0200
From: Anthony PERARD <anthony@xenproject.org>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org,
	Anthony PERARD <anthony.perard@vates.tech>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Community Manager <community.manager@xenproject.org>,
	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: [XEN PATCH 11/11] Update CHANGELOG and README with dependency on
 json-c
Message-ID: <aJoAO2NOLtIxBbAf@l14>
References: <20250808145602.41716-1-anthony@xenproject.org>
 <20250808145602.41716-12-anthony@xenproject.org>
 <2f073fa0-5064-4cd2-b332-c3a6ceaf537a@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <2f073fa0-5064-4cd2-b332-c3a6ceaf537a@citrix.com>

On Mon, Aug 11, 2025 at 11:55:04AM +0100, Andrew Cooper wrote:
> On 08/08/2025 3:56 pm, Anthony PERARD wrote:
> > From: Anthony PERARD <anthony.perard@vates.tech>
> >
> > Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>
> > ---
> >  CHANGELOG.md | 2 ++
> >  README       | 2 +-
> >  2 files changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/CHANGELOG.md b/CHANGELOG.md
> > index 5f31ca08fe..83195e2dae 100644
> > --- a/CHANGELOG.md
> > +++ b/CHANGELOG.md
> > @@ -11,6 +11,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
> >     - For x86, GCC 5.1 and Binutils 2.25, or Clang/LLVM 11
> >     - For ARM32 and ARM64, GCC 5.1 and Binutils 2.25
> >   - Linux based device model stubdomains are now fully supported.
> > + - New dependency on library json-c, the toolstack will prefer it to `YAJL`
> > +   when available.
> >  
> >   - On x86:
> >     - Restrict the cache flushing done as a result of guest physical memory map
> > diff --git a/README b/README
> > index 6ee58f7b35..9329f30e13 100644
> > --- a/README
> > +++ b/README
> > @@ -53,7 +53,7 @@ provided by your OS distributor:
> >      * Development install of Python 2.7 or later (e.g., python-dev)
> >      * Development install of curses (e.g., libncurses-dev)
> >      * Development install of uuid (e.g. uuid-dev)
> > -    * Development install of yajl (e.g. libyajl-dev)
> > +    * Development install of json-c (e.g. libjson-c-dev) or yajl (e.g. libyajl-dev)
> >      * Development install of libaio (e.g. libaio-dev) version 0.3.107 or
> >        greater.
> >      * Development install of GLib v2.0 (e.g. libglib2.0-dev)
> 
> What are we going to do about testing this?
> 
> We should add libjson-c to some build containers.  We need to annotate #
> Xen < 4.21 in the existing containers so we can drop it in due course.

archlinux container already have `json-c` so the CI already do some
build jobs with it. (no *-dev needed for this one container). It even
notice an issue with `debug=n` builds, I had to replace `strncpy` by
`memcpy`.

> Also, for a container we don't intend to backport to stable trees, we
> should have libjson-c only and no yajl.  Probably best to do this in the
> Alpine update which is long overdue.

Doing this on alpine container would allow to actually do some runtime
tests with json-c instead of yajl, so yes.

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 14:44:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 14:44:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077716.1438742 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulTku-0001HX-Tu; Mon, 11 Aug 2025 14:44:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077716.1438742; Mon, 11 Aug 2025 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 1ulTku-0001HQ-RH; Mon, 11 Aug 2025 14:44:08 +0000
Received: by outflank-mailman (input) for mailman id 1077716;
 Mon, 11 Aug 2025 14:44:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=MOyo=2X=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1ulTkt-0001HJ-LZ
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 14:44:07 +0000
Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com
 [2a00:1450:4864:20::635])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a101d46f-76c1-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 16:44:05 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-af958127df5so669517266b.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 07:44:05 -0700 (PDT)
Received: from [192.168.1.17] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a0766b8sm2035173166b.25.2025.08.11.07.44.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 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>
X-Inumbo-ID: a101d46f-76c1-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754923444; x=1755528244; darn=lists.xenproject.org;
        h=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=kCDzhV1gdL7gWyvcPn5QunPXYe+y9kR3Y1+xAuyR2fA=;
        b=ibKc3z7jv7cDKGlZYdd7K7cyFdtG7VKROGX7zlRSkaJ0PoGRuaAwix3LPTzF0DA8zL
         262/S10KLC3wfQDHsBRvn5DxSCYb0oLFmDlstzJP3nBoPQjlkAoUbgH/crWR3K93ybBN
         TGUiTeVcBMs3djaf8jY5N8CU+haTPkErtCY4MSzFK2XI51YgtkV9yWw7Gop3TuoIXgiv
         PJmqYGPI7Xy2O0ILIOKvgJXyNnv0TCiEw24/ihWh3xvW/z4IJ2iJR+85X9zH10iKX2cj
         sQDZQdk8r0Mhgwyl5HKfGatTAtNfuntmfAM3CdYHy8Yzn/4KClCAZ507S+b5Ov9iK+X3
         d46w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754923444; x=1755528244;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=kCDzhV1gdL7gWyvcPn5QunPXYe+y9kR3Y1+xAuyR2fA=;
        b=bQrjWYjTVE5oK9txfg30GMeUuDE79UiqLn+dEu1hv3M3RkGlr41q4URfwFwFPU/90D
         +eGUZRIzDOy2hOQyf6tbjC/qhlwGSntLriedupkY1V6no5+YuopRDPek7G+WMLMRK8Xy
         zc2GQazUQCULDeXlYXrjdzKWXo1vKV9xlqbnnVFufav+88iJvK45/J++WH5ssGSIL6t+
         9TIVImWVdmYw83zkbgtEct/CKy65waYJFju2koIlrdSo8R5rpe81m8Tt9m5tYKELEwgR
         +Ox/QW66K+czyX/fnVTQDgUWFoLLcGEAI6jkgEgJLjLrqYSu+RaEX66SgqWahJ2YIh3Q
         wm6Q==
X-Forwarded-Encrypted: i=1; AJvYcCV/N4os8rL6Ad6tUEpgciZEGYbTeOdJpRhaAzEgD1ynjhiZksibBFnrQ3V1fIABRfw/as30uxtZITM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzhXu88lj7V2Y41NxVHk0jNc0aLPpizr0LlneoCyXoHz13qzi6+
	xM+wDS1+bRRV699A00IeH/nvcC7umIjLGrGIsZRolL6eOTepD3tuqpQX
X-Gm-Gg: ASbGnctGguNxDqy8dgHbVuKEsYflMPo9xYPJ/Kn038BGvWzC31Sc0ethiwah5iBXTM8
	oorDFEEeTBNdGLIEDIoCRiiAEsEAU0dFup6h37I3MR5T8TzsgV32TBWVefUaD7AWS84Q9LsIB/N
	7i1pu8Ox708vsPst1VPvkxKGOFyUNwLHS4NqAq7uUqjgZ9sihMxCnRmq0NFDGArZPW+MSvVH7JW
	Yu6J266t1pMy9EtFV5XWepyLU6BXG0JMRI15WhvR2+rkosWMywj5Hidq+6GW6d+3Lg8WCQuZEVC
	DpGB/Yz7kmeThJUNAVpquP4gKScTuNqdY5Ei8DD/ihnR5bPYFV+49B0kTrZI6WV7AFHwaSYpETO
	Ohuq1SwBtlio5EmYF4rp/p1t/95b3DLxk8zYkdRy0ILc4q41JoTpuXQXUo2W0CD7EVgkOEOAc
X-Google-Smtp-Source: AGHT+IGN7TIsCqOijARoS/ywOjqc9fIHOfrBsImD7ZeAWAP87yA8pUS8cAGVCtd4old1JVWhutJkMw==
X-Received: by 2002:a17:907:9446:b0:ae3:4f57:2110 with SMTP id a640c23a62f3a-af9c6588280mr1326265366b.54.1754923444242;
        Mon, 11 Aug 2025 07:44:04 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------kAGi4LqE0ZJsty7WsbAHekyl"
Message-ID: <e0f21085-8cce-4778-b15d-6dfd5e615aa2@gmail.com>
Date: Mon, 11 Aug 2025 16:44:02 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 14/20] xen/riscv: Implement p2m_pte_from_mfn() and
 support PBMT configuration
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <1370613cd6f52e90591b15ad52c95d7c81908cf6.1753973161.git.oleksii.kurochko@gmail.com>
 <3ede10e7-8e43-4277-9197-14a3e5ab1cc1@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <3ede10e7-8e43-4277-9197-14a3e5ab1cc1@suse.com>

This is a multi-part message in MIME format.
--------------kAGi4LqE0ZJsty7WsbAHekyl
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 8/11/25 1:36 PM, Jan Beulich wrote:
> On 31.07.2025 17:58, Oleksii Kurochko wrote:
>> --- a/xen/arch/riscv/p2m.c
>> +++ b/xen/arch/riscv/p2m.c
>> @@ -1,3 +1,4 @@
>> +#include <xen/bug.h>
>>   #include <xen/domain_page.h>
>>   #include <xen/mm.h>
>>   #include <xen/rwlock.h>
>> @@ -197,6 +198,18 @@ static pte_t *p2m_get_root_pointer(struct p2m_domain *p2m, gfn_t gfn)
>>       return __map_domain_page(p2m->root + root_table_indx);
>>   }
>>   
>> +static int p2m_set_type(pte_t *pte, p2m_type_t t)
>> +{
>> +    int rc = 0;
>> +
>> +    if ( t > p2m_ext_storage )
> Seeing this separator enumerator in use, it becomes pretty clear that its name
> needs to change, so one doesn't need to go look at its definition to understand
> whether it's inclusive or exclusive. (This isn't helped by there presently being
> a spare entry, which, when made use of, might then cause problems with
> expressions like this one as well.)

Then|p2m_pte_type_count| might be a better name, as it indicates how many types are
stored directly in the PTE bits.

>
>> @@ -222,11 +235,71 @@ static inline void p2m_clean_pte(pte_t *p, bool clean_pte)
>>       p2m_write_pte(p, pte, clean_pte);
>>   }
>>   
>> -static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t)
>> +static void p2m_set_permission(pte_t *e, p2m_type_t t)
>>   {
>> -    panic("%s: hasn't been implemented yet\n", __func__);
>> +    e->pte &= ~PTE_ACCESS_MASK;
>> +
>> +    switch ( t )
>> +    {
>> +    case p2m_grant_map_rw:
>> +    case p2m_ram_rw:
>> +        e->pte |= PTE_READABLE | PTE_WRITABLE;
>> +        break;
> While I agree for r/w grants, shouldn't r/w RAM also be executable?
>
>> +    case p2m_ext_storage:
> Why exactly would this placeholder ...
>
>> +    case p2m_mmio_direct_io:
>> +        e->pte |= PTE_ACCESS_MASK;
>> +        break;
> ... gain full access? It shouldn't make it here at all, should it?

I missed to add break between them, but I don't remember why I
put it here.
It could be freely moved before "default".

And, yes, you are right it seems like is shouldn't be handled at all
in this function as this function isn't expected to be called with
this type as this type only is used to indicate that a real type is
stored somwehere.

>
>> +
>> +    case p2m_invalid:
>> +        e->pte &= ~(PTE_ACCESS_MASK | PTE_VALID);
> Redundantly masking off PTE_ACCESS_MASK? (Plus, for the entry to be
> invalid, turning off PTE_VALID alone ought to suffice anyway?)

Agree, turning off PTE_VALID would be just enough.

>> +        break;
>> +
>> +    case p2m_grant_map_ro:
>> +        e->pte |= PTE_READABLE;
>> +        break;
>> +
>> +    default:
>> +        ASSERT_UNREACHABLE();
>> +        break;
>> +    }
>> +}
>> +
>> +static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t, bool is_table)
>> +{
>> +    pte_t e = (pte_t) { PTE_VALID };
> This and the rest of the function demand that mfn != INVALID_MFN, no matter
> whether ...
>
>> +    switch ( t )
>> +    {
>> +    case p2m_mmio_direct_io:
>> +        e.pte |= PTE_PBMT_IO;
>> +        break;
>> +
>> +    default:
>> +        break;
>> +    }
>> +
>> +    pte_set_mfn(&e, mfn);
>> +
>> +    ASSERT(!(mfn_to_maddr(mfn) & ~PADDR_MASK));
> ... PADDR_MASK is actually narrow enough to catch that case. Maybe best to
> add an explicit assertion to that effect?

Then it should be enough instead of what we have now:
   ASSERT(mfn_valid(mfn));

>
>> +    if ( !is_table )
>> +    {
>> +        p2m_set_permission(&e, t);
>> +
>> +        if ( t < p2m_ext_storage )
>> +            p2m_set_type(&e, t);
>> +        else
>> +            panic("unimplemeted\n");
> The check is already done inside p2m_set_type() - why open-code it here?

It isn't really matters now (so could be dropped), but in further patch this part
of code will look like:
         metadata[indx].pte = p2m_invalid;

         if ( t < p2m_ext_storage )
             p2m_set_type(&e, t, indx);
         else
         {
             e.pte |= MASK_INSR(p2m_ext_storage, P2M_TYPE_PTE_BITS_MASK);
             p2m_set_type(metadata, t, indx);
         }
So my intention was to re-use p2m_set_type() without changing of a prototype. So,
if a type is stored in PTE bits then we pass PTE directly, if not - then pass
metadata.

Thanks.

~ Oleksii

--------------kAGi4LqE0ZJsty7WsbAHekyl
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/11/25 1:36 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:3ede10e7-8e43-4277-9197-14a3e5ab1cc1@suse.com">
      <pre wrap="" class="moz-quote-pre">On 31.07.2025 17:58, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -1,3 +1,4 @@
+#include &lt;xen/bug.h&gt;
 #include &lt;xen/domain_page.h&gt;
 #include &lt;xen/mm.h&gt;
 #include &lt;xen/rwlock.h&gt;
@@ -197,6 +198,18 @@ static pte_t *p2m_get_root_pointer(struct p2m_domain *p2m, gfn_t gfn)
     return __map_domain_page(p2m-&gt;root + root_table_indx);
 }
 
+static int p2m_set_type(pte_t *pte, p2m_type_t t)
+{
+    int rc = 0;
+
+    if ( t &gt; p2m_ext_storage )
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Seeing this separator enumerator in use, it becomes pretty clear that its name
needs to change, so one doesn't need to go look at its definition to understand
whether it's inclusive or exclusive. (This isn't helped by there presently being
a spare entry, which, when made use of, might then cause problems with
expressions like this one as well.)</pre>
    </blockquote>
    <pre>Then <code data-start="53" data-end="73">p2m_pte_type_count</code> might be a better name, as it indicates how many types are
stored directly in the PTE bits.

</pre>
    <blockquote type="cite"
      cite="mid:3ede10e7-8e43-4277-9197-14a3e5ab1cc1@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">@@ -222,11 +235,71 @@ static inline void p2m_clean_pte(pte_t *p, bool clean_pte)
     p2m_write_pte(p, pte, clean_pte);
 }
 
-static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t)
+static void p2m_set_permission(pte_t *e, p2m_type_t t)
 {
-    panic("%s: hasn't been implemented yet\n", __func__);
+    e-&gt;pte &amp;= ~PTE_ACCESS_MASK;
+
+    switch ( t )
+    {
+    case p2m_grant_map_rw:
+    case p2m_ram_rw:
+        e-&gt;pte |= PTE_READABLE | PTE_WRITABLE;
+        break;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
While I agree for r/w grants, shouldn't r/w RAM also be executable?

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    case p2m_ext_storage:
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Why exactly would this placeholder ...

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    case p2m_mmio_direct_io:
+        e-&gt;pte |= PTE_ACCESS_MASK;
+        break;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
... gain full access? It shouldn't make it here at all, should it?</pre>
    </blockquote>
    <pre>I missed to add break between them, but I don't remember why I
put it here.
It could be freely moved before "default".

And, yes, you are right it seems like is shouldn't be handled at all
in this function as this function isn't expected to be called with
this type as this type only is used to indicate that a real type is
stored somwehere.
</pre>
    <blockquote type="cite"
      cite="mid:3ede10e7-8e43-4277-9197-14a3e5ab1cc1@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+
+    case p2m_invalid:
+        e-&gt;pte &amp;= ~(PTE_ACCESS_MASK | PTE_VALID);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Redundantly masking off PTE_ACCESS_MASK? (Plus, for the entry to be
invalid, turning off PTE_VALID alone ought to suffice anyway?)
</pre>
    </blockquote>
    <pre>Agree, turning off PTE_VALID would be just enough.
</pre>
    <blockquote type="cite"
      cite="mid:3ede10e7-8e43-4277-9197-14a3e5ab1cc1@suse.com">
      <pre wrap="" class="moz-quote-pre">
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+        break;
+
+    case p2m_grant_map_ro:
+        e-&gt;pte |= PTE_READABLE;
+        break;
+
+    default:
+        ASSERT_UNREACHABLE();
+        break;
+    }
+}
+
+static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t, bool is_table)
+{
+    pte_t e = (pte_t) { PTE_VALID };
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
This and the rest of the function demand that mfn != INVALID_MFN, no matter
whether ...

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    switch ( t )
+    {
+    case p2m_mmio_direct_io:
+        e.pte |= PTE_PBMT_IO;
+        break;
+
+    default:
+        break;
+    }
+
+    pte_set_mfn(&amp;e, mfn);
+
+    ASSERT(!(mfn_to_maddr(mfn) &amp; ~PADDR_MASK));
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
... PADDR_MASK is actually narrow enough to catch that case. Maybe best to
add an explicit assertion to that effect?</pre>
    </blockquote>
    <pre>Then it should be enough instead of what we have now:
  ASSERT(mfn_valid(mfn));

</pre>
    <blockquote type="cite"
      cite="mid:3ede10e7-8e43-4277-9197-14a3e5ab1cc1@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    if ( !is_table )
+    {
+        p2m_set_permission(&amp;e, t);
+
+        if ( t &lt; p2m_ext_storage )
+            p2m_set_type(&amp;e, t);
+        else
+            panic("unimplemeted\n");
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
The check is already done inside p2m_set_type() - why open-code it here?</pre>
    </blockquote>
    <pre>It isn't really matters now (so could be dropped), but in further patch this part
of code will look like:
        metadata[indx].pte = p2m_invalid;

        if ( t &lt; p2m_ext_storage )
            p2m_set_type(&amp;e, t, indx);
        else
        {
            e.pte |= MASK_INSR(p2m_ext_storage, P2M_TYPE_PTE_BITS_MASK);
            p2m_set_type(metadata, t, indx);
        }
So my intention was to re-use p2m_set_type() without changing of a prototype. So,
if a type is stored in PTE bits then we pass PTE directly, if not - then pass
metadata.

Thanks.
</pre>
    <pre>~ Oleksii</pre>
  </body>
</html>

--------------kAGi4LqE0ZJsty7WsbAHekyl--


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 15:12:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 15:12:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077726.1438752 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulUBo-0005nX-T4; Mon, 11 Aug 2025 15:11:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077726.1438752; Mon, 11 Aug 2025 15: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 1ulUBo-0005nQ-Q2; Mon, 11 Aug 2025 15:11:56 +0000
Received: by outflank-mailman (input) for mailman id 1077726;
 Mon, 11 Aug 2025 15:11:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ku41=2X=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ulUBn-0005nK-Q4
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 15:11:55 +0000
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com
 [2a00:1450:4864:20::636])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 83771d97-76c5-11f0-a325-13f23c93f187;
 Mon, 11 Aug 2025 17:11:53 +0200 (CEST)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-af968aa2de4so817965966b.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 08:11:53 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a21c0ccsm2027664366b.111.2025.08.11.08.11.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 08:11: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>
X-Inumbo-ID: 83771d97-76c5-11f0-a325-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754925113; x=1755529913; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=MyaD43a+XYQZS+eDoU3zc1/+jHiBCIyYsw7KL5qKibQ=;
        b=aZ2amIWoKy/tv+GWY2A763RoCKwpinF4mP2n9KEEu63qJW5dM7iOFhCS9EiEwkZrb4
         jXJKEZJCdHE+Awk17PJpZGyQM3qwj/vOWEvSYBeZ1x2+xFMRgtMfWAgzejYTr63Dk3X1
         7SRiv+InLGzpYVJknB5KJaH/ORWy/8KaQ4l2qO8Hjfc++evPiuCM5axRHBnJmu7aHDMw
         jpOJgstX9763fBdixEbhZH8ZdgSYQMy4+XGsbi/UQ+H7MjCDs934gjkM4bixthYymyzU
         CIs5jP4YG1mtWgQMmQaaLL03V9GDDyA4oS2XP5x7KIXBqbDNWbMw/SZllLq472ui10+h
         IL8Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754925113; x=1755529913;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MyaD43a+XYQZS+eDoU3zc1/+jHiBCIyYsw7KL5qKibQ=;
        b=mEhyuw0+8rAGb5YNZHEYKBL4W5ekZlcR7TdrmGzd+CedH1lxctjWberdq+MOJVlhXa
         SpwnWtRlAKgxyuBPKdhu3srH4N4kDtRgqQ0sFELCnXRXoUVH0N+yZLGdVg3dwa73x7jB
         izsXN3GEx8P2N9FgP4++q52+Pil1CB3JhsT/rykp6twJggpRBih9yCNCHbkR3TqowiA0
         vSL1JD8HAtCjiqDjEb0uIRXiztSrTNYrcpXr3rOQRfKw5hEkg0JrMRdog3x2PYOzjIxH
         z9yYhrI5ckPgd2OsMatP/RCTROQcBHGnXnvvZ7j13pU3nK9gRCWRwLghejFyvAHFQ5yl
         AOUg==
X-Forwarded-Encrypted: i=1; AJvYcCVr5M7cIFM87o+3f5cXokQK7Wn+teDz3zI2cgbrV8dhoBUDVpoOuTaH4eFyh/iYTGcX/TForCdsbAk=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy3ZPN4C+qCKWsGCsGGhQEf33WPC6AHXREKGNdI0DjMewD+5/cM
	kdPbkP6ruPAl104sNnY1d+vPAX5ew/PDS0oE18XgpVxeivyGnGITXojnhUjL/eHAoQ==
X-Gm-Gg: ASbGncupChSflfpzZVX8+BZIHmiv5K0FZOpn6DTj9JfORTDgQylVC3vGWkmxfx3u7lo
	o3QU+oxz7/J0PBG9rOBmA97r/XibBsZl3yWREGrCJQ1gOupzCWAxWZGBiO+WmJBKAaeKCYk/gA2
	9NorD8BTC06qAdGomsTYzp5QAZ61qz/Wzzw02rl3ETcS2PCHO7EIKSzdBG0l/iZVicOAqdz0KkV
	hU9DrZXIGhHROsYa8KBD69pOj71CTwyRbQJH6SJhujAaezULMThDgwcSsRGxBzekmJIvaIgjkYX
	2ZWHUPoSeRD5Bcllg1I9Ws34yVdm6X9JEY44k4e6ssBTWBjnMJ26/AaOUxhJ1K8szneroE/DxNW
	I6btgpJkTfk8Z7bFdsu5uNOZF46fy88rcTn04TwkaiPhAafQfmwYxMmwkbKt9/L8MCaz4nyc7Vn
	5tDOz8ihMl1mBCjDRKMA==
X-Google-Smtp-Source: AGHT+IHAx2g7G0Q5RYGEj6oxsFPiMHyJX8IJCtJmYRd4xmA6b/4gxr6xPvF6FdpNrI5/XcVld9xdNg==
X-Received: by 2002:a17:906:ee89:b0:ae3:7058:7b48 with SMTP id a640c23a62f3a-af9c648c961mr1220977166b.25.1754925112895;
        Mon, 11 Aug 2025 08:11:52 -0700 (PDT)
Message-ID: <13854e74-5804-4453-9344-092e0c81796a@suse.com>
Date: Mon, 11 Aug 2025 17:11:50 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 14/20] xen/riscv: Implement p2m_pte_from_mfn() and
 support PBMT configuration
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <1370613cd6f52e90591b15ad52c95d7c81908cf6.1753973161.git.oleksii.kurochko@gmail.com>
 <3ede10e7-8e43-4277-9197-14a3e5ab1cc1@suse.com>
 <e0f21085-8cce-4778-b15d-6dfd5e615aa2@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: <e0f21085-8cce-4778-b15d-6dfd5e615aa2@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.08.2025 16:44, Oleksii Kurochko wrote:
> On 8/11/25 1:36 PM, Jan Beulich wrote:
>> On 31.07.2025 17:58, Oleksii Kurochko wrote:
>>> +static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t, bool is_table)
>>> +{
>>> +    pte_t e = (pte_t) { PTE_VALID };
>> This and the rest of the function demand that mfn != INVALID_MFN, no matter
>> whether ...
>>
>>> +    switch ( t )
>>> +    {
>>> +    case p2m_mmio_direct_io:
>>> +        e.pte |= PTE_PBMT_IO;
>>> +        break;
>>> +
>>> +    default:
>>> +        break;
>>> +    }
>>> +
>>> +    pte_set_mfn(&e, mfn);
>>> +
>>> +    ASSERT(!(mfn_to_maddr(mfn) & ~PADDR_MASK));
>> ... PADDR_MASK is actually narrow enough to catch that case. Maybe best to
>> add an explicit assertion to that effect?
> 
> Then it should be enough instead of what we have now:
>    ASSERT(mfn_valid(mfn));

No, that would exclude MMIO living beyond max_page.

>>> +    if ( !is_table )
>>> +    {
>>> +        p2m_set_permission(&e, t);
>>> +
>>> +        if ( t < p2m_ext_storage )
>>> +            p2m_set_type(&e, t);
>>> +        else
>>> +            panic("unimplemeted\n");
>> The check is already done inside p2m_set_type() - why open-code it here?
> 
> It isn't really matters now (so could be dropped), but in further patch this part
> of code will look like:
>          metadata[indx].pte = p2m_invalid;
> 
>          if ( t < p2m_ext_storage )
>              p2m_set_type(&e, t, indx);
>          else
>          {
>              e.pte |= MASK_INSR(p2m_ext_storage, P2M_TYPE_PTE_BITS_MASK);
>              p2m_set_type(metadata, t, indx);
>          }
> So my intention was to re-use p2m_set_type() without changing of a prototype. So,
> if a type is stored in PTE bits then we pass PTE directly, if not - then pass
> metadata.

Then at the very least p2m_set_type() may not be a good name; a function of this
name imo should set the type, whatever it takes to do so. But I'm unconvinced of
the model as a whole.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 15:19:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 15:19:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077734.1438763 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulUIk-0006Pr-JT; Mon, 11 Aug 2025 15:19:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077734.1438763; Mon, 11 Aug 2025 15:19: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 1ulUIk-0006Pk-GI; Mon, 11 Aug 2025 15:19:06 +0000
Received: by outflank-mailman (input) for mailman id 1077734;
 Mon, 11 Aug 2025 15:19:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=MOyo=2X=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1ulUIi-0006Pe-Lg
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 15:19:04 +0000
Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com
 [2a00:1450:4864:20::530])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8389974b-76c6-11f0-a325-13f23c93f187;
 Mon, 11 Aug 2025 17:19:03 +0200 (CEST)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-605b9488c28so7949425a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 08:19:03 -0700 (PDT)
Received: from [192.168.1.17] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-615a911567fsm18232723a12.61.2025.08.11.08.19.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 08:19: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>
X-Inumbo-ID: 8389974b-76c6-11f0-a325-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754925543; x=1755530343; darn=lists.xenproject.org;
        h=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=5VSUpEHUUMjWYlJ08GVQz7+Yhi7mO9arUSHs7DQTdM4=;
        b=ZAvWpkYyktyM9ptJzt8VHhifKq44Vl4gDBWarIce+2KoLgBQYIMCWBbnsyeGW7cIaM
         NO8YGbkHnHx01g9EpK/whzwGI9AaYZSqEUb9qYvasZd6nozKmARrZUOhhy88/cQEsmGf
         Gqt4K7lCivGC1ZKJpDfLPZ8werAmk6tgWk+3pB8vl96TFy2Kzm30t74ibkuH2xXvDUt4
         zjQjD2BMC+Ip7E1G58P/9ACXFezm9oN72XJwuI4EOd0idnWdtFpDt/ZmS1RQoIQQh4vl
         Kg8DofjAP5zKOJ2IiXKHw4dE8/GOnbjP2kPpk9zCbXpW3E2Az2gaYJlab/bxspNURRUn
         ckhA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754925543; x=1755530343;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=5VSUpEHUUMjWYlJ08GVQz7+Yhi7mO9arUSHs7DQTdM4=;
        b=VHkjXV03cgYC/NMyDOBv3wwCpPPBuljllndpjVldd/bInPR4cjZe2W84V39RpV1Up1
         KzKdtJebITExx5qSzR5ChHmTWmzPtTKxgS9cYvq51G8gV7uhPLgwrzezOmMswP5yBn+W
         Q0Ft8coFPK7Vz8od8InRYHLHWqoIJBLIgg5kAsrlGMf05Y6IVEdkCCJnnL2uT+WjWkNr
         MG1nWoja529stdgOuQff3Z87/tKGHL+7W42P57Mw1kFeUpt9QXgvu/qOjeO8/NT8GMM8
         Rn8cpW8sZSPB8hVy6SP6hxqBYr4Yd8ASjnqnKoikWO/8DEJA512zLYxfG+QSXgV3OfL7
         1eIQ==
X-Forwarded-Encrypted: i=1; AJvYcCXoTWkkqIZTy4kisP9fC0OV5z7Bi2/TIUapj7x+/5RZTJfIDzwVGdPACrRAgfpkmOBCGBQn+zytv3Y=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwMHDNVURAEsNPBOrcVvWxCQEPom+GGW0edXGzBEgu6en3iJUE6
	fJWBRVWG5TGbvJC+nAUUm+Xzp1qlmp+MuzVxXlLQH5FREQ07+ntTxuba
X-Gm-Gg: ASbGncv+on8NuCjFaGFJ+ls4TFw79oJtgcaipWreWk2Vp8xv8dOmENufA09OjuHRKAI
	jccm1GvOFgPcMS0kh3fKgBY1vYXqAfO5QLeH9hJPU6XZEGl6K5Yq0GmXSrlJX/9hqcWaISFw1PI
	M0e8+Z+a/PiOW8ctvaR/nma5HU65UiwDJChVkPz7Ari7BZKOc8WQ8FyHQkjewY7A++xhLnWpx7e
	GjRkdfvdkG40rGzkk/JNxNNXyUD/i5Y/5PMpnvdDLVLsHRkNcDWrt6WxQefkv2CeJbFebxHn3Pd
	4Tz8RXX7++RwihCkQJBZjrym5B8meAR6X2ugmIOxKMit6AgsR+PxHiXGCZvUyIovtoHTABEijZc
	yNo92pvUOY+ZUT71ToXbsWYGbJ4yMxr3RjGhiyGRlbQgcH4oOJ8cVD8VL/9xYcDc4Jf3a1CaF
X-Google-Smtp-Source: AGHT+IFhU1dQDps2lbZ7QqIRlgjSrPJWJO1bn7+On+fvl/P6pLmExLOVBAt3W76jr+Y9xTSN9KWNuA==
X-Received: by 2002:a05:6402:4416:b0:617:d013:74a with SMTP id 4fb4d7f45d1cf-617e2bf8713mr12894643a12.4.1754925542434;
        Mon, 11 Aug 2025 08:19:02 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------wMBQ7AGjueSMXPSR5FEb2k5o"
Message-ID: <adc9689b-a3e2-47fb-a8ed-6481371c751d@gmail.com>
Date: Mon, 11 Aug 2025 17:19:00 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 16/20] xen/riscv: Implement superpage splitting for p2m
 mappings
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <6890f77e577493194ea94834989dc0841d18eed0.1753973161.git.oleksii.kurochko@gmail.com>
 <cc0fd91c-2dd1-4094-997a-87856f6cd914@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <cc0fd91c-2dd1-4094-997a-87856f6cd914@suse.com>

This is a multi-part message in MIME format.
--------------wMBQ7AGjueSMXPSR5FEb2k5o
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 8/11/25 1:59 PM, Jan Beulich wrote:
> On 31.07.2025 17:58, Oleksii Kurochko wrote:
>> Add support for down large memory mappings ("superpages") in the RISC-V
>> p2m mapping so that smaller, more precise mappings ("finer-grained entries")
>> can be inserted into lower levels of the page table hierarchy.
>>
>> To implement that the following is done:
>> - Introduce p2m_split_superpage(): Recursively shatters a superpage into
>>    smaller page table entries down to the target level, preserving original
>>    permissions and attributes.
>> - p2m_set_entry() updated to invoke superpage splitting when inserting
>>    entries at lower levels within a superpage-mapped region.
>>
>> This implementation is based on the ARM code, with modifications to the part
>> that follows the BBM (break-before-make) approach, some parts are simplified
>> as according to RISC-V spec:
>>    It is permitted for multiple address-translation cache entries to co-exist
>>    for the same address. This represents the fact that in a conventional
>>    TLB hierarchy, it is possible for multiple entries to match a single
>>    address if, for example, a page is upgraded to a superpage without first
>>    clearing the original non-leaf PTEâ€™s valid bit and executing an SFENCE.VMA
>>    with rs1=x0, or if multiple TLBs exist in parallel at a given level of the
>>    hierarchy. In this case, just as if an SFENCE.VMA is not executed between
>>    a write to the memory-management tables and subsequent implicit read of the
>>    same address: it is unpredictable whether the old non-leaf PTE or the new
>>    leaf PTE is used, but the behavior is otherwise well defined.
>> In contrast to the Arm architecture, where BBM is mandatory and failing to
>> use it in some cases can lead to CPU instability, RISC-V guarantees
>> stability, and the behavior remains safe â€” though unpredictable in terms of
>> which translation will be used.
>>
>> Additionally, the page table walk logic has been adjusted, as ARM uses the
>> opposite number of levels compared to RISC-V.
> As before, I think you mean "numbering".

Yes, level numbering would be better.

>
>> --- a/xen/arch/riscv/p2m.c
>> +++ b/xen/arch/riscv/p2m.c
>> @@ -539,6 +539,91 @@ static void p2m_free_subtree(struct p2m_domain *p2m,
>>       p2m_free_page(p2m, pg);
>>   }
>>   
>> +static bool p2m_split_superpage(struct p2m_domain *p2m, pte_t *entry,
>> +                                unsigned int level, unsigned int target,
>> +                                const unsigned int *offsets)
>> +{
>> +    struct page_info *page;
>> +    unsigned long i;
>> +    pte_t pte, *table;
>> +    bool rv = true;
>> +
>> +    /* Convenience aliases */
>> +    mfn_t mfn = pte_get_mfn(*entry);
>> +    unsigned int next_level = level - 1;
>> +    unsigned int level_order = XEN_PT_LEVEL_ORDER(next_level);
>> +
>> +    /*
>> +     * This should only be called with target != level and the entry is
>> +     * a superpage.
>> +     */
>> +    ASSERT(level > target);
>> +    ASSERT(pte_is_superpage(*entry, level));
>> +
>> +    page = p2m_alloc_page(p2m->domain);
>> +    if ( !page )
>> +    {
>> +        /*
>> +         * The caller is in charge to free the sub-tree.
>> +         * As we didn't manage to allocate anything, just tell the
>> +         * caller there is nothing to free by invalidating the PTE.
>> +         */
>> +        memset(entry, 0, sizeof(*entry));
>> +        return false;
>> +    }
>> +
>> +    table = __map_domain_page(page);
>> +
>> +    /*
>> +     * We are either splitting a second level 1G page into 512 first level
>> +     * 2M pages, or a first level 2M page into 512 zero level 4K pages.
>> +     */
> Such a comment is at risk of (silently) going stale when support for 512G
> mappings is added. I wonder if it's really that informative to have here.

Good point, I think we could really drop it.
Regarding support for 512G mappings. Is it really make sense to support
such big mappings? It seems like some operations as splitting or sub-entry
freeing could be pretty long under some circumstances.

>
>> +    for ( i = 0; i < XEN_PT_ENTRIES; i++ )
>> +    {
>> +        pte_t *new_entry = table + i;
>> +
>> +        /*
>> +         * Use the content of the superpage entry and override
>> +         * the necessary fields. So the correct permission are kept.
>> +         */
> It's not just permissions though? The memory type field also needs
> retaining (and is being retained this way). Maybe better say "attributes"?

Sure, I'll use "attributes" instead.

Thanks.

~ Oleksii

--------------wMBQ7AGjueSMXPSR5FEb2k5o
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/11/25 1:59 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:cc0fd91c-2dd1-4094-997a-87856f6cd914@suse.com">
      <pre wrap="" class="moz-quote-pre">On 31.07.2025 17:58, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">Add support for down large memory mappings ("superpages") in the RISC-V
p2m mapping so that smaller, more precise mappings ("finer-grained entries")
can be inserted into lower levels of the page table hierarchy.

To implement that the following is done:
- Introduce p2m_split_superpage(): Recursively shatters a superpage into
  smaller page table entries down to the target level, preserving original
  permissions and attributes.
- p2m_set_entry() updated to invoke superpage splitting when inserting
  entries at lower levels within a superpage-mapped region.

This implementation is based on the ARM code, with modifications to the part
that follows the BBM (break-before-make) approach, some parts are simplified
as according to RISC-V spec:
  It is permitted for multiple address-translation cache entries to co-exist
  for the same address. This represents the fact that in a conventional
  TLB hierarchy, it is possible for multiple entries to match a single
  address if, for example, a page is upgraded to a superpage without first
  clearing the original non-leaf PTEâ€™s valid bit and executing an SFENCE.VMA
  with rs1=x0, or if multiple TLBs exist in parallel at a given level of the
  hierarchy. In this case, just as if an SFENCE.VMA is not executed between
  a write to the memory-management tables and subsequent implicit read of the
  same address: it is unpredictable whether the old non-leaf PTE or the new
  leaf PTE is used, but the behavior is otherwise well defined.
In contrast to the Arm architecture, where BBM is mandatory and failing to
use it in some cases can lead to CPU instability, RISC-V guarantees
stability, and the behavior remains safe â€” though unpredictable in terms of
which translation will be used.

Additionally, the page table walk logic has been adjusted, as ARM uses the
opposite number of levels compared to RISC-V.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
As before, I think you mean "numbering".</pre>
    </blockquote>
    <pre>Yes, level numbering would be better.

</pre>
    <blockquote type="cite"
      cite="mid:cc0fd91c-2dd1-4094-997a-87856f6cd914@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -539,6 +539,91 @@ static void p2m_free_subtree(struct p2m_domain *p2m,
     p2m_free_page(p2m, pg);
 }
 
+static bool p2m_split_superpage(struct p2m_domain *p2m, pte_t *entry,
+                                unsigned int level, unsigned int target,
+                                const unsigned int *offsets)
+{
+    struct page_info *page;
+    unsigned long i;
+    pte_t pte, *table;
+    bool rv = true;
+
+    /* Convenience aliases */
+    mfn_t mfn = pte_get_mfn(*entry);
+    unsigned int next_level = level - 1;
+    unsigned int level_order = XEN_PT_LEVEL_ORDER(next_level);
+
+    /*
+     * This should only be called with target != level and the entry is
+     * a superpage.
+     */
+    ASSERT(level &gt; target);
+    ASSERT(pte_is_superpage(*entry, level));
+
+    page = p2m_alloc_page(p2m-&gt;domain);
+    if ( !page )
+    {
+        /*
+         * The caller is in charge to free the sub-tree.
+         * As we didn't manage to allocate anything, just tell the
+         * caller there is nothing to free by invalidating the PTE.
+         */
+        memset(entry, 0, sizeof(*entry));
+        return false;
+    }
+
+    table = __map_domain_page(page);
+
+    /*
+     * We are either splitting a second level 1G page into 512 first level
+     * 2M pages, or a first level 2M page into 512 zero level 4K pages.
+     */
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Such a comment is at risk of (silently) going stale when support for 512G
mappings is added. I wonder if it's really that informative to have here.</pre>
    </blockquote>
    <pre>Good point, I think we could really drop it.
Regarding support for 512G mappings. Is it really make sense to support
such big mappings? It seems like some operations as splitting or sub-entry
freeing could be pretty long under some circumstances.

</pre>
    <blockquote type="cite"
      cite="mid:cc0fd91c-2dd1-4094-997a-87856f6cd914@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    for ( i = 0; i &lt; XEN_PT_ENTRIES; i++ )
+    {
+        pte_t *new_entry = table + i;
+
+        /*
+         * Use the content of the superpage entry and override
+         * the necessary fields. So the correct permission are kept.
+         */
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
It's not just permissions though? The memory type field also needs
retaining (and is being retained this way). Maybe better say "attributes"?</pre>
    </blockquote>
    <pre>Sure, I'll use "attributes" instead.

Thanks.

~ Oleksii
</pre>
  </body>
</html>

--------------wMBQ7AGjueSMXPSR5FEb2k5o--


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 15:23:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 15:23:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077748.1438772 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulUMt-0008GL-6r; Mon, 11 Aug 2025 15:23:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077748.1438772; Mon, 11 Aug 2025 15:23: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 1ulUMt-0008GE-4L; Mon, 11 Aug 2025 15:23:23 +0000
Received: by outflank-mailman (input) for mailman id 1077748;
 Mon, 11 Aug 2025 15:23:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=MOyo=2X=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1ulUMs-0008G8-AT
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 15:23:22 +0000
Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com
 [2a00:1450:4864:20::52c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1d2f4aa4-76c7-11f0-a325-13f23c93f187;
 Mon, 11 Aug 2025 17:23:21 +0200 (CEST)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-61557997574so6358387a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 08:23:21 -0700 (PDT)
Received: from [192.168.1.17] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-615a8fe7970sm18236135a12.31.2025.08.11.08.23.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 08:23: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>
X-Inumbo-ID: 1d2f4aa4-76c7-11f0-a325-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754925800; x=1755530600; darn=lists.xenproject.org;
        h=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=pkdl6P/7L5F25Eh4NaR/4QKX1qjZ9ySZQ4Bde96aweE=;
        b=DzYk1yCOd7zhHzNCWM5TsHQ3ymC6NIv/Mid9qUpExkW5UyfWwjrvvQ0x0yL4lvk957
         dZxhF2/A7tOQhgxNJsb4ZpnFqd3Hn5F634OvwwRz01opCH4nCW1VY9U56t9K7TntdFuM
         vFCgtMcbYH+c7uWhEJsPnIDFiM8hkHeJ549BCI7zlEhXNhBBX3eCnisLmopmWRMvXdSg
         Ur2QprvEwtEIzUq2GLvyaNVcEj8zxvBIkaCm9JgkBoMAtgAxTxaod9brn8KfYKi42g32
         ScNTnXL4sZ720VNaGIljSMC9LonNhdOS5kr4d36rTafGYI9J7g5Ncevzu1Vh2dbHwwEO
         sm/Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754925800; x=1755530600;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=pkdl6P/7L5F25Eh4NaR/4QKX1qjZ9ySZQ4Bde96aweE=;
        b=bxNmBxhlJultD+YMbzPrfPVW/D+cqGVOXUNTUzcoqkOnF3RToKsQf0nNbaJsr5gejV
         /TawvPmMMRrcqmRxl9u8HyFI7V/cS8sGRKb+lmwONEIhJAp0llVj7IaCvqkNypv4icIg
         3qhznzUh2oO0mtR21JTo4XjDZZrRapUOwmT+F5n9I+QY6gYrJrA8No97Hv0nkz01+yq1
         DX3hrBoACSaKA3eb7MLedjmQ90qIFD+3R/ug6tyYHqxrT2J9g8LLapm+h2Y1uWeb43uw
         8pocVa7ZioRpkFKBnCSjAmStoKRrQS6fNiE+aCf38SQ2JyZWenlWFXx5059u8cI0eWm4
         vyew==
X-Forwarded-Encrypted: i=1; AJvYcCXkLhEiNVUAiV6lIkenvyWrv0nREadvWIZbt0orrksKgUL6xULjiacg6m5CY6o3wVZXiaAbmigskiE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwOYQUuk2SyR+twikHc3ip130ZtItpJbM7f+/vVxpT5FlsbV/gY
	qbdZ8xoev3I95RnZG1jsnqP3C+nl6Qj7g1zy4bJ5N0SqVLappTI+N/VI
X-Gm-Gg: ASbGncsSlp9LSAuscXfRzV0DOoSFmm0GOQjaEPLX5tuBn/9VlZo7IVuS94VMfFJpsd1
	SaCfUrCiV4+U8/Jo95ddcGvQONHf6AiEvxQH9ykj6CCf+l8jOdNrlgsoiZSfeCbdIf0OXB4kXjJ
	1lIt9pXoWI9ct/fsmk0kmgXyb44d2DlZqOJQwBOaS1DinnhZ9MBxNTw/kcWjznE3jQHwhj2+q/x
	zd+Z6tn4cbrtfn+hnYn1RGqVYvpi1gAs0JC/z2iiE+Drz17P2hld5hCXIKi4T6F8YcSrdr4y2Pb
	YvQ6DsVfeMB6qwLmRw9t5opxbsBHnY8yJ296n3L37F/5FplWQU8sgBVjkpNCOXhZJtRQsGCGMh2
	QPpPByD8fbV+/OUup16DDAjWeU0Mcfy4CpWvS4HTQf/7X6eFRG3zXQoOdsF+q8LhnXg8jbmoE
X-Google-Smtp-Source: AGHT+IExDSlHu0siJw8mztCwUl5U/DeAPOswM5nttSDYG1lE9gpqgq4XaH0cFzn+D/vyuDgvgd4o+w==
X-Received: by 2002:a05:6402:2884:b0:615:5536:65f with SMTP id 4fb4d7f45d1cf-617e2e92e9emr8111196a12.32.1754925800303;
        Mon, 11 Aug 2025 08:23:20 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------L2CfagFlon7UxWSnfrC00h4A"
Message-ID: <2012d0ab-f6f5-4577-ab4f-0a275742fc69@gmail.com>
Date: Mon, 11 Aug 2025 17:23:17 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/5] CI: Update riscv64 to use Debian Trixie
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Victor Lira <victorm.lira@amd.com>
References: <20250809221206.1260861-1-andrew.cooper3@citrix.com>
 <20250809221206.1260861-4-andrew.cooper3@citrix.com>
 <2919f22b-0b0c-488e-b0c6-96b9538e63d9@gmail.com>
 <2e3412e8-9d62-449b-87e6-22d34ce06e30@citrix.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <2e3412e8-9d62-449b-87e6-22d34ce06e30@citrix.com>

This is a multi-part message in MIME format.
--------------L2CfagFlon7UxWSnfrC00h4A
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 8/11/25 11:56 AM, Andrew Cooper wrote:
> On 11/08/2025 9:43 am, Oleksii Kurochko wrote:
>>
>> On 8/10/25 12:12 AM, Andrew Cooper wrote:
>>> Everything works fine with Debian 13.  Provide two new build jobs, and update
>>> both the randconfig the test jobs.
>>>
>>> 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: Shawn Anastasio<sanastasio@raptorengineering.com>
>>> CC: Oleksii Kurochko<oleksii.kurochko@gmail.com>
>>> CC: Doug Goldstein<cardoe@cardoe.com>
>>> CC: Marek Marczykowski-GÃ³recki<marmarek@invisiblethingslab.com>
>>> CC: Victor Lira<victorm.lira@amd.com>
>>>
>>> https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/1975929387
>>> ---
>>>   automation/gitlab-ci/build.yaml | 22 ++++++++++++++++++----
>>>   automation/gitlab-ci/test.yaml  |  2 +-
>>>   2 files changed, 19 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
>>> index 3fe539dc5683..f8e45f3467c8 100644
>>> --- a/automation/gitlab-ci/build.yaml
>>> +++ b/automation/gitlab-ci/build.yaml
>>> @@ -329,10 +329,10 @@ debian-13-ppc64le-gcc-debug:
>>>         CONFIG_UBSAN=y
>>>         CONFIG_UBSAN_FATAL=y
>>>   
>>> -debian-12-riscv64-gcc-debug:
>>> +debian-13-riscv64-gcc-debug:
>>>     extends: .gcc-riscv64-cross-build-debug
>>>     variables:
>>> -    CONTAINER: debian:12-riscv64
>>> +    CONTAINER: debian:13-riscv64
>>>       KBUILD_DEFCONFIG: tiny64_defconfig
>>>       HYPERVISOR_ONLY: y
>>>       EXTRA_XEN_CONFIG: |
>>> @@ -727,6 +727,20 @@ debian-12-riscv64-gcc:
>>>       KBUILD_DEFCONFIG: tiny64_defconfig
>>>       HYPERVISOR_ONLY: y
>>>   
>>> +debian-12-riscv64-gcc-debug:
>>> +  extends: .gcc-riscv64-cross-build-debug
>>> +  variables:
>>> +    CONTAINER: debian:12-riscv64
>>> +    KBUILD_DEFCONFIG: tiny64_defconfig
>>> +    HYPERVISOR_ONLY: y
>> Don't you mind to keep an order? So:
>>    debian-12-riscv64-gcc-debug:
>>    ...
>>    debian-13-riscv64-gcc-debug:
>>    ...
> Notice how those 2 hunks are 400 lines apart in the file.
>
> This is deliberate so debian-13-riscv64-gcc-debug (the one needed for
> tests) is scheduled with higher priority than the others.
>
> The diff certainly isn't great, but this is necessary to shorten the
> pipeline.
>
>> Also, it will make a diff a little bit better.
>>
>>> +
>>> +debian-13-riscv64-gcc:
>>> +  extends: .gcc-riscv64-cross-build
>>> +  variables:
>>> +    CONTAINER: debian:13-riscv64
>>> +    KBUILD_DEFCONFIG: tiny64_defconfig
>>> +    HYPERVISOR_ONLY: y
>>> +
>>>   .riscv-fixed-randconfig:
>>>     variables: &riscv-fixed-randconfig
>>>       EXTRA_FIXED_RANDCONFIG: |
>>> @@ -739,10 +753,10 @@ debian-12-riscv64-gcc:
>>>         CONFIG_VM_EVENT=n
>>>         CONFIG_XSM=n
>>>   
>>> -debian-12-riscv64-gcc-randconfig:
>>> +debian-13-riscv64-gcc-randconfig:
>> Are we going to have randconfig build test only for Debian-13?
> We only have finite test capacity.
>
>>>     extends: .gcc-riscv64-cross-build
>>>     variables:
>>> -    CONTAINER: debian:12-riscv64
>>> +    CONTAINER: debian:13-riscv64
>>>       KBUILD_DEFCONFIG: tiny64_defconfig
>>>       RANDCONFIG: y
>>>       <<: *riscv-fixed-randconfig
>>> diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
>>> index 2f6f3affa637..9acd984d294c 100644
>>> --- a/automation/gitlab-ci/test.yaml
>>> +++ b/automation/gitlab-ci/test.yaml
>>> @@ -705,7 +705,7 @@ qemu-smoke-riscv64-gcc:
>>>     script:
>>>       - ./automation/scripts/qemu-smoke-riscv64.sh 2>&1 | tee ${LOGFILE}
>>>     needs:
>>> -    - debian-12-riscv64-gcc-debug
>>> +    - debian-13-riscv64-gcc-debug
>> The same as above, are we going to run smoke tests only for Debian-13?
> Again, test capacity.Â  Even for x86 and ARM, we only have one main build
> under test.
>
>> If the answer to this and the question above is â€œyes,â€ then (probably
>> keeping the order â€” first debian-12, then debian-13 â€” for the jobs):
>>   Reviewed-by: Oleksii Kurochko<oleksii.kurochko@gmail.com>
> Sorry, but rearranging is one thing that can't really happen.Â  Are you
> happy with my justification?

Yes, I am happy with that. Feel free to add my Reviewed-by.

Thanks for an explanation.

~ Oleksii

--------------L2CfagFlon7UxWSnfrC00h4A
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/11/25 11:56 AM, Andrew Cooper
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:2e3412e8-9d62-449b-87e6-22d34ce06e30@citrix.com">
      <pre wrap="" class="moz-quote-pre">On 11/08/2025 9:43 am, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">

On 8/10/25 12:12 AM, Andrew Cooper wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">Everything works fine with Debian 13.  Provide two new build jobs, and update
both the randconfig the test jobs.

Signed-off-by: Andrew Cooper <a class="moz-txt-link-rfc2396E" href="mailto:andrew.cooper3@citrix.com">&lt;andrew.cooper3@citrix.com&gt;</a>
---
CC: Anthony PERARD <a class="moz-txt-link-rfc2396E" href="mailto:anthony.perard@vates.tech">&lt;anthony.perard@vates.tech&gt;</a>
CC: Michal Orzel <a class="moz-txt-link-rfc2396E" href="mailto:michal.orzel@amd.com">&lt;michal.orzel@amd.com&gt;</a>
CC: Jan Beulich <a class="moz-txt-link-rfc2396E" href="mailto:jbeulich@suse.com">&lt;jbeulich@suse.com&gt;</a>
CC: Julien Grall <a class="moz-txt-link-rfc2396E" href="mailto:julien@xen.org">&lt;julien@xen.org&gt;</a>
CC: Roger Pau MonnÃ© <a class="moz-txt-link-rfc2396E" href="mailto:roger.pau@citrix.com">&lt;roger.pau@citrix.com&gt;</a>
CC: Stefano Stabellini <a class="moz-txt-link-rfc2396E" href="mailto:sstabellini@kernel.org">&lt;sstabellini@kernel.org&gt;</a>
CC: Shawn Anastasio <a class="moz-txt-link-rfc2396E" href="mailto:sanastasio@raptorengineering.com">&lt;sanastasio@raptorengineering.com&gt;</a>
CC: Oleksii Kurochko <a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>
CC: Doug Goldstein <a class="moz-txt-link-rfc2396E" href="mailto:cardoe@cardoe.com">&lt;cardoe@cardoe.com&gt;</a>
CC: Marek Marczykowski-GÃ³recki <a class="moz-txt-link-rfc2396E" href="mailto:marmarek@invisiblethingslab.com">&lt;marmarek@invisiblethingslab.com&gt;</a>
CC: Victor Lira <a class="moz-txt-link-rfc2396E" href="mailto:victorm.lira@amd.com">&lt;victorm.lira@amd.com&gt;</a>

<a class="moz-txt-link-freetext" href="https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/1975929387">https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/1975929387</a>
---
 automation/gitlab-ci/build.yaml | 22 ++++++++++++++++++----
 automation/gitlab-ci/test.yaml  |  2 +-
 2 files changed, 19 insertions(+), 5 deletions(-)

diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index 3fe539dc5683..f8e45f3467c8 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -329,10 +329,10 @@ debian-13-ppc64le-gcc-debug:
       CONFIG_UBSAN=y
       CONFIG_UBSAN_FATAL=y
 
-debian-12-riscv64-gcc-debug:
+debian-13-riscv64-gcc-debug:
   extends: .gcc-riscv64-cross-build-debug
   variables:
-    CONTAINER: debian:12-riscv64
+    CONTAINER: debian:13-riscv64
     KBUILD_DEFCONFIG: tiny64_defconfig
     HYPERVISOR_ONLY: y
     EXTRA_XEN_CONFIG: |
@@ -727,6 +727,20 @@ debian-12-riscv64-gcc:
     KBUILD_DEFCONFIG: tiny64_defconfig
     HYPERVISOR_ONLY: y
 
+debian-12-riscv64-gcc-debug:
+  extends: .gcc-riscv64-cross-build-debug
+  variables:
+    CONTAINER: debian:12-riscv64
+    KBUILD_DEFCONFIG: tiny64_defconfig
+    HYPERVISOR_ONLY: y
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">Don't you mind to keep an order? So:
  debian-12-riscv64-gcc-debug:
  ...
  debian-13-riscv64-gcc-debug:
  ...
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Notice how those 2 hunks are 400 lines apart in the file.

This is deliberate so debian-13-riscv64-gcc-debug (the one needed for
tests) is scheduled with higher priority than the others.

The diff certainly isn't great, but this is necessary to shorten the
pipeline.

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">
Also, it will make a diff a little bit better.

</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">+
+debian-13-riscv64-gcc:
+  extends: .gcc-riscv64-cross-build
+  variables:
+    CONTAINER: debian:13-riscv64
+    KBUILD_DEFCONFIG: tiny64_defconfig
+    HYPERVISOR_ONLY: y
+
 .riscv-fixed-randconfig:
   variables: &amp;riscv-fixed-randconfig
     EXTRA_FIXED_RANDCONFIG: |
@@ -739,10 +753,10 @@ debian-12-riscv64-gcc:
       CONFIG_VM_EVENT=n
       CONFIG_XSM=n
 
-debian-12-riscv64-gcc-randconfig:
+debian-13-riscv64-gcc-randconfig:
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">Are we going to have randconfig build test only for Debian-13?
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
We only have finite test capacity.

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">
</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">   extends: .gcc-riscv64-cross-build
   variables:
-    CONTAINER: debian:12-riscv64
+    CONTAINER: debian:13-riscv64
     KBUILD_DEFCONFIG: tiny64_defconfig
     RANDCONFIG: y
     &lt;&lt;: *riscv-fixed-randconfig
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 2f6f3affa637..9acd984d294c 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -705,7 +705,7 @@ qemu-smoke-riscv64-gcc:
   script:
     - ./automation/scripts/qemu-smoke-riscv64.sh 2&gt;&amp;1 | tee ${LOGFILE}
   needs:
-    - debian-12-riscv64-gcc-debug
+    - debian-13-riscv64-gcc-debug
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">The same as above, are we going to run smoke tests only for Debian-13?
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Again, test capacity.Â  Even for x86 and ARM, we only have one main build
under test.

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">
If the answer to this and the question above is â€œyes,â€ then (probably
keeping the order â€” first debian-12, then debian-13 â€” for the jobs):
 Reviewed-by: Oleksii Kurochko <a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Sorry, but rearranging is one thing that can't really happen.Â  Are you
happy with my justification?</pre>
    </blockquote>
    <pre>Yes, I am happy with that. Feel free to add my Reviewed-by.

Thanks for an explanation.

~ Oleksii</pre>
  </body>
</html>

--------------L2CfagFlon7UxWSnfrC00h4A--


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 15:32:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 15:32:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077758.1438784 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulUW4-0001i7-3Q; Mon, 11 Aug 2025 15:32:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077758.1438784; Mon, 11 Aug 2025 15:32: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 1ulUW3-0001i0-VX; Mon, 11 Aug 2025 15:32:51 +0000
Received: by outflank-mailman (input) for mailman id 1077758;
 Mon, 11 Aug 2025 15:32:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=MOyo=2X=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1ulUW3-0001ht-4C
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 15:32:51 +0000
Received: from mail-ej1-x62e.google.com (mail-ej1-x62e.google.com
 [2a00:1450:4864:20::62e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6ea14f85-76c8-11f0-a325-13f23c93f187;
 Mon, 11 Aug 2025 17:32:47 +0200 (CEST)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-af8fd1b80e5so788478166b.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 08:32:47 -0700 (PDT)
Received: from [192.168.1.17] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a21c10asm2057887066b.116.2025.08.11.08.32.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 08:32: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>
X-Inumbo-ID: 6ea14f85-76c8-11f0-a325-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754926366; x=1755531166; darn=lists.xenproject.org;
        h=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=ziDdkQh8q6dHIk2Ps8yc+L8q/2MsULl1nXOuEdpM3T8=;
        b=OhBNVwS6dUwE7mh5iQq9yE8Xx/cIfusieCWlU53qts11FQzipKJMlPlXbgruuiopPx
         SR68T4X2ftuNU563q0i0mha4MAkiVC7mIGCXRgEB4plIE9wnpOj4/a1DuPkf/WEMeftk
         4HTnNbG4iYU5y/Ep8vL2yR5tqUvD4mataIBOJwDbVd6QwlczZAJ+30dbTZGvTQpYPgW7
         DG3TN5WLTFzJilkEPYjWyjQKpdSYwn4LKnRiylZOqrz8pYjVB6JuRkM+kIND1iOTRARq
         zQ6etr1ybh/0A7pQCBNV871xdXrh9+y+zScf+xu7kwaHPfOf52/6ay5egH8lD0Hz761p
         qvMg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754926366; x=1755531166;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=ziDdkQh8q6dHIk2Ps8yc+L8q/2MsULl1nXOuEdpM3T8=;
        b=vtrE0fGm90aPAL5v8ribUtfu7F6GoSGGjtFstq87Mpg6EB7KoNXmBp7hAD0yvA5Hcu
         I1GuO2DVDulwPQED7FRb9To1X9AKj2rd184JobHeM54JRe9IPwygwvDLbdauPdAvpkTe
         naZDqrDQWZJCo9WpHRdAr+SYaRX8KT02O0dbfQnHMTM3rEfwXpPrpDz5cSNS/cg6DXNI
         GPlnn9BwFLFMvBkfFNrr8Xiqwf0DsNUcQlJUc6E5M/vTwIwyCTlEWQ2lLX80enqUtT6P
         SpP5BCM0le8lfXzpWPgTsVVWVcDs/rAfFeUZO6q8G3DfISOilUesHc8DtipcT/6h2/L4
         +2Rg==
X-Forwarded-Encrypted: i=1; AJvYcCVUoHzBWiSXJOT9MVzD+sXLjUdR32ycxq+4maRswcrPgwQNR8gbkI1q2R9MZfm1yz40QfI6l6I3TRU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy8GzDJJ+awHlhA1wAeGG9QPBrgcBXjiP+86nd1VH7OqXxliCCa
	JyrofOPfrw0WUguRAqbIG+vsYrNmeekIk+Zh/LqX0/2nMN9+ZosUIabb
X-Gm-Gg: ASbGnctr7AfQE9l6DLiBL0CM1lJahHNhoOYH/GZ8Lx/HeJU+yhdpOKvBW+b/HctTSeW
	Le3ZTtCpHuXQIT9jVgw9KqOWq08sp5r+N/4d+obnHD4NlC1sNlDfgLfGV21100TZuOytM+mcJhN
	2eTZrqzYnxQ0/eOjS++1Hb5QBcfCoUakhMlJbKLB4VAsEY3x3/0+6GbGUn7HZbaXtTlU14+lccX
	ut9ivXreC5mLcMm8iMbY3hF+DBnuAHSA4orh0ZFrzf2d70TC8k7T+H12BEIK2Jre7aBLQVaHTsp
	V048owHg1x2dQlaDwE1hHgVYrROf7Y9fVc8kvGCP2IfBmZdncpqT400Yc8/sHDriIjFgYAH8359
	JXyapb7Lb8V1lEOH41NI/yDxH5zTryoQ9/R/TDO4YIGCAqdGUZtLsshKxoGjYTceYBHfug5N8
X-Google-Smtp-Source: AGHT+IHx3UbjOsI0GMujjkseLIlVnKxzLBwM8lJKYSoAhdymLRjNqV3ce0oY9uDWrwCSGDRJ4v6uAg==
X-Received: by 2002:a17:907:3e8d:b0:af9:116c:61cf with SMTP id a640c23a62f3a-af9c64d27f8mr1350286466b.43.1754926366210;
        Mon, 11 Aug 2025 08:32:46 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------KGZgshcsqRJ4OnlYYHHF9wFX"
Message-ID: <fe1cf58d-b00b-4a49-adc0-4738e6b2c2f8@gmail.com>
Date: Mon, 11 Aug 2025 17:32:44 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 17/20] xen/riscv: implement put_page()
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <7a7c07d431fc943e655216d389322638a640b2cd.1753973161.git.oleksii.kurochko@gmail.com>
 <aaf27a60-9f3c-4b4b-bad1-ace6f24260cf@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <aaf27a60-9f3c-4b4b-bad1-ace6f24260cf@suse.com>

This is a multi-part message in MIME format.
--------------KGZgshcsqRJ4OnlYYHHF9wFX
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 8/11/25 2:43 PM, Jan Beulich wrote:
> On 31.07.2025 17:58, Oleksii Kurochko wrote:
>> Implement put_page(), as it will be used by p2m_put_code().
> I would have ack-ed the code change, but the description is irritating:
> Who or what is p2m_put_code() (going to be)?

It should be p2m_put_*-related code.

>
>> Although CONFIG_STATIC_MEMORY has not yet been introduced for RISC-V,
>> a stub for PGC_static is added to avoid cluttering the code of
>> put_page_nr() with #ifdefs.
> There isn't any put_page_nr() being introduced (anymore), though.

I'll correct the commit message, it should be put_page() here.

Thanks.

~ Oleksii

--------------KGZgshcsqRJ4OnlYYHHF9wFX
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/11/25 2:43 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:aaf27a60-9f3c-4b4b-bad1-ace6f24260cf@suse.com">
      <pre wrap="" class="moz-quote-pre">On 31.07.2025 17:58, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">Implement put_page(), as it will be used by p2m_put_code().
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
I would have ack-ed the code change, but the description is irritating:
Who or what is p2m_put_code() (going to be)?</pre>
    </blockquote>
    <pre>It should be p2m_put_*-related code.

</pre>
    <blockquote type="cite"
      cite="mid:aaf27a60-9f3c-4b4b-bad1-ace6f24260cf@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">Although CONFIG_STATIC_MEMORY has not yet been introduced for RISC-V,
a stub for PGC_static is added to avoid cluttering the code of
put_page_nr() with #ifdefs.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
There isn't any put_page_nr() being introduced (anymore), though.</pre>
    </blockquote>
    <pre>I'll correct the commit message, it should be put_page() here.

Thanks.

~ Oleksii</pre>
  </body>
</html>

--------------KGZgshcsqRJ4OnlYYHHF9wFX--


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 15:34:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 15:34:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077767.1438793 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulUXk-0002Dq-DU; Mon, 11 Aug 2025 15:34:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077767.1438793; Mon, 11 Aug 2025 15:34: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 1ulUXk-0002Dj-A0; Mon, 11 Aug 2025 15:34:36 +0000
Received: by outflank-mailman (input) for mailman id 1077767;
 Mon, 11 Aug 2025 15:34:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=MOyo=2X=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1ulUXj-0002Dd-Bg
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 15:34:35 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ae821223-76c8-11f0-a325-13f23c93f187;
 Mon, 11 Aug 2025 17:34:34 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-af95525bac4so808978066b.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 08:34:34 -0700 (PDT)
Received: from [192.168.1.17] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a23ffc3sm2037851966b.124.2025.08.11.08.34.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 08:34: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>
X-Inumbo-ID: ae821223-76c8-11f0-a325-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754926474; x=1755531274; darn=lists.xenproject.org;
        h=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=YHF1L2pLFygULzgWE8B8Nqx2XDL3wvUhhXzQl/hNBSI=;
        b=mJmLYDWYmjURuifs2EWbTBwGjJdrL2rATUVxQBklNxRnrCpk02hMFJyYx3P60l8fJi
         6vCKDT/MAwXYmbwKlNJNQy7PQKuyaFgHcjVj88AglYt9YYTH51wmkYZex+wvlfY/Ge7i
         3dfOrquZnSgtVOVRzMxFMTsOH355pB2rfotyVC3JMS0UhGnEDCvLvoaludA/hkEt+tOr
         +vDoHi5q2IzfQjuWwI9O3YXWp59EjYnk/P7WEh0mwrSuqL3lkKs8OaYaM0mPP9DTze2f
         6DF7SF/LAzVWT25qzX5SIMQqvQ58hP4WVr+fAcOWUB+xZKStIG5J2Wpd+m8QiuUxc+mU
         Xodg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754926474; x=1755531274;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=YHF1L2pLFygULzgWE8B8Nqx2XDL3wvUhhXzQl/hNBSI=;
        b=DqDlGFjA4K5LmAsJZXsBkygiS5DrryaB7rlXWP5YFoqx0M7rA9/ax4z5GEvWmzA2Z/
         pHH+7Tx4L7y7tWRjo3ISXeXLp29xWucelkWfMXS7oLGie1vq7+c/Dccr4pYBmqOi3ojx
         r+3phh8d3gB6MKoB/TK565iFeIYYtcMajKD7d3GlvFU0LBXVHiX7k34Nbfi3jXhqEATs
         S1ojjg/EfLaPQL0R6tNLKXE3NFBpPLo/bda65ldBHYS0eAqiPRvh0aN3Hf7ofxCh7C6s
         0Slk+o+gOJ47Dn6I24USMrD6iKILMrRizHTKPOBZZupHnRHjGGWGqilYsJFPDiSVC0fx
         9hNQ==
X-Forwarded-Encrypted: i=1; AJvYcCWGoZTwc/GW61a3tcS+cD46JUnRyGHWad1Xm9X4lQ9V+EpioafHhvtHsP75oxSf2JuFVFpA+vqtixw=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy//hjnHnwaWH4Wi4+4HMtzW9FilKdU0/S+jg6tAmgRFaWVFqpL
	VwxP/5jG/cc2MwHhZlty2bC9txQ7eDMT3t4VSji/waZfB732aithOZJm
X-Gm-Gg: ASbGncspXNZ7hlVviZ8vXAhDdrRkaZ3JjE+TzeTwdfkL5F8miUHwGw2zDM5yOUhpmRh
	iV7W59BMO7SHcXeSZC39y62h/eMw9Pgnhvnf3R80cXcSZe4O1fu9/4XzAB+Wj5jD2Xc6YezJrsv
	6I/8UFGZF27mbU77RuGYD72S+w9ssWDAK6CHKNbX3cboTEwTUZiC44W9egvgTTCdfeOykW9h2/x
	uFS56HYSxYx1KTFVd0T5tPztsZhnYCGtj5AC3ZV9D00ncMn5BFAA55JfrlQdqatjqtW/KkwerLT
	944Iu8cWUZ/dIOVk+bPX2p3O8eeatsIsBVZPhAKFoQYjJS2KCVNUa86AJ4zO6ZnkVIgEAYgjkec
	8EFjHOo7SOkWqzSLAkVdlfHVJS8AyTIqpbDW6MzCbFQ/Be5oyqtpy+6Ie9BWcZ58ZAVQFpObu
X-Google-Smtp-Source: AGHT+IHE45vxsk6aHfZzAHH75TgLGRvcL19YxVsy+G0nN60p8DjsQQaIIdIPFsqx5vJfYEsIpyLxSQ==
X-Received: by 2002:a17:907:3d55:b0:af9:613b:3055 with SMTP id a640c23a62f3a-af9c63b0941mr1136048266b.2.1754926473549;
        Mon, 11 Aug 2025 08:34:33 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------tYbbX2m99O8kk8ixkPXHyn0C"
Message-ID: <96a48408-3a44-41b8-9ba5-1148a7e5ca6c@gmail.com>
Date: Mon, 11 Aug 2025 17:34:29 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 18/20] xen/riscv: implement mfn_valid() and page
 reference, ownership handling helpers
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <fe455eac54b6c874b8ddb69e94703c9a28330a4c.1753973161.git.oleksii.kurochko@gmail.com>
 <60a8be02-430b-4c37-bb4c-6285c2676c10@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <60a8be02-430b-4c37-bb4c-6285c2676c10@suse.com>

This is a multi-part message in MIME format.
--------------tYbbX2m99O8kk8ixkPXHyn0C
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 8/11/25 2:50 PM, Jan Beulich wrote:
> On 31.07.2025 17:58, Oleksii Kurochko wrote:
>> Implement the mfn_valid() macro to verify whether a given MFN is valid by
>> checking that it falls within the range [start_page, max_page).
>> These bounds are initialized based on the start and end addresses of RAM.
>>
>> As part of this patch, start_page is introduced and initialized with the
>> PFN of the first RAM page.
>> Also, initialize pdx_group_valid() by calling set_pdx_range() when
>> memory banks are being mapped.
>>
>> Also, after providing a non-stub implementation of the mfn_valid() macro,
>> the following compilation errors started to occur:
>>    riscv64-linux-gnu-ld: prelink.o: in function `__next_node':
>>    /build/xen/./include/xen/nodemask.h:202: undefined reference to `page_is_ram_type'
>>    riscv64-linux-gnu-ld: prelink.o: in function `get_free_buddy':
>>    /build/xen/common/page_alloc.c:881: undefined reference to `page_is_ram_type'
>>    riscv64-linux-gnu-ld: prelink.o: in function `alloc_heap_pages':
>>    /build/xen/common/page_alloc.c:1043: undefined reference to `page_get_owner_and_reference'
>>    riscv64-linux-gnu-ld: /build/xen/common/page_alloc.c:1098: undefined reference to `page_is_ram_type'
>>    riscv64-linux-gnu-ld: prelink.o: in function `ns16550_interrupt':
>>    /build/xen/drivers/char/ns16550.c:205: undefined reference to `get_page'
>>    riscv64-linux-gnu-ld: ./.xen-syms.0: hidden symbol `page_get_owner_and_reference' isn't defined
>>    riscv64-linux-gnu-ld: final link failed: bad value
>>    make[2]: *** [arch/riscv/Makefile:35: xen-syms] Error 1
>> To resolve these errors, the following functions have also been introduced,
>> based on their Arm counterparts:
>> - page_get_owner_and_reference() and its variant to safely acquire a
>>    reference to a page and retrieve its owner.
>> - A stub for page_is_ram_type() that currently always returns 0 and asserts
>>    unreachable, as RAM type checking is not yet implemented.
> For this latter part I can only repeat that the code is reachable, and hence it
> is wrong to put ASSERT_UNREACHABLE() there. That's true for Arm's code as well.

I will drop this stuff in the next patch version.

>
>> Signed-off-by: Oleksii Kurochko<oleksii.kurochko@gmail.com>
> With said line dropped:
> Acked-by: Jan Beulich<jbeulich@suse.com>

Thanks.

~ Oleksii

--------------tYbbX2m99O8kk8ixkPXHyn0C
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/11/25 2:50 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:60a8be02-430b-4c37-bb4c-6285c2676c10@suse.com">
      <pre wrap="" class="moz-quote-pre">On 31.07.2025 17:58, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">Implement the mfn_valid() macro to verify whether a given MFN is valid by
checking that it falls within the range [start_page, max_page).
These bounds are initialized based on the start and end addresses of RAM.

As part of this patch, start_page is introduced and initialized with the
PFN of the first RAM page.
Also, initialize pdx_group_valid() by calling set_pdx_range() when
memory banks are being mapped.

Also, after providing a non-stub implementation of the mfn_valid() macro,
the following compilation errors started to occur:
  riscv64-linux-gnu-ld: prelink.o: in function `__next_node':
  /build/xen/./include/xen/nodemask.h:202: undefined reference to `page_is_ram_type'
  riscv64-linux-gnu-ld: prelink.o: in function `get_free_buddy':
  /build/xen/common/page_alloc.c:881: undefined reference to `page_is_ram_type'
  riscv64-linux-gnu-ld: prelink.o: in function `alloc_heap_pages':
  /build/xen/common/page_alloc.c:1043: undefined reference to `page_get_owner_and_reference'
  riscv64-linux-gnu-ld: /build/xen/common/page_alloc.c:1098: undefined reference to `page_is_ram_type'
  riscv64-linux-gnu-ld: prelink.o: in function `ns16550_interrupt':
  /build/xen/drivers/char/ns16550.c:205: undefined reference to `get_page'
  riscv64-linux-gnu-ld: ./.xen-syms.0: hidden symbol `page_get_owner_and_reference' isn't defined
  riscv64-linux-gnu-ld: final link failed: bad value
  make[2]: *** [arch/riscv/Makefile:35: xen-syms] Error 1
To resolve these errors, the following functions have also been introduced,
based on their Arm counterparts:
- page_get_owner_and_reference() and its variant to safely acquire a
  reference to a page and retrieve its owner.
- A stub for page_is_ram_type() that currently always returns 0 and asserts
  unreachable, as RAM type checking is not yet implemented.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
For this latter part I can only repeat that the code is reachable, and hence it
is wrong to put ASSERT_UNREACHABLE() there. That's true for Arm's code as well.</pre>
    </blockquote>
    <pre>I will drop this stuff in the next patch version.</pre>
    <blockquote type="cite"
      cite="mid:60a8be02-430b-4c37-bb4c-6285c2676c10@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">Signed-off-by: Oleksii Kurochko <a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
With said line dropped:
Acked-by: Jan Beulich <a class="moz-txt-link-rfc2396E" href="mailto:jbeulich@suse.com">&lt;jbeulich@suse.com&gt;</a></pre>
    </blockquote>
    <pre>Thanks.

~ Oleksii</pre>
  </body>
</html>

--------------tYbbX2m99O8kk8ixkPXHyn0C--


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 15:44:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 15:44:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077782.1438802 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulUhO-0004Es-Da; Mon, 11 Aug 2025 15:44:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077782.1438802; Mon, 11 Aug 2025 15: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 1ulUhO-0004El-Aq; Mon, 11 Aug 2025 15:44:34 +0000
Received: by outflank-mailman (input) for mailman id 1077782;
 Mon, 11 Aug 2025 15:44:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ku41=2X=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ulUhM-0004Ed-Da
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 15:44:32 +0000
Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com
 [2a00:1450:4864:20::52f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0faa62c8-76ca-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 17:44:26 +0200 (CEST)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-6157ed5dc51so6849706a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 08:44: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
 4fb4d7f45d1cf-615a8fe7970sm18260768a12.31.2025.08.11.08.44.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 08:44: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>
X-Inumbo-ID: 0faa62c8-76ca-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754927066; x=1755531866; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=UXafO7uxTKUktMIwSK6ra5CRi8PNG11GR/ceZ/aySVk=;
        b=WCbQOkWt7fRefcg34upnypiq++R7VNsUrccpInLakCfWtbhKvoDrAoi0AjqaCfUfqB
         C012J3ImxuiMkamBXpKWrV+oUtDimV4Sa2C9jU3iP0YMxGyNv47k6eml7IZFu9xnOoz9
         /p+NY5xwkrUVjqTQzJqMyes1GBvM4OV0Vem/9i9WEHC+1M4yKA9ZiNAfuMoQo3odGPBh
         Oa8ZOya6lkj21Jznf0mgR4mJ6qIODfP7WhPPhHrjSBrPnVDktHDnQJQ7dkxpLUfiGMEO
         381AqxLayGdtxrK9/Jc5QuFAwsPvXLALAnTxABHhT8plby/j05SBORtfn8N9LQM1ERlt
         JSCw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754927066; x=1755531866;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=UXafO7uxTKUktMIwSK6ra5CRi8PNG11GR/ceZ/aySVk=;
        b=fx0dReN1nUCoRn0xDMDk+2a9o5SAOdvCUf6B00qBi3nXdCcUX9NXxiXtZ05b967FfQ
         o31+FWIMgTZO4pPQeCjTPGMRyvsSp56Q2JGeuYurn9NIVS74h0UP1n7UQnPk3WTp7GzD
         nutr2r1TSxwckfC4vISfTcu8BlQu8zhRsnoO38vNxgesUh+2BXi3IlTV82pvfKHJn7uE
         0kpgG2ALiL2oLp8qz/V6TfgCSgWxOLVfQ1QLIxxOXf+1qNWdVt3hMGrwpi5hllW4/SvQ
         iwK+iGfw8qVAoUgz3ldM3Vs9mekbPUUcE1cp8WojGCRoux2KEe2LiviiN1G7VPZ5G1Xd
         p5Dw==
X-Forwarded-Encrypted: i=1; AJvYcCVr7TeJPp3qZSkwZ+RYl1pxYQTOs1pGSUDa252SqBq6tn0TAWd8FUVI00U6z6TepSUOwsQ5tbgLCSA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwuXpf8/vKOjjCJfpzuwl3RIx7NWt0lZZ8PlzHtf4FJvOkSEeYr
	qkkEWGUjqkxh0FDBqU85NeWGcMIr1TwhiPie4OQURoYPUejb5U3lzAD1FI6ge3Hjzw==
X-Gm-Gg: ASbGncvMMx9xltchFQ5jK2CMHZweBTiFgf5D5eOjtVflmId9SuoYANhFIuyJUq0I8u0
	ogx0gbj2tIeSgMrVkkXtlCmRAtbt+C9fpm5g3clv84MWTHXbTf2ynq3eGRkn44xs7ExzECxIkcT
	8YhVeYwdCAExJTf7LIu+YglVriOgU8exvqlp7VKtOxgnQH63gApSKCDZNVbmlROCSZ1JHg6G02Y
	ktdjvJwG8OkF7Gv0tl7eQoq3xBxGBa4dX8iQHwpbEdfv2UGKag0BIi7Yd8tSF19r2ln0TqgD+NP
	Nuco+Jqbymf71Q+NfjNXedMcFMzbmwUR9iUrtTM6bntPcnyRfQxGfypnrVgo7RLC0YYgH1nHh1S
	urLg2XswC2TipwWc4eR/Rl/pOpa3Bu4QNWtb3lASJcVrpnlYoYlKi8qiXkISx8v/No9O3DB/7Gf
	ZltJxkgmw=
X-Google-Smtp-Source: AGHT+IHMnuRY9TMGooUvfvZWDpMMSIKL8PKfwjMJmQD4PVHf3gOO0uJfCZN3x+nGfIBTDHk/LMOn0Q==
X-Received: by 2002:a05:6402:2111:b0:618:f34:f61a with SMTP id 4fb4d7f45d1cf-6180f34fb0dmr7850962a12.17.1754927066045;
        Mon, 11 Aug 2025 08:44:26 -0700 (PDT)
Message-ID: <12adb163-5f6b-4478-9592-7423b8db69a9@suse.com>
Date: Mon, 11 Aug 2025 17:44:24 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 20/20] xen/riscv: introduce metadata table to store P2M
 type
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <802d757c167121c0a5ae2e529f5a365f779c5e59.1753973161.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: <802d757c167121c0a5ae2e529f5a365f779c5e59.1753973161.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 31.07.2025 17:58, Oleksii Kurochko wrote:
> RISC-V's PTE has only two available bits that can be used to store the P2M
> type. This is insufficient to represent all the current RISC-V P2M types.
> Therefore, some P2M types must be stored outside the PTE bits.
> 
> To address this, a metadata table is introduced to store P2M types that
> cannot fit in the PTE itself. Not all P2M types are stored in the
> metadata tableâ€”only those that require it.
> 
> The metadata table is linked to the intermediate page table via the
> `struct page_info`'s list field of the corresponding intermediate page.
> 
> To simplify the allocation and linking of intermediate and metadata page
> tables, `p2m_{alloc,free}_table()` functions are implemented.
> 
> These changes impact `p2m_split_superpage()`, since when a superpage is
> split, it is necessary to update the metadata table of the new
> intermediate page table â€” if the entry being split has its P2M type set
> to `p2m_ext_storage` in its `P2M_TYPES` bits.

Oh, this was an aspect I didn't realize when commenting on the name of
the enumerator. I think you want to keep the name for the purpose here,
but you better wouldn't apply relational operators to it (and hence
have a second value to serve that purpose).

> In addition to updating
> the metadata of the new intermediate page table, the corresponding entry
> in the metadata for the original superpage is invalidated.
> 
> Also, update p2m_{get,set}_type to work with P2M types which don't fit
> into PTE bits.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

No Suggested-by: or anything?

> --- a/xen/arch/riscv/include/asm/mm.h
> +++ b/xen/arch/riscv/include/asm/mm.h
> @@ -150,6 +150,15 @@ struct page_info
>              /* Order-size of the free chunk this page is the head of. */
>              unsigned int order;
>          } free;
> +
> +        /* Page is used to store metadata: p2m type. */

That's not correct. The page thus described is what the pointer below
points to. Here it's more like "Page is used as an intermediate P2M
page table".

> +        struct {
> +            /*
> +             * Pointer to a page which store metadata for an intermediate page
> +             * table.
> +             */
> +            struct page_info *metadata;
> +        } md;

In the description you say you would re-use the list field.

> --- a/xen/arch/riscv/p2m.c
> +++ b/xen/arch/riscv/p2m.c
> @@ -101,7 +101,16 @@ static int p2m_alloc_root_table(struct p2m_domain *p2m)
>  {
>      struct domain *d = p2m->domain;
>      struct page_info *page;
> -    const unsigned int nr_root_pages = P2M_ROOT_PAGES;
> +    /*
> +     * If the root page table starts at Level <= 2, and since only 1GB, 2MB,
> +     * and 4KB mappings are supported (as enforced by the ASSERT() in
> +     * p2m_set_entry()), it is necessary to allocate P2M_ROOT_PAGES for
> +     * the root page table itself, plus an additional P2M_ROOT_PAGES for
> +     * metadata storage. This is because only two free bits are available in
> +     * the PTE, which are not sufficient to represent all possible P2M types.
> +     */
> +    const unsigned int nr_root_pages = P2M_ROOT_PAGES *
> +                                       ((P2M_ROOT_LEVEL <= 2) ? 2 : 1);
>  
>      /*
>       * Return back nr_root_pages to assure the root table memory is also
> @@ -114,6 +123,23 @@ static int p2m_alloc_root_table(struct p2m_domain *p2m)
>      if ( !page )
>          return -ENOMEM;
>  
> +    if ( P2M_ROOT_LEVEL <= 2 )
> +    {
> +        /*
> +         * In the case where P2M_ROOT_LEVEL <= 2, it is necessary to allocate
> +         * a page of the same size as that used for the root page table.
> +         * Therefore, p2m_allocate_root() can be safely reused.
> +         */
> +        struct page_info *metadata = p2m_allocate_root(d);
> +        if ( !metadata )
> +        {
> +            free_domheap_pages(page, P2M_ROOT_ORDER);
> +            return -ENOMEM;
> +        }
> +
> +        page->v.md.metadata = metadata;

Don't you need to install such a link for every one of the 4 pages?

> @@ -198,24 +224,25 @@ static pte_t *p2m_get_root_pointer(struct p2m_domain *p2m, gfn_t gfn)
>      return __map_domain_page(p2m->root + root_table_indx);
>  }
>  
> -static int p2m_set_type(pte_t *pte, p2m_type_t t)
> +static void p2m_set_type(pte_t *pte, const p2m_type_t t, const unsigned int i)
>  {
> -    int rc = 0;
> -
>      if ( t > p2m_ext_storage )
> -        panic("unimplemeted\n");
> +    {
> +        ASSERT(pte);
> +
> +        pte[i].pte = t;

What does i identify here?

> +    }
>      else
>          pte->pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
> -
> -    return rc;
>  }
>  
> -static p2m_type_t p2m_get_type(const pte_t pte)
> +static p2m_type_t p2m_get_type(const pte_t pte, const pte_t *metadata,
> +                               const unsigned int i)
>  {
>      p2m_type_t type = MASK_EXTR(pte.pte, P2M_TYPE_PTE_BITS_MASK);
>  
>      if ( type == p2m_ext_storage )
> -        panic("unimplemented\n");
> +        type = metadata[i].pte;
>  
>      return type;
>  }

Overall this feels pretty fragile, as the caller has to pass several values
which all need to be in sync with one another. If you ...

> @@ -265,7 +292,10 @@ static void p2m_set_permission(pte_t *e, p2m_type_t t)
>      }
>  }
>  
> -static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t, bool is_table)
> +static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t,
> +                              struct page_info *metadata_pg,
> +                              const unsigned int indx,
> +                              bool is_table)
>  {
>      pte_t e = (pte_t) { PTE_VALID };
>  
> @@ -285,12 +315,21 @@ static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t, bool is_table)
>  
>      if ( !is_table )
>      {
> +        pte_t *metadata = __map_domain_page(metadata_pg);

... map the page anyway, no matter whether ...

>          p2m_set_permission(&e, t);
>  
> +        metadata[indx].pte = p2m_invalid;
> +
>          if ( t < p2m_ext_storage )
> -            p2m_set_type(&e, t);
> +            p2m_set_type(&e, t, indx);
>          else
> -            panic("unimplemeted\n");
> +        {
> +            e.pte |= MASK_INSR(p2m_ext_storage, P2M_TYPE_PTE_BITS_MASK);
> +            p2m_set_type(metadata, t, indx);
> +        }

... you'll actually use it, maybe best to map both pages at the same point?

And as said elsewhere, no, I don't think you want to use p2m_set_type() for
two entirely different purposes.

> @@ -323,22 +364,71 @@ static struct page_info *p2m_alloc_page(struct p2m_domain *p2m)
>      return pg;
>  }
>  
> +static void p2m_free_page(struct p2m_domain *p2m, struct page_info *pg);
> +
> +/*
> + * Allocate a page table with an additional extra page to store
> + * metadata for each entry of the page table.
> + * Link this metadata page to page table page's list field.
> + */
> +static struct page_info * p2m_alloc_table(struct p2m_domain *p2m)

Nit: Stray blank after * again.

> +{
> +    enum table_type
> +    {
> +        INTERMEDIATE_TABLE=0,

If you really think you need the "= 0", then please with blanks around '='.

> +        /*
> +         * At the moment, metadata is going to store P2M type
> +         * for each PTE of page table.
> +         */
> +        METADATA_TABLE,
> +        TABLE_MAX
> +    };
> +
> +    struct page_info *tables[TABLE_MAX];
> +
> +    for ( unsigned int i = 0; i < TABLE_MAX; i++ )
> +    {
> +        tables[i] = p2m_alloc_page(p2m);
> +
> +        if ( !tables[i] )
> +            goto out;
> +
> +        clear_and_clean_page(tables[i]);
> +    }
> +
> +    tables[INTERMEDIATE_TABLE]->v.md.metadata = tables[METADATA_TABLE];
> +
> +    return tables[INTERMEDIATE_TABLE];
> +
> + out:
> +    for ( unsigned int i = 0; i < TABLE_MAX; i++ )
> +        if ( tables[i] )

You didn't clear all of tables[] first, though. This kind of cleanup is
often better done as

    while ( i-- > 0 )
        ...

You don't even need an if() then, as you know allocations succeeded for all
earlier array slots.

> +            p2m_free_page(p2m, tables[i]);
> +
> +    return NULL;
> +}

I'm also surprised you allocate the metadata table no matter whether you'll
actually need it. That'll double your average paging pool usage, when in a
typical case only very few entries would actually require this extra
storage.

> @@ -453,10 +543,9 @@ static void p2m_put_2m_superpage(mfn_t mfn, p2m_type_t type)
>  }
>  
>  /* Put any references on the page referenced by pte. */
> -static void p2m_put_page(const pte_t pte, unsigned int level)
> +static void p2m_put_page(const pte_t pte, unsigned int level, p2m_type_t p2mt)
>  {
>      mfn_t mfn = pte_get_mfn(pte);
> -    p2m_type_t p2m_type = p2m_get_type(pte);
>  
>      ASSERT(pte_is_valid(pte));
>  
> @@ -470,10 +559,10 @@ static void p2m_put_page(const pte_t pte, unsigned int level)
>      switch ( level )
>      {
>      case 1:
> -        return p2m_put_2m_superpage(mfn, p2m_type);
> +        return p2m_put_2m_superpage(mfn, p2mt);
>  
>      case 0:
> -        return p2m_put_4k_page(mfn, p2m_type);
> +        return p2m_put_4k_page(mfn, p2mt);
>      }
>  }

Might it be better to introduce this function in this shape right away, in
the earlier patch?

> @@ -690,18 +791,23 @@ static int p2m_set_entry(struct p2m_domain *p2m,
>      {
>          /* We need to split the original page. */
>          pte_t split_pte = *entry;
> +        struct page_info *metadata = virt_to_page(table)->v.md.metadata;

This (or along these lines) is how I would have expected things to be done
elsewhere as well, limiting the amount of arguments you need to pass
around.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 15:47:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 15:47:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077790.1438813 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulUjq-0004m5-PT; Mon, 11 Aug 2025 15:47:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077790.1438813; Mon, 11 Aug 2025 15:47:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulUjq-0004ly-Ma; Mon, 11 Aug 2025 15:47:06 +0000
Received: by outflank-mailman (input) for mailman id 1077790;
 Mon, 11 Aug 2025 15:47:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ku41=2X=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ulUjp-0004ls-SN
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 15:47:05 +0000
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com
 [2a00:1450:4864:20::636])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6d2cff41-76ca-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 17:47:03 +0200 (CEST)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-af9842df867so799372766b.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 08:47: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
 a640c23a62f3a-af91a0def2esm2013596066b.61.2025.08.11.08.47.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 08:47: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>
X-Inumbo-ID: 6d2cff41-76ca-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754927223; x=1755532023; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=J+wb/td4JhJuyVEFvzeq3FHG3ZbRKFYDmMBUUGIvXb8=;
        b=STPB9NLYaFzkps9Wz5f3uka9hKXcSwW/yIIDy7m16sLQrBiF5j49u3ZT181f3IkQas
         VhVPdIUX45tzjHJVKI4FW64u5O/wRnPeDH+V45Via8HRcVdg3rNpCMq2WDBKGTqBhzZr
         FVubQjY2NFQYGfytxS2XXX/5zNXphvtgqTBKsXGx7aC75dH08joYNFvTtgtzKKis5qUq
         gTbccwyOdcshkpTiFI3NAi26DKIDKzsTkH/lZooqJ/qzvQe0MUJoZG9MfV/Qj8yG4Ki0
         VpwfWe6g5V81cNmEv5Q8Xmj6ZujT5oYRIjSLFUh7zhQi5JATdcAw9zr3XFrcTGRozP/H
         TARQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754927223; x=1755532023;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=J+wb/td4JhJuyVEFvzeq3FHG3ZbRKFYDmMBUUGIvXb8=;
        b=UoOgmC1Kp9lHif+b/iFVBZu9S/IeiwjnD5TjdN8klraWh0MVRNniVqtBWkGYQTtvyW
         fhXtwEUBk3qZpE13GzHn+arrq2EenWDaqyNL6Pk6YSFqMjvcuVWBiS5LLlbjsfcCph8i
         1btJtSWury5z4bEejxRqwCYG9O+jHGA1lE8rgHgvH9AX7sWN7bq+EMfHHaogzGKA9nle
         z8JeFktQq7HhN5ckocJ/EvcUtDBo6HV35wzr3KSH8bJJ04LdEyqylfwS800VxURxX4K9
         5TAAnvPdfWaIgNuH+7O6D2+ayDPEPYyDEaemSJbQ/3Mpw9Em8NmPFEmmByezcVFFL2eZ
         h4Vw==
X-Forwarded-Encrypted: i=1; AJvYcCUze0ILL3WFobFCsgqVWVPonjZPWqYNFDEtYrWGokueb0DCqFHfSvI3S4p0ccnZ9/kE5zYhWzSyPfQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzQq8YIr57PIc1iBQQxGAg1R1pKNOPMFAo6nbcgmdofcqxtzRnf
	JkoD0DdsZPm/OByH+fvWkLolb6CUPdgSFrOlgIMdJUrDuntVXo6SQdV8cV3hrrRZfg==
X-Gm-Gg: ASbGncsVwyI/6ShSjKeTYAdcAPxFv7m7tbZIRDWd8w4+de8COnLtKNMPAEjtAFMzJG/
	1RI7CEAthB/XpDkhJ6xbgjrqSo/sJuOXj+7LIj3SSSnzNO4mb0bnYeQRUwfnvx8MkiQAvtrI9Gp
	26iNI4TAx9f8KV9d/dq1CMd6aZ7ZvZjZedPUHtN6ED1ta/NCHB9Gi1T0avrYlFXYtyPVuLCPY0z
	Hx5zdbJC6orq3ReZl3rE08ZtI295oV+DtQsDRhamnlXxbm9PsFuyw9fVFJ4u9URYdutheYdP+Vx
	75zOK+0umfBGXCDS7USWsDun06BNk+cBS8Hd1+CVf51DgIfLN2GAB+/cxDCM9rxNxPAcYaV0Luf
	GSlhv0mhvmAx6GclickP85w35fZnSfAlQ9SRXCyvGBhmyL0qHdONLTE4R1fl560lo3FFe5kfwJQ
	L1qPTAZ/U=
X-Google-Smtp-Source: AGHT+IGAGJ0FUUZlwLiexK0qUSyWd33aYpaD0tfx1PXazTAfpcVeKfqHfua3V+Apg10ix9SiL2m8Qg==
X-Received: by 2002:a17:907:3c88:b0:af9:237c:bb1c with SMTP id a640c23a62f3a-af9c64f446bmr1413573266b.43.1754927223094;
        Mon, 11 Aug 2025 08:47:03 -0700 (PDT)
Message-ID: <0727aadc-d434-4005-be93-4893e47fab6e@suse.com>
Date: Mon, 11 Aug 2025 17:47:01 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 16/20] xen/riscv: Implement superpage splitting for p2m
 mappings
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <6890f77e577493194ea94834989dc0841d18eed0.1753973161.git.oleksii.kurochko@gmail.com>
 <cc0fd91c-2dd1-4094-997a-87856f6cd914@suse.com>
 <adc9689b-a3e2-47fb-a8ed-6481371c751d@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: <adc9689b-a3e2-47fb-a8ed-6481371c751d@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.08.2025 17:19, Oleksii Kurochko wrote:
> On 8/11/25 1:59 PM, Jan Beulich wrote:
>> On 31.07.2025 17:58, Oleksii Kurochko wrote:
>>> --- a/xen/arch/riscv/p2m.c
>>> +++ b/xen/arch/riscv/p2m.c
>>> @@ -539,6 +539,91 @@ static void p2m_free_subtree(struct p2m_domain *p2m,
>>>       p2m_free_page(p2m, pg);
>>>   }
>>>   
>>> +static bool p2m_split_superpage(struct p2m_domain *p2m, pte_t *entry,
>>> +                                unsigned int level, unsigned int target,
>>> +                                const unsigned int *offsets)
>>> +{
>>> +    struct page_info *page;
>>> +    unsigned long i;
>>> +    pte_t pte, *table;
>>> +    bool rv = true;
>>> +
>>> +    /* Convenience aliases */
>>> +    mfn_t mfn = pte_get_mfn(*entry);
>>> +    unsigned int next_level = level - 1;
>>> +    unsigned int level_order = XEN_PT_LEVEL_ORDER(next_level);
>>> +
>>> +    /*
>>> +     * This should only be called with target != level and the entry is
>>> +     * a superpage.
>>> +     */
>>> +    ASSERT(level > target);
>>> +    ASSERT(pte_is_superpage(*entry, level));
>>> +
>>> +    page = p2m_alloc_page(p2m->domain);
>>> +    if ( !page )
>>> +    {
>>> +        /*
>>> +         * The caller is in charge to free the sub-tree.
>>> +         * As we didn't manage to allocate anything, just tell the
>>> +         * caller there is nothing to free by invalidating the PTE.
>>> +         */
>>> +        memset(entry, 0, sizeof(*entry));
>>> +        return false;
>>> +    }
>>> +
>>> +    table = __map_domain_page(page);
>>> +
>>> +    /*
>>> +     * We are either splitting a second level 1G page into 512 first level
>>> +     * 2M pages, or a first level 2M page into 512 zero level 4K pages.
>>> +     */
>> Such a comment is at risk of (silently) going stale when support for 512G
>> mappings is added. I wonder if it's really that informative to have here.
> 
> Good point, I think we could really drop it.
> Regarding support for 512G mappings. Is it really make sense to support
> such big mappings?

I think so, yes (in the longer run). And yes, ...

> It seems like some operations as splitting or sub-entry
> freeing could be pretty long under some circumstances.

... such will need sorting.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 16:02:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 16:02:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077803.1438823 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulUyS-0000Ep-WD; Mon, 11 Aug 2025 16:02:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077803.1438823; Mon, 11 Aug 2025 16:02: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 1ulUyS-0000Ei-SX; Mon, 11 Aug 2025 16:02:12 +0000
Received: by outflank-mailman (input) for mailman id 1077803;
 Mon, 11 Aug 2025 16:02:11 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vhKo=2X=arm.com=ada.coupriediaz@srs-se1.protection.inumbo.net>)
 id 1ulUyR-0000Eb-Kg
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 16:02:11 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 889b3ed6-76cc-11f0-a325-13f23c93f187;
 Mon, 11 Aug 2025 18:02:09 +0200 (CEST)
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 DDC66266C;
 Mon, 11 Aug 2025 09:01:59 -0700 (PDT)
Received: from [10.1.28.163] (e137867.arm.com [10.1.28.163])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id E0D163F738;
 Mon, 11 Aug 2025 09:02:03 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 889b3ed6-76cc-11f0-a325-13f23c93f187
Message-ID: <4b18c96b-116b-417d-ab98-eb81b80c9897@arm.com>
Date: Mon, 11 Aug 2025 17:01:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH -next v7 2/7] arm64: entry: Refactor the entry and exit
 for exceptions from EL1
To: Jinjie Ruan <ruanjinjie@huawei.com>
Cc: catalin.marinas@arm.com, will@kernel.org, oleg@redhat.com,
 sstabellini@kernel.org, mark.rutland@arm.com, puranjay@kernel.org,
 broonie@kernel.org, mbenes@suse.cz, ryan.roberts@arm.com,
 akpm@linux-foundation.org, chenl311@chinatelecom.cn,
 anshuman.khandual@arm.com, kristina.martsenko@arm.com,
 liaochang1@huawei.com, ardb@kernel.org, leitao@debian.org,
 linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org,
 xen-devel@lists.xenproject.org, Ada Couprie Diaz <ada.coupriediaz@arm.com>
References: <20250729015456.3411143-1-ruanjinjie@huawei.com>
 <20250729015456.3411143-3-ruanjinjie@huawei.com>
 <df50cc99-027e-4182-ba4c-9837b354a062@arm.com>
 <6825c4c4-2c48-db3b-55e2-97922f25897f@huawei.com>
From: Ada Couprie Diaz <ada.coupriediaz@arm.com>
Content-Language: en-US
Organization: Arm Ltd.
In-Reply-To: <6825c4c4-2c48-db3b-55e2-97922f25897f@huawei.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 06/08/2025 03:49, Jinjie Ruan wrote:

> On 2025/8/5 23:06, Ada Couprie Diaz wrote:
>> Hi,
>>
>> On 29/07/2025 02:54, Jinjie Ruan wrote:
>>
>>> [...]
>>> diff --git a/arch/arm64/kernel/entry-common.c
>>> b/arch/arm64/kernel/entry-common.c
>>> index 8e798f46ad28..97e0741abde1 100644
>>> --- a/arch/arm64/kernel/entry-common.c
>>> +++ b/arch/arm64/kernel/entry-common.c
>>> [...]
>>> @@ -475,73 +497,81 @@ UNHANDLED(el1t, 64, error)
>>>  Â  static void noinstr el1_abort(struct pt_regs *regs, unsigned long esr)
>>>  Â  {
>>>  Â Â Â Â Â  unsigned long far = read_sysreg(far_el1);
>>> +Â Â Â  arm64_irqentry_state_t state;
>>>  Â  -Â Â Â  enter_from_kernel_mode(regs);
>>> +Â Â Â  state = enter_from_kernel_mode(regs);
>> Nit: There is some inconsistencies with some functions splitting state's
>> definition
>> and declaration (like el1_abort here), while some others do it on the
>> same line
>> (el1_undef() below for example).
>> In some cases it is welcome as the entry function is called after some
>> other work,
>> but here for example it doesn't seem to be beneficial ?
> Both methods can keep the modifications to `enter_from_kernel_mode()` on
> the same line as the original code, which will facilitate code review.
>
> I think it is also fine to do it on the same line here, which can reduce
> one line code, which method is better may be a matter of personal opinion.
Fair point !
Then, as mentioned previously, I'm happy to leave my Reviewed-By.
>>>  Â Â Â Â Â  local_daif_inherit(regs);
>>>  Â Â Â Â Â  do_mem_abort(far, esr, regs);
>>>  Â Â Â Â Â  local_daif_mask();
>>> -Â Â Â  exit_to_kernel_mode(regs);
>>> +Â Â Â  exit_to_kernel_mode(regs, state);
>>>  Â  }
>>>  Â  Â  static void noinstr el1_pc(struct pt_regs *regs, unsigned long esr)
>>>  Â  {
>>>  Â Â Â Â Â  unsigned long far = read_sysreg(far_el1);
>>> +Â Â Â  arm64_irqentry_state_t state;
>>>  Â  -Â Â Â  enter_from_kernel_mode(regs);
>>> +Â Â Â  state = enter_from_kernel_mode(regs);
>>>  Â Â Â Â Â  local_daif_inherit(regs);
>>>  Â Â Â Â Â  do_sp_pc_abort(far, esr, regs);
>>>  Â Â Â Â Â  local_daif_mask();
>>> -Â Â Â  exit_to_kernel_mode(regs);
>>> +Â Â Â  exit_to_kernel_mode(regs, state);
>>>  Â  }
>>>  Â  Â  static void noinstr el1_undef(struct pt_regs *regs, unsigned long
>>> esr)
>>>  Â  {
>>> -Â Â Â  enter_from_kernel_mode(regs);
>>> +Â Â Â  arm64_irqentry_state_t state = enter_from_kernel_mode(regs);
>>> +
>>>  Â Â Â Â Â  local_daif_inherit(regs);
>>>  Â Â Â Â Â  do_el1_undef(regs, esr);
>>>  Â Â Â Â Â  local_daif_mask();
>>> -Â Â Â  exit_to_kernel_mode(regs);
>>> +Â Â Â  exit_to_kernel_mode(regs, state);
>>>  Â  }
>>>
>>> [...]
>> Other than the small nit:
>> Reviewed-by: Ada Couprie Diaz <ada.coupriediaz@arm.com>


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 16:02:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 16:02:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077808.1438833 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulUyu-0000iz-D8; Mon, 11 Aug 2025 16:02:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077808.1438833; Mon, 11 Aug 2025 16:02:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulUyu-0000is-9q; Mon, 11 Aug 2025 16:02:40 +0000
Received: by outflank-mailman (input) for mailman id 1077808;
 Mon, 11 Aug 2025 16:02:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vhKo=2X=arm.com=ada.coupriediaz@srs-se1.protection.inumbo.net>)
 id 1ulUyt-0000fu-BR
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 16:02:39 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 96590cb4-76cc-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 18:02:31 +0200 (CEST)
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 0293A267F;
 Mon, 11 Aug 2025 09:02:23 -0700 (PDT)
Received: from [10.1.28.163] (e137867.arm.com [10.1.28.163])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 271C53F738;
 Mon, 11 Aug 2025 09:02: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>
X-Inumbo-ID: 96590cb4-76cc-11f0-b898-0df219b8e170
Message-ID: <ced13246-4c00-4837-9d8a-1d140eb0bcb3@arm.com>
Date: Mon, 11 Aug 2025 17:02:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH -next v7 5/7] arm64: entry: Refactor
 preempt_schedule_irq() check code
To: Jinjie Ruan <ruanjinjie@huawei.com>
Cc: catalin.marinas@arm.com, will@kernel.org, oleg@redhat.com,
 sstabellini@kernel.org, mark.rutland@arm.com, puranjay@kernel.org,
 broonie@kernel.org, mbenes@suse.cz, ryan.roberts@arm.com,
 akpm@linux-foundation.org, chenl311@chinatelecom.cn,
 anshuman.khandual@arm.com, kristina.martsenko@arm.com,
 liaochang1@huawei.com, ardb@kernel.org, leitao@debian.org,
 linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org,
 xen-devel@lists.xenproject.org, Ada Couprie Diaz <ada.coupriediaz@arm.com>
References: <20250729015456.3411143-1-ruanjinjie@huawei.com>
 <20250729015456.3411143-6-ruanjinjie@huawei.com>
 <44fd646c-4e31-4ca6-9e22-f715ad19e0d7@arm.com>
 <bedb35be-100b-95fb-64e4-b38edd3cd327@huawei.com>
From: Ada Couprie Diaz <ada.coupriediaz@arm.com>
Content-Language: en-US
Organization: Arm Ltd.
In-Reply-To: <bedb35be-100b-95fb-64e4-b38edd3cd327@huawei.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 06/08/2025 07:39, Jinjie Ruan wrote:

> On 2025/8/5 23:06, Ada Couprie Diaz wrote:
>> Hi Jinjie,
>>
>> On 29/07/2025 02:54, Jinjie Ruan wrote:
>>> ARM64 requires an additional check whether to reschedule on return
>>> from interrupt. So add arch_irqentry_exit_need_resched() as the default
>>> NOP implementation and hook it up into the need_resched() condition in
>>> raw_irqentry_exit_cond_resched(). This allows ARM64 to implement
>>> the architecture specific version for switching over to
>>> the generic entry code.
>>> [...]
>> I've had some trouble reviewing this patch : on the one hand because
>> I didn't notice `arch_irqentry_exit_need_resched()` was added in
>> the common entry code, which is on me !
>> On the other hand, I felt that the patch itself was a bit disconnected :
>> we add `arch_irqentry_exit_need_resched()` in the common entry code,
>> with a default NOP, but in the same function we add to arm64,
>> while mentioning that this is for arm64's additional checks,
>> which we only implement in patch 7.
> Yes, it does.
>
>> Would it make sense to move theÂ `arch_irqentry_exit_need_resched()`
>> part of the patch to patch 7, so that the introduction and
>> arch-specific implementation appear together ?
>> To me it seems easier to wrap my head around, as it would look like
>> "Move arm64 to generic entry, but it does additional checks : add a new
>> arch-specific function controlling re-scheduling, defaulting to true,
>> and implement it for arm64". I feel it could help making patch 7's
>> commit message clearer as well.
>>
>>  From what I gathered on the archive `arch_irqentry_exit_need_resched()`
>> being added here was suggested previously, so others might not have the
>> same opinion.
> Yes, introduce `arch_irqentry_exit_need_resched()` here may help
> understand the patch's refactoring purpose.
I can see that as well.
I shared my opinion in case it could be useful, but as I mentioned
in my reply to the cover : it's not a big issue and I'm happy for
`arch_irqentry_exit_need_resched()` to be implemented here if that
makes more sense !
>> Maybe improving the commit message and comment for this would be enough
>> as well, as per my suggestions above.
> Thank you! I'll improve the commit message and comment.
>
My pleasure !
Ada


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 16:02:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 16:02:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077812.1438843 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulUz5-00015f-Iv; Mon, 11 Aug 2025 16:02:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077812.1438843; Mon, 11 Aug 2025 16:02: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 1ulUz5-00015Y-Fu; Mon, 11 Aug 2025 16:02:51 +0000
Received: by outflank-mailman (input) for mailman id 1077812;
 Mon, 11 Aug 2025 16:02:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vhKo=2X=arm.com=ada.coupriediaz@srs-se1.protection.inumbo.net>)
 id 1ulUz4-0000Eb-Gs
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 16:02:50 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id a0f36c03-76cc-11f0-a325-13f23c93f187;
 Mon, 11 Aug 2025 18:02:49 +0200 (CEST)
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 CC053266C;
 Mon, 11 Aug 2025 09:02:40 -0700 (PDT)
Received: from [10.1.28.163] (e137867.arm.com [10.1.28.163])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id BCB213F738;
 Mon, 11 Aug 2025 09:02: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>
X-Inumbo-ID: a0f36c03-76cc-11f0-a325-13f23c93f187
Message-ID: <4242ef37-efeb-446f-abbc-0104b805ad12@arm.com>
Date: Mon, 11 Aug 2025 17:02:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH -next v7 5/7] arm64: entry: Refactor
 preempt_schedule_irq() check code
To: Jinjie Ruan <ruanjinjie@huawei.com>
References: <20250729015456.3411143-1-ruanjinjie@huawei.com>
 <20250729015456.3411143-6-ruanjinjie@huawei.com>
From: Ada Couprie Diaz <ada.coupriediaz@arm.com>
Cc: catalin.marinas@arm.com, will@kernel.org, oleg@redhat.com,
 sstabellini@kernel.org, mark.rutland@arm.com, puranjay@kernel.org,
 broonie@kernel.org, mbenes@suse.cz, ryan.roberts@arm.com,
 akpm@linux-foundation.org, chenl311@chinatelecom.cn,
 anshuman.khandual@arm.com, kristina.martsenko@arm.com,
 liaochang1@huawei.com, ardb@kernel.org, leitao@debian.org,
 linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org,
 xen-devel@lists.xenproject.org, Ada Couprie Diaz <ada.coupriediaz@arm.com>
Content-Language: en-US
Organization: Arm Ltd.
In-Reply-To: <20250729015456.3411143-6-ruanjinjie@huawei.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 29/07/2025 02:54, Jinjie Ruan wrote:

> ARM64 requires an additional check whether to reschedule on return
> from interrupt. So add arch_irqentry_exit_need_resched() as the default
> NOP implementation and hook it up into the need_resched() condition in
> raw_irqentry_exit_cond_resched(). This allows ARM64 to implement
> the architecture specific version for switching over to
> the generic entry code.
>
> To align the structure of the code with irqentry_exit_cond_resched()
> from the generic entry code, hoist the need_irq_preemption()
> and IS_ENABLED() check earlier. And different preemption check functions
> are defined based on whether dynamic preemption is enabled.
>
> Suggested-by: Mark Rutland <mark.rutland@arm.com>
> Suggested-by: Kevin Brodsky <kevin.brodsky@arm.com>
> Suggested-by: Thomas Gleixner <tglx@linutronix.de>
> Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
> ---
Unrelated to the other thread : I noticed that compiling this patch
with `allnoconfig` would fail :
- `raw_irqentry_exit_cond_resched` has no previous prototype,
 Â  as it is defined within `#ifdef CONFIG_PREEMPTION`
- `irqentry_exit_cond_resched()` is not declared, as it is also within
 Â  `#ifdef CONFIG_PREEMPTION`

The patch below fixes the issue, but introduces merge conflicts in
patches 6 and 7, plus the `#ifdef` needs to be moved accordingly
in patch 6 and the empty "without preemption" `irq_exit_cond_resched()`
needs to be removed in patch 7.

I hope this can be useful,
Ada

---
diff --git a/arch/arm64/include/asm/preempt.h 
b/arch/arm64/include/asm/preempt.h
index 0f0ba250efe8..d9aba8b1e466 100644
--- a/arch/arm64/include/asm/preempt.h
+++ b/arch/arm64/include/asm/preempt.h
@@ -103,6 +103,8 @@ void dynamic_irqentry_exit_cond_resched(void);
 Â #define irqentry_exit_cond_resched() raw_irqentry_exit_cond_resched()

 Â #endif /* CONFIG_PREEMPT_DYNAMIC */
+#else /* CONFIG_PREEMPTION */
+#define irqentry_exit_cond_resched() {}
 Â #endif /* CONFIG_PREEMPTION */

 Â #endif /* __ASM_PREEMPT_H */
diff --git a/arch/arm64/kernel/entry-common.c 
b/arch/arm64/kernel/entry-common.c
index 4f92664fd46c..abd7a315145e 100644
--- a/arch/arm64/kernel/entry-common.c
+++ b/arch/arm64/kernel/entry-common.c
@@ -661,6 +661,7 @@ static __always_inline void __el1_pnmi(struct 
pt_regs *regs,
 Â Â Â Â Â Â Â  arm64_exit_nmi(regs, state);
 Â }

+#ifdef CONFIG_PREEMPTION
 Â void raw_irqentry_exit_cond_resched(void)
 Â {
 Â Â Â Â Â Â Â  if (!preempt_count()) {
@@ -668,6 +669,7 @@ void raw_irqentry_exit_cond_resched(void)
 Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  preempt_schedule_irq();
 Â Â Â Â Â Â Â  }
 Â }
+#endif

 Â #ifdef CONFIG_PREEMPT_DYNAMIC
 Â DEFINE_STATIC_KEY_TRUE(sk_dynamic_irqentry_exit_cond_resched);



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 16:03:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 16:03:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077823.1438852 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulUzR-0001fs-PF; Mon, 11 Aug 2025 16:03:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077823.1438852; Mon, 11 Aug 2025 16:03:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulUzR-0001fl-MZ; Mon, 11 Aug 2025 16:03:13 +0000
Received: by outflank-mailman (input) for mailman id 1077823;
 Mon, 11 Aug 2025 16:03:11 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vhKo=2X=arm.com=ada.coupriediaz@srs-se1.protection.inumbo.net>)
 id 1ulUzP-0000Eb-Mc
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 16:03:11 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id ada6d0c8-76cc-11f0-a325-13f23c93f187;
 Mon, 11 Aug 2025 18:03:11 +0200 (CEST)
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 387D9266C;
 Mon, 11 Aug 2025 09:03:02 -0700 (PDT)
Received: from [10.1.28.163] (e137867.arm.com [10.1.28.163])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 4CEB73F738;
 Mon, 11 Aug 2025 09: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>
X-Inumbo-ID: ada6d0c8-76cc-11f0-a325-13f23c93f187
Message-ID: <a3a8c0b8-e953-4c93-ab4d-0d9a4b3e47b1@arm.com>
Date: Mon, 11 Aug 2025 17:03:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH -next v7 0/7] arm64: entry: Convert to generic irq entry
To: Jinjie Ruan <ruanjinjie@huawei.com>
Cc: catalin.marinas@arm.com, will@kernel.org, oleg@redhat.com,
 sstabellini@kernel.org, mark.rutland@arm.com, puranjay@kernel.org,
 broonie@kernel.org, mbenes@suse.cz, ryan.roberts@arm.com,
 akpm@linux-foundation.org, chenl311@chinatelecom.cn,
 anshuman.khandual@arm.com, kristina.martsenko@arm.com,
 liaochang1@huawei.com, ardb@kernel.org, leitao@debian.org,
 linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org,
 xen-devel@lists.xenproject.org, Ada Couprie Diaz <ada.coupriediaz@arm.com>
References: <20250729015456.3411143-1-ruanjinjie@huawei.com>
 <6bd09b5b-9830-42b4-ad9e-9ad1e153e564@arm.com>
 <94757d00-5a8e-ac6b-f832-030f33ccf771@huawei.com>
From: Ada Couprie Diaz <ada.coupriediaz@arm.com>
Content-Language: en-US
Organization: Arm Ltd.
In-Reply-To: <94757d00-5a8e-ac6b-f832-030f33ccf771@huawei.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 06/08/2025 09:11, Jinjie Ruan wrote:

> On 2025/8/5 23:08, Ada Couprie Diaz wrote:
>> Hi Jinjie,
>>
>> On 29/07/2025 02:54, Jinjie Ruan wrote:
>>
>>> Since commit a70e9f647f50 ("entry: Split generic entry into generic
>>> exception and syscall entry") split the generic entry into generic irq
>>> entry and generic syscall entry, it is time to convert arm64 to use
>>> the generic irq entry. And ARM64 will be completely converted to generic
>>> entry in the upcoming patch series.
>> Note : I had to manually cherry-pick a70e9f647f50 when pulling the series
>> on top of the Linux Arm Kernel for-next/core branch, but there might be
>> something I'm missing here.
> It seems that it is now in mainline v6.16-rc1 and linux-next but not
> Linux Arm Kernel for-next/core branch.
You're right, I misinterpreted the `-next` of the subject, thanks for the
clarification !
>> I'll spend some time testing the series now, specifically given patch 6's
>> changes, but other than that everything I saw made sense and didn't look
>> like it would be of concern to me.
> Thank you for the test and review.

I've spent some time testing the series with a few different configurations,
including PREEMPT_RT, pNMI, various lockup and hang detection options,
UBSAN, shadow call stack, and various CONFIG_DEBUG_XYZ (focused on locks
and IRQs), on both hardware (AMD Seattle) and KVM guests.

I tried to generate a diverse set of interrupts (via debug exceptions,
page faults, perf, kprobes, swapping, OoM) while loading the system with
different workloads, some generating a lot of context switches : hackbench
and signaltest from rt-tests[0], and mc-crusher[1], a memcached stress-test.

I did not have any issues, nor any warning reported by the various
debug features during all my hours of testing, so it looks good !

Tested-by: Ada Couprie Diaz <ada.coupriediaz@arm.com>

Thank you for the series !
Ada

[0]: https://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git/
[1]: https://github.com/memcached/mc-crusher



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 16:42:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 16:42:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077845.1438863 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulVbi-0007OS-Iz; Mon, 11 Aug 2025 16:42:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077845.1438863; Mon, 11 Aug 2025 16:42:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulVbi-0007OL-GH; Mon, 11 Aug 2025 16:42:46 +0000
Received: by outflank-mailman (input) for mailman id 1077845;
 Mon, 11 Aug 2025 16:42:45 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1ulVbh-0007OF-Ag
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 16:42:45 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ulVbg-000A3T-0P;
 Mon, 11 Aug 2025 16:42:44 +0000
Received: from [2a02:8012:3a1:0:2562:7575:7df6:8090]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ulVbg-000Ich-0U;
 Mon, 11 Aug 2025 16:42: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=TYXKIeR5UY0XJjKjs0hkmd5FfNyRMQaQnFcLwobic2Y=; b=r0FvFSATn9WLXHraTo5RR3ZGCM
	KJFW+SXgnLTuQkrro95CXRxRkmrDiQbO2ZxHjwSAGo0B8SYeCTGM6Wz2bUbgIrN5O1z4K0yH3xpih
	ABOg1DklGqnN1S0KnX3TYlDrbbb1YBzrpk2GTDfMh1ILGYiH8Jqnja/g5GmdoZ5cY73k=;
Message-ID: <8bf02122-f5fd-4793-8e78-91eaf38ea8b0@xen.org>
Date: Mon, 11 Aug 2025 17:42:41 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 2/8] pdx: provide a unified set of unit functions
Content-Language: en-GB
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org,
 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>
References: <20250805095257.74975-1-roger.pau@citrix.com>
 <20250805095257.74975-3-roger.pau@citrix.com>
 <5b940bdf-9bc0-49b2-af92-7251b2780c71@xen.org>
 <aJmk1o7sUT2UZJ8M@macbook.local>
From: Julien Grall <julien@xen.org>
In-Reply-To: <aJmk1o7sUT2UZJ8M@macbook.local>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Roger,

On 11/08/2025 09:07, Roger Pau MonnÃ© wrote:
> On Fri, Aug 08, 2025 at 06:21:29PM +0100, Julien Grall wrote:
>> Hi Roger,
>>
>> On 05/08/2025 10:52, Roger Pau Monne wrote:
>>> diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
>>> index a77b31071ed8..ba35bf1fe3bb 100644
>>> --- a/xen/arch/arm/setup.c
>>> +++ b/xen/arch/arm/setup.c
>>> @@ -256,9 +256,11 @@ void __init init_pdx(void)
>>>    {
>>>        const struct membanks *mem = bootinfo_get_mem();
>>>        paddr_t bank_start, bank_size, bank_end, ram_end = 0;
>>> -    int bank;
>>> +    unsigned int bank;
>>>    #ifndef CONFIG_PDX_NONE
>>> +    for ( bank = 0 ; bank < mem->nr_banks; bank++ )
>>> +        pfn_pdx_add_region(mem->bank[bank].start, mem->bank[bank].size);
>>>        /*
>>>         * Arm does not have any restrictions on the bits to compress. Pass 0 to
>>>         * let the common code further restrict the mask.
>>> @@ -266,26 +268,24 @@ void __init init_pdx(void)
>>>         * If the logic changes in pfn_pdx_hole_setup we might have to
>>>         * update this function too.
>>>         */
>>> -    uint64_t mask = pdx_init_mask(0x0);
>>> -
>>> -    for ( bank = 0 ; bank < mem->nr_banks; bank++ )
>>> -    {
>>> -        bank_start = mem->bank[bank].start;
>>> -        bank_size = mem->bank[bank].size;
>>> -
>>> -        mask |= bank_start | pdx_region_mask(bank_start, bank_size);
>>> -    }
>>> +    pfn_pdx_compression_setup(0);
>>>        for ( bank = 0 ; bank < mem->nr_banks; bank++ )
>>>        {
>>> -        bank_start = mem->bank[bank].start;
>>> -        bank_size = mem->bank[bank].size;
>>> -
>>> -        if (~mask & pdx_region_mask(bank_start, bank_size))
>>> -            mask = 0;
>>> +        if ( !pdx_is_region_compressible(
>>> +                  mem->bank[bank].start,
>>> +                  PFN_UP(mem->bank[bank].start + mem->bank[bank].size) -
>>> +                  PFN_DOWN(mem->bank[bank].start)) )
>>
>> This code is a bit too verbose. Can we at least introduce "bank =
>> &mem->bank[bank]" to reduce a bit the verbosity?
> 
> I cannot introduce a `bank` local variable as it's already used as the
> index cursor for the loop.  Would you be fine with:

Ah yes. I am fine with the logic below. I am happy if you want to commit 
message without resending the series.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 17:25:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 17:25:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077856.1438876 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulWGY-00047t-Kd; Mon, 11 Aug 2025 17:24:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077856.1438876; Mon, 11 Aug 2025 17:24: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 1ulWGY-00047m-H2; Mon, 11 Aug 2025 17:24:58 +0000
Received: by outflank-mailman (input) for mailman id 1077856;
 Mon, 11 Aug 2025 17:24:56 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1ulWGW-00047d-Tv
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 17:24:56 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ulWGW-000Arx-14;
 Mon, 11 Aug 2025 17:24:56 +0000
Received: from [2a02:8012:3a1:0:2562:7575:7df6:8090]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ulWGW-000Q1H-1h;
 Mon, 11 Aug 2025 17:24: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=ZSIi1x+Hq+lgM0MZnSR6HHLEIdwvlGDuTVwfQkmI1Mo=; b=Sex0GFVLrnHIS6yaNryXKJSxEE
	Gd7pL+agAMw7zYQObQwcUkviDHb6/r42zpkKnKThoZ5gU8HWnFbINpQWhkW7WN90H6b44ndwT9YDT
	BbHJZ7Rh6aOpsmsEndZ5k2VWG4PIYcXXiitykKIdACqlAeabZyOKXjHiYhiXZUReNmcs=;
Message-ID: <86faa2fa-9f23-49a9-a909-a3dd3d5a938f@xen.org>
Date: Mon, 11 Aug 2025 18:24:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] Arm: drop assertion from page_is_ram_type()
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <804094ae-bb76-4165-9e07-46b775b4b46e@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <804094ae-bb76-4165-9e07-46b775b4b46e@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Jan,

On 11/08/2025 14:01, Jan Beulich wrote:
> Its uses in offline_page() and query_page_offline() make it reachable on
> Arm, as long as XEN_SYSCTL_page_offline_op doesn't have any Arm-specific
> code added. It being reachable was even mentioned in the commit
> introducing it, claiming it "clearly shouldn't be called on ARM just
> yet".

So I agree that the function can be reached. But then I don't think the 
function can simply return 0.

The name is too generic enough that someone may end up to use it in 
common code and there will be no signal to the user that the function 
will not properly indicate a RAM page on Arm.

I can think of two possible approaches:

1/ Implement properly page_is_ram_type(). We don't have an e820, but we 
could mimick it using the memory banks we stored.
2/ Rename page_is_ram_type() to page_offlinable() (or similar) so it is 
clear that the common use is for offlining.

The latter might be the simplest.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 17:28:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 17:28:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077864.1438885 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulWKP-0004hs-22; Mon, 11 Aug 2025 17:28:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077864.1438885; Mon, 11 Aug 2025 17:28: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 1ulWKO-0004hl-Vi; Mon, 11 Aug 2025 17:28:56 +0000
Received: by outflank-mailman (input) for mailman id 1077864;
 Mon, 11 Aug 2025 17:28:56 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1ulWKO-0004hP-08
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 17:28:56 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ulWKN-000Avr-0X;
 Mon, 11 Aug 2025 17:28:55 +0000
Received: from [2a02:8012:3a1:0:2562:7575:7df6:8090]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ulWKN-000Q9m-1K;
 Mon, 11 Aug 2025 17:28: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=O1lA9/19+j5F2XJyQPpRqhW/plmDGmDoSavMLAxlWn4=; b=Gq2Q5vJPPhovhs4JcJ8a0++IBc
	AKtS1VKousYN/0pdIzMj7zgS1Q1LiOsThKX5lYrx/vnvExWrX0/YIJw4invjXWgmqVE21QduuCb43
	55rHq7V87kkHWNgNC+iUYC+QAfOgFh/YkglSGIR28mUZc4A0RGbGXiAKmbeZnq1pW354=;
Message-ID: <1a51ba8c-93c5-4cfb-b76e-26e318c0b22d@xen.org>
Date: Mon, 11 Aug 2025 18:28:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/arm: irq: add missing spin_unlock() in
 init_local_irq_data() error path
Content-Language: en-GB
To: Mykola Kvach <xakep.amatop@gmail.com>, xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Denis Mukhin <dmukhin@ford.com>
References: <f983bb7c3c9f0912da7e7f2fc22384ce1081a7a3.1754901835.git.mykola_kvach@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <f983bb7c3c9f0912da7e7f2fc22384ce1081a7a3.1754901835.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Mykola,

On 11/08/2025 09:45, Mykola Kvach wrote:
> From: Mykola Kvach <mykola_kvach@epam.com>
> 
> If init_one_irq_desc() fails, init_local_irq_data() returns without
> releasing local_irqs_type_lock, leading to a possible deadlock.
> 
> Release the lock before returning to ensure proper cleanup.
> 
> Fixes: 2bb32b809250 ("xen/irq: Propagate the error from init_one_desc_irq() in init_*_irq_data()")
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> Reviewed-by: Denis Mukhin <dmukhin@ford.com>

Acked-by: Julien Grall <jgrall@amazon.com>

I will commit the patch soon.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 17:32:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 17:32:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077873.1438896 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulWNp-0006Hs-Gc; Mon, 11 Aug 2025 17:32:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077873.1438896; Mon, 11 Aug 2025 17:32: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 1ulWNp-0006Hl-Db; Mon, 11 Aug 2025 17:32:29 +0000
Received: by outflank-mailman (input) for mailman id 1077873;
 Mon, 11 Aug 2025 17:32:28 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1ulWNo-0006Hf-C2
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 17:32:28 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ulWNn-000B1c-2f;
 Mon, 11 Aug 2025 17:32:28 +0000
Received: from [2a02:8012:3a1:0:2562:7575:7df6:8090]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ulWNo-000QJ6-0C;
 Mon, 11 Aug 2025 17:32: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=/VakfUvkcvYfPcmKigNHJ4kNmNjQyqgEfg7iBSB58wg=; b=ZkbTFIzuM+yOF24DgQ25vfGTAE
	Iqpvs9OlIEMFMfYl0UtKV3n2OLWVUPl4FoxnL7OLohYycNpboxF6NWzHoYktSbTXXSkxTDhaZCIJ7
	atOQejjFt+xj7XU9BCHsSZSkgkSDDFcDSS79AkZlzRFVpD9uZgY1UhwYnb0CFmZB0/nA=;
Message-ID: <d405fdbf-c6db-4fdb-9d63-f31d7a431e19@xen.org>
Date: Mon, 11 Aug 2025 18:32:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 1/2] xen/arm: fix arm_iommu_map_page after f9f6b22abf1d
Content-Language: en-GB
To: Stewart Hildebrand <stewart.hildebrand@amd.com>,
 xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <stefano.stabellini@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20250725140130.4008-1-stewart.hildebrand@amd.com>
 <5fab90b6-7cae-45d0-bb8e-b1ffa0390b6f@xen.org>
 <7a3a08f4-c08e-4490-a033-53e81b261181@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <7a3a08f4-c08e-4490-a033-53e81b261181@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Stewart,

On 06/08/2025 14:58, Stewart Hildebrand wrote:
> On 7/26/25 05:23, Julien Grall wrote:
>> Hi,
>>
>> On 25/07/2025 15:01, Stewart Hildebrand wrote:
>>> From: Stefano Stabellini <stefano.stabellini@amd.com>
>>>
>>> Up until f9f6b22abf1d "xen/arm: Map ITS doorbell register to IOMMU page
>>> tables" the only caller of iommu_map on ARM was grant_table.c which has
>>> a specific usage model and restrictions as described by the in-code
>>> comment in arm_iommu_map_page.
>>>
>>> f9f6b22abf1d introduced a second caller to iommu_map on ARM:
>>> vgic_v3_its_init_virtual. This specific statement in the
>>> f9f6b22abf1d commit message is partially wrong:
>>>
>>> "Note that the 1:1 check in arm_iommu_map_page remains for now, as
>>> virtual ITSes are currently only created for hwdom where the doorbell
>>> mapping is always 1:1."
>>>
>>> Leading to crashes any time the hardware domain is not direct-mapped
>>> (e.g. cache coloring and non-Dom0 hardware domain):
>>>
>>> (XEN) Xen BUG at drivers/passthrough/arm/iommu_helpers.c:47
>>> [...]
>>> (XEN) Xen call trace:
>>> (XEN)Â Â Â  [<00000a000024c758>] arm_iommu_map_page+0x80/0x90 (PC)
>>> (XEN)Â Â Â  [<00000a000024c750>] arm_iommu_map_page+0x78/0x90 (LR)
>>> (XEN)Â Â Â  [<00000a0000250884>] iommu_map+0xcc/0x29c
>>> (XEN)Â Â Â  [<00000a0000288024>] vgic_v3_its_init_domain+0x18c/0x1e8
>>> (XEN)Â Â Â  [<00000a0000285228>] vgic-v3.c#vgic_v3_domain_init+0x168/0x21c
>>> (XEN)Â Â Â  [<00000a0000281dcc>] domain_vgic_init+0x14c/0x210
>>> (XEN)Â Â Â  [<00000a00002705a4>] arch_domain_create+0x150/0x1f0
>>> (XEN)Â Â Â  [<00000a00002055e8>] domain_create+0x47c/0x6c0
>>> (XEN)Â Â Â  [<00000a00002cf090>] create_domUs+0x7f8/0x8cc
>>> (XEN)Â Â Â  [<00000a00002eb588>] start_xen+0x8f4/0x998
>>> (XEN)Â Â Â  [<00000a000020018c>] head.o#primary_switched+0x4/0x10
>>>
>>> Specifically, non-1:1 hardware domain exists with cache coloring
>>> enabled. For that, is_domain_direct_mapped(d) is false but
>>> domain_use_host_layout(d) is true.
>>>
>>> Change the is_domain_direct_mapped(d) checks in arm_iommu_map_page and
>>> arm_iommu_unmap_page into domain_use_host_layout(d) checks.
>>>
>>> Drop stale in-code comment specific to grant table mappings.
>>>
>>> Fixes: f9f6b22abf1d ("xen/arm: Map ITS doorbell register to IOMMU page tables")
>>> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
>>> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
>>
>> Reviewed-by: Julien Grall <jgrall@amazon.com>
> 
> Thanks for the review! Is this ready to be committed?

Yes. Sorry, this fell through the cracks. I have queue the patch for 
testing and committing.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 17:33:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 17:33:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077886.1438905 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulWOu-0006qH-UB; Mon, 11 Aug 2025 17:33:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077886.1438905; Mon, 11 Aug 2025 17:33: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 1ulWOu-0006qA-RT; Mon, 11 Aug 2025 17:33:36 +0000
Received: by outflank-mailman (input) for mailman id 1077886;
 Mon, 11 Aug 2025 17:33:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nn8B=2X=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1ulWOt-0006q2-DC
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 17:33:35 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4dfe4b0c-76d9-11f0-a326-13f23c93f187;
 Mon, 11 Aug 2025 19:33:34 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id C004E4EE0744;
 Mon, 11 Aug 2025 19:33:32 +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>
X-Inumbo-ID: 4dfe4b0c-76d9-11f0-a326-13f23c93f187
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=1754933612;
	b=28QLEHD2E6rjY3UMInlNrFNlmUEr238UvixU5KlBytiCm1qZ12DvACfhn6WIy3MWwwOn
	 7aP18OZmp+quPmgrvkAf4R2iB1BxAhxUECvLklXeq9BsTDDAu70PH6DBAQLvTIJM8M/Xv
	 i0nHcz0lqFW1hnfx8peI9yHWRQf/gMzQJgj6C08tw869w6AugOpBxrdaH1Ot0uf5DssYh
	 XuFxAJSDk7VyMm4PVtrr2JZW+jken50bEZI4trKDcihrYxv2AeDFg52S4SOUYlBVGkvXh
	 5oVbUK4ATkljANPGOElqCWx/aO57FSCmMzuXOe95pB8uAHOF7a7XfSh4hObhhMUf97/FM
	 1wDIyvCCe5M9aG1czIk92DV4GaqqsiS/A4PAaNHQDXDkllCMUslgvZFczjSVS01oCzcCn
	 pTHoBVxYbB0dnE0Nd8sk7HlACycobdxL+8HDuyn2P+q/KysZziOLAR9vT3xKWgv/da3Oi
	 pDEdZqN1RMrTfcG7Nk64/cByBRcy6V50QNl3bHlWC8/ac0N0PGGXohiWz9lhTlNxSZJlC
	 YnIYjcr5J1HDRiwf13M5Hi29Sdc5Pyfu0+V9U/QDhfJxpV1NWcAuR4n6mstVktNIpZdbP
	 f0/2p0D7YVIXD4O3pNpYwi25xCNoMSuZttqhc2wVZPpiT3XovYFK0ZADotw/vsA=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1754933612;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=KPhUVmT+WZ7A7Zg9ag6Jkhm3PsKJ59NCsU7cZ71Vju0=;
	b=mFmduCEuzAA5WcQLTy0AOFMaTHPr0da3OClS4gkgW5FE7MwcCW0QVO+b5oswD/c+LJhP
	 C/tEnmS/1nyq1W09gbYonAvR38bgstlypm4uUWtwn78FyFL9WKXB+c/TeyfyVpzFe2VE1
	 iys0v4Db2bN6wFpmmC7wQwZ3ZXLQViA73oWa0RVOkX0RSrlZUvpu2Nyifes5HGn7hQiDv
	 RBQvado3vSgGBPCqqzWupSLBDTZFS8mhKrSfME7P4+MKaVS8rwO0XGS2mifGkKTLBLmw7
	 qya8/jrp39wUtzQhIy9OcQ/+Mr3Ow0dTQAHwaIBnmfZlDSs3Yj81LxJ+0mh2zcjk/9oAj
	 l0hNO9H7WEIoHYkOFQA3HSVWGIKLvV666YRi2FwUgz+15bXUcYA9ki2qdWq6I1qN8lPWm
	 KRVcjHsQI5hpo1wI53npp8CQ8RGq3hZX/Q4LSEddp0TVvsGEtvEt12ltI9r/hgN+AP2Sy
	 DgwbuFNV3utuT5se6+DzchBc8XMlVVFEwnht3YRR77vDJLedFmjsREzpqG5HcuJKBtK8h
	 +jaSIe8rxPUNZSVxpJogcPtGIDa7TCz/chBv+A3MiVEi6SUiI2lAYL0ZG0AhqlN7UyiW6
	 BhUKWIoLxifFMg2xxme4gJIOj7hYlsPeJXQkj2RTsGXEMgtJaav15s8Cek66REk=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1754933612; bh=+2tMGRj7/V5wGSMPz2tkmNX/tx42u975yZz+sCLW1oo=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=hMEnkHiiPsF1ShlbeTs2qyuN2BHMTCiAln0D5/MH79p74KuUjrlrrhgs3jEODWW5+
	 ahzHU77kkHBEw6DxpPr2FTqUYwFKqhbLcpzbQPW12o/e5HAqiIWQzI4fgWGIZ4/CWw
	 NZpF4ioXqa4fyUs8B2cz21oZHz9aJIPgWe8yYOxbkEFpfaGZKaPKWD2TX5zqrrSCh9
	 2kpRd4G8cvkAfo5AgzvNwuRdzldyC9nBkxsum25d9HBCcGi4DJUU+Y/ubkvvNV6Wto
	 2R8mvw9cB1JM6o7e+2Df9Rux1CqZ3eYdwD0qEDUphQwTXnU6OgS3WKg08roCB6QTb3
	 0kszpop9gbN8A==
MIME-Version: 1.0
Date: Mon, 11 Aug 2025 19:33:32 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: nicola.vetrini@gmail.com, xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN PATCH] xen: Drop logic for old clang versions.
In-Reply-To: <aJn_xi5dVD3-imnz@macbook.local>
References: <e8bb42876317c19aca79f81c3fc48dc3a4fdaf71.1754830862.git.nicola.vetrini@bugseng.com>
 <aJmgCv4wgl-IHupn@macbook.local>
 <2ca7082120df5e1ad6a29582d6dfb215@bugseng.com>
 <aJn_xi5dVD3-imnz@macbook.local>
Message-ID: <179776cb8b5b5dd265af01238cf8eedd@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

On 2025-08-11 16:35, Roger Pau MonnÃ© wrote:
> On Mon, Aug 11, 2025 at 11:37:46AM +0200, Nicola Vetrini wrote:
>> On 2025-08-11 09:47, Roger Pau MonnÃ© wrote:
>> > On Sun, Aug 10, 2025 at 03:03:53PM +0200, nicola.vetrini@gmail.com
>> > wrote:
>> > > From: Nicola Vetrini <nicola.vetrini@bugseng.com>
>> > >
>> > > The enforced toolchain baseline for clang is version 11,
>> > > therefore this logic is effectively dead code.
>> > >
>> > > No functional change.
>> > >
>> > > Signed-off-by: Nicola Vetrini <nicola.vetrini@gmail.com>
>> >
>> > Acked-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
>> >
>> > > ---
>> > > Mentioned in https://gitlab.com/xen-project/xen/-/issues/201
>> > > ---
>> > >  xen/common/coverage/llvm.c   | 4 ----
>> > >  xen/include/xen/self-tests.h | 9 +--------
>> > >  2 files changed, 1 insertion(+), 12 deletions(-)
>> > >
>> > > diff --git a/xen/common/coverage/llvm.c b/xen/common/coverage/llvm.c
>> > > index 50d7a3c5d301..517b2aa8c202 100644
>> > > --- a/xen/common/coverage/llvm.c
>> > > +++ b/xen/common/coverage/llvm.c
>> > > @@ -44,12 +44,8 @@
>> > >      ((uint64_t)'f' << 16) | ((uint64_t)'R' << 8)  | ((uint64_t)129)
>> > >  #endif
>> > >
>> > > -#if __clang_major__ >= 4 || (__clang_major__ == 3 &&
>> > > __clang_minor__ >= 9)
>> > >  #define LLVM_PROFILE_VERSION    4
>> > >  #define LLVM_PROFILE_NUM_KINDS  2
>> > > -#else
>> > > -#error "clang version not supported with coverage"
>> > > -#endif
>> >
>> > Rant: most of the LLVM coverage stuff is already kind of dead code, as
>> > the format of the data changes between versions and there's no way for
>> > LLVM to generate the blob itself using a builtin function or
>> > similar.  We haven't kept up with new formats, and now it's not
>> > possible to parse the output coverage data when using newish LLVM
>> > versions.
>> >
>> > Linux converts it's LLVM coverage data to gcov format (which AFAIK is
>> > way more stable), and exports it in gcov format.  We should consider
>> > importing that from Linux.
>> >
>> > Thanks, Roger.
>> 
>> Fair point. Generally I found coverage reports generated using LLVM 
>> tooling
>> a bit more informative than gcov's, but I don't know how much work 
>> would it
>> be to adapt Xen for newer versions of LLVM.
> 
> It's a pain because they keep changing the blob format between
> versions, so we would basically need code in Xen to be able to
> generate the right blob for each possible clang version.
> 
> It would be helpful if clang provided the helpers to generate the
> coverage data in a version agnostic way, but so far I haven't found a
> way to do it.  I've raised a question with upstream LLVM project, but
> no replies:
> 
> https://github.com/llvm/llvm-project/issues/123034
> 
> Regards, Roger.

Perhaps the "coverage" and "llvm-cov" tag might help get more traction; 
there is at least one developer working on the source-based code 
coverage area in the past months with various improvements.

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 17:36:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 17:36:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077895.1438916 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulWSA-0007Or-Cw; Mon, 11 Aug 2025 17:36:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077895.1438916; Mon, 11 Aug 2025 17:36: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 1ulWSA-0007Ok-9p; Mon, 11 Aug 2025 17:36:58 +0000
Received: by outflank-mailman (input) for mailman id 1077895;
 Mon, 11 Aug 2025 17:36:57 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UdnH=2X=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1ulWS9-0007Oe-K0
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 17:36:57 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c201::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c6b3789e-76d9-11f0-a326-13f23c93f187;
 Mon, 11 Aug 2025 19:36:56 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by AM9PR03MB7929.eurprd03.prod.outlook.com (2603:10a6:20b:438::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.21; Mon, 11 Aug
 2025 17:36:53 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9009.018; Mon, 11 Aug 2025
 17:36: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>
X-Inumbo-ID: c6b3789e-76d9-11f0-a326-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MXEu3O7p4oHTEVS3aM701ZCZKUFt3Pr09nJwuFq0ru40kCULv5MW/KosTyGDjlqmFIo0xEv5YU+6ZmyOmkdJ+NydB/VuqdQF4j/LJasCtIKnA/Lp0F8J/ZFsvpAXK+FI4IcBXsA/AS35MfT8wgMVLqasaFySFzus8jyKuoDCJ40+kPYToiLEhoaiHKgtwwR5Vi69BnCUPNCqqTL6e96pilhgWe+iKb0wDLdbNr0QCoPwzTSTeN/8oQk+l+McM5BHH2+HCJsYtkmoRwbS8UcJ6mUFlSEw9DfHLZRA77dKWg/ps4Jxfy90AnAG/3uZejFrMYMriga2UPVUByAlTPWS2A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=yNqFeLEcTWrPGlajBVbJB109KX7ojmBgbcImzAPEgN8=;
 b=GE+aN97IKFbd6L1EUtOQmqwuekOm4ny0jaCDnJoy/jC8ESQ4HEBRyM0iLpjRcDkE7DQsP7U3eO29/O9tP/CpqAedEAzA1ljdNUEA7ppMw63RE7mzg6ZNRAG2X4++kVqzClOgQEF8DC4uzLvtm73fXj0IlrXV2z3taJ2S7QKB6LyFTvL+n3FoUHhpxxJqu+fLmHmXMdRMpaADXSUfAi1wPVZ6HsSOR7hHA+XNBJ3j3j9LRDBF39nVl9X0GNKw7djkpwC368GkztkfFlcaYh95z+TLSZdDWv4ReT8KW0Zqu013gaygHFUQAWUgCd0/NALRxvOb4+u2GQr3Z8nK+B0oqQ==
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=yNqFeLEcTWrPGlajBVbJB109KX7ojmBgbcImzAPEgN8=;
 b=SXDdvOOZA7Ebi3baM85ZddP8d/TylKuW3vYgz6wpcjSGXFur/D+pPXi3vCGb4KYkx9RnSNkUIA0IfEDdq+m83SOiXg+NAs4LLQawoTTFmipdVyXtBthIhjCj+aMltXgyPF4ZhE+1dDYnH+QwaD2q+15IqwYzXQFlAezLDdCqlHxRzVwvKmKD1UM2tWYIaFUWFykvb3aiHOdmhWQzUWpzvqgMqLGLQJWfHRnooaAlzuOFWKtWs+rk45o/3Xj4SZdY5X9MyA/880dLW96xP7ZCtTGFg4o6h+egmZ+vJ+QD/2OrK99toHWCB0JYNF0psBcLIXpSrWF81baWPQROdcKcQg==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>
Subject: [PATCH] misra: comment default case in single-clause switch
Thread-Topic: [PATCH] misra: comment default case in single-clause switch
Thread-Index: AQHcCuaGmRofUvvSEEWe+78HEkEpWw==
Date: Mon, 11 Aug 2025 17:36:52 +0000
Message-ID:
 <1d3c5364b726e42a8c38c396f2e20efc52790f62.1754933752.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: GV2PR03MB9572:EE_|AM9PR03MB7929:EE_
x-ms-office365-filtering-correlation-id: 48cb2eda-3d19-433d-2b0b-08ddd8fda8de
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|42112799006|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?/1FAVPXs4JT56sHkOC2BV+krUXaLnbdXZ0GrzOw4NMCRXM31n31cmndof6?=
 =?iso-8859-1?Q?QJsOXq3eNFtR+iwUUmkzjOvIPwTAHZwTdccTAyGsTrzvha3vNDjX/zH5Aq?=
 =?iso-8859-1?Q?R49nqrOkRPM1bmcH8xxkcCGTSVbCBYfAdWmmBmHbhOeGj/Nl4Ebg6Wb1vL?=
 =?iso-8859-1?Q?AUzPPeu/3DQGz5j0bweWv71Aie8z+yhaovRANhhVwDx2WjaiYS52eoLJUR?=
 =?iso-8859-1?Q?NF52iAzDg2dgDLjUxrQ7Zi4nYdfwS1clEKObEizuqJr5Hr7EAuODuAQ3HG?=
 =?iso-8859-1?Q?QSGRZlrJRoBrM6ZSmbw3LqSBkptOxlGHb9WW6PJmile0CcEYQrgkGoEwOI?=
 =?iso-8859-1?Q?e6NDRnbFqRN+a0wf0FbbVcEj5Sx32N0l/t2qRwR5HX5zxmDwZvlUvTKkQh?=
 =?iso-8859-1?Q?c6WX+e1MAcYpjQkCsZrkN1B6015hSHSr/2Pdja8eVsdakiHhcafEVM3PR0?=
 =?iso-8859-1?Q?SVvyHbBxVPSgDv4k1QHnWLuv5T2WVX1VLovE6qQXT0a3Ob36TowVGbYoPQ?=
 =?iso-8859-1?Q?xWkHsp+JxyghYiH09eJFzvjR2YKHcJBJ7oi/iqiJu3q8HqYu2kYgHpmIo4?=
 =?iso-8859-1?Q?sVGbgtCslw9/gA+yvi6b+Z4E7F+23zv2ORXk9eMepN8nkX5wsT9S2Jq5X2?=
 =?iso-8859-1?Q?Ff2Am4xZ3mpLmUOgG/ljwJ3mMUzWidHhLRFJFA66+wIFzkYZ3isdWoRuu+?=
 =?iso-8859-1?Q?KphUw4bNRrsGiZFPnMPYSG06HSfam6M7yaBOZ8jMZh0Z+uLmWp5NNSPv8m?=
 =?iso-8859-1?Q?JHUo5WWBfSejG/1lYTSL8b6jX+hGuMQo6QpQKkqOnHfR6zXgQ4A9aaWOT4?=
 =?iso-8859-1?Q?sF/kT8VlaUk1nnJ3BKrTV66yMPLYxa4xsDEVbeaJ+F53wRlKo85eOCdiQe?=
 =?iso-8859-1?Q?ptFSDCz7ZaQZX9EazF53fagJhJWASwFLCWuBkvHpqiyD1qAosVfTFMYTHd?=
 =?iso-8859-1?Q?DdCJnHjRP7dyMb75nlYD27VRAZTf/+e0fKyDyNhNe4XGnjUAmJToe0xNpb?=
 =?iso-8859-1?Q?H3tCBd0g5faKOKzhzP8/ghJFMJikNDnW5muBD0VOYcY1oUTar+NGuKRX+t?=
 =?iso-8859-1?Q?6gXPt595yYlx9G7NDNDebQmL9dNbib2DCiDr7prTUUO0jVc0WK29sE9L/w?=
 =?iso-8859-1?Q?/eW6lUAJdnoDczsOqM2RvWxVMFjuoRjx7loNHyiZR4+bNkHhJhR/ZNqvS9?=
 =?iso-8859-1?Q?NU5TIpGaKo8HoHwejgXOP2k+/1a3sjIYmfIJr823YRpILrXA08eyynSwoJ?=
 =?iso-8859-1?Q?HnCQKqc/+0hhkPH4zHwlYnYugz52/f6nE1vnr2L8l+UQwfKFZIQdrpp7tu?=
 =?iso-8859-1?Q?I/GI2fJawqguF1IWkNfrA0bT2xdKz4FYOcAcqkq0oj59YdafF06Cn85p13?=
 =?iso-8859-1?Q?2T3oHH4KOimLcknCMb7/jH4NjwZQJy8o2y7X8ICN+oWHTlHhXy75opKDV5?=
 =?iso-8859-1?Q?+1HGARtBuc4+vQwpHeVt/RpT+W8OXmrF8cYLuFYQRPk9uBcaQeUbtJQFk4?=
 =?iso-8859-1?Q?L3e6h/3g1aBeC8Vja7uNz6oUFsuOwLlyA1Nn7/SjoLJg=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(42112799006)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?n8N7qxDR2bUiO7uvaA1zFlnchPHzg64LCFA4gs78+HV6HFA+aKcVYcjGAa?=
 =?iso-8859-1?Q?zo5ZqKTULKnq4AhrIiYbSGCUbfwzxwidQ3CwWmgc9wJ10EWKIM4DCmU28I?=
 =?iso-8859-1?Q?1W+x2LtaJQYvuX8Rf44jUaZDhWD6dyShqRkw3VRdsGl0PKaPWxsceveDkZ?=
 =?iso-8859-1?Q?Ll1a+bXp5ooJQceF/1XoALIoz8Mlpw/Pg6T6tDotJ9nOwykCB3w+O2SnYd?=
 =?iso-8859-1?Q?wpqbTh7afhQDTwf/SOy09LYm7EfA0tYsbuQTARmANgnQLY2yxBrZovIw9L?=
 =?iso-8859-1?Q?oRmMmVrfwh9eorVwEFIFXakdXt3a/+x0lBrWIOsuxBv+GTPENXQKVFoNAJ?=
 =?iso-8859-1?Q?a5GJ6T2JAQL3/eBRFgatr6kzX28aMNSm0xN3h1mrdJRC+QFwfvWDw3WzR0?=
 =?iso-8859-1?Q?AANBXJ7ei6iXlfTY75UZM+nUSkFT//AnVq1nk4uZ9qL+vG1ow6o4cMvkoH?=
 =?iso-8859-1?Q?G9Q+vUgQw87ZHybNx0dxXhb8fvkUZyCcOB92F29Mj/nratExbej3Y/tuHC?=
 =?iso-8859-1?Q?WDCOmgl2ipUa5qXMJ9vYsEJSxp2TToiKbbxzYV47YJ1d7eyLEPeoBhDY+C?=
 =?iso-8859-1?Q?yUoTMznG0hj8vcQqNY+8DeVnaVo8KN4FsecAk34SUdScssdECkZTuYjaSr?=
 =?iso-8859-1?Q?5/7dqBY1SUhTJdeatbbhTLIrPApWnw2a01yn3ocWqK28H1fogGTUy34ckH?=
 =?iso-8859-1?Q?s7QlZppHlYhHPsB14mLJOUGIXKqs2wiLSLfLN9KUvjeYVAfUFlSgj++bY5?=
 =?iso-8859-1?Q?i5YVZ6dXNo0Oxdk49A87sFIy+DHkdl3Ziq6z/3Ii+OPBM4RwyaxzikDDDL?=
 =?iso-8859-1?Q?EZVyTZL54lpl+Hv9oA3hI2Rbk891ttrOymXZJmahs7f4l0y2NkS8SW4fp1?=
 =?iso-8859-1?Q?ysLZK4tU+YV1HDUNfVWfAV1RFv4xFYnLoC/7rWnJJh+B0gMJmJqyIov37X?=
 =?iso-8859-1?Q?0yPMKW9v/TDCZa2rJzPixCzeCs1/73aSeoTfu7T6z5UKLzM+o+4jMMFC3/?=
 =?iso-8859-1?Q?sfHykiptZnThnu8rG6DCR7XkbZdEa31vAAAZ7cbE6FLxiLvjUjwrcSL86d?=
 =?iso-8859-1?Q?9k6RtQaSWcjAwHmrBUoLvQVk75zsNjosunZzdMMDo9luZDQAkKlPYUp4HW?=
 =?iso-8859-1?Q?mOmRnfCI2HXzlhTUbFKPK3worTtEL5zulIMYAEUa0QjYBDvVJGI1lbJzxA?=
 =?iso-8859-1?Q?VzDus2aFTZ/ui0aWoGTzOoPf1uuOpsjl3d9J7UxiwgS9Yt+TC2YisLhs8C?=
 =?iso-8859-1?Q?aX6Q1wJ6TEKQu6kuaTtkQIAjboPpJ4kAkKnLeHXVBCVE3tYtt4O/Wy9q0O?=
 =?iso-8859-1?Q?fsBg9Q3BkjRVevZDM05AzhDc+H+WmL/7erAxOMT5BbR13vqhaCzVdPetFP?=
 =?iso-8859-1?Q?/YYcQiRzUaxZ5b+9mLfPaC4cpwTqBKVbY8BIfs3CkwiaWSUtNp0V+UkhMg?=
 =?iso-8859-1?Q?dTyY7v5dViWEKEOaIbVuEsrlH0Z1jdYfqcQ9m0hUXjIPKiu0o0Qvb/IBZs?=
 =?iso-8859-1?Q?q6HWo6Sn2TowGrRHgiERatr7hGk0yvhxX7SMldWvpOBR+jqVkrh6hPXpeQ?=
 =?iso-8859-1?Q?COPnkGGu8U2I+tR82p8DFlL5xgreKqajw7VUzxww/DFepIX8ni9R0YJyj1?=
 =?iso-8859-1?Q?JMo7ww8ep4DHLSLqy7wWYjecDuOUq/FOyM8I+CCcwwQCcnFDNITRgPYg?=
 =?iso-8859-1?Q?=3D=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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 48cb2eda-3d19-433d-2b0b-08ddd8fda8de
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Aug 2025 17:36:52.7827
 (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: HjhVi49GVp2nAj+njKhhOWSJ6seBhGpppj/jKRuqimTSAyThMtdilRAbWMo0G66GqwWLFMIrEe2gImT/YSMoETZJtLuFD0EGcn5V6k803x0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7929

MISRA Rule 16.4: Every switch statement shall have a default label. The
default clause must contain either a statement or a comment prior to its
terminating break statement.

This change adds comments in default cases in single-clause switches to
avoid violations of the rule where the `default` clause lacks a suitable
comment or statement.

Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
 xen/arch/arm/cpuerrata.c | 5 +++++
 xen/arch/arm/gic.c       | 6 ++++++
 xen/arch/arm/mmu/p2m.c   | 6 ++++++
 xen/arch/arm/time.c      | 6 ++++++
 xen/common/kexec.c       | 6 ++++++
 5 files changed, 29 insertions(+)

diff --git a/xen/arch/arm/cpuerrata.c b/xen/arch/arm/cpuerrata.c
index 17cf134f1b..e31c72694b 100644
--- a/xen/arch/arm/cpuerrata.c
+++ b/xen/arch/arm/cpuerrata.c
@@ -735,6 +735,11 @@ static int cpu_errata_callback(struct notifier_block *=
nfb,
         rc =3D enable_nonboot_cpu_caps(arm_errata);
         break;
     default:
+        /*
+         * Default case left empty as other notifier actions do not requir=
e handling here.
+         * The single CPU_STARTING action in the switch is sufficient beca=
use this function
+         * specifically handles enabling errata workarounds during CPU sta=
rtup.
+         */
         break;
     }
=20
diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
index e80fe0ca24..dfbb0dfe08 100644
--- a/xen/arch/arm/gic.c
+++ b/xen/arch/arm/gic.c
@@ -436,6 +436,12 @@ static int cpu_gic_callback(struct notifier_block *nfb=
,
         release_irq(gic_hw_ops->info->maintenance_irq, NULL);
         break;
     default:
+        /*
+         * Default case left empty as other notifier actions do not requir=
e handling here.
+         * The CPU_DYING action specifically handles releasing resources a=
cquired by
+         * init_maintenance_interrupt(), when the CPU is being taken offli=
ne. Other CPU
+         * actions do not require GIC-specific handling.
+         */
         break;
     }
=20
diff --git a/xen/arch/arm/mmu/p2m.c b/xen/arch/arm/mmu/p2m.c
index 51abf3504f..d1f0ae0226 100644
--- a/xen/arch/arm/mmu/p2m.c
+++ b/xen/arch/arm/mmu/p2m.c
@@ -1828,6 +1828,12 @@ static int cpu_virt_paging_callback(struct notifier_=
block *nfb,
         setup_virt_paging_one(NULL);
         break;
     default:
+        /*
+         * Default case left empty as other notifier actions do not requir=
e handling here.
+         * The CPU_STARTING action is specifically handled because this fu=
nction sets up
+         * virtual paging for CPUs, particularly for non-boot CPUs during =
hotplug. Other
+         * actions do not involve virtual paging setup.
+         */
         break;
     }
=20
diff --git a/xen/arch/arm/time.c b/xen/arch/arm/time.c
index e74d30d258..4776110d97 100644
--- a/xen/arch/arm/time.c
+++ b/xen/arch/arm/time.c
@@ -382,6 +382,12 @@ static int cpu_time_callback(struct notifier_block *nf=
b,
         deinit_timer_interrupt();
         break;
     default:
+        /*
+         * Default case left empty as other notifier actions do not requir=
e handling here.
+         * The CPU_DYING action is specifically handled to revert actions =
done in
+         * init_timer_interrupt() and properly disable timer interrupts on=
 the CPU being
+         * taken offline. Other actions do not involve timer deinitializat=
ion.
+         */
         break;
     }
=20
diff --git a/xen/common/kexec.c b/xen/common/kexec.c
index 84fe8c3597..0f78087a4a 100644
--- a/xen/common/kexec.c
+++ b/xen/common/kexec.c
@@ -549,6 +549,12 @@ static int cf_check cpu_callback(
         kexec_init_cpu_notes(cpu);
         break;
     default:
+        /*
+         * Default case left empty as other notifier actions do not requir=
e handling here.
+         * The CPU_UP_PREPARE action is specifically handled to allocate c=
rash note buffers
+         * for a newly onlined CPU. Other actions do not pertain to crash =
note allocation
+         * or memory preservation for kexec.
+         */
         break;
     }
     return NOTIFY_DONE;
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 17:41:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 17:41:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077904.1438925 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulWW0-0000WI-Rg; Mon, 11 Aug 2025 17:40:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077904.1438925; Mon, 11 Aug 2025 17:40: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 1ulWW0-0000WB-P4; Mon, 11 Aug 2025 17:40:56 +0000
Received: by outflank-mailman (input) for mailman id 1077904;
 Mon, 11 Aug 2025 17:40:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UdnH=2X=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1ulWVz-0000Vf-D3
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 17:40:55 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c201::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5306fed8-76da-11f0-a326-13f23c93f187;
 Mon, 11 Aug 2025 19:40:51 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by AM9PR03MB7929.eurprd03.prod.outlook.com (2603:10a6:20b:438::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.21; Mon, 11 Aug
 2025 17:40:50 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9009.018; Mon, 11 Aug 2025
 17: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>
X-Inumbo-ID: 5306fed8-76da-11f0-a326-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZO3r65F8jTyiRwCa4mUW4QUS2IiYlgaG58xj4ZidrxVUi7t/RtZ3xmROTp+DPULeXqUmezachJj71t1fPU0XkUT3EV2iY2XoV1Tz3HrCMsNCiWfZq6TJn5l8JD3ZqEGHhBe6WZmOjhYpj8UGcrnUP9efC8uLnJ/4K/1kR80/e9Ubi14Sc87T92h+x1mim48acTcxuVPO8CzGKu/HBvg8y8GfukMxW76a5U74n5X3/EVsMb8U/ropwAcs6+aWEQw7Eui222KBeq3dJG/Y3QhAuH/0KC0zsY2CUS+u0xLL3BYaUsbJI1sA3E/YmZxJEyYKgch0f+4du8q0YsPOWciFTQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=YMT11yhLGrg7/X3gQ6X9PvpFzu0i8EZHmhhHbOF/Yds=;
 b=ul6knWDdPvDCJjbOnf/GYT9SRq+5UZZSW+Ln14ohUvKOHK+5+jykO3k1nzGUiM+tFNWetVacM6GY4y+NVbObukHY8yu5Inq+5Koc+y4TO1rfQ0Smae13qWY1XMe6/O/HAsA2Mygo+DQiKh4ZWz7/5RRANrC4xHhl3RouuRcGhKNjlArkaJOFLugJ4LVVmnFCmWX/B6RUHpAzP1KaERSR4tpNLcwwQueAXPKgQdi0sDwLMCNVU2rJ/yk7URzA9yqIDsVmeG0EKWjZQU+Mszqlbbdp+amn5tWlIVxbPO+xpHBFt+Vg46MoS/P+Eci00Xi71t+uF+2I/ZztBh/8cuCPpQ==
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=YMT11yhLGrg7/X3gQ6X9PvpFzu0i8EZHmhhHbOF/Yds=;
 b=FnF/Z7O2S9bCv1bLvLuwtqpubhyZuUJyWxtxjl0BmLi9MRbqsx3NclAzi8E96V+MozonStoXfieUi/zRAb3QhU7SgkDeg/VdkHrr+lLHyrgnm2VtqHooa6BXBDCQcq0N56AEnzh3AgZjfRw2Nsqhbblq2I8CCTfgPtUXpcwWRit2IQT4e2M74aYl5SIqrfLFM1SDCTwSCYdRQH8Uao3kRMiMhQaTTrHVA2SkGmoVBvzF76tDGgVdMLTEchLQjVbUhddzyv17w8mxkRx/ltT0q9rNM9n94rZS8p3OK6zDU0TXPqWr5V8T6Ye7o3GfKnq7+3GoYZtnh9yZW/8zuTYvVA==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel
	<michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH] misra: comment default case in single-clause switch
Thread-Topic: [PATCH] misra: comment default case in single-clause switch
Thread-Index: AQHcCuaGmRofUvvSEEWe+78HEkEpW7RduFmA
Date: Mon, 11 Aug 2025 17:40:50 +0000
Message-ID: <d6d0ad87-df11-4dce-83f1-5a38e7120672@epam.com>
References:
 <1d3c5364b726e42a8c38c396f2e20efc52790f62.1754933752.git.dmytro_prokopchuk1@epam.com>
In-Reply-To:
 <1d3c5364b726e42a8c38c396f2e20efc52790f62.1754933752.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: GV2PR03MB9572:EE_|AM9PR03MB7929:EE_
x-ms-office365-filtering-correlation-id: a075783c-345d-4673-cad1-08ddd8fe367c
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|42112799006|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?YjRLMFFDTWdvbXBHenFHMHRHOW1YekIyays3bVZlZWpaN3FZL1VUWEpQcWhM?=
 =?utf-8?B?SHVuTm5BQmVELzM0Zlo0enhOV3c0aXo4VWFUdm5EaXU1aGdQL0FsVTBRcm5V?=
 =?utf-8?B?eXhUS1llTTlRbGFOeFFvL0thT2xwL0pWKzZrbHhnbStoRTdUWGgzQnpyVkR1?=
 =?utf-8?B?YzBYSGs0b2V2NExKMTE4RStsZ3d5a0ZaQjhaM1R2MzZlMExrQS9mWUh0RCtQ?=
 =?utf-8?B?dUk5RWk0Mkt3dmZXU3dtUm03Z054T210Z3R5SGxUc0U2VDFBQWtlU2hGQ0tr?=
 =?utf-8?B?NHNVOVVUSVZDYXFsMFBCSFNCZnhxVi9iekF3Uzd5WXhONUZlMkI3cEV3bWZL?=
 =?utf-8?B?bXNTSUNiN2FTa0xqT1FaUG8zSHhJNG92dWlQeEFQL3Z1Rnh0bXBXRlBBWWNX?=
 =?utf-8?B?Ty9nTkFhbUM0VEhEWlNaNUNUbnBoQU8rOVpiTk03clRqZEVFY2w1dHMvdFhr?=
 =?utf-8?B?eHkrR0ZFQ3d4ZCtqZUlqN045MkZMUVBaeXRmOEVIUHhCbUxmVGpSUHFWNFIr?=
 =?utf-8?B?VVFqTkFLWWZXMEtMTUUxdktGbDhtWGFmNW92MXZlTjR2UzdkL2Exb2QyNkwz?=
 =?utf-8?B?NnE1KzBpSHV5VXRwczl6L0pZeG5Md0F4SjA0WVJGb0NpMnBvWk9Rb3NDRDRp?=
 =?utf-8?B?VVp4YjFlWnY3a0UrUVRNaUpIaDA4Y0xDWXF6Y2VIK05WYmJHV2FTUTh1blZ3?=
 =?utf-8?B?VkZUMmtRUTc0eGQxZm53OUVYS3QyZ2hyRzlndExuZzdyUG5xRGcrNlVaR25k?=
 =?utf-8?B?aHZNOGFJdkhZS2wzNkpNSEwxODQwU2tvcVJVYmxxZFNleUZiQlBMRDkxbEJv?=
 =?utf-8?B?ZkNsOEFJZHFLRGswNXkzVDBvUno3ellwekRubmdpUnNFZXdMWWV5RHhzY0x2?=
 =?utf-8?B?SHJUZUNSZ2lQUzRNWFdsMkhPQkw1T2dDcGkxRUFhVVhKdnhTSVFNYnFtMmJZ?=
 =?utf-8?B?TklNS25jSEptMlk2ZjdENGltU1AxclFUMkpUTE11RDlmVG9yWERqOGwzL0Fz?=
 =?utf-8?B?V0tzUDdXM1JZdUpjdlJrUFlwVno5aGx2Y09sL0Z3ZHRWeDNTMlE0T1Y5a25i?=
 =?utf-8?B?S29GTDREa20zTGVsSlJJSzYzL3hleDJjY2xqeFNycG9YRXNqcnJqc0lWcjl3?=
 =?utf-8?B?d0VPTkpoWll0d2JVQ3BNTG9CejU0SVgwVlREOGRDT21LS21RTnh5R2M2YmRl?=
 =?utf-8?B?TVptclcrQVZoaXA3a3ZWaXV0RHd1NGFKWDhFUkFEZm5UVVBmTTYwTVkzYUZF?=
 =?utf-8?B?NitBMmwwK0NCNDBFWnlCMUhsbVRydmNXTTRrNzV0WjdhUXEyZ01IaXVCZGFD?=
 =?utf-8?B?M3Nmak5mOFJVTTVzS0lJc2Y0OG9RQ2dzTk9BaXJPcFNlWitIb0ZuK1hLY3BI?=
 =?utf-8?B?a0gzZDB5SkVVajRwYlQwdUpubzBMM2hZV1ZpY1ZvL2svZTlmekgxM1pFZHJl?=
 =?utf-8?B?VWxyak5EQjNaSTRKWTZUNnczam93T0ttZGhHOTFLbi9UWFEyL0NEdTEvUnBJ?=
 =?utf-8?B?alVYb3gzVGYxS1VzTU4rWmFVcFoyUkFnNlR6YTVFT3FjNVowaVkzSlhPZXlB?=
 =?utf-8?B?Z2VDdExxejRPY0NETk5mTElkWUwvck1MKytjNlpKUm1EVU0wdDhtejJ6QU16?=
 =?utf-8?B?YTZ1TGdWMjBMa0IvZlZUY09wYVpNSzF0VVhJU3hhTlcrUEZNSm9mcVIvNmZY?=
 =?utf-8?B?V3luOW1qQmlLcUU5dENVRDJISVhuMFp5UnVWSFhENUJ0dklVQWhveWU3cStT?=
 =?utf-8?B?eTBjR3hHU3hHeXNvdzh0NEkwL0RDdDVUMkJCeWludmF0SmNsazB3OEVnTEEr?=
 =?utf-8?B?ZDdiaTlLZ3dwMCsrTG04UDNsRVp4YTh6VWptT3lkQ1pQUFBRcmhQRUNXaE9q?=
 =?utf-8?B?bG5XRllaUEZCbmRSTGhzdCtydW5MaEozOEx0Z0x4K3h3cE1sSEE1dUV4RjVa?=
 =?utf-8?Q?R6ZYY5ObNEw=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(42112799006)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?WEloWkhscG83K01MRmxmcVU2aEVWeXVjb0tZTFVmSW1mWmNhZHNQS0RvQ00z?=
 =?utf-8?B?WU16L1BaZlJPSXFkN3hldnZDV0tndTJ0dHY4NFg1cXRQN1Zvc2N4aDFVOUZ5?=
 =?utf-8?B?UFJnZjl6RnBKZWdaL1hmaHBGT0Z6Y1QyN3pCNG1FK1BGV3orYzhtclkvMjFI?=
 =?utf-8?B?RmFYb1Rvd1RCSjJ4TmhnRTM2NWlNbFNOSXFCVWFlcVF6WXVXN2pSVXBpU3lQ?=
 =?utf-8?B?Y2VVS2Jyc09vbWVyRUpTU2ptcDZ4eUt1aFVxNE9teDZqdHRaZ3haSWlDajgz?=
 =?utf-8?B?SGtaVm9raFkvOWFESW5PcDh3bzdiLzZKUWdjeUtXTHczM3BIbzMwcm1ZU2pU?=
 =?utf-8?B?RVgzemNmNHpzck1rRW4xcW5KRlpvZU9wazMxQ3dYSkNDU0lYVkpZOW5pdUhq?=
 =?utf-8?B?a2NRcHZib1RjSVJrbnIzVGU1RkN1OXRRV05ZSlorb2lqTkFCKzBGSldDUDVL?=
 =?utf-8?B?Z2l1MVk1ZlJiZ3BjL2NwSFEzUmVZVUJRaitmeVk0SEhNdDdwdHlVNHhLakV1?=
 =?utf-8?B?YWN5dndrZk5UcnFFdEtUOUlNeW1ZNTBHWlpoZndwVHM5Q2J6NlJWUmVsS0t0?=
 =?utf-8?B?MDlqM2hnR3UrZWlSTk5wYmYybjNIYmp2emdUUXNmTTdrODUvZmI2Y1JteE1M?=
 =?utf-8?B?V3FqNTdGS3ZwazhEUmhSakNxa1hwajRJUXlNNzZmYlBCaHFUL3ZLTktGc1ZB?=
 =?utf-8?B?QTJzWnNBV2szMTRDUHJ0d3I5K2dUWVoydHVqSFpVOHA3dVhSbmpBRnV6U29Q?=
 =?utf-8?B?YnNvSUxROG9LMXZYMXNyUnFXUGZHNE5LdVJpaDQ2ZHdCVURqWktEbnlYbUNr?=
 =?utf-8?B?TUlZNUNKS0Q4N1o0RkhwUGY1dnlITWd4WHRkNXNDd0VXaTBZU3VmY3JFZGF4?=
 =?utf-8?B?TGx3Q0thMHpyRG9XUGd6QkpWN283czZCaGNzSVZMd3FGZjB5YzNyNnNpU0xH?=
 =?utf-8?B?a05wRkhiQkRBM24yY0YxbXZJNkUxTDY1cjdzM0xYU3ViQ0RKZ3dvVnduNkhK?=
 =?utf-8?B?TkhJT0xMTXhUY00rK1MwdTlvcTFhTnlGdVV2WWJLNXBpUC9tVlNDeVArZUJ6?=
 =?utf-8?B?cm5SK25MdW1SOERlMkxtWFY2SkY3bjR6SEszdERNZnJSR3VOb0RPWGQwT2pp?=
 =?utf-8?B?SytnTDlLL2JqeEFRanpUd3Fidnp2c2F4ZTZTVGJ2TkdzRmhyV0g4NlFvcWY5?=
 =?utf-8?B?a1FCMmhSOEdZbGZNNHhTUXpsOUNpMi9UWTJoSSswZXNtVTFXOExrMHYxdm8y?=
 =?utf-8?B?ZDlKbTRNNjAwcjhIZ0p1QUVDMENtdytzOXJ2cWdoQ1NnT05IWjZWOFh2Sm83?=
 =?utf-8?B?Z05PNC9MQzZOMXN5YzRvckU0TlNTNzQwcGJPMXJpTjI4aWJZUVNaM0lUdmlS?=
 =?utf-8?B?N1pOYzRZV3ZkRzgvdDhWYmhTdk1ialFYVkFjZ0FqUzRnSWJXNWRTWFFLRERI?=
 =?utf-8?B?TmZBK1phMy9pQ2I1L1FuOU5yYmMvdWdBbFN2RVUxNlhNeDVQejIxWVlTc25J?=
 =?utf-8?B?RTJ4cHZQY0tjOERDMUdnSUd4bG1vb1ZoMmllMFFhVVROVmZvbnNHUDE1bGpX?=
 =?utf-8?B?OTBHR1VzZGRwdVc3aGJIQXdtM1FtbFQwUytkVEFObkZmMmNsRW9ZYmY1d0pu?=
 =?utf-8?B?MVNZMU5WanVXMEV4M3pjVWYyeWorUGhNb0tBN3E2VkpOZUFOaDRISW5tOUxp?=
 =?utf-8?B?RVNOc1hFUnVUOEQ2MDY5cURhQmN5RnhOQjZwZFc1SlM0KytmY2V2czZUYUZD?=
 =?utf-8?B?dGZZZU5lK0FVdWJ5eFh5SUx0K1BsbFJubnBaQ0tKUzFDOVJRNEVYblZScVQ2?=
 =?utf-8?B?eDJ2QlJkODN5Uyt1bmtpbTB6WUhHZTkvS1dYRGNXOHpOTjJvbGhBdytpWHZR?=
 =?utf-8?B?V0lFaWVsUHlHRzRDYUt2VS9FRFBacWF5UDIxUWlzRFlVNHQwcUtVOXQrcGIz?=
 =?utf-8?B?YVk5OTZWMEk3TkNtbnQ2YTc1eDNuSTMrVnd4RFNVeVdlMS84eUl5by95U2dR?=
 =?utf-8?B?M2ZoZG1JUTZxMStnekVOZkdlWjZZUEVKYmI3c1h6dEVhLzZvdTkwL29qa0dE?=
 =?utf-8?B?ZEJ6R3BMQVUwNmk1THE4OUdIYmgzYjJyNTVJeXpOamYzYmcrajBSeVpZRHo2?=
 =?utf-8?B?TVB0cmh2dDE5UE5hMXhwbnFnd1h5OWtEc3BGMytWUHdCUWhYa3U4WUM5OFNR?=
 =?utf-8?B?MUE9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <F8A11EB374CA7E4F96FF3BD98CD3B756@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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a075783c-345d-4673-cad1-08ddd8fe367c
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Aug 2025 17:40:50.3717
 (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: h2nS7GzGX/7JSQW9Uw9Tqnrh9HM8oDlrUVRpp47fLusPXSSq7J8mzKHe2myAUhUjU2yQpowo8rCoHZ3dgSleOdHsM48Us6haIR2Yqvbdxsc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7929

DQoNCk9uIDgvMTEvMjUgMjA6MzYsIERteXRybyBQcm9rb3BjaHVrMSB3cm90ZToNCj4gTUlTUkEg
UnVsZSAxNi40OiBFdmVyeSBzd2l0Y2ggc3RhdGVtZW50IHNoYWxsIGhhdmUgYSBkZWZhdWx0IGxh
YmVsLiBUaGUNCj4gZGVmYXVsdCBjbGF1c2UgbXVzdCBjb250YWluIGVpdGhlciBhIHN0YXRlbWVu
dCBvciBhIGNvbW1lbnQgcHJpb3IgdG8gaXRzDQo+IHRlcm1pbmF0aW5nIGJyZWFrIHN0YXRlbWVu
dC4NCj4gDQo+IFRoaXMgY2hhbmdlIGFkZHMgY29tbWVudHMgaW4gZGVmYXVsdCBjYXNlcyBpbiBz
aW5nbGUtY2xhdXNlIHN3aXRjaGVzIHRvDQo+IGF2b2lkIHZpb2xhdGlvbnMgb2YgdGhlIHJ1bGUg
d2hlcmUgdGhlIGBkZWZhdWx0YCBjbGF1c2UgbGFja3MgYSBzdWl0YWJsZQ0KPiBjb21tZW50IG9y
IHN0YXRlbWVudC4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IERteXRybyBQcm9rb3BjaHVrIDxkbXl0
cm9fcHJva29wY2h1azFAZXBhbS5jb20+DQo+IC0tLQ0KPiAgIHhlbi9hcmNoL2FybS9jcHVlcnJh
dGEuYyB8IDUgKysrKysNCj4gICB4ZW4vYXJjaC9hcm0vZ2ljLmMgICAgICAgfCA2ICsrKysrKw0K
PiAgIHhlbi9hcmNoL2FybS9tbXUvcDJtLmMgICB8IDYgKysrKysrDQo+ICAgeGVuL2FyY2gvYXJt
L3RpbWUuYyAgICAgIHwgNiArKysrKysNCj4gICB4ZW4vY29tbW9uL2tleGVjLmMgICAgICAgfCA2
ICsrKysrKw0KPiAgIDUgZmlsZXMgY2hhbmdlZCwgMjkgaW5zZXJ0aW9ucygrKQ0KPiANCj4gZGlm
ZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9jcHVlcnJhdGEuYyBiL3hlbi9hcmNoL2FybS9jcHVlcnJh
dGEuYw0KPiBpbmRleCAxN2NmMTM0ZjFiLi5lMzFjNzI2OTRiIDEwMDY0NA0KPiAtLS0gYS94ZW4v
YXJjaC9hcm0vY3B1ZXJyYXRhLmMNCj4gKysrIGIveGVuL2FyY2gvYXJtL2NwdWVycmF0YS5jDQo+
IEBAIC03MzUsNiArNzM1LDExIEBAIHN0YXRpYyBpbnQgY3B1X2VycmF0YV9jYWxsYmFjayhzdHJ1
Y3Qgbm90aWZpZXJfYmxvY2sgKm5mYiwNCj4gICAgICAgICAgIHJjID0gZW5hYmxlX25vbmJvb3Rf
Y3B1X2NhcHMoYXJtX2VycmF0YSk7DQo+ICAgICAgICAgICBicmVhazsNCj4gICAgICAgZGVmYXVs
dDoNCj4gKyAgICAgICAgLyoNCj4gKyAgICAgICAgICogRGVmYXVsdCBjYXNlIGxlZnQgZW1wdHkg
YXMgb3RoZXIgbm90aWZpZXIgYWN0aW9ucyBkbyBub3QgcmVxdWlyZSBoYW5kbGluZyBoZXJlLg0K
PiArICAgICAgICAgKiBUaGUgc2luZ2xlIENQVV9TVEFSVElORyBhY3Rpb24gaW4gdGhlIHN3aXRj
aCBpcyBzdWZmaWNpZW50IGJlY2F1c2UgdGhpcyBmdW5jdGlvbg0KPiArICAgICAgICAgKiBzcGVj
aWZpY2FsbHkgaGFuZGxlcyBlbmFibGluZyBlcnJhdGEgd29ya2Fyb3VuZHMgZHVyaW5nIENQVSBz
dGFydHVwLg0KPiArICAgICAgICAgKi8NCj4gICAgICAgICAgIGJyZWFrOw0KPiAgICAgICB9DQo+
ICAgDQo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZ2ljLmMgYi94ZW4vYXJjaC9hcm0vZ2lj
LmMNCj4gaW5kZXggZTgwZmUwY2EyNC4uZGZiYjBkZmUwOCAxMDA2NDQNCj4gLS0tIGEveGVuL2Fy
Y2gvYXJtL2dpYy5jDQo+ICsrKyBiL3hlbi9hcmNoL2FybS9naWMuYw0KPiBAQCAtNDM2LDYgKzQz
NiwxMiBAQCBzdGF0aWMgaW50IGNwdV9naWNfY2FsbGJhY2soc3RydWN0IG5vdGlmaWVyX2Jsb2Nr
ICpuZmIsDQo+ICAgICAgICAgICByZWxlYXNlX2lycShnaWNfaHdfb3BzLT5pbmZvLT5tYWludGVu
YW5jZV9pcnEsIE5VTEwpOw0KPiAgICAgICAgICAgYnJlYWs7DQo+ICAgICAgIGRlZmF1bHQ6DQo+
ICsgICAgICAgIC8qDQo+ICsgICAgICAgICAqIERlZmF1bHQgY2FzZSBsZWZ0IGVtcHR5IGFzIG90
aGVyIG5vdGlmaWVyIGFjdGlvbnMgZG8gbm90IHJlcXVpcmUgaGFuZGxpbmcgaGVyZS4NCj4gKyAg
ICAgICAgICogVGhlIENQVV9EWUlORyBhY3Rpb24gc3BlY2lmaWNhbGx5IGhhbmRsZXMgcmVsZWFz
aW5nIHJlc291cmNlcyBhY3F1aXJlZCBieQ0KPiArICAgICAgICAgKiBpbml0X21haW50ZW5hbmNl
X2ludGVycnVwdCgpLCB3aGVuIHRoZSBDUFUgaXMgYmVpbmcgdGFrZW4gb2ZmbGluZS4gT3RoZXIg
Q1BVDQo+ICsgICAgICAgICAqIGFjdGlvbnMgZG8gbm90IHJlcXVpcmUgR0lDLXNwZWNpZmljIGhh
bmRsaW5nLg0KPiArICAgICAgICAgKi8NCj4gICAgICAgICAgIGJyZWFrOw0KPiAgICAgICB9DQo+
ICAgDQo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vbW11L3AybS5jIGIveGVuL2FyY2gvYXJt
L21tdS9wMm0uYw0KPiBpbmRleCA1MWFiZjM1MDRmLi5kMWYwYWUwMjI2IDEwMDY0NA0KPiAtLS0g
YS94ZW4vYXJjaC9hcm0vbW11L3AybS5jDQo+ICsrKyBiL3hlbi9hcmNoL2FybS9tbXUvcDJtLmMN
Cj4gQEAgLTE4MjgsNiArMTgyOCwxMiBAQCBzdGF0aWMgaW50IGNwdV92aXJ0X3BhZ2luZ19jYWxs
YmFjayhzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5mYiwNCj4gICAgICAgICAgIHNldHVwX3ZpcnRf
cGFnaW5nX29uZShOVUxMKTsNCj4gICAgICAgICAgIGJyZWFrOw0KPiAgICAgICBkZWZhdWx0Og0K
PiArICAgICAgICAvKg0KPiArICAgICAgICAgKiBEZWZhdWx0IGNhc2UgbGVmdCBlbXB0eSBhcyBv
dGhlciBub3RpZmllciBhY3Rpb25zIGRvIG5vdCByZXF1aXJlIGhhbmRsaW5nIGhlcmUuDQo+ICsg
ICAgICAgICAqIFRoZSBDUFVfU1RBUlRJTkcgYWN0aW9uIGlzIHNwZWNpZmljYWxseSBoYW5kbGVk
IGJlY2F1c2UgdGhpcyBmdW5jdGlvbiBzZXRzIHVwDQo+ICsgICAgICAgICAqIHZpcnR1YWwgcGFn
aW5nIGZvciBDUFVzLCBwYXJ0aWN1bGFybHkgZm9yIG5vbi1ib290IENQVXMgZHVyaW5nIGhvdHBs
dWcuIE90aGVyDQo+ICsgICAgICAgICAqIGFjdGlvbnMgZG8gbm90IGludm9sdmUgdmlydHVhbCBw
YWdpbmcgc2V0dXAuDQo+ICsgICAgICAgICAqLw0KPiAgICAgICAgICAgYnJlYWs7DQo+ICAgICAg
IH0NCj4gICANCj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS90aW1lLmMgYi94ZW4vYXJjaC9h
cm0vdGltZS5jDQo+IGluZGV4IGU3NGQzMGQyNTguLjQ3NzYxMTBkOTcgMTAwNjQ0DQo+IC0tLSBh
L3hlbi9hcmNoL2FybS90aW1lLmMNCj4gKysrIGIveGVuL2FyY2gvYXJtL3RpbWUuYw0KPiBAQCAt
MzgyLDYgKzM4MiwxMiBAQCBzdGF0aWMgaW50IGNwdV90aW1lX2NhbGxiYWNrKHN0cnVjdCBub3Rp
Zmllcl9ibG9jayAqbmZiLA0KPiAgICAgICAgICAgZGVpbml0X3RpbWVyX2ludGVycnVwdCgpOw0K
PiAgICAgICAgICAgYnJlYWs7DQo+ICAgICAgIGRlZmF1bHQ6DQo+ICsgICAgICAgIC8qDQo+ICsg
ICAgICAgICAqIERlZmF1bHQgY2FzZSBsZWZ0IGVtcHR5IGFzIG90aGVyIG5vdGlmaWVyIGFjdGlv
bnMgZG8gbm90IHJlcXVpcmUgaGFuZGxpbmcgaGVyZS4NCj4gKyAgICAgICAgICogVGhlIENQVV9E
WUlORyBhY3Rpb24gaXMgc3BlY2lmaWNhbGx5IGhhbmRsZWQgdG8gcmV2ZXJ0IGFjdGlvbnMgZG9u
ZSBpbg0KPiArICAgICAgICAgKiBpbml0X3RpbWVyX2ludGVycnVwdCgpIGFuZCBwcm9wZXJseSBk
aXNhYmxlIHRpbWVyIGludGVycnVwdHMgb24gdGhlIENQVSBiZWluZw0KPiArICAgICAgICAgKiB0
YWtlbiBvZmZsaW5lLiBPdGhlciBhY3Rpb25zIGRvIG5vdCBpbnZvbHZlIHRpbWVyIGRlaW5pdGlh
bGl6YXRpb24uDQo+ICsgICAgICAgICAqLw0KPiAgICAgICAgICAgYnJlYWs7DQo+ICAgICAgIH0N
Cj4gICANCj4gZGlmZiAtLWdpdCBhL3hlbi9jb21tb24va2V4ZWMuYyBiL3hlbi9jb21tb24va2V4
ZWMuYw0KPiBpbmRleCA4NGZlOGMzNTk3Li4wZjc4MDg3YTRhIDEwMDY0NA0KPiAtLS0gYS94ZW4v
Y29tbW9uL2tleGVjLmMNCj4gKysrIGIveGVuL2NvbW1vbi9rZXhlYy5jDQo+IEBAIC01NDksNiAr
NTQ5LDEyIEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sgY3B1X2NhbGxiYWNrKA0KPiAgICAgICAgICAg
a2V4ZWNfaW5pdF9jcHVfbm90ZXMoY3B1KTsNCj4gICAgICAgICAgIGJyZWFrOw0KPiAgICAgICBk
ZWZhdWx0Og0KPiArICAgICAgICAvKg0KPiArICAgICAgICAgKiBEZWZhdWx0IGNhc2UgbGVmdCBl
bXB0eSBhcyBvdGhlciBub3RpZmllciBhY3Rpb25zIGRvIG5vdCByZXF1aXJlIGhhbmRsaW5nIGhl
cmUuDQo+ICsgICAgICAgICAqIFRoZSBDUFVfVVBfUFJFUEFSRSBhY3Rpb24gaXMgc3BlY2lmaWNh
bGx5IGhhbmRsZWQgdG8gYWxsb2NhdGUgY3Jhc2ggbm90ZSBidWZmZXJzDQo+ICsgICAgICAgICAq
IGZvciBhIG5ld2x5IG9ubGluZWQgQ1BVLiBPdGhlciBhY3Rpb25zIGRvIG5vdCBwZXJ0YWluIHRv
IGNyYXNoIG5vdGUgYWxsb2NhdGlvbg0KPiArICAgICAgICAgKiBvciBtZW1vcnkgcHJlc2VydmF0
aW9uIGZvciBrZXhlYy4NCj4gKyAgICAgICAgICovDQo+ICAgICAgICAgICBicmVhazsNCj4gICAg
ICAgfQ0KPiAgICAgICByZXR1cm4gTk9USUZZX0RPTkU7DQoNCk15IGFwb2xvZ2llcywgZm9yZ290
IHRvIGluY2x1ZGUgcHJldmlvdXMgZGlzY3Vzc2lvbiBsaW5rOg0KaHR0cHM6Ly9wYXRjaGV3Lm9y
Zy9YZW4vNzI1ZWM4NmFjMWFhODgzYzM1ZmIzMGI4ZjIyNmM5NWNiZTA5MzRlOS4xNzU0MzIyMjk5
LmdpdC5kbXl0cm8uXzVGcHJva29wY2h1azFAZXBhbS5jb20vDQoNCkRteXRybw==


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 20:30:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 20:30:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077934.1438935 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulZAL-0003sc-Be; Mon, 11 Aug 2025 20:30:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077934.1438935; Mon, 11 Aug 2025 20:30: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 1ulZAL-0003sV-93; Mon, 11 Aug 2025 20:30:45 +0000
Received: by outflank-mailman (input) for mailman id 1077934;
 Mon, 11 Aug 2025 20:30:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UdnH=2X=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1ulZAJ-0003sP-M7
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 20:30:43 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0c9c72b4-76f2-11f0-a327-13f23c93f187;
 Mon, 11 Aug 2025 22:30:41 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by AS8PR03MB8715.eurprd03.prod.outlook.com (2603:10a6:20b:560::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.21; Mon, 11 Aug
 2025 20:30:38 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9009.018; Mon, 11 Aug 2025
 20:30: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>
X-Inumbo-ID: 0c9c72b4-76f2-11f0-a327-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BANJcxz5aAfGEXgfBCAqTbXRzD7M8OQCut5nv6zqvNxL50Zm7uQg+Uha4zAcUYO4XF842T6dSdtgQgp+lO71FlAYosskq0nB7yAEfPb0UEsCiwEf2JxnQtwQngbn2mpD6mBW/rlpaVyRwPDSRnqOW93HwiQ/vNtusnsSlL9XP2D2mypzgQMR5a3KtGz//ik1YDPXDrNVlmDUCxf+3z0tMQvcv9SdVwSShNDPhlvpMrY0qQG9lLn54D1CwSjUG/VIvosrdBdlLsYd/WucviPR6pLoC3A2k+S2801h5shtlU/OG+fcPujRG/yxBm3CKI6g5F9cRhdZ+wdyp7ucAeNPgg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ydHtDDK2/6QzpFnO38JKm8UgV+eHTHOoPYYCb7Oj8qQ=;
 b=L8DK40UFJwnPueQInSE1sHttByzghXwiaRMoBmV+vnuS2bCCPYNAI0uW8g8mBtzexqLkSWPq7e6ZR2xgwecpyylgtGcFBtfDXdhi/cGC5t19zhq6DNWIxRgRNsBr2MuttJ5uDdq6Q8T/85APaGXQMUe73bw4FMczPwoUhh+vZ1NH+8P2uiqVp+/rDxMOXfE91RgNBQIVuEJFgRJsLlTLcO0VItvE0ItrqfFgL5TDTK+14YbWKhyamPKeCE/4cq0ajLtAqXSkaZfuUcCv68ehaz7//ReLmtB0KTuUFi6HbA0B2/44frUQdIzFGzp+3Zl0uj+3Y114tbSeXUswsUvjLw==
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=ydHtDDK2/6QzpFnO38JKm8UgV+eHTHOoPYYCb7Oj8qQ=;
 b=Z4NRRx98GtNOWY2v/wDea3DXqVSfVJegUNAgIBHzQ5d0zdiCtrdJbdteqfw9Km5smBVn2aM6NdCilsOrXrbYBGeRMP1dnogt7hqwQMEK724iTSw99EiAU43QMBU3DusaqJQvdT56C61WxMfvkwSKw51zgFoIqT+3ScjQAXrgER5OSeKOfUicxKwiGBzPa6qtaSHNFGAEVpQoJkwWAmIcAUALQPoJRni0PWtp5TmDjbhXhDdWkRY+gqFmaREF2C8OK/NOOF0+C774D5z4WTOKHwCcV5NwoYCeONucgOJjRrai6gl60hAuw3TQMbGLzFzNIAejO7RVmVnHDG93Smat3g==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, 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: [PATCH] misra: add ASSERT_UNREACHABLE() in default clauses
Thread-Topic: [PATCH] misra: add ASSERT_UNREACHABLE() in default clauses
Thread-Index: AQHcCv7M4bE5kwDncUeSEAS4rjYqyA==
Date: Mon, 11 Aug 2025 20:30:37 +0000
Message-ID:
 <7cd71ed21383c189fedb3250ddde54a593f7f98b.1754944131.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: GV2PR03MB9572:EE_|AS8PR03MB8715:EE_
x-ms-office365-filtering-correlation-id: eb81a858-98f1-48a3-57e6-08ddd915eee5
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|42112799006|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?0E2jmdPTSHLQQDvf51V1lJyv/wqPJuTKCAvxJKTRdiiJwlzfiQ4otWkxsi?=
 =?iso-8859-1?Q?I7PHCK3FOJUxygPXR2MOI4hOH5fqRAHls4t+RI04TZF9RheQPP291Cwotu?=
 =?iso-8859-1?Q?ttM+lSWHMfjpgCKhm0/4BR4VH4GCam6v4Kcc1HtJyXgy/Y7/L0UwuQs3xP?=
 =?iso-8859-1?Q?9Gzca2nTljRvQSqTXt7PoRLQupTartbMXDhodAQrK93DILT9VnpsuuuXY5?=
 =?iso-8859-1?Q?OyqEiCoQdl7hTMvjNNIXzVTrmyR/jkY+Xa47MKd+iWe5IYhGkxoS8Sjd5a?=
 =?iso-8859-1?Q?z4lNs18YE4W/pIVpwGhP1DMLjJSvt+KdR2+7DbGX9f+N0i5FSMOZwUb0Ta?=
 =?iso-8859-1?Q?at19IhH1NOjVeItoTYfHx+yIgyvwNVRk9mi405/3/PzFv/cMc3IORm4k2K?=
 =?iso-8859-1?Q?hsr6k2Zw8mRXI00ohQdyKcJGOf3zE7/0xqvC3TUiUdQe5+mnz8caPJY069?=
 =?iso-8859-1?Q?EzFXt5YmuBiNhtpdz520mhjOUi/627DtjMTne38Obk+KpxYIBCP05ylDzg?=
 =?iso-8859-1?Q?9Tpb5zAg134XgyX2aq/fKiOK7lLT6cFNW1d3xOODEMOWlU4usl3/bCEDUQ?=
 =?iso-8859-1?Q?rims/+VLu2feM7oWpdcSsgBOZYmGvcg60VKK7hVC5lPE2QxW2uPa0Zo1DD?=
 =?iso-8859-1?Q?k/GiCZCymoQN5OW0x0ZJKA/D2doIFGgnmV4JcE2/+CSpwpxXIZ+x5yydul?=
 =?iso-8859-1?Q?4iy1x6zw3PfY5FHKRhCez7zASHunzoLejOoPEh1tSXRVxqqrvSGLrShE8Z?=
 =?iso-8859-1?Q?UFiHUmiYo1a4bm7j8lV4Kw2LqtQmBN2e5YAuoJ7TJTRXON8kilPU2g5grA?=
 =?iso-8859-1?Q?maJ9242kYhHItcj8E1en6RnKKx11oz3Zx75wp6DDBb3RS8KMA39M3szvJ4?=
 =?iso-8859-1?Q?oZ9YWyrC+7lJvRNnQ+GCyNWNktH8f3fWgkt5jR7+pQenktBvNeDT9IsctV?=
 =?iso-8859-1?Q?XimNVnfNPKA7yHRr5O561Kr0vyfyOmRk1xN4tIgKqvFy7z1JQMXywPEAFj?=
 =?iso-8859-1?Q?KCxSdaBykRMCWdeFB5Da7twrJ1jyHQgEB2Z2BmDL7gvMIkOa1i5bc+FBbJ?=
 =?iso-8859-1?Q?oIBqyEsRJ6JG/aQjMBlwnIkoARJnqCcUhf7KXKHsESk/4k3fgq0dD9gdH/?=
 =?iso-8859-1?Q?HB7zlv60W0Uz9dWjHWt/IONLWa5r+/jY8jCpPa8tmtIT/UEdYq3KAwRhnL?=
 =?iso-8859-1?Q?1WmErXaIuatdSJTA8DopgzCof+Ty+BDC29g/dt7nAlVPVc44wJLiyeg4ft?=
 =?iso-8859-1?Q?zUyxgoOSvdJD9qd/AlIyKpqOhj88MZLlkTkr1mK6d7wf+7+2+l1TFfYhky?=
 =?iso-8859-1?Q?y1Fs7op6qeJ0E9+oulHq0PkroBJOy5DN7vLEk2m7WQjxV5e4YgWGub7JVZ?=
 =?iso-8859-1?Q?mzxNEc3YeZhH8NmA2hJ5v9//wYtJMvaJhXjsmI31pr6/JiwYBt5gRLmAhq?=
 =?iso-8859-1?Q?fDjkOOJHkAUAwPHDdtWiTqbE2k7IUW+1+w2/xOasSuv7/Bm6ut/rGA1sMt?=
 =?iso-8859-1?Q?sEXdh1NAusofiUKapoIr3F4niW/MZ7YLXk8071uts/iQ=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(42112799006)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?l64kitwKuLoBExqQojU9Rx9XADhqTxqKomlIRMAe6MJdS28kDMiR+RCD27?=
 =?iso-8859-1?Q?iP/ElzadImfnpzlQTfiEBcQaAqQIRG7Me8yxIEvOnnzmM5qKICbBHRvktr?=
 =?iso-8859-1?Q?Bf6ieCZZqL1tFwyN6p9jV8TV0kuRYlbnfJoLY650YEUqq90ShzvObaqtnc?=
 =?iso-8859-1?Q?Rextqd7QhG6hoj1NtZnLrTdE7Ug+LI0nI6bjK/gJFYjNcztMVv8qh2ZwpZ?=
 =?iso-8859-1?Q?mo1MIOcNS95PA4k1MM2qsvOLhMof3Od0JkkTUgjx6Ueb6b9ZDF+vx7sTpT?=
 =?iso-8859-1?Q?oo2oaBM5JPT0oBb8XOjvP5qHrWTO5l3581wppImQ69n3FJZbFswszEmIvW?=
 =?iso-8859-1?Q?p88SGr7Bn96+lLuMYYN7W8L1Ez7qd6RU2jTHjISYoMl2f18PFxmisNw+oa?=
 =?iso-8859-1?Q?DCp8ls1yOqIVZZbMFcoihBwbYHwb3boXsKDwJT+mZ/AZ9sS2sTfb8PNgp1?=
 =?iso-8859-1?Q?ueUnqFfyT5kNGPuBnkYVAeSqB1KzghNd4gkLLn20bj2PwyYhMU4YbpOPpi?=
 =?iso-8859-1?Q?Z+77zkKeHy+jdAIaHrKx8v5sIRhxqLRnu13QtaN2ZX44TsfdwsXM+Osd3M?=
 =?iso-8859-1?Q?K3Ir80vGxcAYMQKkOzHM3aNU81ryIhBpDHYgmt9k2shUt3MiFQ0hdaUnkW?=
 =?iso-8859-1?Q?KNjEn1ai1D7jSfu8+WnYzPAPtR7wTIu7WRM7xQIGd/CclOGrStZqol4E1x?=
 =?iso-8859-1?Q?QDE7TGE/UD+TaqyzxIl6WGeah6x1b1q7dnJLofQGx2JcK+ar64drBjZ0AN?=
 =?iso-8859-1?Q?GDaxOIMxWLLQo/6SJMq1VgxI1WUoqfv9aHTBIuXBqsbZIfhtSvH+B53OJC?=
 =?iso-8859-1?Q?5S0zoF9MyG1ujOZMNSNy9tkUZwKMw0CuNzA6moxNqVbflzIMsMYDhjukyZ?=
 =?iso-8859-1?Q?meJxXkZ34ZY6hMxJKXPSB8NdoIT7TJTynoznpe6depix6v2brTl5W67emr?=
 =?iso-8859-1?Q?k3tC4xKky9f7zKW+86pIyBouz0JdhA3oV89TAcVfnyWPKYztmghLRBj4h+?=
 =?iso-8859-1?Q?kasXm9dXAW0q7y0DivlyBRI4PRgJFbBgHPZEgBRBCJPnIiyWducJt7W8nC?=
 =?iso-8859-1?Q?3gnsFWnjN8GgsD73fCBBeKr74tOjySg2xGdPe1HI7MT9Za9A5Cjb8xYNDM?=
 =?iso-8859-1?Q?O9JVBUwVVOLOo7XpJzanaV1opbjl0VSy1Q7tMlvka6lb32aNkFYXJNuh3d?=
 =?iso-8859-1?Q?fnjunPBxlA5wuKiBiHyUB3yVY1jx1t7mxj9OvNR5yqJTFx50wVFdqo4yzK?=
 =?iso-8859-1?Q?zKaKsDxmmH2FQ7j56/klrlnUjI4nXGzH0aRGLwIuwgbNnwSByfXh3pYZch?=
 =?iso-8859-1?Q?6zpJrGUboV4gaBqNCf6kcKMFEuO7QdGehS5Mqq2el8DmltEdAZynE36DGr?=
 =?iso-8859-1?Q?HYf7OstUzlVYYBjP3Teff+rucZcnaHhLqqMnrTPPnY1QUDyZlMZ3IrB0gE?=
 =?iso-8859-1?Q?UTjpezAKPPHZZz/wbneQ2kftlB+4UadyGN6bvUWvKgZ55ZJXj0z2Qd7bbr?=
 =?iso-8859-1?Q?BPEDPNJWhCvIYaL7wV7b/cjB+XKZxQy5YlFX8B/emYHRPYBSmjYNtVC/H3?=
 =?iso-8859-1?Q?h9QslyvVo2BPJDl7ZO+sXpDgWUE75wxO/Uao0MIDXaujIGiUDmelReEF6F?=
 =?iso-8859-1?Q?At/21oerkuALF+TfO2FMdBBVt+892OshBlIqJ/79q+stkDqJ20R1DHCw?=
 =?iso-8859-1?Q?=3D=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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: eb81a858-98f1-48a3-57e6-08ddd915eee5
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Aug 2025 20:30:38.1670
 (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: /HTkxpHOi1sSLlKGqSlB4VPlHwgynkDleEpy7Dkds/D0GrB3yNIY/mFB5tEX82Cp1RvDftBaQWEMNShW7b4QyRwnmB8/ZlsQ3d2a0voZaLg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB8715

MISRA Rule 16.4: Every switch statement shall have a default label.
The default clause must contain either a statement or a comment
prior to its terminating break statement.

However, there is a documented rule that apply to the Xen in
'docs/misra/rules.rst':
Switch statements with integer types as controlling expression
should have a default label:
 - if the switch is expected to handle all possible cases
  explicitly, then a default label shall be added to handle
  unexpected error conditions, using BUG(), ASSERT(), WARN(),
  domain_crash(), or other appropriate methods;

These changes add `ASSERT_UNREACHABLE()` macro to the default clause of
switch statements that already explicitly handle all possible cases. This
ensures compliance with MISRA, avoids undefined behavior in unreachable
paths, and helps detect errors during development.

Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
 xen/arch/arm/decode.c      |  3 +++
 xen/arch/arm/guest_walk.c  |  4 ++++
 xen/common/grant_table.c   | 10 ++++++++--
 xen/drivers/char/console.c |  3 +++
 4 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/decode.c b/xen/arch/arm/decode.c
index 2537dbebc1..cb64137b3b 100644
--- a/xen/arch/arm/decode.c
+++ b/xen/arch/arm/decode.c
@@ -178,6 +178,9 @@ static int decode_thumb(register_t pc, struct hsr_dabt =
*dabt)
         case 3: /* Signed byte */
             update_dabt(dabt, reg, 0, true);
             break;
+        default:
+            ASSERT_UNREACHABLE();
+            break;
         }
=20
         break;
diff --git a/xen/arch/arm/guest_walk.c b/xen/arch/arm/guest_walk.c
index 09fe486598..9199a29602 100644
--- a/xen/arch/arm/guest_walk.c
+++ b/xen/arch/arm/guest_walk.c
@@ -167,6 +167,10 @@ static bool guest_walk_sd(const struct vcpu *v,
             *perms |=3D GV2M_EXEC;
=20
         break;
+
+        default:
+            ASSERT_UNREACHABLE();
+            break;
     }
=20
     return true;
diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
index cf131c43a1..60fc47f0c8 100644
--- a/xen/common/grant_table.c
+++ b/xen/common/grant_table.c
@@ -330,9 +330,12 @@ shared_entry_header(struct grant_table *t, grant_ref_t=
 ref)
         /* Returned values should be independent of speculative execution =
*/
         block_speculation();
         return &shared_entry_v2(t, ref).hdr;
+
+    default:
+        ASSERT_UNREACHABLE();
+        break;
     }
=20
-    ASSERT_UNREACHABLE();
     block_speculation();
=20
     return NULL;
@@ -727,10 +730,13 @@ static unsigned int nr_grant_entries(struct grant_tab=
le *gt)
         /* Make sure we return a value independently of speculative execut=
ion */
         block_speculation();
         return f2e(nr_grant_frames(gt), 2);
+
+    default:
+        ASSERT_UNREACHABLE();
+        break;
 #undef f2e
     }
=20
-    ASSERT_UNREACHABLE();
     block_speculation();
=20
     return 0;
diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 9bd5b4825d..608616f2af 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -889,6 +889,9 @@ static int cf_check parse_console_timestamps(const char=
 *s)
         opt_con_timestamp_mode =3D TSM_DATE;
         con_timestamp_mode_upd(param_2_parfs(parse_console_timestamps));
         return 0;
+    default:
+        ASSERT_UNREACHABLE();
+        break;
     }
     if ( *s =3D=3D '\0' || /* Compat for old booleanparam() */
          !strcmp(s, "date") )
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 20:48:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 20:48:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077945.1438966 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulZRu-00065X-Be; Mon, 11 Aug 2025 20:48:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077945.1438966; Mon, 11 Aug 2025 20:48:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulZRu-00065P-8R; Mon, 11 Aug 2025 20:48:54 +0000
Received: by outflank-mailman (input) for mailman id 1077945;
 Mon, 11 Aug 2025 20:48:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=21ui=2X=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1ulZRt-00063z-8g
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 20:48:53 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 95fa957c-76f4-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 22:48:51 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-af66f444488so681718366b.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 13:48:51 -0700 (PDT)
Received: from yp-VivoBook-ASUSLaptop-M1503QA-M1503QA.Dlink ([77.52.179.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a0a3bd2sm2065710466b.54.2025.08.11.13.48.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Aug 2025 13:48:49 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 95fa957c-76f4-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754945330; x=1755550130; 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=Jf3vC/bMLxsK+qQIEq63MqPOkecni+X3pTICciqQJuw=;
        b=OlN1c0VwLF7hxXz4fD6XS4+JI+erNwONBy1g1LW22l7j4/87QIS+XlCDbjla1rVvKh
         Y7iqkxgXrTkvwKNGjFeVOTjmtyBPn56+d18/yYYEDA/7R/r2LE6J+LsiYpNvOt27t1A1
         +0mjuVYO22aOju+KscwFgAzcYmSnc99EljxyOuK7xSCq5mHyiVQg0bKFTBMbX9pkM1QU
         ULzQrWqqQsDpO3fg+VhSm6TRL19lCX7ECDTMZ8TuTinzjX6DSM6zpzXtHhVDuqznvIUf
         o0DurDNnCtkRdC+2vcpl1kx23EVeXqef5kyQQBYnq2hTkVrwWSpWtrVO32wY9PK5V1ie
         J3tw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754945330; x=1755550130;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=Jf3vC/bMLxsK+qQIEq63MqPOkecni+X3pTICciqQJuw=;
        b=kDn+byP24nuv5IQHaGffR+TWubMbuudds9ZhM+p5nSCLHxMuZYssUp2W5yBKiyFWLv
         FcX2dD9ady9TRq4a3zpZeu/d/D0gH94SLoCXaa+VxGXEjXTnaZWYMJhv3XR0i9Ft1lqJ
         LJstCaamroOgwOC4jODlWdXbkHvNvP4hmeosNrKA+w9rdmtEXU2Qwz2cDPD7Tv56o2Gc
         9Hqm3jJZQmkpKowzVvfnzzOXT9wxpf97zRTpoBzCBFy3+iS1sQF9nR8gs5h9KegnC5Gb
         WRF5ypK788C2ph9nmkFwZX5OIaXITjfOxhMjrpLubBVuLWrw1ul3GEcl+dOzAZn1p2oO
         0J6Q==
X-Gm-Message-State: AOJu0YxhQpNPk6pFEca3yFRtC+SLR0THyHIPFybdl23iTyLRLcWWrW0K
	LguHCJ5uFkFVm2+QBjKyFYC62xQu547+S4xpfPqhKFYOvy5n/IxyW9L36ikkHQ==
X-Gm-Gg: ASbGncsUOZdk5s++PDxftvmCbgRgGov9T2w3IFZPYuDoFS3l1FlJnh8nsJ8d+W+JsvK
	kIRgdRJmj+2UQ5IKcNaJF3BRt3H43wa4StTU5bWPmNHtbhEy9zDWyXqqhW8TFHiFSGOIWFEFKcm
	SF93j15TCfHpC0dlPEumN0ADy0GKcS5QrgEVT0rKlj/3wt2A15/Qovv8+UXp8mNoQT3xB53YIVJ
	M8PcO4qeyq/Ky4y3YA9pJk1kMnXn04HwN2YKPZy5M+i59fFNp5/OAc5zi5CavPWtp+azW1sjBs6
	nvRBzt94ZQOJInV0DEf3q2vTIs9RBZMZYJtCTyRLwyvoES8uPOBCrvRg94sctcn8UqsJR5YEkB8
	35qMfSbGvWCF5U/qMK5flN8OijCBKx6pFY6getDKJRDhxqqTfVY0aXSF91NrCz7Vr1aBsgyJY+v
	xm0g==
X-Google-Smtp-Source: AGHT+IFBO8GBEBI4lp8QB14504qUcSt99Pg0isBR7NzLTnjZPSQSGyh0nQRdh+b79bbwVdR8Na+iXw==
X-Received: by 2002:a17:906:fb05:b0:af9:e505:f620 with SMTP id a640c23a62f3a-af9e505fb9bmr705198266b.57.1754945330021;
        Mon, 11 Aug 2025 13:48:50 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mirela Simonovic <mirela.simonovic@aggios.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>,
	Saeed Nowshadi <saeed.nowshadi@xilinx.com>,
	Mykyta Poturai <mykyta_poturai@epam.com>,
	Mykola Kvach <mykola_kvach@epam.com>
Subject: [PATCH v5 02/12] xen/arm: gic-v2: Implement GIC suspend/resume functions
Date: Mon, 11 Aug 2025 23:47:58 +0300
Message-ID: <db677462d1b5b698db417182c05c3a6c3a17c0d0.1754943874.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.1754943874.git.mykola_kvach@epam.com>
References: <cover.1754943874.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

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.

Tested on Xilinx Ultrascale+ MPSoC with (and without) powering down
the GIC.

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 v4:
  - Add error logging for allocation failures

Changes in v3:
  - Drop asserts and return error codes instead.
  - Wrap code with CONFIG_SYSTEM_SUSPEND.

Changes in v2:
  - Minor fixes after review.
---
 xen/arch/arm/gic-v2.c          | 154 +++++++++++++++++++++++++++++++++
 xen/arch/arm/gic.c             |  29 +++++++
 xen/arch/arm/include/asm/gic.h |  12 +++
 3 files changed, 195 insertions(+)

diff --git a/xen/arch/arm/gic-v2.c b/xen/arch/arm/gic-v2.c
index b23e72a3d0..dce8f5e924 100644
--- a/xen/arch/arm/gic-v2.c
+++ b/xen/arch/arm/gic-v2.c
@@ -1098,6 +1098,151 @@ static int gicv2_iomem_deny_access(struct domain *d)
     return iomem_deny_access(d, mfn, mfn + nr);
 }
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+
+/* GICv2 registers to be saved/restored on system suspend/resume */
+struct gicv2_context {
+    /* GICC context */
+    uint32_t gicc_ctlr;
+    uint32_t gicc_pmr;
+    uint32_t gicc_bpr;
+    /* GICD context */
+    uint32_t gicd_ctlr;
+    uint32_t *gicd_isenabler;
+    uint32_t *gicd_isactiver;
+    uint32_t *gicd_ipriorityr;
+    uint32_t *gicd_itargetsr;
+    uint32_t *gicd_icfgr;
+};
+
+static struct gicv2_context gicv2_context;
+
+static int gicv2_suspend(void)
+{
+    unsigned int i;
+
+    if ( !gicv2_context.gicd_isenabler )
+    {
+        dprintk(XENLOG_WARNING, "%s:%d: GICv2 suspend context not allocated!\n",
+            __func__, __LINE__);
+        return -ENOMEM;
+    }
+
+    /* Save GICC configuration */
+    gicv2_context.gicc_ctlr = readl_gicc(GICC_CTLR);
+    gicv2_context.gicc_pmr = readl_gicc(GICC_PMR);
+    gicv2_context.gicc_bpr = readl_gicc(GICC_BPR);
+
+    /* Save GICD configuration */
+    gicv2_context.gicd_ctlr = readl_gicd(GICD_CTLR);
+
+    for ( i = 0; i < DIV_ROUND_UP(gicv2_info.nr_lines, 32); i++ )
+        gicv2_context.gicd_isenabler[i] = readl_gicd(GICD_ISENABLER + i * 4);
+
+    for ( i = 0; i < DIV_ROUND_UP(gicv2_info.nr_lines, 32); i++ )
+        gicv2_context.gicd_isactiver[i] = readl_gicd(GICD_ISACTIVER + i * 4);
+
+    for ( i = 0; i < DIV_ROUND_UP(gicv2_info.nr_lines, 4); i++ )
+        gicv2_context.gicd_ipriorityr[i] = readl_gicd(GICD_IPRIORITYR + i * 4);
+
+    for ( i = 0; i < DIV_ROUND_UP(gicv2_info.nr_lines, 4); i++ )
+        gicv2_context.gicd_itargetsr[i] = readl_gicd(GICD_ITARGETSR + i * 4);
+
+    for ( i = 0; i < DIV_ROUND_UP(gicv2_info.nr_lines, 16); i++ )
+        gicv2_context.gicd_icfgr[i] = readl_gicd(GICD_ICFGR + i * 4);
+
+    return 0;
+}
+
+static void gicv2_resume(void)
+{
+    unsigned int i;
+
+    if ( !gicv2_context.gicd_isenabler )
+    {
+        dprintk(XENLOG_WARNING, "%s:%d: GICv2 suspend context not allocated!\n",
+            __func__, __LINE__);
+        return;
+    }
+
+    gicv2_cpu_disable();
+    /* Disable distributor */
+    writel_gicd(0, GICD_CTLR);
+
+    /* Restore GICD configuration */
+    for ( i = 0; i < DIV_ROUND_UP(gicv2_info.nr_lines, 32); i++ ) {
+        writel_gicd(0xffffffff, GICD_ICENABLER + i * 4);
+        writel_gicd(gicv2_context.gicd_isenabler[i], GICD_ISENABLER + i * 4);
+    }
+
+    for ( i = 0; i < DIV_ROUND_UP(gicv2_info.nr_lines, 32); i++ ) {
+        writel_gicd(0xffffffff, GICD_ICACTIVER + i * 4);
+        writel_gicd(gicv2_context.gicd_isactiver[i], GICD_ISACTIVER + i * 4);
+    }
+
+    for ( i = 0; i < DIV_ROUND_UP(gicv2_info.nr_lines, 4); i++ )
+        writel_gicd(gicv2_context.gicd_ipriorityr[i], GICD_IPRIORITYR + i * 4);
+
+    for ( i = 0; i < DIV_ROUND_UP(gicv2_info.nr_lines, 4); i++ )
+        writel_gicd(gicv2_context.gicd_itargetsr[i], GICD_ITARGETSR + i * 4);
+
+    for ( i = 0; i < DIV_ROUND_UP(gicv2_info.nr_lines, 16); i++ )
+        writel_gicd(gicv2_context.gicd_icfgr[i], GICD_ICFGR + i * 4);
+
+    /* Make sure all registers are restored and enable distributor */
+    writel_gicd(gicv2_context.gicd_ctlr | GICD_CTL_ENABLE, GICD_CTLR);
+
+    /* Restore GIC CPU interface configuration */
+    writel_gicc(gicv2_context.gicc_pmr, GICC_PMR);
+    writel_gicc(gicv2_context.gicc_bpr, GICC_BPR);
+
+    /* Enable GIC CPU interface */
+    writel_gicc(gicv2_context.gicc_ctlr | GICC_CTL_ENABLE | GICC_CTL_EOI,
+                GICC_CTLR);
+}
+
+static void gicv2_alloc_context(struct gicv2_context *gc)
+{
+    uint32_t n = gicv2_info.nr_lines;
+
+    gc->gicd_isenabler = xzalloc_array(uint32_t, DIV_ROUND_UP(n, 32));
+    if ( !gc->gicd_isenabler )
+        goto err_free;
+
+    gc->gicd_isactiver = xzalloc_array(uint32_t, DIV_ROUND_UP(n, 32));
+    if ( !gc->gicd_isactiver )
+        goto err_free;
+
+    gc->gicd_itargetsr = xzalloc_array(uint32_t, DIV_ROUND_UP(n, 4));
+    if ( !gc->gicd_itargetsr )
+        goto err_free;
+
+    gc->gicd_ipriorityr = xzalloc_array(uint32_t, DIV_ROUND_UP(n, 4));
+    if ( !gc->gicd_ipriorityr )
+        goto err_free;
+
+    gc->gicd_icfgr = xzalloc_array(uint32_t, DIV_ROUND_UP(n, 16));
+    if ( !gc->gicd_icfgr )
+        goto err_free;
+
+    return;
+
+ err_free:
+    dprintk(XENLOG_ERR,
+            "%s:%d: failed to allocate memory for GICv2 suspend context\n",
+            __func__, __LINE__);
+
+    xfree(gc->gicd_icfgr);
+    xfree(gc->gicd_ipriorityr);
+    xfree(gc->gicd_itargetsr);
+    xfree(gc->gicd_isactiver);
+    xfree(gc->gicd_isenabler);
+
+    memset(gc, 0, sizeof(*gc));
+}
+
+#endif /* CONFIG_SYSTEM_SUSPEND */
+
 #ifdef CONFIG_ACPI
 static unsigned long gicv2_get_hwdom_extra_madt_size(const struct domain *d)
 {
@@ -1302,6 +1447,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(&gicv2_context);
+#endif /* CONFIG_SYSTEM_SUSPEND */
+
     return 0;
 }
 
@@ -1345,6 +1495,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 e80fe0ca24..a018bd7715 100644
--- a/xen/arch/arm/gic.c
+++ b/xen/arch/arm/gic.c
@@ -425,6 +425,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 541f0eeb80..a706303008 100644
--- a/xen/arch/arm/include/asm/gic.h
+++ b/xen/arch/arm/include/asm/gic.h
@@ -280,6 +280,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,
@@ -395,6 +401,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.48.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 20:48:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 20:48:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077944.1438956 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulZRr-0005qb-WE; Mon, 11 Aug 2025 20:48:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077944.1438956; Mon, 11 Aug 2025 20: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 1ulZRr-0005qU-TZ; Mon, 11 Aug 2025 20:48:51 +0000
Received: by outflank-mailman (input) for mailman id 1077944;
 Mon, 11 Aug 2025 20:48:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=21ui=2X=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1ulZRq-0005co-7n
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 20:48:50 +0000
Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com
 [2a00:1450:4864:20::632])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 951bccd6-76f4-11f0-a327-13f23c93f187;
 Mon, 11 Aug 2025 22:48:49 +0200 (CEST)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-adfb562266cso656737066b.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 13:48:49 -0700 (PDT)
Received: from yp-VivoBook-ASUSLaptop-M1503QA-M1503QA.Dlink ([77.52.179.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a0a3bd2sm2065710466b.54.2025.08.11.13.48.46
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Aug 2025 13:48: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>
X-Inumbo-ID: 951bccd6-76f4-11f0-a327-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754945329; x=1755550129; 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=uqPcozH5cY7WTdc/VNhtz0ZQbmCe6X/v3JhqZHPKizE=;
        b=PKounsQ3qXQ1uXh7Cbt4dJu7ffgtpXdtjQ+7V4KK6ZGNyB3NhFpoCg41AjVYBVEzpc
         +ywX2UVGek4uR0DL0LkJLbAKb+UOZ8IUFVi4tdaj2t4v4f1q5FPQvwG2m0HqLt63nq8D
         yw17SwtqVb0RqgGecgN8w+foOmsTzeAe4r/6c221uGQp5tlcHmHoFoq8vHl7IYC9FTCG
         9K0dKSfgf56S6morcmuYKl5twUwZhlQ5f1M5kbvwHNN3BMQ94UVwZ5gQNI5lNPkiWJD8
         K9UIg38vt4RzWlsUzLy0lutUutZSeIFu/QnPbWbdz/I2aLLiwJ+1Y0M8jjJsQuQAsn6g
         ziqw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754945329; x=1755550129;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=uqPcozH5cY7WTdc/VNhtz0ZQbmCe6X/v3JhqZHPKizE=;
        b=X5AGP83O8PdhaiJJsCvu9YA141H3cwIKs+Vh0zd3NtUK6V+CHRG4bMuGPjj5kof4CP
         OCD06j9fdcaBPkoU+HgZoBnYnbPRyD7hkTnGNT03v9ptzoUvwforuvatwSak+7kflFoX
         AkXhe1cGP8PG53C3v3BC7nhbBcbAQ52LXYkLYZ3J8H/YEZg0fCl11uK7HyHgT0qbpGAb
         wUTc+8Kc+03KWgVMUBOpM4BZGRv/Q3U+NW69jt1sf9V97GqczdZE/mG0vxv5sxG1iqYh
         nqhdDhVvC5lN/+9DW+amVNxiWeTlcgKkBBr5cegzDpomdbMlKUSALHPNKpkmlBVGCP4p
         Uu/w==
X-Gm-Message-State: AOJu0YznO+I0Wr02zk2LZc4hJuNd9MCF6Ks/l3dRUvlTAeWahpGbZN1c
	IXCdrHdNaiqPG1nv3Qkzio9oP8/G7VhAt6QwnzP8VAWoB+FzWHrpSKQqPjA2rQ==
X-Gm-Gg: ASbGncuGNSj/sUYmymIn8gtikiOL4o7wgXwC/1U1MZ6cSf/QhcYRRH/00vCyd7j1LGO
	6o34Yj91rWuGdkMew1Jv+9r8R4rW8ge3KRR34e6hEJqzMYhY9o1z7yfoe7Hk8Sy4cMbqweChySo
	MIgKWBdRe8/yFCL82UEq6QlWOaVcsyL/8a9ChT1rBNBJkbvv+Kcm5dMRS2ugxEHMTF09HntBf3X
	y8p5ffYBr97mW899gHee5rN4AoaqRZZCjZXCWHP8CmlSIRfeE6Uyk4P57IlhxFe7tOtur5biF3O
	o6zaDHai6a5kSzcwhCvCgKAh1TvMX6PXcvKa5yEgdffovWlG1TE4JMu0LPhYBBln+UM2QFdbW9X
	6K+WkSpTZiYYD7QbZZaPJoWoYuC94Nbnexzudm00QRFiEqGFMzrbG96QKnnGrrSc7Qdo=
X-Google-Smtp-Source: AGHT+IEu3D0gEmW80fyDtMme/VtHa6WjaROJtkDiDayImRqcZBL5eh09kXVI5SF+mCQWOVhf9h9k5Q==
X-Received: by 2002:a17:906:794a:b0:af6:3194:f024 with SMTP id a640c23a62f3a-afa1dff3b08mr83862166b.13.1754945328309;
        Mon, 11 Aug 2025 13:48:48 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mirela Simonovic <mirela.simonovic@aggios.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>,
	Saeed Nowshadi <saeed.nowshadi@xilinx.com>,
	Mykola Kvach <mykola_kvach@epam.com>
Subject: [PATCH v5 01/12] xen/arm: Add suspend and resume timer helpers
Date: Mon, 11 Aug 2025 23:47:57 +0300
Message-ID: <412e0f48636feda1825885a8aed92386f694c8ca.1754943874.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.1754943874.git.mykola_kvach@epam.com>
References: <cover.1754943874.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mirela Simonovic <mirela.simonovic@aggios.com>

Timer interrupts must be disabled while the system is suspended to prevent
spurious wake-ups. Suspending the timers involves disabling both the EL1
physical timer and the EL2 hypervisor timer. Resuming consists of raising
the TIMER_SOFTIRQ, which prompts the generic timer code to reprogram the
EL2 timer as needed. Re-enabling of the EL1 timer is left to the entity
that uses it.

Introduce a new helper, disable_physical_timers, to encapsulate disabling
of the physical 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>
---
Changes in V4:
  - Rephrased comment and commit message for better clarity
  - Created separate function for disabling physical timers

Changes in V3:
  - time_suspend and time_resume are now conditionally compiled
    under CONFIG_SYSTEM_SUSPEND
---
 xen/arch/arm/include/asm/time.h |  5 +++++
 xen/arch/arm/time.c             | 38 +++++++++++++++++++++++++++------
 2 files changed, 37 insertions(+), 6 deletions(-)

diff --git a/xen/arch/arm/include/asm/time.h b/xen/arch/arm/include/asm/time.h
index 49ad8c1a6d..f4fd0c6af5 100644
--- a/xen/arch/arm/include/asm/time.h
+++ b/xen/arch/arm/include/asm/time.h
@@ -108,6 +108,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 e74d30d258..ad984fdfdd 100644
--- a/xen/arch/arm/time.c
+++ b/xen/arch/arm/time.c
@@ -303,6 +303,14 @@ static void check_timer_irq_cfg(unsigned int irq, const char *which)
            "WARNING: %s-timer IRQ%u is not level triggered.\n", which, irq);
 }
 
+/* Disable physical timers for EL1 and EL2 on the current CPU */
+static inline void disable_physical_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)
 {
@@ -310,9 +318,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_physical_timers();
 
     request_irq(timer_irq[TIMER_HYP_PPI], 0, htimer_interrupt,
                 "hyptimer", NULL);
@@ -330,9 +336,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_physical_timers();
 
     release_irq(timer_irq[TIMER_HYP_PPI], NULL);
     release_irq(timer_irq[TIMER_VIRT_PPI], NULL);
@@ -372,6 +376,28 @@ 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)
+{
+    disable_physical_timers();
+}
+
+void time_resume(void)
+{
+    /*
+     * Raising the timer softirq triggers generic code to call reprogram_timer
+     * with the correct timeout (not known here).
+     *
+     * 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.48.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 20:48:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 20:48:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077946.1438976 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulZRv-0006K9-IA; Mon, 11 Aug 2025 20:48:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077946.1438976; Mon, 11 Aug 2025 20: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 1ulZRv-0006K0-F1; Mon, 11 Aug 2025 20:48:55 +0000
Received: by outflank-mailman (input) for mailman id 1077946;
 Mon, 11 Aug 2025 20:48:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=21ui=2X=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1ulZRu-00063z-Mh
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 20:48:54 +0000
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com
 [2a00:1450:4864:20::636])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9725a984-76f4-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 22:48:53 +0200 (CEST)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-af9611d8ff7so848816366b.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 13:48:53 -0700 (PDT)
Received: from yp-VivoBook-ASUSLaptop-M1503QA-M1503QA.Dlink ([77.52.179.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a0a3bd2sm2065710466b.54.2025.08.11.13.48.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Aug 2025 13:48:50 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9725a984-76f4-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754945332; x=1755550132; 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=D2plmqjz1DgU+9gEpcztVWyZmRTrqXcD635KTVAFbqc=;
        b=b4e03BYvNz0GSvEHkNtxhAhwhKHTgZNlnGygFoDqwrNdcRUME8jyDl5OXg+W108l5Z
         S21DgqtZC/6iZQbQ3Fzph3N4c3kSNkSVF8/WQANxGxfHl11SXs4isiHLDNTvJReBKKN0
         VCXWOfo0alXm1yeU/tiIiIRUweSg7p7ubEGC2mETDemZKh6q0cXWbj+I9tTlBgWXT1Dx
         VgL9X31AHHFn+9P8Iqv55h225yZ4omvcWZRkDHXZlMavSfbdbskX+P8+1ARumwquyOQx
         tBrWtgnu90N4OP5Oxa6zP3PTutMzIqDoGkLoCj+ewuNZszcEEQDRJoS/JcwPYsq7/4EJ
         IDhw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754945332; x=1755550132;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=D2plmqjz1DgU+9gEpcztVWyZmRTrqXcD635KTVAFbqc=;
        b=Cqc/y2Cq6qs+9FE37W6xkyTC0PCaEZtnLHRu9yhZowvfpz/VhBihTQeuROS+2dQd4T
         FwakowQ+nbcZldVPcaXeDr79xyTTe+z3Vjis+ZMn+D+LuUayUszhUOe6/sRvv2Fciq0y
         /sYk/Ctpb6ptb5yx4Hc2h4l3JhzKFWnqGZ2rEyVzXR1xMSoq0ghe9BwPIsPgWaYyIKxr
         3wMeByS1Plzd23FqPNJiFszKIBk9EOSb/n8IQExuUV9aZzfdjFAT6yBntmXn4zh4Ff9T
         CL7hFsKLiq7Wz5drt4KulD1ewuxc+/AUQs0p2d2/itaR78RMuaebpi6cRwpZnsCvVnec
         /8Dw==
X-Gm-Message-State: AOJu0YwMZsaYet7gS1rlqP3/NnFJGM5RUxabWL8D7hOcQHbF7BwMV7Jo
	g1jJ1KgoEZ8YPM8P8DjBOuTqhVE9H81vZMDPSlmjJ58IUwUM6SwRu4Lb0ddf7A==
X-Gm-Gg: ASbGncuUtIVWyfDaO0/cmgfjgUtj81J9GN9nd1cpoSSa6d3WeR7JDxKDUWNRvPKB5Ir
	mce9uMRcuO4Izqac7EOsEvH7zihJ4PNNUHH3p8D1HC2N5y9Y0lfRv3eoXw9Y0DrkwZdt/kCgYao
	1QK3Aq0TqeVpg4tAb7cC/YY2oA+8ZwLJ3MoPXrMf/b1ziMoBZVvUiycyYFrESDzLKAqG1N0k3Sc
	Ma+TdAPoaEy3RCpl2C29NL07u2FD107ls4vI/MOc45ysTg6cIkZt7/+Pz7E1xrIsqUrvhqaP1cD
	H+SneS3fAxV07KB4EypGsxIaXQHX0Ylftu3XMESnClqdcK4frg0+1kQztiu2lPFwjGz7o/Nc8ho
	yiW+7kEDqxJiG2AhZ/S2fvFqLWnf2RjRc61yuFHUB0Fe1j6+bZHgZ1bZzFW7ZZqODw+4=
X-Google-Smtp-Source: AGHT+IEfEKJYD9M3gJWf+20en40xDaPHCADL22orakBaGISswdWEmQXSl3jT0ikHDz+HYSPYdX9Vgg==
X-Received: by 2002:a17:906:6b93:b0:acb:37ae:619c with SMTP id a640c23a62f3a-afa1d6d2c48mr79546266b.15.1754945331921;
        Mon, 11 Aug 2025 13:48: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 v5 03/12] xen/arm: gic-v3: Implement GICv3 suspend/resume functions
Date: Mon, 11 Aug 2025 23:47:59 +0300
Message-ID: <451b8a0527a6193b6687e1c85bd254b4dfda142d.1754943874.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.1754943874.git.mykola_kvach@epam.com>
References: <cover.1754943874.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

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>
---
 xen/arch/arm/gic-v3.c | 233 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 233 insertions(+)

diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
index cd3e1acf79..a9b65ff5d4 100644
--- a/xen/arch/arm/gic-v3.c
+++ b/xen/arch/arm/gic-v3.c
@@ -1776,6 +1776,231 @@ static bool gic_dist_supports_lpis(void)
     return (readl_relaxed(GICD + GICD_TYPER) & GICD_TYPE_LPIS);
 }
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+
+/* GICv3 registers to be saved/restored on system suspend/resume */
+struct gicv3_ctx {
+    struct dist_ctx {
+        uint32_t ctlr;
+        /*
+         * This struct represent block of 32 IRQs
+         * TODO: store extended SPI configuration (GICv3.1+)
+         */
+        struct irq_regs {
+            uint32_t icfgr[2];
+            uint32_t ipriorityr[8];
+            uint64_t irouter[32];
+            uint32_t isactiver;
+            uint32_t isenabler;
+        } *irqs;
+    } dist;
+
+    /* have only one rdist structure for last running CPU during suspend */
+    struct redist_ctx {
+        uint32_t ctlr;
+        /* TODO: handle case when we have more than 16 PPIs (GICv3.1+) */
+        uint32_t icfgr[2];
+        uint32_t igroupr;
+        uint32_t ipriorityr[8];
+        uint32_t isactiver;
+        uint32_t isenabler;
+    } 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);
+
+    if ( gicv3_its_host_has_its() )
+        return;
+
+    /* according to spec it is possible don't have SPIs */
+    if ( blocks == 1 )
+        return;
+
+    gicv3_ctx.dist.irqs = xzalloc_array(typeof(*gicv3_ctx.dist.irqs), blocks - 1);
+    if ( !gicv3_ctx.dist.irqs )
+        dprintk(XENLOG_ERR,
+                "%s:%d: failed to allocate memory for GICv3 suspend context\n",
+                __func__, __LINE__);
+}
+
+static void gicv3_disable_redist(void)
+{
+    void __iomem* waker = GICD_RDIST_BASE + GICR_WAKER;
+
+    writel_relaxed(readl_relaxed(waker) | GICR_WAKER_ProcessorSleep, waker);
+    while ( (readl_relaxed(waker) & GICR_WAKER_ChildrenAsleep) == 0 );
+}
+
+static int gicv3_suspend(void)
+{
+    unsigned int i;
+    void __iomem *base;
+    typeof(gicv3_ctx.rdist)* rdist = &gicv3_ctx.rdist;
+
+    /* TODO: implement support for ITS */
+    if ( gicv3_its_host_has_its() )
+        return -EOPNOTSUPP;
+
+    if ( !gicv3_ctx.dist.irqs && gicv3_info.nr_lines > NR_GIC_LOCAL_IRQS )
+    {
+        dprintk(XENLOG_WARNING,
+                "%s:%d: GICv3 suspend context is not allocated!\n",
+                __func__, __LINE__);
+        return -ENOMEM;
+    }
+
+    gicv3_save_state(current);
+
+    /* 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();
+    gicv3_disable_redist();
+
+    /* Save GICR configuration */
+    gicv3_redist_wait_for_rwp();
+
+    base = GICD_RDIST_SGI_BASE;
+
+    rdist->ctlr = readl_relaxed(base + GICR_CTLR);
+
+    /* Set priority on PPI and SGI interrupts */
+    for (i = 0; i < NR_GIC_LOCAL_IRQS / 4; i += 4)
+        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[0]  = readl_relaxed(base + GICR_ICFGR0);
+    rdist->icfgr[1]  = 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++ )
+    {
+        typeof(gicv3_ctx.dist.irqs) irqs = gicv3_ctx.dist.irqs + i - 1;
+        unsigned int irq;
+
+        base = GICD + GICD_ICFGR + 8 * i;
+        irqs->icfgr[0] = readl_relaxed(base);
+        irqs->icfgr[1] = readl_relaxed(base + 4);
+
+        base = GICD + GICD_IPRIORITYR + 32 * i;
+        for ( irq = 0; irq < 8; irq++ )
+            irqs->ipriorityr[irq] = readl_relaxed(base + 4 * irq);
+
+        base = GICD + GICD_IROUTER + 32 * i;
+        for ( irq = 0; irq < 32; irq++ )
+            irqs->irouter[irq] = readq_relaxed_non_atomic(base + 8 * irq);
+
+        irqs->isactiver = readl_relaxed(GICD + GICD_ISACTIVER + 4 * i);
+        irqs->isenabler = readl_relaxed(GICD + GICD_ISENABLER + 4 * i);
+    }
+
+    return 0;
+}
+
+static void gicv3_resume(void)
+{
+    unsigned int i;
+    void __iomem *base;
+    typeof(gicv3_ctx.rdist)* rdist = &gicv3_ctx.rdist;
+
+    if ( !gicv3_ctx.dist.irqs && gicv3_info.nr_lines > NR_GIC_LOCAL_IRQS )
+    {
+        dprintk(XENLOG_WARNING, "%s:%d: GICv3 suspend context not allocated!\n",
+            __func__, __LINE__);
+        return;
+    }
+
+    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++ )
+    {
+        typeof(gicv3_ctx.dist.irqs) irqs = gicv3_ctx.dist.irqs + i - 1;
+        unsigned int irq;
+
+        base = GICD + GICD_ICFGR + 8 * i;
+        writel_relaxed(irqs->icfgr[0], base);
+        writel_relaxed(irqs->icfgr[1], base + 4);
+
+        base = GICD + GICD_IPRIORITYR + 32 * i;
+        for ( irq = 0; irq < 8; irq++ )
+            writel_relaxed(irqs->ipriorityr[irq], base + 4 * irq );
+
+        base = GICD + GICD_IROUTER + 32 * i;
+        for ( irq = 0; irq < 32; irq++ )
+            writeq_relaxed_non_atomic(irqs->irouter[irq], base + 8 * irq);
+
+        writel_relaxed(irqs->isenabler, GICD + GICD_ISENABLER + i * 4);
+        writel_relaxed(irqs->isactiver, GICD + GICD_ISACTIVER + i * 4);
+    }
+
+    writel_relaxed(gicv3_ctx.dist.ctlr, GICD + GICD_CTLR);
+    gicv3_dist_wait_for_rwp();
+
+    /* Restore GICR (Redistributor) configuration */
+    gicv3_enable_redist();
+
+    base = GICD_RDIST_SGI_BASE;
+
+    writel_relaxed(0xffffffff, base + GICR_ICENABLER0);
+    gicv3_redist_wait_for_rwp();
+
+    for (i = 0; i < NR_GIC_LOCAL_IRQS / 4; i += 4)
+        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[0], base + GICR_ICFGR0);
+    writel_relaxed(rdist->icfgr[1], 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();
+
+    gicv3_restore_state(current);
+}
+
+#endif /* CONFIG_SYSTEM_SUSPEND */
+
 /* Set up the GIC */
 static int __init gicv3_init(void)
 {
@@ -1850,6 +2075,10 @@ static int __init gicv3_init(void)
 
     gicv3_hyp_init();
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+    gicv3_alloc_context();
+#endif
+
 out:
     spin_unlock(&gicv3.lock);
 
@@ -1889,6 +2118,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)
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 20:48:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 20:48:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077943.1438946 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulZRq-0005d6-Pi; Mon, 11 Aug 2025 20:48:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077943.1438946; Mon, 11 Aug 2025 20: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 1ulZRq-0005cz-Mt; Mon, 11 Aug 2025 20:48:50 +0000
Received: by outflank-mailman (input) for mailman id 1077943;
 Mon, 11 Aug 2025 20:48:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=21ui=2X=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1ulZRp-0005co-DK
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 20:48:49 +0000
Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com
 [2a00:1450:4864:20::630])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 94474483-76f4-11f0-a327-13f23c93f187;
 Mon, 11 Aug 2025 22:48:48 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-af93c3bac8fso681521966b.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 13:48:48 -0700 (PDT)
Received: from yp-VivoBook-ASUSLaptop-M1503QA-M1503QA.Dlink ([77.52.179.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a0a3bd2sm2065710466b.54.2025.08.11.13.48.44
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Aug 2025 13:48: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>
X-Inumbo-ID: 94474483-76f4-11f0-a327-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754945327; x=1755550127; 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=/zKmv3HZfbb0UnE05p/JthhUdKNDnTKWEZfs7hIFgJo=;
        b=UWJU5gVekW7qkS0CqziR9lNZbSwEGMv7mZsGzdkBOtiZJes+SJGVWlrfmQtnqBXKCc
         t+1R7gEmHJhJC7X3aFvGwJQFGSw1CMq3Inrk5AKX4ou9r7al6UVFh9cvt+Vd12UHVovU
         l3BC2H9tVmM2k3WX+qdc7sqMNL9CA0EF0NeSyF3LCKtzjFWTFKp0vIFzuB9Izldy9tA0
         rHm3ew02FZb6jqPAV5H1VCDA7OY+X9JDBzOsiMdRPkXQq2QRsE7uXaF4tweXFoVSx7je
         LvxTEIWjONd8TiY1j4uW9NeGfp+PWkfInaTcBZDEHC0SVMBSQH53l7HVAC97Uy/GS4ko
         Ferg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754945327; x=1755550127;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=/zKmv3HZfbb0UnE05p/JthhUdKNDnTKWEZfs7hIFgJo=;
        b=Dl/6Z6xBJQZmugfKXEXLUMnAO0fK3WWrbMckeMsVOlcxMKDi9HlQdbybDuPOzsE4jt
         JK0St6oh57ZHT+sq1aPIA4wWT76SQdSoivUIOTOetGeH9do7OQbxXjIXOLOUhuqQsLdX
         1jyKZDspvAUFT8QpI3oQ3Yk/cR0fTtVCwb7L0i6C8s7rNt6jkY5pjBhvLeQLjFeIVsE4
         HScJiUqChfxsgLgcZ3jIvzK/DewrcMCI07rjs1CEM5URTLMoIBnlQgDK9wUpzNNeCODr
         eyxOvdzT/vZ0/49vGsi9of1NQobum0FYhlem+U5DLHncHFROhY1G7MApJ9OPrI8kQ4yR
         e4DA==
X-Gm-Message-State: AOJu0YxDZ6lGWVuUKT1yPmovWBJx0xXLeWW5Gc28nzxkVjPtQSxli2b+
	fHGQJaREbxgXwMnwSQqbasus5SpAzsCaBGJbt93pvkWyOaO7ycDlVx6wOInzpA==
X-Gm-Gg: ASbGncsbWwCm6ropOmJTuxzg4e++mXwdPvXV1yLqPLFil1HMh7q5ZTlvjuAzRMEihPM
	VlCS2OxAdhbqUrdaUwj9CXAd/3zRNVn/JG2eMHapffXsQHu4ohE9MW5ITZhs7BMgr9tp4zH+YVp
	p9GAoObxhAlb+Ulm2C97O8LGR594Ieq2bTb3DQCnbH0U2rPS7ZXBxdPHDSS5CBV/d5Og62Yhr6o
	1L60T4VVmdMCZ0EymXUs9m6VU1Q9d5xW/nDCWnCngyYgC/+Dn8WRfW4SAiLODRQJvM4Q4T0SxB3
	SdeOkyOGhpxUCtdqs2Jdm3Bget0HkXQHJflMiijjGOnTL29BX2KDcXMFUtetLaLxoB6u5euby1i
	8I9IiFBfxqKL+iWgazmVc09mniU1VBCDf2JOF0qD946mNiSt07AuKz75iUtQFRS4HnNXty793H8
	C+rA==
X-Google-Smtp-Source: AGHT+IEJW8MGwUFBhpxdJITfiUDESQH6D/AB2pOrpUohXurxydBSsrKc775CXm4diSKn+ljG8uoRNg==
X-Received: by 2002:a17:907:3e13:b0:af9:3341:8dd with SMTP id a640c23a62f3a-af9c64f23d6mr1464638866b.31.1754945326494;
        Mon, 11 Aug 2025 13:48:46 -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 v5 00/12] Add initial Xen Suspend-to-RAM support on ARM64
Date: Mon, 11 Aug 2025 23:47:56 +0300
Message-ID: <cover.1754943874.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.48.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

This is part 2 of version 5 of the ARM Xen system suspend/resume patch
series, based on earlier work by Mirela Simonovic and Mykyta Poturai.
This version is ported to Xen master (4.21-unstable) 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 domains.

At a high-level, this patch series provides:
 - Support for Host system suspend/resume via PSCI SYSTEM_SUSPEND (ARM64)
 - Suspend/resume infrastructure for CPU context, timers, GICv2/GICv3 and IPMMU-VMSA
 - Proper error propagation and recovery throughout the suspend/resume flow

Key updates in this series:
 - Introduced architecture-specific suspend/resume infrastructure (new `suspend.c`, `suspend.h`, low-level context save/restore in `head.S`)
 - 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 context save/restore

---
TODOs:
 - Test system suspend with llc_coloring_enabled set and verify functionality
 - Implement SMMUv3 suspend/resume handlers
 - Enable "xl suspend" support on ARM
 - Properly disable Xen timer watchdog from relevant services (only init.d left)
 - Add suspend/resume CI test for ARM (QEMU if feasible)
 - Investigate feasibility and need for implementing system suspend on ARM32
---
Changes introduced in V5:
 - Add support for IPMMU-VMSA context save/restore
 - Add support for GICv3 context save/restore
 - Select HAS_SYSTEM_SUSPEND in ARM_64 instead of ARM
 - Check llc_coloring_enabled instead of LLC_COLORING during the selection
   of HAS_SYSTEM_SUSPEND config
 - Call host_system_suspend from guest PSCI system suspend instead of
   arch_domain_shutdown, reducing the complexity of the new code

Changes introduced in V4:
  - Remove the prior tasklet-based workaround in favor of a more
    straightforward and safer solution.
  - Rework the approach by adding explicit system state checks around
    request_irq and release_irq calls; skip these calls during suspend
    and resume states to avoid unsafe memory operations when IRQs are
    disabled.
  - Prevent reinitialization of local IRQ descriptors on system resume.
  - Restore the state of local IRQs during system resume for secondary CPUs.
  - Drop code for saving and restoring VCPU context (see part 1 of the patch
    series for details).
  - Remove IOMMU suspend and resume calls until these features are implemented.
  - Move system suspend logic to arch_domain_shutdown, invoked from
    domain_shutdown.
  - Add console_end_sync to the resume path after system suspend.
  - Drop unnecessary DAIF masking; interrupts are already masked on resume.
  - Remove leftover TLB flush instructions; flushing is handled in enable_mmu.
  - Avoid setting x19 in hyp_resume as it is not required.
  - Replace prepare_secondary_mm with set_init_ttbr, and call it from system_suspend.
  - Produce a build-time error for ARM32 when CONFIG_SYSTEM_SUSPEND is enabled.
  - Use register_t instead of uint64_t in the cpu_context structure.
  - Apply minor fixes such as renaming functions, updating comments, and
    modifying commit messages to accurately reflect the changes introduced
    by this patch series.

For earlier changelogs, please refer to the previous cover letters.

Previous versions:
  V1: https://marc.info/?l=xen-devel&m=154202231501850&w=2
  V2: https://marc.info/?l=xen-devel&m=166514782207736&w=2
  V3: https://lists.xen.org/archives/html/xen-devel/2025-03/msg00168.html

Mirela Simonovic (6):
  xen/arm: Add suspend and resume timer helpers
  xen/arm: gic-v2: Implement GIC suspend/resume functions
  xen/arm: Add support for system suspend triggered by hardware domain
  xen/arm: Implement PSCI SYSTEM_SUSPEND call (host interface)
  xen/arm: Resume memory management on Xen resume
  xen/arm: Save/restore context on suspend/resume

Mykola Kvach (4):
  xen/arm: gic-v3: Implement GICv3 suspend/resume functions
  xen/arm: Prevent crash during disable_nonboot_cpus on suspend
  xen/arm: irq: avoid local IRQ descriptors reinit on system resume
  xen/arm: irq: Restore state of local IRQs during system resume

Oleksandr Tyshchenko (2):
  iommu/ipmmu-vmsa: Implement suspend/resume callbacks
  xen/arm: Suspend/resume IOMMU on Xen suspend/resume

 xen/arch/arm/Kconfig                     |   1 +
 xen/arch/arm/Makefile                    |   1 +
 xen/arch/arm/arm64/head.S                | 113 ++++++++++
 xen/arch/arm/gic-v2.c                    | 154 +++++++++++++
 xen/arch/arm/gic-v3.c                    | 233 ++++++++++++++++++++
 xen/arch/arm/gic.c                       |  35 +++
 xen/arch/arm/include/asm/gic.h           |  12 +
 xen/arch/arm/include/asm/mm.h            |   2 +
 xen/arch/arm/include/asm/psci.h          |   1 +
 xen/arch/arm/include/asm/suspend.h       |  44 ++++
 xen/arch/arm/include/asm/time.h          |   5 +
 xen/arch/arm/irq.c                       |  48 ++++
 xen/arch/arm/mmu/smpboot.c               |   2 +-
 xen/arch/arm/psci.c                      |  23 +-
 xen/arch/arm/suspend.c                   | 196 +++++++++++++++++
 xen/arch/arm/tee/ffa_notif.c             |   2 +-
 xen/arch/arm/time.c                      |  56 ++++-
 xen/arch/arm/vpsci.c                     |  12 +-
 xen/common/domain.c                      |   4 +
 xen/drivers/passthrough/arm/ipmmu-vmsa.c | 269 +++++++++++++++++++++++
 20 files changed, 1197 insertions(+), 16 deletions(-)
 create mode 100644 xen/arch/arm/include/asm/suspend.h
 create mode 100644 xen/arch/arm/suspend.c

-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 20:48:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 20:48:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077947.1438986 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulZRw-0006Zt-Qr; Mon, 11 Aug 2025 20:48:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077947.1438986; Mon, 11 Aug 2025 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 1ulZRw-0006Zg-ND; Mon, 11 Aug 2025 20:48:56 +0000
Received: by outflank-mailman (input) for mailman id 1077947;
 Mon, 11 Aug 2025 20:48:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=21ui=2X=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1ulZRv-0005co-NW
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 20:48:55 +0000
Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com
 [2a00:1450:4864:20::52c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9863a886-76f4-11f0-a327-13f23c93f187;
 Mon, 11 Aug 2025 22:48:55 +0200 (CEST)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-61592ff5ebbso7470419a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 13:48:55 -0700 (PDT)
Received: from yp-VivoBook-ASUSLaptop-M1503QA-M1503QA.Dlink ([77.52.179.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a0a3bd2sm2065710466b.54.2025.08.11.13.48.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Aug 2025 13:48: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>
X-Inumbo-ID: 9863a886-76f4-11f0-a327-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754945334; x=1755550134; 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=t3qd7wn/+BTaUGKnbQ/zLRIfyUfmlIN1J0Bwt1qcE10=;
        b=kB1jbKl/DEHDketgCQPVFERAjE0SPcL4FMHCQy5fbVRw5LmrtsnyRO09jBUxa8Lw2j
         6cedYJTwrVdfJ3EGFyu9+bfNbOO77qvaizD9BkkZZpzyR6Iz8Xv3a1rJOG0DXlWNo6Py
         ZR6V+iGxoXFv36zzKVIZxAKjEc1XurqSn2CBou86iDCbDsbLsdW9mFRiSQ3w0T6WWrK/
         pHgqox5ueR8i1JAjTnaYuKY/hNNDRivpurbhGTlha4A2DksykKx3YYOKg1mWz82ThmrF
         4ZXcGFXPXbESUal9r8RDMqba7SUywDq02PVOwz513H6tFQr3Mu4xvS5wbdQSrbOZyjm7
         1KrQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754945334; x=1755550134;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=t3qd7wn/+BTaUGKnbQ/zLRIfyUfmlIN1J0Bwt1qcE10=;
        b=EPL/o3iYrKqiEthiryZKv0t/cBsGwjPMgaMx6O8uC9mFSdgjMFNjMF18L2hyiMnTOz
         hTl+pBNuazZyEm2MxVLKhL2v6nwtgOTaweunBFfrzSQWrIzeJoDa4DsnmsR829ABj2fR
         4ybWVi/GwPuEGtDblwUveu/Xhv03Nd/Q8t/o8ui7MWmJxtqAclhCIHNHlHgOw9xs8nCN
         ai//jb0/lmweQ96LexpMjDk3FNXf1HJzn9AuAJoBfJEeL4MXzEnfWAsZocPSU6SawJ6g
         8kjWMfzoLZmWkBwUw9s3Ego3KYL3ljBAB4J4yX9xHFVFVaIA5sEetAscWqUauK21VC51
         bLVQ==
X-Gm-Message-State: AOJu0Yw3dkpAqXNIjKBBgTZ6VhqzI5YAVd0S24i1NjA9YP9MAyekrw4i
	Kx6UyenSfyvNyNR+lqYUgF+e/f0xlsMX8AmRuxIVLVyJpJlXpnjnIh9yJJQQXA==
X-Gm-Gg: ASbGncvJbAAQ2sh/Tqv70UkTLjCU3M/KVB1L/gX6MyuMvBo5nPXCBueSXE79U/Xyuak
	CHUeiNELwvjXojT6Y5AOG7i41iHW1kNliPNhOw1pE8pzB9VzdMFx3wOlDb0wOydFyLlnkR+y5Br
	0HKH9pZuF7Bd9DOB0BskOFru8suJNzfsILKIotGeMGiLuI1X9pUaOi1j2/M1a8TrDn4tXCWR1Xi
	nWudb40ViLxL4CKmSlbj3HCEJT6qt5g44osOL32XbNkvGPPuLBz78z0C/c+mn6SWBmTvkKWiLVb
	5VZgpsY1Xgbux4hGYrlHgqRaYzhfBuZujodQrx1W3wx41GvkaMV7HeGdRxRcdJtbr0zQtA+gBNW
	dj6oPJdJ2hkrJydp3b6dOjxXRp/aYCyGhzGM9JeVEpyl2bDVUT94qhxUKIbARiGBkdLg=
X-Google-Smtp-Source: AGHT+IHyc4RdgDDPGpJFPoO/+5S4rhYm2JlYjM24gD7Vc95QPmXWGO9du6N0t/9Ny5v0LhPnvvAfWA==
X-Received: by 2002:a17:907:60cc:b0:ae3:a812:a780 with SMTP id a640c23a62f3a-afa1e1ed74fmr73582466b.61.1754945333973;
        Mon, 11 Aug 2025 13:48:53 -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 v5 04/12] xen/arm: Prevent crash during disable_nonboot_cpus on suspend
Date: Mon, 11 Aug 2025 23:48:00 +0300
Message-ID: <98957da5c5068ae8340a21a9aa15a962905a8a22.1754943874.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.1754943874.git.mykola_kvach@epam.com>
References: <cover.1754943874.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

If we call disable_nonboot_cpus on ARM64 with system_state set
to SYS_STATE_suspend, the following assertion will be triggered:

```
(XEN) [   25.582712] Disabling non-boot CPUs ...
(XEN) [   25.587032] Assertion '!in_irq() && (local_irq_is_enabled() || num_online_cpus() <= 1)' failed at common/xmalloc_tlsf.c:714
[...]
(XEN) [   25.975069] Xen call trace:
(XEN) [   25.978353]    [<00000a000022e098>] xfree+0x130/0x1a4 (PC)
(XEN) [   25.984314]    [<00000a000022e08c>] xfree+0x124/0x1a4 (LR)
(XEN) [   25.990276]    [<00000a00002747d4>] release_irq+0xe4/0xe8
(XEN) [   25.996152]    [<00000a0000278588>] time.c#cpu_time_callback+0x44/0x60
(XEN) [   26.003150]    [<00000a000021d678>] notifier_call_chain+0x7c/0xa0
(XEN) [   26.009717]    [<00000a00002018e0>] cpu.c#cpu_notifier_call_chain+0x24/0x48
(XEN) [   26.017148]    [<00000a000020192c>] cpu.c#_take_cpu_down+0x28/0x34
(XEN) [   26.023801]    [<00000a0000201944>] cpu.c#take_cpu_down+0xc/0x18
(XEN) [   26.030281]    [<00000a0000225c5c>] stop_machine.c#stopmachine_action+0xbc/0xe4
(XEN) [   26.038057]    [<00000a00002264bc>] tasklet.c#do_tasklet_work+0xb8/0x100
(XEN) [   26.045229]    [<00000a00002268a4>] do_tasklet+0x68/0xb0
(XEN) [   26.051018]    [<00000a000026e120>] domain.c#idle_loop+0x7c/0x194
(XEN) [   26.057585]    [<00000a0000277e30>] start_secondary+0x21c/0x220
(XEN) [   26.063978]    [<00000a0000361258>] 00000a0000361258
```

This happens because before invoking take_cpu_down via the stop_machine_run
function on the target CPU, stop_machine_run requests
the STOPMACHINE_DISABLE_IRQ state on that CPU. Releasing memory in
the release_irq function then triggers the assertion:

/*
 * Heap allocations may need TLB flushes which may require IRQs to be
 * enabled (except when only 1 PCPU is online).
 */

This patch adds system state checks to guard calls to request_irq
and release_irq. These calls are now skipped when system_state is
SYS_STATE_{resume,suspend}, preventing unsafe operations during
suspend/resume handling.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in V4:
  - removed the prior tasklet-based workaround in favor of a more
    straightforward and safer solution
  - reworked the approach by adding explicit system state checks around
    request_irq and release_irq calls, skips these calls during suspend
    and resume states to avoid unsafe memory operations when IRQs are
    disabled
---
 xen/arch/arm/gic.c           |  6 ++++++
 xen/arch/arm/tee/ffa_notif.c |  2 +-
 xen/arch/arm/time.c          | 18 ++++++++++++------
 3 files changed, 19 insertions(+), 7 deletions(-)

diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
index a018bd7715..9856cb1592 100644
--- a/xen/arch/arm/gic.c
+++ b/xen/arch/arm/gic.c
@@ -388,6 +388,9 @@ void gic_dump_info(struct vcpu *v)
 
 void init_maintenance_interrupt(void)
 {
+    if ( system_state == SYS_STATE_resume )
+        return;
+
     request_irq(gic_hw_ops->info->maintenance_irq, 0, maintenance_interrupt,
                 "irq-maintenance", NULL);
 }
@@ -461,6 +464,9 @@ static int cpu_gic_callback(struct notifier_block *nfb,
     switch ( action )
     {
     case CPU_DYING:
+        if ( system_state == SYS_STATE_suspend )
+            break;
+
         /* This is reverting the work done in init_maintenance_interrupt */
         release_irq(gic_hw_ops->info->maintenance_irq, NULL);
         break;
diff --git a/xen/arch/arm/tee/ffa_notif.c b/xen/arch/arm/tee/ffa_notif.c
index 00efaf8f73..06f715a82b 100644
--- a/xen/arch/arm/tee/ffa_notif.c
+++ b/xen/arch/arm/tee/ffa_notif.c
@@ -347,7 +347,7 @@ void ffa_notif_init_interrupt(void)
 {
     int ret;
 
-    if ( notif_enabled && notif_sri_irq < NR_GIC_SGI )
+    if ( notif_enabled && notif_sri_irq < NR_GIC_SGI && system_state != SYS_STATE_resume )
     {
         /*
          * An error here is unlikely since the primary CPU has already
diff --git a/xen/arch/arm/time.c b/xen/arch/arm/time.c
index ad984fdfdd..b2e07ade43 100644
--- a/xen/arch/arm/time.c
+++ b/xen/arch/arm/time.c
@@ -320,10 +320,13 @@ void init_timer_interrupt(void)
     WRITE_SYSREG(CNTHCTL_EL2_EL1PCTEN, CNTHCTL_EL2);
     disable_physical_timers();
 
-    request_irq(timer_irq[TIMER_HYP_PPI], 0, htimer_interrupt,
-                "hyptimer", NULL);
-    request_irq(timer_irq[TIMER_VIRT_PPI], 0, vtimer_interrupt,
-                   "virtimer", NULL);
+    if ( system_state != SYS_STATE_resume )
+    {
+        request_irq(timer_irq[TIMER_HYP_PPI], 0, htimer_interrupt,
+                    "hyptimer", NULL);
+        request_irq(timer_irq[TIMER_VIRT_PPI], 0, vtimer_interrupt,
+                    "virtimer", NULL);
+    }
 
     check_timer_irq_cfg(timer_irq[TIMER_HYP_PPI], "hypervisor");
     check_timer_irq_cfg(timer_irq[TIMER_VIRT_PPI], "virtual");
@@ -338,8 +341,11 @@ static void deinit_timer_interrupt(void)
 {
     disable_physical_timers();
 
-    release_irq(timer_irq[TIMER_HYP_PPI], NULL);
-    release_irq(timer_irq[TIMER_VIRT_PPI], NULL);
+    if ( system_state != SYS_STATE_suspend )
+    {
+        release_irq(timer_irq[TIMER_HYP_PPI], NULL);
+        release_irq(timer_irq[TIMER_VIRT_PPI], NULL);
+    }
 }
 
 /* Wait a set number of microseconds */
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 20:49:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 20:49:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077949.1438995 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulZS1-0006xq-6A; Mon, 11 Aug 2025 20:49:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077949.1438995; Mon, 11 Aug 2025 20:49: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 1ulZS1-0006xe-2Q; Mon, 11 Aug 2025 20:49:01 +0000
Received: by outflank-mailman (input) for mailman id 1077949;
 Mon, 11 Aug 2025 20:48:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=21ui=2X=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1ulZRz-00063z-Gn
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 20:48:59 +0000
Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com
 [2a00:1450:4864:20::52d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9976de08-76f4-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 22:48:56 +0200 (CEST)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-615756b1e99so6565677a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 13:48:56 -0700 (PDT)
Received: from yp-VivoBook-ASUSLaptop-M1503QA-M1503QA.Dlink ([77.52.179.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a0a3bd2sm2065710466b.54.2025.08.11.13.48.54
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Aug 2025 13:48: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>
X-Inumbo-ID: 9976de08-76f4-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754945336; x=1755550136; 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=qwUl1czZ2m+Uelj6p4EfRluuF8y733PPdTpEjfbyiwk=;
        b=TchvzPdgOoqkdhKVvUH3VzjSmn/APp2a3PgqK8vBlUV8WPaGAAt2/CNXX3eqC5yVQT
         TWHezV1jD2Au4y+rtw8Ntb0fXIbCWMYGCnzXGVCxjL4bHxEa0X8pohQzhKzMyeZtSiUs
         7RL18jQOeJpfLZghAKHdi53hrQHEDMjg5fEhWfhy+MK5uvsHRcE1lgaVIzuaqgveLpre
         j7xeIF5s4S1dHd32rsefj9bzAR/VmldiMOzk7KZtTajoTYjXg2FDxDIO8ftvH1CKUtzO
         ZwVNxzJ7QVVt9IAf3w7OpCp4LMkmJDOU0DYg2oipg7BwZcSBkEaXVJ0RRORmrF0RD5dZ
         Tcww==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754945336; x=1755550136;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=qwUl1czZ2m+Uelj6p4EfRluuF8y733PPdTpEjfbyiwk=;
        b=smx45UGZjmmQGHegnYBN7CDPjL4D67Tm1e4hOQxxTbXTwOcv6ecPZdy6yknIikFv/v
         w5AM/fyOB2PMbx++Lc0sX+VpfxPzuIy+ig5LVdm74oagl60i7CleSGlppPxgIwGBz/Rr
         PYYGcjTHgYqyF8GRmlOWp0dgNJKIna2U8mF2/4H9ehi6dp+qZdxGch2UR3LUCHlLrzBZ
         +q7tEjdjJu3gg3KL4yi365jKubAYsLr0KNrdH4u0zrF2m6rfoFzGPDgOMhyFUNfqCWFD
         499QsNGV8QEZxeRoi/VLH67qPxkbHHNp7byNplfwOItLcWkc1/XPETkJRoayn3ELesuw
         8QMQ==
X-Gm-Message-State: AOJu0YzLPkbmRnLrJQ18h0FkZhIAwnliAZh//VNFsRhoGR1h7OpHT07w
	BNKb0niY3TavQsE/hhS+5nZJc7Muoy5wM/zgmEBpxrYqFxwiolTPWfsI9LW0/g==
X-Gm-Gg: ASbGncvjcTowBG92vD3LlO9u/w7K4XK2e7RnjmkbDkc8UhDtux9YjYIFLLW3keFFVwo
	td/Lz2om7ESb5mx20Y6FfDdRsxD5kWADCXo3sJMC1f1LQf1Xumuj0fU2uOJADtVQtjKHYTSgjpH
	iHiorIH/RBYw/CjLLBlE1HDYfQjiGRcRRetTXWcNW1Vy2g6HmD/L4n6JNgRr0ONNbhVwFJHSLha
	ATJNyMl6Lx++MlvEpGtLUHwkc8vtBA5pC20alE3KqPOxtKah6lHy8srm96tZfZWc7Q3MnAct4OF
	yVfWn0+Yc8/S1VX5fR6QrNCeCdhL88NssKfRAFxr6uPVLPjHanlPTH/eWVptF8QkMN1SRY/Oh9t
	YMMLhR6SRllUQe3/G72HhKQMd9ZMXTFNS3m/XFBuw9Kmj+cKnW5880L7bSLClYToZEDS6tv65jB
	/n8w==
X-Google-Smtp-Source: AGHT+IFO5hq4ySBJNwPMmfUKsL09AJOr0uCUIAwDZZTQIhw7zIqyOTdwwRDDjdCGC7eAi/wFj/9Hsg==
X-Received: by 2002:a17:907:c25:b0:ade:316e:bfc with SMTP id a640c23a62f3a-af9c6457eb7mr1272700166b.21.1754945335933;
        Mon, 11 Aug 2025 13:48:55 -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 v5 05/12] xen/arm: irq: avoid local IRQ descriptors reinit on system resume
Date: Mon, 11 Aug 2025 23:48:01 +0300
Message-ID: <7686bc019f0c0eff94720e4ca16e00f895819087.1754943874.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.1754943874.git.mykola_kvach@epam.com>
References: <cover.1754943874.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

On ARM, during system resume, CPUs are brought online again. This normally
triggers init_local_irq_data, which reinitializes IRQ descriptors for
banked interrupts (SGIs and PPIs).

These descriptors are statically allocated per CPU and retain valid
state across suspend/resume cycles. Re-initializing them on resume is
unnecessary and may result in loss of interrupt configuration or
restored state.

This patch skips init_local_irq_data when system_state is set to
SYS_STATE_resume to preserve banked IRQ descs state during resume.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
 xen/arch/arm/irq.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
index 4bbf0b0664..148f184f8b 100644
--- a/xen/arch/arm/irq.c
+++ b/xen/arch/arm/irq.c
@@ -122,6 +122,10 @@ static int cpu_callback(struct notifier_block *nfb, unsigned long action,
     switch ( action )
     {
     case CPU_UP_PREPARE:
+        /* Skip local IRQ cleanup on resume */
+        if ( system_state == SYS_STATE_resume )
+            break;
+
         rc = init_local_irq_data(cpu);
         if ( rc )
             printk(XENLOG_ERR "Unable to allocate local IRQ for CPU%u\n",
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 20:49:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 20:49:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077950.1439000 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulZS1-00071r-HY; Mon, 11 Aug 2025 20:49:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077950.1439000; Mon, 11 Aug 2025 20:49: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 1ulZS1-00070H-C1; Mon, 11 Aug 2025 20:49:01 +0000
Received: by outflank-mailman (input) for mailman id 1077950;
 Mon, 11 Aug 2025 20:49:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=21ui=2X=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1ulZS0-00063z-H7
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 20:49:00 +0000
Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com
 [2a00:1450:4864:20::635])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9a5429d9-76f4-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 22:48:58 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-ae0bde4d5c9so907144566b.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 13:48:58 -0700 (PDT)
Received: from yp-VivoBook-ASUSLaptop-M1503QA-M1503QA.Dlink ([77.52.179.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a0a3bd2sm2065710466b.54.2025.08.11.13.48.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Aug 2025 13: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>
X-Inumbo-ID: 9a5429d9-76f4-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754945337; x=1755550137; 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=Q2qe+4To2d8/snjQhUCMC9AqGLOoTxivgLe2IekgTVE=;
        b=jQejmo/yC4pihO7Ag8Fsjgj6EbaWTt8Sr6ami7kPJBsBBwB+ebKFLSHtW5hUIVuROh
         aqNIc1lYkQntdVqwB10pIVjsxwafjbadTpdqjhid5Xxwv1KDaTj6q/L5qXByRD6btf8R
         batDYLAReobfrAPW7QWHQh+9myXFYwsDl0tB44FDeHhIf6dzXNCDkGbbSz+IjnGV8Xcg
         tOQ75CNO9LcaO4EN3GeRbSuv5//+VdSgcOejGEHXUV4lPgDSM4sg/X3JCKQKy3rbmHgO
         tbadLq2pBSfm9NOijkk2DB6g+a+Y1hR+bTu3h6CVc7T2B1DF93Z3+i4XCpEi/PmzDUCf
         9ibA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754945337; x=1755550137;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=Q2qe+4To2d8/snjQhUCMC9AqGLOoTxivgLe2IekgTVE=;
        b=rGUWrlru8UPN0Mct1LSyg1D1+JNJT+j4WJXRpYockoxaVwViMg5QLu9BaFJZEsE5y8
         0Jo3FQCYFjX7svfhIVtxt9IJLuxjel7iSMYuaGL5P2b3mIGbnNe+XwTx5D5cXR2skX38
         DQLVQoJ1jsqWDAYmF9zm6cVvbMXjBsI6GQnRbpRawBlONEP8UKHkxZ3zE/SqgU7H/UO3
         3AjAi6PhK7MvnGo1yhLIGr3xWfCglAwi34GyHzHFV8wY9E0fJas+xXTCTSeDcYakorf3
         6SQwVQPrBeKqLIvIMtacBfJbTniYPYrYZQ+zmE0H8ADfeMoFmUqk9dfROx7GL1VMwMD/
         S6YQ==
X-Gm-Message-State: AOJu0YygocUMG7P2N44Bpi6A/6laG1PYY7/3GFuVyIm+EtKQ9ulorEz2
	D/tb2o8TooSxSGbt8lHorRj4YW2zs6ZQGyTrk4AbhWn0S1W8es7ncTLw38Xwkg==
X-Gm-Gg: ASbGncsQecLd4ZPkEGmy1z0dU1m28+xUBPgKH/dId39BEcQIoxigwhOPTqaAD6eaQBw
	9XN+bX3qBQd68XJLzF/YyGLT72dutEhf6WV6MjzjM2pRaTLkf+dmgXTuQcwOP9BI+Eq3fK0bbOg
	syBDEDH9nq4I+qC2B3AevWNsvaiOpcJWFDRXbFSZJE9K5KYzRgHjcTLSSyxEjZwJYxOg7UAe5PI
	QjktrgSsYexGn7WEpbB7VBnyxdGEpWGuAZNtAGDIeKldGxndAW8wHJ3QMWrgaFLi4LNNqC2+sT+
	ICF3V77WrUxw/XkFc4q/dkKGDoEz15CjXwXn7upM2xn6U2yDNbK1S7baIAr8oKiY78AwkP+bj8U
	YWA2zw5KgWt+iQHnX5amSoCQPDu6NuhMfSPdzWoY6nlb134jA2QOQ3T+ZosYOxtWv3C4=
X-Google-Smtp-Source: AGHT+IHdCavzk8aGLAAEau1dbT80tWOU/vCYdkrblwV5rQHlaJaQKN+3lli5Az81ynaQ9zYS83kj3g==
X-Received: by 2002:a17:906:f59f:b0:ad5:2e5b:d16b with SMTP id a640c23a62f3a-afa1e0290bcmr80256266b.27.1754945337329;
        Mon, 11 Aug 2025 13:48: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>
Subject: [PATCH v5 06/12] xen/arm: irq: Restore state of local IRQs during system resume
Date: Mon, 11 Aug 2025 23:48:02 +0300
Message-ID: <779a90853f249f8d8c4973874baeee1f787e92e0.1754943875.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.1754943874.git.mykola_kvach@epam.com>
References: <cover.1754943874.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

On ARM, the first 32 interrupts (SGIs and PPIs) are banked per-CPU
and not restored by gic_resume (for secondary cpus).

This patch introduces restore_local_irqs_on_resume, a function that
restores the state of local interrupts on the target CPU during
system resume.

It iterates over all local IRQs and re-enables those that were not
disabled, reprogramming their routing and affinity accordingly.

The function is invoked from start_secondary, ensuring that local IRQ
state is restored early during CPU bring-up after suspend.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
 xen/arch/arm/irq.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)

diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
index 148f184f8b..b3ff38dc27 100644
--- a/xen/arch/arm/irq.c
+++ b/xen/arch/arm/irq.c
@@ -113,6 +113,47 @@ static int init_local_irq_data(unsigned int cpu)
     return 0;
 }
 
+/*
+ * The first 32 interrupts (PPIs and SGIs) are per-CPU,
+ * so call this function on the target CPU to restore them.
+ *
+ * SPIs are restored via gic_resume.
+ */
+static void restore_local_irqs_on_resume(void)
+{
+    int irq;
+
+    if ( system_state != SYS_STATE_resume )
+        return;
+
+    spin_lock(&local_irqs_type_lock);
+
+    for ( irq = 0; irq < NR_LOCAL_IRQS; irq++ )
+    {
+        struct irq_desc *desc = irq_to_desc(irq);
+
+        spin_lock(&desc->lock);
+
+        if ( test_bit(_IRQ_DISABLED, &desc->status) )
+        {
+            spin_unlock(&desc->lock);
+            continue;
+        }
+
+        /* it is needed to avoid asserts in below calls */
+        set_bit(_IRQ_DISABLED, &desc->status);
+
+        gic_route_irq_to_xen(desc, GIC_PRI_IRQ);
+
+        /* _IRQ_DISABLED is cleared by below call */
+        desc->handler->startup(desc);
+
+        spin_unlock(&desc->lock);
+    }
+
+    spin_unlock(&local_irqs_type_lock);
+}
+
 static int cpu_callback(struct notifier_block *nfb, unsigned long action,
                         void *hcpu)
 {
@@ -131,6 +172,9 @@ static int cpu_callback(struct notifier_block *nfb, unsigned long action,
             printk(XENLOG_ERR "Unable to allocate local IRQ for CPU%u\n",
                    cpu);
         break;
+    case CPU_STARTING:
+        restore_local_irqs_on_resume();
+        break;
     }
 
     return notifier_from_errno(rc);
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 20:49:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 20:49:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077952.1439015 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulZS2-0007OO-Uy; Mon, 11 Aug 2025 20:49:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077952.1439015; Mon, 11 Aug 2025 20:49: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 1ulZS2-0007Mq-LZ; Mon, 11 Aug 2025 20:49:02 +0000
Received: by outflank-mailman (input) for mailman id 1077952;
 Mon, 11 Aug 2025 20:49:01 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=21ui=2X=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1ulZS1-0005co-IM
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 20:49:01 +0000
Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com
 [2a00:1450:4864:20::633])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9b8932a9-76f4-11f0-a327-13f23c93f187;
 Mon, 11 Aug 2025 22:49:00 +0200 (CEST)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-af96524c5a9so630348466b.1
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 13:49:00 -0700 (PDT)
Received: from yp-VivoBook-ASUSLaptop-M1503QA-M1503QA.Dlink ([77.52.179.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a0a3bd2sm2065710466b.54.2025.08.11.13.48.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Aug 2025 13:48: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>
X-Inumbo-ID: 9b8932a9-76f4-11f0-a327-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754945339; x=1755550139; 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=TGMaJnHIHucvLaFfdzAI/fXgS3JEgG5T2t9Vqll28+g=;
        b=Fk1uKYmhbp6Dt1kvzLlTWihbBXBs50l41FisAEc9+Cm1Q5om4TbfD0BSrea67Rqa5G
         urRWtINuccn7gEDz9Nu4X/y7Mtxhw2ougyGD5q5NFSOoW4UwGABhNPjm1cnTerGdoA6s
         uD0Ljdv0cG9kkm/GOi43WjrLizJEtfIhM7GP+S5QFqQSRvGjoSQWQOGGp9q9EgoCu9gt
         OEdwYLE3mp7BB8K+ZoyJCLsQoao/FaCpdkBvhfoeEvLbPfn1sjxqpJKjtDh8Nu14Xq+K
         lVevb2FjgVty0nqOcyiZSU2tF2vgJHGE3YrXMrVuImqhRViViOYRRR4QfkhtIj80hTF9
         h8Yg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754945339; x=1755550139;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=TGMaJnHIHucvLaFfdzAI/fXgS3JEgG5T2t9Vqll28+g=;
        b=Sw34vgm4HVd1t5sxqPVcefWXICzECjgGcfKYtRa2stE8ztCBDqd56639flBXxCvF7R
         Dmf81AILBLMsM2m3byMWAMGtWOl/JuHxc23m6/IsiiGE6FOAi4+KDtPGZWM30ShCnWCC
         alYwz0o3lpL45gca7w8JSv6oG/2YX3NFxpcTUu+B8BKGyRg+eWebSe71rTBIxdI3ojs6
         t6a3hWnnWeCxoVG8mrbpXAWo2vAOIPNaPJVIjSDFOPWRO+SosbZ/7WhNEiR6ndExflWq
         tFWyyPAgsh6Z7y32Zdl8/m9zruEKA2x6jLd72VuzjHiOqjl//3vvD4ELLfMWw+ovEmot
         GAdw==
X-Gm-Message-State: AOJu0Yw0tB9FqFVuNXlkK0kYEwsCBE0pLkn7T6ZfdZRXQ0AXUl5mtprk
	2ZCS2nlcitHO870TyjR9Ja93JIS0PrmP6YWO796bwCaqkSLuHEoFLbD9bD2hYA==
X-Gm-Gg: ASbGncsmwXEOHFC6swQ9Np27wmPEHcRuQiFdDLeyYATDGLfdJ4QYBpjfYSjjIXEZqgf
	MOOjWrbhfk4elerU9Zv/jy1cNP9zrPXcnCsWa8/b1qRaxaUesayPW5GsYwELV/+zIGAWdwdnkoL
	8pzQ3lTOT7tgxve4eNz3eQ/5dgB/QaBqrC+ckfjw+kTWfvBtOceqIFM9D2EoknPN6lY3Ngn4GoF
	+JEzJVqDq22HZbTpYto+oiduwV+MtEtpvff8orQepieibCW8KiCh/gRJuEX+YEUDEURvGyalPFi
	djcXVVhMB1jSZs7mLsVa/6kzC+M5zjut+/aQHA5LS2VPCrZ35htybrKsAGazG4Xq1/0s2Bw9t2F
	1uJKMqx0SyGrEpjijXLbMJSAEl2Py7dsIF7kScD9xJ1OT0WvfxsAYA3/wLORm4nMcc2c=
X-Google-Smtp-Source: AGHT+IEot2xPeTED6Qm4nrzq5Fo3yY//aC2fJh6j7EGTtl8PuKddoJ3YUpgLNtMQdKNmOPlPQZkJsQ==
X-Received: by 2002:a17:907:7ba2:b0:af9:3e23:831 with SMTP id a640c23a62f3a-af9c64d40a3mr1241421266b.39.1754945339166;
        Mon, 11 Aug 2025 13:48:59 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mirela Simonovic <mirela.simonovic@aggios.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>,
	Saeed Nowshadi <saeed.nowshadi@xilinx.com>,
	Mykyta Poturai <mykyta_poturai@epam.com>,
	Mykola Kvach <mykola_kvach@epam.com>
Subject: [PATCH v5 07/12] xen/arm: Add support for system suspend triggered by hardware domain
Date: Mon, 11 Aug 2025 23:48:03 +0300
Message-ID: <c995126a9a61aecff7cb9a7c6fd28f091a332443.1754943875.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.1754943874.git.mykola_kvach@epam.com>
References: <cover.1754943874.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mirela Simonovic <mirela.simonovic@aggios.com>

Trigger Xen suspend when the hardware domain initiates suspend via
SHUTDOWN_suspend. Redirect system suspend to CPU#0 to ensure the
suspend logic runs on the boot CPU, as required.

Introduce full suspend/resume infrastructure gated by CONFIG_SYSTEM_SUSPEND,
including logic to:
 - disable and enable non-boot physical CPUs
 - freeze and thaw domains
 - suspend and resume the GIC, timer and console
 - maintain system state before and after suspend

Remove the restriction in the PSCI interface preventing suspend from the
hardware domain.

Select HAS_SYSTEM_SUSPEND for ARM_64.

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 v5:
- select HAS_SYSTEM_SUSPEND in ARM_64 instead of ARM
- check llc_coloring_enabled instead of LLC_COLORING during the selection
  of HAS_SYSTEM_SUSPEND config
- call host_system_suspend from guest PSCI system suspend instead of
  arch_domain_shutdown, reducing the complexity of the new code
- update some comments

Changes introduced in V4:
  - drop code for saving and restoring VCPU context (for more information
    refer part 1 of patch series)
  - remove IOMMU suspend and resume calls until they will be implemented
  - move system suspend logic to arch_domain_shutdown, invoked from
    domain_shutdown
  - apply minor fixes such as renaming functions, updating comments, and
    modifying the commit message to reflect these changes
  - add console_end_sync to resume path after system suspend

Changes introduced in V3:
  - merge changes from other commits into this patch (previously stashed):
    1) disable/enable non-boot physical CPUs and freeze/thaw domains during
       suspend/resume
    2) suspend/resume the timer, GIC, console, IOMMU, and hardware domain
---
 xen/arch/arm/Kconfig               |   1 +
 xen/arch/arm/Makefile              |   1 +
 xen/arch/arm/include/asm/suspend.h |  22 +++++
 xen/arch/arm/suspend.c             | 151 +++++++++++++++++++++++++++++
 xen/arch/arm/vpsci.c               |  12 ++-
 xen/common/domain.c                |   4 +
 6 files changed, 190 insertions(+), 1 deletion(-)
 create mode 100644 xen/arch/arm/include/asm/suspend.h
 create mode 100644 xen/arch/arm/suspend.c

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index a0c8160474..ccdbaa5bc3 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -8,6 +8,7 @@ config ARM_64
 	depends on !ARM_32
 	select 64BIT
 	select HAS_FAST_MULTIPLY
+	select HAS_SYSTEM_SUSPEND if UNSUPPORTED
 	select HAS_VPCI_GUEST_SUPPORT if PCI_PASSTHROUGH
 
 config ARM
diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
index f833cdf207..3f6247adee 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/include/asm/suspend.h b/xen/arch/arm/include/asm/suspend.h
new file mode 100644
index 0000000000..78d0e2383b
--- /dev/null
+++ b/xen/arch/arm/include/asm/suspend.h
@@ -0,0 +1,22 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef __ASM_ARM_SUSPEND_H__
+#define __ASM_ARM_SUSPEND_H__
+
+#ifdef CONFIG_SYSTEM_SUSPEND
+
+int host_system_suspend(void);
+
+#endif /* CONFIG_SYSTEM_SUSPEND */
+
+#endif /* __ASM_ARM_SUSPEND_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/arm/suspend.c b/xen/arch/arm/suspend.c
new file mode 100644
index 0000000000..abf4b928ce
--- /dev/null
+++ b/xen/arch/arm/suspend.c
@@ -0,0 +1,151 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/console.h>
+#include <xen/cpu.h>
+#include <xen/llc-coloring.h>
+#include <xen/sched.h>
+
+/*
+ * TODO list:
+ *  - Test system suspend with LLC_COLORING enabled and verify functionality
+ *  - Implement IOMMU suspend/resume handlers and integrate them
+ *    into the suspend/resume path (IPMMU and SMMU)
+ *  - Enable "xl suspend" support on ARM architecture
+ *  - Properly disable Xen timer watchdog from relevant services
+ *  - Add suspend/resume CI test for ARM (QEMU if feasible)
+ *  - Investigate feasibility and need for implementing system suspend on ARM32
+ */
+
+/* Xen suspend. Note: data is not used (suspend is the suspend to RAM) */
+static long system_suspend(void *data)
+{
+    int status;
+    unsigned long flags;
+
+    BUG_ON(system_state != SYS_STATE_active);
+
+    system_state = SYS_STATE_suspend;
+    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. Tested on Xilinx Zynq Ultrascale+ MPSoC (including power down of
+     * each non-boot CPU).
+     */
+    status = disable_nonboot_cpus();
+    if ( status )
+    {
+        system_state = SYS_STATE_resume;
+        goto resume_nonboot_cpus;
+    }
+
+    time_suspend();
+
+    local_irq_save(flags);
+    status = gic_suspend();
+    if ( status )
+    {
+        system_state = SYS_STATE_resume;
+        goto resume_irqs;
+    }
+
+    printk("Xen suspending...\n");
+
+    console_start_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_console;
+    }
+
+    /*
+     * Enable identity mapping before entering suspend to simplify
+     * the resume path
+     */
+    update_boot_mapping(true);
+
+    system_state = SYS_STATE_resume;
+    update_boot_mapping(false);
+
+ resume_console:
+    console_resume();
+    console_end_sync();
+
+    gic_resume();
+
+ resume_irqs:
+    local_irq_restore(flags);
+    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_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;
+
+    /* The resume of hardware domain should always follow Xen's resume. */
+    domain_resume(hardware_domain);
+
+    printk("Resume (status %d)\n", status);
+    return status;
+}
+
+int host_system_suspend(void)
+{
+    int status;
+
+    /* TODO: drop check after verification that features can work together */
+    if ( llc_coloring_enabled )
+    {
+        dprintk(XENLOG_ERR,
+                "System suspend is not supported with LLC_COLORING enabled\n");
+        return -ENOSYS;
+    }
+
+    /*
+     * system_suspend should be called when Dom0 finalizes the suspend
+     * procedure from its boot core (VCPU#0). However, Dom0's VCPU#0 could
+     * be mapped to any PCPU (this function could be executed by any PCPU).
+     * The suspend procedure has to be finalized by the PCPU#0 (non-boot
+     * PCPUs will be disabled during the suspend).
+     */
+    status = continue_hypercall_on_cpu(0, system_suspend, NULL);
+
+    /*
+     * If an error happened, there is nothing that needs to be done here
+     * because the system_suspend always returns in fully functional state
+     * no matter what the outcome of suspend procedure is. If the system
+     * suspended successfully the function will return 0 after the resume.
+     * Otherwise, if an error is returned it means Xen did not suspended,
+     * but it is still in the same state as if the system_suspend was never
+     * called. We dump a debug message in case of an error for debugging/
+     * logging purpose.
+     */
+    if ( status )
+        dprintk(XENLOG_ERR, "Failed to suspend, errno=%d\n", status);
+
+    return status;
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
index 67d369a8a2..757e719ea7 100644
--- a/xen/arch/arm/vpsci.c
+++ b/xen/arch/arm/vpsci.c
@@ -4,6 +4,7 @@
 #include <xen/types.h>
 
 #include <asm/current.h>
+#include <asm/suspend.h>
 #include <asm/vgic.h>
 #include <asm/vpsci.h>
 #include <asm/event.h>
@@ -214,9 +215,10 @@ static int32_t do_psci_1_0_system_suspend(register_t epoint, register_t cid)
     struct vcpu *v;
     struct domain *d = current->domain;
 
-    /* SYSTEM_SUSPEND is not supported for the hardware domain yet */
+#ifndef CONFIG_SYSTEM_SUSPEND
     if ( is_hardware_domain(d) )
         return PSCI_NOT_SUPPORTED;
+#endif
 
     /* Ensure that all CPUs other than the calling one are offline */
     domain_lock(d);
@@ -234,6 +236,14 @@ static int32_t do_psci_1_0_system_suspend(register_t epoint, register_t cid)
     if ( rc )
         return PSCI_DENIED;
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+    if ( is_hardware_domain(d) && host_system_suspend() )
+    {
+        domain_resume_nopause(d);
+        return PSCI_DENIED;
+    }
+#endif
+
     rc = do_setup_vcpu_ctx(current, epoint, cid);
     if ( rc != PSCI_SUCCESS )
     {
diff --git a/xen/common/domain.c b/xen/common/domain.c
index c3609b0cb0..414a691242 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -1311,7 +1311,11 @@ int domain_shutdown(struct domain *d, u8 reason)
         d->shutdown_code = reason;
     reason = d->shutdown_code;
 
+#if defined(CONFIG_SYSTEM_SUSPEND) && defined(CONFIG_ARM)
+    if ( reason != SHUTDOWN_suspend && is_hardware_domain(d) )
+#else
     if ( is_hardware_domain(d) )
+#endif
         hwdom_shutdown(reason);
 
     if ( d->is_shutting_down )
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 20:49:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 20:49:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077954.1439025 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulZS5-0007qA-7B; Mon, 11 Aug 2025 20:49:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077954.1439025; Mon, 11 Aug 2025 20: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 1ulZS5-0007po-1j; Mon, 11 Aug 2025 20:49:05 +0000
Received: by outflank-mailman (input) for mailman id 1077954;
 Mon, 11 Aug 2025 20:49:03 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=21ui=2X=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1ulZS3-0005co-Io
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 20:49:03 +0000
Received: from mail-ej1-x631.google.com (mail-ej1-x631.google.com
 [2a00:1450:4864:20::631])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9c916888-76f4-11f0-a327-13f23c93f187;
 Mon, 11 Aug 2025 22:49:02 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-af9a25f091fso642644066b.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 13:49:02 -0700 (PDT)
Received: from yp-VivoBook-ASUSLaptop-M1503QA-M1503QA.Dlink ([77.52.179.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a0a3bd2sm2065710466b.54.2025.08.11.13.48.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Aug 2025 13:49: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>
X-Inumbo-ID: 9c916888-76f4-11f0-a327-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754945341; x=1755550141; 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=WV3I3iVcTMMqNyOJNyQt08YG5fWdAf6qVI+oDW1WgEk=;
        b=cKJuw1XecDJZ8r3iZ/XGO0iRRYWQOExemJyAASxe95qw/V3a39O5JPFAzCaaSWCbVV
         p6gMtcI6aqhv97XcLr5Astq1zgLzyvO+b7K/TZzKVEo5VKecuDtGVfJ31NAgZ694XdwI
         oS5+rR8Muz1czrdCLOGrIb/67NJaymkPpuSVETaQnU+Fre9GCkX/7cmrp36s0BIzrZTk
         YwexBTOk2DYu22R4wkqFwHsUqXgtRAZusYYdxK5yKuvIMpy8kX/paXGK+/gKPEhb1hAU
         oydJJqy6mvNOVoaxzKeNLzmk8K8uwkJ16ugTc2mhGEW1Qdj/EGSOUlmLXDIQXUG4vIW4
         XveA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754945341; x=1755550141;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=WV3I3iVcTMMqNyOJNyQt08YG5fWdAf6qVI+oDW1WgEk=;
        b=L4B6LUv6b5/9x7XKwuzt+qaMjHl4TKK7dbgxjkmZb4bi/NHa1FHZGsJ8ocdiIU20WY
         8hLQXxZizGan030sTfWgIYnAe7X7+JKn5SO2TMclofmuxdXNVCtziCZYX211cBty8EDH
         GoePd2d6xf1kXXivSXA3/IF7e7xpXLWq1jgTT7MS3mjjYcYy4INUtwXF1Ff3M/nxYLgh
         zL8BXCYtGUHhXXmbmWIPGKUhzi1BainhSOIX46cMr7p4qlfeoS/u0hdldlOdlaUm5KKl
         4n+RW/g6nAyvByALCpys7f6xW9l3K9W+PdY5iVY0JB4/rSaV3aXEY1TkPYISbswG/+yE
         qQKg==
X-Gm-Message-State: AOJu0Yxewy7hGe3ExZSzk7GlO7UPQao++YTypEbDvnvGOyTMTfR7z7XE
	JCHOMADFwc9YrKlFhWN/T8nVLW7ZkEBp6CqFwMH2QRMiiLhAZMFkZNbKEsrpNg==
X-Gm-Gg: ASbGncuao7HGlF4Qa3XsxbGPsyBvDRKawS8L5z7iCaTURDnGWVNf79YQxkDGS9d07xS
	XeUxJv2uAsZ+r/d9jqQMCziRc86EwIOPzf26E6NAxnwGupjYGz2U2FcKTjCaVvDw4x3mvfOFXh0
	SQLx5vDTydr3+H3Rwoqe/qCxLLtO8N7eAZ3NFfSMwJHc0+i4VGOyR1F3RtARB9Y7Y0VcUjRHn+5
	cNWcWvjJJv+lFikjobhYd8/oEUob5t/CPa/ce3LMrA2EkCyuqtx9qBWhvAIhpA/WPIIudsxjhYy
	hCM6ZC+OzYvSl1Je2XSfHd1fVgc0BNXeHyRncNtxgUKKcPjWK2eZ6EIoY26lvpMNWqaY3MLNApA
	eQshwr3ypTCvk7jq02ajNPOEkF5sZsRTB2QJfXQMTdo8rdPlCJqln2gYI/DENW1MhfCk=
X-Google-Smtp-Source: AGHT+IH8tgHqjKRy9ou+a/j6Sb5A7FZAPXUwRxtrBIzlXSCp55Ks+Gv58Suvi0Zmu2sioQAf9PPhBQ==
X-Received: by 2002:a17:907:3dab:b0:adf:7740:9284 with SMTP id a640c23a62f3a-afa1e13bccemr83193966b.57.1754945340811;
        Mon, 11 Aug 2025 13:49:00 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mirela Simonovic <mirela.simonovic@aggios.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>,
	Saeed Nowshadi <saeed.nowshadi@xilinx.com>,
	Mykyta Poturai <mykyta_poturai@epam.com>,
	Mykola Kvach <mykola_kvach@epam.com>
Subject: [PATCH v5 08/12] xen/arm: Implement PSCI SYSTEM_SUSPEND call (host interface)
Date: Mon, 11 Aug 2025 23:48:04 +0300
Message-ID: <c5d6e20ff49fd9367c46e63b96e8a9aa687ffbd3.1754943875.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.1754943874.git.mykola_kvach@epam.com>
References: <cover.1754943874.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

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 >= 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 v4:
  - select the appropriate PSCI SYSTEM_SUSPEND function ID based on platform
  - update comments and commit message to reflect recent changes

Changes in v3:
  - return PSCI_NOT_SUPPORTED instead of a hardcoded 1 on ARM32
  - check PSCI version before invoking SYSTEM_SUSPEND in call_psci_system_suspend
---
 xen/arch/arm/arm64/head.S          |  8 ++++++++
 xen/arch/arm/include/asm/psci.h    |  1 +
 xen/arch/arm/include/asm/suspend.h |  2 ++
 xen/arch/arm/psci.c                | 23 ++++++++++++++++++++++-
 xen/arch/arm/suspend.c             |  5 +++++
 5 files changed, 38 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/arm64/head.S b/xen/arch/arm/arm64/head.S
index 72c7b24498..3522c497c5 100644
--- a/xen/arch/arm/arm64/head.S
+++ b/xen/arch/arm/arm64/head.S
@@ -561,6 +561,14 @@ END(efi_xen_start)
 
 #endif /* CONFIG_ARM_EFI */
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+
+FUNC(hyp_resume)
+        b .
+END(hyp_resume)
+
+#endif /* CONFIG_SYSTEM_SUSPEND */
+
 /*
  * Local variables:
  * mode: ASM
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/include/asm/suspend.h b/xen/arch/arm/include/asm/suspend.h
index 78d0e2383b..55041a5d06 100644
--- a/xen/arch/arm/include/asm/suspend.h
+++ b/xen/arch/arm/include/asm/suspend.h
@@ -7,6 +7,8 @@
 
 int host_system_suspend(void);
 
+void hyp_resume(void);
+
 #endif /* CONFIG_SYSTEM_SUSPEND */
 
 #endif /* __ASM_ARM_SUSPEND_H__ */
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 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;
@@ -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);
+    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) )
diff --git a/xen/arch/arm/suspend.c b/xen/arch/arm/suspend.c
index abf4b928ce..11e86b7f51 100644
--- a/xen/arch/arm/suspend.c
+++ b/xen/arch/arm/suspend.c
@@ -1,5 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
+#include <asm/psci.h>
 #include <xen/console.h>
 #include <xen/cpu.h>
 #include <xen/llc-coloring.h>
@@ -70,6 +71,10 @@ static long system_suspend(void *data)
      */
     update_boot_mapping(true);
 
+    status = call_psci_system_suspend();
+    if ( status )
+        dprintk(XENLOG_WARNING, "PSCI system suspend failed, err=%d\n", status);
+
     system_state = SYS_STATE_resume;
     update_boot_mapping(false);
 
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 20:49:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 20:49:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077956.1439036 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulZS7-0008Di-Tq; Mon, 11 Aug 2025 20:49:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077956.1439036; Mon, 11 Aug 2025 20: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 1ulZS7-0008DN-Nd; Mon, 11 Aug 2025 20:49:07 +0000
Received: by outflank-mailman (input) for mailman id 1077956;
 Mon, 11 Aug 2025 20:49:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=21ui=2X=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1ulZS6-00063z-1e
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 20:49:06 +0000
Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com
 [2a00:1450:4864:20::52c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9d80cc54-76f4-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 22:49:03 +0200 (CEST)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-6156463fae9so9170657a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 13:49:03 -0700 (PDT)
Received: from yp-VivoBook-ASUSLaptop-M1503QA-M1503QA.Dlink ([77.52.179.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a0a3bd2sm2065710466b.54.2025.08.11.13.49.00
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Aug 2025 13: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>
X-Inumbo-ID: 9d80cc54-76f4-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754945343; x=1755550143; 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=8vCXXOUavoZEz6D2AXJtCOcWlfxhKLbJDHEKs+IY4pA=;
        b=PhCLYhne379ksm8mcXqWW6nb/iLzlDTY6PJ5GbnlMgj3/FF1d8Bd84tL+49N+uCEnx
         /usrWKeDFbUKA/8cgY3g/MqZHgkbZ3w11Y2W1n4TSgcZI6cGz1e0uOmB2VzLm+MWzuX4
         KVN0v7P/U44M5moXnGyVTu47u7WvBLfL/rHGR7MSt3eYXNHxNK+pTMfK9Xr8Wbnr5gfA
         ey8nmIY7quiCp7OjBJbSerV0jjKBXNBcJcJvsJ4MiD+IEpHpNn/Iw2JG7DUhjfHmZTWP
         K5+DRLiScp8zW41VvwVXeZArqTVWg2iQEIHyFYi+ZrJS9i4iKzunVEDwX0snakW8USuq
         iExg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754945343; x=1755550143;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=8vCXXOUavoZEz6D2AXJtCOcWlfxhKLbJDHEKs+IY4pA=;
        b=MTJJj+PjKq7yBbpSUCbmMye1DXj17kda72RFV9Kwoqkhlqj6R5kHYZt0v2h/LJSE+0
         0ycRtblroQ8+ALYQoZWleGneSgyyrd5b6R7Hqc874uRWtQUIwxRqlxkTmWBSEfwUHvjU
         T8aAbRPdKTB/5KR2OpWLzYckgaz3t6tbY+1ki9DcSqDFzP88Qx62aPbNN5W6mA53ago2
         Li7uoprSGn9K+9x869kUYwGkHhpq0PNgX3ouAHii0J9GWW2VNdsLtc2B+amwZJdJydAh
         uqmygQnszEYNl86ySVdePxYM44fkSrW/TY2CslgwxLHlBT50CCrkXbh03kL26vgz94F9
         oG3g==
X-Gm-Message-State: AOJu0YwKB6YPA5JU1CpuS56yder6XzAa7lgawRKRoGTjZEXRC2dOW9Wo
	Fyqacw7vnLlJS+F/dqUXL3af70fLOY+pXjxCov1rJeWoiacc4HFGReuz3rGBDg==
X-Gm-Gg: ASbGncuhQT2UOZ4J5Yp2QHVjY2i3T4Y/38LT1g2kQ1RWa+2sziUcZ2bPZ38DsG0tRwX
	PLNdcECDTPu+b7b1BeumjxvikuRGs2nFUBBeRtuipzPXkD7KYU5JIEFJ2q5POWR6SDdvbewD55V
	zKtSib3yAxgbpW82zYIuVdt7jkQDHP6lcVcII6dQAVmpHE4A9RiEBgesLD3rP1FbA4kpXOYNvET
	zwxlIABHmG1ycChKW9uaniZ40X/tsG7MJhaEywvm64uh/7EADXMYjTjIc9PYcarstOGWS1vwRFV
	Q6zaJQf0BjA+QTi2QYWRojIH+j1djCJSVFbas/wwGGQ/n4pv8lD8h/d7yVmkIRxTAFv3X1+VHTf
	7/BLpyqjZky69zv7PUyAonRtaG5nbsBUULRN8dyoZBnW+Rfz/8mb4Nn0bh9jo4MjZPes=
X-Google-Smtp-Source: AGHT+IFvx2QD9CEtIMTGc3JxuJiqe7FLmH+70iO+zvpaaiT8vngEUoYYhmLIc6hkC66nAn22bDo2qg==
X-Received: by 2002:a17:907:1b0e:b0:ae6:c334:af3a with SMTP id a640c23a62f3a-afa1d617a33mr113078066b.6.1754945342363;
        Mon, 11 Aug 2025 13:49:02 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mirela Simonovic <mirela.simonovic@aggios.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>,
	Saeed Nowshadi <saeed.nowshadi@xilinx.com>,
	Mykyta Poturai <mykyta_poturai@epam.com>,
	Mykola Kvach <mykola_kvach@epam.com>
Subject: [PATCH v5 09/12] xen/arm: Resume memory management on Xen resume
Date: Mon, 11 Aug 2025 23:48:05 +0300
Message-ID: <f0b8c21e34fc4a0e639cb677912f54e4f316d8c0.1754943875.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.1754943874.git.mykola_kvach@epam.com>
References: <cover.1754943874.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

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.
Before the MMU is enabled, the content of TTBR0_EL2 is changed to point
to init_ttbr (page tables used at runtime).

On boot, init_ttbr is normally initialized during secondary CPU hotplug.
On uniprocessor systems, this would leave init_ttbr uninitialized,
causing resume to fail. To address this, the boot CPU now sets init_ttbr
during suspend.

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 v4:
- Drop unnecessary DAIF masking; interrupts are already masked on resume
- Remove leftover TLB flush instructions; flushing is done in enable_mmu
- Avoid setting x19 in hyp_resume; not needed
- Replace prepare_secondary_mm with set_init_ttbr; call it from system_suspend

Changes in v3:
- Update commit message for clarity
- Replace create_page_tables, enable_mmu, and mmu_init_secondary_cpu
  with enable_secondary_cpu_mm
- Move prepare_secondary_mm to start_xen to avoid crash
- Add early UART init during resume

Changes in v2:
- Move hyp_resume to head.S to keep resume logic together
- Simplify hyp_resume using existing helpers: check_cpu_mode, cpu_init,
  create_page_tables, enable_mmu
---
 xen/arch/arm/arm64/head.S     | 16 ++++++++++++++++
 xen/arch/arm/include/asm/mm.h |  2 ++
 xen/arch/arm/mmu/smpboot.c    |  2 +-
 xen/arch/arm/suspend.c        |  2 ++
 4 files changed, 21 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/arm64/head.S b/xen/arch/arm/arm64/head.S
index 3522c497c5..596e960152 100644
--- a/xen/arch/arm/arm64/head.S
+++ b/xen/arch/arm/arm64/head.S
@@ -564,6 +564,22 @@ END(efi_xen_start)
 #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 .
 END(hyp_resume)
 
diff --git a/xen/arch/arm/include/asm/mm.h b/xen/arch/arm/include/asm/mm.h
index fb79aeb088..3400cb2bff 100644
--- a/xen/arch/arm/include/asm/mm.h
+++ b/xen/arch/arm/include/asm/mm.h
@@ -365,6 +365,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/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 11e86b7f51..08b6acaede 100644
--- a/xen/arch/arm/suspend.c
+++ b/xen/arch/arm/suspend.c
@@ -65,6 +65,8 @@ static long system_suspend(void *data)
         goto resume_console;
     }
 
+    set_init_ttbr(xen_pgtable);
+
     /*
      * Enable identity mapping before entering suspend to simplify
      * the resume path
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 20:49:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 20:49:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1077957.1439042 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulZS8-0008Jq-KV; Mon, 11 Aug 2025 20:49:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1077957.1439042; Mon, 11 Aug 2025 20:49: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 1ulZS8-0008IZ-5k; Mon, 11 Aug 2025 20:49:08 +0000
Received: by outflank-mailman (input) for mailman id 1077957;
 Mon, 11 Aug 2025 20:49:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=21ui=2X=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1ulZS7-00063z-26
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 20:49:07 +0000
Received: from mail-ed1-x535.google.com (mail-ed1-x535.google.com
 [2a00:1450:4864:20::535])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9e843ad0-76f4-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 22:49:05 +0200 (CEST)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-61571192ba5so7526980a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 13:49:05 -0700 (PDT)
Received: from yp-VivoBook-ASUSLaptop-M1503QA-M1503QA.Dlink ([77.52.179.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a0a3bd2sm2065710466b.54.2025.08.11.13.49.02
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Aug 2025 13:49: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>
X-Inumbo-ID: 9e843ad0-76f4-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754945344; x=1755550144; 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=P9RalIq5/KBIQXS8hw4c9tUFcC4ZusIbNEKpuKw1Hyg=;
        b=BK+qC/4Ot6ECLlOVoJgrNb72cJbBdGLAtIxAvvQp6K0o//L0njqhG4Riabldy72E5K
         A11iM8vhpPCm9+j1znQEe6XFm31uEir0mbjO2NUtqdluyDrbrgqKF1VkcemmfS/JyQm5
         ZeDvpkE5KtQI51uSbdvIG6Bfmx9qJcQBmQhl5nJNezYqDGzXcuDgKckh3h4qQk5Zd2Ye
         YpaE6JdLUjro5VqHsmjr0rZpJr7J2WDJUfWr2LeTCTZeehpaP8pwI9Ke04SPyxMCH1JU
         FTu2VdfIkKxQm2i6InH+QxlMvWvbIJFFU8Gwme19t+nTk1/Oro4IhCJZpQoU7FyJew4W
         1Lqg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754945344; x=1755550144;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=P9RalIq5/KBIQXS8hw4c9tUFcC4ZusIbNEKpuKw1Hyg=;
        b=r+o+BSnqk6KK5pXeALDLt9w5JEhIrEWecI7cG7lRyPyYqA7vxRhFCXQ+viqRdQW9wC
         +ncgJqqWPFn7tdALLAXLCuNd8/dIHHxhlOXGLlnYSFpWNuNPLN1prF9g8HMX6v0LRr/c
         5UxUs33Q6PfVP7CQKae8/iudZDGf+/fQT/E2vt98CltHBPVYTCcPR9khwLwAEEut52cP
         xUgPdC3qDHF0gVNS9lPCwklsPdzYldTdNQ9UvaEpieLrQw2fBgzkVn6aC88vAm3Eg3Ml
         Nrmjlltgn2/UkKaVj3BFpzdkB6g+FFO6nZrLoxIMJTE8n1DLi9dnH4vxKmYI47EM1v3H
         LIfg==
X-Gm-Message-State: AOJu0YzFZe5QY8iipqbYFRP+dmnU13RFn1ud9xzZYMYrIk1AleRxQuJd
	7m/+mTGKjq/NtW15oN2Y32a0dA5c5L172sq7IP6fWLKkHRJ/rGevXyFhvXndzg==
X-Gm-Gg: ASbGnctD3BLm8jY3XiSae7jLv4S9mQc7SSELYNUlyFDpwO/gJzHBRjWUBYW/B7PYcWP
	kbdVKY/HZ16J3St0nZugPAdBif9NjrYa3o2pMbwyP7um8ng8Z1z5zHH2jfuLd5XfAKIaDSU1n1O
	IhlSBcLFyBg31rcTpdBJwaaHWLqX800RcI0kjo1dx9frbJeYlMtxKb/t2bKq45F+YNYnPlRn75X
	M2wZ8J7uwAUzIXtvAQxyhuQ1IEyez2ypkeCpe3R1OWVou7dUv3cI8FUxn8bI93aVuv2CyoQpbGy
	RQEb3/u8I+K4PXOWOFH9IMBajBIfBO0bVf1nhBAxrdnk59/7XhDXRohWy0Qod1t1Y8uuhme8XkN
	fOJOI5CecSIa7ziWLh+lb1cO1J/ETQgLswUADIm0ByfdZjn4FhXfAVM8ZvX5IAQCQ64g=
X-Google-Smtp-Source: AGHT+IEtFQqkM1ql8OqSxn4kTFyvYW+XZoshQH+piJx543uLlQd9H+DlAyUW1k/3V4dpjWvOZpVLzQ==
X-Received: by 2002:a17:907:2d2c:b0:ae3:8c9b:bd61 with SMTP id a640c23a62f3a-afa1dff772amr72501366b.12.1754945344280;
        Mon, 11 Aug 2025 13:49:04 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mirela Simonovic <mirela.simonovic@aggios.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>,
	Saeed Nowshadi <saeed.nowshadi@xilinx.com>,
	Mykyta Poturai <mykyta_poturai@epam.com>,
	Mykola Kvach <mykola_kvach@epam.com>
Subject: [PATCH v5 10/12] xen/arm: Save/restore context on suspend/resume
Date: Mon, 11 Aug 2025 23:48:06 +0300
Message-ID: <5441d6712a4ca0e61fd066606b9a96414123aaad.1754943875.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.1754943874.git.mykola_kvach@epam.com>
References: <cover.1754943874.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mirela Simonovic <mirela.simonovic@aggios.com>

The context of CPU general purpose and system control registers
has to be saved on suspend and restored on resume. This is
implemented in hyp_suspend and before the return from hyp_resume
function. The hyp_suspend is invoked just before the PSCI system
suspend call is issued to the ATF. The hyp_suspend has to return a
non-zero value so that the calling 'if' statement evaluates to true,
causing the system suspend to be invoked. Upon the resume, 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 by the saved link register, which
is the place from which the hyp_suspend was called. To ensure
that the calling 'if' statement doesn't again evaluate to true
and initiate system suspend, hyp_resume has to return a zero value
after restoring the context.

Note that the order of saving register context into cpu_context
structure has to 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 v4:
- produce build-time error for ARM32 when CONFIG_SYSTEM_SUSPEND is enabled
- use register_t instead of uint64_t in cpu_context structure
---
 xen/arch/arm/arm64/head.S          | 91 +++++++++++++++++++++++++++++-
 xen/arch/arm/include/asm/suspend.h | 20 +++++++
 xen/arch/arm/suspend.c             | 23 +++++++-
 3 files changed, 130 insertions(+), 4 deletions(-)

diff --git a/xen/arch/arm/arm64/head.S b/xen/arch/arm/arm64/head.S
index 596e960152..ad8b48de3a 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 hyp_suspend(struct cpu_context *ptr)
+ *
+ * x0 - pointer to the storage where callee's context will be saved
+ *
+ * CPU context saved here will be restored on resume in hyp_resume function.
+ * hyp_suspend shall return a non-zero value. Upon restoring context
+ * hyp_resume shall return value zero instead. From C code that invokes
+ * hyp_suspend, the return value is interpreted to determine whether the context
+ * is saved (hyp_suspend) or restored (hyp_resume).
+ */
+FUNC(hyp_suspend)
+        /* 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
+
+        /* hyp_suspend must return a non-zero value */
+        mov     x0, #1
+        ret
+END(hyp_suspend)
 
 FUNC(hyp_resume)
         /* Initialize the UART if earlyprintk has been enabled. */
@@ -580,7 +626,50 @@ FUNC(hyp_resume)
         b     enable_secondary_cpu_mm
 
 mmu_resumed:
-        b .
+        /*
+         * Now we can access the cpu_context, so restore the context here
+         * TODO: can we reuse __context_switch and saved_context struct here ?
+         */
+        ldr     x0, =cpu_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 appear as
+         * return from hyp_suspend. To distinguish a return from hyp_suspend
+         * 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 */
diff --git a/xen/arch/arm/include/asm/suspend.h b/xen/arch/arm/include/asm/suspend.h
index 55041a5d06..ae71ccb87b 100644
--- a/xen/arch/arm/include/asm/suspend.h
+++ b/xen/arch/arm/include/asm/suspend.h
@@ -5,9 +5,29 @@
 
 #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 host_system_suspend(void);
 
 void hyp_resume(void);
+int hyp_suspend(struct cpu_context *ptr);
 
 #endif /* CONFIG_SYSTEM_SUSPEND */
 
diff --git a/xen/arch/arm/suspend.c b/xen/arch/arm/suspend.c
index 08b6acaede..b5398e5ca6 100644
--- a/xen/arch/arm/suspend.c
+++ b/xen/arch/arm/suspend.c
@@ -1,6 +1,7 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
 #include <asm/psci.h>
+#include <asm/suspend.h>
 #include <xen/console.h>
 #include <xen/cpu.h>
 #include <xen/llc-coloring.h>
@@ -17,6 +18,8 @@
  *  - Investigate feasibility and need for implementing system suspend on ARM32
  */
 
+struct cpu_context cpu_context;
+
 /* Xen suspend. Note: data is not used (suspend is the suspend to RAM) */
 static long system_suspend(void *data)
 {
@@ -73,9 +76,23 @@ static long system_suspend(void *data)
      */
     update_boot_mapping(true);
 
-    status = call_psci_system_suspend();
-    if ( status )
-        dprintk(XENLOG_WARNING, "PSCI system suspend failed, err=%d\n", status);
+    if ( hyp_suspend(&cpu_context) )
+    {
+        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 hyp_suspend. The
+         * difference in returning from hyp_suspend 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);
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 20:51:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 20:51:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078034.1439060 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulZU2-00049z-VX; Mon, 11 Aug 2025 20:51:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078034.1439060; Mon, 11 Aug 2025 20:51: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 1ulZU2-000495-R5; Mon, 11 Aug 2025 20:51:06 +0000
Received: by outflank-mailman (input) for mailman id 1078034;
 Mon, 11 Aug 2025 20:51:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=21ui=2X=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1ulZSC-00063z-2W
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 20:49:12 +0000
Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com
 [2a00:1450:4864:20::635])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a0ebe8ef-76f4-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 22:49:09 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-af96fba3b37so901496666b.3
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 13:49:09 -0700 (PDT)
Received: from yp-VivoBook-ASUSLaptop-M1503QA-M1503QA.Dlink ([77.52.179.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a0a3bd2sm2065710466b.54.2025.08.11.13.49.06
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Aug 2025 13: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>
X-Inumbo-ID: a0ebe8ef-76f4-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754945348; x=1755550148; 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=dIP/M+K6/8Gg84x9uEVu6zbj0BNJ3eSed4CBkvQHa9c=;
        b=VWcGAPZBpERMBeTvivvo/Idm/+fmaWcFlyjDHpZlWGzmURa/1uYPnEXB4uOztAdOKu
         xgt2A3dxWzuQu9sPdim1ptnWfjwwzE1YdJQRHSpJQ99L5wZrtayhbW3pfZfr9r3TsS9H
         Nnf/hFXUxdVTU/3FrCd98Itolan6xi4pf8wCceQ5aPmSJQkbaBfBDcHBEkNdW9ZdwjvK
         IwNUs3la0eOxKwhcaDalIwZl8gsuavq3wBvd4DLLS4OHSxvQz3GA4Oow3udUAmgcpqiQ
         4ZSzMYjtKRc1ogxveEvfiMkXQ6JLkKad6ZRmh/8XacsEDwgiMkXeKTAFOeteNq3kI260
         MRXA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754945348; x=1755550148;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=dIP/M+K6/8Gg84x9uEVu6zbj0BNJ3eSed4CBkvQHa9c=;
        b=WJHhhjUX8Q9BKXdr9BAKU0fo6PM0CenhJgRNycezTXMVMWhDCELPsia3TMlX22TUW1
         am0dGXhblYypHIwHYC6PoKQmR137onITbkM6wa0WR79onsei3muWAYMM0Gk7JD9qPXe3
         tm11xqohfLBsJCuN3EjCQuZoMJ7ANu0yD0XPkpGl+xORRxCJmWPAeRa7I/YqcrULJMEa
         DNiyAPQO5Rtzlyv9MOmiUlH2WMyvQmCiVNev43BtK5KzlTOYZhmkzp5VZajicZCCzMX7
         JWYlLdB03+zOxiohI5xKLGuX1wBI9gD7Z2Af4VwiJha7xAQG4k8HKWqdmCZwR51WVld3
         FuKA==
X-Gm-Message-State: AOJu0YxClLPgAUf0qe6eqeWdmKZ8f/VbRW2I1PAKnMumpvlt46Iln6nz
	M/H9MrwC+dmtctK0yPK5+rq50HkzrgKTNcGdMKnpeUO1q2P2vAoERb6Ky4W6Dw==
X-Gm-Gg: ASbGncsGho4WsvChTsQRg6FwKnQl8QSbo2UhhrlzeltcmZVpxIx2lpTTg+raTHndCmJ
	7+OJv4hK9hO4HN1GggYUwvOy/aKtkVeG2MhOg040mpFWCXr1/JVT7RW2vtDMq/MZSmykybHhAuM
	IhB65pXKXAitIKJZFc57bT+k6SL1cPRR+c8GxXP/Xq+91t++OR6t42p8vppYlPlKakO3wkK8cj9
	f5V98NDTFXqHSOD1Tu3g6cWW3vmAygGPn0PzV3xmohyg35LmyHH/HEktn5gh4+RVu+e2RiOFXtK
	dur5MALwICrehLr9yHTbqd0tcWSzz6jFxaLet/N8Y1Tq92YhGSRIWEY4M31/0/HtIRLOsuqFVEe
	oChyBTTUX20oz7HF20jYAT9Zn7+HjP3tamoE9qPRNAvB1VSDyAGz3b9XudaKJam505yM=
X-Google-Smtp-Source: AGHT+IEJtWYk61Cx5sHSdxBIm2ViHlPQLCpjRbplQ6lagreygGR+Aj8C787BawE2mZ9+xtZbssyL4A==
X-Received: by 2002:a17:907:9811:b0:ad8:a04e:dbd9 with SMTP id a640c23a62f3a-afa1e12c984mr75823566b.31.1754945348421;
        Mon, 11 Aug 2025 13:49:08 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@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>,
	Mykola Kvach <mykola_kvach@epam.com>,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH v5 12/12] xen/arm: Suspend/resume IOMMU on Xen suspend/resume
Date: Mon, 11 Aug 2025 23:48:08 +0300
Message-ID: <821e0762f64c8b33260a59c672eabf1da5fb4dd4.1754943875.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.1754943874.git.mykola_kvach@epam.com>
References: <cover.1754943874.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

This is done using generic iommu_suspend/resume functions that cause
IOMMU driver specific suspend/resume handlers to be called for enabled
IOMMU (if one has suspend/resume driver handlers implemented).

These handlers work only when IPMMU-VMSA is used; otherwise,
we return an error during system suspend requests.

Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
Tested-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
---
 xen/arch/arm/suspend.c | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/xen/arch/arm/suspend.c b/xen/arch/arm/suspend.c
index b5398e5ca6..cb86426ebd 100644
--- a/xen/arch/arm/suspend.c
+++ b/xen/arch/arm/suspend.c
@@ -4,6 +4,7 @@
 #include <asm/suspend.h>
 #include <xen/console.h>
 #include <xen/cpu.h>
+#include <xen/iommu.h>
 #include <xen/llc-coloring.h>
 #include <xen/sched.h>
 
@@ -49,6 +50,13 @@ static long system_suspend(void *data)
 
     time_suspend();
 
+    status = iommu_suspend();
+    if ( status )
+    {
+        system_state = SYS_STATE_resume;
+        goto resume_time;
+    }
+
     local_irq_save(flags);
     status = gic_suspend();
     if ( status )
@@ -105,6 +113,10 @@ static long system_suspend(void *data)
 
  resume_irqs:
     local_irq_restore(flags);
+
+    iommu_resume();
+
+ resume_time:
     time_resume();
 
  resume_nonboot_cpus:
@@ -140,6 +152,15 @@ int host_system_suspend(void)
         return -ENOSYS;
     }
 
+    /* TODO: drop check once suspend/resume support for SMMU is implemented */
+#ifndef CONFIG_IPMMU_VMSA
+    if ( iommu_enabled )
+    {
+        dprintk(XENLOG_ERR, "IOMMU is enabled, suspend not supported yet\n");
+        return -ENOSYS;
+    }
+#endif
+
     /*
      * system_suspend should be called when Dom0 finalizes the suspend
      * procedure from its boot core (VCPU#0). However, Dom0's VCPU#0 could
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 20:51:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 20:51:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078031.1439056 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulZU2-00048P-PI; Mon, 11 Aug 2025 20:51:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078031.1439056; Mon, 11 Aug 2025 20:51: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 1ulZU2-00048I-K4; Mon, 11 Aug 2025 20:51:06 +0000
Received: by outflank-mailman (input) for mailman id 1078031;
 Mon, 11 Aug 2025 20:51:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=21ui=2X=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1ulZSA-00063z-2n
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 20:49:10 +0000
Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com
 [2a00:1450:4864:20::634])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9fa45a96-76f4-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 22:49:07 +0200 (CEST)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-af94e75445dso864827266b.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 13:49:07 -0700 (PDT)
Received: from yp-VivoBook-ASUSLaptop-M1503QA-M1503QA.Dlink ([77.52.179.38])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a0a3bd2sm2065710466b.54.2025.08.11.13.49.04
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 11 Aug 2025 13: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>
X-Inumbo-ID: 9fa45a96-76f4-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754945346; x=1755550146; 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=DKWyc9yALBseWqY+orGA6xUBZdWqywovXSPAegimSF0=;
        b=JY7DhqLC4jP6D+BTpGs5YLEur644BkZv1h+Bk53KRz3ABuQioO1y9u7pa1aRh8kMh/
         jZQygWQBY4jCk0K2uURsJAMZqwPR7ryX08y6a43UpHM66W7z2WIx33SdWEmULYM3uaae
         5BeE35Tq89hH7KxNSWQiuyDcgsR0VdpLn49bC+gSQgUyNOYzXz7iKlfoTJhjhciEjIp9
         GzJwOZQk6UuE/VfleSPTEkCnci/r085kxpwlnZZu9H5J3vpbbSJewhwmsVJMKGUxyl7a
         YOxVIwIBdKQ69MGMpsbW0DGMqwn7AXus4RP9ozYuZbzOFVoCwhqpssxxJrabUpBRCeIs
         fWoA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754945346; x=1755550146;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=DKWyc9yALBseWqY+orGA6xUBZdWqywovXSPAegimSF0=;
        b=mS2wys4dx9zXodZmWxgk+zbkFzuIvyNeZC2tb15BR/oeysnqnkGjqc05u1DVrHJJsY
         WCzzwS6Wtq8wucsGRqZD9pW2E35WCF4bXMH2THA8u9X0h1DAkt3ipyKJwjk4jz2AJSMr
         WfzaDoPfP4mhUXNslTFJKMn8YfNxSmN6L+7nprxZMo3/HmFU13ut4AW8MvArqG/DocNg
         LGi13hythkxnTULxveh9UWEDSqGu5tGGrFFAOymQz6s9dslHO48Qgxi7RrxSC8z8KSFf
         cduveHVhOOl1PLrEiZ3PDnqJ/kdMzhKyrjLcvME1sTMlesnenzyZg72a2JhuJaBofklK
         p7Cg==
X-Gm-Message-State: AOJu0Yzm1A8/JuVc9nqWbQViG03vRheCVt/h4unM82DvsZF6tgdn3Mte
	Kp3ggu6+92g3LkZEcuNY05PCIP8+EN2RPZruypIJRG0JaZY2xqVA7+WejuufpQ==
X-Gm-Gg: ASbGncsL9GD1VP5PT77/pDqHJF9f5RPfO2y5hAwZxDvL3yAf8eS2ZSENdwnSfYzKU/h
	bp+aO/gQe31uMIuReoNnoEOOLcuyo4wNbF2gTU6tpY9s6cjTVOcyvCLOgf/h8YKftEr3JDEPrHX
	bmhVyRtUscOtg4GJtACBFbZLGbTwPWIG5CnH2TxVSBQ4s7DYL5H4Cv1RldTFWxsVuShmIfL8Tv4
	PXvEOmJKjcATpaRBOcbHPCdEdnGowJod7YeHPduHzNY7mfQ7txj6vUZ0+4Di9VqmrVSVT1YhEiG
	QCdojfX1a2WTkNY0rH7g/T2u2zAssraAXdQDHxLiPYnb5Lgh0kD4RvlNBe2e56ITx+eysZSfZRo
	mx4oVBT0X36WSN4aIeSDHAXr4S1tfxY4sk5RCbjc+BelDd4ArzIE+sRtS7lI55H9mtmpbdTXoQv
	ioFA==
X-Google-Smtp-Source: AGHT+IEvypqo7NpLmFUTRzjOWjD+M/zWBTlCHQtbMInufWtjBmIYbsnsHqopRx+UCqdZKj8BBLeoGw==
X-Received: by 2002:a17:906:ef0b:b0:ade:4121:8d52 with SMTP id a640c23a62f3a-afa1e040d30mr79910766b.16.1754945346249;
        Mon, 11 Aug 2025 13:49:06 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@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>,
	Mykola Kvach <mykola_kvach@epam.com>
Subject: [PATCH v5 11/12] iommu/ipmmu-vmsa: Implement suspend/resume callbacks
Date: Mon, 11 Aug 2025 23:48:07 +0300
Message-ID: <1689d707b930b1ea4f63cc150810e548962cda81.1754943875.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.1754943874.git.mykola_kvach@epam.com>
References: <cover.1754943874.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

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>
---
 xen/drivers/passthrough/arm/ipmmu-vmsa.c | 269 +++++++++++++++++++++++
 1 file changed, 269 insertions(+)

diff --git a/xen/drivers/passthrough/arm/ipmmu-vmsa.c b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
index dac0dd6d46..ced762657a 100644
--- a/xen/drivers/passthrough/arm/ipmmu-vmsa.c
+++ b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
@@ -58,6 +58,8 @@
 #define dev_print(dev, lvl, fmt, ...)    \
     printk(lvl "ipmmu: %s: " fmt, dev_name(dev), ## __VA_ARGS__)
 
+#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, ...)    \
@@ -117,6 +119,23 @@ struct ipmmu_features {
     unsigned int imuctr_ttsel_mask;
 };
 
+#ifdef CONFIG_SYSTEM_SUSPEND
+
+struct hw_register {
+    const char *reg_name;
+    unsigned int reg_offset;
+    unsigned int reg_data;
+};
+
+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;
@@ -129,6 +148,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 hw_register *reg_backup[IPMMU_CTX_MAX];
+#endif
 };
 
 /*
@@ -534,6 +556,235 @@ 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);
+
+#define HW_REGISTER_BACKUP_SIZE 4
+
+static struct hw_register root_pgtable[IPMMU_CTX_MAX][HW_REGISTER_BACKUP_SIZE] = {
+    [0 ... (IPMMU_CTX_MAX - 1)] = {
+        {"IMTTLBR0", IMTTLBR0, 0},
+        {"IMTTUBR0", IMTTUBR0, 0},
+        {"IMTTBCR",  IMTTBCR,  0},
+        {"IMCTR",    IMCTR,    0},
+    }
+};
+
+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 hw_register *reg = mmu->reg_backup[domain->context_id];
+    unsigned int i;
+
+    dev_dbg(mmu->dev, "Handle domain context %u backup\n", domain->context_id);
+
+    for ( i = 0; i < HW_REGISTER_BACKUP_SIZE; i++ )
+        reg[i].reg_data = ipmmu_ctx_read_root(domain, reg[i].reg_offset);
+}
+
+static void ipmmu_domain_restore_context(struct ipmmu_vmsa_domain *domain)
+{
+    struct ipmmu_vmsa_device *mmu = domain->mmu->root;
+    struct hw_register *reg = mmu->reg_backup[domain->context_id];
+    unsigned int i;
+
+    dev_dbg(mmu->dev, "Handle domain context %u restore\n", domain->context_id);
+
+    for ( i = 0; i < HW_REGISTER_BACKUP_SIZE; i++ )
+    {
+        if ( reg[i].reg_offset != IMCTR )
+            ipmmu_ctx_write_root(domain, reg[i].reg_offset, reg[i].reg_data);
+        else
+            ipmmu_ctx_write_all(domain, reg[i].reg_offset,
+                                reg[i].reg_data | 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;
+}
+
+#endif /* CONFIG_SYSTEM_SUSPEND */
+
 static int ipmmu_domain_init_context(struct ipmmu_vmsa_domain *domain)
 {
     uint64_t ttbr;
@@ -546,6 +797,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
@@ -602,6 +856,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);
 }
 
@@ -1307,6 +1564,14 @@ static int ipmmu_add_device(u8 devfn, struct device *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
+
     dev_info(dev, "Added master device (IPMMU %s micro-TLBs %u)\n",
              dev_name(fwspec->iommu_dev), fwspec->num_ids);
 
@@ -1372,6 +1637,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.48.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 21:14:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 21:14:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078075.1439075 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulZqn-0008MR-PJ; Mon, 11 Aug 2025 21:14:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078075.1439075; Mon, 11 Aug 2025 21:14: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 1ulZqn-0008MK-MW; Mon, 11 Aug 2025 21:14:37 +0000
Received: by outflank-mailman (input) for mailman id 1078075;
 Mon, 11 Aug 2025 21:14:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nn8B=2X=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1ulZqm-0008ME-4e
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 21:14:36 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2cada37c-76f8-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 23:14:32 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 1F42D4EE0744;
 Mon, 11 Aug 2025 23:14:31 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2cada37c-76f8-11f0-b898-0df219b8e170
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=1754946871;
	b=EOwGbPJK/Q4spxeAV+e4aueL4DkiZ8Ps4UlrYSzgjxNU+mrd1sWGIpv5wu+EYuuyw+Go
	 Qx4QYPrWjGi5a1bD3cKsaj5zCWR9YzvqnJ3TEK1osm14h16ykJh/3ejJhuBdOBl5VsEEe
	 qi1jqKxWTm4l5cWXLhnOhmKXpuYJB8kyXktkhx1kI0Av6eij7U8yHkAeqZdO9mAPDIZye
	 Nf/ItNFF/rnW7O6STUKijeI3icPT6oL8iVDZYSFBGgHicvHGUYmmBTUprXuB4sMRYWZoa
	 ZlBMD2o11Ak0LyXjs8X4KwrvsXNhejKodzzHo4wIWw/nilYnIivR/IR6OIS7RvpsBnysP
	 4l+NEBotl7T1IBk0eiEnllggXcSMFI+osudYK/H0axQkdo0b9qrX3SGR6HD/RRK6wU0r5
	 YChS8vplr3iPGT4SZDifE3LkQroOcTHw8V2W+UpUOmUjJmwcfzkfv/6XqLbRfsOXGV/G7
	 gOPMhzsqxzrlvsB+ki4bw/o/Ic0hJX6yQjok7fSLiLyDasq2I8RxfCRErrxxZcTU+APHA
	 LIpgwBMBGvIJ4w2TiimuH7lYqJuoHkJ/X0qXnwbZn2sA4KuUBtUVxmsaq4YwmkqCde3JX
	 qpRaixVdYgN/oGqSFJYRVw2L0zy6deQniLpBgeKwc5k0segjHSwHX6FEpNC2TPA=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1754946871;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=kcFKs1Rrl9bmR44jzkik5PqdmBGE1cxvNNwL9ft+GzQ=;
	b=tka9eSZlZoaZVT8atfM6R4yEFqNZ4fAWQ71W03y3ChI9+c2ofjHqCt7toO5VPAFoQfqI
	 /9NuYBsyfzOZySg02wk/BUmK3NVmXTA0g44Uef9RPWdBcyW5G5jmKZvhG2zSFsVAXMU2H
	 vj+oV0lVC3ocFrmNvTvknCt3T8d7WNkQ1mIGvRwH9desgsUeI+kxVQIdEXPrjegYNj3qp
	 Z6i9VtTNfXcXb8XWxOuuebKRwsj9PsDKrgPiPLcsFr4kkOu7UGYdTiolo7tUXRnEwE85D
	 lTAM6B9utkrA8QOx3M9f18pVdSFM3n7KrJ/17pHAOVJi57hUdlKRjFtRBwd4Hb/gJtuqw
	 ZaKrhFysDQBjNnKeHWcxfmWBYyb70C+hIdiU0mbk7n25fI4okLCi9RXbwWX+c5Xg1CDTl
	 PN+GZn56x6jA4AfsZ0JjoD4F3QtS0NANukolZo2NZiN2KhY1BXab+HkrZqmNX0x4yb+Ar
	 hX8+n8xcYgvtWFnOE1YjUK4F0wbM9x2gmiKFFJGxJNmUf935xuqkLmjXR77xPKvGK3VI8
	 +qhPg7mHIgypDb7P+mkD5w2wxuOXyPkPhP09yAGFoPuWZQtsFIwuwG5MSfzZeIEDhg7HT
	 LBTooPTTjpX9PBVigHcsHh1UTHT9nT2IZ+dV1UVISZT7k4oc0y/MvMwjlfj/sSo=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1754946871; bh=s5COTrlItNwcj5eVX5W0Z4jL8xWyiQFjPT9842rw/uQ=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=Ddqy0vIVu3T15ZHHi/o6xEvpmVRzULc3Pc4bVdBYRJDeBafCe8+n39LBgkUQ+1q0G
	 Ls2R8ms5FD1jDDGHqMZMuq32VGnSYofqXERPtcbLWDlvRW/7pK6s7N2vekIOxh/DL+
	 +e9WddJVtYee4TXTMjVeFBV+U9jwu9AO6az7lBE/YvpQPcGiaeZlnyRl6nRmgOnQbM
	 3Ypi/YdDR3U8v08ZAAPKK1pZOtju7sN6TeeceGSM644cpWLm3AxbYQEo6phq0GSlrc
	 38V5OVEi7Y8nYlUH0Wtw0O2fcJoog/RLr9C1HsUNFtQBIcGNp/Y5mT5e0TyVyZcYqB
	 FUMwx/Dz+/+2A==
MIME-Version: 1.0
Date: Mon, 11 Aug 2025 23:14:31 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: xen-devel@lists.xenproject.org, Stefano Stabellini
 <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
 <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>
Subject: Re: [PATCH] misra: comment default case in single-clause switch
In-Reply-To: <1d3c5364b726e42a8c38c396f2e20efc52790f62.1754933752.git.dmytro_prokopchuk1@epam.com>
References: <1d3c5364b726e42a8c38c396f2e20efc52790f62.1754933752.git.dmytro_prokopchuk1@epam.com>
Message-ID: <d82cc723a17ec65f12fd60182fd6fe20@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

On 2025-08-11 19:36, Dmytro Prokopchuk1 wrote:
> MISRA Rule 16.4: Every switch statement shall have a default label. The
> default clause must contain either a statement or a comment prior to 
> its
> terminating break statement.
> 
> This change adds comments in default cases in single-clause switches to
> avoid violations of the rule where the `default` clause lacks a 
> suitable
> comment or statement.
> 

If you want to go this way then at least this config wants dropping:

-doc_begin="A switch statement with a single switch clause and no 
default label may be used in place of an equivalent if statement if it 
is considered to improve readability."
-config=MC3A2.R16.4,switch_clauses+={deliberate,"switch(1)&&default(0)"}
-doc_end

and probably this one too (haven't checked):

-doc_begin="A switch statement with a single switch clause and no 
default label may be used in place of an equivalent if statement if it 
is considered to improve readability."
-config=MC3A2.R16.6,switch_clauses+={deliberate, "default(0)"}
-doc_end

In the end it's a tradeoff; placing a comment with a suitable 
argumentation might be strictly better than simply tagging the tool 
report, at least from a developer's perspective. From a MISRA compliance 
standpoint in my opinion both are fine. Let's see what the maintainers 
think.

> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
> ---
>  xen/arch/arm/cpuerrata.c | 5 +++++
>  xen/arch/arm/gic.c       | 6 ++++++
>  xen/arch/arm/mmu/p2m.c   | 6 ++++++
>  xen/arch/arm/time.c      | 6 ++++++
>  xen/common/kexec.c       | 6 ++++++
>  5 files changed, 29 insertions(+)
> 
> diff --git a/xen/arch/arm/cpuerrata.c b/xen/arch/arm/cpuerrata.c
> index 17cf134f1b..e31c72694b 100644
> --- a/xen/arch/arm/cpuerrata.c
> +++ b/xen/arch/arm/cpuerrata.c
> @@ -735,6 +735,11 @@ static int cpu_errata_callback(struct 
> notifier_block *nfb,
>          rc = enable_nonboot_cpu_caps(arm_errata);
>          break;
>      default:
> +        /*
> +         * Default case left empty as other notifier actions do not 
> require handling here.
> +         * The single CPU_STARTING action in the switch is sufficient 
> because this function
> +         * specifically handles enabling errata workarounds during CPU 
> startup.
> +         */
>          break;
>      }
> 
> diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
> index e80fe0ca24..dfbb0dfe08 100644
> --- a/xen/arch/arm/gic.c
> +++ b/xen/arch/arm/gic.c
> @@ -436,6 +436,12 @@ static int cpu_gic_callback(struct notifier_block 
> *nfb,
>          release_irq(gic_hw_ops->info->maintenance_irq, NULL);
>          break;
>      default:
> +        /*
> +         * Default case left empty as other notifier actions do not 
> require handling here.
> +         * The CPU_DYING action specifically handles releasing 
> resources acquired by
> +         * init_maintenance_interrupt(), when the CPU is being taken 
> offline. Other CPU
> +         * actions do not require GIC-specific handling.
> +         */
>          break;
>      }
> 
> diff --git a/xen/arch/arm/mmu/p2m.c b/xen/arch/arm/mmu/p2m.c
> index 51abf3504f..d1f0ae0226 100644
> --- a/xen/arch/arm/mmu/p2m.c
> +++ b/xen/arch/arm/mmu/p2m.c
> @@ -1828,6 +1828,12 @@ static int cpu_virt_paging_callback(struct 
> notifier_block *nfb,
>          setup_virt_paging_one(NULL);
>          break;
>      default:
> +        /*
> +         * Default case left empty as other notifier actions do not 
> require handling here.
> +         * The CPU_STARTING action is specifically handled because 
> this function sets up
> +         * virtual paging for CPUs, particularly for non-boot CPUs 
> during hotplug. Other
> +         * actions do not involve virtual paging setup.
> +         */
>          break;
>      }
> 
> diff --git a/xen/arch/arm/time.c b/xen/arch/arm/time.c
> index e74d30d258..4776110d97 100644
> --- a/xen/arch/arm/time.c
> +++ b/xen/arch/arm/time.c
> @@ -382,6 +382,12 @@ static int cpu_time_callback(struct notifier_block 
> *nfb,
>          deinit_timer_interrupt();
>          break;
>      default:
> +        /*
> +         * Default case left empty as other notifier actions do not 
> require handling here.
> +         * The CPU_DYING action is specifically handled to revert 
> actions done in
> +         * init_timer_interrupt() and properly disable timer 
> interrupts on the CPU being
> +         * taken offline. Other actions do not involve timer 
> deinitialization.
> +         */
>          break;
>      }
> 
> diff --git a/xen/common/kexec.c b/xen/common/kexec.c
> index 84fe8c3597..0f78087a4a 100644
> --- a/xen/common/kexec.c
> +++ b/xen/common/kexec.c
> @@ -549,6 +549,12 @@ static int cf_check cpu_callback(
>          kexec_init_cpu_notes(cpu);
>          break;
>      default:
> +        /*
> +         * Default case left empty as other notifier actions do not 
> require handling here.
> +         * The CPU_UP_PREPARE action is specifically handled to 
> allocate crash note buffers
> +         * for a newly onlined CPU. Other actions do not pertain to 
> crash note allocation
> +         * or memory preservation for kexec.
> +         */
>          break;
>      }
>      return NOTIFY_DONE;

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 21:22:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 21:22:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078084.1439086 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulZy0-0001nL-Fh; Mon, 11 Aug 2025 21:22:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078084.1439086; Mon, 11 Aug 2025 21:22:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulZy0-0001nE-CL; Mon, 11 Aug 2025 21:22:04 +0000
Received: by outflank-mailman (input) for mailman id 1078084;
 Mon, 11 Aug 2025 21:22:03 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1ulZxz-0001n4-As
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 21:22:03 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ulZxy-000FNA-18;
 Mon, 11 Aug 2025 21:22:02 +0000
Received: from [2a02:8012:3a1:0:80f0:1985:f3d0:f76b]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ulZxy-000a7l-1p;
 Mon, 11 Aug 2025 21:22:02 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=7PTHGPDw9778ffCut53tnJbfFF7vp0y3VWK3bvlyvRo=; b=GE92PZtDMDhuTDcSsVCN4iNtyE
	SlPRHgPxWTyq0o67AfJbJwzOqmZBKT7VNXADtDn6GIeG+MivI8OZfvmC+kFXlLZCR4A4Gdou/hnSB
	0qsXeDxZFcMAc3KT8HQsN6IxvLfw2s5gUoo98SjSWDCtvqbxn3dKTT7mQ5xspeA3+PL4=;
Message-ID: <59396fd1-ca82-4655-9dcf-ec36e0d51ffc@xen.org>
Date: Mon, 11 Aug 2025 22:21:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] misra: add ASSERT_UNREACHABLE() in default clauses
Content-Language: en-GB
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: 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: <7cd71ed21383c189fedb3250ddde54a593f7f98b.1754944131.git.dmytro_prokopchuk1@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <7cd71ed21383c189fedb3250ddde54a593f7f98b.1754944131.git.dmytro_prokopchuk1@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 11/08/2025 21:30, Dmytro Prokopchuk1 wrote:
> MISRA Rule 16.4: Every switch statement shall have a default label.
> The default clause must contain either a statement or a comment
> prior to its terminating break statement.
> 
> However, there is a documented rule that apply to the Xen in
> 'docs/misra/rules.rst':
> Switch statements with integer types as controlling expression
> should have a default label:
>   - if the switch is expected to handle all possible cases
>    explicitly, then a default label shall be added to handle
>    unexpected error conditions, using BUG(), ASSERT(), WARN(),
>    domain_crash(), or other appropriate methods;
 > > These changes add `ASSERT_UNREACHABLE()` macro to the default clause of
> switch statements that already explicitly handle all possible cases. This
> ensures compliance with MISRA, avoids undefined behavior in unreachable
> paths, and helps detect errors during development.
> 
> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
> ---
>   xen/arch/arm/decode.c      |  3 +++
>   xen/arch/arm/guest_walk.c  |  4 ++++
>   xen/common/grant_table.c   | 10 ++++++++--
>   xen/drivers/char/console.c |  3 +++
>   4 files changed, 18 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/arch/arm/decode.c b/xen/arch/arm/decode.c
> index 2537dbebc1..cb64137b3b 100644
> --- a/xen/arch/arm/decode.c
> +++ b/xen/arch/arm/decode.c
> @@ -178,6 +178,9 @@ static int decode_thumb(register_t pc, struct hsr_dabt *dabt)
>           case 3: /* Signed byte */
>               update_dabt(dabt, reg, 0, true);
>               break;
> +        default:
> +            ASSERT_UNREACHABLE();
> +            break;

I am not sure about this one. Can't the compiler or even ECLAIR detect 
that the value we match "opB & 3" and the 4 different values are handled?

 >           }>
>           break;
> diff --git a/xen/arch/arm/guest_walk.c b/xen/arch/arm/guest_walk.c
> index 09fe486598..9199a29602 100644
> --- a/xen/arch/arm/guest_walk.c
> +++ b/xen/arch/arm/guest_walk.c
> @@ -167,6 +167,10 @@ static bool guest_walk_sd(const struct vcpu *v,
>               *perms |= GV2M_EXEC;
>   
>           break;
> +
> +        default:
> +            ASSERT_UNREACHABLE();
> +            break;
>       }
>   
>       return true;
> diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
> index cf131c43a1..60fc47f0c8 100644
> --- a/xen/common/grant_table.c
> +++ b/xen/common/grant_table.c
> @@ -330,9 +330,12 @@ shared_entry_header(struct grant_table *t, grant_ref_t ref)
>           /* Returned values should be independent of speculative execution */
>           block_speculation();
>           return &shared_entry_v2(t, ref).hdr;
> +
> +    default:
> +        ASSERT_UNREACHABLE();
> +        break;
>       }
>   
> -    ASSERT_UNREACHABLE();
 >       block_speculation();>
>       return NULL;

I know you are trying to apply the MISRA rule. But this is odd that you 
move the ASSERT_UNREACHABLE() but then code after is still only 
reachable from the default. In fact, this is introducing a risk if 
someone decides to add a new case but then forgot to return a value.

By moving the two other lines, the compiler should be able to throw an 
error if you forgot a return.


> @@ -727,10 +730,13 @@ static unsigned int nr_grant_entries(struct grant_table *gt)
>           /* Make sure we return a value independently of speculative execution */
>           block_speculation();
>           return f2e(nr_grant_frames(gt), 2);
> +
> +    default:
> +        ASSERT_UNREACHABLE();
> +        break;
>   #undef f2e
>       }
>   
> -    ASSERT_UNREACHABLE();
>       block_speculation();
>   
>       return 0;

Same remark here.

> diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
> index 9bd5b4825d..608616f2af 100644
> --- a/xen/drivers/char/console.c
> +++ b/xen/drivers/char/console.c
> @@ -889,6 +889,9 @@ static int cf_check parse_console_timestamps(const char *s)
>           opt_con_timestamp_mode = TSM_DATE;
>           con_timestamp_mode_upd(param_2_parfs(parse_console_timestamps));
>           return 0;
> +    default:
> +        ASSERT_UNREACHABLE();

Looking at the implementation of parse_bool() it can return -1 if the 
input provided is incorrect. So I don't think this path should contain 
ASSERT_UNREACHABLE(). In fact, it should follow this directive:

"
        - if the switch is expected to handle a subset of all possible
          cases, then an empty default label shall be added with an
          in-code comment on top of the default label with a reason and
          when possible a more detailed explanation. Example::

              default:
                  /* Notifier pattern */
                  break;
"

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 21:25:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 21:25:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078093.1439096 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ula1W-0002KL-TO; Mon, 11 Aug 2025 21:25:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078093.1439096; Mon, 11 Aug 2025 21:25: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 1ula1W-0002KE-QH; Mon, 11 Aug 2025 21:25:42 +0000
Received: by outflank-mailman (input) for mailman id 1078093;
 Mon, 11 Aug 2025 21:25:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Nn8B=2X=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1ula1V-0002K8-3P
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 21:25:41 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b9f4e13d-76f9-11f0-b898-0df219b8e170;
 Mon, 11 Aug 2025 23:25:38 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 5FC5C4EE0744;
 Mon, 11 Aug 2025 23:25:37 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b9f4e13d-76f9-11f0-b898-0df219b8e170
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=1754947537;
	b=PDLqaUigEukRZs4b8BBjZVlq4phnPjphoykEWpjxQ/qihUbeb6cMhjUaIFGKY+axkSZg
	 dpAdIBDEFLH4s5fbp5IGzwd3GcrAZQXENu+KTlNjnXHdlXlAL5H0eOhz/4TFsqr8xbA0O
	 ZJVijniCyeYd4BwCVo4i2GWtu4Vdt8iaLlPvMUdn2ActPYv9r9wTdh9p+N31gEAlRKj6C
	 3gdtBXpzRd+SUfW7yGk72bA1b+QgQ9xQJSkrDs267FFKtHrBQ2bPVvIC0Ni5VH1e6JzI8
	 bPLMi9a9NUku6BcirEzQhuCDDueQPyIi/FbENFG9mAH1u7nLyUNLRzL4xNXKunPui07MN
	 SaXYyUWEULswYkUbQgjnAFwkU5LrrM4qRTI658U/4IDlvxLeK/RPla8qhlPOzjFxR0A19
	 PmhFTyYxNizxqhCdVexWEEZ+GZEq7JYJJ95mMOFVniXJW71T26WnqKKHsdn526Z3C/lhT
	 bYpHGmPw2v4Vuks23Nn6HAUIYtS1uk3bFrglI4zBekvHg6z/FbGymBXg9PyQjkfrV3fQw
	 ubgf6m/ZmOhTxRdtMROlePl7xTUD9i59WF99z+7ZGszorWu86s/JJyLjLl2KLIQvYRspT
	 5nQLdDrg58a0xaoHeouTcG5J1RN84+j0u36quGS+AReqL4Ma/XEEpnpFwa1umRA=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1754947537;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=UgZ4TG4o7/7PqJ4miBtWdDBiHVQ9ECM+PYUK+LLCT5s=;
	b=UJKR4dnQZ7M/ceM8XeO7491ETe8WwiyxwvNiP6zv7zI5J8wVMNOYUwMiyRi951W1JY9c
	 U449ABrmkoKOsi5qWw54vexroAu31TN995YtVQ1oxgT1R5hBd1rnPJCixHhjvhCIjVXzR
	 dyoLwC9JtT/8KhDZU+WGo4XQ8Zom5TeR4A2q9wWUd9y52A2wpEkqfK26ReRJ3ABuukhKd
	 KWVvj9s6S8M3pbgz8wbwagPXM8X+b0a1tQgXsTeUyWbloVDV0XPx6snV6Wm05MckjtP+L
	 kpLd1wlKyQGXtrP4SRUNCq1tYlk7CReZSrDkmQdJv5jnNCWefWz0tDdLeFbGagygHt6Nl
	 7ib3MKxTarXFDZXBkgQJrx1x8/GnNLD90vLNxeowcuVOIL2NpUuQKz3s3bmP9HZX+yoG/
	 g/dtfOmG3totadCRjxe7GjTmDjGZslUHZuu9ppGX4gDHxDoWLilg1bI+B81+2dqppBygJ
	 N1rlmsHey0HQkbbH/N06qQR+7arxuHecjlOvWN8Ztmp/EH7Pp/UTV/qeCpzf0MMSicAi6
	 MPD/vzuxyjjXx4CJD/MO54IpmBI1oKm4I6Vut5kdeDxdAId68Ug5j/e2FNnHorBzQpaB0
	 /TxGWdrAmk23pdx/QUt8W7K1rQz8vFroRgO8j54KYY3qSGp08R0Hdi2KdhfZH/0=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1754947537; bh=JYz7HgVB1qnQRIYKNZdmeJ5xyFJJfcd93eXhDO1dtNE=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=Pctmzz4VCytXQ6lIYYgEUV0Acn9CBWw6cEg6VWUL/pLO8R96TEPu78FsM5eiYNL3i
	 ijw/Mbhd8CKi9EfBp1jeT9IG2WzR+4CfgN5/wqEAGHbP+ZWsPP/qqpEbX+m1wrUvbK
	 Wuu0/kfEax1+YqXoBiECj37E4E02V4c1Dp2ukrB8wmcAgoats94MVWMrDiO6inuTZk
	 5UK2r2x3laq+BTFgZ1IGrEtQ/HW7vKwGBDNzXuXLN0LGCwhYCIChiGA91tAB3BiF5m
	 hgJ5hH0VOjs8H+UxJx+xtSKJ5qTEw8NzblBTdcQw09qMvkfUG0PrRxiXdlfoUGhw9c
	 +60s7zDu1B1dw==
MIME-Version: 1.0
Date: Mon, 11 Aug 2025 23:25:37 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: xen-devel@lists.xenproject.org, Stefano Stabellini
 <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
 <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, 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>
Subject: Re: [PATCH] misra: add ASSERT_UNREACHABLE() in default clauses
In-Reply-To: <7cd71ed21383c189fedb3250ddde54a593f7f98b.1754944131.git.dmytro_prokopchuk1@epam.com>
References: <7cd71ed21383c189fedb3250ddde54a593f7f98b.1754944131.git.dmytro_prokopchuk1@epam.com>
Message-ID: <a318ef2d5cad37d2fda0bb4a52c90964@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

On 2025-08-11 22:30, Dmytro Prokopchuk1 wrote:
> MISRA Rule 16.4: Every switch statement shall have a default label.
> The default clause must contain either a statement or a comment
> prior to its terminating break statement.
> 
> However, there is a documented rule that apply to the Xen in
> 'docs/misra/rules.rst':
> Switch statements with integer types as controlling expression
> should have a default label:
>  - if the switch is expected to handle all possible cases
>   explicitly, then a default label shall be added to handle
>   unexpected error conditions, using BUG(), ASSERT(), WARN(),
>   domain_crash(), or other appropriate methods;
> 
> These changes add `ASSERT_UNREACHABLE()` macro to the default clause of
> switch statements that already explicitly handle all possible cases. 
> This
> ensures compliance with MISRA, avoids undefined behavior in unreachable
> paths, and helps detect errors during development.
> 
> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
> ---
>  xen/arch/arm/decode.c      |  3 +++
>  xen/arch/arm/guest_walk.c  |  4 ++++
>  xen/common/grant_table.c   | 10 ++++++++--
>  xen/drivers/char/console.c |  3 +++
>  4 files changed, 18 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/arch/arm/decode.c b/xen/arch/arm/decode.c
> index 2537dbebc1..cb64137b3b 100644
> --- a/xen/arch/arm/decode.c
> +++ b/xen/arch/arm/decode.c
> @@ -178,6 +178,9 @@ static int decode_thumb(register_t pc, struct 
> hsr_dabt *dabt)
>          case 3: /* Signed byte */
>              update_dabt(dabt, reg, 0, true);
>              break;
> +        default:
> +            ASSERT_UNREACHABLE();
> +            break;
>          }
> 

I think this is fine, and there should be no problems with the break 
being unreachable in some configs due to the call property for 
ASSERT_UNREACHABLE

-doc_begin="Calls to function `__builtin_unreachable()' in the expansion 
of macro
`ASSERT_UNREACHABLE()' are not considered to have the `noreturn' 
property."
-call_properties+={"name(__builtin_unreachable)&&stmt(begin(any_exp(macro(name(ASSERT_UNREACHABLE)))))", 
{"noreturn(false)"}}
-doc_end


>          break;
> diff --git a/xen/arch/arm/guest_walk.c b/xen/arch/arm/guest_walk.c
> index 09fe486598..9199a29602 100644
> --- a/xen/arch/arm/guest_walk.c
> +++ b/xen/arch/arm/guest_walk.c
> @@ -167,6 +167,10 @@ static bool guest_walk_sd(const struct vcpu *v,
>              *perms |= GV2M_EXEC;
> 
>          break;
> +
> +        default:
> +            ASSERT_UNREACHABLE();
> +            break;
>      }
> 

This one instead, besides being indented misleadingly IMO, should 
instead be on an enum instead of

/*
  * First level translation table descriptor types used by the AArch32
  * short-descriptor translation table format.
  */
#define L1DESC_INVALID                      (0)
#define L1DESC_PAGE_TABLE                   (1)
#define L1DESC_SECTION                      (2)
#define L1DESC_SECTION_PXN                  (3)

so that

-doc_begin="Switch statements having a controlling expression of enum 
type deliberately do not have a default case: gcc -Wall enables -Wswitch 
which warns (and breaks the build as we use -Werror) if one of the enum 
labels is missing from the switch."
-config=MC3A2.R16.4,reports+={deliberate,'any_area(kind(context)&&^.* 
has no 
`default.*$&&stmt(node(switch_stmt)&&child(cond,skip(__non_syntactic_paren_stmts,type(canonical(enum_underlying_type(any())))))))'}
-doc_end

applies. What do you think?

>      return true;
> diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
> index cf131c43a1..60fc47f0c8 100644
> --- a/xen/common/grant_table.c
> +++ b/xen/common/grant_table.c
> @@ -330,9 +330,12 @@ shared_entry_header(struct grant_table *t, 
> grant_ref_t ref)
>          /* Returned values should be independent of speculative 
> execution */
>          block_speculation();
>          return &shared_entry_v2(t, ref).hdr;
> +
> +    default:
> +        ASSERT_UNREACHABLE();
> +        break;
>      }
> 
> -    ASSERT_UNREACHABLE();
>      block_speculation();
> 

This is ok I think, same as (1).

>      return NULL;
> @@ -727,10 +730,13 @@ static unsigned int nr_grant_entries(struct 
> grant_table *gt)
>          /* Make sure we return a value independently of speculative 
> execution */
>          block_speculation();
>          return f2e(nr_grant_frames(gt), 2);
> +
> +    default:
> +        ASSERT_UNREACHABLE();
> +        break;
>  #undef f2e
>      }
> 
> -    ASSERT_UNREACHABLE();
>      block_speculation();
> 

Same here.

>      return 0;
> diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
> index 9bd5b4825d..608616f2af 100644
> --- a/xen/drivers/char/console.c
> +++ b/xen/drivers/char/console.c
> @@ -889,6 +889,9 @@ static int cf_check parse_console_timestamps(const 
> char *s)
>          opt_con_timestamp_mode = TSM_DATE;
>          
> con_timestamp_mode_upd(param_2_parfs(parse_console_timestamps));
>          return 0;
> +    default:
> +        ASSERT_UNREACHABLE();
> +        break;
>      }
>      if ( *s == '\0' || /* Compat for old booleanparam() */
>           !strcmp(s, "date") )

And here as well.

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 21:38:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 21:38:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078106.1439105 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulaDo-0004Ez-0D; Mon, 11 Aug 2025 21:38:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078106.1439105; Mon, 11 Aug 2025 21:38: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 1ulaDn-0004Es-TL; Mon, 11 Aug 2025 21:38:23 +0000
Received: by outflank-mailman (input) for mailman id 1078106;
 Mon, 11 Aug 2025 21:38:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6XhN=2X=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1ulaDm-0004Em-Ot
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 21:38:22 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7f373f0a-76fb-11f0-a327-13f23c93f187;
 Mon, 11 Aug 2025 23:38:20 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 65C4E4181E;
 Mon, 11 Aug 2025 21:38:18 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id BBD33C4CEED;
 Mon, 11 Aug 2025 21:38: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>
X-Inumbo-ID: 7f373f0a-76fb-11f0-a327-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1754948298;
	bh=Z46roxxNQTj+XRgBojXDWGrX1V5j73TFMR8XlHuXHHc=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=jEspwoscK3iOAW+yN3/NqIrDCRuGxK+Ih0RScQZEddPtBgri4ihWvccNE4EfOV8Tr
	 HomxBYvYz9zHbXn9S6SU9Y1Y1CEI/vqm0ns8gvbU0ijr+7gKtCWw9aflWQoYjTwcxu
	 J/6UTvM+8FSvQ75ovVygX8Xkrxn9RenIfJkXi+6Yowcw6NZZ864kcmj8H7B9iJqtnL
	 tZsKXIvuSi0KC/lRj5Gly4jkXNCosJHrSUSmOrWA1uUGXQQ2do1GS+EHPWXN2DjbjL
	 Yq+t9jKIx36UPgk40jxvQm/RMdavh+/iadVEwADD6oa39AqIVWTMNJmEhoKDlIMmTu
	 APBaBssGuHTqA==
Date: Mon, 11 Aug 2025 14:38:14 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
cc: xen-devel@lists.xenproject.org, sstabellini@kernel.org, 
    michal.orzel@amd.com
Subject: Re: [ImageBuilder] Add config option to use separate load commands
 for Xen, DOM0 and DOMU binaries
In-Reply-To: <20250806123352.15852-1-ayan.kumar.halder@amd.com>
Message-ID: <alpine.DEB.2.22.394.2508111428490.2883419@ubuntu-linux-20-04-desktop>
References: <20250806123352.15852-1-ayan.kumar.halder@amd.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 6 Aug 2025, Ayan Kumar Halder wrote:
> Introduce the following options :-
> 1. XEN_LOAD - This specifies command to load xen hypervisor binary and device
> tree.
> 2. DOM0_LOAD - This specifies command to load Dom0 binaries.
> 3. DOMU_LOAD[] - This specifies command to load DomU binaries.
> 
> There can be situations where Xen, Dom0 and DomU binaries are stored in
> different partitions. Thus, imagebuilder should provide a way the binaries
> using different commands.
> 
> If any of the above options are not specified, LOAD_CMD is used by default.
> 
> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>

The patch is correct and the new config options look good. Two things.

The following check should be removed or, better, modified to account
for the new options:

    if test ! "$LOAD_CMD"
    then
        echo "LOAD_CMD not set, either specify it in the config or set it with the -t option"
        exit 1
    fi

Thanks to this patch, it shouldn't be necessary to specify LOAD_CMD any
longer.

find_root_dev and fit are the only two remaining users of LOAD_CMD.
While I think it makes sense to keep LOAD_CMD for fit, find_root_dev
should probably use DOM0_LOAD instead.

This incremental change (untested) should work. What do you think?



diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
index 9e97944..867876f 100755
--- a/scripts/uboot-script-gen
+++ b/scripts/uboot-script-gen
@@ -824,10 +824,10 @@ function check_compressed_file_type()
 
 function find_root_dev()
 {
-
-    local dev=${LOAD_CMD%:*}
+    local load_cmd=$1
+    local dev=${load_cmd%:*}
     dev=${dev##* }
-    local par=${LOAD_CMD#*:}
+    local par=${load_cmd#*:}
 
     if [ -z "$dev" ] || [ -z "$par" ]
     then
@@ -838,10 +838,10 @@ function find_root_dev()
 
     par=$((par + 1))
 
-    if [[ $LOAD_CMD =~ mmc ]]
+    if [[ $load_cmd =~ mmc ]]
     then
         root_dev="/dev/mmcblk${dev}p${par}"
-    elif [[ $LOAD_CMD =~ scsi ]]
+    elif [[ $load_cmd =~ scsi ]]
     then
         # converts number to a scsi device character
         dev=$((dev + 97))
@@ -912,7 +912,7 @@ function xen_config()
         then
             DOM0_CMD="$DOM0_CMD root=/dev/ram0"
         else
-            find_root_dev
+            find_root_dev "$DOM0_LOAD"
             # $root_dev is set by find_root_dev
             DOM0_CMD="$DOM0_CMD root=$root_dev"
         fi
@@ -960,7 +960,7 @@ function linux_config()
         then
             LINUX_CMD="$LINUX_CMD root=/dev/ram0"
         else
-            find_root_dev
+            find_root_dev "$LOAD_CMD"
             # $root_dev is set by find_root_dev
             LINUX_CMD="$LINUX_CMD root=$root_dev"
         fi
@@ -990,10 +990,6 @@ generate_uboot_images()
 
 xen_file_loading()
 {
-    if test -z "$DOM0_LOAD"
-    then
-        DOM0_LOAD="$LOAD_CMD"
-    fi
     if test "$DOM0_KERNEL"
     then
         check_compressed_file_type $DOM0_KERNEL "executable\|uImage"
@@ -1065,11 +1061,6 @@ xen_file_loading()
         generate_uboot_images
     fi
 
-    if test -z "${XEN_LOAD}"
-    then
-        XEN_LOAD="$LOAD_CMD"
-    fi
-
     kernel_addr=$memaddr
     kernel_path=$XEN
     load_file "$XEN" "host_kernel" "$XEN_LOAD"
@@ -1518,12 +1509,22 @@ then
     FIT="${UBOOT_SOURCE%.source}.fit"
 fi
 
-if test ! "$LOAD_CMD"
+if test ! "$LOAD_CMD" && ! test "$XEN_LOAD"
 then
     echo "LOAD_CMD not set, either specify it in the config or set it with the -t option"
     exit 1
 fi
 
+if test -z "$DOM0_LOAD"
+then
+    DOM0_LOAD="$LOAD_CMD"
+fi
+
+if test -z "${XEN_LOAD}"
+then
+    XEN_LOAD="$LOAD_CMD"
+fi
+
 if test ! "$BOOT_CMD"
 then
     BOOT_CMD="booti"


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 21:53:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 21:53:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078115.1439116 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulaSf-00073k-6g; Mon, 11 Aug 2025 21:53:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078115.1439116; Mon, 11 Aug 2025 21:53:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulaSf-00073d-3U; Mon, 11 Aug 2025 21:53:45 +0000
Received: by outflank-mailman (input) for mailman id 1078115;
 Mon, 11 Aug 2025 21:53:44 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1ulaSe-00073X-CM
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 21:53:44 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ulaSd-000Ftt-0f;
 Mon, 11 Aug 2025 21:53:43 +0000
Received: from [2a02:8012:3a1:0:80f0:1985:f3d0:f76b]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ulaSd-000bV3-0x;
 Mon, 11 Aug 2025 21:53: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=OF/hx5FWe8y+igZtcmED/W/2oLW/NBtMj2v2mVX0dpQ=; b=mL0R6/yzU8YOyE3aI9IQaVCefg
	Q7VDbCBgLhHdXVrqvt3a1o//hMCGo5XAYkvnjvZMNH8DZ75eIwJBmbxHZXTcQXPRHNd3r+X8NCIC1
	5rZgwXREqORa+NTZxLKL+tJs+tkygYFxd85pLy6VjyycN9TH3z40e+SXaagDby7oAiqg=;
Message-ID: <2b3afe23-1d47-4a66-bf0f-9a94b0b906c7@xen.org>
Date: Mon, 11 Aug 2025 22:53:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 00/12] Add initial Xen Suspend-to-RAM support on ARM64
Content-Language: en-GB
To: Mykola Kvach <xakep.amatop@gmail.com>, xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.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.1754943874.git.mykola_kvach@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <cover.1754943874.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Mykola,

On 11/08/2025 21:47, Mykola Kvach wrote:
> From: Mykola Kvach <mykola_kvach@epam.com>
> 
> This is part 2 of version 5 of the ARM Xen system suspend/resume patch
> series, based on earlier work by Mirela Simonovic and Mykyta Poturai.

Thanks for adding support for Suspend-to-RAM. You mention this is part 
2, can you clarify what's the state of part 1? Is this already merged?

If not, then can you add a link in the cover letter? This would be 
helpful to know the review ordering.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 22:22:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 22:22:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078128.1439127 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulauc-0002gY-Bu; Mon, 11 Aug 2025 22:22:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078128.1439127; Mon, 11 Aug 2025 22:22: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 1ulauc-0002gR-7V; Mon, 11 Aug 2025 22:22:38 +0000
Received: by outflank-mailman (input) for mailman id 1078128;
 Mon, 11 Aug 2025 22:22:36 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1ulaua-0002gL-Ss
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 22:22:36 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ulauZ-000GQy-0Y;
 Mon, 11 Aug 2025 22:22:35 +0000
Received: from [2a02:8012:3a1:0:80f0:1985:f3d0:f76b]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ulauZ-000cmT-17;
 Mon, 11 Aug 2025 22:22: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=dXlJIffW2d9AsAYJrBZfMvq0Zuk8x0oKnsTfrHyqub4=; b=i/TlovitnSUNjy6vbsqu/5xESd
	Ac5j+7hnpyV1/OVy0TUsYIxfeds51zG4CpemN+etnVKBZc8FvIElLDQqh6JgaBF+I586iLGcC//zL
	D2Yl1iExb70ibUUYl4inmy24jo+4Qqz6XiQbx+2xrT7dRMWigl5skJStnVERaMuy+nL0=;
Message-ID: <f9ac14d5-2b8c-4983-b171-789e2fa196c8@xen.org>
Date: Mon, 11 Aug 2025 23:22:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] BCM2711 reboot fix
Content-Language: en-GB
To: evgeny@contentwise.tech
Cc: xen-devel@lists.xenproject.org,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, miro@contentwise.tech
References: <1754252178882.7.40484@webmail-backend-production-957f95bc8-4zxxx>
From: Julien Grall <julien@xen.org>
In-Reply-To: <1754252178882.7.40484@webmail-backend-production-957f95bc8-4zxxx>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Evgeny,

(Top-posting because this is related to the process)

Thank you for sending a new version of the patch. I am having trouble to 
apply this patch properly using "b4". It seems to add more content in 
the git log. E.g.:

     Message-ID: 
<0057d145ddd90c01922636205484088c02a0e45a.1748380800.git.megabotva@gmail.com>
     From: Evgeny Beysembaev <evgeny@contentwise.tech>
     Date: Tue, 27 May 2025 13:48:31 +0200
     Subject: [PATCH] BCM2711 reboot fix

Looking at the content of the e-mail in more details, I see you posted 
the new version as a reply to the previous patch. So it contains some
part of the previous answer. Patches submission should be on their own 
email (ideally in a new thread) with the subject contain the tag [PATCH 
v<N>] where <N> is the revision ID (in your case it should be two).


On 03/08/2025 21:16, Evgeny Beysembaev wrote:
> According to the commit b334c1afad17 ("ARM: dts: bcm2711: Use proper 
> compatible in PM/Watchdog node")
> in Linux kernel, the `compatible` string for the watchdog peripheral in 
> the DTS has been modified from
> `brcm,bcm2835-pm` to `brcm,bcm2711-pm`, which caused 
> `rpi4_map_watchdog()` function to fail,
> leading to inability to reboot the system under Xen hypervisor.

On my e-mail client, the lines will be wrapped. But when applied, you 
have some lines well over 72 characters. Please re-wrapped the commit 
message.

For more details how to submit a patch, I would suggest to read:

https://wiki.xenproject.org/wiki/Submitting_Xen_Project_Patches

Patch diff itself looks good to me.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 23:14:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 23:14:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078138.1439135 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulbiL-0000K6-SI; Mon, 11 Aug 2025 23:14:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078138.1439135; Mon, 11 Aug 2025 23:14: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 1ulbiL-0000Jz-PB; Mon, 11 Aug 2025 23:14:01 +0000
Received: by outflank-mailman (input) for mailman id 1078138;
 Mon, 11 Aug 2025 23:14:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6XhN=2X=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1ulbiK-0000Ja-66
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 23:14:00 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org
 [2600:3c0a:e001:78e:0:1991:8:25])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d92319ee-7708-11f0-b898-0df219b8e170;
 Tue, 12 Aug 2025 01:13:54 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id C1A5F42B8B;
 Mon, 11 Aug 2025 23:13:52 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id DB218C4CEED;
 Mon, 11 Aug 2025 23:13:51 +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>
X-Inumbo-ID: d92319ee-7708-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1754954032;
	bh=bwC4EqjSsFYGlKn9k17jzkkCt8DFr5cjT8mwHg1dH5Y=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=G1moMz/DghypV3TcV8wnxVOI5OrSjEddGf0GTQdNk71z7wgZL5uDqiTziBaEmRxho
	 +oK++6bFQYfnrBOwBeZGWwDq/8na2XROl5SWrkGSg5IEKW0DG4Jb+3dOLMXEvlG2J0
	 1NpSiWybz9cFrh2C/I4fOi35W+sdFnEAO8sLHUtDTW4EdrEi3x8H0m7qVtR/bLOySG
	 m7vs9CITQ64ZNyQs8cu/lRQLHCvFI2OXO+9T7mbbYeMnl+LWntoyYG0W0N48WGMshq
	 og0Ny8Hf0ICiTJhb3YoeZaxHw1xvrnrIM15Mfz8ZoWIHu9iDaR+HUo+KHuvh7G2X26
	 y5O4DfgnahC4g==
Date: Mon, 11 Aug 2025 16:13:50 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
cc: xen-devel@lists.xenproject.org, sstabellini@kernel.org, 
    michal.orzel@amd.com, andrei.cherechesu@nxp.com, dmukhin@ford.com
Subject: Re: [ImageBuilder] Make DEVICE_TREE optional parameter
In-Reply-To: <20250807154614.456654-1-ayan.kumar.halder@amd.com>
Message-ID: <alpine.DEB.2.22.394.2508111447010.2883419@ubuntu-linux-20-04-desktop>
References: <20250807154614.456654-1-ayan.kumar.halder@amd.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; BOUNDARY="8323329-146452198-1754953035=:2883419"
Content-ID: <alpine.DEB.2.22.394.2508111602110.2883419@ubuntu-linux-20-04-desktop>

  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-146452198-1754953035=:2883419
Content-Type: text/plain; CHARSET=UTF-8
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.DEB.2.22.394.2508111602111.2883419@ubuntu-linux-20-04-desktop>

On Thu, 7 Aug 2025, Ayan Kumar Halder wrote:
> There are systems where device tree binary is passed by the U-Boot as
> $fdtcontroladdr. In such cases, no external device tree binary is provided
> during uboot script generation.
> 
> This is an enhancement on top of the following commit:-
> uboot-script-gen: Dynamically compute addr and size when loading binaâ€¦
> 
> When DEVICE_TREE is not present, $CALC is set as the addresses and sizes should
> be computed dynamically from U-Boot.

I would prefer if we did not automatically enable $CALC. If it doesn't
work without $CALC enabled, we could add a check for it and print an
error and exit. I would prefer that then enabling $CALC silently.

Also I don't think we should use the check ${DEVICE_TREE+x}. I'd prefer
to stick with the existing checks based on test ${DEVICE_TREE}.

The rest looks OK.

It might be possible to simplify this patch down to this (untested).
The last chunk of the diff is actually an unrelated fix, it looks like
we didn't test BOOT_CMD="none" when the -s option was introduced.

What do you think?


diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
index 9e97944..67e0f9a 100755
--- a/scripts/uboot-script-gen
+++ b/scripts/uboot-script-gen
@@ -1646,6 +1646,15 @@ if test "$FIT"
 then
     echo 'fit_addr=$fileaddr' >>  $UBOOT_SOURCE
 fi
+if test -z "$DEVICE_TREE"
+then
+    if test -z "$CALC"
+    then
+       echo "DEVICE_TREE is unset and -s is not specified"
+       exit 1
+    fi
+    echo "setenv host_fdt_addr \${fdtcontroladdr}" >> $UBOOT_SOURCE
+fi
 
 memaddr=$(( $MEMORY_START + $offset ))
 # 12582912 is 0xc00000, 12MB
@@ -1689,9 +1698,12 @@ then
     done
 fi
 
-check_file_type $DEVICE_TREE "Device Tree Blob"
-device_tree_addr=$memaddr
-load_file $DEVICE_TREE "host_fdt" "$XEN_LOAD"
+if test "$DEVICE_TREE"
+then
+    check_file_type $DEVICE_TREE "Device Tree Blob"
+    device_tree_addr=$memaddr
+    load_file $DEVICE_TREE "host_fdt" "$XEN_LOAD"
+fi
 bitstream_load_and_config  # bitstream is loaded last but used first
 device_tree_editing $device_tree_addr
 
@@ -1719,8 +1731,11 @@ then
     fi
 else
     # skip boot command but store load addresses to be used later
-    echo "setenv host_kernel_addr $kernel_addr" >> $UBOOT_SOURCE
-    echo "setenv host_fdt_addr $device_tree_addr" >> $UBOOT_SOURCE
+    if test -z "$CALC"
+    then
+        echo "setenv host_kernel_addr $kernel_addr" >> $UBOOT_SOURCE
+        echo "setenv host_fdt_addr $device_tree_addr" >> $UBOOT_SOURCE
+    fi
 fi
 
 if test "$FIT"
--8323329-146452198-1754953035=:2883419--


From xen-devel-bounces@lists.xenproject.org Mon Aug 11 23:46:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 23:46:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078146.1439145 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulcE4-0004HV-9R; Mon, 11 Aug 2025 23:46:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078146.1439145; Mon, 11 Aug 2025 23:46: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 1ulcE4-0004HO-6j; Mon, 11 Aug 2025 23:46:48 +0000
Received: by outflank-mailman (input) for mailman id 1078146;
 Mon, 11 Aug 2025 23:46:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=EhVm=2X=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1ulcE1-0004HI-5C
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 23:46:46 +0000
Received: from mail-10630.protonmail.ch (mail-10630.protonmail.ch
 [79.135.106.30]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6c5ead86-770d-11f0-b898-0df219b8e170;
 Tue, 12 Aug 2025 01:46:38 +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>
X-Inumbo-ID: 6c5ead86-770d-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1754955996; x=1755215196;
	bh=45YZaAccxyO0H/wTpuwwvtCoJrDQ1nfLPoAe4C+9ZHk=;
	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=CvOGE97DP6jnkO9gvoJHpsswc253mhFKyLKjlJuRpm+qYV7Kz91qRz35zMzrWKQgo
	 wHLX6VxZSGULNTq/XlaslouSI+yVnGUiYWJnZA7WEabpFp7gk5gXNkZx+Y8/cQnz6D
	 ECMbzRA6zLuFIhExFPV9tqj7PfclfUa6rEffsDhJngrvraSnz3EixHE0UfnkWW5sJs
	 7e2MRz9B/x/dv3Om4sqOb9TGnwrWXfeXGDGFfmTWS9mDWzxHRHy5hdI4yPnBYGq0H9
	 HboRjzNsU3vLJ2Ea/Yqlhnxrhn3e0y4jaMoUXTYsFf+wVa7vegsGXy4q9SmBBrbWyV
	 DVv8TpWWgcaPw==
Date: Mon, 11 Aug 2025 23:46:32 +0000
To: Jan Beulich <jbeulich@suse.com>
From: dmkhn@proton.me
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, Julien Grall <jgrall@amazon.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v15 1/4] xen/domain: unify domain ID allocation
Message-ID: <aJqA0yi5k0qtg6TU@kraken>
In-Reply-To: <db85bafd-c2f8-4aa0-9cf4-0529b0a39bcd@suse.com>
References: <20250809170747.1836880-1-dmukhin@ford.com> <20250809170747.1836880-2-dmukhin@ford.com> <db85bafd-c2f8-4aa0-9cf4-0529b0a39bcd@suse.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 88a8abf1cc3e039132c37fff2b1d2ee00e144360
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Mon, Aug 11, 2025 at 01:14:49PM +0200, Jan Beulich wrote:
> On 09.08.2025 19:08, dmkhn@proton.me wrote:
> > --- /dev/null
> > +++ b/xen/common/domid.c
> > @@ -0,0 +1,95 @@
> > +/* SPDX-License-Identifier: GPL-2.0-only */
> > +/*
> > + * Domain ID allocator.
> > + *
> > + * Covers dom0 or late hwdom, predefined domains, post-boot domains.
> > + * Excludes system domains (ID >=3D DOMID_FIRST_RESERVED).
> > + *
> > + * Copyright 2025 Ford Motor Company
> > + */
> > +
> > +#include <xen/domain.h>
> > +
> > +static DEFINE_SPINLOCK(domid_lock);
> > +static DECLARE_BITMAP(domid_bitmap, DOMID_FIRST_RESERVED);
> > +
> > +/*
> > + * Allocate domain ID.
> > + *
> > + * @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,
> > + *   starting from the last used ID. Implementation guarantees that tw=
o
> > + *   consecutive calls will never return the same ID. ID#0 is reserved=
 for
> > + *   the first boot domain (currently, dom0) and excluded from the all=
ocation
> > + *   range.
> > + * @return Valid domain ID in case of successful allocation,
> > + *         DOMID_INVALID - otherwise.
> > + */
> > +domid_t domid_alloc(domid_t domid)
> > +{
> > +    static domid_t domid_last;
> > +
> > +    spin_lock(&domid_lock);
> > +
> > +    /* Exact match. */
> > +    if ( domid < DOMID_FIRST_RESERVED )
> > +    {
> > +        if ( __test_and_set_bit(domid, domid_bitmap) )
> > +            domid =3D DOMID_INVALID;
> > +    }
> > +    /*
> > +     * Exhaustive search.
> > +     *
> > +     * Domain ID#0 is reserved for the first boot domain (e.g. control=
 domain)
> > +     * and excluded from allocation.
> > +     */
> > +    else
> > +    {
> > +        domid_t num =3D DOMID_FIRST_RESERVED;
> > +
> > +        domid =3D find_next_zero_bit(domid_bitmap, num, domid_last + 1=
);
> > +        if ( domid =3D=3D num && domid_last !=3D 0 )
>=20
> I'm pretty sure I commented on this before, yet then maybe it was in the =
context
> of another patch: Using =3D=3D here isn't sufficient; it needs to be >=3D=
. See e.g.
> cpumask_next().

I've missed that one. Will fix, thank you.

>=20
> Jan



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 23:48:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 23:48:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078155.1439156 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulcFK-0004mi-Ir; Mon, 11 Aug 2025 23:48:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078155.1439156; Mon, 11 Aug 2025 23:48: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 1ulcFK-0004mb-Fs; Mon, 11 Aug 2025 23:48:06 +0000
Received: by outflank-mailman (input) for mailman id 1078155;
 Mon, 11 Aug 2025 23:48:05 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=EhVm=2X=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1ulcFJ-0004mV-61
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 23:48:05 +0000
Received: from mail-10629.protonmail.ch (mail-10629.protonmail.ch
 [79.135.106.29]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9f621d2e-770d-11f0-a327-13f23c93f187;
 Tue, 12 Aug 2025 01: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>
X-Inumbo-ID: 9f621d2e-770d-11f0-a327-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1754956080; x=1755215280;
	bh=IQdlAP9AmtkhlErahs+uCXprS9iLxl0kcCzlxpfcBAo=;
	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=IfC59OoORmWpP+idCFaRm/5x8+PFiGfye06GrxJkBrNBHMYF2qepNEcbb+/DtOQFU
	 BXPhlKCmjE/8jCtHpNJl5Qh+uo+nMAfQ4eAJffui8MS/OktpKS2mriu39jt2JRQXFb
	 O1I328boy+mMJVRvyUkhH1UGTI9FbKgK2pPrUNLv79994jz3wS6WLXdqGvTIWmGYsp
	 ttFzwy+ZwbcZMEmf6NM7pm053Jwjgk6KD6D7lkRXy0/TalgeMtqQZ8+452AmQsSwwp
	 JR741Ay6bak+d0+zWyxcFNO9gveZ+VamPqUSuoKw2OPBqez6ZJ9zy0dD/tGFc9oyfY
	 GFXKQTkcjmHRA==
Date: Mon, 11 Aug 2025 23:47:56 +0000
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com, Julien Grall <jgrall@amazon.com>, Xen-devel <xen-devel-bounces@lists.xenproject.org>
Subject: Re: [PATCH v15 1/4] xen/domain: unify domain ID allocation
Message-ID: <aJqBKJuIcksoqhlW@kraken>
In-Reply-To: <DBZJOCP6J9OD.UBC62HPF2AJI@amd.com>
References: <20250809170747.1836880-1-dmukhin@ford.com> <20250809170747.1836880-2-dmukhin@ford.com> <DBZJOCP6J9OD.UBC62HPF2AJI@amd.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 5c8b65d972b78c01ee1269a35370177466323468
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Mon, Aug 11, 2025 at 01:00:00PM +0200, Alejandro Vallejo wrote:
> On Sat Aug 9, 2025 at 7:08 PM CEST, dmkhn wrote:
> > From: Denis Mukhin <dmukhin@ford.com>
> >
> > Currently, there are two different domain ID allocation implementations=
:
> >
> >   1) Sequential IDs allocation in dom0less Arm code based on max_init_d=
omid;
> >
> >   2) Sequential IDs allocation in XEN_DOMCTL_createdomain; does not use
> >      max_init_domid (both Arm and x86).
> >
> > The domain ID allocation covers dom0 or late hwdom, predefined domains,
> > post-boot domains, excluding Xen system domains (domid >=3D
> > DOMID_FIRST_RESERVED).
> >
> > It makes sense to have a common helper code for such task across archit=
ectures
> > (Arm and x86) and between dom0less / toolstack domU allocation.
> >
> > Note, fixing dependency on max_init_domid is out of scope of this patch=
.
> >
> > Wrap the domain ID allocation as an arch-independent function domid_all=
oc() in
> > new common/domid.c based on the bitmap.
> >
> > Allocation algorithm:
> > - If an explicit domain ID is provided, verify its availability and use=
 it if
> >   ID is not used;
> > - If DOMID_INVALID is provided, search the range [1..DOMID_FIRST_RESERV=
ED-1],
> >   starting from the last used ID.
> >   Implementation guarantees that two consecutive calls will never retur=
n the
> >   same ID. ID#0 is reserved for the first boot domain (currently, dom0)=
 and
> >   excluded from the allocation range.
> >
> > Remove is_free_domid() helper as it is not needed now.
> >
> > No functional change intended.
> >
> > Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> > Reviewed-by: Julien Grall <jgrall@amazon.com>
>=20
> There's a nit below about a change in v14, but with or without that:
>=20
>   Reviewed-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>

Thanks

>=20
> > ---
> > Changes since v14:
> > - added Julien's R-b
> > ---
> >  xen/arch/arm/domain_build.c             |  7 +-
> >  xen/arch/x86/setup.c                    |  7 +-
> >  xen/common/Makefile                     |  1 +
> >  xen/common/device-tree/dom0less-build.c | 15 ++--
> >  xen/common/domain.c                     |  2 +
> >  xen/common/domctl.c                     | 43 ++---------
> >  xen/common/domid.c                      | 95 +++++++++++++++++++++++++
> >  xen/include/xen/domain.h                |  3 +
> >  8 files changed, 126 insertions(+), 47 deletions(-)
> >  create mode 100644 xen/common/domid.c
> >
> > diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> > index 463ae4474d30..789f2b9d3ce7 100644
> > --- a/xen/arch/arm/domain_build.c
> > +++ b/xen/arch/arm/domain_build.c
> > @@ -2050,6 +2050,7 @@ void __init create_dom0(void)
> >          .grant_opts =3D XEN_DOMCTL_GRANT_version(opt_gnttab_max_versio=
n),
> >      };
> >      unsigned int flags =3D CDF_privileged | CDF_hardware;
> > +    domid_t domid;
> >      int rc;
> >
> >      /* The vGIC for DOM0 is exactly emulating the hardware GIC */
> > @@ -2074,7 +2075,11 @@ void __init create_dom0(void)
> >      if ( !llc_coloring_enabled )
> >          flags |=3D CDF_directmap;
> >
> > -    dom0 =3D domain_create(0, &dom0_cfg, flags);
> > +    domid =3D domid_alloc(0);
> > +    if ( domid =3D=3D DOMID_INVALID )
> > +        panic("Error allocating domain ID 0\n");
> > +
> > +    dom0 =3D domain_create(domid, &dom0_cfg, flags);
> >      if ( IS_ERR(dom0) )
> >          panic("Error creating domain 0 (rc =3D %ld)\n", PTR_ERR(dom0))=
;
> >
> > diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> > index 1543dd251cc6..398da734c0c5 100644
> > --- a/xen/arch/x86/setup.c
> > +++ b/xen/arch/x86/setup.c
> > @@ -1047,8 +1047,11 @@ static struct domain *__init create_dom0(struct =
boot_info *bi)
> >      if ( iommu_enabled )
> >          dom0_cfg.flags |=3D XEN_DOMCTL_CDF_iommu;
> >
> > -    /* Create initial domain.  Not d0 for pvshim. */
> > -    bd->domid =3D get_initial_domain_id();
> > +    /* Allocate initial domain ID.  Not d0 for pvshim. */
> > +    bd->domid =3D domid_alloc(get_initial_domain_id());
> > +    if ( bd->domid =3D=3D DOMID_INVALID )
> > +        panic("Error allocating domain ID %u\n", get_initial_domain_id=
());
> > +
> >      d =3D domain_create(bd->domid, &dom0_cfg,
> >                        pv_shim ? 0 : CDF_privileged | CDF_hardware);
> >      if ( IS_ERR(d) )
> > diff --git a/xen/common/Makefile b/xen/common/Makefile
> > index c316957fcb36..0c7d0f5d46e1 100644
> > --- a/xen/common/Makefile
> > +++ b/xen/common/Makefile
> > @@ -11,6 +11,7 @@ obj-$(filter-out $(CONFIG_X86),$(CONFIG_ACPI)) +=3D d=
evice.o
> >  obj-$(CONFIG_DEVICE_TREE_PARSE) +=3D device-tree/
> >  obj-$(CONFIG_IOREQ_SERVER) +=3D dm.o
> >  obj-y +=3D domain.o
> > +obj-y +=3D domid.o
> >  obj-y +=3D event_2l.o
> >  obj-y +=3D event_channel.o
> >  obj-$(CONFIG_EVTCHN_FIFO) +=3D event_fifo.o
> > diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/devic=
e-tree/dom0less-build.c
> > index 6bb038111de9..f4b6b515d2d2 100644
> > --- a/xen/common/device-tree/dom0less-build.c
> > +++ b/xen/common/device-tree/dom0less-build.c
> > @@ -833,6 +833,7 @@ void __init create_domUs(void)
> >      {
> >          struct kernel_info ki =3D KERNEL_INFO_INIT;
> >          int rc =3D parse_dom0less_node(node, &ki.bd);
> > +        domid_t domid;
> >
> >          if ( rc =3D=3D -ENOENT )
> >              continue;
> > @@ -842,13 +843,13 @@ void __init create_domUs(void)
> >          if ( (max_init_domid + 1) >=3D DOMID_FIRST_RESERVED )
> >              panic("No more domain IDs available\n");
> >
> > -        /*
> > -         * The variable max_init_domid is initialized with zero, so he=
re it's
> > -         * very important to use the pre-increment operator to call
> > -         * domain_create() with a domid > 0. (domid =3D=3D 0 is reserv=
ed for Dom0)
> > -         */
> > -        ki.bd.d =3D domain_create(++max_init_domid,
> > -                                &ki.bd.create_cfg, ki.bd.create_flags)=
;
> > +        domid =3D domid_alloc(DOMID_INVALID);
> > +        if ( domid =3D=3D DOMID_INVALID )
> > +            panic("Error allocating ID for domain %s\n", dt_node_name(=
node));
> > +
> > +        max_init_domid =3D max(max_init_domid, domid);
> > +
> > +        ki.bd.d =3D domain_create(domid, &ki.bd.create_cfg, ki.bd.crea=
te_flags);
> >          if ( IS_ERR(ki.bd.d) )
> >              panic("Error creating domain %s (rc =3D %ld)\n",
> >                    dt_node_name(node), PTR_ERR(ki.bd.d));
> > diff --git a/xen/common/domain.c b/xen/common/domain.c
> > index 5241a1629eeb..a7e303253d1a 100644
> > --- a/xen/common/domain.c
> > +++ b/xen/common/domain.c
> > @@ -692,6 +692,8 @@ static void _domain_destroy(struct domain *d)
> >
> >      lock_profile_deregister_struct(LOCKPROF_TYPE_PERDOM, d);
> >
> > +    domid_free(d->domain_id);
> > +
> >      free_domain_struct(d);
> >  }
> >
> > diff --git a/xen/common/domctl.c b/xen/common/domctl.c
> > index f2a7caaf853c..71e712c1f316 100644
> > --- a/xen/common/domctl.c
> > +++ b/xen/common/domctl.c
> > @@ -51,20 +51,6 @@ static int xenctl_bitmap_to_nodemask(nodemask_t *nod=
emask,
> >                                     MAX_NUMNODES);
> >  }
> >
> > -static inline int is_free_domid(domid_t dom)
> > -{
> > -    struct domain *d;
> > -
> > -    if ( dom >=3D DOMID_FIRST_RESERVED )
> > -        return 0;
> > -
> > -    if ( (d =3D rcu_lock_domain_by_id(dom)) =3D=3D NULL )
> > -        return 1;
> > -
> > -    rcu_unlock_domain(d);
> > -    return 0;
> > -}
> > -
> >  void getdomaininfo(struct domain *d, struct xen_domctl_getdomaininfo *=
info)
> >  {
> >      struct vcpu *v;
> > @@ -423,36 +409,19 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_=
t) u_domctl)
> >
> >      case XEN_DOMCTL_createdomain:
> >      {
> > -        domid_t        dom;
> > -        static domid_t rover =3D 0;
> > +        /* NB: ID#0 is reserved, find the first suitable ID instead. *=
/
> > +        domid_t domid =3D domid_alloc(op->domain ?: DOMID_INVALID);
> >
> > -        dom =3D op->domain;
> > -        if ( (dom > 0) && (dom < DOMID_FIRST_RESERVED) )
> > +        if ( domid =3D=3D DOMID_INVALID )
> >          {
> >              ret =3D -EEXIST;
> > -            if ( !is_free_domid(dom) )
> > -                break;
> > -        }
> > -        else
> > -        {
> > -            for ( dom =3D rover + 1; dom !=3D rover; dom++ )
> > -            {
> > -                if ( dom =3D=3D DOMID_FIRST_RESERVED )
> > -                    dom =3D 1;
> > -                if ( is_free_domid(dom) )
> > -                    break;
> > -            }
> > -
> > -            ret =3D -ENOMEM;
> > -            if ( dom =3D=3D rover )
> > -                break;
> > -
> > -            rover =3D dom;
> > +            break;
> >          }
> >
> > -        d =3D domain_create(dom, &op->u.createdomain, false);
> > +        d =3D domain_create(domid, &op->u.createdomain, false);
> >          if ( IS_ERR(d) )
> >          {
> > +            domid_free(domid);
> >              ret =3D PTR_ERR(d);
> >              d =3D NULL;
> >              break;
> > diff --git a/xen/common/domid.c b/xen/common/domid.c
> > new file mode 100644
> > index 000000000000..7839a2885810
> > --- /dev/null
> > +++ b/xen/common/domid.c
> > @@ -0,0 +1,95 @@
> > +/* SPDX-License-Identifier: GPL-2.0-only */
> > +/*
> > + * Domain ID allocator.
> > + *
> > + * Covers dom0 or late hwdom, predefined domains, post-boot domains.
> > + * Excludes system domains (ID >=3D DOMID_FIRST_RESERVED).
> > + *
> > + * Copyright 2025 Ford Motor Company
> > + */
> > +
> > +#include <xen/domain.h>
> > +
> > +static DEFINE_SPINLOCK(domid_lock);
> > +static DECLARE_BITMAP(domid_bitmap, DOMID_FIRST_RESERVED);
> > +
> > +/*
> > + * Allocate domain ID.
> > + *
> > + * @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,
> > + *   starting from the last used ID. Implementation guarantees that tw=
o
> > + *   consecutive calls will never return the same ID. ID#0 is reserved=
 for
> > + *   the first boot domain (currently, dom0) and excluded from the all=
ocation
> > + *   range.
> > + * @return Valid domain ID in case of successful allocation,
> > + *         DOMID_INVALID - otherwise.
> > + */
> > +domid_t domid_alloc(domid_t domid)
> > +{
> > +    static domid_t domid_last;
> > +
> > +    spin_lock(&domid_lock);
> > +
> > +    /* Exact match. */
> > +    if ( domid < DOMID_FIRST_RESERVED )
> > +    {
> > +        if ( __test_and_set_bit(domid, domid_bitmap) )
> > +            domid =3D DOMID_INVALID;
> > +    }
> > +    /*
> > +     * Exhaustive search.
> > +     *
> > +     * Domain ID#0 is reserved for the first boot domain (e.g. control=
 domain)
> > +     * and excluded from allocation.
> > +     */
> > +    else
> > +    {
> > +        domid_t num =3D DOMID_FIRST_RESERVED;
>=20
> nit: s/num/bound/, or something like that.
>=20
> I don't care much though. If there's not going to be a v16 (and I hope no=
t. The
> series has been girdling the mailing list long enough) feel free to ignor=
e this.

Will address.

>=20
> > +
> > +        domid =3D find_next_zero_bit(domid_bitmap, , domid_last + 1);
> > +        if ( domid =3D=3D num && domid_last !=3D 0 )
> > +        {
> > +            num =3D domid_last + 1;
> > +            domid =3D find_next_zero_bit(domid_bitmap, num, 1);
> > +        }
> > +
> > +        ASSERT(domid <=3D DOMID_FIRST_RESERVED);
> > +        if ( domid < num )
> > +        {
> > +            __set_bit(domid, domid_bitmap);
> > +            domid_last =3D domid;
> > +        }
> > +        else
> > +            domid =3D DOMID_INVALID;
> > +    }
> > +
> > +    spin_unlock(&domid_lock);
> > +
> > +    return domid;
> > +}
> > +
> > +void domid_free(domid_t domid)
> > +{
> > +    int rc;
> > +
> > +    ASSERT(domid <=3D DOMID_FIRST_RESERVED);
> > +
> > +    spin_lock(&domid_lock);
> > +    rc =3D __test_and_clear_bit(domid, domid_bitmap);
> > +    spin_unlock(&domid_lock);
> > +
> > +    ASSERT(rc);
> > +}
> > +
> > +/*
> > + * Local variables:
> > + * mode: C
> > + * c-file-style: "BSD"
> > + * c-basic-offset: 4
> > + * tab-width: 4
> > + * indent-tabs-mode: nil
> > + * End:
> > + */
> > diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
> > index e10baf2615fd..8aab05ae93c8 100644
> > --- a/xen/include/xen/domain.h
> > +++ b/xen/include/xen/domain.h
> > @@ -38,6 +38,9 @@ void arch_get_domain_info(const struct domain *d,
> >
> >  domid_t get_initial_domain_id(void);
> >
> > +domid_t domid_alloc(domid_t domid);
> > +void domid_free(domid_t domid);
> > +
> >  /* CDF_* constant. Internal flags for domain creation. */
> >  /* Is this a privileged domain? */
> >  #define CDF_privileged           (1U << 0)
>=20



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 23:53:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 23:53:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078169.1439165 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulcKQ-0006Wo-8N; Mon, 11 Aug 2025 23:53:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078169.1439165; Mon, 11 Aug 2025 23:53: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 1ulcKQ-0006Wh-5F; Mon, 11 Aug 2025 23:53:22 +0000
Received: by outflank-mailman (input) for mailman id 1078169;
 Mon, 11 Aug 2025 23:53:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=EhVm=2X=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1ulcKO-0006Wb-MU
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 23:53:20 +0000
Received: from mail-10630.protonmail.ch (mail-10630.protonmail.ch
 [79.135.106.30]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5ae07da1-770e-11f0-b898-0df219b8e170;
 Tue, 12 Aug 2025 01:53:18 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5ae07da1-770e-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1754956397; x=1755215597;
	bh=AiEfhqHt8LlpVdl2kedBT0JPe40tAhgVeXVYs+s/y/Q=;
	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=SSR9pDnXPwQmV8cbVxcz73osFR56udVcASFQNABKABqqnjykRUjbn1B0VYc+PNKfF
	 BFUdrSkETm5KUCHxy4JKeS+S9ZFOwqGIP2XCCzoXQzFSaqwIvCP8cYDF06b8Tbseo7
	 nZC56l27qaQvFNVJaPwVOl0IOvRcO6HgLyCkL4gN698gdGgo8aO4Z9UGCjtmj+c6VZ
	 8KnOcqJtZIibwEgbBDLeS7maXthkKLwblU6455eZI35RbOXdq7BXYCz4PLfMk/nQ1y
	 9EWn/WkYE5W9NOTPhV6YKaBcwcWSa1z5zMibKqnRPV4PDsrqX3npPkKlm2Nf2YrtXq
	 Z58z+MZupsUWQ==
Date: Mon, 11 Aug 2025 23:53:13 +0000
To: Jan Beulich <jbeulich@suse.com>
From: dmkhn@proton.me
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, Julien Grall <jgrall@amazon.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v15 3/4] tools/tests: introduce unit tests for domain ID allocator
Message-ID: <aJqCZWSLJ24Fsn+T@kraken>
In-Reply-To: <0089146c-fe86-42b5-afa7-72dffb08c3b7@suse.com>
References: <20250809170747.1836880-1-dmukhin@ford.com> <20250809170747.1836880-4-dmukhin@ford.com> <0089146c-fe86-42b5-afa7-72dffb08c3b7@suse.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: d32a83b1c7b4ad6d14e07f210bb62af999a0fede
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Mon, Aug 11, 2025 at 09:58:24AM +0200, Jan Beulich wrote:
> On 09.08.2025 19:08, dmkhn@proton.me wrote:
> > diff --git a/tools/tests/domid/include/xen/domain.h b/tools/tests/domid=
/include/xen/domain.h
> > new file mode 120000
> > index 000000000000..2eda9aed088e
> > --- /dev/null
> > +++ b/tools/tests/domid/include/xen/domain.h
> > @@ -0,0 +1 @@
> > +../../harness.h
> > \ No newline at end of file
>=20
> In the tests we generally generate symlinks as necessary, rather than hav=
ing them be
> present in git. Furthermore it's not quite clear why a file of this name =
is needed
> in a test harness anyway. Elsewhere we adjust hypervisor sources to make =
respective
> #include-s conditional.

I'll fix the makefile for the test so dependencies are resolved on the fly
and no need for code adjustment.

>=20
> Jan



From xen-devel-bounces@lists.xenproject.org Mon Aug 11 23:56:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 11 Aug 2025 23:56:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078177.1439176 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulcN2-00073Y-LE; Mon, 11 Aug 2025 23:56:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078177.1439176; Mon, 11 Aug 2025 23:56: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 1ulcN2-00073R-Hi; Mon, 11 Aug 2025 23:56:04 +0000
Received: by outflank-mailman (input) for mailman id 1078177;
 Mon, 11 Aug 2025 23:56:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=EhVm=2X=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1ulcN0-00073L-LD
 for xen-devel@lists.xenproject.org; Mon, 11 Aug 2025 23:56:02 +0000
Received: from mail-4322.protonmail.ch (mail-4322.protonmail.ch [185.70.43.22])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bb36d570-770e-11f0-b898-0df219b8e170;
 Tue, 12 Aug 2025 01:56:00 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bb36d570-770e-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=ouyldh5kwjgbbi2rm5rx676g54.protonmail; t=1754956558; x=1755215758;
	bh=zpWgVSUcTcvyRiGRQo6eO1MrRRuVPnSzofmDDrQ4DrY=;
	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=koUfvdq//4JeqvoL0sAkFux6gCMRlpH190aBQ1ywwoPrggJx+Ib/7vCbZR5dAJWTk
	 lsxOZO0b0a3+OA+kQ9VRC2Ah8yrOpJPm92RUKc3p2Vo4c8qUqmfTF57a+TRE6TJ3rp
	 TPyyM/faVYZx20hAowQlrWfiY9yXa14UFfWOM/LaLuTeHRcTdloPWj935JPP6YQHXU
	 433s6s9h/HaT2JBCjFG60udNPoGpb8m0dVhs8RvoBK5jCg3lqlTO+ZnKvOe4BIubzu
	 DOJsLsEpDpU52YxX/nTlF13Mvyy8x/psq+m4SBSFYUJev3tGxnvhhhy9J3oiALpCWu
	 lPG3DCp0U7N/g==
Date: Mon, 11 Aug 2025 23:55:56 +0000
To: Jan Beulich <jbeulich@suse.com>
From: dmkhn@proton.me
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 v4 2/8] emul/vuart: introduce framework for UART emulators
Message-ID: <aJqDCJp19/iMIfDq@kraken>
In-Reply-To: <6953603b-8c3f-4f12-9f5e-45cb553fe8cc@suse.com>
References: <20250731192130.3948419-1-dmukhin@ford.com> <20250731192130.3948419-3-dmukhin@ford.com> <a416cc08-5970-433a-8015-5d2aa961a000@suse.com> <aJeZpiM35gOtB+4Z@starscream> <6953603b-8c3f-4f12-9f5e-45cb553fe8cc@suse.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 501f85c1289b4568045b4d5c07f4aebd5d308911
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Mon, Aug 11, 2025 at 09:34:58AM +0200, Jan Beulich wrote:
> On 09.08.2025 20:55, dmkhn@proton.me wrote:
> > On Mon, Aug 04, 2025 at 12:11:03PM +0200, Jan Beulich wrote:
> >> On 31.07.2025 21:21, dmkhn@proton.me wrote:
> >>> --- a/xen/common/Kconfig
> >>> +++ b/xen/common/Kconfig
> >>> @@ -1,6 +1,8 @@
> >>>
> >>>  menu "Common Features"
> >>>
> >>> +source "common/emul/Kconfig"
> >>> +
> >>>  config COMPAT
> >>
> >> Why at the very top?
> >
> > I did not find a better place, since the settings are not sorted and to=
 me it
> > makes sense to list emulation capabilities first...
> >
> > Where would be the best location for that submenu?
> > Close to another submenu `source "common/sched/Kconfig"`?
>=20
> At least below there. Possibly yet further down.
>=20
> >>> +int vuart_init(struct domain *d, struct vuart_params *params)
> >>> +{
> >>> +    const struct vuart_ops *vdev;
> >>> +    int rc;
> >>> +
> >>> +    if ( !domain_has_vuart(d) )
> >>> +        return 0;
> >>> +
> >>> +    for_each_vuart(vdev)
> >>> +    {
> >>> +        rc =3D vdev->init(d, params);
> >>> +        if ( rc )
> >>> +            return rc;
> >>> +    }
> >>> +
> >>> +    d->console.input_allowed =3D true;
> >>
> >> Unconditionally?
> >
> > Thanks.
> > That should be a least under rc =3D=3D 0.
>=20
> You only ever make it there with rc =3D=3D 0, though. (In fact that varia=
ble's
> scope would better be just the loop body.)
>=20
> >>> +/*
> >>> + * Put character to the first suitable emulated UART's FIFO.
> >>> + */
> >>
> >> What's "suitable"? Along the lines of the earlier remark, what if the =
domain
> >> has vUART kind A configured, ...
> >
> > "suitable" is meant to be the first emulator with put_rx !=3D NULL.
> > I will update that.
>=20
> Except that, as iirc Roger also pointed out, "first emulator with put_rx =
!=3D NULL"
> is a questionable condition.
>=20
> >>> --- a/xen/common/keyhandler.c
> >>> +++ b/xen/common/keyhandler.c
> >>> @@ -22,6 +22,7 @@
> >>>  #include <xen/mm.h>
> >>>  #include <xen/watchdog.h>
> >>>  #include <xen/init.h>
> >>> +#include <xen/vuart.h>
> >>>  #include <asm/div64.h>
> >>>
> >>>  static unsigned char keypress_key;
> >>> @@ -354,6 +355,8 @@ static void cf_check dump_domains(unsigned char k=
ey)
> >>>                             v->periodic_period / 1000000);
> >>>              }
> >>>          }
> >>> +
> >>> +        vuart_dump_state(d);
> >>
> >> How verbose is this going to get?
> >
> > Looks something like this:
> > ```
> > (XEN) [   88.334893] 'q' pressed -> dumping domain info (now =3D 883348=
28303)
> > [..]
> > (XEN) [   88.335673] Virtual ns16550 (COM2) I/O port 0x02f8 IRQ#3 owner=
 d0
> > (XEN) [   88.335681]   RX FIFO size 1024 in_prod 258 in_cons 258 used 0
> > (XEN) [   88.335689]   TX FIFO size 2048 out_prod 15 out_cons 0 used 15
> > (XEN) [   88.335696]   00 RBR 02 THR 6f DLL 01 DLM 00
> > (XEN) [   88.335703]   01 IER 05
> > (XEN) [   88.335709]   02 FCR 81 IIR c1
> > (XEN) [   88.335715]   03 LCR 13
> > (XEN) [   88.335720]   04 MCR 0b
> > (XEN) [   88.335726]   05 LSR 60
> > (XEN) [   88.335731]   06 MSR b0
> > (XEN) [   88.335736]   07 SCR 00
> >
> > ```
>=20
> Definitely too much (for my taste) to put under 'q'.

I'll try to limit the number of printed lines; register dump can be made
compact for sure.

>=20
> Jan



From xen-devel-bounces@lists.xenproject.org Tue Aug 12 00:06:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 00:06:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078187.1439186 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulcXP-00013P-Lh; Tue, 12 Aug 2025 00:06:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078187.1439186; Tue, 12 Aug 2025 00:06: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 1ulcXP-00013I-HY; Tue, 12 Aug 2025 00:06:47 +0000
Received: by outflank-mailman (input) for mailman id 1078187;
 Tue, 12 Aug 2025 00:06:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Th/E=2Y=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1ulcXN-00013C-9r
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 00:06:45 +0000
Received: from mail-24417.protonmail.ch (mail-24417.protonmail.ch
 [109.224.244.17]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 39f754d5-7710-11f0-b898-0df219b8e170;
 Tue, 12 Aug 2025 02:06:42 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 39f754d5-7710-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=lzdxe6wvcvbbfbkqrf5oj2gzmy.protonmail; t=1754957201; x=1755216401;
	bh=JCEmoGLxJ3yy+By49BmEjJL26xgPRjqmbgtB900C9Mc=;
	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=bFvT4wQTsQohbX4QncscLqCRGrHJkpDTslMaDvupLHmWHXEA++k/Fgit142O8oJWV
	 7l0lTpmWWj+4UvEYxGUYX5d2jrqB4r2HinVX3JaLU3rSZAGwr9LuJ1X0ZeXHkkTgXE
	 nu7BbryS1Wg/hsSOQRR2HBN6OJmmdRy7mUha1s1ODk5t863j9x05eb6ATprQxcuJLE
	 2C68QNU7b1mLlrIU2RtI5K+zIfXE/SoB1RcF/YI6jx+JD8eNK990mCojfeCKwiTFkr
	 YkyTZpcVUXBmTOOKKbHvJzMbphd1G4x5amLsWUdW7rg5Lt4nkYxKgmVojNefimgTpc
	 H8kIyTSAqd5yw==
Date: Tue, 12 Aug 2025 00:06:36 +0000
To: Jan Beulich <jbeulich@suse.com>
From: dmkhn@proton.me
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 v4 5/8] emul/vuart-ns16550: introduce NS16550-compatible UART emulator (x86)
Message-ID: <aJqFiFj3KLeouvWc@kraken>
In-Reply-To: <32cd30fb-190c-44f0-824f-1c4583635250@suse.com>
References: <20250731192130.3948419-1-dmukhin@ford.com> <20250731192130.3948419-6-dmukhin@ford.com> <5c0589a2-91fe-484d-bded-5a68a1626355@suse.com> <aJeVTIG2nU3bqGwO@starscream> <32cd30fb-190c-44f0-824f-1c4583635250@suse.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: c19a692f5a379f8cd8f58d13175eff5488536dc7
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Mon, Aug 11, 2025 at 09:39:42AM +0200, Jan Beulich wrote:
> On 09.08.2025 20:37, dmkhn@proton.me wrote:
> > On Mon, Aug 04, 2025 at 12:53:36PM +0200, Jan Beulich wrote:
> >> On 31.07.2025 21:22, dmkhn@proton.me wrote:
> >>> --- a/xen/common/emul/vuart/Makefile
> >>> +++ b/xen/common/emul/vuart/Makefile
> >>> @@ -1 +1,2 @@
> >>>  obj-$(CONFIG_HAS_VUART) +=3D vuart.o
> >>> +obj-$(CONFIG_VUART_NS16550) +=3D vuart-ns16550.o
> >>
> >> I don't think files in this directory need a vuart- name prefix.
> >
> > Ack.
> >
> > Hmm, there's already ns16550.c which is UART driver, so it may be confu=
sing to
> > have two ns16550s (although in different directories).
> >
> > I do not have a strong preference on the naming here.
>=20
> We have several examples of files with the same name in distinct director=
ies.
> As an aside - is it really only 16550-s that you emulate? Otherwise the n=
ame
> may want to be e.g. ns16x50.c or ns8250.c.

I'll use ns16x50.c.

>=20
> Jan



From xen-devel-bounces@lists.xenproject.org Tue Aug 12 00:20:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 00:20:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078199.1439196 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulcjy-0002pF-MI; Tue, 12 Aug 2025 00:19:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078199.1439196; Tue, 12 Aug 2025 00:19: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 1ulcjy-0002p8-JQ; Tue, 12 Aug 2025 00:19:46 +0000
Received: by outflank-mailman (input) for mailman id 1078199;
 Tue, 12 Aug 2025 00:19:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UEr3=2Y=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1ulcjx-0002p2-L1
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 00:19:45 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 085f8cbc-7712-11f0-b898-0df219b8e170;
 Tue, 12 Aug 2025 02:19:39 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1754957974051186.28010670768845;
 Mon, 11 Aug 2025 17:19: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>
X-Inumbo-ID: 085f8cbc-7712-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; t=1754957976; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=Bahxkm0PdaqpSMEfKKX5t1z49Dzm1mFMp/I6sxW3BcZ5M4DBxpcNWWyBF0He1fFjoS9cXJ6nL7cHCkWMGcjg9OX2CmcJrFhx8x228HKxrZvIBAMHfMumGFwDHMz68yfOwOpYmm3AABF9GHbgWVi9tP55eFA6I6Fy7MGNvrZOq00=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1754957976; 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=/SnaI2kkQcPBgygS5Sgb5bJ3hy/qubZcZmGgG7Rzm5E=; 
	b=RQ75dhdNBySYYmEY0tbmMsYWajjSFU8CxTzGY97mxWZOjmGMoFo0VZJf+RKfL2PYb1Cnewq1x977cnUA6x9U1JplPOly3qaGxtxDY4hpnyyM6hl+vF/Rzfq8oGtl7m1E7/E+1fFNRumqoVb65oZQNKrQK61zlocY0l6nGsQsnQA=
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=1754957976;
	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=/SnaI2kkQcPBgygS5Sgb5bJ3hy/qubZcZmGgG7Rzm5E=;
	b=mfNqG1Q8CaVVKVdAPPH9Ogun+TqfLGa63lHFYujBusLe52lPzUlFFxBCWnG7d9ZO
	eq6DhtHDC/0qu1nbUa6k0M/nq7yLWKUjEck/EQ27ci7dSmL1HkngiCTQl5McLTck0oJ
	maBEhRSa5M5KXZkDrlP+AK3uvM+HriBvfWmjyN70=
Message-ID: <761b584a-51fb-403d-948e-3366501cea50@apertussolutions.com>
Date: Mon, 11 Aug 2025 20:19:32 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] EFI/runtime: switch to xv[mz]alloc_array()
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Marek Marczykowski <marmarek@invisiblethingslab.com>
References: <41b7e14c-59ef-40f5-8c43-69bdc5fb4531@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: <41b7e14c-59ef-40f5-8c43-69bdc5fb4531@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 7/23/25 09:39, Jan Beulich wrote:
> Use the more "modern" form, thus doing away with effectively open-coding
> xmalloc_array() at the same time. While there is a difference in
> generated code, as xmalloc_bytes() forces SMP_CACHE_BYTES alignment, if
> code really cared about such higher than default alignment, it should
> request so explicitly.

While I don't object to the change itself, I think this description is a 
bit over simplification of the change. If the allocation is under 
PAGE_SIZE, then they are equivalent, but if it is over the page size 
there are a few more differences than just cache alignment. It 
completely changes the underlying allocator. I personally also find it a 
bit of a stretch to call xmalloc_bytes(size) an open coded version of 
xmalloc_array(char, size).

> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> v3: Use xv[mz]alloc_array().
> 
> --- a/xen/common/efi/runtime.c
> +++ b/xen/common/efi/runtime.c
> @@ -6,6 +6,7 @@
>   #include <xen/irq.h>
>   #include <xen/sections.h>
>   #include <xen/time.h>
> +#include <xen/xvmalloc.h>
>   
>   DEFINE_XEN_GUEST_HANDLE(CHAR16);
>   
> @@ -500,23 +501,23 @@ int efi_runtime_call(struct xenpf_efi_ru
>           len = gwstrlen(guest_handle_cast(op->u.get_variable.name, CHAR16));
>           if ( len < 0 )
>               return len;
> -        name = xmalloc_array(CHAR16, ++len);
> +        name = xvmalloc_array(CHAR16, ++len);
>           if ( !name )
>              return -ENOMEM;
>           if ( __copy_from_guest(name, op->u.get_variable.name, len) ||
>                wmemchr(name, 0, len) != name + len - 1 )
>           {
> -            xfree(name);
> +            xvfree(name);
>               return -EIO;
>           }
>   
>           size = op->u.get_variable.size;
>           if ( size )
>           {
> -            data = xmalloc_bytes(size);
> +            data = xvmalloc_array(unsigned char, size);
>               if ( !data )
>               {
> -                xfree(name);
> +                xvfree(name);
>                   return -ENOMEM;
>               }
>           }
> @@ -539,8 +540,8 @@ int efi_runtime_call(struct xenpf_efi_ru
>           else
>               rc = -EOPNOTSUPP;
>   
> -        xfree(data);
> -        xfree(name);
> +        xvfree(data);
> +        xvfree(name);
>       }
>       break;
>   
> @@ -553,17 +554,17 @@ int efi_runtime_call(struct xenpf_efi_ru
>           len = gwstrlen(guest_handle_cast(op->u.set_variable.name, CHAR16));
>           if ( len < 0 )
>               return len;
> -        name = xmalloc_array(CHAR16, ++len);
> +        name = xvmalloc_array(CHAR16, ++len);
>           if ( !name )
>              return -ENOMEM;
>           if ( __copy_from_guest(name, op->u.set_variable.name, len) ||
>                wmemchr(name, 0, len) != name + len - 1 )
>           {
> -            xfree(name);
> +            xvfree(name);
>               return -EIO;
>           }
>   
> -        data = xmalloc_bytes(op->u.set_variable.size);
> +        data = xvmalloc_array(unsigned char, op->u.set_variable.size);
>           if ( !data )
>               rc = -ENOMEM;
>           else if ( copy_from_guest(data, op->u.set_variable.data,
> @@ -581,8 +582,8 @@ int efi_runtime_call(struct xenpf_efi_ru
>               efi_rs_leave(&state);
>           }
>   
> -        xfree(data);
> -        xfree(name);
> +        xvfree(data);
> +        xvfree(name);
>       }
>       break;
>   
> @@ -598,13 +599,13 @@ int efi_runtime_call(struct xenpf_efi_ru
>               return -EINVAL;
>   
>           size = op->u.get_next_variable_name.size;
> -        name.raw = xzalloc_bytes(size);
> +        name.raw = xvzalloc_array(unsigned char, size);
>           if ( !name.raw )
>               return -ENOMEM;
>           if ( copy_from_guest(name.raw, op->u.get_next_variable_name.name,
>                                size) )
>           {
> -            xfree(name.raw);
> +            xvfree(name.raw);
>               return -EFAULT;
>           }
>   
> @@ -629,7 +630,7 @@ int efi_runtime_call(struct xenpf_efi_ru
>           else
>               rc = -EOPNOTSUPP;
>   
> -        xfree(name.raw);
> +        xvfree(name.raw);
>       }
>       break;
>   

With a stronger description of the change,

Acked-by: Daniel P. Smith <dpsmith@apertussolutions.com>


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 00:21:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 00:21:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078208.1439206 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulclt-0004Rk-0a; Tue, 12 Aug 2025 00:21:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078208.1439206; Tue, 12 Aug 2025 00:21: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 1ulcls-0004Rd-U9; Tue, 12 Aug 2025 00:21:44 +0000
Received: by outflank-mailman (input) for mailman id 1078208;
 Tue, 12 Aug 2025 00:21:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UEr3=2Y=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1ulcls-0004RV-Bj
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 00:21:44 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 51ce9d26-7712-11f0-a327-13f23c93f187;
 Tue, 12 Aug 2025 02:21:43 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1754958095779439.9373542941788;
 Mon, 11 Aug 2025 17:21: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>
X-Inumbo-ID: 51ce9d26-7712-11f0-a327-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; t=1754958097; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=FvzGNyygDzwtLsdQHvusSGLsLYR8Z7M9aqvRQjeOlDckDUm4VwKrID1rFwHlqzF6cemkWtmGaeNCwNBC3YpTaq1BLfOQasJM2Zs7vZV9tSa/XeGQEdEC2rAsAdptx0LQ+FHKJQDwY8ASh8Se8Fl8cxxSq/9Faz+tXuS/MPzF06s=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1754958097; 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=4NUbASRAIQxbvkBSh3DhmQpeURA4LUl/lBxONl93bQo=; 
	b=huM9EQa67rE+KhdBesH37lLFEHI/ICOBLsEl34Dq/C4rO2858LYvDTLpZK5W34FZkSMhLQwhV/+m/LUzNR4dVSXaSIocJmYQypbCqnAtsZYgrRpEEPWYFz94PxnTwHIpKoVgBJKJLncwNX37LClcPJiGzOlO+xiU2867R4PWkRk=
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=1754958097;
	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=4NUbASRAIQxbvkBSh3DhmQpeURA4LUl/lBxONl93bQo=;
	b=QEBkJXI1bas8YW+LCSplJwoB90CYg0xwm6HAZm0v6+tAT4ipSaortF2kmRtZyDzP
	2MDlh3peEHk9gsNUmN9cswbhs9i1uy1yXDYRlgTVlSJ3bFFfMDGgjc67DRkbj1Yd2d3
	f90ugiXSqzCtXbTN4I6dP8YgQvJ2d4PMxEMkKXK8=
Message-ID: <1993ca56-8aac-4ef1-aa60-f784d27ea230@apertussolutions.com>
Date: Mon, 11 Aug 2025 20:21:34 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] efi: Call FreePages only if needed
Content-Language: en-US
To: Ross Lagerwall <ross.lagerwall@citrix.com>,
 Xen-devel <xen-devel@lists.xen.org>, xen-devel@lists.xenproject.org
Cc: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Jan Beulich <jbeulich@suse.com>
References: <20250805163204.3631483-1-ross.lagerwall@citrix.com>
 <20250805163204.3631483-2-ross.lagerwall@citrix.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: <20250805163204.3631483-2-ross.lagerwall@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 8/5/25 12:32, Ross Lagerwall wrote:
> If the config file is builtin, cfg.addr will be zero but Xen
> unconditionally calls FreePages() on the address.
> 
> Xen may also call FreePages() with a zero address if blexit() is called
> after this point since cfg.need_to_free is not set to false.
> 
> The UEFI specification does not say whether calling FreePages() with a
> zero address is allowed so let's be cautious and use cfg.need_to_free
> properly.
> 
> Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
> ---
>   xen/common/efi/boot.c | 7 +++++--
>   1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
> index 778a39cc48e6..50ff1d1bd225 100644
> --- a/xen/common/efi/boot.c
> +++ b/xen/common/efi/boot.c
> @@ -1534,8 +1534,11 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE ImageHandle,
>   
>           efi_arch_cfg_file_late(loaded_image, dir_handle, section.s);
>   
> -        efi_bs->FreePages(cfg.addr, PFN_UP(cfg.size));
> -        cfg.addr = 0;
> +        if ( cfg.need_to_free )
> +        {
> +            efi_bs->FreePages(cfg.addr, PFN_UP(cfg.size));
> +            cfg.need_to_free = false;
> +        }
>   
>           if ( dir_handle )
>               dir_handle->Close(dir_handle);

Acked-by Daniel P. Smith <dpsmith@apertussolutions.com>


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 00:21:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 00:21:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078209.1439216 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulcly-0004hs-9q; Tue, 12 Aug 2025 00:21:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078209.1439216; Tue, 12 Aug 2025 00:21:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulcly-0004hl-71; Tue, 12 Aug 2025 00:21:50 +0000
Received: by outflank-mailman (input) for mailman id 1078209;
 Tue, 12 Aug 2025 00:21:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UEr3=2Y=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1ulclx-0004hA-DW
 for xen-devel@lists.xen.org; Tue, 12 Aug 2025 00:21:49 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 53c58538-7712-11f0-b898-0df219b8e170;
 Tue, 12 Aug 2025 02:21:47 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1754958095779439.9373542941788;
 Mon, 11 Aug 2025 17:21: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>
X-Inumbo-ID: 53c58538-7712-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; t=1754958097; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=FvzGNyygDzwtLsdQHvusSGLsLYR8Z7M9aqvRQjeOlDckDUm4VwKrID1rFwHlqzF6cemkWtmGaeNCwNBC3YpTaq1BLfOQasJM2Zs7vZV9tSa/XeGQEdEC2rAsAdptx0LQ+FHKJQDwY8ASh8Se8Fl8cxxSq/9Faz+tXuS/MPzF06s=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1754958097; 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=4NUbASRAIQxbvkBSh3DhmQpeURA4LUl/lBxONl93bQo=; 
	b=huM9EQa67rE+KhdBesH37lLFEHI/ICOBLsEl34Dq/C4rO2858LYvDTLpZK5W34FZkSMhLQwhV/+m/LUzNR4dVSXaSIocJmYQypbCqnAtsZYgrRpEEPWYFz94PxnTwHIpKoVgBJKJLncwNX37LClcPJiGzOlO+xiU2867R4PWkRk=
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=1754958097;
	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=4NUbASRAIQxbvkBSh3DhmQpeURA4LUl/lBxONl93bQo=;
	b=QEBkJXI1bas8YW+LCSplJwoB90CYg0xwm6HAZm0v6+tAT4ipSaortF2kmRtZyDzP
	2MDlh3peEHk9gsNUmN9cswbhs9i1uy1yXDYRlgTVlSJ3bFFfMDGgjc67DRkbj1Yd2d3
	f90ugiXSqzCtXbTN4I6dP8YgQvJ2d4PMxEMkKXK8=
Message-ID: <1993ca56-8aac-4ef1-aa60-f784d27ea230@apertussolutions.com>
Date: Mon, 11 Aug 2025 20:21:34 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] efi: Call FreePages only if needed
Content-Language: en-US
To: Ross Lagerwall <ross.lagerwall@citrix.com>,
 Xen-devel <xen-devel@lists.xen.org>, xen-devel@lists.xenproject.org
Cc: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Jan Beulich <jbeulich@suse.com>
References: <20250805163204.3631483-1-ross.lagerwall@citrix.com>
 <20250805163204.3631483-2-ross.lagerwall@citrix.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: <20250805163204.3631483-2-ross.lagerwall@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 8/5/25 12:32, Ross Lagerwall wrote:
> If the config file is builtin, cfg.addr will be zero but Xen
> unconditionally calls FreePages() on the address.
> 
> Xen may also call FreePages() with a zero address if blexit() is called
> after this point since cfg.need_to_free is not set to false.
> 
> The UEFI specification does not say whether calling FreePages() with a
> zero address is allowed so let's be cautious and use cfg.need_to_free
> properly.
> 
> Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
> ---
>   xen/common/efi/boot.c | 7 +++++--
>   1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
> index 778a39cc48e6..50ff1d1bd225 100644
> --- a/xen/common/efi/boot.c
> +++ b/xen/common/efi/boot.c
> @@ -1534,8 +1534,11 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE ImageHandle,
>   
>           efi_arch_cfg_file_late(loaded_image, dir_handle, section.s);
>   
> -        efi_bs->FreePages(cfg.addr, PFN_UP(cfg.size));
> -        cfg.addr = 0;
> +        if ( cfg.need_to_free )
> +        {
> +            efi_bs->FreePages(cfg.addr, PFN_UP(cfg.size));
> +            cfg.need_to_free = false;
> +        }
>   
>           if ( dir_handle )
>               dir_handle->Close(dir_handle);

Acked-by Daniel P. Smith <dpsmith@apertussolutions.com>


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 04:58:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 04:58:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078243.1439225 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulh5X-00033Q-VG; Tue, 12 Aug 2025 04:58:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078243.1439225; Tue, 12 Aug 2025 04:58: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 1ulh5X-00033I-RW; Tue, 12 Aug 2025 04:58:19 +0000
Received: by outflank-mailman (input) for mailman id 1078243;
 Tue, 12 Aug 2025 04:58:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FCi3=2Y=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1ulh5X-00033C-Bb
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 04:58:19 +0000
Received: from mail-lj1-x22d.google.com (mail-lj1-x22d.google.com
 [2a00:1450:4864:20::22d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f5d2bfa2-7738-11f0-b898-0df219b8e170;
 Tue, 12 Aug 2025 06:58:17 +0200 (CEST)
Received: by mail-lj1-x22d.google.com with SMTP id
 38308e7fff4ca-3338149d8a3so56358011fa.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 21:58: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>
X-Inumbo-ID: f5d2bfa2-7738-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754974697; x=1755579497; 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=Fl5nblFzS+zxUAxpd/KW6BXU2tOQFqRW8XEJB5U+dV8=;
        b=R32dSyCzCvPE/4rVmN3fTvEkNWSoLVYWpUWwM4wV4dYZucWXf+EBwIrF54tfQ1RubU
         wOObZoWtguwsrXH+6PyXukBrAyqFobr/8E+uK/lGrVl+czLttzKu9yqxRy9SnBUGhrcL
         kRW/WuQkxoPusLPZcYIpbDOKezlKhtXgPz8s25fihOdpx6C6k55yz3I+X+bKUEk0KB2E
         cNglvxIkbRr/XVQaLuOOXscA088m7xo/fcouMs7ZJZt39U6fV6/l31SJocw8Xow54kxA
         VK+k/t26fTMOmyXAnne8hNe6zvY7+ssCYozMJcRNJXJ92yWG9id6jWMz8mGfDoVdTOe+
         CTiQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754974697; x=1755579497;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=Fl5nblFzS+zxUAxpd/KW6BXU2tOQFqRW8XEJB5U+dV8=;
        b=XQx1aMRTwAIwYwL2/hfq8tykF5fNBZEgKmICpuGjO1hRJYEi6F8CYBiYuc7fv4uZOJ
         lv+0L2i1/m0yrBvNje8MBJYxgRPoUYUj03QqpmieWbWiTpE9oCh5/eUZJMeQevMG81Lg
         rtEoKDEGwYTvS5N8+/CWYGJ9ukCDd9yls4RHOz8Ma1/kyo3oiJ5vbJtFRaGoDDyBLVru
         hHByF5+uHfrqjL2ytGMdzk4w2adSI3fu68pPE4vISRSFydK+T3eW6FarB/kNyzx0O+aC
         zpUXdAFQt7Y9ULEOQw4BQk7fedbvg3H0PxwKuliD9D4IauvMPRoqiaLEvD3WyGmt+1hw
         qBuA==
X-Gm-Message-State: AOJu0YyJFX0RFfGxaC0sS2xFJJ2qMPOjOABEZlBXPWoRMlVKkg+Rg/Py
	P86T27mC+WzpXLuq1YY7NVuF+HMrFQY4eRlIJv4cObigZfG3hYfecn6th/E8LhAZOBDyVZY9G1t
	OviRtssCbFUweUoNoqzI9ZNXNEIFbQdU=
X-Gm-Gg: ASbGnctrk6Yd+Iy+FyGHAO2EhU6gTtrC3TrYzucLY7VkxcOgi5q9mgYyu9c7loaY1OB
	8Wno0uUeNZgu6BP/HSajMFAUg1XqzO0EO0LDnCnFg5+r5JYl1O1GexL1pBp/lczMzkTxCYNj5th
	fZoQMW9+HX9A9qYgQYRy0k3eKyFydMo8AGWPMszdiChHIbCE7nIvwof1iAMFXmQ+/9qDvLMNHs7
	C+v5fU53Pwmi5wy
X-Google-Smtp-Source: AGHT+IFVYvj/rAMU9CeFCM2/BSO3h5OoVP0TSq9ETG4qzqIrLOccC53KZKP9dNvPzcCGTL7x8GSRxyPxQXGLlzYsuWk=
X-Received: by 2002:a05:651c:1115:b0:32b:968d:2019 with SMTP id
 38308e7fff4ca-333d7be8608mr4859971fa.18.1754974696526; Mon, 11 Aug 2025
 21:58:16 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1754943874.git.mykola_kvach@epam.com> <2b3afe23-1d47-4a66-bf0f-9a94b0b906c7@xen.org>
In-Reply-To: <2b3afe23-1d47-4a66-bf0f-9a94b0b906c7@xen.org>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 12 Aug 2025 07:58:05 +0300
X-Gm-Features: Ac12FXwwrPi18rr0OaP4V7p08dvDV9TLMSOaLE-G8WzY7yIqwcaPWUClDoB73qs
Message-ID: <CAGeoDV-T8+0DSZN9n9XF5mguONKkXO+vQGGBrNtpGydDm3Z2BA@mail.gmail.com>
Subject: Re: [PATCH v5 00/12] Add initial Xen Suspend-to-RAM support on ARM64
To: Julien Grall <julien@xen.org>
Cc: xen-devel@lists.xenproject.org, Mykola Kvach <mykola_kvach@epam.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>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Julien,

On Tue, Aug 12, 2025 at 12:53=E2=80=AFAM Julien Grall <julien@xen.org> wrot=
e:
>
> Hi Mykola,
>
> On 11/08/2025 21:47, Mykola Kvach wrote:
> > From: Mykola Kvach <mykola_kvach@epam.com>
> >
> > This is part 2 of version 5 of the ARM Xen system suspend/resume patch
> > series, based on earlier work by Mirela Simonovic and Mykyta Poturai.
>
> Thanks for adding support for Suspend-to-RAM. You mention this is part
> 2, can you clarify what's the state of part 1? Is this already merged?
>
> If not, then can you add a link in the cover letter? This would be
> helpful to know the review ordering.

Thank you for pointing this out. I missed adding the link to the
corresponding part of this patch series. Here is part 1:
https://patchew.org/Xen/cover.1754595198.git.mykola._5Fkvach@epam.com/

>
> Cheers,
>
> --
> Julien Grall
>

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 05:42:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 05:42:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078241.1439236 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulhmR-00013s-3V; Tue, 12 Aug 2025 05:42:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078241.1439236; Tue, 12 Aug 2025 05:42:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulhmR-00013l-0m; Tue, 12 Aug 2025 05:42:39 +0000
Received: by outflank-mailman (input) for mailman id 1078241;
 Tue, 12 Aug 2025 04:53:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Iua9=2Y=linux.dev=lance.yang@srs-se1.protection.inumbo.net>)
 id 1ulh0w-0002yj-4Z
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 04:53:34 +0000
Received: from out-182.mta1.migadu.com (out-182.mta1.migadu.com
 [95.215.58.182]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 48e10de0-7738-11f0-b898-0df219b8e170;
 Tue, 12 Aug 2025 06:53:27 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 48e10de0-7738-11f0-b898-0df219b8e170
Message-ID: <4865af61-7343-4c60-b4e2-f142f92b7c79@linux.dev>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1;
	t=1754974406;
	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=vxkRGPtW/Hy53i4ls2hik5N/SCj/n27xlLut7svn+U8=;
	b=p9Nqks/mlOZN/tGrqRDmjtIpBiBe1xj7j/3hPcPcHoAgdhOSWGsOvQGG4WWQYwUf16ocpN
	/eSOnoYSrPeVJDmil+MF/Q4G88O3SeFZwq9agCDOjLtfcZ875hNUGHK2AXTesoYOVApLl4
	Vj8yiy6OgDEwRzTUKixNKG2ngK13V1Y=
Date: Tue, 12 Aug 2025 12:52:59 +0800
MIME-Version: 1.0
Subject: Re: [PATCH v3 01/11] mm/huge_memory: move more common code into
 insert_pmd()
Content-Language: en-US
To: David Hildenbrand <david@redhat.com>
Cc: linux-mm@kvack.org, xen-devel@lists.xenproject.org,
 linux-fsdevel@vger.kernel.org, nvdimm@lists.linux.dev,
 linuxppc-dev@lists.ozlabs.org, Andrew Morton <akpm@linux-foundation.org>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Juergen Gross <jgross@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Dan Williams <dan.j.williams@intel.com>, Matthew Wilcox
 <willy@infradead.org>, Jan Kara <jack@suse.cz>,
 Alexander Viro <viro@zeniv.linux.org.uk>,
 Christian Brauner <brauner@kernel.org>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>, Vlastimil Babka
 <vbabka@suse.cz>, Mike Rapoport <rppt@kernel.org>,
 Suren Baghdasaryan <surenb@google.com>, Michal Hocko <mhocko@suse.com>,
 Zi Yan <ziy@nvidia.com>, Baolin Wang <baolin.wang@linux.alibaba.com>,
 Nico Pache <npache@redhat.com>, Ryan Roberts <ryan.roberts@arm.com>,
 Dev Jain <dev.jain@arm.com>, Barry Song <baohua@kernel.org>,
 Jann Horn <jannh@google.com>, Pedro Falcato <pfalcato@suse.de>,
 Hugh Dickins <hughd@google.com>, Oscar Salvador <osalvador@suse.de>,
 Alistair Popple <apopple@nvidia.com>, Wei Yang <richard.weiyang@gmail.com>,
 linux-kernel@vger.kernel.org
References: <20250811112631.759341-1-david@redhat.com>
 <20250811112631.759341-2-david@redhat.com>
X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers.
From: Lance Yang <lance.yang@linux.dev>
In-Reply-To: <20250811112631.759341-2-david@redhat.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Migadu-Flow: FLOW_OUT



On 2025/8/11 19:26, David Hildenbrand wrote:
> Let's clean it all further up.
> 
> No functional change intended.
> 
> Reviewed-by: Oscar Salvador <osalvador@suse.de>
> Reviewed-by: Alistair Popple <apopple@nvidia.com>
> Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
> Reviewed-by: Wei Yang <richard.weiyang@gmail.com>
> Signed-off-by: David Hildenbrand <david@redhat.com>

Nice. Feel free to add:

Reviewed-by: Lance Yang <lance.yang@linux.dev>

Thanks,
Lance

> ---
>   mm/huge_memory.c | 72 ++++++++++++++++--------------------------------
>   1 file changed, 24 insertions(+), 48 deletions(-)
> 
> diff --git a/mm/huge_memory.c b/mm/huge_memory.c
> index 2b4ea5a2ce7d2..5314a89d676f1 100644
> --- a/mm/huge_memory.c
> +++ b/mm/huge_memory.c
> @@ -1379,15 +1379,25 @@ struct folio_or_pfn {
>   	bool is_folio;
>   };
>   
> -static int insert_pmd(struct vm_area_struct *vma, unsigned long addr,
> +static vm_fault_t insert_pmd(struct vm_area_struct *vma, unsigned long addr,
>   		pmd_t *pmd, struct folio_or_pfn fop, pgprot_t prot,
> -		bool write, pgtable_t pgtable)
> +		bool write)
>   {
>   	struct mm_struct *mm = vma->vm_mm;
> +	pgtable_t pgtable = NULL;
> +	spinlock_t *ptl;
>   	pmd_t entry;
>   
> -	lockdep_assert_held(pmd_lockptr(mm, pmd));
> +	if (addr < vma->vm_start || addr >= vma->vm_end)
> +		return VM_FAULT_SIGBUS;
>   
> +	if (arch_needs_pgtable_deposit()) {
> +		pgtable = pte_alloc_one(vma->vm_mm);
> +		if (!pgtable)
> +			return VM_FAULT_OOM;
> +	}
> +
> +	ptl = pmd_lock(mm, pmd);
>   	if (!pmd_none(*pmd)) {
>   		const unsigned long pfn = fop.is_folio ? folio_pfn(fop.folio) :
>   					  fop.pfn;
> @@ -1395,15 +1405,14 @@ static int insert_pmd(struct vm_area_struct *vma, unsigned long addr,
>   		if (write) {
>   			if (pmd_pfn(*pmd) != pfn) {
>   				WARN_ON_ONCE(!is_huge_zero_pmd(*pmd));
> -				return -EEXIST;
> +				goto out_unlock;
>   			}
>   			entry = pmd_mkyoung(*pmd);
>   			entry = maybe_pmd_mkwrite(pmd_mkdirty(entry), vma);
>   			if (pmdp_set_access_flags(vma, addr, pmd, entry, 1))
>   				update_mmu_cache_pmd(vma, addr, pmd);
>   		}
> -
> -		return -EEXIST;
> +		goto out_unlock;
>   	}
>   
>   	if (fop.is_folio) {
> @@ -1424,11 +1433,17 @@ static int insert_pmd(struct vm_area_struct *vma, unsigned long addr,
>   	if (pgtable) {
>   		pgtable_trans_huge_deposit(mm, pmd, pgtable);
>   		mm_inc_nr_ptes(mm);
> +		pgtable = NULL;
>   	}
>   
>   	set_pmd_at(mm, addr, pmd, entry);
>   	update_mmu_cache_pmd(vma, addr, pmd);
> -	return 0;
> +
> +out_unlock:
> +	spin_unlock(ptl);
> +	if (pgtable)
> +		pte_free(mm, pgtable);
> +	return VM_FAULT_NOPAGE;
>   }
>   
>   /**
> @@ -1450,9 +1465,6 @@ vm_fault_t vmf_insert_pfn_pmd(struct vm_fault *vmf, unsigned long pfn,
>   	struct folio_or_pfn fop = {
>   		.pfn = pfn,
>   	};
> -	pgtable_t pgtable = NULL;
> -	spinlock_t *ptl;
> -	int error;
>   
>   	/*
>   	 * If we had pmd_special, we could avoid all these restrictions,
> @@ -1464,25 +1476,9 @@ vm_fault_t vmf_insert_pfn_pmd(struct vm_fault *vmf, unsigned long pfn,
>   						(VM_PFNMAP|VM_MIXEDMAP));
>   	BUG_ON((vma->vm_flags & VM_PFNMAP) && is_cow_mapping(vma->vm_flags));
>   
> -	if (addr < vma->vm_start || addr >= vma->vm_end)
> -		return VM_FAULT_SIGBUS;
> -
> -	if (arch_needs_pgtable_deposit()) {
> -		pgtable = pte_alloc_one(vma->vm_mm);
> -		if (!pgtable)
> -			return VM_FAULT_OOM;
> -	}
> -
>   	pfnmap_setup_cachemode_pfn(pfn, &pgprot);
>   
> -	ptl = pmd_lock(vma->vm_mm, vmf->pmd);
> -	error = insert_pmd(vma, addr, vmf->pmd, fop, pgprot, write,
> -			   pgtable);
> -	spin_unlock(ptl);
> -	if (error && pgtable)
> -		pte_free(vma->vm_mm, pgtable);
> -
> -	return VM_FAULT_NOPAGE;
> +	return insert_pmd(vma, addr, vmf->pmd, fop, pgprot, write);
>   }
>   EXPORT_SYMBOL_GPL(vmf_insert_pfn_pmd);
>   
> @@ -1491,35 +1487,15 @@ vm_fault_t vmf_insert_folio_pmd(struct vm_fault *vmf, struct folio *folio,
>   {
>   	struct vm_area_struct *vma = vmf->vma;
>   	unsigned long addr = vmf->address & PMD_MASK;
> -	struct mm_struct *mm = vma->vm_mm;
>   	struct folio_or_pfn fop = {
>   		.folio = folio,
>   		.is_folio = true,
>   	};
> -	spinlock_t *ptl;
> -	pgtable_t pgtable = NULL;
> -	int error;
> -
> -	if (addr < vma->vm_start || addr >= vma->vm_end)
> -		return VM_FAULT_SIGBUS;
>   
>   	if (WARN_ON_ONCE(folio_order(folio) != PMD_ORDER))
>   		return VM_FAULT_SIGBUS;
>   
> -	if (arch_needs_pgtable_deposit()) {
> -		pgtable = pte_alloc_one(vma->vm_mm);
> -		if (!pgtable)
> -			return VM_FAULT_OOM;
> -	}
> -
> -	ptl = pmd_lock(mm, vmf->pmd);
> -	error = insert_pmd(vma, addr, vmf->pmd, fop, vma->vm_page_prot,
> -			   write, pgtable);
> -	spin_unlock(ptl);
> -	if (error && pgtable)
> -		pte_free(mm, pgtable);
> -
> -	return VM_FAULT_NOPAGE;
> +	return insert_pmd(vma, addr, vmf->pmd, fop, vma->vm_page_prot, write);
>   }
>   EXPORT_SYMBOL_GPL(vmf_insert_folio_pmd);
>   



From xen-devel-bounces@lists.xenproject.org Tue Aug 12 06:12:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 06:12:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078261.1439246 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uliFb-0005JA-DA; Tue, 12 Aug 2025 06:12:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078261.1439246; Tue, 12 Aug 2025 06:12: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 1uliFb-0005J3-A2; Tue, 12 Aug 2025 06:12:47 +0000
Received: by outflank-mailman (input) for mailman id 1078261;
 Tue, 12 Aug 2025 06:12:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Pr65=2Y=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uliFa-0005Ix-Cu
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 06:12:46 +0000
Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com
 [2a00:1450:4864:20::632])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5a2e55b9-7743-11f0-b898-0df219b8e170;
 Tue, 12 Aug 2025 08:12:40 +0200 (CEST)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-af95b919093so752826066b.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 23:12: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
 a640c23a62f3a-af986a477c4sm1300187966b.56.2025.08.11.23.12.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 23:12: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>
X-Inumbo-ID: 5a2e55b9-7743-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754979160; x=1755583960; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=r3hxZMC5xIX5GH/cs4otg6DKuNq6g09SkQ5PaaSNAu4=;
        b=aKfib5TO0zzWXvHPiDSLLe+aximGWSsQVIPUHsbCZ0ku4rWUxLBr/jpgzPoV42dtlp
         Zqvm3iBhf4/oxFGc0BzHGTj+NULbaG96KX2RhPcZw6OrwLxrDZer5DD7q78a+RFWDtov
         mYCS0goN6W8tAaI7l3Vjd86f/UyXgnNZ2hWgZZASzxYT4a/F03KXflh/DisKCfH1SM6i
         nZ5LSPGii86InYHyGuRDTY4SoritHo7FK7dXHiPhMQWPsJgX1KDkDRt85sXo8NRFOOn2
         sBK0FGzrjnQn+hYv4GTM5Rz6If9ILKlQxOlFkN67NgPBoBFxaMejqaRKDsSpl3Tqw4wP
         M5zw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754979160; x=1755583960;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=r3hxZMC5xIX5GH/cs4otg6DKuNq6g09SkQ5PaaSNAu4=;
        b=AntgdUtqfZlJLpH66IcvW1kNWY48j2mrpGq6390Be/UztTF4SVssz2kIbcPQ9oHQU9
         XsfaXcr1Zz/0Uo9ONUSLkvq8xGyr2zuxeEDBufHNSRHDYmpU+qDqDZlI8CRb1YQJ8UU2
         avBYTNEflpFaVXzQUUbWHlTbDV8dvDZUSMsqgj+QgAfaNYvjdow/ctf9c+JKia59LfMX
         z4t1cisfCiQJwUbrqTYEX7LmQ92J4jjFo/R/OubJ6JP+qBvhiTo4AnrZU3Tzw5ABaMla
         j2CgsVscvHOpg0JswanZUxrRiESFJlJfTihzDocqaBpT8U4qv4Ttjc0M9WKw6fb39Y4T
         t35w==
X-Forwarded-Encrypted: i=1; AJvYcCXkT5rCL16jwDTcjN5/4JwjqAEhzRHYx2NrNi6KfKLc7zSOLA7vMc+dUatcJUfu7R573M71yeDi+54=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzIRtvrY1gXvHCye7ntrN9OYzeDIF0kxC1A6Ur8mJV705j6SeJ1
	KrCBYf+JzHMEaxULSIGrj8jpOlolpfUwQ0rDgS/DW1HJ8WrbSqABwhztjXxCeHakX6p6VoG4xZR
	7Z7Y=
X-Gm-Gg: ASbGnctxLcfPGE7//KWRtEbRd14aoHpEfGecEzHvin3W8E5gJ+f8Y96MplTI2SywA1I
	Ux2YKv2WbnUj3ylhX63UwnJ5KCaaBcewGDPVkxVYJvaXDmwoC4o+2ITZkb+8ApySgZnZaXL4ZxP
	VxBwoCx2m/Ext9SfskbxSbnAePBDyizks7oYkgwPBiwWACKEORMWXTddro+bWd/Wq7s9ym3QcKr
	OlKKX4OGoLcF0sd8ldPFSYhSZgikjpcTaG2M+TIAi7Rrf9KFXqzCwfVHLcGtSBLsZXvDGF873nb
	LlMQaLfTNiTmloIGgk3EntApAlzSlkAs4yLmC+wqI4XrKqFSUyhXJcTiouTgnc1Iv5Bqe2v/mHF
	BeHlDl61ZePs3cSwX2wdQO/HlnlbsgMLwp/zBdvf1qS+8ELQ+xNQqqydvEDbyljSWlZxnqgANm/
	Sv8Fz492a2gsoowAoxPkJy9B2/U70H
X-Google-Smtp-Source: AGHT+IGCWjMuKsYZDrABMFt/iKsaW2tCX8B9dUF/t9aJ3vVjOrVNojZxb3GWQx92ohr0EUY9nqk0WQ==
X-Received: by 2002:a17:907:1b11:b0:ae3:74be:49ab with SMTP id a640c23a62f3a-afa1def71c6mr204012666b.10.1754979160269;
        Mon, 11 Aug 2025 23:12:40 -0700 (PDT)
Message-ID: <755dd957-514b-4316-82f5-3619c19cbb15@suse.com>
Date: Tue, 12 Aug 2025 08:12:39 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] EFI/runtime: switch to xv[mz]alloc_array()
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Cc: Marek Marczykowski <marmarek@invisiblethingslab.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <41b7e14c-59ef-40f5-8c43-69bdc5fb4531@suse.com>
 <761b584a-51fb-403d-948e-3366501cea50@apertussolutions.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: <761b584a-51fb-403d-948e-3366501cea50@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.08.2025 02:19, Daniel P. Smith wrote:
> On 7/23/25 09:39, Jan Beulich wrote:
>> Use the more "modern" form, thus doing away with effectively open-coding
>> xmalloc_array() at the same time. While there is a difference in
>> generated code, as xmalloc_bytes() forces SMP_CACHE_BYTES alignment, if
>> code really cared about such higher than default alignment, it should
>> request so explicitly.
> 
> While I don't object to the change itself, I think this description is a 
> bit over simplification of the change. If the allocation is under 
> PAGE_SIZE, then they are equivalent, but if it is over the page size 
> there are a few more differences than just cache alignment. It 
> completely changes the underlying allocator. I personally also find it a 
> bit of a stretch to call xmalloc_bytes(size) an open coded version of 
> xmalloc_array(char, size).

My take is that xmalloc_bytes() should never have existed. Hence why I
didn't add xzmalloc_bytes() when introducing that family of interfaces.

> With a stronger description of the change,

So what exactly do you mean by "stronger"? I can add that in the unlikely
event that one of the allocations is (near) PAGE_SIZE or larger, we now
wouldn't require contiguous memory anymore. Yet based on your comment at
the top I'm not quite sure if that's what you're after and/or enough to
satisfy your request.

> Acked-by: Daniel P. Smith <dpsmith@apertussolutions.com>

Thanks, but will need clarification first as per above.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 06:30:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 06:30:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078273.1439256 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uliWE-0007Bn-KC; Tue, 12 Aug 2025 06:29:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078273.1439256; Tue, 12 Aug 2025 06:29: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 1uliWE-0007Bg-HH; Tue, 12 Aug 2025 06:29:58 +0000
Received: by outflank-mailman (input) for mailman id 1078273;
 Tue, 12 Aug 2025 06:29:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Pr65=2Y=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uliWD-0007BX-Ti
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 06:29:57 +0000
Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com
 [2a00:1450:4864:20::52e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c11c5204-7745-11f0-b898-0df219b8e170;
 Tue, 12 Aug 2025 08:29:52 +0200 (CEST)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-615d1865b2dso7533935a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 23:29:52 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-615a8f2a448sm19708905a12.20.2025.08.11.23.29.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 23:29: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>
X-Inumbo-ID: c11c5204-7745-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754980192; x=1755584992; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=UOpw8XetIMan0yhWiD5lJE5cK4SohqTFNxbbqrq+sRY=;
        b=OHpUN4jO8CtX1XDpnKLFfRUcDTuMSsxOBRlizlbHxrm/MvaESTs2qfxaQOpO8PM3jt
         X88hJcuznBo0tnNmARb6v7JP+vFp781JytQIoRBp/BMDk8eMWW3HrIjnJ3PQHKsYQjMB
         ODr05LSvEEyku4HaA8VxhRC1+t7Qt6xRygRlj/PzEyftXYc2tZ+2UGRBIO/NEN83xVsO
         xw0CJ7GL0+uYhQb61Fz2iroDoV3cVs11M6D1zRFrBGjPdSVlYkdXHd7y3pqT/ytZ9+Nu
         jAMUQ6tya0dImeIG6Yvt+5OI6N/cxV2tSfhR4tV9zGpaFsHMjIBq5oPmjql5aiOK77nB
         TqzA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754980192; x=1755584992;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=UOpw8XetIMan0yhWiD5lJE5cK4SohqTFNxbbqrq+sRY=;
        b=k4jD82MddLQ7NBWeaW6ZPTfENGdnRJB2LCgNuC8yMRqht6eIib95u9Hm9XlVCofSdw
         HUitcnlgWggmGHTum8mCaDpNYl9eQXKQZq5UKKdSwa5+djZgGwvTt2a+EkdQyPjkWDVK
         W9UpCxty9DkamwDCXHbsrs8MvqBY49B3Itil28SAjn5GQ0p9uigPgGkaZv6R88XAqtTB
         OD8rHKr/oDNST4RUx44pOOGijs6ihqd2BVOIWylDid9UrAE0ClmWm/GCS5VOLhya2NTv
         1mCQ32oFz3BkPK/XM4XjPsjbzfDY9/QLgw9fMEVV7LFsOIaNZgDzjP7BEniXS6IclBPF
         nU5Q==
X-Forwarded-Encrypted: i=1; AJvYcCVlGWYO6RDEmIOy8vrB9sarkTIGeHVWg08/AUQigCV68iuyAnmCkJF6OArdrFkn9wVxLX6zGe4sgFM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwQBoLR0BhGxfsT4G2AnqppyrHFmrwllb1P1uiyo06ireO6gYSX
	EJ+0u7Jit2kVtuuC/xXJvYU6shXDj6Dkkv/qfRhZTY617XWxjITo7ozwuT/atb57SQ==
X-Gm-Gg: ASbGncsE/FG8KitSHMuSk9xg85D0Sm4N4q8n0LNStQJeS44hr8RLVnzgwW0C06iZp+/
	g7xufMMimK/5djDbfYvTZ0EKfg9NjAKz711TDZ5FenGT+u5fxCM46+ds5gieRwkUSf1Oa/HmKs1
	8YhtbM+s6ZjMkoJ2Bv/DuNeZbu0+I+G6hHlhLh9VYhS6zr98qN/olpL9XrBrTtAszpbDxW35m/k
	XHebhmy1EO0DacSxEILPmKWZf0bsel7jeVCd2Lp63Pu5E1SJEiP5p2FNasbRYOCKG5U5lCdkXGO
	RA9e1iZUBUt+N5/mcOUOP/4Ynqvb7Y+FrAsRPcOIWfasScc1vxYekkyr4c3ppusxYSrvnNinJcj
	TRzT9ENEcs4t4r9dUV/I7y5uAWI1SbFtTLSJ0MjMmWnJSDFYREaVYD49k5EeAWvxkBhWTSsnW6u
	KkAXsI1vzrhqxXyCZDvQ==
X-Google-Smtp-Source: AGHT+IEK4yiVmkCLThUnyCElrDWbiQ23/ZYLAF+98DtJB4d+67Q39FPWgJ2JZwBxuUbbaZANs5uFyg==
X-Received: by 2002:a05:6402:2354:b0:618:c2d:dd97 with SMTP id 4fb4d7f45d1cf-6184ea28ea0mr1685512a12.1.1754980192024;
        Mon, 11 Aug 2025 23:29:52 -0700 (PDT)
Message-ID: <ece155ab-d247-41cb-b3a1-ae4233423cef@suse.com>
Date: Tue, 12 Aug 2025 08:29:50 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] Arm: drop assertion from page_is_ram_type()
To: Julien Grall <julien@xen.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <804094ae-bb76-4165-9e07-46b775b4b46e@suse.com>
 <86faa2fa-9f23-49a9-a909-a3dd3d5a938f@xen.org>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <86faa2fa-9f23-49a9-a909-a3dd3d5a938f@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.08.2025 19:24, Julien Grall wrote:
> On 11/08/2025 14:01, Jan Beulich wrote:
>> Its uses in offline_page() and query_page_offline() make it reachable on
>> Arm, as long as XEN_SYSCTL_page_offline_op doesn't have any Arm-specific
>> code added. It being reachable was even mentioned in the commit
>> introducing it, claiming it "clearly shouldn't be called on ARM just
>> yet".
> 
> So I agree that the function can be reached. But then I don't think the 
> function can simply return 0.
> 
> The name is too generic enough that someone may end up to use it in 
> common code and there will be no signal to the user that the function 
> will not properly indicate a RAM page on Arm.
> 
> I can think of two possible approaches:
> 
> 1/ Implement properly page_is_ram_type(). We don't have an e820, but we 
> could mimick it using the memory banks we stored.
> 2/ Rename page_is_ram_type() to page_offlinable() (or similar) so it is 
> clear that the common use is for offlining.
> 
> The latter might be the simplest.

I consider page_offlinable() potentially ambiguous: When you offline a PCI
device, you offline its MMIO as well, for example. Or, much like RAM, some
page in, say, a video device's framebuffer may have gone bad. One might
think that such would then also be covered by that function. So minimally
page_offlinable_ram() or page_is_offlinable_ram(), I think. That would
then have the benefit of allowing an avenue towards x86 also making its
checking more precise, as certain RAM ranges can't possibly be offlined.
If that's fine with you, I can enlarge the patch accordingly.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 06:52:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 06:52:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078286.1439265 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulirv-0002z3-EA; Tue, 12 Aug 2025 06:52:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078286.1439265; Tue, 12 Aug 2025 06:52:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulirv-0002yw-BT; Tue, 12 Aug 2025 06:52:23 +0000
Received: by outflank-mailman (input) for mailman id 1078286;
 Tue, 12 Aug 2025 06:52:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Pr65=2Y=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uliru-0002yq-Fl
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 06:52:22 +0000
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com
 [2a00:1450:4864:20::52a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e4cc83de-7748-11f0-a327-13f23c93f187;
 Tue, 12 Aug 2025 08:52:21 +0200 (CEST)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-605b9488c28so9097865a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 11 Aug 2025 23:52:21 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-615a91141e9sm19551845a12.58.2025.08.11.23.52.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 11 Aug 2025 23:52: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>
X-Inumbo-ID: e4cc83de-7748-11f0-a327-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754981540; x=1755586340; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=CU6l/YxR38H56kfp+AvQsVaRCIYqsznCnye+9vNlqXc=;
        b=gLt/ChTkBps9pzkyZGTpZopgcFTgMflNApWnyxxVhWSWMfGY/C8WoeYc8EaWI2shQS
         8cgm9vBhDhnF/s8VwK4ez8LR2vQ8WKmRzBfLT227iY6gKfCNa0bzK0FFnZC0xpCai/Hv
         JJ9xzg2UTDVDobFTl6I+plLFrUCukyP0q+dPbmri8vkYq3PPLvXFajB6tFrg5XX9x8LN
         qwJ7nlRcaIhJX815oJbhGKxTBYUW0EqPhWYvNIhsmCUa/ZmU/ixKE/gzGzq0rH+K9S5y
         keHEBmST+255jadDiEopMP/nGIXJBJew1rcoFEPpwFzAjFF7Dc5u0LDqM3FBYX9ynfcw
         PQlA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754981540; x=1755586340;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CU6l/YxR38H56kfp+AvQsVaRCIYqsznCnye+9vNlqXc=;
        b=CzBYUZv1P4Pmm/vcIC3nZpnVWwu5m4+3bt+t66fVEbCkT1w/WNfbNGWBohfGUOWm4N
         tZItqZ5uo4o+vu4p9ges1HGN2BQMKJAodp6gPS5zdopOndrSyIyiBoe7Fh2lfhhtTzh5
         fTYvXrlDlKpSX5c8b7FF0/3Iho2uTtc2sO3PhhCH8QmCjXuxVb10hqzGgQJbYREHwEyZ
         ioFwvRhzX7uvqU/y4NdGJjc68dB5Q5L1LNfr2Ii9l0RV0GLrIHFLGnkPAQsf0p5DKGE4
         arUBdk2yfJUpC6QcMc5v3DRXYPbKXKX/jT64hnv8B5iSH41nLfQxscjNQMue2S8Twu4A
         vKlg==
X-Forwarded-Encrypted: i=1; AJvYcCWkBpWnz9pCVivbkGwTSBgsYbI6KHtyBYfgymWLObKUFRhjDlhdet3W9nCShvilrzQ6ba/QVyDqaAw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzydDkRysbKVQYpywoiVvmyOPcEB7s9QjL+CVuY/FeV610Eim2L
	DdG52X6BQH62evb+a1KG9hlDVsOBMnaHReFJZG1FWmXM7Mk8mLxTIzY5MjpVhad2pA==
X-Gm-Gg: ASbGncvRg5EZRMvHHJrxzJGa63EkAvMoK3uDqHt0fMXrf8yrCCu+zXMGkYUxVMiIUA2
	o9bCR+7CSP8YUBY18ntG2pQiOV/VX0RzceaX4/R4L1UytNL9qUQJaQU8OE6na74lRS9b4o5v78G
	AokNdOWW8r3qw02+HnnSvGsZktpmA6Df3N7YW1ym800/B4hEOwPl2m1v7oEt7RcbUkDnCLr5FfQ
	eFmmj31vEYSTbzsX+HCmn04eK5yL/vyDO8XrtPbehcpKz9vVNptJIllKTEzmdCyMN0bgGi5QDEs
	ZDGefpGbmM0ZB3+JXF6yQzZ4c1PxnNtwC/xZ4kDAhPEvQ0EG79DZpKCFPhawztSJxoDMUpz1/5/
	DnEGReb/WDvtibwloNa5LIlEIJG5knWvDZrL5b14GRKYUG71IF6pcN8Bz5TPR+h733EiwgB9zaV
	lMZMfx65g=
X-Google-Smtp-Source: AGHT+IGIHo3ItpHf9LP6uFZElkGgRV++/2iHH18r9OKCr0sWzB7swAfosvGvyqb4KUtvA/zDoPGepA==
X-Received: by 2002:a05:6402:280e:b0:617:b6fe:b6a5 with SMTP id 4fb4d7f45d1cf-6184ecf27b1mr1679161a12.27.1754981540228;
        Mon, 11 Aug 2025 23:52:20 -0700 (PDT)
Message-ID: <61aeb2a2-dc53-4f52-ab65-a9a8143a3307@suse.com>
Date: Tue, 12 Aug 2025 08:52:18 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 2/8] emul/vuart: introduce framework for UART emulators
To: dmkhn@proton.me
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
References: <20250731192130.3948419-1-dmukhin@ford.com>
 <20250731192130.3948419-3-dmukhin@ford.com>
 <a416cc08-5970-433a-8015-5d2aa961a000@suse.com> <aJeZpiM35gOtB+4Z@starscream>
 <6953603b-8c3f-4f12-9f5e-45cb553fe8cc@suse.com> <aJqDCJp19/iMIfDq@kraken>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aJqDCJp19/iMIfDq@kraken>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.08.2025 01:55, dmkhn@proton.me wrote:
> On Mon, Aug 11, 2025 at 09:34:58AM +0200, Jan Beulich wrote:
>> On 09.08.2025 20:55, dmkhn@proton.me wrote:
>>> On Mon, Aug 04, 2025 at 12:11:03PM +0200, Jan Beulich wrote:
>>>> On 31.07.2025 21:21, dmkhn@proton.me wrote:
>>>>> @@ -354,6 +355,8 @@ static void cf_check dump_domains(unsigned char key)
>>>>>                             v->periodic_period / 1000000);
>>>>>              }
>>>>>          }
>>>>> +
>>>>> +        vuart_dump_state(d);
>>>>
>>>> How verbose is this going to get?
>>>
>>> Looks something like this:
>>> ```
>>> (XEN) [   88.334893] 'q' pressed -> dumping domain info (now = 88334828303)
>>> [..]
>>> (XEN) [   88.335673] Virtual ns16550 (COM2) I/O port 0x02f8 IRQ#3 owner d0
>>> (XEN) [   88.335681]   RX FIFO size 1024 in_prod 258 in_cons 258 used 0
>>> (XEN) [   88.335689]   TX FIFO size 2048 out_prod 15 out_cons 0 used 15
>>> (XEN) [   88.335696]   00 RBR 02 THR 6f DLL 01 DLM 00
>>> (XEN) [   88.335703]   01 IER 05
>>> (XEN) [   88.335709]   02 FCR 81 IIR c1
>>> (XEN) [   88.335715]   03 LCR 13
>>> (XEN) [   88.335720]   04 MCR 0b
>>> (XEN) [   88.335726]   05 LSR 60
>>> (XEN) [   88.335731]   06 MSR b0
>>> (XEN) [   88.335736]   07 SCR 00
>>>
>>> ```
>>
>> Definitely too much (for my taste) to put under 'q'.
> 
> I'll try to limit the number of printed lines; register dump can be made
> compact for sure.

Yet even then I'm inclined to say that device specific data simply doesn't
belong here.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 07:18:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 07:18:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078295.1439277 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uljH4-00067q-ES; Tue, 12 Aug 2025 07:18:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078295.1439277; Tue, 12 Aug 2025 07:18: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 1uljH4-00067j-Ab; Tue, 12 Aug 2025 07:18:22 +0000
Received: by outflank-mailman (input) for mailman id 1078295;
 Tue, 12 Aug 2025 07:18:21 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Pr65=2Y=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uljH3-00067d-2E
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 07:18:21 +0000
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com
 [2a00:1450:4864:20::636])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 85e4bfde-774c-11f0-a327-13f23c93f187;
 Tue, 12 Aug 2025 09:18:19 +0200 (CEST)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-af94e75445dso927778066b.0
 for <xen-devel@lists.xenproject.org>; Tue, 12 Aug 2025 00:18: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
 a640c23a62f3a-af91a219ecfsm2150557766b.94.2025.08.12.00.18.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Aug 2025 00:18: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>
X-Inumbo-ID: 85e4bfde-774c-11f0-a327-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754983099; x=1755587899; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=tYs6ssAz+uVr078xuY+6RZ0po0mZXiP/Xip2L0bl8qU=;
        b=fgvAWelCY9Vmx/XbrybiCy2i13csUBxG+hY0nwb+hpSvMO8KQLEe0UZORyhO556F36
         7imwWL2v6t/OGdB8ZY2CEnSYMPuqoNrDUPTBh7gUc1Vt4m5IhrLEet+4fUcMFDD0oEvQ
         1PRWG+T/4YU+6wcgW3cOOhd7QUAx6T7RMMssjBwrmYbJ4aSyhnoJqQIYt5UpIltXUfUT
         OFhXZSIGt4tU3nobYiUcW5PDQc4ggZLY1gQlJ2xOgNDGH52ZXQ5lIA/YpQFVTr8I5GsB
         4PQhl7m+5bux1XM0yOw2kwlUcjO0yyrM7+BJ5dCe5KEI1OZX6h9btfXo0LdMmyZVk91g
         p5jg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754983099; x=1755587899;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tYs6ssAz+uVr078xuY+6RZ0po0mZXiP/Xip2L0bl8qU=;
        b=Pbnzy/ACnsIiZ8b2H9WvcB3WNXI11nWb4lSm9H0KFLfBBu85JMSB9OnrOjsqppSern
         cnw/WldUA8TqsuwtKv8IqwERcQcDswb1FD95qDDG9GG+KlV57c+tEIIGOnkxKWzAmScD
         I9AsouXb74TqDR25nOWro8Ld2JcGZB9bJQuQWrvyjMlYCE22NbUuwZogH7yDMu7aLIFA
         RDh8TUkDW1i6ThFZ0R9R+5XEROVTsVw/vJ+wLt1oNhHAdC16HzabIKSR5/qGCciSgPkf
         oC9qhdeALqNRjcINZRkdjyjxZvHIFdh85BvPUU7P7Es3g4Dsj7lqugw6XgESNimhb/i4
         xWIg==
X-Forwarded-Encrypted: i=1; AJvYcCXcCl5BXSWYNtZ2X+sKR/Si0XGDDUC5EbwhdNWtQ64KG7Qs8s7eNfRYV/NcFxIB2NNNFZARboqE/UU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzOMNOFScylCqD3LngtrekoFQ1dPnublgbtE5ERF8MZUZY0qwPW
	l81yCcNhyEu+xIIl2CQySULGS0jQMvfEZjbXuJWP2X7y8VJ+08cT2+JPF9ioDAU2zA==
X-Gm-Gg: ASbGncuF+0z9epWdF81eAjl6A8K7D8YlXuLswgYmDBMItsgTuerbpTe44BGUu84t0Ac
	gTZv1b7ibX9COzN0WQ4MAKXJGoG2ugfSPADKe8taNRjOOkZE7/i47tYPTGFgEar7nSwFZAd4RbQ
	cIcfInmVUdlQUJ7n8NbmJ9bEQg66RkD9Z9GrYxENeGsTLVv9UTSTpuGhio/HTOGVahkPgVooSDl
	EMQPjpvqhRRTQEqE3Osnfv7LPYVhNjjmHIhmNb2GOEPLDfoR+cOljgKTBpqTiaIlntKknYx4nht
	eFFaaEhIqy0u/LAbG7xY47yHdc50IDMeVSeZ3Fc+9EwR5ooq7hiMOIUWbSfERrhyDG5joNJvC/7
	2mkTL7zGAX8Dxw2/wX9E50jbjCS5DqUTrMOfFgjj1i0kKhLGHi/REkuSyIStOGs1TQccmTx4fBn
	WBOU/Ux7c=
X-Google-Smtp-Source: AGHT+IGjVgtzcRxweTPnbV6uJNBrKqdgxTvvahXlONdSOOLcB8R2qYjfgnf/VUBrzFTSPlG7EHOhxg==
X-Received: by 2002:a17:907:961d:b0:af2:5229:bd74 with SMTP id a640c23a62f3a-afa1e089f5dmr221386166b.26.1754983099089;
        Tue, 12 Aug 2025 00:18:19 -0700 (PDT)
Message-ID: <67216d88-9296-43d1-aa46-54cefb53ea5d@suse.com>
Date: Tue, 12 Aug 2025 09:18:17 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 07/12] xen/arm: Add support for system suspend
 triggered by hardware domain
To: Mykola Kvach <xakep.amatop@gmail.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Cc: Mirela Simonovic <mirela.simonovic@aggios.com>,
 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>,
 Saeed Nowshadi <saeed.nowshadi@xilinx.com>,
 Mykyta Poturai <mykyta_poturai@epam.com>,
 Mykola Kvach <mykola_kvach@epam.com>, xen-devel@lists.xenproject.org
References: <cover.1754943874.git.mykola_kvach@epam.com>
 <c995126a9a61aecff7cb9a7c6fd28f091a332443.1754943875.git.mykola_kvach@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <c995126a9a61aecff7cb9a7c6fd28f091a332443.1754943875.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.08.2025 22:48, Mykola Kvach wrote:
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -1311,7 +1311,11 @@ int domain_shutdown(struct domain *d, u8 reason)
>          d->shutdown_code = reason;
>      reason = d->shutdown_code;
>  
> +#if defined(CONFIG_SYSTEM_SUSPEND) && defined(CONFIG_ARM)
> +    if ( reason != SHUTDOWN_suspend && is_hardware_domain(d) )
> +#else
>      if ( is_hardware_domain(d) )
> +#endif
>          hwdom_shutdown(reason);

There better wouldn't be any #ifdef here. Afaict you can easily use
IS_ENABLED(CONFIG_SYSTEM_SUSPEND). For CONFIG_ARM, though, I think some
new abstraction will need adding. E.g. HAS_HWDOM_SUSPEND (with want for
a better, yet not overly long name).

With the hwdom / ctldom separation work in mind I wonder though if it's
really hwdom to be in charge of initiating system suspend. Imo
conceptually that rather would want to be ctldom. Stefano?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 07:20:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 07:20:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078303.1439285 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uljIm-0007Z6-NH; Tue, 12 Aug 2025 07:20:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078303.1439285; Tue, 12 Aug 2025 07:20: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 1uljIm-0007Yz-Ke; Tue, 12 Aug 2025 07:20:08 +0000
Received: by outflank-mailman (input) for mailman id 1078303;
 Tue, 12 Aug 2025 07:20:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=3OTH=2Y=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1uljIk-0007TH-Lx
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 07:20:06 +0000
Received: from GVXPR05CU001.outbound.protection.outlook.com
 (mail-swedencentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c202::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id be0ffbea-774c-11f0-a327-13f23c93f187;
 Tue, 12 Aug 2025 09:19:54 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by AM9PR03MB7741.eurprd03.prod.outlook.com (2603:10a6:20b:41f::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.22; Tue, 12 Aug
 2025 07:19:51 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9009.018; Tue, 12 Aug 2025
 07:19: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>
X-Inumbo-ID: be0ffbea-774c-11f0-a327-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GOYGe8E3VkAfL+6wku4m3/UlryG37XyF46EDEwwVS3XGQTrZlFOeDSMrg3FfhIZLDDK7ePQDPrmJkPpw2yGspkBtIGUM61EXbG4xuzD5x/6uSGVEy85qvmDI6WUbWjGQ1kccHOfLn62vhIQOqOdFbM7CqmgKZPuL+ESpI+8PEw9Jw+r2+wyvzNS4DtRcX9hQV1EXjkNayY0yxATLHTEAq0bUl3IK17qfWheTPNe68SXwD+t2B4MmVpcp7AXGq67C5xSBMz2zpWzP0ZB8yNmjDaEO6MD5U34P90cEjxbOP+vS674j7Tkjv7zzJNOgTPNRb7XOQb+pFZrNQVLhSCO2fQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=S//gZqCtvvPAwwzI3qetOncGCnCD5p0diN9NwjXOHQU=;
 b=FbsIndthq08Lbbvea8he4cJdkW8ZmRC83SNMhGizE/MKKd6+Oqkbi5Efc/XXDbshDHcqEiVm+O7KJVaqivROrwz+iITsr6kcErcI8KYICepjGJX/PSSdr4U3uLBTJ2m4BqG0WCUj2CTEq/p1366Q/TGVAMQrYIw4HOFW1ZF37KCF3Tz8nJFPS2iEVqn8UZYfNGS6O4aruDitxnt9KeWntYz7kf90qw5l+NNAWdiEsjEkgI6eAKIYmeA9eLqQKw34jMmshgXmAksjGZcjVQecLuRMBNyKuxOLBTyUC19Ai0NYKmfJ85O9x36cYvGAiC/OIwH0KdcWe3X5imG0E0T4VQ==
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=S//gZqCtvvPAwwzI3qetOncGCnCD5p0diN9NwjXOHQU=;
 b=vvHBQqgHEUpcfKkgdACrrLvOZXk/p/IDBkYa8f5u84joHMmvWLopcowm90dGNFythQdyov7MpZ6OcLLEIaWYdr8D6VZdKkHm4QOgQLjXWbqCKaCmJExKzz4ADLMUIjz7jQ31YVwF2pytYgyJXDlXPL4MyvknOLAU9mo52XNCLzDM+TzyILHOmidl6xHli5sQHy4nyVeo7DlWPnFsHKoVPUbjOEpIfIplgtJqrZY22Hjj0IU9OVlLFCmr0m9PJbfmpzP73Vfe7tgXrkd2XO1mJ2b0kZ6ce4Xymofzv/v2uUmvCq5XlCgfSoS8q0hI80Et2vIha8ZWDlc5+qkxMsmrTQ==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.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>
Subject: Re: [PATCH] misra: comment default case in single-clause switch
Thread-Topic: [PATCH] misra: comment default case in single-clause switch
Thread-Index: AQHcCuaGmRofUvvSEEWe+78HEkEpW7Rd9A6AgACpHwA=
Date: Tue, 12 Aug 2025 07:19:51 +0000
Message-ID: <110fc2a9-2f48-4718-995b-3295b9c7e9aa@epam.com>
References:
 <1d3c5364b726e42a8c38c396f2e20efc52790f62.1754933752.git.dmytro_prokopchuk1@epam.com>
 <d82cc723a17ec65f12fd60182fd6fe20@bugseng.com>
In-Reply-To: <d82cc723a17ec65f12fd60182fd6fe20@bugseng.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV2PR03MB9572:EE_|AM9PR03MB7741:EE_
x-ms-office365-filtering-correlation-id: fe1945b6-6fdf-4970-d9da-08ddd970a0be
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|42112799006|376014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?MWYyQURoVjc3bzQzSDlvb08zVEl1Y05XSVphakx1Nk5Ea1BHLzNkNHppajJx?=
 =?utf-8?B?d0tBeXNIYjVPWEhBc2E0ZjFIRjZtK1Vra2FzM2RrSU45clpEUlNpaXoxa1VK?=
 =?utf-8?B?VVJ3WnorVjVNbGxWeUVlenJQc0R2NWludTdMR0psQWtYUnJCVFlIaHJSM3JF?=
 =?utf-8?B?a290dE8zWHlNVmxrQWZMbUk3eko0VGN5VGUzVDhuQlhDMm5Cd0dDUGFidmRG?=
 =?utf-8?B?ajZrdVlIVGVlWjlOQkp2K29sL2FEZmxuT3RpTDd1T1lscVJhMlcxUVlmQ0lC?=
 =?utf-8?B?K0RhbGZZVlF0cGplRnIwbWFUMDdUSWp3QnU2eGtjNGRDNm1DSmhYSVRlMHlG?=
 =?utf-8?B?d3Z1STdHcWp1ZllWb2ZyL3laUHppdHNwUERKckZtamFtZ3Q2UHcrZGlubnpl?=
 =?utf-8?B?WWhGaEtISFAzYUJ4aWR4RlBZS0M1ZURVR0RtVHg0UmRPQzZrOVNxM01qYnJD?=
 =?utf-8?B?S3QrS3cvbkZqM2FSRnRXNGhGM1JmcVgvakVBaTRUb0tNWE5zbDNYQ0N1TkM1?=
 =?utf-8?B?Um5MRjdzUnlrN0pyK3E3Mkl5NU5UUXhkMHFnMnVHVVREMVZxZzhlZWxSdW9v?=
 =?utf-8?B?Skd1TWdXcHFLR1RwLys4eXVJeExMY2s1Y2w1am01emh0aGpjcmo4U1pnZjB3?=
 =?utf-8?B?dlRVUVFxNHc0TGdrTFphZXNoZ2QxNElqZ2VCbGpIb0ZoTEdMTmFiYkhrWk1T?=
 =?utf-8?B?QTRWd3d2K3BhblRwU1Q2R0d0T3VCakRoZ2hZR1Z4V2JITkFTNk1pTDRIZ2Vz?=
 =?utf-8?B?Z3VnTCtPVlpuMGNkdlpVclJMb0hwTENLaWRFK2o5U2I3bEZPV0diUUs2dlRF?=
 =?utf-8?B?TUdnUEJ5OEZ3YkllR3ZFNm1HeTlEOWlKenNIRU1vRjRJcUtvMlI4UkJvMiti?=
 =?utf-8?B?OFBGQ2hrRXRDMW9Fdjd3VmhSV3FnTFR5ZkJpVzNNN3FsbG1WWGVwV1hWdDB6?=
 =?utf-8?B?dzRpTC9WT3pZY25ua3lBbHJkWTQ5STdRblRpRXJJSzF1VWNvN0ZIZUZxNnRu?=
 =?utf-8?B?bCtDS1BjbjFSbExOMVdmRTBlQzk2VzlWUTc1YndNTFVaRHl5dURmZUgxc3RD?=
 =?utf-8?B?YVI4L3VyUkRWYzFIbmY0azd0SmhNSjdXekVLcnFRU05jaU5hekxUUDltVWtJ?=
 =?utf-8?B?cW8xcWhOZENxSGh4TmlwM0ZQSnpnV2tjNEN4RmNhNitjOGM4V3hFcG1rMGdP?=
 =?utf-8?B?THcrU0pxZW5jckhjeUp3M09SZUk3djVmVVZEbnZVU2R5a2RxQWdIeWVrNytO?=
 =?utf-8?B?MnlYQWtiK0NpdSthaGZ1MFk1ZnRLYkFqNkRuTFpFZi9pVXdnVzJmRkdXVWZu?=
 =?utf-8?B?SExXSHdESmZUU2hCWVM4ZG1ZZnhHSVMwc05oQkRWY2hMQkE0eWFUT1NJb1k0?=
 =?utf-8?B?WjBhbWhlVzI4NXlCVEl5UTBWME5MVTRtK1duY2o1TjROUG5DUjVnN0JzNDNG?=
 =?utf-8?B?dmFxdWZRNlJVakIwaUwzeE1hbkhBK2p2Y0k1cVpLelRQYm1YLy91dzJPQW9P?=
 =?utf-8?B?WUdiL01DN1ZvcHdqSkxoZm1qM2Y0OG1Jb204dHRROStROHF1cGtXSFFVVXNW?=
 =?utf-8?B?aUFpTnk1ZHJGcW9oVEhSek5xbUpkb1BRT2RvM2JnYjRaZTV1akVrNWlWcjIr?=
 =?utf-8?B?bE1ITVdQWVgzTEhKRjFCRkY4eE5xS3MxemhMTDA1OEZXdC9wSmtNckExdS9s?=
 =?utf-8?B?a2M0YUlFeFVpTDkyVjhYOG9mMDVCc2lseXE2YmFJZVFkc3BWK0V0N3YveEtW?=
 =?utf-8?B?OWhkWk1nUEJhTUx6a1hCaytaZ3hpSytLZmJOd0RLQnRvZjV3N3U4V1lqOUxl?=
 =?utf-8?B?ZWdPbkNkZUtVdDcxMkxIUTdQd2ttNXRWbmcwZVdUamg2THpJbTVDMnVMaU5B?=
 =?utf-8?B?WEFhNHhNK3B5Zk5sVXY2RXpnZUZJUkxsWGVVblNDZUxHYzgzOGZ5Uks5NkZ2?=
 =?utf-8?Q?6HB9rv/wi7Y=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(42112799006)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?dndyVW5RSkp0RDdNTG1oT3JMblVHdCt1K0lZUFQxekJyMVEzSVUzZ1k3M1RF?=
 =?utf-8?B?OXIveXpid2lNdDlRZXhuMVd1YzRWTWhISHlwcjVHc0s4eWxoTVdVVmJNYTBP?=
 =?utf-8?B?SjNxL0c2MGovVlRMenNHc1REK09FWHc4Q212VllzMVdyS1J3NFF0bi90SWUz?=
 =?utf-8?B?MFc5dWNZNmozVkMySndxZjRiTDhxcDZTNGtWSkNLSnNNa0FGaWtFZ1RDRys3?=
 =?utf-8?B?N1drdU9HN3ltZWFRSjJMeGZVTDltTjUwcGlYVGxoSVlGRndBWmV2MHpmRjlm?=
 =?utf-8?B?N3Z0aklObExXUm1qNUhkU2hFNGluT1hLTXNaUUhvZnJFRHluSGZtS2hMZzVU?=
 =?utf-8?B?b2dKU0lGMHNmM0xvdndua0IrYVpkVWI2MXBaVloySDRHeXF1ajB2RzFZYkZj?=
 =?utf-8?B?bkpJcGo2VFE5VWc1UE9STitjRnBKT09rOVZrMmZjME00VlJCR3ZWenFDejlV?=
 =?utf-8?B?dFVHUE1iTjJ5SmVDbHRCLzZnWEUrNUxZR29LSEVnZ0RRaWpkSzlSZFFiRWgw?=
 =?utf-8?B?WHFucVlFZnNhQ2RvVXBER3FjSGlzUXN3bm5xZ2hOZkdHdjI4bDM1alIzWHFn?=
 =?utf-8?B?aFFjb0ZqYVFqN1hHYU1xVWVzYzhzeXpDWk1TUDRvcFRINGxqN2FCaDAxdG9s?=
 =?utf-8?B?dUIrTURnMXVEZnNTSGdrMWlHOURPSUNuRmNZOGJvL2g2ajg5WDJqajNUbmxS?=
 =?utf-8?B?U3A0N1E4Ym0vZzQ3czFqcUN5aldPR2ttVk9XczNpYzRWM205SVpQYklSU1d4?=
 =?utf-8?B?RGxMeXlPL29jOFZNcHRhNTl4ODVFc2llYXN0NFhsbXdXbi84S2NpaW5BZWxw?=
 =?utf-8?B?clVGVUJEU3RlcGlJbUMvQlhxQUg5RnJLL0kzdEE5NkU5bVdLS0o2UHo5VDJZ?=
 =?utf-8?B?bjZJN0VYcmQrakVsZ3pEN211amhFZ01UTDI0VjR2dUtLM3N5cnNmbWlxVzJG?=
 =?utf-8?B?T0FlcjJnK0RvOWZZK3BLc3FleUtTc2JxY1ExcUNCdzJXS3AvQytrczNXLytw?=
 =?utf-8?B?UUpnYXZWV0xYMW5NVml5cUxHTnNybnp1RDNTc0tXUUxOOU93dnJkS1YzZTZa?=
 =?utf-8?B?R3NMYkZDMkE3bnlUcnArWUtjV2hjSHp6RkVHYUJvZ0ZKU25WeWhua3lTK0wr?=
 =?utf-8?B?RldCRGNPN3R6YU1CZzdzOStwQVlUMVhuZkp4NGg3L0ludXNHTE9Xa2d2VDNE?=
 =?utf-8?B?SnVBYU5LVTFwOW51clVHSllLYmlid205OWcya3hpcENvSXZzaEZOKzNuemtN?=
 =?utf-8?B?a3lMZkJ2THUzdUlWVFM1NTRpQm5jNFJremt2NmRNZHlyZm14ejg1NHN5RVdD?=
 =?utf-8?B?ckM1V1h4L2VrMG8waEJIOHlFWGF0Y0ZseGR2bml0SWlVbXA1aFZjNWZtQWt2?=
 =?utf-8?B?SjlFQ25uYUhLTDVLM3YwaWVadjMyd3NyV2hzdEVYWHROc0xnSFFnQTN4YUpK?=
 =?utf-8?B?dUdUS1lneEdVSkJha0dXNXNNT2Zhck1Qa2xXTDV3WXVneXkxRlRXV2kzb053?=
 =?utf-8?B?ZEdPajArWi95U01rcHJtM2cxWG1IaGFFYjM5TEVkN1hVSVBWdHNCMXdPOG1M?=
 =?utf-8?B?cUNjd2JzeFRSeVoxb2ZHbWVoMnZCTjVBQlA0QWtiM2RlTEQ0Qy90WXdocGZa?=
 =?utf-8?B?TUhRYTArWFhHM0sxV1llWmd4Njh6VElkT2FVN0FuSVJ0YmRiWVJTRlVpMjla?=
 =?utf-8?B?VUNYL2ZtNE9WOENsTHVxYXlDcHFKeGptbE1QVUJoTGtFY25kRWNYQjhSVjN5?=
 =?utf-8?B?Q1hHN3gyOVFsR2M3QWg5YXVUTHhmc2cyOXF0WFArUTJLNGlNU3BFeVRoSUhI?=
 =?utf-8?B?U3k4UitQeDNhcVVGSG9zcndCSFhvRmE5V1RoNlVwVXBGWUt5U3hmckNJTVI3?=
 =?utf-8?B?dUUxQ25IOXhEeE56SjArRkEyS20rSE5IWVJKaytDUUZrWEZJODMzS0tvbk9k?=
 =?utf-8?B?dExLUlZXU3I0L25xQjlQU0JMRlZQWlBVUmVYbHVUbmVRKy9iT0s3UjdkejVj?=
 =?utf-8?B?ZitQeWtxRHQxVnJOU3hVd2oxSDhmVXBHdHRZKzFHRytxbVpkMG5QaERKNGR2?=
 =?utf-8?B?akwvTHpRR09NcEhpTFZ6RlJQNWY3TTduVjdETzlzcTNJNDJhOWcrUTVkbEFE?=
 =?utf-8?B?eFArMGxqSEhTVmhyRGphbUxncnNwYi94b2dzSnAzN3BETllQTzFYcWdlTzBm?=
 =?utf-8?B?RFE9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <DF37E4B34291534AA72C3030594876C1@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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fe1945b6-6fdf-4970-d9da-08ddd970a0be
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Aug 2025 07:19:51.2350
 (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: wgrYvJp+qK6LkED1tc9J8cmPMz+zQbdTtqvTMok+0ALhEi+r6oGIs6SHdecRmcoAblXDJktO0kUi7hxjOTU+DAjuFoSZeZckmFBOcC8UGG4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7741

DQoNCk9uIDgvMTIvMjUgMDA6MTQsIE5pY29sYSBWZXRyaW5pIHdyb3RlOg0KPiBPbiAyMDI1LTA4
LTExIDE5OjM2LCBEbXl0cm8gUHJva29wY2h1azEgd3JvdGU6DQo+PiBNSVNSQSBSdWxlIDE2LjQ6
IEV2ZXJ5IHN3aXRjaCBzdGF0ZW1lbnQgc2hhbGwgaGF2ZSBhIGRlZmF1bHQgbGFiZWwuIFRoZQ0K
Pj4gZGVmYXVsdCBjbGF1c2UgbXVzdCBjb250YWluIGVpdGhlciBhIHN0YXRlbWVudCBvciBhIGNv
bW1lbnQgcHJpb3IgdG8gaXRzDQo+PiB0ZXJtaW5hdGluZyBicmVhayBzdGF0ZW1lbnQuDQo+Pg0K
Pj4gVGhpcyBjaGFuZ2UgYWRkcyBjb21tZW50cyBpbiBkZWZhdWx0IGNhc2VzIGluIHNpbmdsZS1j
bGF1c2Ugc3dpdGNoZXMgdG8NCj4+IGF2b2lkIHZpb2xhdGlvbnMgb2YgdGhlIHJ1bGUgd2hlcmUg
dGhlIGBkZWZhdWx0YCBjbGF1c2UgbGFja3MgYSBzdWl0YWJsZQ0KPj4gY29tbWVudCBvciBzdGF0
ZW1lbnQuDQo+Pg0KPiANCj4gSWYgeW91IHdhbnQgdG8gZ28gdGhpcyB3YXkgdGhlbiBhdCBsZWFz
dCB0aGlzIGNvbmZpZyB3YW50cyBkcm9wcGluZzoNCj4gDQo+IC1kb2NfYmVnaW49IkEgc3dpdGNo
IHN0YXRlbWVudCB3aXRoIGEgc2luZ2xlIHN3aXRjaCBjbGF1c2UgYW5kIG5vIA0KPiBkZWZhdWx0
IGxhYmVsIG1heSBiZSB1c2VkIGluIHBsYWNlIG9mIGFuIGVxdWl2YWxlbnQgaWYgc3RhdGVtZW50
IGlmIGl0IA0KPiBpcyBjb25zaWRlcmVkIHRvIGltcHJvdmUgcmVhZGFiaWxpdHkuIg0KPiAtY29u
ZmlnPU1DM0EyLlIxNi40LHN3aXRjaF9jbGF1c2VzKz17ZGVsaWJlcmF0ZSwic3dpdGNoKDEpJiZk
ZWZhdWx0KDApIn0NCj4gLWRvY19lbmQNCj4gDQo+IGFuZCBwcm9iYWJseSB0aGlzIG9uZSB0b28g
KGhhdmVuJ3QgY2hlY2tlZCk6DQo+IA0KPiAtZG9jX2JlZ2luPSJBIHN3aXRjaCBzdGF0ZW1lbnQg
d2l0aCBhIHNpbmdsZSBzd2l0Y2ggY2xhdXNlIGFuZCBubyANCj4gZGVmYXVsdCBsYWJlbCBtYXkg
YmUgdXNlZCBpbiBwbGFjZSBvZiBhbiBlcXVpdmFsZW50IGlmIHN0YXRlbWVudCBpZiBpdCANCj4g
aXMgY29uc2lkZXJlZCB0byBpbXByb3ZlIHJlYWRhYmlsaXR5LiINCj4gLWNvbmZpZz1NQzNBMi5S
MTYuNixzd2l0Y2hfY2xhdXNlcys9e2RlbGliZXJhdGUsICJkZWZhdWx0KDApIn0NCj4gLWRvY19l
bmQNCj4gDQo+IEluIHRoZSBlbmQgaXQncyBhIHRyYWRlb2ZmOyBwbGFjaW5nIGEgY29tbWVudCB3
aXRoIGEgc3VpdGFibGUgDQo+IGFyZ3VtZW50YXRpb24gbWlnaHQgYmUgc3RyaWN0bHkgYmV0dGVy
IHRoYW4gc2ltcGx5IHRhZ2dpbmcgdGhlIHRvb2wgDQo+IHJlcG9ydCwgYXQgbGVhc3QgZnJvbSBh
IGRldmVsb3BlcidzIHBlcnNwZWN0aXZlLiBGcm9tIGEgTUlTUkEgY29tcGxpYW5jZSANCj4gc3Rh
bmRwb2ludCBpbiBteSBvcGluaW9uIGJvdGggYXJlIGZpbmUuIExldCdzIHNlZSB3aGF0IHRoZSBt
YWludGFpbmVycyANCj4gdGhpbmsuDQo+IA0KDQpBY2NvcmRpbmcgdG8gSmFuJ3MgY29tbWVudCBo
ZXJlDQpodHRwczovL3BhdGNoZXcub3JnL1hlbi83MjVlYzg2YWMxYWE4ODNjMzVmYjMwYjhmMjI2
Yzk1Y2JlMDkzNGU5LjE3NTQzMjIyOTkuZ2l0LmRteXRyby5fNUZwcm9rb3BjaHVrMUBlcGFtLmNv
bS8NCnRoZXJlIHdlcmUgZGlzY3Vzc2lvbnMgYWJvdXQgcGxhY2luZyBjb21tZW50cyBpbnNpZGUg
J2RlZmF1bHQnIGNhc2UuDQoNCkFjdHVhbGx5LCBteSBmaXJzdCBwYXRjaCByZW1vdmVkICdkZWZh
dWx0JyBjYXNlIGluIHNpbmdsZS1jbGF1c2Ugc3dpdGNoZXMuDQoNCkRteXRybw0KDQo+PiBTaWdu
ZWQtb2ZmLWJ5OiBEbXl0cm8gUHJva29wY2h1ayA8ZG15dHJvX3Byb2tvcGNodWsxQGVwYW0uY29t
Pg0KPj4gLS0tDQo+PiDCoHhlbi9hcmNoL2FybS9jcHVlcnJhdGEuYyB8IDUgKysrKysNCj4+IMKg
eGVuL2FyY2gvYXJtL2dpYy5jwqDCoMKgwqDCoMKgIHwgNiArKysrKysNCj4+IMKgeGVuL2FyY2gv
YXJtL21tdS9wMm0uY8KgwqAgfCA2ICsrKysrKw0KPj4gwqB4ZW4vYXJjaC9hcm0vdGltZS5jwqDC
oMKgwqDCoCB8IDYgKysrKysrDQo+PiDCoHhlbi9jb21tb24va2V4ZWMuY8KgwqDCoMKgwqDCoCB8
IDYgKysrKysrDQo+PiDCoDUgZmlsZXMgY2hhbmdlZCwgMjkgaW5zZXJ0aW9ucygrKQ0KPj4NCj4+
IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vY3B1ZXJyYXRhLmMgYi94ZW4vYXJjaC9hcm0vY3B1
ZXJyYXRhLmMNCj4+IGluZGV4IDE3Y2YxMzRmMWIuLmUzMWM3MjY5NGIgMTAwNjQ0DQo+PiAtLS0g
YS94ZW4vYXJjaC9hcm0vY3B1ZXJyYXRhLmMNCj4+ICsrKyBiL3hlbi9hcmNoL2FybS9jcHVlcnJh
dGEuYw0KPj4gQEAgLTczNSw2ICs3MzUsMTEgQEAgc3RhdGljIGludCBjcHVfZXJyYXRhX2NhbGxi
YWNrKHN0cnVjdCANCj4+IG5vdGlmaWVyX2Jsb2NrICpuZmIsDQo+PiDCoMKgwqDCoMKgwqDCoMKg
IHJjID0gZW5hYmxlX25vbmJvb3RfY3B1X2NhcHMoYXJtX2VycmF0YSk7DQo+PiDCoMKgwqDCoMKg
wqDCoMKgIGJyZWFrOw0KPj4gwqDCoMKgwqAgZGVmYXVsdDoNCj4+ICvCoMKgwqDCoMKgwqDCoCAv
Kg0KPj4gK8KgwqDCoMKgwqDCoMKgwqAgKiBEZWZhdWx0IGNhc2UgbGVmdCBlbXB0eSBhcyBvdGhl
ciBub3RpZmllciBhY3Rpb25zIGRvIG5vdCANCj4+IHJlcXVpcmUgaGFuZGxpbmcgaGVyZS4NCj4+
ICvCoMKgwqDCoMKgwqDCoMKgICogVGhlIHNpbmdsZSBDUFVfU1RBUlRJTkcgYWN0aW9uIGluIHRo
ZSBzd2l0Y2ggaXMgc3VmZmljaWVudCANCj4+IGJlY2F1c2UgdGhpcyBmdW5jdGlvbg0KPj4gK8Kg
wqDCoMKgwqDCoMKgwqAgKiBzcGVjaWZpY2FsbHkgaGFuZGxlcyBlbmFibGluZyBlcnJhdGEgd29y
a2Fyb3VuZHMgZHVyaW5nIA0KPj4gQ1BVIHN0YXJ0dXAuDQo+PiArwqDCoMKgwqDCoMKgwqDCoCAq
Lw0KPj4gwqDCoMKgwqDCoMKgwqDCoCBicmVhazsNCj4+IMKgwqDCoMKgIH0NCj4+DQo+PiBkaWZm
IC0tZ2l0IGEveGVuL2FyY2gvYXJtL2dpYy5jIGIveGVuL2FyY2gvYXJtL2dpYy5jDQo+PiBpbmRl
eCBlODBmZTBjYTI0Li5kZmJiMGRmZTA4IDEwMDY0NA0KPj4gLS0tIGEveGVuL2FyY2gvYXJtL2dp
Yy5jDQo+PiArKysgYi94ZW4vYXJjaC9hcm0vZ2ljLmMNCj4+IEBAIC00MzYsNiArNDM2LDEyIEBA
IHN0YXRpYyBpbnQgY3B1X2dpY19jYWxsYmFjayhzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgDQo+PiAq
bmZiLA0KPj4gwqDCoMKgwqDCoMKgwqDCoCByZWxlYXNlX2lycShnaWNfaHdfb3BzLT5pbmZvLT5t
YWludGVuYW5jZV9pcnEsIE5VTEwpOw0KPj4gwqDCoMKgwqDCoMKgwqDCoCBicmVhazsNCj4+IMKg
wqDCoMKgIGRlZmF1bHQ6DQo+PiArwqDCoMKgwqDCoMKgwqAgLyoNCj4+ICvCoMKgwqDCoMKgwqDC
oMKgICogRGVmYXVsdCBjYXNlIGxlZnQgZW1wdHkgYXMgb3RoZXIgbm90aWZpZXIgYWN0aW9ucyBk
byBub3QgDQo+PiByZXF1aXJlIGhhbmRsaW5nIGhlcmUuDQo+PiArwqDCoMKgwqDCoMKgwqDCoCAq
IFRoZSBDUFVfRFlJTkcgYWN0aW9uIHNwZWNpZmljYWxseSBoYW5kbGVzIHJlbGVhc2luZyANCj4+
IHJlc291cmNlcyBhY3F1aXJlZCBieQ0KPj4gK8KgwqDCoMKgwqDCoMKgwqAgKiBpbml0X21haW50
ZW5hbmNlX2ludGVycnVwdCgpLCB3aGVuIHRoZSBDUFUgaXMgYmVpbmcgdGFrZW4gDQo+PiBvZmZs
aW5lLiBPdGhlciBDUFUNCj4+ICvCoMKgwqDCoMKgwqDCoMKgICogYWN0aW9ucyBkbyBub3QgcmVx
dWlyZSBHSUMtc3BlY2lmaWMgaGFuZGxpbmcuDQo+PiArwqDCoMKgwqDCoMKgwqDCoCAqLw0KPj4g
wqDCoMKgwqDCoMKgwqDCoCBicmVhazsNCj4+IMKgwqDCoMKgIH0NCj4+DQo+PiBkaWZmIC0tZ2l0
IGEveGVuL2FyY2gvYXJtL21tdS9wMm0uYyBiL3hlbi9hcmNoL2FybS9tbXUvcDJtLmMNCj4+IGlu
ZGV4IDUxYWJmMzUwNGYuLmQxZjBhZTAyMjYgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vYXJjaC9hcm0v
bW11L3AybS5jDQo+PiArKysgYi94ZW4vYXJjaC9hcm0vbW11L3AybS5jDQo+PiBAQCAtMTgyOCw2
ICsxODI4LDEyIEBAIHN0YXRpYyBpbnQgY3B1X3ZpcnRfcGFnaW5nX2NhbGxiYWNrKHN0cnVjdCAN
Cj4+IG5vdGlmaWVyX2Jsb2NrICpuZmIsDQo+PiDCoMKgwqDCoMKgwqDCoMKgIHNldHVwX3ZpcnRf
cGFnaW5nX29uZShOVUxMKTsNCj4+IMKgwqDCoMKgwqDCoMKgwqAgYnJlYWs7DQo+PiDCoMKgwqDC
oCBkZWZhdWx0Og0KPj4gK8KgwqDCoMKgwqDCoMKgIC8qDQo+PiArwqDCoMKgwqDCoMKgwqDCoCAq
IERlZmF1bHQgY2FzZSBsZWZ0IGVtcHR5IGFzIG90aGVyIG5vdGlmaWVyIGFjdGlvbnMgZG8gbm90
IA0KPj4gcmVxdWlyZSBoYW5kbGluZyBoZXJlLg0KPj4gK8KgwqDCoMKgwqDCoMKgwqAgKiBUaGUg
Q1BVX1NUQVJUSU5HIGFjdGlvbiBpcyBzcGVjaWZpY2FsbHkgaGFuZGxlZCBiZWNhdXNlIA0KPj4g
dGhpcyBmdW5jdGlvbiBzZXRzIHVwDQo+PiArwqDCoMKgwqDCoMKgwqDCoCAqIHZpcnR1YWwgcGFn
aW5nIGZvciBDUFVzLCBwYXJ0aWN1bGFybHkgZm9yIG5vbi1ib290IENQVXMgDQo+PiBkdXJpbmcg
aG90cGx1Zy4gT3RoZXINCj4+ICvCoMKgwqDCoMKgwqDCoMKgICogYWN0aW9ucyBkbyBub3QgaW52
b2x2ZSB2aXJ0dWFsIHBhZ2luZyBzZXR1cC4NCj4+ICvCoMKgwqDCoMKgwqDCoMKgICovDQo+PiDC
oMKgwqDCoMKgwqDCoMKgIGJyZWFrOw0KPj4gwqDCoMKgwqAgfQ0KPj4NCj4+IGRpZmYgLS1naXQg
YS94ZW4vYXJjaC9hcm0vdGltZS5jIGIveGVuL2FyY2gvYXJtL3RpbWUuYw0KPj4gaW5kZXggZTc0
ZDMwZDI1OC4uNDc3NjExMGQ5NyAxMDA2NDQNCj4+IC0tLSBhL3hlbi9hcmNoL2FybS90aW1lLmMN
Cj4+ICsrKyBiL3hlbi9hcmNoL2FybS90aW1lLmMNCj4+IEBAIC0zODIsNiArMzgyLDEyIEBAIHN0
YXRpYyBpbnQgY3B1X3RpbWVfY2FsbGJhY2soc3RydWN0IA0KPj4gbm90aWZpZXJfYmxvY2sgKm5m
YiwNCj4+IMKgwqDCoMKgwqDCoMKgwqAgZGVpbml0X3RpbWVyX2ludGVycnVwdCgpOw0KPj4gwqDC
oMKgwqDCoMKgwqDCoCBicmVhazsNCj4+IMKgwqDCoMKgIGRlZmF1bHQ6DQo+PiArwqDCoMKgwqDC
oMKgwqAgLyoNCj4+ICvCoMKgwqDCoMKgwqDCoMKgICogRGVmYXVsdCBjYXNlIGxlZnQgZW1wdHkg
YXMgb3RoZXIgbm90aWZpZXIgYWN0aW9ucyBkbyBub3QgDQo+PiByZXF1aXJlIGhhbmRsaW5nIGhl
cmUuDQo+PiArwqDCoMKgwqDCoMKgwqDCoCAqIFRoZSBDUFVfRFlJTkcgYWN0aW9uIGlzIHNwZWNp
ZmljYWxseSBoYW5kbGVkIHRvIHJldmVydCANCj4+IGFjdGlvbnMgZG9uZSBpbg0KPj4gK8KgwqDC
oMKgwqDCoMKgwqAgKiBpbml0X3RpbWVyX2ludGVycnVwdCgpIGFuZCBwcm9wZXJseSBkaXNhYmxl
IHRpbWVyIA0KPj4gaW50ZXJydXB0cyBvbiB0aGUgQ1BVIGJlaW5nDQo+PiArwqDCoMKgwqDCoMKg
wqDCoCAqIHRha2VuIG9mZmxpbmUuIE90aGVyIGFjdGlvbnMgZG8gbm90IGludm9sdmUgdGltZXIg
DQo+PiBkZWluaXRpYWxpemF0aW9uLg0KPj4gK8KgwqDCoMKgwqDCoMKgwqAgKi8NCj4+IMKgwqDC
oMKgwqDCoMKgwqAgYnJlYWs7DQo+PiDCoMKgwqDCoCB9DQo+Pg0KPj4gZGlmZiAtLWdpdCBhL3hl
bi9jb21tb24va2V4ZWMuYyBiL3hlbi9jb21tb24va2V4ZWMuYw0KPj4gaW5kZXggODRmZThjMzU5
Ny4uMGY3ODA4N2E0YSAxMDA2NDQNCj4+IC0tLSBhL3hlbi9jb21tb24va2V4ZWMuYw0KPj4gKysr
IGIveGVuL2NvbW1vbi9rZXhlYy5jDQo+PiBAQCAtNTQ5LDYgKzU0OSwxMiBAQCBzdGF0aWMgaW50
IGNmX2NoZWNrIGNwdV9jYWxsYmFjaygNCj4+IMKgwqDCoMKgwqDCoMKgwqAga2V4ZWNfaW5pdF9j
cHVfbm90ZXMoY3B1KTsNCj4+IMKgwqDCoMKgwqDCoMKgwqAgYnJlYWs7DQo+PiDCoMKgwqDCoCBk
ZWZhdWx0Og0KPj4gK8KgwqDCoMKgwqDCoMKgIC8qDQo+PiArwqDCoMKgwqDCoMKgwqDCoCAqIERl
ZmF1bHQgY2FzZSBsZWZ0IGVtcHR5IGFzIG90aGVyIG5vdGlmaWVyIGFjdGlvbnMgZG8gbm90IA0K
Pj4gcmVxdWlyZSBoYW5kbGluZyBoZXJlLg0KPj4gK8KgwqDCoMKgwqDCoMKgwqAgKiBUaGUgQ1BV
X1VQX1BSRVBBUkUgYWN0aW9uIGlzIHNwZWNpZmljYWxseSBoYW5kbGVkIHRvIA0KPj4gYWxsb2Nh
dGUgY3Jhc2ggbm90ZSBidWZmZXJzDQo+PiArwqDCoMKgwqDCoMKgwqDCoCAqIGZvciBhIG5ld2x5
IG9ubGluZWQgQ1BVLiBPdGhlciBhY3Rpb25zIGRvIG5vdCBwZXJ0YWluIHRvIA0KPj4gY3Jhc2gg
bm90ZSBhbGxvY2F0aW9uDQo+PiArwqDCoMKgwqDCoMKgwqDCoCAqIG9yIG1lbW9yeSBwcmVzZXJ2
YXRpb24gZm9yIGtleGVjLg0KPj4gK8KgwqDCoMKgwqDCoMKgwqAgKi8NCj4+IMKgwqDCoMKgwqDC
oMKgwqAgYnJlYWs7DQo+PiDCoMKgwqDCoCB9DQo+PiDCoMKgwqDCoCByZXR1cm4gTk9USUZZX0RP
TkU7DQo+IA0K


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 07:25:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 07:25:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078315.1439296 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uljO0-0008Sp-DW; Tue, 12 Aug 2025 07:25:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078315.1439296; Tue, 12 Aug 2025 07:25: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 1uljO0-0008Si-Af; Tue, 12 Aug 2025 07:25:32 +0000
Received: by outflank-mailman (input) for mailman id 1078315;
 Tue, 12 Aug 2025 07:25:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Pr65=2Y=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uljNz-0008SZ-69
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 07:25:31 +0000
Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com
 [2a00:1450:4864:20::52e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 854c9e25-774d-11f0-b898-0df219b8e170;
 Tue, 12 Aug 2025 09:25:29 +0200 (CEST)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-604bff84741so9567484a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 12 Aug 2025 00:25:28 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af96bc4fb0dsm1576495766b.112.2025.08.12.00.25.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Aug 2025 00:25: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>
X-Inumbo-ID: 854c9e25-774d-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754983528; x=1755588328; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=qVtUBR5KpLqv7F9nuZEXabBZFdorfFJIFGMYWZs8i44=;
        b=XWDzA0SXkHE5gcY3PT303a1oDgKB1mPl0KvCCrM0FALRMZ6PCtleX6mDGutqz26+0g
         UZS0mf3FyZ1RmC/V0og3bdo9v2lxYLccq/iWFtHjDqhy6pY2FDQUX8boRNXX8jjuivdR
         V1UmoSwUe8M97psjFYOcDqg20j2fQEUFtninomXcYkf3Y7bblYoyS/IirPncyZvS1nAH
         Vu731ongwwKhAhJHRZeSPRsb1x0+5Hy0gtIlEjiWWYTp4IgaClnXOy2nnKfArZABJ+Me
         jonCCZEZXGFBOe5ByLs+HPAS0OXP1yPb9II5zqhgM9d7bup81R8F7PxwzKJfDIQaLOqP
         z0Hw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754983528; x=1755588328;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qVtUBR5KpLqv7F9nuZEXabBZFdorfFJIFGMYWZs8i44=;
        b=HuOeBpo+3B83GrcYFHX76k4AciHk5w5ovPeCWsK1gCxEP1wwvAH3qzCU6Duxc+HyEn
         DhD95BhzrBlE/LIXtxPtmBDRCLEOY1F16aBT8VtzQ47ZdZ0okTaT6YBRpmufYc+df8Sp
         3ZS3FUUK2G8pR+t7Fdr5ir8zW5u5IfNVy3SkrG3UG/r7g/SwpO1ySNF9CBG1rNpmxoFX
         i9qoUgAwwxDVUic9p2BwyzQNQbXgD/oxAL6Hs2QTYYBi6D8F2s/idr4b5i81c/mLmBhf
         l5DQvUeD+JqtmQydu21jAdPICkt/qPCM3KRz66IbXWsudLNJnJvpHPVKO/lyeRwiYDzQ
         UPIQ==
X-Gm-Message-State: AOJu0YzJ697V/VAnPDCuwzuetAkwCwu9QOhsyYvnZ09RiWaeqQl1zVRP
	omfBgmrvxigUM0qvud78x6HegIwYAHyOnYiyn6FRLPYZEIA7tWNMeUo7RqGqjzuIJw==
X-Gm-Gg: ASbGnctryX8ehBOoPN37YlWSLJjwGGldnflCwbVIP43FaljqGWTtNCUq1EYfqQtA7B0
	HVlNMA5Yg14EyTEz0e6y8YPfD4083BDjtjPZZAgarOOYI0XRTqv6bhiVPHrkkmiphz6CzfwRfYB
	jCmxkUdQ8G/HXHB3desfJV1Bi+OqBukUjFLeQdrxa5iLQmO8oHLW3P0HNJDzO8B8IlhjbqvmvbB
	oBmCWYuonmb4gaFDrnQF01WiQ1HnWKDg1RcalJB+4MUesVeYU27umyZ9SEU4qNAEZN52DqQis4q
	s7Kb3EmKFWzIzjOZvgYUBAr2TurEShA2GIthYvq9EHmkesGCwkG4tIzCnMp3GcDy4wy9pM9/4vy
	SoSfrSKanD/1yXWlxNWURqYuZu7vMcmeHLa68z1b+r73EQFGDVc+eJMD6rPoHqwsLED+HuLXepw
	M9EkGi0RR7ppyTW3SyEQ==
X-Google-Smtp-Source: AGHT+IH6kFn6WihT4r/AJTKlKuYTTUOh9JW2HIBIpfeXiEQYkyS/SW404iEzn32AD/Xn+pwQPuvJ5A==
X-Received: by 2002:a17:907:6d1d:b0:af9:3589:68cb with SMTP id a640c23a62f3a-afa1e128f52mr224668766b.48.1754983527580;
        Tue, 12 Aug 2025 00:25:27 -0700 (PDT)
Message-ID: <c7f118a9-aea8-4f3a-8072-1bfa128d56b8@suse.com>
Date: Tue, 12 Aug 2025 09:25:26 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] misra: add ASSERT_UNREACHABLE() in default clauses
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: xen-devel@lists.xenproject.org,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
References: <7cd71ed21383c189fedb3250ddde54a593f7f98b.1754944131.git.dmytro_prokopchuk1@epam.com>
 <a318ef2d5cad37d2fda0bb4a52c90964@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <a318ef2d5cad37d2fda0bb4a52c90964@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.08.2025 23:25, Nicola Vetrini wrote:
> On 2025-08-11 22:30, Dmytro Prokopchuk1 wrote:
>> --- a/xen/arch/arm/decode.c
>> +++ b/xen/arch/arm/decode.c
>> @@ -178,6 +178,9 @@ static int decode_thumb(register_t pc, struct 
>> hsr_dabt *dabt)
>>          case 3: /* Signed byte */
>>              update_dabt(dabt, reg, 0, true);
>>              break;
>> +        default:
>> +            ASSERT_UNREACHABLE();
>> +            break;
>>          }
>>
> 
> I think this is fine, and there should be no problems with the break 
> being unreachable in some configs due to the call property for 
> ASSERT_UNREACHABLE
> 
> -doc_begin="Calls to function `__builtin_unreachable()' in the expansion 
> of macro
> `ASSERT_UNREACHABLE()' are not considered to have the `noreturn' 
> property."
> -call_properties+={"name(__builtin_unreachable)&&stmt(begin(any_exp(macro(name(ASSERT_UNREACHABLE)))))", 
> {"noreturn(false)"}}
> -doc_end

Did you also see Julien's reply? Imo, to address a complaint from one
rule, another rule is then being violated: The "default" label itself
is unreachable here.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 07:32:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 07:32:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078323.1439305 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uljV2-0001u8-28; Tue, 12 Aug 2025 07:32:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078323.1439305; Tue, 12 Aug 2025 07:32: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 1uljV1-0001u1-Vo; Tue, 12 Aug 2025 07:32:47 +0000
Received: by outflank-mailman (input) for mailman id 1078323;
 Tue, 12 Aug 2025 07:32:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Pr65=2Y=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uljV1-0001tv-As
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 07:32:47 +0000
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com
 [2a00:1450:4864:20::636])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 89bcaa0c-774e-11f0-b898-0df219b8e170;
 Tue, 12 Aug 2025 09:32:45 +0200 (CEST)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-af96fba3b37so963603066b.3
 for <xen-devel@lists.xenproject.org>; Tue, 12 Aug 2025 00:32:45 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a0a3cecsm2156787366b.53.2025.08.12.00.32.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Aug 2025 00:32:44 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 89bcaa0c-774e-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754983964; x=1755588764; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=r9QWuPCJoRTeDO1mWK7IIn2aTvJNgbPKVU6GtUcsPpQ=;
        b=XH4zzDUxjRLHW5Rdle4xGp41KzfjuWRwxIoJdJLkJpHOo8ESTkz0VpuxqKYi/NSCne
         f6nWXqogkueSrcvo8MKjfau5Y0FqPf8dub7e/q7DK+LtTd2OpuB784MfPnX/Yy0J5jQx
         cK29VGAm1ufiquhqXw0nLEuh1DG96VP6WsxK338PU+iL7LaAx8ZA9KPcJtaqTznswYOu
         qMVV1BEI2VUIZwYGypgRDgXrPX32xsIahE89T5TdvAiepqZ8QxrNgzo+ngdyT/6Hcq+5
         OabrJNv38kLCR74q8cvwX0xOEdslTnfLX06sZkM9TUaXXDVPQF+6vmFiO81qHs6yOu7F
         wGmg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754983964; x=1755588764;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=r9QWuPCJoRTeDO1mWK7IIn2aTvJNgbPKVU6GtUcsPpQ=;
        b=jRNGZTL+tCHj0gCukIlZaG3UAy5PZc6yhFUIqfKAqlh8IYzLY/c1EPuSUzPsyWw0by
         VrNhWvFJx+Wmf6ERmmSpbCeHW+R2tSNLyJlvuoWFOsmMGvBDJ3Er9M1g2NDXToeEkBaE
         wvb14ypCn64qkyJExJtFcu4juLnkkjZg6ywewxolUTIQVsD/66hfTHzZ81x372DcIxfI
         SxVwLyoO6y7URqBPWmkbZOQX7JBpRg0xsPmAiOQjSW/PZmL5/2NWUZZvIj/GkNl/A+7z
         Kz2RiLgVYTnyJZDBKvBr+iLO6kFHMT4ALJCybdftdLYmP2SvGjX+PcqI/UET2QXsGGxP
         jzDA==
X-Forwarded-Encrypted: i=1; AJvYcCViqQgaGzuc/xz79+Dq3FWZ6caocHUSMtIfJiI0BZ5uVxwh1I6fsw6KpPNbck+5dwd2ViNcxZd69lw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzHt6qqlRWyxtJVTKX9x0WbuohkTaCV41h09Ykukc8iGmItr/8t
	PA9gN+ajRt6C77a3wNQ5Otc41J4JlNJNg/f6jeUuUnQ44/D2eFeqa1DEsgVR+zic9A==
X-Gm-Gg: ASbGncsgEYA3mTzZ1hnrZCbRhKacfi8GwFasuYGTMkE3q4fAsEsx0bzcAn6xeJxZjBg
	KdbNw6QSSj+fCThFmK8c6ymynjenyHQxDz/WxB0ny/9z+l8zzzZLXztWkGyVYMDDn/iCMs6K+je
	wa6mV6+25PI+GY0msfhDoNxUtlLK5l8plSVXOfEVBrEcFFUCKw1VW+QYyIT0x5ZZvtLDxVyOM9R
	QLMyXiEQABMQOju7w4zJWC9Zih8Kzt19Z4u4bod9/5DE8ZYNYNI/0THQ0EH90vClr+kH52x3W1w
	2u/gsA3e2+pyp0/pagMVo9h6C2wTaeIfeMguQyCnTsMQulXv+CxqPKY2os/vVc5AoMgbRsD5yJh
	AVhNKv22VOJ7CCNNRuB1dEn61g4On/saUtygDoWG/ABwtg1tsilbwJkOrUspIacDYnv6VAbZM6H
	lrk0Q/O5JS93Vwclc7lBrkXel3qqvQ
X-Google-Smtp-Source: AGHT+IF8668MVVu3pTMsJJvsf8lkmvVTxvcTr+pKvYku26TpyWop8DCaXcHLF+Au+NxrIlNYvSX3ug==
X-Received: by 2002:a17:907:3e8b:b0:ae3:eed1:d018 with SMTP id a640c23a62f3a-afa1dfe892bmr180617966b.9.1754983964582;
        Tue, 12 Aug 2025 00:32:44 -0700 (PDT)
Message-ID: <aba2627f-b38d-4d6c-9c5e-4bdc4f5b563f@suse.com>
Date: Tue, 12 Aug 2025 09:32:43 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] misra: add ASSERT_UNREACHABLE() in default clauses
To: Julien Grall <julien@xen.org>,
 Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: 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>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <7cd71ed21383c189fedb3250ddde54a593f7f98b.1754944131.git.dmytro_prokopchuk1@epam.com>
 <59396fd1-ca82-4655-9dcf-ec36e0d51ffc@xen.org>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <59396fd1-ca82-4655-9dcf-ec36e0d51ffc@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.08.2025 23:21, Julien Grall wrote:
> On 11/08/2025 21:30, Dmytro Prokopchuk1 wrote:
>> --- a/xen/common/grant_table.c
>> +++ b/xen/common/grant_table.c
>> @@ -330,9 +330,12 @@ shared_entry_header(struct grant_table *t, grant_ref_t ref)
>>           /* Returned values should be independent of speculative execution */
>>           block_speculation();
>>           return &shared_entry_v2(t, ref).hdr;
>> +
>> +    default:
>> +        ASSERT_UNREACHABLE();
>> +        break;
>>       }
>>   
>> -    ASSERT_UNREACHABLE();
>  >       block_speculation();>
>>       return NULL;
> 
> I know you are trying to apply the MISRA rule. But this is odd that you 
> move the ASSERT_UNREACHABLE() but then code after is still only 
> reachable from the default. In fact, this is introducing a risk if 
> someone decides to add a new case but then forgot to return a value.
> 
> By moving the two other lines, the compiler should be able to throw an 
> error if you forgot a return.

I think we did discuss this pattern in the past. While moving everything up
to the "return" into the default: handling will please Eclair / Misra, we'll
then end up with no return statement at the end of a non-void function.
Beyond being good practice (imo) to have such a "main" return statement,
that's actually another rule, just one we apparently didn't accept (15.5).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 07:35:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 07:35:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078331.1439315 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uljXE-0002QU-F0; Tue, 12 Aug 2025 07:35:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078331.1439315; Tue, 12 Aug 2025 07:35: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 1uljXE-0002QN-CH; Tue, 12 Aug 2025 07:35:04 +0000
Received: by outflank-mailman (input) for mailman id 1078331;
 Tue, 12 Aug 2025 07:35:03 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Pr65=2Y=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uljXD-0002QF-6t
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 07:35:03 +0000
Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com
 [2a00:1450:4864:20::532])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id db69e505-774e-11f0-a327-13f23c93f187;
 Tue, 12 Aug 2025 09:35:02 +0200 (CEST)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-615d1865b2dso7604508a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 12 Aug 2025 00:35: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
 4fb4d7f45d1cf-615a8f26cc6sm19961548a12.23.2025.08.12.00.35.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Aug 2025 00:35: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>
X-Inumbo-ID: db69e505-774e-11f0-a327-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754984102; x=1755588902; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=TjgY2L9LIm6Y/Iy9QxSTk1W1C6xWfCe15u3DnJipLGY=;
        b=QVcDDcJECx4nuLCIpO3hG+J6EJOH2aG6bV8lhwrLmjHBYsXOUEcfm8Uz2uQ8tBiE/Z
         28z3vGGpv4TvkxU4A4oT7TlM2P1DWUNSzXVT1ZTjsIJxVcgPp5oDCIjwInLRU6KXM0sK
         CE9F+124rJgXD/AivL4piw1bv+v1bSGU2hcZsoqYXiV3EHZ+tGy1T5rEebxPcZMxwO/L
         vBk6cacpV9RiN5Fm2At+irQbRhhG9DeCpNAtHfjK4FKcJ6f3fnm+zUyxh/bcK8P+r8F7
         tcQFdV31gqQ+w+zS6QCXKYuQdY0X1u0ylwxMDr4RsfE3cuF0zuEZu4+fix55fp5HnKM9
         ow0g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754984102; x=1755588902;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=TjgY2L9LIm6Y/Iy9QxSTk1W1C6xWfCe15u3DnJipLGY=;
        b=P1Xh+WtMwZOGBLa8/WUC3SvOIutQdB71a7BbQH41ELe6JDHRdF3ONYTfTVhAcKm6/N
         eJbc9jCg86NRfB8mtPvHukROwpueWWMLfnaiknUdttlOERL4CtYIcZQ2IL8C8dDwvhQD
         Gds/7QPr+ckt0wJujYXd6OQVT5SbhSN70dy9fIBCv9/BrT7F0PGVa+54lgos71uevAAG
         J+D7L4mPefwm6hYXnWGNx4rj9wb61Cw0QSTPLobYpXON4DsqZ41l3bBqAHmtQCFd9Zd/
         10524iT1xUDl6PbRCaZk2xqQ5ySidWBhzrkn2y0m3XN3z7Wcc0IsqO25HpzpZa5CXsA4
         BBtQ==
X-Gm-Message-State: AOJu0YxoFPUhT6JF4U262ez7MN8eNF763FZAbTjBy5MOmSEiuRq9TFP2
	JjGN3gnMrWdrgcjJ3Vgnlv8PDO+OuRrZkYmfnxWZxN5lkVv3EbkafdVNM3GBrl3KWA==
X-Gm-Gg: ASbGnct4hRsJLFjSow/zCFP3N2helNx44DaPBOj7EuwkJeUmGRm1HP3WAgxT7raxuEG
	k6KI00uAepVQT9mmlERQi1OcE2F9NwxrUywgpuZE4NpPpKCbqHNBLmUBIcFyBdRWyuUG09emApe
	HmeKg8PD/XIP73M5laAL+bMxNY1dcQagYjvksPiWLzuyoxP5dgRDmkHymLA4cpvJVRuMVVdsRZD
	n9dJ2oqp9HsPTiREMu7xitaXX3ZhwVIQuIBS/qObYzMI9mGifzZTlEne3QmN+2Cf2M3O9FoqkQ5
	bmBU+l44COLoGmTzXeiFFVY/IsyJQCqhpWJ1etyOlCfivE88MNJauixlNhNZjRcP6eWierIWSAP
	Zr2gGUzRVs8genbSfYJAN3VQ5Vm23sGXae9rZTSGWWINU0OIOON3sVWdxFCtpSMSp16yLuC3XMo
	HSS2ujiAU=
X-Google-Smtp-Source: AGHT+IFmw/9NOE/XLPprKqSzrpsec2S49D+xyfTArXE9D95V7HxQh/36Q/proL03zcoC4TUDorE7IQ==
X-Received: by 2002:a05:6402:5246:b0:618:30f3:1d7d with SMTP id 4fb4d7f45d1cf-6184ea28edamr1690587a12.2.1754984101522;
        Tue, 12 Aug 2025 00:35:01 -0700 (PDT)
Message-ID: <21bb7592-544f-4714-b45b-0ddfca3fc724@suse.com>
Date: Tue, 12 Aug 2025 09:35:00 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] misra: comment default case in single-clause switch
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>,
 Nicola Vetrini <nicola.vetrini@bugseng.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>
References: <1d3c5364b726e42a8c38c396f2e20efc52790f62.1754933752.git.dmytro_prokopchuk1@epam.com>
 <d82cc723a17ec65f12fd60182fd6fe20@bugseng.com>
 <110fc2a9-2f48-4718-995b-3295b9c7e9aa@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: <110fc2a9-2f48-4718-995b-3295b9c7e9aa@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.08.2025 09:19, Dmytro Prokopchuk1 wrote:
> 
> 
> On 8/12/25 00:14, Nicola Vetrini wrote:
>> On 2025-08-11 19:36, Dmytro Prokopchuk1 wrote:
>>> MISRA Rule 16.4: Every switch statement shall have a default label. The
>>> default clause must contain either a statement or a comment prior to its
>>> terminating break statement.
>>>
>>> This change adds comments in default cases in single-clause switches to
>>> avoid violations of the rule where the `default` clause lacks a suitable
>>> comment or statement.
>>>
>>
>> If you want to go this way then at least this config wants dropping:
>>
>> -doc_begin="A switch statement with a single switch clause and no 
>> default label may be used in place of an equivalent if statement if it 
>> is considered to improve readability."
>> -config=MC3A2.R16.4,switch_clauses+={deliberate,"switch(1)&&default(0)"}
>> -doc_end
>>
>> and probably this one too (haven't checked):
>>
>> -doc_begin="A switch statement with a single switch clause and no 
>> default label may be used in place of an equivalent if statement if it 
>> is considered to improve readability."
>> -config=MC3A2.R16.6,switch_clauses+={deliberate, "default(0)"}
>> -doc_end
>>
>> In the end it's a tradeoff; placing a comment with a suitable 
>> argumentation might be strictly better than simply tagging the tool 
>> report, at least from a developer's perspective. From a MISRA compliance 
>> standpoint in my opinion both are fine. Let's see what the maintainers 
>> think.
>>
> 
> According to Jan's comment here
> https://patchew.org/Xen/725ec86ac1aa883c35fb30b8f226c95cbe0934e9.1754322299.git.dmytro._5Fprokopchuk1@epam.com/
> there were discussions about placing comments inside 'default' case.

For notifier functions in particular, yes. The config quoted above covers
more than those, though, if I'm not mistaken.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 07:41:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 07:41:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078341.1439326 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uljct-00045d-4A; Tue, 12 Aug 2025 07:40:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078341.1439326; Tue, 12 Aug 2025 07:40: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 1uljct-00045W-0O; Tue, 12 Aug 2025 07:40:55 +0000
Received: by outflank-mailman (input) for mailman id 1078341;
 Tue, 12 Aug 2025 07:40:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=54Z7=2Y=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1uljcr-00045L-Sd
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 07:40:54 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on2062e.outbound.protection.outlook.com
 [2a01:111:f403:2412::62e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a905cbd6-774f-11f0-b898-0df219b8e170;
 Tue, 12 Aug 2025 09:40:48 +0200 (CEST)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 CY5PR12MB6527.namprd12.prod.outlook.com (2603:10b6:930:30::13) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9009.22; Tue, 12 Aug 2025 07:40:42 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d%7]) with mapi id 15.20.9009.018; Tue, 12 Aug 2025
 07:40: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>
X-Inumbo-ID: a905cbd6-774f-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=x9fm/B2ZS/EPiJt0RKoqP4BfKQxOnPt+AUbmnjdnHg5j2OnziWK3CiEvBMRbBL210eBRdwRUSGlOjOv65CDx+WvSondFw3w1t8X4lb4qPzUKCm9OFtzxEVpgTT9o+RKFfzgomSiUCXDPc7VaJPEqdYHZ0J84UXSDuxnU7N1mXFBQWTj9lsctLxVSG5DJGj13tCQqu2zC1JRiAXGotztOfncDV9JbJk2KSsdFxwBCBVujV/Ct2F+ElSIWojaHhwtIieUES8yZRdxbtdmRB2myxCvHOGTL9vAY0DONW6of8p7FLTku+Nxn/J1GckB6GP7TTqxTYma0+ID8DDO6v757MQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=94GFRl6vDBzhaG+VQ56YZWeSzXoVvOZFtuq3AOheERw=;
 b=d/yUqokR6DIRvvfj9TbE0rAenWBAHOP0utSEnVDHQJCWIAZ63uv+gSJpdtFVAk1XjHs4HUV0NSNlctV/biGIm8v2oU2PIszN6DixSxqFPacCXMOKSVvq2LnwgLzobKJvFOIzDwC3dmv+izKJIfDUioOn0ZHZIHs3AFM+ON4jbi7/1RZCMe7UefXXetUaxLrY03cXeocdQy37gS8QThF75S8fV7LTDe5zj7HikqkfeNKcWebdiNqa+0m2I36O1YC33fnh8rjbDfvom03wF50cDs/hOMR9qoM8xSTQVkQZ0IXeIw5PlTbvTnMGR/xnu5w/0rxqiXXDN79D6MjLZ7y1Fw==
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=94GFRl6vDBzhaG+VQ56YZWeSzXoVvOZFtuq3AOheERw=;
 b=SqelxCnu7bAFCDWq+ErYChnl2MQ6lUcyDN8ncCBl0vViVEfoWOdlViOy2o6CiBPJBhnBpHneaT2U7EH4/Vx4Y45DWqPSfHQmWyiC1e/Nu3uukW3jmK68WVvvwJEIvqhgQIjlo71A8gGR5JzVMtnX3a4FTIUV3sF9RaTpNBLt/Zo=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	"Orzel, Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Stefano
 Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v6 13/19] xen/x86: implement amd-cppc-epp driver for CPPC
 in active mode
Thread-Topic: [PATCH v6 13/19] xen/x86: implement amd-cppc-epp driver for CPPC
 in active mode
Thread-Index: AQHb8hcniovO//xAlkude/GkR6xpVbQ2WzUAgCh1DAA=
Date: Tue, 12 Aug 2025 07:40:42 +0000
Message-ID:
 <DM4PR12MB8451095ABD4E238701839776E12BA@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20250711035106.2540522-1-Penny.Zheng@amd.com>
 <20250711035106.2540522-14-Penny.Zheng@amd.com>
 <cc8f85f6-8c22-411a-bcba-085cf51defb3@suse.com>
In-Reply-To: <cc8f85f6-8c22-411a-bcba-085cf51defb3@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-08-12T07:40:34.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|CY5PR12MB6527:EE_
x-ms-office365-filtering-correlation-id: 3df246a0-0570-4f1d-6809-08ddd9738a89
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?VFJmMjByUlZjMHpMSFYrSjNxWFN1ZUpIeDJjeFJQRVB5U2c5MDU2NmhZTDNQ?=
 =?utf-8?B?NGQ0QUViQ2dlWUdweW96MUp3ZmRsKzdBVGVkVE1yRTFlcCtQT2h0dnRpWkp2?=
 =?utf-8?B?N2JBdjJPbm05TTAzVTlTcWFiTFc2NHhmNHg1NXNkNFYzckt2NEFWbkFoWjVj?=
 =?utf-8?B?UlV1SUFaTGdqbkdmQTRZazdLZmJjbForcldPUVhLNUdWTVN1OUE3YnVCRVg3?=
 =?utf-8?B?WG9ERy93YUw1NVRwbGQ5V1pkaGVjRk5OUUp3SUJuOWU0UEFaRFlPMG5ZbEc4?=
 =?utf-8?B?eGhpT0FoYldOTlFxZmVIWER6RjB1Y0YyTWo5MEpvSzVKTHJnQ2VScUd2SGhV?=
 =?utf-8?B?Q2p6cUxIbUdmbFlOSEhnNElYMlN0UXJoelVzUEdHaDVDUkJCaFdLQkFCdzhl?=
 =?utf-8?B?WmswNGdBYWYrUnpUMmpFTzJTZ3JrVTE2dlFXeFNFTlBEZ3pRQnRUL0wxTDhk?=
 =?utf-8?B?VnF3OE1sUFNaNUtQVENLeXg0R3NpTzg1bTUwZ1Y5VnZ2SDM0NG8xQzUwRzMw?=
 =?utf-8?B?eG1EeXZGMXRhWkVWRFhSdXMvUEVSOWRjamE4S1Z1V3piYmhZV0Q3ZVJuZzVI?=
 =?utf-8?B?ZXVnK1hJQzZVcjJpS2xBaWp5RU5pYzNQZnBMK3NrTzkrMTRNQVhvdUtPcXVL?=
 =?utf-8?B?eU81ME1rQkZFOURiRkdITHE4Z3VDSU9TWkRLNDdoVFVyZU9BWkdubVVHSWYy?=
 =?utf-8?B?RElzT1NueFZHbmdtR1NXdzNBV0FJZ0Vodk9zQlNScXV3dnN2MGVtN0k1cjAx?=
 =?utf-8?B?N1VBMzA5aVpieDA1bnE5V3VqNUlMUEh4cnA0NC9uV3cxWjZMc3pBWGtxdUt3?=
 =?utf-8?B?UjBuaEpQZm9GT21SMk9ibFByMHJJOTZTdzV5L0ZtR2hZZ0poVnNpWktPUE9y?=
 =?utf-8?B?UDA4RWlsNWJYcTZJcUhrRjZpT3A1aGl5c1Q2YU1qWE1GRjZXSFJRcmdUTTRN?=
 =?utf-8?B?eVJTR0d1S1BkQzRjNFcva3dSWmN1SnRhYUZ1YXA2ZXc3V3RjREtiS3lPZXpp?=
 =?utf-8?B?RGZuTW5JRUhUdkZ4Zkg2blMxMlA3MlZrTm5XdzlxQ1JLSUxRSmlGQVBWd0Vj?=
 =?utf-8?B?WnoyK2YxbjVMcm00OSt1OWtyQ2dHU2J0ZklCWjFaMDBHNFE5dGo2Q2pLNE4v?=
 =?utf-8?B?NjJiZFJkNWltdFg3Sy9rMkpQYXlNZzdBMEZoWlZyeE93V25oQk1UdGlQeTcx?=
 =?utf-8?B?clBFMVFhQ3MzeDNRbDA0ay9peU9VZ2hWNzZKd0RUUGRLTEpxRHlzd01ZWllK?=
 =?utf-8?B?QjB1TExXZzlxekcxWXBhc2ZSZUcvbDkzMjEzaUVMSWtwTDI3RlRaeWNjVHRw?=
 =?utf-8?B?d3VsZElpY0NnV3lUcW1KMkJ2c084MmxWS1dyMnRJQTFZUHM2M3BwWXdlTGEr?=
 =?utf-8?B?bnF1bjF2dkYrOVRNUk5aQVlyQ2VxenQwdXJoSUcwWGc3Sjc0bCtPQUVQL3RC?=
 =?utf-8?B?UWRWSWZOck42Lzl1eVRyQUxzcm1SOFpiTzY0N1YwdmUwUk9aaWo0UitPbkk2?=
 =?utf-8?B?UDhMcXVXWE5WZnBHVVc2ai9jcFNXQzVLRElWbXIzYXppQ21CR2VVb0k3aEJu?=
 =?utf-8?B?TkczL21XL3dGRnptd3dmSGNDUnZuZEdoN281Vm9qbTl3ZXVueHkwSElZL0Fj?=
 =?utf-8?B?Z2sreFgxVER2UWY1Q0FRZUJHRDZMcTQ2ODZsN0NyMUtpdXg0Qm42czRTY0x2?=
 =?utf-8?B?Qk1USDBKc0hNUHZRTnRXT1JhSnVCeksvU3pXaHJveUU4WGt3TERMcitBd0dw?=
 =?utf-8?B?Tk8yWE4xRFByYmFUNWp5ais0WDdCMEJMZFNlTVppY242WWp4d0Nid3hRRm4z?=
 =?utf-8?B?aTNBNjV5SktMeVRRZFZXZGRyVUhmam1iNk4rN0dNMnlJeHBuV1pMLzAxK0hV?=
 =?utf-8?B?YU5RejRFT0ZrVUpiQm9tVFBRTHFmQjRrU3JSNUhubmszZ2ZrRllqNFh6SDBr?=
 =?utf-8?B?a1hVL0IzRWswYU9PVTdZeDI2cnVEUENIeStQZmU5TDdnTjhiTE1yMkg5eFNh?=
 =?utf-8?Q?sYMoEgXMUGVQUQkvQRy+rDR6fUeR5E=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?SEhGVlBZK2tGcUt6ZURzNExjV2xyNWozdWxXcEk5OVQrRGJSekJ3K3dXT1Jt?=
 =?utf-8?B?UkZPY3hZZ1hadzM1a1FtSUZ3NHJQdEtjVWU5dHRteFJlRkxSS0ttNGY5b1hG?=
 =?utf-8?B?N3o0Vk1VbExrbnlNeGZhZzhyWjlLRXZ2anJTUFJrSEw4Zk5oT0NtZ1N4VEFv?=
 =?utf-8?B?S2V5eGtnbG5NaGpTYkd2azJmN0NjTldsQ0YvNU9WU0R2alEvaWV3QnF0Sk9i?=
 =?utf-8?B?ZVdWL2lpVFRXWVF2UTRPRUNuSk1vd0tVMmtGUWcvNEF2N1NORUdZcTlLWWR2?=
 =?utf-8?B?cVVkeitZRmV2OEJVM3AzaFRVQnk1bUZmb0xvc3F1Y2U3TkZLRk1TOFBrc0M1?=
 =?utf-8?B?VWNBU2ZHUlN3NWNZVWlWZWhaemtVSFd0VHVXT3hnODVkRnJFQmNSZFZ0cE5s?=
 =?utf-8?B?MUo2TGVUaHk4SnZidkxPdUE3THpDS3JleXpRSU82ZlU0cHVHdVluNThYbVln?=
 =?utf-8?B?YVppd1FMZ29UNjlIV3ZuMk96V01nS2k4M2R6dzlDUnBEcUtaeGh2di92dU1s?=
 =?utf-8?B?VlJhNGFNQStmY2EzODYyS3JYeGVEQnFjMEI0ZTBScjl0QnU0V0RXdUYxcnVF?=
 =?utf-8?B?akpWcHQ1dG9BZm5XeFkxRU96a1BGb1hwL1plWTJNVDFiN1E4N1ZDWkRqbUgv?=
 =?utf-8?B?ZFVHMGNEOVM5bG5tNFcwa2ZNdjFTWTRjM3orWTJpVjl5TjJWT29DOFJBU3Vm?=
 =?utf-8?B?MVkweGExc2lad1UzN0VRZGlBenJZR0h2TDlRWGZaTVlUQzVqLzU5RVNFam53?=
 =?utf-8?B?V3A2QlB2TEtHTEJLbmMwUC9nSHdQYzExaHYzc3BBWlZEM3N2TGtLbUNuZUFt?=
 =?utf-8?B?SlZidi96TmZ2WE9JQVhzdmpFeW14NDhmckVmT0NZaWFxbXhXWmRCeTI5OTZP?=
 =?utf-8?B?cDM3bk1EZlVtbS9kWmdqYzdGY1d0eGdvNGFiK3hmQUZvT284c0RTWUpyVkl0?=
 =?utf-8?B?OXhvTnJjUDlRRmhZdk1lMkhUbURiMXFTVlRBQkE3S2lFb1pyVDFkTEhxUi9E?=
 =?utf-8?B?VmMxeFlJTnhoSnhXOHRVaVVoU3ZNYnNqZHc0L3pOUCtjM3dGemFxeUVreC9U?=
 =?utf-8?B?VWdGcy9OZGxNaGFlenVJTXptVU9kRklYamlvNElzVENUajZaSnk0UktxbTc5?=
 =?utf-8?B?a0VMYkxsMXNzeHV6Vi83ZzFLeS9YZWlEY2hMNExBcGpicHpTSnRZMnZ5dzA5?=
 =?utf-8?B?RlIxT2NnQTRSZ2lwbHRuNXVPaTc3cjlsQzUrdE9MUk82OC9NVkd3c28wcTd4?=
 =?utf-8?B?VWE1QkJucmxNVnBDQXFCaDZXQ3ZKU3J4bVREOVZJMWxyZy9QM2o5WmhYeHpp?=
 =?utf-8?B?WlV3cVF3alcyODMxMzQzNDVMd2w1bTBETXg1eWJIUGR3OFJrQzRZaWowN1lp?=
 =?utf-8?B?TjJtRTZ5SlRicUd2U2tqK3c4MC9tbVE2NzVLei9GaTdsWFJoc1pFUzBCLzB5?=
 =?utf-8?B?Z0wrVGxoUUhrdDFkalIyajlKYXNoemRyWWZSYjRqa0J2VEc0eHh0d3RKOHBS?=
 =?utf-8?B?eEdhSkt4Y0hkRE1tTG5WZmt0eFc5aGtDYy9HZFpEbXJGMlJNci9CNTdIVmNO?=
 =?utf-8?B?bms1blpwRnBlVFpJWGcyeGtBaGF0SHQ4M3F1d0gvbjEwZ2pmTVBNSHJpK0Rp?=
 =?utf-8?B?REUydVRYVkliSXkyZm1kVUdrZDRpamoyNXRNR0tIUnRDUDZ5Z1FjeE9WSEtu?=
 =?utf-8?B?QWc3d3d5N2xHbXVSZWNEUC9Xa1o3ZjI1SlAxZWNLYTBVeUE4blJQYndtcUpr?=
 =?utf-8?B?QlJSa2xIQkZyVmdHTDVnVHc3V1VIMEpSZGxweEFEZUN2elczdHlZVVZDbVlC?=
 =?utf-8?B?T1ZheHdPdThxeCs1NUUvWmh5SXdLaVNheWR0U1VoVEs2T3NaMHk0VEduMHYy?=
 =?utf-8?B?aUdWdTNuaWVqRjd0Rlc4NGYya1U3QTlwR3M5RXBtWVhaRyt6cDE0b2dUY2VN?=
 =?utf-8?B?a1dqeVI4NmIzWGYzS1JITWVZZ0lzclhlR1JicENHcWxaNkt0ZEw1VXErY3JM?=
 =?utf-8?B?VFJldUdJd01EcjJaWmlZRnI1YWt4ZitFYWRyaGZCb0NqUXZ2Q2ptcXJxbGVU?=
 =?utf-8?B?bDZxMHNsL1cwQnVRcU4zSldRS2wwdlRKRTB5dGpLQUdCQVpZSC93OHhZenNB?=
 =?utf-8?Q?IpjY=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3df246a0-0570-4f1d-6809-08ddd9738a89
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Aug 2025 07:40:42.4786
 (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: 8E2I7JTkOFyIs29XrLjs8nN1RR9/WUHehvBGK+4W+iK82/n4SO6s+j7zvjyfAJd1QVYuD2HLjtB7VH/bpJHABA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6527

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFRodXJzZGF5LCBKdWx5IDE3LCAyMDI1
IDk6MzYgUE0NCj4gVG86IFBlbm55LCBaaGVuZyA8cGVubnkuemhlbmdAYW1kLmNvbT4NCj4gQ2M6
IEh1YW5nLCBSYXkgPFJheS5IdWFuZ0BhbWQuY29tPjsgQW5kcmV3IENvb3Blcg0KPiA8YW5kcmV3
LmNvb3BlcjNAY2l0cml4LmNvbT47IEFudGhvbnkgUEVSQVJEIDxhbnRob255LnBlcmFyZEB2YXRl
cy50ZWNoPjsNCj4gT3J6ZWwsIE1pY2hhbCA8TWljaGFsLk9yemVsQGFtZC5jb20+OyBKdWxpZW4g
R3JhbGwgPGp1bGllbkB4ZW4ub3JnPjsgUm9nZXIgUGF1DQo+IE1vbm7DqSA8cm9nZXIucGF1QGNp
dHJpeC5jb20+OyBTdGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+OyB4
ZW4tDQo+IGRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0gg
djYgMTMvMTldIHhlbi94ODY6IGltcGxlbWVudCBhbWQtY3BwYy1lcHAgZHJpdmVyIGZvciBDUFBD
DQo+IGluIGFjdGl2ZSBtb2RlDQo+DQo+IE9uIDExLjA3LjIwMjUgMDU6NTEsIFBlbm55IFpoZW5n
IHdyb3RlOg0KPiA+IC0tLSBhL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdWZyZXEvYW1kLWNwcGMuYw0K
PiA+ICsrKyBiL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdWZyZXEvYW1kLWNwcGMuYw0KPiA+IEBAIC0y
NTksMTEgKzI3NiwxOCBAQCBzdGF0aWMgdm9pZCBjZl9jaGVjaw0KPiA+IGFtZF9jcHBjX3dyaXRl
X3JlcXVlc3RfbXNycyh2b2lkICppbmZvKSAgfQ0KPiA+DQo+ID4gIHN0YXRpYyB2b2lkIGFtZF9j
cHBjX3dyaXRlX3JlcXVlc3QodW5zaWduZWQgaW50IGNwdSwgdWludDhfdCBtaW5fcGVyZiwNCj4g
PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90IGRlc19wZXJmLCB1
aW50OF90IG1heF9wZXJmKQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVpbnQ4X3QgZGVzX3BlcmYsIHVpbnQ4X3QgbWF4X3BlcmYsDQo+ID4gKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdWludDhfdCBlcHApDQo+ID4gIHsNCj4gPiAgICAgIHN0cnVj
dCBhbWRfY3BwY19kcnZfZGF0YSAqZGF0YSA9IHBlcl9jcHUoYW1kX2NwcGNfZHJ2X2RhdGEsIGNw
dSk7DQo+ID4gICAgICB1aW50NjRfdCBwcmV2ID0gZGF0YS0+cmVxLnJhdzsNCj4gPg0KPiA+ICsg
ICAgaWYgKCAhb3B0X2FjdGl2ZV9tb2RlICkNCj4gPiArICAgICAgICBkYXRhLT5yZXEuZGVzX3Bl
cmYgPSBkZXNfcGVyZjsNCj4gPiArICAgIGVsc2UNCj4gPiArICAgICAgICBkYXRhLT5yZXEuZGVz
X3BlcmYgPSAwOw0KPg0KPiBJbiBhbWRfY3BwY19lcHBfc2V0X3BvbGljeSgpIHlvdSBwYXNzIDAg
YW55d2F5LiBXaHkgaXMgdGhpcyBuZWVkZWQ/IFdpdGggdGhpcw0KPiBjaGFuZ2UgZHJvcHBlZCwg
b3B0X2FjdGl2ZV9tb2RlIGNhbiBiZWNvbWUgX19pbml0ZGF0YS4gKEJ1dCBvZiBjb3Vyc2UgeW91
IG1heQ0KPiB3YW50IHRvIGFkZCBhbiBhc3NlcnRpb24gaW5zdGVhZCwgaW4gd2hpY2ggY2FzZSB0
aGUgdmFyaWFibGUgbmVlZHMgdG8gc3RheSB3aGVyZSBpdA0KPiBpcyBhdCBsZWFzdCBpbiBkZWJ1
ZyBidWlsZHMuKQ0KPg0KDQpUcnVlLCB0aGUgaWYtZWxzZSBzZWVtcyByZWR1bmRhbnQuIEknbGwg
bWFrZSBvcHRfYWN0aXZlX21vZGUgX19pbml0ZGF0YSB1bmRlciBOREVCVUcNCmBgYA0KICAgICAg
ICAjaWZuZGVmIE5ERUJVRw0KICAgICAgICBzdGF0aWMgYm9vbCBfX3JvX2FmdGVyX2luaXQgb3B0
X2FjdGl2ZV9tb2RlOw0KICAgICAgICAjZWxzZQ0KICAgICAgICBzdGF0aWMgYm9vbCBfX2luaXRk
YXRhIG9wdF9hY3RpdmVfbW9kZTsNCiAgICAgICAgI2VuZGlmDQpgYGANCg0KPiA+ICsgICAgZGF0
YS0+cmVxLmVwcCA9IGVwcDsNCj4NCj4gQWhlYWQgb2YgdGhpcyBwYXRjaCwgYXJlbid0IHlvdSBt
aXMtaGFuZGxpbmcgdGhpcyBmaWVsZCB0aGVuLCBpbiB0aGF0IHlvdSBjbGVhciBpdCAoYXMNCj4g
eW91IG5ldmVyIHJlYWQgdGhlIE1TUik/DQo+DQoNClllcywgSXQgd2lsbCBhbHdheXMgYmUgMCBv
ZiBpdCBpbiB0aGUgcHJldmlvdXMgY29tbWl0LiBJIHNoYWxsIG1vdmUgZ2V0dGluZyAicHJlLWRl
ZmluZWQgQklPUyB2YWx1ZSIgZm9yIGVwcCB0aGluZ3kgYWhlYWQNCg0KPg0KPiBKYW4NCg==


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 07:49:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 07:49:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078356.1439337 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uljkv-0004vJ-1V; Tue, 12 Aug 2025 07:49:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078356.1439337; Tue, 12 Aug 2025 07:49: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 1uljku-0004vC-TV; Tue, 12 Aug 2025 07:49:12 +0000
Received: by outflank-mailman (input) for mailman id 1078356;
 Tue, 12 Aug 2025 07:49:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Pr65=2Y=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uljks-0004v6-Pn
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 07:49:10 +0000
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com
 [2a00:1450:4864:20::52a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d49154fc-7750-11f0-a327-13f23c93f187;
 Tue, 12 Aug 2025 09:49:09 +0200 (CEST)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-615398dc162so8105069a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 12 Aug 2025 00:49: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
 4fb4d7f45d1cf-615a8f00252sm19704071a12.8.2025.08.12.00.49.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Aug 2025 00:49: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>
X-Inumbo-ID: d49154fc-7750-11f0-a327-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754984949; x=1755589749; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=i3xqbItExMWt0y3cPFRImNwse14AAVMqn8awMMFn8/E=;
        b=QAbq5sHakWG30PdA1m9u1FJMmtlZIahJOgTTwnBu2796dO03NSyf07arihwpJRpDHu
         rjf8fQEN3+a8WKHJlwApt2xxkYT9AfnE1h6gTtkO02DOhNVobkNSnEl90od9X5TfIJmG
         EWIuiCBjww0yBq/btM8a/OHw73YZSiJ38vopv96LdaMgxJ5V6B1L3kjZGcuQg8SzPCsE
         2SiD6pn8V1gusRXeoVSN7yJAARQkdNbjog75q2CJosajgsXLpzjT4GrBdNNP91LJW7Ze
         fBsvjjLOc0h/Gxrvxw8fjLT2nIiK56wyej0RhR6tJdhmDuHVanWSN2HJ6ix7WDG8AWyY
         O/qw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754984949; x=1755589749;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=i3xqbItExMWt0y3cPFRImNwse14AAVMqn8awMMFn8/E=;
        b=fcsCHVuBVKPHN0cuJX0iLnLarUXEjF9UAcolVp/YBwtnyA+SCRuwFk1hlrwdB/hX3i
         nZ2+ubbjG0UsIDfVDDagohAdjE3ErrT9ryaRLKEuZ8x41Q9dJLrysuR0O9Gh6DUZOkwJ
         axLiUZV9SXvt6S82K3h8ijvpFAZz2oVtFfWY7Zs4XO3b0kI8e9uxcPr7zjxkRIavhqsQ
         /3YvQrBgoMR5iPsr/tGmb1p+0kD05S3n531ogipJFFPfiKTUZbWufTxMcQ2s6Ef3faCX
         056FayfD5hMHalmUFzIRAOHHf2ViTrBxfs3ckb3urFI7tC/NJin3r5fwRyhw+KWajpVL
         NoQw==
X-Forwarded-Encrypted: i=1; AJvYcCVMglnRN1LHV5er4V6pVeV/PvbxINMSP8Nwk6p//LngZUUv9SczwvHPEN9xzQy0msbKRPhVzOPwbzY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw/ENkfpJkCy82UM8Z2J1gFqDY1dOp5hq45/4WAstB1Lv9U2ux5
	Mp4c813l359cHCwIEvn5+k+3OIfywSEsuzAhdGlYLglS1aqWBFA1w37bMGwVUkQsDQ==
X-Gm-Gg: ASbGncu84vF2Is0lW1VnjxFCi634nnpELjbQNYJjxKM79RdC8uF10vMxLMm0mii/6Yz
	WXdwaSysFRxL+l1hN14ZMM19eNDOyN+SYiyqWY0iYe0RV1ziJD88nuMJc3ipWl7VWqOclAJ4AEs
	Ldiamykvcj4VW0d7RPXPUWglEdU7hRl45tl7MGvVP1rdBOmfX4v6xspNb00fxRukuPAK8MMrtoI
	HMUJnGjUA+40hK3IDHk6R5f6J6FVCASMasYsgGw+d5av3jW5olrBtJyY8fNsa22+FsRshc6CrSL
	wpLfXpvfiT0EBBwz0zpDaBvM7JD+NYL444Yso+oHA2RouQkCQUOEZuVbJYr1U86phWvlBkjORt1
	DpoTKg4d2+7wEPRfW0J0FVqlKcYRVOzGedYFm9u98YCLqtbH1YwWNEggb8ELRmVhxwvq3PMtBGw
	Y6CE7shqA3UEu1kNZipg==
X-Google-Smtp-Source: AGHT+IGZ72i6Rj1ILp7sIukW9X50Yx4C6ntvuB7bEFmaIndiWN9iUEmgWsZ1+dj4/eLXQBFnFT80lw==
X-Received: by 2002:a05:6402:3510:b0:618:1606:92ba with SMTP id 4fb4d7f45d1cf-6184ec8fafemr2057029a12.28.1754984948997;
        Tue, 12 Aug 2025 00:49:08 -0700 (PDT)
Message-ID: <0994e19c-a14a-4ff1-9d8c-f0b7a9d8f1e2@suse.com>
Date: Tue, 12 Aug 2025 09:49:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] misra: comment default case in single-clause switch
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <1d3c5364b726e42a8c38c396f2e20efc52790f62.1754933752.git.dmytro_prokopchuk1@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <1d3c5364b726e42a8c38c396f2e20efc52790f62.1754933752.git.dmytro_prokopchuk1@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.08.2025 19:36, Dmytro Prokopchuk1 wrote:
> --- a/xen/arch/arm/cpuerrata.c
> +++ b/xen/arch/arm/cpuerrata.c
> @@ -735,6 +735,11 @@ static int cpu_errata_callback(struct notifier_block *nfb,
>          rc = enable_nonboot_cpu_caps(arm_errata);
>          break;
>      default:
> +        /*
> +         * Default case left empty as other notifier actions do not require handling here.
> +         * The single CPU_STARTING action in the switch is sufficient because this function
> +         * specifically handles enabling errata workarounds during CPU startup.
> +         */
>          break;
>      }

Here and below - please obey to the 80 char line length limit set forth
by ./CODING_STYLE.

As to what the comment says: There not being a need to clean up is tied to
there not being any resources allocated during CPU_STARTING. Whether that's
the case is left unclear.

> --- a/xen/arch/arm/gic.c
> +++ b/xen/arch/arm/gic.c
> @@ -436,6 +436,12 @@ static int cpu_gic_callback(struct notifier_block *nfb,
>          release_irq(gic_hw_ops->info->maintenance_irq, NULL);
>          break;
>      default:
> +        /*
> +         * Default case left empty as other notifier actions do not require handling here.
> +         * The CPU_DYING action specifically handles releasing resources acquired by
> +         * init_maintenance_interrupt(), when the CPU is being taken offline. Other CPU
> +         * actions do not require GIC-specific handling.
> +         */
>          break;
>      }

I don't think this suffices. What about CPU_UP_CANCELED or
CPU_RESUME_FAILED? It may well be that in that case
init_maintenance_interrupt() would never have run, yet imo such needs
stating explicitly.

> --- a/xen/arch/arm/mmu/p2m.c
> +++ b/xen/arch/arm/mmu/p2m.c
> @@ -1828,6 +1828,12 @@ static int cpu_virt_paging_callback(struct notifier_block *nfb,
>          setup_virt_paging_one(NULL);
>          break;
>      default:
> +        /*
> +         * Default case left empty as other notifier actions do not require handling here.
> +         * The CPU_STARTING action is specifically handled because this function sets up
> +         * virtual paging for CPUs, particularly for non-boot CPUs during hotplug. Other
> +         * actions do not involve virtual paging setup.
> +         */
>          break;
>      }

See cpu_errata_callback() comment.

> --- a/xen/arch/arm/time.c
> +++ b/xen/arch/arm/time.c
> @@ -382,6 +382,12 @@ static int cpu_time_callback(struct notifier_block *nfb,
>          deinit_timer_interrupt();
>          break;
>      default:
> +        /*
> +         * Default case left empty as other notifier actions do not require handling here.
> +         * The CPU_DYING action is specifically handled to revert actions done in
> +         * init_timer_interrupt() and properly disable timer interrupts on the CPU being
> +         * taken offline. Other actions do not involve timer deinitialization.
> +         */
>          break;
>      }

See cpu_gic_callback() comment.

> --- a/xen/common/kexec.c
> +++ b/xen/common/kexec.c
> @@ -549,6 +549,12 @@ static int cf_check cpu_callback(
>          kexec_init_cpu_notes(cpu);
>          break;
>      default:
> +        /*
> +         * Default case left empty as other notifier actions do not require handling here.
> +         * The CPU_UP_PREPARE action is specifically handled to allocate crash note buffers
> +         * for a newly onlined CPU. Other actions do not pertain to crash note allocation
> +         * or memory preservation for kexec.
> +         */
>          break;
>      }

Yet when bringing down a CPU, these allocations are leaked. Looking at
kexec_init_cpu_notes() that appears to be intentional, but again - such needs
saying explicitly. Plus of course intentional leaks are always somewhat
questionable, so extra justification may be on order.

One further suggestion: Please consider splitting such patches at
maintainer boundaries. For the patch to go in as is, you need both Arm and
kexec approval. If you split, the part having got its approval could go in
without need to wait for the other approval to trickle in.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 08:06:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 08:06:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078366.1439346 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulk1Z-0000KM-FI; Tue, 12 Aug 2025 08:06:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078366.1439346; Tue, 12 Aug 2025 08:06: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 1ulk1Z-0000KF-CX; Tue, 12 Aug 2025 08:06:25 +0000
Received: by outflank-mailman (input) for mailman id 1078366;
 Tue, 12 Aug 2025 08:06:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Pr65=2Y=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ulk1Y-0000K9-B8
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 08:06:24 +0000
Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com
 [2a00:1450:4864:20::632])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3c834fe7-7753-11f0-a327-13f23c93f187;
 Tue, 12 Aug 2025 10:06:23 +0200 (CEST)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-af968aa2de4so939039166b.1
 for <xen-devel@lists.xenproject.org>; Tue, 12 Aug 2025 01:06:23 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af99604e648sm1166011566b.6.2025.08.12.01.06.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Aug 2025 01:06:21 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3c834fe7-7753-11f0-a327-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754985982; x=1755590782; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=A9aBB6lecwzo1fq4Qf6xjEh90CLTo+xgCO7eVuN4nRA=;
        b=TQ8/JjHL11SfZP5SYFiad/sqheJlrZ0NDIArosJBcPSggZYbzmaTpcjMUZCH/F3p2J
         KaBCwQPEei0iBvAdGwG+wEhSAIDG2GT58avLRh58sROs7yLbGfcSJWTZNTPCQMamY1jd
         w+dThshaxQmeu/csOLWJ7QyCiJVloA0ATY1XyKtg1oP0W/JJduQkVkLklO91QHpXJUpp
         ZkoGdRh7bBHo784Jluj9e615/1DG4PlbUS+79YkoOpZ97icenuTtZO8jRJzRGZwrK+wW
         t6KbHHl1nmVOoZhpI3/ECp20hPimJKYvISwhoGplQkNCaFT8A4cP5rDOtZKQWtAdEeXA
         Rzbg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754985982; x=1755590782;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=A9aBB6lecwzo1fq4Qf6xjEh90CLTo+xgCO7eVuN4nRA=;
        b=aZfq8/3ya+NBBzJMbybx+n7dgAzkXG6f1KyM8Nco7Sow6PQ7D6xhu2Mh1kZNYu+3H1
         QUGMXICFZ0QSKJSTOk7XXa0SBYbLtw5YA4fhJ0yN5ouK0mnqGmAJzm95nDwGbQujznRT
         GmnqVPxsQjOuS86h3KGxh3Qmb53AZjV7aUp60FXskHFtLOqEEalNiM7MK5Ik787IGngu
         fqjTj4gMVDYf4R34VCzvDspwUUwcbx8LYRcVwoyqZC69Env9F3RiWOVFw0yp/tGhnwGL
         FJd16ZZoZ6i2b/IsAfvHBijDK7iIk4/N+p52s3QRpXR4tUy6GCErtvj8Hg8Z9NINQigh
         89og==
X-Forwarded-Encrypted: i=1; AJvYcCUbk3VL0Rmq4DAVn9kxKyH5OHtGY63l2Ptl05NJj3T1Mv9nH0aNuxqlSaTXGRc3UNokLSNP1Zqq74Q=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzMGwVYS7Cka5zDN0F7sTp/Qc7F2p0cam12PPZxdXwZAzkLPNfw
	9pcqG5lYRcrNObf7CozvNFSVdX6RHXd59iHPrsEY6+rrGmKB8BLnMxnzEi8J3gfNtg==
X-Gm-Gg: ASbGncvW/yNo3esGiUHxef5SBMneOMO4fhaEOtBsJbqtQb7p+5Y8grsjG60h1wYHjIb
	p598k+V98fgAhpC2/L5p9me0MpaoYDGg8AXq+qXUD6RwbH1KA0dnqurIPViQ9Xsi2KW1iM3ZKjV
	oZm84olbxHyCich64jsmsFjdOpV0If74+6OFQvjA8GJvmgrucA7KZCduBbpAuDBRtXqoqhV2Mg0
	3Az9UFoQUWnFCwzOUZrdUdRbtutPwDd5SRIuXyJnD8M2ugiZH9NldJY78kq3TyKPJnBgZ5sk/Ws
	1sm/ZR/mgSIo3ReTtmUOtuZuwZnyuDRtqakYh4glKrho4Qdz5r8JTvh6kSR2ltEJcvfznbfVVBa
	cNw0qy7gUOoCjd+gPN6JuPges1+AvgpA4gCxF8gRLFKZcOXjRd9fMKX7EI9eyY4U1/cJ3Dxrrb2
	Q4TzXs/rM=
X-Google-Smtp-Source: AGHT+IEgRO/PYnFkRw9te58B5COpsTHplJJYbSRFJs2RDYWnqRj5wXpyRTYHV1xod1fBIvBPLlNkGw==
X-Received: by 2002:a17:907:741:b0:af9:467d:abc0 with SMTP id a640c23a62f3a-af9c65587e2mr1438392166b.50.1754985982279;
        Tue, 12 Aug 2025 01:06:22 -0700 (PDT)
Message-ID: <9f13d1c5-8f92-4a73-8a67-f4b44b72fa50@suse.com>
Date: Tue, 12 Aug 2025 10:06:21 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 01/22] x86/msr: Rename MSR_INTERRUPT_SSP_TABLE to MSR_ISST
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-2-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: <20250808202314.1045968-2-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.08.2025 22:22, Andrew Cooper wrote:
> The name AMD chose is rather more concise.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

I'm okay with the (much) shorter name, so:
Acked-by: Jan Beulich <jbeulich@suse.com>

But I can't make the connection to AMD: It's INTERRUPT_SST_TABLE (figure)
or INTERRUPT_SSP_TABLE (text) there, afaics. And ISST_ADDR in yet further
places.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 08:08:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 08:08:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078375.1439355 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulk3E-0000rP-Pa; Tue, 12 Aug 2025 08:08:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078375.1439355; Tue, 12 Aug 2025 08:08: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 1ulk3E-0000rI-Ma; Tue, 12 Aug 2025 08:08:08 +0000
Received: by outflank-mailman (input) for mailman id 1078375;
 Tue, 12 Aug 2025 08:08:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Pr65=2Y=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ulk3D-0000r8-Gj
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 08:08:07 +0000
Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com
 [2a00:1450:4864:20::632])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7a3c7ac2-7753-11f0-a327-13f23c93f187;
 Tue, 12 Aug 2025 10:08:06 +0200 (CEST)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-af9618282a5so989161866b.2
 for <xen-devel@lists.xenproject.org>; Tue, 12 Aug 2025 01:08: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
 a640c23a62f3a-af938aa8275sm1928395566b.57.2025.08.12.01.08.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Aug 2025 01:08: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>
X-Inumbo-ID: 7a3c7ac2-7753-11f0-a327-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754986086; x=1755590886; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=tikZqxniQEeCxvq1AdcRoaG4v/+IN2vdkpwVHqucwKE=;
        b=gsWQiodrVreMVkwQ2HNPaXx+lD/Wt7Jb0+/b4iA/oJD5RqODJ1sDSV+ljgOrcO/I/x
         Q5nvK7VJODr7HuZpPTL7Pz8aYRVRZQLi+s8dZdc5HdRz1sZkFWOeAr1wP1Kz68JlYSzR
         JdBuKQI3zNzhUJukPflzsbkS7+Q6U852zk+TYvMpQjcskjIEWHZ7Rv6VYc/zNNzjQUjV
         8Gdz95jON9XXy/T1cHtRx9/jiwkE2oSy6hUl4DBe95NIKa5FbzzuZdcdzCuuAzkbMl2R
         xh9RYThpnq7SCdur6qb0aisJqtAcbr4WirpdmAg2ohdtYPgta+NRm54flTat5Z5gTbV1
         6CJQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754986086; x=1755590886;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tikZqxniQEeCxvq1AdcRoaG4v/+IN2vdkpwVHqucwKE=;
        b=hGvHgFdQLXW+Sxex17/cwLsga35neyELz+OHHrVSMufGUXGozXYVskHH/i7PTEuWH7
         P0sz3GAuAJvsVoIpdbb06dcd9+Gn4Mkdpa8sXLSST5tib3abEX+dzT+FK63ulvZGvLgK
         8r1MqEx2u+Oo0tfsA1tmuEONIn/a4bztzs/TiMnPyyGTUfxNgSs6o/npxTT75yAUTnmq
         XkFPAgN60K4+cUpEQ5n1E31o/2uPtxTC4yn4snvs0BtoIKXZxIa+w19T5ghvPbYZNh8Y
         M7OWzB0B6EJ1pDltjkRX25njFe2Smi6cJ+JK39mT9MwHC6+06t68xvNPQ8C14jDBSvjK
         XxPg==
X-Forwarded-Encrypted: i=1; AJvYcCXBNn6nc7i+meRj4Dqdu3lLmSm/bY0RfpgGUSUcz2oc4tCD4IWOlpZArKWmMzNGd6K+1Q1ffthRF3s=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzLQuuTx5fkUCaYUXcZNPr0DyuLzaVEfPVUjW57HgmN4/9Jh+Wk
	/ZhKo8XBMM005bz3+lTeD7KEAWt/nU//KjfgIcBmv7JsqGDbwFov1OWTvxZkbMoJ/g==
X-Gm-Gg: ASbGncsEoaDHHDj9quOnPo9XQDWJYRGmLiPN3RACJbW87Xk/nXr3LSMBTP64n2VFm2j
	HmVN0pTIHGyzZxzA/yu8cjjCSM+j40K6ZEvL4o5t+xgLAp6PCOcxdAkQHupwPNPcpzsf6PBFuK8
	GlMVCydHdfYYIo1db6w2calschOXmthJIB/z9o3CJuKAGdh3N5MgMQl5NBi3M4CGWKpZIUyJSH2
	fCNpJbNs8EBNwbiAf1isdI9+hnL9VbcG9CLebm6D+IgEuoVn10/dQaM2f3uHuyuVZXvYQ83YVhl
	U8xRNxpASN4lZlixTATnmmgkE9TKhHg38xwFnnAFCyLoxivEixlQ/wg+3Yjvssc9hGPJClrjoW2
	H9BMGM7mWkDZYUGiPtV6IAWxeSOiTaF0fr5k9RNjdfq1+fsSZOLrgTOfUBq6nrTbBFzTZyKh/FQ
	zWeXFxAUA=
X-Google-Smtp-Source: AGHT+IHjx4ALgaGg8V07LRx+k3imaWuyQWVd9NvF2AhjyVKaxrJRGlY7Cat3GQ+WoXJouvO8p0YXPg==
X-Received: by 2002:a17:906:9f91:b0:af9:e3d3:a43f with SMTP id a640c23a62f3a-afa1e129125mr224942266b.47.1754986085938;
        Tue, 12 Aug 2025 01:08:05 -0700 (PDT)
Message-ID: <18bf1a4d-5af9-44a4-8c51-3a0bf6e69e20@suse.com>
Date: Tue, 12 Aug 2025 10:08:04 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 02/22] x86/msr: Rename wrmsr_ns() to wrmsrns(), and take
 64bit value
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-3-andrew.cooper3@citrix.com>
 <be2b70cc-11ba-4f3a-b0b8-0ead6d14934f@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: <be2b70cc-11ba-4f3a-b0b8-0ead6d14934f@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11.08.2025 08:36, Andrew Cooper wrote:
> On 08/08/2025 9:22 pm, Andrew Cooper wrote:
>> In hindsight, having the wrapper name not be the instruction mnemonic was a
>> poor choice.  Also, PKS turns out to be quite rare in wanting a split value.
>>
>> Switch to using a single 64bit value in preparation for new users.
>>
>> No functional change.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> ---
>> CC: Jan Beulich <JBeulich@suse.com>
>> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
>> ---
>>  xen/arch/x86/include/asm/msr.h      | 4 ++--
>>  xen/arch/x86/include/asm/prot-key.h | 4 ++--
>>  2 files changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/xen/arch/x86/include/asm/msr.h b/xen/arch/x86/include/asm/msr.h
>> index 4c4f18b3a54d..b6b85b04c3fd 100644
>> --- a/xen/arch/x86/include/asm/msr.h
>> +++ b/xen/arch/x86/include/asm/msr.h
>> @@ -39,7 +39,7 @@ static inline void wrmsrl(unsigned int msr, uint64_t val)
>>  }
>>  
>>  /* Non-serialising WRMSR, when available.  Falls back to a serialising WRMSR. */
>> -static inline void wrmsr_ns(uint32_t msr, uint32_t lo, uint32_t hi)
>> +static inline void wrmsrns(uint32_t msr, uint64_t val)
>>  {
>>      /*
>>       * WRMSR is 2 bytes.  WRMSRNS is 3 bytes.  Pad WRMSR with a redundant CS
>> @@ -47,7 +47,7 @@ static inline void wrmsr_ns(uint32_t msr, uint32_t lo, uint32_t hi)
>>       */
>>      alternative_input(".byte 0x2e; wrmsr",
>>                        ".byte 0x0f,0x01,0xc6", X86_FEATURE_WRMSRNS,
>> -                      "c" (msr), "a" (lo), "d" (hi));
>> +                      "c" (msr), "a" (val), "d" (val >> 32));
>>  }
> 
> It turns out this is the case poor code generation for MSR_STAR.
> 
> I've adjusted it to:
> 
> @@ -39,8 +39,10 @@ static inline void wrmsrl(unsigned int msr, uint64_t val)
> Â }
> Â 
> Â /* Non-serialising WRMSR, when available.Â  Falls back to a serialising WRMSR. */
> -static inline void wrmsr_ns(uint32_t msr, uint32_t lo, uint32_t hi)
> +static inline void wrmsrns(uint32_t msr, uint64_t val)
> Â {
> +Â Â Â  uint32_t lo = val, hi = val >> 32;
> +
> Â Â Â Â  /*
> Â Â Â Â Â  * WRMSR is 2 bytes.Â  WRMSRNS is 3 bytes.Â  Pad WRMSR with a redundant CS
> Â Â Â Â Â  * prefix to avoid a trailing NOP.
> 
> 
> which stops the compiler from loading the high half of %rax too.

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



From xen-devel-bounces@lists.xenproject.org Tue Aug 12 08:11:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 08:11:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078383.1439366 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulk6c-0002gl-8U; Tue, 12 Aug 2025 08:11:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078383.1439366; Tue, 12 Aug 2025 08:11:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulk6c-0002ge-4n; Tue, 12 Aug 2025 08:11:38 +0000
Received: by outflank-mailman (input) for mailman id 1078383;
 Tue, 12 Aug 2025 08:11:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Pr65=2Y=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ulk6a-0002gX-Hy
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 08:11:36 +0000
Received: from mail-ej1-x631.google.com (mail-ej1-x631.google.com
 [2a00:1450:4864:20::631])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f6289629-7753-11f0-b898-0df219b8e170;
 Tue, 12 Aug 2025 10:11:34 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-afa15bc3651so198189766b.2
 for <xen-devel@lists.xenproject.org>; Tue, 12 Aug 2025 01:11: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
 a640c23a62f3a-af91a075a74sm2193334366b.17.2025.08.12.01.11.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Aug 2025 01:11: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>
X-Inumbo-ID: f6289629-7753-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754986294; x=1755591094; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=nhJEwPmuu22oDm2pcFoGijh2E/uw2ztQqZ9LQb45uyY=;
        b=Bka5Esf4I4/pxutLDjp6f6CaZnnGc9uCiD/L6uspdg3pcSHoQ3H/2f29keePxXoxyW
         GT8sCRoHLQA1eWxZ/V8isglLWUBAzXVrnorBiQynshOgwvWfXL593tLPGBrRU5PmKOQd
         lInzU9KTceRQxmh9ckNkl14SX1cRHE9V8eP7EoaTnkQyVcdGS5oygraUtkmRyCbLqj3P
         TmGqKiOhAxG/vjKT7a7X8qZC2u6Ab76gAUrwkoG4vLYLUyv+wtPUfbyCk4DQwhKZW5+T
         s2Ip+wte4SLgIdOOi7eXA6kqDyQ1b/1Ozh+dpwOD4siSMY12CYoklt0089Gq95VFWLEB
         nxGw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754986294; x=1755591094;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nhJEwPmuu22oDm2pcFoGijh2E/uw2ztQqZ9LQb45uyY=;
        b=P8/uZ5jiryzkA0HGca2oDl4iZ4HT+AMalzOvgcqMcqOmWp5qLOuh9wizdMat6jR+SD
         DELv9C+mP5Jk6v6OYRVlFMEMLFEVUjV47qZfsN7ybZMBV4a2iw+if4nLxb9ah9SGmd3s
         7RYj1JrMMi2COME+EDlBCf/JicaXLjii+wTMjjBXyNJMoql0ltvzzVHN1b7h/53AP3ff
         25NjgYyddklv+Ozcu5UJr7Wfhs/ViR4S9GmYyWSzDGmdsoLYoCkWUaIBReENtYjBBykr
         rMk/Db7DAPc07AXq3iAnTIXHWEn8Pav9NNYODB9dplixE9oArxCHKqpk/e+mwjgQsEZN
         8rDg==
X-Forwarded-Encrypted: i=1; AJvYcCUVWYgENaw+TMwDi7E9xfrkIofV2BlwzwRIuGBtsEhEmDZD23/y53tzzyK9VnJDb6j1XAKirKuww34=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwbPHgwc27Ul/yZ01EpeRdY8zmO/Ab7x0OWdo1SPjjCZI9WHzYo
	nhozkaMSPqhc3lV99JTdpZbHO1gFl8JCDS/EsW85je4OhDOXyB+j1DPEDRNCN8EKX2KliLgLG5Z
	NhTY=
X-Gm-Gg: ASbGncttHscRpOxzeF44E+RO2tGNSIUiraxK2RuKb6lJKl4xT855je98LZoN+IcQZOI
	XPIb31ipW0C9n1hNFSTG5VnnFYOt6IIUJI+XDM7JM2De/aHPxtIDIIeuU+Nz64Cneq4n0rTFSIV
	ztdDanIWmiubWrbhEaakVZviPVgWV/gVxoTR1LVX/ZdCX0aAoj7HifSbTvtxnAETJ9B/b49FkSc
	hgwr8bg5KrLrsRpDoHZ8uWNCA/d5BCjrL1+3G21iKbNVqAQbDOtik5dgsNG/jk9BpjCjO8G7ezk
	mYAVHqxAczXXZrcgGNNl4/yHd9FQuOBort5tljYfeOr3TrJTpChcQ5X+ZihFESHp+nHgmSOD2OW
	UB/XRd2q5fx1letUKpGGkfyhXOXZpKvb780v8KXf0IbIkdOZAb/blsFvGhDxZ6DULJhqEOJZmvT
	t1kixlSaw=
X-Google-Smtp-Source: AGHT+IEx5Vp4l77hloeMX6MWr5vtYT7rR5Kv94DW/5pyQZaTmCjSUSYgAq7dchQjmrY4LXuySFui7Q==
X-Received: by 2002:a17:907:1b10:b0:ae3:f524:b51 with SMTP id a640c23a62f3a-afa1dff7f31mr203696966b.10.1754986293917;
        Tue, 12 Aug 2025 01:11:33 -0700 (PDT)
Message-ID: <f8cfb9c0-f505-452d-b18e-801beea69d1d@suse.com>
Date: Tue, 12 Aug 2025 10:11:32 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 03/22] x86/traps: Drop incorrect BUILD_BUG_ON() and
 comment in load_system_tables()
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-4-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: <20250808202314.1045968-4-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 08.08.2025 22:22, Andrew Cooper wrote:
> This was added erroneously by me.
> 
> Hardware task switching does demand a TSS of at least 0x67 bytes, but that's
> not relevant in 64bit, and not relevant for Xen since commit
> 5d1181a5ea5e ("xen: Remove x86_32 build target.") in 2012.
> 
> We already load a 0-length TSS in early_traps_init() demonstrating that it's
> possible.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
> ---
>  xen/arch/x86/cpu/common.c | 2 --
>  1 file changed, 2 deletions(-)
> 
> diff --git a/xen/arch/x86/cpu/common.c b/xen/arch/x86/cpu/common.c
> index f6ec5c9df522..cdc41248d4e9 100644
> --- a/xen/arch/x86/cpu/common.c
> +++ b/xen/arch/x86/cpu/common.c
> @@ -936,8 +936,6 @@ void load_system_tables(void)
>  		wrmsrl(MSR_ISST, (unsigned long)ist_ssp);
>  	}
>  
> -	BUILD_BUG_ON(sizeof(*tss) <= 0x67); /* Mandated by the architecture. */
> -
>  	_set_tssldt_desc(gdt + TSS_ENTRY, (unsigned long)tss,
>  			 sizeof(*tss) - 1, SYS_DESC_tss_avail);
>  	if ( IS_ENABLED(CONFIG_PV32) )

Well, the comment is wrong. Whether the BUILD_BUG_ON() itself is also wrong
depends on our intentions with the structure. Don't we need it to be that
size for everything (incl I/O bitmap) to work correctly elsewhere?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 08:16:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 08:16:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078395.1439376 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulkBe-0003KZ-TX; Tue, 12 Aug 2025 08:16:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078395.1439376; Tue, 12 Aug 2025 08:16: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 1ulkBe-0003KS-QR; Tue, 12 Aug 2025 08:16:50 +0000
Received: by outflank-mailman (input) for mailman id 1078395;
 Tue, 12 Aug 2025 08:16:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Pr65=2Y=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ulkBc-0003KM-Vv
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 08:16:48 +0000
Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com
 [2a00:1450:4864:20::52c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b0dd72b0-7754-11f0-a327-13f23c93f187;
 Tue, 12 Aug 2025 10:16:47 +0200 (CEST)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-61813e2fc73so4379082a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 12 Aug 2025 01:16: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
 4fb4d7f45d1cf-615a8f26cc6sm20013871a12.23.2025.08.12.01.16.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Aug 2025 01:16: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>
X-Inumbo-ID: b0dd72b0-7754-11f0-a327-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754986607; x=1755591407; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=a9Sdpei199qArdIZIPSdSS9mEvz4I5hLa6skdBubxAg=;
        b=JOyTIzNVfY9y/4ahPEYGJjIOgOPviB//ULCaUCuFFLqN/PnCAIT5G1bnFJmDJSKAIz
         DTrUePfSdXEQVTOSEgXaEAkGmJdY8oLeF+hpUQheORzUqfIZ8Czkx2grxdj7PzgO5Q7n
         UAzmB+3k0fbSbrWwUm3uoW8rqeoOqV4buOcbGg8ao5lzsJ5thyfoDGCvlFZeXqgkYAZ9
         GWJRZpuLav2VXQ0dG7xnf9k9LvmuIHo7jOeuh5r4/FDjtUWBE/fibSldKDSKv109qZ7A
         MejJ0CpuM0/Lx/dIrb1/GhC3ORYfEMstnFoVTN4NniPBEYKxvvK+jm5ORztaSeSoWftL
         tMGw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754986607; x=1755591407;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=a9Sdpei199qArdIZIPSdSS9mEvz4I5hLa6skdBubxAg=;
        b=cxGXjC5giBd5dtQBJZBKWDV+dRekWot6NdnpmryhESPvV5WQ57+DcLocOfczvSCB35
         VuLdJqgV/tIAQWdltg/5pYaL9ynfkKD8LnESZPW8FxHmeAWd+G1xVbd2/sW9ejUCJYGQ
         kbriK1dkgCPX+2ZcKkiwWxIsIhK/WpO7l8nzuWfZxN+OsofLpFWExZZrn+lsVQnl9x/8
         YUIC8L+KzT6DrZzcPxWtIWWw0yQl4/z6N2kl8qkLKnWmXLZWV1J81CM/u5MJK4+JkSMV
         3BIGLxPy++Nv/QyXWuVVS1W6mbY/KF7Yg0gzBz2oTUgaBhhz89Kpecb3mFkuXiSLeZMz
         8VZQ==
X-Forwarded-Encrypted: i=1; AJvYcCWYjiCmAikKeFBSjaaE/1k1ptod1AN2cndaRFOTRYobK07eySNwTBGRMZ+48LDDPwRyQPnqezed2b0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxLGg4GiIK/AAEIqqzyv1XNUMPENbNCEIpQZVUUojXKRgoC8AOM
	UOwCSw1bFm9/r+mjGpwr/CfBEsw9WE+Mj932qs3AeGadLR5R+53fLKowvEDna7FUV50gBpKOCPu
	vcQA=
X-Gm-Gg: ASbGncu4VEp2l0bNgaGbI4WWCyHJz8m2vbM7pwzo3+KrWuGdGxRRZKJCo1IWmYLWCEh
	Sz9IWzMStc28X1gdNGuGv7/bWOR+tWKm81AG/ZaSWATusDROQFKF0kSqDO5E0qUzzpEWG00hnSE
	CPXnZnZ+GZYhDjLamKJ4l2wq6eYinBcvfTqAclaeJAIO9ujR9L1uAY4isWzrBe+UoqM1aZDcOj6
	wF4xTmVepko6pPbEsFsj1Toz87MBS5R8NH5wkzu0eRu4+1YbnsCvJTAtXWcFGrmYNpcy6EUtjgj
	V2ceBXKJAJky4AW7IXT3JiLb+91b+H+iIcu6ZfWAmrKGaA9BuN/FZCWePwKbluYJo5TxNK0LW6y
	qpcp6LjsghfMuWDRP+25lNMWG0j9NhI3BwuYZiEXq/jhJiluT+z5zSh9b94xJ1yI5qO8E5io4NC
	W4y4kIjY1GKEB0IiHrxA==
X-Google-Smtp-Source: AGHT+IG8KJ+Rmz3fqwMYL5Kdlo93hEK8mGTetYV8t21e0qMBJkHZ1KOp2n1gUrTc49wJNfcX7IzVCQ==
X-Received: by 2002:a05:6402:4313:b0:617:cd9d:e26a with SMTP id 4fb4d7f45d1cf-6184ea1171emr1679528a12.6.1754986607118;
        Tue, 12 Aug 2025 01:16:47 -0700 (PDT)
Message-ID: <44c9a7ba-8e01-41cc-8c93-32b022885439@suse.com>
Date: Tue, 12 Aug 2025 10:16:45 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 04/22] x86/idt: Minor improvements to
 _update_gate_addr_lower()
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-5-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: <20250808202314.1045968-5-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.08.2025 22:22, Andrew Cooper wrote:
> After some experimentation, using .a/.b makes far better logic than using the
> named fields, as both Clang and GCC spill idte to the stack when named fields
> are used.
> 
> GCC seems to do something very daft for the addr1 field.  It takes addr,
> shifts it by 32, then ANDs with 0xffff0000000000000UL, which requires
> manifesting a MOVABS.
> 
> Clang follows the C, whereby it ANDs with $imm32, then shifts, avoiding the
> MOVABS entirely.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Acked-by: Jan Beulich <jbeulich@suse.com>
albeit I have to admit that I'm not quite happy about ...

> --- a/xen/arch/x86/include/asm/idt.h
> +++ b/xen/arch/x86/include/asm/idt.h
> @@ -92,15 +92,16 @@ static inline void _set_gate_lower(idt_entry_t *gate, unsigned long type,
>   * Update the lower half handler of an IDT entry, without changing any other
>   * configuration.
>   */
> -static inline void _update_gate_addr_lower(idt_entry_t *gate, void *addr)
> +static inline void _update_gate_addr_lower(idt_entry_t *gate, void *_addr)
>  {
> +    unsigned long addr = (unsigned long)_addr;
> +    unsigned int addr1 = addr & 0xffff0000U; /* GCC force better codegen. */
>      idt_entry_t idte;
> -    idte.a = gate->a;
>  
> -    idte.b = ((unsigned long)(addr) >> 32);
> -    idte.a &= 0x0000FFFFFFFF0000ULL;
> -    idte.a |= (((unsigned long)(addr) & 0xFFFF0000UL) << 32) |
> -        ((unsigned long)(addr) & 0xFFFFUL);
> +    idte.b = addr >> 32;
> +    idte.a = gate->a & 0x0000ffffffff0000UL;
> +    idte.a |= (unsigned long)addr1 << 32;

... the cast here. Yet perhaps gcc still generates a MOVABS when you make
addr1 unsigned long?

As to the comment next to the variable declaration: Could I talk you into
adding a colon after "GCC"? Without one, the comment reads somewhat
ambiguously to me.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 08:17:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 08:17:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078400.1439385 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulkCL-0003nq-4K; Tue, 12 Aug 2025 08:17:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078400.1439385; Tue, 12 Aug 2025 08:17:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulkCL-0003nj-1c; Tue, 12 Aug 2025 08:17:33 +0000
Received: by outflank-mailman (input) for mailman id 1078400;
 Tue, 12 Aug 2025 08:17:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Pr65=2Y=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ulkCK-0003bX-Ej
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 08:17:32 +0000
Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com
 [2a00:1450:4864:20::632])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ca922829-7754-11f0-b898-0df219b8e170;
 Tue, 12 Aug 2025 10:17:30 +0200 (CEST)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-af98b77d2f0so968649466b.3
 for <xen-devel@lists.xenproject.org>; Tue, 12 Aug 2025 01:17: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
 a640c23a62f3a-af91a23bedcsm2166374266b.120.2025.08.12.01.17.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Aug 2025 01:17: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>
X-Inumbo-ID: ca922829-7754-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754986650; x=1755591450; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=J9/UtMIJfoJ79AGdHRB1b7dnHc+lGTsD5eII4rAr4M0=;
        b=C06YJzuPmgfklFv6cBGUNqLtzd5Hsf6mcW5EoCEY5ybfxHHTArlBWALzusoIoy3oq2
         fkniCiqBkZt505R/w+zu6sBGLlSg9azEl4zwvi2pzxjM+rxA+qBdLnc4QPonLjEdXipc
         ofh85CdnVOeqLjWNg5od/vKPI1JOV5OwshCjVEgXzpWB2+VCoFR0I54/j+8LOUBXKjQJ
         6C2Y3A25oXIC1Vl9K5DdK6L0jpJvoYTalQi70RTWuirIbmDYMU2ofbi8iqThNvOiBoqD
         bfV8j/LJhzYOO1BagZSheim+CUCPSu4f/24AduOv5/dCOK7isNvhxGKHU+Cy4FtJgFiI
         gMRA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754986650; x=1755591450;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=J9/UtMIJfoJ79AGdHRB1b7dnHc+lGTsD5eII4rAr4M0=;
        b=vP9+RIa9uIYv9N+HPeSoK3pr6ldXw/1/6PnkDq2l0OZX23wzbcxy1/agCU8S8/H0De
         /UKpa9kbrMGBu4rue+X//ImOMR1Rh5AveUwNJ2eaXq2z4T38HweVbd4ao23fN9yqA+Eu
         XawaBN6zCZUb7ZW66KFCDIFbj4YdDndWb0zby24FlwTLzDSxkB0BrVektMO+p0mERrG1
         ZCnH0PVX9g0ajme/FXJH0IkgEXuewz1F9YATZzk3bjxcxYpjcuHOGYSydHGiyfk3iSi5
         AVBrjQoEdWavGj8eSHsnTc8Hl6s7DEcnJZJy2vhmj49KtiMiK9aDBPWUTO6c6j9/uW7I
         MYFw==
X-Forwarded-Encrypted: i=1; AJvYcCXMUiLDWUVYt7Jshu8rmwK/Xna3r/9u/0jXpqDQ9ErFcLWkU9Bm+wh6qbWcfYDKZBFl1sY+wGyg9Ag=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yynf8ls1jFc8TKjc7nwFlxovD21ktIT9MfU7bbkvxgxKyb1faIy
	CS0h1XWcnu7PLUCnR2klsrPqjOQZTx0+oDtNRrGAcP3ohjSbgNC2ea3b4oKRJsCj7g==
X-Gm-Gg: ASbGncumA0bMVTlUTz801PIoacH0x1kFkbucagrUtJlyfIZPiFI5UclDiDMgoRrdIPk
	hwmjYbXY8rjdAeEMocKS2vxSjAJdetsMb0K42iUDCnUqz5vGMcY4oCUJ82BkKGKtMxEbH9taqek
	WB9Vp3Soiyc/zmSU85rrK12swuPTR9miEKPyKBvBUShXmuIH2NTO8Rk83lka88JqHgA/igC+lNZ
	/r1ICgK3GAVUSzrApIKruPIqWlZEIHDTJ4Mi6ZRPJCk0iiiL8usJEWcqgheP8wd3baAP7y/KIBp
	R42hMQ45HlD3COuEpRANbivl6UJZ8DY4ocfv2fr0FYKRSByKLb4rPE/piwaKYjQJ1TI+qAJlz+G
	skj5F6cJA1JqHBqg2aKT1AEd1mSFea11tHdFvttjrLGF6H91dG1dOWsE/w1i/3uK+Vui2CBMe24
	AnYKHCOdA=
X-Google-Smtp-Source: AGHT+IHMveklrPiiQk3eabv4a9B1JDqMK9Y7tnX/1/MtkhoQFmQL+upOh833oyIQcEF6IlCOrzrdWg==
X-Received: by 2002:a17:907:940c:b0:af2:42e8:ad92 with SMTP id a640c23a62f3a-af9c65b2f50mr1429942366b.61.1754986650163;
        Tue, 12 Aug 2025 01:17:30 -0700 (PDT)
Message-ID: <16b35284-fb2b-4ca2-9329-1a50eb3a1774@suse.com>
Date: Tue, 12 Aug 2025 10:17:29 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 05/22] x86/traps: Rename early_traps_init() to
 bsp_early_traps_init()
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-6-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: <20250808202314.1045968-6-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.08.2025 22:22, Andrew Cooper wrote:
> We're going to want to introduce an AP version shortly.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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



From xen-devel-bounces@lists.xenproject.org Tue Aug 12 08:19:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 08:19:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078411.1439395 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulkDw-0004MU-FY; Tue, 12 Aug 2025 08:19:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078411.1439395; Tue, 12 Aug 2025 08:19: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 1ulkDw-0004MN-Ca; Tue, 12 Aug 2025 08:19:12 +0000
Received: by outflank-mailman (input) for mailman id 1078411;
 Tue, 12 Aug 2025 08:19:11 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Pr65=2Y=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ulkDv-0004MH-Cj
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 08:19:11 +0000
Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com
 [2a00:1450:4864:20::632])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 05608c07-7755-11f0-b898-0df219b8e170;
 Tue, 12 Aug 2025 10:19:09 +0200 (CEST)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-af9611d8ff7so913458466b.1
 for <xen-devel@lists.xenproject.org>; Tue, 12 Aug 2025 01:19: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
 a640c23a62f3a-af91a078cbasm2169983266b.5.2025.08.12.01.19.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Aug 2025 01:19: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>
X-Inumbo-ID: 05608c07-7755-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754986749; x=1755591549; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=msNObn64K/b+WyR6ZKvFGUVAbGoAb9fs4i3A4OZSrow=;
        b=Mm9li0MopS3oKO9ctAaeV1bpJiQbIgaSRm+f1KqdwE0PdHyYyU2hFegcvahA1/6PE8
         JTCDmoH/EbW3DOnobu9rOsKVC9IeR2hNIjmUt0N2ivikAxKcxtYpYUCS0Bhgf27EZvTz
         ToO/iE7WXSUfRtMCZ0csgxx8hvQF9KAP0FjOGBD6PPqYMMx079Vt8zNHV7q/RhY6F+YA
         941dGF+su/p8K3wlnNNFwsQsY/Y8gU7ykyTDFYj+45s9SpwvAp6Rq1bDN7udCp0iwOTm
         EEAxNa4AZPhFiuwgFKM3htDjS9XRrZ4ow0mCAFZE4SCE6OOz9ll+Zz9+XOz/RpaeJkCy
         jp/A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754986749; x=1755591549;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=msNObn64K/b+WyR6ZKvFGUVAbGoAb9fs4i3A4OZSrow=;
        b=nEXHwvpXaPXvC7tzJDjKxJYemBxCYVnzTjwJ2A+OGI6QKohOsZV2UBJx+DGEOCzNbB
         P9kE+5t7hvbTr/NA77XO/OF4Vjt2xxauNWQsr7nLG1xXKgAuTiFFU56k3cIZMF9ZEA6Y
         /unrqxuLH7iXS+94y6vdbqUReQikU2CuBBlTcNG1NtgzjUlzgEZv3coYteorovvtTIFI
         3T4Ov/VZrVaglbrf0mjye/6agAuhdNhhcIpQ/mf3f6oe3XsMddmE8R234J8aJjQkc/gA
         6ceRqhJGKGUpXw+or9fXHMssYqXhnl4MFyRFtRKQID3BxgbHpCp7YROY0ga+m5lj46vh
         70/Q==
X-Forwarded-Encrypted: i=1; AJvYcCXwmqXJes7RC8OHMfr4urJ5u8tICj0hokr1GnG/mlBZToOCyWxFWoIuLuyg1wwcNLgdCQ/LQ9g7JQ8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzv80O3gVPyHSEMXk99gtdAZGf06Y6RhR/QFSkHajz6mZUgcKEQ
	SVT3xLT1rTz9bgtS3czpTCPlq3AQ3GFEmZrqP5FgnUe4saFm/6VMEzc13PY9+6u65w==
X-Gm-Gg: ASbGncseQhf7hau7JzBQ9mzDV6h0Ga/02RPSnWk9G+ehlu9Ve8XaP18D8UmJ9Kn3oy6
	q3UV+ua09IOCKK7LBosPh44Q9Zn/uPdidZOc644RZkQFlHHKKEY1djTKkaKf1d94J5T/SEtEU3r
	QK8z/kMGR0KSzwGax/TExmgwKmVCd6J2/U7GWPXnbm66IYlSUDiu87ldcKqUndVHZtqsvLqX+fW
	cfxujUcSHBSY9yYmwajOdDk9TPWMhaq1tDtpfydEfP64Dbh+g/i/0Ml76XOfQVtgfSOiED3bJKz
	8ft0468+hVEjRia4avpWLKUj3QQgnOB1kpj3q4Yh6MspvzuAhBpNuGEjnD8/JEggIeItfsd0U7y
	5BS2corUCA8Yqh3SEN2Qe/t9eSJ3e7UOMSXyQQufMp9OwzQ+AyAmrYdnWvBVm3UIvgGJl+1ZL71
	QLrcmgtas=
X-Google-Smtp-Source: AGHT+IFXDqucQ+tsb4a1uoljrTkceXBHKgD/V448VdcnbjlhBBPAHKos+ep8xyoMczh5UeUxEccbXg==
X-Received: by 2002:a17:907:971c:b0:af9:3f99:1422 with SMTP id a640c23a62f3a-afa1d617a1dmr261034266b.5.1754986749041;
        Tue, 12 Aug 2025 01:19:09 -0700 (PDT)
Message-ID: <59f267a5-ca5f-4708-8538-e2c7d5fc0c3b@suse.com>
Date: Tue, 12 Aug 2025 10:19:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 06/22] x86/traps: Introduce bsp_traps_reinit()
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-7-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: <20250808202314.1045968-7-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.08.2025 22:22, Andrew Cooper wrote:
> ... to abstract away updating the refereces to the old BSP stack.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

If it helps later:
Acked-by: Jan Beulich <jbeulich@suse.com>
with ..

> --- a/xen/arch/x86/traps-setup.c
> +++ b/xen/arch/x86/traps-setup.c
> @@ -107,6 +107,15 @@ void __init traps_init(void)
>      percpu_traps_init();
>  }
>  
> +/*
> + * Re-initialise all state referencing the early-boot stack.
> + */
> +void bsp_traps_reinit(void)

... __init added here.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 08:20:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 08:20:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078419.1439406 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulkFa-00065W-Qj; Tue, 12 Aug 2025 08:20:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078419.1439406; Tue, 12 Aug 2025 08:20: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 1ulkFa-00065P-N2; Tue, 12 Aug 2025 08:20:54 +0000
Received: by outflank-mailman (input) for mailman id 1078419;
 Tue, 12 Aug 2025 08:20:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=3OTH=2Y=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1ulkFZ-00063n-Pw
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 08:20:54 +0000
Received: from GVXPR05CU001.outbound.protection.outlook.com
 (mail-swedencentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c202::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 42e85816-7755-11f0-a327-13f23c93f187;
 Tue, 12 Aug 2025 10:20:52 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by AS8PR03MB9560.eurprd03.prod.outlook.com (2603:10a6:20b:5a8::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.13; Tue, 12 Aug
 2025 08:20:49 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9009.018; Tue, 12 Aug 2025
 08:20:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 42e85816-7755-11f0-a327-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=t/G0ZIQoYXC0oFKAr/zaDuOxiNsUMdfnHbr/ZE32npIcdBufa/wRztqjA5zraaWxzQUxptsKQtwrPSC4miPSzy6Wy4XFVc81eaSESP981wOJOnRbmkpXXYFGKdInhQltPHsWd0catRCN623OtcJW/LStvRY2LxbTOMch2y+o/63WTdGSeNoJxA4GWzSAp2adqZw9tufFCBOOGghgu3Ogfk714/mnCmpd11UddCbSn8uMwkZQT+NXVE8n5eUALxYLAxBp3ZvI8IKex474uyHbKNuKHQQVHXgbqUsojWEc5RZLqqyibSWr2VmQ/28r8cMidlQ14maa0vM6JNvmz3h8eA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=6fj1dvLvEPVg5e8jFlR5BgUA5s9sJwN/DWxxqXvNOSc=;
 b=epoFqZ4nLpoYj7iI+c4EaUYARRFDKRUg6IPH9EinoFSKgFwj8MADEV+U4BvJvhbeSddUWm/janEwq+qqFXrHrcfPoa8dgAM/5q5MXroHJ+f+Q4EpY179ON1wN/2uu6JtCSs+rwSoJjcORxlPkdlzVHGwVkC7KJ3ll9lKD3e47dPNqvrRlnC4Qk54nByrI9sTwotCAO/Ll2DAqB+opX9EdSEW6GxduHoOZf6meNPOGGhfzodnfhJVPmUGa/F8ZKIEukDJ/f2tBX4J6EW3Z2RC0I3/2GgnoNLVIfegGqECn07Ml1WXTmXTNA4DUUgQlpamClVi5zG5Msy6cNPcbkQdHA==
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=6fj1dvLvEPVg5e8jFlR5BgUA5s9sJwN/DWxxqXvNOSc=;
 b=AgzSQKdGKGwwFICm+Hi6i36WU8R8Dv0ay/qSVmqUb2kWB3kiSz9xBnRtko3eO/Q3yoK2+8Pc/XdOKZ9Wx05JD9fxoqmjBYkpIBOBJ/T1Wnw/kSNM/YgcJIZJtGL776oYjtJWThPeGvoWpB/W140lERaK6DAWtje5V/3XvVq/wACQ5LIR8n/wqaOUI4yLnbclXx0iP9Vzp2vnzQHU16AIX1AnwcdFCfuoPOnA0qFj5e38zBQQkg1JIl9BodLYVTOX394MrXiSkNkgLuE3uFs5QZ8ByLGkGolG/y1Il1aHI8uA4leaJlDRtOY6AHWUqRzw7JQYtY63EetExgcoOku8gQ==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Julien Grall <julien@xen.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: 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?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>
Subject: Re: [PATCH] misra: add ASSERT_UNREACHABLE() in default clauses
Thread-Topic: [PATCH] misra: add ASSERT_UNREACHABLE() in default clauses
Thread-Index: AQHcCv7M4bE5kwDncUeSEAS4rjYqyLRd9fOAgAC4EwA=
Date: Tue, 12 Aug 2025 08:20:48 +0000
Message-ID: <209225bf-38be-4e93-a79b-41842244f0e0@epam.com>
References:
 <7cd71ed21383c189fedb3250ddde54a593f7f98b.1754944131.git.dmytro_prokopchuk1@epam.com>
 <59396fd1-ca82-4655-9dcf-ec36e0d51ffc@xen.org>
In-Reply-To: <59396fd1-ca82-4655-9dcf-ec36e0d51ffc@xen.org>
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: GV2PR03MB9572:EE_|AS8PR03MB9560:EE_
x-ms-office365-filtering-correlation-id: 0bac9636-c970-4810-db44-08ddd97924f1
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|42112799006|376014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?M1lFazJ2RTFuV2NtN3JwMjFsd05BYklOQVUyZWdCd2ZDSXQrUDRoYm52Njhh?=
 =?utf-8?B?YmpmU1NtUkdaMTF6S21FbkxLSjZKUC95Zmswb0ZhVi84eEZQWVY5cXJuYnU1?=
 =?utf-8?B?VmVOUncvYnpaSmZybEhSSVBiRWNkQktYYnhZdTFRTkpQSlU5UUF3ZWdRdHZL?=
 =?utf-8?B?Z2VzRCtvWGlwbXJ5eC9LKzFLdmhOM2xwbklFNHVMNlhhK1N4RUZjd0hoY1p5?=
 =?utf-8?B?MmVibEpOM0NHL3UvNWdqbFg0Rzd2c255ZjVlTEN5TnlPVU9TMlVkZGZDSktX?=
 =?utf-8?B?Y0lmQk55dnhka0NwN2QzZ2Nvb2VPODdzQWQzOVFFMWFPSmp4cXdqQkNmTjJk?=
 =?utf-8?B?NEM5THVqK3UveEk2Y3h1ZC9uY0NFQVE3c29WeE82WktqTEZySXZCOXFEbklh?=
 =?utf-8?B?ZDRHem9KbThQRUNOb0prSkQ5ajZoU2hMbitFQTJqLzJ0aFBBVVdndlZTak01?=
 =?utf-8?B?eWFQaEdkOFVNL0lINXFzdVdOK1NpZjRub3NGMWV0QnBVd0E1MTJSQzBWNTFN?=
 =?utf-8?B?OVUvM01HdHRYUEdFVzg0bzk1R0IvdzBNUzFnYVkzNDY5cTZVUzFBYXpsWFoz?=
 =?utf-8?B?NlJWS2hPMUxiYW1jTGFvdnZqa3pwWU1xN0t4bkFDYnNoTExzNXR4N3pBa2NO?=
 =?utf-8?B?Mkx3bmlDR2RqeXFLcENlRUg1aCtiZ0NvV25MYkJwYi9YUXdvR2ZpS2c3bGQ4?=
 =?utf-8?B?NTdMMG1wYTR1VUVxYnR4eFM5L2JvejM5dGR5QlZ6N09ta090YW94cGRtdHJk?=
 =?utf-8?B?NnhDdkNSL3dIQ3RENnNqc0ZQNlVxL3ZqNkJ6V28rbXp1ZmZFQitjQU9ZRElZ?=
 =?utf-8?B?aDNIOE0vUTBWT3E0MTl4Yko0M3NvcXR4a3JWaUVaSW5QZnFuVmdvMm9lS3pu?=
 =?utf-8?B?YUd3c2hiVVJwMDk4b3UvT0orSVNmUCtMZThEeWVmRkxKZ1Z1YXp5RytwT2pI?=
 =?utf-8?B?ekVSUWt4QU1lS0NONEwwSVgwN3dpeVlyaXdXRk5yYUhhcTFKRWRyMDBadlJX?=
 =?utf-8?B?YXhHL2pDVTNPQ2pieVV2a1JVSUh1ZGV2U2RJRmVEWmg3dUFJcEhYUVZSU0NY?=
 =?utf-8?B?SnN2V2xIUEw1UnBQellpNytVOTYxYzNSVEtScjRTdzJzSTh2cFJnbVpMYVo5?=
 =?utf-8?B?Vmtpbys2Nmo3ZnlYa2d0bkdLY2xNMXFCb3VzdXdiOUNxdHZWZHNBMGRZVzFm?=
 =?utf-8?B?S0dXdVJFWlBuT1RLTXZuZWY0M2Z1cU96bS9CSEg3cmh4MXlvYnBpekhXUUNU?=
 =?utf-8?B?VEkwR25KOUk5UHZtMHAzVTIrWDJNZGQ3WXJRYWx6MzMyRUxjNE5jWk1HbjJ2?=
 =?utf-8?B?a3M1VjZ5R0xZdXp2clNncjZEV0Yxdm1DR0JIVlVZbzhicFVCdFY3UGJsVlpH?=
 =?utf-8?B?c2ZIWmpZMEZyZzFEK0lhQkh0L3pRcVFpYllCTXpCL1lMWjZSZ0hHR0ZOcFpl?=
 =?utf-8?B?KzBKbUl3KzFkeGpqQnM3bGFCTElZWjc5TEUxV0pxTUU3Z3JzcXp0T2xEMldz?=
 =?utf-8?B?cFhreXNIam43YmhNUFczV3c1VHV0NGFSZTZGVjlhcGs3UWhFR0kxaDhmbUtx?=
 =?utf-8?B?ZGUrZFZSM01ESFNBTHQzVFVDU0tUZEk1dURWSTJFOWhlbXlXVzBXZVNaVjNP?=
 =?utf-8?B?ZG1BVU43V3FJOFhNMXV3VGd6QUZubEFCR2VibDlwYWYvRXlWM3lqK05ERXM1?=
 =?utf-8?B?ZWQ5OVk2K09EVVl3VVJMZlg1VENoQVNXUnowdUpHMnJsemVDbEN1WWtyN3do?=
 =?utf-8?B?ZmtLWWIrbGh1U2haVVk0MmVoSllJL1pTTDF5YUpSQTNiSzVQNXZlTS90Q3I2?=
 =?utf-8?B?dUFJeWs0bDBWdUF0SndLUXZTb0FvTW95N2hoaVZaMXVlaFZ1VEY1QThybE55?=
 =?utf-8?B?RHE5QzRjWHRScU9xa1M5QlJUVFl6OUFIR0RXcnJpRzBQQ1prbGVyMzM5VUZZ?=
 =?utf-8?B?STBpVnVHOUxtMitXdGhCWURUWnV1YndnVVlMeWNrYlFUVG43dGlpZnpjZVd2?=
 =?utf-8?B?RUFaM2tQUE13PT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(42112799006)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?YXcweWRRZW1kQmJDYm50UFRpSmczV3N5dWVSYlJVQjJsN2E4eVpOQkN0QTB3?=
 =?utf-8?B?elpyQmE4dm05bW56b2FKc1BIVUJOaGNvM24vclhWV1FBK1JidVczeDNEcTNn?=
 =?utf-8?B?eEh4ZjE1VUVLN09VMGtmNGRQMDZoWWwzZWFCV2c3Q3Y5WkJBVWhGNGtBRGJQ?=
 =?utf-8?B?SmM2eXZ6bituTTlvdVVtTkJXRWZNckJoaVgydkFPRkFYTTMxTVRiZnZIRFM0?=
 =?utf-8?B?dVoxOGhhUFAza1N5dTdQK3BzWkNiZGtNR3QyTnZzcklpa1ZzVmVjNnFvWTFC?=
 =?utf-8?B?UXEyeDYvc2Y1UEN5NzEvVWttNTBxVXB3QVBoN0lhb0MxS2JOSUpHc0RqeUFG?=
 =?utf-8?B?L2d0bFhSdWVQZVkwM083QjZwelc3MGd0VlRYOVFHaXNzai9tLzNYc2NFVUpQ?=
 =?utf-8?B?eFJ1T2lwa2RxUWtMM0JrbXV4dlFjYmZYSFAzMmhodndkcHU2aEEwcFlPVmFE?=
 =?utf-8?B?bEE2Sk9jK2JYOGlOMzd0N3U2eHZialZnSngrZUhWK0VZVUExMW9xdC9YZ1hM?=
 =?utf-8?B?U3A5U1RpZjNVeVl0NlcrUGp4UHY3WFY3S1NYb3R6dXhIdXpKMDdQN2UxVTkv?=
 =?utf-8?B?WHJCR081dkYzUGk4L1k5QUhGbkl6SkJZTGFBcUZoUzJERkFvVXJPLzlEREoz?=
 =?utf-8?B?NnByVjMyNEFiU2dJL1JKeG5RNE9vdmdtTUloNEFvd1p4dWFOYzZ3RkRtTVBE?=
 =?utf-8?B?OW1NS1d6bG8vdzFkVVpqTmIvRjJlZzlDc1FYcWZyeEloWFZBWlg2UVMwRGlU?=
 =?utf-8?B?QWpiVHdBODNxMDVjbEFhZm9VYUpqWHdremwxOWhiS2F2akdNbC9MQ3FLakV6?=
 =?utf-8?B?RS8wR1NULzZLTXZxZ1UxcHBsMEJhcjRJL2JMam45Z2lRbU5IbFB3a1plL05s?=
 =?utf-8?B?TUNyR2RLRyttNXVNNldOelFxbWtEM3l5S1RxTlZuZWJ4aHQrMVN4b3lETEo4?=
 =?utf-8?B?eEh6OXZTK0I0Q0Qrb2xxVC9nbFNyckU4ZU9ZTi8vUjU1V2JGczIwbWkreW85?=
 =?utf-8?B?WmZ6OGYveEZOTHVYKzJBenRXQ2VWQkdzNklBRGsxYzRFMXM4VlRwUVVCdEo5?=
 =?utf-8?B?eXlxT2xWRnFTSmE2anB3UzNxTHp3ZUR5eGhqQ0toZWQyRlh4V3lCTms0WnBB?=
 =?utf-8?B?R21kMVZXejI5K1VCQ3NwRFNOY1kwZENMeGJSVkt0bndLOFpkV3lHMkRVUXJZ?=
 =?utf-8?B?WjBVeG5POVBDSWZ6dDcvZExGOUt2akRIRUZ0Y1RSaHNvakw3UXR2QXVpUUZS?=
 =?utf-8?B?aHNCem44eDdadk9oTzhtMzhSRGdHTjBhdjFGYTFBeHhRb0RRR1U1cWRWV2NO?=
 =?utf-8?B?eFptTFlGK1l4OURBZXc3SXk1d0J6V2dxTEluK0pOSFp5dlN5ZWxsR0xNTjVT?=
 =?utf-8?B?UTZhdnlSZGRQYVVmMnJmMnZHOHZPdmNGblh4Z1R2dWtIVW13S2krNHpJVkJ0?=
 =?utf-8?B?UjRUNmVlZXdYVEd4czlxYVQ3aWV1UnJkRW90K0hLYzk3WERJd1lMRjVrWFp5?=
 =?utf-8?B?d2VjSFVmQWFUUGcvTmI0RmVIY1hoSjZpRkJiUFowK1huSXZHSWpJVUJEZFFH?=
 =?utf-8?B?Rnc2QTVQczBRNjBKZ1VCV084RU9ZNTdMSWVuOHBjQ3BibUpvamFBcU40bXFo?=
 =?utf-8?B?SW9RZ3ZBSkY1WTkyNWozTDVEd2J0MElOWXVZWmVQNGpEYXd4NzJnSWNZak1J?=
 =?utf-8?B?MHJndWd3RzFJa05YR2ZMNDFoWFllaXFIZ1VUMzlNbEN1WG1KaVFhNVczaDVu?=
 =?utf-8?B?Z3RwTVhEenJXbk0vNEFzUURTemlkaC91TUFCblJYZzRmUmdoMGNVVEF6SFJW?=
 =?utf-8?B?Q3NVV252eUY1RGRFRTNOdHphNlZBZWR5d3ZiQytSa1ZjVzN2SXZ0WHlFZklF?=
 =?utf-8?B?RXV6VWpwU2lOTm5TVHRiams2YlljWFlSV0xoMTFPbXdVbEF5YzYrcFI0L21u?=
 =?utf-8?B?c3F2VmRLVjlpUHNzTGlXVjZ5UFdrSVdpNTJsOFRmbktrS3BVYk1Gc0RldXFW?=
 =?utf-8?B?K3BkTC9FN1QrWU00d2xMSC82S2pIMWYwYVl3bkZ0NGlOSjE1L0JUTERqdG1t?=
 =?utf-8?B?cGVPV1lBWTlVRElaVi9xS1U4VUZwTTdUU25pY0hPRndEd2xuN3JtcW81a1B5?=
 =?utf-8?B?cUpnb2hEOGFlU09BWENyR1N1MmlLY2JuZEZHM1N6bTlGVnlTQ3ptejhQOFhj?=
 =?utf-8?B?Umc9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <C5DE71142367644EA9EA11B1301AAE07@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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0bac9636-c970-4810-db44-08ddd97924f1
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Aug 2025 08:20:48.9960
 (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: NwgP0L1WbfGTQzVCv7h37efT4A7V8WM3BfyoPhSRBymHYVO/iS6r4tBYrqYPJmTMW2JZ051hbhl99ttROUg5TtrMBbT0QYuHBk/+KyIV+IE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB9560

DQoNCk9uIDgvMTIvMjUgMDA6MjEsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4gSGksDQo+IA0KPiBP
biAxMS8wOC8yMDI1IDIxOjMwLCBEbXl0cm8gUHJva29wY2h1azEgd3JvdGU6DQo+PiBNSVNSQSBS
dWxlIDE2LjQ6IEV2ZXJ5IHN3aXRjaCBzdGF0ZW1lbnQgc2hhbGwgaGF2ZSBhIGRlZmF1bHQgbGFi
ZWwuDQo+PiBUaGUgZGVmYXVsdCBjbGF1c2UgbXVzdCBjb250YWluIGVpdGhlciBhIHN0YXRlbWVu
dCBvciBhIGNvbW1lbnQNCj4+IHByaW9yIHRvIGl0cyB0ZXJtaW5hdGluZyBicmVhayBzdGF0ZW1l
bnQuDQo+Pg0KPj4gSG93ZXZlciwgdGhlcmUgaXMgYSBkb2N1bWVudGVkIHJ1bGUgdGhhdCBhcHBs
eSB0byB0aGUgWGVuIGluDQo+PiAnZG9jcy9taXNyYS9ydWxlcy5yc3QnOg0KPj4gU3dpdGNoIHN0
YXRlbWVudHMgd2l0aCBpbnRlZ2VyIHR5cGVzIGFzIGNvbnRyb2xsaW5nIGV4cHJlc3Npb24NCj4+
IHNob3VsZCBoYXZlIGEgZGVmYXVsdCBsYWJlbDoNCj4+IMKgIC0gaWYgdGhlIHN3aXRjaCBpcyBl
eHBlY3RlZCB0byBoYW5kbGUgYWxsIHBvc3NpYmxlIGNhc2VzDQo+PiDCoMKgIGV4cGxpY2l0bHks
IHRoZW4gYSBkZWZhdWx0IGxhYmVsIHNoYWxsIGJlIGFkZGVkIHRvIGhhbmRsZQ0KPj4gwqDCoCB1
bmV4cGVjdGVkIGVycm9yIGNvbmRpdGlvbnMsIHVzaW5nIEJVRygpLCBBU1NFUlQoKSwgV0FSTigp
LA0KPj4gwqDCoCBkb21haW5fY3Jhc2goKSwgb3Igb3RoZXIgYXBwcm9wcmlhdGUgbWV0aG9kczsN
Cj4gID4gPiBUaGVzZSBjaGFuZ2VzIGFkZCBgQVNTRVJUX1VOUkVBQ0hBQkxFKClgIG1hY3JvIHRv
IHRoZSBkZWZhdWx0IA0KPiBjbGF1c2Ugb2YNCj4+IHN3aXRjaCBzdGF0ZW1lbnRzIHRoYXQgYWxy
ZWFkeSBleHBsaWNpdGx5IGhhbmRsZSBhbGwgcG9zc2libGUgY2FzZXMuIFRoaXMNCj4+IGVuc3Vy
ZXMgY29tcGxpYW5jZSB3aXRoIE1JU1JBLCBhdm9pZHMgdW5kZWZpbmVkIGJlaGF2aW9yIGluIHVu
cmVhY2hhYmxlDQo+PiBwYXRocywgYW5kIGhlbHBzIGRldGVjdCBlcnJvcnMgZHVyaW5nIGRldmVs
b3BtZW50Lg0KPj4NCj4+IFNpZ25lZC1vZmYtYnk6IERteXRybyBQcm9rb3BjaHVrIDxkbXl0cm9f
cHJva29wY2h1azFAZXBhbS5jb20+DQo+PiAtLS0NCj4+IMKgIHhlbi9hcmNoL2FybS9kZWNvZGUu
Y8KgwqDCoMKgwqAgfMKgIDMgKysrDQo+PiDCoCB4ZW4vYXJjaC9hcm0vZ3Vlc3Rfd2Fsay5jwqAg
fMKgIDQgKysrKw0KPj4gwqAgeGVuL2NvbW1vbi9ncmFudF90YWJsZS5jwqDCoCB8IDEwICsrKysr
KysrLS0NCj4+IMKgIHhlbi9kcml2ZXJzL2NoYXIvY29uc29sZS5jIHzCoCAzICsrKw0KPj4gwqAg
NCBmaWxlcyBjaGFuZ2VkLCAxOCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQ0KPj4NCj4+
IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZGVjb2RlLmMgYi94ZW4vYXJjaC9hcm0vZGVjb2Rl
LmMNCj4+IGluZGV4IDI1MzdkYmViYzEuLmNiNjQxMzdiM2IgMTAwNjQ0DQo+PiAtLS0gYS94ZW4v
YXJjaC9hcm0vZGVjb2RlLmMNCj4+ICsrKyBiL3hlbi9hcmNoL2FybS9kZWNvZGUuYw0KPj4gQEAg
LTE3OCw2ICsxNzgsOSBAQCBzdGF0aWMgaW50IGRlY29kZV90aHVtYihyZWdpc3Rlcl90IHBjLCBz
dHJ1Y3QgDQo+PiBoc3JfZGFidCAqZGFidCkNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBjYXNlIDM6
IC8qIFNpZ25lZCBieXRlICovDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1cGRhdGVf
ZGFidChkYWJ0LCByZWcsIDAsIHRydWUpOw0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg
YnJlYWs7DQo+PiArwqDCoMKgwqDCoMKgwqAgZGVmYXVsdDoNCj4+ICvCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgIEFTU0VSVF9VTlJFQUNIQUJMRSgpOw0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAg
YnJlYWs7DQo+IA0KPiBJIGFtIG5vdCBzdXJlIGFib3V0IHRoaXMgb25lLiBDYW4ndCB0aGUgY29t
cGlsZXIgb3IgZXZlbiBFQ0xBSVIgZGV0ZWN0IA0KPiB0aGF0IHRoZSB2YWx1ZSB3ZSBtYXRjaCAi
b3BCICYgMyIgYW5kIHRoZSA0IGRpZmZlcmVudCB2YWx1ZXMgYXJlIGhhbmRsZWQ/DQo+IA0KPiAg
PsKgwqDCoMKgwqDCoMKgwqDCoMKgIH0+DQoNClRoZSBFY2xhaXIgY2FuIGhhbmRsZSBzdWNoIGNh
c2Ugd2l0aCBlbnVtIHR5cGUuDQpJJ20gbm90IHN1cmUgdGhhdCB3ZSB3YW50IHRvIGFwcGx5IHN1
Y2ggY2hhbmdlcy4NCg0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGJyZWFrOw0KPj4gZGlmZiAtLWdp
dCBhL3hlbi9hcmNoL2FybS9ndWVzdF93YWxrLmMgYi94ZW4vYXJjaC9hcm0vZ3Vlc3Rfd2Fsay5j
DQo+PiBpbmRleCAwOWZlNDg2NTk4Li45MTk5YTI5NjAyIDEwMDY0NA0KPj4gLS0tIGEveGVuL2Fy
Y2gvYXJtL2d1ZXN0X3dhbGsuYw0KPj4gKysrIGIveGVuL2FyY2gvYXJtL2d1ZXN0X3dhbGsuYw0K
Pj4gQEAgLTE2Nyw2ICsxNjcsMTAgQEAgc3RhdGljIGJvb2wgZ3Vlc3Rfd2Fsa19zZChjb25zdCBz
dHJ1Y3QgdmNwdSAqdiwNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICpwZXJtcyB8PSBH
VjJNX0VYRUM7DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgYnJlYWs7DQo+PiArDQo+PiArwqDCoMKg
wqDCoMKgwqAgZGVmYXVsdDoNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEFTU0VSVF9VTlJF
QUNIQUJMRSgpOw0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYnJlYWs7DQo+PiDCoMKgwqDC
oMKgIH0NCj4+IMKgwqDCoMKgwqAgcmV0dXJuIHRydWU7DQo+PiBkaWZmIC0tZ2l0IGEveGVuL2Nv
bW1vbi9ncmFudF90YWJsZS5jIGIveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jDQo+PiBpbmRleCBj
ZjEzMWM0M2ExLi42MGZjNDdmMGM4IDEwMDY0NA0KPj4gLS0tIGEveGVuL2NvbW1vbi9ncmFudF90
YWJsZS5jDQo+PiArKysgYi94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMNCj4+IEBAIC0zMzAsOSAr
MzMwLDEyIEBAIHNoYXJlZF9lbnRyeV9oZWFkZXIoc3RydWN0IGdyYW50X3RhYmxlICp0LCANCj4+
IGdyYW50X3JlZl90IHJlZikNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAvKiBSZXR1cm5lZCB2YWx1
ZXMgc2hvdWxkIGJlIGluZGVwZW5kZW50IG9mIHNwZWN1bGF0aXZlIA0KPj4gZXhlY3V0aW9uICov
DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgYmxvY2tfc3BlY3VsYXRpb24oKTsNCj4+IMKgwqDCoMKg
wqDCoMKgwqDCoCByZXR1cm4gJnNoYXJlZF9lbnRyeV92Mih0LCByZWYpLmhkcjsNCj4+ICsNCj4+
ICvCoMKgwqAgZGVmYXVsdDoNCj4+ICvCoMKgwqDCoMKgwqDCoCBBU1NFUlRfVU5SRUFDSEFCTEUo
KTsNCj4+ICvCoMKgwqDCoMKgwqDCoCBicmVhazsNCj4+IMKgwqDCoMKgwqAgfQ0KPj4gLcKgwqDC
oCBBU1NFUlRfVU5SRUFDSEFCTEUoKTsNCj4gID7CoMKgwqDCoMKgwqAgYmxvY2tfc3BlY3VsYXRp
b24oKTs+DQo+PiDCoMKgwqDCoMKgIHJldHVybiBOVUxMOw0KPiANCj4gSSBrbm93IHlvdSBhcmUg
dHJ5aW5nIHRvIGFwcGx5IHRoZSBNSVNSQSBydWxlLiBCdXQgdGhpcyBpcyBvZGQgdGhhdCB5b3Ug
DQo+IG1vdmUgdGhlIEFTU0VSVF9VTlJFQUNIQUJMRSgpIGJ1dCB0aGVuIGNvZGUgYWZ0ZXIgaXMg
c3RpbGwgb25seSANCj4gcmVhY2hhYmxlIGZyb20gdGhlIGRlZmF1bHQuIEluIGZhY3QsIHRoaXMg
aXMgaW50cm9kdWNpbmcgYSByaXNrIGlmIA0KPiBzb21lb25lIGRlY2lkZXMgdG8gYWRkIGEgbmV3
IGNhc2UgYnV0IHRoZW4gZm9yZ290IHRvIHJldHVybiBhIHZhbHVlLg0KPiANCj4gQnkgbW92aW5n
IHRoZSB0d28gb3RoZXIgbGluZXMsIHRoZSBjb21waWxlciBzaG91bGQgYmUgYWJsZSB0byB0aHJv
dyBhbiANCj4gZXJyb3IgaWYgeW91IGZvcmdvdCBhIHJldHVybi4NCj4gDQo+IA0KPj4gQEAgLTcy
NywxMCArNzMwLDEzIEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgbnJfZ3JhbnRfZW50cmllcyhzdHJ1
Y3QgDQo+PiBncmFudF90YWJsZSAqZ3QpDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgLyogTWFrZSBz
dXJlIHdlIHJldHVybiBhIHZhbHVlIGluZGVwZW5kZW50bHkgb2Ygc3BlY3VsYXRpdmUgDQo+PiBl
eGVjdXRpb24gKi8NCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBibG9ja19zcGVjdWxhdGlvbigpOw0K
Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiBmMmUobnJfZ3JhbnRfZnJhbWVzKGd0KSwgMik7
DQo+PiArDQo+PiArwqDCoMKgIGRlZmF1bHQ6DQo+PiArwqDCoMKgwqDCoMKgwqAgQVNTRVJUX1VO
UkVBQ0hBQkxFKCk7DQo+PiArwqDCoMKgwqDCoMKgwqAgYnJlYWs7DQo+PiDCoCAjdW5kZWYgZjJl
DQo+PiDCoMKgwqDCoMKgIH0NCj4+IC3CoMKgwqAgQVNTRVJUX1VOUkVBQ0hBQkxFKCk7DQo+PiDC
oMKgwqDCoMKgIGJsb2NrX3NwZWN1bGF0aW9uKCk7DQo+PiDCoMKgwqDCoMKgIHJldHVybiAwOw0K
PiANCj4gU2FtZSByZW1hcmsgaGVyZS4NCg0KWWVzLCAnZGVmYXVsdCcgY2FzZSB3aXRoIGFwcHJv
cHJpYXRlIGNvbW1lbnQgd2lsbCBiZSBiZXR0ZXIsIEkgdGhpbmsuDQpBbnl3YXksIHdyb25nICdn
dF92ZXJzaW9uJyB3aWxsIGJlIGhhbmRsZWQgYmVsb3cgYnkgdGhlIA0KQVNTRVJUX1VOUkVBQ0hB
QkxFKCkuDQoNCj4gDQo+PiBkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvY2hhci9jb25zb2xlLmMg
Yi94ZW4vZHJpdmVycy9jaGFyL2NvbnNvbGUuYw0KPj4gaW5kZXggOWJkNWI0ODI1ZC4uNjA4NjE2
ZjJhZiAxMDA2NDQNCj4+IC0tLSBhL3hlbi9kcml2ZXJzL2NoYXIvY29uc29sZS5jDQo+PiArKysg
Yi94ZW4vZHJpdmVycy9jaGFyL2NvbnNvbGUuYw0KPj4gQEAgLTg4OSw2ICs4ODksOSBAQCBzdGF0
aWMgaW50IGNmX2NoZWNrIHBhcnNlX2NvbnNvbGVfdGltZXN0YW1wcyhjb25zdCANCj4+IGNoYXIg
KnMpDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgb3B0X2Nvbl90aW1lc3RhbXBfbW9kZSA9IFRTTV9E
QVRFOw0KPj4gICAgICAgICAgIA0KPj4gY29uX3RpbWVzdGFtcF9tb2RlX3VwZChwYXJhbV8yX3Bh
cmZzKHBhcnNlX2NvbnNvbGVfdGltZXN0YW1wcykpOw0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHJl
dHVybiAwOw0KPj4gK8KgwqDCoCBkZWZhdWx0Og0KPj4gK8KgwqDCoMKgwqDCoMKgIEFTU0VSVF9V
TlJFQUNIQUJMRSgpOw0KPiANCj4gTG9va2luZyBhdCB0aGUgaW1wbGVtZW50YXRpb24gb2YgcGFy
c2VfYm9vbCgpIGl0IGNhbiByZXR1cm4gLTEgaWYgdGhlIA0KPiBpbnB1dCBwcm92aWRlZCBpcyBp
bmNvcnJlY3QuIFNvIEkgZG9uJ3QgdGhpbmsgdGhpcyBwYXRoIHNob3VsZCBjb250YWluIA0KPiBB
U1NFUlRfVU5SRUFDSEFCTEUoKS4gSW4gZmFjdCwgaXQgc2hvdWxkIGZvbGxvdyB0aGlzIGRpcmVj
dGl2ZToNCj4gDQo+ICINCj4gIMKgwqDCoMKgwqDCoCAtIGlmIHRoZSBzd2l0Y2ggaXMgZXhwZWN0
ZWQgdG8gaGFuZGxlIGEgc3Vic2V0IG9mIGFsbCBwb3NzaWJsZQ0KPiAgwqDCoMKgwqDCoMKgwqDC
oCBjYXNlcywgdGhlbiBhbiBlbXB0eSBkZWZhdWx0IGxhYmVsIHNoYWxsIGJlIGFkZGVkIHdpdGgg
YW4NCj4gIMKgwqDCoMKgwqDCoMKgwqAgaW4tY29kZSBjb21tZW50IG9uIHRvcCBvZiB0aGUgZGVm
YXVsdCBsYWJlbCB3aXRoIGEgcmVhc29uIGFuZA0KPiAgwqDCoMKgwqDCoMKgwqDCoCB3aGVuIHBv
c3NpYmxlIGEgbW9yZSBkZXRhaWxlZCBleHBsYW5hdGlvbi4gRXhhbXBsZTo6DQo+IA0KPiAgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRlZmF1bHQ6DQo+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoCAvKiBOb3RpZmllciBwYXR0ZXJuICovDQo+ICDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoCBicmVhazsNCj4gIg0KDQpZb3UgYXJlIHJpZ2h0LCBwYXJzZV9ib29sKCkg
Y2FuIHJldHVybiAtMS4NCkFwcHJvYWNoOiAnZGVmYXVsdCcgY2FzZSB3aXRoIGFwcHJvcHJpYXRl
IGNvbW1lbnQuDQoNCj4gDQo+IENoZWVycywNCj4gDQoNClRoYW5rcyENCkRteXRyby4=


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 08:27:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 08:27:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078444.1439440 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulkLe-0007BE-S2; Tue, 12 Aug 2025 08:27:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078444.1439440; Tue, 12 Aug 2025 08: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 1ulkLe-0007B7-Oa; Tue, 12 Aug 2025 08:27:10 +0000
Received: by outflank-mailman (input) for mailman id 1078444;
 Tue, 12 Aug 2025 08:27:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Pr65=2Y=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ulkLd-0007B1-F1
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 08:27:09 +0000
Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com
 [2a00:1450:4864:20::52e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 228de14e-7756-11f0-a327-13f23c93f187;
 Tue, 12 Aug 2025 10:27:08 +0200 (CEST)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-6180ce2197cso5538575a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 12 Aug 2025 01:27: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
 4fb4d7f45d1cf-618465fb431sm1708492a12.33.2025.08.12.01.27.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Aug 2025 01:27: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>
X-Inumbo-ID: 228de14e-7756-11f0-a327-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754987227; x=1755592027; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Qz6ppPLgaBrJv0BjXlT/BwhWZfY0abwTkQmwUIAYXO4=;
        b=aCdP7WmsPxcP9DlIT1ICz6+RKzeDST6uyg/3yqMtf+en/y2xm5KPylgODjJZPOfPMN
         H38nmo4pSRXvHXvTC7/5rBBPwoBs85MltifUmKZuKxZPKCCnQ6XtPCJMfg7wZiqi8XF4
         z7BvQrITJ25Svri1kvr6zmLOgbgBz6gdlEIvGGRW8oOWmMnRbMSENLX3zd/f1imlvdXn
         wK35maAuA6Am8WpMoEki7lH/a20xsNhnRFRGxaWBegcCvACOJwBAwWh/YbktZvmLZCHJ
         /RvV/hqSxJEVjWNCam8CuKvpx4NFayziPuiEY+sCtlvtkn098XFl9W0Q3ePPJz8DyM1j
         lZiQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754987227; x=1755592027;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Qz6ppPLgaBrJv0BjXlT/BwhWZfY0abwTkQmwUIAYXO4=;
        b=AbZnsT1g8LA6B8SeoRKfYs0D8FDgwmH2qfHgQx314zYXW01pkNTD04Ub1f8kyjGO3x
         6Cb7+tHcX1tCYesUOBvdMzu2eHM0rSllWDkJ44OdsCr/QXBaW5BXOIgdPqrmyX8BfZNC
         We230wvSC4taAkdm/enwMgyR9UPlH3A2KyN+hcdsXR5zZholJN/JDjh6GN2ssZ1KoNiI
         c0aiLCcNJf9GjJPboLRMu/VppZG+JzVoD4vv9x2atg/0g8RJDC21ONh9g2Gx/ONJ3lkV
         tpF+x1kivmAYI1tnB5gtbBfy5imuLBn0yEGrSbuiwWe1MQGWaWgwMHyqdp+vXm/BxJs2
         fgsA==
X-Forwarded-Encrypted: i=1; AJvYcCVmdI1AT4r7FZHC3KbNIWOJhbZ0sMElZPLIT9qDCGHStqxfVMGDdda4ZkBaGG5CW9Hrx6qJUJhEY5c=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxZho9HAiTzRxp9HfdrdU0keCry11GRPBTIMy+V6SWzaTG5UoP7
	XA+dMqrTeKANm29G2BvEt/DvzzXWpUASkongo5I/IBHBfF+CCiQcc2e3OCPCcaKVWQ==
X-Gm-Gg: ASbGncuwMdFLnGthLF0wX5W6ZQcWIMjI19SSEgwEr1DP1oO++z2yfWL45bcuF14LiNc
	F5Tm7gXAFlfxKbm8LOq3TKKhmHWGjb4PqYQjznrU6+db/wvGk5O3Oqtw743wMiKRRL+G+tWiX2o
	k9qKXMtYoDWwHzEPomcPJazwn3X9JiJDUaNwbxdxwLcQYaFv57U9zzTA24nGo2J3RPMR1OcpLg2
	j9FN7IgM2Exk0c/ZZlK0Teh6R6XMEW+rAvaU+ByNK9faeMjnu/o3mm7PwyKXX/8CLMeR9p0Bo0f
	k017uXFUmx2/OoVISookQ/zPta7jDN/A8aBW81WOeCsXvWCbMmE0DUwKOFSUOX0YgsXQcajAfXK
	jyAwaaXMvloA5MfPokvLsaUKLPMPwRAqxrupsvTI2ULbFSlk3RN6U0XShS+yKuGT+rhopEbM9M8
	uYdr9wTHg=
X-Google-Smtp-Source: AGHT+IHu+lqXqwKQu3owDql+kfucDs0OEsvC/CtOji1iwEGJxk9gILv0HhonOMUyAP1zJhfvWWe+EA==
X-Received: by 2002:a05:6402:84d:b0:617:b3ee:9be6 with SMTP id 4fb4d7f45d1cf-6184e3b3202mr2030235a12.0.1754987227333;
        Tue, 12 Aug 2025 01:27:07 -0700 (PDT)
Message-ID: <fa34bc4a-64d9-499c-bc07-787d2cdb36ea@suse.com>
Date: Tue, 12 Aug 2025 10:27:06 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 07/22] x86/spec-ctrl: Rework init_shadow_spec_ctrl_state()
 to take an info pointer
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-8-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: <20250808202314.1045968-8-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.08.2025 22:22, Andrew Cooper wrote:
> We're going to want to reuse it for a remote stack shortly.

Are we? From the titles of subsequent patches I can't judge where that would
be, so it's hard to peek ahead. And iirc earlier on it was a concious decision
to only ever run this locally.

> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Nevertheless, trusting that you have a good reason:
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 08:41:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 08:41:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078452.1439449 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulkZH-000260-0S; Tue, 12 Aug 2025 08:41:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078452.1439449; Tue, 12 Aug 2025 08:41: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 1ulkZG-00025t-Tt; Tue, 12 Aug 2025 08:41:14 +0000
Received: by outflank-mailman (input) for mailman id 1078452;
 Tue, 12 Aug 2025 08:41:13 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Pr65=2Y=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ulkZF-000245-LQ
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 08:41:13 +0000
Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com
 [2a00:1450:4864:20::52e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 19c37585-7758-11f0-a327-13f23c93f187;
 Tue, 12 Aug 2025 10:41:12 +0200 (CEST)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-6182b3218aeso3401087a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 12 Aug 2025 01:41: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
 4fb4d7f45d1cf-615a8feaf2fsm19629216a12.38.2025.08.12.01.41.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Aug 2025 01:41: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>
X-Inumbo-ID: 19c37585-7758-11f0-a327-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754988072; x=1755592872; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=6bHBrTtcsFNvDGEPfkFSlriiOrbe/T9oNttNa050lxM=;
        b=ULBh2blc8HhxyriSI+jUwNs47bJ5pOJRstU9mNODrZlYBLLDyOj6k8NbBN/p5WAQFh
         qUhocrtrXS20LECV1oNTxmnacdlaTGRDF2plrWdR3E+uRHb+tzOsjvNyWRQshU1TlhTx
         QDQdfZllXvAk7H908yzVc2wJxS5K3i72vWxZPu1MGEenNGlYrjXeBcD5fVQaDt5NV1RP
         EGHjVKn+L+pqnMsNQ3s9j6YZJggs4i/HH9osoP+4pKPvYikbUNAyN+Ps0uT6Zbx3pGja
         1uQq/3PZj/hk9onG229gDJgRsJw4Sx7waxdQAU21G0OQgctJ5JgSv90SQgWHpM0vKBZ3
         3FTg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754988072; x=1755592872;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6bHBrTtcsFNvDGEPfkFSlriiOrbe/T9oNttNa050lxM=;
        b=XNnsIoPrMOaujUJTFSKG8KajWk1c+McbqgTaNEKusRT0uS0wtqR4fKT+I4bibpNLPP
         ypBFCpzpojUevxlG8EaLfGEbpe0pPZW0dXk/EZKQ1oKwzDLWwMJdpp0iHVAoDIIqiIXn
         GQZClWAqlOHsD3TeNrRm2V4FX1rRoVl1569JyeWVnIpBmUqGU++R+517D/gi4bMMtIP5
         Cz2beymuVLv8saHHDejDF6iADQG+0KKpwnZTLxqcTN46/6nLhiHJr4ATpc+bHdKnQsNf
         QNiky2HDgtjorBYRclzih1itZlYE/NEQrwjwYx4Vz/o2GEBs/n0txbxkC/xzzExkvahs
         xOCQ==
X-Forwarded-Encrypted: i=1; AJvYcCWUo9NhZqNgwIKV8083en0lSbS/A5M6WHmjtvVrES5oWhy9+kgiyWk/SdDT0szIN9v3sT7ojVr08ZY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxyvrwasDSjESKzeJO0K2WUxPo2djD3v4Iwn47JgI9xW6dMuqta
	pJm1p/ucrDqXM1R28I5fgH5SqHDAq1KHla4ADArNWf3RExGOMAwlZD+MhqkLtieOQMZsKApkUEj
	z/2w=
X-Gm-Gg: ASbGncuJ77y8Hy97QFfPUwKCW48ItZm/giehyUJ96q0kxjyY3QHGZT0BrqPRsERsPow
	jhDaX35SvBL9IybrGNIH+elF5Lpy4R1ERT3T8js8og10AT5oUY2+kUu/TXH2QrglmtMSOLIzpkp
	ghDIVYTfT5eQT/LANIAyPRIMTKQuCUpezQWWUPAPCJTNFsv0alwuKPnwwB9yUtr3kJGZqH9E1Zf
	YB9wS+fIQxcfWD7P73VY2mGTTrYVNEtZWf9LkZjNcsradErrDRBcbuXormv8ObxIRA9HTA0rfEx
	j4t4DgupN41iKJTQupwFNA4PF7VJm7/f36r2DGdKVeO386e4QCo35VUVQmVNvPAbW7Y6A2rIFm8
	sDGSY9PSlt+BuDBlBaVJO93IIxd1UMXo1LPOnEk1XXXZuPxn8SSpoldwyH59Y6W7pxhSFE1hasI
	ZiPNIZXPB0B0W8Byg0fm7u7aiwqhW8
X-Google-Smtp-Source: AGHT+IE+XH4cjk87nisW+DOKv62FY5GY7l5ZhtVOCCYVQTe83olwKiHRIq5gvm3Omg5T1Zl/BXzukw==
X-Received: by 2002:a05:6402:1510:b0:618:18e3:bd73 with SMTP id 4fb4d7f45d1cf-6184eb46d44mr1700559a12.15.1754988071689;
        Tue, 12 Aug 2025 01:41:11 -0700 (PDT)
Message-ID: <d6573487-14ed-4e1f-9525-b702048bb87e@suse.com>
Date: Tue, 12 Aug 2025 10:41:10 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 08/22] x86/traps: Introduce ap_early_traps_init() and set
 up exception handling earlier
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-9-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: <20250808202314.1045968-9-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.08.2025 22:23, Andrew Cooper wrote:
> --- a/xen/arch/x86/acpi/wakeup_prot.S
> +++ b/xen/arch/x86/acpi/wakeup_prot.S
> @@ -63,6 +63,9 @@ LABEL(s3_resume)
>          pushq   %rax
>          lretq
>  1:
> +        /* Set up early exceptions and CET before entering C properly. */
> +        call    ap_early_traps_init

But this is the BSP?

> --- a/xen/arch/x86/smpboot.c
> +++ b/xen/arch/x86/smpboot.c
> @@ -327,12 +327,7 @@ void asmlinkage start_secondary(void)
>      struct cpu_info *info = get_cpu_info();
>      unsigned int cpu = smp_processor_id();
>  
> -    /* Critical region without IDT or TSS.  Any fault is deadly! */
> -
> -    set_current(idle_vcpu[cpu]);
> -    this_cpu(curr_vcpu) = idle_vcpu[cpu];
>      rdmsrl(MSR_EFER, this_cpu(efer));
> -    init_shadow_spec_ctrl_state(info);
>  
>      /*
>       * Just as during early bootstrap, it is convenient here to disable
> @@ -352,14 +347,6 @@ void asmlinkage start_secondary(void)
>       */
>      spin_debug_disable();
>  
> -    get_cpu_info()->use_pv_cr3 = false;
> -    get_cpu_info()->xen_cr3 = 0;
> -    get_cpu_info()->pv_cr3 = 0;
> -
> -    load_system_tables();
> -
> -    /* Full exception support from here on in. */
> -
>      if ( cpu_has_pks )
>          wrpkrs_and_cache(0); /* Must be before setting CR4.PKS */
>  
> @@ -1064,8 +1051,12 @@ static int cpu_smpboot_alloc(unsigned int cpu)
>              goto out;
>  
>      info = get_cpu_info_from_stack((unsigned long)stack_base[cpu]);
> +    memset(info, 0, sizeof(*info));

Why do we suddenly need this? Or is this just out of an abundance of
caution (while making the individual ->*_cr3 writes unnecessary)?

> +    init_shadow_spec_ctrl_state(info);

May I suggest to move this further down a little, at least ...

>      info->processor_id = cpu;

... past here? Just in case other values in the struct may be needed
in the function at some point.

>      info->per_cpu_offset = __per_cpu_offset[cpu];
> +    info->current_vcpu = idle_vcpu[cpu];

To be able to spot this, I think it wants /* set_current() */ or some
such.

> +    per_cpu(curr_vcpu, cpu) = idle_vcpu[cpu];

It's a little odd to do this early (and remotely), but it looks all fine
with how the variable is currently used.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 09:19:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 09:19:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078461.1439460 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ull9y-0006Xx-Mj; Tue, 12 Aug 2025 09:19:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078461.1439460; Tue, 12 Aug 2025 09:19: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 1ull9y-0006Xq-Jc; Tue, 12 Aug 2025 09:19:10 +0000
Received: by outflank-mailman (input) for mailman id 1078461;
 Tue, 12 Aug 2025 09:19:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Pr65=2Y=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ull9y-0006Xk-5N
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 09:19:10 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 65672cde-775d-11f0-b898-0df219b8e170;
 Tue, 12 Aug 2025 11:19:06 +0200 (CEST)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-af95ecfbd5bso871854966b.1
 for <xen-devel@lists.xenproject.org>; Tue, 12 Aug 2025 02:19: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
 a640c23a62f3a-af91a0a38aasm2180531366b.37.2025.08.12.02.19.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Aug 2025 02:19: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>
X-Inumbo-ID: 65672cde-775d-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754990346; x=1755595146; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ELSosv2fgPF5DzXcT6mtGF4H2FUacSbTCT5sN0nH+v4=;
        b=O8ej28ZOFLRiw0dvUrtbtgydBkvM4fDSYrb1xBeOdIQhexUK5E/zWdU7g9d7wLGKf9
         ruSU7Ht6xxeFrGcDYAniOcLQAOP+wfYbF8vxNQsO6jhWE3JNXyc4UgAuKwrkM+o3b9pX
         SNI2kgx4KOWEd+rJovwuajuYZIUUUeDTebVb4JIZAKUpRCrvX1q+x8vJfFwgcCbM0Uwt
         UolVdEBnW/I1Usb3TblMGLSfFLmZUfLQhgAMfnE2YqNrh/Gf4cht77wqWVD8Cq5xaThN
         VZBssKIK9UpQrgOCRTGLQsnEHIjCRaB8fFdzgellflJHWK6GNDZzpLMA+muejFlG/gRY
         sTmw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754990346; x=1755595146;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ELSosv2fgPF5DzXcT6mtGF4H2FUacSbTCT5sN0nH+v4=;
        b=i/8MT0Ul5eNOzyGAjv5jsls1Ly0WFXqDY3Hx2Ev3Do1O/4WSM/jmqRsDOny3bDZL1R
         538CHDNyIff4IX6JqtnA5DBNJKhrxc2K+gEF1So4u7FzZsqXq/sWmQuohU5kYob7uKNm
         bFu2HMWfuz66QgBKc0Hbwz3tWyfSuBVs6FrEvzM+TlViitdvCNfmmUJJnlR/KhqQ4rU5
         TWoxQ1W3fqrepadMPZiPN+GDG9Qytwa0KOJbCrPOh+6OVhjfMhlT2dI1ofxuetk4vShs
         WgrSeZEokmf6RfDDfxDk6qg8HAt3XdRMMyfTT1WxNlDVQC48082TTtGZZUQbtEyV634u
         sLgw==
X-Forwarded-Encrypted: i=1; AJvYcCW6WwrbfsGW80g2dhBdom1oTNgK8C8DFydFnWZWwA90RJrcQh2JAC7qsTpVboORNq1t4dj7rXa7rAM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywbtw0rF2tkMA5WHEyM35kJCVoI/8JbfYF8DCBqSqGMD0Do8F04
	gBEtqVVTSp94Udg0gGTi77caOukdxhFfcQocluEynPjtuSoYBEHWWzLSps2hTP+z4Q==
X-Gm-Gg: ASbGncvElR7SNlFiRRE3QM3icbmp+k0EPVxkSR/bSiP7rcpqZ6xdnwVWR1pqCbIu9Na
	ycWQB5irbn+xVnrju1joDYPZjBrb02aLmv9+47XWACc0PxLEn/fZ8v13GXiAnZCB7OhippH4Fmn
	m3tBXt6v1aSvHowtNRZcpUszzqNkASUA6eBR+3AZDRhzY1EZqLdIXhBbDL3LF3FTTHmvB/RDst0
	Nb1DZHMW+B1DqKuQAPYCiphttpSohlwBB6jTEpgQe+nD5SZn6/4rsNQWy6bNzOZ52q2apmPou39
	JHsRW/RuZFfIGhcAUoR+uvO03UZToVT4n7hmy3p79VfjKuzgz6TsV2eZBhcH64ISnzYwwDn0KBo
	lKXBcg+AhaWdQN1sByTtw8vMFhrFi4FWQYLVimBYqAMUu1+miNqhAJIY/OHkLNsaf8FpRaESn60
	HosAQjyCykz4+gTdbigA==
X-Google-Smtp-Source: AGHT+IG9yCkPznWCKDzoGdKKWYSUYVfUgpd9xM9inioCaBL6iCR0bL1dVQW61/4ys+K1NqpdA6FQNQ==
X-Received: by 2002:a17:906:f5a5:b0:ae3:f903:e41 with SMTP id a640c23a62f3a-afa1e152edamr244877366b.54.1754990346082;
        Tue, 12 Aug 2025 02:19:06 -0700 (PDT)
Message-ID: <a4a88d7a-8c1f-4170-a1fe-afafcad0c8ea@suse.com>
Date: Tue, 12 Aug 2025 11:19:04 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 09/22] x86/traps: Move load_system_tables() into
 traps-setup.c
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-10-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: <20250808202314.1045968-10-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.08.2025 22:23, Andrew Cooper wrote:
> Switch it to Xen coding style and fix MISRA violations.

That were all ul -> UL suffix transformations, afaics?

>  Make it static as
> there are no external caller now.
> 
> Since commit a35816b5cae8 ("x86/traps: Introduce early_traps_init() and
> simplify setup"), load_system_tables() is called later on the BSP, so the
> SYS_STATE_early_boot check can be dropped from the safety BUG_ON().
> 
> Move the BUILD_BUG_ON() into build_assertions(),

I'm not quite convinced of this move - having the related BUILD_BUG_ON()
and BUG_ON() next to each other would seem better to me. (Same would
apply to the TSS size related BUILD_BUG_ON(), if in the earlier patch
we ended up agreeing that only the comment wants dropping there.)

> @@ -139,3 +258,16 @@ void asmlinkage ap_early_traps_init(void)
>  {
>      load_system_tables();
>  }
> +
> +static void __init __maybe_unused build_assertions(void)
> +{
> +    /*
> +     * This is best-effort (it doesn't cover some padding corner cases), but
> +     * is preforable to hitting the check at boot time.

Nit: "preferable"

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 09:43:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 09:43:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078472.1439471 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ullXg-0001yh-JD; Tue, 12 Aug 2025 09:43:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078472.1439471; Tue, 12 Aug 2025 09:43: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 1ullXg-0001ya-Ew; Tue, 12 Aug 2025 09:43:40 +0000
Received: by outflank-mailman (input) for mailman id 1078472;
 Tue, 12 Aug 2025 09:43:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=WPHn=2Y=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1ullXf-0001yU-21
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 09:43:39 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d1d483c9-7760-11f0-a327-13f23c93f187;
 Tue, 12 Aug 2025 11:43:37 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id D9F344EE0744;
 Tue, 12 Aug 2025 11:43:35 +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>
X-Inumbo-ID: d1d483c9-7760-11f0-a327-13f23c93f187
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=1754991815;
	b=g3veDz5Xx02AH6Mnpa5P56ruZyoCD86VG7k7fq0XmNk06Jf18xi5ivuNHbwL0nBG5WAv
	 e/UaAfn3BQOF4TUNLy7qoZ361r9JD9GHT+JLZCNHXYvbHpVoamihj0yI7khezVs/vrCGn
	 xTjvXxhlw1BQ86ltWBfW70dNX8kaJeY0bYAdJNEjk1DQ0mVShhgxOY+gSD5j9/R8tkDsU
	 O3NDpYTtWAckaNzr5p+X/dAKnIhxC7Gg2MSNU6smELzdW5zpDf3oeb+JorbOiUfYYaPFJ
	 k1a1mbRprW+Dc/haPP6A1giwCQxKyGHTA0Y1bFRAwsfrC4jZjmvEKUhDw9SUcWbF3knFe
	 k7gNOlbtR9b7d0f+oUqe5GI6ffKBkPprCd8l/7ap8jm3FQztkXH0youfYENkSrA0SEwbx
	 rRKAHj228SPDOIqKEV3xSrlBHQa0mHgk9PYbjfidqoOP/u95YTT/euUDjoaIhHgTwZhd3
	 EzOhlrYjbDr8fmqohWIBSAZk6RiIJ6OkO3GjUIYISSd0/+ney9BWDMx3NC6eT4dsykK0P
	 BxqcPgJ5/MaXGVlbFfyYqATe5mJcweA2i/cvzXvnHBEZ6YPCch6KkBlB2BkRttaXOeEfB
	 5W9lWoRe7XrGOTh2hDICskvKvHd3Haj5hipuoCtEpClzFsU1LR7UMewkh6pz1rY=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1754991815;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=yqIqyRkdmnYRJBkV6gTxEZnNXJGTMACbU/ex1cYdODQ=;
	b=OvbK1FOnUlIu2GgZXpFrLC1dYgk0DK8diVnI9q/KhRWuhAxBQxCpe2P6VVrhOSOBncNz
	 Brq03bp4nTBqbwvokESxWsTfrflBBGMSJuvylQc6/XoGZgW1GKX1IWWDSbnLVcOBePvvn
	 5BaJcBrx5qUhAW9KU6Xidb5LKmmak/pQzI4Ohf1lSUJ4SfyYIFv08TQ9rSMtwI8ACSQ61
	 CijK4SwUMSyyw1G9xc/9sSGRxLNE60n3sDmTxvxeiOqFjDsxYlxD8yEPO/IWxB/dJRFB9
	 2wda1ssAAazmpzEpZQQ/vwbg5PcZJfsg7KtpnEskgZ/P4Zd6tNpQvWGcTxO9KnKNF/69q
	 M1fAaMmSa/mLkr4Rf5MmMItFRjsIveoA0faKhaIfAk44GFDssEtXRK14YF8J5csNhOrc8
	 uEnLcm2Bp/cHqIZwySgd2aw/MUgwVQENKMqzISRa+MiLBH/t5vM2yAiUEZThAgcRM0vFx
	 Cl2DyHthRjPWHZKygaZAZvXtpFW8VABYh8zKLopfTI+E1lOCt6g4Y4ku8V0sKT3QMFqe0
	 cCltmBSqtJpkbdskc0Xk6IHTSHPGDbZfdFXsCve0d33U6CJJw3Cj0plOuDiMsN0UDLdTM
	 9Lmklm3UAyAyd/Go2ZhrIC7HakzFr67GowuWUjgYkkXvkOuPnFrgNonFW7YQJ1w=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1754991815; bh=Jz/pIfzp16kJOuaWMrVE+1aiapcBqdnyYV0mbCg23ZM=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=mWGw2m1qlEI7y5Dtr5iGaJwA++wUXXQwzYa5Od7ivHngOnkSU3QEKaceB7a4YIf+Y
	 kulHzFU+dOzA6pAfSdnthh6a0Y6xa1vZ6bHxa0Duq/pv/ZeRVaWovUCKEOOE1y8Ouj
	 dqlfqLJRuN8nvOPPPQ2lrQkvcP7V/gatoap13NZNYewmvTucgin01jp8iEK5G/boyb
	 0sfkoVfKcLdZV+WT4i8gJ7jXRyle+OObv1Laxwbg5lMdcUqJdcRFlxbSVZPZh+6Rd0
	 AZTR4OxvOC4jA60u/ZO5gW7zYGxc+E5/C/FvnLi7fyLkpM7m5YyozkfMwpv2R6VnoO
	 Jn2bSC93MbOLw==
MIME-Version: 1.0
Date: Tue, 12 Aug 2025 11:43:35 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Jan Beulich
 <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH 09/22] x86/traps: Move load_system_tables() into
 traps-setup.c
In-Reply-To: <20250808202314.1045968-10-andrew.cooper3@citrix.com>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-10-andrew.cooper3@citrix.com>
Message-ID: <80285a06f5d4fb3bd3e378317cca61ca@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

On 2025-08-08 22:23, Andrew Cooper wrote:
> Switch it to Xen coding style and fix MISRA violations.  Make it static 
> as
> there are no external caller now.
> 
> Since commit a35816b5cae8 ("x86/traps: Introduce early_traps_init() and
> simplify setup"), load_system_tables() is called later on the BSP, so 
> the
> SYS_STATE_early_boot check can be dropped from the safety BUG_ON().
> 
> Move the BUILD_BUG_ON() into build_assertions(), and introduce an
> endof_field() helper to make the expression clearer.
> 
> Swap wrmsrl(MSR_ISST, ...) for wrmsrns().  No serialisation is needed 
> at this
> point.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
> ---
>  xen/arch/x86/cpu/common.c         | 118 --------------------------
>  xen/arch/x86/include/asm/system.h |   1 -
>  xen/arch/x86/traps-setup.c        | 132 ++++++++++++++++++++++++++++++
>  xen/include/xen/macros.h          |   2 +
>  4 files changed, 134 insertions(+), 119 deletions(-)
> 
> diff --git a/xen/arch/x86/cpu/common.c b/xen/arch/x86/cpu/common.c
> index cdc41248d4e9..da05015578aa 100644
> --- a/xen/arch/x86/cpu/common.c
> +++ b/xen/arch/x86/cpu/common.c
> @@ -843,124 +843,6 @@ void print_cpu_info(unsigned int cpu)
> 
>  static cpumask_t cpu_initialized;
> 
> -/*
> - * Sets up system tables and descriptors.
> - *
> - * - Sets up TSS with stack pointers, including ISTs
> - * - Inserts TSS selector into regular and compat GDTs
> - * - Loads GDT, IDT, TR then null LDT
> - * - Sets up IST references in the IDT
> - */
> -void load_system_tables(void)
> -{
> -	unsigned int i, cpu = smp_processor_id();
> -	unsigned long stack_bottom = get_stack_bottom(),
> -		stack_top = stack_bottom & ~(STACK_SIZE - 1);
> -	/*
> -	 * NB: define tss_page as a local variable because clang 3.5 doesn't
> -	 * support using ARRAY_SIZE against per-cpu variables.
> -	 */
> -	struct tss_page *tss_page = &this_cpu(tss_page);
> -	idt_entry_t *idt = this_cpu(idt);
> -
> -	/* The TSS may be live.	 Disuade any clever optimisations. */
> -	volatile struct tss64 *tss = &tss_page->tss;
> -	seg_desc_t *gdt =
> -		this_cpu(gdt) - FIRST_RESERVED_GDT_ENTRY;
> -
> -	const struct desc_ptr gdtr = {
> -		.base = (unsigned long)gdt,
> -		.limit = LAST_RESERVED_GDT_BYTE,
> -	};
> -	const struct desc_ptr idtr = {
> -		.base = (unsigned long)idt,
> -		.limit = sizeof(bsp_idt) - 1,
> -	};
> -
> -	/*
> -	 * Set up the TSS.  Warning - may be live, and the NMI/#MC must 
> remain
> -	 * valid on every instruction boundary.  (Note: these are all
> -	 * semantically ACCESS_ONCE() due to tss's volatile qualifier.)
> -	 *
> -	 * rsp0 refers to the primary stack.  #MC, NMI, #DB and #DF handlers
> -	 * each get their own stacks.  No IO Bitmap.
> -	 */
> -	tss->rsp0 = stack_bottom;
> -	tss->ist[IST_MCE - 1] = stack_top + (1 + IST_MCE) * PAGE_SIZE;
> -	tss->ist[IST_NMI - 1] = stack_top + (1 + IST_NMI) * PAGE_SIZE;
> -	tss->ist[IST_DB  - 1] = stack_top + (1 + IST_DB)  * PAGE_SIZE;
> -	tss->ist[IST_DF  - 1] = stack_top + (1 + IST_DF)  * PAGE_SIZE;
> -	tss->bitmap = IOBMP_INVALID_OFFSET;
> -
> -	/* All other stack pointers poisioned. */
> -	for ( i = IST_MAX; i < ARRAY_SIZE(tss->ist); ++i )
> -		tss->ist[i] = 0x8600111111111111ul;
> -	tss->rsp1 = 0x8600111111111111ul;
> -	tss->rsp2 = 0x8600111111111111ul;
> -
> -	/*
> -	 * Set up the shadow stack IST.  Used entries must point at the
> -	 * supervisor stack token.  Unused entries are poisoned.
> -	 *
> -	 * This IST Table may be live, and the NMI/#MC entries must
> -	 * remain valid on every instruction boundary, hence the
> -	 * volatile qualifier.
> -	 */
> -	if (cpu_has_xen_shstk) {
> -		volatile uint64_t *ist_ssp = tss_page->ist_ssp;
> -		unsigned long
> -			mce_ssp = stack_top + (IST_MCE * IST_SHSTK_SIZE) - 8,
> -			nmi_ssp = stack_top + (IST_NMI * IST_SHSTK_SIZE) - 8,
> -			db_ssp  = stack_top + (IST_DB  * IST_SHSTK_SIZE) - 8,
> -			df_ssp  = stack_top + (IST_DF  * IST_SHSTK_SIZE) - 8;
> -
> -		ist_ssp[0] = 0x8600111111111111ul;
> -		ist_ssp[IST_MCE] = mce_ssp;
> -		ist_ssp[IST_NMI] = nmi_ssp;
> -		ist_ssp[IST_DB]	 = db_ssp;
> -		ist_ssp[IST_DF]	 = df_ssp;
> -		for ( i = IST_DF + 1; i < ARRAY_SIZE(tss_page->ist_ssp); ++i )
> -			ist_ssp[i] = 0x8600111111111111ul;
> -
> -		if (IS_ENABLED(CONFIG_XEN_SHSTK) && rdssp() != SSP_NO_SHSTK) {
> -			/*
> -			 * Rewrite supervisor tokens when shadow stacks are
> -			 * active.  This resets any busy bits left across S3.
> -			 */
> -			wrss(mce_ssp, _p(mce_ssp));
> -			wrss(nmi_ssp, _p(nmi_ssp));
> -			wrss(db_ssp,  _p(db_ssp));
> -			wrss(df_ssp,  _p(df_ssp));
> -		}
> -
> -		wrmsrl(MSR_ISST, (unsigned long)ist_ssp);
> -	}
> -
> -	_set_tssldt_desc(gdt + TSS_ENTRY, (unsigned long)tss,
> -			 sizeof(*tss) - 1, SYS_DESC_tss_avail);
> -	if ( IS_ENABLED(CONFIG_PV32) )
> -		_set_tssldt_desc(
> -			this_cpu(compat_gdt) - FIRST_RESERVED_GDT_ENTRY + TSS_ENTRY,
> -			(unsigned long)tss, sizeof(*tss) - 1, SYS_DESC_tss_busy);
> -
> -	per_cpu(full_gdt_loaded, cpu) = false;
> -	lgdt(&gdtr);
> -	lidt(&idtr);
> -	ltr(TSS_SELECTOR);
> -	lldt(0);
> -
> -	enable_each_ist(idt);
> -
> -	/*
> -	 * Bottom-of-stack must be 16-byte aligned!
> -	 *
> -	 * Defer checks until exception support is sufficiently set up.
> -	 */
> -	BUILD_BUG_ON((sizeof(struct cpu_info) -
> -		      sizeof(struct cpu_user_regs)) & 0xf);
> -	BUG_ON(system_state != SYS_STATE_early_boot && (stack_bottom & 0xf));
> -}
> -
>  static void skinit_enable_intr(void)
>  {
>  	uint64_t val;
> diff --git a/xen/arch/x86/include/asm/system.h 
> b/xen/arch/x86/include/asm/system.h
> index 57446c5b465c..3cdc56e4ba6d 100644
> --- a/xen/arch/x86/include/asm/system.h
> +++ b/xen/arch/x86/include/asm/system.h
> @@ -256,7 +256,6 @@ static inline int local_irq_is_enabled(void)
>  #define BROKEN_ACPI_Sx          0x0001
>  #define BROKEN_INIT_AFTER_S1    0x0002
> 
> -void load_system_tables(void);
>  void subarch_percpu_traps_init(void);
> 
>  #endif
> diff --git a/xen/arch/x86/traps-setup.c b/xen/arch/x86/traps-setup.c
> index 8ca379c9e4cb..13b8fcf0ba51 100644
> --- a/xen/arch/x86/traps-setup.c
> +++ b/xen/arch/x86/traps-setup.c
> @@ -7,6 +7,7 @@
> 
>  #include <asm/idt.h>
>  #include <asm/msr.h>
> +#include <asm/shstk.h>
>  #include <asm/system.h>
>  #include <asm/traps.h>
> 
> @@ -19,6 +20,124 @@ boolean_param("ler", opt_ler);
> 
>  void nocall entry_PF(void);
> 
> +/*
> + * Sets up system tables and descriptors for IDT devliery.
> + *
> + * - Sets up TSS with stack pointers, including ISTs
> + * - Inserts TSS selector into regular and compat GDTs
> + * - Loads GDT, IDT, TR then null LDT
> + * - Sets up IST references in the IDT
> + */
> +static void load_system_tables(void)
> +{
> +    unsigned int i, cpu = smp_processor_id();
> +    unsigned long stack_bottom = get_stack_bottom(),
> +        stack_top = stack_bottom & ~(STACK_SIZE - 1);
> +    /*
> +     * NB: define tss_page as a local variable because clang 3.5 
> doesn't
> +     * support using ARRAY_SIZE against per-cpu variables.
> +     */
> +    struct tss_page *tss_page = &this_cpu(tss_page);
> +    idt_entry_t *idt = this_cpu(idt);
> +

Given the clang baseline this might not be needed anymore?

> +    /* The TSS may be live.  Disuade any clever optimisations. */
> +    volatile struct tss64 *tss = &tss_page->tss;
> +    seg_desc_t *gdt =
> +        this_cpu(gdt) - FIRST_RESERVED_GDT_ENTRY;
> +
> +    const struct desc_ptr gdtr = {
> +        .base = (unsigned long)gdt,
> +        .limit = LAST_RESERVED_GDT_BYTE,
> +    };
> +    const struct desc_ptr idtr = {
> +        .base = (unsigned long)idt,
> +        .limit = sizeof(bsp_idt) - 1,
> +    };
> +
> +    /*
> +     * Set up the TSS.  Warning - may be live, and the NMI/#MC must 
> remain
> +     * valid on every instruction boundary.  (Note: these are all
> +     * semantically ACCESS_ONCE() due to tss's volatile qualifier.)
> +     *
> +     * rsp0 refers to the primary stack.  #MC, NMI, #DB and #DF 
> handlers
> +     * each get their own stacks.  No IO Bitmap.
> +     */
> +    tss->rsp0 = stack_bottom;
> +    tss->ist[IST_MCE - 1] = stack_top + (1 + IST_MCE) * PAGE_SIZE;
> +    tss->ist[IST_NMI - 1] = stack_top + (1 + IST_NMI) * PAGE_SIZE;
> +    tss->ist[IST_DB  - 1] = stack_top + (1 + IST_DB)  * PAGE_SIZE;
> +    tss->ist[IST_DF  - 1] = stack_top + (1 + IST_DF)  * PAGE_SIZE;
> +    tss->bitmap = IOBMP_INVALID_OFFSET;
> +
> +    /* All other stack pointers poisioned. */
> +    for ( i = IST_MAX; i < ARRAY_SIZE(tss->ist); ++i )
> +        tss->ist[i] = 0x8600111111111111UL;
> +    tss->rsp1 = 0x8600111111111111UL;
> +    tss->rsp2 = 0x8600111111111111UL;
> +
> +    /*
> +     * Set up the shadow stack IST.  Used entries must point at the
> +     * supervisor stack token.  Unused entries are poisoned.
> +     *
> +     * This IST Table may be live, and the NMI/#MC entries must
> +     * remain valid on every instruction boundary, hence the
> +     * volatile qualifier.
> +     */
> +    if ( cpu_has_xen_shstk )
> +    {
> +        volatile uint64_t *ist_ssp = tss_page->ist_ssp;
> +        unsigned long
> +            mce_ssp = stack_top + (IST_MCE * IST_SHSTK_SIZE) - 8,
> +            nmi_ssp = stack_top + (IST_NMI * IST_SHSTK_SIZE) - 8,
> +            db_ssp  = stack_top + (IST_DB  * IST_SHSTK_SIZE) - 8,
> +            df_ssp  = stack_top + (IST_DF  * IST_SHSTK_SIZE) - 8;
> +
> +        ist_ssp[0] = 0x8600111111111111UL;
> +        ist_ssp[IST_MCE] = mce_ssp;
> +        ist_ssp[IST_NMI] = nmi_ssp;
> +        ist_ssp[IST_DB]  = db_ssp;
> +        ist_ssp[IST_DF]  = df_ssp;
> +        for ( i = IST_DF + 1; i < ARRAY_SIZE(tss_page->ist_ssp); ++i )
> +            ist_ssp[i] = 0x8600111111111111UL;
> +
> +        if ( IS_ENABLED(CONFIG_XEN_SHSTK) && rdssp() != SSP_NO_SHSTK )
> +        {
> +            /*
> +             * Rewrite supervisor tokens when shadow stacks are
> +             * active.  This resets any busy bits left across S3.
> +             */
> +            wrss(mce_ssp, _p(mce_ssp));
> +            wrss(nmi_ssp, _p(nmi_ssp));
> +            wrss(db_ssp,  _p(db_ssp));
> +            wrss(df_ssp,  _p(df_ssp));
> +        }
> +
> +        wrmsrns(MSR_ISST, (unsigned long)ist_ssp);
> +    }
> +
> +    _set_tssldt_desc(gdt + TSS_ENTRY, (unsigned long)tss,
> +                     sizeof(*tss) - 1, SYS_DESC_tss_avail);
> +    if ( IS_ENABLED(CONFIG_PV32) )
> +        _set_tssldt_desc(
> +            this_cpu(compat_gdt) - FIRST_RESERVED_GDT_ENTRY + 
> TSS_ENTRY,
> +            (unsigned long)tss, sizeof(*tss) - 1, SYS_DESC_tss_busy);
> +
> +    per_cpu(full_gdt_loaded, cpu) = false;
> +    lgdt(&gdtr);
> +    lidt(&idtr);
> +    ltr(TSS_SELECTOR);
> +    lldt(0);
> +
> +    enable_each_ist(idt);
> +
> +    /*
> +     * tss->rsp0 must be 16-byte aligned.
> +     *
> +     * Defer checks until exception support is sufficiently set up.
> +     */
> +    BUG_ON(stack_bottom & 15);
> +}
> +
>  static void __init init_ler(void)
>  {
>      unsigned int msr = 0;
> @@ -139,3 +258,16 @@ void asmlinkage ap_early_traps_init(void)
>  {
>      load_system_tables();
>  }
> +
> +static void __init __maybe_unused build_assertions(void)
> +{
> +    /*
> +     * This is best-effort (it doesn't cover some padding corner 
> cases), but
> +     * is preforable to hitting the check at boot time.
> +     *
> +     * tss->rsp0, pointing at the end of cpu_info.guest_cpu_user_regs, 
> must be
> +     * 16-byte aligned.
> +     */
> +    BUILD_BUG_ON((sizeof(struct cpu_info) -
> +                  endof_field(struct cpu_info, guest_cpu_user_regs)) & 
> 15);
> +}
> diff --git a/xen/include/xen/macros.h b/xen/include/xen/macros.h
> index cd528fbdb127..726ba221e0d8 100644
> --- a/xen/include/xen/macros.h
> +++ b/xen/include/xen/macros.h
> @@ -102,6 +102,8 @@
>   */
>  #define sizeof_field(type, member) sizeof(((type *)NULL)->member)
> 
> +#define endof_field(type, member) (offsetof(type, member) + 
> sizeof_field(type, member))
> +
>  /* Cast an arbitrary integer to a pointer. */
>  #define _p(x) ((void *)(unsigned long)(x))

-- 
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 Aug 12 09:52:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 09:52:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078496.1439520 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ullgS-00044x-0Y; Tue, 12 Aug 2025 09:52:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078496.1439520; Tue, 12 Aug 2025 09:52: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 1ullgR-00044q-To; Tue, 12 Aug 2025 09:52:43 +0000
Received: by outflank-mailman (input) for mailman id 1078496;
 Tue, 12 Aug 2025 09:52:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Pr65=2Y=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ullgQ-00044k-U4
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 09:52:42 +0000
Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com
 [2a00:1450:4864:20::633])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 15e91980-7762-11f0-b898-0df219b8e170;
 Tue, 12 Aug 2025 11:52:40 +0200 (CEST)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-af93381a1d2so837211266b.3
 for <xen-devel@lists.xenproject.org>; Tue, 12 Aug 2025 02:52: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
 a640c23a62f3a-af9584b1f55sm1774238766b.55.2025.08.12.02.52.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Aug 2025 02:52: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>
X-Inumbo-ID: 15e91980-7762-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754992360; x=1755597160; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4KCOhpC5MFyNzerObbwk81lyVYPNdv9MA0d5pPEgKVI=;
        b=FFCfiIbptf/6FCHKJrsW5mvqog1bG9yQLX5K8qIwCuHVMo9yr+NghZl2GrlIPwN7/m
         IrKUVGvSUYIvfFk+r8vqZ5vXaU6qg1uF5QjqvvOz2t0tQnAczxRxhxWf4Jo4whIWXH94
         pr0G7AMZW8oIN+jOl0fFSpEJH/d4b0PpGsQ52ExjS4y6/EZ8X3GaXb4u6gQOzWrhTQjJ
         Cuub3vC3mcPQ+661vxmE+eEJjIA0JLJvK3LAkiexqhVSe1ojTMIjmBUtq3RM7PnB0fqv
         bjaqyuq5Z3y3Neg6jy1rsmsewXcz7I7i1Px3emGqVaq94G6lN02HFdqHJp7clTTB2BTF
         xUQQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754992360; x=1755597160;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4KCOhpC5MFyNzerObbwk81lyVYPNdv9MA0d5pPEgKVI=;
        b=MCZAytWZdtcTqYsFOhDNk6PVAK7j1TpNwHVZKl/Hp74r32etqOaVGNaFfafgpp8fjJ
         u+tFdQzOQsHnjzkmYAiGDVPp1HvcyNHKJzIVpi66UauX7ij0W1I3i9BmTlH3tvk5Q0wP
         TE+oMzk6uYvGwlogu3ryTs9mZdFOhi8qiBpQqJ9+nKmFbzadkhLrYVIEb9Di0ReOxAAZ
         wX/WUW8FMajRXuC1EAyL9h/VpPKRqyWqjInOKacRgdLRVO4NDGYMZ0GLYsSdfyz/MEAU
         TI7d2g6qkCETWWYgwFt+G/NXlqATpNtdVMd97EVvHDt7DPVCRciQfBaNMYMb7oA+YhwC
         X5+w==
X-Forwarded-Encrypted: i=1; AJvYcCWpNDXAhaekzoGSjY93ZMeetZH82HvSoRi80miLh4QFdIZ0tNUk8/bc5tn/VHLetezqooU7ySqpwqA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxYDlFehEJ95UCuMa36t/Kj1/OWbgSR75yazdRrBbjTJDoIGPta
	p30HOdT7Vbbt6mofp0DkEyJWCKH/n+Q1KynVYRspKbslq+wwncQdEftBTcAAc0TRD8ddaMlnfYB
	n5sQ=
X-Gm-Gg: ASbGncsOPQfQ+TAA47R3dGSm35sn/lGpoD/Z4XtZyA4HKwPZ/iLNQh8u1a8+8WVJiaL
	bC9+lrl1A0/rVglbKEpSr4/QbVwhlkDYBrOyzrdYZQI6SSFvIZFTS8Ypf3GvrT3b0q60hMY0bXe
	mwqwgksiqHixB6yhDp01eOhJJPuzeMEtVHq5OFE/lgkaJyN7PhCiDWsoWqRGW3RRblIll/kl9Fo
	RHkW6wJvSJcODSSkTmlsANjUC6OfcT8V0LYxPjEMjFDNq/81Al+5RJ0jmBsszEH6i3dxM3A86mM
	kIHXLMAoqvWytUiGU6fH4f8B9SeF1O2TOerC4IwLvZyjyZyqHtZ9X3IVL+fMRZfg3GnVVf9OXkg
	GXYTmHyMG2Rly1lG9t+piu3FMNvrOLcFhyYJySAXokn3CSA19o+gF3D+reGihm8mPWLxBswtolf
	Mqp4By+R5HbyBkpb9rFg==
X-Google-Smtp-Source: AGHT+IEMkFv200OoJkAiqsGuwEwV8QgkYjgILTyv9J4yVnL28Nnw8NU/RshLu3A+JVIzW1FPT4nAWQ==
X-Received: by 2002:a17:907:980f:b0:af9:c10d:746 with SMTP id a640c23a62f3a-afa1dfade34mr262331366b.10.1754992359935;
        Tue, 12 Aug 2025 02:52:39 -0700 (PDT)
Message-ID: <769ba73f-b490-43db-a056-fc1d95ec9f27@suse.com>
Date: Tue, 12 Aug 2025 11:52:38 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 10/22] x86/traps: Move subarch_percpu_traps_init() into
 traps-setup.c
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-11-andrew.cooper3@citrix.com>
 <646c538a-850a-4370-8132-c06d9be8b422@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: <646c538a-850a-4370-8132-c06d9be8b422@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11.08.2025 10:17, Andrew Cooper wrote:
> On 08/08/2025 9:23 pm, Andrew Cooper wrote:
>> ... along with the supporting functions.  Switch to Xen coding style, and make
>> static as there are no external callers.
>>
>> Rename to legacy_syscall_init() as a more accurate name.
>>
>> No functional change.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> ---
>> CC: Jan Beulich <JBeulich@suse.com>
>> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
>> ---
>>  xen/arch/x86/include/asm/system.h |  2 -
>>  xen/arch/x86/traps-setup.c        | 97 ++++++++++++++++++++++++++++++-
>>  xen/arch/x86/x86_64/traps.c       | 92 -----------------------------
>>  3 files changed, 95 insertions(+), 96 deletions(-)
>>
>> diff --git a/xen/arch/x86/include/asm/system.h b/xen/arch/x86/include/asm/system.h
>> index 3cdc56e4ba6d..6c2800d8158d 100644
>> --- a/xen/arch/x86/include/asm/system.h
>> +++ b/xen/arch/x86/include/asm/system.h
>> @@ -256,6 +256,4 @@ static inline int local_irq_is_enabled(void)
>>  #define BROKEN_ACPI_Sx          0x0001
>>  #define BROKEN_INIT_AFTER_S1    0x0002
>>  
>> -void subarch_percpu_traps_init(void);
>> -
>>  #endif
>> diff --git a/xen/arch/x86/traps-setup.c b/xen/arch/x86/traps-setup.c
>> index 13b8fcf0ba51..fbae7072c292 100644
>> --- a/xen/arch/x86/traps-setup.c
>> +++ b/xen/arch/x86/traps-setup.c
>> @@ -2,13 +2,15 @@
>>  /*
>>   * Configuration of event handling for all CPUs.
>>   */
>> +#include <xen/domain_page.h>
>>  #include <xen/init.h>
>>  #include <xen/param.h>
>>  
>> +#include <asm/endbr.h>
>>  #include <asm/idt.h>
>>  #include <asm/msr.h>
>>  #include <asm/shstk.h>
>> -#include <asm/system.h>
>> +#include <asm/stubs.h>
>>  #include <asm/traps.h>
>>  
>>  DEFINE_PER_CPU_READ_MOSTLY(idt_entry_t *, idt);
>> @@ -19,6 +21,8 @@ static bool __initdata opt_ler;
>>  boolean_param("ler", opt_ler);
>>  
>>  void nocall entry_PF(void);
>> +void nocall lstar_enter(void);
>> +void nocall cstar_enter(void);
>>  
>>  /*
>>   * Sets up system tables and descriptors for IDT devliery.
>> @@ -138,6 +142,95 @@ static void load_system_tables(void)
>>      BUG_ON(stack_bottom & 15);
>>  }
>>  
>> +static unsigned int write_stub_trampoline(
>> +    unsigned char *stub, unsigned long stub_va,
>> +    unsigned long stack_bottom, unsigned long target_va)
>> +{
>> +    unsigned char *p = stub;
>> +
>> +    if ( cpu_has_xen_ibt )
>> +    {
>> +        place_endbr64(p);
>> +        p += 4;
>> +    }
>> +
>> +    /* Store guest %rax into %ss slot */
>> +    /* movabsq %rax, stack_bottom - 8 */
>> +    *p++ = 0x48;
>> +    *p++ = 0xa3;
>> +    *(uint64_t *)p = stack_bottom - 8;
>> +    p += 8;
>> +
>> +    /* Store guest %rsp in %rax */
>> +    /* movq %rsp, %rax */
>> +    *p++ = 0x48;
>> +    *p++ = 0x89;
>> +    *p++ = 0xe0;
>> +
>> +    /* Switch to Xen stack */
>> +    /* movabsq $stack_bottom - 8, %rsp */
>> +    *p++ = 0x48;
>> +    *p++ = 0xbc;
>> +    *(uint64_t *)p = stack_bottom - 8;
>> +    p += 8;
>> +
>> +    /* jmp target_va */
>> +    *p++ = 0xe9;
>> +    *(int32_t *)p = target_va - (stub_va + (p - stub) + 4);
>> +    p += 4;
>> +
>> +    /* Round up to a multiple of 16 bytes. */
>> +    return ROUNDUP(p - stub, 16);
>> +}
>> +
>> +static void legacy_syscall_init(void)
>> +{
>> +    unsigned long stack_bottom = get_stack_bottom();
>> +    unsigned long stub_va = this_cpu(stubs.addr);
>> +    unsigned char *stub_page;
>> +    unsigned int offset;
>> +
>> +    /* No PV guests?  No need to set up SYSCALL/SYSENTER infrastructure. */
>> +    if ( !IS_ENABLED(CONFIG_PV) )
>> +        return;
>> +
>> +    stub_page = map_domain_page(_mfn(this_cpu(stubs.mfn)));
>> +
>> +    /*
>> +     * Trampoline for SYSCALL entry from 64-bit mode.  The VT-x HVM vcpu
>> +     * context switch logic relies on the SYSCALL trampoline being at the
>> +     * start of the stubs.
>> +     */
>> +    wrmsrl(MSR_LSTAR, stub_va);
>> +    offset = write_stub_trampoline(stub_page + (stub_va & ~PAGE_MASK),
>> +                                   stub_va, stack_bottom,
>> +                                   (unsigned long)lstar_enter);
>> +    stub_va += offset;
>> +
>> +    if ( cpu_has_sep )
>> +    {
>> +        /* SYSENTER entry. */
>> +        wrmsrl(MSR_IA32_SYSENTER_ESP, stack_bottom);
>> +        wrmsrl(MSR_IA32_SYSENTER_EIP, (unsigned long)sysenter_entry);
>> +        wrmsr(MSR_IA32_SYSENTER_CS, __HYPERVISOR_CS, 0);
>> +    }
>> +
>> +    /* Trampoline for SYSCALL entry from compatibility mode. */
>> +    wrmsrl(MSR_CSTAR, stub_va);
>> +    offset += write_stub_trampoline(stub_page + (stub_va & ~PAGE_MASK),
>> +                                    stub_va, stack_bottom,
>> +                                    (unsigned long)cstar_enter);
>> +
>> +    /* Don't consume more than half of the stub space here. */
>> +    ASSERT(offset <= STUB_BUF_SIZE / 2);
>> +
>> +    unmap_domain_page(stub_page);
>> +
>> +    /* Common SYSCALL parameters. */
>> +    wrmsrl(MSR_STAR, XEN_MSR_STAR);
>> +    wrmsrl(MSR_SYSCALL_MASK, XEN_SYSCALL_MASK);
>> +}
> 
> These want adjusting to use wrmsrns(), similarly to the previous patch.Â 
> Fixed locally.

Also the one higher in the function, I suppose.

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

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 09:53:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 09:53:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078505.1439529 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ullhb-0004ZW-8F; Tue, 12 Aug 2025 09:53:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078505.1439529; Tue, 12 Aug 2025 09:53: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 1ullhb-0004ZO-5f; Tue, 12 Aug 2025 09:53:55 +0000
Received: by outflank-mailman (input) for mailman id 1078505;
 Tue, 12 Aug 2025 09:53:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Pr65=2Y=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ullha-00044d-Fk
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 09:53:54 +0000
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com
 [2a00:1450:4864:20::636])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 41764fcb-7762-11f0-a327-13f23c93f187;
 Tue, 12 Aug 2025 11:53:53 +0200 (CEST)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-af98b77d2f0so981957366b.3
 for <xen-devel@lists.xenproject.org>; Tue, 12 Aug 2025 02:53:53 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a0a14a0sm2190307066b.33.2025.08.12.02.53.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Aug 2025 02:53: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>
X-Inumbo-ID: 41764fcb-7762-11f0-a327-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754992433; x=1755597233; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SkrBeJs3bBlhBzTUe7/wzT90ovrVxqtY1MNrd3Z0arA=;
        b=ZGLCJi1rJzvUVrN4urFYyXtDMI95tGx49cy7e7076odpsRscKHCQx4pH6xsGuoTtKs
         VCJJCw2mEm0Oock1DKn7yYS6yl+4K9HynDL6GuWzV1qeEfVC49YGAoNdz4cysGlHTEo7
         fY5zEnj2A9CW2pKOderSrRGuLjmRKM6oUlnhPt4K7cd6f4DPISUyf2wQUV9LYbDGMGiI
         VM7LJSpEe0vLd8QpptDX8eKX/EaQPXZxTJaYfbCk0VZ4rnbD2Hg/JdfyAsC1pNBGm0sx
         70qAi8dqx4hEyWxQg2XHH5gXYGJ37Tx+wcmhkiXmOqTO1YENas4rsc12ra42zARAhrKk
         x6cA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754992433; x=1755597233;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SkrBeJs3bBlhBzTUe7/wzT90ovrVxqtY1MNrd3Z0arA=;
        b=v0iFT+0uyA8HaUynSoES9PNXNv2tlAwodaiJ/JojlBzigiynE5ruoJ7xCTYBBrchgu
         qUhURK6O2aGmjF1zHplnTPGT3cbmRFPNrE1QvMA8WaNtfabjkafJAm1xGAowOkNZalv+
         jbkz5K1wYhozrFgHlCs6wvT0z9ehZ5on+Ixp42aavGOwPWe8Jkay5V/Exl1cNT5UcYei
         a22Q5/izk+DNZaHwns2QTk8I/tWOfdoImmVMUnXZtFx11mn8M5waeuZ2vTM68emdRHoJ
         maVq5FYeqDVdKX81uG46ThtnM83oh3OFtDCuUXkItD1KfEq4FW9gsidOf9lG6qdzMmxj
         9WdA==
X-Forwarded-Encrypted: i=1; AJvYcCW46jpFQjOJ99smtSvMvP4xXzD1H2HG0UjHx3HqVIyj6riaJvsOT5xt5wPRtDkW6DVvUNYAxxPzp5I=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzmV4cfytSQWnOU8EFZRhNAZalJ2jxFLFEf60F2R3m83WjvHWAg
	rUh4RwuqeH7YUk8DORu/C7XK4chdztyWZmomXVjoMYSh+zDeFuhvRTQwtmRrE6Wl8Yyd6l07jp/
	NIXI=
X-Gm-Gg: ASbGncsZZVqRbifQDRUuCMz7UlHaiiu9G9/iUzZpMyWdK4mdlXL9VElS92WGAqcubTJ
	k0xmZDkUDEjJaI+W5IFZN5SGdGzU86IpzqURxODnz6kXQBaa5IvYWOSI1OOkFu9diJUEYCR/SMS
	YhOVB+4Y4uY3NxjsBX1hfUflYhY/4YEIrpPi52Yq6pGw05BbX+SCftyI6eQabFGj50eaGIBmCxa
	UncLi93ojV1pMQu0Ivc5Unl3sft/n5SVCLYvxB/SytQghgc4qGa739AWPWAce1on1Ud4suwvrih
	SM8hYD1USp/1z5d3iqc4YtPZxa9Dl2L6fqe/tBIC+fK9tjAWkFvWOT9xo7YWgAqykFyBC1DN1H/
	ptzy+TU6WZ7mCUZJ28tvNlupZrONlh9G+My5PNXxDJ0Qaqzodhh7jsp1stxdS96SUb3rrLzunqk
	djz5kbooU=
X-Google-Smtp-Source: AGHT+IHzUZw4MLKxae/mz6UKeMx4w7R0P4Wkeao86eZFOG+GQPS7X7NBrLgusrItJvPFZu6++kSTLA==
X-Received: by 2002:a17:907:9446:b0:ae3:4f57:2110 with SMTP id a640c23a62f3a-af9c6588280mr1616502666b.54.1754992433236;
        Tue, 12 Aug 2025 02:53:53 -0700 (PDT)
Message-ID: <5a0124c9-f593-4bd8-95c6-98dcfe7fa30c@suse.com>
Date: Tue, 12 Aug 2025 11:53:52 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 11/22] x86/traps: Fold x86_64/traps.c into traps.c
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-12-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: <20250808202314.1045968-12-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.08.2025 22:23, Andrew Cooper wrote:
> It's now just the double fault handler and various state dumping functions.

Ah, yes - long awaited consolidation.

> Swap u64 for uint64_t, and fix a few other minor style issues.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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



From xen-devel-bounces@lists.xenproject.org Tue Aug 12 09:55:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 09:55:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078512.1439539 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ullie-00054t-Hq; Tue, 12 Aug 2025 09:55:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078512.1439539; Tue, 12 Aug 2025 09:55:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ullie-00054m-F0; Tue, 12 Aug 2025 09:55:00 +0000
Received: by outflank-mailman (input) for mailman id 1078512;
 Tue, 12 Aug 2025 09:54:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Pr65=2Y=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ullid-00044d-NL
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 09:54:59 +0000
Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com
 [2a00:1450:4864:20::630])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 685bc83b-7762-11f0-a327-13f23c93f187;
 Tue, 12 Aug 2025 11:54:59 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-af8fd1b80e5so936586266b.2
 for <xen-devel@lists.xenproject.org>; Tue, 12 Aug 2025 02:54: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
 a640c23a62f3a-af91a21c022sm2134216366b.101.2025.08.12.02.54.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Aug 2025 02:54: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>
X-Inumbo-ID: 685bc83b-7762-11f0-a327-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754992498; x=1755597298; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=1LpUH7HgtAJMURFE1DFIZimmj822E6aRthFxF0nuiu0=;
        b=Gsm47rOYT9GE9irNsbk1Lt3FROe5oitVLpKOE1pE/jiQz6IHs1ZnAsFkrd3NLFTaAP
         HCH1XDYFwMWILgGGUFv0z/HgMWxHI0Lx67AdRTpXL/uk2EnByST8YCr9G+alckrfxwx7
         aQTyfXf63l2tkCVWnDbLoWGjWPyDiHuCydd6r4DmnIZsfZy3dsc+F0MYo0RUSVrteFfY
         azwdnXtrpkmAFYrpxtu3LUde9DL7a/ac2Ptqb1iTU2Eqtxjboh5l9lDX+vGf/ESR6+MO
         FMSk72RZEef6nkRlB3Bml30iPbSArctxY2iGGXeJnULLZy52OydDek6lG+ZSK36l4Pyv
         ntIA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754992498; x=1755597298;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1LpUH7HgtAJMURFE1DFIZimmj822E6aRthFxF0nuiu0=;
        b=wOYIySb3OqacA8oXwyW2eiDSBGq+xPhyYXd1pZ+ZRNCAFV6pjWAOeo7DpFHb1+wBUV
         vzA+aJIQGfb5IRQPyjuLF4+te7kZ7sHdcxU722HGMd71dXCd0p3CneSr/kAZhBGP9kGv
         5Gk4jwg6MMEBwyrNVcVX20GMjIgD8TbFFytWTOMs3ocFi50uaxacEIJ4VLsmKis17J3W
         jKPfSc614an09+Mei6ceEOuq5jXhq55o/OPTrYAQ2CoGN8YHcZ6fc2sFxSkGnaA6ytrO
         4qKFAmo61z7Lsvf5uivbDZNPFTcjUH9V6mW8Q64YJWBODjFB7b1zYJ5GYO5Eb8fS6Vjb
         N2JQ==
X-Forwarded-Encrypted: i=1; AJvYcCVk0rHOqu97Z1M1b32IueKvczJzIuhPTJywj4BWNC+q0dit0IETPTDl30V1gFTpSdzfRn+lbu6p2sc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzCPFK/GIVQb5yHLsKsToehjO9busyCQZHBtu1W/wSkHMZXlunu
	nE2O/nz77Seie/J8ZhsMQtQp9E+uVvqMD393RWyWPKtblQ+wKfnEhRNMsQ9SgX6g+Q==
X-Gm-Gg: ASbGncv4BRR6DARer8ujwD0t6ltDGBhNq0agwXXig3Cph/kwg6iQm1nG3CltGo76Fx6
	4SgPX3h9AdmbYCpaRWqVGbeTn7kZvCwAXUwo3xeS0hFzzZmeNB9J2WA76FcbCsaYiZ7dXSOvRkz
	FzYCeCUW7Kf4I9bIQfggXN6O1kjnLph4rWjnAH63PWxLEaA0bSBc8F63dYT2ZDaBbdhVE7a6yd+
	4T2sUWM+cbuoqUNPBRnOMQ1tuFBEDcvSw28khFhvj0dJ6cZFJJDKwlXp81t1kCVmLFUHMtR6947
	zI3Et9v+GiAgaBZ/M3AUF+QslxvYzu/lAtTmGWDDbk/gX96MyufeqHTr2Hu2WnOV8SfIQZTboQG
	+3fpVkbDKSE8L9yCGjcTTzhFgS8Y2apxT1u1bdb1LQohmJNNeba50yYeN/Uly3oQOhkgQKu3Taf
	sQcAwDkFB6xSJimeVLUg==
X-Google-Smtp-Source: AGHT+IHjIMfqjP2OZ8MvcQOqjsGqzpnLY51Rsn2G2Mi3UWojfGHetkCyS175GxNqg3htynl1vvz8xw==
X-Received: by 2002:a17:907:980f:b0:af9:c10d:746 with SMTP id a640c23a62f3a-afa1dfade34mr262872066b.10.1754992498547;
        Tue, 12 Aug 2025 02:54:58 -0700 (PDT)
Message-ID: <7931ecf2-4ff4-4eb2-875f-dbd316a08728@suse.com>
Date: Tue, 12 Aug 2025 11:54:57 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 12/22] x86/traps: Unexport show_code() and
 show_stack_overflow()
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-13-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: <20250808202314.1045968-13-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.08.2025 22:23, Andrew Cooper wrote:
> These can become static now the two traps.c have been merged.
> 
> No fucntional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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



From xen-devel-bounces@lists.xenproject.org Tue Aug 12 09:55:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 09:55:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078517.1439549 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulljE-0005Za-Q8; Tue, 12 Aug 2025 09:55:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078517.1439549; Tue, 12 Aug 2025 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 1ulljE-0005ZT-NL; Tue, 12 Aug 2025 09:55:36 +0000
Received: by outflank-mailman (input) for mailman id 1078517;
 Tue, 12 Aug 2025 09:55:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=WPHn=2Y=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1ulljD-0005LM-Gx
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 09:55:35 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7b472d4c-7762-11f0-b898-0df219b8e170;
 Tue, 12 Aug 2025 11:55:30 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id AD1C04EE0744;
 Tue, 12 Aug 2025 11:55:29 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7b472d4c-7762-11f0-b898-0df219b8e170
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=1754992529;
	b=QpGX9XTTywofc4gI0da7rNhdizWJH4bqW2CjHmFHECTw014W2wDtg5xYnoEsils3FkM/
	 wX+Kz0MVJeGJUnZzZf4Yv8DBSX2A3+UyRNGFMpN6138btBKJV7xKzAfMSfMHmJ02XE0Ny
	 rGML3AdHtq7mKLpQ1ZR0ob4nIC95GHO/EbVGGAFSH5jr09rMv1Yb46tpxpuDS8/vTuo/S
	 4Fnu78cJkRtRGXpIG74YeOVoiZDnBaUgHrk+ahGNzfZAxhY5syDCbcmJ78PX7N26mNV6T
	 5zscf9ZsHptPsJBP4/IIV96qW69MxQrykCA3JKRqNe08HLioiLal/PXj+DeMgnPaNjwyp
	 xJb+2KYyfRee0rUIkQ9+dS1CJmG5m2/1oQlEXrO34GGnouzQ/RPzpv6A9GbR7a5u1GIPP
	 nSXUydEORKT30HCCUorKuh3PqB5BqksleqX2eAAS9L9B+zCVa87UOMKBWkCW8B4qb50Lj
	 9WgwWn8QtCHO9LPxN4X9UIH0hoInOgGMvJmvyHChSv/9cg4Mqp/WNMbbBUdae0UxmknYm
	 R+QJ6b3M9viUqZm6lGPF8BqcoSe8OzkgJ6jLW1BkC9/DME4r2IRmxohvg90FxvuTo+1GR
	 q3sEnBvjPH5H17EHXoHGv3YMqtOkzK9JnCaqzToh9EkGbyUZj9FyCl1+nlXI0lo=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1754992529;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=zgCLErdLpKs/wpfDwOMcpwvPL3ZgyljHBF8UneGlrrk=;
	b=apfakXfvuo2VLpd9x2uPMSj0wBevjoB2MGfM/oUX9CEY2UDFqGqTFP3PsgOJgZgKYCk2
	 Q/aiuz7u32rIVNR6tjMlh2qlttO4KEpIzD+uehfn9lJM351EzkmD3oFzQpCE72YVy3AbP
	 cbnpALtTcXrotPn5FJrUUBzczhrRk4keFkER1i0xUY9ZEX5R7DuSBouo+nkKbS77az+3O
	 J5/c4D34E069R8Vm7PqGtOYNe1HrTgcwNF57xeliH1QKWRFmNg1HIhq3tPuRDP8htShxy
	 exvEDv6jy9IBs5vqYn2/yGc56Po/QA7wN6AaqnoSJvuBVXPYVBO6xtaM11UIeBZmua/Bm
	 zpLmtT6oVYE+XHBMcRpprqsEZm0jYz0PN6S9DTIza3NnkQb2RILQs7j/AXjMHUw8RF5gE
	 CDF3Z+lboSMolIi3oU4Vx4kCanZ+8rDg2Z8Ed25lCrmsuIIOugpquPWAq7JXVfBoQyWKF
	 1IfpwWt3XM5ke1ZZkkCSZM2kiJlnpamFrlGjOHj4gBDwY3gkjTW2gn6w66mbWtK72xBfB
	 rRCz9z0jraESNjsjDyhbhviEaQcmliPtT8YfHI75Q6khFgQ1G+us/NuOhpEY5I5Ty7Xct
	 RMqIwiGc0q0TaO/7CgXe1yJeLHvDdIxeLA0Qd7RLablK/rZ0PbydPvjmmMhLvyQ=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1754992529; bh=bdPaF8/29s842X2nnDpdkkDi87DKbMEQlRA9W0U8szA=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=PIKYRDEzwt75Bbg23O9+FdeNez3fTjNDCKTcT9gCgWZmTHewizYt2SrSlenLb6BFu
	 RSNTULptYNMlNPAHcE8zxtfwMW5VlZXAxl5Xz/9SQi0bYl8rzSSuyEe60pPm7FRiHy
	 j52kFIB4VsKVKot8dSC0rCcDoolw6aOFekZdT13U8ouRvgLNkMnK7SjGGSfuBz2bz8
	 7E6cLxLBYF4RSRIRRJ/7PSo7lM99FMHYibLz1qruN1UQy0lI0AXOAWAbyEooApH+0g
	 zqdBGLPpKBa3611rdSrhf3y/CKQDoQg1sfR0oDCendlID7ea+dO6NNN6soNYe0mzXB
	 4m4Zzw8ibQJTQ==
MIME-Version: 1.0
Date: Tue, 12 Aug 2025 11:55:29 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org, Stefano Stabellini
 <sstabellini@kernel.org>, 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>, Dmytro Prokopchuk1
 <dmytro_prokopchuk1@epam.com>
Subject: Re: [PATCH] misra: add ASSERT_UNREACHABLE() in default clauses
In-Reply-To: <c7f118a9-aea8-4f3a-8072-1bfa128d56b8@suse.com>
References: <7cd71ed21383c189fedb3250ddde54a593f7f98b.1754944131.git.dmytro_prokopchuk1@epam.com>
 <a318ef2d5cad37d2fda0bb4a52c90964@bugseng.com>
 <c7f118a9-aea8-4f3a-8072-1bfa128d56b8@suse.com>
Message-ID: <8ce96224f88513e4041d33248456fab3@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

On 2025-08-12 09:25, Jan Beulich wrote:
> On 11.08.2025 23:25, Nicola Vetrini wrote:
>> On 2025-08-11 22:30, Dmytro Prokopchuk1 wrote:
>>> --- a/xen/arch/arm/decode.c
>>> +++ b/xen/arch/arm/decode.c
>>> @@ -178,6 +178,9 @@ static int decode_thumb(register_t pc, struct
>>> hsr_dabt *dabt)
>>>          case 3: /* Signed byte */
>>>              update_dabt(dabt, reg, 0, true);
>>>              break;
>>> +        default:
>>> +            ASSERT_UNREACHABLE();
>>> +            break;
>>>          }
>>> 
>> 
>> I think this is fine, and there should be no problems with the break
>> being unreachable in some configs due to the call property for
>> ASSERT_UNREACHABLE
>> 
>> -doc_begin="Calls to function `__builtin_unreachable()' in the 
>> expansion
>> of macro
>> `ASSERT_UNREACHABLE()' are not considered to have the `noreturn'
>> property."
>> -call_properties+={"name(__builtin_unreachable)&&stmt(begin(any_exp(macro(name(ASSERT_UNREACHABLE)))))",
>> {"noreturn(false)"}}
>> -doc_end
> 
> Did you also see Julien's reply? Imo, to address a complaint from one
> rule, another rule is then being violated: The "default" label itself
> is unreachable here.
> 
> Jan

Unfortunately only after sending my reply, however the point here is 
that ASSERT_UNREACHABLE() is now considered as if it was not actually a 
source of unreachability for any statement below (which is the case only 
in configurations where NDEBUG is undefined iirc). This was done mainly 
to allow stubs for Rule 2.1 so that their return statement just after an 
ASSERT_UNREACHABLE() is not seen as a problem, but given that the 
configuration to obtain that is global it influences treatment for other 
rules as well, and its addition is relatively recent compared to the 
text written in rules.rst.

-- 
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 Aug 12 09:56:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 09:56:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078528.1439560 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ullkE-0006C3-A5; Tue, 12 Aug 2025 09:56:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078528.1439560; Tue, 12 Aug 2025 09:56: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 1ullkE-0006Bw-6N; Tue, 12 Aug 2025 09:56:38 +0000
Received: by outflank-mailman (input) for mailman id 1078528;
 Tue, 12 Aug 2025 09:56:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=54Z7=2Y=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1ullkC-0005LM-TE
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 09:56:36 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on2061f.outbound.protection.outlook.com
 [2a01:111:f403:2413::61f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9ef28e7e-7762-11f0-b898-0df219b8e170;
 Tue, 12 Aug 2025 11:56:31 +0200 (CEST)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 MN0PR12MB6030.namprd12.prod.outlook.com (2603:10b6:208:3ce::6) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9009.21; Tue, 12 Aug 2025 09:56:27 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d%7]) with mapi id 15.20.9009.018; Tue, 12 Aug 2025
 09:56: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>
X-Inumbo-ID: 9ef28e7e-7762-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FaVxNmJV1YVzQBB7fglqiqNP4zTSSEpIS6f0D4Lw9V4bQbYvwNRXcYBL7SReU+tFsFYo6OJ9J2taY+C8v4rQWFRrY1QX+56vFy+Q8axMO/3ZtwBpbGZOJ2b6bWyzK1pWYDdDEoxbzX9l6yCaRUb4Zr4Qg+3Tw1rc+tl7O9ADQTa5e2RnHQjx1S0edniRSa+r2t8WvY8aoo71csy6VidQb2iO4uUq8LPRToKNWvUR1R9q0XQS5AVpr8PlJ1Tok8Hi2J48SMtrv9O5AO0yDBrfD8EXwQ/xOWBZ1Kqk4syizzNYCItwq/wcuQ2K1NKanqms6mRnoP3ayFdI2e1y3iBlEw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=1WbWwBizKLr6sfHMYIQ0EX8TxERuC1qyHK2ECAKPHag=;
 b=pNyLfo/OGspUAl6QXV3hvUEbjrELg0CP2emXNh2wqVSlYty5Edhv75aOZMuHZWQAxusrb1xrC8ionLq+CpO0iUSTLPyH03uyyLXShYtQ2aZteSCVQSC234aKTozKrnoN7Xe41U3E14HVl4T2L1uooCKYYlUk5zd/fX1b8pBXtfGHBRZfinY6chqVSCFHNa91bhxCTTDrB7rmzA311QzaSGOADFvfQAmC2oaL0DAKIWEbD0YdbaVAwTRL4HqXqL+KRGclyhxxg6RXQaxmAbf/opvDvxoXSdJnl8cddQgXnDHCLAN6lat6CGFLaSA80G09cUhu9D6oKBp9AI7TmAp7MQ==
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=1WbWwBizKLr6sfHMYIQ0EX8TxERuC1qyHK2ECAKPHag=;
 b=rfOBtywXdn3vQwblMBnKmJe7dwU/kwgKzSYjN3P56IVzIgBuAnFjuJ/0pPhyIj195dk7eeCbXHmbrZKkIMFeIPFAv2C2JtjhhCbu6h3sUUQSl9TzsPvYTNZDLMBA5zMvHO5tPvbEEIoS1soLmE4Kos7I8I8WRMm8hR5pckLSMhA=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, Anthony PERARD
	<anthony.perard@vates.tech>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v6 15/19] tools/cpufreq: introduce helper to deal with
 CPPC-related parameters
Thread-Topic: [PATCH v6 15/19] tools/cpufreq: introduce helper to deal with
 CPPC-related parameters
Thread-Index: AQHb8hcn+tWFoATVBE6qNhfRcQLSnbQ/8H0AgB8IiuA=
Date: Tue, 12 Aug 2025 09:56:27 +0000
Message-ID:
 <DM4PR12MB845130C5A928F8B36DA5C4F9E12BA@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20250711035106.2540522-1-Penny.Zheng@amd.com>
 <20250711035106.2540522-16-Penny.Zheng@amd.com>
 <9df16790-268b-4221-87ec-829ab4446872@suse.com>
In-Reply-To: <9df16790-268b-4221-87ec-829ab4446872@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-08-12T09:56:16.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|MN0PR12MB6030:EE_
x-ms-office365-filtering-correlation-id: c245680e-2f30-4764-ea4a-08ddd9868170
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?d0xlcnB5OUl1VmxrYWN5OEZTNE0zUE1PN3hUZFFJY0d1TUhwdUhCWUNGMDZo?=
 =?utf-8?B?em9LbUVsUTdEVzVNVUZycG8wRFo0NkRmRnMxYkRUV096MXJsaElPcVAveVk2?=
 =?utf-8?B?OHhlZGl0Ym9hMmw1STlTQWduQzg2NzZ6STJVQUtrRk9xRzV5ck5mQzU1bE1C?=
 =?utf-8?B?a1JFR1kxcjc0UzdDZkc1eWZScFUyUEVKWWFUdVYvSmRuaEJpYllaVE5ma2JB?=
 =?utf-8?B?bkp5MnVUU3lJOGY5WW9oc0V6MlVIZnJ4bVVnM2MwdVV4cm45VDk5Y3BKVGYx?=
 =?utf-8?B?TWoycGVTVHhyN2syaHpXeDVmL0RjL3ZzQjFGT2plV2JMd0ZSVnozRGJoWER3?=
 =?utf-8?B?SjF4bkl3YjRUaVdrMkw1VlFpRkFSbTRSa0ZqTkZGdWxpVVprT2txYnBQdlZq?=
 =?utf-8?B?TEwyeUpFSGdrbHFLek9za05NNGNkdzZnbGhVdTV5RWFET29zK0Z2WGk2TEZY?=
 =?utf-8?B?K0liLzVMZkU1RG9zNGNkZWpYMk5rYS9kN2ZVZzZxQTJjdG91NVpIaFhvRTlm?=
 =?utf-8?B?TlpwbjhySU9iWHJjWVZadnBTeGhiVm5KbUZQVWRpYVRDNUtjc0hVdHo1cGhT?=
 =?utf-8?B?TkNSOStraE5mMmFwNUhxSVh0TFU1aG1NdFVsM1NxU2UvTFFQOTFyM0RIbjlR?=
 =?utf-8?B?bzlqWTd1NlJkbHBYb1NvcmRSaTl4VWQvUTFSZEI5d2dDb0Y3WlFYYjJHdmtw?=
 =?utf-8?B?Q3hHTzAzSzlpaENmK2dCWGl2WnRhL01uOVNFdWoreHdmczl5NFN0QnRLTFFG?=
 =?utf-8?B?L1BLOFVTTWhldEZVTTNMRVZxQWQrTDNmS0I5OEV5dGh1UlkwcWh4WHVBdzVU?=
 =?utf-8?B?TmI0Yi9xdWNKc01QSWdlVnQ4bnBJbnlTL3prYStpRldsc3JPSkN2d0RxUjY2?=
 =?utf-8?B?bUdRaC96cWoxK0Y3dllHQlNybnZ1RGQrMmp6U29qWkk5dmNpdmoyZTdHVWlw?=
 =?utf-8?B?T3BvbGhDWW5KbVZ3OTR4S1hCRFNadWhpTFg5TmxpcjNBUnFJN0NzTzU1K1k4?=
 =?utf-8?B?M05iZUxYK3JId1kvQmh4TS95dzJ0eFlFUk9TMUFwdTZjaTBaZTdaR1dpVElJ?=
 =?utf-8?B?dTgrZTVPZHl6R3ZKTEpGRnJTWGhDdzY0UVNLZXVzTUFlbGpXd2hKb2dsVnRX?=
 =?utf-8?B?eTJEZmYwNW93UUFxM0Z3czJQU0tzQ1k2bkNNME1BOVlhS3VpV0wyKzBGTUhn?=
 =?utf-8?B?UFUzbzU0UStJQU91RDNlMytRM3JsQkhpelJkTDJKT3U3THNDSUZET242ZlNp?=
 =?utf-8?B?a1JmR0VRRGV6djRpbGF0dDY5WVVCL3NTUUdjcmJNdHp3Q2J5KzNLMk1yNE9m?=
 =?utf-8?B?M0FoWjRXLzBZVmxWRi9BOVZjMGZ5dURSV0RES0MyS2poaDlGcVFhZitsei82?=
 =?utf-8?B?aEJWOHdNc1J5QWc0OHgxZERER0tIdVRLY0tFMGxSc0l1NlVoNFVBZVFyYXpr?=
 =?utf-8?B?djYvZGwwaVQ0bnZCOUVXcEpvUzQwdmloZ2RZc3hKNk00Ky9HbXJkZWdPMWlN?=
 =?utf-8?B?NlQ1TVoyUmZQR3BwMmYxTFUxeFFTUjhCbHJrUHlNRHZlOEI0MzNrMFJxUU9x?=
 =?utf-8?B?VnJnNnhWdjFkUVpwUDZCYjBMNHJZSWh2M2JPU3RxWlQ0ZVcwMlJpbStlMTJK?=
 =?utf-8?B?eVBsaWVQR2dubXdSUEtjZC9uSVByUG01Zm83RFhkNUp2amJTYy81dkk0bFhr?=
 =?utf-8?B?YTFiMlEvc3JpMjVvV0NDdUhSVnRvSHMvVWk0dlpiUWpyZkh1Zk5NaEtEVldn?=
 =?utf-8?B?WEFnaXhsdHFyczdRT0VIUnp3KytvYUx6NlphTFRGSXcvUUlkUkRVYVBsRnlV?=
 =?utf-8?B?Qy92Tm82Nzc3end0enlUNHFkZ25QL0lNWjVncHBsZ0NVOWpsL0x6U0Q0anAz?=
 =?utf-8?B?MU0xRjRpNmFOVVhLNjR4MDI3ZFA4cmpZWG9DY2ZDb1ZYSkZNMlZkckZTdHIy?=
 =?utf-8?B?L3lJY3BaaEhIWmNCMHdPdUFDdDJrMXBOcGI4TWluRjJpOWNXTDBLdVR5byts?=
 =?utf-8?B?bDFxelB6MzJRPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?VVNNcitkQ2EzRGVXT1owOEQvWDJEd2loeWVaeXVOeXFFTnpPdFVOKys3WFhs?=
 =?utf-8?B?eEpIb1hTdEVuZTZsbnE3d0lGenE2SG1xMU8rOWF5eVRVaExiSmdtd1pRUVk3?=
 =?utf-8?B?eUZucHNtT3JtRC9obTJobVpHK3pMZEJHdUJ1MEIwbSs3L0c2SFc3Wm9RdW94?=
 =?utf-8?B?QzRYNnNkZlJqZ2N3azlSWDJGaFBqVVUwTncydU15OTl4akluOStmc09iVWc3?=
 =?utf-8?B?ZWF5SlFGNzdKTlJYVm5hTUgwUHlJaHZ2ZFpTR3lqWDV0NHgvcjhPb1R4dFdj?=
 =?utf-8?B?ZWJsSW8xQVpURkh1cjlaZ1hxN0N2M2llSEkvS2pBNXpxZWN5VkozK2JCRUdM?=
 =?utf-8?B?eEszbWNuUHd1RWVtWmdPUWc1dTMxUmlLYnlRcnd2akJ6Um5ZblJGREFVUGl0?=
 =?utf-8?B?aUx6Q05uQzZ5czJ1VDhxSWFrYWxZOEpBYUo5ZVpPb3AvNzBvNzRBSjJkODJm?=
 =?utf-8?B?ZDBkRDdsRXE5bXd2ay9jZkJYdTltd1VFSi9lVXNTc2h0U1RUTk93eE9BM0ow?=
 =?utf-8?B?T1JqYzVZVUNTSGk1cTdyM1ZUWDdIVGJ2aW51SUVWNjFhS2lZc3lUblBiMnMw?=
 =?utf-8?B?MWQ3aEdYdEs0NWU2TC9iM0d5eTl2UUR5UzhkaHFUbHNHZFc2ekVCUi9zWVRE?=
 =?utf-8?B?Y0U2ejd0cHl3TWh1eDJ1NVhSenhTSnF4S1M0WXZHR0pDbXBUMVhCMEQwTWth?=
 =?utf-8?B?WDhSbnlEUjNzRzBDTWdGTTFHL1BJYzNLOE5IR3BiOHE5RmNTYjF2VDkvTVNW?=
 =?utf-8?B?RmxDWnduT2JBOXJsSzVIVzRJcmFXOWVCSnpJcDMrQUlpelRJL0lGakhqTzgr?=
 =?utf-8?B?ekRGVldqMVM1RFlVaHhqb1M2WmR4M1pKZWJXWE9wOWRWRUxNOUR1S0RRRXll?=
 =?utf-8?B?U0UyazErODlscDl6S1ZsNUk4WlNZVXl2NXgyUkY4K3ZGU1JLMTUvV1hPZG9Y?=
 =?utf-8?B?TkFLQnhmWklMZlpEOGw3T1NHRXVzVlN0ai83Q2UxMXJUeWxrVkRTRUdJWkMw?=
 =?utf-8?B?bjdPV29Rb2hFSktGTjBhMnk0dHc5U2l1OGY3T1BaZW53SHhhZ2UrMU00ck1T?=
 =?utf-8?B?eHFaOVZZTW9KT1k2K2pWOC9BbUdOL1lGTFlHYVpyZ0NWcFZwamFLbzl0ZjlJ?=
 =?utf-8?B?c2ZVSnNsYS9CbzczdVlKVyt3bk15bnhOazJVcVNhMVNxdjJTamhOeE9KUXo3?=
 =?utf-8?B?NHkrclQrQVlXdmY2YklCRFB4aWlhU21YeHJGNDVGVDZFbDJseS9KY1lKOVkr?=
 =?utf-8?B?NktvWTZnQjRza0FINXd1WEVUbXoyZWVhNUJkMjZIWW1KRXFwdnJoU3hNc1lJ?=
 =?utf-8?B?aFBCYmRVbjdFK2FKVDFjK3lpeW1idXphTHNyOVBHZXJDR2dpdFR5VDRSbktX?=
 =?utf-8?B?Rk8vN0JZRVV0MlJVUHhoU2Z1VVJKcjFhS1FiTkxnc0xsYUt2QTlKdEMwYzVL?=
 =?utf-8?B?NTBrTHJIbDlremRJRm9pTE5WVzhnL0ZzZ091eWh5RmNGY0NiaUptdHk1MERL?=
 =?utf-8?B?U202SzZnbWZEbWdTMVZvNWtFbXFJK3VMZmZJMFRSMG1jY0lVbU10U0RuUWV4?=
 =?utf-8?B?dXJ5cDhmbG1JRUxmazlRRDEvSndRclJSMDNzRGYrMHJVaUxnK0QrYlMzVVlV?=
 =?utf-8?B?bFErbTNkREpiYTR2S2h0Qk5ZN3NMSUFaNy9mK0w3ekZXeE9seVNNYmVjR2cw?=
 =?utf-8?B?WGhSeU1HdXdYdXFaNU1Ick5GWlJ5d0RPZWpkMVJyakY3UmIwL3Q5SzhRWHRH?=
 =?utf-8?B?UWw3c3RWUnNVaDk3R0dkNURMa1Ava3BHQTIyVEdUUVpmNERST2F5OXB4SUtU?=
 =?utf-8?B?ZGIwdEUvbXU1SzM1K0tTUVBIc2hPOGlPeW9IYm5HZ2I1c3FvL0VsVWNmaDBp?=
 =?utf-8?B?V0F1dklEYll2YTFTcnJmNTFmZnBLNXdOT3MwVVVNUmVMM29tMEprNzlJYnVM?=
 =?utf-8?B?cHE5dFN5ME9ONDJ4UjhvT1ZXcnRyWmJXRWVGVE0wbHE0ZjN0L2ZPbXBlbEdo?=
 =?utf-8?B?MDZVTXh0YTFudlYwWklaZ3RjMnJJT2JMRVpBRTNLK3VxYWo1N01UVUtyV1lo?=
 =?utf-8?B?MUJFS0JlTC9CZFI2aEdod2ZFalNPM0RHL1FJNm9XMElDcVdrL1NzZ0J6SXRC?=
 =?utf-8?Q?Yg/o=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c245680e-2f30-4764-ea4a-08ddd9868170
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Aug 2025 09:56:27.6717
 (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: f/xbUWU6uyHui+babAe0N3EiLiUsVMcWAykn2d6MUyrezgoA9d74xv8+KnK0sUFYToIajK4vgwQAupca3bqOJA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB6030

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFdlZG5lc2RheSwgSnVseSAyMywgMjAy
NSAxMTo1NiBQTQ0KPiBUbzogUGVubnksIFpoZW5nIDxwZW5ueS56aGVuZ0BhbWQuY29tPg0KPiBD
YzogSHVhbmcsIFJheSA8UmF5Lkh1YW5nQGFtZC5jb20+OyBBbnRob255IFBFUkFSRA0KPiA8YW50
aG9ueS5wZXJhcmRAdmF0ZXMudGVjaD47IHhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0K
PiBTdWJqZWN0OiBSZTogW1BBVENIIHY2IDE1LzE5XSB0b29scy9jcHVmcmVxOiBpbnRyb2R1Y2Ug
aGVscGVyIHRvIGRlYWwgd2l0aCBDUFBDLQ0KPiByZWxhdGVkIHBhcmFtZXRlcnMNCj4NCj4gT24g
MTEuMDcuMjAyNSAwNTo1MSwgUGVubnkgWmhlbmcgd3JvdGU6DQo+ID4gTmV3IGhlbHBlcnMgcHJp
bnRfY3BwY19wYXJhKCkgYW5kIGdldF9jcHVmcmVxX2NwcGMoKSBhcmUgaW50cm9kdWNlZCB0bw0K
PiA+IGRlYWwgd2l0aCBDUFBDLXJlbGF0ZWQgcGFyYW1ldGVycywgaW4gb3JkZXIgdG8gYmUgcmUt
dXNlZCB3aGVuIGxhdGVyDQo+ID4gZXhwb3J0aW5nIG5ldyBzdWItb3AgImdldC1jcHVmcmVxLWNw
cGMiLg0KPiA+DQo+ID4gU2lnbmVkLW9mZi1ieTogUGVubnkgWmhlbmcgPFBlbm55LlpoZW5nQGFt
ZC5jb20+DQo+DQo+IEFja2VkLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+
DQo+IEkgb25jZSBhZ2FpbiB3b25kZXIgd2hldGhlciB0aGlzIGNhbiBnbyBpbiByaWdodCBhd2F5
LCBhaGVhZCBvZiBldmVyeXRoaW5nIHRoYXQNCj4gd2FudHMgcmUtc3VibWl0dGluZy4NCg0KVGh4
LCBpdCBjb3VsZC4NCg0KPg0KPiBKYW4NCg==


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 10:01:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 10:01:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078539.1439570 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ullpK-00086i-T1; Tue, 12 Aug 2025 10:01:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078539.1439570; Tue, 12 Aug 2025 10:01: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 1ullpK-00086b-Oz; Tue, 12 Aug 2025 10:01:54 +0000
Received: by outflank-mailman (input) for mailman id 1078539;
 Tue, 12 Aug 2025 10:01:53 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=xYq2=2Y=daimlertruck.com=john_preetham.l@srs-se1.protection.inumbo.net>)
 id 1ulljD-00044d-8u
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 09:55:35 +0000
Received: from BEUP281CU002.outbound.protection.outlook.com
 (mail-germanynorthazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c20b::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7d564bb2-7762-11f0-a327-13f23c93f187;
 Tue, 12 Aug 2025 11:55:34 +0200 (CEST)
Received: from FR6P281MB3484.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:c5::14)
 by BE1PPF7DB70B163.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b18::65f) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.13; Tue, 12 Aug
 2025 09:55:31 +0000
Received: from FR6P281MB3484.DEUP281.PROD.OUTLOOK.COM
 ([fe80::521f:afa1:ffd4:28a7]) by FR6P281MB3484.DEUP281.PROD.OUTLOOK.COM
 ([fe80::521f:afa1:ffd4:28a7%6]) with mapi id 15.20.9009.021; Tue, 12 Aug 2025
 09:55:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7d564bb2-7762-11f0-a327-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=L1lpUQTzkp9PTvnRuVggTft0nbuUEvyrnSu0P7H3qzHfOAXhHZu9JW4OqFQM5781LEuHATuD85Xe8B7LXyc0JZR9Z2e02JGx9yW352auKNvgxgPgOk/IpORQA4Spe7KitXeichvSqDGNDkDbHgAmgMPo+oYZUbjIKgAKDVhsDV87PENJTORZbxWRy7Gi+MckkiyAX9adkVVxD3RlnXIItGORRBuYhfYA6/y1YqhQ2UHEKO/JeXH4qqraabppa1A9seFqwxJrOBVKNO3wiHPDbVdZJQt37v+8ZW9kocn5wlabUPrQgoatMZdSwgx4y76kotOX48OsVLuY/hvCC362hQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=zWpKoRzPSZ0v4yJwOeNPSbysAhX7rexIHDkU6UApfKA=;
 b=XlTF/GeZ+sVkvm5QzXzKal6D2nMnRrfBBi23+VAIXe0FRC/X4ZMJP7h5O25v32RQkRPaRbK9jG/zUtY6v2BhQkgyn6c7k1rMCq6On+ruygtQsOW/J3Oh86oeavKRY8Alykdi8L5HNFjX3iymeShFOxlJg0vZM8bomH5RT8Vhcw+k5ufq1KF5qaKZxa5QSRQnjkxeO9gZIPR316LVaf++NkBrRuQatyemfD9Yy4lUWCTfuNUnSv3we9c+FL46rHKXsrA7+EkTCWyDdqnp6Wy1n7l80Ds9Ln1NMmrNXApb7ujQdjqgIg+VE2DQmfcFMq+5OFZMSB6B6qFSkthridzRzw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=daimlertruck.com; dmarc=pass action=none
 header.from=daimlertruck.com; dkim=pass header.d=daimlertruck.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=daimlertruck.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=zWpKoRzPSZ0v4yJwOeNPSbysAhX7rexIHDkU6UApfKA=;
 b=ZhcqbnnOAD7YIUVop2Vu3hV8MiYDrvR/Yj5jDEKWhOfQbE64Wh3qe1dfDVd2YWyqEUiloCwBde3x7LBAo4KyXyOIRJlYgwr2ijBdgusxWd12U0z/iQMQC6aqW0iB9pWz+tEHxbnrmCUhoz91uEBBFD9CTTBQPaKx3L3PL8jdN0aEIEWaxbsZJ1nrFjv0IP8qyZMyjCUuQLWBL+ngQv1zP163ajc5irRsiKsiUC9qSgU5B81yG7ehQi8WCzP8EtzliduRFOxoDAOcaAxlLsZObSvdnIVh2hf9N1LiueskmtIzMt0LtXWEbzLBEEby9EcNPqUE56gVPrZfhLtWCFNShQ==
From: "L, John Preetham (893)" <john_preetham.l@daimlertruck.com>
To: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: RE: Guide for Launching Full Linux VM on Xen (R-Car H3e Board)
Thread-Topic: Guide for Launching Full Linux VM on Xen (R-Car H3e Board)
Thread-Index: AdwGxJHMR8DoUPPTRqabQOx00R9z8wEqpIlA
Date: Tue, 12 Aug 2025 09:55:31 +0000
Message-ID:
 <FR6P281MB3484B232D3995BC4C79D25F4B82BA@FR6P281MB3484.DEUP281.PROD.OUTLOOK.COM>
References:
 <FR6P281MB3484EDA4C66DFB8C1F9A26FEB82DA@FR6P281MB3484.DEUP281.PROD.OUTLOOK.COM>
In-Reply-To:
 <FR6P281MB3484EDA4C66DFB8C1F9A26FEB82DA@FR6P281MB3484.DEUP281.PROD.OUTLOOK.COM>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_b97ea58d-47e6-47cc-9ab7-39ab03def869_ActionId=10540eeb-c066-4f81-aa0f-0984c3a798db;MSIP_Label_b97ea58d-47e6-47cc-9ab7-39ab03def869_ContentBits=0;MSIP_Label_b97ea58d-47e6-47cc-9ab7-39ab03def869_Enabled=true;MSIP_Label_b97ea58d-47e6-47cc-9ab7-39ab03def869_Method=Standard;MSIP_Label_b97ea58d-47e6-47cc-9ab7-39ab03def869_Name=DT_Standard;MSIP_Label_b97ea58d-47e6-47cc-9ab7-39ab03def869_SetDate=2025-08-06T11:23:02Z;MSIP_Label_b97ea58d-47e6-47cc-9ab7-39ab03def869_SiteId=505cca53-5750-4134-9501-8d52d5df3cd1;MSIP_Label_b97ea58d-47e6-47cc-9ab7-39ab03def869_Tag=10,
 3, 0, 1;
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=daimlertruck.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: FR6P281MB3484:EE_|BE1PPF7DB70B163:EE_
x-ms-office365-filtering-correlation-id: 221f29be-580c-4029-6e86-08ddd9865fb5
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|366016|1800799024|7053199007|8096899003|38070700018;
x-microsoft-antispam-message-info:
 =?us-ascii?Q?AnfK24V+wwVp3i5ECDX+I0MOlhnRhgOgltYgYXNi000bGIfe9tnkyjxZs45U?=
 =?us-ascii?Q?65qrezMD3kQjA664fYYW/vV3l66QOSIt5sQ7YfSyappqgL499w+WwE+Ww9/F?=
 =?us-ascii?Q?gT3X0VhiMLqeIrLp+NpPyJvBZI5MmwEK3g4UFj69lA2VrLixpxfA+fu507EA?=
 =?us-ascii?Q?+6S0pBMmqL2Sje30IDBjWUUqGXZmbjPWYwWNMg4Qg0k+WY/5xmVW08PY10aq?=
 =?us-ascii?Q?2j1E/5GS+D9ra3U+kgzvtXASlEBfkwa4Uko5Sx/tZyyYEpzfjC/2e593JOZd?=
 =?us-ascii?Q?OPSmBzy4pAlnUJCUdN8DS7LlpDjbtsel9H+bSxrGJGREnJNl8dpyox/RTYnm?=
 =?us-ascii?Q?6MuccCVefB9nMMkmg1YV8zkkNFIAzDgG6uUbGlzwq/Jly+NBV+PFGuhFk6eG?=
 =?us-ascii?Q?KjE0Ews9665Fzt6tG6ZjwSGAr6OXPnLoL4S3DV7JWe0Ofvk2J4aw6sRbZET7?=
 =?us-ascii?Q?8HY6N6tUTiBgq85HXQEWXAVGU7ib3OSDo49KTqOAR5CVPfVid+ikwWSh3rJW?=
 =?us-ascii?Q?GS26LoXZZaM+ZH4cqc+6UPByIbGnrS6g4VOnxFGIZpmruL1Uy4ubukR6mpKz?=
 =?us-ascii?Q?WhDoowbxQEEYyAhjcOcuM+AV2+2IegoH9hr2lcV7ooxSkunJ9BEoCTQbGimw?=
 =?us-ascii?Q?dFogWh5JdUKkrstn3RsvllzzCGWMeOufQLZip3NACVXeQwTC9TJIuDNwu691?=
 =?us-ascii?Q?zFKfKIc9QuKonYDf9ENhcrRDr3ZLiljBKzdNwuLEI25lQ6KQTE4V4yka5EoO?=
 =?us-ascii?Q?BKGF8dtj/qTVzIFKknX+kYpK+61vrzPBoAraqmmlWBJakgKlFqENmQn55rfb?=
 =?us-ascii?Q?qQkFYAtU619tId3cr3kxrSKdO7lhkWCxTZy8In5QYLsWm5JQuIhc6W32PS5P?=
 =?us-ascii?Q?ee6+mmNskhJd2UMD9MhmLGvBgl4ciV7oEZEH3ZFyylzNvqWTfYLqSE/B8cc9?=
 =?us-ascii?Q?Cymj9ETchSkARcq5kaM4lz0kOOYpnlFtRUdW0NWA2LVbpiEynvy0NTEfaSaa?=
 =?us-ascii?Q?NJx9SUiAW4ZP12lYhufhmNYYN5wscUwUdGMjG4onTJcCWka78ZF9+V9X2Xqo?=
 =?us-ascii?Q?S8KFd1fMujfGvnGEzOdOFEsxbXEZ/i7WUS42xKHRDZH9MHo+gVRYO/v6DszZ?=
 =?us-ascii?Q?HWaOfEMtmjXh/if5erdGerAuNwHsV5h+e7b+TGR+V03dVsaNVxB7X72U9Nko?=
 =?us-ascii?Q?vZSfV/KsdB8IReJUQ2dO1lK2ssooTawMI02Q8eYIc1zGhn5y75wH0GWRyBm1?=
 =?us-ascii?Q?rABKq0vO1QgRoVk1C4uVsvA78ldf784T2Rkcxqw+eEE1Tv0BtaTe5vF0aYUu?=
 =?us-ascii?Q?UrLf0IYMUkInD3IrBeKqP2cyuRP/vmV/Zy/Ip9M2pLlDiqY62oqznb27pw9M?=
 =?us-ascii?Q?YGLYWSlOJkQvrR59lgmT0h3wIHzzDBcbAuDeDBtGXxXbF2rr3FaLxhQYEEsX?=
 =?us-ascii?Q?i6BZY7lPSV+mxerlCsDoqYACxMOEM9TE8wdm70rD5mi7c6vmMs7oBr2DOEUs?=
 =?us-ascii?Q?VyBDRKrgHMlMFJY=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:FR6P281MB3484.DEUP281.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7053199007)(8096899003)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?us-ascii?Q?OxCFuw8v+1SqXclTms3FrmQ52EB9gg56utmLNmMxwK/VLavSWjZWvl/fJ5P3?=
 =?us-ascii?Q?ArrGTp8oCoAB5nCbomAFglRwQqeRnJQP4ezpPNJwFPHveGVU7gKvMbzDT+ys?=
 =?us-ascii?Q?KUyZn8hi6ief/KRvkP7QI9t9N+cS62Tiaw9QcfmRyVW7UQ4MTTzxfeEJTiuT?=
 =?us-ascii?Q?65blJ9KDfEW/vRthoMO3ClvASR8L8tDGhoMw+0pBDT4EWyYq8bupnRu8V6Fk?=
 =?us-ascii?Q?2Z5S26iuVepqZzUIP2PLbzGGg1me12McXs4t/MxhTQaCj3N/PyO07U/opnLu?=
 =?us-ascii?Q?f/itu8o4PFRgcT8DjM0iqOGpqxQByTSYyz+gyPFHc3US1l5qu6yqA+yDqdE/?=
 =?us-ascii?Q?COoPsLvY7LLRkmehfuPOsdh1n1Pkr39B8yRY8IjdQf2GuH9GsRuaBGAb6QS/?=
 =?us-ascii?Q?cA5BqdcMFUbuie/D2PWSAVpgez1QLieD0hTCKOQWALLEwVTZkRRLexGWoTbH?=
 =?us-ascii?Q?7BReeFLiJWwm/7m5rkcPfl1VZyEDwuaEd6xv1MHFy0EXFSd18ERssZWqILob?=
 =?us-ascii?Q?Ut9QdKAqg7RWuemm36FXU+oFo3Bi6OG9NJzpB3XUN4lRlFUx9o0QxGFGwRWe?=
 =?us-ascii?Q?+3oKTG0uSzTvgAoz25ntLW7TY3lUijBgzGBOm/RMXWRxXrJBbAE1yQpM2Oy4?=
 =?us-ascii?Q?OPP+YnU6vIkpf92O9x2JuOuDwbqo6ZmB9nJK2MWR+pdrKiG2aJvBaeyv5RyL?=
 =?us-ascii?Q?ubHEyi6b92abkrTvFeQ26stWFIJhUrazF3xcDwUAKg1QEQveFV6VeoSznSMg?=
 =?us-ascii?Q?07wk7iDLq56LD6lXEXj3ThwDtJIyxaqkTLQf4otUDguiAk0xVge3bOZCaprD?=
 =?us-ascii?Q?PfRQ0uHzc4yzykWJSe5P3+3CfsV6VqPEmyNa1OtpZQsHAmWnXaHs5WmrBZA0?=
 =?us-ascii?Q?GOFDClH+KMxuB48ER8sYI6T6qGxVL0MyJ8HS6rKK9Xn5UGYRNBZdB1nKE6LR?=
 =?us-ascii?Q?RcWJ1U0KMs8Gm7PxXn3FcDRKlZG+hAC06R8Hu2FOhVO0qjSZP2KWI2MSC4r1?=
 =?us-ascii?Q?wu8WbxtVYBuNq4q3X8hYzTPrLOf3VoCEhm/oHBJyUOTG98garL2qw2VS+G1r?=
 =?us-ascii?Q?nzqEoqDDAWZpmnq8BOfxyiTqqst0IIFnDSa+85dkX354Al3GZPQSOfaHuGzL?=
 =?us-ascii?Q?9WfmOk5LAYi+ydJ/DkqfrmdF9WXjC7j4+Vt3ICp7DQVyNruqIof3DMy6JPXi?=
 =?us-ascii?Q?oqLg5PAWJRCoctJ4DpkCE9xXt5XQMF4SVfXdtLVWErlq1EB2S8Qmz7jxP0hq?=
 =?us-ascii?Q?RahSuBPD8XInnKT3D2gAYjZR4HmdpliuRM6hHNeSF6glmTKMF5PwWqyv6aJW?=
 =?us-ascii?Q?lgTlODNJU0nA1KUSFcDaHeHndKboWz5aXWJDmWlT7luNdInotnIuMqIkjik5?=
 =?us-ascii?Q?voLEWfTnN+058PII7c3/19VooWWsV3jpJFtRzNL+VA+b5Kf60BVIGpVSt1Eh?=
 =?us-ascii?Q?+pFXTHxblKGwMlq5ymxodKndGVykwgNGyj4daHAHKGpw8bkJKZog/E59rslw?=
 =?us-ascii?Q?zQqUxzo2Psd0ilHtNVi9uvBWR873orJSwuSpVd3IqqFnIt/AuVcmFRNyCvCY?=
 =?us-ascii?Q?C3inA+upsnxOGqXmEt+Vs5/0N9zk+vw4puyF5Ckf?=
Content-Type: multipart/alternative;
	boundary="_000_FR6P281MB3484B232D3995BC4C79D25F4B82BAFR6P281MB3484DEUP_"
MIME-Version: 1.0
X-OriginatorOrg: daimlertruck.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: FR6P281MB3484.DEUP281.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-Network-Message-Id: 221f29be-580c-4029-6e86-08ddd9865fb5
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Aug 2025 09:55:31.0962
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 505cca53-5750-4134-9501-8d52d5df3cd1
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: MTRovlwNZH1KL/0qYvJrA94mHzJb9t0J69C9+6c8nLZupATFbMR6wQQy41amHZ6LynOJ3aMG3Yp30NaQcWTxOw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BE1PPF7DB70B163

--_000_FR6P281MB3484B232D3995BC4C79D25F4B82BAFR6P281MB3484DEUP_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi Volodymyr,
Is there any update on my request?

Regards,
John Preetham L

From: L, John Preetham (893)
Sent: 06 August 2025 16:55
To: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
Cc: xen-devel@lists.xenproject.org
Subject: Guide for Launching Full Linux VM on Xen (R-Car H3e Board)


Hi Volodymyr,


I'm currently working with the R-Car H3e board and exploring Xen virtualiza=
tion on this platform. While I've found resources related to dom0 and domU =
configurations, I'm specifically looking for guidance on building and launc=
hing a full-fledged Linux VM on Xen-beyond the domd setup.

Are there any official or community-maintained guides or examples tailored =
for ARM-based platforms like the R-Car H3e that walk through setting up a s=
tandalone Linux VM with full capabilities (networking, storage, graphical i=
nterface, etc.)?

Any help or direction would be greatly appreciated.

Best regards,
John Preetham


If you are not the addressee, please inform us immediately that you have re=
ceived this e-mail by mistake, and delete it. We thank you for your support=
.


--_000_FR6P281MB3484B232D3995BC4C79D25F4B82BAFR6P281MB3484DEUP_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Aptos;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	font-size:12.0pt;
	font-family:"Aptos",sans-serif;
	mso-ligatures:standardcontextual;
	mso-fareast-language:EN-US;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
	{mso-style-priority:99;
	mso-style-link:"Plain Text Char";
	margin:0cm;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;
	mso-ligatures:standardcontextual;
	mso-fareast-language:EN-US;}
span.PlainTextChar
	{mso-style-name:"Plain Text Char";
	mso-style-priority:99;
	mso-style-link:"Plain Text";
	font-family:"Calibri",sans-serif;}
span.EmailStyle21
	{mso-style-type:personal-reply;
	font-family:"Aptos",sans-serif;
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;
	mso-ligatures:none;}
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-IN" link=3D"#467886" vlink=3D"#96607D" style=3D"word-wrap:=
break-word">
<div class=3D"WordSection1">
<p class=3D"MsoNormal">Hi Volodymyr,<br>
Is there any update on my request?<br>
<br>
Regards,<br>
John Preetham L<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<div>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal"><b><span lang=3D"EN-US" style=3D"font-size:11.0pt;fo=
nt-family:&quot;Calibri&quot;,sans-serif;mso-ligatures:none;mso-fareast-lan=
guage:EN-IN">From:</span></b><span lang=3D"EN-US" style=3D"font-size:11.0pt=
;font-family:&quot;Calibri&quot;,sans-serif;mso-ligatures:none;mso-fareast-=
language:EN-IN">
 L, John Preetham (893) <br>
<b>Sent:</b> 06 August 2025 16:55<br>
<b>To:</b> Volodymyr Babchuk &lt;volodymyr_babchuk@epam.com&gt;<br>
<b>Cc:</b> xen-devel@lists.xenproject.org<br>
<b>Subject:</b> Guide for Launching Full Linux VM on Xen (R-Car H3e Board)<=
o:p></o:p></span></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Hi Volodymyr,<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">I&#8217;m currently working with the R-Car H3e board=
 and exploring Xen virtualization on this platform. While I&#8217;ve found =
resources related to dom0 and domU configurations, I&#8217;m specifically l=
ooking for guidance on building and launching a full-fledged
 Linux VM on Xen&#8212;beyond the domd setup.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Are there any official or community-maintained guide=
s or examples tailored for ARM-based platforms like the R-Car H3e that walk=
 through setting up a standalone Linux VM with full capabilities (networkin=
g, storage, graphical interface, etc.)?<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Any help or direction would be greatly appreciated.<=
o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Best regards,&nbsp; <o:p></o:p></p>
<p class=3D"MsoNormal">John Preetham<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//DE">
<table cellpadding=3D"0" cellspacing=3D"0" border=3D"0">
<font face=3D"sans-serif, Arial, Helvetica" size=3D"-1" color=3D"#808080"><=
br>
If you are not the addressee, please inform us immediately that you have re=
ceived this e-mail by mistake, and delete it. We thank you for your support=
.<br>
<br>
</font>
</table>
</body>
</html>

--_000_FR6P281MB3484B232D3995BC4C79D25F4B82BAFR6P281MB3484DEUP_--


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 10:11:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 10:11:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078549.1439580 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ullys-0001Yt-Pe; Tue, 12 Aug 2025 10:11:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078549.1439580; Tue, 12 Aug 2025 10:11: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 1ullys-0001Ym-Ls; Tue, 12 Aug 2025 10:11:46 +0000
Received: by outflank-mailman (input) for mailman id 1078549;
 Tue, 12 Aug 2025 10:11:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=54Z7=2Y=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1ullys-0001Yg-0N
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 10:11:46 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20623.outbound.protection.outlook.com
 [2a01:111:f403:2412::623])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id be30e988-7764-11f0-a327-13f23c93f187;
 Tue, 12 Aug 2025 12:11:44 +0200 (CEST)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 CH1PR12MB9599.namprd12.prod.outlook.com (2603:10b6:610:2ae::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.22; Tue, 12 Aug
 2025 10:11:39 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d%7]) with mapi id 15.20.9009.018; Tue, 12 Aug 2025
 10:11: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>
X-Inumbo-ID: be30e988-7764-11f0-a327-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BpEZeY6l6/ZFDXlTH2FMCkTqkm9N5udSKeXDrh3/lT2HHK26xHPbomS7GfLQHtot812TNANzdMiC8BeNtf7W5s2N9eBCbVTzBZZgAG0wijeOBVJIkIc84HvXkQiGXZvou/2WvZRcmwKiJDiUQbiJh10cD3D3dHBmCo3u554AT70Ubm+GRHsIlMqeir0fHI8SzorH80prdJAot3wlMTpUljT/k2YbxuYDZKQJEJc5ox3iS8vLq8ubfryDSKz+HKIAc3IHQzypQ//DRVNuEJ+rNn5tirSQWZ6OLLpo86o52LjkrcMwDVT0AFpibZeDKqGf/emR1k50trdd1pCP/FdPEg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=C5CqrD0QCpyvn3rtMOXG9B+nPojapx8fA1Mxvt8sxQ8=;
 b=iDfaWWKPxEmzJmD8iaOTpKKcjcY4pQMmsSKrpW5JzenlF4Q5+I00S0wnESCebW14P44DhieWrLBOZ6Jeb+0xIphTsqaO8b35F9vw2KLUISCc3KZr/A7ayb0v0+03IUYwUqrEdQshuGcxsnBV4zNnlKJdTQeFO3c+HAXNmjNVaIqpyIuiv0ZFAXh3qgBKDe2hiUJ41BL3xe1LpGEQ8IbyvY1SRQNvlmewkVHblVp/5eSQHxW+8cZIFMPiSqTxk1PfxTmB1TuVuqH+kKG844o07ERX82i6U0dtMMBPUdAHxKE5Hn8UCwQ5mLR5EkovRhnVWAlHgevJ+pHcbNVOU2POLw==
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=C5CqrD0QCpyvn3rtMOXG9B+nPojapx8fA1Mxvt8sxQ8=;
 b=NzZM/o3tAahlKWbuborMKTYIDByEKSpKesHoxqTezI+62Lcyp2C+JdAKCg2YxXtCRE9WdoSumWpiTCJoS5WCh/iKgL6n4j+EqkK/RwrT+fRvB/C2e1i4K+PtwL97mc2W1geR0ijNTHwlGipI2qm6Umdtmwheama52YkW3zf/De8=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, Anthony PERARD
	<anthony.perard@vates.tech>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v6 15/19] tools/cpufreq: introduce helper to deal with
 CPPC-related parameters
Thread-Topic: [PATCH v6 15/19] tools/cpufreq: introduce helper to deal with
 CPPC-related parameters
Thread-Index: AQHb8hcn+tWFoATVBE6qNhfRcQLSnbQ/8H0AgB8IiuCAAAT3MA==
Date: Tue, 12 Aug 2025 10:11:38 +0000
Message-ID:
 <DM4PR12MB84513774A96C9A3E9A95BAD2E12BA@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20250711035106.2540522-1-Penny.Zheng@amd.com>
 <20250711035106.2540522-16-Penny.Zheng@amd.com>
 <9df16790-268b-4221-87ec-829ab4446872@suse.com>
 <DM4PR12MB845130C5A928F8B36DA5C4F9E12BA@DM4PR12MB8451.namprd12.prod.outlook.com>
In-Reply-To:
 <DM4PR12MB845130C5A928F8B36DA5C4F9E12BA@DM4PR12MB8451.namprd12.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-08-12T09:56:16.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|CH1PR12MB9599:EE_
x-ms-office365-filtering-correlation-id: 804bbdf0-1757-4622-f52e-08ddd988a06d
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?QjNHTVp2cFFhOHM1YzdDSmVET1BvTWFqWjFJdGRwOFowR1RVeTFIWi9ZWFVx?=
 =?utf-8?B?YXNmUmErK2xlUm5QMXJOSmYxY2JTeCttejBERjhyRGNmcURoMGRrOEdsM0xn?=
 =?utf-8?B?WGVoRXE4UEFLSU4yNGUrcEJrWVRnVTZ1QUVySGVTZjZwUXBlMnN2c21kMHhF?=
 =?utf-8?B?RUM1b1pFOUlvZzREdjlKWXNzbGRHZTZFQjlWakduQ1BYVWlpdHpRZ0hUQUVE?=
 =?utf-8?B?cHBCeEM2cW1YaHgzVE4wc00zcTRJRm5TdVJmV2ozUjBubUxMRXFUME1XZGhi?=
 =?utf-8?B?ZXNQVG9FeUlFK3VWOFJJWDJ4ME9jUHB1WnVscHJDR2lwOFRGSmFoZHVxTUEv?=
 =?utf-8?B?aWZIb3pyK2dDdmg5SWVMZk15WGx6SURvSTFoSTRDQk9kTThlZmNTc2Z1K0RM?=
 =?utf-8?B?WmFzYkJ4d2xaSktWZlg2Zk1rZUFuN1ZoQWhpY3BtbDZhL0NtSERJQmNONHVj?=
 =?utf-8?B?QitSNVphYkE4OWN1VTlkdlFldjBqcURNZVhLakZhZHZsV004KzQ0a1RzdkxW?=
 =?utf-8?B?NzQxM1hlb1RqWGgzZSs3d2Y1Y0I0TnhrQjB3d0t4eDFyM2U3YjkvdUVMUElR?=
 =?utf-8?B?U1FmSDM3M2tyVXAvbkJMWDE2aExlT0ZkeWFvYnU5NzFlR2FlbjczTHJCeGZx?=
 =?utf-8?B?K3F4RzlxVTV4YVZKaVdVVkZoYjFVdlhxRnpySDNMaGNGVEhXMmtyZ2xmNnU2?=
 =?utf-8?B?UkhsQyt0TmsyNlBmWjB6dUVtb3JxSVBERWp1WWNpSDNCREIrSE50bWt6OGtP?=
 =?utf-8?B?cmpxWEp0QUtZRnROZWZFVFhxZ0lNOHVLMzNsZlVlYzUvRmZnSFBMVTEvdzAx?=
 =?utf-8?B?MVNkMm1ZZENhNE9JYWp5ZVBaQythOEFyYjc0dU9GN1I3QS9tUGF6ODNIdFNK?=
 =?utf-8?B?QTNyZWFmbzNDeUVRc0ljR0cvNnBrWlo1MjhWYk9rUFgrdlV1UXRoR2N5eHhy?=
 =?utf-8?B?QmhBdytkOThHaW1OV0xiTjRGYVhzazMzdEJQZC9YWVBTcnNPaUw1MkNiOHBl?=
 =?utf-8?B?SUNaL0toV2tYOEhzN1cxcEtZeTNXQWl0WElKUmMycmpkcjFpTGpGNjY1ZDFs?=
 =?utf-8?B?R3NTeWMvQ05JZTh4ZkVNSnZRTGJ5YTBkdGVMOFJJZ0dQOXFrNDBqOHA5OEJj?=
 =?utf-8?B?VEMwWmh1cC9YUElaWTdIa3RaMXZPNnJrd2kyUVl3MHdCcHZiSWJsd1EyOSsx?=
 =?utf-8?B?S2t4Rkc5a1BjbFZDazkyUit0V0crWmdyK0FkU1NsVGl4Mm5taS9hVllTVU5p?=
 =?utf-8?B?VVlNQy9iMTdHNldFRUJaQURsdG5vaDZxUWxvbFMrL3lneFJRZThVaDFWcUNs?=
 =?utf-8?B?dzB2c1RsemNaUHo1OHdMUlRXejYvM2JPcE8rODVZRktHOFlmZ2NLL1d4T3k3?=
 =?utf-8?B?SXIyL2k2aEdqYVpPZmt3b2J5OWlSRUZIVGRrUWk3Wkd4bHkzVlBsdUZWeTIx?=
 =?utf-8?B?SU5oUmljSllPWWRHL21UTVV4TlNFaWhkVnhETW9nL1hPeTZFUWNVT01YNTNX?=
 =?utf-8?B?TlR1Mm9BQlY5YWhZYUtxY3NIbC8zREhiVk5sc0ZiWWI3SVNrdHNlbGVpckxC?=
 =?utf-8?B?Q0dzakM1MGhYY0VTRDRhSEN3a1BzTGd0WkpqQnBrZytNYTlFeGxaU2ZSSlNo?=
 =?utf-8?B?bDRkOTRya2NTRS9ZMmZWWHJJSEJ3UUpxdk5ueXJFQjc5OHBuWDY1VnJYcytv?=
 =?utf-8?B?ditQdVl3UXNuR1gxVTZRMlpBNUlkUExGZ0Q0VnhvYmtrVW80R0J5dm9sWFBV?=
 =?utf-8?B?RGpFWlJTZkZsNlFCd3RNQ0pLMkI5VWhuWTgxQVVUTlFTb2NnU3RZTit1SFY2?=
 =?utf-8?B?N2F4WTluUDVscWdDdzZ6WXhiODA4T0N6c3RKKzR5UVA2dUdIQW5nU0ZWdEt2?=
 =?utf-8?B?ZkJGNy8xNDM1UWREMnlGMUw2dkl0NjBWQTQ1aFpSSjZMdTBXekRxSVF0TVVy?=
 =?utf-8?B?UHdQOTUxeFdBT25IQ2dmdEtlbVUrT0NJU1VGR1ovWTdhdVg5Mm5GcEhXb21J?=
 =?utf-8?Q?yITAo8moQw1XQczUugYaUJYarIFLSw=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?ckpiaGxuU1ZkcDV2SVlSeXNVamFLcHJZTUZVbllPVDVFc2pmenFLS1RsdkZQ?=
 =?utf-8?B?cStWTTVWOHNpeWwxMG9rNWxRWS9vdnNkWjFWMFM3SmtEWUFMdHNGdVF6RDUv?=
 =?utf-8?B?WWpDOVBSNWVsSTFjUG1LTmZXWCtwU0YxbWNwSnNxTzAxNmg1MHhtSlRYcTJC?=
 =?utf-8?B?V1ZZYnAzRFgxbTE5UXUrSGtjaWZ5Q2M1cE5RZUxXcGVKOVl5YkNIU1NhcXp4?=
 =?utf-8?B?U3g0cFFza25vZEttRmFpdWpvdWlJS21JblFCYnRUS3NuQ1ZNRlUzWTdTWEY2?=
 =?utf-8?B?dzljTzJDNkE5SGI0UDg2VHVZd3NsUTRQSXQzS1l5UHVrRWl4U0ZOUWxacFFq?=
 =?utf-8?B?cFZNVXdOKy9hR2doSm15ak5oREdyK0NNVHZBTUZmZXViODV5U0h1YVB4aHVF?=
 =?utf-8?B?L1pJUjJzOVc0YlB4bFZuRVJEWVF0RHM5OFphMkw2enRpSHdDbUVHN2IvUlhJ?=
 =?utf-8?B?cHBQcU1xNS9WNC9tSWlESzAzVUw4bE4yWEFJQ21QdWNLam9HalE1SHp3ekhn?=
 =?utf-8?B?a1NZK3hnZXNYK2pSSlVTd29VRFp0YXNlV2JFVzVvNFBzNEFLcGJFWW80Q0I4?=
 =?utf-8?B?MFdGSDhtcjN1S29PY2UvYU51MmVBZGdERDQ5MUE0dG1DOHU5VkdVekxzV0FE?=
 =?utf-8?B?N04xNnZ5Q21ydjZKTFFYV09nZzY3cTdRamhlVlcwdG1FWEQxbWJtSUtpclND?=
 =?utf-8?B?djRENWNBMlhrSStyc1hVOTlDakNOQVI3SWxjOTJ1R2tpeHFIVllwSVFrZmdR?=
 =?utf-8?B?ZGgva1poV05jbjM0Y0VnN0RqQmVSV2RCcUNjODdQT1BLU2tOTnhhU25nMGpo?=
 =?utf-8?B?MGFnWWtrc1dwOEpLRExLQ0tEcVYwWFdmTm1FOHVyMFppMEF1dUFYS01GakZo?=
 =?utf-8?B?dGE3TWFGZVpxUERkREdQdXBONkYrc1NuaE0rdFFyT081OGxqd1lBOTZucytC?=
 =?utf-8?B?bkMxUXpoUU4zN092bmRnTStVTHVocTI0aGN1Q3lvdkxRSlkxei9QbzBkR3Nm?=
 =?utf-8?B?ckxtNWtXb2dQcmtkNHhEUnI3VkJjeUJvbElFa0RsdENiUmVUQ1djVW9hVTJG?=
 =?utf-8?B?TVkvUDJGSXZyUXBXVnNBc2M5U1ZDRG9mNzBhR1BYRENMalR3ZWgyL1RkN2R0?=
 =?utf-8?B?WmFpOVRJZCt5RVp0NGlQdG9SZC90Y09wUlYrSHZHQUdudzZLUTI1VVhqR1li?=
 =?utf-8?B?RVpJbnd6dFBPTlVjTnVnNjZBVTczOWw3WXZyejJtYTZMSkZ0OUNTai8wRGFB?=
 =?utf-8?B?QUxFSzNsN2c3UDRWSUIrMjBGakZ4WG5tbVl4Yjh2VFBrTGVQdng4aVlwM21J?=
 =?utf-8?B?Mk83SUhDQ0RqaVcwOTdEWlEwcHNIZkJMU094UDh0STdxYXNoYWY3YjJsR1Iw?=
 =?utf-8?B?ZDVpeWZYK3hiUDhLemI5YzMySlhDcUVxSFpBY2YvWWpUVVVwamRSZUlpQmRt?=
 =?utf-8?B?WjdESy9ublNMZE5IN0hGZDFaOXczZVJIYmVQZnE2ekhmblFpSUVlRFJkUWcr?=
 =?utf-8?B?b1NpUkV5MUNkVFdqWGFYSkc1RE9RRSttN0VHalUxZFdnTWNLdk5DT0tYNDJO?=
 =?utf-8?B?RGtoY1VJNVRyUUthekI0RlEvbFdaejRBYTIxQkRRa3BWaXNjZDIySVNPQlBm?=
 =?utf-8?B?aVhXV25Vb1dkWitoY1RKRzlHakdVT0FvWUxFVEpLZVVMTDA2emNUWjkzSk9V?=
 =?utf-8?B?OHRDanFSNGRMTnhwTXUvTERTN3FTMVVQYWxRNXpCYXpPSDkveEQ3YTBwU1dE?=
 =?utf-8?B?R01XRnh5a3Q1cGVPditiR282aDlPaDF4MlBpUHdCQm1YT0ptRmNHcEpkTFlh?=
 =?utf-8?B?bGVMSGl2Mk81bGxWNWZ4VVhoNG05OWNHdGowQzdON2VzUXhieUdSa0JUNWVS?=
 =?utf-8?B?NjVWV1lxbWhLL2NoS3J1cGxlOHhWV05iOXVVRkxyd0hHdzF4b2NIR3djMDl0?=
 =?utf-8?B?Vkd2UExpclpndVhac0QzS0xxN3d5c0puZmM1bXA4Z29wZFZiLzVzTjIwdFh5?=
 =?utf-8?B?bkNCMDEzV01BTjFzMkRvSnVZWm5abDdiaHRpRUlKMU8vZXFJdHcrejJTdjNP?=
 =?utf-8?B?dWt5QXM2ZEZDR3REZjhTZHYvMGFGTm5yQVNNcko3WC9sTVRmVnZ2b3ZtbStF?=
 =?utf-8?Q?+X8w=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 804bbdf0-1757-4622-f52e-08ddd988a06d
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Aug 2025 10:11:38.6498
 (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: fXluRQqCI8VSfOkKyl5VDRfOlkfL+9JpxEmkKE8xhJW5safbSPjbsuiX/Z99gNNw8+ZnUiQSTUmfo6+ToeGgng==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH1PR12MB9599

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBQZW5ueSwg
WmhlbmcNCj4gU2VudDogVHVlc2RheSwgQXVndXN0IDEyLCAyMDI1IDU6NTYgUE0NCj4gVG86IEph
biBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4NCj4gQ2M6IEh1YW5nLCBSYXkgPFJheS5IdWFu
Z0BhbWQuY29tPjsgQW50aG9ueSBQRVJBUkQNCj4gPGFudGhvbnkucGVyYXJkQHZhdGVzLnRlY2g+
OyB4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gU3ViamVjdDogUkU6IFtQQVRDSCB2
NiAxNS8xOV0gdG9vbHMvY3B1ZnJlcTogaW50cm9kdWNlIGhlbHBlciB0byBkZWFsIHdpdGggQ1BQ
Qy0NCj4gcmVsYXRlZCBwYXJhbWV0ZXJzDQo+DQo+DQo+DQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNz
YWdlLS0tLS0NCj4gPiBGcm9tOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+ID4g
U2VudDogV2VkbmVzZGF5LCBKdWx5IDIzLCAyMDI1IDExOjU2IFBNDQo+ID4gVG86IFBlbm55LCBa
aGVuZyA8cGVubnkuemhlbmdAYW1kLmNvbT4NCj4gPiBDYzogSHVhbmcsIFJheSA8UmF5Lkh1YW5n
QGFtZC5jb20+OyBBbnRob255IFBFUkFSRA0KPiA+IDxhbnRob255LnBlcmFyZEB2YXRlcy50ZWNo
PjsgeGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+ID4gU3ViamVjdDogUmU6IFtQQVRD
SCB2NiAxNS8xOV0gdG9vbHMvY3B1ZnJlcTogaW50cm9kdWNlIGhlbHBlciB0byBkZWFsDQo+ID4g
d2l0aCBDUFBDLSByZWxhdGVkIHBhcmFtZXRlcnMNCj4gPg0KPiA+IE9uIDExLjA3LjIwMjUgMDU6
NTEsIFBlbm55IFpoZW5nIHdyb3RlOg0KPiA+ID4gTmV3IGhlbHBlcnMgcHJpbnRfY3BwY19wYXJh
KCkgYW5kIGdldF9jcHVmcmVxX2NwcGMoKSBhcmUgaW50cm9kdWNlZA0KPiA+ID4gdG8gZGVhbCB3
aXRoIENQUEMtcmVsYXRlZCBwYXJhbWV0ZXJzLCBpbiBvcmRlciB0byBiZSByZS11c2VkIHdoZW4N
Cj4gPiA+IGxhdGVyIGV4cG9ydGluZyBuZXcgc3ViLW9wICJnZXQtY3B1ZnJlcS1jcHBjIi4NCj4g
PiA+DQo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBQZW5ueSBaaGVuZyA8UGVubnkuWmhlbmdAYW1kLmNv
bT4NCj4gPg0KPiA+IEFja2VkLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+
ID4NCj4gPiBJIG9uY2UgYWdhaW4gd29uZGVyIHdoZXRoZXIgdGhpcyBjYW4gZ28gaW4gcmlnaHQg
YXdheSwgYWhlYWQgb2YNCj4gPiBldmVyeXRoaW5nIHRoYXQgd2FudHMgcmUtc3VibWl0dGluZy4N
Cj4NCj4gVGh4LCBpdCBjb3VsZC4NCj4NCg0KU29ycnksIEkganVzdCByZWFkIHRoZSBuZXh0IGNv
bW1pdCByZXZpZXcuIFRoaXMgY29tbWl0IG1heSBzdGlsbCBiZSBuZWVkZWQsIGJ1dCB0aGUgY29t
bWl0IG1lc3NhZ2UgbmVlZHMgcmV3b3JkaW5nLCBhcyBubyBuZXcgc3ViLWNtZCAiZ2V0LWNwdWZy
ZXEtY3BwYyIgd2lsbCBiZSBpbnRyb2R1Y2VkLg0KDQo+ID4NCj4gPiBKYW4NCg==


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 10:15:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 10:15:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078562.1439590 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulm2U-00029v-Bf; Tue, 12 Aug 2025 10:15:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078562.1439590; Tue, 12 Aug 2025 10: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 1ulm2U-00029o-86; Tue, 12 Aug 2025 10:15:30 +0000
Received: by outflank-mailman (input) for mailman id 1078562;
 Tue, 12 Aug 2025 10:15:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=54Z7=2Y=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1ulm2T-00029i-6c
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 10:15:29 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20605.outbound.protection.outlook.com
 [2a01:111:f403:2417::605])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 43b02076-7765-11f0-b898-0df219b8e170;
 Tue, 12 Aug 2025 12:15:26 +0200 (CEST)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 CH1PR12MB9599.namprd12.prod.outlook.com (2603:10b6:610:2ae::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.22; Tue, 12 Aug
 2025 10:15:22 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d%7]) with mapi id 15.20.9009.018; Tue, 12 Aug 2025
 10:15: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>
X-Inumbo-ID: 43b02076-7765-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=D6daDqX+AIr3HD4LW/lpkaOnl46X/ZOhTSKC96nhosuJRazhc0q9ua8EtVkiMx5/V+JNw/nxeDdU3KtDma29a3YmV5cTRITAx2PFX69+HnCZIDbCOYiTk3iusX0h5ce5m3y+YzoMYfqQHypMe5HAKcdd8vDF0b6ADcz/2DYpy79pmGT9pYDqWKPS3sc1DxtK8+pxRy59TY/7HZmTnv6kiMG8NZVBpq1QypqNQY4JisezN7koVNpCW0Drwhx4Ijno2BYWoQETsV3hUjToqAxllgrwP6gygTj+Sz9TpIXap/JUsXcCAyi3iK144zJCMhjxJzgJfRPdYbT8EoNBk4YhMA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=186OmuKM0dwmAnPTdF+GVnnmSmDfln3vUvJCoDjFXHw=;
 b=wbkXGAUZez0IqMl2X3xOZ/6nRJoOH/q8AMwDpYP1u58fjyqsrntmRnHZF/c805pE6iwdNrvHL+1IIdefJ6Yrt0kzZdtlMULqxIwRBEjtjiqtaRPR23Yb34B7PO/FAXN9glbskQno2uIikiLWr2CZiKky4FsFr8/A/X+YiAA106fAWUoBZzBFUr+R0OMEvErK9TBHd9c65q0OKCsT77197X9lxrBVOD+7y4IygJei5vQ8UZEtHJU6/lWSL9s1wXQ4BHCsIgmAq4YxzXTpmzNX8HmkuECVdKNXKzE7NUEB3HI4THOnoiyWhAqzEPTpx25SKNADZRazqB5TKnBFMLXMjw==
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=186OmuKM0dwmAnPTdF+GVnnmSmDfln3vUvJCoDjFXHw=;
 b=iXM+TCBsOX5Wma7msI++k4iF+JPAUUWN4g9Y4yLQyCyzqbUE+eQmZNV0RDK63sd7+m6Qej+4BbAxbZp73pR3Uz5XAWcdCtM0L7HSeDliSTp2dxRO1KJ8IYBiVxSKJn+Li/XYwnluR9VJU3Q2tqaZzIlI33MYxTK/oHjnwSoK6b0=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: "Andryuk, Jason" <Jason.Andryuk@amd.com>, Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, "Orzel, Michal" <Michal.Orzel@amd.com>, Julien
 Grall <julien@xen.org>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v6 16/19] xen/cpufreq: introduce GET_CPUFREQ_CPPC sub-op
Thread-Topic: [PATCH v6 16/19] xen/cpufreq: introduce GET_CPUFREQ_CPPC sub-op
Thread-Index: AQHb8hcsas/z4nFla0Oi87EUBsxHHbRBWmQAgAAMwYCAHZXsIA==
Date: Tue, 12 Aug 2025 10:15:22 +0000
Message-ID:
 <DM4PR12MB84513CB84750FB22F6F0E9B0E12BA@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20250711035106.2540522-1-Penny.Zheng@amd.com>
 <20250711035106.2540522-17-Penny.Zheng@amd.com>
 <87d9d5a1-39aa-46ca-9f2a-9169a2ef7a6c@suse.com>
 <0642628b-0cbb-4f7d-bc04-9f32c67b5965@amd.com>
In-Reply-To: <0642628b-0cbb-4f7d-bc04-9f32c67b5965@amd.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-08-12T10:15:07.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|CH1PR12MB9599:EE_
x-ms-office365-filtering-correlation-id: 02b5f94a-625b-4d39-c261-08ddd9892608
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?WmJVNDVVUkpqRk5YU2xsbWxTZzBzK09FWk1oblc1azBndit0TDZaK3daaEZr?=
 =?utf-8?B?TEkra0ZSNEM5SUl3cFZvcGRWWkRiWHZudUVZbTZmeUZxZ1dqM0VWRGZndTBl?=
 =?utf-8?B?bW5POWFyUHJrcWFuT1VEVkIxc0R6Slo3NkZ6UEt5NlV2d1NFQkM1VUlOaFh4?=
 =?utf-8?B?SEdxU2ZPS25MSWVnb2d6Q3FvaXlkWjdHNm9pcVNWeU1pMzE5bTE3K3hSWGhR?=
 =?utf-8?B?ZjYySlFrTlJpbGNubVZQeFFZN3lOYVJHTTA2YnZSN1g0RUN2TzBhb2oyR0Uw?=
 =?utf-8?B?QlpHRG1WNGlVQXlpTFk1b056WkFwNkFZWnFIMjl1MkFjRGR5R2d4cUd6Vkl0?=
 =?utf-8?B?RnRkanVRWlluK3BVWVhsVkdyNXYwRGxURHYxMmM4c1RQRWdPd2JzM3d5NUpH?=
 =?utf-8?B?a205eFlVV2VuUnFVQTA3eG1xdVZkckQzN2grMlBhSUtUY011Z21zeXRZUzJM?=
 =?utf-8?B?eGxwWGFDNGo4ajdpcDIyVXZrU0t4aXhVTSs4MndIOVlmaEhwRGE3bHlSUmd2?=
 =?utf-8?B?Ulp5bCt6OXprbVVLdG5qQnRHVUp0RGlWQVJkbTBkZzB3bjQ3WmZHRlZSQkVO?=
 =?utf-8?B?clY3VFZpUytKTHJoSFF3NzdrRmNkbllVZlhHbS9OY0ptemVpQVdvN0pWcG9T?=
 =?utf-8?B?MXF3dHRid2xXemlrMWdvek5jMWRXalN4Q08xNy9FN0RGMytMb3ZYUGtsZFBk?=
 =?utf-8?B?a1QxbXN3dndMZnhLN0VLYnI3cUMwYjdYSzg2RWpFWnNTblRKMlMvSDFEdXVu?=
 =?utf-8?B?K280YjQrdjhVMC9QWXB4d1ZGUER1QWRZck9vRDMwUzlaLzZWdVVJTDN2bTY4?=
 =?utf-8?B?dEtielhETWd6Q3FkS3RuazdTRXBDelpDM3NUNm4zTDF6bzAxQlhQbWtZdXpv?=
 =?utf-8?B?YzRyNjlHc0NwSTN6OWhRSGxZU2xCbWw2emhnQzh4RDlieTZjRmVaNWh5a1E3?=
 =?utf-8?B?N0c0Z0U2VTdBK1AyeFhwSjlpd0dYWC9EcmdlQ0Fmc21JQUc5Mm44WVNGazE5?=
 =?utf-8?B?c1NCYmRkUm5TUzR6TWhOTUFPdGw0TWx5V21hOXFqYzBkV3ZCR2lIb3ZaWUdM?=
 =?utf-8?B?TFg0cG8yUC9qY1cyOGxsTVZibGc3RWpId2tHdnBDeU0rWjY5ZEE5bjVheGxI?=
 =?utf-8?B?VHRVMjd4ZE9ISlhkVHcwRW0yamVITi90SmM2bVB4QkFudVpJUWhSVjVyaTRQ?=
 =?utf-8?B?SkVzcHZaRjRsRFhsSkVFMlhqYlQ0VG9KSDk5bGh2R3hCMkhUcnVNcjdnODEv?=
 =?utf-8?B?MHlpRjFXRTl5Yk1PdndKdzA2TVB4blljbFdoZitaZHA4L1RJaHE0dTM4R3hq?=
 =?utf-8?B?Z1BxZFZwUnE0alU3SkphbEsrVEwydXlWRi9uNWVkMUlYRXpHdjdMVHRPNjhW?=
 =?utf-8?B?am5KTjhjdFlBbUhXUDBMOXZETGYybmxYS25wRnJqT1ZEUlN1Zkg2UGxHdVJy?=
 =?utf-8?B?MndGK2piZk91R1hZSWxTOTI3NmpnUzkyN294bk9NVTBPV1ZYdGcvZWxzczVX?=
 =?utf-8?B?R0dnZ0NZdXNzUWRyWEpnMGJ1c2xIZlJzaSt0c1VEbngweDNvNk5jZGxyKzJ3?=
 =?utf-8?B?c1J0TlVEQUlPVGw3cGVZc0Y1K3hjQnlpR2xlT2RlQzVOOUJ3bXpmbGsybklm?=
 =?utf-8?B?b0NvRzlqUllnRHROUytsNjQvWFFFWWtZN3VlQnVDOW9NYzdlU0xKRkdNZlZx?=
 =?utf-8?B?cjZJVERlOGdDUndsRXRKTGhlRzBTN1RmdHZjQndFM0E1VkY3Wmh3VjBQOEdO?=
 =?utf-8?B?SHcrSUZBVUxRVU1wVXFkY2hMNEdPa0x3TENnOVJtSWhJNldwa1cvT2NPcTNJ?=
 =?utf-8?B?OVZvQ2EyNkNTQUFJTUV3QkRrRGlGOUJEN2NPc2NneTBxMzJrZCtzY2RXMWc2?=
 =?utf-8?B?ckYzZElrZW82RDFrRXFxK05yMzdVSzZOei9weS9DQlVNRkd1SWphWHhPR056?=
 =?utf-8?B?KzlIOHBRL2JLM1U2TkVzK2xrNmJYZXZXNTJEbDBiWXY3c210NXVwMDgzTzE4?=
 =?utf-8?Q?+SEmxcDOJAhvZ3c69//eGK/v88ldDs=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?RG9ENTFQcVBBcTVsTi9iOVU1eEpVNC9Hb0h1RGZBRGFuSGxLSE1BYlBxZXN1?=
 =?utf-8?B?TUdDTEZGTlB3TjdrTjRuWXpycTEzY1l4V0gxVFVhVkZkbDRUNGVPYy80K0tl?=
 =?utf-8?B?NE44eXUzaktQTTZ5UTZCaUxCQ0htaHR1d3ZUUEpSY0JYNDlNV0ZRalpXcHNU?=
 =?utf-8?B?Vmx2dGVmaHRkd1d2c3cySWl5N3hJekkvS2RDc0NJb0pBWkdpNDAwUTEveDV1?=
 =?utf-8?B?SzJGZ0h6cHdYOVJsb3FYVUE1aS8xUHFRSVRWQzZHelhlVkZrRUNBRDg5SlBG?=
 =?utf-8?B?b21ub1ZqOWZvMWZVejhBRWFOSlZiK0pxZ2RaUGxLcWlORVYzZ3UxRjhrVVRH?=
 =?utf-8?B?eEpZRXVGNXpseHFkVldXK3RTaTE2M0dMZGluNS9ldjlLb2RJQVBuRThxL1ph?=
 =?utf-8?B?ZDMrSnhEekZuRTQ2YW51TjJUbkN3V2xkNmlMbnNtWmJoTDhTclNFb0dhM2RT?=
 =?utf-8?B?aEZoK1JlcmRaNFk1SE9wR3FoWStvdHBtUkdBT0JQUkxPcDBKT1U0WlhzMWVG?=
 =?utf-8?B?QUVUZjkySVVmRUFWUS95SEd5Um4xMmpSUmZRSnB0QXFLNlJLU2NTSGl0VTRl?=
 =?utf-8?B?OE5LRzE5UnVtc2IrR0FVRENpVlRFd2t3QVFpNTZsNHJ1cWtQaEV2T0cyOXBV?=
 =?utf-8?B?M1M4Rm10RzNFS0ZmVldSbTR0eEVjZXFZYnhoTnVqVmNQWFBhVEt4UE96L0VK?=
 =?utf-8?B?K3VJN0xXWThTdzg3L0g1ZnAwMW4xcUgzNVg4d3pBY250WTdJQ0oxRHVtOWJJ?=
 =?utf-8?B?ZXlqWm9VWU5HZDRhdDU1alVleUlmTkcvMGplTVc4a2ExcVprTHRBRk12ZnEz?=
 =?utf-8?B?V3FVL2tYakRkUlpJN0dwa0t5d0p1b055VVVyUm9kMXYvOHcxWjhUalVVSFRu?=
 =?utf-8?B?NWlwOFZiMU85Q0V5eUdLUkFDczhDdEx4eDVYdEx3b3BiVWVmeVpHNXlRcFhK?=
 =?utf-8?B?NXhmQmNIbG1SdGhyWThEcmxyQ1VQUm5kWWRybkFPTGx3VE5VSUoyTU5GeFhJ?=
 =?utf-8?B?MFQzRWJZQmN5VUdlOE5ORWVRYitla1BoNU1XVFl0Zkp5MVBZak0wMjV3Z1Uz?=
 =?utf-8?B?Z3daUTRnZ3NzQmpMSGZlaU9nc1N5QTFIRDBlOEdaakpEVmpZUjFsZUE3UGw1?=
 =?utf-8?B?VlcxMldOZG9SbHd2dGJNQS9YSlJxa3YvSWE5VnZmSnJRNEZscTNpSXlOSWlh?=
 =?utf-8?B?QjdhNFRkZnpZdFVaSW9PcHhKdTNFRzd0alYxR2hYRWlFa3B2c09CcmZLeEhO?=
 =?utf-8?B?TEoydzBNTVpqMjBQOUNYUkVMcGJ4dVAyK1lZQkdhWFYzM3pHODFDeWZ4UzZN?=
 =?utf-8?B?V21KbmVRVDA5dTF6cW9kaTZTckhNMEN0NEVaSHpxejlrT2xtVEFVRTV6MC83?=
 =?utf-8?B?WVRaYWRGQ1lMUWJUZ1I3UE1sRFpnL05NMVNqd24yQkE3NytQZHROek96b09l?=
 =?utf-8?B?MjBWYmJmMnZSQ0trbkdBMnFiS0lLMWMrMXhKZkxxZGgxM0IwRVE1RS9iUHlI?=
 =?utf-8?B?YzZBcHhiMnQyRnBSQWE2aDJMaG5SZ1NVUUQvTXZjTWlhbTZab3RxNmJZR3BK?=
 =?utf-8?B?cVQ2S2k1TzcyNVlRVU45TjhJK1FWMWF6Vm5FdVo2SGpyRXRicXpCVXlFSFNW?=
 =?utf-8?B?ZURETjNsTFk4Y2kycXdRbzh5WVQxcGRia0l1QU9ra0I4N1p1NFB0VmlUd0Vj?=
 =?utf-8?B?NWU2bFBMZlRaYWtnTTFicFpjdVNjei9rbkkvT0hTZVBnZzhTMkJMZWY5L1BI?=
 =?utf-8?B?bng2QnlIT3dNNFd5TWZpL0JlcWhWTnBVMVNjTm1OeW5IWkxyU2liaDJtcGFU?=
 =?utf-8?B?SzlPSmhEZTFOcGY5VHlNc1piV1BUZCttdVpVcW9NZ2Q4c1lQdTdZeHVDSDdY?=
 =?utf-8?B?c28xNGZoQkgxaTQ3Zjl6bm1WR25BWFJlNDF2Yzlaei9NNnB6elVJWVQ0TnNI?=
 =?utf-8?B?aHBJa3BIY21JVHp4RUhUZjlyUkJVMFF1ZW1OSm1xYnNTREcvMk9rcmJVMU1T?=
 =?utf-8?B?emdXZ1pWNGIrY0ZGSzl4VVlFMnN2N1VveWFFdDRTU20yQVN2NnFXOEd3MDIz?=
 =?utf-8?B?c3lPOUFpRTVyNmJPWFdKQ0Nzd0NhVUJ0TEV3aFRhdTlyOStxbkFoNlZMM2sr?=
 =?utf-8?Q?gnhs=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 02b5f94a-625b-4d39-c261-08ddd9892608
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Aug 2025 10:15:22.8265
 (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: FUS14Rt9XhJ1GV/S8SaTJjUbT8yjHYoRfkE+l70is6cYBrCfDvmjYkk/kXVfz/Svi82QCxj42dl+wXWrQYFUWw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH1PR12MB9599

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYXNvbiBB
bmRyeXVrIDxqYXNvbi5hbmRyeXVrQGFtZC5jb20+DQo+IFNlbnQ6IFRodXJzZGF5LCBKdWx5IDI0
LCAyMDI1IDEwOjE3IFBNDQo+IFRvOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+OyBQ
ZW5ueSwgWmhlbmcgPHBlbm55LnpoZW5nQGFtZC5jb20+DQo+IENjOiBIdWFuZywgUmF5IDxSYXku
SHVhbmdAYW1kLmNvbT47IEFudGhvbnkgUEVSQVJEDQo+IDxhbnRob255LnBlcmFyZEB2YXRlcy50
ZWNoPjsgSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPjsgQW5kcmV3DQo+IENvb3BlciA8
YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT47IE9yemVsLCBNaWNoYWwgPE1pY2hhbC5PcnplbEBh
bWQuY29tPjsNCj4gSnVsaWVuIEdyYWxsIDxqdWxpZW5AeGVuLm9yZz47IFJvZ2VyIFBhdSBNb25u
w6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPjsNCj4gU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVs
bGluaUBrZXJuZWwub3JnPjsgeGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IFN1Ympl
Y3Q6IFJlOiBbUEFUQ0ggdjYgMTYvMTldIHhlbi9jcHVmcmVxOiBpbnRyb2R1Y2UgR0VUX0NQVUZS
RVFfQ1BQQw0KPiBzdWItb3ANCj4NCj4gT24gMjAyNS0wNy0yNCAwOTozMSwgSmFuIEJldWxpY2gg
d3JvdGU6DQo+ID4gT24gMTEuMDcuMjAyNSAwNTo1MSwgUGVubnkgWmhlbmcgd3JvdGU6DQo+ID4+
IEluIGFtZC1jcHBjIHBhc3NpdmUgbW9kZSwgaXQncyBYZW4gZ292ZXJub3Igd2hpY2ggaXMgcmVz
cG9uc2libGUgZm9yDQo+ID4+IHBlcmZvcm1hbmNlIHR1bmluZywgc28gZ292ZXJub3IgYW5kIENQ
UEMgY291bGQgY28tZXhpc3QuIFRoYXQgaXMsDQo+ID4+IGJvdGggZ292ZXJub3ItaW5mbyBhbmQg
Q1BQQy1pbmZvIG5lZWQgdG8gYmUgcHJpbnRlZCB0b2dldGhlciB2aWEgeGVucG0gdG9vbC4NCj4g
Pj4NCj4gPj4gSWYgd2UgdHJpZWQgdG8gc3RpbGwgcHV0IGl0IGluICJzdHJ1Y3QgeGVuX2dldF9j
cHVmcmVxX3BhcmEiIChlLmcuDQo+ID4+IGp1c3QgbW92ZSBvdXQgb2YgdW5pb24pLCAic3RydWN0
IHhlbl9nZXRfY3B1ZnJlcV9wYXJhIiB3aWxsIGVubGFyZ2UNCj4gPj4gdG9vIG11Y2ggdG8gZnVy
dGhlciBtYWtlIHhlbl9zeXNjdGwudSBleGNlZWQgMTI4IGJ5dGVzLg0KPiA+PiBTbyB3ZSBpbnRy
b2R1Y2UgYSBuZXcgc3ViLW9wIEdFVF9DUFVGUkVRX0NQUEMgdG8gc3BlY2lmaWNhbGx5IHByaW50
DQo+ID4+IENQUEMtcmVsYXRlZCBwYXJhLg0KPiA+Pg0KPiA+PiBTaWduZWQtb2ZmLWJ5OiBQZW5u
eSBaaGVuZyA8UGVubnkuWmhlbmdAYW1kLmNvbT4NCj4NCj4gPj4gICB2b2lkIHNjYWxpbmdfbWF4
X2ZyZXFfZnVuYyhpbnQgYXJnYywgY2hhciAqYXJndltdKQ0KPiA+PiAgIHsNCj4gPj4gICAgICAg
aW50IGNwdWlkID0gLTEsIGZyZXEgPSAtMTsNCj4gPj4gQEAgLTE1NzYsNiArMTYyMiw3IEBAIHN0
cnVjdCB7DQo+ID4+ICAgICAgIHsgImdldC1jcHVmcmVxLWF2ZXJhZ2UiLCBjcHVmcmVxX2Z1bmMg
fSwNCj4gPj4gICAgICAgeyAic3RhcnQiLCBzdGFydF9nYXRoZXJfZnVuYyB9LA0KPiA+PiAgICAg
ICB7ICJnZXQtY3B1ZnJlcS1wYXJhIiwgY3B1ZnJlcV9wYXJhX2Z1bmMgfSwNCj4gPj4gKyAgICB7
ICJnZXQtY3B1ZnJlcS1jcHBjIiwgY3BwY19wYXJhX2Z1bmMgfSwNCj4gPg0KPiA+IERpZG4ndCBK
YXNvbiBhbHNvIHN1Z2dlc3QgdGhhdCB3ZSB3b3VsZCBiZXR0ZXIgbm90IGludHJvZHVjZSBhIG5l
dw0KPiA+IGNvbW1hbmQsIGJ1dCByYXRoZXIgbWFrZSBnZXQtY3B1ZnJlcS1wYXJhIGludm9rZSBH
RVRfQ1BVRlJFUV9DUFBDIGFzDQo+ID4gbmVlZGVkPyBDb25zaWRlcmluZyB0aGF0IGFzIHBlciBw
YXRjaCAxNSB0aGUgc2FtZSBpbmZvcm1hdGlvbiBpcw0KPiA+IGFscmVhZHkgcHJpbnRlZCwgSSB0
aGluayBJJ20gYSBsaXR0bGUgbG9zdCB3aXRoIHRoZSBuZWVkIGZvciB0aGlzDQo+ID4gc2VwYXJh
dGUgb3BlcmF0aW9uIChhbmQgY29tbWFuZCksIGFuZCB0aGVuIGFsc28gd2l0aCB0aGUgbmVlZCBm
b3IgcGF0Y2ggMTUuDQo+DQo+IFllcywgYnV0IEkgdGhvdWdodCBJIHdhcyByZXBlYXRpbmcgeW91
ciBzdWdnZXN0aW9uLCBKYW4gOikNCj4NCj4geGVucG0ncyBzaG93X2NwdWZyZXFfcGFyYV9ieV9j
cHVpZCgpIHdvdWxkIGRvIHNvbWV0aGluZyBsaWtlOg0KPg0KPiBzaG93X2NwdWZyZXFfcGFyYV9i
eV9jcHVpZCgpIHsNCj4gICAgICB4Y19nZXRfY3B1ZnJlcV9wYXJhKCkNCj4gICAgICBod19hdXRv
ID0gSFdQIHx8IENQUEMNCj4gICAgICBpZiAoIGh3X2F1dG8gKSB7DQo+ICAgICAgICAgIHhjX2dl
dF9jcHBjX3BhcmEoKQ0KPiAgICAgICAgICBwcmludF9jcHBjX3BhcmEoKQ0KPiAgICAgIH0gZWxz
ZQ0KPiAgICAgICAgICBwcmludF9jcHVmcmVxX3BhcmEoKQ0KPiB9DQo+DQo+IFdvdWxkIHRoYXQg
d29yaz8NCj4NCg0KVW5kZXJzdG9vZCwgSSB3aWxsIHJlLXdyaXRlIGFzIHlvdSBzdWdnZXN0cywg
dGh4DQoNCj4gVGhhdCB3YXkgdGhlIHNpbmdsZSBgeGVucG0gZ2V0LWNwdWZyZXEtcGFyYWAgd291
bGQgcmV0dXJuIHRoZSBjdXJyZW50IGNwdWZyZXENCj4gZGF0YSB3aXRob3V0IHRoZSB1c2VyIG5l
ZWRlZCB0byBrbm93IHdoYXQgaXMgcnVubmluZy4NCj4NCj4gUmVnYXJkcywNCj4gSmFzb24NCg==


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 10:18:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 10:18:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078571.1439600 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulm5C-0002iE-O3; Tue, 12 Aug 2025 10:18:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078571.1439600; Tue, 12 Aug 2025 10:18: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 1ulm5C-0002i7-Km; Tue, 12 Aug 2025 10:18:18 +0000
Received: by outflank-mailman (input) for mailman id 1078571;
 Tue, 12 Aug 2025 10:18:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Pr65=2Y=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ulm5B-0002i1-M8
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 10:18:17 +0000
Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com
 [2a00:1450:4864:20::52b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a8d8206b-7765-11f0-b898-0df219b8e170;
 Tue, 12 Aug 2025 12:18:15 +0200 (CEST)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-6157b5d0cc2so7593069a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 12 Aug 2025 03:18: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
 a640c23a62f3a-af91a1e820asm2171596266b.90.2025.08.12.03.18.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Aug 2025 03:18: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>
X-Inumbo-ID: a8d8206b-7765-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754993895; x=1755598695; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=0kFcV+NcazyEifvDfRHHFQbJFULeJ1PAGtn767ZVWxE=;
        b=Q3eNgTT7NyHU+0sdZgmbfxEWwJmj06QY2N+WibSTvrTgXLSo2Lh8iu7gor/4v1e7pw
         gowlXeSPP3vtCfkJ/Tplqw7MFTyjO9y/52bjYbA538V5QHIEUUhHJ72OBH2AfHElPJB3
         jZpS7FoPfdypYDazmcatDWWje0WjnAiag8XUxDDwq+LjC/teawyq4HZmdC6/N+ws/I/N
         7HDQce632+UHgTD80bJb6hRxqzQgG5HyFlMoicyTWPoGmDBJAFIrH7iUEYkFcirMA7pS
         RYSq3rZFW2bsHhPGpqXy0HnMPCUwZJ/y50lEq/9EDY08juaduFxXs2jcvJp9POVQ6AS3
         Y+PQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754993895; x=1755598695;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0kFcV+NcazyEifvDfRHHFQbJFULeJ1PAGtn767ZVWxE=;
        b=vQJyPGXNTjAvaZ8rVXBMJttdCZg8zX75dpV4e7ZlOBM3jFSRYBDMpWcA3EdT//W/+i
         2hgo2uu4GtrasZZZ4XHmD96tDCjNdohLQ3RLRTVppH2kCakVYoQ6AmUQYAK0RH23UYql
         RbeZFtBCk1vnA1LP9kB7wgxcFkE4bxStH0Jg5LLMfLd0k1mBBmVAI7telCacoYd0kJV0
         gTqp4kc84BRg80VDbg9lMfHmW7YZ6IFxlAQe5Zyi+HiiK/R3oBte8OH/NjScIVrMAkah
         hFPTJLwXdwgV4a0b5i5y07SjHRsTuF4am0zhBT3hIDa06Qv23VFD4/oUeNYLwaMYJ+78
         cd+g==
X-Gm-Message-State: AOJu0YwmZEhNpKSaTTvyn9nvQS10xoGoudHG8DusfivuYJJUY5kbEIuT
	QSayaSucOce4Jerr4gpKN95KNrnBP5/pHRMWc/BSse+34O3Yu1wKddku9KWujKLliA==
X-Gm-Gg: ASbGncvtCdMvbM5jP6v/iQlqf3UqDSZkZYNLZG8dGbSIrHzNU9b+M3cnOT2/iRY4oLS
	X2XLA1hlg57sQPE8ptBgV9tYPQXl0CpxPu18w+9vfU/lZsrkDD+KC2dXyAkLHXLNzGZwvT04kGa
	1U01nYCoezbQls3hH99FdyJ6U8mSdODyKDbJlPjRhdxtpLPCISjB1nAAMWF1pnItNRB1Py4h5y6
	YiZ+Te5wIhcnWD/j9uZ3S1t3o/cVNY027nyoQngzmFsl6EWPscFaNZhz9RFYzkiSyqktc0SfKGq
	/Cb/ZPvCtcQqmXCh+roxYQf5MikxE9ZxbJuB5JuSoJqFCkp9qQq9O7VuzSz2zLQtBd4s+ZOt6OP
	ebVR0/59CaqmyIWdGzts2RjsTiBfXJqjbTmeVE+NlZtUKHkRQtTtP8dHQdv5xikpLJNcLk3cz0t
	nSHASaAog=
X-Google-Smtp-Source: AGHT+IF0PLJ9+u/Xkl+Z1PWmMBEEXFOoav8kTziVFaVu2GO2Ac9IeePlC/qip3mXuXI7J+pxSK3GqQ==
X-Received: by 2002:a17:906:3ace:b0:af9:21cb:23d4 with SMTP id a640c23a62f3a-af9c64f456emr1232755666b.36.1754993895129;
        Tue, 12 Aug 2025 03:18:15 -0700 (PDT)
Message-ID: <17cfd168-e54f-4cba-b2c2-5118bfbb8ca9@suse.com>
Date: Tue, 12 Aug 2025 12:18:13 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] misra: add ASSERT_UNREACHABLE() in default clauses
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: xen-devel@lists.xenproject.org,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
References: <7cd71ed21383c189fedb3250ddde54a593f7f98b.1754944131.git.dmytro_prokopchuk1@epam.com>
 <a318ef2d5cad37d2fda0bb4a52c90964@bugseng.com>
 <c7f118a9-aea8-4f3a-8072-1bfa128d56b8@suse.com>
 <8ce96224f88513e4041d33248456fab3@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <8ce96224f88513e4041d33248456fab3@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.08.2025 11:55, Nicola Vetrini wrote:
> On 2025-08-12 09:25, Jan Beulich wrote:
>> On 11.08.2025 23:25, Nicola Vetrini wrote:
>>> On 2025-08-11 22:30, Dmytro Prokopchuk1 wrote:
>>>> --- a/xen/arch/arm/decode.c
>>>> +++ b/xen/arch/arm/decode.c
>>>> @@ -178,6 +178,9 @@ static int decode_thumb(register_t pc, struct
>>>> hsr_dabt *dabt)
>>>>          case 3: /* Signed byte */
>>>>              update_dabt(dabt, reg, 0, true);
>>>>              break;
>>>> +        default:
>>>> +            ASSERT_UNREACHABLE();
>>>> +            break;
>>>>          }
>>>>
>>>
>>> I think this is fine, and there should be no problems with the break
>>> being unreachable in some configs due to the call property for
>>> ASSERT_UNREACHABLE
>>>
>>> -doc_begin="Calls to function `__builtin_unreachable()' in the 
>>> expansion
>>> of macro
>>> `ASSERT_UNREACHABLE()' are not considered to have the `noreturn'
>>> property."
>>> -call_properties+={"name(__builtin_unreachable)&&stmt(begin(any_exp(macro(name(ASSERT_UNREACHABLE)))))",
>>> {"noreturn(false)"}}
>>> -doc_end
>>
>> Did you also see Julien's reply? Imo, to address a complaint from one
>> rule, another rule is then being violated: The "default" label itself
>> is unreachable here.
> 
> Unfortunately only after sending my reply, however the point here is 
> that ASSERT_UNREACHABLE() is now considered as if it was not actually a 
> source of unreachability for any statement below (which is the case only 
> in configurations where NDEBUG is undefined iirc). This was done mainly 
> to allow stubs for Rule 2.1 so that their return statement just after an 
> ASSERT_UNREACHABLE() is not seen as a problem, but given that the 
> configuration to obtain that is global it influences treatment for other 
> rules as well, and its addition is relatively recent compared to the 
> text written in rules.rst.

I understand the special treatment of ASSERT_UNREACHABLE(). Yet even if that
wasn't there, both the default: label and the break; statement would be
unreachable here.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 10:30:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 10:30:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078582.1439611 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulmHG-0005ai-QN; Tue, 12 Aug 2025 10:30:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078582.1439611; Tue, 12 Aug 2025 10:30:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulmHG-0005ab-M1; Tue, 12 Aug 2025 10:30:46 +0000
Received: by outflank-mailman (input) for mailman id 1078582;
 Tue, 12 Aug 2025 10:30:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BkKW=2Y=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ulmHE-0005aV-JB
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 10:30:44 +0000
Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com
 [2a00:1450:4864:20::431])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 66950107-7767-11f0-a327-13f23c93f187;
 Tue, 12 Aug 2025 12:30:43 +0200 (CEST)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-3b7920354f9so4338457f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 12 Aug 2025 03:30:43 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3b79c4534b3sm43735974f8f.47.2025.08.12.03.30.42
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 Aug 2025 03:30: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>
X-Inumbo-ID: 66950107-7767-11f0-a327-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1754994643; x=1755599443; 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=1PopHgio0SL/ehJnffqnNfzmhuJu29XYUqP8klHTTEE=;
        b=J+BTWI0PEBngC1RsIyGnaVHfERXU2v0MVuVrpHqGvzmhrQVmc3V5I3z01aTkb0pl+y
         uI4KBgBr1pH3jtWYYCF7sS5UR5M8PUNZ7sRuhSyTymTeLjVO8bxglwsYqkpz/D1Oa4ih
         iN41LN3WT7nUaDXEv29UI2ccTcRjw/pbE6DIE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754994643; x=1755599443;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=1PopHgio0SL/ehJnffqnNfzmhuJu29XYUqP8klHTTEE=;
        b=wx15pDAjeO8GgYogJtaLpk3PQJhz5q1EIueB86KWZKic1Z7ARt3GVhy44EcXsQJXos
         bknRKan6QlZqko8cEDh3lN3+G5g4v6v00TsELTkv/a+h3uiaFE6uD1Rq+LUSdtP0eREs
         qfTZg/aoMFLwhOxZL6Q7zH31W+2v36EK4wLIPbG2CwvW3fDhgJqfrPAgl7kgiVWElX07
         INnunsOiCm7LxayO9l5F3uZoXNgIYI10QBTYOjt4Rh3HgDy7Bc49EjTC8BpHQo/TZWGv
         aMI1LpAWb+yBqsSXfemhcI9n25hSLM4tnw6fG/14KlqxBOYxA34jTjSpfkc7+5M+a1J7
         Dn0w==
X-Gm-Message-State: AOJu0YyGkqnoUe+o3ZSNCNF/MVgD6tbrMkqiKn1KLXp9mGY5DK1o1SYq
	KDGYEtEgyqwTqP5A4bDWh73EV44GJIw/Pxtomb/ZwLWaVOGud7hNUxMxgBviVxk3rGjezzAnqnd
	z7hlBxe4=
X-Gm-Gg: ASbGnct5EVbKmd8qut3Fk6mT3xJU4DYWK2ObvcFNVofMJtmOLRnlV0R8Wyu71M8Ps4B
	+RZ8rZ++YFAWCBXY3N4u/puzV38yzfl9ICoNmr7hiAv6O7q0DyWTaEgxzO27qeRriky521c9dxf
	n4A9PAU7D4td714N5IVyE5PXBJXDRWqZefn36hZfLPpM5v/URZzRRMUtVhhyiJe9V4+xCXN5iaa
	WyypGzs79hCuPLR5nURxPWy2a9kdvwvieQltQOE1YwQm/Nk4i0HoyZrzA7YTZR3i2mSH+mM76/z
	SlwXUgVTShv/vd2LfCfufeiLltOPG5sgHZZmqeWg2KIoPCsaNni/C+rMX+SpcRuV0wNVukgCMAD
	Rskj5Qp33hUo8j5+U6PIbJiQ4AsFJA5uTGtFyRz43PcRCmQu0iFY5kEsrdGU145YyF+gjAEZcWo
	eb
X-Google-Smtp-Source: AGHT+IFZYLFhnWjkLEhqdqm1cKGJ0BIF8RO8Y7c/JApShDgAXthXvzTp4X2qnGw3nlGEvCBr/27d5w==
X-Received: by 2002:a05:6000:41fb:b0:3b9:14f2:7eed with SMTP id ffacd0b85a97d-3b914f2843bmr817216f8f.56.1754994642714;
        Tue, 12 Aug 2025 03:30:42 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH] x86/current: Annotate get_cpu_info() as attr_const
Date: Tue, 12 Aug 2025 11:30:40 +0100
Message-Id: <20250812103040.1765666-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

The result of this calculation will always be identical, even across context
switch in x86.  Tell the compiler.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

  add/remove: 0/0 grow/shrink: 0/15 up/down: 0/-300 (-300)
  Function                                     old     new   delta
  nsvm_vcpu_vmexit_event                       114     111      -3
  nsvm_vcpu_reset                              178     175      -3
  nestedsvm_vcpu_interrupt                     302     299      -3
  compat_memory_op.cold                        200     197      -3
  vcpu_block_enable_events                      30      26      -4
  nestedsvm_vmexit_defer                        90      86      -4
  dom0_construct                              8441    8435      -6
  svm_vmexit_do_clgi                           206     198      -8
  nsvm_vcpu_vmrun                             2530    2522      -8
  compat_multicall                            1194    1178     -16
  arch_do_domctl                              8621    8605     -16
  hvm_set_param.cold                            74      44     -30
  do_multicall                                1165    1133     -32
  ept_set_entry                               2023    1978     -45
  compat_memory_op                            7440    7321    -119
---
 xen/arch/x86/include/asm/current.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/x86/include/asm/current.h b/xen/arch/x86/include/asm/current.h
index a7c9473428b2..fd30422707d9 100644
--- a/xen/arch/x86/include/asm/current.h
+++ b/xen/arch/x86/include/asm/current.h
@@ -83,7 +83,7 @@ static inline struct cpu_info *get_cpu_info_from_stack(unsigned long sp)
     return (struct cpu_info *)((sp | (STACK_SIZE - 1)) + 1) - 1;
 }
 
-static inline struct cpu_info *get_cpu_info(void)
+static inline attr_const struct cpu_info *get_cpu_info(void)
 {
 #ifdef __clang__
     /* Clang complains that sp in the else case is not initialised. */
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Aug 12 10:31:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 10:31:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078585.1439620 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulmHa-0005y7-42; Tue, 12 Aug 2025 10:31:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078585.1439620; Tue, 12 Aug 2025 10:31: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 1ulmHa-0005xh-1A; Tue, 12 Aug 2025 10:31:06 +0000
Received: by outflank-mailman (input) for mailman id 1078585;
 Tue, 12 Aug 2025 10:31:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8jpx=2Y=arm.com=hari.limaye@srs-se1.protection.inumbo.net>)
 id 1ulmHY-0005aV-Lv
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 10:31:04 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 72028ead-7767-11f0-a327-13f23c93f187;
 Tue, 12 Aug 2025 12:31:03 +0200 (CEST)
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 0A8FC25E1;
 Tue, 12 Aug 2025 03:30:54 -0700 (PDT)
Received: from PWQ0QT7DJ1.cambridge.arm.com (PWQ0QT7DJ1.cambridge.arm.com
 [10.1.37.80])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 184493F738;
 Tue, 12 Aug 2025 03:31: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>
X-Inumbo-ID: 72028ead-7767-11f0-a327-13f23c93f187
Date: Tue, 12 Aug 2025 11:30:59 +0100
From: Hari Limaye <hari.limaye@arm.com>
To: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
Cc: xen-devel@lists.xenproject.org, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v1 1/2] arm/mpu: Enable is_xen_heap_page and co for ARM_32
Message-ID: <ka6nb4b7xnqdbumg5rtwudf2ybvsblw7lgs3lk3wz6czoji7k5@p37x2tochoph>
References: <20250807174529.595577-1-ayan.kumar.halder@amd.com>
 <20250807174529.595577-2-ayan.kumar.halder@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250807174529.595577-2-ayan.kumar.halder@amd.com>

Hi Ayan,

> On Thu, Aug 07, 2025 at 06:45:28PM +0000, Ayan Kumar Halder wrote:
> In case of ARM_32, all of the RAM will be covered by a permanent contiguous
> mapping (where VA == PA) and there will be a single heap. Thus, the memory
> allocated from Xen heap uses PGC_xen_heap.
> This is similar to the scenario described for
> "CONFIG_SEPARATE_XENHEAP=n W/ DIRECT MAP OF ALL RAM" in common/page_alloc.c.
> 
> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
> ---

This patch breaks the build for ARM_32, CONFIG_MMU targets due to
multiple definition of `is_xen_heap_page` and `is_xen_heap_mfn`. The
pre-existing definitions are located at xen/arch/arm/include/asm/mmu/mm.h:30:9

Cheers,
Hari


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 10:38:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 10:38:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078603.1439629 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulmOe-000779-Rb; Tue, 12 Aug 2025 10:38:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078603.1439629; Tue, 12 Aug 2025 10:38: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 1ulmOe-000772-OY; Tue, 12 Aug 2025 10:38:24 +0000
Received: by outflank-mailman (input) for mailman id 1078603;
 Tue, 12 Aug 2025 10:38:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Pr65=2Y=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ulmOd-00076w-7R
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 10:38:23 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 77c37344-7768-11f0-a327-13f23c93f187;
 Tue, 12 Aug 2025 12:38:21 +0200 (CEST)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-6180ce2197cso5777829a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 12 Aug 2025 03:38:21 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-6177dc4b209sm12763104a12.28.2025.08.12.03.38.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Aug 2025 03:38: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>
X-Inumbo-ID: 77c37344-7768-11f0-a327-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754995101; x=1755599901; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=sU/Y9KC5Ar6PrBckMrVYpj/8STrLN8Lg/BHdA+REi6M=;
        b=TRimmO3c5smuTyImtZclxPAUr+XS+oja145mW8PTE5resEL8xUg28FmiKe2mDe7gps
         xcI3w37sXtQjgDoywZ5OR5iVVNW0fK9wfpg21AFLNAEkXTLo4EiaSZPkF+C6X/u7YBQK
         uIri+zX8fJOwIKPmSth3IMy+UBoL6iB8Hdx7PiH8dReFIV+1qxlk4hK6pYp+oPwIf2sy
         Km+gPQ5N+fTaWDL7I8v6Vc0m4UKmIxt3ZHne6eQu155VSM6wK8kF20e/yfCZcllL3zZc
         xGOYD9VtH3NSCwfurn0S43VT9D8VS1pYylfAzSOwXgEfNwZ+d/mCcvM+9w3z0sHO/bP4
         I7NA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754995101; x=1755599901;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sU/Y9KC5Ar6PrBckMrVYpj/8STrLN8Lg/BHdA+REi6M=;
        b=XqAbmCocRv01u1waH419AbfJZvj6EY3wLyQjfb1vbawDVVOf9ODq7Q1UzHy6xQU36v
         vXB1O6j03UVrHjYAd05Mw5E1wzojKrBdZbnMHinjJSDvgC7YjAC3unDJhhU0/Q8dJ2H2
         sSMK1fHJrJXA08wTqPy0LLDcGdKKfRGkW6eX3qF5h37JiB9dgpm3kkUaqWeiufILuYnF
         3zZv2YLSkhrgctrXvg4tyb2NMSExI1bZ4mveBmyK8IsaEeYUuXQVJQc9l8fsyki+4Pqk
         RMd9NHHV6zUsAoiJfbeAMwHAcSmIjSPfJvwmxtBtQ3IZ1ov6KTk1FpI/unsRye/0zu/G
         rtzQ==
X-Forwarded-Encrypted: i=1; AJvYcCXSSY7oGyKTFITbrxPuZ33AunRGDKLFkmwQ19oUhBLdRBjDQSYYpkVH7XH6x5htUTa3O97lgGxokyM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxuwD53H5CtIi5LePw0Bafy2wNZILIgJuj9OTBcwLTgdFlGy61F
	wlGWffTawDqn3aK4tnJ0ythGcIYglkjafcG910mme4wNIqm4ODaU/Sv8LEPWp4PYwA==
X-Gm-Gg: ASbGncvPzkQOW/cn6hlythAnEMpWgzaneNfFvOtEQo8eJs640ofg597FeEoEZLjmuP1
	3FjZtjlQKWEGzlZKALVkVdaUm73PgaTgTt/aBpuHa4nMfLXnUOTDBGFGkf2KpwdKPzyX2wlO5FI
	HrNOHx1mE1TI7KYcglB+kYmtjMEnATeD+RbT9u+Ph9EMj+JgdjX8y2zve0++cKpdHMPb6iLXD0D
	1VCkXqs3NPXrTrYb2THP2vIxmqEK+nDJ1kA9hltsAngH9x+iJfxDdbBbAhU4p6/D6l3ZMlqYqXJ
	ruNFZKZ/bkwpjPzbSlrxv4ZCvevx0hy/0z8eLH/kxT69y/5z/LY6ltLLh3cOkxDwoDh5wB0ddaH
	azcBhjvMo4TSA7Bar7YWraUIMk0u/Z6ANYehsqgQ98qMHPXKxP29/5Gp5YU2T8r3YmtZYtIPcFc
	cL2kvNk/w=
X-Google-Smtp-Source: AGHT+IEN+Y9cdm8MAlhBsDoi1c4aep+CMJBRxFw7utZii7Klmi5Jm6we45T8/kJc9Qp4JVEpkhbPCw==
X-Received: by 2002:aa7:c68e:0:b0:617:9797:5e8a with SMTP id 4fb4d7f45d1cf-6184eca47b3mr1729056a12.33.1754995101261;
        Tue, 12 Aug 2025 03:38:21 -0700 (PDT)
Message-ID: <40eb359e-9c67-44c0-b19f-56d0ae49e9b8@suse.com>
Date: Tue, 12 Aug 2025 12:38:19 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/current: Annotate get_cpu_info() as attr_const
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250812103040.1765666-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: <20250812103040.1765666-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.08.2025 12:30, Andrew Cooper wrote:
> The result of this calculation will always be identical, even across context
> switch in x86.  Tell the compiler.

Or if it ended up different (e.g. due to stack pointer corruption) we're
hosed anyway.

> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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



From xen-devel-bounces@lists.xenproject.org Tue Aug 12 10:50:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 10:50:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078618.1439639 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulmZk-0000gG-QS; Tue, 12 Aug 2025 10:49:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078618.1439639; Tue, 12 Aug 2025 10:49:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulmZk-0000g9-N5; Tue, 12 Aug 2025 10:49:52 +0000
Received: by outflank-mailman (input) for mailman id 1078618;
 Tue, 12 Aug 2025 10:49:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8jpx=2Y=arm.com=hari.limaye@srs-se1.protection.inumbo.net>)
 id 1ulmZj-0000g3-9K
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 10:49:51 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 11d5e012-776a-11f0-a327-13f23c93f187;
 Tue, 12 Aug 2025 12:49:50 +0200 (CEST)
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 347B325E1;
 Tue, 12 Aug 2025 03:49:41 -0700 (PDT)
Received: from PWQ0QT7DJ1.cambridge.arm.com (PWQ0QT7DJ1.cambridge.arm.com
 [10.1.37.80])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id F0D603F738;
 Tue, 12 Aug 2025 03:49: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>
X-Inumbo-ID: 11d5e012-776a-11f0-a327-13f23c93f187
Date: Tue, 12 Aug 2025 11:49:46 +0100
From: Hari Limaye <hari.limaye@arm.com>
To: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
Cc: xen-devel@lists.xenproject.org, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v1 2/2] arm/mpu: Disable map_domain_page for MPU
Message-ID: <jffvunpm5spistkt5b3y6rqyq2i7m7xcn3j4nz7bbm3sajvp4q@fbv6f2746bvl>
References: <20250807174529.595577-1-ayan.kumar.halder@amd.com>
 <20250807174529.595577-3-ayan.kumar.halder@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250807174529.595577-3-ayan.kumar.halder@amd.com>

Hi Ayan,

> On Thu, Aug 07, 2025 at 06:45:29PM +0000, Ayan Kumar Halder wrote:
> There is no domheap for ARM_32. All of the RAM is mapped and VA == PA.
> 
> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
> ---
>  xen/arch/arm/Kconfig           |  2 +-
>  xen/arch/arm/mpu/domain-page.c | 45 ----------------------------------
>  2 files changed, 1 insertion(+), 46 deletions(-)
>  delete mode 100644 xen/arch/arm/mpu/domain-page.c
> 
> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
> index a0c8160474..5355534f3d 100644
> --- a/xen/arch/arm/Kconfig

This patch is breaking ARM_32, MPU builds for me. I think this also needs:

```
diff --git a/xen/arch/arm/mpu/Makefile b/xen/arch/arm/mpu/Makefile
index 50f8fe4326..4963c8b550 100644
--- a/xen/arch/arm/mpu/Makefile
+++ b/xen/arch/arm/mpu/Makefile
@@ -1,6 +1,5 @@
 obj-$(CONFIG_ARM_32) += arm32/
 obj-$(CONFIG_ARM_64) += arm64/
-obj-$(CONFIG_ARM_32) += domain-page.o
 obj-y += mm.o
 obj-y += p2m.o
 obj-y += setup.init.o
 ```

Cheers,
Hari


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 11:01:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 11:01:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078628.1439650 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulml8-0003fl-Or; Tue, 12 Aug 2025 11:01:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078628.1439650; Tue, 12 Aug 2025 11:01: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 1ulml8-0003fe-ML; Tue, 12 Aug 2025 11:01:38 +0000
Received: by outflank-mailman (input) for mailman id 1078628;
 Tue, 12 Aug 2025 11:01:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UlY3=2Y=arm.com=mark.rutland@srs-se1.protection.inumbo.net>)
 id 1ulml6-0003fY-SD
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 11:01:36 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id b61a3e4b-776b-11f0-a327-13f23c93f187;
 Tue, 12 Aug 2025 13:01:35 +0200 (CEST)
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 488E525E1;
 Tue, 12 Aug 2025 04:01:26 -0700 (PDT)
Received: from J2N7QTR9R3 (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id A6A743F63F;
 Tue, 12 Aug 2025 04:01: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>
X-Inumbo-ID: b61a3e4b-776b-11f0-a327-13f23c93f187
Date: Tue, 12 Aug 2025 12:01:27 +0100
From: Mark Rutland <mark.rutland@arm.com>
To: Jinjie Ruan <ruanjinjie@huawei.com>
Cc: catalin.marinas@arm.com, will@kernel.org, oleg@redhat.com,
	sstabellini@kernel.org, puranjay@kernel.org, broonie@kernel.org,
	mbenes@suse.cz, ryan.roberts@arm.com, akpm@linux-foundation.org,
	chenl311@chinatelecom.cn, ada.coupriediaz@arm.com,
	anshuman.khandual@arm.com, kristina.martsenko@arm.com,
	liaochang1@huawei.com, ardb@kernel.org, leitao@debian.org,
	linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH -next v7 2/7] arm64: entry: Refactor the entry and exit
 for exceptions from EL1
Message-ID: <aJsfB3DJCduz6lzx@J2N7QTR9R3>
References: <20250729015456.3411143-1-ruanjinjie@huawei.com>
 <20250729015456.3411143-3-ruanjinjie@huawei.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250729015456.3411143-3-ruanjinjie@huawei.com>

Hi Jinjie,

On Tue, Jul 29, 2025 at 09:54:51AM +0800, Jinjie Ruan wrote:
> The generic entry code uses irqentry_state_t to track lockdep and RCU
> state across exception entry and return. For historical reasons, arm64
> embeds similar fields within its pt_regs structure.
> 
> In preparation for moving arm64 over to the generic entry code, pull
> these fields out of arm64's pt_regs, and use a separate structure,
> matching the style of the generic entry code.
> 
> No functional changes.
> 
> Suggested-by: Mark Rutland <mark.rutland@arm.com>
> Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>

One minor formatting nit below, but with aside from that this looks
great, and with that fixed up:

Acked-by: Mark Rutland <mark.rutland@arm.com>

[...]

> @@ -475,73 +497,81 @@ UNHANDLED(el1t, 64, error)
>  static void noinstr el1_abort(struct pt_regs *regs, unsigned long esr)
>  {
>  	unsigned long far = read_sysreg(far_el1);
> +	arm64_irqentry_state_t state;
>  
> -	enter_from_kernel_mode(regs);
> +	state = enter_from_kernel_mode(regs);
>  	local_daif_inherit(regs);
>  	do_mem_abort(far, esr, regs);
>  	local_daif_mask();
> -	exit_to_kernel_mode(regs);
> +	exit_to_kernel_mode(regs, state);
>  }
>  
>  static void noinstr el1_pc(struct pt_regs *regs, unsigned long esr)
>  {
>  	unsigned long far = read_sysreg(far_el1);
> +	arm64_irqentry_state_t state;
>  
> -	enter_from_kernel_mode(regs);
> +	state = enter_from_kernel_mode(regs);
>  	local_daif_inherit(regs);
>  	do_sp_pc_abort(far, esr, regs);
>  	local_daif_mask();
> -	exit_to_kernel_mode(regs);
> +	exit_to_kernel_mode(regs, state);
>  }
>  
>  static void noinstr el1_undef(struct pt_regs *regs, unsigned long esr)
>  {
> -	enter_from_kernel_mode(regs);
> +	arm64_irqentry_state_t state = enter_from_kernel_mode(regs);
> +
>  	local_daif_inherit(regs);
>  	do_el1_undef(regs, esr);
>  	local_daif_mask();
> -	exit_to_kernel_mode(regs);
> +	exit_to_kernel_mode(regs, state);
>  }

I'd prefer if we consistently defined 'state' on a separate line, before
the main block consisting of:

	state = enter_from_kernel_mode(regs);
	local_daif_inherit(regs);
	do_el1_undef(regs, esr);
	local_daif_mask();
	exit_to_kernel_mode(regs, state);

... since that way the enter/exit functions clearly enclose the whole
block, which isn't as clear when there's a line gap between
enter_from_kernel_mode() and the rest of the block.

That would also be more consistent with what we do for functions that
need to read other registers (e.g. el1_abort() and el1_pc() above).

If that could be applied consistently here and below, that'd be great.

Mark.

>  static void noinstr el1_bti(struct pt_regs *regs, unsigned long esr)
>  {
> -	enter_from_kernel_mode(regs);
> +	arm64_irqentry_state_t state = enter_from_kernel_mode(regs);
> +
>  	local_daif_inherit(regs);
>  	do_el1_bti(regs, esr);
>  	local_daif_mask();
> -	exit_to_kernel_mode(regs);
> +	exit_to_kernel_mode(regs, state);
>  }
>  
>  static void noinstr el1_gcs(struct pt_regs *regs, unsigned long esr)
>  {
> -	enter_from_kernel_mode(regs);
> +	arm64_irqentry_state_t state = enter_from_kernel_mode(regs);
> +
>  	local_daif_inherit(regs);
>  	do_el1_gcs(regs, esr);
>  	local_daif_mask();
> -	exit_to_kernel_mode(regs);
> +	exit_to_kernel_mode(regs, state);
>  }
>  
>  static void noinstr el1_mops(struct pt_regs *regs, unsigned long esr)
>  {
> -	enter_from_kernel_mode(regs);
> +	arm64_irqentry_state_t state = enter_from_kernel_mode(regs);
> +
>  	local_daif_inherit(regs);
>  	do_el1_mops(regs, esr);
>  	local_daif_mask();
> -	exit_to_kernel_mode(regs);
> +	exit_to_kernel_mode(regs, state);
>  }
>  
>  static void noinstr el1_breakpt(struct pt_regs *regs, unsigned long esr)
>  {
> -	arm64_enter_el1_dbg(regs);
> +	arm64_irqentry_state_t state = arm64_enter_el1_dbg(regs);
> +
>  	debug_exception_enter(regs);
>  	do_breakpoint(esr, regs);
>  	debug_exception_exit(regs);
> -	arm64_exit_el1_dbg(regs);
> +	arm64_exit_el1_dbg(regs, state);
>  }
>  
>  static void noinstr el1_softstp(struct pt_regs *regs, unsigned long esr)
>  {
> -	arm64_enter_el1_dbg(regs);
> +	arm64_irqentry_state_t state = arm64_enter_el1_dbg(regs);
> +
>  	if (!cortex_a76_erratum_1463225_debug_handler(regs)) {
>  		debug_exception_enter(regs);
>  		/*
> @@ -554,37 +584,40 @@ static void noinstr el1_softstp(struct pt_regs *regs, unsigned long esr)
>  			do_el1_softstep(esr, regs);
>  		debug_exception_exit(regs);
>  	}
> -	arm64_exit_el1_dbg(regs);
> +	arm64_exit_el1_dbg(regs, state);
>  }
>  
>  static void noinstr el1_watchpt(struct pt_regs *regs, unsigned long esr)
>  {
>  	/* Watchpoints are the only debug exception to write FAR_EL1 */
>  	unsigned long far = read_sysreg(far_el1);
> +	arm64_irqentry_state_t state;
>  
> -	arm64_enter_el1_dbg(regs);
> +	state = arm64_enter_el1_dbg(regs);
>  	debug_exception_enter(regs);
>  	do_watchpoint(far, esr, regs);
>  	debug_exception_exit(regs);
> -	arm64_exit_el1_dbg(regs);
> +	arm64_exit_el1_dbg(regs, state);
>  }
>  
>  static void noinstr el1_brk64(struct pt_regs *regs, unsigned long esr)
>  {
> -	arm64_enter_el1_dbg(regs);
> +	arm64_irqentry_state_t state = arm64_enter_el1_dbg(regs);
> +
>  	debug_exception_enter(regs);
>  	do_el1_brk64(esr, regs);
>  	debug_exception_exit(regs);
> -	arm64_exit_el1_dbg(regs);
> +	arm64_exit_el1_dbg(regs, state);
>  }
>  
>  static void noinstr el1_fpac(struct pt_regs *regs, unsigned long esr)
>  {
> -	enter_from_kernel_mode(regs);
> +	arm64_irqentry_state_t state = enter_from_kernel_mode(regs);
> +
>  	local_daif_inherit(regs);
>  	do_el1_fpac(regs, esr);
>  	local_daif_mask();
> -	exit_to_kernel_mode(regs);
> +	exit_to_kernel_mode(regs, state);
>  }
>  
>  asmlinkage void noinstr el1h_64_sync_handler(struct pt_regs *regs)
> @@ -639,15 +672,16 @@ asmlinkage void noinstr el1h_64_sync_handler(struct pt_regs *regs)
>  static __always_inline void __el1_pnmi(struct pt_regs *regs,
>  				       void (*handler)(struct pt_regs *))
>  {
> -	arm64_enter_nmi(regs);
> +	arm64_irqentry_state_t state = arm64_enter_nmi(regs);
> +
>  	do_interrupt_handler(regs, handler);
> -	arm64_exit_nmi(regs);
> +	arm64_exit_nmi(regs, state);
>  }
>  
>  static __always_inline void __el1_irq(struct pt_regs *regs,
>  				      void (*handler)(struct pt_regs *))
>  {
> -	enter_from_kernel_mode(regs);
> +	arm64_irqentry_state_t state = enter_from_kernel_mode(regs);
>  
>  	irq_enter_rcu();
>  	do_interrupt_handler(regs, handler);
> @@ -655,7 +689,7 @@ static __always_inline void __el1_irq(struct pt_regs *regs,
>  
>  	arm64_preempt_schedule_irq();
>  
> -	exit_to_kernel_mode(regs);
> +	exit_to_kernel_mode(regs, state);
>  }
>  static void noinstr el1_interrupt(struct pt_regs *regs,
>  				  void (*handler)(struct pt_regs *))
> @@ -681,11 +715,12 @@ asmlinkage void noinstr el1h_64_fiq_handler(struct pt_regs *regs)
>  asmlinkage void noinstr el1h_64_error_handler(struct pt_regs *regs)
>  {
>  	unsigned long esr = read_sysreg(esr_el1);
> +	arm64_irqentry_state_t state;
>  
>  	local_daif_restore(DAIF_ERRCTX);
> -	arm64_enter_nmi(regs);
> +	state = arm64_enter_nmi(regs);
>  	do_serror(regs, esr);
> -	arm64_exit_nmi(regs);
> +	arm64_exit_nmi(regs, state);
>  }
>  
>  static void noinstr el0_da(struct pt_regs *regs, unsigned long esr)
> @@ -997,12 +1032,13 @@ asmlinkage void noinstr el0t_64_fiq_handler(struct pt_regs *regs)
>  static void noinstr __el0_error_handler_common(struct pt_regs *regs)
>  {
>  	unsigned long esr = read_sysreg(esr_el1);
> +	arm64_irqentry_state_t state;
>  
>  	enter_from_user_mode(regs);
>  	local_daif_restore(DAIF_ERRCTX);
> -	arm64_enter_nmi(regs);
> +	state = arm64_enter_nmi(regs);
>  	do_serror(regs, esr);
> -	arm64_exit_nmi(regs);
> +	arm64_exit_nmi(regs, state);
>  	local_daif_restore(DAIF_PROCCTX);
>  	exit_to_user_mode(regs);
>  }
> @@ -1122,6 +1158,7 @@ asmlinkage void noinstr __noreturn handle_bad_stack(struct pt_regs *regs)
>  asmlinkage noinstr unsigned long
>  __sdei_handler(struct pt_regs *regs, struct sdei_registered_event *arg)
>  {
> +	arm64_irqentry_state_t state;
>  	unsigned long ret;
>  
>  	/*
> @@ -1146,9 +1183,9 @@ __sdei_handler(struct pt_regs *regs, struct sdei_registered_event *arg)
>  	else if (cpu_has_pan())
>  		set_pstate_pan(0);
>  
> -	arm64_enter_nmi(regs);
> +	state = arm64_enter_nmi(regs);
>  	ret = do_sdei_event(regs, arg);
> -	arm64_exit_nmi(regs);
> +	arm64_exit_nmi(regs, state);
>  
>  	return ret;
>  }
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 11:06:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 11:06:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078637.1439660 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulmpX-0004DU-8n; Tue, 12 Aug 2025 11:06:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078637.1439660; Tue, 12 Aug 2025 11:06:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulmpX-0004DN-62; Tue, 12 Aug 2025 11:06:11 +0000
Received: by outflank-mailman (input) for mailman id 1078637;
 Tue, 12 Aug 2025 11:06:09 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1ulmpV-0004DH-KE
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 11:06:09 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ulmpO-001g6h-33;
 Tue, 12 Aug 2025 11:06:03 +0000
Received: from [2a02:8012:3a1:0:e0a7:2160:d657:5746]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ulmpO-001BqX-2Q;
 Tue, 12 Aug 2025 11: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=JYulpGd8iag5WbECfd6gfoDFyS3bsi1OnfcEwS3z3iU=; b=OqOO339+OM+GaJjTAj0yhIbUvB
	BEAVfEOjvM1nM4S9+hTIMZNI9/FpKsRHKjlsilRm9p09pzH3sJTzQHiin50ZoPKJg8LMyPP8HilUB
	s1v8UavBbXymMWEcQ2QOM7pvMcP9IxgwZzqlQwlky3xqr68zEa/eCia3qiAn7IYJ2cqw=;
Message-ID: <4874f397-b9e6-4740-a3b8-f07b7aa89246@xen.org>
Date: Tue, 12 Aug 2025 12:05:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] Arm: drop assertion from page_is_ram_type()
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <804094ae-bb76-4165-9e07-46b775b4b46e@suse.com>
 <86faa2fa-9f23-49a9-a909-a3dd3d5a938f@xen.org>
 <ece155ab-d247-41cb-b3a1-ae4233423cef@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <ece155ab-d247-41cb-b3a1-ae4233423cef@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Jan,

On 12/08/2025 07:29, Jan Beulich wrote:
> On 11.08.2025 19:24, Julien Grall wrote:
>> On 11/08/2025 14:01, Jan Beulich wrote:
>>> Its uses in offline_page() and query_page_offline() make it reachable on
>>> Arm, as long as XEN_SYSCTL_page_offline_op doesn't have any Arm-specific
>>> code added. It being reachable was even mentioned in the commit
>>> introducing it, claiming it "clearly shouldn't be called on ARM just
>>> yet".
>>
>> So I agree that the function can be reached. But then I don't think the
>> function can simply return 0.
>>
>> The name is too generic enough that someone may end up to use it in
>> common code and there will be no signal to the user that the function
>> will not properly indicate a RAM page on Arm.
>>
>> I can think of two possible approaches:
>>
>> 1/ Implement properly page_is_ram_type(). We don't have an e820, but we
>> could mimick it using the memory banks we stored.
>> 2/ Rename page_is_ram_type() to page_offlinable() (or similar) so it is
>> clear that the common use is for offlining.
>>
>> The latter might be the simplest.
> 
> I consider page_offlinable() potentially ambiguous: When you offline a PCI
> device, you offline its MMIO as well, for example. Or, much like RAM, some
> page in, say, a video device's framebuffer may have gone bad. One might
> think that such would then also be covered by that function. So minimally
> page_offlinable_ram() or page_is_offlinable_ram(), I think. That would
> then have the benefit of allowing an avenue towards x86 also making its
> checking more precise, as certain RAM ranges can't possibly be offlined.
> If that's fine with you, I can enlarge the patch accordingly.

I would be fine with either name you proposed.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Tue Aug 12 11:06:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 11:06:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078642.1439670 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulmpw-0004gC-Gx; Tue, 12 Aug 2025 11:06:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078642.1439670; Tue, 12 Aug 2025 11:06: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 1ulmpw-0004g3-Dq; Tue, 12 Aug 2025 11:06:36 +0000
Received: by outflank-mailman (input) for mailman id 1078642;
 Tue, 12 Aug 2025 11:06:35 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1ulmpv-0004fv-S6
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 11:06:35 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ulmpv-001g7P-0n;
 Tue, 12 Aug 2025 11:06:35 +0000
Received: from [2a02:8012:3a1:0:e0a7:2160:d657:5746]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ulmpv-001Bs4-0Q;
 Tue, 12 Aug 2025 11:06: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:
	References:Cc:To:From:Subject:MIME-Version:Date:Message-ID;
	bh=RBTUO/OkAIo2gQdxV62ocYEWlWxCmeYDg5UkVuKd55w=; b=1hs00RvC158eKtRCesKTpbtqL3
	tT67JhXI/DbdNfldVnfSHZB3HYSBEt9KB66M99eIO/k3JAN3bBipO3nidBNQTqaZKo4Z8A26rmfxk
	dsMc/5UUO506prpsyDU0Txpujsms9/NAAKf5+U78814+U8AhT1PXjezKnlbSttBjxslc=;
Message-ID: <3ce4ce51-1d6b-4f0a-b5f0-8f2b3c29bb52@xen.org>
Date: Tue, 12 Aug 2025 12:06:32 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 1/2] xen/arm: fix arm_iommu_map_page after f9f6b22abf1d
Content-Language: en-GB
From: Julien Grall <julien@xen.org>
To: Stewart Hildebrand <stewart.hildebrand@amd.com>,
 xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <stefano.stabellini@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20250725140130.4008-1-stewart.hildebrand@amd.com>
 <5fab90b6-7cae-45d0-bb8e-b1ffa0390b6f@xen.org>
 <7a3a08f4-c08e-4490-a033-53e81b261181@amd.com>
 <d405fdbf-c6db-4fdb-9d63-f31d7a431e19@xen.org>
In-Reply-To: <d405fdbf-c6db-4fdb-9d63-f31d7a431e19@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit



On 11/08/2025 18:32, Julien Grall wrote:
> On 06/08/2025 14:58, Stewart Hildebrand wrote:
>> On 7/26/25 05:23, Julien Grall wrote:
>>> Hi,
>>>
>>> On 25/07/2025 15:01, Stewart Hildebrand wrote:
>>>> From: Stefano Stabellini <stefano.stabellini@amd.com>
>>>>
>>>> Up until f9f6b22abf1d "xen/arm: Map ITS doorbell register to IOMMU page
>>>> tables" the only caller of iommu_map on ARM was grant_table.c which has
>>>> a specific usage model and restrictions as described by the in-code
>>>> comment in arm_iommu_map_page.
>>>>
>>>> f9f6b22abf1d introduced a second caller to iommu_map on ARM:
>>>> vgic_v3_its_init_virtual. This specific statement in the
>>>> f9f6b22abf1d commit message is partially wrong:
>>>>
>>>> "Note that the 1:1 check in arm_iommu_map_page remains for now, as
>>>> virtual ITSes are currently only created for hwdom where the doorbell
>>>> mapping is always 1:1."
>>>>
>>>> Leading to crashes any time the hardware domain is not direct-mapped
>>>> (e.g. cache coloring and non-Dom0 hardware domain):
>>>>
>>>> (XEN) Xen BUG at drivers/passthrough/arm/iommu_helpers.c:47
>>>> [...]
>>>> (XEN) Xen call trace:
>>>> (XEN)Â Â Â  [<00000a000024c758>] arm_iommu_map_page+0x80/0x90 (PC)
>>>> (XEN)Â Â Â  [<00000a000024c750>] arm_iommu_map_page+0x78/0x90 (LR)
>>>> (XEN)Â Â Â  [<00000a0000250884>] iommu_map+0xcc/0x29c
>>>> (XEN)Â Â Â  [<00000a0000288024>] vgic_v3_its_init_domain+0x18c/0x1e8
>>>> (XEN)Â Â Â  [<00000a0000285228>] vgic-v3.c#vgic_v3_domain_init+0x168/0x21c
>>>> (XEN)Â Â Â  [<00000a0000281dcc>] domain_vgic_init+0x14c/0x210
>>>> (XEN)Â Â Â  [<00000a00002705a4>] arch_domain_create+0x150/0x1f0
>>>> (XEN)Â Â Â  [<00000a00002055e8>] domain_create+0x47c/0x6c0
>>>> (XEN)Â Â Â  [<00000a00002cf090>] create_domUs+0x7f8/0x8cc
>>>> (XEN)Â Â Â  [<00000a00002eb588>] start_xen+0x8f4/0x998
>>>> (XEN)Â Â Â  [<00000a000020018c>] head.o#primary_switched+0x4/0x10
>>>>
>>>> Specifically, non-1:1 hardware domain exists with cache coloring
>>>> enabled. For that, is_domain_direct_mapped(d) is false but
>>>> domain_use_host_layout(d) is true.
>>>>
>>>> Change the is_domain_direct_mapped(d) checks in arm_iommu_map_page and
>>>> arm_iommu_unmap_page into domain_use_host_layout(d) checks.
>>>>
>>>> Drop stale in-code comment specific to grant table mappings.
>>>>
>>>> Fixes: f9f6b22abf1d ("xen/arm: Map ITS doorbell register to IOMMU 
>>>> page tables")
>>>> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
>>>> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
>>>
>>> Reviewed-by: Julien Grall <jgrall@amazon.com>
>>
>> Thanks for the review! Is this ready to be committed?
> 
> Yes. Sorry, this fell through the cracks. I have queue the patch for 
> testing and committing.

This is now merged.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Tue Aug 12 11:07:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 11:07:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078655.1439680 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulmqT-0005ET-Rq; Tue, 12 Aug 2025 11:07:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078655.1439680; Tue, 12 Aug 2025 11:07: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 1ulmqT-0005EM-P1; Tue, 12 Aug 2025 11:07:09 +0000
Received: by outflank-mailman (input) for mailman id 1078655;
 Tue, 12 Aug 2025 11:07:09 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1ulmqT-0005EC-2e
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 11:07:09 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ulmqS-001g85-0Q;
 Tue, 12 Aug 2025 11:07:08 +0000
Received: from [2a02:8012:3a1:0:e0a7:2160:d657:5746]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ulmqS-001Bso-09;
 Tue, 12 Aug 2025 11:07: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=ThwmPyeI/sHsqriKaK1FnPJ7a54XDDCRuHBzABdRgD0=; b=zmUsPHCvsSazQenTDc30PvikvO
	NnKz51sIaCY/92Eexfr8ZwhV6wKFFp/WO7786TD6oQbIITz4rdnl0I/4wajmvjGeH+5DQpTT+mjJO
	yGxh9bHSiJvSs0oITgMEFxuHFWOG+TDIxTYlpWBTdxTRPh879Mwq2fxwudQlNord7L/I=;
Message-ID: <8e509e3b-4fc0-4615-bd72-f9af20162a0f@xen.org>
Date: Tue, 12 Aug 2025 12:07:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8 0/6] FF-A VM to VM support
Content-Language: en-GB
To: Bertrand Marquis <bertrand.marquis@arm.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>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Jens Wiklander <jens.wiklander@linaro.org>, Julien Grall <jgrall@amazon.com>
References: <cover.1754899329.git.bertrand.marquis@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <cover.1754899329.git.bertrand.marquis@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Bertrand,

On 11/08/2025 14:34, Bertrand Marquis wrote:
> This patch serie adds support to use FF-A between VM for communications
> using indirect messages.
> 
> It adds a Kconfig parameter to enable this feature and marks it as
> experimental as for now there is no system to restrict communication
> rights between VM using this system.
> 
> It also adds support to use VM to VM communications using FF-A even if
> there is no firmware support for FF-A. As this feature enables FF-A
> support in all cases, we also introduce a new command line parameter to
> allow the user to force which tee is to be used between FF-A and Optee
> to have a solution to enable optee support if FF-A VM to VM is enabled.
> 
> Changes since v7:
> - typo fixes
> - use LIST_HEAD and DEFINE_RWLOCK
> - add Jens R-b and Julien A-b
> 
> Changes since v6:
> - use a rwlock to protect access to the chain list of context
> - rebase on top of staging
> - add some R-b/A-b from Jens and Julien
> 
> Changes since v5:
> - coding style fixes
> - rework version negociation to use the context lock
> - split probe into fw and vm to vm probe to make code clearer
> - add some R-b from Jens
> 
> Changes since v4:
> - fix typos and optimize command line parameter
> - split VM to VM support in 2 patches to ease review
> - organize ffa contexts in a chain list to be able to build the partinfo
>    result without taking the global domain lock
> - introduce a maximum number of SPs to prevent holding the CPU for too
>    long during partinfo call
> - use an atomic to store the number of FF-A VMs
> - prevent potential overflows in indirect message handling
> - fix copy bug in indirect message introduced in v4
> 
> Changes since v3:
> - reintroduce firmare v1.0 support in partinfo
> - fix a possible TOC/TOU issue in indirect message handling
> - typos and small fixes
> 
> Changes since v2:
> - Rework partition_info_get implementation
> - Taint Xen and display a message when VM to VM is enabled
> - Various fixes explained in each patch
> 
> Changes since v1 (rfc):
> - add a tee command line parameter
> - use IS_ENABLED instead of ifdef when possible
> - rebase on latest staging
> 
> 
> Bertrand Marquis (6):
>    xen/arm: Create tee command line parameter
>    xen/arm: ffa: Rework partinfo_get implementation
>    xen/arm: ffa: Introduce VM to VM support
>    xen/arm: ffa: Add buffer full notification support
>    xen/arm: ffa: Add indirect message between VM
>    xen/arm: ffa: Enable VM to VM without firmware

I merged the series.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Tue Aug 12 11:07:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 11:07:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078660.1439690 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulmqp-0005hl-2s; Tue, 12 Aug 2025 11:07:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078660.1439690; Tue, 12 Aug 2025 11:07: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 1ulmqo-0005he-Vg; Tue, 12 Aug 2025 11:07:30 +0000
Received: by outflank-mailman (input) for mailman id 1078660;
 Tue, 12 Aug 2025 11:07:29 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1ulmqn-0005hD-Gz
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 11:07:29 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ulmqm-001g8Z-2h;
 Tue, 12 Aug 2025 11:07:29 +0000
Received: from [2a02:8012:3a1:0:e0a7:2160:d657:5746]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ulmqm-001Bsw-2u;
 Tue, 12 Aug 2025 11:07: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:
	References:Cc:To:From:Subject:MIME-Version:Date:Message-ID;
	bh=P3Te2DYmwV3kk/YkaQbhpOAj1pTrKc6f7+pCQ77RCsU=; b=TRBGKhBzhnbw6zjuwsYmDrdcz2
	oRL0ZYyMa7agWelaEuGHHlMGzFOsOxAkcHFYERqhSj7jgSJDDl0G5+pTHIF+AfMTlXdjUJ/c6K18W
	XGq+PR1mnEdh/o6YwfJ+OBwQxqMudait4IFcXCCVmLY3PVbYWC0HiTdo46DMqO8RqebU=;
Message-ID: <7ff1a083-d9f2-46c3-b347-d26e11d2310f@xen.org>
Date: Tue, 12 Aug 2025 12:07:26 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/arm: irq: add missing spin_unlock() in
 init_local_irq_data() error path
Content-Language: en-GB
From: Julien Grall <julien@xen.org>
To: Mykola Kvach <xakep.amatop@gmail.com>, xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Denis Mukhin <dmukhin@ford.com>
References: <f983bb7c3c9f0912da7e7f2fc22384ce1081a7a3.1754901835.git.mykola_kvach@epam.com>
 <1a51ba8c-93c5-4cfb-b76e-26e318c0b22d@xen.org>
In-Reply-To: <1a51ba8c-93c5-4cfb-b76e-26e318c0b22d@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 11/08/2025 18:28, Julien Grall wrote:
> Hi Mykola,
> 
> On 11/08/2025 09:45, Mykola Kvach wrote:
>> From: Mykola Kvach <mykola_kvach@epam.com>
>>
>> If init_one_irq_desc() fails, init_local_irq_data() returns without
>> releasing local_irqs_type_lock, leading to a possible deadlock.
>>
>> Release the lock before returning to ensure proper cleanup.
>>
>> Fixes: 2bb32b809250 ("xen/irq: Propagate the error from 
>> init_one_desc_irq() in init_*_irq_data()")
>> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
>> Reviewed-by: Denis Mukhin <dmukhin@ford.com>
> 
> Acked-by: Julien Grall <jgrall@amazon.com>
> 
> I will commit the patch soon.

This is now merged.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Tue Aug 12 11:08:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 11:08:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078666.1439700 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulmrM-0006GL-9S; Tue, 12 Aug 2025 11:08:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078666.1439700; Tue, 12 Aug 2025 11:08: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 1ulmrM-0006GE-6f; Tue, 12 Aug 2025 11:08:04 +0000
Received: by outflank-mailman (input) for mailman id 1078666;
 Tue, 12 Aug 2025 11:08:02 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1ulmrK-0006G0-Kf
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 11:08:02 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ulmrJ-001gBT-2D;
 Tue, 12 Aug 2025 11:08:01 +0000
Received: from [2a02:8012:3a1:0:e0a7:2160:d657:5746]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ulmrJ-001Bu8-2D;
 Tue, 12 Aug 2025 11:08: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=hejEGSHR1+hTvr/Wt3l9H/thl/ofYGhNSrM/zAR1BsE=; b=YbGk0K/jjjhHqrMuDcC4AAhEp2
	94SnovzCdRI8oAW1WZaBSOXrVE65RFhDPr4kCY2NkKtXc4JvwC0DGmimAxtyVkWhkL83gJksvuu2W
	UYTV8Pb3dHRfSGkNseDq/esz0p7YsqCK+FQXy8xY5SQYJxQBCfMeeOk0UBVtfmtGzknc=;
Message-ID: <6e243433-3d26-4727-95d1-a532da8a49d3@xen.org>
Date: Tue, 12 Aug 2025 12:07:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] xen/dom0less: arm: fix hwdom 1:1 low memory allocation
Content-Language: en-GB
To: Grygorii Strashko <grygorii_strashko@epam.com>,
 "xen-devel@lists.xenproject.org" <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>,
 =?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>,
 Denis Mukhin <dmukhin@ford.com>, Jason Andryuk <jason.andryuk@amd.com>,
 Julien Grall <jgrall@amazon.com>
References: <20250807100323.513384-1-grygorii_strashko@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20250807100323.513384-1-grygorii_strashko@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Grygorii,

On 07/08/2025 11:03, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> Call stack for dom0less hwdom case (1:1) memory:
> create_domUs
> |-construct_domU
>    |-construct_hwdom()
>      |-allocate_memory_11()
> 
> And allocate_memory_11() uses "dom0_mem" as:
> min_low_order =
>    get_order_from_bytes(min_t(paddr_t, dom0_mem, MB(128)));
> 
> In case of dom0less boot the "dom0_mem" is not used and defaulted to 0,
> which causes min_low_order to get high value > order and so no allocations
> happens from low memory.
> 
> Fix it, by using kinfo->unassigned_mem instead of "dom0_mem" which has
> correct memory size in both cases: regular dom0 boot and dom0less boot.
> 
> Fixes: 52cb53f1816a ("xen/arm: dom0less hwdom construction")
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> Reviewed-by: Denis Mukhin <dmukhin@ford.com>
> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
> Acked-by: Julien Grall <jgrall@amazon.com>

I have now committed the patch.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Tue Aug 12 11:10:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 11:10:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078671.1439710 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulmtK-0007iT-LH; Tue, 12 Aug 2025 11:10:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078671.1439710; Tue, 12 Aug 2025 11:10: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 1ulmtK-0007hq-I8; Tue, 12 Aug 2025 11:10:06 +0000
Received: by outflank-mailman (input) for mailman id 1078671;
 Tue, 12 Aug 2025 11:10:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=71Zs=2Y=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1ulmtI-0007TX-Qp
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 11:10:05 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e2ea20ba-776c-11f0-b898-0df219b8e170;
 Tue, 12 Aug 2025 13:09:59 +0200 (CEST)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by DB3PR0302MB8943.eurprd03.prod.outlook.com
 (2603:10a6:10:432::10) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.21; Tue, 12 Aug
 2025 11:09: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%4]) with mapi id 15.20.9009.018; Tue, 12 Aug 2025
 11:09: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>
X-Inumbo-ID: e2ea20ba-776c-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FEQS/IfWViIuznv3eEEvRUhQdCzWSse5bVeI72MQ3uLg5szHnuFOrdVrNL/BauJH32kaBxn0anynCCU3mKiUi3p8cwLjPzthPAZCxxy3j5d2dG6G/TjD2cagkN/JosByGi3RfzVQaKqMAS33BodLaNxuQy1EuiMm9HwZPZrbdoRkLh8lx8F4KMTSVcQMzGLktDcIdpz2pgMm5q5iE1weygUB2ZQZQUdDJTXku8/3sFYHI5YkbicF0Rvh2LAAnQBkO+px/XA0E45jnjJBWVUeaKKfLiTomJDXJWpwyWbgguYFR11Tht4JiNxH0is7pd/jgLnGHNZ/VMtGM9nloCC5fQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7CV0EefV+zCVZHjjF/2P4lNAwLrdiOMUMEiXIP4Iqtg=;
 b=KpyIcRclx5jZyPk9SRhBjh/LoF2VKndpVHBJ4ZHNro8kTDT69lxk7s9iYnSnJH8D8d88PKpRrDPzG6LEJNUP+kU/jFFS46bmfLor3MtR5uXKjVgW6sARq+2doauDUqiAPQcpoHZxvM/NoVNERvsGA4/CyUK0jSE+Yva6IiWw4M4di/atsYY98kbFp2VNlBwAUTVy48I0v58RfpUqCwzJEcDWRPRvlGolChH3noUwsQC5BDU5O/PTH7mdFZTA2oHE7wUuP0RWZ31tzb/BTjjNQV56b6zYWJf46IiSsTP+Ml554jgNNTn1AHAtE8kS5qdl5YX6zFBmgmQkgJ2jXmE4GQ==
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=7CV0EefV+zCVZHjjF/2P4lNAwLrdiOMUMEiXIP4Iqtg=;
 b=HjYUWbLxXWAVIn8ahMX4HssmY+a2zXHSVFs/hg5RIvT5rr+yhmvTUvQQGyyu/cMUFmFtTsrXjzHhpgMWC2oNxEOR0wTpKuokrgW0YkdJfZPgotEFJFbw4mIMLQy703MNabB020/Z3I6DLQ9weaPCETcSQH3M9+Mo9FrYq/opFLbODmE2B6v581zcxVXCbQpIe3V44V9QB8EnQZValnRItufTwjfBIZKzKKFHOo1+sQ8Rb+7D//31HZYGOVw/Q+Bud3ICoKWkS0VipfXYipTx4H9AoPQc91qGd6gTYWFVoDp7fwLz44FGrP0Ct+BaguxREKj89VooVJUs0pCHmTmgjA==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Luca Fancellu <luca.fancellu@arm.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v1 3/3] xen/pci: add discovered PCI device at boot
Thread-Topic: [PATCH v1 3/3] xen/pci: add discovered PCI device at boot
Thread-Index: AQHcAsXVA3qngHqyPEewy8MzwqQRRrRSL/eAgAy9wYA=
Date: Tue, 12 Aug 2025 11:09:57 +0000
Message-ID: <2a324f7a-6b25-4f30-a3a1-9c115aadbfae@epam.com>
References: <cover.1753968306.git.mykyta_poturai@epam.com>
 <5097b76acf0a5c64cc78522f6af6233370c948e6.1753968306.git.mykyta_poturai@epam.com>
 <123626b4-3234-40e5-b1cf-bd5c2b19cbc8@suse.com>
In-Reply-To: <123626b4-3234-40e5-b1cf-bd5c2b19cbc8@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_|DB3PR0302MB8943:EE_
x-ms-office365-filtering-correlation-id: b63d75e5-98ef-402c-e25d-08ddd990c5dc
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|7416014|376014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?K0lvYWUybnpNOTJsNlF0YW9vekFhOW9zM0pqZk5XR3hMSldtTmNnNkMwQ25p?=
 =?utf-8?B?RXdNdVNORXZUVHlYN1B5U1J5ZWtwUWVtTUtMUUtoZ0VrVi91em04dmZxUzVq?=
 =?utf-8?B?cDI1TWlEd0JxeGNhRCs1NmlxemVUekRRenE5VFNySW1rUnhscFQvWndpR09W?=
 =?utf-8?B?WUtyOXRUc1o1NWVybWxPamhNUEFIVFZzMCtGSGxhZlE0cUNHcC84WVcxS01B?=
 =?utf-8?B?SVBveGNnNEV5dEVtVDhISjZvOEluN2xlSjVyUzRQeUVvTmtsaE5hTzlFZ0xz?=
 =?utf-8?B?UU4xTFlpVm5LVjkyOThuNTdRSkZlakZld3kzbjBhL2JVWUpYaHdyb09kSVVQ?=
 =?utf-8?B?QXcyWENsZHhSQkdleUVER3F1b3RwZlNvWVo0a3pIZVhhVFFnMytiaWE1Q3U4?=
 =?utf-8?B?c3JYYTRwVDd0NUF0UFlpTkpybkNpOGRlK1ZmNXpJcVVFei9QM2hHbDN4WjJj?=
 =?utf-8?B?aVVPbnk3NDJ0QTI5a0h3NXEzanB5a242bjlJWEp1WmZMcjdQR25KRVV1NFVV?=
 =?utf-8?B?VXRvRkM1dTRrY1o5YTNTeWl6bnFsQkFOQnV1cjl6RDhBaWhFRWN5Y2lkc0Rj?=
 =?utf-8?B?UFhCMGVqMnFoVWorUDVyN2U5VjMrZURXNkt3VkxIL0FnTzVaWDZURTduOVNT?=
 =?utf-8?B?OGFOZFdVcFNqVzdDdS85cTVjVGQ0MER4QUFzb1AwQ2UwTVgvOHJ6aGVJZUw0?=
 =?utf-8?B?ZDJYcXp2L2R3d0hNbWRUZDd2eWRZMHo1Z3NzTzVPOGhaV2VSSmkwTkRKNWhI?=
 =?utf-8?B?SUNhUm9MTHoyL2pGbldnS3JuL25vSGNsdlRrUEZ0UndPelRleFZ2N3cxRENZ?=
 =?utf-8?B?L3Naa2JCUHBBQ3c2alNKWVhIc29ZREZFQjI4SEhsSzNrK2g4R1RLRHU3cWZs?=
 =?utf-8?B?eVFJd0h0TFVPYjNvcWFqVldhcTRXL2RhNlliN3lSNGg4SFUzTVRSVjFMSExj?=
 =?utf-8?B?L2dUcjFvQ1p5bEZXRmhoVUpzSjZFaDJUcTBFd1k4WG9QemJhRGZGSWY5MUNu?=
 =?utf-8?B?RW1MYWVDU203UmcwKzEzSDBYUUIvY2NNbzB1SkozQ2ZCK3RTbjZaVTRkejFy?=
 =?utf-8?B?N09pRWgycEV6dElnUWxIN3Zzc094aEJuYWhoSEtQZUVmanVlK3hUeDMxSk1W?=
 =?utf-8?B?dU94TFJPTlBRUFdxazFJS3VCb2tKcXczcnVRRCtVRW5xQk1MMGw5T29PN3Bq?=
 =?utf-8?B?NW5RdXc0N0gzb2Y1dzJiYjN3V0I2bFdDalpiajQ5YlVKdWd3Y0FOUnZsYmhK?=
 =?utf-8?B?Y3hpVjROb0I2aFgzRFJDTVNudjVtQnZ3eklYKzRyZUsxai80TGRWdmRoQ0dQ?=
 =?utf-8?B?dFMrelA2Vk9ncWJ4Mi9vaEh0SGQ2MEpYZFFqZDliZzJhNjEvZVRHTThvYUxO?=
 =?utf-8?B?eERIc01rRTNUZWZhQmViZ2luK3IyVUI4RDRXdWNBVDdNMlloWXo2VDVRckNu?=
 =?utf-8?B?UGIvK2g1WDRpcy85N21oR1I0d0F4VUtBVFJhL2xhVGhRVktFdFprUmhGUENH?=
 =?utf-8?B?SnNNVWpiL0YyWnFKRFRvN1BwL05USnFKZExXWGZTVGplUDZEdndLNWlqNzI0?=
 =?utf-8?B?N2E1aEVEcnBqa1AweVRlVnB1L0p0bXBxUFFqVmEyU0kyRzFvRU9yRG5FN2R4?=
 =?utf-8?B?Z3RFblJnSXA2SG8xdHZTSGZOMmFWOHJjRmQzSlUvbE5RNTNhdE9zbDc3V0xv?=
 =?utf-8?B?TlUraXBMZWc5TG5uMjRRMXBvV25PMmtaQ3pFYjBSVmE0M2dqM0lOTzM2UFBV?=
 =?utf-8?B?Q1o3dGFxVjFyK3hvSkZ4blMxNnBNMnpPc1VVTDB5T3RTY1g3NkpoL0thTXVM?=
 =?utf-8?B?citNQlRYeUpiQzZyVkRlVXBEeXBaRWpKdzFkVW9Sc09SN3hHZFNxdWdoQW1l?=
 =?utf-8?B?cFdWaFdVNXpqaW8zbk0xSWh3RUJHQzMydlpzMXp5NlNIdmw5NmcydHZ1TXlZ?=
 =?utf-8?B?NnIzYWU2cjFDSnNaZStaYlNEbVdJUXEzdDJ3c2JnVllrQThCanN3VmVMcGx2?=
 =?utf-8?B?MW1XSEhsZnd3PT0=?=
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)(7416014)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?MWtSNlRDZHZKNHR4MzdFc1YwL0xOWHp1T3U2TzBITmlhZVZPS2lSM1g2Y1pq?=
 =?utf-8?B?Tjl3SGhhdG1EVWUxOHRyOVNVQlhUQnpnWEUzcnluZlVZUjdCNFhydGtUeU95?=
 =?utf-8?B?cnFKdnU1MXVMTWtQU2RiNWhVTVhzb2VHd0paRFBRQ0N0Rm5pTkRoYjJXcFVO?=
 =?utf-8?B?M3NpN2QzaXNHRWFpR3ZodXdZckRJVkhtRUM5OEVHQjFqSHVBU000SVRsWkhY?=
 =?utf-8?B?QnZHdHBFNHNzVmd3Zm1tUC9qcHZobnZsam4zNjMrN1JKcXRLL2tKZWlISTY3?=
 =?utf-8?B?Sy9zTEFUU2NsOGI3c1F2N2g1MVYrMDZJUndMRys5aGpaVDRzeXN4djNSbHhB?=
 =?utf-8?B?akZRWHRSd0JRL2dMd3FKa0MybEJ5YWVZNEhPS01qL0dBNHJwZncwbHJFeWNI?=
 =?utf-8?B?YXVMek52V1gremZ2ZjV5SWhZbnFpbEI0RVBMLzByOEV6NnhvU0R3Tmx5WGhF?=
 =?utf-8?B?VnJGTkp0N2dxOG9aM3Y5cm56S2RvWXdpcjc5TEcyUHhlNU9NdUo5U245eElT?=
 =?utf-8?B?dGFBZ0MxdG8rNkxFYml6WHdGa0xwQ0I1NjZYN3oyS0t3SmFmQnhtajVvZU5D?=
 =?utf-8?B?RFYrU1pERlp6d3A0a2VhQ0xsOWRkOHRENUEvZ1J6L25Ic0N3RmZmbGI1QjlO?=
 =?utf-8?B?T0QzMHJ6bUM3TnYxTjk2VUNDSzQvWTdtckt5eEhTQitRTk9TY3FYMlJuNDAr?=
 =?utf-8?B?STQ1QkJ6WVFEd3VpT3pYRUdBNjVnUWUyTGxqWWZiRXpnMzJ6dnArMkF2ZVNa?=
 =?utf-8?B?VXY3dmYxR0hCTTVyUmpaVDh5ZENXZDZVZUVuSVViUDIyM09RRTNlWGFCTkUz?=
 =?utf-8?B?SVcvYXRyVmlvVzJVeHFXNUNFUTRlUHpIRVFicmxWZHZOSDB3Tzd4dGhyY2Z5?=
 =?utf-8?B?WlJMOTFrajNMZFFwTDl0UVpwbkFMUThScFV1dUVUNDhGbVBkbGh5OVdrc2Yy?=
 =?utf-8?B?aGFKWFFSSld4Z1cwWTQ0RTQ1Q3BZd093ajU4a3lBN21WQ1dkY1c5dnRmWlo2?=
 =?utf-8?B?ell4WjRTWkkxM1VEK2puTWNhY2gzbGltMEFYd1htS0l2Q0FQYng2eVl0QjNR?=
 =?utf-8?B?VjRWZGVKUitqZ1UvZndRcGpQMUtIVDBRZGtUdHB4UDQxS0Mza2plU3ZoYTBh?=
 =?utf-8?B?K1paeTZwekFsbEJFVXN1b24zdnRKRWZzL2dTbDFPTlNOY0lWakt1NDVtalZG?=
 =?utf-8?B?NmZaMmRRVjJXSnFMMDRjMU1rR21TL25vQkRzRm1jbjhoUUE4djd1V0tTakxz?=
 =?utf-8?B?WjNhRXRWb2tNOGRlVldzeVJLcHp6bnBJdlhWU2JpMW1XcUh4QmZjTnNSK3Vq?=
 =?utf-8?B?VTZGMms3aG04MUpZZjNBS0o3RVdWSVQ5R3FuUlFiQkhhQ2JoSkx0VzRmNVZZ?=
 =?utf-8?B?RFEweVNVcGxOMXFLM0R2TGtwRTJQL0xCbHJiTnV1ZW9lZTlBNHBkVCtEVCtE?=
 =?utf-8?B?WWhCT3NmTFJnejlTMW41YVZuNWxJUXE1aU9MamNYcmhCNFFiSVVsMlBtcmc4?=
 =?utf-8?B?c2htRVY1TDRrL2JHTVZ5OHZtQ3NtYlBHMXNXMjNLUGNiQkhOV2J4WXU2T1Q0?=
 =?utf-8?B?VHRaOEpRazNDUE82WGZvS0E5VnRYbUZkcnBwaC9RaU9pOFdUSkN2U0pxMFBO?=
 =?utf-8?B?akpSVjdyYkQ1NE42RmhEbnd5WFJIdW16Q0FseTZZdlRJSS9NbUgrTE0yWmJ5?=
 =?utf-8?B?SlUxZmFGdUJ5NSt4VkFxZ2lVYW9PWFpVTWQxL0NaMUxzMFVzeU8yQkFJSlhK?=
 =?utf-8?B?QzJ5cysxUTIzOTVIalZVTGdxY2Zaa1NmT0JsSnFLZFFqdHI1elA4QlFMN2Nr?=
 =?utf-8?B?ZEM0RWVDUE9Ed2llTlB6OVcyOTdVWllDbm95THhXdjNIcldNd3ZRK1hJbXh6?=
 =?utf-8?B?Nm9BVVlrb2llVms0aVRhVzRMaXo5UG5kZHlmaDhkYW1sM1ZMajhuQmR0K0o4?=
 =?utf-8?B?OFUybCtldjhOUlVNUldWMGt3V1ZXTVE1SFNHYnRxVng2U3NsWDl3OTlYaWMv?=
 =?utf-8?B?N1BMNGg4NzZ6SHhaYzlVYmZ4VE9aRG8rYStSY3NQeXdPbHoyLzdCazcxZ21s?=
 =?utf-8?B?NXdmeWhraUt3YXRpT205dFVFNjFOMGlJdFRhaEJpV3V1MHRsVWFRTnNTVmdY?=
 =?utf-8?B?V1ptMUR1bkJDVk9zMXFJNVVwNGRLVmd3T1Y1SUk2bGVBTlNxMktkcG12UmVM?=
 =?utf-8?B?WlE9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <DB1D2539F9C4C04CA5330D07370206B9@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: b63d75e5-98ef-402c-e25d-08ddd990c5dc
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Aug 2025 11:09:57.3875
 (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: lCN08jcHHOMqnlaBtIXBNWhyh+2DobtXT4FsqPrOgF6HBfbJMPGn+OhbamXnQ9Z+s1xtoSzSr4DQF7iJIjdH9g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR0302MB8943

T24gMDQuMDguMjUgMTE6MzUsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAwMS4wOC4yMDI1IDEx
OjIyLCBNeWt5dGEgUG90dXJhaSB3cm90ZToNCj4+IENyZWF0ZSBhZGRfZGlzY292ZXJlZF9wY2lf
ZGV2aWNlcyBmdW5jdGlvbiB0aGF0IGNhbGxzIHBjaV9kZXZpY2VfYWRkDQo+PiBvbiBldmVyeSBQ
Q0kgZGV2aWNlIGRpc2NvdmVyZWQuDQo+PiBUaGUgZGV2aWNlcyB3aWxsIGJlIGFkZGVkIHRvIGRv
bV9pbyBzbyB0aGF0IHRoZXkgY2FuIGJlIGFzc2lnbmVkDQo+PiBsYXRlciB0byBvdGhlciBkb21h
aW5zLg0KPiANCj4gQW5kIHdoeSdzIHRoZSBpbnRlcm1lZGlhdGUgc3RlcCBuZWNlc3Nhcnk/IElP
VyBjYW4ndCB0aGV5IGJlIGFzc2lnbmVkIHRvIHRoZWlyDQo+IHRhcmdldCBkb21haW5zIHJpZ2h0
IGF3YXksIGFuZCBvbmx5IHdoYXRldmVyJ3MgbGVmdCB3b3VsZCBnbyB0byBET01fSU8/DQoNCkZv
ciBEb20wbGVzcyBjYXNlLCBndWVzdCBkb21haW5zIGFyZSBub3QgeWV0IGNyZWF0ZWQgYXQgdGhp
cyBwb2ludC4NCg0KPj4gLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMNCj4+ICsr
KyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jDQo+PiBAQCAtMTE4MCw2ICsxMTgwLDM0
IEBAIGludCBfX2luaXQgc2Nhbl9wY2lfZGV2aWNlcyh2b2lkKQ0KPj4gICAgICAgcmV0dXJuIHJl
dDsNCj4+ICAgfQ0KPj4gICANCj4+ICtzdGF0aWMgaW50IF9faW5pdCBfYWRkX2Rpc2NvdmVyZWRf
cGNpX2RldmljZXMoc3RydWN0IHBjaV9zZWcgKnBzZWcsIHZvaWQgKmFyZykNCj4+ICt7DQo+PiAr
ICAgIHN0cnVjdCBwY2lfZGV2ICpwZGV2Ow0KPj4gKyAgICBpbnQgcmV0ID0gMDsNCj4+ICsNCj4+
ICsgICAgbGlzdF9mb3JfZWFjaF9lbnRyeSAoIHBkZXYsICZwc2VnLT5hbGxkZXZzX2xpc3QsIGFs
bGRldnNfbGlzdCApDQo+PiArICAgIHsNCj4+ICsgICAgICAgIHJldCA9IHBjaV9hZGRfZGV2aWNl
KGRvbV9pbywgcGRldi0+c2VnLCBwZGV2LT5idXMsIHBkZXYtPmRldmZuLCBOVUxMLA0KPj4gKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVNQV9OT19OT0RFKTsNCj4+ICsgICAgICAgIGlm
ICggcmV0IDwgMCApDQo+PiArICAgICAgICB7DQo+PiArICAgICAgICAgICAgcHJpbnRrKFhFTkxP
R19FUlINCj4+ICsgICAgICAgICAgICAgICAgICAgIiVwcDogRmFpbHVyZSBhZGRpbmcgdGhlIGRp
c2NvdmVyZWQgcGNpIGRldmljZSAoRXJyb3IgJWQpXG4iLA0KPj4gKyAgICAgICAgICAgICAgICAg
ICAmcGRldi0+c2JkZiwgcmV0KTsNCj4+ICsgICAgICAgICAgICBicmVhazsNCj4+ICsgICAgICAg
IH0NCj4+ICsgICAgfQ0KPj4gKw0KPj4gKyAgICByZXR1cm4gcmV0Ow0KPj4gK30NCj4+ICsNCj4+
ICt2b2lkIF9faW5pdCBhZGRfZGlzY292ZXJlZF9wY2lfZGV2aWNlcyh2b2lkKQ0KPj4gK3sNCj4+
ICsgICAgcGNpZGV2c19sb2NrKCk7DQo+PiArICAgIHBjaV9zZWdtZW50c19pdGVyYXRlKF9hZGRf
ZGlzY292ZXJlZF9wY2lfZGV2aWNlcywgTlVMTCk7DQo+PiArICAgIHBjaWRldnNfdW5sb2NrKCk7
DQo+PiArfQ0KPiANCj4gVGhpcyBsb29rcyB0byBtZXJlbHkgYmUgYSBzcGVjaWFsaXplZCBmb3Jt
IG9mIHdoYXQgLi4uDQo+IA0KPj4gICBzdHJ1Y3Qgc2V0dXBfaHdkb20gew0KPj4gICAgICAgc3Ry
dWN0IGRvbWFpbiAqZDsNCj4+ICAgICAgIGludCAoKmhhbmRsZXIpKHVpbnQ4X3QgZGV2Zm4sIHN0
cnVjdCBwY2lfZGV2ICpwZGV2KTsNCj4gDQo+IC4uLiBmb2xsb3dzIGJlbG93IGhlcmUuIEJ5IGdl
bmVyYWxpemluZyB3aGF0IHdlIGhhdmUgKHBlcmhhcHMgZnJvbSB0aGUgdG9wLCBpLmUuDQo+IGlv
bW11X2h3ZG9tX2luaXQoKSksIHlvdSdkIGFsc28gYXZvaWQgdmlvbGF0aW5nIE1pc3JhIHJ1bGUg
Mi4xIG9uIHg4NiwgYXMgeW91IGFkZA0KPiB1bnJlYWNoYWJsZSBjb2RlIHRoZXJlLg0KPiANCj4g
SmFuDQoNCkNhbiB5b3UgcGxlYXNlIGVsYWJvcmF0ZSBhIGxpdHRsZSBmdXJ0aGVyIG9uIGhvdyB5
b3Ugc2VlIHRoaXMgDQpnZW5lcmFsaXphdGlvbj8gV2l0aCByb3V0aW5lcyB5b3UgbWVudGlvbmVk
IGJlaW5nIHNwZWNpZmljYWxseSBmb3IgDQpod2RvbSwgd2hpY2ggbWF5IG5vdCBleGlzdCwgYW5k
IHRoZSBkaWZmZXJlbnQgYXBwcm9hY2hlcyB0byBQQ0kgDQppbml0aWFsaXphdGlvbiBvbiBBcm0v
eDg2IChhcyBmYXIgYXMgSSB1bmRlcnN0YW5kIG9uIHg4NiBhbGwgb2YgdGhlIFBDSSANCnJlbGF0
ZWQgc3R1ZmYgaXMgaW5pdGlhbGl6ZWQgZnJvbSBpb21tdSBoZWxwZXJzLCB3aGlsZSBBcm0gaGFz
IGEgDQpkZWRpY2F0ZWQgaW5pdCBzdGVwKSBJIGFtIGFmcmFpZCBJIGNhbid0IGZpbmQgYSBuaWNl
IHBvaW50IG9mIGNvbnRhY3QgdG8gDQpnZW5lcmFsaXplIHRoaXMsIGJ1dCBJIGNhbiBiZSBtaXNz
aW5nIHNvbXRoaW5nIGR1ZSB0byB1bmZhbWlsaWFyaXR5IHdpdGggDQp4ODYgY29kZS4NCg0KQW5v
dGhlciB3YXkgb2YgYWRkcmVzc2luZyBwb3NzaWJsZSBNSVNSQSB2aW9sYXRpb24gSSBjYW4gc2Vl
IGlzIG1vdmluZyANCnRoZSBhZGRfZGlzY292ZXJlZF9wY2lfZGV2aWNlcyB0byB4ZW4vYXJjaC9h
cm0vcGNpL3BjaS5jIHNvIGl0IHdpbGwgb25seSANCmJlIGNvbXBpbGVkIHdoZW4gdXNlZC4NCg0K
LS0gDQpNeWt5dGE=


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 11:13:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 11:13:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078703.1439760 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulmwz-0000jY-Iz; Tue, 12 Aug 2025 11:13:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078703.1439760; Tue, 12 Aug 2025 11:13: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 1ulmwz-0000jR-G2; Tue, 12 Aug 2025 11:13:53 +0000
Received: by outflank-mailman (input) for mailman id 1078703;
 Tue, 12 Aug 2025 11:13:52 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UlY3=2Y=arm.com=mark.rutland@srs-se1.protection.inumbo.net>)
 id 1ulmwy-0000jL-EC
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 11:13:52 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 6c0e78fe-776d-11f0-b898-0df219b8e170;
 Tue, 12 Aug 2025 13:13:49 +0200 (CEST)
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 0FE5225E1;
 Tue, 12 Aug 2025 04:13:41 -0700 (PDT)
Received: from J2N7QTR9R3 (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 5BB453F63F;
 Tue, 12 Aug 2025 04:13: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>
X-Inumbo-ID: 6c0e78fe-776d-11f0-b898-0df219b8e170
Date: Tue, 12 Aug 2025 12:13:42 +0100
From: Mark Rutland <mark.rutland@arm.com>
To: Jinjie Ruan <ruanjinjie@huawei.com>
Cc: catalin.marinas@arm.com, will@kernel.org, oleg@redhat.com,
	sstabellini@kernel.org, puranjay@kernel.org, broonie@kernel.org,
	mbenes@suse.cz, ryan.roberts@arm.com, akpm@linux-foundation.org,
	chenl311@chinatelecom.cn, ada.coupriediaz@arm.com,
	anshuman.khandual@arm.com, kristina.martsenko@arm.com,
	liaochang1@huawei.com, ardb@kernel.org, leitao@debian.org,
	linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH -next v7 5/7] arm64: entry: Refactor
 preempt_schedule_irq() check code
Message-ID: <aJsh5oM3CoUELkvY@J2N7QTR9R3>
References: <20250729015456.3411143-1-ruanjinjie@huawei.com>
 <20250729015456.3411143-6-ruanjinjie@huawei.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250729015456.3411143-6-ruanjinjie@huawei.com>

On Tue, Jul 29, 2025 at 09:54:54AM +0800, Jinjie Ruan wrote:
> ARM64 requires an additional check whether to reschedule on return
> from interrupt. So add arch_irqentry_exit_need_resched() as the default
> NOP implementation and hook it up into the need_resched() condition in
> raw_irqentry_exit_cond_resched(). This allows ARM64 to implement
> the architecture specific version for switching over to
> the generic entry code.
> 
> To align the structure of the code with irqentry_exit_cond_resched()
> from the generic entry code, hoist the need_irq_preemption()
> and IS_ENABLED() check earlier. And different preemption check functions
> are defined based on whether dynamic preemption is enabled.
> 
> Suggested-by: Mark Rutland <mark.rutland@arm.com>
> Suggested-by: Kevin Brodsky <kevin.brodsky@arm.com>
> Suggested-by: Thomas Gleixner <tglx@linutronix.de>
> Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
> ---
>  arch/arm64/include/asm/preempt.h |  4 ++++
>  arch/arm64/kernel/entry-common.c | 35 ++++++++++++++++++--------------
>  kernel/entry/common.c            | 16 ++++++++++++++-
>  3 files changed, 39 insertions(+), 16 deletions(-)

Can you please split the change to kernel/entry/common.c into a separate
patch? That doesn't depend on the arm64-specific changes, and it'll make
it easier to handle any conflcits when merging this.

Mark.

> 
> diff --git a/arch/arm64/include/asm/preempt.h b/arch/arm64/include/asm/preempt.h
> index 0159b625cc7f..0f0ba250efe8 100644
> --- a/arch/arm64/include/asm/preempt.h
> +++ b/arch/arm64/include/asm/preempt.h
> @@ -85,6 +85,7 @@ static inline bool should_resched(int preempt_offset)
>  void preempt_schedule(void);
>  void preempt_schedule_notrace(void);
>  
> +void raw_irqentry_exit_cond_resched(void);
>  #ifdef CONFIG_PREEMPT_DYNAMIC
>  
>  DECLARE_STATIC_KEY_TRUE(sk_dynamic_irqentry_exit_cond_resched);
> @@ -92,11 +93,14 @@ void dynamic_preempt_schedule(void);
>  #define __preempt_schedule()		dynamic_preempt_schedule()
>  void dynamic_preempt_schedule_notrace(void);
>  #define __preempt_schedule_notrace()	dynamic_preempt_schedule_notrace()
> +void dynamic_irqentry_exit_cond_resched(void);
> +#define irqentry_exit_cond_resched()	dynamic_irqentry_exit_cond_resched()
>  
>  #else /* CONFIG_PREEMPT_DYNAMIC */
>  
>  #define __preempt_schedule()		preempt_schedule()
>  #define __preempt_schedule_notrace()	preempt_schedule_notrace()
> +#define irqentry_exit_cond_resched()	raw_irqentry_exit_cond_resched()
>  
>  #endif /* CONFIG_PREEMPT_DYNAMIC */
>  #endif /* CONFIG_PREEMPTION */
> diff --git a/arch/arm64/kernel/entry-common.c b/arch/arm64/kernel/entry-common.c
> index 7c2299c1ba79..4f92664fd46c 100644
> --- a/arch/arm64/kernel/entry-common.c
> +++ b/arch/arm64/kernel/entry-common.c
> @@ -285,19 +285,8 @@ static void noinstr arm64_exit_el1_dbg(struct pt_regs *regs,
>  		lockdep_hardirqs_on(CALLER_ADDR0);
>  }
>  
> -#ifdef CONFIG_PREEMPT_DYNAMIC
> -DEFINE_STATIC_KEY_TRUE(sk_dynamic_irqentry_exit_cond_resched);
> -#define need_irq_preemption() \
> -	(static_branch_unlikely(&sk_dynamic_irqentry_exit_cond_resched))
> -#else
> -#define need_irq_preemption()	(IS_ENABLED(CONFIG_PREEMPTION))
> -#endif
> -
>  static inline bool arm64_preempt_schedule_irq(void)
>  {
> -	if (!need_irq_preemption())
> -		return false;
> -
>  	/*
>  	 * DAIF.DA are cleared at the start of IRQ/FIQ handling, and when GIC
>  	 * priority masking is used the GIC irqchip driver will clear DAIF.IF
> @@ -672,6 +661,24 @@ static __always_inline void __el1_pnmi(struct pt_regs *regs,
>  	arm64_exit_nmi(regs, state);
>  }
>  
> +void raw_irqentry_exit_cond_resched(void)
> +{
> +	if (!preempt_count()) {
> +		if (need_resched() && arm64_preempt_schedule_irq())
> +			preempt_schedule_irq();
> +	}
> +}
> +
> +#ifdef CONFIG_PREEMPT_DYNAMIC
> +DEFINE_STATIC_KEY_TRUE(sk_dynamic_irqentry_exit_cond_resched);
> +void dynamic_irqentry_exit_cond_resched(void)
> +{
> +	if (!static_branch_unlikely(&sk_dynamic_irqentry_exit_cond_resched))
> +		return;
> +	raw_irqentry_exit_cond_resched();
> +}
> +#endif
> +
>  static __always_inline void __el1_irq(struct pt_regs *regs,
>  				      void (*handler)(struct pt_regs *))
>  {
> @@ -681,10 +688,8 @@ static __always_inline void __el1_irq(struct pt_regs *regs,
>  	do_interrupt_handler(regs, handler);
>  	irq_exit_rcu();
>  
> -	if (!preempt_count() && need_resched()) {
> -		if (arm64_preempt_schedule_irq())
> -			preempt_schedule_irq();
> -	}
> +	if (IS_ENABLED(CONFIG_PREEMPTION))
> +		irqentry_exit_cond_resched();
>  
>  	exit_to_kernel_mode(regs, state);
>  }
> diff --git a/kernel/entry/common.c b/kernel/entry/common.c
> index b82032777310..4aa9656fa1b4 100644
> --- a/kernel/entry/common.c
> +++ b/kernel/entry/common.c
> @@ -142,6 +142,20 @@ noinstr irqentry_state_t irqentry_enter(struct pt_regs *regs)
>  	return ret;
>  }
>  
> +/**
> + * arch_irqentry_exit_need_resched - Architecture specific need resched function
> + *
> + * Invoked from raw_irqentry_exit_cond_resched() to check if need resched.
> + * Defaults return true.
> + *
> + * The main purpose is to permit arch to skip preempt a task from an IRQ.
> + */
> +static inline bool arch_irqentry_exit_need_resched(void);
> +
> +#ifndef arch_irqentry_exit_need_resched
> +static inline bool arch_irqentry_exit_need_resched(void) { return true; }
> +#endif
> +
>  void raw_irqentry_exit_cond_resched(void)
>  {
>  	if (!preempt_count()) {
> @@ -149,7 +163,7 @@ void raw_irqentry_exit_cond_resched(void)
>  		rcu_irq_exit_check_preempt();
>  		if (IS_ENABLED(CONFIG_DEBUG_ENTRY))
>  			WARN_ON_ONCE(!on_thread_stack());
> -		if (need_resched())
> +		if (need_resched() && arch_irqentry_exit_need_resched())
>  			preempt_schedule_irq();
>  	}
>  }
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 11:19:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 11:19:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078716.1439770 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uln23-0001Mk-8q; Tue, 12 Aug 2025 11:19:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078716.1439770; Tue, 12 Aug 2025 11:19: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 1uln23-0001Md-5g; Tue, 12 Aug 2025 11:19:07 +0000
Received: by outflank-mailman (input) for mailman id 1078716;
 Tue, 12 Aug 2025 11:19:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Pr65=2Y=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uln21-0001MX-FK
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 11:19:05 +0000
Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com
 [2a00:1450:4864:20::533])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 26da3661-776e-11f0-b898-0df219b8e170;
 Tue, 12 Aug 2025 13:19:03 +0200 (CEST)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-6153a19dddfso7985502a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 12 Aug 2025 04:19: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
 4fb4d7f45d1cf-615a8f26cc6sm20259380a12.23.2025.08.12.04.19.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Aug 2025 04:19: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>
X-Inumbo-ID: 26da3661-776e-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1754997542; x=1755602342; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=uU80gNACUDmfnw0pRqCk6zUjHTfTG4dJeNPVlHZ7qGA=;
        b=dEFiS5odBmWgrnabuJpbEcmup2vb7LOsRXftwXE6AdvPuQ50Inh9SFDwyu1n1aBjUj
         EU1REFVN/GszU2hDC+FHqbJcZPw0uO3wz86lHfxUARQtaEf5w38bm2vdqNZqb3OvB4Du
         YWI0h+TDzX91HWt3xedeH1inNaQZcHcuyBF1BAMojtCNUOqguvOqgMLSO6yCyMPViylL
         eEG9/agFEm7z9DPhes4FStLiuGirNMITJ/nb02UmEdjiMrWHQpcMWBMk3QejTJ3yVWqZ
         48v4jT6cAwnWM7IERC4OaWYZS0hmhvaZAdhmp9qlJ9ONA7TOjbPZlc4N4ZhCCyof9Eud
         zCzw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754997542; x=1755602342;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=uU80gNACUDmfnw0pRqCk6zUjHTfTG4dJeNPVlHZ7qGA=;
        b=ozOnoUU7WAckYgb3HmCh331cFLOPrMQYDaaAftEXrw9YzWXCL3sQ0bKO1iodr4ivGk
         /30N2w98lm+vocSBkC+kEWQbBpeRLwpAMIHkL2J356a31MA/DwnK7twRF5qmOx+k1M+x
         4XitAxYjRR/ufwCvoD1YszOlA7JRSyEPn0IKezzOAh2yIMqiEcoE+ONrQylVB5zxiVEi
         im3VCOM4JQ3YH2VEX+Jz5K3rrBoPUGm0S0ZxUmtWBkJIgCJVpICoIPLxBR+3qQ0Ia77k
         b8ynh4mRhoKeQ5RnsJvY3IKZq3+kQazy5Csh4R38WanrrePDNimQUgpiCnyoVkyHZ/qs
         2R0Q==
X-Forwarded-Encrypted: i=1; AJvYcCXWL4qbZ7rB01nJnQHzAylkeaE5NUjBCLniVdiHUZgWXTrJHJK2w990cwq+bfk4wUwgmITAzf24W4c=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwMwLQG3MC1RHed+7h197S9ZbGZpOIQskYuIoR2KHcoyy/9bJED
	C4U3fS+nz19+7hp5V7fFCtb2YirNqlTq7GJSwAYFLiEC2gPC9j1Jd34pv6axIlaZQA==
X-Gm-Gg: ASbGncuU3HK9y6VSqehB+kJ0rxlmYuqzcgXnUFF7dIzk2FZ82+/DhmxsqkQ+CmIHHBF
	5/KeObjpoNHaAhE0MxBbxTGM5HZB+HMGaYLNvBTlJS3ZXl7XCZtAhQe+DsH5XcH3gUGdQ2Os0Fv
	AZLzXs3+2VLz0R5+SA5mONY0HkbMMKBglGRVCRwoppofrjL5DBf5xbCRLZBPa7amCfwaNutQUWq
	Hp7vbvfyRbhkpso81bEhzUjuF2JaPrKrtb+zX9rCMm1z6sFENkNj9Mkz76JidvktwUTH98F1UKT
	DoyBoA779sVlDG37QK0es3TAfoTUMoUNkHioLEFRojb6YMdZtKWAj3MK1z6QbF3uW+RdNY1twmP
	/DBy3p1mztR+EbTnd7aLMm2fNeshj/6V1/tPO/aoV6z3sla6pRemQT6YFgylmJw1fikdmzfALhE
	V8ruDt5bQwpYtOBELhqA==
X-Google-Smtp-Source: AGHT+IGhEYImBGoqIsOrl+zALTYiQSUEjWprSloXX6wfAzRHhLdbgXauCmHljQcgQGcpNl5UUs5WTA==
X-Received: by 2002:a05:6402:27d0:b0:617:b516:287c with SMTP id 4fb4d7f45d1cf-6184ec73171mr2465640a12.18.1754997542551;
        Tue, 12 Aug 2025 04:19:02 -0700 (PDT)
Message-ID: <d13f0a15-42c7-45f9-9c6c-fe19fafd85a2@suse.com>
Date: Tue, 12 Aug 2025 13:19:01 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 3/3] xen/pci: add discovered PCI device at boot
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: Luca Fancellu <luca.fancellu@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1753968306.git.mykyta_poturai@epam.com>
 <5097b76acf0a5c64cc78522f6af6233370c948e6.1753968306.git.mykyta_poturai@epam.com>
 <123626b4-3234-40e5-b1cf-bd5c2b19cbc8@suse.com>
 <2a324f7a-6b25-4f30-a3a1-9c115aadbfae@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: <2a324f7a-6b25-4f30-a3a1-9c115aadbfae@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.08.2025 13:09, Mykyta Poturai wrote:
> On 04.08.25 11:35, Jan Beulich wrote:
>> On 01.08.2025 11:22, Mykyta Poturai wrote:
>>> Create add_discovered_pci_devices function that calls pci_device_add
>>> on every PCI device discovered.
>>> The devices will be added to dom_io so that they can be assigned
>>> later to other domains.
>>
>> And why's the intermediate step necessary? IOW can't they be assigned to their
>> target domains right away, and only whatever's left would go to DOM_IO?
> 
> For Dom0less case, guest domains are not yet created at this point.

I understand that, but this doesn't answer my question. Once the guest domains
are there, can't you directly assign their devices to them?

>>> --- a/xen/drivers/passthrough/pci.c
>>> +++ b/xen/drivers/passthrough/pci.c
>>> @@ -1180,6 +1180,34 @@ int __init scan_pci_devices(void)
>>>       return ret;
>>>   }
>>>   
>>> +static int __init _add_discovered_pci_devices(struct pci_seg *pseg, void *arg)
>>> +{
>>> +    struct pci_dev *pdev;
>>> +    int ret = 0;
>>> +
>>> +    list_for_each_entry ( pdev, &pseg->alldevs_list, alldevs_list )
>>> +    {
>>> +        ret = pci_add_device(dom_io, pdev->seg, pdev->bus, pdev->devfn, NULL,
>>> +                             NUMA_NO_NODE);
>>> +        if ( ret < 0 )
>>> +        {
>>> +            printk(XENLOG_ERR
>>> +                   "%pp: Failure adding the discovered pci device (Error %d)\n",
>>> +                   &pdev->sbdf, ret);
>>> +            break;
>>> +        }
>>> +    }
>>> +
>>> +    return ret;
>>> +}
>>> +
>>> +void __init add_discovered_pci_devices(void)
>>> +{
>>> +    pcidevs_lock();
>>> +    pci_segments_iterate(_add_discovered_pci_devices, NULL);
>>> +    pcidevs_unlock();
>>> +}
>>
>> This looks to merely be a specialized form of what ...
>>
>>>   struct setup_hwdom {
>>>       struct domain *d;
>>>       int (*handler)(uint8_t devfn, struct pci_dev *pdev);
>>
>> ... follows below here. By generalizing what we have (perhaps from the top, i.e.
>> iommu_hwdom_init()), you'd also avoid violating Misra rule 2.1 on x86, as you add
>> unreachable code there.
> 
> Can you please elaborate a little further on how you see this 
> generalization? With routines you mentioned being specifically for 
> hwdom, which may not exist,

That's precisely the generalization I'm having in mind. What's hwdom-only
now ought to be possible to be made usable in wider manner.

> and the different approaches to PCI 
> initialization on Arm/x86 (as far as I understand on x86 all of the PCI 
> related stuff is initialized from iommu helpers, while Arm has a 
> dedicated init step)

This, too, may want harmonizing.

> I am afraid I can't find a nice point of contact to 
> generalize this, but I can be missing somthing due to unfamiliarity with 
> x86 code.
> 
> Another way of addressing possible MISRA violation I can see is moving 
> the add_discovered_pci_devices to xen/arch/arm/pci/pci.c so it will only 
> be compiled when used.

And pose a problem when e.g. RISC-V also wants the same.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 11:19:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 11:19:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078724.1439781 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uln2a-0001o7-HE; Tue, 12 Aug 2025 11:19:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078724.1439781; Tue, 12 Aug 2025 11:19:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uln2a-0001o0-Ct; Tue, 12 Aug 2025 11:19:40 +0000
Received: by outflank-mailman (input) for mailman id 1078724;
 Tue, 12 Aug 2025 11:19:38 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UlY3=2Y=arm.com=mark.rutland@srs-se1.protection.inumbo.net>)
 id 1uln2Y-0001eC-Fc
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 11:19:38 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 3b39dab5-776e-11f0-a327-13f23c93f187;
 Tue, 12 Aug 2025 13:19:37 +0200 (CEST)
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 91CE425E1;
 Tue, 12 Aug 2025 04:19:28 -0700 (PDT)
Received: from J2N7QTR9R3 (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id EB39D3F63F;
 Tue, 12 Aug 2025 04:19: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>
X-Inumbo-ID: 3b39dab5-776e-11f0-a327-13f23c93f187
Date: Tue, 12 Aug 2025 12:19:30 +0100
From: Mark Rutland <mark.rutland@arm.com>
To: Jinjie Ruan <ruanjinjie@huawei.com>
Cc: catalin.marinas@arm.com, will@kernel.org, oleg@redhat.com,
	sstabellini@kernel.org, puranjay@kernel.org, broonie@kernel.org,
	mbenes@suse.cz, ryan.roberts@arm.com, akpm@linux-foundation.org,
	chenl311@chinatelecom.cn, ada.coupriediaz@arm.com,
	anshuman.khandual@arm.com, kristina.martsenko@arm.com,
	liaochang1@huawei.com, ardb@kernel.org, leitao@debian.org,
	linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH -next v7 0/7] arm64: entry: Convert to generic irq entry
Message-ID: <aJsjQsDZjhG8oiK-@J2N7QTR9R3>
References: <20250729015456.3411143-1-ruanjinjie@huawei.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250729015456.3411143-1-ruanjinjie@huawei.com>

Hi,

This is looking pretty good now, thanks for continuing to work on this!

I've left a couple of minor comments, and Ada has left a few more. If
you're able to address those and respin atop v6.17-rc1, I think we can
start figuring out how to queue this.

Mark.

On Tue, Jul 29, 2025 at 09:54:49AM +0800, Jinjie Ruan wrote:
> Currently, x86, Riscv, Loongarch use the generic entry. Also convert
> arm64 to use the generic entry infrastructure from kernel/entry/*.
> The generic entry makes maintainers' work easier and codes more elegant,
> which will make PREEMPT_DYNAMIC and PREEMPT_LAZY use the generic entry
> common code and remove a lot of duplicate code.
> 
> Since commit a70e9f647f50 ("entry: Split generic entry into generic
> exception and syscall entry") split the generic entry into generic irq
> entry and generic syscall entry, it is time to convert arm64 to use
> the generic irq entry. And ARM64 will be completely converted to generic
> entry in the upcoming patch series.
> 
> The main convert steps are as follows:
> - Split generic entry into generic irq entry and generic syscall to
>   make the single patch more concentrated in switching to one thing.
> - Make arm64 easier to use irqentry_enter/exit().
> - Make arm64 closer to the PREEMPT_DYNAMIC code of generic entry.
> - Switch to generic irq entry.
> 
> It was tested ok with following test cases on QEMU virt platform:
>  - Perf tests.
>  - Different `dynamic preempt` mode switch.
>  - Pseudo NMI tests.
>  - Stress-ng CPU stress test.
>  - MTE test case in Documentation/arch/arm64/memory-tagging-extension.rst
>    and all test cases in tools/testing/selftests/arm64/mte/*.
> 
> The test QEMU configuration is as follows:
> 
> 	qemu-system-aarch64 \
> 		-M virt,gic-version=3,virtualization=on,mte=on \
> 		-cpu max,pauth-impdef=on \
> 		-kernel Image \
> 		-smp 8,sockets=1,cores=4,threads=2 \
> 		-m 512m \
> 		-nographic \
> 		-no-reboot \
> 		-device virtio-rng-pci \
> 		-append "root=/dev/vda rw console=ttyAMA0 kgdboc=ttyAMA0,115200 \
> 			earlycon preempt=voluntary irqchip.gicv3_pseudo_nmi=1" \
> 		-drive if=none,file=images/rootfs.ext4,format=raw,id=hd0 \
> 		-device virtio-blk-device,drive=hd0 \
> 
> Changes in v7:
> - Rebased on v6.16-rc7 and remove the merged first patch.
> - Update the commit message.
> 
> Changes in v6:
> - Rebased on 6.14 rc2 next.
> - Put the syscall bits aside and split it out.
> - Have the split patch before the arm64 changes.
> - Merge some tightly coupled patches.
> - Adjust the order of some patches to make them more reasonable.
> - Define regs_irqs_disabled() by inline function.
> - Define interrupts_enabled() in terms of regs_irqs_disabled().
> - Delete the fast_interrupts_enabled() macro.
> - irqentry_state_t -> arm64_irqentry_state_t.
> - Remove arch_exit_to_user_mode_prepare() and pull local_daif_mask() later
>   in the arm64 exit sequence
> - Update the commit message.
> 
> Changes in v5:
> - Not change arm32 and keep inerrupts_enabled() macro for gicv3 driver.
> - Move irqentry_state definition into arch/arm64/kernel/entry-common.c.
> - Avoid removing the __enter_from_*() and __exit_to_*() wrappers.
> - Update "irqentry_state_t ret/irq_state" to "state"
>   to keep it consistently.
> - Use generic irq entry header for PREEMPT_DYNAMIC after split
>   the generic entry.
> - Also refactor the ARM64 syscall code.
> - Introduce arch_ptrace_report_syscall_entry/exit(), instead of
>   arch_pre/post_report_syscall_entry/exit() to simplify code.
> - Make the syscall patches clear separation.
> - Update the commit message.
> 
> Changes in v4:
> - Rework/cleanup split into a few patches as Mark suggested.
> - Replace interrupts_enabled() macro with regs_irqs_disabled(), instead
>   of left it here.
> - Remove rcu and lockdep state in pt_regs by using temporary
>   irqentry_state_t as Mark suggested.
> - Remove some unnecessary intermediate functions to make it clear.
> - Rework preempt irq and PREEMPT_DYNAMIC code
>   to make the switch more clear.
> - arch_prepare_*_entry/exit() -> arch_pre_*_entry/exit().
> - Expand the arch functions comment.
> - Make arch functions closer to its caller.
> - Declare saved_reg in for block.
> - Remove arch_exit_to_kernel_mode_prepare(), arch_enter_from_kernel_mode().
> - Adjust "Add few arch functions to use generic entry" patch to be
>   the penultimate.
> - Update the commit message.
> - Add suggested-by.
> 
> Changes in v3:
> - Test the MTE test cases.
> - Handle forget_syscall() in arch_post_report_syscall_entry()
> - Make the arch funcs not use __weak as Thomas suggested, so move
>   the arch funcs to entry-common.h, and make arch_forget_syscall() folded
>   in arch_post_report_syscall_entry() as suggested.
> - Move report_single_step() to thread_info.h for arm64
> - Change __always_inline() to inline, add inline for the other arch funcs.
> - Remove unused signal.h for entry-common.h.
> - Add Suggested-by.
> - Update the commit message.
> 
> Changes in v2:
> - Add tested-by.
> - Fix a bug that not call arch_post_report_syscall_entry() in
>   syscall_trace_enter() if ptrace_report_syscall_entry() return not zero.
> - Refactor report_syscall().
> - Add comment for arch_prepare_report_syscall_exit().
> - Adjust entry-common.h header file inclusion to alphabetical order.
> - Update the commit message.
> 
> Jinjie Ruan (7):
>   arm64: ptrace: Replace interrupts_enabled() with regs_irqs_disabled()
>   arm64: entry: Refactor the entry and exit for exceptions from EL1
>   arm64: entry: Rework arm64_preempt_schedule_irq()
>   arm64: entry: Use preempt_count() and need_resched() helper
>   arm64: entry: Refactor preempt_schedule_irq() check code
>   arm64: entry: Move arm64_preempt_schedule_irq() into
>     __exit_to_kernel_mode()
>   arm64: entry: Switch to generic IRQ entry
> 
>  arch/arm64/Kconfig                    |   1 +
>  arch/arm64/include/asm/daifflags.h    |   2 +-
>  arch/arm64/include/asm/entry-common.h |  56 ++++
>  arch/arm64/include/asm/preempt.h      |   2 -
>  arch/arm64/include/asm/ptrace.h       |  13 +-
>  arch/arm64/include/asm/xen/events.h   |   2 +-
>  arch/arm64/kernel/acpi.c              |   2 +-
>  arch/arm64/kernel/debug-monitors.c    |   2 +-
>  arch/arm64/kernel/entry-common.c      | 411 +++++++++-----------------
>  arch/arm64/kernel/sdei.c              |   2 +-
>  arch/arm64/kernel/signal.c            |   3 +-
>  kernel/entry/common.c                 |  16 +-
>  12 files changed, 217 insertions(+), 295 deletions(-)
>  create mode 100644 arch/arm64/include/asm/entry-common.h
> 
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 11:43:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 11:43:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078741.1439805 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulnPB-0006Ud-Bn; Tue, 12 Aug 2025 11:43:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078741.1439805; Tue, 12 Aug 2025 11:43:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulnPB-0006UW-95; Tue, 12 Aug 2025 11:43:01 +0000
Received: by outflank-mailman (input) for mailman id 1078741;
 Tue, 12 Aug 2025 11:43:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=OhhA=2Y=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1ulnP9-0006UQ-Q6
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 11:42:59 +0000
Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com
 [2a00:1450:4864:20::62b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7e57bb72-7771-11f0-a327-13f23c93f187;
 Tue, 12 Aug 2025 13:42:58 +0200 (CEST)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-af968aa2de4so968322166b.1
 for <xen-devel@lists.xenproject.org>; Tue, 12 Aug 2025 04:42:58 -0700 (PDT)
Received: from [192.168.1.17] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a0771basm2179148466b.29.2025.08.12.04.42.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Aug 2025 04:42: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>
X-Inumbo-ID: 7e57bb72-7771-11f0-a327-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1754998978; x=1755603778; darn=lists.xenproject.org;
        h=in-reply-to:content-language:references:cc:to:subject:from
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CpZHnTP4IsRt7Ry6sEMfFvV3Br8wp8kr4qhHL2GsnHg=;
        b=Q2t1POEcrtBvBeSIF7uZu48ERnkS7d1bSNDK+NTrYifufdZXOJCTaubnUiokbdbosI
         UmMOaFmnc+KayWeMNgLXtM5UlDR3Tw/RL40YP7OvSHfGKGev1Qqbgjo0x3qMWB4x/s/i
         gt0c5u3TxmPXh/Jpg1P73Muec7De2GedeJNZT/0O9ByWezpu6PkuddeNrznNqQwa4o5C
         m7qleL2aTglZ6hVBxsqu+iknTI8VK5SgbFhzLmwJcClMAqJz8kzJ8bnx80tL1/fgx/if
         NDsYUGXSqgq8sHerEyIAiXk80xgoKrQELYkOUZsFaQzfp4rBhRpcJXRVjIxsDDJIGfz/
         sVCg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1754998978; x=1755603778;
        h=in-reply-to:content-language:references:cc:to:subject:from
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=CpZHnTP4IsRt7Ry6sEMfFvV3Br8wp8kr4qhHL2GsnHg=;
        b=u61umYREsgKwKZC++ed63VE8/GbE+DZvRFedXpI7borU9uVFUKL2/5yxy6c6j+WwfE
         i1ArJXwsuwesc2QJiGrEfQdfSf7OxXsx5KHOFaYa09+U1+fanYun/snTvZmzzmpZghHV
         byW/cLUfNyDfiV9lFv9Gg+E8fS7Voiys6wBpSC3THKVHkJC/awVMY7dT5i1o7TZY8XXu
         8nvROtd6VSgwE1SXI4p6V9CekGjbh4fYT7OZIPKhUUSiY9At4KHXO0MaHQ8LQdG1nZLO
         7kuEkaKhPSdsQzpbRLfrr2PW6q9/WcUeTXhfjWDZWpB6OXn8K1g2lM3176RjHJ1gwl39
         lsrQ==
X-Forwarded-Encrypted: i=1; AJvYcCWvW+V+AxyFF+4TSRJcyBvqhCo9C8t1zDJHNFIJdIVm8Z20FrUKzT7PUy8GQ9ydvpX3lj8P66Fsfp0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxRe8cBWYTdGp1JAyRaLfcN5oV3a8g42XPdDk3GuEGayil8RtZS
	WrtosRUuHioBbCvnxmvCTTIFIHUTT+AcLhaOk7SZP3zcQe/mrPt6Xsap
X-Gm-Gg: ASbGncvEMTOz9qBLrDA8b8/DN/zdM521jN5tnboKvtM1c4taL+cgn/B3qMsf8oYz9PW
	7eRLL+VCGNViVDzkB8x8fwqw0kng4WUB9/8a98SnELpv2odj6h4wXVyc0SxXtswLkkqNXlKAFHY
	u+X82AU4tyKNEIlX0fyYlWX16ugzxYuw5obS+GpCwmFsVEnmOJ+l7Qa+Dz3MiHTy1rXdaHBv8z2
	49O5hazckqpDh2rAauZ4O48QpIzeEzBzNeVSRXRLO/r7/5jOq7+y0Ytw8FgkCX5grtISvYdIPZ5
	1NKXoB488W2BU/UWUVtahtVN3QNKUHybjT7BvfQtgr1nv37V0fDpoY0jP3DUcRr2jzyUg55Jx59
	lS5E/kNqo9WR5mcO8zp62bb349a81ahtyzxyC0EdpfAPdIGr0jV1RFsaJrTZpAWZVi4TVKOaM
X-Google-Smtp-Source: AGHT+IFi27JzFGWJePrpbhnbGzTAMVtSlLBli9OwBER40oK0XvXn08KOehV4mY/gsLtZgIoQcAkh4A==
X-Received: by 2002:a17:907:869f:b0:ae1:f1e0:8730 with SMTP id a640c23a62f3a-af9c659fafemr1583281666b.57.1754998977373;
        Tue, 12 Aug 2025 04:42:57 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------t0OIcO9CZCU0XKU2PJ9JQBKp"
Message-ID: <923d76de-2849-4496-b1e6-c1362e007696@gmail.com>
Date: Tue, 12 Aug 2025 13:42:55 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH v3 19/20] xen/riscv: add support of page lookup by GFN
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <24bb8ca6ad9d325f48d0c64b0fa461db5f0d0cc5.1753973161.git.oleksii.kurochko@gmail.com>
 <f7f81e65-5c85-4e30-a68b-01cdcf51dc07@suse.com>
Content-Language: en-US
In-Reply-To: <f7f81e65-5c85-4e30-a68b-01cdcf51dc07@suse.com>

This is a multi-part message in MIME format.
--------------t0OIcO9CZCU0XKU2PJ9JQBKp
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 8/11/25 3:25 PM, Jan Beulich wrote:
> On 31.07.2025 17:58, Oleksii Kurochko wrote:
>> Introduce helper functions for safely querying the P2M (physical-to-machine)
>> mapping:
>>   - add p2m_read_lock(), p2m_read_unlock(), and p2m_is_locked() for managing
>>     P2M lock state.
>>   - Implement p2m_get_entry() to retrieve mapping details for a given GFN,
>>     including MFN, page order, and validity.
>>   - Add p2m_lookup() to encapsulate read-locked MFN retrieval.
>>   - Introduce p2m_get_page_from_gfn() to convert a GFN into a page_info
>>     pointer, acquiring a reference to the page if valid.
>>   - Introduce get_page().
>>
>> Implementations are based on Arm's functions with some minor modifications:
>> - p2m_get_entry():
>>    - Reverse traversal of page tables, as RISC-V uses the opposite level
>>      numbering compared to Arm.
>>    - Removed the return of p2m_access_t from p2m_get_entry() since
>>      mem_access_settings is not introduced for RISC-V.
>>    - Updated BUILD_BUG_ON() to check using the level 0 mask, which corresponds
>>      to Arm's THIRD_MASK.
>>    - Replaced open-coded bit shifts with the BIT() macro.
>>    - Other minor changes, such as using RISC-V-specific functions to validate
>>      P2M PTEs, and replacing Arm-specific GUEST_* macros with their RISC-V
>>      equivalents.
>>
>> Signed-off-by: Oleksii Kurochko<oleksii.kurochko@gmail.com>
>> ---
>> Changes in V3:
>>   - Add is_p2m_foreign() macro and connected stuff.
> What is this about?

Sorry for that, it is a stale change. I will drop it in the next patch version.

>> --- a/xen/arch/riscv/include/asm/p2m.h
>> +++ b/xen/arch/riscv/include/asm/p2m.h
>> @@ -202,6 +202,24 @@ static inline int p2m_is_write_locked(struct p2m_domain *p2m)
>>   
>>   unsigned long construct_hgatp(struct p2m_domain *p2m, uint16_t vmid);
>>   
>> +static inline void p2m_read_lock(struct p2m_domain *p2m)
>> +{
>> +    read_lock(&p2m->lock);
>> +}
>> +
>> +static inline void p2m_read_unlock(struct p2m_domain *p2m)
>> +{
>> +    read_unlock(&p2m->lock);
>> +}
>> +
>> +static inline int p2m_is_locked(struct p2m_domain *p2m)
> bool return type (also for p2m_is_write_locked() in patch 11)? Also perhaps
> pointer-to-const parameter?

I haven't checked what is a argument type of rw_is_locked() inside, so, automatically
use just pointer parameter, but now I see that it could be really const.

>> --- a/xen/arch/riscv/p2m.c
>> +++ b/xen/arch/riscv/p2m.c
>> @@ -852,3 +852,139 @@ int map_regions_p2mt(struct domain *d,
>>   {
>>       return p2m_insert_mapping(p2m_get_hostp2m(d), gfn, nr, mfn, p2mt);
>>   }
>> +
>> +/*
>> + * Get the details of a given gfn.
>> + *
>> + * If the entry is present, the associated MFN will be returned type filled up.
> This sentence doesn't really parse, perhaps due to missing words.

IDK what happened but it should be:
   ... the associated MFN will returned and type filled up ...
Perhpaps, it would be better just:
   ... the associated MFN will returned and the p2m type of the mapping.
   (or just entry's type)

>> + * The page_order will correspond to the order of the mapping in the page
>> + * table (i.e it could be a superpage).
>> + *
>> + * If the entry is not present, INVALID_MFN will be returned and the
>> + * page_order will be set according to the order of the invalid range.
>> + *
>> + * valid will contain the value of bit[0] (e.g valid bit) of the
>> + * entry.
>> + */
>> +static mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn,
>> +                           p2m_type_t *t,
>> +                           unsigned int *page_order,
>> +                           bool *valid)
>> +{
>> +    unsigned int level = 0;
>> +    pte_t entry, *table;
>> +    int rc;
>> +    mfn_t mfn = INVALID_MFN;
>> +    DECLARE_OFFSETS(offsets, gfn_to_gaddr(gfn));
>> +
>> +    ASSERT(p2m_is_locked(p2m));
>> +    BUILD_BUG_ON(XEN_PT_LEVEL_MAP_MASK(0) != PAGE_MASK);
> What function-wide property is this check about? Even when moved ...

I think this check isn't needed anymore.

This check is/was needed to be sure that 4k page(s) are used on L3 (in Arm terms)
mapping as Arm can support 4k, 16k and 64k.
Initially this check derived from:
   https://lore.kernel.org/xen-devel/1402394278-9850-4-git-send-email-ian.campbell@citrix.com/
And it was needed because of the way how maddr is calculated, calculation for which
could be wrong if page size isn't 4k.
But then this check was migrated to p2m_get_entry():
   https://lore.kernel.org/xen-devel/1469717505-8026-13-git-send-email-julien.grall@arm.com/
But the way how maddr is got isn't depends on mask and PAGE_MASK, and I don't see any other
reason to why BUILD_BUG_ON() is needed now.

>
>> +    if ( valid )
>> +        *valid = false;
>> +
>> +    /* XXX: Check if the mapping is lower than the mapped gfn */
> (Nested: What is this about?)
>
>> +    /* This gfn is higher than the highest the p2m map currently holds */
>> +    if ( gfn_x(gfn) > gfn_x(p2m->max_mapped_gfn) )
>> +    {
>> +        for ( level = P2M_ROOT_LEVEL; level; level-- )
>> +            if ( (gfn_x(gfn) & (XEN_PT_LEVEL_MASK(level) >> PAGE_SHIFT)) >
> ... into the more narrow scope where another XEN_PT_LEVEL_MASK() exists I
> can't really spot what the check is to guard against.
>
>> +                 gfn_x(p2m->max_mapped_gfn) )
>> +                break;
>> +
>> +        goto out;
>> +    }
>> +
>> +    table = p2m_get_root_pointer(p2m, gfn);
>> +
>> +    /*
>> +     * the table should always be non-NULL because the gfn is below
>> +     * p2m->max_mapped_gfn and the root table pages are always present.
>> +     */
> Nit: Style.
>
>> +    if ( !table )
>> +    {
>> +        ASSERT_UNREACHABLE();
>> +        level = P2M_ROOT_LEVEL;
>> +        goto out;
>> +    }
>> +
>> +    for ( level = P2M_ROOT_LEVEL; level; level-- )
>> +    {
>> +        rc = p2m_next_level(p2m, true, level, &table, offsets[level]);
> Why would you blindly allocate a page table (hierarchy) here? If anything,
> this may need doing upon caller request (as it's only up the call chain
> where the necessary knowledge exists).

I wanted to set it to always|false|, as based on the name|p2m_get_entry()|,
it is expected that the page tables are already allocated.

> For example, ...
>
>> +static mfn_t p2m_lookup(struct p2m_domain *p2m, gfn_t gfn, p2m_type_t *t)
>> +{
>> +    mfn_t mfn;
>> +
>> +    p2m_read_lock(p2m);
>> +    mfn = p2m_get_entry(p2m, gfn, t, NULL, NULL);
> ... this (by its name) pretty likely won't want allocation, while ...
>
>> +    p2m_read_unlock(p2m);
>> +
>> +    return mfn;
>> +}
>> +
>> +struct page_info *p2m_get_page_from_gfn(struct p2m_domain *p2m, gfn_t gfn,
>> +                                        p2m_type_t *t)
>> +{
> ... this will. Yet then ...

I didn't really get why p2m_get_page_from_gfn() is expected to allocate
page table. My understanding is that GFN will point to a page only if
a mapping was done before for the GFN.

>
>> +    struct page_info *page;
>> +    p2m_type_t p2mt = p2m_invalid;
>> +    mfn_t mfn = p2m_lookup(p2m, gfn, t);
> ... you use the earlier one here.

We don't need|page_order| and/or the valid bit in|p2m_get_page_from_gfn()|.

>
>> +    if ( !mfn_valid(mfn) )
>> +        return NULL;
>> +
>> +    if ( t )
>> +        p2mt = *t;
>> +
>> +    page = mfn_to_page(mfn);
>> +
>> +    /*
>> +     * get_page won't work on foreign mapping because the page doesn't
>> +     * belong to the current domain.
>> +     */
>> +    if ( p2m_is_foreign(p2mt) )
>> +    {
>> +        struct domain *fdom = page_get_owner_and_reference(page);
>> +        ASSERT(fdom != NULL);
>> +        ASSERT(fdom != p2m->domain);
>> +        return page;
> In a release build (with no assertions) this will be wrong if either of the
> two condition would not be satisfied. See x86'es respective code.

I will add the following then instead:
     if ( unlikely(p2m_is_foreign(t)) )
     {
         const struct domain *fdom = page_get_owner_and_reference(page);

         if ( fdom )
         {
             if ( likely(fdom != d) )
                 return page;
             ASSERT_UNREACHABLE();
             put_page(page);
         }

         return NULL;
     }

I'm not sure that unlikely() is needed, x86 has it.
It seems then Arm needs such a change too.

Thanks.

~ Oleksii


--------------t0OIcO9CZCU0XKU2PJ9JQBKp
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/11/25 3:25 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:f7f81e65-5c85-4e30-a68b-01cdcf51dc07@suse.com">
      <pre wrap="" class="moz-quote-pre">On 31.07.2025 17:58, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">Introduce helper functions for safely querying the P2M (physical-to-machine)
mapping:
 - add p2m_read_lock(), p2m_read_unlock(), and p2m_is_locked() for managing
   P2M lock state.
 - Implement p2m_get_entry() to retrieve mapping details for a given GFN,
   including MFN, page order, and validity.
 - Add p2m_lookup() to encapsulate read-locked MFN retrieval.
 - Introduce p2m_get_page_from_gfn() to convert a GFN into a page_info
   pointer, acquiring a reference to the page if valid.
 - Introduce get_page().

Implementations are based on Arm's functions with some minor modifications:
- p2m_get_entry():
  - Reverse traversal of page tables, as RISC-V uses the opposite level
    numbering compared to Arm.
  - Removed the return of p2m_access_t from p2m_get_entry() since
    mem_access_settings is not introduced for RISC-V.
  - Updated BUILD_BUG_ON() to check using the level 0 mask, which corresponds
    to Arm's THIRD_MASK.
  - Replaced open-coded bit shifts with the BIT() macro.
  - Other minor changes, such as using RISC-V-specific functions to validate
    P2M PTEs, and replacing Arm-specific GUEST_* macros with their RISC-V
    equivalents.

Signed-off-by: Oleksii Kurochko <a class="moz-txt-link-rfc2396E"
        href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>
---
Changes in V3:
 - Add is_p2m_foreign() macro and connected stuff.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">What is this about?</pre>
    </blockquote>
    <pre>Sorry for that, it is a stale change. I will drop it in the next patch version.

</pre>
    <blockquote type="cite"
      cite="mid:f7f81e65-5c85-4e30-a68b-01cdcf51dc07@suse.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/include/asm/p2m.h
+++ b/xen/arch/riscv/include/asm/p2m.h
@@ -202,6 +202,24 @@ static inline int p2m_is_write_locked(struct p2m_domain *p2m)
 
 unsigned long construct_hgatp(struct p2m_domain *p2m, uint16_t vmid);
 
+static inline void p2m_read_lock(struct p2m_domain *p2m)
+{
+    read_lock(&amp;p2m-&gt;lock);
+}
+
+static inline void p2m_read_unlock(struct p2m_domain *p2m)
+{
+    read_unlock(&amp;p2m-&gt;lock);
+}
+
+static inline int p2m_is_locked(struct p2m_domain *p2m)
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">bool return type (also for p2m_is_write_locked() in patch 11)? Also perhaps
pointer-to-const parameter?</pre>
    </blockquote>
    <pre>I haven't checked what is a argument type of rw_is_locked() inside, so, automatically
use just pointer parameter, but now I see that it could be really const.

</pre>
    <blockquote type="cite"
      cite="mid:f7f81e65-5c85-4e30-a68b-01cdcf51dc07@suse.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -852,3 +852,139 @@ int map_regions_p2mt(struct domain *d,
 {
     return p2m_insert_mapping(p2m_get_hostp2m(d), gfn, nr, mfn, p2mt);
 }
+
+/*
+ * Get the details of a given gfn.
+ *
+ * If the entry is present, the associated MFN will be returned type filled up.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">This sentence doesn't really parse, perhaps due to missing words.</pre>
    </blockquote>
    <pre>IDK what happened but it should be:
  ... the associated MFN will returned and type filled up ...
Perhpaps, it would be better just:
  ... the associated MFN will returned and the p2m type of the mapping.
  (or just entry's type)

</pre>
    <blockquote type="cite"
      cite="mid:f7f81e65-5c85-4e30-a68b-01cdcf51dc07@suse.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+ * The page_order will correspond to the order of the mapping in the page
+ * table (i.e it could be a superpage).
+ *
+ * If the entry is not present, INVALID_MFN will be returned and the
+ * page_order will be set according to the order of the invalid range.
+ *
+ * valid will contain the value of bit[0] (e.g valid bit) of the
+ * entry.
+ */
+static mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn,
+                           p2m_type_t *t,
+                           unsigned int *page_order,
+                           bool *valid)
+{
+    unsigned int level = 0;
+    pte_t entry, *table;
+    int rc;
+    mfn_t mfn = INVALID_MFN;
+    DECLARE_OFFSETS(offsets, gfn_to_gaddr(gfn));
+
+    ASSERT(p2m_is_locked(p2m));
+    BUILD_BUG_ON(XEN_PT_LEVEL_MAP_MASK(0) != PAGE_MASK);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">What function-wide property is this check about? Even when moved ...</pre>
    </blockquote>
    <pre>I think this check isn't needed anymore.

This check is/was needed to be sure that 4k page(s) are used on L3 (in Arm terms)
mapping as Arm can support 4k, 16k and 64k.
Initially this check derived from:
  <a class="moz-txt-link-freetext" href="https://lore.kernel.org/xen-devel/1402394278-9850-4-git-send-email-ian.campbell@citrix.com/">https://lore.kernel.org/xen-devel/1402394278-9850-4-git-send-email-ian.campbell@citrix.com/</a>
And it was needed because of the way how maddr is calculated, calculation for which
could be wrong if page size isn't 4k.
But then this check was migrated to p2m_get_entry():
  <a class="moz-txt-link-freetext" href="https://lore.kernel.org/xen-devel/1469717505-8026-13-git-send-email-julien.grall@arm.com/">https://lore.kernel.org/xen-devel/1469717505-8026-13-git-send-email-julien.grall@arm.com/</a>
But the way how maddr is got isn't depends on mask and PAGE_MASK, and I don't see any other
reason to why BUILD_BUG_ON() is needed now.

</pre>
    <blockquote type="cite"
      cite="mid:f7f81e65-5c85-4e30-a68b-01cdcf51dc07@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    if ( valid )
+        *valid = false;
+
+    /* XXX: Check if the mapping is lower than the mapped gfn */
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">(Nested: What is this about?)

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    /* This gfn is higher than the highest the p2m map currently holds */
+    if ( gfn_x(gfn) &gt; gfn_x(p2m-&gt;max_mapped_gfn) )
+    {
+        for ( level = P2M_ROOT_LEVEL; level; level-- )
+            if ( (gfn_x(gfn) &amp; (XEN_PT_LEVEL_MASK(level) &gt;&gt; PAGE_SHIFT)) &gt;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">... into the more narrow scope where another XEN_PT_LEVEL_MASK() exists I
can't really spot what the check is to guard against.

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+                 gfn_x(p2m-&gt;max_mapped_gfn) )
+                break;
+
+        goto out;
+    }
+
+    table = p2m_get_root_pointer(p2m, gfn);
+
+    /*
+     * the table should always be non-NULL because the gfn is below
+     * p2m-&gt;max_mapped_gfn and the root table pages are always present.
+     */
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">Nit: Style.

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    if ( !table )
+    {
+        ASSERT_UNREACHABLE();
+        level = P2M_ROOT_LEVEL;
+        goto out;
+    }
+
+    for ( level = P2M_ROOT_LEVEL; level; level-- )
+    {
+        rc = p2m_next_level(p2m, true, level, &amp;table, offsets[level]);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">Why would you blindly allocate a page table (hierarchy) here? If anything,
this may need doing upon caller request (as it's only up the call chain
where the necessary knowledge exists). </pre>
    </blockquote>
    <pre>I wanted to set it to always <code data-start="77"
    data-end="84">false</code>, as based on the name <code
    data-start="107" data-end="124">p2m_get_entry()</code>,
it is expected that the page tables are already allocated.

</pre>
    <blockquote type="cite"
      cite="mid:f7f81e65-5c85-4e30-a68b-01cdcf51dc07@suse.com">
      <pre wrap="" class="moz-quote-pre">For example, ...

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+static mfn_t p2m_lookup(struct p2m_domain *p2m, gfn_t gfn, p2m_type_t *t)
+{
+    mfn_t mfn;
+
+    p2m_read_lock(p2m);
+    mfn = p2m_get_entry(p2m, gfn, t, NULL, NULL);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">... this (by its name) pretty likely won't want allocation, while ...

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    p2m_read_unlock(p2m);
+
+    return mfn;
+}
+
+struct page_info *p2m_get_page_from_gfn(struct p2m_domain *p2m, gfn_t gfn,
+                                        p2m_type_t *t)
+{
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">... this will. Yet then ...</pre>
    </blockquote>
    <pre>I didn't really get why p2m_get_page_from_gfn() is expected to allocate
page table. My understanding is that GFN will point to a page only if
a mapping was done before for the GFN.

</pre>
    <blockquote type="cite"
      cite="mid:f7f81e65-5c85-4e30-a68b-01cdcf51dc07@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    struct page_info *page;
+    p2m_type_t p2mt = p2m_invalid;
+    mfn_t mfn = p2m_lookup(p2m, gfn, t);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">... you use the earlier one here.</pre>
    </blockquote>
    <pre data-start="48" data-end="127">We don't need <code
    data-start="62" data-end="74">page_order</code> and/or the valid bit in <code
    data-start="99" data-end="124">p2m_get_page_from_gfn()</code>.

</pre>
    <blockquote type="cite"
      cite="mid:f7f81e65-5c85-4e30-a68b-01cdcf51dc07@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    if ( !mfn_valid(mfn) )
+        return NULL;
+
+    if ( t )
+        p2mt = *t;
+
+    page = mfn_to_page(mfn);
+
+    /*
+     * get_page won't work on foreign mapping because the page doesn't
+     * belong to the current domain.
+     */
+    if ( p2m_is_foreign(p2mt) )
+    {
+        struct domain *fdom = page_get_owner_and_reference(page);
+        ASSERT(fdom != NULL);
+        ASSERT(fdom != p2m-&gt;domain);
+        return page;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">In a release build (with no assertions) this will be wrong if either of the
two condition would not be satisfied. See x86'es respective code.</pre>
    </blockquote>
    <pre>I will add the following then instead:
    if ( unlikely(p2m_is_foreign(t)) )
    {
        const struct domain *fdom = page_get_owner_and_reference(page);

        if ( fdom )
        {
            if ( likely(fdom != d) )
                return page;
            ASSERT_UNREACHABLE();
            put_page(page);
        }

        return NULL;
    }
</pre>
    <pre>I'm not sure that unlikely() is needed, x86 has it.
It seems then Arm needs such a change too.

Thanks.

~ Oleksii
</pre>
    <br>
  </body>
</html>

--------------t0OIcO9CZCU0XKU2PJ9JQBKp--


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 12:56:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 12:56:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078766.1439816 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uloYK-0007Ey-Mb; Tue, 12 Aug 2025 12:56:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078766.1439816; Tue, 12 Aug 2025 12:56: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 1uloYK-0007Er-JJ; Tue, 12 Aug 2025 12:56:32 +0000
Received: by outflank-mailman (input) for mailman id 1078766;
 Tue, 12 Aug 2025 12:56:31 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qHa6=2Y=net-space.pl=dkiper@srs-se1.protection.inumbo.net>)
 id 1uloYJ-0007El-Nd
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 12:56:31 +0000
Received: from dibed.net-space.pl (dibed.net-space.pl [84.10.22.86])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c3b27156-777b-11f0-a327-13f23c93f187;
 Tue, 12 Aug 2025 14:56:30 +0200 (CEST)
Received: from router-fw.i.net-space.pl ([192.168.52.1]:37208 "EHLO
 tomti.i.net-space.pl") by router-fw-old.i.net-space.pl with ESMTP
 id S1948803AblHLM41 (ORCPT <rfc822;xen-devel@lists.xenproject.org>);
 Tue, 12 Aug 2025 14:56:27 +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>
X-Inumbo-ID: c3b27156-777b-11f0-a327-13f23c93f187
X-Comment: RFC 2476 MSA function at dibed.net-space.pl logged sender identity as: dkiper
Date:	Tue, 12 Aug 2025 14:56:26 +0200
From:	Daniel Kiper <dkiper@net-space.pl>
To:	Aaron Rainbolt <arraybolt3@gmail.com>
Cc:	grub-devel@gnu.org, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 1/2] include/xen: Rename MAX_GUEST_CMDLINE to
 GRUB_XEN_MAX_GUEST_CMDLINE
Message-ID: <20250812125626.ljpldcevarcmgiyb@tomti.i.net-space.pl>
References: <20250804234816.3d14f53f@kf-m2g5>
 <20250804234911.3cc3997c@kf-m2g5>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250804234911.3cc3997c@kf-m2g5>
User-Agent: NeoMutt/20170113 (1.7.2)

On Mon, Aug 04, 2025 at 11:49:11PM -0500, Aaron Rainbolt wrote:
> The xen.h header was using an overly generic name to refer to the
> maximum length of the command line passed from Xen to a guest. Rename it
> to avoid confusion or conflicts in the future.
>
> Signed-off-by: Aaron Rainbolt <arraybolt3@gmail.com>

Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>

Daniel


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 14:52:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 14:52:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078791.1439826 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulqMj-0004fH-Rk; Tue, 12 Aug 2025 14:52:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078791.1439826; Tue, 12 Aug 2025 14: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 1ulqMj-0004fA-Ok; Tue, 12 Aug 2025 14:52:41 +0000
Received: by outflank-mailman (input) for mailman id 1078791;
 Tue, 12 Aug 2025 14:52:41 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=OhhA=2Y=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1ulqMi-0004es-N5
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 14:52:41 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fd2410d0-778b-11f0-a327-13f23c93f187;
 Tue, 12 Aug 2025 16:52:39 +0200 (CEST)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-61580eb7995so11235477a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 12 Aug 2025 07:52:38 -0700 (PDT)
Received: from [192.168.1.17] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-615a8f28374sm20606620a12.24.2025.08.12.07.52.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Aug 2025 07:52: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>
X-Inumbo-ID: fd2410d0-778b-11f0-a327-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1755010357; x=1755615157; darn=lists.xenproject.org;
        h=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=vcsLAubzFhAWxIF25HITPyXvlnHVvVmwmyePy+kyVVc=;
        b=B72wJobrESusdJ7vTvT6k+AqZJYyxbLBOf6e55O7Q3kyjMtWIVZLfsif0gVeW+hI7G
         ELKSDKH5fhBaTMQdgwrlGnqOiuBgu4d9ZqSzW5Jtj11JHX71DLKVCDkAHwgAiPNYhL9Q
         rjoAVu8ccKDZ8V/Setjdivui3yWHQMbA+DI6aqbEvhdUu2C1ZR2ZPt0r24zYj3FRPP9F
         UGXZl5F74p3ble6dMHN3UCDwPfMXQLCwx9oQTvZNr7HTVa2BmdDWl4Zz9t67OJ3s9W7A
         nBiv/bIzGCCHZHtVeuQFKuiMjnKrwzH+zmMHKE6WzotPwuzILLrbuY/RWCFe8LemK0Hc
         slHg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755010357; x=1755615157;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=vcsLAubzFhAWxIF25HITPyXvlnHVvVmwmyePy+kyVVc=;
        b=MBys+TT0AvyEUOYlr1Yv3kw0tot56iHFjOoqEoMHh+TUw/BnGxl3CvTZ84yvSo4LqJ
         q9/4zq0MEqOK27J0SXSgJv3YgUJduoGfknhL7wvhPfCxPXmGoQnVg84HFhH3K63+Ilj2
         M1gSpJxkoLhldzP2O1skA9nWCrCKCiyZFUApEhxBOIL+LZHZXqWCiuEOZQxaV7hlWfQZ
         fQ6tA26yTt+v0ineoAe8Wv0tQGFXrt20B8m3iB5+OYmq8GIjqXVBr7p/H/PlccyFHrep
         HjWH+GOCq0kcksNejMPzzCa0z4ZD5EWbZQp2cKvp6GaN0pWfb1vSREzwEOdYZ6ZvbA7q
         BIvg==
X-Forwarded-Encrypted: i=1; AJvYcCXgcxHiVVGXkABtvVacXSSeI9188AGN+c3naFiGHiAwSvJaNTF55t8gOfC9tmmNeC2qsM8Tr2Pdyns=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxfWbgxtpkw1sLghqroO98KaCqDBoeINYgPRWwURrk45Fynj/8R
	s3QEDOTFgtv5+SCwKQr6AaSfed14zzhxRk7tg6jc/r+shZVGw1FEWNXQ
X-Gm-Gg: ASbGncv1d7GonnQ4VjwsKyMmF30wHtK6aNAdWuQRNx/4OWvNa/pT4W0kPrEO6WDZb2s
	cdH93RP60VqCqteSUq9TheL/WugVfb3SQQ3Kf36RLOZV8yWYa2gVEJ0PmbN6cX3zdXTx+Jj4KNQ
	NCqTaBVz1gbbNYJikgQEYWNyYgir0w8V+sFx3XQmZ75m5PLBzARpK3VBdXF6YNSHlm2JHLhGWqx
	ZVMA9V3wNmG5tlP7aNhsO02pRDuuY3kbA4Xjm4zwXhVImRV2uRgtM66Fd5UYRKBFOL3SwOzO1/D
	gvN7rAMX4LCfMa0/86LpV8DQLYjXCGHdHpgZ6CzrIlZx9teZOUiad4kxh2ar/ZyhNolWJxgiE4o
	f1SE8OX/WLCLycwem8gxoPeqa9KoELFLbdfSszdwBaIEEEh5sUnEEIAEVGInxXdfWbK6iMZ2J
X-Google-Smtp-Source: AGHT+IFhaJNYuEt2o1kce8dIKJ1aA2RRtRhSCokuvH9RkfNga3OWtUNk7/5sBX2UTtnTByuUUzwfmQ==
X-Received: by 2002:a50:9356:0:b0:615:7e88:ef95 with SMTP id 4fb4d7f45d1cf-6184dbb3101mr2134601a12.11.1755010356974;
        Tue, 12 Aug 2025 07:52:36 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------nNjh60kUbwPkc03zVml00qG0"
Message-ID: <b8781695-5fb4-456b-8c40-6bebea5a1af5@gmail.com>
Date: Tue, 12 Aug 2025 16:52:35 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 20/20] xen/riscv: introduce metadata table to store P2M
 type
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <802d757c167121c0a5ae2e529f5a365f779c5e59.1753973161.git.oleksii.kurochko@gmail.com>
 <12adb163-5f6b-4478-9592-7423b8db69a9@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <12adb163-5f6b-4478-9592-7423b8db69a9@suse.com>

This is a multi-part message in MIME format.
--------------nNjh60kUbwPkc03zVml00qG0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 8/11/25 5:44 PM, Jan Beulich wrote:
> On 31.07.2025 17:58, Oleksii Kurochko wrote:
>> RISC-V's PTE has only two available bits that can be used to store the P2M
>> type. This is insufficient to represent all the current RISC-V P2M types.
>> Therefore, some P2M types must be stored outside the PTE bits.
>>
>> To address this, a metadata table is introduced to store P2M types that
>> cannot fit in the PTE itself. Not all P2M types are stored in the
>> metadata tableâ€”only those that require it.
>>
>> The metadata table is linked to the intermediate page table via the
>> `struct page_info`'s list field of the corresponding intermediate page.
>>
>> To simplify the allocation and linking of intermediate and metadata page
>> tables, `p2m_{alloc,free}_table()` functions are implemented.
>>
>> These changes impact `p2m_split_superpage()`, since when a superpage is
>> split, it is necessary to update the metadata table of the new
>> intermediate page table â€” if the entry being split has its P2M type set
>> to `p2m_ext_storage` in its `P2M_TYPES` bits.
> Oh, this was an aspect I didn't realize when commenting on the name of
> the enumerator. I think you want to keep the name for the purpose here,
> but you better wouldn't apply relational operators to it (and hence
> have a second value to serve that purpose).

It could be done in this way, but I think that it would be better just to have
one value with a better name as I suggested in the reply to other patch.

>
>> In addition to updating
>> the metadata of the new intermediate page table, the corresponding entry
>> in the metadata for the original superpage is invalidated.
>>
>> Also, update p2m_{get,set}_type to work with P2M types which don't fit
>> into PTE bits.
>>
>> Signed-off-by: Oleksii Kurochko<oleksii.kurochko@gmail.com>
> No Suggested-by: or anything?

Sorry for that, Suggested-by should be added here, I'll fix that in the
next patch series version.

>
>> --- a/xen/arch/riscv/include/asm/mm.h
>> +++ b/xen/arch/riscv/include/asm/mm.h
>> @@ -150,6 +150,15 @@ struct page_info
>>               /* Order-size of the free chunk this page is the head of. */
>>               unsigned int order;
>>           } free;
>> +
>> +        /* Page is used to store metadata: p2m type. */
> That's not correct. The page thus described is what the pointer below
> points to. Here it's more like "Page is used as an intermediate P2M
> page table".
>
>> +        struct {
>> +            /*
>> +             * Pointer to a page which store metadata for an intermediate page
>> +             * table.
>> +             */
>> +            struct page_info *metadata;
>> +        } md;
> In the description you say you would re-use the list field.

It was so in a first version of storing P2M type outside PTE bits, so, it is a
stale part of the commit message. I'll correct it.

>
>> --- a/xen/arch/riscv/p2m.c
>> +++ b/xen/arch/riscv/p2m.c
>> @@ -101,7 +101,16 @@ static int p2m_alloc_root_table(struct p2m_domain *p2m)
>>   {
>>       struct domain *d = p2m->domain;
>>       struct page_info *page;
>> -    const unsigned int nr_root_pages = P2M_ROOT_PAGES;
>> +    /*
>> +     * If the root page table starts at Level <= 2, and since only 1GB, 2MB,
>> +     * and 4KB mappings are supported (as enforced by the ASSERT() in
>> +     * p2m_set_entry()), it is necessary to allocate P2M_ROOT_PAGES for
>> +     * the root page table itself, plus an additional P2M_ROOT_PAGES for
>> +     * metadata storage. This is because only two free bits are available in
>> +     * the PTE, which are not sufficient to represent all possible P2M types.
>> +     */
>> +    const unsigned int nr_root_pages = P2M_ROOT_PAGES *
>> +                                       ((P2M_ROOT_LEVEL <= 2) ? 2 : 1);
>>   
>>       /*
>>        * Return back nr_root_pages to assure the root table memory is also
>> @@ -114,6 +123,23 @@ static int p2m_alloc_root_table(struct p2m_domain *p2m)
>>       if ( !page )
>>           return -ENOMEM;
>>   
>> +    if ( P2M_ROOT_LEVEL <= 2 )
>> +    {
>> +        /*
>> +         * In the case where P2M_ROOT_LEVEL <= 2, it is necessary to allocate
>> +         * a page of the same size as that used for the root page table.
>> +         * Therefore, p2m_allocate_root() can be safely reused.
>> +         */
>> +        struct page_info *metadata = p2m_allocate_root(d);
>> +        if ( !metadata )
>> +        {
>> +            free_domheap_pages(page, P2M_ROOT_ORDER);
>> +            return -ENOMEM;
>> +        }
>> +
>> +        page->v.md.metadata = metadata;
> Don't you need to install such a link for every one of the 4 pages?

Yes, I need to do that. Thanks.

>
>> @@ -198,24 +224,25 @@ static pte_t *p2m_get_root_pointer(struct p2m_domain *p2m, gfn_t gfn)
>>       return __map_domain_page(p2m->root + root_table_indx);
>>   }
>>   
>> -static int p2m_set_type(pte_t *pte, p2m_type_t t)
>> +static void p2m_set_type(pte_t *pte, const p2m_type_t t, const unsigned int i)
>>   {
>> -    int rc = 0;
>> -
>>       if ( t > p2m_ext_storage )
>> -        panic("unimplemeted\n");
>> +    {
>> +        ASSERT(pte);
>> +
>> +        pte[i].pte = t;
> What does i identify here?

An index in metadata page where P2M type for corresponding PTE is stored.
I will re-name it to metadata_indx for more clarity.

>
>> +    }
>>       else
>>           pte->pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
>> -
>> -    return rc;
>>   }
>>   
>> -static p2m_type_t p2m_get_type(const pte_t pte)
>> +static p2m_type_t p2m_get_type(const pte_t pte, const pte_t *metadata,
>> +                               const unsigned int i)
>>   {
>>       p2m_type_t type = MASK_EXTR(pte.pte, P2M_TYPE_PTE_BITS_MASK);
>>   
>>       if ( type == p2m_ext_storage )
>> -        panic("unimplemented\n");
>> +        type = metadata[i].pte;
>>   
>>       return type;
>>   }
> Overall this feels pretty fragile, as the caller has to pass several values
> which all need to be in sync with one another. If you ...

Generally, agree it is fragile enough.

>
>> @@ -265,7 +292,10 @@ static void p2m_set_permission(pte_t *e, p2m_type_t t)
>>       }
>>   }
>>   
>> -static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t, bool is_table)
>> +static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t,
>> +                              struct page_info *metadata_pg,
>> +                              const unsigned int indx,
>> +                              bool is_table)
>>   {
>>       pte_t e = (pte_t) { PTE_VALID };
>>   
>> @@ -285,12 +315,21 @@ static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t, bool is_table)
>>   
>>       if ( !is_table )
>>       {
>> +        pte_t *metadata = __map_domain_page(metadata_pg);
> ... map the page anyway, no matter whether ...
>
>>           p2m_set_permission(&e, t);
>>   
>> +        metadata[indx].pte = p2m_invalid;
>> +
>>           if ( t < p2m_ext_storage )
>> -            p2m_set_type(&e, t);
>> +            p2m_set_type(&e, t, indx);
>>           else
>> -            panic("unimplemeted\n");
>> +        {
>> +            e.pte |= MASK_INSR(p2m_ext_storage, P2M_TYPE_PTE_BITS_MASK);
>> +            p2m_set_type(metadata, t, indx);
>> +        }
> ... you'll actually use it, maybe best to map both pages at the same point?

Only one page is mapped here (?) and it should be mapped here, I suppose, it could be a case
when a previous set type is overwritten, so, it could be needed to invalidate a type written
in metadata.

> And as said elsewhere, no, I don't think you want to use p2m_set_type() for
> two entirely different purposes.

I wasn't very happy too, but, at the same time I didn't want to have a prototype where
it isn't really clear when it is needed to pass metadata and where it is not. But considering
your comments then this one solution isn't good too. So maybe it would be better just have
two separate functions: p2m_set_pte_type() and p2m_set_metadata_type().

>
>> @@ -323,22 +364,71 @@ static struct page_info *p2m_alloc_page(struct p2m_domain *p2m)
>>       return pg;
>>   }
>>   
>> +static void p2m_free_page(struct p2m_domain *p2m, struct page_info *pg);
>> +
>> +/*
>> + * Allocate a page table with an additional extra page to store
>> + * metadata for each entry of the page table.
>> + * Link this metadata page to page table page's list field.
>> + */
>> +static struct page_info * p2m_alloc_table(struct p2m_domain *p2m)
> Nit: Stray blank after * again.
>
>> +{
>> +    enum table_type
>> +    {
>> +        INTERMEDIATE_TABLE=0,
> If you really think you need the "= 0", then please with blanks around '='.
>
>> +        /*
>> +         * At the moment, metadata is going to store P2M type
>> +         * for each PTE of page table.
>> +         */
>> +        METADATA_TABLE,
>> +        TABLE_MAX
>> +    };
>> +
>> +    struct page_info *tables[TABLE_MAX];
>> +
>> +    for ( unsigned int i = 0; i < TABLE_MAX; i++ )
>> +    {
>> +        tables[i] = p2m_alloc_page(p2m);
>> +
>> +        if ( !tables[i] )
>> +            goto out;
>> +
>> +        clear_and_clean_page(tables[i]);
>> +    }
>> +
>> +    tables[INTERMEDIATE_TABLE]->v.md.metadata = tables[METADATA_TABLE];
>> +
>> +    return tables[INTERMEDIATE_TABLE];
>> +
>> + out:
>> +    for ( unsigned int i = 0; i < TABLE_MAX; i++ )
>> +        if ( tables[i] )
> You didn't clear all of tables[] first, though.

Oh, right, i missed an initalizer for tables[] array.

>   This kind of cleanup is
> often better done as
>
>      while ( i-- > 0 )
>          ...
>
> You don't even need an if() then, as you know allocations succeeded for all
> earlier array slots.

Yes, it looks very nice.

>
>> +            p2m_free_page(p2m, tables[i]);
>> +
>> +    return NULL;
>> +}
> I'm also surprised you allocate the metadata table no matter whether you'll
> actually need it. That'll double your average paging pool usage, when in a
> typical case only very few entries would actually require this extra
> storage.

Nice point, we could really do a delayed allocation instead and allocate only
when requested P2M type is > p2m_ext_storage.
I'll implement that.

>
>> @@ -453,10 +543,9 @@ static void p2m_put_2m_superpage(mfn_t mfn, p2m_type_t type)
>>   }
>>   
>>   /* Put any references on the page referenced by pte. */
>> -static void p2m_put_page(const pte_t pte, unsigned int level)
>> +static void p2m_put_page(const pte_t pte, unsigned int level, p2m_type_t p2mt)
>>   {
>>       mfn_t mfn = pte_get_mfn(pte);
>> -    p2m_type_t p2m_type = p2m_get_type(pte);
>>   
>>       ASSERT(pte_is_valid(pte));
>>   
>> @@ -470,10 +559,10 @@ static void p2m_put_page(const pte_t pte, unsigned int level)
>>       switch ( level )
>>       {
>>       case 1:
>> -        return p2m_put_2m_superpage(mfn, p2m_type);
>> +        return p2m_put_2m_superpage(mfn, p2mt);
>>   
>>       case 0:
>> -        return p2m_put_4k_page(mfn, p2m_type);
>> +        return p2m_put_4k_page(mfn, p2mt);
>>       }
>>   }
> Might it be better to introduce this function in this shape right away, in
> the earlier patch?

Agree, probably, I did that intentionally, but I don't remember why. I will try to
avoid these changes in this patch as it looks unnecessary here.

>
>> @@ -690,18 +791,23 @@ static int p2m_set_entry(struct p2m_domain *p2m,
>>       {
>>           /* We need to split the original page. */
>>           pte_t split_pte = *entry;
>> +        struct page_info *metadata = virt_to_page(table)->v.md.metadata;
> This (or along these lines) is how I would have expected things to be done
> elsewhere as well, limiting the amount of arguments you need to pass
> around.

I will try to re-use this approach elsewhere I can.

Thanks.

~ Oleksii

--------------nNjh60kUbwPkc03zVml00qG0
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/11/25 5:44 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:12adb163-5f6b-4478-9592-7423b8db69a9@suse.com">
      <pre wrap="" class="moz-quote-pre">On 31.07.2025 17:58, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">RISC-V's PTE has only two available bits that can be used to store the P2M
type. This is insufficient to represent all the current RISC-V P2M types.
Therefore, some P2M types must be stored outside the PTE bits.

To address this, a metadata table is introduced to store P2M types that
cannot fit in the PTE itself. Not all P2M types are stored in the
metadata tableâ€”only those that require it.

The metadata table is linked to the intermediate page table via the
`struct page_info`'s list field of the corresponding intermediate page.

To simplify the allocation and linking of intermediate and metadata page
tables, `p2m_{alloc,free}_table()` functions are implemented.

These changes impact `p2m_split_superpage()`, since when a superpage is
split, it is necessary to update the metadata table of the new
intermediate page table â€” if the entry being split has its P2M type set
to `p2m_ext_storage` in its `P2M_TYPES` bits.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Oh, this was an aspect I didn't realize when commenting on the name of
the enumerator. I think you want to keep the name for the purpose here,
but you better wouldn't apply relational operators to it (and hence
have a second value to serve that purpose).</pre>
    </blockquote>
    <pre>It could be done in this way, but I think that it would be better just to have
one value with a better name as I suggested in the reply to other patch.

</pre>
    <blockquote type="cite"
      cite="mid:12adb163-5f6b-4478-9592-7423b8db69a9@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">In addition to updating
the metadata of the new intermediate page table, the corresponding entry
in the metadata for the original superpage is invalidated.

Also, update p2m_{get,set}_type to work with P2M types which don't fit
into PTE bits.

Signed-off-by: Oleksii Kurochko <a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
No Suggested-by: or anything?</pre>
    </blockquote>
    <pre>Sorry for that, Suggested-by should be added here, I'll fix that in the
next patch series version.

</pre>
    <blockquote type="cite"
      cite="mid:12adb163-5f6b-4478-9592-7423b8db69a9@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/include/asm/mm.h
+++ b/xen/arch/riscv/include/asm/mm.h
@@ -150,6 +150,15 @@ struct page_info
             /* Order-size of the free chunk this page is the head of. */
             unsigned int order;
         } free;
+
+        /* Page is used to store metadata: p2m type. */
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
That's not correct. The page thus described is what the pointer below
points to. Here it's more like "Page is used as an intermediate P2M
page table".

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+        struct {
+            /*
+             * Pointer to a page which store metadata for an intermediate page
+             * table.
+             */
+            struct page_info *metadata;
+        } md;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
In the description you say you would re-use the list field.</pre>
    </blockquote>
    <pre>It was so in a first version of storing P2M type outside PTE bits, so, it is a 
stale part of the commit message. I'll correct it.

</pre>
    <blockquote type="cite"
      cite="mid:12adb163-5f6b-4478-9592-7423b8db69a9@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -101,7 +101,16 @@ static int p2m_alloc_root_table(struct p2m_domain *p2m)
 {
     struct domain *d = p2m-&gt;domain;
     struct page_info *page;
-    const unsigned int nr_root_pages = P2M_ROOT_PAGES;
+    /*
+     * If the root page table starts at Level &lt;= 2, and since only 1GB, 2MB,
+     * and 4KB mappings are supported (as enforced by the ASSERT() in
+     * p2m_set_entry()), it is necessary to allocate P2M_ROOT_PAGES for
+     * the root page table itself, plus an additional P2M_ROOT_PAGES for
+     * metadata storage. This is because only two free bits are available in
+     * the PTE, which are not sufficient to represent all possible P2M types.
+     */
+    const unsigned int nr_root_pages = P2M_ROOT_PAGES *
+                                       ((P2M_ROOT_LEVEL &lt;= 2) ? 2 : 1);
 
     /*
      * Return back nr_root_pages to assure the root table memory is also
@@ -114,6 +123,23 @@ static int p2m_alloc_root_table(struct p2m_domain *p2m)
     if ( !page )
         return -ENOMEM;
 
+    if ( P2M_ROOT_LEVEL &lt;= 2 )
+    {
+        /*
+         * In the case where P2M_ROOT_LEVEL &lt;= 2, it is necessary to allocate
+         * a page of the same size as that used for the root page table.
+         * Therefore, p2m_allocate_root() can be safely reused.
+         */
+        struct page_info *metadata = p2m_allocate_root(d);
+        if ( !metadata )
+        {
+            free_domheap_pages(page, P2M_ROOT_ORDER);
+            return -ENOMEM;
+        }
+
+        page-&gt;v.md.metadata = metadata;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Don't you need to install such a link for every one of the 4 pages?</pre>
    </blockquote>
    <pre>Yes, I need to do that. Thanks.

</pre>
    <blockquote type="cite"
      cite="mid:12adb163-5f6b-4478-9592-7423b8db69a9@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">@@ -198,24 +224,25 @@ static pte_t *p2m_get_root_pointer(struct p2m_domain *p2m, gfn_t gfn)
     return __map_domain_page(p2m-&gt;root + root_table_indx);
 }
 
-static int p2m_set_type(pte_t *pte, p2m_type_t t)
+static void p2m_set_type(pte_t *pte, const p2m_type_t t, const unsigned int i)
 {
-    int rc = 0;
-
     if ( t &gt; p2m_ext_storage )
-        panic("unimplemeted\n");
+    {
+        ASSERT(pte);
+
+        pte[i].pte = t;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
What does i identify here?</pre>
    </blockquote>
    <pre>An index in metadata page where P2M type for corresponding PTE is stored.
I will re-name it to metadata_indx for more clarity.

</pre>
    <blockquote type="cite"
      cite="mid:12adb163-5f6b-4478-9592-7423b8db69a9@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    }
     else
         pte-&gt;pte |= MASK_INSR(t, P2M_TYPE_PTE_BITS_MASK);
-
-    return rc;
 }
 
-static p2m_type_t p2m_get_type(const pte_t pte)
+static p2m_type_t p2m_get_type(const pte_t pte, const pte_t *metadata,
+                               const unsigned int i)
 {
     p2m_type_t type = MASK_EXTR(pte.pte, P2M_TYPE_PTE_BITS_MASK);
 
     if ( type == p2m_ext_storage )
-        panic("unimplemented\n");
+        type = metadata[i].pte;
 
     return type;
 }
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Overall this feels pretty fragile, as the caller has to pass several values
which all need to be in sync with one another. If you ...</pre>
    </blockquote>
    <pre>Generally, agree it is fragile enough.

</pre>
    <blockquote type="cite"
      cite="mid:12adb163-5f6b-4478-9592-7423b8db69a9@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">@@ -265,7 +292,10 @@ static void p2m_set_permission(pte_t *e, p2m_type_t t)
     }
 }
 
-static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t, bool is_table)
+static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t,
+                              struct page_info *metadata_pg,
+                              const unsigned int indx,
+                              bool is_table)
 {
     pte_t e = (pte_t) { PTE_VALID };
 
@@ -285,12 +315,21 @@ static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t, bool is_table)
 
     if ( !is_table )
     {
+        pte_t *metadata = __map_domain_page(metadata_pg);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
... map the page anyway, no matter whether ...

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">         p2m_set_permission(&amp;e, t);
 
+        metadata[indx].pte = p2m_invalid;
+
         if ( t &lt; p2m_ext_storage )
-            p2m_set_type(&amp;e, t);
+            p2m_set_type(&amp;e, t, indx);
         else
-            panic("unimplemeted\n");
+        {
+            e.pte |= MASK_INSR(p2m_ext_storage, P2M_TYPE_PTE_BITS_MASK);
+            p2m_set_type(metadata, t, indx);
+        }
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
... you'll actually use it, maybe best to map both pages at the same point?</pre>
    </blockquote>
    <pre>Only one page is mapped here (?) and it should be mapped here, I suppose, it could be a case
when a previous set type is overwritten, so, it could be needed to invalidate a type written
in metadata.

</pre>
    <blockquote type="cite"
      cite="mid:12adb163-5f6b-4478-9592-7423b8db69a9@suse.com">
      <pre wrap="" class="moz-quote-pre">
And as said elsewhere, no, I don't think you want to use p2m_set_type() for
two entirely different purposes.</pre>
    </blockquote>
    <pre>I wasn't very happy too, but, at the same time I didn't want to have a prototype where
it isn't really clear when it is needed to pass metadata and where it is not. But considering
your comments then this one solution isn't good too. So maybe it would be better just have
two separate functions: p2m_set_pte_type() and p2m_set_metadata_type().

</pre>
    <blockquote type="cite"
      cite="mid:12adb163-5f6b-4478-9592-7423b8db69a9@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">@@ -323,22 +364,71 @@ static struct page_info *p2m_alloc_page(struct p2m_domain *p2m)
     return pg;
 }
 
+static void p2m_free_page(struct p2m_domain *p2m, struct page_info *pg);
+
+/*
+ * Allocate a page table with an additional extra page to store
+ * metadata for each entry of the page table.
+ * Link this metadata page to page table page's list field.
+ */
+static struct page_info * p2m_alloc_table(struct p2m_domain *p2m)
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Nit: Stray blank after * again.

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+{
+    enum table_type
+    {
+        INTERMEDIATE_TABLE=0,
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
If you really think you need the "= 0", then please with blanks around '='.

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+        /*
+         * At the moment, metadata is going to store P2M type
+         * for each PTE of page table.
+         */
+        METADATA_TABLE,
+        TABLE_MAX
+    };
+
+    struct page_info *tables[TABLE_MAX];
+
+    for ( unsigned int i = 0; i &lt; TABLE_MAX; i++ )
+    {
+        tables[i] = p2m_alloc_page(p2m);
+
+        if ( !tables[i] )
+            goto out;
+
+        clear_and_clean_page(tables[i]);
+    }
+
+    tables[INTERMEDIATE_TABLE]-&gt;v.md.metadata = tables[METADATA_TABLE];
+
+    return tables[INTERMEDIATE_TABLE];
+
+ out:
+    for ( unsigned int i = 0; i &lt; TABLE_MAX; i++ )
+        if ( tables[i] )
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
You didn't clear all of tables[] first, though.</pre>
    </blockquote>
    <pre>Oh, right, i missed an initalizer for tables[] array.
</pre>
    <blockquote type="cite"
      cite="mid:12adb163-5f6b-4478-9592-7423b8db69a9@suse.com">
      <pre wrap="" class="moz-quote-pre"> This kind of cleanup is
often better done as

    while ( i-- &gt; 0 )
        ...

You don't even need an if() then, as you know allocations succeeded for all
earlier array slots.</pre>
    </blockquote>
    <pre>Yes, it looks very nice.

</pre>
    <blockquote type="cite"
      cite="mid:12adb163-5f6b-4478-9592-7423b8db69a9@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+            p2m_free_page(p2m, tables[i]);
+
+    return NULL;
+}
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
I'm also surprised you allocate the metadata table no matter whether you'll
actually need it. That'll double your average paging pool usage, when in a
typical case only very few entries would actually require this extra
storage.</pre>
    </blockquote>
    <pre>Nice point, we could really do a delayed allocation instead and allocate only
when requested P2M type is &gt; p2m_ext_storage.
I'll implement that.

</pre>
    <blockquote type="cite"
      cite="mid:12adb163-5f6b-4478-9592-7423b8db69a9@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">@@ -453,10 +543,9 @@ static void p2m_put_2m_superpage(mfn_t mfn, p2m_type_t type)
 }
 
 /* Put any references on the page referenced by pte. */
-static void p2m_put_page(const pte_t pte, unsigned int level)
+static void p2m_put_page(const pte_t pte, unsigned int level, p2m_type_t p2mt)
 {
     mfn_t mfn = pte_get_mfn(pte);
-    p2m_type_t p2m_type = p2m_get_type(pte);
 
     ASSERT(pte_is_valid(pte));
 
@@ -470,10 +559,10 @@ static void p2m_put_page(const pte_t pte, unsigned int level)
     switch ( level )
     {
     case 1:
-        return p2m_put_2m_superpage(mfn, p2m_type);
+        return p2m_put_2m_superpage(mfn, p2mt);
 
     case 0:
-        return p2m_put_4k_page(mfn, p2m_type);
+        return p2m_put_4k_page(mfn, p2mt);
     }
 }
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Might it be better to introduce this function in this shape right away, in
the earlier patch?</pre>
    </blockquote>
    <pre>Agree, probably, I did that intentionally, but I don't remember why. I will try to
avoid these changes in this patch as it looks unnecessary here.

</pre>
    <blockquote type="cite"
      cite="mid:12adb163-5f6b-4478-9592-7423b8db69a9@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">@@ -690,18 +791,23 @@ static int p2m_set_entry(struct p2m_domain *p2m,
     {
         /* We need to split the original page. */
         pte_t split_pte = *entry;
+        struct page_info *metadata = virt_to_page(table)-&gt;v.md.metadata;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
This (or along these lines) is how I would have expected things to be done
elsewhere as well, limiting the amount of arguments you need to pass
around.</pre>
    </blockquote>
    <pre>I will try to re-use this approach elsewhere I can.

Thanks.

~ Oleksii</pre>
  </body>
</html>

--------------nNjh60kUbwPkc03zVml00qG0--


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 15:08:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 15:08:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078806.1439835 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulqbr-0006YD-7X; Tue, 12 Aug 2025 15:08:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078806.1439835; Tue, 12 Aug 2025 15:08:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulqbr-0006Y6-4m; Tue, 12 Aug 2025 15:08:19 +0000
Received: by outflank-mailman (input) for mailman id 1078806;
 Tue, 12 Aug 2025 15:08:18 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=x9jM=2Y=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1ulqbq-0006Y0-1R
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 15:08:18 +0000
Received: from mail-wr1-x432.google.com (mail-wr1-x432.google.com
 [2a00:1450:4864:20::432])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2cca1aab-778e-11f0-a327-13f23c93f187;
 Tue, 12 Aug 2025 17:08:17 +0200 (CEST)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-3b914a9c77dso450334f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 12 Aug 2025 08:08:17 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3b8f5d7deaasm23807813f8f.65.2025.08.12.08.08.14
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 Aug 2025 08:08:15 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2cca1aab-778e-11f0-a327-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755011296; x=1755616096; 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=qUsMnAiYc/4Og+0dMtt5CNY6KmtsY345nCph8lKlO3w=;
        b=NykQsqGpzDJAxRPT+NvUQBMmnBmm3FMp748IdPqgK7wti4pbRSv4a286wH8wABSpoP
         P80njjiOa7sihUGxRgz6+nqQmnFmsPk3poEiaVmKSa7g93N6KaSkeaYagwp6TRJrShMx
         /Mg9AKMf7hzyb1vpgbSRzuQgVHVDWj8S4hA4I=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755011296; x=1755616096;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=qUsMnAiYc/4Og+0dMtt5CNY6KmtsY345nCph8lKlO3w=;
        b=fM+RbDx3t7bpSUyoY1IdWyH9z/pjczxllsOc8vbNLNpCjBoxBzIgS28HFqhVIQb3D6
         ppMAFBK9vb46SbUqDKwcJO//e9Q6UaQXt9wMNEChQ0zoPKBTvYQd4RsJHZnAuAgWWVwF
         0H+Cll1P+3R2tn++HOUtA9y+XB8sL3DloSX1LOoBGysWQuqiouwLBcyWg4SLHVF8yw4G
         t37UnFurSfoKA11ov7Lt/6ewRVxRD2zzeizL64oPQFzE/Ira13c+7rlzDI6PAEmfhHBM
         nJATk4zF2/wJ7lWVVC9lFt32MgrvRX+DfDjsg/ps2BE+9Sr+v7hbnYU1NJ3Ua8i6x8jh
         Ng6Q==
X-Gm-Message-State: AOJu0Yx6m7BO2NJSXc8UWGDKfpCgMBG7q21+lIo+ATMXhZbsSNZoJrQh
	qM+uIYGuAXspYco90JQMVzjQXpLfHqfmT/JEPOYt6n1y00hyEIDdmB/5s4C/TeK9EU+9mh9UYVk
	CwwlW
X-Gm-Gg: ASbGncvIRpnRQ1EEEiGNrRi1xdVTZ3Schx24Sn8WLwU+Qf6SFGGs55kdW4kVRlfvYzf
	OP6KBq/pSqeY0ZsLfIbK3CYt1G4Oih+H9p4HaU4Mo2XIx1qlRpATMwfDdbvg3ye+r/GA0IMKc1t
	gRA9j9E6/xTGOaMNtQbUZLZzGPTxnTtAGicgPxdIPpwjv+zdPxgB1jETBAJFwYIKBzey3nOstKU
	7Tigf8rSM6gake13al1n/NMe7+NagIEzoGk6LSnYBjtWmhgD6xFzI5tl/kfUa8zu6KvpXXDzQnc
	bCQQG0pe9ifa2LqwlK+u8nHWh/pCKR+JwjekmcWErkzUu/fOiJtnqO/YgGLwCTTFoxmfwQROyV8
	U5b7s2S58F9nEuKt2ZJL7AdlRWoWYjkfDBv8xRsGn7VPG0PqwFwey07UWe9JYTRwOKw==
X-Google-Smtp-Source: AGHT+IG+FQelw2vMQPdE/0azStuo5SvBxRWN0cxLaQWb5zTW50nmKbTHM6lBqDXXWTT3oZ7OE1uCwA==
X-Received: by 2002:a05:6000:200f:b0:3b7:940e:6520 with SMTP id ffacd0b85a97d-3b900b2d7d1mr11598431f8f.18.1755011295507;
        Tue, 12 Aug 2025 08:08:15 -0700 (PDT)
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>
Subject: [PATCH v5] pdx: introduce a new compression algorithm based on region offsets
Date: Tue, 12 Aug 2025 17:06:24 +0200
Message-ID: <20250812150624.64898-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.49.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

With the appearance of Intel Sierra Forest and Granite Rapids it's now
possible to get a production x86 host with the following memory map:

SRAT: Node 0 PXM 0 [0000000000000000, 000000007fffffff]
SRAT: Node 0 PXM 0 [0000000100000000, 000000807fffffff]
SRAT: Node 1 PXM 1 [0000063e80000000, 000006be7fffffff]
SRAT: Node 2 PXM 2 [00000c7e80000000, 00000cfe7fffffff]
SRAT: Node 3 PXM 3 [000012be80000000, 0000133e7fffffff]

This is from a four socket Granite Rapids system, with each node having
512GB of memory.  The total amount of RAM on the system is 2TB, but without
enabling CONFIG_BIGMEM the last range is not accessible, as it's above the
16TB boundary covered by the frame table. Sierra Forest and Granite Rapids
are socket compatible, however Sierra Forest only supports 2 socket
configurations, while Granite Rapids can go up to 8 sockets.

Note that while the memory map is very sparse, it couldn't be compressed
using the current PDX_MASK compression algorithm, which relies on all
ranges having a shared zeroed region of bits that can be removed.

The memory map presented above has the property of all regions being
similarly spaced between each other, and all having also a similar size.
Use a lookup table to store the offsets to translate from/to PFN and PDX
spaces.  Such table is indexed based on the input PFN or PDX to translated.
The example PFN layout about would get compressed using the following:

PFN compression using PFN lookup table shift 29 and PDX region size 0x10000000
 range 0 [0000000000000, 0x0000807ffff] PFN IDX  0 : 0000000000000
 range 1 [0x00063e80000, 0x0006be7ffff] PFN IDX  3 : 0x00053e80000
 range 2 [0x000c7e80000, 0x000cfe7ffff] PFN IDX  6 : 0x000a7e80000
 range 3 [0x0012be80000, 0x00133e7ffff] PFN IDX  9 : 0x000fbe80000

Note how the tow ranges belonging to node 0 get merged into a single PDX
region by the compression algorithm.

The default size of lookup tables currently set in Kconfig is 64 entries,
and the example memory map consumes 10 entries.  Such memory map is from a
4 socket Granite Rapids host, which in theory supports up to 8 sockets
according to Intel documentation.  Assuming the layout of a 8 socket system
is similar to the 4 socket one, it would require 21 lookup table entries to
support it, way below the current default of 64 entries.

The valid range of lookup table size is currently restricted from 1 to 512
elements in Kconfig.

An extra array is used to keep track of the base PFN for each translated
range.  Non used slots are set to ~0UL, so that in mfn_valid() the mfn <
base check always fails, thus reporting the mfn as invalid.

Introduce __init_or_pdx_mask and use it on some shared functions between
PDX mask and offset compression, as otherwise some code becomes unreachable
after boot if PDX offset compression is used.  Mark the code as __init in
that case, so it's pruned after boot.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
Changes since v4:
 - Fold pfn_offset_sanitize_ranges() into pfn_pdx_compression_setup().
 - Fix usage of SWAP().
 - Indented code block added to mfn_valid().
 - Optimize a loop.
 - Move definition of pdx_region_size.

Changes since v3:
 - Rename __init_or_pdx_mask.
 - Reorder logic in pfn_offset_sanitize_ranges() to reduce code.
 - Print a message if the table index is truncated from what would be
   required to represent all input ranges independently.
 - Cast size to paddr_t for pdx_init_mask() call.

Changes since v2:
 - s/PDX_OFFSET_TLB_ORDER/PDX_OFFSET_TBL_ORDER/.
 - Fix changelog mention of Sapphire Rapids.
 - Misc fixes in the test harness.
 - Use SWAP() macro.
 - Introduce an extra table to keep the bases of the valid ranges.

Changes since v1:
 - Use a lookup table with the offsets.
 - Split the adding of the test to a pre-patch.
 - Amend diagram to also show possible padding after compression.
---
 CHANGELOG.md               |   3 +
 tools/tests/pdx/.gitignore |   1 +
 tools/tests/pdx/Makefile   |   3 +-
 tools/tests/pdx/harness.h  |  14 +++
 tools/tests/pdx/test-pdx.c |   4 +
 xen/common/Kconfig         |  21 +++-
 xen/common/pdx.c           | 241 ++++++++++++++++++++++++++++++++++++-
 xen/include/xen/pdx.h      |  87 ++++++++++++-
 8 files changed, 368 insertions(+), 6 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5f31ca08fe3f..f9ef893f4851 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -20,6 +20,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
      grant table or foreign memory.
 
 ### Added
+ - Introduce new PDX compression algorithm to cope with Intel Sierra Forest and
+   Granite Rapids having sparse memory maps.
+
  - On x86:
    - Option to attempt to fixup p2m page-faults on PVH dom0.
    - Resizable BARs is supported for PVH dom0.
diff --git a/tools/tests/pdx/.gitignore b/tools/tests/pdx/.gitignore
index a32c7db4de79..1202a531a7fd 100644
--- a/tools/tests/pdx/.gitignore
+++ b/tools/tests/pdx/.gitignore
@@ -1,2 +1,3 @@
 /pdx.h
 /test-pdx-mask
+/test-pdx-offset
diff --git a/tools/tests/pdx/Makefile b/tools/tests/pdx/Makefile
index b3734afde686..10b354f0cefd 100644
--- a/tools/tests/pdx/Makefile
+++ b/tools/tests/pdx/Makefile
@@ -1,7 +1,7 @@
 XEN_ROOT=$(CURDIR)/../../..
 include $(XEN_ROOT)/tools/Rules.mk
 
-TARGETS := test-pdx-mask
+TARGETS := test-pdx-mask test-pdx-offset
 
 .PHONY: all
 all: $(TARGETS)
@@ -42,6 +42,7 @@ CFLAGS += $(APPEND_CFLAGS)
 CFLAGS += $(CFLAGS_xeninclude)
 
 test-pdx-mask: CFLAGS += -DCONFIG_PDX_MASK_COMPRESSION
+test-pdx-offset: CFLAGS += -DCONFIG_PDX_OFFSET_COMPRESSION
 
 test-pdx-%: test-pdx.c pdx.h
 	$(CC) $(CPPFLAGS) $(CFLAGS) $(CFLAGS_$*.o) -o $@ $< $(APPEND_CFLAGS)
diff --git a/tools/tests/pdx/harness.h b/tools/tests/pdx/harness.h
index 5bef7df650d2..7c1c5a246868 100644
--- a/tools/tests/pdx/harness.h
+++ b/tools/tests/pdx/harness.h
@@ -44,8 +44,10 @@
 
 #define MAX_RANGES 16
 #define MAX_PFN_RANGES MAX_RANGES
+#define CONFIG_PDX_OFFSET_TBL_ORDER 6
 
 #define ASSERT assert
+#define ASSERT_UNREACHABLE() assert(0)
 
 #define CONFIG_DEBUG
 
@@ -66,10 +68,22 @@ static inline unsigned int find_next(
 #define find_next_zero_bit(a, s, o) find_next(a, s, o, false)
 #define find_next_bit(a, s, o)      find_next(a, s, o, true)
 
+#define flsl(x) ((x) ? BITS_PER_LONG - __builtin_clzl(x) : 0)
+#define ffsl(x) __builtin_ffsl(x)
+
 #define boolean_param(name, func)
 
 typedef uint64_t paddr_t;
 
+#define SWAP(a, b) \
+   do { typeof(a) t_ = (a); (a) = (b); (b) = t_; } while ( 0 )
+
+#define sort(elem, nr, size, cmp, swp) ({                               \
+    /* Consume swp() so compiler doesn't complain it's unused. */       \
+    (void)swp;                                                          \
+    qsort(elem, nr, size, cmp);                                         \
+})
+
 #include "pdx.h"
 
 #endif
diff --git a/tools/tests/pdx/test-pdx.c b/tools/tests/pdx/test-pdx.c
index 0798ccee359b..eefd54c76815 100644
--- a/tools/tests/pdx/test-pdx.c
+++ b/tools/tests/pdx/test-pdx.c
@@ -51,7 +51,11 @@ int main(int argc, char **argv)
                 { .start =  0xc7e80000UL, .end =  0xcfe80000UL },
                 { .start = 0x12be80000UL, .end = 0x133e80000UL },
             },
+#ifdef CONFIG_PDX_OFFSET_COMPRESSION
+            .compress = true,
+#else
             .compress = false,
+#endif
         },
         /* Simple hole. */
         {
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 8dad0c923a9d..76f9ce705f7a 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -59,7 +59,8 @@ config EVTCHN_FIFO
 
 choice
 	prompt "PDX (Page inDeX) compression"
-	default PDX_MASK_COMPRESSION if !X86 && !RISCV
+	default PDX_OFFSET_COMPRESSION if X86
+	default PDX_MASK_COMPRESSION if !RISCV
 	default PDX_NONE
 	help
 	  PDX compression is a technique designed to reduce the memory
@@ -78,12 +79,30 @@ config PDX_MASK_COMPRESSION
 	help
 	  Compression relying on all RAM addresses sharing a zeroed bit region.
 
+config PDX_OFFSET_COMPRESSION
+	bool "Offset compression"
+	help
+	  Compression relying on size and distance between RAM regions being
+	  compressible using an offset lookup table.
+
 config PDX_NONE
 	bool "None"
 	help
 	  No compression
 endchoice
 
+config PDX_OFFSET_TBL_ORDER
+	int "PDX offset compression lookup table order" if EXPERT
+	depends on PDX_OFFSET_COMPRESSION
+	default 6
+	range 0 9
+	help
+	  Order of the PFN to PDX and PDX to PFN translation lookup tables.
+	  Number of table entries is calculated as 2^N.
+
+	  Size of the tables can be adjusted from 1 entry (order 0) to 512
+	  entries (order 9).
+
 config ALTERNATIVE_CALL
 	bool
 
diff --git a/xen/common/pdx.c b/xen/common/pdx.c
index 9e6b36086fbd..7e070ff962e8 100644
--- a/xen/common/pdx.c
+++ b/xen/common/pdx.c
@@ -24,6 +24,7 @@
 #include <xen/param.h>
 #include <xen/pfn.h>
 #include <xen/sections.h>
+#include <xen/sort.h>
 
 /**
  * Maximum (non-inclusive) usable pdx. Must be
@@ -40,6 +41,12 @@ bool __mfn_valid(unsigned long mfn)
 
 #ifdef CONFIG_PDX_MASK_COMPRESSION
     invalid |= mfn & pfn_hole_mask;
+#elif defined(CONFIG_PDX_OFFSET_COMPRESSION)
+    {
+        unsigned long base = pfn_bases[PFN_TBL_IDX(mfn)];
+
+        invalid |= mfn < base || mfn >= base + pdx_region_size;
+    }
 #endif
 
     if ( unlikely(evaluate_nospec(invalid)) )
@@ -75,6 +82,13 @@ void set_pdx_range(unsigned long smfn, unsigned long emfn)
 # error "Missing architecture maximum number of RAM ranges"
 #endif
 
+/* Some functions should be init when not using PDX mask compression. */
+#ifndef CONFIG_PDX_MASK_COMPRESSION
+# define __init_or_mask_compr __init
+#else
+# define __init_or_mask_compr
+#endif
+
 /* Generic PFN compression helpers. */
 static struct pfn_range {
     unsigned long base_pfn, pages;
@@ -102,7 +116,7 @@ void __init pfn_pdx_add_region(paddr_t base, paddr_t size)
 }
 
 /* Sets all bits from the most-significant 1-bit down to the LSB */
-static uint64_t fill_mask(uint64_t mask)
+static uint64_t __init_or_mask_compr fill_mask(uint64_t mask)
 {
     while (mask & (mask + 1))
         mask |= mask + 1;
@@ -128,7 +142,7 @@ static uint64_t fill_mask(uint64_t mask)
  * @param len  Size in octets of the region
  * @return Mask of moving bits at the bottom of all the region addresses
  */
-static uint64_t pdx_region_mask(uint64_t base, uint64_t len)
+static uint64_t __init_or_mask_compr pdx_region_mask(uint64_t base, uint64_t len)
 {
     /*
      * We say a bit "moves" in a range if there exist 2 addresses in that
@@ -294,7 +308,228 @@ void __init pfn_pdx_compression_reset(void)
     nr_ranges = 0;
 }
 
-#endif /* CONFIG_PDX_COMPRESSION */
+#elif defined(CONFIG_PDX_OFFSET_COMPRESSION) /* CONFIG_PDX_MASK_COMPRESSION */
+
+unsigned int __ro_after_init pfn_index_shift;
+unsigned int __ro_after_init pdx_index_shift;
+unsigned long __ro_after_init pdx_region_size = ~0UL;
+
+unsigned long __ro_after_init pfn_pdx_lookup[CONFIG_PDX_NR_LOOKUP];
+unsigned long __ro_after_init pdx_pfn_lookup[CONFIG_PDX_NR_LOOKUP];
+unsigned long __ro_after_init pfn_bases[CONFIG_PDX_NR_LOOKUP];
+
+bool pdx_is_region_compressible(paddr_t base, unsigned long npages)
+{
+    unsigned long pfn = PFN_DOWN(base);
+    unsigned long pfn_base = pfn_bases[PFN_TBL_IDX(pfn)];
+
+    return pfn >= pfn_base &&
+           pfn + npages <= pfn_base + pdx_region_size;
+}
+
+static int __init cf_check cmp_node(const void *a, const void *b)
+{
+    const struct pfn_range *l = a, *r = b;
+
+    if ( l->base_pfn > r->base_pfn )
+        return 1;
+    if ( l->base_pfn < r->base_pfn )
+        return -1;
+
+    return 0;
+}
+
+static void __init cf_check swp_node(void *a, void *b)
+{
+    struct pfn_range *l = a, *r = b;
+
+    SWAP(*l, *r);
+}
+
+bool __init pfn_pdx_compression_setup(paddr_t base)
+{
+    unsigned long mask = PFN_DOWN(pdx_init_mask(base)), idx_mask = 0;
+    unsigned long pages = 0;
+    unsigned int i;
+
+    if ( !nr_ranges )
+    {
+        printk(XENLOG_DEBUG "PFN compression disabled%s\n",
+               pdx_compress ? ": no ranges provided" : "");
+        return false;
+    }
+
+    if ( nr_ranges > ARRAY_SIZE(ranges) )
+    {
+        printk(XENLOG_WARNING
+               "Too many PFN ranges (%u > %zu), not attempting PFN compression\n",
+               nr_ranges, ARRAY_SIZE(ranges));
+        return false;
+    }
+
+    /* Sort ranges by start address. */
+    sort(ranges, nr_ranges, sizeof(*ranges), cmp_node, swp_node);
+
+    for ( i = 0; i < nr_ranges; i++ )
+    {
+        unsigned long start = ranges[i].base_pfn;
+
+        /*
+         * Align range base to MAX_ORDER.  This is required so the PDX offset
+         * for the bits below MAX_ORDER matches the MFN offset, and pages
+         * greater than the minimal order can be used to populate the
+         * directmap.
+         */
+        ranges[i].base_pfn = start & ~((1UL << MAX_ORDER) - 1);
+        ranges[i].pages = start + ranges[i].pages - ranges[i].base_pfn;
+
+        /*
+         * Only merge overlapped regions now, leave adjacent regions separated.
+         * They would be merged later if both use the same index into the
+         * lookup table.
+         */
+        if ( !i ||
+             ranges[i].base_pfn >=
+             (ranges[i - 1].base_pfn + ranges[i - 1].pages) )
+        {
+            mask |= pdx_region_mask(ranges[i].base_pfn, ranges[i].pages);
+            continue;
+        }
+
+        ranges[i - 1].pages = ranges[i].base_pfn + ranges[i].pages -
+                              ranges[i - 1].base_pfn;
+
+        if ( i + 1 < nr_ranges )
+            memmove(&ranges[i], &ranges[i + 1],
+                    (nr_ranges - (i + 1)) * sizeof(ranges[0]));
+        else /* last range */
+            mask |= pdx_region_mask(ranges[i].base_pfn, ranges[i].pages);
+        nr_ranges--;
+        i--;
+    }
+
+    /*
+     * Populate a mask with the non-equal bits of the different ranges, do this
+     * to calculate the maximum PFN shift to use as the lookup table index.
+     */
+    for ( i = 0; i < nr_ranges; i++ )
+        for ( unsigned int j = i + 1; j < nr_ranges; j++ )
+            idx_mask |= ranges[i].base_pfn ^ ranges[j].base_pfn;
+    /* Mask out the bits that change inside of ranges. */
+    idx_mask &= ~mask;
+
+    if ( !idx_mask )
+        /* Single region case. */
+        pfn_index_shift = flsl(mask);
+    else if ( flsl(idx_mask) - ffsl(idx_mask) < CONFIG_PDX_OFFSET_TBL_ORDER )
+        /* The changed mask fits in the table index width. */
+        pfn_index_shift = ffsl(idx_mask) - 1;
+    else
+    {
+        /* Changed mask is wider than array size, use most significant bits. */
+        pfn_index_shift = flsl(idx_mask) - CONFIG_PDX_OFFSET_TBL_ORDER;
+        printk(XENLOG_DEBUG
+               "PFN compression table index truncated, requires order %u\n",
+               flsl(idx_mask) - ffsl(idx_mask) + 1);
+    }
+
+    /*
+     * Check correctness of the calculated values, plus merge ranges if they
+     * use the same lookup table index.
+     */
+    for ( i = 0; i < nr_ranges; i++ )
+    {
+        /*
+         * Ensure ranges [start, end] use the same offset table index.  Should
+         * be guaranteed by the logic that calculates the pfn shift.
+         */
+        if ( PFN_TBL_IDX(ranges[i].base_pfn) !=
+             PFN_TBL_IDX(ranges[i].base_pfn + ranges[i].pages - 1) )
+        {
+            printk(XENLOG_DEBUG "PFN compression is invalid, disabling\n");
+            ASSERT_UNREACHABLE();
+            pfn_pdx_compression_reset();
+            return false;
+        }
+
+        if ( !i ||
+             PFN_TBL_IDX(ranges[i - 1].base_pfn) !=
+             PFN_TBL_IDX(ranges[i].base_pfn) )
+            continue;
+
+        /* Merge ranges with the same table index. */
+        ranges[i - 1].pages = ranges[i].base_pfn + ranges[i].pages -
+                              ranges[i - 1].base_pfn;
+        if ( i + 1 < nr_ranges )
+            memmove(&ranges[i], &ranges[i + 1],
+                    (nr_ranges - (i + 1)) * sizeof(ranges[0]));
+        nr_ranges--;
+        i--;
+    }
+
+    /*
+     * Find the maximum PFN range size after having merged ranges with same
+     * index.  The rounded up region size will be the base for the PDX region
+     * size and shift.
+     */
+    for ( i = 0; i < nr_ranges; i++ )
+        pages = max(pages, ranges[i].pages);
+
+    /* pdx_init_mask() already takes MAX_ORDER into account. */
+    mask = PFN_DOWN(pdx_init_mask((paddr_t)pages << PAGE_SHIFT));
+    pdx_index_shift = flsl(mask);
+
+    /* Avoid compression if there's no gain. */
+    if ( (mask + 1) * (nr_ranges - 1) >= ranges[nr_ranges - 1].base_pfn )
+    {
+        printk(XENLOG_DEBUG
+               "PFN compression yields no space gain, disabling\n");
+        pfn_pdx_compression_reset();
+        return false;
+    }
+
+    /*
+     * Set all entries in the bases table to ~0 to force both mfn_valid() and
+     * pdx_is_region_compressible() to return false for non-handled pfns.
+     */
+    memset(pfn_bases, ~0, sizeof(pfn_bases));
+
+    pdx_region_size = mask + 1;
+
+    printk(XENLOG_INFO
+           "PFN compression using lookup table shift %u and region size %#lx\n",
+           pfn_index_shift, pdx_region_size);
+
+    for ( i = 0; i < nr_ranges; i++ )
+    {
+        unsigned int idx = PFN_TBL_IDX(ranges[i].base_pfn);
+
+        pfn_pdx_lookup[idx] = ranges[i].base_pfn - (mask + 1) * i;
+        pdx_pfn_lookup[i] = pfn_pdx_lookup[idx];
+        pfn_bases[idx] = ranges[i].base_pfn;
+
+        printk(XENLOG_DEBUG
+               " range %3u [%013lx, %013lx] PFN IDX %3u : %013lx\n",
+               i, ranges[i].base_pfn, ranges[i].base_pfn + ranges[i].pages - 1,
+               idx, pfn_pdx_lookup[idx]);
+    }
+
+    return true;
+}
+
+void __init pfn_pdx_compression_reset(void)
+{
+    memset(pfn_pdx_lookup, 0, sizeof(pfn_pdx_lookup));
+    memset(pdx_pfn_lookup, 0, sizeof(pfn_pdx_lookup));
+    memset(pfn_bases, 0, sizeof(pfn_bases));
+    pfn_index_shift = 0;
+    pdx_index_shift = 0;
+    pdx_region_size = ~0UL;
+
+    nr_ranges = 0;
+}
+
+#endif /* CONFIG_PDX_OFFSET_COMPRESSION */
 
 /*
  * Local variables:
diff --git a/xen/include/xen/pdx.h b/xen/include/xen/pdx.h
index 425d45e9f08e..856fc3e8a0e6 100644
--- a/xen/include/xen/pdx.h
+++ b/xen/include/xen/pdx.h
@@ -65,6 +65,46 @@
  * This scheme also holds for multiple regions, where HHHHHHH acts as
  * the region identifier and LLLLLL fully contains the span of every
  * region involved.
+ *
+ * ##Â PDX offset compression
+ *
+ * Alternative compression mechanism that relies on RAM ranges having a similar
+ * size and offset between them:
+ *
+ * PFN address space:
+ * â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”   â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”
+ * â”‚ RAM 0  â”‚          â”‚ RAM 1  â”‚          â”‚...â”‚ RAM N  â”‚          â”‚
+ * â”œâ”€â”€â”€â”€â”€â”€â”€â”€â”¼â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”¼â”€â”€â”€â”€â”€â”€â”€â”€â”´â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜   â””â”€â”€â”€â”€â”€â”€â”€â”€â”´â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜
+ * â”‚<------>â”‚          â”‚
+ * â”‚  size             â”‚
+ * â”‚<----------------->â”‚
+ *         offset
+ *
+ * The compression reduces the holes between RAM regions:
+ *
+ * PDX address space:
+ * â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”¬â”€â”€â”€â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”¬â”€â”€â”€â”   â”Œâ”€â”¬â”€â”€â”€â”€â”€â”€â”€â”€â”
+ * â”‚ RAM 0  â”‚   â”‚ RAM 1  â”‚   â”‚...â”‚ â”‚ RAM N  â”‚
+ * â”œâ”€â”€â”€â”€â”€â”€â”€â”€â”´â”€â”€â”€â”¼â”€â”€â”€â”€â”€â”€â”€â”€â”´â”€â”€â”€â”˜   â””â”€â”´â”€â”€â”€â”€â”€â”€â”€â”€â”˜
+ * â”‚<---------->â”‚
+ *   pdx region size
+ *
+ * The offsets to convert from PFN to PDX and from PDX to PFN are stored in a
+ * pair of lookup tables, and the index into those tables to find the offset
+ * for each PFN or PDX is obtained by shifting the to be translated address by
+ * a specific value calculated at boot:
+ *
+ * pdx = pfn - pfn_lookup_table[pfn >> pfn_shift]
+ * pfn = pdx + pdx_lookup_table[pdx >> pdx_shift]
+ *
+ * Note the indexes into the lookup tables are masked to avoid out of bounds
+ * accesses.
+ *
+ * This compression requires the PFN ranges to contain a non-equal most
+ * significant part that's smaller than the lookup table size, so that a valid
+ * shift value can be found to differentiate between PFN regions.  The setup
+ * algorithm might merge otherwise separate PFN ranges to use the same lookup
+ * table entry.
  */
 
 extern unsigned long max_pdx;
@@ -157,7 +197,52 @@ static inline paddr_t directmapoff_to_maddr_xlate(unsigned long offset)
             (offset & ma_va_bottom_mask));
 }
 
-#endif /* CONFIG_PDX_MASK_COMPRESSION */
+#elif defined(CONFIG_PDX_OFFSET_COMPRESSION) /* CONFIG_PDX_MASK_COMPRESSION */
+
+#include <xen/page-size.h>
+
+#define CONFIG_PDX_NR_LOOKUP (1UL << CONFIG_PDX_OFFSET_TBL_ORDER)
+#define PDX_TBL_MASK (CONFIG_PDX_NR_LOOKUP - 1)
+
+#define PFN_TBL_IDX(pfn) \
+    (((pfn) >> pfn_index_shift) & PDX_TBL_MASK)
+#define PDX_TBL_IDX(pdx) \
+    (((pdx) >> pdx_index_shift) & PDX_TBL_MASK)
+#define MADDR_TBL_IDX(ma) \
+    (((ma) >> (pfn_index_shift + PAGE_SHIFT)) & PDX_TBL_MASK)
+#define DMAPOFF_TBL_IDX(off) \
+    (((off) >> (pdx_index_shift + PAGE_SHIFT)) & PDX_TBL_MASK)
+
+extern unsigned int pfn_index_shift;
+extern unsigned int pdx_index_shift;
+extern unsigned long pdx_region_size;
+
+extern unsigned long pfn_pdx_lookup[];
+extern unsigned long pdx_pfn_lookup[];
+extern unsigned long pfn_bases[];
+
+static inline unsigned long pfn_to_pdx_xlate(unsigned long pfn)
+{
+    return pfn - pfn_pdx_lookup[PFN_TBL_IDX(pfn)];
+}
+
+static inline unsigned long pdx_to_pfn_xlate(unsigned long pdx)
+{
+    return pdx + pdx_pfn_lookup[PDX_TBL_IDX(pdx)];
+}
+
+static inline unsigned long maddr_to_directmapoff_xlate(paddr_t ma)
+{
+    return ma - ((paddr_t)pfn_pdx_lookup[MADDR_TBL_IDX(ma)] << PAGE_SHIFT);
+}
+
+static inline paddr_t directmapoff_to_maddr_xlate(unsigned long offset)
+{
+    return offset + ((paddr_t)pdx_pfn_lookup[DMAPOFF_TBL_IDX(offset)] <<
+                     PAGE_SHIFT);
+}
+
+#endif /* CONFIG_PDX_OFFSET_COMPRESSION */
 
 #ifdef CONFIG_PDX_NONE
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Aug 12 15:18:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 15:18:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078816.1439847 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulqlA-0008Eu-4C; Tue, 12 Aug 2025 15:17:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078816.1439847; Tue, 12 Aug 2025 15: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 1ulql9-0008En-W8; Tue, 12 Aug 2025 15:17:55 +0000
Received: by outflank-mailman (input) for mailman id 1078816;
 Tue, 12 Aug 2025 15:17:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=VJP5=2Y=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1ulql8-0008Eh-DJ
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 15:17:54 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on2060e.outbound.protection.outlook.com
 [2a01:111:f403:2009::60e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 82ddf024-778f-11f0-b898-0df219b8e170;
 Tue, 12 Aug 2025 17:17:51 +0200 (CEST)
Received: from BL1PR13CA0426.namprd13.prod.outlook.com (2603:10b6:208:2c3::11)
 by SA5PPFE494AA682.namprd12.prod.outlook.com
 (2603:10b6:80f:fc04::8e7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.20; Tue, 12 Aug
 2025 15:17:47 +0000
Received: from BN3PEPF0000B073.namprd04.prod.outlook.com
 (2603:10b6:208:2c3:cafe::9c) by BL1PR13CA0426.outlook.office365.com
 (2603:10b6:208:2c3::11) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9031.14 via Frontend Transport; Tue,
 12 Aug 2025 15:17:47 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BN3PEPF0000B073.mail.protection.outlook.com (10.167.243.118) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9031.11 via Frontend Transport; Tue, 12 Aug 2025 15:17:47 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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, 12 Aug
 2025 10:17:46 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 12 Aug
 2025 10:17:46 -0500
Received: from ubuntu.mshome.net (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Tue, 12 Aug 2025 10:17: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>
X-Inumbo-ID: 82ddf024-778f-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=vhgeJ3ckbxU2OCZbcYhSV1hpYtXR/lpEgKJTnwwr3UYAM82+1+KgvEF2YzP+4BVzuNCkUc88FAdsERJLGZVZwmZiXF6XFXbuA9iTOIzU1+0LZEx08xf4ylHWuOo4Wl8cL1+1Vc6wVk/dTQAC8dQ4E3IuHPUbipTXGZIuuXtUOJSJ7JxQbqz64y9F2ykLJbxCLysxvtNYJzP6FpVOwrlC2FFGlOQ3nnDB+FOJjMR/oeVtlyPhKjNuvucjBsMT5dD/co1ox4YcAqfTizfslFPGofA6neHx1LNgQ30VjfBa9yKVmpbcBRKLiJr8gvaPV2yLLWH5/UUeZHPdakjhLb04jA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=GIvbQ47y4UfUXUSyDirAujuj6G/Pn2yQMXJlyF+3Vbo=;
 b=t1z8prrMyFcZiiBG38ZieotgwlM5SnrjAYp9IfSh3Omz+HId4L4inCIjS90vUdxONC8J/la4M7mIIrpL5qEXBOm74PIqg3BAvqqJu1jh3vvkCWxVZxJWC+9n1KTYDklDPkrMH/0YmZv2C/0MxD/Af+oY7m6I2dLVNXOF+GI2qLcEj0u8KlYi0MtxLNLc5smzDEP999rkMzhmILwkXAHfr1w6PbJ842vVwrS4fYYKEmYdLfahal7I690TKUFB1F2qz4sQ6jh3xCAcMHA/6elxU/V/tFHYjwz2vP5FxF5ZKw85gaZBfouYvQIe4lCNgsWQvblr8fZnPqA4Hpzbn9NK5w==
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=GIvbQ47y4UfUXUSyDirAujuj6G/Pn2yQMXJlyF+3Vbo=;
 b=vyCNYuZcn6Kjmp56EyNCCOL5hQtL2aqfqCd1cYcPGmo3qvrc5xZSYDHOhSNKLKl9Kopv83aycbYqkX5AVkvNpubyAdisl+lxe7Ttqe1IPpKUFKJktyr78kc7UUxwKSBUU/+RErBNhbSG4kfoq7pdmn2ezO1EfnNGBkHvP316yUA=
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=SATLEXMB03.amd.com; pr=C
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jiqian Chen
	<Jiqian.Chen@amd.com>
Subject: [PATCH] vpci/msix: conditionally invoke vpci_make_msix_hole
Date: Tue, 12 Aug 2025 11:17:42 -0400
Message-ID: <20250812151744.460953-1-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.50.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB05.amd.com: stewart.hildebrand@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN3PEPF0000B073:EE_|SA5PPFE494AA682:EE_
X-MS-Office365-Filtering-Correlation-Id: 8f198d33-8cd3-4ba5-785d-08ddd9b364e5
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|1800799024|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?hxMwWivJxPxOyer9rPbjsVjKPgYpDCTc74Sb23YL2YIKoZvLXlhI8FAcSPUi?=
 =?us-ascii?Q?nc/nWeLNQTWD7WlULSbqg85i+AIGdb8QkvyowS09qlhjymGXVJeQtePmrC/q?=
 =?us-ascii?Q?pajfcUfeZClomAZF7GaTp8bZCjDl2D5Q8FT+BzGUTG5kMh0J6nDEbSYdVJiq?=
 =?us-ascii?Q?951cUhSh15dYbYnh432WCKDWSDBgqJpjE5PCsGVtvQO5GQgVFNyoLdlrMQ6Y?=
 =?us-ascii?Q?7+JyEPSo16sDLoj/GrDTuS+GxnXPDaw3a0J/T1kBmhOcbhphvVTIDo8xLd+5?=
 =?us-ascii?Q?9RxCGIgX4D1wAsXBL5qopy+JCZ6/GKwO2RIaT3pZMDezNEW/GQGUaJQ3QZ2r?=
 =?us-ascii?Q?9jpNskdWnXVyVxAunGL7+ssLrVytN+hsqSYpsYbEQ8nVYM7/KFbnIPi1WrzN?=
 =?us-ascii?Q?3Ra+VUylDaHc3F7WMXAZDOkQrOYvOF2STo2PEkRQDbfG32KW6hsnCU/nt//u?=
 =?us-ascii?Q?6SqZw/vCcAMm/qWUFhKBRUlmg4/c7ieS1XN3Y18yK9ywDTq3ufbg9jj+bkrH?=
 =?us-ascii?Q?/FHwHy3rLCuWi8A9ZvpZhak8zA+jbIvzg+wHAB+7J3TVkLtnW64HaTJ1iBeX?=
 =?us-ascii?Q?vJdqnENyMQQ8Exl8xgMm7iJMLVMtzgNGMF144nqGUuuFqoJNrMWIzV2SqSnt?=
 =?us-ascii?Q?rgVYvYtobzwdbLl0Bgm/PkAbgX6Kv+lbHp1YYFMVOAEOv6YDNILA1LeJ06I/?=
 =?us-ascii?Q?Pr1FQUAel4i5m5VyhQqxoXcoog++NZc4u39oup+LJfmyqhXhX72ZCZt9YZKU?=
 =?us-ascii?Q?OqDoeXjQiiS+PSDemW9F6YqqmhYGncJzSaOvvKzwn9pXT20h9bjz/XqIeueU?=
 =?us-ascii?Q?Px4a/mSSE7ZSGjkGL2E3mGH3YWNNRaRsN6ZuwKvDjLTZuEZNZjsiCft67EL+?=
 =?us-ascii?Q?GFCH0h9kkgJ4+/vCnbA7QVITZq1YXykv7D6TjArlm0GeMHEv/t16BK4iKat9?=
 =?us-ascii?Q?9e9/SQK4/2tqDu9ZyIRaWVO2imKZHbxR/0307I+IFoOPy02OQZ94UtSJ/H/C?=
 =?us-ascii?Q?YFu88O2TiQGUbegz8AtfaO84uzptifByvpWsZrRAAB/QAxImI0aHfhLkJE3I?=
 =?us-ascii?Q?3IbcXsHdZkYbi+oqoKCFCHNjGAGqOVbble2K9Pc7bnaDbTOHpZXoHJLZ8yEI?=
 =?us-ascii?Q?/D02a6mvmGRQtybBVGifD9AWMnt/ZIbgRBqXnxjE3+fe3RLmKlneFcI6IwOo?=
 =?us-ascii?Q?ysTyTortQxlduFxmUCGgjNCspW/Jq7iXIfU1Al0nyXCBOFzPUD2+RnwZZb6g?=
 =?us-ascii?Q?jUM0RYCUZzgahUqzlc1G6TzK/TpHwqk53xsBxImY26ZzIVnyjm8uEJRRxTrK?=
 =?us-ascii?Q?K+QAu/xfsE80cr0qGo6fvaiO907gFd4MPdVN50wpXyI0+sxvl9c1v2QDmJRc?=
 =?us-ascii?Q?G8jiraJ1i0GZm6u+bZQEzT6FfQqlAr49Yz+sXqc+bGfX6AucKQGW3CpF3AP4?=
 =?us-ascii?Q?BVGIfuNFC+3pVCW+M74/S1DDbaOdIGE/KO9igz8vWn/3iH7iG6CUThJ5b0o+?=
 =?us-ascii?Q?490Peh56cORRK+U1zroFIxWO9Eipy3JLnwXG?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Aug 2025 15:17:47.1191
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8f198d33-8cd3-4ba5-785d-08ddd9b364e5
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN3PEPF0000B073.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PPFE494AA682

A hotplugged PCI device may be added uninitialized. In particular,
memory decoding may be disabled and the BARs may be zeroed. In this
case, the BARs will not be mapped in p2m. However, currently
vpci_make_msix_hole is called unconditionally in init_msix, and the
initialization fails in this case:

(XEN) d0v0 0000:01:00.0: existing mapping (mfn: 1c1880 type: 0) at 0 clobbers MSIX MMIO area
(XEN) d0 0000:01:00.0: init legacy cap 17 fail rc=-17, mask it

vpci_make_msix_hole should only be called if the BARs containing the
MSI-X/PBA tables are mapped in p2m.

Take the opportunity to fix a typo in the preceding comment.

Fixes: ee2eb6849d50 ("vpci: Refactor REGISTER_VPCI_INIT")
Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
---
 xen/drivers/vpci/msix.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/xen/drivers/vpci/msix.c b/xen/drivers/vpci/msix.c
index 54a5070733aa..39d1c45bd296 100644
--- a/xen/drivers/vpci/msix.c
+++ b/xen/drivers/vpci/msix.c
@@ -705,10 +705,16 @@ static int cf_check init_msix(struct pci_dev *pdev)
 
     /*
      * vPCI header initialization will have mapped the whole BAR into the
-     * p2m, as MSI-X capability was not yet initialized.  Crave a hole for
+     * p2m, as MSI-X capability was not yet initialized.  Carve a hole for
      * the MSI-X table here, so that Xen can trap accesses.
      */
-    return vpci_make_msix_hole(pdev);
+    if ( pdev->vpci->header.bars[
+             msix->tables[VPCI_MSIX_TABLE] & PCI_MSIX_BIRMASK].enabled ||
+         pdev->vpci->header.bars[
+             msix->tables[VPCI_MSIX_PBA] & PCI_MSIX_BIRMASK].enabled )
+        return vpci_make_msix_hole(pdev);
+
+    return 0;
 }
 REGISTER_VPCI_CAP(MSIX, init_msix, NULL);
 

base-commit: 4cde4a552ed35f3cc74df877d5a7cfbbfced8fb3
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 12 15:19:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 15:19:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078828.1439856 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulqms-0000NT-Gv; Tue, 12 Aug 2025 15:19:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078828.1439856; Tue, 12 Aug 2025 15: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 1ulqms-0000NK-Dy; Tue, 12 Aug 2025 15:19:42 +0000
Received: by outflank-mailman (input) for mailman id 1078828;
 Tue, 12 Aug 2025 15:19:41 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ysgX=2Y=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1ulqmr-0000N9-0n
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 15:19:41 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c3f4359f-778f-11f0-a327-13f23c93f187;
 Tue, 12 Aug 2025 17:19:40 +0200 (CEST)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-459e1338565so52542995e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 12 Aug 2025 08:19:40 -0700 (PDT)
Received: from localhost.localdomain ([87.114.69.104])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3b79c3ac51asm45600090f8f.1.2025.08.12.08.19.38
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 Aug 2025 08:19: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>
X-Inumbo-ID: c3f4359f-778f-11f0-a327-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1755011979; x=1755616779; 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=B6BPOciZ41jdzwaS+oIgHfhtkYMYHeNYwaWDWKleqGE=;
        b=MNC2Zv/QE+y2t8vydtZffYlc3U07GkylEG7GT0JfiN6A9VJ4outi1Nm2uLvX7CbnZS
         YLYh7qC2/VxnTze4pYxqUf+oCCEVzdZzT2tj4fZBTvQl0AxEr7bcvzxZH/RA0gVb9fOV
         B0UMTakN5f/EOW0iiEvhRXw1Jz5qfNNZyFsYc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755011979; x=1755616779;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=B6BPOciZ41jdzwaS+oIgHfhtkYMYHeNYwaWDWKleqGE=;
        b=poS1C1Fzp3Ozf0C+N7xS6CXyJnFLslCP03UB9fAE2OoOhGKpYd64oSvBw0fLwXUS/b
         7pF1+3dbBIVmm94IlDRDvFtrGxaWW/zOj29ASmF8nah/TMrGr1pIxg5F5TAS4WTW1Pc6
         V4bbTBBZwc6zjUiiLq2CGKxzmCg92qvC1ZQPLhSqpBMC++zLuWcZzEVTKE6EXncO6km6
         AzJNZNgFpwrT+3wHfTPw7HxwNGlUvXOXqfp4zhbHtzAng1jOjhiX80fsfn8hETx/CuBZ
         dAq0NFti+ibc8wNVF/3b28SOxMdz5uXnV5A8bRlSMJV/VWREXLoCg2a/kIW9RHeCUc1u
         5p0A==
X-Gm-Message-State: AOJu0YxaqYArUh1fxa/8Sws4+Mzd1CUoogGpDj/9sP7Qw2WHLqCt/2Li
	elco08KSQRmJ9qJyuqq4f0MnUISoLSJXCxHHSoTRkVxHgz1tgK890E1QQzhh5Db/Fi7b01duuYj
	/nvxXo2Y=
X-Gm-Gg: ASbGncsnEh/MQuNMJK7L65WbHp7LTxCz40TC8R3Hzr7ltZ+BRei5nG777/75MqtPjAP
	Gezk3RLqKbTKviFZUm9m7vhVuadCA3kijW+BMRi4UMZ6J6zRrLF31ZJT+edkBQnZEC6FQu9yadS
	Bc8+uDzibKf6j2uOLZXjjjNeQY6nQgQV5ogC3ynz+EXJ8xi369LelnlQA82gGuAhmC0nirgu0u3
	Poq0ahiMNaVwmKooP0pgSWzWebFzhweNwC5agox0rEMiToDepnwAFDks9v+bwsJB0sUBflyOXQf
	Soh6+DetmHRzHbu6ES15jpbRPKcfUtB/kkc1P7mnijKVbnaadGt+4fYxjVR55XuCDyQ6pp1IAPf
	jkBqQPvxCmHTARrYaJ8Rxp71Gr4NpZoLNBVcCz+jc0mZolQQbCKbp
X-Google-Smtp-Source: AGHT+IHUl/R4Rp9eeiywIRtYcqIPk90a+VSgojhER703Ql1VvheWY3jg/0I4D6kwo0gSEaLAEYKHcA==
X-Received: by 2002:a05:6000:2c03:b0:3b7:8832:fde5 with SMTP id ffacd0b85a97d-3b900b4d7f2mr13111540f8f.13.1755011979185;
        Tue, 12 Aug 2025 08:19:39 -0700 (PDT)
From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH] x86/boot: Remove unused symbols from linker script
Date: Tue, 12 Aug 2025 16:19:20 +0100
Message-ID: <20250812151923.96832-1-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The symbols declared with DECLARE_IMPORT are meant to be
used by the 32 bit code.
The __base_relocs_{start,end} symbols were not used by the
code.
No functional changes.

Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
---
 xen/arch/x86/boot/build32.lds.S | 2 --
 1 file changed, 2 deletions(-)

diff --git a/xen/arch/x86/boot/build32.lds.S b/xen/arch/x86/boot/build32.lds.S
index 1e59732edd..e4f7c7fc2f 100644
--- a/xen/arch/x86/boot/build32.lds.S
+++ b/xen/arch/x86/boot/build32.lds.S
@@ -43,8 +43,6 @@ SECTIONS
          * Attention should be paid to pointers taking care of possible later
          * relocation.
          */
-        DECLARE_IMPORT(__base_relocs_start);
-        DECLARE_IMPORT(__base_relocs_end);
         DECLARE_IMPORT(__trampoline_rel_start);
         DECLARE_IMPORT(__trampoline_rel_stop);
         DECLARE_IMPORT(__trampoline_seg_start);
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Aug 12 15:19:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 15:19:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078830.1439865 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulqn7-0000gw-OF; Tue, 12 Aug 2025 15:19:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078830.1439865; Tue, 12 Aug 2025 15:19:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulqn7-0000gp-Lg; Tue, 12 Aug 2025 15:19:57 +0000
Received: by outflank-mailman (input) for mailman id 1078830;
 Tue, 12 Aug 2025 15:19:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2eVr=2Y=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1ulqn6-0000gD-Ns
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 15:19:56 +0000
Received: from NAM04-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam04on20617.outbound.protection.outlook.com
 [2a01:111:f403:2409::617])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cbd70d97-778f-11f0-b898-0df219b8e170;
 Tue, 12 Aug 2025 17:19:54 +0200 (CEST)
Received: from BYAPR05CA0004.namprd05.prod.outlook.com (2603:10b6:a03:c0::17)
 by CYXPR12MB9320.namprd12.prod.outlook.com (2603:10b6:930:e6::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.14; Tue, 12 Aug
 2025 15:19:49 +0000
Received: from SJ1PEPF0000231F.namprd03.prod.outlook.com
 (2603:10b6:a03:c0:cafe::55) by BYAPR05CA0004.outlook.office365.com
 (2603:10b6:a03:c0::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9031.14 via Frontend Transport; Tue,
 12 Aug 2025 15:19:49 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF0000231F.mail.protection.outlook.com (10.167.242.235) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9031.11 via Frontend Transport; Tue, 12 Aug 2025 15:19:49 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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 Aug
 2025 10:19:48 -0500
Received: from xcbayankuma40.xilinx.com (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via
 Frontend Transport; Tue, 12 Aug 2025 10:19:47 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cbd70d97-778f-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BLDZ/VPxMJXn20QzVuoE2sOjrPz7QvyKf69MYkwShpkOaojaAarzLp7RrtGlpqwMvfJekElQpWVD7+hcXdzCXdPmQASQfVIvkMNGbxji9HYI4tToYv1zCy3laDwsakOR7QAZzzckK+uuh0LDveRHy/wici9ZY1LYGVKUl9TPk2ZtiCX3HnwZKOd01MQm++8eOTyeuxzZfMdENYdjwpjtY9jZRYu+feRZVqy+tMsfX+p/0WKT4kg55moGff0mm3SL5HGhproYoO3RRaKD8Vl+rQlDjef5mxmUuF+gkieivYe2fcWlofGxfZjT8a+kc4PYs0jO/fSDaD53atPi/8JfTA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=PrPIM8A4aIPQfjFr5jvz7XmcXaxbQs7GRRM2mw5Y0v8=;
 b=fJjiT831kNqChoyFesTg+6GLcDGf0SrZTniwLDhIzg+rRR2wRtJhRHDwdzNLjxO/IALcC90ZkBk0FhUuPzhfeFlJAH64E2y8gN7KJ/hNTP07M7SvsWwdUHF80WQlVhU9HidSVrVJWugdAzRd940kDWNfP+Z3qaE6Pe9c8T/WS6fXaDjL9fFjkqyuxVPA6TA57gsFtU7RMh2dKwTVgBV44UHXdUEkVkd3Z0Ho49LBpjPhiP7ej3Ft+MCKZAedmjq/50uV3VXCHuvA+N4M27/whsiChxLWIGN3h3NrTr5PvWEJtcOzpHV2AIsLhwcT5czsIwCZnS/+FOVJsd4tYzxngQ==
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=PrPIM8A4aIPQfjFr5jvz7XmcXaxbQs7GRRM2mw5Y0v8=;
 b=fiWSc+A2rrNZDBhOA7mdwlJWK95ukr5VrsNsOaEgtWPTua/xIZ98D8fDF6nV09jTr3uEIPjPjfHqEzeedjJlv1eYrZfl9s7vQMPy5U82I+a4f6Wkqm7jqt9gJS95BPtKPV4ynz5CrHdbs7Q/O5E9dg0SiYl4ehTBXraO13uv/w8=
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=SATLEXMB04.amd.com; pr=C
From: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <sstabellini@kernel.org>, <michal.orzel@amd.com>,
	<andrei.cherechesu@nxp.com>, <dmukhin@ford.com>, Ayan Kumar Halder
	<ayan.kumar.halder@amd.com>
Subject: [ImageBuilder v2] Add config option to use separate load commands for Xen, DOM0 and DOMU binaries
Date: Tue, 12 Aug 2025 16:19:45 +0100
Message-ID: <20250812151945.2430295-1-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB04.amd.com: ayan.kumar.halder@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF0000231F:EE_|CYXPR12MB9320:EE_
X-MS-Office365-Filtering-Correlation-Id: 521a66a6-1e3e-4c9f-7d1d-08ddd9b3ade3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|82310400026|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?mcOItckCkaGaGtKqkgieg4rHYwhzUydZyZWOBgC3EIjkg3aYZKbEDNgKjCPf?=
 =?us-ascii?Q?P4jeyfCodMFJIDJeDeqc+o3UgurtuLfoTKF8orjA4TL0IOZr5B5pHsoazap7?=
 =?us-ascii?Q?y9YYr6b+Ir88F5L1k/lnklE9PXbvRHLpJmVoWvz93kudfTtIwi207f3DTSxB?=
 =?us-ascii?Q?xDSnxHXAcspoVlbT31wNj21phIbu9t83APWNIOxH0FvySALFUA5U/XvFcCI3?=
 =?us-ascii?Q?6imExCwNyHWOGUHb+Q9+7O763Z/hyVFMyR9dsVa49cJ7ZdZpmnORJo3ooYsY?=
 =?us-ascii?Q?fNskmKhizTU37OiRKsGCwohDk00gLsH1kWxvFgCjkW1IsNd77fPsCAlROE6i?=
 =?us-ascii?Q?tDbR6T8l0Xkzwhs2Ox++Wazvoo002yhILpkkdV5ZRypA7XBHRIlpgKYBSl+B?=
 =?us-ascii?Q?s0BY/5WHmO2eQkV8PMdnNvmeb7Az0BAI0Lt/3ldOIU+/4TuKjDalPKspddkU?=
 =?us-ascii?Q?N1GyW0ONB/crJ7qpooPcWXAEutY02iaHWiJKqL6vMnml/p/6MD6LGcLoIWoO?=
 =?us-ascii?Q?fEuMI/BtZYij1QO+dbekadLZkVIUkYV3gMwi4zZv99go4s8Q4uPRhZTmRi6L?=
 =?us-ascii?Q?/r6YoQ30WpkG+gE4aTPpR55Cfq8QHS6QEJ9keKncER1sBCzsOKGm4A2ffN78?=
 =?us-ascii?Q?rCK8pHBa4OU5PKKI3W5ThbzH7AnijBeEGqxeGTlmp5q1J/bVfMz9MpIBFb6+?=
 =?us-ascii?Q?cUSfNjWc9waGK3wkZ2oSKbsWE5rBVH7fvUode3+xEKC0gMQ/5wFXCDHLpMgv?=
 =?us-ascii?Q?7x6ookGhHupIN5X4FlqC1lkzt/PNuFVdK8lKk2MSNI4z2Pw2+1yXtouDnXzU?=
 =?us-ascii?Q?XQzjGZp/lBrUEbsdQ+oDtPOj33oltAFZoTI6XVLHn1y7w6ydd7y25+QrXWnq?=
 =?us-ascii?Q?rDx46tZYewl3Y3muL6FMITdMBkczUu3vuOPghGHFWQcksQ6N1qsZ7EgXj71U?=
 =?us-ascii?Q?EnHj0i3iwBvXm0EpXzFmm28UXsLGNuAS8DKopn4XJc93lo/HhLSGw//Kw271?=
 =?us-ascii?Q?/DRy3CJ+I1Vp4ptaqUxwRg5k9o8eSirMlpnobkv1OLtc58n78IPizOwL9BUe?=
 =?us-ascii?Q?b6g6vw54QDeDxInownKNnryXcY6ks2LQup+5Buqyk0O7EKfXd+ADwpMf+mbR?=
 =?us-ascii?Q?sbWI9Hm6LmX6htCPxvgYMr3ko4vebadZsxZpDOYR9wuMbVWP1hpfZCFxCwQt?=
 =?us-ascii?Q?spKuiB1Ezuft3Di68Jne5Nd+5gGAOT4Vvc2/RpYAAabJ0vX0cCnnTHV8ghmD?=
 =?us-ascii?Q?HxaXUBjr62VqWQ0ReoBLAw5GpMw2/MXl/oiXIUKnXwaY3PfpcHz9U+UWZCt/?=
 =?us-ascii?Q?dXxEyErRakq/08fLIStJZ7GK62rRhxPtXRo8iTORx9W+cv8OF2nltqDdhEgR?=
 =?us-ascii?Q?ClYABha03tXBYLgLI1q8xU7HjnX2PdQle2LuIV0nrmk9WiIzvYg0lRCU5hAF?=
 =?us-ascii?Q?PMliX8YE38TN7jxmkXgvQmVEfFenFHiaotpqkw82nCiZEbe64AUHFKtok38/?=
 =?us-ascii?Q?3ZNFZtfuq9Wea8eQzYMnB0Ou5YO+uc5ssh+T?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Aug 2025 15:19:49.4861
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 521a66a6-1e3e-4c9f-7d1d-08ddd9b3ade3
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF0000231F.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYXPR12MB9320

Introduce the following options :-
1. XEN_LOAD - This specifies command to load xen hypervisor binary and device
tree.
2. DOM0_LOAD - This specifies command to load Dom0 binaries.
3. DOMU_LOAD[] - This specifies command to load DomU binaries.

There can be situations where Xen, Dom0 and DomU binaries are stored in
different partitions. Thus, imagebuilder should provide a way the binaries
using different commands.

If any of the above options are not specified, LOAD_CMD is used by default.

Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
---
This patch should be applied first.

Changes from :-

v1 - 1. Make LOAD_CMD optional when XEN is set
2. find_root_dev() should be invoked with either "$DOM0_CMD" or "$LOAD_CMD"
depending on if it is invoked from xen_config() or linux_config().
3. User needs to set either LOAD_CMD or XEN_LOAD. If neither is set, throw
an error. This is true for DOM0_LOAD and DOMU_LOAD[].

 README.md                | 18 +++++++++-
 scripts/uboot-script-gen | 76 ++++++++++++++++++++++++++++------------
 2 files changed, 71 insertions(+), 23 deletions(-)

diff --git a/README.md b/README.md
index b7be268..59919df 100644
--- a/README.md
+++ b/README.md
@@ -33,10 +33,12 @@ BOOT_CMD="booti"
 
 DEVICE_TREE="mpsoc.dtb"
 XEN="xen"
+XEN_LOAD="ext4load mmc 0:1"
 XEN_CMD="console=dtuart dtuart=serial0 dom0_mem=1G dom0_max_vcpus=1 bootscrub=0 vwfi=native sched=null"
 PASSTHROUGH_DTS_REPO="git@github.com:Xilinx/xen-passthrough-device-trees.git device-trees-2021.2/zcu102"
 DOM0_KERNEL="Image-dom0"
 DOM0_CMD="console=hvc0 earlycon=xen earlyprintk=xen clk_ignore_unused"
+DOM0_LOAD="ext4load mmc 2:1"
 DOM0_RAMDISK="dom0-ramdisk.cpio"
 DOM0_MEM=1024
 DOM0_VCPUS=1
@@ -46,11 +48,13 @@ DT_OVERLAY[0]="host_dt_overlay.dtbo"
 
 NUM_DOMUS=2
 DOMU_KERNEL[0]="zynqmp-dom1/Image-domU"
+DOMU_LOAD[0]="ext4load mmc 4:1"
 DOMU_PASSTHROUGH_PATHS[0]="/axi/ethernet@ff0e0000 /axi/serial@ff000000"
 DOMU_CMD[0]="console=ttyPS0 earlycon console=ttyPS0,115200 clk_ignore_unused rdinit=/sbin/init root=/dev/ram0 init=/bin/sh"
 DOMU_RAMDISK[0]="zynqmp-dom1/domU-ramdisk.cpio"
 DOMU_COLORS[0]="6-14"
 DOMU_KERNEL[1]="zynqmp-dom2/Image-domU"
+DOMU_LOAD[1]="ext4load mmc 5:1"
 DOMU_CMD[1]="console=ttyAMA0 clk_ignore_unused rdinit=/sbin/init root=/dev/ram0 init=/bin/sh"
 DOMU_RAMDISK[1]="zynqmp-dom2/domU-ramdisk.cpio"
 DOMU_MEM[1]=512
@@ -77,7 +81,9 @@ Where:
 - LOAD_CMD specifies the u-boot command used to load the binaries. This
   can be left out of the config and be (over)written by the -t CLI
   argument. It has to be set either in the config file or CLI argument
-  though.
+  though. This is optional when XEN is set as user can provide specific
+  options (ie XEN_LOAD, DOM0_LOAD, DOMU_LOAD) to load Xen, Dom0 and DomU
+  binaries.
 
 - BOOT_CMD specifies the u-boot command used to boot the binaries.
   By default, it is 'booti'. The acceptable values are 'booti', 'bootm',
@@ -99,6 +105,9 @@ Where:
 - XEN_CMD specifies the command line arguments used for Xen.  If not
   set, the default one will be used.
 
+- XEN_LOAD specifies the command to load XEN and DEVICE_TREE. If not set,
+  LOAD_CMD will be used.
+
 - XEN_STATIC_HEAP="baseaddr1 size1 ... baseaddrN sizeN"
   if specified, indicates the host physical address regions
   [baseaddr, baseaddr + size) to be reserved as Xen static heap.
@@ -109,6 +118,9 @@ Where:
   uboot-script-gen will compile the partial device trees which have
   been specified in DOMU_PASSTHROUGH_PATHS[number].
 
+- DOM0_LOAD specifies the command to load DOM0_KERNEL and DOM0_RAMDISK. If not
+  set, LOAD_CMD will be used.
+
 - DOM0_KERNEL specifies the Dom0 kernel file to load.
   For dom0less configurations, the parameter is optional.
 
@@ -159,6 +171,10 @@ Where:
   kernel. If not set and DOMU_VPL011[number] is not set to 0, then
   "console=ttyAMA0" is used.
 
+- DOMU_LOAD[number] specifies the command to load DOMU_KERNEL[number],
+  DOMU_RAMDISK[number] and DOMU_PASSTHROUGH_DTB[number]. If not set, then
+  LOAD_CMD is used.
+
 - DOMU_RAMDISK[number] specifies the DomU ramdisk to use.
 
 - DOMU_PASSTHROUGH_PATHS[number] specifies the passthrough devices (
diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
index b81e614..656de72 100755
--- a/scripts/uboot-script-gen
+++ b/scripts/uboot-script-gen
@@ -737,6 +737,7 @@ function load_file()
 {
     local filename=$1
     local fit_scr_name=$2
+    local load_cmd=$3
 
     local absolute_path="$(realpath --no-symlinks $filename)"
     local base="$(realpath $PWD)"/
@@ -748,10 +749,10 @@ function load_file()
         add_size_from_file $filename
     else
         if test "$CALC"; then
-            echo "$LOAD_CMD \${memaddr} ${prepend_path:+$prepend_path/}$relative_path" >> $UBOOT_SOURCE
+            echo "$load_cmd \${memaddr} ${prepend_path:+$prepend_path/}$relative_path" >> $UBOOT_SOURCE
             add_size_calculate $fit_scr_name
         else
-            echo "$LOAD_CMD $memaddr ${prepend_path:+$prepend_path/}$relative_path" >> $UBOOT_SOURCE
+            echo "$load_cmd $memaddr ${prepend_path:+$prepend_path/}$relative_path" >> $UBOOT_SOURCE
             add_size_from_file $filename
         fi
     fi
@@ -830,10 +831,10 @@ function check_compressed_file_type()
 
 function find_root_dev()
 {
-
-    local dev=${LOAD_CMD%:*}
+    local load_cmd="$1"
+    local dev=${load_cmd%:*}
     dev=${dev##* }
-    local par=${LOAD_CMD#*:}
+    local par=${load_cmd#*:}
 
     if [ -z "$dev" ] || [ -z "$par" ]
     then
@@ -844,10 +845,10 @@ function find_root_dev()
 
     par=$((par + 1))
 
-    if [[ $LOAD_CMD =~ mmc ]]
+    if [[ $load_cmd =~ mmc ]]
     then
         root_dev="/dev/mmcblk${dev}p${par}"
-    elif [[ $LOAD_CMD =~ scsi ]]
+    elif [[ $load_cmd =~ scsi ]]
     then
         # converts number to a scsi device character
         dev=$((dev + 97))
@@ -925,7 +926,7 @@ function xen_config()
         then
             DOM0_CMD="$DOM0_CMD root=/dev/ram0"
         else
-            find_root_dev
+            find_root_dev "$DOM0_LOAD"
             # $root_dev is set by find_root_dev
             DOM0_CMD="$DOM0_CMD root=$root_dev"
         fi
@@ -973,7 +974,7 @@ function linux_config()
         then
             LINUX_CMD="$LINUX_CMD root=/dev/ram0"
         else
-            find_root_dev
+            find_root_dev "$LOAD_CMD"
             # $root_dev is set by find_root_dev
             LINUX_CMD="$LINUX_CMD root=$root_dev"
         fi
@@ -1003,11 +1004,22 @@ generate_uboot_images()
 
 xen_file_loading()
 {
+    if test -z "$DOM0_LOAD"
+    then
+        if test "$LOAD_CMD"
+        then
+            DOM0_LOAD="$LOAD_CMD"
+        else
+            echo "Neither DOM0_LOAD nor LOAD_CMD is specified"
+            exit
+        fi
+    fi
+
     if test "$DOM0_KERNEL"
     then
         check_compressed_file_type $DOM0_KERNEL "executable\|uImage"
         dom0_kernel_addr=$memaddr
-        load_file $DOM0_KERNEL "dom0_linux"
+        load_file $DOM0_KERNEL "dom0_linux" "$DOM0_LOAD"
         dom0_kernel_size=$filesize
     fi
     if test "$DOM0_RAMDISK"
@@ -1015,7 +1027,7 @@ xen_file_loading()
         check_compressed_file_type $DOM0_RAMDISK "cpio archive"
         ramdisk_addr=$memaddr
         ramdisk_path=$DOM0_RAMDISK
-        load_file "$DOM0_RAMDISK" "dom0_ramdisk"
+        load_file "$DOM0_RAMDISK" "dom0_ramdisk" "$DOM0_LOAD"
         ramdisk_size=$filesize
     else
         ramdisk_addr="-"
@@ -1024,6 +1036,16 @@ xen_file_loading()
     i=0
     while test $i -lt $NUM_DOMUS
     do
+        if test -z "${DOMU_LOAD[$i]}"
+        then
+            if test "$LOAD_CMD"
+            then
+                DOMU_LOAD[$i]="$LOAD_CMD"
+            else
+                echo "Neither DOMU_LOAD[] nor LOAD_CMD is specified"
+                exit
+            fi
+        fi
         if test "${DOMU_ROOTFS[$i]}" || test "${DOMU_NOBOOT[$i]}"
         then
             if test -z "${DOMU_NOBOOT[$i]}"
@@ -1042,20 +1064,20 @@ xen_file_loading()
 
         check_compressed_file_type ${DOMU_KERNEL[$i]} "executable\|uImage"
         domU_kernel_addr[$i]=$memaddr
-        load_file ${DOMU_KERNEL[$i]} "domU${i}_kernel"
+        load_file ${DOMU_KERNEL[$i]} "domU${i}_kernel" "${DOMU_LOAD[$i]}"
         domU_kernel_size[$i]=$filesize
         if test "${DOMU_RAMDISK[$i]}"
         then
             check_compressed_file_type ${DOMU_RAMDISK[$i]} "cpio archive"
             domU_ramdisk_addr[$i]=$memaddr
-            load_file ${DOMU_RAMDISK[$i]} "domU${i}_ramdisk"
+            load_file ${DOMU_RAMDISK[$i]} "domU${i}_ramdisk" "${DOMU_LOAD[$i]}"
             domU_ramdisk_size[$i]=$filesize
         fi
         if test "${DOMU_PASSTHROUGH_DTB[$i]}"
         then
             check_compressed_file_type ${DOMU_PASSTHROUGH_DTB[$i]} "Device Tree Blob"
             domU_passthrough_dtb_addr[$i]=$memaddr
-            load_file ${DOMU_PASSTHROUGH_DTB[$i]} "domU${i}_fdt"
+            load_file ${DOMU_PASSTHROUGH_DTB[$i]} "domU${i}_fdt" "${DOMU_LOAD[$i]}"
             domU_passthrough_dtb_size[$i]=$filesize
         fi
         i=$(( $i + 1 ))
@@ -1070,9 +1092,20 @@ xen_file_loading()
         generate_uboot_images
     fi
 
+    if test -z "$XEN_LOAD"
+    then
+        if test "$LOAD_CMD"
+        then
+            XEN_LOAD="$LOAD_CMD"
+        else
+            echo "Neither XEN_LOAD nor LOAD_CMD is specified"
+            exit
+        fi
+    fi
+
     kernel_addr=$memaddr
     kernel_path=$XEN
-    load_file "$XEN" "host_kernel"
+    load_file "$XEN" "host_kernel" "$XEN_LOAD"
 
     xen_policy_addr="-"
     if test -n "$XEN_POLICY"
@@ -1518,12 +1551,6 @@ then
     FIT="${UBOOT_SOURCE%.source}.fit"
 fi
 
-if test ! "$LOAD_CMD"
-then
-    echo "LOAD_CMD not set, either specify it in the config or set it with the -t option"
-    exit 1
-fi
-
 if test ! "$BOOT_CMD"
 then
     BOOT_CMD="booti"
@@ -1543,6 +1570,11 @@ then
 elif test "$LINUX"
 then
     os="linux"
+    if test ! "$LOAD_CMD"
+    then
+        echo "LOAD_CMD not set, either specify it in the config or set it with the -t option"
+        exit 1
+    fi
     linux_config
 else
     echo "Neither a Xen or Linux kernel is specified, exiting"
@@ -1691,7 +1723,7 @@ fi
 
 check_file_type $DEVICE_TREE "Device Tree Blob"
 device_tree_addr=$memaddr
-load_file $DEVICE_TREE "host_fdt"
+load_file $DEVICE_TREE "host_fdt" "$XEN_LOAD"
 bitstream_load_and_config  # bitstream is loaded last but used first
 device_tree_editing $device_tree_addr
 
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 12 15:20:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 15:20:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078845.1439875 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulqny-0002TS-0R; Tue, 12 Aug 2025 15:20:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078845.1439875; Tue, 12 Aug 2025 15:20: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 1ulqnx-0002TL-U1; Tue, 12 Aug 2025 15:20:49 +0000
Received: by outflank-mailman (input) for mailman id 1078845;
 Tue, 12 Aug 2025 15:20:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2eVr=2Y=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1ulqnx-0000N9-2y
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 15:20:49 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20623.outbound.protection.outlook.com
 [2a01:111:f403:2009::623])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ebc6555c-778f-11f0-a327-13f23c93f187;
 Tue, 12 Aug 2025 17:20:47 +0200 (CEST)
Received: from SJ0PR03CA0213.namprd03.prod.outlook.com (2603:10b6:a03:39f::8)
 by MW4PR12MB7119.namprd12.prod.outlook.com (2603:10b6:303:220::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.20; Tue, 12 Aug
 2025 15:20:43 +0000
Received: from SJ1PEPF0000231A.namprd03.prod.outlook.com
 (2603:10b6:a03:39f:cafe::bd) by SJ0PR03CA0213.outlook.office365.com
 (2603:10b6:a03:39f::8) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9009.22 via Frontend Transport; Tue,
 12 Aug 2025 15:20:43 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF0000231A.mail.protection.outlook.com (10.167.242.231) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9031.11 via Frontend Transport; Tue, 12 Aug 2025 15:20:43 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) 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 Aug
 2025 10:20:42 -0500
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 12 Aug
 2025 10:20:42 -0500
Received: from [10.71.195.192] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Tue, 12 Aug 2025 10:20: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>
X-Inumbo-ID: ebc6555c-778f-11f0-a327-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yLZKPDje4izDOOLiqzSUNmVIsllcVXjmhK1yR+ci22uaSFthbTUZqwotBL5euCtM0P+oTCsYKabrhZJtg64qke9Q9u0G/kYn+TCCoMMi5zkk7yAnasHrBgBB0muS4vMhVMgWFMal9d5rnZmeXm1JyiVMRdGI0LmPtv4A2xd377OvRwBrZzCdf4Xv3APbBssXIrGBVLrZLLxTonGz9Mcqg+uY3dz5R72ksuJeEpM2OOSShQifSbFM+d/+niYO/DMpD2NekVpoQrYpmPdaclfo4J5Jytk4vE1x8K00mJ+AJPo8BO+BhUwv/Ab3OzeGjSDBKAX1etOZTdnHtbL7knMhmQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=QoQpcmomhMlZJ7ni8ZfszVR1brwT8moNASZf/uIEUPY=;
 b=JnNJ/wSVA976bYydPElpgiv7ggJPD5zSxq4i5yu9Ij8P5GpouilNLujBeLoyZfn44VwKNulqqbfhL9pm0fzsBd1/amWG+DY6a/wG8gSxtIcnMcACqx/DXvT+2tMkNQCc16ZjvVaZMb6zGlQPE6JFvdm9av51cFdtz1FrJHPu9E171jv2vBoHSEEryBTSaFPoAJ1wHv1tHbfqqTOUw0f5W4Fq20nDnJKtKsH+j+p4foewVYZ04pqWV613Q1lTwnw+MrjOQTeSwb94Qp8w9syF6pElHiF5jxtT/9FCrVuRwyTr+/4gFP1gUnFn3sQcJmtVzOhUiSpj3nj//vTEibH1Eg==
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=QoQpcmomhMlZJ7ni8ZfszVR1brwT8moNASZf/uIEUPY=;
 b=0JeZPQ7mYI0qEFOpELFWMpuuWLn5kZQcmLUL3BiRnFCgkwtcIA6OAA+vIsVV1unsARPyDHvnLnH3RY6EtvhDcVJdj5TvJzxv9hb/a7Guuoz0Oe2zIby3VDYpDeNw5XAe14yx/B6lq4HhruaMxbeAJZaCP1zMSfB/FHbevw202EA=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <95ff08de-632c-4fd1-b73f-bb04380baac2@amd.com>
Date: Tue, 12 Aug 2025 16:20:41 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [ImageBuilder] Add config option to use separate load commands
 for Xen, DOM0 and DOMU binaries
Content-Language: en-GB
To: Stefano Stabellini <sstabellini@kernel.org>, Ayan Kumar Halder
	<ayan.kumar.halder@amd.com>
CC: <xen-devel@lists.xenproject.org>, <michal.orzel@amd.com>
References: <20250806123352.15852-1-ayan.kumar.halder@amd.com>
 <alpine.DEB.2.22.394.2508111428490.2883419@ubuntu-linux-20-04-desktop>
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <alpine.DEB.2.22.394.2508111428490.2883419@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF0000231A:EE_|MW4PR12MB7119:EE_
X-MS-Office365-Filtering-Correlation-Id: 3d75993b-96db-40ae-614a-08ddd9b3ce04
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?c05zWXNzRGdYMVUzTmpZdmR6Z3hJYlRweGJ0SHY3anp0aEVBUjltVXgxVnBa?=
 =?utf-8?B?b0s3NFIwa1hXTENrZENHQk9OM1FRaEdZM0htQSt0TWhzSXFkTVprZXVkRXZB?=
 =?utf-8?B?eEF4Q2RZK24xT2M0RE00S3VDM21zQmVIMFd5RGYrNGUvOHdNbzNrZjY4VFhz?=
 =?utf-8?B?dnFTbzdPOWxaU3d6V1lxTEQrd1Ewb2lBZ1d0OGxzdk5wRXJhdFcwZ3pPWk1D?=
 =?utf-8?B?M0hqS2lnako5VmhBQlZyMXNWd0w5VE9sYk5iM3pEMXNyaFhNRnhYbHdKTHFq?=
 =?utf-8?B?SVJESWV1Q0g5Q24wZTY2akFPbUhucVJPZnk5blkwMDdaTWxpNDZ2NjdpYy9O?=
 =?utf-8?B?ZFF6bk02Z0hrcjR2Rm1ENDVSUEF5VDhUbWY5eEJ4Njh2b2tRdEFuOTJUQ3h5?=
 =?utf-8?B?TGNvcTYzTTlRZnkrUzRFT2Zadk5KWThpaTJ3RVEvMTFVcDBEUWZTcGdKdkl4?=
 =?utf-8?B?TEdBYUoraGZ4bUduRGJKcENDR2lHQmsyRUFKRUtVd3h0TERwQk1ONGx4eXZW?=
 =?utf-8?B?bVZqak5YNzVtTWx5ZlBmU2FrZ2NmRjZleVRneWN6ZVRYWFpLU3MyT0Q1NGhT?=
 =?utf-8?B?cDlxVmd0VjNLSlpRenpqc1Y5SWJhakxDYkMrdlcxY3NiT1dZVms0SEg3eTRH?=
 =?utf-8?B?QjArQmFOUzkyQTd6SC9qWmZnTEpLdmRPalZDTW13eURLcVQwMk1SQjVQeno3?=
 =?utf-8?B?M09abWFMTXhEMHZLSjlNNU4rSFV3QWx0VTZabVhJeDVQWmdpRmpVZDNXNFVk?=
 =?utf-8?B?QW42MFUwSG5oVkJEYVlTMkVyZStpQ2lQQy9JYzRaZ1NXaVNYNktFS0NhMkRt?=
 =?utf-8?B?VlVFZFpFUjB1V1h4OWhrRUI3QlMybE5iMUZMeVNpL0R1WDY2V0ZrRm1WOW9v?=
 =?utf-8?B?aXMzVHV5aEkrTUZUaEhySnErdXZabzhGV3ZNSkNVbmxyWHVZQTl6Y0pBRDRN?=
 =?utf-8?B?VjY2MkZWaGp6NWFOclZkOU9RNTQ2QlR4cElQendOR1B4ekdqSm9Qc3hlZ0Jh?=
 =?utf-8?B?MkpTVjFUWHBBSHhIcWkxNjY1OGNEWGlValplc0xORGJvZ0JYL2xLQ2dsWVNU?=
 =?utf-8?B?OHJPWTFlSTROYjA0dVVJZFJMdDlwSGxHckZqcnZ5NndSaFVuVXM2b0RwSmVH?=
 =?utf-8?B?dHN5UDhuTWRwbnFZMjV6NHVWRmRGWFdzSHk2WkNwd2Mva0I4WEZsaTNrbXl1?=
 =?utf-8?B?ZDBVVUpZOE5rWG5SdlNxNGc5R3Q0Q2tJTk1pR0o0b29xUDVGenVoWDN4SHJr?=
 =?utf-8?B?bE1qUWlhRUcyOTZ2cTgvZkNwN0EwU3IwUjBWd2VMN0lOUXdia1cvZGxKTzlG?=
 =?utf-8?B?a3hobXdORDBYc00vS3ZzNVh0bmkxQzFDNG1SSUFQV2NXaTZVMUZGOHBSQ0Fy?=
 =?utf-8?B?WU1oeTRORG50SEh1UGRTM0ltemUzdlMrWENpUk9BcU1Tekhqc0V1bDJLUHlQ?=
 =?utf-8?B?STNzOVNXWVNWRGhrYWg1UWZjL29hSDdXOXRBa3prVnBHWEh3M1NZdU94ZjBH?=
 =?utf-8?B?YWpzNjdGNk1senpVanRhS2VXeFNBTVlBaHBQUHJpOThtRnBXRUxOR3plTjky?=
 =?utf-8?B?eDd4b0loWkhkRUo5MUkrMjJVQ2hubm8xU3RPczdLaWt4YWVSVEJMOFczd25w?=
 =?utf-8?B?SHpvckRNZCtTblRMSDcyRDN5U242Ym5PNlhTTDlsR05zSGVIR25CVXMxdXNJ?=
 =?utf-8?B?QUtnTk4zcmFHR3JaRXgzZkloNG81VTZuOTRZclYreTlsYXpSRnI3WkliSEI0?=
 =?utf-8?B?SHFBcGpBU3dTNk9MQmV6eDhMVklweGNpRHNGSTJlVlJ5KzNZN0VYclBjSGN2?=
 =?utf-8?B?Q0N4MXd0ejNacnBSZ2V2K0pHYUdvRjlYMW8rZnRhVWxiMUtnWXhLOThaT2hD?=
 =?utf-8?B?aFljVko4R3Z3eUJ3Q0xOLzhNVDhNT1krWWNlSkJqTm5MaWM2ZlRNenY3UUIw?=
 =?utf-8?B?V1cwRFl5SGFyOXhvNW1OVXVTWVUrbEhHWkc0OEgydjdIVjlpZ0hGK3p2VWpw?=
 =?utf-8?B?bC9ZbE9PVm9ac1Fmb0E2U29LVkpWbktkZEJBSVhpSzJjR3MxempNb3dHalRn?=
 =?utf-8?Q?tws8DU?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(1800799024)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Aug 2025 15:20:43.3902
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3d75993b-96db-40ae-614a-08ddd9b3ce04
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF0000231A.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7119

Hi Stefano,

On 11/08/2025 22:38, Stefano Stabellini wrote:
> On Wed, 6 Aug 2025, Ayan Kumar Halder wrote:
>> Introduce the following options :-
>> 1. XEN_LOAD - This specifies command to load xen hypervisor binary and device
>> tree.
>> 2. DOM0_LOAD - This specifies command to load Dom0 binaries.
>> 3. DOMU_LOAD[] - This specifies command to load DomU binaries.
>>
>> There can be situations where Xen, Dom0 and DomU binaries are stored in
>> different partitions. Thus, imagebuilder should provide a way the binaries
>> using different commands.
>>
>> If any of the above options are not specified, LOAD_CMD is used by default.
>>
>> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
> The patch is correct and the new config options look good. Two things.
>
> The following check should be removed or, better, modified to account
> for the new options:
>
>      if test ! "$LOAD_CMD"
>      then
>          echo "LOAD_CMD not set, either specify it in the config or set it with the -t option"
>          exit 1
>      fi
>
> Thanks to this patch, it shouldn't be necessary to specify LOAD_CMD any
> longer.

Actually, we should keep this check when Linux is loaded (without Xen). IOW,

@@ -1557,6 +1551,11 @@ then
 Â elif test "$LINUX"
 Â then
 Â  Â  Â os="linux"
+Â  Â  if test ! "$LOAD_CMD"
+Â  Â  then
+Â  Â  Â  Â  echo "LOAD_CMD not set, either specify it in the config or set 
it with the -t option"
+Â  Â  Â  Â  exit 1
+Â  Â  fi
 Â  Â  Â linux_config

>
> find_root_dev and fit are the only two remaining users of LOAD_CMD.
> While I think it makes sense to keep LOAD_CMD for fit, find_root_dev
> should probably use DOM0_LOAD instead.
yes.
>
> This incremental change (untested) should work. What do you think?
>
>
>
> diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
> index 9e97944..867876f 100755
> --- a/scripts/uboot-script-gen
> +++ b/scripts/uboot-script-gen
> @@ -824,10 +824,10 @@ function check_compressed_file_type()
>   
>   function find_root_dev()
>   {
> -
> -    local dev=${LOAD_CMD%:*}
> +    local load_cmd=$1
> +    local dev=${load_cmd%:*}
>       dev=${dev##* }
> -    local par=${LOAD_CMD#*:}
> +    local par=${load_cmd#*:}
>   
>       if [ -z "$dev" ] || [ -z "$par" ]
>       then
> @@ -838,10 +838,10 @@ function find_root_dev()
>   
>       par=$((par + 1))
>   
> -    if [[ $LOAD_CMD =~ mmc ]]
> +    if [[ $load_cmd =~ mmc ]]
>       then
>           root_dev="/dev/mmcblk${dev}p${par}"
> -    elif [[ $LOAD_CMD =~ scsi ]]
> +    elif [[ $load_cmd =~ scsi ]]
>       then
>           # converts number to a scsi device character
>           dev=$((dev + 97))
> @@ -912,7 +912,7 @@ function xen_config()
>           then
>               DOM0_CMD="$DOM0_CMD root=/dev/ram0"
>           else
> -            find_root_dev
> +            find_root_dev "$DOM0_LOAD"
>               # $root_dev is set by find_root_dev
>               DOM0_CMD="$DOM0_CMD root=$root_dev"
>           fi
> @@ -960,7 +960,7 @@ function linux_config()
>           then
>               LINUX_CMD="$LINUX_CMD root=/dev/ram0"
>           else
> -            find_root_dev
> +            find_root_dev "$LOAD_CMD"
>               # $root_dev is set by find_root_dev
>               LINUX_CMD="$LINUX_CMD root=$root_dev"
>           fi
Till here the change looks ok.
> @@ -990,10 +990,6 @@ generate_uboot_images()
>   
>   xen_file_loading()
>   {
> -    if test -z "$DOM0_LOAD"
> -    then
> -        DOM0_LOAD="$LOAD_CMD"
> -    fi
This and
>       if test "$DOM0_KERNEL"
>       then
>           check_compressed_file_type $DOM0_KERNEL "executable\|uImage"
> @@ -1065,11 +1061,6 @@ xen_file_loading()
>           generate_uboot_images
>       fi
>   
> -    if test -z "${XEN_LOAD}"
> -    then
> -        XEN_LOAD="$LOAD_CMD"
> -    fi
> -

this, I have a concern about moving the changes out of xen_file_loading()

In xen_file_loading(), we set DOM0_LOAD, XEN_LOAD and DOMU_LOAD[i]. With 
this change, we set DOM0_LOAD , XEN_LOAD at the beginning of the script 
and DOMU_LOAD[i] in the function. This looks a bit odd to me.

Further DOM0_LOAD and XEN_LOAD should be set only when "$XEN" is set.

I can leave the change as it is in the current patch or I can move them 
to xen_config().

Please let me know your thoughts.

I have sent "[ImageBuilder v2] Add config option to use separate load 
commands for Xen, DOM0 and DOMU binaries" so that it becomes a bit clear.

- Ayan

>       kernel_addr=$memaddr
>       kernel_path=$XEN
>       load_file "$XEN" "host_kernel" "$XEN_LOAD"
> @@ -1518,12 +1509,22 @@ then
>       FIT="${UBOOT_SOURCE%.source}.fit"
>   fi
>   
> -if test ! "$LOAD_CMD"
> +if test ! "$LOAD_CMD" && ! test "$XEN_LOAD"
>   then
>       echo "LOAD_CMD not set, either specify it in the config or set it with the -t option"
>       exit 1
>   fi
>   
> +if test -z "$DOM0_LOAD"
> +then
> +    DOM0_LOAD="$LOAD_CMD"
> +fi
> +
> +if test -z "${XEN_LOAD}"
> +then
> +    XEN_LOAD="$LOAD_CMD"
> +fi
> +
>   if test ! "$BOOT_CMD"
>   then
>       BOOT_CMD="booti"


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 15:47:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 15:47:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078859.1439886 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulrDJ-0005fW-5j; Tue, 12 Aug 2025 15:47:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078859.1439886; Tue, 12 Aug 2025 15:47: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 1ulrDJ-0005fP-1h; Tue, 12 Aug 2025 15:47:01 +0000
Received: by outflank-mailman (input) for mailman id 1078859;
 Tue, 12 Aug 2025 15:47:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=3OTH=2Y=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1ulrDI-0005fJ-01
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 15:47:00 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8d68e62a-7793-11f0-a327-13f23c93f187;
 Tue, 12 Aug 2025 17:46:46 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by AS2PR03MB9348.eurprd03.prod.outlook.com (2603:10a6:20b:578::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.22; Tue, 12 Aug
 2025 15:46:43 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9009.018; Tue, 12 Aug 2025
 15:46: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>
X-Inumbo-ID: 8d68e62a-7793-11f0-a327-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=WwSSF6bBD+wLP6jVNtIUoW6/XQEsCQOHyq08M2yWUIdyaQqTTemrN774fRpKPz/t5+0WlZCUg4as5DooFuQPnDX5YuG8jKml1vSHO7A9fgkYYSynqyjj/tnqdlB8CqbOfd6119MYklegnwvTSy1fDLeMckt5xnVD01XUKTw+CrPf7m1ih8zVc1L8SGU9Umw0p8EpoAFEF8eN0V9fvOub+JKNAd5PRQ321H88+O5vY6ewy3E4hWOTvLDh9ixFNFofeo1HAqjoyYGoOdKxJMF45x94cBfhNFL+RDetPYCUnI3ck6z5yUpmrAm6AJsFy/EntVqStSs+xz1vMO2HndSw2w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-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/QHvgbmohPFmHHzvigTT9seSw/ncIG0QHyBVaz8jIo=;
 b=OoIFYJckwfq28w5kHwBoWXit6BlE2HLICcXfmCqDxJCbr8nAEAW+wrJNHuCOgc+C96RI95pAvKarAHDWj+23fhuFFpl5QxoL8kxQqn1U+POORU0UswR4YgZl/+qsQQDp+oYk95eW7CDInRYJubqbPMVeusVs0eZN9v3BTbLJ7EdGsW7INNohx2x8c4iChzCZHvaEEphxF6AVnpPUr7aagA4xdCtDt3uQtMkvRwSdklISUjwg/WjH1Pzt/jqVRdvKcJAAMWFs519sl+JwPAWudw3Ifr7epC/CDgBWoKokwtAF9ICBwl68lLkSTzvEZkqJLFFPY3VVP1z2qvskL9O3+Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=t/QHvgbmohPFmHHzvigTT9seSw/ncIG0QHyBVaz8jIo=;
 b=NvtRNN6LaLj7vgSLewiop5WQohr9z8fNl4VQca/mRfb7pD8hX4LRpfWjiAskQ7Xt/OiMUt8vDwGDp8QokOgBMXAVt42w6cFGiOJ3pGO61OKOtK0XofGcJoVOlVP5s7OTLYcOwET9SyALsh297VmR3c5H6iP5zLIdsXXMDVr7e/j6FG3Oev0ElKS+Otl4piEs7JWuP9hlZkLmAqvqp/eTUTt1WQDZTGisLfLvbBqv6/9WlsEDd0ss7e9IIv8kgoT3RvLISxSqL56qayjTS8iH9OI5iT56Ff+qsUPdMXB1iTiW27soXeW5khyyvBG8z1VdlqJDOrJmD0oIJ6kuhGK63Q==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH] misra: add missing noreturn attribute for __div0()
Thread-Topic: [PATCH] misra: add missing noreturn attribute for __div0()
Thread-Index: AQHcC6BNrZWExZ8T4Eir24b0NtVqLQ==
Date: Tue, 12 Aug 2025 15:46:43 +0000
Message-ID:
 <1b5549a97db31c65edb769302deff73576cec41d.1755013482.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: GV2PR03MB9572:EE_|AS2PR03MB9348:EE_
x-ms-office365-filtering-correlation-id: 47498684-2ecd-459d-f3dd-08ddd9b76fa5
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|366016|1800799024|42112799006|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?qPqdgUSjtzwPeABK/iosiQ8zQaxxJfEKtxM88E0iIG5ofX8+XECyHcUcEk?=
 =?iso-8859-1?Q?Clxw+BUzCBrIfWDWmgPFySrVo7H0W2c8J86g11ouSzJjqGXa7q1Cd4lznX?=
 =?iso-8859-1?Q?7ikLbuuidZgS97tujMVQ3L0xdquAdmw/dNeWRqnilZKBcZ6HP5daEay9tp?=
 =?iso-8859-1?Q?930/AC8vFdNt4MKVrDPTQPTT/vzQWFls76Gp8CqpE6d8yhg8QSY9pQntL/?=
 =?iso-8859-1?Q?UoQNICoAPiWeSFqPGKiAVRd4V5rkFx88i0NjGkaZDVQrBq9y4mMW18XryK?=
 =?iso-8859-1?Q?nFhqBVsaULejWG+OGmRLcG7EwMeXpnNUwvPqdNgzxJ8ha0A7OuDJpFzbNG?=
 =?iso-8859-1?Q?4N+QafMlU4gzSDMxoomIPblpWaAS81GcQcoV1VxiUkQ0l8SLyo8+aAE1jS?=
 =?iso-8859-1?Q?hsoI1jrl3YfkS1L9/AIjhV+3dMVcdIXkOJtVj4caERMy08+XxremhE7SN7?=
 =?iso-8859-1?Q?Y56XH3c06sVIWB/tenVXqQ9+gRwoFtGj1pQROWWrdesmlJ0I5mCHPBTOvk?=
 =?iso-8859-1?Q?RzE4k2nyFcPsA3kRSvfyd8p4Ws3Mkjc39SwH9CxI9ZoUppScxLnMni3qUK?=
 =?iso-8859-1?Q?vfBVO9k3yxJZuGAv4gJewXPqdyVV4xH2Jl8F7/tJGSw5jkDi2NSzIzrHKR?=
 =?iso-8859-1?Q?Ieau/5H6RMYa8yrOe/WCTpMQn94O9ux+6ggMuFcqD0Q57b/GTSGShu5HkN?=
 =?iso-8859-1?Q?LP2FgrBgHGlkPTwkpEBbGmPJ6SYM5h/mUFBkalDmnf2uwNrlulpct0eamn?=
 =?iso-8859-1?Q?0Vtn/RF7M0+v2x1ahJuCOXxUb3PrkcS7hk1UE47esyZPzzef/qQm4S43rT?=
 =?iso-8859-1?Q?VZ6KuxM/BKS/AUqTj2mRQ6096ShG7dZS5Z0dddamfOWeaivojNXTR9JMvR?=
 =?iso-8859-1?Q?Mp6gdVRsys2POQUBDROFgO12UKWj8X5v8qNw/iq9BToe1owmioB97+9x4V?=
 =?iso-8859-1?Q?0yOge5LUMo5Y7cG9STL61ARr7q4T8ijp6TRDyiky08yBDQIGKiTEMYCKPq?=
 =?iso-8859-1?Q?b3s+lYZP6QsM338j2pv3fe38XsnKx30PJf0ioytOtFB9r3sYTAQyXMTz+v?=
 =?iso-8859-1?Q?XFZbRor+f7hfOWEmB4HKrbnbriWORSAuM7wlsLpO/3fpUCibER7xS/h9wR?=
 =?iso-8859-1?Q?5sZsVtDwqcLyLA1zJX+x/3hApysUZ8TNSIHBpTWEPuUtkExz6D5h57AuOJ?=
 =?iso-8859-1?Q?wmCJ9yqeRi/qphoTwUmZKResK7/UC+443mMNrEhHwZUvQ70M2chfz+PO5O?=
 =?iso-8859-1?Q?aQIkVSGKty0+oB7aehQE1rbtMfcElXdJAIaAI1iwoo05++4s2qsxbh62d6?=
 =?iso-8859-1?Q?MkSkyB1TBLOkZLjDwqDxdUj5yFW8mEsQKSKiD/JnHyrkaHpG5EGcuMUg6J?=
 =?iso-8859-1?Q?1i97d3BHho3OgWP8PjlNV/ydABjbUnwuqWnTHIQn9aDQXCRSqslQOVcikw?=
 =?iso-8859-1?Q?sHxsPDCLXnij2f4xYSzAoi6200PzW//9UcVpzsY/JQwAgLE/mHvknKS5P5?=
 =?iso-8859-1?Q?BPVLuU3QwMs2YtJuw8TOus0hH0B/nohBLv/zAvItSH8BmDr0ayg6rMp8yz?=
 =?iso-8859-1?Q?8kGjapc=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(42112799006)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?Wng5J8mwdax6IIF/fPEBCvJtNitR4PwYpO8MegidwhOOmAcbX+0VeAE9Vu?=
 =?iso-8859-1?Q?aCObwyz5QOaWLpHkDOi6yIJgdeaKDl6QY7NDnGS31889JMSdLeHKwABRh7?=
 =?iso-8859-1?Q?qD/ubLg2ohnWba0XBHByX5XlqxJ6XRirk5r6aWv/Iso2SIIxJRacE5/9kq?=
 =?iso-8859-1?Q?kynvIXGC+UMkTLci3Zlb/vk0HODR+JWzMnP6wHrQxUxfvgQZrWkbxzKGji?=
 =?iso-8859-1?Q?WfNKSONmjO70zw2CxR084psbSkqfb9H7+rYzaoEwl/Ra1QFm9NaNRuKy/D?=
 =?iso-8859-1?Q?6Gvh1ACaFT8df1X3ctPjUcu7FQgPb+WkcErIsUnRMhEKeTT/OomE9JmRSU?=
 =?iso-8859-1?Q?8jJqW20Gzh7EJRMPYGcr9LqaG4QGJ3P25c6EFsesbDZoFvL/GJfRcE9jRk?=
 =?iso-8859-1?Q?T2PGMYT2xqvazR6jHVfkVu7LE52EqT8zqL19+LueV8jv4aaqnWdYhgBOgZ?=
 =?iso-8859-1?Q?EMArKV0///EYbcIjWvk4Zz0fsGyQqdqfCTq5Vs7Wly2caXBf7PtltvMNiP?=
 =?iso-8859-1?Q?0o2eNTJHVBs5hf4UOWcRaRz5tFUonySCpuGYKbLnlCnZhEAWYLPr3NX6xz?=
 =?iso-8859-1?Q?CQJk1iy85svjSMnnMR++iEZz1xScqyKfN1kpRX5SoNWMI4EHHCVF8dGUbX?=
 =?iso-8859-1?Q?O4RTfrsHhNjhez/9Ck+oY/wO4Brjzol3CGmffKsfN2j9riipXhzxIH78pj?=
 =?iso-8859-1?Q?BOwWy8KsPoK7t+6K1C9WZ3qrwekICphO8rGfxd5iVOqY8T/7F0rmLg6jNZ?=
 =?iso-8859-1?Q?MbkBJLPmgvFJzfwMDdkQBOQTFjWbXVlAe0qFurUb5nLa5j3ehHcrh2T8vp?=
 =?iso-8859-1?Q?PoHw/0ZL3PIo2h9yBaKyQQ0VD0lWnVxqx5IyLruMOwUf0UZHfDzY6yYLrq?=
 =?iso-8859-1?Q?ArklD3gpiqE6gm1sYPLKqchsHtiOudGPKHoCF7XM6maE5okSrW6ZIul2tL?=
 =?iso-8859-1?Q?bsMPEQIwjdAsm+ZbxAOb6duV98kovbFa8Sd+eoAAQgPAqnA0SkjSFc/AO0?=
 =?iso-8859-1?Q?ZNGae2RoL+p9XdJTn7bRWAEUrIbvtR9Rmm7yW0Z9sDC+/+92uWcFo58tNt?=
 =?iso-8859-1?Q?Rw91rwVm5tj4sc4LFtFm1q51Vhru1Gm8YsLDKzKmKVKEoiSuWnOkl4ASYE?=
 =?iso-8859-1?Q?HJuTY6+43A7/ir20u8BU0T6vRRPBh/gdFPpAVshDE6nKlQcN475idt+bz1?=
 =?iso-8859-1?Q?raBHZZvWRpUH0lx9ojtE9/2f1CTMEw2+beXlsO5fWyIXhkpOxXMs4v5+t5?=
 =?iso-8859-1?Q?xtbJggYXQq3RaApi6I6fWPQbc2T8DG1F3pyxffBYP5T14Gg0wh8udm2X7N?=
 =?iso-8859-1?Q?1HdwX9fWeCd9B8EH09/j90dO8FkcWNQnhhjAbIkGMyjdJI75HROhfizwQM?=
 =?iso-8859-1?Q?0yc5+A6kvs3WwUoIzKwQzHp0I0tCljx6oAEfyUMRXxyzwcJyr4uj7CPv7Z?=
 =?iso-8859-1?Q?RyXlKnfuMAAv6o8G5NcJQYhjY3eUonl881hKA0lWVXSAf7QpS0r9d7Tnal?=
 =?iso-8859-1?Q?jQtJ31XWXFVrMndAkgfk22Iv+kgmgRhLlxdA2P4zu/2CMifYNwLhWUy0o0?=
 =?iso-8859-1?Q?t2+ZXssLPOytcrTsi/+vXGK4au5QvPukY7z9lbzTSbV90kXjqNGAkiRehP?=
 =?iso-8859-1?Q?17jGX4NTdAoUhfej9UUyI5+bbMwvcvjznFqZh2MIvlIX1yomzYjcm9hA?=
 =?iso-8859-1?Q?=3D=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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 47498684-2ecd-459d-f3dd-08ddd9b76fa5
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Aug 2025 15:46:43.1399
 (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: WV4QJRAtyr9sM2B4mqzydwowqyQFdZhx9V8IZxlw1hlYJ3YKgMHqe4V0yeLpVhLPMTc2yftAdI4i3WUp0jsDeZhAEY1mhTIzI63IYhUx3LQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB9348

The __div0() function never returns to its caller, causing a violation
of MISRA C Rule 2.1: "A project shall not contain unreachable code".
Add the `noreturn` attribute to fix this.

Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
Test CI pipeline:
https://gitlab.com/xen-project/people/dimaprkp4k/xen/-/pipelines/1980129839
---
 xen/arch/arm/traps.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
index 445e7378dd..2bc3e1df04 100644
--- a/xen/arch/arm/traps.c
+++ b/xen/arch/arm/traps.c
@@ -172,7 +172,7 @@ void init_traps(void)
     isb();
 }
=20
-void asmlinkage __div0(void)
+void asmlinkage noreturn __div0(void)
 {
     printk("Division by zero in hypervisor.\n");
     BUG();
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 15:49:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 15:49:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078866.1439896 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulrFs-0006B9-Gr; Tue, 12 Aug 2025 15:49:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078866.1439896; Tue, 12 Aug 2025 15: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 1ulrFs-0006B2-E6; Tue, 12 Aug 2025 15:49:40 +0000
Received: by outflank-mailman (input) for mailman id 1078866;
 Tue, 12 Aug 2025 15:49:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=WPHn=2Y=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1ulrFq-0006Aw-Ku
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 15:49:39 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f30745b4-7793-11f0-a327-13f23c93f187;
 Tue, 12 Aug 2025 17:49:37 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id D63134EE0744;
 Tue, 12 Aug 2025 17:49:35 +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>
X-Inumbo-ID: f30745b4-7793-11f0-a327-13f23c93f187
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=1755013775;
	b=hWsy1XXb+IhtjyVtI094BmKpY6oX7bfBLwMxJhWcRnY6xvC/fhHjurNYhc1vUzX0cUeH
	 CjJwRKRaDusWP0rz6B8KSGn+oRmS5nY+aCQpaj98je5w3NNM+ontAFx58oqchesEoQ/WD
	 vQ8BMX1n2CyhVrwY0q06F+Fu3qsq1MahfOaovx69Fl0iHA8P7G3X+XyQ82mXJwkU0QB2E
	 dndiCKZoJBMRy/inwbbgKDeNYKGYbxkgWK8cfHA6dmF6VOsY8+luYnmkn/XndhUCze3kp
	 bRmoQeyAPrMlLhVmYJCxQaCbWZXV3gb2xqoFI8YnBc6MEJ5tIh3bQHwsyVrEdEWX4CK12
	 UdBCcVh0xUrb95a0DuEVEEAroBfaTZGvSUgF/Xe1Dy5+GsaXCHSzBt4OshS+2/W/DZ4Si
	 BngneFnHgp/l1nEhsyZmeUGOMW5oH6f1zwLW9P2+C9ZCfigERpoKscBW+2xl/7qDnKxWM
	 Os3i13sZB784xWHCmzjGw4lBxwqewfSr4xMTrzOB5zCPYJt17ndy4Q7aZ/4HgZgShTRPX
	 h2C9HjCuQTd5BFpXB/uTYarjAkcgF0nMLDmS/at7YMbDSw+xlQFtDmjw81zseBLgQm0Lm
	 PXyNPAVtIAHQ31q0OHRDwyEjEVUMNdhluRD3z6WlqSIhhlKspzU1ystGM16t9KM=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1755013775;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=92+Xp9/ptUrRMK/PBNThr9/1s4fDv2zdvs5B2CKPtRA=;
	b=29/csnUI1hrs16f3AM4yA0Kr5Ry5KfCJH65kVFjs4iHADO9N5on1GYdIJZYPe4lrPk/P
	 BTyieFwoF0TRmR+66P3HT+QeP/x7YstqjI7BrNI+0pHOLAPMZB38RLYKjB0tkX27eatWK
	 f0LE93D/fdvdahlrLXm1YsJ7ScvsdPGd8oO5RwlOiW/hI8rYQwHWmYq7JsYJrs2pvgJZY
	 aZouD1SRKwMC0gIWyYCkXStcMilVTj/zxzjKL+2dUn3mtbf7Jo0M/0HDfdBi6c3lDduxN
	 +WFj8i4mEsUEjIMzxk9j7auqDQrFVhafXLasG1pNGde/CtbGoL1OWpwMPDJMuVhYqHTUG
	 ZbwbZ/Onuq+nZAB2RvnqTlPuFkezXSeBTe8IEwIon+Is1gmRMS7DO4zE66D3KKIY9Gh2U
	 U89WJqAAeYW3FKRSagtDQ7aEPung2HaO6UfUVLkm4FZIS1oTxPW+luH/+fQUpKXR5eQxd
	 rVTSC7MJWOHHmssTMgkeVp67Zc75/yqE7DXVvPNtg/HxyxRzuKbAIcr/oliJZXz4O3s91
	 NoJAGRtGcg1OSNevG2MdYfSwI8w4QWYHw26Rxc7s1T5Dp6KRSiFIUL6X0ZJbYpD/LR99N
	 zlhj3p5fMd7RqsWRbRUwudq4fRzr9BSICrMCZfa5PpAMf3XWUsOM7eQOUJjZcME=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1755013775; bh=af0Dom1/TSFFK5AmTYyYolg6Vz6yqixWwh8drceswgg=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=cFpre41fBYY+GylfQLgq2RtEeXsq+IyMVQHqLCEm3KOfBwUK7qyYDAiXmExo+gla5
	 wgS+mJn4+4qjM7kZ99PsYBLVDUgPa9RMchEpypdLX6FDPOd8VC5JaIOZl5cON8mGpw
	 cslvwx8/mbRdL+hiEFL75Y0NvDETrVsHNkgoHVBMHZUM91/gOkYpafOgP09vQbttVA
	 ScoTQ6wsvNv+QsFg8i1Au5BCI8hoywp/gY8ZSddQWUyXmgp1/ard1BN/8YgUTYPo+y
	 L4oJDr4o5nW6yQ+ZUxwrx+c/e3Vhe2iSVLpUMMMfgZPBE4DWun/0wg8x3bHdcxKZbn
	 PpN09QDPCHOsg==
MIME-Version: 1.0
Date: Tue, 12 Aug 2025 17:49:35 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: xen-devel@lists.xenproject.org, Stefano Stabellini
 <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
 <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH] misra: add missing noreturn attribute for __div0()
In-Reply-To: <1b5549a97db31c65edb769302deff73576cec41d.1755013482.git.dmytro_prokopchuk1@epam.com>
References: <1b5549a97db31c65edb769302deff73576cec41d.1755013482.git.dmytro_prokopchuk1@epam.com>
Message-ID: <6aa50b8147d14e4d654f1291fc3b9cef@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

On 2025-08-12 17:46, Dmytro Prokopchuk1 wrote:
> The __div0() function never returns to its caller, causing a violation
> of MISRA C Rule 2.1: "A project shall not contain unreachable code".
> Add the `noreturn` attribute to fix this.
> 

I was convinced that this was already upstream, as I made a patch a 
while ago, but evidently I forgot to send it.

> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>

Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> ---
> Test CI pipeline:
> https://gitlab.com/xen-project/people/dimaprkp4k/xen/-/pipelines/1980129839
> ---
>  xen/arch/arm/traps.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
> index 445e7378dd..2bc3e1df04 100644
> --- a/xen/arch/arm/traps.c
> +++ b/xen/arch/arm/traps.c
> @@ -172,7 +172,7 @@ void init_traps(void)
>      isb();
>  }
> 
> -void asmlinkage __div0(void)
> +void asmlinkage noreturn __div0(void)
>  {
>      printk("Division by zero in hypervisor.\n");
>      BUG();

-- 
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 Aug 12 15:51:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 15:51:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078874.1439906 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulrHR-0007rH-RC; Tue, 12 Aug 2025 15:51:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078874.1439906; Tue, 12 Aug 2025 15:51:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulrHR-0007rA-Na; Tue, 12 Aug 2025 15:51:17 +0000
Received: by outflank-mailman (input) for mailman id 1078874;
 Tue, 12 Aug 2025 15:51:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BkKW=2Y=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ulrHQ-0007r4-5V
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 15:51:16 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2d765a6a-7794-11f0-a327-13f23c93f187;
 Tue, 12 Aug 2025 17:51:15 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-458bc3ce3beso34201965e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 12 Aug 2025 08:51:15 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459e5852e28sm298486965e9.9.2025.08.12.08.51.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Aug 2025 08:51: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>
X-Inumbo-ID: 2d765a6a-7794-11f0-a327-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755013874; x=1755618674; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=iqW/+PCBX2Y4oQSo0oAABlQ2kTfubhM4GA/WBixaJYM=;
        b=sWSBPAadTLWHSeoEcROcqw2LqtNEiMyHbtvSg/Fv4nuuk/UOSaBNcKEApiaTkfyJG2
         jmvYIkvVsa7flVL1CM7WrUdeUXuCvyPaFVzrUQ69yFR35oC/P4EnGVCvjC51HB+GNEci
         PGcIHQBXffySQ3H7f/z46e6FZidkqz5jBpXiQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755013874; x=1755618674;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=iqW/+PCBX2Y4oQSo0oAABlQ2kTfubhM4GA/WBixaJYM=;
        b=myOsr390XysVkP3bGHigUmkwailFX6GTH0dLysSwpj5+gMttf+zccVIukmkpIwjiWz
         grF1Rj5mB7+P/9GJo4jwGxtbRCy4Ui44xOdFbobPfUGLCMTSIwBVDQ84jw/1nOqr8bMO
         ROcBkTV3rhzUhJc01RkjiONdL2zG8/GpFx2Ju6Ti+zDot29K27zWNrP/VDvXHQTPxPXp
         NWeLkIfcfazm6NvCtNKxp/+2KmPu3ZhY7Pwfxe3UF3ZPzPinkYn1IiJfDsrBDqMT4aHz
         V/nj/W2bMvwMLCRTjq2Zml4kA+cGOSgbDx+zUYW0Sx2ZFTxH1AG5itl/p2C9r2Z6mldp
         a29g==
X-Forwarded-Encrypted: i=1; AJvYcCW8DNodVrbFdxyUlerUBLRsvwfteZnKxSeN0CWVKC02NE3QJNREO2Ewil38HgdrQU8lWx3HvDQlLiA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw7au1kENmtLRrcolpYFBWJTWI56H9WgxMd39CijD1usQ8PysgB
	79cLAgIeZhXz/VD0vUZyd5g/ihlm/8N6HZMvloQVZ70Z8jH9xr3TU7TbSTcz0GwXDf4=
X-Gm-Gg: ASbGncsNyte3OBhl0u0ju0YqNFIU2FvYisPwVi196limZ+ak6pwdzmnlO9sLRMdyFEN
	ioChE6Qa++vl+E/EwuO13no5czibwjOXfEuU3BaU/UXbWvyLQQg4cMyuhOeK/xZdmmQjcQMgFQ9
	ww2w03dPFBRx4aQvXV6Eojvy1DOTniU6dG9Ms6JaENXDLYizoL0VRI1ydmbuieb59hkvlWRREqt
	hmaAMKhbQuo13MbfQOKJYBZFMr/C1S7dxoyqryfA7srTeEIIbSsRdwHCca5NfHLI9LDtqRFJ86X
	XaJlLcanFJFHUek1b2jZaTeALbExlQEDDEoAQQZkXdH85QqOzu/PhFKiYYqbCK3veik75hiR0Iv
	aSy5MfDsgo8U+t1ivTdZiw84Lspi8DhKhFBif0OYvAM4oT1FwonrSSM7HiwxMS7XkLaAD
X-Google-Smtp-Source: AGHT+IGUnpaqcXcyy5CfWrwqF4SRPXansY8Mr+zsvZ3+3GeO839Kcvn7GZeWrKVR8lJjKunTVld/VQ==
X-Received: by 2002:a05:600c:1381:b0:459:dba8:bb7b with SMTP id 5b1f17b1804b1-45a15b100a2mr3845025e9.13.1755013874407;
        Tue, 12 Aug 2025 08:51:14 -0700 (PDT)
Message-ID: <8275b155-d04d-4d75-bdd0-f9a6a8f72875@citrix.com>
Date: Tue, 12 Aug 2025 16:51:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/boot: Remove unused symbols from linker script
To: Frediano Ziglio <frediano.ziglio@cloud.com>,
 xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <20250812151923.96832-1-frediano.ziglio@cloud.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: <20250812151923.96832-1-frediano.ziglio@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12/08/2025 4:19 pm, Frediano Ziglio wrote:
> The symbols declared with DECLARE_IMPORT are meant to be
> used by the 32 bit code.
> The __base_relocs_{start,end} symbols were not used by the
> code.
> No functional changes.
>
> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>

Reported-by: Jan

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

Can be fixed on commit.


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 15:59:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 15:59:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078882.1439916 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulrOy-0008Sk-I2; Tue, 12 Aug 2025 15:59:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078882.1439916; Tue, 12 Aug 2025 15:59: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 1ulrOy-0008Sd-Eh; Tue, 12 Aug 2025 15:59:04 +0000
Received: by outflank-mailman (input) for mailman id 1078882;
 Tue, 12 Aug 2025 15:59:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=x9jM=2Y=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1ulrOx-0008SX-E2
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 15:59:03 +0000
Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com
 [2a00:1450:4864:20::329])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 409cacc8-7795-11f0-b898-0df219b8e170;
 Tue, 12 Aug 2025 17:58:56 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-459e20ec1d9so55359975e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 12 Aug 2025 08:58:56 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-458bb04c612sm420392615e9.0.2025.08.12.08.58.55
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 Aug 2025 08:58: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>
X-Inumbo-ID: 409cacc8-7795-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755014336; x=1755619136; 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=yycMG6mCj0ldKenMLZbBeADpGTYSV3x7QETp1yXHNO8=;
        b=cYEtMPeKAEKm8GoLRX0k5wPPeVQiYO1CzfOUC7zNkzlEldhIFonEhbYWT6k5boa6hB
         2/IMjQzNQuNqd0q5BnShKlDlUbr5/e408NUldp3EmocBIbw5nSFNePSVRtC6BqlzHsp6
         0CG2LHCgecwrSmN2A11y0fR/AvMQkG8vV/L5M=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755014336; x=1755619136;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yycMG6mCj0ldKenMLZbBeADpGTYSV3x7QETp1yXHNO8=;
        b=RImUYd55wL6SHMn2jmIqsW6ykYdqwwLGDDL1iyTi2d9HJy6Tl9UYITPJIeIgLx0ni6
         lMUSfM0x/zFrUmMIF5qQFPUhVtPadFdvRlkeGZSstxCUtlSQUYQu1F5Ikz4dK8tuR1oE
         2hvi9jiOaPaP+6ts9L/S4m2KdfMz4Lt5CK35lpsfD6jZSOXkUoLzGC6xd5Z7DQuilojs
         TkXjsISLGd4AhkKHfbHZuqsQkHMh+a+IWYykoNElbAyHQ3c6gU/DQWUujipEmLUPUB3w
         FjgNr4BKspBNS6JNptPrwkz7Vp+QTBazKgDch0csLVagEhxH3ACJM53aDPeCqbaJCRpN
         F7lg==
X-Gm-Message-State: AOJu0YyIf7peTcxWFVbqNr1MfUE5hFyTargs1vaFmDXM+SnzAFuwEiMS
	oqBUkbRuy1TRqKy53wnk2wr2B3KkDD1GnSmnWJl1BVU4hOkzhwaxIQ0y2KytBK5pR8a0x2+dqgJ
	pj6bA
X-Gm-Gg: ASbGnctk6R51lgQC8GEbvyMgqOntUgp5xiBXn5KYtmQnnCxDC3yITzfBIV31okmbiGL
	hIWzSSq6uHHCjKspCI9U2AWs3C/vwfVj5rLYoLUNLon15h0oUf7hoJGsqAvumRkP2ObwkfVDz+c
	9NNeKZztpCMbt8GA1bbVE3cXhbyLE9qk1kEHZbAaBVz2MR85+F+5mVPHydyflo913qKIT9xRSOX
	cbteVhxfs1dMY5IfXdR5AsiqMvblbwlPJconZ4TiTVEK/147ydDGkZ5dFoZS5gczuhR/RUUv2Lg
	nbOH5dDrOvzJlJJ7xzGsAcULdawjS/VjuHfbb2CvLGfHSnnBxrS0egeQa3rqMgw29YJ8xfWEtc+
	l/bUNW1cNE+Nuy4WPKoYkeAUM93kwdGitJG9jRj04Mhg8s3/0/4Ek9uZy937RN/r76A==
X-Google-Smtp-Source: AGHT+IFwnON6EJ2B5a3gHM3KQB6HBgO8doM4EDbOTF5V6UJR9fAeOPbeTkrdv7Q6H/JknY7qbWq7KQ==
X-Received: by 2002:a05:600c:4d02:b0:456:25aa:e9b0 with SMTP id 5b1f17b1804b1-45a15d9ea2amr1677745e9.16.1755014336075;
        Tue, 12 Aug 2025 08:58:56 -0700 (PDT)
Date: Tue, 12 Aug 2025 17:58:54 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Stewart Hildebrand <stewart.hildebrand@amd.com>
Cc: xen-devel@lists.xenproject.org, Jiqian Chen <Jiqian.Chen@amd.com>
Subject: Re: [PATCH] vpci/msix: conditionally invoke vpci_make_msix_hole
Message-ID: <aJtkvsc7qlMCfLwc@macbook.local>
References: <20250812151744.460953-1-stewart.hildebrand@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20250812151744.460953-1-stewart.hildebrand@amd.com>

On Tue, Aug 12, 2025 at 11:17:42AM -0400, Stewart Hildebrand wrote:
> A hotplugged PCI device may be added uninitialized. In particular,
> memory decoding may be disabled and the BARs may be zeroed. In this
> case, the BARs will not be mapped in p2m. However, currently
> vpci_make_msix_hole is called unconditionally in init_msix, and the
> initialization fails in this case:
> 
> (XEN) d0v0 0000:01:00.0: existing mapping (mfn: 1c1880 type: 0) at 0 clobbers MSIX MMIO area
> (XEN) d0 0000:01:00.0: init legacy cap 17 fail rc=-17, mask it
> 
> vpci_make_msix_hole should only be called if the BARs containing the
> MSI-X/PBA tables are mapped in p2m.
> 
> Take the opportunity to fix a typo in the preceding comment.
> 
> Fixes: ee2eb6849d50 ("vpci: Refactor REGISTER_VPCI_INIT")
> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> ---
>  xen/drivers/vpci/msix.c | 10 ++++++++--
>  1 file changed, 8 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/drivers/vpci/msix.c b/xen/drivers/vpci/msix.c
> index 54a5070733aa..39d1c45bd296 100644
> --- a/xen/drivers/vpci/msix.c
> +++ b/xen/drivers/vpci/msix.c
> @@ -705,10 +705,16 @@ static int cf_check init_msix(struct pci_dev *pdev)
>  
>      /*
>       * vPCI header initialization will have mapped the whole BAR into the
> -     * p2m, as MSI-X capability was not yet initialized.  Crave a hole for
> +     * p2m, as MSI-X capability was not yet initialized.  Carve a hole for
>       * the MSI-X table here, so that Xen can trap accesses.
>       */
> -    return vpci_make_msix_hole(pdev);
> +    if ( pdev->vpci->header.bars[
> +             msix->tables[VPCI_MSIX_TABLE] & PCI_MSIX_BIRMASK].enabled ||
> +         pdev->vpci->header.bars[
> +             msix->tables[VPCI_MSIX_PBA] & PCI_MSIX_BIRMASK].enabled )
> +        return vpci_make_msix_hole(pdev);

I think it might be better to place this checks inside of
vpci_make_msix_hole() itself, so that in case the guest moves the BAR
to an invalid position vpci_make_msix_hole() doesn't return error
either.

At the same time, you might want to introduce some helper to make this
less cumbersome, for example:

bool vmsix_table_bar_valid(const struct vpci *vpci, unsigned int nr)
{
    return vpci->header.bars[vpci->msix->tables[nr] &
                             PCI_MSIX_BIRMASK].enabled;
}

Note that if you adjust vpci_make_msix_hole() this way you will also
need to move the call in modify_decoding() so it happens strictly
after bar->enabled is set.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 16:18:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 16:18:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078907.1439929 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulrhx-0003oR-6h; Tue, 12 Aug 2025 16:18:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078907.1439929; Tue, 12 Aug 2025 16:18:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulrhx-0003oK-42; Tue, 12 Aug 2025 16:18:41 +0000
Received: by outflank-mailman (input) for mailman id 1078907;
 Tue, 12 Aug 2025 16:18:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=x9jM=2Y=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1ulrhv-0003oE-Fs
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 16:18:39 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0118f3d4-7798-11f0-a327-13f23c93f187;
 Tue, 12 Aug 2025 18:18:38 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-459d4d7c745so51640575e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 12 Aug 2025 09:18:38 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-459e586ad64sm299497405e9.20.2025.08.12.09.18.37
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 Aug 2025 09:18: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>
X-Inumbo-ID: 0118f3d4-7798-11f0-a327-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755015518; x=1755620318; 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=R/0wVDCBE9QNHDdDCjtZF8Q+2Pd1IE6dPBWQGjz6QIA=;
        b=f/0x/UsGOw7Hkucf/1WU7ieLlTszgKodtmsA581aDan3lk1y58Dtea0PXsBcAS7xoC
         QREKjqPC8PmxhupQHmAoUm8YLmplMou+tTVZpWveJWi6dkvUVbBBjWy3UKUI0j4irdEQ
         YjY2yNgps2/U+/iO4OHbuZlMoSbTYuwe0ujXk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755015518; x=1755620318;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=R/0wVDCBE9QNHDdDCjtZF8Q+2Pd1IE6dPBWQGjz6QIA=;
        b=jPdnAMbZGHON0Le4xga5lG8Zejy30odrGeVypFfgX8szzofb/F94oHaujN3j6CEs3G
         y+qONSZwyfxZNCyFhTdrKttcAetFtQUYrPIay5ocJazYbJCEVv2I0xNkEXqc3F4KfFJ7
         SbKPY33BnBnLcN1MxosAm7kzsMGuHjL76SFAfcerPWqpz4nVuGFNnOVysBTpMGuiDnnK
         XwveAjnSkiVGDSIWWnCKbgMMc6016+eSrQ03IHJmkSKryONZxs6lS3yJ9gPziC0HyEyn
         PPJtZeuYZEkXjKowboPXE1+DIpd7AMT4ac4SZ3THNlofsNd22LrvJc84l23EwsV1qTOw
         wDsw==
X-Gm-Message-State: AOJu0YxuQKcl8eI6SeIvXYCUi86Ci3W6pmOuGirTC42v3UKAdT+Ke8Qy
	bkZvbIn2ss3XZfANH30KJxqrDdFmjljgF3QT7iSPfJDs0oBur9gT9yAEHgI1xckBlZs=
X-Gm-Gg: ASbGncu5gdlEuh+2gK2Tc+L3cGFyG+ujh+qLLMF7395CZc/aSaviicc5X9AIcsE+KCx
	aqgkjzUUMjQlno1N8gQu+9IO5MH+Qc9IXBhq+939OU3snXGX1DqKYIDFfNaRHYGdi/J6/l0lIvU
	F98fdQthWmMeW0L2ePllG2EiiPxihsFFv86pXcBXOG6z65xH5bwgPQ5CBf+1BGVNv8tu7XbLby8
	siAYqFerijEAu0ec+pdO2jt5Kv8yU7+3aktZwhDNNf991IYK5EdCSpE11rRLS7vehI0gJ+0lJMb
	vHJiaRJzdi5r6jCzvrJHHpazOWTteoRSl9z0tBG2nsE60pV0I+/nCjtHkN3IrvYUz6wP3blNVto
	huBc/uNMD2PCosf5qK3S+zslUG9p+/9zrjfPho64qZwY1+zsPp9l18f8jtlm+Lki/mw==
X-Google-Smtp-Source: AGHT+IE2lHST6bsZeJTFbbDYLswTp2JMeVABSYnLMu1COZCCFt28y+YvXiaakyWJMitsQH9hVYBSPw==
X-Received: by 2002:a05:600c:45d2:b0:459:df25:b839 with SMTP id 5b1f17b1804b1-45a15b57b85mr3999975e9.33.1755015517978;
        Tue, 12 Aug 2025 09:18:37 -0700 (PDT)
Date: Tue, 12 Aug 2025 18:18:36 +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 v2 1/2] x86/mkelf32: pad load segment to 2Mb boundary
Message-ID: <aJtpXOM2AERnOCrH@macbook.local>
References: <ddfd86ad-19b3-495b-930c-1770dd92fa99@suse.com>
 <6e295921-0432-435e-9efe-51caa106f203@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <6e295921-0432-435e-9efe-51caa106f203@suse.com>

On Mon, Aug 11, 2025 at 12:49:57PM +0200, Jan Beulich wrote:
> In order to legitimately set up initial mappings past _end[], we need
> to make sure that the entire mapped range is inside a RAM region.
> Therefore we need to inform the bootloader (or alike) that our allocated
> size is larger than just the next SECTION_ALIGN-ed boundary past _end[].
> 
> This allows dropping a command line option from the tool, which was
> introduced to work around a supposed linker bug, when the problem was
> really Xen's.
> 
> While adjusting adjacent code, correct the argc check to also cover the
> case correctly when --notes was passed.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> There's no good Fixes: tag, I don't think, as in theory the issue could
> even have happened when we still required to be loaded at a fixed
> physical address (1Mb originally, later 2Mb), and when we statically
> mapped the low 16Mb. If we assumed such can't happen below 16Mb, these
> two should be added:
> Fixes: e4dd91ea85a3 ("x86: Ensure RAM holes really are not mapped in Xen's ongoing 1:1 physmap")
> Fixes: 7cd7f2f5e116 ("x86/boot: Remove the preconstructed low 16M superpage mappings")
> ---
> v2: New.
> 
> --- a/xen/arch/x86/Makefile
> +++ b/xen/arch/x86/Makefile
> @@ -130,8 +130,7 @@ orphan-handling-$(call ld-option,--orpha
>  
>  $(TARGET): TMP = $(dot-target).elf32
>  $(TARGET): $(TARGET)-syms $(efi-y) $(obj)/boot/mkelf32
> -	$(obj)/boot/mkelf32 $(notes_phdrs) $(TARGET)-syms $(TMP) $(XEN_IMG_OFFSET) \
> -	               `$(NM) $(TARGET)-syms | sed -ne 's/^\([^ ]*\) . __2M_rwdata_end$$/0x\1/p'`
> +	$(obj)/boot/mkelf32 $(notes_phdrs) $(TARGET)-syms $(TMP) $(XEN_IMG_OFFSET)
>  	od -t x4 -N 8192 $(TMP)  | grep 1badb002 > /dev/null || \
>  		{ echo "No Multiboot1 header found" >&2; false; }
>  	od -t x4 -N 32768 $(TMP) | grep e85250d6 > /dev/null || \
> --- a/xen/arch/x86/boot/mkelf32.c
> +++ b/xen/arch/x86/boot/mkelf32.c
> @@ -248,7 +248,6 @@ static void do_read(int fd, void *data,
>  
>  int main(int argc, char **argv)
>  {
> -    uint64_t   final_exec_addr;
>      uint32_t   loadbase, dat_siz, mem_siz, note_base, note_sz, offset;
>      char      *inimage, *outimage;
>      int        infd, outfd;
> @@ -261,22 +260,24 @@ int main(int argc, char **argv)
>      Elf64_Ehdr in64_ehdr;
>      Elf64_Phdr in64_phdr;
>  
> -    if ( argc < 5 )
> +    if ( argc < 4 )
>      {
> +    help:
>          fprintf(stderr, "Usage: mkelf32 [--notes] <in-image> <out-image> "
> -                "<load-base> <final-exec-addr>\n");
> +                "<load-base>\n");
>          return 1;
>      }
>  
>      if ( !strcmp(argv[1], "--notes") )
>      {
> +        if ( argc < 5 )
> +            goto help;
>          i = 2;
>          num_phdrs = 2;
>      }
>      inimage  = argv[i++];
>      outimage = argv[i++];
>      loadbase = strtoul(argv[i++], NULL, 16);
> -    final_exec_addr = strtoull(argv[i++], NULL, 16);
>  
>      infd = open(inimage, O_RDONLY);
>      if ( infd == -1 )
> @@ -339,9 +340,12 @@ int main(int argc, char **argv)
>      (void)lseek(infd, in64_phdr.p_offset, SEEK_SET);
>      dat_siz = (uint32_t)in64_phdr.p_filesz;
>  
> -    /* Do not use p_memsz: it does not include BSS alignment padding. */
> -    /*mem_siz = (uint32_t)in64_phdr.p_memsz;*/
> -    mem_siz = (uint32_t)(final_exec_addr - in64_phdr.p_vaddr);
> +    /*
> +     * We don't pad .bss in the linker script, but during early boot we map
> +     * the Xen image using 2M pages.  To avoid running into adjacent non-RAM
> +     * regions, pad the segment to the next 2M boundary.

Won't it be easier to pad in the linker script?  We could still have
__bss_end before the padding, so that initialization isn't done to the
extra padding area.  Otherwise it would be helpful to mention why the
padding must be done here (opposed to being done in the linker
script).

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 16:30:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 16:30:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078917.1439939 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulrsu-0005Zj-6e; Tue, 12 Aug 2025 16:30:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078917.1439939; Tue, 12 Aug 2025 16:30: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 1ulrsu-0005Zc-45; Tue, 12 Aug 2025 16:30:00 +0000
Received: by outflank-mailman (input) for mailman id 1078917;
 Tue, 12 Aug 2025 16:29:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BkKW=2Y=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ulrss-0005ZW-QC
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 16:29:58 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 935490e1-7799-11f0-b898-0df219b8e170;
 Tue, 12 Aug 2025 18:29:53 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-459eb4ae596so52370815e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 12 Aug 2025 09:29:53 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-459e5879d76sm325530775e9.24.2025.08.12.09.29.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 Aug 2025 09:29: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>
X-Inumbo-ID: 935490e1-7799-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755016193; x=1755620993; 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=DygpHkHCAWXEXJ0qnm84vWIJZfgiN67CPoChrR+iPFo=;
        b=deBJ/HpFKxfXLcGRTfqTnDdCJDNILhvo76sQWVtJrSA1hkFNs0HEUy2WsPDqWmQQIW
         h/TK5wad/vnIlh24iFYs55r1a2xeLw/6zpEUI7hmgPZgwgQkKcxnOMHtFz1I/g8ctFKZ
         sGm7vG49BzdBf/Ii1vP8xWxGEfakfxxbuZmS0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755016193; x=1755620993;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=DygpHkHCAWXEXJ0qnm84vWIJZfgiN67CPoChrR+iPFo=;
        b=LbnsYWF3Hr0W2vuR9Hu/AaSrpMGnhf19oD3tWJIKk/0NFOgSLdr8rXyPadxuEs/ani
         oZy2WEDfSuOv94tbk1INRf540sGDSiENwkXXrzPhkvSrzNst6k4WbyhdynjoLrmmerqL
         tqDdvqZ8FKDLrt8WAeEY8S78tF2TF9T6RkFx4KnRP4DcisRcsD3dfOvdT1DADkxci4aJ
         G5HLRAeVY6WTjEwJHeuY+1ke5WgFZL3ztII6GBre9OWu/5u469Vx+TSv5enwQih2hCnR
         dgwK8RUEW6fljAgEEcb2h8KKfsDyRPxx03Xl81pBLMlPFPd7r3X3OllGQ2VoJKsqsqX+
         956Q==
X-Gm-Message-State: AOJu0YxhiOdAepEhUlV9Oec8o0PQRO3hKRaD8YELG+JMegiwwO47Cdwa
	0so3yeuLWoZvsukdxOpr/10s8rfn1UpRDXTGW61UWk4ZBhvO401k5vQSJl2Ufk+pP+X9DhGXVgL
	F9VB/P18=
X-Gm-Gg: ASbGncsUlSK91/aNZEe1+gZk/If6/ZVufXC0BFXn0rBWBQpqb5o6Ol8Gt+3Jymqqcmd
	7BDKHU3f3rLk3reNnXm4q0IFc+oS6suMWA1q5LKwzNt8hntNgXbmcvZokQPnHr+iqlgVHHU/sIM
	pnJNY0DLr6kVh6pNvljajAsFAFKswjCDKM1LkLkEBqm7wbisiizpiEVehglPnXUxB3ThFuWKJVM
	er/YuF45+QtHv21LIrZGTwbeEl5W1ZR61uhj8+16mQHEHSQK6HjZDEscxagaswrrkNmJErGe31M
	58qq16Q12qQQqdDp/CBwCr0XHLaE1UQOqqW6QnSGFHN95UtnrPTovft2WYfC+Kb7/kAM82VfI0o
	wH5HxCh/cuIidCsCPRO4ylBMxBF2uv6WbbFSam9Q3KtO0TXPGtseq+/atfWtXsK9LuDHIf8bhZU
	Ha
X-Google-Smtp-Source: AGHT+IFmDfvir2qjc9ospiCh7zAn+em9I2TqJPmRvwOrpBpEoxRJ6xPEfZNlbLYBr3GhhlULJqnFxA==
X-Received: by 2002:a05:600c:3ba7:b0:459:d8c2:80b2 with SMTP id 5b1f17b1804b1-45a15b0bc9amr4137825e9.7.1755016192673;
        Tue, 12 Aug 2025 09:29:52 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Javi Merino <javi.merino@cloud.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH] CI: Turn debian/12-x86_64 into a non-root container
Date: Tue, 12 Aug 2025 17:29:50 +0100
Message-Id: <20250812162950.1903901-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

From: Javi Merino <javi.merino@cloud.com>

Since commit 4611ae6fb8f9 ("CI: save toolstack artifact as cpio.gz"), the
various automation/scripts/* no longer need to be root to correctly repack the
initrd for test.

Signed-off-by: Javi Merino <javi.merino@cloud.com>
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Anthony PERARD <anthony.perard@vates.tech>

Xen 4.20 and later uses debian:12-x86_64 and also contains 4611ae6fb8f9 so
this is safe to change generally.
---
 automation/build/debian/12-x86_64.dockerfile | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/automation/build/debian/12-x86_64.dockerfile b/automation/build/debian/12-x86_64.dockerfile
index e26a19079e38..3cf99c730b61 100644
--- a/automation/build/debian/12-x86_64.dockerfile
+++ b/automation/build/debian/12-x86_64.dockerfile
@@ -9,6 +9,8 @@ RUN <<EOF
 #!/bin/bash
     set -eu
 
+    useradd --create-home user
+
     apt-get update
 
     DEPS=(
@@ -70,5 +72,5 @@ RUN <<EOF
     rm -rf /var/lib/apt/lists*
 EOF
 
-USER root
+USER user
 WORKDIR /build
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Aug 12 16:30:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 16:30:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078923.1439949 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulrtQ-0006wQ-E6; Tue, 12 Aug 2025 16:30:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078923.1439949; Tue, 12 Aug 2025 16:30: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 1ulrtQ-0006wJ-BN; Tue, 12 Aug 2025 16:30:32 +0000
Received: by outflank-mailman (input) for mailman id 1078923;
 Tue, 12 Aug 2025 16:30:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=x9jM=2Y=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1ulrtO-0006qJ-Gu
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 16:30:30 +0000
Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com
 [2a00:1450:4864:20::435])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a8afa204-7799-11f0-a327-13f23c93f187;
 Tue, 12 Aug 2025 18:30:29 +0200 (CEST)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-3b78d337dd9so3633362f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 12 Aug 2025 09:30:29 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3b914e70596sm1709176f8f.61.2025.08.12.09.30.28
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 Aug 2025 09:30: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>
X-Inumbo-ID: a8afa204-7799-11f0-a327-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755016229; x=1755621029; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=qfyjV2aQwERkeLBqfx62psSD0uVXV64x/x82IAJFOc4=;
        b=ZU8aaYC9X48ROknTFR11JTnkWBW5800SDfentgi5X0SobtfcMdxJ8kpuhTUor5z0AP
         puEP8XkqkLb5yCVTTAwK0l5sNfUDkwxTH/3TAaLtDfWI2jYKMUropKcTd3ybXFqshYUk
         qCzKevhJxNf7rnHDLn6hBVaBYDwUdndwrYXKk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755016229; x=1755621029;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=qfyjV2aQwERkeLBqfx62psSD0uVXV64x/x82IAJFOc4=;
        b=wAlxnLEuf7aNP1W0DRlkwVoLO1PBFfXga7Y3xMZKSKIgqTIkWbMp9sPG5b+3emEADa
         LG5FzchqTUQ4QMHwVVHQI4a7BCYRR5kzoNnm/bQiHuqf+XEclZZpPgGN3y3ewc8iNZhT
         FCKo/rQGylwn//MGm0xbnsT/rBpiPvkJARiXM7ZlF6+Ahtv3qZaz+sRBcdhAEHLFfhUt
         KPupehO/U789AwBEANZcvDRHP4lH2sw8w9LGyN3dDaPpeDkEauQjuowSEK/sVbFOpwrU
         pvrZJLV9K9QyZ8hjZwM4KOV9WQe+nMJF1i0P/B/9n5GPyVNKaan4gV8sMCiB3pXQYamJ
         AEPA==
X-Gm-Message-State: AOJu0Yzn5DmRSa9N11r8NIvfMDnO7caI9fQEVZrDZB1BfN2m4EpWKgiZ
	HUBRJAM+TOkKULlVLDz0Nm3d0A1Qjc69xu3b6kuD1vv0lJjGvCP8/COhoTPUkTKSC2g=
X-Gm-Gg: ASbGncsdGJwn2chCxG9mn9Dl4N6kp60xKk80PaPTqNUQcnvGAS8QJ/SXKQ5FPve4ISm
	VormODRKJND87BsSH5SpBpJxj2+w1BHMzMVLYOR0UyT6X2bzsFZfohiYUl/ieToJvz4KfFwPDRX
	DzNpPIKh8+DIszZoV6B5JOat8x4Gt8Nw75C7ovXhRB1iwvaObY1qxwHzmHUh0bLxOkjhUnSXG2D
	bWFohDHqFIPvEK2zZQbXNDljXO9kEaefXaEx1VQ4nOKpk67k0KHv/O3ejbbW/QGZ3ibdbWlh/py
	6jz73qIb9Ft3eTAu8AQ0Un8AuWU4vIcZCLZGDHcQaxEJYz2qu7YfhdUSE4qaGt59wnJANf7FkKy
	aXpS36i4w4/Sp7iTHy8ys0hovi3ZTuzUsmOZsIPQSH/hN3SNMPVd4JhxEg2UeYqmb9g==
X-Google-Smtp-Source: AGHT+IEXlnArkuBKnMlzoaaU2IKYnyn8SKq8qb9OKFuI0pYh8ZJKzWNNaMF5DyC9mAoYzqszoeVE1Q==
X-Received: by 2002:a05:6000:2dc6:b0:3b7:7ceb:1428 with SMTP id ffacd0b85a97d-3b91724c308mr60675f8f.8.1755016228709;
        Tue, 12 Aug 2025 09:30:28 -0700 (PDT)
Date: Tue, 12 Aug 2025 18:30:27 +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 v2 2/2] x86/mm: drop unmapping from marking-as-I/O in
 arch_init_memory()
Message-ID: <aJtsIxI4y-UspLKg@macbook.local>
References: <ddfd86ad-19b3-495b-930c-1770dd92fa99@suse.com>
 <5a862787-40d8-4c9f-bd89-01d866648120@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <5a862787-40d8-4c9f-bd89-01d866648120@suse.com>

On Mon, Aug 11, 2025 at 12:50:23PM +0200, Jan Beulich wrote:
> The unmapping part would have wanted to cover UNUSABLE regions as well,
> and it would now have been necessary for space outside the low 16Mb
> (wherever Xen is placed). However, with everything up to the next 2Mb
> boundary now properly backed by RAM, we don't need to unmap anything
> anymore: Space up to __2M_rwdata_end[] is properly reserved, whereas
> space past that mark (up to the next 2Mb boundary) is ordinary RAM.

Oh, I see, so this was done to unmap trailing space when the Xen image
region is mapped using 2M pages.

> While there, limit the scopes of involved variables.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

> ---
> v2: Drop unmapping code altogether.
> 
> --- a/xen/arch/x86/mm.c
> +++ b/xen/arch/x86/mm.c
> @@ -275,8 +275,6 @@ static void __init assign_io_page(struct
>  
>  void __init arch_init_memory(void)
>  {
> -    unsigned long i, pfn, rstart_pfn, rend_pfn, iostart_pfn, ioend_pfn;
> -
>      /*
>       * Basic guest-accessible flags:
>       *   PRESENT, R/W, USER, A/D, AVAIL[0,1,2], AVAIL_HIGH, NX (if available).
> @@ -292,12 +290,17 @@ void __init arch_init_memory(void)
>       * case the low 1MB.
>       */
>      BUG_ON(pvh_boot && trampoline_phys != 0x1000);
> -    for ( i = 0; i < 0x100; i++ )
> +    for ( unsigned int i = 0; i < MB(1) >> PAGE_SHIFT; i++ )

I would use PFN_DOWN() rather than the shift, but that's just my
preference.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 17:02:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 17:02:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078963.1439959 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulsOG-0003Cd-QS; Tue, 12 Aug 2025 17:02:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078963.1439959; Tue, 12 Aug 2025 17:02: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 1ulsOG-0003CW-Nk; Tue, 12 Aug 2025 17:02:24 +0000
Received: by outflank-mailman (input) for mailman id 1078963;
 Tue, 12 Aug 2025 17:02:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qHa6=2Y=net-space.pl=dkiper@srs-se1.protection.inumbo.net>)
 id 1ulsOF-0003CQ-NC
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 17:02:23 +0000
Received: from dibed.net-space.pl (dibed.net-space.pl [84.10.22.86])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1940c18c-779e-11f0-b898-0df219b8e170;
 Tue, 12 Aug 2025 19:02:16 +0200 (CEST)
Received: from router-fw.i.net-space.pl ([192.168.52.1]:38848 "EHLO
 tomti.i.net-space.pl") by router-fw-old.i.net-space.pl with ESMTP
 id S1920936AblHLRCO (ORCPT <rfc822;xen-devel@lists.xenproject.org>);
 Tue, 12 Aug 2025 19:02:14 +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>
X-Inumbo-ID: 1940c18c-779e-11f0-b898-0df219b8e170
X-Comment: RFC 2476 MSA function at dibed.net-space.pl logged sender identity as: dkiper
Date:	Tue, 12 Aug 2025 19:02:11 +0200
From:	Daniel Kiper <dkiper@net-space.pl>
To:	Aaron Rainbolt <arraybolt3@gmail.com>
Cc:	grub-devel@gnu.org, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 2/2] kern/xen: Add Xen command line parsing
Message-ID: <20250812170211.q7ezlveygfsdkz34@tomti.i.net-space.pl>
References: <20250804234816.3d14f53f@kf-m2g5>
 <20250804234911.3cc3997c@kf-m2g5>
 <20250804235009.30e39bd9@kf-m2g5>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250804235009.30e39bd9@kf-m2g5>
User-Agent: NeoMutt/20170113 (1.7.2)

On Mon, Aug 04, 2025 at 11:50:09PM -0500, Aaron Rainbolt wrote:
> Xen traditionally allows customizing guest behavior by passing arguments
> to the VM kernel via the kernel command line. This is no longer possible
> when using GRUB with Xen, as the kernel command line is decided by the
> GRUB configuration file within the guest, not data passed to the guest
> by Xen.
>
> To work around this limitation, enable GRUB to parse a command line
> passed to it by Xen, and expose data from the command line to the GRUB
> configuration as environment variables. These variables can be used in
> the GRUB configuration for any desired purpose, such as extending the
> kernel command line passed to the guest. The command line format is
> inspired by the Linux kernel's command line format.
>
> To reduce the risk of misuse, abuse, or accidents in production, the
> command line will only be parsed if it consists entirely of 7-bit ASCII
> characters, only alphabetical characters and underscores are permitted
> in variable names, and all variable names must start with the string
> "xen_grub_env_". This also allows room for expanding the command line
> arguments accepted by GRUB in the future, should other arguments end up
> becoming desirable in the future.
>
> Signed-off-by: Aaron Rainbolt <arraybolt3@gmail.com>
> ---
>  docs/grub.texi                |  51 +++++
>  grub-core/Makefile.core.def   |   2 +
>  grub-core/kern/i386/xen/pvh.c |  23 +++
>  grub-core/kern/xen/cmdline.c  | 376 ++++++++++++++++++++++++++++++++++
>  grub-core/kern/xen/init.c     |   2 +
>  include/grub/xen.h            |   2 +
>  6 files changed, 456 insertions(+)
>  create mode 100644 grub-core/kern/xen/cmdline.c
>
> diff --git a/docs/grub.texi b/docs/grub.texi
> index 34b3484..b58cf98 100644
> --- a/docs/grub.texi
> +++ b/docs/grub.texi
> @@ -3271,6 +3271,7 @@ GRUB.  Others may be used freely in GRUB configuration files.
>  @menu
>  * Special environment variables::
>  * Environment block::
> +* Passing environment variables through Xen::
>  @end menu
>
>
> @@ -3871,6 +3872,56 @@ using BIOS or EFI functions (no ATA, USB or IEEE1275).
>  @command{grub-mkconfig} uses this facility to implement
>  @samp{GRUB_SAVEDEFAULT} (@pxref{Simple configuration}).
>
> +@node Passing environment variables through Xen
> +@section Passing environment variables through Xen
> +
> +If you are using a GRUB image as the kernel for a PV or PVH Xen virtual
> +machine, you can pass environment variables from Xen's dom0 to the VM through
> +the Xen-provided kernel command line. When combined with a properly configured
> +guest, this can be used to customize the guest's behavior on bootup via the
> +VM's Xen configuration file.
> +
> +GRUB will parse the kernel command line passed to it by Xen during bootup.
> +The command line will be split into space-delimited words. Single and
> +double quotes may be used to quote words or portions of words that contain
> +spaces. Single quotes will be considered part of a word if inside double
> +quotes, and vice versa. Arbitrary characters may be backslash-escaped to make
> +them a literal component of a word rather than being parsed as quotes or word
> +separators. The command line must consist entirely of printable 7-bit ASCII
> +characters and spaces. If a non-printing ASCII character is found anywhere in
> +the command line, the entire command line will be ignored by GRUB.
> +
> +Each word should be a variable assignment in the format ``variable'' or
> +``variable=value''. Variable names must contain only the characters A-Z, a-z,
> +and underscore (``_''). Variable names must begin with the string
> +``xen_grub_env_''. Variable values can contain arbitrary printable 7-bit
> +ASCII characters and space. If any variable contains an illegal name, that
> +variable will be ignored.
> +
> +If a variable name and value are both specified, the variable will be set to
> +the specified value. If only a variable name is specified, the variable's
> +value will be set to ``1''.
> +
> +The following is a simple example of how to use this functionality to append
> +arbitrary variables to a guest's kernel command line:
> +
> +@example
> +# In the Xen configuration file for the guest
> +name = "linux_vm"
> +type = "pvh"
> +kernel = "/path/to/grub-i386-xen_pvh.bin"
> +extra = "xen_grub_env_linux_append='loglevel=3'"
> +memory = 1024
> +disk = [ "file:/srv/vms/linux_vm.img,sda,w" ]
> +
> +# In the guest's GRUB configuration file
> +menuentry "Linux VM with dom0-specified kernel parameters" @{
> +    search --set=root --label linux_vm --hint hd0,msdos1
> +    linux /boot/vmlinuz root=LABEL=linux_vm $@{xen_grub_env_linux_append@}
> +    initrd /boot/initrd.img
> +@}
> +@end example
> +
>  @node Modules
>  @chapter Modules
>
> diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def
> index b3f7119..df0f266 100644
> --- a/grub-core/Makefile.core.def
> +++ b/grub-core/Makefile.core.def
> @@ -248,6 +248,7 @@ kernel = {
>    xen = term/xen/console.c;
>    xen = disk/xen/xendisk.c;
>    xen = commands/boot.c;
> +  xen = kern/xen/cmdline.c;
>
>    i386_xen_pvh = commands/boot.c;
>    i386_xen_pvh = disk/xen/xendisk.c;
> @@ -255,6 +256,7 @@ kernel = {
>    i386_xen_pvh = kern/i386/xen/tsc.c;
>    i386_xen_pvh = kern/i386/xen/pvh.c;
>    i386_xen_pvh = kern/xen/init.c;
> +  i386_xen_pvh = kern/xen/cmdline.c;
>    i386_xen_pvh = term/xen/console.c;
>
>    ia64_efi = kern/ia64/efi/startup.S;
> diff --git a/grub-core/kern/i386/xen/pvh.c b/grub-core/kern/i386/xen/pvh.c
> index 91fbca8..a8988d2 100644
> --- a/grub-core/kern/i386/xen/pvh.c
> +++ b/grub-core/kern/i386/xen/pvh.c
> @@ -321,6 +321,8 @@ void
>  grub_xen_setup_pvh (void)
>  {
>    grub_addr_t par;
> +  const char *xen_cmdline;
> +  int i;
>
>    grub_xen_cpuid_base ();
>    grub_xen_setup_hypercall_page ();
> @@ -352,6 +354,27 @@ grub_xen_setup_pvh (void)
>    grub_xen_mm_init_regions ();
>
>    grub_rsdp_addr = pvh_start_info->rsdp_paddr;
> +
> +  xen_cmdline = (const char *) pvh_start_info->cmdline_paddr;
> +  for (i = 0; i < GRUB_XEN_MAX_GUEST_CMDLINE; i++)
> +    {
> +      if (xen_cmdline[i] == '\0')

This code still does not make a lot of sense for me. You have NUL check
in grub_parse_xen_cmdline(). So, you duplicate the check here...

I would just fire grub_strncpy() here and forget...

> +        {
> +          grub_strncpy ((char *) grub_xen_start_page_addr->cmd_line,
> +			(char *) pvh_start_info->cmdline_paddr,
> +			GRUB_XEN_MAX_GUEST_CMDLINE);
> +
> +          if (grub_xen_start_page_addr->cmd_line[GRUB_XEN_MAX_GUEST_CMDLINE - 1] != '\0')

If you convince me this code is still needed then I am afraid that this
is not what you meant here...

> +            {
> +              grub_error (GRUB_ERR_BUG,
> +			  "Xen command line is not NUL-terminated");
> +              grub_print_error ();
> +              grub_exit ();

grub_fatal() and you are done...

> +            }
> +
> +          break;
> +        }
> +    }
>  }
>
>  grub_err_t
> diff --git a/grub-core/kern/xen/cmdline.c b/grub-core/kern/xen/cmdline.c
> new file mode 100644
> index 0000000..46a9998
> --- /dev/null
> +++ b/grub-core/kern/xen/cmdline.c
> @@ -0,0 +1,376 @@
> +/*
> + *  GRUB  --  GRand Unified Bootloader
> + *  Copyright (C) 2025  Free Software Foundation, Inc.
> + *
> + *  GRUB 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 3 of the License, or
> + *  (at your option) any later version.
> + *
> + *  GRUB 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 GRUB.  If not, see <http://www.gnu.org/licenses/>.
> + */
> +
> +#include <grub/env.h>
> +#include <grub/misc.h>
> +#include <grub/mm.h>
> +#include <grub/xen.h>
> +
> +enum splitter_state
> +{
> +  SPLITTER_HIT_BACKSLASH = 0x1,
> +  SPLITTER_IN_SINGLE_QUOTES = 0x2,
> +  SPLITTER_IN_DOUBLE_QUOTES = 0x4,
> +};
> +typedef enum splitter_state splitter_state_t;
> +
> +/*
> + * The initial size of the current_word buffer. The buffer may be resized as
> + * needed.
> + */
> +#define PARSER_BASE_WORD_SIZE 32
> +
> +struct parser_state
> +{
> +  grub_size_t word_list_len;

s/word_list_len/words_count/

And I would put it behind word_list...

> +  char **word_list;

s/word_list/words/

> +  grub_size_t current_word_len;
> +  grub_size_t current_word_pos;
> +  char *current_word;
> +};
> +typedef struct parser_state parser_state_t;
> +
> +static bool

s/bool/grub_err_t/

> +append_char_to_word (parser_state_t *s, char c, bool allow_null)
> +{
> +  /*
> +   * We ban any chars that are not in the ASCII printable range. If
> +   * allow_null == true, we make an exception for NUL. (This is needed so that
> +   * append_word_to_list can add a NUL terminator to the word).
> +   */
> +  if (grub_isprint (c) == false && allow_null == false)

grub_isprint() et consortes return int instead of bool. So, it should be
"!grub_isprint(c)" here...

> +    return false;
> +  else if (allow_null == true && c != '\0')
> +    return false;
> +
> +  if (s->current_word_pos == s->current_word_len)
> +    {
> +      s->current_word = grub_realloc (s->current_word, s->current_word_len *= 2);
> +      if (s->current_word == NULL)
> +        {
> +          s->current_word_len /= 2;
> +          return false;
> +        }
> +    }
> +
> +  s->current_word[s->current_word_pos++] = c;
> +  return true;
> +}
> +
> +static bool

s/bool/grub_err_t/

> +append_word_to_list (parser_state_t *s)
> +{
> +  /* No-op on empty words. */
> +  if (s->current_word_pos == 0)
> +    return true;
> +
> +  if (append_char_to_word (s, '\0', true) == false)
> +    {
> +      grub_error (GRUB_ERR_BUG,
> +		  "couldn't append NUL terminator to word during Xen cmdline parsing");
> +      grub_print_error ();
> +      grub_exit ();

grub_fatal()

> +    }
> +
> +  s->current_word_len = grub_strlen (s->current_word) + 1;
> +  s->current_word = grub_realloc (s->current_word, s->current_word_len);
> +  if (s->current_word == NULL)
> +    return false;

return grub_errno;

> +  s->word_list = grub_realloc (s->word_list, ++s->word_list_len * sizeof (char *));
> +  if (s->word_list == NULL)
> +    return false;

return grub_errno;

...

I think many (related) functions in this code returning bool should
really return grub_err_t...

> +  s->word_list[s->word_list_len - 1] = s->current_word;
> +
> +  s->current_word_len = PARSER_BASE_WORD_SIZE;
> +  s->current_word_pos = 0;
> +  s->current_word = grub_malloc (s->current_word_len);
> +  if (s->current_word == NULL)
> +    return false;
> +
> +  return true;
> +}
> +
> +static bool

But this bool makes sense...

> +is_key_safe (char *key, grub_size_t len)
> +{
> +  grub_size_t i;
> +
> +  for (i = 0; i < len; i++)
> +    {
> +      if (! (grub_isalpha (key[i]) || key[i] == '_'))

Please drop space after "!"...

> +        return false;
> +    }

You can drop curly braces from here...

> +
> +  return true;
> +}
> +
> +void
> +grub_parse_xen_cmdline (void)
> +{
> +  parser_state_t *s = NULL;

parser_state_t ps = {0};

... and you do not need grub_malloc(s) and stuff any longer below...

And I would put it next to splitter_state...

> +  const char *cmdline = (const char *) grub_xen_start_page_addr->cmd_line;
> +  grub_size_t cmdline_len;
> +  bool cmdline_valid = false;
> +  char **param_keys = NULL;
> +  char **param_vals = NULL;
> +  grub_size_t param_dict_len = 0;
> +  grub_size_t param_dict_pos = 0;
> +  splitter_state_t splitter_state = 0;

You nicely define an enum and then assign plain number. Sigh...
I think you should define SPLITTER_NORMAL or something similar
as well...

And s/splitter_state/ss/...

> +  char current_char = '\0';
> +  grub_size_t i = 0;
> +
> +  s = grub_malloc (sizeof (parser_state_t));
> +  if (s == NULL)
> +    goto cleanup_final;
> +
> +  /*
> +   * The following algorithm is used to parse the Xen command line:
> +   *
> +   * - The command line is split into space-separated words.
> +   *   - Single and double quotes may be used to suppress the splitting
> +   *     behavior of spaces.
> +   *   - Double quotes are appended to the current word verbatim if they
> +   *     appear within a single-quoted string portion, and vice versa.
> +   *   - Backslashes may be used to cause the next character to be
> +   *     appended to the current word verbatim. This is only useful when
> +   *     used to escape quotes, spaces, and backslashes, but for simplicity
> +   *     we allow backslash-escaping anything.
> +   * - After splitting the command line into words, each word is checked to
> +   *   see if it contains an equals sign.
> +   *   - If it does, it is split on the equals sign into a key-value pair. The
> +   *     key is then treated as an variable name, and the value is treated as
> +   *     the variable's value.
> +   *   - If it does not, the entire word is treated as a variable name. The
> +   *     variable's value is implicitly considered to be `1`.
> +   * - All variables detected on the command line are checked to see if their
> +   *   names begin with the string `xen_grub_env_`. Variables that do not pass
> +   *   this check are discarded, variables that do pass this check are
> +   *   exported so they are available to the GRUB configuration.
> +   */
> +
> +  s->current_word_len = PARSER_BASE_WORD_SIZE;
> +  s->current_word = grub_malloc (s->current_word_len);
> +  if (s->current_word == NULL)
> +    goto cleanup_main;
> +
> +  for (i = 0; i < GRUB_XEN_MAX_GUEST_CMDLINE; i++)
> +    {
> +      if (cmdline[i] == '\0')
> +        {
> +          cmdline_valid = true;
> +          break;
> +        }
> +    }
> +
> +  if (cmdline_valid == false)
> +    {
> +      grub_error (GRUB_ERR_BAD_ARGUMENT,
> +		  "command line from Xen is not NUL-terminated");
> +      grub_print_error ();

grub_fatal()?

> +      goto cleanup_main;
> +    }
> +
> +  cmdline_len = grub_strlen (cmdline);
> +  for (i = 0; i < cmdline_len; i++)
> +    {
> +      current_char = cmdline[i];
> +
> +      /*
> +       * If the previous character was a backslash, append the current
> +       * character to the word verbatim
> +       */
> +      if (splitter_state & SPLITTER_HIT_BACKSLASH)
> +        {
> +          splitter_state &= ~SPLITTER_HIT_BACKSLASH;
> +          if (append_char_to_word (s, current_char, false) == false)
> +            goto cleanup_main;
> +          continue;
> +        }
> +
> +      switch (current_char)
> +        {
> +        case '\\':
> +          /* Backslashes escape arbitrary characters. */
> +          splitter_state |= SPLITTER_HIT_BACKSLASH;
> +          continue;
> +
> +        case '\'':
> +          /*
> +           * Single quotes suppress word splitting and double quoting until
> +           * the next single quote is encountered.
> +           */
> +          if (splitter_state & SPLITTER_IN_DOUBLE_QUOTES)
> +            {
> +              if (append_char_to_word (s, current_char, false) == false)
> +                goto cleanup_main;
> +              continue;
> +            }
> +
> +          splitter_state ^= SPLITTER_IN_SINGLE_QUOTES;
> +          continue;
> +
> +        case '"':
> +          /*
> +           * Double quotes suppress word splitting and single quoting until
> +           * the next double quote is encountered.
> +           */
> +          if (splitter_state & SPLITTER_IN_SINGLE_QUOTES)
> +            {
> +              if (append_char_to_word (s, current_char, false) == false)
> +                goto cleanup_main;
> +              continue;
> +            }
> +
> +          splitter_state ^= SPLITTER_IN_DOUBLE_QUOTES;
> +          continue;
> +
> +        case ' ':
> +          /* Spaces separate words in the command line from each other. */
> +          if (splitter_state & SPLITTER_IN_SINGLE_QUOTES ||
> +              splitter_state & SPLITTER_IN_DOUBLE_QUOTES)
> +            {
> +              if (append_char_to_word (s, current_char, false) == false)
> +                goto cleanup_main;
> +              continue;
> +            }
> +
> +          if (append_word_to_list (s) == false)
> +            goto cleanup_main;

I think this is not fully correct. You should not run append_word_to_list()
until the closing quote. So, here you should have "else" for the first "if",
i.e., "if (splitter_state & ..." and call append_word_to_list() for closing
\" and \' above.

> +          continue;
> +        }
> +
> +      if (append_char_to_word (s, current_char, false) == false)
> +        goto cleanup_main;

This should be part of "default:" for the switch above... Even if it
works now...

Then many "continue" should be converted to more natural "break"...

> +    }
> +
> +  if (append_word_to_list (s) == false)
> +    goto cleanup_main;
> +
> +  param_keys = grub_malloc (s->word_list_len * sizeof (char *));
> +  if (param_keys == NULL)
> +    goto cleanup_main;
> +  param_vals = grub_malloc (s->word_list_len * sizeof (char *));
> +  if (param_vals == NULL)
> +    goto cleanup_main;
> +
> +  for (i = 0; i < s->word_list_len; i++)
> +    {
> +      char *current_word_eq_ptr;

s/current_word_eq_ptr/eq_pos/

> +      s->current_word = s->word_list[i];
> +      s->current_word_len = grub_strlen (s->current_word) + 1;
> +      current_word_eq_ptr = grub_strchr (s->current_word, '=');
> +
> +      if (current_word_eq_ptr != NULL)
> +        {
> +          /*
> +           * Both pre_eq_len and post_eq_len represent substring lengths
> +           * without a NUL terminator.
> +           */
> +          grub_size_t pre_eq_len = (grub_size_t) (current_word_eq_ptr - s->current_word);
> +          /*
> +           * s->current_word_len includes the NUL terminator, so we subtract
> +           * one to get rid of the terminator, and one more to get rid of the
> +           * equals sign.
> +           */
> +          grub_size_t post_eq_len = (s->current_word_len - 2) - pre_eq_len;
> +
> +          if (is_key_safe (s->current_word, pre_eq_len) == true)
> +            {
> +              param_dict_pos = param_dict_len++;
> +              param_keys[param_dict_pos] = grub_malloc (pre_eq_len + 1);
> +              if (param_keys == NULL)
> +                goto cleanup_main;
> +              param_vals[param_dict_pos] = grub_malloc (post_eq_len + 1);
> +              if (param_vals == NULL)
> +                goto cleanup_main;
> +
> +              grub_strncpy (param_keys[param_dict_pos], s->current_word, pre_eq_len);
> +              grub_strncpy (param_vals[param_dict_pos],
> +			    s->current_word + pre_eq_len + 1, post_eq_len);
> +              param_keys[param_dict_pos][pre_eq_len] = '\0';
> +              param_vals[param_dict_pos][post_eq_len] = '\0';
> +            }
> +        }
> +      else

else if (is_key_safe (s->current_word, s->current_word_len - 1) == true)

... and you can drop an extra indention...

> +        {
> +          if (is_key_safe (s->current_word, s->current_word_len - 1) == true)
> +            {
> +              param_dict_pos = param_dict_len++;
> +              param_keys[param_dict_pos] = grub_malloc (s->current_word_len);
> +              if (param_keys == NULL)
> +                goto cleanup_main;
> +              param_vals[param_dict_pos] = grub_malloc (2);
> +              if (param_vals == NULL)
> +                goto cleanup_main;
> +
> +              grub_strncpy (param_keys[param_dict_pos], s->current_word,
> +			    s->current_word_len);
> +              if (param_keys[param_dict_pos][s->current_word_len - 1] != '\0' )
> +                {
> +                  grub_error (GRUB_ERR_BUG,
> +			      "NUL terminator missing from key during Xen cmdline parsing");
> +                  grub_print_error ();
> +                  grub_exit ();

grub_fatal()

> +                }
> +              grub_strcpy (param_vals[param_dict_pos], "1");
> +            }
> +        }
> +    }

Daniel


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 17:34:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 17:34:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078979.1439970 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulst2-0007EZ-6V; Tue, 12 Aug 2025 17:34:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078979.1439970; Tue, 12 Aug 2025 17:34:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulst2-0007ES-3G; Tue, 12 Aug 2025 17:34:12 +0000
Received: by outflank-mailman (input) for mailman id 1078979;
 Tue, 12 Aug 2025 17:34:11 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2eVr=2Y=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1ulst1-0007E3-Cr
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 17:34:11 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20611.outbound.protection.outlook.com
 [2a01:111:f403:2416::611])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8a515657-77a2-11f0-b898-0df219b8e170;
 Tue, 12 Aug 2025 19:34:05 +0200 (CEST)
Received: from MN0PR02CA0008.namprd02.prod.outlook.com (2603:10b6:208:530::10)
 by IA1PR12MB8080.namprd12.prod.outlook.com (2603:10b6:208:3fd::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.22; Tue, 12 Aug
 2025 17:34:01 +0000
Received: from BL6PEPF00022574.namprd02.prod.outlook.com
 (2603:10b6:208:530:cafe::4a) by MN0PR02CA0008.outlook.office365.com
 (2603:10b6:208:530::10) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9031.15 via Frontend Transport; Tue,
 12 Aug 2025 17:34:01 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BL6PEPF00022574.mail.protection.outlook.com (10.167.249.42) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9031.11 via Frontend Transport; Tue, 12 Aug 2025 17:34:00 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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, 12 Aug
 2025 12:34:00 -0500
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 12 Aug
 2025 12:33:59 -0500
Received: from xcbayankuma40.xilinx.com (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via
 Frontend Transport; Tue, 12 Aug 2025 12:33:59 -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>
X-Inumbo-ID: 8a515657-77a2-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=f6FSYr2v1A43zoC/GVccpTLejm0phoSB2/oxCPiVyLCgt02ZEpgeynYAt0B/UlbXUd7jKDTsq92ALAJOMZ/sIlBTyUP98LV4Zv1fWxSXTCYyTIb52aiIYrbZdE3cmfBaEB50tUwzqwmFiEiFZiyqRcveBbZLnaLRdpVkyrDSAQYLi4Syzx3hZUdz7vpSXLspL+9Y3tLV5wswKSOgZpaO+Hg11s5HpnXrmt/Lyita41LEO32e3GPNDW+3UtMChaparSswpRMX8sHO0eUzpPbZmLa7y7amWwFEUZcjfGD6iJ/27GAqRobHcMRTw1kxRPN4OuLGP4iT/vGuICcHnLU17g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=JHkduoHjGrrLbmr5Rlfx5Axcfh82wYY/BjtQ5rAPZAM=;
 b=MUiEtkRT0Aan6SRDcxerPrjjHMimC7lkgCLLLhgyG8v4BD5iZyUiN3Db/KOtBaHBjl67kGHVYor4TqWDFpN+RNXLq4qcjBMhPo4FF4R5o/DoFMKYpewrFn2wf5t3Yzqy9ZbZ1PFph6Tns8yqFXk9CXPu9tO9bwsikAxc+BTmK9jMrE3OajYubnH6K4JeLzMQ2Sq6G9zoemh1pZXlOEz9YzCz90SpzZdwb/lTtQ0GqZfAWer/xd1sA68WXOLEBjK20zmnY6S58S2lZu+//TWTovPeWyazAuU+DABrFDEy3oUbExVuV99dqgBqQAzWmJb1/PYccuFWSWgpUTcv/MV0vQ==
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=JHkduoHjGrrLbmr5Rlfx5Axcfh82wYY/BjtQ5rAPZAM=;
 b=eWdLYU3xq4NTm6toNonGOE/5vVBW+QOn0x2Z+p7SbTf9IhPmpFitNcKVAwnDhcHHwUdyNJC7KVpfdomdqbNpCuBi0eERYp9U5+Uu/77tfxr55DQy4sGhNL2sU3omGeXPym9GVbuUKHw9ptqFeP7YtIlxbGV3ig55afh90hizrE4=
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=SATLEXMB03.amd.com; pr=C
From: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <sstabellini@kernel.org>, <michal.orzel@amd.com>,
	<andrei.cherechesu@nxp.com>, <dmukhin@ford.com>, Ayan Kumar Halder
	<ayan.kumar.halder@amd.com>
Subject: [ImageBuilder v2] Make DEVICE_TREE optional parameter
Date: Tue, 12 Aug 2025 18:33:50 +0100
Message-ID: <20250812173350.2612682-1-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB05.amd.com: ayan.kumar.halder@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF00022574:EE_|IA1PR12MB8080:EE_
X-MS-Office365-Filtering-Correlation-Id: 87972465-b0ab-4813-3b9e-08ddd9c66c87
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|1800799024|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?WEJsRXgzQ2hPNE9RRFhPb29TMWRnKzVKVXAwZWVTSjRwWitjdmx0VjVxM3cv?=
 =?utf-8?B?dHk3alpGano3d1M5YzBkaGtEQ0llbWNJM2lEc1E4TnMrQ2xhWnl0TmlLZE4y?=
 =?utf-8?B?Yi9sMjgrOVh2aW1oNnFsdDFsa3BobUxCY0NwNnZnUVhsQzI5SDYxNGpCVHFX?=
 =?utf-8?B?eWJvVmdhVmkrTjdna3I1SG1BQ21hRTZ2WXNoMExWdFVkRS9obVJHK2ViMk5O?=
 =?utf-8?B?REhyL0VPRzdhdVJpSjJWWjF5a0oyRlJsY1A5MmdQSWk4b1pLWWhYK253bHVn?=
 =?utf-8?B?RURYdDBrVUZKc2lpRFpMK3pHSzdKaU1ZZjNHOEdxVmU1RTluMmlIbGFuVmsw?=
 =?utf-8?B?YmZndWNKRzhqbWFYWkNPVXBrNDh3VmJaSER1S3ZDTjVqREZ4dTgrU3JjM2FW?=
 =?utf-8?B?TFZHc3JCVlQvZGxUK3ZtSEU1clpBR2p5dGhLMDRRUVlIQlBvZkowbU8rSnNB?=
 =?utf-8?B?bzl6TmdRa3cwZU1ZRmZlQVNPZ245T0VjTTRvUkFMSStmR2FmTTg5ZzQ3NUg1?=
 =?utf-8?B?dzRqajBRWnl1UWZ5d29PVkdPU0llaXZyVzU4RWZ4MXNUS3RvclZWUkhDODVR?=
 =?utf-8?B?Y2EwZ1JpWTFXN0IzWlNsOWVMZEN0dTRmOFFKZ0o5UEhGMm1Xb2cvdStuQTJJ?=
 =?utf-8?B?eVhEN293Z09Ud2Vaa1dhK2Y3UUtQNDA0bGE2NUo3NVdVcGFLd0RUblFNRE04?=
 =?utf-8?B?bmdOMGpraXhNZ3RvZXFpNkVpbmg2Sy9xT1IwZ29PZUpOaW9rN0tCWFRCcFp0?=
 =?utf-8?B?bGtjZGFmTm5wempMM3FIaG9DT3cwM2VxM3RkZ0NCNmk3SllMMG11dXpaRHI1?=
 =?utf-8?B?R205MHZtWThlSE5XeFd1WlZSWlR3T3ZJY0tiK3lmd2VkdzdWMnErbDZyL3Z0?=
 =?utf-8?B?MXdCVlRIQ0Z2S3RvM3RiM3RjMUtQc1Q5YXJrNlUrMk5yWGk3K2d3VzR1WjJL?=
 =?utf-8?B?U045L1lJQUg3U2l1QTAvY1Fva2pSOHBDQ3RBMjBIZ1VLdXp3am0yekxlaXpL?=
 =?utf-8?B?bmZWdXovRXlUdjNuS3dVdlpORi9lSjQvM3F2bm1Dc1pOcDVNQVZRWmlhWjUv?=
 =?utf-8?B?ayt2WlhPejR0eUdSdHVyRmlPUXVTYjFOVkpBSGdCZElTMk5aaCtkUi9qR2p4?=
 =?utf-8?B?RFlZK002bmVqMnQ3NTFFOFlIcHord0tOY2JZNThkdXEzYnFmQyszYThtM2Nl?=
 =?utf-8?B?b0I0SEhpSXVocloyc3JGRHFtWEpXYVlXZjl5ZmFFSHBZdjg5QlNoM2ZiTmlZ?=
 =?utf-8?B?WEttZDRKRnFxVmhXTVVsUkdmYXJWalVuMWd6cTMyOVg3MjhBcWtCZnhVK3lG?=
 =?utf-8?B?WEF1Q0EzWWZsLzA4aTRJS1NKemV3WVZQQ1VOT1NpT1RNcGlOdkV3bkx4ZURs?=
 =?utf-8?B?VmsyZVR0TWVUZVdpZjZHdE9yeU1hZjdQaE1zcDRLRm81V1lkc0M3cURweXIw?=
 =?utf-8?B?cE9ST1NOUXpoTDAydzM5YW9GYXNoUEZ6dmVRcC9TK0lZalB6Mlg3OUd1a0R5?=
 =?utf-8?B?RWloS0VwZ2trbm90UFRGcnVON0FLVm1Bd2lzZXNQZmlMMWdyY1FXYjZNeVNN?=
 =?utf-8?B?aFVkbzFnREVCOVRkNjlZbjZHdzhRNVV3cEQ5TUlMaVVlTHVlbFR4K2c5OVJ6?=
 =?utf-8?B?amY3Ty9TbldQK0xIYnpvRGhRRGg0bGZNMk4vaHVKM25PNTE5ZE9JR0ZXZnFO?=
 =?utf-8?B?bmU3QWZqby9uOHl0dnpFYUd5S3k2VHV1VThlU0JZWkpIdTd0RUM0Zzg4Tk1r?=
 =?utf-8?B?WG5lV3Nrb2VLS2VFQ3FLeEgrTnRrdmM0N3dlM3pDL0gyNzV2NmNFV2N0VWlY?=
 =?utf-8?B?OHJJeVBUUFlrWmNMRHBMUXNyR2NCRFFvaUNiM2Rsc3BUcGIzR2E4ZGdIODdq?=
 =?utf-8?B?R2RHQmhLeVdrOUpsRVI1ZlcrcnNrcmFQVUFDN0NkMFZzSmUzZW9nZVZPM05L?=
 =?utf-8?B?ZEtGK0pyYTRhMFZOcW1VeXhTWTBoWDU5VHRGK0o3VHFJczhYUHppRkRGTC9y?=
 =?utf-8?B?V25RVENiZzhQM1BLNjRnWFJUVEFMS0pNTWZMWXJXZVh2ZDhrbjlWcWxERFVU?=
 =?utf-8?Q?oa58V2?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Aug 2025 17:34:00.3594
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 87972465-b0ab-4813-3b9e-08ddd9c66c87
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF00022574.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB8080

There are systems where device tree binary is passed by the U-Boot as
$fdtcontroladdr. In such cases, no external device tree binary is provided
during uboot script generation.

This is an enhancement on top of the following commit:-
uboot-script-gen: Dynamically compute addr and size when loading binaâ€¦

When DEVICE_TREE is not present, user should provide '-s' as the addresses and
sizes should be computed dynamically from U-Boot.

Also, fixed uboot-script-gen to set host_kernel_addr when BOOT_CMD="none" and
'-s' is not used.

Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
---
This patch should be applied after the previous patch.
"[ImageBuilder v2] Add config option to use separate load commands for..."

Changes from :-

v1 :- 1. Check that user provides '-s' when DEVICE_TREE is not set, instead of
setting CALC silently.

2. Set 'host_fdt_addr' to '\${fdtcontroladdr}' when DEVICE_TREE is not set.

3. Add a fix for BOOT_CMD="none".
 
 README.md                |  5 ++++-
 scripts/uboot-script-gen | 29 +++++++++++++++++++++++------
 2 files changed, 27 insertions(+), 7 deletions(-)

diff --git a/README.md b/README.md
index 59919df..fc448e0 100644
--- a/README.md
+++ b/README.md
@@ -92,7 +92,10 @@ Where:
   DTB are stored in 'host_kernel_addr' and 'host_fdt_addr' u-boot
   env variables respectively, to be used manually when booting.
 
-- DEVICE_TREE specifies the DTB file to load.
+- DEVICE_TREE specifies the DTB file to load. If not set, then $fdtcontroladdr
+  is used as the address of the DTB loaded by u-boot. If user does not set this
+  option, then '-s' should be provided to ensure that addresses and sizes are
+  calculated dynamically by uboot.
 
 - XEN specifies the Xen hypervisor binary to load. Note that it has to
   be a regular Xen binary, not a u-boot binary.
diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
index 656de72..be61fc4 100755
--- a/scripts/uboot-script-gen
+++ b/scripts/uboot-script-gen
@@ -591,7 +591,7 @@ function device_tree_editing()
 
 function fill_reserved_spaces_from_dtb()
 {
-    if [ ! -f $DEVICE_TREE ]
+    if test ! -f $DEVICE_TREE || test -z "$DEVICE_TREE"
     then
         if test "$CALC"; then
             return
@@ -1674,6 +1674,16 @@ fi
 
 rm -f $UBOOT_SOURCE $UBOOT_SCRIPT
 
+if test -z "$DEVICE_TREE"
+then
+    if test -z "$CALC"
+    then
+       echo "DEVICE_TREE is unset and -s is not specified"
+       exit 1
+    fi
+    echo "setenv host_fdt_addr \${fdtcontroladdr}" >> $UBOOT_SOURCE
+fi
+
 if test "$FIT"
 then
     echo 'fit_addr=$fileaddr' >>  $UBOOT_SOURCE
@@ -1721,9 +1731,13 @@ then
     done
 fi
 
-check_file_type $DEVICE_TREE "Device Tree Blob"
-device_tree_addr=$memaddr
-load_file $DEVICE_TREE "host_fdt" "$XEN_LOAD"
+if test "$DEVICE_TREE"
+then
+    check_file_type $DEVICE_TREE "Device Tree Blob"
+    device_tree_addr=$memaddr
+    load_file $DEVICE_TREE "host_fdt" "$XEN_LOAD"
+fi
+
 bitstream_load_and_config  # bitstream is loaded last but used first
 device_tree_editing $device_tree_addr
 
@@ -1751,8 +1765,11 @@ then
     fi
 else
     # skip boot command but store load addresses to be used later
-    echo "setenv host_kernel_addr $kernel_addr" >> $UBOOT_SOURCE
-    echo "setenv host_fdt_addr $device_tree_addr" >> $UBOOT_SOURCE
+    if test -z "$CALC"
+    then
+        echo "setenv host_kernel_addr $kernel_addr" >> $UBOOT_SOURCE
+        echo "setenv host_fdt_addr $device_tree_addr" >> $UBOOT_SOURCE
+    fi
 fi
 
 if test "$FIT"
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 12 17:35:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 17:35:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078989.1439980 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulsu7-0007j9-Fk; Tue, 12 Aug 2025 17:35:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078989.1439980; Tue, 12 Aug 2025 17:35: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 1ulsu7-0007j2-Cq; Tue, 12 Aug 2025 17:35:19 +0000
Received: by outflank-mailman (input) for mailman id 1078989;
 Tue, 12 Aug 2025 17:35:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2eVr=2Y=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1ulsu5-0007ir-SB
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 17:35:17 +0000
Received: from NAM04-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam04on20625.outbound.protection.outlook.com
 [2a01:111:f403:2408::625])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b503081c-77a2-11f0-b898-0df219b8e170;
 Tue, 12 Aug 2025 19:35:15 +0200 (CEST)
Received: from BN9PR03CA0141.namprd03.prod.outlook.com (2603:10b6:408:fe::26)
 by CH3PR12MB8547.namprd12.prod.outlook.com (2603:10b6:610:164::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.22; Tue, 12 Aug
 2025 17:35:12 +0000
Received: from BL6PEPF0001AB71.namprd02.prod.outlook.com
 (2603:10b6:408:fe:cafe::a4) by BN9PR03CA0141.outlook.office365.com
 (2603:10b6:408:fe::26) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9009.23 via Frontend Transport; Tue,
 12 Aug 2025 17:35:11 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BL6PEPF0001AB71.mail.protection.outlook.com (10.167.242.164) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9031.11 via Frontend Transport; Tue, 12 Aug 2025 17:35:11 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) 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, 12 Aug
 2025 12:35:06 -0500
Received: from [10.71.195.192] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Tue, 12 Aug 2025 12:35:05 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b503081c-77a2-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hMcl+n0nbWd7yJJqA/EPlN2h3EJRWhQ5CBKwAya0PvUSdvOAfDf0RZ8bKovcjBQ9l6/Cg1QyOc6vZgyQisGW+G0AkMQfxNTceXK5aou592r17uA5VM4AyGluAaz4xG6Xc9tXdvDkH6HXUqCUtQRXuQLzR7eAiWpg+k+VuYK61MS/4oY5roJp0tGXi5GK5EHhVIpZKjb7q81ANG4nOnJK9zEH4ATjomuoeboADpPVCSzNqJzEKwI1jGNfEOOQc22LFHFbGdfMA7kvkosyhAnoIHOulxzx1Xs3/k2K5d9CQcMau0S7QjWE2vwUkE+o2CAmaoCLovJwI21pq4fScaZLWQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=EE+WDBFdkOTTKLb5YGL7lXIYeIyHTEfZAeWs0p4Tdtw=;
 b=miv7i0HhSZiwq/tDg4e8X83O9TN5BCl6yweSdIF5oYyb/awE/gHT1Bd7ZqjCZ3350TppRz1La6vCUcZKdos7oRRfpgcGg1kXRVzoK/6vAG8Dblqe7G66GvhObkqwFUa8nDSO7Z/0oN5bYBwcwRPBpiY21SC9VzYUZx30VuY+uUjzdhvYJY0tnHnCHhO73+LpfnKKs6F5NGAZz04zUWps9uabQEToovibezbI9dX09hR8OIXBXN5EAggo0vtcKJP0DMotn4Zgx/NNtoOe0/Su2VOcuhWa2TjsGK/n07lYPDTUlTxojMhFclP8jjksIlyoJiDgyV6Hm+5Ufu/aZCywtA==
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=EE+WDBFdkOTTKLb5YGL7lXIYeIyHTEfZAeWs0p4Tdtw=;
 b=eNJg2x2q44vGDjW0typBMPoztaWOAvV1yxPv2XTCrhYf60cT7f/mRQ5bXd1kBFNWypP8XpCvIjxBgulCfK/M4/tQSoaFv6Sr1jNLstJJWa6b9E6zQnmqt8kTPF83z5gw4iK10ERt8GZ14zjnz9c597p5uaN5zLhthQyhG1lsOC4=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <91ce3b22-3eb8-44b0-989c-6acae1b79992@amd.com>
Date: Tue, 12 Aug 2025 18:34:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [ImageBuilder] Make DEVICE_TREE optional parameter
Content-Language: en-GB
To: Stefano Stabellini <sstabellini@kernel.org>, Ayan Kumar Halder
	<ayan.kumar.halder@amd.com>
CC: <xen-devel@lists.xenproject.org>, <michal.orzel@amd.com>,
	<andrei.cherechesu@nxp.com>, <dmukhin@ford.com>
References: <20250807154614.456654-1-ayan.kumar.halder@amd.com>
 <alpine.DEB.2.22.394.2508111447010.2883419@ubuntu-linux-20-04-desktop>
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <alpine.DEB.2.22.394.2508111447010.2883419@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB03.amd.com: ayankuma@amd.com does not designate
 permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB71:EE_|CH3PR12MB8547:EE_
X-MS-Office365-Filtering-Correlation-Id: 143b23af-aef6-44fb-09db-08ddd9c69703
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?UDNocDVTQzVycTM4YW5RVmFEVEhUWWtoUzBrYmpEdVJPUVE4NE44emZPdUlw?=
 =?utf-8?B?SnlRUEp5VHJlZnY1azI4cW5FbWQyYUVzZTZMYldVRi93MStTaGlTUGhqSHVX?=
 =?utf-8?B?QjMwQy90TUZlSThkMlhQZFYrQVZuVUh2aWRRa3hSUk1taFo2SGdDWW84NGt3?=
 =?utf-8?B?R0h3UFhYRFNJMnFvVk0vUVNKUk9hQ244YXl1aGhBKzhXRThoYU1kamtXSWxN?=
 =?utf-8?B?Rlc5SVkvN2JuZnpjV3FCZTF0ZkJUSXdMQUpNdEgzdm1QUUJyMWVBWHZXSXdq?=
 =?utf-8?B?ZWZHclorbGFwVEJGQkt0NzdiV3A4UnBuVUU1ckZiRHhwZlJRVTdHMWpJMzZT?=
 =?utf-8?B?U0xHOThCZTdjbDhpWDlHSTVXcGx5K0JwMHZzd3FTVGo2b1dYU2djdk1aaGEr?=
 =?utf-8?B?M2dRcmhrVFY2eWVScmtMcjArNGJ0OFJKRWxidXdTakM0ZTZBNmIvcG1rclhs?=
 =?utf-8?B?RDBqdVJzbWNETkk3OGFSQXNOOXNhMXBaa3VnR091TEV5bTVzak9JWm4zZ3hW?=
 =?utf-8?B?aDFCR2RGK1l6ekpSZFVsYTRCanNVenNLalo5ZjhicVZ2SzVvcG84WCtFOXJS?=
 =?utf-8?B?dnYrTElJNHh4OHNWcllWT3J0eVZ6RzI5eW9scjF5bGVKc1VHbzRsUHFpbkcz?=
 =?utf-8?B?eEd3b1oxcUFQRWlvQmhLNXBtNjV0UTIyblUrTFRZVUZOWDhNbUZVSzBES1hz?=
 =?utf-8?B?U3FWVTVTNXZINzhCakJ3Q3lHVllrdlN5UnBtM1lyWGpyT09tNkZFN3czQlN0?=
 =?utf-8?B?NHFKbHg3RlFXWWlUcys1L2VjdFhZTzAxT2pyZCtNRU0wN1VaYWlFQ1Zra0VM?=
 =?utf-8?B?b2JLYktmNlVqVFFGYkpqS2VWUTZ0UHpsZGRZNVozMW95dU8wSEVZRHByenYr?=
 =?utf-8?B?L1lybE9vdENYVVNsbWpocXVrUUVrS2FxZ3FVcTJ1dlJEY2lJekJCeW9vUUJX?=
 =?utf-8?B?L2hqMklNUDFGWXRPL2U4NFZzVEtSNFZGb1hSSXN5SzJTT2VheUlOWnJRNWJT?=
 =?utf-8?B?b08zeUhzVjd4ell2MWcreTBoakQ5c0xUNm40aHVEc1VkSXVkUG85MDNzUFYw?=
 =?utf-8?B?TGUvK052bmFTVUpSdW4yck1FN0ZjbXplc2JlRzF6Z25OYmsrYTJ5YThPNURP?=
 =?utf-8?B?Z1paOHhneXNldUVoYmlaSXl2c2RFMTRYR1QyTFVyL3dCZUNvcmMrRFE5bVhl?=
 =?utf-8?B?L3pxZG5OOFZYTGliWitpd2VITFNaazFuc0xSMWF2UldzU1ZpQzJMTkF6cDBM?=
 =?utf-8?B?WGVaWmszVlR4MTNNWDl6bi95YVJkNUpPdFNUVTV1ZXEzaEpCVVVCRWI1WDRI?=
 =?utf-8?B?K0FienpmSzA0cTBWZGI1VFRYK0l1dkcrbysycGpGcHNqUlBac3lnY1hBR0pk?=
 =?utf-8?B?dlFLREo4b2hicGdNeHdRbmlTeUY5c3o3Q29yTWtVKzRURUtXeGZKWlBDRmxU?=
 =?utf-8?B?bVorQWRRWVgzTHQvREF0VmQ4WGZhN3JxTTBIN0c5bkZTa0RkTmtuNXE0aFJn?=
 =?utf-8?B?bkNBUFo2Z3BJSGxOT1piLzFMbXE2M1RvYldFYk9OTWFJMlFPekx4S242clp0?=
 =?utf-8?B?ZUFRU2FiTHUyZS9yNXExdk5iNjlnYlhIbmFsODVWVDBkK3lFcnR4QkpPSmNN?=
 =?utf-8?B?UGhodUpmZklycjNFOUhXUTBZZC9tZDJpWHNkUjMrS1pFbVVhSUp0VmZHalNy?=
 =?utf-8?B?YzVPZjZ2cWo0Y0NqaFEyeW00WUI2QWdtWkw4aXlVMElqMFN6a0FzbWFDNXZB?=
 =?utf-8?B?N1laQXlzUEJsNlR4MUVDVUNLUlJOUzFQQit4TGZkRVpOQkNqUGJHZk0weVFi?=
 =?utf-8?B?RXE2MmVMbGJ2cndhaURJZEZSMmxCV0J2Vy9FNEFIM1g3QzNtcXJmZ0Z3L0RO?=
 =?utf-8?B?WmlBNEdZS2dRTlVNcW1nT0o4ZS9rVWlIZ2dFYi9aTm1tamRXK1h1S3hqb3Nk?=
 =?utf-8?B?QWtreDRWRU5uN3ovMXJFOTJjV0NvcDErK3VYSXhQMlVvV0tWSG1Eb3R6Rnhp?=
 =?utf-8?B?L3dyakFEaXpzQklxZWc1NDFzZUpxTlZnU1ZISjlFeXg0Ry9nQTUzOXFDNUx2?=
 =?utf-8?Q?CXSKEL?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Aug 2025 17:35:11.6329
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 143b23af-aef6-44fb-09db-08ddd9c69703
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF0001AB71.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8547

Hi Stefano,

On 12/08/2025 00:13, Stefano Stabellini wrote:
> On Thu, 7 Aug 2025, Ayan Kumar Halder wrote:
>> There are systems where device tree binary is passed by the U-Boot as
>> $fdtcontroladdr. In such cases, no external device tree binary is provided
>> during uboot script generation.
>>
>> This is an enhancement on top of the following commit:-
>> uboot-script-gen: Dynamically compute addr and size when loading binaâ€¦
>>
>> When DEVICE_TREE is not present, $CALC is set as the addresses and sizes should
>> be computed dynamically from U-Boot.
> I would prefer if we did not automatically enable $CALC. If it doesn't
> work without $CALC enabled, we could add a check for it and print an
> error and exit. I would prefer that then enabling $CALC silently.
Ack
>
> Also I don't think we should use the check ${DEVICE_TREE+x}. I'd prefer
> to stick with the existing checks based on test ${DEVICE_TREE}.
Ack
>
> The rest looks OK.
>
> It might be possible to simplify this patch down to this (untested).
> The last chunk of the diff is actually an unrelated fix, it looks like
> we didn't test BOOT_CMD="none" when the -s option was introduced.
>
> What do you think?

Slightly changed the chunk. With that it works well.

I have sent "[ImageBuilder v2] Make DEVICE_TREE optional parameter" for 
review.

- Ayan



From xen-devel-bounces@lists.xenproject.org Tue Aug 12 18:16:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 18:16:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1078998.1439989 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ultXb-0004bg-F9; Tue, 12 Aug 2025 18:16:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1078998.1439989; Tue, 12 Aug 2025 18:16: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 1ultXb-0004bZ-CS; Tue, 12 Aug 2025 18:16:07 +0000
Received: by outflank-mailman (input) for mailman id 1078998;
 Tue, 12 Aug 2025 18:16:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=CWaV=2Y=oracle.com=lorenzo.stoakes@srs-se1.protection.inumbo.net>)
 id 1ultXZ-0004bS-Le
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 18:16:05 +0000
Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com
 [205.220.165.32]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 63884aa2-77a8-11f0-b898-0df219b8e170;
 Tue, 12 Aug 2025 20:15:57 +0200 (CEST)
Received: from pps.filterd (m0246629.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57CDBxJZ005442;
 Tue, 12 Aug 2025 18:15:10 GMT
Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com
 (phxpaimrmta03.appoci.oracle.com [138.1.37.129])
 by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 48dx7dn86q-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 12 Aug 2025 18:15:09 +0000 (GMT)
Received: from pps.filterd
 (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1])
 by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2)
 with ESMTP id 57CH1LLR017385; Tue, 12 Aug 2025 18:15:08 GMT
Received: from nam11-dm6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on2069.outbound.protection.outlook.com [40.107.223.69])
 by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id
 48dvsaarau-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 12 Aug 2025 18:15:08 +0000
Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16)
 by PH0PR10MB4744.namprd10.prod.outlook.com (2603:10b6:510:3c::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.22; Tue, 12 Aug
 2025 18:15:04 +0000
Received: from DM4PR10MB8218.namprd10.prod.outlook.com
 ([fe80::2650:55cf:2816:5f2]) by DM4PR10MB8218.namprd10.prod.outlook.com
 ([fe80::2650:55cf:2816:5f2%5]) with mapi id 15.20.9031.012; Tue, 12 Aug 2025
 18:15: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>
X-Inumbo-ID: 63884aa2-77a8-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=corp-2025-04-25; bh=v/AKrkerpeKb8wxyWB
	bLojPfbnESsK47UPNkKQdRQBY=; b=A7U5T0BZgOBOFuD17g6/tHPcFwG//ysF1u
	pGenndBpUcTS7xENzEco1TBWhd0hdKsnz4LlyJJBM1QBlj+GPsmSL/jIl4xNjgFC
	Z0Ja9ClNN4ucrtIJSifbV3qU3DhpugpTR7iQtWGJoV3DCcEy1MqdPzlnBxwTci2M
	vFcY3boYzX8KCs/vnJ3e+Ypa95C0GmT+MvZm0ttBTmLNKlD4Cr8sCTbCOlpUjpKl
	1VhuAD3me797b1oJhLUcD6GLuJzEhYPsyeIdKyZidYZYGKE+yCmyTP2SJ8DBaLUx
	LP3Yndb1IELk6PGWcbd5TTmiAnbC3imUXdt/Ft1KpEsaW08VGJSg==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aPmuu7Ic+Gn0EZSHv/4wSr8UOV6nGjaZGJMj/ccTi+Nvb31+ZYulH86CG/SOCB89do8mib8t0OQBlXx3vgBBxbrYEzIiVwFZ9/z3Q/5w9IxYHMGpmwOi3TlRrFJ5Z2IjrdkKwhcMHkpHgekpX6Q/GRDzPBlfJZu2JfJIvooIXNLo1x8V1XBOFZbt+ecuBMQ39KS6QRNJi2UDeRzWZoXscTp+zGk8zuqtxyYHuEG7aetmXKIUkBVSuUVHG7a+oTv1P6ujIzSB25I0oAgekYiXLT6OtgE5UwrF8LyQiF2F9A3Otk5ATzJP5O/HMNbth+doRliniyM7EQgFcltII0qJ+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=v/AKrkerpeKb8wxyWBbLojPfbnESsK47UPNkKQdRQBY=;
 b=E6tcC8wXwqHjyGAECBaiR1G1STp6z5pc++gUUjbiABtKG9YwRPAOikZUHtfrp6xzjXHKh8RoChHAE5ldxOgNv4cN9cHAaZ2xfvj/NQxI66abQp3snDaidvQPc/a61l26BB0SiadCNf46Pt2UIK6XiP0tSvl4heDy51DMxaS90+NNmlK7P9DNq+qPOTnITCsrERGRq8iqfRqglXLtPCH6Kkt2eAgSbdCe8QJjPf1K7Xmq3yisYU87ShVvT2Paw3JnEJCYB4vVkRc+9niI3HGhbOgrwwmXpYCW+MxqQHLGsRMcxekhrJ6GruLXndcVIwOI2lb6mZmdP9sMeHmJYBChQA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=v/AKrkerpeKb8wxyWBbLojPfbnESsK47UPNkKQdRQBY=;
 b=amhPi3u/VQ2Pdu/3xBaov9uPN4b+0CT+9vEpk7gcssMjKGEWK3I537nTH9d9EgsE2t94vLAR2Xtd58CLOkP9ny6FjYCjP57Z3KY3Y77+ECwVJp8zfYnZ5t8vugd8/rL2A6eCSRnxZz7lkdmWUp7gr7LYt7+IRcl5cwHY40zZWsM=
Date: Tue, 12 Aug 2025 19:14:54 +0100
From: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
To: David Hildenbrand <david@redhat.com>
Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org,
        xen-devel@lists.xenproject.org, linux-fsdevel@vger.kernel.org,
        nvdimm@lists.linux.dev, linuxppc-dev@lists.ozlabs.org,
        Andrew Morton <akpm@linux-foundation.org>,
        Madhavan Srinivasan <maddy@linux.ibm.com>,
        Michael Ellerman <mpe@ellerman.id.au>,
        Nicholas Piggin <npiggin@gmail.com>,
        Christophe Leroy <christophe.leroy@csgroup.eu>,
        Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Dan Williams <dan.j.williams@intel.com>,
        Matthew Wilcox <willy@infradead.org>, Jan Kara <jack@suse.cz>,
        Alexander Viro <viro@zeniv.linux.org.uk>,
        Christian Brauner <brauner@kernel.org>,
        "Liam R. Howlett" <Liam.Howlett@oracle.com>,
        Vlastimil Babka <vbabka@suse.cz>, Mike Rapoport <rppt@kernel.org>,
        Suren Baghdasaryan <surenb@google.com>, Michal Hocko <mhocko@suse.com>,
        Zi Yan <ziy@nvidia.com>, Baolin Wang <baolin.wang@linux.alibaba.com>,
        Nico Pache <npache@redhat.com>, Ryan Roberts <ryan.roberts@arm.com>,
        Dev Jain <dev.jain@arm.com>, Barry Song <baohua@kernel.org>,
        Jann Horn <jannh@google.com>, Pedro Falcato <pfalcato@suse.de>,
        Hugh Dickins <hughd@google.com>, Oscar Salvador <osalvador@suse.de>,
        Lance Yang <lance.yang@linux.dev>
Subject: Re: [PATCH v3 05/11] mm/huge_memory: mark PMD mappings of the huge
 zero folio special
Message-ID: <511317b9-7155-40c7-91e0-faf134622b9d@lucifer.local>
References: <20250811112631.759341-1-david@redhat.com>
 <20250811112631.759341-6-david@redhat.com>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250811112631.759341-6-david@redhat.com>
X-ClientProxiedBy: GVX0EPF0001A046.SWEP280.PROD.OUTLOOK.COM
 (2603:10a6:158:401::48f) To DM4PR10MB8218.namprd10.prod.outlook.com
 (2603:10b6:8:1cc::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DM4PR10MB8218:EE_|PH0PR10MB4744:EE_
X-MS-Office365-Filtering-Correlation-Id: b335b214-0913-465a-4daf-08ddd9cc28d6
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|7416014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?tMymG0V27K0l2/9ZZj+4MboP1zKVNbFQyRpH+20gcAErkeTFY0vnERB5XhVI?=
 =?us-ascii?Q?+Gi4IXtJ+ebBGs/25KIrlkBftedx9hfwqH+1lqNUmLeGpi+2DFB9WTyHXtz6?=
 =?us-ascii?Q?FOsu2vNLXuyC1xPt4vFw2dTpbsQezQObIgRO7HvOyaW+EiMguGk05KhRJnLz?=
 =?us-ascii?Q?jDOK9pBkRPRNb4Wkkcf8S+PDDBicCPJPsclFgvS8a0DDxgwVdHI+rxXcD8pp?=
 =?us-ascii?Q?if4OVUjAE4ocRZV8ODgFZ2dZlGX43OVDp8YyGs14HCQEYzBkIDzLvFudkPJe?=
 =?us-ascii?Q?NJJNzl+gis+azwsUJarUEtAd7A2WdJAJGssJnUQUtqTsWHGBn5H+DVTxB6ng?=
 =?us-ascii?Q?fmlJ00IP83b/NflFiC6Eo5NU7fjrCNqd14EnuOW0AC8BY/piAs4POjUkvAvY?=
 =?us-ascii?Q?Kh+2RtfUXaN6Qcw5JocENvUJz+u0qZ2nwnqoRZkbjsZCaiFeXac8o+75upb/?=
 =?us-ascii?Q?xoRJr5q+tos24ih9Yq2nVo3hJNUwHdyV5C2ODoGwfgdXrHJvZSwGCnBXUhdi?=
 =?us-ascii?Q?SukaNQmwEZgr4g0llNkQOSlc8R5VskoFKeGQAC/Uo2nhsKw5gSv97iytt5y7?=
 =?us-ascii?Q?T1gaAuszfMMI4hA8LCl7McrPt+JLG9EAjik+8HnMDi9JS2Cz7+Mhq91vH5nr?=
 =?us-ascii?Q?K+rWaAQZ1z/J0USDGJiCWSi5paUTAysCcrUpYPSfQhFaSGNLMepnaYH70/ht?=
 =?us-ascii?Q?eWCBOqtS0JXXDkh5dRVSRlyH97amXHAW0lNSbsfIsrHdbe327JxIM/Jc29Dj?=
 =?us-ascii?Q?/LVx2JGCYG5P94LPU/IiTvpDHROJkQN5XFVHUMHLomSqPDBUXl0eADoAaW75?=
 =?us-ascii?Q?gTPN/Q6Q2yMDn+g6ndRKzRGJOIM9TAkWgROzzihub57sWS35jG/cwoltZBQF?=
 =?us-ascii?Q?ZlanGmBR+Rn3MPSpnEtwW7qjKckw4BSfd7FPanKC0pWqn1LIkVy/hiJ77GGW?=
 =?us-ascii?Q?tKSQTyxBVx3GpWncIless+adKnCUaOiKy+l9+E20JO3ehW8JiJ5ui4M5//pz?=
 =?us-ascii?Q?zzFenbmzY0IDXjEc/s0LLv2My3chfUB/e+FvfMMTN0htZC/qylfdGsRK1g3N?=
 =?us-ascii?Q?UFPc9e53/CF2RI4hyOo653Q0Y5MHK/1rAgXSaHdHmTxZkrhcH4qDw4KzaO+7?=
 =?us-ascii?Q?n+o+pGPURfqfDtz+wH97ZGolLFSuLQyZyhjYelfL1h2DJzHkBtISfIHalsYU?=
 =?us-ascii?Q?Cx+5Ki9xL2IXkIbO+3vf3n3BZCUQJDo9Vgqel8GO+VkHKTf5X/XM95tR7evz?=
 =?us-ascii?Q?YFj6HD4Kk6XD3N/Kn3V5Kff6nXal42nH/8mC8FGk51FAVUdW2RYmmaJoi5Nk?=
 =?us-ascii?Q?KMhtWD+L3fe6t5LwV7yR2xJznJtC1Z6W7/WHxGB1/1QpnmYroSuYorD1k2Ge?=
 =?us-ascii?Q?/TG34ZEQxrgGIE3tUjmCFhgRxExxGP54m/zD844LHWsEgsZOelxXqhwjFuUo?=
 =?us-ascii?Q?qo2BT78aH4M=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR10MB8218.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?Tp7l9ZOSzL404BPsv7DRUVRtaVa+OWxKN0HUDCbfJDEqIyK/G789CiC6T0gu?=
 =?us-ascii?Q?lziI+o1FgapymdkHFE5DF3mJ2inle1FI3YFr8mVDnWKNLuX4M5pDEECK9f9F?=
 =?us-ascii?Q?Tq7v1RlioPX8gUhEPxXfCa0+EfabxWAhxBqHzDG/bGh4uaooLDINGPGPcBG5?=
 =?us-ascii?Q?AzYY8LNMdrF1x5ET+WjmZHhOxNfhPv6E3nJJmSwA8QGWARWn0BQq9gaewBnd?=
 =?us-ascii?Q?8x1ooYqjPhGYKwOTSsdQwhYdAKOn6PenJ6L09XcSzQAl2HBjy4068Gi6sKBo?=
 =?us-ascii?Q?zs46ac/neaAU4K/Nt9I/BzFv3JuqJ9LoHeHz/+yLoNo9nAmrt6sh3C+4/sJS?=
 =?us-ascii?Q?UHJacmeMGQQ3Ac/DqNOjE1HKdoofpDgnRIrkdTSywgNmUfTjMJ0hwQUxIXHf?=
 =?us-ascii?Q?Y4MLciwtA/s5jkOIZZiL7RH+L9U7IuRpO3V2N9Ip3ThNDDledZ8I9SHHcE7Y?=
 =?us-ascii?Q?G8PoVa+7Afj8pPJQguC0FDOWBRh12y0lC1KonVwQH/JeHSCryqsfCakWeD2z?=
 =?us-ascii?Q?hdrYCM3L6xc7cCne4dNLgQfIdpL8h6Uo30ZLXINxZQGOJCEsdLwyGpBNZ2qE?=
 =?us-ascii?Q?F8OESXniKqhUozpID3GL79O2/kI/Ppx+h4fQzOMH8LyUrVP9M8ax9Ak8KS5V?=
 =?us-ascii?Q?641ZO6zTPhIYkK5WQptYfTbA/05Zm2vUXZ/hNios6xsaVs594K3/r9IixK7M?=
 =?us-ascii?Q?6S9lv7pjRyhKcnoLzFP+QJbsXhaAegckdzzsx1KF5Sh8/fayBXF6PnekDykC?=
 =?us-ascii?Q?p20v+/qNAsuEvAh+rY+2ycYXJkYJPYpoC5TkoYjWKee3748LaavXnx+GnmaG?=
 =?us-ascii?Q?18irb7kfqXxFfNjjDMK5Sq+uY7SEFRonHuua+CYpGdL+vacjG9QJR/1AGcsw?=
 =?us-ascii?Q?dj9uCWq/QMxhdq66yN+ASdW/hJWP8ZUR4pFKheWTgtTIza2m8soelxxohGn8?=
 =?us-ascii?Q?YiXbnQcf3mCHvGm1dXNxpEFM43x8v/Iorq8ZW2vsJxSQDHe3SnoSR+9WVFTZ?=
 =?us-ascii?Q?UXjG3X40BUm1jqA2zpkUcHQ8CiXXf2YlxM7kREOMYp8eSuTxz9AOHmP3DE8N?=
 =?us-ascii?Q?3r3h7ewJO9fPa03HvW742CMcoBtSKBso9DoOjh1Yl81/eyek78l03hPIDe79?=
 =?us-ascii?Q?FG5BJYjhXiXDefKGwGvFHuv6HQRHiBWLfOt5sJN6Etf4+zDd5kdsVfaEadtu?=
 =?us-ascii?Q?ymSvmxAmv7jjcVJp52iMuVivxHC5EmK94GKyAcZRdTKrb6/z4DPlhO5dELIJ?=
 =?us-ascii?Q?8BN/zJyEQm3mnI1A+iDbxhYthePlr8p+NNePdkPPJtm8wPlN28M2ZHBMLelP?=
 =?us-ascii?Q?qy4QgFTMDHVlKk7K6IoO9QJeoyzx1v8Vb/nmxdxb/IOVPFNVE5XR06/Y3zte?=
 =?us-ascii?Q?NRZHQN4o+r7d3ojkm+aZuVj6j7R4/uPFGy6XsXjvb5yIIHCKVkKCA3bHnuS6?=
 =?us-ascii?Q?nmoY5N0qhIbzU+YybBQqrUoMsN3FGQWmo6G6mXkOjK0zC5TeeUqSJ+8K7pY6?=
 =?us-ascii?Q?OZkVzBaSBIGoxNeWSXFjkgzd+aSitG2QACL6BmRB3vSA085YTfTyODd0QdnB?=
 =?us-ascii?Q?JT5UlKgUxB5vqRJYX9h1g5i56IHWv+Vd5JeKUp/1Dmh+nh7p8oqMWQurpcoF?=
 =?us-ascii?Q?qw=3D=3D?=
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	iYnNSPu9YTKkbldaUSFfMmrTQ+iu4XNtXU0KoaWKNoTlIJAHkbGxUnI8Pne4JJ7oKJKr1/QU/zIqDcdesnZBtJtDJnShYWj77lgzo0Sv1Ea0jGy/D/io+aLyGizCqpsxBFq2wWNDHpPVDzq4irZbOVIYM+pclhRxMjylBxlF8APJAxH0Kbtyshm+g7YSEp2CSueS82o/hTGt9nA5MwNWy5Pkf6HpmLt9KeHAMczpGmddSx8a3B9kfoYDuYHfC508SrYQyxMtDnDO9E25WoHcipSmO+oKlPTjnKcfo2b2/eAGM320pClCMf0QtdN7VH/aOl0ra+erqhZZrHdjfffR2Xoec4kkDcJUIvZQOGyJGcWiS+x3T/Yk/tFC38Jde+6eelcdFw7mWD8qldHCPvGYa3O9udIhq/XlTK7P+rR2m2j1s7QQv53T8C5yrrPG+dALRYsA0f5xuaD+nvkGp+BZH/7++5p2aL6WCvGWIY1hQY7yc5GcYLtQMHxdytmMtsLxupYYGMTSspNUUvL1S+W3XnP5Hwsh5rTDFb6QL6cwpa+dcGgh82VWI+6CoGaMZoh1nbUCkam6eJALDkpa+J6gilTYaekSWTxDmVpfccS9CFs=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b335b214-0913-465a-4daf-08ddd9cc28d6
X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Aug 2025 18:15:04.0333
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ldZ+m4aQ4N3dt5m+lDX9Ax4aJNeTYPrEEcBwp81xt5nnpYYAQGgJeBIWxCqGO6HBrDnNzeQpJSo2/HutijZP/sdOmXvTTH3kpkqem9BE92A=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB4744
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40
 definitions=2025-08-12_07,2025-08-11_01,2025-03-28_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 malwarescore=0 bulkscore=0
 phishscore=0 suspectscore=0 mlxlogscore=999 adultscore=0 spamscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2507300000
 definitions=main-2508120175
X-Proofpoint-ORIG-GUID: NKcoa3qSuGzEFtFsXdII5yncmscdT4Aa
X-Authority-Analysis: v=2.4 cv=WecMa1hX c=1 sm=1 tr=0 ts=689b84ad b=1 cx=c_pps
 a=WeWmnZmh0fydH62SvGsd2A==:117 a=WeWmnZmh0fydH62SvGsd2A==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19
 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19
 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=kj9zAlcOel0A:10
 a=2OwXVqhp2XgA:10 a=GoEa3M9JfhUA:10 a=20KFwNOVAAAA:8 a=yPCof4ZbAAAA:8
 a=pssIr5Eb8AsxVtukJnQA:9 a=CjuIK1q_8ugA:10
X-Proofpoint-GUID: NKcoa3qSuGzEFtFsXdII5yncmscdT4Aa
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODEyMDE3NSBTYWx0ZWRfX65/xqYCuka0P
 S11Bp+J4FoBSyGI6DrU2U5M3I//JUkRALYzU+A1H2uXmbumfjX7VJTYN0BNnEAjrurpn8ydWm0O
 D37UfOuF55ptmgW84Yq7XkmtO+7CUAaK7C3b2OBRyMiwXHl+DoW344wUFp6ApMoK5+8ZKbmn+2K
 9pR8N/d6A9E5GLoEPfXjgjymKxwEoY8LbpXGmy5uo+B7subW5eaYznd6Ehldyw6aq4ZymHeUi9Q
 QPCqfajHJEnUSEOgPyMUCWTkLnztSy9rDdyBQueQajPr3z3JKmBRUYUEiPmsM5MreJbJ2pYu9Aa
 JJ6/2svjqAEN0DNCmBwu2i1GjCpwjO+QXHIrG15kbyTkY0Y5euCajbBZ27KNZoNeGKMlCWLv4le
 FTDKu2lm2j+BMg5rgQc88zo9knQ1r6OvqYeC/sxwXYmTrgs54h2LGyN1jay8Gpk50FKjNP00

On Mon, Aug 11, 2025 at 01:26:25PM +0200, David Hildenbrand wrote:
> The huge zero folio is refcounted (+mapcounted -- is that a word?)
> differently than "normal" folios, similarly (but different) to the ordinary
> shared zeropage.
>
> For this reason, we special-case these pages in
> vm_normal_page*/vm_normal_folio*, and only allow selected callers to
> still use them (e.g., GUP can still take a reference on them).

Hm, interestingly in gup_fast_pmd_leaf() we explicitly check pmd_special(),
so surely setting the zero huge pmd special will change behaviour there?

But I guess this is actually _more_ correct as it's not really sensible to
grab the huge zero PMD page.

Then again, follow_huge_pmd() _will_, afaict.

I see the GUP fast change was introduced by commit ae3c99e650da ("mm/gup:
detect huge pfnmap entries in gup-fast") so was specifically intended for
pfnmap not the zero page.

>
> vm_normal_page_pmd() already filters out the huge zero folio, to
> indicate it a special (return NULL). However, so far we are not making
> use of pmd_special() on architectures that support it
> (CONFIG_ARCH_HAS_PTE_SPECIAL), like we would with the ordinary shared
> zeropage.
>
> Let's mark PMD mappings of the huge zero folio similarly as special, so we
> can avoid the manual check for the huge zero folio with
> CONFIG_ARCH_HAS_PTE_SPECIAL next, and only perform the check on
> !CONFIG_ARCH_HAS_PTE_SPECIAL.
>
> In copy_huge_pmd(), where we have a manual pmd_special() check to handle
> PFNMAP, we have to manually rule out the huge zero folio. That code
> needs a serious cleanup, but that's something for another day.
>
> While at it, update the doc regarding the shared zero folios.
>
> No functional change intended: vm_normal_page_pmd() still returns NULL
> when it encounters the huge zero folio.
>
> Reviewed-by: Oscar Salvador <osalvador@suse.de>
> Signed-off-by: David Hildenbrand <david@redhat.com>

I R-b this before, and Wei did also, did you drop because of changes?

Anyway, apart from query about GUP-fast above, this LGTM so:

Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>

> ---
>  mm/huge_memory.c |  8 ++++++--
>  mm/memory.c      | 15 ++++++++++-----
>  2 files changed, 16 insertions(+), 7 deletions(-)
>
> diff --git a/mm/huge_memory.c b/mm/huge_memory.c
> index ec89e0607424e..58bac83e7fa31 100644
> --- a/mm/huge_memory.c
> +++ b/mm/huge_memory.c
> @@ -1309,6 +1309,7 @@ static void set_huge_zero_folio(pgtable_t pgtable, struct mm_struct *mm,
>  {
>  	pmd_t entry;
>  	entry = folio_mk_pmd(zero_folio, vma->vm_page_prot);
> +	entry = pmd_mkspecial(entry);
>  	pgtable_trans_huge_deposit(mm, pmd, pgtable);
>  	set_pmd_at(mm, haddr, pmd, entry);
>  	mm_inc_nr_ptes(mm);
> @@ -1418,7 +1419,9 @@ static vm_fault_t insert_pmd(struct vm_area_struct *vma, unsigned long addr,
>  	if (fop.is_folio) {
>  		entry = folio_mk_pmd(fop.folio, vma->vm_page_prot);
>
> -		if (!is_huge_zero_folio(fop.folio)) {
> +		if (is_huge_zero_folio(fop.folio)) {
> +			entry = pmd_mkspecial(entry);
> +		} else {
>  			folio_get(fop.folio);
>  			folio_add_file_rmap_pmd(fop.folio, &fop.folio->page, vma);
>  			add_mm_counter(mm, mm_counter_file(fop.folio), HPAGE_PMD_NR);
> @@ -1643,7 +1646,8 @@ int copy_huge_pmd(struct mm_struct *dst_mm, struct mm_struct *src_mm,
>  	int ret = -ENOMEM;
>
>  	pmd = pmdp_get_lockless(src_pmd);
> -	if (unlikely(pmd_present(pmd) && pmd_special(pmd))) {
> +	if (unlikely(pmd_present(pmd) && pmd_special(pmd) &&
> +		     !is_huge_zero_pmd(pmd))) {

OK yeah this is new I see from cover letter + ranged-diff.

Yeah this is important actually wow, as otherwise the is_huge_zero_pmd()
branch will not be executed.

Good spot!

>  		dst_ptl = pmd_lock(dst_mm, dst_pmd);
>  		src_ptl = pmd_lockptr(src_mm, src_pmd);
>  		spin_lock_nested(src_ptl, SINGLE_DEPTH_NESTING);
> diff --git a/mm/memory.c b/mm/memory.c
> index 0ba4f6b718471..626caedce35e0 100644
> --- a/mm/memory.c
> +++ b/mm/memory.c
> @@ -555,7 +555,14 @@ static void print_bad_pte(struct vm_area_struct *vma, unsigned long addr,
>   *
>   * "Special" mappings do not wish to be associated with a "struct page" (either
>   * it doesn't exist, or it exists but they don't want to touch it). In this
> - * case, NULL is returned here. "Normal" mappings do have a struct page.
> + * case, NULL is returned here. "Normal" mappings do have a struct page and
> + * are ordinarily refcounted.
> + *
> + * Page mappings of the shared zero folios are always considered "special", as
> + * they are not ordinarily refcounted: neither the refcount nor the mapcount
> + * of these folios is adjusted when mapping them into user page tables.
> + * Selected page table walkers (such as GUP) can still identify mappings of the
> + * shared zero folios and work with the underlying "struct page".

Thanks for this.

>   *
>   * There are 2 broad cases. Firstly, an architecture may define a pte_special()
>   * pte bit, in which case this function is trivial. Secondly, an architecture
> @@ -585,9 +592,8 @@ static void print_bad_pte(struct vm_area_struct *vma, unsigned long addr,
>   *
>   * VM_MIXEDMAP mappings can likewise contain memory with or without "struct
>   * page" backing, however the difference is that _all_ pages with a struct
> - * page (that is, those where pfn_valid is true) are refcounted and considered
> - * normal pages by the VM. The only exception are zeropages, which are
> - * *never* refcounted.
> + * page (that is, those where pfn_valid is true, except the shared zero
> + * folios) are refcounted and considered normal pages by the VM.
>   *
>   * The disadvantage is that pages are refcounted (which can be slower and
>   * simply not an option for some PFNMAP users). The advantage is that we
> @@ -667,7 +673,6 @@ struct page *vm_normal_page_pmd(struct vm_area_struct *vma, unsigned long addr,
>  {
>  	unsigned long pfn = pmd_pfn(pmd);
>
> -	/* Currently it's only used for huge pfnmaps */
>  	if (unlikely(pmd_special(pmd)))
>  		return NULL;
>
> --
> 2.50.1
>


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 18:23:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 18:23:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079012.1440000 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulteE-0006OA-8x; Tue, 12 Aug 2025 18:22:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079012.1440000; Tue, 12 Aug 2025 18:22: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 1ulteE-0006O3-5y; Tue, 12 Aug 2025 18:22:58 +0000
Received: by outflank-mailman (input) for mailman id 1079012;
 Tue, 12 Aug 2025 18:22:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=clj1=2Y=contentwise.tech=evgeny@srs-se1.protection.inumbo.net>)
 id 1ulteC-0006Nx-Ht
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 18:22:56 +0000
Received: from mailrelay-egress1.pub.mailoutpod3-cph3.one.com
 (mailrelay-egress1.pub.mailoutpod3-cph3.one.com [2a02:2350:5:420::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5a96ad22-77a9-11f0-a327-13f23c93f187;
 Tue, 12 Aug 2025 20:22:50 +0200 (CEST)
Received: from [192.168.0.129] (unknown [178.237.248.31])
 by mailrelay6.pub.mailoutpod2-cph3.one.com (Halon) with ESMTPSA
 id 4f557671-77a9-11f0-8322-494313b7f784;
 Tue, 12 Aug 2025 18:22:49 +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>
X-Inumbo-ID: 5a96ad22-77a9-11f0-a327-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1755022969; x=1755627769;
	d=contentwise.tech; s=rsa1;
	h=content-transfer-encoding:content-type:in-reply-to:from:references:cc:to:
	 subject:mime-version:date:message-id:from;
	bh=o18mX66fv7m2/x+9NXZNaApWJUfSc50tE6cdv2xwR5k=;
	b=RRkEX9NN/NANJbheaJfK3OQHdtl/8QkwMEHr8yyXlMnkVGpJi1j3Vkl7PEOdtsYweGEpZ6ay8gE71
	 7KbmFkatVntQgi6yLiSkeZJEGXCLFPu63YXzkUaVgQ5KWBBVNpFGVq3rID/9trBTEmBIB1MNRa+I/L
	 n0ns1v2tMT03FQ4VGgi+vyOXiizhSgAdvIaEx7Jw81T64itL6P8fEakF8sPlkxepvWUATqkeoXqa8n
	 Kh63R/vIaM8MHvckToANC+eO2aJsLNgrIDV+LctPg0/f1iotzSPmjYzalTPQapPdNm44N+zMmPb1p1
	 F3YT/I9qkRe2/PFIvIkrolnyZprFJ6g==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; t=1755022969; x=1755627769;
	d=contentwise.tech; s=ed1;
	h=content-transfer-encoding:content-type:in-reply-to:from:references:cc:to:
	 subject:mime-version:date:message-id:from;
	bh=o18mX66fv7m2/x+9NXZNaApWJUfSc50tE6cdv2xwR5k=;
	b=LqYCT8a0gAbFVPaf2J4oCKMz+8bMFOH0Qu2igMtufhJmNEWoFws1qwIMxBM6rxS/NowRfDZItHWUI
	 xvCElabDA==
X-HalOne-ID: 4f557671-77a9-11f0-8322-494313b7f784
Message-ID: <28a1e017-f2c1-48ad-9174-c4184524b62d@contentwise.tech>
Date: Tue, 12 Aug 2025 21:22:31 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] BCM2711 reboot fix
To: Julien Grall <julien@xen.org>
Cc: xen-devel@lists.xenproject.org,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, miro@contentwise.tech
References: <1754252178882.7.40484@webmail-backend-production-957f95bc8-4zxxx>
 <f9ac14d5-2b8c-4983-b171-789e2fa196c8@xen.org>
Content-Language: en-US
From: Evgeny Beysembaev <evgeny@contentwise.tech>
In-Reply-To: <f9ac14d5-2b8c-4983-b171-789e2fa196c8@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Sorry, this is quite a rare experience for me. I'll prepare a new 
submission in a separate thread. Thanks

Evgeny

On 12.08.2025 01:22, Julien Grall wrote:
> Hi Evgeny,
>
> (Top-posting because this is related to the process)
>
> Thank you for sending a new version of the patch. I am having trouble 
> to apply this patch properly using "b4". It seems to add more content 
> in the git log. E.g.:
>
> Â Â Â  Message-ID: 
> <0057d145ddd90c01922636205484088c02a0e45a.1748380800.git.megabotva@gmail.com>
> Â Â Â  From: Evgeny Beysembaev <evgeny@contentwise.tech>
> Â Â Â  Date: Tue, 27 May 2025 13:48:31 +0200
> Â Â Â  Subject: [PATCH] BCM2711 reboot fix
>
> Looking at the content of the e-mail in more details, I see you posted 
> the new version as a reply to the previous patch. So it contains some
> part of the previous answer. Patches submission should be on their own 
> email (ideally in a new thread) with the subject contain the tag 
> [PATCH v<N>] where <N> is the revision ID (in your case it should be 
> two).
>
>
> On 03/08/2025 21:16, Evgeny Beysembaev wrote:
>> According to the commit b334c1afad17 ("ARM: dts: bcm2711: Use proper 
>> compatible in PM/Watchdog node")
>> in Linux kernel, the `compatible` string for the watchdog peripheral 
>> in the DTS has been modified from
>> `brcm,bcm2835-pm` to `brcm,bcm2711-pm`, which caused 
>> `rpi4_map_watchdog()` function to fail,
>> leading to inability to reboot the system under Xen hypervisor.
>
> On my e-mail client, the lines will be wrapped. But when applied, you 
> have some lines well over 72 characters. Please re-wrapped the commit 
> message.
>
> For more details how to submit a patch, I would suggest to read:
>
> https://wiki.xenproject.org/wiki/Submitting_Xen_Project_Patches
>
> Patch diff itself looks good to me.
>
> Cheers,
>



From xen-devel-bounces@lists.xenproject.org Tue Aug 12 18:24:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 18:24:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079022.1440009 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ultg4-0006u3-Jz; Tue, 12 Aug 2025 18:24:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079022.1440009; Tue, 12 Aug 2025 18:24:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ultg4-0006tw-HG; Tue, 12 Aug 2025 18:24:52 +0000
Received: by outflank-mailman (input) for mailman id 1079022;
 Tue, 12 Aug 2025 18:24:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=CWaV=2Y=oracle.com=lorenzo.stoakes@srs-se1.protection.inumbo.net>)
 id 1ultg3-0006tq-8f
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 18:24:51 +0000
Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com
 [205.220.177.32]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a126a069-77a9-11f0-a328-13f23c93f187;
 Tue, 12 Aug 2025 20:24:49 +0200 (CEST)
Received: from pps.filterd (m0246632.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57CDBvu2025249;
 Tue, 12 Aug 2025 18:24:06 GMT
Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com
 (phxpaimrmta03.appoci.oracle.com [138.1.37.129])
 by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 48dwxv5akn-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 12 Aug 2025 18:24:06 +0000 (GMT)
Received: from pps.filterd
 (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1])
 by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2)
 with ESMTP id 57CGxwm1016843; Tue, 12 Aug 2025 18:24:05 GMT
Received: from nam11-dm6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on2071.outbound.protection.outlook.com [40.107.223.71])
 by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id
 48dvsab3ay-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 12 Aug 2025 18:24:05 +0000
Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16)
 by DS7PR10MB7249.namprd10.prod.outlook.com (2603:10b6:8:e6::6) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9009.21; Tue, 12 Aug 2025 18:24:00 +0000
Received: from DM4PR10MB8218.namprd10.prod.outlook.com
 ([fe80::2650:55cf:2816:5f2]) by DM4PR10MB8218.namprd10.prod.outlook.com
 ([fe80::2650:55cf:2816:5f2%5]) with mapi id 15.20.9031.012; Tue, 12 Aug 2025
 18:24: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>
X-Inumbo-ID: a126a069-77a9-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=corp-2025-04-25; bh=LRLxh63bBpzk+B+TYK
	/JgGtG2o83hREbhoS4E4Ugrik=; b=K4fSHc0qimiaggU/yaCtclUOAdFPQfpHFs
	8aQ0v1pS6T8PY5V03/UqiSIGfbYTAzy2sPZ222v2++LBwbpPApDdg+/NXZmgbOQ+
	zwTi0rXq6uvL/et4sObF2YnVhPWmEMjKEMEt8lM6zaUMbF8gi9xadnAzPWV1Yie9
	SRtJ3akPsgRQq6NbSubGY+qEgjUtcP6C665IL24JcbixyLwF3IuyOIlJpNC4NYuS
	6s8ryI079I53cGHkhwB9TgR/aNCOc5+pPhhi3z/cv38QIlNnZpP5EEfzYPC8hBE1
	BixlV6Kn+FZUF3KuFnSR/omzWvFeROjGECugrgHYjh/JxutZa2zQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ajWpR5tczdoncEyONrQrBQ44qhE+eME6AD6g8CTDUyxw1yJKZ1TEY2pjds+3SqApxkkSME4ELj20POYz3oRfuIlASGEjAiIIVa14QwqfIwWnTi+mVf49CDNF+G2Yu1w+8zWz5rJlA6Fz+NKnD+Di+NCDMEO4Fw/vtpYjXRCTmLVPQ5Pp+TG4NoUurmNXVuM33YviB3VLWBwo037oG6S7nwX59LyLe/TyhgxVV2bMt4tqF32KGXXYp4I8Fd2pgO3pJN1phbTON+hlnEsqzwKgCyGGMXTD9NLH5ksuPMz2OOxAqlNS00qmE71b1J57ooRqNQeZV0WREfEHFsJ6WdTBsQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LRLxh63bBpzk+B+TYK/JgGtG2o83hREbhoS4E4Ugrik=;
 b=mBK+J/LhGN3JUprtlADJT4PElwMAHXg4IvGl0lcTi/8D7JvPhLNm4tqRdoR9fCuerY1r8uDPC3q1ZWzO3loNf4Ig1rIWifwY15u6ozeWbzN0Jq8skOrLiuAg9oQVXKpStAUSmnoCLw+wYwWw3ipbk2n4f2zo4nDBGLGhe1bqjRXNvoXh8ohQ85YBS55EZr93L3K3YgA6/xydDVVkR9s/Z8XVHSM2DINlPZVRZQg/R7V7r4NYe/+mlfCVfkPshBoP4up4OXDOywP8+2i6quOy4DJAwMZ+ee96D48iUx3ygQF6m5r6wGG07NebluUTlFGV1ZOZIiLoaa1bfmpLAhGYPA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=LRLxh63bBpzk+B+TYK/JgGtG2o83hREbhoS4E4Ugrik=;
 b=OX2Nv8/ZsxSPbQWQpYI6oHjy5BwUCt6OX6uRENPxaFZVtBNVuGX54neSsYk6uSpTtrNJDeAu10R7ZlHzPPAK5n7bB+bEX8oOKHmsHnhqXszN5f1ZKvEOMKA5XI1Y5PrcRfwGuDgkYZ8W4+a9aMTbNh/ZEkIht1JSB+EhfK6Bczo=
Date: Tue, 12 Aug 2025 19:23:48 +0100
From: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
To: David Hildenbrand <david@redhat.com>
Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org,
        xen-devel@lists.xenproject.org, linux-fsdevel@vger.kernel.org,
        nvdimm@lists.linux.dev, linuxppc-dev@lists.ozlabs.org,
        Andrew Morton <akpm@linux-foundation.org>,
        Madhavan Srinivasan <maddy@linux.ibm.com>,
        Michael Ellerman <mpe@ellerman.id.au>,
        Nicholas Piggin <npiggin@gmail.com>,
        Christophe Leroy <christophe.leroy@csgroup.eu>,
        Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Dan Williams <dan.j.williams@intel.com>,
        Matthew Wilcox <willy@infradead.org>, Jan Kara <jack@suse.cz>,
        Alexander Viro <viro@zeniv.linux.org.uk>,
        Christian Brauner <brauner@kernel.org>,
        "Liam R. Howlett" <Liam.Howlett@oracle.com>,
        Vlastimil Babka <vbabka@suse.cz>, Mike Rapoport <rppt@kernel.org>,
        Suren Baghdasaryan <surenb@google.com>, Michal Hocko <mhocko@suse.com>,
        Zi Yan <ziy@nvidia.com>, Baolin Wang <baolin.wang@linux.alibaba.com>,
        Nico Pache <npache@redhat.com>, Ryan Roberts <ryan.roberts@arm.com>,
        Dev Jain <dev.jain@arm.com>, Barry Song <baohua@kernel.org>,
        Jann Horn <jannh@google.com>, Pedro Falcato <pfalcato@suse.de>,
        Hugh Dickins <hughd@google.com>, Oscar Salvador <osalvador@suse.de>,
        Lance Yang <lance.yang@linux.dev>
Subject: Re: [PATCH v3 06/11] powerpc/ptdump: rename "struct pgtable_level"
 to "struct ptdump_pglevel"
Message-ID: <dac9e243-33ce-4203-a598-2877cf908cad@lucifer.local>
References: <20250811112631.759341-1-david@redhat.com>
 <20250811112631.759341-7-david@redhat.com>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250811112631.759341-7-david@redhat.com>
X-ClientProxiedBy: GV3PEPF00007A80.SWEP280.PROD.OUTLOOK.COM
 (2603:10a6:158:401::60f) To DM4PR10MB8218.namprd10.prod.outlook.com
 (2603:10b6:8:1cc::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DM4PR10MB8218:EE_|DS7PR10MB7249:EE_
X-MS-Office365-Filtering-Correlation-Id: 4f9f9807-9621-43cc-0907-08ddd9cd68bc
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|7416014|366016|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?vDB+SkGXrTZafoZFfsx2CSVMCoyvmMVWIBqf5qV4Wj64Z1XJmU/vHBV/4UPg?=
 =?us-ascii?Q?4gUsNWkRDQaT5roHXTdIjTyOpCkShpLpUeqM7BlRKMggEgx2Y1I86RH0N1JA?=
 =?us-ascii?Q?Lbv5CdSHyENHxW0PnUUWUS1KXFj3D3rtLHb0TWidE93Sup1dORUdEsQBztUj?=
 =?us-ascii?Q?Pm1oz51tmFqD4IAEcpueedc8FQzaail2rcfTq3wWJsnHL0nYzZWt3MFkVlq8?=
 =?us-ascii?Q?rrZtR03WEKaOtD0EP9MvAzvz7iSm3aGxPUNFTjAhVnV3IBA7zeOR8jlssqa8?=
 =?us-ascii?Q?chv6A4wbUF+9yU32KIgrKN6bqTeEw0NmFWBgd7FzaalSPD/czFtotDY/KyeW?=
 =?us-ascii?Q?Vhwj/bbYRD7h3d/Nm9ZR7XjWUH631aWJW8+Ot5nrQp3VQZDNh+++inDGW+0Q?=
 =?us-ascii?Q?d3jpo2ysmYWbypABPPeKBf+MzYWUpDTrteKqB4Dzfvk+Sijp+DBzZlP9waop?=
 =?us-ascii?Q?TeQ+HUwRGwT/rlofi63eiEXmHuYetxOmppoJrA1wk8jDFw5ldnHntm6LgOqY?=
 =?us-ascii?Q?j5WHIo+zmGIPeArT9SxErKG3oCXEkG1l1CUOVrxysLA4aJzSDsiMFggCEB6k?=
 =?us-ascii?Q?tp1YbrfEzFBHpotNHxxIg1WsLLP5RmHFoiJHomKiglZE9vYyI80ENX9PGNdW?=
 =?us-ascii?Q?twK2+gbmPwa/Wm5aZzQ1Xax9AgeLjqF78XFXiWXus3P60eu5ZyEJiWgcVanK?=
 =?us-ascii?Q?0DeeoWcassm0daFmBn3rb8FxXOiSciLux5s0+nKYqmNGJ6ds8JXyO/rjDKzY?=
 =?us-ascii?Q?MIEZrgkmByHfCFFVjVxWr8ll2ptKAoZDpqelp1tgVWwUp9atp7xwfmXRu6zQ?=
 =?us-ascii?Q?+Swd4f2dPsXVLA2KyqbiXhODfQLoBcEgZ4YJoZDTiOayGQI4jPoE/0AFtrV4?=
 =?us-ascii?Q?lXoQuO21qSiFTKr/AX/NMx7wKvr1VidCtBYMO/GCppR6AJ+t97XjD5u8pAru?=
 =?us-ascii?Q?epRdSF0lhZFxAU6MAl/Nmf4oQC1AU2bN7dYZXw6N6TkU+8pQ+5OM5SdLzwLl?=
 =?us-ascii?Q?UOvGu8qyTLuh3O8O+5CwcHHCy0SlX6Y7dfSwCDwPbuTYHeZR9gxIiQz8eQjl?=
 =?us-ascii?Q?WT78zGXWSck3WKrq2V5UeCgvbIryy8LGkRCm2VvIMxsyukvH5xeRczlctXNp?=
 =?us-ascii?Q?G04bDnWMYOrrMUoIpGkRSprZ/tB2zmNGB0pUy4hY9NS1blJOdNa4EiwTwMLw?=
 =?us-ascii?Q?I0i/9vob85MDdvp7B/TAY6JZ/83OlveowjyxZV44AeG4QEt+YkPKa6w5/rpW?=
 =?us-ascii?Q?t96FcsMlww5GS3GQdYodOfsU2MWPG5V87Ly2+46olvGNiWm82cAyk5Oav4ef?=
 =?us-ascii?Q?23dwb9oNzzeQRVzz87ec9eKBm16Q4rC5wzkbq8vd4tXk0CxUXE0REXDN9Lps?=
 =?us-ascii?Q?cD65UaG1fkQWzKX4w5y7W7pp3Pj97ZSL3hlzs9LkIJXRAYBYJg=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR10MB8218.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(7416014)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?22ZHMobURTzeEFnzYehUgtoBDEGqaA2jlNm66Q64gnguinaRJgqtJ5tB2fQv?=
 =?us-ascii?Q?dHTsF07z+5iRn6Z9awKtZeqF9wXsWJNTGTz6m4Wh4Bho4Wnr55zNSRb4c2qD?=
 =?us-ascii?Q?UeKWPORLWrjZKJfQxZQB4QIM2soj3qLaRc8vYbTwqIcSz5swZNXeengZ6STp?=
 =?us-ascii?Q?+1NE6LGGrHKjTKe+V6S9P8TiWovvGpJ3JFpvtHAkDoZfMViEaNZnia19PrhP?=
 =?us-ascii?Q?SOD5tp+V1oXcTEWt1SLEK+f9exgciMETtmgBSm/m6scmm7kQEBQg4sseckjb?=
 =?us-ascii?Q?rqFvLjYVrof68LUKR4h6u+6QSpsbW4QdLmI/84/QMKOsuYmqajkCz9An6Wi7?=
 =?us-ascii?Q?/2xrTfKoXGmqtABojjNNP/DT96HPFjXmWULempSCMq+X0d8oeoILJfi8Sa4r?=
 =?us-ascii?Q?/0wDNPnYo/FWEXWdQ+fixfdd0kU6ElSQTTLXgN2uWW5e+5muMjr4l91S9xWP?=
 =?us-ascii?Q?z+iDS/Lg8Qwz4kYgQFbaBH6qUPEtQ/LhwPYC82ufaT3hf6xLa35UfG+Z77rf?=
 =?us-ascii?Q?jfGBQ53oBoe18dj5RJl+qmeewx6wwEknluU+Ni2k7yOkf6RoScM/jf+gvWE0?=
 =?us-ascii?Q?QYReiHNGuUmOVPQIwZ2XBCXGpI2VZTvAIRJYTx7q8Hd/dRixdXFnqsLwOcjc?=
 =?us-ascii?Q?iWqnPKit3xJuSNA26ifSVn0uIkPV0SCsJLe4A3VctTs3yrMKBVPjkD8tTGgl?=
 =?us-ascii?Q?5qkyoHQyNks16QeGL7vtJisfDgEYnGzRrjHrtpb0b2K77fxbxwWS+vOazj1G?=
 =?us-ascii?Q?SFKjrvz272cfldWVogRPVSa7bLFW2i0RZEGzy4YK8CG0B28km18UkHPwmSBK?=
 =?us-ascii?Q?KXqfuUe+MVI8NCih+N8HzT7HQjbmiAs8hmSSWARiYFA1WkJcUP+leKIXLR/n?=
 =?us-ascii?Q?nw1pXbUfsZl66wWsBT+PJQlYxwBKNpsMO/78MupcgELLQt8zcfiRA73uF01S?=
 =?us-ascii?Q?p+RVO0qiEnc4tM6e7uVpeNOceUDX+Q+gUWQeBrWF6A6Jtmc/AN5vIc6nBHvd?=
 =?us-ascii?Q?Cp2vlcnBHpbs3eINLFCJ4RDzfAlLQiSXJb7aCpjpHkijdxkWj6UnHzryPMMo?=
 =?us-ascii?Q?e6EoRLIg0GFtfphNwczJG0HBv9bCqvyGHJ7zJFKNoSXF0j7G35/S1iVHlfQA?=
 =?us-ascii?Q?rVdqtLWu9Jqc4TJUwc4mB3dXhskk7zVqAvLju3wqpz8xmVJOhZmF3NQ2Dzuw?=
 =?us-ascii?Q?XTSTmBCn2rcwGCSiIW40Z2watRdCoaYaPd/kZ3lcpUIsReKEUBcsjin0dXpT?=
 =?us-ascii?Q?B6ORjmMsSE1a2YYtdTjBiCuaFHAEOdQ3YcdC+zOQOOS1JeQLHkyH23kVW2vb?=
 =?us-ascii?Q?OY+DsFA5/Dm8xUHK4dlaTHn2FPrpIy5FyBHHuGlLFHROSQy030FA28siEUqA?=
 =?us-ascii?Q?j7Eu2yIqza48yq1G1kj3oF1WJbow+KOEmEcIoSHjTmWNuAOk3Js8Iribiy6Z?=
 =?us-ascii?Q?YrTDhLT1HtXiWx3W5Wt6SIGtUEMSR0nkdS3FEk+H23eHNbC61POIbFjAEV8v?=
 =?us-ascii?Q?N5YWFYChyo39EQlAz7wdfSJ9J7VoWQ7CbVV+F5NqleWcVE1WTwMkK54O0Uzs?=
 =?us-ascii?Q?eQ4jJBOW+LPvFUwoiWmeTDl6Kn2sMOewAKfZHSManURyjIGPDVjIbCBB49jM?=
 =?us-ascii?Q?aQ=3D=3D?=
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	cuEJNIOpKjUh9Sls7LmUCskXgpg82JRnXZQGy1H/UL0GYVdDtDqE7I2/f/Esfnmo5pDY2GH9RrSa/WqvMSsUYL47vrE5JB6b0LQVDMgZ289Sn3mLQfvmD2MdWCom1+1CmMpIfqZLExw57HK7KvUQ/KXIya0p38Fq6lf3SoQOxtK9Hgb/qWTCrh9yq8gyw97RfvwS+P24xHLBuOvhg1cfEP/+sqNjb61C24f5WBIDt7Oejc5ZVRf4v6aXd4LOLBM+e0sP0HuMjLDgmfmOjEnYeX7JR06Cjgsmry92R9+2OcV2ff2UF1uMsAOuZriXmYbtscCoON+G969cgTHjvTGwrM40wSy3dVwwIsOp/9pZCyLW6qOUIrbv2bT0k9VocF90xsfOpmIBJ8njr76LwvzJwLVs6tCf39Sa3/3pbAwliGOuEgc72Ojb5BSxxri9acb7MvIAw2RLqdjGxJXwsjNqKWaheDVydNvxSpHp1qn3SNk3EF84zSMrplvPFYh7lvbwzzHEFCQkaWjs/gn9UXL7XLXRxj7MSreUiIa8J8OVuTnkOqcEOM6pRrXJljkP8IU3o3bxozFy8H7ek7ICqe53s8wp2lWJ9azwe23EAAEAzd0=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4f9f9807-9621-43cc-0907-08ddd9cd68bc
X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Aug 2025 18:24:00.5882
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: FZQMqnGVHqsdI1E079UPzJ2u9IwwyI/lub+hrFQUEHhsGPvcgRW5PnoKeNpKdu7xQgaG73glvJ8jGSIeATjF0nMhRDP+i618E1tuwiT9MpQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB7249
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40
 definitions=2025-08-12_07,2025-08-11_01,2025-03-28_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 malwarescore=0 bulkscore=0
 phishscore=0 suspectscore=0 mlxlogscore=999 adultscore=0 spamscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2507300000
 definitions=main-2508120177
X-Proofpoint-GUID: yppH4tVsUMrU8p5iTXvB9LDwMhp_GxgJ
X-Proofpoint-ORIG-GUID: yppH4tVsUMrU8p5iTXvB9LDwMhp_GxgJ
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODEyMDE3NiBTYWx0ZWRfX3vwbZRkX+sU2
 P/bVyDoQYK53iCx4J5YixzYbgTt8ldp4a6matWXs6uwBD1rIkFlz7KknACebt49yx1EonIZL990
 ALdzY3wOuChnoGtYscaEAOojd85TqlMfq4QEvmoY51xyQbMSRyKWxTo9MubxGrG8Ooj2g7sRuEf
 +dBr1sQfkvltpy1GWT9fRYHqoq9kS0wIQXJ5TzL6Ey9CseLxw02gYofTrqBkWXNVCP76vBSsmYp
 Oa6VlEEDtT/APuXySYbJs47i4zu6vf4vosDUIf+T2Wrtf4MABPk/r02ixd5pRTzzOdKBQTN7fCT
 aaNE7Rs2WxmshUABcwN8Y6Xxj4q8W23u5aMpX6P4N9N6e4IyFd5mSTQ8OiTBZAaTsc1l62YTLue
 DvCpKYIhippkq8qcGrg7QHZWBheF+gUvbT/OZquw9Ao6hYyHDs4LhZ65FJHPZ/vk0M0+u4my
X-Authority-Analysis: v=2.4 cv=KJZaDEFo c=1 sm=1 tr=0 ts=689b86c6 b=1 cx=c_pps
 a=WeWmnZmh0fydH62SvGsd2A==:117 a=WeWmnZmh0fydH62SvGsd2A==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19
 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19
 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=kj9zAlcOel0A:10
 a=2OwXVqhp2XgA:10 a=GoEa3M9JfhUA:10 a=20KFwNOVAAAA:8 a=yPCof4ZbAAAA:8
 a=gQUxPf2MvKgvhwLpCeUA:9 a=CjuIK1q_8ugA:10

On Mon, Aug 11, 2025 at 01:26:26PM +0200, David Hildenbrand wrote:
> We want to make use of "pgtable_level" for an enum in core-mm. Other
> architectures seem to call "struct pgtable_level" either:
> * "struct pg_level" when not exposed in a header (riscv, arm)
> * "struct ptdump_pg_level" when expose in a header (arm64)
>
> So let's follow what arm64 does.
>
> Signed-off-by: David Hildenbrand <david@redhat.com>

This LGTM, but I'm super confused what these are for, they don't seem to be
used anywhere? Maybe I'm missing some macro madness, but it seems like dead
code anyway?

Anyway:

Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>

> ---
>  arch/powerpc/mm/ptdump/8xx.c      | 2 +-
>  arch/powerpc/mm/ptdump/book3s64.c | 2 +-
>  arch/powerpc/mm/ptdump/ptdump.h   | 4 ++--
>  arch/powerpc/mm/ptdump/shared.c   | 2 +-
>  4 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/arch/powerpc/mm/ptdump/8xx.c b/arch/powerpc/mm/ptdump/8xx.c
> index b5c79b11ea3c2..4ca9cf7a90c9e 100644
> --- a/arch/powerpc/mm/ptdump/8xx.c
> +++ b/arch/powerpc/mm/ptdump/8xx.c
> @@ -69,7 +69,7 @@ static const struct flag_info flag_array[] = {
>  	}
>  };
>
> -struct pgtable_level pg_level[5] = {
> +struct ptdump_pg_level pg_level[5] = {
>  	{ /* pgd */
>  		.flag	= flag_array,
>  		.num	= ARRAY_SIZE(flag_array),
> diff --git a/arch/powerpc/mm/ptdump/book3s64.c b/arch/powerpc/mm/ptdump/book3s64.c
> index 5ad92d9dc5d10..6b2da9241d4c4 100644
> --- a/arch/powerpc/mm/ptdump/book3s64.c
> +++ b/arch/powerpc/mm/ptdump/book3s64.c
> @@ -102,7 +102,7 @@ static const struct flag_info flag_array[] = {
>  	}
>  };
>
> -struct pgtable_level pg_level[5] = {
> +struct ptdump_pg_level pg_level[5] = {
>  	{ /* pgd */
>  		.flag	= flag_array,
>  		.num	= ARRAY_SIZE(flag_array),
> diff --git a/arch/powerpc/mm/ptdump/ptdump.h b/arch/powerpc/mm/ptdump/ptdump.h
> index 154efae96ae09..4232aa4b57eae 100644
> --- a/arch/powerpc/mm/ptdump/ptdump.h
> +++ b/arch/powerpc/mm/ptdump/ptdump.h
> @@ -11,12 +11,12 @@ struct flag_info {
>  	int		shift;
>  };
>
> -struct pgtable_level {
> +struct ptdump_pg_level {
>  	const struct flag_info *flag;
>  	size_t num;
>  	u64 mask;
>  };
>
> -extern struct pgtable_level pg_level[5];
> +extern struct ptdump_pg_level pg_level[5];
>
>  void pt_dump_size(struct seq_file *m, unsigned long delta);
> diff --git a/arch/powerpc/mm/ptdump/shared.c b/arch/powerpc/mm/ptdump/shared.c
> index 39c30c62b7ea7..58998960eb9a4 100644
> --- a/arch/powerpc/mm/ptdump/shared.c
> +++ b/arch/powerpc/mm/ptdump/shared.c
> @@ -67,7 +67,7 @@ static const struct flag_info flag_array[] = {
>  	}
>  };
>
> -struct pgtable_level pg_level[5] = {
> +struct ptdump_pg_level pg_level[5] = {
>  	{ /* pgd */
>  		.flag	= flag_array,
>  		.num	= ARRAY_SIZE(flag_array),
> --
> 2.50.1
>


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 18:34:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 18:34:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079031.1440020 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ultp5-0000Ic-Fm; Tue, 12 Aug 2025 18:34:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079031.1440020; Tue, 12 Aug 2025 18:34:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ultp5-0000IV-D6; Tue, 12 Aug 2025 18:34:11 +0000
Received: by outflank-mailman (input) for mailman id 1079031;
 Tue, 12 Aug 2025 18:34:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=CWaV=2Y=oracle.com=lorenzo.stoakes@srs-se1.protection.inumbo.net>)
 id 1ultp4-0000IO-Go
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 18:34:10 +0000
Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com
 [205.220.177.32]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id edd9f84b-77aa-11f0-b898-0df219b8e170;
 Tue, 12 Aug 2025 20:34:07 +0200 (CEST)
Received: from pps.filterd (m0246630.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57CDCJ3a003986;
 Tue, 12 Aug 2025 18:33:22 GMT
Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com
 (iadpaimrmta03.appoci.oracle.com [130.35.103.27])
 by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 48dvrfwc1f-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 12 Aug 2025 18:33:21 +0000 (GMT)
Received: from pps.filterd
 (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1])
 by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2)
 with ESMTP id 57CI0BnY038739; Tue, 12 Aug 2025 18:33:21 GMT
Received: from sn4pr2101cu001.outbound.protection.outlook.com
 (mail-southcentralusazon11012064.outbound.protection.outlook.com
 [40.93.195.64])
 by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id
 48dvsgvs5v-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 12 Aug 2025 18:33:20 +0000
Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16)
 by CH0PR10MB7463.namprd10.prod.outlook.com (2603:10b6:610:181::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.22; Tue, 12 Aug
 2025 18:33:17 +0000
Received: from DM4PR10MB8218.namprd10.prod.outlook.com
 ([fe80::2650:55cf:2816:5f2]) by DM4PR10MB8218.namprd10.prod.outlook.com
 ([fe80::2650:55cf:2816:5f2%5]) with mapi id 15.20.9031.012; Tue, 12 Aug 2025
 18:33: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>
X-Inumbo-ID: edd9f84b-77aa-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=corp-2025-04-25; bh=3gcxJ7Z2tmSqKNFv/g
	Et4p907iBlTJJXkhGa7WvVgV4=; b=p4xoVN6K6mC8xOQSoivqfVeMkrCBGTxFnp
	iyiqEQxUKEsIQrMcL4UUXrK2zv6CzPr9OPj7pswN+FA4tavw1+8p2jWkZlrfsfTT
	6anRHXMP3+b39rz6HGQ03l8F/GEoZn6PTOk9h6yx0FYKKRO/RYcaaPIY5Zp+2rLO
	G9ZL9ZznIVFVkpDS0uCc614IyqUjw9P9POlhVM9ZuflP8yi7nxQuFkqw4PvUgZAy
	aJ/Omn8AMwg1zILpTlES5xFncybIMFYnSzy3Sg2Xa2ydpVQRz204u6sDa1K65UGM
	kgcUOeWXon+z005lZaAf0WdV39UJsC7axSiH8s9mCrFgiLAmzP8w==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PwAjE0ZJlYTVzV+9sMVoBizwXREjyMPbeEr9KbmwUx0FpugyfoanpkNMebsrwUOwh2yzKhX3qcTHpT+RWVe98MTdFoBS1GmsIXOWPC/6sMBM3atIursLo4sYkJIHzwjFUgbAjXnwfSIRjC3iiiPbXVDukY+jKiib07e4ilsmNFkUILNlXhyR7i/ZuE7hQ28AT8QQ8o5+qWHq7/UzTfMSqajh/a7q4Lx/2Urs+/+NdJNj8FROulKf933SL6/5P2PU6L40r4P48sOiHYuB/RRVDjTnQEj3J/0Pv9bTiVsbqhLfFpNlbrJn9LviumUtB3yk5xSFlCWaSS4hNCJJxwzhkg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=3gcxJ7Z2tmSqKNFv/gEt4p907iBlTJJXkhGa7WvVgV4=;
 b=wDAcNScA5KNJR7CFi1T7O37PtlRsZXCpHrLzVaLGMEyCiIZ36UD0HHhksbALHrHCKbeUtuZP9HQj1REaQmjUV7TG572B8y7w4EqR2MfVtY7xcmHL3EI/Xcpceu5xM83fy9xR92sfWTywMX9qUm71ZaMMDEqC668w9EHzVD5yrTLMIXVxBljotlhkC1lc2YuqaTQfLvqmD5yEKlc5FABqz9W+jvJB9Ral50NQ+N3MySCHHAaAvTjj/+9oHHRdk4NAiTcrOfcn6hyjUpDU6z/vZWbwKPNu+35EPFvnZvDCvtqxcJocHeKXYJZzFyJLlokOKv0IceLm3avxlVDnL742zA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=3gcxJ7Z2tmSqKNFv/gEt4p907iBlTJJXkhGa7WvVgV4=;
 b=KTCLpyiNcxrldgzmLKjPnmmi/2vQHkxEXq/9gw+qPTQklJjuDI8VQ0kniJHnyiOf6E9c4UTJp18BHPLXyRPPIwAMosNrx5pjD8xW1O9hkvxymrHHtUTKxjSkDyKc9vMbjl4vR5kVaQZPaoI4wVuFuHqe7au0agWIX1bFMuqh9mA=
Date: Tue, 12 Aug 2025 19:33:06 +0100
From: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
To: David Hildenbrand <david@redhat.com>
Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org,
        xen-devel@lists.xenproject.org, linux-fsdevel@vger.kernel.org,
        nvdimm@lists.linux.dev, linuxppc-dev@lists.ozlabs.org,
        Andrew Morton <akpm@linux-foundation.org>,
        Madhavan Srinivasan <maddy@linux.ibm.com>,
        Michael Ellerman <mpe@ellerman.id.au>,
        Nicholas Piggin <npiggin@gmail.com>,
        Christophe Leroy <christophe.leroy@csgroup.eu>,
        Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Dan Williams <dan.j.williams@intel.com>,
        Matthew Wilcox <willy@infradead.org>, Jan Kara <jack@suse.cz>,
        Alexander Viro <viro@zeniv.linux.org.uk>,
        Christian Brauner <brauner@kernel.org>,
        "Liam R. Howlett" <Liam.Howlett@oracle.com>,
        Vlastimil Babka <vbabka@suse.cz>, Mike Rapoport <rppt@kernel.org>,
        Suren Baghdasaryan <surenb@google.com>, Michal Hocko <mhocko@suse.com>,
        Zi Yan <ziy@nvidia.com>, Baolin Wang <baolin.wang@linux.alibaba.com>,
        Nico Pache <npache@redhat.com>, Ryan Roberts <ryan.roberts@arm.com>,
        Dev Jain <dev.jain@arm.com>, Barry Song <baohua@kernel.org>,
        Jann Horn <jannh@google.com>, Pedro Falcato <pfalcato@suse.de>,
        Hugh Dickins <hughd@google.com>, Oscar Salvador <osalvador@suse.de>,
        Lance Yang <lance.yang@linux.dev>
Subject: Re: [PATCH v3 07/11] mm/rmap: convert "enum rmap_level" to "enum
 pgtable_level"
Message-ID: <591fb720-0826-498b-9370-20500242855e@lucifer.local>
References: <20250811112631.759341-1-david@redhat.com>
 <20250811112631.759341-8-david@redhat.com>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250811112631.759341-8-david@redhat.com>
X-ClientProxiedBy: GV2PEPF0000452A.SWEP280.PROD.OUTLOOK.COM
 (2603:10a6:158:401::34f) To DM4PR10MB8218.namprd10.prod.outlook.com
 (2603:10b6:8:1cc::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DM4PR10MB8218:EE_|CH0PR10MB7463:EE_
X-MS-Office365-Filtering-Correlation-Id: b4253f5d-5d68-4b72-fc5f-08ddd9ceb493
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|7416014|366016|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?8zFfm+BiblF4pNY+2SbK9xHMqJXP3e3i9JUcAPGXj777BiUiEz/pNg2cZAdz?=
 =?us-ascii?Q?ZYRA8bR1jklpwBItaZLgW0qGH7GxrIRqExjq07l5xp55jzZqzJSnKAqq05kn?=
 =?us-ascii?Q?GTtw1v9hs7XGsGiPUxCG+z/l25H7Pg2nzOOcOxiVfiH3/NgDZS1unNG4Bb2l?=
 =?us-ascii?Q?CBnANTISc5PtzJKiF2nM3tN0I15TciAjQwOGV8AO+7p8p8xQxsx/2bW5Bnr4?=
 =?us-ascii?Q?26doiHuExoxlLtis8AsH4XD9VftBohvmC3p+5YdP4ehjzTTi4YMJb/7+Hdz9?=
 =?us-ascii?Q?UVWyTBgWeKYgUehR1lLxGVQaYz5nNRWXbY5tY5PkAjsic22fEOVYQdHeHnBl?=
 =?us-ascii?Q?jMsGCAJpdjXonXfkTZ6SI4kXGcHw8BxCVMIsAq45QwZaceOGeO/8VuRhVWMT?=
 =?us-ascii?Q?Rqk5PgkMuzrPCj7H0rBYtvcv0BzusxXOH8EP2yRR5gbzfmii53ZU1KkRBr4N?=
 =?us-ascii?Q?02JlGBybsXRb7/jNj2elF7IzuMGMGhALoyTdR4lwty84tDF6X3Xd8zohdqqF?=
 =?us-ascii?Q?c/7kVvH4UkptDSZNwrmwzxZeeKEG4OclV72hkHk5c0u88qYk8tW2w5rtSBST?=
 =?us-ascii?Q?tfatAxTrUR6hpZF+Aj//Lr5BY/1sYXAXwqtWRPvJYvAa1HbbhBVbfMvsdoh/?=
 =?us-ascii?Q?DVBgaSKVFOCBtret4wYfRidiGFVTHEJMEQt5ihFgsB7LS3LJmYBJVKZMMesa?=
 =?us-ascii?Q?XKfhlYduQ+mkfz5WpcpXYZHEPO46gJHLmrim7QV0e1VnPL/tV82Eh15k0qxN?=
 =?us-ascii?Q?7rfUjqjlheTPX9Unc3Ft4JPHyBdtlRHVC15zJNSMWW8LS/8b/N4ps4fBVP03?=
 =?us-ascii?Q?fE7oOBz74qu/vVOJ0ymzfvDCJ6zlDYeh2EBe6onS6tsiH07+0CfI+QV9wISC?=
 =?us-ascii?Q?iFg3vaS6BuDUXpYqToqY6vswi10Rml2810M30Bobs7voWQ+w9+mfs+uNwl0t?=
 =?us-ascii?Q?Pxc1CoRk72wobN/9nB0Eq7zJIM+PlbLXuoEmirWyG2LKxtXWWOJEOK62A3fe?=
 =?us-ascii?Q?q/AANQRUV1SjNV4PrH7aMNfVy7RGpPeDeWJJfzHixp0ND/VVjSGKMBk/vkbE?=
 =?us-ascii?Q?dDXRzHMgNoEKyofMB7fmJ1k05XsX/2Lioc1ae6BK+fatNQUqcxnB8jc5+4FS?=
 =?us-ascii?Q?fEvMRjVpEjg8NPSLCl0mv7RN2seDaM966yQrFmxxos6wYVh0Lc/B+fBKLF4T?=
 =?us-ascii?Q?1zVLwfdCPuwgOiBZYDBEi3hfoBnzvy7/MeJeeUjkT09xxtAjo4Twl9pp5Gs8?=
 =?us-ascii?Q?vBj37q1oK+Am05Z3Yn1Uoxq3tXKeyAPgzGCcmjFaLZ+5M7CZtl0rfYU15eRy?=
 =?us-ascii?Q?xRoc7eEPxjJzSXoOR8V9REDXUWcjgMBSY8n/NDvM1N/raOVXlGQTb+tN5dB8?=
 =?us-ascii?Q?y4MAymgAt258htdNvOJjSXJnoNugILKYAGAWDRBOHaSWIislhHG7GPmYvNHu?=
 =?us-ascii?Q?MTYbpqA/MnU=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR10MB8218.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(7416014)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?aLyQtl7fIqddYKZCIZzWW3zFSbDkYpkJoXP/k738Gc8LH9w4zUAQ+I4kFdTY?=
 =?us-ascii?Q?CuZw/AsbigPGLrXthXaEIiDjS2t2/bjw2vpRTKS5V7zSAyyP1F/CEd321N5S?=
 =?us-ascii?Q?o8ZcMdgZA66ZScYbcW3Cj1F6DrBA9MFReeRLEx411a40vJVPjTX+bRUYVVai?=
 =?us-ascii?Q?kzhRV7RjEOf1J0R/qZy1kfJ3NNvEjwDzRApQGsFMd8NzJXZFRnXHgMpZRXL0?=
 =?us-ascii?Q?uGyz4qgsSEcd7hCgHgEo0eNfFA1aQLfawqxeIcbcNHUiI0wPHycNFJ3yQ900?=
 =?us-ascii?Q?zUI6+rQ9BnqymGpqlAV8d2ZertEaqdyPziGIchHUD8ak30OkHCgtxqUQbZj6?=
 =?us-ascii?Q?1hHfP1DkzX3WK37kFf3VfL12pYOZ+eKQ6WKnR7u9jG/iRwa7Ak/7rfRRSaPZ?=
 =?us-ascii?Q?FJXTc1n/YbQk9Q1qje66EsGE9sZGpQNGNVYJvR+F0jOnyuHyzr1M6ciaUdBv?=
 =?us-ascii?Q?9lt1l5nolAnz5FG/03MLmMF7wUtlztDeGZa9guEZBUjdxPXkp7xMLvscjcI0?=
 =?us-ascii?Q?eYZ4QTUEfbLhv1b6Dkq9NrDEqRsNbToTReZtp/WuHndBCdZJCD5J7/zHTA0g?=
 =?us-ascii?Q?VDuLt2sUfOXtqYU/qE2cBGw8knrawxo9s8VGXHwEZwyLwyC+NfWMtgnuhX4U?=
 =?us-ascii?Q?pLIxka6F4Y18Emw4QUJRQRG7rX3XoKkQw4dcxDOnzHB4+hdNoaDW5DnhwVAf?=
 =?us-ascii?Q?zglmLtXFXtwRfchJ1gkIASz8JY1voN2e6uT3OvCvQtEflxeRjNx+AkluzsAC?=
 =?us-ascii?Q?dyZLmo8Wc7pK6LL39vpxq3K5jiPpC05V7nW8AKT6DuXHxOY0qmIQgzMzq/Ez?=
 =?us-ascii?Q?ZWkdcczmV6YK10donCuk+F3hj1wxFvJE0vyeDTv+X4BL6NVIRrXJRazDpCq8?=
 =?us-ascii?Q?Jdk5mFFM08qj3aVXhRW3Bp09ixR5cn+UZyNoz1BM9EmA8VUSIZEwrdcLelM5?=
 =?us-ascii?Q?qLaZzfpla/kuRksR8DuyxGd7kBLEBjSHJKzYT0qlx3FQyq3cMtZIuJIUJ+tp?=
 =?us-ascii?Q?mZADD8VTtz6A587Q/icmT5U6uagEJac6dTmhOUfcGDKNNhqnYPYQDtjCplML?=
 =?us-ascii?Q?LUh5x0aGN1f47LGp1gBV1SSMz/0zZ8pzisz+i6NKPsBDSBWUD4j4A68+FNkS?=
 =?us-ascii?Q?CPQlQ1RfYtQ5sPywU8LrOA/fHEQCS/vJBCfZadw9cVmA7LATmJcFVlFiYn78?=
 =?us-ascii?Q?IglMA0aszXjB1xd5xIdyyT3ckoy1tLzzkGZ2UDRCn8+kr1W6b+ZiO6BDOP2N?=
 =?us-ascii?Q?Dv0PqsG77bDgidNOf6kvghA0HY7Ez0ike5RocnSOjFyhEZFrUTn+4NF4sHgX?=
 =?us-ascii?Q?6gb6XaLrygKeWJPsbCNUkD3dKL/ZpnrGusqOis/05EQSiHh72W2Lt03yxijS?=
 =?us-ascii?Q?o36f6CneMJGkCV9FnBzMhUV0VDw96lLk7uUgecOHIodS8YHbLXD5AzvetbyV?=
 =?us-ascii?Q?onVkA+rGQWyLiK++BN9fkNepjkER/DPgmFgXnIldx//v+zki7QPjNY26Ozw1?=
 =?us-ascii?Q?bFH+Ia/j0jGeun3hCrdXPHbQYdboBbMdX3y767gGqRaInxdS0yHA35xQuDek?=
 =?us-ascii?Q?mdRE+rsy3DsfP3LSVJsIRNUMozme4KFCrG4tqTngLnK8kMio6TOM5Lzo1km4?=
 =?us-ascii?Q?PA=3D=3D?=
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	Mg39jv9qhTetBFQNR3ePtwEP4fh7jq1w1qwwXZh6oy1Oxq62ztzAZQCcc/0PZFJ+keEXGvPWmeDKE0YHsmNI2MVAsXxDM3sJ1seTFLEBEBR1SbhsQMZCeNJVEtyMDprA/30i2GwkdRX0/alTBjIOpDvLFQQ06OrPsLlZVrnh0Er/2WSZvPRaVQ2FERZ8lQws2+uM3JygWO/Xln88RQFEzGEjSTlL500wS70g722RHfLEQDgy8yU5OtlNfHLs4M8eOLMOfBSLK4G5k0KHOXlCwdXacZTolWgZ+L0+n8chJLJDLCtynN4ju6b8ps1iVvOw1ZaAMeSKjnvEgAUbzlqKhyhVF+Tk7srGJQdBkQxKIIqGKK37ICEpQNAcX89b/R+gdiRkQC1qPoVzlsQZQB7Tqrirzd0zSGVCqVTe9mWTKtyEsl2WsyS2x04O93LsMrFaz1RscFo5UPQoGS6kRCIZGKjm/UILT4Qqy2S5I0ic4wsCibbiRjV1VtR1ZB3BE0dR8Gc1hF8wLYPpIKVClStu5qLOBiIZ7t7PjbniLGLjusOhgR/aL0I9kr6k2oKdN8qqEWEJ4jFrEFuPlZgXRVLpZHR5YLv0jJ+owJFlP3BPlb4=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b4253f5d-5d68-4b72-fc5f-08ddd9ceb493
X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Aug 2025 18:33:17.4450
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: r6KY0I9LS+EtKksmUqWqQJz7Y75oLqVIHgjeeTF1czFy7bVhJ+r7ON/LV9Q1/ql7Fw2EUW5+L9kLsqARVzPPkbIa8SrIAUt7GHdVJRNJvkM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB7463
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40
 definitions=2025-08-12_07,2025-08-11_01,2025-03-28_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 mlxscore=0 phishscore=0
 spamscore=0 suspectscore=0 mlxlogscore=999 adultscore=0 malwarescore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2507300000
 definitions=main-2508120178
X-Authority-Analysis: v=2.4 cv=B/S50PtM c=1 sm=1 tr=0 ts=689b88f1 b=1 cx=c_pps
 a=qoll8+KPOyaMroiJ2sR5sw==:117 a=qoll8+KPOyaMroiJ2sR5sw==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19
 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19
 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=kj9zAlcOel0A:10
 a=2OwXVqhp2XgA:10 a=GoEa3M9JfhUA:10 a=20KFwNOVAAAA:8 a=yPCof4ZbAAAA:8
 a=0PFBOgZE1WxlEsiV2qEA:9 a=CjuIK1q_8ugA:10 cc=ntf awl=host:12070
X-Proofpoint-ORIG-GUID: bgZcvZi0vonzO1P5AjdHkMXTK-4mkVi5
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODEyMDE3NyBTYWx0ZWRfX+bOWrtwkpaUz
 6Wrr+OBL5oeqDorpNJyQZm4IWDPRX5SFr199Z2Kb5R/P19vxXvtQCCBmo+xlYqqIHciouUR/tpZ
 fMf8ASbt9apjM3crYAFoK34+c3emO0ALt52lSnUOUuvpGplFojg82wASZuXcwwvtxD0HBGiSYTj
 pQ3kvN2CsraGBRyJIT40urk/4bCurgepWlOIxvbjTWsGmzgHgotY8ICY3micLK2acBwZktJoOoy
 IG9U6s7IyPJKz5Tir+nBmUUMtdJMntd7cvMd0bO00EIQ5ZqSzu3Njy9rtS9c6MIOv/5WYxHtd9t
 HtTFR+z9eMEyb40iN1KWCFL8KmeAHjJ1V1hJgIuHnk/u7nqwFf6C95c/98uSGwlQ6jvaKj9+Y9Q
 PpaNG1Ce0wpLqBTeZBnucvO8Ph+ce0WK6ImuCt3d18z5Mm5Zajk2pViTrl+l6OZnDzgpNdnW
X-Proofpoint-GUID: bgZcvZi0vonzO1P5AjdHkMXTK-4mkVi5

On Mon, Aug 11, 2025 at 01:26:27PM +0200, David Hildenbrand wrote:
> Let's factor it out, and convert all checks for unsupported levels to
> BUILD_BUG(). The code is written in a way such that force-inlining will
> optimize out the levels.
>
> Signed-off-by: David Hildenbrand <david@redhat.com>

Nice cleanup! This LGTM, so:

Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>

> ---
>  include/linux/pgtable.h |  8 ++++++
>  include/linux/rmap.h    | 60 +++++++++++++++++++----------------------
>  mm/rmap.c               | 56 +++++++++++++++++++++-----------------
>  3 files changed, 66 insertions(+), 58 deletions(-)
>
> diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h
> index 4c035637eeb77..bff5c4241bf2e 100644
> --- a/include/linux/pgtable.h
> +++ b/include/linux/pgtable.h
> @@ -1958,6 +1958,14 @@ static inline bool arch_has_pfn_modify_check(void)
>  /* Page-Table Modification Mask */
>  typedef unsigned int pgtbl_mod_mask;
>
> +enum pgtable_level {
> +	PGTABLE_LEVEL_PTE = 0,
> +	PGTABLE_LEVEL_PMD,
> +	PGTABLE_LEVEL_PUD,
> +	PGTABLE_LEVEL_P4D,
> +	PGTABLE_LEVEL_PGD,
> +};
> +
>  #endif /* !__ASSEMBLY__ */
>
>  #if !defined(MAX_POSSIBLE_PHYSMEM_BITS) && !defined(CONFIG_64BIT)
> diff --git a/include/linux/rmap.h b/include/linux/rmap.h
> index 6cd020eea37a2..9d40d127bdb78 100644
> --- a/include/linux/rmap.h
> +++ b/include/linux/rmap.h
> @@ -394,18 +394,8 @@ typedef int __bitwise rmap_t;
>  /* The anonymous (sub)page is exclusive to a single process. */
>  #define RMAP_EXCLUSIVE		((__force rmap_t)BIT(0))
>
> -/*
> - * Internally, we're using an enum to specify the granularity. We make the
> - * compiler emit specialized code for each granularity.
> - */
> -enum rmap_level {
> -	RMAP_LEVEL_PTE = 0,
> -	RMAP_LEVEL_PMD,
> -	RMAP_LEVEL_PUD,
> -};
> -
>  static inline void __folio_rmap_sanity_checks(const struct folio *folio,
> -		const struct page *page, int nr_pages, enum rmap_level level)
> +		const struct page *page, int nr_pages, enum pgtable_level level)
>  {
>  	/* hugetlb folios are handled separately. */
>  	VM_WARN_ON_FOLIO(folio_test_hugetlb(folio), folio);
> @@ -427,18 +417,18 @@ static inline void __folio_rmap_sanity_checks(const struct folio *folio,
>  	VM_WARN_ON_FOLIO(page_folio(page + nr_pages - 1) != folio, folio);
>
>  	switch (level) {
> -	case RMAP_LEVEL_PTE:
> +	case PGTABLE_LEVEL_PTE:
>  		break;
> -	case RMAP_LEVEL_PMD:
> +	case PGTABLE_LEVEL_PMD:
>  		/*
>  		 * We don't support folios larger than a single PMD yet. So
> -		 * when RMAP_LEVEL_PMD is set, we assume that we are creating
> +		 * when PGTABLE_LEVEL_PMD is set, we assume that we are creating
>  		 * a single "entire" mapping of the folio.
>  		 */
>  		VM_WARN_ON_FOLIO(folio_nr_pages(folio) != HPAGE_PMD_NR, folio);
>  		VM_WARN_ON_FOLIO(nr_pages != HPAGE_PMD_NR, folio);
>  		break;
> -	case RMAP_LEVEL_PUD:
> +	case PGTABLE_LEVEL_PUD:
>  		/*
>  		 * Assume that we are creating a single "entire" mapping of the
>  		 * folio.
> @@ -447,7 +437,7 @@ static inline void __folio_rmap_sanity_checks(const struct folio *folio,
>  		VM_WARN_ON_FOLIO(nr_pages != HPAGE_PUD_NR, folio);
>  		break;
>  	default:
> -		VM_WARN_ON_ONCE(true);
> +		BUILD_BUG();
>  	}
>
>  	/*
> @@ -567,14 +557,14 @@ static inline void hugetlb_remove_rmap(struct folio *folio)
>
>  static __always_inline void __folio_dup_file_rmap(struct folio *folio,
>  		struct page *page, int nr_pages, struct vm_area_struct *dst_vma,
> -		enum rmap_level level)
> +		enum pgtable_level level)
>  {
>  	const int orig_nr_pages = nr_pages;
>
>  	__folio_rmap_sanity_checks(folio, page, nr_pages, level);
>
>  	switch (level) {
> -	case RMAP_LEVEL_PTE:
> +	case PGTABLE_LEVEL_PTE:
>  		if (!folio_test_large(folio)) {
>  			atomic_inc(&folio->_mapcount);
>  			break;
> @@ -587,11 +577,13 @@ static __always_inline void __folio_dup_file_rmap(struct folio *folio,
>  		}
>  		folio_add_large_mapcount(folio, orig_nr_pages, dst_vma);
>  		break;
> -	case RMAP_LEVEL_PMD:
> -	case RMAP_LEVEL_PUD:
> +	case PGTABLE_LEVEL_PMD:
> +	case PGTABLE_LEVEL_PUD:
>  		atomic_inc(&folio->_entire_mapcount);
>  		folio_inc_large_mapcount(folio, dst_vma);
>  		break;
> +	default:
> +		BUILD_BUG();
>  	}
>  }
>
> @@ -609,13 +601,13 @@ static __always_inline void __folio_dup_file_rmap(struct folio *folio,
>  static inline void folio_dup_file_rmap_ptes(struct folio *folio,
>  		struct page *page, int nr_pages, struct vm_area_struct *dst_vma)
>  {
> -	__folio_dup_file_rmap(folio, page, nr_pages, dst_vma, RMAP_LEVEL_PTE);
> +	__folio_dup_file_rmap(folio, page, nr_pages, dst_vma, PGTABLE_LEVEL_PTE);
>  }
>
>  static __always_inline void folio_dup_file_rmap_pte(struct folio *folio,
>  		struct page *page, struct vm_area_struct *dst_vma)
>  {
> -	__folio_dup_file_rmap(folio, page, 1, dst_vma, RMAP_LEVEL_PTE);
> +	__folio_dup_file_rmap(folio, page, 1, dst_vma, PGTABLE_LEVEL_PTE);
>  }
>
>  /**
> @@ -632,7 +624,7 @@ static inline void folio_dup_file_rmap_pmd(struct folio *folio,
>  		struct page *page, struct vm_area_struct *dst_vma)
>  {
>  #ifdef CONFIG_TRANSPARENT_HUGEPAGE
> -	__folio_dup_file_rmap(folio, page, HPAGE_PMD_NR, dst_vma, RMAP_LEVEL_PTE);
> +	__folio_dup_file_rmap(folio, page, HPAGE_PMD_NR, dst_vma, PGTABLE_LEVEL_PTE);
>  #else
>  	WARN_ON_ONCE(true);
>  #endif
> @@ -640,7 +632,7 @@ static inline void folio_dup_file_rmap_pmd(struct folio *folio,
>
>  static __always_inline int __folio_try_dup_anon_rmap(struct folio *folio,
>  		struct page *page, int nr_pages, struct vm_area_struct *dst_vma,
> -		struct vm_area_struct *src_vma, enum rmap_level level)
> +		struct vm_area_struct *src_vma, enum pgtable_level level)
>  {
>  	const int orig_nr_pages = nr_pages;
>  	bool maybe_pinned;
> @@ -665,7 +657,7 @@ static __always_inline int __folio_try_dup_anon_rmap(struct folio *folio,
>  	 * copying if the folio maybe pinned.
>  	 */
>  	switch (level) {
> -	case RMAP_LEVEL_PTE:
> +	case PGTABLE_LEVEL_PTE:
>  		if (unlikely(maybe_pinned)) {
>  			for (i = 0; i < nr_pages; i++)
>  				if (PageAnonExclusive(page + i))
> @@ -687,8 +679,8 @@ static __always_inline int __folio_try_dup_anon_rmap(struct folio *folio,
>  		} while (page++, --nr_pages > 0);
>  		folio_add_large_mapcount(folio, orig_nr_pages, dst_vma);
>  		break;
> -	case RMAP_LEVEL_PMD:
> -	case RMAP_LEVEL_PUD:
> +	case PGTABLE_LEVEL_PMD:
> +	case PGTABLE_LEVEL_PUD:
>  		if (PageAnonExclusive(page)) {
>  			if (unlikely(maybe_pinned))
>  				return -EBUSY;
> @@ -697,6 +689,8 @@ static __always_inline int __folio_try_dup_anon_rmap(struct folio *folio,
>  		atomic_inc(&folio->_entire_mapcount);
>  		folio_inc_large_mapcount(folio, dst_vma);
>  		break;
> +	default:
> +		BUILD_BUG();
>  	}
>  	return 0;
>  }
> @@ -730,7 +724,7 @@ static inline int folio_try_dup_anon_rmap_ptes(struct folio *folio,
>  		struct vm_area_struct *src_vma)
>  {
>  	return __folio_try_dup_anon_rmap(folio, page, nr_pages, dst_vma,
> -					 src_vma, RMAP_LEVEL_PTE);
> +					 src_vma, PGTABLE_LEVEL_PTE);
>  }
>
>  static __always_inline int folio_try_dup_anon_rmap_pte(struct folio *folio,
> @@ -738,7 +732,7 @@ static __always_inline int folio_try_dup_anon_rmap_pte(struct folio *folio,
>  		struct vm_area_struct *src_vma)
>  {
>  	return __folio_try_dup_anon_rmap(folio, page, 1, dst_vma, src_vma,
> -					 RMAP_LEVEL_PTE);
> +					 PGTABLE_LEVEL_PTE);
>  }
>
>  /**
> @@ -770,7 +764,7 @@ static inline int folio_try_dup_anon_rmap_pmd(struct folio *folio,
>  {
>  #ifdef CONFIG_TRANSPARENT_HUGEPAGE
>  	return __folio_try_dup_anon_rmap(folio, page, HPAGE_PMD_NR, dst_vma,
> -					 src_vma, RMAP_LEVEL_PMD);
> +					 src_vma, PGTABLE_LEVEL_PMD);
>  #else
>  	WARN_ON_ONCE(true);
>  	return -EBUSY;
> @@ -778,7 +772,7 @@ static inline int folio_try_dup_anon_rmap_pmd(struct folio *folio,
>  }
>
>  static __always_inline int __folio_try_share_anon_rmap(struct folio *folio,
> -		struct page *page, int nr_pages, enum rmap_level level)
> +		struct page *page, int nr_pages, enum pgtable_level level)
>  {
>  	VM_WARN_ON_FOLIO(!folio_test_anon(folio), folio);
>  	VM_WARN_ON_FOLIO(!PageAnonExclusive(page), folio);
> @@ -873,7 +867,7 @@ static __always_inline int __folio_try_share_anon_rmap(struct folio *folio,
>  static inline int folio_try_share_anon_rmap_pte(struct folio *folio,
>  		struct page *page)
>  {
> -	return __folio_try_share_anon_rmap(folio, page, 1, RMAP_LEVEL_PTE);
> +	return __folio_try_share_anon_rmap(folio, page, 1, PGTABLE_LEVEL_PTE);
>  }
>
>  /**
> @@ -904,7 +898,7 @@ static inline int folio_try_share_anon_rmap_pmd(struct folio *folio,
>  {
>  #ifdef CONFIG_TRANSPARENT_HUGEPAGE
>  	return __folio_try_share_anon_rmap(folio, page, HPAGE_PMD_NR,
> -					   RMAP_LEVEL_PMD);
> +					   PGTABLE_LEVEL_PMD);
>  #else
>  	WARN_ON_ONCE(true);
>  	return -EBUSY;
> diff --git a/mm/rmap.c b/mm/rmap.c
> index 84a8d8b02ef77..0e9c4041f8687 100644
> --- a/mm/rmap.c
> +++ b/mm/rmap.c
> @@ -1265,7 +1265,7 @@ static void __folio_mod_stat(struct folio *folio, int nr, int nr_pmdmapped)
>
>  static __always_inline void __folio_add_rmap(struct folio *folio,
>  		struct page *page, int nr_pages, struct vm_area_struct *vma,
> -		enum rmap_level level)
> +		enum pgtable_level level)
>  {
>  	atomic_t *mapped = &folio->_nr_pages_mapped;
>  	const int orig_nr_pages = nr_pages;
> @@ -1274,7 +1274,7 @@ static __always_inline void __folio_add_rmap(struct folio *folio,
>  	__folio_rmap_sanity_checks(folio, page, nr_pages, level);
>
>  	switch (level) {
> -	case RMAP_LEVEL_PTE:
> +	case PGTABLE_LEVEL_PTE:
>  		if (!folio_test_large(folio)) {
>  			nr = atomic_inc_and_test(&folio->_mapcount);
>  			break;
> @@ -1300,11 +1300,11 @@ static __always_inline void __folio_add_rmap(struct folio *folio,
>
>  		folio_add_large_mapcount(folio, orig_nr_pages, vma);
>  		break;
> -	case RMAP_LEVEL_PMD:
> -	case RMAP_LEVEL_PUD:
> +	case PGTABLE_LEVEL_PMD:
> +	case PGTABLE_LEVEL_PUD:
>  		first = atomic_inc_and_test(&folio->_entire_mapcount);
>  		if (IS_ENABLED(CONFIG_NO_PAGE_MAPCOUNT)) {
> -			if (level == RMAP_LEVEL_PMD && first)
> +			if (level == PGTABLE_LEVEL_PMD && first)
>  				nr_pmdmapped = folio_large_nr_pages(folio);
>  			nr = folio_inc_return_large_mapcount(folio, vma);
>  			if (nr == 1)
> @@ -1323,7 +1323,7 @@ static __always_inline void __folio_add_rmap(struct folio *folio,
>  				 * We only track PMD mappings of PMD-sized
>  				 * folios separately.
>  				 */
> -				if (level == RMAP_LEVEL_PMD)
> +				if (level == PGTABLE_LEVEL_PMD)
>  					nr_pmdmapped = nr_pages;
>  				nr = nr_pages - (nr & FOLIO_PAGES_MAPPED);
>  				/* Raced ahead of a remove and another add? */
> @@ -1336,6 +1336,8 @@ static __always_inline void __folio_add_rmap(struct folio *folio,
>  		}
>  		folio_inc_large_mapcount(folio, vma);
>  		break;
> +	default:
> +		BUILD_BUG();
>  	}
>  	__folio_mod_stat(folio, nr, nr_pmdmapped);
>  }
> @@ -1427,7 +1429,7 @@ static void __page_check_anon_rmap(const struct folio *folio,
>
>  static __always_inline void __folio_add_anon_rmap(struct folio *folio,
>  		struct page *page, int nr_pages, struct vm_area_struct *vma,
> -		unsigned long address, rmap_t flags, enum rmap_level level)
> +		unsigned long address, rmap_t flags, enum pgtable_level level)
>  {
>  	int i;
>
> @@ -1440,20 +1442,22 @@ static __always_inline void __folio_add_anon_rmap(struct folio *folio,
>
>  	if (flags & RMAP_EXCLUSIVE) {
>  		switch (level) {
> -		case RMAP_LEVEL_PTE:
> +		case PGTABLE_LEVEL_PTE:
>  			for (i = 0; i < nr_pages; i++)
>  				SetPageAnonExclusive(page + i);
>  			break;
> -		case RMAP_LEVEL_PMD:
> +		case PGTABLE_LEVEL_PMD:
>  			SetPageAnonExclusive(page);
>  			break;
> -		case RMAP_LEVEL_PUD:
> +		case PGTABLE_LEVEL_PUD:
>  			/*
>  			 * Keep the compiler happy, we don't support anonymous
>  			 * PUD mappings.
>  			 */
>  			WARN_ON_ONCE(1);
>  			break;
> +		default:
> +			BUILD_BUG();
>  		}
>  	}
>
> @@ -1507,7 +1511,7 @@ void folio_add_anon_rmap_ptes(struct folio *folio, struct page *page,
>  		rmap_t flags)
>  {
>  	__folio_add_anon_rmap(folio, page, nr_pages, vma, address, flags,
> -			      RMAP_LEVEL_PTE);
> +			      PGTABLE_LEVEL_PTE);
>  }
>
>  /**
> @@ -1528,7 +1532,7 @@ void folio_add_anon_rmap_pmd(struct folio *folio, struct page *page,
>  {
>  #ifdef CONFIG_TRANSPARENT_HUGEPAGE
>  	__folio_add_anon_rmap(folio, page, HPAGE_PMD_NR, vma, address, flags,
> -			      RMAP_LEVEL_PMD);
> +			      PGTABLE_LEVEL_PMD);
>  #else
>  	WARN_ON_ONCE(true);
>  #endif
> @@ -1609,7 +1613,7 @@ void folio_add_new_anon_rmap(struct folio *folio, struct vm_area_struct *vma,
>
>  static __always_inline void __folio_add_file_rmap(struct folio *folio,
>  		struct page *page, int nr_pages, struct vm_area_struct *vma,
> -		enum rmap_level level)
> +		enum pgtable_level level)
>  {
>  	VM_WARN_ON_FOLIO(folio_test_anon(folio), folio);
>
> @@ -1634,7 +1638,7 @@ static __always_inline void __folio_add_file_rmap(struct folio *folio,
>  void folio_add_file_rmap_ptes(struct folio *folio, struct page *page,
>  		int nr_pages, struct vm_area_struct *vma)
>  {
> -	__folio_add_file_rmap(folio, page, nr_pages, vma, RMAP_LEVEL_PTE);
> +	__folio_add_file_rmap(folio, page, nr_pages, vma, PGTABLE_LEVEL_PTE);
>  }
>
>  /**
> @@ -1651,7 +1655,7 @@ void folio_add_file_rmap_pmd(struct folio *folio, struct page *page,
>  		struct vm_area_struct *vma)
>  {
>  #ifdef CONFIG_TRANSPARENT_HUGEPAGE
> -	__folio_add_file_rmap(folio, page, HPAGE_PMD_NR, vma, RMAP_LEVEL_PMD);
> +	__folio_add_file_rmap(folio, page, HPAGE_PMD_NR, vma, PGTABLE_LEVEL_PMD);
>  #else
>  	WARN_ON_ONCE(true);
>  #endif
> @@ -1672,7 +1676,7 @@ void folio_add_file_rmap_pud(struct folio *folio, struct page *page,
>  {
>  #if defined(CONFIG_TRANSPARENT_HUGEPAGE) && \
>  	defined(CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD)
> -	__folio_add_file_rmap(folio, page, HPAGE_PUD_NR, vma, RMAP_LEVEL_PUD);
> +	__folio_add_file_rmap(folio, page, HPAGE_PUD_NR, vma, PGTABLE_LEVEL_PUD);
>  #else
>  	WARN_ON_ONCE(true);
>  #endif
> @@ -1680,7 +1684,7 @@ void folio_add_file_rmap_pud(struct folio *folio, struct page *page,
>
>  static __always_inline void __folio_remove_rmap(struct folio *folio,
>  		struct page *page, int nr_pages, struct vm_area_struct *vma,
> -		enum rmap_level level)
> +		enum pgtable_level level)
>  {
>  	atomic_t *mapped = &folio->_nr_pages_mapped;
>  	int last = 0, nr = 0, nr_pmdmapped = 0;
> @@ -1689,7 +1693,7 @@ static __always_inline void __folio_remove_rmap(struct folio *folio,
>  	__folio_rmap_sanity_checks(folio, page, nr_pages, level);
>
>  	switch (level) {
> -	case RMAP_LEVEL_PTE:
> +	case PGTABLE_LEVEL_PTE:
>  		if (!folio_test_large(folio)) {
>  			nr = atomic_add_negative(-1, &folio->_mapcount);
>  			break;
> @@ -1719,11 +1723,11 @@ static __always_inline void __folio_remove_rmap(struct folio *folio,
>
>  		partially_mapped = nr && atomic_read(mapped);
>  		break;
> -	case RMAP_LEVEL_PMD:
> -	case RMAP_LEVEL_PUD:
> +	case PGTABLE_LEVEL_PMD:
> +	case PGTABLE_LEVEL_PUD:
>  		if (IS_ENABLED(CONFIG_NO_PAGE_MAPCOUNT)) {
>  			last = atomic_add_negative(-1, &folio->_entire_mapcount);
> -			if (level == RMAP_LEVEL_PMD && last)
> +			if (level == PGTABLE_LEVEL_PMD && last)
>  				nr_pmdmapped = folio_large_nr_pages(folio);
>  			nr = folio_dec_return_large_mapcount(folio, vma);
>  			if (!nr) {
> @@ -1743,7 +1747,7 @@ static __always_inline void __folio_remove_rmap(struct folio *folio,
>  			nr = atomic_sub_return_relaxed(ENTIRELY_MAPPED, mapped);
>  			if (likely(nr < ENTIRELY_MAPPED)) {
>  				nr_pages = folio_large_nr_pages(folio);
> -				if (level == RMAP_LEVEL_PMD)
> +				if (level == PGTABLE_LEVEL_PMD)
>  					nr_pmdmapped = nr_pages;
>  				nr = nr_pages - (nr & FOLIO_PAGES_MAPPED);
>  				/* Raced ahead of another remove and an add? */
> @@ -1757,6 +1761,8 @@ static __always_inline void __folio_remove_rmap(struct folio *folio,
>
>  		partially_mapped = nr && nr < nr_pmdmapped;
>  		break;
> +	default:
> +		BUILD_BUG();
>  	}
>
>  	/*
> @@ -1796,7 +1802,7 @@ static __always_inline void __folio_remove_rmap(struct folio *folio,
>  void folio_remove_rmap_ptes(struct folio *folio, struct page *page,
>  		int nr_pages, struct vm_area_struct *vma)
>  {
> -	__folio_remove_rmap(folio, page, nr_pages, vma, RMAP_LEVEL_PTE);
> +	__folio_remove_rmap(folio, page, nr_pages, vma, PGTABLE_LEVEL_PTE);
>  }
>
>  /**
> @@ -1813,7 +1819,7 @@ void folio_remove_rmap_pmd(struct folio *folio, struct page *page,
>  		struct vm_area_struct *vma)
>  {
>  #ifdef CONFIG_TRANSPARENT_HUGEPAGE
> -	__folio_remove_rmap(folio, page, HPAGE_PMD_NR, vma, RMAP_LEVEL_PMD);
> +	__folio_remove_rmap(folio, page, HPAGE_PMD_NR, vma, PGTABLE_LEVEL_PMD);
>  #else
>  	WARN_ON_ONCE(true);
>  #endif
> @@ -1834,7 +1840,7 @@ void folio_remove_rmap_pud(struct folio *folio, struct page *page,
>  {
>  #if defined(CONFIG_TRANSPARENT_HUGEPAGE) && \
>  	defined(CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD)
> -	__folio_remove_rmap(folio, page, HPAGE_PUD_NR, vma, RMAP_LEVEL_PUD);
> +	__folio_remove_rmap(folio, page, HPAGE_PUD_NR, vma, PGTABLE_LEVEL_PUD);
>  #else
>  	WARN_ON_ONCE(true);
>  #endif
> --
> 2.50.1
>


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 18:49:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 18:49:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079047.1440030 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulu3r-0002jq-QL; Tue, 12 Aug 2025 18:49:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079047.1440030; Tue, 12 Aug 2025 18:49:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulu3r-0002jj-NG; Tue, 12 Aug 2025 18:49:27 +0000
Received: by outflank-mailman (input) for mailman id 1079047;
 Tue, 12 Aug 2025 18:49:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=CWaV=2Y=oracle.com=lorenzo.stoakes@srs-se1.protection.inumbo.net>)
 id 1ulu3q-0002jO-Ag
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 18:49:26 +0000
Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com
 [205.220.177.32]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0e0f3b23-77ad-11f0-b898-0df219b8e170;
 Tue, 12 Aug 2025 20:49:20 +0200 (CEST)
Received: from pps.filterd (m0246631.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57CDBwBR012369;
 Tue, 12 Aug 2025 18:48:37 GMT
Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com
 (iadpaimrmta01.appoci.oracle.com [130.35.100.223])
 by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 48dw44wegu-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 12 Aug 2025 18:48:37 +0000 (GMT)
Received: from pps.filterd
 (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1])
 by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2)
 with ESMTP id 57CHcjHV009640; Tue, 12 Aug 2025 18:48:36 GMT
Received: from nam10-bn7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on2067.outbound.protection.outlook.com [40.107.92.67])
 by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id
 48dvsgnp2n-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 12 Aug 2025 18:48:36 +0000
Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16)
 by IA1PR10MB7168.namprd10.prod.outlook.com (2603:10b6:208:3f0::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.21; Tue, 12 Aug
 2025 18:48:17 +0000
Received: from DM4PR10MB8218.namprd10.prod.outlook.com
 ([fe80::2650:55cf:2816:5f2]) by DM4PR10MB8218.namprd10.prod.outlook.com
 ([fe80::2650:55cf:2816:5f2%5]) with mapi id 15.20.9031.012; Tue, 12 Aug 2025
 18:48:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0e0f3b23-77ad-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=corp-2025-04-25; bh=nIlD8P8xaNha1RdD+F
	0AElqcb5gozmTZL74ETofIeLI=; b=XoQlJPIDDXatqs/XPkypizi/fQLtl/FL74
	r86uXg4lD1JNmXn+omb2rYoRRxW+7VkF22t14dNY9Q8z+ElxWEt58loDgV51Kzj8
	BBn2Uqj2nNx6Bz1Ks5rj0WWMaIe7wDSEDuxlr/FBjF+BLQbbZ1xpYjOPwKR4j/Pz
	kQQmirGGFeLXFBGZiIPXUJnc6RtoyIdmsrv1ii04UgGo5w+FOZ/Hff+fDqrlK++N
	27w2tCy/Chbn8mP5PUYkTcfKWc9P6s2i+ru+9KxxWYTmcC4gxwlzvDydvuooCnR7
	B4aAOCNugSWI3VpVRJHRyI+6VIkt5ccDA1rlQf+llCzkh/IUvYmw==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=u7YEksGOsjDt1Ic1w666tQzSWAqUT8W0NHeptsgsh4RS8rv4pjseOTCcKnAEXxmyOPAU65LpM3JJLW3p/d40tEgqBxznpgRN6855UySF3iEWfNxe/o/b4LwkPUyEgmzUXAyutka++/4/WSzObqbP98AgUn526u+T+6WTJ+aCwWBqQKC80dXdP5fzhfq6X5YomQr5bvidXBxbcoICBaVtqxDWEegscWDSEsJKW/I93zAV9iOOXxjvteQ6wEyiI2eKIiYid9ip0cCDt/M4lRv+xTYD1oN8prUkC/gawTr3cSUr1GzBFZBcKSQK/RWCOcGts1aGDYCME1AKi01odRM3Pg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=nIlD8P8xaNha1RdD+F0AElqcb5gozmTZL74ETofIeLI=;
 b=g4x8P0d3LvHkG2oqm4HGH6f2y/3xT/in5M1RcFlQYmjo0QeVZglcML7IkSH6levXDOcCiQQIvZMRRGiOvWIJu9g4d7z7FU55FR0gqfu542OFzcIc49HmFJltOHBTKGEX2r8t4/bzVUMkyfFBpUlqVnJ/tGHKmhulNkp+2VNp2SojWUwSBu7lvbYvDfmlrUbvg2MrJ6GeZPlStUWbPVDfPZ58zyx3EwdR6BH8evi7OHaBljsfYXCH/uDSF2NEGG7bCb5boI724cmpc1ArZLwjt3bW1MBvE21Sf0xWqA16dNnPBmtf7dGwaAhwZrxhAekELYVHP9RcaddHDeqjbVprlQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=nIlD8P8xaNha1RdD+F0AElqcb5gozmTZL74ETofIeLI=;
 b=RF+vo+/SVKdxmsCaPYclMITKwzX1Nx03HHUNmeOy3zwEhk9UnLLclaR+1HP2o6alNQ1IAjGcmVDSvew+kGT3qHjy4LdjlSb6CuSc+Lv/7fxqk8N2+Ww1v9Um1hkOxKdYt3toKQcoPK8huUDYUBYnM2dBUuBrmAY48Zhg0bk5F2A=
Date: Tue, 12 Aug 2025 19:48:07 +0100
From: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
To: David Hildenbrand <david@redhat.com>
Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org,
        xen-devel@lists.xenproject.org, linux-fsdevel@vger.kernel.org,
        nvdimm@lists.linux.dev, linuxppc-dev@lists.ozlabs.org,
        Andrew Morton <akpm@linux-foundation.org>,
        Madhavan Srinivasan <maddy@linux.ibm.com>,
        Michael Ellerman <mpe@ellerman.id.au>,
        Nicholas Piggin <npiggin@gmail.com>,
        Christophe Leroy <christophe.leroy@csgroup.eu>,
        Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Dan Williams <dan.j.williams@intel.com>,
        Matthew Wilcox <willy@infradead.org>, Jan Kara <jack@suse.cz>,
        Alexander Viro <viro@zeniv.linux.org.uk>,
        Christian Brauner <brauner@kernel.org>,
        "Liam R. Howlett" <Liam.Howlett@oracle.com>,
        Vlastimil Babka <vbabka@suse.cz>, Mike Rapoport <rppt@kernel.org>,
        Suren Baghdasaryan <surenb@google.com>, Michal Hocko <mhocko@suse.com>,
        Zi Yan <ziy@nvidia.com>, Baolin Wang <baolin.wang@linux.alibaba.com>,
        Nico Pache <npache@redhat.com>, Ryan Roberts <ryan.roberts@arm.com>,
        Dev Jain <dev.jain@arm.com>, Barry Song <baohua@kernel.org>,
        Jann Horn <jannh@google.com>, Pedro Falcato <pfalcato@suse.de>,
        Hugh Dickins <hughd@google.com>, Oscar Salvador <osalvador@suse.de>,
        Lance Yang <lance.yang@linux.dev>
Subject: Re: [PATCH v3 08/11] mm/memory: convert print_bad_pte() to
 print_bad_page_map()
Message-ID: <4258d819-7226-491a-b140-bcb6e64d426c@lucifer.local>
References: <20250811112631.759341-1-david@redhat.com>
 <20250811112631.759341-9-david@redhat.com>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250811112631.759341-9-david@redhat.com>
X-ClientProxiedBy: GVX0EPF00011B64.SWEP280.PROD.OUTLOOK.COM
 (2603:10a6:144:1:0:8:0:7) To DM4PR10MB8218.namprd10.prod.outlook.com
 (2603:10b6:8:1cc::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DM4PR10MB8218:EE_|IA1PR10MB7168:EE_
X-MS-Office365-Filtering-Correlation-Id: fc03db2e-3be7-416e-ed54-08ddd9d0ccfc
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|7416014|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?3AM8eOfHai/kpIgyNs+VM3W/jMFER69Q5cDUgcIttV3P2bMQnqXCfkAI94wr?=
 =?us-ascii?Q?iEgLaQvr11HU9/yAn//Vv0aXSxRoA/1g+JUKHmRhQIW05giIZPRZcYI1LVXB?=
 =?us-ascii?Q?exeQ3lpFGbheD1ZWkJql7rwp030F04ud06DM3o2D/DJJHM374T78S+kJ8iWr?=
 =?us-ascii?Q?BgiARVND0V/H95zISyk6vrbkHaAsfRBmz3WdoJ/phKzZ4dAeqCVQs2vh7xuL?=
 =?us-ascii?Q?7J1D5SIjeRSR16ro3fUimuur5vMUqaEHxx0dz25wETzQT5Lq5qYyMVuolnSg?=
 =?us-ascii?Q?kvIZhMgNVgbxfmpZ1/rDznCHZ9DBwGpN7N6q1mG432WiPUuGes7dCsZcrhPL?=
 =?us-ascii?Q?UXh+fszRxBSi93G++QjbcVVdDttbI+Btcr8VuzPnXd/VfQPrRuHnpFksiFLO?=
 =?us-ascii?Q?T4ZzOumtHae+DhR8XX7eBPJefscofVABPxDTDTkKtfFk1PIhzWzTd4D6fJ3F?=
 =?us-ascii?Q?c5PIlHApR31BhQhN19rM2QzjJPB9ztI4FH/2V56VHq61BZZk3SAym/CiImR1?=
 =?us-ascii?Q?whVedc8/nHzbVcJAbrR56993SA+XuyGMZUEvqzHRptTCGwjYpw+ZiYyWVglO?=
 =?us-ascii?Q?wGLdFnydhv6O3yAN2f5uYpT0S9pJ5A8+JxX3LjhxnC0C1yr5cgNvrJKlzEat?=
 =?us-ascii?Q?+ZQTJmvZwZWG9NVoPoVowChyIABlfWqp8vYmjZjRzvHzjYx0vEacyiriYH6n?=
 =?us-ascii?Q?uk881y8E9yYdTFqxrmo+taZ1ZoPuVHGP4zwU697PkPBe6ljm5CBGDQYpFPyA?=
 =?us-ascii?Q?81bA0sOI5eI57ORtIzZs2DaAfeyuxIrBO3ElCNDb2oLC5zWpi9lGaQMd4kWi?=
 =?us-ascii?Q?dDwJseE67YrPYlgw06eQFh2iMK/nzVHkFBVmIovNQNcXisWPd9gxAUM16thM?=
 =?us-ascii?Q?nXZrztLY4au0sFLoi7XU6YPEfTrBfrn1uFelguapdwIyolh64g2I1t3bHW7+?=
 =?us-ascii?Q?BUBgxSYCUTCxiXqPD5cZiPkRHCe5pBg9/4vnub+Hi/6IvckpEcO92IFespAR?=
 =?us-ascii?Q?UpZKmxFgqrgv1y5D0HPMYmF3qAqWYcAlfH8xBT/cxZnw2JlIad7RpCDSf+J9?=
 =?us-ascii?Q?40TA2KLxPfwr/0pmdfaydhgmgFP5KezKdU5K2wW2fHB1jZrzBEGnZPJ/IIPt?=
 =?us-ascii?Q?H/6yDH7sjFol27eQjPaPmFfvR8L20foByYxQqhSFrFKGQehnXSP+jYY9TvWQ?=
 =?us-ascii?Q?VnoM0n/qSbMAlpsogewzGiV0X1mxNv4aeDtm94jIIYbP6Qi1rRzAIVJy8k8Q?=
 =?us-ascii?Q?NcOSbnZFugkBzW3Cq8x1nlnjY9RyXcFojmHA1lGP0PBJwjcB3uFudvgEtTI4?=
 =?us-ascii?Q?u8SOMlsMGuCaFMc86DgrQgFI0h9ZVa+f5CyhJD6Da11xaMZsJKc1DLmHYwlA?=
 =?us-ascii?Q?OZJ00gDldnnIVGepKMWg1oEP8zYab4tbTzQmomFtNc7OLptw+EMHveYCH7aK?=
 =?us-ascii?Q?FV7UbG7bq2Q=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR10MB8218.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?iCCA4yp03UYHSAQ23YYY8gsJSAkI5EBEMy2uzvzYuplgiejnrx26EsJ00LO+?=
 =?us-ascii?Q?+JTeHfnGPAWI/iGp7HmFCwsc61xjKjIIVh9cgPaf1AH4aH3abyfphFUaeT3H?=
 =?us-ascii?Q?kxONdj6QaSvXsH8TQze0RXefoFWFF1D75ZcDkBrXRaFc5QulDpcRn71hOAwK?=
 =?us-ascii?Q?BjpxRycbwmrRq+LYARrCOpEDUBNztgTxw22Y3OnTcBxSFnTLB/9uOvf6RMi5?=
 =?us-ascii?Q?RfCHmnAK6RxIDIpitUap8PYJN/d/LGuoZ2krcCWnuJVaaFX9cl1by1qBtQUd?=
 =?us-ascii?Q?1wjGPkdLWt5PqhBxbDtcvdirkh0SNpPJl0or4u9R7aH7aIPiMtjFZ/8IHQJa?=
 =?us-ascii?Q?ANmNl1ORLQKNR6ovK0Fnosm//ipw75W+NUt29DNV8TNYkWx45++pwQWEbfOh?=
 =?us-ascii?Q?yH0cdtGcnktG/KAH3HcMlDL5rIyTwDoWuVr5TIRaHpN44Tj+CDOYogXCfO+J?=
 =?us-ascii?Q?RFBOJC8zXpBfiyHGg7Z6rC2xFFAlW+twItigGX2aa46Jl3IxeSnuSGj/r9mg?=
 =?us-ascii?Q?s/BjAAtLhQDCg0B+uAFgzilwx2XjdTACBgkKxnvStlNS0pxfwIGB8vKc1+bm?=
 =?us-ascii?Q?CnViMy+BTq5x+BybDRGclFtIzn8NxD5+In7D7+rIMK3HWK8RRS0QpaupjfFW?=
 =?us-ascii?Q?kbWIzmS21h37vhwolkSzQMxqkT0l5knEuqtVUQUEpz+Yx9ma0S4n1753ypKl?=
 =?us-ascii?Q?cHb/sz0ivn3C1U6MUNY2zz+lYv9dpmfSgl4GpqxUxTpPcH5jBEbJGeDp00Z3?=
 =?us-ascii?Q?VvY8ar73tuZpN63EtxItbw4TXsSmP6Nwjqet7CT0mUtccdTPOCUMuqFMjXaw?=
 =?us-ascii?Q?3X80F/9ONLmkypdFiu193DX78nbYFBjv20ntgV1+CvIbyEXri4elDbjMXkor?=
 =?us-ascii?Q?YVV4xZ/WoKBNgX2jJ+mZedwH6hr2zB2nShqMFtKdOMrBpVT311BYvucbMAjp?=
 =?us-ascii?Q?wsYk4uUgb6pXnHftin8rhTtASYJDNGlfhi8OnuZLbzO/dB9SLmnHf/JV0fUl?=
 =?us-ascii?Q?ZCPK9JkfoiHM2K83iuZ0hGRfQDe/bba/BEOwW7qoeBuJx7/cfcw4HFesdT7v?=
 =?us-ascii?Q?CSHAuphf1+lxHqCP73tzk12P7MB5QAqsdwDCS5tesGp0AQ3CYbi9Vh9jn8yK?=
 =?us-ascii?Q?OBLSjINXfUALtvgo9KS5nbd6XxEtCPaDa7uf9gFY4Sj/c1EOsjFBj3ypPx1+?=
 =?us-ascii?Q?XvdZSzgsSxSe4JqWdKTy2WcXopCUQgmxKbm7HEYBcR2G+LyAKADe887FYy3/?=
 =?us-ascii?Q?G5109+KliwXRWFz9+1MoSh/Bt8DtHC2ALubig2z5zK3oEdihJwfr0Fv3J/Tw?=
 =?us-ascii?Q?uvZzyjUwmlKcIwrcNfnwRuV1/pid2NQDgAofNJdzggRQl+BnBwNpr+IkAo84?=
 =?us-ascii?Q?JPLqwCEfK1RPoU5hXuu42kMmeikxZo7+deD5iOj4jUo2hEuoFdmXhLD4Xxzr?=
 =?us-ascii?Q?cqPdT4R+f5vzBgIiHjx2ngs/fncm4WlZ3xQCtfI58UgGtQYr/byYPctjhW1c?=
 =?us-ascii?Q?1a1/wRcY4DIa03bgbVl4k1zze2yczjjcw7+XT2PjF4W04OMiF8RP1isWBBpO?=
 =?us-ascii?Q?dpN+3fU6+bfg7Lq95CGmp8alBi91+ygCFA0cBIujuHYTskoJgchYvC4Tk5Mp?=
 =?us-ascii?Q?KQ=3D=3D?=
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	bNLtK90Jem4yGMCYuLAseuTgf4uD7U88BzAMrDG1fzEXFfpRUwYv+IVrB9Xh5QHPmkO72fZPkl/tYTzvBaU15auG+F7zxHhtrUOHxwdcawXhRJsaoU1UTNNLGnYOa9WgeK7PbGeXtN1Y3XlKcUM7UQ47R5hgfcGqA3vsnEM239l6lKLU55DOVgfN1TkvLLTZTJS4if4ykM//NJnGPTX1ow+psu5+Io0R8EWBTOkJEv+YKkoPqVRiCUhJTapiquUkE03CmlZ5R/XZTHsp2WLhdX84GllGwUfcIjf3JX5QEz4OeE9EsILSpEVqW0b413E2fCaUBcVnzl9n9dUN7RYEzjedYkljMW1DdgDWv/YGciXK1wyviaEdg/CZDJQpHazKExBXjx+Mlh2I610dvZ1Pu8IHi4JBgS13BrwTGT4ULNHvZpJEcC6os9tQ894790WWlkNy8VB5jF6R6BoVDpVWBupWvFp7eHHmk1OKKktkaIshyMu+mFp33yARIKUHem9CyrntUbUf2g2uPQNeDK1SfItM+yEfztBTR4tWshPTYEWDx8ANyLiXYaEsMpxp+z0prIHHTymT6sc2z62zxqmCx+xLOfo2DfxmMy361M7dEOw=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fc03db2e-3be7-416e-ed54-08ddd9d0ccfc
X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Aug 2025 18:48:17.4064
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: hcBzDuZKLRa7IqmduT0H6PtqirN4HOZpWiuuCyp/hVe+LY7g7/0mA8UKfzlklodp/6uqh5sFOHJr2Hg5Ik4kjCYac2zAjdiFUWJGlQ71N7U=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB7168
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40
 definitions=2025-08-12_07,2025-08-11_01,2025-03-28_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 bulkscore=0
 adultscore=0 mlxscore=0 phishscore=0 spamscore=0 suspectscore=0
 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2507300000 definitions=main-2508120181
X-Proofpoint-ORIG-GUID: 7uRCPUQqvZHWuhp49wdB-OQCDP8NFqjM
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODEyMDE4MSBTYWx0ZWRfX9wz3aszOjYbg
 QqRZMoYFXfHyNv1LdFztuljl+9wA9mtCltMdP6QOsbqAL1OvY4oISADzBOen+c29EFkm2FMaTxv
 y7hogd+XpBxDXRNyGOvJdkxa130f57qaByL2xWJgts8Fcje/8SQNVs1zfECb2g1CpLdJ7/7aalF
 pc5pDMwJ3DkSufcwZ5731PQLMP9anpQEofv6xovXNPqJjl9vOLvl3IHupX7vgm45OSbVht2GGLs
 lvelsjA8QTmqF5gTKjMGWwRejCMZXSL4RUWTWc8FSLkj/2/KnwNmvJrw6B7C//4/mBBsgfTJah/
 AEETH8DAtW7w6cD2k1CXwFR9wqxt8IN7erRJw/gH+Ru2ZlUO04s46s98zQ4tjetI5OrqNFDk9GX
 i1FBHZXvkl1IVdGK/QGjvojTK2DJoAgCmngMu4E6+KncHIguvWuNGYciJqZaxhSktDtms+gE
X-Authority-Analysis: v=2.4 cv=X9FSKHTe c=1 sm=1 tr=0 ts=689b8c85 b=1 cx=c_pps
 a=zPCbziy225d3KhSqZt3L1A==:117 a=zPCbziy225d3KhSqZt3L1A==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19
 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19
 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=kj9zAlcOel0A:10
 a=2OwXVqhp2XgA:10 a=GoEa3M9JfhUA:10 a=20KFwNOVAAAA:8 a=yPCof4ZbAAAA:8
 a=3cV1On-_EGWI4EocTlcA:9 a=CjuIK1q_8ugA:10 cc=ntf awl=host:12069
X-Proofpoint-GUID: 7uRCPUQqvZHWuhp49wdB-OQCDP8NFqjM

On Mon, Aug 11, 2025 at 01:26:28PM +0200, David Hildenbrand wrote:
> print_bad_pte() looks like something that should actually be a WARN
> or similar, but historically it apparently has proven to be useful to
> detect corruption of page tables even on production systems -- report
> the issue and keep the system running to make it easier to actually detect
> what is going wrong (e.g., multiple such messages might shed a light).
>
> As we want to unify vm_normal_page_*() handling for PTE/PMD/PUD, we'll have
> to take care of print_bad_pte() as well.
>
> Let's prepare for using print_bad_pte() also for non-PTEs by adjusting the
> implementation and renaming the function to print_bad_page_map().
> Provide print_bad_pte() as a simple wrapper.
>
> Document the implicit locking requirements for the page table re-walk.
>
> To make the function a bit more readable, factor out the ratelimit check
> into is_bad_page_map_ratelimited() and place the printing of page
> table content into __print_bad_page_map_pgtable(). We'll now dump
> information from each level in a single line, and just stop the table
> walk once we hit something that is not a present page table.
>
> The report will now look something like (dumping pgd to pmd values):
>
> [   77.943408] BUG: Bad page map in process XXX  pte:80000001233f5867
> [   77.944077] addr:00007fd84bb1c000 vm_flags:08100071 anon_vma: ...
> [   77.945186] pgd:10a89f067 p4d:10a89f067 pud:10e5a2067 pmd:105327067
>
> Not using pgdp_get(), because that does not work properly on some arm
> configs where pgd_t is an array. Note that we are dumping all levels
> even when levels are folded for simplicity.
>
> Signed-off-by: David Hildenbrand <david@redhat.com>

This LGTM, great explanations and thanks for the page table level stuff!

Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>

> ---
>  include/linux/pgtable.h |  19 ++++++++
>  mm/memory.c             | 104 ++++++++++++++++++++++++++++++++--------
>  2 files changed, 103 insertions(+), 20 deletions(-)
>
> diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h
> index bff5c4241bf2e..33c84b38b7ec6 100644
> --- a/include/linux/pgtable.h
> +++ b/include/linux/pgtable.h
> @@ -1966,6 +1966,25 @@ enum pgtable_level {
>  	PGTABLE_LEVEL_PGD,
>  };
>
> +static inline const char *pgtable_level_to_str(enum pgtable_level level)
> +{
> +	switch (level) {
> +	case PGTABLE_LEVEL_PTE:
> +		return "pte";
> +	case PGTABLE_LEVEL_PMD:
> +		return "pmd";
> +	case PGTABLE_LEVEL_PUD:
> +		return "pud";
> +	case PGTABLE_LEVEL_P4D:
> +		return "p4d";
> +	case PGTABLE_LEVEL_PGD:
> +		return "pgd";
> +	default:
> +		VM_WARN_ON_ONCE(1);
> +		return "unknown";
> +	}
> +}
> +
>  #endif /* !__ASSEMBLY__ */
>
>  #if !defined(MAX_POSSIBLE_PHYSMEM_BITS) && !defined(CONFIG_64BIT)
> diff --git a/mm/memory.c b/mm/memory.c
> index 626caedce35e0..dc0107354d37b 100644
> --- a/mm/memory.c
> +++ b/mm/memory.c
> @@ -491,22 +491,8 @@ static inline void add_mm_rss_vec(struct mm_struct *mm, int *rss)
>  			add_mm_counter(mm, i, rss[i]);
>  }
>
> -/*
> - * This function is called to print an error when a bad pte
> - * is found. For example, we might have a PFN-mapped pte in
> - * a region that doesn't allow it.
> - *
> - * The calling function must still handle the error.
> - */
> -static void print_bad_pte(struct vm_area_struct *vma, unsigned long addr,
> -			  pte_t pte, struct page *page)
> +static bool is_bad_page_map_ratelimited(void)
>  {
> -	pgd_t *pgd = pgd_offset(vma->vm_mm, addr);
> -	p4d_t *p4d = p4d_offset(pgd, addr);
> -	pud_t *pud = pud_offset(p4d, addr);
> -	pmd_t *pmd = pmd_offset(pud, addr);
> -	struct address_space *mapping;
> -	pgoff_t index;
>  	static unsigned long resume;
>  	static unsigned long nr_shown;
>  	static unsigned long nr_unshown;
> @@ -518,7 +504,7 @@ static void print_bad_pte(struct vm_area_struct *vma, unsigned long addr,
>  	if (nr_shown == 60) {
>  		if (time_before(jiffies, resume)) {
>  			nr_unshown++;
> -			return;
> +			return true;
>  		}
>  		if (nr_unshown) {
>  			pr_alert("BUG: Bad page map: %lu messages suppressed\n",
> @@ -529,15 +515,91 @@ static void print_bad_pte(struct vm_area_struct *vma, unsigned long addr,
>  	}
>  	if (nr_shown++ == 0)
>  		resume = jiffies + 60 * HZ;
> +	return false;
> +}
> +
> +static void __print_bad_page_map_pgtable(struct mm_struct *mm, unsigned long addr)
> +{
> +	unsigned long long pgdv, p4dv, pudv, pmdv;
> +	p4d_t p4d, *p4dp;
> +	pud_t pud, *pudp;
> +	pmd_t pmd, *pmdp;
> +	pgd_t *pgdp;
> +
> +	/*
> +	 * Although this looks like a fully lockless pgtable walk, it is not:
> +	 * see locking requirements for print_bad_page_map().
> +	 */

Thanks

> +	pgdp = pgd_offset(mm, addr);
> +	pgdv = pgd_val(*pgdp);
> +
> +	if (!pgd_present(*pgdp) || pgd_leaf(*pgdp)) {
> +		pr_alert("pgd:%08llx\n", pgdv);
> +		return;
> +	}
> +
> +	p4dp = p4d_offset(pgdp, addr);
> +	p4d = p4dp_get(p4dp);
> +	p4dv = p4d_val(p4d);
> +
> +	if (!p4d_present(p4d) || p4d_leaf(p4d)) {
> +		pr_alert("pgd:%08llx p4d:%08llx\n", pgdv, p4dv);
> +		return;
> +	}
> +
> +	pudp = pud_offset(p4dp, addr);
> +	pud = pudp_get(pudp);
> +	pudv = pud_val(pud);
> +
> +	if (!pud_present(pud) || pud_leaf(pud)) {
> +		pr_alert("pgd:%08llx p4d:%08llx pud:%08llx\n", pgdv, p4dv, pudv);
> +		return;
> +	}
> +
> +	pmdp = pmd_offset(pudp, addr);
> +	pmd = pmdp_get(pmdp);
> +	pmdv = pmd_val(pmd);
> +
> +	/*
> +	 * Dumping the PTE would be nice, but it's tricky with CONFIG_HIGHPTE,

Sigh, 32-bit.

> +	 * because the table should already be mapped by the caller and
> +	 * doing another map would be bad. print_bad_page_map() should
> +	 * already take care of printing the PTE.
> +	 */
> +	pr_alert("pgd:%08llx p4d:%08llx pud:%08llx pmd:%08llx\n", pgdv,
> +		 p4dv, pudv, pmdv);
> +}
> +
> +/*
> + * This function is called to print an error when a bad page table entry (e.g.,
> + * corrupted page table entry) is found. For example, we might have a
> + * PFN-mapped pte in a region that doesn't allow it.
> + *
> + * The calling function must still handle the error.
> + *
> + * This function must be called during a proper page table walk, as it will
> + * re-walk the page table to dump information: the caller MUST prevent page
> + * table teardown (by holding mmap, vma or rmap lock) and MUST hold the leaf
> + * page table lock.
> + */

Thanks this is good!

> +static void print_bad_page_map(struct vm_area_struct *vma,
> +		unsigned long addr, unsigned long long entry, struct page *page,
> +		enum pgtable_level level)
> +{
> +	struct address_space *mapping;
> +	pgoff_t index;
> +
> +	if (is_bad_page_map_ratelimited())
> +		return;
>
>  	mapping = vma->vm_file ? vma->vm_file->f_mapping : NULL;
>  	index = linear_page_index(vma, addr);
>
> -	pr_alert("BUG: Bad page map in process %s  pte:%08llx pmd:%08llx\n",
> -		 current->comm,
> -		 (long long)pte_val(pte), (long long)pmd_val(*pmd));
> +	pr_alert("BUG: Bad page map in process %s  %s:%08llx", current->comm,
> +		 pgtable_level_to_str(level), entry);
> +	__print_bad_page_map_pgtable(vma->vm_mm, addr);
>  	if (page)
> -		dump_page(page, "bad pte");
> +		dump_page(page, "bad page map");
>  	pr_alert("addr:%px vm_flags:%08lx anon_vma:%px mapping:%px index:%lx\n",
>  		 (void *)addr, vma->vm_flags, vma->anon_vma, mapping, index);
>  	pr_alert("file:%pD fault:%ps mmap:%ps mmap_prepare: %ps read_folio:%ps\n",
> @@ -549,6 +611,8 @@ static void print_bad_pte(struct vm_area_struct *vma, unsigned long addr,
>  	dump_stack();
>  	add_taint(TAINT_BAD_PAGE, LOCKDEP_NOW_UNRELIABLE);
>  }
> +#define print_bad_pte(vma, addr, pte, page) \
> +	print_bad_page_map(vma, addr, pte_val(pte), page, PGTABLE_LEVEL_PTE)

This is a nice abstraction.

>
>  /*
>   * vm_normal_page -- This function gets the "struct page" associated with a pte.
> --
> 2.50.1
>


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 18:50:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 18:50:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079056.1440040 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulu52-0004G3-42; Tue, 12 Aug 2025 18:50:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079056.1440040; Tue, 12 Aug 2025 18:50: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 1ulu52-0004Fw-0f; Tue, 12 Aug 2025 18:50:40 +0000
Received: by outflank-mailman (input) for mailman id 1079056;
 Tue, 12 Aug 2025 18:50:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=CSMc=2Y=csgroup.eu=christophe.leroy@srs-se1.protection.inumbo.net>)
 id 1ulu50-0004Fh-TB
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 18:50:38 +0000
Received: from pegase2.c-s.fr (pegase2.c-s.fr [93.17.235.10])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 3a093cb3-77ad-11f0-b898-0df219b8e170;
 Tue, 12 Aug 2025 20:50:33 +0200 (CEST)
Received: from localhost (mailhub4.si.c-s.fr [172.26.127.67])
 by localhost (Postfix) with ESMTP id 4c1gK71N21z9sSN;
 Tue, 12 Aug 2025 20:39:39 +0200 (CEST)
Received: from pegase2.c-s.fr ([172.26.127.65])
 by localhost (pegase2.c-s.fr [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id W34agYFEkjYq; Tue, 12 Aug 2025 20:39:39 +0200 (CEST)
Received: from messagerie.si.c-s.fr (messagerie.si.c-s.fr [192.168.25.192])
 by pegase2.c-s.fr (Postfix) with ESMTP id 4c1gK707Z2z9sSL;
 Tue, 12 Aug 2025 20:39:39 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1])
 by messagerie.si.c-s.fr (Postfix) with ESMTP id D45368B764;
 Tue, 12 Aug 2025 20:39:38 +0200 (CEST)
Received: from messagerie.si.c-s.fr ([127.0.0.1])
 by localhost (messagerie.si.c-s.fr [127.0.0.1]) (amavisd-new, port 10023)
 with ESMTP id KCsZS5tQGZ3E; Tue, 12 Aug 2025 20:39:38 +0200 (CEST)
Received: from [192.168.235.99] (unknown [192.168.235.99])
 by messagerie.si.c-s.fr (Postfix) with ESMTP id 03CD88B763;
 Tue, 12 Aug 2025 20:39:36 +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>
X-Inumbo-ID: 3a093cb3-77ad-11f0-b898-0df219b8e170
X-Virus-Scanned: amavisd-new at c-s.fr
X-Virus-Scanned: amavisd-new at c-s.fr
Message-ID: <1cc6f739-3891-4cc7-84ac-676fef62c445@csgroup.eu>
Date: Tue, 12 Aug 2025 20:39:36 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 06/11] powerpc/ptdump: rename "struct pgtable_level" to
 "struct ptdump_pglevel"
To: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 David Hildenbrand <david@redhat.com>
Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org,
 xen-devel@lists.xenproject.org, linux-fsdevel@vger.kernel.org,
 nvdimm@lists.linux.dev, linuxppc-dev@lists.ozlabs.org,
 Andrew Morton <akpm@linux-foundation.org>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>,
 Juergen Gross <jgross@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Dan Williams <dan.j.williams@intel.com>, Matthew Wilcox
 <willy@infradead.org>, Jan Kara <jack@suse.cz>,
 Alexander Viro <viro@zeniv.linux.org.uk>,
 Christian Brauner <brauner@kernel.org>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>, Vlastimil Babka
 <vbabka@suse.cz>, Mike Rapoport <rppt@kernel.org>,
 Suren Baghdasaryan <surenb@google.com>, Michal Hocko <mhocko@suse.com>,
 Zi Yan <ziy@nvidia.com>, Baolin Wang <baolin.wang@linux.alibaba.com>,
 Nico Pache <npache@redhat.com>, Ryan Roberts <ryan.roberts@arm.com>,
 Dev Jain <dev.jain@arm.com>, Barry Song <baohua@kernel.org>,
 Jann Horn <jannh@google.com>, Pedro Falcato <pfalcato@suse.de>,
 Hugh Dickins <hughd@google.com>, Oscar Salvador <osalvador@suse.de>,
 Lance Yang <lance.yang@linux.dev>
References: <20250811112631.759341-1-david@redhat.com>
 <20250811112631.759341-7-david@redhat.com>
 <dac9e243-33ce-4203-a598-2877cf908cad@lucifer.local>
From: Christophe Leroy <christophe.leroy@csgroup.eu>
Content-Language: fr-FR
In-Reply-To: <dac9e243-33ce-4203-a598-2877cf908cad@lucifer.local>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Lorenzo,

Le 12/08/2025 Ã  20:23, Lorenzo Stoakes a Ã©critÂ :
> On Mon, Aug 11, 2025 at 01:26:26PM +0200, David Hildenbrand wrote:
>> We want to make use of "pgtable_level" for an enum in core-mm. Other
>> architectures seem to call "struct pgtable_level" either:
>> * "struct pg_level" when not exposed in a header (riscv, arm)
>> * "struct ptdump_pg_level" when expose in a header (arm64)
>>
>> So let's follow what arm64 does.
>>
>> Signed-off-by: David Hildenbrand <david@redhat.com>
> 
> This LGTM, but I'm super confused what these are for, they don't seem to be
> used anywhere? Maybe I'm missing some macro madness, but it seems like dead
> code anyway?

pg_level[] are used several times in arch/powerpc/mm/ptdump/ptdump.c, 
for instance here:

static void note_page_update_state(struct pg_state *st, unsigned long 
addr, int level, u64 val)
{
	u64 flag = level >= 0 ? val & pg_level[level].mask : 0;
	u64 pa = val & PTE_RPN_MASK;

	st->level = level;
	st->current_flags = flag;
	st->start_address = addr;
	st->start_pa = pa;

	while (addr >= st->marker[1].start_address) {
		st->marker++;
		pt_dump_seq_printf(st->seq, "---[ %s ]---\n", st->marker->name);
	}
}

> 
> Anyway:
> 
> Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
> 
>> ---
>>   arch/powerpc/mm/ptdump/8xx.c      | 2 +-
>>   arch/powerpc/mm/ptdump/book3s64.c | 2 +-
>>   arch/powerpc/mm/ptdump/ptdump.h   | 4 ++--
>>   arch/powerpc/mm/ptdump/shared.c   | 2 +-
>>   4 files changed, 5 insertions(+), 5 deletions(-)
>>
>> diff --git a/arch/powerpc/mm/ptdump/8xx.c b/arch/powerpc/mm/ptdump/8xx.c
>> index b5c79b11ea3c2..4ca9cf7a90c9e 100644
>> --- a/arch/powerpc/mm/ptdump/8xx.c
>> +++ b/arch/powerpc/mm/ptdump/8xx.c
>> @@ -69,7 +69,7 @@ static const struct flag_info flag_array[] = {
>>   	}
>>   };
>>
>> -struct pgtable_level pg_level[5] = {
>> +struct ptdump_pg_level pg_level[5] = {
>>   	{ /* pgd */
>>   		.flag	= flag_array,
>>   		.num	= ARRAY_SIZE(flag_array),
>> diff --git a/arch/powerpc/mm/ptdump/book3s64.c b/arch/powerpc/mm/ptdump/book3s64.c
>> index 5ad92d9dc5d10..6b2da9241d4c4 100644
>> --- a/arch/powerpc/mm/ptdump/book3s64.c
>> +++ b/arch/powerpc/mm/ptdump/book3s64.c
>> @@ -102,7 +102,7 @@ static const struct flag_info flag_array[] = {
>>   	}
>>   };
>>
>> -struct pgtable_level pg_level[5] = {
>> +struct ptdump_pg_level pg_level[5] = {
>>   	{ /* pgd */
>>   		.flag	= flag_array,
>>   		.num	= ARRAY_SIZE(flag_array),
>> diff --git a/arch/powerpc/mm/ptdump/ptdump.h b/arch/powerpc/mm/ptdump/ptdump.h
>> index 154efae96ae09..4232aa4b57eae 100644
>> --- a/arch/powerpc/mm/ptdump/ptdump.h
>> +++ b/arch/powerpc/mm/ptdump/ptdump.h
>> @@ -11,12 +11,12 @@ struct flag_info {
>>   	int		shift;
>>   };
>>
>> -struct pgtable_level {
>> +struct ptdump_pg_level {
>>   	const struct flag_info *flag;
>>   	size_t num;
>>   	u64 mask;
>>   };
>>
>> -extern struct pgtable_level pg_level[5];
>> +extern struct ptdump_pg_level pg_level[5];
>>
>>   void pt_dump_size(struct seq_file *m, unsigned long delta);
>> diff --git a/arch/powerpc/mm/ptdump/shared.c b/arch/powerpc/mm/ptdump/shared.c
>> index 39c30c62b7ea7..58998960eb9a4 100644
>> --- a/arch/powerpc/mm/ptdump/shared.c
>> +++ b/arch/powerpc/mm/ptdump/shared.c
>> @@ -67,7 +67,7 @@ static const struct flag_info flag_array[] = {
>>   	}
>>   };
>>
>> -struct pgtable_level pg_level[5] = {
>> +struct ptdump_pg_level pg_level[5] = {
>>   	{ /* pgd */
>>   		.flag	= flag_array,
>>   		.num	= ARRAY_SIZE(flag_array),
>> --
>> 2.50.1
>>



From xen-devel-bounces@lists.xenproject.org Tue Aug 12 18:55:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 18:55:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079067.1440049 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uluA1-0005bR-LC; Tue, 12 Aug 2025 18:55:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079067.1440049; Tue, 12 Aug 2025 18:55: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 1uluA1-0005bK-IT; Tue, 12 Aug 2025 18:55:49 +0000
Received: by outflank-mailman (input) for mailman id 1079067;
 Tue, 12 Aug 2025 18:55:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=CWaV=2Y=oracle.com=lorenzo.stoakes@srs-se1.protection.inumbo.net>)
 id 1uluA0-0005ay-2o
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 18:55:48 +0000
Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com
 [205.220.165.32]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f3670e05-77ad-11f0-a328-13f23c93f187;
 Tue, 12 Aug 2025 20:55:46 +0200 (CEST)
Received: from pps.filterd (m0246617.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57CDC2om007903;
 Tue, 12 Aug 2025 18:55:05 GMT
Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com
 (phxpaimrmta02.appoci.oracle.com [147.154.114.232])
 by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 48dxvwwar8-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 12 Aug 2025 18:55:05 +0000 (GMT)
Received: from pps.filterd
 (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1])
 by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2)
 with ESMTP id 57CITnFQ030176; Tue, 12 Aug 2025 18:55:04 GMT
Received: from nam12-mw2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on2059.outbound.protection.outlook.com [40.107.244.59])
 by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id
 48dvsac76a-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 12 Aug 2025 18:55:04 +0000
Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16)
 by MN2PR10MB4176.namprd10.prod.outlook.com (2603:10b6:208:1da::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.15; Tue, 12 Aug
 2025 18:55:01 +0000
Received: from DM4PR10MB8218.namprd10.prod.outlook.com
 ([fe80::2650:55cf:2816:5f2]) by DM4PR10MB8218.namprd10.prod.outlook.com
 ([fe80::2650:55cf:2816:5f2%5]) with mapi id 15.20.9031.012; Tue, 12 Aug 2025
 18:55: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>
X-Inumbo-ID: f3670e05-77ad-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=
	corp-2025-04-25; bh=9o3m+hDy0jvSeDexqUnfcW6wRIyfFj/0HFoaSWjr8UI=; b=
	kZvhc13/LiAwfmo3Ki2Zx5RG3EV8vREsUritDTL5NTf1RjAPlBrAYjGN4NL4Ns6H
	NG8T/IA/5ktGm5vvRn4FooGjQJ/lwIygG1z7i2NyjoAac8KUa4y74Do/N6h9GCZm
	nJgWSPNhdUqIGYRL2n6TLHfZbJch1zU4xOlAWLlh9xllnWMMMHId9Lre8w1HzovI
	qNn1msDySxhSAujHth/4C8hOP3eAYYqEGuV12fvrYFGOAxd0xXuq0H0JTBaeojS1
	My6UR1F82RuWLl82zkDYoZExN2OyLeHrGTtR04hQepuqlbKBLv+kY+LfeP0p/wmH
	0UYc1RsdFy6rQdU8hfCvjQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FD8VMbbenjEOIvYKnCNt3dodOeacLN8NgeUv1JWedgSpc95HAuevkRlutm2BE/o7X+Cxj/D0Z9ERPu7bVJxVcc7Nzigy8neyqJIgK+lNyN459zm05eO1Wj735UrnhQ10oaDLzgVt58vHQUveTx+HBgEWBH1BKKXwo07NCPnozY8/LmNVWpPoyi4Icoxy5mWeLnqD9WYX5tag34zK8WKArl2JiiBCbAl8YPTWjxXQmd8aS1MU+EKrGLEnTQl3nWTjUhknQ3Kk1JIaZtUzb/IW2mM9lcL99mL17+BPiwjs9veq0QWpLZwz7QP1A8+Ho9iLEu73ZsuoIofY52JMfdcJlQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0+gJFQiZ+E5RnyBSVn0fN31nmEjigwLfNZqWfQFLN9g=;
 b=Cnz5TtWdRgZGDrgJe/CEK9neIqTZhT9xn9r+Lug8WMq97FvWSwsL/vtqyWohvlO4xALPw5p/ojIeLkCjyY3nKo8lx6otd7RonO4WVPNZEO8msr+Njlp8Rv03KC6Yu7ihwb+Z0cBdKkKFNaaDzzBY9SGBSRevPTKn/x27UC1YkZX99U7eqYCBxJ+Iu1DAqGTx5DLfkM7A+6xLdwX/seTthVhwzDKQnARpE4KgJh1WquHh2sf+6c3vGFvTtmM88hNCTa6+r5VqaO88dqTxBi0rSmePjLx2zL/pg2im2+idV3YFMnjpiCbkWL1O6pIA4QGr0bx1DmdDtpHLK1e8tdnyug==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0+gJFQiZ+E5RnyBSVn0fN31nmEjigwLfNZqWfQFLN9g=;
 b=aPm3POkbg6sq+wIRgx1p3xwePpKyGFmsh6abPpRYWiZgIzufJ1Yg/aXXPC4r6d3hHjHtZK5U0o9gT3b0E8D1m8HoMBXdaMh5u/U94M/zCN41GXzeJwnS34xuPZ5vp4jsS1ZToXzd6q2hi+nW3vNepKNYwhQX28n4RpcS6pe0728=
Date: Tue, 12 Aug 2025 19:54:58 +0100
From: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
To: Christophe Leroy <christophe.leroy@csgroup.eu>
Cc: David Hildenbrand <david@redhat.com>, linux-kernel@vger.kernel.org,
        linux-mm@kvack.org, xen-devel@lists.xenproject.org,
        linux-fsdevel@vger.kernel.org, nvdimm@lists.linux.dev,
        linuxppc-dev@lists.ozlabs.org,
        Andrew Morton <akpm@linux-foundation.org>,
        Madhavan Srinivasan <maddy@linux.ibm.com>,
        Michael Ellerman <mpe@ellerman.id.au>,
        Nicholas Piggin <npiggin@gmail.com>, Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Dan Williams <dan.j.williams@intel.com>,
        Matthew Wilcox <willy@infradead.org>, Jan Kara <jack@suse.cz>,
        Alexander Viro <viro@zeniv.linux.org.uk>,
        Christian Brauner <brauner@kernel.org>,
        "Liam R. Howlett" <Liam.Howlett@oracle.com>,
        Vlastimil Babka <vbabka@suse.cz>, Mike Rapoport <rppt@kernel.org>,
        Suren Baghdasaryan <surenb@google.com>, Michal Hocko <mhocko@suse.com>,
        Zi Yan <ziy@nvidia.com>, Baolin Wang <baolin.wang@linux.alibaba.com>,
        Nico Pache <npache@redhat.com>, Ryan Roberts <ryan.roberts@arm.com>,
        Dev Jain <dev.jain@arm.com>, Barry Song <baohua@kernel.org>,
        Jann Horn <jannh@google.com>, Pedro Falcato <pfalcato@suse.de>,
        Hugh Dickins <hughd@google.com>, Oscar Salvador <osalvador@suse.de>,
        Lance Yang <lance.yang@linux.dev>
Subject: Re: [PATCH v3 06/11] powerpc/ptdump: rename "struct pgtable_level"
 to "struct ptdump_pglevel"
Message-ID: <e97675f8-ba69-464e-982c-8a8bdfbb2547@lucifer.local>
References: <20250811112631.759341-1-david@redhat.com>
 <20250811112631.759341-7-david@redhat.com>
 <dac9e243-33ce-4203-a598-2877cf908cad@lucifer.local>
 <1cc6f739-3891-4cc7-84ac-676fef62c445@csgroup.eu>
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <1cc6f739-3891-4cc7-84ac-676fef62c445@csgroup.eu>
X-ClientProxiedBy: GVZP280CA0057.SWEP280.PROD.OUTLOOK.COM
 (2603:10a6:150:271::11) To DM4PR10MB8218.namprd10.prod.outlook.com
 (2603:10b6:8:1cc::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DM4PR10MB8218:EE_|MN2PR10MB4176:EE_
X-MS-Office365-Filtering-Correlation-Id: 5db15002-cd01-44cb-2479-08ddd9d1bdc3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016;
X-Microsoft-Antispam-Message-Info:
	=?iso-8859-1?Q?pK/F8d04J4pXDpnnzFKY3g6RtVFsTagmFg6sjag5QFRWAQtGCNl7XhX/Ao?=
 =?iso-8859-1?Q?AeXyfQvVasbXyy1lCIIw2vxIG9WxTmh1xqrVxq3LF1sOjPCZBFeXrM5oQF?=
 =?iso-8859-1?Q?XYyorhDFCncaU4/a+aDlj2Hd6U2XRWlgYNHChFtKg41rDR6GFHmPPXAPXH?=
 =?iso-8859-1?Q?WqRCtSuLmUfXcHL7yyfhrcB9qoolaWjcte3whOwGe8ymuiUpRsrwU4msMo?=
 =?iso-8859-1?Q?cboX5cP5IJD0XVctI/J5fYoUxFi45A/XUkwlM/RVKM0/kGqBq7lQQWpXbT?=
 =?iso-8859-1?Q?0WkGE65V4siXxe57e7dCk2ike7MGtrbz/oN7vUnVxofXJE09Rwv6pK9bZR?=
 =?iso-8859-1?Q?gR4s9IGJLtfbY6DR9jTxnR2wGO15SwlMBcj95hf7mpih9DG86uLc5zK/70?=
 =?iso-8859-1?Q?Gei00F86yx6Oi5vb2mn4rEZm/Z8uxmZAt/l1Mf2WmV/5k9P0rYhjdVk+N3?=
 =?iso-8859-1?Q?XKlkSrNccMqNfPZlab+t3udFr+QuYOpixAe50hyxktIQDdCFljySga+gZj?=
 =?iso-8859-1?Q?2uDxdIWsUugHatAHtgBTA3KVfXfInEK4PRI8eoVoe0Rx+1RI2HLaS69ZNV?=
 =?iso-8859-1?Q?ocsR92Ygp1LjmVRNJW8Pq8T8bxsPGYwbtPWzRQU/e1XtT6b/qkEF5KimyK?=
 =?iso-8859-1?Q?74QEuxyyugfcdEoq8gxm7BMPqNmGtBRSdxXObXm3bCaPjOXsMT0fvyOZgT?=
 =?iso-8859-1?Q?QmmhyuC+VGfShipcmTfJXH3W7U2kxtthqEwdBnASEbpYNGkUC6yVTXiNF1?=
 =?iso-8859-1?Q?j7gLHxqdqIol1NxsPkPefsX+PaApZnnvdUYbFIzwMCmDms5ohsEVj6UJch?=
 =?iso-8859-1?Q?9IkxxLSjsgB1Mqw4DQC6+iVpVFf5WSUk0tn8QCIIEv/zKKvjblFAq7EqEy?=
 =?iso-8859-1?Q?Tl0pfrpJ80ddMhszThG8mg6vDgKRAzEbO2L4s1kK7imuL0/JLfXf0eDum6?=
 =?iso-8859-1?Q?gVf4P6GSHUS9REvubd6PCReZNKrj4KQNGBzxUNuCSEHzGerha3WiUY1PEI?=
 =?iso-8859-1?Q?MbDzLH4/kqCVnViEZoY0WISGvRJqQRA610G78hMZSkljgMB71BHqiAQyXt?=
 =?iso-8859-1?Q?Yqovp9tciOktou0pFo5ezKXkQyAlJStYF/Z+RBACe4RM+lFZ2eURInRrZ8?=
 =?iso-8859-1?Q?yAF+KAKsE94tmKwraggtEHGS2rom2JsMxeJWXm67QiHWrsS9zxuW9s/U3Q?=
 =?iso-8859-1?Q?BAZ6/cTCB5zpryfRjMTXYxKs23+HUafNNftoP2GUbUDw3Bg4F0byFFANQD?=
 =?iso-8859-1?Q?zDUZktktPm1RYQLaNNURwk3Kkho03gclCk+haKwi88I8xhp/bf+3rDPrcM?=
 =?iso-8859-1?Q?bFJXx/+RdYpQJJDyrpmCbJRjguJGqmAYK2CFFyOBBDHsBWyzALw0c9PjP7?=
 =?iso-8859-1?Q?EdHCsYsjUiK6O3/p5A95AeebxymQxSTJKfNFUcbdTblQc1RaXvUM8eQ+OY?=
 =?iso-8859-1?Q?7RIqGq29obmzz5O9ykLS/Ozrol94pNjhO4ZkKg=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR10MB8218.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?iso-8859-1?Q?5ri0WIV4MVYcthf2b/aH56YkU61zs4uXplbtqAk2X2bo0mDr/xxYvciwBA?=
 =?iso-8859-1?Q?K88N0MFUTtU59VTkR/Fm1Sw8Tpl502JonKCa3V4QIxfyjani+r1tRvSqP1?=
 =?iso-8859-1?Q?jPiPZVoWS/hFnm2Oi//1FC2VkiEC6PUOgcxJOECk9xvMziGX5TsdaQitZu?=
 =?iso-8859-1?Q?vnq6QrFyKZhCk511fGrEbWyhD8Q5RUdJ08DfC0+RPVBalmDATATCrW4t/t?=
 =?iso-8859-1?Q?72zqPB3SoljM+5grI9a8mmsuJcLDPdq1WfmQET/4egzpwrczHrsyszySBu?=
 =?iso-8859-1?Q?x/EvZwI/sVjspUTS2UI6g9f5QD5Ne2GwpF4cmF7yfFeFCxeGgRouhrCudO?=
 =?iso-8859-1?Q?Ev45kTbDYnYvlfNaKAXjz53Xajir6Md6BbipsHWNn4nxdCh6Y3nTEuQFkk?=
 =?iso-8859-1?Q?PnE9ArjalvnpKwqxcTg0iWKz0v3T+tionxDhrFdgju+9rWG0OhWZJApc5L?=
 =?iso-8859-1?Q?hHOu2museWR73tVIHtZo/727ClFTuFd22W/Bth8OkdjYGxeCtyKNOE8AEG?=
 =?iso-8859-1?Q?co8JYwaJR6lRDIYB7HC3bBsPO3OCyCqUn/mgF97Pi79B5p/tWPSwPpiVs5?=
 =?iso-8859-1?Q?NqpCy0Pi4pZQGxDIXptDw6ITdY7qgXb1FNAf+zO7LVA+gEE4uJyiRhivkC?=
 =?iso-8859-1?Q?awpBv7B0itAT6VPp1ONZIntOAOKiztUjeicKMbvaVu2JSKzm0v+ba/nmif?=
 =?iso-8859-1?Q?DStGAbrDiCgNHUw+eYLR6OdBdH/dltpuBqO3kTHzUXpr2xx7osDkh2WM7Z?=
 =?iso-8859-1?Q?pCziaeoULFvSjus6gpzmi9+yDijhkRe8brjbCgpghv/oMEJF+/bOvzJSbr?=
 =?iso-8859-1?Q?K1cjMET/QKwYj9nbyWEr8iO6qALPzLk4H1R6CsRs4J5mNRgVP48vQuMqMY?=
 =?iso-8859-1?Q?WIPWORO/H7kxws2yVs4Hr6YKP/s9AIrsgSRsA82FzWlDBM/MkSo7vb//jb?=
 =?iso-8859-1?Q?/qNzj18aqZ4CfgP1tChcJRyv8Y3EgVA2QJGt3NGqtAM6yS1Orkcpket8Vc?=
 =?iso-8859-1?Q?c6NFfJoTKV9FIgRiAMquRl4y657xoy7b3dVSoCg7WI6wPYON2d5pPwzzzu?=
 =?iso-8859-1?Q?EUeeF03Q4KEh17oqVbuUJjBjVxoh9L35F2fPQWzzlvGf4/8kFT+9yx957D?=
 =?iso-8859-1?Q?E7PixK59tP7shrvUQVd3Bat2cP9ro+xEBmTy0c01KcCX1UAHIMH4f559FC?=
 =?iso-8859-1?Q?Guo0wyRObkuLwYO250Bhfk7y/agwMuF3wJTuQqH8AWHqAu5D29ij4tkasG?=
 =?iso-8859-1?Q?nzEoIF0iqmsUV3VQVuh0xQGyT3U9z0TGMDe726Z+cf18WM5Xk4MVLwOwTl?=
 =?iso-8859-1?Q?Ya02muE8q1wrzZERNtvNCuqiVLA/dR3R/455Z4/oqzTdnQXioeA+2EHF4H?=
 =?iso-8859-1?Q?stvY9GfZocDwu/kGmU4d5h/v2bpPxiQqE5xmX0wqhtd6S4o+OC/WMQfnOp?=
 =?iso-8859-1?Q?bjGlIOkd9UdtPuu2uD9DBUrwwPA+PIPzAyyr3vdVwD9Tfe5bICP8+/FlWP?=
 =?iso-8859-1?Q?K6DXVwdSy937tj6rlT+T6iGqJSje+ME7c5oC7u7l8G41FwrE2WkhG5ppr2?=
 =?iso-8859-1?Q?pSY/YxYY+eAdJzxDiuo46fKtYnvp1OgHjM4ox+8uXPGbV+pL5xnlLw9hZc?=
 =?iso-8859-1?Q?yxiydrIcLNWBBGNuV7wH5/dhpflLOGNnpk26aAlKTLWk5Y8TcAUbTEMg?=
 =?iso-8859-1?Q?=3D=3D?=
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	YkOp6p7oMQHjGxG26Mj7aJJ5JTKFW8/2i08RgX0+Nyql8ugJKUFXOaM7gHDHSLVgyykkVf4vKX7cmq+YPQ/47xvPwXa6IWME7W0pI7G/jp0NVzfKLVfh+nUJSHf1URBXHS64NiAodKtmN6g9uhyDs3ggV84iV3gJjtgb7q7J6SRnEVv52FsLPxqOos0Be3kyWxeML82jYWCCKRFlkOYKj/Al55xEAnM5fa4J1gDYZSJHtYHnUkN6aaFNaJQpFjgGwuY03BUXz07W+OGCaVqrn8iUedOgNkz2B2F9nZXXt7+tfs9jDsmC56+CFg6WXNlJrFwLdNyi7tqqc+HLVwBrgd81jnnIOjJGFd3f5cPRvhyCigeVp5WkxpPiumkOX4UgNSF6XGB/otB68wZIkyaNEQQzCZX3KZIS+GhepMZEBC2HwtfbTv12LwE84fqmgaTtqCrqEwBZL8KMeo94v4YYO1Icj+jcOKBHAZbuZVgWW6iceICBCYdpOUBwTHlFkl3EOh/jSnVrtW51O9Q1K6QEijsgSpTzGijyW89k4LVYYr7TUFCfyEz/oBeg3caRG1Tbmg9xASplGFflriWTCiI7/W7Y2HVO8fsXNhBKrhfk4v8=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5db15002-cd01-44cb-2479-08ddd9d1bdc3
X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Aug 2025 18:55:01.2215
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: wCMTOVh0DzMg0apyLK4qYpTXueijZOe8mWb0S9OeFFQhbFZmWm9GL5tdkBpVybDomoCbhl1BPYrhLO3mazzgYjRVEbW9+4T3es3n4sNbFaM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB4176
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40
 definitions=2025-08-12_07,2025-08-11_01,2025-03-28_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 phishscore=0
 adultscore=0 mlxscore=0 bulkscore=0 spamscore=0 mlxlogscore=999
 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2507300000 definitions=main-2508120182
X-Proofpoint-GUID: jtbapDGhe7kBe2UIJYykSJmOg6RqggDR
X-Proofpoint-ORIG-GUID: jtbapDGhe7kBe2UIJYykSJmOg6RqggDR
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODEyMDE4MSBTYWx0ZWRfXzFpIVB0Xlasv
 r2194optkhSnGj5dNEbtuw0a/BzsM6yLsdkIDxBVgB0E8MwP0VUQCzty6xALZSWkjSa4SII+DwT
 014edRTSUPfCWwrcDZ54wd6LZRVVTo0yau9KpPB4n+floRtcAi8BoybSQnvvWLchODK0GSbLb/k
 S9l7JaJ++8DfJhuCOx051oNTxmQZNZFPAEOC4HaaDIce3j7EWBOVp9mT6VyV98UqDx/6htJOP1b
 PGRNfGayOXVg7+CcTW6xaed3+vHFMEPXufULEx3diVZYCcPZypOuZFibYRHKejcVPfVrpuxU/3z
 jDUl6sS4pa3sSEwUE0y2vdC16MHUezFkeXfT3T6VhXvbwAFcwTwA9Jo+2kkY55wBCvc9Nl1wRpw
 Q17bHsU49D3Q/4PRrNyksuwKOOu9OT9ApXUSLVtCu74bknFB+ixpdy585wAeSBSJplcD3adH
X-Authority-Analysis: v=2.4 cv=dpnbC0g4 c=1 sm=1 tr=0 ts=689b8e09 cx=c_pps
 a=OOZaFjgC48PWsiFpTAqLcw==:117 a=OOZaFjgC48PWsiFpTAqLcw==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19
 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19
 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=8nJEP1OIZ-IA:10
 a=2OwXVqhp2XgA:10 a=GoEa3M9JfhUA:10 a=20KFwNOVAAAA:8 a=3WaMMtSQ3YATO-fFicEA:9
 a=3ZKOabzyN94A:10 a=wPNLvfGTeEIA:10

On Tue, Aug 12, 2025 at 08:39:36PM +0200, Christophe Leroy wrote:
> Hi Lorenzo,
>
> Le 12/08/2025 à 20:23, Lorenzo Stoakes a écrit :
> > On Mon, Aug 11, 2025 at 01:26:26PM +0200, David Hildenbrand wrote:
> > > We want to make use of "pgtable_level" for an enum in core-mm. Other
> > > architectures seem to call "struct pgtable_level" either:
> > > * "struct pg_level" when not exposed in a header (riscv, arm)
> > > * "struct ptdump_pg_level" when expose in a header (arm64)
> > >
> > > So let's follow what arm64 does.
> > >
> > > Signed-off-by: David Hildenbrand <david@redhat.com>
> >
> > This LGTM, but I'm super confused what these are for, they don't seem to be
> > used anywhere? Maybe I'm missing some macro madness, but it seems like dead
> > code anyway?
>
> pg_level[] are used several times in arch/powerpc/mm/ptdump/ptdump.c, for
> instance here:
>
> static void note_page_update_state(struct pg_state *st, unsigned long addr,
> int level, u64 val)
> {
> 	u64 flag = level >= 0 ? val & pg_level[level].mask : 0;
> 	u64 pa = val & PTE_RPN_MASK;
>
> 	st->level = level;
> 	st->current_flags = flag;
> 	st->start_address = addr;
> 	st->start_pa = pa;
>
> 	while (addr >= st->marker[1].start_address) {
> 		st->marker++;
> 		pt_dump_seq_printf(st->seq, "---[ %s ]---\n", st->marker->name);
> 	}
> }
>

Ahhhh ok so you're _always_ happening to reference a field in the global value,
thereby not referencing the _type_ anywhere but referencing fields of the
global.

Thanks, that clears that up! :)


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 18:56:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 18:56:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079069.1440060 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uluAF-0005v4-2B; Tue, 12 Aug 2025 18:56:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079069.1440060; Tue, 12 Aug 2025 18:56: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 1uluAE-0005ux-VG; Tue, 12 Aug 2025 18:56:02 +0000
Received: by outflank-mailman (input) for mailman id 1079069;
 Tue, 12 Aug 2025 18:56:02 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1uluAD-0005uD-V9
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 18:56:01 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1uluAD-001pCl-0s;
 Tue, 12 Aug 2025 18:56:01 +0000
Received: from [2a01:e0a:1da:8420:b77:bd5:6e45:7633] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1uluAD-001cZc-0Z;
 Tue, 12 Aug 2025 18:56: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Transfer-Encoding:
	Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date;
	bh=SIymliSzowbOlEA87MiW+fNWqjMd+iDSIaqQrVO9JTU=; b=hdQOC8pVbMtION/jWj6ee4XH6s
	+yvCN/hAJc6an3RDwpAsR6FWKQ42QNhnC3C1PkTb27P2rYGJf28k+jqoWCoEPpwfA+sXTWYFl69xT
	WunrX4pn5KyNYMMj8wT/lafHYz4+AsdvaW3Ud5kzaJIZ0ITs2kCy37UMRbJghT7Gy2xo=;
Date: Tue, 12 Aug 2025 20:55:59 +0200
From: Anthony PERARD <anthony@xenproject.org>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Javi Merino <javi.merino@cloud.com>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH] CI: Turn debian/12-x86_64 into a non-root container
Message-ID: <aJuOP52xGg8hUN_H@l14>
References: <20250812162950.1903901-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20250812162950.1903901-1-andrew.cooper3@citrix.com>

On Tue, Aug 12, 2025 at 05:29:50PM +0100, Andrew Cooper wrote:
> From: Javi Merino <javi.merino@cloud.com>
> 
> Since commit 4611ae6fb8f9 ("CI: save toolstack artifact as cpio.gz"), the
> various automation/scripts/* no longer need to be root to correctly repack the
> initrd for test.
> 
> Signed-off-by: Javi Merino <javi.merino@cloud.com>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Anthony PERARD <anthony.perard@vates.tech>
> 
> Xen 4.20 and later uses debian:12-x86_64 and also contains 4611ae6fb8f9 so
> this is safe to change generally.

I gave it a try, just to be sure:
    https://gitlab.com/xen-project/people/anthonyper/xen/-/pipelines/1980442689
and staging-4.20:
    https://gitlab.com/xen-project/people/anthonyper/xen/-/pipelines/1980621317

(all the failed build should be because I was lazy and didn't rebuild
all containers or didn't select a subset of the builds. All test passed
or are skipped, which is what I was looking for)

So:
Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 19:01:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 19:01:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079094.1440070 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uluF0-00082q-JL; Tue, 12 Aug 2025 19:00:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079094.1440070; Tue, 12 Aug 2025 19: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 1uluF0-00082i-GQ; Tue, 12 Aug 2025 19:00:58 +0000
Received: by outflank-mailman (input) for mailman id 1079094;
 Tue, 12 Aug 2025 19:00:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ed2z=2Y=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1uluEz-000817-0h
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 19:00:57 +0000
Received: from NAM04-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam04on2062a.outbound.protection.outlook.com
 [2a01:111:f403:240a::62a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a990ef1c-77ae-11f0-b898-0df219b8e170;
 Tue, 12 Aug 2025 21:00:51 +0200 (CEST)
Received: from SJ0PR13CA0078.namprd13.prod.outlook.com (2603:10b6:a03:2c4::23)
 by DM4PR12MB6640.namprd12.prod.outlook.com (2603:10b6:8:8f::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.13; Tue, 12 Aug
 2025 19:00:44 +0000
Received: from SJ5PEPF00000206.namprd05.prod.outlook.com
 (2603:10b6:a03:2c4:cafe::1b) by SJ0PR13CA0078.outlook.office365.com
 (2603:10b6:a03:2c4::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9031.15 via Frontend Transport; Tue,
 12 Aug 2025 19:00:44 +0000
Received: from SATLEXMB03.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_128_GCM_SHA256) id
 15.20.9031.11 via Frontend Transport; Tue, 12 Aug 2025 19:00:44 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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, 12 Aug
 2025 14:00:42 -0500
Received: from fedora.mshome.net (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Tue, 12 Aug 2025 14:00: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>
X-Inumbo-ID: a990ef1c-77ae-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=v/shoHpLWv2q81MvaAHbJTZ/MnduXnyeqFj9ypqot1+9Gg2OTfa4fys1cSiQouYSx6L8I5HZubPKkIcqP78l8E3oLViQvM4G66qssOUDGPfSnm1v1pEt80PEWLuPeHq+owRVstHvfePxWxxH4ZplKZjdACGIVUtgjH34aGuvV0f/Qo6MlTS93PP00pArsjKh+s1vnKv1gTVxEZ4ZJAaQxwpIzrvxXSjuxo1hA3V7MJ9yQgmhUK7qqMadD4wAoZ9MkUf8neuSM1vNpK+KeZOHa47cMaNZPUDpkCkR99fyhu28OSds6Vbi8RPu7R4msC6U5gXVyompbYOKUosVf6HGaw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=dz3PNh+i6ro6eUvfZ5R1Ro9CUvmUQBqEHRmywmQA9jc=;
 b=CENGDAPMErsz6abIEIhR5yKNqlTzU+PE+vL3fD66EW6uR9f88Leh5vftHDmukMt6yYrkQkltW1l+xyWbBw4goH4nk7+eMEhru+qRbm+jBPzQ11xx8u5hf5esm2BGXtbR5aLpTxQKG8IrIQii7uipmWW0nHbMcpH+3lVXnxT+Cr4UBX49btPuS76k/6RLT9vQoYQJq9EW/VZcr5I2A499oTrhbrUw10RbXbvl9WBvQWafNmMKb9lmlgSwhwCPYJj7zDa4orzdvdLIPDNqKQ/9huLbwMx5gV6I8sxHpyXnin5YMGbhdAIoNP1rQrsML9uJEBH9biXJ7orvkBEjvXaNfA==
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=dz3PNh+i6ro6eUvfZ5R1Ro9CUvmUQBqEHRmywmQA9jc=;
 b=rQLcUhPZQxCbu7neB5I6TtMNAf0XNu5XukIohy7QnUo+CjK4V3k8Jz0zq83OwFuPZCsGdn63jTgROtmPaQErKeV6JcMfZIqeFNShi7dG16AJkg81pIrrbK91qH5tvJtrIpnk1yOOKZq6qNeWiogBCxTTjfSN7r1v9TwHHw2+CBQ=
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=SATLEXMB03.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: Juergen Gross <jgross@suse.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Oleksandr Tyshchenko
	<oleksandr_tyshchenko@epam.com>, Chris Wright <chrisw@sous-sol.org>, "Jeremy
 Fitzhardinge" <jeremy@xensource.com>
CC: Jason Andryuk <jason.andryuk@amd.com>, <stable@vger.kernel.org>,
	<xen-devel@lists.xenproject.org>, <linux-kernel@vger.kernel.org>
Subject: [PATCH] xen/events: Fix Global and Domain VIRQ tracking
Date: Tue, 12 Aug 2025 15:00:40 -0400
Message-ID: <20250812190041.23276-1-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.50.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB03.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ5PEPF00000206:EE_|DM4PR12MB6640:EE_
X-MS-Office365-Filtering-Correlation-Id: a604fa9c-e92b-4c21-e36f-08ddd9d28a56
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|376014|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?POVh427oB0urNGjNdGXUFW29B1nP0yzm+Ra6XTPOOfBXen2I/L5CfDt4IOGe?=
 =?us-ascii?Q?E+8WWfbx9J/tkcfX/n90w/usYLpDB0UpRmeaey8i25XI/hsWOT9r3rOm4iwk?=
 =?us-ascii?Q?3ODP9/xIr9tBwZHv2D1cbs60CeZVMfyPpOOrsVFNipdk8cgZM4wg7vbVvyyp?=
 =?us-ascii?Q?rMHmr4YHn+cbjEvLsxZv28X2RRJezPrr4Tub2plKXxXrQc4W7jerUAliD1OJ?=
 =?us-ascii?Q?IkQMbPMw0yN3uJqz50ebWzrCXGItHpZg8wBUmTtNZFzXOPcdj1tHrLgIOuRI?=
 =?us-ascii?Q?R2sxRthYHGgP8KXUCoC0FvpPgl00X/ksCpz+DS/za0jeLaKVJozpl7e64loJ?=
 =?us-ascii?Q?zmNzdFml5dFORJDut03J2TRgl0F3AWl9Dxq7Zv/0kHXJLbKMufubu8J71u9v?=
 =?us-ascii?Q?4pvRFqNU5raDR9S2tBXhjSxC5O2jaLlK5tjQpaPiU/wUsApGDnNp8HW0m970?=
 =?us-ascii?Q?MMqFOy489LBKFiaiKLwpnw0agbRUUrCEuaQVQUdOs/UQwT9+/meXdoqp7BPY?=
 =?us-ascii?Q?AOWfrEqtMctSxPcgmnqEGBIoW2oHcfdO2jlsD6RpZ3zUzwaEwYJ8iIu8suth?=
 =?us-ascii?Q?HeNtpdJOuP1xhT88E7jTzXCQ+qIUaYqpN/TLFZXCCn8OBP4ssL6SbZ7EFmK/?=
 =?us-ascii?Q?mJ/GfC8U0OsyX0I+E+Wuy7dV/BqnlDX1L24PTl6MyDW0wTyL9tFjGjzn5G0R?=
 =?us-ascii?Q?/TXGsdtPWQIWMA8HSk5PAG+o+L6PK9l42/IijVQgFzVFZa7bSribJSDqobXO?=
 =?us-ascii?Q?azxzwgBYQidBYEE1gfO0Io1w2wFLnyRStr8xF0bsytHDcd+SFdcxBhUWUn3a?=
 =?us-ascii?Q?AHaNR4DltLzN3O3ouZVfYeM/Jqbq98iw+1l4LyZTPhoYg23iifRjRj3lJhHs?=
 =?us-ascii?Q?tWUKRGqJCyDHwMzSiYiYWpQ0iECXmf1pC++lYK3UJVs+Fx2YxlOtKzSaRfya?=
 =?us-ascii?Q?HwbMUx5M06tufeczLyh6tSC6cqcLdASbiwKzHyk5n0lGX0ArBhKdnT24yR+n?=
 =?us-ascii?Q?XTHLBmqoLaW+WSxAmDh0wpIIMIkGGSEQSIPh/7Ds/sZ1AcL5CHhw1h4+cKHb?=
 =?us-ascii?Q?svDNfOn7gzusAlDdTMwy/87zwI5hYxcM4a1XVKsz4OSckZ+G0Gk9EjwCbL2c?=
 =?us-ascii?Q?wLJ135hIirVS/8Ln+00Gi+UbWoPfFpfBL7//EPjM/IFYz0rFvbE19vFTO3G3?=
 =?us-ascii?Q?ukakeRhpBn7JFa5lX4HqEcQZVyHBxbepZroVXcFWtvlEz1OD17MDoNWYwfGF?=
 =?us-ascii?Q?Z5ax2zR+YdICXO6nQ3efSDUbDuTCKWRRZT6bIkXWgXh14sLWC1hNzQe6VXE9?=
 =?us-ascii?Q?5zUohsWHWb+yaT3LFIsOY4Uz3lHcN8rrRCzHuTruL1h0oxYVPK9kaA10DKOB?=
 =?us-ascii?Q?qimP6qs8yYJ4S+g5hExG4LooPhzJkVsfkBaV1nK2SzPM6HTn4XCUGhRT8Q38?=
 =?us-ascii?Q?E2n7oExXZiFNqF6/7IedFxI4Tz9eLY/HvozzuCdhMVkjlKmCmBnehhcNhrM+?=
 =?us-ascii?Q?sGksWJ07Sx9tqtqgwSXV9RARap8qWdLtLp11?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Aug 2025 19:00:44.2431
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a604fa9c-e92b-4c21-e36f-08ddd9d28a56
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=[SATLEXMB03.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: DM4PR12MB6640

VIRQs come in 3 flavors, per-VPU, per-domain, and global.  The existing
tracking of VIRQs is handled by per-cpu variables virq_to_irq.

The issue is that bind_virq_to_irq() sets the per_cpu virq_to_irq at
registration time - typically CPU 0.  Later, the interrupt can migrate,
and info->cpu is updated.  When calling unbind_from_irq(), the per-cpu
virq_to_irq is cleared for a different cpu.  If bind_virq_to_irq() is
called again with CPU 0, the stale irq is returned.

Change the virq_to_irq tracking to use CPU 0 for per-domain and global
VIRQs.  As there can be at most one of each, there is no need for
per-vcpu tracking.  Also, per-domain and global VIRQs need to be
registered on CPU 0 and can later move, so this matches the expectation.

Fixes: e46cdb66c8fc ("xen: event channels")
Cc: stable@vger.kernel.org
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
Fixes is the introduction of the virq_to_irq per-cpu array.

This was found with the out-of-tree argo driver during suspend/resume.
On suspend, the per-domain VIRQ_ARGO is unbound.  On resume, the driver
attempts to bind VIRQ_ARGO.  The stale irq is returned, but the
WARN_ON(info == NULL || info->type != IRQT_VIRQ) in bind_virq_to_irq()
triggers for NULL info.  The bind fails and execution continues with the
driver trying to clean up by unbinding.  This eventually faults over the
NULL info.
---
 drivers/xen/events/events_base.c | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/drivers/xen/events/events_base.c b/drivers/xen/events/events_base.c
index 41309d38f78c..a27e4d7f061e 100644
--- a/drivers/xen/events/events_base.c
+++ b/drivers/xen/events/events_base.c
@@ -159,7 +159,19 @@ static DEFINE_MUTEX(irq_mapping_update_lock);
 
 static LIST_HEAD(xen_irq_list_head);
 
-/* IRQ <-> VIRQ mapping. */
+static bool is_per_vcpu_virq(int virq) {
+	switch (virq) {
+	case VIRQ_TIMER:
+	case VIRQ_DEBUG:
+	case VIRQ_XENOPROF:
+	case VIRQ_XENPMU:
+		return true;
+	default:
+		return false;
+	}
+}
+
+/* IRQ <-> VIRQ mapping.  Global/Domain virqs are tracked in cpu 0.  */
 static DEFINE_PER_CPU(int [NR_VIRQS], virq_to_irq) = {[0 ... NR_VIRQS-1] = -1};
 
 /* IRQ <-> IPI mapping */
@@ -974,6 +986,9 @@ static void __unbind_from_irq(struct irq_info *info, unsigned int irq)
 
 		switch (info->type) {
 		case IRQT_VIRQ:
+			if (!is_per_vcpu_virq(virq_from_irq(info)))
+				cpu = 0;
+
 			per_cpu(virq_to_irq, cpu)[virq_from_irq(info)] = -1;
 			break;
 		case IRQT_IPI:
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 12 19:07:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 19:07:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079112.1440080 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uluLY-00014o-8N; Tue, 12 Aug 2025 19:07:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079112.1440080; Tue, 12 Aug 2025 19: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 1uluLY-00014h-5q; Tue, 12 Aug 2025 19:07:44 +0000
Received: by outflank-mailman (input) for mailman id 1079112;
 Tue, 12 Aug 2025 19:07:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=CWaV=2Y=oracle.com=lorenzo.stoakes@srs-se1.protection.inumbo.net>)
 id 1uluLW-00014S-T1
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 19:07:43 +0000
Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com
 [205.220.177.32]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9d57e0af-77af-11f0-b898-0df219b8e170;
 Tue, 12 Aug 2025 21:07:40 +0200 (CEST)
Received: from pps.filterd (m0333520.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57CJ2a3H020745;
 Tue, 12 Aug 2025 19:06:49 GMT
Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com
 (phxpaimrmta01.appoci.oracle.com [138.1.114.2])
 by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 48dxcf5gq9-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 12 Aug 2025 19:06:48 +0000 (GMT)
Received: from pps.filterd
 (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1])
 by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2)
 with ESMTP id 57CInspO030150; Tue, 12 Aug 2025 19:06:47 GMT
Received: from nam04-bn8-obe.outbound.protection.outlook.com
 (mail-bn8nam04on2059.outbound.protection.outlook.com [40.107.100.59])
 by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id
 48dvsacsxm-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 12 Aug 2025 19:06:47 +0000
Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16)
 by SA2PR10MB4681.namprd10.prod.outlook.com (2603:10b6:806:fb::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.22; Tue, 12 Aug
 2025 19:06:44 +0000
Received: from DM4PR10MB8218.namprd10.prod.outlook.com
 ([fe80::2650:55cf:2816:5f2]) by DM4PR10MB8218.namprd10.prod.outlook.com
 ([fe80::2650:55cf:2816:5f2%5]) with mapi id 15.20.9031.012; Tue, 12 Aug 2025
 19:06: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>
X-Inumbo-ID: 9d57e0af-77af-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=corp-2025-04-25; bh=M4Ufarry8myM4TKgab
	CN8p1VgTaBLW410dFYmTYHM/k=; b=D00U2Q+YCooqIXfN4znqux5GCjfTkNI0TK
	dG0rG9iJxPfMoESfxiOBMnSLTqwCaf3BnTbp8e/Wo7hLilCJ+UkvMp//pYQkw1Yh
	6mS5ephifDign5IyzVBiKClFbbUCj0N1085cVConZ3lpbampRBcbFR68j3HT2Oob
	abVknATkNXmAeTNGdBB/R2kWgWBaECCjM2ph4enChvtMaoqzh1lsV0pcmLN19Hn3
	ay309ByiykQ+kiHvb2sFgJKYr3TBgozy9zHGqsjryBcZMLchLPhTMWDZaJjXMAp9
	Oj8O1EyIsF7/00HBNcjZ7u31saLQPFFOSzgrrhFqHn2O/3pbcmNw==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=l+5VowJriljlYj4FB7JsH/V0KHqnz9ab4k4XQKGqoMcI66vimkZ+OI+m+HqibQvo4OvfjG7wS/DgEqJwl82bPIRcPDXjjd41m7S6KnzvSmxfYIb1TxSmjsh4x5+bMfsNAojyTzXo1oDM+mWI4u92MLq4nAj/lF2or9v7+qTu01PAwoPEPFCdKkwLJjKVAYPPDgB0EV88fSOF7CzpFa7yL1FYlajd+hvYcHIRfjkVzvXsKHddsrsm8w5OOwnY7ftrOm61xL4CQbHDzj91BocMxbDMamEH3BuKmNvOITqKVtkwvRVdUy9Ur/kBZyyADa0WGiMV98HleVLjkDjIBQvQGQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=M4Ufarry8myM4TKgabCN8p1VgTaBLW410dFYmTYHM/k=;
 b=mBFeJTi/lSwFmCIPw2p2/23SFzRQUTzXlulwBIB2rwyX2equEEdiTLd0z9IQBh/YMCHePv5Ul0nx++2l79ete4R3YNzuDZxsDdht7lkOoZ5TILWy89I5ghIBymNBDYJT4gDUTw21mzRxVDNeLb+3emUbDEbLlOBb/H6+VLT11MWmqaA5HioOQx3TsU8CKf/R9PA1lTQ4sCfOijC/UmI50yoHzzqvI0qUgjUwL0+HImSBAbnf52j+sQ+uQAAY1jAIwk7i5ZQ9TBEEbWiH39+L5o8CPeB1sT/pGy+hlc5zExmVS0XoAeL2Y2KzIncdt3DkEJIcF/69U8p11l6SCflNjQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=M4Ufarry8myM4TKgabCN8p1VgTaBLW410dFYmTYHM/k=;
 b=MM8hyw+g4G3inm4zYXkr1ibrneCd0iwQF5JNHiVrF6SwhkZbCEA1lF5q5IICTe2y/y80sHPFWxgaiy/P77AIT6rVcGmFAhbUDRwmD19GjCDLyZouPPpIrNM0pi9h6EIUlUlQZPMnF47wsvebSPpbo7+19WjfUQ8RMcK6cGsxPlw=
Date: Tue, 12 Aug 2025 20:06:34 +0100
From: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
To: David Hildenbrand <david@redhat.com>
Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org,
        xen-devel@lists.xenproject.org, linux-fsdevel@vger.kernel.org,
        nvdimm@lists.linux.dev, linuxppc-dev@lists.ozlabs.org,
        Andrew Morton <akpm@linux-foundation.org>,
        Madhavan Srinivasan <maddy@linux.ibm.com>,
        Michael Ellerman <mpe@ellerman.id.au>,
        Nicholas Piggin <npiggin@gmail.com>,
        Christophe Leroy <christophe.leroy@csgroup.eu>,
        Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Dan Williams <dan.j.williams@intel.com>,
        Matthew Wilcox <willy@infradead.org>, Jan Kara <jack@suse.cz>,
        Alexander Viro <viro@zeniv.linux.org.uk>,
        Christian Brauner <brauner@kernel.org>,
        "Liam R. Howlett" <Liam.Howlett@oracle.com>,
        Vlastimil Babka <vbabka@suse.cz>, Mike Rapoport <rppt@kernel.org>,
        Suren Baghdasaryan <surenb@google.com>, Michal Hocko <mhocko@suse.com>,
        Zi Yan <ziy@nvidia.com>, Baolin Wang <baolin.wang@linux.alibaba.com>,
        Nico Pache <npache@redhat.com>, Ryan Roberts <ryan.roberts@arm.com>,
        Dev Jain <dev.jain@arm.com>, Barry Song <baohua@kernel.org>,
        Jann Horn <jannh@google.com>, Pedro Falcato <pfalcato@suse.de>,
        Hugh Dickins <hughd@google.com>, Oscar Salvador <osalvador@suse.de>,
        Lance Yang <lance.yang@linux.dev>
Subject: Re: [PATCH v3 09/11] mm/memory: factor out common code from
 vm_normal_page_*()
Message-ID: <59c0c6b2-7112-4afd-8ea7-9e8bfaf86394@lucifer.local>
References: <20250811112631.759341-1-david@redhat.com>
 <20250811112631.759341-10-david@redhat.com>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250811112631.759341-10-david@redhat.com>
X-ClientProxiedBy: GV3PEPF00007A90.SWEP280.PROD.OUTLOOK.COM
 (2603:10a6:158:401::60d) To DM4PR10MB8218.namprd10.prod.outlook.com
 (2603:10b6:8:1cc::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DM4PR10MB8218:EE_|SA2PR10MB4681:EE_
X-MS-Office365-Filtering-Correlation-Id: 8c919d05-3cd4-460e-360c-08ddd9d360e3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|7416014|376014|366016|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?/gEH2ffgQ7KVDeT0Ww9Ry5wY/38KqtLoBYvGbGREull9Kj9vUECxKYBfIe/5?=
 =?us-ascii?Q?GJ+EXDEaXkWibgdSh5QKPLG3fiqGL/m8fJksNHQK/hkea6zN5Zdxq8ihonby?=
 =?us-ascii?Q?tAIiWpR4uqMsgAyuTL0W0Cf+qZpXfzaRtqRZhR9Kiz/WfFW3NwRBZ4K2pJsO?=
 =?us-ascii?Q?j9UzP7Lq2iFo5P9qPg3tcRbH9zi+D+AlODFgQb++Mh1A8wNDXZ9Oqduc37g0?=
 =?us-ascii?Q?G8g+Idj6hBvuDgkqQih60P3EQAezW6E4DZxQFcTyJzyRwDjblYAtEIb098kH?=
 =?us-ascii?Q?Gm1J4B/lEuPkTdES6FwAZxuEV5cYlDujDeqPw2LgIb6s3rlxBQljqNJ7f+ZT?=
 =?us-ascii?Q?6yeR0a5Opa1r137FaB7hPb0a2X4yzKG2R4J3lX26HZj/suCjMphhpxSn1xCR?=
 =?us-ascii?Q?shpPDC6JeVTV0zI5oMIXLaoqlkFI4U30KWpaYpSZt8iCRvUr45orAEZ7EbuT?=
 =?us-ascii?Q?S7JgqzbDbw/mVR14hwQ2+C7ffS/6mcoeyClzHuC4gaPS69dlDpUtX1udQQrU?=
 =?us-ascii?Q?b+z8tsD7qo1yPlL+Bv5pnQp16+6utxL4XFC8pPM5+D/P1IpePoy2TLNraALi?=
 =?us-ascii?Q?PEYXPlrqZNXdaWQwyviqGMoCERbjeThK4MX6rRaCtRTZC25se6VO0yOcwpy+?=
 =?us-ascii?Q?c/T3a+q1wuADk0QZrNeiDzuEJAIgxKzXEQZti5T4RnaZ8jXLYN/NVovnP9vY?=
 =?us-ascii?Q?8yyfZCF0KInqlCD9T6IrexUQRRrf6pBJGuaUoaIDMTkr3W9MEGQxksKwhL5I?=
 =?us-ascii?Q?qmzVA2K+q1kH4DpnWeaAGVSwDlEZLVU5hKnBQlwWAWgmzPk55y8KNmfNSBRQ?=
 =?us-ascii?Q?Fcu/AemWsT4Nev0M439SgrO+ICHAuUXhKOU0zbXYZtJdwwbVGg6im1f3ts0M?=
 =?us-ascii?Q?r6qbnMX+fZoXr0G4MtwmvVEPDHba8fhIjClqgzHzCk4bTeHmowLwapR6tYlo?=
 =?us-ascii?Q?etMxDdALPoOYEL/9BTPCnRrSDmdh2sAalSXnI8JztNttOs+LETu8pUahnzyH?=
 =?us-ascii?Q?5Gxkoh6I5fN7kS9kVwnz6V6LfCM6hTRbpxfK6L9gF9ggme1dwxvHjqnMucuk?=
 =?us-ascii?Q?06BPSHdrIZktNsu6SlBEJCkDeE0U5LEDbIdr2aWLh4nvlDD8qTlB1tkoZcRp?=
 =?us-ascii?Q?y5x91FLljHAZp6WCMWGliIpsx2c3esvX6EWeRvqmfQ5mhefnW4mzPKOur7eJ?=
 =?us-ascii?Q?ZhWerLQpFYYeJNWWc2NHGun3+tHxut4973HJucxWPVsmr9zB1Z97fQ1IhqiG?=
 =?us-ascii?Q?RciEZRNc8mFjr/MYJPEcn2M4HIUqEpI5lZRrFeI/+5OA3veUFHNJJUy9/BfE?=
 =?us-ascii?Q?i7uoKVbT3g6rgO6m609xf81QLvGcnzjEhajoyiCELcLKeLFIg4f3DUZOchXu?=
 =?us-ascii?Q?hIP6IRyRXT0SgTC9kzLAZeHqJCAKWRpZL/1B8AnK+hihBFTbcLwAy66CTKS2?=
 =?us-ascii?Q?Iy/I1Zrsh6U=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR10MB8218.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?YzXWqCv6QBLa8860ukoxvUb6P3H6KYKm1Ha6mxaQPSpc4TTpQDOYHJ1wpduN?=
 =?us-ascii?Q?PyZlBgIWweZg+8QXwaxVNohaaLLrqJFgPCqNpGXoUY5+UWom9lUIpPHW1gxD?=
 =?us-ascii?Q?lO3BNKv/AGtgZUH/XUtPGa3ZlpAKSfqOoRBXapxc6pfeZ5pHsXo/U1TZdBZD?=
 =?us-ascii?Q?FunUFW5L2+rPx6zinDbHULQgVQ/ZDgbZNVw24WOi/kWTkpIvHLHk53QJUKy7?=
 =?us-ascii?Q?n3auPwcSzt5WhPwm+n61lJdEqO5Py/M9wXJFd0LXIegWy5ExM6PTKP/xdJeX?=
 =?us-ascii?Q?HZNTkFXeUv75P1m5K1Hwlw7rk2JCtCA5+Kv/ZxNjdeC/dMG1u5XIPB4dl0BU?=
 =?us-ascii?Q?H/y190hFZzWsg1W7hI4KNBD4p/DiLrsHbJ+0L2qeezKo4hByT1inEVwJw9kS?=
 =?us-ascii?Q?EX5H/yRQO96r+n9R2N89LPXfzJwIZmEMRDvIcgkAro/AjOK+XI1ASqEGR2uT?=
 =?us-ascii?Q?db5TIDUdxLP1D4BwHPLJ68m1JL91I/aUcNSmQvj+8DWzVzxPvJL+QVBY0rrY?=
 =?us-ascii?Q?hNwtLZyLfwA8xo5nmpwkuEGGkOOTS8gAZsdiYM6RGK7I8FGf9aQh/mTvETQx?=
 =?us-ascii?Q?2qSBnWkTazN5aMTjlgNPaKpAHx094JJDa4FNmibPNIAvy53tNqqTKVPbb5ZJ?=
 =?us-ascii?Q?U68gX4WZEp7auCR0y/eH8mX8Z4I+rnQrl5JNgPpXfjn4UpSzV24+xxM12pEN?=
 =?us-ascii?Q?1Lm64CRzE+6dfV4O68YYCME32veBDk5BGgTw/JavrX/UhhMbyucK1zsK4cMa?=
 =?us-ascii?Q?ovBp8kVYNWx9ffBupnRV7sNtpVMPzsxfwehk80A8l51vNGFUIpbpeOHpH2+R?=
 =?us-ascii?Q?CTHvyCW0+cRnfKUmvt8rN4WrBxY/yfTd9AX49hntZZGGyQ+UQ11030qlxMya?=
 =?us-ascii?Q?KUMSuywcqRm+LEI9qWSzna1Lahun2QEoZMrHqVjgyIxuzjlud/6HptODjI6H?=
 =?us-ascii?Q?H+nfjgRexd6hDHHvWqJqnJVAvRCj1RQmQl3GlmRyuDklsQycL8jMn3wWw617?=
 =?us-ascii?Q?aD+OSxOwhqw3G6akCaKmjiK2SjX6nb626UYqFJ1H3caFJkWYpVZkyYPYN6EW?=
 =?us-ascii?Q?VPCFeAR1bgUqWuwz359JL9FyXzVzzWmhH5v7Q3AJp5q3QlngxtWu1cV1fSH4?=
 =?us-ascii?Q?j3LNAkKiYgMvoZKvhv4iCfnZlqHAK3aUvouULxOrclTdEiUZC8aq3FoOlDgi?=
 =?us-ascii?Q?S9KLq4Rzu5sqSfMC51yYEDD6jKEuEC10sQdI/CoM+ZjeCt0lnsPQgL+Ytm7Z?=
 =?us-ascii?Q?3SEQrf90yArNVZsqUO5zyt0P3XnHPvGgcRxusb/1lTbfhdHmKnIegY9tm+Tx?=
 =?us-ascii?Q?+HxhX5Jm9MS0l/tSn6mU2pFhsKaJwjkbKIdowKud8DVCLjWIjVkK++puqAQi?=
 =?us-ascii?Q?ByXJZlavdipoBKVdg6uHm4W0L963jh/cWe1+waWsKpZS60gETdCWYYRs9Zdg?=
 =?us-ascii?Q?50R9K7CKnWiAO72vqTYrSsfPYYBFFJxtOQySuQX5Az+EbuSPti67v6d1QH6G?=
 =?us-ascii?Q?vkfAsaHxK3TBWWoc5MEOvH26QJCvGCkA3ydZnq4FUeKNk1tRIlSZOa0Ews5G?=
 =?us-ascii?Q?QsoxdGTaK6HQJfpJO/Ya/rPWAho0ZCO5h8z5yoCExzC9B7q6WRYZcEW9/qyj?=
 =?us-ascii?Q?2A=3D=3D?=
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	63sPOl5EBe5qbMZPEyJrdojSP3AmJj31qnkrF5YsAMi//gmcOXal1nx1TeCcosQFpMvnKLjw2FqsfVyFlZPxUUu3DP+f0B19Jg5xuiiDK1Zl0FBqxPBwtClo18RpP24niX7aBZcLMJl/NQVhwzBKhB4pDXlJUGyoGHfltZFApIn/wrado0B3unekJg4d1YbujYwAhJOZZ4U0lFvaPLq4dUpsNJFgEykPxZY9k2hh/yGQTvB2WGeiGLF5rMg61/gbTJIigZyV6vgsF9NzxWDlpakBAUtLPuunHmrdEd7UlUWWrCUm3BcBGYnVCEAjh9tEaaT3/iVip7Ri/KHPadti6B+J4yvNh3K1T9KOzWdDgz92bA4iZCkRef41Q96HFt1nVzVui1pwpsidbLVbN3TvzALO7GLxijw1hraj/bfHJPMXN8HeO/xVM3/30aD8JTOXdH5SnvC35IhnpTL+LRQjJlkgzxdSPeSQeRHM55vDzMdFiFvFvwXVhbVK6Ox3fqUbUnYK+TdQaTTFzUJdnLv7eSujzvESeWFORZzRGHFpWOjm5fNy0PcOYSCCPQtg6Te4vEyetFmlkzDBhpKcDoz3UxTwSKZE0haJXkRVzDQwAIg=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8c919d05-3cd4-460e-360c-08ddd9d360e3
X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Aug 2025 19:06:44.5598
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: KkKOAQkjSWRxYT3qvmvmxIv9rZ4sbZiDENakQowW7Wj1kkDjOszqXDpMDcgp0Am4OZrOiVjLiyO+Uu8INCMyXIm5HQ8owZCPdFDW2L/iEKs=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR10MB4681
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40
 definitions=2025-08-12_07,2025-08-11_01,2025-03-28_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 adultscore=0
 malwarescore=0 spamscore=0 bulkscore=0 mlxlogscore=999 mlxscore=0
 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2507300000 definitions=main-2508120183
X-Proofpoint-GUID: jPp0BwB2hQxTjukL4RWt9koOnapmYEpi
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODEyMDE4NCBTYWx0ZWRfX7pA3YifGHnPI
 cHPFcj5ZQPAb2Z6fnKJdSEdI27Q9fOAhIyJ4fplJYBIqdPGsWeNw66JCzf4rx5qCHdSjNgl41kd
 3xYYNx5sDyBLRqp3WgZlBfvLQni8D3GRllY1SpWKxBPK0X1PDgWj8wVlU6uv3l9lZwCCk+umYYc
 cV9GhpLldVo+G4CdOjruFAYbThhcf1HEK7qvGApjdPH4tJZaqL/Oe9ibp0lRXUvRBfXc5fu1FDk
 IKp+oMNJZK46p/bqqi1dOf3YQTc26Tl3/CZOCD5M1JMWgleWyjaR7UEJ0qmvgFkAVDK4fvlWRVa
 Dj81C0pTJgD7z24XCfnZB0lPKuY39G0EHIekbLPo7gg7fSGquNCSFlUA5phn7mjeb9PM87v1rl+
 /5y3T85pDk5DXeEQ2nvAlqfGigSNaj9h4C0vVbXGFhHsEmsKYAY8w7Cap6KaOTm2drlBD8Pb
X-Authority-Analysis: v=2.4 cv=W8M4VQWk c=1 sm=1 tr=0 ts=689b90c8 cx=c_pps
 a=XiAAW1AwiKB2Y8Wsi+sD2Q==:117 a=XiAAW1AwiKB2Y8Wsi+sD2Q==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19
 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19
 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=kj9zAlcOel0A:10
 a=2OwXVqhp2XgA:10 a=GoEa3M9JfhUA:10 a=20KFwNOVAAAA:8 a=yPCof4ZbAAAA:8
 a=so3LeFcWHr71qdPntTEA:9 a=CjuIK1q_8ugA:10
X-Proofpoint-ORIG-GUID: jPp0BwB2hQxTjukL4RWt9koOnapmYEpi

On Mon, Aug 11, 2025 at 01:26:29PM +0200, David Hildenbrand wrote:
> Let's reduce the code duplication and factor out the non-pte/pmd related
> magic into __vm_normal_page().
>
> To keep it simpler, check the pfn against both zero folios, which
> shouldn't really make a difference.
>
> It's a good question if we can even hit the !CONFIG_ARCH_HAS_PTE_SPECIAL
> scenario in the PMD case in practice: but doesn't really matter, as
> it's now all unified in vm_normal_page_pfn().
>
> Add kerneldoc for all involved functions.
>
> Note that, as a side product, we now:
> * Support the find_special_page special thingy also for PMD
> * Don't check for is_huge_zero_pfn() anymore if we have
>   CONFIG_ARCH_HAS_PTE_SPECIAL and the PMD is not special. The
>   VM_WARN_ON_ONCE would catch any abuse
>
> No functional change intended.
>
> Reviewed-by: Oscar Salvador <osalvador@suse.de>
> Signed-off-by: David Hildenbrand <david@redhat.com>

Fantastic cleanup, thanks for refactoring with levels, this looks great!

Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>

> ---
>  mm/memory.c | 186 ++++++++++++++++++++++++++++++----------------------
>  1 file changed, 109 insertions(+), 77 deletions(-)
>
> diff --git a/mm/memory.c b/mm/memory.c
> index dc0107354d37b..78af3f243cee7 100644
> --- a/mm/memory.c
> +++ b/mm/memory.c
> @@ -614,8 +614,14 @@ static void print_bad_page_map(struct vm_area_struct *vma,
>  #define print_bad_pte(vma, addr, pte, page) \
>  	print_bad_page_map(vma, addr, pte_val(pte), page, PGTABLE_LEVEL_PTE)
>
> -/*
> - * vm_normal_page -- This function gets the "struct page" associated with a pte.
> +/**
> + * __vm_normal_page() - Get the "struct page" associated with a page table entry.
> + * @vma: The VMA mapping the page table entry.
> + * @addr: The address where the page table entry is mapped.
> + * @pfn: The PFN stored in the page table entry.
> + * @special: Whether the page table entry is marked "special".
> + * @level: The page table level for error reporting purposes only.
> + * @entry: The page table entry value for error reporting purposes only.
>   *
>   * "Special" mappings do not wish to be associated with a "struct page" (either
>   * it doesn't exist, or it exists but they don't want to touch it). In this
> @@ -628,10 +634,10 @@ static void print_bad_page_map(struct vm_area_struct *vma,
>   * Selected page table walkers (such as GUP) can still identify mappings of the
>   * shared zero folios and work with the underlying "struct page".
>   *
> - * There are 2 broad cases. Firstly, an architecture may define a pte_special()
> - * pte bit, in which case this function is trivial. Secondly, an architecture
> - * may not have a spare pte bit, which requires a more complicated scheme,
> - * described below.
> + * There are 2 broad cases. Firstly, an architecture may define a "special"
> + * page table entry bit, such as pte_special(), in which case this function is
> + * trivial. Secondly, an architecture may not have a spare page table
> + * entry bit, which requires a more complicated scheme, described below.

OK cool, nice to have this here in one place!

>   *
>   * A raw VM_PFNMAP mapping (ie. one that is not COWed) is always considered a
>   * special mapping (even if there are underlying and valid "struct pages").
> @@ -664,63 +670,94 @@ static void print_bad_page_map(struct vm_area_struct *vma,
>   * don't have to follow the strict linearity rule of PFNMAP mappings in
>   * order to support COWable mappings.
>   *
> + * Return: Returns the "struct page" if this is a "normal" mapping. Returns
> + *	   NULL if this is a "special" mapping.
>   */
> -struct page *vm_normal_page(struct vm_area_struct *vma, unsigned long addr,
> -			    pte_t pte)
> +static inline struct page *__vm_normal_page(struct vm_area_struct *vma,
> +		unsigned long addr, unsigned long pfn, bool special,
> +		unsigned long long entry, enum pgtable_level level)
>  {
> -	unsigned long pfn = pte_pfn(pte);
> -
>  	if (IS_ENABLED(CONFIG_ARCH_HAS_PTE_SPECIAL)) {
> -		if (likely(!pte_special(pte)))
> -			goto check_pfn;
> -		if (vma->vm_ops && vma->vm_ops->find_special_page)
> -			return vma->vm_ops->find_special_page(vma, addr);
> -		if (vma->vm_flags & (VM_PFNMAP | VM_MIXEDMAP))
> -			return NULL;
> -		if (is_zero_pfn(pfn))
> -			return NULL;
> -
> -		print_bad_pte(vma, addr, pte, NULL);
> -		return NULL;
> -	}
> -
> -	/* !CONFIG_ARCH_HAS_PTE_SPECIAL case follows: */
> -
> -	if (unlikely(vma->vm_flags & (VM_PFNMAP|VM_MIXEDMAP))) {
> -		if (vma->vm_flags & VM_MIXEDMAP) {
> -			if (!pfn_valid(pfn))
> +		if (unlikely(special)) {
> +			if (vma->vm_ops && vma->vm_ops->find_special_page)
> +				return vma->vm_ops->find_special_page(vma, addr);
> +			if (vma->vm_flags & (VM_PFNMAP | VM_MIXEDMAP))
>  				return NULL;
> -			if (is_zero_pfn(pfn))
> -				return NULL;
> -			goto out;
> -		} else {
> -			unsigned long off;
> -			off = (addr - vma->vm_start) >> PAGE_SHIFT;
> -			if (pfn == vma->vm_pgoff + off)
> -				return NULL;
> -			if (!is_cow_mapping(vma->vm_flags))
> +			if (is_zero_pfn(pfn) || is_huge_zero_pfn(pfn))

Yeah this works fine.

>  				return NULL;
> +
> +			print_bad_page_map(vma, addr, entry, NULL, level);

OK nice this is where the the print_bad_page_map() with level comes in handy.

> +			return NULL;
>  		}
> -	}
> +		/*
> +		 * With CONFIG_ARCH_HAS_PTE_SPECIAL, any special page table
> +		 * mappings (incl. shared zero folios) are marked accordingly.
> +		 */
> +	} else {
> +		if (unlikely(vma->vm_flags & (VM_PFNMAP | VM_MIXEDMAP))) {
> +			if (vma->vm_flags & VM_MIXEDMAP) {
> +				/* If it has a "struct page", it's "normal". */
> +				if (!pfn_valid(pfn))
> +					return NULL;
> +			} else {
> +				unsigned long off = (addr - vma->vm_start) >> PAGE_SHIFT;
>
> -	if (is_zero_pfn(pfn))
> -		return NULL;
> +				/* Only CoW'ed anon folios are "normal". */
> +				if (pfn == vma->vm_pgoff + off)
> +					return NULL;
> +				if (!is_cow_mapping(vma->vm_flags))
> +					return NULL;
> +			}
> +		}
> +
> +		if (is_zero_pfn(pfn) || is_huge_zero_pfn(pfn))

Yeah this is fine too! This is all working out rather neatly! :)

> +			return NULL;
> +	}
>
> -check_pfn:
>  	if (unlikely(pfn > highest_memmap_pfn)) {
> -		print_bad_pte(vma, addr, pte, NULL);
> +		/* Corrupted page table entry. */
> +		print_bad_page_map(vma, addr, entry, NULL, level);
>  		return NULL;
>  	}
> -
>  	/*
>  	 * NOTE! We still have PageReserved() pages in the page tables.
> -	 * eg. VDSO mappings can cause them to exist.
> +	 * For example, VDSO mappings can cause them to exist.
>  	 */
> -out:
> -	VM_WARN_ON_ONCE(is_zero_pfn(pfn));
> +	VM_WARN_ON_ONCE(is_zero_pfn(pfn) || is_huge_zero_pfn(pfn));

And ACK on this as well.

>  	return pfn_to_page(pfn);
>  }
>
> +/**
> + * vm_normal_page() - Get the "struct page" associated with a PTE
> + * @vma: The VMA mapping the @pte.
> + * @addr: The address where the @pte is mapped.
> + * @pte: The PTE.
> + *
> + * Get the "struct page" associated with a PTE. See __vm_normal_page()
> + * for details on "normal" and "special" mappings.

Lovely.

> + *
> + * Return: Returns the "struct page" if this is a "normal" mapping. Returns
> + *	   NULL if this is a "special" mapping.
> + */
> +struct page *vm_normal_page(struct vm_area_struct *vma, unsigned long addr,
> +			    pte_t pte)
> +{
> +	return __vm_normal_page(vma, addr, pte_pfn(pte), pte_special(pte),
> +				pte_val(pte), PGTABLE_LEVEL_PTE);

Nice and neat!

> +}
> +
> +/**
> + * vm_normal_folio() - Get the "struct folio" associated with a PTE
> + * @vma: The VMA mapping the @pte.
> + * @addr: The address where the @pte is mapped.
> + * @pte: The PTE.
> + *
> + * Get the "struct folio" associated with a PTE. See __vm_normal_page()
> + * for details on "normal" and "special" mappings.
> + *
> + * Return: Returns the "struct folio" if this is a "normal" mapping. Returns
> + *	   NULL if this is a "special" mapping.
> + */

Great, thanks for adding this! I especially like '*special*' :P

>  struct folio *vm_normal_folio(struct vm_area_struct *vma, unsigned long addr,
>  			    pte_t pte)
>  {
> @@ -732,42 +769,37 @@ struct folio *vm_normal_folio(struct vm_area_struct *vma, unsigned long addr,
>  }
>
>  #ifdef CONFIG_PGTABLE_HAS_HUGE_LEAVES
> +/**
> + * vm_normal_page_pmd() - Get the "struct page" associated with a PMD
> + * @vma: The VMA mapping the @pmd.
> + * @addr: The address where the @pmd is mapped.
> + * @pmd: The PMD.
> + *
> + * Get the "struct page" associated with a PTE. See __vm_normal_page()
> + * for details on "normal" and "special" mappings.
> + *
> + * Return: Returns the "struct page" if this is a "normal" mapping. Returns
> + *	   NULL if this is a "special" mapping.
> + */
>  struct page *vm_normal_page_pmd(struct vm_area_struct *vma, unsigned long addr,
>  				pmd_t pmd)
>  {
> -	unsigned long pfn = pmd_pfn(pmd);
> -
> -	if (unlikely(pmd_special(pmd)))
> -		return NULL;
> -
> -	if (unlikely(vma->vm_flags & (VM_PFNMAP|VM_MIXEDMAP))) {
> -		if (vma->vm_flags & VM_MIXEDMAP) {
> -			if (!pfn_valid(pfn))
> -				return NULL;
> -			goto out;
> -		} else {
> -			unsigned long off;
> -			off = (addr - vma->vm_start) >> PAGE_SHIFT;
> -			if (pfn == vma->vm_pgoff + off)
> -				return NULL;
> -			if (!is_cow_mapping(vma->vm_flags))
> -				return NULL;
> -		}
> -	}
> -
> -	if (is_huge_zero_pfn(pfn))
> -		return NULL;
> -	if (unlikely(pfn > highest_memmap_pfn))
> -		return NULL;
> -
> -	/*
> -	 * NOTE! We still have PageReserved() pages in the page tables.
> -	 * eg. VDSO mappings can cause them to exist.
> -	 */
> -out:
> -	return pfn_to_page(pfn);
> +	return __vm_normal_page(vma, addr, pmd_pfn(pmd), pmd_special(pmd),
> +				pmd_val(pmd), PGTABLE_LEVEL_PMD);

So much red... so much delight! :) this is great!

>  }
>
> +/**
> + * vm_normal_folio_pmd() - Get the "struct folio" associated with a PMD
> + * @vma: The VMA mapping the @pmd.
> + * @addr: The address where the @pmd is mapped.
> + * @pmd: The PMD.
> + *
> + * Get the "struct folio" associated with a PTE. See __vm_normal_page()
> + * for details on "normal" and "special" mappings.
> + *
> + * Return: Returns the "struct folio" if this is a "normal" mapping. Returns
> + *	   NULL if this is a "special" mapping.
> + */

This is great also!

>  struct folio *vm_normal_folio_pmd(struct vm_area_struct *vma,
>  				  unsigned long addr, pmd_t pmd)
>  {
> --
> 2.50.1
>


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 19:10:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 19:10:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079127.1440090 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uluNy-0002f3-PJ; Tue, 12 Aug 2025 19:10:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079127.1440090; Tue, 12 Aug 2025 19: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 1uluNy-0002ew-L5; Tue, 12 Aug 2025 19:10:14 +0000
Received: by outflank-mailman (input) for mailman id 1079127;
 Tue, 12 Aug 2025 19:10:13 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BkKW=2Y=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1uluNx-0002eX-BY
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 19:10:13 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f87144d7-77af-11f0-a328-13f23c93f187;
 Tue, 12 Aug 2025 21:10:12 +0200 (CEST)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-451d41e1ad1so39723685e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 12 Aug 2025 12:10:12 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3b79c3abec8sm47083546f8f.8.2025.08.12.12.10.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Aug 2025 12: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>
X-Inumbo-ID: f87144d7-77af-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755025811; x=1755630611; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=liYN9p+w76I5yk0XmtckGD/YtX7vKJXADbbeud4KcVk=;
        b=RQt1E751HEnsHaLwVpYCqgjHoEiATrkpY0lavGxfSVUsNespNbt3Ll3bIUIVRbbK8A
         WAj2pcedGyp9zVnMsDf4MVAnngRqbGtUbW8vcgdUTyjOzJOaeC4n1x8ksRHByEpMN5WG
         UtIKY5gJulGCUgvN5rzJNUFElhDP75Bg/jjbE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755025811; x=1755630611;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=liYN9p+w76I5yk0XmtckGD/YtX7vKJXADbbeud4KcVk=;
        b=R2Rz1eM0MvkHx7Z//pk3WUctVtyCGSWBQtReJ/QDTbolH9Fbbnc0nLUxIx4C2L0Efi
         TtFsrnKXhztlWcIYeaFhB1GtOmaYSkQNd2i/JPwhdgnhNkMsD0H88akMQ8sJEhXkbyZ1
         vcHQ998wEfoy71r9tV0ZKnElzZ+fhrnuSYgeevVMOw+VO6WAv9fU7u6UqK9kzcc0DBln
         /DkbFJGVpV94ghiVGt+sWKQjGhIF3IpH7D+JfB7UhKEsUZyeIQYh3gzEbvCbuXfOiUP3
         8Yrm03R83IBkMjQpYpQctJYWR/rEn4VsmTtm8XBIPmY8+2/L0FvrnKtTcwqNc7lIchnA
         Gh4g==
X-Forwarded-Encrypted: i=1; AJvYcCUDGZ3YgcG52czjq0mm/RLrljXXJf12wR27rS6QZMGjEb0D6YkKsz91hWWIDb/oIOA8rzassITWzOQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyAp14eIWE9+YiLPVTFBzm4Dy+U6rAYqdoI+ure4cR10pQwGLBT
	crUHlonBQ9w1R5UONRgJ41w9+QDohBFw+UAAYiIexoacWVbh9prK3+Nelhbf5BhlRxI=
X-Gm-Gg: ASbGncvkupw4ao68Bhyq5l6vG1PmzPQHYmvaawPZev+dT1vWvrDzxx+JvaQCE/ctrRC
	DWvCfsd6MGrbjtjfZ4pq6q5OgLlfW+876sCjQjUtAHfnudqgzWuo4xaWvosr6qDr+kfFWieXOT/
	e/1aXeEjRr5zJvzLPLj5memTqPOYypuWj7KHFAAjLtZuZpFM3XRzEHZcH6YxyRFkRvwhVTCFf3+
	39IF7/5yQhdqEPYUysJZ+3/0+unkdLMZGb6KYKrMRHMDksak9ReO6eM2govGFxMP/wYFW2GJQqZ
	rLtYw8Hkv62ZQvSMEKto0v1aCc5A/+/2bm9A7jNIBjuKAcHBa1ExFDSGSWyuh2gsGbyUWx8/s+4
	4b1XwP7GkRQl/zGdyWeqcVMbaIk69QWjife1C3U0VLcYFD5L/BYq/+CEHyiFSo2dpNH7k
X-Google-Smtp-Source: AGHT+IGfmjf8JsGQUca7vkYCPtAmZK9nxXpEiIAbePK3VMkH+hfJD9ojk3aIkYnpPKD9PoVOzbAcZQ==
X-Received: by 2002:a05:6000:2c0c:b0:3b8:893f:a17d with SMTP id ffacd0b85a97d-3b917eb5b74mr88711f8f.49.1755025811336;
        Tue, 12 Aug 2025 12:10:11 -0700 (PDT)
Message-ID: <5407877d-4c7c-494f-8fc1-d44eea4762b9@citrix.com>
Date: Tue, 12 Aug 2025 20:10:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/events: Fix Global and Domain VIRQ tracking
To: Jason Andryuk <jason.andryuk@amd.com>, Juergen Gross <jgross@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Chris Wright <chrisw@sous-sol.org>,
 Jeremy Fitzhardinge <jeremy@xensource.com>,
 Christopher Clark <christopher.w.clark@gmail.com>,
 Daniel Smith <dpsmith@apertussolutions.com>
Cc: stable@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org
References: <20250812190041.23276-1-jason.andryuk@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <20250812190041.23276-1-jason.andryuk@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12/08/2025 8:00 pm, Jason Andryuk wrote:
> VIRQs come in 3 flavors, per-VPU, per-domain, and global.  The existing
> tracking of VIRQs is handled by per-cpu variables virq_to_irq.
>
> The issue is that bind_virq_to_irq() sets the per_cpu virq_to_irq at
> registration time - typically CPU 0.  Later, the interrupt can migrate,
> and info->cpu is updated.  When calling unbind_from_irq(), the per-cpu
> virq_to_irq is cleared for a different cpu.  If bind_virq_to_irq() is
> called again with CPU 0, the stale irq is returned.
>
> Change the virq_to_irq tracking to use CPU 0 for per-domain and global
> VIRQs.  As there can be at most one of each, there is no need for
> per-vcpu tracking.  Also, per-domain and global VIRQs need to be
> registered on CPU 0 and can later move, so this matches the expectation.
>
> Fixes: e46cdb66c8fc ("xen: event channels")
> Cc: stable@vger.kernel.org
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> ---
> Fixes is the introduction of the virq_to_irq per-cpu array.
>
> This was found with the out-of-tree argo driver during suspend/resume.
> On suspend, the per-domain VIRQ_ARGO is unbound.  On resume, the driver
> attempts to bind VIRQ_ARGO.  The stale irq is returned, but the
> WARN_ON(info == NULL || info->type != IRQT_VIRQ) in bind_virq_to_irq()
> triggers for NULL info.  The bind fails and execution continues with the
> driver trying to clean up by unbinding.  This eventually faults over the
> NULL info.

I don't think the Fixes: tag is entirely appropriate.

per-domain VIRQs were created (unexpectedly) by the merge of ARGO into
Xen.Â  It was during some unrelated cleanup that this was noticed and
bugfixed into working.Â  i.e. the ARGO VIRQ is the singular weird one here.

In Xen we did accept that per-domain VIRQs now exist; they had for
several releases before we realised.

~Andrew

> ---
>  drivers/xen/events/events_base.c | 17 ++++++++++++++++-
>  1 file changed, 16 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/xen/events/events_base.c b/drivers/xen/events/events_base.c
> index 41309d38f78c..a27e4d7f061e 100644
> --- a/drivers/xen/events/events_base.c
> +++ b/drivers/xen/events/events_base.c
> @@ -159,7 +159,19 @@ static DEFINE_MUTEX(irq_mapping_update_lock);
>  
>  static LIST_HEAD(xen_irq_list_head);
>  
> -/* IRQ <-> VIRQ mapping. */
> +static bool is_per_vcpu_virq(int virq) {
> +	switch (virq) {
> +	case VIRQ_TIMER:
> +	case VIRQ_DEBUG:
> +	case VIRQ_XENOPROF:
> +	case VIRQ_XENPMU:
> +		return true;
> +	default:
> +		return false;
> +	}
> +}
> +
> +/* IRQ <-> VIRQ mapping.  Global/Domain virqs are tracked in cpu 0.  */
>  static DEFINE_PER_CPU(int [NR_VIRQS], virq_to_irq) = {[0 ... NR_VIRQS-1] = -1};
>  
>  /* IRQ <-> IPI mapping */
> @@ -974,6 +986,9 @@ static void __unbind_from_irq(struct irq_info *info, unsigned int irq)
>  
>  		switch (info->type) {
>  		case IRQT_VIRQ:
> +			if (!is_per_vcpu_virq(virq_from_irq(info)))
> +				cpu = 0;
> +
>  			per_cpu(virq_to_irq, cpu)[virq_from_irq(info)] = -1;
>  			break;
>  		case IRQT_IPI:



From xen-devel-bounces@lists.xenproject.org Tue Aug 12 19:10:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 19:10:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079135.1440099 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uluOU-00038z-Vl; Tue, 12 Aug 2025 19:10:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079135.1440099; Tue, 12 Aug 2025 19:10: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 1uluOU-00038s-SX; Tue, 12 Aug 2025 19:10:46 +0000
Received: by outflank-mailman (input) for mailman id 1079135;
 Tue, 12 Aug 2025 19:10:45 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BkKW=2Y=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1uluOT-0002eX-Kh
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 19:10:45 +0000
Received: from mail-wr1-x432.google.com (mail-wr1-x432.google.com
 [2a00:1450:4864:20::432])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0c1a90bd-77b0-11f0-a328-13f23c93f187;
 Tue, 12 Aug 2025 21:10:45 +0200 (CEST)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-3b78127c5d1so3778217f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 12 Aug 2025 12:10:45 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3b79c4530a8sm45046198f8f.38.2025.08.12.12.10.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 12 Aug 2025 12:10: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>
X-Inumbo-ID: 0c1a90bd-77b0-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755025844; x=1755630644; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=gwkf35IKqMkIlNl9yA5fGHvhKn8wkfiIrpd1gBUtckU=;
        b=Z9SXSyu3oHwiQ3rI56rdlgDpQWk3/SNj9BCpmD5SUd+WiMq+R+VcmIJL7i3OOUFsC+
         AYfMHCXA7Jl0tGIVdHL8PFPj4HJ46H7PlNoBs5YLlHN23b+iy/F2uwn4Bu7ypU7OBOO8
         1kvoZtpDTeuCv+/OSlk0wCUll83Z8CinkeS1E=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755025844; x=1755630644;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gwkf35IKqMkIlNl9yA5fGHvhKn8wkfiIrpd1gBUtckU=;
        b=mNP45hCrhepnd+PJhVGk9h+q4zUHzxNNG/qXq4Ggk93duTTF0QdfoRNucWu0OFQpc7
         xQVZEeUSpI307jVsWo86xfeY7i0mAi0wImsJBs6FwzuYVAQ6X2VPTDRMb7giQdH57L3V
         mSqMox2ozJ8sNizXFe3flw7ToIKyKlsgzJrx/VZrM6+ZC/czjQUs6wp4e4Nsgn+EbVK/
         rl3lxbwfJxHmwMr+wWjMOuKGr6bxfuCxA83hqQkLR1+z/trSKgpwBDBhUU5vX+kNLEL1
         qO0pxkYrYvffBBV3okMrboEgaYF6P2xhDSLjsWE0yu8h/WqNCva0legtvxcX8A5Kr6t8
         uMnA==
X-Gm-Message-State: AOJu0YyjgWDNKYutvT36WJnCIeibJDExeTCoDOfQVI2vb37/XgsB38mC
	XbVvmsJfiGvq+788pSoqAmACKecYIs9bnbIyOD2VhnaSUMVrk8T+GcyyKL7Fm0BZDBU=
X-Gm-Gg: ASbGnctZR6FYt6tXEUTNi4ppU+JqGHg9Yjm4bJT+Cim8LaT1eC2zEyzfSLtPw3YiUzd
	i/Ihl0airnh4TEQBH/vM/TysizVkBIlF3xFGN+vNcbCqvjAxEBT8Buz5In+fQYmkA/uW0vBZgcA
	spuUvv50x4Sfak4+rsGQQ4iJltsiFn3XrwRxhNVafsaXAhyN/mm1cgDPDt/dRN1ikVKPif/aDOs
	Gz2GQvaGTBCjaQqEcT++U1Qs2VaRTAyV5f2d98UsLfQAIw/vUtaU+4Y/+qtX/eOcHUOGbWfMCXO
	WXDAy7VEuU4Sn/5S6RMJorgYCjDZl1vwi1GOBpi2Zwb47K6xIFD8BogtmbEDnSNRxShK1STVaK/
	t6QtS6yXg94HuQfBvvqxd9/699LLDu69GoSZIaXgNrm3xQRLbqhECVObGgSESgD6fpPlu
X-Google-Smtp-Source: AGHT+IGLEEproL9S5eXAiaagxXJyixn2MGxqc8jZjqWJG1RF9GzyvXfDla4rq9zKQC79nfzUmSN/FA==
X-Received: by 2002:a05:6000:1a8b:b0:3a5:39ee:2619 with SMTP id ffacd0b85a97d-3b917ebb5bamr97068f8f.47.1755025844442;
        Tue, 12 Aug 2025 12:10:44 -0700 (PDT)
Message-ID: <c435b168-888c-4953-97df-2bab8f9e5e02@citrix.com>
Date: Tue, 12 Aug 2025 20:10:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] CI: Turn debian/12-x86_64 into a non-root container
To: Anthony PERARD <anthony@xenproject.org>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>
References: <20250812162950.1903901-1-andrew.cooper3@citrix.com>
 <aJuOP52xGg8hUN_H@l14>
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: <aJuOP52xGg8hUN_H@l14>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12/08/2025 7:55 pm, Anthony PERARD wrote:
> On Tue, Aug 12, 2025 at 05:29:50PM +0100, Andrew Cooper wrote:
>> From: Javi Merino <javi.merino@cloud.com>
>>
>> Since commit 4611ae6fb8f9 ("CI: save toolstack artifact as cpio.gz"), the
>> various automation/scripts/* no longer need to be root to correctly repack the
>> initrd for test.
>>
>> Signed-off-by: Javi Merino <javi.merino@cloud.com>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> ---
>> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
>> CC: Stefano Stabellini <sstabellini@kernel.org>
>> CC: Anthony PERARD <anthony.perard@vates.tech>
>>
>> Xen 4.20 and later uses debian:12-x86_64 and also contains 4611ae6fb8f9 so
>> this is safe to change generally.
> I gave it a try, just to be sure:
>     https://gitlab.com/xen-project/people/anthonyper/xen/-/pipelines/1980442689
> and staging-4.20:
>     https://gitlab.com/xen-project/people/anthonyper/xen/-/pipelines/1980621317
>
> (all the failed build should be because I was lazy and didn't rebuild
> all containers or didn't select a subset of the builds. All test passed
> or are skipped, which is what I was looking for)
>
> So:
> Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks.Â  I'll commit and deploy this now.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 19:17:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 19:17:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079144.1440109 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uluV5-0004nv-Kg; Tue, 12 Aug 2025 19:17:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079144.1440109; Tue, 12 Aug 2025 19:17: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 1uluV5-0004no-Hj; Tue, 12 Aug 2025 19:17:35 +0000
Received: by outflank-mailman (input) for mailman id 1079144;
 Tue, 12 Aug 2025 19:17:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=3OTH=2Y=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1uluV4-0004nW-9Q
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 19:17:34 +0000
Received: from DB3PR0202CU003.outbound.protection.outlook.com
 (mail-northeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c200::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fec83552-77b0-11f0-a328-13f23c93f187;
 Tue, 12 Aug 2025 21:17:32 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by AS2PR03MB9671.eurprd03.prod.outlook.com (2603:10a6:20b:5e8::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.22; Tue, 12 Aug
 2025 19:17:28 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9009.018; Tue, 12 Aug 2025
 19: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>
X-Inumbo-ID: fec83552-77b0-11f0-a328-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nI+fWWqdkxgg6wPR71Ojz5A2067xg88Cyp4dqtlkXgRD6T1MBZ66D/DNEGpEe4fAu2cOC069tGfHHicJJLB8WUyg/yWg5eO3c+tONmqoZMQWXPaF6MAjfzwd+X2NYNLj25pfHmjyIat4wY4dKsh8GTXai05cTKMqANOcFz4tolufw/k+NFvtfoafNvJXQeh5rQRaERU3U54V9DFNmoMyNUEXqN0viVXOXWkl18VKho0Aoa+8C2EcnFgRSC3I/6PGd+EhGamgYHxOtdTdK64OR1meWm8TPM6zWO82wkZdxKMPejB+3/PLPrWIxG0NpdVN78VHOGVSXCS2/eBed/8ARg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=W8qo+9Nn7D8YDP+Om+eE1Ge44AFkkk9sqUHYa6TEpKY=;
 b=Zw8xUlZBouWUlghrFbMXkkm+lDciM3OwWxHrK7EJX+6qRprRwaxT4k/sznVVVDux+NWwC7NZwQskP7C8Nd6EWFF6fbWYmN/+sF0irir2be1Pt7xWlHuGSqXKFux7ov2yKOh/SHRXR0VipaW7inAdcAbOE8mOYhy/JvZOf/ZOlJd41gh3g7eXUSJhstiT45aofAwrMmkvunEwbVdNtUSxgkxm9zhAzSCG8SeECOP5CCDckoqaLqlxwo79recuvS7tLx0c2El/KEZHgung9weg5SRFdrhiMe21BpUt1dNsfzxTUM6VsHnuDoIQ6o0fezBmjtkiogtPfTf65VyWeSQaMg==
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=W8qo+9Nn7D8YDP+Om+eE1Ge44AFkkk9sqUHYa6TEpKY=;
 b=eHc/lj/o5WkhdVgUbDvW6cD1XLBtVK84nv8SZqT1beFN5O9RpxNF0q06r81QNVfFy3E5mwP+09zqC0s14xNsodZaV9vUcsTIEzmSuTAZU41PP2h1cCY7ZUfr5qB/vtcyUvgzjEHn4eyjrlhAfWcgmf05W54bqHiy6b/qxXEGTzDYQIIEMqaMTtb6uv0kKptaCVEsJAK5rzxKPzKeYGst+oAn0332PXOdA0NGYy+LRCTrOw5iieqGFYNGb50aQCH9knWoz/SRD18TjKp8Y2FLo/6M6nYEPg1PeE+OTWGQqgxeNlxBa5vSSDZUivgFao2TdKx7a5j2zmyH9Mq/8jWPhg==
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>, =?iso-8859-1?Q?Marek_Marczykowski-G=F3recki?=
	<marmarek@invisiblethingslab.com>, Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] efi: remove unreachable code in read_file()
Thread-Topic: [PATCH] efi: remove unreachable code in read_file()
Thread-Index: AQHcC72+MqlVxdSA/E6jjiAcMI3Ndw==
Date: Tue, 12 Aug 2025 19:17:28 +0000
Message-ID:
 <52dbb5c5c1385b3b9d8522ef308ef15248973368.1755023074.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: GV2PR03MB9572:EE_|AS2PR03MB9671:EE_
x-ms-office365-filtering-correlation-id: 1e609905-2c08-4628-5639-08ddd9d4e0da
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|42112799006|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?BxGExv//9BSL+JNOvM0PXjRGRHiv6s36f0c2BosUlCS/Y6ZCUtlaWQ3a66?=
 =?iso-8859-1?Q?/Wx9cofsELPmDNXOJ0+gZgli9L3GDGGrgnQ/tpdkwdTc/k+FJLpFFThmJ5?=
 =?iso-8859-1?Q?9socgCHd5F66lP/pn0qwwTfACRNZ8YH0Qmo8Cykxo/LH4+r4FmBJmTXmUM?=
 =?iso-8859-1?Q?1EM4gtPH0yflC5iPhoAOfixfZBp6p5DuhAdLg2p4ezogf+cqVlIfMGp+s2?=
 =?iso-8859-1?Q?i4Aro2LfCLzMJvMDfnVRrRp4smpQQjsOmptSKdIMqWK2RBILBDyFS50ZeZ?=
 =?iso-8859-1?Q?i4zJqf3Ej8YIqyjRCauU43OYYI8HBOyHGwEqAusv24L2focHr8+ziTXx+j?=
 =?iso-8859-1?Q?fB/QO14QsR8El4AhGtjV4wCrD4wx5R4CCC4UYq/It7qN2XYx8dwg/WtkgB?=
 =?iso-8859-1?Q?GZu3nrKA4meNWGHHj9Wg5iKZB2gVdRv3zlyDiYMtbxxyMKjBAzF6DEO6k3?=
 =?iso-8859-1?Q?kSM9+FV/P4SB9Z1GecoVbCVnY6hE4ubDXwDu3pN9/M7EkHIogD5kgYX6Uc?=
 =?iso-8859-1?Q?/9j7G7XOYmpuPW3nz8v0M69M8OLp64Ekq3T8xA4XxUbgO13Q5yPMTKa0oQ?=
 =?iso-8859-1?Q?EReUe4kWww5DL6tVsh4su3avdiyQv+Qn6URZ8SwIyG1LxqKtV/EvqjbV4U?=
 =?iso-8859-1?Q?IiX43kUQqRF+/nZivqTpNhgRDCCwSX86BsbApZrSPNWnl8SLwOMlGGNRn2?=
 =?iso-8859-1?Q?X1No4TFw38R0rZCvGrzzMo4LLUbYJLgr3NKXZvDXZItqn1xRmusvRyd6YS?=
 =?iso-8859-1?Q?S1yHmOzjU3H700W4v8EJ9MLJgAPdII+s8kcTWxrgRaCrxY97Yu6tmlXQrm?=
 =?iso-8859-1?Q?uoF8+3Sf79hKG73AofR0kdh2SfZQ0Q+WmmeHSz4eZ//YtkYxagkuiWxzdM?=
 =?iso-8859-1?Q?IjduX2JsNGDflPmKzNl3mFHiOkteXjhUJ3F5RtQuWWbUlVJ7PFaAbm0rZA?=
 =?iso-8859-1?Q?qeFgv01Ybr3HEp54DN9L/Il2M3fxUru8ZEViuBFV7Y93LHa234LdymJ3ZQ?=
 =?iso-8859-1?Q?9x8iDPRFz8Ut3Uh6F4P779R0oHBSNpIlqZ1kCCoOrPesnAMxizybKeE9xW?=
 =?iso-8859-1?Q?ySkxPMz0eDPLjw07JutxwiyTiNHnj7W9dlXN1eGlo6B9OdOQ/xCBAeRhr8?=
 =?iso-8859-1?Q?Xhr0nGALk+4TrbhcRd81FTOtFHF9BjaW8AOhptGxrTwaYU1tQinGa6J816?=
 =?iso-8859-1?Q?ylURRi+IBKzXSicIdfs35W9DsKiJIxHSVInRIDDct0M9TAmXIbJjRIe0Fd?=
 =?iso-8859-1?Q?FnMTjOeTqADTi8SJyI+qDRLtexHeEqbAUfPnpI4QsBuGa05ckOtZZJv6FR?=
 =?iso-8859-1?Q?oPCBPkcQ31rB4EWfHTNraEs3AKdR4CbKP/8EGB5jkGiTVcyq+54Hl9HAzV?=
 =?iso-8859-1?Q?L3nYWTy+CjkaTmo6P7g14TZe/btDnjzwYsAqilTLyvB5oCAZ+vZagf3l4P?=
 =?iso-8859-1?Q?iEXCumfBJiIB8cgB20FtoBJuh4Zu9N3S6RmVbEtMxbpEQRU996Uza94DNl?=
 =?iso-8859-1?Q?ZxW9sPvSVqVTHQ7ivPDwVXpLEUPG5VOipAWx6CNtQBEmUxVI0X85vY8KgT?=
 =?iso-8859-1?Q?k+NiNdY=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(42112799006)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?uBbTcCr5SZMSpt8RxQLGA3OM3yh0zP47scQ1v+YTR1SpsK/YRnpCYRZwIV?=
 =?iso-8859-1?Q?8IZlB/ZvfSSH0rVHvhvWE8bQ9KFT/8zN0OWsCP1WOnovNAmC8gw631lC4q?=
 =?iso-8859-1?Q?FNoo/K9hinpMK0vB7wsCU48ib1mspGzoffUxl8Td4KI/BOlX237wM7UVqE?=
 =?iso-8859-1?Q?2DjhhnZ+cuNtKpvYGONhIKlTrfSYF5wmcrb81xff4vbn9g+YY7jl87Iosl?=
 =?iso-8859-1?Q?lhfkHA8X8GjTx3VOdnAbX8qdEXoHODa2/mo+5Korwpq4KlRCzZMAB7yZpC?=
 =?iso-8859-1?Q?0k2Di89ZXl/weuDjnTgr6qHWuzC9b3uPS7BbpdgQJajRztKSackfezHUXv?=
 =?iso-8859-1?Q?wVUQxhizcBJ5S7XAPebEB6WUk2c38C8j2Vk8TFFt7NN87EFrsZ9yNK+7gG?=
 =?iso-8859-1?Q?8Q1vGvI4gPVaRtCvgoAcoR5OGwlgCde1jYnbaZJHwOZzFe1HgBP2Jl7/MC?=
 =?iso-8859-1?Q?w+ee29IR1YHbUA8GOLEkgqoupgIgQfNWwA8U8zL+Tw9ogR91V9rk3xaFq3?=
 =?iso-8859-1?Q?qr1a+mpFANnRSqUKwOORdGz/ntrPWHPENH35VWZ5+CBhAAT24qv7Pm20am?=
 =?iso-8859-1?Q?7HBpBZMjg6RbrI/c5T1s+/tD32G7gs7dBSxJTnP2lAV1rMfnnNHJUwequj?=
 =?iso-8859-1?Q?m1Uiz3m1Kvj6NzIWw1KxomsO0bNg1ppiYkii2kMBxM6ZcDs8vqIob+juNA?=
 =?iso-8859-1?Q?/szM0lJe+RRD26duvetGtswnCsMa6rbFWDDyyJCrLuFNYnJnH4bQXR1/qX?=
 =?iso-8859-1?Q?HnjltFRhu9VrzSSXxB5PZDY7GIVZR1beV4Ok21yeBZ5WeGbcpbgMFIRCTG?=
 =?iso-8859-1?Q?sbAg2TtS2ir10RbVLfO26REu+mEG+6QTetEfeLd2jSEVJLslHfClR0XYLT?=
 =?iso-8859-1?Q?jpdXXq4Q9l3lT6DYf3abLa/vEsPjNWl6+JVbhRwQB6DNYLFuQw6KXnNzh1?=
 =?iso-8859-1?Q?fcECIeHB/3OUsCKPy8suFJJ/s0gLbO262mLaRTXHCgHRIQwi/ydhR4XG/S?=
 =?iso-8859-1?Q?6CRQRYTDlqOxdi8ESMK8fwaGu853vRS36hGvPAddG/kU2jdiXdrHN9D8rZ?=
 =?iso-8859-1?Q?vCOQ0nVF1PKzWdKXqTccOmR5PaNcRaoqg9q5aTTm/xKyuqqJ2bGQI8PWTd?=
 =?iso-8859-1?Q?60JvpiJN90Oj942EMY/Xh72lVqdgpe0FtkOpz+RcgMwWHC1b/47pRFbguV?=
 =?iso-8859-1?Q?ycJAlRnFPRjTPNziPUfrNbdcK+C/ftt39sEeItVUyzsxUBK6Jjj2M6SGI6?=
 =?iso-8859-1?Q?6Oh6Qdw6rNvURHYAVwM/U3jM0DfE2vcwtihyk5jBPIX+rWHu/hUEG7h9uH?=
 =?iso-8859-1?Q?vnLJL2ACbNoWbkwqaMLByhdBZJseD7zNXI1VK4q5yXHKPt9qXqAFdr3uOd?=
 =?iso-8859-1?Q?9mo6Gg9EWU8RoOd/dkFODJorii1G7RfCNCDxBKcJVo5JJKATfilxvrFQFt?=
 =?iso-8859-1?Q?TqVzxAmPylSqIkbRRN8NmpBLD34NWdKZJ8MTdpDwcpTXbWm+kjLg6JzfhX?=
 =?iso-8859-1?Q?mx1AY+nN+CeDY/SVdGatqOw7OnVpzlLRXcXjVzU3e9ZgCasrHBJSExhSi1?=
 =?iso-8859-1?Q?eDIrln+Pwk/KK2QkNfToT4waEmWHEEC1xY+wA/iXbKICYRWHpyZWtBtoau?=
 =?iso-8859-1?Q?pxjmfXBUNSLbyzffs4MPfAWalRN4M65p84aq9xRF4W9pOiCKbtW0gq1g?=
 =?iso-8859-1?Q?=3D=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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1e609905-2c08-4628-5639-08ddd9d4e0da
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Aug 2025 19:17:28.4555
 (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: O9SdnWiGFQ3Jp1ZX++6oegkKC7WdXRKNf18Ei2ExSSfe/SJ5YuomPmbBU8Cqd9am+Hzr9AOPkUDe2eY1a/JT+fvFYDXps2kcDEdztlpNPSY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB9671

MISRA C Rule 2.1 states: "A project shall not contain unreachable code."

Function `PrintErrMesg(const CHAR16*, EFI_STATUS)` isn't intended to return
control to its caller. At the end, it calls `blexit()`, which, in turn,
invokes the `__builtin_unreachable()` function, making subsequent return
statements in `read_file()` unreachable:

    PrintErrMesg(name, ret);
    /* not reached */
    return false;

This also causes unreachability of the code meant to handle `read_file()`
errors, as seen in these examples:

In this block:
    if ( read_file(dir_handle, file_name, &cfg, NULL) )
        break;
    *tail =3D 0;
    }
    if ( !tail )
        blexit(L"No configuration file found.");

And here:
    else if ( !read_file(dir_handle, cfg_file_name, &cfg, NULL) )
        blexit(L"Configuration file not found.");

And here:
    if ( !read_file(dir_handle, s2w(&name), &cfg, NULL) )
    {
        PrintStr(L"Chained configuration file '");
        PrintStr(name.w);
        efi_bs->FreePool(name.w);
        blexit(L"'not found.");
    }

The issue arises because when an error occurs inside `read_file()`, it call=
s
`PrintErrMesg()` and does not return to the caller.

To address this the following changes are applied:
1. Remove `PrintErrMesg(name, ret);` from the `read_file()` function.
2. Replaced it with `PrintErr(name);`, which prints the file name and retur=
ns
   control to the caller.
3. Change the `read_file()` return type from `bool` to `EFI_STATUS`, allowi=
ng
   file operation result codes to be returned to the caller.
4. Properly handle error codes returned from the `read_file()` function in =
the
   relevant areas of the code.
5. Replace `blexit()` calls with informative error codes using `PrintErrMes=
g()`
   where appropriate.

Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
Test CI pipeline:
https://gitlab.com/xen-project/people/dimaprkp4k/xen/-/pipelines/1980590118
---
 xen/common/efi/boot.c | 57 ++++++++++++++++++++++++++++++-------------
 1 file changed, 40 insertions(+), 17 deletions(-)

diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index 50ff1d1bd2..ddbafb2f9c 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -132,7 +132,7 @@ struct file {
     };
 };
=20
-static bool read_file(EFI_FILE_HANDLE dir_handle, CHAR16 *name,
+static EFI_STATUS read_file(EFI_FILE_HANDLE dir_handle, CHAR16 *name,
                       struct file *file, const char *options);
 static bool read_section(const EFI_LOADED_IMAGE *image, const CHAR16 *name=
,
                          struct file *file, const char *options);
@@ -782,7 +782,7 @@ static void __init handle_file_info(const CHAR16 *name,
     efi_arch_handle_module(file, name, options);
 }
=20
-static bool __init read_file(EFI_FILE_HANDLE dir_handle, CHAR16 *name,
+static EFI_STATUS __init read_file(EFI_FILE_HANDLE dir_handle, CHAR16 *nam=
e,
                              struct file *file, const char *options)
 {
     EFI_FILE_HANDLE FileHandle =3D NULL;
@@ -791,7 +791,7 @@ static bool __init read_file(EFI_FILE_HANDLE dir_handle=
, CHAR16 *name,
     const CHAR16 *what =3D NULL;
=20
     if ( !name )
-        PrintErrMesg(L"No filename", EFI_OUT_OF_RESOURCES);
+        return EFI_INVALID_PARAMETER;
=20
     what =3D L"Open";
     if ( dir_handle )
@@ -842,7 +842,7 @@ static bool __init read_file(EFI_FILE_HANDLE dir_handle=
, CHAR16 *name,
=20
     efi_arch_flush_dcache_area(file->ptr, file->size);
=20
-    return true;
+    return ret;
=20
  fail:
     if ( FileHandle )
@@ -850,10 +850,9 @@ static bool __init read_file(EFI_FILE_HANDLE dir_handl=
e, CHAR16 *name,
=20
     PrintErr(what);
     PrintErr(L" failed for ");
-    PrintErrMesg(name, ret);
+    PrintErr(name);
=20
-    /* not reached */
-    return false;
+    return ret;
 }
=20
 static bool __init read_section(const EFI_LOADED_IMAGE *image,
@@ -1433,18 +1432,20 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE Im=
ageHandle,
             while ( (tail =3D point_tail(file_name)) !=3D NULL )
             {
                 wstrcpy(tail, L".cfg");
-                if ( read_file(dir_handle, file_name, &cfg, NULL) )
+                if ( (status =3D read_file(dir_handle, file_name,
+                                         &cfg, NULL)) =3D=3D EFI_SUCCESS )
                     break;
                 *tail =3D 0;
             }
             if ( !tail )
-                blexit(L"No configuration file found.");
+                PrintErrMesg(L"Configuration file failure.", status);
             PrintStr(L"Using configuration file '");
             PrintStr(file_name);
             PrintStr(L"'\r\n");
         }
-        else if ( !read_file(dir_handle, cfg_file_name, &cfg, NULL) )
-            blexit(L"Configuration file not found.");
+        else if ( (status =3D read_file(dir_handle, cfg_file_name,
+                                      &cfg, NULL)) !=3D EFI_SUCCESS )
+            PrintErrMesg(L"Configuration file failure.", status);
         pre_parse(&cfg);
=20
         if ( section.w )
@@ -1465,12 +1466,13 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE Im=
ageHandle,
                 efi_bs->FreePages(cfg.addr, PFN_UP(cfg.size));
                 cfg.need_to_free =3D false;
             }
-            if ( !read_file(dir_handle, s2w(&name), &cfg, NULL) )
+            if ( (status =3D read_file(dir_handle, s2w(&name),
+                                     &cfg, NULL)) !=3D EFI_SUCCESS )
             {
-                PrintStr(L"Chained configuration file '");
+                PrintStr(L"Configuration file '");
                 PrintStr(name.w);
                 efi_bs->FreePool(name.w);
-                blexit(L"'not found.");
+                PrintErrMesg(L"'failure.", status);
             }
             pre_parse(&cfg);
             efi_bs->FreePool(name.w);
@@ -1483,7 +1485,14 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE Ima=
geHandle,
         if ( !read_section(loaded_image, L"kernel", &kernel, option_str) &=
&
              name.s )
         {
-            read_file(dir_handle, s2w(&name), &kernel, option_str);
+            status =3D read_file(dir_handle, s2w(&name), &kernel, option_s=
tr);
+            if ( status !=3D EFI_SUCCESS )
+            {
+                PrintStr(L"Configuration file '");
+                PrintStr(name.w);
+                efi_bs->FreePool(name.w);
+                PrintErrMesg(L"'failure.", status);
+            }
             efi_bs->FreePool(name.w);
         }
         else
@@ -1497,7 +1506,14 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE Ima=
geHandle,
             name.s =3D get_value(&cfg, section.s, "ramdisk");
             if ( name.s )
             {
-                read_file(dir_handle, s2w(&name), &ramdisk, NULL);
+                status =3D read_file(dir_handle, s2w(&name), &ramdisk, NUL=
L);
+                if ( status !=3D EFI_SUCCESS )
+                {
+                    PrintStr(L"Configuration file '");
+                    PrintStr(name.w);
+                    efi_bs->FreePool(name.w);
+                    PrintErrMesg(L"'failure.", status);
+                }
                 efi_bs->FreePool(name.w);
             }
         }
@@ -1507,7 +1523,14 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE Ima=
geHandle,
             name.s =3D get_value(&cfg, section.s, "xsm");
             if ( name.s )
             {
-                read_file(dir_handle, s2w(&name), &xsm, NULL);
+                status =3D read_file(dir_handle, s2w(&name), &xsm, NULL);
+                if ( status !=3D EFI_SUCCESS )
+                {
+                    PrintStr(L"Configuration file '");
+                    PrintStr(name.w);
+                    efi_bs->FreePool(name.w);
+                    PrintErrMesg(L"'failure.", status);
+                }
                 efi_bs->FreePool(name.w);
             }
         }
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 19:36:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 19:36:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079157.1440120 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulunB-0001MW-73; Tue, 12 Aug 2025 19:36:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079157.1440120; Tue, 12 Aug 2025 19:36: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 1ulunB-0001MP-4R; Tue, 12 Aug 2025 19:36:17 +0000
Received: by outflank-mailman (input) for mailman id 1079157;
 Tue, 12 Aug 2025 19:36:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ed2z=2Y=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1ulun9-0001MH-Lo
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 19:36:15 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on20620.outbound.protection.outlook.com
 [2a01:111:f403:2406::620])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9a1a41ab-77b3-11f0-b898-0df219b8e170;
 Tue, 12 Aug 2025 21:36:12 +0200 (CEST)
Received: from SA9P221CA0005.NAMP221.PROD.OUTLOOK.COM (2603:10b6:806:25::10)
 by LV2PR12MB5824.namprd12.prod.outlook.com (2603:10b6:408:176::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.20; Tue, 12 Aug
 2025 19:36:07 +0000
Received: from SN1PEPF00026367.namprd02.prod.outlook.com
 (2603:10b6:806:25:cafe::e7) by SA9P221CA0005.outlook.office365.com
 (2603:10b6:806:25::10) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9009.22 via Frontend Transport; Tue,
 12 Aug 2025 19:36:07 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SN1PEPF00026367.mail.protection.outlook.com (10.167.241.132) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9031.11 via Frontend Transport; Tue, 12 Aug 2025 19:36:07 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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 Aug
 2025 14:36:07 -0500
Received: from [172.18.164.135] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Tue, 12 Aug 2025 14:36:06 -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>
X-Inumbo-ID: 9a1a41ab-77b3-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PXL2um4rQx0adO29LpZuw2VTHitULBOpIKdjXy1Yf2JgJYzD6rCv4O8EJtnYIhGXkaDcx10qxhgpO/93DWj0eaMrx9ywipB1Wg0i3ZdxOHFUozSGeugj5/8hgkvvUbWq1xwlUVOwAii3HNq8cMpTqof5cTGQpZNOJacMZlNbbfDPKjE1KYMNKTGI6y7gaYXuGaTl8EKfNYQat5UCZ4C37bYLXnRd2GNNtnJeuujvHiF9HjldiVVoMPCX+noNja6QlsUuoc9Wrlf/SCn/GO3gA09WLnq5EmrChH9jWSaUvxz54a+me8Ghd410P5V43mue531EGq294sPZoy/PcKcN/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=LqHkB/iKh0iOalV5y38Gym5n4ZW2TlAwTzGUmDm+sNQ=;
 b=PYfttHmB6xEb+WSMLfFtTFZIkl2JNFe++AcObNAxKopteTEZ7t92JaOuBzsvIuA5JbbRz62ZaXXkaB+24D7J/KGJP/bbiN9S35NLAPTZK/p+pzwHcvxLizpUOyMO1Zd8JfVhDjqhpwdzavH8NYkyfxBtgXQeft51Q2ILT+4qcSLE79uyhzsb1olk57znCBOMMggXxSllaj5HBY+9UNs7br5OVArlH8CxrNZ122bF3J1U6Jm/+BVogREnQC9t6TRg+u8jzca7sAROQ+BCWpwy7HvSZFdB/2ce6/neVq4BjqydiCz+7O7Jx7DqP14Wcvw0xiQc/3an/j+W3GHwwh65gw==
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=LqHkB/iKh0iOalV5y38Gym5n4ZW2TlAwTzGUmDm+sNQ=;
 b=cBS9V82naXa4vuAuKC351TZJd/OHnhesZX/VTU2JsiX+Vpe730E5c4DNq3VeVrKCMC46nN80YhH1MjXBn3KamEWZaZubGdu7JEB6X3N/e8agGXiUTkU1pag+pviMU7t8NF9RGtU4J3QCwIDhFmU+rjO+SgLX++ZXZPuu1ypVFw4=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <1651b43b-3230-4404-b65c-50de6d971d74@amd.com>
Date: Tue, 12 Aug 2025 15:36:07 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/events: Fix Global and Domain VIRQ tracking
To: Andrew Cooper <andrew.cooper3@citrix.com>, Juergen Gross
	<jgross@suse.com>, Stefano Stabellini <sstabellini@kernel.org>, Oleksandr
 Tyshchenko <oleksandr_tyshchenko@epam.com>, Chris Wright
	<chrisw@sous-sol.org>, Jeremy Fitzhardinge <jeremy@xensource.com>,
	Christopher Clark <christopher.w.clark@gmail.com>, Daniel Smith
	<dpsmith@apertussolutions.com>
CC: <stable@vger.kernel.org>, <xen-devel@lists.xenproject.org>,
	<linux-kernel@vger.kernel.org>
References: <20250812190041.23276-1-jason.andryuk@amd.com>
 <5407877d-4c7c-494f-8fc1-d44eea4762b9@citrix.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <5407877d-4c7c-494f-8fc1-d44eea4762b9@citrix.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB04.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF00026367:EE_|LV2PR12MB5824:EE_
X-MS-Office365-Filtering-Correlation-Id: d61780af-f4b9-4570-f088-08ddd9d77bd7
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|7416014|36860700013|82310400026|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?VUVNcEkyVTZSZzBYY2VLNDU3S01ZQ2IxbmRGalpQOXh6YjVzZVJOOHBUNml2?=
 =?utf-8?B?MktOSUk0Zk1uaDh5eFhaQ1BRSHMwQlpjVTQxRFZrZFdSb2N2bW1ZTVRnbzZC?=
 =?utf-8?B?M0ZOelNTT0VIZWdrMkZVZHV4cGlpd3BoVWhBU245ek53VUVZNzFmZVA5TFg0?=
 =?utf-8?B?WVk1TEJ2RlpxT2JqSGhZM2xmd0lOZjZlOTduVnFwc0FQRUhBMlppTjRxcU0v?=
 =?utf-8?B?dTgwd1E1Zk1YMDg1TzM2NFZtK3VsUDlrcDRxTG9sWS84SUFSdTR4Y1JUT1Bs?=
 =?utf-8?B?TGdlVGZQTEtZaTVvd2lwMzB0Q3NuNEZTOHBNTWp4RXNxUFFzNU5pU1pDZHBh?=
 =?utf-8?B?Wm55SksvTEJTUWUveGUxejhYY2l4MWZwb25Ycmh0a3RncXBCSGN3a0tiM3A4?=
 =?utf-8?B?QXJOcEZSdHNRM2NqbCtxaldlak9yOVRQMTJzcStiSFNvRTRnL25ZR1A0YXQy?=
 =?utf-8?B?RlByTnZ4cnVJTGY1QnNMU1YxcmVudWppZ1dwMXIrMktnQUd2aTVtcVZuRVpN?=
 =?utf-8?B?WVRVY3Z3WWl5WkI0V1BDeFZmMTJZQVVQV2Z0WTI3SEh4RGozYWtGZU8remZj?=
 =?utf-8?B?SW11dUtxT212U2JLYThtbFBIQUVPY0hvMitOWCtlVVd2Mk92VmZXdmR2b0N4?=
 =?utf-8?B?aTZORXFKL2VJN3hJOXAxNXJlcnBDclJIZFNUVTllZkh1QnZ6SmFIbjJoNGR3?=
 =?utf-8?B?dXVCN0RUTWtlYXJHRTE0eWJhL05Nc2RDQ09yYTdyOGgyZDAzbUZtUkFRYXpE?=
 =?utf-8?B?dGdVYWRadzhnQ1Z6Wlpud2hLRDRSa2x3Nk5NbTUwTXhtUm9sbVZLM2tsVzVK?=
 =?utf-8?B?THNHQWdEOFVkMmpWdnRSakxOcndjYnE2WmpUREJxSmhrcEN5YUpKYVlRaVQ1?=
 =?utf-8?B?TEpMN3VQbnFTWklTcFQwUUFrSGtydU83ZXA3MkhpYktnK1Z5d2VWNEtBYnlK?=
 =?utf-8?B?amU1TVUvRExDazBuZmZ1ZWdrb05EQmxLK1cySnVLOCtWSEVRMHFJbEFLci9v?=
 =?utf-8?B?S2hiMUhOU0Y1RGg3QXRLZzg2cE84aDhFRUdodmlsdG5JMmpRVlRwOXp4Slhy?=
 =?utf-8?B?UVEzNGVJWFJqaXFsQnYxczNPZXoyVmZZZnZoR1RXNEpZMVNXVitsNzR6UUNM?=
 =?utf-8?B?b3pPRlpiRjVjanAySnMraU9uTjFyeTVrdi9CK25ySmVjcXZPaVgreEVTN01u?=
 =?utf-8?B?VDEwSDJoVlZodlgvL3FEWjdzOGxPMERoS1RSUXZJaXdUTEh4cWszRVpLNVZi?=
 =?utf-8?B?aERPOEV6eUpISHpVRFBKeUhiN0JSTFBrRng2cmJmcTVXdmxsUjNGaTVhdU8z?=
 =?utf-8?B?dEpQek5ZRUVsYTdKVkZnQkNiUllvaFJtampYK2t5djVMZnpqWU9iRHhyeDI2?=
 =?utf-8?B?WUJWTnVLejJqWEdGNXFWaEg0TlhrdHFVVXk3emV1dzBKdVFSVHhURFhnRko0?=
 =?utf-8?B?dDcyR2l4NDF6YmUwYXUyWGZ5bTR5azF5WTZzSEpKeXpBYXJpNk8wS0VUV3I3?=
 =?utf-8?B?SWZuUFJnQ2Y1Zm1sZkpZTHFYWFo0eTk0KzhyU3RqNVdIRlRFVTJkTnY4b3dl?=
 =?utf-8?B?Yy9ZT3lTcFRKUzZxa2JWVWhIS1B6eDJFZ3FpRm1uYTlVSXpyMzdIc1pjUXQv?=
 =?utf-8?B?alB1RExoWC9XOHJlbXdzRHpUUUJBMmQxUlpLaURwMWRpc2VJS2tTQVJVNnFT?=
 =?utf-8?B?bGV2em5UWXA4U3lkUW5hRWJWNUZYRkgvb0ZJRUJGbGYzcWcrVE1mRHdOVXE4?=
 =?utf-8?B?MTdDb3FMYk5tSjZzeDFjY2lwRVYxSVJxbVB6SnVLbkxnWmxxa1pUK2hnT2ZS?=
 =?utf-8?B?NFBJSjVzenlobVo2cGZNdGQydUdvZDNSbFc5aC9EYlluQjUwRmk4Q3ZjNkhp?=
 =?utf-8?B?bXc3RTd4RHZkSnc1UXlJVzcvWHA3azRZR1U3cXYya2FaOFJZV1ZTS2g4Q05B?=
 =?utf-8?B?RGozbldvSjdBSDNlNzAvN0hYN3VNN0g2Y3Q0b2JGRDlNSWpwc09QdDR2UXBW?=
 =?utf-8?B?N1JBNWthQ3BiUHFIWGVqVzkvc0Z3MFRzTWRJWHYxTXVmUDdKeTZJY2hxSEJm?=
 =?utf-8?Q?4SgGM6?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(7416014)(36860700013)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Aug 2025 19:36:07.4667
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d61780af-f4b9-4570-f088-08ddd9d77bd7
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF00026367.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV2PR12MB5824

On 2025-08-12 15:10, Andrew Cooper wrote:
> On 12/08/2025 8:00 pm, Jason Andryuk wrote:
>> VIRQs come in 3 flavors, per-VPU, per-domain, and global.  The existing
>> tracking of VIRQs is handled by per-cpu variables virq_to_irq.
>>
>> The issue is that bind_virq_to_irq() sets the per_cpu virq_to_irq at
>> registration time - typically CPU 0.  Later, the interrupt can migrate,
>> and info->cpu is updated.  When calling unbind_from_irq(), the per-cpu
>> virq_to_irq is cleared for a different cpu.  If bind_virq_to_irq() is
>> called again with CPU 0, the stale irq is returned.
>>
>> Change the virq_to_irq tracking to use CPU 0 for per-domain and global
>> VIRQs.  As there can be at most one of each, there is no need for
>> per-vcpu tracking.  Also, per-domain and global VIRQs need to be
>> registered on CPU 0 and can later move, so this matches the expectation.
>>
>> Fixes: e46cdb66c8fc ("xen: event channels")
>> Cc: stable@vger.kernel.org
>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>> ---
>> Fixes is the introduction of the virq_to_irq per-cpu array.
>>
>> This was found with the out-of-tree argo driver during suspend/resume.
>> On suspend, the per-domain VIRQ_ARGO is unbound.  On resume, the driver
>> attempts to bind VIRQ_ARGO.  The stale irq is returned, but the
>> WARN_ON(info == NULL || info->type != IRQT_VIRQ) in bind_virq_to_irq()
>> triggers for NULL info.  The bind fails and execution continues with the
>> driver trying to clean up by unbinding.  This eventually faults over the
>> NULL info.
> 
> I don't think the Fixes: tag is entirely appropriate.
> 
> per-domain VIRQs were created (unexpectedly) by the merge of ARGO into
> Xen.Â  It was during some unrelated cleanup that this was noticed and
> bugfixed into working.Â  i.e. the ARGO VIRQ is the singular weird one here.
> 
> In Xen we did accept that per-domain VIRQs now exist; they had for
> several releases before we realised.

AFAICT, global VIRQs have the same issue - I think they just aren't 
unbound and rebound.  I just happened to trigger this with the 
per-domain ARGO VIRQ.

I double checked, and the cpu is updated like so:

set_affinity_irq()
   rebind_irq_to_cpu()
     bind_evtchn_to_cpu()
       cpu_evtchn[chn] = cpu;

unbind_from_irq()
     case IRQT_VIRQ:
         per_cpu(virq_to_irq, cpu_from_evtchn(evtchn))
                 [index_from_irq(irq)] = -1;

cpu_from_evtchn()
     return cpu_evtchn[evtchn];

So global VIRQs were mis-tracked even in the Fixes commit.

Regards,
Jason

>> ---
>>   drivers/xen/events/events_base.c | 17 ++++++++++++++++-
>>   1 file changed, 16 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/xen/events/events_base.c b/drivers/xen/events/events_base.c
>> index 41309d38f78c..a27e4d7f061e 100644
>> --- a/drivers/xen/events/events_base.c
>> +++ b/drivers/xen/events/events_base.c
>> @@ -159,7 +159,19 @@ static DEFINE_MUTEX(irq_mapping_update_lock);
>>   
>>   static LIST_HEAD(xen_irq_list_head);
>>   
>> -/* IRQ <-> VIRQ mapping. */
>> +static bool is_per_vcpu_virq(int virq) {
>> +	switch (virq) {
>> +	case VIRQ_TIMER:
>> +	case VIRQ_DEBUG:
>> +	case VIRQ_XENOPROF:
>> +	case VIRQ_XENPMU:
>> +		return true;
>> +	default:
>> +		return false;
>> +	}
>> +}
>> +
>> +/* IRQ <-> VIRQ mapping.  Global/Domain virqs are tracked in cpu 0.  */
>>   static DEFINE_PER_CPU(int [NR_VIRQS], virq_to_irq) = {[0 ... NR_VIRQS-1] = -1};
>>   
>>   /* IRQ <-> IPI mapping */
>> @@ -974,6 +986,9 @@ static void __unbind_from_irq(struct irq_info *info, unsigned int irq)
>>   
>>   		switch (info->type) {
>>   		case IRQT_VIRQ:
>> +			if (!is_per_vcpu_virq(virq_from_irq(info)))
>> +				cpu = 0;
>> +
>>   			per_cpu(virq_to_irq, cpu)[virq_from_irq(info)] = -1;
>>   			break;
>>   		case IRQT_IPI:
> 



From xen-devel-bounces@lists.xenproject.org Tue Aug 12 19:39:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 19:39:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079166.1440130 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uluqj-0001uv-M8; Tue, 12 Aug 2025 19:39:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079166.1440130; Tue, 12 Aug 2025 19:39: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 1uluqj-0001um-JJ; Tue, 12 Aug 2025 19:39:57 +0000
Received: by outflank-mailman (input) for mailman id 1079166;
 Tue, 12 Aug 2025 19:39:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=CWaV=2Y=oracle.com=lorenzo.stoakes@srs-se1.protection.inumbo.net>)
 id 1uluqi-0001ug-Ej
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 19:39:56 +0000
Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com
 [205.220.177.32]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1c3aadeb-77b4-11f0-b898-0df219b8e170;
 Tue, 12 Aug 2025 21:39:51 +0200 (CEST)
Received: from pps.filterd (m0246632.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57CJC2wF004779;
 Tue, 12 Aug 2025 19:39:04 GMT
Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com
 (phxpaimrmta02.appoci.oracle.com [147.154.114.232])
 by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 48dwxv5g1x-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 12 Aug 2025 19:39:04 +0000 (GMT)
Received: from pps.filterd
 (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1])
 by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2)
 with ESMTP id 57CIE6FP030192; Tue, 12 Aug 2025 19:39:03 GMT
Received: from dm1pr04cu001.outbound.protection.outlook.com
 (mail-centralusazon11010066.outbound.protection.outlook.com [52.101.61.66])
 by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id
 48dvsadsda-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 12 Aug 2025 19:39:03 +0000
Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16)
 by DS4PPFD57E5FBF5.namprd10.prod.outlook.com (2603:10b6:f:fc00::d4d) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.13; Tue, 12 Aug
 2025 19:39:00 +0000
Received: from DM4PR10MB8218.namprd10.prod.outlook.com
 ([fe80::2650:55cf:2816:5f2]) by DM4PR10MB8218.namprd10.prod.outlook.com
 ([fe80::2650:55cf:2816:5f2%5]) with mapi id 15.20.9031.012; Tue, 12 Aug 2025
 19:39: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>
X-Inumbo-ID: 1c3aadeb-77b4-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=corp-2025-04-25; bh=4NH2Wp9+q0nQBCEAHm
	EVusm3040LluU6lw+YERl2G6M=; b=gi4lFGTJ+1OSCbWYXzFQrEsrHw6XViYoLm
	cntOTi4FC3/XFxyi0JiIy8JJxQdeyw3sFr4eA84nfydr8x9tzyuyj8pURfOIss3/
	RRbAVJqeeN9xxB0cUT368nj3gR+oM5Aax7ZBGMdlUq5Zzv5a9dgBGWb4KmwsqoG9
	EKvqXHjWe/gTdHFDS6gJ2Fgi0V0VYbJr/56sso63cAG8NSHw2MatC2sCT0fl/KXv
	YeSLma0tF1oZSiiugB6nabdOMOG7LqP1G750F8/wHhRgiw0LZt2juooHoyaJ7l/f
	7KG/0I7ssxgPlh1wQLj9c+vLnIajGY5noMf619BwTAP9Y/gHhTaw==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=i0Md3xEHc5MJvCYtZRFQsz2gpUDIF7Xh0mvDDgPzwiZbpp8RmuvCwgUGUg790n+V7fMykvPv9X1sFcoyBwuezq4BgU1VoHDNKy6TnauIjzBEt59eqmyQVfPFDM75Tc1Jvq0rZXIFnzuyetVfyqWFUbyLW5JQKn+7u13uQ7BEoJebc4KSZaJq9sPbryRAnnko9GkvkaD0Dxc2B87BnRJwVCQ7l1hxg8YpcaoWwspOIBqxmf0+HRoUtzikAttF3GKBdpChMJHdKxacw4t4Rd2/1DbFXdNpOjhyWNiRwKFGQMfxJMyb8bZXnceSwt98BPWxPdb6c4LAu5L+SElbh6TOXg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4NH2Wp9+q0nQBCEAHmEVusm3040LluU6lw+YERl2G6M=;
 b=YVMZRef3nxbklzLyhK9V9xBCIAd26vPUJiJO/6Fbs7yn6Djse+WfDTkLrMNaxZqyovkukQsMZQcwfTdJEAtNuioNwh1aLxpHyshYyww/2OnX+TzkRX+VtLfVBY/cNbRvRT7NbjglHIVs+B+SGJdaVbYX7ZSXezL3Fo1O8Hf9irqKNxgM4AeVOCSxuBxpfOdvg96jqrYNCW9RrHnSZU7Icq3TqLM6eWxTShep+3mz6je4LL9N/5ioYnph84/Gd2tqeXd3qKCr3SEU6krT2CRC5xE6IAyEHi7Sqeit5KyI7Iuzyc6ivWuewCNDG7vc0GHyjwagW6mLfkGU3Bk0zqwyMA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4NH2Wp9+q0nQBCEAHmEVusm3040LluU6lw+YERl2G6M=;
 b=0C4yxav0HH+fQmv5zglHpe86f9hvdNlo9fGC2Ok5CJ/SWNOWcC68enKxx6ccYevsgk18HSQLZxmoal/DcUY4H3PiUy7LHAMVe353tAeAc+PmLQ7BJVGg4AcoVZ6Minj9dktjt6xw6Y2RZPHd4n/m/95JsGYAWE7in+A6PUsb8OQ=
Date: Tue, 12 Aug 2025 20:38:50 +0100
From: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
To: David Hildenbrand <david@redhat.com>
Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org,
        xen-devel@lists.xenproject.org, linux-fsdevel@vger.kernel.org,
        nvdimm@lists.linux.dev, linuxppc-dev@lists.ozlabs.org,
        Andrew Morton <akpm@linux-foundation.org>,
        Madhavan Srinivasan <maddy@linux.ibm.com>,
        Michael Ellerman <mpe@ellerman.id.au>,
        Nicholas Piggin <npiggin@gmail.com>,
        Christophe Leroy <christophe.leroy@csgroup.eu>,
        Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Dan Williams <dan.j.williams@intel.com>,
        Matthew Wilcox <willy@infradead.org>, Jan Kara <jack@suse.cz>,
        Alexander Viro <viro@zeniv.linux.org.uk>,
        Christian Brauner <brauner@kernel.org>,
        "Liam R. Howlett" <Liam.Howlett@oracle.com>,
        Vlastimil Babka <vbabka@suse.cz>, Mike Rapoport <rppt@kernel.org>,
        Suren Baghdasaryan <surenb@google.com>, Michal Hocko <mhocko@suse.com>,
        Zi Yan <ziy@nvidia.com>, Baolin Wang <baolin.wang@linux.alibaba.com>,
        Nico Pache <npache@redhat.com>, Ryan Roberts <ryan.roberts@arm.com>,
        Dev Jain <dev.jain@arm.com>, Barry Song <baohua@kernel.org>,
        Jann Horn <jannh@google.com>, Pedro Falcato <pfalcato@suse.de>,
        Hugh Dickins <hughd@google.com>, Oscar Salvador <osalvador@suse.de>,
        Lance Yang <lance.yang@linux.dev>,
        Wei Yang <richard.weiyang@gmail.com>
Subject: Re: [PATCH v3 10/11] mm: introduce and use vm_normal_page_pud()
Message-ID: <8bd06a6e-8d61-47aa-bb37-1916b18597da@lucifer.local>
References: <20250811112631.759341-1-david@redhat.com>
 <20250811112631.759341-11-david@redhat.com>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250811112631.759341-11-david@redhat.com>
X-ClientProxiedBy: GVZP280CA0090.SWEP280.PROD.OUTLOOK.COM
 (2603:10a6:150:275::12) To DM4PR10MB8218.namprd10.prod.outlook.com
 (2603:10b6:8:1cc::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DM4PR10MB8218:EE_|DS4PPFD57E5FBF5:EE_
X-MS-Office365-Filtering-Correlation-Id: e3784dba-5fa3-40c6-a0a1-08ddd9d7e2b1
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|7416014|1800799024|366016|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?e8UMrE+sXP3ZzLkeQYVZWmTkuEup/7ufvf5jAFEKXzXK23aWG8Cmfa3T0eOr?=
 =?us-ascii?Q?yZiNCFf2Xb11U6lHAqh+/BbW2di7RAC0DxgMzELHJh+D8qsKnubak72A27Ug?=
 =?us-ascii?Q?OLWrdt+xIK//Rs8fDKFgUyggwfPVroZK78yXII7eWO1twQhQ7bPSFU/Dar/L?=
 =?us-ascii?Q?s+6QBliXkA4b1hY7OO9py3RJ2XwoB08EUD+BQGpmp4u0OgMBvvna3JzyedhU?=
 =?us-ascii?Q?b4DnapbsRm+IKEGELUFVOBf45G/K/JL1cjrsXgSktsWHG9/HR/vEpUZLbLjV?=
 =?us-ascii?Q?ZKMMnGF+K6tgk+h7dCFw3W2Itd4InAjN9Ryc5JKIQmuSmpiwFqMQadelKbWh?=
 =?us-ascii?Q?dvkjE8zoE2Gdiyc6PyUxOfIatllPsFJ+wALATqBGDG89Sav5DiuIhg75tlGx?=
 =?us-ascii?Q?pi6snmTuki4LS4sqgW8F9PzvSFPv0+B03ukJrE3bihpsrwYNhYmEWNznZKuo?=
 =?us-ascii?Q?cWOsksqj4l5JbYFzhcgJTxeLkFVxES04T30orKg5nxbv2Gd+c6wQo79OS9P9?=
 =?us-ascii?Q?9GGQkT0y56Wvt+iPGk5ypAuFS7eFWioidLMQSTMLiIRZtNKjwQsjvskDIgWN?=
 =?us-ascii?Q?Tc62y2VD4e8ldyEJGmUcXNQplwZOZOoGr0VUFLP/xxEzfK9yYu+tPKcHCFpy?=
 =?us-ascii?Q?jF9vsS3ukIL8ubdp/LY2OHT+CmsMs6Wli/d2JYLNjDOefF3KNZ+hiZz2oJzS?=
 =?us-ascii?Q?ud4pCup9Fw7oEjo4s6cKxo68IGxY1nThkOfuZcrMIDyhYfnMEEUm5jkJx8TO?=
 =?us-ascii?Q?zytmA0ofecA1GPNWWEsPuRpjsRcFIblXt39pQbCzNsm7N0mpXlKSZSyX/xT/?=
 =?us-ascii?Q?7OBggXQ4O0bmUOIeePRQ4fG1VewP04DMZScW0V+t/a54oapOeoQ2IewCor9M?=
 =?us-ascii?Q?25az8aquDWChHbA1TO6QUkcNaYpS19QoWOoHvP1icz8GB7QGURl4TXWIWMp5?=
 =?us-ascii?Q?nKRICS5N5+gezLTRKIgzQZXP0s5iAbG4cI95KGhxPN1Aek6Di+d3ydzAb+EN?=
 =?us-ascii?Q?WuvEHyOaPMvGHrvkvdiIMELcm89dcT5/5GpeT1a0HtYjcwDkqyHMU8sDcTgB?=
 =?us-ascii?Q?qHI6jIvaV5S13o89v4a4nvJEnMRKz9gQZVE0Alg0GwZRZCldKqCKZKSTJ2y+?=
 =?us-ascii?Q?wtGx5C1j/HjQv04S34mg+RJmxOXyYN7yXcII6poZFWjDa25AJtAjc79ZL+s0?=
 =?us-ascii?Q?uawrZynyO+855MXZ5s9M86CFKVbPidzXv4FoatNS6TpEoZmcWF1NxSjQbnAU?=
 =?us-ascii?Q?j25YlGuoBIWrpfDdGJqWUGNGn09w79cof//OI6kCUldntpncCY+QY+jAymLM?=
 =?us-ascii?Q?9YF4LcLVnzF6c81LHhR9Esb4mgkuyreuRNuqzWL4eaiYZlVXjeQW+289dguL?=
 =?us-ascii?Q?67OE7wGagzcTAdnSBtfpnhgwy2XxaUglZDRa0T7W2QYnyeEzPw=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR10MB8218.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?NfjypGTCzHy0dtIgYNg07fvFgoV8MBndmp+Sgz4G6ZA1mg0xBexU8dTfe4lo?=
 =?us-ascii?Q?qYVGJgXtocGUCUyXQ6qbxVIuguWCv8KBnNx5RQBlEglKPq0a8INMusVGolZx?=
 =?us-ascii?Q?I5RHFovXnxpsk3z4OZJ3Qr+xNbvTWG1p5YFgmD2hVujUI38y642IyT9HhGQ8?=
 =?us-ascii?Q?TTIGPGFoKko/+/IPbBMomcbHQ6+87gzjWXHAGzbkqLiUsG6kdW+SHqt6kQQD?=
 =?us-ascii?Q?j7nrC3vN/tUwEB2rZioPym6KsEel8NyGsYaZo/LpJj8qAwQwJ2AN+or+79oH?=
 =?us-ascii?Q?ap9NBEPl4oAyaEBAvQs5qByHOwHMqQf9JUspWrBCG/6SB278iiszQyeqHdiF?=
 =?us-ascii?Q?gWoyanFIS186mI0ztvp27hBUIwA2kXIwz1m2z7j5hk7qXtNkpZq/3AWBoJcP?=
 =?us-ascii?Q?5rNxrXoSMV/ZNyWqgUdnI+jSDTLcEXwCachS7UAAxyHZZPYo/CuuiKyt0A2e?=
 =?us-ascii?Q?7YP6E+Rbxq8op7KebCkDZ/248vf8iN22uxq+1NpiYol7Hp5onY5BRbEEltke?=
 =?us-ascii?Q?Ja01+E4Km3rBz02YaptOQ8XC2gAfJtyGGYEMIaIkQj3Q311crh4plB2/Y9c/?=
 =?us-ascii?Q?66SN335H/sbzjX9yHD1lmuEPVXpf8xG2LJf09GGP7j2JkiqAf/3soglJnNS4?=
 =?us-ascii?Q?lvtI5oUL/Zcl4YSGu9dvHkBzy/efVYzKaF6oeayJMXE0MOZfG+1LJ1HWHQkc?=
 =?us-ascii?Q?HH63GIAEIMT8FB/41g6vfIOJIenEVt1wi9sfF/vbkQZaNfuP4pf9RGJBpmDV?=
 =?us-ascii?Q?Zo2IuNg/GU7HzlPGkD/Y56oY4/FbazbM8rre/3q5W6zRp5mnKmekSGjEtER7?=
 =?us-ascii?Q?j0GCkdr34Ewpn5j2qRogvWkFMIZ864xm/4u3+pB//q0NMG3ARUth5qP2Goh7?=
 =?us-ascii?Q?+nt6jXceXtM+dPOGAUhlNa7O7jWoRdYaI13E719hDDNprhYjbMPm6gnysFX/?=
 =?us-ascii?Q?Wc4+Z+t6pZn79KvPpfG76ZqcL6V03Z9I+9LsbtB+3p0ZCgEqJqejq9zsomfx?=
 =?us-ascii?Q?A1zs7KVPr6tlAvQQ2MUR/9BhaL1ZZ0wQZS+j1iqs8uhjjDBx2WMAqVZQgQa1?=
 =?us-ascii?Q?R1Aod9Af70VWj/x5nWWsnjjGu/3fFSB5nLYtNh+cSfSlEUz3rYINowhI6PLL?=
 =?us-ascii?Q?B5zh8ANOcKqQYkcfSTydVSwc8B277e8+zUVZJLBcn8GXF6CyO81HQOTHCD8z?=
 =?us-ascii?Q?eJIwvaxfwDyMZhDc2uyR9YdoYqCAcgTo6ZDE2km1RkdjVrbd/RgNqoZty3Ve?=
 =?us-ascii?Q?Jnb2Bowem4JtsOwU79ZBeWQMsqOLm/iZ+fxCRlu78VbKzTRxeC+42cgKz0Hg?=
 =?us-ascii?Q?zYcLQlssl0iz/ws4+vko3rCaP3SwqrCsmi2eDrQ/QHeAhxX0Fuk7xCldtnTY?=
 =?us-ascii?Q?9o21f4AAm1FHzzzdRzdKOh/hEXvSVCghonAKYZdO3WLv4vh5DU/rQHGbSCCc?=
 =?us-ascii?Q?tfmaV8MFJrfvEf2eVabFLourfn81FbfuX8lo+d6bp4wMdhJtCEI5eTD2ZSkL?=
 =?us-ascii?Q?2gJRAYSue+YiFQIeQ4UuQHbTe+SN5vBCY9CsAWk2/Sfn2j5V3lDnlRWmuP9Z?=
 =?us-ascii?Q?Q0s+CKIhnrZmz2RdQzqwI+q3kqLFVXsyTYoInz0ij8yRsnJ6kosVoA+NKHdy?=
 =?us-ascii?Q?sQ=3D=3D?=
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	Sf7S9ZnQyKf7rLyy1bXfjA4loX94CVu8IqGx+gl67F+1srIGvJwO19Ne2mOKUPpnSlGc7MPiz4V8mp7GxI7lUP5/R1xUIY9jXCKU9miIrJv9nrqeFbVJEcyTEHM66YoISRWlZ9yVIjJfoU7JCwTseTu0f0rphwJvXvBglxSUXP/+8ujXvZrM7fXqYXa4SKpck7KAAfF07hy3Xr0adCL3Tb7Gg97xoJ7DXX+DNlr80Nd8fSFRXPeNUNeniR5Cf+QPYpV5TW7a3hNlQ8+eDUnCUrsaZubjwU9j40IkoJ/DWmORXo8yzFQxHAxpe250/K12J5p1TOGURcWZ32DoAmC2kJkMLm/nz/Ycq5lasASu3pN1L09sirk+wejJfXa4Bmge9xMax+dH7wKHx34cpCYTLu8cKKwKAw0NkmGXWLWak9IWWVcC9rz4eWwkIJZ9fda7mLD1Q659ubgBMhH65+HIuHFdal7sK7wCq60B5Va4kPA2ZQUkVu4tYsURA5mLVFW0L1nBk8q7wklDpqaqKqQO+fgtLMtsgAkFS/speHkGS/1tOF6CjI+Ruijfz1fNn77OnNiIH5l0hCVD2DxkHzQbWX3qFC0Ym9ROdg+3o0WNjgY=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e3784dba-5fa3-40c6-a0a1-08ddd9d7e2b1
X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Aug 2025 19:39:00.2110
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: p48QJtHL88lLgu9i0ZIx7EdpI4C3CWqJPjIA0QfRd2yhWL9SXHB+A0SE+KEL0gWGmoUYMTwcbS5I9GiFShqZ+LP94oXwCb6WbspgqGB0UVQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PPFD57E5FBF5
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40
 definitions=2025-08-12_07,2025-08-11_01,2025-03-28_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 phishscore=0
 adultscore=0 mlxscore=0 bulkscore=0 spamscore=0 mlxlogscore=999
 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2507300000 definitions=main-2508120189
X-Proofpoint-GUID: BCabanmaFOSTCbImAI4uzUebr1raNkuu
X-Proofpoint-ORIG-GUID: BCabanmaFOSTCbImAI4uzUebr1raNkuu
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODEyMDE4OSBTYWx0ZWRfX/m3VhgS8/jzo
 xqYQq8CCyZvtCmfgc61Vf6Snsww2eMuV+PqOgjzmvAMJ9mZGWQqAQxcI795T1CH/jpl4qdkgTzh
 InV49fyTySnMIqFs3kvwUFnZKIUURSscOTLP+oNEJZOQOVbOTXsRNKe2TXEOSOjHFk7MxocmWRY
 KFHu/k8GDBK49F7L1BEQmjolL9i4cTm0zjUMYaJMjPkBRVbw8oNPehU690r1yMFy1Raruh5clNN
 5L8PEXW2YM+x1Y62JkAg4795QDgHdWKLl3v9ZuelPu0LMfLn+h6FDViOhxzU3xDeHk+PAsr1Byw
 KnNV4USvbvKCN6XLWMxNgtTUzj41xEfOWYkFgqIgVLd9A2D4rTHS70iqraTrFCJd2BqtjRjrRtN
 AMFXsVmJRt2KnqO4Oh8cjt97SiEwLCeyuZJheOwk3G7cX2oXqI3zjW5uUtLUA1e/2INKBIR6
X-Authority-Analysis: v=2.4 cv=KJZaDEFo c=1 sm=1 tr=0 ts=689b9858 cx=c_pps
 a=OOZaFjgC48PWsiFpTAqLcw==:117 a=OOZaFjgC48PWsiFpTAqLcw==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19
 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19
 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=kj9zAlcOel0A:10
 a=2OwXVqhp2XgA:10 a=GoEa3M9JfhUA:10 a=pGLkceISAAAA:8 a=20KFwNOVAAAA:8
 a=yPCof4ZbAAAA:8 a=_vYpphbN4_vJ8DAqhOgA:9 a=CjuIK1q_8ugA:10

On Mon, Aug 11, 2025 at 01:26:30PM +0200, David Hildenbrand wrote:
> Let's introduce vm_normal_page_pud(), which ends up being fairly simple
> because of our new common helpers and there not being a PUD-sized zero
> folio.
>
> Use vm_normal_page_pud() in folio_walk_start() to resolve a TODO,
> structuring the code like the other (pmd/pte) cases. Defer
> introducing vm_normal_folio_pud() until really used.
>
> Note that we can so far get PUDs with hugetlb, daxfs and PFNMAP entries.

I guess hugetlb will be handled in a separate way, daxfs will be... special, I
think? and PFNMAP definitely is.

>
> Reviewed-by: Wei Yang <richard.weiyang@gmail.com>
> Reviewed-by: Oscar Salvador <osalvador@suse.de>
> Signed-off-by: David Hildenbrand <david@redhat.com>

Anyway this is nice, thanks! Nice to resolve the todo :)

Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>

> ---
>  include/linux/mm.h |  2 ++
>  mm/memory.c        | 19 +++++++++++++++++++
>  mm/pagewalk.c      | 20 ++++++++++----------
>  3 files changed, 31 insertions(+), 10 deletions(-)
>
> diff --git a/include/linux/mm.h b/include/linux/mm.h
> index b626d1bacef52..8ca7d2fa71343 100644
> --- a/include/linux/mm.h
> +++ b/include/linux/mm.h
> @@ -2360,6 +2360,8 @@ struct folio *vm_normal_folio_pmd(struct vm_area_struct *vma,
>  				  unsigned long addr, pmd_t pmd);
>  struct page *vm_normal_page_pmd(struct vm_area_struct *vma, unsigned long addr,
>  				pmd_t pmd);
> +struct page *vm_normal_page_pud(struct vm_area_struct *vma, unsigned long addr,
> +		pud_t pud);
>
>  void zap_vma_ptes(struct vm_area_struct *vma, unsigned long address,
>  		  unsigned long size);
> diff --git a/mm/memory.c b/mm/memory.c
> index 78af3f243cee7..6f806bf3cc994 100644
> --- a/mm/memory.c
> +++ b/mm/memory.c
> @@ -809,6 +809,25 @@ struct folio *vm_normal_folio_pmd(struct vm_area_struct *vma,
>  		return page_folio(page);
>  	return NULL;
>  }
> +
> +/**
> + * vm_normal_page_pud() - Get the "struct page" associated with a PUD
> + * @vma: The VMA mapping the @pud.
> + * @addr: The address where the @pud is mapped.
> + * @pud: The PUD.
> + *
> + * Get the "struct page" associated with a PUD. See __vm_normal_page()
> + * for details on "normal" and "special" mappings.
> + *
> + * Return: Returns the "struct page" if this is a "normal" mapping. Returns
> + *	   NULL if this is a "special" mapping.
> + */
> +struct page *vm_normal_page_pud(struct vm_area_struct *vma,
> +		unsigned long addr, pud_t pud)
> +{
> +	return __vm_normal_page(vma, addr, pud_pfn(pud), pud_special(pud),
> +				pud_val(pud), PGTABLE_LEVEL_PUD);
> +}
>  #endif
>
>  /**
> diff --git a/mm/pagewalk.c b/mm/pagewalk.c
> index 648038247a8d2..c6753d370ff4e 100644
> --- a/mm/pagewalk.c
> +++ b/mm/pagewalk.c
> @@ -902,23 +902,23 @@ struct folio *folio_walk_start(struct folio_walk *fw,
>  		fw->pudp = pudp;
>  		fw->pud = pud;
>
> -		/*
> -		 * TODO: FW_MIGRATION support for PUD migration entries
> -		 * once there are relevant users.
> -		 */
> -		if (!pud_present(pud) || pud_special(pud)) {
> +		if (pud_none(pud)) {
>  			spin_unlock(ptl);
>  			goto not_found;
> -		} else if (!pud_leaf(pud)) {
> +		} else if (pud_present(pud) && !pud_leaf(pud)) {
>  			spin_unlock(ptl);
>  			goto pmd_table;
> +		} else if (pud_present(pud)) {
> +			page = vm_normal_page_pud(vma, addr, pud);
> +			if (page)
> +				goto found;
>  		}
>  		/*
> -		 * TODO: vm_normal_page_pud() will be handy once we want to
> -		 * support PUD mappings in VM_PFNMAP|VM_MIXEDMAP VMAs.
> +		 * TODO: FW_MIGRATION support for PUD migration entries
> +		 * once there are relevant users.
>  		 */
> -		page = pud_page(pud);
> -		goto found;
> +		spin_unlock(ptl);
> +		goto not_found;
>  	}
>
>  pmd_table:
> --
> 2.50.1
>


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 19:44:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 19:44:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079181.1440140 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uluv4-0004A3-A5; Tue, 12 Aug 2025 19:44:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079181.1440140; Tue, 12 Aug 2025 19:44: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 1uluv4-00049w-6W; Tue, 12 Aug 2025 19:44:26 +0000
Received: by outflank-mailman (input) for mailman id 1079181;
 Tue, 12 Aug 2025 19:44:25 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=CWaV=2Y=oracle.com=lorenzo.stoakes@srs-se1.protection.inumbo.net>)
 id 1uluv2-00049q-WA
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 19:44:25 +0000
Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com
 [205.220.177.32]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id be9bb896-77b4-11f0-a328-13f23c93f187;
 Tue, 12 Aug 2025 21:44:23 +0200 (CEST)
Received: from pps.filterd (m0333520.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57CJC37i003305;
 Tue, 12 Aug 2025 19:43:37 GMT
Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com
 (iadpaimrmta01.appoci.oracle.com [130.35.100.223])
 by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 48dxcf5m02-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 12 Aug 2025 19:43:37 +0000 (GMT)
Received: from pps.filterd
 (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1])
 by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2)
 with ESMTP id 57CIi4SK009833; Tue, 12 Aug 2025 19:43:36 GMT
Received: from nam10-dm6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on2071.outbound.protection.outlook.com [40.107.93.71])
 by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id
 48dvsgqm85-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 12 Aug 2025 19:43:36 +0000
Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16)
 by CY8PR10MB7124.namprd10.prod.outlook.com (2603:10b6:930:75::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.21; Tue, 12 Aug
 2025 19:43:31 +0000
Received: from DM4PR10MB8218.namprd10.prod.outlook.com
 ([fe80::2650:55cf:2816:5f2]) by DM4PR10MB8218.namprd10.prod.outlook.com
 ([fe80::2650:55cf:2816:5f2%5]) with mapi id 15.20.9031.012; Tue, 12 Aug 2025
 19:43:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: be9bb896-77b4-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=corp-2025-04-25; bh=vC+cNKwnfXlOhdhIjE
	MvIyRCr6cTAm/bihqOKbqMuIo=; b=TN3+SW4BbKjqmcEx+x2cL2h5nmURGOTrp2
	bnsbrjSzXhFLICP0A/pojRNQUCcORCHAIYTtTeZ1hi9Q4uD6tLlQ0sQBfOCzl+Rc
	YJtuAhtY7dXwmdUUl6cUVDJd41rhS7Dz+lF1eAqUbl3PIA00336wbIG+HIyqxBqN
	n+BS8GnlbRV7mvDyothnVI6Y+5qRTuvNHQq0Dz63dy7H3MROvEyGujdxUHp5xCqr
	GEGXv1UFrd0V0wvEHVMQBm/pVhAPQ21mkMr3ZTpsqL9r/ILs9idfAlOFpEO59bcb
	5Nm/9UtgH71WM+grd000y4M845/2TMBQT1YjWHcW7WNph5MZQpfQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AIiWHiEXy+ezadNwVaOtTHWGeoaqcNIl7oPLvIdubZpvW82atG4xMaYn5wCDinOISGhLu2w7BSMAfRWylDAj8B8h9/4F1bSmP9QwIJmL3d6Odo9XkKHj3IwHHaA7m1GqV3i81Ass4Y5pH4jNP0KJjhl1d0xV6THbFBhMdtLZXmjPeF6RG49wEhg19BXypRFp1BC3Aa5J8D/5LpKgmt4iYvJ/kmHLeqiyEyuHiVLmPt/E6RmBd7mH9U29bEsFG+cRizPohqwkQMDCMeF/KsOKtjlKo6N4LIwsmWiBbA8PFyscuLl9Ce9iTUMf/Lp+0/8n7wdRYrHgSqiX30+K3ya5UA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=vC+cNKwnfXlOhdhIjEMvIyRCr6cTAm/bihqOKbqMuIo=;
 b=P10RuFwObVTrDJ+EMpXZUZk3iboBqnI+78gHVZKEIOKofzOQ+WKOt5LWezbucT8Cv+ZF775uVwmOCYrijTZKNThmj2KWIfUs5oWlbDgtR+92ctOfS2D7Ubu6jRFVIu/gFcJkyqB+1Cd+qZ7ZoA7xOmxywajuCn5u7GJ6zcrqrld00b9Y4zWgLMsjWVE1CBh2QMsRx4lLTcXb+0bJJ2LzbTxe0b9KICwmTaHZ9ZeOPMj+iAGoS45wIa0XUoRLNIsupoCzMaFiu45GWiKPaWxtCpM7WEvAybN2nv5B/bk76m9GXoOSxwRdALGEbjM69M5iN8kGv2IbdqjLJca8/HDfWQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=vC+cNKwnfXlOhdhIjEMvIyRCr6cTAm/bihqOKbqMuIo=;
 b=n7MDek2fj75eBjwJwew+1m3M454Dbmqn0unjuVTMYhv7v+Tfz5UVvcnodTDXkLd13piDVl4HcEW/7mypDV0m7/1CY5mYE+GkR84GkSP8/iFLi/f3T0Mx6ZzHQGzcywGwtkJfvH3NQfT/FWZ1ItYlthjcQsog6JlNuEKTy2QDup0=
Date: Tue, 12 Aug 2025 20:43:20 +0100
From: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
To: David Hildenbrand <david@redhat.com>
Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org,
        xen-devel@lists.xenproject.org, linux-fsdevel@vger.kernel.org,
        nvdimm@lists.linux.dev, linuxppc-dev@lists.ozlabs.org,
        Andrew Morton <akpm@linux-foundation.org>,
        Madhavan Srinivasan <maddy@linux.ibm.com>,
        Michael Ellerman <mpe@ellerman.id.au>,
        Nicholas Piggin <npiggin@gmail.com>,
        Christophe Leroy <christophe.leroy@csgroup.eu>,
        Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Dan Williams <dan.j.williams@intel.com>,
        Matthew Wilcox <willy@infradead.org>, Jan Kara <jack@suse.cz>,
        Alexander Viro <viro@zeniv.linux.org.uk>,
        Christian Brauner <brauner@kernel.org>,
        "Liam R. Howlett" <Liam.Howlett@oracle.com>,
        Vlastimil Babka <vbabka@suse.cz>, Mike Rapoport <rppt@kernel.org>,
        Suren Baghdasaryan <surenb@google.com>, Michal Hocko <mhocko@suse.com>,
        Zi Yan <ziy@nvidia.com>, Baolin Wang <baolin.wang@linux.alibaba.com>,
        Nico Pache <npache@redhat.com>, Ryan Roberts <ryan.roberts@arm.com>,
        Dev Jain <dev.jain@arm.com>, Barry Song <baohua@kernel.org>,
        Jann Horn <jannh@google.com>, Pedro Falcato <pfalcato@suse.de>,
        Hugh Dickins <hughd@google.com>, Oscar Salvador <osalvador@suse.de>,
        Lance Yang <lance.yang@linux.dev>,
        David Vrabel <david.vrabel@citrix.com>,
        Wei Yang <richard.weiyang@gmail.com>
Subject: Re: [PATCH v3 11/11] mm: rename vm_ops->find_special_page() to
 vm_ops->find_normal_page()
Message-ID: <77ed5b25-1a82-44b5-be67-698b9674547f@lucifer.local>
References: <20250811112631.759341-1-david@redhat.com>
 <20250811112631.759341-12-david@redhat.com>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250811112631.759341-12-david@redhat.com>
X-ClientProxiedBy: GVZP280CA0076.SWEP280.PROD.OUTLOOK.COM
 (2603:10a6:150:274::13) To DM4PR10MB8218.namprd10.prod.outlook.com
 (2603:10b6:8:1cc::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DM4PR10MB8218:EE_|CY8PR10MB7124:EE_
X-MS-Office365-Filtering-Correlation-Id: b66055d1-a62d-4c30-62b2-08ddd9d8848f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|376014|7416014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?4tCqJY6FFLzhEZFyPG/ICtr7ogd1l6C2aubIJn2uRYW8rplCUza5wzcSclaY?=
 =?us-ascii?Q?sdwNQ33mX2SlxF++ome3YUeNLUo0FO4zp1A+1tMGEBuOBnCyluadofAW+POC?=
 =?us-ascii?Q?o6SKy1p9Q4L6j9t59nlWVXubZSB3LgaXQt+dRPrdI8+LAzaVqYs3LNycy3yg?=
 =?us-ascii?Q?e8ut/Aod8pFCWWiKC0QFrgb0uBtKCz/hgczvlcYMumy69Be2uxVwb3GWircj?=
 =?us-ascii?Q?IUWjD5kKWSQXTAzEoaGVLKB9+Nt1gzFcwdB8tJa+UucL8e2OA4jm4b2YX9Jw?=
 =?us-ascii?Q?5UZ/SdlNzfDql3iQZjJhh6oQuEsCKioe34Zr9bo9PF7mRY2GOPVCBE9+naTF?=
 =?us-ascii?Q?FiGGcNXbDXaf/hS6SpRgn9uC03q5seWr0puW9hthiAodCkKospl6F4H/x4sa?=
 =?us-ascii?Q?DjOvOuJoQB8G22jaBnSUOIp2WE4all1PYU82eVuaSNppDUhrRRkaNyxchMF9?=
 =?us-ascii?Q?s3evuKr781d1nErOnA0qESdlFZcryiIr1APB5pxAcDzr2kDKEDmO8fg7f0tY?=
 =?us-ascii?Q?XEHPv/Ej/IDwhHvf0gS1uzDOqDoVZJnvZfak9f7q/YFpgfskETUiijlGjbmk?=
 =?us-ascii?Q?4wI1fmya/d898tNy4LusRmBWhHqmFUUE88rcNnG1b6nhr3cNl16iw/JIqs/i?=
 =?us-ascii?Q?AktvmMA44BnKlYeQ7/Jsb6MPQFLcqCAXokoMln4Bw4fXf8ERosgtAx2MLuGW?=
 =?us-ascii?Q?BvYEyjY8qz3V5B0x9WJEPxTySBzhfWnjfffhKcw74AxQ8BRHyMJpyT+cL+S3?=
 =?us-ascii?Q?dqHhFhoF/FfjravB461BvQIjoJPJL7QJVLykmV9ILGjq5MuEeKNg0VPh8TZf?=
 =?us-ascii?Q?US81ITPG8Zmf0fjTQnxdeTUd6R9ZIYAEaimgMSfwNpW70+3scWdH+dQtS3nR?=
 =?us-ascii?Q?p/5wopNTy7XzaBlhcfk/18ndUdpBQLc3CWAm6pNOTBP/vXZIfCXLGbvWjN5p?=
 =?us-ascii?Q?Tz71FJkyus568vLiuLx14513EwzDJ8oWStljb8irFC+DYXMJuPYBpmrDOsrw?=
 =?us-ascii?Q?gbYfIZkP1ghM9naIkrXYxpcskZDYKUyuY4gJbUdZXS3j4m3i/zwuPOWDcNB8?=
 =?us-ascii?Q?XGlDTZJlgZlSd2FVKRYk0biKjeCijyA5peJYet62VQkYsCGHX1mPj91s0DjK?=
 =?us-ascii?Q?O/VQRMnYBOKZOEjHiPrQ/LdOnESLnnieHF6pMr+30QFgCT68DNGRCMHrm/QY?=
 =?us-ascii?Q?i2BYSxAeZRJgF2/hjPwks8oz0bvqr71jRX9Dyr+HENAC/x2PTtlmEF+roKcI?=
 =?us-ascii?Q?mXtfW50/kOlFjmUGLk8jVeuX8hTbhEH+2IbVS/Z0fXGcZ/5wXsyCKaUxNubJ?=
 =?us-ascii?Q?4WYWTOGXNyWaze5Q1SmeF6wz73T2vRQuVw/ntHu+A1L/NqR8iEUeKdbbMAYS?=
 =?us-ascii?Q?GY4fd5KBkKRiTn25Bw/k7YONMx8xVV4iIn3u/xegW7SukS6vYtRgfWm0RvNx?=
 =?us-ascii?Q?aBZ8mu1EJ0k=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR10MB8218.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?xyQUVEQ9sPKWyZ6FncEJccIzDxX6TN7k0HYxdSaPn6TsUVp0g5MIkbbxDS0X?=
 =?us-ascii?Q?mI7lrTjTqilrSNohCYeN2CV8l81Om2SsIePF80JThloKGadVIrhAHxNgZKhi?=
 =?us-ascii?Q?ryRfHTmInCK19IhQ5TmHl/NJvtD61XFw4VWLyZKp6Tc5O9YdONmFXqTEY5bB?=
 =?us-ascii?Q?CDZSGc4aQ7Gu5aIKDLSwt58z1j96Fqc+5xBwicIjfZWM3SboqeiRGP9bNGVl?=
 =?us-ascii?Q?yt7xoKLiyOMl8aNklNB9dXLjKlKMIEnt5ZAiwN+exJEUzgDfSJV4PRIsPpnD?=
 =?us-ascii?Q?tB+1R9LNUbnZJQBZES0aiaaBWgmAYn61B7w0zm3g/yiRPTOFtJwP0gXJjDEv?=
 =?us-ascii?Q?xUEKi7oB74IAO9gHibmZzOtO7HqePXqlAgvlxpH0u8am1kemR/Q7CDCbXV8e?=
 =?us-ascii?Q?dbhbexUD/yzVHWamWAWqqi2JGO6shOpCeDvHtHE1l1VlbbzfJFfl5JqLPuYd?=
 =?us-ascii?Q?WjDWR4EbPATjRHR8cadjZ91OcPNe46ZXmZsyWmToTzVbzj0EE4xCr6+9Y2bt?=
 =?us-ascii?Q?tYLGipukc217YM9uxIIH4X03aezBb3baGfdOXxylDv84j4CO8GpwHPxYXINv?=
 =?us-ascii?Q?sKGMgKEFVZY4BsONg8oSQTdjPFdrredWxBiTc1zY2MCHuPTs1yG3VA9YKLp+?=
 =?us-ascii?Q?vAtByJVQYxyIXCXUdRrEaon8q/87eqD/hZoSnnrHlF5/HfdwYyXXNGZo4rdB?=
 =?us-ascii?Q?nKu9OlNE+pPRQx3Emd3V3E5Lvui6A5IeTx6XZiEtn3OliKZPqx+EsGFGk2PS?=
 =?us-ascii?Q?IBwInbGI1hHEsC41V+W2PON/kWSOq4xt3xr6ZLVGOvaynm3/fR9XEfH8TSeF?=
 =?us-ascii?Q?kiVzs20crazU2nGz038+wfvXs41lRrFqHkdZHljjrhjTAo5I14zJ4xwPuySp?=
 =?us-ascii?Q?hFZ3yp6Ly7zNCL/44xgqaA017pnxAuPCOZq7+Qk4ZaKNe34gYEoB4GiG5l4d?=
 =?us-ascii?Q?ofRSK3sgA8lB7aRBGR0rvAghXGIOLHB6LjznUEAlh6q3ZSNgRodnlw2sZX1S?=
 =?us-ascii?Q?HbQ0s5ZZ8g4Mx3dZv4u1ant33watBrYL75fRjhgMPWyryGAEfjG20L7ImLQU?=
 =?us-ascii?Q?d+uzCBfkrmyJLsVq66NrW/cjlmOoSyzHIt/lwMcA/mNGx/pEKkWJFM9zNeaF?=
 =?us-ascii?Q?mTzYB4P3L+bAHK2dhPSiwWVUtSTlhFiOS2fVdqeLU77MvOQcbFtudjQjXkSh?=
 =?us-ascii?Q?mKGpDBADRibTg2foWXF/01Pgk436k1yBajsvJ8x6SRICUsuBSdg1h0HPa1T5?=
 =?us-ascii?Q?QLvzceVVplve456janNZmN/2HnyoNBBpWqDs65dEoWv4ovZFsHI/eV5ZJZNb?=
 =?us-ascii?Q?B08IGNZ+RkYcuZJ3HihfdnXshpzl6sSerZj2jYJPLxVMz5HBQ0Bz/KsvNcqJ?=
 =?us-ascii?Q?1fVmYHeqBWttWWy9BtFoaD/bWvW2Z09osz6dh24hXgGCKe38yaYWbRJgsnUT?=
 =?us-ascii?Q?dDQ/KEi2j93Jvi+ZB7JZVjgg+GuGReOKu8MmAvZbHDtY10JOlaomTsnJX+04?=
 =?us-ascii?Q?ZDODJkMqqmj92C+Oan1BSbSXcFeEgDR/ZyWO8MlgfCCsReGzq92GifeXE0cL?=
 =?us-ascii?Q?4qEZmhxNYMI8lEeI5+WQ2LSGV6iZshJKNGzaAONUsfwPs7jIyrrwdm1ACS/5?=
 =?us-ascii?Q?mA=3D=3D?=
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	1RvRVFfXGFrdbIdYDBTQoaOtT8VB+UHrwGC0mE21+epfiG+wPsx67vL2awT0dvudVwaWzGHi/kTk2lsk5Qty2zKibsWr7QCgEQhrH8NIDcMVxjf4efp+DQ4euC0AVLXmaLGwNWRFkfYx92T6tjAL0t4dioVVlyn3qwfWAdY9PSeV/WS6U+ob0sJ79qYvj+aVA1S3boRkK356l3c26swpi/FhJZbnIaZjoKSG/PChcQt8p60NjYHrWiCsbvbUWul/B0sek1N2R+EG5kMRwZJSfEumJZQbzg7ceZjzA3519AOs0uWNctQfy8hlXv5TieKR48WkbNhkkZGs4clvXwJkGeZVD98MfcfIaTLjbNBggG6l7Wg46cpGj3B6//PKiulaQ9QIWtgdf8iQT64KQ87i4ia73WPbFfZtmAxVfZWD4Oo6SVQigIvL9dhqEMIxPRVlS7U4jb+c7IG6ri/Mc2ylPMZmLbF3398p22+Os1q+ZkObeVk7ZXTCbKtUVtrDZd8stMcM5l+FTrwtJR10fO9CRKG5+alNWJh46NCtyA1+RwIjQt5SCYLBKqvgrQCgcJpycIiKl/jMtp4zbdF0adcRkVR8jIUZmcJKjI8XMPoAjco=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b66055d1-a62d-4c30-62b2-08ddd9d8848f
X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Aug 2025 19:43:31.7871
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 5U0LzY1neFDn6pp9C/BetH8YyXoLcyPlYbTvPPTG69ZXhwJZfxKsSEOI3XClVEDN749Okupo0r8rbkp6nVo49FTmzxS8vItrS2j7AEcHXq4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR10MB7124
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40
 definitions=2025-08-12_07,2025-08-11_01,2025-03-28_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 bulkscore=0
 adultscore=0 mlxscore=0 phishscore=0 spamscore=0 suspectscore=0
 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2507300000 definitions=main-2508120189
X-Proofpoint-GUID: 60Z0vjkLGIrZPgb25nhZCfbC_uANQV65
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODEyMDE4OSBTYWx0ZWRfX9WlsKwndrOAm
 5l4Aj/wJRUaE9VWyZo+uCPG0zDBzCroKxdGlFKBckzhWcvAd310GCMAj+gOpO3Fk3rvh/nw4yBY
 h5Ux72xLxv36amyUX5LeZbDQacJfuZwDEA+W9jSNOa0JyzXi3dqhdGfwF/Ej7gGrcTFq1QT34tg
 QPgIn04W7ixeCYcEkSnk3tQ10+roAn1EBf9pmZJEkxnImlutrk97Riggqc2vts6PhWTNA4pyP8P
 9G/MLFp6Eu0IPxHDT44pUfkGwQnoImG5vJnpSSMPbKE9hcxxPDaSh68isBP4K5YraXKcMDJbdop
 VlYPN9Zb3P5QnIM/3sOoSLRKIhe55Gaf4GR6bL5xq7V8CdGI20m0tXoNWIdYJUqsy2SZq1pz6WH
 CjXOAFLyZpokNv+CLzHhySrAMkF44ashln+KR9y33YpqtcYBztHX6hO2pin3BDg10LUDzonF
X-Authority-Analysis: v=2.4 cv=W8M4VQWk c=1 sm=1 tr=0 ts=689b9969 b=1 cx=c_pps
 a=zPCbziy225d3KhSqZt3L1A==:117 a=zPCbziy225d3KhSqZt3L1A==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19
 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19
 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=kj9zAlcOel0A:10
 a=2OwXVqhp2XgA:10 a=GoEa3M9JfhUA:10 a=tHz9FfFoAAAA:8 a=yPCof4ZbAAAA:8
 a=pGLkceISAAAA:8 a=20KFwNOVAAAA:8 a=oG9WTLIYOA6OTJ5yO9QA:9 a=CjuIK1q_8ugA:10
 cc=ntf awl=host:12069
X-Proofpoint-ORIG-GUID: 60Z0vjkLGIrZPgb25nhZCfbC_uANQV65

On Mon, Aug 11, 2025 at 01:26:31PM +0200, David Hildenbrand wrote:
> ... and hide it behind a kconfig option. There is really no need for
> any !xen code to perform this check.
>
> The naming is a bit off: we want to find the "normal" page when a PTE
> was marked "special". So it's really not "finding a special" page.
>
> Improve the documentation, and add a comment in the code where XEN ends
> up performing the pte_mkspecial() through a hypercall. More details can
> be found in commit 923b2919e2c3 ("xen/gntdev: mark userspace PTEs as
> special on x86 PV guests").
>
> Cc: David Vrabel <david.vrabel@citrix.com>
> Reviewed-by: Oscar Salvador <osalvador@suse.de>
> Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
> Reviewed-by: Wei Yang <richard.weiyang@gmail.com>
> Signed-off-by: David Hildenbrand <david@redhat.com>

Oh I already reviewed it. But anyway, may as well say - THANKS fof this
it's great again :)

> ---
>  drivers/xen/Kconfig              |  1 +
>  drivers/xen/gntdev.c             |  5 +++--
>  include/linux/mm.h               | 18 +++++++++++++-----
>  mm/Kconfig                       |  2 ++
>  mm/memory.c                      | 12 ++++++++++--
>  tools/testing/vma/vma_internal.h | 18 +++++++++++++-----
>  6 files changed, 42 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/xen/Kconfig b/drivers/xen/Kconfig
> index 24f485827e039..f9a35ed266ecf 100644
> --- a/drivers/xen/Kconfig
> +++ b/drivers/xen/Kconfig
> @@ -138,6 +138,7 @@ config XEN_GNTDEV
>  	depends on XEN
>  	default m
>  	select MMU_NOTIFIER
> +	select FIND_NORMAL_PAGE
>  	help
>  	  Allows userspace processes to use grants.
>
> diff --git a/drivers/xen/gntdev.c b/drivers/xen/gntdev.c
> index 1f21607656182..26f13b37c78e6 100644
> --- a/drivers/xen/gntdev.c
> +++ b/drivers/xen/gntdev.c
> @@ -321,6 +321,7 @@ static int find_grant_ptes(pte_t *pte, unsigned long addr, void *data)
>  	BUG_ON(pgnr >= map->count);
>  	pte_maddr = arbitrary_virt_to_machine(pte).maddr;
>
> +	/* Note: this will perform a pte_mkspecial() through the hypercall. */
>  	gnttab_set_map_op(&map->map_ops[pgnr], pte_maddr, flags,
>  			  map->grants[pgnr].ref,
>  			  map->grants[pgnr].domid);
> @@ -528,7 +529,7 @@ static void gntdev_vma_close(struct vm_area_struct *vma)
>  	gntdev_put_map(priv, map);
>  }
>
> -static struct page *gntdev_vma_find_special_page(struct vm_area_struct *vma,
> +static struct page *gntdev_vma_find_normal_page(struct vm_area_struct *vma,
>  						 unsigned long addr)
>  {
>  	struct gntdev_grant_map *map = vma->vm_private_data;
> @@ -539,7 +540,7 @@ static struct page *gntdev_vma_find_special_page(struct vm_area_struct *vma,
>  static const struct vm_operations_struct gntdev_vmops = {
>  	.open = gntdev_vma_open,
>  	.close = gntdev_vma_close,
> -	.find_special_page = gntdev_vma_find_special_page,
> +	.find_normal_page = gntdev_vma_find_normal_page,
>  };
>
>  /* ------------------------------------------------------------------ */
> diff --git a/include/linux/mm.h b/include/linux/mm.h
> index 8ca7d2fa71343..3868ca1a25f9c 100644
> --- a/include/linux/mm.h
> +++ b/include/linux/mm.h
> @@ -657,13 +657,21 @@ struct vm_operations_struct {
>  	struct mempolicy *(*get_policy)(struct vm_area_struct *vma,
>  					unsigned long addr, pgoff_t *ilx);
>  #endif
> +#ifdef CONFIG_FIND_NORMAL_PAGE
>  	/*
> -	 * Called by vm_normal_page() for special PTEs to find the
> -	 * page for @addr.  This is useful if the default behavior
> -	 * (using pte_page()) would not find the correct page.
> +	 * Called by vm_normal_page() for special PTEs in @vma at @addr. This
> +	 * allows for returning a "normal" page from vm_normal_page() even
> +	 * though the PTE indicates that the "struct page" either does not exist
> +	 * or should not be touched: "special".
> +	 *
> +	 * Do not add new users: this really only works when a "normal" page
> +	 * was mapped, but then the PTE got changed to something weird (+
> +	 * marked special) that would not make pte_pfn() identify the originally
> +	 * inserted page.
>  	 */
> -	struct page *(*find_special_page)(struct vm_area_struct *vma,
> -					  unsigned long addr);
> +	struct page *(*find_normal_page)(struct vm_area_struct *vma,
> +					 unsigned long addr);
> +#endif /* CONFIG_FIND_NORMAL_PAGE */
>  };
>
>  #ifdef CONFIG_NUMA_BALANCING
> diff --git a/mm/Kconfig b/mm/Kconfig
> index e443fe8cd6cf2..59a04d0b2e272 100644
> --- a/mm/Kconfig
> +++ b/mm/Kconfig
> @@ -1381,6 +1381,8 @@ config PT_RECLAIM
>
>  	  Note: now only empty user PTE page table pages will be reclaimed.
>
> +config FIND_NORMAL_PAGE
> +	def_bool n
>
>  source "mm/damon/Kconfig"
>
> diff --git a/mm/memory.c b/mm/memory.c
> index 6f806bf3cc994..002c28795d8b7 100644
> --- a/mm/memory.c
> +++ b/mm/memory.c
> @@ -639,6 +639,12 @@ static void print_bad_page_map(struct vm_area_struct *vma,
>   * trivial. Secondly, an architecture may not have a spare page table
>   * entry bit, which requires a more complicated scheme, described below.
>   *
> + * With CONFIG_FIND_NORMAL_PAGE, we might have the "special" bit set on
> + * page table entries that actually map "normal" pages: however, that page
> + * cannot be looked up through the PFN stored in the page table entry, but
> + * instead will be looked up through vm_ops->find_normal_page(). So far, this
> + * only applies to PTEs.
> + *
>   * A raw VM_PFNMAP mapping (ie. one that is not COWed) is always considered a
>   * special mapping (even if there are underlying and valid "struct pages").
>   * COWed pages of a VM_PFNMAP are always normal.
> @@ -679,8 +685,10 @@ static inline struct page *__vm_normal_page(struct vm_area_struct *vma,
>  {
>  	if (IS_ENABLED(CONFIG_ARCH_HAS_PTE_SPECIAL)) {
>  		if (unlikely(special)) {
> -			if (vma->vm_ops && vma->vm_ops->find_special_page)
> -				return vma->vm_ops->find_special_page(vma, addr);
> +#ifdef CONFIG_FIND_NORMAL_PAGE
> +			if (vma->vm_ops && vma->vm_ops->find_normal_page)
> +				return vma->vm_ops->find_normal_page(vma, addr);
> +#endif /* CONFIG_FIND_NORMAL_PAGE */
>  			if (vma->vm_flags & (VM_PFNMAP | VM_MIXEDMAP))
>  				return NULL;
>  			if (is_zero_pfn(pfn) || is_huge_zero_pfn(pfn))
> diff --git a/tools/testing/vma/vma_internal.h b/tools/testing/vma/vma_internal.h
> index 3639aa8dd2b06..cb1c2a8afe265 100644
> --- a/tools/testing/vma/vma_internal.h
> +++ b/tools/testing/vma/vma_internal.h
> @@ -467,13 +467,21 @@ struct vm_operations_struct {
>  	struct mempolicy *(*get_policy)(struct vm_area_struct *vma,
>  					unsigned long addr, pgoff_t *ilx);
>  #endif
> +#ifdef CONFIG_FIND_NORMAL_PAGE
>  	/*
> -	 * Called by vm_normal_page() for special PTEs to find the
> -	 * page for @addr.  This is useful if the default behavior
> -	 * (using pte_page()) would not find the correct page.
> +	 * Called by vm_normal_page() for special PTEs in @vma at @addr. This
> +	 * allows for returning a "normal" page from vm_normal_page() even
> +	 * though the PTE indicates that the "struct page" either does not exist
> +	 * or should not be touched: "special".
> +	 *
> +	 * Do not add new users: this really only works when a "normal" page
> +	 * was mapped, but then the PTE got changed to something weird (+
> +	 * marked special) that would not make pte_pfn() identify the originally
> +	 * inserted page.
>  	 */
> -	struct page *(*find_special_page)(struct vm_area_struct *vma,
> -					  unsigned long addr);
> +	struct page *(*find_normal_page)(struct vm_area_struct *vma,
> +					 unsigned long addr);
> +#endif /* CONFIG_FIND_NORMAL_PAGE */
>  };
>
>  struct vm_unmapped_area_info {
> --
> 2.50.1
>


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 22:30:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 22:30:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079224.1440208 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulxW5-0004Dy-Ax; Tue, 12 Aug 2025 22:30:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079224.1440208; Tue, 12 Aug 2025 22:30: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 1ulxW5-0004Dr-7d; Tue, 12 Aug 2025 22:30:49 +0000
Received: by outflank-mailman (input) for mailman id 1079224;
 Tue, 12 Aug 2025 22:30:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Th/E=2Y=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1ulxW3-00040E-Rg
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 22:30:47 +0000
Received: from mail-10628.protonmail.ch (mail-10628.protonmail.ch
 [79.135.106.28]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fd0754c4-77cb-11f0-b898-0df219b8e170;
 Wed, 13 Aug 2025 00:30:46 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fd0754c4-77cb-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=2nhybwj3wjhifhuk26bdvxuyva.protonmail; t=1755037843; x=1755297043;
	bh=HRjyR++qc25j7qESp2laGTQtnu9OAzU8OtuZqm8tqk4=;
	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=WmK/gTrN2r03kKzvGBr3vybG3kC7dIRg/qB1xDsvwWaiCJTpDbqlotMgJihVLUuPF
	 Jq18ghSqa2Z/KNKaJ3OL8N+n7tyyx6QZpW5Wp2q5T+w+BJ21xhtfrgKneXIgX71Rxj
	 ul/BPPFSghIuGnoDWPYT1aPrqPm4FekWoY+enDPfpOgBcYxq0BRPx0xMFMTx3Apbsp
	 8HAgjNzEOX8kUjxljbOl8ZLtAJQHBiwkoA/sdTpN3N3V64zxED57m2uUeYysEnvq7k
	 dWX1HaEHilOYHw0gIklFYq//MYaKggGMozJnb9ihdCFh8N/uEzAvoquA2QJFuUfDkW
	 dYSu1Bn3hPt/w==
Date: Tue, 12 Aug 2025 22:30:39 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
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, Julien Grall <jgrall@amazon.com>, Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Subject: [PATCH v16 1/4] xen/domain: unify domain ID allocation
Message-ID: <20250812223024.2364749-2-dmukhin@ford.com>
In-Reply-To: <20250812223024.2364749-1-dmukhin@ford.com>
References: <20250812223024.2364749-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 6bb26d9a16806223e669cf27a8d857da1597e099
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>=20

Currently, there are two different domain ID allocation implementations:

  1) Sequential IDs allocation in dom0less Arm code based on max_init_domid=
;

  2) Sequential IDs allocation in XEN_DOMCTL_createdomain; does not use
     max_init_domid (both Arm and x86).

The domain ID allocation covers dom0 or late hwdom, predefined domains,
post-boot domains, excluding Xen system domains (domid >=3D
DOMID_FIRST_RESERVED).

It makes sense to have a common helper code for such task across architectu=
res
(Arm and x86) and between dom0less / toolstack domU allocation.

Note, fixing dependency on max_init_domid is out of scope of this patch.

Wrap the domain ID allocation as an arch-independent function domid_alloc()=
 in
new common/domid.c based on the bitmap.

Allocation algorithm:
- If an explicit domain ID is provided, verify its availability and use it =
if
  ID is not used;
- If DOMID_INVALID is provided, search the range [1..DOMID_FIRST_RESERVED-1=
],
  starting from the last used ID.
  Implementation guarantees that two consecutive calls will never return th=
e
  same ID. ID#0 is reserved for the first boot domain (currently, dom0) and
  excluded from the allocation range.

Remove is_free_domid() helper as it is not needed now.

No functional change intended.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
Reviewed-by: Julien Grall <jgrall@amazon.com>
Reviewed-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
Changes since v15:
- fixup for check after the first pass in the bitarray in domid_alloc()
- trivial renaming for the local variable in domid_alloc()
- kept Julien's R-b, added Alejandro's R-b
---
 xen/arch/arm/domain_build.c             |  7 +-
 xen/arch/x86/setup.c                    |  7 +-
 xen/common/Makefile                     |  1 +
 xen/common/device-tree/dom0less-build.c | 15 ++--
 xen/common/domain.c                     |  2 +
 xen/common/domctl.c                     | 43 ++---------
 xen/common/domid.c                      | 95 +++++++++++++++++++++++++
 xen/include/xen/domain.h                |  3 +
 8 files changed, 126 insertions(+), 47 deletions(-)
 create mode 100644 xen/common/domid.c

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index a9e4153e3cf9..aca35b8961d6 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -2050,6 +2050,7 @@ void __init create_dom0(void)
         .grant_opts =3D XEN_DOMCTL_GRANT_version(opt_gnttab_max_version),
     };
     unsigned int flags =3D CDF_privileged | CDF_hardware;
+    domid_t domid;
     int rc;
=20
     /* The vGIC for DOM0 is exactly emulating the hardware GIC */
@@ -2074,7 +2075,11 @@ void __init create_dom0(void)
     if ( !llc_coloring_enabled )
         flags |=3D CDF_directmap;
=20
-    dom0 =3D domain_create(0, &dom0_cfg, flags);
+    domid =3D domid_alloc(0);
+    if ( domid =3D=3D DOMID_INVALID )
+        panic("Error allocating domain ID 0\n");
+
+    dom0 =3D domain_create(domid, &dom0_cfg, flags);
     if ( IS_ERR(dom0) )
         panic("Error creating domain 0 (rc =3D %ld)\n", PTR_ERR(dom0));
=20
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 1543dd251cc6..398da734c0c5 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1047,8 +1047,11 @@ static struct domain *__init create_dom0(struct boot=
_info *bi)
     if ( iommu_enabled )
         dom0_cfg.flags |=3D XEN_DOMCTL_CDF_iommu;
=20
-    /* Create initial domain.  Not d0 for pvshim. */
-    bd->domid =3D get_initial_domain_id();
+    /* Allocate initial domain ID.  Not d0 for pvshim. */
+    bd->domid =3D domid_alloc(get_initial_domain_id());
+    if ( bd->domid =3D=3D DOMID_INVALID )
+        panic("Error allocating domain ID %u\n", get_initial_domain_id());
+
     d =3D domain_create(bd->domid, &dom0_cfg,
                       pv_shim ? 0 : CDF_privileged | CDF_hardware);
     if ( IS_ERR(d) )
diff --git a/xen/common/Makefile b/xen/common/Makefile
index c316957fcb36..0c7d0f5d46e1 100644
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -11,6 +11,7 @@ obj-$(filter-out $(CONFIG_X86),$(CONFIG_ACPI)) +=3D devic=
e.o
 obj-$(CONFIG_DEVICE_TREE_PARSE) +=3D device-tree/
 obj-$(CONFIG_IOREQ_SERVER) +=3D dm.o
 obj-y +=3D domain.o
+obj-y +=3D domid.o
 obj-y +=3D event_2l.o
 obj-y +=3D event_channel.o
 obj-$(CONFIG_EVTCHN_FIFO) +=3D event_fifo.o
diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tr=
ee/dom0less-build.c
index 6bb038111de9..f4b6b515d2d2 100644
--- a/xen/common/device-tree/dom0less-build.c
+++ b/xen/common/device-tree/dom0less-build.c
@@ -833,6 +833,7 @@ void __init create_domUs(void)
     {
         struct kernel_info ki =3D KERNEL_INFO_INIT;
         int rc =3D parse_dom0less_node(node, &ki.bd);
+        domid_t domid;
=20
         if ( rc =3D=3D -ENOENT )
             continue;
@@ -842,13 +843,13 @@ void __init create_domUs(void)
         if ( (max_init_domid + 1) >=3D DOMID_FIRST_RESERVED )
             panic("No more domain IDs available\n");
=20
-        /*
-         * The variable max_init_domid is initialized with zero, so here i=
t's
-         * very important to use the pre-increment operator to call
-         * domain_create() with a domid > 0. (domid =3D=3D 0 is reserved f=
or Dom0)
-         */
-        ki.bd.d =3D domain_create(++max_init_domid,
-                                &ki.bd.create_cfg, ki.bd.create_flags);
+        domid =3D domid_alloc(DOMID_INVALID);
+        if ( domid =3D=3D DOMID_INVALID )
+            panic("Error allocating ID for domain %s\n", dt_node_name(node=
));
+
+        max_init_domid =3D max(max_init_domid, domid);
+
+        ki.bd.d =3D domain_create(domid, &ki.bd.create_cfg, ki.bd.create_f=
lags);
         if ( IS_ERR(ki.bd.d) )
             panic("Error creating domain %s (rc =3D %ld)\n",
                   dt_node_name(node), PTR_ERR(ki.bd.d));
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 5241a1629eeb..a7e303253d1a 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -692,6 +692,8 @@ static void _domain_destroy(struct domain *d)
=20
     lock_profile_deregister_struct(LOCKPROF_TYPE_PERDOM, d);
=20
+    domid_free(d->domain_id);
+
     free_domain_struct(d);
 }
=20
diff --git a/xen/common/domctl.c b/xen/common/domctl.c
index f2a7caaf853c..71e712c1f316 100644
--- a/xen/common/domctl.c
+++ b/xen/common/domctl.c
@@ -51,20 +51,6 @@ static int xenctl_bitmap_to_nodemask(nodemask_t *nodemas=
k,
                                    MAX_NUMNODES);
 }
=20
-static inline int is_free_domid(domid_t dom)
-{
-    struct domain *d;
-
-    if ( dom >=3D DOMID_FIRST_RESERVED )
-        return 0;
-
-    if ( (d =3D rcu_lock_domain_by_id(dom)) =3D=3D NULL )
-        return 1;
-
-    rcu_unlock_domain(d);
-    return 0;
-}
-
 void getdomaininfo(struct domain *d, struct xen_domctl_getdomaininfo *info=
)
 {
     struct vcpu *v;
@@ -423,36 +409,19 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u=
_domctl)
=20
     case XEN_DOMCTL_createdomain:
     {
-        domid_t        dom;
-        static domid_t rover =3D 0;
+        /* NB: ID#0 is reserved, find the first suitable ID instead. */
+        domid_t domid =3D domid_alloc(op->domain ?: DOMID_INVALID);
=20
-        dom =3D op->domain;
-        if ( (dom > 0) && (dom < DOMID_FIRST_RESERVED) )
+        if ( domid =3D=3D DOMID_INVALID )
         {
             ret =3D -EEXIST;
-            if ( !is_free_domid(dom) )
-                break;
-        }
-        else
-        {
-            for ( dom =3D rover + 1; dom !=3D rover; dom++ )
-            {
-                if ( dom =3D=3D DOMID_FIRST_RESERVED )
-                    dom =3D 1;
-                if ( is_free_domid(dom) )
-                    break;
-            }
-
-            ret =3D -ENOMEM;
-            if ( dom =3D=3D rover )
-                break;
-
-            rover =3D dom;
+            break;
         }
=20
-        d =3D domain_create(dom, &op->u.createdomain, false);
+        d =3D domain_create(domid, &op->u.createdomain, false);
         if ( IS_ERR(d) )
         {
+            domid_free(domid);
             ret =3D PTR_ERR(d);
             d =3D NULL;
             break;
diff --git a/xen/common/domid.c b/xen/common/domid.c
new file mode 100644
index 000000000000..2387ddb08300
--- /dev/null
+++ b/xen/common/domid.c
@@ -0,0 +1,95 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Domain ID allocator.
+ *
+ * Covers dom0 or late hwdom, predefined domains, post-boot domains.
+ * Excludes system domains (ID >=3D DOMID_FIRST_RESERVED).
+ *
+ * Copyright 2025 Ford Motor Company
+ */
+
+#include <xen/domain.h>
+
+static DEFINE_SPINLOCK(domid_lock);
+static DECLARE_BITMAP(domid_bitmap, DOMID_FIRST_RESERVED);
+
+/*
+ * Allocate domain ID.
+ *
+ * @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] rang=
e,
+ *   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 allocat=
ion
+ *   range.
+ * @return Valid domain ID in case of successful allocation,
+ *         DOMID_INVALID - otherwise.
+ */
+domid_t domid_alloc(domid_t domid)
+{
+    static domid_t domid_last;
+
+    spin_lock(&domid_lock);
+
+    /* Exact match. */
+    if ( domid < DOMID_FIRST_RESERVED )
+    {
+        if ( __test_and_set_bit(domid, domid_bitmap) )
+            domid =3D DOMID_INVALID;
+    }
+    /*
+     * Exhaustive search.
+     *
+     * Domain ID#0 is reserved for the first boot domain (e.g. control dom=
ain)
+     * and excluded from allocation.
+     */
+    else
+    {
+        domid_t bound =3D DOMID_FIRST_RESERVED;
+
+        domid =3D find_next_zero_bit(domid_bitmap, bound, domid_last + 1);
+        if ( domid >=3D bound && domid_last !=3D 0 )
+        {
+            bound =3D domid_last + 1;
+            domid =3D find_next_zero_bit(domid_bitmap, bound, 1);
+        }
+
+        ASSERT(domid <=3D DOMID_FIRST_RESERVED);
+        if ( domid < bound )
+        {
+            __set_bit(domid, domid_bitmap);
+            domid_last =3D domid;
+        }
+        else
+            domid =3D DOMID_INVALID;
+    }
+
+    spin_unlock(&domid_lock);
+
+    return domid;
+}
+
+void domid_free(domid_t domid)
+{
+    int rc;
+
+    ASSERT(domid <=3D DOMID_FIRST_RESERVED);
+
+    spin_lock(&domid_lock);
+    rc =3D __test_and_clear_bit(domid, domid_bitmap);
+    spin_unlock(&domid_lock);
+
+    ASSERT(rc);
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
index e10baf2615fd..8aab05ae93c8 100644
--- a/xen/include/xen/domain.h
+++ b/xen/include/xen/domain.h
@@ -38,6 +38,9 @@ void arch_get_domain_info(const struct domain *d,
=20
 domid_t get_initial_domain_id(void);
=20
+domid_t domid_alloc(domid_t domid);
+void domid_free(domid_t domid);
+
 /* CDF_* constant. Internal flags for domain creation. */
 /* Is this a privileged domain? */
 #define CDF_privileged           (1U << 0)
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Aug 12 22:30:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 22:30:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079223.1440198 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulxW4-00040W-4a; Tue, 12 Aug 2025 22:30:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079223.1440198; Tue, 12 Aug 2025 22:30:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulxW4-00040O-1t; Tue, 12 Aug 2025 22:30:48 +0000
Received: by outflank-mailman (input) for mailman id 1079223;
 Tue, 12 Aug 2025 22:30:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Th/E=2Y=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1ulxW1-00040E-MB
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 22:30:46 +0000
Received: from mail-4316.protonmail.ch (mail-4316.protonmail.ch [185.70.43.16])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f9191939-77cb-11f0-b898-0df219b8e170;
 Wed, 13 Aug 2025 00:30:39 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f9191939-77cb-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=rdkogkimqfdone763z5pvxsccy.protonmail; t=1755037838; x=1755297038;
	bh=RnabvmzkVwpyZCsyR8+acQx7GW5NK7lhyIZSIv7OOZA=;
	h=Date:To:From:Cc:Subject:Message-ID:Feedback-ID:From:To:Cc:Date:
	 Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector;
	b=UX5ol8ylFKa2JQHBlyDgCjqeHjlcLz47cvQ15O6FBX3z0yOpMjCx8qnZ0KPbmkwuE
	 rIpO6w45l/TDLT1Esyp+GuDc6LoER2/psZQgHoaV02D0UvAnHfxlTcy+q69sSBWLbF
	 VXXqswhgT/Ed/9QJCCecY6axyxGP4qYZ4sQY7H9b6Y1ntwxqWqRopLmMY7hUZB9+T3
	 z2W176t3sDg9g4iC0Sj+zMVU1qUzac4eyTJ5f2bfv9Wlt3veQ9HdbNmm9krFZv03AC
	 WTjyTjo7Kn+2VxxVsMiS9ErE2/+iRCQbUCT6GL7Nx0rw6xMBSUKCEBmTGI8ZZGWKln
	 ME65U82Dc9Pxw==
Date: Tue, 12 Aug 2025 22:30:32 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
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 v16 0/4] xen/domain: domain ID allocation
Message-ID: <20250812223024.2364749-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 2ee4c6fe43d00d1f6651570f5c9895eb8ded4b63
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Patch 1 introduces new domid_{alloc,free} calls.
Patch 2 is a prep change for domain ID allocator test.
Patch 3 introduces some basic testing for domain ID allocator.
Patch 4 adjusts create_dom0() messages (use %pd).

Link to v15: https://lore.kernel.org/xen-devel/20250809170747.1836880-1-dmu=
khin@ford.com/
Link to CI: https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelines/1=
980989231

Denis Mukhin (4):
  xen/domain: unify domain ID allocation
  tools/include: move xc_bitops.h to xen-tools/bitops.h
  tools/tests: introduce unit tests for domain ID allocator
  xen/domain: update create_dom0() messages

 .../xen-tools/bitops.h}                       | 16 +++-
 tools/libs/ctrl/xc_misc.c                     | 13 +--
 tools/libs/guest/xg_dom_elfloader.c           |  3 +-
 tools/libs/guest/xg_dom_hvmloader.c           |  3 +-
 tools/libs/guest/xg_private.h                 |  2 +-
 tools/libs/guest/xg_sr_common.h               |  3 +-
 tools/tests/Makefile                          |  1 +
 tools/tests/domid/.gitignore                  |  3 +
 tools/tests/domid/Makefile                    | 84 ++++++++++++++++
 tools/tests/domid/harness.h                   | 54 +++++++++++
 tools/tests/domid/test-domid.c                | 93 ++++++++++++++++++
 xen/arch/arm/domain_build.c                   | 13 ++-
 xen/arch/x86/setup.c                          | 11 ++-
 xen/common/Makefile                           |  1 +
 xen/common/device-tree/dom0less-build.c       | 15 +--
 xen/common/domain.c                           |  2 +
 xen/common/domctl.c                           | 43 ++-------
 xen/common/domid.c                            | 95 +++++++++++++++++++
 xen/include/xen/domain.h                      |  3 +
 xen/lib/find-next-bit.c                       |  5 +
 20 files changed, 397 insertions(+), 66 deletions(-)
 rename tools/{libs/ctrl/xc_bitops.h =3D> include/xen-tools/bitops.h} (84%)
 create mode 100644 tools/tests/domid/.gitignore
 create mode 100644 tools/tests/domid/Makefile
 create mode 100644 tools/tests/domid/harness.h
 create mode 100644 tools/tests/domid/test-domid.c
 create mode 100644 xen/common/domid.c

--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Aug 12 22:30:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 22:30:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079226.1440224 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulxWD-0004YY-1i; Tue, 12 Aug 2025 22:30:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079226.1440224; Tue, 12 Aug 2025 22:30:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulxWC-0004Xe-SE; Tue, 12 Aug 2025 22:30:56 +0000
Received: by outflank-mailman (input) for mailman id 1079226;
 Tue, 12 Aug 2025 22:30:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Th/E=2Y=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1ulxWB-0004TJ-HQ
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 22:30:55 +0000
Received: from mail-10629.protonmail.ch (mail-10629.protonmail.ch
 [79.135.106.29]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0275461e-77cc-11f0-a328-13f23c93f187;
 Wed, 13 Aug 2025 00:30:54 +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>
X-Inumbo-ID: 0275461e-77cc-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=drlnfcq6ibai7j3scksxxx3k4u.protonmail; t=1755037853; x=1755297053;
	bh=XixfifFOrDZoa6xOSIH77VDx3GwR4fb7LvpluvJ+FYg=;
	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=CzzqokghsJ3fplhix4wp7CjkN4QKyU6vpbPlqZIBHmrCGGDk1supy/UgGmEOI8jV6
	 U8JsU/lhFhE6zHWtlqNxQtYZ5U1GFbfVeBR+KM706+MNpVC6aV6AD52U8ig2zCwCgx
	 TBUrccpbSd+49LWGP6AzXZVfvpft0RJeICMKAr3SO7DBrjlu8VhezKwxkX40JZ0cju
	 ssttd3NBeWdX4f1b002peyFispSbMhBdI4iXjq6pLwFc4TMZghIKOM/4pz2GBRVT/a
	 ZrJU+CPNOt+gGxBeLyKjATMANi0lZ2t+taGLLw6PxEJhQYFnG8vEdYLcPRL1H2LqLE
	 WrytDsnDqO3AA==
Date: Tue, 12 Aug 2025 22:30:50 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
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, Julien Grall <jgrall@amazon.com>
Subject: [PATCH v16 3/4] tools/tests: introduce unit tests for domain ID allocator
Message-ID: <20250812223024.2364749-4-dmukhin@ford.com>
In-Reply-To: <20250812223024.2364749-1-dmukhin@ford.com>
References: <20250812223024.2364749-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 11ec6321e7ada1efd5d07ffd845679c38bf3708e
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>=20

Introduce some basic infrastructure for doing domain ID allocation unit tes=
ts,
and add a few tests that ensure correctness of the domain ID allocator.

Use <xen-tools/bitops.h> and xen/lib/find-next-bit.c in test hardness code.

Adjust find-next-bit.c to be compiled with __XEN_TOOLS__.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
Reviewed-by: Julien Grall <jgrall@amazon.com>
---
Changes since v15:
- fixed generating harness dependencies on the fly during the test build
- kept Julien's R-b
---
 tools/include/xen-tools/bitops.h | 10 ++++
 tools/tests/Makefile             |  1 +
 tools/tests/domid/.gitignore     |  3 ++
 tools/tests/domid/Makefile       | 84 +++++++++++++++++++++++++++++
 tools/tests/domid/harness.h      | 54 +++++++++++++++++++
 tools/tests/domid/test-domid.c   | 93 ++++++++++++++++++++++++++++++++
 xen/lib/find-next-bit.c          |  5 ++
 7 files changed, 250 insertions(+)
 create mode 100644 tools/tests/domid/.gitignore
 create mode 100644 tools/tests/domid/Makefile
 create mode 100644 tools/tests/domid/harness.h
 create mode 100644 tools/tests/domid/test-domid.c

diff --git a/tools/include/xen-tools/bitops.h b/tools/include/xen-tools/bit=
ops.h
index 681482f6759f..3b98fba6d74c 100644
--- a/tools/include/xen-tools/bitops.h
+++ b/tools/include/xen-tools/bitops.h
@@ -12,6 +12,16 @@
 #define BITS_PER_LONG 32
 #endif
=20
+#define ffsl(x)       __builtin_ffsl(x)
+
+#define BIT_WORD(nr)  ((nr) / BITS_PER_LONG)
+
+#define BITS_TO_LONGS(bits) \
+    (((bits) + BITS_PER_LONG - 1) / BITS_PER_LONG)
+
+#define DECLARE_BITMAP(name, bits) \
+    unsigned long name[BITS_TO_LONGS(bits)]
+
 #define BITMAP_ENTRY(_nr,_bmap) ((_bmap))[(_nr) / 8]
 #define BITMAP_SHIFT(_nr) ((_nr) % 8)
=20
diff --git a/tools/tests/Makefile b/tools/tests/Makefile
index 97ba2a13894d..ac5737364623 100644
--- a/tools/tests/Makefile
+++ b/tools/tests/Makefile
@@ -2,6 +2,7 @@ XEN_ROOT =3D $(CURDIR)/../..
 include $(XEN_ROOT)/tools/Rules.mk
=20
 SUBDIRS-y :=3D
+SUBDIRS-y +=3D domid
 SUBDIRS-y +=3D resource
 SUBDIRS-$(CONFIG_X86) +=3D cpu-policy
 SUBDIRS-$(CONFIG_X86) +=3D tsx
diff --git a/tools/tests/domid/.gitignore b/tools/tests/domid/.gitignore
new file mode 100644
index 000000000000..0e02715159c2
--- /dev/null
+++ b/tools/tests/domid/.gitignore
@@ -0,0 +1,3 @@
+*.o
+generated
+test-domid
diff --git a/tools/tests/domid/Makefile b/tools/tests/domid/Makefile
new file mode 100644
index 000000000000..0a124a8bfc76
--- /dev/null
+++ b/tools/tests/domid/Makefile
@@ -0,0 +1,84 @@
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# Unit tests for domain ID allocator.
+#
+# Copyright 2025 Ford Motor Company
+
+XEN_ROOT=3D$(CURDIR)/../../..
+include $(XEN_ROOT)/tools/Rules.mk
+
+TESTS :=3D test-domid
+
+strip-list =3D $(sort $(strip $(foreach x,$(1),$(strip $(x)))))
+
+define list-c-headers
+$(shell sed -n -r \
+    's/^[ \t]*# *include[ \t]*[<"]([^">]+)[">].*/\1/p' $(1) 2>/dev/null)
+endef
+
+define emit-harness-nested-rule
+$(1): $(CURDIR)/harness.h
+=09mkdir -p $$(dir $$@)
+=09ln -sf $$^ $$@
+endef
+
+define emit-harness-rules
+ifneq ($(strip $(3)),)
+$(foreach h,$(3),$(call emit-harness-nested-rule,$(CURDIR)/generated/$(h))=
)
+vpath $(1) $(2)
+$(1:.c=3D.o): $(addprefix $(CURDIR)/generated/,$(3))
+endif
+endef
+
+define vpath-with-harness-deps
+$(call emit-harness-rules,$(1),$(2),\
+    $(call strip-list,$(call list-c-headers,$(2)$(1))))
+endef
+
+.PHONY: all
+all: $(TESTS)
+
+.PHONY: run
+run: $(TESTS)
+=09$(foreach t,$(TESTS),./$(t);)
+
+.PHONY: clean
+clean:
+=09$(RM) -rf $(CURDIR)/generated
+=09$(RM) -- *.o $(TESTS) $(DEPS_RM)
+
+.PHONY: distclean
+distclean: clean
+=09$(RM) -- *~
+
+.PHONY: install
+install: all
+=09$(INSTALL_DIR) $(DESTDIR)$(LIBEXEC)/tests
+=09$(INSTALL_PROG) test-domid $(DESTDIR)$(LIBEXEC)/tests
+
+.PHONY: uninstall
+uninstall:
+=09$(RM) -- $(DESTDIR)$(LIBEXEC)/tests/test-domid
+
+CFLAGS +=3D -D__XEN_TOOLS__
+# find-next-bit.c
+CFLAGS +=3D '-DEXPORT_SYMBOL(x)=3D' \
+          -Dfind_first_bit \
+          -Dfind_first_zero_bit \
+          -Dfind_next_bit \
+          -Dfind_next_bit_le \
+          -Dfind_next_zero_bit_le
+CFLAGS +=3D $(APPEND_CFLAGS)
+CFLAGS +=3D $(CFLAGS_xeninclude)
+CFLAGS +=3D -I./generated/
+
+LDFLAGS +=3D $(APPEND_LDFLAGS)
+
+vpath find-next-bit.c $(XEN_ROOT)/xen/lib/
+# Ubuntu {16,18}.04 need single eval at the call site.
+$(eval $(call vpath-with-harness-deps,domid.c,$(XEN_ROOT)/xen/common/))
+
+test-domid: domid.o find-next-bit.o test-domid.o
+=09$(CC) $^ -o $@ $(LDFLAGS)
+
+-include $(DEPS_INCLUDE)
diff --git a/tools/tests/domid/harness.h b/tools/tests/domid/harness.h
new file mode 100644
index 000000000000..17eb22a9a854
--- /dev/null
+++ b/tools/tests/domid/harness.h
@@ -0,0 +1,54 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Unit test harness for domain ID allocator.
+ *
+ * Copyright 2025 Ford Motor Company
+ */
+
+#ifndef _TEST_HARNESS_
+#define _TEST_HARNESS_
+
+#include <assert.h>
+#include <stdbool.h>
+#include <stdint.h>
+#include <stdio.h>
+
+#include <xen-tools/common-macros.h>
+#include <xen-tools/bitops.h>
+
+typedef bool spinlock_t;
+typedef uint16_t domid_t;
+
+extern domid_t domid_alloc(domid_t domid);
+extern void domid_free(domid_t domid);
+
+extern unsigned long find_next_zero_bit(const unsigned long *addr,
+                                        unsigned long size,
+                                        unsigned long offset);
+
+#define __test_and_set_bit(nr, addr)    test_and_set_bit(nr, addr)
+#define __test_and_clear_bit(nr, addr)  test_and_clear_bit(nr, addr)
+#define __set_bit(nr, addr)             set_bit(nr, addr)
+
+#define BUG_ON(x)                       assert(!(x))
+#define ASSERT(x)                       assert(x)
+
+#define DEFINE_SPINLOCK(l)              spinlock_t l
+#define spin_lock(l)                    (assert(!*(l)), *(l) =3D true)
+#define spin_unlock(l)                  (assert(*(l)), *(l) =3D false)
+
+#define printk                          printf
+
+#define DOMID_FIRST_RESERVED            (100)
+#define DOMID_INVALID                   (101)
+
+#endif /* _TEST_HARNESS_ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/tools/tests/domid/test-domid.c b/tools/tests/domid/test-domid.=
c
new file mode 100644
index 000000000000..51a88a6a9550
--- /dev/null
+++ b/tools/tests/domid/test-domid.c
@@ -0,0 +1,93 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Unit tests for domain ID allocator.
+ *
+ * Copyright 2025 Ford Motor Company
+ */
+
+#include "harness.h"
+
+#define verify(exp, fmt, args...) do { \
+    if ( !(exp) ) \
+        printf(fmt, ## args); \
+    assert(exp); \
+} while (0);
+
+/*
+ * Fail on the first error, since tests are dependent on each other.
+ */
+int main(int argc, char **argv)
+{
+    domid_t expected, allocated;
+
+    /* Test ID cannot be allocated twice. */
+    for ( expected =3D 0; expected < DOMID_FIRST_RESERVED; expected++ )
+    {
+        allocated =3D domid_alloc(expected);
+        verify(allocated =3D=3D expected,
+               "TEST 1: expected %u allocated %u\n", expected, allocated);
+    }
+    for ( expected =3D 0; expected < DOMID_FIRST_RESERVED; expected++ )
+    {
+        allocated =3D domid_alloc(expected);
+        verify(allocated =3D=3D DOMID_INVALID,
+               "TEST 2: expected %u allocated %u\n", DOMID_INVALID, alloca=
ted);
+    }
+
+    /* Ensure all IDs, including ID#0 are not allocated. */
+    for ( expected =3D 0; expected < DOMID_FIRST_RESERVED; expected++ )
+        domid_free(expected);
+
+    /*
+     * Test that that two consecutive calls of domid_alloc(DOMID_INVALID)
+     * will never return the same ID.
+     * NB: ID#0 is reserved and shall not be allocated by
+     * domid_alloc(DOMID_INVALID).
+     */
+    for ( expected =3D 1; expected < DOMID_FIRST_RESERVED; expected++ )
+    {
+        allocated =3D domid_alloc(DOMID_INVALID);
+        verify(allocated =3D=3D expected,
+               "TEST 3: expected %u allocated %u\n", expected, allocated);
+    }
+    for ( expected =3D 1; expected < DOMID_FIRST_RESERVED; expected++ )
+    {
+        allocated =3D domid_alloc(DOMID_INVALID);
+        verify(allocated =3D=3D DOMID_INVALID,
+               "TEST 4: expected %u allocated %u\n", DOMID_INVALID, alloca=
ted);
+    }
+
+    /* Re-allocate first ID from [1..DOMID_FIRST_RESERVED/2]. */
+    for ( expected =3D 1; expected < DOMID_FIRST_RESERVED / 2; expected++ =
)
+        domid_free(expected);
+    for ( expected =3D 1; expected < DOMID_FIRST_RESERVED / 2; expected++ =
)
+    {
+        allocated =3D domid_alloc(DOMID_INVALID);
+        verify(allocated =3D=3D expected,
+               "TEST 5: expected %u allocated %u\n", expected, allocated);
+    }
+
+    /* Re-allocate last ID from [1..DOMID_FIRST_RESERVED - 1]. */
+    expected =3D DOMID_FIRST_RESERVED - 1;
+    domid_free(DOMID_FIRST_RESERVED - 1);
+    allocated =3D domid_alloc(DOMID_INVALID);
+    verify(allocated =3D=3D expected,
+           "TEST 6: expected %u allocated %u\n", expected, allocated);
+
+    /* Allocate an invalid ID. */
+    expected =3D DOMID_INVALID;
+    allocated =3D domid_alloc(DOMID_FIRST_RESERVED);
+    verify(allocated =3D=3D expected,
+           "TEST 7: expected %u allocated %u\n", expected, allocated);
+
+    return 0;
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/lib/find-next-bit.c b/xen/lib/find-next-bit.c
index 9b8d7814f20c..539c7f2022b0 100644
--- a/xen/lib/find-next-bit.c
+++ b/xen/lib/find-next-bit.c
@@ -8,8 +8,13 @@
  * as published by the Free Software Foundation; either version
  * 2 of the License, or (at your option) any later version.
  */
+
+#ifdef __XEN_TOOLS__
+#include <xen-tools/bitops.h>
+#else
 #include <xen/bitops.h>
 #include <xen/byteorder.h>
+#endif
=20
 #define __ffs(x) (ffsl(x) - 1)
 #define ffz(x) __ffs(~(x))
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Aug 12 22:30:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 22:30:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079225.1440218 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulxWC-0004VG-Oe; Tue, 12 Aug 2025 22:30:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079225.1440218; Tue, 12 Aug 2025 22:30: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 1ulxWC-0004V7-Kd; Tue, 12 Aug 2025 22:30:56 +0000
Received: by outflank-mailman (input) for mailman id 1079225;
 Tue, 12 Aug 2025 22:30:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Th/E=2Y=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1ulxWB-0004TJ-AC
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 22:30:55 +0000
Received: from mail-24417.protonmail.ch (mail-24417.protonmail.ch
 [109.224.244.17]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 004180df-77cc-11f0-a328-13f23c93f187;
 Wed, 13 Aug 2025 00:30:51 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 004180df-77cc-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1755037849; x=1755297049;
	bh=erBCuTXJ+KpM9oo/ZWWMqnMJkUjUreb879bOnDUb9wU=;
	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=Ok5S+wc0JVKKpeGNj2t1l3g0uuSPnHZMeL9svUalPghjB6l+uzLNYrLT2jkehgygT
	 WLv9B8eoOXvaST0XjqBofiRqbdjZu4KwmZcyiNW0dFx8ktW/Z7yBXy2MPdH1yM/rQ4
	 gf9rJj54qxHJgSiZVXlWonhnJgsY4qTGD/OJkrmSwk03L95qDsxjJva+n64viuE3QO
	 t9Jy5RZVOZmBXE7s+TrwjnD8EE1mugIo+HepJ1opBHUiOj6V2YA+F7nnBVbtWFPJhK
	 YlWpUUP52rTGsUL3uWvjs3K7X6GWQhb0FlabhV8igjtJH2dYKJs+sYNESucKgkdQ2K
	 yqX9KPz5ksxSg==
Date: Tue, 12 Aug 2025 22:30:45 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
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 v16 2/4] tools/include: move xc_bitops.h to xen-tools/bitops.h
Message-ID: <20250812223024.2364749-3-dmukhin@ford.com>
In-Reply-To: <20250812223024.2364749-1-dmukhin@ford.com>
References: <20250812223024.2364749-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 460210e60e2ec9f441bd75331994d95f23f96e88
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>=20

Move xc_bitops.h to common tools location to be shared between
the toolstack and unit test code.

Adjust the guard in xen-tools/bitops.h

Correct the #include directives and comments referring to the old
xc_bitops.h in the toolstack code.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v15:
- n/a
---
 .../ctrl/xc_bitops.h =3D> include/xen-tools/bitops.h} |  6 +++---
 tools/libs/ctrl/xc_misc.c                           | 13 +++++++------
 tools/libs/guest/xg_dom_elfloader.c                 |  3 ++-
 tools/libs/guest/xg_dom_hvmloader.c                 |  3 ++-
 tools/libs/guest/xg_private.h                       |  2 +-
 tools/libs/guest/xg_sr_common.h                     |  3 +--
 6 files changed, 16 insertions(+), 14 deletions(-)
 rename tools/{libs/ctrl/xc_bitops.h =3D> include/xen-tools/bitops.h} (95%)

diff --git a/tools/libs/ctrl/xc_bitops.h b/tools/include/xen-tools/bitops.h
similarity index 95%
rename from tools/libs/ctrl/xc_bitops.h
rename to tools/include/xen-tools/bitops.h
index 4a776dc3a57f..681482f6759f 100644
--- a/tools/libs/ctrl/xc_bitops.h
+++ b/tools/include/xen-tools/bitops.h
@@ -1,5 +1,5 @@
-#ifndef XC_BITOPS_H
-#define XC_BITOPS_H 1
+#ifndef __XEN_TOOLS_BITOPS_H__
+#define __XEN_TOOLS_BITOPS_H__
=20
 /* bitmap operations for single threaded access */
=20
@@ -81,4 +81,4 @@ static inline void bitmap_or(void *_dst, const void *_oth=
er,
         dst[i] |=3D other[i];
 }
=20
-#endif  /* XC_BITOPS_H */
+#endif  /* __XEN_TOOLS_BITOPS_H__ */
diff --git a/tools/libs/ctrl/xc_misc.c b/tools/libs/ctrl/xc_misc.c
index 33e87bac2868..10ddf85667a9 100644
--- a/tools/libs/ctrl/xc_misc.c
+++ b/tools/libs/ctrl/xc_misc.c
@@ -17,8 +17,8 @@
  * License along with this library; If not, see <http://www.gnu.org/licens=
es/>.
  */
=20
-#include "xc_bitops.h"
 #include "xc_private.h"
+#include <xen-tools/bitops.h>
 #include <xen/hvm/hvm_op.h>
=20
 int xc_get_max_cpus(xc_interface *xch)
@@ -94,11 +94,12 @@ xc_cpumap_t xc_cpumap_alloc(xc_interface *xch)
 }
=20
 /*
- * xc_bitops.h has macros that do this as well - however they assume that
- * the bitmask is word aligned but xc_cpumap_t is only guaranteed to be
- * byte aligned and so we need byte versions for architectures which do
- * not support misaligned accesses (which is basically everyone
- * but x86, although even on x86 it can be inefficient).
+ * <xen-tools/bitops.h> has macros that do this as well - however they
+ * assume that the bitmask is word aligned but xc_cpumap_t is only
+ * guaranteed to be byte aligned and so we need byte versions for
+ * architectures which do not support misaligned accesses (which is
+ * basically everyone but x86, although even on x86 it can be
+ * inefficient).
  *
  * NOTE: The xc_bitops macros now use byte alignment.
  * TODO: Clean up the users of this interface.
diff --git a/tools/libs/guest/xg_dom_elfloader.c b/tools/libs/guest/xg_dom_=
elfloader.c
index f17930d98bf7..8531e90f8e21 100644
--- a/tools/libs/guest/xg_dom_elfloader.c
+++ b/tools/libs/guest/xg_dom_elfloader.c
@@ -25,8 +25,9 @@
 #include <stdarg.h>
 #include <inttypes.h>
=20
+#include <xen-tools/bitops.h>
+
 #include "xg_private.h"
-#include "xc_bitops.h"
=20
 #define XEN_VER "xen-3.0"
=20
diff --git a/tools/libs/guest/xg_dom_hvmloader.c b/tools/libs/guest/xg_dom_=
hvmloader.c
index 39e1e5f579a7..0f569c20c522 100644
--- a/tools/libs/guest/xg_dom_hvmloader.c
+++ b/tools/libs/guest/xg_dom_hvmloader.c
@@ -24,8 +24,9 @@
 #include <inttypes.h>
 #include <assert.h>
=20
+#include <xen-tools/bitops.h>
+
 #include "xg_private.h"
-#include "xc_bitops.h"
=20
 /* -----------------------------------------------------------------------=
- */
 /* parse elf binary                                                       =
  */
diff --git a/tools/libs/guest/xg_private.h b/tools/libs/guest/xg_private.h
index d73947094f2e..285229cf82a3 100644
--- a/tools/libs/guest/xg_private.h
+++ b/tools/libs/guest/xg_private.h
@@ -28,9 +28,9 @@
 #include <sys/stat.h>
=20
 #include "xc_private.h"
-#include "xc_bitops.h"
 #include "xenguest.h"
=20
+#include <xen-tools/bitops.h>
 #include <xen/memory.h>
 #include <xen/elfnote.h>
 #include <xen/libelf/libelf.h>
diff --git a/tools/libs/guest/xg_sr_common.h b/tools/libs/guest/xg_sr_commo=
n.h
index 2f058ee3a6ff..2e583f2eac72 100644
--- a/tools/libs/guest/xg_sr_common.h
+++ b/tools/libs/guest/xg_sr_common.h
@@ -2,11 +2,10 @@
 #define __COMMON__H
=20
 #include <stdbool.h>
+#include <xen-tools/bitops.h>
=20
 #include "xg_private.h"
 #include "xg_save_restore.h"
-#include "xc_bitops.h"
-
 #include "xg_sr_stream_format.h"
=20
 /* String representation of Domain Header types. */
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Aug 12 22:31:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 22:31:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079228.1440238 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulxWJ-00054i-9y; Tue, 12 Aug 2025 22:31:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079228.1440238; Tue, 12 Aug 2025 22:31: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 1ulxWJ-00054T-5p; Tue, 12 Aug 2025 22:31:03 +0000
Received: by outflank-mailman (input) for mailman id 1079228;
 Tue, 12 Aug 2025 22:31:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Th/E=2Y=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1ulxWI-00040E-CQ
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 22:31:02 +0000
Received: from mail-4322.protonmail.ch (mail-4322.protonmail.ch [185.70.43.22])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0603fb4d-77cc-11f0-b898-0df219b8e170;
 Wed, 13 Aug 2025 00:31:00 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0603fb4d-77cc-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=k7oph3bys5gy3njxrbdir6chzq.protonmail; t=1755037860; x=1755297060;
	bh=rdQXCVFze6KOyWq6nsTsOEIIqpuCBpCeg3Vc7jqqwuk=;
	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=n4UmsL8nvb2m1Qlx7l9qbLyiqN3PiWpF+WLGYF8mRpW0wDpcEG67yUhcAO/SJ9KjQ
	 vBVBE9fsxhEvPbed8s+6qYjCGVM49q93bXoncN0Ki7q6vwO0eAjWwvv5aSliASuGNf
	 uaD9na1XDReGJ3go/NE61LgmMeNWHWgcfhFcFDa3/AgltYXpPWRgKcOpCn7PsNZysR
	 qqQihcOtCf1D98OhlV7aNOQL0FwpAUsqx+kA76eP6XTjjua6ytSvSE14yAdOO2DzKp
	 03yN43VdG/15KusPNCNK5DsSJFpQIYiHspAsi/UDJ0POqkAVps/nnJawdyWGtfdsUt
	 FL+ii1AgiSuoA==
Date: Tue, 12 Aug 2025 22:30:55 +0000
To: xen-devel@lists.xenproject.org
From: dmkhn@proton.me
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, Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Julien Grall <jgrall@amazon.com>
Subject: [PATCH v16 4/4] xen/domain: update create_dom0() messages
Message-ID: <20250812223024.2364749-5-dmukhin@ford.com>
In-Reply-To: <20250812223024.2364749-1-dmukhin@ford.com>
References: <20250812223024.2364749-1-dmukhin@ford.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 988fb461b15465d53a24828d95a121f315ef5de8
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From: Denis Mukhin <dmukhin@ford.com>=20

Use %pd for domain identification in error/panic messages in create_dom0().

No functional change.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
Reviewed-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Julien Grall <jgrall@amazon.com>
---
Changes since v15:
- n/a
---
 xen/arch/arm/domain_build.c | 6 +++---
 xen/arch/x86/setup.c        | 4 ++--
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index aca35b8961d6..670f634b8b0d 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -2084,14 +2084,14 @@ void __init create_dom0(void)
         panic("Error creating domain 0 (rc =3D %ld)\n", PTR_ERR(dom0));
=20
     if ( llc_coloring_enabled && (rc =3D dom0_set_llc_colors(dom0)) )
-        panic("Error initializing LLC coloring for domain 0 (rc =3D %d)\n"=
, rc);
+        panic("Error initializing LLC coloring for %pd (rc =3D %d)\n", dom=
0, rc);
=20
     if ( vcpu_create(dom0, 0) =3D=3D NULL )
-        panic("Error creating domain 0 vcpu0\n");
+        panic("Error creating %pdv0\n", dom0);
=20
     rc =3D construct_dom0(dom0);
     if ( rc )
-        panic("Could not set up DOM0 guest OS (rc =3D %d)\n", rc);
+        panic("Could not set up %pd guest OS (rc =3D %d)\n", dom0, rc);
=20
     set_xs_domain(dom0);
 }
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 398da734c0c5..bf21c55f7193 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1084,7 +1084,7 @@ static struct domain *__init create_dom0(struct boot_=
info *bi)
=20
         if ( (strlen(acpi_param) =3D=3D 0) && acpi_disabled )
         {
-            printk("ACPI is disabled, notifying Domain 0 (acpi=3Doff)\n");
+            printk("ACPI is disabled, notifying %pd (acpi=3Doff)\n", d);
             safe_strcpy(acpi_param, "off");
         }
=20
@@ -1099,7 +1099,7 @@ static struct domain *__init create_dom0(struct boot_=
info *bi)
=20
     bd->d =3D d;
     if ( construct_dom0(bd) !=3D 0 )
-        panic("Could not construct domain 0\n");
+        panic("Could not construct %pd\n", d);
=20
     bd->cmdline =3D NULL;
     xfree(cmdline);
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Aug 12 22:55:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 22:55:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079313.1440247 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulxtP-0000xj-2p; Tue, 12 Aug 2025 22:54:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079313.1440247; Tue, 12 Aug 2025 22:54: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 1ulxtP-0000xc-0D; Tue, 12 Aug 2025 22:54:55 +0000
Received: by outflank-mailman (input) for mailman id 1079313;
 Tue, 12 Aug 2025 22:54:53 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1ulxtN-0000xW-I0
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 22:54:53 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ulxtH-001tjY-1r;
 Tue, 12 Aug 2025 22:54:47 +0000
Received: from [2a02:8012:3a1:0:1512:c47a:b44b:55a5]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1ulxtH-001mqI-1l;
 Tue, 12 Aug 2025 22:54: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=mavMujl29x08xmXdH6YXZUNGkQoCI7nhn/nUwfdEVIQ=; b=6RlcbJ6v8bPx0vJjB557EMkPRj
	FPVV1k2ZcKgF4PG76IBSTZnqXB/0PYYVOh8QMs5Dmiu9HvqU3bTadiXf/cJhNjp5AFnD8Y2zhaIls
	DnCpND1tIu0VS6uY/4jjUYYnm7Qj0/dCdgNmrt9O1c6bB3qVSVbzoEfX/MYjueg3fQnk=;
Message-ID: <24d8591e-f669-4142-a783-c7cfea87034c@xen.org>
Date: Tue, 12 Aug 2025 23:54:45 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] misra: add ASSERT_UNREACHABLE() in default clauses
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>,
 Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: 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>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <7cd71ed21383c189fedb3250ddde54a593f7f98b.1754944131.git.dmytro_prokopchuk1@epam.com>
 <59396fd1-ca82-4655-9dcf-ec36e0d51ffc@xen.org>
 <aba2627f-b38d-4d6c-9c5e-4bdc4f5b563f@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <aba2627f-b38d-4d6c-9c5e-4bdc4f5b563f@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Jan,

On 12/08/2025 08:32, Jan Beulich wrote:
> On 11.08.2025 23:21, Julien Grall wrote:
>> On 11/08/2025 21:30, Dmytro Prokopchuk1 wrote:
>>> --- a/xen/common/grant_table.c
>>> +++ b/xen/common/grant_table.c
>>> @@ -330,9 +330,12 @@ shared_entry_header(struct grant_table *t, grant_ref_t ref)
>>>            /* Returned values should be independent of speculative execution */
>>>            block_speculation();
>>>            return &shared_entry_v2(t, ref).hdr;
>>> +
>>> +    default:
>>> +        ASSERT_UNREACHABLE();
>>> +        break;
>>>        }
>>>    
>>> -    ASSERT_UNREACHABLE();
>>   >       block_speculation();>
>>>        return NULL;
>>
>> I know you are trying to apply the MISRA rule. But this is odd that you
>> move the ASSERT_UNREACHABLE() but then code after is still only
>> reachable from the default. In fact, this is introducing a risk if
>> someone decides to add a new case but then forgot to return a value.
>>
>> By moving the two other lines, the compiler should be able to throw an
>> error if you forgot a return.
> 
> I think we did discuss this pattern in the past. While moving everything up
> to the "return" into the default: handling will please Eclair / Misra, we'll
> then end up with no return statement at the end of a non-void function.
> Beyond being good practice (imo) to have such a "main" return statement,
> that's actually another rule, just one we apparently didn't accept (15.5).

Reading 15.5, this seems to be about having a single return in the 
function. Unless I misunderstood something, this is different from what 
you suggest.

Anyway, my main problem with this change is that ASSERT_UNREACHABLE() is 
moved. I could possibly settle with:

default:
   break;
}

ASSERT_UNREACHABLE();
...

But at least to me, this pattern is more difficult to read because I 
have to look through the switch to understand the patch is only meant ot 
be used by the "default" case.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Tue Aug 12 23:10:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 23:10:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079324.1440261 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uly7z-0002rE-Ae; Tue, 12 Aug 2025 23:09:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079324.1440261; Tue, 12 Aug 2025 23: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 1uly7z-0002r7-7l; Tue, 12 Aug 2025 23:09:59 +0000
Received: by outflank-mailman (input) for mailman id 1079324;
 Tue, 12 Aug 2025 23:09:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=IykP=2Y=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1uly7x-0002qy-BD
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 23:09:57 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org
 [2600:3c0a:e001:78e:0:1991:8:25])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 72b59ffe-77d1-11f0-b898-0df219b8e170;
 Wed, 13 Aug 2025 01:09:51 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id B35B043A4B;
 Tue, 12 Aug 2025 23:09:49 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id B8C74C4CEF0;
 Tue, 12 Aug 2025 23:09:48 +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>
X-Inumbo-ID: 72b59ffe-77d1-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755040189;
	bh=Lg3pJxWy2pokNOYK6XFZFBSQS4PpeZBsgD+GYZusrIM=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Ftx49h4gfEHQ3ag/mODNqSnkcK17bnW0wYCAyzOz3OEnY9uz7+3CwaYqd509Nfv7F
	 30jnXBFG8ffHd+3yEjQjdGm47J24aFy4ESgMUKDMY+OZroudVxEW8jszqc1tvD658e
	 1ZdOrczovRl+yHKRj/Xg3m+Q1Va3bFYMlpI22t+s9bH68HCZjsIFlHhbQ7Ni7cylP9
	 Zi0gdnHm5N1HWHPMkWSb0R8qAkceWaUK6Oay34E9ecDA0y06vk4vd8hRDn4ESRuu2b
	 +hh7pibgIOuLKaDokSxxYv8qMFU50LyQrtDdDudPaZ/HTbj7w1zpaTgGnD/eoWBSyc
	 ggPXJ8SIUMN0A==
Date: Tue, 12 Aug 2025 16:09:47 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
cc: xen-devel@lists.xenproject.org, sstabellini@kernel.org, 
    michal.orzel@amd.com, andrei.cherechesu@nxp.com, dmukhin@ford.com
Subject: Re: [ImageBuilder v2] Add config option to use separate load commands
 for Xen, DOM0 and DOMU binaries
In-Reply-To: <20250812151945.2430295-1-ayan.kumar.halder@amd.com>
Message-ID: <alpine.DEB.2.22.394.2508121609190.2883419@ubuntu-linux-20-04-desktop>
References: <20250812151945.2430295-1-ayan.kumar.halder@amd.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 12 Aug 2025, Ayan Kumar Halder wrote:
> Introduce the following options :-
> 1. XEN_LOAD - This specifies command to load xen hypervisor binary and device
> tree.
> 2. DOM0_LOAD - This specifies command to load Dom0 binaries.
> 3. DOMU_LOAD[] - This specifies command to load DomU binaries.
> 
> There can be situations where Xen, Dom0 and DomU binaries are stored in
> different partitions. Thus, imagebuilder should provide a way the binaries
> using different commands.
> 
> If any of the above options are not specified, LOAD_CMD is used by default.
> 
> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>


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

with a small caveat: the exits should be exit 1 because they are due to
errors. I made the change on commit.


> ---
> This patch should be applied first.
> 
> Changes from :-
> 
> v1 - 1. Make LOAD_CMD optional when XEN is set
> 2. find_root_dev() should be invoked with either "$DOM0_CMD" or "$LOAD_CMD"
> depending on if it is invoked from xen_config() or linux_config().
> 3. User needs to set either LOAD_CMD or XEN_LOAD. If neither is set, throw
> an error. This is true for DOM0_LOAD and DOMU_LOAD[].
> 
>  README.md                | 18 +++++++++-
>  scripts/uboot-script-gen | 76 ++++++++++++++++++++++++++++------------
>  2 files changed, 71 insertions(+), 23 deletions(-)
> 
> diff --git a/README.md b/README.md
> index b7be268..59919df 100644
> --- a/README.md
> +++ b/README.md
> @@ -33,10 +33,12 @@ BOOT_CMD="booti"
>  
>  DEVICE_TREE="mpsoc.dtb"
>  XEN="xen"
> +XEN_LOAD="ext4load mmc 0:1"
>  XEN_CMD="console=dtuart dtuart=serial0 dom0_mem=1G dom0_max_vcpus=1 bootscrub=0 vwfi=native sched=null"
>  PASSTHROUGH_DTS_REPO="git@github.com:Xilinx/xen-passthrough-device-trees.git device-trees-2021.2/zcu102"
>  DOM0_KERNEL="Image-dom0"
>  DOM0_CMD="console=hvc0 earlycon=xen earlyprintk=xen clk_ignore_unused"
> +DOM0_LOAD="ext4load mmc 2:1"
>  DOM0_RAMDISK="dom0-ramdisk.cpio"
>  DOM0_MEM=1024
>  DOM0_VCPUS=1
> @@ -46,11 +48,13 @@ DT_OVERLAY[0]="host_dt_overlay.dtbo"
>  
>  NUM_DOMUS=2
>  DOMU_KERNEL[0]="zynqmp-dom1/Image-domU"
> +DOMU_LOAD[0]="ext4load mmc 4:1"
>  DOMU_PASSTHROUGH_PATHS[0]="/axi/ethernet@ff0e0000 /axi/serial@ff000000"
>  DOMU_CMD[0]="console=ttyPS0 earlycon console=ttyPS0,115200 clk_ignore_unused rdinit=/sbin/init root=/dev/ram0 init=/bin/sh"
>  DOMU_RAMDISK[0]="zynqmp-dom1/domU-ramdisk.cpio"
>  DOMU_COLORS[0]="6-14"
>  DOMU_KERNEL[1]="zynqmp-dom2/Image-domU"
> +DOMU_LOAD[1]="ext4load mmc 5:1"
>  DOMU_CMD[1]="console=ttyAMA0 clk_ignore_unused rdinit=/sbin/init root=/dev/ram0 init=/bin/sh"
>  DOMU_RAMDISK[1]="zynqmp-dom2/domU-ramdisk.cpio"
>  DOMU_MEM[1]=512
> @@ -77,7 +81,9 @@ Where:
>  - LOAD_CMD specifies the u-boot command used to load the binaries. This
>    can be left out of the config and be (over)written by the -t CLI
>    argument. It has to be set either in the config file or CLI argument
> -  though.
> +  though. This is optional when XEN is set as user can provide specific
> +  options (ie XEN_LOAD, DOM0_LOAD, DOMU_LOAD) to load Xen, Dom0 and DomU
> +  binaries.
>  
>  - BOOT_CMD specifies the u-boot command used to boot the binaries.
>    By default, it is 'booti'. The acceptable values are 'booti', 'bootm',
> @@ -99,6 +105,9 @@ Where:
>  - XEN_CMD specifies the command line arguments used for Xen.  If not
>    set, the default one will be used.
>  
> +- XEN_LOAD specifies the command to load XEN and DEVICE_TREE. If not set,
> +  LOAD_CMD will be used.
> +
>  - XEN_STATIC_HEAP="baseaddr1 size1 ... baseaddrN sizeN"
>    if specified, indicates the host physical address regions
>    [baseaddr, baseaddr + size) to be reserved as Xen static heap.
> @@ -109,6 +118,9 @@ Where:
>    uboot-script-gen will compile the partial device trees which have
>    been specified in DOMU_PASSTHROUGH_PATHS[number].
>  
> +- DOM0_LOAD specifies the command to load DOM0_KERNEL and DOM0_RAMDISK. If not
> +  set, LOAD_CMD will be used.
> +
>  - DOM0_KERNEL specifies the Dom0 kernel file to load.
>    For dom0less configurations, the parameter is optional.
>  
> @@ -159,6 +171,10 @@ Where:
>    kernel. If not set and DOMU_VPL011[number] is not set to 0, then
>    "console=ttyAMA0" is used.
>  
> +- DOMU_LOAD[number] specifies the command to load DOMU_KERNEL[number],
> +  DOMU_RAMDISK[number] and DOMU_PASSTHROUGH_DTB[number]. If not set, then
> +  LOAD_CMD is used.
> +
>  - DOMU_RAMDISK[number] specifies the DomU ramdisk to use.
>  
>  - DOMU_PASSTHROUGH_PATHS[number] specifies the passthrough devices (
> diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
> index b81e614..656de72 100755
> --- a/scripts/uboot-script-gen
> +++ b/scripts/uboot-script-gen
> @@ -737,6 +737,7 @@ function load_file()
>  {
>      local filename=$1
>      local fit_scr_name=$2
> +    local load_cmd=$3
>  
>      local absolute_path="$(realpath --no-symlinks $filename)"
>      local base="$(realpath $PWD)"/
> @@ -748,10 +749,10 @@ function load_file()
>          add_size_from_file $filename
>      else
>          if test "$CALC"; then
> -            echo "$LOAD_CMD \${memaddr} ${prepend_path:+$prepend_path/}$relative_path" >> $UBOOT_SOURCE
> +            echo "$load_cmd \${memaddr} ${prepend_path:+$prepend_path/}$relative_path" >> $UBOOT_SOURCE
>              add_size_calculate $fit_scr_name
>          else
> -            echo "$LOAD_CMD $memaddr ${prepend_path:+$prepend_path/}$relative_path" >> $UBOOT_SOURCE
> +            echo "$load_cmd $memaddr ${prepend_path:+$prepend_path/}$relative_path" >> $UBOOT_SOURCE
>              add_size_from_file $filename
>          fi
>      fi
> @@ -830,10 +831,10 @@ function check_compressed_file_type()
>  
>  function find_root_dev()
>  {
> -
> -    local dev=${LOAD_CMD%:*}
> +    local load_cmd="$1"
> +    local dev=${load_cmd%:*}
>      dev=${dev##* }
> -    local par=${LOAD_CMD#*:}
> +    local par=${load_cmd#*:}
>  
>      if [ -z "$dev" ] || [ -z "$par" ]
>      then
> @@ -844,10 +845,10 @@ function find_root_dev()
>  
>      par=$((par + 1))
>  
> -    if [[ $LOAD_CMD =~ mmc ]]
> +    if [[ $load_cmd =~ mmc ]]
>      then
>          root_dev="/dev/mmcblk${dev}p${par}"
> -    elif [[ $LOAD_CMD =~ scsi ]]
> +    elif [[ $load_cmd =~ scsi ]]
>      then
>          # converts number to a scsi device character
>          dev=$((dev + 97))
> @@ -925,7 +926,7 @@ function xen_config()
>          then
>              DOM0_CMD="$DOM0_CMD root=/dev/ram0"
>          else
> -            find_root_dev
> +            find_root_dev "$DOM0_LOAD"
>              # $root_dev is set by find_root_dev
>              DOM0_CMD="$DOM0_CMD root=$root_dev"
>          fi
> @@ -973,7 +974,7 @@ function linux_config()
>          then
>              LINUX_CMD="$LINUX_CMD root=/dev/ram0"
>          else
> -            find_root_dev
> +            find_root_dev "$LOAD_CMD"
>              # $root_dev is set by find_root_dev
>              LINUX_CMD="$LINUX_CMD root=$root_dev"
>          fi
> @@ -1003,11 +1004,22 @@ generate_uboot_images()
>  
>  xen_file_loading()
>  {
> +    if test -z "$DOM0_LOAD"
> +    then
> +        if test "$LOAD_CMD"
> +        then
> +            DOM0_LOAD="$LOAD_CMD"
> +        else
> +            echo "Neither DOM0_LOAD nor LOAD_CMD is specified"
> +            exit
> +        fi
> +    fi
> +
>      if test "$DOM0_KERNEL"
>      then
>          check_compressed_file_type $DOM0_KERNEL "executable\|uImage"
>          dom0_kernel_addr=$memaddr
> -        load_file $DOM0_KERNEL "dom0_linux"
> +        load_file $DOM0_KERNEL "dom0_linux" "$DOM0_LOAD"
>          dom0_kernel_size=$filesize
>      fi
>      if test "$DOM0_RAMDISK"
> @@ -1015,7 +1027,7 @@ xen_file_loading()
>          check_compressed_file_type $DOM0_RAMDISK "cpio archive"
>          ramdisk_addr=$memaddr
>          ramdisk_path=$DOM0_RAMDISK
> -        load_file "$DOM0_RAMDISK" "dom0_ramdisk"
> +        load_file "$DOM0_RAMDISK" "dom0_ramdisk" "$DOM0_LOAD"
>          ramdisk_size=$filesize
>      else
>          ramdisk_addr="-"
> @@ -1024,6 +1036,16 @@ xen_file_loading()
>      i=0
>      while test $i -lt $NUM_DOMUS
>      do
> +        if test -z "${DOMU_LOAD[$i]}"
> +        then
> +            if test "$LOAD_CMD"
> +            then
> +                DOMU_LOAD[$i]="$LOAD_CMD"
> +            else
> +                echo "Neither DOMU_LOAD[] nor LOAD_CMD is specified"
> +                exit
> +            fi
> +        fi
>          if test "${DOMU_ROOTFS[$i]}" || test "${DOMU_NOBOOT[$i]}"
>          then
>              if test -z "${DOMU_NOBOOT[$i]}"
> @@ -1042,20 +1064,20 @@ xen_file_loading()
>  
>          check_compressed_file_type ${DOMU_KERNEL[$i]} "executable\|uImage"
>          domU_kernel_addr[$i]=$memaddr
> -        load_file ${DOMU_KERNEL[$i]} "domU${i}_kernel"
> +        load_file ${DOMU_KERNEL[$i]} "domU${i}_kernel" "${DOMU_LOAD[$i]}"
>          domU_kernel_size[$i]=$filesize
>          if test "${DOMU_RAMDISK[$i]}"
>          then
>              check_compressed_file_type ${DOMU_RAMDISK[$i]} "cpio archive"
>              domU_ramdisk_addr[$i]=$memaddr
> -            load_file ${DOMU_RAMDISK[$i]} "domU${i}_ramdisk"
> +            load_file ${DOMU_RAMDISK[$i]} "domU${i}_ramdisk" "${DOMU_LOAD[$i]}"
>              domU_ramdisk_size[$i]=$filesize
>          fi
>          if test "${DOMU_PASSTHROUGH_DTB[$i]}"
>          then
>              check_compressed_file_type ${DOMU_PASSTHROUGH_DTB[$i]} "Device Tree Blob"
>              domU_passthrough_dtb_addr[$i]=$memaddr
> -            load_file ${DOMU_PASSTHROUGH_DTB[$i]} "domU${i}_fdt"
> +            load_file ${DOMU_PASSTHROUGH_DTB[$i]} "domU${i}_fdt" "${DOMU_LOAD[$i]}"
>              domU_passthrough_dtb_size[$i]=$filesize
>          fi
>          i=$(( $i + 1 ))
> @@ -1070,9 +1092,20 @@ xen_file_loading()
>          generate_uboot_images
>      fi
>  
> +    if test -z "$XEN_LOAD"
> +    then
> +        if test "$LOAD_CMD"
> +        then
> +            XEN_LOAD="$LOAD_CMD"
> +        else
> +            echo "Neither XEN_LOAD nor LOAD_CMD is specified"
> +            exit
> +        fi
> +    fi
> +
>      kernel_addr=$memaddr
>      kernel_path=$XEN
> -    load_file "$XEN" "host_kernel"
> +    load_file "$XEN" "host_kernel" "$XEN_LOAD"
>  
>      xen_policy_addr="-"
>      if test -n "$XEN_POLICY"
> @@ -1518,12 +1551,6 @@ then
>      FIT="${UBOOT_SOURCE%.source}.fit"
>  fi
>  
> -if test ! "$LOAD_CMD"
> -then
> -    echo "LOAD_CMD not set, either specify it in the config or set it with the -t option"
> -    exit 1
> -fi
> -
>  if test ! "$BOOT_CMD"
>  then
>      BOOT_CMD="booti"
> @@ -1543,6 +1570,11 @@ then
>  elif test "$LINUX"
>  then
>      os="linux"
> +    if test ! "$LOAD_CMD"
> +    then
> +        echo "LOAD_CMD not set, either specify it in the config or set it with the -t option"
> +        exit 1
> +    fi
>      linux_config
>  else
>      echo "Neither a Xen or Linux kernel is specified, exiting"
> @@ -1691,7 +1723,7 @@ fi
>  
>  check_file_type $DEVICE_TREE "Device Tree Blob"
>  device_tree_addr=$memaddr
> -load_file $DEVICE_TREE "host_fdt"
> +load_file $DEVICE_TREE "host_fdt" "$XEN_LOAD"
>  bitstream_load_and_config  # bitstream is loaded last but used first
>  device_tree_editing $device_tree_addr
>  
> -- 
> 2.25.1
> 


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 23:10:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 23:10:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079325.1440271 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uly87-000436-Mk; Tue, 12 Aug 2025 23:10:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079325.1440271; Tue, 12 Aug 2025 23:10: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 1uly87-00042z-KB; Tue, 12 Aug 2025 23:10:07 +0000
Received: by outflank-mailman (input) for mailman id 1079325;
 Tue, 12 Aug 2025 23:10:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=IykP=2Y=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1uly86-0003wl-RN
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 23:10:06 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7b1d49c7-77d1-11f0-a328-13f23c93f187;
 Wed, 13 Aug 2025 01:10:05 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id A0A305C649A;
 Tue, 12 Aug 2025 23:10:03 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5EC02C4CEF0;
 Tue, 12 Aug 2025 23:10:02 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7b1d49c7-77d1-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755040203;
	bh=9gtm1OV3n75KUH5b2aknLcFzG6FJiNXndbX7+7KGhuk=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=LTT/D3stN4IzAIHFsNY/8p7xo0+4oWD6QiZSaFBGtMCuE+basmnoVg2dGZG6s4MNw
	 iDKWstVdtvUIC18TqYQbhjbGQwS7jRqTJzs8LW0fJY3RnZzCHpa0H26gcs01imSGF1
	 q1aS2W3YaNqJrFaDmcdBJje5Aq1b4uNiofUj/7lEJjeB2V1oqHCxaDjIjebkkWjXQI
	 5bt1ZXTXVEZZxHV1z031+/vXhhyHW5U+TgXJxoQ0yJta+s0/EerxcZlwQD80QaVVVJ
	 tuB2K9k9NsUSZI305n8mZwyXLw8iRmKj+3gqqa3Xl6AJc+qQ1/o0pH84igmsk0LKc/
	 6NDvftGvw9K/g==
Date: Tue, 12 Aug 2025 16:10:00 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
cc: xen-devel@lists.xenproject.org, sstabellini@kernel.org, 
    michal.orzel@amd.com, andrei.cherechesu@nxp.com, dmukhin@ford.com
Subject: Re: [ImageBuilder v2] Make DEVICE_TREE optional parameter
In-Reply-To: <20250812173350.2612682-1-ayan.kumar.halder@amd.com>
Message-ID: <alpine.DEB.2.22.394.2508121609520.2883419@ubuntu-linux-20-04-desktop>
References: <20250812173350.2612682-1-ayan.kumar.halder@amd.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-1638558391-1755040203=:2883419"

  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-1638558391-1755040203=:2883419
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Tue, 12 Aug 2025, Ayan Kumar Halder wrote:
> There are systems where device tree binary is passed by the U-Boot as
> $fdtcontroladdr. In such cases, no external device tree binary is provided
> during uboot script generation.
> 
> This is an enhancement on top of the following commit:-
> uboot-script-gen: Dynamically compute addr and size when loading binaâ€¦
> 
> When DEVICE_TREE is not present, user should provide '-s' as the addresses and
> sizes should be computed dynamically from U-Boot.
> 
> Also, fixed uboot-script-gen to set host_kernel_addr when BOOT_CMD="none" and
> '-s' is not used.
> 
> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>

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


> ---
> This patch should be applied after the previous patch.
> "[ImageBuilder v2] Add config option to use separate load commands for..."
> 
> Changes from :-
> 
> v1 :- 1. Check that user provides '-s' when DEVICE_TREE is not set, instead of
> setting CALC silently.
> 
> 2. Set 'host_fdt_addr' to '\${fdtcontroladdr}' when DEVICE_TREE is not set.
> 
> 3. Add a fix for BOOT_CMD="none".
>  
>  README.md                |  5 ++++-
>  scripts/uboot-script-gen | 29 +++++++++++++++++++++++------
>  2 files changed, 27 insertions(+), 7 deletions(-)
> 
> diff --git a/README.md b/README.md
> index 59919df..fc448e0 100644
> --- a/README.md
> +++ b/README.md
> @@ -92,7 +92,10 @@ Where:
>    DTB are stored in 'host_kernel_addr' and 'host_fdt_addr' u-boot
>    env variables respectively, to be used manually when booting.
>  
> -- DEVICE_TREE specifies the DTB file to load.
> +- DEVICE_TREE specifies the DTB file to load. If not set, then $fdtcontroladdr
> +  is used as the address of the DTB loaded by u-boot. If user does not set this
> +  option, then '-s' should be provided to ensure that addresses and sizes are
> +  calculated dynamically by uboot.
>  
>  - XEN specifies the Xen hypervisor binary to load. Note that it has to
>    be a regular Xen binary, not a u-boot binary.
> diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
> index 656de72..be61fc4 100755
> --- a/scripts/uboot-script-gen
> +++ b/scripts/uboot-script-gen
> @@ -591,7 +591,7 @@ function device_tree_editing()
>  
>  function fill_reserved_spaces_from_dtb()
>  {
> -    if [ ! -f $DEVICE_TREE ]
> +    if test ! -f $DEVICE_TREE || test -z "$DEVICE_TREE"
>      then
>          if test "$CALC"; then
>              return
> @@ -1674,6 +1674,16 @@ fi
>  
>  rm -f $UBOOT_SOURCE $UBOOT_SCRIPT
>  
> +if test -z "$DEVICE_TREE"
> +then
> +    if test -z "$CALC"
> +    then
> +       echo "DEVICE_TREE is unset and -s is not specified"
> +       exit 1
> +    fi
> +    echo "setenv host_fdt_addr \${fdtcontroladdr}" >> $UBOOT_SOURCE
> +fi
> +
>  if test "$FIT"
>  then
>      echo 'fit_addr=$fileaddr' >>  $UBOOT_SOURCE
> @@ -1721,9 +1731,13 @@ then
>      done
>  fi
>  
> -check_file_type $DEVICE_TREE "Device Tree Blob"
> -device_tree_addr=$memaddr
> -load_file $DEVICE_TREE "host_fdt" "$XEN_LOAD"
> +if test "$DEVICE_TREE"
> +then
> +    check_file_type $DEVICE_TREE "Device Tree Blob"
> +    device_tree_addr=$memaddr
> +    load_file $DEVICE_TREE "host_fdt" "$XEN_LOAD"
> +fi
> +
>  bitstream_load_and_config  # bitstream is loaded last but used first
>  device_tree_editing $device_tree_addr
>  
> @@ -1751,8 +1765,11 @@ then
>      fi
>  else
>      # skip boot command but store load addresses to be used later
> -    echo "setenv host_kernel_addr $kernel_addr" >> $UBOOT_SOURCE
> -    echo "setenv host_fdt_addr $device_tree_addr" >> $UBOOT_SOURCE
> +    if test -z "$CALC"
> +    then
> +        echo "setenv host_kernel_addr $kernel_addr" >> $UBOOT_SOURCE
> +        echo "setenv host_fdt_addr $device_tree_addr" >> $UBOOT_SOURCE
> +    fi
>  fi
>  
>  if test "$FIT"
> -- 
> 2.25.1
> 
--8323329-1638558391-1755040203=:2883419--


From xen-devel-bounces@lists.xenproject.org Tue Aug 12 23:55:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 12 Aug 2025 23:55:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079363.1440281 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ulyq7-0001eb-2j; Tue, 12 Aug 2025 23:55:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079363.1440281; Tue, 12 Aug 2025 23:55: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 1ulyq6-0001eT-Ug; Tue, 12 Aug 2025 23:55:34 +0000
Received: by outflank-mailman (input) for mailman id 1079363;
 Tue, 12 Aug 2025 23:55:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=S+QV=2Y=gmail.com=arraybolt3@srs-se1.protection.inumbo.net>)
 id 1ulyq5-0001eL-ND
 for xen-devel@lists.xenproject.org; Tue, 12 Aug 2025 23:55:33 +0000
Received: from mail-il1-x135.google.com (mail-il1-x135.google.com
 [2607:f8b0:4864:20::135])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d19b433c-77d7-11f0-b898-0df219b8e170;
 Wed, 13 Aug 2025 01:55:27 +0200 (CEST)
Received: by mail-il1-x135.google.com with SMTP id
 e9e14a558f8ab-3e53cc0c840so1643685ab.1
 for <xen-devel@lists.xenproject.org>; Tue, 12 Aug 2025 16:55:27 -0700 (PDT)
Received: from kf-m2g5 ([2607:fb91:1183:972:c716:b21c:e9a1:44a4])
 by smtp.gmail.com with ESMTPSA id
 8926c6da1cb9f-50ae9bcf596sm3523959173.60.2025.08.12.16.55.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 12 Aug 2025 16:55: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>
X-Inumbo-ID: d19b433c-77d7-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1755042926; x=1755647726; darn=lists.xenproject.org;
        h=mime-version:references:in-reply-to:message-id:subject:cc:to:from
         :date:from:to:cc:subject:date:message-id:reply-to;
        bh=YXURDCpMiOO+jor7T/WeBisWPvciEyiRAMek2W20Uw8=;
        b=Br+XettoxSKWGJNrZAWQ3HNC/9jy03EB3a7I9GeLdb+Z8ScBZGjKkHnmsVHDtbTFNc
         A/Qb6wfhstsJQSiX1QEfjTp81qyJph11TDe9oCqPPxmCFD0BqNpmDH6HlbDHp8hK5tVt
         vypJJGbN6QBeQchJGC/ikUnXmiF6oX7wkvQRoipAwepTtCW2kxFnuZHvlJIQwAUITBhC
         WuqjAmprDtzZgMLCoMg2QjfbqSCG1ymyVyXmjv6u1Hwp+xUGxHoCwj+fIPSk3PmE1kov
         FcWiLH8eKk2jIDiIYOfee0KXkOc33OMkbperD899PI8Ja9Ec5VcV1yE7tanr78S7GkW+
         6wFQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755042926; x=1755647726;
        h=mime-version:references:in-reply-to:message-id:subject:cc:to:from
         :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=YXURDCpMiOO+jor7T/WeBisWPvciEyiRAMek2W20Uw8=;
        b=KTjOunQUJjkoff7eKLSrKmiBYI12jEpER1qT+WSml6LdGLSgJWBsP/Mrvrza6PvItF
         lZxB9rrhZXGv96mLSSq/RnCsxVzvcmBZHzjxSPwnb+QbVbdvx6Ad2z0q7JjjfdlvtQa5
         /sbdhPH7qh+i+Un4v/39P64wMaag3uCHK/yAWjQbNvvgVkmVhZmcMq/tk0xq14mSBpvx
         68X5LdZjS4LKBU1M0rYF5fU4HRT6GepP+rb/7fzHzdZwn3iOIgqDlZkFfKUMk/DHNXh8
         XwHCG9GLTD/oExscQ5Q+hdNlNNLDz7y/hPBOjPEcqmnKF1kgbH/H1kUpZDMXI2P8vlaj
         T3vw==
X-Forwarded-Encrypted: i=1; AJvYcCV06+dhIP3FPybVOjNxITAiV1Ph4ZSGFKxQpo2gxvm80GbL+pNK9qhdZm0lyNPT01DjrETP3JHXTqU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxf+Fl6rqXlv/F3zUpQhOBc7bY+0otb+O2e7RnaXOLvWzXgFuWt
	3zebp+eBODy6JrN6HeWlEBzwRI/G1taNU2dESbSTQt+CqRUB939GfwhX
X-Gm-Gg: ASbGnctvc6JOH8U0GJTCRyFa2yYGxmMlmHWh/ujjSyqhun4XV8nu+HmRUZpRO3RJWpK
	ULM+cnBPzipqvzzwnCG0D33agGBGjlUM2WCQxCnSLisQILOtuHteoQszwACPT3Ek8AuZXP/Njgb
	AmhKK01kkiKnNTKlOu5fXn1OZmoEIQUDniBPNN2oSAEXsHJIhgp1N+63draVCaQ32kdEgOPvxIJ
	zaIKdD80s4nPpkEMgDcc05HFFmBwNjwn2zZ07mxMv0+a2eDdRUG0TrPfKHgfHHW3ogFYD65knvl
	DSMiXjLVnpEaZnuw4OXC2uzMId1Y9j7h3uBpEEbLWttbJ41dvjo2tcJfFE8D/bdbQRpDR4YIzDm
	ado858LOpO7DsrAO7pU3wXH4j+TvkAg==
X-Google-Smtp-Source: AGHT+IFTY7zloIvcrQ/Kthe+snTYunJfEuq7LJtQLmEy/vTgkn9X3Qq3t7rfcdzhTjrQrs0z+pSCfQ==
X-Received: by 2002:a05:6e02:3a04:b0:3dd:ce1c:f1bc with SMTP id e9e14a558f8ab-3e5674d6cefmr5492885ab.7.1755042925408;
        Tue, 12 Aug 2025 16:55:25 -0700 (PDT)
Date: Tue, 12 Aug 2025 18:55:15 -0500
From: Aaron Rainbolt <arraybolt3@gmail.com>
To: Daniel Kiper <dkiper@net-space.pl>
Cc: grub-devel@gnu.org, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 2/2] kern/xen: Add Xen command line parsing
Message-ID: <20250812185515.436a33da@kf-m2g5>
In-Reply-To: <20250812170211.q7ezlveygfsdkz34@tomti.i.net-space.pl>
References: <20250804234816.3d14f53f@kf-m2g5>
	<20250804234911.3cc3997c@kf-m2g5>
	<20250804235009.30e39bd9@kf-m2g5>
	<20250812170211.q7ezlveygfsdkz34@tomti.i.net-space.pl>
X-Mailer: Claws Mail 4.3.1 (GTK 3.24.41; x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="Sig_/O1TCkgKcxfVydyGr9aCjczS";
 protocol="application/pgp-signature"; micalg=pgp-sha512

--Sig_/O1TCkgKcxfVydyGr9aCjczS
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

On Tue, 12 Aug 2025 19:02:11 +0200
Daniel Kiper <dkiper@net-space.pl> wrote:

> On Mon, Aug 04, 2025 at 11:50:09PM -0500, Aaron Rainbolt wrote:
> > Xen traditionally allows customizing guest behavior by passing
> > arguments to the VM kernel via the kernel command line. This is no
> > longer possible when using GRUB with Xen, as the kernel command
> > line is decided by the GRUB configuration file within the guest,
> > not data passed to the guest by Xen.
> >
> > To work around this limitation, enable GRUB to parse a command line
> > passed to it by Xen, and expose data from the command line to the
> > GRUB configuration as environment variables. These variables can be
> > used in the GRUB configuration for any desired purpose, such as
> > extending the kernel command line passed to the guest. The command
> > line format is inspired by the Linux kernel's command line format.
> >
> > To reduce the risk of misuse, abuse, or accidents in production, the
> > command line will only be parsed if it consists entirely of 7-bit
> > ASCII characters, only alphabetical characters and underscores are
> > permitted in variable names, and all variable names must start with
> > the string "xen_grub_env_". This also allows room for expanding the
> > command line arguments accepted by GRUB in the future, should other
> > arguments end up becoming desirable in the future.
> >
> > Signed-off-by: Aaron Rainbolt <arraybolt3@gmail.com>
> > ---
> >  docs/grub.texi                |  51 +++++
> >  grub-core/Makefile.core.def   |   2 +
> >  grub-core/kern/i386/xen/pvh.c |  23 +++
> >  grub-core/kern/xen/cmdline.c  | 376
> > ++++++++++++++++++++++++++++++++++ grub-core/kern/xen/init.c     |
> >  2 + include/grub/xen.h            |   2 +
> >  6 files changed, 456 insertions(+)
> >  create mode 100644 grub-core/kern/xen/cmdline.c
> >
> > diff --git a/docs/grub.texi b/docs/grub.texi
> > index 34b3484..b58cf98 100644
> > --- a/docs/grub.texi
> > +++ b/docs/grub.texi
> > @@ -3271,6 +3271,7 @@ GRUB.  Others may be used freely in GRUB
> > configuration files. @menu
> >  * Special environment variables::
> >  * Environment block::
> > +* Passing environment variables through Xen::
> >  @end menu
> >
> >
> > @@ -3871,6 +3872,56 @@ using BIOS or EFI functions (no ATA, USB or
> > IEEE1275). @command{grub-mkconfig} uses this facility to implement
> >  @samp{GRUB_SAVEDEFAULT} (@pxref{Simple configuration}).
> >
> > +@node Passing environment variables through Xen
> > +@section Passing environment variables through Xen
> > +
> > +If you are using a GRUB image as the kernel for a PV or PVH Xen
> > virtual +machine, you can pass environment variables from Xen's
> > dom0 to the VM through +the Xen-provided kernel command line. When
> > combined with a properly configured +guest, this can be used to
> > customize the guest's behavior on bootup via the +VM's Xen
> > configuration file. +
> > +GRUB will parse the kernel command line passed to it by Xen during
> > bootup. +The command line will be split into space-delimited words.
> > Single and +double quotes may be used to quote words or portions of
> > words that contain +spaces. Single quotes will be considered part
> > of a word if inside double +quotes, and vice versa. Arbitrary
> > characters may be backslash-escaped to make +them a literal
> > component of a word rather than being parsed as quotes or word
> > +separators. The command line must consist entirely of printable
> > 7-bit ASCII +characters and spaces. If a non-printing ASCII
> > character is found anywhere in +the command line, the entire
> > command line will be ignored by GRUB. + +Each word should be a
> > variable assignment in the format ``variable'' or
> > +``variable=3Dvalue''. Variable names must contain only the
> > characters A-Z, a-z, +and underscore (``_''). Variable names must
> > begin with the string +``xen_grub_env_''. Variable values can
> > contain arbitrary printable 7-bit +ASCII characters and space. If
> > any variable contains an illegal name, that +variable will be
> > ignored. + +If a variable name and value are both specified, the
> > variable will be set to +the specified value. If only a variable
> > name is specified, the variable's +value will be set to ``1''.
> > +
> > +The following is a simple example of how to use this functionality
> > to append +arbitrary variables to a guest's kernel command line:
> > +
> > +@example
> > +# In the Xen configuration file for the guest
> > +name =3D "linux_vm"
> > +type =3D "pvh"
> > +kernel =3D "/path/to/grub-i386-xen_pvh.bin"
> > +extra =3D "xen_grub_env_linux_append=3D'loglevel=3D3'"
> > +memory =3D 1024
> > +disk =3D [ "file:/srv/vms/linux_vm.img,sda,w" ]
> > +
> > +# In the guest's GRUB configuration file
> > +menuentry "Linux VM with dom0-specified kernel parameters" @{
> > +    search --set=3Droot --label linux_vm --hint hd0,msdos1
> > +    linux /boot/vmlinuz root=3DLABEL=3Dlinux_vm
> > $@{xen_grub_env_linux_append@}
> > +    initrd /boot/initrd.img
> > +@}
> > +@end example
> > +
> >  @node Modules
> >  @chapter Modules
> >
> > diff --git a/grub-core/Makefile.core.def
> > b/grub-core/Makefile.core.def index b3f7119..df0f266 100644
> > --- a/grub-core/Makefile.core.def
> > +++ b/grub-core/Makefile.core.def
> > @@ -248,6 +248,7 @@ kernel =3D {
> >    xen =3D term/xen/console.c;
> >    xen =3D disk/xen/xendisk.c;
> >    xen =3D commands/boot.c;
> > +  xen =3D kern/xen/cmdline.c;
> >
> >    i386_xen_pvh =3D commands/boot.c;
> >    i386_xen_pvh =3D disk/xen/xendisk.c;
> > @@ -255,6 +256,7 @@ kernel =3D {
> >    i386_xen_pvh =3D kern/i386/xen/tsc.c;
> >    i386_xen_pvh =3D kern/i386/xen/pvh.c;
> >    i386_xen_pvh =3D kern/xen/init.c;
> > +  i386_xen_pvh =3D kern/xen/cmdline.c;
> >    i386_xen_pvh =3D term/xen/console.c;
> >
> >    ia64_efi =3D kern/ia64/efi/startup.S;
> > diff --git a/grub-core/kern/i386/xen/pvh.c
> > b/grub-core/kern/i386/xen/pvh.c index 91fbca8..a8988d2 100644
> > --- a/grub-core/kern/i386/xen/pvh.c
> > +++ b/grub-core/kern/i386/xen/pvh.c
> > @@ -321,6 +321,8 @@ void
> >  grub_xen_setup_pvh (void)
> >  {
> >    grub_addr_t par;
> > +  const char *xen_cmdline;
> > +  int i;
> >
> >    grub_xen_cpuid_base ();
> >    grub_xen_setup_hypercall_page ();
> > @@ -352,6 +354,27 @@ grub_xen_setup_pvh (void)
> >    grub_xen_mm_init_regions ();
> >
> >    grub_rsdp_addr =3D pvh_start_info->rsdp_paddr;
> > +
> > +  xen_cmdline =3D (const char *) pvh_start_info->cmdline_paddr;
> > +  for (i =3D 0; i < GRUB_XEN_MAX_GUEST_CMDLINE; i++)
> > +    {
> > +      if (xen_cmdline[i] =3D=3D '\0') =20
>=20
> This code still does not make a lot of sense for me. You have NUL
> check in grub_parse_xen_cmdline(). So, you duplicate the check here...
>=20
> I would just fire grub_strncpy() here and forget...

I guess it depends on how you view grub_xen_start_page_addr->cmd_line's
semantics. In my mind, cmd_line is a NUL-terminated string, always. If
you boot in PV mode, Xen ensures it's a NUL-terminated string, so it's
reasonable for code in GRUB to assume it will be one. If you boot in
PVH mode, it starts out initialized to all zeros which is technically a
NUL-terminated string, and the code that exists here ensures that if we
copy the kernel command line to cmd_line, it will still be a
NUL-terminated string. If we use a "bare" grub_strncpy() here, then if
someone passes a kernel command line larger than
GRUB_XEN_MAX_GUEST_CMDLINE - 1, cmd_line will end up not being
NUL-terminated anymore, and any code added to GRUB in the future that
assumes it is a NUL-terminated string may buffer overflow.

One could argue "let's keep the NUL check here and remove it from
grub_parse_xen_cmdline()", but that doesn't work either because we only
get to control the contents of cmd_line if we boot in PVH mode. If
instead we boot in PV mode, cmd_line is initialized by Xen itself. GRUB
receives a pre-populated and ready-to-use start_info struct directly
from the hypervisor in this scenario. Xen is supposed to ensure that
start_info is always NUL-terminated, but if there's ever a bug in Xen
that breaks that assumption, that could result in bad things happening,
the same as if we didn't do the NUL check in grub_xen_setup_pvh(). Now
of course there's nothing we can do about Xen possibly being buggy (if
it gives us a GRUB_XEN_MAX_GUEST_CMDLINE-long buffer with no NUL
terminator, too bad), but we can at least make sure that we're ready
for that eventuality. That's why I like having both NUL checks - we're
ready for if Xen does things wrong, and any future code that isn't
ready for that eventuality will still work if things go wrong, at least
in PVH mode.

(Arguably any new code that depends on cmd_line *should* check it for a
NUL terminator. But I don't want to assume that all new code *will* do
so.)

> > +        {
> > +          grub_strncpy ((char *)
> > grub_xen_start_page_addr->cmd_line,
> > +			(char *) pvh_start_info->cmdline_paddr,
> > +			GRUB_XEN_MAX_GUEST_CMDLINE);
> > +
> > +          if
> > (grub_xen_start_page_addr->cmd_line[GRUB_XEN_MAX_GUEST_CMDLINE - 1]
> > !=3D '\0') =20
>=20
> If you convince me this code is still needed then I am afraid that
> this is not what you meant here...

grub_strncpy doesn't just NUL-terminate the command line, it also fills
the entire remainder of the buffer with NUL characters. Therefore if
grub_strncpy NUL-terminated the copied string, the last character of
the buffer will always be NUL. This is a redundant check since the code
above goes to great lengths to avoid ever putting anything
non-NUL-terminated into the buffer, but I was under the impression you
wanted the check added just in case. I'm happy to remove it if it's not
desirable.

> > +            {
> > +              grub_error (GRUB_ERR_BUG,
> > +			  "Xen command line is not
> > NUL-terminated");
> > +              grub_print_error ();
> > +              grub_exit (); =20
>=20
> grub_fatal() and you are done...

Will change.

> > +            }
> > +
> > +          break;
> > +        }
> > +    }
> >  }
> >
> >  grub_err_t
> > diff --git a/grub-core/kern/xen/cmdline.c
> > b/grub-core/kern/xen/cmdline.c new file mode 100644
> > index 0000000..46a9998
> > --- /dev/null
> > +++ b/grub-core/kern/xen/cmdline.c
> > @@ -0,0 +1,376 @@
> > +/*
> > + *  GRUB  --  GRand Unified Bootloader
> > + *  Copyright (C) 2025  Free Software Foundation, Inc.
> > + *
> > + *  GRUB 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 3 of the License,
> > or
> > + *  (at your option) any later version.
> > + *
> > + *  GRUB 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 GRUB.  If not, see <http://www.gnu.org/licenses/>.
> > + */
> > +
> > +#include <grub/env.h>
> > +#include <grub/misc.h>
> > +#include <grub/mm.h>
> > +#include <grub/xen.h>
> > +
> > +enum splitter_state
> > +{
> > +  SPLITTER_HIT_BACKSLASH =3D 0x1,
> > +  SPLITTER_IN_SINGLE_QUOTES =3D 0x2,
> > +  SPLITTER_IN_DOUBLE_QUOTES =3D 0x4,
> > +};
> > +typedef enum splitter_state splitter_state_t;
> > +
> > +/*
> > + * The initial size of the current_word buffer. The buffer may be
> > resized as
> > + * needed.
> > + */
> > +#define PARSER_BASE_WORD_SIZE 32
> > +
> > +struct parser_state
> > +{
> > +  grub_size_t word_list_len; =20
>=20
> s/word_list_len/words_count/
>=20
> And I would put it behind word_list...

Will change.

> > +  char **word_list; =20
>=20
> s/word_list/words/

Will change.

> > +  grub_size_t current_word_len;
> > +  grub_size_t current_word_pos;
> > +  char *current_word;
> > +};
> > +typedef struct parser_state parser_state_t;
> > +
> > +static bool =20
>=20
> s/bool/grub_err_t/

Will change.

> > +append_char_to_word (parser_state_t *s, char c, bool allow_null)
> > +{
> > +  /*
> > +   * We ban any chars that are not in the ASCII printable range. If
> > +   * allow_null =3D=3D true, we make an exception for NUL. (This is
> > needed so that
> > +   * append_word_to_list can add a NUL terminator to the word).
> > +   */
> > +  if (grub_isprint (c) =3D=3D false && allow_null =3D=3D false) =20
>=20
> grub_isprint() et consortes return int instead of bool. So, it should
> be "!grub_isprint(c)" here...

Argh, right, because I can't assume that false =3D=3D 0 and true =3D=3D
non-zero. Will fix.

> > +    return false;
> > +  else if (allow_null =3D=3D true && c !=3D '\0')
> > +    return false;
> > +
> > +  if (s->current_word_pos =3D=3D s->current_word_len)
> > +    {
> > +      s->current_word =3D grub_realloc (s->current_word,
> > s->current_word_len *=3D 2);
> > +      if (s->current_word =3D=3D NULL)
> > +        {
> > +          s->current_word_len /=3D 2;
> > +          return false;
> > +        }
> > +    }
> > +
> > +  s->current_word[s->current_word_pos++] =3D c;
> > +  return true;
> > +}
> > +
> > +static bool =20
>=20
> s/bool/grub_err_t/

Will change.

> > +append_word_to_list (parser_state_t *s)
> > +{
> > +  /* No-op on empty words. */
> > +  if (s->current_word_pos =3D=3D 0)
> > +    return true;
> > +
> > +  if (append_char_to_word (s, '\0', true) =3D=3D false)
> > +    {
> > +      grub_error (GRUB_ERR_BUG,
> > +		  "couldn't append NUL terminator to word during
> > Xen cmdline parsing");
> > +      grub_print_error ();
> > +      grub_exit (); =20
>=20
> grub_fatal()

Will change.

> > +    }
> > +
> > +  s->current_word_len =3D grub_strlen (s->current_word) + 1;
> > +  s->current_word =3D grub_realloc (s->current_word,
> > s->current_word_len);
> > +  if (s->current_word =3D=3D NULL)
> > +    return false; =20
>=20
> return grub_errno;

Will change.

> > +  s->word_list =3D grub_realloc (s->word_list, ++s->word_list_len *
> > sizeof (char *));
> > +  if (s->word_list =3D=3D NULL)
> > +    return false; =20
>=20
> return grub_errno;
>=20
> ...
>=20
> I think many (related) functions in this code returning bool should
> really return grub_err_t...

That makes sense to me, will change where appropriate.

> > +  s->word_list[s->word_list_len - 1] =3D s->current_word;
> > +
> > +  s->current_word_len =3D PARSER_BASE_WORD_SIZE;
> > +  s->current_word_pos =3D 0;
> > +  s->current_word =3D grub_malloc (s->current_word_len);
> > +  if (s->current_word =3D=3D NULL)
> > +    return false;
> > +
> > +  return true;
> > +}
> > +
> > +static bool =20
>=20
> But this bool makes sense...

OK.

> > +is_key_safe (char *key, grub_size_t len)
> > +{
> > +  grub_size_t i;
> > +
> > +  for (i =3D 0; i < len; i++)
> > +    {
> > +      if (! (grub_isalpha (key[i]) || key[i] =3D=3D '_')) =20
>=20
> Please drop space after "!"...

Will change.

> > +        return false;
> > +    } =20
>=20
> You can drop curly braces from here...

Will change.

(I initially kept this written the way it was though because the GNU
coding standards seemed to indicate I should keep the braces. "When
you have an if-else statement nested in another if statement, always
put braces around the if-else." [1] This isn't a nested if, but it's an
if within a for which is very similar.)

Is there any recommended coding style documentation I should be looking
at other than the GNU coding standards and the GRUB coding style
guidelines? It seems I'm making an awful lot of style mistakes and
would like to avoid that going forward.

> > +
> > +  return true;
> > +}
> > +
> > +void
> > +grub_parse_xen_cmdline (void)
> > +{
> > +  parser_state_t *s =3D NULL; =20
>=20
> parser_state_t ps =3D {0};
>=20
> ... and you do not need grub_malloc(s) and stuff any longer below...
>=20
> And I would put it next to splitter_state...

Will change.

> > +  const char *cmdline =3D (const char *)
> > grub_xen_start_page_addr->cmd_line;
> > +  grub_size_t cmdline_len;
> > +  bool cmdline_valid =3D false;
> > +  char **param_keys =3D NULL;
> > +  char **param_vals =3D NULL;
> > +  grub_size_t param_dict_len =3D 0;
> > +  grub_size_t param_dict_pos =3D 0;
> > +  splitter_state_t splitter_state =3D 0; =20
>=20
> You nicely define an enum and then assign plain number. Sigh...
> I think you should define SPLITTER_NORMAL or something similar
> as well...
>
> And s/splitter_state/ss/...

Will implement both changes.

> > +  char current_char =3D '\0';
> > +  grub_size_t i =3D 0;
> > +
> > +  s =3D grub_malloc (sizeof (parser_state_t));
> > +  if (s =3D=3D NULL)
> > +    goto cleanup_final;
> > +
> > +  /*
> > +   * The following algorithm is used to parse the Xen command line:
> > +   *
> > +   * - The command line is split into space-separated words.
> > +   *   - Single and double quotes may be used to suppress the
> > splitting
> > +   *     behavior of spaces.
> > +   *   - Double quotes are appended to the current word verbatim
> > if they
> > +   *     appear within a single-quoted string portion, and vice
> > versa.
> > +   *   - Backslashes may be used to cause the next character to be
> > +   *     appended to the current word verbatim. This is only
> > useful when
> > +   *     used to escape quotes, spaces, and backslashes, but for
> > simplicity
> > +   *     we allow backslash-escaping anything.
> > +   * - After splitting the command line into words, each word is
> > checked to
> > +   *   see if it contains an equals sign.
> > +   *   - If it does, it is split on the equals sign into a
> > key-value pair. The
> > +   *     key is then treated as an variable name, and the value is
> > treated as
> > +   *     the variable's value.
> > +   *   - If it does not, the entire word is treated as a variable
> > name. The
> > +   *     variable's value is implicitly considered to be `1`.
> > +   * - All variables detected on the command line are checked to
> > see if their
> > +   *   names begin with the string `xen_grub_env_`. Variables that
> > do not pass
> > +   *   this check are discarded, variables that do pass this check
> > are
> > +   *   exported so they are available to the GRUB configuration.
> > +   */
> > +
> > +  s->current_word_len =3D PARSER_BASE_WORD_SIZE;
> > +  s->current_word =3D grub_malloc (s->current_word_len);
> > +  if (s->current_word =3D=3D NULL)
> > +    goto cleanup_main;
> > +
> > +  for (i =3D 0; i < GRUB_XEN_MAX_GUEST_CMDLINE; i++)
> > +    {
> > +      if (cmdline[i] =3D=3D '\0')
> > +        {
> > +          cmdline_valid =3D true;
> > +          break;
> > +        }
> > +    }
> > +
> > +  if (cmdline_valid =3D=3D false)
> > +    {
> > +      grub_error (GRUB_ERR_BAD_ARGUMENT,
> > +		  "command line from Xen is not NUL-terminated");
> > +      grub_print_error (); =20
>=20
> grub_fatal()?

That would probably be a bad idea here. We use (or, at least, will use)
grub_fatal() in grub_xen_setup_pvh() because if grub_strncpy() doesn't
NUL-terminate the string it copies, it indicates a bug in GRUB (either
in grub_strncpy, or more likely in the nearby NUL-checking code). On
the other hand, cmdline_valid may equal false if we boot in PV mode and
Xen incorrectly hands us a non-NUL-terminated string. That's bad and
prevents us from parsing the command line safely, but I'd argue it
shouldn't entirely block boot. (Then again, maybe if it does block
boot, that will make this kind of theoretical Xen bug be much more
noticeable and help it get fixed quicker. If you'd prefer that we bail
out entirely here, I'm happy to change it.)

> > +      goto cleanup_main;
> > +    }
> > +
> > +  cmdline_len =3D grub_strlen (cmdline);
> > +  for (i =3D 0; i < cmdline_len; i++)
> > +    {
> > +      current_char =3D cmdline[i];
> > +
> > +      /*
> > +       * If the previous character was a backslash, append the
> > current
> > +       * character to the word verbatim
> > +       */
> > +      if (splitter_state & SPLITTER_HIT_BACKSLASH)
> > +        {
> > +          splitter_state &=3D ~SPLITTER_HIT_BACKSLASH;
> > +          if (append_char_to_word (s, current_char, false) =3D=3D
> > false)
> > +            goto cleanup_main;
> > +          continue;
> > +        }
> > +
> > +      switch (current_char)
> > +        {
> > +        case '\\':
> > +          /* Backslashes escape arbitrary characters. */
> > +          splitter_state |=3D SPLITTER_HIT_BACKSLASH;
> > +          continue;
> > +
> > +        case '\'':
> > +          /*
> > +           * Single quotes suppress word splitting and double
> > quoting until
> > +           * the next single quote is encountered.
> > +           */
> > +          if (splitter_state & SPLITTER_IN_DOUBLE_QUOTES)
> > +            {
> > +              if (append_char_to_word (s, current_char, false) =3D=3D
> > false)
> > +                goto cleanup_main;
> > +              continue;
> > +            }
> > +
> > +          splitter_state ^=3D SPLITTER_IN_SINGLE_QUOTES;
> > +          continue;
> > +
> > +        case '"':
> > +          /*
> > +           * Double quotes suppress word splitting and single
> > quoting until
> > +           * the next double quote is encountered.
> > +           */
> > +          if (splitter_state & SPLITTER_IN_SINGLE_QUOTES)
> > +            {
> > +              if (append_char_to_word (s, current_char, false) =3D=3D
> > false)
> > +                goto cleanup_main;
> > +              continue;
> > +            }
> > +
> > +          splitter_state ^=3D SPLITTER_IN_DOUBLE_QUOTES;
> > +          continue;
> > +
> > +        case ' ':
> > +          /* Spaces separate words in the command line from each
> > other. */
> > +          if (splitter_state & SPLITTER_IN_SINGLE_QUOTES ||
> > +              splitter_state & SPLITTER_IN_DOUBLE_QUOTES)
> > +            {
> > +              if (append_char_to_word (s, current_char, false) =3D=3D
> > false)
> > +                goto cleanup_main;
> > +              continue;
> > +            }
> > +
> > +          if (append_word_to_list (s) =3D=3D false)
> > +            goto cleanup_main; =20
>=20
> I think this is not fully correct. You should not run
> append_word_to_list() until the closing quote. So, here you should
> have "else" for the first "if", i.e., "if (splitter_state & ..." and
> call append_word_to_list() for closing \" and \' above.

What closing quote? If we're in quotes, the `if (splitter_state &...`
block will run. That block runs `continue`, restarting the loop before
we get to the `append_word_to_list (s)` call. If we hit a closing
quote, either the `case '\''` or the `case '"'` block will be
triggered, changing the splitter's state so that it knows it's no
longer within a quote block, and then the next space (or the end of the
string) will cause `append_word_to_list()` to be called, adding the
quoted word to the list. Even if this `continue` changes to a `break`
like suggested below, the logic and control flow will remain the same.

Calling `append_word_to_list()` for closing quotes would break the
splitter. I'm trying to implement splitting behavior similar to Bash or
GRUB's configuration language, both of which parse
`xen_grub_env_var=3D"abc def"ghi` into the variable `xen_grub_env_var`
with the value `abc defghi`. If we split on closing quotes too, the
input above will be parsed into two words, `xen_grub_env_var=3Dabc def`
and an extra word `ghi`, resulting in the environment variable
`xen_grub_env_var` being set to `abc def` and the `ghi` being lost
entirely. One could argue that this is reasonable behavior, but it
isn't consistent with the other splitting behavior in GRUB.

> > +          continue;
> > +        }
> > +
> > +      if (append_char_to_word (s, current_char, false) =3D=3D false)
> > +        goto cleanup_main; =20
>=20
> This should be part of "default:" for the switch above... Even if it
> works now...
>=20
> Then many "continue" should be converted to more natural "break"...

Good point, will change.

> > +    }
> > +
> > +  if (append_word_to_list (s) =3D=3D false)
> > +    goto cleanup_main;
> > +
> > +  param_keys =3D grub_malloc (s->word_list_len * sizeof (char *));
> > +  if (param_keys =3D=3D NULL)
> > +    goto cleanup_main;
> > +  param_vals =3D grub_malloc (s->word_list_len * sizeof (char *));
> > +  if (param_vals =3D=3D NULL)
> > +    goto cleanup_main;
> > +
> > +  for (i =3D 0; i < s->word_list_len; i++)
> > +    {
> > +      char *current_word_eq_ptr; =20
>=20
> s/current_word_eq_ptr/eq_pos/

Will change.

> > +      s->current_word =3D s->word_list[i];
> > +      s->current_word_len =3D grub_strlen (s->current_word) + 1;
> > +      current_word_eq_ptr =3D grub_strchr (s->current_word, '=3D');
> > +
> > +      if (current_word_eq_ptr !=3D NULL)
> > +        {
> > +          /*
> > +           * Both pre_eq_len and post_eq_len represent substring
> > lengths
> > +           * without a NUL terminator.
> > +           */
> > +          grub_size_t pre_eq_len =3D (grub_size_t)
> > (current_word_eq_ptr - s->current_word);
> > +          /*
> > +           * s->current_word_len includes the NUL terminator, so
> > we subtract
> > +           * one to get rid of the terminator, and one more to get
> > rid of the
> > +           * equals sign.
> > +           */
> > +          grub_size_t post_eq_len =3D (s->current_word_len - 2) -
> > pre_eq_len; +
> > +          if (is_key_safe (s->current_word, pre_eq_len) =3D=3D true)
> > +            {
> > +              param_dict_pos =3D param_dict_len++;
> > +              param_keys[param_dict_pos] =3D grub_malloc (pre_eq_len
> > + 1);
> > +              if (param_keys =3D=3D NULL)
> > +                goto cleanup_main;
> > +              param_vals[param_dict_pos] =3D grub_malloc
> > (post_eq_len + 1);
> > +              if (param_vals =3D=3D NULL)
> > +                goto cleanup_main;
> > +
> > +              grub_strncpy (param_keys[param_dict_pos],
> > s->current_word, pre_eq_len);
> > +              grub_strncpy (param_vals[param_dict_pos],
> > +			    s->current_word + pre_eq_len + 1,
> > post_eq_len);
> > +              param_keys[param_dict_pos][pre_eq_len] =3D '\0';
> > +              param_vals[param_dict_pos][post_eq_len] =3D '\0';
> > +            }
> > +        }
> > +      else =20
>=20
> else if (is_key_safe (s->current_word, s->current_word_len - 1) =3D=3D
> true)
>=20
> ... and you can drop an extra indention...

Will change.

> > +        {
> > +          if (is_key_safe (s->current_word, s->current_word_len -
> > 1) =3D=3D true)
> > +            {
> > +              param_dict_pos =3D param_dict_len++;
> > +              param_keys[param_dict_pos] =3D grub_malloc
> > (s->current_word_len);
> > +              if (param_keys =3D=3D NULL)
> > +                goto cleanup_main;
> > +              param_vals[param_dict_pos] =3D grub_malloc (2);
> > +              if (param_vals =3D=3D NULL)
> > +                goto cleanup_main;
> > +
> > +              grub_strncpy (param_keys[param_dict_pos],
> > s->current_word,
> > +			    s->current_word_len);
> > +              if (param_keys[param_dict_pos][s->current_word_len -
> > 1] !=3D '\0' )
> > +                {
> > +                  grub_error (GRUB_ERR_BUG,
> > +			      "NUL terminator missing from key
> > during Xen cmdline parsing");
> > +                  grub_print_error ();
> > +                  grub_exit (); =20
>=20
> grub_fatal()

Will change.

> > +                }
> > +              grub_strcpy (param_vals[param_dict_pos], "1");
> > +            }
> > +        }
> > +    } =20
>=20
> Daniel


--Sig_/O1TCkgKcxfVydyGr9aCjczS
Content-Type: application/pgp-signature
Content-Description: OpenPGP digital signature

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

iQIzBAEBCgAdFiEEudh48PFXwyPDa0wGpwkWDXPHkQkFAmib1GMACgkQpwkWDXPH
kQm29g//S7vy2qb4XH01+ToWOK32ryRz1AKBbNtS3e3s5ONZ9XaGApCv1MrN1Z8h
xW2VBZmWqzcKa9aHnR6rWdUtmVFU07dY4EtnOjXMr6ndO4qKidmJkqKTDLGII3t3
vFv9nP+aJD6o9GPlnWgiPCs/CwoTj76ERGRE2x2R3+YfB/gvCXOgcmZgKQBHWcuU
c0zOpPifGTXXeqAtGLVzMxsnIURspSPJAqCakQjYu6pANL7+u2xjM3winUnCdo8O
HtxGD+D9fEAf8yWBVAxaeqjGupKScaBcz1KGUCLZ4XSCXuQnYEYF3kjPAFqB0usX
IoGxq+r+LbXOpOr+8Hw/w3n+boEejr9CDUxwNEMW/JdukmP6cdjJ2cmOjsdGRNNQ
HKe138GDTRVBZMlAytSZNQrBJdIPSc8eKlrl9vYKCl5FZRwiLtcpM9swz6dBe+JO
cH0pOBB0qxZZjjyruC3PcXlVxJ+bY7vrsCMq+is18Ll0ODbknIXFrAlIM3mvgB9C
amwqLneFn2080Sh9H+0jPKfwxRz/ZR5+7fq8v4R9uwZGa/x8oYenM8rPpB7pFHwh
80TWpKgU/6HFpmrmZTziDaNZPhwGA6tpRHR4BWTX59XM/YNF6Lx+BI8CMDwRfqny
py3wkRUDryQ4wwDHNgn69x6JCEzWY1SmhJtaUSVWykmx4OeIQgk=
=YLr2
-----END PGP SIGNATURE-----

--Sig_/O1TCkgKcxfVydyGr9aCjczS--


From xen-devel-bounces@lists.xenproject.org Wed Aug 13 02:54:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 02:54:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079410.1440291 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1um1co-0006Zd-2H; Wed, 13 Aug 2025 02:54:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079410.1440291; Wed, 13 Aug 2025 02:54:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1um1cn-0006ZW-U9; Wed, 13 Aug 2025 02:54:01 +0000
Received: by outflank-mailman (input) for mailman id 1079410;
 Wed, 13 Aug 2025 02:54:01 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=r6QG=2Z=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1um1cn-0006ZN-3R
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 02:54:01 +0000
Received: from fhigh-a2-smtp.messagingengine.com
 (fhigh-a2-smtp.messagingengine.com [103.168.172.153])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c20949b1-77f0-11f0-a328-13f23c93f187;
 Wed, 13 Aug 2025 04:53:59 +0200 (CEST)
Received: from phl-compute-08.internal (phl-compute-08.internal [10.202.2.48])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 78A77140006B;
 Tue, 12 Aug 2025 22:53:57 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-08.internal (MEProxy); Tue, 12 Aug 2025 22:53:57 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 12 Aug 2025 22:53: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>
X-Inumbo-ID: c20949b1-77f0-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=cc:cc:content-transfer-encoding
	:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm3; t=1755053637; x=1755140037; bh=QBnbVTFL3n
	fUzNOXdzrtImD+g3549vWUp6DMYthA7x0=; b=a0APMlKZhNhr5H7+fE9yyq64GZ
	k+ArKOct7ZYosKlUHpzx4YRek93izmKoQcuhsUqyLfbDQN18VpsgKopAta3TXco6
	2o+hZlkgigSjuJhDA8Ju0r4kjcWGMdYQwR9gQPbgWtihBMldRS4TjxArkj3NTgqj
	EptddwKlegP1o50PtebN0ZCGFSmjPiwq06e175ukCpvlPU1kEQd4yk7PiOzmlvqp
	aD3iVTG3E2Bm/GWjtYnhtbs1OaCDkuhyg0Cq5PiPSpBfK9x85yxld6mJHRZ7jAPH
	wVVGE7BXlZ8xMQBot9Vp8TG1dGTn1CSIDfq7yEi5yXejKwRgY5Z8spcw15aA==
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=1755053637; x=
	1755140037; bh=QBnbVTFL3nfUzNOXdzrtImD+g3549vWUp6DMYthA7x0=; b=M
	eRVv9Wv0Xy4WWzV8UZN+dXn0krAwZ/Iqh/THEzXMsKbnNB7nnlws+LmXwGMejU3T
	lXf8Jvs/FtAcZuT41PwhsU8/vcqwt3EMs0CxPfhj+xRlFUJvtVvt3C4yeqGyPOg8
	yWd+zN5rveGGr+3QEEfwLY4C/94yLqaD65IRid7fxT33+WE8azbL3sU388CasGX5
	QvCOs/QikLEumyB1qHar+5uqtpXF1C9g7Uc9bM7wUulb3gn7owoRrYY7e1ydp7G3
	6aZr/7bFShIlzEvB2cVe8OTDi5aSDzMjQFH1Gye573umhJ04UjycWPzMm6rmKpX0
	ARKP+L4VfEPXxWtq0NdEA==
X-ME-Sender: <xms:Rf6baKLhpKmjx9BViRx8G7IJdyMk-HC-0DdvVPQXUE20T3DX7be2OA>
    <xme:Rf6baFamwQ8L0A2Mh7Iq91Ed67kMDzBiApBKyNFs_cQ4yiKeKWYJ8cpS64bi2avU5
    M8BucSxhNNrIA>
X-ME-Received: <xmr:Rf6baEKa94SUi9dxwYhavn0xfSoLONNZ2YStyro6coVvFNXil57unra4shvl_WvElp9pFSanoB0>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgddufeejtdeiucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevufgfjghfkfggtgfgsehtqhhmtddtreejnecuhfhrohhmpeforghrvghk
    ucforghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvh
    hishhisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpeehfedv
    hedvudffffekgfduveeliefgvdetfeefueevtdffgffghefgtefgieehgeenucffohhmrg
    hinhepghhithhhuhgsrdgtohhmnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghm
    pehmrghilhhfrhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslh
    grsgdrtghomhdpnhgspghrtghpthhtohepfedpmhhouggvpehsmhhtphhouhhtpdhrtghp
    thhtoheprghnughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphhtth
    hopehjsggvuhhlihgthhesshhushgvrdgtohhmpdhrtghpthhtohepgigvnhdquggvvhgv
    lheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhg
X-ME-Proxy: <xmx:Rf6baLB1Pe2daM1CB4odcHhooDwV6NpWGYQxhU42kxhRRI8C0vETxA>
    <xmx:Rf6baBq9uGMLwyVyq83HplI5M3T5aTKKLa90cr3vuBBzxOtez0s08w>
    <xmx:Rf6baOjpWL0s-ehtCsUTyVnicgR-FR53U-7Q9q5rP1X9eVLvwBT2Pw>
    <xmx:Rf6baGDIELaZ3fR5RHo9CmkSGc2DyuYGtXCZw-OfS6irKrerFlXIjg>
    <xmx:Rf6baCjKBNoA8H_kAgUqoRF3w2yyKhJNrkli5Ot-h2MXKZZhVobTUvED>
Feedback-ID: i1568416f:Fastmail
Date: Wed, 13 Aug 2025 04:53:53 +0200
From: =?ISO-8859-1?Q?Marek_Marczykowski-G=F3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>
CC: xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: S3 regression related to XSA-471 patches
User-Agent: K-9 Mail for Android
In-Reply-To: <4fb544d7-fede-46b8-950e-f9c4af1cb04f@citrix.com>
References: <aJMtPLNqQFbGg5cs@mail-itl> <f971f8a8-487e-4b9f-8c75-80ebfe70c3b6@suse.com> <aJMyjYfeTL5uPRtk@mail-itl> <aJTilUXpchmRq2Ng@mail-itl> <4fb544d7-fede-46b8-950e-f9c4af1cb04f@citrix.com>
Message-ID: <B667172D-84FA-488D-98F9-0D7D34402EF7@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable



On August 11, 2025 3:16:46 PM GMT+02:00, Andrew Cooper <andrew=2Ecooper3@c=
itrix=2Ecom> wrote:
>On 07/08/2025 6:29 pm, Marek Marczykowski-G=C3=B3recki wrote:
>> On Wed, Aug 06, 2025 at 12:46:36PM +0200, Marek Marczykowski-G=C3=B3rec=
ki wrote:
>>> On Wed, Aug 06, 2025 at 12:36:56PM +0200, Jan Beulich wrote:
>>>> On 06=2E08=2E2025 12:23, Marek Marczykowski-G=C3=B3recki wrote:
>>>>> We've got several reports that S3 reliability recently regressed=2E =
We
>>>>> identified it's definitely related to XSA-471 patches, and bisection
>>>>> points at "x86/idle: Remove broken MWAIT implementation"=2E I don't =
have
>>>>> reliable reproduction steps, so I'm not 100% sure if it's really thi=
s
>>>>> patch, or maybe an earlier one - but it's definitely already broken =
at
>>>>> this point in the series=2E Most reports are about Xen 4=2E17 (as th=
at's
>>>>> what stable Qubes OS version currently use), but I think I've seen
>>>>> somebody reporting the issue on 4=2E19 too (but I don't have clear
>>>>> evidence, especially if it's the same issue)=2E
>>>> At the time we've been discussing the explicit raising of TIMER_SOFTI=
RQ
>>>> in mwait_idle_with_hints() a lot=2E If it was now truly missing, that=
 imo
>>>> shouldn't cause problems only after resume, but then it may have cove=
red
>>>> for some omission during resume=2E As a far-fetched experiment, could=
 you
>>>> try putting that back (including the calculation of the "expires" loc=
al
>>>> variable)?
>>> Sure, I'll try=2E
>> It appears this fixes the issue, at least in ~10 attempts so far
>> (usually I could reproduce the issue after 2-3 attempts)=2E
>>
>
>Can you show the exact code which seems to have made this stable?

This patch: https://github=2Ecom/marmarek/qubes-vmm-xen/blob/7c9e9e312948c=
772d9a68090109964121c1d16fe/0001-DEBUG-S3=2Epatch

>
>We discussed this in the x86 maintainers meeting, and our best guess is
>a timer that's not torn down or recreated properly on S3, but this is
>largely speculation=2E
>
>~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Aug 13 06:58:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 06:58:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079471.1440300 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1um5Ql-0002UC-NW; Wed, 13 Aug 2025 06:57:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079471.1440300; Wed, 13 Aug 2025 06:57: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 1um5Ql-0002U5-KZ; Wed, 13 Aug 2025 06:57:51 +0000
Received: by outflank-mailman (input) for mailman id 1079471;
 Wed, 13 Aug 2025 06:57:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=R1N0=2Z=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1um5Qj-0002Tz-GA
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 06:57:49 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on2062c.outbound.protection.outlook.com
 [2a01:111:f403:2009::62c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cefa1772-7812-11f0-b898-0df219b8e170;
 Wed, 13 Aug 2025 08:57:43 +0200 (CEST)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 SJ0PR12MB5610.namprd12.prod.outlook.com (2603:10b6:a03:423::9) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9031.16; Wed, 13 Aug 2025 06:57:37 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d%7]) with mapi id 15.20.9031.012; Wed, 13 Aug 2025
 06: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>
X-Inumbo-ID: cefa1772-7812-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ICQGebgDJvOjG5ysFt1OlbD8X2kX0EitGMF7+ZghfCBStymfqnN04hO/SDh/gol44d6KWLf3jWtX9bSlWmlc+tdOEmc004MkxW1mHrUgq1ueZl56His1doCXRqVScDWktDmeSaNAdX+xeVs8MI9o9lUaxMvKxSKZ7OVqswwVxeuHEU+39f/RLBpipOOSpww/cFjXQmhHUPxoww9nUAVHds0txyRHrBuU4huhp6awFZY2OLD4nJ9/zAE3iXNV5GVyvdwJam+yPGqBQJW/t92KZapUjkuajtHBGwcmt0jnqI1Hiwgp/+TuBMhtTOnwOeNA7e/qYGfDo/Kzs/V7RkfUmA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8kDTXgM8GZivn5Y9y/bNB7Cufnd+AjJNEpY88AC5abU=;
 b=Rt/bXjSL8cUFFs9lO8w7XJDiJBs6gZZITotfD0MVmlB3jrioaZXwQSwiwuu5xoqE/b1mPPKcSVKlx2tmpBEZchYbfIRF2MpL6uficgotnfalXlKJ5WNO7P4AUG0ga+qH3JoAjvDFgC0JHbwAyjRtLqzob64iGJOogrldKKqLhAKb4sBeBWgWo4an8BNHK+f2PVBGVQf/B9dGjyhJf82bUjO1CQp5xlQmqf2GPh+fcqRooKABCzXGEu28LNXQozQiRFpgxKlBXZ2yImwPVYBDeb3mFgoDFOCPGH9wm7+m6nfcNYXIaa72m8kBLHWAGbiHYPpWIRgc8jL4uz0nxDHnPg==
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=8kDTXgM8GZivn5Y9y/bNB7Cufnd+AjJNEpY88AC5abU=;
 b=MiPktRc4wD1rLdmwZh9bjCatfoGMO/7LbzJ4+/6k4gA5o3BaYVWu7evoC9FvPjuJpRXrTjnQ23SSEzD3cmXbDkLVyHHdbwhJq3K+o6PyKka5TyBWSdI9FA9zbc2sA6Er8z4eCy2dL28p/MG1ERCuObh5+Oc23uOftSTHq+gTjQg=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, Anthony PERARD
	<anthony.perard@vates.tech>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v6 18/19] xen/cpufreq: bypass governor-related para for
 amd-cppc-epp
Thread-Topic: [PATCH v6 18/19] xen/cpufreq: bypass governor-related para for
 amd-cppc-epp
Thread-Index: AQHb8hct870Jb7Op80yNICw04pKwJbRBZNiAgB7l0+A=
Date: Wed, 13 Aug 2025 06:57:37 +0000
Message-ID:
 <DM4PR12MB8451F0DC452A789CBA374537E12AA@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20250711035106.2540522-1-Penny.Zheng@amd.com>
 <20250711035106.2540522-19-Penny.Zheng@amd.com>
 <e28d711a-d83d-44a1-9d2e-8b5e694fbaf1@suse.com>
In-Reply-To: <e28d711a-d83d-44a1-9d2e-8b5e694fbaf1@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-08-13T06:57:25.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|SJ0PR12MB5610:EE_
x-ms-office365-filtering-correlation-id: 730d982b-edfb-40b9-3824-08ddda36b024
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?Smt1SDBRVTVkc0xjZjUrRzNNdXFRZ2N4UHUwQ1ZMc1ptUTdONWliZCtRejh4?=
 =?utf-8?B?V090S0xLNTE2RkJKQnNTN2VNR0pqNWtiNWR0am9tbjYrV2pSaXM1M0RPOHky?=
 =?utf-8?B?OVNkTGh6RTRXTlltNUwvdEpuOXRwQ3JlNlEzWlRoVytqbG1yTmhOWWhTRjY5?=
 =?utf-8?B?dnRaOWtlNm1vbkliTmZ6aUNWUjhKdi9YM1E5dmw4N0szWUxHWUtIVk1EdTVZ?=
 =?utf-8?B?Qlo0SXhRZnJ4cjdURjR4TlRRbDdMQVRiLzVrK0xwT3BIWE5PMnRlOGtzUUVa?=
 =?utf-8?B?QXV0TlZ0VHpXK2JhVzB6S1gwREJGdzRkaFdsRGZLZnIzQ1JuZGRzd0gyRHRC?=
 =?utf-8?B?eG5BU0t4VFY4R096NW5TbXVyeDFTV1lONHFwdkZvbzJHMWkxckU5QUZEOE1o?=
 =?utf-8?B?OHk2eldvcDlkQkIxeXVmbFZQL0tjZjJYZVg5NUNkQ0hZQnFHVThDdkxjazJY?=
 =?utf-8?B?SHE4NmtnN2NGMWJKWklWRGF2Q1dFbmNQTWZQZEJmV1hpRWNRRkh3ajYrakV1?=
 =?utf-8?B?MDh0cnNuOTh3S2d6SnFaMlQ5bEpvK0N3UkhQMGd1MWtPbFlvSlpZYlpHQVBZ?=
 =?utf-8?B?ZGNibWM4RWhSeDRtS0NBaGkzOWdPTW93RzVlbFQzRG5YRmR6R01JYnUzcTBl?=
 =?utf-8?B?YnJvM2xiK1I5eThnYTNCUTJKajVWS0UyelpzaGZRci83VWo2SjI4MVJSbVVJ?=
 =?utf-8?B?YVhNcGtPdFFTYjEwNVR4aUlicEduUXpqTzF0cjJZajloRlNyYmZQSldkZ0lr?=
 =?utf-8?B?MFhRQUpneHBBWnJDUUlwREN5WWxNQXRwS21ZVDUrWW1NamZWVDBXejNpUlh6?=
 =?utf-8?B?SWVrTVdUUUdrTk5pbHpQaXFEMGFYbHNRRDB4K0UrK01SQ3pnWEYvV1U4T0J0?=
 =?utf-8?B?bHBObUs5TGc5bnVvOUw2TlU2NWtwdk1WS1cwcmhnaWVRcGhndGd2ZjgwaGsz?=
 =?utf-8?B?K1dndWdBUTdlZXN5NUpSZE5GOE1wM1orV2FTVzh4dnE4TG9WbjB5SS9NYW1B?=
 =?utf-8?B?eUVnOHZhMkxKKzB0dzV0ZTNYSUdzRjhFUlY1WVFEaWJ1bzRCK2ZaK1V1OWFv?=
 =?utf-8?B?dEdWY3k1Yms1WHM0TU1ybE42SE0vN3RNZjJhVkVBU0pQcVc3YnZQZUVNSS93?=
 =?utf-8?B?dC9rekNCRzJ5NjZlek45TWhIcVNjZk5ydVVTdGVFekJKUkRURndhajQzWmsy?=
 =?utf-8?B?L0R3VUFBaFo3Wnczd245eDhpL3NTNmVhZnBHLzFqVkVIZnJKYlR6NlVkYWE5?=
 =?utf-8?B?dWhwNnBaL0VGeU03NUhOVVlDeTdEN0lpVUlHajVlRWp0ei9tRGNsYWx0R1E1?=
 =?utf-8?B?T3lsRlFjY0JyclgrNUlGaFA3S1JyaFJoaXRIQ1YwSjRyZ2ZVZ0xnYWJpZ3Jq?=
 =?utf-8?B?K2FMaUV5Z1N6ZmdoV2JQR0tnZGlFck94aGgxa2NBdVVMb3hOV1k1L01tR1Ev?=
 =?utf-8?B?QTQxSVJaQVhhWHBwOTRhRjYxclRScnN4NG5oL0hzODFEcHRocUVnNVhVYkgr?=
 =?utf-8?B?dmkxamZKc2todlNhOTMvSFRaYU9RRmZPYi83QlhRQ3NkU0NBclBPWHE1YWxQ?=
 =?utf-8?B?dEhpTlVuUmM2c1Y0YkwvMko1OTdsYnRrKzlDOURVWEU5OXZveHN5SkRvYnBp?=
 =?utf-8?B?MVVKbmFCUFQvRkZvWjdNanVDY1RsNEhOUHRzZUhzdzk2U3NnY1RnVUlEOWNh?=
 =?utf-8?B?alBUVDdaUnV3c2Z5K1MzMng5TUhKUGgzV1JzVWxIT2NvT3M0OXZxVXMreTdp?=
 =?utf-8?B?YStwSmpMQjM4elpSeXgvMmJoM0Iwa3g3VnJsTmFxUTVqT01oaXcycDJJd1JC?=
 =?utf-8?B?Qm5DcHRvWHpNOWhvK2pLQ21qcTgwbHp1WEJWNVVRZWFVV0V0YXY3WnZKdktx?=
 =?utf-8?B?Nk9lRlpGYXZwSWgzZ2RWbVBmZGRodWZvZFpkZE5LelRYYzZSaTdIMS9jdnc3?=
 =?utf-8?B?RDgvNW94Rzd0OFVGNlQ2TWJZT2NJTHVZVWwxQkZqNWYrOHFLd2xWSXpGekZH?=
 =?utf-8?Q?VgqY4L8Cvm8s6dEPD69Kd/ykB4vh+Y=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?R2kvWXVySkhvZ1paSFJubkk2aWJiVHlMblZPWW9wdU93dm9RK3MxL0QwQm1H?=
 =?utf-8?B?c0hWWU5scGVHd2JqelByRkNIUlc1SlMvcnR4eVJwTFZ1cUF0Q2ZoUTA2ZElZ?=
 =?utf-8?B?a3NJcndiR2FaZDFHTE80R0hXK1lVTHhYSmZyR0J3MGpaWFJzUC9VejFSc28w?=
 =?utf-8?B?VTFKWlRIaCtFYklVVHhveXdERko3dTVEVDdFT3Zyam1qOWtYb1B6R25xWlJk?=
 =?utf-8?B?NTYySjExVTlmZmxwQmdqbGRLMi9lNVFWYWUvclNnSTNqUjcxNUI4Y2NYRWsz?=
 =?utf-8?B?eTh5ekZ5clhsVkorVW1RRzdUV3htVDV5bldhR2s0ampRS0EzekVpeFRycE4r?=
 =?utf-8?B?SFdVdm0vQWhmQ29LVXdRZC9hOHQ1bU9wMEQxNXNlbVhBR0ExMWxwK0N6dlpM?=
 =?utf-8?B?VWpMak9tbGFyMFM0YkJ6VVBLWitQdFZmclpySTNIYzQyMDlFNWRvMHVpd2do?=
 =?utf-8?B?SzM5eUlWVWlmY1FZcWFNRlJHditWelEwTnlqSzY5d2VCaEdwOGRpRnFGKzFr?=
 =?utf-8?B?TnVxbWRQV1VUVmFFSTgvQisyU2hFT1hGNjZPaG5FQTg5V1daNkprUEVmSDg5?=
 =?utf-8?B?SlBjblpqd0haN0M3clhNRk9hTC9EWGxadDJuRk9BSG9aTHd2TmNUSXgxN1kv?=
 =?utf-8?B?ZWFUOUlXZ2gxVDFkdzRQK1RBNGRHTnRYeUJDTWFjT1hYMGRDeE5xMEQ2My9H?=
 =?utf-8?B?cDJjMTZxaHNvRGRXSCtJdGRzOTU3c21IeDRrME5DSTB3SG1yM1VUemxuWmE2?=
 =?utf-8?B?QVRHZkxBbnZ4TUFOMVlkcjVrTGJzSi9sZFhOLzV2dkVQbEF2SUF6eDNlRzRj?=
 =?utf-8?B?bCtzdE5SV1oxSlZUb1dVWTN4WmY0VDI2ekM3dFB4Ym94MlI5OFFBQnZaT0tZ?=
 =?utf-8?B?VW5TVzkrV0NtQWcxM0ZhOHJZU0dnV2dHcHh2UVdRK3dwdmlWdHByVkRRR1lS?=
 =?utf-8?B?NzE1SjlERFovckYra0Q0UHN0SmpJTm8vRjhrakFCQWVEdU1aVDF6LzRuL3Rq?=
 =?utf-8?B?VThra1BYb21nQWxjc1lUUTlueTF6Y3E0RzU3WldoVnJJYk5USVFXUUtXbDZD?=
 =?utf-8?B?bWtaQm9HSG1MRWNjTzAxNExvVFlPR3c3SFNLS21LQXpWVDB4RjVEbFYyMWxV?=
 =?utf-8?B?aTJqTlA2K1I4aDhmaytHVjVEeTZaS3h6alVyRVUrZDVKWk9naHpJZ3JDOGlP?=
 =?utf-8?B?WTlRZlhIREtmZDRZMnZMb2Q1K25pKzMzdTN1KzNkUlFTaEVJRkhJZzdkYi83?=
 =?utf-8?B?Tkdjdy9sNnIxNXdEUUltV1FLMzZlMWxuTjhMa3k1UGpZTGN2NVpuN05JY0x0?=
 =?utf-8?B?dkhFK2JpclJLRGNmQVVlTmxxSzhUUFQ1eDFTVmZsd3VwUTI5NXZHN0NqeDRF?=
 =?utf-8?B?NThmNVdiV04rWmdpUDZ2dUk2Y2lNUUxyZWtmRmhCTlpWRFRCWjdjclFYN2g2?=
 =?utf-8?B?R2Q2UTE0MjhXdTRuOXFRQ1Z3eG85V2FyV050Yk1QU2NRNWNQRzVoZmdWb0Y5?=
 =?utf-8?B?eTNrUyt4VExFLy9XNE9XOUsvZVFSd3ZQeFB3M053Nkw4S1h6TkVqaTRpei9j?=
 =?utf-8?B?OVg3YnRqVlRSc0RvTjFxRkRZcmdRNzVVUHI5dmpST2dackF3WXJjeWg0ajVs?=
 =?utf-8?B?Z28rbXVTTDRJK2pZbkhBdjIwV200eEs0dHVSNDhnN0R6eEVuSDhmYkhMNWE0?=
 =?utf-8?B?WDB5Y1FiVG96N1RYWmVIVFVXMDVOdGxUd1pTZk1Nc2R0Y0QrdXBsdDZYQ1Zs?=
 =?utf-8?B?WnpsU0FSOWtvRWdmd2c0Ti9jcUVsYnRBVG41NXBNdXlHTW9mSUNPNEc4cmNM?=
 =?utf-8?B?d1liWDdnZlp5QkhtL1ZLQjBIdDhqSGo1VGlsdGMxWVRpcVlOV2lUbnhWajMw?=
 =?utf-8?B?amNkalltMnVsbEVwcnJnTEZrRXo3aHUyc08xVTNmOFJFTVRFSTUwVHl2ZUd5?=
 =?utf-8?B?RG5aeEtWQzJueUl5T2xhN2tyait1aGVsbUNTV09Oc1ptQUd3YU5sMk93V0dl?=
 =?utf-8?B?OUQ1ZGdMbElJSHR3ekw4a0loblM2OWEyQzNRaFBRaDN0aU5QZVR2NDNDQ0Zk?=
 =?utf-8?B?QzFSQzRJOWxENkZVcWxDd2RSM3FBL2NtcGVjOXpBQ3ZjVlpLWWxpaE9xMkJW?=
 =?utf-8?Q?Y7+w=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 730d982b-edfb-40b9-3824-08ddda36b024
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Aug 2025 06:57:37.4268
 (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: fWA0+hYVtp1Q/+BBJVOKn/h0tZOSYfdsqMRx3lFRCsbT1HeAyWKIquRRGyqm015RLZh7SkLd9LzSsg5EDky3eQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB5610

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFRodXJzZGF5LCBKdWx5IDI0LCAyMDI1
IDEwOjA5IFBNDQo+IFRvOiBQZW5ueSwgWmhlbmcgPHBlbm55LnpoZW5nQGFtZC5jb20+DQo+IENj
OiBIdWFuZywgUmF5IDxSYXkuSHVhbmdAYW1kLmNvbT47IEFudGhvbnkgUEVSQVJEDQo+IDxhbnRo
b255LnBlcmFyZEB2YXRlcy50ZWNoPjsgeGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+
IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjYgMTgvMTldIHhlbi9jcHVmcmVxOiBieXBhc3MgZ292ZXJu
b3ItcmVsYXRlZCBwYXJhIGZvciBhbWQtDQo+IGNwcGMtZXBwDQo+DQo+IE9uIDExLjA3LjIwMjUg
MDU6NTEsIFBlbm55IFpoZW5nIHdyb3RlOg0KPiA+IC0tLSBhL3hlbi9kcml2ZXJzL2NwdWZyZXEv
Y3B1ZnJlcS5jDQo+ID4gKysrIGIveGVuL2RyaXZlcnMvY3B1ZnJlcS9jcHVmcmVxLmMNCj4gPiBA
QCAtOTY4LDMgKzk2OCw5IEBAIGJvb2wgY3B1ZnJlcV9pbl9jcHBjX3Bhc3NpdmVfbW9kZSh1bnNp
Z25lZCBpbnQgY3B1aWQpDQo+ID4gICAgICByZXR1cm4gcHJvY2Vzc29yX3BtaW5mb1tjcHVpZF0t
PmluaXQgJiBYRU5fQ1BQQ19JTklUICYmDQo+ID4gICAgICAgICAgICAgY3B1ZnJlcV9kcml2ZXIu
dGFyZ2V0Ow0KPiA+ICB9DQo+ID4gKw0KPiA+ICtib29sIGNwdWZyZXFfaXNfZ292ZXJub3JsZXNz
KHVuc2lnbmVkIGludCBjcHVpZCkgew0KPiA+ICsgICAgcmV0dXJuIHByb2Nlc3Nvcl9wbWluZm9b
Y3B1aWRdLT5pbml0ICYmIChod3BfYWN0aXZlKCkgfHwNCj4gPiArDQo+ID4gK2NwdWZyZXFfZHJp
dmVyLnNldHBvbGljeSk7IH0NCj4NCj4gVGhlIGZ1bmN0aW9uLCBieSBpdHMgbmFtZSwgaXMgc2Vl
bWluZ2x5IGdlbmVyaWMsIHlldCBpdHMgaW1wbGVtZW50YXRpb24gaXMgdGFpbG9yZWQgdG8NCj4g
dGhlIEhXUCBhbmQgQ1BQQyBkcml2ZXJzLiBJIHRoaW5rIHN1Y2ggbmVlZHMgY2FsbGluZyBvdXQg
aW4gYSBjb21tZW50Lg0KPg0KPiBTZWVpbmcgdGhlIFhFTl9DUFBDX0lOSVQgY2hlY2sgaW4gY29u
dGV4dCwgSSBhbHNvIHdvbmRlciB3aHkgaGVyZSB5b3UgY2hlY2sNCj4gZm9yIC0+aW5pdCBqdXN0
IGJlaW5nIG5vbi16ZXJvLg0KPg0KDQpDaGVja2luZyAtPmluaXQgYmVpbmcgbm9uLXplcm8gaXMg
dG8gZW5zdXJlIHRoYXQgY3B1ZnJlcSBjb3JlIGlzIGluaXRpYWxpemVkIHN1Y2Nlc3NmdWxseSwg
bm8gbWF0dGVyIFB4IG1vZGUgb3IgQ1BQQyBtb2RlLg0KQXMgbm9uLXplcm8gY3B1ZnJlcV9kcml2
ZXIuc2V0cG9saWN5IGNhbGxiYWNrIGNvdWxkIG9ubHkgdmVyaWZ5IHRoYXQgcmVnaXN0ZXJlZCBj
cHVmcmVxIGRyaXZlciBpcyBnb3Zlcm5vcmxlc3MuDQpNYXliZSBJIHNoYWxsIGFkZCBjb21tZW50
cyB0byBleHBsYWluDQoNCj4gSmFuDQo=


From xen-devel-bounces@lists.xenproject.org Wed Aug 13 07:26:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 07:26:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079482.1440310 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1um5sD-0006Zb-TA; Wed, 13 Aug 2025 07:26:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079482.1440310; Wed, 13 Aug 2025 07:26: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 1um5sD-0006ZU-P0; Wed, 13 Aug 2025 07:26:13 +0000
Received: by outflank-mailman (input) for mailman id 1079482;
 Wed, 13 Aug 2025 07:26:13 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1zV9=2Z=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1um5sD-0006Yd-9Y
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 07:26:13 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c986cddc-7816-11f0-a328-13f23c93f187;
 Wed, 13 Aug 2025 09:26:11 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-4563cfac2d2so54324855e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 13 Aug 2025 00:26:11 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3b79c3ac158sm47612555f8f.4.2025.08.13.00.26.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Aug 2025 00:26: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>
X-Inumbo-ID: c986cddc-7816-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755069971; x=1755674771; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=bHeYcTjmxodYuAyNKwXjhEgPTQNarlgaMTbnkGaftmc=;
        b=ucHQbjwanWqqSRsW/7hAABV7Sb696kJLORa6Z6YQaGG5fMu7LyBjjiYOFJ6A4kbGpb
         8h7JkQmzJ4/lYrB01ck0x3Q4WARFEjHFfs6ygZwvzHvBHBQAaWQs3XxSPaV7ZvUdH20+
         Y6IkeXUf5BB6s0EDhxXA1V/NZmKZxFZM65uOg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755069971; x=1755674771;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=bHeYcTjmxodYuAyNKwXjhEgPTQNarlgaMTbnkGaftmc=;
        b=sqPnj2UBHsiaHobyw4VsmLSrU/TwiL2H2U4C2N2xpcePLBrNJ5H+/ZBvXTp6bBGU3r
         Hxx03IyB9Yxu6VN+FH5Lv1Gxe1EjEd5puJfNuXAo6GR7dCXmerKLWlfF5g4/g17OCWGa
         zsTu2Zyb1/Tke1i1K4AZwmgArQvUzoejlT1imNFkPJUuapavc8wKocreQag0HwLceYAT
         RJeSqYCOcDAzELGwgt5IumEuwG6/YRz1ZeIWQrx0jDph4241qY4/fppNi1OgNojenfSH
         znWYgI+mcPrwVza/KosLZ16ca5F/O+vl8d8q3Q3cX4MXBQbH7uieuVCb567Mv5cir2jH
         HECg==
X-Forwarded-Encrypted: i=1; AJvYcCUVAsyfA77Y4vVQg9Q2ttcEg67jFZ9iadGSevFCPWTFFrOnNmJlu8Zkl8JXA239bwWjh64QErIWDP8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyDZ6lyberHPWGMHcoAgml1gV04ancPi/RButsKGEF+zJM+8gOu
	a4ClkjEBfqKvvKd24dAA4I/Q7XUOlSoDcjda3K1kHmn2djBLNwnsUJkyxqw3g6Dvw/g=
X-Gm-Gg: ASbGncuHaWfmheHFijctNJSv6v6m6U5AH5KUp8i5eyGFEW/ofa6y01BpbMhRuSP3+sM
	ld/aNN/y+fwjz4CmQvIuEEwwbC9HSzqXbdGCZp+ZgYyEOtMjBFBJqmDFChqkAkFHsY3PjJIwJQg
	D1Cpqls53UsFBaYQf4WnDu4EM33uR9UE8rreiw8rFYEFK8m5Ltg4rtWtQW5qyYmMoycDhWcho+U
	Ef7UwmBrxq5Dw437EIj6egiVX3cq0lNtOdg3shbB0UEG3/nufhJA4S2d9wzg9Rl2AxrGvEU9vW/
	6a2mgGTHF2yxf4kIJ1/bCQStWyc6bmdzhDLj92Kpye5mgVGgAtkxwFneaV480V3tExjfBFMi5oG
	lNftUNB7uKVEMyRaDvqwZt59O00mpG7nkH+durLHrkDWGhrNRHMoJuf7WnIQiAyC+vg==
X-Google-Smtp-Source: AGHT+IHuGhuBxOwQqIdH6u2VHgC9iRpH/LiqXiWHOwByGH7m6DvFqTE8vzKKCfSCbl8I2LkL6tVRnw==
X-Received: by 2002:a5d:5849:0:b0:3b7:9dc1:74a5 with SMTP id ffacd0b85a97d-3b917eb7c9emr1371130f8f.52.1755069970842;
        Wed, 13 Aug 2025 00:26:10 -0700 (PDT)
Date: Wed, 13 Aug 2025 09:26:09 +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: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: S3 regression related to XSA-471 patches
Message-ID: <aJw98srxJKZ2msct@macbook.local>
References: <aJMtPLNqQFbGg5cs@mail-itl>
 <f971f8a8-487e-4b9f-8c75-80ebfe70c3b6@suse.com>
 <aJMyjYfeTL5uPRtk@mail-itl>
 <aJTilUXpchmRq2Ng@mail-itl>
 <4fb544d7-fede-46b8-950e-f9c4af1cb04f@citrix.com>
 <B667172D-84FA-488D-98F9-0D7D34402EF7@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <B667172D-84FA-488D-98F9-0D7D34402EF7@invisiblethingslab.com>

On Wed, Aug 13, 2025 at 04:53:53AM +0200, Marek Marczykowski-GÃ³recki wrote:
> 
> 
> On August 11, 2025 3:16:46 PM GMT+02:00, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
> >On 07/08/2025 6:29 pm, Marek Marczykowski-GÃ³recki wrote:
> >> On Wed, Aug 06, 2025 at 12:46:36PM +0200, Marek Marczykowski-GÃ³recki wrote:
> >>> On Wed, Aug 06, 2025 at 12:36:56PM +0200, Jan Beulich wrote:
> >>>> On 06.08.2025 12:23, Marek Marczykowski-GÃ³recki wrote:
> >>>>> We've got several reports that S3 reliability recently regressed. We
> >>>>> identified it's definitely related to XSA-471 patches, and bisection
> >>>>> points at "x86/idle: Remove broken MWAIT implementation". I don't have
> >>>>> reliable reproduction steps, so I'm not 100% sure if it's really this
> >>>>> patch, or maybe an earlier one - but it's definitely already broken at
> >>>>> this point in the series. Most reports are about Xen 4.17 (as that's
> >>>>> what stable Qubes OS version currently use), but I think I've seen
> >>>>> somebody reporting the issue on 4.19 too (but I don't have clear
> >>>>> evidence, especially if it's the same issue).
> >>>> At the time we've been discussing the explicit raising of TIMER_SOFTIRQ
> >>>> in mwait_idle_with_hints() a lot. If it was now truly missing, that imo
> >>>> shouldn't cause problems only after resume, but then it may have covered
> >>>> for some omission during resume. As a far-fetched experiment, could you
> >>>> try putting that back (including the calculation of the "expires" local
> >>>> variable)?
> >>> Sure, I'll try.
> >> It appears this fixes the issue, at least in ~10 attempts so far
> >> (usually I could reproduce the issue after 2-3 attempts).
> >>
> >
> >Can you show the exact code which seems to have made this stable?
> 
> This patch: https://github.com/marmarek/qubes-vmm-xen/blob/7c9e9e312948c772d9a68090109964121c1d16fe/0001-DEBUG-S3.patch

Hello,

Can you test if the patch below in isolation makes any difference?

Thanks, Roger.
---
diff --git a/xen/arch/x86/acpi/power.c b/xen/arch/x86/acpi/power.c
index 2ac162c997fe..27d672ad5dbb 100644
--- a/xen/arch/x86/acpi/power.c
+++ b/xen/arch/x86/acpi/power.c
@@ -19,6 +19,7 @@
 #include <xen/iommu.h>
 #include <xen/param.h>
 #include <xen/sched.h>
+#include <xen/softirq.h>
 #include <xen/spinlock.h>
 #include <xen/watchdog.h>
 
@@ -310,6 +311,7 @@ static int enter_state(u32 state)
     thaw_domains();
     system_state = SYS_STATE_active;
     spin_unlock(&pm_lock);
+    raise_softirq(TIMER_SOFTIRQ);
     return error;
 }
 
diff --git a/xen/arch/x86/apic.c b/xen/arch/x86/apic.c
index 0fd8bdba7067..9d66db861b74 100644
--- a/xen/arch/x86/apic.c
+++ b/xen/arch/x86/apic.c
@@ -65,7 +65,6 @@ static struct {
     unsigned int apic_lvt0;
     unsigned int apic_lvt1;
     unsigned int apic_lvterr;
-    unsigned int apic_tmict;
     unsigned int apic_tdcr;
     unsigned int apic_thmr;
 } apic_pm_state;
@@ -658,7 +657,6 @@ int lapic_suspend(void)
     apic_pm_state.apic_lvt0 = apic_read(APIC_LVT0);
     apic_pm_state.apic_lvt1 = apic_read(APIC_LVT1);
     apic_pm_state.apic_lvterr = apic_read(APIC_LVTERR);
-    apic_pm_state.apic_tmict = apic_read(APIC_TMICT);
     apic_pm_state.apic_tdcr = apic_read(APIC_TDCR);
     if (maxlvt >= 5)
         apic_pm_state.apic_thmr = apic_read(APIC_LVTTHMR);
@@ -718,7 +716,7 @@ int lapic_resume(void)
         apic_write(APIC_LVTPC, apic_pm_state.apic_lvtpc);
     apic_write(APIC_LVTT, apic_pm_state.apic_lvtt);
     apic_write(APIC_TDCR, apic_pm_state.apic_tdcr);
-    apic_write(APIC_TMICT, apic_pm_state.apic_tmict);
+    apic_write(APIC_TMICT, 0);
     apic_write(APIC_ESR, 0);
     apic_read(APIC_ESR);
     apic_write(APIC_LVTERR, apic_pm_state.apic_lvterr);



From xen-devel-bounces@lists.xenproject.org Wed Aug 13 07:34:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 07:34:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079493.1440321 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1um60Y-0008IB-K7; Wed, 13 Aug 2025 07:34:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079493.1440321; Wed, 13 Aug 2025 07:34:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1um60Y-0008I4-HK; Wed, 13 Aug 2025 07:34:50 +0000
Received: by outflank-mailman (input) for mailman id 1079493;
 Wed, 13 Aug 2025 07:34:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=InlY=2Z=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1um60X-0008Hy-Pz
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 07:34:49 +0000
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com
 [2a00:1450:4864:20::636])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fddbb9ce-7817-11f0-a328-13f23c93f187;
 Wed, 13 Aug 2025 09:34:48 +0200 (CEST)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-af96d097df5so1146975766b.3
 for <xen-devel@lists.xenproject.org>; Wed, 13 Aug 2025 00:34:48 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a22057esm2337664366b.115.2025.08.13.00.34.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Aug 2025 00:34:47 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fddbb9ce-7817-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1755070488; x=1755675288; darn=lists.xenproject.org;
        h=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=W2I/Po+P5avufAcUnjJgeoC1esKLjSIh6UubSNkOccc=;
        b=gW2JD4SsA7NuCjpNvnnMJwfjsRcYO1OU69xnYQzrrTzM3GmDjLcaH0VURVJdfkEwpK
         rt/TmqLe6pUJHe1tgGsfeZMO5cyByy27uiYgQ+bNPYIXvgDJqU1jqt2ZLf/uFmxeKdXL
         TqRN5U8q7vAoZPuesxO4K6FKgRRkIbFnSIxIeHwjc/sMb7EExxJvA5Hv+olMMtnF/sw+
         aLLZj0kS+g1dscIBzkiODkqX/3XKfnGLYrQqZC/ePOsQQypqj3KyvWFo0KrmKhwGZ7R5
         Q+U1qZBmEZ2vDNlSQsBqxIP9HHhMzdVsuko6WB9ern+UYCGzhvtNwaBrsEXlPGVJ1FpZ
         ofTA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755070488; x=1755675288;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=W2I/Po+P5avufAcUnjJgeoC1esKLjSIh6UubSNkOccc=;
        b=GwFQWdgPOJHzf5c32byNB3HMJdpUOK8updB8H18zqhTp62jYM5LWK4bzu3f+V0b1Nc
         rC09ahnlCAalK72Pi+gXrX3zw/hPD4VjNwscHSIwOgr/6tUFFKN7vf8cyLzZ3TPzzaYx
         mfjbrSFFvY7i3BOUrMDVysc/GoAnvewKD/nFMCuduP5KmtbocfHujvr50xJJV4Kkv331
         JLeWRRG4GPpsq+IrgXjvKx4EEIp+ggMy+Ed6iOBS/L8BO5TtUKNDhyw9YoJPAvWnWLSR
         dkb+XfoA6ZBeFWGdGwFtNUQrj0exDJPmPAnHg/R2rBlS4rozNThS1KGWhIJyFNV95fcS
         eK7w==
X-Forwarded-Encrypted: i=1; AJvYcCUAWLpRGa/a2+YofwvGWg8wEvkjziuuAWUxA6DYpwfrWJwIfWF+6U5pKoCxcrOAHTT/YQUkuhtZ4/c=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyF0inQBLPrf0V9mJy9CSC3Su1gVaW3kkNTBn13IPF8kiewXkTQ
	6OZxkKC4OYIh2/BUBSL79IhglgQhoihnWTCjEUZrZENwPdH09qLbAJgTwkx8Xg==
X-Gm-Gg: ASbGncvEXmuKkpUmPN1pgmjUw9o9GJR069Iwjsu0VWFJDa9+vUxtfBg26gjbUIkBJLK
	g0d2W26Zq3P50BkR+cMy3NOV/ImNpIXZSz4wx5QWlLcegmvyzXjIvmJ581YatXVhDTAJCE2moOL
	MycR//A9s6oTHBaFihWInpud3ozAeq3Ruzov8g+3gTuAbdhgzYRZHhFg1rOoUiwkF9LTHCpe39x
	fOpnGkPm5mFywDCH48rj66ABBBLFUd4IsdBxMusWXTbLmFuUEuiZCxKIf/PdWksQJt6QUUeG2VK
	5OpfwySUMMu+EHBlvVqWEfZ+o4EQhxW1SF2TN6120EoGQQwZwvWV5FHVLoN0Kgr0ilcxIYXFV2q
	YGLcRJ8pPWPQelhcbFIlSCJ+UEuuvWW57h4e0QabQKmrqlvJfZW/suk1SJXRVgfnJZEEoFwQ=
X-Google-Smtp-Source: AGHT+IErwiAdxd3x1aGEDKReW/jRPpAB5+/1IxButhYdK092nzemWgPZIqL+z+77GMAEC6pvu+iZqw==
X-Received: by 2002:a17:907:1c07:b0:ae3:ab68:4d7a with SMTP id a640c23a62f3a-afca4d459dfmr219159366b.25.1755070487802;
        Wed, 13 Aug 2025 00:34:47 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------plMxZf8F0sg5G3reG1OodzN6"
Message-ID: <e10ce36c-fe5b-4f34-8fe4-bfc843c10c7a@gmail.com>
Date: Wed, 13 Aug 2025 09:34:46 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH for-4.21?] x86: drop detection of ld supporting
 SORT_BY_INIT_PRIORITY()
To: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <7a24d8c9-97c2-4721-9e38-600858b30119@suse.com>
 <75f5d54e-8ec1-42dd-8f4f-6023113203ee@citrix.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <75f5d54e-8ec1-42dd-8f4f-6023113203ee@citrix.com>

This is a multi-part message in MIME format.
--------------plMxZf8F0sg5G3reG1OodzN6
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 8/11/25 1:10 PM, Andrew Cooper wrote:
> On 11/08/2025 12:02 pm, Jan Beulich wrote:
>> GNU ld 2.25 supports this, and we already assume all lld versions do.
>>
>> Signed-off-by: Jan Beulich<jbeulich@suse.com>
> Acked-by: Andrew Cooper<andrew.cooper3@citrix.com>
>
>> ---
>> While past the submission deadline, this fits the toolchain baseline
>> update we did in this release cycle, so I'd like to ask that it be
>> considered to still permit this in.
> There's loads of cleanup still in the ticket I made and talked about at
> the start of 4.21.
>
> There are a view bits posted and still in need of pushing through, but I
> consider anything along these lines to be fair game in the short term.

Agree with that.

Release-Acked-By: Oleksii Kurochko<oleksii.kurochko@gmail.com>

~ Oleksii

--------------plMxZf8F0sg5G3reG1OodzN6
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/11/25 1:10 PM, Andrew Cooper
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:75f5d54e-8ec1-42dd-8f4f-6023113203ee@citrix.com">
      <pre wrap="" class="moz-quote-pre">On 11/08/2025 12:02 pm, Jan Beulich wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">GNU ld 2.25 supports this, and we already assume all lld versions do.

Signed-off-by: Jan Beulich <a class="moz-txt-link-rfc2396E" href="mailto:jbeulich@suse.com">&lt;jbeulich@suse.com&gt;</a>
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Acked-by: Andrew Cooper <a class="moz-txt-link-rfc2396E" href="mailto:andrew.cooper3@citrix.com">&lt;andrew.cooper3@citrix.com&gt;</a>

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">---
While past the submission deadline, this fits the toolchain baseline
update we did in this release cycle, so I'd like to ask that it be
considered to still permit this in.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
There's loads of cleanup still in the ticket I made and talked about at
the start of 4.21.

There are a view bits posted and still in need of pushing through, but I
consider anything along these lines to be fair game in the short term.</pre>
    </blockquote>
    <pre>Agree with that.

Release-Acked-By: Oleksii Kurochko <a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>

~ Oleksii
</pre>
  </body>
</html>

--------------plMxZf8F0sg5G3reG1OodzN6--


From xen-devel-bounces@lists.xenproject.org Wed Aug 13 07:41:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 07:41:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079506.1440330 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1um673-0001YC-BR; Wed, 13 Aug 2025 07:41:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079506.1440330; Wed, 13 Aug 2025 07:41: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 1um673-0001Y5-8q; Wed, 13 Aug 2025 07:41:33 +0000
Received: by outflank-mailman (input) for mailman id 1079506;
 Wed, 13 Aug 2025 07:41:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gOuC=2Z=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1um672-0001Xz-3x
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 07:41:32 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ea635a48-7818-11f0-b898-0df219b8e170;
 Wed, 13 Aug 2025 09:41:27 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by GVXPR03MB10479.eurprd03.prod.outlook.com (2603:10a6:150:150::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.15; Wed, 13 Aug
 2025 07:41:23 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9031.014; Wed, 13 Aug 2025
 07:41: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>
X-Inumbo-ID: ea635a48-7818-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uxoGP9SuzABzJkGIL8fBJb50o2iXCTGS9scTWkeaPXbeuqxzmtOgS769osFvne4+Kikv2TpoK1mClYlmlJd9xzuPanD+DuJ6IzwpIZBNJDOdvYrPTmBbCoSxcJ9c6pI6MdbcxCEBwOrRgLO3IjQQ6keiYEVk8L2MjvSbv4G12QuFJZ6PQNkMWRJxakUUzpt90F7NhiJHPZFNG7BhfdRedVlPL80xKDB8+eb7eBJeGylOcHPDe1w+HMXe5S1pEtnFwisb3cPHUkw857porBrAcVq6TNSIvZjM7oDMR0Gy7r7sNFYkn/EsjpHJfzWKPKyPdOf64js94f0O4quUU026qg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jku2S9VOEnY+kzDwWRF4jnCWArjfF9dtIi/k9j2T53Y=;
 b=Ojb0IucUGeA7JNjFHs0l03xi81HxcF1DalSLyJysi8EO1RzY9+aYoK28U6ZmmwQlhTOtTcVpMGK0A1H6p4xNYtwv86h/p6s25QMOuthJOYB2Pr1Zr7W4CXKpLciwE4wc53OEdjZKPTX6PwOroZrwDvtWFraNniLVvgEU798g929473P5x77iqMv2CZaF6kvhNaUCngz6FMVZtBrTUBjiaYeWhNHb8yI6o1I2jvIxTahxUKUOj840EV0vHLZRwAJmsKhHsrZ1FlEBiUpVJtsgeS87DVfJOKmpuL2jbGirGVZfjRF+pqChSuozNX66KGGqJg8feVuUpTSzJ0XbF/uAIQ==
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=jku2S9VOEnY+kzDwWRF4jnCWArjfF9dtIi/k9j2T53Y=;
 b=k9kSsIYUyz9aOqTwKZVmB6EEIRO26y623kZCLGGX3rbj/XihEh3B+gKuuas5NcBfox7JeM0Xucihwx/X/m+BrIYjANANYpVOIzUys2zzkMbluOKYY+yMPFOa/TxwXhrEaC5GrIetODdTycV4aHLjBcRNhu+8YMn7iZZ3AYMVoRGQCtRlCjho/oGdPT2E0e93WaH9s4zcgmntbgHbeSh8klbSkTpAZVj1lHhayTqEGB4ArZ8o5cCx4WnV65JGWyliaotA6dBtrHWXZGCiHKzxHlkhawnC9HMgpw7rU/bf4A0XJuOl1vMDzxuYw7dq5NIeaLpwp7z5GwM3KmzvLZWtIw==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Nicola Vetrini <nicola.vetrini@bugseng.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "sstabellini@kernel.org" <sstabellini@kernel.org>,
	"consulting@bugseng.com" <consulting@bugseng.com>,
	"andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>, "jbeulich@suse.com"
	<jbeulich@suse.com>, Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [XEN PATCH 2/2] Address violation of MISRA C Rule 13.1 involving
 asm side effects.
Thread-Topic: [XEN PATCH 2/2] Address violation of MISRA C Rule 13.1 involving
 asm side effects.
Thread-Index: AQHcCK0jS1rUvIHcNU+6wO2ItjtxCLRgOfkA
Date: Wed, 13 Aug 2025 07:41:23 +0000
Message-ID: <175d7b47-32bb-4b5d-a16b-7402bd823b15@epam.com>
References:
 <1283be3b76d76814af244bbca544f6a3b74a04de.1754689062.git.nicola.vetrini@bugseng.com>
 <c4da2554d94c3f7bd4b1e460dcaa27db382ece2f.1754689062.git.nicola.vetrini@bugseng.com>
In-Reply-To:
 <c4da2554d94c3f7bd4b1e460dcaa27db382ece2f.1754689062.git.nicola.vetrini@bugseng.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV2PR03MB9572:EE_|GVXPR03MB10479:EE_
x-ms-office365-filtering-correlation-id: 16f35bff-6d49-4db1-835a-08ddda3ccd51
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|42112799006|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?c2NIbHpZdXBYL3Q4RE8xT0N2MDNaRTBFK0VEaVBnOURaR1FKQlVCV09obUdH?=
 =?utf-8?B?bnlGV1UxU1hKT3Z3SStQaUhNWGpxeEJUOFEzbS9FTUdlYjViaERIZ3pzTGJ4?=
 =?utf-8?B?WlFycDFOaC9QZktrUFBYOG1mREcxbUk2SlhGd29FZnlBWWREVmwrd0NnTE5M?=
 =?utf-8?B?MXRwVTFadW9UYVQwaHhIYmY4UDNiWnNuQmdJT2JRRG93Qys3SXVaWjVJS0da?=
 =?utf-8?B?dTFCMnpBWThnaUVKTzZRRUhRRXAzTkhjWXg0V3l1dmk3bmR2WkFDdGR1T3B3?=
 =?utf-8?B?OTMyTHNjb0xjNUYxbitVTnN4ZEU1c01sbWwzeHpTZk5LVXBOWVlEMjNzSUNi?=
 =?utf-8?B?amtZTTczY2xmM1dUYzltcmRHQW5aZnJURTd2UzZJWVFBTEk0bXc3K3RGaXY3?=
 =?utf-8?B?OERCS0xtTjVaNEhRQUJqREFSNThKU0V3REV0NWY0UTNSWFZZSHNTZkRDcHZ5?=
 =?utf-8?B?d0EwaGp1V0dMYy91cU1FeVVwcWx0aVRnL085U3hQd2JHQ201RXNNODRyVzlj?=
 =?utf-8?B?dzFKeFh5RHk4Ni9TdDVVNmV2cEVZNGR0NS8zVFE1ODhONXl2MUlqNkhISVQy?=
 =?utf-8?B?RkJJOFErSWFBVUtPeWt3c1FlNlVydzk2SDViUlBVcnc1c1ROYmxHSGZTMmhX?=
 =?utf-8?B?SkJTY2NzUHF1dlVINDN0alJYK1hHM0ppdXpYWWpWeWxSK2FRYm1uQXpMOW1J?=
 =?utf-8?B?a1dmRE14TWlPOFIraXVFMGJQMjJSeXE5MnA5M1EwQml6bE9MdVVuNUhObDYv?=
 =?utf-8?B?djFxdXVzWHBlSEcrK0Nsd0h5UFM4T3V3am94ZlNtZWVOZWs5RTdGRnpiblJN?=
 =?utf-8?B?dVEyUmQwM05UcHlKVW1tcEpDb29Dbk02VUdjNlhrU3JSVWZPa2RVMW5aNGNM?=
 =?utf-8?B?aGZPMmNjM3JCVzNvcXVkWU50eTRQc1NneCt2SDJWSENCOXZ5WHNMb1ZDSTBO?=
 =?utf-8?B?bEEwZWdXVyt4bXJqdjB5VkVvMmxKNVVUSXEySUxaYjhxRkFlUzBsL2oweEpK?=
 =?utf-8?B?eldIUFBTYnZQTHBzNmZ2WFRlY0NCR2k1NjFLZnVKQVJKUHJZbjBPeGVJaXph?=
 =?utf-8?B?QUdpbjdMTzBSS0U2QzVzWDJ2c2l5SXp0cGJsSHBzYlJLVkwvVmdTdHVtWG4w?=
 =?utf-8?B?YkNXZHl0U1RidW82VXFkdEhjNGNUa2VISzZla04xWGo4SlZxYUoxRFFrNTJO?=
 =?utf-8?B?b3pUczFGeUI5bnRucDMrcUZyc05FTVF2eENZVWdqd2lYQ284bm1icFdyb3Ft?=
 =?utf-8?B?eFJwczlHUmEyNDQrQzRBMW5SM2ZzVWhSZTdhejRnZGFKQ29PaVhqUHprNTYx?=
 =?utf-8?B?TnpGL0dWZkNyeE9qbjdYYlgxUWFyQnZJNGJxTDV6S0pOUEROYmFIVGk0WUx2?=
 =?utf-8?B?Z1dUL1hJOHYxcStwY0pUSHpMZEIvRUx1QjJndFFOSytHNlN0L2F1b3hSazQr?=
 =?utf-8?B?WjBmQnFkdHFDNG41NGo5YzBGYnFvOGFkcUp2NEVPaEtBcXVIQk1BK1pNWU80?=
 =?utf-8?B?RXExWjZyQklHVnllNU1mUWJtdlJFb3dBVWJXMGt2TXRKV1p3eXpQaiswNWZN?=
 =?utf-8?B?M2ZjWjVMajdYOEtVaWFnTU8wMDdLUmNRalZBWmJJeitCTWlRL0hMUnN0MUlz?=
 =?utf-8?B?SDd2TWppZjk1Vm1JbmN0SDFUVkd3TmVBbEs4bkNLWXlNR0RIL0tYWDJVUnVR?=
 =?utf-8?B?K3NqSmhaWktnYlVtQWtOUXdZRUsvYlVFVUNMY1Z0Q3E1cWpETXJQcDlMS3pW?=
 =?utf-8?B?M3NwZ0tkT2o3YUQraW9SM2pPdWsva21zU0czblZwc2dKL2ludCsxVy9wSklX?=
 =?utf-8?B?eTUxcWFmdENZMmNOc1ZjUzJpa291d3JzQUNLWHROZEtCcU9JTXdubmh2WWV3?=
 =?utf-8?B?eGNvcUswNnZIbGJ0NSs0VHZDdmp3Njl4bXhXVDVKNkthTzhWKzEzUGZRR1FK?=
 =?utf-8?B?V05xWHE2cVdRQ094b2oySDBMdnNwUnQ1Vk5ITlVVZW1MK1dvU3ZXUE5Pa1NX?=
 =?utf-8?B?c1hGSkF0cnNBPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(42112799006)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?ZVRrVGp6ZG5vWUs3Qk9ZTDV5ODdiSy90L0FNTEhIcHp4Ui81eVJUUXN1R3FP?=
 =?utf-8?B?RjJ1THc0UXRvdTk5aHB3NnNtQWcyK1BUa0wxRHdod1cyam4wSzNNOFI1QWpK?=
 =?utf-8?B?MDY1b285enRGU0EwaG1pREdMZFkreVVMRVlFMUd4blNYMmk1d1FKUmEwSWl6?=
 =?utf-8?B?ZnJEbWxYR3RYTWQwejBnSUZpUFlFNFJjT0dLc2tDMk0wakYxdnVtYWJEYncy?=
 =?utf-8?B?STRHdjlUU2FrWm5MaWVBT0lpOUFPeFhvY1dQbG1aOG5HeUJpYURIbVZnZ3lK?=
 =?utf-8?B?ZWYxQm9TbGc0WmVsR0hDK21KVFdoM0E5WW1qNTU1anJGcGFIRHFONDFLLzJW?=
 =?utf-8?B?aThoKzZETEZpN3ZwVGRxTHBYNUVOQjNBempTS3loS0pkb05hQklscjFRWDNP?=
 =?utf-8?B?Q2ZhVVplK1pNMmpFTE95WFRhbmxUb0FSZGdXNzZ3QkY3Z3dvdVVjVjZ2Y1ZR?=
 =?utf-8?B?ZnBXb0pqODZqeFJFQmRKMFQwcCtYTjlJV0dIanl6a2N0RWtqWUY0Z3F4M3VZ?=
 =?utf-8?B?R29kR2JWVFNaRXdES0l3by9FdXNITjZjVnpIRytudmdGQUxkU0F5a1BGeW5C?=
 =?utf-8?B?azUvREVhQWp3ejY0RVNEODhSdlNNNDFLbEF0a3FZajZvMkhXRWNTUWp1cVQy?=
 =?utf-8?B?MDJMblZScURTQUhHYWNXNkdKakZpVkNSMWQrU3JJdFBrVmsrRjhWTkp2NEN4?=
 =?utf-8?B?bEVjRU9EVStrRjNPOTZYRnlEODFTMkxIbWJSMFY5OGtzVFJONHU2S3ZTa2dK?=
 =?utf-8?B?eHMrNWZiYmhWWUV0eVorS1Rwa3k4QnRwaGNFeEFGSU9abHQ1UXFxR1pZTjI2?=
 =?utf-8?B?VWVSakt6Nm5wLzlVU0VPQVpTRnpNTWZPbHZScHMyNFZSaHFqVW1naHlnZyt3?=
 =?utf-8?B?cEd2ZXNlWC9jQm42V0k3a0JoZFJwalFUVUdmbUI5VVlSRTFuY3dVb255a3U4?=
 =?utf-8?B?Q1pOMlMvaEtVRWw3WnVpS1VSUjRSNDczUkljcXRkSFhHYm9rWjJ5SWJPT0c3?=
 =?utf-8?B?T0FCdkgycjE4cC94dTFHRVdnUHMzVWZaVGZXZ3UwRkpKakFRVkxpREpBME1j?=
 =?utf-8?B?U3hsT1FHVXg1aHNQR2pSVWJ6S0R2UkxIckZSc01rZTZkZG9xNGVWM0txbmkz?=
 =?utf-8?B?SlNRMS9IZzBHL0ZSeTZNVzliZTUyemFxelQ2U3RnRnBRVzNnWFR3K09NdjFK?=
 =?utf-8?B?Y2QySXNFbzZIeUNUVmtaYTUycmtURDdtS2lmc0xnVDFqSVBYZlVIMDNtQjdN?=
 =?utf-8?B?S0pzS3RMRXZndDBqYW80TjZmS1RoTmRxaTZkZTYxc2hnQTduUUhuUmljZXVt?=
 =?utf-8?B?ZnM4eFJQc1hNQzZpR09LZHZ4VnhhejNLaFR6eCtFK3I2SnM5TUVSUnM1SWsr?=
 =?utf-8?B?VEtxL0hodzlITEhHUm5PY0Zucm9ucWJKcEdqZG0rQUdBbm8welRZb01VODFW?=
 =?utf-8?B?dk1Geld6TXI1ZjkzQWpoRDJERkxUZi84bmh0U1hUbEt2RlUxdGRKaFh6Q2Vl?=
 =?utf-8?B?RXpEU0RmSnB4OThLT2l4MmpFWmc0RjJuZ3pCcUduaUJaME5Pa05lV2IrZzZa?=
 =?utf-8?B?U2FZay9oM1VEY0lleFFOYUFXSGFiZmZYTEEydlhPLzFCaVJaTVNPeWRNNHdK?=
 =?utf-8?B?WGxLdEJaNy9DQTg1cGczN3RBbk9TMXRqbU9iekZMdW5yRzdJOHJNbmNqaG15?=
 =?utf-8?B?NjRBL05ROE95U2VIak1IY2xkempxL1dXZTVzeCtoOWt4QlJ3UVl4bjlmWE9B?=
 =?utf-8?B?THdGYVFCMkpiT2o1QmorQXQ0bHRYRmtPN1dQaDNib1BidmU0eklrSnVrZ25p?=
 =?utf-8?B?T2tJNy91T25tZXdPRy9YOTNPN2NDR3hIVkJ6WU9ZUHZhNmc5TzArc2szSUpK?=
 =?utf-8?B?dFd4SnU3MnR1TTFSZXlwaHpuR0VHVjhDYnEySDNPOEpGM3ZWMzA0cnF5UXI4?=
 =?utf-8?B?SDJQR0dnTXk3bU1ZQjg5UFdlc0s0VGtFdjVKdzZaMUw1aThSbytHT0dTbmRC?=
 =?utf-8?B?TFYvYXRGZHlCYmZnWHRWK2EvdHZHZmVzRXhkRkNrS3F2N09ZM3p0REF4a0Nj?=
 =?utf-8?B?ZXFvd3lQRUNTRG1aTHEvWVU1RDlQVnNrcXcxc3VscXY1TGVXajdjOUJvQXhV?=
 =?utf-8?B?WGlTc3QyVXkyWGZpeExLK0Fib20xdEhQM2FOL1VRcE0yUEtoUXJESzRVZlMr?=
 =?utf-8?B?WVE9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <F15BDCF20CA28F498A38006198DC67ED@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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 16f35bff-6d49-4db1-835a-08ddda3ccd51
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Aug 2025 07:41:23.1202
 (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: SqpKlpV5hsdq6H7QSolhX4eFQZPfIaZKxp06eyGFjC8GYFqPWev+mbLgpcPS9fbCUxHj/2EenHj8nV/G7EcuLyO5iZXQqxuBQt1YduR8dZg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR03MB10479

DQoNCk9uIDgvOS8yNSAwMDo0MCwgTmljb2xhIFZldHJpbmkgd3JvdGU6DQo+IFRoZSBydWxlIHN0
YXRlczogIkluaXRpYWxpemVyIGxpc3RzIHNoYWxsIG5vdCBjb250YWluIHBlcnNpc3RlbnQgc2lk
ZSBlZmZlY3RzIi4NCj4gVGhlIHNwZWNpZmljIHdheSBpbiB3aGljaCB0aGUgJ21ycycgaW5zdHJ1
Y3Rpb24gaXMgdXNlZCBkb2VzIG5vdCBsZWFkIHRvDQo+IHZpc2libGUgc2lkZSBlZmZlY3RzIGZv
ciB0aGUgc3Vycm91bmRpbmcgY29kZS4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IE5pY29sYSBWZXRy
aW5pIDxuaWNvbGEudmV0cmluaUBidWdzZW5nLmNvbT4NCj4gLS0tDQo+IE5vdCB5ZXQgdGVzdGVk
IG9uIHRoZSBYZW4gRUNMQUlSIHJ1bm5lciwgYXMgdGhlIHN5bnRheCB1c2VkIGluIHRoZSBkZXZp
YXRpb24NCj4gaXMgb25seSBzdXBwb3J0ZWQgYWZ0ZXIgdXBkYXRpbmcgdGhlIHJ1bm5lci4NCj4g
DQo+IFdoYXQgdGhlIHRvb2wgaXMgcmVwb3J0aW5nIGlzIHRoYXQgZHVlIHRvIHRoZSAnPXInIGNv
bnN0cmFpbnQgYW5kIHRoZQ0KPiBzZW1hbnRpY3Mgb2YgdGhlIGluc3RydWN0aW9uLCB0aGVyZSBp
cyB0aGUgc2lkZSBlZmZlY3Qgb2Ygd3JpdGluZyB0byAnX3InLA0KPiBidXQgdGhpcyBpcyBub3Qg
b2JzZXJ2YWJsZSBvdXRzaWRlIHRoZSBzdG10IGV4cHIuIFRoZSBkZXZpYXRpb24gZW5kcyB1cCBi
ZWluZw0KPiBhIGJpdCB0b28gZ2VuZXJhbCBmb3IgbXkgdGFzdGUsIGJ1dCB0aGUgcmVzdHJpY3Rp
b24gb24gdGhlIGFjdHVhbCBpc3RydWN0aW9uDQo+IHNob3VsZCBiZSBlbm91Z2ggdG8gbGltaXQg
YXBwbGljYWJpbGl0eSB0byBjYXNlcyB0aGF0IGFyZSBhcmd1YWJseSBzYWZlIGluDQo+IHByYWN0
aWNlLg0KPiANCj4gQW4gYWx0ZXJuYXRpdmUgYXBwcm9hY2ggd291bGQgYmUgcmVwcmVzZW50ZWQg
Ynkgc3RhdGluZyB0aGF0IHNpZGUgZWZmZWN0cyBpbg0KPiAnUkVBRF9TWVNSRUc2NCcgYXJlIHNh
ZmUsIGJ1dCB0aGlzIGlzIG5vdCB0cnVlIGluIGdlbmVyYWwuDQo+IC0tLQ0KPiAgIGF1dG9tYXRp
b24vZWNsYWlyX2FuYWx5c2lzL0VDTEFJUi9kZXZpYXRpb25zLmVjbCB8IDQgKysrKw0KPiAgIDEg
ZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKykNCj4gDQo+IGRpZmYgLS1naXQgYS9hdXRvbWF0
aW9uL2VjbGFpcl9hbmFseXNpcy9FQ0xBSVIvZGV2aWF0aW9ucy5lY2wgYi9hdXRvbWF0aW9uL2Vj
bGFpcl9hbmFseXNpcy9FQ0xBSVIvZGV2aWF0aW9ucy5lY2wNCj4gaW5kZXggZWMwY2FjNzk3ZTVm
Li42YjQ5MmUzODUwNWQgMTAwNjQ0DQo+IC0tLSBhL2F1dG9tYXRpb24vZWNsYWlyX2FuYWx5c2lz
L0VDTEFJUi9kZXZpYXRpb25zLmVjbA0KPiArKysgYi9hdXRvbWF0aW9uL2VjbGFpcl9hbmFseXNp
cy9FQ0xBSVIvZGV2aWF0aW9ucy5lY2wNCj4gQEAgLTQzNyw2ICs0MzcsMTAgQEAgd3JpdGUgb3Ig
bm90Ig0KPiAgICMgU2VyaWVzIDEzDQo+ICAgIw0KPiAgIA0KPiArLWRvY19iZWdpbj0iQ29uc2lk
ZXIgdGhlIGFzbSBpbnN0cnVjdGlvbiB0byByZWFkIGFuIEFybSBzeXN0ZW0gcmVnaXN0ZXIgdG8g
aGF2ZSBubyBzaWRlIGVmZmVjdHMuIg0KPiArLWFzbV9wcm9wZXJ0aWVzKz17ImFzbShhbnkoKSkm
JmNoaWxkKHRleHQsIGFzdF9maWVsZCh2YWx1ZSxebXJzXFxzKyUwLiokKSkiLCB7bm9fc2lkZV9l
ZmZlY3R9fQ0KPiArLWRvY19lbmQNCj4gKw0KPiAgIC1kb2NfYmVnaW49IkFsbCBkZXZlbG9wZXJz
IGFuZCByZXZpZXdlcnMgY2FuIGJlIHNhZmVseSBhc3N1bWVkIHRvIGJlIHdlbGwgYXdhcmUNCj4g
ICBvZiB0aGUgc2hvcnQtY2lyY3VpdCBldmFsdWF0aW9uIHN0cmF0ZWd5IG9mIHN1Y2ggbG9naWNh
bCBvcGVyYXRvcnMuIg0KPiAgIC1jb25maWc9TUMzQTIuUjEzLjUscmVwb3J0cys9e2Rpc2FwcGxp
ZWQsImFueSgpIn0NCg0KSSB0aGluayBpdCdzIHdvcnRoIHRvIGFkZCBleGFtcGxlIG9mIG1hY3Jv
IGV4cGFuc2lvbiBpbiB0aGUgY29tbWl0IA0KZGVzY3JpcHRpb24gb3IgYXNtX3Byb3BlcnRpZXMg
ZG9jOg0KDQp1aW50NjRfdCBfcjsgYXNtIHZvbGF0aWxlKCJtcnMgICUwLCAiIlRQSURSX0VMMiIg
OiAiPXIiIChfcikpOw0KDQpUaGlzIHVzZXMgdGhlICdtcnMnIGluc3RydWN0aW9uIHRvIHJlYWQg
ZnJvbSB0aGUgVFBJRFJfRUwyIHJlZ2lzdGVyLiANCldoaWxlIHRoaXMgcmVhZCBvcGVyYXRpb24g
YWNjZXNzZXMgYSBzeXN0ZW0gcmVnaXN0ZXIsIHJlYWRpbmcgaXRzZWxmIA0KZG9lc24ndCBjYXVz
ZSBhbnkgcGVyc2lzdGVudCBzaWRlIGVmZmVjdHMsIGFzIG5vIHByb2dyYW0gc3RhdGUgaXMgbW9k
aWZpZWQuDQoNCkRteXRybw==


From xen-devel-bounces@lists.xenproject.org Wed Aug 13 07:46:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 07:46:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079516.1440341 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1um6Bj-00027t-UI; Wed, 13 Aug 2025 07:46:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079516.1440341; Wed, 13 Aug 2025 07: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 1um6Bj-00027m-QE; Wed, 13 Aug 2025 07:46:23 +0000
Received: by outflank-mailman (input) for mailman id 1079516;
 Wed, 13 Aug 2025 07:46:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=cjcv=2Z=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1um6Bi-00027g-2O
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 07:46:22 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 97c14bd7-7819-11f0-b898-0df219b8e170;
 Wed, 13 Aug 2025 09:46:16 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 13B474EE0744;
 Wed, 13 Aug 2025 09: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>
X-Inumbo-ID: 97c14bd7-7819-11f0-b898-0df219b8e170
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=1755071175;
	b=PB4FjyL2BvctdUBAi5Fs7hMp5gyw+vehuK2OFaKjWjp6oDGjBgoIFRsc/uCT7W2+3/YQ
	 ynN7v7pr+9CUJMKb2SqU/tpnHvDK4LA+7iSPbCgSWsYOwjahxYHpNAtFAhhaEKDIqiisM
	 9baqPcDIlV3vS9ursxGEJCcSnD0z4rDYxTESlV2z9Vd+odtgLO6xCOj4eD9inHOVtkvCt
	 7qE7QI3EDOqI2ttulloQifnb9ZsIcd1olsL1sq8MVaHdJ3Q4CF+X7CKpR7swn+UwY0YIj
	 79p7Eq5bMmfcBoz41wMqU6FsNRHSiKg/xMFxYc7hQ4WDAdu5dJ2CRnUSZXCfyN2IJUtCW
	 k5V5SZUkKvdqXjc6aPUV+tj07vx4biFidIOd9Tc4sux/IxTXKm92i3SVrn4+jDYSVD+u7
	 C46Cfa1cc75/xntixrVKG96P5RuJcw8hlA7+JELczVK19GROsXDvWrTUHO4757cMCRIRb
	 wyivRe7GxUb7hWTVfQo6hl+znHTDTPcam/BcPQT7WoFo7fZcJSPDOY3JCeRcHD4SnPBcN
	 O8IDgfIKKE+dCBf0cvtD6cEfXST0lBMeIBXJd8LtJkxBHfUlatHgzFcQCd3e3eK49tUBS
	 GIxqv425j9xM8cmQcacvjhShv0u5eS1HHJ+PlkHE58w1O0pImEfF9fmwzhcZ2x0=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1755071175;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=IceH9jgvg1rkJ87zGn2cVPQEpoJupWnjhBOLrNTzKqw=;
	b=G5j0naUYSpwRcqwGDz23NhlCGbUe5d9be1+GnKVfkF2N3K15jm+NJ9V85YZRcRf+ZInd
	 +QY4KEaW4Ou2lETo3s8D+hAjJGvYt1FpPBJikwdvwct+Y9inRiSAM5CUltWhIPRKv23cN
	 frCRPSm+oUYt4DjzAnwj7H7NCJy5mLqjhsu+S/B6LKUB5ivOVAQLFSGxbADx8zNF2ZdK+
	 /TjXec7KPJxIYcmv8Mzy6rlmLmdcn9kcAWX+SrC2FnytxXlrKvgtJsSLhWSgqLC79dNK3
	 8lkJ0rqhDEO1YESQFGCspgCUp5iV2G/RWZvRDkpDqO6DpXCcSE2tidbiM7k4wDPV3PPz/
	 uFA5lDzXA3TX8zIfRa8a35gnpKtwtn9FSN5c0bZZccpLc8Q5iHGgOXK90uc9LJujMuZx2
	 xck7mUwnwtYyqgUjXlk2yXC8dm5hLma8DPxkuUEs97laugVdvxGXBk1PYKSsSC/L9pR5P
	 hEd6lFTuxynkWgpLZF9/vQZLRNYPU+am0d9OdRyfjWBCRY9/ym73t3D2Aum0+weum3DoD
	 Y793Y3QZdfasMnjwSGLPnbAjmrDeWexXIhCi/DviehmUtmuAvSDHYxhBio6Hf1pkHiSOI
	 MLEBJk4l4rCCBtOtfDq6psbzXdv/vKT6ppSGCZGd6UMczL4oRydVDBSCZ1VxW38=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1755071175; bh=H0QQ2jdFitqrTWXhDvTUohsAVGxwwk0VpCL5L7mrAgU=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=eSRGEegw6Ed0JenfJq/rDs4z10JM36ZwBksIS+OhA1UWLnCMmRid304CILoYCRdUx
	 yXbe99X3BAlohtxXOMtnNbzlP/0rhmMgpVukPjxvoa0H7WGLtJYHPIpQ1B0x8ucrh9
	 lxF9lFUYvJd/7lQdS2mfhTfDNy84GJZKMxP2vTVLr/GoR+3eKqeYCpd9NQb5SGiDWc
	 smXBrQ0oZLxKNMwRVtJYVJ/UCmi1KzVOFAWHyBqkQHXSqSNu+h5Ag1SaXl2RfI1rTu
	 WI1s/W7AJTYdr1eQKQvWXHLkFoDysq4DFQFxlMJVxYwUNUUkyXnH5TVNOQx7o5U2r1
	 6u5cqzgsyAY9w==
MIME-Version: 1.0
Date: Wed, 13 Aug 2025 09:46:15 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: xen-devel@lists.xenproject.org, sstabellini@kernel.org,
 consulting@bugseng.com, andrew.cooper3@citrix.com, jbeulich@suse.com, Doug
 Goldstein <cardoe@cardoe.com>
Subject: Re: [XEN PATCH 2/2] Address violation of MISRA C Rule 13.1 involving
 asm side effects.
In-Reply-To: <175d7b47-32bb-4b5d-a16b-7402bd823b15@epam.com>
References: <1283be3b76d76814af244bbca544f6a3b74a04de.1754689062.git.nicola.vetrini@bugseng.com>
 <c4da2554d94c3f7bd4b1e460dcaa27db382ece2f.1754689062.git.nicola.vetrini@bugseng.com>
 <175d7b47-32bb-4b5d-a16b-7402bd823b15@epam.com>
Message-ID: <c03ea3bcf950d6fb0d04d0f67790d03f@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

On 2025-08-13 09:41, Dmytro Prokopchuk1 wrote:
> On 8/9/25 00:40, Nicola Vetrini wrote:
>> The rule states: "Initializer lists shall not contain persistent side 
>> effects".
>> The specific way in which the 'mrs' instruction is used does not lead 
>> to
>> visible side effects for the surrounding code.
>> 
>> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
>> ---
>> Not yet tested on the Xen ECLAIR runner, as the syntax used in the 
>> deviation
>> is only supported after updating the runner.
>> 
>> What the tool is reporting is that due to the '=r' constraint and the
>> semantics of the instruction, there is the side effect of writing to 
>> '_r',
>> but this is not observable outside the stmt expr. The deviation ends 
>> up being
>> a bit too general for my taste, but the restriction on the actual 
>> istruction
>> should be enough to limit applicability to cases that are arguably 
>> safe in
>> practice.
>> 
>> An alternative approach would be represented by stating that side 
>> effects in
>> 'READ_SYSREG64' are safe, but this is not true in general.
>> ---
>>   automation/eclair_analysis/ECLAIR/deviations.ecl | 4 ++++
>>   1 file changed, 4 insertions(+)
>> 
>> diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl 
>> b/automation/eclair_analysis/ECLAIR/deviations.ecl
>> index ec0cac797e5f..6b492e38505d 100644
>> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
>> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
>> @@ -437,6 +437,10 @@ write or not"
>>   # Series 13
>>   #
>> 
>> +-doc_begin="Consider the asm instruction to read an Arm system 
>> register to have no side effects."
>> +-asm_properties+={"asm(any())&&child(text, 
>> ast_field(value,^mrs\\s+%0.*$))", {no_side_effect}}
>> +-doc_end
>> +
>>   -doc_begin="All developers and reviewers can be safely assumed to be 
>> well aware
>>   of the short-circuit evaluation strategy of such logical operators."
>>   -config=MC3A2.R13.5,reports+={disapplied,"any()"}
> 
> I think it's worth to add example of macro expansion in the commit
> description or asm_properties doc:
> 
> uint64_t _r; asm volatile("mrs  %0, ""TPIDR_EL2" : "=r" (_r));
> 
> This uses the 'mrs' instruction to read from the TPIDR_EL2 register.
> While this read operation accesses a system register, reading itself
> doesn't cause any persistent side effects, as no program state is 
> modified.
> 

Definitely not in the -doc_begin, perhaps in deviations.rst, though in 
reality it is a single case this currently applies to. Reading the 
register is not the reason why this deviation was requested, but the 
write with the "=r" constraint on "_r", as that is the side effect the 
tool is pointing at.

-- 
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 Aug 13 09:02:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 09:02:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079599.1440355 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1um7NZ-0003xT-ER; Wed, 13 Aug 2025 09:02:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079599.1440355; Wed, 13 Aug 2025 09:02:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1um7NZ-0003xK-9G; Wed, 13 Aug 2025 09:02:41 +0000
Received: by outflank-mailman (input) for mailman id 1079599;
 Wed, 13 Aug 2025 09:02:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2/kn=2Z=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1um7NY-0003xD-3W
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 09:02:40 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3f6990ba-7824-11f0-b898-0df219b8e170;
 Wed, 13 Aug 2025 11:02:32 +0200 (CEST)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-459d7726ee6so33299365e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 13 Aug 2025 02:02:32 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3b79c3ac036sm46749052f8f.15.2025.08.13.02.02.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Aug 2025 02:02: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>
X-Inumbo-ID: 3f6990ba-7824-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755075752; x=1755680552; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=txaAUTRoBhONYmC+af7jlHgfLxTRbTLT/LQBaQCG6Dk=;
        b=Va7fSjFoWJwj9ISGbzf7VrLH++x/XMiis3RKUSjgV+OOWdqgaDjQSLTtue+FOtCh71
         /aPvY0lqYhTRyJfgjh1BdizlUn8cHJeQm+tKdxpXZf7eL69yjE+r0pvXKmcPa9/so0iz
         gHcmZCZlkCKEWAcdo0A7lbqC7AeNSfQZnLN4Y=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755075752; x=1755680552;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=txaAUTRoBhONYmC+af7jlHgfLxTRbTLT/LQBaQCG6Dk=;
        b=A7FcyevT/cxjG0MPQTKNp4I5fTneGdEKZ8AtrP1bb3uQXZwAqMEaZx/7L+luPpKuv/
         Prh3ItaZGqYVsfN8jUHGMgDNmaKGgFKu8m3cp+gzofyxdzAgjESLZzbQiApBIg7u9Qxw
         iCXIZ+4RH7I/hWiq/oR8V/cEPMSuATtXRPIqAjdjxRhIKl2Gosbj6chPYWPAoqEWj6ta
         CduIRzPCBTltWzGV0PHfE+jK2BX7cqLDidLwbb9nntZjBj7dzy+xP/IZT88bvoPYkmeS
         YUcOROS7TUAGbRbeqF+hWjRQiKuyYQxM9xkRtvDgCclzb0krVK6EsfAkYYFvGuLSYHXC
         hQAg==
X-Forwarded-Encrypted: i=1; AJvYcCWWiu2mbRaPHuJQ42EqVbMx68/QS2/7c1OCv3LY3L8lgsKmfzaJeVycRWZi7PRJ+g9L33SuOwktLKc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzPturjERPyVGYtvTeeQOlUwyaHRBaBG7mBuP2ELK9jFJAE4gat
	NVI76pfX4iYFIKcsj/Ya8i1+iEHXcEUIz7oaV0SglX+opy1RzBuauOJx2OJIVWWNqrw=
X-Gm-Gg: ASbGnctpn7nLGHw6V2xWQeDnUrIfbDD0xxmfNIlobfxPN7RVqHKdyZSlXWG3IbYHgal
	anMWFEjDyPImz33+21dgjFdI2/WBiBshC9wQ5PPwdA+jNWItm0OC4KcCzSaHoUcvjiaTGNIgWJP
	iGJ0hX5VKadzjmreT0Y1+AQBIZhGe3wp0BXtKPqtYjbZSeBKfpoIkkNOsJ+gk95Bxwb7Y+yM9Hj
	tkjA20utAeJ31e0J0yywsnVDbKpkTjNIAvZiiyT9BDQc/I2in+4H4z5BqGBo5h9nnY8hPpCM4Nd
	GeF186vyPczVDWRtedVjA1lZJ69H2wb/ou64phk9MqrJEb5xakqAvuhhbn33HsLBUI7nz//ILVy
	ZI/lJcDH1AOsE269hTXVtsVCkwoJSmYY4jsT0//i2AASODkpUonouc8YzzOCdfaCjtko5
X-Google-Smtp-Source: AGHT+IGL5YBlnQvLblYTbhWS4gs5bS1IP5wdMEnKuzlbTDvoG6YiWanLVZzU0YR+5H57O4Kzd5PGfw==
X-Received: by 2002:a05:600c:1f06:b0:459:df07:6da4 with SMTP id 5b1f17b1804b1-45a174eebecmr12294035e9.5.1755075752086;
        Wed, 13 Aug 2025 02:02:32 -0700 (PDT)
Message-ID: <700c5b2b-3cdb-4ea5-a22a-e06f41931e7b@citrix.com>
Date: Wed, 13 Aug 2025 10:02:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 01/22] x86/msr: Rename MSR_INTERRUPT_SSP_TABLE to MSR_ISST
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-2-andrew.cooper3@citrix.com>
 <9f13d1c5-8f92-4a73-8a67-f4b44b72fa50@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: <9f13d1c5-8f92-4a73-8a67-f4b44b72fa50@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12/08/2025 9:06 am, Jan Beulich wrote:
> On 08.08.2025 22:22, Andrew Cooper wrote:
>> The name AMD chose is rather more concise.
>>
>> No functional change.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> I'm okay with the (much) shorter name, so:
> Acked-by: Jan Beulich <jbeulich@suse.com>

Thanks.

>
> But I can't make the connection to AMD: It's INTERRUPT_SST_TABLE (figure)
> or INTERRUPT_SSP_TABLE (text) there, afaics. And ISST_ADDR in yet further
> places.

ISST has a better association with IST than the long form, which is
ambiguous if turned into an initialism.Â  The ADDR suffix I dropped like
we do elsewhere.

But now you point it out, there is a confusing mix in AMD.Â  I'm pretty
sure SST is a plain typo, and I've fed this back.

I'll tweak the wording a little bit.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Aug 13 09:32:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 09:32:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079615.1440365 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1um7qW-0007pG-Nv; Wed, 13 Aug 2025 09:32:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079615.1440365; Wed, 13 Aug 2025 09:32:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1um7qW-0007p9-LL; Wed, 13 Aug 2025 09:32:36 +0000
Received: by outflank-mailman (input) for mailman id 1079615;
 Wed, 13 Aug 2025 09:32:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1zV9=2Z=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1um7qV-0007p3-Uf
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 09:32:35 +0000
Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com
 [2a00:1450:4864:20::429])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 715ce206-7828-11f0-a328-13f23c93f187;
 Wed, 13 Aug 2025 11:32:34 +0200 (CEST)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-3b788feab29so3942309f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 13 Aug 2025 02:32:34 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3b8e04c7407sm37690379f8f.13.2025.08.13.02.32.33
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Aug 2025 02:32: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>
X-Inumbo-ID: 715ce206-7828-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755077554; x=1755682354; 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=JtshJLMpICbhxQNlJ/WlonBTVc5noVJermwW+FakGTM=;
        b=vqri4SxbZmfymEbx1Mt0Bh0fK+mstAs8/mYodpNQ412JYAZ+sH7zSlYsTPZ2B/lzmG
         4WGbeqUCPOi49iK8I1hcuiQsjqaTRJ1O2EIEdWQbwU8rQ0fG5UHaXu2ceNy/C9Q1dsxY
         st1QGJ4UXTAN+S+wsgovbnnT3dUkf6RuAhKHc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755077554; x=1755682354;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=JtshJLMpICbhxQNlJ/WlonBTVc5noVJermwW+FakGTM=;
        b=EYhkZKpxBOJefTwwsr8+3hkn6uhAO6eRjzFSVxZdbzxVNcyhIfK1h5Irruudmfb896
         1cLpVk7IbjB/1cdm6EBfG4bkI44GtKPAVAFAbkDN8LRxQNseGSi5Yw7cfNIFIIyiYgMI
         5trYtU5PvPrr57453lFXcOBPTyVKRqlYAMY3NRorXxUVdQ79HkQQpvMjjibcUYlUhVbH
         Qc017RXbL4voR06i9XKY+Xcq3HpNRiU/CfQIoCC43DwvwUUiGLkkFxh+fI30FcvKJOZp
         4uaMCVowhnOmaY2feCAtJexXdMOV+pBZ3gCBeXlmYkOmuRMDietJ962q17O7oYaO3e5T
         lLWA==
X-Gm-Message-State: AOJu0YxlxMfhB36WIgtO+64QeMIc2GEGmxZb1tUiNBKUNv4uk988lEm0
	vBycN6VvZjvteUgiRDDJV+Fs4+EYnjNanI6cNuAs0pdmk0cmjepsjRPPVtmZ+DMerpt4E3qSIQz
	HpLGW
X-Gm-Gg: ASbGnculCgG9DU5OsDaea8Kd9zQS58dw/fe4fEzkJeACgQeEpdpkZ33IfnlUseHS4Ny
	nIyNxPAKWugKse1fmjpfxCMoIVIdUq1/Go1P3yBY0Yq0DF3VVbEV3BM1C/Go4cvfu5tRHcteTqk
	ibD7PoiaEseU/PHJuhvhjWDubQ02OGh7yB7D1Xat8ePNetWj7P8cpcXP2UK9MhTqmFYny2wj/5x
	+9+rCp+6++8vkOEeidKcGD9ZeB+Ngjv+1gQue2ONZATETa80Htu2+aqHeHbZmvMYCiFik0bKnq+
	WcamMBH0dGxDbe11kZfZ8BdkJKU0uUHqAs8D2sr5OoxG9X6rGExX6tPqbn6THh4aaGCaL09wT2N
	l0l9wwMCWtnHu4r72Num04F6E/AR26uVthi4gLhh01HIPsNHrLPMU07JWIyvvOEDT9+pQ9H7S7y
	Uj
X-Google-Smtp-Source: AGHT+IGLx4DW9GFH2ffUQoXsoGQ6FN+XzYi2GV/5Gen40tno0Ma4YgFMJ5ooM2TPrxRsr3bXEHW8GA==
X-Received: by 2002:a05:6000:238a:b0:3b9:53c:24a4 with SMTP id ffacd0b85a97d-3b917eb4a14mr1717892f8f.39.1755077553630;
        Wed, 13 Aug 2025 02:32:33 -0700 (PDT)
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>
Subject: [PATCH] x86/pvh: update "Host ACPI" support status
Date: Wed, 13 Aug 2025 11:32:20 +0200
Message-ID: <20250813093220.76030-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.49.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

For x86 PVH dom0 makes uses of the host ACPI tables, and hence the status
of Host ACPI entry should have been updated to reflect that PVH dom0 is now
supported, and Host ACPI support is not one of the caveats.

Fixes: ea1cb444c28c ('x86/pvh: declare PVH dom0 supported with caveats')
Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 SUPPORT.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/SUPPORT.md b/SUPPORT.md
index 6a82a9218991..109b62835f99 100644
--- a/SUPPORT.md
+++ b/SUPPORT.md
@@ -70,7 +70,7 @@ For the Cortex A77 r0p0 - r1p0, see Errata 1508412.
 
 ### Host ACPI (via Domain 0)
 
-    Status, x86 PV: Supported
+    Status, x86: Supported
     Status, ARM: Experimental
 
 ### Host EFI Boot
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Wed Aug 13 09:41:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 09:41:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079625.1440374 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1um7yk-0000zi-HD; Wed, 13 Aug 2025 09:41:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079625.1440374; Wed, 13 Aug 2025 09: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 1um7yk-0000zb-EX; Wed, 13 Aug 2025 09:41:06 +0000
Received: by outflank-mailman (input) for mailman id 1079625;
 Wed, 13 Aug 2025 09:41:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2/kn=2Z=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1um7yj-0000zV-Ap
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 09:41:05 +0000
Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com
 [2a00:1450:4864:20::435])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9fcb3476-7829-11f0-b898-0df219b8e170;
 Wed, 13 Aug 2025 11:41:02 +0200 (CEST)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-3b79bdc9a7dso3883584f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 13 Aug 2025 02:41:02 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45a16dcbcb1sm23487255e9.3.2025.08.13.02.41.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Aug 2025 02:41: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>
X-Inumbo-ID: 9fcb3476-7829-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755078061; x=1755682861; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=LyMttfbIfSkmJZ4bdctvO14YzF/b6vAYyqPpIlYP50Q=;
        b=LJzsmw7N77xQPrn8Jw0CXHKsY6SrD/oUfLQYRY8uadkFnSL+TziJR6oId8fbQQ3kN5
         bitAo3eBsoX3hYBBtilYvAaTzShodUdAtxwaN/HjMClf7+0AsLkiua0tNjgQERTu8YUb
         uXN362rakCzSwQa64cxcKfnyppjrKJew5q+pw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755078061; x=1755682861;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=LyMttfbIfSkmJZ4bdctvO14YzF/b6vAYyqPpIlYP50Q=;
        b=uBwUSd+/UB5lS1imSHz10a+8Ek0o4GXPPHDS+BXUDUONwe+WOVAEljJfI02+okl3Bt
         Ghc0W7PD2msQovBQITPvMoN/kadYQ9sTrU71bymSjDuNPwlquuioTmqpnKzKAZ+EX9hD
         5myNCpG30cwqdkI/TiWyQP8IQXyR0ijLpPCTHqhFwHhRJWIwGp3/MSpOeNpsGOmjC2BB
         ls1f0sLb5CFhPNSQGD/4yUWuaNavH6fQwSxpaZi5K2dPevDyAui1THADolgBcBJmgB7u
         MeXrDpUQL1PiFcvsXDTu7oRZ4rvGKmkiGVLmEecf0t/HXM0ViWXKS9p/3BbBsq4CZV6H
         hUyQ==
X-Forwarded-Encrypted: i=1; AJvYcCXTAPjDylk0q547cy46E2sqZOjPmffqj/QoXF/wWDKOY/mVDgukJnK9rslmcqZ8J+POBJ78MLteWO0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yww5Vb+gXRUCPPRWuR/3yn/BacP+nL1xMN4VAuaDB1LbNax7BC7
	vZuPm3VXPBlcTH/7yd5eh3zLSAkzN2rl4oInPOVJRJUVt2dCSsBE/zB0ZJC8CLJlLxs=
X-Gm-Gg: ASbGncuV7gWYoj6sj/+XJmK61y0QO2ymmUhT6Jnpe4JmYPZ0iDaUWITB8aESHX1IHtp
	9ir6VgLsd+it1ESoAhwn8+tfTmIxGD/qYw5lPoWuowCtHoVl6xL9R+W96JMw1hCPbWgv+WvBP8q
	0E5ZE1owQtJI9jWQPOzDvnJ3wqITlq5WSPXdrwWc9yJNTnn3jm8NlRX68ML0PgrUrHtRBgd73Ke
	TiCc6SL/whggNGQKTOcYy0HdkEmUBwSPwBLIcMMpX7fcm4hhmCCKj2Q80oIEyUpUSh/x/xxr9ns
	WeLRcYz7RZXyJI6GbhEwzSwYwbl2wEUdoepVHn9ynhSsWdfSUC7+8xEZQ1xYVxwOYTtjUNPUup3
	79sg5bKkv99MdVflTNCL19V/32Saf/r7x/jK1/Mxqe4xlGnSCXKU8lVrH0s1ABlDUP3eBoO37uP
	EhROE=
X-Google-Smtp-Source: AGHT+IGQP8AyLuVmtkw2Ng955SDd6hwkDpfbhr+W45kUnOgc2gMQJmsUpTrU4Di0ymH3yFqe6iNBCg==
X-Received: by 2002:a5d:5848:0:b0:3b8:d1d9:70ba with SMTP id ffacd0b85a97d-3b917ef76famr1704748f8f.32.1755078061235;
        Wed, 13 Aug 2025 02:41:01 -0700 (PDT)
Message-ID: <5aadadb9-65e2-4f30-bac5-a2b3a2f4a29e@citrix.com>
Date: Wed, 13 Aug 2025 10:40:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 03/22] x86/traps: Drop incorrect BUILD_BUG_ON() and
 comment in load_system_tables()
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-4-andrew.cooper3@citrix.com>
 <f8cfb9c0-f505-452d-b18e-801beea69d1d@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: <f8cfb9c0-f505-452d-b18e-801beea69d1d@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12/08/2025 9:11 am, Jan Beulich wrote:
> On 08.08.2025 22:22, Andrew Cooper wrote:
>> This was added erroneously by me.
>>
>> Hardware task switching does demand a TSS of at least 0x67 bytes, but that's
>> not relevant in 64bit, and not relevant for Xen since commit
>> 5d1181a5ea5e ("xen: Remove x86_32 build target.") in 2012.
>>
>> We already load a 0-length TSS in early_traps_init() demonstrating that it's
>> possible.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> ---
>> CC: Jan Beulich <JBeulich@suse.com>
>> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
>> ---
>>  xen/arch/x86/cpu/common.c | 2 --
>>  1 file changed, 2 deletions(-)
>>
>> diff --git a/xen/arch/x86/cpu/common.c b/xen/arch/x86/cpu/common.c
>> index f6ec5c9df522..cdc41248d4e9 100644
>> --- a/xen/arch/x86/cpu/common.c
>> +++ b/xen/arch/x86/cpu/common.c
>> @@ -936,8 +936,6 @@ void load_system_tables(void)
>>  		wrmsrl(MSR_ISST, (unsigned long)ist_ssp);
>>  	}
>>  
>> -	BUILD_BUG_ON(sizeof(*tss) <= 0x67); /* Mandated by the architecture. */
>> -
>>  	_set_tssldt_desc(gdt + TSS_ENTRY, (unsigned long)tss,
>>  			 sizeof(*tss) - 1, SYS_DESC_tss_avail);
>>  	if ( IS_ENABLED(CONFIG_PV32) )
> Well, the comment is wrong. Whether the BUILD_BUG_ON() itself is also wrong
> depends on our intentions with the structure. Don't we need it to be that
> size for everything (incl I/O bitmap) to work correctly elsewhere?

We don't use the IO bitmap.Â  We've talked about it a few times, but
never got it sorted.

Xen's TSS could be as short as 0x37 (covering IST3) and still work
correctly and safely (as there's no task switching).

A failure to read tss->iopb is the same as a failure to read the bitmap
itself.Â  In fact, it's probably marginally faster for users of
IOBMP_INVALID_OFFSET as it fails one step earlier.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Aug 13 09:44:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 09:44:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079635.1440385 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1um81q-0001Y7-Uw; Wed, 13 Aug 2025 09:44:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079635.1440385; Wed, 13 Aug 2025 09: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 1um81q-0001Y0-S8; Wed, 13 Aug 2025 09:44:18 +0000
Received: by outflank-mailman (input) for mailman id 1079635;
 Wed, 13 Aug 2025 09:44:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gOuC=2Z=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1um81p-0001Xs-2o
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 09:44:17 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 11032fcf-782a-11f0-b898-0df219b8e170;
 Wed, 13 Aug 2025 11:44:12 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by AS8PR03MB8805.eurprd03.prod.outlook.com (2603:10a6:20b:53e::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.15; Wed, 13 Aug
 2025 09:44:08 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9031.014; Wed, 13 Aug 2025
 09:44:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 11032fcf-782a-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=cgXK8dIcT30lUMEQTA5RWNBPy8EOqOj+ErWGxPadqxdP78gQ3dCSt4pRUXXCgR+UY153HU9TwSSoUb2M6bvgUYfJfTU2RCLVbv2GhZm0mAbGoXP7cAxNnsDEETHunMSO6vsnj+dF/Qrk6e1DvGaOkQ352wA4f5ewULgVx/Bygdv2/Z0gbwq18WaNn+dPn+o9p1k7pzMYClJZy1KRxvdjORUscRN0yp3vTyTqALvUejEpdgKJJBFCbu2EAikqR5jlDq5urVrxyjicph7P+e5YgmoA5k2Sy3KJeEledWkuL50YKgQPRf0KHrfAaW4S2eEfpa+25H//1P6ieN0XooHphA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Nlm47EtQuFAD7qCZ5Xyeyfx5Ro4LCAj2vS7viQWl120=;
 b=Qfyihqb6dFukUHuElvIxIeXSQiZvfeMaJnbSlutSFWnKfUutKgIsdzNWgHC/7MKF8n9CDguxwknn+ckbbNETI7Ar4sEV3D5hY4ELxczpGjPmiOL3J3QtDK35sucVXzRe3l+UkB316ysyaIU1l0J5ssY2Q96t9Xlo4xHDaMG81BkVSk6c7Zj6KQ2YcBRAi4HX0q7eHURf2m70SicsSXZWapWjrd2Eo1LHTO+M8wGp9L1SUfA5XrIUiqe0hntP9qrMbRS0gVUcyfPL+1WyZd0a5uGhkYoINToPvc70a8sph0xEo+U1wLJtm2AvkiU8vGOBpHSROBPRAyjf8j2IKM7MzQ==
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=Nlm47EtQuFAD7qCZ5Xyeyfx5Ro4LCAj2vS7viQWl120=;
 b=J2NrMvzWTQ24iWFzX1dBMft0z1OSWNKp8TXEQaN1P9Oe3U3MM9LdPEJfaqwJQAOA8Ls6MV3cBrkShNhs2PKBlTzr4F52pcP+isyIfH+ePsdhNAYSqf84y/M/1Y/eyywivKqUU5vt9aCqtetNISqrKrp/R0Q4I5Re4uuuHZ7SJmy5C2s2nGSArb56i1tFD/vLI3AAS+O3orM8rSft27jQj42wShuUPROXpwV3m81pT3aMGsJ1My7vz1RsWhkPQIePfkI06mptw1IwluSUj8iPH3DB0JoLfXB87GDyamDwn2tmyMYlNYvgDN1OOLto7nM9L/hRFawYFuL4r0UMwn6mug==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Julien Grall <julien@xen.org>, Jan Beulich <jbeulich@suse.com>, Nicola
 Vetrini <nicola.vetrini@bugseng.com>
CC: 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>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] misra: add ASSERT_UNREACHABLE() in default clauses
Thread-Topic: [PATCH] misra: add ASSERT_UNREACHABLE() in default clauses
Thread-Index: AQHcCv7M4bE5kwDncUeSEAS4rjYqyLRd9fOAgACqo4CAAQGdgIAAtW4A
Date: Wed, 13 Aug 2025 09:44:07 +0000
Message-ID: <535b7f57-8955-42bf-bac7-790500a157f6@epam.com>
References:
 <7cd71ed21383c189fedb3250ddde54a593f7f98b.1754944131.git.dmytro_prokopchuk1@epam.com>
 <59396fd1-ca82-4655-9dcf-ec36e0d51ffc@xen.org>
 <aba2627f-b38d-4d6c-9c5e-4bdc4f5b563f@suse.com>
 <24d8591e-f669-4142-a783-c7cfea87034c@xen.org>
In-Reply-To: <24d8591e-f669-4142-a783-c7cfea87034c@xen.org>
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: GV2PR03MB9572:EE_|AS8PR03MB8805:EE_
x-ms-office365-filtering-correlation-id: 704e5225-72d8-49d6-49d8-08ddda4df2ec
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|42112799006|376014|7416014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?S0E1N1Zvck5GSExTNzErUU5WRDV0UzdQb25hc3VmL29LSjhLS0hLb0tFNFAx?=
 =?utf-8?B?VEZNb2VpODJMQU5yNlZGQUpjQlhFNlJZMGNMMlBnbXA4S2creDRVV3RWUXVH?=
 =?utf-8?B?dUlQaWczamZrVFdpWDV2djFyT1JTSW5RK3BNUmoxekV0TlhUN1pOcGR1YmhU?=
 =?utf-8?B?UUpZNm04TE1XTThXdXBtbVQ4VGZFUEgzNDU3TlE0SER2SC9wS2dBSHN6RWtU?=
 =?utf-8?B?ZDVwa1NZdnZQaDJDS1FFanIvUklyMFhZMkJuajJ3OFRsRzNIakdiL09mN3dS?=
 =?utf-8?B?T0ZQdFhIUEx4aG5QcVJGQUsyZjRhMVNENzlwNEJWdVRITnZzR2N5dTNUdU9h?=
 =?utf-8?B?MEZpV1FpQ0l1ZWxHSm4vdUgwSU4xNmdNOHROWDYzbkE3WGk2aFhGQlcrclV6?=
 =?utf-8?B?TnJCWXlSdTdDUEIreXBLMWxTc3pCa01UUWlObzN4Qml0NmZsTW42SmRqMDFz?=
 =?utf-8?B?SFdjZkxRV0JlcnpOSEJwKzVKQUVwKzhXWm91RGNBT25FUmlCT2ttWHczL2pX?=
 =?utf-8?B?TVAxMTFUVFV1VEhKRTNMcHRQb1pJZmxWeFJGbENYcVRKNTZIREZlajZZZXJq?=
 =?utf-8?B?S3FvYjI0VW9UKzRXdXhnakZYSjdzN3MzaHRQdUdjWTBHLzFzR2VVZXdFcFhv?=
 =?utf-8?B?RU1yVFFMenFBTHUzWE5QTmtVcnIzdjFGeVJldk1TaFB1WUNDcXlialpveFRz?=
 =?utf-8?B?Rk9IWVpMT1JJcnY1Rk90bmQzbDNibGRlZm9FdGtJY3NxZkIxbzBBTjI2RSt5?=
 =?utf-8?B?VTNXVXRxbDhsc3JwZTUvOXNmK2t2MTRvVUtEb3BTSUM2T1dVYVVwM1cxUlZ2?=
 =?utf-8?B?YS8zK0FsU1RqOVZWQnpFL1JJRWpvRldDL0RNQ3NsTUdRVDdCb3R3Q3BQSW1j?=
 =?utf-8?B?VW1QbitnUVNGOU5lSS9EajNZbkRVa0dqTEhGZ2lQUkRWM3hkWnlTQythWld0?=
 =?utf-8?B?RzlaVDhiRjQ2Z1pwdTJ2My9aa05YQkRWS1Z4a3VvODdCSXNkS25VdldOQVo1?=
 =?utf-8?B?NVpVVUJETTlpamdWR0cya042M1pURnlLS0xNUWtDeEJuZkI1aW1hSDNobG9h?=
 =?utf-8?B?blR5QS9wTVlDWVNGMVZkNG1JNytxN21NNWxTL25nVG5qQnFVNDNNd3IxK2ht?=
 =?utf-8?B?cXhBTWtLTlA0UExxSFhFQkJuWHpxdklrYWJKTXhWblFzeHBDYUMvTjdPR0Rl?=
 =?utf-8?B?RkZzNzRqWC9EQmdBdjVzNndLcXc3eXpENmU3Sm9SdUlpUUwzamYzU2ZmYTRi?=
 =?utf-8?B?dWtib1A3T3QvYU1mUzJ2Zms3c3Z4dURndDZocjJlOTQvU2M3WkE3alhXWkFN?=
 =?utf-8?B?ZnVJRFpwVDNQbFpTYWpjZzFBcUNLc1Bjc2tmODBHTEExalZBUUR2WEhxbHhz?=
 =?utf-8?B?bjNjN29OVWtvdFJ2Vjd2V3BaV0lpRXBEdEM2WUxocEdYZmsrRXdPTjZhYzRG?=
 =?utf-8?B?VWtJSUxxTFk1Q05XRUVIWXJlRXpJSUJBSGt3TVVXdHJhaWxVN1JncG9BOXph?=
 =?utf-8?B?allHTnM0NHRKUWl4VDNmZGhDUUFGcDdDMG9BWEFIUFFZd3g5Uko2Y1gyN2ll?=
 =?utf-8?B?dThDMkFCeGZPVnhTeHdKaEYvQlpWanB5cG51dHcxTFhZU0pnZFM4RngrVHlt?=
 =?utf-8?B?U090U2VmNmNTQitYc0ViVTFqVWZtYW5rSWJJZGZGWFZsNjM3MElYSUZ0YnZ0?=
 =?utf-8?B?cVoyZWZobllKc0hmVjBqSXV5ZnpMdmZWQVQwNVo2N2ZBbXVsZzBuWDFkQm9o?=
 =?utf-8?B?bEZGMTAxOEFIbXRKRjliclZjWFBUSDNQNElRT2hDYnpXNmQ4ckxsY1I3cW92?=
 =?utf-8?B?L1pBdlFUazROM2RuZnVBMi8xZWZrTk9UQVNJRTJCak1tOUJEMkh5RktPdjNS?=
 =?utf-8?B?ZnpXRG9QVlJRaUNtS1lzdkNzai8yV1FMd1c4L1IyRXNPdGlXdlVQWUxpSG1L?=
 =?utf-8?B?YTFJclkxWGRFMEhSWGV3SHRiV3pWK24zMm1ueGJxemNpWCt0aGNTdFU0V0Vv?=
 =?utf-8?B?ZjRDaFpiSHFRPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(42112799006)(376014)(7416014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?eWR0ZHpZQWFDbGpKNENadDdoV3RVTjEyNGkyOHVBU3ZnYjV3QWtodWJjOGVY?=
 =?utf-8?B?LzRROTd1K1I5NFpMaFNTZ1Y1NkszbExuVnpqWEp6SUExMUFjNU9WaVZrVkUr?=
 =?utf-8?B?Zk9JcVY0YnhEVUV5aVNHMUFJWmExSGlIZ1E0YXEzNjdJOTV3TTFFZ3hQKzZZ?=
 =?utf-8?B?SjFpTjBoWi9nbnMrV3h0RUh1TFB2eSsyNnRWR1pnem9uNlBhYndZNzZEVDZh?=
 =?utf-8?B?K2VYeW1PYTk0MTlFNkt0Z2ExRnR1SlUzYjN2WXI3SVh2Q0FmeEI5RzVjM09F?=
 =?utf-8?B?dE9jNmkzT1hYTDNuOFVKekpQcFBKYTcwWkpDVHZ5NlRGWFNYcjhiemxUK3pK?=
 =?utf-8?B?SVp5VURNZlZ0SS9wSEwxblZ5RGlFSmFYSGlWNlVEVWxZcU1pbmNPd3hLaUJl?=
 =?utf-8?B?RzJZVWc4Z3VSd21LTHBPWXZhdUR0alkzSFBPNkI1M05mVE9lZjJWNHZaRXJy?=
 =?utf-8?B?ZHBCUHB1c05hS3dxM1llZk9OR1FZd3RLY1FFa1UwTUtmaVA4cHg5SjhFU2J0?=
 =?utf-8?B?ZzNHYVVDYWZNZi9VQ3NsUGJKMlNSbENZbWlrT2VlSTBIaG5RUVRNb1E0eWkr?=
 =?utf-8?B?NS9CbExtQUFWdDZlMkxSMUhoc2xtNURnUUV0OURGSXZDT2FodW1WT0xlS2VB?=
 =?utf-8?B?blp6Q3diaXZIb3ZYakJQdkxHWEh0YjAzcUNGSmlOa3Z5WkM0Y0VMdVFlclRG?=
 =?utf-8?B?ZVFmeXFMN3pRM3ZLeEFQSXVtZUpXQk5lS0Y1UFdOVHNmenRpeENrNzlGQzgz?=
 =?utf-8?B?V2FUc3k3RGdheFJHOHBwWTBhK1duMkZPS1M1ZnRYcjdZRFRKZGlSMzNYdEM3?=
 =?utf-8?B?WHVCWHhrbW9WWGJxV1JNSmNZbFowS09vbWFPSzNHbGVERlFkZlhEZ1FVZytM?=
 =?utf-8?B?L05ERUtWL080S3M3ajVjaDRDNjAzZEQ1NWRzU1laL09iSWx1N0RMc3dNY01M?=
 =?utf-8?B?a01SMnFianhxRFFDWDNZSTl0OXF1RGhNbjlhaDJMazZMRk96STE3bnNucCtI?=
 =?utf-8?B?ekI3b3pyaVNlWDFPKzFLRmI2S1NPNXhiWTZMOEZDNDBaWHB1ZlJycWlpUG1V?=
 =?utf-8?B?WGJWWmFPNWl1eENzbVRxSzdQWEt5YUN3NUNpNWJpMzJlNWVWWHpvRUlhNCtU?=
 =?utf-8?B?M0dvVW1aT0RvNG1qZEdFeENIUzFacFRNdEozcThkYVExSEdoeHFRV3BZSDJH?=
 =?utf-8?B?YklLQ1ZqYWE1cFgyMldsMHVsKzFJUENvcDVFS0VKbSsvRXI0NnpkQkY1Zys1?=
 =?utf-8?B?b0lmOTVPWWQrVkl3c1pURHN4UXJiQ0ZYLzJld0p3cDR6UFpwK242WUFVR0s1?=
 =?utf-8?B?K2VvQiswTUhHa0JmeDY4NUUrUEpLRW9Bbm83a2w3K3p6NWJXaTZHUXNDd2d2?=
 =?utf-8?B?enpPWVRaWE5zQXY1cXlPa29uOGQ1RCtzRWhTaFpNYTRJZlNqeS9UcnhRMVZV?=
 =?utf-8?B?QkdyY01td1ljRmc4c2NnRzFScmZRd0QzQkRWb2NLdHVaNGlFWnd6anBxZHpU?=
 =?utf-8?B?Y1o3NW1rNmo5L0c0MFd3TXp6ZUE1NWF2OXRONG82eTVvT1ovQkFsaktjODZk?=
 =?utf-8?B?NStURk1leEx2bjlHYzNWSWpEMjJiTUJoVjgvUDRVZzVCUWtKWHo2L20yS0pG?=
 =?utf-8?B?SlJiWEl2ZXZaSWVoQnRMWUU4cHZ0ZldRUmJEYnozNjFnS2YxYXJuOFBWK3Vy?=
 =?utf-8?B?S0hyUm1hNmNSMG02aXlwYkYxZm5OWDBINWhYR1l2Y0VzYWxRRUlST3hoQ2p4?=
 =?utf-8?B?ZWdhUDFSQ3RoQWFBR1Z2TURDOG1sT0pzSVpSNnZwODRDYklkOXgveE8xdGxL?=
 =?utf-8?B?U1JQdE12aFZ0azRHMlNhSHM4VjdmYUtsWkUzVWZpY2F6L0JDV0NLWXVlaG9r?=
 =?utf-8?B?bXNoUXBmc09uOUxsMjhWcU1SeUd4anF2UDBYVjVoZ1ZyK01wdWJYS0hsTlRR?=
 =?utf-8?B?UmUxMHZqeXZtdlpDcGcwRSsySWtWWGFaS2lUWk9Fc2JoeHZWeVB2dFZyWjJZ?=
 =?utf-8?B?RzZwRFJYcVRqOXpLVXQ5aHNUYU9hU3NkWWZPQkhjMzYxR3RRa1J1dlpsN2Nn?=
 =?utf-8?B?T0hYWnNIKzlRTEFDam1IZWU4TmVVN1dxT3VraGpDMDZxUy9Memt3MnlUNnEw?=
 =?utf-8?B?ZEV6TG5VOEZPN0ZaZmcyaG1CbENseVU0Y2xYNG85N09sL283YUd5S09LTDdl?=
 =?utf-8?B?TEE9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <C594363837A8C841B0948662DDFD3D0D@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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 704e5225-72d8-49d6-49d8-08ddda4df2ec
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Aug 2025 09:44:07.9135
 (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: +AxRCNnTsNFLtxsnmPIXtHVo9fs+5Lc+lQLRykV/mcsb0gBdLv1F6AFI073t6QTI/Jzs9VEfvsDgCnJp0+KmQ5VvzHKJVp/B1Kk2jYTaVo4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB8805

DQoNCk9uIDgvMTMvMjUgMDE6NTQsIEp1bGllbiBHcmFsbCB3cm90ZToNCj4gSGkgSmFuLA0KPiAN
Cj4gT24gMTIvMDgvMjAyNSAwODozMiwgSmFuIEJldWxpY2ggd3JvdGU6DQo+PiBPbiAxMS4wOC4y
MDI1IDIzOjIxLCBKdWxpZW4gR3JhbGwgd3JvdGU6DQo+Pj4gT24gMTEvMDgvMjAyNSAyMTozMCwg
RG15dHJvIFByb2tvcGNodWsxIHdyb3RlOg0KPj4+PiAtLS0gYS94ZW4vY29tbW9uL2dyYW50X3Rh
YmxlLmMNCj4+Pj4gKysrIGIveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jDQo+Pj4+IEBAIC0zMzAs
OSArMzMwLDEyIEBAIHNoYXJlZF9lbnRyeV9oZWFkZXIoc3RydWN0IGdyYW50X3RhYmxlICp0LCAN
Cj4+Pj4gZ3JhbnRfcmVmX3QgcmVmKQ0KPj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvKiBSZXR1
cm5lZCB2YWx1ZXMgc2hvdWxkIGJlIGluZGVwZW5kZW50IG9mIHNwZWN1bGF0aXZlIA0KPj4+PiBl
eGVjdXRpb24gKi8NCj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqAgYmxvY2tfc3BlY3VsYXRpb24o
KTsNCj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuICZzaGFyZWRfZW50cnlfdjIodCwg
cmVmKS5oZHI7DQo+Pj4+ICsNCj4+Pj4gK8KgwqDCoCBkZWZhdWx0Og0KPj4+PiArwqDCoMKgwqDC
oMKgwqAgQVNTRVJUX1VOUkVBQ0hBQkxFKCk7DQo+Pj4+ICvCoMKgwqDCoMKgwqDCoCBicmVhazsN
Cj4+Pj4gwqDCoMKgwqDCoMKgIH0NCj4+Pj4gLcKgwqDCoCBBU1NFUlRfVU5SRUFDSEFCTEUoKTsN
Cj4+PiDCoCA+wqDCoMKgwqDCoMKgIGJsb2NrX3NwZWN1bGF0aW9uKCk7Pg0KPj4+PiDCoMKgwqDC
oMKgwqAgcmV0dXJuIE5VTEw7DQo+Pj4NCj4+PiBJIGtub3cgeW91IGFyZSB0cnlpbmcgdG8gYXBw
bHkgdGhlIE1JU1JBIHJ1bGUuIEJ1dCB0aGlzIGlzIG9kZCB0aGF0IHlvdQ0KPj4+IG1vdmUgdGhl
IEFTU0VSVF9VTlJFQUNIQUJMRSgpIGJ1dCB0aGVuIGNvZGUgYWZ0ZXIgaXMgc3RpbGwgb25seQ0K
Pj4+IHJlYWNoYWJsZSBmcm9tIHRoZSBkZWZhdWx0LiBJbiBmYWN0LCB0aGlzIGlzIGludHJvZHVj
aW5nIGEgcmlzayBpZg0KPj4+IHNvbWVvbmUgZGVjaWRlcyB0byBhZGQgYSBuZXcgY2FzZSBidXQg
dGhlbiBmb3Jnb3QgdG8gcmV0dXJuIGEgdmFsdWUuDQo+Pj4NCj4+PiBCeSBtb3ZpbmcgdGhlIHR3
byBvdGhlciBsaW5lcywgdGhlIGNvbXBpbGVyIHNob3VsZCBiZSBhYmxlIHRvIHRocm93IGFuDQo+
Pj4gZXJyb3IgaWYgeW91IGZvcmdvdCBhIHJldHVybi4NCj4+DQo+PiBJIHRoaW5rIHdlIGRpZCBk
aXNjdXNzIHRoaXMgcGF0dGVybiBpbiB0aGUgcGFzdC4gV2hpbGUgbW92aW5nIA0KPj4gZXZlcnl0
aGluZyB1cA0KPj4gdG8gdGhlICJyZXR1cm4iIGludG8gdGhlIGRlZmF1bHQ6IGhhbmRsaW5nIHdp
bGwgcGxlYXNlIEVjbGFpciAvIE1pc3JhLCANCj4+IHdlJ2xsDQo+PiB0aGVuIGVuZCB1cCB3aXRo
IG5vIHJldHVybiBzdGF0ZW1lbnQgYXQgdGhlIGVuZCBvZiBhIG5vbi12b2lkIGZ1bmN0aW9uLg0K
Pj4gQmV5b25kIGJlaW5nIGdvb2QgcHJhY3RpY2UgKGltbykgdG8gaGF2ZSBzdWNoIGEgIm1haW4i
IHJldHVybiBzdGF0ZW1lbnQsDQo+PiB0aGF0J3MgYWN0dWFsbHkgYW5vdGhlciBydWxlLCBqdXN0
IG9uZSB3ZSBhcHBhcmVudGx5IGRpZG4ndCBhY2NlcHQgDQo+PiAoMTUuNSkuDQo+IA0KPiBSZWFk
aW5nIDE1LjUsIHRoaXMgc2VlbXMgdG8gYmUgYWJvdXQgaGF2aW5nIGEgc2luZ2xlIHJldHVybiBp
biB0aGUgDQo+IGZ1bmN0aW9uLiBVbmxlc3MgSSBtaXN1bmRlcnN0b29kIHNvbWV0aGluZywgdGhp
cyBpcyBkaWZmZXJlbnQgZnJvbSB3aGF0IA0KPiB5b3Ugc3VnZ2VzdC4NCj4gDQo+IEFueXdheSwg
bXkgbWFpbiBwcm9ibGVtIHdpdGggdGhpcyBjaGFuZ2UgaXMgdGhhdCBBU1NFUlRfVU5SRUFDSEFC
TEUoKSBpcyANCj4gbW92ZWQuIEkgY291bGQgcG9zc2libHkgc2V0dGxlIHdpdGg6DQo+IA0KPiBk
ZWZhdWx0Og0KPiAgwqAgYnJlYWs7DQo+IH0NCj4gDQo+IEFTU0VSVF9VTlJFQUNIQUJMRSgpOw0K
PiAuLi4NCj4gDQo+IEJ1dCBhdCBsZWFzdCB0byBtZSwgdGhpcyBwYXR0ZXJuIGlzIG1vcmUgZGlm
ZmljdWx0IHRvIHJlYWQgYmVjYXVzZSBJIA0KPiBoYXZlIHRvIGxvb2sgdGhyb3VnaCB0aGUgc3dp
dGNoIHRvIHVuZGVyc3RhbmQgdGhlIHBhdGNoIGlzIG9ubHkgbWVhbnQgb3QgDQo+IGJlIHVzZWQg
YnkgdGhlICJkZWZhdWx0IiBjYXNlLg0KPiANCj4gQ2hlZXJzLA0KPiANCg0KSGkgYWxsIQ0KDQpM
ZXQncyBzdW1tYXJpemUgdGhlIGRpc2N1c3Npb24uDQoNCjEuIFRoZXJlIGFyZSB0d28gY2FzZXMs
IHdoZXJlICBgc3dpdGNoJyBzdGF0ZW1lbnQgaGFzIGEgY29udHJvbGxpbmcgDQp2YWx1ZSB0aGF0
IGlzIGNvbXBsZXRlbHkgY292ZXJlZCBieSBpdHMgbGFiZWxlZCBzdGF0ZW1lbnRzLg0KSGVyZToN
CiAgICAgc3dpdGNoICggb3BCICYgMHgzICkNCkFuZCBoZXJlOg0KICAgICBzd2l0Y2ggKCBwdGUu
d2Fsay5kdCApDQoNCk9yaWdpbmFsbHkgaXQgdmlvbGF0ZXMgcnVsZSAxNi40ICJgc3dpdGNoJyBz
dGF0ZW1lbnQgaGFzIG5vIGBkZWZhdWx0JyANCmxhYmVscyIuDQoNCldlbGwsIGFkZGluZyBlbXB0
eQ0KICAgICBkZWZhdWx0OiBicmVhazsNCmlzIG5vdCBhIHNvbHV0aW9uLCBiZWNhdXNlIGl0IHN0
YXJ0cyB0byB2aW9sYXRlIHJ1bGUgMi4xICJgYnJlYWsnIA0Kc3RhdGVtZW50IGlzIHVucmVhY2hh
YmxlIi4NCg0KQWRkaW5nDQogICAgIGRlZmF1bHQ6IEFTU0VSVF9VTlJFQUNIQUJMRSgpOyBicmVh
azsNCmxvb2tzIGZpbmUgZnJvbSBFY2xhaXIgcG9pbnQgb2YgdmlldywgYnV0IGFjdHVhbGx5IGBk
ZWZhdWx0JyBjYXNlIGlzIA0Kc3RpbGwgdW5yZWFjaGFibGUuDQoNCkkgdGhpbmsgdGhlIGVhc2ll
c3Qgd2F5IGlzIHRvIGluc2VydCBTQUYteHggbWFya2VyIGluc3RlYWQgb2YgdGhlIA0KYGRlZmF1
bHQnIGNhc2UuDQoNCkNoYW5naW5nIHRoZXNlIHRvIGVudW1zIC0gbm90IGZpbmUgYXMgZm9yIG1l
Lg0KDQpNYXliZSB0aGVyZSBpcyBhIHdheSB0byBjb25maWd1cmUgRWNsYWlyIHRvIGlnbm9yZSB0
aGUgcnVsZSAxNi40IGluIHN1Y2ggDQpjYXNlcy4NCk1heWJlIE5pY29sYSBjYW4gc3VnZ2VzdCBz
b21ldGhpbmcuLi4NCg0KDQoyLiBSZWdhcmRpbmcgbW92aW5nIEFTU0VSVF9VTlJFQUNIQUJMRSgp
OyBpbnNpZGUgYGRlZmF1bHQnIGNhc2UuDQpBY3R1YWxseSBzd2l0Y2ggY2hlY2sgR3JhbnR0YWJs
ZSB2ZXJzaW9uLg0KICAgICBzd2l0Y2ggKCBndC0+Z3RfdmVyc2lvbiApDQoNCkFuZCBpdCBtdXN0
IGJlICcxJyBvciAnMicuIE90aGVyIHZhbHVlcyBhcmUgd3JvbmcuDQpJIHRoaW5rIGBkZWZhdWx0
JyBjYXNlIHNob3VsZCBiZSB3aXRoIGFzc2VydDoNCg0KICAgICAgZGVmYXVsdDoNCiAgICAgICAg
ICBBU1NFUlQoZmFsc2UpOw0KICAgICAgICAgIHJldHVybjsNCg0KVGhpcyBjYW4gY2F0Y2ggd3Jv
bmcgJ2d0X3ZlcnNpb24nIHZhbHVlcy4NCg0KRG15dHJvLg==


From xen-devel-bounces@lists.xenproject.org Wed Aug 13 09:48:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 09:48:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079659.1440395 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1um85X-0002CZ-Iq; Wed, 13 Aug 2025 09:48:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079659.1440395; Wed, 13 Aug 2025 09: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 1um85X-0002CS-Fm; Wed, 13 Aug 2025 09:48:07 +0000
Received: by outflank-mailman (input) for mailman id 1079659;
 Wed, 13 Aug 2025 09:48:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2/kn=2Z=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1um85W-0002CK-8Z
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 09:48:06 +0000
Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com
 [2a00:1450:4864:20::430])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9b6b2945-782a-11f0-b898-0df219b8e170;
 Wed, 13 Aug 2025 11:48:04 +0200 (CEST)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-3b914186705so899621f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 13 Aug 2025 02:48:04 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3b91b05b28fsm756500f8f.21.2025.08.13.02.48.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Aug 2025 02:48: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>
X-Inumbo-ID: 9b6b2945-782a-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755078483; x=1755683283; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=BZhUXmvGsweVxDlUvIIfYw41CEU7F3yCXCsBPcp9wmc=;
        b=HFePHmbbQ+2faky0GqCyjMC7BVk5hG1eaSwH0gFsk9mu1P67TOcnOFPq2II564PAV3
         L4KhZ0gYysAk7EU29RPhIJAyZlVP84tz+jmLhQvPFnNI4zrlNNtG5dP35EJbQkctU9ry
         4BjBJTcHoOXe5SFthoRTXUW5guNH1+rZCCLX4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755078483; x=1755683283;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BZhUXmvGsweVxDlUvIIfYw41CEU7F3yCXCsBPcp9wmc=;
        b=dV3SMlYoLOTk9L51HebcUusgjilenfOKjIFmRN4EWs2BpM61S+l1hNiFweC9jODWOg
         7IjP9/+Wl0bcufvub3XUa+vMXIb3evlpct2mXeA5/9J0uDqnJl1rXpeWiI9ZrQpW356x
         GydwEvQ5sjyEj1vtJjVJMRtgqkQRgL716uS23ybyKWnld+RXDspXGRIfsqS9LWGybx1s
         jJI17FpNYls3Qmu4aFxtuxkjuNZ78mm9nGgf671ZzSrFOwq6ZiTdYLcG4NkcrH4wPFqC
         kDUZTmZJWe0DIAzqcGfLtoy+LlXWJpgIdC+ISw2bh4kIqht+XFj5/sE0WVyJTToDcG+1
         DSGg==
X-Forwarded-Encrypted: i=1; AJvYcCX+qIZJW9eHZFe8OAdTOD8oHhWEZT5wrLd32N+1X+4HogkXtTLeMinoDcCybJ5phcC46n+/CVfqqK0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwHALxhIo1jgveIwuaGcr9zK/A0qd6Cet54B+2nK+GM2uW/zEG2
	OA+Bq7aQrjG/n1bOpt1ria7/h8XXsTtXkESxtxGrn5vUmms3iHq1KUg7vRrRyiIFFL0=
X-Gm-Gg: ASbGncsHr9tjps1/R1F636DD3t+NuDKLrE8Ri77V1WAR89/DWK+ESCMk/7g7juu+A21
	IEytOm9AqdONZ+wihuj3IJq3pysJjxaENmkpm1K+TAwdCTeSTiMWVxa+LDCd7L6e+hdXsQlI4Av
	AROFzDlLWLooLuo+KVDFyUCcVoTPweV4BrPXK7OXLj5IcFFKKTNrdIJwXXO1sJpdpyErNZlLT0g
	vQD/cSLGYbyJFsM/wLHPX+KcrNHZLx2s6RaYcNniTyr+1rxFdL9NcFK1R9SASZFafoGZcdS/aW+
	4zUsiTjiiUeLDGuSFbC8QEOQkTHfpU00NhGnh79AhrWKk/4M4YzsE7gUxzPAPkf1UPipuBuhQ7b
	ANf2f+7xaGF+YCyBXuB/YT35mngxZDBoGDTN5zDPH40uHt2ZW3xqf8bODgpEp+NS3KevG
X-Google-Smtp-Source: AGHT+IEJrI3WRcgzKKf/ZQPdS/InPscCtmR5EQbFmKDe5ovJN02yXZSP/gSeImRflHt38z5wWP1FPA==
X-Received: by 2002:a5d:5f48:0:b0:3b7:9bfe:4f64 with SMTP id ffacd0b85a97d-3b917edd0cfmr1719437f8f.54.1755078483413;
        Wed, 13 Aug 2025 02:48:03 -0700 (PDT)
Message-ID: <45afcbee-63f3-489d-8f68-ca962646ef7c@citrix.com>
Date: Wed, 13 Aug 2025 10:48:02 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 04/22] x86/idt: Minor improvements to
 _update_gate_addr_lower()
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-5-andrew.cooper3@citrix.com>
 <44c9a7ba-8e01-41cc-8c93-32b022885439@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: <44c9a7ba-8e01-41cc-8c93-32b022885439@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12/08/2025 9:16 am, Jan Beulich wrote:
> On 08.08.2025 22:22, Andrew Cooper wrote:
>> After some experimentation, using .a/.b makes far better logic than using the
>> named fields, as both Clang and GCC spill idte to the stack when named fields
>> are used.
>>
>> GCC seems to do something very daft for the addr1 field.  It takes addr,
>> shifts it by 32, then ANDs with 0xffff0000000000000UL, which requires
>> manifesting a MOVABS.
>>
>> Clang follows the C, whereby it ANDs with $imm32, then shifts, avoiding the
>> MOVABS entirely.
>>
>> No functional change.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>

Thanks.

> albeit I have to admit that I'm not quite happy about ...
>
>> --- a/xen/arch/x86/include/asm/idt.h
>> +++ b/xen/arch/x86/include/asm/idt.h
>> @@ -92,15 +92,16 @@ static inline void _set_gate_lower(idt_entry_t *gate, unsigned long type,
>>   * Update the lower half handler of an IDT entry, without changing any other
>>   * configuration.
>>   */
>> -static inline void _update_gate_addr_lower(idt_entry_t *gate, void *addr)
>> +static inline void _update_gate_addr_lower(idt_entry_t *gate, void *_addr)
>>  {
>> +    unsigned long addr = (unsigned long)_addr;
>> +    unsigned int addr1 = addr & 0xffff0000U; /* GCC force better codegen. */
>>      idt_entry_t idte;
>> -    idte.a = gate->a;
>>  
>> -    idte.b = ((unsigned long)(addr) >> 32);
>> -    idte.a &= 0x0000FFFFFFFF0000ULL;
>> -    idte.a |= (((unsigned long)(addr) & 0xFFFF0000UL) << 32) |
>> -        ((unsigned long)(addr) & 0xFFFFUL);
>> +    idte.b = addr >> 32;
>> +    idte.a = gate->a & 0x0000ffffffff0000UL;
>> +    idte.a |= (unsigned long)addr1 << 32;
> ... the cast here. Yet perhaps gcc still generates a MOVABS when you make
> addr1 unsigned long?

Correct.Â  Forcing the mask operation to be 32bit is the only way I found
of avoiding the MOVABS.

>
> As to the comment next to the variable declaration: Could I talk you into
> adding a colon after "GCC"? Without one, the comment reads somewhat
> ambiguously to me.

Ok.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Aug 13 09:51:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 09:51:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079670.1440406 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1um88u-0003uB-1e; Wed, 13 Aug 2025 09:51:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079670.1440406; Wed, 13 Aug 2025 09:51: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 1um88t-0003u4-Tp; Wed, 13 Aug 2025 09:51:35 +0000
Received: by outflank-mailman (input) for mailman id 1079670;
 Wed, 13 Aug 2025 09:51:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2/kn=2Z=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1um88t-0003tx-FX
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 09:51:35 +0000
Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com
 [2a00:1450:4864:20::435])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 18e1f663-782b-11f0-a328-13f23c93f187;
 Wed, 13 Aug 2025 11:51:34 +0200 (CEST)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-3b7920354f9so5233320f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 13 Aug 2025 02:51:34 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3b8ff860acbsm20832848f8f.51.2025.08.13.02.51.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Aug 2025 02:51: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>
X-Inumbo-ID: 18e1f663-782b-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755078694; x=1755683494; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=xFG3vTUDInh9ieqBupVGYeCWmF3b48h+n/mO8Sli3E0=;
        b=SggZJFj2qHhcdGTWr5vAiJAiXaHtNEYBm2Tj7mx7Q+6sjPrZb33exj8HgJx7lD68n8
         l/FC1soXlKSUCXprvbMldtCvS4k6x5D54OoVdSekTjoyDbYnZxghVpn9qCbXe+94kPE0
         quFpCscCwv+cHKxPRvdbe9Re8IIiUj+J+Uxkw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755078694; x=1755683494;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xFG3vTUDInh9ieqBupVGYeCWmF3b48h+n/mO8Sli3E0=;
        b=l1WDJA31RsmYshl5loVolpsOknXJ8V7yhx3htR93JSfjPbohayRehpBnvkf/KiEavQ
         Ie52NK3cj47Fl/Z7SgVdT3w9Aoo9kiwbcw7svO/KoL6MKMuqUCG/ZVYu6mUPoR0hv9IM
         ks5HNgdseAwA6x39qGhq3LpwzOr0JoiqJ4ZryCSeGPuhlM7t0yAQY9hKen7U+BgRMe8E
         zgcKnR5SdfCXLAh34Vq0u17PkhcdI9ozrl4dAb6GiF8LSyPRnYlBmJYygsRpBIu71+HY
         Cec5mBRaTjIh2zNNn/MZgVmwl6b+ErnEam5zQPEgIZgu2Y7lLt23spNqITdvc+8d13Wx
         bR6Q==
X-Forwarded-Encrypted: i=1; AJvYcCWxhtzwyWF9uMsY3+HEkDVDcPRA/3NB82MnxDrigtrhwuNpS177tAxBd5lR+ADC+jYcicgxy7wtd6E=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzJ2ExyOzmQf/ddOv8caG9g8POd2c47fwkJH3TFz5cNrZTJj/MP
	q+qLBn/trELqHmvdxnyENc0MNbq+Q5EpkHxASYs1w6OiJ6x29sKz9e08XzYEMxdCwRUco5F4QRg
	1J6i9
X-Gm-Gg: ASbGncu93Kg8p0fQ9X1pZEwTrSdhtzoiS7nbJoJu3x3KecBlB7tQOmmLSWht/AU71pX
	JPzEAPTp8DC7wclYUIbTlJ6WIXikZxdmC29jIZW3a1Sc2pbGj1XPvg8omyd0BIdq4haVV9hRuyz
	inmDIynZe6kwBkh2j/QH8dlZJUkzOJI7PucWfcVUJchpE54AipknaYQxDiAmX1Sg3/qGXSjQ2I6
	CfaBuzNx+tGvxttjGqjgSUV0nLK3X6JjJf95TK602ozjPlKc5+G4r1KZ4ctMhphQgppmis8rDne
	olKcmZnGB2aAY8qLmhpIb1uYKB5pHiRvvsfkU4hGIY0TOpoeACpX96BfmPlNkgFIAJEGYJru8++
	1AnLW2/19HBDr/u95Vu86Nhw+4qcsRS9UQ2Bvl8csGYXUfKCwhXxwgkYTcw2UJMKQhVz1
X-Google-Smtp-Source: AGHT+IHtr2PfgeaGfQTMFwVOzif+qDr+A1fch54yJqsOk/Pi8/6J9ZpewUT1PWrcNH+RPkSC2yYkUA==
X-Received: by 2002:a05:6000:200b:b0:3b7:8146:4642 with SMTP id ffacd0b85a97d-3b917e38070mr1807531f8f.20.1755078693984;
        Wed, 13 Aug 2025 02:51:33 -0700 (PDT)
Message-ID: <5c875675-d26e-4a34-9118-844778c4574d@citrix.com>
Date: Wed, 13 Aug 2025 10:51:32 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 06/22] x86/traps: Introduce bsp_traps_reinit()
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-7-andrew.cooper3@citrix.com>
 <59f267a5-ca5f-4708-8538-e2c7d5fc0c3b@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: <59f267a5-ca5f-4708-8538-e2c7d5fc0c3b@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12/08/2025 9:19 am, Jan Beulich wrote:
> On 08.08.2025 22:22, Andrew Cooper wrote:
>> ... to abstract away updating the refereces to the old BSP stack.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> If it helps later:
> Acked-by: Jan Beulich <jbeulich@suse.com>
> with ..
>
>> --- a/xen/arch/x86/traps-setup.c
>> +++ b/xen/arch/x86/traps-setup.c
>> @@ -107,6 +107,15 @@ void __init traps_init(void)
>>      percpu_traps_init();
>>  }
>>  
>> +/*
>> + * Re-initialise all state referencing the early-boot stack.
>> + */
>> +void bsp_traps_reinit(void)
> ... __init added here.

Oops, yes.Â  Fixed.Â  Thanks.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Aug 13 10:05:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 10:05:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079693.1440420 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1um8M4-0005qD-6g; Wed, 13 Aug 2025 10:05:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079693.1440420; Wed, 13 Aug 2025 10:05:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1um8M4-0005q6-1T; Wed, 13 Aug 2025 10:05:12 +0000
Received: by outflank-mailman (input) for mailman id 1079693;
 Wed, 13 Aug 2025 10:05:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1pw7=2Z=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1um8M2-0005pg-PP
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 10:05:10 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fc90451f-782c-11f0-b898-0df219b8e170;
 Wed, 13 Aug 2025 12:05:06 +0200 (CEST)
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com (2603:10a6:102:ea::23)
 by GV1PR03MB10519.eurprd03.prod.outlook.com (2603:10a6:150:162::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.13; Wed, 13 Aug
 2025 10:05:00 +0000
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f]) by PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f%6]) with mapi id 15.20.9009.018; Wed, 13 Aug 2025
 10:05:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fc90451f-782c-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=C/f1wrCunYSi9hEmbrVqL6x+yr68nkJiAa28wkHCbZh4v1WHJOiT8R7Zo8Bn2I4XLhRYkmt4+qxn0rOdqOC+CiOy6mGchjsiEBpCH9E6aFnMzTQ5MiyHmL9qcyfeK1zw2Vt59aL0206CJ2FQ6Cf1mo49BtldljTnfkhtSMWmomcOgzghaDAE4SYEwS9wQ+hYYn53MLS1LQf/ZeJTMHE7766pY0Qi36+KWdZ0LZXG7wtMDrYfuUTtCFpKSX/hcTKJ0/yAOvBoiuj8hhaoXCV82TsIAjI3yfgrox+2DK4B17/bQPc8a3O89m2yoiXttpuBjGxNY1qTw3Z3sL31Ow2qLA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8tBlqXZx0U7sf4hcYNtpSiCENvKVuXui+HqEWO8CTxI=;
 b=MVpS3pL7Egrsb+b/j40H/VA8+7ZhEnKeNmq/9yonRO1FS/To5+7aGQKidJANWHV414UdzA/DPjlVuvvxnqvgpnCtpyvC96JOQmWBLyIrzNULw3FXGKqQ43xgiCUxezzWZdiTXEGjqHjpeOWeiJApI2NqeJOB4fT8khE2c5oP9oJMtJjLa0X8eJRdVN/P95NO37VJFWC9kk8ivMQ7JWKp2eO/5OE+sjfHMSVHaNjyRYpI9U8pYL3fW4Uh2DMFaLZABXjAHJKOJmrga3CCdBogzpq5MKKB1ZBuehS4VCg8n4wDAQPErKtlnvsUtRmedC26HNRqGFY0cq11tXadVCE+PA==
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=8tBlqXZx0U7sf4hcYNtpSiCENvKVuXui+HqEWO8CTxI=;
 b=eg04rsXevstnK/YueAjwo+2zbUCCGK/lu+kxLh+I9slS1WPVqMwPtlkqbzc146cp5xa6oH08jgWnOybK3I9HjkePGaQBFceozfPGnNOlsHfJvDh8XH5z/c6p1jt6SROEIF3d9r1lQXodJ5y1bvcKOlhPnBezMyN8M1OAtIPu14GuqzBtV8stZsV6BoLLtjcXHkT5Th4xkbd5qowRi1FX6MLvROwh+ajt4Ya9kBHwaWNY0wBRKPlnaYcKP6K5Zw3ECA8xn21UvOyLfil2ScSQyBXaDR/0fn/26kyzdzNAfno2ZJjSRFzsK7UgsB5h3CIVhy0kg5OjEJD8d9LLSep2Nw==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <12ba4388-ee23-4e17-910f-9702271865ad@epam.com>
Date: Wed, 13 Aug 2025 12:04:57 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 00/20] Add SMMUv3 Stage 1 Support for XEN guests
To: Julien Grall <julien.grall.oss@gmail.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 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>, Anthony PERARD <anthony.perard@vates.tech>,
 Nick Rosbrook <enr0n@ubuntu.com>, George Dunlap <gwd@xenproject.org>,
 Juergen Gross <jgross@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
References: <cover.1754580687.git.milan_djokic@epam.com>
 <CAJ=z9a1eM6M+Gagond9TiFtF7c7EEQKOKHANcvDWDhW_3JzqOA@mail.gmail.com>
Content-Language: en-US
From: Milan Djokic <milan_djokic@epam.com>
In-Reply-To: <CAJ=z9a1eM6M+Gagond9TiFtF7c7EEQKOKHANcvDWDhW_3JzqOA@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: VI1PR09CA0159.eurprd09.prod.outlook.com
 (2603:10a6:800:120::13) To PA4PR03MB7136.eurprd03.prod.outlook.com
 (2603:10a6:102:ea::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: PA4PR03MB7136:EE_|GV1PR03MB10519:EE_
X-MS-Office365-Filtering-Correlation-Id: cef162df-f2ed-41f1-f322-08ddda50dd54
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|1800799024|376014|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?eU1JY3hMZkszaG90RjAwK3UweVhxU04xZHlrRUJBZzBvbkJXWGRWaWNubHJz?=
 =?utf-8?B?VVJzU1JPT2RUKy9pdkZ4TS9OeVlTQVQzZXZMdXlJMTdseFlveFB5emNScWhD?=
 =?utf-8?B?Q25SK1c0dUtOeVpkNXlVaHUyQzAzOSt5YS9hOEVkOEdPTkZ4WXBrQWFSN0wz?=
 =?utf-8?B?UnRmSEN6QUJSREx5ZXljQjZJNUtJb1B6MnByMU1MdFN1WllMMGVhejlVSFhH?=
 =?utf-8?B?WWhZM2JFek9SSGVvclJoRmwxaGl0RGpIZU9KV1NUVUgxWTZOYlpWd0h2cnhV?=
 =?utf-8?B?WXFlNktieGpWNFlXUDRXWTBrTkZZU0lOM3RpUlhoL05scXA1MWY0ZGV3V0JK?=
 =?utf-8?B?UkZKa0FQN0wvN2hUUGwzMDZyWUNMRmtERHpSTUNVbHovcDF3ckZFS1dHWW5u?=
 =?utf-8?B?cWZmeXVHbW1LZWYzaUYzcnhoZVhuRnZlM1BaZ20vTkJWVExGdE1yalFCYTd1?=
 =?utf-8?B?eDNidEphclZ2Z0VacWIwNThDS0pnWElVQmVUU0hGbCtzK0hKWktES3RUKytD?=
 =?utf-8?B?cHlwV1Vsd0hBQ2R0Zk9sUWQwZEppUDlMQnBNUHJlbVBRTEQ4MzlZNWlRdFZa?=
 =?utf-8?B?S0JzT1ZmaitMTTFRU2hnc3ZnbW8rZ1cvczh6em41cXZqZXFFUFlQNlBHaFJ3?=
 =?utf-8?B?U3V6c25LT1lXaFVZbjd6SjEwNnZBcXZqaDR1d21nTTd2STVma3ZmbEhDNWJI?=
 =?utf-8?B?a3NSTHB6anJaY0QwZVgzK0tLVmhTaEtCTTc5a0k1VUtBNkxrSXBvdFlUNG9H?=
 =?utf-8?B?T1hDOUtHVlo5VkJMUGU5bGhvdDJNNGEwUFpIQ1RCc2RQVUE4Ukd1RTRpamJR?=
 =?utf-8?B?WFRjZGRxSFdleDRpS3Yvamt1SjhpSzQ0UXZCSGdWbllsQnR5UGN5ZUtibkFE?=
 =?utf-8?B?YWI4cnNCNmdlRXkvcHRiZlp2ZUIyNGxYd0c1U0NOZFZPcy9nUGR2RTQ2VFBH?=
 =?utf-8?B?eThtSDNuczBIQzRQbTJxUDJLbk1xcVhLNXQ1czJjTmJ0ZHBmZjY1NHA1TWlP?=
 =?utf-8?B?QWo4dytjb1lBNUsrLzh4aXVDbzA5a2dDMDFOczVENEc4OVFoTWhnaU1EUVkr?=
 =?utf-8?B?ZGhaQXNKUTRCZ0VYMkR5V2RJMUhhYzJkWGVRTzU4WmNoWlRVRC9aTXo3cm10?=
 =?utf-8?B?NDhvU0ZlRFlHQW5Oa1lyOUp2L0NWdWp4SG1XTHFpRlpWcjNRbFZPSkdZOXRq?=
 =?utf-8?B?ZExKSDVpZVNhSzZVMzFCVEFCM1RaVVVCMmx6YkhRWURHMStvazlHaEJjL0hK?=
 =?utf-8?B?Ry9qZkRpWVFTdzBwT0VpeG5CdGFCOXRSS0JweEZOWkJrTTZqR1VrNGlGRkk2?=
 =?utf-8?B?elFVNkhTOWJoSUVoaWwwcWdGUFJpSVJXUVd1OEF3SXdZa1hkb2dmVU1NK0tx?=
 =?utf-8?B?cEJqREw1NFpsaUFpMnhIZnN1WnVEdWZHNGNXQ3M0UkwwZE9JR0puakJUTEo3?=
 =?utf-8?B?eStNSFpKTFFzSVVvR1RkeFMxWkErNlZsSXg0YlZWaWJRb0ZlMGtUWEgzSDU0?=
 =?utf-8?B?ZTlyZGRNMkZpUVoxcE5xYW9UWVJ5QWYvSi9wSWR1YUVudXZMRnI3QlBEdjFi?=
 =?utf-8?B?QWwyaUFrdEZ6MFpNU29OL2Y4OXBteExTMHRSRlpYWFN3dXUzdGRJZmhmKzVW?=
 =?utf-8?B?dVdORnJ0RmVuL3haS2lUZ2hnWDBRSGtWQ05rRnRjMDRydHVYeExNRG43TlVm?=
 =?utf-8?B?OGNXOW9Ramt3WDV5ak9GTlJwQitkTXAzaHFZbkF4OVV3WGc0cU5aTUJuM205?=
 =?utf-8?B?T043OG03VjJ5Qzc5bXRIVzZkeXU3SjJNL2JzcVFHTTlNSm9mOXJqbTJueWt6?=
 =?utf-8?Q?ibk1lKD4Tt2Z76+Tu0Hp9i5NGOeuaifKAT7PE=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR03MB7136.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Y1lUUHRwbHVTcU4yOU5TM09RSUtwRHZkNHU0dVRhQ1Y3K1dpVmpFS0V2YjQ3?=
 =?utf-8?B?V0hXTjQ3a29BdjhyTW11dDhoeUJyc0RkeEEvZG9xbi9MZ2I3MEx2UTdaMm1T?=
 =?utf-8?B?Z1daZ3p0M3RLV3hhejdRYnc0Vy9SZXc5aUFmT2IrbUU1Ylk3alY2VmtaTDNt?=
 =?utf-8?B?RmJneDlzOXh1c3R5QzdjZXNjbWZzbVRuc3VHeUt4VGo5RjZyMWZoSlkrWDF4?=
 =?utf-8?B?UjRDZVFIN2JwbjVPcnZyY29BYytqNzFESzhPRWhKaGc0WWczRTNkR21sdGtx?=
 =?utf-8?B?eTdwWHdoeFhyMjBwNXlQRzVScDYybk9VWHVOdlNqcVAycUlVNU5Dayt2eHZR?=
 =?utf-8?B?Z3F1SVVzVnhRYUtseS93dXZueDlvakxPR2xkcVpsMkdxdE1MK3djODV2WEhL?=
 =?utf-8?B?K1BMbTlXUGczUHJUeGdwclMzV3FwVzJNbTFXcmwycEhpZ2p0SW45TjVPVWxq?=
 =?utf-8?B?V0JiR2R6aitwakhpWitFNWhtSDRub0JQcXgwbHNwOWJHYTJYdDlab1d5dzYr?=
 =?utf-8?B?U3I3M2p6VS92VGRhWk1kVXNLZnVaZHY3ZFI4b1BSdXVCdnU2OGFMeGZQaHVP?=
 =?utf-8?B?bnNaYm1QVVJYdXJ5Vm9NMElKWENmN0JQZTF6WFV4OHVPQXNOM1ZtaWt3VjZx?=
 =?utf-8?B?NGVwZkhrajUvM093eGUvVUI0WlV1eCtUZXREbjNOQ0NuWmVaWFpTV2VzRjVv?=
 =?utf-8?B?elNRUVRDQXR5a2Q2Q2Y3RU4zWHhjTnluTXFXTXdKT3JJRFRjSGdSd2w2RGtI?=
 =?utf-8?B?WXhnOU0xaWFBcm5ienlicnlxSFhRb0J3RlB5K3h6REFGaG5EZURvanFuSitC?=
 =?utf-8?B?ODVjM2x6Z053TkFROXlBUlhCVTFPWlBySDRUUWFIOEFSMnMrSWlEdktNTDl0?=
 =?utf-8?B?UWx5S2hld2l3S1RXWlhqcm1yWkZkWUpESWdEQ2tTL0lvZlJ4dXBUejJReEFO?=
 =?utf-8?B?a0tRZ3pwdTAxaGVzbW10c2h2UGZ1eENwNDc2TUZBVTdqQnY0UzVaZGJZUFpS?=
 =?utf-8?B?WnNPcnFzaUJvZVlkZWxDOXllSkhlTFhUWXo1bXlNS0NOQUg1Ym90KzhFSytR?=
 =?utf-8?B?b21neTNwdDJaa0Q4TlJjaUIvT283VnQ0d3N4NjB3Qk9kNERkZktSZ0NmaHlP?=
 =?utf-8?B?eDBqTjdkT0d0Z05kOVNsSFViS1VkYXQvRDdMandid2RESHo0dVBxZzVnQjdK?=
 =?utf-8?B?c0tNR29RNEdldnA0bERYWVFVam0xOEJ2WVJWRWdqQVc0U05GRW5tVjlPMTVJ?=
 =?utf-8?B?NUFFT2VoZ09FdUhnVjRBb1U3ZDN3MjRRdlJjYmxKcXU1TVlXVlhIYWZqRUtz?=
 =?utf-8?B?N1htak1pSnJpbUJtY3pCcnNTTUZaZlZYV1NSUUpJVTUvWitId2ZMODVJV3Ey?=
 =?utf-8?B?MVp4cHRkRTVkaXVBU1ZveHpON1ZoWFdzZVhJbmZvV1JxNWJuOFBUVGxGc2Yy?=
 =?utf-8?B?bjY3OTBKbWFYNS9xUGNFRFNab2dobWhMbUMweCtKUXlnRXNsOUJLOTFYaGdO?=
 =?utf-8?B?TXZMUGJaMm4yY0lMWGtSS3ZDTVo4Q1k0S2MraDQyU1BXWEFuVUdEbjhXczBD?=
 =?utf-8?B?NmoxLzFIWERnZVdFbUdRY2U1L2lNa1RzUW1BTTZLb0trSTJBSWtwalVsZU9L?=
 =?utf-8?B?d01NTmdMRlJYV2FqTWFmTEJwOTlMa3lUVUN1SnZLRkc1Ykk0RkRFbXY0SXkz?=
 =?utf-8?B?RWwwZlNzbGc3d3VuUzhrY1JUS0t2aUx1a1RXSEJTbHBTdm5nOVZpb0c4TUY0?=
 =?utf-8?B?VWVvNjBFQURmSExuZkROSk5ZVXZrZjZBUEh2T0dIL3YwZlp6Qm1ndFZOdjZM?=
 =?utf-8?B?VUd2MEx2ZitQajdtZjgzL2x4eU1KSDFram1BZHJPQzBZams1L0VkRld6UHVC?=
 =?utf-8?B?c3JNeHlYSTFjNnJKcTZHMVJNYjRYTEg2WE1NYUU2K1pyWHlLUEpyY3p5dE91?=
 =?utf-8?B?Qi82bHRtUi9tUzJPbmsyNzFTQUFydjNYU2R1ZnNSYW1IMGJvVHpLWWpvWk51?=
 =?utf-8?B?d2pFUzl5YzFiVVAwWGpPTzREWjlWakZTL25FZjc0ZDdqcWxHV0FkM3JnUEhh?=
 =?utf-8?B?YnNIb2JFNFlBYmNac096cWlYRWRFL1ZTcmdwQ0Iza3pXRVFaTUg0OGQ1am1N?=
 =?utf-8?Q?H3H2O1MbWHYqHxJJ+mI0qM47+?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: cef162df-f2ed-41f1-f322-08ddda50dd54
X-MS-Exchange-CrossTenant-AuthSource: PA4PR03MB7136.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Aug 2025 10:05:00.4441
 (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: Jx28lSQjNiRKVRcRDfHgwEgpPAsF8EsPtHyTIlx7KlVZ/rpWxpssefWI54Wb5AqLKQi5n8pepduTJAAeD7iRfg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR03MB10519

On 8/7/25 19:58, Julien Grall wrote:
> Hi Milan,
> 
> On Thu, 7 Aug 2025 at 17:55, Milan Djokic <milan_djokic@epam.com 
> <mailto:milan_djokic@epam.com>> wrote:
> 
>     This patch series represents a rebase of an older patch series
>     implemented and
>     sumbitted by Rahul Singh as an RFC: https://patchwork.kernel.org/
>     project/xen-devel/cover/cover.1669888522.git.rahul.singh@arm.com/
>     <https://eur01.safelinks.protection.outlook.com/?
>     url=https%3A%2F%2Fpatchwork.kernel.org%2Fproject%2Fxen-
>     devel%2Fcover%2Fcover.1669888522.git.rahul.singh%40arm.com%2F&data=05%7C02%7Cmilan_djokic%40epam.com%7C03265dfcc1a94a11e83f08ddd5dc0edc%7Cb41b72d04e9f4c268a69f949f367c91d%7C1%7C0%7C638901863296475715%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=bdsPyXoIqvzwWIWk0Ot3BDOu8yAaF%2Bq3Vrs4wsmZJEA%3D&reserved=0>.
>     Original patch series content is aligned with the latest xen
>     structure in terms of common/arch-specific code structuring.
>     Some minor bugfixes are also applied:
>     - Sanity checks / error handling
>     - Non-pci devices support for emulated iommu
> 
> 
> 
>     Overall description of stage-1 support is available in the original
>     patch series cover letter. Original commits structure with detailed
>     explanation for each commit
>     functionality is maintained.
> 
> 
> I am a bit surprised not much has changed. Last time we asked a document 
> to explain the overall design of the vSMMU including some details on the 
> security posture. I canâ€™t remember if this was ever posted.
> 
> If not, then you need to start with that. Otherwise, if is going to be 
> pretty difficult to review this series.
> 
> Cheers,
Hello Julien,

We have prepared a design document and it will be part of the updated 
patch series (added in docs/design). I'll also extend cover letter with 
details on implementation structure to make review easier.
Following is the design document content which will be provided in 
updated patch series:

Design Proposal: Add SMMUv3 Stage-1 Support for XEN Guests
==========================================================

Author: Milan Djokic <milan_djokic@epam.com>
Date:   2025-08-07
Status: Draft

Introduction
------------

The SMMUv3 supports two stages of translation. Each stage of translation
can be independently enabled. An incoming address is logically
translated from VA to IPA in stage 1, then the IPA is input to stage 2
which translates the IPA to the output PA. Stage 1 translation support
is required to provide isolation between different devices within the OS.

Xen already supports Stage 2 translation but there is no support for
Stage 1 translation. This design proposal outlines the introduction of
Stage-1 SMMUv3 support in Xen for ARM guests.

Motivation
----------

ARM systems utilizing SMMUv3 require Stage-1 address translation to
ensure correct and secure DMA behavior inside guests.

This feature enables:
- Stage-1 translation in guest domain
- Safe device passthrough under secure memory translation

Design Overview
---------------

These changes provide emulated SMMUv3 support:

- SMMUv3 Stage-1 Translation: stage-1 and nested translation support in
   SMMUv3 driver
- vIOMMU Abstraction: virtual IOMMU framework for guest Stage-1 handling
- Register/Command Emulation: SMMUv3 register emulation and command
   queue handling
- Device Tree Extensions: adds iommus and virtual SMMUv3 nodes to
   device trees for dom0 and dom0less scenarios
- Runtime Configuration: introduces a 'viommu' boot parameter for
   dynamic enablement

Security Considerations
------------------------

viommu security benefits:
- Stage-1 translation ensures guest devices cannot perform unauthorized
   DMA
- Emulated SMMUv3 for domains removes dependency on host hardware while
   maintaining isolation

Observations and Potential Risks
--------------------------------

1. Observation:
Support for Stage-1 translation introduces new data structures
(s1_cfg and s2_cfg) and logic to write both Stage-1 and Stage-2 entries
in the Stream Table Entry (STE), including an abort field for partial
config states.

Risk:
A partially applied Stage-1 configuration might leave guest DMA
mappings in an inconsistent state, enabling unauthorized access or
cross-domain interference.

Mitigation (Handled by design):
Both s1_cfg and s2_cfg are written atomically. The abort field ensures
Stage-1 config is only used when fully applied. Incomplete configs are
ignored by the hypervisor.

2. Observation:
Guests can now issue Stage-1 cache invalidations.

Risk:
Failure to propagate invalidations could leave stale mappings, enabling
data leakage or misrouting.

Mitigation (Handled by design):
Guest invalidations are forwarded to the hardware to ensure IOMMU
coherency.

3. Observation:
The feature introduces large functional changes including the vIOMMU
framework, vsmmuv3 devices, command queues, event queues, domain
handling, and Device Tree modifications.

Risk:
Increased attack surface with risk of race conditions, malformed
commands, or misconfiguration via the device tree.

Mitigation:
- Improved sanity checks and error handling
- Feature is marked as Tech Preview and self-contained to reduce risk
   to unrelated code

4. Observation:
The implementation supports nested and standard translation modes,
using guest command queues (e.g. CMD_CFGI_STE) and events.

Risk:
Malicious commands could bypass validation and corrupt SMMUv3 state or
destabilize dom0.

Mitigation (Handled by design):
Command queues are validated, and only permitted configuration changes
are accepted. Handled in vsmmuv3 and cmdqueue logic.

5. Observation:
Device Tree changes inject iommus and vsmmuv3 nodes via libxl.

Risk:
Malicious or incorrect DT fragments could result in wrong device
assignments or hardware access.

Mitigation:
Only vetted and sanitized DT fragments are allowed. libxl limits what
guests can inject.

6. Observation:
The feature is enabled per-guest via viommu setting.

Risk:
Guests without viommu may behave differently, potentially causing
confusion, privilege drift, or accidental exposure.

Mitigation:
Ensure downgrade paths are safe. Perform isolation audits in
multi-guest environments to ensure correct behavior.

Performance Impact
------------------

Hardware-managed translations are expected to have minimal overhead.
Emulated vIOMMU may introduce some latency during initialization or
event processing.

Testing
-------

- QEMU-based testing for Stage-1 and nested translation
- Hardware testing on Renesas SMMUv3-enabled ARM systems
- Unit tests for translation accuracy (not yet implemented)

Migration and Compatibility
---------------------------

This feature is optional and disabled by default (viommu="") to ensure
backward compatibility.

References
----------

- Original implementation by Rahul Singh:
  
https://patchwork.kernel.org/project/xen-devel/cover/cover.1669888522.git.rahul.singh@arm.com/
- ARM SMMUv3 architecture documentation
- Existing vIOMMU code in Xen


BR,
Milan




From xen-devel-bounces@lists.xenproject.org Wed Aug 13 10:31:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 10:31:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079706.1440429 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1um8ky-0001QU-5F; Wed, 13 Aug 2025 10:30:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079706.1440429; Wed, 13 Aug 2025 10:30: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 1um8ky-0001QN-2G; Wed, 13 Aug 2025 10:30:56 +0000
Received: by outflank-mailman (input) for mailman id 1079706;
 Wed, 13 Aug 2025 10:30:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1pw7=2Z=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1um8kx-0001QH-9W
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 10:30:55 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 96ac653b-7830-11f0-a328-13f23c93f187;
 Wed, 13 Aug 2025 12:30:54 +0200 (CEST)
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com (2603:10a6:102:ea::23)
 by PAXPR03MB7594.eurprd03.prod.outlook.com (2603:10a6:102:201::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.13; Wed, 13 Aug
 2025 10:30:49 +0000
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f]) by PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f%6]) with mapi id 15.20.9009.018; Wed, 13 Aug 2025
 10:30:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 96ac653b-7830-11f0-a328-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wIaQDp9IHuSB3iuAb6nlT68SscrM+rMWtQ7ENPA9FMcU5L4hMc4GV1vP+O2PbBRNk1PzdkFVTMDb0d1WcavUTYO1+o8ngDoQUJjF9aQo/ZBCxNVk2QwLR1ONs7wi/jzOac1BP+xbwqvPuRTc5I2DlTOJVy47AblRr2cw2DqAd5qiUFM10Pbl0T6UIh5edWDkkBU3hcNuYQ5PEImtdsZJlz0IfDiNlZEB35pSYuso6dIwRCAh++kEIF/wRIrkI27RJj0UjW6o/P1VNaeCJtyijoH4wmvCQShHfXJmaS/jwFafjQigIuXzKYEfoT9G8Rg3vUb0ouXeN2B1j9BNPnn+Hg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=sAOm1sdEPLj75mAAN7vkfs9Qhu9uQayDxLixvMBiA/8=;
 b=brzqW8A2o727ki7wfMbbkpbH0U6EaqND6UXiYa2OK67Gudu9Lszoixo3wfroifT9qpoUV9foZNmT40VZXWJypu/8MlsFnL5af78jbnCF9OMNY2guX1N780Cbo0+TEgK8VJMo7I4nnV9Qp2y7XEBYuyqQjjruhOEp88xag985x0cw+pi7O1fZxj/gpFdL2p0AxU08NbPoDI/FE8I8lOjeVOzqIaV7MmPSFZQfk5ogtH8g6YlHV3tO/DIJbWeMV1JqL0MJV8APhhIdl6kW2UELimyYsgfDI0x42JYTSjqVKB8pk6Dh3fuGNYmbazYcjD3OAl8221gMjx+Hbb9+/ECzLw==
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=sAOm1sdEPLj75mAAN7vkfs9Qhu9uQayDxLixvMBiA/8=;
 b=pi2NZAgaQ0I7DunWUQEtMlrJUO9uQk2/J4ozN23HVJ48mIDp6lV2yB8mVGRdqPFT0bSWEd6zhMRuDFCI0SxXbFAN5uvS+fZVyTYSMwxprreb6DIHYHrkLVPwWJDTxrI5OowvPLGaqDTwtWbYf27ql2AKL0ugnhamqy52BVoBRd3iXiIRkSWThj6ruftFlIW7FTpPQKPKjPkgqItAkleImDYg9/wlMA78Z27wVhqsehccm5asnCscxzXHQD32wRlTJAikupTbmXqBHi7XycNmuGyF8CRPWzsVsv8G9ctNMMFZBGxqrAhxEmPukpCyeydFH5XfI5Ya94N1Dwkdq9mcRA==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <6f0162d6-4e81-40dc-ac9f-ac458519f5b3@epam.com>
Date: Wed, 13 Aug 2025 12:30:48 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 07/20] xen/arm: vIOMMU: Add cmdline boot option "viommu =
 <boolean>"
To: Jan Beulich <jbeulich@suse.com>
Cc: Rahul Singh <rahul.singh@arm.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, 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>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1754580687.git.milan_djokic@epam.com>
 <c539f673eef6f44a1191b0f8213ff5571baa411a.1754580688.git.milan_djokic@epam.com>
 <dd006b8c-c198-4f38-bfaa-990122bb7174@suse.com>
Content-Language: en-US
From: Milan Djokic <milan_djokic@epam.com>
In-Reply-To: <dd006b8c-c198-4f38-bfaa-990122bb7174@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: VI1PR08CA0275.eurprd08.prod.outlook.com
 (2603:10a6:803:dc::48) To PA4PR03MB7136.eurprd03.prod.outlook.com
 (2603:10a6:102:ea::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: PA4PR03MB7136:EE_|PAXPR03MB7594:EE_
X-MS-Office365-Filtering-Correlation-Id: 96f8d4c1-bbfd-4b5e-341f-08ddda5478df
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|1800799024|376014|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?ZjJPb3V2bGw2dlBpT3B6NWdVb3RBREM3WkxwQkZGWDVwZlZjUG5SRUtsdDJs?=
 =?utf-8?B?TzhDSlFYMm1YbThhQVAyeDluQ3VMdVFTSDFhbWVoTWlZcDBWWmNEZ3QxNDBO?=
 =?utf-8?B?MEdtZDRnZStrZGRZVE13b3JVZmZGVjFwWnBGbzAvYk5aTXZoMnhUak5aR3Ju?=
 =?utf-8?B?STFLVGpwTWpVaWk4MGl3MlFHc01kWTdkaGdXMTRlenFPR3lUcnhNS0FzRm13?=
 =?utf-8?B?aVdGelNNcDFSNnFuUkRSbTBtYzR2clVZOENVQ1NadEZlVWR2TjBnSVpiTC82?=
 =?utf-8?B?WlJqWWRZNDc0LzhiMHRlbTBJRGQwNGpTVVA5dEdCZHo5THpvMW9Sem5ONVdh?=
 =?utf-8?B?YVhjTSsrUS9Wa0d4N3FnL3RHTWtpTnRGWTR0dUpkSWwvMWNONXdSNUpMdWI1?=
 =?utf-8?B?cXlRRG0wbDZJRnlZYXczalJSUUs0M3JXejhoSEZwaXVEM3NIb3JmZk5HMmhV?=
 =?utf-8?B?d3VDQitYeE00dWp1d2MwMnJDVVlHTjVLWlRUQUttd3lZZWdmQ2pSNzhScjVm?=
 =?utf-8?B?V054bTlTcTY2ajRmbmZud3ZGLzdKOWR6S0tJclJRQU8vcVY4WEt2R0RoYkQ3?=
 =?utf-8?B?dkNnMnRwckdPZDgzM0hEZWp5SStzaDBpb2czeEVkQkp2SjBwR3h3RSsxend1?=
 =?utf-8?B?VThZb3lzRnZiRmRIUFh5R1crYTd6RE55ODdvcDQyS2FPVnJDN3NrWkxQUUo5?=
 =?utf-8?B?QzB4ZVlVNmZYR3RlelBsWENORzBTaHRQMm00Yk5ETHBwNmNMWVZ1SGhYdE8r?=
 =?utf-8?B?eFRYMHVRMmFtdmVkNzNBT2VkZHlhTHdncHlEU1FmeHlrVkRGMnhEMkhWVXhB?=
 =?utf-8?B?Tkd5SHU4UllUdzN3TlEyMXkwL2lMWndYVW4yUGxvbThFK29JQ0xKcnE1ZWUz?=
 =?utf-8?B?dlZqNXhqdTcrTGZ5bUJOY3hIYVN2S0dUcEdmeWcrdUl3T3lYem10NVFOdlJh?=
 =?utf-8?B?YzFNN3l6bXlqSHRPRFlWeFdiVWRZMlA4dmlhbFR3TTFsWFUzYXp3NDd5d2Uw?=
 =?utf-8?B?VThqVVVnMm1GSTJEdnl2Sjlic3VUMzhQR3NrdklQVXZDRXFIbnVhWnV5MDlQ?=
 =?utf-8?B?b3dTS0Z6a01lT2J3c0JwbTlTQ0dSMjhLSG9aS1dVdTNJNkZoazgyYWdmczFo?=
 =?utf-8?B?QmVSTGlBSXRHYVlHbklERHNncWo0QkRDenJhcWF6SGt2RW1uNS96R1dBd3VS?=
 =?utf-8?B?M3RWQ3NEU1NucmwrNksyNkhnTnIyaWhxTjZqRFh4WTBsLzdicEZGM3hodWl4?=
 =?utf-8?B?RXhEdk9VMTlNKzBLVHdGNmFUOExtTUIxa0pUUnJDNUhkcTB0UWpXMHFjQUNt?=
 =?utf-8?B?aDAva3l3d09kMVU1RHVjcnBQZFk3a0JqVXNuUytGQmIvZkttb0VFVkk1OFow?=
 =?utf-8?B?akY5ODFSbzQ3MGJnQmJuZFFLVk1wSWRPR081Nmplb1V1cXNMZkNIQkloNzd5?=
 =?utf-8?B?QUdneWsrck54bnhjNmxib3VTQ0EvVnVEa202QWVhTndKMmNmUFRXbHhLVDBQ?=
 =?utf-8?B?akF2Zmg3M0pXTkRiNkFrZGdHMm1hT01sbk1ocWxLVmVYRWlsQkowZzJIYnlj?=
 =?utf-8?B?WlZZNGlqZ3NTa1MvMkRlTWRXWVB6Q2o3Wklvakx2KzFveWU5bmtjZkZuSXBr?=
 =?utf-8?B?NVVoWDhKZGJmTHF1aFJ3T3FRWDdld0ZZVmpVck9IM2xIdjFZd3p1WVYrTmNx?=
 =?utf-8?B?UTF1MUlUdGovcnBGU0tCcHRmOE1uOStjZWkrSjhCWVN2NkJRZFdZazlJSmc3?=
 =?utf-8?B?aExSb1NSazIrR0xVS1I4VlFrVGw1UmNWdWZiT1VhdVl0bzQ1K0Jic2dWaVNq?=
 =?utf-8?B?ZlVVQUsxbkJWOHFnRW9SYWc4TmYxU0t4bzNMUHRnYnA5bC9tQ1BON2twWmVx?=
 =?utf-8?B?M25pZEgxWWlaQXdXUXJCSE9uc3prS2NvVng0dC9wR2ZQNlV0YnJTZzNraTd0?=
 =?utf-8?Q?b5LHFKGS6W0=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR03MB7136.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Zk1xQ0tPekZJR3NRaU0wSjhWaUVFbnM1ZVI4TVlobzlLc29aQlUxV0dHNlBy?=
 =?utf-8?B?MjRHSUlTS09rT0hhQkxDTU9JT2pPUFdvWkJyZ1d5NnZSek5EMW4yMFhlWEhi?=
 =?utf-8?B?d3FIZU9qNHRHd21LbEtZUmhDZXRTNWFVUy9ZVTVmWGhaNTd4V1g1Nm9BNjhV?=
 =?utf-8?B?N05FbnRvV0VxeWVxV1VBU1I3bDdOUzRVNkJDZHFieGxPangvWmd0QnczMzVP?=
 =?utf-8?B?UDdrcWE2NmNTdkc2UmhvV0dlTjdrTSs1Rm1qZVNZNUI0Vkp1ZGx2TkdrcFYx?=
 =?utf-8?B?d0hKTTZwRmUwWWh6N1NCVUJSUW96S2NFL2NNN0tFZ295S3ZIaCtwOTZKLzE3?=
 =?utf-8?B?cnJhYjg4bkE2NmM5djZJTXdYV1hCcmdqZTlMUVYzUXhWQ0t6OTJMMUwwVVRG?=
 =?utf-8?B?Zi92SU05TWhMS2JlSHo3V3RET3hITHg3VUFUQ2NoV1V0ZGt6dGRiZ1VjYlI0?=
 =?utf-8?B?ZEJ6aUpmSWxQWWZZMk9NMytKRXNnZXVPK2lHS0Z0clduOWJDdE1JOEtaSFhp?=
 =?utf-8?B?OWp1c3MvOXN4TUt5bzhNNnhQYTErNk1Oa0pQV2dLL1N3MlZ6RGZFMm91MjZQ?=
 =?utf-8?B?N0xzVGlFbndoUUZNYXlOR29CSlJuYldITnJsWkVhRnhwTU9IdDc3K091OVNC?=
 =?utf-8?B?Y0JmNDJQcElvYU5xVUpMZ3NlMmxSb1BCem5NeTd4QjJhZjhNeldCMm1GVXN2?=
 =?utf-8?B?clVRbDViMStTNGhkSFJVWXpaTWE5ejM0U0pQM3BzUzJWa1RLMnBnMkV1VXJp?=
 =?utf-8?B?STFMaDJSVTduZDYrYlp6bUZWVXRnZm1JRWpKdVJkck9lc2tjMDBKWGxMWFpF?=
 =?utf-8?B?aXAwV0svdC9ja2NiTjNqZFE0MmkvZGhyb2RIdFNaeTYxZlFRd29vdE4yMm5W?=
 =?utf-8?B?TVRwQThLRXhhSGpQdVdNN0NYYUcvdnZRSU1DMFJIcnk3S0EvMk5vRDJ5ZlBX?=
 =?utf-8?B?bkRqcm01WDM1TDQ2RmdoMGUrWjFmVE5sNHRkVmUxbFJDbG15VTlZOHFOQnhF?=
 =?utf-8?B?Rkx0SGt6dThmaGNBYnlCTFcrR29zeTJiNnlaMExVWHFGcDJINStBU21lcnRN?=
 =?utf-8?B?Y3FIdFJMcjYzdmQ3akZwUzl6NXhiK2JidDJ6c0MvRjhNZmN6SGlERGRRMzVt?=
 =?utf-8?B?alNKM2w4SlVpRm1lTmthZld0VXNESy8wYmFwUDFmSkxoR1lBaitRTjN6b3hp?=
 =?utf-8?B?V0xaY0l6bjUxVTdYb0hESXhZTEVCTUF3bC94N2lsSzlxVGNKZ1QzazA1bTNm?=
 =?utf-8?B?ZXpUTkpvdWpWYy8zayttNzh1cUJGZmhBbEE1NU1JbzZsSmYrVHBQQlVBYVNm?=
 =?utf-8?B?elp1K1h2WmRHUVRMN1d1RUxhRlJ4WEhCdWJtWVl6Lyt0L0ZPVzUrSXBvTE82?=
 =?utf-8?B?R0IzMWJnemJlK2kvd1ExR3UvR0thSHE5MEdjOHRUYUt3OUF2R2swT1dGK3gx?=
 =?utf-8?B?MFRnb0xRYUhzc04rMnNVUVh2dklhYmk2MVUzUlN3TnM4UTJJc2lrVnc5bHpq?=
 =?utf-8?B?RTBYd0NsMTdKb2ZTTWhPb0xyNCtoR2dNanllZmpoNTZ3OGpNQmlBa2xNWHVl?=
 =?utf-8?B?aDQ4YzN2ZWhDcGZaUHB2N2tsVzcrdmFMSzFjc3luSVNTVUF3dHZtUHBvWS9Q?=
 =?utf-8?B?OURsRE5qM0p5T3JMdjIwWExQOUR5dWpZcFVXYllpOW9wK25HSzlyc0FDSTcv?=
 =?utf-8?B?a25mRkN4TkozUllhTHFWcVBNSjBQKzcwTTg0Z293ODlTeEFZeEo1RDRvQVVa?=
 =?utf-8?B?UHRyT3RKa200UG01OEZ3K01OY2lGY3J1Z01JVnd6RnZPUUMrc3kxeklIdkd5?=
 =?utf-8?B?c3hEOVFtdUh6V29zSmN4SG12V215MFJYNmd2b2M2YnNDL3krS1NUMzliRUE2?=
 =?utf-8?B?ejlCTmJObnJoSVZLM0J1R0daalpReC81SHBhM3lqalBUMDY3cWpaRis2d1I2?=
 =?utf-8?B?cFVVaW1SSDZzMlhzWjVMVGExcVRSbmgvYjNOQ3B2a2sxZ3NpdnRiUGJtOFhR?=
 =?utf-8?B?dlRnWVZyYlNMQmJtR0NyVjRvYWRvTkRjbGZxWXZzemRpT1NwUjM3TXFmajNC?=
 =?utf-8?B?dnpyL3I0b2VyM1JNRGJlZk1JaFk3VVN1UENMU2ZBZEU4WElhelRjNllzMnlB?=
 =?utf-8?Q?JAts1HQ/f6oT+j9q499d2wwtB?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 96f8d4c1-bbfd-4b5e-341f-08ddda5478df
X-MS-Exchange-CrossTenant-AuthSource: PA4PR03MB7136.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Aug 2025 10:30:49.7944
 (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: lJSiND9+g/n6EB7zDTj6pFpQcTBKpqgoSZjsNuwrPWYutdw/voiScjxvFv8dkMS55z1axbf0nQhRFwQJP2P7PQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR03MB7594

Hello Jan,

On 8/8/25 08:20, Jan Beulich wrote:
> On 07.08.2025 18:59, Milan Djokic wrote:
>> --- a/docs/misc/xen-command-line.pandoc
>> +++ b/docs/misc/xen-command-line.pandoc
>> @@ -2058,6 +2058,13 @@ This option can be specified more than once (up to 8 times at present).
>>   
>>   Flag to enable or disable support for PCI passthrough
>>   
>> +### viommu (arm)
>> +> `= <boolean>`
>> +
>> +> Default: `false`
>> +
>> +Flag to enable or disable support for Virtual IOMMU for guests.
> 
> Isn't this too coarse-grained? IOW don't you want to specify the kind of IOMMU
> to use, even if right now only one is being implemented? Also - why on the
> command line? Isn't this rather a per-guest setting?
>
Yes, it would make more sense to specify IOMMU kind instead of plain 
enable/disable parameter. Updated in new patch series version.
As for reasons to have this parameter in xen command line, it is needed 
for xen smmuv3 driver initialization, where viommu initialization is 
done if 'viommu' is enabled. Also, for dom0less mode and dom0 itself, 
viommu for domain is enabled while domain is created based on this 
argument. We do have per-guest viommu enablement option for guests 
created with xl, but this does not cover dom0 (and dom0-less).

>>   ### pcid (x86)
>>   > `= <boolean> | xpti=<bool>`
> 
> Also, seeing this adjacent entry, you're inserting in the wrong place. The
> options are supposed to be alphabetically sorted.
>
We'll fix this in the new version with other suggested changes included.

> Jan

BR,
Milan



From xen-devel-bounces@lists.xenproject.org Wed Aug 13 10:35:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 10:35:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079715.1440440 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1um8pQ-0001zZ-NC; Wed, 13 Aug 2025 10:35:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079715.1440440; Wed, 13 Aug 2025 10:35:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1um8pQ-0001zS-IT; Wed, 13 Aug 2025 10:35:32 +0000
Received: by outflank-mailman (input) for mailman id 1079715;
 Wed, 13 Aug 2025 10:35:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2/kn=2Z=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1um8pP-0001zJ-1p
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 10:35:31 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 395b6243-7831-11f0-b898-0df219b8e170;
 Wed, 13 Aug 2025 12:35:26 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-459d4d7c745so58428795e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 13 Aug 2025 03:35:26 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45a16de7665sm25028425e9.16.2025.08.13.03.35.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Aug 2025 03:35: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>
X-Inumbo-ID: 395b6243-7831-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755081325; x=1755686125; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Ece5JrrLOidUkSR6vq4emLTrQMDHU8C4Z3a6nPTuk/s=;
        b=YFoRBP4mXhG4R1h94lyWa0YD6RaNrWI9pqb2bmiFODnPvO8stAyK6Etg6xcFrR3loh
         tJahWFQAnhz5HMA+NFJvE3FbeBsOnFCU7qFb37H1ZPPiAstH6waPKNjJOBDUJTgtntRl
         iAzQMpQtWojj+3h6rN+32hYCBlSTwBNQW0FAw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755081325; x=1755686125;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Ece5JrrLOidUkSR6vq4emLTrQMDHU8C4Z3a6nPTuk/s=;
        b=jcb4/psv1Dd/t7kq5FhdNk07PvS6QDqn2yNUCm5O4WcGmNXOVgLcYxcrpMdTv/tdFJ
         t/L7eon99jpA1m9wM9lso+Bd/XES6AGAwb0PQKjtSvenBKEOh5P3D4BoBD8Mw6/yAgW9
         IDLWmL4uFws2aHCRbAqkT0aHLYaBfH27fBHa5FWdsJ2Al/OiUxav2mIE5J2sHCaUEBAT
         O00/RWdDP/L3h51S9BKAWpDuiBZS/DBhFJX4JfhBkKDPFRrr01iYuLFn5ZS7+v7bHv+g
         g0pfil+LEWLjGLcwO+u/mHgX7GnD6IHUqE3xwoUCVmTaXSNau2du96YLfdTavdtrioen
         9gCQ==
X-Forwarded-Encrypted: i=1; AJvYcCVgQmE6tz78OEnbv+R5+j9bYCrYKDP3jeN12ky+6oUX+6p41JIA5PVGN2OdIt7UUqT2F3SXdpdVoWk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwZDHFQ/5b/TxyVtS8ewaW85+P7a+4PhD35tf9ACy6PK7iuQHvz
	8+itNtubIs4MU5mD2woyJImVG2nqsoLR8telgVvGUnPJg6SOwKhtLczveP2ltGA9cfo=
X-Gm-Gg: ASbGnctw3bVrwWGXYDVJ7vSx6/ImeF+hkPZ4/O5+nRiMods2fP5JN7LsZny7uRd3DUn
	QHLjU2w3nmaowOy+GjxfRZmlVRCfmfdBI2j/U7sYO4C97+CWdyf6lsns6i8yvbe+RAPW6bw04XB
	OOZ347Ty7xPxaXsT8q9Bpw2mGToM2X3E1lZhUM+lzeA8wtvwLEfpxRCunYvm0CYVtnmOyIjIOub
	Ayazl8Ag3Dho2ZSB9zUO3GNJZwTKjz075JU+D9ncWXfrlM5gjXGI5aM2ak7tdwFRAWTcRv8JKt2
	csUeiNG14DaXmneJ1QoLE4lZV39ZZLbU0Fs9pz4MKyJogI8E8+AM/1weTdxmOzd2OiU3E390XXd
	uiiXo7fdnfPurjbLP0DD7Xhe70Gnv4aPnguZPvZIDFFArdOVWT6+gyGOBtN4Pr4PuAjvx
X-Google-Smtp-Source: AGHT+IGJqlktXG1jgG7cc2YsLZHTKoViemFa7MYQqD4aHHKCWGLNnr2w9R2pG0jeeYZxHjPoUCFYKQ==
X-Received: by 2002:a05:600c:4753:b0:458:bfb1:1fb6 with SMTP id 5b1f17b1804b1-45a16599f53mr22319655e9.2.1755081325421;
        Wed, 13 Aug 2025 03:35:25 -0700 (PDT)
Message-ID: <b97b30a3-0b26-43f2-95b4-41b79c416615@citrix.com>
Date: Wed, 13 Aug 2025 11:35:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 07/22] x86/spec-ctrl: Rework init_shadow_spec_ctrl_state()
 to take an info pointer
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-8-andrew.cooper3@citrix.com>
 <fa34bc4a-64d9-499c-bc07-787d2cdb36ea@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: <fa34bc4a-64d9-499c-bc07-787d2cdb36ea@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12/08/2025 9:27 am, Jan Beulich wrote:
> On 08.08.2025 22:22, Andrew Cooper wrote:
>> We're going to want to reuse it for a remote stack shortly.
> Are we? From the titles of subsequent patches I can't judge where that would
> be, so it's hard to peek ahead. And iirc earlier on it was a concious decision
> to only ever run this locally.

I don't recall that.Â  I recall bugs which occurred because there were
several variables and we failed to sync one of them.

Either way, it's very clearly the right course of action to take now.

>
>> No functional change.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Nevertheless, trusting that you have a good reason:
> Acked-by: Jan Beulich <jbeulich@suse.com>

Thanks.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Aug 13 11:14:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 11:14:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079750.1440449 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1um9Qi-00073G-F1; Wed, 13 Aug 2025 11:14:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079750.1440449; Wed, 13 Aug 2025 11:14: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 1um9Qi-000739-C1; Wed, 13 Aug 2025 11:14:04 +0000
Received: by outflank-mailman (input) for mailman id 1079750;
 Wed, 13 Aug 2025 11:14:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2/kn=2Z=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1um9Qg-000732-F0
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 11:14:02 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9c7aafef-7836-11f0-b898-0df219b8e170;
 Wed, 13 Aug 2025 13:13:59 +0200 (CEST)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-45a0dc77a15so18128005e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 13 Aug 2025 04:13:59 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45a16dffb63sm26604115e9.29.2025.08.13.04.13.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Aug 2025 04:13: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>
X-Inumbo-ID: 9c7aafef-7836-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755083639; x=1755688439; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:subject:from:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=B8vSB0+rV6l3e8E3zeiWrsPZzISbuCZrZhYDht06bwE=;
        b=HNDhqrLx0ekRQU/HOU9fRKePcmW7afQHghzgx5FlDJN9dN1Uzxfes9p9AQbm4v6mG5
         ceB5IifT2T4cbTOi7DZ+CxGpiBwUuZDMhJ7lPh/HfSlGA6dQQp5ObGSQn5VBd4e/ue15
         +ZllS6qVWn6dViXkE8ft0pwmPRdkRV0nxaJlU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755083639; x=1755688439;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:subject:from:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=B8vSB0+rV6l3e8E3zeiWrsPZzISbuCZrZhYDht06bwE=;
        b=mo5NG7uxkTS9QnVLT0LDMhaKNNwKAZ/vmQb9TP1W9nI1B/79fD+ZBJf6qpxVZPFG4z
         lTiWVN/vDm7neyoUoqUaCtih/Hoc1v8MbGU/cYgDzRl0W5I8LX452+JpRRLPbF8+qMHC
         qCj0FsEiiezmPB2McgHn7BGKjPpLRjR3KGGjakokwylEK7/3+XC6RKfpsTWS5YQ7dAmC
         BP3q9Z+pZVOSnOHyX7hrlIlVvNL7OZPiS+1YNG6xP360IO98riHuOPGieT2YDGjaoLqY
         FsaFJKcrLjhT79p2ZYeBcWUxsUYo4E0xgWYAygFFUWdenSbpHElF9ftyFDZfFkIO3sqO
         H4mg==
X-Forwarded-Encrypted: i=1; AJvYcCWEpl83xtV2r1nN5/nJcx8o1ZvlLq4n5PtDe9Y3HWN9BMO939I6qP3A+4Ifb2wImlmVnSjynLF3niA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yye8pfm6HuEZX81v+XZMcV3kRGePQbi3X+oE/DaczKr5MHB+mxl
	fDwQXbE7a/tUl0cSqAekhQGIorvRT9KUqSNlBGbCNXljf9xjwvdqhKcoiepQiCc93Hk=
X-Gm-Gg: ASbGnctIsex8Q4r0eGbCMxxGgyTvGydDkPI5Wf6FuBlLPUFlyMM0MzDvcMPGwaUm3Fb
	Oh1zAsf1bJsmsKxnj7XNTw2ODTtdISAG/eFZULoXKpZlgbU8uDxhkMnrIVcLa850qC28Avnbp8T
	ZC/ezFIPTh4wYLrflQl0qz45CvboDtSJqIrJURA1kkzigoJh7KoY387DtyHZ1C65UVd0gJf/73y
	n/XihdRVBS4+BsrJeov0DmHRJ+JFvnYFfEX4deoFJdEpPzIAiSqpo5mMqizEExpmgYIX3S3KiK2
	VGcI18nSYz/w7hMstQzKZuKif4DKdBE7DxjZAaP1/GF00E6EGGkUsDiATq5YOYQI14F7EL9DsCE
	0CX93UYdQTOoUB89TcIgguLeaMV+ofARLqGbddMIMisUBynCFlwVa3eC+sWMLJ3+4bGkt
X-Google-Smtp-Source: AGHT+IGxQbQqy849mubTXsKB3Pfv+vfUZfcS/adkGw5qp7AYPLsGsdIC/bXOICBe5fxIl835nHmEXA==
X-Received: by 2002:a05:600c:45c7:b0:450:d37d:7c with SMTP id 5b1f17b1804b1-45a165db0d1mr18842915e9.21.1755083639187;
        Wed, 13 Aug 2025 04:13:59 -0700 (PDT)
Message-ID: <3e590b78-b2ac-435d-98d7-89c39d6f731f@citrix.com>
Date: Wed, 13 Aug 2025 12:13:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH 08/22] x86/traps: Introduce ap_early_traps_init() and set
 up exception handling earlier
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-9-andrew.cooper3@citrix.com>
 <d6573487-14ed-4e1f-9525-b702048bb87e@suse.com>
Content-Language: en-GB
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: <d6573487-14ed-4e1f-9525-b702048bb87e@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12/08/2025 9:41 am, Jan Beulich wrote:
> On 08.08.2025 22:23, Andrew Cooper wrote:
>> --- a/xen/arch/x86/acpi/wakeup_prot.S
>> +++ b/xen/arch/x86/acpi/wakeup_prot.S
>> @@ -63,6 +63,9 @@ LABEL(s3_resume)
>>          pushq   %rax
>>          lretq
>>  1:
>> +        /* Set up early exceptions and CET before entering C properly. */
>> +        call    ap_early_traps_init
> But this is the BSP?

By the end of the cleanup, what we have is:

At boot only:
Â * really early init, basic exception handling only
Â * regular init (inc syscall trampolines)
Â * late re-init as we change the stack linear address

For everything else (APs, S3, hot-online):
Â * early, full exception handling
Â * regular init (inc syscall trampolines)


Currently, these are named:
Â * bsp_early_traps_init()
Â * traps_init()
Â * bsp_traps_reinit()

and
Â * ap_early_traps_init()
Â * percpu_traps_init()


Perhaps ap_early_traps_init() should be named
percpu_early_traps_init()?Â  But I'm open to suggestions.

>
>> --- a/xen/arch/x86/smpboot.c
>> +++ b/xen/arch/x86/smpboot.c
>> @@ -327,12 +327,7 @@ void asmlinkage start_secondary(void)
>>      struct cpu_info *info = get_cpu_info();
>>      unsigned int cpu = smp_processor_id();
>>  
>> -    /* Critical region without IDT or TSS.  Any fault is deadly! */
>> -
>> -    set_current(idle_vcpu[cpu]);
>> -    this_cpu(curr_vcpu) = idle_vcpu[cpu];
>>      rdmsrl(MSR_EFER, this_cpu(efer));
>> -    init_shadow_spec_ctrl_state(info);
>>  
>>      /*
>>       * Just as during early bootstrap, it is convenient here to disable
>> @@ -352,14 +347,6 @@ void asmlinkage start_secondary(void)
>>       */
>>      spin_debug_disable();
>>  
>> -    get_cpu_info()->use_pv_cr3 = false;
>> -    get_cpu_info()->xen_cr3 = 0;
>> -    get_cpu_info()->pv_cr3 = 0;
>> -
>> -    load_system_tables();
>> -
>> -    /* Full exception support from here on in. */
>> -
>>      if ( cpu_has_pks )
>>          wrpkrs_and_cache(0); /* Must be before setting CR4.PKS */
>>  
>> @@ -1064,8 +1051,12 @@ static int cpu_smpboot_alloc(unsigned int cpu)
>>              goto out;
>>  
>>      info = get_cpu_info_from_stack((unsigned long)stack_base[cpu]);
>> +    memset(info, 0, sizeof(*info));
> Why do we suddenly need this? Or is this just out of an abundance of
> caution (while making the individual ->*_cr3 writes unnecessary)?

cpu_alloc_stack() explicitly uses alloc_xenheap_pages() which uses
MEMF_no_scrub.Â  It will usually be zeroed memory because we allocate
them all at the start of day, but it also has a habbit of being 0xc2'd
when running under Xen.

Also yes, I do dislike the ad-hoc zeroes of misc fields.

>
>> +    init_shadow_spec_ctrl_state(info);
> May I suggest to move this further down a little, at least ...
>
>>      info->processor_id = cpu;
> ... past here? Just in case other values in the struct may be needed
> in the function at some point.

Ok.

>
>>      info->per_cpu_offset = __per_cpu_offset[cpu];
>> +    info->current_vcpu = idle_vcpu[cpu];
> To be able to spot this, I think it wants /* set_current() */ or some
> such.

Ok.

>
>> +    per_cpu(curr_vcpu, cpu) = idle_vcpu[cpu];
> It's a little odd to do this early (and remotely), but it looks all fine
> with how the variable is currently used.

It did take a little while for me to conclude that it is safe, but yes -
it does relax a lot of ordering constraints for AP bringup.

~Andrew



From xen-devel-bounces@lists.xenproject.org Wed Aug 13 11:25:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 11:25:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079772.1440459 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1um9bs-0000M2-KE; Wed, 13 Aug 2025 11:25:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079772.1440459; Wed, 13 Aug 2025 11:25: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 1um9bs-0000Lv-HG; Wed, 13 Aug 2025 11:25:36 +0000
Received: by outflank-mailman (input) for mailman id 1079772;
 Wed, 13 Aug 2025 11:25:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2/kn=2Z=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1um9br-0000Lp-Iw
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 11:25:35 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3a08d9ab-7838-11f0-b898-0df219b8e170;
 Wed, 13 Aug 2025 13:25:33 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-459ddf8acf1so54638945e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 13 Aug 2025 04:25:33 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45a16ddb5a1sm28138775e9.8.2025.08.13.04.25.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Aug 2025 04:25: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>
X-Inumbo-ID: 3a08d9ab-7838-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755084333; x=1755689133; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=UhJnWWdnx73cvIIqqsYygJXEAdzFo2QL32uSi3XP3fg=;
        b=uAyTV9EcKxxQY+E7y3XDW/3XduzXAND71BJaoRkUKChbjw6RlwBMmntlBn6sRurgfR
         ox9erWrBMKQWv0W37hZYgaJIw4MH22kMIuCb5KLdZ/BuhBFrCGR9jUbVTquT41YClTGC
         b+qfUjvVDwTodVCMI2VHCy2tw1AZMh4UsWd6o=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755084333; x=1755689133;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=UhJnWWdnx73cvIIqqsYygJXEAdzFo2QL32uSi3XP3fg=;
        b=SLlVpuqIYDfLlVlaNiBMJr93o5GnGf/cHPd9L3zx2AuJWeaTQlwzOuWd3TyYWIK1mA
         38KDqVIl2GjtOElh23YnqAuVyP6gYEPzPptB/ZvVu6EsRYkTjo3IIBwKKB+u2Hwul/Ul
         3ZvOPE2EqndyY0+mWJMPdD/Pz4p3gKD+pB4sZ0T4RaUE31o/WUU2Qqme4U4jYRvipvi6
         WlH0teexQ74sDOQN73lxXaTW02qy77O3VhwJr7CHNIX9o5GlaNtVdgKezubHyJBYfy9v
         cYJ4kpTBd+15P2kETbpm++AtO3e3Cym+uCJSfZTz1nP2Ig/TSov+RWaZ7hAFseKRohG8
         6oAA==
X-Forwarded-Encrypted: i=1; AJvYcCV6JGONbCinsXAHCwns1pLBTm5Dd1j9juVp/gpW3gRiDLIYBQI5AMVIWtPbwVSRSd3thZU5ywd4KWY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw3w8AC4thRTqSOJX+jbNiz5T5uIRMnPZUxIpcuH+12EEobLtMa
	1C2Cx4MHaHGKtr5FRVlqsEx+SGoNsyoH32dH0FKLRzJChoEnpnlguYNCJgDTWxMC8Rg=
X-Gm-Gg: ASbGncuM9IPiD+ppOcZgbOBCEJJjVd9Zx3I4tKzoWTBRcp5eA3SpgqQDmpMUIXrMhsF
	2GVnAENRgVEbsykn025YylhCA26nMaxPXzDnIUPI72rD0ARffh0dqood46mzobL1H9Y/3J3jqhS
	kolM/kbHHgwgOVPUYjYLBYw98NlafAt6kIU5lB6pBUQK7VZW6MEWhKzYp2tOAki6kP5VknGlJtn
	rMD7Hcfdp5hSvAzoZWRgcbQw4E9tiqPMZOr2vMdu3IvXsmYMa0K5jWVcmQAmWTUVt1ZdF6m8ERA
	OrYBFxawLrCdO15tim4ImL8YVne+pMgXtGNXAmRmf+JAOzNTeLjvVg/pkDU34E4kNFgzkpJ1WV8
	oUR4h6+WiPqf43OVeYCc8FB6xdSDDhTJ8CIPCGxg+qcgLpMAuZWA6po6WduCu4aKmSS6n
X-Google-Smtp-Source: AGHT+IFOQmA3ZZqZEhCByKGgzaTy3+SKFX33jVzVLP+YI04vdEj6triXIxPmmboEc7a+lm+/SvYowQ==
X-Received: by 2002:a05:600c:4711:b0:456:18ca:68db with SMTP id 5b1f17b1804b1-45a1660b594mr21967145e9.8.1755084333069;
        Wed, 13 Aug 2025 04:25:33 -0700 (PDT)
Message-ID: <9e955bff-c145-4a52-af4f-a7055fc9aa67@citrix.com>
Date: Wed, 13 Aug 2025 12:25:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 09/22] x86/traps: Move load_system_tables() into
 traps-setup.c
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-10-andrew.cooper3@citrix.com>
 <a4a88d7a-8c1f-4170-a1fe-afafcad0c8ea@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: <a4a88d7a-8c1f-4170-a1fe-afafcad0c8ea@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12/08/2025 10:19 am, Jan Beulich wrote:
> On 08.08.2025 22:23, Andrew Cooper wrote:
>> Switch it to Xen coding style and fix MISRA violations.
> That were all ul -> UL suffix transformations, afaics?

Yes.

>
>>  Make it static as
>> there are no external caller now.
>>
>> Since commit a35816b5cae8 ("x86/traps: Introduce early_traps_init() and
>> simplify setup"), load_system_tables() is called later on the BSP, so the
>> SYS_STATE_early_boot check can be dropped from the safety BUG_ON().
>>
>> Move the BUILD_BUG_ON() into build_assertions(),
> I'm not quite convinced of this move - having the related BUILD_BUG_ON()
> and BUG_ON() next to each other would seem better to me.

I don't see a specific reason for them to be together, and the comment
explains what's going on.

With FRED, we want a related BUILD_BUG_ON(), but there's no equivalent
BUG_ON() because MSR_RSP_SL0 will #GP on being misaligned.

>> @@ -139,3 +258,16 @@ void asmlinkage ap_early_traps_init(void)
>>  {
>>      load_system_tables();
>>  }
>> +
>> +static void __init __maybe_unused build_assertions(void)
>> +{
>> +    /*
>> +     * This is best-effort (it doesn't cover some padding corner cases), but
>> +     * is preforable to hitting the check at boot time.
> Nit: "preferable"

Fixed.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Aug 13 11:36:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 11:36:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079781.1440469 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1um9m3-00022S-I2; Wed, 13 Aug 2025 11:36:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079781.1440469; Wed, 13 Aug 2025 11:36: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 1um9m3-00022L-EY; Wed, 13 Aug 2025 11:36:07 +0000
Received: by outflank-mailman (input) for mailman id 1079781;
 Wed, 13 Aug 2025 11:36:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2/kn=2Z=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1um9m2-00022F-29
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 11:36:06 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b259b5a8-7839-11f0-a328-13f23c93f187;
 Wed, 13 Aug 2025 13:36:05 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-459e39ee7ccso62573745e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 13 Aug 2025 04:36:05 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45a16deecbasm27880405e9.21.2025.08.13.04.36.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Aug 2025 04:36:03 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b259b5a8-7839-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755084964; x=1755689764; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=BpRFVoGmBml0++sWbPNlu2ABBbNxpkPpye0Kz8hW9L0=;
        b=GhMybSawqgDSQi//5V1OdctRsuIHFt/qECVPh0HJbDdeQ+oR2krmxBJnKwRCTsjStT
         kCrL01IhpeqBZjW/ECOUDBoX9EMBxFV+iduUhB491h6e5uq2s8LOsc0GTLdYJmzo63IT
         i3pyS4v0peL5ZA0zXtwQT9mDrj7M2FDydWVaU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755084964; x=1755689764;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BpRFVoGmBml0++sWbPNlu2ABBbNxpkPpye0Kz8hW9L0=;
        b=uKSmAiDeJ6g1hqHn4uO6lpQuAa/FxlfNl9p8/2dPUGwL1LrDHhS/Z5+xxcPDk5dzDC
         +BraqRs363d4SBWFTS6nZdzv9e/Kw4zy+seeDilZdJfy44Tq/TnJrVrEMBFfKIdfW/Z4
         Jz41HgqIy9CTBfz3YZlSjy2IIDzuV3mZ2HUMXscOO9qqSf90oYmhl6R6MBmlps4R8A9w
         Oxikm+SJWqzeZ7ICAHpFuwXg5P2VHkT0+1i2sIBNPgCjLLEZpyrIg94z+T82DRFnnLcc
         yru6VxS0Y2ngbkJIm+6lf3xXwlsk71G4bFEXmx4eysQd2QXUFBS1YYzl5XAXvakn8eZm
         HIgg==
X-Gm-Message-State: AOJu0YzOk0TUGOdHaHYoGMFZBqqFgs1bSX0+QgTq0rauhFBFfNaQMaMt
	6c3WBGK20BuEp9GjX6ci4O3FJh5r3UY0e1IiRDgLn0dNiqvpg+TuflTvquAshDz+d6E=
X-Gm-Gg: ASbGnctMRSkR5PCqnGQFLs93Q4LjKjhBkR6w3Qk/VcF3lU66ttuqEEDSiFZFYMcbP5/
	BnEOpF9vT54vn9zcBd5EVWfQ+xP7olU5cIL2XCg8YD38iQMSTZdlxE8Nhr33tVqFmCABHFdgPa6
	Y2GIC0sNnnu7BsHAeKsHjRZNHlkQ693Z3f0CPLJ4bqQSYaOPo98f4mRHCiiTJrxscmBlpFjfB0W
	FvgIOT5KQME7hFWBfYz9ionSyi+rWL0WHhupUU4pfeo579Rr2rEq2Xf8H+TkYPMYYYMWhVAD8NS
	LOJpxe6s9oF3n2kGoeyG0EmI8FLBJV53rhSpMdgt3Nz8rL7BXP3smu4fw5wu63p/8iqs5IJaSYc
	wKN/Sw1e1WiYOWQUbLeWFpJCL1MjwvdzEdCTsO/2LwjV4opL1BKgnnFs1mOwRiIIV40c9
X-Google-Smtp-Source: AGHT+IEDqLNWJR/7zRZQiv5ZiHj/7JYeh8bR0T18Y/Tmyx70JNwrTUqbRJe3E7FVC/3y+eV0uLVaUQ==
X-Received: by 2002:a05:600c:1ca4:b0:458:b01c:8f with SMTP id 5b1f17b1804b1-45a19c9f89bmr3703235e9.8.1755084964260;
        Wed, 13 Aug 2025 04:36:04 -0700 (PDT)
Message-ID: <7e906964-b07d-4205-a683-e665f19d5edc@citrix.com>
Date: Wed, 13 Aug 2025 12:36:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 09/22] x86/traps: Move load_system_tables() into
 traps-setup.c
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Jan Beulich <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-10-andrew.cooper3@citrix.com>
 <80285a06f5d4fb3bd3e378317cca61ca@bugseng.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <80285a06f5d4fb3bd3e378317cca61ca@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12/08/2025 10:43 am, Nicola Vetrini wrote:
> On 2025-08-08 22:23, Andrew Cooper wrote:
>> diff --git a/xen/arch/x86/traps-setup.c b/xen/arch/x86/traps-setup.c
>> index 8ca379c9e4cb..13b8fcf0ba51 100644
>> --- a/xen/arch/x86/traps-setup.c
>> +++ b/xen/arch/x86/traps-setup.c
>> @@ -19,6 +20,124 @@ boolean_param("ler", opt_ler);
>>
>> Â void nocall entry_PF(void);
>>
>> +/*
>> + * Sets up system tables and descriptors for IDT devliery.
>> + *
>> + * - Sets up TSS with stack pointers, including ISTs
>> + * - Inserts TSS selector into regular and compat GDTs
>> + * - Loads GDT, IDT, TR then null LDT
>> + * - Sets up IST references in the IDT
>> + */
>> +static void load_system_tables(void)
>> +{
>> +Â Â Â  unsigned int i, cpu = smp_processor_id();
>> +Â Â Â  unsigned long stack_bottom = get_stack_bottom(),
>> +Â Â Â Â Â Â Â  stack_top = stack_bottom & ~(STACK_SIZE - 1);
>> +Â Â Â  /*
>> +Â Â Â Â  * NB: define tss_page as a local variable because clang 3.5
>> doesn't
>> +Â Â Â Â  * support using ARRAY_SIZE against per-cpu variables.
>> +Â Â Â Â  */
>> +Â Â Â  struct tss_page *tss_page = &this_cpu(tss_page);
>> +Â Â Â  idt_entry_t *idt = this_cpu(idt);
>> +
>
> Given the clang baseline this might not be needed anymore?

Hmm.Â  While true, looking at 51461114e26, the code is definitely better
written with the tss_page variable and we wouldn't want to go back to
the old form.

I think that I'll simply drop the comment.

~Andrew

P.S.

Generally speaking, because of the RELOC_HIDE() in this_cpu(), any time
you ever want two accesses to a variable, it's better (code gen wise) to
construct a pointer to it and use the point multiple times.

I don't understand why there's a RELOC_HIDE() in this_cpu().Â  The
justification doesn't make sense, but I've not had time to explore what
happens if we take it out.


From xen-devel-bounces@lists.xenproject.org Wed Aug 13 11:47:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 11:47:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079791.1440478 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1um9xL-0003l3-GX; Wed, 13 Aug 2025 11:47:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079791.1440478; Wed, 13 Aug 2025 11:47: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 1um9xL-0003kw-Dq; Wed, 13 Aug 2025 11:47:47 +0000
Received: by outflank-mailman (input) for mailman id 1079791;
 Wed, 13 Aug 2025 11:47:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2/kn=2Z=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1um9xK-0003ko-30
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 11:47:46 +0000
Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com
 [2a00:1450:4864:20::429])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4fd64a88-783b-11f0-b898-0df219b8e170;
 Wed, 13 Aug 2025 13:47:38 +0200 (CEST)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-3b78a034f17so4954157f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 13 Aug 2025 04:47:38 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3b8fc28a7b0sm23073146f8f.63.2025.08.13.04.47.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Aug 2025 04:47: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>
X-Inumbo-ID: 4fd64a88-783b-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755085658; x=1755690458; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=iy1tBLDIVk3xzTwJcF3vFaNJwhpfkhjyT2B1lZ9N6JI=;
        b=CrOnp1exa036BuMVpw+sA6aPOGE8aorHSjIrNXyUgE9qdI/aqVtz2cbXB9R3s3isj7
         Z6SAkFVANeFeyN7G+gCuAHw+OID5/TZtjAXL3+/dcNLK5PuHvyt76Jj9qViUPdYGGYwB
         Qqf7rKPz5Fg2UWh8aPj+MiG7LgSFLa3A+ZRx0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755085658; x=1755690458;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=iy1tBLDIVk3xzTwJcF3vFaNJwhpfkhjyT2B1lZ9N6JI=;
        b=nPPnbi8P5bhlm6jTXenWsgilCMFaSs43Y/wr/8RD3B2iIrUYp6Y9tqRtp6C/e5glnH
         qoFVouTbwOkVgvT9jlol3lhuujpQdsIozTsqPcA55D98O0Gc3KC+CEf/cjEC8hsEBkq3
         0Zh1EwDzeM+E7CfZjsBtfxnlUQzrK/SAn85/MfcemEpcWuCvZueDU4Iy1zmUEN7+1ule
         tcvBLb1ZJqtHaD2eP/MQ9ISSYGpOvocgZKZIb6DslWY71TJrYuUEgYC5JwASdBDERMXf
         vbATpw7BzKUI9+NvqsgEWUj9ZxSpQBJdvMAcPevypSlxGdXo+ATjaLRyaCs3YS34lid2
         C8+Q==
X-Forwarded-Encrypted: i=1; AJvYcCVZYRmhHwLRmeME6fCMTE0V29yoENQCPEDtM1Kq5Q/QKgZhOh8tpiYWe6VjNtaEiiUKVskVK2UjQd8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwE7A01d+3RLSrtMwzubIJXizzBy628+YNGCj5tIBaa/NzW4m0q
	ioAVNI/cLxYUclA7tW2HUkmM/kYhc9bOup03U8O+cImIzcPw2WwpJ2U/lYwvPGcVoAs=
X-Gm-Gg: ASbGncv7UnLddJXvGcecS8MVRdgpdRLWoJViZBSFvMS9WApLCiME1CeTc6j+ndBF/md
	hKNaqD4c1aB9cKWjxAr84wsl/ZT/uW3XygQqa3V0LkrseEdDKg2CW5JGSOqDBGhPpJznsRXWYLd
	omd+HNH9+6xn4755peqSKq3X1TSdkuYUutr+Xl4/9mPy8VSjSpRws0HDu/D7WXgYr3+CXGqHdHT
	DH8r9OU1CDpztRom2t2nko9nIzRAzT5A3/WSVI8r4c7fI2V7Z1avCn2xOIXtKf9uCxJMWfiEX8z
	WvRdFRnAicyMe6KOSNyNQispMKo86tfNdj6DbJ2M++EUnzn3+Vp1VKDn4PoirZzo2aU6zNLgQZY
	rTW3G8osMYxjlYPueBDIDTfKA1Rvz2Bm8QeKzVWjxrjG19pgSsqamWXZyW6vXLpRSrtTv
X-Google-Smtp-Source: AGHT+IFj2U5g5L4A/6mfvy60zsXMic7fuMjZcMnAGsCRvxY9EsvCBOPq3KF8OOh4BcqamhgKFlQccA==
X-Received: by 2002:a05:6000:4285:b0:3a5:8934:4940 with SMTP id ffacd0b85a97d-3b917f417ffmr1827310f8f.50.1755085658099;
        Wed, 13 Aug 2025 04:47:38 -0700 (PDT)
Message-ID: <f3e57860-d4db-43c5-8cb2-29eac2163c1d@citrix.com>
Date: Wed, 13 Aug 2025 12:47:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [Coverity complaint] Re: [PATCH v5] pdx: introduce a new compression
 algorithm based on region offsets
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Community Manager <community.manager@xenproject.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
References: <20250812150624.64898-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: <20250812150624.64898-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12/08/2025 4:06 pm, Roger Pau Monne wrote:
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

Not this patch, but this is probably the best place to report it.

https://scan5.scan.coverity.com/#/project-view/30554/10426?selectedIssue=1662707

Something you did in the series made enough changes in
pfn_pdx_compression_setup() for Coverity to start reporting an issue in
some decade-old code.

The complaint is on line:

277Â Â Â Â ma_va_bottom_maskÂ Â Â =Â (PAGE_SIZEÂ <<Â bottom_shift)Â -Â 1;
CID 1662707: (#1 of 1): Bad bit shift operation (BAD_SHIFT)

34. large_shift: In expression 0x1000 << bottom_shift, left shifting by more than 31 bits
has undefined behavior. The shift amount, bottom_shift, is as much as 63.


The relevant part of earlier analysis seems to be the "i >=
BITS_PER_LONG" check in the order loop, causing Coverity to think that i
can be up to 63.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Aug 13 11:53:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 11:53:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079809.1440489 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umA3E-0005Nq-2R; Wed, 13 Aug 2025 11:53:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079809.1440489; Wed, 13 Aug 2025 11:53: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 1umA3D-0005Nj-Vy; Wed, 13 Aug 2025 11:53:51 +0000
Received: by outflank-mailman (input) for mailman id 1079809;
 Wed, 13 Aug 2025 11:53:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2/kn=2Z=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1umA3C-0005Nd-BL
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 11:53:50 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2bed270c-783c-11f0-b898-0df219b8e170;
 Wed, 13 Aug 2025 13:53:48 +0200 (CEST)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-45a15fd04d9so5743625e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 13 Aug 2025 04:53:48 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45a16dfdb01sm30261665e9.26.2025.08.13.04.53.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Aug 2025 04:53: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>
X-Inumbo-ID: 2bed270c-783c-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755086027; x=1755690827; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=sEgN1NBRp2UQbu6ugHzoR/y9qKrCo5852koNe2J45jY=;
        b=uP8C4mKoTxCz01BNaRda7c6ogzKtbzEcy30mSXQ3TAL8XAJSxubUNowij32BuMCj9X
         M+2ZodZGXnEKkAc8LolXnSNNFkrYp40qB4ql4soZjyWaDQLpv5ct/idyO3gHOyAbvv+X
         RBXK8KsK7tnpdMGhzMmMfGSLcg7jhq4GoNMe8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755086027; x=1755690827;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sEgN1NBRp2UQbu6ugHzoR/y9qKrCo5852koNe2J45jY=;
        b=rgx1obvC32EWtZbJAWJCGTxlf7O5agxbm9sor/MO3gd8zZSRb4o7bhtWlRiAFMCHiK
         5ifCBbXH2qOg/NqCYtmFuyXAAVS5au9kLaNdnkGXVwpZFqj2zJxKjBFuleQwnu+DTyQN
         XeQNV0u8kHmL1mz8TqfaNrsgW2WCUo6Q5MhawWecheMZ7NxB2JW1WG6pwgVtnO3A1N7p
         jUmHgLtRRVpNMR3bDgdtKjHWA5oa5n9lw3yONQYbzWq3Xoo6appDa9P6n2xGmByR8I8K
         9pSAljkMGjaiDj/I27kaY3Ng50kZBMj3e873F4p81HsrpWSUgV3qRNC5CxxcyUPSXRI7
         G0JQ==
X-Forwarded-Encrypted: i=1; AJvYcCUHZRpa/eYiEJ9R2Ee+SqMae8ItrRqTupc6tI8VKOh0A8Ow0lTuSUsqJOQ4T64nOhuwDdJ/iu/qkGA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzzzuohvRqVMEGN+Su9r/atALE5MC1QBvtgznXmXKATNIC3gDzM
	5iQieyijK/FaGTSj9IKyTUTiSSNM8jtrJ3/8Ku+rGRIqElIIJA1f8hqiw0RyDgKlfxQXMdv+zxT
	pjyDs
X-Gm-Gg: ASbGncvmOd1qzg8IOhttpAqC/ffvjk5GrZhdtG4DtN1VKiS78jbZRXQUv6Zkb/YBQgX
	1biU06hy7VBBbN2giCAJ69uxWsCWqXcemJPzJbABbLwCama/HywXepssFOgyaHhT2VVdN2iY1WN
	Snbcwsh62FHKtAXAVMmNaWshMh75FBoGRw48CzZVymZohqGU+MIYM3SzzZIFimYXJs0MzcAhmmu
	pgJIH75af2eSaQtx1bgvuA8CDMPDbzy67lH5jkttZO892FbIjkQmEh/y/wO1+z4KjbXHRq0CIpP
	/Hg1bCnCkxAN+0L3VmTMO+7m6mX/8P4hguiRbG4pVxbI0W0CmwwYwpVzKes2yG6bbzvEJNywMkb
	/K0RRqwnPwqWDMX0CRZwtwOLUjShmWUwdGpkBzg7G6g8utKEXT61qbipgyBYm6HPJ5Z+D
X-Google-Smtp-Source: AGHT+IF1Wo/7udQ7g3xKzCTVNG6LSJABJbb/rM32Bh7Ez55u0dYGApC3Duu0BGdCKExOKqUF8L0qvQ==
X-Received: by 2002:a05:600c:5296:b0:459:d3e2:d743 with SMTP id 5b1f17b1804b1-45a1701b813mr22155885e9.8.1755086027325;
        Wed, 13 Aug 2025 04:53:47 -0700 (PDT)
Message-ID: <3ff00f71-b16e-4426-98f5-27bc6f6b92cf@citrix.com>
Date: Wed, 13 Aug 2025 12:53:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 10/22] x86/traps: Move subarch_percpu_traps_init() into
 traps-setup.c
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-11-andrew.cooper3@citrix.com>
 <646c538a-850a-4370-8132-c06d9be8b422@citrix.com>
 <769ba73f-b490-43db-a056-fc1d95ec9f27@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: <769ba73f-b490-43db-a056-fc1d95ec9f27@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12/08/2025 10:52 am, Jan Beulich wrote:
> On 11.08.2025 10:17, Andrew Cooper wrote:
>> On 08/08/2025 9:23 pm, Andrew Cooper wrote:
>>> ... along with the supporting functions.  Switch to Xen coding style, and make
>>> static as there are no external callers.
>>>
>>> Rename to legacy_syscall_init() as a more accurate name.
>>>
>>> No functional change.
>>>
>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>> ---
>>> CC: Jan Beulich <JBeulich@suse.com>
>>> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
>>> ---
>>>  xen/arch/x86/include/asm/system.h |  2 -
>>>  xen/arch/x86/traps-setup.c        | 97 ++++++++++++++++++++++++++++++-
>>>  xen/arch/x86/x86_64/traps.c       | 92 -----------------------------
>>>  3 files changed, 95 insertions(+), 96 deletions(-)
>>>
>>> diff --git a/xen/arch/x86/include/asm/system.h b/xen/arch/x86/include/asm/system.h
>>> index 3cdc56e4ba6d..6c2800d8158d 100644
>>> --- a/xen/arch/x86/include/asm/system.h
>>> +++ b/xen/arch/x86/include/asm/system.h
>>> @@ -256,6 +256,4 @@ static inline int local_irq_is_enabled(void)
>>>  #define BROKEN_ACPI_Sx          0x0001
>>>  #define BROKEN_INIT_AFTER_S1    0x0002
>>>  
>>> -void subarch_percpu_traps_init(void);
>>> -
>>>  #endif
>>> diff --git a/xen/arch/x86/traps-setup.c b/xen/arch/x86/traps-setup.c
>>> index 13b8fcf0ba51..fbae7072c292 100644
>>> --- a/xen/arch/x86/traps-setup.c
>>> +++ b/xen/arch/x86/traps-setup.c
>>> @@ -2,13 +2,15 @@
>>>  /*
>>>   * Configuration of event handling for all CPUs.
>>>   */
>>> +#include <xen/domain_page.h>
>>>  #include <xen/init.h>
>>>  #include <xen/param.h>
>>>  
>>> +#include <asm/endbr.h>
>>>  #include <asm/idt.h>
>>>  #include <asm/msr.h>
>>>  #include <asm/shstk.h>
>>> -#include <asm/system.h>
>>> +#include <asm/stubs.h>
>>>  #include <asm/traps.h>
>>>  
>>>  DEFINE_PER_CPU_READ_MOSTLY(idt_entry_t *, idt);
>>> @@ -19,6 +21,8 @@ static bool __initdata opt_ler;
>>>  boolean_param("ler", opt_ler);
>>>  
>>>  void nocall entry_PF(void);
>>> +void nocall lstar_enter(void);
>>> +void nocall cstar_enter(void);
>>>  
>>>  /*
>>>   * Sets up system tables and descriptors for IDT devliery.
>>> @@ -138,6 +142,95 @@ static void load_system_tables(void)
>>>      BUG_ON(stack_bottom & 15);
>>>  }
>>>  
>>> +static unsigned int write_stub_trampoline(
>>> +    unsigned char *stub, unsigned long stub_va,
>>> +    unsigned long stack_bottom, unsigned long target_va)
>>> +{
>>> +    unsigned char *p = stub;
>>> +
>>> +    if ( cpu_has_xen_ibt )
>>> +    {
>>> +        place_endbr64(p);
>>> +        p += 4;
>>> +    }
>>> +
>>> +    /* Store guest %rax into %ss slot */
>>> +    /* movabsq %rax, stack_bottom - 8 */
>>> +    *p++ = 0x48;
>>> +    *p++ = 0xa3;
>>> +    *(uint64_t *)p = stack_bottom - 8;
>>> +    p += 8;
>>> +
>>> +    /* Store guest %rsp in %rax */
>>> +    /* movq %rsp, %rax */
>>> +    *p++ = 0x48;
>>> +    *p++ = 0x89;
>>> +    *p++ = 0xe0;
>>> +
>>> +    /* Switch to Xen stack */
>>> +    /* movabsq $stack_bottom - 8, %rsp */
>>> +    *p++ = 0x48;
>>> +    *p++ = 0xbc;
>>> +    *(uint64_t *)p = stack_bottom - 8;
>>> +    p += 8;
>>> +
>>> +    /* jmp target_va */
>>> +    *p++ = 0xe9;
>>> +    *(int32_t *)p = target_va - (stub_va + (p - stub) + 4);
>>> +    p += 4;
>>> +
>>> +    /* Round up to a multiple of 16 bytes. */
>>> +    return ROUNDUP(p - stub, 16);
>>> +}
>>> +
>>> +static void legacy_syscall_init(void)
>>> +{
>>> +    unsigned long stack_bottom = get_stack_bottom();
>>> +    unsigned long stub_va = this_cpu(stubs.addr);
>>> +    unsigned char *stub_page;
>>> +    unsigned int offset;
>>> +
>>> +    /* No PV guests?  No need to set up SYSCALL/SYSENTER infrastructure. */
>>> +    if ( !IS_ENABLED(CONFIG_PV) )
>>> +        return;
>>> +
>>> +    stub_page = map_domain_page(_mfn(this_cpu(stubs.mfn)));
>>> +
>>> +    /*
>>> +     * Trampoline for SYSCALL entry from 64-bit mode.  The VT-x HVM vcpu
>>> +     * context switch logic relies on the SYSCALL trampoline being at the
>>> +     * start of the stubs.
>>> +     */
>>> +    wrmsrl(MSR_LSTAR, stub_va);
>>> +    offset = write_stub_trampoline(stub_page + (stub_va & ~PAGE_MASK),
>>> +                                   stub_va, stack_bottom,
>>> +                                   (unsigned long)lstar_enter);
>>> +    stub_va += offset;
>>> +
>>> +    if ( cpu_has_sep )
>>> +    {
>>> +        /* SYSENTER entry. */
>>> +        wrmsrl(MSR_IA32_SYSENTER_ESP, stack_bottom);
>>> +        wrmsrl(MSR_IA32_SYSENTER_EIP, (unsigned long)sysenter_entry);
>>> +        wrmsr(MSR_IA32_SYSENTER_CS, __HYPERVISOR_CS, 0);
>>> +    }
>>> +
>>> +    /* Trampoline for SYSCALL entry from compatibility mode. */
>>> +    wrmsrl(MSR_CSTAR, stub_va);
>>> +    offset += write_stub_trampoline(stub_page + (stub_va & ~PAGE_MASK),
>>> +                                    stub_va, stack_bottom,
>>> +                                    (unsigned long)cstar_enter);
>>> +
>>> +    /* Don't consume more than half of the stub space here. */
>>> +    ASSERT(offset <= STUB_BUF_SIZE / 2);
>>> +
>>> +    unmap_domain_page(stub_page);
>>> +
>>> +    /* Common SYSCALL parameters. */
>>> +    wrmsrl(MSR_STAR, XEN_MSR_STAR);
>>> +    wrmsrl(MSR_SYSCALL_MASK, XEN_SYSCALL_MASK);
>>> +}
>> These want adjusting to use wrmsrns(), similarly to the previous patch.Â 
>> Fixed locally.
> Also the one higher in the function, I suppose.

All of them.

I'm not aware of anywhere were we want serialising behaviour, except for
ICR which is buggly non-serialising and has workarounds.

But I'm also not sure enough of this to suggest that we make wrmsr() be
wrmsrns() by default.

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

Thanks.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Aug 13 12:11:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 12:11:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079822.1440500 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umAK7-0008I1-Kc; Wed, 13 Aug 2025 12:11:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079822.1440500; Wed, 13 Aug 2025 12:11:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umAK7-0008Hu-Gp; Wed, 13 Aug 2025 12:11:19 +0000
Received: by outflank-mailman (input) for mailman id 1079822;
 Wed, 13 Aug 2025 12:11:17 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1umAK5-0008Ho-Tv
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 12:11:17 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1umAK3-003Lxi-31;
 Wed, 13 Aug 2025 12:11:16 +0000
Received: from [2a02:8012:3a1:0:58a4:4542:aa8b:5a81]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1umAK3-002P2u-2e;
 Wed, 13 Aug 2025 12:11:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=m9Ss3wLK1+Z4+aprCoYp4mN2OhDzKmFAJEWOd2AHKbA=; b=Qx9kL4VkwxLuX0rY4VdIyobaPd
	8rwcsrw6dnjb+lZPYu54BuHSNF8VPHhaDAwiJHHFwWlVsl6IUcfCWetYlygAfOrvF9LZojmmYyB7/
	KsNapgj194zFGa70qpxv+i+1fIn3saaj4OZExo2QFxutNcGD4H0u/9Lb8mirg29V4ThM=;
Message-ID: <b1f79b84-d0c4-4807-87a7-1cf94e58ecee@xen.org>
Date: Wed, 13 Aug 2025 13:11:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 00/20] Add SMMUv3 Stage 1 Support for XEN guests
Content-Language: en-GB
To: Milan Djokic <milan_djokic@epam.com>,
 Julien Grall <julien.grall.oss@gmail.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 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>, Anthony PERARD <anthony.perard@vates.tech>,
 Nick Rosbrook <enr0n@ubuntu.com>, George Dunlap <gwd@xenproject.org>,
 Juergen Gross <jgross@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
References: <cover.1754580687.git.milan_djokic@epam.com>
 <CAJ=z9a1eM6M+Gagond9TiFtF7c7EEQKOKHANcvDWDhW_3JzqOA@mail.gmail.com>
 <12ba4388-ee23-4e17-910f-9702271865ad@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <12ba4388-ee23-4e17-910f-9702271865ad@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 13/08/2025 11:04, Milan Djokic wrote:
> Hello Julien,

Hi Milan,

> 
> We have prepared a design document and it will be part of the updated 
> patch series (added in docs/design). I'll also extend cover letter with 
> details on implementation structure to make review easier.

I would suggest to just iterate on the design document for now.

> Following is the design document content which will be provided in 
> updated patch series:
> 
> Design Proposal: Add SMMUv3 Stage-1 Support for XEN Guests
> ==========================================================
> 
> Author: Milan Djokic <milan_djokic@epam.com>
> Date:Â Â  2025-08-07
> Status: Draft
> 
> Introduction
> ------------
> 
> The SMMUv3 supports two stages of translation. Each stage of translation
> can be independently enabled. An incoming address is logically
> translated from VA to IPA in stage 1, then the IPA is input to stage 2
> which translates the IPA to the output PA. Stage 1 translation support
> is required to provide isolation between different devices within the OS.
> 
> Xen already supports Stage 2 translation but there is no support for
> Stage 1 translation. This design proposal outlines the introduction of
> Stage-1 SMMUv3 support in Xen for ARM guests.
> 
> Motivation
> ----------
> 
> ARM systems utilizing SMMUv3 require Stage-1 address translation to
> ensure correct and secure DMA behavior inside guests.

Can you clarify what you mean by "correct"? DMA would still work without 
stage-1.
> 
> This feature enables:
> - Stage-1 translation in guest domain
> - Safe device passthrough under secure memory translation
> 
> Design Overview
> ---------------
> 
> These changes provide emulated SMMUv3 support:
> 
> - SMMUv3 Stage-1 Translation: stage-1 and nested translation support in
>  Â  SMMUv3 driver
> - vIOMMU Abstraction: virtual IOMMU framework for guest Stage-1 handling

So what are you planning to expose to a guest? Is it one vIOMMU per 
pIOMMU? Or a single one?

Have you considered the pros/cons for both?
> - Register/Command Emulation: SMMUv3 register emulation and command
>  Â  queue handling

For each pSMMU, we have a single command queue that will receive command 
from all the guests. How do you plan to prevent a guest hogging the 
command queue?

In addition to that, AFAIU, the size of the virtual command queue is 
fixed by the guest rather than Xen. If a guest is filling up the queue 
with commands before notifying Xen, how do you plan to ensure we don't 
spend too much time in Xen (which is not preemptible)?

Lastly, what do you plan to expose? Is it a full vIOMMU (including event 
forwarding)?

> - Device Tree Extensions: adds iommus and virtual SMMUv3 nodes to
>  Â  device trees for dom0 and dom0less scenarios
> - Runtime Configuration: introduces a 'viommu' boot parameter for
>  Â  dynamic enablement
> 
> Security Considerations
> ------------------------
> 
> viommu security benefits:
> - Stage-1 translation ensures guest devices cannot perform unauthorized
>  Â  DMA
> - Emulated SMMUv3 for domains removes dependency on host hardware while
>  Â  maintaining isolation

I don't understand this sentence.

> 
> Observations and Potential Risks
> --------------------------------
> 
> 1. Observation:
> Support for Stage-1 translation introduces new data structures
> (s1_cfg and s2_cfg) and logic to write both Stage-1 and Stage-2 entries
> in the Stream Table Entry (STE), including an abort field for partial
> config states.
> 
> Risk:
> A partially applied Stage-1 configuration might leave guest DMA
> mappings in an inconsistent state, enabling unauthorized access or
> cross-domain interference.

I don't understand how a misconfigured stage-1 could lead to 
cross-domain interference. Can you clarify?

> 
> Mitigation (Handled by design):
> Both s1_cfg and s2_cfg are written atomically. The abort field ensures
> Stage-1 config is only used when fully applied. Incomplete configs are
> ignored by the hypervisor.
> 
> 2. Observation:
> Guests can now issue Stage-1 cache invalidations.
> 
> Risk:
> Failure to propagate invalidations could leave stale mappings, enabling
> data leakage or misrouting.

This is a risk from the guest PoV, right? IOW, this would not open up a 
security hole in Xen.

> 
> Mitigation (Handled by design):
> Guest invalidations are forwarded to the hardware to ensure IOMMU
> coherency.
> 
> 3. Observation:
> The feature introduces large functional changes including the vIOMMU
> framework, vsmmuv3 devices, command queues, event queues, domain
> handling, and Device Tree modifications.
> 
> Risk:
> Increased attack surface with risk of race conditions, malformed
> commands, or misconfiguration via the device tree.
> 
> Mitigation:
> - Improved sanity checks and error handling
> - Feature is marked as Tech Preview and self-contained to reduce risk
>  Â  to unrelated code

Surely, you will want to use the code in production... No?

> 
> 4. Observation:
> The implementation supports nested and standard translation modes,
> using guest command queues (e.g. CMD_CFGI_STE) and events.
> 
> Risk:
> Malicious commands could bypass validation and corrupt SMMUv3 state or
> destabilize dom0.
> 
> Mitigation (Handled by design):
> Command queues are validated, and only permitted configuration changes
> are accepted. Handled in vsmmuv3 and cmdqueue logic.

I didn't mention anything in obversation 1 but now I have to say it... 
The observations you wrote are what I would expect to be handled in any 
submission to our code base. This is the bare minimum to have the code 
secure. But you don't seem to address the more subttle ones which are 
more related to scheduling issue (see some above). They require some 
design and discussion.

> 
> 5. Observation:
> Device Tree changes inject iommus and vsmmuv3 nodes via libxl.
> 
> Risk:
> Malicious or incorrect DT fragments could result in wrong device
> assignments or hardware access.
> 
> Mitigation:
> Only vetted and sanitized DT fragments are allowed. libxl limits what
> guests can inject.

Today, libxl doesn't do any sanitisation on the DT. In fact, this is 
pretty much impossible because libfdt expects trusted DT. Is this 
something you are planning to change?
> 
> 6. Observation:
> The feature is enabled per-guest via viommu setting.
> 
> Risk:
> Guests without viommu may behave differently, potentially causing
> confusion, privilege drift, or accidental exposure.
> 
> Mitigation:
> Ensure downgrade paths are safe. Perform isolation audits in
> multi-guest environments to ensure correct behavior.
> 
> Performance Impact
> ------------------
> 
> Hardware-managed translations are expected to have minimal overhead.
> Emulated vIOMMU may introduce some latency during initialization or
> event processing.

Latency to who? We still expect isolation between guests and a guest 
will not go over its time slice.

For the guest itself, the main performance impact will be TLB flushes 
because they are commands that will end up to be emulated by Xen. 
Depending on your Linux configuration (I haven't checked other), this 
will either happen every unmap operation or they will be batch. The 
performance of the latter will be the worse one.

Have you done any benchmark to confirm the impact? Just to note, I would 
not gate the work for virtual SMMUv3 based on the performance. I think 
it is ok to offer the support if the user want extra security and 
doesn't care about performance. But it would be good to outline them as 
I expect them to be pretty bad...

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Wed Aug 13 12:29:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 12:29:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079835.1440521 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umAbE-0001i6-2s; Wed, 13 Aug 2025 12:29:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079835.1440521; Wed, 13 Aug 2025 12:29: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 1umAbE-0001hz-0I; Wed, 13 Aug 2025 12:29:00 +0000
Received: by outflank-mailman (input) for mailman id 1079835;
 Wed, 13 Aug 2025 12:28:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2/kn=2Z=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1umAbD-0001ht-B9
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 12:28:59 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 15a6ffc5-7841-11f0-a328-13f23c93f187;
 Wed, 13 Aug 2025 14:28:58 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-45a16e52e54so4609595e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 13 Aug 2025 05:28:58 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45a1a53905asm916005e9.22.2025.08.13.05.28.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Aug 2025 05:28: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>
X-Inumbo-ID: 15a6ffc5-7841-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755088137; x=1755692937; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=kspBEk2ejV6PU0W2SBmovNS8ntq174ozRTD+odW8AWI=;
        b=aX8xSWwbnViQbecrrg5RPwH0PGJwFjdaTxAlq9Nc4GmWiissnFNoyp6QO6qGi9wKSc
         1SLbUZh8yM5PmEqqLtTICBF/v600syYiEjE4+o+/NEhNznGfaNjqJE9hAB/QMMtl1xyl
         +GLqdhEVDw6Sf66GAjY4l/TjRDSM+T2V9IIXE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755088137; x=1755692937;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kspBEk2ejV6PU0W2SBmovNS8ntq174ozRTD+odW8AWI=;
        b=SHP9hhJWjZWxU4mfFDiHPqE2+EWd/hRgpGHFoMj437B1jUULVxlKY4jmrYZOvlooan
         Xdh6iCqqMv7HLQkOW9o8ZHsZ+Wsv/PR75ViztoTXaITVzI5c1e7oESpxYHZADTcmjJrD
         4XqFZPvepAoiTSsict/F+fho2EsQp97+Cyym1WvfAuTwdENILQ9eVMC/kb1Rbj5MXGlI
         LYrhFtFxaKkrHgsqEUD1pgcHx4u7VHWGbXTNrB2dA/JxpUqmpXzCegO8mOpToJM4ez3L
         3ysHW53qYPSkMzJAtfGlo2NbvOv9maXyJcACr+amgmZcv/EtGkPkbQ+nxh54p5tSUz+C
         PAZA==
X-Gm-Message-State: AOJu0YyqRNL8mTLX5Mb5jj32xVEbgrXV9RnDk868IbkzUPsjg0rNTF4p
	ewZ5iZ17RQusm97UolJngVpRbmit+8ucvA4w3tZ/Rl2ce1Nz544laGIJ3udT4qzofu+cAxDIXu6
	1ccdS
X-Gm-Gg: ASbGnctkKNLpVyrorsRZlgJqmveHvXYWpM6yok/t/mqdC4oeGOjlA/Ko+HXHjKw+IpZ
	i7JHrg4HPEPfTUxEe4q9n8lwSFsufPVggYlqEbdws4NVc/ub2bSIbIFn0yIvZ/jA2JaftwEjLSW
	bjF2M1ocvgkh0fb0tc5M9aTSQ92xpUO20Lz6CiWKWxYD9qcCLw6kPdfYLtarKwBeCNtIYvzP8H/
	oIZfaUJtJBXE68bAplpahzFttiteI21hiyr1C2YHgNIID+gD7C686jwZFVHlBrDYLvIHFZTuIxR
	CvJryLxekpH/Bi4wvnwsMxtGVBNk4UcVm9eNKs4m0VXUeNdLkonl6lNpdkPj1QB5YynhDUGIzRS
	Srl5OnLhMxT5B5BjLOvWXnB46qGHkKPCsYTRIw1alKMZ70xp27P2phRtR9deAclMwIf7S
X-Google-Smtp-Source: AGHT+IEMoFJVAD4LwtrpwcZgGbCf8fpx/HI3S9ZOhFx4Yz/UYNgQldbBX20cq2Lm5b4Pn6wt57d6qg==
X-Received: by 2002:a05:600c:35c5:b0:459:d3ce:2cea with SMTP id 5b1f17b1804b1-45a19fc88edmr3650545e9.6.1755088137242;
        Wed, 13 Aug 2025 05:28:57 -0700 (PDT)
Message-ID: <0beb69c9-9286-4780-951a-cc47b9a4624b@citrix.com>
Date: Wed, 13 Aug 2025 13:28:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 13/22] x86: FRED enumerations
To: 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: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-14-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: <20250808202314.1045968-14-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08/08/2025 9:23 pm, Andrew Cooper wrote:
> diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
> index a45ce106e210..90cbad13a7c7 100644
> --- a/xen/arch/x86/Kconfig
> +++ b/xen/arch/x86/Kconfig
> @@ -57,6 +57,10 @@ config HAS_CC_CET_IBT
>  	# Retpoline check to work around https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93654
>  	def_bool $(cc-option,-fcf-protection=branch -mmanual-endbr -mindirect-branch=thunk-extern) && $(as-instr,endbr64)
>  
> +config HAS_AS_FRED
> +	# binutils >= 2.41 or LLVM >= 19
> +	def_bool $(as-instr,eretu;lkgs %ax)
> +
>  menu "Architecture Features"
>  
>  source "arch/x86/Kconfig.cpu"
> diff --git a/xen/arch/x86/include/asm/asm-defns.h b/xen/arch/x86/include/asm/asm-defns.h
> index 61a5faf90446..2e5200b94b82 100644
> --- a/xen/arch/x86/include/asm/asm-defns.h
> +++ b/xen/arch/x86/include/asm/asm-defns.h
> @@ -4,6 +4,15 @@
>      .byte 0x0f, 0x01, 0xfc
>  .endm
>  
> +#ifndef CONFIG_HAS_AS_FRED
> +.macro eretu
> +    .byte 0xf3, 0x0f, 0x01, 0xca
> +.endm
> +.macro erets
> +    .byte 0xf2, 0x0f, 0x01, 0xca
> +.endm
> +#endif

Seeing as I know you are going to be unhappy with the Kconfig...

I think I'm dev complete on the PV support now, and there's not an LKGS
in sight.

We don't strictly need the conditional in asm-defns.h, and if we don't
need it in C either then we can drop the Kconfig entirely.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Aug 13 12:38:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 12:38:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079844.1440531 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umAkS-0003Ms-SO; Wed, 13 Aug 2025 12:38:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079844.1440531; Wed, 13 Aug 2025 12:38: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 1umAkS-0003Ml-PK; Wed, 13 Aug 2025 12:38:32 +0000
Received: by outflank-mailman (input) for mailman id 1079844;
 Wed, 13 Aug 2025 12:38:31 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1umAkR-0003Mf-Lf
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 12:38:31 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1umAkR-003MQu-04;
 Wed, 13 Aug 2025 12:38:31 +0000
Received: from [2a01:cb15:80df:da00:7360:a082:15b4:b94d] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1umAkQ-002Q8f-2s;
 Wed, 13 Aug 2025 12:38:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Transfer-Encoding:
	Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date;
	bh=7yLt10OAgku71FV+8rl0wrlO69/0oWB/qZHmundCnFo=; b=5ysNb0qB/5Kes+w18Q8O2aa340
	xvJkgDLnfpy1VjMGjUXYIViq1hFdVosWGZ3bD+1xN93Dt+GNmgdSRtMCVdGaeyqIyRoEh1sQasEQg
	Iiasuob2wkAcDWmEFuppdmXEQxj1tDr0VacNIbxThuXOxx+nb4Zhwo1qM7fgx9QZV2SQ=;
Date: Wed, 13 Aug 2025 14:38:29 +0200
From: Anthony PERARD <anthony@xenproject.org>
To: Marek =?iso-8859-1?Q?Marczykowski-G=F3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN PATCH v2 1/3] CI: Rework run-tools-test exit path
Message-ID: <aJyHRQJTcmIlUVWD@l14>
References: <20250730152602.45436-1-anthony@xenproject.org>
 <20250730152602.45436-2-anthony@xenproject.org>
 <aJd1yaBFSjTx_wsl@mail-itl>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <aJd1yaBFSjTx_wsl@mail-itl>

On Sat, Aug 09, 2025 at 06:22:33PM +0200, Marek Marczykowski-Górecki wrote:
> On Wed, Jul 30, 2025 at 05:26:00PM +0200, Anthony PERARD wrote:
> > From: Anthony PERARD <anthony.perard@vates.tech>
> > 
> > The main script expect to find the string "$passed" or it just timeout
> > and doesn't try to download the junit file in this case. So we ignore
> > the return value of run-tools-test to always print "$passed" and
> > instead look for failure in the generated junit file. If the junit
> > report is incomplete, this will also result in a failure of the job.
> > 
> > Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>
> > ---
> > 
> > Notes:
> >     Changes in v2:
> >     - This squash both patch "CI: Ignore run-tools-test return value" and
> >       "CI: Have the gitlab job fail on tools/tests failure"
> >     - grep for '<failure type="failure"' instead of '</failure>'
> > 
> >  automation/scripts/qubes-x86-64.sh | 13 +++++++++++--
> >  1 file changed, 11 insertions(+), 2 deletions(-)
> > 
> > diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh
> > index 2750d24eba..21dcd9b063 100755
> > --- a/automation/scripts/qubes-x86-64.sh
> > +++ b/automation/scripts/qubes-x86-64.sh
> > @@ -135,10 +135,11 @@ done
> >      ### tests: tools-tests-pv, tools-tests-pvh
> >      "tools-tests-pv"|"tools-tests-pvh")
> >          retrieve_xml=1
> > -        passed="test passed"
> > +        passed="run-tools-test over"
> >          domU_check=""
> >          dom0_check="
> > -/root/run-tools-tests /usr/lib/xen/tests /tmp/tests-junit.xml && echo \"${passed}\"
> > +/root/run-tools-tests /usr/lib/xen/tests /tmp/tests-junit.xml ||:
> > +echo \"${passed}\"
> >  nc -l -p 8080 < /tmp/tests-junit.xml >/dev/null &
> >  "
> >          if [ "${test_variant}" = "tools-tests-pvh" ]; then
> > @@ -297,6 +298,14 @@ TEST_RESULT=$?
> >  
> >  if [ -n "$retrieve_xml" ]; then
> >      nc -w 10 "$SUT_ADDR" 8080 > tests-junit.xml </dev/null
> > +    # Findout if one of the test failed
> > +    if ! grep -q '</testsuites>' tests-junit.xml; then
> > +        echo "ERROR: tests-junit.xml is incomplete or missing."
> > +        TEST_RESULT=1
> > +    # Only match "type=failure" to allow to "tolerable" for example.
> > +    elif grep -q '<failure type="failure"' tests-junit.xml; then
> 
> Maybe drop -q here, or add some message? Otherwise it's not obvious why it failed. See for example:
> https://gitlab.com/xen-project/people/marmarek/xen/-/jobs/10968674458
> 
> Yes, you can click "Test summary" link, but it isn't obvious by looking
> at the final part of the log. Alternatively, this can be combined with
> my "CI: list failed tests at the end of tools job" patch (already
> reviewed by Andrew), but I had an impression this series is supposed to
> be included instead of that one.

Dropping "-q" sounds good here, it mean in your pipeline example we
would have the following in the logs:
   <failure type="failure" message="binary /usr/lib/xen/tests/test_vpci exited with code 134">
Which should be could enough for now.

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Wed Aug 13 12:41:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 12:41:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079854.1440541 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umAmy-0004tx-8B; Wed, 13 Aug 2025 12:41:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079854.1440541; Wed, 13 Aug 2025 12:41: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 1umAmy-0004tq-50; Wed, 13 Aug 2025 12:41:08 +0000
Received: by outflank-mailman (input) for mailman id 1079854;
 Wed, 13 Aug 2025 12:41:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1zV9=2Z=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1umAmx-0004tk-7G
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 12:41:07 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c6881f19-7842-11f0-a328-13f23c93f187;
 Wed, 13 Aug 2025 14:41:04 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-45a12b3f4b3so13797735e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 13 Aug 2025 05:41:04 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-45a1a5961a0sm780195e9.27.2025.08.13.05.41.03
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Aug 2025 05: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>
X-Inumbo-ID: c6881f19-7842-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755088864; x=1755693664; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=moBFo76hgs7I4C2mJOuSPtrqOboCJxWUAQ/iGAXO+dU=;
        b=E+RsYtIFdJJgVGfgF7h6fbanpSH8KIi1UoKpKOYVcNNVPCNYq1HFoQGhtYnP6U4uNO
         XNlUDl/lutOsmOmfth3STEG0XiPmO9BcO5bLyD6pd8cg/dwEXRQUwX+8MCVv8Ww1YfBn
         +foYUpTsoVxQJNHxZZpX0JghgPGYOFWKwGI4Y=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755088864; x=1755693664;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=moBFo76hgs7I4C2mJOuSPtrqOboCJxWUAQ/iGAXO+dU=;
        b=e9sFlzFi6vmrxyA8dlWE7VMBskQlqayJVjjsmNJ+aLdYNyCM4IbW5DD2s+3nIVbW1f
         sivgGebhcE+N2flz7Uljv+hW709FcMn9/b7ijk15aHNO9Y8wOmcBdbm0qw0kztZlYvRb
         sqtX9cFyFqbRerx88G5YY30SjJRIAlqz2aEKE98+AkIfQUqGWZpjzjVMaU+67EOAVnFv
         q0gqm31BJUtBgoqJoDY4ThX9JZlhCV4r8fnLPk4+XpDp0sxAdzgA53ZnIuvxnrYwZByk
         pUJzsjusFFnsQCOIZCZoTgKG+gHoZIlR273JI4Sk+YzBBEPWMQHZEAfkFiiqxRKOoyTL
         kdsg==
X-Gm-Message-State: AOJu0YxJqWKkPYVvw68n0DRvwfXCsLOZ00lPKdtulTe5aDtfkMlL38D3
	cFRuKQ5tKgJ046WLx7JtACPJbD7MJzX6xZBpdJO5ar46hjylrZGD9Hvihd6ECKxDMyA=
X-Gm-Gg: ASbGncsbhXs1oODxY20J6IRK83tS9wazTlFZmUKo9MBFZm/PJVXnwWSXbQBEhAFD5xm
	BZHpOjSKwyZN78F2YiD/zDMHvdch40x3FPOaygErbZDf/031+0SFGQgEmobbg9kZ/jxkgx4Tp4y
	m/cTCWPlnqWxWJukT83GX9qoPdAIU39Fw4TIedANz5JjP9KMZa3PZPzufqNZJ/vdN34iiasWdUh
	IPNmOKN5U080xlUB7/CgwjMn9pvRCPDszgA3J9otG/g2gAjNaGqG2cZMs06Pu2rjjVY56gGEi4U
	ImljF1ycVOaneeRzY4d91qKUXvfoHo+XsmjNxN7ZcZahk1DLLIjOyaGEWY+PVYmLPwQleAz5Cpw
	lhvkTKy6ogvCPYvYhyl7lsrom8aVljLWJkKYXItgYspcA6+d0HviBdnlz5ENZgxRA4Q==
X-Google-Smtp-Source: AGHT+IEoJXQn77oyj6sb5Lk2cPX15dsKiyL5dhNQryUDihDKjaFRkCHtAOhrIsmaaOBjPzmgNon1qg==
X-Received: by 2002:a05:600c:5247:b0:456:13d8:d141 with SMTP id 5b1f17b1804b1-45a1664bf03mr25574795e9.27.1755088863635;
        Wed, 13 Aug 2025 05:41:03 -0700 (PDT)
Date: Wed, 13 Aug 2025 14:41:02 +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,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Community Manager <community.manager@xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [Coverity complaint] Re: [PATCH v5] pdx: introduce a new
 compression algorithm based on region offsets
Message-ID: <aJyH3kb93k3HpF-A@macbook.local>
References: <20250812150624.64898-1-roger.pau@citrix.com>
 <f3e57860-d4db-43c5-8cb2-29eac2163c1d@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <f3e57860-d4db-43c5-8cb2-29eac2163c1d@citrix.com>

On Wed, Aug 13, 2025 at 12:47:37PM +0100, Andrew Cooper wrote:
> On 12/08/2025 4:06 pm, Roger Pau Monne wrote:
> > Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> 
> Not this patch, but this is probably the best place to report it.
> 
> https://scan5.scan.coverity.com/#/project-view/30554/10426?selectedIssue=1662707
> 
> Something you did in the series made enough changes in
> pfn_pdx_compression_setup() for Coverity to start reporting an issue in
> some decade-old code.
> 
> The complaint is on line:
> 
> 277Â Â Â Â ma_va_bottom_maskÂ Â Â =Â (PAGE_SIZEÂ <<Â bottom_shift)Â -Â 1;
> CID 1662707: (#1 of 1): Bad bit shift operation (BAD_SHIFT)
> 
> 34. large_shift: In expression 0x1000 << bottom_shift, left shifting by more than 31 bits
> has undefined behavior. The shift amount, bottom_shift, is as much as 63.
> 
> 
> The relevant part of earlier analysis seems to be the "i >=
> BITS_PER_LONG" check in the order loop, causing Coverity to think that i
> can be up to 63.

Yes, I've also got the email.  This is existing code, so the issue
wasn't introduced by the previous patches, it's probably result of
the code movement that Coverity picked it up.

I will send a patch to fix this.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Aug 13 12:42:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 12:42:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079871.1440551 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umAoN-0005V5-OX; Wed, 13 Aug 2025 12:42:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079871.1440551; Wed, 13 Aug 2025 12:42: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 1umAoN-0005Uy-K7; Wed, 13 Aug 2025 12:42:35 +0000
Received: by outflank-mailman (input) for mailman id 1079871;
 Wed, 13 Aug 2025 12:42:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1rXT=2Z=bounce.vates.tech=bounce-md_30504962.689c8833.v1-55b4d820cc2b4db4851404e9de6bfbb6@srs-se1.protection.inumbo.net>)
 id 1umAoM-0005UN-9f
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 12:42:34 +0000
Received: from mail145-23.atl61.mandrillapp.com
 (mail145-23.atl61.mandrillapp.com [198.2.145.23])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f8b04216-7842-11f0-b898-0df219b8e170;
 Wed, 13 Aug 2025 14:42:29 +0200 (CEST)
Received: from pmta06.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail145-23.atl61.mandrillapp.com (Mailchimp) with ESMTP id
 4c27LW3xBzz1XLF5j
 for <xen-devel@lists.xenproject.org>; Wed, 13 Aug 2025 12:42:27 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 55b4d820cc2b4db4851404e9de6bfbb6; Wed, 13 Aug 2025 12:42: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>
X-Inumbo-ID: f8b04216-7842-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1755088947; x=1755358947;
	bh=IEtpRl8bINQORp9a9aA+RHl0fhkvpOHNK0UFdgc2xjw=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=ymK08R3waAjDw6ob0/G3sTASazOCqCla0G0gKlmO4tw+Lqac9DU0osvo+ITZ53Inx
	 A/swQgbHbyCSuW3SdNcZcAL8jY17c+YhrxjoGJTrEzNuan9L/+d5CNcwv5jmLA9NLv
	 pfjthpPiAunkV4xvNoTkviEekl88MPKJ3QBBbxI0uPWtQliSYj0UXOD1usV+lTBcGm
	 L3VgFHKLoFq/PmkJhSN95tekN2DXDmR3ItmMzPZbQKIxGuUF+sHH8HuDw1wTG5TPTI
	 ik8OFrKmm7Jfxye+ZA3ZLFKwSrvgTmljYiU1iEY69btCUmPol3aoIxRTszJXYNCEA7
	 q+e/LbAvJ0QkQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1755088947; x=1755349447; i=teddy.astie@vates.tech;
	bh=IEtpRl8bINQORp9a9aA+RHl0fhkvpOHNK0UFdgc2xjw=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=n21Gt+9FbkAn48e7dmkHVPUrd5wZz8CNG8Tas3gEffJ6OoNXd86Wh1MlFoKavQP1C
	 QDh+NbZgBVit6mFMThNzdLDTtBObRyJaY7oef/Acbqke+/qopWIhTN/s8OZ5fYJuuE
	 KiK98u1Lyn79TaozEa36W6Nn/KOoPuKmnYlQ+RwDek5ksMulk+8XXIvfl+mLtYeJ/A
	 yPGGvuZJCUca3K8ciMiO8EuzVLl9LojjilrTdIY3GApG9m9qnTRjzbBUyQknFJqkaA
	 x3OWmJUllBUgLAHk9D0oxibcIz3XR6NdHfAAoKf97dQzpkyDqffB6UgwesL7SRdk8X
	 RF/e+o0niGF2g==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH]=20libxl:=20Add=20virtio=20(virtio-vga)=20display=20support?=
X-Mailer: git-send-email 2.50.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1755088946657
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Oleksii Kurochko" <oleksii.kurochko@gmail.com>, "Community Manager" <community.manager@xenproject.org>, "Anthony PERARD" <anthony.perard@vates.tech>, "Juergen Gross" <jgross@suse.com>
Message-Id: <95a54f6c4296b03db5265da50a98f03c53858677.1755088831.git.teddy.astie@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.55b4d820cc2b4db4851404e9de6bfbb6?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250813:md
Date: Wed, 13 Aug 2025 12:42:27 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Add "virtio" vga which uses the virtio-vga device provided by upstream QEMU.
It is VGA compatible and can be enlightened with virtio-gpu drivers which are
available since Linux 4.4 and as a part of KVM Windows drivers.

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
 CHANGELOG.md                     | 1 +
 docs/man/xl.cfg.5.pod.in         | 6 +++++-
 tools/libs/light/libxl_dm.c      | 3 +++
 tools/libs/light/libxl_types.idl | 1 +
 tools/xl/xl_parse.c              | 2 ++
 5 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5f31ca08fe..88ff5b9a77 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -26,6 +26,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
    - Support PCI passthrough for HVM domUs when dom0 is PVH (note SR-IOV
      capability usage is not yet supported on PVH dom0).
    - Smoke tests for the FreeBSD Xen builds in Cirrus CI.
+   - Virtio-VGA display support for HVM guests
 
  - On Arm:
     - Ability to enable stack protector
diff --git a/docs/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.in
index f0c920b39d..445064ff6e 100644
--- a/docs/man/xl.cfg.5.pod.in
+++ b/docs/man/xl.cfg.5.pod.in
@@ -2566,6 +2566,8 @@ default and minimum is 8 MB.
 For QXL vga, both the default and minimal are 128MB.
 If B<videoram> is set less than 128MB, an error will be triggered.
 
+When using virtio, this parameter is ignored.
+
 =item B<stdvga=BOOLEAN>
 
 Specifies a standard VGA card with VBE (VESA BIOS Extensions) as the
@@ -2579,7 +2581,7 @@ B<This option is deprecated, use vga="stdvga" instead>.
 =item B<vga="STRING">
 
 Selects the emulated video card.
-Options are: B<none>, B<stdvga>, B<cirrus> and B<qxl>.
+Options are: B<none>, B<stdvga>, B<cirrus>, B<qxl> and B<virtio>.
 The default is B<cirrus>.
 
 In general, QXL should work with the Spice remote display protocol
@@ -2587,6 +2589,8 @@ for acceleration, and a QXL driver is necessary in the guest in that case.
 QXL can also work with the VNC protocol, but it will be like a standard
 VGA card without acceleration.
 
+virtio uses the VGA compatible variant of virtio-gpu.
+
 =item B<vnc=BOOLEAN>
 
 Allow access to the display via the VNC protocol.  This enables the
diff --git a/tools/libs/light/libxl_dm.c b/tools/libs/light/libxl_dm.c
index 511ec76a65..a561ba695a 100644
--- a/tools/libs/light/libxl_dm.c
+++ b/tools/libs/light/libxl_dm.c
@@ -1210,6 +1210,9 @@ static int libxl__build_device_model_args_new(libxl__gc *gc,
                 GCSPRINTF("qxl-vga,vram_size_mb=%"PRIu64",ram_size_mb=%"PRIu64,
                 (b_info->video_memkb/2/1024), (b_info->video_memkb/2/1024) ) );
             break;
+        case LIBXL_VGA_INTERFACE_TYPE_VIRTIO:
+            flexarray_append_pair(dm_args, "-device", "virtio-vga");
+            break;
         default:
             LOGD(ERROR, guest_domid, "Invalid emulated video card specified");
             return ERROR_INVAL;
diff --git a/tools/libs/light/libxl_types.idl b/tools/libs/light/libxl_types.idl
index a6030a2dbd..577fd6d90d 100644
--- a/tools/libs/light/libxl_types.idl
+++ b/tools/libs/light/libxl_types.idl
@@ -238,6 +238,7 @@ libxl_vga_interface_type = Enumeration("vga_interface_type", [
     (2, "STD"),
     (3, "NONE"),
     (4, "QXL"),
+    (5, "VIRTIO"),
     ], init_val = "LIBXL_VGA_INTERFACE_TYPE_UNKNOWN")
 
 libxl_vendor_device = Enumeration("vendor_device", [
diff --git a/tools/xl/xl_parse.c b/tools/xl/xl_parse.c
index 90c9386f5b..cc68d42dca 100644
--- a/tools/xl/xl_parse.c
+++ b/tools/xl/xl_parse.c
@@ -2833,6 +2833,8 @@ skip_usbdev:
                 b_info->u.hvm.vga.kind = LIBXL_VGA_INTERFACE_TYPE_NONE;
             } else if (!strcmp(buf, "qxl")) {
                 b_info->u.hvm.vga.kind = LIBXL_VGA_INTERFACE_TYPE_QXL;
+            } else if (!strcmp(buf, "virtio")) {
+                b_info->u.hvm.vga.kind = LIBXL_VGA_INTERFACE_TYPE_VIRTIO;
             } else {
                 fprintf(stderr, "Unknown vga \"%s\" specified\n", buf);
                 exit(1);
-- 
2.50.1



Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Wed Aug 13 12:46:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 12:46:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079882.1440561 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umAs9-00064Y-7D; Wed, 13 Aug 2025 12:46:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079882.1440561; Wed, 13 Aug 2025 12:46: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 1umAs9-00064R-3T; Wed, 13 Aug 2025 12:46:29 +0000
Received: by outflank-mailman (input) for mailman id 1079882;
 Wed, 13 Aug 2025 12:46:27 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1umAs7-00064L-B3
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 12:46:27 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1umAs6-003McF-2K;
 Wed, 13 Aug 2025 12:46:26 +0000
Received: from [2a01:cb15:80df:da00:7360:a082:15b4:b94d] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1umAs6-002QqU-22;
 Wed, 13 Aug 2025 12:46:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Transfer-Encoding:
	Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date;
	bh=mpyuVnk7dXe5YvgV0HiL/W2djS5N8WP8Wp2zOpy1tXQ=; b=KEG4ay4LYVKk0Q9V12dOWIEhJ2
	Y+NDmDdypGgc4/JmNERPNXEsVaNQbeQGHr5ebzUF3R7GjRrQlCaIHXyHNkzbLaKc6CCt2M4GwQtWr
	vWjVTdLDLyNsKRJhT8E2/WJVqLePOxaet94Mx8WQfRcXS02uceUmTLKJTYvs0M4iuejc=;
Date: Wed, 13 Aug 2025 14:46:25 +0200
From: Anthony PERARD <anthony@xenproject.org>
To: Marek =?iso-8859-1?Q?Marczykowski-G=F3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN PATCH v2 3/3] CI: Workaround extra content in junit
Message-ID: <aJyJIYKioCoVn4SP@l14>
References: <20250730152602.45436-1-anthony@xenproject.org>
 <20250730152602.45436-4-anthony@xenproject.org>
 <aJd2eHFgiLBNiWCy@mail-itl>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <aJd2eHFgiLBNiWCy@mail-itl>

On Sat, Aug 09, 2025 at 06:25:28PM +0200, Marek Marczykowski-Górecki wrote:
> On Wed, Jul 30, 2025 at 05:26:02PM +0200, Anthony PERARD wrote:
> > From: Anthony PERARD <anthony.perard@vates.tech>
> > 
> > Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>
> 
> Is it still an issue? AFAIR similar issue was fixed together with fixing
> xml upload hanging.

It was an issue in June:
    https://lore.kernel.org/xen-devel/20250603124222.52057-9-anthony@xenproject.org/

And it still is:
    https://gitlab.com/xen-project/people/marmarek/xen/-/jobs/10969191455
    > WARNING: Found 75 too many lines in junit.

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Wed Aug 13 12:56:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 12:56:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079923.1440591 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umB1O-00080T-9x; Wed, 13 Aug 2025 12:56:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079923.1440591; Wed, 13 Aug 2025 12:56: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 1umB1O-00080M-6G; Wed, 13 Aug 2025 12:56:02 +0000
Received: by outflank-mailman (input) for mailman id 1079923;
 Wed, 13 Aug 2025 12:56:01 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1zV9=2Z=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1umB1N-00080G-8X
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 12:56:01 +0000
Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com
 [2a00:1450:4864:20::433])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d9035b03-7844-11f0-b898-0df219b8e170;
 Wed, 13 Aug 2025 14:55:54 +0200 (CEST)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-3b77b8750acso673830f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 13 Aug 2025 05:55:54 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3b8e1cb7deesm37836413f8f.2.2025.08.13.05.55.53
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Aug 2025 05:55: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>
X-Inumbo-ID: d9035b03-7844-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755089753; x=1755694553; 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=+sjcl4dQ1y8QGVxBP6VaR9ofBSfqLa/U+YpFLIfWOTs=;
        b=Grq9aA/EAuytaUQHvLMK3kl3D2CtJTO5igfkhU518IEygE7Yo3s6AQJ6JU7mjQs3hc
         pNASzTHeAZp16UKlX9a7Cvoj7MBf4BD9pZx/P5ZRaMw6i7CI9QkBAXJaT6RIEepPWr8x
         zHB22fl/BnQfIHFkP9JqEFJu1GBtk/w2Oit2k=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755089753; x=1755694553;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=+sjcl4dQ1y8QGVxBP6VaR9ofBSfqLa/U+YpFLIfWOTs=;
        b=S2Byl1InD13T2FDCuyAPcnpl5rcFH6kZaOjZy/Z1Eu90pHoLxk5IeALSV3g7JfgF2Q
         Ts7S2KOKcRoL9exgn+3Ao2keGAByWfv4j5CUPKrrB/YckIxSbmn4CbU4n0RpWBq/l++8
         6XklgCApQqSOn6sSRHme1J43HAct56HlcirG8kyET+O50LCwe3ODSjsUpusjhfpOyXTZ
         x8qstRkoEsnDk43cSsRQp6oQuxRDMwgeE3E2JVS5Uxqi73KpADM+npkbEL8GIK36yEsM
         TiI58B46ZjHcm7xReQrTs97C/c4NCIOfzWfn6cCJne/zoyaIFn4v0PryrG6Uf3jpjsDD
         Cp8g==
X-Gm-Message-State: AOJu0Yx71dJ/n8dDoOqpRLi9nbnArwI630qCBHDvJoTWas/jWPIuuux7
	JHUDUaUn1+21FUaoyExHuqhQ5xOuossy79v8lJLuPJk7y+l1BtdYdLKYVE4+RWXj1nSHZaTVOa9
	Eaoyg
X-Gm-Gg: ASbGncuPI17y40BBlHthM1X9QEyIgMw1EKdNdBol5XQ7DxTK7K4ZTDL4wybOM+Zi+cE
	hyuD2FJOFzCXgNSx2n/6KAi7ZpJHlf8nQNb+qeEmVT/G7HODsgurRPTrL1Dx7BlmZoWUNraenxv
	CZh9FEYEGuxL0oJ+Gk2wB49A9mT3+Waenet267ZLX7KQJdtF6utpxYqRqIbw5otq3J1oslg11ck
	ICeuabFyDne96jVNC9W8yBmaUXlqzwRirrHW/9OdL+43T5G8NOzjXYKUGpjzY6cXgNKerWpXb2L
	AydYXtxGnhOsbsVA/6T4hG29wkakadN3xBiGpKvaIdUIQwOgE8UGVw4XJBiM/WX+W1WDKe4BcxC
	4/zh4+U5eAopsWMOfxfGHHbb6il453G2gUXKVuy4V13MiL0uvpC9CkihuLZOGFkZkVJjFSmuvX3
	VQ
X-Google-Smtp-Source: AGHT+IFJvnppNTRTpfjdY+vJ/JCMcM50qOUu+caksaSihSyCwww+XOf/DCHnj9VpXg5sKn07/R+ZUg==
X-Received: by 2002:a05:6000:26d3:b0:3b7:8aa2:9fcb with SMTP id ffacd0b85a97d-3b918c76ba8mr1978386f8f.14.1755089753506;
        Wed, 13 Aug 2025 05:55:53 -0700 (PDT)
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>
Subject: [PATCH] pdx: cast PAGE_SIZE value ahead of shifting
Date: Wed, 13 Aug 2025 14:55:38 +0200
Message-ID: <20250813125538.78174-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.49.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Coverity complains that:

277Â Â Â Â ma_va_bottom_maskÂ Â Â =Â (PAGE_SIZEÂ <<Â bottom_shift)Â -Â 1;
 In expression 0x1000 << bottom_shift, left shifting by more than 31 bits
 has undefined behavior. The shift amount, bottom_shift, is as much as 63.

Cast PAGE_SIZE to paddr_t so it has the right width.

Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
Coverity ID: 1662707
Fixes: bac2000063ba ('x86-64: reduce range spanned by 1:1 mapping and frame table indexes')
Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/common/pdx.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/common/pdx.c b/xen/common/pdx.c
index 7e070ff962e8..5f54dd18f90d 100644
--- a/xen/common/pdx.c
+++ b/xen/common/pdx.c
@@ -288,7 +288,7 @@ bool __init pfn_pdx_compression_setup(paddr_t base)
 
     pfn_pdx_hole_shift  = hole_shift;
     pfn_pdx_bottom_mask = (1UL << bottom_shift) - 1;
-    ma_va_bottom_mask   = (PAGE_SIZE << bottom_shift) - 1;
+    ma_va_bottom_mask   = ((paddr_t)PAGE_SIZE << bottom_shift) - 1;
     pfn_hole_mask       = ((1UL << hole_shift) - 1) << bottom_shift;
     pfn_top_mask        = ~(pfn_pdx_bottom_mask | pfn_hole_mask);
     ma_top_mask         = pfn_top_mask << PAGE_SHIFT;
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Wed Aug 13 12:58:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 12:58:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079932.1440600 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umB3t-00006x-LP; Wed, 13 Aug 2025 12:58:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079932.1440600; Wed, 13 Aug 2025 12:58: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 1umB3t-00006q-It; Wed, 13 Aug 2025 12:58:37 +0000
Received: by outflank-mailman (input) for mailman id 1079932;
 Wed, 13 Aug 2025 12:58:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2/kn=2Z=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1umB3s-00006k-Lb
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 12:58:36 +0000
Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com
 [2a00:1450:4864:20::434])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 39276238-7845-11f0-a328-13f23c93f187;
 Wed, 13 Aug 2025 14:58:35 +0200 (CEST)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-3b7825e2775so6007379f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 13 Aug 2025 05:58:35 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45a1a58fc69sm1411635e9.22.2025.08.13.05.58.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Aug 2025 05:58: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>
X-Inumbo-ID: 39276238-7845-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755089915; x=1755694715; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Lgd3aFHk9Ia1mL0OdffpXf04JzQU1lFHG3EEzVPIibQ=;
        b=XkQRR1Ph/eCemnpTmEawrSSkVQWOP7szidx19+gT97NvBpekUulzo0MThKk0Oh2DPE
         Fwyu6RirfEbc9FDaaHIe8fKevhIpqWDzbTc68FLJfNBxbQIzEp6gt44cWLMsThK4kHWD
         0Mh5k3rTMpOo3NOlNvgGr9A30yDOjqoy0DaJ8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755089915; x=1755694715;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Lgd3aFHk9Ia1mL0OdffpXf04JzQU1lFHG3EEzVPIibQ=;
        b=o7s/SsSupQnx8npDSEsf3QAWfdfwgDWsWaQWqa8JeKl3UGkvMai+8rMMc3/2ruoLJV
         /1Wm8Qeh1194IubndKnf9B99Y9dFdfSZZ8/ci0IPEqrubBTGbBlzB7I9Mi+0NOGRynoX
         Nm7I1Hkgy/+j49N6RZAmM0aXseDeA8wtNByOuA7Rc92JWmU7qKLl+bfCtSBU+Pu4mGcb
         ppINUzIRAPmFiA/Xo9AmMdpfjBP5jTRr7jU7lB20kHzt88pFyut99zL1p4xRBtrwvyOa
         gkafuugdu+ZjNPE2t4dQdIzshSZBnDxSGc+xsuST6F3jQPcczkVY03/IFzGZnFXfLVBD
         WNuw==
X-Forwarded-Encrypted: i=1; AJvYcCVnbY5bvqcdbKCrlPAvbbQNfx/1RZx4ULp9S7N+iwHGiaWMR9YtxpwBXHRSZkV0LqSbkJVWWxv69f8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxWvsZB76frcU0Fy3mATYBgO23kkysctL+eSCR2tmerai3rzixZ
	k8gsbZ2aF1mDSPTIri0ag/sx2/3Aks4UlD6oO20UVCdziTCbAT9xTzJHNDAzSH04IC8=
X-Gm-Gg: ASbGncusmp3I9HcPSpdwP1rUH2hYf2x31QaAV8W0tH3v7XmG2FaoHp8R4n/cFL+bAZf
	BUCdPSAVZdkdjEAm0guBuVfBZiTer0qGjKLBag+wIK7IKId+7IfeiaOYtLi5kEkYL4H8VDnUk3h
	DLFZ4b8zO4vmazJIpNY6tkznygaorhDBx+M/JaOfuwCZx/bQod44N9VhkKuU0e8gGyJpNOlwl01
	6c6xemGE6y6Sjyms9Dgl6WPVVoa1JY6DDh3wp3yHsjCSR2GPqowh3r6BF4CvF/vTL8AehbRssmk
	RCOlNqizdQdQDWqEjuZd+1EBdwuu7XLooAxb4+Vdh+XEXebTgBKLQoI8K2HrCSopNl1sc4dcDY4
	gFXsu58V/IdKrAaI8f6sUwnF7nu+MjdPuYZeYiUDi5Jrd/UipCQnuQMvv9r1nXEbPBfRb
X-Google-Smtp-Source: AGHT+IHMqqR9Gev5u18AKeDQpCUjQTsMfXSr+eTplf5knMy049aNEBNFTINtwCmc8/eSjVzl/bokVQ==
X-Received: by 2002:a5d:5f4a:0:b0:3a5:8d08:6239 with SMTP id ffacd0b85a97d-3b917e460a7mr2184192f8f.21.1755089915040;
        Wed, 13 Aug 2025 05:58:35 -0700 (PDT)
Message-ID: <7db8af65-0ea2-4724-90e6-3980c499bb9e@citrix.com>
Date: Wed, 13 Aug 2025 13:58:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] pdx: cast PAGE_SIZE value ahead of shifting
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
References: <20250813125538.78174-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: <20250813125538.78174-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 13/08/2025 1:55 pm, Roger Pau Monne wrote:
> Coverity complains that:
>
> 277Â Â Â Â ma_va_bottom_maskÂ Â Â =Â (PAGE_SIZEÂ <<Â bottom_shift)Â -Â 1;

I'd perhaps drop this line from the commit message.Â  The sentence below
is fine, and there's only a single hunk so it's obvious what is being
referred to.

>  In expression 0x1000 << bottom_shift, left shifting by more than 31 bits
>  has undefined behavior. The shift amount, bottom_shift, is as much as 63.
>
> Cast PAGE_SIZE to paddr_t so it has the right width.
>
> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Coverity ID: 1662707
> Fixes: bac2000063ba ('x86-64: reduce range spanned by 1:1 mapping and frame table indexes')
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

Formatting aside, Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Wed Aug 13 14:27:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 14:27:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1079979.1440627 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umCRk-0002VJ-1R; Wed, 13 Aug 2025 14:27:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1079979.1440627; Wed, 13 Aug 2025 14:27:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umCRj-0002VC-UZ; Wed, 13 Aug 2025 14:27:19 +0000
Received: by outflank-mailman (input) for mailman id 1079979;
 Wed, 13 Aug 2025 14:27:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=7RVd=2Z=net-space.pl=dkiper@srs-se1.protection.inumbo.net>)
 id 1umCRi-0002V5-CV
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 14:27:18 +0000
Received: from dibed.net-space.pl (dibed.net-space.pl [84.10.22.86])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9c0c6033-7851-11f0-b898-0df219b8e170;
 Wed, 13 Aug 2025 16:27:15 +0200 (CEST)
Received: from router-fw.i.net-space.pl ([192.168.52.1]:46210 "EHLO
 tomti.i.net-space.pl") by router-fw-old.i.net-space.pl with ESMTP
 id S2272809AblHMO1O (ORCPT <rfc822;xen-devel@lists.xenproject.org>);
 Wed, 13 Aug 2025 16:27:14 +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>
X-Inumbo-ID: 9c0c6033-7851-11f0-b898-0df219b8e170
X-Comment: RFC 2476 MSA function at dibed.net-space.pl logged sender identity as: dkiper
Date:	Wed, 13 Aug 2025 16:27:11 +0200
From:	Daniel Kiper <dkiper@net-space.pl>
To:	Aaron Rainbolt <arraybolt3@gmail.com>
Cc:	grub-devel@gnu.org, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 2/2] kern/xen: Add Xen command line parsing
Message-ID: <20250813142711.l4jxlgjk426ansab@tomti.i.net-space.pl>
References: <20250804234816.3d14f53f@kf-m2g5>
 <20250804234911.3cc3997c@kf-m2g5>
 <20250804235009.30e39bd9@kf-m2g5>
 <20250812170211.q7ezlveygfsdkz34@tomti.i.net-space.pl>
 <20250812185515.436a33da@kf-m2g5>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250812185515.436a33da@kf-m2g5>
User-Agent: NeoMutt/20170113 (1.7.2)

On Tue, Aug 12, 2025 at 06:55:15PM -0500, Aaron Rainbolt wrote:
> On Tue, 12 Aug 2025 19:02:11 +0200 Daniel Kiper <dkiper@net-space.pl> wrote:
> > On Mon, Aug 04, 2025 at 11:50:09PM -0500, Aaron Rainbolt wrote:
> > > Xen traditionally allows customizing guest behavior by passing
> > > arguments to the VM kernel via the kernel command line. This is no
> > > longer possible when using GRUB with Xen, as the kernel command
> > > line is decided by the GRUB configuration file within the guest,
> > > not data passed to the guest by Xen.
> > >
> > > To work around this limitation, enable GRUB to parse a command line
> > > passed to it by Xen, and expose data from the command line to the
> > > GRUB configuration as environment variables. These variables can be
> > > used in the GRUB configuration for any desired purpose, such as
> > > extending the kernel command line passed to the guest. The command
> > > line format is inspired by the Linux kernel's command line format.
> > >
> > > To reduce the risk of misuse, abuse, or accidents in production, the
> > > command line will only be parsed if it consists entirely of 7-bit
> > > ASCII characters, only alphabetical characters and underscores are
> > > permitted in variable names, and all variable names must start with
> > > the string "xen_grub_env_". This also allows room for expanding the
> > > command line arguments accepted by GRUB in the future, should other
> > > arguments end up becoming desirable in the future.
> > >
> > > Signed-off-by: Aaron Rainbolt <arraybolt3@gmail.com>

[...]

> > > diff --git a/grub-core/kern/i386/xen/pvh.c b/grub-core/kern/i386/xen/pvh.c index 91fbca8..a8988d2 100644
> > > --- a/grub-core/kern/i386/xen/pvh.c
> > > +++ b/grub-core/kern/i386/xen/pvh.c
> > > @@ -321,6 +321,8 @@ void
> > >  grub_xen_setup_pvh (void)
> > >  {
> > >    grub_addr_t par;
> > > +  const char *xen_cmdline;
> > > +  int i;
> > >
> > >    grub_xen_cpuid_base ();
> > >    grub_xen_setup_hypercall_page ();
> > > @@ -352,6 +354,27 @@ grub_xen_setup_pvh (void)
> > >    grub_xen_mm_init_regions ();
> > >
> > >    grub_rsdp_addr = pvh_start_info->rsdp_paddr;
> > > +
> > > +  xen_cmdline = (const char *) pvh_start_info->cmdline_paddr;
> > > +  for (i = 0; i < GRUB_XEN_MAX_GUEST_CMDLINE; i++)
> > > +    {
> > > +      if (xen_cmdline[i] == '\0')
> >
> > This code still does not make a lot of sense for me. You have NUL
> > check in grub_parse_xen_cmdline(). So, you duplicate the check here...
> >
> > I would just fire grub_strncpy() here and forget...
>
> I guess it depends on how you view grub_xen_start_page_addr->cmd_line's
> semantics. In my mind, cmd_line is a NUL-terminated string, always. If
> you boot in PV mode, Xen ensures it's a NUL-terminated string, so it's
> reasonable for code in GRUB to assume it will be one. If you boot in
> PVH mode, it starts out initialized to all zeros which is technically a
> NUL-terminated string, and the code that exists here ensures that if we
> copy the kernel command line to cmd_line, it will still be a
> NUL-terminated string. If we use a "bare" grub_strncpy() here, then if
> someone passes a kernel command line larger than
> GRUB_XEN_MAX_GUEST_CMDLINE - 1, cmd_line will end up not being
> NUL-terminated anymore, and any code added to GRUB in the future that
> assumes it is a NUL-terminated string may buffer overflow.
>
> One could argue "let's keep the NUL check here and remove it from
> grub_parse_xen_cmdline()", but that doesn't work either because we only
> get to control the contents of cmd_line if we boot in PVH mode. If
> instead we boot in PV mode, cmd_line is initialized by Xen itself. GRUB
> receives a pre-populated and ready-to-use start_info struct directly
> from the hypervisor in this scenario. Xen is supposed to ensure that
> start_info is always NUL-terminated, but if there's ever a bug in Xen
> that breaks that assumption, that could result in bad things happening,
> the same as if we didn't do the NUL check in grub_xen_setup_pvh(). Now
> of course there's nothing we can do about Xen possibly being buggy (if
> it gives us a GRUB_XEN_MAX_GUEST_CMDLINE-long buffer with no NUL
> terminator, too bad), but we can at least make sure that we're ready
> for that eventuality. That's why I like having both NUL checks - we're
> ready for if Xen does things wrong, and any future code that isn't
> ready for that eventuality will still work if things go wrong, at least
> in PVH mode.

OK, it looks like this explanation, in shortened form, should land
around this code... Or not... Please look below...

> (Arguably any new code that depends on cmd_line *should* check it for a
> NUL terminator. But I don't want to assume that all new code *will* do
> so.)
>
> > > +        {
> > > +          grub_strncpy ((char *)
> > > grub_xen_start_page_addr->cmd_line,
> > > +			(char *) pvh_start_info->cmdline_paddr,
> > > +			GRUB_XEN_MAX_GUEST_CMDLINE);
> > > +
> > > +          if
> > > (grub_xen_start_page_addr->cmd_line[GRUB_XEN_MAX_GUEST_CMDLINE - 1]
> > > != '\0')
> >
> > If you convince me this code is still needed then I am afraid that
> > this is not what you meant here...
>
> grub_strncpy doesn't just NUL-terminate the command line, it also fills
> the entire remainder of the buffer with NUL characters. Therefore if

I am afraid we are looking at different grub_strncpy() functions...

> grub_strncpy NUL-terminated the copied string, the last character of
> the buffer will always be NUL. This is a redundant check since the code
> above goes to great lengths to avoid ever putting anything
> non-NUL-terminated into the buffer, but I was under the impression you
> wanted the check added just in case. I'm happy to remove it if it's not
> desirable.

I think we misunderstood each other. This code is redundant now...

[...]

> > > +is_key_safe (char *key, grub_size_t len)
> > > +{
> > > +  grub_size_t i;
> > > +
> > > +  for (i = 0; i < len; i++)
> > > +    {
> > > +      if (! (grub_isalpha (key[i]) || key[i] == '_'))
> >
> > Please drop space after "!"...
>
> Will change.
>
> > > +        return false;
> > > +    }
> >
> > You can drop curly braces from here...
>
> Will change.
>
> (I initially kept this written the way it was though because the GNU
> coding standards seemed to indicate I should keep the braces. "When
> you have an if-else statement nested in another if statement, always
> put braces around the if-else." [1] This isn't a nested if, but it's an
> if within a for which is very similar.)
>
> Is there any recommended coding style documentation I should be looking
> at other than the GNU coding standards and the GRUB coding style
> guidelines? It seems I'm making an awful lot of style mistakes and
> would like to avoid that going forward.

Yes, it is but sadly it is not fully/properly/.. documented [1]...

[...]

> > > +  for (i = 0; i < GRUB_XEN_MAX_GUEST_CMDLINE; i++)
> > > +    {
> > > +      if (cmdline[i] == '\0')
> > > +        {
> > > +          cmdline_valid = true;
> > > +          break;
> > > +        }
> > > +    }
> > > +
> > > +  if (cmdline_valid == false)
> > > +    {
> > > +      grub_error (GRUB_ERR_BAD_ARGUMENT,
> > > +		  "command line from Xen is not NUL-terminated");
> > > +      grub_print_error ();
> >
> > grub_fatal()?
>
> That would probably be a bad idea here. We use (or, at least, will use)
> grub_fatal() in grub_xen_setup_pvh() because if grub_strncpy() doesn't
> NUL-terminate the string it copies, it indicates a bug in GRUB (either
> in grub_strncpy, or more likely in the nearby NUL-checking code). On
> the other hand, cmdline_valid may equal false if we boot in PV mode and
> Xen incorrectly hands us a non-NUL-terminated string. That's bad and
> prevents us from parsing the command line safely, but I'd argue it
> shouldn't entirely block boot. (Then again, maybe if it does block
> boot, that will make this kind of theoretical Xen bug be much more
> noticeable and help it get fixed quicker. If you'd prefer that we bail
> out entirely here, I'm happy to change it.)

As I said earlier, I would simply call grub_strncpy() in grub_xen_setup_pvh()
without additional NUL-check there and fail if non-NUL-terminated string
is detected here...

> > > +      goto cleanup_main;
> > > +    }
> > > +
> > > +  cmdline_len = grub_strlen (cmdline);
> > > +  for (i = 0; i < cmdline_len; i++)
> > > +    {
> > > +      current_char = cmdline[i];
> > > +
> > > +      /*
> > > +       * If the previous character was a backslash, append the current
> > > +       * character to the word verbatim
> > > +       */
> > > +      if (splitter_state & SPLITTER_HIT_BACKSLASH)
> > > +        {
> > > +          splitter_state &= ~SPLITTER_HIT_BACKSLASH;
> > > +          if (append_char_to_word (s, current_char, false) == false)
> > > +            goto cleanup_main;
> > > +          continue;
> > > +        }
> > > +
> > > +      switch (current_char)
> > > +        {
> > > +        case '\\':
> > > +          /* Backslashes escape arbitrary characters. */
> > > +          splitter_state |= SPLITTER_HIT_BACKSLASH;
> > > +          continue;
> > > +
> > > +        case '\'':
> > > +          /*
> > > +           * Single quotes suppress word splitting and double quoting until
> > > +           * the next single quote is encountered.
> > > +           */
> > > +          if (splitter_state & SPLITTER_IN_DOUBLE_QUOTES)
> > > +            {
> > > +              if (append_char_to_word (s, current_char, false) == false)
> > > +                goto cleanup_main;
> > > +              continue;
> > > +            }
> > > +
> > > +          splitter_state ^= SPLITTER_IN_SINGLE_QUOTES;
> > > +          continue;
> > > +
> > > +        case '"':
> > > +          /*
> > > +           * Double quotes suppress word splitting and single quoting until
> > > +           * the next double quote is encountered.
> > > +           */
> > > +          if (splitter_state & SPLITTER_IN_SINGLE_QUOTES)
> > > +            {
> > > +              if (append_char_to_word (s, current_char, false) == false)
> > > +                goto cleanup_main;
> > > +              continue;
> > > +            }
> > > +
> > > +          splitter_state ^= SPLITTER_IN_DOUBLE_QUOTES;
> > > +          continue;
> > > +
> > > +        case ' ':
> > > +          /* Spaces separate words in the command line from each other. */
> > > +          if (splitter_state & SPLITTER_IN_SINGLE_QUOTES ||
> > > +              splitter_state & SPLITTER_IN_DOUBLE_QUOTES)
> > > +            {
> > > +              if (append_char_to_word (s, current_char, false) == false)
> > > +                goto cleanup_main;
> > > +              continue;
> > > +            }
> > > +
> > > +          if (append_word_to_list (s) == false)
> > > +            goto cleanup_main;
> >
> > I think this is not fully correct. You should not run
> > append_word_to_list() until the closing quote. So, here you should
> > have "else" for the first "if", i.e., "if (splitter_state & ..." and
> > call append_word_to_list() for closing \" and \' above.
>
> What closing quote? If we're in quotes, the `if (splitter_state &...`
> block will run. That block runs `continue`, restarting the loop before
> we get to the `append_word_to_list (s)` call. If we hit a closing
> quote, either the `case '\''` or the `case '"'` block will be
> triggered, changing the splitter's state so that it knows it's no
> longer within a quote block, and then the next space (or the end of the
> string) will cause `append_word_to_list()` to be called, adding the
> quoted word to the list. Even if this `continue` changes to a `break`
> like suggested below, the logic and control flow will remain the same.
>
> Calling `append_word_to_list()` for closing quotes would break the
> splitter. I'm trying to implement splitting behavior similar to Bash or
> GRUB's configuration language, both of which parse
> `xen_grub_env_var="abc def"ghi` into the variable `xen_grub_env_var`
> with the value `abc defghi`. If we split on closing quotes too, the
> input above will be parsed into two words, `xen_grub_env_var=abc def`
> and an extra word `ghi`, resulting in the environment variable
> `xen_grub_env_var` being set to `abc def` and the `ghi` being lost
> entirely. One could argue that this is reasonable behavior, but it
> isn't consistent with the other splitting behavior in GRUB.

OK, makes sense for me... Maybe you should mention somewhere in the code
current splitter behavior...

Daniel

[1] https://www.gnu.org/software/grub/manual/grub-dev/grub-dev.html#Coding-style


From xen-devel-bounces@lists.xenproject.org Wed Aug 13 15:03:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 15:03:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080022.1440653 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umD10-0007a2-Uk; Wed, 13 Aug 2025 15:03:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080022.1440653; Wed, 13 Aug 2025 15: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 1umD10-0007Zv-RI; Wed, 13 Aug 2025 15:03:46 +0000
Received: by outflank-mailman (input) for mailman id 1080022;
 Wed, 13 Aug 2025 15:03:45 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ADYb=2Z=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1umD0z-0007Zp-Hr
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 15:03:45 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20619.outbound.protection.outlook.com
 [2a01:111:f403:2414::619])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b362fd6a-7856-11f0-a328-13f23c93f187;
 Wed, 13 Aug 2025 17:03:43 +0200 (CEST)
Received: from MN0P221CA0013.NAMP221.PROD.OUTLOOK.COM (2603:10b6:208:52a::18)
 by DM4PR12MB6663.namprd12.prod.outlook.com (2603:10b6:8:8f::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.13; Wed, 13 Aug
 2025 15:03:38 +0000
Received: from BL6PEPF00022574.namprd02.prod.outlook.com
 (2603:10b6:208:52a:cafe::c4) by MN0P221CA0013.outlook.office365.com
 (2603:10b6:208:52a::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9031.15 via Frontend Transport; Wed,
 13 Aug 2025 15:03:38 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BL6PEPF00022574.mail.protection.outlook.com (10.167.249.42) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9031.11 via Frontend Transport; Wed, 13 Aug 2025 15:03:38 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 13 Aug
 2025 10:03:34 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 13 Aug
 2025 10:03:34 -0500
Received: from [172.23.255.54] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 13 Aug 2025 10:03: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>
X-Inumbo-ID: b362fd6a-7856-11f0-a328-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qcPt3LjFUgL5sInauuz86Coww4uSJ64ZeGfmP7j/wGAXupyDxREFppM9z6QC0KUcpc4/HsBXvP9o8qJ9H9mNdDW3QwT4ljC6JzyJXzdmNq18wQKfK809zJ/OtOKGcBJB9rilp6LK4irym8/FobbDuEsG4mQM2pmOwH+2bsqKfAURkk08dsK64JFD7qnbj7wkYathBEpzg+N04GnS/VIEWWhzZ8THmiM1VdT2lTs3DGb9osHXk0xaiVGWNi7Ac9YGdoZPKoeTYsvyRcNLAJvadLSzf/CF0/xXLCQs9G8JfOKY08O2TfsOReKpYmsqBSDFlASuetugD+PtQoyWO6+yfA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fbXIz+dpf07LB8Lps4BsCGr7J8+XyURVjsYYM66Yg1Y=;
 b=WayCJ5Vyv1Gc4z/M1yktRmM5RRMEQse2enL59vlTX0XP2VjPrNT0gAwVoYp1uYXd24/oyp9viVYg7uuBq330wBbv1pRglUcpIuhiOSaCaeDdxVZkzcIH18oebMafVyt96cLZNMC+aKmkx032lTCJSWm53zoN/wkbFABkRsI1NG0Aw6JZwUiEMxZIwU+J3+pJnIUl90NJFR9brEF34oeP1aWkHQzJ6JEQQw7K0sD74PH4dOctqWlpSmT3ncXDtYE94XcEBlz5YdgFQQ8Ob0ccBtE91bonxHQovZH35d544PQrI5/nHCB1dMshUUM0T39p9qYm0LW71bYl3sz9730TgQ==
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=fbXIz+dpf07LB8Lps4BsCGr7J8+XyURVjsYYM66Yg1Y=;
 b=py+VIA2ICXxTSJ8YMzZAZmBbBfUBJrgcotpgG2oxqyZrqbTJJ9GoqiBMcEFayUUG6Etalbchh8ViWxMdGy18CDYKRulRtsQhZKgi5uZrZebdRDtymvbHTUV1Ir/1DEcOds1o3so3nBNspm06gL92oHls255zW4TEnBmgZKoPtak=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <a4b5fd6b-80db-4b58-b3e8-5832e542d64c@amd.com>
Date: Wed, 13 Aug 2025 11:03:28 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/events: Fix Global and Domain VIRQ tracking
To: Juergen Gross <jgross@suse.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Oleksandr Tyshchenko
	<oleksandr_tyshchenko@epam.com>, Chris Wright <chrisw@sous-sol.org>, "Jeremy
 Fitzhardinge" <jeremy@xensource.com>
CC: <stable@vger.kernel.org>, <xen-devel@lists.xenproject.org>,
	<linux-kernel@vger.kernel.org>
References: <20250812190041.23276-1-jason.andryuk@amd.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20250812190041.23276-1-jason.andryuk@amd.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB05.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF00022574:EE_|DM4PR12MB6663:EE_
X-MS-Office365-Filtering-Correlation-Id: ba4759dc-dea8-49be-b56e-08ddda7a9579
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|36860700013|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?OE5CNXFid3cyZG9VR1E3Ym4rK1RHNWRDaDV2WHBIbDZCZFRCVDd4Q3Z3dHBD?=
 =?utf-8?B?ZVB1Z2xQdy9Fc29EcjR3WnZqZDNEYjlDakdJZTVlT1lWaFQzTitqZDFHd05H?=
 =?utf-8?B?akR1LytvVEpFRVRrTW1ncXJBMk1vYncvTEFhSDc1cTR2eVlXQmNEdHlrbkNy?=
 =?utf-8?B?d1k3UGNLQUJDS0lySUxjaVFlTkRxcVEyeW5NdVQwaWZ6R3VtN280RVh6ekds?=
 =?utf-8?B?S01BeEFlTGo1Mmd1RnlxL3hvb2NZUHhsY3NoczRaT3VwM0tpb1hIWURPUnZy?=
 =?utf-8?B?OFFwOWV4UmlwZDBZVG1RczRxZzJCWnlTSFdYMld3M3VzMnVEUWlDNjQ5VDhw?=
 =?utf-8?B?RVJwdnZOY01rVjFvaktWTHpxa1F1bU1pUkVPTzRva1JZTzhNTDlBV0xkVTcx?=
 =?utf-8?B?S3RGZDg5anhsdTg0eFo3YlJZZ2dCdnBLNnhnVEcvdmdydXNUTjFBZjAzTU41?=
 =?utf-8?B?TEpPL08rbm5Qb0ZlNHJYVHFURXBlbHdoZzF0dkh0R1d0b09sQ0lHd3N2ZW5P?=
 =?utf-8?B?eHVQYjhrSDZrbVM3RWN0cmlrdGt5a085cmNndkRSMmt0SU82eVc1MWg4ZHBn?=
 =?utf-8?B?dEc1bjJwR0dBNUVldWpaWmJMc3k5aTM0N1l6WThIOVdrR1pOajhnQzZwK0dq?=
 =?utf-8?B?cnFwdHlnL0JqWG5hazBvRmRoS3h4em1FWnV6NUhsbithaDU2MXY2WmNXaHNr?=
 =?utf-8?B?YXg4WnpkREpuWXVrTzVvd0lOUlp2UDZtbDJaUWlRYzhzWHFqWnlBcjZ3Q2tq?=
 =?utf-8?B?K0NBanN6d3l2YUVyak5yUmJHbmJnaVdrQ2tLei9BR0Z6a1BMeHpIa1JjUDAv?=
 =?utf-8?B?Z0FvZ1ZLZnhzNXI2dklpbWhKZjJuK2pYNU96Y0JQQkxpQjRiNG1qVWVROHdo?=
 =?utf-8?B?eW9NTVhxeHdyMFl2SkVrMjc0LzhlUEQ5VCtQQmxlNWI4aFZNeFowZU1HbnFy?=
 =?utf-8?B?Ymp0U1ZOcVhyTGlyaDhBTE5xY3BrYU95MGlSVHcrWjlpdUgwQ3E4YmhEYW9M?=
 =?utf-8?B?c2hNNm5yVzg3NVRZTllaUWpydGQ4V0ZvWml3MFY2TWxsSGVlWlZTeVRQMlZi?=
 =?utf-8?B?VjZOcENKbTVMSk1EWlhTU1FQSEtKMys4QnZ6M1hGNDhmNWc3SDFlY1VaVWhk?=
 =?utf-8?B?Mk16WDBxSU9PR3JlWTg4RmJVQWVKb01GekMyK0tGYUJWc3VvR0RwdXdVTnZv?=
 =?utf-8?B?UXJlRTZ5aE4vM0FycDJ2T1YrR29CT3RPWHRQV01yeExBMkl0MUk2L2NyTkd6?=
 =?utf-8?B?WGNibWp3TkRXbTJpME5FSVVwK1RGSXVza1JvdXlsY0pBMUtjZnhiZVZVdHVw?=
 =?utf-8?B?RWtlZjFDOG1GWFJHeGx3RXIxZ2RRMVpIalduUlQxb3IrTFdZdEtxeXkyU0hy?=
 =?utf-8?B?WVIyZU1MZGNLdGN0Ry8vR29UczQzcTl3eDdZaDZKdmpYUENLbjZrQWl5aDNx?=
 =?utf-8?B?bmpjU2x4QVVINmdEYVYzRlZERS9LTC9kU1o3L2JWZ3U0L1ZCdEJRTDRIaXdn?=
 =?utf-8?B?NHdVOVZvc2syenZDczJMNnVDNlpWdXVHMU5XMHM5TjIzR2ZKZG1kNHBjbXp5?=
 =?utf-8?B?VG1kU2hXSGVUM0VaMnhWd0RKd0c4ZTc1bTMzV3ZDWFRySXFJK0RCOXNiK2Nn?=
 =?utf-8?B?WUVqZ05Ka2ZHVjhiQ1VKSUxvcTlVWVBLUUIvR21zbkZuaG52R09iUkdhR29y?=
 =?utf-8?B?MGZPU3ZTRVpQT1o2NTJEdGZuZ29SNU95QnVobVVMNHlPd0J5bjBzWlBDNkpV?=
 =?utf-8?B?bXpOWDVoRnRWalNSbzI2aU81T2NEQmdxd3RuSDBkWWNOcTR6Si9lbG9xdTB4?=
 =?utf-8?B?WXU3dU5jUi8zSDB3eVpkcHdGaDZzTjZMb2k1WXFrSmdTNXNlU2ZrcllpaWdL?=
 =?utf-8?B?REVZZVhYRnFFMVRzdlpFdlVPNlc1enQwcWJFbGZ3ZE0zd0Z1YTNkNnVnWEc2?=
 =?utf-8?B?b1d1U1hpWXZxcXF6RU5CWVZCRmN6WGZwR0RKMUVXTGJibHIzVFlhclV1cStC?=
 =?utf-8?B?amR0RVY5S1BwNWF4MU9hMU5nUTZkbmgxUFc3ZFdWQUVsM2hidHAzUTVtaVAx?=
 =?utf-8?Q?d+ru2D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(36860700013)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Aug 2025 15:03:38.4675
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ba4759dc-dea8-49be-b56e-08ddda7a9579
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF00022574.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6663

On 2025-08-12 15:00, Jason Andryuk wrote:
> VIRQs come in 3 flavors, per-VPU, per-domain, and global.  The existing
> tracking of VIRQs is handled by per-cpu variables virq_to_irq.
> 
> The issue is that bind_virq_to_irq() sets the per_cpu virq_to_irq at
> registration time - typically CPU 0.  Later, the interrupt can migrate,
> and info->cpu is updated.  When calling unbind_from_irq(), the per-cpu
> virq_to_irq is cleared for a different cpu.  If bind_virq_to_irq() is
> called again with CPU 0, the stale irq is returned.
> 
> Change the virq_to_irq tracking to use CPU 0 for per-domain and global
> VIRQs.  As there can be at most one of each, there is no need for
> per-vcpu tracking.  Also, per-domain and global VIRQs need to be
> registered on CPU 0 and can later move, so this matches the expectation.
> 
> Fixes: e46cdb66c8fc ("xen: event channels")
> Cc: stable@vger.kernel.org
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> ---
> Fixes is the introduction of the virq_to_irq per-cpu array.
> 
> This was found with the out-of-tree argo driver during suspend/resume.
> On suspend, the per-domain VIRQ_ARGO is unbound.  On resume, the driver
> attempts to bind VIRQ_ARGO.  The stale irq is returned, but the
> WARN_ON(info == NULL || info->type != IRQT_VIRQ) in bind_virq_to_irq()
> triggers for NULL info.  The bind fails and execution continues with the
> driver trying to clean up by unbinding.  This eventually faults over the
> NULL info.
> ---
>   drivers/xen/events/events_base.c | 17 ++++++++++++++++-
>   1 file changed, 16 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/xen/events/events_base.c b/drivers/xen/events/events_base.c
> index 41309d38f78c..a27e4d7f061e 100644
> --- a/drivers/xen/events/events_base.c
> +++ b/drivers/xen/events/events_base.c
> @@ -159,7 +159,19 @@ static DEFINE_MUTEX(irq_mapping_update_lock);
>   
>   static LIST_HEAD(xen_irq_list_head);
>   
> -/* IRQ <-> VIRQ mapping. */
> +static bool is_per_vcpu_virq(int virq) {
> +	switch (virq) {
> +	case VIRQ_TIMER:
> +	case VIRQ_DEBUG:
> +	case VIRQ_XENOPROF:
> +	case VIRQ_XENPMU:
> +		return true;
> +	default:
> +		return false;
> +	}
> +}
> +
> +/* IRQ <-> VIRQ mapping.  Global/Domain virqs are tracked in cpu 0.  */
>   static DEFINE_PER_CPU(int [NR_VIRQS], virq_to_irq) = {[0 ... NR_VIRQS-1] = -1};
>   
>   /* IRQ <-> IPI mapping */
> @@ -974,6 +986,9 @@ static void __unbind_from_irq(struct irq_info *info, unsigned int irq)
>   
>   		switch (info->type) {
>   		case IRQT_VIRQ:
> +			if (!is_per_vcpu_virq(virq_from_irq(info)))
> +				cpu = 0;
> +
>   			per_cpu(virq_to_irq, cpu)[virq_from_irq(info)] = -1;
>   			break;
>   		case IRQT_IPI:

Thinking about it a little more, bind_virq_to_irq() should ensure cpu == 
0 for per-domain and global VIRQs to ensure the property holds.  Also 
virq_to_irq accesses should go through wrappers to ensure all accesses 
are handled consistently.

I'll send a v2.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Wed Aug 13 15:07:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 15:07:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080031.1440663 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umD4a-00088S-Cb; Wed, 13 Aug 2025 15:07:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080031.1440663; Wed, 13 Aug 2025 15:07:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umD4a-00088L-9y; Wed, 13 Aug 2025 15:07:28 +0000
Received: by outflank-mailman (input) for mailman id 1080031;
 Wed, 13 Aug 2025 15:07:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=YXQr=2Z=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1umD4Z-00088F-G9
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 15:07:27 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 37be6c12-7857-11f0-b898-0df219b8e170;
 Wed, 13 Aug 2025 17:07:24 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 2F0C06112D;
 Wed, 13 Aug 2025 15:07:23 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1B711C4CEF1;
 Wed, 13 Aug 2025 15:07:22 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 37be6c12-7857-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755097642;
	bh=AgCFVr8B6NzxkSuzvPEJMB9AhjM0iYqJptnGya/8rdo=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=YENt6LTmzTF5MtD2CCE/V13VNj4PuphZirCcbsVboFbdWpo5pbDoM+O1RwGND9hHA
	 WetmjCRKzL7pVzJCuB6ANhgpmI5NnCbOUKiA98JWJtIXOH8N50EVLmuQyuay6zm6ky
	 Onvhe46hQosw9HCamdkdEFdjBFc8sAKkHOvcvhEwHpJ12ST8cc+74GQ77yCDPQN8yP
	 6Wv7nBFsNIocmJw6FI3A2Sw+oIhMT6YNdwdLIq5MhleD6VLBx07CKPNCPkvEmssek+
	 ZjeG2ZowZ0nIKyT2jMky93WoiZsWFLORbU579a0ityJsLq0oaeKqLOOi+Bq4oEc02a
	 vNc66YhlSs8qQ==
Date: Wed, 13 Aug 2025 18:07:18 +0300
From: Leon Romanovsky <leon@kernel.org>
To: Jason Gunthorpe <jgg@nvidia.com>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 08/16] kmsan: convert kmsan_handle_dma to use physical
 addresses
Message-ID: <20250813150718.GB310013@unreal>
References: <cover.1754292567.git.leon@kernel.org>
 <5b40377b621e49ff4107fa10646c828ccc94e53e.1754292567.git.leon@kernel.org>
 <20250807122115.GH184255@nvidia.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250807122115.GH184255@nvidia.com>

On Thu, Aug 07, 2025 at 09:21:15AM -0300, Jason Gunthorpe wrote:
> On Mon, Aug 04, 2025 at 03:42:42PM +0300, Leon Romanovsky wrote:
> > From: Leon Romanovsky <leonro@nvidia.com>
> > 
> > Convert the KMSAN DMA handling function from page-based to physical
> > address-based interface.
> > 
> > The refactoring renames kmsan_handle_dma() parameters from accepting
> > (struct page *page, size_t offset, size_t size) to (phys_addr_t phys,
> > size_t size). A PFN_VALID check is added to prevent KMSAN operations
> > on non-page memory, preventing from non struct page backed address,
> > 
> > As part of this change, support for highmem addresses is implemented
> > using kmap_local_page() to handle both lowmem and highmem regions
> > properly. All callers throughout the codebase are updated to use the
> > new phys_addr_t based interface.
> 
> Use the function Matthew pointed at kmap_local_pfn()
> 
> Maybe introduce the kmap_local_phys() he suggested too.

At this point it gives nothing.

> 
> >  /* Helper function to handle DMA data transfers. */
> > -void kmsan_handle_dma(struct page *page, size_t offset, size_t size,
> > +void kmsan_handle_dma(phys_addr_t phys, size_t size,
> >  		      enum dma_data_direction dir)
> >  {
> >  	u64 page_offset, to_go, addr;
> > +	struct page *page;
> > +	void *kaddr;
> >  
> > -	if (PageHighMem(page))
> > +	if (!pfn_valid(PHYS_PFN(phys)))
> >  		return;
> 
> Not needed, the caller must pass in a phys that is kmap
> compatible. Maybe just leave a comment. FWIW today this is also not
> checking for P2P or DEVICE non-kmap struct pages either, so it should
> be fine without checks.

It is not true as we will call to kmsan_handle_dma() unconditionally in
dma_map_phys(). The reason to it is that kmsan_handle_dma() is guarded
with debug kconfig options and cost of pfn_valid() can be accommodated
in that case. It gives more clean DMA code.

   155 dma_addr_t dma_map_phys(struct device *dev, phys_addr_t phys, size_t size,
   156                 enum dma_data_direction dir, unsigned long attrs)
   157 {
   <...>
   187
   188         kmsan_handle_dma(phys, size, dir);
   189         trace_dma_map_phys(dev, phys, addr, size, dir, attrs);
   190         debug_dma_map_phys(dev, phys, size, dir, addr, attrs);
   191
   192         return addr;
   193 }
   194 EXPORT_SYMBOL_GPL(dma_map_phys);

So let's keep this patch as is.

Thanks


From xen-devel-bounces@lists.xenproject.org Wed Aug 13 15:17:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 15:17:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080043.1440675 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umDDs-0001QE-8Y; Wed, 13 Aug 2025 15:17:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080043.1440675; Wed, 13 Aug 2025 15: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 1umDDs-0001Q7-5d; Wed, 13 Aug 2025 15:17:04 +0000
Received: by outflank-mailman (input) for mailman id 1080043;
 Wed, 13 Aug 2025 15:17:02 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1umDDq-0001Pv-CR
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 15:17:02 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1umDDp-003PZp-0y;
 Wed, 13 Aug 2025 15:17:01 +0000
Received: from [2a01:cb15:80df:da00:7360:a082:15b4:b94d] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1umDDo-002Xxi-2z;
 Wed, 13 Aug 2025 15:17: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date;
	bh=5CGFoFkA0da/z0blA5erXGxEsnjl6kQegdpa2LiIwvU=; b=0folAU/1q3OTwntCPIShxjfP88
	kLt7YAZ0Qwv0gvst78dK9BsCy3B68CeCUYUBXRMMs1QEGnEag0d5l26vTseb6jR6ePONRzvOcEnvb
	9MxGxGYNQvTIYMvITZjLVTYwr1a4751p9kRoDAPZXitP/a5KJp4L9WsvJ74D2d501Cac=;
Date: Wed, 13 Aug 2025 17:16:58 +0200
From: Anthony PERARD <anthony@xenproject.org>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Doug Goldstein <cardoe@cardoe.com>,
	Marek =?iso-8859-1?Q?Marczykowski-G=F3recki?= <marmarek@invisiblethingslab.com>,
	Victor Lira <victorm.lira@amd.com>
Subject: Re: [PATCH 2/5] CI: Update ppc64 to use Debian Trixie
Message-ID: <aJysartA4Sh6bdTE@l14>
References: <20250809221206.1260861-1-andrew.cooper3@citrix.com>
 <20250809221206.1260861-3-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250809221206.1260861-3-andrew.cooper3@citrix.com>

On Sat, Aug 09, 2025 at 11:12:03PM +0100, Andrew Cooper wrote:
> diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
> index ab5211f77e5e..3fe539dc5683 100644
> --- a/automation/gitlab-ci/build.yaml
> +++ b/automation/gitlab-ci/build.yaml
> @@ -319,10 +319,10 @@ debian-12-x86_64-clang-debug:
>    variables:
>      CONTAINER: debian:12-x86_64
>  
> -debian-12-ppc64le-gcc-debug:
> +debian-13-ppc64le-gcc-debug:
>    extends: .gcc-ppc64le-cross-build-debug
>    variables:
> -    CONTAINER: debian:12-ppc64le
> +    CONTAINER: debian:13-ppc64le
>      KBUILD_DEFCONFIG: ppc64_defconfig
>      HYPERVISOR_ONLY: y
>      EXTRA_XEN_CONFIG: |
> @@ -705,6 +705,20 @@ debian-12-ppc64le-gcc:
>      KBUILD_DEFCONFIG: ppc64_defconfig
>      HYPERVISOR_ONLY: y
>  
> +debian-12-ppc64le-gcc-debug:
> +  extends: .gcc-ppc64le-cross-build-debug
> +  variables:
> +    CONTAINER: debian:12-ppc64le
> +    KBUILD_DEFCONFIG: ppc64_defconfig
> +    HYPERVISOR_ONLY: y
> +

Why did you remove the EXTRA_XEN_CONFIG from this job? Currently, the
job is setup as:

    debian-12-ppc64le-gcc-debug:
      extends: .gcc-ppc64le-cross-build-debug
      variables:
        CONTAINER: debian:12-ppc64le
        KBUILD_DEFCONFIG: ppc64_defconfig
        HYPERVISOR_ONLY: y
        EXTRA_XEN_CONFIG: |
          CONFIG_UBSAN=y
          CONFIG_UBSAN_FATAL=y

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Wed Aug 13 15:37:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 15:37:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080053.1440686 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umDXl-0004IU-QT; Wed, 13 Aug 2025 15:37:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080053.1440686; Wed, 13 Aug 2025 15:37: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 1umDXl-0004IN-NF; Wed, 13 Aug 2025 15:37:37 +0000
Received: by outflank-mailman (input) for mailman id 1080053;
 Wed, 13 Aug 2025 15:37:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=YXQr=2Z=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1umDXk-0004IH-8j
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 15:37:36 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org
 [2604:1380:4641:c500::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6e358bec-785b-11f0-a328-13f23c93f187;
 Wed, 13 Aug 2025 17:37:34 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id B00E35C1360;
 Wed, 13 Aug 2025 15:37:32 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id A911EC4CEEB;
 Wed, 13 Aug 2025 15:37:31 +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>
X-Inumbo-ID: 6e358bec-785b-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755099452;
	bh=PQhq5rWxBSi6wo5Tnnh0V92zapg7M+UyVJSAH0kCd/o=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=kkqdIE/HRQ5cedE1zyuMfMRaAZJeqzpFBH0/fLyOJbOpD7Q9Y6fUKKVCUSYg6Iu9+
	 +0lhPpaogX+zo7DE625PlBBN7tO+nQtx0LA2aKRv5GqYQcf/TD8I++3mIddUS1oGuS
	 2Xu0FGRyeN7MRl5kxApDBRYf8dHZhW8fLMu9BCMo8fTZeDkfiJH03TaTo8MCeUS3wk
	 Q3N2kSeVd08IYz9d3sNubS0p0XfPjY2fnOy5IU5HLL6nAdg88Wdvo9IzmX54CnrqWQ
	 dCVsQbDhz8GqQ+nB2+l0260S3CZs7QJe8H773Ex1NmDTheYUl2t1VYx6TqiJOtited
	 Jw1XTt4Q0BCbw==
Date: Wed, 13 Aug 2025 18:37:28 +0300
From: Leon Romanovsky <leon@kernel.org>
To: Jason Gunthorpe <jgg@nvidia.com>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 16/16] nvme-pci: unmap MMIO pages with appropriate
 interface
Message-ID: <20250813153728.GC310013@unreal>
References: <cover.1754292567.git.leon@kernel.org>
 <5b0131f82a3d14acaa85f0d1dd608d2913af84e2.1754292567.git.leon@kernel.org>
 <20250807134533.GM184255@nvidia.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250807134533.GM184255@nvidia.com>

On Thu, Aug 07, 2025 at 10:45:33AM -0300, Jason Gunthorpe wrote:
> On Mon, Aug 04, 2025 at 03:42:50PM +0300, Leon Romanovsky wrote:
> > From: Leon Romanovsky <leonro@nvidia.com>
> > 
> > Block layer maps MMIO memory through dma_map_phys() interface
> > with help of DMA_ATTR_MMIO attribute. There is a need to unmap
> > that memory with the appropriate unmap function.
> 
> Be specific, AFIACT the issue is that on dma_ops platforms the map
> will call ops->map_resource for ATTR_MMIO so we must have the unmap
> call ops->unmap_resournce
> 
> Maybe these patches should be swapped then, as adding ATTR_MMIO seems
> like it created this issue?

The best variant will be to squash previous patch "block-dma: properly
take MMIO path", but I don't want to mix them as they for different
kernel areas.

Thanks

> 
> Jason
> 


From xen-devel-bounces@lists.xenproject.org Wed Aug 13 15:42:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 15:42:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080062.1440695 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umDcq-000604-D0; Wed, 13 Aug 2025 15:42:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080062.1440695; Wed, 13 Aug 2025 15:42: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 1umDcq-0005zx-9y; Wed, 13 Aug 2025 15:42:52 +0000
Received: by outflank-mailman (input) for mailman id 1080062;
 Wed, 13 Aug 2025 15:42:51 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1umDcp-0005zr-C7
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 15:42:51 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1umDco-003Q38-1h;
 Wed, 13 Aug 2025 15:42:50 +0000
Received: from [2a01:cb15:80df:da00:7360:a082:15b4:b94d] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1umDco-002Z8Q-1U;
 Wed, 13 Aug 2025 15:42:50 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date;
	bh=WBHbdU9yu+Kf1roDgEwDVokKcjGDiNuFr0S0qRaAhGI=; b=J9h7ou7uF9e9fM7rrNehUeWZt9
	Asgk8iVLKXs0CoA+KUoZT2G6pBDLaii7ONFZCYVhKqq31fYlciDZ2Gd1u56E7H/s333xQn3fzUd8E
	e8q1hq2BEDl6R+K8YmhUPAyQoP3JLuBM2urV7DFKKGMW26dmYePdzaTq44dD1MQ+gYK0=;
Date: Wed, 13 Aug 2025 17:42:48 +0200
From: Anthony PERARD <anthony@xenproject.org>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: Re: [XEN PATCH 04/11] tools/configure: Introduce deps on json-c lib
 for libxl
Message-ID: <aJyyeAjtIDslRrAx@l14>
References: <20250808145602.41716-1-anthony@xenproject.org>
 <20250808145602.41716-5-anthony@xenproject.org>
 <5de6ae46-8398-46ab-b79a-df45358c5c30@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <5de6ae46-8398-46ab-b79a-df45358c5c30@citrix.com>

On Mon, Aug 11, 2025 at 11:48:19AM +0100, Andrew Cooper wrote:
> On 08/08/2025 3:55 pm, Anthony PERARD wrote:
> >  xl: $(XL_OBJS)
> > -	$(CC) $(LDFLAGS) -o $@ $(XL_OBJS) $(LDLIBS_libxenutil) $(LDLIBS_libxenlight) $(LDLIBS_libxentoollog) $(LDLIBS_libxenstore) -lyajl $(APPEND_LDFLAGS)
> > +	$(CC) $(LDFLAGS) -o $@ $(XL_OBJS) $(LDLIBS_libxenutil) $(LDLIBS_libxenlight) $(LDLIBS_libxentoollog) $(LDLIBS_libxenstore) $(YAJL_LIBS) $(LIBJSONC_LIBS) $(APPEND_LDFLAGS)
> >  
> >  .PHONY: install
> >  install: all
> 
> Specifying both isn't entirely great when one is supposed to be empty.
> 
> Could we not have XEN_JSON_LIB(s) which is set to either $YAJL_LIBS or
> $LIBJSONC_LIBS as appropriate?

Yes, that sounds good.

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Wed Aug 13 18:04:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 18:04:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080161.1440726 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umFpa-0007Co-2k; Wed, 13 Aug 2025 18:04:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080161.1440726; Wed, 13 Aug 2025 18:04: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 1umFpZ-0007Cg-Vm; Wed, 13 Aug 2025 18:04:09 +0000
Received: by outflank-mailman (input) for mailman id 1080161;
 Wed, 13 Aug 2025 18:04:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gOuC=2Z=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1umFpY-0007CZ-7X
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 18:04:08 +0000
Received: from GVXPR05CU001.outbound.protection.outlook.com
 (mail-swedencentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c202::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id df06c095-786f-11f0-b898-0df219b8e170;
 Wed, 13 Aug 2025 20:03:52 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by AS8PR03MB9120.eurprd03.prod.outlook.com (2603:10a6:20b:5b2::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.15; Wed, 13 Aug
 2025 18:03:50 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9031.014; Wed, 13 Aug 2025
 18:03: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>
X-Inumbo-ID: df06c095-786f-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iWHRJ6hoQ7vi4El0xRnL5/HnO3XrHQ0sl+6xbp/3c8AbD7y6C8j2H1h1Q222tsRbbBBisRq7Si1DGUIpHQYDYPPS2E8tbLOY4Xy0LJH0eWCzQmo2P5sIDVW0uuE15fWKrQ6DdT1SjGLq/v/XZc3wFzQX8jv4OJUO0ptYTnuyliBkxP9GCwUtobq4kulexwoAxf6gdifj7oyTSyak/GHrQNIAjGNF5E6V/gf5AVgnqZxZOAPeBB5t2OeZFeUa3Knx+x9tYdyWGDganOP6+Ev3dF8SIF7CcHUIusr7LkGmdwIMecN+UGSS/mR7nGylIrvIM4d7VDrpVbiSqJ0tmbep6A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=5WM5oMPjmZLOci1813SLcbAPd0JjSY3Fo1ZPlrMiOo0=;
 b=s71NOhFcA3v5zJ1CRy2UvC6uz6cvK6k81FOXB6VdHWhuBvW4XLN/EQPFBF1YBJZjAz/3ZetDsFStlbN+zLlJYoemd9rlumEBG3Z5aZvGa1UMMJi2I0JnOApxvHCqIbmZRRMIeGM0PaZvpGEkEJDxazMU0iko5CnpT2d9dGXLVrYhXo4lSbptwcSMwon0sD9iRkuDvDtu7CnR9IyUzT/dE/VwxOyAQLsEKhGAxiCWevGh3hF6Z+F99RQJMHTqSWzfIJJ0W1gYruOrAMUleIMHNtnPsT7YAKu15on7d8nIjmHE7E0MbVUy4gqIM9MppedoJpFeFHe3fdkllFeWNOL4vg==
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=5WM5oMPjmZLOci1813SLcbAPd0JjSY3Fo1ZPlrMiOo0=;
 b=EVGCUX/Ev/q+P0VpPj4d6aMtNGubJ+0ahZPZu7fFn+qnHPyDrhC6ENCTpuzdFUO5hMqvFo8OjGSkK8rdNpO+qOwlbi2QkotMT+3eYQ/KaQdCvAhWs99U/KRAtpZk1ekgGHpIhP4UXkatbJuVSxQBofUpobnq5rT+yrbvqEO67BiHkXCwwhtSmTfzG2G1FFoSumzCQn4PkH8ALVbc4j5rh41EqoNgaDY/nUecFuCn4Kb8vRlPQecpRs/fdcv9CJfhlzLlU6GknY1lPSzH07l/w1FaFrRTWlT3iHMZJUHhu6e8CSB2tjOmGDpzVz3tYMWlvdAquqJTIb3nyxtOAWrWSQ==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH] misra: address Rule 11.1 violation in cmpxchgptr()
Thread-Topic: [PATCH] misra: address Rule 11.1 violation in cmpxchgptr()
Thread-Index: AQHcDHyf3UfD7hhtRUO3Pk5yKmZkVw==
Date: Wed, 13 Aug 2025 18:03:50 +0000
Message-ID:
 <64882f9ee8e470a2633b8b4d0b5c1cd9d1c0a8c7.1755107902.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: GV2PR03MB9572:EE_|AS8PR03MB9120:EE_
x-ms-office365-filtering-correlation-id: cc99c9d8-1b3b-4005-cbf3-08ddda93c1d5
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|42112799006|376014|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?NGm4ShPUWTIICSgj0yG2O742gsMtUGzBeYtq6XIAo2GZj9pZDanVxvovNT?=
 =?iso-8859-1?Q?3cV+nFlZFA/3HRT19evbew4kNsOqOT6WOYLnyAoyE6rFIMQsSWv5raWnhP?=
 =?iso-8859-1?Q?RKIrjkoJl7KeXK2u9P1xS9zRYZ85m75P89ccFJSvxou5uT1n6H3S6SoVHR?=
 =?iso-8859-1?Q?QQN+livhukLQj/T5lv08+Jkl0EfHOU4Cz0LkLCUj8nsI/BQnpU7xSp/f5v?=
 =?iso-8859-1?Q?NMKFP8QVhH0IpC1EiCPc7NJBOrerxJ3EBOwGSCIvxz43+VsJydvBm6L8oO?=
 =?iso-8859-1?Q?DsSDbQGkXUdvoB5opYpH2fV+TEFyCevCDB/BVCsyxa53acmH5SgqXzh3wE?=
 =?iso-8859-1?Q?Vm8Uoh0LzLHyi7j62lCpwyPnEbIUtfaSyMnfHCEDafGKWbIkXniGxQ3XzP?=
 =?iso-8859-1?Q?mN3ZOq0baQ8vnOwZFGbUQVQhu3nH8p9olPLdk/IeMLOsD4XHnuQe7Zobcm?=
 =?iso-8859-1?Q?3cxHltyk/C/VgJogKQLtVsEmb+NzOckE927rZXp05NPtcUo+FWW0G0lZC6?=
 =?iso-8859-1?Q?b8bMRIzg/LbzlgM04KOJsVHuOQ/qL88JueII6+MDAZVY0Vk7+4MSJwlEdF?=
 =?iso-8859-1?Q?SYh+BUMvIZ4TRzWyqoGtHInDsEGAnuIehu6GbCyEMRBBC6kpW1xqo/aIKK?=
 =?iso-8859-1?Q?+yzZ5mrL3QFaQDtVThrVtWNjSOcmqEZWCXjLv26kplaUWwblv0QjTRKISN?=
 =?iso-8859-1?Q?B7T3EWivcgLcTm5w3A2yoZUHkgZ8OS91GELNw+o0h7Zil514unWp3J+ENm?=
 =?iso-8859-1?Q?FpI+wikmGh0uj4dAXAakM+DZcTU2zPWKXrL3bXJmm42kgWAqqQ8qSosDRD?=
 =?iso-8859-1?Q?X9iuDYW9x4m+jJRm4Y4o+ltjg7GGAIKWur6LXpDqUaHBTctxsN5rk795XU?=
 =?iso-8859-1?Q?qp5AyzlQc9hvbGk9r8bYG013pgk6kyhhBYdd1WKbszzSAi4Gp1vQvVEu8P?=
 =?iso-8859-1?Q?gD/TrxLy7XSKz5OeovCbzL+S4ELSEAA2VZyEmkMHpl+JAeT6xopA0TNueM?=
 =?iso-8859-1?Q?Jne5TtzAh//FR0swoe6CWYRqgH5IBgbtLOgxkxnY5qVn4ZpsbUsQjT8/2t?=
 =?iso-8859-1?Q?RcBy/cv51uvP/2dIxc3uBAGqNdFiF8VpjzAdVYhmP4f3aBBBuYEC8L+4jA?=
 =?iso-8859-1?Q?JcuKoFP+I6hsElS6gzAomuaP6jVkqqW69D4Ii5JtO9+fH9rLZ5LVpGIuNa?=
 =?iso-8859-1?Q?tpeXmq4rqcREtOkc+Mi42VHPgM2xIRSx0Rx6CwfuMkuJNauMST3g7wAsEp?=
 =?iso-8859-1?Q?33ZEsjyADNwwzx2EkRN4kJZYPSrFZ+D3h0z6fETab5cnh/YuwzlkKzCNMo?=
 =?iso-8859-1?Q?esLENBLNf+3tMAvxdBwRNfl6HFLVoRhTpuyLdsxxGsNSc32GDivN7sFvCJ?=
 =?iso-8859-1?Q?CSpFSZE4G3E3GGAnid1t7ZDlsQ+JP4tqfDlKyKK8fkJTq5fP2AcWLh5NPz?=
 =?iso-8859-1?Q?YVUvSaRWEInDvn3CBX5UOPBQyOUJGa/uEkxym/qEyKvpZoqPJ+zvZ7fcls?=
 =?iso-8859-1?Q?3iTtWClS5QJ/Laabh4oLtR251n34Qhkg6SnsLVdKbjb0PEN5n3uH9pwjkl?=
 =?iso-8859-1?Q?rWBTuJM=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(42112799006)(376014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?R4dycWxtM7CbBE5mtH00gdZdBfmRXwWPli42HRLdfAfZhyeO7L+9gcvwDI?=
 =?iso-8859-1?Q?BDXIGM1EeZ+rB6EUBUze8quJ1VuPDtoyz5jwNDdJzRbuyifBUnJaeRSqDW?=
 =?iso-8859-1?Q?B7HGdUglE227cG3PQbhL5Kt6l5KYpr/6xu2GKRLJGc2q3uS7UcI7Lltnfg?=
 =?iso-8859-1?Q?GN2rHxkB5EuBDksyM2k4WOB92wNOE3uhr8eZi0yU/Gy7FCn0O55KvymZfy?=
 =?iso-8859-1?Q?Kkc9nD5TYL2ORriq/ozahJepSBddDgdwOAiL3p/Q3/tXEzl9xJOkSNrjRc?=
 =?iso-8859-1?Q?feioHDerNkAm5Xvr7FcoEIf6wWxpT1ugluqiWg6vuObd1JT+NIBCOZ3fhW?=
 =?iso-8859-1?Q?dmz7nO2+LLJ9+OF7+Zn+TErtWwLwdSEwluKRhqSiDjUeQgTYgcSHQTkp53?=
 =?iso-8859-1?Q?llg9mmxz/NruMzpmeplsDXq40k9OzQtOperV2SibIYKtiQFJY3bYnsi255?=
 =?iso-8859-1?Q?X3KVlddvGfYI4Uh0IuPhS1TV968YopMkfWAiaLWDoy8q8WqFUlaDI4tie1?=
 =?iso-8859-1?Q?uVx6UD68iZJjxF/wpjdL5h3HeW1A7ugPOPw/Mr5Skk5yw8x2lo6dUCD6Qf?=
 =?iso-8859-1?Q?xSkHhgRXlvVGFBH4/hf48SLT65S3Bgh/ASOQq47PkAXJBwddjxgkc56eu1?=
 =?iso-8859-1?Q?8/IiR165a0cDvRWRDDh1ttjiQzrS+Sd746fdRFrky6UGJ5c7xfGUOUCdyM?=
 =?iso-8859-1?Q?VTcLW8VUrvbUsesbotPW91T7D8aVyRlj4Y/epK2ZKC7UyHhPmz3m90Gqkd?=
 =?iso-8859-1?Q?QsgY8Haetv7PdmoWAO4bb2kUq3HwnOr+OOgA1PI9q2adxZVZvgxOz90oA8?=
 =?iso-8859-1?Q?dFuCLYCHGBDghjKiUmeo5F/0Q1KexSg/Juzm4m+ds8lHflK7qu7KPhGDzU?=
 =?iso-8859-1?Q?FOYJUKHVGdgK5qoyhhnmOrJX5Mqwn2VoUuQr0w29ADLmrfW8enkQQca9qX?=
 =?iso-8859-1?Q?xKlXrpogugxpd4EJ5mRCT2Fy8lA5KLHp9UlDcu11tvpaFgllBx4efQ5wQT?=
 =?iso-8859-1?Q?54sWcXBKqJEFA/IuOLUJ9zVLuye0PApkqRFkWWg6IYqw/aN8+N87LNe15v?=
 =?iso-8859-1?Q?00gcNfwbewuK2e3ThfyblG4+jOBDS/Z0eb6Axp+vqOfwsZaUIhx519V939?=
 =?iso-8859-1?Q?F7HQP9IzJS1cSbMnDUh3jdOUGWvoIqfEpq9N1PM4kFG/d8DCqQhpJ1hMKw?=
 =?iso-8859-1?Q?KGWxBxmGWSSpjtDolAPm6x7ceyR0KUIFemaCtyjyWxcZxCCx6dZSG5RVQK?=
 =?iso-8859-1?Q?OPiolHqX4buuXhslIajgze6VcXHDVUw+HvW9un4A70gYWSzxrS3TxLrZW4?=
 =?iso-8859-1?Q?uzLJlywwhww3pzSZSMrACAbwBQ/d4nZ8kQZ2yZoc27FaHw5AYiMLn1yNxa?=
 =?iso-8859-1?Q?qqKKYqWRzBBzArbpiRXy1LAu4+Mn0BnApXzOLXu76+3tugAqD2TrtyoXPv?=
 =?iso-8859-1?Q?jkAVNrsSi7W14M/v35xmLV9sspPaCeH6SL9bsMxWgjiTIu95yp8nNYfCo0?=
 =?iso-8859-1?Q?Vm4tn98p3fABF1WEwdo9H6SMZrLERdRR53oAtM+N7PFZ2HSu15WDZBQbXv?=
 =?iso-8859-1?Q?comhVqEkV0uQCnqK8wyvd8ag6ino3YPRuFYFsO18Z3N92snxSgfwnKyja8?=
 =?iso-8859-1?Q?rDf+s+UnDQFN2uwnRFj4eU/x+cRxqAyZ2OzzYXh+cIYO0pW90TR27fyw?=
 =?iso-8859-1?Q?=3D=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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: cc99c9d8-1b3b-4005-cbf3-08ddda93c1d5
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Aug 2025 18:03:50.3422
 (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: GvUTa9jQ/EwFVrDgp0uvcxR14MeNIMzdIxUupDVG3WN7URrtTtQmVP5+xy9giWvFKdzke4ffxxjDwAbtBMSTnhbWAiQmoG7zunitrAZLbqQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB9120

Misra Rule 11.1 states: "Conversions shall not be performed between a
pointer to a function and any other type."

The violation occurs in the macro:
    __typeof__(**(ptr)) *const o_ =3D (o);                                \
    __typeof__(**(ptr)) *n_ =3D (n);                                      \
    ((__typeof__(*(ptr)))__cmpxchg(ptr, (unsigned long)o_,              \
                                   (unsigned long)n_, sizeof(*(ptr)))); \
})
when it is used for handling function pointers of type:
typedef void (*)(struct vcpu *, unsigned int).
The issue happens because the '__cmpxchg()' function returns an 'unsigned
long', which is then converted back into a function pointer, causing a
violation of Rule 11.1. In this particular usage, the return value of the
macro 'cmpxchgptr()' is not required. To address the violation, the macro
has been replaced to discard the return value of '__cmpxchg()', preventing
the conversion.

Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
Probably separate macro is too much for this single case.

And the following will be enought:
__cmpxchg(&xen_consumers[i], (unsigned long)NULL, (unsigned long)fn, sizeof=
(*(&xen_consumers[i])));
---
 xen/common/event_channel.c | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/xen/common/event_channel.c b/xen/common/event_channel.c
index 67700b050a..2094338b28 100644
--- a/xen/common/event_channel.c
+++ b/xen/common/event_channel.c
@@ -93,6 +93,17 @@ static void cf_check default_xen_notification_fn(
         vcpu_wake(v);
 }
=20
+/*
+ * A slightly more updated variant of cmpxchgptr() where old value
+ * is not returned.
+ */
+#define cmpxchgptr_noret(ptr, o, n) ({                  \
+    __typeof__(**(ptr)) *const o_ =3D (o);                \
+    __typeof__(**(ptr)) *n_ =3D (n);                      \
+    (void)__cmpxchg(ptr, (unsigned long)o_,             \
+                    (unsigned long)n_, sizeof(*(ptr))); \
+})
+
 /*
  * Given a notification function, return the value to stash in
  * the evtchn->xen_consumer field.
@@ -106,9 +117,9 @@ static uint8_t get_xen_consumer(xen_event_channel_notif=
ication_t fn)
=20
     for ( i =3D 0; i < ARRAY_SIZE(xen_consumers); i++ )
     {
-        /* Use cmpxchgptr() in lieu of a global lock. */
+        /* Use cmpxchgptr_noret() in lieu of a global lock. */
         if ( xen_consumers[i] =3D=3D NULL )
-            cmpxchgptr(&xen_consumers[i], NULL, fn);
+            cmpxchgptr_noret(&xen_consumers[i], NULL, fn);
         if ( xen_consumers[i] =3D=3D fn )
             break;
     }
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Wed Aug 13 18:27:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 18:27:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080174.1440735 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umGCU-0001eT-TB; Wed, 13 Aug 2025 18:27:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080174.1440735; Wed, 13 Aug 2025 18:27: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 1umGCU-0001eM-Qb; Wed, 13 Aug 2025 18:27:50 +0000
Received: by outflank-mailman (input) for mailman id 1080174;
 Wed, 13 Aug 2025 18:27:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gOuC=2Z=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1umGCT-0001dw-O3
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 18:27:49 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 366d90c8-7873-11f0-a328-13f23c93f187;
 Wed, 13 Aug 2025 20:27:48 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by AS8PR03MB7814.eurprd03.prod.outlook.com (2603:10a6:20b:34c::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.22; Wed, 13 Aug
 2025 18:27:46 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9031.014; Wed, 13 Aug 2025
 18:27: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>
X-Inumbo-ID: 366d90c8-7873-11f0-a328-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=LbYWClpd5Cw+OhWEJE9NdUp248r14j2BeakKxgnbGmlFmfKfVcMxUoXmF+Ttf7HpbIcbSlTtYP3aTC+5AtDrSxYMhNFAn8GxqJ7Zz7pZuW7T4txr37C1cfRY/tpDwiGVD8mGXRutXQaiDeOHdwSnFOtgtLBeiQM6CmLOt3Hm8R1R+ZjI9Zjn4w/Y1vg+WN8hYclSBiWKublo9EPUm/yDq2sYsrzzs7+juhjccoUe8ySPbY1G+1SucPT0pv1CpCpFR+jxcHDmzsp67pYb3J0NF8jS/M6mwR3tAQO+Sx6OV5OxUYFppwTP0sPU+gQJLtmMc6EF11LEPAwUCA24X8WO+Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=GxwTPniR/EDd6mZM+Z8suKjuq6XIBjf3jY6EcSig0MI=;
 b=dh3dAMbCx+li4WMdKJVl2x6z7YDM8LGo1/NuaukUfsK6E4D63QM4lJ1pNh3MR5pI/HrX+cJIRPFPFbYzKJ0UlELN6QdzqnSI7h9EyxgLfWtwkdFqgStzfQc4qV6jk32lWC2jr9I/hnt7yw148jW87Q7eYxJ5WNy/Lk/lRaHR2pwZuh/iR5/OEv5PsPKboUMuGq4oO/msCGLz06eD+1QE3grN4baT2vVJ94vDiiYJC/+Da8F8IanJO2QHYsL9g/L7uHRfu+IJlW2mdTnojeSrECikQmc8/teeKqvH8zygG6JeoQjKF3DBumWtwAhxlK4vBidMcI2Ect6eKnAyh4pEvQ==
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=GxwTPniR/EDd6mZM+Z8suKjuq6XIBjf3jY6EcSig0MI=;
 b=NG0ska1rOZo576JFbCpVaZZVFADfvC7R3efaMWaUYTjUfy0e59l1CPE8q4M1YX7Cc4B0n+7Hj8dBlm/MCSf4rTSlllk++vW0Wukqq68kj97pgnKmpSqc3/lPEdgzrUxZoky+rMyPLQgZi9P5Nm5X4zLKfDVF4a1ZNmGpkWbKa59tu1BsgWLw2Hbse7mjEJfrXYrz8B3jpj86jSPcJD+UHd0HeZrffl9L6HUhpFdessZXsn2DvHgIGHOTmQrP6Kd5wO3z0Z4PEZD+kB08x+L14keB1/EdV44DCMPFTOqGPAtDmKCsX2YgsPAC8hUIjyDX61Zrxf7yAklTzna/jIEayw==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, Nicola Vetrini
	<nicola.vetrini@bugseng.com>, Doug Goldstein <cardoe@cardoe.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [RFC PATCH] misra: allow conversion from unsigned long to function
 pointer
Thread-Topic: [RFC PATCH] misra: allow conversion from unsigned long to
 function pointer
Thread-Index: AQHcDH/2fJv669AP80eUn9D9WGE5wg==
Date: Wed, 13 Aug 2025 18:27:45 +0000
Message-ID:
 <8cbc9e6d881661d0d7a1055cbcef5a65e20522be.1755109168.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: GV2PR03MB9572:EE_|AS8PR03MB7814:EE_
x-ms-office365-filtering-correlation-id: b76e1645-37e3-47ed-5729-08ddda97196f
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|42112799006|7416014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?1nivx8WaPwDL0bKAXjfQbR2R5/DmmjyTgbloA6LxRYS4Jp+vhGBH0OyZ0Y?=
 =?iso-8859-1?Q?E1ViwzqvJspujSbd1NS5qKph1xXhIm3T6Ck/FuF1KINWw2TxCtXPxtjisy?=
 =?iso-8859-1?Q?XWAzIn5mg53AoId6hZd0XmbzntWx7W5NdNl2nwdd0h7jhlaA+UCuHJx7Kz?=
 =?iso-8859-1?Q?rndQ1hUjRJWxV7Oc2YGvik02DUSnJ8SNCr6kuk8TbkDAfCCC75JldP6L59?=
 =?iso-8859-1?Q?YHi32rTtCUaf+GBTheuxw/lL75uz/lTPpkw++1fquUCQ8OyuRp0KLlI/vb?=
 =?iso-8859-1?Q?ENiwg9enRCjJC3+bYfoSzMecNq7B64eyUZ9d91vquNYehO+3HOIn3LJklh?=
 =?iso-8859-1?Q?b4wOthRgJn27P9l4sM6afJXVgUgDhfiGLZhh22k5XKK7luHn1mrcil61rb?=
 =?iso-8859-1?Q?RrGLplObhyXsk6xdyCtD7jDYbpKz0pGaddccz3BE7TrPl3JtroBx5vkC+6?=
 =?iso-8859-1?Q?Xvdpvr6gbCiN8sSV7rD+kV7U2Z4wHkBRmi1CFjbMJWcaT3aoxeSZY09uSg?=
 =?iso-8859-1?Q?r8VSbrIPaVOpKVD8weQrWW1lQfslzv7m6je0E90EUuECaWs3+XUO3jfbR+?=
 =?iso-8859-1?Q?q8OU7tt7tDfwFniDMMQmBt2wF/JRdoJjivSyRAcr2XLvv2U0eHDlWocp97?=
 =?iso-8859-1?Q?TVR8ae9cuIlPEMPXdHawwJRT1xNPKefKoDJaYklUvi8pbTSmTZjua3p++0?=
 =?iso-8859-1?Q?DDQr9yFKdWKbnIaAP6+wBpUAYOrfV67Y/BBmq+kEqyD3leSbiVqJLMO6CJ?=
 =?iso-8859-1?Q?TCUtLmJ4Lrl8aGne0+beFA090BHX0WkzIZ3l2V8G3K4Lr5bMFmuhJ58xiZ?=
 =?iso-8859-1?Q?dzLSK2K7i8aLYv5klMKUOaIwUxJ5UUNWzyc9JyUiqw0DyAvx81xlHH1X8+?=
 =?iso-8859-1?Q?sB4JasaJ1ZWyytlmNLlSIwKTMQDLT3QymvIaL4V4h0VD8Gh6UMBNXawlgc?=
 =?iso-8859-1?Q?x3IkAjzBTtCR0BOD3C1kD6+h319aCX0CxLUR15ACiz1swHIKY7Mj53V72o?=
 =?iso-8859-1?Q?Mh6NWxkVaqxBUOtNq9fus+bpgCkWBIcCQoDQjlQtwplVQrdkiK4hDqCpIj?=
 =?iso-8859-1?Q?RXqtIoWi5ZGSBUrggLNWx/jcSkqse4MG+BlPJ7XpMJrjJxo62TyuRce15Y?=
 =?iso-8859-1?Q?GLwsxjTvb+k6R7LPSj79f1CaZ4TCCADmnQhRfDJumatX0+rDJrpqVDXYnw?=
 =?iso-8859-1?Q?sB9UyQZnOkr1ixq3UvET43ARilJk8ip7Plmk19ZuZjsNZbQPi3Kf1a/2dv?=
 =?iso-8859-1?Q?VPdn+PYiFVEoeGoaRU3DomRdpiJnt7b+GK6K6OUVigkwFmB8ZMN0Ij5g48?=
 =?iso-8859-1?Q?zot1zw1W3tdW/jB2h6p8xXVtXMq09ToLt6uMAvuqQiuszjQttiBOrzdfUk?=
 =?iso-8859-1?Q?PR5QzWsDD0trz7PaClABH7kSra9XSJ1YEkax43a2ofDptwkHjIAmGIv/TI?=
 =?iso-8859-1?Q?CGhiaMHaIGE7P2uvZh1vs0s8B90oyw7lZDH5Mdtd3NYjqXpyUU+uNlmXQx?=
 =?iso-8859-1?Q?dJIsL3YI4QAcBF/yJffLwRo6sJxyxOlv6gThvRQuJPMAkl9sEUeV0lG0Wm?=
 =?iso-8859-1?Q?XdX2dtI=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(42112799006)(7416014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?/ryM71RXl1V0eYcWo3DmHoGu/259QsuSc6VnZS7fQ29HXkh0FfpufvG2bA?=
 =?iso-8859-1?Q?CP3ij3bz1XEpJbFWIvL5wBhFvJEAWuUFBwAT2XINpz05B8lKrvYnV38jeu?=
 =?iso-8859-1?Q?RbAqpKSmT4leEirOVRnnlVuGKw6qOOKSGQdQtPzPzlj/GWpj0SBTBenses?=
 =?iso-8859-1?Q?ry7QpaCW4j7DdXx4VPbm3Mbbv/Q/7ks6La1hJ0cEhZuQM5cBxJUEwWm479?=
 =?iso-8859-1?Q?lHuRYubhxZKY0jMdcblq9fZY6QEBp2kFftouB8SNNccsi0UFmAweXBb+8W?=
 =?iso-8859-1?Q?4MiLXSlLnQ1tEY1/aw/avrqbx7b8CxE3HuMFNk6zgA/Xj1hVqyQesGe8yk?=
 =?iso-8859-1?Q?OZWJHGusM3+89OkRSvKdUTHssDmrTkNEieVeTn90Y47A1k5dKxk+zQ8Elc?=
 =?iso-8859-1?Q?74Mb6d3GPhw5HgcK3QRzkxLaRcpA7knd2YOzBgLIXrZZaYMhByO2YHpfXm?=
 =?iso-8859-1?Q?H2JJ5ugChug9HzlTHSBYrElU7qcXB1seUptEikgS7+l88RU0YFxlsuDBIR?=
 =?iso-8859-1?Q?TF47JrI0AP2O+VN2vAHzMX5Vu/ykar+FXsClpqfe6zkfRxb3S3FhHk/skt?=
 =?iso-8859-1?Q?IVsxkkrm/DRCf0BQgezrAXoDKLa1REhSS0rYMOSeOEeqtxyiQgDJJurEbM?=
 =?iso-8859-1?Q?+/C+Zg0HxJaCWHxa12God3d2FGwBx+rFRBOUvAboGcIgv5IZOl+o05y+iX?=
 =?iso-8859-1?Q?5V0h7SBhcpx+6mvjiarY9GGo0Bq2yHAKrJCcnUpvXwKvrJwrqtRPdGFJWd?=
 =?iso-8859-1?Q?ScEIpVnXssX/6LV4nbBdfWaJ+dr5iG7/YTKSClIsbQMiWfNIFZ8JAAGq/2?=
 =?iso-8859-1?Q?fqI5XUa0KPSpoOMsgRydeV0yyC76+Bs+wabVjQ9f0jKbDVqGXfnL8ZqDMb?=
 =?iso-8859-1?Q?snTiGCSODPU9oq0P/1YxPOZYUpgfSXSnvn0NPgSaZlKWkswu/Vcy+dhANb?=
 =?iso-8859-1?Q?chg7mOXGDWh5a85kRMcyGDKrkrY8kYEz0rmzcG1NPcVep05kKaoEvbUqhx?=
 =?iso-8859-1?Q?WRlksaTMzRcAD/wY+mV6ZIe0EpHUym5HJUVnIGkVZPcwUMjpPEp9XM0jg/?=
 =?iso-8859-1?Q?UJJIZcbmC1snVr2jrOY6wdBNo0TpHY4WAWNdThmERtaQDG104CzQilmiWl?=
 =?iso-8859-1?Q?QtuCBia71h+KET0+BzeZSpFLUx5c8Ma4HgGTti+p3Oh9lDEJV01EuBctuj?=
 =?iso-8859-1?Q?904vnfjXnBFR/zVwtjbT/QobVhtl7Fg3edNvwIn+n5Odwu1OlS3V2PqjDe?=
 =?iso-8859-1?Q?0l7Qg6o9F1vCxbvWtPmBUmWu3rm43Hqp/nEFBkyrEJ/RpKgzVLnugwwmFx?=
 =?iso-8859-1?Q?KlMjhEgnQCpi2zE1AnPQhoj5rGq65sX05GZYufWgZjj0i47CZDjkPwakiV?=
 =?iso-8859-1?Q?u2+WA3iDKsYRYEgCxdI5iZzUTwX/jJDhawwfjioMUaf3gsLzrI7bPvO5Nb?=
 =?iso-8859-1?Q?l08oLUySYwi5I2wc+mVwv7cqUIxdpvzciCKxgfM2aLQic+z12MalIbkqJm?=
 =?iso-8859-1?Q?INkIXcTFKI82Ea6bs6mDleVrLKvheOAK1wOiNsYb3R6O8vPAa40slYXDYL?=
 =?iso-8859-1?Q?OA2PFfX0SH5tWl7M6eXJI16qGtH5SVunUbZ6k1o0YMFQS7FEKespHjzh8h?=
 =?iso-8859-1?Q?8GOytgUG+AqUHOeRvNyMH7yNhHpKKmqD++DPWBWYPMr3JQNszGen+GnQ?=
 =?iso-8859-1?Q?=3D=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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b76e1645-37e3-47ed-5729-08ddda97196f
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Aug 2025 18:27:45.7829
 (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: 9SEzzdznHJ7dUPXPEVpTdmTEos2lUlrhj1zERh9f6YTi5fqHpnOIxaUkQI4kFpY1aCzQDQxv2z+Vr4jLNMkdLZ/rNlQRYz/Pqh0ZZHpHSkU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7814

...

from `vaddr_t' (that is `unsigned long') to `switch_ttbr_fn*' (that is `voi=
d(*)(unsigned long)')

Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
This is just a RFC patch.
The commit message is not important at this stage.

I am seeking comments regarding this case.

Thanks.
---
 automation/eclair_analysis/ECLAIR/deviations.ecl |  8 ++++++++
 docs/misra/deviations.rst                        | 10 ++++++++++
 docs/misra/rules.rst                             |  8 +++++++-
 xen/arch/arm/arm64/mmu/mm.c                      |  2 ++
 4 files changed, 27 insertions(+), 1 deletion(-)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/=
eclair_analysis/ECLAIR/deviations.ecl
index ebce1ceab9..f9fd6076b7 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -365,6 +365,14 @@ constant expressions are required.\""
 }
 -doc_end
=20
+-doc_begin=3D"The conversion from unsigned long to a function pointer does=
 not lose any information, provided that the source type has enough bits to=
 restore it."
+-config=3DMC3A2.R11.1,casts+=3D{safe,
+  "from(type(canonical(builtin(unsigned long))))
+   &&to(type(canonical(__function_pointer_types)))
+   &&relation(definitely_preserves_value)"
+}
+-doc_end
+
 -doc_begin=3D"The conversion from a function pointer to a boolean has a we=
ll-known semantics that do not lead to unexpected behaviour."
 -config=3DMC3A2.R11.1,casts+=3D{safe,
   "from(type(canonical(__function_pointer_types)))
diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
index 3c46a1e47a..27848602f6 100644
--- a/docs/misra/deviations.rst
+++ b/docs/misra/deviations.rst
@@ -348,6 +348,16 @@ Deviations related to MISRA C:2012 Rules:
        to store it.
      - Tagged as `safe` for ECLAIR.
=20
+   * - R11.1
+     - The conversion from unsigned long to a function pointer does not lo=
se any
+       information or violate type safety assumptions if the unsigned long=
 type
+       is guaranteed to be at least as large as a function pointer. This e=
nsures
+       that the function pointer address can be fully represented without
+       truncation or corruption. Macro BUILD_BUG_ON can be integrated into=
 the
+       build system to confirm that 'sizeof(unsigned long) >=3D sizeof(voi=
d (*)())'
+       on all target platforms.
+     - Tagged as `safe` for ECLAIR.
+
    * - R11.1
      - The conversion from a function pointer to a boolean has a well-know=
n
        semantics that do not lead to unexpected behaviour.
diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst
index 6812eb7e8a..8b97ecf3f4 100644
--- a/docs/misra/rules.rst
+++ b/docs/misra/rules.rst
@@ -414,7 +414,13 @@ maintainers if you want to suggest a change.
      - All conversions to integer types are permitted if the destination
        type has enough bits to hold the entire value. Conversions to bool
        and void* are permitted. Conversions from 'void noreturn (*)(...)'
-       to 'void (*)(...)' are permitted.
+       to 'void (*)(...)' are permitted. Conversions from unsigned long to
+       function pointer are permitted if the unsigned long type has a size
+       and representation sufficient to store the entire function pointer
+       value without truncation or corruption. Example::
+
+           unsigned long func_addr =3D (unsigned long)&some_function;
+           void (*restored_func)(void) =3D (void (*)(void))func_addr;
=20
    * - `Rule 11.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-S=
uite/-/blob/master/R_11_02.c>`_
      - Required
diff --git a/xen/arch/arm/arm64/mmu/mm.c b/xen/arch/arm/arm64/mmu/mm.c
index 3e64be6ae6..998d52c162 100644
--- a/xen/arch/arm/arm64/mmu/mm.c
+++ b/xen/arch/arm/arm64/mmu/mm.c
@@ -150,6 +150,7 @@ void __init relocate_and_switch_ttbr(uint64_t ttbr)
     vaddr_t id_addr =3D virt_to_maddr(relocate_xen);
     relocate_xen_fn *fn =3D (relocate_xen_fn *)id_addr;
     lpae_t pte;
+    BUILD_BUG_ON(sizeof(unsigned long) < sizeof(fn));
=20
     /* Enable the identity mapping in the boot page tables */
     update_identity_mapping(true);
@@ -178,6 +179,7 @@ void __init switch_ttbr(uint64_t ttbr)
     vaddr_t id_addr =3D virt_to_maddr(switch_ttbr_id);
     switch_ttbr_fn *fn =3D (switch_ttbr_fn *)id_addr;
     lpae_t pte;
+    BUILD_BUG_ON(sizeof(unsigned long) < sizeof(fn));
=20
     /* Enable the identity mapping in the boot page tables */
     update_identity_mapping(true);
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Wed Aug 13 19:14:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 19:14:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080215.1440746 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umGv2-0007sp-7n; Wed, 13 Aug 2025 19:13:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080215.1440746; Wed, 13 Aug 2025 19:13: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 1umGv2-0007si-4z; Wed, 13 Aug 2025 19:13:52 +0000
Received: by outflank-mailman (input) for mailman id 1080215;
 Wed, 13 Aug 2025 19:13:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=EaOB=2Z=gmail.com=nicola.vetrini@bugseng.com>)
 id 1umGv1-0007sc-AW
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 19:13:51 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a1e9eb3a-7879-11f0-a328-13f23c93f187;
 Wed, 13 Aug 2025 21:13:50 +0200 (CEST)
Received: from nico.tail79467d.ts.net (unknown [46.228.253.214])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPSA id C41EB4EE3C04;
 Wed, 13 Aug 2025 21:13:41 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a1e9eb3a-7879-11f0-a328-13f23c93f187
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=46.228.253.214
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1755112424;
	b=GGeUXKpTbWantT3ja9h1kMqcXZB/t0HpFiw0Hp5/eVZOP2qA8asOeKDnCDQ2IiZyJ0BO
	 hZ7HQ6PSRXlPgH8E/tGbUlnY0xy342NyQo2AzjEvQ61JoOLWAGUI3yCKtYknUNo83j12H
	 LFd6wQTQxKSQ89m207WOEU0lpGpJzZvOWbZfIy5CUoqavNynkZD0j7iy1vC3MMXjSYPe5
	 LYWnW1g/mtywV1KdQ4Z01GnOTdukCTgZv9rJAOzbVKInZXq7Ty0IhNVKg8x57FLFr4Ydj
	 Xa/jMWQRRGG9avPGX44Z7fjMa9fs75APFENaon3tdB687KMTRLBOI/UL7eiBlHahY4KJd
	 x5LPITyQt4mkKhyTENBMM/ffjHrZdxhIS9xUjhVOoJ8RAjOZSyfqhf2gW1XfOnJFvjIK0
	 ICD89kCJxsBSGYN3f/NLq+XZiRrX5+Wo3Q7zX1VWVdwSEGPDpF2pwC+xqjwXSQYzTpzBQ
	 AW+DpXGZCV/m8z/EoEwbtv6j/igpSQ70OEQjsRoyvofIzD5UCn4v0E6x0q3pGprWLcAmJ
	 eJoRxQpMZerMmdKMc6fz/VFknWMufUVfFylSBcnSsooj6GfvIj6nCfTnaD/6rzpw7zeSJ
	 awB5mEteIEfr8BctcLS41oBP70rwGwUVltRfhIXumlMQv9yxZQp98Ty1uh0ejdU=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1755112424;
	h=From:To:Cc:Subject:Date:Message-ID:X-Mailer:MIME-Version:
	 Content-Transfer-Encoding;
	bh=2izQEEsEoXe8U0qFnjbrGzxnPbP1HHcIMSYNM12SpUg=;
	b=jdE+3bghFYeFsJoAwJGUMGoJq+zGNbPnRXJvrRtIb8yvUtdCDN41A5UShGLlyDjSa2J1
	 rwwSkAQHSnjIwvck8FRIQ1l4lBfqLr2ZUe58eHjfdBrH8dMj3cYozw4i4vjRVTz4g1Pft
	 kcOO+PtrFngwDiHJV8A9M9NRHL30FopprHIzY3hwGHh31vebxdb9qgIc6c+djgw9eAfZf
	 OA2kM01kPzaSF2dHJI2OtBsWHumxujc81h2MpVGT38pv8y9aevzAE52S2K0mWMIeHXFgn
	 Dy5O7VJUoWsptwdPdwuzh591YzR6Z6W5Xzr7CO5DLzCr7/VaxzIjFIX4YThtuujWpzB14
	 Gq4Qsr66ZrQD9o1ZgOr5FG8p31tayOfSCll27y/tnYS+JBm5ZNR8Q9/kFovC9bSAX/bZE
	 P0hIGK+s8GDlT1erdSQ0HLmkFiykpznyi28UFAGQhxq6TkU9O5fc87CX4K7vS0IQjMKVC
	 HH7urWIhKake43osyvlriR++qtuwSJEbnjr1fn0HsHq8fXY8IbDaFE/BVESKxyzXlGexy
	 VCBpJpWmxnpiaaTl4jWUdZvgsC2iQHmWaWvb40fYKp8C1///yrBC71Pfdt8JXKEeTM4t3
	 uSSVIVyxuVV1WjXuyswu6RtWQtKnmUUKuHmfrwIpop0BZ1MRfq10LD6/ddnTyCc=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=46.228.253.214
From: nicola.vetrini@gmail.com
To: xen-devel@lists.xenproject.org
Cc: Nicola Vetrini <nicola.vetrini@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>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [XEN PATCH 0/3] Drop alternative definitions for unsupported GCCs
Date: Wed, 13 Aug 2025 21:12:47 +0200
Message-ID: <cover.1755111932.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Nicola Vetrini <nicola.vetrini@gmail.com>

Similar to e4a042062787, drop alternative defines for older GCC versions

Nicola Vetrini (3):
  xen/compiler: drop alternative unreachable() definition for older GCC
  xen/macros: Drop alternative definition of BUILD_BUG_ON(_ZERO)? for
    old GCC
  xen/efi: efibind: Drop alternative define for old GCC versions

 xen/arch/x86/include/asm/x86_64/efibind.h | 4 +---
 xen/include/xen/compiler.h                | 4 ----
 xen/include/xen/macros.h                  | 8 --------
 3 files changed, 1 insertion(+), 15 deletions(-)

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Aug 13 19:14:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 19:14:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080216.1440756 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umGv4-00086h-Ig; Wed, 13 Aug 2025 19:13:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080216.1440756; Wed, 13 Aug 2025 19:13: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 1umGv4-00086a-G3; Wed, 13 Aug 2025 19:13:54 +0000
Received: by outflank-mailman (input) for mailman id 1080216;
 Wed, 13 Aug 2025 19:13:52 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=EaOB=2Z=gmail.com=nicola.vetrini@bugseng.com>)
 id 1umGv2-0007sc-Fs
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 19:13:52 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a5f331ad-7879-11f0-a328-13f23c93f187;
 Wed, 13 Aug 2025 21:13:52 +0200 (CEST)
Received: from nico.tail79467d.ts.net (unknown [46.228.253.214])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPSA id 0285C4EE3C05;
 Wed, 13 Aug 2025 21:13:49 +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>
X-Inumbo-ID: a5f331ad-7879-11f0-a328-13f23c93f187
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=46.228.253.214
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1755112431;
	b=WUSxfd6QKmXCEYL1lgv5Kf+5yGRKv/zdL9MdCPOIs1qRRMinh+Y7Gc48Cse+T3QDPWOi
	 2nLy+tnZ/ur/E8qfecWkOVnWqHc3VyyTk6wiNhiWqlHOhmNmlsZ3e2ctkrOvX6O32n6Hb
	 Kp1oAde6rdGjjL57yO087x/8b/XVkAYjTgZQFdcx/WXi+poXrkMfaLFdwBfVpm3dbnHwh
	 6ytm1iKTqUD6KlR4RDuy+fQp5VSYIrSeBaG6tdsEn4wWhAgU4/PdbTM1A91hT4vuFX8Gv
	 uu/AqmFmlBE8CUMWNZNzHSlNRf8bbFTIldkl/QfWmLvozJ+S6AU5+3eI8Bo1gApW/G7rL
	 ZKCzjnwHwwqnJtMgUaAzLmBerwgqRKZopJf4V1VLVRL5q7dsj7IczMA2YdIj+XxKuKmOk
	 yRLxZYbba/GWUwU00j5QY4UlSy+7YC59kpDKVPmKHePF4hkRZfaFZUBoK7vjSN1GjKjd0
	 oxafUra7G4kzrGn5aK17sLe7J2GD9SE5b5jzdTVFgWXJsLw31+Q4WKYHc0xI9aX4dlS5i
	 QFnjE56UDUwEzI1XoK8jgw2K8HHozBfABrWdhm/OklJTWIzF7V1VI3yUSnX/Qiyy+Sign
	 h+FbofBVsM4FSsMcP62I41aYQLfcaxfBTYYW+m2cZ+xJ+7uVaXpVZFhXGS547DI=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1755112431;
	h=From:To:Cc:Subject:Date:Message-ID:X-Mailer:In-Reply-To:References:
	 MIME-Version:Content-Transfer-Encoding;
	bh=VOKEf9dD+zgMtMXQ5hikRxtG6VewsOUliCA+rvTuy60=;
	b=kPGNecuzv54LVaDjZZTgvZLLDFeW6GmBzKh9OEc2AMuOqUbItm34KJtOCCf8h+pYEsSw
	 uGZYJeQJDyUy0nMojOcfx42EIw2Guzm1TNC3NKSrU2Gy3yvDVIvmAPo+mAD6pqKS/0Cxb
	 yDvD6dgwvzfi1IPmaYHDLrqYID4XLH+xbiSuJw6MkEnkvDCCUwX1Mz1Ydrq3etsSUqv4k
	 isvxyDljWTCC9nIL/KefZGFVwb8NEe7UKi3zxJlLZLD4OrUtKC/9CBxuHGBiGbep3l76u
	 DY+dBcNRfb1wIU3AGa9XcwZXexZcgEVQRrqFss2+ZFYUvtZ9t3fimpmfqTasZU99OV9Tq
	 7/Ag22e77Fq3yO+ts3cFkPBDSAg6TvaJLGd+1/+GQn7EI2eYxQQDVmeXI+QsIw5FEdqIx
	 EKWlfgd6qVksSEHbmzAzZFcDEdaTNurVac72udjbJaIb4AuDSc+WK8KYbPAR/Z4kx95uG
	 nocdmpb177yC5oF+jwyDyHNC4px3n3viwADQVQZdZyOdMDoSjGQ/vklNfaFuUc1qbjbsu
	 Cs6I6e7Mo20i1MvtUAvdt25C//Z7tr7kOSYzXbtXMXaA9SnBcviWdk+7D9/MVjpfN88aG
	 AR+5E57+o7hKD2DbysKWHLXb5SfYhgbRV5CYFPpejCuV7voHOnCebkeI+mkc01E=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=46.228.253.214
From: nicola.vetrini@gmail.com
To: xen-devel@lists.xenproject.org
Cc: Nicola Vetrini <nicola.vetrini@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: [XEN PATCH 1/3] xen/compiler: drop alternative unreachable() definition for older GCC
Date: Wed, 13 Aug 2025 21:12:48 +0200
Message-ID: <9215845f364527203efaea9dd1019cd1e3c1768b.1755111932.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1755111932.git.nicola.vetrini@bugseng.com>
References: <cover.1755111932.git.nicola.vetrini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Nicola Vetrini <nicola.vetrini@gmail.com>

The GCC baseline version is 5.1, which supports __builtin_unreachable(),
therefore the alternative definition can be dropped

Signed-off-by: Nicola Vetrini <nicola.vetrini@gmail.com>
---
Mentioned in https://gitlab.com/xen-project/xen/-/issues/201
---
 xen/include/xen/compiler.h | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/xen/include/xen/compiler.h b/xen/include/xen/compiler.h
index 735c844d2d15..88bf26bc5109 100644
--- a/xen/include/xen/compiler.h
+++ b/xen/include/xen/compiler.h
@@ -47,11 +47,7 @@
 # define cf_check
 #endif
 
-#if (!defined(__clang__) && (__GNUC__ == 4) && (__GNUC_MINOR__ < 5))
-#define unreachable() do {} while (1)
-#else
 #define unreachable() __builtin_unreachable()
-#endif
 
 /*
  * Compilers estimate the size of an asm() block for inlining purposes.
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Aug 13 19:14:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 19:14:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080218.1440766 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umGvC-0008PU-Qb; Wed, 13 Aug 2025 19:14:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080218.1440766; Wed, 13 Aug 2025 19:14: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 1umGvC-0008Ot-NL; Wed, 13 Aug 2025 19:14:02 +0000
Received: by outflank-mailman (input) for mailman id 1080218;
 Wed, 13 Aug 2025 19:14:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=EaOB=2Z=gmail.com=nicola.vetrini@bugseng.com>)
 id 1umGvA-0008Mm-N8
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 19:14:00 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a9c478ef-7879-11f0-b898-0df219b8e170;
 Wed, 13 Aug 2025 21:13:58 +0200 (CEST)
Received: from nico.tail79467d.ts.net (unknown [46.228.253.214])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPSA id 605154EE3C05;
 Wed, 13 Aug 2025 21:13:55 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a9c478ef-7879-11f0-b898-0df219b8e170
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=46.228.253.214
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1755112438;
	b=xYpRKG0Du5MG9elu+KVdUZcS71KNziGvjzX5TOOeQ+qOXLyxBmPpC9DnnSz1/7OCsSW/
	 ZlUeUUOtolTiZ2w8hEICuhjhyyYI/mOslVdko3ZAk6D59Re7OCCu7u7FXyV/uSUjIaMk0
	 gVVdPVu+X6QHkZvbZJLZIkayAqxVoadGYlpw6cBqb5UUjdOtj+cqTvjtfwC+9nplbShfs
	 2brMdWfUzHNBOhWWbFJCTNq9+k+cwrk+5DS7pNZHE1rGdMyG7EnYV6kTqgQtszyr03Fz4
	 7k6mHip8BS2AjgLrkkuQjnMKg+aOVslkHxsMeDjA4YNkSx37XQByL/7vGFf4gzvddIrHL
	 WaDP0FCDrw982v718GixZIRmsDMhU1yZEGQx6emuEtQS7069Prc1izkdD0G66H0o/nx/d
	 +GBs7qh8+8bb4U3YxUxV8CXECDBKptqazVgc1klt3NZfhqv9E3D3rECD6J8PWulS8fUNp
	 cntKESnJY3M16Gy+IhuSXXz++g0WaWXJH7MT1ijGm8YyKfjxsEMJZJxSGA09h0jPzkQkc
	 as31F5Gl2Zc5WdRTAr+RdDUuUWg4S4LKV5NLxjJSv+7eOWUrNK7M2Sal5648AGQ0+k8WK
	 RQ2bOaNic8tIeCreo9mA1teB8GADkuZqHnZqHYMts64Peug0MVsfSuUfpi24V7I=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1755112438;
	h=From:To:Cc:Subject:Date:Message-ID:X-Mailer:In-Reply-To:References:
	 MIME-Version:Content-Transfer-Encoding;
	bh=X8Z/Iy3vEL05qlHR3iwBDCDEqtsnD159/f7F2D0+DUs=;
	b=i6ZvIGiNHShaLfpmOXmHMrPxxxR11TeZd46h0tCg6aSV3BEFcnS/37r5blbbkCMdB5cK
	 kUIAusgTbkFlUxn8+9TMbi4o1rFFYBcolN8i6NxwQv0quIyXKVrgMtH7xT7sqLg67eOYw
	 E0MD7HUOYJFdjahoz4rqevsfk30GfVuaz3KN0nRN/IeRUEUCRZcHtNd6cX93oWI5Mim0E
	 2UH9Ze4Pl2Ifvn6/mVsRN8Bq1bnP3jlo/ieZI3hD5xx1fQvQqV6rlfZ/w/ajclj2V4Y5w
	 RW+147oYe+gI/jhIaRiwl27yTBTyaPmnifjKyYMdRXnS7JpovXrG914zVHRlz1nDQ0IwH
	 w5mMLpFa3NTMo9xV0BwHXftIglaIV7nFosC5AI4C7JAXYVKbE58Huk8nKplLHmPHDiGm9
	 ok8v6LPqP3BwOiwprBVysBTiznh3/GoG9YR6FlUi4mAJ3jqrt2zLz/BL7l/64ksPzi3hU
	 pz+IYNVnX40ESwbqeR2VztlC03+8fgVY+jwxq6TlKn9tHlSMpnc8VPx+3zyeY8AL3c2T1
	 owe1So80mE4OR3zsIAIfDF2ROINyEW6YaoPtBlIj5kCNi9pHFKBcGxvwI54z7vL6ykKJ2
	 MOWo2qKIycsZiAMt6BzvpotWbXU+6ZZM2CGUAqohbaWbIj0dT9R8NkkXhXSdvx8=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=46.228.253.214
From: nicola.vetrini@gmail.com
To: xen-devel@lists.xenproject.org
Cc: Nicola Vetrini <nicola.vetrini@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: [XEN PATCH 2/3] xen/macros: Drop alternative definition of BUILD_BUG_ON(_ZERO)? for old GCC
Date: Wed, 13 Aug 2025 21:12:49 +0200
Message-ID: <d716610470ddd7da75789cfa546ed209ff24e1d1.1755111932.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1755111932.git.nicola.vetrini@bugseng.com>
References: <cover.1755111932.git.nicola.vetrini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Nicola Vetrini <nicola.vetrini@gmail.com>

The toolchain baseline for GCC is 5.1, which supports _Static_assert
in c99 mode

No functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@gmail.com>
---
Mentioned in https://gitlab.com/xen-project/xen/-/issues/201
---
 xen/include/xen/macros.h | 8 --------
 1 file changed, 8 deletions(-)

diff --git a/xen/include/xen/macros.h b/xen/include/xen/macros.h
index cd528fbdb127..f9ccde86fb23 100644
--- a/xen/include/xen/macros.h
+++ b/xen/include/xen/macros.h
@@ -40,9 +40,6 @@
 
 #ifndef __ASSEMBLY__
 
-/* All clang versions supported by Xen have _Static_assert. */
-#if defined(__clang__) || \
-    (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
 /* Force a compilation error if condition is true */
 #define BUILD_BUG_ON(cond) ({ _Static_assert(!(cond), "!(" #cond ")"); })
 
@@ -54,11 +51,6 @@
  */
 #define BUILD_BUG_ON_ZERO(cond) \
     (sizeof(struct { char c; _Static_assert(!(cond), "!(" #cond ")"); }) & 0)
-#else
-#define BUILD_BUG_ON_ZERO(cond) \
-    (sizeof(struct { unsigned u : !(cond); }) & 0)
-#define BUILD_BUG_ON(cond) ((void)BUILD_BUG_ON_ZERO(cond))
-#endif
 
 /*
  * Force a compilation error.  This is for code which, in the normal case,
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Aug 13 19:14:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 19:14:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080219.1440777 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umGvF-0000Ej-3L; Wed, 13 Aug 2025 19:14:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080219.1440777; Wed, 13 Aug 2025 19:14: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 1umGvE-0000Ea-UK; Wed, 13 Aug 2025 19:14:04 +0000
Received: by outflank-mailman (input) for mailman id 1080219;
 Wed, 13 Aug 2025 19:14:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=EaOB=2Z=gmail.com=nicola.vetrini@bugseng.com>)
 id 1umGvD-0008Mm-QZ
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 19:14:03 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ac103bdd-7879-11f0-b898-0df219b8e170;
 Wed, 13 Aug 2025 21:14:02 +0200 (CEST)
Received: from nico.tail79467d.ts.net (unknown [46.228.253.214])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPSA id E6AE34EE3C04;
 Wed, 13 Aug 2025 21:14:00 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ac103bdd-7879-11f0-b898-0df219b8e170
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=46.228.253.214
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1755112442;
	b=hEITOhzApCdd24lcK7H0iilLqOy60T139nZD1seCkR68+S+NFWvV1BJJCeeBcRb539Ae
	 xWBiRrwqhxtDcgoomNH6ImcjZZZK91lJMLfl7hIsMGPEVCMwa6Y6wHbqy8boPqM4HujF5
	 YeZMUuBYVv/4m6jU7eeHx5idxEYngmtvuDsuCe9VfWzNy7JYFREWZMy1z89pPNKfHzbgR
	 OMBZqE+d4dFwtkMjt7TJOcisH1ZOwBBqvkfOxWg8BBFU67lZ5npt9KV8USaRJhwZ/qYOT
	 q6Ad2PagcPetmy7li3QRVobVi6auyCGQriKeuzVRtPfwEN51ko/npPW+ssMqwMEGrSOv4
	 782wuU4xXMK+poCn+OOjI3UnIteXq5A50uePKbLMKKFPVv40ayu7GE5K178Q6rfD4/LQn
	 N4jSuHOeVStJ+AgTKo/ygwN+TD3xKnT091wHUqKseMePZZSbetYqj0xnRtD6XrcYl46im
	 C24xE2L5o0yt5Muiq6cO4JE9UlSvMIQZ4mgcQ1g3q+RM7x2pzjAHxevW1PRFKfo7kEfhW
	 6t/BaZ+qmJLm3RtWR241wF2X/RH7owRkpcpcaj0qaEEaO3teoAjyOS14duULTtbfg5Jcj
	 bPYyR5sbfvCYkGhOhyBeeKEnrGRIl2/VoaZlARtHqQvLHO2aqq6QW4iml734LSg=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1755112442;
	h=From:To:Cc:Subject:Date:Message-ID:X-Mailer:In-Reply-To:References:
	 MIME-Version:Content-Transfer-Encoding;
	bh=BTUrqcilpvPjOMlf0B5Cq3Jl+kwMS+HJmY4prEiMWNg=;
	b=O4CLM2qUDYZ4TBv1+9hXsCYVZesFgktiy/JCSy+Iq5AXsrhdFZZVE/wJ7weHQKiWRomP
	 nvsZiRvGSI98XZhMrKakfa9XJwOUZbGUJe8z1MWLxXdaEiXszyK0g4LlEN43qj9ZX7Wy3
	 vbix+3v6L7NriPyycnsYAKQZSvX4R2MPMCHBud+iBjkMVH7GXhKm/G1BJu0YerVvgw3Hw
	 KW2OlGmFbfuAFPQuGfJi+YKgG25yWQnIZyK91+xbur12F7Q+vDu/OnKz/ICPREvPP8RGh
	 GqPad7CrbSsQhbwCMmttEUFyEz6PMGO20tmyBf4rOSRrlyaT+mfxLXqMCtKy2Yeu5M2Te
	 uheNT4dXFYGP6RgI4qDS5148nlUH1i9guJ2KeOHqM/qWZ8Um66pX1ur/c53j2U2/FUr94
	 Xk3JjbPVOzvOasqaw0Tpq8kyciuMMSiJEBOff/3LryHeRzkcFObTdk0j7koGf9fkQWnwA
	 3kGiIZdpDiYfjfgaWTKHdNB7S8wLdd2EiIS1+ylXv5Q1ZTv5fi/6PrNR1tetONKkFmd6o
	 VQ0o20BLO3eivw1QvVU3gKxBsJZvrxi2hzcTYGtNw1tk3cfXkkE7p1diYtrmrLkzvTyJ8
	 pzh6Vw59j9jOM7tjgyeIsFDijK0ohi6RcfXE+k5I9SJsEaGnPJZIhfeKpGGcnK4=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=46.228.253.214
From: nicola.vetrini@gmail.com
To: xen-devel@lists.xenproject.org
Cc: Nicola Vetrini <nicola.vetrini@gmail.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [XEN PATCH 3/3] xen/efi: efibind: Drop alternative define for old GCC versions
Date: Wed, 13 Aug 2025 21:12:50 +0200
Message-ID: <4140895d7382e1e1d84b5f3988b497a7edd67034.1755111932.git.nicola.vetrini@bugseng.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1755111932.git.nicola.vetrini@bugseng.com>
References: <cover.1755111932.git.nicola.vetrini@bugseng.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Nicola Vetrini <nicola.vetrini@gmail.com>

Since the toolchain baseline for GCC is 5.1, there is no need for
this case.

Signed-off-by: Nicola Vetrini <nicola.vetrini@gmail.com>
---
Mentioned in https://gitlab.com/xen-project/xen/-/issues/201
---
 xen/arch/x86/include/asm/x86_64/efibind.h | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/xen/arch/x86/include/asm/x86_64/efibind.h b/xen/arch/x86/include/asm/x86_64/efibind.h
index b29342c61cac..d71b9324a6bb 100644
--- a/xen/arch/x86/include/asm/x86_64/efibind.h
+++ b/xen/arch/x86/include/asm/x86_64/efibind.h
@@ -173,10 +173,8 @@ typedef uint64_t   UINTN;
 #ifndef EFIAPI                  // Forces EFI calling conventions reguardless of compiler options
     #ifdef _MSC_EXTENSIONS
         #define EFIAPI __cdecl  // Force C calling convention for Microsoft C compiler
-    #elif __clang__ || __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)
-        #define EFIAPI __attribute__((__ms_abi__))  // Force Microsoft ABI
     #else
-        #define EFIAPI          // Substitute expression to force C calling convention
+        #define EFIAPI __attribute__((__ms_abi__))  // Force Microsoft ABI
     #endif
 #endif
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Aug 13 20:18:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 20:18:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080285.1440785 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umHuy-0008Fq-Dj; Wed, 13 Aug 2025 20:17:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080285.1440785; Wed, 13 Aug 2025 20:17: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 1umHuy-0008Fj-BE; Wed, 13 Aug 2025 20:17:52 +0000
Received: by outflank-mailman (input) for mailman id 1080285;
 Wed, 13 Aug 2025 20:17:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vZoK=2Z=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1umHux-0008Fd-Db
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 20:17:51 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8c9093ec-7882-11f0-b898-0df219b8e170;
 Wed, 13 Aug 2025 22:17:35 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 0E1E943D63;
 Wed, 13 Aug 2025 20:17:34 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id D52FCC4CEEB;
 Wed, 13 Aug 2025 20:17: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>
X-Inumbo-ID: 8c9093ec-7882-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755116253;
	bh=2EZHjdPOoMX81pqu91+jl3ga1aNjcrGGqKXNXre3M3I=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=pjnKJiXVj3q5Ti1lrBDzn0jvJgp+L2tYseR/v0aT6/t4H6r+aRkrm26jxHYaRSeFg
	 KtoQYFDhjf1Hn5iOjBMmkYOgBK8cCBnQLgKa7WWKk/10bvbtfvSmNiEcLmURRcTtri
	 Kv5Z4uDm1AunU8FobaBXunE+IADY8MLJxVsfJa6X8vXH+f6PkLgvjDPVfpe/D7ZBcn
	 BkTWKik2+gmY/zYbGuCliqLO1wClJM2dQyEUQMyUT5EhXs3tCiLOJ4ZvZUGVWWR57r
	 iz95gsAnugdLC1SqNR2TV4D3aipZQLVqOTERa+dQiHGtK6uWXZT5fV6j+kru9HVu6C
	 pXGH+kuEp0JRQ==
Date: Wed, 13 Aug 2025 13:17:29 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Roger Pau Monne <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>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] x86/pvh: update "Host ACPI" support status
In-Reply-To: <20250813093220.76030-1-roger.pau@citrix.com>
Message-ID: <alpine.DEB.2.22.394.2508131317190.10166@ubuntu-linux-20-04-desktop>
References: <20250813093220.76030-1-roger.pau@citrix.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-895347095-1755116253=:10166"

  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-895347095-1755116253=:10166
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Wed, 13 Aug 2025, Roger Pau Monne wrote:
> For x86 PVH dom0 makes uses of the host ACPI tables, and hence the status
> of Host ACPI entry should have been updated to reflect that PVH dom0 is now
> supported, and Host ACPI support is not one of the caveats.
> 
> Fixes: ea1cb444c28c ('x86/pvh: declare PVH dom0 supported with caveats')
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

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


> ---
>  SUPPORT.md | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/SUPPORT.md b/SUPPORT.md
> index 6a82a9218991..109b62835f99 100644
> --- a/SUPPORT.md
> +++ b/SUPPORT.md
> @@ -70,7 +70,7 @@ For the Cortex A77 r0p0 - r1p0, see Errata 1508412.
>  
>  ### Host ACPI (via Domain 0)
>  
> -    Status, x86 PV: Supported
> +    Status, x86: Supported
>      Status, ARM: Experimental
>  
>  ### Host EFI Boot
> -- 
> 2.49.0
> 
--8323329-895347095-1755116253=:10166--


From xen-devel-bounces@lists.xenproject.org Wed Aug 13 22:21:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 22:21:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080351.1440799 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umJq2-00068E-1I; Wed, 13 Aug 2025 22:20:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080351.1440799; Wed, 13 Aug 2025 22:20:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umJq1-000687-UP; Wed, 13 Aug 2025 22:20:53 +0000
Received: by outflank-mailman (input) for mailman id 1080351;
 Wed, 13 Aug 2025 22:20:52 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=hsTS=2Z=gmail.com=arraybolt3@srs-se1.protection.inumbo.net>)
 id 1umJq0-000681-Fy
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 22:20:52 +0000
Received: from mail-il1-x12d.google.com (mail-il1-x12d.google.com
 [2607:f8b0:4864:20::12d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c488c502-7893-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 00:20:51 +0200 (CEST)
Received: by mail-il1-x12d.google.com with SMTP id
 e9e14a558f8ab-3e56ff95838so285005ab.1
 for <xen-devel@lists.xenproject.org>; Wed, 13 Aug 2025 15:20:50 -0700 (PDT)
Received: from kf-m2g5 ([2607:fb91:1183:972:ee53:76c5:e875:9619])
 by smtp.gmail.com with ESMTPSA id
 e9e14a558f8ab-3e56d695345sm5639535ab.11.2025.08.13.15.20.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Aug 2025 15:20:48 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c488c502-7893-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1755123649; x=1755728449; darn=lists.xenproject.org;
        h=mime-version:references:in-reply-to:message-id:subject:cc:to:from
         :date:from:to:cc:subject:date:message-id:reply-to;
        bh=X5z0Tb+aZT/ng9Ug8YxUxSm9cjcs2SBq1MbPlZAze1w=;
        b=cexue6B+5c859QNBVrg9dArBRZ/emy2Gaa0xcJH060YXdVuxIm21dhHs7hcfSgge3P
         NqnK9jhmnckrONpuGGYucRdn5CYx8eUT8Bjo0n+8IdrgXzrcGoqVlpzrnpfnp9USUHe0
         6/V9LzjrmDohitvNFuW4xiCfv17w0wve+vZGCHbmguxbuQr2X/fdOvCEg7pSnhz4UAzx
         hHL2FpQpC/xW5EBfi9Fb7SpxOIDgmLj9pzTtaGeCPhEr3s3IIVScfYa9QO0LyBeMMV1A
         dmcqp26cE+x70vi3iDBJqWfjR9tGk3KNsbucva3Vh60VXVzOFWHQnbw9Ff9B6wmT5RdL
         xFdQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755123649; x=1755728449;
        h=mime-version:references:in-reply-to:message-id:subject:cc:to:from
         :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=X5z0Tb+aZT/ng9Ug8YxUxSm9cjcs2SBq1MbPlZAze1w=;
        b=I/+2Tm9ZqlkpBHmD5U2zzpXdu+xwA7R1tYGn5k+F9esW/UPhmw2fJ+WO5mNs9349s7
         UtrwS4qeUfnIi/jfm9w59IC+5oJpVnqv30xX6lYtX7HMSL/gJ+UBAhlr/Iu8uddJSyba
         94LZUdfkHvg6d1cYvgVVnWCPLjY7QpbZwvqERckvSB/4QAy80k0Kn0RM3AN17WqQ+A+i
         6nbE/HZug6q/hw3SbiXMDRdrxas6S3bUyMwP9AgvHKr3DOlutYues3I37TeCm1lzeTsA
         lTiJwdlN0rp0UXBLORi+RDg4hdgC/amxS4H+4oS1jOf54HC3/5ZKWe/qcMlX38kf8Twe
         3gNA==
X-Forwarded-Encrypted: i=1; AJvYcCX8QyntPjaAAJVcccMp6ThJ7OEbaL2FVsI3qshFESdV6h+Lgrs2kcD176EJZqMUyRroxSqGnUrqO84=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyP8NtszNsis/ZiNCGuIzg9fggOE8cIAtKsLoAlrwAZcrMLlez5
	S64h5Ue/dmezuHvSgXDoRASWxkThf1hy5kco0PZFqYmo0qhiRdK4fzSJ
X-Gm-Gg: ASbGncsf8X3zW318ajWNUuQNxQuHX/Fe2dBho+SYBKXnRmjFr0AAz+L+ahslSk0+NMS
	ZyMiuu/7S52QFdwPlKSeyZohZnm9vPezgTb+JDuyKBn1cohZG/x9a8I2KUfs9icqi1r9HLQ1Cwc
	mKm7NZH28rM1hZUtA8UTns0bwxZTO6lTA4PFc6K6yYAanKUt5aQaRlNdii4qUVndFIvI1RU37Cp
	ppFQ3cm316/nhjsWXbE0wq+kD7VJFKtnD8OcCyjaBlf7W3X2KFCui34Ct94w0DEbMl1ugRkRTmA
	Ro/H5M/+ymBpoKw82GPSm5KUjmvzlOEZxBFcCrbXI21ddvBESZOVuYpcAdS63RSPW2w2dV9iPkT
	NRk+MkzAgL1gtMqTxCinjipQJrEYRQw==
X-Google-Smtp-Source: AGHT+IHoLOCTOidURwavCe41qv1HE92902Cd49ItWyaW512wtcsMFdx1sqvVLMd5H1n7YpGuOFwxpg==
X-Received: by 2002:a92:cdaf:0:b0:3e5:4844:4261 with SMTP id e9e14a558f8ab-3e570986f2emr4939025ab.6.1755123649157;
        Wed, 13 Aug 2025 15:20:49 -0700 (PDT)
Date: Wed, 13 Aug 2025 17:20:40 -0500
From: Aaron Rainbolt <arraybolt3@gmail.com>
To: Daniel Kiper <dkiper@net-space.pl>
Cc: grub-devel@gnu.org, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 2/2] kern/xen: Add Xen command line parsing
Message-ID: <20250813172040.0cfa448c@kf-m2g5>
In-Reply-To: <20250813142711.l4jxlgjk426ansab@tomti.i.net-space.pl>
References: <20250804234816.3d14f53f@kf-m2g5>
	<20250804234911.3cc3997c@kf-m2g5>
	<20250804235009.30e39bd9@kf-m2g5>
	<20250812170211.q7ezlveygfsdkz34@tomti.i.net-space.pl>
	<20250812185515.436a33da@kf-m2g5>
	<20250813142711.l4jxlgjk426ansab@tomti.i.net-space.pl>
X-Mailer: Claws Mail 4.3.1 (GTK 3.24.41; x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="Sig_/xQ7TOZpPkPghI2PHTM1mjdI";
 protocol="application/pgp-signature"; micalg=pgp-sha512

--Sig_/xQ7TOZpPkPghI2PHTM1mjdI
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

On Wed, 13 Aug 2025 16:27:11 +0200
Daniel Kiper <dkiper@net-space.pl> wrote:

> On Tue, Aug 12, 2025 at 06:55:15PM -0500, Aaron Rainbolt wrote:
> > On Tue, 12 Aug 2025 19:02:11 +0200 Daniel Kiper
> > <dkiper@net-space.pl> wrote: =20
> > > On Mon, Aug 04, 2025 at 11:50:09PM -0500, Aaron Rainbolt wrote: =20
> > > > Xen traditionally allows customizing guest behavior by passing
> > > > arguments to the VM kernel via the kernel command line. This is
> > > > no longer possible when using GRUB with Xen, as the kernel
> > > > command line is decided by the GRUB configuration file within
> > > > the guest, not data passed to the guest by Xen.
> > > >
> > > > To work around this limitation, enable GRUB to parse a command
> > > > line passed to it by Xen, and expose data from the command line
> > > > to the GRUB configuration as environment variables. These
> > > > variables can be used in the GRUB configuration for any desired
> > > > purpose, such as extending the kernel command line passed to
> > > > the guest. The command line format is inspired by the Linux
> > > > kernel's command line format.
> > > >
> > > > To reduce the risk of misuse, abuse, or accidents in
> > > > production, the command line will only be parsed if it consists
> > > > entirely of 7-bit ASCII characters, only alphabetical
> > > > characters and underscores are permitted in variable names, and
> > > > all variable names must start with the string "xen_grub_env_".
> > > > This also allows room for expanding the command line arguments
> > > > accepted by GRUB in the future, should other arguments end up
> > > > becoming desirable in the future.
> > > >
> > > > Signed-off-by: Aaron Rainbolt <arraybolt3@gmail.com> =20
>=20
> [...]
>=20
> > > > diff --git a/grub-core/kern/i386/xen/pvh.c
> > > > b/grub-core/kern/i386/xen/pvh.c index 91fbca8..a8988d2 100644
> > > > --- a/grub-core/kern/i386/xen/pvh.c +++
> > > > b/grub-core/kern/i386/xen/pvh.c @@ -321,6 +321,8 @@ void
> > > >  grub_xen_setup_pvh (void)
> > > >  {
> > > >    grub_addr_t par;
> > > > +  const char *xen_cmdline;
> > > > +  int i;
> > > >
> > > >    grub_xen_cpuid_base ();
> > > >    grub_xen_setup_hypercall_page ();
> > > > @@ -352,6 +354,27 @@ grub_xen_setup_pvh (void)
> > > >    grub_xen_mm_init_regions ();
> > > >
> > > >    grub_rsdp_addr =3D pvh_start_info->rsdp_paddr;
> > > > +
> > > > +  xen_cmdline =3D (const char *) pvh_start_info->cmdline_paddr;
> > > > +  for (i =3D 0; i < GRUB_XEN_MAX_GUEST_CMDLINE; i++)
> > > > +    {
> > > > +      if (xen_cmdline[i] =3D=3D '\0') =20
> > >
> > > This code still does not make a lot of sense for me. You have NUL
> > > check in grub_parse_xen_cmdline(). So, you duplicate the check
> > > here...
> > >
> > > I would just fire grub_strncpy() here and forget... =20
> >
> > I guess it depends on how you view
> > grub_xen_start_page_addr->cmd_line's semantics. In my mind,
> > cmd_line is a NUL-terminated string, always. If you boot in PV
> > mode, Xen ensures it's a NUL-terminated string, so it's reasonable
> > for code in GRUB to assume it will be one. If you boot in PVH mode,
> > it starts out initialized to all zeros which is technically a
> > NUL-terminated string, and the code that exists here ensures that
> > if we copy the kernel command line to cmd_line, it will still be a
> > NUL-terminated string. If we use a "bare" grub_strncpy() here, then
> > if someone passes a kernel command line larger than
> > GRUB_XEN_MAX_GUEST_CMDLINE - 1, cmd_line will end up not being
> > NUL-terminated anymore, and any code added to GRUB in the future
> > that assumes it is a NUL-terminated string may buffer overflow.
> >
> > One could argue "let's keep the NUL check here and remove it from
> > grub_parse_xen_cmdline()", but that doesn't work either because we
> > only get to control the contents of cmd_line if we boot in PVH
> > mode. If instead we boot in PV mode, cmd_line is initialized by Xen
> > itself. GRUB receives a pre-populated and ready-to-use start_info
> > struct directly from the hypervisor in this scenario. Xen is
> > supposed to ensure that start_info is always NUL-terminated, but if
> > there's ever a bug in Xen that breaks that assumption, that could
> > result in bad things happening, the same as if we didn't do the NUL
> > check in grub_xen_setup_pvh(). Now of course there's nothing we can
> > do about Xen possibly being buggy (if it gives us a
> > GRUB_XEN_MAX_GUEST_CMDLINE-long buffer with no NUL terminator, too
> > bad), but we can at least make sure that we're ready for that
> > eventuality. That's why I like having both NUL checks - we're ready
> > for if Xen does things wrong, and any future code that isn't ready
> > for that eventuality will still work if things go wrong, at least
> > in PVH mode. =20
>=20
> OK, it looks like this explanation, in shortened form, should land
> around this code... Or not... Please look below...
>=20
> > (Arguably any new code that depends on cmd_line *should* check it
> > for a NUL terminator. But I don't want to assume that all new code
> > *will* do so.)
> > =20
> > > > +        {
> > > > +          grub_strncpy ((char *)
> > > > grub_xen_start_page_addr->cmd_line,
> > > > +			(char *) pvh_start_info->cmdline_paddr,
> > > > +			GRUB_XEN_MAX_GUEST_CMDLINE);
> > > > +
> > > > +          if
> > > > (grub_xen_start_page_addr->cmd_line[GRUB_XEN_MAX_GUEST_CMDLINE
> > > > - 1] !=3D '\0') =20
> > >
> > > If you convince me this code is still needed then I am afraid that
> > > this is not what you meant here... =20
> >
> > grub_strncpy doesn't just NUL-terminate the command line, it also
> > fills the entire remainder of the buffer with NUL characters.
> > Therefore if =20
>=20
> I am afraid we are looking at different grub_strncpy() functions...

Crud. I was going off the semantics of `strncpy` documented in `man
3 stpncpy`. I see now that GRUB's implementation doesn't have the NUL
padding behavior. I'll take a closer look at all uses of grub_strncpy()
and make sure I'm not relying on that behavior anywhere else.

> > grub_strncpy NUL-terminated the copied string, the last character of
> > the buffer will always be NUL. This is a redundant check since the
> > code above goes to great lengths to avoid ever putting anything
> > non-NUL-terminated into the buffer, but I was under the impression
> > you wanted the check added just in case. I'm happy to remove it if
> > it's not desirable. =20
>=20
> I think we misunderstood each other. This code is redundant now...

Alright, will remove.

> [...]
>=20
> > > > +is_key_safe (char *key, grub_size_t len)
> > > > +{
> > > > +  grub_size_t i;
> > > > +
> > > > +  for (i =3D 0; i < len; i++)
> > > > +    {
> > > > +      if (! (grub_isalpha (key[i]) || key[i] =3D=3D '_')) =20
> > >
> > > Please drop space after "!"... =20
> >
> > Will change.
> > =20
> > > > +        return false;
> > > > +    } =20
> > >
> > > You can drop curly braces from here... =20
> >
> > Will change.
> >
> > (I initially kept this written the way it was though because the GNU
> > coding standards seemed to indicate I should keep the braces. "When
> > you have an if-else statement nested in another if statement, always
> > put braces around the if-else." [1] This isn't a nested if, but
> > it's an if within a for which is very similar.)
> >
> > Is there any recommended coding style documentation I should be
> > looking at other than the GNU coding standards and the GRUB coding
> > style guidelines? It seems I'm making an awful lot of style
> > mistakes and would like to avoid that going forward. =20
>=20
> Yes, it is but sadly it is not fully/properly/.. documented [1]...
>=20
> [...]
>=20
> > > > +  for (i =3D 0; i < GRUB_XEN_MAX_GUEST_CMDLINE; i++)
> > > > +    {
> > > > +      if (cmdline[i] =3D=3D '\0')
> > > > +        {
> > > > +          cmdline_valid =3D true;
> > > > +          break;
> > > > +        }
> > > > +    }
> > > > +
> > > > +  if (cmdline_valid =3D=3D false)
> > > > +    {
> > > > +      grub_error (GRUB_ERR_BAD_ARGUMENT,
> > > > +		  "command line from Xen is not
> > > > NUL-terminated");
> > > > +      grub_print_error (); =20
> > >
> > > grub_fatal()? =20
> >
> > That would probably be a bad idea here. We use (or, at least, will
> > use) grub_fatal() in grub_xen_setup_pvh() because if grub_strncpy()
> > doesn't NUL-terminate the string it copies, it indicates a bug in
> > GRUB (either in grub_strncpy, or more likely in the nearby
> > NUL-checking code). On the other hand, cmdline_valid may equal
> > false if we boot in PV mode and Xen incorrectly hands us a
> > non-NUL-terminated string. That's bad and prevents us from parsing
> > the command line safely, but I'd argue it shouldn't entirely block
> > boot. (Then again, maybe if it does block boot, that will make this
> > kind of theoretical Xen bug be much more noticeable and help it get
> > fixed quicker. If you'd prefer that we bail out entirely here, I'm
> > happy to change it.) =20
>=20
> As I said earlier, I would simply call grub_strncpy() in
> grub_xen_setup_pvh() without additional NUL-check there and fail if
> non-NUL-terminated string is detected here...

OK, I'll do that then. It will be of critical importance that if any
new code is introduced in GRUB in the future, that it does not assume
cmd_line is NUL-terminated. I'll add a comment to the appropriate
header so that future developers are aware of the danger.

> > > > +      goto cleanup_main;
> > > > +    }
> > > > +
> > > > +  cmdline_len =3D grub_strlen (cmdline);
> > > > +  for (i =3D 0; i < cmdline_len; i++)
> > > > +    {
> > > > +      current_char =3D cmdline[i];
> > > > +
> > > > +      /*
> > > > +       * If the previous character was a backslash, append the
> > > > current
> > > > +       * character to the word verbatim
> > > > +       */
> > > > +      if (splitter_state & SPLITTER_HIT_BACKSLASH)
> > > > +        {
> > > > +          splitter_state &=3D ~SPLITTER_HIT_BACKSLASH;
> > > > +          if (append_char_to_word (s, current_char, false) =3D=3D
> > > > false)
> > > > +            goto cleanup_main;
> > > > +          continue;
> > > > +        }
> > > > +
> > > > +      switch (current_char)
> > > > +        {
> > > > +        case '\\':
> > > > +          /* Backslashes escape arbitrary characters. */
> > > > +          splitter_state |=3D SPLITTER_HIT_BACKSLASH;
> > > > +          continue;
> > > > +
> > > > +        case '\'':
> > > > +          /*
> > > > +           * Single quotes suppress word splitting and double
> > > > quoting until
> > > > +           * the next single quote is encountered.
> > > > +           */
> > > > +          if (splitter_state & SPLITTER_IN_DOUBLE_QUOTES)
> > > > +            {
> > > > +              if (append_char_to_word (s, current_char, false)
> > > > =3D=3D false)
> > > > +                goto cleanup_main;
> > > > +              continue;
> > > > +            }
> > > > +
> > > > +          splitter_state ^=3D SPLITTER_IN_SINGLE_QUOTES;
> > > > +          continue;
> > > > +
> > > > +        case '"':
> > > > +          /*
> > > > +           * Double quotes suppress word splitting and single
> > > > quoting until
> > > > +           * the next double quote is encountered.
> > > > +           */
> > > > +          if (splitter_state & SPLITTER_IN_SINGLE_QUOTES)
> > > > +            {
> > > > +              if (append_char_to_word (s, current_char, false)
> > > > =3D=3D false)
> > > > +                goto cleanup_main;
> > > > +              continue;
> > > > +            }
> > > > +
> > > > +          splitter_state ^=3D SPLITTER_IN_DOUBLE_QUOTES;
> > > > +          continue;
> > > > +
> > > > +        case ' ':
> > > > +          /* Spaces separate words in the command line from
> > > > each other. */
> > > > +          if (splitter_state & SPLITTER_IN_SINGLE_QUOTES ||
> > > > +              splitter_state & SPLITTER_IN_DOUBLE_QUOTES)
> > > > +            {
> > > > +              if (append_char_to_word (s, current_char, false)
> > > > =3D=3D false)
> > > > +                goto cleanup_main;
> > > > +              continue;
> > > > +            }
> > > > +
> > > > +          if (append_word_to_list (s) =3D=3D false)
> > > > +            goto cleanup_main; =20
> > >
> > > I think this is not fully correct. You should not run
> > > append_word_to_list() until the closing quote. So, here you should
> > > have "else" for the first "if", i.e., "if (splitter_state & ..."
> > > and call append_word_to_list() for closing \" and \' above. =20
> >
> > What closing quote? If we're in quotes, the `if (splitter_state
> > &...` block will run. That block runs `continue`, restarting the
> > loop before we get to the `append_word_to_list (s)` call. If we hit
> > a closing quote, either the `case '\''` or the `case '"'` block
> > will be triggered, changing the splitter's state so that it knows
> > it's no longer within a quote block, and then the next space (or
> > the end of the string) will cause `append_word_to_list()` to be
> > called, adding the quoted word to the list. Even if this `continue`
> > changes to a `break` like suggested below, the logic and control
> > flow will remain the same.
> >
> > Calling `append_word_to_list()` for closing quotes would break the
> > splitter. I'm trying to implement splitting behavior similar to
> > Bash or GRUB's configuration language, both of which parse
> > `xen_grub_env_var=3D"abc def"ghi` into the variable `xen_grub_env_var`
> > with the value `abc defghi`. If we split on closing quotes too, the
> > input above will be parsed into two words, `xen_grub_env_var=3Dabc
> > def` and an extra word `ghi`, resulting in the environment variable
> > `xen_grub_env_var` being set to `abc def` and the `ghi` being lost
> > entirely. One could argue that this is reasonable behavior, but it
> > isn't consistent with the other splitting behavior in GRUB. =20
>=20
> OK, makes sense for me... Maybe you should mention somewhere in the
> code current splitter behavior...

Technically the behavior is documented in the comment immediately
before the splitter code, but the rationale isn't entirely explained,
so I'll add some extra info to the comment so it's more clear.

--
Aaron

> Daniel
>=20
> [1]
> https://www.gnu.org/software/grub/manual/grub-dev/grub-dev.html#Coding-st=
yle


--Sig_/xQ7TOZpPkPghI2PHTM1mjdI
Content-Type: application/pgp-signature
Content-Description: OpenPGP digital signature

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

iQIzBAEBCgAdFiEEudh48PFXwyPDa0wGpwkWDXPHkQkFAmidD7gACgkQpwkWDXPH
kQnyhBAAwvsXTxsfKHiQBQYHOR4julB41R04DIBjTdF/dsVLVdoGbnu7RLX16PGc
mVGCoTv5pLLGXSS/fW2ubho7e+YqmnBsQJvMzw1pwLlC4SSky6qr6SMymmxAVbCU
WXH/olavwmsUPScSKibA7fvPhI3VI39VCCQLibidW9JJwLQIOjbsdDrkhdHin/3+
uRf0nDuML/EreHTl+o8s3Ze2H4hte7ecOrti3i9GDq9s9RifOoMAAvUNIFH8zLAI
BdtNlgqbqWtWruYFH6kAMM5ofmJhKfeQapeeB/vMZn7kP9GE4kpIe+EdLK7M52j2
32hUNtNZkjO6uYL7h7xTn7HTfr6d95075T6aIm+we1OwT70CWabGIMB4ZuJR12CB
F3lOEKD918I6R0luIMS7Gp9D5zpU0izNtu4jUb6toYeWIatR84Xu+mo0jn+IDnzS
997h4zcUUslFM/DopYAlpdBb+g9aiaMlXkg75PJE42Z+QlXUA/g3ZYxjWpX7rYgG
zuL0AEDOwH2TWyAHgH11IGr2tvftzAPbawDcP2R5JsjmKFevzoXQlYrNMmMBtUO5
K+yh2aRjM/Mm9JIZ4W9Ld1A0xEBXBQvEK5cZh+i7seXgBc1DUnJyc9i20mxtzGW/
5Mr3L1LroLd19blJiroHmeLJxndGA88ZNBa0nGbUjOvPxAX3w7E=
=jaIa
-----END PGP SIGNATURE-----

--Sig_/xQ7TOZpPkPghI2PHTM1mjdI--


From xen-devel-bounces@lists.xenproject.org Wed Aug 13 22:32:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 22:32:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080375.1440810 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umK0t-0007rM-4M; Wed, 13 Aug 2025 22:32:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080375.1440810; Wed, 13 Aug 2025 22:32: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 1umK0t-0007rF-0C; Wed, 13 Aug 2025 22:32:07 +0000
Received: by outflank-mailman (input) for mailman id 1080375;
 Wed, 13 Aug 2025 22:32:05 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2/kn=2Z=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1umK0r-0007pu-06
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 22:32:05 +0000
Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com
 [2a00:1450:4864:20::435])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5633f8d6-7895-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 00:32:04 +0200 (CEST)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-3b9e4106460so193046f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 13 Aug 2025 15:32:04 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3b79c3b9c7dsm48736510f8f.26.2025.08.13.15.32.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Aug 2025 15:32: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>
X-Inumbo-ID: 5633f8d6-7895-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755124323; x=1755729123; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=r33n16Q1Y6Q6BzW9l9p0XcW49r+7320vuawT6pS7iyg=;
        b=V8rwxsH8QKGV8IqBlVJBNbhNCJkvToX1Bfa/ci1M8LoJGmrTPhcqINcBFHG61M/Wrh
         mS/3zCHnI6GzFFBc9Njy8lP9O/b3sgmlcAJNooAQdvterjIiU5gZBtFR7+u18gWMJE21
         m69+0tGt8iElYobchhE6xqDOJ8qPhSHmI7vgI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755124323; x=1755729123;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=r33n16Q1Y6Q6BzW9l9p0XcW49r+7320vuawT6pS7iyg=;
        b=ocF99leasPEl2VNc7CYfnc49zhB0ZTgWLCUlrCzjs7tC4sQwVIpqqOdYwoG/fyhXPz
         nzfoHWAf5bEVgj69qhmEL3fEqSXxuZMmE+m58uw9/xK5YSGtjGKM5UtfGrY4xykiiiHr
         l98ENmQkXOUatUh6BF3TWlgS09SsscxQU/Qyv5i3cwsftBP4owPNmKHW8UCEXga+MAqH
         RfSQbE2KV+8Sv+RxzH1a3+yC97ehuEyIkAr8680qcF+0d3SAmoEdZ+wt+vkOYMCnGsag
         SMHmBEl6T8sPPg30OXskU28fvoA+U1W9VhGuYq7gasmLj8aQFvHFPhJBJ9MVC8/rXYkW
         BKFw==
X-Forwarded-Encrypted: i=1; AJvYcCVMZPwYn7ijZ1NVUkzyOqg9HipdWh2PBaV41av5nDRvvAQ+Gw79KQrABHWLfivwR5ega1g/XVrZzls=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxPQXRNxQ3lSFie0UtPN/zgRuQCUa6BZoCHQlcm2Zzc/pe14NMo
	BuEdgmr6pb1vznWX11VfAmCydT7BQdSKua7IXPtdf04K+V9bR5H8AEghhK8cm4AHlvI=
X-Gm-Gg: ASbGncuntwI3i1HTUJMTX0qebPHFzvzbcNnaxhCs1OuoLDvvBEDsp+1SlLSXO2NtwVP
	ddgQsBT7eve3YQj1CRVNKhdbjUAO7GnZZ/sPt5jUodO/tFUL1djqsP05bCf822MSIGtHQKHzD85
	16y77AIBIbXGop4L7thDb6HStdyPX2+yq/6fsdRYdHvCPsAuRKZ0dupr7rogxRMo8Wf48erpOcf
	QNYbpXBp5k0PpxYPxAY2eZP1uoVh0hJuQN5a2X/q+ND9CyULhKnah5uB1uXk3HhQVXbvzHW7AY3
	IS3ldZIrVLiDzyQQqO4nY2e8ZQqFsYUe2wQYtbJp6VLR8CnM7nuPwI0c6kGoZd2qmi9Ho98cUk0
	K+bUjxj7NvjdVInmZt+zTOPItB/fjeOKrdll/yI4hL7uOqT3/QlM4GL7ON+31i4tlMhr4
X-Google-Smtp-Source: AGHT+IEDM0XqEkBSqTPR2Nn16MklTPm9y9fjyeF4LkIeB94PPFJJUNY3sUx2qVtjtE/oVc+0mEmNSw==
X-Received: by 2002:a05:6000:2012:b0:3b8:d3ae:26e with SMTP id ffacd0b85a97d-3b9edf82927mr716651f8f.53.1755124323533;
        Wed, 13 Aug 2025 15:32:03 -0700 (PDT)
Message-ID: <83a83cdf-91e2-4b82-89b9-b07ecdb20a3f@citrix.com>
Date: Wed, 13 Aug 2025 23:32:02 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 1/3] xen/compiler: drop alternative unreachable()
 definition for older GCC
To: nicola.vetrini@gmail.com, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1755111932.git.nicola.vetrini@bugseng.com>
 <9215845f364527203efaea9dd1019cd1e3c1768b.1755111932.git.nicola.vetrini@bugseng.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <9215845f364527203efaea9dd1019cd1e3c1768b.1755111932.git.nicola.vetrini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13/08/2025 8:12 pm, nicola.vetrini@gmail.com wrote:
> From: Nicola Vetrini <nicola.vetrini@gmail.com>
>
> The GCC baseline version is 5.1, which supports __builtin_unreachable(),
> therefore the alternative definition can be dropped
>
> Signed-off-by: Nicola Vetrini <nicola.vetrini@gmail.com>
> ---
> Mentioned in https://gitlab.com/xen-project/xen/-/issues/201

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Wed Aug 13 22:33:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 22:33:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080384.1440819 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umK2e-0008Mp-Cw; Wed, 13 Aug 2025 22:33:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080384.1440819; Wed, 13 Aug 2025 22:33: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 1umK2e-0008Mi-AC; Wed, 13 Aug 2025 22:33:56 +0000
Received: by outflank-mailman (input) for mailman id 1080384;
 Wed, 13 Aug 2025 22:33:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2/kn=2Z=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1umK2c-0008Mc-TD
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 22:33:54 +0000
Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com
 [2a00:1450:4864:20::431])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 97b35266-7895-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 00:33:54 +0200 (CEST)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-3b9dc5c2f0eso171144f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 13 Aug 2025 15:33:54 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3b79c3abedesm49490504f8f.3.2025.08.13.15.33.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Aug 2025 15:33: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>
X-Inumbo-ID: 97b35266-7895-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755124433; x=1755729233; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4hmgEIVlZGhK3VPLW2Zid7pc2EdMVtlmM8ABR/FV6ZU=;
        b=HObf9VuWKcSZ5/UtaqgkvwyoaYF8NY8pfmmy4CccxuwkqhvPxD+0eSHb42r5j5XUMa
         j5P0lnh4alhFvumyziqBQvVq8BsW3GvNQkKqJJYhvzQdvsXczOMRYgT3gmGinedUv2Qt
         kQCK133hqNOKgwrgVhpXFltFyJ28/cq5NlJcA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755124433; x=1755729233;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4hmgEIVlZGhK3VPLW2Zid7pc2EdMVtlmM8ABR/FV6ZU=;
        b=DUZcpiiPscmybmuVCJpqG8KmqwtDCffdX8mF/2uIgUe6DwQnmx8E3idOX8ha0RiLmX
         SEtucRTqL+Ltki7baLmeOqK4YfM4n9ZPiQHD//pAiJ1cBu7oegiJ7E3rESnBltloWBqr
         PDA215+Viq8pJwRPg3Fzzb/t32jmnNmYgD42iZ/nUYfi4fmG0TdGL+daO6dJ0yNX/LEQ
         svoCVnmGJFS7vPtspP+FSS67P+ylbMzUWouSfjWwNGSlpflj9z7f3AhIQYMqcTjUq+0r
         NuN1PjZvd6KoR3hPp+LF7q00zLduMsVgkfGscqH/3kAVEDS3UfSg+AGt6S3K8C38vK1m
         1u5g==
X-Forwarded-Encrypted: i=1; AJvYcCVprKWa0yzy9jHT5yWIli1C4SZYhgA63prANk0k1PDSXc4D3pf9tkvVDhK8x3/If6Vjae8eLjZkzsA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyAIEFumd/30JHgArQIL5783a7+WuwDaXwtJ/h8AkhQe/Ne/Ni2
	0wzBrH+ST88kSzM4CVMlWpitj8nzvNJkMqwf7mBwVx/8dx90+e4j0pHte4xxCB7MkQ8=
X-Gm-Gg: ASbGnctVqARJPVpO6uRyE6zOZLS4/yCqgj1qIMjj9wSvnM2/3m9gsbxrH8IsGNelIXb
	QL3rvO/6st0bHR+Z2+qyg3ewPNWvvNmiVTJFXv2ZtwM1a96YO783LM2UFLxkfiQXBIYi9TsgYpa
	SzzW+KY/+9f7rUU/UamInAGR2TbbSBnHuqYfil1E2l9gzw8I16CuDFwOovEb55bf4/MgSS2YitX
	Ho4yN60L8xfy9VUHvcMgd3sWhhNtoy0kckIvNH5i49xumdSqqPl1Xpy1latPN3a3f+8+FUxGnv7
	wxCmkr4xTpRBrA0RaJqAJWHDpuKfGj0rViIXpkAyKalRJS/xpBgFYAUjjYpU6X5dw0HJ8BgSycR
	3QUeZO7bY/f2kfsJaEBuvEsawdGhRzD5GvXaPmUqT12wbKlmUrzXr5EsFS7+KYMYci2Xw
X-Google-Smtp-Source: AGHT+IGsZH07ICk2ccFUD6R15G1gCa60Kv6tOYAEZtBAIRyX1QOWyEJeRS8uMt0D8StSTEEDY5jmKg==
X-Received: by 2002:a05:6000:25c6:b0:3a4:dc2a:924e with SMTP id ffacd0b85a97d-3b9e7438457mr623339f8f.6.1755124433387;
        Wed, 13 Aug 2025 15:33:53 -0700 (PDT)
Message-ID: <fe58d539-c650-4f38-bfe5-7e45c1181f7e@citrix.com>
Date: Wed, 13 Aug 2025 23:33:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 2/3] xen/macros: Drop alternative definition of
 BUILD_BUG_ON(_ZERO)? for old GCC
To: nicola.vetrini@gmail.com, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1755111932.git.nicola.vetrini@bugseng.com>
 <d716610470ddd7da75789cfa546ed209ff24e1d1.1755111932.git.nicola.vetrini@bugseng.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <d716610470ddd7da75789cfa546ed209ff24e1d1.1755111932.git.nicola.vetrini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13/08/2025 8:12 pm, nicola.vetrini@gmail.com wrote:
> From: Nicola Vetrini <nicola.vetrini@gmail.com>
>
> The toolchain baseline for GCC is 5.1, which supports _Static_assert
> in c99 mode
>
> No functional change.
>
> Signed-off-by: Nicola Vetrini <nicola.vetrini@gmail.com>
> ---
> Mentioned in https://gitlab.com/xen-project/xen/-/issues/201

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Wed Aug 13 22:40:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 22:40:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080394.1440828 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umK8X-0000W5-0M; Wed, 13 Aug 2025 22:40:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080394.1440828; Wed, 13 Aug 2025 22:40: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 1umK8W-0000Vy-Tx; Wed, 13 Aug 2025 22:40:00 +0000
Received: by outflank-mailman (input) for mailman id 1080394;
 Wed, 13 Aug 2025 22:39:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2/kn=2Z=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1umK8V-0000Vs-Te
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 22:39:59 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 714462fa-7896-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 00:39:59 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-45a1ac7c066so2390055e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 13 Aug 2025 15:39:59 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3b79c4530a8sm48815802f8f.38.2025.08.13.15.39.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Aug 2025 15:39: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>
X-Inumbo-ID: 714462fa-7896-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755124798; x=1755729598; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=vWd3APzGmEVc6GEtfE7z1vcUyLzkfJ/i1RhtHPCY/1E=;
        b=X7XWPldTOWlmx+ZAyrp2KTkA4wRVMutTkvKJ2N/HUDM1MePk1I5fTcdyCjrETVDL/b
         Nc894I7fdIQmWG8ZzEaXdj25OjunFY2k5xEGYIfY6NBkZajeia1wnNqwBREATZr46n29
         64tC5zxULl8MdVMrHTSTfz5z3k0Jx5Ul9vIHw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755124798; x=1755729598;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vWd3APzGmEVc6GEtfE7z1vcUyLzkfJ/i1RhtHPCY/1E=;
        b=LXCut54zOSJ2wb2jMASs85lDzyNqji3QGawfsO1JrAiGaAxMzQpymydLuSB3esbM7w
         UVwNPXqhsJnKU4477UMjhhGEt7vzmZRpCcUxdZ+O913MOe75HbkgGfykZZOgN8L0zV6K
         dg9h1HeCh9jaWCf0A9TgbT6TCVPRp/S0TZayvGhu2FdterVwWs9baFhWTA3lvth1DmXy
         dO7q/RwPCHmlJipXXnV+6p6TwJA2uGqKj+IHfgA+P/MzSl/A9dnOd7+yeh6DgqA1/Yvx
         8PpOGSQncaOZQ/q1PlV2V35gF//zZmuOiMvqaWMFxLLt1wCJvDD8MkEqvcYhpbEz5fZ2
         8sfA==
X-Forwarded-Encrypted: i=1; AJvYcCXJcU6b54k814+X5znwSVHgznMzwENPvg0fEcLLCg4b0Un9i2N6YlzfsojJIEHrBqyOfkjGfAkky+0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxcEgytpzQgQwD1Qy/xMPqwb0nS31gTBpsknCrCHDTf9RbJYrGH
	cB9wzVG3hkA26pZz+HXZHKSWdYwBk7BenRSGp9d2r8h2XA9iONrvCi50aWtuliHRRMw=
X-Gm-Gg: ASbGncvbHc98jZ7egkbl0iqKmnIp4Cgm+yEV+G5Z5e3Oaz1XwCfHmlyeHDmbgYHHeWl
	HQWeWV0BkA1eUbGjsIRI5iSeR0u9Lt0hsiGQtnF0yEc/qBCEHDjayM8A28n6G0SUEofWj1acaYU
	UbtpSQ9It5kKtGrFBZ+6MBA0ofgRsKTYK3trDZT+EbLPYNQlYz7IyZvW/obbD2glBwdFDXxcU80
	rXJ+dbRMrCB2rJnfnZZuE6PH+LEcKx+6jVKL1ZGdxG6JtX0AVvFhP8Sh6k3T4fW3BT6LpVzCAzG
	v8py0L+2FaK4JaELgDbBv8wjuxhONGkpvBxJ/ADEbYxDQlJrDRq8tmfMp4AeJI7ohqQdxROWpNN
	8TxfeTPUAxBZP+v7WWjLSdbdCIoZmMKVNQvi8cInkpJZt06TARdHANeNxtLyubLskeQES
X-Google-Smtp-Source: AGHT+IHRserOVL2c18Bu/axnWisPhE9j7MfII9Pq7WJs3M+RGqnpCj9o2NrMbJTvbpZ9WjWcvHSyRw==
X-Received: by 2002:a05:600c:19d2:b0:458:bd08:72a8 with SMTP id 5b1f17b1804b1-45a1b7b2166mr3454445e9.13.1755124798401;
        Wed, 13 Aug 2025 15:39:58 -0700 (PDT)
Message-ID: <a4ff322a-8cf3-4e8f-b243-6153e823eafd@citrix.com>
Date: Wed, 13 Aug 2025 23:39:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 3/3] xen/efi: efibind: Drop alternative define for old
 GCC versions
To: nicola.vetrini@gmail.com, xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <cover.1755111932.git.nicola.vetrini@bugseng.com>
 <4140895d7382e1e1d84b5f3988b497a7edd67034.1755111932.git.nicola.vetrini@bugseng.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <4140895d7382e1e1d84b5f3988b497a7edd67034.1755111932.git.nicola.vetrini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13/08/2025 8:12 pm, nicola.vetrini@gmail.com wrote:
> From: Nicola Vetrini <nicola.vetrini@gmail.com>
>
> Since the toolchain baseline for GCC is 5.1, there is no need for
> this case.
>
> Signed-off-by: Nicola Vetrini <nicola.vetrini@gmail.com>
> ---
> Mentioned in https://gitlab.com/xen-project/xen/-/issues/201

I personally am in favour of this change, but in the past there has been
objection to changing this header it is vendered from elsewhere.

e.g. far more could be stripped out if ...

> ---
>  xen/arch/x86/include/asm/x86_64/efibind.h | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/xen/arch/x86/include/asm/x86_64/efibind.h b/xen/arch/x86/include/asm/x86_64/efibind.h
> index b29342c61cac..d71b9324a6bb 100644
> --- a/xen/arch/x86/include/asm/x86_64/efibind.h
> +++ b/xen/arch/x86/include/asm/x86_64/efibind.h
> @@ -173,10 +173,8 @@ typedef uint64_t   UINTN;
>  #ifndef EFIAPI                  // Forces EFI calling conventions reguardless of compiler options
>      #ifdef _MSC_EXTENSIONS
>          #define EFIAPI __cdecl  // Force C calling convention for Microsoft C compiler

... it's noted that Xen doesn't use MSC and I can't see anyone taking
the time to make it work.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Aug 13 23:05:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 13 Aug 2025 23:05:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080417.1440840 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umKXC-0004jU-0H; Wed, 13 Aug 2025 23:05:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080417.1440840; Wed, 13 Aug 2025 23:05: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 1umKXB-0004jN-Rq; Wed, 13 Aug 2025 23:05:29 +0000
Received: by outflank-mailman (input) for mailman id 1080417;
 Wed, 13 Aug 2025 23:05:29 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2/kn=2Z=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1umKXB-0004jH-29
 for xen-devel@lists.xenproject.org; Wed, 13 Aug 2025 23:05:29 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 009a271e-789a-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 01:05:28 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-45a1b00f23eso1699115e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 13 Aug 2025 16:05:28 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45a1a596268sm16654445e9.30.2025.08.13.16.05.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Aug 2025 16:05:26 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 009a271e-789a-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755126327; x=1755731127; 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=gN3kD3X0X0m2TC8QZtRjGZ8xhEzi9InYdII0ioKWdxU=;
        b=KEG6A4dBG2d7STlbZwklAq3SUGjovzcJgwm2E2UDXUzDhXkgTa9vNjiWv4+B1WEQaI
         jKWHvrcxmm9M5Mm0ghA47geUkBEZW8G1ExoBlxDsr4o1julsiZY6JToq8wJ5+5tB4sX2
         zvKFxmtduu/ZhTk4oCt7GjppbwqLjl31ObLV4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755126327; x=1755731127;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=gN3kD3X0X0m2TC8QZtRjGZ8xhEzi9InYdII0ioKWdxU=;
        b=Hm1UofjPkFhEcn+Kxn4zlp2ImkTdyhNzGWRumcW5HpI+48dpeNuHccHbhigb/jUL0X
         I9IHDwP/KGpDJPifw2M4t1Ds/vXUmk2no3xbPRLC9FQWTfSCPEaKMlvnscZTyD1bhcLA
         p8X4XypGheHASp0ZVzQyjg20sZD182eNJSIJpSGmykHIh2Zp6tCFC2Nr6RhndmJyehMt
         AdzcuUh56/CCRq/te0kqwaF7NHiNilw2CZujM+eczp1SkjGBV635M/B4iJox3zAplJLm
         A8/s7QoxT+gNaZngLVa1fxcpFSrq1Mv6yG/L2FKQIy14sKPmt4Nw766QNOfNZA4x2vJW
         V8eg==
X-Gm-Message-State: AOJu0Yy5Lk8qn/5KGYFHaPDG2cE6dEY3UL6e1MjTANJeemof7MBObwAa
	omUy0MNXfNlmRh1c6VEI/m+4cupYgnb1QKogQeiNK75FSd2Usejr2lyMfnW6yKJSkIzZ+p60Tun
	9b8KJ
X-Gm-Gg: ASbGncsRprkJIFsY/9mgDMO1qa8HwU5rJiugSeK88qAm7hief1W7Ko2GZYhgF8G4GBf
	QX6NKcqhspbzGAgwVKpBkQkR+7vDJ69NrGXJYwd/d8GmT0fmmDeNkF84Emyr4MdUvE0jP9TWzA/
	hfhvK/VsaCb1EhfS0OJWQM3vMMn7c87DJRW9VkBuzpnOvMfeZHTq0Tp0BiFxLOCCM6BEgAwQlmo
	dnTtZ/aFPzkWgk+ZDqBLl7NEGsKZlk7U/NNZfdcIMLzUHKglIiszLhDt6Lc58fjzbpvQWTD2oUr
	Zeb1WKFgUoXZGbK9RIidxq32jFspCDA16STFZU81MV6PhTObI6OKizRvCwmgXQycH0GL5ps/Rcg
	68jSkyAxciHLQSv7yMI0lE4GaQp1JnrckYdoC9v9E/98qAQkIzGplkJobgHBWGzQu+l0vOBsHk1
	J9
X-Google-Smtp-Source: AGHT+IHkIwCuAIHPK2T7cS7M+u19zSggc8Amix/yPmTXwsMy4z9wvKBF76A7YMCAHux0SEJJomkJEg==
X-Received: by 2002:a05:600c:3b21:b0:455:bd8a:7e7 with SMTP id 5b1f17b1804b1-45a1b61ea3cmr3820045e9.9.1755126327142;
        Wed, 13 Aug 2025 16:05: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>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Nicola Vetrini <nicola.vetrini@gmail.com>
Subject: [PATCH] x86/cpu-policy: Drop workaround for pre-GCC-5 PIC issue
Date: Thu, 14 Aug 2025 00:05:25 +0100
Message-Id: <20250813230525.2435414-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

GCC 5.1 is the minimum supported toolchain version now.  Drop the workaround
for the PIC hard register in earlier versions.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
CC: Nicola Vetrini <nicola.vetrini@gmail.com>

Noticed when reviewing the other GCC cleanup.
---
 xen/include/xen/lib/x86/cpu-policy.h | 35 ++++------------------------
 1 file changed, 4 insertions(+), 31 deletions(-)

diff --git a/xen/include/xen/lib/x86/cpu-policy.h b/xen/include/xen/lib/x86/cpu-policy.h
index dd204a825b07..f94f23e159d2 100644
--- a/xen/include/xen/lib/x86/cpu-policy.h
+++ b/xen/include/xen/lib/x86/cpu-policy.h
@@ -29,45 +29,18 @@ struct cpuid_leaf
     uint32_t a, b, c, d;
 };
 
-/*
- * Versions of GCC before 5 unconditionally reserve %rBX as the PIC hard
- * register, and are unable to cope with spilling it.  This results in a
- * rather cryptic error:
- *    error: inconsistent operand constraints in an â€˜asmâ€™
- *
- * In affected situations, work around the issue by using a separate register
- * to hold the the %rBX output, and xchg twice to leave %rBX preserved around
- * the asm() statement.
- */
-#if defined(__PIC__) && __GNUC__ < 5 && !defined(__clang__) && defined(__i386__)
-# define XCHG_BX "xchg %%ebx, %[bx];"
-# define BX_CON [bx] "=&r"
-#elif defined(__PIC__) && __GNUC__ < 5 && !defined(__clang__) && \
-    defined(__x86_64__) && (defined(__code_model_medium__) || \
-                            defined(__code_model_large__))
-# define XCHG_BX "xchg %%rbx, %q[bx];"
-# define BX_CON [bx] "=&r"
-#else
-# define XCHG_BX ""
-# define BX_CON "=&b"
-#endif
-
 static inline void cpuid_leaf(uint32_t leaf, struct cpuid_leaf *l)
 {
-    asm ( XCHG_BX
-          "cpuid;"
-          XCHG_BX
-          : "=a" (l->a), BX_CON (l->b), "=&c" (l->c), "=&d" (l->d)
+    asm ( "cpuid"
+          : "=a" (l->a), "=b" (l->b), "=c" (l->c), "=d" (l->d)
           : "a" (leaf) );
 }
 
 static inline void cpuid_count_leaf(
     uint32_t leaf, uint32_t subleaf, struct cpuid_leaf *l)
 {
-    asm ( XCHG_BX
-          "cpuid;"
-          XCHG_BX
-          : "=a" (l->a), BX_CON (l->b), "=c" (l->c), "=&d" (l->d)
+    asm ( "cpuid"
+          : "=a" (l->a), "=b" (l->b), "=c" (l->c), "=d" (l->d)
           : "a" (leaf), "c" (subleaf) );
 }
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 00:26:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 00:26:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080466.1440849 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umLnP-0006XE-Lg; Thu, 14 Aug 2025 00:26:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080466.1440849; Thu, 14 Aug 2025 00:26:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umLnP-0006X7-I5; Thu, 14 Aug 2025 00:26:19 +0000
Received: by outflank-mailman (input) for mailman id 1080466;
 Thu, 14 Aug 2025 00:26:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/Xan=22=bounce.vates.tech=bounce-md_30504962.689d2d1f.v1-f1e8a651c6aa48e9b725e2357815ab18@srs-se1.protection.inumbo.net>)
 id 1umLnN-0006X1-El
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 00:26:17 +0000
Received: from mail145-23.atl61.mandrillapp.com
 (mail145-23.atl61.mandrillapp.com [198.2.145.23])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 453cffd1-78a5-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 02:26:08 +0200 (CEST)
Received: from pmta06.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail145-23.atl61.mandrillapp.com (Mailchimp) with ESMTP id
 4c2QyR0JrSz1XLSD2
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 00:26:07 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 f1e8a651c6aa48e9b725e2357815ab18; Thu, 14 Aug 2025 00:26: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>
X-Inumbo-ID: 453cffd1-78a5-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1755131167; x=1755401167;
	bh=xmsmBVzxmQ926Nka0Ka5wdHY3/wPcYMZIwTxHs4o9Fg=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=HBdLsI29mD4LyD78awC+hG8v9SklwF1hph3Tzl+EWCt+liepdDg5aCN15whvqwERC
	 mbJVgB1llqUleneFgK1ztaAq83Bu6T1lyyR4vZbqzhDxNxLQIaw3QJtVZdKKgeI1Fd
	 2Nm5tVt6DV3YscVQe4SH/555WXsNV8FOMZUobnSW71Gh6E4bO+GUHaXcf+XRkN72pF
	 NFkR5mVHhBUwQ7URHr1snC+9KGKAUHq+kq7GWpksefvtsRaYsfMCM/zNKz3nJFqgtq
	 6D6FrFL30qASIDlUlbw3/ej090BzCJoesNBDuy6hkWMvYmiOD7XgWETpe7+TxYrTnv
	 dz9DdvXKn7h7Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1755131167; x=1755391667; i=teddy.astie@vates.tech;
	bh=xmsmBVzxmQ926Nka0Ka5wdHY3/wPcYMZIwTxHs4o9Fg=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=RpaQsSmS1z5Q3W9i/A0kvHcOT2x4AcVjr1h78FWibQx4d/4pvV0wQnr7EjJLppUOB
	 GyRsARitODqaaNrSW2GmOPZ14oCWYjkIpskBZVANv34OOu9bjF0uVVoMzcZcdTLdyp
	 1yEvz2siUcEjoaVOtR3JtXkkfTAqTeeDn0zqvTzXNzlytlJIv3Ix1w1Mt88ZSIYFZG
	 soot/TZ8iYXHS3N7qi3nwsowqMPWBBqA/kuIyHEbTywlcIt1fDqVl6/RJnlqFoOchn
	 d0F7J+IdAhZ5NrgDMBUYvc8b6SZZCaexZYjRl4VZ6x2kTvcAeAN7S2m6SKiEFPj33L
	 cuxo6y1yhh0mA==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH]=20misra:=20address=20Rule=2011.1=20violation=20in=20cmpxchgptr()?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1755131165394
Message-Id: <53d285af-e7ce-4736-a91a-5893b1773171@vates.tech>
To: "Dmytro Prokopchuk1" <dmytro_prokopchuk1@epam.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=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Stefano Stabellini" <sstabellini@kernel.org>
References: <64882f9ee8e470a2633b8b4d0b5c1cd9d1c0a8c7.1755107902.git.dmytro_prokopchuk1@epam.com>
In-Reply-To: <64882f9ee8e470a2633b8b4d0b5c1cd9d1c0a8c7.1755107902.git.dmytro_prokopchuk1@epam.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.f1e8a651c6aa48e9b725e2357815ab18?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250814:md
Date: Thu, 14 Aug 2025 00:26:07 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hello,

Le 13/08/2025 =C3=A0 20:07, Dmytro Prokopchuk1 a =C3=A9crit=C2=A0:
> Misra Rule 11.1 states: "Conversions shall not be performed between a
> pointer to a function and any other type."
> 
> The violation occurs in the macro:
>      __typeof__(**(ptr)) *const o_ =3D (o);                              =
  \
>      __typeof__(**(ptr)) *n_ =3D (n);                                    =
  \
>      ((__typeof__(*(ptr)))__cmpxchg(ptr, (unsigned long)o_,              =
\
>                                     (unsigned long)n_, sizeof(*(ptr)))); =
\
> })
> when it is used for handling function pointers of type:
> typedef void (*)(struct vcpu *, unsigned int).
> The issue happens because the '__cmpxchg()' function returns an 'unsigned
> long', which is then converted back into a function pointer, causing a
> violation of Rule 11.1. In this particular usage, the return value of the
> macro 'cmpxchgptr()' is not required. To address the violation, the macro
> has been replaced to discard the return value of '__cmpxchg()', preventin=
g
> the conversion.
> 
> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
> ---
> Probably separate macro is too much for this single case.
> 
> And the following will be enought:
> __cmpxchg(&xen_consumers[i], (unsigned long)NULL, (unsigned long)fn, size=
of(*(&xen_consumers[i])));
> ---
>   xen/common/event_channel.c | 15 +++++++++++++--
>   1 file changed, 13 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/common/event_channel.c b/xen/common/event_channel.c
> index 67700b050a..2094338b28 100644
> --- a/xen/common/event_channel.c
> +++ b/xen/common/event_channel.c
> @@ -93,6 +93,17 @@ static void cf_check default_xen_notification_fn(
>           vcpu_wake(v);
>   }
>   
> +/*
> + * A slightly more updated variant of cmpxchgptr() where old value
> + * is not returned.
> + */
> +#define cmpxchgptr_noret(ptr, o, n) ({                  \
> +    __typeof__(**(ptr)) *const o_ =3D (o);                \
> +    __typeof__(**(ptr)) *n_ =3D (n);                      \
> +    (void)__cmpxchg(ptr, (unsigned long)o_,             \
> +                    (unsigned long)n_, sizeof(*(ptr))); \
> +})
> +
>   /*
>    * Given a notification function, return the value to stash in
>    * the evtchn->xen_consumer field.
> @@ -106,9 +117,9 @@ static uint8_t get_xen_consumer(xen_event_channel_not=
ification_t fn)
>   
>       for ( i =3D 0; i < ARRAY_SIZE(xen_consumers); i++ )
>       {
> -        /* Use cmpxchgptr() in lieu of a global lock. */
> +        /* Use cmpxchgptr_noret() in lieu of a global lock. */
>           if ( xen_consumers[i] =3D=3D NULL )
> -            cmpxchgptr(&xen_consumers[i], NULL, fn);
> +            cmpxchgptr_noret(&xen_consumers[i], NULL, fn);
>           if ( xen_consumers[i] =3D=3D fn )
>               break;
>       }

AFAICS, Rule 11.1 has a deviation which allows this specific case.

In docs/misra/deviations.rst
> * - R11.1
>   - The conversion from a function pointer to unsigned long or (void \*) =
does
>     not lose any information, provided that the target type has enough bi=
ts
>     to store it.
>   - Tagged as `safe` for ECLAIR.

Here, we are constructing a function pointer from a unsigned long. I 
assume this rule goes the other way it says, and allow converting a 
unsigned long into a function pointer as long as its value is a valid 
function pointer.

Teddy


Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Thu Aug 14 00:29:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 00:29:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080476.1440859 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umLqg-00073s-3t; Thu, 14 Aug 2025 00:29:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080476.1440859; Thu, 14 Aug 2025 00:29: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 1umLqf-00073l-W4; Thu, 14 Aug 2025 00:29:41 +0000
Received: by outflank-mailman (input) for mailman id 1080476;
 Thu, 14 Aug 2025 00:29:41 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=gZ3w=22=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1umLqe-00073c-VP
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 00:29:41 +0000
Received: from sender4-of-o50.zoho.com (sender4-of-o50.zoho.com
 [136.143.188.50]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c2474095-78a5-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 02:29:38 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1755131373152234.87412345956682;
 Wed, 13 Aug 2025 17:29: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>
X-Inumbo-ID: c2474095-78a5-11f0-a328-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; t=1755131376; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=gKvqDdPoMhHOjKpQeK17xE+1l7BBa0Dgu9s/+F/zlKMi5FGt2h0DI9HirCMG2kRWkSDB9hlz64U4876BbekbERzgyvxS+gJCUf+lhOrUf6qylnFs9GOlZERdR/y0/SoismjPVZLEp43aePIXcyyQ3HoA0wFrNljxfjo7atJFpTA=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1755131376; 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=I4vISBO2CcIDBCnxpq18sQ2LUSn1D53ZZQfrXnOI3I4=; 
	b=P1choNYd4JKU4pwhsGxBIlTEToFKfwqEWDh3BFzg1AbISiwPv9Po8727KZu2fHOLJQK/lLGl8QYY43DAwxNYIVJ9cgcTE2EEdwzLsZDeq1mZnrZe3Lg8IC7Oe89GgAOLhPSYCS5Hw9E4mFddMGX9/25aB9MRx9lKMrOypO+DLsQ=
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=1755131376;
	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=I4vISBO2CcIDBCnxpq18sQ2LUSn1D53ZZQfrXnOI3I4=;
	b=OFwRSv2FsZwSj2lqZvbikMnATtnmJ5JnJQakIteKvRWYglBpn/TD0RR1CtWxGoK9
	Qyl+0f6otMSpwU3bKrriqzmqItEFe9putM5UjvIqDPibVL0eWK+CJTs31PDkfdcgBFJ
	CkRoV7JpLF6dZlYAwo4arNH91cHwD3iY2WOwNxGg=
Message-ID: <9f9f24f0-c16a-4f55-b3c2-a3f4b485c403@apertussolutions.com>
Date: Wed, 13 Aug 2025 20:29:32 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] EFI/runtime: switch to xv[mz]alloc_array()
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>
Cc: Marek Marczykowski <marmarek@invisiblethingslab.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <41b7e14c-59ef-40f5-8c43-69bdc5fb4531@suse.com>
 <761b584a-51fb-403d-948e-3366501cea50@apertussolutions.com>
 <755dd957-514b-4316-82f5-3619c19cbb15@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: <755dd957-514b-4316-82f5-3619c19cbb15@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 8/12/25 02:12, Jan Beulich wrote:
> On 12.08.2025 02:19, Daniel P. Smith wrote:
>> On 7/23/25 09:39, Jan Beulich wrote:
>>> Use the more "modern" form, thus doing away with effectively open-coding
>>> xmalloc_array() at the same time. While there is a difference in
>>> generated code, as xmalloc_bytes() forces SMP_CACHE_BYTES alignment, if
>>> code really cared about such higher than default alignment, it should
>>> request so explicitly.
>>
>> While I don't object to the change itself, I think this description is a
>> bit over simplification of the change. If the allocation is under
>> PAGE_SIZE, then they are equivalent, but if it is over the page size
>> there are a few more differences than just cache alignment. It
>> completely changes the underlying allocator. I personally also find it a
>> bit of a stretch to call xmalloc_bytes(size) an open coded version of
>> xmalloc_array(char, size).
> 
> My take is that xmalloc_bytes() should never have existed. Hence why I
> didn't add xzmalloc_bytes() when introducing that family of interfaces.

Right, which would be a valid argument for replacing it with 
xmalloc_array(). Though, I would note that there is an xzalloc_bytes(). 
My concern was that you stated there was an open coding, which had me 
expecting there was a line of the form, xmanlloc_bytes(count * 
size_of_something bigger), being replaced by 
xvmalloc_arryay(something_bigger, count).

IMHO, while the C spec does specify char as 1 byte and thus 
interchangeable, I would agree that from a contextual perspective, 
xmalloc_array() is the more appropriate call. The use of the allocation 
is a character array and not a chunk of bytes for an arbitrary buffer.

>> With a stronger description of the change,
> 
> So what exactly do you mean by "stronger"? I can add that in the unlikely
> event that one of the allocations is (near) PAGE_SIZE or larger, we now
> wouldn't require contiguous memory anymore. Yet based on your comment at
> the top I'm not quite sure if that's what you're after and/or enough to
> satisfy your request.

The phrasing stronger was meant to be more clear on the change/effect, 
specifically that the underlying allocator is being changed when the 
allocation is greater than a PAGE_SIZE. Not necessarily a long 
explanation, just the fact that the allocation will be coming from the 
dom heap allocator as opposed to the xen heap allocator. There are 
implications to changing the allocater, e.g.,  at a minimum the 
allocation order and nonphysical vs. physically contiguous effects. 
Having it noted in the commit makes it more obvious what this change is 
actually doing. Which may not be obvious when seeing the simple line 
changes occurring in the diff. Later, if there is an unexpected 
consequence caused by this change, a stronger commit will be helpful 
with the bisection investigations.

dps

>> Acked-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> 
> Thanks, but will need clarification first as per above.
> 
> Jan



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 00:34:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 00:34:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080486.1440868 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umLud-0000Dm-I5; Thu, 14 Aug 2025 00:33:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080486.1440868; Thu, 14 Aug 2025 00: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 1umLud-0000Df-FS; Thu, 14 Aug 2025 00:33:47 +0000
Received: by outflank-mailman (input) for mailman id 1080486;
 Thu, 14 Aug 2025 00:33:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=AjlG=22=bounce.vates.tech=bounce-md_30504962.689d2eaa.v1-f82e5ff317ef4803833550b6120c223a@srs-se1.protection.inumbo.net>)
 id 1umLuc-0000DZ-Ju
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 00:33:46 +0000
Received: from mail145-23.atl61.mandrillapp.com
 (mail145-23.atl61.mandrillapp.com [198.2.145.23])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 311c03a9-78a6-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 02:32:44 +0200 (CEST)
Received: from pmta06.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail145-23.atl61.mandrillapp.com (Mailchimp) with ESMTP id
 4c2R624WgKz1XLSCy
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 00:32:42 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 f82e5ff317ef4803833550b6120c223a; Thu, 14 Aug 2025 00:32: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>
X-Inumbo-ID: 311c03a9-78a6-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1755131562; x=1755401562;
	bh=fyvq1kl+iP4CmHov+3M9OucDvmebNmPcZJRWq/jdFvM=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=sYXGVbwNizQeU4hRyQeQqC+J2y7sHGvankKxarM4ArkAy3ii6G6g119rQEA7e7s2P
	 7s0fJuY6owY537Z3ZJpP9y+NiA9gWLM+vVw92NujaEJ3t0EG16cCBh8XG+DezUWUeO
	 yig8NCX/7wGKkeAye9Vou9oe6X+d/7G2loMcYv7AfylFBsj2osyQP9u35QdY3ORoDc
	 EXN11CN1QsoxB1yzrTVbrC4ddPYze1rvDhxfruHak4rFt3qv5m1h7s211z9jSWMEG1
	 E5nnK26ZLkiwBQI92dCA4gdurW4gt2d4YnVn+BE91OErYXBZvVYF43bqDlSKI9MBn0
	 UoT1Y9tPf+iJw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1755131562; x=1755392062; i=teddy.astie@vates.tech;
	bh=fyvq1kl+iP4CmHov+3M9OucDvmebNmPcZJRWq/jdFvM=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=X3AIhF+rO735fyTEV3CRB+wFutnQ60vMm6bs4QTrqRQu0P/Agb3W1/NiOz8POQ3Qs
	 PUgQxRDLTxEiQYJ7Rh2LcL0qstaRxEMJaoaqF8gVfABQTBU8ebtAL4WGeVQnLWQasK
	 WoTCnSP+O34bleBfDRP0FhOXtljNODjqiksVA+v4zTlIXpB0zrMEuSzX9l99V5+Clc
	 AX1WobEDJPCkv27jNIO7VS3KS5G7DiOQibTR2qDvao02Xd9rNPpSGdOaDx8e+xXaY/
	 k7Eqk6jov9SX/GASbwjKP/Jp2fZn1y33XOL6h2WlsQaaogY7/3QeEzQuCI4NgmWd0v
	 ouK8x9wEG8TpQ==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[RFC=20PATCH]=20misra:=20allow=20conversion=20from=20unsigned=20long=20to=20function=20pointer?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1755131560161
Message-Id: <7129feb6-31a3-40c8-9d99-f7d7d2ae89f7@vates.tech>
To: "Dmytro Prokopchuk1" <dmytro_prokopchuk1@epam.com>, xen-devel@lists.xenproject.org
Cc: "Nicola Vetrini" <nicola.vetrini@bugseng.com>, "Doug Goldstein" <cardoe@cardoe.com>, "Stefano Stabellini" <sstabellini@kernel.org>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Jan Beulich" <jbeulich@suse.com>, "Julien Grall" <julien@xen.org>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Bertrand Marquis" <bertrand.marquis@arm.com>, "Volodymyr Babchuk" <Volodymyr_Babchuk@epam.com>
References: <8cbc9e6d881661d0d7a1055cbcef5a65e20522be.1755109168.git.dmytro_prokopchuk1@epam.com>
In-Reply-To: <8cbc9e6d881661d0d7a1055cbcef5a65e20522be.1755109168.git.dmytro_prokopchuk1@epam.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.f82e5ff317ef4803833550b6120c223a?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250814:md
Date: Thu, 14 Aug 2025 00:32:42 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hello,

Le 13/08/2025 =C3=A0 20:30, Dmytro Prokopchuk1 a =C3=A9crit=C2=A0:
> ...
> 
> from `vaddr_t' (that is `unsigned long') to `switch_ttbr_fn*' (that is `v=
oid(*)(unsigned long)')
> 
> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
> ---
> This is just a RFC patch.
> The commit message is not important at this stage.
> 
> I am seeking comments regarding this case.
> 
> Thanks.
> ---
>   automation/eclair_analysis/ECLAIR/deviations.ecl |  8 ++++++++
>   docs/misra/deviations.rst                        | 10 ++++++++++
>   docs/misra/rules.rst                             |  8 +++++++-
>   xen/arch/arm/arm64/mmu/mm.c                      |  2 ++
>   4 files changed, 27 insertions(+), 1 deletion(-)
> 
> diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automatio=
n/eclair_analysis/ECLAIR/deviations.ecl
> index ebce1ceab9..f9fd6076b7 100644
> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
> @@ -365,6 +365,14 @@ constant expressions are required.\""
>   }
>   -doc_end
>   
> +-doc_begin=3D"The conversion from unsigned long to a function pointer do=
es not lose any information, provided that the source type has enough bits =
to restore it."
> +-config=3DMC3A2.R11.1,casts+=3D{safe,
> +  "from(type(canonical(builtin(unsigned long))))
> +   &&to(type(canonical(__function_pointer_types)))
> +   &&relation(definitely_preserves_value)"
> +}
> +-doc_end
> +
>   -doc_begin=3D"The conversion from a function pointer to a boolean has a=
 well-known semantics that do not lead to unexpected behaviour."
>   -config=3DMC3A2.R11.1,casts+=3D{safe,
>     "from(type(canonical(__function_pointer_types)))
> diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
> index 3c46a1e47a..27848602f6 100644
> --- a/docs/misra/deviations.rst
> +++ b/docs/misra/deviations.rst
> @@ -348,6 +348,16 @@ Deviations related to MISRA C:2012 Rules:
>          to store it.
>        - Tagged as `safe` for ECLAIR.
>   
> +   * - R11.1
> +     - The conversion from unsigned long to a function pointer does not =
lose any
> +       information or violate type safety assumptions if the unsigned lo=
ng type
> +       is guaranteed to be at least as large as a function pointer. This=
 ensures
> +       that the function pointer address can be fully represented withou=
t
> +       truncation or corruption. Macro BUILD_BUG_ON can be integrated in=
to the
> +       build system to confirm that 'sizeof(unsigned long) >=3D sizeof(v=
oid (*)())'

Wouldn't `sizeof(unsigned long) =3D=3D sizeof(void (*)())` be preferable ?

I assume sizeof(unsigned long) is the size of a CPU word.
Having `sizeof(unsigned long) < sizeof(void (*)())` makes use of 
operations like cmpxchg unsuitable on function pointers (because of 
object size mismatch).

> +       on all target platforms.
> +     - Tagged as `safe` for ECLAIR.
> +
>      * - R11.1
>        - The conversion from a function pointer to a boolean has a well-k=
nown
>          semantics that do not lead to unexpected behaviour.
> diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst
> index 6812eb7e8a..8b97ecf3f4 100644
> --- a/docs/misra/rules.rst
> +++ b/docs/misra/rules.rst
> @@ -414,7 +414,13 @@ maintainers if you want to suggest a change.
>        - All conversions to integer types are permitted if the destinatio=
n
>          type has enough bits to hold the entire value. Conversions to bo=
ol
>          and void* are permitted. Conversions from 'void noreturn (*)(...=
)'
> -       to 'void (*)(...)' are permitted.
> +       to 'void (*)(...)' are permitted. Conversions from unsigned long =
to
> +       function pointer are permitted if the unsigned long type has a si=
ze
> +       and representation sufficient to store the entire function pointe=
r
> +       value without truncation or corruption. Example::
> +
> +           unsigned long func_addr =3D (unsigned long)&some_function;
> +           void (*restored_func)(void) =3D (void (*)(void))func_addr;
>   
>      * - `Rule 11.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Exampl=
e-Suite/-/blob/master/R_11_02.c>`_
>        - Required
> diff --git a/xen/arch/arm/arm64/mmu/mm.c b/xen/arch/arm/arm64/mmu/mm.c
> index 3e64be6ae6..998d52c162 100644
> --- a/xen/arch/arm/arm64/mmu/mm.c
> +++ b/xen/arch/arm/arm64/mmu/mm.c
> @@ -150,6 +150,7 @@ void __init relocate_and_switch_ttbr(uint64_t ttbr)
>       vaddr_t id_addr =3D virt_to_maddr(relocate_xen);
>       relocate_xen_fn *fn =3D (relocate_xen_fn *)id_addr;
>       lpae_t pte;
> +    BUILD_BUG_ON(sizeof(unsigned long) < sizeof(fn));
>   
>       /* Enable the identity mapping in the boot page tables */
>       update_identity_mapping(true);
> @@ -178,6 +179,7 @@ void __init switch_ttbr(uint64_t ttbr)
>       vaddr_t id_addr =3D virt_to_maddr(switch_ttbr_id);
>       switch_ttbr_fn *fn =3D (switch_ttbr_fn *)id_addr;
>       lpae_t pte;
> +    BUILD_BUG_ON(sizeof(unsigned long) < sizeof(fn));
>   
>       /* Enable the identity mapping in the boot page tables */
>       update_identity_mapping(true);



Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Thu Aug 14 01:37:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 01:37:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080522.1440888 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umMtv-00079P-6R; Thu, 14 Aug 2025 01:37:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080522.1440888; Thu, 14 Aug 2025 01:37: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 1umMtv-00079H-2k; Thu, 14 Aug 2025 01:37:07 +0000
Received: by outflank-mailman (input) for mailman id 1080522;
 Thu, 14 Aug 2025 01:37:05 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=r7ku=22=gmail.com=arraybolt3@srs-se1.protection.inumbo.net>)
 id 1umMtt-0006vN-OJ
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 01:37:05 +0000
Received: from mail-io1-xd2e.google.com (mail-io1-xd2e.google.com
 [2607:f8b0:4864:20::d2e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2e87a667-78af-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 03:37:05 +0200 (CEST)
Received: by mail-io1-xd2e.google.com with SMTP id
 ca18e2360f4ac-88432e654caso536739f.3
 for <xen-devel@lists.xenproject.org>; Wed, 13 Aug 2025 18:37:05 -0700 (PDT)
Received: from kf-m2g5.. ([2607:fb91:1183:972:ee53:76c5:e875:9619])
 by smtp.gmail.com with ESMTPSA id
 ca18e2360f4ac-883f198db02sm467297239f.16.2025.08.13.18.37.02
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Aug 2025 18:37:03 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2e87a667-78af-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1755135424; x=1755740224; 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=N/SZRhE3SJCIr0OIIkYzLukWKambTVoB6JuSm57Cvgc=;
        b=UA8v+xcLn5ttoMZX+aPH4niQsMFoERdsLrWU6DclESEnLzAJwyUSjy2a+WEl7c0qz3
         fd9So9ujRcR6NGlDGz74xy2GR3AWTJOS2gtZ0YcJaT7oxkUdNW8Vg8+el8u1wMzn3RJk
         0YTWOr68p3RGw0hZGhvJlTBs8Du4ioX7c/kAOGNoQL4GuWgmWl3TwhnqbaV3C+Prb+2b
         qGQGv2hqBafNDZLYoCwsW17DOHlfbsPVz21OSZGgxnEWH8CHU2mqoqd7odhkEhR41s92
         Mxak6uL35oZFrjZnVVWaExyryHcyCaYnCAige/uSL9fIdjcLzAxMBKYJc3eKEe5sZeF5
         tH6w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755135424; x=1755740224;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=N/SZRhE3SJCIr0OIIkYzLukWKambTVoB6JuSm57Cvgc=;
        b=dkEgP9UCJUU+SdJhdwec01vo9GpQSj6idkMo0eCBdFKvDxoQ3PFN08GwUDASEXWHYB
         LtVqNoaGEuvJAJz+4JkFRDjEf6BWhcDQ+myOuHjKnK5U8uPeYpPCFByUTKcDB/6ZCYuC
         sXhS5QkSbKWQQ9NCzEOYq6IwPs7ra4dVZN4wQmQFDOTQxrf4TM9Ho+e632JpMzrmboTB
         zI6FBGr2HC2NUcERELtyLbDBf29TcpPWTrntpAyigdkh9MaA44HDsfO2ktYNwcoTQfcO
         hn28VZ6tONRUYSBrTbj+/gYe7jaSEQdqNNMlxLy6L7tgfjgPfXwvD4cPyG96paHGWKUL
         7sxA==
X-Forwarded-Encrypted: i=1; AJvYcCXA8lw2TC/sX+S/n//BzveIVwcYIIvWpXF61PM2EI1YKPkDnK8zwB1Jl5e3e7A7o9/KwN2kULVcEkw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxD3uWVlJrmRhTYZwZMdr/2JGvaTuJzb0WrPYI3+AOcDBSOwzmr
	h8/P7TzIzT8y/ghNi8hGoktHnFHFHva84ksTmKXWa/dsp5SC5pMOBjXy
X-Gm-Gg: ASbGncswPewemgbtVz3EbaN0ChslfuFa3Z3Z4Oqicpq9PE4R2wyvHbtRlU/ukmRBS+I
	dNTbS3XwvjdNSaxAM4mmUk/uoGmmBAOe2b+wBJboTaQueVPACVclDXhjOOUx4P9ZUcclKolD0St
	IfqXRTmm/xXuxLjb35bAwQXc5UTJv3lQcMMYDy9+IFJ3YfxAC/mJoY5gYGs/KZIbjE++utW09SP
	QySgOqfU+2BpHgYj3JXbywkp15iVc/trfKfVrwRznWHzMy6W+ruwSWMw5zaRppqDxdkMmXuT3BB
	9njHXR35Fo8G67R25Af9s6R/ASeX1WSGPzJLWUMV74p33l3ZakjeuMROxBua+amtqglB33lDLLA
	69Bx9H7UJQEHeou8/ZO10YQ==
X-Google-Smtp-Source: AGHT+IFkBFufD9NJLEGIm53oPkL0BcTN2+qjfbO0wMlwwfydkYk1JI7gRnf0MbVB7D9whEElxmF6Kg==
X-Received: by 2002:a05:6602:1584:b0:881:982b:994b with SMTP id ca18e2360f4ac-884337e10b5mr76340639f.1.1755135423756;
        Wed, 13 Aug 2025 18:37:03 -0700 (PDT)
From: arraybolt3@gmail.com
To: grub-devel@gnu.org,
	xen-devel@lists.xenproject.org
Cc: Aaron Rainbolt <arraybolt3@gmail.com>
Subject: [PATCH v5 1/3] include/xen: Rename MAX_GUEST_CMDLINE to GRUB_XEN_MAX_GUEST_CMDLINE
Date: Wed, 13 Aug 2025 20:36:43 -0500
Message-ID: <20250814013645.2488043-2-arraybolt3@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250814013645.2488043-1-arraybolt3@gmail.com>
References: <20250814013645.2488043-1-arraybolt3@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Aaron Rainbolt <arraybolt3@gmail.com>

The xen.h header was using an overly generic name to refer to the
maximum length of the command line passed from Xen to a guest. Rename it
to avoid confusion or conflicts in the future.

Signed-off-by: Aaron Rainbolt <arraybolt3@gmail.com>
---
 include/xen/xen.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/include/xen/xen.h b/include/xen/xen.h
index 692f97a..fdf0fc4 100644
--- a/include/xen/xen.h
+++ b/include/xen/xen.h
@@ -823,8 +823,8 @@ struct start_info {
                                 /* (PFN of pre-loaded module if           */
                                 /*  SIF_MOD_START_PFN set in flags).      */
     unsigned long mod_len;      /* Size (bytes) of pre-loaded module.     */
-#define MAX_GUEST_CMDLINE 1024
-    int8_t cmd_line[MAX_GUEST_CMDLINE];
+#define GRUB_XEN_MAX_GUEST_CMDLINE 1024
+    int8_t cmd_line[GRUB_XEN_MAX_GUEST_CMDLINE];
     /* The pfn range here covers both page table and p->m table frames.   */
     unsigned long first_p2m_pfn;/* 1st pfn forming initial P->M table.    */
     unsigned long nr_p2m_frames;/* # of pfns forming initial P->M table.  */
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 01:37:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 01:37:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080521.1440880 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umMtt-0006vk-UB; Thu, 14 Aug 2025 01:37:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080521.1440880; Thu, 14 Aug 2025 01:37:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umMtt-0006vZ-OV; Thu, 14 Aug 2025 01:37:05 +0000
Received: by outflank-mailman (input) for mailman id 1080521;
 Thu, 14 Aug 2025 01:37:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=r7ku=22=gmail.com=arraybolt3@srs-se1.protection.inumbo.net>)
 id 1umMts-0006vN-QC
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 01:37:04 +0000
Received: from mail-io1-xd34.google.com (mail-io1-xd34.google.com
 [2607:f8b0:4864:20::d34])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2d168cc3-78af-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 03:37:02 +0200 (CEST)
Received: by mail-io1-xd34.google.com with SMTP id
 ca18e2360f4ac-88432d124e0so655039f.0
 for <xen-devel@lists.xenproject.org>; Wed, 13 Aug 2025 18:37:02 -0700 (PDT)
Received: from kf-m2g5.. ([2607:fb91:1183:972:ee53:76c5:e875:9619])
 by smtp.gmail.com with ESMTPSA id
 ca18e2360f4ac-883f198db02sm467297239f.16.2025.08.13.18.36.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Aug 2025 18:37: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>
X-Inumbo-ID: 2d168cc3-78af-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1755135421; x=1755740221; 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=YhWcxECTsyvnQsJ7LChw0cYe53xNGGE4aZqEdFjnPwo=;
        b=ZP+/GrFk8812C+NjayMalxIaJ+UyPVstwkRDJwOuOklIIZZOcNPUl5rxkNCsun9ftl
         ODxyQ0vCCtnw0iTsNSGi9mEAUprt3PrGq775UhJ98x9bd1UngZxnmT5Ms7ca1c+Lqzfl
         rgyAKKLruoT3P6vdD3/NknFHaPRgOSV2idmvVCsU58dLuQ5OblhmDXHEUNZQK9YSjnDo
         JorIo8wGDZ8UVu9tjxnk+sc7143x59e9N59LXE81il03ZbXiAl02bZ2GzfNzVgmzIqmJ
         ypl47MWa2T08BlPvxqUYMFrWgs+QH+B7KnzW5qjYE7ivBXnSxV3+cvMTe+nb0092Q5wX
         2iQg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755135421; x=1755740221;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=YhWcxECTsyvnQsJ7LChw0cYe53xNGGE4aZqEdFjnPwo=;
        b=lVK/Vk5vLz1CJ/yjo9s/9hCopAARu/8SbsMbc1Jl5iwA4gaLvvEszHqqYheDwbTX0L
         TeSgu6reTWDXe5kWQStRryvxgFZU9nyhq/h2/drbH3TWaDOXM3IHunofhOix88s8KVjr
         uzj7RdZj5yJLdM1ofdjRyNkmGdFMBmhGllsl5Au6guaX96mEUFT/hqd/qagFtxHHUtCT
         sW2Zf3cgxLzptnxzBJCnjhPawGDq7D9rdjHU5oF+PnPnkDOJ56mH0rGIpecv/igra6QS
         PZMwg7XCEukeT1c+srAO4C2DeKr9jsucTeOAhWjFqqhOflLT/G2g5wclVyuaRsl8ZUiR
         MsJg==
X-Forwarded-Encrypted: i=1; AJvYcCWJuGhzFneN+iJ3G0i9+hHSU2tItYQ/CqZp2vqWBCHP2p9Jh44xaDYyuf6MDKZXf0PTeNaDWKC2QXw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxxGw8JxMSyUtZEdkLagbF+vdwouzSNfLkbsmjkXUz3j/P0lcV1
	HXNZdlDm6I9FIfvvcyhvi6PoTHyH3/3+0109ocmheAYR1DBCtn159tUg
X-Gm-Gg: ASbGncsa+curyzTAl7cu7/Uh8/1d3wqpL31dRSTd9528idfdk3Iob7yU6Z/Ba8VfWoJ
	bCmxsR1JyF+ox5Tg7Ptg5Pq25KstK0Ou9ffironnbpnYn97rtC8hIqmRxFToKqpPtzUGOrBM7EB
	ehIEyW0wBfQ3GkCXF9wl3kloQ7Xe4RgtgUxfCOMPtpPyG/uV8TUCs6B9677c9r2apVCoywCWdGX
	3r9CveLTW2Rl7/gYgmOPF6C8Lldjh1kmQazfzVLPbmB6JRa2eKJJGTXBUBnPp27v4Ie0IP41X37
	pT2JXYU+nOHpS2ycaltmJ768CnwmV+cduVd4qpveAy2+keNs6H/6k2hqVXeMI2iMRnkc6kJYq4l
	oeLTMuIIDksO7oQXVsBNRnA==
X-Google-Smtp-Source: AGHT+IFQkAP33m52LBfGZ7HHZAwhTRI7DuDKvGYk0rFli5FQhFa6aMbNAaPUt+2gf8/I9y3OTzEiVg==
X-Received: by 2002:a05:6602:6d18:b0:87c:2f2e:7ddf with SMTP id ca18e2360f4ac-884334ea275mr79870439f.0.1755135421314;
        Wed, 13 Aug 2025 18:37:01 -0700 (PDT)
From: arraybolt3@gmail.com
To: grub-devel@gnu.org,
	xen-devel@lists.xenproject.org
Cc: Aaron Rainbolt <arraybolt3@gmail.com>
Subject: [PATCH v5 0/3] kern/xen: Add Xen command line parsing
Date: Wed, 13 Aug 2025 20:36:42 -0500
Message-ID: <20250814013645.2488043-1-arraybolt3@gmail.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Aaron Rainbolt <arraybolt3@gmail.com>

The purpose of this patch is to allow the Xen hypervisor to pass extra
data to GRUB in the form of a kernel command line, allowing the host to
customize the boot process of the guest. The command line from Xen is
parsed, and any variables within that start with the string
`xen_grub_env_` are exposed as environment variables. The grub.cfg
script can then use those environment variables as it sees fit.

The main reason for doing this is to allow implementing boot modes in
Qubes OS while also using in-VM kernels. For more context on Qubes boot
modes, see [1]. In order for this to work with in-VM kernels, it is
necessary for dom0 to pass kernel parameters to the guest without
modifying the guest's grub.cfg manually. This patch allows this to be
done, by allowing dom0 to pass kernel parameters to GRUB, which then
provides them to grub.cfg as an environment variable. The grub.cfg
script within the VM can then append those parameters to the kernel
command line.

All of the changes from version 4 of the patch are simply refinements
after review from Daniel Kiper. The patch's functionality is unchanged.

Since there are substantial changes since version 4, I've re-run the
entire battery of tests that were used against the v4 patch. All tests
pass. As previously, the tests were done by booting a patched GRUB in
Xen with various different parameters passed to it via the Xen-provided
kernel command line. The effects of these parameters on the
bootloader's environment were then tested, and then an Arch Linux image
was booted to ensure that boot still worked.

[1] https://github.com/QubesOS/qubes-linux-pvgrub2/pull/16

Aaron Rainbolt (3):
  include/xen: Rename MAX_GUEST_CMDLINE to GRUB_XEN_MAX_GUEST_CMDLINE
  include/xen: Add warning comment for cmd_line
  kern/xen: Add Xen command line parsing

 docs/grub.texi                |  52 +++++
 grub-core/Makefile.core.def   |   2 +
 grub-core/kern/i386/xen/pvh.c |   4 +
 grub-core/kern/xen/cmdline.c  | 361 ++++++++++++++++++++++++++++++++++
 grub-core/kern/xen/init.c     |   2 +
 include/grub/xen.h            |   2 +
 include/xen/xen.h             |   9 +-
 7 files changed, 430 insertions(+), 2 deletions(-)
 create mode 100644 grub-core/kern/xen/cmdline.c

--
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 01:37:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 01:37:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080524.1440909 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umMu0-0007eN-ME; Thu, 14 Aug 2025 01:37:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080524.1440909; Thu, 14 Aug 2025 01:37:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umMu0-0007eG-IX; Thu, 14 Aug 2025 01:37:12 +0000
Received: by outflank-mailman (input) for mailman id 1080524;
 Thu, 14 Aug 2025 01:37:11 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=r7ku=22=gmail.com=arraybolt3@srs-se1.protection.inumbo.net>)
 id 1umMtz-0006vN-6m
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 01:37:11 +0000
Received: from mail-io1-xd2c.google.com (mail-io1-xd2c.google.com
 [2607:f8b0:4864:20::d2c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 317619b0-78af-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 03:37:10 +0200 (CEST)
Received: by mail-io1-xd2c.google.com with SMTP id
 ca18e2360f4ac-88432d99304so500939f.1
 for <xen-devel@lists.xenproject.org>; Wed, 13 Aug 2025 18:37:10 -0700 (PDT)
Received: from kf-m2g5.. ([2607:fb91:1183:972:ee53:76c5:e875:9619])
 by smtp.gmail.com with ESMTPSA id
 ca18e2360f4ac-883f198db02sm467297239f.16.2025.08.13.18.37.07
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Aug 2025 18:37: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>
X-Inumbo-ID: 317619b0-78af-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1755135429; x=1755740229; 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=jYjrOnp/98fI4shqR2qZGODzcHFvJmoqS2F7odknl14=;
        b=A5erXSIdSZV9bP/fCQS3DKmWcziIo8AGZySVjkG0Osz6gJYGdOaRUqrIQeQCHjxr4S
         yOos5e//m0lqWuTELmFc0XSvrf8aup0N/xMsGxBTv0YrxUJzBROChjAJeuq7ci8K0gpx
         m5UL4nXY9J4Gwm35fkClPsIuA9JC1UXduMr8IBnu/k3J9U+kOOxJ4BJiWf5B1PegJwHH
         8k7UFi3/9H/ky57mu5MwWVB+M3yR63DAns9hsBJ6mjRyaz5kgeWan6tMnG3RcAJ/Oye9
         6vJ1nMD1Jf8JlKf9goenx93oS88jRIWZbEk0d/+wSH0FMgyNriwnH560Nz0hFkBmQZkP
         mJ2Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755135429; x=1755740229;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=jYjrOnp/98fI4shqR2qZGODzcHFvJmoqS2F7odknl14=;
        b=qfben4jSfMdfQ9yhbUwaemJ4c5WFmTDEdF8eOnYo1rlC7d3dpO4KkfQAJymn4tAcca
         iiXEtRZQR86fYwKNvmWmVb/syCm9vg3fNtkZFYSKCDScL1I+66MBEHzjV+X4HQwRvhII
         HFgL4qrRE/HO67v1plIYCM1jCFm9Dgxih9mxKbtzBxfq0AmnOUMRVYhLMXtj1tbbcAvM
         yTRaaTBq3Vxtzmh5yZFK4HJdlsRfoTtnJ8k5xEm/t8k+frXJV7W3ShsOD538He99cHbl
         2/9A8WfZ6I36+0gVSGW/ILQ871OJlIepGTdlhy/FGU+Bj22sFnO4b9B2Zb5eMPIa8d+z
         ZNfA==
X-Forwarded-Encrypted: i=1; AJvYcCX+nyGSGF0VmZ6j6Pf477XdMK14eEO9VQ5RHjBXes4043BIykdEdKXreJfQUfYu6xyWkAVij1uj/to=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzUbm/wmsIdSI3O3gyoXR3vHipLKmnXFl7WjONPA38RPge4LFua
	ONpFHs4HdmaM1EdXPCiD/JrqYRGXNnTznpAJD5v+CVNsBcauLmIz9OB2
X-Gm-Gg: ASbGncuTwm0eCuhwu/xNpG/4yOdee0iAfp2tkviR98BsZSMaqeaEBx9tA8YWKSIHT+O
	DKk158pOY9/zNyPIOymRsXFBdwMO/3xqdroYQxOJ+WJx4eQswjUxTVsObaied7N5RRD6JlxfCCx
	K9VuR0Yd/LU1K1HvR3b7zWjpiXdDqZXqaO7gR9k4pqXJ1T7wdSZFmcfxyYpDhSQS23CuWROH6Lp
	Ty97u9e+Jy89E3J2rBexYM/wurRoNoJElJK8rQUuXLaWKgmmCXB3GURy9NFLunLaUbj7DP4tEPb
	njOKRUIouRaEyL2z901fE2cZ45aDyy0xJgziBuRQMoWSjIjKP2Zq8o+YkVjSplN0tVbwE1ngtCg
	iNOne9Wi2zW/4hCnMN1P82MoPOe+pFIkH
X-Google-Smtp-Source: AGHT+IHoWdWVHYfsNfkHl6TNhXloRZxAVR1T8eFqwX+ooSg0nIZDMOVQaMkmROyH5boiVh3HNDm0RA==
X-Received: by 2002:a05:6602:6011:b0:881:8274:c398 with SMTP id ca18e2360f4ac-884339c2238mr70250039f.4.1755135428621;
        Wed, 13 Aug 2025 18:37:08 -0700 (PDT)
From: arraybolt3@gmail.com
To: grub-devel@gnu.org,
	xen-devel@lists.xenproject.org
Cc: Aaron Rainbolt <arraybolt3@gmail.com>
Subject: [PATCH v5 3/3] kern/xen: Add Xen command line parsing
Date: Wed, 13 Aug 2025 20:36:45 -0500
Message-ID: <20250814013645.2488043-4-arraybolt3@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250814013645.2488043-1-arraybolt3@gmail.com>
References: <20250814013645.2488043-1-arraybolt3@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Aaron Rainbolt <arraybolt3@gmail.com>

Xen traditionally allows customizing guest behavior by passing arguments
to the VM kernel via the kernel command line. This is no longer possible
when using GRUB with Xen, as the kernel command line is decided by the
GRUB configuration file within the guest, not data passed to the guest
by Xen.

To work around this limitation, enable GRUB to parse a command line
passed to it by Xen, and expose data from the command line to the GRUB
configuration as environment variables. These variables can be used in
the GRUB configuration for any desired purpose, such as extending the
kernel command line passed to the guest. The command line format is
inspired by the Linux kernel's command line format.

To reduce the risk of misuse, abuse, or accidents in production, the
command line will only be parsed if it consists entirely of 7-bit ASCII
characters, only alphabetical characters and underscores are permitted
in variable names, and all variable names must start with the string
"xen_grub_env_". This also allows room for expanding the command line
arguments accepted by GRUB in the future, should other arguments end up
becoming desirable in the future.

Signed-off-by: Aaron Rainbolt <arraybolt3@gmail.com>
---
 docs/grub.texi                |  52 +++++
 grub-core/Makefile.core.def   |   2 +
 grub-core/kern/i386/xen/pvh.c |   4 +
 grub-core/kern/xen/cmdline.c  | 361 ++++++++++++++++++++++++++++++++++
 grub-core/kern/xen/init.c     |   2 +
 include/grub/xen.h            |   2 +
 6 files changed, 423 insertions(+)
 create mode 100644 grub-core/kern/xen/cmdline.c

diff --git a/docs/grub.texi b/docs/grub.texi
index 34b3484..cd4e539 100644
--- a/docs/grub.texi
+++ b/docs/grub.texi
@@ -3271,6 +3271,7 @@ GRUB.  Others may be used freely in GRUB configuration files.
 @menu
 * Special environment variables::
 * Environment block::
+* Passing environment variables through Xen::
 @end menu
 
 
@@ -3871,6 +3872,57 @@ using BIOS or EFI functions (no ATA, USB or IEEE1275).
 @command{grub-mkconfig} uses this facility to implement
 @samp{GRUB_SAVEDEFAULT} (@pxref{Simple configuration}).
 
+@node Passing environment variables through Xen
+@section Passing environment variables through Xen
+
+If you are using a GRUB image as the kernel for a PV or PVH Xen virtual
+machine, you can pass environment variables from Xen's dom0 to the VM through
+the Xen-provided kernel command line. When combined with a properly configured
+guest, this can be used to customize the guest's behavior on bootup via the
+VM's Xen configuration file.
+
+GRUB will parse the kernel command line passed to it by Xen during bootup.
+The command line will be split into space-delimited words. Single and
+double quotes may be used to quote words or portions of words that contain
+spaces. Single quotes will be considered part of a word if inside double
+quotes, and vice versa. Arbitrary characters may be backslash-escaped to make
+them a literal component of a word rather than being parsed as quotes or word
+separators. The command line must consist entirely of printable 7-bit ASCII
+characters and spaces. If a non-printing ASCII character is found anywhere in
+the command line, the entire command line will be ignored by GRUB. (This
+splitter algorithm is meant to behave somewhat like Bash's word splitting.)
+
+Each word should be a variable assignment in the format ``variable'' or
+``variable=value''. Variable names must contain only the characters A-Z, a-z,
+and underscore (``_''). Variable names must begin with the string
+``xen_grub_env_''. Variable values can contain arbitrary printable 7-bit
+ASCII characters and space. If any variable contains an illegal name, that
+variable will be ignored.
+
+If a variable name and value are both specified, the variable will be set to
+the specified value. If only a variable name is specified, the variable's
+value will be set to ``1''.
+
+The following is a simple example of how to use this functionality to append
+arbitrary variables to a guest's kernel command line:
+
+@example
+# In the Xen configuration file for the guest
+name = "linux_vm"
+type = "pvh"
+kernel = "/path/to/grub-i386-xen_pvh.bin"
+extra = "xen_grub_env_linux_append='loglevel=3'"
+memory = 1024
+disk = [ "file:/srv/vms/linux_vm.img,sda,w" ]
+
+# In the guest's GRUB configuration file
+menuentry "Linux VM with dom0-specified kernel parameters" @{
+    search --set=root --label linux_vm --hint hd0,msdos1
+    linux /boot/vmlinuz root=LABEL=linux_vm $@{xen_grub_env_linux_append@}
+    initrd /boot/initrd.img
+@}
+@end example
+
 @node Modules
 @chapter Modules
 
diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def
index b3f7119..df0f266 100644
--- a/grub-core/Makefile.core.def
+++ b/grub-core/Makefile.core.def
@@ -248,6 +248,7 @@ kernel = {
   xen = term/xen/console.c;
   xen = disk/xen/xendisk.c;
   xen = commands/boot.c;
+  xen = kern/xen/cmdline.c;
 
   i386_xen_pvh = commands/boot.c;
   i386_xen_pvh = disk/xen/xendisk.c;
@@ -255,6 +256,7 @@ kernel = {
   i386_xen_pvh = kern/i386/xen/tsc.c;
   i386_xen_pvh = kern/i386/xen/pvh.c;
   i386_xen_pvh = kern/xen/init.c;
+  i386_xen_pvh = kern/xen/cmdline.c;
   i386_xen_pvh = term/xen/console.c;
 
   ia64_efi = kern/ia64/efi/startup.S;
diff --git a/grub-core/kern/i386/xen/pvh.c b/grub-core/kern/i386/xen/pvh.c
index 91fbca8..52020b7 100644
--- a/grub-core/kern/i386/xen/pvh.c
+++ b/grub-core/kern/i386/xen/pvh.c
@@ -352,6 +352,10 @@ grub_xen_setup_pvh (void)
   grub_xen_mm_init_regions ();
 
   grub_rsdp_addr = pvh_start_info->rsdp_paddr;
+
+  grub_strncpy ((char *) grub_xen_start_page_addr->cmd_line,
+		(const char *) pvh_start_info->cmdline_paddr,
+		GRUB_XEN_MAX_GUEST_CMDLINE);
 }
 
 grub_err_t
diff --git a/grub-core/kern/xen/cmdline.c b/grub-core/kern/xen/cmdline.c
new file mode 100644
index 0000000..8021bf8
--- /dev/null
+++ b/grub-core/kern/xen/cmdline.c
@@ -0,0 +1,361 @@
+/*
+ *  GRUB  --  GRand Unified Bootloader
+ *  Copyright (C) 2025  Free Software Foundation, Inc.
+ *
+ *  GRUB 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 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  GRUB 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 GRUB.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <grub/env.h>
+#include <grub/misc.h>
+#include <grub/mm.h>
+#include <grub/xen.h>
+#include <grub/err.h>
+
+enum splitter_state
+{
+  SPLITTER_NORMAL = 0x0,
+  SPLITTER_HIT_BACKSLASH = 0x1,
+  SPLITTER_IN_SINGLE_QUOTES = 0x2,
+  SPLITTER_IN_DOUBLE_QUOTES = 0x4,
+};
+typedef enum splitter_state splitter_state_t;
+
+/*
+ * The initial size of the current_word buffer. The buffer may be resized as
+ * needed.
+ */
+#define PARSER_BASE_WORD_SIZE 32
+
+struct parser_state
+{
+  char **words;
+  grub_size_t words_count;
+  char *current_word;
+  grub_size_t current_word_len;
+  grub_size_t current_word_pos;
+};
+typedef struct parser_state parser_state_t;
+
+static grub_err_t
+append_char_to_word (parser_state_t *ps, char c, bool allow_null)
+{
+  /*
+   * We ban any chars that are not in the ASCII printable range. If
+   * allow_null == true, we make an exception for NUL. (This is needed so that
+   * append_word_to_list can add a NUL terminator to the word).
+   */
+  if (!grub_isprint (c) && allow_null == false)
+    return GRUB_ERR_BAD_ARGUMENT;
+  else if (allow_null == true && c != '\0')
+    return GRUB_ERR_BAD_ARGUMENT;
+
+  if (ps->current_word_pos == ps->current_word_len)
+    {
+      ps->current_word = grub_realloc (ps->current_word, ps->current_word_len *= 2);
+      if (ps->current_word == NULL)
+        {
+          ps->current_word_len /= 2;
+          return grub_errno;
+        }
+    }
+
+  ps->current_word[ps->current_word_pos++] = c;
+  return GRUB_ERR_NONE;
+}
+
+static grub_err_t
+append_word_to_list (parser_state_t *ps)
+{
+  /* No-op on empty words. */
+  if (ps->current_word_pos == 0)
+    return GRUB_ERR_NONE;
+
+  if (append_char_to_word (ps, '\0', true) != GRUB_ERR_NONE)
+    grub_fatal ("couldn't append NUL terminator to word during Xen cmdline parsing");
+
+  ps->current_word_len = grub_strlen (ps->current_word) + 1;
+  ps->current_word = grub_realloc (ps->current_word, ps->current_word_len);
+  if (ps->current_word == NULL)
+    return grub_errno;
+  ps->words = grub_realloc (ps->words, ++ps->words_count * sizeof (char *));
+  if (ps->words == NULL)
+    return grub_errno;
+  ps->words[ps->words_count - 1] = ps->current_word;
+
+  ps->current_word_len = PARSER_BASE_WORD_SIZE;
+  ps->current_word_pos = 0;
+  ps->current_word = grub_malloc (ps->current_word_len);
+  if (ps->current_word == NULL)
+    return grub_errno;
+
+  return GRUB_ERR_NONE;
+}
+
+static bool
+is_key_safe (char *key, grub_size_t len)
+{
+  grub_size_t i;
+
+  for (i = 0; i < len; i++)
+    if (!grub_isalpha (key[i]) && key[i] != '_')
+      return false;
+
+  return true;
+}
+
+void
+grub_parse_xen_cmdline (void)
+{
+  parser_state_t ps = {0};
+  splitter_state_t ss = SPLITTER_NORMAL;
+
+  const char *cmdline = (const char *) grub_xen_start_page_addr->cmd_line;
+  grub_size_t cmdline_len;
+  bool cmdline_valid = false;
+  char **param_keys = NULL;
+  char **param_vals = NULL;
+  grub_size_t param_dict_len = 0;
+  grub_size_t param_dict_pos = 0;
+  char current_char = '\0';
+  grub_size_t i = 0;
+
+  /*
+   * The following algorithm is used to parse the Xen command line:
+   *
+   * - The command line is split into space-separated words.
+   *   - Single and double quotes may be used to suppress the splitting
+   *     behavior of spaces.
+   *   - Double quotes are appended to the current word verbatim if they
+   *     appear within a single-quoted string portion, and vice versa.
+   *   - Backslashes may be used to cause the next character to be
+   *     appended to the current word verbatim. This is only useful when
+   *     used to escape quotes, spaces, and backslashes, but for simplicity
+   *     we allow backslash-escaping anything.
+   * - After splitting the command line into words, each word is checked to
+   *   see if it contains an equals sign.
+   *   - If it does, it is split on the equals sign into a key-value pair. The
+   *     key is then treated as an variable name, and the value is treated as
+   *     the variable's value.
+   *   - If it does not, the entire word is treated as a variable name. The
+   *     variable's value is implicitly considered to be `1`.
+   * - All variables detected on the command line are checked to see if their
+   *   names begin with the string `xen_grub_env_`. Variables that do not pass
+   *   this check are discarded, variables that do pass this check are
+   *   exported so they are available to the GRUB configuration.
+   *
+   * This behavior is intended to somewhat mimic the splitter behavior in Bash
+   * and in GRUB's config file parser.
+   */
+
+  ps.current_word_len = PARSER_BASE_WORD_SIZE;
+  ps.current_word = grub_malloc (ps.current_word_len);
+  if (ps.current_word == NULL)
+    goto cleanup_main;
+
+  for (i = 0; i < GRUB_XEN_MAX_GUEST_CMDLINE; i++)
+    {
+      if (cmdline[i] == '\0')
+        {
+          cmdline_valid = true;
+          break;
+        }
+    }
+
+  if (cmdline_valid == false)
+    {
+      grub_error (GRUB_ERR_BAD_ARGUMENT,
+		  "command line from Xen is not NUL-terminated");
+      grub_print_error ();
+      goto cleanup_main;
+    }
+
+  cmdline_len = grub_strlen (cmdline);
+  for (i = 0; i < cmdline_len; i++)
+    {
+      current_char = cmdline[i];
+
+      /*
+       * If the previous character was a backslash, append the current
+       * character to the word verbatim
+       */
+      if (ss & SPLITTER_HIT_BACKSLASH)
+        {
+          ss &= ~SPLITTER_HIT_BACKSLASH;
+          if (append_char_to_word (&ps, current_char, false) != GRUB_ERR_NONE)
+            goto cleanup_main;
+          continue;
+        }
+
+      switch (current_char)
+        {
+        case '\\':
+          /* Backslashes escape arbitrary characters. */
+          ss |= SPLITTER_HIT_BACKSLASH;
+          break;
+
+        case '\'':
+          /*
+           * Single quotes suppress word splitting and double quoting until
+           * the next single quote is encountered.
+           */
+          if (ss & SPLITTER_IN_DOUBLE_QUOTES)
+            {
+              if (append_char_to_word (&ps, current_char, false) != GRUB_ERR_NONE)
+                goto cleanup_main;
+              break;
+            }
+
+          ss ^= SPLITTER_IN_SINGLE_QUOTES;
+          break;
+
+        case '"':
+          /*
+           * Double quotes suppress word splitting and single quoting until
+           * the next double quote is encountered.
+           */
+          if (ss & SPLITTER_IN_SINGLE_QUOTES)
+            {
+              if (append_char_to_word (&ps, current_char, false) != GRUB_ERR_NONE)
+                goto cleanup_main;
+              break;
+            }
+
+          ss ^= SPLITTER_IN_DOUBLE_QUOTES;
+          break;
+
+        case ' ':
+          /* Spaces separate words in the command line from each other. */
+          if (ss & SPLITTER_IN_SINGLE_QUOTES ||
+              ss & SPLITTER_IN_DOUBLE_QUOTES)
+            {
+              if (append_char_to_word (&ps, current_char, false) != GRUB_ERR_NONE)
+                goto cleanup_main;
+              break;
+            }
+
+          if (append_word_to_list (&ps) != GRUB_ERR_NONE)
+            goto cleanup_main;
+          break;
+
+        default:
+          if (append_char_to_word (&ps, current_char, false) != GRUB_ERR_NONE)
+            goto cleanup_main;
+        }
+    }
+
+  if (append_word_to_list (&ps) != GRUB_ERR_NONE)
+    goto cleanup_main;
+
+  param_keys = grub_malloc (ps.words_count * sizeof (char *));
+  if (param_keys == NULL)
+    goto cleanup_main;
+  param_vals = grub_malloc (ps.words_count * sizeof (char *));
+  if (param_vals == NULL)
+    goto cleanup_main;
+
+  for (i = 0; i < ps.words_count; i++)
+    {
+      char *eq_pos;
+
+      ps.current_word = ps.words[i];
+      ps.current_word_len = grub_strlen (ps.current_word) + 1;
+      eq_pos = grub_strchr (ps.current_word, '=');
+
+      if (eq_pos != NULL)
+        {
+          /*
+           * Both pre_eq_len and post_eq_len represent substring lengths
+           * without a NUL terminator.
+           */
+          grub_size_t pre_eq_len = (grub_size_t) (eq_pos - ps.current_word);
+          /*
+           * ps.current_word_len includes the NUL terminator, so we subtract
+           * one to get rid of the terminator, and one more to get rid of the
+           * equals sign.
+           */
+          grub_size_t post_eq_len = (ps.current_word_len - 2) - pre_eq_len;
+
+          if (is_key_safe (ps.current_word, pre_eq_len) == true)
+            {
+              param_dict_pos = param_dict_len++;
+              param_keys[param_dict_pos] = grub_malloc (pre_eq_len + 1);
+              if (param_keys == NULL)
+                goto cleanup_main;
+              param_vals[param_dict_pos] = grub_malloc (post_eq_len + 1);
+              if (param_vals == NULL)
+                goto cleanup_main;
+
+              grub_strncpy (param_keys[param_dict_pos], ps.current_word, pre_eq_len);
+              grub_strncpy (param_vals[param_dict_pos],
+			    ps.current_word + pre_eq_len + 1, post_eq_len);
+              param_keys[param_dict_pos][pre_eq_len] = '\0';
+              param_vals[param_dict_pos][post_eq_len] = '\0';
+            }
+        }
+      else if (is_key_safe (ps.current_word, ps.current_word_len - 1) == true)
+        {
+          param_dict_pos = param_dict_len++;
+          param_keys[param_dict_pos] = grub_malloc (ps.current_word_len);
+          if (param_keys == NULL)
+            goto cleanup_main;
+          param_vals[param_dict_pos] = grub_malloc (2);
+          if (param_vals == NULL)
+            goto cleanup_main;
+
+          grub_strncpy (param_keys[param_dict_pos], ps.current_word,
+			ps.current_word_len);
+          if (param_keys[param_dict_pos][ps.current_word_len - 1] != '\0' )
+            grub_fatal ("NUL terminator missing from key during Xen cmdline parsing");
+          grub_strcpy (param_vals[param_dict_pos], "1");
+        }
+     
+    }
+
+  for (i = 0; i < param_dict_len; i++)
+    {
+      /*
+       * Find keys that start with "xen_grub_env_" and export them
+       * as environment variables.
+       */
+      if (grub_strncmp (param_keys[i],
+			"xen_grub_env_",
+			sizeof ("xen_grub_env_") - 1) != 0)
+        continue;
+
+      if (grub_env_set (param_keys[i], param_vals[i]) != GRUB_ERR_NONE)
+        {
+          grub_printf ("warning: could not set environment variable `%s' to value `%s'\n",
+		       param_keys[i], param_vals[i]);
+          continue;
+        }
+
+      if (grub_env_export (param_keys[i]) != GRUB_ERR_NONE)
+        grub_printf ("warning: could not export environment variable `%s'",
+		     param_keys[i]);
+    }
+
+ cleanup_main:
+  for (i = 0; i < ps.words_count; i++)
+    grub_free (ps.words[i]);
+
+  for (i = 0; i < param_dict_len; i++)
+    {
+      grub_free (param_keys[i]);
+      grub_free (param_vals[i]);
+    }
+
+  grub_free (param_keys);
+  grub_free (param_vals);
+  grub_free (ps.words);
+}
diff --git a/grub-core/kern/xen/init.c b/grub-core/kern/xen/init.c
index 782ca72..69cf59f 100644
--- a/grub-core/kern/xen/init.c
+++ b/grub-core/kern/xen/init.c
@@ -581,6 +581,8 @@ grub_machine_init (void)
   grub_xendisk_init ();
 
   grub_boot_init ();
+
+  grub_parse_xen_cmdline ();
 }
 
 void
diff --git a/include/grub/xen.h b/include/grub/xen.h
index 91cb7cf..7f9efee 100644
--- a/include/grub/xen.h
+++ b/include/grub/xen.h
@@ -89,6 +89,8 @@ void grub_console_init (void);
 void grub_xendisk_fini (void);
 void grub_xendisk_init (void);
 
+void grub_parse_xen_cmdline (void);
+
 #ifdef __x86_64__
 typedef grub_uint64_t grub_xen_mfn_t;
 #else
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 01:37:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 01:37:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080523.1440899 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umMtx-0007Nf-DC; Thu, 14 Aug 2025 01:37:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080523.1440899; Thu, 14 Aug 2025 01:37: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 1umMtx-0007NY-AV; Thu, 14 Aug 2025 01:37:09 +0000
Received: by outflank-mailman (input) for mailman id 1080523;
 Thu, 14 Aug 2025 01:37:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=r7ku=22=gmail.com=arraybolt3@srs-se1.protection.inumbo.net>)
 id 1umMtw-0006vN-52
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 01:37:08 +0000
Received: from mail-il1-x129.google.com (mail-il1-x129.google.com
 [2607:f8b0:4864:20::129])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3002a262-78af-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 03:37:07 +0200 (CEST)
Received: by mail-il1-x129.google.com with SMTP id
 e9e14a558f8ab-3e56ff95838so346165ab.1
 for <xen-devel@lists.xenproject.org>; Wed, 13 Aug 2025 18:37:07 -0700 (PDT)
Received: from kf-m2g5.. ([2607:fb91:1183:972:ee53:76c5:e875:9619])
 by smtp.gmail.com with ESMTPSA id
 ca18e2360f4ac-883f198db02sm467297239f.16.2025.08.13.18.37.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 13 Aug 2025 18:37: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>
X-Inumbo-ID: 3002a262-78af-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1755135426; x=1755740226; 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=QSq1DluxhGuJdHCz8UHBJovQfitqDO0ftgOR0z6jXHw=;
        b=ZacKDZ314n1sjjPayVIst8TYgZmSjwpf0P+4ur05pin4+DN3zUgvxQ2KwfRNe232T3
         yUs2xcv7xcQmQojkQBkCsqEuyGAwLWpqd3eQaHwNI+Np12skSt4jbtP9uXggSkzR2/CT
         RCnbrNPWRVZihfI/CWJaxT9w+PhWLgTaO9b062Xn2VAyLTXY1zaEv4IX4xqmGkjT9FnN
         5mG3AXdv3+cITqV3UasWJDAJnQDs1U02dU2TcDI6Uni03YA+kh0tTFheK8auZcqIbwnb
         hb9dGZgbYsZ01CEkDIHu9DAgj2Jniye9FtAWIhw6z58wA+n1OQVFVUGMC8ZG4j2YpJye
         XHhQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755135426; x=1755740226;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=QSq1DluxhGuJdHCz8UHBJovQfitqDO0ftgOR0z6jXHw=;
        b=sW5ytnuC+t7uFwKk+AM2UDnCNe2grEl5rqqswZE3qUuJi4G39yb+DV5Pahev8Wg0Jq
         xvQbsp5WHceQKNFMQIRil09Ojq+izrWf+t6NMWccemJOsMlSpx42exgASCZINuidUfD4
         msPQnrI3MDfcyOgIpMRP83zOb3AOhkQoNdEQ+cmsinOTd6g3dwXaBXeBpa8ETNB3V1Hc
         NCZuSeNVqOwNf5GL8Pxui3EIrlDVeFnCV3AmXGDTYJAkQSj1dWpew71AM3SKwOQqy3ay
         Dr2YJlc3BU8skGmhbz83ex6JtghKjGASYUEdF1cY9YwrlsY+syg4pVjfPaBdVONFGM5g
         uG2A==
X-Forwarded-Encrypted: i=1; AJvYcCV/o0OpL9t/PecLiuT2l8gpJtwTTFDS57RF+frksVlCc8xt5EnjNv37dhEFeGfrJf8PwatMBxAsZZA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwOkpHZhpMFlE9XLHqOE5JfAXOu1It2KUG9H9cDrVPUkCFHbspN
	3GQCcw2BC+Ce4hAq87s5YXznKPa85iM7xl7Np/9L74c7BzQK9GA8mEJ9
X-Gm-Gg: ASbGncujX46dNYes+AsSfFstaiPkG1mYNyVUI60Rl43mUgeO9syNsBjhV1I1GhTVUZL
	4/JMuti+1bmuHvWwTLS/Lyrwvw6zFgxsFGzy8nC5p79i7mPrWLcujAMZ63wIBD1e+ntw3Qxm1Bi
	r2CsVPDowSKopwWsGHttiE6cjHRSNbPrN2hhCrxrHbXqWyHM6NbCxyMBacCeLOjFQwsyE3N7bjz
	VTQeus9jfjFz9XdgKbf/YdFLOdSnRaqoc86dCqlTyyHI2umI6Pu/Vvo6tKgiv6CiQR/FKzg7Cri
	fO/hXs6GhhpSeVXQPZJjy4jK9gT2kW8+50eD1bTouG4Tan8HVHGkFQi9TRk/ZQLeaoBzI0w+7/S
	ncwWzmW3kD2g7oabbO2BTSw==
X-Google-Smtp-Source: AGHT+IFXjpZLwIfry/EvzV7zQJCVKPxqe3UBzCy2m+yVfvZMxryZK8LOfJBC9UMmreq4Du/PO0zpew==
X-Received: by 2002:a05:6602:2dc9:b0:85d:9793:e0d8 with SMTP id ca18e2360f4ac-884334e045emr80901939f.0.1755135426238;
        Wed, 13 Aug 2025 18:37:06 -0700 (PDT)
From: arraybolt3@gmail.com
To: grub-devel@gnu.org,
	xen-devel@lists.xenproject.org
Cc: Aaron Rainbolt <arraybolt3@gmail.com>
Subject: [PATCH v5 2/3] include/xen: Add warning comment for cmd_line
Date: Wed, 13 Aug 2025 20:36:44 -0500
Message-ID: <20250814013645.2488043-3-arraybolt3@gmail.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250814013645.2488043-1-arraybolt3@gmail.com>
References: <20250814013645.2488043-1-arraybolt3@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Aaron Rainbolt <arraybolt3@gmail.com>

The cmd_line field of the start_info struct is not guaranteed to be
NUL-terminated, even though it is intended to contain a NUL-terminated
string. Add a warning about this in a comment so future consumers of
this field know to check it for a NUL terminator before using it.

Signed-off-by: Aaron Rainbolt <arraybolt3@gmail.com>
---
 include/xen/xen.h | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/include/xen/xen.h b/include/xen/xen.h
index fdf0fc4..16f3fd7 100644
--- a/include/xen/xen.h
+++ b/include/xen/xen.h
@@ -823,6 +823,11 @@ struct start_info {
                                 /* (PFN of pre-loaded module if           */
                                 /*  SIF_MOD_START_PFN set in flags).      */
     unsigned long mod_len;      /* Size (bytes) of pre-loaded module.     */
+    /* 
+     * cmd_line will contain a NUL-termianted string if it contains valid
+     * data, but it MAY be invalid and not contain a NUL byte at all. Code
+     * that accesses cmd_line MUST NOT assume it is NUL-terminated.
+     */
 #define GRUB_XEN_MAX_GUEST_CMDLINE 1024
     int8_t cmd_line[GRUB_XEN_MAX_GUEST_CMDLINE];
     /* The pfn range here covers both page table and p->m table frames.   */
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 03:13:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 03:13:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080615.1440918 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umOP2-0004Cs-Nx; Thu, 14 Aug 2025 03:13:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080615.1440918; Thu, 14 Aug 2025 03:13: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 1umOP2-0004Cl-LO; Thu, 14 Aug 2025 03:13:20 +0000
Received: by outflank-mailman (input) for mailman id 1080615;
 Thu, 14 Aug 2025 03:13:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ppuf=22=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1umOP1-0004Cf-CU
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 03:13:19 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20612.outbound.protection.outlook.com
 [2a01:111:f403:2412::612])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9e583138-78bc-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 05:13:17 +0200 (CEST)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 MN2PR12MB4142.namprd12.prod.outlook.com (2603:10b6:208:1dd::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.21; Thu, 14 Aug
 2025 03:13:12 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d%7]) with mapi id 15.20.9031.012; Thu, 14 Aug 2025
 03:13: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>
X-Inumbo-ID: 9e583138-78bc-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QJTXOaFoQEFUsAnqWx1mdqCHFftnfoBDHqeWauYTuupvyeYC4ii1Z4sFACJ4zcKcV0ZBoo0AZ0rGFXlDI+ALf8QcmSqxqQ/PUdvuzfHGvqhyF3360beiZNlykK6w0RGtG4SpSZKuw/5svWslT+c+If+6MVD+aV6iLxgjnPcaMBFNCs24iZ/MqT5H4ezuRR9KVR1vwHoQ/jwwyHW1o6/tgduGem23r5oR3rxpct03MnbE/Hogh5KAKDGXW7i4kCSbDWCAUHUmyjvCq/jZzP8cAXfS3plCGcuiMc/iJNzIOT/ADx372Fl2SaJwXeVzHFV2a0fVgQl5ZkBYh7vheYq66w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ubZMbdr4PUHDB7jBLe6yqtwgS6zNBrz+/3WKcqZRQIA=;
 b=sAwS4tQH8Ryie6UfVnnS+IyZS80r0fJbh3zoO0aTwREArG9QBwbBI3iAuozAUutCdyo+JCz1pEdvQKGPBGXGb6upIFPeUuIC2B1wGzUyJN/jJJ/lEueFi2QVLfmF2TUYrjEcgM6YMFYcpsJN+xUZTW/T/2m3y1WSJPQ0pAY7jRyWIGhgZ/zW5sbTIlcmX985JO23jebqlVEnuBKR5uSvhrcwenxDN6lPKmz0rUU9yojTtb7pEMqLG63+oEs7/iTcZlKKkFiKlRzHAOwa0OxpJCe7rsODY7JjN5B4GbWG7hSjQxuqXtmlLDsc1Psff9X7pkKI1yllisKOAkH5QTHqXA==
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=ubZMbdr4PUHDB7jBLe6yqtwgS6zNBrz+/3WKcqZRQIA=;
 b=c+neqlkjaKy/sAYZ+EoK6lQ9h5gzg3kAfRnoueFq8xRl1nLhVUZDCnmxyPjkzwE/GAvS5Z+W3pN+IW3MlMJO4UOLg6D6jWHIQFOn+w4e3CFUvC7csODfXBkvj/CY9RNBFD2m0d87eD7UATwCZV+BZTzsbDPAk4B2AVwuwDdJrJw=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Andrew Cooper <andrew.cooper3@citrix.com>,
	"Orzel, Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Stefano
 Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v6 19/19] xen/cpufreq: Adapt SET/GET_CPUFREQ_CPPC
 xen_sysctl_pm_op for amd-cppc driver
Thread-Topic: [PATCH v6 19/19] xen/cpufreq: Adapt SET/GET_CPUFREQ_CPPC
 xen_sysctl_pm_op for amd-cppc driver
Thread-Index: AQHb8hcuzjUv9QY8PkCazI2v8DQHmbRBbryAgCA3tFA=
Date: Thu, 14 Aug 2025 03:13:11 +0000
Message-ID:
 <DM4PR12MB845131A7E81BD54B0334E3B2E135A@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20250711035106.2540522-1-Penny.Zheng@amd.com>
 <20250711035106.2540522-20-Penny.Zheng@amd.com>
 <796a9251-8b4f-4266-a31e-828d4da29f54@suse.com>
In-Reply-To: <796a9251-8b4f-4266-a31e-828d4da29f54@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-08-14T03:13:04.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|MN2PR12MB4142:EE_
x-ms-office365-filtering-correlation-id: 618fb6e4-183f-4e3c-8dfb-08dddae0806a
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?TFBSREVEbmZxSTJzWmlXNEdmSXh3bXJtbUs0MFVJQys2TEpmQUN1N3oyMVVv?=
 =?utf-8?B?dEJvZnplUlN2MVpqT1hRWERsanRFdkFMdmZ5YXEvb2FndlQ3MHAySjZONXha?=
 =?utf-8?B?bTdxM1EzcTJlNllzaWk2VDJIRDVBbW1mYi9jbS9kY0l4aWVlUDZMNnNCeW9t?=
 =?utf-8?B?MmFuZjhSZXhtRUV6MWpyRk05aDFsWlhXZUV3Ynh5eFVLcHNNNmh2RklXeWpW?=
 =?utf-8?B?ODlHd2FVZXVncXNmOURnT05xYURwTzFnWkdoc2NGYzljUm1GaDdBaUgwTDdi?=
 =?utf-8?B?eTdPWUU3NklRai9FVXpJR3NXamplWlZlQnRKaEg4VDRMVTFiSzRGKzBtTmM3?=
 =?utf-8?B?Qks4b2VPY2x6cUZuaHpVMURmdlhpV256S1hOYWxjTXlPZk0vclpZZzNvTjBQ?=
 =?utf-8?B?WTQ1bkNzUlZrcEFsT3pVTno1Y0xMOWJsTWFVRGVYU0orMm8rSGlwTFVMQnlM?=
 =?utf-8?B?RWFuc2k5d0FYd2FoUk1xSy8vVjZ5dGJvZjF2YVl2MG5NenpxWEtWRkFqSHA1?=
 =?utf-8?B?Zk9pb3docWQ2ajJDM1pWNWxQOFUzOTE2cTV6YzJ6aEhkeldIWnFWU1pJcllr?=
 =?utf-8?B?VUNNd1VxeUZrK1JYSlpwYkhVaXZKUTJGVWtLdzZjaklXNVgzVDRId0lGVkRN?=
 =?utf-8?B?cWRPV2o2WXdKeWZQVHR0Z1FvcldXZFNTTG55UmFNYUhJdE1RMlJ6NDMrckdN?=
 =?utf-8?B?SzBnWFVMN1YwcXB1UTRpNys5T1gzWk1BWUdXK3V0TVBoQVZ4NktsVVUvbWdE?=
 =?utf-8?B?QmNQWFVOMEZuOHF1dW1qMS8zMVdDMDZ2cE1lSU9va3E5UmZSOWRHTG1lSHZh?=
 =?utf-8?B?ZVZRdlB3QkxmckFGOVlvTTAzWHZFSi9hM20veFZjTDZ5MkFvRU1xUGFnYWZm?=
 =?utf-8?B?OVFBdVNnYTJuMC9Rb2xiR3BEVDFzNkxNNVR1RzF4b2tDSXQ1TGF6eUVaeVl5?=
 =?utf-8?B?UkJCMUNWcDZlblBqWjA5TXRNZUJaSlJRWDFtVXJSOU5LWm1ObU5XTUFLLzI1?=
 =?utf-8?B?Z0txd29LakRud3J5VzluRUxJeHBQc1RjQ0ZlWTlPMVBWWnVCYlBkb0tnejU0?=
 =?utf-8?B?bkFYUmdINC82bEJobjJ4RTZpTWpZYnBaeC9IT2pCLzVQUHdGTXJ6TUl1OFJl?=
 =?utf-8?B?YW95cUtiMCtrZFdqdHVvdnV1b05TVVlXQTh3aWUwU2VOOHRveU1yNGNWMG84?=
 =?utf-8?B?b1l4Qjc1VHF6REhWbmJtQVhnOWNPNUxqNkNNNXFMb2VjQzI1VUJSbk5vMWhp?=
 =?utf-8?B?S2JIc05xVVhNVGdFQWtPb3dhZ1NsVWdGaVEwYXpoTzhxTjRTeS9QbVNFelhj?=
 =?utf-8?B?TzVDaitpeFBSSWFNcGFPY3RoVFRlWU5BYXhYM25uNGVmZ3lVYndoeFl2RTZt?=
 =?utf-8?B?MDVKVWtab3NRMGY2RG5aSE9QZVZCMUxUUFU3dUVGQVFRQ1JMWEJwY1RBNGlv?=
 =?utf-8?B?c2JadmxsVzhMZXAxZDZWSDFEMVFOaUNlV256Z2ZLQWhVL1F5eXFBSVNQeTZN?=
 =?utf-8?B?QUVGQTRkZ2QxbUk0L1NZNHpyT3daZUgwSDI5K3l3YjFhZklHU09XTDM0ZDJp?=
 =?utf-8?B?ckdWN0EvSXI0d0g2M3RNbmkzcVJqR0VRZ1ZUMjdYbzBmWFIyczNMVE1odENj?=
 =?utf-8?B?SjhpTGtRNmY3QXdmWFc1cm5QVis3MFdLU2RYcVdNZk1YS3FUOHg5bTNMTDBF?=
 =?utf-8?B?a1FDbHlxNGsvNkcyVUNnN01GRUFKQ29SOWVKS0FBSXFhWWhZWWlVRmxSSi9z?=
 =?utf-8?B?TWt1RkE0VFRjdWdFMGc3NHdNKzByMVBZRlFXYmRpbTg2UFZncXRDSHp3bWFW?=
 =?utf-8?B?dU5pTUNPWDB0UFY3SE5NeU5lZi90ZVRpQzBPT0gzbFJmUTFQM0lKSy9VZUE3?=
 =?utf-8?B?c1NMamxiWVRkYVIzR01MU1pucG5icUZ3eGRFK1NHZVFWTFBqWnVReVNXdjh5?=
 =?utf-8?B?R2dKbG1DYWZjSkhmQ3I0ejY5WlRjQ3JQNXNCR1RoNngvc2tkb0IvUHpuV2RQ?=
 =?utf-8?Q?EieQCAKLzAu21SfjJ1roBGvUeU2n7A=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?dVcyOGdiLzQ4Qmh4QllLVUFEOHZLT2xqMDhqbU1jdGx5OUMxZW9hWE9LMktK?=
 =?utf-8?B?UDJuUnRiSkkzL0c1VW1TYzBuZTBvcHVWWjFsZGsrZDVWR216SHJqVk92MmJJ?=
 =?utf-8?B?NUxWVkN3Vno1UlRWblZMWU5LN0J0VEFjZ2dDVXpETEZpaWVYbWRkT0Nua0ND?=
 =?utf-8?B?d00xTVVoOEVjd3QzMmVSU09Wc3hxZ1BWY0NHMFFjTEg2V2NKdXVpMitEWlVN?=
 =?utf-8?B?dFhxa0JaNm1FQWgyb1ZPaTVrRlJqOG5FTjRXWjFxWmR0NkdlTGJoaXhQek5k?=
 =?utf-8?B?VWw3bHNZem16R2FaTG1RQ3VnQnRQRk9GcnNaanoyNysrUDdpSW14akFPUUsy?=
 =?utf-8?B?MWFPTFJQdzZ6Q2o3elU5WkV0am1KWXB1S0hNQ1RoSWJqSERaWU8xQlVDOHpO?=
 =?utf-8?B?SnZ2RE9pc0RoUEhGL1Q4aFJsNUdwUm1yZEFhUnlkN2NkQmMwUUFyTldINlBM?=
 =?utf-8?B?ZWg5RkVKaDhlZWtEWStIUURwZ05nRThCeDNQWWduL0ZsVkZYYm1rT2lOWE50?=
 =?utf-8?B?UkhDSDI3c1hNOWF2UlFkeXhDci9TOW8vQUJJbUUwTit5ZzlMMUgzZHczdkFn?=
 =?utf-8?B?YWZVT29obEpwbmh1YmE1QktPdWJYczRZck0vVVRSSkpWNWpWT1JsdDJOTjNZ?=
 =?utf-8?B?UXA5MldQbVk3YkUxTFJad1MvYmk3czM0WW9kTVRBbTMybHFSc1lKaURrNFlj?=
 =?utf-8?B?VExML00wWWNFeS96N1NBQW5KY3djOEpLZUQzbGRFQ29udGE0aEhLUmgzS1ZL?=
 =?utf-8?B?VkRuUGZzSVZNT2w1L2U3L2hHVmt6b2dmU3ByMk1QK1dkWjZ2YktlNXJJMnNp?=
 =?utf-8?B?emJMdjgyKytDKy9YdS9mVDZPaGxaUWV0MnFkeWc2a3ZweVQ5V1F3UkM0MDR6?=
 =?utf-8?B?SGRuUjFjSk9aS0lvcVd0cnZOTFJnZmYwZE5QeGNUV0JKTytUcWIxUlNDdDFl?=
 =?utf-8?B?Y21sVllML2FiNDd0ZGRCa1NPeEF3bGNSM3I1NHhmZkFCSS9hV1A2dzZzRDBR?=
 =?utf-8?B?NmxhaGNWa05xV1B6OVg5b3hpSFpMMDMwQ0s3bXpobVlDaFlkVkg2WnlER0VO?=
 =?utf-8?B?cFZwQzJuTU5UQ00rb05NVlNRdDRoWXVYRlRXMnJQajBoNFVvQVJnRzB1QWV3?=
 =?utf-8?B?TDUyeE5DTGxFSmx4Z0tNZlFCK016UkV5RTRvVmFxVGYzbngzTUoySTR3Z1la?=
 =?utf-8?B?bVZNNWhtTG9UMVRUcUI1LzUvMmRPZm56SU9nandPSXZSSUkxSkdTZ21tcHFO?=
 =?utf-8?B?MnljTzVuTU4wd1BrdkUydi9qbUVXTGRVd1hKWjBHVlZlQmhhN09hS211NWpT?=
 =?utf-8?B?bjFMNjBJbElBQWV4ak1rdWoxSW5sbHBRK0cwL1ZrWEdzYklZZ1BFTDdXaklh?=
 =?utf-8?B?cHBpTWlVQXIzOXN4dHFSSmw4Sks2UkZER3BqV0ZxUE1nM2gxVnVTVmF3NDNJ?=
 =?utf-8?B?V1RmUU9rSWxxVkRMY1VpeGpzdzdUNHV1cW84ZWJhRlFTc3BUSFNlTnU1NGVQ?=
 =?utf-8?B?NUFRNzgyYUttT2M5YkR5MkV4aXhFdlEvU1ExcW9SWlVPZktIcUdnbVBzbGhm?=
 =?utf-8?B?dGdMb3NhcjJNS1l2VzZPakF1Mi9XVGxHUEo1UFljQ3dpTVBKbHprejU2OU1L?=
 =?utf-8?B?ZTFQQkpaTS9iOTZjZGdDcWUweTF2QmJsY2FtMG83RGNCVWgybVQ4eWh6cEc5?=
 =?utf-8?B?akNKZTZaeHBqUUtpZkNTdDIrbGh2UUlzU0tJWkZrQWZYeUVXeXlPQ1ZJZjM3?=
 =?utf-8?B?VHBpeVN5SWpnOEZod3ZTS2NyWUtsYnFiay9QcEx4dnc3T1Z3ZnUzc1poTENC?=
 =?utf-8?B?QlFtTkFkNUE5a2VtVVVkalIrbloyODVXV2NCVUdaS2pJaHBvaGRBaWFJUHp6?=
 =?utf-8?B?MmY0aVBacEZBUmRCRUNrRFR6YUlzRTliUXVJdWFUSTU0YjEveWpBL3F5VXhY?=
 =?utf-8?B?L2hrakwxYTZUMHNFT3B6enh6bHkvdG9ocXIvT3Nvbk5UQlcrQU1XWXpNblJH?=
 =?utf-8?B?KzdkdVJnVkszdTlLNTJ5MFQ4d2ZRbk5yQkgzbkJlTjhBZWt3WUFGZXNFQnlT?=
 =?utf-8?B?ZjQ4OE5uVXV6M3gyQmNCV2VYc2loMkRCMVVIcDlRdkdVanJ4NVNmRS9iK1FI?=
 =?utf-8?Q?adcQ=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 618fb6e4-183f-4e3c-8dfb-08dddae0806a
X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Aug 2025 03:13:11.7990
 (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: py1QPwDQLcvoHcc0Tz+VjaZaylsnqNQrhxCkyWOpyLuW8NAOaDjPbg0P6/s7VLPVsTcUiLmWda+Q0FfLV4vvyg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4142

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFRodXJzZGF5LCBKdWx5IDI0LCAyMDI1
IDEwOjQ0IFBNDQo+IFRvOiBQZW5ueSwgWmhlbmcgPHBlbm55LnpoZW5nQGFtZC5jb20+DQo+IENj
OiBIdWFuZywgUmF5IDxSYXkuSHVhbmdAYW1kLmNvbT47IEFudGhvbnkgUEVSQVJEDQo+IDxhbnRo
b255LnBlcmFyZEB2YXRlcy50ZWNoPjsgQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0
cml4LmNvbT47DQo+IE9yemVsLCBNaWNoYWwgPE1pY2hhbC5PcnplbEBhbWQuY29tPjsgSnVsaWVu
IEdyYWxsIDxqdWxpZW5AeGVuLm9yZz47IFJvZ2VyIFBhdQ0KPiBNb25uw6kgPHJvZ2VyLnBhdUBj
aXRyaXguY29tPjsgU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPjsg
eGVuLQ0KPiBkZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBTdWJqZWN0OiBSZTogW1BBVENI
IHY2IDE5LzE5XSB4ZW4vY3B1ZnJlcTogQWRhcHQgU0VUL0dFVF9DUFVGUkVRX0NQUEMNCj4geGVu
X3N5c2N0bF9wbV9vcCBmb3IgYW1kLWNwcGMgZHJpdmVyDQo+DQo+IE9uIDExLjA3LjIwMjUgMDU6
NTEsIFBlbm55IFpoZW5nIHdyb3RlOg0KPiA+IEludHJvZHVjZSBoZWxwZXIgc2V0X2FtZF9jcHBj
X3BhcmEoKSBhbmQgZ2V0X2FtZF9jcHBjX3BhcmEoKSB0bw0KPiA+IFNFVC9HRVQgQ1BQQy1yZWxh
dGVkIHBhcmEgZm9yIGFtZC1jcHBjL2FtZC1jcHBjLWVwcCBkcml2ZXIuDQo+ID4NCj4gPiBJbiBn
ZXRfY3B1ZnJlcV9jcHBjKCkvc2V0X2NwdWZyZXFfY3BwYygpLCB3ZSBpbmNsdWRlDQo+ID4gInBy
b2Nlc3Nvcl9wbWluZm9bY3B1aWRdLT5pbml0ICYgWEVOX0NQUENfSU5JVCIgY29uZGl0aW9uIGNo
ZWNrIHRvDQo+ID4gZGVhbCB3aXRoIGNwdWZyZXEgZHJpdmVyIGluIGFtZC1jcHBjLg0KPiA+DQo+
ID4gQWxzbywgYSBuZXcgZmllbGQgInBvbGljeSIgaGFzIGFsc28gYmVlbiBhZGRlZCBpbiAic3Ry
dWN0IHhlbl9nZXRfY3BwY19wYXJhIg0KPiA+IHRvIGRlc2NyaWJlIHBlcmZvcm1hbmNlIHBvbGlj
eSBpbiBhY3RpdmUgbW9kZS4gSXQgZ2V0cyBwcmludGVkIHdpdGgNCj4gPiBvdGhlciBjcHBjIHBh
cmFzLiBNb3ZlIG1hbmlmZXN0IGNvbnN0YW50cyAiWEVOX0NQVUZSRVFfUE9MSUNZX3h4eCIgdG8N
Cj4gPiBwdWJsaWMgaGVhZGVyIHRvIGxldCBpdCBiZSB1c2VkIGluIHVzZXIgc3BhY2UgdG9vbHMu
IEFsc28gYWRkIGEgbmV3DQo+ID4gYW5jaG9yICJYRU5fQ1BVRlJFUV9QT0xJQ1lfeHh4IiBmb3Ig
YXJyYXkgb3ZlcnJ1biBjaGVjay4NCj4NCj4gSWYgb25seSB0aGV5IGluZGVlZCBoYWQgWEVOXyBw
cmVmaXhlcy4NCj4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBQZW5ueSBaaGVuZyA8UGVubnkuWmhlbmdA
YW1kLmNvbT4NCj4gPiAtLS0NCj4gPiB2MSAtPiB2MjoNCj4gPiAtIEdpdmUgdGhlIHZhcmlhYmxl
IGRlc19wZXJmIGFuIGluaXRpYWxpemVyIG9mIDANCj4gPiAtIFVzZSB0aGUgc3RybmNtcCgpcyBk
aXJlY3RseSBpbiB0aGUgaWYoKQ0KPiA+IC0tLQ0KPiA+IHYzIC0+IHY0DQo+ID4gLSByZWZhY3Rv
ciBjb21tZW50cw0KPiA+IC0gcmVtb3ZlIGRvdWJsZSBibGFuayBsaW5lcw0KPiA+IC0gcmVwbGFj
ZSBhbWRfY3BwY19pbl91c2UgZmxhZyB3aXRoIFhFTl9QUk9DRVNTT1JfUE1fQ1BQQw0KPiA+IC0t
LQ0KPiA+IHY0IC0+IHY1Og0KPiA+IC0gYWRkIG5ldyBmaWVsZCAicG9saWN5IiBpbiAic3RydWN0
IHhlbl9jcHBjX3BhcmEiDQo+ID4gLSBhZGQgbmV3IHBlcmZvcm1hbWNlIHBvbGljeSBYRU5fQ1BV
RlJFUV9QT0xJQ1lfQkFMQU5DRQ0KPiA+IC0gZHJvcCBzdHJpbmcgY29tcGFyaXNvbnMgd2l0aCAi
cHJvY2Vzc29yX3BtaW5mb1tjcHVpZF0tPmluaXQgJg0KPiBYRU5fQ1BQQ19JTklUIg0KPiA+IGFu
ZCAiY3B1ZnJlcS5zZXRwb2xpY3kgPT0gTlVMTCINCj4gPiAtIEJsYW5rIGxpbmUgYWhlYWQgb2Yg
dGhlIG1haW4gInJldHVybiIgb2YgYSBmdW5jdGlvbg0KPiA+IC0gcmVmYWN0b3IgY29tbWVudHMs
IGNvbW1pdCBtZXNzYWdlIGFuZCB0aXRsZQ0KPiA+IC0tLQ0KPiA+IHY1IC0+IHY2Og0KPiA+IC0g
cmVtb3ZlIGR1cGxpY2F0ZWQgbWFuaWZlc3QgY29uc3RhbnRzLCBhbmQganVzdCBtb3ZlIGl0IHRv
IHB1YmxpYw0KPiA+IGhlYWRlcg0KPiA+IC0gdXNlICJlbHNlIGlmIiB0byBhdm9pZCBjb25mdXNp
b24gdGhhdCBpdCBsb29rcyBhcyBpZiBib3RoIHBhdGhzDQo+ID4gY291bGQgYmUgdGFrZW4NCj4g
PiAtIGFkZCBjaGVjayBmb3IgbGVnaXRpbWF0ZSBwZXJmIHZhbHVlcw0KPiA+IC0gdXNlICJ1bmtu
b3duIiBpbnN0ZWFkIG9mICJub25lIg0KPiA+IC0gaW50cm9kdWNlICJDUFVGUkVRX1BPTElDWV9F
TkQiIGZvciBhcnJheSBvdmVycnVuIGNoZWNrIGluIHVzZXIgc3BhY2UNCj4gPiB0b29scw0KPiA+
ICsgICAgICAgICAoc2V0X2NwcGMtPm1heGltdW0gPiBkYXRhLT5jYXBzLmhpZ2hlc3RfcGVyZiB8
fA0KPiA+ICsgICAgICAgICAgc2V0X2NwcGMtPm1heGltdW0gPCBkYXRhLT5jYXBzLmxvd2VzdF9u
b25saW5lYXJfcGVyZikgKQ0KPiA+ICsgICAgICAgIHJldHVybiAtRUlOVkFMOw0KPiA+ICsgICAg
LyoNCj4gPiArICAgICAqIE1pbmltdW0gcGVyZm9ybWFuY2UgbWF5IGJlIHNldCB0byBhbnkgcGVy
Zm9ybWFuY2UgdmFsdWUgaW4gdGhlIHJhbmdlDQo+ID4gKyAgICAgKiBbTm9ubGluZWFyIExvd2Vz
dCBQZXJmb3JtYW5jZSwgSGlnaGVzdCBQZXJmb3JtYW5jZV0sIGluY2x1c2l2ZSBidXQgbXVzdA0K
PiA+ICsgICAgICogYmUgc2V0IHRvIGEgdmFsdWUgdGhhdCBpcyBsZXNzIHRoYW4gb3IgZXF1YWwg
dG8gTWF4aW11bSBQZXJmb3JtYW5jZS4NCj4gPiArICAgICAqLw0KPiA+ICsgICAgaWYgKCBzZXRf
Y3BwYy0+c2V0X3BhcmFtcyAmIFhFTl9TWVNDVExfQ1BQQ19TRVRfTUlOSU1VTSAmJg0KPiA+ICsg
ICAgICAgICAoc2V0X2NwcGMtPm1pbmltdW0gPCBkYXRhLT5jYXBzLmxvd2VzdF9ub25saW5lYXJf
cGVyZiB8fA0KPiA+ICsgICAgICAgICAgKHNldF9jcHBjLT5zZXRfcGFyYW1zICYgWEVOX1NZU0NU
TF9DUFBDX1NFVF9NQVhJTVVNICYmDQo+ID4gKyAgICAgICAgICAgc2V0X2NwcGMtPm1pbmltdW0g
PiBzZXRfY3BwYy0+bWF4aW11bSkgfHwNCj4gPiArICAgICAgICAgICghKHNldF9jcHBjLT5zZXRf
cGFyYW1zICYgWEVOX1NZU0NUTF9DUFBDX1NFVF9NQVhJTVVNKSAmJg0KPg0KPiBIbW0sIEkgZmlu
ZCB0aGlzIGNvbmZ1c2luZyB0byByZWFkLCBhbmQgd2FzIGZpcnN0IHRoaW5raW5nIHRoZSAhIHdh
cyB3cm9uZyBoZXJlLiBJbW8NCj4gc3VjaCBpcyBiZXR0ZXIgZXhwcmVzc2VkIHdpdGggdGhlIGNv
bmRpdGlvbmFsIG9wZXJhdG9yOg0KPg0KPg0KPiAgICAgICAgICAgc2V0X2NwcGMtPm1pbmltdW0g
PiAoc2V0X2NwcGMtPnNldF9wYXJhbXMgJg0KPiBYRU5fU1lTQ1RMX0NQUENfU0VUX01BWElNVU0N
Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gc2V0X2NwcGMtPm1heGltdW0NCj4g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogZGF0YS0+cmVxLm1heF9wZXJmKQ0KPg0K
DQpUaHgsIHVuZGVyc3Rvb2QhDQoNCj4gV2hpY2ggYWxzbyBtYWtlcyBpdCBlYXNpZXIgdG8gc3Bv
dCB0aGF0IGhlcmUgeW91IHVzZSBkYXRhLT5yZXEsIHdoZW4gaW4gdGhlDQo+IG1pbmltdW0gY2hl
Y2sgeW91IHVzZSBkYXRhLT5jYXBzLiBXaHkgdGhpcyBkaWZmZXJlbmNlPw0KPg0KDQogbWluaW11
bSBjaGVjayBoYXMgdHdvIGJvdW5kYXJ5IGNoZWNrLA0KbGVmdCBib3VuZGFyeSBjaGVjayBpcyBh
Z2FpbnN0IGRhdGEtPmNhcHMubG93ZXN0X25vbmxpbmVhcl9wZXJmLiBBbmQgcmlnaHQgYm91bmRh
cnkgY2hlY2sgaXMgYWdhaW5zdCBkYXRhLT5yZXEubWF4X3BlcmYuIEFzIGl0IHNoYWxsIG5vdCBv
bmx5IG5vdCBsYXJnZXIgdGhhbiBjYXBzLmhpZ2hlc3RfcGVyZiAsIGJ1dCBhbHNvIHJlcS5tYXhf
cGVyZi4gVGhlIHJlbGF0aW9uIGJldHdlZW4gbWF4X3BlcmYgYW5kIGhpZ2hlc3RfcGVyZiBpcyB2
YWxpZGF0ZWQgaW4gdGhlIG1heGltdW0gY2hlY2suIFNvIGhlcmUsIHdlIGFyZSBvbmx5IGNvbnNp
ZGVyaW5nIG1heF9wZXJmDQoNCj4gSmFuDQo=


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 06:33:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 06:33:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080718.1440928 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umRWO-00022p-4H; Thu, 14 Aug 2025 06:33:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080718.1440928; Thu, 14 Aug 2025 06:33: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 1umRWO-00022i-1h; Thu, 14 Aug 2025 06:33:08 +0000
Received: by outflank-mailman (input) for mailman id 1080718;
 Thu, 14 Aug 2025 06:33:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=1msc=22=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1umRWL-00022Z-KK
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 06:33:06 +0000
Received: from mail-10628.protonmail.ch (mail-10628.protonmail.ch
 [79.135.106.28]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8771b8ae-78d8-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 08:33:03 +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>
X-Inumbo-ID: 8771b8ae-78d8-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1755153181; x=1755412381;
	bh=42Q4wWHkPQsKv2eVkuMATo/QL081Jbv4U8U87Ml4IUk=;
	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=I96pv50Y+Ehj5j7jTUkOAMt3XBaVv8PNc9QFQDl7STZ6LCuanb4EViKJL2D1dPiT8
	 vqtaokrZE7yMHlYLtz43q9y5sYTHw20VGgSBAqq0eJslUUm3E1HyUZiQcl87vONm6m
	 VBfhDxx3akvMOoVG8nrMel/VP6uqGrGwAMWQd4nKIeEshsnu2xdh9QMFANYd7T0nwj
	 ma+KcZhPNVzl7hfK3uTMk/5/1LwJ8tOQ0II7qkgvTtMQ8obM9JkmMitxuHdHAN7Sgc
	 6RLrMirTSJ3JMzUJ4EOu6o7iSi5xT6hEKnndPX8r9eLlLW1KOx1rniojQ8WChYb9zN
	 0DJgY5ilXgVHQ==
Date: Thu, 14 Aug 2025 06:32:55 +0000
To: Jan Beulich <jbeulich@suse.com>
From: dmkhn@proton.me
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 v4 2/8] emul/vuart: introduce framework for UART emulators
Message-ID: <aJ2DExG5Y8AsH78/@kraken>
In-Reply-To: <61aeb2a2-dc53-4f52-ab65-a9a8143a3307@suse.com>
References: <20250731192130.3948419-1-dmukhin@ford.com> <20250731192130.3948419-3-dmukhin@ford.com> <a416cc08-5970-433a-8015-5d2aa961a000@suse.com> <aJeZpiM35gOtB+4Z@starscream> <6953603b-8c3f-4f12-9f5e-45cb553fe8cc@suse.com> <aJqDCJp19/iMIfDq@kraken> <61aeb2a2-dc53-4f52-ab65-a9a8143a3307@suse.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: ff31f4155bde6d96a4f17611156867a4cde65118
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Tue, Aug 12, 2025 at 08:52:18AM +0200, Jan Beulich wrote:
> On 12.08.2025 01:55, dmkhn@proton.me wrote:
> > On Mon, Aug 11, 2025 at 09:34:58AM +0200, Jan Beulich wrote:
> >> On 09.08.2025 20:55, dmkhn@proton.me wrote:
> >>> On Mon, Aug 04, 2025 at 12:11:03PM +0200, Jan Beulich wrote:
> >>>> On 31.07.2025 21:21, dmkhn@proton.me wrote:
> >>>>> @@ -354,6 +355,8 @@ static void cf_check dump_domains(unsigned char=
 key)
> >>>>>                             v->periodic_period / 1000000);
> >>>>>              }
> >>>>>          }
> >>>>> +
> >>>>> +        vuart_dump_state(d);
> >>>>
> >>>> How verbose is this going to get?
> >>>
> >>> Looks something like this:
> >>> ```
> >>> (XEN) [   88.334893] 'q' pressed -> dumping domain info (now =3D 8833=
4828303)
> >>> [..]
> >>> (XEN) [   88.335673] Virtual ns16550 (COM2) I/O port 0x02f8 IRQ#3 own=
er d0
> >>> (XEN) [   88.335681]   RX FIFO size 1024 in_prod 258 in_cons 258 used=
 0
> >>> (XEN) [   88.335689]   TX FIFO size 2048 out_prod 15 out_cons 0 used =
15
> >>> (XEN) [   88.335696]   00 RBR 02 THR 6f DLL 01 DLM 00
> >>> (XEN) [   88.335703]   01 IER 05
> >>> (XEN) [   88.335709]   02 FCR 81 IIR c1
> >>> (XEN) [   88.335715]   03 LCR 13
> >>> (XEN) [   88.335720]   04 MCR 0b
> >>> (XEN) [   88.335726]   05 LSR 60
> >>> (XEN) [   88.335731]   06 MSR b0
> >>> (XEN) [   88.335736]   07 SCR 00
> >>>
> >>> ```
> >>
> >> Definitely too much (for my taste) to put under 'q'.
> >
> > I'll try to limit the number of printed lines; register dump can be mad=
e
> > compact for sure.
>=20
> Yet even then I'm inclined to say that device specific data simply doesn'=
t
> belong here.

Ability to produce such traces was helpful during debug, TBH.

I will hide per-vuart dump_state behind CONFIG_VUART_DUMP_STATE (or alike)
so default config does not enable it.



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 06:34:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 06:34:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080728.1440939 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umRXc-0002Ws-Ed; Thu, 14 Aug 2025 06:34:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080728.1440939; Thu, 14 Aug 2025 06:34: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 1umRXc-0002Wl-BV; Thu, 14 Aug 2025 06:34:24 +0000
Received: by outflank-mailman (input) for mailman id 1080728;
 Thu, 14 Aug 2025 06:34:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xqZt=22=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umRXa-0002Wd-Qw
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 06:34:22 +0000
Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com
 [2a00:1450:4864:20::52c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b673cb0c-78d8-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 08:34:21 +0200 (CEST)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-6188b7949c3so988804a12.3
 for <xen-devel@lists.xenproject.org>; Wed, 13 Aug 2025 23:34:21 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-615cc38aee5sm21586832a12.3.2025.08.13.23.34.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Aug 2025 23:34: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>
X-Inumbo-ID: b673cb0c-78d8-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755153261; x=1755758061; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=HFjpRc2ScKrf6SUBtwnE2lnDFKMHvEEZm2FDZdkBLnc=;
        b=KDW/HaItvBDVDvHNCCPsGQT9t4sylWHb4NDfyiGFvw5vjO04uceyDlnZ29rkbsN2HR
         JbrwguF9ssjdT7rJdkd+olWhIac7O/xcts5s50P6HLqlmM8UlZbAssty2e2EN3TLqP4B
         6nAxc9qjLMagCyZ+WqGf6qVmXXRIuw1GdUW+zpa/GYfvgvmZhTqBxCEcOGZZHb+dtffg
         r0Jyp8COJxcSutFg1KCAP9fuqrZAJoinS9RzkjnPXCsKRxCNhAfIsw8VB3CVVl4PPbBB
         hKNu9/VPzTi3r9L0ONBzFhBjSq9cZKilUCi0JMJ58JI2A3fCQE82dHggLFkLvc2tyd6h
         X8MQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755153261; x=1755758061;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HFjpRc2ScKrf6SUBtwnE2lnDFKMHvEEZm2FDZdkBLnc=;
        b=eS+LC9w/j5nj0DEEzc0eT0ZUYC2Nmnf8Phz7jzejS2QA4iAIeP7YsteieTEVMN6Zcy
         qmHyQfyWHecThjb/eQPxh4Nh77hWLElCYK76dqviiY43fPEA5xZ98pTj0fFcAn1h5fn1
         4z/E06gkTd0ZC+t6yqJbKmnogPSvybm9OjsNJ7CJa3zODEEU1cRtZuis+gj3DLBEseLs
         ai+MZz6dpevjkKFhaIPmgHOc9k2XFuR5GJuqZr43a9Q/FoXwbWqnrGhjFWUycoQ7qdDX
         V11cubhYPgo9hw5cTwtyb1QSoIt7+bcTNZ+YIuX+s9PFqljWVL2D1OI4QtuXHaW0c1lZ
         wdBw==
X-Forwarded-Encrypted: i=1; AJvYcCV91KBTC41sfGlj+3g/z6T4KeNMmQs48GrfqNGg4Xzyo/IWa1bb4xZqIwrnQHIyK97NwviUdeB0x+I=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzAds2Lp4PyzVz7Reh5eLbQ280W0IP/PjRm3pwM/rtcg4o/y1Om
	1aXtE5Jm2Mr83YsCf7UQM1dcH2zcTQjVTtIQeUBKZAZPLXaxhO12fH1tb+cwbsJlxA==
X-Gm-Gg: ASbGncuhlIhKespF2wnW05CPqKoehhIFqx/FQ36v0bCZZHX1CIJ2Fq0YPhiIAy3/t5Q
	gLfMiMRLFWjrGbmlal8kAPtmk6L0fZNXRl6os1LlUo41VgG8uuYpmGOEr7Xpepqi3adOTB/Clpf
	EOLN7g4ng7zGZCOg+YtaMmHk2c7e5T02yR8cVTGzNFZ64Z868C6+jLF0wxgtJ8XgRVcW+jdwlgd
	BoHj2gymRuH3009RzZ5DibCv34uQhOj+8I1/7YAgFOAXdSSzcTI4nHQeVGJ0BpU8D3zDQP/hi1O
	0BysXbjb1vB14sd+5r4HMkU4lARtqcYHs+17zbsJZZB8r8/xAQmy8a6V4jmimLSQag0E1OJX9ux
	dR3SaCCnvlKNqJQTTLww/jZXNxifKuE/Ykw+11BajCaH86eMVOHrhJYyCnc9dIZFEaXl9oKgwZb
	rjEluVCANcwHGGQ+adhA==
X-Google-Smtp-Source: AGHT+IFhquVmSAMzncBz8lQAYAunQ+m+3W14vo87D6cxaSRLcr03ju30Cl/JWe3f9knVHDK6ij2Qbg==
X-Received: by 2002:a05:6402:4402:b0:618:1532:edf2 with SMTP id 4fb4d7f45d1cf-6188b935b2cmr1389138a12.9.1755153261294;
        Wed, 13 Aug 2025 23:34:21 -0700 (PDT)
Message-ID: <136a1af7-5af2-41d8-bca8-f5bfe3ee03d5@suse.com>
Date: Thu, 14 Aug 2025 08:34:19 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] misra: add ASSERT_UNREACHABLE() in default clauses
To: Julien Grall <julien@xen.org>
Cc: 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>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
References: <7cd71ed21383c189fedb3250ddde54a593f7f98b.1754944131.git.dmytro_prokopchuk1@epam.com>
 <59396fd1-ca82-4655-9dcf-ec36e0d51ffc@xen.org>
 <aba2627f-b38d-4d6c-9c5e-4bdc4f5b563f@suse.com>
 <24d8591e-f669-4142-a783-c7cfea87034c@xen.org>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <24d8591e-f669-4142-a783-c7cfea87034c@xen.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.08.2025 00:54, Julien Grall wrote:
> Hi Jan,
> 
> On 12/08/2025 08:32, Jan Beulich wrote:
>> On 11.08.2025 23:21, Julien Grall wrote:
>>> On 11/08/2025 21:30, Dmytro Prokopchuk1 wrote:
>>>> --- a/xen/common/grant_table.c
>>>> +++ b/xen/common/grant_table.c
>>>> @@ -330,9 +330,12 @@ shared_entry_header(struct grant_table *t, grant_ref_t ref)
>>>>            /* Returned values should be independent of speculative execution */
>>>>            block_speculation();
>>>>            return &shared_entry_v2(t, ref).hdr;
>>>> +
>>>> +    default:
>>>> +        ASSERT_UNREACHABLE();
>>>> +        break;
>>>>        }
>>>>    
>>>> -    ASSERT_UNREACHABLE();
>>>   >       block_speculation();>
>>>>        return NULL;
>>>
>>> I know you are trying to apply the MISRA rule. But this is odd that you
>>> move the ASSERT_UNREACHABLE() but then code after is still only
>>> reachable from the default. In fact, this is introducing a risk if
>>> someone decides to add a new case but then forgot to return a value.
>>>
>>> By moving the two other lines, the compiler should be able to throw an
>>> error if you forgot a return.
>>
>> I think we did discuss this pattern in the past. While moving everything up
>> to the "return" into the default: handling will please Eclair / Misra, we'll
>> then end up with no return statement at the end of a non-void function.
>> Beyond being good practice (imo) to have such a "main" return statement,
>> that's actually another rule, just one we apparently didn't accept (15.5).
> 
> Reading 15.5, this seems to be about having a single return in the 
> function. Unless I misunderstood something, this is different from what 
> you suggest.

Sue, the connection is a lose one. What I mean is that adding yet another
return _not_ at the end of the function moves use further away from 15.5
compliance.

> Anyway, my main problem with this change is that ASSERT_UNREACHABLE() is 
> moved. I could possibly settle with:
> 
> default:
>    break;
> }

Which would violate another rule, iirc (demanding that there be more than
just "break").

> ASSERT_UNREACHABLE();
> ...
> 
> But at least to me, this pattern is more difficult to read because I 
> have to look through the switch to understand the patch is only meant ot 
> be used by the "default" case.

+1

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 06:40:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 06:40:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080742.1440949 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umRdC-000497-5N; Thu, 14 Aug 2025 06:40:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080742.1440949; Thu, 14 Aug 2025 06:40:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umRdC-000490-2c; Thu, 14 Aug 2025 06:40:10 +0000
Received: by outflank-mailman (input) for mailman id 1080742;
 Thu, 14 Aug 2025 06:40:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xqZt=22=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umRdA-00048u-Vh
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 06:40:08 +0000
Received: from mail-ed1-x534.google.com (mail-ed1-x534.google.com
 [2a00:1450:4864:20::534])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 84a65f15-78d9-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 08:40:07 +0200 (CEST)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-6188b656f21so675808a12.1
 for <xen-devel@lists.xenproject.org>; Wed, 13 Aug 2025 23:40: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
 a640c23a62f3a-af91a23bedcsm2539279366b.120.2025.08.13.23.40.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Aug 2025 23:40: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>
X-Inumbo-ID: 84a65f15-78d9-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755153607; x=1755758407; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SHDRJqvvTrdBtTQuvivlBPdXEncrA5oFnrfcJFBd19o=;
        b=FrSRvmNIy/6UJ/X0Ae9d/ZP3s4BI9d01AutX9yPBjPv1/rAl49mvncvTA78rr5IkyA
         pcArKDbAwA2Xv+vp//TZOxPkDe0ppkeIpQWoNjXvkZIPQkAmbQKElp/mxCYJMNvBFjeD
         kLt4jmu1yXiz6f0l9aAq1bKkS+5Klg8EfxQXvzHi7uSMpqHAb024XkbooSl3m52yNuh3
         EIpOuDyM89TB/RJWtkDLYAWma1radeU4gYrnDxq9M3KotE0H51vQMSyFBhJ0643TVEOz
         sM408SXLZ9Xtws2TeGnABDY7k58b1xSBYrVo5IPFfw9aXNxexJ2G1PL+e8P7hgDDF+iz
         Q8xw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755153607; x=1755758407;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SHDRJqvvTrdBtTQuvivlBPdXEncrA5oFnrfcJFBd19o=;
        b=v7CcQOF7WYfJ9laUAnapUPdYo05JOzFTncpli+XI3YiTRhHtA1fHVPJR9Vco1OpQcX
         ITf/qEZ2nAcv4tMNvOWD56FsS1aAF47qGGJ2A68qDbH3A/T0oD7JO5lacqgrzw8x2cGy
         wpsz+Q31ggsMtYwjwppddVTuy6WlpsU+Co/c+8/7T0H8Ex24RGtabWgbMHfeYYxZySIo
         SoAR0XmF9QN5H7bSgxnosEjg5gNKzfG+klCpokv5RDC4PSiMTTxBklILuQj5C2V7kQxO
         Uz6Yk9aTRBwE8pbBDHbJZD1MyWvDE8XEhoq+ZB5oDUR/2KV3XG/K/4trQf8Rm2c0al2S
         z6bA==
X-Forwarded-Encrypted: i=1; AJvYcCVNOXn16ZaLjuGweQF4oBejr/0tzWkRaQbIlhaLIVEpCmdw3DQRYciwJmNmP4B7QljvEV8js9QJmp8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YykBwZSrQzoLVXraDLjC65yUXGcAPXHCMBG774vLomJp2tG/lVE
	OPjipkykWOE2bnzplqxMyAW2wYf1pE6YGYzLOXnMJs+pwHPEPrurCZRqM+V72q/vUw==
X-Gm-Gg: ASbGncux6710aaZL0JHPN5Edi5dCeFqABF3uOmgzkd8SdqaA1UgrYj4ctxS6CR8EMhi
	KF5I7OxFsDlF/LtXlkaIA4Z3zmFP09GpWUqRwcnJfT4M5vOrf1dUdSxTNLQgfeNTZv5ZAXSg9Kc
	AHUNs8ETC39EZaLn56A6MUKIXPmY9kAyZ0/4igyzaEyizYFnkr21XJXAkT2XFyoIu90/5pCduyB
	y9fFDsUS5P7lfr2682omj9libvuTsfXELZPVpIw+W+2aNwCYhypSsmlZeeD3gamboon/UM77I3h
	y+VepRqSy1UI6SkTcKTpMwtO6o6p+gQ8BJ+KAv5eCw4nq92EtVP4aeyMzD9icIX7HxNFGmLm0zY
	YszUYii/3VBZlTY51aJH7RFvU4zFLdqwSHxT1RntkOOqjTBbEf6YhHwT2VrCuSps+PD+y5lmcOD
	3rXP209n4=
X-Google-Smtp-Source: AGHT+IE6l+PcNgmF6mDeR/KHUzEwOxaJrISN1ElOCHN2dlA3Qm4zmhzy3MJlXnDV389MV78c2QPj5A==
X-Received: by 2002:a17:906:3b8b:b0:afa:1be7:3136 with SMTP id a640c23a62f3a-afcb996c60bmr122610866b.51.1755153607027;
        Wed, 13 Aug 2025 23:40:07 -0700 (PDT)
Message-ID: <98aa5a7b-5268-41ae-a1d5-25028b0704b6@suse.com>
Date: Thu, 14 Aug 2025 08:40:04 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 19/19] xen/cpufreq: Adapt SET/GET_CPUFREQ_CPPC
 xen_sysctl_pm_op for amd-cppc driver
To: "Penny, Zheng" <penny.zheng@amd.com>
Cc: "Huang, Ray" <Ray.Huang@amd.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 "Orzel, Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20250711035106.2540522-1-Penny.Zheng@amd.com>
 <20250711035106.2540522-20-Penny.Zheng@amd.com>
 <796a9251-8b4f-4266-a31e-828d4da29f54@suse.com>
 <DM4PR12MB845131A7E81BD54B0334E3B2E135A@DM4PR12MB8451.namprd12.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: <DM4PR12MB845131A7E81BD54B0334E3B2E135A@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14.08.2025 05:13, Penny, Zheng wrote:
> [Public]
> 
>> -----Original Message-----
>> From: Jan Beulich <jbeulich@suse.com>
>> Sent: Thursday, July 24, 2025 10:44 PM
>> To: Penny, Zheng <penny.zheng@amd.com>
>> Cc: Huang, Ray <Ray.Huang@amd.com>; Anthony PERARD
>> <anthony.perard@vates.tech>; Andrew Cooper <andrew.cooper3@citrix.com>;
>> Orzel, Michal <Michal.Orzel@amd.com>; Julien Grall <julien@xen.org>; Roger Pau
>> MonnÃ© <roger.pau@citrix.com>; Stefano Stabellini <sstabellini@kernel.org>; xen-
>> devel@lists.xenproject.org
>> Subject: Re: [PATCH v6 19/19] xen/cpufreq: Adapt SET/GET_CPUFREQ_CPPC
>> xen_sysctl_pm_op for amd-cppc driver
>>
>> On 11.07.2025 05:51, Penny Zheng wrote:
>>> Introduce helper set_amd_cppc_para() and get_amd_cppc_para() to
>>> SET/GET CPPC-related para for amd-cppc/amd-cppc-epp driver.
>>>
>>> In get_cpufreq_cppc()/set_cpufreq_cppc(), we include
>>> "processor_pminfo[cpuid]->init & XEN_CPPC_INIT" condition check to
>>> deal with cpufreq driver in amd-cppc.
>>>
>>> Also, a new field "policy" has also been added in "struct xen_get_cppc_para"
>>> to describe performance policy in active mode. It gets printed with
>>> other cppc paras. Move manifest constants "XEN_CPUFREQ_POLICY_xxx" to
>>> public header to let it be used in user space tools. Also add a new
>>> anchor "XEN_CPUFREQ_POLICY_xxx" for array overrun check.
>>
>> If only they indeed had XEN_ prefixes.
>>
>>> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
>>> ---
>>> v1 -> v2:
>>> - Give the variable des_perf an initializer of 0
>>> - Use the strncmp()s directly in the if()
>>> ---
>>> v3 -> v4
>>> - refactor comments
>>> - remove double blank lines
>>> - replace amd_cppc_in_use flag with XEN_PROCESSOR_PM_CPPC
>>> ---
>>> v4 -> v5:
>>> - add new field "policy" in "struct xen_cppc_para"
>>> - add new performamce policy XEN_CPUFREQ_POLICY_BALANCE
>>> - drop string comparisons with "processor_pminfo[cpuid]->init &
>> XEN_CPPC_INIT"
>>> and "cpufreq.setpolicy == NULL"
>>> - Blank line ahead of the main "return" of a function
>>> - refactor comments, commit message and title
>>> ---
>>> v5 -> v6:
>>> - remove duplicated manifest constants, and just move it to public
>>> header
>>> - use "else if" to avoid confusion that it looks as if both paths
>>> could be taken
>>> - add check for legitimate perf values
>>> - use "unknown" instead of "none"
>>> - introduce "CPUFREQ_POLICY_END" for array overrun check in user space
>>> tools
>>> +         (set_cppc->maximum > data->caps.highest_perf ||
>>> +          set_cppc->maximum < data->caps.lowest_nonlinear_perf) )
>>> +        return -EINVAL;
>>> +    /*
>>> +     * Minimum performance may be set to any performance value in the range
>>> +     * [Nonlinear Lowest Performance, Highest Performance], inclusive but must
>>> +     * be set to a value that is less than or equal to Maximum Performance.
>>> +     */
>>> +    if ( set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MINIMUM &&
>>> +         (set_cppc->minimum < data->caps.lowest_nonlinear_perf ||
>>> +          (set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MAXIMUM &&
>>> +           set_cppc->minimum > set_cppc->maximum) ||
>>> +          (!(set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MAXIMUM) &&
>>
>> Hmm, I find this confusing to read, and was first thinking the ! was wrong here. Imo
>> such is better expressed with the conditional operator:
>>
>>
>>           set_cppc->minimum > (set_cppc->set_params &
>> XEN_SYSCTL_CPPC_SET_MAXIMUM
>>                                ? set_cppc->maximum
>>                                : data->req.max_perf)
>>
> 
> Thx, understood!
> 
>> Which also makes it easier to spot that here you use data->req, when in the
>> minimum check you use data->caps. Why this difference?
>>
> 
>  minimum check has two boundary check,
> left boundary check is against data->caps.lowest_nonlinear_perf. And right boundary check is against data->req.max_perf. As it shall not only not larger than caps.highest_perf , but also req.max_perf. The relation between max_perf and highest_perf is validated in the maximum check. So here, we are only considering max_perf

I still don't get why one check is against capabilities (permitted values) why the
other is again what's currently set.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 06:46:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 06:46:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080751.1440959 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umRj8-0004uC-QS; Thu, 14 Aug 2025 06:46:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080751.1440959; Thu, 14 Aug 2025 06: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 1umRj8-0004u5-N1; Thu, 14 Aug 2025 06:46:18 +0000
Received: by outflank-mailman (input) for mailman id 1080751;
 Thu, 14 Aug 2025 06:46:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xqZt=22=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umRj7-0004tz-6N
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 06:46:17 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5f7c32a5-78da-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 08:46:15 +0200 (CEST)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-6188b5b7c72so833353a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 13 Aug 2025 23: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
 4fb4d7f45d1cf-615a9113e40sm23273099a12.57.2025.08.13.23.46.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Aug 2025 23: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>
X-Inumbo-ID: 5f7c32a5-78da-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755153974; x=1755758774; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=D51Dl1Hui5oW/P3mi1h17sLsDXKyeUTd6NjKaNWBmuw=;
        b=QLOfCcdR7415rU6gJMyHxjtRi8a+zfq50rcvW/cY3ospoN4eoQvOfOfA+ZUKSCR9KH
         Wbi0CuOMBvTPhFMnzhIsahIzCir2E6Q31uNNz0y5Ug8+rngd9V8d7Wenf0gjYPDhyQ2d
         guEykSJKoKnXbap1Z458wZfVskOjshTPQzcm8tCqQtLjWE19CnWloV2BYu5V4eZ37DFH
         650s8ZNqSLJuDY3aAqUEJf2L4ldRTPl0yK8T+5HI5EYtqebF3xCqVtJ1TeCwDBghiOQq
         nLerssnGiLWaZok9C5qsaKIN5oIsHYKN8Gb2e2CPY54R3oj6vrwyzuLJoY7VXejeTVKV
         w5xw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755153974; x=1755758774;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=D51Dl1Hui5oW/P3mi1h17sLsDXKyeUTd6NjKaNWBmuw=;
        b=lGtKgqpnR40yaWWWW6frNBXJD3LOPLFnD52SRsUCExGyIdA1BR5ZDu+zemMI1TnXWR
         e680YuS4pkSMCVzHsqjWZpH/rAMfxHJOLGcyFfTBw756LtIz300vdwNtMU3pCAcyXTWI
         73ETA6EErex18F5KBXNy4LPzDuGOsgIMG0PTS+m6eH7dEW2/7KDxj7GRT4vS4BQ1elPQ
         1Vh7L3JTbFFZTy7Hz5Yw0+Hsu4OWmQDMjFSef1TJP/WoeetWa1unSMYLEv4K6m6n3wpR
         zZzH01RKG/ay4O5a1S8+bFBQmURWP4t7/qT4wxQcUtNuec1UVHbIGbBvzFEtk/IAGgQ7
         IojQ==
X-Forwarded-Encrypted: i=1; AJvYcCXwHBAX3qA10lsrJyCMbAqtt/Am8HOlK+tkJ3YdxFutCjdFW4fN2SYLe3V7OhB0F9rt2qTOepdVYN8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxVoGYqM13/tv0MsBq0LeeV0oYn0JRLz9z7NOz3uU3osjZBIYW5
	zFov1/QHmA2fbrEB8ZA+0/V2u38J/qEaYE7tpgSA7jz5x1AduOOcoxAaJIMdYVMw+A==
X-Gm-Gg: ASbGncuidHvMzUQGAm+l9HuJuj25Sz173MBLaSiO80BDeuNnxxflZ/pxPBAvQEMXeFj
	YvuP3EXBAMOO61MHWYzKYwgANdR398WOrfSjr5HC4bXHxbFnF9qHdQZf0G7E4mzhA7/idDRZReR
	6WpKKAU7FHvyJIBJmsOgWCRu51S5wcrbo+fJy2h0gceFF+wEp5Yvl/mlfHo91JJx7xz9fZ17jm7
	twIyturyMRSpRZgv9YemtMe4rG02bFSpnsu+Nx3B+rnoYeSgeJETDiSuYEK1A89ytvBscEP5DIX
	e+nAi4eUF765lrpZu+IePZrPe1dmXfsAL1R3leibtlRaGAAMKR84JvExQ9xYOKZcNM2KbMSXy0k
	NyMFTHQ6RT+aeRXj9HJqd7I8V5lzLROn/wuSIKOM6KAlcwlB5VGL1I2eVdKMiULLMTdmz+57cyu
	v51dBdyAjlIPC6mPahMQ==
X-Google-Smtp-Source: AGHT+IHQ6/LxzRf/tS+ri4Jz39XxuAbsZkqhvwrm+bDr2KCbQKGASWXl7SEj7RTIOC/9rMz5t9l30Q==
X-Received: by 2002:a05:6402:274d:b0:618:2733:1a52 with SMTP id 4fb4d7f45d1cf-6188b9a43f1mr1467986a12.8.1755153974363;
        Wed, 13 Aug 2025 23:46:14 -0700 (PDT)
Message-ID: <2d93e9a7-abef-4ef6-bcbc-9081661edb58@suse.com>
Date: Thu, 14 Aug 2025 08:46:12 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] EFI/runtime: switch to xv[mz]alloc_array()
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Cc: Marek Marczykowski <marmarek@invisiblethingslab.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <41b7e14c-59ef-40f5-8c43-69bdc5fb4531@suse.com>
 <761b584a-51fb-403d-948e-3366501cea50@apertussolutions.com>
 <755dd957-514b-4316-82f5-3619c19cbb15@suse.com>
 <9f9f24f0-c16a-4f55-b3c2-a3f4b485c403@apertussolutions.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: <9f9f24f0-c16a-4f55-b3c2-a3f4b485c403@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.08.2025 02:29, Daniel P. Smith wrote:
> On 8/12/25 02:12, Jan Beulich wrote:
>> On 12.08.2025 02:19, Daniel P. Smith wrote:
>>> On 7/23/25 09:39, Jan Beulich wrote:
>>>> Use the more "modern" form, thus doing away with effectively open-coding
>>>> xmalloc_array() at the same time. While there is a difference in
>>>> generated code, as xmalloc_bytes() forces SMP_CACHE_BYTES alignment, if
>>>> code really cared about such higher than default alignment, it should
>>>> request so explicitly.
>>>
>>> While I don't object to the change itself, I think this description is a
>>> bit over simplification of the change. If the allocation is under
>>> PAGE_SIZE, then they are equivalent, but if it is over the page size
>>> there are a few more differences than just cache alignment. It
>>> completely changes the underlying allocator. I personally also find it a
>>> bit of a stretch to call xmalloc_bytes(size) an open coded version of
>>> xmalloc_array(char, size).
>>
>> My take is that xmalloc_bytes() should never have existed. Hence why I
>> didn't add xzmalloc_bytes() when introducing that family of interfaces.
> 
> Right, which would be a valid argument for replacing it with 
> xmalloc_array(). Though, I would note that there is an xzalloc_bytes(). 
> My concern was that you stated there was an open coding, which had me 
> expecting there was a line of the form, xmanlloc_bytes(count * 
> size_of_something bigger), being replaced by 
> xvmalloc_arryay(something_bigger, count).

Both fir this and ...

> IMHO, while the C spec does specify char as 1 byte and thus 
> interchangeable, I would agree that from a contextual perspective, 
> xmalloc_array() is the more appropriate call. The use of the allocation 
> is a character array and not a chunk of bytes for an arbitrary buffer.

... for this: Hence my wording using "effectively".

>>> With a stronger description of the change,
>>
>> So what exactly do you mean by "stronger"? I can add that in the unlikely
>> event that one of the allocations is (near) PAGE_SIZE or larger, we now
>> wouldn't require contiguous memory anymore. Yet based on your comment at
>> the top I'm not quite sure if that's what you're after and/or enough to
>> satisfy your request.
> 
> The phrasing stronger was meant to be more clear on the change/effect, 
> specifically that the underlying allocator is being changed when the 
> allocation is greater than a PAGE_SIZE. Not necessarily a long 
> explanation, just the fact that the allocation will be coming from the 
> dom heap allocator as opposed to the xen heap allocator. There are 
> implications to changing the allocater, e.g.,  at a minimum the 
> allocation order and nonphysical vs. physically contiguous effects. 
> Having it noted in the commit makes it more obvious what this change is 
> actually doing. Which may not be obvious when seeing the simple line 
> changes occurring in the diff. Later, if there is an unexpected 
> consequence caused by this change, a stronger commit will be helpful 
> with the bisection investigations.

First: I don't think each and every such change (there are going to be many)
should re-explain the switch to the xvmalloc() family of functions. This is
already stated clearly at the top of xvmalloc.h: Over time, the entire code
base is meant to be switched.

Beyond that, to achieve the stronger wording you're after, would it perhaps
suffice to have the first sentence say "..., thus also doing away ..."?
Otherwise, may I ask that you please make a more concrete suggestion?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 06:55:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 06:55:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080760.1440969 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umRrl-0006aZ-Lu; Thu, 14 Aug 2025 06:55:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080760.1440969; Thu, 14 Aug 2025 06:55: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 1umRrl-0006aS-ID; Thu, 14 Aug 2025 06:55:13 +0000
Received: by outflank-mailman (input) for mailman id 1080760;
 Thu, 14 Aug 2025 06:55:12 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xqZt=22=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umRrk-0006aL-H1
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 06:55:12 +0000
Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com
 [2a00:1450:4864:20::52d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9eae632c-78db-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 08:55:10 +0200 (CEST)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-6188b6548adso1130496a12.1
 for <xen-devel@lists.xenproject.org>; Wed, 13 Aug 2025 23:55: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
 4fb4d7f45d1cf-618200a0159sm7596088a12.6.2025.08.13.23.55.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 13 Aug 2025 23:55: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>
X-Inumbo-ID: 9eae632c-78db-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755154510; x=1755759310; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4qXG+bIbgMiOJBFJxeVw/3rcYc8u/FkUq2D1f9zpciI=;
        b=JXRNOFcFh3qSONe/9a+f9bU+kODwxYSJLJS3NMpqfIgrhzRob4XTPrzsPVRkZ3Z3Lb
         yig9C1eJ6iJk9mKg4BcvDTxUwDE1pqlfE0WnpgLj+H2IF7ZWDI/t3ep/PO2qMdCcoIpC
         kJNa72Y+MNCLpx20adsqIne7ED7XF6r7or880rKHH/XSTMW6/odx4gNu6f0WaisJBY84
         n0wM9Zuxpnl9ruII2AqMm3cynIaKlGPh1oYFSi1/vnHlH7hHNtfNJanOIv4IcKCRg4IB
         Vn1i2EGrjNQWPqvkV44LSNedOuWWVB91jMlGxS5vO5ouYJFlscVxuXY1r+DdS3MUo0Uh
         MO6A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755154510; x=1755759310;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4qXG+bIbgMiOJBFJxeVw/3rcYc8u/FkUq2D1f9zpciI=;
        b=mAaUUMtynTFb0rYDNjliRCnPGL4KDNFNzwi1s8QxMqO5lMChQl4G75e922ScM1SsO5
         U32EnuicMRiZ430Ya9alzM2fCMWi4/h+5ifcsKS0wlxKxEN+Q8kC0USDsskigKAOvt/Z
         fikOzOStwkGMEvVCwz74DdTaEGaylLMpdSHLWMeAdzBua17tPowP0CSz1oCQUxm3gZYn
         aRW7MAwfFT9T+JJMD+xf/ikkycL/O9+ZklqTr6s8bqKozEMSIfuGDpbF5KAN7W+4EBQI
         1uC9VXp8e2v7+4gaw3dsWQQgle0R9VX+WIDz//5EQi5jpZq4FHx5i2+tZjkIwRiBvSfe
         e02Q==
X-Forwarded-Encrypted: i=1; AJvYcCUvS4BFz5QixLoRT8heUAzxYoxjB7rrBEUHN+1LU4nkwjg35OYMPtxqeKONjrFs1Aap7Zu44ZeTLx0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw3mrTT01ch6TOIPXhJaLfVx42N/JFF4nxkAet1MiK+I9zwA9HC
	ofompq6gXOb8W+w/qnszOFjFy2UiXj63/Cp1u/03x/NTTZ9+5bCymfQUR1nGJ0CERA==
X-Gm-Gg: ASbGncvlr+63cltwGKmGgqjFQYNCUsm6YOC9AEk+PxsThQhC1mW7hvm55Eh33oY+GDA
	mkJFcnjp1lblUDiGC/hvxvmSfIof/jpKlf3U2+BRReVFE7w7TtzOPHKixyKIaaL/57ZPmtXh463
	SPZwJKCA5DTYnj2K/mn1PiX3Lp4eJbnk3zoxkghKof5j3d4nWjg24SfoAwgiRk9135dFNNSBokX
	9wBz1K0l5cIVd1ywSmQNe2OrhTvdkeJ2iFVop4bfPIR0AkyUO13M/LGmNQnyrsLrlcGV3Uu7yBy
	z56rfhHb0fhekgVCJyOT82zC4xkhLfy+WGkvECmS35d4PM7ygdARPN8/5co00nuk7rAvskDMbeO
	e0XzZjByv5fDoJhdB7k3nAa82CNya+tfw7BHkgInGccwCUQFWLXqjwiaupo4WKsantbDYKXRYGz
	eqUbcRFYQi+5NAKq29Uw==
X-Google-Smtp-Source: AGHT+IEXYdI1phRO3EGwPKyO6oMR88V7KMDHVaLkVvF5pLKcpSdwuh60P6MV9XUL6wrobDFX3R6WWQ==
X-Received: by 2002:a05:6402:3596:b0:617:cd9d:e2a4 with SMTP id 4fb4d7f45d1cf-6188b934575mr1478509a12.2.1755154509723;
        Wed, 13 Aug 2025 23:55:09 -0700 (PDT)
Message-ID: <1b96f2f3-55a2-4b33-84b1-a7c18d38d10c@suse.com>
Date: Thu, 14 Aug 2025 08:55:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Consider changing CONFIG_ACPI default on ARM?
To: Elliott Mitchell <ehem+xen@m5p.com>
Cc: xen-users@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>,
 Paul Leiber <paul@onlineschubla.de>
References: <CAO_48GG1Tg0d3ATnNAYNr0cg7Ty_zsnzT29=dpkk99DxyTWcmg@mail.gmail.com>
 <fceb5df8-d628-479d-acb3-d1d26409fbac@onlineschubla.de>
 <aJLae1Nl0pyOZgyh@mattapan.m5p.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: <aJLae1Nl0pyOZgyh@mattapan.m5p.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.08.2025 06:30, Elliott Mitchell wrote:
> On Tue, Jul 01, 2025 at 10:01:13PM +0200, Paul Leiber wrote:
>>
>> Unfortunately, I don't have a direct answer to the question (as is so often
>> the case, due to my limited knowledge and experience). However, I am
>> successfully running Xen on a RPi 4 (mostly, except for some VLAN related
>> networking issues).
>>
>> I used instructions in [1] to install vanilla Debian on the RPi, including
>> UEFI boot and grub. I then compiled Xen with expert options and ACPI
>> enabled.
>>
>> I don't know if there are better solutions. For example, I suffer from the
>> fact that I2C doesn't work when using UEFI boot on a RPi. Nowadays, Debian
>> provides their own vanilla Debian images for RPi and with working I2C, but
>> these images are using a different boot method that I didn't know how to use
>> with Xen.  So far, the procedure described above seems to be the easiest
>> solution for me.
> 
> 
>> [1] https://forums.raspberrypi.com/viewtopic.php?t=282839
>>
>> Am 30.06.2025 um 12:35 schrieb Sumit Semwal:
>>>
>>> I've just begun to experiment with the Raspberry Pi 5, trying to run a
>>> simple xen + Dom0 setup, using uBoot, and the bookworm based Rpi
>>> distro.
>>>
>>> I've tried combinations of the following setup:
>>>
>>> 1. prebuilt Rpi5 kernel + dtbs, and have also tried to build them from
>>> source [1]
>>> 2. Xen from upstream [2] and xen-troops [3]
>>> 3. upstream uBoot from [4]
>>>
>>> but with the same result: [short log below; I can provide a fuller log
>>> if needed]
>>>
>>> (XEN) DT: ** translation for device /axi/msi-controller@1000130000 **
>>> (XEN) DT: bus is default (na=2, ns=2) on /axi
>>> (XEN) DT: translating address:<3> 000000ff<3> fffff000<3>
>>> (XEN) DT: parent bus is default (na=2, ns=1) on /
>>> (XEN) DT: walking ranges...
>>> (XEN) DT: default map, cp=0, s=1000000000, da=fffffff000
>>> (XEN) DT: default map, cp=1000000000, s=100000000, da=fffffff000
>>> (XEN) DT: default map, cp=1400000000, s=400000000, da=fffffff000
>>> (XEN) DT: default map, cp=1800000000, s=400000000, da=fffffff000
>>> (XEN) DT: default map, cp=1c00000000, s=400000000, da=fffffff000
>>> (XEN) DT: not found !
>>> (XEN) Unable to retrieve address 1 for /axi/msi-controller@1000130000
>>> (XEN) Device tree generation failed (-22).
>>> (XEN) debugtrace_dump() global buffer starting
>>> 1 cpupool_create(pool=0,sched=6)
>>> 2 Created cpupool 0 with scheduler SMP Credit Scheduler rev2 (credit2)
>>> 3 cpupool_add_domain(dom=0,pool=0) n_dom 1 rc 0
>>> (XEN) wrap: 0
>>> (XEN) debugtrace_dump() global buffer finished
>>> (XEN)
>>> (XEN) ****************************************
>>> (XEN) Panic on CPU 0:
>>> (XEN) Could not set up DOM0 guest OS (rc = -22)
>>> (XEN) ****************************************
>>>
>>>
>>> I'm certain I'm missing something, but before I delve deeper, I just
>>> wanted to ask if this is a known issue, and if so, are there any
>>> workarounds or solutions available for this?
>>>
>>> Any help about this is highly appreciated!
>>>
>>> Thanks and Best regards,
>>> Sumit.
>>>
>>> [1]:  https://github.com/raspberrypi/linux rpi-6.12.y branch
>>> [2]: git://xenbits.xen.org/xen.git - main branch
>>> [3] xen-troops https://github.com/xen-troops/xen - rpi5_dev branch
>>> [4]: https://github.com/u-boot/u-boot.git master branch
> 
> Ultimately Debian is choosing to leave most defaults alone.  So far the
> Xen developers have left CONFIG_ACPI defaulting to off on ARM*.  The
> Debian project doesn't have paid people to support Raspberry PI hardware,
> despite being rather common.  As a result there aren't any official
> Raspberry PI images, but people associated with Tianocore have gotten
> generic images to boot on Raspberry PI hardware.
> 
> I'm unsure of the likelihood of getting the Debian maintainers to
> override the default.  Yet due being by far the simplest way to install
> Debian and Xen on a very common ARM64 platform, perhaps the Xen
> developers should consider changing?

In an open source project everyone is a developer. There is a
significant amount of work someone needs to pick up to change this
SUPPORT.md entry:

### Host ACPI (via Domain 0)

    Status, x86 PV: Supported
    Status, ARM: Experimental

Parties interested in changing the support status of any component are the
primary candidates to actually carry out the necessary work.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 07:02:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 07:02:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080815.1440994 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umRyz-000184-Pc; Thu, 14 Aug 2025 07:02:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080815.1440994; Thu, 14 Aug 2025 07:02:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umRyz-00017x-N3; Thu, 14 Aug 2025 07:02:41 +0000
Received: by outflank-mailman (input) for mailman id 1080815;
 Thu, 14 Aug 2025 07:02:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xqZt=22=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umRyy-00017q-IG
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 07:02:40 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a9b83c7d-78dc-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 09:02:38 +0200 (CEST)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-6188b6548adso1140086a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 00:02: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
 4fb4d7f45d1cf-6178b074a38sm15106320a12.32.2025.08.14.00.02.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 00:02: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>
X-Inumbo-ID: a9b83c7d-78dc-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755154958; x=1755759758; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=3lv3T5HNPgiLT9IcKhsojimiDCgnEUq7jA3psdpdsTA=;
        b=Q5Oosqu9UBau0odPwxsMxx16MMPO+v0S0M04Mcx09O+STtk8CMV59kgEX+wPKyoGln
         c9T2nJ04vvaMQzGmb8oGllhcjLDAd0lc9mrveOAjMh6xD1bfJ3j4ElEPiTQJ18Jj+v+4
         /HPVrER+mVtqCi40rgwdnbEq3tABmbfqarxeH0fUinj1dNECaMc9MYinBO0o1FTol1dn
         IqKyHzZ2W6MaPqz32gIIEnzPsMKahp/BWm1U+0OGKE/YbCc8SBBIJL4z2tE5vjwWOcig
         EF/f0huxgyEkVxVCAYyDAV1F3YOaHFcviVKR7omYiEcEdeXS9nf7MGmEb95JuQbcvTNj
         qUEA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755154958; x=1755759758;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3lv3T5HNPgiLT9IcKhsojimiDCgnEUq7jA3psdpdsTA=;
        b=RD39z9JCjDm2M+mRbm4XGLZUcKGwLYST9peuM2ZRzHG80Q9eq8Qu+lWdLbxm1DsUJy
         ISbHjx8otfm72VgCRG5dz/caNfXTWfbwBsWh1QEVOMBsUjgv+oR6MrriHXZT6lirywPC
         Cy9p3nw7l2oePyXwIWCZCQBNLIkpnQKjWF44Ab1tkmqEg9YIxdQM2WO4sttQB+W7lz2C
         DIvEaxUCerqJgutAmKZ9zgoZGEqExS1UqtTAh5Sx9L4c8GElGzcUt1uizLvNAkTrA2ry
         BEaId7YysyeuK3tyFc48uCJzzEBm1ktr9wMUUD+siwsciakATAAMD0LCHRkwLeSuONTa
         kHWg==
X-Gm-Message-State: AOJu0YxWmjf5cdoZOG0nSs4gbezYG6lK20veMCSXwB+LoW1AAHGeuY9p
	hT90eTGd1W7dTU2ZGLu6eK1lNfZqqqRqvu5169L/TroNJ64Mup4xD+/PtDqlSGu/9A==
X-Gm-Gg: ASbGncuREo5DvxnphfLVPhQbZziXutTarYvYFsMI21D0G/4cq+UAVKlThEKwrYp+742
	i4U7Cve5zKV+txGV5dX9PbFr8Qtmg5jcrWsMeJmaayIVxkp32ja66sekKeBzYfWtcYxDB4wNir1
	kGfvgQaw7XPyvQ8nJswHE/keHNUfXo0u4RyeDDNK8/fqQcHcXn97zruPLkQup3RHub2lMjBIrGv
	P7hBOSxzc37FHq3k6JFIkd8bzs2qPOzZSbAwyWtyM8fFr8ZXRpwkz6+o250FBQKVlBcrR67C7fI
	1M2a0MqGsVp4kboMA6HZyPWJqa7NyEJnLTTZiyQvF+p6EohZmPOPwxBryQd9O/fFSSXDRCraeR2
	t+JDLGN6GtI9cV0CGCm/tMYYvvumwTUb0hfvfM4enGAqoHTwt7rAmecdOIIlHDWXI78O0nX4VCi
	QdO2RDKps=
X-Google-Smtp-Source: AGHT+IHNzH4RUMSnmMAZxLRJGY/4+VTgSe2jLal1EnlwtQKyDarCXCf6HSp8pdcLe71PJzfFGZI9bA==
X-Received: by 2002:a05:6402:3507:b0:615:78c6:7b18 with SMTP id 4fb4d7f45d1cf-6188c1f5cadmr1468307a12.23.1755154957884;
        Thu, 14 Aug 2025 00:02:37 -0700 (PDT)
Message-ID: <38430fbf-a6e4-4ba9-bbff-2279108721e6@suse.com>
Date: Thu, 14 Aug 2025 09:02:35 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/2] x86/mkelf32: pad load segment to 2Mb boundary
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: <ddfd86ad-19b3-495b-930c-1770dd92fa99@suse.com>
 <6e295921-0432-435e-9efe-51caa106f203@suse.com>
 <aJtpXOM2AERnOCrH@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: <aJtpXOM2AERnOCrH@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12.08.2025 18:18, Roger Pau MonnÃ© wrote:
> On Mon, Aug 11, 2025 at 12:49:57PM +0200, Jan Beulich wrote:
>> @@ -339,9 +340,12 @@ int main(int argc, char **argv)
>>      (void)lseek(infd, in64_phdr.p_offset, SEEK_SET);
>>      dat_siz = (uint32_t)in64_phdr.p_filesz;
>>  
>> -    /* Do not use p_memsz: it does not include BSS alignment padding. */
>> -    /*mem_siz = (uint32_t)in64_phdr.p_memsz;*/
>> -    mem_siz = (uint32_t)(final_exec_addr - in64_phdr.p_vaddr);
>> +    /*
>> +     * We don't pad .bss in the linker script, but during early boot we map
>> +     * the Xen image using 2M pages.  To avoid running into adjacent non-RAM
>> +     * regions, pad the segment to the next 2M boundary.
> 
> Won't it be easier to pad in the linker script?  We could still have
> __bss_end before the padding, so that initialization isn't done to the
> extra padding area.  Otherwise it would be helpful to mention why the
> padding must be done here (opposed to being done in the linker
> script).

The way the linker script currently is written doesn't lend itself to do
the padding there: It would either mean to introduce an artificial
padding section (which I'd dislike), or it would result in _end[] and
__2M_rwdata_end[] also moving, which pretty clearly we don't want. Maybe
there are other options that I simply don't see.

A further complication would be xen.efi's .reloc, which we don't want to
needlessly move either. That may be coverable by pr-processor
conditionals, but I wanted to mention the aspect nevertheless.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 07:05:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 07:05:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080823.1441005 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umS1H-0001eC-3n; Thu, 14 Aug 2025 07:05:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080823.1441005; Thu, 14 Aug 2025 07: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 1umS1H-0001e5-13; Thu, 14 Aug 2025 07:05:03 +0000
Received: by outflank-mailman (input) for mailman id 1080823;
 Thu, 14 Aug 2025 07:05:01 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xqZt=22=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umS1F-0001du-JR
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 07:05:01 +0000
Received: from mail-ed1-x535.google.com (mail-ed1-x535.google.com
 [2a00:1450:4864:20::535])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fe674e97-78dc-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 09:05:00 +0200 (CEST)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-6188b5ad4f0so879202a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 00:05:00 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-615a8fe7995sm22632601a12.36.2025.08.14.00.04.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 00:04: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>
X-Inumbo-ID: fe674e97-78dc-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755155100; x=1755759900; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=IfqcScLHgxuY2Zi+5prkCmWDnGGxsY4YG2ECvTGJSdM=;
        b=AQCV26nEps/VKRCukm7D5asQmCV/JrOlo2vSb1J01ZDVrXSTsJtTqQ2uq2GxQVHysP
         ivBn1B3Rn3ykmQ8vvnm8Btslok50UKKPtN7Y4lrs4S7XCDcSpn9NPRitvakVq7vAyKpM
         J9bD2l7JElA0AMY/ySt5wBziYB34KqUcoRAhVXa7sebBWZCubFLcE6SwKflu/f8ZEqIE
         iZGKyqcZQf1vykVjxux0Y9LYoKuzZ+nZ3L9LubmKcIRdTsGS8akOm35Flh4384Y7cToG
         qOphMkRPZGV4dF9pNB1rh9bkWg7yHXKtrnx58vpbz8DGEVDS5LbTV5k1o7XJVZ8E6eaC
         Tsjg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755155100; x=1755759900;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=IfqcScLHgxuY2Zi+5prkCmWDnGGxsY4YG2ECvTGJSdM=;
        b=H9Zprxe/pv0ve9Kphe/eWafUc+5t537CHDyMWUcDEjRzHV/WD8AiE9p5VpJP4Ujpjq
         ipVZJkw0Ro9RpZbLK8bxDFrzV3eNdIPWwW4Bq+VAzrrxJJGl3OcWCjHgd2kZMk4jSAmt
         FYQMUF6sEKFcxxzXKAhctpTuEl6NrVClxCL2KxCcgmQGHH2cinun5LJYNVJTpgtXcm0o
         tq0Wkh/RbiXXFjRUUnVehVBbCUUmmxllxJfzOdPd+azpW+NsgCaq7/90mnQXhVxxKYoj
         wzlQa7LG2/udJCcneEZnYoOVozEMy7mkqoodPk8FhTeoeitIOME1yL/8wdrQRhen5IfK
         oGZQ==
X-Gm-Message-State: AOJu0YxaN1H7SB58/unO+Qa0KlMAmh1IYCpmXWkMPdL7p+yk/YXsVF79
	ARNpqqNQwkQJLQpDwnP0O3W/znevvBf9YillqbYMwaQbNbzDIr8uI0Q0f/cavFMrLw==
X-Gm-Gg: ASbGncse+HEckBRXkH5c85B2eQp1/Xw4NEz8VNKnyTHgLIlKDMqfGozEM0/zAV3h0sG
	GgtUgW9D95HByMht8ZQNb4HPznRFwWSHIRqbl1f0TcImh8MrvJKTQ28FtyCUCJxwAm1RK8+/nUs
	b2PLJTAF1vq4bBzrjm5xXmsujRSUUzS7dfAfXo4xFKCAgqbsOiFZfbDWEsv0QvHyq049j5QyaJI
	pDM3UTM5hRc7uLMbPzRsnUMo4TX3Jk1HTec4AGqi1OdU10DVC5mWvgLpOK8jyxAFFj2DfZDIjHB
	Nd4bAjDAdthpV8q12NyMm6IOdxC12iwDvzHTt1fTjuA7aoSYvTUrGxHNZSoU1SuTrVLq96JHJs2
	Mq4RBWIBlD6U7GUmUeLL7s5zG8QhDb+U0lcDhS0zz5rv3LKTZPVUzwjDbp0f09dV0AQxaiUvi9r
	hGerhjFlNYHkNmPtycuQ==
X-Google-Smtp-Source: AGHT+IEsBTzjyNzOyinqNOg9TyQ5fpOH1TglryLnYWFLGw4zexSr7fjPQD+JlKZan0Syp99elAUEgw==
X-Received: by 2002:a05:6402:a0d1:b0:618:3521:6866 with SMTP id 4fb4d7f45d1cf-6188b9a65d6mr1620746a12.15.1755155100028;
        Thu, 14 Aug 2025 00:05:00 -0700 (PDT)
Message-ID: <2fdde11b-4830-41e7-b099-225447435efb@suse.com>
Date: Thu, 14 Aug 2025 09:04:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/2] x86/mm: drop unmapping from marking-as-I/O in
 arch_init_memory()
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: <ddfd86ad-19b3-495b-930c-1770dd92fa99@suse.com>
 <5a862787-40d8-4c9f-bd89-01d866648120@suse.com>
 <aJtsIxI4y-UspLKg@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: <aJtsIxI4y-UspLKg@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12.08.2025 18:30, Roger Pau MonnÃ© wrote:
> On Mon, Aug 11, 2025 at 12:50:23PM +0200, Jan Beulich wrote:
>> The unmapping part would have wanted to cover UNUSABLE regions as well,
>> and it would now have been necessary for space outside the low 16Mb
>> (wherever Xen is placed). However, with everything up to the next 2Mb
>> boundary now properly backed by RAM, we don't need to unmap anything
>> anymore: Space up to __2M_rwdata_end[] is properly reserved, whereas
>> space past that mark (up to the next 2Mb boundary) is ordinary RAM.
> 
> Oh, I see, so this was done to unmap trailing space when the Xen image
> region is mapped using 2M pages.
> 
>> While there, limit the scopes of involved variables.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> Acked-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

Thanks.

>> @@ -292,12 +290,17 @@ void __init arch_init_memory(void)
>>       * case the low 1MB.
>>       */
>>      BUG_ON(pvh_boot && trampoline_phys != 0x1000);
>> -    for ( i = 0; i < 0x100; i++ )
>> +    for ( unsigned int i = 0; i < MB(1) >> PAGE_SHIFT; i++ )
> 
> I would use PFN_DOWN() rather than the shift, but that's just my
> preference.

Oh, yes, fine with me.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 07:05:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 07:05:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080830.1441015 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umS1m-00026u-C0; Thu, 14 Aug 2025 07:05:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080830.1441015; Thu, 14 Aug 2025 07:05:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umS1m-00026n-96; Thu, 14 Aug 2025 07:05:34 +0000
Received: by outflank-mailman (input) for mailman id 1080830;
 Thu, 14 Aug 2025 07:05:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Ep8Y=22=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1umS1k-0001du-NZ
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 07:05:32 +0000
Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com
 [2a00:1450:4864:20::633])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 112f93e7-78dd-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 09:05:32 +0200 (CEST)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-afcb73394b4so94652466b.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 00:05:32 -0700 (PDT)
Received: from ?IPV6:2003:e5:8707:1600:914:c962:d2a8:524e?
 (p200300e5870716000914c962d2a8524e.dip0.t-ipconnect.de.
 [2003:e5:8707:1600:914:c962:d2a8:524e])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af99518bfedsm1564401766b.105.2025.08.14.00.05.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 00:05: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>
X-Inumbo-ID: 112f93e7-78dd-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755155131; x=1755759931; 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=eWddV2EZ2/YGe5+QEST1UDhAfqoCs+GBJ+Dkkq+nLYQ=;
        b=IoGWIDINFbvatK1G5iBlFqqob49zB70Fr24eb38JNbd3nL3R3WSeOdQ0cvxuxy6y8p
         p7N6ppf/ldcXkBc1GDXXL6OCYWOx1h/ge1Sy8t4qbgv/DfXyJqlraZ1NPoOuVb5UjYGV
         VZgHtGtkRtbE5m71b4n6f25d/EXcEWY4soWIQu23Hz1tMIzKXYyyKro2WBXtS8jGcpQO
         nXrcVM25Fl7Bb0f0/Q7LaDKP3D8JZ7jVCMb1KOMERLN8zyK0d6O32jdJdNH3+Z6ACKq9
         SNVxwVbh+0RxdzWQ76aUSjTdf2ti94Bvr4N7dyBoWQVuI2HD1Zph8ftmRQ4Kedf8pbcO
         11pQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755155131; x=1755759931;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=eWddV2EZ2/YGe5+QEST1UDhAfqoCs+GBJ+Dkkq+nLYQ=;
        b=tMtBm3R1ocDM1d6ztT93io/BkopVnTWp3VNLllVzFSNRz+1PlBWRqGRC/+rWLijX1h
         tTvDznQ3kJQYKPXvVOswUbPgK77kpqI0hDdrLwBKiOa58JMcYJxAFeP3Z8088I1PJBXl
         K8roVgjiGMtH/A+A9Lvj3i3x3cai6llB47XlKd6xwlfI18rf4qW7SiMmVxIlRcmv/0dO
         8hkFGlByGEtJlhWmgXICddPdhF8l5Z6TLFz4+jPpPqtCUyk+dJpNPZU+MQf7trRdkFPD
         7ojyjH1r5BmJJMKwJKcAnJZ4FNFdZ1iz3wjcZyXVCLMWIyU3TdWIq8P498MgZQWV1Gx5
         r5dw==
X-Forwarded-Encrypted: i=1; AJvYcCUQO4R0mUJSLhY2G81PKgVA4lTUgX9m6uBVQ6csD76JNuvA+XTBesJ2siL3jFYThW/+NlU8qiQjOAA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxOyRII/HSGY+uZ8fCDTmD7ICzN4GRNYEHbihSCT05JSCWs8wjl
	GUXZeKkTSygKUzzSByuVrwpK1DLj6v9raiiniu1FGyXyULZnFaUmwOfF7s3xScB4y3M=
X-Gm-Gg: ASbGncs+3GPZj4dTtl9b5gcRUnkbSg5lSG9RS3+qGC0WzOvheWSh5OmHiPNBw5GN/iP
	uUWGRvUdcw+769L/FWXm8mZsSGmDRvEC85UQxdMprNNc8GnypOrQeU7JYb/LPkx5dosxKy/K4dO
	yrYCNApJ0fYO3m9PNiVFwUnS3H0XeOULO11tcXBtaSvDZ2avICAt1CLpDMX1EVQQ99RROz49vU9
	y0uCMxzb3nOuWuweSHurlwOAYzebCQM5VZD1EyL/ZnMWp1/XcEZNu7cLCyjt9g8QlD/+WoDgEcC
	g+iZs5ioJYLX28iaybes7EFNl8gXj/i9qvMMr9ZfwL6V91nRdIv66If4ZBhevut0mWK3lj5C7F8
	fz6B1qbFFc/eDKwMO0BkTcutKc6EupU8fMRM3PV3ntPFsRGtBNsU2OX2YJ36XTPeKW6Yk6LTcnf
	x/MNryU9YANEJTtgoRJfDN/BNTTxkJQvaf8B7I2fi9NWb8Ye64Ppy6TzlmA2sXOZJKOA==
X-Google-Smtp-Source: AGHT+IHg12R9C+kLY7lUSfkpHkqWYowYCW2UNXcMx6+EvIMip4yrK9CwnPJlXOIR8B6Lc1phO+8IoA==
X-Received: by 2002:a17:907:2d21:b0:af1:f259:254d with SMTP id a640c23a62f3a-afcb93a24b1mr151824466b.8.1755155131402;
        Thu, 14 Aug 2025 00:05:31 -0700 (PDT)
Message-ID: <6bf9bac0-a394-4064-bb5d-924f5a920e7e@suse.com>
Date: Thu, 14 Aug 2025 09:05:29 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/events: Fix Global and Domain VIRQ tracking
To: Jason Andryuk <jason.andryuk@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Chris Wright <chrisw@sous-sol.org>,
 Jeremy Fitzhardinge <jeremy@xensource.com>
Cc: stable@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org
References: <20250812190041.23276-1-jason.andryuk@amd.com>
 <a4b5fd6b-80db-4b58-b3e8-5832e542d64c@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: <a4b5fd6b-80db-4b58-b3e8-5832e542d64c@amd.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------n01cz0qzsiIkjS64c0EV3BZz"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------n01cz0qzsiIkjS64c0EV3BZz
Content-Type: multipart/mixed; boundary="------------4ze0d0sDBVaNHHe93x0xGSVt";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Jason Andryuk <jason.andryuk@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Chris Wright <chrisw@sous-sol.org>,
 Jeremy Fitzhardinge <jeremy@xensource.com>
Cc: stable@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org
Message-ID: <6bf9bac0-a394-4064-bb5d-924f5a920e7e@suse.com>
Subject: Re: [PATCH] xen/events: Fix Global and Domain VIRQ tracking
References: <20250812190041.23276-1-jason.andryuk@amd.com>
 <a4b5fd6b-80db-4b58-b3e8-5832e542d64c@amd.com>
In-Reply-To: <a4b5fd6b-80db-4b58-b3e8-5832e542d64c@amd.com>

--------------4ze0d0sDBVaNHHe93x0xGSVt
Content-Type: multipart/mixed; boundary="------------W3LIP514FcistQgDFAHvxPxq"

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

T24gMTMuMDguMjUgMTc6MDMsIEphc29uIEFuZHJ5dWsgd3JvdGU6DQo+IE9uIDIwMjUtMDgt
MTIgMTU6MDAsIEphc29uIEFuZHJ5dWsgd3JvdGU6DQo+PiBWSVJRcyBjb21lIGluIDMgZmxh
dm9ycywgcGVyLVZQVSwgcGVyLWRvbWFpbiwgYW5kIGdsb2JhbC7CoCBUaGUgZXhpc3RpbmcN
Cj4+IHRyYWNraW5nIG9mIFZJUlFzIGlzIGhhbmRsZWQgYnkgcGVyLWNwdSB2YXJpYWJsZXMg
dmlycV90b19pcnEuDQo+Pg0KPj4gVGhlIGlzc3VlIGlzIHRoYXQgYmluZF92aXJxX3RvX2ly
cSgpIHNldHMgdGhlIHBlcl9jcHUgdmlycV90b19pcnEgYXQNCj4+IHJlZ2lzdHJhdGlvbiB0
aW1lIC0gdHlwaWNhbGx5IENQVSAwLsKgIExhdGVyLCB0aGUgaW50ZXJydXB0IGNhbiBtaWdy
YXRlLA0KPj4gYW5kIGluZm8tPmNwdSBpcyB1cGRhdGVkLsKgIFdoZW4gY2FsbGluZyB1bmJp
bmRfZnJvbV9pcnEoKSwgdGhlIHBlci1jcHUNCj4+IHZpcnFfdG9faXJxIGlzIGNsZWFyZWQg
Zm9yIGEgZGlmZmVyZW50IGNwdS7CoCBJZiBiaW5kX3ZpcnFfdG9faXJxKCkgaXMNCg0KVGhp
cyBpcyB3aGF0IG5lZWRzIHRvIGJlIGZpeGVkLiBBdCBtaWdyYXRpb24gdGhlIHBlcl9jcHUg
dmlycV90b19pcnEgb2YgdGhlDQpzb3VyY2UgYW5kIHRoZSB0YXJnZXQgY3B1IG5lZWQgdG8g
YmUgdXBkYXRlZCB0byByZWZsZWN0IHRoYXQgbWlncmF0aW9uLg0KDQo+PiBjYWxsZWQgYWdh
aW4gd2l0aCBDUFUgMCwgdGhlIHN0YWxlIGlycSBpcyByZXR1cm5lZC4NCj4+DQo+PiBDaGFu
Z2UgdGhlIHZpcnFfdG9faXJxIHRyYWNraW5nIHRvIHVzZSBDUFUgMCBmb3IgcGVyLWRvbWFp
biBhbmQgZ2xvYmFsDQo+PiBWSVJRcy7CoCBBcyB0aGVyZSBjYW4gYmUgYXQgbW9zdCBvbmUg
b2YgZWFjaCwgdGhlcmUgaXMgbm8gbmVlZCBmb3INCj4+IHBlci12Y3B1IHRyYWNraW5nLsKg
IEFsc28sIHBlci1kb21haW4gYW5kIGdsb2JhbCBWSVJRcyBuZWVkIHRvIGJlDQo+PiByZWdp
c3RlcmVkIG9uIENQVSAwIGFuZCBjYW4gbGF0ZXIgbW92ZSwgc28gdGhpcyBtYXRjaGVzIHRo
ZSBleHBlY3RhdGlvbi4NCj4+DQo+PiBGaXhlczogZTQ2Y2RiNjZjOGZjICgieGVuOiBldmVu
dCBjaGFubmVscyIpDQo+PiBDYzogc3RhYmxlQHZnZXIua2VybmVsLm9yZw0KPj4gU2lnbmVk
LW9mZi1ieTogSmFzb24gQW5kcnl1ayA8amFzb24uYW5kcnl1a0BhbWQuY29tPg0KPj4gLS0t
DQo+PiBGaXhlcyBpcyB0aGUgaW50cm9kdWN0aW9uIG9mIHRoZSB2aXJxX3RvX2lycSBwZXIt
Y3B1IGFycmF5Lg0KPj4NCj4+IFRoaXMgd2FzIGZvdW5kIHdpdGggdGhlIG91dC1vZi10cmVl
IGFyZ28gZHJpdmVyIGR1cmluZyBzdXNwZW5kL3Jlc3VtZS4NCj4+IE9uIHN1c3BlbmQsIHRo
ZSBwZXItZG9tYWluIFZJUlFfQVJHTyBpcyB1bmJvdW5kLsKgIE9uIHJlc3VtZSwgdGhlIGRy
aXZlcg0KPj4gYXR0ZW1wdHMgdG8gYmluZCBWSVJRX0FSR08uwqAgVGhlIHN0YWxlIGlycSBp
cyByZXR1cm5lZCwgYnV0IHRoZQ0KPj4gV0FSTl9PTihpbmZvID09IE5VTEwgfHwgaW5mby0+
dHlwZSAhPSBJUlFUX1ZJUlEpIGluIGJpbmRfdmlycV90b19pcnEoKQ0KPj4gdHJpZ2dlcnMg
Zm9yIE5VTEwgaW5mby7CoCBUaGUgYmluZCBmYWlscyBhbmQgZXhlY3V0aW9uIGNvbnRpbnVl
cyB3aXRoIHRoZQ0KPj4gZHJpdmVyIHRyeWluZyB0byBjbGVhbiB1cCBieSB1bmJpbmRpbmcu
wqAgVGhpcyBldmVudHVhbGx5IGZhdWx0cyBvdmVyIHRoZQ0KPj4gTlVMTCBpbmZvLg0KPj4g
LS0tDQo+PiDCoCBkcml2ZXJzL3hlbi9ldmVudHMvZXZlbnRzX2Jhc2UuYyB8IDE3ICsrKysr
KysrKysrKysrKystDQo+PiDCoCAxIGZpbGUgY2hhbmdlZCwgMTYgaW5zZXJ0aW9ucygrKSwg
MSBkZWxldGlvbigtKQ0KPj4NCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3hlbi9ldmVudHMv
ZXZlbnRzX2Jhc2UuYyBiL2RyaXZlcnMveGVuL2V2ZW50cy9ldmVudHNfYmFzZS5jDQo+PiBp
bmRleCA0MTMwOWQzOGY3OGMuLmEyN2U0ZDdmMDYxZSAxMDA2NDQNCj4+IC0tLSBhL2RyaXZl
cnMveGVuL2V2ZW50cy9ldmVudHNfYmFzZS5jDQo+PiArKysgYi9kcml2ZXJzL3hlbi9ldmVu
dHMvZXZlbnRzX2Jhc2UuYw0KPj4gQEAgLTE1OSw3ICsxNTksMTkgQEAgc3RhdGljIERFRklO
RV9NVVRFWChpcnFfbWFwcGluZ191cGRhdGVfbG9jayk7DQo+PiDCoCBzdGF0aWMgTElTVF9I
RUFEKHhlbl9pcnFfbGlzdF9oZWFkKTsNCj4+IC0vKiBJUlEgPC0+IFZJUlEgbWFwcGluZy4g
Ki8NCj4+ICtzdGF0aWMgYm9vbCBpc19wZXJfdmNwdV92aXJxKGludCB2aXJxKSB7DQo+PiAr
wqDCoMKgIHN3aXRjaCAodmlycSkgew0KPj4gK8KgwqDCoCBjYXNlIFZJUlFfVElNRVI6DQo+
PiArwqDCoMKgIGNhc2UgVklSUV9ERUJVRzoNCj4+ICvCoMKgwqAgY2FzZSBWSVJRX1hFTk9Q
Uk9GOg0KPj4gK8KgwqDCoCBjYXNlIFZJUlFfWEVOUE1VOg0KPj4gK8KgwqDCoMKgwqDCoMKg
IHJldHVybiB0cnVlOw0KPj4gK8KgwqDCoCBkZWZhdWx0Og0KPj4gK8KgwqDCoMKgwqDCoMKg
IHJldHVybiBmYWxzZTsNCj4+ICvCoMKgwqAgfQ0KPj4gK30NCj4+ICsNCj4+ICsvKiBJUlEg
PC0+IFZJUlEgbWFwcGluZy7CoCBHbG9iYWwvRG9tYWluIHZpcnFzIGFyZSB0cmFja2VkIGlu
IGNwdSAwLsKgICovDQo+PiDCoCBzdGF0aWMgREVGSU5FX1BFUl9DUFUoaW50IFtOUl9WSVJR
U10sIHZpcnFfdG9faXJxKSA9IHtbMCAuLi4gTlJfVklSUVMtMV0gPSAtMX07DQo+PiDCoCAv
KiBJUlEgPC0+IElQSSBtYXBwaW5nICovDQo+PiBAQCAtOTc0LDYgKzk4Niw5IEBAIHN0YXRp
YyB2b2lkIF9fdW5iaW5kX2Zyb21faXJxKHN0cnVjdCBpcnFfaW5mbyAqaW5mbywgDQo+PiB1
bnNpZ25lZCBpbnQgaXJxKQ0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHN3aXRjaCAoaW5mby0+
dHlwZSkgew0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGNhc2UgSVJRVF9WSVJROg0KPj4gK8Kg
wqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKCFpc19wZXJfdmNwdV92aXJxKHZpcnFfZnJvbV9p
cnEoaW5mbykpKQ0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjcHUgPSAw
Ow0KPj4gKw0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcGVyX2NwdSh2aXJxX3Rv
X2lycSwgY3B1KVt2aXJxX2Zyb21faXJxKGluZm8pXSA9IC0xOw0KPj4gwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqAgYnJlYWs7DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgY2FzZSBJUlFU
X0lQSToNCj4gDQo+IFRoaW5raW5nIGFib3V0IGl0IGEgbGl0dGxlIG1vcmUsIGJpbmRfdmly
cV90b19pcnEoKSBzaG91bGQgZW5zdXJlIGNwdSA9PSAwIGZvciANCj4gcGVyLWRvbWFpbiBh
bmQgZ2xvYmFsIFZJUlFzIHRvIGVuc3VyZSB0aGUgcHJvcGVydHkgaG9sZHMuwqAgQWxzbyB2
aXJxX3RvX2lycSANCg0KSW4gWGVuJ3MgZXZ0Y2huX2JpbmRfdmlycSgpIHRoZXJlIGlzOg0K
DQogICAgIGlmICggdHlwZSAhPSBWSVJRX1ZDUFUgJiYgdmNwdSAhPSAwICkNCiAgICAgICAg
IHJldHVybiAtRUlOVkFMOw0KDQpNYWtpbmcgc3VyZSBpbiBMaW51eCB0aGF0IHRoZXJlIGlz
IG5ldmVyIGEgdmlvbGF0aW9uIG9mIHRoYXQgcmVzdHJpY3Rpb24gd291bGQNCnJlcXVpcmUg
dG8gYWx3YXlzIGhhdmUgYW4gdXAtdG8tZGF0ZSB0YWJsZSBvZiBhbGwgcG9zc2libGUgVklS
UXMgYW5kIHRoZWlyDQp0eXBlLCB3aGljaCBJJ2QgbGlrZSB0byBhdm9pZC4NCg0KSSB0aGlu
ayBpdCBpcyB0aGUgdXNlciBvZiB0aGUgVklSUSB3aG8gaXMgcmVzcG9uc2libGUgdG8gZW5z
dXJlIGNwdSAwIGlzIHBhc3NlZA0KdG8gYmluZF92aXJxX3RvX2lycSgpLCBhcyB0aGlzIHVz
ZXIga25vd3MgdGhhdCBzdWNoIGEgcmVzdHJpY3Rpb24gYXBwbGllcyB0bw0KdGhlIFZJUlEg
aW4gcXVlc3Rpb24gKGF0IGxlYXN0IGhlIHNob3VsZCBrbm93IHRoYXQpLg0KDQpTcGVjaWFs
IGhhbmRsaW5nIGZvciByZWFsbHkgdXNlZCBWSVJRcyBpbiB0aGUga2VybmVsIGNhbiBoYXZl
IHNvbWUgc3BlY2lhbA0KaGFuZGxpbmcsIG9mIGNvdXJzZSwgYXMgdGhleSBhcmUga25vd24g
YWxyZWFkeSBhbmQgc2hvdWxkIGJlIHVzZWQgY29ycmVjdGx5Lg0KDQoNCkp1ZXJnZW4NCg==

--------------W3LIP514FcistQgDFAHvxPxq
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-----

--------------W3LIP514FcistQgDFAHvxPxq--

--------------4ze0d0sDBVaNHHe93x0xGSVt--

--------------n01cz0qzsiIkjS64c0EV3BZz
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/Ey8FAmidiroFAwAAAAAACgkQsN6d1ii/Ey9b
qAf9E5eeox1eGx/zAvXtyXAucZh5lxVcoaexNIbYW/Vy7VJIZEOzGHXoOts7nYdRP14l0orHkdWT
d+uoVOhBUhaqeMaVzWUDSV4wxAuxradDQTDKBz1mXI16J29sJMjuzcFr9Fn3H3eHpEwD/bUJPtVt
BJnBRufRFCXtsVWnyHV1hO5A/khTUJlTZhEjooz62jgiC/uWeIEdoHRKLc1IPJBRxYfJtdfmjwEk
P7zdjbLheGdNXibd2u19fvHUHCOB7Z4W+rqMYsTWT6e2VhKTm2ZxgZk8bQceT2KvP9GxEapOCwSq
o3bYN5TV0A6JmbsywDs+ZDU9TZ3VFS9n4RSduO6b7g==
=teqQ
-----END PGP SIGNATURE-----

--------------n01cz0qzsiIkjS64c0EV3BZz--


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 07:11:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 07:11:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080855.1441025 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umS7N-00046r-4h; Thu, 14 Aug 2025 07:11:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080855.1441025; Thu, 14 Aug 2025 07:11: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 1umS7N-00046k-0t; Thu, 14 Aug 2025 07:11:21 +0000
Received: by outflank-mailman (input) for mailman id 1080855;
 Thu, 14 Aug 2025 07:11:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xqZt=22=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umS7K-00045n-Tq
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 07:11:18 +0000
Received: from mail-ed1-x531.google.com (mail-ed1-x531.google.com
 [2a00:1450:4864:20::531])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dd74f70e-78dd-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 09:11:14 +0200 (CEST)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-6188b7949f6so1215458a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 00:11: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
 a640c23a62f3a-af91a076409sm2550469366b.12.2025.08.14.00.11.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 00:11: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>
X-Inumbo-ID: dd74f70e-78dd-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755155474; x=1755760274; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=wyYlXB18yaiNjwnT+bjGlECIE93KlMEzpy41rp5dXdU=;
        b=HyOfKPg1iS3fDA0vrvny4dhtHWqbXINUokGhf3b5Qm+vOJKZJ+D6kAzZfqrN4zbrVu
         530iJRuTw/yAUkcFBKWPpH6/X98p/OFcSRjvXCwVWCdBoZdYVwOkaCtaH8zkxEP7DEl0
         t2XgqIw1V9lHjN2WBOo0TNbnUswMQveSyj8Hj0kImPwXeaPuCvbE+wu5C0sUghmEwupw
         A2Mgpw8OHy6f0tnY3c+iQ+MtZ3oUFS1ZrZMEmehmNh4SZK7ymjxiioRpbOWtnybFsYEG
         IWFchfKh8CU9cLdDVEibUpgbdC4C3Gfsd5ub+N6OjDw8l9WA8U0tq4G05pdch1I4Y1Zq
         9odw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755155474; x=1755760274;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wyYlXB18yaiNjwnT+bjGlECIE93KlMEzpy41rp5dXdU=;
        b=BLtLPHLDhM1rej4ZyqUcgDkiwlaU3SCo6HdBjUzfB43Rb3BHabkmep/DKolMQOLckR
         M0b9TUlGBcRa67Mmedj5txM3CFaW4yA8+HyHVLNz2wW0OyN7ohtyM2zsnPX5mPx3SJrW
         J1E4XhV/s8Bf2mc/89RV4COBj7Wx7CSobgN9NUpPqh1xxIS7dIYceDXW/Z10ewWKSw7b
         U8DHpUYuNzEVru2rte3vepn/8ohUlU4SewJ8MAfwYzJXfNmf47KmZ5bZpMWt1n7GlGfC
         /q/mYnSKhAcS08T+tDNWeFoOvvk4mkNPCRR8wGbaL2fplEA+yzLv+aXvB4jlbir+TzPo
         zbAg==
X-Forwarded-Encrypted: i=1; AJvYcCXv4dXm63nit6i8wJePL7/l1hv6nFWlgdYwOXHlwGCUBWjGcWcHzLn0EZAdM4WbBPZbV+yKzlibsJ4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwB2hQL/umj73pWjnne1YgsxfTFfOBua3yoV0bFLyZIwCGG662s
	IGUpfKZhHZmy1wWQ9DnLn5TR2+3axSQ28dVsL/A39D/g7Hqm61LQo6svUY0duZX8PQ==
X-Gm-Gg: ASbGncsY4NRnp5QYB10El/8wiwk3IIHVbsrdjE8PioBucaldIxmUVDYA1Az5vCz2vRG
	RJyTukZDTCmdjt1sO05B0sdSzVHrMDp8vjRZzct1dempY4q6IfrQueMjursEDwX+uG6I/m2zPDG
	F6YXtQWARBnXJPMeBui0AVEeCqiIshMBPtTQ7F24ELqkDQl4PosKWAblExpwn9XTZuLiz6joHCG
	VPQ0uPWNLVIfDYHxYBhu/sdqhJXXYo3ra4MrcrQ6y6OI/1UqmyIJ03QfJ1O+nIcFAw4RXNTexoV
	08FEHYmEwlR5m6rRhjG9tqQIyHcz+VS0i0YaoDXIqRDkndm66F7J8+LL96JLmSQkizE6tzLh5/v
	FQyeIJE0cATjTTyZXYij9KvOY70tMyuP/dbKMD3yzT61OxXL+oOiHzb624ft6P9LDcoM3g1aQmK
	7/YDsC2tR7412M31p5nQ==
X-Google-Smtp-Source: AGHT+IFGnl2LS0eh0NSkiG2btAa33pt21zCgUoCDAEvybqOjsXP5hwUk8uVEC18v3X9m4mM8EZwS0Q==
X-Received: by 2002:a17:907:6d11:b0:ae3:bb0a:1cd8 with SMTP id a640c23a62f3a-afcbe095f40mr136878066b.19.1755155474197;
        Thu, 14 Aug 2025 00:11:14 -0700 (PDT)
Message-ID: <f85ae718-0243-4426-a555-327afffe7148@suse.com>
Date: Thu, 14 Aug 2025 09:11:11 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v16 1/4] xen/domain: unify domain ID allocation
To: dmkhn@proton.me
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, Julien Grall <jgrall@amazon.com>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 xen-devel@lists.xenproject.org
References: <20250812223024.2364749-1-dmukhin@ford.com>
 <20250812223024.2364749-2-dmukhin@ford.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: <20250812223024.2364749-2-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.08.2025 00:30, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com> 
> 
> Currently, there are two different domain ID allocation implementations:
> 
>   1) Sequential IDs allocation in dom0less Arm code based on max_init_domid;
> 
>   2) Sequential IDs allocation in XEN_DOMCTL_createdomain; does not use
>      max_init_domid (both Arm and x86).
> 
> The domain ID allocation covers dom0 or late hwdom, predefined domains,
> post-boot domains, excluding Xen system domains (domid >=
> DOMID_FIRST_RESERVED).
> 
> It makes sense to have a common helper code for such task across architectures
> (Arm and x86) and between dom0less / toolstack domU allocation.
> 
> Note, fixing dependency on max_init_domid is out of scope of this patch.
> 
> Wrap the domain ID allocation as an arch-independent function domid_alloc() in
> new common/domid.c based on the bitmap.
> 
> Allocation algorithm:
> - If an explicit domain ID is provided, verify its availability and use it if
>   ID is not used;
> - If DOMID_INVALID is provided, search the range [1..DOMID_FIRST_RESERVED-1],
>   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 range.
> 
> Remove is_free_domid() helper as it is not needed now.
> 
> No functional change intended.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> Reviewed-by: Julien Grall <jgrall@amazon.com>
> Reviewed-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
> ---
> Changes since v15:
> - fixup for check after the first pass in the bitarray in domid_alloc()
> - trivial renaming for the local variable in domid_alloc()
> - kept Julien's R-b, added Alejandro's R-b

Just to mention: My take is that this kind of a fix ought to invalidate all
earlier R-b. It's not just a cosmetic change, after all.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 07:13:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 07:13:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080864.1441035 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umS8y-0004hV-Dn; Thu, 14 Aug 2025 07:13:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080864.1441035; Thu, 14 Aug 2025 07:13: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 1umS8y-0004hO-Ai; Thu, 14 Aug 2025 07:13:00 +0000
Received: by outflank-mailman (input) for mailman id 1080864;
 Thu, 14 Aug 2025 07:12:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xqZt=22=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umS8x-0004QM-Ke
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 07:12:59 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1b97c399-78de-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 09:12:59 +0200 (CEST)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-afcb7a0442bso105649966b.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 00:12: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
 a640c23a62f3a-af91a0766e2sm2533375466b.27.2025.08.14.00.12.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 00:12: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>
X-Inumbo-ID: 1b97c399-78de-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755155578; x=1755760378; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ynZvE0cqlRzThffUyAuit6EjSdqa6JGjdb/vm/hMs7M=;
        b=VKrHKphaUpSYJha7G3rLRZrZDH04zZhxEGpM8RkSnhXTuKiz3IdnPOv44iQpuSEyJG
         MJzby8jBw2Vmugts58N3Zm2Q+pH0RSKytU7Mw94Fe/AEzwWpVxo/PsHj20KbmIV3e7JH
         X8A4Jp5Nujo0jTpSrpAbJIFqFouzyWrEZ6kNkmWWX6GR/aHjRc764QVtAKl+sLiQc4+1
         JZjP232huFTueLMgoWSFZUl4nXF+pCw8AhKPrZ9d4oXOSycQmavOBNm07ni34EPCS5xY
         PqcqkYuOOR5YLwmkbYE5y3gZQDfYbF4B5qJGfKYiF5ZXC9MPuEAolK+CxNwIHkiol9Hf
         dgbA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755155578; x=1755760378;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ynZvE0cqlRzThffUyAuit6EjSdqa6JGjdb/vm/hMs7M=;
        b=uOkkZU5naWOVUi2YQGQo2tSsak2wYoU9JtSAbADK30UcSD/IArqgaCW5RFHIZGEE2I
         bfFi0waUbZeA8XSg51Ytn8MWATWXM8hK+DzU/KY/f06qacQrODAL0Z1yCg/tzHyw2xhy
         r6y9u9RKQLuAznQdLPKslZgwEf8FFyUXGtYpk8d8mXz+d2VyV9/TOFcqtTLXS/wDtz1h
         FwOrWEpPXZLh8aLbwHouvyOc4OzaznUwEjqoNI7mN7uKniJkJZgdkuvGh5E+B0GFKgpH
         skwdwr++T1DT95tkIR4ByJOfIfyo2EjU9d6k6sOwt6aeyQ5U6TXVE6Ea4Ac+dfNdalaI
         iHPg==
X-Gm-Message-State: AOJu0Yy+lGkRNbRtLJsvM09K9U7/vjhnKwgDjmHZz7O6zXbzfYz0oygL
	7LcucSU56V0QefYoV0C+5NIrF8kgm2/xpJZOsg6VP6ujJGK7wDE3+uzMFuRqsIERpw==
X-Gm-Gg: ASbGnct2FTmP8peGo1hSI02xuW8LW9bCFuZLA1zPHKZYzR3cP77wMQHr/AZVZocye+o
	8q4vp0a5lenMKBwBAJTytx9MIcMfi3zQjG0oIm6upPkldvPRTHsw4p9CVASWpwxPLlg4F3KOcwH
	7qjG8JN1GT00lDaPG8VTBEznlWfciS14ZgkyDjcdh5iuqyq/9dVRsBXoHvbdUoDsfK/lJ66+4oD
	+iGk9vnlzhT+Fc58/jDBrddzzS8Ez6Bj5yeHa0FkLL7zYvJok/dzXcvxdQzSlQxgyr1dg1qMS1K
	OsfE0FjoQJlEFhcDBHOsvbcdqt4qv9mJ4RJ5HA28T35CbAueG1GhxABC9luLQpgu02rJXLJwRE/
	bY4MOKBPQWW8YJuEQY9/J24oelgMzvEqVvhltoDC7sash6o7Op94o8lnetZ+2YAhTjWwAUWZoAQ
	WArvVOftB5QsU5T4l6/g==
X-Google-Smtp-Source: AGHT+IGGoCCmryVviq0BEczHVbDDC0igGavBICSFSJJ1CYqitvN0Z2D/OGlb+nuA7HRXdHxsxHztAA==
X-Received: by 2002:a17:907:9490:b0:af9:414d:7bb1 with SMTP id a640c23a62f3a-afcb98c1626mr171454066b.33.1755155578472;
        Thu, 14 Aug 2025 00:12:58 -0700 (PDT)
Message-ID: <bfbd315a-4a23-4d52-b87d-d22aa7df13f2@suse.com>
Date: Thu, 14 Aug 2025 09:12:56 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [Coverity complaint] Re: [PATCH v5] pdx: introduce a new
 compression algorithm based on region offsets
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Community Manager <community.manager@xenproject.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <20250812150624.64898-1-roger.pau@citrix.com>
 <f3e57860-d4db-43c5-8cb2-29eac2163c1d@citrix.com>
 <aJyH3kb93k3HpF-A@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: <aJyH3kb93k3HpF-A@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 13.08.2025 14:41, Roger Pau MonnÃ© wrote:
> On Wed, Aug 13, 2025 at 12:47:37PM +0100, Andrew Cooper wrote:
>> On 12/08/2025 4:06 pm, Roger Pau Monne wrote:
>>> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
>>
>> Not this patch, but this is probably the best place to report it.
>>
>> https://scan5.scan.coverity.com/#/project-view/30554/10426?selectedIssue=1662707
>>
>> Something you did in the series made enough changes in
>> pfn_pdx_compression_setup() for Coverity to start reporting an issue in
>> some decade-old code.
>>
>> The complaint is on line:
>>
>> 277Â Â Â Â ma_va_bottom_maskÂ Â Â =Â (PAGE_SIZEÂ <<Â bottom_shift)Â -Â 1;
>> CID 1662707: (#1 of 1): Bad bit shift operation (BAD_SHIFT)
>>
>> 34. large_shift: In expression 0x1000 << bottom_shift, left shifting by more than 31 bits
>> has undefined behavior. The shift amount, bottom_shift, is as much as 63.
>>
>>
>> The relevant part of earlier analysis seems to be the "i >=
>> BITS_PER_LONG" check in the order loop, causing Coverity to think that i
>> can be up to 63.
> 
> Yes, I've also got the email.  This is existing code, so the issue
> wasn't introduced by the previous patches, it's probably result of
> the code movement that Coverity picked it up.
> 
> I will send a patch to fix this.

Isn't it simply because this file is now also built for a toolstack side
test?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 07:18:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 07:18:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080875.1441044 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umSEe-0005I7-0I; Thu, 14 Aug 2025 07:18:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080875.1441044; Thu, 14 Aug 2025 07: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 1umSEd-0005I0-Td; Thu, 14 Aug 2025 07:18:51 +0000
Received: by outflank-mailman (input) for mailman id 1080875;
 Thu, 14 Aug 2025 07:18:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xqZt=22=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umSEd-0005Hu-4j
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 07:18:51 +0000
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com
 [2a00:1450:4864:20::52a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ebe31ed9-78de-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 09:18:48 +0200 (CEST)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-61868d83059so3045207a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 00:18: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
 a640c23a62f3a-af91a22057esm2530827566b.115.2025.08.14.00.18.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 00:18: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>
X-Inumbo-ID: ebe31ed9-78de-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755155928; x=1755760728; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=mklUsJ7vxGTUC2EwtB+R6sguZ1NogECxb5Z+hL4e/Xo=;
        b=G/SINh/EEuTR9eEu2cpZexfOp+B3vSWG2/FDaJ5JBNN6sUdph57lpQKmtvTBcyqltI
         tIrjWfAk9m+FZMOaC2WLoFDNt2kTgMWbSU4m3FiTIs73SRmE9u0XKBLtpo9BVSwuANBy
         lqiUaZWNM3MFwBiAzmETdF2tO/EyPWtB+oxUm7M2Ug6XiYXS0/8O2f8m8ej0+mqWVrAy
         gtiT4szTi4gDekmOes3f+uUIFONsP3QXAZuKSIuFDAhM+TaAq9/IyXcsvLO7euNI2W+l
         Bp4hDuaRdGQxocsULu/8O92Mr2e2jPRJ7E3mujSw52rpOFNPcS3Zw4G0jfmWQaJnHPjZ
         Au+w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755155928; x=1755760728;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mklUsJ7vxGTUC2EwtB+R6sguZ1NogECxb5Z+hL4e/Xo=;
        b=ZklC4mG3qjOypC+dlr4w63U4snWOJK5yTJkVGpzH3ZAJ+tEwIEIAJzyAqIYQdVSdNR
         VFv8BbUovQ0CXgvpmY1OjyQNMkGXQzyhyhm1WOzCiMhpzUDXFSJVudtIIWpnxxP/laIG
         VXiobbLz4vqGYqGt8J3SkUAdaqT9LXAKgA2TPIUQQ3HruEhBJFt2Lb8k2oxsmvBH/s7K
         C1vhUWCPscziqDaco73nuSrfQomJZnkamXD7A68bFohpmsLEXAoJ0AMyg3iQ0oKVl35W
         ymmM12zlB7/qkaYJTmZaCKnEtgqa+rkKVzmW3Ubr/a0q1wwjlkpSiG/q+UVlDypPVpJC
         2qnA==
X-Forwarded-Encrypted: i=1; AJvYcCVRX8gk9NtqAhhbE50Janh11bLqjav4JRrGh7WS3XXxuaeOrblBJbOK/Ve7vVfG4/C0/mimv0GXAKA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YycVJbgg2YLK/qK0ytPSgUsLSLfa0gFueopF9QGJ9bR1pSLhS4T
	VCB1EoFj82W5b4I7pkCGPRw3ixctBaZozsq81aMyg6OetuRVS4/P9Dw8coXnST9Gaw==
X-Gm-Gg: ASbGncvEd8hG8V7T7H7cvm5ewK9Kp+5mw7fNkHtOqGpEWrEX+pOkq81TQmHQdysDvY/
	v1LgstrKx6hDiyvwPuE+RsUgE6CljuURX/e5077KyEiIqsnqxbam3lZNRw3dDw83H/rjDD+QE0y
	09Y/DqYApmARnhgje+WC5yvvoWp90gZ5eDSOzzEUTYNB1vwa+fxmm7110awL3EXlRHffpJYW2tX
	GkThu6GCitR11J007NmBViaP4Uee2OfmldFY/XbSYt19L1dBMtYPDPudMCUSvqQrch0mwfCBjlz
	YnFemdyunRHFMaD+JgmPT1OlRleAigqf+P4X8FFv4DEqRXosTxipiw4I9sJ6UYHE8l931VAlz6+
	+K0JwuoxZ9Fo6UKlOZB+c9vagEgFXDJ4a5YGFecbIMEvWAbWzSTi0YLtF9n9Drr7oRJidpB9O+u
	XXBLdemRA8tKbCDn3Y3I/PHEfHl/R8
X-Google-Smtp-Source: AGHT+IG4mDVtUBk731gRojJHAGLMdBBwSSNKler09eZui66saknVY6GhFzK3RBpuy97lhkS7c+QLFg==
X-Received: by 2002:a17:906:d54b:b0:af9:41a4:25b3 with SMTP id a640c23a62f3a-afcbd93582cmr146452466b.29.1755155927803;
        Thu, 14 Aug 2025 00:18:47 -0700 (PDT)
Message-ID: <e644c968-ab68-49f4-801e-0f161fd85f2e@suse.com>
Date: Thu, 14 Aug 2025 09:18:45 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] pdx: cast PAGE_SIZE value ahead of shifting
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>, xen-devel@lists.xenproject.org
References: <20250813125538.78174-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: <20250813125538.78174-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.08.2025 14:55, Roger Pau Monne wrote:
> --- a/xen/common/pdx.c
> +++ b/xen/common/pdx.c
> @@ -288,7 +288,7 @@ bool __init pfn_pdx_compression_setup(paddr_t base)
>  
>      pfn_pdx_hole_shift  = hole_shift;
>      pfn_pdx_bottom_mask = (1UL << bottom_shift) - 1;
> -    ma_va_bottom_mask   = (PAGE_SIZE << bottom_shift) - 1;
> +    ma_va_bottom_mask   = ((paddr_t)PAGE_SIZE << bottom_shift) - 1;

Given

#define PAGE_SIZE           (_AC(1,L) << PAGE_SHIFT)

this shouldn't be needed, except maybe for Arm32. There, however, ...

>      pfn_hole_mask       = ((1UL << hole_shift) - 1) << bottom_shift;

... this and the shift immediately ahead would also be a problem afaict,
which makes me conclude this isn't what Coverity has looked at. I expect
the problem is with the toolstack side definition of PAGE_SIZE, which imo
would rather be addressed there. (And yes, I'm pretty averse to arbitrary
casts like this being introduced.)

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 07:22:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 07:22:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080885.1441054 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umSHf-0006rZ-Cq; Thu, 14 Aug 2025 07:21:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080885.1441054; Thu, 14 Aug 2025 07:21: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 1umSHf-0006rS-AI; Thu, 14 Aug 2025 07:21:59 +0000
Received: by outflank-mailman (input) for mailman id 1080885;
 Thu, 14 Aug 2025 07:21:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xqZt=22=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umSHd-0006rK-PZ
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 07:21:57 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5b6fd404-78df-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 09:21:55 +0200 (CEST)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-afcb7a8dd3dso100873566b.3
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 00:21: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
 a640c23a62f3a-af91a1e833dsm2531294866b.64.2025.08.14.00.21.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 00:21: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>
X-Inumbo-ID: 5b6fd404-78df-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755156115; x=1755760915; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=6zCWVr8YlARbhp8eihqlcOGDcXnchmGSpuufd4e86MQ=;
        b=ML4kmQTzQg9cac1pKlxSaWDHhbzuMp7zCG0zNgA5vrArQMrNyw4tR/mVQKQOx+fkxJ
         w5XNpL/rt1OMZfBvoKcBr+BUeTJhmkhv5UeOdINkEOZctK/HLX7I4yuaryBNr9k2/Bmi
         n5i+uRm7E8nTNdy/vIveCTa8c0RSRFJLwzs4JlODUS4emJHiuJIYie5HcNdHmjS+6JFJ
         zv/I3krEgzk9brhICuDeuuFCvxtFivolBQAINRn9N4Sez/lrjILG8p+Bq1kDgFlVpGR1
         nL3v7m12+qsC3yyz8kkgvwKn28B9ePctC2DfwNnnxQVoOr71DHJQCYWRYl6pvnQdNHre
         2MxQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755156115; x=1755760915;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6zCWVr8YlARbhp8eihqlcOGDcXnchmGSpuufd4e86MQ=;
        b=Sf++GuWjTFcdeTsuOgfTeqBcVvNv5Vae+q+U8MQmSdAya1dvb20/GRYESS8kSr1nFw
         PGOoYswQMzfu8XE3JHxycjGUgfLb48Umfy7sTbLCRBYuKpjGiy+UfiMfLlumOCo5aebO
         eKKk4xwtF58REtpFCaUzuNW5cunnq7FqExRZGbo/JlwIFT2sBtGu67PDn44hMtuCxCKW
         z1KdcsTboNpa06BRAf5xLciZzaxux9s95qdgQyVG9fUe0kU+R3nVDrXNZqGQUdq9j6+w
         +GigBoPTMobpMp30VIPsA9RhroZamnXiP01s+x/DS6o5/CtJxYEHZyvI+hiHc+tXtAmB
         GC/g==
X-Forwarded-Encrypted: i=1; AJvYcCVWsKVmGHNBveDFhhTPmy8+uZs3N4GQ+sLtBzWEbK9soliwe13ynqC+r4JsYgVH5fenrO9RsAwVN6E=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzl7xR9PU0ILLK/Ur3IgQLsZCW7uoKHnTm8XRHT+dZmhIZXIyxt
	lWAbNuW4n5I5sCuLPzGiBWpEY+mDT/JhZ2wD21+BD3ZmrHGwmPOyJ9SsFid1cljfKg==
X-Gm-Gg: ASbGncuO+JqaG9/vjCW+DtUfmTQ92EdXzTzzDg9tm+zny9oR7i7SLAxJNaokaoLB+dL
	J02/Rwyur8K23iN1Zx/4/IZq2tzM/sMzmjb1tA8iJO0/toZH6x7aOCQu53w+vNqyDGG4zABNJPs
	mFeoi+CNPUeQJmQtQI0Dw22IMztu+V6kbDHOp2odcEgnX83VCOWugfMu5HquJCRPCA5zlAaN1jM
	9cEhbmhT86xZ4enidR8sCBGDUzzzqMWUUKYHdswSDEIPFuVAdNprbn00pVGub9n/3zb3KvLKIeF
	/xDyMixAR+FVWCoHfMWK1EF/V6e6ca5GJ2qwRwAAI/jSKdKpjCz9f1pWL6IgPlmOa8kzBRdVQJN
	lhC4XeeCsYjDPVR46LvZ1BD5MvEx1Ucw/p//jsGSBOZlCcE9dazEt6e2qNqW3RGLHDh4NmpZ1KM
	hVXUStrMw=
X-Google-Smtp-Source: AGHT+IEw3b8l3on29kufgt3w8WiPHuvpUL4fEFDI+V0sPBtBffNmNP1pG8ezhjgHZAWUnxlvW+YXYw==
X-Received: by 2002:a17:907:3e91:b0:af9:a486:412e with SMTP id a640c23a62f3a-afcb97d76b6mr180501166b.26.1755156115129;
        Thu, 14 Aug 2025 00:21:55 -0700 (PDT)
Message-ID: <becdc624-7bff-4b78-94c2-2999bad114fb@suse.com>
Date: Thu, 14 Aug 2025 09:21:53 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/pvh: update "Host ACPI" support status
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>, xen-devel@lists.xenproject.org
References: <20250813093220.76030-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: <20250813093220.76030-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.08.2025 11:32, Roger Pau Monne wrote:
> For x86 PVH dom0 makes uses of the host ACPI tables, and hence the status
> of Host ACPI entry should have been updated to reflect that PVH dom0 is now
> supported, and Host ACPI support is not one of the caveats.

Well, not explicitly, but seeing changes like 6378909b41c4 ("x86/PVH: expose
OEMx ACPI tables to Dom0") I'm not convinced we're there yet.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 07:27:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 07:27:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080898.1441065 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umSMU-0007n7-1B; Thu, 14 Aug 2025 07:26:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080898.1441065; Thu, 14 Aug 2025 07:26:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umSMT-0007n0-UQ; Thu, 14 Aug 2025 07:26:57 +0000
Received: by outflank-mailman (input) for mailman id 1080898;
 Thu, 14 Aug 2025 07:26:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xqZt=22=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umSMS-0007mt-Tf
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 07:26:56 +0000
Received: from mail-ej1-x62e.google.com (mail-ej1-x62e.google.com
 [2a00:1450:4864:20::62e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0e41c85f-78e0-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 09:26:55 +0200 (CEST)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-afcb78da8a7so101200066b.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 00:26:55 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a21c076sm2513275466b.102.2025.08.14.00.26.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 00:26: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>
X-Inumbo-ID: 0e41c85f-78e0-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755156415; x=1755761215; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=EWklxH0cXy9GUis6gE8FtNwQT8EjVlYxc++UJH65nHE=;
        b=YMvs9/rBgyL3Jvq25ur5h6iRm0uXSIg1eltr3NbE6JhtWEzQ8witzV9VlYeLkrX6S1
         NoXvAGrpSf1hiXFSsPb2DomjjsyjOHNn5mHa+r9aUOGB7KaF3inbSbhPDMD7jb4udFL6
         x/9Z5ktpy/5RyQHNEtmSnsnFgOTMriTIIJUA9p4dwlm9imuT9aZfp0aMJhUiZJsKJK16
         k0O4cQTh1Ayd7149+5PZop2p28hdk9ruW3efUKK1MKQ53UPFEKj37EQYtxikEdEG46R8
         +6IJ/RJAIvI1B6zc/h8VHIYYSSQGkHHyUgP/PuOrgq6RAeSLKwEbc245fvv+WgOtL4mA
         +jpw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755156415; x=1755761215;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=EWklxH0cXy9GUis6gE8FtNwQT8EjVlYxc++UJH65nHE=;
        b=VH9tM1VOfDJrt2JGuLBYMTGus+YpF+aJsljOLL5G1uWMrRgFW+vHFcSXZ/ee8LHmwZ
         bbSdAodbEdOWe1SpKudcDR6RrAtitBKyfyck4Ba/lA0zeVqnWdPuMcBddozQ9BNb2AC6
         XFbJJhBM1SdLDdNhN2zYXtDmL740tb5Y9tjMRGS8k/HLHA/ybsx7vPANqwRzrRx84Imv
         kPuPfN5dscBXD3X8dwi8nvp6RPcaCzw1wWRHGxT7iPQcw2SjPRZmkb0e3Xd9NHADuUY7
         UCmMRZBpoJskK5jAcGjl6dUR6bFqZObLBZPx92gWiMKC/jhzF18bew7WRGnzAYoR4rhM
         66LA==
X-Gm-Message-State: AOJu0YwiVhUnO7omYqYtji+7tYSOkJqHBbm/HT4ejeVKol2YRq1obpXr
	2fGTrnzds6I9sP9UN6a3nXckdMUsnVkwXXDBxLexa+4vbFiU18F9sW0Ib29OJ1fMm4DmS35j37z
	JO0g=
X-Gm-Gg: ASbGnctTD1pugVeTZiBi1dNYrHjUpmjFfb94tpo1TaYRNnAF4nl/Lfy6JE9lCOknbgS
	Qe6X6G7Ja5oypZKVnSZvxIzfN7wd6q1guTtCzi8Zlgr8eXEWUaL9/r16GeZyy3g/hfPSSmkPaKL
	THnlVb1/kjF4x2O08gTpVcOuJuCrOzU27lSeq65NIFE47F3ORWajZdoESJH2YBB7hUwU0t+r47Q
	zEqomkmB20MXPAFPdyGtKEr1HHi391ZvX/3PEa3thByeIjH8Ve5J28brEiBCZrYToFxWLngKKwo
	E6ihkrooVNzQLdLJA4K79jjT+Nbrl8fEiQqZ7U0N20P9GNrlIu6YsQ1YymRwmrv3mwEUY/Y5b0W
	vyEiYL1zztk880flh8Fj8dFRrc7lFfOXR5fdA0Y59l2gOB5CowJypZlxqv8v5G3wl+9btsP9CcX
	6ttZCSoKYCQSqP6fOVnw==
X-Google-Smtp-Source: AGHT+IHf+chiCYCdjn0poyjloX8Gq248Zkt78egNnsQeH93Scmtr8FzICzQdujpnMvVahoHBKfsQ3Q==
X-Received: by 2002:a17:907:6d0c:b0:af9:d705:9f19 with SMTP id a640c23a62f3a-afcb979b5cdmr180721766b.17.1755156415043;
        Thu, 14 Aug 2025 00:26:55 -0700 (PDT)
Message-ID: <aab37ec2-33bf-403b-978a-dc3c4bc282f7@suse.com>
Date: Thu, 14 Aug 2025 09:26:53 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 09/22] x86/traps: Move load_system_tables() into
 traps-setup.c
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>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-10-andrew.cooper3@citrix.com>
 <80285a06f5d4fb3bd3e378317cca61ca@bugseng.com>
 <7e906964-b07d-4205-a683-e665f19d5edc@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: <7e906964-b07d-4205-a683-e665f19d5edc@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 13.08.2025 13:36, Andrew Cooper wrote:
> On 12/08/2025 10:43 am, Nicola Vetrini wrote:
>> On 2025-08-08 22:23, Andrew Cooper wrote:
>>> diff --git a/xen/arch/x86/traps-setup.c b/xen/arch/x86/traps-setup.c
>>> index 8ca379c9e4cb..13b8fcf0ba51 100644
>>> --- a/xen/arch/x86/traps-setup.c
>>> +++ b/xen/arch/x86/traps-setup.c
>>> @@ -19,6 +20,124 @@ boolean_param("ler", opt_ler);
>>>
>>> Â void nocall entry_PF(void);
>>>
>>> +/*
>>> + * Sets up system tables and descriptors for IDT devliery.
>>> + *
>>> + * - Sets up TSS with stack pointers, including ISTs
>>> + * - Inserts TSS selector into regular and compat GDTs
>>> + * - Loads GDT, IDT, TR then null LDT
>>> + * - Sets up IST references in the IDT
>>> + */
>>> +static void load_system_tables(void)
>>> +{
>>> +Â Â Â  unsigned int i, cpu = smp_processor_id();
>>> +Â Â Â  unsigned long stack_bottom = get_stack_bottom(),
>>> +Â Â Â Â Â Â Â  stack_top = stack_bottom & ~(STACK_SIZE - 1);
>>> +Â Â Â  /*
>>> +Â Â Â Â  * NB: define tss_page as a local variable because clang 3.5
>>> doesn't
>>> +Â Â Â Â  * support using ARRAY_SIZE against per-cpu variables.
>>> +Â Â Â Â  */
>>> +Â Â Â  struct tss_page *tss_page = &this_cpu(tss_page);
>>> +Â Â Â  idt_entry_t *idt = this_cpu(idt);
>>> +
>>
>> Given the clang baseline this might not be needed anymore?
> 
> Hmm.Â  While true, looking at 51461114e26, the code is definitely better
> written with the tss_page variable and we wouldn't want to go back to
> the old form.
> 
> I think that I'll simply drop the comment.
> 
> ~Andrew
> 
> P.S.
> 
> Generally speaking, because of the RELOC_HIDE() in this_cpu(), any time
> you ever want two accesses to a variable, it's better (code gen wise) to
> construct a pointer to it and use the point multiple times.
> 
> I don't understand why there's a RELOC_HIDE() in this_cpu().Â  The
> justification doesn't make sense, but I've not had time to explore what
> happens if we take it out.

There's no justification in xen/percpu.h?

My understanding is that we simply may not expose any accesses to per_cpu_*
variables directly to the compiler, or there's a risk that it might access
the "master" variable (i.e. CPU0's on at least x86).

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 07:30:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 07:30:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080909.1441076 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umSQA-0000s8-If; Thu, 14 Aug 2025 07:30:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080909.1441076; Thu, 14 Aug 2025 07:30:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umSQA-0000s1-Do; Thu, 14 Aug 2025 07:30:46 +0000
Received: by outflank-mailman (input) for mailman id 1080909;
 Thu, 14 Aug 2025 07:30:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qGif=22=gmail.com=florian.heigl@srs-se1.protection.inumbo.net>)
 id 1umSQ8-0000rj-Oh
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 07:30:44 +0000
Received: from mail-qt1-x82d.google.com (mail-qt1-x82d.google.com
 [2607:f8b0:4864:20::82d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 938788e1-78e0-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 09:30:40 +0200 (CEST)
Received: by mail-qt1-x82d.google.com with SMTP id
 d75a77b69052e-4b109912545so7601891cf.0; 
 Thu, 14 Aug 2025 00:30: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>
X-Inumbo-ID: 938788e1-78e0-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1755156638; x=1755761438; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=EjPfvm8P8nhJ3Rz6Mq1SB0p4rDkQmHdsC2mJIbarucc=;
        b=UAJopP7sKmS1otZiEc7U+yFhbpvreskwLYwcpHVPXAotadl3b73FWtr5l+oCZXyixY
         q6pd5QxzNebilZ2JfHH3X9fp4dYlQkSrdW+F84ovsBRtTdvFfRdquet83znjI34REseY
         1M/AZcTnmndfFNzzyA+LR3MLSjfQi7kGu3syeqIYyArZtFlHVE81s3W+uYdrk8A+luOw
         AJ6UT5LnbxclidP50IuV5/b9dUNw4f0iJDMqY3PvIyMDqRnux6Tvc6H7cxC2zyTZSnjL
         6XrsXai2GTxrCSj0ifVAZlBDPqtJy5ktiLkGcNmPFglYaW/2XK8hhsBNT3N+YT9BoNvZ
         GGLg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755156638; x=1755761438;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=EjPfvm8P8nhJ3Rz6Mq1SB0p4rDkQmHdsC2mJIbarucc=;
        b=CYtR+PTONDSJmicAlGr9iqPeaJrt/i1eqAXJ42+HaenstvrXfUMswhBLY0XMwC/otW
         jPa2c1ctxn/maLVTJtcr7XN5FN2vmkYAnvEfKSC3wr0pmeaOFAGpTqBD50nuoqYzgCJQ
         sGJjgaakDPdEs5MqMo8MHVrs12i867YHkgps/3p0N9WZhTCguj+u8Q06S2hv2kFlyfQ9
         l91dc1X9DGAt7XbXO5hR8F4hz+hjUooAUMlNfQqp0Cf4DF5lv3LhWZgPMWEDHPaEUnwT
         A5faJWj5oOln39g4ZItb47lIiNTqzaGgN4vJsByHL5lU4cO/ErUSbqCQPK9n8QpPf/P1
         mpuA==
X-Forwarded-Encrypted: i=1; AJvYcCVL9WcE1N4T7ZZBdiAIuPI0j/QljzflXqBO6ZO1nPkrre0vVVeRl9Swumf8VsuOlcghAIo6DAkztb57@lists.xenproject.org, AJvYcCWNO6NqGTRlZuw/BhP49chzozsszcYyNtq7Z+Yb6qLYHlaZ71OdWqpO0ilCYVLVlf1SpOojGaxMqC4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YztOwBv8pG5HxMkBWpefaO2QV1SPGMWLk7g45K/twjLKr4Tt+ts
	X+7SBxtfnTvIXsFAkweOZpLWRFlttYrJ2MsZ1FjTDZJ1hWGOWv7OijGfKt0kJIe8q9IWlEKMUuo
	Rg07sUf4Sz3FN0tb4uJAre/UgUi1qfFE=
X-Gm-Gg: ASbGncsi425VyvXlHQqaLUhEYHjEGM6l17FXRARZr2+msA+REVHvyU09fbDZiZpiJmB
	t/LFCe1Rjk7ei4z8OyfKtG9RDIj0Vhnq0Y0jfU/k9iIs2QKYICzewFMk+vIp+S7WGe86HeJsJC+
	hD1EftwRq0WN5eh45vSKdTm6zHi2OnVY3U5O5TcSYWOsknzFK+dtrPNkWkVNYv+/dBAoFXccsf6
	f2EPZo09u8U/HaHc0zxUCtu9cTGZ6btAXDmX85h
X-Google-Smtp-Source: AGHT+IEOOnIR5xh0H/YVGTrI3HJpTxvCb14vAQo5pTVhgzJxEVqD1OVsD2nxr8wdBGwNBqGlu8P1r2AVJSVusyQtrTo=
X-Received: by 2002:a05:622a:cf:b0:4ab:9335:7af4 with SMTP id
 d75a77b69052e-4b10a9199admr25469131cf.2.1755156638478; Thu, 14 Aug 2025
 00:30:38 -0700 (PDT)
MIME-Version: 1.0
References: <CAO_48GG1Tg0d3ATnNAYNr0cg7Ty_zsnzT29=dpkk99DxyTWcmg@mail.gmail.com>
 <fceb5df8-d628-479d-acb3-d1d26409fbac@onlineschubla.de> <aJLae1Nl0pyOZgyh@mattapan.m5p.com>
 <1b96f2f3-55a2-4b33-84b1-a7c18d38d10c@suse.com>
In-Reply-To: <1b96f2f3-55a2-4b33-84b1-a7c18d38d10c@suse.com>
From: Florian Heigl <florian.heigl@gmail.com>
Date: Thu, 14 Aug 2025 09:30:26 +0200
X-Gm-Features: Ac12FXw8v4wTQerYESma1v7aAuTHK6ARn31LZ-Lgjkv5RqFJq2mVFrE4hIu-kYU
Message-ID: <CAFivhPnfoDvZVh6i-=HOJCU6PwLEFyzAsdRJfqmzPq-L79hUEw@mail.gmail.com>
Subject: Re: Consider changing CONFIG_ACPI default on ARM?
To: Jan Beulich <jbeulich@suse.com>
Cc: Elliott Mitchell <ehem+xen@m5p.com>, Xen-users <xen-users@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>, 
	Paul Leiber <paul@onlineschubla.de>
Content-Type: multipart/alternative; boundary="000000000000f63b05063c4e3f20"

--000000000000f63b05063c4e3f20
Content-Type: text/plain; charset="UTF-8"

Jan Beulich <jbeulich@suse.com> schrieb am Do., 14. Aug. 2025, 08:55:

> On 06.08.2025 06:30, Elliott Mitchell wrote:
> > On Tue, Jul 01, 2025 at 10:01:13PM +0200, Paul Leiber wrote:
> >>
> >> Unfortunately, I don't have a direct answer to the question (as is so
> often
> >> the case, due to my limited knowledge and experience). However, I am
> >> successfully running Xen on a RPi 4 (mostly, except for some VLAN
> related
> >> networking issues).
> >>
> >> I used instructions in [1] to install vanilla Debian on the RPi,
> including
> >> UEFI boot and grub. I then compiled Xen with expert options and ACPI
> >> enabled.
> >>
> >> I don't know if there are better solutions. For example, I suffer from
> the
> >> fact that I2C doesn't work when using UEFI boot on a RPi.
>

Snipped:
Xen panicking on a $100 platform that is the planet wide reference for
commodity/community SBC.
Reported by someone with just questions and an obvious suggestion to maybe
move things forward.

>>> I'm certain I'm missing something, but before I delve deeper, I just
> >>> wanted to ask if this is a known issue, and if so, are there any
> >>> workarounds or solutions available for this?
> >>>
> >>> Any help about this is highly appreciated!
> >>>
> >>> Thanks and Best regards,
> >>> Sumit.
> >>>
> >>> [1]:  https://github.com/raspberrypi/linux rpi-6.12.y branch
> >>> [2]: git://xenbits.xen.org/xen.git - main branch
> >>> [3] xen-troops https://github.com/xen-troops/xen - rpi5_dev branch
> >>> [4]: https://github.com/u-boot/u-boot.git master branch
> >
> > Ultimately Debian is choosing to leave most defaults alone.  So far
>
[...]

> > I'm unsure of the likelihood of getting the Debian maintainers to
> > override the default.  Yet due being by far the simplest way to install
> > Debian and Xen on a very common ARM64 platform, perhaps the Xen
> > developers should consider changing?
>
> In an open source project everyone is a developer. There is a
> significant amount of work someone needs to pick up to change this
> SUPPORT.md entry:
>
> ### Host ACPI (via Domain 0)
>
>     Status, x86 PV: Supported
>     Status, ARM: Experimental
>
> Parties interested in changing the support status of any component are the
> primary candidates to actually carry out the necessary work.
>
> Jan
>

The wording matters, experimental tells a different story of status and
ownership and activity.
It implies someone has brought it that far and wishes for experimenting and
feedback.
It implies that the experiment is ongoing.
It implies that good results would be noted and then it's likely that its
brought to a supported state.
It implies someone is looking at the results.

It's not sufficient to just tell someone "yeah if you care you're in the
best position to change that support status".
That status was written there and summarised based on certain criteria
which are historically a problem. How many xen/arm versions were there?
Mips? How many IB implementations, how many FT clones, how many versions of
whatever piece in the project.
Many parties have cared and contributed stuff that didn't ever get anywhere
because they were never told what other steps they need to take or that
there's simply not enough people around to review those 100k lines of
whatever.

As long as theres no better insight than experimental no experimenting
party can know if someone else is working on their issue other than them
asking here.
Telling them hey, actually that's YOU and your BEST approach is to be or
wait for someone with the resources to change this, oh BTW, really massive
tasks situation.

Some examples for what we could have named things over the last 20 years
Experimental with no HCL or near term roadmap. Experimental drop with no
current activity
Experimental, stale
Experimental with assumption to later integrate
Experimental and tentative, will be proceed only with other partes
involvement
Experimental, waiting for feedback
Experimental, lacking hw support

Be honest and be kind to people that try to fix one little piece when
you're sitting on a pile of broken castles. If everyone is a developer we
ought to enable everyone to help.

I'm gonna unsubscribe at last. I'm old and it gets too repetitive.

Flo


--

>


the purpose of libvirt is to provide an abstraction layer hiding all xen
features added since 2006 until they were finally understood and copied by
the kvm devs.

>

--000000000000f63b05063c4e3f20
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"auto"><div><div><br></div><div><br></div><div data-smartmail=3D=
"gmail_signature"><br></div><br><div class=3D"gmail_quote gmail_quote_conta=
iner"><div dir=3D"ltr" class=3D"gmail_attr">Jan Beulich &lt;<a href=3D"mail=
to:jbeulich@suse.com">jbeulich@suse.com</a>&gt; schrieb am Do., 14. Aug. 20=
25, 08:55:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0=
px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 06=
.08.2025 06:30, Elliott Mitchell wrote:<br>
&gt; On Tue, Jul 01, 2025 at 10:01:13PM +0200, Paul Leiber wrote:<br>
&gt;&gt;<br>
&gt;&gt; Unfortunately, I don&#39;t have a direct answer to the question (a=
s is so often<br>
&gt;&gt; the case, due to my limited knowledge and experience). However, I =
am<br>
&gt;&gt; successfully running Xen on a RPi 4 (mostly, except for some VLAN =
related<br>
&gt;&gt; networking issues).<br>
&gt;&gt;<br>
&gt;&gt; I used instructions in [1] to install vanilla Debian on the RPi, i=
ncluding<br>
&gt;&gt; UEFI boot and grub. I then compiled Xen with expert options and AC=
PI<br>
&gt;&gt; enabled.<br>
&gt;&gt;<br>
&gt;&gt; I don&#39;t know if there are better solutions. For example, I suf=
fer from the<br>
&gt;&gt; fact that I2C doesn&#39;t work when using UEFI boot on a RPi.=C2=
=A0<br></blockquote></div></div><div dir=3D"auto"><br></div><div dir=3D"aut=
o">Snipped:</div><div dir=3D"auto"></div><div dir=3D"auto">Xen panicking on=
 a $100 platform that is the planet wide reference for commodity/community =
SBC.</div><div dir=3D"auto">Reported by someone with just questions and an =
obvious suggestion to maybe move things forward.</div><div dir=3D"auto"><br=
></div><div dir=3D"auto"><div class=3D"gmail_quote gmail_quote_container"><=
blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-l=
eft:1px solid rgb(204,204,204);padding-left:1ex">
&gt;&gt;&gt; I&#39;m certain I&#39;m missing something, but before I delve =
deeper, I just<br>
&gt;&gt;&gt; wanted to ask if this is a known issue, and if so, are there a=
ny<br>
&gt;&gt;&gt; workarounds or solutions available for this?<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Any help about this is highly appreciated!<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Thanks and Best regards,<br>
&gt;&gt;&gt; Sumit.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; [1]:=C2=A0 <a href=3D"https://github.com/raspberrypi/linux" re=
l=3D"noreferrer noreferrer" target=3D"_blank">https://github.com/raspberryp=
i/linux</a> rpi-6.12.y branch<br>
&gt;&gt;&gt; [2]: git://<a href=3D"http://xenbits.xen.org/xen.git" rel=3D"n=
oreferrer noreferrer" target=3D"_blank">xenbits.xen.org/xen.git</a> - main =
branch<br>
&gt;&gt;&gt; [3] xen-troops <a href=3D"https://github.com/xen-troops/xen" r=
el=3D"noreferrer noreferrer" target=3D"_blank">https://github.com/xen-troop=
s/xen</a> - rpi5_dev branch<br>
&gt;&gt;&gt; [4]: <a href=3D"https://github.com/u-boot/u-boot.git" rel=3D"n=
oreferrer noreferrer" target=3D"_blank">https://github.com/u-boot/u-boot.gi=
t</a> master branch<br>
&gt; <br>
&gt; Ultimately Debian is choosing to leave most defaults alone.=C2=A0 So f=
ar=C2=A0<br></blockquote></div></div><div dir=3D"auto">[...]</div><div dir=
=3D"auto"><div class=3D"gmail_quote gmail_quote_container"><blockquote clas=
s=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid r=
gb(204,204,204);padding-left:1ex">
&gt; I&#39;m unsure of the likelihood of getting the Debian maintainers to<=
br>
&gt; override the default.=C2=A0 Yet due being by far the simplest way to i=
nstall<br>
&gt; Debian and Xen on a very common ARM64 platform, perhaps the Xen<br>
&gt; developers should consider changing?<br>
<br>
In an open source project everyone is a developer. There is a<br>
significant amount of work someone needs to pick up to change this<br>
SUPPORT.md entry:<br>
<br>
### Host ACPI (via Domain 0)<br>
<br>
=C2=A0 =C2=A0 Status, x86 PV: Supported<br>
=C2=A0 =C2=A0 Status, ARM: Experimental<br>
<br>
Parties interested in changing the support status of any component are the<=
br>
primary candidates to actually carry out the necessary work.<br>
<br>
Jan<br></blockquote></div></div><div dir=3D"auto"><br></div><div dir=3D"aut=
o">The wording matters, experimental tells a different story of status and =
ownership and activity.</div><div dir=3D"auto">It implies someone has broug=
ht it that far and wishes for experimenting and feedback.</div><div dir=3D"=
auto">It implies that the experiment is ongoing.</div><div dir=3D"auto">It =
implies that good results would be noted and then it&#39;s likely that its =
brought to a supported state.</div><div dir=3D"auto">It implies someone is =
looking at the results.</div><div dir=3D"auto"><br></div><div dir=3D"auto">=
It&#39;s not sufficient to just tell someone &quot;yeah if you care you&#39=
;re in the best position to change that support status&quot;.</div><div dir=
=3D"auto">That status was written there and summarised based on certain cri=
teria which are historically a problem. How many xen/arm versions were ther=
e? Mips? How many IB implementations, how many FT clones, how many versions=
 of whatever piece in the project.</div><div dir=3D"auto">Many parties have=
 cared and contributed stuff that didn&#39;t ever get anywhere because they=
 were never told what other steps they need to take or that there&#39;s sim=
ply not enough people around to review those 100k lines of whatever.</div><=
div dir=3D"auto"><br></div><div dir=3D"auto">As long as theres no better in=
sight than experimental no experimenting party can know if someone else is =
working on their issue other than them asking here.</div><div dir=3D"auto">=
Telling them hey, actually that&#39;s YOU and your BEST approach is to be o=
r wait for someone with the resources to change this, oh BTW, really massiv=
e tasks situation.=C2=A0</div><div dir=3D"auto"><br></div><div dir=3D"auto"=
>Some examples for what we could have named things over the last 20 years</=
div><div dir=3D"auto">Experimental with no HCL or near term roadmap. Experi=
mental drop with no current activity=C2=A0</div><div dir=3D"auto">Experimen=
tal, stale</div><div dir=3D"auto">Experimental with assumption to later int=
egrate</div><div dir=3D"auto">Experimental and tentative, will be proceed o=
nly with other partes involvement=C2=A0</div><div dir=3D"auto">Experimental=
, waiting for feedback</div><div dir=3D"auto">Experimental, lacking hw supp=
ort</div><div dir=3D"auto"><br></div><div dir=3D"auto">Be honest and be kin=
d to people that try to fix one little piece when you&#39;re sitting on a p=
ile of broken castles. If everyone is a developer we ought to enable everyo=
ne to help.</div><div dir=3D"auto"><br></div><div dir=3D"auto">I&#39;m gonn=
a unsubscribe at last. I&#39;m old and it gets too repetitive.</div><div di=
r=3D"auto"><br></div><div dir=3D"auto">Flo</div><div dir=3D"auto"><br></div=
><div dir=3D"auto"><br></div><div dir=3D"auto">--</div><div dir=3D"auto"><d=
iv class=3D"gmail_quote gmail_quote_container"><blockquote class=3D"gmail_q=
uote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,2=
04);padding-left:1ex"></blockquote></div></div><div dir=3D"auto"><br></div>=
<div dir=3D"auto"><br></div><div dir=3D"auto"><br></div><div dir=3D"auto">t=
he purpose of libvirt is to provide an abstraction layer hiding all xen fea=
tures added since 2006 until they were finally understood and copied by the=
 kvm devs.</div><div dir=3D"auto"><div class=3D"gmail_quote gmail_quote_con=
tainer"><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex=
;border-left:1px solid rgb(204,204,204);padding-left:1ex"></blockquote></di=
v></div></div>

--000000000000f63b05063c4e3f20--


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 07:30:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 07:30:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080911.1441085 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umSQF-00018v-OJ; Thu, 14 Aug 2025 07:30:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080911.1441085; Thu, 14 Aug 2025 07:30:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umSQF-00018o-Lk; Thu, 14 Aug 2025 07:30:51 +0000
Received: by outflank-mailman (input) for mailman id 1080911;
 Thu, 14 Aug 2025 07:30:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xqZt=22=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umSQD-000180-I1
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 07:30:49 +0000
Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com
 [2a00:1450:4864:20::533])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 99094e6f-78e0-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 09:30:48 +0200 (CEST)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-6188b733bbaso1199861a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 00:30: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
 a640c23a62f3a-af91a076724sm2533464466b.23.2025.08.14.00.30.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 00:30: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>
X-Inumbo-ID: 99094e6f-78e0-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755156648; x=1755761448; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=T7+Q09yDuED16beZA9ZWGRMzNng+JHSe+S7kCEwdoTE=;
        b=Vi3LrxqTbbn1OsLdZ7wtOuT9f/4Ol4IUOxfD9CFwDJuaAXZNAvYDLceQWnYwPaOoez
         PusxMmHCRr9GY/jlYWg8WwFXIdbdxTlDm+JWIzrl0heLEj1NDgHvfhU+LAUOlO3IrdHW
         VplqKo2taNxU1w7sVKHpGW1ghSuqgC4lJhNE8r14GWbtt2GnwNhmI51XpPAnZWlApphu
         Bw79eaJeXypIXTRHpV+xbU5HpI3fkE0TQ0/rsD/1IgiD38eC6naCnL5eNpIuRGfZkfp3
         GZnK8Wnr5iuM/x7rVPzsaMXJESo6tYr7Bynk9bKvwliqwwoeMQSpjTkbf+xEWwZYU8F9
         eo6g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755156648; x=1755761448;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=T7+Q09yDuED16beZA9ZWGRMzNng+JHSe+S7kCEwdoTE=;
        b=cQeq6sUzucFPu4oNCWjHgVyu9GhzbY2NB6dHtCazldAuCrRKjZarCqUCx1KNzCLtIs
         yKwK6gRafEvH2IwKflg2lWDmw30Od1X+p2aTP0SIpmWs02auCcbt5vrzBlXzPxTbShsL
         vMp2/WJz7BiH+UHS/W4ZPxBieYX1H6a3pcsF4zmjLEulfe6cRR+VRQ8P2WJia25z4kyj
         o9XHmh/wifh4SIRV9GIR2rTpYrZWI52sH35FxOW4N8BBuHNeMoj+8kEWb7MqcTrrtwGo
         1zvTVsWiyX3H++53C2/Ntcq2fL/8smKo/RQVqf7ia0t+ODd418+CIZS40kQKntbnue1Z
         9ztw==
X-Forwarded-Encrypted: i=1; AJvYcCWvpTgoQNsNM7ToVuOM+PFYzhzQZstPTT4zFUlFjWB30SV+hEE83YQjEpUnyp34Vuj0U8zhWCwH15s=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwFq/kYVq0EocJzJzApt9omME8Wffx5jPh5A9NMra7cdYgHGut/
	TZW19GSh7mXAlBBHU2GPQGdrYwRVv+efEOAEHpZGN+THD7ErSb7fZ95Qf2SLuVrbcQ==
X-Gm-Gg: ASbGncst4Id0O3os8vVd7d4Nq0YlI5z8DZPjom+jWHhK02TtRfCahTwAaqopO3MNX7f
	ckml2pv2b4PKZkdGE6T3jFLTdo+U39HFBQd78Lg4ipxUOVqpkAxjDRxqUrFmEUAcanFdnmIwN44
	W+vbISbQE9lMGuchy5FGpP/gaqDG6SZF2fHB7rwRmNB4spJYoScbGk8SNkDF6/LeLT6zma+UyWH
	Y6vWNxRkgUTFteqWkI7gyNziTCx3xb7anEmB7cM+tWigc/NImyAcI6V2D5AKX3QIxn2G1i6eDFD
	MtXsHJ7f6adS6UEa7LiRGWsa0L0VK2BhGjQwZt6vCc4U6Mv1JegwhC+1nwI4gaug+1gjNWNK6cx
	kMc8sGi6QUzE+lru6VlD6mjHZ8QaQT+M+F2aGMx23hwwgcjlHwYYTY0m43fY/jbYHC8fWKu7w0k
	3UmZNTOfc5UYM5WzGSoP4Vk2+RDIet
X-Google-Smtp-Source: AGHT+IFH3wWHno/EYQsynWpw4z8+CfkvLFp6PHMm0BnVRmmVDKt8VvR3PHigGVkBJUp8vQFkXzQs9w==
X-Received: by 2002:a17:907:94cd:b0:ae3:6651:58ba with SMTP id a640c23a62f3a-afcb98e1ac5mr156026966b.35.1755156647925;
        Thu, 14 Aug 2025 00:30:47 -0700 (PDT)
Message-ID: <c63c34b2-d294-4710-8c2f-c59ea4775a13@suse.com>
Date: Thu, 14 Aug 2025 09:30:46 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 13/22] x86: FRED enumerations
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-14-andrew.cooper3@citrix.com>
 <0beb69c9-9286-4780-951a-cc47b9a4624b@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: <0beb69c9-9286-4780-951a-cc47b9a4624b@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.08.2025 14:28, Andrew Cooper wrote:
> On 08/08/2025 9:23 pm, Andrew Cooper wrote:
>> diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
>> index a45ce106e210..90cbad13a7c7 100644
>> --- a/xen/arch/x86/Kconfig
>> +++ b/xen/arch/x86/Kconfig
>> @@ -57,6 +57,10 @@ config HAS_CC_CET_IBT
>>  	# Retpoline check to work around https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93654
>>  	def_bool $(cc-option,-fcf-protection=branch -mmanual-endbr -mindirect-branch=thunk-extern) && $(as-instr,endbr64)
>>  
>> +config HAS_AS_FRED
>> +	# binutils >= 2.41 or LLVM >= 19
>> +	def_bool $(as-instr,eretu;lkgs %ax)
>> +
>>  menu "Architecture Features"
>>  
>>  source "arch/x86/Kconfig.cpu"
>> diff --git a/xen/arch/x86/include/asm/asm-defns.h b/xen/arch/x86/include/asm/asm-defns.h
>> index 61a5faf90446..2e5200b94b82 100644
>> --- a/xen/arch/x86/include/asm/asm-defns.h
>> +++ b/xen/arch/x86/include/asm/asm-defns.h
>> @@ -4,6 +4,15 @@
>>      .byte 0x0f, 0x01, 0xfc
>>  .endm
>>  
>> +#ifndef CONFIG_HAS_AS_FRED
>> +.macro eretu
>> +    .byte 0xf3, 0x0f, 0x01, 0xca
>> +.endm
>> +.macro erets
>> +    .byte 0xf2, 0x0f, 0x01, 0xca
>> +.endm
>> +#endif
> 
> Seeing as I know you are going to be unhappy with the Kconfig...

Well, we've got several, so adding one more isn't going to be the end of
the world. What we really need to do is finally settle for one method,
and then switch everything over to whatever it is going to be. I've
taken note to set up another design session on the topic in San Jose.

> I think I'm dev complete on the PV support now, and there's not an LKGS
> in sight.
> 
> We don't strictly need the conditional in asm-defns.h, and if we don't
> need it in C either then we can drop the Kconfig entirely.

Yeah, might be best for now.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 07:34:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 07:34:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080934.1441094 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umSTp-0002bS-Be; Thu, 14 Aug 2025 07:34:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080934.1441094; Thu, 14 Aug 2025 07: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 1umSTp-0002bL-8r; Thu, 14 Aug 2025 07:34:33 +0000
Received: by outflank-mailman (input) for mailman id 1080934;
 Thu, 14 Aug 2025 07:34:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ppuf=22=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1umSTn-0002bE-QX
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 07:34:32 +0000
Received: from NAM04-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam04on20607.outbound.protection.outlook.com
 [2a01:111:f403:240a::607])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1c2a736c-78e1-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 09:34:29 +0200 (CEST)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 PH8PR12MB6937.namprd12.prod.outlook.com (2603:10b6:510:1bc::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.21; Thu, 14 Aug
 2025 07:34:25 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d%7]) with mapi id 15.20.9031.012; Thu, 14 Aug 2025
 07:34: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>
X-Inumbo-ID: 1c2a736c-78e1-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=oqScEeAUpVm3+iVGP1r78VM1AZ3yAgzprTE9khwY+rM4LfyPFW5svpnuTZCnnIjMNu4A0TSwPMBI+eQ3jcATeQTjtAuvhHYBbMH5nvlrxmeHV5XO0vbDYi/fayieN0XKLCZD6UZkwA3SJ/WGSWFScK1oxts5pEU1YtbCNdi0oeWKUbZ6zCq7p9s2z9BNT/lfqldJQ8K5eXsPe4rbGrbcOUDvyp3Xnh72OP5O2gUjq41b2QFAAi60EDmHHgnYxNb2sKq348M+ReiPfFH7n8bCjWR8jzfbLxdMvxG5ajoOkB4TSL6Z2xlvpduu8oSolQXYLaxI4ZFvJdlAmet66zSzcg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=opEG/b95Dx49/uLGBUnqMVxA1WeEidt3Xws0ZLRxJrM=;
 b=vmAUaXr4S+2fUU5Z3EEU6qLDWVIpxgrR6OEzjTZehMKyNqMKt128zffWb7BlKCMB3MsGXvqeWiOr7HHS2HSz4qkoYaiONZiOpeYH7bHVNSne81i5i3p0w5wXykq8R6b7TDp6OPYR18k4xgryzmU2Ar4qVthq19YFZD0X5OS4m6rrEnOgsvy1ANfg+6QoXJyycc5tjb1FAeg7FZ/Ccru4Cf/XFrqvgTD3epKSjYGveaW9tka/wKiYQfciwQQn17NJ6NdDGkbqplFhOEYtLmer69lX46588HpR/yvO2W3dReRB9Bv36LQNKo9YbsQ5C+6QGsAL2x4eb7u4zzr/OEzBFA==
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=opEG/b95Dx49/uLGBUnqMVxA1WeEidt3Xws0ZLRxJrM=;
 b=PytSXnBKjDdI+a3frXvTDnLxkJb0EzVNHHdXy23vErnvzuU1Nep++dCr6IaYMwlD+c2fbMlntknweR1CqlA71Zbl2Lo2YeIXIZuKsBbxBnHvDyvF9nAPsmU3ZFO/4AJXZw3HKmQrAHHN7zsjisKIG4JLEN1z+H7wQ5QfUtcm7Qw=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Andrew Cooper <andrew.cooper3@citrix.com>,
	"Orzel, Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Stefano
 Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v6 19/19] xen/cpufreq: Adapt SET/GET_CPUFREQ_CPPC
 xen_sysctl_pm_op for amd-cppc driver
Thread-Topic: [PATCH v6 19/19] xen/cpufreq: Adapt SET/GET_CPUFREQ_CPPC
 xen_sysctl_pm_op for amd-cppc driver
Thread-Index: AQHb8hcuzjUv9QY8PkCazI2v8DQHmbRBbryAgCA3tFCAAEHpAIAADdDQ
Date: Thu, 14 Aug 2025 07:34:25 +0000
Message-ID:
 <DM4PR12MB8451D475AED43F9884C83D53E135A@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20250711035106.2540522-1-Penny.Zheng@amd.com>
 <20250711035106.2540522-20-Penny.Zheng@amd.com>
 <796a9251-8b4f-4266-a31e-828d4da29f54@suse.com>
 <DM4PR12MB845131A7E81BD54B0334E3B2E135A@DM4PR12MB8451.namprd12.prod.outlook.com>
 <98aa5a7b-5268-41ae-a1d5-25028b0704b6@suse.com>
In-Reply-To: <98aa5a7b-5268-41ae-a1d5-25028b0704b6@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-08-14T07:34:16.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|PH8PR12MB6937:EE_
x-ms-office365-filtering-correlation-id: 96e4efe1-c62e-4c71-4f82-08dddb04fe9a
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?RmYzbjMyamFzZEhSbHYvU2Yvd1p5dGJmUVlUSHRkUGRib0JjSmFVUE1lemM0?=
 =?utf-8?B?bk5ITWVRYjFCdFc0UHk3RjFuY1gwZTZ1WXZ1cXVrdVVQNGRlN1FSdmpZL3BK?=
 =?utf-8?B?QUpTM2Q0aTV4RVRvSGo3eFpnNldVOHFMM0o2V2hBQWVxaUo3Z0xORUZqMnhr?=
 =?utf-8?B?bnJIRUw0Y0hpMUtwQUFxZGxtMkZhcTRLYTlJaGQ2WWhNTVBWeHYwZWhpUlhQ?=
 =?utf-8?B?dGQrS20xQmM4MGUwdThmNllPVVdjRUhVVHlZbis3VHJpYlEzS1pERmNHbFZ4?=
 =?utf-8?B?b0w5Z09RUjJCNHJkeG81NHFxalQ3Y1BJVnhFekd6dm4yQVc1NzFwQ0lVUUM3?=
 =?utf-8?B?WFF3VTBNbGpReXJueWhTcFBTdWkwQjVubkZzZEhMb09IdjI1eStGZnhITkxW?=
 =?utf-8?B?TXBFbjRQYjRSWlc0YzdSWnBqdjhVQ25iblBRT1B1eEc4ZjBPamlNTFJVSHdy?=
 =?utf-8?B?b2hTL1FlRTlvSG52bldUaWRLVXN2L0FVNGM5cGNKTnRhQ2FyU2pyTXZGNURy?=
 =?utf-8?B?NWZOZDAxRTRiRTN1UjhuMjRVcC9NMEtTcU4xRmJhdE91MnZBMEVENzF6YkFh?=
 =?utf-8?B?NGFjVURIYXMrTUlZTDBNQTBrOUFERGU1c1RjQVlYUmt6R3VGeGRLellaSkVx?=
 =?utf-8?B?S1pud0pROEdvN25waHBjSjBRZjVQWnNHbkdmWXpXSjUwSzRlcVZWZlZrUkJa?=
 =?utf-8?B?Z3Nxd0RjcUhjcFoyNDQ2cjlaU2puVEl4dGJWY2JIa2dIOEsxQ3BzanBWeUVv?=
 =?utf-8?B?eDFsLzE3VnJXbXJnamNFQ2xkQWVPTDVDVGRrazNsU3hnbURJbFRacnl4Z05Y?=
 =?utf-8?B?VE5YaC9keDVqTWQvM1lIeEh5KzZsZmNKaUtTbVRkd2x1OHBXdjhod29GbWxv?=
 =?utf-8?B?dGFhMDcyQ0w1dHg3aEtHc1FKOUdGWmNlMGRRdERnRVB2MEF2NVFWcjFPdkVP?=
 =?utf-8?B?QWM2NTZCTkxhZFpBSml4Yk9uRmtubGJvWWxFdFdweVZIZW0zT3FwNEl2S3o5?=
 =?utf-8?B?bU9VSlBXRjh4V1phbTBOV2svcVNUcVpPSER2ZEloaExFVFFWcTJBMDQrV0Fh?=
 =?utf-8?B?VnpacG9Za2NmNHVod0hpVmlwSnVwZ2JPQmg4dFRyZkdrY0pLN0NwTjgvSFRw?=
 =?utf-8?B?TlRoTDlIS24vOEoyVVRuSmJOemhucTN0MzZpdlJWNFk1K3YxNkYxZkJBbC9I?=
 =?utf-8?B?eHBuUVNRdlhrUEhMeHZEaEtlamRtQ0htYTJZdmRxMjVNS25sbGlCOWdyVndE?=
 =?utf-8?B?RE9NOFFJMFdkOW0yMW56TE52dFpRRUJqY2ZpTVVpZGFIQ2tFMHF0U2NwOEVr?=
 =?utf-8?B?WGwwY0tpd1FkSDBLeWFVYUdZdElIbmQ3N01EWXhxRHBXaDJqaG8vN3A5aC9G?=
 =?utf-8?B?UldFTGhWNDNwc1A4WWM3MXEveFNNZno5cmVVU0N1V3oxUG9layttemhGOGp4?=
 =?utf-8?B?SEoyVzZsazVpMHJoVUVxWThiWDBLL2VSem9DQ2hWNWw3UTBrNTY4aTBxajdj?=
 =?utf-8?B?N3ZtYm5VUTZheVJ0dXF3c1N6b0ZFc0J2ZTkrWHFTRmdBeGl3NC9NdFQzNWlJ?=
 =?utf-8?B?MWRSaDRsUlhEQ1E3Z24xeU5nOVdvNUVtcER3ZUlHS1ludEo2cE5uTWZsNTVD?=
 =?utf-8?B?bTljd296RUZLbjdNQWJScVF3Q1dOWUxKQzJnMEJGQ1Y3VDN5SGpJTS9XM2hI?=
 =?utf-8?B?M2w4eUFjdlRuUzNrSVJUZWM4RGpiNGtENXFXWVduZ3J1ZVpHZFFTUGxNSUo5?=
 =?utf-8?B?NlYzNUJ6NHEzV2VmRGJkUDFyMnllMzNoM2Q2ZmxkRHFYOUpDdHB4T3IyREJs?=
 =?utf-8?B?T3RvY1VqYmpGV1M1VnBmUGE3aElMS0dzdU1mdFVYSEZNcDZkVGNvZnIwZjlw?=
 =?utf-8?B?NUZnUkdSamxmb1VENXUzRU9BbG9NcHZYWnZWdk5hZGg0eVdWRnB4QlRyMTRy?=
 =?utf-8?B?YlR0UmxBT2JrN3VkVnlwMVFWYlI1WGJLSkdmOFZTQ0Y2a1BkNXo3cHlaUUhv?=
 =?utf-8?Q?TNBQsBYVxIo7fp3+CpVRyubMA4IQzQ=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?bmtXZXBYWnk2N080WnV0VlBleG5ZZkNSandqM1F4VnhTZGt4Sy85dmUzVzVh?=
 =?utf-8?B?U0xodWx5MGxmU0ZVOFNwbUx4Yk5rNmtSSWZ5Q2RQNTNxM1BUS0QzbW5MSnpu?=
 =?utf-8?B?VWV4cEs4akZLTWNIRWhMUkpHQVZ3UHBJTGh6K3ZBRGxHNTAxcEJBc3pxUURj?=
 =?utf-8?B?VGRJK0lEY0NKRk85OFhBTE9SdVQwL3g1WUhmSnEraEcwRlczNkl2Vk1hdzZ6?=
 =?utf-8?B?MDhVdkphZ0FzbVcyb3J2bmlXU0FBY3E0ZjJwd0lSZytleDZqSzUyR2EyZElS?=
 =?utf-8?B?SEh2bnd2YmpISkIvT09JS2psQ1A3blRVcFFpUUtPek96ZXBPZngxYzBUbFFW?=
 =?utf-8?B?TmVyaGhITCt1UEw0ZlUrRVpEYWhMYlpWZWZnc2gyTWxCZW9IYkVyRVRPSFZz?=
 =?utf-8?B?RVVmVWFjRnlLTFVKVHNEVTFEbnlJenFGUkZLN2tNNFNFNjBqYmVXbkE3c3Zn?=
 =?utf-8?B?RlVWaGFnWThmWDRlYjFSa2FyUVhqeXdPcENqenYxa1dPWUF6UGkzblJOT2ht?=
 =?utf-8?B?OTh0TzdBTW1RbG93RUFoYUM0WmhUZ3VLZU1OVWRWQ0paZFhyR3VLQWZoOHRJ?=
 =?utf-8?B?d1BQc0U5SCtGQ0V0MzhpUVUxRWRqSmpLZFBRTTRxcWdEV2YvczFmWWZMRWFm?=
 =?utf-8?B?L2dYUEZSMXZpQWNsQ0J0cXlqR1lhbm13RmxrT2pMWW55T01NSWd5T3pTcmtw?=
 =?utf-8?B?NDNmT3hMQ29CYUZWWWIzRk44dlczSlJLTnpxWSs4SEN4OUNyNlpqY21wRWZO?=
 =?utf-8?B?NUtDSXF1RnRjR281OENuQWZNSFAwWjU5UzFUeWhYTlZuODdYL2hVZVp4d1gx?=
 =?utf-8?B?WFBDcCtxdnVtSEo5aUd3NWNoYUtpbFp2NTdqak1qRVpEZ0lhZ0R1RWhtQkdE?=
 =?utf-8?B?Sy9IOEJsZHVoOFFrMENJZ01RTFdyVjVTVUIrazZBZmlCZzFSWmUxNDRXTkRk?=
 =?utf-8?B?WDFzdFRRRmtpblI5c1o5WDZwUlByUlQyL3d6d01pS29ZRGNidnkzeUV6RVZE?=
 =?utf-8?B?dGcreUQ0WFd2WmxpaGhGamlLd0NXUUN1cFJ5clg4VVJFS0taT3V5Yjl5aU8r?=
 =?utf-8?B?bG1sQkV5VkQyODR5VDRxZ0F0Vk9TTmk0TzVXUDZIcmlOcUc5QmtCMDBoYnpy?=
 =?utf-8?B?NzZRY3JzV3JlMitDU1ZvcXNzSEw3RXZtb2R6Ny9QMkw5R1Q0dU1RZk9UUmxL?=
 =?utf-8?B?THdrYkJzRGJUcWxldlNyM24vVm9FbXpIMXJtazFDYlk3cmZiZ0hpSXovbGhp?=
 =?utf-8?B?MENiMC85NzJsbUdvWVBNTUlKNkFDWTFXd3VTVWNIVnhsOWFpTDh3QVR6ZXJ0?=
 =?utf-8?B?N2J1UlVvUVR5RWlPMTVETHMybWEyeUdKNHZ5YndjNkFpZHNjcVlnTmovZXRI?=
 =?utf-8?B?TGwzSHB0NEppbHM1Nm1MNitaVmo5ODBFVStna2xNcTJKejBzWld2SW5wdUtB?=
 =?utf-8?B?QnhyMXh6SGpBdjNzS3U1VzkrVy9semViNW9kSXJwcDEyZk1VWkhRakJ4eGI3?=
 =?utf-8?B?NnMrUEJQMkdlSWtrcnF0YWZaR3E4RitwY09YSk1nYmduQkJFbG5KNllhOEls?=
 =?utf-8?B?ZXBEKzdOR1JwVU82NllmUVJBK2oyMjQyZHh6enVOemZJeVZZMEhFZWlnOER3?=
 =?utf-8?B?M1ltRUd4cWdHejMvNmNYU3BaZVBjdVJ1ZFJ0Y2JUamtZQ3lZWFhBK2ROUGFw?=
 =?utf-8?B?Vm9DcmpnTlNtMS9hbk0zd2t5djZhb2I3QTc2czBHc21JWUsrWnZPMEViNE84?=
 =?utf-8?B?RFN1c2l0OHBwNFBDeC94eStxZ05jN0UvSzUrdGJ3MENMZ3oyU3VZUnZLSmhl?=
 =?utf-8?B?VVByQlJNUDVsYmRrOUxBTHJVUzNKMytaODNlRlZGTFVTeGVqY01zZy8xcitW?=
 =?utf-8?B?SENDZngxNW91YUVqaHkvVW9EdjQ2OUdObG1TbjJZMXZxdyt6R2FNbVp5N21I?=
 =?utf-8?B?L0libzlzRnpLMEs5U0UxMktJZDZqTEY0WWFKUTAwRnZlWlhhNGx6OVB5VHow?=
 =?utf-8?B?aUVYMldvVm5hM0hxT2tKaUdaRUhaM09HcDlWZExRbHdGVHkxUkVva2cxc2Zn?=
 =?utf-8?B?MVdYWEtTYWdsbWxEUjUwOUkraUx6b3YvdG9iNXhFUTVDY255d2t6eTlzWVRk?=
 =?utf-8?Q?zzoo=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 96e4efe1-c62e-4c71-4f82-08dddb04fe9a
X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Aug 2025 07:34:25.3923
 (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: d0DlGNUcWHNPpXhypaBmDSCg9BDvL+LIC4fhm9D5ozDcyIoHcgP7baqJ81UxGA2hQefzrtBzYMDXT1gb0W+GDg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB6937

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFRodXJzZGF5LCBBdWd1c3QgMTQsIDIw
MjUgMjo0MCBQTQ0KPiBUbzogUGVubnksIFpoZW5nIDxwZW5ueS56aGVuZ0BhbWQuY29tPg0KPiBD
YzogSHVhbmcsIFJheSA8UmF5Lkh1YW5nQGFtZC5jb20+OyBBbnRob255IFBFUkFSRA0KPiA8YW50
aG9ueS5wZXJhcmRAdmF0ZXMudGVjaD47IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNp
dHJpeC5jb20+Ow0KPiBPcnplbCwgTWljaGFsIDxNaWNoYWwuT3J6ZWxAYW1kLmNvbT47IEp1bGll
biBHcmFsbCA8anVsaWVuQHhlbi5vcmc+OyBSb2dlciBQYXUNCj4gTW9ubsOpIDxyb2dlci5wYXVA
Y2l0cml4LmNvbT47IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz47
IHhlbi0NCj4gZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gU3ViamVjdDogUmU6IFtQQVRD
SCB2NiAxOS8xOV0geGVuL2NwdWZyZXE6IEFkYXB0IFNFVC9HRVRfQ1BVRlJFUV9DUFBDDQo+IHhl
bl9zeXNjdGxfcG1fb3AgZm9yIGFtZC1jcHBjIGRyaXZlcg0KPg0KPiBPbiAxNC4wOC4yMDI1IDA1
OjEzLCBQZW5ueSwgWmhlbmcgd3JvdGU6DQo+ID4gW1B1YmxpY10NCj4gPg0KPiA+PiAtLS0tLU9y
aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiBGcm9tOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3Vz
ZS5jb20+DQo+ID4+IFNlbnQ6IFRodXJzZGF5LCBKdWx5IDI0LCAyMDI1IDEwOjQ0IFBNDQo+ID4+
IFRvOiBQZW5ueSwgWmhlbmcgPHBlbm55LnpoZW5nQGFtZC5jb20+DQo+ID4+IENjOiBIdWFuZywg
UmF5IDxSYXkuSHVhbmdAYW1kLmNvbT47IEFudGhvbnkgUEVSQVJEDQo+ID4+IDxhbnRob255LnBl
cmFyZEB2YXRlcy50ZWNoPjsgQW5kcmV3IENvb3Blcg0KPiA+PiA8YW5kcmV3LmNvb3BlcjNAY2l0
cml4LmNvbT47IE9yemVsLCBNaWNoYWwgPE1pY2hhbC5PcnplbEBhbWQuY29tPjsNCj4gPj4gSnVs
aWVuIEdyYWxsIDxqdWxpZW5AeGVuLm9yZz47IFJvZ2VyIFBhdSBNb25uw6kNCj4gPj4gPHJvZ2Vy
LnBhdUBjaXRyaXguY29tPjsgU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwu
b3JnPjsNCj4gPj4geGVuLSBkZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiA+PiBTdWJqZWN0
OiBSZTogW1BBVENIIHY2IDE5LzE5XSB4ZW4vY3B1ZnJlcTogQWRhcHQNCj4gU0VUL0dFVF9DUFVG
UkVRX0NQUEMNCj4gPj4geGVuX3N5c2N0bF9wbV9vcCBmb3IgYW1kLWNwcGMgZHJpdmVyDQo+ID4+
DQo+ID4+IE9uIDExLjA3LjIwMjUgMDU6NTEsIFBlbm55IFpoZW5nIHdyb3RlOg0KPiA+Pj4gSW50
cm9kdWNlIGhlbHBlciBzZXRfYW1kX2NwcGNfcGFyYSgpIGFuZCBnZXRfYW1kX2NwcGNfcGFyYSgp
IHRvDQo+ID4+PiBTRVQvR0VUIENQUEMtcmVsYXRlZCBwYXJhIGZvciBhbWQtY3BwYy9hbWQtY3Bw
Yy1lcHAgZHJpdmVyLg0KPiA+Pj4NCj4gPj4+IEluIGdldF9jcHVmcmVxX2NwcGMoKS9zZXRfY3B1
ZnJlcV9jcHBjKCksIHdlIGluY2x1ZGUNCj4gPj4+ICJwcm9jZXNzb3JfcG1pbmZvW2NwdWlkXS0+
aW5pdCAmIFhFTl9DUFBDX0lOSVQiIGNvbmRpdGlvbiBjaGVjayB0bw0KPiA+Pj4gZGVhbCB3aXRo
IGNwdWZyZXEgZHJpdmVyIGluIGFtZC1jcHBjLg0KPiA+Pj4NCj4gPj4+IEFsc28sIGEgbmV3IGZp
ZWxkICJwb2xpY3kiIGhhcyBhbHNvIGJlZW4gYWRkZWQgaW4gInN0cnVjdCB4ZW5fZ2V0X2NwcGNf
cGFyYSINCj4gPj4+IHRvIGRlc2NyaWJlIHBlcmZvcm1hbmNlIHBvbGljeSBpbiBhY3RpdmUgbW9k
ZS4gSXQgZ2V0cyBwcmludGVkIHdpdGgNCj4gPj4+IG90aGVyIGNwcGMgcGFyYXMuIE1vdmUgbWFu
aWZlc3QgY29uc3RhbnRzICJYRU5fQ1BVRlJFUV9QT0xJQ1lfeHh4Ig0KPiA+Pj4gdG8gcHVibGlj
IGhlYWRlciB0byBsZXQgaXQgYmUgdXNlZCBpbiB1c2VyIHNwYWNlIHRvb2xzLiBBbHNvIGFkZCBh
DQo+ID4+PiBuZXcgYW5jaG9yICJYRU5fQ1BVRlJFUV9QT0xJQ1lfeHh4IiBmb3IgYXJyYXkgb3Zl
cnJ1biBjaGVjay4NCj4gPj4NCj4gPj4gSWYgb25seSB0aGV5IGluZGVlZCBoYWQgWEVOXyBwcmVm
aXhlcy4NCj4gPj4NCj4gPj4+IFNpZ25lZC1vZmYtYnk6IFBlbm55IFpoZW5nIDxQZW5ueS5aaGVu
Z0BhbWQuY29tPg0KPiA+Pj4gLS0tDQo+ID4+PiB2MSAtPiB2MjoNCj4gPj4+IC0gR2l2ZSB0aGUg
dmFyaWFibGUgZGVzX3BlcmYgYW4gaW5pdGlhbGl6ZXIgb2YgMA0KPiA+Pj4gLSBVc2UgdGhlIHN0
cm5jbXAoKXMgZGlyZWN0bHkgaW4gdGhlIGlmKCkNCj4gPj4+IC0tLQ0KPiA+Pj4gdjMgLT4gdjQN
Cj4gPj4+IC0gcmVmYWN0b3IgY29tbWVudHMNCj4gPj4+IC0gcmVtb3ZlIGRvdWJsZSBibGFuayBs
aW5lcw0KPiA+Pj4gLSByZXBsYWNlIGFtZF9jcHBjX2luX3VzZSBmbGFnIHdpdGggWEVOX1BST0NF
U1NPUl9QTV9DUFBDDQo+ID4+PiAtLS0NCj4gPj4+IHY0IC0+IHY1Og0KPiA+Pj4gLSBhZGQgbmV3
IGZpZWxkICJwb2xpY3kiIGluICJzdHJ1Y3QgeGVuX2NwcGNfcGFyYSINCj4gPj4+IC0gYWRkIG5l
dyBwZXJmb3JtYW1jZSBwb2xpY3kgWEVOX0NQVUZSRVFfUE9MSUNZX0JBTEFOQ0UNCj4gPj4+IC0g
ZHJvcCBzdHJpbmcgY29tcGFyaXNvbnMgd2l0aCAicHJvY2Vzc29yX3BtaW5mb1tjcHVpZF0tPmlu
aXQgJg0KPiA+PiBYRU5fQ1BQQ19JTklUIg0KPiA+Pj4gYW5kICJjcHVmcmVxLnNldHBvbGljeSA9
PSBOVUxMIg0KPiA+Pj4gLSBCbGFuayBsaW5lIGFoZWFkIG9mIHRoZSBtYWluICJyZXR1cm4iIG9m
IGEgZnVuY3Rpb24NCj4gPj4+IC0gcmVmYWN0b3IgY29tbWVudHMsIGNvbW1pdCBtZXNzYWdlIGFu
ZCB0aXRsZQ0KPiA+Pj4gLS0tDQo+ID4+PiB2NSAtPiB2NjoNCj4gPj4+IC0gcmVtb3ZlIGR1cGxp
Y2F0ZWQgbWFuaWZlc3QgY29uc3RhbnRzLCBhbmQganVzdCBtb3ZlIGl0IHRvIHB1YmxpYw0KPiA+
Pj4gaGVhZGVyDQo+ID4+PiAtIHVzZSAiZWxzZSBpZiIgdG8gYXZvaWQgY29uZnVzaW9uIHRoYXQg
aXQgbG9va3MgYXMgaWYgYm90aCBwYXRocw0KPiA+Pj4gY291bGQgYmUgdGFrZW4NCj4gPj4+IC0g
YWRkIGNoZWNrIGZvciBsZWdpdGltYXRlIHBlcmYgdmFsdWVzDQo+ID4+PiAtIHVzZSAidW5rbm93
biIgaW5zdGVhZCBvZiAibm9uZSINCj4gPj4+IC0gaW50cm9kdWNlICJDUFVGUkVRX1BPTElDWV9F
TkQiIGZvciBhcnJheSBvdmVycnVuIGNoZWNrIGluIHVzZXINCj4gPj4+IHNwYWNlIHRvb2xzDQo+
ID4+PiArICAgICAgICAgKHNldF9jcHBjLT5tYXhpbXVtID4gZGF0YS0+Y2Fwcy5oaWdoZXN0X3Bl
cmYgfHwNCj4gPj4+ICsgICAgICAgICAgc2V0X2NwcGMtPm1heGltdW0gPCBkYXRhLT5jYXBzLmxv
d2VzdF9ub25saW5lYXJfcGVyZikgKQ0KPiA+Pj4gKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+
ID4+PiArICAgIC8qDQo+ID4+PiArICAgICAqIE1pbmltdW0gcGVyZm9ybWFuY2UgbWF5IGJlIHNl
dCB0byBhbnkgcGVyZm9ybWFuY2UgdmFsdWUgaW4gdGhlIHJhbmdlDQo+ID4+PiArICAgICAqIFtO
b25saW5lYXIgTG93ZXN0IFBlcmZvcm1hbmNlLCBIaWdoZXN0IFBlcmZvcm1hbmNlXSwgaW5jbHVz
aXZlIGJ1dA0KPiBtdXN0DQo+ID4+PiArICAgICAqIGJlIHNldCB0byBhIHZhbHVlIHRoYXQgaXMg
bGVzcyB0aGFuIG9yIGVxdWFsIHRvIE1heGltdW0gUGVyZm9ybWFuY2UuDQo+ID4+PiArICAgICAq
Lw0KPiA+Pj4gKyAgICBpZiAoIHNldF9jcHBjLT5zZXRfcGFyYW1zICYgWEVOX1NZU0NUTF9DUFBD
X1NFVF9NSU5JTVVNICYmDQo+ID4+PiArICAgICAgICAgKHNldF9jcHBjLT5taW5pbXVtIDwgZGF0
YS0+Y2Fwcy5sb3dlc3Rfbm9ubGluZWFyX3BlcmYgfHwNCj4gPj4+ICsgICAgICAgICAgKHNldF9j
cHBjLT5zZXRfcGFyYW1zICYgWEVOX1NZU0NUTF9DUFBDX1NFVF9NQVhJTVVNICYmDQo+ID4+PiAr
ICAgICAgICAgICBzZXRfY3BwYy0+bWluaW11bSA+IHNldF9jcHBjLT5tYXhpbXVtKSB8fA0KPiA+
Pj4gKyAgICAgICAgICAoIShzZXRfY3BwYy0+c2V0X3BhcmFtcyAmIFhFTl9TWVNDVExfQ1BQQ19T
RVRfTUFYSU1VTSkNCj4gJiYNCj4gPj4NCj4gPj4gSG1tLCBJIGZpbmQgdGhpcyBjb25mdXNpbmcg
dG8gcmVhZCwgYW5kIHdhcyBmaXJzdCB0aGlua2luZyB0aGUgISB3YXMNCj4gPj4gd3JvbmcgaGVy
ZS4gSW1vIHN1Y2ggaXMgYmV0dGVyIGV4cHJlc3NlZCB3aXRoIHRoZSBjb25kaXRpb25hbCBvcGVy
YXRvcjoNCj4gPj4NCj4gPj4NCj4gPj4gICAgICAgICAgIHNldF9jcHBjLT5taW5pbXVtID4gKHNl
dF9jcHBjLT5zZXRfcGFyYW1zICYNCj4gPj4gWEVOX1NZU0NUTF9DUFBDX1NFVF9NQVhJTVVNDQo+
ID4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHNldF9jcHBjLT5tYXhpbXVtDQo+
ID4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGRhdGEtPnJlcS5tYXhfcGVyZikN
Cj4gPj4NCj4gPg0KPiA+IFRoeCwgdW5kZXJzdG9vZCENCj4gPg0KPiA+PiBXaGljaCBhbHNvIG1h
a2VzIGl0IGVhc2llciB0byBzcG90IHRoYXQgaGVyZSB5b3UgdXNlIGRhdGEtPnJlcSwgd2hlbg0K
PiA+PiBpbiB0aGUgbWluaW11bSBjaGVjayB5b3UgdXNlIGRhdGEtPmNhcHMuIFdoeSB0aGlzIGRp
ZmZlcmVuY2U/DQo+ID4+DQo+ID4NCj4gPiAgbWluaW11bSBjaGVjayBoYXMgdHdvIGJvdW5kYXJ5
IGNoZWNrLCBsZWZ0IGJvdW5kYXJ5IGNoZWNrIGlzIGFnYWluc3QNCj4gPiBkYXRhLT5jYXBzLmxv
d2VzdF9ub25saW5lYXJfcGVyZi4gQW5kIHJpZ2h0IGJvdW5kYXJ5IGNoZWNrIGlzIGFnYWluc3QN
Cj4gPiBkYXRhLT5yZXEubWF4X3BlcmYuIEFzIGl0IHNoYWxsIG5vdCBvbmx5IG5vdCBsYXJnZXIg
dGhhbg0KPiA+IGNhcHMuaGlnaGVzdF9wZXJmICwgYnV0IGFsc28gcmVxLm1heF9wZXJmLiBUaGUg
cmVsYXRpb24gYmV0d2Vlbg0KPiA+IG1heF9wZXJmIGFuZCBoaWdoZXN0X3BlcmYgaXMgdmFsaWRh
dGVkIGluIHRoZSBtYXhpbXVtIGNoZWNrLiBTbyBoZXJlLA0KPiA+IHdlIGFyZSBvbmx5IGNvbnNp
ZGVyaW5nIG1heF9wZXJmDQo+DQo+IEkgc3RpbGwgZG9uJ3QgZ2V0IHdoeSBvbmUgY2hlY2sgaXMg
YWdhaW5zdCBjYXBhYmlsaXRpZXMgKHBlcm1pdHRlZCB2YWx1ZXMpIHdoeSB0aGUNCj4gb3RoZXIg
aXMgYWdhaW4gd2hhdCdzIGN1cnJlbnRseSBzZXQuDQoNCkl0IG5lZWRzIHRvIG1lZXQgdGhlIGZv
bGxvd2luZyB0d28gY3JpdGVyaWE6DQoNCjEuIGNhcHMubG93ZXN0X25vbmxpbmVhciA8PSBtaW5f
cGVyZiA8PSBjYXBzLmhpZ2hlc3RfcGVyZg0KMi4gbWluX3BlcmYgPD0gbWF4X3BlcmYuIElmIHVz
ZXJzIGRvbid0IHNldCBtYXhfcGVyZiBhdCB0aGUgc2FtZSB0aW1lLCB3ZSBhcmUgdXNpbmcgdGhl
IHZhbHVlcyBzdG9yZWQgaW4gcmVxLm1heF9wZXJmLCB3aGljaCBpcyB0aGUgbGFzdCBzZXR0aW5n
Lg0KDQo+DQo+IEphbg0K


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 07:36:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 07:36:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080943.1441104 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umSVx-000395-Mq; Thu, 14 Aug 2025 07:36:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080943.1441104; Thu, 14 Aug 2025 07:36: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 1umSVx-00038y-KI; Thu, 14 Aug 2025 07:36:45 +0000
Received: by outflank-mailman (input) for mailman id 1080943;
 Thu, 14 Aug 2025 07:36:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xqZt=22=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umSVw-00038s-JE
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 07:36:44 +0000
Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com
 [2a00:1450:4864:20::62b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6cccc688-78e1-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 09:36:43 +0200 (CEST)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-afcb78f5df4so109001566b.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 00:36: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
 a640c23a62f3a-af929c6a157sm2424634766b.91.2025.08.14.00.36.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 00:36: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>
X-Inumbo-ID: 6cccc688-78e1-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755157003; x=1755761803; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=jOgg1PYdKhWydMHI4dwRsoiKUaoFOC6bcrKop3EEeR4=;
        b=NBGdIz046dVAYRg3vRmfeEjxVnPZ0qhbssi0D5bEz//QMkD3ro5bcrDTZ/A/axgtsf
         ZZlsvSMP0viaNuPJeFecjKNTg18OumD7kvqzQ3qdjaUJGcxHRCq4q63SwYMK2fJVRN/g
         1JsvVNVKYHgfoWPFDcuyLR+05sfNn2K9wkx4QgU9tbUJg4ho/vfuJPhQr9VCGA/aeMa9
         d+ZEfz7AX4XKhWBSF3FlBLRd8AQSo7JMf1JQY/Md83IS4ghMo0Y07cS+XNQu9pa6tUMl
         emZLv2c1ccEr6wOEqtq8nRZ2wWNd1DxsZOG4x6eMavLpMAKrOkxouvTNyOLhjzBAyE7H
         4iuA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755157003; x=1755761803;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jOgg1PYdKhWydMHI4dwRsoiKUaoFOC6bcrKop3EEeR4=;
        b=bpda/chS8NcAw8Sy6zgEw5nBY/Cd3+FIUf3E1Mh1h4UNqsCsuXKS5IL91KN6mL8569
         ueunu8PsMDDL+Tbgr6Kb0wYdG3uIoO5KBJJOvNGG/WZ03YtYaLVavhet62GtycNrKHTJ
         KAGks2KoqPMBI4LU9SkJ0C2wZK0Ibk/8jSlfTm30JtNl49c8g1IfvyjCJHxWJgeekV1M
         8RtflXpZ30Qwt8Bhko8x0j3rqloSve+1vVlmRC7z3wwGA/zWC58nRKlvQFOqXkyQy37N
         XhPAwhj5GAy6gZ53uTHlDCXDkRNuMfYsKw+b17n7+xmOol/52zBKBjiVky0RfmZyYTX/
         qT3A==
X-Forwarded-Encrypted: i=1; AJvYcCU6Hx9ayJsoYFRAJ5c6e5R8NRYVpdss6BX7rrsVdpJrwEsF35SheTuNbuk1LhtQ5ZfHVV1K/DBPChw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxX+Xytugk3tPJbPUI9UgAX6mf6f50Db/lAPJO0pSVI2SdZj8Cj
	UEHAVdMmFZCaSlimn743mldC022cPQJfbiRqGFY8o2hlLNPdiJrlD8yxAWlPec7eRA==
X-Gm-Gg: ASbGncvMvABX1uAdkea6g+jlTloEKqFXL8woztfg1QExyzGYH/oKyWktOBCLHqUY/WY
	nMNCYlwCbAg9ULSIVu8O2wLutYXLug6nxT79ZcoVtpCxSq35m1U1Jk5XSHUNTFt+lziDHvB2CNI
	MP3R/9HIj7r5EZFlRqwa64PJUf0nqMG7PzYTXifr+G4r3aV3KufKBeF+qSI+V/AK2/HvxmNkwwJ
	ax1nXklotB40le6KQtmmAloqWLZie12+D1P5uedegew42JYj+zsoxlGIkArUTIPkZ/K5zgHJpuX
	J1bloFaky446iMlkjd8JgUVt1YDG4gtTb43vcZRRmFRHWmpL/iLgisTPzTMKa8P71Mcr1e0vRuW
	w16UhB0/481EQF/b7+9GOtv2tbyNKBZXtrtu+8F3r6tmsQHVTrKXs132CAmnmwEHfE6iETwxDcr
	1zP1ddraCEDmkSMhhOwA==
X-Google-Smtp-Source: AGHT+IGm9gAcbOEuKpCXgyyPJpyfe2Ec7SrXGQO0SpQuJ+MEFfkGU+b8HNqDPf4FlW9L82wESV6fRA==
X-Received: by 2002:a17:906:7954:b0:af9:79a5:d635 with SMTP id a640c23a62f3a-afcb98ccfcemr186999166b.37.1755157003185;
        Thu, 14 Aug 2025 00:36:43 -0700 (PDT)
Message-ID: <0b55d5f9-35ad-4598-94ab-1aa4991c0e3a@suse.com>
Date: Thu, 14 Aug 2025 09:36:41 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 2/2] Address violation of MISRA C Rule 13.1 involving
 asm side effects.
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: sstabellini@kernel.org, consulting@bugseng.com,
 dmytro_prokopchuk1@epam.com, andrew.cooper3@citrix.com,
 Doug Goldstein <cardoe@cardoe.com>, xen-devel@lists.xenproject.org
References: <1283be3b76d76814af244bbca544f6a3b74a04de.1754689062.git.nicola.vetrini@bugseng.com>
 <c4da2554d94c3f7bd4b1e460dcaa27db382ece2f.1754689062.git.nicola.vetrini@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <c4da2554d94c3f7bd4b1e460dcaa27db382ece2f.1754689062.git.nicola.vetrini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.08.2025 23:40, Nicola Vetrini wrote:
> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
> @@ -437,6 +437,10 @@ write or not"
>  # Series 13
>  #
>  
> +-doc_begin="Consider the asm instruction to read an Arm system register to have no side effects."
> +-asm_properties+={"asm(any())&&child(text, ast_field(value,^mrs\\s+%0.*$))", {no_side_effect}}
> +-doc_end

Is this actually strict enough to not allow multiple instructions in the asm(),
where some of the others would yield side effects we actually need to respect?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 07:39:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 07:39:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080953.1441115 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umSYb-0003hL-3P; Thu, 14 Aug 2025 07:39:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080953.1441115; Thu, 14 Aug 2025 07:39: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 1umSYb-0003hE-0Z; Thu, 14 Aug 2025 07:39:29 +0000
Received: by outflank-mailman (input) for mailman id 1080953;
 Thu, 14 Aug 2025 07:39:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xqZt=22=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umSYZ-0003h8-8L
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 07:39:27 +0000
Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com
 [2a00:1450:4864:20::62f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cda515e1-78e1-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 09:39:26 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-afcb7ae6ed0so81243966b.3
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 00:39: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
 a640c23a62f3a-af91a21b0d0sm2502545666b.107.2025.08.14.00.39.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 00: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>
X-Inumbo-ID: cda515e1-78e1-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755157166; x=1755761966; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=9CnYmWfPzylu9pHC5FX/R1vhS+1vHEBkIpKoCjxOZoc=;
        b=bRNTLi0cX5k5n9EEYvbYfHYj4VtUYpAyvxuNOqke81nOr70Lc2AZiqvEeP1c0MrjSP
         nbmPa2Z/Fj0F9HUE7cekwyYEGVe1/839F58IpB+ZfbfZ1m0kHUXtbSxRQpsIEkQ+dyOC
         eOzF4lgUT5QATZ6/Wce3tX8i/sxkzZOrvtqe4SgXshlDpuw8Fbv/wW5aRET9qyiXqifv
         GOSVIuNUZllkHh69hDMgq/4EHVFO6vmlTSP9vNvF2D+CE12oN71kE20/Y09aNtMLJIrE
         mmYZiBnOC9LAoCE0tA0MxtwQx11bqvD5HF2ijho58eVShmE6lRw8lO2HYuqx81GPmKXF
         zChw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755157166; x=1755761966;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9CnYmWfPzylu9pHC5FX/R1vhS+1vHEBkIpKoCjxOZoc=;
        b=IRshbMcRq271lmawsC9B3MGUi49Xvvs9J5xf0RQv0GhhY/XDvJ1V6cCSfOIIRxhy3O
         1HI+H2gD8/x7Cq6P15p8G8ECt49QR6OJBJ2Y2ZTKsta3x6yw3aPOZnaqRdDK4WbZNxX8
         c/a+jTVCcf45ptWTFnSndck8Ry7ubdI411ALjyEWo/CH7Gild6e+99UPdEnIbk7yDY6R
         smKWU0pV3r0RBfIUw24SrYuQYIC4pvd42FdiZ1eqOkuHkauQ9q3S5JhAtYCr7gJwLOie
         V1cgfYXOTlVb4ivthF1IZyS6Yp4s7jWquO6xsGXsC6Y2eso7JTsSPqGMJEURbwniB/01
         oNTQ==
X-Forwarded-Encrypted: i=1; AJvYcCUidp6Hb2UHc49Ho/Afqzbh5H6D214bTZcBIJFKsLMygiqF4muwBainX7RjhKusNgR/5FlyS2IJE84=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy/buvcuNgRayEM9aNCI5McUwSwMwadR+vieePCbxuASaE0AQIY
	zUPGDacdHKVm+Ok9q08nCh8OZkXKkzPX+nzUJRIb7nWFWqFEu4sS4h/LKIK5zto4l1BiuobAXdm
	lAho=
X-Gm-Gg: ASbGncvslYVEPulsLK5slgrRFzocTA1vKPgst6W74rVt7mF9KKpuqzZsBXzBo3Euld0
	70zPn21bK5f3p9inf++0Er3c/b38ML+qX5+b1b9oLomQzGRAjEilwgdgmj3VfLKYH+jseto/lgP
	sqens5L21DOdLKzL+2eNKnnR+0E3ZEzoxjbfQYC2fqljJ//8szng5zfqHdsdSeNKVnfF7pknQRi
	qcwgqO7g+fQfWjDO9E/2txQ4+E7QRAqyAN5sx3yoZhNHZpf00CBfk34nxOvkVrSTAW+Hmx0wGPX
	qHSwYYmOyo29PBCNFtvvh/kkMr9V9Wz6rOzlCOsbpwpcQAQbVw5J2zeuLA1FmDTstXAbNqvpNU3
	D/sNHssGhiJbOpF82iVs/jJC3doihpPrrrrItGvjFeBWKBW0C42R/pmeG4LR16FVmCsjo0vmm22
	v7/+oxQkM=
X-Google-Smtp-Source: AGHT+IG5dzwH7pZHxyjrQwyLzJQBp30KZKhXY7sH97kKqpNYWX0DX3mwYxFymNb3O/Ai7UG/rxY+Qg==
X-Received: by 2002:a17:907:3c89:b0:af9:2b35:a8b with SMTP id a640c23a62f3a-afcb93a2721mr181029166b.3.1755157165707;
        Thu, 14 Aug 2025 00:39:25 -0700 (PDT)
Message-ID: <91e52887-bfca-4b66-98c9-a508e6e5709f@suse.com>
Date: Thu, 14 Aug 2025 09:39:23 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/cpu-policy: Drop workaround for pre-GCC-5 PIC issue
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>
References: <20250813230525.2435414-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: <20250813230525.2435414-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.08.2025 01:05, Andrew Cooper wrote:
> GCC 5.1 is the minimum supported toolchain version now.  Drop the workaround
> for the PIC hard register in earlier versions.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 07:48:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 07:48:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080966.1441124 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umShb-0005v4-17; Thu, 14 Aug 2025 07:48:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080966.1441124; Thu, 14 Aug 2025 07: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 1umSha-0005ux-Ur; Thu, 14 Aug 2025 07:48:46 +0000
Received: by outflank-mailman (input) for mailman id 1080966;
 Thu, 14 Aug 2025 07:48:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xqZt=22=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umShY-0005ur-UT
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 07:48:44 +0000
Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com
 [2a00:1450:4864:20::52d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 19fb5096-78e3-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 09:48:43 +0200 (CEST)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-6188b5b113eso965270a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 00: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
 a640c23a62f3a-afcab1be05asm246696566b.98.2025.08.14.00.48.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 00: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>
X-Inumbo-ID: 19fb5096-78e3-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755157723; x=1755762523; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=TTwdu2u9qxsxf+fQT0m0u9KDfD0pFtLdKsJjVyf7yeI=;
        b=LSh+NgnOp/8oU7C7UxYARo2us3xKozZ3FWt4qKTADTcQ7zYkdg7OxZL9AKUnQfZbxK
         wpoKqammWKfPQIHyLASZ4/fDujxdEFO1DcbP9rnaUNFrhZy86Q//3kbXSm+qXl3ppl+l
         H0ldlMzhP5mouK888W5qZSjvXZhEqlADbCkskOf490l0XfHYoVkLPPoQ5bJlOgL0Oqlv
         d09HSmtneYMcwOCsGQ5jJ5kbMWh/AiGkmnlYdUs2BhVnhLkAMU9o7lO6SIQxOFTql5bf
         AbW1PUstujCOqkGDkhIQBFDyULSH5IeXE6s1rcnik4E3Ph+/bMTKzJ1rvIQExzhaYz9H
         bs4A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755157723; x=1755762523;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=TTwdu2u9qxsxf+fQT0m0u9KDfD0pFtLdKsJjVyf7yeI=;
        b=add535zpBCeBku83LzOxJ9KPyOr/Esi76EYNCnoMq6JZg545XvU9ZUSisOoYkMJVbD
         kdALo4/zFixZG5P3o43c4EPcg9cG9BZxiokXXbYozdeEYIGfkrsRI60NjRz4+x0Bmxyp
         5uvV2d4ado9PsfK/NVo/LAgscrtxJZVEq97w/wHvsvB+r3n8PIMcCuoDvq24bdAPWl1p
         I8KfeX6XFzhl6Zmrx8irqsne0TdFWbF9JUvEGQat20A+Bn6VEZrV+QxFlYwas04FAsDt
         FpIWqLZn0EVrmgf+BJl6rA+slYGh8hbKeoZXf/9s99XbJUt/HI2t4ym2E6ZoF9bIh9Fp
         OHYQ==
X-Forwarded-Encrypted: i=1; AJvYcCUi2qlAjTbPXFLkYoGTcBPdoxo7kYbwgcYaEE+rrbfW8dQnXP0Hyp0e9GheIsF8w488p4pdKTTNdaw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzvHr9K9EWxqDc3yI4EXLti1hyoi6O0mBmqWvnFrjZFKv0uftWy
	vZDCvGmcIJ5CQNsUM0NuUCnwdLNM4ejo6uTFeUD9O+AU+si+KzO+hl/jCYOAVYuJ/w==
X-Gm-Gg: ASbGncsGmUnJdUJSqFvL+SW7foNha+VrvAfbIwSYIBF812TnjFLleVO8NvLqf4svLKw
	Q8CXJG2ShFp5u0WQUteEI/B+Gs1NIGkPurKA45BIxkXNl7X6K/njgAYxcJLdCF8BGHJCRTlOLWc
	/uUitBZ8BpBbAHyTZyftILkVAhJm+ve4KXOSrORptiIbhbE93zynm+6y5vjzC0CwP9ESCXEAmOu
	RS+sWnGKYX7M5kf2yHoGyuZiRIpZgwZed1HspnlPmrCrIvVlgDNHhhTiPBQTu7NZVTB3JR0OF7D
	+qXrhNy7n0aqqvHalyI3A6ryRFMMUjs9hYXC6exfhHfamtDNbRVVUZs/bGOMsVxlcgIHzCmPgG8
	aw0E+F8nVZUrSVssgaaY9UqW6vpj47QX7LSFY8RiDCg3rxzMGcfrgvFuh3dXXNCRk62PlhGczn+
	9IXXibIs5ABg2KSn9aAA==
X-Google-Smtp-Source: AGHT+IEDELgUrowk01ajVG9orMxszpvy0812M6T0dB3yV2jK8H9A3JFWvjKE4k5qROhjzIwOGQGdew==
X-Received: by 2002:a17:907:97cb:b0:ae0:a483:39bc with SMTP id a640c23a62f3a-afcb98ea4b6mr174023366b.46.1755157723185;
        Thu, 14 Aug 2025 00:48:43 -0700 (PDT)
Message-ID: <87420043-c081-4d2e-af09-cc7f8ae642ca@suse.com>
Date: Thu, 14 Aug 2025 09:48:41 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 3/3] xen/efi: efibind: Drop alternative define for old
 GCC versions
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, nicola.vetrini@gmail.com,
 xen-devel@lists.xenproject.org
References: <cover.1755111932.git.nicola.vetrini@bugseng.com>
 <4140895d7382e1e1d84b5f3988b497a7edd67034.1755111932.git.nicola.vetrini@bugseng.com>
 <a4ff322a-8cf3-4e8f-b243-6153e823eafd@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: <a4ff322a-8cf3-4e8f-b243-6153e823eafd@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.08.2025 00:39, Andrew Cooper wrote:
> On 13/08/2025 8:12 pm, nicola.vetrini@gmail.com wrote:
>> From: Nicola Vetrini <nicola.vetrini@gmail.com>
>>
>> Since the toolchain baseline for GCC is 5.1, there is no need for
>> this case.
>>
>> Signed-off-by: Nicola Vetrini <nicola.vetrini@gmail.com>
>> ---
>> Mentioned in https://gitlab.com/xen-project/xen/-/issues/201
> 
> I personally am in favour of this change, but in the past there has been
> objection to changing this header it is vendered from elsewhere.

The two lines Nicola is taking out altogether were our additions already
anyway. Playing with them ought to be fine. Context may better be left
intact. I'd like to note though that in gnuefi the detection logic has
changed, too. Maintainers may want to sync that.

As to me, earlier on, objecting to fiddling with imported files here:
Now that maintainership has changed, the new maintainers will need to
make up their take on this.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 08:08:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 08:08:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1080996.1441135 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umT0G-0001VZ-Np; Thu, 14 Aug 2025 08:08:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1080996.1441135; Thu, 14 Aug 2025 08:08: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 1umT0G-0001VS-Kw; Thu, 14 Aug 2025 08:08:04 +0000
Received: by outflank-mailman (input) for mailman id 1080996;
 Thu, 14 Aug 2025 08:08:03 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xqZt=22=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umT0F-0001VK-IT
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 08:08:03 +0000
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com
 [2a00:1450:4864:20::52a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ccae6063-78e5-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 10:08:02 +0200 (CEST)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-6188b6572faso751029a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 01:08: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
 4fb4d7f45d1cf-615a8ffbc39sm23734915a12.51.2025.08.14.01.08.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 01:08:01 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ccae6063-78e5-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755158882; x=1755763682; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=qjVqwR5/fAfM5wM5RwQC73jEFLvhLkKoQoxSL541WxA=;
        b=KK71Apkmi5eed0R/rRjvxCAlDA2AHudfOSpArwDIe2994kF+aqZmgp8kRbkJkon2NT
         lyXVztcoguU57Luw7XAtbtqL0BGakAcqeRQWPotmPIj28QbQUA0+vqvtHxLlscSSRlZq
         BNjpBqPO8YaLvCgIjyUhT7LivPRAkFJmhk/m7Q+8kMZ6sIyHFR7bAJkD/xN9NaTTBNG0
         0kVPOHHwokZeQA77JdH93esE+1dLNsKMXvAWOXmdMaS7cCg/U2TjFkfY6I+oAwnO8qQH
         K5AWMLEIKRhw4imhFt5UWDg0TdD3n+ddEZNRM3/CwNKJpOohp5zWw36LL/ZAtEaHrUA9
         kDfQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755158882; x=1755763682;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qjVqwR5/fAfM5wM5RwQC73jEFLvhLkKoQoxSL541WxA=;
        b=Df7rglsDsobhPStgR50WPFgDZmKvCwZqstKf1qC+Ti14DqIHNs2NptYTktQk2nq5UI
         0lFBCS6eb1gmJhipmafwpypiIIntxaKMbDK4rqKFRXnLVnOZME/3qeB+dGOZRyq/5ptW
         V5aszekp5tJenWUz4aR8OjO4g5zFQWp81doXzDDZBb9aJmQgX5MGWYQxKY1GadMfUuXL
         NqsSleZWTHKCeLKlhbUiQKf8yywvs8ivNeqCMsFw7jqV1sQzCnHYcd2gJ4hsHNey3Cip
         /VFs+X55W0MWVBhWE8P+Vir50IjKzM1quT1PZUd9vyD4zNdertVfiSKHMQ8/IE5veKbZ
         QOYw==
X-Forwarded-Encrypted: i=1; AJvYcCW8w8VsmlA05ftPZ+7zqIDUCdSJiovaUr6qJKTO135DUpl9zZ2mowX7MZfZrGIrnzAQKVf/SXz8vZE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yywl0kvlJhPrrgkqi7NVZzyvfEPMPuvI0S7au3wLrN1wmDH0bAB
	5AtbEtLJp5QkUn2sud9/UfsSqtbZFJ2sUx2DcsRSLGtYbqocSwaxZuntdyK3A7JTtg==
X-Gm-Gg: ASbGncvIoodb44dCRTqyAMHauI94pYdBogLaUnanx4hEBLIj15H6fu0VBGq3Cpl/96x
	ZCLRDiXKx1WoHxEgY5+133jwnszQaJ+JQgXxJW0frmK56aUgHCrC8RySa1E0lAfd8BOOOmQgca0
	V06AY8sxJKS9yZusT0zprFNruSXEkM1btxWzQyKlyiRYIssxzvNIcdJ88iXnc7BoZ43BrfcE47o
	kKBCLXzcKDEdx98RPgR1BJhZNJDQNqU3PqoMhRq0JmuFGVFR/ZzsSo0xtb69s4SJpwXMqnz27ya
	fTikbXhEXm6fNPLm2dS8DUsCSZfYakKM2YN+w7eZGqQaOJvftwBvpNsehhczBGbfhh/GuFYTDuD
	49AEcYm9/9XDLKEmZg/ejvxOaRj1X1muF4TacS/8UXM4W8PSFBam8K7SObfoKGAvXx6a3FBiL/i
	S5CFxvd3b2CQ/wh6XSEg==
X-Google-Smtp-Source: AGHT+IFHJs5EWd/B2P8ysoMtoSUeIV7mQjPhmy8pm+FLG7/YDg0XH1aIpJDKq7EWF/nWK+yEIm/MVw==
X-Received: by 2002:a05:6402:5106:b0:617:d98c:3fa4 with SMTP id 4fb4d7f45d1cf-6188b9dbcffmr1672335a12.20.1755158882000;
        Thu, 14 Aug 2025 01:08:02 -0700 (PDT)
Message-ID: <0fde3942-22e7-470c-ad70-aa2c574d10dc@suse.com>
Date: Thu, 14 Aug 2025 10:07:59 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 2/3] xen/macros: Drop alternative definition of
 BUILD_BUG_ON(_ZERO)? for old GCC
To: nicola.vetrini@gmail.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: <cover.1755111932.git.nicola.vetrini@bugseng.com>
 <d716610470ddd7da75789cfa546ed209ff24e1d1.1755111932.git.nicola.vetrini@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <d716610470ddd7da75789cfa546ed209ff24e1d1.1755111932.git.nicola.vetrini@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.08.2025 21:12, nicola.vetrini@gmail.com wrote:
> From: Nicola Vetrini <nicola.vetrini@gmail.com>
> 
> The toolchain baseline for GCC is 5.1, which supports _Static_assert
> in c99 mode

Hmm, interesting. I can confirm the behavior, but isn't this a bug? There's no
_Static_assert() in plain C99. Respective notes in the "Changes, New Features,
and Fixes" are also saying otherwise: https://gcc.gnu.org/gcc-4.6/changes.html
has "This support may be selected with -std=c1x, or -std=gnu1x for C1X with
GNU extensions." Nothing new is said in any of the respective documents up to
the release of gcc5. (In fact, the compiler accepts the construct even with
-std=c89.)

Our misra/C-language-toolchain.rst refers to a section in gcc12's doc which
doesn't mention _Static_assert() at all, afaics.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 08:20:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 08:20:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081020.1441155 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umTCB-0004Wt-Un; Thu, 14 Aug 2025 08:20:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081020.1441155; Thu, 14 Aug 2025 08:20:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umTCB-0004Wm-Rv; Thu, 14 Aug 2025 08:20:23 +0000
Received: by outflank-mailman (input) for mailman id 1081020;
 Thu, 14 Aug 2025 08:20:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=t1VE=22=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1umTCA-0004J0-6n
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 08:20:22 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20625.outbound.protection.outlook.com
 [2a01:111:f403:2415::625])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 82bc8842-78e7-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 10:20:19 +0200 (CEST)
Received: from SA0PR13CA0009.namprd13.prod.outlook.com (2603:10b6:806:130::14)
 by IA1PR12MB8237.namprd12.prod.outlook.com (2603:10b6:208:3f3::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.17; Thu, 14 Aug
 2025 08:20:13 +0000
Received: from SA2PEPF00003AE8.namprd02.prod.outlook.com
 (2603:10b6:806:130:cafe::e7) by SA0PR13CA0009.outlook.office365.com
 (2603:10b6:806:130::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.4 via Frontend Transport; Thu,
 14 Aug 2025 08:20:12 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SA2PEPF00003AE8.mail.protection.outlook.com (10.167.248.8) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9031.11 via Frontend Transport; Thu, 14 Aug 2025 08:20:12 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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; Thu, 14 Aug
 2025 03:20:07 -0500
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Thu, 14 Aug
 2025 03:20:06 -0500
Received: from xcbayankuma40.xilinx.com (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via
 Frontend Transport; Thu, 14 Aug 2025 03:20:06 -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>
X-Inumbo-ID: 82bc8842-78e7-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=C+PKR9niMwjCf60uqQkAxNURm6a9QL49sRt1ooye5AI+wikhWXZ0F8W3U2oykbUnXH83Zq0dRpOKTC/md3u9dEA8mX0FJ2cAwutaGZ2ZDUPjE8+meYrhHuJv8CQ6bul+dfEvrIevOg3chXczSgThFdI0T0CRdW+44rnErEUWYUlHS7u30VsVUCPrdfKM0uzVOsOadZly52diUSoX/4s564Sos+EcFpYMJpbGyhsd5HrGZov2nrZ09mAiCd5VCeaM7P5088SP8/RP7ONYQWkrtkVgidbrOzY4D/cAP9qmOxGpBonktwgWu7MJ87iyp/mdGWa0xdDTnQNiNfqtq0a5pA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=WmJ6+vdHYgowTVTBApXvjSDH5MRfDYQrN1q9jEV0aQw=;
 b=vEu02IwMbLCTlS/a6rhQa7OSLGUN99fz1C6O+Oz87XwjWVUceOQtdUe11dOKXX1u/TrnRWsZH78cRfXmysorrcpJWW10zS+ZjLeq+Qy6GXTuM7VlNkbYBrtnFyLOuv37Xg2OjrmqSXf7pqF9gLZD4pY9GQE+bq0wUnJzLt+pCIpp5NK2LSTOg7IbBgf+XW3DEe/XG5N2Ul6S4l4w8kIe2C/3oP+m+cl3VQ1LJVdh9U7P5Tqf7XGSOGfbZRURHI9cRCxTd5AxdkR16/HvgLWHtuGABwSkxGLcsizFw8KM9i+r1DqL5UXAYWtB8E9O9m2al9hHCr2C05VLUj5Y9J1JTw==
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=WmJ6+vdHYgowTVTBApXvjSDH5MRfDYQrN1q9jEV0aQw=;
 b=NkYZlWHcR4sJcNY+0/8xl4AE5e6SpX0udTz/KoisHV0mzUSuA/ywysmyfZbqr/Ti6RczdKzkFhtY2VoK8To0toyCRE5HYf3KG9mCOvkdu6zNifPy20shwlCYbfCXTuXOuq0mWwK5+egMI1pmaULAXWAXdBIC6Q9Cbx3WUxImXQg=
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=SATLEXMB03.amd.com; pr=C
From: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Ayan Kumar Halder <ayan.kumar.halder@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v2 0/2] R52 MPU support (for "Third series for R82 MPU")
Date: Thu, 14 Aug 2025 09:19:57 +0100
Message-ID: <20250814081959.3504145-1-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB05.amd.com: ayan.kumar.halder@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF00003AE8:EE_|IA1PR12MB8237:EE_
X-MS-Office365-Filtering-Correlation-Id: 0198acca-1fa8-42c7-4b50-08dddb0b63fa
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|1800799024|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?ekGZv6taioPcVvnGav0k3bbu0NwPktQjyBty5H6dW67OLed2qCU5z8FwxK1c?=
 =?us-ascii?Q?Y8QTDjX3Ws/JEIsLRSTN6YdIjtYfyHcxNDEf9o5XzfNPGvTo3wEeBjc0kis7?=
 =?us-ascii?Q?iLQcWEzQi+LJmGIbbIS6jynB1of6dA/5yagnAnSw3BHvzePaJ9py+80OJdlK?=
 =?us-ascii?Q?QinL9N/D9EgHAUHvRJzuLry4v6Fv8s22HhWhhU8160QrgIDDJz6Bb8SPIJ5y?=
 =?us-ascii?Q?o7oaYBK0+vHnwVd/F6QVTcWAY9I9Cl5IFcouvAYlXqXdsicQPD96BXXOn15Y?=
 =?us-ascii?Q?87SpcRc5je27++BE0rvaiHxBro3lgQ3VKANWzxWR8jLEVl2P/FX7+ZZOpAM0?=
 =?us-ascii?Q?ql9cR1/68ep836xpflA4LkV2449s/Nv6sTEAzxOi3JR8ltLAdVJJcLRunsb2?=
 =?us-ascii?Q?+p0t575hQT1dkxlCypmm1XBvCoK8sevaOayBhdmRtAqrv/WpfBjCKV4bcckt?=
 =?us-ascii?Q?FI0oWeIzzeNid6qMKb4xnhH2QtWriUHZCV08+t3GjY2fjQqzQQnILuzNCieZ?=
 =?us-ascii?Q?9df6PGEink13gU5jtI19vrcbkRbXexuvRziPO1Pd0jBk1E4XuRqIeeOTmJkk?=
 =?us-ascii?Q?GvwSKCwZbHKhBK5RMT8qvolOvTr6pwx0Xce2KYlpolp7czRU15hUARpluxyU?=
 =?us-ascii?Q?b1yVPaN9bFZv2O/Tq3sIMUfJ8PN6BMRE9jCYRyUW3ZUEgqKdLFhJexIriRR3?=
 =?us-ascii?Q?PtJ9GrcRSf1qG/2LtNwxKL2Ri1gY30hrFugPFCueRNhs2VW5DvycEjEmuP4H?=
 =?us-ascii?Q?iYXG5w69GlfmLglAKQbNAfaf+va+DlCyHM14jVRQ9PdwM6pFj87mFBl8HBIe?=
 =?us-ascii?Q?jg80WFjcm1LDEhXt//z6gKomFs8rV+NWduemln40LZsApfW8406quWZi1s28?=
 =?us-ascii?Q?be6ivBe/Ti+IFSeKWghR4ca4KDhUm6ZiQ6/82K/OSQx8JOo/InzzUcwAjnuP?=
 =?us-ascii?Q?cFVOOdojDKqEq8C3uryvkUEDVe76wt3Mz2vStAghJOJ+gpol0kXFR7dKELLP?=
 =?us-ascii?Q?1n0pE2o9OiQnw8TWY3IkbSjhSP4rQ9a6glPZT2vNQD0DsMEEFz8RgavHTnt1?=
 =?us-ascii?Q?atpPTuzxmuTZhV8nHA/5414HmaOGkqZmPNud43pm0etRzi5g5QQYLMcBO/kr?=
 =?us-ascii?Q?zf6mHYPd5Oj7jjEvThPR0vufbZX6dUbgjcwboVGRHtCcusmR4vPwN2ruTDw6?=
 =?us-ascii?Q?Q0ORP+M0Vx7SLm6Jz4UdN4K7ZovvKvDvi2SLbU+OqLceXIKct5b43iD7Hb3B?=
 =?us-ascii?Q?oy5WY7odbkZH8szBWLu46pWptwZMOOMD2OPn2yXBgr9syEQthp7t6wy1PyDo?=
 =?us-ascii?Q?ZlmEb+Gi/D44FsxqpZZCmaelagCp0zUkZexFLT9nZVPhIJCxkXtRRFtA2W6V?=
 =?us-ascii?Q?ugvdLRwxvlexpKlQTO1Hw2q7snGkjsxnln7Vmskc6zeKtSnUyiWyE8HVy+2p?=
 =?us-ascii?Q?4Bg6tC2HxPH6DnyzKqn08TQzv76+GpZSGksF6xh+2Xpa4HqZ7hRWoiW3wZBN?=
 =?us-ascii?Q?WUZf144RXyMnzAKO0Rl/Z2vaaqlV71QB/wuk?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Aug 2025 08:20:12.4250
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0198acca-1fa8-42c7-4b50-08dddb0b63fa
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF00003AE8.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB8237

Hi all,

This series is related to
"[PATCH 0/5] Third series for R82 MPU support". There is no build dependency
between the two series.

At the end of these 2 series, R82 and R52 boot till the same point
(approximately).

Kind regards,
Ayan

Ayan Kumar Halder (2):
  arm/mpu: Enable is_xen_heap_page and is_xen_heap_mfn for ARM_32
  arm/mpu: Disable map_domain_page for MPU

 xen/arch/arm/Kconfig              |  2 +-
 xen/arch/arm/include/asm/mm.h     |  2 +-
 xen/arch/arm/include/asm/mpu/mm.h |  5 ----
 xen/arch/arm/mpu/Makefile         |  1 -
 xen/arch/arm/mpu/domain-page.c    | 45 -------------------------------
 5 files changed, 2 insertions(+), 53 deletions(-)
 delete mode 100644 xen/arch/arm/mpu/domain-page.c

-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 08:20:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 08:20:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081021.1441165 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umTCD-0004lK-8s; Thu, 14 Aug 2025 08:20:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081021.1441165; Thu, 14 Aug 2025 08:20: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 1umTCD-0004l9-5P; Thu, 14 Aug 2025 08:20:25 +0000
Received: by outflank-mailman (input) for mailman id 1081021;
 Thu, 14 Aug 2025 08:20:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=t1VE=22=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1umTCB-0004Iz-EE
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 08:20:23 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20630.outbound.protection.outlook.com
 [2a01:111:f403:2418::630])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8574f6c8-78e7-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 10:20:22 +0200 (CEST)
Received: from BN9P222CA0001.NAMP222.PROD.OUTLOOK.COM (2603:10b6:408:10c::6)
 by MN0PR12MB5809.namprd12.prod.outlook.com (2603:10b6:208:375::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.20; Thu, 14 Aug
 2025 08:20:17 +0000
Received: from BL6PEPF0002256E.namprd02.prod.outlook.com
 (2603:10b6:408:10c:cafe::89) by BN9P222CA0001.outlook.office365.com
 (2603:10b6:408:10c::6) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9031.17 via Frontend Transport; Thu,
 14 Aug 2025 08:20:17 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL6PEPF0002256E.mail.protection.outlook.com (10.167.249.36) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9031.11 via Frontend Transport; Thu, 14 Aug 2025 08:20:16 +0000
Received: from satlexmb10.amd.com (10.181.42.219) 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; Thu, 14 Aug
 2025 03:20:14 -0500
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.10; Thu, 14 Aug
 2025 01:20:13 -0700
Received: from xcbayankuma40.xilinx.com (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via
 Frontend Transport; Thu, 14 Aug 2025 03:20:13 -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>
X-Inumbo-ID: 8574f6c8-78e7-11f0-a328-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=m6fgT4WIDuE9uBDj+D5h+PRQJrCTiIbUmBuiSThhgKl7Giy1CA3pzanbU3VN3DEhdfIZNK+kuiWoti+ModrHw22X7BDbUxVDTUevFsFsGDHmdfEjwSEnjIWfj++bGz9zNAjxCgJg7ClR9Lq9/z8tybjNMGJEtaZeQNIXOuWTWSUtkAgFsvq08SeRhZ6QUm3j6sdZbeM9YabCBWfH+6MId2MHc5lP02FVKSGEGdIY0+S4nymmxKRvrK00fgJ428M7W0xsPvPnVdWjOvOAz9E+A1UjjwgpFkkdqGneyAjq3BBlCRlxjHvpvyjqy/ep53EFkukMjTNjFgGgNpzy1V+4uQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/q6DBjblq4BFQXE8TX3uPDCYaMrDTqhgyOmJlXApn+M=;
 b=h6uD9s8J6LjNvKpRMDcuRsz9hVKX9wkWzqIdLYs+8JIKof+ye5ecojqz/vCjqrdCJAQSTdOJTNGU9ywfEayvmChNEnaX3LvsE0m6C8ESGiQbTfrb+l5KcLz78cmrjqPfoJSqLJiL0Nhbh5NSu5tDW2mdGdBoQjJ7oVuR5Ivp9BfHKnX1OF4cilQZ88zkr27uSA2UtlGwP8ONbKstkTYRpUxU02keDcnTdSSxd3G5Ggji79M4n59tynCXgvGr4PlqMCcpBms0RykOtq4Q8+0wUOFcGtx+SUk3gttPi3vfR9C5Cn5Gl7NFBSX9FmROhe5kvxxJQbxzvTFgkN2UiXF78g==
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=/q6DBjblq4BFQXE8TX3uPDCYaMrDTqhgyOmJlXApn+M=;
 b=Tlg037N3t3McxYfuKjF+tO6horIt5KDPKlxjghOcY1YwaSVOqUbvlBkFRehKIGzE3TaXVSGritwE8Ki/aYL8z5p2qsa6kNKsAzxnVirpFKeN5JGzGHs3nU1k4lM+5StNRsOnhCUoxo4POSst0L48aOFBvdNiawk3c+Q39zYK47k=
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=SATLEXMB04.amd.com; pr=C
From: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Ayan Kumar Halder <ayan.kumar.halder@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v2 2/2] arm/mpu: Disable map_domain_page for MPU
Date: Thu, 14 Aug 2025 09:19:59 +0100
Message-ID: <20250814081959.3504145-3-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20250814081959.3504145-1-ayan.kumar.halder@amd.com>
References: <20250814081959.3504145-1-ayan.kumar.halder@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF0002256E:EE_|MN0PR12MB5809:EE_
X-MS-Office365-Filtering-Correlation-Id: 13c86cbc-4b5e-465f-f3c3-08dddb0b668c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|1800799024|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?NcxKh3MwzKG8Uk50SoHxwgBIq/cy39rVWOW2132O3anOO0xFzlKMzMoEQtKu?=
 =?us-ascii?Q?fPbhgGIBEoCf1B2xoLTSR0P83cBiAWdscTtmKvDGTz012M+g/ZVi8K9U3kCm?=
 =?us-ascii?Q?DkzOI8d8Je8zLewtTvUtg8GoQ7XzG3e1caMX5yF0x2mhgGbzsdt246FIZa+F?=
 =?us-ascii?Q?LNVClmiIqe9fEbcI2pFazlFrYeUh+psOeyOTBByxyooWve7V8Mt+/qkLNU6I?=
 =?us-ascii?Q?ZmPzV7HSdenMd2zq84C8zcMVd7VRc+13nbh4MUwwP4ODWlW7aMkLymoEdKHE?=
 =?us-ascii?Q?AC/JvUdjkE6Oe06gAEdr9BVQFm9pLS5PtyeTBO7MDnlXY8QUZpBwh0W3ZjVX?=
 =?us-ascii?Q?E7du7rte5/O3tXbGGDqeddG7yrDGRv5anMepQE1quhRocCQhTUH4V700QmyV?=
 =?us-ascii?Q?Rjl7im98Evhsa1F6R7vUiPtgYj43Vh3kPA8XgZ+H2RRt8eFasFqu2KF/LwDG?=
 =?us-ascii?Q?f/VHUspogtpcHt3XcsW46a/G7jcYlwu9xYGqlNOGcqapCwjIwOyc+cK+EHgd?=
 =?us-ascii?Q?f0pIgEG2ruLR4gDImuz3ZhWaDdOzhsCqxuO4y+CIIqxOuUuLJVgiA2qmuMiW?=
 =?us-ascii?Q?LU5T3M8skP6N+8lugo7C/Z3KkNa/q5d9drH8jS8JSilYTQGq/aswvw7HtiDz?=
 =?us-ascii?Q?eXdUh7uOiJ8Tpfzuxo7aUnT9w4bEMTzYKVe/JwA0ftPSs9xmmFCELY+6q+wz?=
 =?us-ascii?Q?qk2Lm42jwdZHlbX2yp65QBlFqgL3PmXSsqn5c46VmGqRMdg/EOsUYbax4sce?=
 =?us-ascii?Q?fYaoAGpxUfyfj/0FbvqawTt2wdFevIYHBFaZNeXploQtzk9U4/PDEWMe22Oy?=
 =?us-ascii?Q?7OiL1994nC/64blCf9xL7fLO/JN2QQ4ccye10OA1cFEZWsrrdgiq4Vz65hAN?=
 =?us-ascii?Q?saW5K+MpEpYr4lNd4A3fdjpcwys3MDOR2bU+/Ef5qwpLpqjQp/VJ7w8vQe5q?=
 =?us-ascii?Q?bMIqYU+z2LZwCyzCdae1QxO9hzrXnTVfRVB02a+Qe0xyhqcAspmalJnoK6i0?=
 =?us-ascii?Q?O/bRdvdNpEW8KSYf1StbNLrZ/biDKqgheo+JgyN15CPyGQRsWuQVWO3x2/vS?=
 =?us-ascii?Q?bEKIwLGGI8qvO5JSXc6FHfLd1HNfd+n1TYQgTQEXwosO2JWW0Qw4+GkNUW3f?=
 =?us-ascii?Q?FX38xZhxHY91KPQo4jTR1vFgei5qx9bu6JaG8CEAWfzoNBKBDlV/Fu9VoUsb?=
 =?us-ascii?Q?J28/nFElySQnToK8lrG5ss6dU1JuNssepavBSF0wIooj4h9vRXTEqdC9gTyk?=
 =?us-ascii?Q?iAOj5EQhfLkzy3F4sncfyN4APLlBNrN5rvXbF2Y7eNcn1Xaa4Ac7hALK7uCG?=
 =?us-ascii?Q?dtTerXLySoLSS1ImtHZPGHsLSOgYwRpSQx0VmN5gcUGYURSsbG/dE9GLeZNI?=
 =?us-ascii?Q?NaOXnGUfdxEEj9+WcnL3J/U6kRhezy8Lk3OUdoN8GjViTx3CWQOjmMeS7zSf?=
 =?us-ascii?Q?5zMg8Dp3rv+nZee7ScqDTRwNy6t6SmD7wzdh0kmB1hSzIymIQexMdZ1BEsdd?=
 =?us-ascii?Q?cQ7bETQkCf7t9V3rodLwoX1m4mmyGMs0OiEp?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(1800799024)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Aug 2025 08:20:16.7674
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 13c86cbc-4b5e-465f-f3c3-08dddb0b668c
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF0002256E.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB5809

There is no domheap for ARM_32. All of the RAM is mapped and VA == PA.

Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
---
Changes from :-

v1 - 1. No changes.

 xen/arch/arm/Kconfig           |  2 +-
 xen/arch/arm/mpu/Makefile      |  1 -
 xen/arch/arm/mpu/domain-page.c | 45 ----------------------------------
 3 files changed, 1 insertion(+), 47 deletions(-)
 delete mode 100644 xen/arch/arm/mpu/domain-page.c

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index a0c8160474..5355534f3d 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -1,7 +1,7 @@
 config ARM_32
 	def_bool y
 	depends on "$(ARCH)" = "arm32"
-	select ARCH_MAP_DOMAIN_PAGE
+	select ARCH_MAP_DOMAIN_PAGE if MMU
 
 config ARM_64
 	def_bool y
diff --git a/xen/arch/arm/mpu/Makefile b/xen/arch/arm/mpu/Makefile
index 50f8fe4326..4963c8b550 100644
--- a/xen/arch/arm/mpu/Makefile
+++ b/xen/arch/arm/mpu/Makefile
@@ -1,6 +1,5 @@
 obj-$(CONFIG_ARM_32) += arm32/
 obj-$(CONFIG_ARM_64) += arm64/
-obj-$(CONFIG_ARM_32) += domain-page.o
 obj-y += mm.o
 obj-y += p2m.o
 obj-y += setup.init.o
diff --git a/xen/arch/arm/mpu/domain-page.c b/xen/arch/arm/mpu/domain-page.c
deleted file mode 100644
index df5e06b6db..0000000000
--- a/xen/arch/arm/mpu/domain-page.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-
-#include <xen/bug.h>
-#include <xen/domain_page.h>
-#include <xen/mm-frame.h>
-#include <xen/types.h>
-
-void *map_domain_page_global(mfn_t mfn)
-{
-    BUG_ON("unimplemented");
-    return NULL;
-}
-
-/* Map a page of domheap memory */
-void *map_domain_page(mfn_t mfn)
-{
-    BUG_ON("unimplemented");
-    return NULL;
-}
-
-/* Release a mapping taken with map_domain_page() */
-void unmap_domain_page(const void *ptr)
-{
-    BUG_ON("unimplemented");
-}
-
-mfn_t domain_page_map_to_mfn(const void *ptr)
-{
-    BUG_ON("unimplemented");
-    return INVALID_MFN;
-}
-
-void unmap_domain_page_global(const void *va)
-{
-    BUG_ON("unimplemented");
-}
-
-/*
- * Local variables:
- * mode: C
- * c-file-style: "BSD"
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- */
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 08:20:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 08:20:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081019.1441145 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umTCA-0004JI-Nt; Thu, 14 Aug 2025 08:20:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081019.1441145; Thu, 14 Aug 2025 08:20: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 1umTCA-0004JB-LB; Thu, 14 Aug 2025 08:20:22 +0000
Received: by outflank-mailman (input) for mailman id 1081019;
 Thu, 14 Aug 2025 08:20:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=t1VE=22=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1umTC9-0004Iz-RC
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 08:20:21 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20631.outbound.protection.outlook.com
 [2a01:111:f403:2412::631])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 84b632ca-78e7-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 10:20:21 +0200 (CEST)
Received: from BN7PR02CA0006.namprd02.prod.outlook.com (2603:10b6:408:20::19)
 by SA5PPF9176ED2F1.namprd12.prod.outlook.com
 (2603:10b6:80f:fc04::8d7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.21; Thu, 14 Aug
 2025 08:20:15 +0000
Received: from BL6PEPF00022573.namprd02.prod.outlook.com
 (2603:10b6:408:20:cafe::e5) by BN7PR02CA0006.outlook.office365.com
 (2603:10b6:408:20::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9031.16 via Frontend Transport; Thu,
 14 Aug 2025 08:20:15 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL6PEPF00022573.mail.protection.outlook.com (10.167.249.41) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9031.11 via Frontend Transport; Thu, 14 Aug 2025 08:20:14 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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; Thu, 14 Aug
 2025 03:20:11 -0500
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Thu, 14 Aug
 2025 03:20:11 -0500
Received: from xcbayankuma40.xilinx.com (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via
 Frontend Transport; Thu, 14 Aug 2025 03:20: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>
X-Inumbo-ID: 84b632ca-78e7-11f0-a328-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hafKtuwQIP8PTmZX+DKZIabhmP4XK6k9LYfq0lG0iAto5HGa8JtKr+k24c8+rTZgcL5ZpXOxKMCi2qUy1gfctFxThvLFi7QFHqzGDyJu3VaI+uYWnBnn+lEYfYjDBgRW0HXgIe6wjtdmVGDehV0ixNHtvwgtk9xo+OIdziUgsCoaQF+6i/SccuXIw9CMclFCRyZhvTDzRHrDwawp/dIvGgK0IXggpRiG6SdrV8t3JYD5hAkm1hh12USIxIOoYEf+wW7NZ0Uy1VcOOKsTXjxcESqa1ApKt9it5D5ZsM/sLTyIvtxxg6tv9W6II00HnqftuUwHltYmk31Za8zvJtsjRw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=diXe5/uLcabaESZz6UkvjwqUa3060riuACqXFLyGPyg=;
 b=Z3DzX6wiOrmk1XI5tIWtN/L3w/dkmpUbA0aPpnR8LmIhvMekNwuz+uf3GWWrz5lc6k3mwNQDymaHFVrLLf02C6HJSJ85gt41aXT0yWyiKPJ+UT+716dY13YwkLuDV8giZeNFNmnjyU5Uph9y81QJntFsQ0cXrR7xSMrdvuJ5jIfd5oTai3tgq8PgpNiym3ZE+Xbyne00sL+lZc5GCOfiYpvg6sGSEiyIG4N8J90qa/1nqcr/mzIDfECXqjg5neAZBBY4ROEhIGixp+xbzuh4YA+lEN2++jSvdQTqZZsFbI2XnaZxac5HPiA2HthKY0C93HT+/19XpcaDF+JcwArBxg==
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=diXe5/uLcabaESZz6UkvjwqUa3060riuACqXFLyGPyg=;
 b=ptyriUHtB2+BjR1PxVPaMRqXfOK6dNodZkaRZ6ck80UV4hvKDlTJF86E+KpGbusIfwYeo4WtOXnikiU09xVSAI5Un3IlSH7vz4BdI0C34SuToa+qKXaNBLM5ErYL1Menkl+uVqkgoAsa6wB4cg3FjvjfCTZbcxFyXHWjkewfvfQ=
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=SATLEXMB04.amd.com; pr=C
From: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Ayan Kumar Halder <ayan.kumar.halder@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v2 1/2] arm/mpu: Enable is_xen_heap_page and is_xen_heap_mfn for ARM_32
Date: Thu, 14 Aug 2025 09:19:58 +0100
Message-ID: <20250814081959.3504145-2-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20250814081959.3504145-1-ayan.kumar.halder@amd.com>
References: <20250814081959.3504145-1-ayan.kumar.halder@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB05.amd.com: ayan.kumar.halder@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF00022573:EE_|SA5PPF9176ED2F1:EE_
X-MS-Office365-Filtering-Correlation-Id: bed1fd0a-88ac-42c8-c0bb-08dddb0b657e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|36860700013|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?QD+ZwxooAZ9H6xWipmD+6vb0uZ7EhgrFL6fkT/vCIlku3UcqhQoulxdrv/8w?=
 =?us-ascii?Q?8uLuzQm9FfaAHZDj1+45Piam81dCLEleyprxDodksAqtsAeeixGqWQ3rsQPZ?=
 =?us-ascii?Q?EK0i6kecG/oQXyAH9VBgIdLhsAtS6xGPztRBffndI6XbcuLCT1MEVKwEx1ua?=
 =?us-ascii?Q?BFqbRgGF8GYP+3vwCIUKHzYNIfZO1U/xnxftFAUR9EKfDERNwjZJN3fvIfZ2?=
 =?us-ascii?Q?7jeHnUDBEVVm6Nuv3VbHJ93AAWTeSPOxBiX4GbMoPhND5PdVqyHK3MY0ATEw?=
 =?us-ascii?Q?UdtKyGeJZfpTzVYW7OZJ5B4Y67BqRjIhZJ7Z9ZYM3+HSRp64FVcSyh70YL9M?=
 =?us-ascii?Q?91Uds57AqUaoXFj9NipbPOS7wzqKU0BsGiy6gCOY1U4g1xA/wH5HnO6m0qfy?=
 =?us-ascii?Q?ULiolx1oSs4nOdb5fSXY8TJrjoeG8hfEnC1HJrmDM9ItgSRiUrbXLe43eKXc?=
 =?us-ascii?Q?J+vJrNQCOA3UvoKNS3vIy0N3sOz7PxbDnfWZXax19VQUrjRAsiZ3Jczg3HVD?=
 =?us-ascii?Q?eWLa1hAEBQXty9LqePmA78Ozf4YZKY64th2B1WZqImJV4o8zduYLa61kr4te?=
 =?us-ascii?Q?dNKMFZGWmsC5ha2PjIUfdtgheyUIJ0cimLpT1NaGAI3AzCG9Uqx9HzfoSdQ9?=
 =?us-ascii?Q?VawLibs4Tw6dBBSD/OTmxrZWw5besqlqNNCZcnvHJoOWi/XNisfUthBQxi94?=
 =?us-ascii?Q?cG9omx8iaPwttdik/B4cCEPJ53qsKoISAbWtv3tJeGD4Q+PGrQBguSzwg5uX?=
 =?us-ascii?Q?Qaov9pXg99l1y3mjTPoIMMI7bQePJZEh8pH+IWaAC1DgDaaC44c2dEOJz07/?=
 =?us-ascii?Q?je8XHgcJZRtl09MTdj1EcemRGIj1p/2I+G8ch1TyFpFDJeOPyehov1b/JTdv?=
 =?us-ascii?Q?7yYJV2enXgS153EyxA/1k8+iOPc1akkdE9MVlyAouMpgKR8vFzprOzJ/G22P?=
 =?us-ascii?Q?LqC8yNkiyTH2210Dlzlpktr4kBA+vqunQQLDVvKd6CIm4Oda29XYVx3G41CI?=
 =?us-ascii?Q?bIQ12C6+9mHDbP36wtlpdWMoxeyIL4FnDKQxSRYaMWTcaJpDzQUvub6FpNUG?=
 =?us-ascii?Q?rm6JEfqFN1+ehJVOsK0flE8pVLPEmhVR852Wrv9AsjTPLqfd9zhbdJao9uIq?=
 =?us-ascii?Q?uYz8xCTJxApo9j8yPEy7ZofLNBVUvfBp5sSN1ehwueOtqoEeBvoQhDmli8o2?=
 =?us-ascii?Q?S4Jbdna6ZA1iMXH8bBX6tdg/BJuUNkY114H5Jp8YT0uUD6OdQMLhqH66zzvY?=
 =?us-ascii?Q?p1LRqt36x7qY6TBnbkUI3wUxZkwIb+GfVmoQaCP6+u+xHPdvMisBzvck3b1A?=
 =?us-ascii?Q?w/WuffoppSowhkwpgmN3cBvUCBVYUPFJ+8YR0tpxDgc4BLPF8JvwG87uTyKB?=
 =?us-ascii?Q?FmHSLuowE0e3OoXzhMNchL4r5PDb+syC6QoRC3jDkFBNEavbslsay+H6Qlf2?=
 =?us-ascii?Q?ijUH8ZF3UiOZAdfQVZrOAsXG9unCJM8SFlXY3Gkq5/RhKzOxl+CGk+pjf9Jv?=
 =?us-ascii?Q?JCf2zFJvAAhpyDnWFLgHLyeQpJCKXlSIbffC?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Aug 2025 08:20:14.9968
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: bed1fd0a-88ac-42c8-c0bb-08dddb0b657e
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF00022573.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PPF9176ED2F1

In case of ARM_32, all of the RAM will be covered by a permanent contiguous
mapping (where VA == PA) and there will be a single heap. Thus, the memory
allocated from Xen heap uses PGC_xen_heap.
This is similar to the scenario described for
"CONFIG_SEPARATE_XENHEAP=n W/ DIRECT MAP OF ALL RAM" in common/page_alloc.c.

Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
---
Changes from :-

v1 - 1. Enable is_xen_heap_page() and is_xen_heap_mfn() definitions for ARM_64
or MPU (fixed a build break).

 xen/arch/arm/include/asm/mm.h     | 2 +-
 xen/arch/arm/include/asm/mpu/mm.h | 5 -----
 2 files changed, 1 insertion(+), 6 deletions(-)

diff --git a/xen/arch/arm/include/asm/mm.h b/xen/arch/arm/include/asm/mm.h
index fb79aeb088..7a93dad2ed 100644
--- a/xen/arch/arm/include/asm/mm.h
+++ b/xen/arch/arm/include/asm/mm.h
@@ -170,7 +170,7 @@ struct page_info
 #define _PGC_need_scrub   _PGC_allocated
 #define PGC_need_scrub    PGC_allocated
 
-#ifdef CONFIG_ARM_64
+#if defined(CONFIG_ARM_64) || defined(CONFIG_MPU)
 #define is_xen_heap_page(page) ((page)->count_info & PGC_xen_heap)
 #define is_xen_heap_mfn(mfn) \
     (mfn_valid(mfn) && is_xen_heap_page(mfn_to_page(mfn)))
diff --git a/xen/arch/arm/include/asm/mpu/mm.h b/xen/arch/arm/include/asm/mpu/mm.h
index c32fac8905..e1ded6521d 100644
--- a/xen/arch/arm/include/asm/mpu/mm.h
+++ b/xen/arch/arm/include/asm/mpu/mm.h
@@ -27,11 +27,6 @@ extern pr_t xen_mpumap[MAX_MPU_REGION_NR];
 
 #define virt_to_maddr(va) ((paddr_t)((vaddr_t)(va) & PADDR_MASK))
 
-#ifdef CONFIG_ARM_32
-#define is_xen_heap_page(page) ({ BUG_ON("unimplemented"); false; })
-#define is_xen_heap_mfn(mfn) ({ BUG_ON("unimplemented"); false; })
-#endif
-
 /* On MPU systems there is no translation, ma == va. */
 static inline void *maddr_to_virt(paddr_t ma)
 {
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 08:23:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 08:23:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081045.1441175 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umTEq-00061m-Mr; Thu, 14 Aug 2025 08:23:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081045.1441175; Thu, 14 Aug 2025 08:23:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umTEq-00061f-Jy; Thu, 14 Aug 2025 08:23:08 +0000
Received: by outflank-mailman (input) for mailman id 1081045;
 Thu, 14 Aug 2025 08:23:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xqZt=22=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umTEo-00061R-Hi
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 08:23:06 +0000
Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com
 [2a00:1450:4864:20::52b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e628d5d3-78e7-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 10:23:04 +0200 (CEST)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-6188b690517so959569a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 01:23: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
 a640c23a62f3a-af91a076724sm2539884266b.23.2025.08.14.01.23.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 01:23: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>
X-Inumbo-ID: e628d5d3-78e7-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755159784; x=1755764584; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=It75J2AnABio+dzN0d/u421JC9wsX5uNOX0PwBSQ/Vw=;
        b=S8hsFrZN/O2wVhPR4oMfrNedUOQPAB+TXZSXmZJkiX1nlQ7qSuwcTowBieJnVKq4C5
         Ig838hKMiKZnQhKTXITqJrFADklCpJQ4rowQavV0UyNp25iMagVr5lvmlnIblQzMpans
         CQ2cK6Tdq3FUiMKdul8RMaoqCbSVishvMS2Q/zJQM+ub4sK8/3yMlo9uhSFyJFFEyiGw
         8fzMVDrcaORisXBlYhBRnP14c6ZHrGcdtp+i4yUn5Y5O7/MpbiqWZM4biVKQpmOwjwKx
         vMd44Sm1AHuckp4/1A90JNahZpZedCSFACDWftcOVnnsIz4hqVXLSOgWRPNQwuSeOoPx
         mZ5A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755159784; x=1755764584;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=It75J2AnABio+dzN0d/u421JC9wsX5uNOX0PwBSQ/Vw=;
        b=PDOSFV6AoKruAIAKMtKeaRVEKn2blHfa+R8LfYb3wQll8H8xYUQXsUeoUqP1cQuRRY
         c0VYOZd46lLtsYn2CFLMGqPqIulSpLJhd/Xw7RjjNSLCrOHknUexOTm+57ZTmwmu9F1H
         H+sNUeD+Ga+UL3URS4InD1mWGQQOmAHb5rQVNoaqFARHJPFN2DsFi1FJAZTf+W8kKUe0
         Ae0MMRbck1eOppezYhOECf0/TReoKaod2ZcF3xvH+h0gKwhVJmtdMCV9XbzsUic993VV
         rxi4ISSTbvRWeNwVhn8hotuh76UEVNjKyKNtiCYL3WBfXFpSsnAh/DYJP/z2J9XtrgtP
         LMTQ==
X-Forwarded-Encrypted: i=1; AJvYcCWGytXgbDsvDXxNxCAjvGOIf6anVzwetoFl42uaCtWlGZYjYrKcZ0kE7Ewr3R4/cLwjlPwo+YefMg4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwOEEsIxB2J/V2WpUmPs28+y0PY8DwKnI5FlgXF2IV9UAAaQAXV
	evH16Z1FvHZqYWb49Brt5lMGs9EiVeDAxOSa6TN+Gqf/PZyCP/NvsTjgdFrSx5Sg9Q==
X-Gm-Gg: ASbGncsRC61GOMP6+yWp2xW3pt70D1/Rl08LE0Ttix24AXEyk3634N6rQlsQnzdRNiX
	psQSiXlOqXv0LhWTcC4GpXHXJVbwMOcoBdOtzqgsaBW2aepYfDengabxeXSghGi8ztw+9/AUCMl
	dvvg+yPo2eh100jzgMrKy4ruwJQNbDyZ2777fgGPH0zknZUq/aY6NFoHhd3xYPfo+FWm93oFgi/
	/1uZvvh8vfDHKVTBh+ozB7JtG02iNd9xQk9945yfs6fn5HOeDHBZtFNGkfcAZrgWJLEykUjMra0
	Ua6Vwvq70j0ktMYcA6BiY/44UleSxPdnPzKEb/HYl6khFteBHoG7xnedyCySOX+j6DcqtKoBYEh
	UDAkgzFE0BaruLqj2JSeCZSPY33zANvARuzW4Ixhe87Ed9rhBt05xClczCzIu7cObpev4dSqyDp
	xyIsU3Rck=
X-Google-Smtp-Source: AGHT+IFBVDIcvJYoiYblduBtPKP+jhJpJdcoLJYfr0YPbA4LTD0kJ2zUWsbjgZ1dF1z4VXkYzq2Ehg==
X-Received: by 2002:a17:907:1c85:b0:afc:a18d:f14d with SMTP id a640c23a62f3a-afcb93a22b3mr165000766b.7.1755159783604;
        Thu, 14 Aug 2025 01:23:03 -0700 (PDT)
Message-ID: <bda0c44d-d862-4045-8653-0d36d3ad479e@suse.com>
Date: Thu, 14 Aug 2025 10:23:01 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] efi: remove unreachable code in read_file()
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <52dbb5c5c1385b3b9d8522ef308ef15248973368.1755023074.git.dmytro_prokopchuk1@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <52dbb5c5c1385b3b9d8522ef308ef15248973368.1755023074.git.dmytro_prokopchuk1@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.08.2025 21:17, Dmytro Prokopchuk1 wrote:
> MISRA C Rule 2.1 states: "A project shall not contain unreachable code."
> 
> Function `PrintErrMesg(const CHAR16*, EFI_STATUS)` isn't intended to return
> control to its caller. At the end, it calls `blexit()`, which, in turn,
> invokes the `__builtin_unreachable()` function, making subsequent return
> statements in `read_file()` unreachable:
> 
>     PrintErrMesg(name, ret);
>     /* not reached */
>     return false;
> 
> This also causes unreachability of the code meant to handle `read_file()`
> errors, as seen in these examples:
> 
> In this block:
>     if ( read_file(dir_handle, file_name, &cfg, NULL) )
>         break;
>     *tail = 0;
>     }
>     if ( !tail )
>         blexit(L"No configuration file found.");
> 
> And here:
>     else if ( !read_file(dir_handle, cfg_file_name, &cfg, NULL) )
>         blexit(L"Configuration file not found.");
> 
> And here:
>     if ( !read_file(dir_handle, s2w(&name), &cfg, NULL) )
>     {
>         PrintStr(L"Chained configuration file '");
>         PrintStr(name.w);
>         efi_bs->FreePool(name.w);
>         blexit(L"'not found.");
>     }
> 
> The issue arises because when an error occurs inside `read_file()`, it calls
> `PrintErrMesg()` and does not return to the caller.
> 
> To address this the following changes are applied:
> 1. Remove `PrintErrMesg(name, ret);` from the `read_file()` function.
> 2. Replaced it with `PrintErr(name);`, which prints the file name and returns
>    control to the caller.
> 3. Change the `read_file()` return type from `bool` to `EFI_STATUS`, allowing
>    file operation result codes to be returned to the caller.
> 4. Properly handle error codes returned from the `read_file()` function in the
>    relevant areas of the code.
> 5. Replace `blexit()` calls with informative error codes using `PrintErrMesg()`
>    where appropriate.
> 
> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
> ---
> Test CI pipeline:
> https://gitlab.com/xen-project/people/dimaprkp4k/xen/-/pipelines/1980590118
> ---
>  xen/common/efi/boot.c | 57 ++++++++++++++++++++++++++++++-------------
>  1 file changed, 40 insertions(+), 17 deletions(-)
> 
> diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
> index 50ff1d1bd2..ddbafb2f9c 100644
> --- a/xen/common/efi/boot.c
> +++ b/xen/common/efi/boot.c
> @@ -132,7 +132,7 @@ struct file {
>      };
>  };
>  
> -static bool read_file(EFI_FILE_HANDLE dir_handle, CHAR16 *name,
> +static EFI_STATUS read_file(EFI_FILE_HANDLE dir_handle, CHAR16 *name,
>                        struct file *file, const char *options);
>  static bool read_section(const EFI_LOADED_IMAGE *image, const CHAR16 *name,
>                           struct file *file, const char *options);
> @@ -782,7 +782,7 @@ static void __init handle_file_info(const CHAR16 *name,
>      efi_arch_handle_module(file, name, options);
>  }
>  
> -static bool __init read_file(EFI_FILE_HANDLE dir_handle, CHAR16 *name,
> +static EFI_STATUS __init read_file(EFI_FILE_HANDLE dir_handle, CHAR16 *name,
>                               struct file *file, const char *options)
>  {
>      EFI_FILE_HANDLE FileHandle = NULL;
> @@ -791,7 +791,7 @@ static bool __init read_file(EFI_FILE_HANDLE dir_handle, CHAR16 *name,
>      const CHAR16 *what = NULL;
>  
>      if ( !name )
> -        PrintErrMesg(L"No filename", EFI_OUT_OF_RESOURCES);
> +        return EFI_INVALID_PARAMETER;

Why the change in error code? EFI_OUT_OF_RESOURCES() was used deliberately for
cases where the result of s2w() is passed directly into here.

Between this hunk and ...

> @@ -842,7 +842,7 @@ static bool __init read_file(EFI_FILE_HANDLE dir_handle, CHAR16 *name,
>  
>      efi_arch_flush_dcache_area(file->ptr, file->size);
>  
> -    return true;
> +    return ret;
>  
>   fail:
>      if ( FileHandle )

... this one there's at least one "return false" which you leave untouched, thus
wrongly reporting EFI_SUCCESS now to the caller.

> @@ -850,10 +850,9 @@ static bool __init read_file(EFI_FILE_HANDLE dir_handle, CHAR16 *name,
>  
>      PrintErr(what);
>      PrintErr(L" failed for ");
> -    PrintErrMesg(name, ret);
> +    PrintErr(name);
>  
> -    /* not reached */
> -    return false;
> +    return ret;
>  }

With the comment here - possibly adjusted to become a SAF one - all should be
fine with no other changes? Because of the other "return false" callers simply
can't assume the function would never indicate failure back to them. (New
"return false" could in principle also appear, which is why I think the base
structure wants keeping as is, including in the callers.)

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 08:24:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 08:24:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081054.1441184 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umTG6-0006ZP-VM; Thu, 14 Aug 2025 08:24:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081054.1441184; Thu, 14 Aug 2025 08:24: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 1umTG6-0006ZI-Sc; Thu, 14 Aug 2025 08:24:26 +0000
Received: by outflank-mailman (input) for mailman id 1081054;
 Thu, 14 Aug 2025 08:24:25 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=t1VE=22=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1umTG5-0006Z8-KR
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 08:24:25 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on2060c.outbound.protection.outlook.com
 [2a01:111:f403:2412::60c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 15c5a4bf-78e8-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 10:24:24 +0200 (CEST)
Received: from SN6PR16CA0037.namprd16.prod.outlook.com (2603:10b6:805:ca::14)
 by CY8PR12MB8299.namprd12.prod.outlook.com (2603:10b6:930:6c::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.17; Thu, 14 Aug
 2025 08:24:19 +0000
Received: from SA2PEPF00003F65.namprd04.prod.outlook.com
 (2603:10b6:805:ca:cafe::8f) by SN6PR16CA0037.outlook.office365.com
 (2603:10b6:805:ca::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9031.18 via Frontend Transport; Thu,
 14 Aug 2025 08:24:19 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SA2PEPF00003F65.mail.protection.outlook.com (10.167.248.40) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9031.11 via Frontend Transport; Thu, 14 Aug 2025 08:24:18 +0000
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; Thu, 14 Aug
 2025 03:24:18 -0500
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.1748.10; Thu, 14 Aug
 2025 01:24:18 -0700
Received: from [10.71.195.192] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Thu, 14 Aug 2025 03:24:17 -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>
X-Inumbo-ID: 15c5a4bf-78e8-11f0-a328-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HeuHauD+ZYxrgHe1vtZGC+GeDjjg9i3Ts0dwlyXyZqXxfLhFV/+gaMm85TA2I8GdyWW1z1pTAENUQFskWQtcUrT/1FSqne4g3ene2zvCwA58cC0RjIrN4QqKo2N/V4/bgs9PI1HgVA2ZTqvpBjaAEwhVo8nxAxufh2CVPJ6KnpkPr+Y3TsNqoML6ocC43TkwSpEUbxpQzFlxInkP4c50T9c1eDO/zCXrqeAfHZ8UaWWw/yys9JhKaFcGDJw+Mb8tOFJXPQdGM/XYZYOEN43ce2p+fh18RyocDkQkAkGCpenXReN+bJo++mrdz7kEImW+LN9cbyWqSW/W8sTOFXDJ8g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=OTZRlmrjVB346LvvpDuM1xxZqrvi3ClpQsGJNcNnxSw=;
 b=nj+Ci50fXUV3pHKSU0JLn5XUFVQCrQ1Rsjz0dtlEubV4Q2oLHn0U+MnEuo5Jylm1IeXCVcvF2f7AIAUHEG3oAfAGzoMfWb7kVsZOhlyrK+D5pmvR3IRCAEEJ5BW9NsOR7w+meDNkIXeenRD3gPEQ7yNZ2GN+dQFL6l9OKAsVYvvIKiKRO/b8kmMa0bPdz1RcMahwJ/S+Hh1Ae2nLpzQe034VAbcjAs9Yz064x3PHTDKswJb4hJjnk8l9TOPn6lZBWpwHqUrAr+j8UrLJirEBKrvj8mAUHHfmO18CEsxh5jJBCiBDl0yAY4IIDOuoiRrkO1zMBS9iw//BHWret8zYcQ==
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=OTZRlmrjVB346LvvpDuM1xxZqrvi3ClpQsGJNcNnxSw=;
 b=mv4gXNKli2oUFhEFnleCtU/gkiSvNlkTlmDx7sVW8dxhuB9cPjh4p3xGKU9RHt0dDEmpQIyebPiGSPRoaJPHX0je16IaotPsxlMG6JlsUz/q15kGccz3Y0xWNS5WuEYV0kDt2jJsZyYCpkAdr1QYE6G3Or0Ks4UOz4y90ByRZJ0=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <0496ce54-84b5-43a1-871a-b77d15460427@amd.com>
Date: Thu, 14 Aug 2025 09:24:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 1/2] arm/mpu: Enable is_xen_heap_page and co for ARM_32
To: Hari Limaye <hari.limaye@arm.com>, Ayan Kumar Halder
	<ayan.kumar.halder@amd.com>
CC: <xen-devel@lists.xenproject.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>
References: <20250807174529.595577-1-ayan.kumar.halder@amd.com>
 <20250807174529.595577-2-ayan.kumar.halder@amd.com>
 <ka6nb4b7xnqdbumg5rtwudf2ybvsblw7lgs3lk3wz6czoji7k5@p37x2tochoph>
Content-Language: en-GB
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <ka6nb4b7xnqdbumg5rtwudf2ybvsblw7lgs3lk3wz6czoji7k5@p37x2tochoph>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF00003F65:EE_|CY8PR12MB8299:EE_
X-MS-Office365-Filtering-Correlation-Id: 922bf963-9926-4daa-05ab-08dddb0bf6e4
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|376014|36860700013|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?NTBtazRiV0R2aDJpaEpqd3phQmgvODdqSC84VGhkRThxSWpVUUFUM1Z3MXFa?=
 =?utf-8?B?VTNucTRHL1Q4cE05T1JOeWJnQjl4TU5PQlFRVU5BVUtFcUdRZmU0RkVPMW1h?=
 =?utf-8?B?bGlGdEZ0bm1zS21IYS9MUU9DczVjdnlVMmNjSUpvUHN1RUdEdXkyWkE1eEx5?=
 =?utf-8?B?QW9kSnMvYWEwbUNJVHE3SllqVlQ3UG5RRE54ZlZ4ck9CeTdTL3pEMU1LZ3M2?=
 =?utf-8?B?VG5OVEt0eDNaUVplRHYyOFZ5Wm9xaXpaM00xeUlPZmE0aDZ1WW1DSUVSZmI0?=
 =?utf-8?B?TlZGb3VDb3lxeHU3YTdDVDk4ZkFORUNYelM3L29HdEpJWGNnNEprMVRhejdJ?=
 =?utf-8?B?UGZIUkt3ZlJGUk5xVGlFZWk4dTBIMXFzbk1Ed2pWZXBTalkzY3BkM3BBMDEw?=
 =?utf-8?B?bFF0K29kak5GbTJiL1ZZWUF4QnBUYmFVUFFOMU9BZnFpZGV3dGlwamVySWFx?=
 =?utf-8?B?M3hvSFlvSFFVZW9Bd0ZDWWdFRjJocklVRm9QUkhRZFU5ZTAwNjZuZnBtQS9z?=
 =?utf-8?B?TWQ2em5jcXpVZmg0TnlyOS8yZzc1UWs3Q2N5eGZzWDZhV2FKSlh2NWJvdUdI?=
 =?utf-8?B?L0cvMkkxSHZ2czBocE1mV3dFMGVkazFpeVIxdTl6bGZtT0V3eFhWRHlDVWF6?=
 =?utf-8?B?NWRhWDdjTXVwSjFPVnJEeTUrT2tLUU5jMmluOFNQbWpWMWFSZUxhRjg4MitR?=
 =?utf-8?B?K2JtNWFvb3FEY25XR1VMc2NnYWppYVo2Um5UTlcyalIyOHdIdVJDSDBzMk5B?=
 =?utf-8?B?ZFlzbUorQWNTeVF3TGlGN0dldEs2YVcxTE5zZlhmVUFiTGZGdHd1a0Q0OUli?=
 =?utf-8?B?OHB3bHh6Vy9yRnBGdDAvMkpPYU5Va0Y3ZFd3MFBJSDJEay9lN1hBdXpGdTBX?=
 =?utf-8?B?RCtRa2U3WFhmT09YUUVqd1l6aXpHQzZTaXBac0Njbjl3NFVTMHZpZU1KVnVH?=
 =?utf-8?B?cXkzMDJlZ3JmeVZPQ3dRN1duWUJ5MzArbG9SbytMcUNXYkZwalBHOG1WTFN6?=
 =?utf-8?B?TzlVS1V6ZzJ4ZmM0ZXFHUGhKaGgrWHdJSVYzN3pkNm4zRm4xQ3R4N2pHMDk2?=
 =?utf-8?B?ODB3YWxaZHU4VjE2WGowRVdaMGVubkhDbGU4NmZ1RXV6V2EwOEdRajR1REZW?=
 =?utf-8?B?Vzl3MnhmbnVEeWVrMzhFWnoxa3JRMmVaYndzeGtQcDZyS1Y0dnlrU1JUOWRa?=
 =?utf-8?B?eVIrdHk1VTNIY3JTNHRVeWE3bFd5VU10aWtaUnd4OWRmUVJkejdvQlJ4TUlw?=
 =?utf-8?B?c2hweDVqRFlicDl4QmpsTzlrWFUvdjFQTlZ4MFJ2dzNMNjh0OWdpN05kWDNQ?=
 =?utf-8?B?NGQ3MGwveC8vOFNjcmxYQStGbTYyTk1OM0JTS3AycjNDOVN6ZTRWOXh6UWw0?=
 =?utf-8?B?L0ZYZHR3TUVTSm45Ynp5NGRHTEhXUDFZTjcrSGpuQVVMcDk1N1RxTFA3WGlS?=
 =?utf-8?B?YTc2U1Azb01hVlBVWlFkNW9RWjZMdVdIcUlyZzhxclBud3RQT1htN0Q1T3c1?=
 =?utf-8?B?Zkg5Q3E2eGowdUg3aXFnQmxRbGphL2ZQQXVNZCtLcHd2bnhYWUJja01uZGc4?=
 =?utf-8?B?dU1Cay81SVIrb3dkRDcrVURLZmt1ODZudm5aR3dVZUxsaGdpcXV5QXpRald0?=
 =?utf-8?B?RlViRWhLYUJXQ0dta05OYjhaakcwd0N5T09YN1Q5QWJhaGNWcXZSeWp3TjNG?=
 =?utf-8?B?cE5Jclp1WWl5UjBqc2FORVdtQlNuRG1KeXNDWTViSXBEd2FZdDhJeFd3MGVR?=
 =?utf-8?B?cUJqZVNvZFlkc08xVncwekZHQVRyK0F1dllqU2dxZVpDbjZkZDhWelFwSCti?=
 =?utf-8?B?bFRDRDhaTjVqNUdFaHZKWXZDM0szcTNNWXB3NTB6OWtIdmp2andtdU1jc2t2?=
 =?utf-8?B?RlNxWi9SMlFvb0lxUTVwaHVCMW1qVGt4bFEyM2IyOWlLUWNYZFpCcXROODBk?=
 =?utf-8?B?WEdaaGtFclFqQWo4cERDL3lBNm42WWRmWGE0T3hhc2lDOXpmRFVrWG5yS00w?=
 =?utf-8?B?SllLQ1dnNGhPK3ZyWVFyR0h6VkMzT0ZNWUtNUkN1NUVHV0VoS1lEWi9IenNS?=
 =?utf-8?B?WGhJcnVzUzE5cDdXSGxRSlVpR3ZkeCtJcTdaQT09?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(36860700013)(13003099007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Aug 2025 08:24:18.9088
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 922bf963-9926-4daa-05ab-08dddb0bf6e4
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF00003F65.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB8299


On 12/08/2025 11:30, Hari Limaye wrote:
> Hi Ayan,
Hi Hari,
>
>> On Thu, Aug 07, 2025 at 06:45:28PM +0000, Ayan Kumar Halder wrote:
>> In case of ARM_32, all of the RAM will be covered by a permanent contiguous
>> mapping (where VA == PA) and there will be a single heap. Thus, the memory
>> allocated from Xen heap uses PGC_xen_heap.
>> This is similar to the scenario described for
>> "CONFIG_SEPARATE_XENHEAP=n W/ DIRECT MAP OF ALL RAM" in common/page_alloc.c.
>>
>> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
>> ---
> This patch breaks the build for ARM_32, CONFIG_MMU targets due to
> multiple definition of `is_xen_heap_page` and `is_xen_heap_mfn`. The
> pre-existing definitions are located at xen/arch/arm/include/asm/mmu/mm.h:30:9

Thanks for checking this and apologies for the build break. I should 
have tested this before sending.

I have sent out

[PATCH v2 0/2] R52 MPU support (for "Third series for R82 MPU")

This time I tested 
https://gitlab.com/xen-project/people/ayankuma/xen/-/pipelines/1982700286 
<https://gitlab.com/xen-project/people/ayankuma/xen/-/pipelines/1982700286>Â :)

- Ayan


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 08:30:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 08:30:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081068.1441195 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umTLV-0007PL-LI; Thu, 14 Aug 2025 08:30:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081068.1441195; Thu, 14 Aug 2025 08:30: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 1umTLV-0007Os-IA; Thu, 14 Aug 2025 08:30:01 +0000
Received: by outflank-mailman (input) for mailman id 1081068;
 Thu, 14 Aug 2025 08:30:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xqZt=22=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umTLU-0007OK-4V
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 08:30:00 +0000
Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com
 [2a00:1450:4864:20::634])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dd60d5b0-78e8-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 10:29:59 +0200 (CEST)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-afcb7347e09so112840166b.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 01:29: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
 a640c23a62f3a-af91a07670bsm2566680366b.8.2025.08.14.01.29.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 01:29: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>
X-Inumbo-ID: dd60d5b0-78e8-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755160198; x=1755764998; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ZS+FAAsV1v/JDUG6hNSg/NmI4etapTAOPd4x6PKUARQ=;
        b=AAiM6PrL2Wlxq/3HECG/b8Bo9lySwZce378pvERv4jqCm2d6msOMAjMrKHD7Fo8VCF
         sF/guuR3byg1iVcy+ehWjDhKLdaF5NsqclHfZ7/xbuHE1azmeR5pDBQ4vwuKQUKraXHW
         mfofp53z6hY0nU2KstXCKuIkrjxJxY0LDdNmbD5g7+AyMZ7TsO2ruZquurGsUmr/tQoz
         ydrogDWeHGAbdopek3+PP/WWAf3L5Qut8m0+7zbJ8nXjL27IznnO8VwsjdD+JK3SA+Cs
         q3fO+2GlzSKE4jiBlvKdXKnYUHGnm7D1j0ZpVfqYvWJx4Lofl5l3UEDyN3z175cb2mCp
         ia5g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755160198; x=1755764998;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ZS+FAAsV1v/JDUG6hNSg/NmI4etapTAOPd4x6PKUARQ=;
        b=ROjAmQxKuAaW9VDbY3aAbDJMGNK1R9dUvYGFw4bNMUXclZykTyBDMdsOWL9y5f/fEY
         yPyYxOzF48OvrsskfizWwF25/He/obLObfP77eJKm9Gjjol1BZcIWKt7ccxm4v5KOpaE
         cfz2HDpuPeKb/7SNxWHwvg9WDiPKjhkl0kgKSzCkYDSLUlcobmnvxtmyrJj48tJaW5Iv
         qVBLbUKJiU9uiNwLZiNML3F3e+UISgfMk3Q1/WDTfJb+oiIMsByzrhISWHeyH+taior3
         SkGonisPfwV/xEUq6rItt13eSLZs8LcapgOMs9HCw7M54+d5wJrOK9tBxXWc5PehaXWK
         RwcA==
X-Forwarded-Encrypted: i=1; AJvYcCU9q0YtxwxSCRwxJhN9Cs0m1cjdn/pSu9g+mNXO8hnwG8gVXi7UyzN5+6SfVNSU7cswZZDoDX5ULs8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzYzekKKELq/6J1CRik6pZOuCE3cOp12ZZ6EebKYd+pCCrCoL0H
	W36GugGWdxfXED3q4schAKVMu1kfQdbQpzcnzWUeb7ylLmyIS9gIvHxjbGgKq9egCA==
X-Gm-Gg: ASbGncsOrzPLRpFz084pcYqV1cxLOQ+Zs3G9ZYVhAdV1nY7p249wXhcXsXbOUs6To12
	1/7Z2RKeYYMgkViG1YfpZpRqhshdHzot7FzlXMU/Zk2al1t0XdXEHt/Q4Jy5F/+GFUm5oAl9zZi
	3Bdo/Lq+fFH0iigWGYlyfxSeF7k7T6JnN2Rz2hGtpU/oPIPXbO35Zj81r5EQtvLp9dfs8MAnM/+
	2u60W4DIf7LKgumHkV/SQH4V49bhgnBx/DFWQA0OjBbihGpByyJ/RsrC5gJLPtCiOHH+c+9FaJX
	mrtWjwLIRb9tSF1vQzJ5FOY+HW6prVwjrT//3xF09jbNWnTtNpfAKFA9SBJsZEtHo840Bk7sHSD
	cC7AEsxgBe66fi3tSxhTJKzwhlcPmo9cZCpSLc/V2cxIruQ1GcPLWeT8Asljmq42HXJ/eStGWTw
	8fu4QeJ812od22OI+NsyQK9tuVsiuD
X-Google-Smtp-Source: AGHT+IHNMktNT0SpLQWKmx2g2W3x2NMIuAF97fKWAmizPeDfqUZmSMzm7oeXaxFm/IbQgwku1a8uTQ==
X-Received: by 2002:a17:907:2686:b0:af9:467d:abc0 with SMTP id a640c23a62f3a-afcb991feb3mr187126066b.50.1755160198416;
        Thu, 14 Aug 2025 01:29:58 -0700 (PDT)
Message-ID: <99b499fb-cd3b-4afb-85c5-be00be722409@suse.com>
Date: Thu, 14 Aug 2025 10:29:56 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 19/19] xen/cpufreq: Adapt SET/GET_CPUFREQ_CPPC
 xen_sysctl_pm_op for amd-cppc driver
To: "Penny, Zheng" <penny.zheng@amd.com>
Cc: "Huang, Ray" <Ray.Huang@amd.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 "Orzel, Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20250711035106.2540522-1-Penny.Zheng@amd.com>
 <20250711035106.2540522-20-Penny.Zheng@amd.com>
 <796a9251-8b4f-4266-a31e-828d4da29f54@suse.com>
 <DM4PR12MB845131A7E81BD54B0334E3B2E135A@DM4PR12MB8451.namprd12.prod.outlook.com>
 <98aa5a7b-5268-41ae-a1d5-25028b0704b6@suse.com>
 <DM4PR12MB8451D475AED43F9884C83D53E135A@DM4PR12MB8451.namprd12.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: <DM4PR12MB8451D475AED43F9884C83D53E135A@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14.08.2025 09:34, Penny, Zheng wrote:
> [Public]
> 
>> -----Original Message-----
>> From: Jan Beulich <jbeulich@suse.com>
>> Sent: Thursday, August 14, 2025 2:40 PM
>> To: Penny, Zheng <penny.zheng@amd.com>
>> Cc: Huang, Ray <Ray.Huang@amd.com>; Anthony PERARD
>> <anthony.perard@vates.tech>; Andrew Cooper <andrew.cooper3@citrix.com>;
>> Orzel, Michal <Michal.Orzel@amd.com>; Julien Grall <julien@xen.org>; Roger Pau
>> MonnÃ© <roger.pau@citrix.com>; Stefano Stabellini <sstabellini@kernel.org>; xen-
>> devel@lists.xenproject.org
>> Subject: Re: [PATCH v6 19/19] xen/cpufreq: Adapt SET/GET_CPUFREQ_CPPC
>> xen_sysctl_pm_op for amd-cppc driver
>>
>> On 14.08.2025 05:13, Penny, Zheng wrote:
>>> [Public]
>>>
>>>> -----Original Message-----
>>>> From: Jan Beulich <jbeulich@suse.com>
>>>> Sent: Thursday, July 24, 2025 10:44 PM
>>>> To: Penny, Zheng <penny.zheng@amd.com>
>>>> Cc: Huang, Ray <Ray.Huang@amd.com>; Anthony PERARD
>>>> <anthony.perard@vates.tech>; Andrew Cooper
>>>> <andrew.cooper3@citrix.com>; Orzel, Michal <Michal.Orzel@amd.com>;
>>>> Julien Grall <julien@xen.org>; Roger Pau MonnÃ©
>>>> <roger.pau@citrix.com>; Stefano Stabellini <sstabellini@kernel.org>;
>>>> xen- devel@lists.xenproject.org
>>>> Subject: Re: [PATCH v6 19/19] xen/cpufreq: Adapt
>> SET/GET_CPUFREQ_CPPC
>>>> xen_sysctl_pm_op for amd-cppc driver
>>>>
>>>> On 11.07.2025 05:51, Penny Zheng wrote:
>>>>> Introduce helper set_amd_cppc_para() and get_amd_cppc_para() to
>>>>> SET/GET CPPC-related para for amd-cppc/amd-cppc-epp driver.
>>>>>
>>>>> In get_cpufreq_cppc()/set_cpufreq_cppc(), we include
>>>>> "processor_pminfo[cpuid]->init & XEN_CPPC_INIT" condition check to
>>>>> deal with cpufreq driver in amd-cppc.
>>>>>
>>>>> Also, a new field "policy" has also been added in "struct xen_get_cppc_para"
>>>>> to describe performance policy in active mode. It gets printed with
>>>>> other cppc paras. Move manifest constants "XEN_CPUFREQ_POLICY_xxx"
>>>>> to public header to let it be used in user space tools. Also add a
>>>>> new anchor "XEN_CPUFREQ_POLICY_xxx" for array overrun check.
>>>>
>>>> If only they indeed had XEN_ prefixes.
>>>>
>>>>> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
>>>>> ---
>>>>> v1 -> v2:
>>>>> - Give the variable des_perf an initializer of 0
>>>>> - Use the strncmp()s directly in the if()
>>>>> ---
>>>>> v3 -> v4
>>>>> - refactor comments
>>>>> - remove double blank lines
>>>>> - replace amd_cppc_in_use flag with XEN_PROCESSOR_PM_CPPC
>>>>> ---
>>>>> v4 -> v5:
>>>>> - add new field "policy" in "struct xen_cppc_para"
>>>>> - add new performamce policy XEN_CPUFREQ_POLICY_BALANCE
>>>>> - drop string comparisons with "processor_pminfo[cpuid]->init &
>>>> XEN_CPPC_INIT"
>>>>> and "cpufreq.setpolicy == NULL"
>>>>> - Blank line ahead of the main "return" of a function
>>>>> - refactor comments, commit message and title
>>>>> ---
>>>>> v5 -> v6:
>>>>> - remove duplicated manifest constants, and just move it to public
>>>>> header
>>>>> - use "else if" to avoid confusion that it looks as if both paths
>>>>> could be taken
>>>>> - add check for legitimate perf values
>>>>> - use "unknown" instead of "none"
>>>>> - introduce "CPUFREQ_POLICY_END" for array overrun check in user
>>>>> space tools
>>>>> +         (set_cppc->maximum > data->caps.highest_perf ||
>>>>> +          set_cppc->maximum < data->caps.lowest_nonlinear_perf) )
>>>>> +        return -EINVAL;
>>>>> +    /*
>>>>> +     * Minimum performance may be set to any performance value in the range
>>>>> +     * [Nonlinear Lowest Performance, Highest Performance], inclusive but
>> must
>>>>> +     * be set to a value that is less than or equal to Maximum Performance.
>>>>> +     */
>>>>> +    if ( set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MINIMUM &&
>>>>> +         (set_cppc->minimum < data->caps.lowest_nonlinear_perf ||
>>>>> +          (set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MAXIMUM &&
>>>>> +           set_cppc->minimum > set_cppc->maximum) ||
>>>>> +          (!(set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MAXIMUM)
>> &&
>>>>
>>>> Hmm, I find this confusing to read, and was first thinking the ! was
>>>> wrong here. Imo such is better expressed with the conditional operator:
>>>>
>>>>
>>>>           set_cppc->minimum > (set_cppc->set_params &
>>>> XEN_SYSCTL_CPPC_SET_MAXIMUM
>>>>                                ? set_cppc->maximum
>>>>                                : data->req.max_perf)
>>>>
>>>
>>> Thx, understood!
>>>
>>>> Which also makes it easier to spot that here you use data->req, when
>>>> in the minimum check you use data->caps. Why this difference?
>>>>
>>>
>>>  minimum check has two boundary check, left boundary check is against
>>> data->caps.lowest_nonlinear_perf. And right boundary check is against
>>> data->req.max_perf. As it shall not only not larger than
>>> caps.highest_perf , but also req.max_perf. The relation between
>>> max_perf and highest_perf is validated in the maximum check. So here,
>>> we are only considering max_perf
>>
>> I still don't get why one check is against capabilities (permitted values) why the
>> other is again what's currently set.
> 
> It needs to meet the following two criteria:
> 
> 1. caps.lowest_nonlinear <= min_perf <= caps.highest_perf
> 2. min_perf <= max_perf. If users don't set max_perf at the same time, we are using the values stored in req.max_perf, which is the last setting.

Hmm, I see. Yet then what about the case of max being set without also setting
min? Overall I'm expecting full symmetry in the checking that's being done.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 08:32:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 08:32:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081080.1441204 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umTOG-0000gF-2i; Thu, 14 Aug 2025 08:32:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081080.1441204; Thu, 14 Aug 2025 08:32: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 1umTOF-0000g8-Vz; Thu, 14 Aug 2025 08:32:51 +0000
Received: by outflank-mailman (input) for mailman id 1081080;
 Thu, 14 Aug 2025 08:32:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ppuf=22=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1umTOE-0000g2-Jk
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 08:32:50 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on2060c.outbound.protection.outlook.com
 [2a01:111:f403:2417::60c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 41aff753-78e9-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 10:32:48 +0200 (CEST)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 IA1PR12MB6603.namprd12.prod.outlook.com (2603:10b6:208:3a1::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.18; Thu, 14 Aug
 2025 08:32:44 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d%7]) with mapi id 15.20.9031.012; Thu, 14 Aug 2025
 08:32: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>
X-Inumbo-ID: 41aff753-78e9-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZytBgcuexLNpnmdPse0JZelFZMr7NYOMnjYG1hfdlHnbUOtmJeXHzdT75F8iIc9B/vIboz0w5r2rycqLQNAUXJ2gxMXrLJVBchepN9yvyA4CC5O0l8akTRwg+eyyDmQJkhqszwxrtfQgEAWEdY9zWRllv3X9rPAbufIgwpw80ZY/o4ixOgBXkBCVt9PmgCag0eIu4rfwsoGaMol8+e2xRScMYeM6lBK8Tum1ptVxE1WydSO2JSksMPqs8VcvYqW9SEbGoJL6/gvFGQML0oA/H0qoM27ouKmhttS4lOToi59sSBVpJKl8a7qik0IsfftlnF6BLkUq03EMhRAsBMCNNQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=iVn2cPQ3my/j5GmrZmYpz7wU+rbeI3mUiYx6S0ybkxc=;
 b=wjKLvKMd8IYgkwyce2VXqkfIyx42Fz630p5y4yqMYCdRTAPklXgtxfVQDb1zyYfJHGdrXc2QVwUzw2KSvEIMaHsSnuo8BCqKoOHBUhLk8tblgRy1LI/Q92BdmJx2RbhR6OU1fGX5cHJIVTI8brMxj6kw478yWsl+08cSqCJrxew20i2KKM+DXMdhcKpiTVX/SOoqF9yMN7vCy8mP5dS2tWwGv5KHgloY8YVGvKBvbTYoUexc4lU5fneL3WOWUtIr29n8eK7JJscc2w3JVx93uLzft/WWhAaYoKa4+zq1kgKkXVV0IOQFFj4km1EvLTv2KU+k2WSF4jxVyX0x/K7G3Q==
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=iVn2cPQ3my/j5GmrZmYpz7wU+rbeI3mUiYx6S0ybkxc=;
 b=bVSE7CK0TFER/62YbVzxjcxBtj72RaAVHIG3Js5RI3o5WbhwWoM2tqdM+evSJLrIWRJOIpPwIqdCmzOi8BotMM4DSaR8jgeiatInZ/wsxGWsmyj2weHOoBeSaIRplEPMIa6mQXE1SCPwB+OqS40ExKEI6Km2Ob7dU2GeopGLJAk=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Andrew Cooper <andrew.cooper3@citrix.com>,
	"Orzel, Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Stefano
 Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v6 19/19] xen/cpufreq: Adapt SET/GET_CPUFREQ_CPPC
 xen_sysctl_pm_op for amd-cppc driver
Thread-Topic: [PATCH v6 19/19] xen/cpufreq: Adapt SET/GET_CPUFREQ_CPPC
 xen_sysctl_pm_op for amd-cppc driver
Thread-Index:
 AQHb8hcuzjUv9QY8PkCazI2v8DQHmbRBbryAgCA3tFCAAEHpAIAADdDQgAAQ4wCAAABlEA==
Date: Thu, 14 Aug 2025 08:32:44 +0000
Message-ID:
 <DM4PR12MB8451303D484F1B5BE57A7192E135A@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20250711035106.2540522-1-Penny.Zheng@amd.com>
 <20250711035106.2540522-20-Penny.Zheng@amd.com>
 <796a9251-8b4f-4266-a31e-828d4da29f54@suse.com>
 <DM4PR12MB845131A7E81BD54B0334E3B2E135A@DM4PR12MB8451.namprd12.prod.outlook.com>
 <98aa5a7b-5268-41ae-a1d5-25028b0704b6@suse.com>
 <DM4PR12MB8451D475AED43F9884C83D53E135A@DM4PR12MB8451.namprd12.prod.outlook.com>
 <99b499fb-cd3b-4afb-85c5-be00be722409@suse.com>
In-Reply-To: <99b499fb-cd3b-4afb-85c5-be00be722409@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-08-14T08:31:28.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|IA1PR12MB6603:EE_
x-ms-office365-filtering-correlation-id: 8c5fcac3-24f4-4d31-91cf-08dddb0d2400
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?anIvZ2ZJaEhNWkdUb3ZKZTV0S0xuMUc0T3NmQ0FJT1cvQS9JTFRNeGNJSE1R?=
 =?utf-8?B?ZGJWeVA1N2VnNU5Uc044Q2YvUGVrRTJvTUNJZmw4eEFJRVh2NFpPUWtqSFJZ?=
 =?utf-8?B?dDFrSUJhbG96aHZNdktqMHRFM2RqbHE1WEJJM2dHcFpzeU5taldkNEEycUE2?=
 =?utf-8?B?Y1hmbHYzbFNZTU9FR3RIcU9WMUd1dmFjcStnV3QxNFZkMG5tckdLUWhQOHB4?=
 =?utf-8?B?eWdYdEsxdjk4UU96aHFZbXpDakt0aEhOaEF5c3Vab2ExQVVRWmJHNWxOZk0w?=
 =?utf-8?B?QUtpMVJjeUlPdTBJZzIydlBQUjEvVWRITWgrNHpMUzIwVVA5TUp0NUtOOERo?=
 =?utf-8?B?V0pQb0JqNWIvaEo5dUNkL21Wd0hoM2ViYUVIUXlzOTllV3JBb0tZdjJnMmo4?=
 =?utf-8?B?QUw1azJUa252TzdZNVorVzNQbEpYczBqS1NnQ29MaERmbElvUFBZcEsrYTZG?=
 =?utf-8?B?NDd2eFBxRmp2eGMyNXUrT1c3Wm1US25LdmJRZ2J0ZXZRSDhFNE9ZbUpkQ1FD?=
 =?utf-8?B?S3RKMnVxOW1ZR0x4SGhiMFNacktHdjgzejczaTQxbDRONG1kZEZUNDIxSW9Q?=
 =?utf-8?B?VG5Nb1A1eTBpdDZMV3JVR29aRUdOTjRDaTc2S2RVVjFabVBBWEQ5UENOU2Jn?=
 =?utf-8?B?dXYvamVBRGd1Z1JnWkJlMkxIWE1qK0c1cHFtMGNpMHRlYlpiUzNuT2syWmRM?=
 =?utf-8?B?czA0c0pzKzJDcmlVVThpUFBmcnRuV2taN283RDRqYWptcEhJbEUrQW5uQWZR?=
 =?utf-8?B?Tm5uSUlEY29DNUhqM3pNSGVUaEptWWxodGRHeTEwNmh5ZEFWTGlXNGgyMDJ3?=
 =?utf-8?B?OVF2dk1EUUZzNXpkQkd1VGtNbjNtcXZJY3Q5SGNncVlmckE3anQwbG83VHRX?=
 =?utf-8?B?dVVVTVNJMmM2M0JiWDgzYnVmUDVyY2tESFUrWVJZL3VibFFScVNLMzE2d09x?=
 =?utf-8?B?M3dNV2ZCaXdsTXVjZkU0RGtUZktiVFdseHdRUm8zam9wVDZHWVJyVHM3WkJj?=
 =?utf-8?B?RFcyajhCUUxaUzZsTlkyeDA4QmdLWDZveUt6ODRrNTNRK05paTlOZk5nQThl?=
 =?utf-8?B?cWkzSjV5OVFWcXUzZjVXSjJ1aFY3S3lUa2R3dEZWckVHUmxzZXZlTU5HREdV?=
 =?utf-8?B?d21pVzJIVlBjNkM2RDVBUnhJMzQwMEZvYitXbUcvbzNXdlpMTkhTYmt0QVFV?=
 =?utf-8?B?bU1hWFBpWVB4MGRWOXAweUhoblM3cEhTalF4YUpMck04Wk94V1NaYU5UVE8v?=
 =?utf-8?B?cFNETll2dTZObUxaZVZQSS9OQml0MkgvRGs0djExY0lEaDBDK25lVWc3Wlh5?=
 =?utf-8?B?aVFHMEtYN3FacXBrQjdma3U2V0lrZkErNXdLcEhQK3p5QXQ1RlRVNHZMeGd5?=
 =?utf-8?B?K3ZoZWZmSXdXK2FUK0lwVGNRQ04zcVVpNXBwR2VrVnpmZ2phb3BQTkl4eTZD?=
 =?utf-8?B?aW9ERkUrek1wNFdKcjdTaE0vRlgrUDdXVUVidzVKdlJlMUI0VlZvZXJNWWEx?=
 =?utf-8?B?UmxmcWFPcXlHUDN1VUtkZ3lkQWRVbGRHR1VhemtOa2hnalV0dkpqS0tCMFAx?=
 =?utf-8?B?bmROMzk5TjFRaEtzSU1SOW1VczlZN29hZy9vOFNxNkZuTm83RlF4RngrcHQy?=
 =?utf-8?B?YW9pNStzdEhBNm9uS0RNalgxeHU0RjVWSWVwbTh1R1BNd2ZaVlhIYWFmdHpP?=
 =?utf-8?B?N2psL0sxaEJkRjYwNjNWOUtFQUJTdEhBa21zbmpwekZYU0h6T2RsOHFDOHVG?=
 =?utf-8?B?ZTFMQ1lYSzRlRFVETlcrbGpIR1BlZUtodTkwc2NOUlVjUmgveXhwL2I0cXRN?=
 =?utf-8?B?NC9za1ZwSVlwd0swZmNOcGx2Q1dteldCTXRnZDBLK00vSGlSUjRGenJLeU5k?=
 =?utf-8?B?SGkzandVWkNvUlNabmlqazhkK0pFZitlSS9WS29GQUI2blp3cERnUlQ1ZUN6?=
 =?utf-8?B?RjREbTI4ZUtCeWIvVWhIYyt3WXBBSDhWV1c1VWpORW5iaEQyWWVRSzlOQnpX?=
 =?utf-8?Q?5TGqSOGpM+yXUj5AM48OqZ+2k5uY/I=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?MWxpQ0NrYnh4cHhaclV5MUQ4MkdUd2I2ZFpXRTU1QWphN2xGcHpwTWdJMThJ?=
 =?utf-8?B?Rm1LUkRpQWpWK0J6bHBJTzFRUXU0SzFwQjhSM293aG1LSDBDZk5sd0dDWUVH?=
 =?utf-8?B?ZEU2a1JpTm1BWkE5TlNSTXBaTlJDQjM4VndFbU80U2VrcXFoOTFucGkyOWlY?=
 =?utf-8?B?MDJNZDJHWEg2Z3pwekh0UmI5cXdHTVJOVHFEVEp5eDJPVGIvRDFuaURaRnZt?=
 =?utf-8?B?TnpFemlTT3FVeHovbHdOcHNWNmErREVZTGNzSEkvVE8vNDBIWDgrZUw5V3B4?=
 =?utf-8?B?Q1Fobmg5eVdQWGJOeW5paWpLeDE5MDR0U0NjK3ViRktpWXd4RGp0SW9ZQnJV?=
 =?utf-8?B?MFpSZzlMNUxsbENGc2k5T0xTUG5Td2FvMkQxdzhBMzM4cW9MYjkvY1ZMdkVl?=
 =?utf-8?B?eWc3NHRJMGs4Z0htUWMyQzV3bGlmZHJtVlVkREpRSzBxY3BrWituS2pzWEJM?=
 =?utf-8?B?Z3Awb09kbjBFNlVxemxVVStNVXp2bzJLM2FwY0ZaRWdqTVd1ZEtkT01wOG5L?=
 =?utf-8?B?Rk1qak1MbTZiTWJ4SEVSeE1OZFhCbk80emlFZFFSRnA2dEd2c2wwODNMeEdE?=
 =?utf-8?B?cTFXU1QxUG1MSXpWU2lRaGVMOVFzUnNrWWI1ZVBPZHArN1dXRXl6UFN1QVpT?=
 =?utf-8?B?TkRWYjhzU1lmSTZYTFVFajg2VEY4b3I4cXRtSkxmSmhDOWUybVBLTXRTVHVk?=
 =?utf-8?B?U3JlajlCWWorVXZmUDg1WXQ2VFdPb2JsRVR2OUFBenhQZkN6ZnBIb2tqZzl3?=
 =?utf-8?B?alRrVTh0WVlRaW8yZVNXbVlzWGtFN2dLaXNzdldBazNKQ3p5SGtKMU1CVVgz?=
 =?utf-8?B?YkR6VFduMlQ3VlBqeGR4dGxRUGVzTFNpY2h2TW5ESVRLQTVseXl6Qm45RE5I?=
 =?utf-8?B?UWVNN1pPOEMvem9UUHpDZWRWbnYwTnZac2UyNUhuTWdMckZ2V1JvY25Xby8v?=
 =?utf-8?B?bWJrSmpiT0ZLb0I0QW9LQkVxN1lZK3NWK09VUExWSlBuYmN6c0FjL3k3SHN5?=
 =?utf-8?B?UTdmaUxaeXY0N2RTd1Vmd3V0Q1NoTkpzVlVzd0x0NkVJeG10THIzUmI3K2pi?=
 =?utf-8?B?MzFmLzRLY2x5RExZa0tVWWpWd3FIREVIZkx5S2xVeS9XbG8xdXVBR0E3STRk?=
 =?utf-8?B?WkxlU0xmY045ZDFEWFJrTWNWMGFLUVJaa3NPSElJakxFMjhaa1RoNnlSbzl6?=
 =?utf-8?B?VE4wamN4blJQZW52aTFxZGRhQnMyMHZXZzNzdHZha3F4dnZBNWtUY0pVRUhI?=
 =?utf-8?B?R2hLQkxFc2Y5Y2FrMXZUSVNKQ3h4a3NGYjdSbFAyTXJKanJVcWkxUnZ3TEFE?=
 =?utf-8?B?dTlrdTRQSitLS3F2SmljRmpjL3ExL3Ayc2VtNUFxeE5VbCs0UjVHSVlkYnJL?=
 =?utf-8?B?Q0YyN0FTeTduVmthRWx6bm4rYTlDS1gvdmFQdkNVb2xtcElzWHk4d2hjOTJS?=
 =?utf-8?B?dy9TNmxqQzVaekh2alI5dkVZUTNzNmJPOXRHaW5YWWVmSVlKNWd3OFRkYkJn?=
 =?utf-8?B?YnVvMTFEVW42TGk3bU9nY2lTQllTcDgza095c2d0R1BISkRGaVpCQmtUenZX?=
 =?utf-8?B?STd5SEh5RlAzclBJaG9zOXlCSnU5STFaYkVOYW1ra0syNCtwM0lKVExXQUIx?=
 =?utf-8?B?ekQwY3Rmc2dlVHNiVWJyT0RYRXF5WFpQTEp0dWs0UUg2L2sxN21XWVBqRUhO?=
 =?utf-8?B?ZldFcFlkTk1Qb1UwZjdFek4xUjhEWkc3Q3VyYmU2YmhvOE1QNEI1S0w2Qll5?=
 =?utf-8?B?RFZuc1lpdTNKNE9UNjhlQW9SSXVtTTJNR2pyVGNWTTlzRjk4TnJ2MFpXZXox?=
 =?utf-8?B?Mkw3L1pBYmpiOWhOZkFRaC8xUkJHaGFyZEZUN0E4MkRSbFdkSUVVSDE2U0Y1?=
 =?utf-8?B?bTdoRkh5NTJrb0Q4WUhrMGVHRVd5WFlQaE05azNNa3Rid3R2aGNxTEVpZGdW?=
 =?utf-8?B?cDUwQ05RclZFeVlZYi92d0VlNzVjcFpGamJrV2xkR3poU0p5eUMvMjBUbllH?=
 =?utf-8?B?QjkzTVJwR0J4aUozMCtwVE4xUEh0N2pWVmtOa05lSGdLMEYvZXU2LzVzR09q?=
 =?utf-8?B?S0lxMGlkY3J6UmRNRDE3T1dFbzRWRENUZThLZitLTERsU3l3czFrRklXQjJw?=
 =?utf-8?Q?IjlY=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8c5fcac3-24f4-4d31-91cf-08dddb0d2400
X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Aug 2025 08:32:44.1104
 (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: eO0U4+LPD87efgxtp0gopVJn29nz7/nb/dHDN3I27SHshqUBf2W751W5wVK6GAM1QgVrz0L4kxbC2s+cEwaKzA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6603

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFRodXJzZGF5LCBBdWd1c3QgMTQsIDIw
MjUgNDozMCBQTQ0KPiBUbzogUGVubnksIFpoZW5nIDxwZW5ueS56aGVuZ0BhbWQuY29tPg0KPiBD
YzogSHVhbmcsIFJheSA8UmF5Lkh1YW5nQGFtZC5jb20+OyBBbnRob255IFBFUkFSRA0KPiA8YW50
aG9ueS5wZXJhcmRAdmF0ZXMudGVjaD47IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNp
dHJpeC5jb20+Ow0KPiBPcnplbCwgTWljaGFsIDxNaWNoYWwuT3J6ZWxAYW1kLmNvbT47IEp1bGll
biBHcmFsbCA8anVsaWVuQHhlbi5vcmc+OyBSb2dlciBQYXUNCj4gTW9ubsOpIDxyb2dlci5wYXVA
Y2l0cml4LmNvbT47IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz47
IHhlbi0NCj4gZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gU3ViamVjdDogUmU6IFtQQVRD
SCB2NiAxOS8xOV0geGVuL2NwdWZyZXE6IEFkYXB0IFNFVC9HRVRfQ1BVRlJFUV9DUFBDDQo+IHhl
bl9zeXNjdGxfcG1fb3AgZm9yIGFtZC1jcHBjIGRyaXZlcg0KPg0KPiBPbiAxNC4wOC4yMDI1IDA5
OjM0LCBQZW5ueSwgWmhlbmcgd3JvdGU6DQo+ID4gW1B1YmxpY10NCj4gPg0KPiA+PiAtLS0tLU9y
aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiBGcm9tOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3Vz
ZS5jb20+DQo+ID4+IFNlbnQ6IFRodXJzZGF5LCBBdWd1c3QgMTQsIDIwMjUgMjo0MCBQTQ0KPiA+
PiBUbzogUGVubnksIFpoZW5nIDxwZW5ueS56aGVuZ0BhbWQuY29tPg0KPiA+PiBDYzogSHVhbmcs
IFJheSA8UmF5Lkh1YW5nQGFtZC5jb20+OyBBbnRob255IFBFUkFSRA0KPiA+PiA8YW50aG9ueS5w
ZXJhcmRAdmF0ZXMudGVjaD47IEFuZHJldyBDb29wZXINCj4gPj4gPGFuZHJldy5jb29wZXIzQGNp
dHJpeC5jb20+OyBPcnplbCwgTWljaGFsIDxNaWNoYWwuT3J6ZWxAYW1kLmNvbT47DQo+ID4+IEp1
bGllbiBHcmFsbCA8anVsaWVuQHhlbi5vcmc+OyBSb2dlciBQYXUgTW9ubsOpDQo+ID4+IDxyb2dl
ci5wYXVAY2l0cml4LmNvbT47IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVs
Lm9yZz47DQo+ID4+IHhlbi0gZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gPj4gU3ViamVj
dDogUmU6IFtQQVRDSCB2NiAxOS8xOV0geGVuL2NwdWZyZXE6IEFkYXB0DQo+IFNFVC9HRVRfQ1BV
RlJFUV9DUFBDDQo+ID4+IHhlbl9zeXNjdGxfcG1fb3AgZm9yIGFtZC1jcHBjIGRyaXZlcg0KPiA+
Pg0KPiA+PiBPbiAxNC4wOC4yMDI1IDA1OjEzLCBQZW5ueSwgWmhlbmcgd3JvdGU6DQo+ID4+PiBb
UHVibGljXQ0KPiA+Pj4NCj4gPj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+
IEZyb206IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4NCj4gPj4+PiBTZW50OiBUaHVy
c2RheSwgSnVseSAyNCwgMjAyNSAxMDo0NCBQTQ0KPiA+Pj4+IFRvOiBQZW5ueSwgWmhlbmcgPHBl
bm55LnpoZW5nQGFtZC5jb20+DQo+ID4+Pj4gQ2M6IEh1YW5nLCBSYXkgPFJheS5IdWFuZ0BhbWQu
Y29tPjsgQW50aG9ueSBQRVJBUkQNCj4gPj4+PiA8YW50aG9ueS5wZXJhcmRAdmF0ZXMudGVjaD47
IEFuZHJldyBDb29wZXINCj4gPj4+PiA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT47IE9yemVs
LCBNaWNoYWwgPE1pY2hhbC5PcnplbEBhbWQuY29tPjsNCj4gPj4+PiBKdWxpZW4gR3JhbGwgPGp1
bGllbkB4ZW4ub3JnPjsgUm9nZXIgUGF1IE1vbm7DqQ0KPiA+Pj4+IDxyb2dlci5wYXVAY2l0cml4
LmNvbT47IFN0ZWZhbm8gU3RhYmVsbGluaQ0KPiA+Pj4+IDxzc3RhYmVsbGluaUBrZXJuZWwub3Jn
PjsNCj4gPj4+PiB4ZW4tIGRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+ID4+Pj4gU3ViamVj
dDogUmU6IFtQQVRDSCB2NiAxOS8xOV0geGVuL2NwdWZyZXE6IEFkYXB0DQo+ID4+IFNFVC9HRVRf
Q1BVRlJFUV9DUFBDDQo+ID4+Pj4geGVuX3N5c2N0bF9wbV9vcCBmb3IgYW1kLWNwcGMgZHJpdmVy
DQo+ID4+Pj4NCj4gPj4+PiBPbiAxMS4wNy4yMDI1IDA1OjUxLCBQZW5ueSBaaGVuZyB3cm90ZToN
Cj4gPj4+Pj4gSW50cm9kdWNlIGhlbHBlciBzZXRfYW1kX2NwcGNfcGFyYSgpIGFuZCBnZXRfYW1k
X2NwcGNfcGFyYSgpIHRvDQo+ID4+Pj4+IFNFVC9HRVQgQ1BQQy1yZWxhdGVkIHBhcmEgZm9yIGFt
ZC1jcHBjL2FtZC1jcHBjLWVwcCBkcml2ZXIuDQo+ID4+Pj4+DQo+ID4+Pj4+IEluIGdldF9jcHVm
cmVxX2NwcGMoKS9zZXRfY3B1ZnJlcV9jcHBjKCksIHdlIGluY2x1ZGUNCj4gPj4+Pj4gInByb2Nl
c3Nvcl9wbWluZm9bY3B1aWRdLT5pbml0ICYgWEVOX0NQUENfSU5JVCIgY29uZGl0aW9uIGNoZWNr
IHRvDQo+ID4+Pj4+IGRlYWwgd2l0aCBjcHVmcmVxIGRyaXZlciBpbiBhbWQtY3BwYy4NCj4gPj4+
Pj4NCj4gPj4+Pj4gQWxzbywgYSBuZXcgZmllbGQgInBvbGljeSIgaGFzIGFsc28gYmVlbiBhZGRl
ZCBpbiAic3RydWN0DQo+IHhlbl9nZXRfY3BwY19wYXJhIg0KPiA+Pj4+PiB0byBkZXNjcmliZSBw
ZXJmb3JtYW5jZSBwb2xpY3kgaW4gYWN0aXZlIG1vZGUuIEl0IGdldHMgcHJpbnRlZA0KPiA+Pj4+
PiB3aXRoIG90aGVyIGNwcGMgcGFyYXMuIE1vdmUgbWFuaWZlc3QgY29uc3RhbnRzDQo+ICJYRU5f
Q1BVRlJFUV9QT0xJQ1lfeHh4Ig0KPiA+Pj4+PiB0byBwdWJsaWMgaGVhZGVyIHRvIGxldCBpdCBi
ZSB1c2VkIGluIHVzZXIgc3BhY2UgdG9vbHMuIEFsc28gYWRkIGENCj4gPj4+Pj4gbmV3IGFuY2hv
ciAiWEVOX0NQVUZSRVFfUE9MSUNZX3h4eCIgZm9yIGFycmF5IG92ZXJydW4gY2hlY2suDQo+ID4+
Pj4NCj4gPj4+PiBJZiBvbmx5IHRoZXkgaW5kZWVkIGhhZCBYRU5fIHByZWZpeGVzLg0KPiA+Pj4+
DQo+ID4+Pj4+IFNpZ25lZC1vZmYtYnk6IFBlbm55IFpoZW5nIDxQZW5ueS5aaGVuZ0BhbWQuY29t
Pg0KPiA+Pj4+PiAtLS0NCj4gPj4+Pj4gdjEgLT4gdjI6DQo+ID4+Pj4+IC0gR2l2ZSB0aGUgdmFy
aWFibGUgZGVzX3BlcmYgYW4gaW5pdGlhbGl6ZXIgb2YgMA0KPiA+Pj4+PiAtIFVzZSB0aGUgc3Ry
bmNtcCgpcyBkaXJlY3RseSBpbiB0aGUgaWYoKQ0KPiA+Pj4+PiAtLS0NCj4gPj4+Pj4gdjMgLT4g
djQNCj4gPj4+Pj4gLSByZWZhY3RvciBjb21tZW50cw0KPiA+Pj4+PiAtIHJlbW92ZSBkb3VibGUg
YmxhbmsgbGluZXMNCj4gPj4+Pj4gLSByZXBsYWNlIGFtZF9jcHBjX2luX3VzZSBmbGFnIHdpdGgg
WEVOX1BST0NFU1NPUl9QTV9DUFBDDQo+ID4+Pj4+IC0tLQ0KPiA+Pj4+PiB2NCAtPiB2NToNCj4g
Pj4+Pj4gLSBhZGQgbmV3IGZpZWxkICJwb2xpY3kiIGluICJzdHJ1Y3QgeGVuX2NwcGNfcGFyYSIN
Cj4gPj4+Pj4gLSBhZGQgbmV3IHBlcmZvcm1hbWNlIHBvbGljeSBYRU5fQ1BVRlJFUV9QT0xJQ1lf
QkFMQU5DRQ0KPiA+Pj4+PiAtIGRyb3Agc3RyaW5nIGNvbXBhcmlzb25zIHdpdGggInByb2Nlc3Nv
cl9wbWluZm9bY3B1aWRdLT5pbml0ICYNCj4gPj4+PiBYRU5fQ1BQQ19JTklUIg0KPiA+Pj4+PiBh
bmQgImNwdWZyZXEuc2V0cG9saWN5ID09IE5VTEwiDQo+ID4+Pj4+IC0gQmxhbmsgbGluZSBhaGVh
ZCBvZiB0aGUgbWFpbiAicmV0dXJuIiBvZiBhIGZ1bmN0aW9uDQo+ID4+Pj4+IC0gcmVmYWN0b3Ig
Y29tbWVudHMsIGNvbW1pdCBtZXNzYWdlIGFuZCB0aXRsZQ0KPiA+Pj4+PiAtLS0NCj4gPj4+Pj4g
djUgLT4gdjY6DQo+ID4+Pj4+IC0gcmVtb3ZlIGR1cGxpY2F0ZWQgbWFuaWZlc3QgY29uc3RhbnRz
LCBhbmQganVzdCBtb3ZlIGl0IHRvIHB1YmxpYw0KPiA+Pj4+PiBoZWFkZXINCj4gPj4+Pj4gLSB1
c2UgImVsc2UgaWYiIHRvIGF2b2lkIGNvbmZ1c2lvbiB0aGF0IGl0IGxvb2tzIGFzIGlmIGJvdGgg
cGF0aHMNCj4gPj4+Pj4gY291bGQgYmUgdGFrZW4NCj4gPj4+Pj4gLSBhZGQgY2hlY2sgZm9yIGxl
Z2l0aW1hdGUgcGVyZiB2YWx1ZXMNCj4gPj4+Pj4gLSB1c2UgInVua25vd24iIGluc3RlYWQgb2Yg
Im5vbmUiDQo+ID4+Pj4+IC0gaW50cm9kdWNlICJDUFVGUkVRX1BPTElDWV9FTkQiIGZvciBhcnJh
eSBvdmVycnVuIGNoZWNrIGluIHVzZXINCj4gPj4+Pj4gc3BhY2UgdG9vbHMNCj4gPj4+Pj4gKyAg
ICAgICAgIChzZXRfY3BwYy0+bWF4aW11bSA+IGRhdGEtPmNhcHMuaGlnaGVzdF9wZXJmIHx8DQo+
ID4+Pj4+ICsgICAgICAgICAgc2V0X2NwcGMtPm1heGltdW0gPCBkYXRhLT5jYXBzLmxvd2VzdF9u
b25saW5lYXJfcGVyZikgKQ0KPiA+Pj4+PiArICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4gPj4+
Pj4gKyAgICAvKg0KPiA+Pj4+PiArICAgICAqIE1pbmltdW0gcGVyZm9ybWFuY2UgbWF5IGJlIHNl
dCB0byBhbnkgcGVyZm9ybWFuY2UgdmFsdWUgaW4gdGhlDQo+IHJhbmdlDQo+ID4+Pj4+ICsgICAg
ICogW05vbmxpbmVhciBMb3dlc3QgUGVyZm9ybWFuY2UsIEhpZ2hlc3QgUGVyZm9ybWFuY2VdLA0K
PiA+Pj4+PiArIGluY2x1c2l2ZSBidXQNCj4gPj4gbXVzdA0KPiA+Pj4+PiArICAgICAqIGJlIHNl
dCB0byBhIHZhbHVlIHRoYXQgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIE1heGltdW0gUGVyZm9y
bWFuY2UuDQo+ID4+Pj4+ICsgICAgICovDQo+ID4+Pj4+ICsgICAgaWYgKCBzZXRfY3BwYy0+c2V0
X3BhcmFtcyAmIFhFTl9TWVNDVExfQ1BQQ19TRVRfTUlOSU1VTSAmJg0KPiA+Pj4+PiArICAgICAg
ICAgKHNldF9jcHBjLT5taW5pbXVtIDwgZGF0YS0+Y2Fwcy5sb3dlc3Rfbm9ubGluZWFyX3BlcmYg
fHwNCj4gPj4+Pj4gKyAgICAgICAgICAoc2V0X2NwcGMtPnNldF9wYXJhbXMgJiBYRU5fU1lTQ1RM
X0NQUENfU0VUX01BWElNVU0NCj4gJiYNCj4gPj4+Pj4gKyAgICAgICAgICAgc2V0X2NwcGMtPm1p
bmltdW0gPiBzZXRfY3BwYy0+bWF4aW11bSkgfHwNCj4gPj4+Pj4gKyAgICAgICAgICAoIShzZXRf
Y3BwYy0+c2V0X3BhcmFtcyAmDQo+IFhFTl9TWVNDVExfQ1BQQ19TRVRfTUFYSU1VTSkNCj4gPj4g
JiYNCj4gPj4+Pg0KPiA+Pj4+IEhtbSwgSSBmaW5kIHRoaXMgY29uZnVzaW5nIHRvIHJlYWQsIGFu
ZCB3YXMgZmlyc3QgdGhpbmtpbmcgdGhlICENCj4gPj4+PiB3YXMgd3JvbmcgaGVyZS4gSW1vIHN1
Y2ggaXMgYmV0dGVyIGV4cHJlc3NlZCB3aXRoIHRoZSBjb25kaXRpb25hbCBvcGVyYXRvcjoNCj4g
Pj4+Pg0KPiA+Pj4+DQo+ID4+Pj4gICAgICAgICAgIHNldF9jcHBjLT5taW5pbXVtID4gKHNldF9j
cHBjLT5zZXRfcGFyYW1zICYNCj4gPj4+PiBYRU5fU1lTQ1RMX0NQUENfU0VUX01BWElNVU0NCj4g
Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBzZXRfY3BwYy0+bWF4aW11bQ0K
PiA+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGRhdGEtPnJlcS5tYXhfcGVy
ZikNCj4gPj4+Pg0KPiA+Pj4NCj4gPj4+IFRoeCwgdW5kZXJzdG9vZCENCj4gPj4+DQo+ID4+Pj4g
V2hpY2ggYWxzbyBtYWtlcyBpdCBlYXNpZXIgdG8gc3BvdCB0aGF0IGhlcmUgeW91IHVzZSBkYXRh
LT5yZXEsDQo+ID4+Pj4gd2hlbiBpbiB0aGUgbWluaW11bSBjaGVjayB5b3UgdXNlIGRhdGEtPmNh
cHMuIFdoeSB0aGlzIGRpZmZlcmVuY2U/DQo+ID4+Pj4NCj4gPj4+DQo+ID4+PiAgbWluaW11bSBj
aGVjayBoYXMgdHdvIGJvdW5kYXJ5IGNoZWNrLCBsZWZ0IGJvdW5kYXJ5IGNoZWNrIGlzDQo+ID4+
PiBhZ2FpbnN0DQo+ID4+PiBkYXRhLT5jYXBzLmxvd2VzdF9ub25saW5lYXJfcGVyZi4gQW5kIHJp
Z2h0IGJvdW5kYXJ5IGNoZWNrIGlzDQo+ID4+PiBkYXRhLT5hZ2FpbnN0IHJlcS5tYXhfcGVyZi4g
QXMgaXQgc2hhbGwgbm90IG9ubHkgbm90IGxhcmdlciB0aGFuDQo+ID4+PiBjYXBzLmhpZ2hlc3Rf
cGVyZiAsIGJ1dCBhbHNvIHJlcS5tYXhfcGVyZi4gVGhlIHJlbGF0aW9uIGJldHdlZW4NCj4gPj4+
IG1heF9wZXJmIGFuZCBoaWdoZXN0X3BlcmYgaXMgdmFsaWRhdGVkIGluIHRoZSBtYXhpbXVtIGNo
ZWNrLiBTbw0KPiA+Pj4gaGVyZSwgd2UgYXJlIG9ubHkgY29uc2lkZXJpbmcgbWF4X3BlcmYNCj4g
Pj4NCj4gPj4gSSBzdGlsbCBkb24ndCBnZXQgd2h5IG9uZSBjaGVjayBpcyBhZ2FpbnN0IGNhcGFi
aWxpdGllcyAocGVybWl0dGVkDQo+ID4+IHZhbHVlcykgd2h5IHRoZSBvdGhlciBpcyBhZ2FpbiB3
aGF0J3MgY3VycmVudGx5IHNldC4NCj4gPg0KPiA+IEl0IG5lZWRzIHRvIG1lZXQgdGhlIGZvbGxv
d2luZyB0d28gY3JpdGVyaWE6DQo+ID4NCj4gPiAxLiBjYXBzLmxvd2VzdF9ub25saW5lYXIgPD0g
bWluX3BlcmYgPD0gY2Fwcy5oaWdoZXN0X3BlcmYgMi4gbWluX3BlcmYNCj4gPiA8PSBtYXhfcGVy
Zi4gSWYgdXNlcnMgZG9uJ3Qgc2V0IG1heF9wZXJmIGF0IHRoZSBzYW1lIHRpbWUsIHdlIGFyZSB1
c2luZyB0aGUNCj4gdmFsdWVzIHN0b3JlZCBpbiByZXEubWF4X3BlcmYsIHdoaWNoIGlzIHRoZSBs
YXN0IHNldHRpbmcuDQo+DQo+IEhtbSwgSSBzZWUuIFlldCB0aGVuIHdoYXQgYWJvdXQgdGhlIGNh
c2Ugb2YgbWF4IGJlaW5nIHNldCB3aXRob3V0IGFsc28gc2V0dGluZw0KPiBtaW4/IE92ZXJhbGwg
SSdtIGV4cGVjdGluZyBmdWxsIHN5bW1ldHJ5IGluIHRoZSBjaGVja2luZyB0aGF0J3MgYmVpbmcg
ZG9uZS4NCj4NCg0KT2gsIFRydWUsIEkgZm9yZ2V0IHN5bW1ldHJ5IHNjZW5hcmlvLCB3aWxsIGFk
ZC4NCg0KPiBKYW4NCg==


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 08:37:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 08:37:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081094.1441214 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umTSA-0001Pe-MB; Thu, 14 Aug 2025 08:36:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081094.1441214; Thu, 14 Aug 2025 08:36: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 1umTSA-0001PX-J8; Thu, 14 Aug 2025 08:36:54 +0000
Received: by outflank-mailman (input) for mailman id 1081094;
 Thu, 14 Aug 2025 08:36:52 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xqZt=22=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umTS8-0001PR-Pj
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 08:36:52 +0000
Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com
 [2a00:1450:4864:20::635])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d3202c35-78e9-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 10:36:51 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-afcb78c77ebso109714866b.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 01:36:51 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a21b0d0sm2509934366b.107.2025.08.14.01.36.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 01:36: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>
X-Inumbo-ID: d3202c35-78e9-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755160611; x=1755765411; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=LzKul1nFWAlPgzX/TWwKk7/A5Owya3TsOJVQ7n2txBA=;
        b=MYLWdtjHBzCyxeYI2YxoLZu/rjGP5KyN99XdEx2mtjPq4HfIgWvZZBAuHFPeiYHI1R
         xlraGmUPf2B9M4rPb1t6z5vplbov+XTCa8IcxQPC0YjYwFF75LV76/UGtcPfL2ZjnBwp
         kquPI529uiMTME8rloNsWjFu+WxXY91munalUOwo8iJSyzUNpA78An0cZqC6XXsHdF5b
         EDou3fyCObtc/2EgGt/kv1wtDFhlBOgamSKYVwmmmbSs3eUYHMDAdoLW0doaii7Olk7I
         /bfgH3iSypsJ/DpNnMco4tU/vpjRIygUsNOukDS6cUtQbJUnmb0AjeAt9/i2vUFIG8Yn
         Gkmw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755160611; x=1755765411;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=LzKul1nFWAlPgzX/TWwKk7/A5Owya3TsOJVQ7n2txBA=;
        b=uTVMXfa5e1MTDINFXPiVPerA74E2LQqP3q8A957wE+cHdE5G2dQ+rmem5W53VFrhdS
         J5Gq7BQMSbHflCwe1M0jpgH5f7rfT89/GXJM3xIRotmPKlhSPy1CIARxMBa/Mev+mJZy
         KlOTnW/Um7dnkhlmaR2JPcXBc5TRzxCeTUHf5kLhh1zjlRKSX7Dsa31ggVJojuVtCf4X
         IrD//0MbVuippbKUnqdqAhmpN5a+0nFpi5NPGIcEK+/MPqMLsz8K9jHlnpzoxdCI5nfh
         HpOeWgsReIlMg26J6h9ochC6TvODhvVNVbKkpitR66jViXwlvnDK/i6iTSn0eSjXfnFm
         reNA==
X-Forwarded-Encrypted: i=1; AJvYcCU3BRiLiV6Y05DkFWhI8t3CtCM2N/6u6YvV5d88kuh1FoAdFQiD48d0zlH4Mur6t2c7EaIjsNdm8DA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxriZPgpIo+vlqW1Z3+SsWCIxykuRUMENwfk1U9StTC+dwc3wR8
	z9kGjC4HX6Qzb25RHm5FamDziyxk9v2ug1zheTrA2za+b7fZI41oDHBj7tEKnRv3Rg==
X-Gm-Gg: ASbGncvRM+EcRKfs2Q1BtXpZWODhRpzpmNKJ938YmfZP1vuLWx5HpjbzQZuyzjEc2pe
	ydpnUftPpRBeu3s0vHb1Kchaq1i+v0xf0c0+7WEitGClwt4Ciu98FLTTRUNiKODLyeIg2dtpG4j
	bYi7ZvDu/w37hXzEVqcsrJVKTs6IqN+hUOHSEJdxwZ5MG2Rdy63zZB42mIIs+QTh9Y0KQSitR8i
	L12e6Z3yv3FyiADYrzClPHiREPhbiLQngUqu0TooE8DwqwhkfptmwdNJyoKpSsXthOl3RnfeWMk
	74UCllOqatE6DO8c0QN8c7pR0XRSKkSSiNJMKQ79zNrupRtKkWCYorDQKKBjcxj22YHoJnm/CeT
	w8eOVMc+diIbrQfSznaJQnM0/GrvCt/7Pm4gV2aT8CdTER6BrdhnX0OBEYdwwpnyvrjixd0q7MJ
	FYkaYWaQI=
X-Google-Smtp-Source: AGHT+IG0QEufqhEm5gGtkegxNfvtz/uC4CBiAEEOWBnqqNHow4+8PHa4ofjGyG+lIgtsgZ2zAcATYA==
X-Received: by 2002:a17:907:1b0c:b0:af9:a4f6:d1a7 with SMTP id a640c23a62f3a-afcb98e1ad5mr198379866b.32.1755160610772;
        Thu, 14 Aug 2025 01:36:50 -0700 (PDT)
Message-ID: <06120b08-7ce8-4d03-b3cd-cbb22547eca3@suse.com>
Date: Thu, 14 Aug 2025 10:36:48 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] misra: allow conversion from unsigned long to
 function pointer
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <8cbc9e6d881661d0d7a1055cbcef5a65e20522be.1755109168.git.dmytro_prokopchuk1@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <8cbc9e6d881661d0d7a1055cbcef5a65e20522be.1755109168.git.dmytro_prokopchuk1@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.08.2025 20:27, Dmytro Prokopchuk1 wrote:
> ...
> 
> from `vaddr_t' (that is `unsigned long') to `switch_ttbr_fn*' (that is `void(*)(unsigned long)')
> 
> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
> ---
> This is just a RFC patch.
> The commit message is not important at this stage.
> 
> I am seeking comments regarding this case.
> 
> Thanks.
> ---
>  automation/eclair_analysis/ECLAIR/deviations.ecl |  8 ++++++++
>  docs/misra/deviations.rst                        | 10 ++++++++++
>  docs/misra/rules.rst                             |  8 +++++++-
>  xen/arch/arm/arm64/mmu/mm.c                      |  2 ++
>  4 files changed, 27 insertions(+), 1 deletion(-)
> 
> diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
> index ebce1ceab9..f9fd6076b7 100644
> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
> @@ -365,6 +365,14 @@ constant expressions are required.\""
>  }
>  -doc_end
>  
> +-doc_begin="The conversion from unsigned long to a function pointer does not lose any information, provided that the source type has enough bits to restore it."
> +-config=MC3A2.R11.1,casts+={safe,
> +  "from(type(canonical(builtin(unsigned long))))
> +   &&to(type(canonical(__function_pointer_types)))
> +   &&relation(definitely_preserves_value)"
> +}
> +-doc_end
> +
>  -doc_begin="The conversion from a function pointer to a boolean has a well-known semantics that do not lead to unexpected behaviour."
>  -config=MC3A2.R11.1,casts+={safe,
>    "from(type(canonical(__function_pointer_types)))
> diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
> index 3c46a1e47a..27848602f6 100644
> --- a/docs/misra/deviations.rst
> +++ b/docs/misra/deviations.rst
> @@ -348,6 +348,16 @@ Deviations related to MISRA C:2012 Rules:
>         to store it.
>       - Tagged as `safe` for ECLAIR.
>  
> +   * - R11.1
> +     - The conversion from unsigned long to a function pointer does not lose any
> +       information or violate type safety assumptions if the unsigned long type
> +       is guaranteed to be at least as large as a function pointer. This ensures
> +       that the function pointer address can be fully represented without
> +       truncation or corruption. Macro BUILD_BUG_ON can be integrated into the
> +       build system to confirm that 'sizeof(unsigned long) >= sizeof(void (*)())'
> +       on all target platforms.

If sizeof(unsigned long) > sizeof(void (*)()), there is loss of information.
Unless (not said here) the unsigned long value itself is the result of
converting a function pointer to unsigned long. Whether all of that together
can be properly expressed to Eclair I don't know. Hence, as Teddy already
suggested, == may want specifying instead.

> --- a/xen/arch/arm/arm64/mmu/mm.c
> +++ b/xen/arch/arm/arm64/mmu/mm.c
> @@ -150,6 +150,7 @@ void __init relocate_and_switch_ttbr(uint64_t ttbr)
>      vaddr_t id_addr = virt_to_maddr(relocate_xen);
>      relocate_xen_fn *fn = (relocate_xen_fn *)id_addr;
>      lpae_t pte;
> +    BUILD_BUG_ON(sizeof(unsigned long) < sizeof(fn));
>  
>      /* Enable the identity mapping in the boot page tables */
>      update_identity_mapping(true);
> @@ -178,6 +179,7 @@ void __init switch_ttbr(uint64_t ttbr)
>      vaddr_t id_addr = virt_to_maddr(switch_ttbr_id);
>      switch_ttbr_fn *fn = (switch_ttbr_fn *)id_addr;
>      lpae_t pte;
> +    BUILD_BUG_ON(sizeof(unsigned long) < sizeof(fn));
>  
>      /* Enable the identity mapping in the boot page tables */
>      update_identity_mapping(true);

BUILD_BUG_ON() is a statement, not a declaration, and hence wants grouping
as such. Question is whether we indeed want to sprinkle such checks all
over the code base. (I expect the two cases here aren't all we have.)

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 08:49:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 08:49:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081104.1441225 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umTe8-0003Lc-NZ; Thu, 14 Aug 2025 08:49:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081104.1441225; Thu, 14 Aug 2025 08:49:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umTe8-0003LV-KT; Thu, 14 Aug 2025 08:49:16 +0000
Received: by outflank-mailman (input) for mailman id 1081104;
 Thu, 14 Aug 2025 08:49:15 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BVY3=22=huawei.com=ruanjinjie@srs-se1.protection.inumbo.net>)
 id 1umTe7-0003LP-Mb
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 08:49:15 +0000
Received: from szxga05-in.huawei.com (szxga05-in.huawei.com [45.249.212.191])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8a5e3571-78eb-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 10:49:10 +0200 (CEST)
Received: from mail.maildlp.com (unknown [172.19.163.17])
 by szxga05-in.huawei.com (SkyGuard) with ESMTP id 4c2f3W63Rsz2gKx8;
 Thu, 14 Aug 2025 16:46:15 +0800 (CST)
Received: from dggpemf500011.china.huawei.com (unknown [7.185.36.131])
 by mail.maildlp.com (Postfix) with ESMTPS id 3C74C1A0188;
 Thu, 14 Aug 2025 16:49:06 +0800 (CST)
Received: from [10.67.109.254] (10.67.109.254) by
 dggpemf500011.china.huawei.com (7.185.36.131) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Thu, 14 Aug 2025 16:49:04 +0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8a5e3571-78eb-11f0-a328-13f23c93f187
Message-ID: <afb0fb39-c221-c4c0-08cb-c6941d3ff801@huawei.com>
Date: Thu, 14 Aug 2025 16:49:03 +0800
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
 Thunderbird/102.2.0
Subject: Re: [PATCH -next v7 5/7] arm64: entry: Refactor
 preempt_schedule_irq() check code
Content-Language: en-US
To: Ada Couprie Diaz <ada.coupriediaz@arm.com>
CC: <catalin.marinas@arm.com>, <will@kernel.org>, <oleg@redhat.com>,
	<sstabellini@kernel.org>, <mark.rutland@arm.com>, <puranjay@kernel.org>,
	<broonie@kernel.org>, <mbenes@suse.cz>, <ryan.roberts@arm.com>,
	<akpm@linux-foundation.org>, <chenl311@chinatelecom.cn>,
	<anshuman.khandual@arm.com>, <kristina.martsenko@arm.com>,
	<liaochang1@huawei.com>, <ardb@kernel.org>, <leitao@debian.org>,
	<linux-arm-kernel@lists.infradead.org>, <linux-kernel@vger.kernel.org>,
	<xen-devel@lists.xenproject.org>
References: <20250729015456.3411143-1-ruanjinjie@huawei.com>
 <20250729015456.3411143-6-ruanjinjie@huawei.com>
 <4242ef37-efeb-446f-abbc-0104b805ad12@arm.com>
From: Jinjie Ruan <ruanjinjie@huawei.com>
In-Reply-To: <4242ef37-efeb-446f-abbc-0104b805ad12@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.67.109.254]
X-ClientProxiedBy: kwepems500001.china.huawei.com (7.221.188.70) To
 dggpemf500011.china.huawei.com (7.185.36.131)



On 2025/8/12 0:02, Ada Couprie Diaz wrote:
> On 29/07/2025 02:54, Jinjie Ruan wrote:
> 
>> ARM64 requires an additional check whether to reschedule on return
>> from interrupt. So add arch_irqentry_exit_need_resched() as the default
>> NOP implementation and hook it up into the need_resched() condition in
>> raw_irqentry_exit_cond_resched(). This allows ARM64 to implement
>> the architecture specific version for switching over to
>> the generic entry code.
>>
>> To align the structure of the code with irqentry_exit_cond_resched()
>> from the generic entry code, hoist the need_irq_preemption()
>> and IS_ENABLED() check earlier. And different preemption check functions
>> are defined based on whether dynamic preemption is enabled.
>>
>> Suggested-by: Mark Rutland <mark.rutland@arm.com>
>> Suggested-by: Kevin Brodsky <kevin.brodsky@arm.com>
>> Suggested-by: Thomas Gleixner <tglx@linutronix.de>
>> Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
>> ---
> Unrelated to the other thread : I noticed that compiling this patch
> with `allnoconfig` would fail :
> - `raw_irqentry_exit_cond_resched` has no previous prototype,
> Â  as it is defined within `#ifdef CONFIG_PREEMPTION`
> - `irqentry_exit_cond_resched()` is not declared, as it is also within
> Â  `#ifdef CONFIG_PREEMPTION`

You are right, thank you! I'll fix it.

> 
> The patch below fixes the issue, but introduces merge conflicts in
> patches 6 and 7, plus the `#ifdef` needs to be moved accordingly
> in patch 6 and the empty "without preemption" `irq_exit_cond_resched()`
> needs to be removed in patch 7.
> 
> I hope this can be useful,
> Ada
> 
> ---
> diff --git a/arch/arm64/include/asm/preempt.h
> b/arch/arm64/include/asm/preempt.h
> index 0f0ba250efe8..d9aba8b1e466 100644
> --- a/arch/arm64/include/asm/preempt.h
> +++ b/arch/arm64/include/asm/preempt.h
> @@ -103,6 +103,8 @@ void dynamic_irqentry_exit_cond_resched(void);
> Â #define irqentry_exit_cond_resched() raw_irqentry_exit_cond_resched()
> 
> Â #endif /* CONFIG_PREEMPT_DYNAMIC */
> +#else /* CONFIG_PREEMPTION */
> +#define irqentry_exit_cond_resched() {}
> Â #endif /* CONFIG_PREEMPTION */
> 
> Â #endif /* __ASM_PREEMPT_H */
> diff --git a/arch/arm64/kernel/entry-common.c
> b/arch/arm64/kernel/entry-common.c
> index 4f92664fd46c..abd7a315145e 100644
> --- a/arch/arm64/kernel/entry-common.c
> +++ b/arch/arm64/kernel/entry-common.c
> @@ -661,6 +661,7 @@ static __always_inline void __el1_pnmi(struct
> pt_regs *regs,
> Â Â Â Â Â Â Â  arm64_exit_nmi(regs, state);
> Â }
> 
> +#ifdef CONFIG_PREEMPTION
> Â void raw_irqentry_exit_cond_resched(void)
> Â {
> Â Â Â Â Â Â Â  if (!preempt_count()) {
> @@ -668,6 +669,7 @@ void raw_irqentry_exit_cond_resched(void)
> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  preempt_schedule_irq();
> Â Â Â Â Â Â Â  }
> Â }
> +#endif
> 
> Â #ifdef CONFIG_PREEMPT_DYNAMIC
> Â DEFINE_STATIC_KEY_TRUE(sk_dynamic_irqentry_exit_cond_resched);
> 
> 


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 08:50:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 08:50:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081111.1441236 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umTey-0004mM-1A; Thu, 14 Aug 2025 08:50:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081111.1441236; Thu, 14 Aug 2025 08:50: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 1umTex-0004mF-Sq; Thu, 14 Aug 2025 08:50:07 +0000
Received: by outflank-mailman (input) for mailman id 1081111;
 Thu, 14 Aug 2025 08:50:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xqZt=22=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umTex-0004m7-Cs
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 08:50:07 +0000
Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com
 [2a00:1450:4864:20::635])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id acd53cdb-78eb-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 10:50:06 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-afcb72d51dcso106862166b.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 01:50: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
 a640c23a62f3a-af9f4796e23sm818405366b.26.2025.08.14.01.50.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 01:50: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>
X-Inumbo-ID: acd53cdb-78eb-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755161405; x=1755766205; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=2Tg2c+tzOy5RWBUnwp3v848SerrjlYPioh8RYMm/iM4=;
        b=AWDv7rWxLCqpK9fxdzjqSKNwZz43XqC7DD/oV/CVcc8FXrpEBS3RRA26JBO6Y1y+Zf
         ZOwb2D5L6XxfW3d3juThyvkH6k2ZPdvX2AhfIXxR7HOoMAavSbk+xHyPEgF5eJzjhBU/
         Dqc0UGrpOhbOO4ZNcclbzhMl5ebBl6ZyMdOwCOHw4ObmS9vLY5wYPeMxFu+FbDjFFAFU
         mrSx0XTvuR74AkIAJE4lx99s+APIiZovfg5DNCtLIcDhmfPsi2+ncgwHCqbIBVXY1dCC
         BxmYZKFOlTRiRrCdHC9u0wfbpjnfbIo8hFFkYZvUhjO7bFhFX0/TrZBIMdAZPeLmTmPv
         jPXA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755161405; x=1755766205;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2Tg2c+tzOy5RWBUnwp3v848SerrjlYPioh8RYMm/iM4=;
        b=thLkspJZZWQ8lpWxEAVER5ZiK6GWZ+NsH/v442PxDsAKQghdlwWBfptvcuMy3sRl8k
         EW51dIbyHgAPbkbkkfnwRRrW2x1OEouotghfrrb2jQRRQxUHEsImwBi1QEID5GphTWEu
         HXU9/uWYkUV5BSYe2b1rNYele7c6+e7hC5Ea7pQzOHyNh3QMCr3RhxHwjqd/PzxPXgRe
         idUXdUwBo8geFVAhizEt1nCvYJL2MOTTZoZCa4+37aM4HLQyOb1FBllLA4O8UWVY3S6L
         Kl204owjoFZv7NqFwGz7STtupK5sGYiVgB7x4qH60tNmE84elqcNw4Prbc3tNz+OA3/d
         DX2Q==
X-Forwarded-Encrypted: i=1; AJvYcCXYMHhYMisnyM/SO6IvdfOZaOtw3mfOKAFYayDUKACAaxo/KWqKzYiivq+zMOnC6OfmXqoz6yd6XOo=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxt6GbfgfOC+G0BhHC0xcvMqDz4OGy30ObRTWvdPAYEY6ix3b2h
	huvtI3USMvsKtZTUIMTKbUTTvl+Z9aEHrGHl/06VUwA+vGcQ4Z7AjNDdnbOL3sEsSU1+Ctfj8rf
	xgPQ=
X-Gm-Gg: ASbGncscKNXgdodKxBy+KOebll/uQmdLKXq0hKOkuJXOyWqB8/VHzPuXvLHQLHLMm0I
	tVITDAGHO7IBzDZUPvOrzBFVE9aQO5vSO/3BZbyQAcB1M+qrqI/NKdeRfrH21lw+Aed7KcmnQ+e
	tdGNL5gNWJvuaX9S5/BtYdwQ3NVGUQjcG4z5Gg9XR6vg8z5uJPi0gm3BRdVWGjOjh0ahmcEKDiL
	HHhvnAYQlsrKo6sG5IdFztyFLe/c5grDuQwgV7PWSD1U2zVbzE+ZoUrLJ7O8iZ6/fb0CK5xCbAK
	Yus4WEo2oqSOX/K/S1GrryFzFXwM/+mowbj7AyCq3RAkpxRwMY1YIUZM789tjnfCb8zniXnl/hA
	oR6l+GeMsX22eCtU4DNtp5MBiS6XUuK3hPj5vh8ayk5KQhCi+l3FAvgHIS7dn7xLfM01wHgadc0
	+XS7MLQuM=
X-Google-Smtp-Source: AGHT+IEyIQhSYyK8otuy4jTe43ySBCyJXOMuP+b8EqvmkEMGxSYcmS29tkKUANuR9Sh1QaMME9gySg==
X-Received: by 2002:a17:907:9815:b0:af9:3ef6:86f4 with SMTP id a640c23a62f3a-afcb981f533mr214724966b.20.1755161405496;
        Thu, 14 Aug 2025 01:50:05 -0700 (PDT)
Message-ID: <9d4623d1-d1ce-4661-b07a-ad8d5ea478bc@suse.com>
Date: Thu, 14 Aug 2025 10:50:03 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 03/22] x86/traps: Drop incorrect BUILD_BUG_ON() and
 comment in load_system_tables()
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-4-andrew.cooper3@citrix.com>
 <f8cfb9c0-f505-452d-b18e-801beea69d1d@suse.com>
 <5aadadb9-65e2-4f30-bac5-a2b3a2f4a29e@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: <5aadadb9-65e2-4f30-bac5-a2b3a2f4a29e@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 13.08.2025 11:40, Andrew Cooper wrote:
> On 12/08/2025 9:11 am, Jan Beulich wrote:
>> On 08.08.2025 22:22, Andrew Cooper wrote:
>>> This was added erroneously by me.
>>>
>>> Hardware task switching does demand a TSS of at least 0x67 bytes, but that's
>>> not relevant in 64bit, and not relevant for Xen since commit
>>> 5d1181a5ea5e ("xen: Remove x86_32 build target.") in 2012.
>>>
>>> We already load a 0-length TSS in early_traps_init() demonstrating that it's
>>> possible.
>>>
>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>> ---
>>> CC: Jan Beulich <JBeulich@suse.com>
>>> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
>>> ---
>>>  xen/arch/x86/cpu/common.c | 2 --
>>>  1 file changed, 2 deletions(-)
>>>
>>> diff --git a/xen/arch/x86/cpu/common.c b/xen/arch/x86/cpu/common.c
>>> index f6ec5c9df522..cdc41248d4e9 100644
>>> --- a/xen/arch/x86/cpu/common.c
>>> +++ b/xen/arch/x86/cpu/common.c
>>> @@ -936,8 +936,6 @@ void load_system_tables(void)
>>>  		wrmsrl(MSR_ISST, (unsigned long)ist_ssp);
>>>  	}
>>>  
>>> -	BUILD_BUG_ON(sizeof(*tss) <= 0x67); /* Mandated by the architecture. */
>>> -
>>>  	_set_tssldt_desc(gdt + TSS_ENTRY, (unsigned long)tss,
>>>  			 sizeof(*tss) - 1, SYS_DESC_tss_avail);
>>>  	if ( IS_ENABLED(CONFIG_PV32) )
>> Well, the comment is wrong. Whether the BUILD_BUG_ON() itself is also wrong
>> depends on our intentions with the structure. Don't we need it to be that
>> size for everything (incl I/O bitmap) to work correctly elsewhere?
> 
> We don't use the IO bitmap.Â  We've talked about it a few times, but
> never got it sorted.
> 
> Xen's TSS could be as short as 0x37 (covering IST3) and still work
> correctly and safely (as there's no task switching).

Then shouldn't we have a BUILD_BUG_ON(sizeof(*tss) <= 0x37) here? Hmm,
arguably that get pretty close to useless, though, so
Acked-by: Jan Beulich <jbeulich@suse.com>

> A failure to read tss->iopb is the same as a failure to read the bitmap
> itself.Â  In fact, it's probably marginally faster for users of
> IOBMP_INVALID_OFFSET as it fails one step earlier.

(Provided there are no errata lurking anywhere.)

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 08:53:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 08:53:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081120.1441244 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umTiG-0005aE-DS; Thu, 14 Aug 2025 08:53:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081120.1441244; Thu, 14 Aug 2025 08:53: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 1umTiG-0005a7-Ak; Thu, 14 Aug 2025 08:53:32 +0000
Received: by outflank-mailman (input) for mailman id 1081120;
 Thu, 14 Aug 2025 08:53:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xqZt=22=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umTiE-0005a0-Tp
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 08:53:30 +0000
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com
 [2a00:1450:4864:20::636])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 265cfa87-78ec-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 10:53:30 +0200 (CEST)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-afcb72d5409so115627766b.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 01:53: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
 a640c23a62f3a-af99148eab9sm1605267466b.77.2025.08.14.01.53.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 01:53: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>
X-Inumbo-ID: 265cfa87-78ec-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755161609; x=1755766409; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=E5tkG3ozQhJgJYMy2RuwL7Q+aYwhRCvT6p0zheVxBW0=;
        b=NQcySK+/KzYdD1NHLOy9l2grVeEkguwfkvPfpPGy0RwMpHlhJN6CjZfoMQQlJ+a5xX
         figE4pLz3U/wvkzoh+vyk7e3pHKPEoRHNPB5ZlOqJ/XGcUuOLWj1oAF1n8QusobdpRA9
         fZ/p6dfiyNhitz1GWko0Bo5oufalKUeDk9TBvu02+8C8LLAZNyHJlAzTbDt407N0rO1W
         DzIRps4jhJmOSu5gdWhORlQl49qwcW5zKKX1znf+aACaLwlX+alBYqAsvoVk36Cyp6o5
         8yuM2RVbPVYSQu1QdUNfft1H4XgedDUQ38l7JBuYVTN+ELP/qF4uv8GcCOoeLejWdMDE
         JBVg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755161609; x=1755766409;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=E5tkG3ozQhJgJYMy2RuwL7Q+aYwhRCvT6p0zheVxBW0=;
        b=Uwr8TA0h8yGtKr72wjXDtG1snxLpE1p9UpF3V/a3CJGrA/ZMUXuSygc+qXeJbsye7p
         itnf7FZZeFKtAEt3ysBkOfLmyVMSzHpiuomhkp7PDUAE+X8hftTkoNTfUKk0Ywg0Lz4t
         gb6oQtm4HsM+3/7Zhtso/NWgOhYLzyXpStXMImqtdiIdpz1a0KGZTceZReX9jO9GlFmG
         JEatIIIrwwFGoLBfTg+t2zRK4dKHocUy992uhurHW4ThXJ7jMDOITVrivjHOHTVsOUOJ
         dT2Mq0WskaLmEkIBYZ1l7HGakJCe82I05+NTUpErfeTLrsF1KjxsF3It51cSgOTYeQKB
         ujLA==
X-Forwarded-Encrypted: i=1; AJvYcCVcevjIZyOGGB6OFI4eE1s4tLZUzfLD0d2jECwPvBZCMnurhmTo7UgP1+idfKFzLXTr4qH09HgAGLc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yybo781zVYy6Z98HmamA2ePFd9TK22SllcbiZwJTKwh18LCXrJz
	oa+9EAzQ2quBJj3XXQqTkXYHgKnPyRn8tvirxKF7+tvOBdbB4+EHue1tjH38JQB+Ng==
X-Gm-Gg: ASbGnctbcHEVRxV1eY+43k1EZ94HHnVO5DyIK9CjFWwd9VLJX6dVoaywfoGtRqf9m6C
	9cSZWNxNv3N3uEdRQT0RdbxWLzrcFRJyqIoiUXHyzywkYQIbgQq0OLyLDHTmaCmFd08Vr9kBdUI
	oRvLHw0/tg2Q7wzr0ZOzJkxHxxEfyrp4yiInGBG4fN5u92yyu+IsKyuWam7nQwagIbkHE7uQBqk
	Xsm6TPL4iUfOLsCc58xDmPMNCXf1gw/fZxYiA2vRauhiJmC4vOq6u8UadQ2gNv6tagcuQSy4UtA
	YgK5zi4sRU8q4s3PFdSUxhZl2BydoKwiul9zIzFYj9fisYWWeasQvlhMw55g5NFIHL78FXy4BnM
	WLPeeCwaoXw5u1q1c8qgWGT575yGK2YpXUUckjq8S6haVjjb9axEyIe8w7Ov3h8EoP7JhiFHuHC
	ZkXYZiwiFnj40J0/LnFw==
X-Google-Smtp-Source: AGHT+IGaUN4Q/p0jE+iH+iT72ApGrE/PF67MNKL28GzZp3ZoiJBv6CzlnWuDfD27ySuBWh6DCfQPdg==
X-Received: by 2002:a17:907:94cd:b0:ae3:6651:58ba with SMTP id a640c23a62f3a-afcb98e1ac5mr177869866b.35.1755161608114;
        Thu, 14 Aug 2025 01:53:28 -0700 (PDT)
Message-ID: <1059cde6-72e6-447f-bdf9-2bc859911ddf@suse.com>
Date: Thu, 14 Aug 2025 10:53:26 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 08/22] x86/traps: Introduce ap_early_traps_init() and set
 up exception handling earlier
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-9-andrew.cooper3@citrix.com>
 <d6573487-14ed-4e1f-9525-b702048bb87e@suse.com>
 <3e590b78-b2ac-435d-98d7-89c39d6f731f@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: <3e590b78-b2ac-435d-98d7-89c39d6f731f@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 13.08.2025 13:13, Andrew Cooper wrote:
> On 12/08/2025 9:41 am, Jan Beulich wrote:
>> On 08.08.2025 22:23, Andrew Cooper wrote:
>>> --- a/xen/arch/x86/acpi/wakeup_prot.S
>>> +++ b/xen/arch/x86/acpi/wakeup_prot.S
>>> @@ -63,6 +63,9 @@ LABEL(s3_resume)
>>>          pushq   %rax
>>>          lretq
>>>  1:
>>> +        /* Set up early exceptions and CET before entering C properly. */
>>> +        call    ap_early_traps_init
>> But this is the BSP?
> 
> By the end of the cleanup, what we have is:
> 
> At boot only:
> Â * really early init, basic exception handling only
> Â * regular init (inc syscall trampolines)
> Â * late re-init as we change the stack linear address
> 
> For everything else (APs, S3, hot-online):
> Â * early, full exception handling
> Â * regular init (inc syscall trampolines)
> 
> 
> Currently, these are named:
> Â * bsp_early_traps_init()
> Â * traps_init()
> Â * bsp_traps_reinit()
> 
> and
> Â * ap_early_traps_init()
> Â * percpu_traps_init()
> 
> 
> Perhaps ap_early_traps_init() should be named
> percpu_early_traps_init()?Â  But I'm open to suggestions.

That name looks like a better fit to me, yes.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 08:55:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 08:55:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081132.1441256 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umTkR-0006Jl-Vo; Thu, 14 Aug 2025 08:55:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081132.1441256; Thu, 14 Aug 2025 08:55: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 1umTkR-0006Je-QT; Thu, 14 Aug 2025 08:55:47 +0000
Received: by outflank-mailman (input) for mailman id 1081132;
 Thu, 14 Aug 2025 08:55:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xqZt=22=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umTkQ-0006JY-3v
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 08:55:46 +0000
Received: from mail-ej1-x631.google.com (mail-ej1-x631.google.com
 [2a00:1450:4864:20::631])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7701083a-78ec-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 10:55:45 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-afcb78e70c5so110868666b.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 01:55: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
 a640c23a62f3a-af99518bfedsm1578669466b.105.2025.08.14.01.55.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 01:55: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>
X-Inumbo-ID: 7701083a-78ec-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755161745; x=1755766545; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=LnTf488Su1eSM/7x3sWaI2lHpXsPgw9l0g9OWUqSQJw=;
        b=BGZ8ZFqFnRcfvw9aqV59Ta9YjtjJjhRrvrmKNujC1P+pycdR665bPYkXw6BF/2bPCT
         CSihWDAzFkFOeAnj6SsiQheoPlzYx34VoaFxft3cTexXnoIEBxOOibyV6lvA1wlEX0wR
         IWoThe5Zw0fZdNbbg6HbQ9RiZFSxILksh8Fr8qtIcokFIYXn7KJ3bjkFsVmrAswjn3Q/
         O6JTSRn0PFQqQbiWSgDub28NCsxqjSFvIp+QCN4jJmbmMvRzKcIxpRzw7YCPJudvQrJQ
         uPeYbQK71yYvNNHlj/jmL9L5zTOq8CoyKxmzxLnePQtyk8NFkuhQEaLMgV/kfkKoBDjh
         IueA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755161745; x=1755766545;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=LnTf488Su1eSM/7x3sWaI2lHpXsPgw9l0g9OWUqSQJw=;
        b=bg2zNqkz5Qim4W8pFPwGFNCZKeSzToL8C4YKWowrl9ng7D53q/IfwOcoygRUKyS1ix
         h6ddpVxvSQ2BLohqvvfAhF4V2mTixYjKDW1XsRWBa9oFMvIMAGJDwaliF0Y75UPPCIKG
         tGWqn5amQC+WQSaMG+gG2kuiv1rrskr3mMilGS/rJUvR74okyDTEwe7cV9CO2GW0wHCN
         oo8iBscgOSZ6v9AXmdle4ssMM1vIxRTxzodN2LuzLybVoi1C+9k+IlY/8SldGZlVfmSt
         U79h45/0v5RXdGZsUxQ69qC4CDd8b2JQ/fsQ7XMIVe946efypfaD8SU90Pw86wMFI1aa
         0vLQ==
X-Forwarded-Encrypted: i=1; AJvYcCVo200ROUCh4fON6+vgQdat/QUH8qhGpoqgbWtpdxpiinsRKSN8zCjIrfFZJX2tEhREZTDOCTRRGo4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxPfCFkB+X8J+CGMltJF3UyYVUaHWDFj+dl+XEhrc89bp23pnEU
	KOYQHidxbfqArKt0tr/p6XIoMsJC3baKu8jfFMqyTsKrlmRl2W8yyFlJteDwPwYMLA==
X-Gm-Gg: ASbGncvzFaBlPfO6jr2MCrduH1TBEE6Wpwn1wRLeM8UC57uSVn/UkmuM+tiiucBXUV4
	2UKZwDIj2//N9J3ZggzXffqLAgqFj74r626KgF5GDNnSJRw1t2qFayzSNhzxdFvOHSseDxeI1cg
	UFjmmi6RwLM210XH9Cd7TYGroN0kEcW8//ztg/Ou345vsTZxyrrc8BrSRt9E8lv8+K8H58p+unN
	jI+a+9sq1eRsOLf74JJiB5w5bbQNdr/tDPF33f8qQJzML5OBtlHdy3KAt8m7jgavTSETq+uR3Op
	rrXXGlms/7CcjDPmMOyPB6HzMjKzC5TxJACfBtXYaHPa/eLWyIAWqHGztRKXEh2yEf7yIxJ/8rZ
	yT4kyFXtSO/xJnsMRCIl/C4kYaZg+LXY4Hui0KtpbBTvN4wFq/JRgRWo6oYqzqH0IRfKe4IyPiJ
	/pCuaAguM=
X-Google-Smtp-Source: AGHT+IEAXRLSNPpIJurMnEGwmvYApwNlOq6tDb9Dl0aVYkmeYSgfq1JFUld8MJVKjFypyctS+D1OeA==
X-Received: by 2002:a17:907:944a:b0:adb:428f:f748 with SMTP id a640c23a62f3a-afcb97d2a19mr203119166b.21.1755161744712;
        Thu, 14 Aug 2025 01:55:44 -0700 (PDT)
Message-ID: <8e0b4a82-3189-4446-96a8-921d8ae44a21@suse.com>
Date: Thu, 14 Aug 2025 10:55:42 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 09/22] x86/traps: Move load_system_tables() into
 traps-setup.c
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-10-andrew.cooper3@citrix.com>
 <a4a88d7a-8c1f-4170-a1fe-afafcad0c8ea@suse.com>
 <9e955bff-c145-4a52-af4f-a7055fc9aa67@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: <9e955bff-c145-4a52-af4f-a7055fc9aa67@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.08.2025 13:25, Andrew Cooper wrote:
> On 12/08/2025 10:19 am, Jan Beulich wrote:
>> On 08.08.2025 22:23, Andrew Cooper wrote:
>>> Since commit a35816b5cae8 ("x86/traps: Introduce early_traps_init() and
>>> simplify setup"), load_system_tables() is called later on the BSP, so the
>>> SYS_STATE_early_boot check can be dropped from the safety BUG_ON().
>>>
>>> Move the BUILD_BUG_ON() into build_assertions(),
>> I'm not quite convinced of this move - having the related BUILD_BUG_ON()
>> and BUG_ON() next to each other would seem better to me.
> 
> I don't see a specific reason for them to be together, and the comment
> explains what's going on.
> 
> With FRED, we want a related BUILD_BUG_ON(), but there's no equivalent
> BUG_ON() because MSR_RSP_SL0 will #GP on being misaligned.

That BUILD_BUG_ON() could then sit next to the MSR write? Unless of course
that ends up sitting in an assembly source.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 08:58:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 08:58:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081141.1441264 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umTmk-0006rY-8X; Thu, 14 Aug 2025 08:58:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081141.1441264; Thu, 14 Aug 2025 08: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 1umTmk-0006rR-5k; Thu, 14 Aug 2025 08:58:10 +0000
Received: by outflank-mailman (input) for mailman id 1081141;
 Thu, 14 Aug 2025 08:58:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xqZt=22=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umTmj-0006rL-0x
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 08:58:09 +0000
Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com
 [2a00:1450:4864:20::62a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cb18a2a0-78ec-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 10:58:06 +0200 (CEST)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-afcb7a3a085so116630266b.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 01:58: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
 a640c23a62f3a-af929c6a157sm2435099566b.91.2025.08.14.01.58.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 01:58: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>
X-Inumbo-ID: cb18a2a0-78ec-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755161886; x=1755766686; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=v7zxseWO7fJ41t6X11VD6A//Wc+ZvOZijJ0WWNZHnGs=;
        b=KeSyides42XKgfk3FpPfJjSKb2hfhU0EE+2bytigcc/ZGpEvHOs5eGt7KK7EVMFkLB
         6CCJtPJcQFxn9gADvNf28knrM8IEkXnq2Djmb+i33vtLj8MTAP1qHz78id4nnBrG8H3N
         1AhOVzqCMVhhU7nK4M8sf/5UnyOREWy6vTBdRlT3quA8Tpp9Hacs2AG9Ngczdod2qToJ
         qrv5RyWO1HL9sPvRJS6bZfUUlbL+2hwyxkVL87iwAG0GLS2qRuUv9/Y53Gb++gcK9cdM
         jwXFv/brPUHX54tGLw0D5VmAQWEdIzHT2aw0UASWbYCF625/LUuM6VggiNyfeaPqD9NM
         eTjQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755161886; x=1755766686;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=v7zxseWO7fJ41t6X11VD6A//Wc+ZvOZijJ0WWNZHnGs=;
        b=Dv1AvTd4BQT0/VlZi+myg02p9gxyUVu8I+8XhZncGRraaJcfTILGu2hIqWYOMOoANg
         AZoA4cwA5qS7E0QglG6YZ2vZ3tC9RD4z1oKvjUG9xcVrzDfZ1TNQWT3ubdFNr/miMSAm
         avp+6ZbvErLWrBmbnwnsgIvlmoo4A+ggNkTgxAZPT44jxPHYfqvVucJ3pkY3mYIuT/fe
         dyJZNUVPUz7+Lf5ZMXwjH67p5qEe1NAHrwUz2TiwavJBa2BuxNOPoEWS6V5CVZqHkuUG
         EuXF0IwpJtnWt96XnWN+mrzdCEkjLVrtgn5fv6uGuFp9gJx4fXe9vM0mL4KvOlpv2k45
         U8TA==
X-Forwarded-Encrypted: i=1; AJvYcCXmSlmSTeAEi6i0CcHtp2otnMO9LNc27Gp6aGCqjhKzJzYHX+gThtOVJ+ih78CRAWFTlA26/f0GJek=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxG9Nat+b23j1DRZ2jNoQ94vINkT65GxWtYgCByUkt8TJhpqaN4
	BVfQKygk2G9e/eHQCtnCoQhX+B2jiWjpdhCY2NuJh3tpuKIRInSHZTlGkf+ieryJ6zgGXKyb4vz
	DXJE=
X-Gm-Gg: ASbGncv7nR2FvID9ikw6qCWpQm6f7DOpR4uafBVcA9PdAqK1OjRe79fI8H37EKfd/MD
	AmT1KrqUxlDzcRVL5vGIhbUlcoPvcu6iGSq2Dk/IJCNWLXtUa0OdFGbdI7EWnRBJ6NN8v4un+qa
	2FXC7BkxI7oIKmeaP1q+4kpx9ezDR6vT4JJfM2g3Jm2urk4UxKIOMONTMHgK9cmR37MpjDEgROX
	KEy3+foeVC98KSdoVsQv/i8Qq96WHqr7uDjQP1yQ48zYWdFfMhp1ObQFvtSVdCTP21lB6nJqcbn
	xvY8yLtAg6Q5ScYkIEpYsx6Ckcw+RPSiA0ioBJhy0gxMZYvjOdcf/PHo2gVJ855vUXBvs/r0oEa
	SGY5Fdcdzea5AL+mo5SmZXzGDgxH27S4Ot0DMUuWi4aknXuAksWgP5UZ8s3gSDtbbyBl1OYvj1f
	x6omGX3C4=
X-Google-Smtp-Source: AGHT+IHea2b9brVqjktVDTIR8Kz2UD1jotBaKgncHbZ2BLXaHy/JuPMgfb5+Za1y84qhfaSGAsgiJA==
X-Received: by 2002:a17:906:ef0b:b0:ae3:4f57:2110 with SMTP id a640c23a62f3a-afcb992522amr215157266b.54.1755161885791;
        Thu, 14 Aug 2025 01:58:05 -0700 (PDT)
Message-ID: <d1a309bc-dc90-4383-a844-ebb9b668e0d2@suse.com>
Date: Thu, 14 Aug 2025 10:58:03 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 10/22] x86/traps: Move subarch_percpu_traps_init() into
 traps-setup.c
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-11-andrew.cooper3@citrix.com>
 <646c538a-850a-4370-8132-c06d9be8b422@citrix.com>
 <769ba73f-b490-43db-a056-fc1d95ec9f27@suse.com>
 <3ff00f71-b16e-4426-98f5-27bc6f6b92cf@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: <3ff00f71-b16e-4426-98f5-27bc6f6b92cf@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 13.08.2025 13:53, Andrew Cooper wrote:
> On 12/08/2025 10:52 am, Jan Beulich wrote:
>> On 11.08.2025 10:17, Andrew Cooper wrote:
>>> On 08/08/2025 9:23 pm, Andrew Cooper wrote:
>>>> ... along with the supporting functions.  Switch to Xen coding style, and make
>>>> static as there are no external callers.
>>>>
>>>> Rename to legacy_syscall_init() as a more accurate name.
>>>>
>>>> No functional change.
>>>>
>>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>>> ---
>>>> CC: Jan Beulich <JBeulich@suse.com>
>>>> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
>>>> ---
>>>>  xen/arch/x86/include/asm/system.h |  2 -
>>>>  xen/arch/x86/traps-setup.c        | 97 ++++++++++++++++++++++++++++++-
>>>>  xen/arch/x86/x86_64/traps.c       | 92 -----------------------------
>>>>  3 files changed, 95 insertions(+), 96 deletions(-)
>>>>
>>>> diff --git a/xen/arch/x86/include/asm/system.h b/xen/arch/x86/include/asm/system.h
>>>> index 3cdc56e4ba6d..6c2800d8158d 100644
>>>> --- a/xen/arch/x86/include/asm/system.h
>>>> +++ b/xen/arch/x86/include/asm/system.h
>>>> @@ -256,6 +256,4 @@ static inline int local_irq_is_enabled(void)
>>>>  #define BROKEN_ACPI_Sx          0x0001
>>>>  #define BROKEN_INIT_AFTER_S1    0x0002
>>>>  
>>>> -void subarch_percpu_traps_init(void);
>>>> -
>>>>  #endif
>>>> diff --git a/xen/arch/x86/traps-setup.c b/xen/arch/x86/traps-setup.c
>>>> index 13b8fcf0ba51..fbae7072c292 100644
>>>> --- a/xen/arch/x86/traps-setup.c
>>>> +++ b/xen/arch/x86/traps-setup.c
>>>> @@ -2,13 +2,15 @@
>>>>  /*
>>>>   * Configuration of event handling for all CPUs.
>>>>   */
>>>> +#include <xen/domain_page.h>
>>>>  #include <xen/init.h>
>>>>  #include <xen/param.h>
>>>>  
>>>> +#include <asm/endbr.h>
>>>>  #include <asm/idt.h>
>>>>  #include <asm/msr.h>
>>>>  #include <asm/shstk.h>
>>>> -#include <asm/system.h>
>>>> +#include <asm/stubs.h>
>>>>  #include <asm/traps.h>
>>>>  
>>>>  DEFINE_PER_CPU_READ_MOSTLY(idt_entry_t *, idt);
>>>> @@ -19,6 +21,8 @@ static bool __initdata opt_ler;
>>>>  boolean_param("ler", opt_ler);
>>>>  
>>>>  void nocall entry_PF(void);
>>>> +void nocall lstar_enter(void);
>>>> +void nocall cstar_enter(void);
>>>>  
>>>>  /*
>>>>   * Sets up system tables and descriptors for IDT devliery.
>>>> @@ -138,6 +142,95 @@ static void load_system_tables(void)
>>>>      BUG_ON(stack_bottom & 15);
>>>>  }
>>>>  
>>>> +static unsigned int write_stub_trampoline(
>>>> +    unsigned char *stub, unsigned long stub_va,
>>>> +    unsigned long stack_bottom, unsigned long target_va)
>>>> +{
>>>> +    unsigned char *p = stub;
>>>> +
>>>> +    if ( cpu_has_xen_ibt )
>>>> +    {
>>>> +        place_endbr64(p);
>>>> +        p += 4;
>>>> +    }
>>>> +
>>>> +    /* Store guest %rax into %ss slot */
>>>> +    /* movabsq %rax, stack_bottom - 8 */
>>>> +    *p++ = 0x48;
>>>> +    *p++ = 0xa3;
>>>> +    *(uint64_t *)p = stack_bottom - 8;
>>>> +    p += 8;
>>>> +
>>>> +    /* Store guest %rsp in %rax */
>>>> +    /* movq %rsp, %rax */
>>>> +    *p++ = 0x48;
>>>> +    *p++ = 0x89;
>>>> +    *p++ = 0xe0;
>>>> +
>>>> +    /* Switch to Xen stack */
>>>> +    /* movabsq $stack_bottom - 8, %rsp */
>>>> +    *p++ = 0x48;
>>>> +    *p++ = 0xbc;
>>>> +    *(uint64_t *)p = stack_bottom - 8;
>>>> +    p += 8;
>>>> +
>>>> +    /* jmp target_va */
>>>> +    *p++ = 0xe9;
>>>> +    *(int32_t *)p = target_va - (stub_va + (p - stub) + 4);
>>>> +    p += 4;
>>>> +
>>>> +    /* Round up to a multiple of 16 bytes. */
>>>> +    return ROUNDUP(p - stub, 16);
>>>> +}
>>>> +
>>>> +static void legacy_syscall_init(void)
>>>> +{
>>>> +    unsigned long stack_bottom = get_stack_bottom();
>>>> +    unsigned long stub_va = this_cpu(stubs.addr);
>>>> +    unsigned char *stub_page;
>>>> +    unsigned int offset;
>>>> +
>>>> +    /* No PV guests?  No need to set up SYSCALL/SYSENTER infrastructure. */
>>>> +    if ( !IS_ENABLED(CONFIG_PV) )
>>>> +        return;
>>>> +
>>>> +    stub_page = map_domain_page(_mfn(this_cpu(stubs.mfn)));
>>>> +
>>>> +    /*
>>>> +     * Trampoline for SYSCALL entry from 64-bit mode.  The VT-x HVM vcpu
>>>> +     * context switch logic relies on the SYSCALL trampoline being at the
>>>> +     * start of the stubs.
>>>> +     */
>>>> +    wrmsrl(MSR_LSTAR, stub_va);
>>>> +    offset = write_stub_trampoline(stub_page + (stub_va & ~PAGE_MASK),
>>>> +                                   stub_va, stack_bottom,
>>>> +                                   (unsigned long)lstar_enter);
>>>> +    stub_va += offset;
>>>> +
>>>> +    if ( cpu_has_sep )
>>>> +    {
>>>> +        /* SYSENTER entry. */
>>>> +        wrmsrl(MSR_IA32_SYSENTER_ESP, stack_bottom);
>>>> +        wrmsrl(MSR_IA32_SYSENTER_EIP, (unsigned long)sysenter_entry);
>>>> +        wrmsr(MSR_IA32_SYSENTER_CS, __HYPERVISOR_CS, 0);
>>>> +    }
>>>> +
>>>> +    /* Trampoline for SYSCALL entry from compatibility mode. */
>>>> +    wrmsrl(MSR_CSTAR, stub_va);
>>>> +    offset += write_stub_trampoline(stub_page + (stub_va & ~PAGE_MASK),
>>>> +                                    stub_va, stack_bottom,
>>>> +                                    (unsigned long)cstar_enter);
>>>> +
>>>> +    /* Don't consume more than half of the stub space here. */
>>>> +    ASSERT(offset <= STUB_BUF_SIZE / 2);
>>>> +
>>>> +    unmap_domain_page(stub_page);
>>>> +
>>>> +    /* Common SYSCALL parameters. */
>>>> +    wrmsrl(MSR_STAR, XEN_MSR_STAR);
>>>> +    wrmsrl(MSR_SYSCALL_MASK, XEN_SYSCALL_MASK);
>>>> +}
>>> These want adjusting to use wrmsrns(), similarly to the previous patch.Â 
>>> Fixed locally.
>> Also the one higher in the function, I suppose.
> 
> All of them.
> 
> I'm not aware of anywhere were we want serialising behaviour, except for
> ICR which is buggly non-serialising and has workarounds.
> 
> But I'm also not sure enough of this to suggest that we make wrmsr() be
> wrmsrns() by default.

I'm pretty sure we don't want this. If nothing else then to avoid code bloat
for MSR writes which are non-serializing even in the original form.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 09:17:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 09:17:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081152.1441274 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umU57-0001r5-N7; Thu, 14 Aug 2025 09:17:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081152.1441274; Thu, 14 Aug 2025 09:17: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 1umU57-0001qy-KI; Thu, 14 Aug 2025 09:17:09 +0000
Received: by outflank-mailman (input) for mailman id 1081152;
 Thu, 14 Aug 2025 09:17:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=K78q=22=gmail.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1umU55-0001qs-Ez
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 09:17:07 +0000
Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com
 [2a00:1450:4864:20::52e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 710965dd-78ef-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 11:17:03 +0200 (CEST)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-6188b747ebeso115162a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 02:17: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>
X-Inumbo-ID: 710965dd-78ef-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1755163023; x=1755767823; darn=lists.xenproject.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=sLrsCI6ouSQ5AeCVZBxZkV/Dery85sbaLhlKELyCT9g=;
        b=fqWFwbOgWBFFAdJiKfi4W584jYzWgrsjz/TPJ8VRjxG6v0ZnQCg6m7mX6C98kxkzcV
         4GRdbbZZhd1XPS+UGTqrz1yzrHcToe1nPDGg7DnmDyJgQen27xY6r+PixwznYgAWLM45
         +HzkS2RB5vU+m6Kpk6lX9rFiq1VvYZTYf1gdqUddPCyD1pAOY7J4oKJeDxD4wJ0PQT7u
         sq+nP5fwfIqaKt2R3ChoKgD3PFaR6JFueCATfBXF0N2WzkI1SW63fgrZazYTa8qUPCp2
         L9nPX+8BdxyxdxdsSNKa/oEBnU/dVYLeX+W4+XEFUsZKLhuN2oo4an+071E1uZoEAGLD
         Rn4g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755163023; x=1755767823;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=sLrsCI6ouSQ5AeCVZBxZkV/Dery85sbaLhlKELyCT9g=;
        b=A/1ROP1rHImcOTmoGfr0EY8VR0H0wZqSSL8OnLdfBnrY11ooDB3edWVr5/T3hcofhh
         oRbOcIfIfKX7XSswKwZx+XIzvjjOsS8Bh5PBwtEBLI1ltbXPM5AyWRl+vay8tUMk1Xrz
         4jZiquPtUS6DMxhshMsQisA1RcPe267dy49M/YFeDAyOonZWnqps/cqsf0g//9YUMWcJ
         Wq5SJLod8j0woxt3QsdK4Zt6pR2Ian3TNXR/k+bQaVFnNdwg5d02W+GgWoC2efToYyY0
         6Ts3WowuoDDxINAFRjzIX6CW+m4APWUwjVCHZhAKMZ5buAI61TtDcU2zEhVdsTSt29C2
         XQPg==
X-Forwarded-Encrypted: i=1; AJvYcCVUYWUSdmqUc9Y8nX8TzTW+u01iOmSaHhByvgPA/b/4eS7zFa3W78J0padi5uK5kFRDAzykDjhWMeA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzfJz9g6kLuRldEO65siCCPfMxW6/SGihZKudkJiPv1iFEdyvRm
	ODBDMSPxCPgN7f+GcLd+0VMwoNSpUknNBgd2wD3vTX8/2KsQqkwZtApcpupK4lbyzE0O/tAJk/E
	rbsvuHb74u5KLV+hq0fFSosaUCYCxeNI=
X-Gm-Gg: ASbGncsfQbKgx7im70f8I6hLLcT7pzxFwWlfWByMYIZ3Cv1594GVXn5fPjyleLSj5IY
	hpRP4+HtRta94nrvkWR6Ka6OCpSAjJtsEZUxO10yZtqO87CUQWhyUXViD+7IwF+3V8jsBVeSk+t
	xfU1qZUL+HsZsmQbkRAJYYvseK2CmHc5HimV5q1YfiGA/WoPI91c/NXllI5shx4UYez3x4zJVO9
	Kx/VS38HvIwKOW9QhtA
X-Google-Smtp-Source: AGHT+IENygSlyPb31AAcf0Y9lWGk0c8G1ihJ9/ymXnY6wNBLjmV0slds/F0qNtxG/PgkPZAcnUg5scrhd8lf1WpZgn0=
X-Received: by 2002:a05:6402:40cf:b0:615:ec26:99ad with SMTP id
 4fb4d7f45d1cf-6188b930e73mr916170a12.2.1755163022852; Thu, 14 Aug 2025
 02:17:02 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1755111932.git.nicola.vetrini@bugseng.com>
 <d716610470ddd7da75789cfa546ed209ff24e1d1.1755111932.git.nicola.vetrini@bugseng.com>
 <0fde3942-22e7-470c-ad70-aa2c574d10dc@suse.com>
In-Reply-To: <0fde3942-22e7-470c-ad70-aa2c574d10dc@suse.com>
From: Nicola Vetrini <nicola.vetrini@gmail.com>
Date: Thu, 14 Aug 2025 11:16:50 +0200
X-Gm-Features: Ac12FXwNNZtNIAw0faKO8q_1tICQSxLwlCs58SjS97az0GXvQN71LnDiGkLYOz8
Message-ID: <CADDAUeOT6+uBXYVJodq_vekvB_4m=SpEXAhxd3cAgqrpVpFdYA@mail.gmail.com>
Subject: Re: [XEN PATCH 2/3] xen/macros: Drop alternative definition of
 BUILD_BUG_ON(_ZERO)? for old GCC
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
Content-Type: multipart/alternative; boundary="0000000000008007b2063c4fbc19"

--0000000000008007b2063c4fbc19
Content-Type: text/plain; charset="UTF-8"

On Thu, Aug 14, 2025, 10:08 Jan Beulich <jbeulich@suse.com> wrote:

> On 13.08.2025 21:12, nicola.vetrini@gmail.com wrote:
> > From: Nicola Vetrini <nicola.vetrini@gmail.com>
> >
> > The toolchain baseline for GCC is 5.1, which supports _Static_assert
> > in c99 mode
>
> Hmm, interesting. I can confirm the behavior, but isn't this a bug?
> There's no
> _Static_assert() in plain C99. Respective notes in the "Changes, New
> Features,
> and Fixes" are also saying otherwise:
> https://gcc.gnu.org/gcc-4.6/changes.html
> has "This support may be selected with -std=c1x, or -std=gnu1x for C1X with
> GNU extensions." Nothing new is said in any of the respective documents up
> to
> the release of gcc5. (In fact, the compiler accepts the construct even with
> -std=c89.)
>

 Some features that are part of the C99 standard are accepted as extensions
in C90 mode, and some features that are part of the C11 standard are
accepted as extensions in C90 and C99 modes. Use of the -std options listed
above disables these extensions where they conflict with the C standard
version selected

If my reading is correct then this paragraph gives them the leeway needed
to use it even in c89, except maybe with -pedantic


> Our misra/C-language-toolchain.rst refers to a section in gcc12's doc which
> doesn't mention _Static_assert() at all, afaics.
>
> Jan
>

I can check with my colleagues, but I suspect this is not documented as an
extension by GCC because it's not one in C11, and gcc12 supports all(?) of
C11, therefore it is an extension only with respect to certain conditions,
which GCC does not use as a category in their docs, but we keep track of
what is an extension and what is not, given the CU standard selected.

>

--0000000000008007b2063c4fbc19
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"auto"><div><br><br><div class=3D"gmail_quote"><div dir=3D"ltr" =
class=3D"gmail_attr">On Thu, Aug 14, 2025, 10:08 Jan Beulich &lt;<a href=3D=
"mailto:jbeulich@suse.com" target=3D"_blank" rel=3D"noreferrer">jbeulich@su=
se.com</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"m=
argin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 13.08.2025=
 21:12, <a href=3D"mailto:nicola.vetrini@gmail.com" rel=3D"noreferrer noref=
errer" target=3D"_blank">nicola.vetrini@gmail.com</a> wrote:<br>
&gt; From: Nicola Vetrini &lt;<a href=3D"mailto:nicola.vetrini@gmail.com" r=
el=3D"noreferrer noreferrer" target=3D"_blank">nicola.vetrini@gmail.com</a>=
&gt;<br>
&gt; <br>
&gt; The toolchain baseline for GCC is 5.1, which supports _Static_assert<b=
r>
&gt; in c99 mode<br>
<br>
Hmm, interesting. I can confirm the behavior, but isn&#39;t this a bug? The=
re&#39;s no<br>
_Static_assert() in plain C99. Respective notes in the &quot;Changes, New F=
eatures,<br>
and Fixes&quot; are also saying otherwise: <a href=3D"https://gcc.gnu.org/g=
cc-4.6/changes.html" rel=3D"noreferrer noreferrer noreferrer" target=3D"_bl=
ank">https://gcc.gnu.org/gcc-4.6/changes.html</a><br>
has &quot;This support may be selected with -std=3Dc1x, or -std=3Dgnu1x for=
 C1X with<br>
GNU extensions.&quot; Nothing new is said in any of the respective document=
s up to<br>
the release of gcc5. (In fact, the compiler accepts the construct even with=
<br>
-std=3Dc89.)<br></blockquote></div></div><div dir=3D"auto"><br></div><div d=
ir=3D"auto">=C2=A0Some features that are part of the C99 standard are accep=
ted as extensions in C90 mode, and some features that are part of the C11 s=
tandard are accepted as extensions in C90 and C99 modes. Use of the -std op=
tions listed above disables these extensions where they conflict with the C=
 standard version selected</div><div dir=3D"auto"><br></div><div dir=3D"aut=
o">If my reading is correct then this paragraph gives them the leeway neede=
d to use it even in c89, except maybe with -pedantic</div><div dir=3D"auto"=
><br></div><div dir=3D"auto"><div class=3D"gmail_quote"><blockquote class=
=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd=
ing-left:1ex">
<br>
Our misra/C-language-toolchain.rst refers to a section in gcc12&#39;s doc w=
hich<br>
doesn&#39;t mention _Static_assert() at all, afaics.<br>
<br>
Jan<br></blockquote></div></div><div dir=3D"auto"><br></div><div dir=3D"aut=
o">I can check with my colleagues, but I suspect this is not documented as =
an extension by GCC because it&#39;s not one in C11, and gcc12 supports all=
(?) of C11, therefore it is an extension only with respect to certain condi=
tions, which GCC does not use as a category in their docs, but we keep trac=
k of what is an extension and what is not, given the CU standard selected.=
=C2=A0</div><div dir=3D"auto"><div class=3D"gmail_quote"><blockquote class=
=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd=
ing-left:1ex">
</blockquote></div></div></div>

--0000000000008007b2063c4fbc19--


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 09:32:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 09:32:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081161.1441284 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umUJZ-0004xK-Th; Thu, 14 Aug 2025 09:32:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081161.1441284; Thu, 14 Aug 2025 09:32: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 1umUJZ-0004xD-R0; Thu, 14 Aug 2025 09:32:05 +0000
Received: by outflank-mailman (input) for mailman id 1081161;
 Thu, 14 Aug 2025 09:32:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BVY3=22=huawei.com=ruanjinjie@srs-se1.protection.inumbo.net>)
 id 1umUJY-0004x1-Sa
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 09:32:04 +0000
Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 84a01ac0-78f1-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 11:32:02 +0200 (CEST)
Received: from mail.maildlp.com (unknown [172.19.88.194])
 by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4c2g313LRmztTJC;
 Thu, 14 Aug 2025 17:30:53 +0800 (CST)
Received: from dggpemf500011.china.huawei.com (unknown [7.185.36.131])
 by mail.maildlp.com (Postfix) with ESMTPS id 796DD14027A;
 Thu, 14 Aug 2025 17:31:53 +0800 (CST)
Received: from [10.67.109.254] (10.67.109.254) by
 dggpemf500011.china.huawei.com (7.185.36.131) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Thu, 14 Aug 2025 17:31:51 +0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 84a01ac0-78f1-11f0-a328-13f23c93f187
Message-ID: <7c342b54-553c-013e-bed0-bc723c20464a@huawei.com>
Date: Thu, 14 Aug 2025 17:31:30 +0800
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
 Thunderbird/102.2.0
Subject: Re: [PATCH -next v7 5/7] arm64: entry: Refactor
 preempt_schedule_irq() check code
Content-Language: en-US
To: Mark Rutland <mark.rutland@arm.com>
CC: <catalin.marinas@arm.com>, <will@kernel.org>, <oleg@redhat.com>,
	<sstabellini@kernel.org>, <puranjay@kernel.org>, <broonie@kernel.org>,
	<mbenes@suse.cz>, <ryan.roberts@arm.com>, <akpm@linux-foundation.org>,
	<chenl311@chinatelecom.cn>, <ada.coupriediaz@arm.com>,
	<anshuman.khandual@arm.com>, <kristina.martsenko@arm.com>,
	<liaochang1@huawei.com>, <ardb@kernel.org>, <leitao@debian.org>,
	<linux-arm-kernel@lists.infradead.org>, <linux-kernel@vger.kernel.org>,
	<xen-devel@lists.xenproject.org>
References: <20250729015456.3411143-1-ruanjinjie@huawei.com>
 <20250729015456.3411143-6-ruanjinjie@huawei.com>
 <aJsh5oM3CoUELkvY@J2N7QTR9R3>
From: Jinjie Ruan <ruanjinjie@huawei.com>
In-Reply-To: <aJsh5oM3CoUELkvY@J2N7QTR9R3>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Originating-IP: [10.67.109.254]
X-ClientProxiedBy: kwepems500001.china.huawei.com (7.221.188.70) To
 dggpemf500011.china.huawei.com (7.185.36.131)



On 2025/8/12 19:13, Mark Rutland wrote:
> On Tue, Jul 29, 2025 at 09:54:54AM +0800, Jinjie Ruan wrote:
>> ARM64 requires an additional check whether to reschedule on return
>> from interrupt. So add arch_irqentry_exit_need_resched() as the default
>> NOP implementation and hook it up into the need_resched() condition in
>> raw_irqentry_exit_cond_resched(). This allows ARM64 to implement
>> the architecture specific version for switching over to
>> the generic entry code.
>>
>> To align the structure of the code with irqentry_exit_cond_resched()
>> from the generic entry code, hoist the need_irq_preemption()
>> and IS_ENABLED() check earlier. And different preemption check functions
>> are defined based on whether dynamic preemption is enabled.
>>
>> Suggested-by: Mark Rutland <mark.rutland@arm.com>
>> Suggested-by: Kevin Brodsky <kevin.brodsky@arm.com>
>> Suggested-by: Thomas Gleixner <tglx@linutronix.de>
>> Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
>> ---
>>  arch/arm64/include/asm/preempt.h |  4 ++++
>>  arch/arm64/kernel/entry-common.c | 35 ++++++++++++++++++--------------
>>  kernel/entry/common.c            | 16 ++++++++++++++-
>>  3 files changed, 39 insertions(+), 16 deletions(-)
> 
> Can you please split the change to kernel/entry/common.c into a separate
> patch? That doesn't depend on the arm64-specific changes, and it'll make
> it easier to handle any conflcits when merging this.

Sure, I'll split the change into separate patch.

> 
> Mark.
> 
>>
>> diff --git a/arch/arm64/include/asm/preempt.h b/arch/arm64/include/asm/preempt.h
>> index 0159b625cc7f..0f0ba250efe8 100644
>> --- a/arch/arm64/include/asm/preempt.h
>> +++ b/arch/arm64/include/asm/preempt.h
>> @@ -85,6 +85,7 @@ static inline bool should_resched(int preempt_offset)
>>  void preempt_schedule(void);
>>  void preempt_schedule_notrace(void);
>>  
>> +void raw_irqentry_exit_cond_resched(void);
>>  #ifdef CONFIG_PREEMPT_DYNAMIC
>>  
>>  DECLARE_STATIC_KEY_TRUE(sk_dynamic_irqentry_exit_cond_resched);
>> @@ -92,11 +93,14 @@ void dynamic_preempt_schedule(void);
>>  #define __preempt_schedule()		dynamic_preempt_schedule()
>>  void dynamic_preempt_schedule_notrace(void);
>>  #define __preempt_schedule_notrace()	dynamic_preempt_schedule_notrace()
>> +void dynamic_irqentry_exit_cond_resched(void);
>> +#define irqentry_exit_cond_resched()	dynamic_irqentry_exit_cond_resched()
>>  
>>  #else /* CONFIG_PREEMPT_DYNAMIC */
>>  
>>  #define __preempt_schedule()		preempt_schedule()
>>  #define __preempt_schedule_notrace()	preempt_schedule_notrace()
>> +#define irqentry_exit_cond_resched()	raw_irqentry_exit_cond_resched()
>>  
>>  #endif /* CONFIG_PREEMPT_DYNAMIC */
>>  #endif /* CONFIG_PREEMPTION */
>> diff --git a/arch/arm64/kernel/entry-common.c b/arch/arm64/kernel/entry-common.c
>> index 7c2299c1ba79..4f92664fd46c 100644
>> --- a/arch/arm64/kernel/entry-common.c
>> +++ b/arch/arm64/kernel/entry-common.c
>> @@ -285,19 +285,8 @@ static void noinstr arm64_exit_el1_dbg(struct pt_regs *regs,
>>  		lockdep_hardirqs_on(CALLER_ADDR0);
>>  }
>>  
>> -#ifdef CONFIG_PREEMPT_DYNAMIC
>> -DEFINE_STATIC_KEY_TRUE(sk_dynamic_irqentry_exit_cond_resched);
>> -#define need_irq_preemption() \
>> -	(static_branch_unlikely(&sk_dynamic_irqentry_exit_cond_resched))
>> -#else
>> -#define need_irq_preemption()	(IS_ENABLED(CONFIG_PREEMPTION))
>> -#endif
>> -
>>  static inline bool arm64_preempt_schedule_irq(void)
>>  {
>> -	if (!need_irq_preemption())
>> -		return false;
>> -
>>  	/*
>>  	 * DAIF.DA are cleared at the start of IRQ/FIQ handling, and when GIC
>>  	 * priority masking is used the GIC irqchip driver will clear DAIF.IF
>> @@ -672,6 +661,24 @@ static __always_inline void __el1_pnmi(struct pt_regs *regs,
>>  	arm64_exit_nmi(regs, state);
>>  }
>>  
>> +void raw_irqentry_exit_cond_resched(void)
>> +{
>> +	if (!preempt_count()) {
>> +		if (need_resched() && arm64_preempt_schedule_irq())
>> +			preempt_schedule_irq();
>> +	}
>> +}
>> +
>> +#ifdef CONFIG_PREEMPT_DYNAMIC
>> +DEFINE_STATIC_KEY_TRUE(sk_dynamic_irqentry_exit_cond_resched);
>> +void dynamic_irqentry_exit_cond_resched(void)
>> +{
>> +	if (!static_branch_unlikely(&sk_dynamic_irqentry_exit_cond_resched))
>> +		return;
>> +	raw_irqentry_exit_cond_resched();
>> +}
>> +#endif
>> +
>>  static __always_inline void __el1_irq(struct pt_regs *regs,
>>  				      void (*handler)(struct pt_regs *))
>>  {
>> @@ -681,10 +688,8 @@ static __always_inline void __el1_irq(struct pt_regs *regs,
>>  	do_interrupt_handler(regs, handler);
>>  	irq_exit_rcu();
>>  
>> -	if (!preempt_count() && need_resched()) {
>> -		if (arm64_preempt_schedule_irq())
>> -			preempt_schedule_irq();
>> -	}
>> +	if (IS_ENABLED(CONFIG_PREEMPTION))
>> +		irqentry_exit_cond_resched();
>>  
>>  	exit_to_kernel_mode(regs, state);
>>  }
>> diff --git a/kernel/entry/common.c b/kernel/entry/common.c
>> index b82032777310..4aa9656fa1b4 100644
>> --- a/kernel/entry/common.c
>> +++ b/kernel/entry/common.c
>> @@ -142,6 +142,20 @@ noinstr irqentry_state_t irqentry_enter(struct pt_regs *regs)
>>  	return ret;
>>  }
>>  
>> +/**
>> + * arch_irqentry_exit_need_resched - Architecture specific need resched function
>> + *
>> + * Invoked from raw_irqentry_exit_cond_resched() to check if need resched.
>> + * Defaults return true.
>> + *
>> + * The main purpose is to permit arch to skip preempt a task from an IRQ.
>> + */
>> +static inline bool arch_irqentry_exit_need_resched(void);
>> +
>> +#ifndef arch_irqentry_exit_need_resched
>> +static inline bool arch_irqentry_exit_need_resched(void) { return true; }
>> +#endif
>> +
>>  void raw_irqentry_exit_cond_resched(void)
>>  {
>>  	if (!preempt_count()) {
>> @@ -149,7 +163,7 @@ void raw_irqentry_exit_cond_resched(void)
>>  		rcu_irq_exit_check_preempt();
>>  		if (IS_ENABLED(CONFIG_DEBUG_ENTRY))
>>  			WARN_ON_ONCE(!on_thread_stack());
>> -		if (need_resched())
>> +		if (need_resched() && arch_irqentry_exit_need_resched())
>>  			preempt_schedule_irq();
>>  	}
>>  }
>> -- 
>> 2.34.1
>>
> 
> 


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 09:38:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 09:38:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081174.1441299 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umUPH-0005dO-Mq; Thu, 14 Aug 2025 09:37:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081174.1441299; Thu, 14 Aug 2025 09:37: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 1umUPH-0005dH-Jj; Thu, 14 Aug 2025 09:37:59 +0000
Received: by outflank-mailman (input) for mailman id 1081174;
 Thu, 14 Aug 2025 09:37:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BVY3=22=huawei.com=ruanjinjie@srs-se1.protection.inumbo.net>)
 id 1umUPG-0005dB-3B
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 09:37:58 +0000
Received: from szxga04-in.huawei.com (szxga04-in.huawei.com [45.249.212.190])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 582c0f9a-78f2-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 11:37:54 +0200 (CEST)
Received: from mail.maildlp.com (unknown [172.19.163.17])
 by szxga04-in.huawei.com (SkyGuard) with ESMTP id 4c2g7t6B27z2TT7M;
 Thu, 14 Aug 2025 17:35:06 +0800 (CST)
Received: from dggpemf500011.china.huawei.com (unknown [7.185.36.131])
 by mail.maildlp.com (Postfix) with ESMTPS id 51B151A0188;
 Thu, 14 Aug 2025 17:37:48 +0800 (CST)
Received: from [10.67.109.254] (10.67.109.254) by
 dggpemf500011.china.huawei.com (7.185.36.131) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Thu, 14 Aug 2025 17:37:46 +0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 582c0f9a-78f2-11f0-a328-13f23c93f187
Message-ID: <2530ba09-73eb-c0fd-5d77-4e6c5a0810a6@huawei.com>
Date: Thu, 14 Aug 2025 17:37:46 +0800
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
 Thunderbird/102.2.0
Subject: Re: [PATCH -next v7 0/7] arm64: entry: Convert to generic irq entry
Content-Language: en-US
To: Ada Couprie Diaz <ada.coupriediaz@arm.com>
CC: <catalin.marinas@arm.com>, <will@kernel.org>, <oleg@redhat.com>,
	<sstabellini@kernel.org>, <mark.rutland@arm.com>, <puranjay@kernel.org>,
	<broonie@kernel.org>, <mbenes@suse.cz>, <ryan.roberts@arm.com>,
	<akpm@linux-foundation.org>, <chenl311@chinatelecom.cn>,
	<anshuman.khandual@arm.com>, <kristina.martsenko@arm.com>,
	<liaochang1@huawei.com>, <ardb@kernel.org>, <leitao@debian.org>,
	<linux-arm-kernel@lists.infradead.org>, <linux-kernel@vger.kernel.org>,
	<xen-devel@lists.xenproject.org>
References: <20250729015456.3411143-1-ruanjinjie@huawei.com>
 <6bd09b5b-9830-42b4-ad9e-9ad1e153e564@arm.com>
 <94757d00-5a8e-ac6b-f832-030f33ccf771@huawei.com>
 <a3a8c0b8-e953-4c93-ab4d-0d9a4b3e47b1@arm.com>
From: Jinjie Ruan <ruanjinjie@huawei.com>
In-Reply-To: <a3a8c0b8-e953-4c93-ab4d-0d9a4b3e47b1@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Originating-IP: [10.67.109.254]
X-ClientProxiedBy: kwepems500001.china.huawei.com (7.221.188.70) To
 dggpemf500011.china.huawei.com (7.185.36.131)



On 2025/8/12 0:03, Ada Couprie Diaz wrote:
> On 06/08/2025 09:11, Jinjie Ruan wrote:
> 
>> On 2025/8/5 23:08, Ada Couprie Diaz wrote:
>>> Hi Jinjie,
>>>
>>> On 29/07/2025 02:54, Jinjie Ruan wrote:
>>>
>>>> Since commit a70e9f647f50 ("entry: Split generic entry into generic
>>>> exception and syscall entry") split the generic entry into generic irq
>>>> entry and generic syscall entry, it is time to convert arm64 to use
>>>> the generic irq entry. And ARM64 will be completely converted to
>>>> generic
>>>> entry in the upcoming patch series.
>>> Note : I had to manually cherry-pick a70e9f647f50 when pulling the
>>> series
>>> on top of the Linux Arm Kernel for-next/core branch, but there might be
>>> something I'm missing here.
>> It seems that it is now in mainline v6.16-rc1 and linux-next but not
>> Linux Arm Kernel for-next/core branch.
> You're right, I misinterpreted the `-next` of the subject, thanks for the
> clarification !
>>> I'll spend some time testing the series now, specifically given patch
>>> 6's
>>> changes, but other than that everything I saw made sense and didn't look
>>> like it would be of concern to me.
>> Thank you for the test and review.
> 
> I've spent some time testing the series with a few different
> configurations,
> including PREEMPT_RT, pNMI, various lockup and hang detection options,
> UBSAN, shadow call stack, and various CONFIG_DEBUG_XYZ (focused on locks
> and IRQs), on both hardware (AMD Seattle) and KVM guests.
> 
> I tried to generate a diverse set of interrupts (via debug exceptions,
> page faults, perf, kprobes, swapping, OoM) while loading the system with
> different workloads, some generating a lot of context switches : hackbench
> and signaltest from rt-tests[0], and mc-crusher[1], a memcached
> stress-test.
> 
> I did not have any issues, nor any warning reported by the various
> debug features during all my hours of testing, so it looks good !
> 
> Tested-by: Ada Couprie Diaz <ada.coupriediaz@arm.com>

Thank you for your comprehensive testing and code review.

> 
> Thank you for the series !
> Ada
> 
> [0]: https://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git/
> [1]: https://github.com/memcached/mc-crusher
> 
> 


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 09:39:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 09:39:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081180.1441309 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umUQs-00067s-0Y; Thu, 14 Aug 2025 09:39:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081180.1441309; Thu, 14 Aug 2025 09:39: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 1umUQr-00067l-TW; Thu, 14 Aug 2025 09:39:37 +0000
Received: by outflank-mailman (input) for mailman id 1081180;
 Thu, 14 Aug 2025 09:39:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BVY3=22=huawei.com=ruanjinjie@srs-se1.protection.inumbo.net>)
 id 1umUQq-00067d-O6
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 09:39:36 +0000
Received: from szxga06-in.huawei.com (szxga06-in.huawei.com [45.249.212.32])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 93fd16d9-78f2-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 11:39:35 +0200 (CEST)
Received: from mail.maildlp.com (unknown [172.19.88.214])
 by szxga06-in.huawei.com (SkyGuard) with ESMTP id 4c2gG93jG7z2dMHD;
 Thu, 14 Aug 2025 17:40:33 +0800 (CST)
Received: from dggpemf500011.china.huawei.com (unknown [7.185.36.131])
 by mail.maildlp.com (Postfix) with ESMTPS id 460C11A016C;
 Thu, 14 Aug 2025 17:39:29 +0800 (CST)
Received: from [10.67.109.254] (10.67.109.254) by
 dggpemf500011.china.huawei.com (7.185.36.131) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1544.11; Thu, 14 Aug 2025 17:39:27 +0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 93fd16d9-78f2-11f0-a328-13f23c93f187
Message-ID: <04df941a-f62d-e640-6619-e79dc88114b3@huawei.com>
Date: Thu, 14 Aug 2025 17:39:27 +0800
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
 Thunderbird/102.2.0
Subject: Re: [PATCH -next v7 0/7] arm64: entry: Convert to generic irq entry
Content-Language: en-US
To: Mark Rutland <mark.rutland@arm.com>
CC: <catalin.marinas@arm.com>, <will@kernel.org>, <oleg@redhat.com>,
	<sstabellini@kernel.org>, <puranjay@kernel.org>, <broonie@kernel.org>,
	<mbenes@suse.cz>, <ryan.roberts@arm.com>, <akpm@linux-foundation.org>,
	<chenl311@chinatelecom.cn>, <ada.coupriediaz@arm.com>,
	<anshuman.khandual@arm.com>, <kristina.martsenko@arm.com>,
	<liaochang1@huawei.com>, <ardb@kernel.org>, <leitao@debian.org>,
	<linux-arm-kernel@lists.infradead.org>, <linux-kernel@vger.kernel.org>,
	<xen-devel@lists.xenproject.org>
References: <20250729015456.3411143-1-ruanjinjie@huawei.com>
 <aJsjQsDZjhG8oiK-@J2N7QTR9R3>
From: Jinjie Ruan <ruanjinjie@huawei.com>
In-Reply-To: <aJsjQsDZjhG8oiK-@J2N7QTR9R3>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.67.109.254]
X-ClientProxiedBy: kwepems500001.china.huawei.com (7.221.188.70) To
 dggpemf500011.china.huawei.com (7.185.36.131)



On 2025/8/12 19:19, Mark Rutland wrote:
> Hi,
> 
> This is looking pretty good now, thanks for continuing to work on this!
> 
> I've left a couple of minor comments, and Ada has left a few more. If
> you're able to address those and respin atop v6.17-rc1, I think we can
> start figuring out how to queue this.

Sureï¼ŒI will revise these review comments based on v6.17-rc1 and release
a new version after local testing.

> 
> Mark.
> 
> On Tue, Jul 29, 2025 at 09:54:49AM +0800, Jinjie Ruan wrote:
>> Currently, x86, Riscv, Loongarch use the generic entry. Also convert
>> arm64 to use the generic entry infrastructure from kernel/entry/*.
>> The generic entry makes maintainers' work easier and codes more elegant,
>> which will make PREEMPT_DYNAMIC and PREEMPT_LAZY use the generic entry
>> common code and remove a lot of duplicate code.
>>
>> Since commit a70e9f647f50 ("entry: Split generic entry into generic
>> exception and syscall entry") split the generic entry into generic irq
>> entry and generic syscall entry, it is time to convert arm64 to use
>> the generic irq entry. And ARM64 will be completely converted to generic
>> entry in the upcoming patch series.
>>
>> The main convert steps are as follows:
>> - Split generic entry into generic irq entry and generic syscall to
>>   make the single patch more concentrated in switching to one thing.
>> - Make arm64 easier to use irqentry_enter/exit().
>> - Make arm64 closer to the PREEMPT_DYNAMIC code of generic entry.
>> - Switch to generic irq entry.
>>
>> It was tested ok with following test cases on QEMU virt platform:
>>  - Perf tests.
>>  - Different `dynamic preempt` mode switch.
>>  - Pseudo NMI tests.
>>  - Stress-ng CPU stress test.
>>  - MTE test case in Documentation/arch/arm64/memory-tagging-extension.rst
>>    and all test cases in tools/testing/selftests/arm64/mte/*.
>>
>> The test QEMU configuration is as follows:
>>
>> 	qemu-system-aarch64 \
>> 		-M virt,gic-version=3,virtualization=on,mte=on \
>> 		-cpu max,pauth-impdef=on \
>> 		-kernel Image \
>> 		-smp 8,sockets=1,cores=4,threads=2 \
>> 		-m 512m \
>> 		-nographic \
>> 		-no-reboot \
>> 		-device virtio-rng-pci \
>> 		-append "root=/dev/vda rw console=ttyAMA0 kgdboc=ttyAMA0,115200 \
>> 			earlycon preempt=voluntary irqchip.gicv3_pseudo_nmi=1" \
>> 		-drive if=none,file=images/rootfs.ext4,format=raw,id=hd0 \
>> 		-device virtio-blk-device,drive=hd0 \
>>
>> Changes in v7:
>> - Rebased on v6.16-rc7 and remove the merged first patch.
>> - Update the commit message.
>>
>> Changes in v6:
>> - Rebased on 6.14 rc2 next.
>> - Put the syscall bits aside and split it out.
>> - Have the split patch before the arm64 changes.
>> - Merge some tightly coupled patches.
>> - Adjust the order of some patches to make them more reasonable.
>> - Define regs_irqs_disabled() by inline function.
>> - Define interrupts_enabled() in terms of regs_irqs_disabled().
>> - Delete the fast_interrupts_enabled() macro.
>> - irqentry_state_t -> arm64_irqentry_state_t.
>> - Remove arch_exit_to_user_mode_prepare() and pull local_daif_mask() later
>>   in the arm64 exit sequence
>> - Update the commit message.
>>
>> Changes in v5:
>> - Not change arm32 and keep inerrupts_enabled() macro for gicv3 driver.
>> - Move irqentry_state definition into arch/arm64/kernel/entry-common.c.
>> - Avoid removing the __enter_from_*() and __exit_to_*() wrappers.
>> - Update "irqentry_state_t ret/irq_state" to "state"
>>   to keep it consistently.
>> - Use generic irq entry header for PREEMPT_DYNAMIC after split
>>   the generic entry.
>> - Also refactor the ARM64 syscall code.
>> - Introduce arch_ptrace_report_syscall_entry/exit(), instead of
>>   arch_pre/post_report_syscall_entry/exit() to simplify code.
>> - Make the syscall patches clear separation.
>> - Update the commit message.
>>
>> Changes in v4:
>> - Rework/cleanup split into a few patches as Mark suggested.
>> - Replace interrupts_enabled() macro with regs_irqs_disabled(), instead
>>   of left it here.
>> - Remove rcu and lockdep state in pt_regs by using temporary
>>   irqentry_state_t as Mark suggested.
>> - Remove some unnecessary intermediate functions to make it clear.
>> - Rework preempt irq and PREEMPT_DYNAMIC code
>>   to make the switch more clear.
>> - arch_prepare_*_entry/exit() -> arch_pre_*_entry/exit().
>> - Expand the arch functions comment.
>> - Make arch functions closer to its caller.
>> - Declare saved_reg in for block.
>> - Remove arch_exit_to_kernel_mode_prepare(), arch_enter_from_kernel_mode().
>> - Adjust "Add few arch functions to use generic entry" patch to be
>>   the penultimate.
>> - Update the commit message.
>> - Add suggested-by.
>>
>> Changes in v3:
>> - Test the MTE test cases.
>> - Handle forget_syscall() in arch_post_report_syscall_entry()
>> - Make the arch funcs not use __weak as Thomas suggested, so move
>>   the arch funcs to entry-common.h, and make arch_forget_syscall() folded
>>   in arch_post_report_syscall_entry() as suggested.
>> - Move report_single_step() to thread_info.h for arm64
>> - Change __always_inline() to inline, add inline for the other arch funcs.
>> - Remove unused signal.h for entry-common.h.
>> - Add Suggested-by.
>> - Update the commit message.
>>
>> Changes in v2:
>> - Add tested-by.
>> - Fix a bug that not call arch_post_report_syscall_entry() in
>>   syscall_trace_enter() if ptrace_report_syscall_entry() return not zero.
>> - Refactor report_syscall().
>> - Add comment for arch_prepare_report_syscall_exit().
>> - Adjust entry-common.h header file inclusion to alphabetical order.
>> - Update the commit message.
>>
>> Jinjie Ruan (7):
>>   arm64: ptrace: Replace interrupts_enabled() with regs_irqs_disabled()
>>   arm64: entry: Refactor the entry and exit for exceptions from EL1
>>   arm64: entry: Rework arm64_preempt_schedule_irq()
>>   arm64: entry: Use preempt_count() and need_resched() helper
>>   arm64: entry: Refactor preempt_schedule_irq() check code
>>   arm64: entry: Move arm64_preempt_schedule_irq() into
>>     __exit_to_kernel_mode()
>>   arm64: entry: Switch to generic IRQ entry
>>
>>  arch/arm64/Kconfig                    |   1 +
>>  arch/arm64/include/asm/daifflags.h    |   2 +-
>>  arch/arm64/include/asm/entry-common.h |  56 ++++
>>  arch/arm64/include/asm/preempt.h      |   2 -
>>  arch/arm64/include/asm/ptrace.h       |  13 +-
>>  arch/arm64/include/asm/xen/events.h   |   2 +-
>>  arch/arm64/kernel/acpi.c              |   2 +-
>>  arch/arm64/kernel/debug-monitors.c    |   2 +-
>>  arch/arm64/kernel/entry-common.c      | 411 +++++++++-----------------
>>  arch/arm64/kernel/sdei.c              |   2 +-
>>  arch/arm64/kernel/signal.c            |   3 +-
>>  kernel/entry/common.c                 |  16 +-
>>  12 files changed, 217 insertions(+), 295 deletions(-)
>>  create mode 100644 arch/arm64/include/asm/entry-common.h
>>
>> -- 
>> 2.34.1
>>
> 


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 10:14:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 10:14:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081223.1441329 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umUy7-0003TY-LE; Thu, 14 Aug 2025 10:13:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081223.1441329; Thu, 14 Aug 2025 10:13:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umUy7-0003TR-IS; Thu, 14 Aug 2025 10:13:59 +0000
Received: by outflank-mailman (input) for mailman id 1081223;
 Thu, 14 Aug 2025 10:13:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Hncw=22=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1umUy5-0003Sq-VD
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 10:13:57 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 620f6670-78f7-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 12:13:55 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id DEC1444F83;
 Thu, 14 Aug 2025 10:13:53 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 08B60C4CEED;
 Thu, 14 Aug 2025 10:13: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>
X-Inumbo-ID: 620f6670-78f7-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755166433;
	bh=mXPBKGOTAXMaA8YnIACrT4VeK6ColaZH6f/lOi0T5+M=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=WhF8V3MQY1kDGquxRYbh0NmsCB2Br/5DNiI2oZxdSf0D7/1nzwXONLwHh3TQyJgYo
	 Zi4hNVXYHJbSNRl18JzHH5ePFjcnBukBnVvwIpOjEfuvBdbkdLDOz++Dx7brj0zL08
	 Z5yYKodFOLJKulPacHVmSFMdKJ+QXiC45zTRXFB7rXffkQrKIZgH0rJ7pT46IfLBpS
	 Omdc/djNuuIR/4wGVQ5lnMIWcYp+7ClehysztY3r0y0VbEWf8WYVok6B/wxvNx+zTH
	 hNMj5f2hrXhEDdzZJyn9hiO1cyolHcCJYmcJAvBOtiNMyKf85U/AhAwv9g4tigIlCj
	 wyOBJ0QRoptAQ==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 02/16] iommu/dma: implement DMA_ATTR_MMIO for dma_iova_link().
Date: Thu, 14 Aug 2025 13:13:20 +0300
Message-ID: <4f39936e5a7319a848b1eebffe928c251e2ec0d6.1755153054.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755153054.git.leon@kernel.org>
References: <cover.1755153054.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

This will replace the hacky use of DMA_ATTR_SKIP_CPU_SYNC to avoid
touching the possibly non-KVA MMIO memory.

Also correct the incorrect caching attribute for the IOMMU, MMIO
memory should not be cachable inside the IOMMU mapping or it can
possibly create system problems. Set IOMMU_MMIO for DMA_ATTR_MMIO.

Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 drivers/iommu/dma-iommu.c | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
index ea2ef53bd4fe..e1185ba73e23 100644
--- a/drivers/iommu/dma-iommu.c
+++ b/drivers/iommu/dma-iommu.c
@@ -724,7 +724,12 @@ static int iommu_dma_init_domain(struct iommu_domain *domain, struct device *dev
 static int dma_info_to_prot(enum dma_data_direction dir, bool coherent,
 		     unsigned long attrs)
 {
-	int prot = coherent ? IOMMU_CACHE : 0;
+	int prot;
+
+	if (attrs & DMA_ATTR_MMIO)
+		prot = IOMMU_MMIO;
+	else
+		prot = coherent ? IOMMU_CACHE : 0;
 
 	if (attrs & DMA_ATTR_PRIVILEGED)
 		prot |= IOMMU_PRIV;
@@ -1838,12 +1843,13 @@ static int __dma_iova_link(struct device *dev, dma_addr_t addr,
 		unsigned long attrs)
 {
 	bool coherent = dev_is_dma_coherent(dev);
+	int prot = dma_info_to_prot(dir, coherent, attrs);
 
-	if (!coherent && !(attrs & DMA_ATTR_SKIP_CPU_SYNC))
+	if (!coherent && !(attrs & (DMA_ATTR_SKIP_CPU_SYNC | DMA_ATTR_MMIO)))
 		arch_sync_dma_for_device(phys, size, dir);
 
 	return iommu_map_nosync(iommu_get_dma_domain(dev), addr, phys, size,
-			dma_info_to_prot(dir, coherent, attrs), GFP_ATOMIC);
+			prot, GFP_ATOMIC);
 }
 
 static int iommu_dma_iova_bounce_and_link(struct device *dev, dma_addr_t addr,
@@ -1949,9 +1955,13 @@ int dma_iova_link(struct device *dev, struct dma_iova_state *state,
 		return -EIO;
 
 	if (dev_use_swiotlb(dev, size, dir) &&
-	    iova_unaligned(iovad, phys, size))
+	    iova_unaligned(iovad, phys, size)) {
+		if (attrs & DMA_ATTR_MMIO)
+			return -EPERM;
+
 		return iommu_dma_iova_link_swiotlb(dev, state, phys, offset,
 				size, dir, attrs);
+	}
 
 	return __dma_iova_link(dev, state->addr + offset - iova_start_pad,
 			phys - iova_start_pad,
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 10:14:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 10:14:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081222.1441320 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umUy3-0003FL-GM; Thu, 14 Aug 2025 10:13:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081222.1441320; Thu, 14 Aug 2025 10:13: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 1umUy3-0003FE-CI; Thu, 14 Aug 2025 10:13:55 +0000
Received: by outflank-mailman (input) for mailman id 1081222;
 Thu, 14 Aug 2025 10:13:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Hncw=22=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1umUy2-0003F8-57
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 10:13:54 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6015e5fd-78f7-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 12:13:51 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 1F5C36020A;
 Thu, 14 Aug 2025 10:13:50 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 15191C4CEED;
 Thu, 14 Aug 2025 10:13:49 +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>
X-Inumbo-ID: 6015e5fd-78f7-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755166429;
	bh=WvslSImvBRVIN9npZ+rLYR2kEKQBnxvpUzJZAvcwdxs=;
	h=From:To:Cc:Subject:Date:From;
	b=GbJfmdOggEzm8njF3Ipzk+wplt5NpDFzWhDA8mQ22Appp4nEs/hEpcVVQQVZajRLT
	 O88nGQEEP2f1y6g2DJ7AUnqg/jSHQfu6+8ooocHr11sduLrzG6pTywne0g+/M1EJAl
	 02AnRdTbqcBbrPm3eJlvH+DaHFAahHTWIQ+4WG+JESkwNk7gs0x7vG654nR9ortQ+C
	 VUWu+YXBeLXmlENfAVjFuPe7B1/xCB0sT5de0HgVXmYkUrv0XTzn9PxsTCEZarm8vE
	 c1/pPOXYYDc3IibUSAxgsv8+okkLIlwU60yNvt77zmNHT/ed7hVFRfvFLMl7PYBeoB
	 iMmfPD5OzUqFg==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 00/16] dma-mapping: migrate to physical address-based API
Date: Thu, 14 Aug 2025 13:13:18 +0300
Message-ID: <cover.1755153054.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Changelog:
v2:
 * Used commit messages and cover letter from Jason
 * Moved setting IOMMU_MMIO flag to dma_info_to_prot function
 * Micro-optimized the code
 * Rebased code on v6.17-rc1
v1: https://lore.kernel.org/all/cover.1754292567.git.leon@kernel.org
 * Added new DMA_ATTR_MMIO attribute to indicate
   PCI_P2PDMA_MAP_THRU_HOST_BRIDGE path.
 * Rewrote dma_map_* functions to use thus new attribute
v0: https://lore.kernel.org/all/cover.1750854543.git.leon@kernel.org/
------------------------------------------------------------------------

This series refactors the DMA mapping to use physical addresses
as the primary interface instead of page+offset parameters. This
change aligns the DMA API with the underlying hardware reality where
DMA operations work with physical addresses, not page structures.

The series maintains export symbol backward compatibility by keeping
the old page-based API as wrapper functions around the new physical
address-based implementations.

This series refactors the DMA mapping API to provide a phys_addr_t
based, and struct-page free, external API that can handle all the
mapping cases we want in modern systems:

 - struct page based cachable DRAM
 - struct page MEMORY_DEVICE_PCI_P2PDMA PCI peer to peer non-cachable
   MMIO
 - struct page-less PCI peer to peer non-cachable MMIO
 - struct page-less "resource" MMIO

Overall this gets much closer to Matthew's long term wish for
struct-pageless IO to cachable DRAM. The remaining primary work would
be in the mm side to allow kmap_local_pfn()/phys_to_virt() to work on
phys_addr_t without a struct page.

The general design is to remove struct page usage entirely from the
DMA API inner layers. For flows that need to have a KVA for the
physical address they can use kmap_local_pfn() or phys_to_virt(). This
isolates the struct page requirements to MM code only. Long term all
removals of struct page usage are supporting Matthew's memdesc
project which seeks to substantially transform how struct page works.

Instead make the DMA API internals work on phys_addr_t. Internally
there are still dedicated 'page' and 'resource' flows, except they are
now distinguished by a new DMA_ATTR_MMIO instead of by callchain. Both
flows use the same phys_addr_t.

When DMA_ATTR_MMIO is specified things work similar to the existing
'resource' flow. kmap_local_pfn(), phys_to_virt(), phys_to_page(),
pfn_valid(), etc are never called on the phys_addr_t. This requires
rejecting any configuration that would need swiotlb. CPU cache
flushing is not required, and avoided, as ATTR_MMIO also indicates the
address have no cachable mappings. This effectively removes any
DMA API side requirement to have struct page when DMA_ATTR_MMIO is
used.

In the !DMA_ATTR_MMIO mode things work similarly to the 'page' flow,
except on the common path of no cache flush, no swiotlb it never
touches a struct page. When cache flushing or swiotlb copying
kmap_local_pfn()/phys_to_virt() are used to get a KVA for CPU
usage. This was already the case on the unmap side, now the map side
is symmetric.

Callers are adjusted to set DMA_ATTR_MMIO. Existing 'resource' users
must set it. The existing struct page based MEMORY_DEVICE_PCI_P2PDMA
path must also set it. This corrects some existing bugs where iommu
mappings for P2P MMIO were improperly marked IOMMU_CACHE.

Since ATTR_MMIO is made to work with all the existing DMA map entry
points, particularly dma_iova_link(), this finally allows a way to use
the new DMA API to map PCI P2P MMIO without creating struct page. The
VFIO DMABUF series demonstrates how this works. This is intended to
replace the incorrect driver use of dma_map_resource() on PCI BAR
addresses.

This series does the core code and modern flows. A followup series
will give the same treatment to the legacy dma_ops implementation.

Thanks

Leon Romanovsky (16):
  dma-mapping: introduce new DMA attribute to indicate MMIO memory
  iommu/dma: implement DMA_ATTR_MMIO for dma_iova_link().
  dma-debug: refactor to use physical addresses for page mapping
  dma-mapping: rename trace_dma_*map_page to trace_dma_*map_phys
  iommu/dma: rename iommu_dma_*map_page to iommu_dma_*map_phys
  iommu/dma: extend iommu_dma_*map_phys API to handle MMIO memory
  dma-mapping: convert dma_direct_*map_page to be phys_addr_t based
  kmsan: convert kmsan_handle_dma to use physical addresses
  dma-mapping: handle MMIO flow in dma_map|unmap_page
  xen: swiotlb: Open code map_resource callback
  dma-mapping: export new dma_*map_phys() interface
  mm/hmm: migrate to physical address-based DMA mapping API
  mm/hmm: properly take MMIO path
  block-dma: migrate to dma_map_phys instead of map_page
  block-dma: properly take MMIO path
  nvme-pci: unmap MMIO pages with appropriate interface

 Documentation/core-api/dma-api.rst        |   4 +-
 Documentation/core-api/dma-attributes.rst |  18 ++++
 arch/powerpc/kernel/dma-iommu.c           |   4 +-
 block/blk-mq-dma.c                        |  15 ++-
 drivers/iommu/dma-iommu.c                 |  61 ++++++------
 drivers/nvme/host/pci.c                   |  18 +++-
 drivers/virtio/virtio_ring.c              |   4 +-
 drivers/xen/swiotlb-xen.c                 |  21 +++-
 include/linux/blk-mq-dma.h                |   6 +-
 include/linux/blk_types.h                 |   2 +
 include/linux/dma-direct.h                |   2 -
 include/linux/dma-map-ops.h               |   8 +-
 include/linux/dma-mapping.h               |  33 ++++++
 include/linux/iommu-dma.h                 |  11 +-
 include/linux/kmsan.h                     |  12 ++-
 include/trace/events/dma.h                |   9 +-
 kernel/dma/debug.c                        |  71 ++++---------
 kernel/dma/debug.h                        |  37 ++-----
 kernel/dma/direct.c                       |  22 +---
 kernel/dma/direct.h                       |  52 ++++++----
 kernel/dma/mapping.c                      | 116 +++++++++++++---------
 kernel/dma/ops_helpers.c                  |   6 +-
 mm/hmm.c                                  |  19 ++--
 mm/kmsan/hooks.c                          |  36 +++++--
 rust/kernel/dma.rs                        |   3 +
 tools/virtio/linux/kmsan.h                |   2 +-
 26 files changed, 333 insertions(+), 259 deletions(-)

-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 10:14:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 10:14:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081224.1441339 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umUyB-0003jZ-0v; Thu, 14 Aug 2025 10:14:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081224.1441339; Thu, 14 Aug 2025 10:14: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 1umUyA-0003jP-Tc; Thu, 14 Aug 2025 10:14:02 +0000
Received: by outflank-mailman (input) for mailman id 1081224;
 Thu, 14 Aug 2025 10:14:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Hncw=22=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1umUyA-0003Sq-3R
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 10:14:02 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org
 [2600:3c0a:e001:78e:0:1991:8:25])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 647c23df-78f7-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 12:13:59 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 6725845594;
 Thu, 14 Aug 2025 10:13:58 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 80CB7C4CEED;
 Thu, 14 Aug 2025 10:13: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>
X-Inumbo-ID: 647c23df-78f7-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755166438;
	bh=20hTY/Bpuo8LaRouoti+FqOb/uYNdZEkCPYgzhSUTHk=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=iJnTdVoAAfN+/Xmg0sENmXfmecar7mR18tZJR2Bssi/yKcCFsAqfqd8yIy8d6+7T0
	 4cpGu3Nev5L57PEt//45pHdIh1Lpgnsn3eKqfNvyldstATPdrx9y+2/wvt8O1xOqYx
	 0TARiCfmcQFlgM0m24ah0By4BQ8/wzSRKeUT8fci1OYqIQCC9JFc5UOL7W2TCrSXfR
	 vjl32GDpJ+pmD1jY1ixOBoax/KXXLxrXKqp77CRTekhWEwW+gmg/C8r27lcyIl4yD4
	 CLA6A8gMmOrf5aBfQnCOLLhuuCdEKTsxzAwuGVvNkUYlC0V8TNUlpNK6i0NxDGLSyW
	 EVsttayqq2y3g==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 01/16] dma-mapping: introduce new DMA attribute to indicate MMIO memory
Date: Thu, 14 Aug 2025 13:13:19 +0300
Message-ID: <f832644c76e13de504ecf03450fd5d125f72f4c6.1755153054.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755153054.git.leon@kernel.org>
References: <cover.1755153054.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

This patch introduces the DMA_ATTR_MMIO attribute to mark DMA buffers
that reside in memory-mapped I/O (MMIO) regions, such as device BARs
exposed through the host bridge, which are accessible for peer-to-peer
(P2P) DMA.

This attribute is especially useful for exporting device memory to other
devices for DMA without CPU involvement, and avoids unnecessary or
potentially detrimental CPU cache maintenance calls.

DMA_ATTR_MMIO is supposed to provide dma_map_resource() functionality
without need to call to special function and perform branching by
the callers.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 Documentation/core-api/dma-attributes.rst | 18 ++++++++++++++++++
 include/linux/dma-mapping.h               | 20 ++++++++++++++++++++
 include/trace/events/dma.h                |  3 ++-
 rust/kernel/dma.rs                        |  3 +++
 4 files changed, 43 insertions(+), 1 deletion(-)

diff --git a/Documentation/core-api/dma-attributes.rst b/Documentation/core-api/dma-attributes.rst
index 1887d92e8e92..58a1528a9bb9 100644
--- a/Documentation/core-api/dma-attributes.rst
+++ b/Documentation/core-api/dma-attributes.rst
@@ -130,3 +130,21 @@ accesses to DMA buffers in both privileged "supervisor" and unprivileged
 subsystem that the buffer is fully accessible at the elevated privilege
 level (and ideally inaccessible or at least read-only at the
 lesser-privileged levels).
+
+DMA_ATTR_MMIO
+-------------
+
+This attribute indicates the physical address is not normal system
+memory. It may not be used with kmap*()/phys_to_virt()/phys_to_page()
+functions, it may not be cachable, and access using CPU load/store
+instructions may not be allowed.
+
+Usually this will be used to describe MMIO addresses, or other non
+cachable register addresses. When DMA mapping this sort of address we
+call the operation Peer to Peer as a one device is DMA'ing to another
+device. For PCI devices the p2pdma APIs must be used to determine if
+DMA_ATTR_MMIO is appropriate.
+
+For architectures that require cache flushing for DMA coherence
+DMA_ATTR_MMIO will not perform any cache flushing. The address
+provided must never be mapped cachable into the CPU.
diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h
index 55c03e5fe8cb..ead5514d389e 100644
--- a/include/linux/dma-mapping.h
+++ b/include/linux/dma-mapping.h
@@ -58,6 +58,26 @@
  */
 #define DMA_ATTR_PRIVILEGED		(1UL << 9)
 
+/*
+ * DMA_ATTR_MMIO - Indicates memory-mapped I/O (MMIO) region for DMA mapping
+ *
+ * This attribute indicates the physical address is not normal system
+ * memory. It may not be used with kmap*()/phys_to_virt()/phys_to_page()
+ * functions, it may not be cachable, and access using CPU load/store
+ * instructions may not be allowed.
+ *
+ * Usually this will be used to describe MMIO addresses, or other non
+ * cachable register addresses. When DMA mapping this sort of address we
+ * call the operation Peer to Peer as a one device is DMA'ing to another
+ * device. For PCI devices the p2pdma APIs must be used to determine if
+ * DMA_ATTR_MMIO is appropriate.
+ *
+ * For architectures that require cache flushing for DMA coherence
+ * DMA_ATTR_MMIO will not perform any cache flushing. The address
+ * provided must never be mapped cachable into the CPU.
+ */
+#define DMA_ATTR_MMIO		(1UL << 10)
+
 /*
  * A dma_addr_t can hold any valid DMA or bus address for the platform.  It can
  * be given to a device to use as a DMA source or target.  It is specific to a
diff --git a/include/trace/events/dma.h b/include/trace/events/dma.h
index d8ddc27b6a7c..ee90d6f1dcf3 100644
--- a/include/trace/events/dma.h
+++ b/include/trace/events/dma.h
@@ -31,7 +31,8 @@ TRACE_DEFINE_ENUM(DMA_NONE);
 		{ DMA_ATTR_FORCE_CONTIGUOUS, "FORCE_CONTIGUOUS" }, \
 		{ DMA_ATTR_ALLOC_SINGLE_PAGES, "ALLOC_SINGLE_PAGES" }, \
 		{ DMA_ATTR_NO_WARN, "NO_WARN" }, \
-		{ DMA_ATTR_PRIVILEGED, "PRIVILEGED" })
+		{ DMA_ATTR_PRIVILEGED, "PRIVILEGED" }, \
+		{ DMA_ATTR_MMIO, "MMIO" })
 
 DECLARE_EVENT_CLASS(dma_map,
 	TP_PROTO(struct device *dev, phys_addr_t phys_addr, dma_addr_t dma_addr,
diff --git a/rust/kernel/dma.rs b/rust/kernel/dma.rs
index 2bc8ab51ec28..61d9eed7a786 100644
--- a/rust/kernel/dma.rs
+++ b/rust/kernel/dma.rs
@@ -242,6 +242,9 @@ pub mod attrs {
     /// Indicates that the buffer is fully accessible at an elevated privilege level (and
     /// ideally inaccessible or at least read-only at lesser-privileged levels).
     pub const DMA_ATTR_PRIVILEGED: Attrs = Attrs(bindings::DMA_ATTR_PRIVILEGED);
+
+    /// Indicates that the buffer is MMIO memory.
+    pub const DMA_ATTR_MMIO: Attrs = Attrs(bindings::DMA_ATTR_MMIO);
 }
 
 /// An abstraction of the `dma_alloc_coherent` API.
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 10:14:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 10:14:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081226.1441349 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umUyF-00041s-7O; Thu, 14 Aug 2025 10:14:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081226.1441349; Thu, 14 Aug 2025 10:14: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 1umUyF-00041k-3c; Thu, 14 Aug 2025 10:14:07 +0000
Received: by outflank-mailman (input) for mailman id 1081226;
 Thu, 14 Aug 2025 10:14:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Hncw=22=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1umUyE-0003Sq-1y
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 10:14:06 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6777c430-78f7-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 12:14:04 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 6E0926020E;
 Thu, 14 Aug 2025 10:14:03 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0F402C4CEEF;
 Thu, 14 Aug 2025 10:14:02 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6777c430-78f7-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755166443;
	bh=/KA5/iirzA+7NBo2WhreWFarQonN7Bxg4iw8kozROnk=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=BGe4vleQatc6QvuAH2fy4B75TxBgzBxEACBQ36+ORLvUhpw3mDjyp8mcCmmP6BkHf
	 fR+i/ZitYuPWRhYU9ApTdUDtdXSAmprzH0LDmBzzJeqaI3CnO4dgdJGtp+ykzqyrq1
	 HrbrxFJd1kqtKJ3lHKYDz8V3nqnBxtrrAHClqUIPGudaRZg5RJzucTOQagHfnrrG36
	 /paFtR8N4oabJii/YhJMofjfC4t8xx4hzWTz0ZBc9wzITfbft5gm35VZKBAWhiEdXW
	 2B8XpBZQp2uA6OV3Nx3+yghJgiUfs984NGzIEhTePN6wNHKnVhCiPrE8oeYg4Qsptu
	 jONoXg/efXbaA==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 04/16] dma-mapping: rename trace_dma_*map_page to trace_dma_*map_phys
Date: Thu, 14 Aug 2025 13:13:22 +0300
Message-ID: <18459094e29f22a137a9a77c614bcef07963f769.1755153054.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755153054.git.leon@kernel.org>
References: <cover.1755153054.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

As a preparation for following map_page -> map_phys API conversion,
let's rename trace_dma_*map_page() to be trace_dma_*map_phys().

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 include/trace/events/dma.h | 4 ++--
 kernel/dma/mapping.c       | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/include/trace/events/dma.h b/include/trace/events/dma.h
index ee90d6f1dcf3..84416c7d6bfa 100644
--- a/include/trace/events/dma.h
+++ b/include/trace/events/dma.h
@@ -72,7 +72,7 @@ DEFINE_EVENT(dma_map, name, \
 		 size_t size, enum dma_data_direction dir, unsigned long attrs), \
 	TP_ARGS(dev, phys_addr, dma_addr, size, dir, attrs))
 
-DEFINE_MAP_EVENT(dma_map_page);
+DEFINE_MAP_EVENT(dma_map_phys);
 DEFINE_MAP_EVENT(dma_map_resource);
 
 DECLARE_EVENT_CLASS(dma_unmap,
@@ -110,7 +110,7 @@ DEFINE_EVENT(dma_unmap, name, \
 		 enum dma_data_direction dir, unsigned long attrs), \
 	TP_ARGS(dev, addr, size, dir, attrs))
 
-DEFINE_UNMAP_EVENT(dma_unmap_page);
+DEFINE_UNMAP_EVENT(dma_unmap_phys);
 DEFINE_UNMAP_EVENT(dma_unmap_resource);
 
 DECLARE_EVENT_CLASS(dma_alloc_class,
diff --git a/kernel/dma/mapping.c b/kernel/dma/mapping.c
index 4c1dfbabb8ae..fe1f0da6dc50 100644
--- a/kernel/dma/mapping.c
+++ b/kernel/dma/mapping.c
@@ -173,7 +173,7 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
 	else
 		addr = ops->map_page(dev, page, offset, size, dir, attrs);
 	kmsan_handle_dma(page, offset, size, dir);
-	trace_dma_map_page(dev, phys, addr, size, dir, attrs);
+	trace_dma_map_phys(dev, phys, addr, size, dir, attrs);
 	debug_dma_map_phys(dev, phys, size, dir, addr, attrs);
 
 	return addr;
@@ -193,7 +193,7 @@ void dma_unmap_page_attrs(struct device *dev, dma_addr_t addr, size_t size,
 		iommu_dma_unmap_page(dev, addr, size, dir, attrs);
 	else
 		ops->unmap_page(dev, addr, size, dir, attrs);
-	trace_dma_unmap_page(dev, addr, size, dir, attrs);
+	trace_dma_unmap_phys(dev, addr, size, dir, attrs);
 	debug_dma_unmap_phys(dev, addr, size, dir);
 }
 EXPORT_SYMBOL(dma_unmap_page_attrs);
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 10:14:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 10:14:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081228.1441359 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umUyJ-0004Me-Dw; Thu, 14 Aug 2025 10:14:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081228.1441359; Thu, 14 Aug 2025 10:14:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umUyJ-0004MV-At; Thu, 14 Aug 2025 10:14:11 +0000
Received: by outflank-mailman (input) for mailman id 1081228;
 Thu, 14 Aug 2025 10:14:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Hncw=22=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1umUyI-0003Sq-8e
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 10:14:10 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 69f240c1-78f7-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 12:14:08 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 93F086020A;
 Thu, 14 Aug 2025 10:14:07 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id A0047C4CEF1;
 Thu, 14 Aug 2025 10:14:06 +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>
X-Inumbo-ID: 69f240c1-78f7-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755166447;
	bh=0MhcGdVdXvKtqKaQ8KaQcBZJnClPr0/vCjOFn/qCf0g=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=l8H3hC3CjEl6BCwNcqyxvNiYmfJQLYKEGm/RvFitKwNuwx6TJYzahZowNjL9i0Ke6
	 KrX0qziEzGa0F7rawYiszEV1hUNO8e46rgAAwQJjM8EuuhToG+QPmsqhd9NUmg1Cb0
	 MeXaJwPLBdYIxTIGDpAUnVYLuihRZ3Chs1SLe+ElVPH7Pg2KMdTNPvlx5+VrVcBl6y
	 JuyYHiJNs/B/OqwV3LBytYgnPcl6Iib3gLgjvtZoF2joRBbDhky90sPwleJVrTC8BV
	 76Y8J7RmDHpObUCux5+KqewgFwP8W536d8nvOmUOeoda640vtvoD8rd9O+aFvhc9nh
	 rHzyxDvdvQRjg==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 05/16] iommu/dma: rename iommu_dma_*map_page to iommu_dma_*map_phys
Date: Thu, 14 Aug 2025 13:13:23 +0300
Message-ID: <cd872c32c32bed2cc406ccdde9023b4db155f43c.1755153054.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755153054.git.leon@kernel.org>
References: <cover.1755153054.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

Rename the IOMMU DMA mapping functions to better reflect their actual
calling convention. The functions iommu_dma_map_page() and
iommu_dma_unmap_page() are renamed to iommu_dma_map_phys() and
iommu_dma_unmap_phys() respectively, as they already operate on physical
addresses rather than page structures.

The calling convention changes from accepting (struct page *page,
unsigned long offset) to (phys_addr_t phys), which eliminates the need
for page-to-physical address conversion within the functions. This
renaming prepares for the broader DMA API conversion from page-based
to physical address-based mapping throughout the kernel.

All callers are updated to pass physical addresses directly, including
dma_map_page_attrs(), scatterlist mapping functions, and DMA page
allocation helpers. The change simplifies the code by removing the
page_to_phys() + offset calculation that was previously done inside
the IOMMU functions.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 drivers/iommu/dma-iommu.c | 14 ++++++--------
 include/linux/iommu-dma.h |  7 +++----
 kernel/dma/mapping.c      |  4 ++--
 kernel/dma/ops_helpers.c  |  6 +++---
 4 files changed, 14 insertions(+), 17 deletions(-)

diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
index e1185ba73e23..aea119f32f96 100644
--- a/drivers/iommu/dma-iommu.c
+++ b/drivers/iommu/dma-iommu.c
@@ -1195,11 +1195,9 @@ static inline size_t iova_unaligned(struct iova_domain *iovad, phys_addr_t phys,
 	return iova_offset(iovad, phys | size);
 }
 
-dma_addr_t iommu_dma_map_page(struct device *dev, struct page *page,
-	      unsigned long offset, size_t size, enum dma_data_direction dir,
-	      unsigned long attrs)
+dma_addr_t iommu_dma_map_phys(struct device *dev, phys_addr_t phys, size_t size,
+		enum dma_data_direction dir, unsigned long attrs)
 {
-	phys_addr_t phys = page_to_phys(page) + offset;
 	bool coherent = dev_is_dma_coherent(dev);
 	int prot = dma_info_to_prot(dir, coherent, attrs);
 	struct iommu_domain *domain = iommu_get_dma_domain(dev);
@@ -1227,7 +1225,7 @@ dma_addr_t iommu_dma_map_page(struct device *dev, struct page *page,
 	return iova;
 }
 
-void iommu_dma_unmap_page(struct device *dev, dma_addr_t dma_handle,
+void iommu_dma_unmap_phys(struct device *dev, dma_addr_t dma_handle,
 		size_t size, enum dma_data_direction dir, unsigned long attrs)
 {
 	struct iommu_domain *domain = iommu_get_dma_domain(dev);
@@ -1346,7 +1344,7 @@ static void iommu_dma_unmap_sg_swiotlb(struct device *dev, struct scatterlist *s
 	int i;
 
 	for_each_sg(sg, s, nents, i)
-		iommu_dma_unmap_page(dev, sg_dma_address(s),
+		iommu_dma_unmap_phys(dev, sg_dma_address(s),
 				sg_dma_len(s), dir, attrs);
 }
 
@@ -1359,8 +1357,8 @@ static int iommu_dma_map_sg_swiotlb(struct device *dev, struct scatterlist *sg,
 	sg_dma_mark_swiotlb(sg);
 
 	for_each_sg(sg, s, nents, i) {
-		sg_dma_address(s) = iommu_dma_map_page(dev, sg_page(s),
-				s->offset, s->length, dir, attrs);
+		sg_dma_address(s) = iommu_dma_map_phys(dev, sg_phys(s),
+				s->length, dir, attrs);
 		if (sg_dma_address(s) == DMA_MAPPING_ERROR)
 			goto out_unmap;
 		sg_dma_len(s) = s->length;
diff --git a/include/linux/iommu-dma.h b/include/linux/iommu-dma.h
index 508beaa44c39..485bdffed988 100644
--- a/include/linux/iommu-dma.h
+++ b/include/linux/iommu-dma.h
@@ -21,10 +21,9 @@ static inline bool use_dma_iommu(struct device *dev)
 }
 #endif /* CONFIG_IOMMU_DMA */
 
-dma_addr_t iommu_dma_map_page(struct device *dev, struct page *page,
-		unsigned long offset, size_t size, enum dma_data_direction dir,
-		unsigned long attrs);
-void iommu_dma_unmap_page(struct device *dev, dma_addr_t dma_handle,
+dma_addr_t iommu_dma_map_phys(struct device *dev, phys_addr_t phys, size_t size,
+		enum dma_data_direction dir, unsigned long attrs);
+void iommu_dma_unmap_phys(struct device *dev, dma_addr_t dma_handle,
 		size_t size, enum dma_data_direction dir, unsigned long attrs);
 int iommu_dma_map_sg(struct device *dev, struct scatterlist *sg, int nents,
 		enum dma_data_direction dir, unsigned long attrs);
diff --git a/kernel/dma/mapping.c b/kernel/dma/mapping.c
index fe1f0da6dc50..58482536db9b 100644
--- a/kernel/dma/mapping.c
+++ b/kernel/dma/mapping.c
@@ -169,7 +169,7 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
 	    arch_dma_map_page_direct(dev, phys + size))
 		addr = dma_direct_map_page(dev, page, offset, size, dir, attrs);
 	else if (use_dma_iommu(dev))
-		addr = iommu_dma_map_page(dev, page, offset, size, dir, attrs);
+		addr = iommu_dma_map_phys(dev, phys, size, dir, attrs);
 	else
 		addr = ops->map_page(dev, page, offset, size, dir, attrs);
 	kmsan_handle_dma(page, offset, size, dir);
@@ -190,7 +190,7 @@ void dma_unmap_page_attrs(struct device *dev, dma_addr_t addr, size_t size,
 	    arch_dma_unmap_page_direct(dev, addr + size))
 		dma_direct_unmap_page(dev, addr, size, dir, attrs);
 	else if (use_dma_iommu(dev))
-		iommu_dma_unmap_page(dev, addr, size, dir, attrs);
+		iommu_dma_unmap_phys(dev, addr, size, dir, attrs);
 	else
 		ops->unmap_page(dev, addr, size, dir, attrs);
 	trace_dma_unmap_phys(dev, addr, size, dir, attrs);
diff --git a/kernel/dma/ops_helpers.c b/kernel/dma/ops_helpers.c
index 9afd569eadb9..6f9d604d9d40 100644
--- a/kernel/dma/ops_helpers.c
+++ b/kernel/dma/ops_helpers.c
@@ -72,8 +72,8 @@ struct page *dma_common_alloc_pages(struct device *dev, size_t size,
 		return NULL;
 
 	if (use_dma_iommu(dev))
-		*dma_handle = iommu_dma_map_page(dev, page, 0, size, dir,
-						 DMA_ATTR_SKIP_CPU_SYNC);
+		*dma_handle = iommu_dma_map_phys(dev, page_to_phys(page), size,
+						 dir, DMA_ATTR_SKIP_CPU_SYNC);
 	else
 		*dma_handle = ops->map_page(dev, page, 0, size, dir,
 					    DMA_ATTR_SKIP_CPU_SYNC);
@@ -92,7 +92,7 @@ void dma_common_free_pages(struct device *dev, size_t size, struct page *page,
 	const struct dma_map_ops *ops = get_dma_ops(dev);
 
 	if (use_dma_iommu(dev))
-		iommu_dma_unmap_page(dev, dma_handle, size, dir,
+		iommu_dma_unmap_phys(dev, dma_handle, size, dir,
 				     DMA_ATTR_SKIP_CPU_SYNC);
 	else if (ops->unmap_page)
 		ops->unmap_page(dev, dma_handle, size, dir,
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 10:14:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 10:14:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081231.1441369 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umUyN-0004kk-MS; Thu, 14 Aug 2025 10:14:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081231.1441369; Thu, 14 Aug 2025 10:14: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 1umUyN-0004kU-I6; Thu, 14 Aug 2025 10:14:15 +0000
Received: by outflank-mailman (input) for mailman id 1081231;
 Thu, 14 Aug 2025 10:14:14 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Hncw=22=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1umUyM-0003F8-Jm
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 10:14:14 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6c3f106b-78f7-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 12:14:12 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 6330E43582;
 Thu, 14 Aug 2025 10:14:11 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 85A63C4CEED;
 Thu, 14 Aug 2025 10:14:10 +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>
X-Inumbo-ID: 6c3f106b-78f7-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755166451;
	bh=dJuAJRFwFKXIJkybNGJNx5df3xqMYXp7O5ndEMDZg04=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=gYSTOUUBhXP9oYVeGhvKAxkKtotRiKvTg0RZNz5VHsEaCJX2eHmD/K9w5qQtOdsaI
	 y5jL775CbyjUQrmgE50XrKUnHBz170vHKkADm0guG8UONTpIhdOC5F323EiEF29wv2
	 QwHY4aIgwraPerETB0r/ojs0AyO4T+0+stcRCguPuAhk+m/gmOjrihbhskyvMwc76V
	 7KY3xjUJx9KToKwhJ4n4n4bsbHow2xCAf2WHn2KwBEezrtyiM32lypcGqEOd3EwGUr
	 M4D8CAuNqM6OABoBZDrH4H+rPpHALQRE9/xcG9RN53uHeZ/mIgd3xyDNiQYOaPXJsW
	 FYRlTCCOPlK7A==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 06/16] iommu/dma: extend iommu_dma_*map_phys API to handle MMIO memory
Date: Thu, 14 Aug 2025 13:13:24 +0300
Message-ID: <3086f426f3ded9c671e9a6441810c21efc9ad87f.1755153054.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755153054.git.leon@kernel.org>
References: <cover.1755153054.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

Combine iommu_dma_*map_phys with iommu_dma_*map_resource interfaces in
order to allow single phys_addr_t flow.

In the following patches, the iommu_dma_map_resource() will be removed
in favour of iommu_dma_map_phys(..., attrs | DMA_ATTR_MMIO) flow.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 drivers/iommu/dma-iommu.c | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
index aea119f32f96..6804aaf034a1 100644
--- a/drivers/iommu/dma-iommu.c
+++ b/drivers/iommu/dma-iommu.c
@@ -1211,16 +1211,19 @@ dma_addr_t iommu_dma_map_phys(struct device *dev, phys_addr_t phys, size_t size,
 	 */
 	if (dev_use_swiotlb(dev, size, dir) &&
 	    iova_unaligned(iovad, phys, size)) {
+		if (attrs & DMA_ATTR_MMIO)
+			return DMA_MAPPING_ERROR;
+
 		phys = iommu_dma_map_swiotlb(dev, phys, size, dir, attrs);
 		if (phys == (phys_addr_t)DMA_MAPPING_ERROR)
 			return DMA_MAPPING_ERROR;
 	}
 
-	if (!coherent && !(attrs & DMA_ATTR_SKIP_CPU_SYNC))
+	if (!coherent && !(attrs & (DMA_ATTR_SKIP_CPU_SYNC | DMA_ATTR_MMIO)))
 		arch_sync_dma_for_device(phys, size, dir);
 
 	iova = __iommu_dma_map(dev, phys, size, prot, dma_mask);
-	if (iova == DMA_MAPPING_ERROR)
+	if (iova == DMA_MAPPING_ERROR && !(attrs & DMA_ATTR_MMIO))
 		swiotlb_tbl_unmap_single(dev, phys, size, dir, attrs);
 	return iova;
 }
@@ -1228,10 +1231,14 @@ dma_addr_t iommu_dma_map_phys(struct device *dev, phys_addr_t phys, size_t size,
 void iommu_dma_unmap_phys(struct device *dev, dma_addr_t dma_handle,
 		size_t size, enum dma_data_direction dir, unsigned long attrs)
 {
-	struct iommu_domain *domain = iommu_get_dma_domain(dev);
 	phys_addr_t phys;
 
-	phys = iommu_iova_to_phys(domain, dma_handle);
+	if (attrs & DMA_ATTR_MMIO) {
+		__iommu_dma_unmap(dev, dma_handle, size);
+		return;
+	}
+
+	phys = iommu_iova_to_phys(iommu_get_dma_domain(dev), dma_handle);
 	if (WARN_ON(!phys))
 		return;
 
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 10:14:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 10:14:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081236.1441379 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umUyT-0005Go-2m; Thu, 14 Aug 2025 10:14:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081236.1441379; Thu, 14 Aug 2025 10: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 1umUyS-0005GZ-Up; Thu, 14 Aug 2025 10:14:20 +0000
Received: by outflank-mailman (input) for mailman id 1081236;
 Thu, 14 Aug 2025 10:14:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Hncw=22=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1umUyQ-0003Sq-NT
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 10:14:18 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6e65d55b-78f7-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 12:14:16 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 0C41D44BCF;
 Thu, 14 Aug 2025 10:14:15 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1B5B1C4CEED;
 Thu, 14 Aug 2025 10:14: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>
X-Inumbo-ID: 6e65d55b-78f7-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755166454;
	bh=+6SuvKk/7U//cW4wXi0ADVlYqazqjfxTWHubS42t1as=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=XwmxH0m53jnWJZ0ex/XTTOFoM6EBYCbptMpUMMPjfuAXHNhgcUyfbWZ1kypJlXeSI
	 EIs2WTbWSY3XRaCGdc9mc9vYfVKAvXtplmrWkI0bcVQ1eqASOhp64nn347pnJbdex7
	 rFmLkgtZenO43T9NN5T/+DYlZw81jC7UDSxnRG50NO+cnTNHmxSOoYhCKkV/2IRyx2
	 Cqj9eZfH8UAZvmfNVdkr1hCjaIM1K+PfbawmHw/4HcKOtxUDV7skJZHzogfzMq8dPL
	 I6RVqUowCznBU4CKpWrY+8udb0KmimaXaJiePZl3tOw6JJ3XxTLdcij4aULT+W9rtG
	 IOrHqGUZi9i7A==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 03/16] dma-debug: refactor to use physical addresses for page mapping
Date: Thu, 14 Aug 2025 13:13:21 +0300
Message-ID: <ff3008fd5128ef4221c63716f7e27ff3c63d3350.1755153054.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755153054.git.leon@kernel.org>
References: <cover.1755153054.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

Convert the DMA debug infrastructure from page-based to physical address-based
mapping as a preparation to rely on physical address for DMA mapping routines.

The refactoring renames debug_dma_map_page() to debug_dma_map_phys() and
changes its signature to accept a phys_addr_t parameter instead of struct page
and offset. Similarly, debug_dma_unmap_page() becomes debug_dma_unmap_phys().
A new dma_debug_phy type is introduced to distinguish physical address mappings
from other debug entry types. All callers throughout the codebase are updated
to pass physical addresses directly, eliminating the need for page-to-physical
conversion in the debug layer.

This refactoring eliminates the need to convert between page pointers and
physical addresses in the debug layer, making the code more efficient and
consistent with the DMA mapping API's physical address focus.

Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 Documentation/core-api/dma-api.rst |  4 ++--
 kernel/dma/debug.c                 | 28 +++++++++++++++++-----------
 kernel/dma/debug.h                 | 16 +++++++---------
 kernel/dma/mapping.c               | 15 ++++++++-------
 4 files changed, 34 insertions(+), 29 deletions(-)

diff --git a/Documentation/core-api/dma-api.rst b/Documentation/core-api/dma-api.rst
index 3087bea715ed..ca75b3541679 100644
--- a/Documentation/core-api/dma-api.rst
+++ b/Documentation/core-api/dma-api.rst
@@ -761,7 +761,7 @@ example warning message may look like this::
 	[<ffffffff80235177>] find_busiest_group+0x207/0x8a0
 	[<ffffffff8064784f>] _spin_lock_irqsave+0x1f/0x50
 	[<ffffffff803c7ea3>] check_unmap+0x203/0x490
-	[<ffffffff803c8259>] debug_dma_unmap_page+0x49/0x50
+	[<ffffffff803c8259>] debug_dma_unmap_phys+0x49/0x50
 	[<ffffffff80485f26>] nv_tx_done_optimized+0xc6/0x2c0
 	[<ffffffff80486c13>] nv_nic_irq_optimized+0x73/0x2b0
 	[<ffffffff8026df84>] handle_IRQ_event+0x34/0x70
@@ -855,7 +855,7 @@ that a driver may be leaking mappings.
 dma-debug interface debug_dma_mapping_error() to debug drivers that fail
 to check DMA mapping errors on addresses returned by dma_map_single() and
 dma_map_page() interfaces. This interface clears a flag set by
-debug_dma_map_page() to indicate that dma_mapping_error() has been called by
+debug_dma_map_phys() to indicate that dma_mapping_error() has been called by
 the driver. When driver does unmap, debug_dma_unmap() checks the flag and if
 this flag is still set, prints warning message that includes call trace that
 leads up to the unmap. This interface can be called from dma_mapping_error()
diff --git a/kernel/dma/debug.c b/kernel/dma/debug.c
index e43c6de2bce4..da6734e3a4ce 100644
--- a/kernel/dma/debug.c
+++ b/kernel/dma/debug.c
@@ -39,6 +39,7 @@ enum {
 	dma_debug_sg,
 	dma_debug_coherent,
 	dma_debug_resource,
+	dma_debug_phy,
 };
 
 enum map_err_types {
@@ -141,6 +142,7 @@ static const char *type2name[] = {
 	[dma_debug_sg] = "scatter-gather",
 	[dma_debug_coherent] = "coherent",
 	[dma_debug_resource] = "resource",
+	[dma_debug_phy] = "phy",
 };
 
 static const char *dir2name[] = {
@@ -1201,9 +1203,8 @@ void debug_dma_map_single(struct device *dev, const void *addr,
 }
 EXPORT_SYMBOL(debug_dma_map_single);
 
-void debug_dma_map_page(struct device *dev, struct page *page, size_t offset,
-			size_t size, int direction, dma_addr_t dma_addr,
-			unsigned long attrs)
+void debug_dma_map_phys(struct device *dev, phys_addr_t phys, size_t size,
+		int direction, dma_addr_t dma_addr, unsigned long attrs)
 {
 	struct dma_debug_entry *entry;
 
@@ -1218,19 +1219,24 @@ void debug_dma_map_page(struct device *dev, struct page *page, size_t offset,
 		return;
 
 	entry->dev       = dev;
-	entry->type      = dma_debug_single;
-	entry->paddr	 = page_to_phys(page) + offset;
+	entry->type      = dma_debug_phy;
+	entry->paddr	 = phys;
 	entry->dev_addr  = dma_addr;
 	entry->size      = size;
 	entry->direction = direction;
 	entry->map_err_type = MAP_ERR_NOT_CHECKED;
 
-	check_for_stack(dev, page, offset);
+	if (!(attrs & DMA_ATTR_MMIO)) {
+		struct page *page = phys_to_page(phys);
+		size_t offset = offset_in_page(page);
 
-	if (!PageHighMem(page)) {
-		void *addr = page_address(page) + offset;
+		check_for_stack(dev, page, offset);
 
-		check_for_illegal_area(dev, addr, size);
+		if (!PageHighMem(page)) {
+			void *addr = page_address(page) + offset;
+
+			check_for_illegal_area(dev, addr, size);
+		}
 	}
 
 	add_dma_entry(entry, attrs);
@@ -1274,11 +1280,11 @@ void debug_dma_mapping_error(struct device *dev, dma_addr_t dma_addr)
 }
 EXPORT_SYMBOL(debug_dma_mapping_error);
 
-void debug_dma_unmap_page(struct device *dev, dma_addr_t dma_addr,
+void debug_dma_unmap_phys(struct device *dev, dma_addr_t dma_addr,
 			  size_t size, int direction)
 {
 	struct dma_debug_entry ref = {
-		.type           = dma_debug_single,
+		.type           = dma_debug_phy,
 		.dev            = dev,
 		.dev_addr       = dma_addr,
 		.size           = size,
diff --git a/kernel/dma/debug.h b/kernel/dma/debug.h
index f525197d3cae..76adb42bffd5 100644
--- a/kernel/dma/debug.h
+++ b/kernel/dma/debug.h
@@ -9,12 +9,11 @@
 #define _KERNEL_DMA_DEBUG_H
 
 #ifdef CONFIG_DMA_API_DEBUG
-extern void debug_dma_map_page(struct device *dev, struct page *page,
-			       size_t offset, size_t size,
-			       int direction, dma_addr_t dma_addr,
+extern void debug_dma_map_phys(struct device *dev, phys_addr_t phys,
+			       size_t size, int direction, dma_addr_t dma_addr,
 			       unsigned long attrs);
 
-extern void debug_dma_unmap_page(struct device *dev, dma_addr_t addr,
+extern void debug_dma_unmap_phys(struct device *dev, dma_addr_t addr,
 				 size_t size, int direction);
 
 extern void debug_dma_map_sg(struct device *dev, struct scatterlist *sg,
@@ -55,14 +54,13 @@ extern void debug_dma_sync_sg_for_device(struct device *dev,
 					 struct scatterlist *sg,
 					 int nelems, int direction);
 #else /* CONFIG_DMA_API_DEBUG */
-static inline void debug_dma_map_page(struct device *dev, struct page *page,
-				      size_t offset, size_t size,
-				      int direction, dma_addr_t dma_addr,
-				      unsigned long attrs)
+static inline void debug_dma_map_phys(struct device *dev, phys_addr_t phys,
+				      size_t size, int direction,
+				      dma_addr_t dma_addr, unsigned long attrs)
 {
 }
 
-static inline void debug_dma_unmap_page(struct device *dev, dma_addr_t addr,
+static inline void debug_dma_unmap_phys(struct device *dev, dma_addr_t addr,
 					size_t size, int direction)
 {
 }
diff --git a/kernel/dma/mapping.c b/kernel/dma/mapping.c
index 107e4a4d251d..4c1dfbabb8ae 100644
--- a/kernel/dma/mapping.c
+++ b/kernel/dma/mapping.c
@@ -157,6 +157,7 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
 		unsigned long attrs)
 {
 	const struct dma_map_ops *ops = get_dma_ops(dev);
+	phys_addr_t phys = page_to_phys(page) + offset;
 	dma_addr_t addr;
 
 	BUG_ON(!valid_dma_direction(dir));
@@ -165,16 +166,15 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
 		return DMA_MAPPING_ERROR;
 
 	if (dma_map_direct(dev, ops) ||
-	    arch_dma_map_page_direct(dev, page_to_phys(page) + offset + size))
+	    arch_dma_map_page_direct(dev, phys + size))
 		addr = dma_direct_map_page(dev, page, offset, size, dir, attrs);
 	else if (use_dma_iommu(dev))
 		addr = iommu_dma_map_page(dev, page, offset, size, dir, attrs);
 	else
 		addr = ops->map_page(dev, page, offset, size, dir, attrs);
 	kmsan_handle_dma(page, offset, size, dir);
-	trace_dma_map_page(dev, page_to_phys(page) + offset, addr, size, dir,
-			   attrs);
-	debug_dma_map_page(dev, page, offset, size, dir, addr, attrs);
+	trace_dma_map_page(dev, phys, addr, size, dir, attrs);
+	debug_dma_map_phys(dev, phys, size, dir, addr, attrs);
 
 	return addr;
 }
@@ -194,7 +194,7 @@ void dma_unmap_page_attrs(struct device *dev, dma_addr_t addr, size_t size,
 	else
 		ops->unmap_page(dev, addr, size, dir, attrs);
 	trace_dma_unmap_page(dev, addr, size, dir, attrs);
-	debug_dma_unmap_page(dev, addr, size, dir);
+	debug_dma_unmap_phys(dev, addr, size, dir);
 }
 EXPORT_SYMBOL(dma_unmap_page_attrs);
 
@@ -712,7 +712,8 @@ struct page *dma_alloc_pages(struct device *dev, size_t size,
 	if (page) {
 		trace_dma_alloc_pages(dev, page_to_virt(page), *dma_handle,
 				      size, dir, gfp, 0);
-		debug_dma_map_page(dev, page, 0, size, dir, *dma_handle, 0);
+		debug_dma_map_phys(dev, page_to_phys(page), size, dir,
+				   *dma_handle, 0);
 	} else {
 		trace_dma_alloc_pages(dev, NULL, 0, size, dir, gfp, 0);
 	}
@@ -738,7 +739,7 @@ void dma_free_pages(struct device *dev, size_t size, struct page *page,
 		dma_addr_t dma_handle, enum dma_data_direction dir)
 {
 	trace_dma_free_pages(dev, page_to_virt(page), dma_handle, size, dir, 0);
-	debug_dma_unmap_page(dev, dma_handle, size, dir);
+	debug_dma_unmap_phys(dev, dma_handle, size, dir);
 	__dma_free_pages(dev, size, page, dma_handle, dir);
 }
 EXPORT_SYMBOL_GPL(dma_free_pages);
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 10:14:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 10:14:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081241.1441388 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umUyU-0005Za-Ci; Thu, 14 Aug 2025 10:14:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081241.1441388; Thu, 14 Aug 2025 10:14: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 1umUyU-0005Yo-9C; Thu, 14 Aug 2025 10:14:22 +0000
Received: by outflank-mailman (input) for mailman id 1081241;
 Thu, 14 Aug 2025 10:14:21 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Hncw=22=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1umUyT-0003F8-NL
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 10:14:21 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 70a2561d-78f7-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 12:14:20 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id B0AEE45FFC;
 Thu, 14 Aug 2025 10:14:18 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id D5592C4CEFC;
 Thu, 14 Aug 2025 10:14: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>
X-Inumbo-ID: 70a2561d-78f7-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755166458;
	bh=we72YOP3RUYaEE6ejOmXbWl+ckHyZi8LIoo6/UPYld4=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=SmpX8PXuuxNsaz49Sv/BhvNODQ4TzMXqNubGzpKjR0dsA/JlegVIW7ZYpMP3neeXo
	 6ysow+joFGXbris2T1w1bPKLajBRqw5mhLds3i95hlC6XAjezXtulUZr+VABJIMJSB
	 yhFjt55CINSHs1xWT301t//Fwqm4P0mYOLiPWlay2oiADWpapVZRRShOUUaHscpQjR
	 5pWPQPUWCmWT7zKihbu48EPfLMT5IfO3LiRbfS9Hm//Sx73FEjHbqulbxA5564Lw33
	 eHtpUKmiASaPE+/oHNo1MnUXBlXVI6jC0cH/9L6mOtLxocU6cjNTRKKr/AIXiTa6VY
	 iPn1oycvVDCKw==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 08/16] kmsan: convert kmsan_handle_dma to use physical addresses
Date: Thu, 14 Aug 2025 13:13:26 +0300
Message-ID: <fb43d745ff8fd822622932f6eb813621b75b2499.1755153054.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755153054.git.leon@kernel.org>
References: <cover.1755153054.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

Convert the KMSAN DMA handling function from page-based to physical
address-based interface.

The refactoring renames kmsan_handle_dma() parameters from accepting
(struct page *page, size_t offset, size_t size) to (phys_addr_t phys,
size_t size). A PFN_VALID check is added to prevent KMSAN operations
on non-page memory, preventing from non struct page backed address,

As part of this change, support for highmem addresses is implemented
using kmap_local_page() to handle both lowmem and highmem regions
properly. All callers throughout the codebase are updated to use the
new phys_addr_t based interface.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 drivers/virtio/virtio_ring.c |  4 ++--
 include/linux/kmsan.h        | 12 +++++++-----
 kernel/dma/mapping.c         |  2 +-
 mm/kmsan/hooks.c             | 36 +++++++++++++++++++++++++++++-------
 tools/virtio/linux/kmsan.h   |  2 +-
 5 files changed, 40 insertions(+), 16 deletions(-)

diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c
index f5062061c408..c147145a6593 100644
--- a/drivers/virtio/virtio_ring.c
+++ b/drivers/virtio/virtio_ring.c
@@ -378,7 +378,7 @@ static int vring_map_one_sg(const struct vring_virtqueue *vq, struct scatterlist
 		 * is initialized by the hardware. Explicitly check/unpoison it
 		 * depending on the direction.
 		 */
-		kmsan_handle_dma(sg_page(sg), sg->offset, sg->length, direction);
+		kmsan_handle_dma(sg_phys(sg), sg->length, direction);
 		*addr = (dma_addr_t)sg_phys(sg);
 		return 0;
 	}
@@ -3157,7 +3157,7 @@ dma_addr_t virtqueue_dma_map_single_attrs(struct virtqueue *_vq, void *ptr,
 	struct vring_virtqueue *vq = to_vvq(_vq);
 
 	if (!vq->use_dma_api) {
-		kmsan_handle_dma(virt_to_page(ptr), offset_in_page(ptr), size, dir);
+		kmsan_handle_dma(virt_to_phys(ptr), size, dir);
 		return (dma_addr_t)virt_to_phys(ptr);
 	}
 
diff --git a/include/linux/kmsan.h b/include/linux/kmsan.h
index 2b1432cc16d5..6f27b9824ef7 100644
--- a/include/linux/kmsan.h
+++ b/include/linux/kmsan.h
@@ -182,8 +182,7 @@ void kmsan_iounmap_page_range(unsigned long start, unsigned long end);
 
 /**
  * kmsan_handle_dma() - Handle a DMA data transfer.
- * @page:   first page of the buffer.
- * @offset: offset of the buffer within the first page.
+ * @phys:   physical address of the buffer.
  * @size:   buffer size.
  * @dir:    one of possible dma_data_direction values.
  *
@@ -191,8 +190,11 @@ void kmsan_iounmap_page_range(unsigned long start, unsigned long end);
  * * checks the buffer, if it is copied to device;
  * * initializes the buffer, if it is copied from device;
  * * does both, if this is a DMA_BIDIRECTIONAL transfer.
+ *
+ * The function handles page lookup internally and supports both lowmem
+ * and highmem addresses.
  */
-void kmsan_handle_dma(struct page *page, size_t offset, size_t size,
+void kmsan_handle_dma(phys_addr_t phys, size_t size,
 		      enum dma_data_direction dir);
 
 /**
@@ -372,8 +374,8 @@ static inline void kmsan_iounmap_page_range(unsigned long start,
 {
 }
 
-static inline void kmsan_handle_dma(struct page *page, size_t offset,
-				    size_t size, enum dma_data_direction dir)
+static inline void kmsan_handle_dma(phys_addr_t phys, size_t size,
+				    enum dma_data_direction dir)
 {
 }
 
diff --git a/kernel/dma/mapping.c b/kernel/dma/mapping.c
index 80481a873340..709405d46b2b 100644
--- a/kernel/dma/mapping.c
+++ b/kernel/dma/mapping.c
@@ -172,7 +172,7 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
 		addr = iommu_dma_map_phys(dev, phys, size, dir, attrs);
 	else
 		addr = ops->map_page(dev, page, offset, size, dir, attrs);
-	kmsan_handle_dma(page, offset, size, dir);
+	kmsan_handle_dma(phys, size, dir);
 	trace_dma_map_phys(dev, phys, addr, size, dir, attrs);
 	debug_dma_map_phys(dev, phys, size, dir, addr, attrs);
 
diff --git a/mm/kmsan/hooks.c b/mm/kmsan/hooks.c
index 97de3d6194f0..eab7912a3bf0 100644
--- a/mm/kmsan/hooks.c
+++ b/mm/kmsan/hooks.c
@@ -336,25 +336,48 @@ static void kmsan_handle_dma_page(const void *addr, size_t size,
 }
 
 /* Helper function to handle DMA data transfers. */
-void kmsan_handle_dma(struct page *page, size_t offset, size_t size,
+void kmsan_handle_dma(phys_addr_t phys, size_t size,
 		      enum dma_data_direction dir)
 {
 	u64 page_offset, to_go, addr;
+	struct page *page;
+	void *kaddr;
 
-	if (PageHighMem(page))
+	if (!pfn_valid(PHYS_PFN(phys)))
 		return;
-	addr = (u64)page_address(page) + offset;
+
+	page = phys_to_page(phys);
+	page_offset = offset_in_page(phys);
+
 	/*
 	 * The kernel may occasionally give us adjacent DMA pages not belonging
 	 * to the same allocation. Process them separately to avoid triggering
 	 * internal KMSAN checks.
 	 */
 	while (size > 0) {
-		page_offset = offset_in_page(addr);
 		to_go = min(PAGE_SIZE - page_offset, (u64)size);
+
+		if (PageHighMem(page))
+			/* Handle highmem pages using kmap */
+			kaddr = kmap_local_page(page);
+		else
+			/* Lowmem pages can be accessed directly */
+			kaddr = page_address(page);
+
+		addr = (u64)kaddr + page_offset;
 		kmsan_handle_dma_page((void *)addr, to_go, dir);
-		addr += to_go;
+
+		if (PageHighMem(page))
+			kunmap_local(page);
+
+		phys += to_go;
 		size -= to_go;
+
+		/* Move to next page if needed */
+		if (size > 0) {
+			page = phys_to_page(phys);
+			page_offset = offset_in_page(phys);
+		}
 	}
 }
 EXPORT_SYMBOL_GPL(kmsan_handle_dma);
@@ -366,8 +389,7 @@ void kmsan_handle_dma_sg(struct scatterlist *sg, int nents,
 	int i;
 
 	for_each_sg(sg, item, nents, i)
-		kmsan_handle_dma(sg_page(item), item->offset, item->length,
-				 dir);
+		kmsan_handle_dma(sg_phys(item), item->length, dir);
 }
 
 /* Functions from kmsan-checks.h follow. */
diff --git a/tools/virtio/linux/kmsan.h b/tools/virtio/linux/kmsan.h
index 272b5aa285d5..6cd2e3efd03d 100644
--- a/tools/virtio/linux/kmsan.h
+++ b/tools/virtio/linux/kmsan.h
@@ -4,7 +4,7 @@
 
 #include <linux/gfp.h>
 
-inline void kmsan_handle_dma(struct page *page, size_t offset, size_t size,
+inline void kmsan_handle_dma(phys_addr_t phys, size_t size,
 			     enum dma_data_direction dir)
 {
 }
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 10:18:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 10:18:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081263.1441398 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umV21-0007TH-Th; Thu, 14 Aug 2025 10:18:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081263.1441398; Thu, 14 Aug 2025 10:18: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 1umV21-0007TA-Qn; Thu, 14 Aug 2025 10:18:01 +0000
Received: by outflank-mailman (input) for mailman id 1081263;
 Thu, 14 Aug 2025 10:18:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mOIo=22=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1umV20-0007T4-CA
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 10:18:00 +0000
Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com
 [2a00:1450:4864:20::430])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f3f648e5-78f7-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 12:17:59 +0200 (CEST)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-3b9dc55d84bso539025f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 03:17:59 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3b914e70596sm7340332f8f.61.2025.08.14.03.17.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 03:17: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>
X-Inumbo-ID: f3f648e5-78f7-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755166679; x=1755771479; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=JfPtggkM1tyWyoe45s2nuS8z2FmPZSlzsbZ5DmxzVRA=;
        b=KSmhcTbPJhrTNnOGFDAINlfR3F+MdlPtPo4OMd6TCdqhKrzZO9RGCwKMkgj2k+tlv4
         aeCS5Q7yueB1pscuGZviG7kzgusUP4G+InLs0ZFRJ0KSxCdTDEbpWtgVHMHJOdDRFQb2
         Rl3fic+BoylrJnJoa43W2ALZpQUu5IfPv9no0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755166679; x=1755771479;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=JfPtggkM1tyWyoe45s2nuS8z2FmPZSlzsbZ5DmxzVRA=;
        b=kAAEvBjBTGHWx3lT3ilyfLXka88k3mgFyGb80H9KJkuUu3oAqerSUd+793CMuI3UbQ
         T8Tp5iB5pqzbfX5OUqxTxncnPIk05GS7yJFkVyE0Uj1ZVBB5HgYCGtR1ipFkWA6kY9w1
         yNevyBmq489xrwUT41eskXVKMoT63TAPW55whTmECz0Q30/4i1g1mF5BnEOR+M7CJHox
         8f7RdOk93hGu9JxyrS/TAh59H3aHLbgFNinxjmDA6moplwIZ7d+sTee+Fh5HUAagF2FK
         JXyZDn0exzO+3cyXaW9+DtwJ/vC5ZumqG+ecXzdusIwemgc3ottflKU9ocGA5N283MRp
         JqBA==
X-Forwarded-Encrypted: i=1; AJvYcCVhU1FPlObV9k5Zmq/mk3hR+ylHYzluJ0rnDnPfl0DBVL84USv622t/LiPXhLtJWc1OYj8qV+O8x8Q=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxt8ILmxOuAQ91d1wUxL1Hm2AJnf5+YEsRsXQ51t/XYE83VGCPi
	7ssEGMpWMEIYb5FiucEbENjgXeqVhtGdHt8GDRF0HNzA5ZjD0KC5nmVQ4LjrR+JoZeQ=
X-Gm-Gg: ASbGncvv85Zf16o34zO1ux/lgX/UeKCqYedJjxAZQciBTqX835AaTqAzYWQ3hPvxw0N
	7zkGoxy3zsVWPto1i5ZHrS+JHwv1aj1CjakovNbk7rquD82ncbM2EcRo1ICEKTa/Np0CYPoUpuS
	clSBhN3v/ueUoZpEELTmiiv5atAUnUzXxL5lSfTHNua2WtOgwBrn025AP8JckyFHrk7vsJl1zMA
	iGnsmgTAXqkCYqR6Jg4aln/nZepkNJa1rK0dNeOpHJyOVxoKeXMDN/pPSkSsiDY4dGc9vBcc/yL
	AmTpt4IDXApSeHKgG2L4Q/hekcNa8d0lOZMewQPsTnyc0sUVk4H6Rrdp+rQ5IDu5efu44CI3+wH
	8OPKFsms9K4kgaXVMUp530m3prSIz9bxeIj1FITYe/TqSxat4ehdwUjmS8BeZP98UVn0o
X-Google-Smtp-Source: AGHT+IERm6CC138xglfaPyuqBAwvPMdzDfnBHF7cEa9aOKRRZ/GYxZt2jaimqfxWV6oOqM3JpAEstw==
X-Received: by 2002:a05:6000:144f:b0:3b8:d2d1:5c02 with SMTP id ffacd0b85a97d-3b9edf65d67mr1839057f8f.49.1755166678672;
        Thu, 14 Aug 2025 03:17:58 -0700 (PDT)
Message-ID: <fe98713c-664d-4e68-8cf5-eeb23e694c46@citrix.com>
Date: Thu, 14 Aug 2025 11:17:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 10/22] x86/traps: Move subarch_percpu_traps_init() into
 traps-setup.c
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-11-andrew.cooper3@citrix.com>
 <646c538a-850a-4370-8132-c06d9be8b422@citrix.com>
 <769ba73f-b490-43db-a056-fc1d95ec9f27@suse.com>
 <3ff00f71-b16e-4426-98f5-27bc6f6b92cf@citrix.com>
 <d1a309bc-dc90-4383-a844-ebb9b668e0d2@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: <d1a309bc-dc90-4383-a844-ebb9b668e0d2@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14/08/2025 9:58 am, Jan Beulich wrote:
> On 13.08.2025 13:53, Andrew Cooper wrote:
>> On 12/08/2025 10:52 am, Jan Beulich wrote:
>>> On 11.08.2025 10:17, Andrew Cooper wrote:
>>>> On 08/08/2025 9:23 pm, Andrew Cooper wrote:
>>>>> ... along with the supporting functions.  Switch to Xen coding style, and make
>>>>> static as there are no external callers.
>>>>>
>>>>> Rename to legacy_syscall_init() as a more accurate name.
>>>>>
>>>>> No functional change.
>>>>>
>>>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>>>> ---
>>>>> CC: Jan Beulich <JBeulich@suse.com>
>>>>> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
>>>>> ---
>>>>>  xen/arch/x86/include/asm/system.h |  2 -
>>>>>  xen/arch/x86/traps-setup.c        | 97 ++++++++++++++++++++++++++++++-
>>>>>  xen/arch/x86/x86_64/traps.c       | 92 -----------------------------
>>>>>  3 files changed, 95 insertions(+), 96 deletions(-)
>>>>>
>>>>> diff --git a/xen/arch/x86/include/asm/system.h b/xen/arch/x86/include/asm/system.h
>>>>> index 3cdc56e4ba6d..6c2800d8158d 100644
>>>>> --- a/xen/arch/x86/include/asm/system.h
>>>>> +++ b/xen/arch/x86/include/asm/system.h
>>>>> @@ -256,6 +256,4 @@ static inline int local_irq_is_enabled(void)
>>>>>  #define BROKEN_ACPI_Sx          0x0001
>>>>>  #define BROKEN_INIT_AFTER_S1    0x0002
>>>>>  
>>>>> -void subarch_percpu_traps_init(void);
>>>>> -
>>>>>  #endif
>>>>> diff --git a/xen/arch/x86/traps-setup.c b/xen/arch/x86/traps-setup.c
>>>>> index 13b8fcf0ba51..fbae7072c292 100644
>>>>> --- a/xen/arch/x86/traps-setup.c
>>>>> +++ b/xen/arch/x86/traps-setup.c
>>>>> @@ -2,13 +2,15 @@
>>>>>  /*
>>>>>   * Configuration of event handling for all CPUs.
>>>>>   */
>>>>> +#include <xen/domain_page.h>
>>>>>  #include <xen/init.h>
>>>>>  #include <xen/param.h>
>>>>>  
>>>>> +#include <asm/endbr.h>
>>>>>  #include <asm/idt.h>
>>>>>  #include <asm/msr.h>
>>>>>  #include <asm/shstk.h>
>>>>> -#include <asm/system.h>
>>>>> +#include <asm/stubs.h>
>>>>>  #include <asm/traps.h>
>>>>>  
>>>>>  DEFINE_PER_CPU_READ_MOSTLY(idt_entry_t *, idt);
>>>>> @@ -19,6 +21,8 @@ static bool __initdata opt_ler;
>>>>>  boolean_param("ler", opt_ler);
>>>>>  
>>>>>  void nocall entry_PF(void);
>>>>> +void nocall lstar_enter(void);
>>>>> +void nocall cstar_enter(void);
>>>>>  
>>>>>  /*
>>>>>   * Sets up system tables and descriptors for IDT devliery.
>>>>> @@ -138,6 +142,95 @@ static void load_system_tables(void)
>>>>>      BUG_ON(stack_bottom & 15);
>>>>>  }
>>>>>  
>>>>> +static unsigned int write_stub_trampoline(
>>>>> +    unsigned char *stub, unsigned long stub_va,
>>>>> +    unsigned long stack_bottom, unsigned long target_va)
>>>>> +{
>>>>> +    unsigned char *p = stub;
>>>>> +
>>>>> +    if ( cpu_has_xen_ibt )
>>>>> +    {
>>>>> +        place_endbr64(p);
>>>>> +        p += 4;
>>>>> +    }
>>>>> +
>>>>> +    /* Store guest %rax into %ss slot */
>>>>> +    /* movabsq %rax, stack_bottom - 8 */
>>>>> +    *p++ = 0x48;
>>>>> +    *p++ = 0xa3;
>>>>> +    *(uint64_t *)p = stack_bottom - 8;
>>>>> +    p += 8;
>>>>> +
>>>>> +    /* Store guest %rsp in %rax */
>>>>> +    /* movq %rsp, %rax */
>>>>> +    *p++ = 0x48;
>>>>> +    *p++ = 0x89;
>>>>> +    *p++ = 0xe0;
>>>>> +
>>>>> +    /* Switch to Xen stack */
>>>>> +    /* movabsq $stack_bottom - 8, %rsp */
>>>>> +    *p++ = 0x48;
>>>>> +    *p++ = 0xbc;
>>>>> +    *(uint64_t *)p = stack_bottom - 8;
>>>>> +    p += 8;
>>>>> +
>>>>> +    /* jmp target_va */
>>>>> +    *p++ = 0xe9;
>>>>> +    *(int32_t *)p = target_va - (stub_va + (p - stub) + 4);
>>>>> +    p += 4;
>>>>> +
>>>>> +    /* Round up to a multiple of 16 bytes. */
>>>>> +    return ROUNDUP(p - stub, 16);
>>>>> +}
>>>>> +
>>>>> +static void legacy_syscall_init(void)
>>>>> +{
>>>>> +    unsigned long stack_bottom = get_stack_bottom();
>>>>> +    unsigned long stub_va = this_cpu(stubs.addr);
>>>>> +    unsigned char *stub_page;
>>>>> +    unsigned int offset;
>>>>> +
>>>>> +    /* No PV guests?  No need to set up SYSCALL/SYSENTER infrastructure. */
>>>>> +    if ( !IS_ENABLED(CONFIG_PV) )
>>>>> +        return;
>>>>> +
>>>>> +    stub_page = map_domain_page(_mfn(this_cpu(stubs.mfn)));
>>>>> +
>>>>> +    /*
>>>>> +     * Trampoline for SYSCALL entry from 64-bit mode.  The VT-x HVM vcpu
>>>>> +     * context switch logic relies on the SYSCALL trampoline being at the
>>>>> +     * start of the stubs.
>>>>> +     */
>>>>> +    wrmsrl(MSR_LSTAR, stub_va);
>>>>> +    offset = write_stub_trampoline(stub_page + (stub_va & ~PAGE_MASK),
>>>>> +                                   stub_va, stack_bottom,
>>>>> +                                   (unsigned long)lstar_enter);
>>>>> +    stub_va += offset;
>>>>> +
>>>>> +    if ( cpu_has_sep )
>>>>> +    {
>>>>> +        /* SYSENTER entry. */
>>>>> +        wrmsrl(MSR_IA32_SYSENTER_ESP, stack_bottom);
>>>>> +        wrmsrl(MSR_IA32_SYSENTER_EIP, (unsigned long)sysenter_entry);
>>>>> +        wrmsr(MSR_IA32_SYSENTER_CS, __HYPERVISOR_CS, 0);
>>>>> +    }
>>>>> +
>>>>> +    /* Trampoline for SYSCALL entry from compatibility mode. */
>>>>> +    wrmsrl(MSR_CSTAR, stub_va);
>>>>> +    offset += write_stub_trampoline(stub_page + (stub_va & ~PAGE_MASK),
>>>>> +                                    stub_va, stack_bottom,
>>>>> +                                    (unsigned long)cstar_enter);
>>>>> +
>>>>> +    /* Don't consume more than half of the stub space here. */
>>>>> +    ASSERT(offset <= STUB_BUF_SIZE / 2);
>>>>> +
>>>>> +    unmap_domain_page(stub_page);
>>>>> +
>>>>> +    /* Common SYSCALL parameters. */
>>>>> +    wrmsrl(MSR_STAR, XEN_MSR_STAR);
>>>>> +    wrmsrl(MSR_SYSCALL_MASK, XEN_SYSCALL_MASK);
>>>>> +}
>>>> These want adjusting to use wrmsrns(), similarly to the previous patch.Â 
>>>> Fixed locally.
>>> Also the one higher in the function, I suppose.
>> All of them.
>>
>> I'm not aware of anywhere were we want serialising behaviour, except for
>> ICR which is buggly non-serialising and has workarounds.
>>
>> But I'm also not sure enough of this to suggest that we make wrmsr() be
>> wrmsrns() by default.
> I'm pretty sure we don't want this. If nothing else then to avoid code bloat
> for MSR writes which are non-serializing even in the original form.

Even that's complicated.

For FRED, FS/GS_BASE/KERN need changes because the lack of SWAPGS forces
MSR accesses even if we do have FSGSBASE active.

Writes to these were made non-serialising in Zen2 and later, but are
still serialising on Intel.Â  i.e. they need converting to WRMSRNS even
though plain WRMSR would be "fine" on all AMD systems (either because
it's the only option, or because it's non-serialising).

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 10:18:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 10:18:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081275.1441409 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umV2j-00080E-9m; Thu, 14 Aug 2025 10:18:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081275.1441409; Thu, 14 Aug 2025 10:18: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 1umV2j-000807-6r; Thu, 14 Aug 2025 10:18:45 +0000
Received: by outflank-mailman (input) for mailman id 1081275;
 Thu, 14 Aug 2025 10:18:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XPh+=22=arm.com=hari.limaye@srs-se1.protection.inumbo.net>)
 id 1umV2h-0007T4-Kf
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 10:18:43 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 0d803d3a-78f8-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 12:18:42 +0200 (CEST)
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 B082D1691;
 Thu, 14 Aug 2025 03:18:33 -0700 (PDT)
Received: from PWQ0QT7DJ1 (unknown [10.1.25.63])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id D73E93F738;
 Thu, 14 Aug 2025 03:18: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>
X-Inumbo-ID: 0d803d3a-78f8-11f0-a328-13f23c93f187
Date: Thu, 14 Aug 2025 11:18:38 +0100
From: Hari Limaye <hari.limaye@arm.com>
To: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
Cc: xen-devel@lists.xenproject.org, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v2 1/2] arm/mpu: Enable is_xen_heap_page and
 is_xen_heap_mfn for ARM_32
Message-ID: <c7bks6njcnclgkeluhu53pghivf7rwsm7fqbo7zultkrtn2wcj@xyzsxrg4sjzx>
References: <20250814081959.3504145-1-ayan.kumar.halder@amd.com>
 <20250814081959.3504145-2-ayan.kumar.halder@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250814081959.3504145-2-ayan.kumar.halder@amd.com>

Hi Ayan,

On Thu, Aug 14, 2025 at 09:19:58AM +0000, Ayan Kumar Halder wrote:
> In case of ARM_32, all of the RAM will be covered by a permanent contiguous
> mapping (where VA == PA) and there will be a single heap. Thus, the memory
> allocated from Xen heap uses PGC_xen_heap.
> This is similar to the scenario described for
> "CONFIG_SEPARATE_XENHEAP=n W/ DIRECT MAP OF ALL RAM" in common/page_alloc.c.
> 
> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
Reviewed-by: Hari Limaye <hari.limaye@arm.com>
Tested-by: Hari Limaye <hari.limaye@arm.com>

LGTM now, thanks for updating. Tested (build-only) on AArch32 and
AArch64 MMU and MPU systems.

Cheers,
Hari


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 10:20:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 10:20:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081292.1441419 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umV4d-00017p-K0; Thu, 14 Aug 2025 10:20:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081292.1441419; Thu, 14 Aug 2025 10:20: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 1umV4d-00017i-Gy; Thu, 14 Aug 2025 10:20:43 +0000
Received: by outflank-mailman (input) for mailman id 1081292;
 Thu, 14 Aug 2025 10:20:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Hncw=22=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1umUyo-0003Sq-7c
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 10:14:42 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7b67d249-78f7-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 12:14:37 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 41027A56685;
 Thu, 14 Aug 2025 10:14:36 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 20789C4CEF7;
 Thu, 14 Aug 2025 10:14:35 +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>
X-Inumbo-ID: 7b67d249-78f7-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755166475;
	bh=7++3kMKsheKzaFgoeiPBTnsBsSQVYkGRdnBVDIHyyh0=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=aVubZT2uurKSIzdFlKMGSZ1aqzlf9Ub/xIp2zaQnuXDP7uFHmD0g6x9HB1uxIbB0P
	 nWxheGYh2MRaN1gMU2QAK/0rl/Dr8ialqj2VtB+1w9oedE/RjBGJE0shoNE3rkmvxi
	 SE0O5JUHOYgmGlvPfnq8qqHP+mdNxrgmaDdpXs1A9F9fOQttcfYzQFYFvq9H+9WXJn
	 XqfZ0o4MbUpEXIHTlaMguQKJuMjZxTdfahLTpiQjUXbTdgeKfNXELNUHttJxi1TQZA
	 NGD7eKEHxcw4D2FX5yFQBcXOjXso3VuTXfbxwDExP+HuCa8mn2uWLaVIDW96krcaiP
	 qRpcmbdDbhxpQ==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 09/16] dma-mapping: handle MMIO flow in dma_map|unmap_page
Date: Thu, 14 Aug 2025 13:13:27 +0300
Message-ID: <7b8c8f88f61c85d60e24f04e88d42357b898ccbc.1755153054.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755153054.git.leon@kernel.org>
References: <cover.1755153054.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

Extend base DMA page API to handle MMIO flow and follow
existing dma_map_resource() implementation to rely on dma_map_direct()
only to take DMA direct path.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 kernel/dma/mapping.c | 24 ++++++++++++++++++++----
 1 file changed, 20 insertions(+), 4 deletions(-)

diff --git a/kernel/dma/mapping.c b/kernel/dma/mapping.c
index 709405d46b2b..8725508a6c57 100644
--- a/kernel/dma/mapping.c
+++ b/kernel/dma/mapping.c
@@ -158,6 +158,7 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
 {
 	const struct dma_map_ops *ops = get_dma_ops(dev);
 	phys_addr_t phys = page_to_phys(page) + offset;
+	bool is_mmio = attrs & DMA_ATTR_MMIO;
 	dma_addr_t addr;
 
 	BUG_ON(!valid_dma_direction(dir));
@@ -166,12 +167,23 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
 		return DMA_MAPPING_ERROR;
 
 	if (dma_map_direct(dev, ops) ||
-	    arch_dma_map_phys_direct(dev, phys + size))
+	    (!is_mmio && arch_dma_map_phys_direct(dev, phys + size)))
 		addr = dma_direct_map_phys(dev, phys, size, dir, attrs);
 	else if (use_dma_iommu(dev))
 		addr = iommu_dma_map_phys(dev, phys, size, dir, attrs);
-	else
+	else if (is_mmio) {
+		if (!ops->map_resource)
+			return DMA_MAPPING_ERROR;
+
+		addr = ops->map_resource(dev, phys, size, dir, attrs);
+	} else {
+		/*
+		 * The dma_ops API contract for ops->map_page() requires
+		 * kmappable memory, while ops->map_resource() does not.
+		 */
 		addr = ops->map_page(dev, page, offset, size, dir, attrs);
+	}
+
 	kmsan_handle_dma(phys, size, dir);
 	trace_dma_map_phys(dev, phys, addr, size, dir, attrs);
 	debug_dma_map_phys(dev, phys, size, dir, addr, attrs);
@@ -184,14 +196,18 @@ void dma_unmap_page_attrs(struct device *dev, dma_addr_t addr, size_t size,
 		enum dma_data_direction dir, unsigned long attrs)
 {
 	const struct dma_map_ops *ops = get_dma_ops(dev);
+	bool is_mmio = attrs & DMA_ATTR_MMIO;
 
 	BUG_ON(!valid_dma_direction(dir));
 	if (dma_map_direct(dev, ops) ||
-	    arch_dma_unmap_phys_direct(dev, addr + size))
+	    (!is_mmio && arch_dma_unmap_phys_direct(dev, addr + size)))
 		dma_direct_unmap_phys(dev, addr, size, dir, attrs);
 	else if (use_dma_iommu(dev))
 		iommu_dma_unmap_phys(dev, addr, size, dir, attrs);
-	else
+	else if (is_mmio) {
+		if (ops->unmap_resource)
+			ops->unmap_resource(dev, addr, size, dir, attrs);
+	} else
 		ops->unmap_page(dev, addr, size, dir, attrs);
 	trace_dma_unmap_phys(dev, addr, size, dir, attrs);
 	debug_dma_unmap_phys(dev, addr, size, dir);
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 10:20:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 10:20:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081302.1441429 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umV4l-0001Zw-SH; Thu, 14 Aug 2025 10:20:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081302.1441429; Thu, 14 Aug 2025 10:20:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umV4l-0001Zp-P7; Thu, 14 Aug 2025 10:20:51 +0000
Received: by outflank-mailman (input) for mailman id 1081302;
 Thu, 14 Aug 2025 10:20:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Hncw=22=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1umUz1-0003F8-Gv
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 10:14:55 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 85624b81-78f7-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 12:14:54 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 8E68E44BCF;
 Thu, 14 Aug 2025 10:14:53 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 83831C4CEED;
 Thu, 14 Aug 2025 10:14:52 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 85624b81-78f7-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755166493;
	bh=shzOb9LxCd4j9ffIAYJARd3Ll/bIHN63Rdsm8jF6HN0=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=RwtkFi9vteB7SNnxOINAfVVUhLA75/hNiImenRxRpTUTI8TqYSofzsX3M8h/8rTIh
	 4QWP8THLxRW6gU+8S/mzSPOOG6x8rYFgcZDNCbhT7UxXPdUWuvEoyFaeJaY64pv3bf
	 aM2WilqB39uUngQc9QC3BxKpFRE2acHYaXIiBGXf96MZTIVvkc8hGE2g3GeVufaUAY
	 Pahp3cNRZAeYoYU4m5F0rhSekd6fRf9t4UXQyTjP60g4dbDAGjC6k0Mtx2HOptYqCe
	 dj3aQKRD06I0yUWhvM5pDgRBXBPVd/w98NGzhs5a7JOifOnDMl87vVTNIfrM2JZfyk
	 wh9OTiv5o0uyQ==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 16/16] nvme-pci: unmap MMIO pages with appropriate interface
Date: Thu, 14 Aug 2025 13:13:34 +0300
Message-ID: <a097fc4adf58836287d451db6eb4527c6664f7ff.1755153054.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755153054.git.leon@kernel.org>
References: <cover.1755153054.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

Block layer maps MMIO memory through dma_map_phys() interface
with help of DMA_ATTR_MMIO attribute. There is a need to unmap
that memory with the appropriate unmap function, something which
wasn't possible before adding new REQ attribute to block layer in
previous patch.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 drivers/nvme/host/pci.c | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c
index 2c6d9506b172..f8ecc0e0f576 100644
--- a/drivers/nvme/host/pci.c
+++ b/drivers/nvme/host/pci.c
@@ -682,11 +682,15 @@ static void nvme_free_prps(struct request *req)
 {
 	struct nvme_iod *iod = blk_mq_rq_to_pdu(req);
 	struct nvme_queue *nvmeq = req->mq_hctx->driver_data;
+	unsigned int attrs = 0;
 	unsigned int i;
 
+	if (req->cmd_flags & REQ_MMIO)
+		attrs = DMA_ATTR_MMIO;
+
 	for (i = 0; i < iod->nr_dma_vecs; i++)
-		dma_unmap_page(nvmeq->dev->dev, iod->dma_vecs[i].addr,
-				iod->dma_vecs[i].len, rq_dma_dir(req));
+		dma_unmap_phys(nvmeq->dev->dev, iod->dma_vecs[i].addr,
+				iod->dma_vecs[i].len, rq_dma_dir(req), attrs);
 	mempool_free(iod->dma_vecs, nvmeq->dev->dmavec_mempool);
 }
 
@@ -699,15 +703,19 @@ static void nvme_free_sgls(struct request *req)
 	unsigned int sqe_dma_len = le32_to_cpu(iod->cmd.common.dptr.sgl.length);
 	struct nvme_sgl_desc *sg_list = iod->descriptors[0];
 	enum dma_data_direction dir = rq_dma_dir(req);
+	unsigned int attrs = 0;
+
+	if (req->cmd_flags & REQ_MMIO)
+		attrs = DMA_ATTR_MMIO;
 
 	if (iod->nr_descriptors) {
 		unsigned int nr_entries = sqe_dma_len / sizeof(*sg_list), i;
 
 		for (i = 0; i < nr_entries; i++)
-			dma_unmap_page(dma_dev, le64_to_cpu(sg_list[i].addr),
-				le32_to_cpu(sg_list[i].length), dir);
+			dma_unmap_phys(dma_dev, le64_to_cpu(sg_list[i].addr),
+				le32_to_cpu(sg_list[i].length), dir, attrs);
 	} else {
-		dma_unmap_page(dma_dev, sqe_dma_addr, sqe_dma_len, dir);
+		dma_unmap_phys(dma_dev, sqe_dma_addr, sqe_dma_len, dir, attrs);
 	}
 }
 
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 10:20:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 10:20:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081314.1441439 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umV4r-0001xT-21; Thu, 14 Aug 2025 10:20:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081314.1441439; Thu, 14 Aug 2025 10:20:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umV4q-0001xG-VF; Thu, 14 Aug 2025 10:20:56 +0000
Received: by outflank-mailman (input) for mailman id 1081314;
 Thu, 14 Aug 2025 10:20:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Hncw=22=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1umUyc-0003F8-PT
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 10:14:30 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org
 [2600:3c04:e001:324:0:1991:8:25])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 75e5ce9c-78f7-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 12:14:28 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 9834F6020A;
 Thu, 14 Aug 2025 10:14:27 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2BAE6C4CEEF;
 Thu, 14 Aug 2025 10:14:26 +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>
X-Inumbo-ID: 75e5ce9c-78f7-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755166467;
	bh=0mJoy+46tPnckyRiCMrZ6rM11HgiRAqoXhfeDURewQs=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=eJTkq+GT9lPiH1BMCYSYdr9IyCkKMaQqDKfwPPaRCMkbD4v0h9YvH91nKWU1NH6K7
	 I5BMIh+ts6dGIE4jr3PiHYNWZCZBovmGAqljV0Jx+HIKKGLbNxkXWTUSAWreVqM7Wn
	 Ff+yBy/tsnBCBiOSyTZFf4TKNIrSOPU5lbv4tT4dTtKD3ycTToNWuUWMRWF6V3Lc+x
	 z3E7g/NbjTu7bo8sOdAcpfBghsDHFWLzmA1Zl7LFyuX4jEKPi7VRRawDPIUw33ytqv
	 LZJ5VBTX7uvK57oduYiIJRUBvBYgp3d3u8K5OAn/LaIt2pXtt2VHD3V3k9To82OzIa
	 qqUQflDMHSkCQ==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 10/16] xen: swiotlb: Open code map_resource callback
Date: Thu, 14 Aug 2025 13:13:28 +0300
Message-ID: <972e4cd98b0d3683e02d06b7a35a2c1d76a226e4.1755153054.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755153054.git.leon@kernel.org>
References: <cover.1755153054.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

General dma_direct_map_resource() is going to be removed
in next patch, so simply open-code it in xen driver.

Reviewed-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 drivers/xen/swiotlb-xen.c | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)

diff --git a/drivers/xen/swiotlb-xen.c b/drivers/xen/swiotlb-xen.c
index da1a7d3d377c..dd7747a2de87 100644
--- a/drivers/xen/swiotlb-xen.c
+++ b/drivers/xen/swiotlb-xen.c
@@ -392,6 +392,25 @@ xen_swiotlb_sync_sg_for_device(struct device *dev, struct scatterlist *sgl,
 	}
 }
 
+static dma_addr_t xen_swiotlb_direct_map_resource(struct device *dev,
+						  phys_addr_t paddr,
+						  size_t size,
+						  enum dma_data_direction dir,
+						  unsigned long attrs)
+{
+	dma_addr_t dma_addr = paddr;
+
+	if (unlikely(!dma_capable(dev, dma_addr, size, false))) {
+		dev_err_once(dev,
+			     "DMA addr %pad+%zu overflow (mask %llx, bus limit %llx).\n",
+			     &dma_addr, size, *dev->dma_mask, dev->bus_dma_limit);
+		WARN_ON_ONCE(1);
+		return DMA_MAPPING_ERROR;
+	}
+
+	return dma_addr;
+}
+
 /*
  * Return whether the given device DMA address mask can be supported
  * properly.  For example, if your device can only drive the low 24-bits
@@ -426,5 +445,5 @@ const struct dma_map_ops xen_swiotlb_dma_ops = {
 	.alloc_pages_op = dma_common_alloc_pages,
 	.free_pages = dma_common_free_pages,
 	.max_mapping_size = swiotlb_max_mapping_size,
-	.map_resource = dma_direct_map_resource,
+	.map_resource = xen_swiotlb_direct_map_resource,
 };
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 10:20:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 10:20:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081315.1441449 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umV4t-0002F3-9R; Thu, 14 Aug 2025 10:20:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081315.1441449; Thu, 14 Aug 2025 10:20:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umV4t-0002Eu-5A; Thu, 14 Aug 2025 10:20:59 +0000
Received: by outflank-mailman (input) for mailman id 1081315;
 Thu, 14 Aug 2025 10:20:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Hncw=22=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1umUz5-0003Sq-Vn
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 10:14:59 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 87affa91-78f7-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 12:14:58 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 6F71EA5685E;
 Thu, 14 Aug 2025 10:14:57 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6E732C4CEED;
 Thu, 14 Aug 2025 10:14:56 +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>
X-Inumbo-ID: 87affa91-78f7-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755166497;
	bh=VNpaHZYPDKoIVZk7JizQ+fAc7bXMl6IIrMQIwsKC7lg=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=sgcAjNmQ4H9PR9eNw1PcsrGYJZDdCoIhSA00MB1PlPh4PY294zzHjmBNp/Feerkz5
	 onfh+H4AOnhzfctRKBnuKCZx/TKbia4qDj/ZGv49iPN8pTjetV2F9L2VUkgOWdWDRc
	 XlrdyafRknSjL//iLlaNOBweJcYzh6FKt3CyXPCoJvTLjW4fEmAhBIfd9+UAEg8Pzu
	 GT/aO6y+QSatuf+mIF+REo7cmsN0/u40Aqx/jFMMVRttbv3XnuIdoCIUPj7ks/cy6e
	 xakUo8h2pDLy9UhEDhcLSzeOH+G0q/blCWi158fJN5vnT8J/3Fmo24+nsmO++3Zqz5
	 MlYCBR+W1ikrA==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 15/16] block-dma: properly take MMIO path
Date: Thu, 14 Aug 2025 13:13:33 +0300
Message-ID: <87b7d3a0e3f6be9da49947923d52355ed0835833.1755153054.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755153054.git.leon@kernel.org>
References: <cover.1755153054.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

Make sure that CPU is not synced and IOMMU is configured to take
MMIO path by providing newly introduced DMA_ATTR_MMIO attribute.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 block/blk-mq-dma.c         | 13 +++++++++++--
 include/linux/blk-mq-dma.h |  6 +++++-
 include/linux/blk_types.h  |  2 ++
 3 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/block/blk-mq-dma.c b/block/blk-mq-dma.c
index 37e2142be4f7..d415088ed9fd 100644
--- a/block/blk-mq-dma.c
+++ b/block/blk-mq-dma.c
@@ -87,8 +87,13 @@ static bool blk_dma_map_bus(struct blk_dma_iter *iter, struct phys_vec *vec)
 static bool blk_dma_map_direct(struct request *req, struct device *dma_dev,
 		struct blk_dma_iter *iter, struct phys_vec *vec)
 {
+	unsigned int attrs = 0;
+
+	if (req->cmd_flags & REQ_MMIO)
+		attrs = DMA_ATTR_MMIO;
+
 	iter->addr = dma_map_phys(dma_dev, vec->paddr, vec->len,
-			rq_dma_dir(req), 0);
+			rq_dma_dir(req), attrs);
 	if (dma_mapping_error(dma_dev, iter->addr)) {
 		iter->status = BLK_STS_RESOURCE;
 		return false;
@@ -103,14 +108,17 @@ static bool blk_rq_dma_map_iova(struct request *req, struct device *dma_dev,
 {
 	enum dma_data_direction dir = rq_dma_dir(req);
 	unsigned int mapped = 0;
+	unsigned int attrs = 0;
 	int error;
 
 	iter->addr = state->addr;
 	iter->len = dma_iova_size(state);
+	if (req->cmd_flags & REQ_MMIO)
+		attrs = DMA_ATTR_MMIO;
 
 	do {
 		error = dma_iova_link(dma_dev, state, vec->paddr, mapped,
-				vec->len, dir, 0);
+				vec->len, dir, attrs);
 		if (error)
 			break;
 		mapped += vec->len;
@@ -176,6 +184,7 @@ bool blk_rq_dma_map_iter_start(struct request *req, struct device *dma_dev,
 			 * same as non-P2P transfers below and during unmap.
 			 */
 			req->cmd_flags &= ~REQ_P2PDMA;
+			req->cmd_flags |= REQ_MMIO;
 			break;
 		default:
 			iter->status = BLK_STS_INVAL;
diff --git a/include/linux/blk-mq-dma.h b/include/linux/blk-mq-dma.h
index c26a01aeae00..6c55f5e58511 100644
--- a/include/linux/blk-mq-dma.h
+++ b/include/linux/blk-mq-dma.h
@@ -48,12 +48,16 @@ static inline bool blk_rq_dma_map_coalesce(struct dma_iova_state *state)
 static inline bool blk_rq_dma_unmap(struct request *req, struct device *dma_dev,
 		struct dma_iova_state *state, size_t mapped_len)
 {
+	unsigned int attrs = 0;
+
 	if (req->cmd_flags & REQ_P2PDMA)
 		return true;
 
 	if (dma_use_iova(state)) {
+		if (req->cmd_flags & REQ_MMIO)
+			attrs = DMA_ATTR_MMIO;
 		dma_iova_destroy(dma_dev, state, mapped_len, rq_dma_dir(req),
-				 0);
+				 attrs);
 		return true;
 	}
 
diff --git a/include/linux/blk_types.h b/include/linux/blk_types.h
index 09b99d52fd36..283058bcb5b1 100644
--- a/include/linux/blk_types.h
+++ b/include/linux/blk_types.h
@@ -387,6 +387,7 @@ enum req_flag_bits {
 	__REQ_FS_PRIVATE,	/* for file system (submitter) use */
 	__REQ_ATOMIC,		/* for atomic write operations */
 	__REQ_P2PDMA,		/* contains P2P DMA pages */
+	__REQ_MMIO,		/* contains MMIO memory */
 	/*
 	 * Command specific flags, keep last:
 	 */
@@ -420,6 +421,7 @@ enum req_flag_bits {
 #define REQ_FS_PRIVATE	(__force blk_opf_t)(1ULL << __REQ_FS_PRIVATE)
 #define REQ_ATOMIC	(__force blk_opf_t)(1ULL << __REQ_ATOMIC)
 #define REQ_P2PDMA	(__force blk_opf_t)(1ULL << __REQ_P2PDMA)
+#define REQ_MMIO	(__force blk_opf_t)(1ULL << __REQ_MMIO)
 
 #define REQ_NOUNMAP	(__force blk_opf_t)(1ULL << __REQ_NOUNMAP)
 
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 10:22:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 10:22:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081346.1441463 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umV6h-0003ax-Kp; Thu, 14 Aug 2025 10:22:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081346.1441463; Thu, 14 Aug 2025 10:22:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umV6h-0003aq-Hc; Thu, 14 Aug 2025 10:22:51 +0000
Received: by outflank-mailman (input) for mailman id 1081346;
 Thu, 14 Aug 2025 10:22:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XPh+=22=arm.com=hari.limaye@srs-se1.protection.inumbo.net>)
 id 1umV6g-0003ai-6O
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 10:22:50 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id a0a21fa4-78f8-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 12:22:49 +0200 (CEST)
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 76D291691;
 Thu, 14 Aug 2025 03:22:40 -0700 (PDT)
Received: from PWQ0QT7DJ1 (unknown [10.1.25.63])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 7DC843F738;
 Thu, 14 Aug 2025 03:22: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>
X-Inumbo-ID: a0a21fa4-78f8-11f0-a328-13f23c93f187
Date: Thu, 14 Aug 2025 11:22:45 +0100
From: Hari Limaye <hari.limaye@arm.com>
To: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
Cc: xen-devel@lists.xenproject.org, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v2 2/2] arm/mpu: Disable map_domain_page for MPU
Message-ID: <sh2gz445h5xjwa6hwcan6brj7sxytupauuzkftx5lb6wexemcd@27tefgoernfh>
References: <20250814081959.3504145-1-ayan.kumar.halder@amd.com>
 <20250814081959.3504145-3-ayan.kumar.halder@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250814081959.3504145-3-ayan.kumar.halder@amd.com>

Hi Ayan,

> On Thu, Aug 14, 2025 at 09:19:59AM +0000, Ayan Kumar Halder wrote:
> There is no domheap for ARM_32. All of the RAM is mapped and VA == PA.
> 
> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
> ---
> Changes from :-
> 
> v1 - 1. No changes.
> 
Slightly surprised by this, as it looks like the suggested change from
https://patchwork.kernel.org/comment/26507841/ has been incorporated in
this v2 version of the patch...

But anyway, LGTM now!

Reviewed-by: Hari Limaye <hari.limaye@arm.com>
Tested-by: Hari Limaye <hari.limaye@arm.com>

Cheers,
Hari


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 10:23:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 10:23:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081361.1441473 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umV7K-0004EW-15; Thu, 14 Aug 2025 10:23:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081361.1441473; Thu, 14 Aug 2025 10:23: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 1umV7J-0004EP-UT; Thu, 14 Aug 2025 10:23:29 +0000
Received: by outflank-mailman (input) for mailman id 1081361;
 Thu, 14 Aug 2025 10:23:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Hncw=22=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1umUyw-0003F8-UE
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 10:14:50 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 82fccee8-78f7-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 12:14:50 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 8F9236020A;
 Thu, 14 Aug 2025 10:14:49 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4BB3EC4CEED;
 Thu, 14 Aug 2025 10:14:48 +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>
X-Inumbo-ID: 82fccee8-78f7-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755166489;
	bh=stLVV7BdINySQbyeqCDmRbXyWeQEecbuIkQ/rhX45FU=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=Yjr61GWrMpZlZVsXr5trn6jduj7CwGSyfxXeA06jORzsuA8yWJLjGdU0E33cfjQh3
	 Hmx937j1Z95EXTMOUcTvwDAO3vhf7bMaKYV/TFQIyfc9mvSdYnQef9iZHXZNqE0oto
	 jcvZA8NK73HDjVgX/hAwi/xQMDOAaVmOkY66NF2PR1cDhVoVMkjKM0ZK4TRAmvUgWx
	 xqpsC9wxH1QmETO7S0kHdNpKw2xEF/nOFmPE3YzJHCVYhyuyfoPUg+dVNC7Gx475X0
	 rMcX3zG9znpLtrX/5YzuL4HwLR540SE+s9lhJRS4wAN2T/i4QuJ6U2hv8YLNA/kK+q
	 abKechpUNU6VA==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 14/16] block-dma: migrate to dma_map_phys instead of map_page
Date: Thu, 14 Aug 2025 13:13:32 +0300
Message-ID: <a48cbbc074bf11c92b29b547e44f495a4504ae9f.1755153054.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755153054.git.leon@kernel.org>
References: <cover.1755153054.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

After introduction of dma_map_phys(), there is no need to convert
from physical address to struct page in order to map page. So let's
use it directly.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 block/blk-mq-dma.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/block/blk-mq-dma.c b/block/blk-mq-dma.c
index ad283017caef..37e2142be4f7 100644
--- a/block/blk-mq-dma.c
+++ b/block/blk-mq-dma.c
@@ -87,8 +87,8 @@ static bool blk_dma_map_bus(struct blk_dma_iter *iter, struct phys_vec *vec)
 static bool blk_dma_map_direct(struct request *req, struct device *dma_dev,
 		struct blk_dma_iter *iter, struct phys_vec *vec)
 {
-	iter->addr = dma_map_page(dma_dev, phys_to_page(vec->paddr),
-			offset_in_page(vec->paddr), vec->len, rq_dma_dir(req));
+	iter->addr = dma_map_phys(dma_dev, vec->paddr, vec->len,
+			rq_dma_dir(req), 0);
 	if (dma_mapping_error(dma_dev, iter->addr)) {
 		iter->status = BLK_STS_RESOURCE;
 		return false;
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 10:23:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 10:23:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081370.1441483 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umV7Z-0004hW-95; Thu, 14 Aug 2025 10:23:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081370.1441483; Thu, 14 Aug 2025 10:23: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 1umV7Z-0004hP-5x; Thu, 14 Aug 2025 10:23:45 +0000
Received: by outflank-mailman (input) for mailman id 1081370;
 Thu, 14 Aug 2025 10:23:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Hncw=22=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1umUyl-0003Sq-6z
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 10:14:39 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 78dc694b-78f7-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 12:14:33 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 3633B5C6FE2;
 Thu, 14 Aug 2025 10:14:32 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1ECBDC4CEF1;
 Thu, 14 Aug 2025 10:14:31 +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>
X-Inumbo-ID: 78dc694b-78f7-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755166471;
	bh=mumQPgsq9Kf0AWe0fgzmf/aTx7Jf080Kzh/1H2MDSvY=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=gIx4Ac7cVVjZ2Ed+hWctz60brK/KYnVbDuH2cXHHXv1TI0qojibPtsDYZzrfWS3rt
	 XNKPJRYTIpN/nYC7nh5uT19tgM7J4doyZ3A3BRZF5vytEFlIuLsGx9mE8jPxpptsC8
	 t6Qh1daRGxzJzrH79f5TmyZ1Xi+vzSQ/n+0mBF7NSVlH+IT1qDjnlNBd1CcLCU+Qy0
	 qZfWxUDHYILmp5QJV7kZaTc6PEaZa0dtAQMEAiq7gNZyhyDIddPmmu0cZHm2bFy7+3
	 idy44mZq3rLfAkQF3mSJMjMIrDJWBlZGI/bW1vX4BR3ZG+jLzolBP6WiaxvxWggedy
	 JAvdYPWErGE2w==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 11/16] dma-mapping: export new dma_*map_phys() interface
Date: Thu, 14 Aug 2025 13:13:29 +0300
Message-ID: <a67057aad8bb4b700b8ce597e1a10152f1fac185.1755153054.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755153054.git.leon@kernel.org>
References: <cover.1755153054.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

Introduce new DMA mapping functions dma_map_phys() and dma_unmap_phys()
that operate directly on physical addresses instead of page+offset
parameters. This provides a more efficient interface for drivers that
already have physical addresses available.

The new functions are implemented as the primary mapping layer, with
the existing dma_map_page_attrs()/dma_map_resource() and
dma_unmap_page_attrs()/dma_unmap_resource() functions converted to simple
wrappers around the phys-based implementations.

In case dma_map_page_attrs(), the struct page is converted to physical
address with help of page_to_phys() function and dma_map_resource()
provides physical address as is together with addition of DMA_ATTR_MMIO
attribute.

The old page-based API is preserved in mapping.c to ensure that existing
code won't be affected by changing EXPORT_SYMBOL to EXPORT_SYMBOL_GPL
variant for dma_*map_phys().

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 drivers/iommu/dma-iommu.c   | 14 --------
 include/linux/dma-direct.h  |  2 --
 include/linux/dma-mapping.h | 13 +++++++
 include/linux/iommu-dma.h   |  4 ---
 include/trace/events/dma.h  |  2 --
 kernel/dma/debug.c          | 43 -----------------------
 kernel/dma/debug.h          | 21 -----------
 kernel/dma/direct.c         | 16 ---------
 kernel/dma/mapping.c        | 69 ++++++++++++++++++++-----------------
 9 files changed, 50 insertions(+), 134 deletions(-)

diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
index 6804aaf034a1..7944a3af4545 100644
--- a/drivers/iommu/dma-iommu.c
+++ b/drivers/iommu/dma-iommu.c
@@ -1556,20 +1556,6 @@ void iommu_dma_unmap_sg(struct device *dev, struct scatterlist *sg, int nents,
 		__iommu_dma_unmap(dev, start, end - start);
 }
 
-dma_addr_t iommu_dma_map_resource(struct device *dev, phys_addr_t phys,
-		size_t size, enum dma_data_direction dir, unsigned long attrs)
-{
-	return __iommu_dma_map(dev, phys, size,
-			dma_info_to_prot(dir, false, attrs) | IOMMU_MMIO,
-			dma_get_mask(dev));
-}
-
-void iommu_dma_unmap_resource(struct device *dev, dma_addr_t handle,
-		size_t size, enum dma_data_direction dir, unsigned long attrs)
-{
-	__iommu_dma_unmap(dev, handle, size);
-}
-
 static void __iommu_dma_free(struct device *dev, size_t size, void *cpu_addr)
 {
 	size_t alloc_size = PAGE_ALIGN(size);
diff --git a/include/linux/dma-direct.h b/include/linux/dma-direct.h
index f3bc0bcd7098..c249912456f9 100644
--- a/include/linux/dma-direct.h
+++ b/include/linux/dma-direct.h
@@ -149,7 +149,5 @@ void dma_direct_free_pages(struct device *dev, size_t size,
 		struct page *page, dma_addr_t dma_addr,
 		enum dma_data_direction dir);
 int dma_direct_supported(struct device *dev, u64 mask);
-dma_addr_t dma_direct_map_resource(struct device *dev, phys_addr_t paddr,
-		size_t size, enum dma_data_direction dir, unsigned long attrs);
 
 #endif /* _LINUX_DMA_DIRECT_H */
diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h
index ead5514d389e..cebfbe237595 100644
--- a/include/linux/dma-mapping.h
+++ b/include/linux/dma-mapping.h
@@ -138,6 +138,10 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
 		unsigned long attrs);
 void dma_unmap_page_attrs(struct device *dev, dma_addr_t addr, size_t size,
 		enum dma_data_direction dir, unsigned long attrs);
+dma_addr_t dma_map_phys(struct device *dev, phys_addr_t phys, size_t size,
+		enum dma_data_direction dir, unsigned long attrs);
+void dma_unmap_phys(struct device *dev, dma_addr_t addr, size_t size,
+		enum dma_data_direction dir, unsigned long attrs);
 unsigned int dma_map_sg_attrs(struct device *dev, struct scatterlist *sg,
 		int nents, enum dma_data_direction dir, unsigned long attrs);
 void dma_unmap_sg_attrs(struct device *dev, struct scatterlist *sg,
@@ -192,6 +196,15 @@ static inline void dma_unmap_page_attrs(struct device *dev, dma_addr_t addr,
 		size_t size, enum dma_data_direction dir, unsigned long attrs)
 {
 }
+static inline dma_addr_t dma_map_phys(struct device *dev, phys_addr_t phys,
+		size_t size, enum dma_data_direction dir, unsigned long attrs)
+{
+	return DMA_MAPPING_ERROR;
+}
+static inline void dma_unmap_phys(struct device *dev, dma_addr_t addr,
+		size_t size, enum dma_data_direction dir, unsigned long attrs)
+{
+}
 static inline unsigned int dma_map_sg_attrs(struct device *dev,
 		struct scatterlist *sg, int nents, enum dma_data_direction dir,
 		unsigned long attrs)
diff --git a/include/linux/iommu-dma.h b/include/linux/iommu-dma.h
index 485bdffed988..a92b3ff9b934 100644
--- a/include/linux/iommu-dma.h
+++ b/include/linux/iommu-dma.h
@@ -42,10 +42,6 @@ size_t iommu_dma_opt_mapping_size(void);
 size_t iommu_dma_max_mapping_size(struct device *dev);
 void iommu_dma_free(struct device *dev, size_t size, void *cpu_addr,
 		dma_addr_t handle, unsigned long attrs);
-dma_addr_t iommu_dma_map_resource(struct device *dev, phys_addr_t phys,
-		size_t size, enum dma_data_direction dir, unsigned long attrs);
-void iommu_dma_unmap_resource(struct device *dev, dma_addr_t handle,
-		size_t size, enum dma_data_direction dir, unsigned long attrs);
 struct sg_table *iommu_dma_alloc_noncontiguous(struct device *dev, size_t size,
 		enum dma_data_direction dir, gfp_t gfp, unsigned long attrs);
 void iommu_dma_free_noncontiguous(struct device *dev, size_t size,
diff --git a/include/trace/events/dma.h b/include/trace/events/dma.h
index 84416c7d6bfa..5da59fd8121d 100644
--- a/include/trace/events/dma.h
+++ b/include/trace/events/dma.h
@@ -73,7 +73,6 @@ DEFINE_EVENT(dma_map, name, \
 	TP_ARGS(dev, phys_addr, dma_addr, size, dir, attrs))
 
 DEFINE_MAP_EVENT(dma_map_phys);
-DEFINE_MAP_EVENT(dma_map_resource);
 
 DECLARE_EVENT_CLASS(dma_unmap,
 	TP_PROTO(struct device *dev, dma_addr_t addr, size_t size,
@@ -111,7 +110,6 @@ DEFINE_EVENT(dma_unmap, name, \
 	TP_ARGS(dev, addr, size, dir, attrs))
 
 DEFINE_UNMAP_EVENT(dma_unmap_phys);
-DEFINE_UNMAP_EVENT(dma_unmap_resource);
 
 DECLARE_EVENT_CLASS(dma_alloc_class,
 	TP_PROTO(struct device *dev, void *virt_addr, dma_addr_t dma_addr,
diff --git a/kernel/dma/debug.c b/kernel/dma/debug.c
index da6734e3a4ce..06e31fd216e3 100644
--- a/kernel/dma/debug.c
+++ b/kernel/dma/debug.c
@@ -38,7 +38,6 @@ enum {
 	dma_debug_single,
 	dma_debug_sg,
 	dma_debug_coherent,
-	dma_debug_resource,
 	dma_debug_phy,
 };
 
@@ -141,7 +140,6 @@ static const char *type2name[] = {
 	[dma_debug_single] = "single",
 	[dma_debug_sg] = "scatter-gather",
 	[dma_debug_coherent] = "coherent",
-	[dma_debug_resource] = "resource",
 	[dma_debug_phy] = "phy",
 };
 
@@ -1448,47 +1446,6 @@ void debug_dma_free_coherent(struct device *dev, size_t size,
 	check_unmap(&ref);
 }
 
-void debug_dma_map_resource(struct device *dev, phys_addr_t addr, size_t size,
-			    int direction, dma_addr_t dma_addr,
-			    unsigned long attrs)
-{
-	struct dma_debug_entry *entry;
-
-	if (unlikely(dma_debug_disabled()))
-		return;
-
-	entry = dma_entry_alloc();
-	if (!entry)
-		return;
-
-	entry->type		= dma_debug_resource;
-	entry->dev		= dev;
-	entry->paddr		= addr;
-	entry->size		= size;
-	entry->dev_addr		= dma_addr;
-	entry->direction	= direction;
-	entry->map_err_type	= MAP_ERR_NOT_CHECKED;
-
-	add_dma_entry(entry, attrs);
-}
-
-void debug_dma_unmap_resource(struct device *dev, dma_addr_t dma_addr,
-			      size_t size, int direction)
-{
-	struct dma_debug_entry ref = {
-		.type           = dma_debug_resource,
-		.dev            = dev,
-		.dev_addr       = dma_addr,
-		.size           = size,
-		.direction      = direction,
-	};
-
-	if (unlikely(dma_debug_disabled()))
-		return;
-
-	check_unmap(&ref);
-}
-
 void debug_dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle,
 				   size_t size, int direction)
 {
diff --git a/kernel/dma/debug.h b/kernel/dma/debug.h
index 76adb42bffd5..424b8f912ade 100644
--- a/kernel/dma/debug.h
+++ b/kernel/dma/debug.h
@@ -30,14 +30,6 @@ extern void debug_dma_alloc_coherent(struct device *dev, size_t size,
 extern void debug_dma_free_coherent(struct device *dev, size_t size,
 				    void *virt, dma_addr_t addr);
 
-extern void debug_dma_map_resource(struct device *dev, phys_addr_t addr,
-				   size_t size, int direction,
-				   dma_addr_t dma_addr,
-				   unsigned long attrs);
-
-extern void debug_dma_unmap_resource(struct device *dev, dma_addr_t dma_addr,
-				     size_t size, int direction);
-
 extern void debug_dma_sync_single_for_cpu(struct device *dev,
 					  dma_addr_t dma_handle, size_t size,
 					  int direction);
@@ -88,19 +80,6 @@ static inline void debug_dma_free_coherent(struct device *dev, size_t size,
 {
 }
 
-static inline void debug_dma_map_resource(struct device *dev, phys_addr_t addr,
-					  size_t size, int direction,
-					  dma_addr_t dma_addr,
-					  unsigned long attrs)
-{
-}
-
-static inline void debug_dma_unmap_resource(struct device *dev,
-					    dma_addr_t dma_addr, size_t size,
-					    int direction)
-{
-}
-
 static inline void debug_dma_sync_single_for_cpu(struct device *dev,
 						 dma_addr_t dma_handle,
 						 size_t size, int direction)
diff --git a/kernel/dma/direct.c b/kernel/dma/direct.c
index fa75e3070073..1062caac47e7 100644
--- a/kernel/dma/direct.c
+++ b/kernel/dma/direct.c
@@ -502,22 +502,6 @@ int dma_direct_map_sg(struct device *dev, struct scatterlist *sgl, int nents,
 	return ret;
 }
 
-dma_addr_t dma_direct_map_resource(struct device *dev, phys_addr_t paddr,
-		size_t size, enum dma_data_direction dir, unsigned long attrs)
-{
-	dma_addr_t dma_addr = paddr;
-
-	if (unlikely(!dma_capable(dev, dma_addr, size, false))) {
-		dev_err_once(dev,
-			     "DMA addr %pad+%zu overflow (mask %llx, bus limit %llx).\n",
-			     &dma_addr, size, *dev->dma_mask, dev->bus_dma_limit);
-		WARN_ON_ONCE(1);
-		return DMA_MAPPING_ERROR;
-	}
-
-	return dma_addr;
-}
-
 int dma_direct_get_sgtable(struct device *dev, struct sg_table *sgt,
 		void *cpu_addr, dma_addr_t dma_addr, size_t size,
 		unsigned long attrs)
diff --git a/kernel/dma/mapping.c b/kernel/dma/mapping.c
index 8725508a6c57..7e0e21a7ba04 100644
--- a/kernel/dma/mapping.c
+++ b/kernel/dma/mapping.c
@@ -152,12 +152,10 @@ static inline bool dma_map_direct(struct device *dev,
 	return dma_go_direct(dev, *dev->dma_mask, ops);
 }
 
-dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
-		size_t offset, size_t size, enum dma_data_direction dir,
-		unsigned long attrs)
+dma_addr_t dma_map_phys(struct device *dev, phys_addr_t phys, size_t size,
+		enum dma_data_direction dir, unsigned long attrs)
 {
 	const struct dma_map_ops *ops = get_dma_ops(dev);
-	phys_addr_t phys = page_to_phys(page) + offset;
 	bool is_mmio = attrs & DMA_ATTR_MMIO;
 	dma_addr_t addr;
 
@@ -177,6 +175,9 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
 
 		addr = ops->map_resource(dev, phys, size, dir, attrs);
 	} else {
+		struct page *page = phys_to_page(phys);
+		size_t offset = offset_in_page(phys);
+
 		/*
 		 * The dma_ops API contract for ops->map_page() requires
 		 * kmappable memory, while ops->map_resource() does not.
@@ -190,9 +191,26 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
 
 	return addr;
 }
+EXPORT_SYMBOL_GPL(dma_map_phys);
+
+dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
+		size_t offset, size_t size, enum dma_data_direction dir,
+		unsigned long attrs)
+{
+	phys_addr_t phys = page_to_phys(page) + offset;
+
+	if (unlikely(attrs & DMA_ATTR_MMIO))
+		return DMA_MAPPING_ERROR;
+
+	if (IS_ENABLED(CONFIG_DMA_API_DEBUG) &&
+	    WARN_ON_ONCE(is_zone_device_page(page)))
+		return DMA_MAPPING_ERROR;
+
+	return dma_map_phys(dev, phys, size, dir, attrs);
+}
 EXPORT_SYMBOL(dma_map_page_attrs);
 
-void dma_unmap_page_attrs(struct device *dev, dma_addr_t addr, size_t size,
+void dma_unmap_phys(struct device *dev, dma_addr_t addr, size_t size,
 		enum dma_data_direction dir, unsigned long attrs)
 {
 	const struct dma_map_ops *ops = get_dma_ops(dev);
@@ -212,6 +230,16 @@ void dma_unmap_page_attrs(struct device *dev, dma_addr_t addr, size_t size,
 	trace_dma_unmap_phys(dev, addr, size, dir, attrs);
 	debug_dma_unmap_phys(dev, addr, size, dir);
 }
+EXPORT_SYMBOL_GPL(dma_unmap_phys);
+
+void dma_unmap_page_attrs(struct device *dev, dma_addr_t addr, size_t size,
+		 enum dma_data_direction dir, unsigned long attrs)
+{
+	if (unlikely(attrs & DMA_ATTR_MMIO))
+		return;
+
+	dma_unmap_phys(dev, addr, size, dir, attrs);
+}
 EXPORT_SYMBOL(dma_unmap_page_attrs);
 
 static int __dma_map_sg_attrs(struct device *dev, struct scatterlist *sg,
@@ -337,41 +365,18 @@ EXPORT_SYMBOL(dma_unmap_sg_attrs);
 dma_addr_t dma_map_resource(struct device *dev, phys_addr_t phys_addr,
 		size_t size, enum dma_data_direction dir, unsigned long attrs)
 {
-	const struct dma_map_ops *ops = get_dma_ops(dev);
-	dma_addr_t addr = DMA_MAPPING_ERROR;
-
-	BUG_ON(!valid_dma_direction(dir));
-
-	if (WARN_ON_ONCE(!dev->dma_mask))
+	if (IS_ENABLED(CONFIG_DMA_API_DEBUG) &&
+	    WARN_ON_ONCE(pfn_valid(PHYS_PFN(phys_addr))))
 		return DMA_MAPPING_ERROR;
 
-	if (dma_map_direct(dev, ops))
-		addr = dma_direct_map_resource(dev, phys_addr, size, dir, attrs);
-	else if (use_dma_iommu(dev))
-		addr = iommu_dma_map_resource(dev, phys_addr, size, dir, attrs);
-	else if (ops->map_resource)
-		addr = ops->map_resource(dev, phys_addr, size, dir, attrs);
-
-	trace_dma_map_resource(dev, phys_addr, addr, size, dir, attrs);
-	debug_dma_map_resource(dev, phys_addr, size, dir, addr, attrs);
-	return addr;
+	return dma_map_phys(dev, phys_addr, size, dir, attrs | DMA_ATTR_MMIO);
 }
 EXPORT_SYMBOL(dma_map_resource);
 
 void dma_unmap_resource(struct device *dev, dma_addr_t addr, size_t size,
 		enum dma_data_direction dir, unsigned long attrs)
 {
-	const struct dma_map_ops *ops = get_dma_ops(dev);
-
-	BUG_ON(!valid_dma_direction(dir));
-	if (dma_map_direct(dev, ops))
-		; /* nothing to do: uncached and no swiotlb */
-	else if (use_dma_iommu(dev))
-		iommu_dma_unmap_resource(dev, addr, size, dir, attrs);
-	else if (ops->unmap_resource)
-		ops->unmap_resource(dev, addr, size, dir, attrs);
-	trace_dma_unmap_resource(dev, addr, size, dir, attrs);
-	debug_dma_unmap_resource(dev, addr, size, dir);
+	dma_unmap_phys(dev, addr, size, dir, attrs | DMA_ATTR_MMIO);
 }
 EXPORT_SYMBOL(dma_unmap_resource);
 
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 10:23:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 10:23:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081375.1441493 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umV7m-0005AY-Ga; Thu, 14 Aug 2025 10:23:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081375.1441493; Thu, 14 Aug 2025 10:23: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 1umV7m-0005AR-DM; Thu, 14 Aug 2025 10:23:58 +0000
Received: by outflank-mailman (input) for mailman id 1081375;
 Thu, 14 Aug 2025 10:23:57 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Hncw=22=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1umUyo-0003F8-9e
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 10:14:42 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7d7ca9ca-78f7-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 12:14:41 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 4E066445B7;
 Thu, 14 Aug 2025 10:14:40 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 27028C4CEED;
 Thu, 14 Aug 2025 10:14:39 +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>
X-Inumbo-ID: 7d7ca9ca-78f7-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755166480;
	bh=O9XZOHlHvjORXmOt4kTIQrFLHTrONFqw1ae8lUbcYw8=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=eWNP8pfq7yUM25kUsbm3T+cq953aNotFNHBqMxVlWCtlUYOt5Rw3JG6yLlkJyNYia
	 0DPFRhoAzA9uIWb4p7LPAYf9xIZ391Hkz/Tpf2xoI+iUWSIU2W7lzjQ54XlYOKvAbM
	 b6GPu27TSwCixhdzxPCCW+NF4MA4gs0/au8J3ut9S/JCFvIyeiBlUMgoXmOuZQu/o4
	 Wnziz3n69of8QUiKZhOoPQzzbBclfAGwMqIbjxwm2VdCvmOPiOo0ennsGFEuIXJEy/
	 dMZv2hpRL9zGOuGaoy7hht/3GW82juz30t3Cp/uMMdSOa2W43Gw2TJip6DKEh1GJ+X
	 yPFpfFYdC1pBA==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 12/16] mm/hmm: migrate to physical address-based DMA mapping API
Date: Thu, 14 Aug 2025 13:13:30 +0300
Message-ID: <259668e7a332148edf8738b7b4637c2b264f51ea.1755153054.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755153054.git.leon@kernel.org>
References: <cover.1755153054.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

Convert HMM DMA operations from the legacy page-based API to the new
physical address-based dma_map_phys() and dma_unmap_phys() functions.
This demonstrates the preferred approach for new code that should use
physical addresses directly rather than page+offset parameters.

The change replaces dma_map_page() and dma_unmap_page() calls with
dma_map_phys() and dma_unmap_phys() respectively, using the physical
address that was already available in the code. This eliminates the
redundant page-to-physical address conversion and aligns with the
DMA subsystem's move toward physical address-centric interfaces.

This serves as an example of how new code should be written to leverage
the more efficient physical address API, which provides cleaner interfaces
for drivers that already have access to physical addresses.

Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 mm/hmm.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/mm/hmm.c b/mm/hmm.c
index d545e2494994..015ab243f081 100644
--- a/mm/hmm.c
+++ b/mm/hmm.c
@@ -775,8 +775,8 @@ dma_addr_t hmm_dma_map_pfn(struct device *dev, struct hmm_dma_map *map,
 		if (WARN_ON_ONCE(dma_need_unmap(dev) && !dma_addrs))
 			goto error;
 
-		dma_addr = dma_map_page(dev, page, 0, map->dma_entry_size,
-					DMA_BIDIRECTIONAL);
+		dma_addr = dma_map_phys(dev, paddr, map->dma_entry_size,
+					DMA_BIDIRECTIONAL, 0);
 		if (dma_mapping_error(dev, dma_addr))
 			goto error;
 
@@ -819,8 +819,8 @@ bool hmm_dma_unmap_pfn(struct device *dev, struct hmm_dma_map *map, size_t idx)
 		dma_iova_unlink(dev, state, idx * map->dma_entry_size,
 				map->dma_entry_size, DMA_BIDIRECTIONAL, attrs);
 	} else if (dma_need_unmap(dev))
-		dma_unmap_page(dev, dma_addrs[idx], map->dma_entry_size,
-			       DMA_BIDIRECTIONAL);
+		dma_unmap_phys(dev, dma_addrs[idx], map->dma_entry_size,
+			       DMA_BIDIRECTIONAL, 0);
 
 	pfns[idx] &=
 		~(HMM_PFN_DMA_MAPPED | HMM_PFN_P2PDMA | HMM_PFN_P2PDMA_BUS);
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 10:24:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 10:24:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081393.1441504 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umV81-0005pg-Qy; Thu, 14 Aug 2025 10:24:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081393.1441504; Thu, 14 Aug 2025 10: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 1umV81-0005pX-LO; Thu, 14 Aug 2025 10:24:13 +0000
Received: by outflank-mailman (input) for mailman id 1081393;
 Thu, 14 Aug 2025 10:24:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Hncw=22=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1umUyX-0003F8-O9
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 10:14:25 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7337899e-78f7-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 12:14:24 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 1981045896;
 Thu, 14 Aug 2025 10:14:23 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1A882C4CEEF;
 Thu, 14 Aug 2025 10:14:22 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7337899e-78f7-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755166463;
	bh=vOnEIp8ay7pVjNUnKwOoXsO+91/AeyefXChuEBTVE5g=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=uC2MdG09CZ1YkkbBnag5+2HfLU2/stGqTRE7/1sPDtlkzpPqmlZUqrJkT/lpcZ+XV
	 wquSYEcCbtWa+90tGgqDrNF5RBnjYsIbshWHQk/3Y5KAe6TlvD6A7XaeMR8AiU/Ouf
	 vOfitYd5crLgS+clS8oyv1vEp7QfnW1+oQeztUl7+JGo0CopoC9kkB12pKFqvhs9IW
	 81kohzgrDhIfESg/+JfrrZl0j/f7hiN6NErce4aOQsWaKhC+w6L0RtKAbZIBvfDVO+
	 o+W3vNeuMYaO3lIcT15vZvdjgDhAxMj8bODhQyHF2vUj9z5syiR2+Y9dzW9rUdugMr
	 Cj/bOZWFCMGKg==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 07/16] dma-mapping: convert dma_direct_*map_page to be phys_addr_t based
Date: Thu, 14 Aug 2025 13:13:25 +0300
Message-ID: <c9c845401023b1a1a30b500845f2979b73ea06b6.1755153054.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755153054.git.leon@kernel.org>
References: <cover.1755153054.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

Convert the DMA direct mapping functions to accept physical addresses
directly instead of page+offset parameters. The functions were already
operating on physical addresses internally, so this change eliminates
the redundant page-to-physical conversion at the API boundary.

The functions dma_direct_map_page() and dma_direct_unmap_page() are
renamed to dma_direct_map_phys() and dma_direct_unmap_phys() respectively,
with their calling convention changed from (struct page *page,
unsigned long offset) to (phys_addr_t phys).

Architecture-specific functions arch_dma_map_page_direct() and
arch_dma_unmap_page_direct() are similarly renamed to
arch_dma_map_phys_direct() and arch_dma_unmap_phys_direct().

The is_pci_p2pdma_page() checks are replaced with DMA_ATTR_MMIO checks
to allow integration with dma_direct_map_resource and dma_direct_map_phys()
is extended to support MMIO path either.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 arch/powerpc/kernel/dma-iommu.c |  4 +--
 include/linux/dma-map-ops.h     |  8 ++---
 kernel/dma/direct.c             |  6 ++--
 kernel/dma/direct.h             | 52 +++++++++++++++++++++------------
 kernel/dma/mapping.c            |  8 ++---
 5 files changed, 46 insertions(+), 32 deletions(-)

diff --git a/arch/powerpc/kernel/dma-iommu.c b/arch/powerpc/kernel/dma-iommu.c
index 4d64a5db50f3..0359ab72cd3b 100644
--- a/arch/powerpc/kernel/dma-iommu.c
+++ b/arch/powerpc/kernel/dma-iommu.c
@@ -14,7 +14,7 @@
 #define can_map_direct(dev, addr) \
 	((dev)->bus_dma_limit >= phys_to_dma((dev), (addr)))
 
-bool arch_dma_map_page_direct(struct device *dev, phys_addr_t addr)
+bool arch_dma_map_phys_direct(struct device *dev, phys_addr_t addr)
 {
 	if (likely(!dev->bus_dma_limit))
 		return false;
@@ -24,7 +24,7 @@ bool arch_dma_map_page_direct(struct device *dev, phys_addr_t addr)
 
 #define is_direct_handle(dev, h) ((h) >= (dev)->archdata.dma_offset)
 
-bool arch_dma_unmap_page_direct(struct device *dev, dma_addr_t dma_handle)
+bool arch_dma_unmap_phys_direct(struct device *dev, dma_addr_t dma_handle)
 {
 	if (likely(!dev->bus_dma_limit))
 		return false;
diff --git a/include/linux/dma-map-ops.h b/include/linux/dma-map-ops.h
index f48e5fb88bd5..71f5b3025415 100644
--- a/include/linux/dma-map-ops.h
+++ b/include/linux/dma-map-ops.h
@@ -392,15 +392,15 @@ void *arch_dma_set_uncached(void *addr, size_t size);
 void arch_dma_clear_uncached(void *addr, size_t size);
 
 #ifdef CONFIG_ARCH_HAS_DMA_MAP_DIRECT
-bool arch_dma_map_page_direct(struct device *dev, phys_addr_t addr);
-bool arch_dma_unmap_page_direct(struct device *dev, dma_addr_t dma_handle);
+bool arch_dma_map_phys_direct(struct device *dev, phys_addr_t addr);
+bool arch_dma_unmap_phys_direct(struct device *dev, dma_addr_t dma_handle);
 bool arch_dma_map_sg_direct(struct device *dev, struct scatterlist *sg,
 		int nents);
 bool arch_dma_unmap_sg_direct(struct device *dev, struct scatterlist *sg,
 		int nents);
 #else
-#define arch_dma_map_page_direct(d, a)		(false)
-#define arch_dma_unmap_page_direct(d, a)	(false)
+#define arch_dma_map_phys_direct(d, a)		(false)
+#define arch_dma_unmap_phys_direct(d, a)	(false)
 #define arch_dma_map_sg_direct(d, s, n)		(false)
 #define arch_dma_unmap_sg_direct(d, s, n)	(false)
 #endif
diff --git a/kernel/dma/direct.c b/kernel/dma/direct.c
index 24c359d9c879..fa75e3070073 100644
--- a/kernel/dma/direct.c
+++ b/kernel/dma/direct.c
@@ -453,7 +453,7 @@ void dma_direct_unmap_sg(struct device *dev, struct scatterlist *sgl,
 		if (sg_dma_is_bus_address(sg))
 			sg_dma_unmark_bus_address(sg);
 		else
-			dma_direct_unmap_page(dev, sg->dma_address,
+			dma_direct_unmap_phys(dev, sg->dma_address,
 					      sg_dma_len(sg), dir, attrs);
 	}
 }
@@ -476,8 +476,8 @@ int dma_direct_map_sg(struct device *dev, struct scatterlist *sgl, int nents,
 			 */
 			break;
 		case PCI_P2PDMA_MAP_NONE:
-			sg->dma_address = dma_direct_map_page(dev, sg_page(sg),
-					sg->offset, sg->length, dir, attrs);
+			sg->dma_address = dma_direct_map_phys(dev, sg_phys(sg),
+					sg->length, dir, attrs);
 			if (sg->dma_address == DMA_MAPPING_ERROR) {
 				ret = -EIO;
 				goto out_unmap;
diff --git a/kernel/dma/direct.h b/kernel/dma/direct.h
index d2c0b7e632fc..92dbadcd3b2f 100644
--- a/kernel/dma/direct.h
+++ b/kernel/dma/direct.h
@@ -80,42 +80,56 @@ static inline void dma_direct_sync_single_for_cpu(struct device *dev,
 		arch_dma_mark_clean(paddr, size);
 }
 
-static inline dma_addr_t dma_direct_map_page(struct device *dev,
-		struct page *page, unsigned long offset, size_t size,
-		enum dma_data_direction dir, unsigned long attrs)
+static inline dma_addr_t dma_direct_map_phys(struct device *dev,
+		phys_addr_t phys, size_t size, enum dma_data_direction dir,
+		unsigned long attrs)
 {
-	phys_addr_t phys = page_to_phys(page) + offset;
-	dma_addr_t dma_addr = phys_to_dma(dev, phys);
+	dma_addr_t dma_addr;
+	bool capable;
 
 	if (is_swiotlb_force_bounce(dev)) {
-		if (is_pci_p2pdma_page(page))
-			return DMA_MAPPING_ERROR;
+		if (attrs & DMA_ATTR_MMIO)
+			goto err_overflow;
+
 		return swiotlb_map(dev, phys, size, dir, attrs);
 	}
 
-	if (unlikely(!dma_capable(dev, dma_addr, size, true)) ||
-	    dma_kmalloc_needs_bounce(dev, size, dir)) {
-		if (is_pci_p2pdma_page(page))
-			return DMA_MAPPING_ERROR;
-		if (is_swiotlb_active(dev))
+	if (attrs & DMA_ATTR_MMIO)
+		dma_addr = phys;
+	else
+		dma_addr = phys_to_dma(dev, phys);
+
+	capable = dma_capable(dev, dma_addr, size, !(attrs & DMA_ATTR_MMIO));
+	if (unlikely(!capable) || dma_kmalloc_needs_bounce(dev, size, dir)) {
+		if (is_swiotlb_active(dev) && !(attrs & DMA_ATTR_MMIO))
 			return swiotlb_map(dev, phys, size, dir, attrs);
 
-		dev_WARN_ONCE(dev, 1,
-			     "DMA addr %pad+%zu overflow (mask %llx, bus limit %llx).\n",
-			     &dma_addr, size, *dev->dma_mask, dev->bus_dma_limit);
-		return DMA_MAPPING_ERROR;
+		goto err_overflow;
 	}
 
-	if (!dev_is_dma_coherent(dev) && !(attrs & DMA_ATTR_SKIP_CPU_SYNC))
+	if (!dev_is_dma_coherent(dev) &&
+	    !(attrs & (DMA_ATTR_SKIP_CPU_SYNC | DMA_ATTR_MMIO)))
 		arch_sync_dma_for_device(phys, size, dir);
 	return dma_addr;
+
+err_overflow:
+	dev_WARN_ONCE(
+		dev, 1,
+		"DMA addr %pad+%zu overflow (mask %llx, bus limit %llx).\n",
+		&dma_addr, size, *dev->dma_mask, dev->bus_dma_limit);
+	return DMA_MAPPING_ERROR;
 }
 
-static inline void dma_direct_unmap_page(struct device *dev, dma_addr_t addr,
+static inline void dma_direct_unmap_phys(struct device *dev, dma_addr_t addr,
 		size_t size, enum dma_data_direction dir, unsigned long attrs)
 {
-	phys_addr_t phys = dma_to_phys(dev, addr);
+	phys_addr_t phys;
+
+	if (attrs & DMA_ATTR_MMIO)
+		/* nothing to do: uncached and no swiotlb */
+		return;
 
+	phys = dma_to_phys(dev, addr);
 	if (!(attrs & DMA_ATTR_SKIP_CPU_SYNC))
 		dma_direct_sync_single_for_cpu(dev, addr, size, dir);
 
diff --git a/kernel/dma/mapping.c b/kernel/dma/mapping.c
index 58482536db9b..80481a873340 100644
--- a/kernel/dma/mapping.c
+++ b/kernel/dma/mapping.c
@@ -166,8 +166,8 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
 		return DMA_MAPPING_ERROR;
 
 	if (dma_map_direct(dev, ops) ||
-	    arch_dma_map_page_direct(dev, phys + size))
-		addr = dma_direct_map_page(dev, page, offset, size, dir, attrs);
+	    arch_dma_map_phys_direct(dev, phys + size))
+		addr = dma_direct_map_phys(dev, phys, size, dir, attrs);
 	else if (use_dma_iommu(dev))
 		addr = iommu_dma_map_phys(dev, phys, size, dir, attrs);
 	else
@@ -187,8 +187,8 @@ void dma_unmap_page_attrs(struct device *dev, dma_addr_t addr, size_t size,
 
 	BUG_ON(!valid_dma_direction(dir));
 	if (dma_map_direct(dev, ops) ||
-	    arch_dma_unmap_page_direct(dev, addr + size))
-		dma_direct_unmap_page(dev, addr, size, dir, attrs);
+	    arch_dma_unmap_phys_direct(dev, addr + size))
+		dma_direct_unmap_phys(dev, addr, size, dir, attrs);
 	else if (use_dma_iommu(dev))
 		iommu_dma_unmap_phys(dev, addr, size, dir, attrs);
 	else
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 10:24:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 10:24:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081403.1441513 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umV87-0006BT-4H; Thu, 14 Aug 2025 10:24:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081403.1441513; Thu, 14 Aug 2025 10:24:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umV87-0006BM-14; Thu, 14 Aug 2025 10:24:19 +0000
Received: by outflank-mailman (input) for mailman id 1081403;
 Thu, 14 Aug 2025 10:24:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Hncw=22=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1umUyt-0003Sq-TM
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 10:14:47 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 80213518-78f7-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 12:14:46 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id B7C19435C3;
 Thu, 14 Aug 2025 10:14:44 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id AE2CAC4CEED;
 Thu, 14 Aug 2025 10:14:43 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 80213518-78f7-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755166484;
	bh=5GnXky7X8jRP4E4M761xyU7kxSqR5w3y9HvcAnisW/0=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=GOIGZTALgEXO1yJmRnIppoU7sVnE9nGcbMZQVycIMrFkUkEsvGws6NRdpGbZwCPTD
	 EH5S4PsSjJiEFaVyEY/9QvsuOFrfrIM2jr1fwUPJMIPtWlonZgQ18Xyj8zfPOT0GQO
	 B+9AQ0omHzJngdLANyllOrFgvdhVO4L1z8Dmj1SkfIiVF4KS7xlgY6Wgp9XvUszA1i
	 GznzVHXHeBog8qvfnoLOoVf4oOMHY3auY/kzpXBELjlpw7gyiSs+6eMYW3loBSbwpm
	 bYNaIlcJU9Cdf+jNl6zgiiNsou0al6+23/rIuESPqXov8EgRibqQkm0IVOUThOkMc5
	 RHJ2gapPlrz5A==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 13/16] mm/hmm: properly take MMIO path
Date: Thu, 14 Aug 2025 13:13:31 +0300
Message-ID: <1c5a07cc7b40e956b2d75328fc95e45e82d2da5d.1755153054.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755153054.git.leon@kernel.org>
References: <cover.1755153054.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

In case peer-to-peer transaction traverses through host bridge,
the IOMMU needs to have IOMMU_MMIO flag, together with skip of
CPU sync.

The latter was handled by provided DMA_ATTR_SKIP_CPU_SYNC flag,
but IOMMU flag was missed, due to assumption that such memory
can be treated as regular one.

Reuse newly introduced DMA attribute to properly take MMIO path.

Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 mm/hmm.c | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/mm/hmm.c b/mm/hmm.c
index 015ab243f081..6556c0e074ba 100644
--- a/mm/hmm.c
+++ b/mm/hmm.c
@@ -746,7 +746,7 @@ dma_addr_t hmm_dma_map_pfn(struct device *dev, struct hmm_dma_map *map,
 	case PCI_P2PDMA_MAP_NONE:
 		break;
 	case PCI_P2PDMA_MAP_THRU_HOST_BRIDGE:
-		attrs |= DMA_ATTR_SKIP_CPU_SYNC;
+		attrs |= DMA_ATTR_MMIO;
 		pfns[idx] |= HMM_PFN_P2PDMA;
 		break;
 	case PCI_P2PDMA_MAP_BUS_ADDR:
@@ -776,7 +776,7 @@ dma_addr_t hmm_dma_map_pfn(struct device *dev, struct hmm_dma_map *map,
 			goto error;
 
 		dma_addr = dma_map_phys(dev, paddr, map->dma_entry_size,
-					DMA_BIDIRECTIONAL, 0);
+					DMA_BIDIRECTIONAL, attrs);
 		if (dma_mapping_error(dev, dma_addr))
 			goto error;
 
@@ -811,16 +811,17 @@ bool hmm_dma_unmap_pfn(struct device *dev, struct hmm_dma_map *map, size_t idx)
 	if ((pfns[idx] & valid_dma) != valid_dma)
 		return false;
 
+	if (pfns[idx] & HMM_PFN_P2PDMA)
+		attrs |= DMA_ATTR_MMIO;
+
 	if (pfns[idx] & HMM_PFN_P2PDMA_BUS)
 		; /* no need to unmap bus address P2P mappings */
-	else if (dma_use_iova(state)) {
-		if (pfns[idx] & HMM_PFN_P2PDMA)
-			attrs |= DMA_ATTR_SKIP_CPU_SYNC;
+	else if (dma_use_iova(state))
 		dma_iova_unlink(dev, state, idx * map->dma_entry_size,
 				map->dma_entry_size, DMA_BIDIRECTIONAL, attrs);
-	} else if (dma_need_unmap(dev))
+	else if (dma_need_unmap(dev))
 		dma_unmap_phys(dev, dma_addrs[idx], map->dma_entry_size,
-			       DMA_BIDIRECTIONAL, 0);
+			       DMA_BIDIRECTIONAL, attrs);
 
 	pfns[idx] &=
 		~(HMM_PFN_DMA_MAPPED | HMM_PFN_P2PDMA | HMM_PFN_P2PDMA_BUS);
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 10:28:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 10:28:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081423.1441523 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umVCM-0007Qz-Lp; Thu, 14 Aug 2025 10:28:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081423.1441523; Thu, 14 Aug 2025 10:28: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 1umVCM-0007Qr-Iy; Thu, 14 Aug 2025 10:28:42 +0000
Received: by outflank-mailman (input) for mailman id 1081423;
 Thu, 14 Aug 2025 10:28:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6Upc=22=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1umVCL-0007Ql-Cf
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 10:28:41 +0000
Received: from mail-wr1-x42b.google.com (mail-wr1-x42b.google.com
 [2a00:1450:4864:20::42b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6f8ed65b-78f9-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 12:28:36 +0200 (CEST)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-3b9e418ba08so336925f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 03:28:36 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3b79c469582sm49339926f8f.52.2025.08.14.03.28.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Aug 2025 03:28: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>
X-Inumbo-ID: 6f8ed65b-78f9-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755167316; x=1755772116; 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=vWzPGO85ZtVeB8/uxBQnr8mR5+rY9tgbix+VtBxEu4E=;
        b=eg8F+zE5Un9BmJX/GsLXGi818kvA4r3lpFRk+4vD40zNnOEUP9iJppgaPMXTeGbT21
         IbV5FnJPcixYBWeRpdJu/ud+TfEuLoDyf0C7yajiTcHEQGTEOnAZmv+O1U38oVQamf68
         j6ihzzI8l0ivMNxvQ0YVI/2vtgmsZqZbnCwi8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755167316; x=1755772116;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vWzPGO85ZtVeB8/uxBQnr8mR5+rY9tgbix+VtBxEu4E=;
        b=By4m5M9msPMV+ZE8WSd9dNrlHc04G1NFKHU79tL4da8Mvggby2XIEBcLE6y9oqMq89
         LbJfI7rm95FVFJxLa79VfZl5cNQHnWwR4tux39MPX585AfPTbSDg7EZ3FqDGFNL1xgj9
         YGogQWxB0JeG3TX1Mnc+DH9OT83Sspalbz9PGj+zIND2U7eIvYwZRwELReQUIyiNKX2i
         pvFChncRN/0wvcBCR7g4ea/mL4yGII4LBiJODSD6vre1PmWqSTmzlVlQ9FLlktQkraN2
         VBHqXcVtaDeXY8NaJZXhLJTJ6FeYKIMvY612xJQIocuv091lGzWpouaBcER1YuHRQ3Y6
         vLbg==
X-Forwarded-Encrypted: i=1; AJvYcCU21pbJVsKlrFK+WLlNLNUz8c7+VVL0Kr1xrJq8PDklGrgmxZgKAnkHyyQ5du15SUTs38FQZq8Kbbo=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw0D233MlhXiG2DcTu5Q6NpcGtPazhfEcVeiGK6z1AqPy4ZQSP1
	OIoNA9cKKZmmn81+7Dki82bmeeM5J4t+G+TG5PdfcIMRxqvI8dxwZhydDJ/bt2I6yX0=
X-Gm-Gg: ASbGncsRiMFAUby1Q9mOIfzO5vlAHrYRuDy+mSm3cGg0S7xxbzhGd9aiDuFBZwAvQ4b
	400YMDcgKP42OPkscqmUUoZ87bFUPwUuzN5ODDjnpkeO/wBK6Td0HYj46Cx098fFt2qPwNyPhKc
	wzP2yiuI58WX8NB8wGQUiZdmU/4i3REsTQmfyNSOij2rqkj1+6CAdsT5pm/NmqKc1yg0+96ZYxX
	TJ/VyQdHELyuI/IM+rSkn9+Da0AE2/gPyahGsc82Yu+ja5/MXQPXx95e/kSYGcjc5jB78KcBwh4
	z755Xlbf5GAPk616o6MWccBhguZpzDpen7+lUYXyUcfdWwIpq5TYyPyrWNsCmGhX0j/ui93RuR1
	oLbei5GR9VPEjyGidmqss96cg8EKF7asHlynMaJHTDFHnN4xtC7Kr+i9RlAd117rJHg==
X-Google-Smtp-Source: AGHT+IGt8oZPK26PL0yVLV0qycRvcIQKA/54UQlbiC2VAl7ASl/DJdAgv0Ry48W49uEC02sjbsw3vg==
X-Received: by 2002:a05:6000:2012:b0:3b8:d15e:ed35 with SMTP id ffacd0b85a97d-3b9edf1d068mr2097317f8f.23.1755167315776;
        Thu, 14 Aug 2025 03:28:35 -0700 (PDT)
Date: Thu, 14 Aug 2025 12:28:34 +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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH] pdx: cast PAGE_SIZE value ahead of shifting
Message-ID: <aJ26UmemwxyyTioE@macbook.local>
References: <20250813125538.78174-1-roger.pau@citrix.com>
 <e644c968-ab68-49f4-801e-0f161fd85f2e@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <e644c968-ab68-49f4-801e-0f161fd85f2e@suse.com>

On Thu, Aug 14, 2025 at 09:18:45AM +0200, Jan Beulich wrote:
> On 13.08.2025 14:55, Roger Pau Monne wrote:
> > --- a/xen/common/pdx.c
> > +++ b/xen/common/pdx.c
> > @@ -288,7 +288,7 @@ bool __init pfn_pdx_compression_setup(paddr_t base)
> >  
> >      pfn_pdx_hole_shift  = hole_shift;
> >      pfn_pdx_bottom_mask = (1UL << bottom_shift) - 1;
> > -    ma_va_bottom_mask   = (PAGE_SIZE << bottom_shift) - 1;
> > +    ma_va_bottom_mask   = ((paddr_t)PAGE_SIZE << bottom_shift) - 1;
> 
> Given
> 
> #define PAGE_SIZE           (_AC(1,L) << PAGE_SHIFT)
> 
> this shouldn't be needed, except maybe for Arm32. There, however, ...
> 
> >      pfn_hole_mask       = ((1UL << hole_shift) - 1) << bottom_shift;
> 
> ... this and the shift immediately ahead would also be a problem afaict,
> which makes me conclude this isn't what Coverity has looked at. I expect
> the problem is with the toolstack side definition of PAGE_SIZE, which imo
> would rather be addressed there. (And yes, I'm pretty averse to arbitrary
> casts like this being introduced.)

As I've realized while looking at this, wouldn't ma_va_bottom_mask
also better be of type paddr_t, since it's not operating on pfns, but
physical addresses.  I didn't adjust the type of ma_va_bottom_mask,
but I would be happy to do it if you agree.

Thanks, roger.


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 10:36:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 10:36:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081473.1441554 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umVJM-0002az-M1; Thu, 14 Aug 2025 10:35:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081473.1441554; Thu, 14 Aug 2025 10:35: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 1umVJM-0002as-Hz; Thu, 14 Aug 2025 10:35:56 +0000
Received: by outflank-mailman (input) for mailman id 1081473;
 Thu, 14 Aug 2025 10:35:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6Upc=22=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1umVJL-0002G6-UI
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 10:35:55 +0000
Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com
 [2a00:1450:4864:20::329])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 749f3947-78fa-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 12:35:54 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-45a1b0bd237so6177615e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 03:35:54 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-45a1cda0021sm14641485e9.13.2025.08.14.03.35.53
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Aug 2025 03:35: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>
X-Inumbo-ID: 749f3947-78fa-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755167754; x=1755772554; 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=nJCEyfdgtEnWVmk8MeOuk/smWvq0tuH31sEx3Fy6Hjc=;
        b=KgpyoO2qVatAhHLVxsI2YFxytqE2k6evfhGvMBVwUf5cgSNYaLLB/ZwhbtCtYKwV4I
         g7/5mRZ6wxs7W2uW/JKuHMT3NLszAfVVl+Rl/y9Hxz2DFVqPJ7t9agFJOlio9AYF9mX+
         aVAaKlqBgl+XbRndNus7woRqAMiOEHwaYlkS4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755167754; x=1755772554;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nJCEyfdgtEnWVmk8MeOuk/smWvq0tuH31sEx3Fy6Hjc=;
        b=THwVz8SOy6mz/OkOKBuUzHnyo6GZuFZ8LZR5Mf33b403GJ2SWRCCY7ahF/zK6HKFOa
         S0+6BoZ6ZY8HKsFhhvIrU9T/ffMMLSnh0r2zQrWapgl7huIGo+MxGjuP9rD8zz6sN0zZ
         CbtO8NGe/3PQvkQ8mQQt86B1tV+RQseZf3GQsNLWeaiOaJEUBV2p0rqi0PN8G1TCrTm4
         YxyOHvuR93gvdEY/ggtk9IKn0fJl0aHt8/E47AtAZTrNoh1B5wiZV0beCKhMh9qcw9K3
         qQIhM21gDgPh0Pa36431MNeegqlfasN4fG7n10bPwbxpuAFd+lbcP76ZJFQ0BCHBilea
         batg==
X-Forwarded-Encrypted: i=1; AJvYcCUI4k5zt7sm5BDX3r5MObJp7D7xOO8f3n715NmVOkGUHmd2FYlrRrwABp3PRE7pgQmXMAFeBzldo74=@lists.xenproject.org
X-Gm-Message-State: AOJu0YygkxbE8C7GTBzdxQUwtsdpPeeUiarurTrd7OWLWkL4W5QPcCQd
	b/T1hMTEkdALhyRQxSF63JALNF6SdF0r45R8aKx+kDlUHU74e9gkgX6XYn4l3knOhOc=
X-Gm-Gg: ASbGncvv86S4zk+7LtOhXJ9hAegwBbz8F5GgheVxjOlF0RJtTKwMYdQDYM12IAYC/Vb
	MWnYLa4nGL0oZwHwKpWyfZEDOlv3eRWTtDrN2VcrmSsWFsQOgbco68JmzHbN6IzRY+789VbmYO5
	/e/PzSJSL4Lz8fnVa3bIfU2CTj33V2ejnr/rwPM7VZQpLUe8gutIvtsfif/8k2B0Nqtuy6lF2oW
	4JYApCqEoM9ZsHmIKMUDH5P+0cq1+xtTs9Qlgs12QL4XSN8Cu56ccSimwEXP93k4zYrB3uRpOW1
	XXRojOHkYzSAI+PToQHNCRab5LYCA0p7LpfLx2cfMwLry+llkM1bfqnXNWS4XnJrKw7yiRL6/1r
	uwGsuRxIW6dpIxVUMlwW8gxm6FG/UoRtre1/TDh+1rWy1qLKqfdF4c2yzDyV4EmmHpg==
X-Google-Smtp-Source: AGHT+IE3hXVFSwHUYCS/ZJ1l1sTcEIfs36SyqftiZxLLEqORrL+K0wbpY8n8hyP6zVIEncxJ4fL0KA==
X-Received: by 2002:a05:600c:4f92:b0:458:b01c:8f with SMTP id 5b1f17b1804b1-45a1b60f583mr19988305e9.8.1755167753751;
        Thu, 14 Aug 2025 03:35:53 -0700 (PDT)
Date: Thu, 14 Aug 2025 12:35:52 +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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH] x86/pvh: update "Host ACPI" support status
Message-ID: <aJ28COzujqBlrov8@macbook.local>
References: <20250813093220.76030-1-roger.pau@citrix.com>
 <becdc624-7bff-4b78-94c2-2999bad114fb@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <becdc624-7bff-4b78-94c2-2999bad114fb@suse.com>

On Thu, Aug 14, 2025 at 09:21:53AM +0200, Jan Beulich wrote:
> On 13.08.2025 11:32, Roger Pau Monne wrote:
> > For x86 PVH dom0 makes uses of the host ACPI tables, and hence the status
> > of Host ACPI entry should have been updated to reflect that PVH dom0 is now
> > supported, and Host ACPI support is not one of the caveats.
> 
> Well, not explicitly, but seeing changes like 6378909b41c4 ("x86/PVH: expose
> OEMx ACPI tables to Dom0") I'm not convinced we're there yet.

How would we know when we are there?  I think listing it here means it
had some degree of testing (which it does in Gitlab CI), plus that we
will address issues and backport fixes (which to my knowledge we
already do).

AFAICT the only way x86 PVH dom0 can get it's hardware information is
from ACPI, so not listing it as supported is IMO weird, it's not like
PCI passthrough or some additional feature, without ACPI support you
cannot really boot a PVH dom0 I think.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 10:45:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 10:45:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081486.1441562 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umVSt-0006Hb-GU; Thu, 14 Aug 2025 10:45:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081486.1441562; Thu, 14 Aug 2025 10:45:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umVSt-0006HU-DP; Thu, 14 Aug 2025 10:45:47 +0000
Received: by outflank-mailman (input) for mailman id 1081486;
 Thu, 14 Aug 2025 10:45:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xqZt=22=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umVSr-0006HO-RC
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 10:45:45 +0000
Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com
 [2a00:1450:4864:20::62d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d3a9c936-78fb-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 12:45:43 +0200 (CEST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-afcb7abfc5cso136022366b.3
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 03:45: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
 a640c23a62f3a-af99518bfacsm1601378466b.72.2025.08.14.03.45.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 03:45:42 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d3a9c936-78fb-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755168343; x=1755773143; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4X7YZaUO/HkiX2tspA2ymlBcX2E4W2Q1pFBZD3QqNns=;
        b=Oc3m7ieAgK6GqukrQSij31qRYQ9Y4IxzdGNvaddLhNodwwXqkklyeJ7diNh8vyAK5o
         TcNPxoWCdDkk3NvmRgriFmVw2syeCPTOOV2smTyNW8VELR0s0gb6E3v0UVZUG57h6Rym
         Rn8TFWm94HQK0weZ1ZhgJZolfNrYVC+LWa/RC6FLfyOx4+E7PkZZWgZCFkEnJuNgS0pK
         A+ocglHvWMSugjW6cqd+79QxMtvHU9tX3fPDNXL0xhHICytNAhbZ6uzp7Wm5XGW1MQF+
         DLlvadE/b4QBvFZQQXLtce8FDR2OFzfk01X4+EUG4wcqZlJ80P6lp58HLxCEHxYvyr/K
         NX+g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755168343; x=1755773143;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4X7YZaUO/HkiX2tspA2ymlBcX2E4W2Q1pFBZD3QqNns=;
        b=pvjHU2cFwMCFyrZIn5ORGaUVOqKqdQLf+dp4zw/KWRzVbTcKlpHUuBxxa0Nd8Hk0fL
         IOzh/d0XEfVmilzIW3R902KaFR2FxzsVFqLFiv4OrUbSFjluHdk2hhhXhTu8cWe9d6zz
         OTnyRnxdiRK9/Rx3w9X4w8sWMLO+Iu+DxrgzpX5t+vJcUwatbll1EwOjYSZPGAsEgLkQ
         ohUuMeraiH3TkP9Tt/ZKZgR5Lg5QbUfObQT/k7J7irvht4OYYt8D6/6bP2oPjnxWJeZh
         4yUZ7MVv2LmCqyFBpr7HdZSd5Ijkl/y4SaaZkeUZpmD946De/nXVBQxSnZNXVbExloQf
         69lw==
X-Forwarded-Encrypted: i=1; AJvYcCXBOY+rTKJwvXAnOXl4PMgclw0nYw3vv+PaUXT4IcWihO+2w06dBNkUDjcAnecXYY5lfDIpwYq+TVU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy2a5ND6S6iCsUbR6Qpg905Z5+Ewhm+gTKzwApo79o4L1Sp8llZ
	HG2eIea4LhSNrgyrF+ySx2H20qIuld5Eqnah2aBKBj0VsMyPqZ7evlFed5B0gQp5Dg==
X-Gm-Gg: ASbGncsmJvdHO16vZTpUv14XVXTYUjrWMsx5nxViqLNT+As/+i5TqJynJiHc36bXvyA
	HBm5EiFpvlvZRReRQRpcl/cO+uB762E2pm678sBEEtR4l4aq4Z4XVKRq8kZz1fneg+qR0XKklHl
	G0ZPHN0TSvGYmvuTloWzVBPPZoLZGWMcZqHw/7dApPGEGVlmRl6Ux9o17o1fJqV6DKXW1fpH51z
	yAeJxQ4b8C+zB5+Nv55SeJ5ZrKHmvmSS0OgNrsYITTktLF5yhj9l3GJ3QbJjn6eGltpdoaf4Xsg
	nl4DdSxVMvIlYV8ZAdlWSgRtSIYOTajhVEtQ6X5A+IpEM5q9W+VvQ33dSzUZLuVx+cSeOycAo2H
	t1x19TNiLiq01Cu4eom8M9EMEJyBjGmG+2B2i167yAStobpRQdLrWauK8lVOZxDvpzHAKZoarWB
	af5Ik6ufI=
X-Google-Smtp-Source: AGHT+IEnbgOkWPxvR9bNoRyd+T+v493eyVNNvacR6UTZcdbp797BddeeMwb4iL74cpEeWjziKppQ0Q==
X-Received: by 2002:a17:906:9f85:b0:af9:5260:9ed3 with SMTP id a640c23a62f3a-afcb9799755mr223949166b.14.1755168342642;
        Thu, 14 Aug 2025 03:45:42 -0700 (PDT)
Message-ID: <3fbdd1fc-e739-42cf-892b-a561910a5693@suse.com>
Date: Thu, 14 Aug 2025 12:45:40 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] pdx: cast PAGE_SIZE value ahead of shifting
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <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>, xen-devel@lists.xenproject.org
References: <20250813125538.78174-1-roger.pau@citrix.com>
 <e644c968-ab68-49f4-801e-0f161fd85f2e@suse.com>
 <aJ26UmemwxyyTioE@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: <aJ26UmemwxyyTioE@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14.08.2025 12:28, Roger Pau MonnÃ© wrote:
> On Thu, Aug 14, 2025 at 09:18:45AM +0200, Jan Beulich wrote:
>> On 13.08.2025 14:55, Roger Pau Monne wrote:
>>> --- a/xen/common/pdx.c
>>> +++ b/xen/common/pdx.c
>>> @@ -288,7 +288,7 @@ bool __init pfn_pdx_compression_setup(paddr_t base)
>>>  
>>>      pfn_pdx_hole_shift  = hole_shift;
>>>      pfn_pdx_bottom_mask = (1UL << bottom_shift) - 1;
>>> -    ma_va_bottom_mask   = (PAGE_SIZE << bottom_shift) - 1;
>>> +    ma_va_bottom_mask   = ((paddr_t)PAGE_SIZE << bottom_shift) - 1;
>>
>> Given
>>
>> #define PAGE_SIZE           (_AC(1,L) << PAGE_SHIFT)
>>
>> this shouldn't be needed, except maybe for Arm32. There, however, ...
>>
>>>      pfn_hole_mask       = ((1UL << hole_shift) - 1) << bottom_shift;
>>
>> ... this and the shift immediately ahead would also be a problem afaict,
>> which makes me conclude this isn't what Coverity has looked at. I expect
>> the problem is with the toolstack side definition of PAGE_SIZE, which imo
>> would rather be addressed there. (And yes, I'm pretty averse to arbitrary
>> casts like this being introduced.)
> 
> As I've realized while looking at this, wouldn't ma_va_bottom_mask
> also better be of type paddr_t, since it's not operating on pfns, but
> physical addresses.  I didn't adjust the type of ma_va_bottom_mask,
> but I would be happy to do it if you agree.

No, as its name says it's also used on virtual addresses (really: offsets
into the direct map). It hence would better not have any bits set outside
of the range that VAs can cover. With that, imo the cast (if any) also
should have been to unsigned long, not paddr_t. Yet as said, im the cast
would better not be there in the first place. Just that meanwhile I've
learned that this was committed already.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 10:51:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 10:51:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081496.1441574 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umVXv-0007tF-2c; Thu, 14 Aug 2025 10:50:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081496.1441574; Thu, 14 Aug 2025 10:50: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 1umVXu-0007t8-Un; Thu, 14 Aug 2025 10:50:58 +0000
Received: by outflank-mailman (input) for mailman id 1081496;
 Thu, 14 Aug 2025 10:50:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xqZt=22=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umVXt-0007rq-K1
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 10:50:57 +0000
Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com
 [2a00:1450:4864:20::530])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8dc55806-78fc-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 12:50:55 +0200 (CEST)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-6188b6f4cf9so1148980a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 03:50: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
 4fb4d7f45d1cf-615a9115562sm24065921a12.59.2025.08.14.03.50.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 03:50: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>
X-Inumbo-ID: 8dc55806-78fc-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755168655; x=1755773455; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=aaFvGBFmR9QsPSUvWNl/jDDQEJnJqf0ZP1skBdYM9qM=;
        b=ea4+Y0XuaK5/YkfNl5S/I4B08l1qA+GDMJVnPxJBEFamkVr6J894Hcco6fX1+uPF9f
         nsY+T4NftgEdwUwzBKC5MfUe+9h+R7qJViWPkYlHBX7DbadHXtz9xe6yKMJqCN4FH/Ly
         hy54oHe6jltmvJAt7+UnB/QCfcDDBq6PxIpciVhlEKT/3S2DhQ7rO77Oq6Mrt3/y7XMk
         /gBHmjpMOGhp4Uz1OqylxB51E2L2nHcGPa8EtHQSkI0ynHehX3dvPHWQ1aE0WyBcElT7
         7y49DU0nsWG+uA/KDKrrBkaEKhG+3+f+cCxukYOLOh7INQ/X9TJQEPPdLiYXUYp/onzL
         Nlxg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755168655; x=1755773455;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=aaFvGBFmR9QsPSUvWNl/jDDQEJnJqf0ZP1skBdYM9qM=;
        b=TgOFzB7/ZU4DMhWrDDmDBLEKhUkI0F5eROnPWxoLfbDvOOFdG+Lvfn8DD5ERdp7wNj
         yvbM4viajYOz/YVxN6gvHAqZiqdWKdDXc8KZg9lw1RUXjZp0lCtONIw540AGSNLDV7mm
         c6dNH13HrzY9tq3uT3wx+6NQKM6odP8t3sG5hCsX0vcIhuX59OFO9LWmhGSn8D9/1sIf
         W8FwVeaF1tbueasYbv5/pPUd9qbAWxVpOpLpMLu/URb5fy1Ga14Airfc6MzGQZWp8kFM
         eogmtdnbSRROrEatiiZHRywJGvNLOZGj9a/RzeUsEiq/MPclHKh1/OqaL1vzubHlunNK
         +K7g==
X-Forwarded-Encrypted: i=1; AJvYcCXTn1KcC6uF7RP6E6csyXaPXA3t5QW4jj1QbBDDilFQEYLv9YZuL38Gti1a24Xou00JD8oOlsUCm9k=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyLruG/e7vmNPMsJOkYTNQ3Yt4zxGH6jgigWB4lk+hxj9WONbTk
	/n93bnJ57J5GQqFO4lESk3LT7cNeB4XfjZgxXG4la5lk7PutT51YDcG+lPhYwoOM9SdA8S0QvWq
	kyD8=
X-Gm-Gg: ASbGncsvs5MNw1BSn37PzdM1yTZF/ImwQIwc2Goib6YJ9dxUXFx60rA99OLhICuSpUI
	FnK57Dd3GMcozmCb1KYMgI3P29qXTghRZu9He3MeyMzBVqy1TTkrJjRY9te8RzsPaNmdw4voIqf
	laGN1AxFan7U01O6GsUHaZo+dNEjUFB8i0N9G8yFD9PO5S3Iwxgt/csmePt05+XEQj9eSQr8IpD
	viEBFZzA0OZ6BfoCga0qcqEbI1lVJQz3J+z46zGM1o0TlVaJEQetV2t7W4lVChy81SWK6a1pY19
	nqIMSSHxvauVdqnZ+ldJ3UXwG0GhFrtGw659+4deFVUJtJJRALpTsF5Th9gKK9cUFkye58tV6It
	CWi6HzuSs4TW0EJ4YnpckkSSzbxdWRbbG2R5QnORCKUW58e5Wv6u4pQoxPUgNi7g4i9mw67cEFF
	d6R/VbgLTl36UrigvWmw==
X-Google-Smtp-Source: AGHT+IEaeke86GYwF3TQqzSZuxZi3VU2Kw/Uz2NGYzXkXr2hls2VpQTwrI5TZ+cDXH9ocTImaZBY9A==
X-Received: by 2002:a05:6402:13d6:b0:615:98f6:78da with SMTP id 4fb4d7f45d1cf-6188ba2758fmr2395950a12.33.1755168654946;
        Thu, 14 Aug 2025 03:50:54 -0700 (PDT)
Message-ID: <626c0919-3e50-40ee-8b85-4bf267040023@suse.com>
Date: Thu, 14 Aug 2025 12:50:52 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/pvh: update "Host ACPI" support status
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <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>, xen-devel@lists.xenproject.org
References: <20250813093220.76030-1-roger.pau@citrix.com>
 <becdc624-7bff-4b78-94c2-2999bad114fb@suse.com>
 <aJ28COzujqBlrov8@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: <aJ28COzujqBlrov8@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14.08.2025 12:35, Roger Pau MonnÃ© wrote:
> On Thu, Aug 14, 2025 at 09:21:53AM +0200, Jan Beulich wrote:
>> On 13.08.2025 11:32, Roger Pau Monne wrote:
>>> For x86 PVH dom0 makes uses of the host ACPI tables, and hence the status
>>> of Host ACPI entry should have been updated to reflect that PVH dom0 is now
>>> supported, and Host ACPI support is not one of the caveats.
>>
>> Well, not explicitly, but seeing changes like 6378909b41c4 ("x86/PVH: expose
>> OEMx ACPI tables to Dom0") I'm not convinced we're there yet.
> 
> How would we know when we are there?

That's the downside of the whitelisting approach: We may make it there
temporarily, but then a new table type may break us again.

>  I think listing it here means it
> had some degree of testing (which it does in Gitlab CI), plus that we
> will address issues and backport fixes (which to my knowledge we
> already do).

We do, yes. We did already before it was supported, to encourage its use.

> AFAICT the only way x86 PVH dom0 can get it's hardware information is
> from ACPI, so not listing it as supported is IMO weird, it's not like
> PCI passthrough or some additional feature, without ACPI support you
> cannot really boot a PVH dom0 I think.

I agree. And from that angle I also agree it ought to be marked as
supported. I really don't have a good suggestion here. My concern, in
any event, shouldn't stand in the way of this going in with someone
else's ack (e.g. Stefano's, that iirc you already got). Yet I'm
hesitant to provide one myself.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 10:52:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 10:52:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081508.1441583 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umVZl-0000d4-Hl; Thu, 14 Aug 2025 10:52:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081508.1441583; Thu, 14 Aug 2025 10:52: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 1umVZl-0000cx-De; Thu, 14 Aug 2025 10:52:53 +0000
Received: by outflank-mailman (input) for mailman id 1081508;
 Thu, 14 Aug 2025 10:52:52 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xqZt=22=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umVZk-0000cr-BA
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 10:52:52 +0000
Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com
 [2a00:1450:4864:20::52c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d2df2afc-78fc-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 12:52:51 +0200 (CEST)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-6188b794743so1354377a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 03:52:51 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a21c076sm2541282366b.102.2025.08.14.03.52.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 03:52: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>
X-Inumbo-ID: d2df2afc-78fc-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755168771; x=1755773571; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=lezYT3SvZLzF4P9U0wTJrL9LXUkMsne2pf9H833LEtE=;
        b=TwM9Rd6kWvIGYNYMw2zNH3lWKhXFvqOBAliYxXD4XSG5ZDDvU2/aThXyeI2lnplU5H
         rLFxNSkQHYBhNYfeTSqog1HfriDDlCew7tAbKsJhcT3WjQdgptOgIBfoLPQmhD1vZfoJ
         3/KVuJ9Qxoq0G2PwwwngfJ/9zgw/v1sbqmq8Ce3uIRjMy8m2fgBxESGrTi0i0lxU4ggH
         DeHekCEqd/RSlbSm0G62qu5efKL5m7DBaHkqAgqEfpACorxxMB/PCsqP2W33xjcw9RNn
         /H1HMaaf6b2UCiBSKce3cGwnCdDIOBGGuon+INO+2ZXm99nYnzvxC/4bq43rDn3MctZ1
         2kzA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755168771; x=1755773571;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lezYT3SvZLzF4P9U0wTJrL9LXUkMsne2pf9H833LEtE=;
        b=DWqxm2eEXt4cPOtihGEe9whSI5kdZDKQZ3P64TU9Qm6/oRzMDS+c6WXnw0/Qgxn7dB
         FEBAmKpiptV5stz2NuRSUGtbb5eZQYMrpxCeQ2nxwBiSrFXUsFMNIFKG0ss00/dqVwiU
         Tslp/cYLw+hFmOmPYkfkLQI08Ox2sgmeox6Dw8I4zhLWP6RvAKv4GR5R798R1LXqktpi
         qad07EsB7akL9P9P3VQVUjViM1lk0Kt4XICBIUujsMMAHrU51Jo9/OZzXqHtLJZZHuke
         5VtEWh7+OXG5fQonBS//4VD9n5WO5gQU8/wcqUoMOhlDpOqjiQ7tdlVNKmXr4zD2bX07
         yBKg==
X-Forwarded-Encrypted: i=1; AJvYcCXcPMwoe/ltAqNxAbI3fVYHH8JOL4fDUoGmcsXtyYFqq1F/BbToadBHIeQc2rGnQt0mmDykra+eYBw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwxjrilHsV+nbf8UJk3PkwIMUNFdQiRQRD8kgYybyyGtcSKAlJt
	BRBR7rggPjK3T9UEBexSMgxcFk359lbQTgzxfMbm+1w5R8gom/c8dwZNS2Zo3pkHmg==
X-Gm-Gg: ASbGncsHwcze0eWVyvCIbo+1jCdQkLNtNYl+CfrDDjTbnAqyNCUiF6gxAg067NzuDOu
	U3y2WwK5d4UoanA1VDL8ROn1J7xMfSAKq2XaS1VbrfRRjBQZkjWZ/2xWe2fI6x7lKj793rydVJL
	s+51W38Viknz8+u9O5sRITwb+xEfgQPm4OF/ZRPM8DRNb5tGqO4o5nYnDIEBABcr02Sjpj+ePk3
	rd9lpb8ceB5XgXnOC42wmtEECwDnI2qOao3FCZ1HNfGcQU4YxQh8UeRxvAgABB4HyCp+HuHKoOb
	s6rDsZowep3gH7El2Y7y+YbwQZn4GVyd3ajczV4gAVkCvSKGUm1NzxSwBQOjGhcwe4Vl1C7Psde
	t26DITwfk09eUjgy/Z8jRkq6fs4d6+66uEc0q4sY6K4nifAY+UGLTgNkQY+WQ2mhZZx2ytBDnDq
	d71U5oyFkzGW1DnQc+Ag==
X-Google-Smtp-Source: AGHT+IG94TTioTDYCC10AAycrh0spbCdqsT4AIiNxfTLkdHgsL6jgK5mHp6VPzGqjSQ6ZMpYkbNydQ==
X-Received: by 2002:a17:906:f5aa:b0:afa:1d2c:2dc7 with SMTP id a640c23a62f3a-afcb9a46654mr277385166b.57.1755168770806;
        Thu, 14 Aug 2025 03:52:50 -0700 (PDT)
Message-ID: <50b2b50a-da3a-44f9-9fea-10e2426ad0e6@suse.com>
Date: Thu, 14 Aug 2025 12:52:48 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 10/22] x86/traps: Move subarch_percpu_traps_init() into
 traps-setup.c
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-11-andrew.cooper3@citrix.com>
 <646c538a-850a-4370-8132-c06d9be8b422@citrix.com>
 <769ba73f-b490-43db-a056-fc1d95ec9f27@suse.com>
 <3ff00f71-b16e-4426-98f5-27bc6f6b92cf@citrix.com>
 <d1a309bc-dc90-4383-a844-ebb9b668e0d2@suse.com>
 <fe98713c-664d-4e68-8cf5-eeb23e694c46@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: <fe98713c-664d-4e68-8cf5-eeb23e694c46@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14.08.2025 12:17, Andrew Cooper wrote:
> On 14/08/2025 9:58 am, Jan Beulich wrote:
>> On 13.08.2025 13:53, Andrew Cooper wrote:
>>> On 12/08/2025 10:52 am, Jan Beulich wrote:
>>>> On 11.08.2025 10:17, Andrew Cooper wrote:
>>>>> On 08/08/2025 9:23 pm, Andrew Cooper wrote:
>>>>>> ... along with the supporting functions.  Switch to Xen coding style, and make
>>>>>> static as there are no external callers.
>>>>>>
>>>>>> Rename to legacy_syscall_init() as a more accurate name.
>>>>>>
>>>>>> No functional change.
>>>>>>
>>>>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>>>>> ---
>>>>>> CC: Jan Beulich <JBeulich@suse.com>
>>>>>> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
>>>>>> ---
>>>>>>  xen/arch/x86/include/asm/system.h |  2 -
>>>>>>  xen/arch/x86/traps-setup.c        | 97 ++++++++++++++++++++++++++++++-
>>>>>>  xen/arch/x86/x86_64/traps.c       | 92 -----------------------------
>>>>>>  3 files changed, 95 insertions(+), 96 deletions(-)
>>>>>>
>>>>>> diff --git a/xen/arch/x86/include/asm/system.h b/xen/arch/x86/include/asm/system.h
>>>>>> index 3cdc56e4ba6d..6c2800d8158d 100644
>>>>>> --- a/xen/arch/x86/include/asm/system.h
>>>>>> +++ b/xen/arch/x86/include/asm/system.h
>>>>>> @@ -256,6 +256,4 @@ static inline int local_irq_is_enabled(void)
>>>>>>  #define BROKEN_ACPI_Sx          0x0001
>>>>>>  #define BROKEN_INIT_AFTER_S1    0x0002
>>>>>>  
>>>>>> -void subarch_percpu_traps_init(void);
>>>>>> -
>>>>>>  #endif
>>>>>> diff --git a/xen/arch/x86/traps-setup.c b/xen/arch/x86/traps-setup.c
>>>>>> index 13b8fcf0ba51..fbae7072c292 100644
>>>>>> --- a/xen/arch/x86/traps-setup.c
>>>>>> +++ b/xen/arch/x86/traps-setup.c
>>>>>> @@ -2,13 +2,15 @@
>>>>>>  /*
>>>>>>   * Configuration of event handling for all CPUs.
>>>>>>   */
>>>>>> +#include <xen/domain_page.h>
>>>>>>  #include <xen/init.h>
>>>>>>  #include <xen/param.h>
>>>>>>  
>>>>>> +#include <asm/endbr.h>
>>>>>>  #include <asm/idt.h>
>>>>>>  #include <asm/msr.h>
>>>>>>  #include <asm/shstk.h>
>>>>>> -#include <asm/system.h>
>>>>>> +#include <asm/stubs.h>
>>>>>>  #include <asm/traps.h>
>>>>>>  
>>>>>>  DEFINE_PER_CPU_READ_MOSTLY(idt_entry_t *, idt);
>>>>>> @@ -19,6 +21,8 @@ static bool __initdata opt_ler;
>>>>>>  boolean_param("ler", opt_ler);
>>>>>>  
>>>>>>  void nocall entry_PF(void);
>>>>>> +void nocall lstar_enter(void);
>>>>>> +void nocall cstar_enter(void);
>>>>>>  
>>>>>>  /*
>>>>>>   * Sets up system tables and descriptors for IDT devliery.
>>>>>> @@ -138,6 +142,95 @@ static void load_system_tables(void)
>>>>>>      BUG_ON(stack_bottom & 15);
>>>>>>  }
>>>>>>  
>>>>>> +static unsigned int write_stub_trampoline(
>>>>>> +    unsigned char *stub, unsigned long stub_va,
>>>>>> +    unsigned long stack_bottom, unsigned long target_va)
>>>>>> +{
>>>>>> +    unsigned char *p = stub;
>>>>>> +
>>>>>> +    if ( cpu_has_xen_ibt )
>>>>>> +    {
>>>>>> +        place_endbr64(p);
>>>>>> +        p += 4;
>>>>>> +    }
>>>>>> +
>>>>>> +    /* Store guest %rax into %ss slot */
>>>>>> +    /* movabsq %rax, stack_bottom - 8 */
>>>>>> +    *p++ = 0x48;
>>>>>> +    *p++ = 0xa3;
>>>>>> +    *(uint64_t *)p = stack_bottom - 8;
>>>>>> +    p += 8;
>>>>>> +
>>>>>> +    /* Store guest %rsp in %rax */
>>>>>> +    /* movq %rsp, %rax */
>>>>>> +    *p++ = 0x48;
>>>>>> +    *p++ = 0x89;
>>>>>> +    *p++ = 0xe0;
>>>>>> +
>>>>>> +    /* Switch to Xen stack */
>>>>>> +    /* movabsq $stack_bottom - 8, %rsp */
>>>>>> +    *p++ = 0x48;
>>>>>> +    *p++ = 0xbc;
>>>>>> +    *(uint64_t *)p = stack_bottom - 8;
>>>>>> +    p += 8;
>>>>>> +
>>>>>> +    /* jmp target_va */
>>>>>> +    *p++ = 0xe9;
>>>>>> +    *(int32_t *)p = target_va - (stub_va + (p - stub) + 4);
>>>>>> +    p += 4;
>>>>>> +
>>>>>> +    /* Round up to a multiple of 16 bytes. */
>>>>>> +    return ROUNDUP(p - stub, 16);
>>>>>> +}
>>>>>> +
>>>>>> +static void legacy_syscall_init(void)
>>>>>> +{
>>>>>> +    unsigned long stack_bottom = get_stack_bottom();
>>>>>> +    unsigned long stub_va = this_cpu(stubs.addr);
>>>>>> +    unsigned char *stub_page;
>>>>>> +    unsigned int offset;
>>>>>> +
>>>>>> +    /* No PV guests?  No need to set up SYSCALL/SYSENTER infrastructure. */
>>>>>> +    if ( !IS_ENABLED(CONFIG_PV) )
>>>>>> +        return;
>>>>>> +
>>>>>> +    stub_page = map_domain_page(_mfn(this_cpu(stubs.mfn)));
>>>>>> +
>>>>>> +    /*
>>>>>> +     * Trampoline for SYSCALL entry from 64-bit mode.  The VT-x HVM vcpu
>>>>>> +     * context switch logic relies on the SYSCALL trampoline being at the
>>>>>> +     * start of the stubs.
>>>>>> +     */
>>>>>> +    wrmsrl(MSR_LSTAR, stub_va);
>>>>>> +    offset = write_stub_trampoline(stub_page + (stub_va & ~PAGE_MASK),
>>>>>> +                                   stub_va, stack_bottom,
>>>>>> +                                   (unsigned long)lstar_enter);
>>>>>> +    stub_va += offset;
>>>>>> +
>>>>>> +    if ( cpu_has_sep )
>>>>>> +    {
>>>>>> +        /* SYSENTER entry. */
>>>>>> +        wrmsrl(MSR_IA32_SYSENTER_ESP, stack_bottom);
>>>>>> +        wrmsrl(MSR_IA32_SYSENTER_EIP, (unsigned long)sysenter_entry);
>>>>>> +        wrmsr(MSR_IA32_SYSENTER_CS, __HYPERVISOR_CS, 0);
>>>>>> +    }
>>>>>> +
>>>>>> +    /* Trampoline for SYSCALL entry from compatibility mode. */
>>>>>> +    wrmsrl(MSR_CSTAR, stub_va);
>>>>>> +    offset += write_stub_trampoline(stub_page + (stub_va & ~PAGE_MASK),
>>>>>> +                                    stub_va, stack_bottom,
>>>>>> +                                    (unsigned long)cstar_enter);
>>>>>> +
>>>>>> +    /* Don't consume more than half of the stub space here. */
>>>>>> +    ASSERT(offset <= STUB_BUF_SIZE / 2);
>>>>>> +
>>>>>> +    unmap_domain_page(stub_page);
>>>>>> +
>>>>>> +    /* Common SYSCALL parameters. */
>>>>>> +    wrmsrl(MSR_STAR, XEN_MSR_STAR);
>>>>>> +    wrmsrl(MSR_SYSCALL_MASK, XEN_SYSCALL_MASK);
>>>>>> +}
>>>>> These want adjusting to use wrmsrns(), similarly to the previous patch.Â 
>>>>> Fixed locally.
>>>> Also the one higher in the function, I suppose.
>>> All of them.
>>>
>>> I'm not aware of anywhere were we want serialising behaviour, except for
>>> ICR which is buggly non-serialising and has workarounds.
>>>
>>> But I'm also not sure enough of this to suggest that we make wrmsr() be
>>> wrmsrns() by default.
>> I'm pretty sure we don't want this. If nothing else then to avoid code bloat
>> for MSR writes which are non-serializing even in the original form.
> 
> Even that's complicated.
> 
> For FRED, FS/GS_BASE/KERN need changes because the lack of SWAPGS forces
> MSR accesses even if we do have FSGSBASE active.
> 
> Writes to these were made non-serialising in Zen2 and later, but are
> still serialising on Intel.Â  i.e. they need converting to WRMSRNS even
> though plain WRMSR would be "fine" on all AMD systems (either because
> it's the only option, or because it's non-serialising).

Right, such would need converting. But x2APIC MSR accesses, for example,
should have a need.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 11:02:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 11:02:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081520.1441593 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umVig-0003ub-Ae; Thu, 14 Aug 2025 11:02:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081520.1441593; Thu, 14 Aug 2025 11:02:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umVig-0003uU-7l; Thu, 14 Aug 2025 11:02:06 +0000
Received: by outflank-mailman (input) for mailman id 1081520;
 Thu, 14 Aug 2025 11:02:05 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mOIo=22=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1umVif-0003uI-08
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 11:02:05 +0000
Received: from mail-wr1-x42a.google.com (mail-wr1-x42a.google.com
 [2a00:1450:4864:20::42a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1bf50583-78fe-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 13:02:03 +0200 (CEST)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-3b9dc5c6521so396879f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 04:02:03 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3b9163ae600sm6644967f8f.5.2025.08.14.04.02.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 04:02: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>
X-Inumbo-ID: 1bf50583-78fe-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755169323; x=1755774123; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=mQQ7VI1tJTL47IzSoPmOTAxzi9swZizhJZ/DqZK1fs4=;
        b=aqtD0jHlIQZimcIeH/TkqcfLEkPGLEkRG8ej3QxMkN6NZyFkPFvYetPU4Igug63rm1
         OE9xwOPul337G4XZu6sOZwSPyi4ZjtgREyAmQtdgVSaaXCcGuaWxToI0VF5LysurZNX1
         JEcUJ/ZRl9CgpTGLpCmFgOhcigPpu3JzEuZiQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755169323; x=1755774123;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mQQ7VI1tJTL47IzSoPmOTAxzi9swZizhJZ/DqZK1fs4=;
        b=NCagEuihPN7o33QYBzBynesuOyh5CeYoIC1h9RFlYkdM/pfPEW4paAqBwIw9QV4WZa
         FLybM4qg2B7recK8MiO59ecKq6qMI67nr9+Z22kbrXJW2YNi5Com9oLd6Bs/teHt8XT4
         2F4gZM3wMdL9JynvlsevPkSdt2RiOvakBhyacyyZ/UdFKZgiQVkbbZV9joa07129yT2U
         bZDPche6pAlQfY4VtCRN4FljV1tOhFI/B+NjhK6auurcxj+HYFOM77vIzBuoDbJCVkAE
         tehtOM8OXGOAkpM18hWfwLDAtKAlHuE/ADcdf51Xs+gIInOBKyRxzShpeNk486Fxxn0y
         /YTA==
X-Forwarded-Encrypted: i=1; AJvYcCVv+Ri17kNzMsGkSGIee+p0NWlgDZoYFkOsIocJexPQZVT2fc34sPZo8yVF56g4QAJz+IGPSd3kjAg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyNvQ/L+2jDSBHeR+KAZfo7hbFbzWz6M9EKkextaEPrCY3cz/hi
	uww1x0tYKX4+cHnIrU51syP4/Nyh8OobVQblCX/FOHbbd0kZWa2JJbL6lkRxYp6BTsM=
X-Gm-Gg: ASbGncsNI5hBE+TlNnjnXWPJqrmR2BK+G2Y76S54/hsgHHoK0CWhKuI3zx2C3CZJp6j
	6BVlIZFb4Vwc3CLYNEAKBMiRRHTM/WW8I0zOYElVc0Ly9XBWskgjBWRZdYJk+4AGw7Btipqexrp
	z+KIEBF1L4os5IwQiESHNAzf3IfzYMUEpDURsj4KByuV8shBmU61uzq1jBHyQzzWNyvt/J14X0u
	43wSZny3k2eg2jJfBd1k7qJRIyBX8sSrLkMbAjlHXTFyZvyb0pV0MTRE5pSB4IHo9lDxFt5Rvsc
	CTNfgsxIcia32V46bVbyk5ZwyG5qQAYcnCDHcl2juzIazxC+SvlKHFv3D+Oj9MuDH/JduuHYHMA
	p4FtBsIcxOB6ARPeVtQ529yqI5mbcuM3erfTUm2F8Egrupb2+dVp5iPkZXawnNCFtjyo5
X-Google-Smtp-Source: AGHT+IHDxFlbpYRSr7uLDqi4zy0OYrGQ9pgiyD67TRg8VOOkgJPcdI1qCjv7jDxMNx3vi/eIZUZm/A==
X-Received: by 2002:a05:6000:25c6:b0:3a5:1cc5:aa6f with SMTP id ffacd0b85a97d-3b9fc32e43dmr2116996f8f.34.1755169322799;
        Thu, 14 Aug 2025 04:02:02 -0700 (PDT)
Message-ID: <e9d2e3e4-1716-43ba-96e6-a1b5525cf3f5@citrix.com>
Date: Thu, 14 Aug 2025 12:02:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 10/22] x86/traps: Move subarch_percpu_traps_init() into
 traps-setup.c
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-11-andrew.cooper3@citrix.com>
 <646c538a-850a-4370-8132-c06d9be8b422@citrix.com>
 <769ba73f-b490-43db-a056-fc1d95ec9f27@suse.com>
 <3ff00f71-b16e-4426-98f5-27bc6f6b92cf@citrix.com>
 <d1a309bc-dc90-4383-a844-ebb9b668e0d2@suse.com>
 <fe98713c-664d-4e68-8cf5-eeb23e694c46@citrix.com>
 <50b2b50a-da3a-44f9-9fea-10e2426ad0e6@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: <50b2b50a-da3a-44f9-9fea-10e2426ad0e6@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14/08/2025 11:52 am, Jan Beulich wrote:
> On 14.08.2025 12:17, Andrew Cooper wrote:
>> On 14/08/2025 9:58 am, Jan Beulich wrote:
>>> On 13.08.2025 13:53, Andrew Cooper wrote:
>>>> On 12/08/2025 10:52 am, Jan Beulich wrote:
>>>>> On 11.08.2025 10:17, Andrew Cooper wrote:
>>>>>> On 08/08/2025 9:23 pm, Andrew Cooper wrote:
>>>>>>> ... along with the supporting functions.  Switch to Xen coding style, and make
>>>>>>> static as there are no external callers.
>>>>>>>
>>>>>>> Rename to legacy_syscall_init() as a more accurate name.
>>>>>>>
>>>>>>> No functional change.
>>>>>>>
>>>>>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>>>>>> ---
>>>>>>> CC: Jan Beulich <JBeulich@suse.com>
>>>>>>> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
>>>>>>> ---
>>>>>>>  xen/arch/x86/include/asm/system.h |  2 -
>>>>>>>  xen/arch/x86/traps-setup.c        | 97 ++++++++++++++++++++++++++++++-
>>>>>>>  xen/arch/x86/x86_64/traps.c       | 92 -----------------------------
>>>>>>>  3 files changed, 95 insertions(+), 96 deletions(-)
>>>>>>>
>>>>>>> diff --git a/xen/arch/x86/include/asm/system.h b/xen/arch/x86/include/asm/system.h
>>>>>>> index 3cdc56e4ba6d..6c2800d8158d 100644
>>>>>>> --- a/xen/arch/x86/include/asm/system.h
>>>>>>> +++ b/xen/arch/x86/include/asm/system.h
>>>>>>> @@ -256,6 +256,4 @@ static inline int local_irq_is_enabled(void)
>>>>>>>  #define BROKEN_ACPI_Sx          0x0001
>>>>>>>  #define BROKEN_INIT_AFTER_S1    0x0002
>>>>>>>  
>>>>>>> -void subarch_percpu_traps_init(void);
>>>>>>> -
>>>>>>>  #endif
>>>>>>> diff --git a/xen/arch/x86/traps-setup.c b/xen/arch/x86/traps-setup.c
>>>>>>> index 13b8fcf0ba51..fbae7072c292 100644
>>>>>>> --- a/xen/arch/x86/traps-setup.c
>>>>>>> +++ b/xen/arch/x86/traps-setup.c
>>>>>>> @@ -2,13 +2,15 @@
>>>>>>>  /*
>>>>>>>   * Configuration of event handling for all CPUs.
>>>>>>>   */
>>>>>>> +#include <xen/domain_page.h>
>>>>>>>  #include <xen/init.h>
>>>>>>>  #include <xen/param.h>
>>>>>>>  
>>>>>>> +#include <asm/endbr.h>
>>>>>>>  #include <asm/idt.h>
>>>>>>>  #include <asm/msr.h>
>>>>>>>  #include <asm/shstk.h>
>>>>>>> -#include <asm/system.h>
>>>>>>> +#include <asm/stubs.h>
>>>>>>>  #include <asm/traps.h>
>>>>>>>  
>>>>>>>  DEFINE_PER_CPU_READ_MOSTLY(idt_entry_t *, idt);
>>>>>>> @@ -19,6 +21,8 @@ static bool __initdata opt_ler;
>>>>>>>  boolean_param("ler", opt_ler);
>>>>>>>  
>>>>>>>  void nocall entry_PF(void);
>>>>>>> +void nocall lstar_enter(void);
>>>>>>> +void nocall cstar_enter(void);
>>>>>>>  
>>>>>>>  /*
>>>>>>>   * Sets up system tables and descriptors for IDT devliery.
>>>>>>> @@ -138,6 +142,95 @@ static void load_system_tables(void)
>>>>>>>      BUG_ON(stack_bottom & 15);
>>>>>>>  }
>>>>>>>  
>>>>>>> +static unsigned int write_stub_trampoline(
>>>>>>> +    unsigned char *stub, unsigned long stub_va,
>>>>>>> +    unsigned long stack_bottom, unsigned long target_va)
>>>>>>> +{
>>>>>>> +    unsigned char *p = stub;
>>>>>>> +
>>>>>>> +    if ( cpu_has_xen_ibt )
>>>>>>> +    {
>>>>>>> +        place_endbr64(p);
>>>>>>> +        p += 4;
>>>>>>> +    }
>>>>>>> +
>>>>>>> +    /* Store guest %rax into %ss slot */
>>>>>>> +    /* movabsq %rax, stack_bottom - 8 */
>>>>>>> +    *p++ = 0x48;
>>>>>>> +    *p++ = 0xa3;
>>>>>>> +    *(uint64_t *)p = stack_bottom - 8;
>>>>>>> +    p += 8;
>>>>>>> +
>>>>>>> +    /* Store guest %rsp in %rax */
>>>>>>> +    /* movq %rsp, %rax */
>>>>>>> +    *p++ = 0x48;
>>>>>>> +    *p++ = 0x89;
>>>>>>> +    *p++ = 0xe0;
>>>>>>> +
>>>>>>> +    /* Switch to Xen stack */
>>>>>>> +    /* movabsq $stack_bottom - 8, %rsp */
>>>>>>> +    *p++ = 0x48;
>>>>>>> +    *p++ = 0xbc;
>>>>>>> +    *(uint64_t *)p = stack_bottom - 8;
>>>>>>> +    p += 8;
>>>>>>> +
>>>>>>> +    /* jmp target_va */
>>>>>>> +    *p++ = 0xe9;
>>>>>>> +    *(int32_t *)p = target_va - (stub_va + (p - stub) + 4);
>>>>>>> +    p += 4;
>>>>>>> +
>>>>>>> +    /* Round up to a multiple of 16 bytes. */
>>>>>>> +    return ROUNDUP(p - stub, 16);
>>>>>>> +}
>>>>>>> +
>>>>>>> +static void legacy_syscall_init(void)
>>>>>>> +{
>>>>>>> +    unsigned long stack_bottom = get_stack_bottom();
>>>>>>> +    unsigned long stub_va = this_cpu(stubs.addr);
>>>>>>> +    unsigned char *stub_page;
>>>>>>> +    unsigned int offset;
>>>>>>> +
>>>>>>> +    /* No PV guests?  No need to set up SYSCALL/SYSENTER infrastructure. */
>>>>>>> +    if ( !IS_ENABLED(CONFIG_PV) )
>>>>>>> +        return;
>>>>>>> +
>>>>>>> +    stub_page = map_domain_page(_mfn(this_cpu(stubs.mfn)));
>>>>>>> +
>>>>>>> +    /*
>>>>>>> +     * Trampoline for SYSCALL entry from 64-bit mode.  The VT-x HVM vcpu
>>>>>>> +     * context switch logic relies on the SYSCALL trampoline being at the
>>>>>>> +     * start of the stubs.
>>>>>>> +     */
>>>>>>> +    wrmsrl(MSR_LSTAR, stub_va);
>>>>>>> +    offset = write_stub_trampoline(stub_page + (stub_va & ~PAGE_MASK),
>>>>>>> +                                   stub_va, stack_bottom,
>>>>>>> +                                   (unsigned long)lstar_enter);
>>>>>>> +    stub_va += offset;
>>>>>>> +
>>>>>>> +    if ( cpu_has_sep )
>>>>>>> +    {
>>>>>>> +        /* SYSENTER entry. */
>>>>>>> +        wrmsrl(MSR_IA32_SYSENTER_ESP, stack_bottom);
>>>>>>> +        wrmsrl(MSR_IA32_SYSENTER_EIP, (unsigned long)sysenter_entry);
>>>>>>> +        wrmsr(MSR_IA32_SYSENTER_CS, __HYPERVISOR_CS, 0);
>>>>>>> +    }
>>>>>>> +
>>>>>>> +    /* Trampoline for SYSCALL entry from compatibility mode. */
>>>>>>> +    wrmsrl(MSR_CSTAR, stub_va);
>>>>>>> +    offset += write_stub_trampoline(stub_page + (stub_va & ~PAGE_MASK),
>>>>>>> +                                    stub_va, stack_bottom,
>>>>>>> +                                    (unsigned long)cstar_enter);
>>>>>>> +
>>>>>>> +    /* Don't consume more than half of the stub space here. */
>>>>>>> +    ASSERT(offset <= STUB_BUF_SIZE / 2);
>>>>>>> +
>>>>>>> +    unmap_domain_page(stub_page);
>>>>>>> +
>>>>>>> +    /* Common SYSCALL parameters. */
>>>>>>> +    wrmsrl(MSR_STAR, XEN_MSR_STAR);
>>>>>>> +    wrmsrl(MSR_SYSCALL_MASK, XEN_SYSCALL_MASK);
>>>>>>> +}
>>>>>> These want adjusting to use wrmsrns(), similarly to the previous patch.Â 
>>>>>> Fixed locally.
>>>>> Also the one higher in the function, I suppose.
>>>> All of them.
>>>>
>>>> I'm not aware of anywhere were we want serialising behaviour, except for
>>>> ICR which is buggly non-serialising and has workarounds.
>>>>
>>>> But I'm also not sure enough of this to suggest that we make wrmsr() be
>>>> wrmsrns() by default.
>>> I'm pretty sure we don't want this. If nothing else then to avoid code bloat
>>> for MSR writes which are non-serializing even in the original form.
>> Even that's complicated.
>>
>> For FRED, FS/GS_BASE/KERN need changes because the lack of SWAPGS forces
>> MSR accesses even if we do have FSGSBASE active.
>>
>> Writes to these were made non-serialising in Zen2 and later, but are
>> still serialising on Intel.Â  i.e. they need converting to WRMSRNS even
>> though plain WRMSR would be "fine" on all AMD systems (either because
>> it's the only option, or because it's non-serialising).
> Right, such would need converting. But x2APIC MSR accesses, for example,
> should have a need.

For serialising-ness, yes, but they still want to be MSR_IMM when
available, at which point the code bloat price is already paid.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 11:21:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 11:21:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081530.1441602 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umW0x-0001nH-RO; Thu, 14 Aug 2025 11:20:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081530.1441602; Thu, 14 Aug 2025 11:20:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umW0x-0001nA-OB; Thu, 14 Aug 2025 11:20:59 +0000
Received: by outflank-mailman (input) for mailman id 1081530;
 Thu, 14 Aug 2025 11:20:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xqZt=22=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umW0w-0001lk-7F
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 11:20:58 +0000
Received: from mail-ej1-x62e.google.com (mail-ej1-x62e.google.com
 [2a00:1450:4864:20::62e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bf1df41b-7900-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 13:20:56 +0200 (CEST)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-afcb7a0442bso136683266b.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 04:20: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
 a640c23a62f3a-af91a0a3149sm2565093466b.38.2025.08.14.04.20.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 04:20:55 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bf1df41b-7900-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755170456; x=1755775256; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=6fc/wb4jrsgoIo5YDPeTh8g1djNMjtrG7jQODLitUpI=;
        b=dZNv/4D71ZZ4xHkfmXFFYosh6BDhoiuXJ/1nvjr4wESYrt/lwf5dkrm3Nt8muqeZzh
         +MZ+InExjCp7oWP+Ez4iEcmI1ISGFumPqwYNt70A/m8wJx7fTOdTp6bYcdm6u8wl0UvN
         +6hvw5+Zqg064aKRe1p3ok/4QZmDk3x40EYuevKP4pm/N3NbITqYrOZzgrd+UkIpQELE
         /WZ6nw4vxFsHQ6Wc2S0DqQfbamVu8RFooOQwr19mE2f5u29JWhACp1KikBlrVc6QQnco
         kYWfFtcruexobTfqno4YSLi1lTjBgsv6WxBXperww+ULeZQHExWeHiGeO1CIWHy8AEY8
         ekmQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755170456; x=1755775256;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6fc/wb4jrsgoIo5YDPeTh8g1djNMjtrG7jQODLitUpI=;
        b=Dsp4Q19idNroaywB5b01omQXv6slaSlA+rY7v7J66imreduAOmdqspUeaZLfHAQAdt
         bNzziZNvN/aA6+Q2wGkAarPDHEwibXLcokb26PuzK61Lx6T/j2TJJSL61VFhnTZ9TGrR
         pXFhqJUoF+bCQUWo/9/QN3TE0JdBBcqxWWkDQvpoFoz2TEH4FPfLZGbVDu4TVt9isR6j
         bzC8PbG0drZPidzSGicu2ADPJxfb/uaMWjVQbUkoLTGpkDm0DhlzIZHgrCWSmBvDozfV
         JkqfihVd2R/cKBgFtZuNtOHCwEViGGuleq7e3rEj9pJIJSU8EmAQBmFgNegJIi81iMOZ
         XC9w==
X-Forwarded-Encrypted: i=1; AJvYcCU6APnqyxHGYsro44fZM7Ho5XNEFf3hhhekdRj20K9Pnh7gp111AXz1n7sMgDh0wpYKBNgYMeFnYCg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxHMTvXAElmzeg7lWyP3NKZ3n7eXpY4PDRo3sjlsD9+07mxAstF
	ohG4YMeqpCJBit3PIl6px5/HAkq/a38smSdXgnx5ik8VE6HStc15zz7wByMtZbRm6A==
X-Gm-Gg: ASbGncs4+6B+dleRn1tERcvrLqHTSbNldvuKyDPyDB14BALXWtGTMET8uZxunX+JORK
	+FPw9quFZJYZ6bqLQcrdfTmOUMIUJ8/kVGx1fao8yLKWuFgabTo6tMdM+zQvSCTjlRz9DL0fkEg
	XhZtGxgXfV3kcYHnCRtjdEC91dtt20pAnI1rIRPnZmTkRktHL6wCYOn0Hr1C8IfnRZwh5z6W2v5
	Hvu8SXVkWBP9pQZp8U7zL7w8T9G+pDcbsGUTZsBqTWagdkkSh13erPFoPxru9PgMt737Z1/JesE
	w5NdVZfvVqDkygm3Mu5ogtZOqdO7haQ0oV9yUxdio0wmHCjlICMgpe/hsbGLRXltJ6/xdYpcD2x
	O5BUwMZpZLJuUXM5sMz4+mZWC/kGaief/IT+X01gCFmXpq2Xta1ywx2FrWrF+yujBNHFby17+ZZ
	23HhERhes=
X-Google-Smtp-Source: AGHT+IFOjE/rJ5EAckCS6Ta36o/7jIoiuqtDOAcWmTxCSt4CWTEE2XsFR8Q3uanLF37d+oK7Eu7UPg==
X-Received: by 2002:a17:907:3d91:b0:af9:c1f7:802 with SMTP id a640c23a62f3a-afcb98c0a88mr266773766b.31.1755170455618;
        Thu, 14 Aug 2025 04:20:55 -0700 (PDT)
Message-ID: <9b4da5b3-dd68-4052-92cc-fe322164eaa5@suse.com>
Date: Thu, 14 Aug 2025 13:20:53 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 13/22] x86: FRED enumerations
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-14-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: <20250808202314.1045968-14-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.08.2025 22:23, Andrew Cooper wrote:
> Of note, CR4.FRED is bit 32 and cannot enabled outside of 64bit mode.
> 
> Most supported toolchains don't understand the FRED instructions yet.  ERETU
> and ERETS are easy to wrap (they encoded as REPZ/REPNE CLAC), while LKGS is
> more complicated and deferred for now.
> 
> I have intentionally named the FRED MSRs differently to the spec.  In the
> spec, the stack pointer names alias the TSS fields of the same name, despite
> very different semantics.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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

> --- a/xen/arch/x86/Kconfig
> +++ b/xen/arch/x86/Kconfig
> @@ -57,6 +57,10 @@ config HAS_CC_CET_IBT
>  	# Retpoline check to work around https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93654
>  	def_bool $(cc-option,-fcf-protection=branch -mmanual-endbr -mindirect-branch=thunk-extern) && $(as-instr,endbr64)
>  
> +config HAS_AS_FRED
> +	# binutils >= 2.41 or LLVM >= 19
> +	def_bool $(as-instr,eretu;lkgs %ax)

..., as per your reply, this preferably dropped (without me insisting), and
with ...

> --- a/xen/arch/x86/include/asm/x86-defns.h
> +++ b/xen/arch/x86/include/asm/x86-defns.h
> @@ -75,6 +75,7 @@
>  #define X86_CR4_PKE        0x00400000 /* enable PKE */
>  #define X86_CR4_CET        0x00800000 /* Control-flow Enforcement Technology */
>  #define X86_CR4_PKS        0x01000000 /* Protection Key Supervisor */
> +#define X86_CR4_FRED      0x100000000 /* Fast Return and Event Delivery */

... a UL suffix added here for Misra.

> --- a/xen/include/public/arch-x86/cpufeatureset.h
> +++ b/xen/include/public/arch-x86/cpufeatureset.h
> @@ -310,7 +310,10 @@ XEN_CPUFEATURE(ARCH_PERF_MON, 10*32+8) /*   Architectural Perfmon */
>  XEN_CPUFEATURE(FZRM,         10*32+10) /*A  Fast Zero-length REP MOVSB */
>  XEN_CPUFEATURE(FSRS,         10*32+11) /*A  Fast Short REP STOSB */
>  XEN_CPUFEATURE(FSRCS,        10*32+12) /*A  Fast Short REP CMPSB/SCASB */
> +XEN_CPUFEATURE(FRED,         10*32+17) /*   Fast Return and Event Delivery */
> +XEN_CPUFEATURE(LKGS,         10*32+18) /*   Load Kernel GS instruction */
>  XEN_CPUFEATURE(WRMSRNS,      10*32+19) /*S  WRMSR Non-Serialising */
> +XEN_CPUFEATURE(NMI_SRC,      10*32+20) /*   NMI-Source Reporting */
>  XEN_CPUFEATURE(AMX_FP16,     10*32+21) /*   AMX FP16 instruction */
>  XEN_CPUFEATURE(AVX_IFMA,     10*32+23) /*A  AVX-IFMA Instructions */
>  XEN_CPUFEATURE(LAM,          10*32+26) /*   Linear Address Masking */

I'd like to note that we could long have had this if my long-pending emulator
patch had gone in at some point.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 11:42:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 11:42:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081545.1441614 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umWLU-0000Lx-MM; Thu, 14 Aug 2025 11:42:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081545.1441614; Thu, 14 Aug 2025 11:42: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 1umWLU-0000Lq-Hb; Thu, 14 Aug 2025 11:42:12 +0000
Received: by outflank-mailman (input) for mailman id 1081545;
 Thu, 14 Aug 2025 11:42:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mOIo=22=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1umWLS-0000Kc-JJ
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 11:42:10 +0000
Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com
 [2a00:1450:4864:20::429])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b5ca7beb-7903-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 13:42:09 +0200 (CEST)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-3b9dc55d84bso595301f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 04:42:09 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3b8f5d7deaasm29868346f8f.65.2025.08.14.04.42.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 04:42: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>
X-Inumbo-ID: b5ca7beb-7903-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755171728; x=1755776528; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=6mfN40EV8vHDy+a4aXhDtcf6NNcD0Hn/rA0LwcdFQdg=;
        b=c69CKlkowbelXiyA1nVno6MYz2LDSHjN+J8S/f5T9YPw4S2vmAJNB7AYs13fHqxRcK
         nZRjA/2c5cqMeVvzDjWmOIXMeAxyf91oJFY6EpBIVPMEaAvog6DyplPcKzZI89nXOzZq
         wXSeBrjcw0mBR7Oz1bWYa21JntwBosqDXoT38=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755171728; x=1755776528;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6mfN40EV8vHDy+a4aXhDtcf6NNcD0Hn/rA0LwcdFQdg=;
        b=PPS2MeSvoAt6cCkRdxvcm2rCJHIekHKrgsccpJeH1YHL0G/d9qLSEiuidxXuwpBcsH
         uL9tDkb1nI2akUEIh3/joBgMzGyA2Kr5Q5nggspktCFXbCAwy8SO8yRlS2viqzBtXyD5
         a2UsHnDF2djYVLEBVgFh8OCmNFK9LldQWWOpbpWiH+Gw93t6ejJ1NEEzg217h2HWer3u
         EhxC63eNLrez62k2ETeVNF/CzgnfU3Jt4J2d6iiybbmrMyN7mmsXkqG2dVkyg6U3zH4n
         O6WsY0i5pI1xlwWA0zZW18+dO5SFSw1R9WmoDN2YhQzbhxfaSwyV+gK89vEtWzGvFMhr
         hIRg==
X-Forwarded-Encrypted: i=1; AJvYcCUMg2ThPPEkPLYqFyycdxkHTz0X+pufes85iBhzYR+hzV6bscnKOwFErc/v3M/R29KJJhNaLbE8h30=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxWb6uyMZdlna5fYRK1g1keNIuph7oB80rA9gmBk5IIGYSIExf1
	TbpBMn9e2CxeVHc7WSnekEa/7YJd7X/rkKI3kCfnIEbbSTyrdP5pGxyyTvzpHrHCcuo=
X-Gm-Gg: ASbGnctwRqd6Upweo2UMd8Ln2Okh9jVVCcg1SjLZFZ33xcZXf/42kji+3fGD9OGYQQF
	hT6+xCmgralM9TgULYLGYrYGqN1xBCSK4X1grjdHCw7ormdbsByzxhCmRz9JPpQ+qUKB+HKk8c2
	pKiVLb4ea7Qf/I4HbLb4ca/POEVWIsGT4d9fvYN4BdKmfg6TlijpWod2bqD8dc5SHQtYsJ/8kIX
	z8+GSwxlB2743ZreuKqdqJ+1RtmfawOlmY6ASJwuHkp/cjMdqejaksMluPZeexCG9hKgyfSouAe
	u+lpBNzF9BR97KoocSAW9Dx/zLQynUesHsEv8wwX2zRj1WEYG5Bd+C5iij94nVTGlE0Gkxjh4e0
	QcXYxQEgTZ6IgJwBMKOCTKsmjivyUhVLTa+Mz3FWVqSPR+fnuUKNbZ6Xb2Gb01DxpSSbx
X-Google-Smtp-Source: AGHT+IFwKB9DDpe139fQr/il9j0mCTPiBugojF+LKS2Z2HHO4hoP3sXfFc55Fxds2NeYeHZePYuSHQ==
X-Received: by 2002:a05:6000:420a:b0:3b9:1d32:cf4a with SMTP id ffacd0b85a97d-3b9edf65310mr2563367f8f.44.1755171728485;
        Thu, 14 Aug 2025 04:42:08 -0700 (PDT)
Message-ID: <9cc46920-b1a6-4085-8481-abf0f1cd0aab@citrix.com>
Date: Thu, 14 Aug 2025 12:42:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 13/22] x86: FRED enumerations
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-14-andrew.cooper3@citrix.com>
 <9b4da5b3-dd68-4052-92cc-fe322164eaa5@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: <9b4da5b3-dd68-4052-92cc-fe322164eaa5@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14/08/2025 12:20 pm, Jan Beulich wrote:
> On 08.08.2025 22:23, Andrew Cooper wrote:
>> Of note, CR4.FRED is bit 32 and cannot enabled outside of 64bit mode.
>>
>> Most supported toolchains don't understand the FRED instructions yet.  ERETU
>> and ERETS are easy to wrap (they encoded as REPZ/REPNE CLAC), while LKGS is
>> more complicated and deferred for now.
>>
>> I have intentionally named the FRED MSRs differently to the spec.  In the
>> spec, the stack pointer names alias the TSS fields of the same name, despite
>> very different semantics.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>

Thanks.

>> --- a/xen/arch/x86/include/asm/x86-defns.h
>> +++ b/xen/arch/x86/include/asm/x86-defns.h
>> @@ -75,6 +75,7 @@
>>  #define X86_CR4_PKE        0x00400000 /* enable PKE */
>>  #define X86_CR4_CET        0x00800000 /* Control-flow Enforcement Technology */
>>  #define X86_CR4_PKS        0x01000000 /* Protection Key Supervisor */
>> +#define X86_CR4_FRED      0x100000000 /* Fast Return and Event Delivery */
> ... a UL suffix added here for Misra.

I was surprised, but Eclair is entirely fine with this.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 11:44:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 11:44:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081554.1441623 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umWNc-0001hm-VV; Thu, 14 Aug 2025 11:44:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081554.1441623; Thu, 14 Aug 2025 11:44: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 1umWNc-0001hf-Sy; Thu, 14 Aug 2025 11:44:24 +0000
Received: by outflank-mailman (input) for mailman id 1081554;
 Thu, 14 Aug 2025 11:44:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xqZt=22=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umWNb-0001hX-MJ
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 11:44:23 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 04d493fc-7904-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 13:44:21 +0200 (CEST)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-6188b794743so1435381a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 04:44:21 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a23fec4sm2576494466b.121.2025.08.14.04.44.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 04:44: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>
X-Inumbo-ID: 04d493fc-7904-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755171861; x=1755776661; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=nene8atz6aV5i9gCzUzOiEHu3ahBtWEzh7ISYeQCBSc=;
        b=Die3xe8QfXs01EauZzSHAjzN7p6nLa7WPJNiigSdYrgdk0LBpg961G28v7Y2akMuV0
         xWk+XWywNsHX3kQOr/lcC6L2tCxWhE9ERtri8uXx991N2ipAl6YO5vK38Wl2mYBxfuYQ
         h/IRGfC3W3dTtB17WCohxUBnCw5/G7J7Ub5oqRIM+gUsp7ibZvA3AJDcwxShVYSG1ELb
         zIHCczGCOAqj/47QcEHnpQZpekZ1rtzw/SEPzKPPj5U1axHUp3DOrLU8lj8p9yb8yEcq
         CVjGM1X641iXjUfX5oTcGnCdGo7sFypji2z2p6QS/K4ZQ93U+dnc7mJCQ8DZCr5htR22
         4DQw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755171861; x=1755776661;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nene8atz6aV5i9gCzUzOiEHu3ahBtWEzh7ISYeQCBSc=;
        b=agDkLq74m7+iHMY9gSU29sADUi5mXIwSVXe2B04lTf4riecXDmjfFo5o5pVn/vqAhS
         LSx/WxWosWpoKT4gd/LC0DqFbQk/+hPlSIx1FiaFk0t7qfwjK/qg6XaGkss4Mv6OjVUb
         HXhTdwiD+pgYhYxZIdX27av/DP0ZUK2eaxIzAR0VhgRDyNl8r6I/9+juklXDWw7Gztjp
         2uQvfdvpFqgLEOTeSVoJmgD3lOVbHaWdYvPV7N6sLZJ5ClAGycWh2W6yp7c6I6vrc2cq
         4OTiwrIg4/w8PFxnLL25Io+zfciBy7ywjTlNgsN5CgRklCH8OU1wUkv2zi8nm7ENayU3
         UlCA==
X-Forwarded-Encrypted: i=1; AJvYcCXB1OQpaXyMjIPso1s13WayLVT5AfSrpNCK4FCX7EQX4KDtU+nsoE+Q/Alr2lzcSSnR62oW+Ups/Kw=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzqgmar+h+tFlaoSC/Ort5dwCVaa2Q/bYLRymUl1JtthwxJkSap
	gQ+b9DKNTLM1AVEbqQnscK4n587jSLUtIFQFnFcS+M9gzLi1mmAK5+C+IBAVG7ZnX5CsBs9oLQ7
	sHCE=
X-Gm-Gg: ASbGncsZhdUs5TV6vZcgep7rhkyIoTIFjHRh15BS2KFdmPUA8u6WxtKNgqbyCnFz8RI
	ApK1oXrZl/Z+Txxthvu/hFTICEV4Jd1nD0bmZHNZdymYLitm5yE6YNG89Nwq/OJ/jsk67Xog9G0
	FHP0XRC8znstxwHdcc4lEvnapPhAVhj4M80lDu9XSn9jwjnGd9BdZs3JCk/3wxiIP11KUh61cqG
	+evP7Eh6tfFrJyMUwcLEEUM4k+p3EE2WMoIclLEFIqsTjDaCG6NyT44KfPODBBLRVz3yN8ncs3Z
	1L8COCA9LQc1N2oG1cRUmi5jnrGP+y0anT/4y/HCVqW/L1Y9Q1sjzjeL2nUvl5mGpPsSpXMfKAG
	eSieH2a9M9Fvhv47KBFb6IinO7GQnQqkQIHqc8UuWqJ/HibmlNycRSzcrpkkjD9VqRWsAJIyzw/
	4Z0NBc2wB3hq/H5m4Trg==
X-Google-Smtp-Source: AGHT+IFVW2NKfRwS0UX64cJur9pPvVw1GX9a37CIzK1LXQNot37G4+p9SeXPnKPKPl+541U3Y8T3Wg==
X-Received: by 2002:a17:907:60d1:b0:af1:8336:6651 with SMTP id a640c23a62f3a-afcb996b1fcmr258655766b.33.1755171861105;
        Thu, 14 Aug 2025 04:44:21 -0700 (PDT)
Message-ID: <c7e82bee-1b38-41e1-89c6-d1d3717087b2@suse.com>
Date: Thu, 14 Aug 2025 13:44:19 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 13/22] x86: FRED enumerations
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-14-andrew.cooper3@citrix.com>
 <9b4da5b3-dd68-4052-92cc-fe322164eaa5@suse.com>
 <9cc46920-b1a6-4085-8481-abf0f1cd0aab@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: <9cc46920-b1a6-4085-8481-abf0f1cd0aab@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.08.2025 13:42, Andrew Cooper wrote:
> On 14/08/2025 12:20 pm, Jan Beulich wrote:
>> On 08.08.2025 22:23, Andrew Cooper wrote:
>>> --- a/xen/arch/x86/include/asm/x86-defns.h
>>> +++ b/xen/arch/x86/include/asm/x86-defns.h
>>> @@ -75,6 +75,7 @@
>>>  #define X86_CR4_PKE        0x00400000 /* enable PKE */
>>>  #define X86_CR4_CET        0x00800000 /* Control-flow Enforcement Technology */
>>>  #define X86_CR4_PKS        0x01000000 /* Protection Key Supervisor */
>>> +#define X86_CR4_FRED      0x100000000 /* Fast Return and Event Delivery */
>> ... a UL suffix added here for Misra.
> 
> I was surprised, but Eclair is entirely fine with this.

And there is a use of the identifier in a monitored C file?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 11:47:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 11:47:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081563.1441632 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umWQk-0002GI-Cn; Thu, 14 Aug 2025 11:47:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081563.1441632; Thu, 14 Aug 2025 11:47:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umWQk-0002GB-9r; Thu, 14 Aug 2025 11:47:38 +0000
Received: by outflank-mailman (input) for mailman id 1081563;
 Thu, 14 Aug 2025 11:47:38 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mOIo=22=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1umWQj-0002G5-W7
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 11:47:37 +0000
Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com
 [2a00:1450:4864:20::42d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7857a802-7904-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 13:47:35 +0200 (CEST)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-3b9e4148134so429447f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 04:47:35 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45a1e136360sm13134705e9.18.2025.08.14.04.47.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 04:47: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>
X-Inumbo-ID: 7857a802-7904-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755172055; x=1755776855; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+f9tXg7H1qzx8Ilmc0xwtAxjorjAgtLlxWylr4WEBPw=;
        b=aduLg6hDqUpy5OeObcpmPz+JnIBkrhflmwUDxjw49T6IayKzrP9nM39GhltJqzYQqY
         igdQZMg4w2l+0pcvzRJI3uaU7M3Zh58hjG8wn8z38Q2ownlOk3jD8xISmy+uCVTklscX
         CR25pU05yq3LLNtqPy1MmKgVCQLY4vkRATEqw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755172055; x=1755776855;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+f9tXg7H1qzx8Ilmc0xwtAxjorjAgtLlxWylr4WEBPw=;
        b=Nv8jFywK794+osEzSbiZcHGWoATc0bXPGBPPqeAWrPQcNO9p2QYapzwwvP0LxDKMve
         YbIofd2uQereG61RBkg3SscL4b79dOn5AjKd1bQreL8iwKn8GzO2kb1QghQazfKUgCd7
         Zo/GXVZwznQw6lyd81q2s2tzyl3Iaww0BiZES5EmpRQQVVFxCWZob4hq+/hpyvKUtpN+
         kswgCaBOond6eYAozDe5pagpjS0dUbRZfvl5ZBqTAMg+feWYCz4by0XaiFMDW82CNR6x
         C+a82Jv9n4h4386RwLF6IGInefxjOMLoEfCnUNyBO53wnEKrOO/2KEQr7+4XtysukZ6A
         tAdw==
X-Forwarded-Encrypted: i=1; AJvYcCUqsVrMbv/+0fEH8odynePWFMfgUDaTLEhfkPpfz6RH61s/lZCaHbi7RaLX7UAAg8GgUNCpb133Eh0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxIicrBCZzklTJb4pRwrMqxHtU5gB6WPHflsw+NsKTXLuQ4F9be
	tpk0vKlutNgK6BARX5ZgMErgFj55E2WEUAdNy7TbHbCkPYPZ6VmQnoWfL8VPPmqerg0uAU2kUbr
	7kEXU
X-Gm-Gg: ASbGncsRxlfzSWI/JVk1Rl5PzFErFlDnPZ5eTYU/lpRnprK7w+VVihFxcJjLFQOsqYR
	26entlHW5JauPMxbWOdIyzPDMjUOkgmqwaRJv04bw6sVKxWR3xshCA/ZJ4U9CP4FpnqMpEJVHph
	Ytek3QVOQXR8xfJsw1oG6OtNzxKA8MGX0sdIk7Cu1M3YXX2aRXUIzB1KMcxJPQQAxVv8koMDXr3
	FOSs2OEP06gcFOOkXh+AffkoJaZQOrLvLTkj/e9wxKSx/r1JrUHA0dR93KHkWT1vth3ROiluYLi
	gxH16jJEZZkjVVEeW4cRxbmFxf/n1P3tTPwvfFOU0Fp8N8YVTKfemROSdwjMAcFAdLGDoqQ4lKI
	u/hwG4M/vXdbnr65UDxUOF/n22lwtfBKxyFdHivdbfLPJ7ag9plG+xK4I501xQTyrZMB3
X-Google-Smtp-Source: AGHT+IF2XXmxM2Nbs9acOb2YUgNhYhL55efhewdMiUJoY4aCHI/kPqunPxJ9mXj5ullTTG+rBoNxzQ==
X-Received: by 2002:a05:6000:2505:b0:3b7:89c2:463c with SMTP id ffacd0b85a97d-3b9fc32e30cmr2556658f8f.29.1755172054949;
        Thu, 14 Aug 2025 04:47:34 -0700 (PDT)
Message-ID: <b058cb18-7a03-403d-b0c4-402fc0353da2@citrix.com>
Date: Thu, 14 Aug 2025 12:47:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 13/22] x86: FRED enumerations
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-14-andrew.cooper3@citrix.com>
 <9b4da5b3-dd68-4052-92cc-fe322164eaa5@suse.com>
 <9cc46920-b1a6-4085-8481-abf0f1cd0aab@citrix.com>
 <c7e82bee-1b38-41e1-89c6-d1d3717087b2@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: <c7e82bee-1b38-41e1-89c6-d1d3717087b2@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14/08/2025 12:44 pm, Jan Beulich wrote:
> On 14.08.2025 13:42, Andrew Cooper wrote:
>> On 14/08/2025 12:20 pm, Jan Beulich wrote:
>>> On 08.08.2025 22:23, Andrew Cooper wrote:
>>>> --- a/xen/arch/x86/include/asm/x86-defns.h
>>>> +++ b/xen/arch/x86/include/asm/x86-defns.h
>>>> @@ -75,6 +75,7 @@
>>>>  #define X86_CR4_PKE        0x00400000 /* enable PKE */
>>>>  #define X86_CR4_CET        0x00800000 /* Control-flow Enforcement Technology */
>>>>  #define X86_CR4_PKS        0x01000000 /* Protection Key Supervisor */
>>>> +#define X86_CR4_FRED      0x100000000 /* Fast Return and Event Delivery */
>>> ... a UL suffix added here for Misra.
>> I was surprised, but Eclair is entirely fine with this.
> And there is a use of the identifier in a monitored C file?

Yes.Â  traps-setup.c which definitely has not been added to an exclusion
list.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 12:13:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 12:13:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081615.1441644 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umWpi-0002OC-Lz; Thu, 14 Aug 2025 12:13:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081615.1441644; Thu, 14 Aug 2025 12:13: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 1umWpi-0002O5-H7; Thu, 14 Aug 2025 12:13:26 +0000
Received: by outflank-mailman (input) for mailman id 1081615;
 Thu, 14 Aug 2025 12:13:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=48gk=22=nvidia.com=jgg@srs-se1.protection.inumbo.net>)
 id 1umWph-0002Mp-4V
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 12:13:25 +0000
Received: from NAM04-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam04on2062b.outbound.protection.outlook.com
 [2a01:111:f403:240a::62b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 11b4b8dc-7908-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 14:13:22 +0200 (CEST)
Received: from CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13)
 by DS2PR12MB9637.namprd12.prod.outlook.com (2603:10b6:8:27b::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.15; Thu, 14 Aug
 2025 12:13:18 +0000
Received: from CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732]) by CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732%4]) with mapi id 15.20.9031.012; Thu, 14 Aug 2025
 12:13: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>
X-Inumbo-ID: 11b4b8dc-7908-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MAKEtyQy7PB+A1PDOHUokV1jcIj9UfR7JconjD+A5MEjcxtLJBHt7s1JSxpYDJeFKoc5sWJx4wW1shd8ql7I3qTJZcwz3MctE3NEmzWRsFPG2VFGU/MQiHZt9mUOme+EpBzAUiW7zaIwY7YDkZFaExex9NoCDX/m0nLiwm9zNYLNU+BODSee0P9uELiE5PwlEQD/soOAHFhzYATz9xTjESL8svTEPoeC5DuOPX9bYqvMZYb+OoAzG2VHKWVdhyXsEgDV8Z0Qqufg32ZOxkdb/2HBXee0yJDeGv8czLQhiGocnSgLjZMoNm5lsrsvq1x6bKm0ie3aRRgobp4BmlVDUQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=FlwP94jh94JMwUUIxviGkpnalg6FRzIqI7Hx8eS43Sc=;
 b=Oehq8j6FUcLM94fx6qjmCt32BwKlHbdp/R9Cjr714mCkxOFOAYezhgWw1Q2FVMVZ+JJ+HscSy5OhEI9vRAX2dtazgHx9KZFCmNPWygY8/961iJnx72iSUzP9z2AsCmsP0EX45wdQQRSDK8GBHO8J0HPRZSQvFJDxcY1xhR4+lPA5RcU8lu4gZHELDVT83ywGL7TzCV6dQnstmMO8/YPO3zYwfbdRtxahESmvjE7aOVFxrBgBa9NEPVPGcxpWyn3kALOf0OHCjLn10VDCdiinbzoWPhbmUTis1/9qljuRUIvOr8AD6e38KHG0cNPjTmI0kkz68wZyAXg5ueZiOs/CAQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com;
 dkim=pass header.d=nvidia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=FlwP94jh94JMwUUIxviGkpnalg6FRzIqI7Hx8eS43Sc=;
 b=aalz1iI3xvR52yHRC59vX93/JGLpTP/avlPpDPOBN5EawU4oI+lnI50GHsCR3Q2iiepbhmaqUidgBuT8veY629SGFeS+M/vBZX9kV5h1oD9tC2GV9ZgKR+FNpGbMdhDyJ7UZo6wxdbeShHKK7iVVESeU9XDeyfA7IVQBuXRGhMnLvd7MzUS5R0o9Jxt+gUO8AixHn7t15r+Hv0c6HUYR6n2oh/5+Jm3WZ3fvJli1TuV7NlqdJiSo5bqmxF+5w7DFfT7cRiPdwTx76BqukzEqq1jbyVjpCjZtUeqlxBGEeRavYfdlYC3VWZjRbNA2Ubq4k4Gm9QGx1zOJlK+QzbAHIQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=nvidia.com;
Date: Thu, 14 Aug 2025 09:13:16 -0300
From: Jason Gunthorpe <jgg@nvidia.com>
To: Leon Romanovsky <leon@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 08/16] kmsan: convert kmsan_handle_dma to use physical
 addresses
Message-ID: <20250814121316.GC699432@nvidia.com>
References: <cover.1754292567.git.leon@kernel.org>
 <5b40377b621e49ff4107fa10646c828ccc94e53e.1754292567.git.leon@kernel.org>
 <20250807122115.GH184255@nvidia.com>
 <20250813150718.GB310013@unreal>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250813150718.GB310013@unreal>
X-ClientProxiedBy: YT4PR01CA0328.CANPRD01.PROD.OUTLOOK.COM
 (2603:10b6:b01:10a::18) To CH3PR12MB8659.namprd12.prod.outlook.com
 (2603:10b6:610:17c::13)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PR12MB8659:EE_|DS2PR12MB9637:EE_
X-MS-Office365-Filtering-Correlation-Id: 279f1ed8-ca25-4aa5-3a88-08dddb2bf3e9
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?Zfap5jlwHnvm4haUSb1I1u4N0AYZZ2KLHtDBCoIrE4Gi2C9ESB1fzLeClr8g?=
 =?us-ascii?Q?Po0B5nsl30HuAPa7u5AiQbwsghkebjwNH8mOhHR0bD4z54R42Dzx8MEcayL2?=
 =?us-ascii?Q?Ny0Fuzk+NA/QVp+GCNfuQM6yO7dmKlD+x509Tbm/U92QcimKEgduCBtoUCh2?=
 =?us-ascii?Q?qx58uTeOTNBo1wPcG9lhUnBpqF0xpkNheC8VuAQIqjEMwNqpiySBlhGr4flj?=
 =?us-ascii?Q?7XIZQ46DaGxrfWz4CMgv7DAIOeAGrvvX9NZzZXVPpPRrnGs7Db14yMfMqZE7?=
 =?us-ascii?Q?T69Rx6ny10FmsbRYBGO2aaa8IvokaM7v1Zjske36whStXuywywpEB9Czq+7s?=
 =?us-ascii?Q?FttnsFxOcFYbuDA6WZFYhl2g/vclMnkQ63sDFB+2WLXWT9rOheuT/GI4x271?=
 =?us-ascii?Q?z0eSBD/9lZoIxBeMLj7pfSmrU3fsm+O0E08mNAfLpKMJv+3gSTjUTiFQyhTk?=
 =?us-ascii?Q?W+oiLlIQclE3NlxPNspv4F88wcuqhdRLm4tcRjRM9pFT56tKMMI3HV832X5s?=
 =?us-ascii?Q?Y62rNuRSEpZwLr8Fpxg/JuT3vt6fo5tvy7LDuFIpkNwEq+JfgXJCgNjq514n?=
 =?us-ascii?Q?pScnXQjJaLr9jV8lGDySR3Jh/yKwl+mTeHqQForkE52YdyLpIGFGz/VX7kFL?=
 =?us-ascii?Q?V21qqQX9+VeHR0basX4y5i84UeUgTC+LxOSHB6WLHRwXEUQub0N9a0uJLRjG?=
 =?us-ascii?Q?cti3fA1ySfhsSXuDRJrIfRATiiOzVtpc16n8espmFLRtnFKL5vGG7zIhzaQu?=
 =?us-ascii?Q?CzhIvbDMD8AzsmdSPeg0orsDr7NfL1q2jwdBsVZfn37vV4F7AywW7+Mx8Rjx?=
 =?us-ascii?Q?BQjFlFeq9TPp4qQR2XorfJ75ZzhAHpLZqmHawCuyfZlLwWX75Kj70SYl/u2p?=
 =?us-ascii?Q?0ldem62ZgcWwo3zLIkmQ7KhHxBOYkKRse1co2TrSvO9FH6p4jnpnedZXLUz0?=
 =?us-ascii?Q?IUaA/2CEX9/vZ3g+BqTpPANqKOqvsmsRHbmUcuNJXZ5+Scu4GhZzukho+YTX?=
 =?us-ascii?Q?5vpxynA+1/KbrrgWTrcibewjEbWqlg+gMbREVojMfishVHlo7REm6+aMHO7C?=
 =?us-ascii?Q?CorP5S+BwtK0kiI3YAAjNaTnLfH4WF0utrdFEgG2fsbKZsRuXvcGU+o/adTe?=
 =?us-ascii?Q?eIh+75cMgL2EJG5TroOvL7+AM+biLp2JqQBhKXXfQcKXOGkVc6137VU+U39X?=
 =?us-ascii?Q?xAy6IYzi0mWr2A4PPoRvC4+VGkbh26GP+0aXTknZGjlPythxxj2yNxy575R0?=
 =?us-ascii?Q?GIss8Cu2ZR7TZpJCDh6yfzFzT30Q+U3KAS+JjVc05wfkZ6dg7aPNON/nCTyt?=
 =?us-ascii?Q?QkEvvW8E9SMgrr7irEyuWMtIaP0HkP4vYKVS26P/evOAtCxllRL/Eo2b5fZr?=
 =?us-ascii?Q?7Vw3Uo23TQWiw4aCeHMHakcJEPlF98oVO1bTl2Lf9oMooLCfjnxs7ZfMgIfG?=
 =?us-ascii?Q?A7Bq3mIdDFo=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR12MB8659.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?BJ6T8GYc9fCjO8k3crpC+I79EjWVbBmkej3GbVh6YO6TbL0OqbQrSUJOiqtz?=
 =?us-ascii?Q?kuwDzaSS2iAjqPqT6/xMXY1GxeKEE+SGRLExKwcm7U2RpRXbwjVkB1JjOP0g?=
 =?us-ascii?Q?mwWo5OeALd6PWDJWzSiQKXtSY8zE/OcNfUUnT4g7Tsc5BXPMNDe4J06Quxmx?=
 =?us-ascii?Q?CvSmEhksCQk7d6KmXts2cfzzQh402x6dxkETCWcjMUl2Mrh21HAPUUDD5YRp?=
 =?us-ascii?Q?qNdcITj0HPgy5o95cYNcKbb0P8IBjnYyqDK02UpSFYw4igQkazOFIjwWzPs/?=
 =?us-ascii?Q?bC0/w4Pfp0gUELgmtawEEWFFsqoA5bK5bQifg6TZjJ6gYklEA5/LiBxw3aEn?=
 =?us-ascii?Q?zsgbeJ7LBzkZbMvg+/PaPupYNbEX2F922ePnw/s5eK7nmSXcm3dEtPXwieNj?=
 =?us-ascii?Q?fDMufX0aQbP9pnCwDJAKC+lBu2f/7FKhL/4LdxvxXBD+sUbRB0kEGN4RORsV?=
 =?us-ascii?Q?ChFyMl1znz+uZFWGpIQCwueEKFNKgLpy57H1INxbwVNw+jeWPSQiLvgVF9Uk?=
 =?us-ascii?Q?wh0O35bGr5HSDXXniiEIalB4SJv6pSr50admQOytjtJkpE+aWjs0MLfCNtio?=
 =?us-ascii?Q?KzTfHpWNpfXUCby2U9ZHN3D8JO1ztQwuR3X0+F0wwVp/d3QR1HX98mzKC98F?=
 =?us-ascii?Q?5JXpLim3n1FxPtlLM0/OQik1kqw9VUwDv2K+cbYBSvCgR96AKS3Wmbg3kTMJ?=
 =?us-ascii?Q?vEEhBJG1++MWhrj9P0SKJy0tNoxyHxzeVqSfTjdJ1l/bpbRZ5LhUY3p5PiK4?=
 =?us-ascii?Q?SjDwyBPHNr90u102+omowP7/nR2roCWOMqZta8pQfMqlluHQXPYn5TEeUlwk?=
 =?us-ascii?Q?ob00tBMKS5K5RIAgrR6ZeSyjSYBx/fLM+dnXhWHHrTKufif2JK5igttmCB+W?=
 =?us-ascii?Q?bkjOTEFA1LYnVPRomGTsP0VWx5nte49f1bHfctZc/4BYtFxYt+xFdce1IxKJ?=
 =?us-ascii?Q?gnIzFmcFLaFBkTQI7TcKoFh2WeFu3/xccHO/AJkgHN/rmjboLrjYHTDhGCYe?=
 =?us-ascii?Q?JpmxzpBSj9u8iR8/W/qEN7+McztTUM7DWt4dG3PErl/RDeEJM2guMS+CNz3Y?=
 =?us-ascii?Q?9iOxztCm/JEDfnkOUgO3bd7kJDZ5Lg2uXLgx2+OAXxrHUr5E4ragJJ8pa+Qp?=
 =?us-ascii?Q?lij2fAU2z35Dr0CjLYjHpWEx01aBPHc2CM1XxRU1jWNsEX1eIqsnb34FbQLZ?=
 =?us-ascii?Q?AF1O0CDtpRMJ16FJ6/p4hCc+pBu1ibtufywPbc70bnWZnUbbtRIQYoh9H7Xl?=
 =?us-ascii?Q?em5I9GSdD4yP15MVzBpq2pJqpyIhPQSOQqzEx4oBy9S3A8CH9sV9n6a1qpbf?=
 =?us-ascii?Q?4EdeE/SjxzChdO+TtmJl4Be1ROtrLqIDaCzAmRFignpIe2N718tntI5gOcRh?=
 =?us-ascii?Q?HCAoFuKgut4tVLRD602YB7SHOvNR/mDVkd57XbT8IvAbsIooDrHuxUWHJbvF?=
 =?us-ascii?Q?WjQgfLKyVzl7BKQK34JZjT/sVLU3z8ZjICf1bMhDCNoHPKktQeBXlQScoyVm?=
 =?us-ascii?Q?8aJ3stlS4kxTOc4c9otFns4k1a4ow5ogbGKdMO7CEY05BtmN3UAGMqjMGDhR?=
 =?us-ascii?Q?bKpaIm2Lv4LRdtFqghA=3D?=
X-OriginatorOrg: Nvidia.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 279f1ed8-ca25-4aa5-3a88-08dddb2bf3e9
X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8659.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Aug 2025 12:13:18.0697
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: YIeclwU55ZGGwEG0nH+auFyY17BxFLO5LtNAZAlU2ZH6n+eMbun0/BrHAtl/v+8d
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS2PR12MB9637

On Wed, Aug 13, 2025 at 06:07:18PM +0300, Leon Romanovsky wrote:
> > >  /* Helper function to handle DMA data transfers. */
> > > -void kmsan_handle_dma(struct page *page, size_t offset, size_t size,
> > > +void kmsan_handle_dma(phys_addr_t phys, size_t size,
> > >  		      enum dma_data_direction dir)
> > >  {
> > >  	u64 page_offset, to_go, addr;
> > > +	struct page *page;
> > > +	void *kaddr;
> > >  
> > > -	if (PageHighMem(page))
> > > +	if (!pfn_valid(PHYS_PFN(phys)))
> > >  		return;
> > 
> > Not needed, the caller must pass in a phys that is kmap
> > compatible. Maybe just leave a comment. FWIW today this is also not
> > checking for P2P or DEVICE non-kmap struct pages either, so it should
> > be fine without checks.
> 
> It is not true as we will call to kmsan_handle_dma() unconditionally in
> dma_map_phys(). The reason to it is that kmsan_handle_dma() is guarded
> with debug kconfig options and cost of pfn_valid() can be accommodated
> in that case. It gives more clean DMA code.

Then check attrs here, not pfn_valid.

> So let's keep this patch as is.

Still need to fix the remarks you clipped, do not check PageHighMem
just call kmap_local_pfn(). All thie PageHighMem stuff is new to this
patch and should not be here, it is the wrong way to use highmem.

Jason


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 12:35:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 12:35:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081647.1441654 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umXAr-0007mA-C3; Thu, 14 Aug 2025 12:35:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081647.1441654; Thu, 14 Aug 2025 12:35: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 1umXAr-0007m3-7l; Thu, 14 Aug 2025 12:35:17 +0000
Received: by outflank-mailman (input) for mailman id 1081647;
 Thu, 14 Aug 2025 12:35:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Hncw=22=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1umXAp-0007lx-VM
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 12:35:15 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1f7c2213-790b-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 14:35:13 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 2039F40C46;
 Thu, 14 Aug 2025 12:35:12 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3623FC4CEED;
 Thu, 14 Aug 2025 12:35:11 +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>
X-Inumbo-ID: 1f7c2213-790b-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755174912;
	bh=5hXrpmcmtYiZJx4oU8qkI207P6Gx3hYundw5EKylrIQ=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=N2g2BIJ8YPB3KdUqlIQ+3sf88XYTAU5YzXsxCIMkq+b9inEW2vgp9A4ivccGvjwfF
	 AV/wNRHN7Rl4BZfB83b4YqKem1VH+FiuolX5SiQ0hmKku6kJ9fzYlnSHRYR/hZfo4A
	 t7RgKyvSz54/20bp9OQxBJ3FdHTZ28zI3/O5nihwLrWH4XxMFsh7ImLJrid7kdNvXc
	 dxHzSoTZ0eAkBFydpLdrAEROqaFVHC+xn4DDTCz/hN4fLyFBvzVlWYglA0CvtcModo
	 8sk1zeTQvWBfTVENe6sc6PZjsbCDpigaPftEIsijKrs4a0DqSYC9HgT0MWUqY4ie5R
	 dAHYa4zIponFg==
Date: Thu, 14 Aug 2025 15:35:06 +0300
From: Leon Romanovsky <leon@kernel.org>
To: Jason Gunthorpe <jgg@nvidia.com>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 08/16] kmsan: convert kmsan_handle_dma to use physical
 addresses
Message-ID: <20250814123506.GD310013@unreal>
References: <cover.1754292567.git.leon@kernel.org>
 <5b40377b621e49ff4107fa10646c828ccc94e53e.1754292567.git.leon@kernel.org>
 <20250807122115.GH184255@nvidia.com>
 <20250813150718.GB310013@unreal>
 <20250814121316.GC699432@nvidia.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250814121316.GC699432@nvidia.com>

On Thu, Aug 14, 2025 at 09:13:16AM -0300, Jason Gunthorpe wrote:
> On Wed, Aug 13, 2025 at 06:07:18PM +0300, Leon Romanovsky wrote:
> > > >  /* Helper function to handle DMA data transfers. */
> > > > -void kmsan_handle_dma(struct page *page, size_t offset, size_t size,
> > > > +void kmsan_handle_dma(phys_addr_t phys, size_t size,
> > > >  		      enum dma_data_direction dir)
> > > >  {
> > > >  	u64 page_offset, to_go, addr;
> > > > +	struct page *page;
> > > > +	void *kaddr;
> > > >  
> > > > -	if (PageHighMem(page))
> > > > +	if (!pfn_valid(PHYS_PFN(phys)))
> > > >  		return;
> > > 
> > > Not needed, the caller must pass in a phys that is kmap
> > > compatible. Maybe just leave a comment. FWIW today this is also not
> > > checking for P2P or DEVICE non-kmap struct pages either, so it should
> > > be fine without checks.
> > 
> > It is not true as we will call to kmsan_handle_dma() unconditionally in
> > dma_map_phys(). The reason to it is that kmsan_handle_dma() is guarded
> > with debug kconfig options and cost of pfn_valid() can be accommodated
> > in that case. It gives more clean DMA code.
> 
> Then check attrs here, not pfn_valid.

attrs are not available in kmsan_handle_dma(). I can add it if you prefer.

> 
> > So let's keep this patch as is.
> 
> Still need to fix the remarks you clipped, do not check PageHighMem
> just call kmap_local_pfn(). All thie PageHighMem stuff is new to this
> patch and should not be here, it is the wrong way to use highmem.

Sure, thanks

> 
> Jason
> 


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 12:45:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 12:45:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081657.1441663 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umXKN-000282-6h; Thu, 14 Aug 2025 12:45:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081657.1441663; Thu, 14 Aug 2025 12:45: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 1umXKN-00027v-3l; Thu, 14 Aug 2025 12:45:07 +0000
Received: by outflank-mailman (input) for mailman id 1081657;
 Thu, 14 Aug 2025 12:45:05 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=48gk=22=nvidia.com=jgg@srs-se1.protection.inumbo.net>)
 id 1umXKL-00027n-69
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 12:45:05 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20600.outbound.protection.outlook.com
 [2a01:111:f403:2412::600])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7ef09fb4-790c-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 14:45:04 +0200 (CEST)
Received: from CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13)
 by CH3PR12MB8332.namprd12.prod.outlook.com (2603:10b6:610:131::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.15; Thu, 14 Aug
 2025 12:44:49 +0000
Received: from CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732]) by CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732%4]) with mapi id 15.20.9031.012; Thu, 14 Aug 2025
 12:44:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7ef09fb4-790c-11f0-a328-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tcOS2/zres2nxM41T2hQWbwsLQ9dm/HITdiQxu/r2Ps7HMsHtXJjGiWQMdVQ3Ob9COGgRnuPQu/pMFJCbBo42Fto1nN4EgDvuHTIUavtT9NRbOTNkjhTSSMkaTT0efl/dEa/8ZSvIBsDUNgO6tRl00jM8JEHL7s1dfPVyS5R0JepOQ0Qax77Iu0tJHlLCbTGf3bpPHVWKQeIsNis+XuBpNRFySsoZqDHv6vg/E2s3rEs8cH+5LIErVkPa9AhfbZkWL/cFGPHusiOdnVdlA/f1hADdKEwXmT67WCV+U2uqXPPc0+sk7eqkzz7Vt4NogjJ5xmCg1nuQurdy7vrx3ooNA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=DT90r3xu+SF+TlQsyr1v1Z9fZmqXQG2CNUIvfqDHvxc=;
 b=ygvBDg/2D2SKo/rj7yySEhzu4g1IA5IhpUz41RVUfDmy+/I/N76eodOvDPVc95AkZ0zA0Nz+VbKpo0mSUCA6GJ4g38U0U+419Ls9wbcCVDMwcnI2zCHbFiX+7gdoNFFKwcyqMJaWkZNUEoX96wnOCUzjJjLS/RmNF6OmUbCluzD23U9wKm9QUA6HzbuyQQPQj8unbW9V8by5ypUitp9OzNjttN6Zcwr8+96nAxDwM29f9Or+kF6ZeskautfJnxWsomDl4u3OH+HHemAJ3S6terA5//8gf0KJgZAgwCE6VZUVFhQbpP9qr032bWvIVWGdHmce4K6xHw0E7JBKVLl+Kw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com;
 dkim=pass header.d=nvidia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=DT90r3xu+SF+TlQsyr1v1Z9fZmqXQG2CNUIvfqDHvxc=;
 b=WljPxQy8sBV8urlkA/2CYpJddbQiQ+EKhrYuIw03tsm55ndepj9+A9a1gDDUyxlJQtIFBaibWubI77/+go1K0Q1tbTitsoB/hp5Oh+xIGYizkYipRxwsf57So1++1rwyU+Gg0CEIVxdag0A25TO9DU5AC2EfVYd57377zy/mUQNB6Ue4rM2rYZ2m/7DgpFqokbwocEwaKnDiv1fqC+R2nhIpdZYu0VQtytRsgeO8ayUZ7ZW9OEAjkVi7pWx02KM9CsdHl714Oq/6vGVYszbAKNoVRY1JTYI2Bd30JeB1jXF6wTVTl0xAzinYB7mw/EzMxRKx17nJnXeVowkQPeki2g==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=nvidia.com;
Date: Thu, 14 Aug 2025 09:44:48 -0300
From: Jason Gunthorpe <jgg@nvidia.com>
To: Leon Romanovsky <leon@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 08/16] kmsan: convert kmsan_handle_dma to use physical
 addresses
Message-ID: <20250814124448.GE699432@nvidia.com>
References: <cover.1754292567.git.leon@kernel.org>
 <5b40377b621e49ff4107fa10646c828ccc94e53e.1754292567.git.leon@kernel.org>
 <20250807122115.GH184255@nvidia.com>
 <20250813150718.GB310013@unreal>
 <20250814121316.GC699432@nvidia.com>
 <20250814123506.GD310013@unreal>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250814123506.GD310013@unreal>
X-ClientProxiedBy: YT4PR01CA0310.CANPRD01.PROD.OUTLOOK.COM
 (2603:10b6:b01:10e::28) To CH3PR12MB8659.namprd12.prod.outlook.com
 (2603:10b6:610:17c::13)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PR12MB8659:EE_|CH3PR12MB8332:EE_
X-MS-Office365-Filtering-Correlation-Id: 335a77dd-a3d5-4004-0862-08dddb305b7e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|366016;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?IhONcx4t+6LzQCpNs17HUOldF3J6/z41LYdUhZDvfe7L7AAWMvN+Af+BT3Qm?=
 =?us-ascii?Q?agcu2dRQIYhpqv7vURMTj7spx0W8fejuD76ImSxZdromRURIVkIJeGvY7nn/?=
 =?us-ascii?Q?B75ZN183RjQ5qMDevDZAQ0JqT3caBw26BBhVZZNuc++iiMHNu0jRADderWZs?=
 =?us-ascii?Q?r03RPaQ+1DrT2t3U6XiYe8uJDI4DuZWL89wHFtSuVKCPSF5/oYWiGm3MHzAq?=
 =?us-ascii?Q?DkfdyaR7yz4Ao2/DFuhTwKzqbFnhEeBtNlgh/0BfAgi1+OrkX90MZOSzWf8p?=
 =?us-ascii?Q?HKNylEhtkxGBy38H8w+P0akz/iamIeypOgN4lU0dv82bHqV1z4Azpj3HOsE1?=
 =?us-ascii?Q?loGWSWWDUkm6pbu/VwVO3rBuSKWSZjz6ATp3WoBrJofFfUH/V+QFlwbtAOsF?=
 =?us-ascii?Q?3BvL2rNkzCksD9B23dH2ewiUQPZpz5DIuWRK6YoXxam5sALzA3qWrCj4HLP4?=
 =?us-ascii?Q?+9K2/qPffpm72eqiScg/MjavF2Pexh2d2yAmc48CAZFJyN2UhTKiGgvRHK7b?=
 =?us-ascii?Q?dhxuncm7pt3gVvza6ABXVQuvap2+P0UTgpSKSw6tBv9y46aIEAE/cs3BjNCU?=
 =?us-ascii?Q?JFxGSC+Bs2ccFT/jqgKWXTYt76n1UiUlYXg77vF0tOJO/tOgnmAt/zpfKlYn?=
 =?us-ascii?Q?i80Eij0ObzYEJY/jZ0sjTN3RSoAs5zuWNpWrccSWG2Ac4K+fbcuTmKeiB4yV?=
 =?us-ascii?Q?911AE/bkkI7B7NI+t+8qesNO8Mu6vr0deOjFS69kKOaTm1FVDNd9QTbrAGpT?=
 =?us-ascii?Q?DmZbHZdthP0xMJxPVjfx9f1zMjugQN0LfVHmmg8tgnGr9BH2Mg+SvM0MHIYt?=
 =?us-ascii?Q?CdetfLOBnaKnvLJ1+PHDw5cs7+4iGrTaTHsrXlAsXZw817cpZ/4cdUJLttTd?=
 =?us-ascii?Q?HIh12u0jy1JA9S9rHdgcvnrgXAQKSF8qaJXGBNky/Njdk3uZBWaU88xUQjf+?=
 =?us-ascii?Q?+fr7oMmd7SUod+bZ6A4QMlt1C2W7YocBv0g4DuE1AR7yvQCPR8V5xdw4TJXl?=
 =?us-ascii?Q?inPRqX5fh1WRsTGkBvKu6T+RloSJy6vcPzDHgditWSIX5twfvAtz73kzrASg?=
 =?us-ascii?Q?rmcx9/4psrMtQl4ooKEvCyZIwaZ2U1Vf/KfGMM6KQctnCLoBRWTAaFAdyYVV?=
 =?us-ascii?Q?nH46UG9YC6cRD5ZUvKpCf6H2SVDNQlpvkidfpBWcC6pQ+if8USY1ZDE8Zi0M?=
 =?us-ascii?Q?OzwmsydBnufvyFDtIVw5flHeTlYxJAqABARAaa3BVdqFWcp0Cc4xEGEj6Uz1?=
 =?us-ascii?Q?2bDWhv9TegAc+eOk6BXaDX4ckQVQkfpAbfV/tbT/iBpPsEfNr7S4VP3O+GwA?=
 =?us-ascii?Q?8pvctwaJN18AQ1pKEwRnQf/V5N+SFFnM/C01Fg+QrYLD1NyJGnsbYqirVz9U?=
 =?us-ascii?Q?a8OZaM6mS+lDnjtH/WKJ3NgALePJ95rdwfe1AHLYbrpc+iHyj4bdHFcmygos?=
 =?us-ascii?Q?WJDxl6u7UvU=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR12MB8659.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?CgybZ76urSHfPkuNEm53VQv/l7tijjsayqvTIE+fUu1Xkf4jRMun4Debqpct?=
 =?us-ascii?Q?LLmfOWCWaK5suutZRHp/pT8m/zAsRCNkHy/iPksOMGdCHNFsJCSuuTr5ubJK?=
 =?us-ascii?Q?XXnXhpF9pHYNaJ97WOD9S3lsklEOB7K9RkragJ5VOCTHfm1O87DI/CHWyamn?=
 =?us-ascii?Q?2rVlJ16x9NoWkgdD96XN9rbwi7/xKv+g5QF9thgUJ86QhK0RlYoz0Dl+F11e?=
 =?us-ascii?Q?Ri9GsemQ/QaQuS1v9q1NGDHy8VS483bN0/SwNuTqnraI0vZsTFov7qUNYHMR?=
 =?us-ascii?Q?0UnNLDxASqkVxcRollviXPjlyPn/lhWhSzQrTG5U3lzCfaJml2mGUaTmDutz?=
 =?us-ascii?Q?fU5xvmEL8E5CCgo6ZJMr4i99e4gHD793fLYVwb0CgTu84SUL8rEwCwLeB3tC?=
 =?us-ascii?Q?8QtV3pON/3Lk+otW+JRZ4VhCIpOfF9jLBb7Flaijnrw2lV86xXEj4evJ6P1p?=
 =?us-ascii?Q?qbStwlUiCPcEM4qSbhBcejFy/nHImHBbF9rKL5mQAMA181DTK/gVLLQcKbhN?=
 =?us-ascii?Q?8kG4T0SkRV9HnXECIwhxzxk5bJisYkzHu2qMhGCHA2SRsrmV8pJ0kHroHXAa?=
 =?us-ascii?Q?xFeRrq3gAf5lOXXK6LV88ZIx6ICmxF7bOa7QI+6785lS99ynke86nFkmwszn?=
 =?us-ascii?Q?KgzvSl0u6JT+TW8/bghptYwcsgL0ecydf3+r7fCqVmidmPxwkpRhCDtwh4KV?=
 =?us-ascii?Q?p1IEoYeXrpQRKMVzF27BB7OMDtVZd65Fx/fLf+A+YJSx2kYAX3+velAeZJBh?=
 =?us-ascii?Q?GJdNfrMByLaKcfE08eNvDWjHnPsyhf/ziyUytQEhhS4qj6FS3+jJBpp5fvEX?=
 =?us-ascii?Q?SKW2lNxbzWTdUJ9v9XB9GEHCssJR6PaT6Nbfv3H3OFBPFKex5LZW4smQCTvN?=
 =?us-ascii?Q?pZqmS1BSP3rj5JtYRWFpwJLk7y8hL27Tsm7dSv+G8urYbspQNNJzf3S8k9wL?=
 =?us-ascii?Q?XwlQxPfEoUA1wLUDwX5TlP+/i8eQGHvI46kY0qTY/YWM9To4HH1lRymFunyx?=
 =?us-ascii?Q?KslNOgmZdZIWXOGi6P9EMKRah5e9ZHbagPqkuKgRs0z/nb8Nv7t39pzcNQSS?=
 =?us-ascii?Q?DNG4D5X7SQOY/XFNuWqEKIqbUiJhwTrjR/w9dc/8zNeMMJ/QVGk1MdTPOLUV?=
 =?us-ascii?Q?fkBTwurAOCF4eh2ejourrH89nOAaNU+sAizBuD+o9CccXwEbp9YGfxmubQpD?=
 =?us-ascii?Q?3ImYPqlh6QTcSo4VnlAvqDgBg+9s0n6mUQlp2QGwpi/IfS2Xd57bNvkffy7Y?=
 =?us-ascii?Q?oljThomEhgCiBOGdG89WWo4lMmpB9fPKpjO13U1NoSHsHz/BxDcKGnJw85ll?=
 =?us-ascii?Q?Fwi3BTDmfXK9XqqDlNYA/mKvw8DZAQbQ6Y9D+kQDd53R8vE19xrYUkfWnsHB?=
 =?us-ascii?Q?hJ+H3VbWeRJWQ2azBU23pEdicndshS+r60kwKBfoo2oGsDRlKvaPEvZPOpez?=
 =?us-ascii?Q?+bbj1BhfhKAeoY5wdb+LhD8R5kxA8DTMxMybEhM6zkKSmhBTUeY7rAsdMh7u?=
 =?us-ascii?Q?O+cWsaCRN1aL41I3LcIKST7HdfIHWxgBC0eqpWnMOll53n+Z3gmVrYeVj23v?=
 =?us-ascii?Q?LPPTFf97Prpj7lcopjE=3D?=
X-OriginatorOrg: Nvidia.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 335a77dd-a3d5-4004-0862-08dddb305b7e
X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8659.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Aug 2025 12:44:49.7801
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: xm66W7cAWmPEyimxT0zQRYAvPOIAYlJTwok9sFU6HfDYZ+5LrObHHojxvLOWdeJO
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8332

On Thu, Aug 14, 2025 at 03:35:06PM +0300, Leon Romanovsky wrote:
> > Then check attrs here, not pfn_valid.
> 
> attrs are not available in kmsan_handle_dma(). I can add it if you prefer.

That makes more sense to the overall design. The comments I gave
before were driving at a promise to never try to touch a struct page
for ATTR_MMIO and think this should be comphrensive to never touching
a struct page even if pfnvalid.

> > > So let's keep this patch as is.
> > 
> > Still need to fix the remarks you clipped, do not check PageHighMem
> > just call kmap_local_pfn(). All thie PageHighMem stuff is new to this
> > patch and should not be here, it is the wrong way to use highmem.
> 
> Sure, thanks

I am wondering if there is some reason it was written like this in the
first place. Maybe we can't even do kmap here.. So perhaps if there is
not a strong reason to change it just continue to check pagehighmem
and fail.

if (!(attrs & ATTR_MMIO) && PageHighMem(phys_to_page(phys)))
   return;

Jason


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 13:02:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 13:02:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081672.1441690 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umXam-0006Sx-QJ; Thu, 14 Aug 2025 13:02:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081672.1441690; Thu, 14 Aug 2025 13:02: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 1umXam-0006Sp-K8; Thu, 14 Aug 2025 13:02:04 +0000
Received: by outflank-mailman (input) for mailman id 1081672;
 Thu, 14 Aug 2025 13:02:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6Upc=22=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1umXal-0006Lz-8Q
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 13:02:03 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dc5fb869-790e-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 15:01:58 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-45a1b0990b2so6040865e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 06:01:58 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-45a1cda0021sm18834025e9.13.2025.08.14.06.01.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Aug 2025 06: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>
X-Inumbo-ID: dc5fb869-790e-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755176518; x=1755781318; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=S4CO4Pew9PdsaPgLIkf571HyC7kEQqHFIFBjIJKQkkc=;
        b=YLUFo+2rR0Bb/56hlaNBs1L3ocrgbEh5SR0gvU98xd3kl2Njd9mX1GhI8qCxnJvwwY
         NJbzACbihpwfmCN7C8jlokw6//+slFkTwSmHQBOb3NdtNGvtSYBkm7CO8or3atuM4xY3
         Nv5/cOTLgl08GeGHamBCatqj6ou64vRIkS8yk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755176518; x=1755781318;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=S4CO4Pew9PdsaPgLIkf571HyC7kEQqHFIFBjIJKQkkc=;
        b=Bc2RfIt3oPKz7D2f+70nfxv30jJNPnpv8kdtFuvnrA7InAG9bxhztqyLVPxU2XRBPm
         nxlQDYcxeHjZ1DrAQAeABq/oRNaYEqBfOstPhGn03mLQfSphjpRlAka9SnoY655NqiYG
         e/qj7izoCXGewkksPABBpvaK6LE7aId6JuMg554BJ9q0tQ3FYY3rmc/ZeNNqczuQZBDC
         bjnyHBTaWjGqg18GyeeIOLfVhhpFl11n2tV/9KIthmti8L8zcuf7FixrGfbsDQajXmJi
         bLKQboPVimiSVxZ/VuFTr/oCdDTQOa6guaKxWeZQY0CfbydLcct7BoKc6pbmNfPj7yay
         e49g==
X-Forwarded-Encrypted: i=1; AJvYcCW7G7Rjg0Bz0L7TavtoUkV0VBnDXUPmK+sWCGAsY19deaqLbxgyKeO+QsQUjTqBnRbmzcOqzX+mswY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzvkOm/73uG/sePemJb+Rv3uy7d9BBrDSUNBtgtX94ipavOARfE
	dI5BBp7gQSKYbw7cDYR45Tbq9JTvKRqc939qVfJHqB0NQwbPyt31fWTsY75JFN1ljDI=
X-Gm-Gg: ASbGncu66I0FOwK2/n/P+xw/5vUVAsU8Iq0CqKCeZqvah8rNsmLEDpu2XoR7MohH/+s
	cnsA9TF9GL6164714yJYKAi2RhtXllnVMxDXfYCrjV6fkSPaF7WMpZ+6X+8F7JUvbsQmlx9Nr0K
	7icxlCDj4RgAS+KoTR90LtuL1Fnm0Qou5fvqpecyprqA43T9qzzwVVqShpTCYNvGfDl5tBKrUw5
	kZumxZgX9RCkUSqavYD3B0t2giUCAT57faeRVY3+F/5Xfb0agcGyeQk/+UVrWpkbaFsEXum0KSf
	M1njY3QLByyBI1ZZK2onylegFd3afBFZ67zflP5ERE77hLfNDHy9oo3XOseXmnPqPsDuK6ZFm+Z
	KYyGqrjkF69pqv+kZNnjLsqaSoUWQm3KOskrdLcLmBvY7BzVEowZDBgWsxL+ICBDxQg==
X-Google-Smtp-Source: AGHT+IF1YAxRwBpsmkYSwfMmKOkdlRmBNudwsxBpjbUBitckaJLS1J2ZF8akXCJpf/bJ5tcqoVl9Lg==
X-Received: by 2002:a05:600c:1da5:b0:458:c059:7d9c with SMTP id 5b1f17b1804b1-45a1b946558mr23207715e9.6.1755176517306;
        Thu, 14 Aug 2025 06:01:57 -0700 (PDT)
Date: Thu, 14 Aug 2025 15:01:56 +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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH] pdx: cast PAGE_SIZE value ahead of shifting
Message-ID: <aJ3eRFc7CCwVi5WE@macbook.local>
References: <20250813125538.78174-1-roger.pau@citrix.com>
 <e644c968-ab68-49f4-801e-0f161fd85f2e@suse.com>
 <aJ26UmemwxyyTioE@macbook.local>
 <3fbdd1fc-e739-42cf-892b-a561910a5693@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <3fbdd1fc-e739-42cf-892b-a561910a5693@suse.com>

On Thu, Aug 14, 2025 at 12:45:40PM +0200, Jan Beulich wrote:
> On 14.08.2025 12:28, Roger Pau MonnÃ© wrote:
> > On Thu, Aug 14, 2025 at 09:18:45AM +0200, Jan Beulich wrote:
> >> On 13.08.2025 14:55, Roger Pau Monne wrote:
> >>> --- a/xen/common/pdx.c
> >>> +++ b/xen/common/pdx.c
> >>> @@ -288,7 +288,7 @@ bool __init pfn_pdx_compression_setup(paddr_t base)
> >>>  
> >>>      pfn_pdx_hole_shift  = hole_shift;
> >>>      pfn_pdx_bottom_mask = (1UL << bottom_shift) - 1;
> >>> -    ma_va_bottom_mask   = (PAGE_SIZE << bottom_shift) - 1;
> >>> +    ma_va_bottom_mask   = ((paddr_t)PAGE_SIZE << bottom_shift) - 1;
> >>
> >> Given
> >>
> >> #define PAGE_SIZE           (_AC(1,L) << PAGE_SHIFT)
> >>
> >> this shouldn't be needed, except maybe for Arm32. There, however, ...
> >>
> >>>      pfn_hole_mask       = ((1UL << hole_shift) - 1) << bottom_shift;
> >>
> >> ... this and the shift immediately ahead would also be a problem afaict,
> >> which makes me conclude this isn't what Coverity has looked at. I expect
> >> the problem is with the toolstack side definition of PAGE_SIZE, which imo
> >> would rather be addressed there. (And yes, I'm pretty averse to arbitrary
> >> casts like this being introduced.)
> > 
> > As I've realized while looking at this, wouldn't ma_va_bottom_mask
> > also better be of type paddr_t, since it's not operating on pfns, but
> > physical addresses.  I didn't adjust the type of ma_va_bottom_mask,
> > but I would be happy to do it if you agree.
> 
> No, as its name says it's also used on virtual addresses (really: offsets
> into the direct map). It hence would better not have any bits set outside
> of the range that VAs can cover.

It's confusing that it's sometimes used against a paddr_t or an
unsigned long type.  The logic itself already limits the shift so it's
below the width of unsigned long AFAICT.

> With that, imo the cast (if any) also
> should have been to unsigned long, not paddr_t. Yet as said, im the cast
> would better not be there in the first place. Just that meanwhile I've
> learned that this was committed already.

Sorry, I should have waited for your opinion.

I think you would prefer the patch below.  I can send this formally,
not sure whether you would prefer a formal revert of the previous
patch, plus the new fix applied, or doing the revert in the new patc
(like below) is fine.

Thanks, Roger.
---
diff --git a/tools/tests/pdx/harness.h b/tools/tests/pdx/harness.h
index 5bef7df650d2..a0fe33b4f1e0 100644
--- a/tools/tests/pdx/harness.h
+++ b/tools/tests/pdx/harness.h
@@ -33,7 +33,7 @@
 #define PAGE_SHIFT    12
 /* Some libcs define PAGE_SIZE in limits.h. */
 #undef  PAGE_SIZE
-#define PAGE_SIZE     (1 << PAGE_SHIFT)
+#define PAGE_SIZE     (1UL << PAGE_SHIFT)
 #define MAX_ORDER     18 /* 2 * PAGETABLE_ORDER (9) */
 
 #define PFN_DOWN(x)   ((x) >> PAGE_SHIFT)
diff --git a/xen/common/pdx.c b/xen/common/pdx.c
index 06536cc639f3..9e6b36086fbd 100644
--- a/xen/common/pdx.c
+++ b/xen/common/pdx.c
@@ -274,7 +274,7 @@ bool __init pfn_pdx_compression_setup(paddr_t base)
 
     pfn_pdx_hole_shift  = hole_shift;
     pfn_pdx_bottom_mask = (1UL << bottom_shift) - 1;
-    ma_va_bottom_mask   = ((paddr_t)PAGE_SIZE << bottom_shift) - 1;
+    ma_va_bottom_mask   = (PAGE_SIZE << bottom_shift) - 1;
     pfn_hole_mask       = ((1UL << hole_shift) - 1) << bottom_shift;
     pfn_top_mask        = ~(pfn_pdx_bottom_mask | pfn_hole_mask);
     ma_top_mask         = pfn_top_mask << PAGE_SHIFT;



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 13:13:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 13:13:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081686.1441700 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umXlH-0001li-QE; Thu, 14 Aug 2025 13:12:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081686.1441700; Thu, 14 Aug 2025 13:12:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umXlH-0001lb-MO; Thu, 14 Aug 2025 13:12:55 +0000
Received: by outflank-mailman (input) for mailman id 1081686;
 Thu, 14 Aug 2025 13:12:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xqZt=22=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umXlG-0001lV-Gu
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 13:12:54 +0000
Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com
 [2a00:1450:4864:20::635])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6225cba7-7910-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 15:12:52 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-afcb7a3b3a9so133174766b.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 06:12:52 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a0a396fsm2602355866b.42.2025.08.14.06.12.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 06:12:51 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6225cba7-7910-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755177172; x=1755781972; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=QrH0g3z8vfq5qfd1P0V6MRrlXghDtoggjXJky0P56oM=;
        b=auFLkPlxpAoBv18+whPnRjaRMOG3xK20nyizVGSu/b6e9Y1iakEMFv835QHL6I8Dnk
         +VnIbEJmFQEP0kf2YDMWaVRipk0z2GzZBSBq5SRnGMqCr8Endj1IjjykHQJCZCS+i/4h
         UwWJs8DWI9MGL/CxmixkP03VQE2kGTD1sHF2woM8BldR5yy0xDEOi1xn6HGiGIikf88y
         DD/ZU7uYzqZLYUL/uDkgHABGXZ2nA1W45lb45BcD0izavOL/SF4YHeuOlb7i2btPPZgH
         vKk3j0/vFx4BEt8sLvDDhw8funOHj25WmDajz677Y0mYDIcRwjdKKx1TfIK493wB8hj6
         pXzw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755177172; x=1755781972;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QrH0g3z8vfq5qfd1P0V6MRrlXghDtoggjXJky0P56oM=;
        b=EiHtbLPraeCzj+tlpNqkc2JY1Bne5EX+Yjrd/BHyCIAo5vDuUm1g7VVRFSnFLbSGYr
         QFeG9a3VoWZXR3gBXryynRdYoqh6CuVKSPFsZ6Q1dfN94ZOZ4XD6y2SPQOcbPYez1ShW
         +/7+MYOJk0V8+ks72fIN055AJgqYIT4ZJFjgAumIIMHTA/nD3MFXB3VGJyN7Mt25Ckul
         Z/hibbC/dJ2Gz9TdkXT09G9TTend2gZjzyfDKTfaAbxeJt0QRcKMh5qfhkSLesmNZH1O
         l7oj1ndGLXUyfzUVvno2pdP9pls1dhJbdsFA1fMPiqgj1YNYGwUfQhzmPqnAuGOGeLTt
         pzAg==
X-Forwarded-Encrypted: i=1; AJvYcCWIHC9Pv9hRH0OPeKd0WQsHcUa5G8E1wD/tLFqX9TwlUkq60/VlDzpu+J19OHm2qxfL4rsObH0NEIs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzqHzBAPNXuX0wuVgxPzgNNvQEJn0SI5GICyZiiw7Dv1U7xHoCU
	R5VybDyRJyKq8k4P5dC4U1kRDSmsv/ZeayJPFOZkTjYAvHq/wmhlmVSE77IGTtOzqQ==
X-Gm-Gg: ASbGncvrKq00O9tkyTYtM4mTz17TZu5TrJndjSgXVYPEbwpnbZV28g2liG3sk75A8HX
	hD0Wht+V4I0JrF+uQZw78ER1PK54j0zyqaPwwk2GyhBBW9b7/S7kU92wPj+gUauSmOgfUesG/td
	qOepZprDR91BYWKyUsv6TR/JPxNb/A0dIbapfX3ysGBNIoYQ2cH8yrfh+jYgAMo4v3JKBkf9l8P
	v3Opiyw7l/HAKSLPg/qK0T5v36ZJbQEhlPiJDGDHGJC4s2nau6ZsFp1Eo1uuy9qR967dxLn/c4v
	TYD+W72fsOoXPbJI14vs7iILG5USd1kDZUtaSmZU8wPXXaHFvzmiaao4dSucMFURNH4Uu3O+sBa
	tXR2749yNRHWo/E0IvIb5HosbUsKlnhh8rQiNDdhSLbaXsekW8ZdoeFLoILZgSrTCmDupHpx1TW
	IX1lyDIbw=
X-Google-Smtp-Source: AGHT+IGYaE95PZBOPtszuyJ22ZjFRT2+OS5/v7tXpsRSI9qxpARDXDOQmoZ/R1B+n56hnnFHAEY40A==
X-Received: by 2002:a17:907:94c1:b0:af9:116c:61cf with SMTP id a640c23a62f3a-afcb98e90a0mr290064666b.43.1755177171570;
        Thu, 14 Aug 2025 06:12:51 -0700 (PDT)
Message-ID: <a16deee1-de3b-4850-852a-f45aeaa982f2@suse.com>
Date: Thu, 14 Aug 2025 15:12:49 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 14/22] x86/traps: Extend struct cpu_user_regs/cpu_info
 with FRED fields
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-15-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: <20250808202314.1045968-15-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.08.2025 22:23, Andrew Cooper wrote:
> @@ -42,17 +46,76 @@ struct cpu_user_regs
>       */
>  
>      union { uint64_t rip;    uint32_t eip;    uint16_t ip; };
> -    uint16_t cs, _pad0[1];
> -    uint8_t  saved_upcall_mask; /* PV (v)rflags.IF == !saved_upcall_mask */
> -    uint8_t  _pad1[3];
> +    union {
> +        struct {
> +            uint16_t      cs;
> +            unsigned long :16;
> +            uint8_t       saved_upcall_mask; /* PV (v)rflags.IF == !saved_upcall_mask */

Would this better be reproduced ...

> +        };
> +        unsigned long     csx;
> +        struct {
> +            /*
> +             * Bits 0 thru 31 control ERET{U,S} behaviour, and is state of the
> +             * interrupted context.
> +             */
> +            uint16_t      cs;
> +            unsigned int  sl:2;      /* Stack Level */
> +            bool          wfe:1;     /* Wait-for-ENDBRANCH state */

... here as well, just like you reproduce "cs"?

> +        } fred_cs;
> +    };
>      union { uint64_t rflags; uint32_t eflags; uint16_t flags; };
>      union { uint64_t rsp;    uint32_t esp;    uint16_t sp;    uint8_t spl; };
> -    uint16_t ss, _pad2[3];
> +    union {
> +        uint16_t          ss;
> +        unsigned long     ssx;

What use do you foresee for this and "csx"?

> +        struct {
> +            /*
> +             * Bits 0 thru 31 control ERET{U,S} behaviour, and is state about
> +             * the event which occured.
> +             */
> +            uint16_t      ss;
> +            bool          sti:1;     /* Was blocked-by-STI, and not cancelled */
> +            bool          swint:1;   /* Was a SYSCALL/SYSENTER/INT $N */
> +            bool          nmi:1;     /* Was an NMI. */
> +            unsigned long :13;
> +
> +            /*
> +             * Bits 32 thru 63 are ignored by ERET{U,S} and are informative
> +             * only.
> +             */
> +            uint8_t       vector;
> +            unsigned long :8;
> +            unsigned int  type:4;    /* X86_ET_* */
> +            unsigned long :4;
> +            bool          enclave:1; /* Event taken in SGX mode */
> +            bool          lm:1;      /* Was in Long Mode */

The bit indicates 64-bit mode aiui, not long mode (without which FRED isn't even
available).

> --- a/xen/arch/x86/include/asm/current.h
> +++ b/xen/arch/x86/include/asm/current.h
> @@ -38,6 +38,8 @@ struct vcpu;
>  
>  struct cpu_info {
>      struct cpu_user_regs guest_cpu_user_regs;
> +    struct fred_info _fred; /* Only used when FRED is active. */

Any particular need for the leading underscore?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 13:15:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 13:15:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081696.1441708 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umXno-0002Gx-54; Thu, 14 Aug 2025 13:15:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081696.1441708; Thu, 14 Aug 2025 13:15: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 1umXno-0002Gq-29; Thu, 14 Aug 2025 13:15:32 +0000
Received: by outflank-mailman (input) for mailman id 1081696;
 Thu, 14 Aug 2025 13:15:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xqZt=22=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umXnm-0002Gh-Bw
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 13:15:30 +0000
Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com
 [2a00:1450:4864:20::536])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bfc75241-7910-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 15:15:29 +0200 (CEST)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-6188b733bbaso1774506a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 06:15: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
 4fb4d7f45d1cf-6188837fd10sm1932644a12.14.2025.08.14.06.15.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 06:15: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>
X-Inumbo-ID: bfc75241-7910-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755177329; x=1755782129; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=W0gRqDnYXQqvEFikVN77LAnV99f3gklCrW52SFXBwNo=;
        b=LQG9Ite0jYpeYCtQ5uSN6vd/whDm+wd1WweYWtCDVGR871uD4A380WZZFqiG1aRZkh
         VDBBda+DCKe0XXPMCbt3Phga9RpMh9r9bYjBnGsGxEESz98hMmy5Cx8sWy7r3TWS2O5B
         g+hQZOo+fE+kzvzQzQujC9c8L0lPH05/QpOATxyUpL5UT5MUpW6yQ7YRWZp+80JQXm4s
         sukjloZMj5Fb4NztmGMMnhm0OdqCHsqlDHh2devvYjytoEyubjGMORrZLV3CCwQG50GW
         jPUS0ODUTZhVkPaGC2ibokKllWw1jyHpRwcsXvspZKEjjwJh+7RK+jTw0qCB68tUshCR
         gwDw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755177329; x=1755782129;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=W0gRqDnYXQqvEFikVN77LAnV99f3gklCrW52SFXBwNo=;
        b=twiytATNRoUHJf9lTTYYLW5+Tfpl2RQRuvBHYD/vgJol6khfAZpQENgfm0CQr/Cs5j
         xo2yS7+yjspzpqU31Arr6ooF+c8iXxZbZ8upzBdSDTofMMgPcCzkQoeQ/9FiWiCr7c3Y
         OAMUpEeBnFrYXbwjqPVlNdwLxiGKLjimo+ZCuP07MdyTeRW8NFQi6CYA8DEARykinfeR
         6t5MjYsDjZkd7ST8c1ePOq5+j/q5rOtR6CKD8DMdYOn4hHY77ArTVJfrEoVZOU7mFR99
         n1+oVv89rDtksBaXWR/5cE9w4px/HqAvupCWaHqA/HUEoJsvFlfddJGJBHzdvh5mB7Qk
         o34A==
X-Forwarded-Encrypted: i=1; AJvYcCWv2WFgyPrWxCdfOVTczvrOrOukzm2NS/SVO2J+nRK0AUyhb4syrGtrJ+h7Dz5aGqBKItuugmAjvy0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw/IxR26ODM66Vlk8Ub/SOFLRWFZu2WCTM+9dJ7WjU6OuhIt5jK
	F2jQRJlle4+y16CV37QVjmeOgUCrYioQiCMYdtn39J+/THXh55J9fc9XvpWX+r4ASw==
X-Gm-Gg: ASbGncv1SslbzjgxEc+9Sla3RIYn48hgopomhTQ+QSlhl0LMfUyGrbih+4bVEjB9hGW
	+msLoHsA5sMYpMYWJqpticlQEZxJ4Ur4JqEtJ3tfZFp4ucZ6mG8BuIqe5PIXmp2H8cU24AVLu1r
	so7XTdN6SZwUJrtwRNcg9jT45rzzwZPeAH7pGqm5UCbStjhlJpLBtf4XYzJokwMtxGqWyrNQqzF
	0agQ5ojQc/tKeg4Wo23YGncQajdC1z0JAIgFEm2PQ/1/kZvXKfYIc9WAmn9EnB4JzsRIZdpsHFz
	OheF2sSNMfcYw3yiBUGG7+Q2Uq8+mlAWXxjYL3IKzmt055eJyWGgnalrqsgusRvuycVsPI24ulb
	TOHisrMQV+zwHp/rb/9MB1zt6Qr5dHiIQKoCsIbVKyulKxqcFHxD+GiDbbwNcc/NZ968ZRtZyXr
	ezyP+VwRc=
X-Google-Smtp-Source: AGHT+IHiobKkY7fCBuQitA2RiQnqTF7KXWMAZACMNdx2dLRUsD0vNB9JSe0pH+0g6+SDNuyzD2qnEA==
X-Received: by 2002:a05:6402:51c6:b0:617:cd9d:e1b1 with SMTP id 4fb4d7f45d1cf-6188c21c4abmr2558160a12.30.1755177328757;
        Thu, 14 Aug 2025 06:15:28 -0700 (PDT)
Message-ID: <f707d57e-73f3-43c4-a005-f2b93ad3d1cf@suse.com>
Date: Thu, 14 Aug 2025 15:15:26 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] pdx: cast PAGE_SIZE value ahead of shifting
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <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>, xen-devel@lists.xenproject.org
References: <20250813125538.78174-1-roger.pau@citrix.com>
 <e644c968-ab68-49f4-801e-0f161fd85f2e@suse.com>
 <aJ26UmemwxyyTioE@macbook.local>
 <3fbdd1fc-e739-42cf-892b-a561910a5693@suse.com>
 <aJ3eRFc7CCwVi5WE@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: <aJ3eRFc7CCwVi5WE@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14.08.2025 15:01, Roger Pau MonnÃ© wrote:
> On Thu, Aug 14, 2025 at 12:45:40PM +0200, Jan Beulich wrote:
>> On 14.08.2025 12:28, Roger Pau MonnÃ© wrote:
>>> On Thu, Aug 14, 2025 at 09:18:45AM +0200, Jan Beulich wrote:
>>>> On 13.08.2025 14:55, Roger Pau Monne wrote:
>>>>> --- a/xen/common/pdx.c
>>>>> +++ b/xen/common/pdx.c
>>>>> @@ -288,7 +288,7 @@ bool __init pfn_pdx_compression_setup(paddr_t base)
>>>>>  
>>>>>      pfn_pdx_hole_shift  = hole_shift;
>>>>>      pfn_pdx_bottom_mask = (1UL << bottom_shift) - 1;
>>>>> -    ma_va_bottom_mask   = (PAGE_SIZE << bottom_shift) - 1;
>>>>> +    ma_va_bottom_mask   = ((paddr_t)PAGE_SIZE << bottom_shift) - 1;
>>>>
>>>> Given
>>>>
>>>> #define PAGE_SIZE           (_AC(1,L) << PAGE_SHIFT)
>>>>
>>>> this shouldn't be needed, except maybe for Arm32. There, however, ...
>>>>
>>>>>      pfn_hole_mask       = ((1UL << hole_shift) - 1) << bottom_shift;
>>>>
>>>> ... this and the shift immediately ahead would also be a problem afaict,
>>>> which makes me conclude this isn't what Coverity has looked at. I expect
>>>> the problem is with the toolstack side definition of PAGE_SIZE, which imo
>>>> would rather be addressed there. (And yes, I'm pretty averse to arbitrary
>>>> casts like this being introduced.)
>>>
>>> As I've realized while looking at this, wouldn't ma_va_bottom_mask
>>> also better be of type paddr_t, since it's not operating on pfns, but
>>> physical addresses.  I didn't adjust the type of ma_va_bottom_mask,
>>> but I would be happy to do it if you agree.
>>
>> No, as its name says it's also used on virtual addresses (really: offsets
>> into the direct map). It hence would better not have any bits set outside
>> of the range that VAs can cover.
> 
> It's confusing that it's sometimes used against a paddr_t or an
> unsigned long type.  The logic itself already limits the shift so it's
> below the width of unsigned long AFAICT.

Well, the variable simply doesn't need to be wider than the narrowest type
it's used with.

>> With that, imo the cast (if any) also
>> should have been to unsigned long, not paddr_t. Yet as said, im the cast
>> would better not be there in the first place. Just that meanwhile I've
>> learned that this was committed already.
> 
> Sorry, I should have waited for your opinion.
> 
> I think you would prefer the patch below.

Yes.

>  I can send this formally,
> not sure whether you would prefer a formal revert of the previous
> patch, plus the new fix applied, or doing the revert in the new patc
> (like below) is fine.

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

I don't see a strong need for an outright revert.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 13:19:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 13:19:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081705.1441719 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umXrc-0002qZ-KD; Thu, 14 Aug 2025 13:19:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081705.1441719; Thu, 14 Aug 2025 13:19: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 1umXrc-0002qS-Gt; Thu, 14 Aug 2025 13:19:28 +0000
Received: by outflank-mailman (input) for mailman id 1081705;
 Thu, 14 Aug 2025 13:19:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mOIo=22=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1umXrb-0002qM-0z
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 13:19:27 +0000
Received: from mail-wr1-x42b.google.com (mail-wr1-x42b.google.com
 [2a00:1450:4864:20::42b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4ca6a681-7911-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 15:19:25 +0200 (CEST)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-3b9edf4cf6cso716240f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 06:19:25 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3b8f8b1bc81sm28892665f8f.69.2025.08.14.06.19.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 06:19: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>
X-Inumbo-ID: 4ca6a681-7911-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755177565; x=1755782365; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=kBlyrzMAAt0g6rSni8C2Z1ie2xvubvyBWBNXXe85Mic=;
        b=ERlJ5i3ZqtTuc/8LeCqPzCH11G09fwRJlIR7HiF7gDg8sFMGQMozBboTWTHL4kWopb
         ApPbWCWBRMyBHrlBLAZOuVo45x5C1BEVAVnS7R2jlc7NXCz1hyYDhHzTerxadHAueBCz
         815sEAt10Gzy+Oh4D9QIMRxRBE7NTgE12t2gc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755177565; x=1755782365;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kBlyrzMAAt0g6rSni8C2Z1ie2xvubvyBWBNXXe85Mic=;
        b=RY6s40jTEZmtwdWO0yMWpu2YjdtKt+Nu0hZptoflT7KsgqAK/P5rAnjzBcgfY1MYS7
         J+vQ4UAiOB1priBtomYcdvcKk4LyQPK6pF0QsXNk42A+mg6+xHMSuXDhV4ADlV8JuxIz
         mCAeD+BV+oUd17sqc58zasfU64U6sXmS6fSnxtEigRBbjUQcDhutyiB38BzJqfR3Ty3I
         z9PKWPm7jZVpEmFL64ylLJCeAyemspAhts544Pdh7zstdUinuvNHGUw+t1cS1i9pcgHM
         N/J1ztG5WMFm7cEIHwOqPbAY5i0F1ZgWR9qZol1E74j2O6rGRR1zZygVfSIL1nXLsFdj
         Gvdg==
X-Forwarded-Encrypted: i=1; AJvYcCXhuR9M04abPeB9abl4VlWCYtU/+gG9NYM9aLwMjdio7vzIICCmzx7wM6pIn4TH75hzMELVViOd4eA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwbUTxD03wQAvt//AnSuqOzZUhmUCG+93rEavBBPp8dwM0GlxUa
	srfkTa2Kn/6Qhb3DE9rQublXM2JZYKGORNAOJM7kTmu7dH1PejSilqpdxjV6vaZtTkw=
X-Gm-Gg: ASbGncuRpGHdagCNxMmRa3f6M1SFyqXnCUCi30x1NcL7UGX1ZBv4/0c/zGGSL4sj9FT
	xB4tN9RZAuvNS9jfC/AAPBGVWx8YvmxcCxNt0AMr+C3q9A+7snC/7h/ngF5YgN5GXGLp2FF7Iz5
	6H0PuBrvJ/2srRrDzFwJiLTuA2Ni+ulAmICNdJaP3gM0jwKF7JxP59mDGa8iesPMsnGoDpEOjuQ
	KhENXcQ2mYCl/vfTTUzdAV0ZOdemduLy2nqiLWo6WWEGQJsoQKmFBBuMkAGrGksiUYnNbzLGHWC
	1NMfDLR89ccZL85w5me3+K/mGQq/PMXG0spct9fXw9LCuozFCZC70nhxg/0Gch9NY0X71l31MK1
	+3Gj62fia4SwDuY8gf9R9iJvwhq64SyQ1cNqfIlfDnSfwMGKZc4GSTNCvd/TRzpxwl8a7
X-Google-Smtp-Source: AGHT+IG4HzmXBhdMNNy7Yse9n20oYJum2vG/tJ3RuVlJOyKjrXBGd883kjGd6jXSt55Cl1x1c7vyNw==
X-Received: by 2002:a05:6000:2006:b0:3b9:1b19:a366 with SMTP id ffacd0b85a97d-3b9fc34bb92mr2340450f8f.34.1755177565124;
        Thu, 14 Aug 2025 06:19:25 -0700 (PDT)
Message-ID: <6d1c393e-39ad-4b43-ac52-a31bf93a3534@citrix.com>
Date: Thu, 14 Aug 2025 14:19:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] pdx: cast PAGE_SIZE value ahead of shifting
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jan Beulich <jbeulich@suse.com>
Cc: 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: <20250813125538.78174-1-roger.pau@citrix.com>
 <e644c968-ab68-49f4-801e-0f161fd85f2e@suse.com>
 <aJ26UmemwxyyTioE@macbook.local>
 <3fbdd1fc-e739-42cf-892b-a561910a5693@suse.com>
 <aJ3eRFc7CCwVi5WE@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: <aJ3eRFc7CCwVi5WE@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14/08/2025 2:01 pm, Roger Pau MonnÃ© wrote:
> On Thu, Aug 14, 2025 at 12:45:40PM +0200, Jan Beulich wrote:
>> On 14.08.2025 12:28, Roger Pau MonnÃ© wrote:
>>> On Thu, Aug 14, 2025 at 09:18:45AM +0200, Jan Beulich wrote:
> diff --git a/tools/tests/pdx/harness.h b/tools/tests/pdx/harness.h
> index 5bef7df650d2..a0fe33b4f1e0 100644
> --- a/tools/tests/pdx/harness.h
> +++ b/tools/tests/pdx/harness.h
> @@ -33,7 +33,7 @@
>  #define PAGE_SHIFT    12
>  /* Some libcs define PAGE_SIZE in limits.h. */
>  #undef  PAGE_SIZE
> -#define PAGE_SIZE     (1 << PAGE_SHIFT)
> +#define PAGE_SIZE     (1UL << PAGE_SHIFT)

It should be 1L to match Xen.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 13:19:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 13:19:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081710.1441729 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umXry-0003ER-RD; Thu, 14 Aug 2025 13:19:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081710.1441729; Thu, 14 Aug 2025 13:19:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umXry-0003EK-OE; Thu, 14 Aug 2025 13:19:50 +0000
Received: by outflank-mailman (input) for mailman id 1081710;
 Thu, 14 Aug 2025 13:19:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xqZt=22=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umXrx-000392-Ai
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 13:19:49 +0000
Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com
 [2a00:1450:4864:20::62a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 59af11c8-7911-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 15:19:47 +0200 (CEST)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-afcb61f6044so172405066b.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 06:19: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
 a640c23a62f3a-af91a0a3b77sm2590006266b.51.2025.08.14.06.19.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 06:19: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>
X-Inumbo-ID: 59af11c8-7911-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755177587; x=1755782387; 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=NYTc8LzFTEB0J0qNURaJmgk7i8ISbBU5eznAJji3BsI=;
        b=gbA/P606x1WqjhLfXN7cqp4a47R99qqpQiifEXOO5n+r5RjNkagfiATWNRXwoBTMix
         hpIW+OH3o6KTvDiIAa5YplGPKDwu08DJVdUCJYMbTYuhnx/kn7EuJmcBLiisWWrp3/Bq
         a6kzyVOl4+eMJxHCydPKaHUdpgx7b17oco3fL/8MRdeBO+JODxCyMG4yBbsizTP0xHvZ
         BjFSoVWR/IqakhtKAgv8N53UFrHZH5+upGGcfH8Xvk0AMjUY372YIVtWQd1MpfJzWK73
         98RQE2Mr2bl7bcYqNwzYxO/IZlKn7WbSM+In021pPSfrGNgNDUXVKTPD4hHe/opoUqpU
         FBXQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755177587; x=1755782387;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=NYTc8LzFTEB0J0qNURaJmgk7i8ISbBU5eznAJji3BsI=;
        b=Vw1MXs2qom9Mic+7L7oJf5oeMecCGXVpw9QLCZ2HQ4vcThb6IuwqqUuBPCBpdFtchN
         vkVfdjADBZ/0eBXDzK5BH1F+BA1ulD5sfL7UOR8SNFpJpv4u83JCaRAUC3Z1esOL6a1d
         Gh0nnqDBrj1CO/Rs5UbuCdOjhH8sZfIgD54koQlaK5eNnI5zozzb3W05v/TLdXirp0OC
         OVcplVkhfwu0lcw2zmEGXtRnOB165d/MFqrTHfmUOecswTrxztnqYQx3vpnb3NSUXLKo
         rjYI0vWvAMESbetVfr8e1ksBn5M9ZKdYpcLgo3w+sRMRRo5iOt+uH+aPchSiWBF0rnUO
         fzhg==
X-Forwarded-Encrypted: i=1; AJvYcCWqVzFPDHeXZguXj2LJdyq8dk9/Lco4D9ZLK8SmQYDh3DXtQrgt2JiJt6SToYAF1LDSrGdSfzmifYU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YypVLIKAOIZFAMDi/hNZbFMgqTWUK/JsEUqDdlznkKl0JO1yieg
	/0DRCJvHnWhW5uRMMEi0ktxdF6Ql3I+dQPVoxEKO7kNHcSBZ04jBVOb5ETmaxgNscg==
X-Gm-Gg: ASbGncseuz0d68wybbl0Tq1cO/GHOn79qBuLVE4ut10j7xpkt4EVZXorj7jyFlFmBgo
	Hq3G2KaHxmO30vtqIn8HPzVvoHIN+UtDLQrZSwaYCxqTacVW7hVv7/Gi0Wdzr+0uWDNKvM8wnzo
	iuMoGc4lwtLIv76HVZBPfjGUtJMK2zuxaRGrUISek8TL28tHBcSslsZzFsAwDp8inFT9zzzujfL
	lE2klMeSlH3krzoc8JbW42R4we/HUq2sm+kEzNncpw1VmNZQ2t9LLZr5BKVafYFUTHdDhqEvbc9
	t9Z449BwXhe2xW+hF4BMNDeua3GLzC0KftyX15qJqFCH0CI7qXGn10CSMYSVjV39CsjZOkDTwDE
	oDWqglzfDGDApU7FwFBH7UxSw8Z1S43Q7S0I40QOIf0Niv3xxAT32ZO1C2CCMY/nbXayRucahlt
	Z2tUcPISCITVRL/+BG5g==
X-Google-Smtp-Source: AGHT+IGuu7qLcsHiPQGkEj//tjnJ1MO4weqNjSjiCxOqH8ysyADuy0hFtDgYfDwcaVDVjULUmCaO1w==
X-Received: by 2002:a17:907:3e8f:b0:af7:fd29:c5e4 with SMTP id a640c23a62f3a-afcbd5cbe63mr265674466b.2.1755177586878;
        Thu, 14 Aug 2025 06:19:46 -0700 (PDT)
Message-ID: <737eab59-f016-426a-ba6e-e6c7a58a9e61@suse.com>
Date: Thu, 14 Aug 2025 15:19:44 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 13/22] x86: FRED enumerations
From: Jan Beulich <jbeulich@suse.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-14-andrew.cooper3@citrix.com>
 <9b4da5b3-dd68-4052-92cc-fe322164eaa5@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: <9b4da5b3-dd68-4052-92cc-fe322164eaa5@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.08.2025 13:20, Jan Beulich wrote:
> On 08.08.2025 22:23, Andrew Cooper wrote:
>> --- a/xen/include/public/arch-x86/cpufeatureset.h
>> +++ b/xen/include/public/arch-x86/cpufeatureset.h
>> @@ -310,7 +310,10 @@ XEN_CPUFEATURE(ARCH_PERF_MON, 10*32+8) /*   Architectural Perfmon */
>>  XEN_CPUFEATURE(FZRM,         10*32+10) /*A  Fast Zero-length REP MOVSB */
>>  XEN_CPUFEATURE(FSRS,         10*32+11) /*A  Fast Short REP STOSB */
>>  XEN_CPUFEATURE(FSRCS,        10*32+12) /*A  Fast Short REP CMPSB/SCASB */
>> +XEN_CPUFEATURE(FRED,         10*32+17) /*   Fast Return and Event Delivery */
>> +XEN_CPUFEATURE(LKGS,         10*32+18) /*   Load Kernel GS instruction */
>>  XEN_CPUFEATURE(WRMSRNS,      10*32+19) /*S  WRMSR Non-Serialising */
>> +XEN_CPUFEATURE(NMI_SRC,      10*32+20) /*   NMI-Source Reporting */
>>  XEN_CPUFEATURE(AMX_FP16,     10*32+21) /*   AMX FP16 instruction */
>>  XEN_CPUFEATURE(AVX_IFMA,     10*32+23) /*A  AVX-IFMA Instructions */
>>  XEN_CPUFEATURE(LAM,          10*32+26) /*   Linear Address Masking */
> 
> I'd like to note that we could long have had this if my long-pending emulator
> patch had gone in at some point.

Actually what I further have there, and what in the context of patch 15 I
notice you should have here is

--- a/xen/tools/gen-cpuid.py
+++ b/xen/tools/gen-cpuid.py
@@ -278,7 +278,8 @@ def crunch_numbers(state):
         # superpages, PCID and PKU are only available in 4 level paging.
         # NO_LMSL indicates the absense of Long Mode Segment Limits, which
         # have been dropped in hardware.
-        LM: [CX16, PCID, LAHF_LM, PAGE1GB, PKU, NO_LMSL, AMX_TILE, CMPCCXADD],
+        LM: [CX16, PCID, LAHF_LM, PAGE1GB, PKU, NO_LMSL, AMX_TILE, CMPCCXADD,
+             LKGS],
 
         # AMD K6-2+ and K6-III processors shipped with 3DNow+, beyond the
         # standard 3DNow in the earlier K6 processors.
@@ -347,6 +348,9 @@ def crunch_numbers(state):
         # computational instructions.  All further AMX features are built on top
         # of AMX-TILE.
         AMX_TILE: [AMX_BF16, AMX_INT8, AMX_FP16, AMX_COMPLEX],
+
+        # FRED builds on the LKGS instruction.
+        LKGS: [FRED],
     }
 
     deep_features = tuple(sorted(deps.keys()))

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 13:30:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 13:30:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081728.1441740 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umY1x-0007Aj-Uh; Thu, 14 Aug 2025 13:30:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081728.1441740; Thu, 14 Aug 2025 13:30: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 1umY1x-0007Ac-QH; Thu, 14 Aug 2025 13:30:09 +0000
Received: by outflank-mailman (input) for mailman id 1081728;
 Thu, 14 Aug 2025 13:30:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xqZt=22=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umY1x-0007AW-2x
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 13:30:09 +0000
Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com
 [2a00:1450:4864:20::62a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cb709a6a-7912-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 15:30:08 +0200 (CEST)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-afcb78fb04cso150578666b.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 06:30: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
 a640c23a62f3a-af91a1e8306sm2608020566b.83.2025.08.14.06.30.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 06:30: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>
X-Inumbo-ID: cb709a6a-7912-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755178207; x=1755783007; 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=1iIUrcmnSM5eogYqDCcCjFRVuLj75gpAVQMZtG6TB2o=;
        b=SA5Vmf/2BZ5qUOBiv4xzaw4/6FxAUnih4REK8UpIEJSu9WE8ldBuHnyfgYYrawYizc
         YxT55NRvpe1wyRyQV/56jBzROzBeHtB0cl+tdeP2z8AMSbxPWKqdeS87/Iku7s83adZb
         6OnJT+r2Pq80IutpO7Z2TEAuHNAu9rvKg1vF4QV6YxARoOtOEwsqxbJ9R+5z7T8IRCnR
         20IoAi9myCro9ipjCgohhZvEBnLHPPM3dbB9YbR5oE0ZYeNMwpDqhA+DffKPb4QA1Qai
         PsnlaSgG+LKsvMa9odSY1ekhuqFtned2xp+G8pD8jmD89hzYIDhIK8qwj1zXk/mvOPal
         MvMQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755178207; x=1755783007;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc
         :content-language:references:to:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=1iIUrcmnSM5eogYqDCcCjFRVuLj75gpAVQMZtG6TB2o=;
        b=jhejyevhJhhad7sNClKWVUNQ2lQ1lkXqDCexuHoSwNVLTXz8/KnMPnObBm+CbarEfi
         Ejnw8wm/IB+GL7xIMD0Uevb0BqcnEeRlzYR9Sn4DelSXODeqk/se+yBYwNYHmglB5fme
         3hM+7Kj4s1bnpD14/R5R5Dg+8C6LVBOBR1wCSX/twOj4GYI3Q3N9gv7U6sGICZjqnwWe
         q4ATPmaIIlc/0oWAGr7UGeltXEL5PMzz/afpu171QExI/+G522M0HisQH4IMlW7Lr0He
         53XIwDRPBSjYJx8mZtrzgjLBBPvgjcyQI5Tug/cR3oDSY9iF5NnuXcBLLU0jC19njyV9
         ehgA==
X-Gm-Message-State: AOJu0YyTXu0yvSB4KSqhbCY+k9ulba9vLGFe7sPuiNT5Si3h51aqvFci
	4SVQfmkUxMvfwVCMm0wE/t0HBnSu/bFo3cCyd6TvC19DkqkiAPrrAsgijJPyGMTJJDzu12ryOTq
	xGo4=
X-Gm-Gg: ASbGncscS1vsP+nn2/eE5J23mr13Wxw3FO94z/BEmjpyebPT83ue1VfbU7f8Bi5Kpd1
	A1n4tMh5PNB+OQ6FSm8kJW/OdgfbRghL5qeS6aP3E9IAOk6BJaBlnUj/0V6nvv6HFmrS4kDqvPw
	wRQr7rJmx8wB8cI3x/XYYNQAo2VQvTc4do/6OpyEHeTgSP2iNSVEfOBGcMjdmJkFBGURgWJSYXj
	RuINr6/l5OmrGzaBo67VxvcNR3TM0qf+Bwh88h8nmtx516x3RA4XVUcbx2b2bhbeAL4tUz1l2FP
	xAMgEVMwdCeFUXSo2q9InohPITJA3+W5tyMf56amG0OiRCyTBeIlvH93gd6e1MM/fMFEWcBB9tG
	x2PUhKsRA/HvexVDBPTdq1C/XnO6dXRQ2PSBv49K61DM3IsWwQWeZNVk7rD6Yv0GL0Sj+qdoldO
	s+R0cxbxF9PhbklJoGO4kGK9krIH1m
X-Google-Smtp-Source: AGHT+IGBomTxEt8gXR/H3fLzs4mEoKoviCqbnHyXfWeXIKEOqVJKIE9YphHyTC1jsUEqOOl4VlYS7g==
X-Received: by 2002:a17:907:72c3:b0:af9:3ad2:6923 with SMTP id a640c23a62f3a-afcb996b207mr334753166b.38.1755178207183;
        Thu, 14 Aug 2025 06:30:07 -0700 (PDT)
Message-ID: <0a6b6fce-2cc8-4933-8703-399e4a4fdad6@suse.com>
Date: Thu, 14 Aug 2025 15:30:04 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 15/22] x86/traps: Introduce opt_fred
To: Andrew Cooper <andrew.cooper3@citrix.com>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-16-andrew.cooper3@citrix.com>
Content-Language: en-US
Cc: Xen-devel <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: <20250808202314.1045968-16-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.08.2025 22:23, Andrew Cooper wrote:
> ... disabled by default.  There is a lot of work before FRED can be enabled by
> default.
> 
> One part of FRED, the LKGS (Load Kernel GS) instruction, is enumerated
> separately but is mandatory as FRED disallows the SWAPGS instruction.
> Therefore, both CPUID bits must be checked.

See my (further) reply to patch 13 - I think FRED simply ought to depend on
LKGS.

> @@ -20,6 +22,9 @@ unsigned int __ro_after_init ler_msr;
>  static bool __initdata opt_ler;
>  boolean_param("ler", opt_ler);
>  
> +int8_t __ro_after_init opt_fred = 0; /* -1 when supported. */

I'm a little puzzled by the comment? DYM "once default-enabled"? Then ...

> @@ -305,6 +310,32 @@ void __init traps_init(void)
>      /* Replace early pagefault with real pagefault handler. */
>      _update_gate_addr_lower(&bsp_idt[X86_EXC_PF], entry_PF);
>  
> +    if ( !cpu_has_fred || !cpu_has_lkgs )
> +    {
> +        if ( opt_fred )

... this won't work anymore once the initializer is changed.

> +            printk(XENLOG_WARNING "FRED not available, ignoring\n");
> +        opt_fred = false;

Better use 0 here?

> +    }
> +
> +    if ( opt_fred == -1 )
> +        opt_fred = !pv_shim;

Imo it would be better to have the initializer be -1 right away, and comment
out the "!pv_shim" here, until we mean it to be default-enabled.

> +    if ( opt_fred )
> +    {
> +#ifdef CONFIG_PV32
> +        if ( opt_pv32 )
> +        {
> +            opt_pv32 = 0;
> +            printk(XENLOG_INFO "Disabling PV32 due to FRED\n");
> +        }
> +#endif
> +        printk("Using FRED event delivery\n");
> +    }
> +    else
> +    {
> +        printk("Using IDT event delivery\n");
> +    }

Could I talk you into omitting the figure braces here? Hmm, or perhaps you
mean to later move code here.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 13:31:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 13:31:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081737.1441749 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umY33-0007qb-6M; Thu, 14 Aug 2025 13:31:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081737.1441749; Thu, 14 Aug 2025 13:31: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 1umY33-0007qU-2r; Thu, 14 Aug 2025 13:31:17 +0000
Received: by outflank-mailman (input) for mailman id 1081737;
 Thu, 14 Aug 2025 13:31:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Hncw=22=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1umY32-0007SK-61
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 13:31:16 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f26c0c94-7912-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 15:31:14 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 766E96111F;
 Thu, 14 Aug 2025 13:31:12 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 02E81C4CEF1;
 Thu, 14 Aug 2025 13:31:11 +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>
X-Inumbo-ID: f26c0c94-7912-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755178272;
	bh=WW0xB1u8XI1L1gGsXl6wpt3WDXrr4yCiJlHi7BUNlCY=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=XqHxW8YW58Ln/tIjnGi73wY9qD5/Iqkzwyv6qop3T0s5v319Ftg/c1ujK3/+Pmp3O
	 3SJY9d+x4hq26C9R4ldz3ap27JZ3CK6dbddTXlBk+z2z09uVrOYjtUFTpeGlFvgNjV
	 L1huyBWZL3RmFzTXcCZe8HHfxLc3AApxz5Ss7QLL+ussS/TR5qi1rfohz3kzvuYQXA
	 z9fOR+m/fazEworlcK45UcqDrJLI+rHyeuLbz0YS0ZizqgTQFWAKE1JSOTRnlpXZlF
	 3y7wTMxm2dgJYYjVCyrbQbIxiWn20GP+y7nUAEOT4RU14M4Kgk2W8/qCK/ckcjXpyq
	 NVGeZpIDI1XVQ==
Date: Thu, 14 Aug 2025 16:31:06 +0300
From: Leon Romanovsky <leon@kernel.org>
To: Jason Gunthorpe <jgg@nvidia.com>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 08/16] kmsan: convert kmsan_handle_dma to use physical
 addresses
Message-ID: <20250814133106.GE310013@unreal>
References: <cover.1754292567.git.leon@kernel.org>
 <5b40377b621e49ff4107fa10646c828ccc94e53e.1754292567.git.leon@kernel.org>
 <20250807122115.GH184255@nvidia.com>
 <20250813150718.GB310013@unreal>
 <20250814121316.GC699432@nvidia.com>
 <20250814123506.GD310013@unreal>
 <20250814124448.GE699432@nvidia.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250814124448.GE699432@nvidia.com>

On Thu, Aug 14, 2025 at 09:44:48AM -0300, Jason Gunthorpe wrote:
> On Thu, Aug 14, 2025 at 03:35:06PM +0300, Leon Romanovsky wrote:
> > > Then check attrs here, not pfn_valid.
> > 
> > attrs are not available in kmsan_handle_dma(). I can add it if you prefer.
> 
> That makes more sense to the overall design. The comments I gave
> before were driving at a promise to never try to touch a struct page
> for ATTR_MMIO and think this should be comphrensive to never touching
> a struct page even if pfnvalid.
> 
> > > > So let's keep this patch as is.
> > > 
> > > Still need to fix the remarks you clipped, do not check PageHighMem
> > > just call kmap_local_pfn(). All thie PageHighMem stuff is new to this
> > > patch and should not be here, it is the wrong way to use highmem.
> > 
> > Sure, thanks
> 
> I am wondering if there is some reason it was written like this in the
> first place. Maybe we can't even do kmap here.. So perhaps if there is
> not a strong reason to change it just continue to check pagehighmem
> and fail.
> 
> if (!(attrs & ATTR_MMIO) && PageHighMem(phys_to_page(phys)))
>    return;

Does this version good enough? There is no need to call to
kmap_local_pfn() if we prevent PageHighMem pages.

diff --git a/mm/kmsan/hooks.c b/mm/kmsan/hooks.c
index eab7912a3bf0..d9cf70f4159c 100644
--- a/mm/kmsan/hooks.c
+++ b/mm/kmsan/hooks.c
@@ -337,13 +337,13 @@ static void kmsan_handle_dma_page(const void *addr, size_t size,

 /* Helper function to handle DMA data transfers. */
 void kmsan_handle_dma(phys_addr_t phys, size_t size,
-                     enum dma_data_direction dir)
+                     enum dma_data_direction dir, unsigned long attrs)
 {
        u64 page_offset, to_go, addr;
        struct page *page;
        void *kaddr;

-       if (!pfn_valid(PHYS_PFN(phys)))
+       if ((attrs & ATTR_MMIO) || PageHighMem(phys_to_page(phys)))
                return;

        page = phys_to_page(phys);
@@ -357,19 +357,12 @@ void kmsan_handle_dma(phys_addr_t phys, size_t size,
        while (size > 0) {
                to_go = min(PAGE_SIZE - page_offset, (u64)size);

-               if (PageHighMem(page))
-                       /* Handle highmem pages using kmap */
-                       kaddr = kmap_local_page(page);
-               else
-                       /* Lowmem pages can be accessed directly */
-                       kaddr = page_address(page);
+               /* Lowmem pages can be accessed directly */
+               kaddr = page_address(page);

                addr = (u64)kaddr + page_offset;
                kmsan_handle_dma_page((void *)addr, to_go, dir);

-               if (PageHighMem(page))
-                       kunmap_local(page);
-
                phys += to_go;
                size -= to_go;

(END)


> 
> Jason
> 


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 14:05:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 14:05:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081767.1441767 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umYZj-0007Pb-Oj; Thu, 14 Aug 2025 14:05:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081767.1441767; Thu, 14 Aug 2025 14: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 1umYZj-0007PU-Lf; Thu, 14 Aug 2025 14:05:03 +0000
Received: by outflank-mailman (input) for mailman id 1081767;
 Thu, 14 Aug 2025 14:05:02 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6Upc=22=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1umYZi-0006vV-36
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 14:05:02 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ab43d6cb-7917-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 16:05:01 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-45a1b0bde14so4899375e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 07:05:01 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-45a1c78b33csm23945245e9.25.2025.08.14.07.05.00
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Aug 2025 07: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>
X-Inumbo-ID: ab43d6cb-7917-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755180301; x=1755785101; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=k2xvaITA3b0kdsxlFAbZtv4pFa7e33kAas+Pqqz57dY=;
        b=JR9wAzFhrtm7v7+5HgcTX31VP1YOI1z+lW+ixQedhAfHM5qSjC87js4bPG+0V5Ckxi
         4HZqGcjtLstnxlNdIfMu5/QwArVFurMelG7VzAEP6MkHQ2Aj4K4JwPPb2WkEMN/+JweY
         Hx+RcwIZq1IUyKUkTMTf6wsgR+L3R5B2uQtcQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755180301; x=1755785101;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=k2xvaITA3b0kdsxlFAbZtv4pFa7e33kAas+Pqqz57dY=;
        b=CbEhn7kJfe8M4NbG87oOgLXxX+LWrdlek3+4jNqalvUTh+oBqUFE7yCQLEwo5dMBRW
         P4q2lN9olWK/i0QfPoJBcZWosk7WCM5BEya21/uIc7V1fDnyT2HLNy/FfoJzXwCZmyMG
         bNIVGfd+g6ikQ2s0WZWE4sN9beX5j1dj2TjdTdVzOHxM/Wg07XyNIoAboYgYeIaSI0N8
         1gAQMET/j0AyqnyMUxmrfa+gu7kVJaCtdiULO7fQC54VtLcENYIppYa4Jw2/4xH2oOwc
         j+wvNWgYzwgmBvmUWB5itQ3YV1TsZQC/tkSJ5zPA1eGn6QuYbZmV/j9L6Ox+KhBTDDx8
         ekdw==
X-Gm-Message-State: AOJu0YzFieqILiGi2G9PO295Pv15z66LcVloNUHY+6WibIILAce71oQ5
	uizPx8XYY4sbLYFV19oWFVIcmzqr2PL9ofnig521i7fuxIkX+ftzrBE0wNcNmGIatIs=
X-Gm-Gg: ASbGncuAHZiXFNh2aBBkKRglrjUKSdE06F6Fn0MMaxv78M5GirwJzTiwrwyMCyfM9aY
	1KWpQOExBR76xbGCKx0Gp1g1KDnAInL6oGjuYSEefuOBU1xFEcTY0wBLzZCWcVrTIdTx6X22Phe
	srD67GXhoO08Fq+2nbAXLqlzO3dckvmTRWX5IXrg+j1ajcBqwT4FYIOUoMhrtdlcwZng8EqnzNH
	bFNR8EY+R+vNP+s2cS0lEq8/TSLnBaI8ffyBevuKqvon1LrToUUhcEk2x3Sstj0gI+uWQXIXfye
	plZi4JAe8vxfzsTgch4RVBQVZiq15ouG7kW5hJMOD77S9B0pAhuw0SGmN52h2T+G6YPT6SZwVuJ
	SyGdjxQAh54JGJVLyBPhQqIm9Xyb8gc2VW8Ho7V1PBrvjTKq9YchAeTJghREyRwUIPg==
X-Google-Smtp-Source: AGHT+IHpiNAwz1bjaejTn8Am/As73IbST4bvPRvozdYr0Z3+R0X6wSqfXHJtwYY95hM7tJYktlVLGA==
X-Received: by 2002:a05:600c:4509:b0:459:443e:b177 with SMTP id 5b1f17b1804b1-45a1b6682f3mr23512835e9.25.1755180300783;
        Thu, 14 Aug 2025 07:05:00 -0700 (PDT)
Date: Thu, 14 Aug 2025 16:04:59 +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 v2 1/2] x86/mkelf32: pad load segment to 2Mb boundary
Message-ID: <aJ3tC9h0ERajD-Ya@macbook.local>
References: <ddfd86ad-19b3-495b-930c-1770dd92fa99@suse.com>
 <6e295921-0432-435e-9efe-51caa106f203@suse.com>
 <aJtpXOM2AERnOCrH@macbook.local>
 <38430fbf-a6e4-4ba9-bbff-2279108721e6@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <38430fbf-a6e4-4ba9-bbff-2279108721e6@suse.com>

On Thu, Aug 14, 2025 at 09:02:35AM +0200, Jan Beulich wrote:
> On 12.08.2025 18:18, Roger Pau MonnÃ© wrote:
> > On Mon, Aug 11, 2025 at 12:49:57PM +0200, Jan Beulich wrote:
> >> @@ -339,9 +340,12 @@ int main(int argc, char **argv)
> >>      (void)lseek(infd, in64_phdr.p_offset, SEEK_SET);
> >>      dat_siz = (uint32_t)in64_phdr.p_filesz;
> >>  
> >> -    /* Do not use p_memsz: it does not include BSS alignment padding. */
> >> -    /*mem_siz = (uint32_t)in64_phdr.p_memsz;*/
> >> -    mem_siz = (uint32_t)(final_exec_addr - in64_phdr.p_vaddr);
> >> +    /*
> >> +     * We don't pad .bss in the linker script, but during early boot we map
> >> +     * the Xen image using 2M pages.  To avoid running into adjacent non-RAM
> >> +     * regions, pad the segment to the next 2M boundary.
> > 
> > Won't it be easier to pad in the linker script?  We could still have
> > __bss_end before the padding, so that initialization isn't done to the
> > extra padding area.  Otherwise it would be helpful to mention why the
> > padding must be done here (opposed to being done in the linker
> > script).
> 
> The way the linker script currently is written doesn't lend itself to do
> the padding there: It would either mean to introduce an artificial
> padding section (which I'd dislike), or it would result in _end[] and
> __2M_rwdata_end[] also moving, which pretty clearly we don't want. Maybe
> there are other options that I simply don't see.

We could move both _end and __2M_rwdata_end inside the .bss section,
but that's also ugly IMO.  I would probably prefer the extra padding
section.

> A further complication would be xen.efi's .reloc, which we don't want to
> needlessly move either. That may be coverable by pr-processor
> conditionals, but I wanted to mention the aspect nevertheless.

Yeah, we could make the extra padding section depend on pre-processor
checks.  I think I would prefer the usage of such extra section rather
than mangling the elf program headers afterwards, but since we are
already doing it:

Acked-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 14:14:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 14:14:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081777.1441776 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umYjA-0001IA-HF; Thu, 14 Aug 2025 14:14:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081777.1441776; Thu, 14 Aug 2025 14:14:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umYjA-0001I3-Ec; Thu, 14 Aug 2025 14:14:48 +0000
Received: by outflank-mailman (input) for mailman id 1081777;
 Thu, 14 Aug 2025 14:14:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=48gk=22=nvidia.com=jgg@srs-se1.protection.inumbo.net>)
 id 1umYj8-0001Hx-Sq
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 14:14:46 +0000
Received: from NAM02-BN1-obe.outbound.protection.outlook.com
 (mail-bn1nam02on20628.outbound.protection.outlook.com
 [2a01:111:f403:2407::628])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0655a8c6-7919-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 16:14:44 +0200 (CEST)
Received: from CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13)
 by MN2PR12MB4111.namprd12.prod.outlook.com (2603:10b6:208:1de::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.16; Thu, 14 Aug
 2025 14:14:38 +0000
Received: from CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732]) by CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732%4]) with mapi id 15.20.9031.012; Thu, 14 Aug 2025
 14:14: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>
X-Inumbo-ID: 0655a8c6-7919-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GU/BvIQz3DTXmYOdGLkh+HDcnJ9GH6Ik0rR2UlhlkjgtsQw8N4vsmdx5kcxRf1WgiDTFsBFEFGCSOko8OFp8bcXwF0hLK8E2XfhX0cfhH5I7AKTc8bfK1oCZNB8hOUrPCxA7JqoaNyFbWZOU4PSR5v5zcdbb4Pi6IAJqPlmwtwt5n+8ppswVwPBEj5hbML3avj0BGinez1mF0WlYA/xUIcuC+4Yz/6i7lBq+K4ELNOTPkl/WJwqYJChB1021V9OXylSalQvRZo5fOoOymQUM9CxZOWx/1sXx2apLf+xlqGlUEg5dgzC29XiWSlL4YTx3cGe4DCq4i9yO3m3emvrROw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ruO6zNzO4KB71Lkb6cSwWsEi4wP8AIx5i5wd80Kfkcs=;
 b=yxXRDrAQc+7mUCPP3py13VkcS1bDJC/YtuPGqof3Dbi6jopCxGFfEmfXcscFobyNUqwyETyivD//2ExukT43zMU8DPwYweB66AXZvSW7ljhlr0o2/vukDatbk8XWea1IGCog2XUGb965zuON7Oi1oFRqgR/e5OGcC3T/24M3R2Jr8zGu7JUkfEmu/hSPmdnVDr1nrxc6Sv6eno/kHxyPD1iRzFQge7UqXIVIztrZq1sa2bpY5GJnhkzCLe3nTqMbnQxdBuWrjLPMcZpoJAQ+lzldYMFFiqton8T/2g+c7RazWm2M8DRfrfjZtFQlr8XAR0JE5uKUGS8qMHAMaeuh1w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com;
 dkim=pass header.d=nvidia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ruO6zNzO4KB71Lkb6cSwWsEi4wP8AIx5i5wd80Kfkcs=;
 b=EiAYv4Epcj8RrMO6/lmFl5X0ZqQ0yWhj19Yc3cOkghZpr4a1bbc5yMdbT1f0vEPcgbNCsQAgCHa7U3LhYuZ2jA6OuLoHt0l3aNOOcRKggQiYDbY9m/dhtGEg2z702BeZKdwnrZPLRAvHrOOjGd32buyV/OPmF9MN5ZEVSb6qVP0E4ZTjl/cTiBDg4s268TtVbm4e05g1mZYPEdzALI4QDba7IXBgt5LP3IIAN2GSdJCmZKDqCmihxrUJocW9FnMDtcI5LPQQA5kYxifJpOMGXkhBO3C6faR18kGIZvtz3eWdiF80hllGZZm7PRUiB7Ga6i1QdJmTse+JWnvkMxGBEw==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=nvidia.com;
Date: Thu, 14 Aug 2025 11:14:37 -0300
From: Jason Gunthorpe <jgg@nvidia.com>
To: Leon Romanovsky <leon@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 08/16] kmsan: convert kmsan_handle_dma to use physical
 addresses
Message-ID: <20250814141437.GH802098@nvidia.com>
References: <cover.1754292567.git.leon@kernel.org>
 <5b40377b621e49ff4107fa10646c828ccc94e53e.1754292567.git.leon@kernel.org>
 <20250807122115.GH184255@nvidia.com>
 <20250813150718.GB310013@unreal>
 <20250814121316.GC699432@nvidia.com>
 <20250814123506.GD310013@unreal>
 <20250814124448.GE699432@nvidia.com>
 <20250814133106.GE310013@unreal>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250814133106.GE310013@unreal>
X-ClientProxiedBy: BL0PR02CA0137.namprd02.prod.outlook.com
 (2603:10b6:208:35::42) To CH3PR12MB8659.namprd12.prod.outlook.com
 (2603:10b6:610:17c::13)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PR12MB8659:EE_|MN2PR12MB4111:EE_
X-MS-Office365-Filtering-Correlation-Id: 6e3ba93d-4319-4e2a-c39d-08dddb3ce778
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7416014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?WgfRGDEKKHuNso3gGtoTuh6waQ9PCACwW3Xer9wmxp9cTa3pI6GwFYV/fJwL?=
 =?us-ascii?Q?uMkVfKCSxkLu46+hc29ievexAGINSRbhu7JYwTU0XfwC3xuq+YaufFGnn3Vn?=
 =?us-ascii?Q?cpMOGqWuXDbpmMy1LmmxLX4aDD9c/RqOmAZJpv5mfDHm2clHXS4UgOzngTmD?=
 =?us-ascii?Q?pbnofH4YtXT0ZgTGt6BiOFvtENoyZJKCby7Mjhgffi7jeZkXgNkkuF7vGmDh?=
 =?us-ascii?Q?khvbdocQDP08VF8PzLtV9eIf8x5rWeQfu6y+bnEf80Xy+CimU6ZVs1mHDn8M?=
 =?us-ascii?Q?Va20NUjK0kGA2V9cveBWcp/bdylGfAuil7IpGcakYsc2DunpQ+m0adkeTAZu?=
 =?us-ascii?Q?pt97X1t1VXWEBN7qg11nJjbx87HF0c35kmDZeoane30eKI1Bwgqzk4KxsN0k?=
 =?us-ascii?Q?z2GHRAf+JSgcqz0hbOjiQq+F9anqyTVIQdz+aJh1ukalLlr/564G3PicNHbt?=
 =?us-ascii?Q?LPr49wr+78ylFSDEfISFwIgF+JSVYmhqvuofMjkbjsA2VuQjCYrOBrsJSYKf?=
 =?us-ascii?Q?wMjG6p7RvK/pfthf9CtYkKkCAiTp8ebvlOWY8iJxJxT8mucsIvDTNZU4NkDb?=
 =?us-ascii?Q?v0z/o73VHfPBC27fiQ7o+HO5EAktvti/ZcKDRf08rN7aiM8orpyNVQjVcAE5?=
 =?us-ascii?Q?VqHSsE83Ap2qOC4Wx7MWNvrlIahR76FdEunsArmKGx+5oAodiWNfvS0YGRN2?=
 =?us-ascii?Q?VrwJ3wryf4khSFgTIn+gN6nhx0u6l5XkEYHm7FDjqJl4vRLw4hASIP8RPhdg?=
 =?us-ascii?Q?FUVWaoCQo/loIiSItLdVI/vuuhQeMh4Pd3UBiEK+RdifW819zm9snPMqmXPd?=
 =?us-ascii?Q?yzLK5bGg6d9o7ql2oRHHkDSuSxqkaRfTpIPOj+3Ik6+IdkEH819IP0T984MB?=
 =?us-ascii?Q?GERjJw8I3qTw4+P9ABEaHpJZMCGPKunnLkCiBknbFemf3qrgbnlF4PYGUlEf?=
 =?us-ascii?Q?R9s9oEj6fb7pdgt3Z7D/tAq4XuVinG6vE9c0bI6Oie9pipyRh4zv9StX+RUC?=
 =?us-ascii?Q?RGoziCckT/sAPKLn5kmwdLJ2Bkrg6FP8q2mAIgX3tkXxcQyI5/yb17j9TwAC?=
 =?us-ascii?Q?lpzSIu+TbmEYvn8q5IdYZyx5DES0g/s71DK8Ti7Ec6jOzGc6oio27eoJysym?=
 =?us-ascii?Q?nGN83B0XBGN+5RqszR5hWf9HIdGLIWbj5T/HjUYiuiv9XOsIw9JalLguZMxu?=
 =?us-ascii?Q?Hf0Ft6F9d+Wvak/bdzCaK099hIAZdCOQOMhLaduD5CPwfLnd28P1Bhq7q0oy?=
 =?us-ascii?Q?zB5CNRS3xpulZ+kuvwZqEWJlgn3X7IkhLKPVXqqsSy7EdOFAsB5mpKbBM6jY?=
 =?us-ascii?Q?xXn942Pbh5gEZhdr6pQyBJvhkJWKgRDJ2qcsJ9lk/aMqe9n2ldHihoCyfuvk?=
 =?us-ascii?Q?LbSAMpXbaPP9O8ofI1/42MZWsfBTk9ZAceTNxZbfU7nYlIeRaEzyLAZLLkDf?=
 =?us-ascii?Q?PugFFIpY5EA=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR12MB8659.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7416014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?Ms6U7vBXPCNXfF0GBhVl67iuvMBy5svsyOMzkXNcqhzlYf1dmYfKq2Nmij66?=
 =?us-ascii?Q?OVFGvrCOTzbOh059BMs8Tv9pRrZyWfT6AoFkl6pqlLn1AwuNLIUBcjypj9Si?=
 =?us-ascii?Q?DisYDAzEuEmEY8ycUcNzX50mNwZqWctD3qkLmCe6DfDlcBmbBuzMI+ce+KUB?=
 =?us-ascii?Q?6B2e7Wgunr8p4yJYBk5XBHGix/CkyA6NI+7rhX+6KxvyJcboBaP7kGqSLNmq?=
 =?us-ascii?Q?+KxNz7lYKeI2HFVQ8imPYyMAANP6ep7ViJxkO7OUDseBi9qt/ce7kSCoalyF?=
 =?us-ascii?Q?wo/ef9acXkJMbu5DDF0AXieNFw7wQYWAjfko1OFeF1fe/cQw0JoTSj5MZzhm?=
 =?us-ascii?Q?LxPUPWHGEPd9ipfz3oTPSl5tb1ts4zqUOGB4W7PRmEsS1PQryPt1Auy+kCoo?=
 =?us-ascii?Q?x5HrqWo3yCR6xYlpJ2CKzWgAzDzJFjn3lA4RRzZW/5Rmja+E8m57KY2u1CPX?=
 =?us-ascii?Q?w00gf6QzDLL6kxLCEUGqHWvYlhF+TAVPT45UaBUe7+zAvpXZJWT4qK3BB+fu?=
 =?us-ascii?Q?nsiuwGIKa+U+yHvfI/3QxGP1J5OWvjcX1f8OmTtQxj7heNGEf2nYwiVKqRwA?=
 =?us-ascii?Q?zFpBrMRMlp4V2p+m7y4272Rvs+6mXdf35v1RIb1GwREMyrZXXTTEKFc/qesT?=
 =?us-ascii?Q?/eyXLujUQ7citeil4d8XUsdbwnea7L8Ng5Lj35chGwPoAAU73YMaupxQ4DJV?=
 =?us-ascii?Q?sDA3RpAfP+C/qKCvYjs+uDSQfg19c9GPIvAzL2mB5choh3ThGojNaTxt21wz?=
 =?us-ascii?Q?2OWWSQbqxheAY2Ie/XZUrM+fulMsQgneFpJfX1uCK3BYY3REG8qiHcYQcIDv?=
 =?us-ascii?Q?Mp/HyTJ+r5eeOqgN3rwUK2nEKoSXN6xcSN1K9PWZvCVVXw4D3bNH7L6s0+s9?=
 =?us-ascii?Q?wkySC5pM60VQHd8f/+hCv+tlHvaP2MPRTKmhKAkbobGb4WhBzQqSYZA7TY73?=
 =?us-ascii?Q?yukjLnK/vX0ZRyl/TVGMVuZ2lSdjNfFhBIQ7MG9eZi1o3TLQ4QDCFlR+ZiYT?=
 =?us-ascii?Q?Dfnv3T2LSKCksXjW69M239HzwkibI36EpyYyjfzZLrrnBWMQbRVqNKj4oA56?=
 =?us-ascii?Q?EYklt+EqszRlpS/LmjnVgif78n3Eb3RdRH8bYqx7oLD5mr01Hd6hGMo1fkhw?=
 =?us-ascii?Q?ALOjdVyv93NltYqgqO/AWdryKewXkFSpcQUI8SbO4EAlSL57X/PVnw3ixwyE?=
 =?us-ascii?Q?VnAcBOD10mUTQ4fztbJXcAmZWihBN+Dm1OKQmzHrXrOPblHtKgpos4Hcijne?=
 =?us-ascii?Q?yGBu3B1ET17jPIbAMJ/YiMb0MS6Ajq4RYxkfYfklDymLw4v697LNdTEA/e8T?=
 =?us-ascii?Q?S61phmSvM8ieJ7/mxeLujIRjQ+wkqDdszaaxQaOHVb9X/kh5Bzhcg3E1d+Yt?=
 =?us-ascii?Q?vmZ0WOYbT7opDnmYKQryUIbKXFxeYevn7YRSnKElJmwTNScKbhq8DcsdNnkl?=
 =?us-ascii?Q?exe1kSYhiadVK8Va5w7vBTB2ics02mUjfwdQQf2YkuOBJUcaaJFjCoPnyw/9?=
 =?us-ascii?Q?ZZgPIjMlMGxv5RQJU1oOs/y+Q35UxqyCbBx7IXQBVCRn464QWGHBBiSMnUCU?=
 =?us-ascii?Q?Wej8KLKb55TFSByZORY=3D?=
X-OriginatorOrg: Nvidia.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6e3ba93d-4319-4e2a-c39d-08dddb3ce778
X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8659.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Aug 2025 14:14:38.6057
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 7kxcnpRJdzkjJSknvpZS0FJdfGyvwWOi0/OrxCvD+JZOt7jnM+9F/HzOjYt2sbRA
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4111

On Thu, Aug 14, 2025 at 04:31:06PM +0300, Leon Romanovsky wrote:
> On Thu, Aug 14, 2025 at 09:44:48AM -0300, Jason Gunthorpe wrote:
> > On Thu, Aug 14, 2025 at 03:35:06PM +0300, Leon Romanovsky wrote:
> > > > Then check attrs here, not pfn_valid.
> > > 
> > > attrs are not available in kmsan_handle_dma(). I can add it if you prefer.
> > 
> > That makes more sense to the overall design. The comments I gave
> > before were driving at a promise to never try to touch a struct page
> > for ATTR_MMIO and think this should be comphrensive to never touching
> > a struct page even if pfnvalid.
> > 
> > > > > So let's keep this patch as is.
> > > > 
> > > > Still need to fix the remarks you clipped, do not check PageHighMem
> > > > just call kmap_local_pfn(). All thie PageHighMem stuff is new to this
> > > > patch and should not be here, it is the wrong way to use highmem.
> > > 
> > > Sure, thanks
> > 
> > I am wondering if there is some reason it was written like this in the
> > first place. Maybe we can't even do kmap here.. So perhaps if there is
> > not a strong reason to change it just continue to check pagehighmem
> > and fail.
> > 
> > if (!(attrs & ATTR_MMIO) && PageHighMem(phys_to_page(phys)))
> >    return;
> 
> Does this version good enough? There is no need to call to
> kmap_local_pfn() if we prevent PageHighMem pages.

Why make the rest of the changes though, isn't it just:

        if (PageHighMem(page))
                return;

Becomes:

        if (attrs & ATTR_MMIO))
                return;

	page = phys_to_page(phys);
	if (PageHighMem(page))
                 return;

Leave the rest as is?

Jason


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 14:47:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 14:47:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081831.1441787 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umZEl-0006mT-1A; Thu, 14 Aug 2025 14:47:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081831.1441787; Thu, 14 Aug 2025 14:47: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 1umZEk-0006mM-UU; Thu, 14 Aug 2025 14:47:26 +0000
Received: by outflank-mailman (input) for mailman id 1081831;
 Thu, 14 Aug 2025 14:47:25 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xqZt=22=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umZEj-0006mG-T1
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 14:47:25 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 96e20d97-791d-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 16:47:24 +0200 (CEST)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-61868d83059so3661550a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 07:47: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
 4fb4d7f45d1cf-618461ab3dcsm5798551a12.56.2025.08.14.07.47.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 07:47: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>
X-Inumbo-ID: 96e20d97-791d-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755182844; x=1755787644; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=0PzSZX8cJpRvZEoRZks2M9zfbhZ+zG35XO5dF7p2NWk=;
        b=IZ+is3aUpTNfwEv0rR3CfWRTZDYGQ8JR0SeCcwTZMYWmmOCxcHAWY/Pz4KcThrlOSg
         R4+L0fnCw4xgKoA7uNdSAzhAg7D17w3JNVZRkcdpFTHAk26JAEXSh4hpJ8/9Bvhb5oqK
         +pd9GCt6kEH75SUtFbyW+JxkJfYoyg85KAX8uNPSCJRPtJhQnyJYXDRkeRet5Y8zoC0w
         6Oy4dfBELnf8veaO9fqVAPJJq4FlWOpSMjBYzRB1yobjJbdqfDYnw7Da1O045F5XUilu
         hfKACAs0rUk8f18O+FtN/4O/NqUz+DrkHWkahhEW3/kRAVShrTqAsZwZF91vRaXDzUR2
         DYhw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755182844; x=1755787644;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0PzSZX8cJpRvZEoRZks2M9zfbhZ+zG35XO5dF7p2NWk=;
        b=Aj4trdixTvEMJHGViTm7MPP4j4+Vj6Na7XBR+HsNwFD5TP1N4pnNIvWkWB/6GrgS2t
         1MmA1JYdnWe31dxV9ddtmeBQfruACogqP1LqXVSX8naRWrth+J7cRDkHWBFLuu+1pgbA
         6T40HWBgrkHlOfnZ1+qIKBS5/pIHeqbk+mx7WZmI+eyrGkLmSC1fq43uC61QEC/ytgY0
         /+2oKS6rDG5Htog5MzL4FUFv7eHSdsxRslouhw/23es06h973R6gUDpBcRqQkci095wY
         R0yZMOtHdbdDsEbpc9PZA3ALYGOM1FQyQ2jSOv5eJGyCM50m41Phq/tExWUA1kaPcev/
         B5rg==
X-Forwarded-Encrypted: i=1; AJvYcCV7z7issA7UI8bMZzc7XSpW6piEj3f8TBmjL1T1WstEWKOAZI3eGQF0HrF4gfMbf7kYqGBz7KT2yWw=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyp0/b3IVSSecX0U0hqsL45DScyVHbG9UxbBNlXx7prqnYwMGoq
	ZeyYG5IxLiczpT3j2tbKxm3h7pF6y2szjR3ZZ9zrnN60fNfkl9ZQ63UiktsVyt+1ng==
X-Gm-Gg: ASbGncuB0X5D+C35tMH1pl+KGOdB0QDztBxyRKpAtOVfVQYEzkf1OJgXjZMigXvGuU9
	dD9fwR+jFzZQGnVAutY5c+g5YN3alFMOc4Qm12N5ieUMMO3pa/jXLy5taO5IaFRAenV3gJ+5PSV
	D/GYpGnoklKILXTEfouo5O8gX7emUm5zrJ+IynVy9GLLrGzzV3kqAs2bGkY/9FQyyzNjDW3ISQ5
	g/w9lpbEtCdwEQe412p7ZpEJ7NU5eE/mHG4ATc364mazYQhsaDl3B7huZjy6gpZOPs6YU3cR4cw
	BwWmP58QPWijaDI57Nuw2qL961GQinfyGr2JmOF23GvV6bYtx2SZQqnZ3MJdvGfSdOSUZaHQJp0
	FxnKei6noxGDV3sBgbq1s3M06HcpijMuYBpObEvp3wmqLfu/iFsCbjZz9tcISc/YmuhOQcwq0wM
	shy1C0DhLiWFNt82SH+zwNaqqL+THa
X-Google-Smtp-Source: AGHT+IEIv2Qy7vMmzbW5n9n9O93ylH3tlTgGIyvq9jsyUIn2j4PVkhALpFA1QgwIV1Z+TDeZxLjXMQ==
X-Received: by 2002:a05:6402:2188:b0:618:780f:e89d with SMTP id 4fb4d7f45d1cf-6189199fa41mr2801632a12.3.1755182843558;
        Thu, 14 Aug 2025 07:47:23 -0700 (PDT)
Message-ID: <270b2ad1-fb8a-4a0a-8733-a8f3f8f25a94@suse.com>
Date: Thu, 14 Aug 2025 16:47:21 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 16/22] x86/boot: Adjust CR4 handling around
 ap_early_traps_init()
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-17-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: <20250808202314.1045968-17-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.08.2025 22:23, Andrew Cooper wrote:
> ap_early_traps_init() will shortly be setting CR4.FRED.  This requires that
> cpu_info->cr4 is already set up, and that the enablement of CET doesn't
> truncate FRED back out because of it's 32bit logic.
> 
> For __high_start(), defer re-loading XEN_MINIMAL_CR4 until after %rsp is set
> up and we can store the result in the cr4 field too.
> 
> For s3_resume(), explicitly re-load XEN_MINIMAL_CR4.  Later when loading all
> features, use the mmu_cr4_features variable which is how the rest of Xen
> performs this operation.
> 
> No functional change, yet.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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

> --- a/xen/arch/x86/acpi/wakeup_prot.S
> +++ b/xen/arch/x86/acpi/wakeup_prot.S
> @@ -63,6 +63,14 @@ LABEL(s3_resume)
>          pushq   %rax
>          lretq
>  1:
> +
> +        GET_STACK_END(15)
> +
> +        /* Enable minimal CR4 features. */
> +        mov     $XEN_MINIMAL_CR4, %eax
> +        mov     %rax, STACK_CPUINFO_FIELD(cr4)(%r15)

Strictly speaking this and ...

> --- a/xen/arch/x86/boot/x86_64.S
> +++ b/xen/arch/x86/boot/x86_64.S
> @@ -11,16 +11,19 @@ ENTRY(__high_start)
>          mov     %ecx,%gs
>          mov     %ecx,%ss
>  
> -        /* Enable minimal CR4 features. */
> -        mov     $XEN_MINIMAL_CR4,%rcx
> -        mov     %rcx,%cr4
> -
>          mov     stack_start(%rip),%rsp
>  
>          /* Reset EFLAGS (subsumes CLI and CLD). */
>          pushq   $0
>          popf
>  
> +        GET_STACK_END(15)
> +
> +        /* Enable minimal CR4 features. */
> +        mov     $XEN_MINIMAL_CR4, %eax
> +        mov     %rax, STACK_CPUINFO_FIELD(cr4)(%r15)

... this could be 32-bit stores, even in the longer run.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 14:54:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 14:54:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081841.1441796 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umZLL-0000Js-Lv; Thu, 14 Aug 2025 14:54:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081841.1441796; Thu, 14 Aug 2025 14:54: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 1umZLL-0000Jl-JQ; Thu, 14 Aug 2025 14:54:15 +0000
Received: by outflank-mailman (input) for mailman id 1081841;
 Thu, 14 Aug 2025 14:54:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xqZt=22=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umZLK-0000Jf-4W
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 14:54:14 +0000
Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com
 [2a00:1450:4864:20::536])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 88244208-791e-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 16:54:09 +0200 (CEST)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-6188b5b7c72so1389882a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 07:54: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
 4fb4d7f45d1cf-615a9113e40sm23880914a12.57.2025.08.14.07.54.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 07:54: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>
X-Inumbo-ID: 88244208-791e-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755183248; x=1755788048; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=KdCgU1v9HK6NrezqwvKMitSNFgouyHp1cNf1VReAl54=;
        b=XdPBkLg+1Vh5Rn3k9U0PUtuoTalh/5RtAe8Rk4C2OywZeVfU8LbS5WdHpziCZeSyIR
         zttC14fvj7dk2tkn1V8YgYH988HpQi8fs+QOYUhxPPbLc8iP1Uy5fjDPZpXLXSt3Bz3z
         kOEDrOMpC0lyFA0DNOD2hpF6+MUew3yiLf69tBupsybxHzdOYHl8vsKEbtn5sSdUWxph
         U4GbFlG1AFO9wsmZIkBMGTCESmbv9vFxb1jMiC4lN2rH7tFJzVZJgE3/LYvdl9ypfvfB
         THye3Najo4blIMAHxzeJCIRlmC1qx1YIKwKzR65uNTxQn65F601pzFok27fGUcSQqTZJ
         HfPg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755183248; x=1755788048;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=KdCgU1v9HK6NrezqwvKMitSNFgouyHp1cNf1VReAl54=;
        b=Jdi9/gx70/cVX4EvdfmYe7khOnpbERRIsa0jJY/zk5DrywViHsScvJ3UWFzU2PkFfM
         acSYoNHUJZkyGocnMkB/GIzxBvt4FynlyVUVgXHbTbxC84NgWo9ZCheLTYILJpxzD38w
         iGqzR4Hx4ubvarfw58vMpb956xQBS5eULzk3iKfUIkF6tD4m3j6TN/1XTsVpfU6i0yG4
         lUOlrIj5TcigdN7Kk0jO1xPgtE/VgYn7uOl1V++KP59RzOy4yNBDo5n/+R+rfY9Dixc1
         M0dImMPf42yytYMLbzednekuJKYvlDSl3r9+nPupY1VoKJ0EnLUrwA78R++weL6HBFgy
         Vxjg==
X-Forwarded-Encrypted: i=1; AJvYcCVj65VwNKIVNgY7TuVNJ9+P4R5xi5ECAKmjPagydWQ2GH09TGDhaNnUVhPBR1l5valya+anUOXRvkM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy3C9TrDUGuveHeP2rA6wIIP70FoWrOYSyAz8RMnSsIBkNmixpW
	r9fQhBkR3T6cvEJF3cN8e2TeRWH42GnySJRjpH6Rng58coJxE3hXjCwOcH27QMyHDA==
X-Gm-Gg: ASbGncum7kAOtYS0jQel3UPwQCKX0oYC2ocLQEGZ9FGGakSyHfLO2XeNbv3C9KynlJH
	Jk7dNnmkD+byGXc2znKNm/BZiW2Bdr55PgQlh2uhG3qRKkCAFWDcraZ/tpp1gRYMM/C0yjCjAwW
	zPpr8Ko6qqbOTQ2PnIQinCtf4ghE89sVvb7ubylRgGDWxC4zPCLbikRccAtwfft8YTjpWfGFwBd
	AT501zvsVgRS/1EKZDCpySeVH69r4RLuF6KK0zuFGdYPvNWLOQ9n7/cb53wbtS21Kc+VxZAIhST
	9LF4Vc3gBgW/Fa4TTaW5CIOkAow8yQvRFkV8SZkJDXvlk4/qwEECqAoOn3zh48RNyLhUjlyj2qc
	Sp6YnfLgKixBk2yOVmo3EFgvVtj9etNxT/vEEbx4DrB5P/Q2DgDezxEaKdRfzsRPlrgdimQdqWY
	ry7pjVdB1ILGhJ4TZAOA==
X-Google-Smtp-Source: AGHT+IGWAmz1kzEepN4KVbE5BgC9osFy0BlWS5O052n1+LjR2SPfInMoS1bbsIViHJFzDFn0obhEHg==
X-Received: by 2002:a05:6402:348c:b0:602:1b8b:2925 with SMTP id 4fb4d7f45d1cf-6188c21772cmr2549821a12.29.1755183248324;
        Thu, 14 Aug 2025 07:54:08 -0700 (PDT)
Message-ID: <50fd32ef-ac5e-4842-9d14-2d9b77a9d470@suse.com>
Date: Thu, 14 Aug 2025 16:54:06 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 17/22] x86/S3: Switch to using RSTORSSP to recover SSP on
 resume
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-18-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: <20250808202314.1045968-18-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.08.2025 22:23, Andrew Cooper wrote:
> Under FRED, SETSSBSY is unavailable, and we want to be setting up FRED prior
> to setting up shadow stacks.  Luckily, RSTORSSP will also work in this case.
> 
> This involves a new type of shadow stack token, the Restore Token, which is
> distinguished from the Supervisor Token by pointing to the adjacent slot on
> the shadow stack rather than pointing at itself.
> 
> In the short term, this logic still needs to load MSR_PL0_SSP.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 14:54:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 14:54:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081846.1441807 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umZLj-0000jC-Um; Thu, 14 Aug 2025 14:54:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081846.1441807; Thu, 14 Aug 2025 14:54: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 1umZLj-0000j5-RP; Thu, 14 Aug 2025 14:54:39 +0000
Received: by outflank-mailman (input) for mailman id 1081846;
 Thu, 14 Aug 2025 14:54:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mOIo=22=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1umZLi-0000bR-TH
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 14:54:38 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 99a15c1c-791e-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 16:54:38 +0200 (CEST)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-45a1b05fe23so5539755e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 07:54:38 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45a1c718769sm24600525e9.30.2025.08.14.07.54.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 07:54: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>
X-Inumbo-ID: 99a15c1c-791e-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755183278; x=1755788078; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=noOukp2jDrACz6eWCR9ThY7l9/cWKw/hN7a7w/5fP4o=;
        b=uRef+EhTobaUncSSwWFhhrmbDA1LIFmZJ4axSS5CWn8vM9ejsV9uzDzHjiV4+YVgg1
         409aJO35Jvmcg/ru+RLCSCarJEWrtdR8xokr5fQzmZ+TzL+E5d1Yl5woBT93qp4AT0RK
         UCFOntS2LfnpYJ5UJpKEyzOTzYP6FsoVMfwwE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755183278; x=1755788078;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=noOukp2jDrACz6eWCR9ThY7l9/cWKw/hN7a7w/5fP4o=;
        b=riDlzVNUt+p4e95/rtcONPLRidB+73B0z52WffzSxFTTTa9fVKEpREIgHH+VX0R3wq
         EuT47+X3L5eH33UUc/2vjEgsXAti0kAxYsV7/6V2KcLlEI5lHIyaQBYI7K07FUozgVrg
         diO6QXt5pP6jMudsPxHnOBNtR/FxylUDh8j4Oc8Qtg8vQvPe6GRQ2xNe/10LbT8kUMZu
         xCuFelp1awFIGzhr1+2Mm7ciuw8BNZRKJGC2tAjJDaJlJKHlI14rroJ+5X2uvsF2nNA8
         foTD0hUh0n8/Z1N4/fbGNubLDdR4QQwlfHzTfg+eqcAY0ilggMW2srDzs5HooJdzl/+M
         FmNA==
X-Forwarded-Encrypted: i=1; AJvYcCVrrlYpPMZIPScJIrBsGjS12TCKmPqYEcPK+oKlK9SOfsjcquNxcK487US4omba4xCdkd5bykxMqHU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxJ1c6f8/zhjIQFsy3+cnLNRcn3ekfuA0ZR6PIFXX6+P6Cr8Sbl
	iQP7lIt3W05olauwgMYlmFFRPwItu2aRbuIoXEIUksCDuhEpr/QVXTl/hgcpzZDKexeGV/SjIyR
	Yt//J
X-Gm-Gg: ASbGncvBhzq1WnKumBlVQVZCv9nkdgKP8zc/wIgDoLECCts9hzotfiotipZ+V4U3m/g
	DG1UK0f1v/LGaIA6TVJuq7hUQZ6iX4UYEYQDlya1UnksshJL4B18y0Gk42NQnEn78mHgipb8/uB
	UHVfDrv5IsDP1OQA8/lhWRjpZcSOuGb7qLlI3sjUrbe9S8bLSjpfviXKGylQtGzLFqe56/0hLLW
	SkUbWonv7s3YibNgzkG3eFet7h5MQNoZpFBHR+qjpmxvZioPNzz71vQ7rYP+ocHzL/IsamYnVBr
	hYM+utEIMWjw8gvAAT7Eiw35jfDz/lmrYnbOp1BDZ+qne0O/uBBHQpxV2SGP+tzj8kU1nY14h+5
	gosA5lu+mL5mNQ6X96vYGiN6G2GNSRTR2KxcfwV0j3b7RO2jsCO6LTZ2rtMrFnVSNML31F8dZEm
	lkUlc=
X-Google-Smtp-Source: AGHT+IENA+pPX0GmZBF330AlPfOMc4o1QZYQgpriXEHrrD+CoZ9optytRhBoYh6pRiPZhYrhtLGrhw==
X-Received: by 2002:a05:600c:4449:b0:456:1e5a:885e with SMTP id 5b1f17b1804b1-45a1b605ab4mr33197735e9.3.1755183277489;
        Thu, 14 Aug 2025 07:54:37 -0700 (PDT)
Message-ID: <64dc9f62-b48e-400b-8840-feff2f688913@citrix.com>
Date: Thu, 14 Aug 2025 15:54:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 16/22] x86/boot: Adjust CR4 handling around
 ap_early_traps_init()
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-17-andrew.cooper3@citrix.com>
 <270b2ad1-fb8a-4a0a-8733-a8f3f8f25a94@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: <270b2ad1-fb8a-4a0a-8733-a8f3f8f25a94@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14/08/2025 3:47 pm, Jan Beulich wrote:
> On 08.08.2025 22:23, Andrew Cooper wrote:
>> ap_early_traps_init() will shortly be setting CR4.FRED.  This requires that
>> cpu_info->cr4 is already set up, and that the enablement of CET doesn't
>> truncate FRED back out because of it's 32bit logic.
>>
>> For __high_start(), defer re-loading XEN_MINIMAL_CR4 until after %rsp is set
>> up and we can store the result in the cr4 field too.
>>
>> For s3_resume(), explicitly re-load XEN_MINIMAL_CR4.  Later when loading all
>> features, use the mmu_cr4_features variable which is how the rest of Xen
>> performs this operation.
>>
>> No functional change, yet.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thanks.

Unfortunately, ...

>
>> --- a/xen/arch/x86/acpi/wakeup_prot.S
>> +++ b/xen/arch/x86/acpi/wakeup_prot.S
>> @@ -63,6 +63,14 @@ LABEL(s3_resume)
>>          pushq   %rax
>>          lretq
>>  1:
>> +
>> +        GET_STACK_END(15)
>> +
>> +        /* Enable minimal CR4 features. */
>> +        mov     $XEN_MINIMAL_CR4, %eax
>> +        mov     %rax, STACK_CPUINFO_FIELD(cr4)(%r15)
> Strictly speaking this and ...
>
>> --- a/xen/arch/x86/boot/x86_64.S
>> +++ b/xen/arch/x86/boot/x86_64.S
>> @@ -11,16 +11,19 @@ ENTRY(__high_start)
>>          mov     %ecx,%gs
>>          mov     %ecx,%ss
>>  
>> -        /* Enable minimal CR4 features. */
>> -        mov     $XEN_MINIMAL_CR4,%rcx
>> -        mov     %rcx,%cr4
>> -
>>          mov     stack_start(%rip),%rsp
>>  
>>          /* Reset EFLAGS (subsumes CLI and CLD). */
>>          pushq   $0
>>          popf
>>  
>> +        GET_STACK_END(15)
>> +
>> +        /* Enable minimal CR4 features. */
>> +        mov     $XEN_MINIMAL_CR4, %eax
>> +        mov     %rax, STACK_CPUINFO_FIELD(cr4)(%r15)
> ... this could be 32-bit stores, even in the longer run.

... no, they can't.

The store also serves to clear out stale X86_CR4_FRED, prior to FRED
getting reconfigured again.

fatal_trap() uses info->cr4 to decide whether it's safe to look at the
extended FRED metadata.Â  Strictly speaking I probably ought to read the
real CR4 (in read_registers too), but using a 32bit store here would
extend a 1-instruction window into quite a larger window where exception
handling would not work quite right.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 14:57:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 14:57:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081859.1441816 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umZO0-0001Ni-8l; Thu, 14 Aug 2025 14:57:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081859.1441816; Thu, 14 Aug 2025 14:57:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umZO0-0001Nb-65; Thu, 14 Aug 2025 14:57:00 +0000
Received: by outflank-mailman (input) for mailman id 1081859;
 Thu, 14 Aug 2025 14:56:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xqZt=22=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umZNy-0001NV-Dt
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 14:56:58 +0000
Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com
 [2a00:1450:4864:20::635])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ec51acce-791e-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 16:56:57 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-afcb73394b4so161173266b.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 07:56: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
 4fb4d7f45d1cf-6186bfee29csm3585929a12.15.2025.08.14.07.56.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 07:56: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>
X-Inumbo-ID: ec51acce-791e-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755183416; x=1755788216; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SFMWPIq33IJFQo2G4W2Ln17Ppbie1swlU3g+evqZSEM=;
        b=NFEBxRtTUf31ZNfMNQDIfKYqy6omseE8ooXjlzPiKod+NTl06+YNq68iPMLW/UkVej
         BaAIF/tuQrDxkMJcQi8hyVpxbhDT3K3bJYZXlVN8x510W1W0V8Xg/4TqdeXQ5Uw/7jhk
         PmCYXL0nqNr23pxxIi1WCWwhdSVK79n+LC643TJAJCr5WR9hT5S1JX3+zpDNX++qqKVn
         HC1Dsl+59Dm/tg3cgq+82v0KERkI9gYmBPtJA/l/5+b7mdkzMzZPBMTMdoiWvyPTI1g8
         GiVk5yvUQZRcwCHlR4J8XZtnWqwQ/n0quARDFw+CyqQLRA4g25+Y8fIJi+knQjR7qgM5
         K2nA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755183416; x=1755788216;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SFMWPIq33IJFQo2G4W2Ln17Ppbie1swlU3g+evqZSEM=;
        b=NQSZfTJhuLrGfOfku9hvOg9Qth0yw9J4gAaWeYX198Yz7rFNzM6mbefF408IlU7s3O
         9lPDSGlDzAYnN7aJArB6a9fmS/BIBvw6DrQ68ZMVtOtL82Ra/8FRz6zpjeswNOeDtrIM
         NY3RC4yXD1vbhbqrFIV7c8eNtYj5vRrqMOnxABqXdQ2g1242U4/hmjdjLjWawEpUzUgH
         +Mx45m0LFCZZI/CreTe2SIwvHgTXee3snAZKnwDuiXCoUKB6P1K0DPI60gnE0Ne8N0Ve
         Bb9PBcIcva2ks/JUj/tj/Sw8RXv5TNCaR+UvdU8cxP/ROsuf0nzjXsrDT+H0HJwWbOt5
         3/dw==
X-Forwarded-Encrypted: i=1; AJvYcCUHJJrqP1VoBVub+jPNA1uar25ouibtg73xCItz25D6nR8gcb0+5EW+2UZI/e4SZgQiaC0z7BY78c4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx0JeNsUtxpKeMCzjtsAvGCLPIurKUGfG1xvejepC0xqtWKuySd
	d0CheC4B7czS66KHDmXO5Qt9OpNGFZ0KEWXNqPsbgZhXEPqpQW8MZhMq04qN3wMrCg==
X-Gm-Gg: ASbGnct4T/AJlFKv+w5NZQbwbthMv/fxkEPdpbtCzZMPjJW8eMhpWRGDaesAhTi2FMw
	Rz3Tykl0PmLrwQhVbSqWmjYUiFxq0pFAZvT/AsztoG17CSg2kSD19RIOi7rQoNG99OFDCgIb5wo
	ArRugw2ZjIn0jaTycmEThYU01E2Mt+p9Pof6hveRyVGFXB3gEz+AWDzzrnnj6xsCC1qEJpblh3S
	e+Ip4mV/yjMhCiBX8dFyYQe7d+KH7837Rk9l7D3hAf7L/vt6Wm/G2q3VDfUMbDM3PZS5vrCL+Dz
	kS14OqruIqcEr+mgZkG7+LUw5gra+qcRm+BWhEc16Y+0Sr0GaaKCWK6fIYAEdF8DJcjVAJiGPBd
	K/2teDc3xYhDo/topW6NUbyIydi0w56/lCZPaVA6Nwo9g9HunPvWcukpAk/TXrz4XDK/9MstWF+
	vqsHhJxzA9e87j39eA4g==
X-Google-Smtp-Source: AGHT+IG77hDj9tT7Q8JU8O+pnimKqfobWfOHAhYuisvLU9jLxjWgrRTlVpAtzJZVQpvkUWyDISqhFA==
X-Received: by 2002:a17:907:9814:b0:ae0:de30:8569 with SMTP id a640c23a62f3a-afcb93a26b3mr291816266b.1.1755183416399;
        Thu, 14 Aug 2025 07:56:56 -0700 (PDT)
Message-ID: <b4315516-289f-4495-a0c7-f504f92ec5cd@suse.com>
Date: Thu, 14 Aug 2025 16:56:54 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 16/22] x86/boot: Adjust CR4 handling around
 ap_early_traps_init()
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-17-andrew.cooper3@citrix.com>
 <270b2ad1-fb8a-4a0a-8733-a8f3f8f25a94@suse.com>
 <64dc9f62-b48e-400b-8840-feff2f688913@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: <64dc9f62-b48e-400b-8840-feff2f688913@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14.08.2025 16:54, Andrew Cooper wrote:
> On 14/08/2025 3:47 pm, Jan Beulich wrote:
>> On 08.08.2025 22:23, Andrew Cooper wrote:
>>> --- a/xen/arch/x86/acpi/wakeup_prot.S
>>> +++ b/xen/arch/x86/acpi/wakeup_prot.S
>>> @@ -63,6 +63,14 @@ LABEL(s3_resume)
>>>          pushq   %rax
>>>          lretq
>>>  1:
>>> +
>>> +        GET_STACK_END(15)
>>> +
>>> +        /* Enable minimal CR4 features. */
>>> +        mov     $XEN_MINIMAL_CR4, %eax
>>> +        mov     %rax, STACK_CPUINFO_FIELD(cr4)(%r15)
>> Strictly speaking this and ...
>>
>>> --- a/xen/arch/x86/boot/x86_64.S
>>> +++ b/xen/arch/x86/boot/x86_64.S
>>> @@ -11,16 +11,19 @@ ENTRY(__high_start)
>>>          mov     %ecx,%gs
>>>          mov     %ecx,%ss
>>>  
>>> -        /* Enable minimal CR4 features. */
>>> -        mov     $XEN_MINIMAL_CR4,%rcx
>>> -        mov     %rcx,%cr4
>>> -
>>>          mov     stack_start(%rip),%rsp
>>>  
>>>          /* Reset EFLAGS (subsumes CLI and CLD). */
>>>          pushq   $0
>>>          popf
>>>  
>>> +        GET_STACK_END(15)
>>> +
>>> +        /* Enable minimal CR4 features. */
>>> +        mov     $XEN_MINIMAL_CR4, %eax
>>> +        mov     %rax, STACK_CPUINFO_FIELD(cr4)(%r15)
>> ... this could be 32-bit stores, even in the longer run.
> 
> ... no, they can't.
> 
> The store also serves to clear out stale X86_CR4_FRED, prior to FRED
> getting reconfigured again.
> 
> fatal_trap() uses info->cr4 to decide whether it's safe to look at the
> extended FRED metadata.Â  Strictly speaking I probably ought to read the
> real CR4 (in read_registers too), but using a 32bit store here would
> extend a 1-instruction window into quite a larger window where exception
> handling would not work quite right.

Oh, I see. Mind me asking to add brief comments there to this effect?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 14:57:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 14:57:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081861.1441827 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umZOJ-0001lp-JW; Thu, 14 Aug 2025 14:57:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081861.1441827; Thu, 14 Aug 2025 14:57: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 1umZOJ-0001li-GO; Thu, 14 Aug 2025 14:57:19 +0000
Received: by outflank-mailman (input) for mailman id 1081861;
 Thu, 14 Aug 2025 14:57:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6Upc=22=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1umZOH-0001jo-U0
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 14:57:17 +0000
Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com
 [2a00:1450:4864:20::431])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f79447ca-791e-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 16:57:16 +0200 (CEST)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-3b9df0bffc3so605744f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 07:57:16 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3b79c3abedesm51604353f8f.3.2025.08.14.07.57.14
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Aug 2025 07:57: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>
X-Inumbo-ID: f79447ca-791e-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755183435; x=1755788235; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=hVGRhEQCZ11GWFohBwD5YrLNaqcNhZ0QuP0mBQRr5wc=;
        b=EQ/+vwLgcFKVeLWjTv092uMbHZBlKDa3V+qWqanJUMivQrJfUN6dOC07V3xj6N7vQg
         CEAMvLnSUJDvJkkzUuo+Vm/76Xez1SHWkAyWMmcuLCTiAmrkdSQ4qE4MbvvVVtWFBiQU
         h5X2wTSAkf56YijASvyRIrSUF5sLuGZN4Uw18=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755183435; x=1755788235;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=hVGRhEQCZ11GWFohBwD5YrLNaqcNhZ0QuP0mBQRr5wc=;
        b=nu+iTE/Ss8t6FYhIPajb9+65ZMYRx44OsRm9eiV2C5qCaHge+qFJi+CI4omm5rGZNC
         hQbE2ub0daNRAKFOuWX0e8fkdMrGsqWrvCLISISQWwyAE9zWmdv3RH64jLhI9gGmdjCU
         6bgSguuT+uQvvm9Rd6rih5IOcI+iByD0gCvNWNjmO3/sykZW3aSXCYqpMKB3X/oX5epE
         UYShAvFNqXPw/qk3mJyTfwXFGF/S+sUOF5kqjuLnUTblG152lLNdlcmnQWXfdPsQWVAe
         dvdcs21KgmEO+HbKGaOX5tgcXXdwAgovXFffp/lzZef1I+AyCwwZy8ExGVb9rdu6LTU/
         QzAQ==
X-Forwarded-Encrypted: i=1; AJvYcCUG11RIxJ6ok4Lvki1qroJsDJmWxdSGokELnrwoXQbBwjdlerkbp4/5Dm4BQj38Nm1zP1CWYzOrc2s=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyGZO13IS6MoXfgG79kQ6MeRL8EodpijCHqrM2DlHT8iQkkQrzo
	d7oT7EXIP440dqcxHucPAu6FTIZZlWhnUEErxEflDL/tXsTbspypl0wdZCBQi5jOFHY=
X-Gm-Gg: ASbGncvGjrd6/qtyZiPrl/40eY+aq9x5s4aiMBnZsQE6PP/e+v3pWlDJUssDIvCwh9p
	nolyPdzgLCacRjYzRuD4Yxtvz0ehTN+jALXkLNHHMoKPqBZDMXWdn5Rp6u7YHKVJMqa9g94Ukt5
	9yTYjVU09q1Y3G6wHIDlJu8qDfQycJ68BOfCqt2ui9BAxE8QO5tzYMw7LlDuSfwGgXVlgoFVGfq
	/klt+20FJ8DMtcX00FQg1CsnvMtx18ztobGUbwA0iQW+WfBFcYoCSX/vCQr/qtVZqdXvtkT86xt
	av6+OWUcJbskr6JRJj4wuVkYuLnhg+7iJoGOW+nnp1mY6EQR9gmkIW2gE/xbWA3mOVzAAfAMPjr
	paNduzRvXrnpmBHzS/jM6/Hpmikr8a5CTFvgUJGQ5ZK2BQOOt7UAcN+kjC2q6WsRAuw==
X-Google-Smtp-Source: AGHT+IF7aZza5bt07fFPq75ic+0DO18q92gvAG6vmO/Kqa4Doa5yyHJbuTjRyCMw0SHzw7nPkKpClg==
X-Received: by 2002:a05:6000:2507:b0:3a5:39ee:2619 with SMTP id ffacd0b85a97d-3b9edf5bbafmr3141063f8f.47.1755183435270;
        Thu, 14 Aug 2025 07:57:15 -0700 (PDT)
Date: Thu, 14 Aug 2025 16:57:14 +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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH] pdx: cast PAGE_SIZE value ahead of shifting
Message-ID: <aJ35SplaIL1vZAE9@macbook.local>
References: <20250813125538.78174-1-roger.pau@citrix.com>
 <e644c968-ab68-49f4-801e-0f161fd85f2e@suse.com>
 <aJ26UmemwxyyTioE@macbook.local>
 <3fbdd1fc-e739-42cf-892b-a561910a5693@suse.com>
 <aJ3eRFc7CCwVi5WE@macbook.local>
 <f707d57e-73f3-43c4-a005-f2b93ad3d1cf@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <f707d57e-73f3-43c4-a005-f2b93ad3d1cf@suse.com>

On Thu, Aug 14, 2025 at 03:15:26PM +0200, Jan Beulich wrote:
> On 14.08.2025 15:01, Roger Pau MonnÃ© wrote:
> > On Thu, Aug 14, 2025 at 12:45:40PM +0200, Jan Beulich wrote:
> >> On 14.08.2025 12:28, Roger Pau MonnÃ© wrote:
> >>> On Thu, Aug 14, 2025 at 09:18:45AM +0200, Jan Beulich wrote:
> >>>> On 13.08.2025 14:55, Roger Pau Monne wrote:
> >>>>> --- a/xen/common/pdx.c
> >>>>> +++ b/xen/common/pdx.c
> >>>>> @@ -288,7 +288,7 @@ bool __init pfn_pdx_compression_setup(paddr_t base)
> >>>>>  
> >>>>>      pfn_pdx_hole_shift  = hole_shift;
> >>>>>      pfn_pdx_bottom_mask = (1UL << bottom_shift) - 1;
> >>>>> -    ma_va_bottom_mask   = (PAGE_SIZE << bottom_shift) - 1;
> >>>>> +    ma_va_bottom_mask   = ((paddr_t)PAGE_SIZE << bottom_shift) - 1;
> >>>>
> >>>> Given
> >>>>
> >>>> #define PAGE_SIZE           (_AC(1,L) << PAGE_SHIFT)
> >>>>
> >>>> this shouldn't be needed, except maybe for Arm32. There, however, ...
> >>>>
> >>>>>      pfn_hole_mask       = ((1UL << hole_shift) - 1) << bottom_shift;
> >>>>
> >>>> ... this and the shift immediately ahead would also be a problem afaict,
> >>>> which makes me conclude this isn't what Coverity has looked at. I expect
> >>>> the problem is with the toolstack side definition of PAGE_SIZE, which imo
> >>>> would rather be addressed there. (And yes, I'm pretty averse to arbitrary
> >>>> casts like this being introduced.)
> >>>
> >>> As I've realized while looking at this, wouldn't ma_va_bottom_mask
> >>> also better be of type paddr_t, since it's not operating on pfns, but
> >>> physical addresses.  I didn't adjust the type of ma_va_bottom_mask,
> >>> but I would be happy to do it if you agree.
> >>
> >> No, as its name says it's also used on virtual addresses (really: offsets
> >> into the direct map). It hence would better not have any bits set outside
> >> of the range that VAs can cover.
> > 
> > It's confusing that it's sometimes used against a paddr_t or an
> > unsigned long type.  The logic itself already limits the shift so it's
> > below the width of unsigned long AFAICT.
> 
> Well, the variable simply doesn't need to be wider than the narrowest type
> it's used with.
> 
> >> With that, imo the cast (if any) also
> >> should have been to unsigned long, not paddr_t. Yet as said, im the cast
> >> would better not be there in the first place. Just that meanwhile I've
> >> learned that this was committed already.
> > 
> > Sorry, I should have waited for your opinion.
> > 
> > I think you would prefer the patch below.
> 
> Yes.
> 
> >  I can send this formally,
> > not sure whether you would prefer a formal revert of the previous
> > patch, plus the new fix applied, or doing the revert in the new patc
> > (like below) is fine.
> 
> Acked-by: Jan Beulich <jbeulich@suse.com>
> 
> I don't see a strong need for an outright revert.

I've adjusted UL -> L as requested by Andrew, and added the following
commit message:

tests/pdx: define PAGE_SIZE as long

Otherwise Coverity complains about possibly shifting an integer more than
31 bits.

This also reverts the previous attempt to fix this Coverity reported
issue, commit 4dd323029094d93dbc8d174fe744fd7f54f0a7a4.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Coverity ID: 1662707
Fixes: cb50e4033717 ('test/pdx: add PDX compression unit tests')
Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>

Let me know if you are OK with the adjustment and commit message.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 15:00:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 15:00:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081881.1441836 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umZRi-0003T4-0r; Thu, 14 Aug 2025 15:00:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081881.1441836; Thu, 14 Aug 2025 15: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 1umZRh-0003Sx-UQ; Thu, 14 Aug 2025 15:00:49 +0000
Received: by outflank-mailman (input) for mailman id 1081881;
 Thu, 14 Aug 2025 15:00:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xqZt=22=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umZRh-0003Sr-CI
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 15:00:49 +0000
Received: from mail-ed1-x531.google.com (mail-ed1-x531.google.com
 [2a00:1450:4864:20::531])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 75a40bf7-791f-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 17:00:47 +0200 (CEST)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-618690a80e8so3136869a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 08:00: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
 a640c23a62f3a-af91a1e820asm2595674966b.90.2025.08.14.08.00.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 08:00: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>
X-Inumbo-ID: 75a40bf7-791f-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755183647; x=1755788447; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ZnIa5viQ38Bw02h0y4IdKaAPBYlGi+dYGT6sE3zaIv8=;
        b=gteEKo49kO0D8I5aptj6lBJhkeKj22FxCTFhjIK0HW53A0/xSSg7wQmz+Xx+zh6UtO
         SJK9o6eGq/rZOc7hlJipTpj+EDiDade5WwoFd90b1BJIkEs3BixuFWykZoxYLRCCYvLY
         ZlfTi+ds07thAaIvXB2lZ0P983W/qdISANdzgufvwDcUx/+hr6abiynHSEjnfMktu9uL
         z7mlGixcElt2th0oLyiSVv4QaZgT22TqS7VPJNZt8wYuCvLJ9UD5L+ckKhVWqWVNT7YJ
         oIKsSsP7oCZqPA7iDI8epnEFV9Qo8Ub5bJPQfiQl7PfYFB8JaCPcWbzQ/XYuBP3axaSV
         5t3g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755183647; x=1755788447;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ZnIa5viQ38Bw02h0y4IdKaAPBYlGi+dYGT6sE3zaIv8=;
        b=PDxnUo2Uy64Hj76Y7VxPJ5ClhqyWzqQL/Uq48EkpUA8iZTTaLQTIi+y0oMdUd7IveO
         1e/LWLdMbxZS2QgTVnPb+hK675RkaJaRDmlSpOTlNO4SIzpC/bg1nSTwTEEe4RftBiem
         Jm1DfkpXRovWZkNIu1UmNNxQyI5y4KPglb65SIr5m8aXOgIlJlXPiKCUAo39RcIAJr6d
         ncrUzabGtmrv+zECKBx0BfYQTDRcq4TwGrwgRt09tWq2h4c1QUF9R5KSN9QZk9DSqD/W
         /fKCF0D0VcvHv9VNABZaCxgeqtLM56bNPVLReGxmibPYDFxaJMgiXn1gFbfF4LNhnsLu
         5OCQ==
X-Forwarded-Encrypted: i=1; AJvYcCXv5yeMF8uump1Eq2Z4TUWEaspp+nZr4izF96scYlUZ9DfdEcxdNtZGZHlUmp6Yy/jSFmyzjnirfzE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxTqSCc1LWrVoWH3BkK6WN2hQA2HoUnR+IZJvSN8MtSpf9fQDBl
	0CE+GZ/GVfi4MSH798AU9NYVa94KJ6gB/su6aJLCt9oGJgdEulN5BvLNYvmKNOxT8w==
X-Gm-Gg: ASbGnctNq/nu8FNnCD5QYpG3wYbOR9MRVE9LgJ6UJf/7fTYK11+hIfaGaIpXcV9Xv0c
	ifo1LLP4l8wWis9WPngjTZWpQI5D6jSn7+g4dPdcP3Fy6HSNpoP0Z6nBOk+iATtLop5iytnJuny
	duK1vAMsBoYLFw+Y7yx/zzwOXn5P1i9cU8EVe3ELENFS9otQoHBCvbFfbZoC6ymJL2ZTQW05fYD
	TnJtFpIqi1+0lSjHe6I+7ZmywuaD/TW5iJVXs652l8mNfPvwBbdsd3koe2GEkms47yiqANf4x1Z
	bXjm9wXLkTd8zZUK02FAkckDfyi8go6h74pCLzqHXEGTm64P7bf1ITiditz/nV9HUXlzswpvqW7
	olqk07sqF3wY2OjsAFCNb0WN9xWunpNgBqTvszYRiXeHmEYc0geKamQNN5GXEv6mcOZPf1KaNhB
	Oh8poliio=
X-Google-Smtp-Source: AGHT+IEZ6NYFToZkXanQZbhOyIW1ErZYLwSkJhoiKdMah29JuH/VjoZbzdKqSWO/rjUA6QY7/qtmYQ==
X-Received: by 2002:a17:907:160c:b0:afc:a3b2:d100 with SMTP id a640c23a62f3a-afcbe7c8410mr340164966b.7.1755183646751;
        Thu, 14 Aug 2025 08:00:46 -0700 (PDT)
Message-ID: <74a76087-e45e-4d7a-8df3-2711f77eea2a@suse.com>
Date: Thu, 14 Aug 2025 17:00:44 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 18/22] x86/traps: Set MSR_PL0_SSP in load_system_tables()
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-19-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: <20250808202314.1045968-19-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.08.2025 22:23, Andrew Cooper wrote:
> FRED and IDT differ by a Supervisor Token on the base of the shstk.  This
> means that the value they load into MSR_PL0_SSP differs by 8.
> 
> s3_resume() in particular has logic which is otherwise invariant of FRED mode,
> and must not clobber a FRED MSR_PL0_SSP with an IDT one.
> 
> This also simplifies the AP path too.  Updating reinit_bsp_stack() is deferred
> until later.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

I wonder why this was originally done in assembly in the first place, when
we aim at reducing tghe assembly code we have.

> --- a/xen/arch/x86/boot/x86_64.S
> +++ b/xen/arch/x86/boot/x86_64.S
> @@ -65,17 +65,11 @@ ENTRY(__high_start)
>          or      $(PRIMARY_SHSTK_SLOT + 1) * PAGE_SIZE - 8, %rdx
>  
>          /*
> -         * Write a new supervisor token.  Doesn't matter on boot, but for S3
> -         * resume this clears the busy bit.
> +         * Write a new Supervisor Token.  It doesn't matter the first time a
> +         * CPU boots, but for S3 resume or CPU hot re-add, this clears the
> +         * busy bit.
>           */
>          wrssq   %rdx, (%rdx)
> -
> -        /* Point MSR_PL0_SSP at the token. */
> -        mov     $MSR_PL0_SSP, %ecx
> -        mov     %edx, %eax
> -        shr     $32, %rdx
> -        wrmsr
> -
>          setssbsy

This is ending up a little odd: The comment says the write is to clear the
busy bit, when that's re-set immediately afterwards.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 15:04:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 15:04:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081894.1441847 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umZVD-0004b1-FK; Thu, 14 Aug 2025 15:04:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081894.1441847; Thu, 14 Aug 2025 15:04: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 1umZVD-0004au-Cg; Thu, 14 Aug 2025 15:04:27 +0000
Received: by outflank-mailman (input) for mailman id 1081894;
 Thu, 14 Aug 2025 15:04:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xqZt=22=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umZVC-0004ao-2t
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 15:04:26 +0000
Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com
 [2a00:1450:4864:20::62f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f5cab187-791f-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 17:04:22 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-afcb7af30a5so169647766b.3
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 08:04: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
 a640c23a62f3a-af92b650c8asm2452607766b.65.2025.08.14.08.04.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 08:04:21 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f5cab187-791f-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755183862; x=1755788662; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=iT0JmRs8SG/3DDAkdf1w8N2zE1W70t4E9Vrll9s3avw=;
        b=K5TpN4xRtEysoeHkGurjRjn5zHZpSQ3edyWe20E1qsbWtqRtn0sNQFC8SCSJh2CVDf
         vHSGP3l0C9ddcfMufyoVdVRvfQzWjqt+Er18U2ViLeDeJj04avLV5wyaJA9n/xU5dEqV
         1mP3UuaMLjwSAkWHNwiRcz/oes3/+V6RrG5OtxzTVk+FK4A6hptvisWxZv9lc7fZIMdT
         XUeQDVSAln3NcFDHX2Db+2LLgK3YEnrJx+Lk2uyOO+pRhbbsEYTTRiZ0utNOe4fKoL4R
         l3Rn/GqMjHhM/+HgfkeTzjudTjG1oz1W7QMPmYA4KRQMwTHOYVJOP0ZlZt9KMN+Jnx9s
         n8iw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755183862; x=1755788662;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=iT0JmRs8SG/3DDAkdf1w8N2zE1W70t4E9Vrll9s3avw=;
        b=I1a4r3kp/5h7tipe2BUff35vPOiMqLM19pp5jX/YTc1n4xHiiFsojczee7Ep/T0ikh
         oSysfFWg+ZMeqn2g/Jf+vXiI8oaraYLyXiJ97/Xf8wIEaPaZ3qqGn0iWeMHF2dP3HWFd
         zJrSINq/4mI+9+sQ5elwJFM21eDJPbnNd1QJRXFW1TWnvuc3r8Xrtw/tC51gXu0whSyp
         UcQStuveDZsGw8jPwh6JN6R7lEfOK2WqUFz50PxpC+IwW9oOhj2NMDDc5t7DhMrF6bXd
         TWXvvXL7437ILmj4BSDCTK8IUpscSzKFgMaYyoZPQVZf5PWandNwos3ZsrX5RUF6UtSJ
         /c8Q==
X-Forwarded-Encrypted: i=1; AJvYcCXw9DmLW68lbR8D6uvWimKW+Os+iYpjztepBAhx9b490Eh3MYxieUf2xHxxgP0SEjlm2dGoXAKoOvU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxdEtZPvxX359PogGPjZKnqo6i1qE7XDtxI5/4MEEPENXoqf523
	2KotXfnQznd4ich5LzJvdb8PCPoAd9FYjASj5zscLNrXuQevV8vy9C5FkQ/jwtRY1Q==
X-Gm-Gg: ASbGncuamSu9LMT+0Z5OuSdFLRkGLMTlBptocKBiQK/aWBHoQl6psqqlt6TITLiVejl
	GrCBw8cHdieztyQcVops+GtEHoAX4012mUDOPIkmZO+LZlMBCf3ZmxZGgZOwflulc0Uy5XPsIm3
	3RZzRSAEew4Ht3UGJQKZifLqgaCxiW42Fj9gW7fITTjo0MtsdBQ0ncd+8m86NKSoeJOV09BulCW
	MgKonb7K4zwEOB0H1il/GLtq+/SFPwRP0+sLByavqPnrQRD1OW6tLXc/Ocfzw0CMAMm3eq4FSZD
	UJyGG272LC+aXwMJqYtR/RoYZXFkOYZWtTNr3PxJ4mePaMxqxxDEWgBgBNnX3hvb9mH99tW097b
	zxGr11pPvsB8UHT4qwjpNzgTydq01PVxshWHfoGgeR14aXt+eIi6ZGWrplnoGZoxjkw1G3X6ris
	DptfZZrYvyBKhd0z4mSw==
X-Google-Smtp-Source: AGHT+IFxQAMs+KX9H1S8Z/q6OrNaoV/MB3D0d0AXTmj5D9mTXy9hwBeDmUTTlh93BljHsX/ahm7Jmg==
X-Received: by 2002:a17:907:94c1:b0:af9:4fa9:b132 with SMTP id a640c23a62f3a-afcb98cd087mr301705466b.33.1755183861795;
        Thu, 14 Aug 2025 08:04:21 -0700 (PDT)
Message-ID: <849fe2bf-4840-405e-ba9c-6ddec4a47983@suse.com>
Date: Thu, 14 Aug 2025 17:04:19 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] pdx: cast PAGE_SIZE value ahead of shifting
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <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>, xen-devel@lists.xenproject.org
References: <20250813125538.78174-1-roger.pau@citrix.com>
 <e644c968-ab68-49f4-801e-0f161fd85f2e@suse.com>
 <aJ26UmemwxyyTioE@macbook.local>
 <3fbdd1fc-e739-42cf-892b-a561910a5693@suse.com>
 <aJ3eRFc7CCwVi5WE@macbook.local>
 <f707d57e-73f3-43c4-a005-f2b93ad3d1cf@suse.com>
 <aJ35SplaIL1vZAE9@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: <aJ35SplaIL1vZAE9@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14.08.2025 16:57, Roger Pau MonnÃ© wrote:
> I've adjusted UL -> L as requested by Andrew, and added the following
> commit message:
> 
> tests/pdx: define PAGE_SIZE as long
> 
> Otherwise Coverity complains about possibly shifting an integer more than
> 31 bits.
> 
> This also reverts the previous attempt to fix this Coverity reported
> issue, commit 4dd323029094d93dbc8d174fe744fd7f54f0a7a4.
> 
> Suggested-by: Jan Beulich <jbeulich@suse.com>
> Coverity ID: 1662707
> Fixes: cb50e4033717 ('test/pdx: add PDX compression unit tests')
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>
> 
> Let me know if you are OK with the adjustment and commit message.

Fine with me.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 15:07:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 15:07:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081902.1441857 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umZY9-00059v-Um; Thu, 14 Aug 2025 15:07:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081902.1441857; Thu, 14 Aug 2025 15:07: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 1umZY9-00059o-Ql; Thu, 14 Aug 2025 15:07:29 +0000
Received: by outflank-mailman (input) for mailman id 1081902;
 Thu, 14 Aug 2025 15:07:28 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mOIo=22=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1umZY8-00059i-TT
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 15:07:28 +0000
Received: from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com
 [2a00:1450:4864:20::42c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 64772b37-7920-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 17:07:28 +0200 (CEST)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-3b9e411c820so581158f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 08:07:28 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45a1c70acc7sm23504985e9.25.2025.08.14.08.07.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 08:07: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>
X-Inumbo-ID: 64772b37-7920-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755184047; x=1755788847; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=glQsaVf9scz2VamTIi4C1sfUDYBDnqBkHaUjLqmdzBY=;
        b=j0dI5dDw4PAE7YB6lkmj/hbXHF2kV5705aVTGAISwjs9ACHoQp1YYJQJne2zr5DkHE
         vkmQEdWIb2mEteuTwgDlD88La6ww8R5f1bGHoPX6rRhAcIUlO5DJ5hBC808hbd706T5F
         SAXPKluPc4mhNaeB52drci932z5hfr75yIlxs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755184047; x=1755788847;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=glQsaVf9scz2VamTIi4C1sfUDYBDnqBkHaUjLqmdzBY=;
        b=XK3is0GzeEz8gwdzL2Dqeov/vQLuIyaqyfn1qGd3HqghzJlYhbp4CJZeqb+UwV5lKr
         FEw1/d3CFyhyDT2snb30fMU+56A/w4gMmKQXWDW531Coo9ztIVzYZY1rXhtp15KGGKvB
         QaAN9Y3z7OVcbE4JyPJZuJNg56ILW2lgpw/Xwxg52ukfbiQRP/wZSRWjspvJTN55GedY
         ZAVt8McIYk4DdkqRSC+0YpSXZztypz0Gn0YZ7Hx7lQYRF7RdLSlYwzA3pqmjvC5NS+p2
         Z42KnZl/0xjlO0GqxzjZLvLGSEEOgJ8Veu6CMjrMoG9YscK5/h81dmmMw8O8CwgbWSEg
         CfHA==
X-Forwarded-Encrypted: i=1; AJvYcCVWASmLUPNnZcShkzrp82uUaqlm4pLRceatUdEPSlQYEseyYb9BlEMzAQ81eTDwpHRS0BWgpAbiZeY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx/Uj/2LzBSRmhubfFpP/g7un/H9X6QQAFAc8Xp2fE6Fh20z42V
	KWQqVaBZlPds2CL9dkONOS6R3ThBsJvQ7Zaz8z8OgyAyUN+vl+9GayzXZ9nbg3ZgglC6dX35n7r
	j5BvI
X-Gm-Gg: ASbGncvqG2ZJ+Ugt8AI3TKB4cuZwl+Rbh8Ssba9nnwS8Uf7lwWt1WvCbskhkX1gnX6h
	IsPJ+aih9ojDN7jsTR9qkoWCEfZ7VtT7Uf3c/OZLA+048ENsuLrpFm+CsJdCJBee7dD+F9I+O+q
	ucO5SkTyy+flCu4t6boBxNwZIFaX9xBC/mRRfN9ycSbwqyY5MqoMwyQY/qax73IRBjqOZjEKyWD
	OqYJhMSG7uMGA5bUaHtapn+G8ZCFrFI3pMN4qPaXZfWiAmGh0Lkmu3fLha7eeYgxlK7x5cSmpaP
	IUTu3p5CtfChYMwGcPiw10LJeX4nBMYzt9Wb4Qa1xkMUwgCgBkBX+3E7DF3c913EPK0TPzpzhjd
	ROrdILZ2X9Gvm2C08PjG+sLCu2SiCUMoK6K9QaC+kW2PWTbAPDeYVOvoYHgbjptx2n2BQ
X-Google-Smtp-Source: AGHT+IEWTLw1FTg/+JSj2xzXgox6u+cQyiG5JLZBMUvvp6yJFEuEdu+DdXgBlk5esabg+11kzWu4XA==
X-Received: by 2002:a05:6000:240d:b0:3b5:f93a:bcc with SMTP id ffacd0b85a97d-3ba50d528a2mr2992960f8f.35.1755184047385;
        Thu, 14 Aug 2025 08:07:27 -0700 (PDT)
Message-ID: <12b05941-2246-4f30-bc94-d77ebd915d5c@citrix.com>
Date: Thu, 14 Aug 2025 16:07:26 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 14/22] x86/traps: Extend struct cpu_user_regs/cpu_info
 with FRED fields
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-15-andrew.cooper3@citrix.com>
 <a16deee1-de3b-4850-852a-f45aeaa982f2@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: <a16deee1-de3b-4850-852a-f45aeaa982f2@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14/08/2025 2:12 pm, Jan Beulich wrote:
> On 08.08.2025 22:23, Andrew Cooper wrote:
>> @@ -42,17 +46,76 @@ struct cpu_user_regs
>>       */
>>  
>>      union { uint64_t rip;    uint32_t eip;    uint16_t ip; };
>> -    uint16_t cs, _pad0[1];
>> -    uint8_t  saved_upcall_mask; /* PV (v)rflags.IF == !saved_upcall_mask */
>> -    uint8_t  _pad1[3];
>> +    union {
>> +        struct {
>> +            uint16_t      cs;
>> +            unsigned long :16;
>> +            uint8_t       saved_upcall_mask; /* PV (v)rflags.IF == !saved_upcall_mask */
> Would this better be reproduced ...
>
>> +        };
>> +        unsigned long     csx;
>> +        struct {
>> +            /*
>> +             * Bits 0 thru 31 control ERET{U,S} behaviour, and is state of the
>> +             * interrupted context.
>> +             */
>> +            uint16_t      cs;
>> +            unsigned int  sl:2;      /* Stack Level */
>> +            bool          wfe:1;     /* Wait-for-ENDBRANCH state */
> ... here as well, just like you reproduce "cs"?

saved_upcall_mask is a property of an in-guest IRET frame only.Â  It is
only produced in create_bounce_frame, and never consumed by Xen.

It needs to exist in this structure so asm-offsets.c can generate a
constant.

Also, be aware that there are new features being planned which rely on FRED.

>
>> +        } fred_cs;
>> +    };
>>      union { uint64_t rflags; uint32_t eflags; uint16_t flags; };
>>      union { uint64_t rsp;    uint32_t esp;    uint16_t sp;    uint8_t spl; };
>> -    uint16_t ss, _pad2[3];
>> +    union {
>> +        uint16_t          ss;
>> +        unsigned long     ssx;
> What use do you foresee for this and "csx"?

That also came from Linux.Â  I'm using it to zero the control metadata so
ERETU behaves more like IRET.

>
>> +        struct {
>> +            /*
>> +             * Bits 0 thru 31 control ERET{U,S} behaviour, and is state about
>> +             * the event which occured.
>> +             */
>> +            uint16_t      ss;
>> +            bool          sti:1;     /* Was blocked-by-STI, and not cancelled */
>> +            bool          swint:1;   /* Was a SYSCALL/SYSENTER/INT $N */
>> +            bool          nmi:1;     /* Was an NMI. */
>> +            unsigned long :13;
>> +
>> +            /*
>> +             * Bits 32 thru 63 are ignored by ERET{U,S} and are informative
>> +             * only.
>> +             */
>> +            uint8_t       vector;
>> +            unsigned long :8;
>> +            unsigned int  type:4;    /* X86_ET_* */
>> +            unsigned long :4;
>> +            bool          enclave:1; /* Event taken in SGX mode */
>> +            bool          lm:1;      /* Was in Long Mode */
> The bit indicates 64-bit mode aiui, not long mode (without which FRED isn't even
> available).

Oh, yes.Â  This is something that changed across revisions, and I wrote
this patch to an older spec.

It's %cs.l of the interrupted context, so I probably should just drop the m.

>
>> --- a/xen/arch/x86/include/asm/current.h
>> +++ b/xen/arch/x86/include/asm/current.h
>> @@ -38,6 +38,8 @@ struct vcpu;
>>  
>>  struct cpu_info {
>>      struct cpu_user_regs guest_cpu_user_regs;
>> +    struct fred_info _fred; /* Only used when FRED is active. */
> Any particular need for the leading underscore?

Somewhat, yes.Â  It's not safe to reference this field, except for
loading MSR_PL0_RSP.

Everyone else should use cpu_regs_fred_info() to get the fred_info,
which has a safety ASSERT().

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 15:09:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 15:09:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081915.1441868 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umZaY-0005km-EZ; Thu, 14 Aug 2025 15:09:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081915.1441868; Thu, 14 Aug 2025 15: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 1umZaY-0005kf-9r; Thu, 14 Aug 2025 15:09:58 +0000
Received: by outflank-mailman (input) for mailman id 1081915;
 Thu, 14 Aug 2025 15:09:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=T7lD=22=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1umZaW-0005kT-Du
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 15:09:56 +0000
Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com
 [2a00:1450:4864:20::634])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bc2e3583-7920-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 17:09:55 +0200 (CEST)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-afcb7a7bad8so145368966b.3
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 08:09:55 -0700 (PDT)
Received: from [192.168.1.17] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a0a39c4sm2620490366b.43.2025.08.14.08.09.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 08:09: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>
X-Inumbo-ID: bc2e3583-7920-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1755184195; x=1755788995; darn=lists.xenproject.org;
        h=in-reply-to:content-language:references:cc:to:subject:from
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=b/DHIOMbK4lqQVleLAVjPQs1xd4Au+fYaJGUSMoMWUg=;
        b=i88UWtJ49W9jwcQ8u8eGA7DCiZxa49scS1WJapnn3mKt3tEp81c/4XYwIRF1X63o9C
         DUpE4gZXHAPHqBaRFmk4DS+BfbStO09wxB37pPV6W1QaqXaFy0taUuZ2zvVdbLl8Wwkp
         +I4nSUu153u2nJctiWwkGQpMXjZn1luyKOklPVk6h8U5NnQ9R32xB9h2JZvz74QHR1KM
         CvxlvNws9m1ox6mgO13W5m0hQcv3JgEqd7P6Ha1Xbu6mlRi0nqw0GJtrju0jZGvjxuFF
         DjslurMCmebhUXYCY46sCDAZvqE8TUHpAf1TcmIVLKeo4Hn4ui0bwAMbeFXSrBM2WdDc
         F0ww==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755184195; x=1755788995;
        h=in-reply-to:content-language:references:cc:to:subject:from
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=b/DHIOMbK4lqQVleLAVjPQs1xd4Au+fYaJGUSMoMWUg=;
        b=vomHrNtYbXUWnp5o25P5PY4e3Li2raFcnRWKJHTbl0BSu1s13lP/IJIOgMkpJYAH6Z
         scMzW5AhtFpj+N/8MRpdpdUFL/XuQY08FJuCDvXkBDF95X7ChBcKNFAkBLAm7GDaTc78
         Ocm7wCOlN7MA+pwB/JChzuzDa/5T+IxIrFHqI+gasFxLTy3+YkDlmQ36vqdypANtpPdt
         l2wbGHqNeaVrUJ7mOpn5/qYKKAjRnVuwupxZOVqEGB+b/oCfcetl3ZM2DGghLoNGtqHG
         Yuf2tDC6i350ORj7IxhHLdD73S3KI2qE9t+23xNB/Zh4am38xTI55d1z2vyKf0fgES7B
         Y5Sg==
X-Forwarded-Encrypted: i=1; AJvYcCV9FjSXUwwMKwUgko9Li0N5HS7xmOxSfYQmcxqvLMFGmYZU3hTUS9Kh0MmZOX1CAVkHiColhc/MbbM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzfGIojIkwBdtR6SBoBjuEdnkDeCpvpmke2VtCZUhe2lny5CGi4
	fVsnuXAELIDgapwzTHg4Pq3v/wuhJCXVOpNKqTmU+W389Z5TgmhIWUcH
X-Gm-Gg: ASbGnctwlQgD/XuQ4zbPOc2viw98fIAfDYBrSr86Melwww+1D2zA0Zpp5txHQAbBf3N
	MUdqj5R4mHN273m0tzYldRhojSAaVBwU7KCzUUjzMV5ZsanVufMnb3yQ5XKfPe5cVmiiGIQmzZH
	tm+/gmEY5hqmRt5tWY3nk3GsRYP9BE/QkqKTtwYzb940P02qX+8Gw0bTiXqHxT6YlcBNvjqkuJn
	caoZaOCGtLUClpkZ6buYC3c/TqpHsg/0FoZYnAsgIQsV9slLCdEh6RNKNmN9K4ynXC1gtsTmz1G
	CFl/2jXQ6ZZWP6+k5KHtZcDKsEoF6pb3+J38JqPA6OcKBEOsaFD3D6MiWtjvN3j2/nYwW1Phvej
	3gKG8TUU6/R998soGbL+w9wdbsOnWvkAIVoYe8uDsjt0i4yPPmhZOoDhvXMlXfyGKBUgTmkqX
X-Google-Smtp-Source: AGHT+IGCLnS/E1vBXEtbwzD8hjSZgHopEXCKwdg8jcbGwVohgoCrLj3doNM2Tte5Khyps1xpdq4jWA==
X-Received: by 2002:a17:906:aac8:b0:afc:c736:8b0d with SMTP id a640c23a62f3a-afcc7368bf6mr161934766b.22.1755184194054;
        Thu, 14 Aug 2025 08:09:54 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------vYx2KQ1Dkw3zffA1AKgYiN5b"
Message-ID: <c8a07c48-b79b-4136-a265-91c14bb96c81@gmail.com>
Date: Thu, 14 Aug 2025 17:09:52 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH v3 13/20] xen/riscv: Implement p2m_free_subtree() and
 related helpers
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <41845723a7b0e3efd09095d13e57aace6f7747ef.1753973161.git.oleksii.kurochko@gmail.com>
 <98dc796e-bb14-435e-8c19-53e5de60cc43@suse.com>
Content-Language: en-US
In-Reply-To: <98dc796e-bb14-435e-8c19-53e5de60cc43@suse.com>

This is a multi-part message in MIME format.
--------------vYx2KQ1Dkw3zffA1AKgYiN5b
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 8/6/25 5:55 PM, Jan Beulich wrote:
> On 31.07.2025 17:58, Oleksii Kurochko wrote:
>> --- a/xen/arch/riscv/include/asm/p2m.h
>> +++ b/xen/arch/riscv/include/asm/p2m.h
>> @@ -79,10 +79,20 @@ typedef enum {
>>       p2m_ext_storage,    /* Following types'll be stored outsude PTE bits: */
>>       p2m_grant_map_rw,   /* Read/write grant mapping */
>>       p2m_grant_map_ro,   /* Read-only grant mapping */
>> +    p2m_map_foreign_rw, /* Read/write RAM pages from foreign domain */
>> +    p2m_map_foreign_ro, /* Read-only RAM pages from foreign domain */
>>   } p2m_type_t;
>>   
>>   #define p2m_mmio_direct p2m_mmio_direct_io
>>   
>> +/*
>> + * Bits 8 and 9 are reserved for use by supervisor software;
>> + * the implementation shall ignore this field.
>> + * We are going to use to save in these bits frequently used types to avoid
>> + * get/set of a type from radix tree.
>> + */
>> +#define P2M_TYPE_PTE_BITS_MASK  0x300
>> +
>>   /* We use bitmaps and mask to handle groups of types */
>>   #define p2m_to_mask(t_) BIT(t_, UL)
>>   
>> @@ -93,10 +103,16 @@ typedef enum {
>>   #define P2M_GRANT_TYPES (p2m_to_mask(p2m_grant_map_rw) | \
>>                            p2m_to_mask(p2m_grant_map_ro))
>>   
>> +                            /* Foreign mappings types */
> Nit: Why so far to the right?
>
>> --- a/xen/arch/riscv/p2m.c
>> +++ b/xen/arch/riscv/p2m.c
>> @@ -197,6 +197,16 @@ static pte_t *p2m_get_root_pointer(struct p2m_domain *p2m, gfn_t gfn)
>>       return __map_domain_page(p2m->root + root_table_indx);
>>   }
>>   
>> +static p2m_type_t p2m_get_type(const pte_t pte)
>> +{
>> +    p2m_type_t type = MASK_EXTR(pte.pte, P2M_TYPE_PTE_BITS_MASK);
>> +
>> +    if ( type == p2m_ext_storage )
>> +        panic("unimplemented\n");
> That is, as per p2m.h additions you pretend to add support for foreign types
> here, but then you don't?

I count foreign types as p2m_ext_storage type, so a support for them will be added in the patch
[1] of this patch series as a type for p2m_ext_storage type will stored in metadata
due to the lack of free bits in PTE.

[1]https://lore.kernel.org/xen-devel/cover.1753973161.git.oleksii.kurochko@gmail.com/T/#mcc1a0367fdbfbf3ca073f152efa799c1a4354974

>> @@ -248,11 +258,136 @@ static int p2m_next_level(struct p2m_domain *p2m, bool alloc_tbl,
>>       return P2M_TABLE_MAP_NONE;
>>   }
>>   
>> +static void p2m_put_foreign_page(struct page_info *pg)
>> +{
>> +    /*
>> +     * Itâ€™s safe to call put_page() here because arch_flush_tlb_mask()
>> +     * will be invoked if the page is reallocated before the end of
>> +     * this loop, which will trigger a flush of the guest TLBs.
>> +     */
>> +    put_page(pg);
>> +}
> How can one know the comment is true? arch_flush_tlb_mask() still lives in
> stubs.c, and hence what it is eventually going to do (something like Arm's
> vs more like x86'es) is entirely unknown right now.

I'll introduce arch_flush_tlb_mask() in this patch in the next version.

>> +/* Put any references on the single 4K page referenced by mfn. */
>> +static void p2m_put_4k_page(mfn_t mfn, p2m_type_t type)
>> +{
>> +    /* TODO: Handle other p2m types */
>> +
>> +    if ( p2m_is_foreign(type) )
>> +    {
>> +        ASSERT(mfn_valid(mfn));
>> +        p2m_put_foreign_page(mfn_to_page(mfn));
>> +    }
>> +
>> +    /*
>> +     * Detect the xenheap page and mark the stored GFN as invalid.
>> +     * We don't free the underlying page until the guest requested to do so.
>> +     * So we only need to tell the page is not mapped anymore in the P2M by
>> +     * marking the stored GFN as invalid.
>> +     */
>> +    if ( p2m_is_ram(type) && is_xen_heap_mfn(mfn) )
>> +        page_set_xenheap_gfn(mfn_to_page(mfn), INVALID_GFN);
> Isn't this for grants? p2m_is_ram() doesn't cover p2m_grant_map_*.

p2m_is_ram() looks really unnecessary here. I'm thinking if it could be useful
to store for RAM types GFNs too to have something like M2P.

>> +}
>> +
>> +/* Put any references on the superpage referenced by mfn. */
>> +static void p2m_put_2m_superpage(mfn_t mfn, p2m_type_t type)
>> +{
>> +    struct page_info *pg;
>> +    unsigned int i;
>> +
>> +    ASSERT(mfn_valid(mfn));
>> +
>> +    pg = mfn_to_page(mfn);
>> +
>> +    for ( i = 0; i < XEN_PT_ENTRIES; i++, pg++ )
>> +        p2m_put_foreign_page(pg);
>> +}
> In p2m_put_4k_page() you check the type, whereas here you don't.

Missed to add that:
       if ( !p2m_is_foreign(type) )
         return;

>> +/* Put any references on the page referenced by pte. */
>> +static void p2m_put_page(const pte_t pte, unsigned int level)
>> +{
>> +    mfn_t mfn = pte_get_mfn(pte);
>> +    p2m_type_t p2m_type = p2m_get_type(pte);
>> +
>> +    ASSERT(pte_is_valid(pte));
>> +
>> +    /*
>> +     * TODO: Currently we don't handle level 2 super-page, Xen is not
>> +     * preemptible and therefore some work is needed to handle such
>> +     * superpages, for which at some point Xen might end up freeing memory
>> +     * and therefore for such a big mapping it could end up in a very long
>> +     * operation.
>> +     */
>> +    switch ( level )
>> +    {
>> +    case 1:
>> +        return p2m_put_2m_superpage(mfn, p2m_type);
>> +
>> +    case 0:
>> +        return p2m_put_4k_page(mfn, p2m_type);
>> +    }
> Yet despite the comment not even an assertion for level 2 and up?

Not sure that an ASSERT() is needed here as a reference(s) for such page(s)
will be put during domain_relinquish_resources() as there we could do preemption.
Something like Arm does here:
   https://gitlab.com/xen-project/people/olkur/xen/-/blob/staging/xen/arch/arm/mmu/p2m.c?ref_type=heads#L1587

I'm thinking that probably it makes sense to put only 4k page(s) and
all other cases postpone until domain_relinquish_resources() is called.

>>   /* Free pte sub-tree behind an entry */
>>   static void p2m_free_subtree(struct p2m_domain *p2m,
>>                                pte_t entry, unsigned int level)
>>   {
>> -    panic("%s: hasn't been implemented yet\n", __func__);
>> +    unsigned int i;
>> +    pte_t *table;
>> +    mfn_t mfn;
>> +    struct page_info *pg;
>> +
>> +    /* Nothing to do if the entry is invalid. */
>> +    if ( !pte_is_valid(entry) )
>> +        return;
>> +
>> +    if ( pte_is_superpage(entry, level) || (level == 0) )
> Perhaps swap the two conditions around?
>
>> +    {
>> +#ifdef CONFIG_IOREQ_SERVER
>> +        /*
>> +         * If this gets called then either the entry was replaced by an entry
>> +         * with a different base (valid case) or the shattering of a superpage
>> +         * has failed (error case).
>> +         * So, at worst, the spurious mapcache invalidation might be sent.
>> +         */
>> +        if ( p2m_is_ram(p2m_get_type(p2m, entry)) &&
>> +             domain_has_ioreq_server(p2m->domain) )
>> +            ioreq_request_mapcache_invalidate(p2m->domain);
>> +#endif
>> +
>> +        p2m_put_page(entry, level);
>> +
>> +        return;
>> +    }
>> +
>> +    table = map_domain_page(pte_get_mfn(entry));
>> +    for ( i = 0; i < XEN_PT_ENTRIES; i++ )
>> +        p2m_free_subtree(p2m, table[i], level - 1);
> In p2m_put_page() you comment towards concerns for level >= 2; no similar
> concerns for the resulting recursion here?

This function is generic enough to handle any level.

Except that it is possible that it will be needed, for example, to split 1G mapping
into something smaller then p2m_free_subtree() could be called for freeing a subtree
of 1gb mapping.

>> +    unmap_domain_page(table);
>> +
>> +    /*
>> +     * Make sure all the references in the TLB have been removed before
>> +     * freing the intermediate page table.
>> +     * XXX: Should we defer the free of the page table to avoid the
>> +     * flush?
>> +     */
>> +    p2m_tlb_flush_sync(p2m);
>> +
>> +    mfn = pte_get_mfn(entry);
>> +    ASSERT(mfn_valid(mfn));
>> +
>> +    pg = mfn_to_page(mfn);
>> +
>> +    page_list_del(pg, &p2m->pages);
>> +    p2m_free_page(p2m, pg);
> Once again I wonder whether this code path was actually tested: p2m_free_page()
> also invokes page_list_del(), and double deletions typically won't end very
> well.

Agree, it should be dropped here and left only in p2m_free_page().

It should be tested, I have a test case where I'm chaning MFN so this one should be called:
+    /*
+     * Free the entry only if the original pte was valid and the base
+     * is different (to avoid freeing when permission is changed).
+     */
+    if ( pte_is_valid(orig_pte) &&
+         !mfn_eq(pte_get_mfn(*entry), pte_get_mfn(orig_pte)) )
+        p2m_free_subtree(p2m, orig_pte, level);

I will double check.

But I think I was lucky because I've tested only the whole patch series and in one of a
further patches page_list_del(pg, &p2m->pages) is dropped.

~ Oleksii

--------------vYx2KQ1Dkw3zffA1AKgYiN5b
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/6/25 5:55 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:98dc796e-bb14-435e-8c19-53e5de60cc43@suse.com">
      <pre wrap="" class="moz-quote-pre">On 31.07.2025 17:58, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/include/asm/p2m.h
+++ b/xen/arch/riscv/include/asm/p2m.h
@@ -79,10 +79,20 @@ typedef enum {
     p2m_ext_storage,    /* Following types'll be stored outsude PTE bits: */
     p2m_grant_map_rw,   /* Read/write grant mapping */
     p2m_grant_map_ro,   /* Read-only grant mapping */
+    p2m_map_foreign_rw, /* Read/write RAM pages from foreign domain */
+    p2m_map_foreign_ro, /* Read-only RAM pages from foreign domain */
 } p2m_type_t;
 
 #define p2m_mmio_direct p2m_mmio_direct_io
 
+/*
+ * Bits 8 and 9 are reserved for use by supervisor software;
+ * the implementation shall ignore this field.
+ * We are going to use to save in these bits frequently used types to avoid
+ * get/set of a type from radix tree.
+ */
+#define P2M_TYPE_PTE_BITS_MASK  0x300
+
 /* We use bitmaps and mask to handle groups of types */
 #define p2m_to_mask(t_) BIT(t_, UL)
 
@@ -93,10 +103,16 @@ typedef enum {
 #define P2M_GRANT_TYPES (p2m_to_mask(p2m_grant_map_rw) | \
                          p2m_to_mask(p2m_grant_map_ro))
 
+                            /* Foreign mappings types */
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">Nit: Why so far to the right?

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -197,6 +197,16 @@ static pte_t *p2m_get_root_pointer(struct p2m_domain *p2m, gfn_t gfn)
     return __map_domain_page(p2m-&gt;root + root_table_indx);
 }
 
+static p2m_type_t p2m_get_type(const pte_t pte)
+{
+    p2m_type_t type = MASK_EXTR(pte.pte, P2M_TYPE_PTE_BITS_MASK);
+
+    if ( type == p2m_ext_storage )
+        panic("unimplemented\n");
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">That is, as per p2m.h additions you pretend to add support for foreign types
here, but then you don't?</pre>
    </blockquote>
    <pre>I count foreign types as p2m_ext_storage type, so a support for them will be added in the patch
[1] of this patch series as a type for p2m_ext_storage type will stored in metadata
due to the lack of free bits in PTE.

[1] <a class="moz-txt-link-freetext"
href="https://lore.kernel.org/xen-devel/cover.1753973161.git.oleksii.kurochko@gmail.com/T/#mcc1a0367fdbfbf3ca073f152efa799c1a4354974">https://lore.kernel.org/xen-devel/cover.1753973161.git.oleksii.kurochko@gmail.com/T/#mcc1a0367fdbfbf3ca073f152efa799c1a4354974</a>
</pre>
    <blockquote type="cite"
      cite="mid:98dc796e-bb14-435e-8c19-53e5de60cc43@suse.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">@@ -248,11 +258,136 @@ static int p2m_next_level(struct p2m_domain *p2m, bool alloc_tbl,
     return P2M_TABLE_MAP_NONE;
 }
 
+static void p2m_put_foreign_page(struct page_info *pg)
+{
+    /*
+     * Itâ€™s safe to call put_page() here because arch_flush_tlb_mask()
+     * will be invoked if the page is reallocated before the end of
+     * this loop, which will trigger a flush of the guest TLBs.
+     */
+    put_page(pg);
+}
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">How can one know the comment is true? arch_flush_tlb_mask() still lives in
stubs.c, and hence what it is eventually going to do (something like Arm's
vs more like x86'es) is entirely unknown right now.</pre>
    </blockquote>
    <pre>I'll introduce arch_flush_tlb_mask() in this patch in the next version.

</pre>
    <blockquote type="cite"
      cite="mid:98dc796e-bb14-435e-8c19-53e5de60cc43@suse.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+/* Put any references on the single 4K page referenced by mfn. */
+static void p2m_put_4k_page(mfn_t mfn, p2m_type_t type)
+{
+    /* TODO: Handle other p2m types */
+
+    if ( p2m_is_foreign(type) )
+    {
+        ASSERT(mfn_valid(mfn));
+        p2m_put_foreign_page(mfn_to_page(mfn));
+    }
+
+    /*
+     * Detect the xenheap page and mark the stored GFN as invalid.
+     * We don't free the underlying page until the guest requested to do so.
+     * So we only need to tell the page is not mapped anymore in the P2M by
+     * marking the stored GFN as invalid.
+     */
+    if ( p2m_is_ram(type) &amp;&amp; is_xen_heap_mfn(mfn) )
+        page_set_xenheap_gfn(mfn_to_page(mfn), INVALID_GFN);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">Isn't this for grants? p2m_is_ram() doesn't cover p2m_grant_map_*.</pre>
    </blockquote>
    <pre>p2m_is_ram() looks really unnecessary here. I'm thinking if it could be useful
to store for RAM types GFNs too to have something like M2P.
</pre>
    <blockquote type="cite"
      cite="mid:98dc796e-bb14-435e-8c19-53e5de60cc43@suse.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+}
+
+/* Put any references on the superpage referenced by mfn. */
+static void p2m_put_2m_superpage(mfn_t mfn, p2m_type_t type)
+{
+    struct page_info *pg;
+    unsigned int i;
+
+    ASSERT(mfn_valid(mfn));
+
+    pg = mfn_to_page(mfn);
+
+    for ( i = 0; i &lt; XEN_PT_ENTRIES; i++, pg++ )
+        p2m_put_foreign_page(pg);
+}
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">In p2m_put_4k_page() you check the type, whereas here you don't.</pre>
    </blockquote>
    <pre>Missed to add that:
      if ( !p2m_is_foreign(type) )
        return;

</pre>
    <blockquote type="cite"
      cite="mid:98dc796e-bb14-435e-8c19-53e5de60cc43@suse.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+/* Put any references on the page referenced by pte. */
+static void p2m_put_page(const pte_t pte, unsigned int level)
+{
+    mfn_t mfn = pte_get_mfn(pte);
+    p2m_type_t p2m_type = p2m_get_type(pte);
+
+    ASSERT(pte_is_valid(pte));
+
+    /*
+     * TODO: Currently we don't handle level 2 super-page, Xen is not
+     * preemptible and therefore some work is needed to handle such
+     * superpages, for which at some point Xen might end up freeing memory
+     * and therefore for such a big mapping it could end up in a very long
+     * operation.
+     */
+    switch ( level )
+    {
+    case 1:
+        return p2m_put_2m_superpage(mfn, p2m_type);
+
+    case 0:
+        return p2m_put_4k_page(mfn, p2m_type);
+    }
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">Yet despite the comment not even an assertion for level 2 and up?</pre>
    </blockquote>
    <pre>Not sure that an ASSERT() is needed here as a reference(s) for such page(s)
will be put during domain_relinquish_resources() as there we could do preemption.
Something like Arm does here:
  <a class="moz-txt-link-freetext"
href="https://gitlab.com/xen-project/people/olkur/xen/-/blob/staging/xen/arch/arm/mmu/p2m.c?ref_type=heads#L1587">https://gitlab.com/xen-project/people/olkur/xen/-/blob/staging/xen/arch/arm/mmu/p2m.c?ref_type=heads#L1587</a>

I'm thinking that probably it makes sense to put only 4k page(s) and
all other cases postpone until domain_relinquish_resources() is called.

</pre>
    <blockquote type="cite"
      cite="mid:98dc796e-bb14-435e-8c19-53e5de60cc43@suse.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre"> /* Free pte sub-tree behind an entry */
 static void p2m_free_subtree(struct p2m_domain *p2m,
                              pte_t entry, unsigned int level)
 {
-    panic("%s: hasn't been implemented yet\n", __func__);
+    unsigned int i;
+    pte_t *table;
+    mfn_t mfn;
+    struct page_info *pg;
+
+    /* Nothing to do if the entry is invalid. */
+    if ( !pte_is_valid(entry) )
+        return;
+
+    if ( pte_is_superpage(entry, level) || (level == 0) )
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">Perhaps swap the two conditions around?

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    {
+#ifdef CONFIG_IOREQ_SERVER
+        /*
+         * If this gets called then either the entry was replaced by an entry
+         * with a different base (valid case) or the shattering of a superpage
+         * has failed (error case).
+         * So, at worst, the spurious mapcache invalidation might be sent.
+         */
+        if ( p2m_is_ram(p2m_get_type(p2m, entry)) &amp;&amp;
+             domain_has_ioreq_server(p2m-&gt;domain) )
+            ioreq_request_mapcache_invalidate(p2m-&gt;domain);
+#endif
+
+        p2m_put_page(entry, level);
+
+        return;
+    }
+
+    table = map_domain_page(pte_get_mfn(entry));
+    for ( i = 0; i &lt; XEN_PT_ENTRIES; i++ )
+        p2m_free_subtree(p2m, table[i], level - 1);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">In p2m_put_page() you comment towards concerns for level &gt;= 2; no similar
concerns for the resulting recursion here?</pre>
    </blockquote>
    <pre>This function is generic enough to handle any level.

Except that it is possible that it will be needed, for example, to split 1G mapping
into something smaller then p2m_free_subtree() could be called for freeing a subtree
of 1gb mapping.

</pre>
    <blockquote type="cite"
      cite="mid:98dc796e-bb14-435e-8c19-53e5de60cc43@suse.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    unmap_domain_page(table);
+
+    /*
+     * Make sure all the references in the TLB have been removed before
+     * freing the intermediate page table.
+     * XXX: Should we defer the free of the page table to avoid the
+     * flush?
+     */
+    p2m_tlb_flush_sync(p2m);
+
+    mfn = pte_get_mfn(entry);
+    ASSERT(mfn_valid(mfn));
+
+    pg = mfn_to_page(mfn);
+
+    page_list_del(pg, &amp;p2m-&gt;pages);
+    p2m_free_page(p2m, pg);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">Once again I wonder whether this code path was actually tested: p2m_free_page()
also invokes page_list_del(), and double deletions typically won't end very
well.</pre>
    </blockquote>
    <pre>Agree, it should be dropped here and left only in p2m_free_page().

It should be tested, I have a test case where I'm chaning MFN so this one should be called:
+    /*
+     * Free the entry only if the original pte was valid and the base
+     * is different (to avoid freeing when permission is changed).
+     */
+    if ( pte_is_valid(orig_pte) &amp;&amp;
+         !mfn_eq(pte_get_mfn(*entry), pte_get_mfn(orig_pte)) )
+        p2m_free_subtree(p2m, orig_pte, level);

I will double check.

But I think I was lucky because I've tested only the whole patch series and in one of a
further patches page_list_del(pg, &amp;p2m-&gt;pages) is dropped.

~ Oleksii</pre>
  </body>
</html>

--------------vYx2KQ1Dkw3zffA1AKgYiN5b--


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 15:11:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 15:11:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081923.1441877 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umZby-0007hh-OY; Thu, 14 Aug 2025 15:11:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081923.1441877; Thu, 14 Aug 2025 15:11: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 1umZby-0007ha-KP; Thu, 14 Aug 2025 15:11:26 +0000
Received: by outflank-mailman (input) for mailman id 1081923;
 Thu, 14 Aug 2025 15:11:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xqZt=22=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umZbw-0007g5-SC
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 15:11:24 +0000
Received: from mail-ej1-x631.google.com (mail-ej1-x631.google.com
 [2a00:1450:4864:20::631])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f1040618-7920-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 17:11:23 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-afcb7a16441so158031866b.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 08:11:23 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-af91a0a3361sm2606439366b.39.2025.08.14.08.11.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 08:11: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>
X-Inumbo-ID: f1040618-7920-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755184283; x=1755789083; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=XiqG6syEu5NE5DSo6tHfHj4RGng8dGnnAbVSapbdEB4=;
        b=gadKEO/t4wGoIn1NTFTvq4ClSTfR9jOG3QhuLotk6iZlVdMBgm7NQHkwG0PPMVK9Rw
         tkT6J5wK1ZqhiwpHsNQIoeyxlNum+LvKn30BOzNJU38ZKUjidK802msfgeow+DirVe4a
         xi9nnJYsUVToUgJOX4YZvTal3clyN/TUCx1LHreVpEbNcCtHKBOCB9TiAhhfnCNtedIH
         zXy8ejH8AFOUNTk6jmXOWi8Jmw+QUcv1dAKBdf5oxtT6Yi3Fcw/tcE7DDGtwBM827ssQ
         +Na9w3WYmSMpKuw0VyFJk5ibgsybP23xpE2sesguMJwibZksCgk0S5tSbv5dhou2b65v
         rZqQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755184283; x=1755789083;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XiqG6syEu5NE5DSo6tHfHj4RGng8dGnnAbVSapbdEB4=;
        b=sw1hX7lJvDNKl+2J374BgDII0c0PBbGS69hqHF01c4uCzOh7k+FHdVixvXnW9BArHE
         30uSuzqk2uupZeuw2iaC7WpjqJ8UtQ/6yo4I7AEHvn367NHzE66NyhO6Sy0Yo42E8pSF
         CeDrPbTnVUT9LrIiQ9r9KlsLj8hmzQbnUtyeHxi9/wIb+QX4CaFKFoWs3Re3KnGTQc66
         NC/TvlRrRedrLpm/E1K9jt01Xjh3jJw4sxqabCfOxWTYEmOm8i0DdQwUXpqXrI3oP3cI
         NPUPsKjlyoV4J+BwdRUN6m/2U79Lj0X1/BcMY+s3PiphrsXRBq7I2S/9QJ5BO7ifFuYm
         +92g==
X-Forwarded-Encrypted: i=1; AJvYcCUphlt7NWb5vUu2dhhFeTad818X0SmL4zMesreb1mMS8vNsQfr2KFjz/FTjfIxNGf2XwgTfK1R5RF8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz105RlJVS/7DWtXfeP+063Nxlqty4k1iZr/mao03e7aOTr2jES
	ooXpvFUnkSpypLgacMwkn1bfLk3dcK0u3PV6N4thiR4TxfMB/CQ9fxm5yL/kpnbxYA==
X-Gm-Gg: ASbGncslNPJSmcUdHCoTBVOTAcrFXQC7p3KicRhb5GDTyiB7jALzOoxYuSdxxUAijIK
	YsiXGfDyO41Rhxa+9KBxk0sN7q1v1sPkZ2FAS5jWV39qvZdEZtC/4FNJ3XJ+mAv6/dyw616ouSo
	C98qjrZ1zu52zvHNr5Wyzg1YDTb6ThooIsqIs7G5sLXg1YLn+VcooG9DvZ/P6qEm1SIyxzYr4cz
	q0uIZDkSaH5J1EMRH+kipRrr6au1Kv0zMfgOxsdOhnTfdcimudUPdHPYxnXpjv/5SgsU4JqJBRz
	l20JgGgGlJBPrglzL8Robxm6BxI6hFBh6ZcINAqbnqcAda2lJZlUZDpOfY4UEd8NhReu/aIS1iL
	B+q77JUCu50c8HgHXIqGCjVZEDJhX6nJmYyIcL41Lh2Vo5Z4MgfXePYembvIz/XLqCKnQVyrg83
	jZde3HQj1p3+97JCx4Lw==
X-Google-Smtp-Source: AGHT+IFAeKDXK1MTeOP5PSI13Ck7/CoAEBsnTVZhp+TZnNmHVGjpHFaw6jMGkKF0N2yqJDjgrpFAmA==
X-Received: by 2002:a17:906:c147:b0:add:fe17:e970 with SMTP id a640c23a62f3a-afcb9398153mr321231866b.14.1755184283302;
        Thu, 14 Aug 2025 08:11:23 -0700 (PDT)
Message-ID: <5ad64534-514c-412a-b2a2-23adaf835f60@suse.com>
Date: Thu, 14 Aug 2025 17:11:21 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 19/22] x86/boot: Use RSTORSSP to establish SSP
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-20-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: <20250808202314.1045968-20-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.08.2025 22:23, Andrew Cooper wrote:
> Under FRED, SETSSBSY is unavailable, and we want to be setting up FRED prior
> to setting up shadow stacks.  As we still need Supervisor Tokens in IDT mode,
> we need mode-specific logic to establish SSP.
> 
> In FRED mode, write a Restore Token, RSTORSSP it, and discard the resulting
> Previous-SSP token.
> 
> No change outside of FRED mode.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Why is it that in patch 17 you could use identical code, but here you can't?

> @@ -912,10 +913,30 @@ static void __init noreturn reinit_bsp_stack(void)
>  
>      if ( cpu_has_xen_shstk )
>      {
> -        wrmsrl(MSR_PL0_SSP,
> -               (unsigned long)stack + (PRIMARY_SHSTK_SLOT + 1) * PAGE_SIZE - 8);

Does this removal perhaps belong elsewhere, especially with "No change
outside of FRED mode" in the description?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 15:17:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 15:17:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081936.1441887 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umZhb-0008Nl-FA; Thu, 14 Aug 2025 15:17:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081936.1441887; Thu, 14 Aug 2025 15:17: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 1umZhb-0008Ne-CX; Thu, 14 Aug 2025 15:17:15 +0000
Received: by outflank-mailman (input) for mailman id 1081936;
 Thu, 14 Aug 2025 15:17:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xqZt=22=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umZha-0008NY-EV
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 15:17:14 +0000
Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com
 [2a00:1450:4864:20::633])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c0bc4929-7921-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 17:17:12 +0200 (CEST)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-afcb7a0550cso178982866b.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 08:17: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
 4fb4d7f45d1cf-615a8fe77cfsm23781904a12.42.2025.08.14.08.17.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 08:17: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>
X-Inumbo-ID: c0bc4929-7921-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755184632; x=1755789432; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4yZJTaGhZtrvq1andNWgka9JF0YBKEOWX1lhoETBrgM=;
        b=g4SLpW9Ke39sVgkx0hz87Jcyn/5wA/LR0IQ66Xu9fLfH4EwqDfMSAcnjZ2ke2yhCoa
         fjnvagF1XnCzhUgcmINuK1rQteq68iv6IHpDppjvk8ZJaL87Fx2sAv6PWOgDX3jnnEUK
         GjW28VDmkXPnQu+YEkod7O2OrLk4nTcHOp6l9BB47tXXgmE0BvvGl0E+wSLTbJtK6obx
         RF6kfbZsJMVFdBvXdSAZiknxN3Pm7okgad8mCS8Fw1pWtwzDoy+8q1LnVFTc/U0lQ/HS
         ggxxeEeuPlrBCjoz1wh40tz+QXWWQZW84U5cuuT0abx9u4WnHFMY61R/IUIQ3bBZKB01
         RufQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755184632; x=1755789432;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4yZJTaGhZtrvq1andNWgka9JF0YBKEOWX1lhoETBrgM=;
        b=PyFeTWoIWNZl2FpaqNCaburd3sYztL7reJ0McVmvg0ki1J7yymCXOApki7b8eN4OvH
         8QExDCDB8pwc5QmGtHjhzxtMl6tQzW9whP4wzRbpuwbinW7X1UBhxGHEXck8bG8+ezut
         Q12fl2AxZw90LDxrOpaZs7DSJYpYw3akn8CHZvX85IcX8VtdcEd1XUnK+Li72GaMZqnr
         /904QjmvXA1rEzntkQxV2TSNkqIr78mX3+pDbUv15RGfGks2slSlHc7Qm+QPd8mVyWLr
         8g9k1zkEIC+U4frQPjfFJYlE8P+rUZYOUB6IMb85xN4xUgwilu3e/ZSGYbNkAHGpfHzq
         c25w==
X-Forwarded-Encrypted: i=1; AJvYcCWF0N7L+kiN8juvdYUxr49LDpCU/pZ3UedPCssbYLQDXhzP2Kt6RIn3XNcuUsKtigu6UoFlauK0rng=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyfVwz6DIsGshvh0uxggcdVpiGTe7yp8PcpgNSbRyQtwN+Re/2d
	3NRgLjFmehHyEExCVH+yDqCd3pvzd/ci7jftebzwODVtmMBZlKItENAydWLWXEpxxQ==
X-Gm-Gg: ASbGncvFBBO86EBSbEB6QRX1O7y8497OxaP1UiHOLDSwmSLzuiIJng1fwhdlVuWt3/I
	+jA0CmNaCuTJJnwmfpBMkfOAYUQxB+O5eXa/k5uao1WI/aSCJg8+Tljjuf+XPkMyjBKlpSFV7ju
	h54PjIJx2azgrtr4C83Rn56YOt0durVmVL0ro6jmHq4d6wtMU4n23DdKhBAl64NGXPvDqDUAaOq
	ZvwaVApbljQeAQBc9cqw0IfLjN2AijWAwNW86ENNOR5Y7lrNy1k+zcBuxQLigPz42e0GVWPF/FT
	1kAdRBpoG+4bCZ83nVz8x7Ct7ijbsQ8waQXQkWRnvSKAX+SF8C/o3jAkfr8DOHdfpQWecMpWL6L
	jg+Sv7vxxKuluJBdqC7ATHntpMfEoihZbuLhoF5he6Qbty8KClSzwbbipRZMGwnX5dJykO1hIER
	HqlDvATK4pjN5N8VlMcw==
X-Google-Smtp-Source: AGHT+IEwzPoy4jRF/3stzw+O9NBbz2v80ezTffN2Bv9Iev+lkbV1QMh4hHLd/MUwPapX5aFm8Dm5VQ==
X-Received: by 2002:a17:907:6eac:b0:ae0:d8f2:9065 with SMTP id a640c23a62f3a-afcbe1b0700mr308103866b.39.1755184631728;
        Thu, 14 Aug 2025 08:17:11 -0700 (PDT)
Message-ID: <117e35e0-d23e-4527-964a-82fa2bed57fd@suse.com>
Date: Thu, 14 Aug 2025 17:17:09 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 13/20] xen/riscv: Implement p2m_free_subtree() and
 related helpers
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <41845723a7b0e3efd09095d13e57aace6f7747ef.1753973161.git.oleksii.kurochko@gmail.com>
 <98dc796e-bb14-435e-8c19-53e5de60cc43@suse.com>
 <c8a07c48-b79b-4136-a265-91c14bb96c81@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: <c8a07c48-b79b-4136-a265-91c14bb96c81@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.08.2025 17:09, Oleksii Kurochko wrote:
> On 8/6/25 5:55 PM, Jan Beulich wrote:
>> On 31.07.2025 17:58, Oleksii Kurochko wrote:
>>> +/* Put any references on the page referenced by pte. */
>>> +static void p2m_put_page(const pte_t pte, unsigned int level)
>>> +{
>>> +    mfn_t mfn = pte_get_mfn(pte);
>>> +    p2m_type_t p2m_type = p2m_get_type(pte);
>>> +
>>> +    ASSERT(pte_is_valid(pte));
>>> +
>>> +    /*
>>> +     * TODO: Currently we don't handle level 2 super-page, Xen is not
>>> +     * preemptible and therefore some work is needed to handle such
>>> +     * superpages, for which at some point Xen might end up freeing memory
>>> +     * and therefore for such a big mapping it could end up in a very long
>>> +     * operation.
>>> +     */
>>> +    switch ( level )
>>> +    {
>>> +    case 1:
>>> +        return p2m_put_2m_superpage(mfn, p2m_type);
>>> +
>>> +    case 0:
>>> +        return p2m_put_4k_page(mfn, p2m_type);
>>> +    }
>> Yet despite the comment not even an assertion for level 2 and up?
> 
> Not sure that an ASSERT() is needed here as a reference(s) for such page(s)
> will be put during domain_relinquish_resources() as there we could do preemption.
> Something like Arm does here:
>    https://gitlab.com/xen-project/people/olkur/xen/-/blob/staging/xen/arch/arm/mmu/p2m.c?ref_type=heads#L1587
> 
> I'm thinking that probably it makes sense to put only 4k page(s) and
> all other cases postpone until domain_relinquish_resources() is called.

How can you defer to domain cleanup? How would handling of foreign mappings
(or e.g. ballooning? not sure) work when you don't drop references as
necessary?

>>>   /* Free pte sub-tree behind an entry */
>>>   static void p2m_free_subtree(struct p2m_domain *p2m,
>>>                                pte_t entry, unsigned int level)
>>>   {
>>> -    panic("%s: hasn't been implemented yet\n", __func__);
>>> +    unsigned int i;
>>> +    pte_t *table;
>>> +    mfn_t mfn;
>>> +    struct page_info *pg;
>>> +
>>> +    /* Nothing to do if the entry is invalid. */
>>> +    if ( !pte_is_valid(entry) )
>>> +        return;
>>> +
>>> +    if ( pte_is_superpage(entry, level) || (level == 0) )
>> Perhaps swap the two conditions around?
>>
>>> +    {
>>> +#ifdef CONFIG_IOREQ_SERVER
>>> +        /*
>>> +         * If this gets called then either the entry was replaced by an entry
>>> +         * with a different base (valid case) or the shattering of a superpage
>>> +         * has failed (error case).
>>> +         * So, at worst, the spurious mapcache invalidation might be sent.
>>> +         */
>>> +        if ( p2m_is_ram(p2m_get_type(p2m, entry)) &&
>>> +             domain_has_ioreq_server(p2m->domain) )
>>> +            ioreq_request_mapcache_invalidate(p2m->domain);
>>> +#endif
>>> +
>>> +        p2m_put_page(entry, level);
>>> +
>>> +        return;
>>> +    }
>>> +
>>> +    table = map_domain_page(pte_get_mfn(entry));
>>> +    for ( i = 0; i < XEN_PT_ENTRIES; i++ )
>>> +        p2m_free_subtree(p2m, table[i], level - 1);
>> In p2m_put_page() you comment towards concerns for level >= 2; no similar
>> concerns for the resulting recursion here?
> 
> This function is generic enough to handle any level.
> 
> Except that it is possible that it will be needed, for example, to split 1G mapping
> into something smaller then p2m_free_subtree() could be called for freeing a subtree
> of 1gb mapping.

The question wasn't about it being generic enough, but it possibly taking
too much time for level >= 2.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 15:35:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 15:35:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081950.1441912 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umZzV-0003f1-2R; Thu, 14 Aug 2025 15:35:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081950.1441912; Thu, 14 Aug 2025 15:35:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umZzU-0003eu-Vu; Thu, 14 Aug 2025 15:35:44 +0000
Received: by outflank-mailman (input) for mailman id 1081950;
 Thu, 14 Aug 2025 15:35:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xqZt=22=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umZzU-0003eo-4K
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 15:35:44 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5610e483-7924-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 17:35:42 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-afca41c7d7fso349654066b.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 08:35: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
 a640c23a62f3a-af91a0df10asm2612037366b.59.2025.08.14.08.35.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 08:35: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>
X-Inumbo-ID: 5610e483-7924-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755185741; x=1755790541; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=5actuKiRsrgN3UDhO2IKTu1ZOwv4i2IltujExJv2M6Y=;
        b=OgGgYz5dFTjbsVbUWiHHBUpOs/XGMSypMVzoREHEfKpyTOKC5LKQQhIl8argq2G7Dq
         Cl7ZKvE30w+2Gx0cVSd+sdN1Sz3Wize62NAIE59tQOXEf9wSIroV9v/TmWO2cFzFXGQK
         l8hzGUCYmhzKFe97xof8G158dIoQefrq1c9cwdiac2IFY5VZrZ2dn4uUtFlWQmoXNobT
         o06BIim1avuEJpzth5dJbbSlDrH9wzsyD4W5ElYIJRpApanIEAJ/KMtIT4vkNSKTC5Rw
         rFOtLdSuFt0i7MQZmpKR3BF6lUF0wlJBEB08gM7YLeDNKjc2ku7SPhI+gFs1hfSjJ0fP
         IMCA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755185741; x=1755790541;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5actuKiRsrgN3UDhO2IKTu1ZOwv4i2IltujExJv2M6Y=;
        b=kDad6EhLAlNjdQdO9sdTn/FQWJbVgtUDOgKA4EPoDgCxnHrrhQqSB4Ps16Wt91Oy8k
         hG6D/t/ed7I+k4SGYtwv8sZ3wT5G7u3FYKKX0G0cIYUhqiwltVZfymsxkJ4q63OZ7sQO
         QfCIEluQg1gIrt9CSPypR+7x8PHxxuZaJQXipV1INpgg63D8S1zeSYMfBO0fxxh7ooNf
         ytdkQAzz4pQCE3+SouPK18m2EshCBTvDTpgZxjQRShgwzBwfO2UrhlulToUDs2+jLOM9
         M0R26ODA57XNsnfH0uHv0JeVHfbk2AwTh7MMxPJLqD2r7KCrs5Hny0jjqftVACBrkMJg
         J9Fw==
X-Forwarded-Encrypted: i=1; AJvYcCWnnhianRhTmRwJXroanFx29WMZ5WRN1swzqKZcQtFgJX9o6IPQ7xDgep1jdLkM5cNiO/sZg6gh/Bk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwnHVcSCfRH0s39Hw4FTcGjrvHep+q9HpzdiEScUbyscm5KlZDn
	hBuZCkpudycQKWuR2NtArkW96HqJ1oJumZ8PoelvOkY8jzd0Hl/HzZmy42ena+LRKA==
X-Gm-Gg: ASbGncuytzvdBQ79LWqLHbF5cVqW2v/h75uDAsJbfv/nOsZrv60AXJnVbk65jH1ejF0
	JfDgVO6+oAR86r9Ke/yKMIykbBU+DoHVqVrH4VJ067K+06uhBgtwFta2mDrjM+B5y0igb31SoXr
	/75QH1mb8ljgcUt+IQxdQB9Je/CiHTHky/auQrUa0q+YwgFqh5UA02Ai3zrxYQ0bD0R5opJAejA
	k1f4cpFq+6U/faXVK6HaW8EAUk7jltbhuAo5EKjSUiJx8EyAmBQhXgjNLFFqvr4gHxxZaAYHIDA
	njr2vEINIoi4gp4AmLbzzraYdLBGEVGjHNmSwShFGmGDOhna/ps87AaVl3rxY62wCS0YdpzyRz7
	UD96Y1QLqvpopwEOszT3g4rKZGrpv561ZhjsRO46khXKaoQbEgryJ4LjLEhWgGyhCYoE1HKnYUa
	RaHCY4pznY86mYcTcJoQ==
X-Google-Smtp-Source: AGHT+IFbZBMkksT5RpiRsF62gYpSN46zi0ZXyaVntsbqrGRqM0a5C1QZK6Pb/BlAPW2SLXQyOFY5PA==
X-Received: by 2002:a17:906:d013:b0:ad8:91e4:a931 with SMTP id a640c23a62f3a-afcbe91fc5dmr214531466b.26.1755185741333;
        Thu, 14 Aug 2025 08:35:41 -0700 (PDT)
Message-ID: <7b46de92-d7b6-462f-8469-0f334d9e70bb@suse.com>
Date: Thu, 14 Aug 2025 17:35:39 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 20/22] x86/traps: Alter switch_stack_and_jump() for FRED
 mode
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-21-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: <20250808202314.1045968-21-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 08.08.2025 22:23, Andrew Cooper wrote:
> FRED and IDT differ by a Supervisor Token on the base of the shstk.  This
> means that switch_stack_and_jump() needs to discard one extra word when FRED
> is active.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
> 
> RFC.  I don't like this, but it does work.
> 
> This emits opt_fred logic outside of CONFIG_XEN_SHSTK.

opt_fred and XEN_SHSTK are orthogonal, so that's fine anyway. What I guess
you may mean is that you now have a shstk-related calculation outside of
a respective #ifdef. Given the simplicity of the calculation, ...

>  But frankly, the
> construct is already too unweildly, and all options I can think of make it
> moreso.

... I agree having it like this is okay.

> @@ -154,7 +155,6 @@ unsigned long get_stack_dump_bottom (unsigned long sp);
>      "rdsspd %[ssp];"                                            \
>      "cmp $1, %[ssp];"                                           \
>      "je .L_shstk_done.%=;" /* CET not active?  Skip. */         \
> -    "mov $%c[skstk_base], %[val];"                              \
>      "and $%c[stack_mask], %[ssp];"                              \
>      "sub %[ssp], %[val];"                                       \
>      "shr $3, %[val];"                                           \

With the latter two insns here, ...

> @@ -177,6 +177,8 @@ unsigned long get_stack_dump_bottom (unsigned long sp);
>  
>  #define switch_stack_and_jump(fn, instr, constr)                        \
>      ({                                                                  \
> +        unsigned int token_offset =                                     \
> +            (PRIMARY_SHSTK_SLOT + 1) * PAGE_SIZE - (opt_fred ? 0 : 8);  \
>          unsigned int tmp;                                               \
>          BUILD_BUG_ON(!ssaj_has_attr_noreturn(fn));                      \
>          __asm__ __volatile__ (                                          \
> @@ -184,12 +186,11 @@ unsigned long get_stack_dump_bottom (unsigned long sp);
>              "mov %[stk], %%rsp;"                                        \
>              CHECK_FOR_LIVEPATCH_WORK                                    \
>              instr "[fun]"                                               \
> -            : [val] "=&r" (tmp),                                        \
> +            : [val] "=r" (tmp),                                         \

... I don't think you can legitimately drop the & from here? With it
retained:
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 15:57:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 15:57:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081962.1441928 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umaKm-0006zz-T9; Thu, 14 Aug 2025 15:57:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081962.1441928; Thu, 14 Aug 2025 15: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 1umaKm-0006zs-OZ; Thu, 14 Aug 2025 15:57:44 +0000
Received: by outflank-mailman (input) for mailman id 1081962;
 Thu, 14 Aug 2025 15:57:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xqZt=22=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umaKk-0006zm-VZ
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 15:57:42 +0000
Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com
 [2a00:1450:4864:20::62f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 682ee862-7927-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 17:57:40 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-afcb73621fcso154437266b.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 08:57: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
 4fb4d7f45d1cf-6187d96a320sm2700385a12.4.2025.08.14.08.57.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 08:57: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>
X-Inumbo-ID: 682ee862-7927-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755187060; x=1755791860; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=uYptK7OXZhJa1CB6cMoPljnV6QPXkm1IiA50MbqGyzM=;
        b=T2uaL0DDu35iLX9yPGwnGQCP12JBSgu2ymOfYAfJWhfJtxkOBTQRTaVbjp9soZSL31
         WBbDyJl/QpW+ZSi9/2g8pdys3DA6hMx5IKi/inKnZz9seL3z05Ay032obx7QQYmCbiQq
         xwuoYaGcmbTO2MGYd82iHYnFdbT69gPpGlgxxRNe/0fuY/RFD/6q/30QjcWU5V1IiDEr
         dNdwu09KpWgQvd/EM7CnYkeorfb5jFQYFnBD9Yt3QaGxMI7Y3zoDiTAQgsdZtZngcCyh
         VUwWHt+E/RDGJba1kKW1zNKnQfg6V53LiIl3cBaSMUzGRC8bJRFemVRjtU1/PyHPKMBB
         b6UA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755187060; x=1755791860;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=uYptK7OXZhJa1CB6cMoPljnV6QPXkm1IiA50MbqGyzM=;
        b=Arj07CahgIXx+LilQXmzK/2vu7lHztT/rwPk+jcIXdiNxIvgYdqloL2ngCDRNmqgl7
         BJBcNqpoooLufeIFhNhIcNiF18ehcS8o1u00vrPy4kuC+o+d3woVBo+m251oS4JgTt3K
         v1MsmkIAJzZ98ZVYcXByrtngzixKrWTICu8+AbTBwOkiqK5qBzVCuVROH7QtMYoJrQUa
         DmzrUWzuM6AfG4eWRh3KM5Y5tKv8rCcbxRFs8VI5vahnKnCOapuVz5aoOn8u+VreoZ2C
         f3SUrJeQkzWJMcNMkg8hlANhh/o2/7FkaUb29V/pN+OLDB+f9+LfelxCppUl+4EsBATp
         LD/w==
X-Forwarded-Encrypted: i=1; AJvYcCX8xKIOtSCmvaBjECaANSoSRaQvjvcBPan4Pp2HvQTjh3Lpy3IDwyYsW2GkFNMRWieKTgdDhtXH7eM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzBcFkdN/3H1XrpZUimu6cntEY1LER2Wx3t+ajb8PnfIKA7/S1c
	TrrSzaH7EVUs526SevVfEJRYohAlR/xuNxpOL+FxEhaMTwQA5doq08ken6o/7Q6DB1SWz4IJNeN
	0/xk=
X-Gm-Gg: ASbGncth2xE/wkppU/aJBUFK6RG6Xf27/05r2y5EZaP26LmSDCSfRykw8pS2E103rmS
	81u6XiaSrn8qX3sV3F2KccjO6zrnnSvB0jS1QzEcL71VDJaGIaqCX80xInPUtQiuPrwcu6b0Zid
	bKPCXe0fSTDZRe6kW4vht6SfYrwCr/EGuXGv5T1Jyoo72tyxHkqxg7wBU0/dfuO9rUoZ3Z/rByq
	KZTMmn9QZN/2z2XPx5dAjKcMUkenhr90xJ4HxUEGfiN4dIuHt+sxf4BOY1/hb6DYEohxhiS1M6I
	1OPhQfmWIe74kuUYBumz7WDwZbsnLGA5xgsOEkg2eGheJPUO3xhbzVg5sFBzHgq0aJSFrqZwug6
	jRryPe9gZuhAJMrf70lW7On7Fcp+6A4ZSLEnUaLPF2C3ldfGZIqJY3ylaLhYJmegcrNV1LbYO/j
	2HQeIXhKOeoA8hdA7wfQ==
X-Google-Smtp-Source: AGHT+IFiIv+5ISK1dGdhn84iYocNr4OLQ9XgJF5/tNjF0f63YyzpKRzH/5Mf4VlZ4fwoX1GAAQGlHw==
X-Received: by 2002:a17:907:3f9a:b0:af9:6bfb:58b7 with SMTP id a640c23a62f3a-afcb981e496mr369361766b.5.1755187060210;
        Thu, 14 Aug 2025 08:57:40 -0700 (PDT)
Message-ID: <53028a31-e07d-43f1-b320-2775c5560a09@suse.com>
Date: Thu, 14 Aug 2025 17:57:38 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 21/22] x86/traps: Introduce FRED entrypoints
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-22-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: <20250808202314.1045968-22-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.08.2025 22:23, Andrew Cooper wrote:
> --- a/xen/arch/x86/include/asm/asm_defns.h
> +++ b/xen/arch/x86/include/asm/asm_defns.h
> @@ -315,6 +315,71 @@ static always_inline void stac(void)
>          subq  $-(UREGS_error_code-UREGS_r15+\adj), %rsp
>  .endm
>  
> +/*
> + * Push and clear GPRs
> + */
> +.macro PUSH_AND_CLEAR_GPRS
> +        push  %rdi
> +        xor   %edi, %edi
> +        push  %rsi
> +        xor   %esi, %esi
> +        push  %rdx
> +        xor   %edx, %edx
> +        push  %rcx
> +        xor   %ecx, %ecx
> +        push  %rax
> +        xor   %eax, %eax
> +        push  %r8
> +        xor   %r8d, %r8d
> +        push  %r9
> +        xor   %r9d, %r9d
> +        push  %r10
> +        xor   %r10d, %r10d
> +        push  %r11
> +        xor   %r11d, %r11d
> +        push  %rbx
> +        xor   %ebx, %ebx
> +        push  %rbp
> +#ifdef CONFIG_FRAME_POINTER
> +/* Indicate special exception stack frame by inverting the frame pointer. */
> +        mov   %rsp, %rbp
> +        notq  %rbp
> +#else
> +        xor   %ebp, %ebp
> +#endif
> +        push  %r12
> +        xor   %r12d, %r12d
> +        push  %r13
> +        xor   %r13d, %r13d
> +        push  %r14
> +        xor   %r14d, %r14d
> +        push  %r15
> +        xor   %r15d, %r15d
> +.endm
> +
> +/*
> + * POP GPRs from a UREGS_* frame on the stack.  Does not modify flags.
> + *
> + * @rax: Alternative destination for the %rax value on the stack.
> + */
> +.macro POP_GPRS rax=%rax
> +        pop   %r15
> +        pop   %r14
> +        pop   %r13
> +        pop   %r12
> +        pop   %rbp
> +        pop   %rbx
> +        pop   %r11
> +        pop   %r10
> +        pop   %r9
> +        pop   %r8
> +        pop   \rax
> +        pop   %rcx
> +        pop   %rdx
> +        pop   %rsi
> +        pop   %rdi
> +.endm

Hmm, yes, differences are apparently large enough to warrant the redundancy
with SAVE_ALL / RESTORE_ALL.

> --- a/xen/arch/x86/include/asm/msr.h
> +++ b/xen/arch/x86/include/asm/msr.h
> @@ -202,9 +202,9 @@ static inline unsigned long read_gs_base(void)
>  
>  static inline unsigned long read_gs_shadow(void)
>  {
> -    unsigned long base;
> +    unsigned long base, cr4 = read_cr4();
>  
> -    if ( read_cr4() & X86_CR4_FSGSBASE )
> +    if ( !(cr4 & X86_CR4_FRED) && (cr4 & X86_CR4_FSGSBASE) )
>      {
>          asm volatile ( "swapgs" );
>          base = __rdgsbase();
> @@ -234,7 +234,9 @@ static inline void write_gs_base(unsigned long base)
>  
>  static inline void write_gs_shadow(unsigned long base)
>  {
> -    if ( read_cr4() & X86_CR4_FSGSBASE )
> +    unsigned long cr4 = read_cr4();
> +
> +    if ( !(cr4 & X86_CR4_FRED) && (cr4 & X86_CR4_FSGSBASE) )
>      {
>          asm volatile ( "swapgs\n\t"
>                         "wrgsbase %0\n\t"

I don't quite get how these changes fit into this patch.

> --- a/xen/arch/x86/traps.c
> +++ b/xen/arch/x86/traps.c
> @@ -1013,6 +1013,32 @@ void show_execution_state_nmi(const cpumask_t *mask, bool show_all)
>          printk("Non-responding CPUs: {%*pbl}\n", CPUMASK_PR(&show_state_mask));
>  }
>  
> +static const char *x86_et_name(unsigned int type)
> +{
> +    static const char *const names[] = {
> +        [X86_ET_EXT_INTR]    = "EXT_INTR",
> +        [X86_ET_NMI]         = "NMI",
> +        [X86_ET_HW_EXC]      = "HW_EXC",
> +        [X86_ET_SW_INT]      = "SW_INT",
> +        [X86_ET_PRIV_SW_EXC] = "PRIV_SW_EXEC",
> +        [X86_ET_SW_EXC]      = "SW_EXEC",
> +        [X86_ET_OTHER]       = "OTHER",
> +    };
> +
> +    return (type < ARRAY_SIZE(names) && names[type]) ? names[type] : "???";
> +}
> +
> +static const char *x86_et_other_name(unsigned int vec)

This isn't really a vector, is it?

> +{
> +    static const char *const names[] = {
> +        [0] = "MTF",
> +        [1] = "SYSCALL",
> +        [2] = "SYSENTER",
> +    };
> +
> +    return (vec < ARRAY_SIZE(names) && names[vec][0]) ? names[vec] : "???";

Did you mean to check names[ves] for being NULL? Or is this a leftover
from the array being something like names[][10]?

> --- a/xen/arch/x86/x86_64/Makefile
> +++ b/xen/arch/x86/x86_64/Makefile
> @@ -1,6 +1,7 @@
>  obj-$(CONFIG_PV32) += compat/
>  
>  obj-bin-y += entry.o
> +obj-bin-y += entry-fred.o

For the ordering here, ...

> --- /dev/null
> +++ b/xen/arch/x86/x86_64/entry-fred.S
> @@ -0,0 +1,35 @@
> +/* SPDX-License-Identifier: GPL-2.0-or-later */
> +
> +        .file "x86_64/entry-fred.S"
> +
> +#include <asm/asm_defns.h>
> +#include <asm/page.h>
> +
> +        .section .text.entry, "ax", @progbits
> +
> +        /* The Ring3 entry point is required to be 4k aligned. */
> +
> +FUNC(entry_FRED_R3, 4096)

... doesn't this 4k-alignment requirement suggest we want to put
entry-fred.o first? Also, might it be more natural to use PAGE_SIZE
here?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 16:04:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 16:04:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081977.1441947 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umaR0-000117-Sh; Thu, 14 Aug 2025 16:04:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081977.1441947; Thu, 14 Aug 2025 16:04: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 1umaR0-000110-Om; Thu, 14 Aug 2025 16:04:10 +0000
Received: by outflank-mailman (input) for mailman id 1081977;
 Thu, 14 Aug 2025 16:04:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6Upc=22=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1umaQz-0000md-FD
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 16:04:09 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4f937e03-7928-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 18:04:09 +0200 (CEST)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-45a1b0c52f3so5799915e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 09:04:09 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-45a1c749143sm28269975e9.16.2025.08.14.09.04.07
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Aug 2025 09:04: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>
X-Inumbo-ID: 4f937e03-7928-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755187448; x=1755792248; 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=L6B37Ba3gyt57gIs6nirOWojNHZXWUq/F0/HSDXW+MY=;
        b=gGQr3+xD/BTbo1c6cIZ8tBypqbIr4swDpXQTM0uT8zFx4YUer290zi5exTUHCmc8j8
         Poxm9A5lDiVe9/POBY3rbfcOdyjKK01bygZtHVVYWlZanWmOmvT13kYYgoHlFsWeLVNV
         T8rh9opjXdfdvqkC2iJrAXSLS5D1sWK76WNgE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755187448; x=1755792248;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=L6B37Ba3gyt57gIs6nirOWojNHZXWUq/F0/HSDXW+MY=;
        b=M3Uu3NOG24NsmBsLNnlpX9m35OBhk44Qnq4AHdUiKmIIt7JmyhxqFe12RkziP2Khif
         QI4PRjWh0eRtJcqBHzsZPvDi1GbMpM407kp3pT+WO5OFP3T4Ga0UcApKDpO9o7hC8Xcz
         GamgIDgEeWgBXqUbSvgFsPBXjVXWZ4bgUgLGAJcpDhrap++whJNT3IRtdH82qVkKWyp3
         7rxc8w6LHKJ/CX9RT3bf0Rz9h4SpJh0vUhYoaI6PbYgUFNioPyGPVcwoKDF4N2IxUqWk
         nGrDSMcqaI8EAMJU5HPDJKcMaPuZzWLOaoNKa6ogkdONeycpekWky8UrltVhJnV9BkHO
         YMfA==
X-Gm-Message-State: AOJu0YyN8Dz/BIiuvHsbEBMpZgSGLVXt6DBYzBVPoVDlMb3Uz6Y8RXfy
	jtR8JR0vU3xtlPJ/I4yO+opMkGS0+hkZqJEgIlOKiNDi2egunPAyvAWp3E5IwuDlxWq1GNX1auR
	8aLJf
X-Gm-Gg: ASbGnctpvRASPjfFbyijsY2tmUZ/ZhmDis1av/ZP7j/eCfTorLaE/G2hEcbnXtqrFdb
	eVcrLm+gDIQIZPSsZrLApV/MY6gi1ZC7hdzj6xbvRbnKlb98xr+PrPjdAs1ylak4n7KRSbbgWKl
	6mm/jzJsdbt1m4Ltcn8EnYzvSMsc5qfL5pWD2o1wz+oms9Ej849LOetQO4R73Ra2014zLk7WrFz
	igMylqxeVQEwDF84q/sjcbo1pjUbf7arFqqOH5McM1gMONJdY/HgH8NpcOssRHDVdMlB0t2SpOz
	Hz9F40FPDLbL6mRghyqSBSbtgnRNfRmke1w80SF+bmaZcXN78JgQsQrTS2xWv4hSOLmJxOAnPP2
	dU22rhzFKkHw/bWwApiKeGtJzG07leFKHsyX80vr17H3bhoFagO3kh7ye/NcXTic79w==
X-Google-Smtp-Source: AGHT+IHz1EWE4bvPiHqh//WTyRN3eUMg7wkQwNpRCuR6tA5I9ANzFfbUOhz3S4ExD0/q0mmBuNpGvQ==
X-Received: by 2002:a05:600c:3b87:b0:459:d709:e5cf with SMTP id 5b1f17b1804b1-45a1b602b85mr34984975e9.3.1755187448072;
        Thu, 14 Aug 2025 09:04:08 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: stewart.hildebrand@amd.com,
	Jiqian.Chen@amd.com,
	jbeulich@suse.com,
	Roger Pau Monne <roger.pau@citrix.com>
Subject: [PATCH 2/5] xen/vpci: make BAR mapping more resilient for the hardware domain
Date: Thu, 14 Aug 2025 18:03:55 +0200
Message-ID: <20250814160358.95543-3-roger.pau@citrix.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250814160358.95543-1-roger.pau@citrix.com>
References: <20250814160358.95543-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The logic in map_range() will bubble up failures to the upper layer, which
will result in any remaining regions being skip, and for the non-hardware
domain case the owner domain of the device would be destroyed.  However for
the hardware domain the intent is to continue execution, hopping the
failure to modify the p2m could be worked around by the hardware domain.

To accomplish that in a better way, ignore failures and skip the range in
that case, possibly continuing to map further ranges.

Since the error path in vpci_process_pending() should only be used by domUs
now, and it will unconditionally end up calling domain_crash(), simplify
it: there's no need to cleanup if the domain will be destroyed.

No functional change for domUs intended.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/drivers/vpci/header.c | 51 +++++++++++++++++++++------------------
 1 file changed, 28 insertions(+), 23 deletions(-)

diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index b9756b364300..1035dcca242d 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -64,7 +64,8 @@ static int cf_check map_range(
             printk(XENLOG_G_WARNING
                    "%pd denied access to MMIO range [%#lx, %#lx]\n",
                    map->d, map_mfn, m_end);
-            return -EPERM;
+            rc = -EPERM;
+            goto done;
         }
 
         rc = xsm_iomem_mapping(XSM_HOOK, map->d, map_mfn, m_end, map->map);
@@ -73,7 +74,7 @@ static int cf_check map_range(
             printk(XENLOG_G_WARNING
                    "%pd XSM denied access to MMIO range [%#lx, %#lx]: %d\n",
                    map->d, map_mfn, m_end, rc);
-            return rc;
+            goto done;
         }
 
         /*
@@ -87,17 +88,27 @@ static int cf_check map_range(
 
         rc = map->map ? map_mmio_regions(map->d, _gfn(s), size, _mfn(map_mfn))
                       : unmap_mmio_regions(map->d, _gfn(s), size, _mfn(map_mfn));
-        if ( rc == 0 )
-        {
-            *c += size;
-            break;
-        }
         if ( rc < 0 )
         {
             printk(XENLOG_G_WARNING
                    "Failed to %smap [%lx %lx] -> [%lx %lx] for %pd: %d\n",
                    map->map ? "" : "un", s, e, map_mfn,
                    map_mfn + size, map->d, rc);
+            goto done;
+        }
+        if ( rc == 0 )
+        {
+ done:
+            if ( is_hardware_domain(map->d) )
+            {
+                /*
+                 * Ignore failures for the hardware domain and skip the range.
+                 * Do it as a best effort workaround to attempt to get the
+                 * hardware domain to boot.
+                 */
+                rc = 0;
+                *c += size;
+            }
             break;
         }
         ASSERT(rc < size);
@@ -213,28 +224,22 @@ bool vpci_process_pending(struct vcpu *v)
             return true;
         }
 
-        if ( rc )
+        if ( rc && !is_hardware_domain(v->domain) )
         {
-            spin_lock(&pdev->vpci->lock);
-            /* Disable memory decoding unconditionally on failure. */
-            modify_decoding(pdev, v->vpci.cmd & ~PCI_COMMAND_MEMORY,
-                            false);
-            spin_unlock(&pdev->vpci->lock);
-
-            /* Clean all the rangesets */
-            for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
-                if ( !rangeset_is_empty(header->bars[i].mem) )
-                     rangeset_purge(header->bars[i].mem);
-
-            v->vpci.pdev = NULL;
-
             read_unlock(&v->domain->pci_lock);
 
-            if ( !is_hardware_domain(v->domain) )
-                domain_crash(v->domain);
+            domain_crash(v->domain);
 
             return false;
         }
+        ASSERT(!rc);
+        /*
+         * Purge rangeset to deal with the hardware domain having triggered an
+         * error.  It shouldn't be possible, as map_range() will always shallow
+         * errors for hardware domain owned devices, and
+         * rangeset_consume_ranges() itself doesn't generate any errors.
+         */
+        rangeset_purge(bar->mem);
     }
     v->vpci.pdev = NULL;
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 16:04:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 16:04:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081976.1441937 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umaQx-0000mq-KZ; Thu, 14 Aug 2025 16:04:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081976.1441937; Thu, 14 Aug 2025 16: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 1umaQx-0000mj-Gq; Thu, 14 Aug 2025 16:04:07 +0000
Received: by outflank-mailman (input) for mailman id 1081976;
 Thu, 14 Aug 2025 16:04:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6Upc=22=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1umaQw-0000md-O2
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 16:04:06 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4d613ce6-7928-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 18:04:05 +0200 (CEST)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-45a1b00a65fso5767355e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 09:04:05 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-45a1c78c221sm28152895e9.26.2025.08.14.09.04.03
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Aug 2025 09:04: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>
X-Inumbo-ID: 4d613ce6-7928-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755187444; x=1755792244; 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=jCKrWl0FEOIc08WwhKkIkC+zGADjn62RIWnNbdlXusg=;
        b=pctlDAv5UgovAdBOR9IgFhN+rrD/a/Ix2nRgFU6yeq8WFJBzNqYjET1gofiMtuLNmZ
         7e7bJQI0b6sDMatMCkCk7Gb2sClR0M2sIrWlaL7z4NJD2Aqjfpg7/AMDEymEwp0OLL9D
         12v/3xKdVe2I2qI4M7kFJzisTP3Hdi2LHAxhI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755187444; x=1755792244;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=jCKrWl0FEOIc08WwhKkIkC+zGADjn62RIWnNbdlXusg=;
        b=WXDS3QNp6Izg0P/LDRBTeDkYMm77VNIFebKucIWfqEtTYzH0K19U4Bahl/btQRswQa
         LBNq0p/lggtmY0zyL1q2tVeSqzq7Ab9aWk9+8OK5r20YTglxOk/UEHnnoTIDaxrakt2W
         fYuMMpskINZFLvhDHZ0De+JtBDybqGBkHy8uesxM8d0YSqsTOWc3Ii3xTDTNl/GAlTtg
         txH6ClEXivJ0itgwgJHx+h6AZqcHxMPL3ejhoS9M5GpkANkvrZV6rQC4qRvkjnTYdsYz
         71b89Do2XDKZ+ukGxiVTbgHY4SZMdbcvZwlFdC3gagtH6dY5sCGNaVEESw/FqMHp6Z73
         ReVQ==
X-Gm-Message-State: AOJu0Yzkjw3ghxuvI6hcQWdZqazl5krvt3uL9USPvygq+24ti49NKzKe
	HgEkRQrGCpaZDMnzlpvYsDbae4ust4WOuVMQQ7tQMHdpG5f9XuhuxuQc97QNMHa5WX4/5s/rDcp
	Sdsmy
X-Gm-Gg: ASbGnctAsHImjdBE4xzPA4sOYT2PFZwvsknrzSuGsikZ86XzuLpBq90JLFjXPe2lYYi
	m7HzZA4akRKrz78GPlvGTR0fHPeEVIuIrsOtJu5EMsyzdFKSiq66hXJTdxzDkAyNeJNRJMVRUwv
	/UHKKoMAmlXgul6H9Hy0dona7fkE7xUrR2IQ+UyZKPA6ES+vbIcUYwKNMoBWe9K6A/mnA26IDzY
	QymZrHDErDLl0zxap+Y5YxE7xfcE1Sih1ocH7gs1AvdgSfOKVqiQp9jkJ0yZOz8OVgQvOtTWjjD
	FzRMD35h2AYwYIcVZA6hJfUtRVWpHnNEK5FFansNpkLlP1K6wVZsr/mLWT3dovNxxwSmaJ+WyHo
	Ib7uYpN8lZ9zjrZnBX8qOBZrKTPvgc7H7zwPVFMkekIT02ZEctFa048BuO79V74SyyA==
X-Google-Smtp-Source: AGHT+IHSP78ZsNGWnELa4szKnXKmszKjtKx5MLU1Zi/ilP+83vvo8qWLR36rAlHuD2alOib/jPJqug==
X-Received: by 2002:a05:600c:354e:b0:459:d780:3602 with SMTP id 5b1f17b1804b1-45a1b657252mr25741995e9.23.1755187444387;
        Thu, 14 Aug 2025 09:04:04 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: stewart.hildebrand@amd.com,
	Jiqian.Chen@amd.com,
	jbeulich@suse.com,
	Roger Pau Monne <roger.pau@citrix.com>
Subject: [PATCH 0/5] xen/vpci: miscellaneous fixes
Date: Thu, 14 Aug 2025 18:03:53 +0200
Message-ID: <20250814160358.95543-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.49.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Hello,

The following series started with the report in:

https://lore.kernel.org/xen-devel/dbc003a2-9202-46ec-bf87-2829d8a63d53@citrix.com/

And ended up doing a bit of cleanup on the way.  I think the overall
result is nicer, I never really liked the deferral of the setting of the
command and ROM BAR registers, as it makes the logic much harder to
follow.  I've done some testing, but I will probably do some
specific testing to ensure the error paths work as expected - as I don't
have a system that trigger those.  Posting it ahead because some patches
are fairly trivial, and to get feedback on the approach.

Thanks, Roger.

Roger Pau Monne (5):
  xen/vpci: purge BAR rangeset contents before use
  xen/vpci: make BAR mapping more resilient for the hardware domain
  xen/vpci: simplify handling of memory decoding and ROM enable writes
  vpci/msix: move MSI-X hole punching as a result of memory decoding
    enable
  xen/vpci: only check BAR validity once

 xen/drivers/vpci/header.c | 186 ++++++++++++++++----------------------
 xen/include/xen/vpci.h    |   5 +
 2 files changed, 82 insertions(+), 109 deletions(-)

-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 16:04:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 16:04:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081978.1441956 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umaR4-0001H3-1x; Thu, 14 Aug 2025 16:04:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081978.1441956; Thu, 14 Aug 2025 16:04:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umaR3-0001Gw-V4; Thu, 14 Aug 2025 16:04:13 +0000
Received: by outflank-mailman (input) for mailman id 1081978;
 Thu, 14 Aug 2025 16:04:12 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6Upc=22=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1umaR2-0001FY-Io
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 16:04:12 +0000
Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com
 [2a00:1450:4864:20::430])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 505238ff-7928-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 18:04:10 +0200 (CEST)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-3b9e418ba08so556601f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 09:04:10 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3b79c3ac036sm51020430f8f.15.2025.08.14.09.04.08
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Aug 2025 09:04:08 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 505238ff-7928-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755187449; x=1755792249; 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=VIvTZ7pv/C0sfHkl6ro//lBTy9KaJCip4Yzq1BFnW40=;
        b=QYkOREoGD2BIXPWwmg3BqMgw9Orc+khwwDCiIa4d2fJwD5HOCaurqcABl42+FNYGb+
         MlmAeBt8uQcJGwxD8B2eDr9WIO26kHn8gd7uOqKG1KNrEHO/eXDDHpq+W2YOdTK8TPjZ
         Wn5on3PcJ0s8H+wmiR2+K9Rmg8cEvfmbM5ALY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755187449; x=1755792249;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=VIvTZ7pv/C0sfHkl6ro//lBTy9KaJCip4Yzq1BFnW40=;
        b=he8OwmHGWWiAgrxjvJnUDdB7+NSmoCNZCqSf9Et6vHOaY8tq+Boo7lL8DpZtV7Qg3G
         qUosDNSNwP+Ms2ymtpBfetbORcLrdkbe3xw1kqLTHAcSQ4VoUYPePCkXwi1IRBTKViS8
         XrB95r04pqpfqHUfZjDZ0hAZukos/KkBimRvw5YzeLzmCyFN+6meDug+8iH/Uhyw/kQ8
         BL1OfuVkLk4SWaggHIYsEYdCDKflc/ejLKM9CxxT8yJIFTseVOwWhj4kH9IPDgj3JrQ6
         /+lx0VlWgMfmnI33QXbqSxS3UNDCe/PkTxDF58xw1CinDatRL6ZlfWQwdd7hsn/e+xgF
         FIPg==
X-Gm-Message-State: AOJu0Yy5Rm+3Xk8b71SljdaKAJHauUWgkI9riyyGTxATpn4RJGEAzZGq
	2PN7ZX9SK5mPM7CB2owBrebuKa2v0BA/c6MQD5PY10yEpaUrbVKNQ6/9GNDRsMkhcSV0s0Zxauw
	zNTH0
X-Gm-Gg: ASbGncu86q6NfoiCyZAz3jwx4VFygHxbry9VD/nyaN15AjDbu5viSIgvlKbkHL/qbQa
	15a5wkAu/JyRN7mwPn5ca/r9jRgskkCXnzEAUfZC9ZuJWq+AZk5Xjz1M7R3jSU4waFqvXEpuTy2
	WgpBUx4xOamwBMwD7+zRetx9VcDzo0g2+6ScwlxCcJREJdImRwnabj4jWlrz2TUmJ3c6NM6k8ax
	7Q4UVAXsMr2kDYvgRF8DbO2d8WCWAmlaZpFkwTCg0r5dAmna0TfIU1mRSoOkFHD0ZNoHSXrAh1+
	I5jHxLzE/Nnpx14oNAx/BWiieJeepbs1QF2flScMy3PgAH+d9QQThKgeBzNIdavGzbEoFZHSFam
	kv4LKVMXXCyYS8+cbS63uzFyP6Xl55ODNdLaxIkHtqFG1039fGdkxwZSknhuqeOauYg==
X-Google-Smtp-Source: AGHT+IFMWd1gDHrhhDVDn1MANjFzIFBwYOifVOB7VqWG1FjR3VFzCt61QxOnUOTU4XGSLCkGCzdCYg==
X-Received: by 2002:a05:6000:40ce:b0:3b8:f318:dc61 with SMTP id ffacd0b85a97d-3b9edfbc760mr3354469f8f.40.1755187449317;
        Thu, 14 Aug 2025 09:04:09 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: stewart.hildebrand@amd.com,
	Jiqian.Chen@amd.com,
	jbeulich@suse.com,
	Roger Pau Monne <roger.pau@citrix.com>
Subject: [PATCH 3/5] xen/vpci: simplify handling of memory decoding and ROM enable writes
Date: Thu, 14 Aug 2025 18:03:56 +0200
Message-ID: <20250814160358.95543-4-roger.pau@citrix.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250814160358.95543-1-roger.pau@citrix.com>
References: <20250814160358.95543-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Deferring the actual write of the PCI register bit, either the memory
decoding or the ROM enable is not helpful, and adds an unnecessary amount of
complexity to the preemptible handling of BAR related p2m modifications.

In the hardware domain case, whether the PCI register write is done ahead
or after the p2m changes doesn't matter, a hardware domain has plenty of
ways to mess with the PCI register state if it wants to.  Any poking at the
BAR p2m regions ahead of the guest write having completed will be
undefined.

On the other hand, for domUs the memory decoding bit shouldn't really
change as a result of guest actions, and should always be enabled.  Guest
toggling the memory decoding command register should only result in p2m
modifications, but no propagation to the device PCI registers.  Having
memory decoding unconditionally enabled ensures the domU attempting to
perform p2m accesses while the p2m changes are taking place will always
access the BAR contents. This is not the current behavior for domUs, so add
a note that it would preferably done that way.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/drivers/vpci/header.c | 42 +++++++++++++++++++--------------------
 1 file changed, 21 insertions(+), 21 deletions(-)

diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index 1035dcca242d..1a501a0ba47e 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -163,8 +163,6 @@ static void modify_decoding(const struct pci_dev *pdev, uint16_t cmd,
             if ( pci_check_bar(pdev, _mfn(PFN_DOWN(bar->addr)),
                                _mfn(PFN_DOWN(bar->addr + bar->size - 1))) )
                 bar->enabled = map;
-            header->rom_enabled = map;
-            pci_conf_write32(pdev->sbdf, rom_pos, val);
             return;
         }
 
@@ -174,14 +172,6 @@ static void modify_decoding(const struct pci_dev *pdev, uint16_t cmd,
                            _mfn(PFN_DOWN(bar->addr + bar->size - 1))) )
             bar->enabled = map;
     }
-
-    if ( !rom_only )
-    {
-        pci_conf_write16(pdev->sbdf, PCI_COMMAND, cmd);
-        header->bars_mapped = map;
-    }
-    else
-        ASSERT_UNREACHABLE();
 }
 
 bool vpci_process_pending(struct vcpu *v)
@@ -547,16 +537,23 @@ static void cf_check cmd_write(
      * decoding one. Bits that are not allowed for DomU are already
      * handled above and by the rsvdp_mask.
      */
-    if ( header->bars_mapped != !!(cmd & PCI_COMMAND_MEMORY) )
+    if ( header->bars_mapped != !!(cmd & PCI_COMMAND_MEMORY) &&
+         modify_bars(pdev, cmd, false) )
         /*
          * Ignore the error. No memory has been added or removed from the p2m
          * (because the actual p2m changes are deferred in defer_map) and the
          * memory decoding bit has not been changed, so leave everything as-is,
          * hoping the guest will realize and try again.
          */
-        modify_bars(pdev, cmd, false);
-    else
-        pci_conf_write16(pdev->sbdf, reg, cmd);
+        return;
+
+    /*
+     * FIXME: for domUs we don't want the guest toggling the memory decoding
+     * bit.  It should be set in vpci_init_header() and guest attempts to
+     * modify it should only lead to guest p2m changes.
+     */
+    header->bars_mapped = cmd & PCI_COMMAND_MEMORY;
+    pci_conf_write16(pdev->sbdf, reg, cmd);
 }
 
 static uint32_t cf_check guest_cmd_read(
@@ -712,17 +709,11 @@ static void cf_check rom_write(
         rom->guest_addr = rom->addr;
     }
 
-    if ( !header->bars_mapped || rom->enabled == new_enabled )
-    {
-        /* Just update the ROM BAR field. */
-        header->rom_enabled = new_enabled;
-        pci_conf_write32(pdev->sbdf, reg, val);
-    }
     /*
      * Pass PCI_COMMAND_MEMORY or 0 to signal a map/unmap request, note that
      * this fabricated command is never going to be written to the register.
      */
-    else if ( modify_bars(pdev, new_enabled ? PCI_COMMAND_MEMORY : 0, true) )
+    if ( modify_bars(pdev, new_enabled ? PCI_COMMAND_MEMORY : 0, true) )
         /*
          * No memory has been added or removed from the p2m (because the actual
          * p2m changes are deferred in defer_map) and the ROM enable bit has
@@ -733,6 +724,8 @@ static void cf_check rom_write(
          */
         return;
 
+    header->rom_enabled = new_enabled;
+    pci_conf_write32(pdev->sbdf, reg, val);
     if ( !new_enabled )
     {
         rom->addr = val & PCI_ROM_ADDRESS_MASK;
@@ -1057,6 +1050,13 @@ int vpci_init_header(struct pci_dev *pdev)
             goto fail;
     }
 
+    if ( cmd & PCI_COMMAND_MEMORY )
+    {
+        /* Restore command register value. */
+        header->bars_mapped = true;
+        pci_conf_write16(pdev->sbdf, PCI_COMMAND, cmd);
+    }
+
     return (cmd & PCI_COMMAND_MEMORY) ? modify_bars(pdev, cmd, false) : 0;
 
  fail:
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 16:04:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 16:04:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081979.1441967 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umaR5-0001WM-9L; Thu, 14 Aug 2025 16:04:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081979.1441967; Thu, 14 Aug 2025 16:04:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umaR5-0001WB-5y; Thu, 14 Aug 2025 16:04:15 +0000
Received: by outflank-mailman (input) for mailman id 1081979;
 Thu, 14 Aug 2025 16:04:13 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6Upc=22=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1umaR3-0000md-Fi
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 16:04:13 +0000
Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com
 [2a00:1450:4864:20::435])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 51fd66da-7928-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 18:04:13 +0200 (CEST)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-3b9d41bfa35so907963f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 09:04:13 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3b916394937sm7421304f8f.6.2025.08.14.09.04.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Aug 2025 09:04:11 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 51fd66da-7928-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755187452; x=1755792252; 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=psLG+a7CXrYEhoUcdPoZMaJ5jEU0fJdv182ycPW3oJY=;
        b=mtyHyx0pGttgZb8AMfiPdem3cuDCzz6+nZcR7NTF2vx5nDvZPVEburYcal6DWmbfKp
         kVsV6y0kcwGBK/O7i/FxhkYU3MYm7/YVm+7bNtLPzPN5mLCplG4sWGiRChbTkIdoogGQ
         s+aCA16jJmJamLSuAFU7h47/eGv3GZhQJCJ4A=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755187452; x=1755792252;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=psLG+a7CXrYEhoUcdPoZMaJ5jEU0fJdv182ycPW3oJY=;
        b=nD0uwKJklUmFW8v6lShlcy8SROyXYySeQzj3aVE3jX1J5CsmCnTPY4Q+nNcXi1Gyad
         z9dE2d76Y+MUzF2wr91+9N0x+y9DjmLcQnvZs/KVg5kvn1ReyGMTxjIO/k37hibhmsS2
         iA+t7p/+dFMglxYWVreMTZUf0VX0qz9mE7B9uzI1qRq9ArNS1ZUl7iz+8kH6EdaaWOx4
         D78Wi9ugwnYXLEfl+u7lxydX9LI4dDwPy8yfMn94ndiW8yaJE/aOGXC7z2eopxEnYqew
         zcVOvWWiYcI2SI3JoJbygX3CT+Yu9ik7VRwR7josHbMlA2+4V/g9HGaLZybFAzjz4LU7
         g4fg==
X-Gm-Message-State: AOJu0YxMdlx7SM7mfnX2768r7nR8NmJCnHtreZz39V4Zd7t3g0GqyT+N
	b2ij7FW+aBUlhpyIKmf2RTbNFvyQz7kIyCE4AUoFB/Pc50BjoFOOJ2H9CaIFhiGHs7QCmXsnual
	3rDqX
X-Gm-Gg: ASbGncs8kTjDL+bC/FJjsTLbaLjgZq/5X6J7a8LzmmsQqORTslAQQN2DtL1e+YP4GoN
	PTh5o5fqlzx0z5Od0Ee7CMDupdQto3RIT95ThPwSC0rLkX8XIU9EDxx88ez+ruwcq+Fdrcmb4bB
	2srTzGwfbqU/57SuzWxoay6lVlvnc+ITeBBc6fk9QCRZmGYaCS12a8vWsRqdwCQVSltPbBwFSkk
	c+iQIubSFkjC4ti3xh9oyGgyZEd7M/ApoBzYzOJLCsnSEows2ycIDnzenHZXvbB8bunr9aEEUbO
	hkBV11QuqGC8nuHucE3swfccYmcQsUcK4tpmyFtds2w15SGimFUlBCv3Q8JVQYlhSiBKyjTHiyO
	qD5F229q8DrHk7VnSsqXoWtnIAaUt5S1J6YZ7RgxOBrCoM/6Q9lOd5OxqT4IfiFWv2Q==
X-Google-Smtp-Source: AGHT+IFVNy9qIZPfceRvaHctViLQahdoKWIo5FMIKzNqIfiwufvCPdS8zCJ/TffyRWtxQ+EoGQvZdQ==
X-Received: by 2002:a5d:5f4a:0:b0:3b8:d493:31ed with SMTP id ffacd0b85a97d-3b9edf4454emr3440941f8f.47.1755187452069;
        Thu, 14 Aug 2025 09:04:12 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: stewart.hildebrand@amd.com,
	Jiqian.Chen@amd.com,
	jbeulich@suse.com,
	Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH 5/5] xen/vpci: only check BAR validity once
Date: Thu, 14 Aug 2025 18:03:58 +0200
Message-ID: <20250814160358.95543-6-roger.pau@citrix.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250814160358.95543-1-roger.pau@citrix.com>
References: <20250814160358.95543-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Avoid multiple calls to pci_check_bar() for the same memory decoding
related operation, as each call can possibly print a warning message avoid
a BAR being in an invalid position.

Store whether the BAR is validly positioned in modify_bars(), and used that
cached value for the whole operation.  This allows to get rid of
modify_decoding(), as the setting of whether the BAR is enabled or not can
be easily done in vpci_process_pending() itself, without the need for an
external helper.

Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
Fixes: 4acab25a9300 ('x86/vpci: fix handling of BAR overlaps with non-hole regions')
Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/drivers/vpci/header.c | 69 ++++++++++-----------------------------
 xen/include/xen/vpci.h    |  5 +++
 2 files changed, 23 insertions(+), 51 deletions(-)

diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index 255c6d54b406..2071bed81676 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -121,46 +121,6 @@ static int cf_check map_range(
     return rc;
 }
 
-/*
- * The rom_only parameter is used to signal the map/unmap helpers that the ROM
- * BAR's enable bit has changed with the memory decoding bit already enabled.
- * If rom_only is not set then it's the memory decoding bit that changed.
- */
-static void modify_decoding(const struct pci_dev *pdev, uint16_t cmd,
-                            bool rom_only)
-{
-    struct vpci_header *header = &pdev->vpci->header;
-    bool map = cmd & PCI_COMMAND_MEMORY;
-    unsigned int i;
-
-    for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
-    {
-        struct vpci_bar *bar = &header->bars[i];
-
-        if ( !MAPPABLE_BAR(bar) )
-            continue;
-
-        if ( rom_only && bar->type == VPCI_BAR_ROM )
-        {
-            unsigned int rom_pos = (i == PCI_HEADER_NORMAL_NR_BARS)
-                                   ? PCI_ROM_ADDRESS : PCI_ROM_ADDRESS1;
-            uint32_t val = bar->addr |
-                           (map ? PCI_ROM_ADDRESS_ENABLE : 0);
-
-            if ( pci_check_bar(pdev, _mfn(PFN_DOWN(bar->addr)),
-                               _mfn(PFN_DOWN(bar->addr + bar->size - 1))) )
-                bar->enabled = map;
-            return;
-        }
-
-        if ( !rom_only &&
-             (bar->type != VPCI_BAR_ROM || header->rom_enabled) &&
-             pci_check_bar(pdev, _mfn(PFN_DOWN(bar->addr)),
-                           _mfn(PFN_DOWN(bar->addr + bar->size - 1))) )
-            bar->enabled = map;
-    }
-}
-
 bool vpci_process_pending(struct vcpu *v)
 {
     const struct pci_dev *pdev = v->vpci.pdev;
@@ -190,8 +150,10 @@ bool vpci_process_pending(struct vcpu *v)
         };
         int rc;
 
+        ASSERT(bar->valid || rangeset_is_empty(bar->mem));
+
         if ( rangeset_is_empty(bar->mem) )
-            continue;
+            goto next;
 
         rc = rangeset_consume_ranges(bar->mem, map_range, &data);
 
@@ -217,13 +179,13 @@ bool vpci_process_pending(struct vcpu *v)
          * rangeset_consume_ranges() itself doesn't generate any errors.
          */
         rangeset_purge(bar->mem);
+
+ next:
+        if ( bar->valid )
+            bar->enabled = v->vpci.cmd & PCI_COMMAND_MEMORY;
     }
     v->vpci.pdev = NULL;
 
-    spin_lock(&pdev->vpci->lock);
-    modify_decoding(pdev, v->vpci.cmd, v->vpci.rom_only);
-    spin_unlock(&pdev->vpci->lock);
-
     read_unlock(&v->domain->pci_lock);
 
     return false;
@@ -243,10 +205,8 @@ static int __init apply_map(struct domain *d, const struct pci_dev *pdev,
         struct vpci_bar *bar = &header->bars[i];
         struct map_data data = { .d = d, .map = true, .bar = bar };
 
-        if ( rangeset_is_empty(bar->mem) )
-            continue;
-
-        while ( (rc = rangeset_consume_ranges(bar->mem, map_range,
+        while ( bar->mem &&
+                (rc = rangeset_consume_ranges(bar->mem, map_range,
                                               &data)) == -ERESTART )
         {
             /*
@@ -258,9 +218,10 @@ static int __init apply_map(struct domain *d, const struct pci_dev *pdev,
             process_pending_softirqs();
             write_lock(&d->pci_lock);
         }
+
+        if ( bar->valid )
+            bar->enabled = true;
     }
-    if ( !rc )
-        modify_decoding(pdev, cmd, false);
 
     return rc;
 }
@@ -326,6 +287,9 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
          */
         rangeset_purge(bar->mem);
 
+        /* Reset whether the BAR is valid, will be checked below. */
+        bar->valid = false;
+
         if ( !MAPPABLE_BAR(bar) ||
              (rom_only ? bar->type != VPCI_BAR_ROM
                        : (bar->type == VPCI_BAR_ROM && !header->rom_enabled)) ||
@@ -341,6 +305,8 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
             continue;
         }
 
+        bar->valid = true;
+
         /*
          * Make sure that the guest set address has the same page offset
          * as the physical address on the host or otherwise things won't work as
@@ -539,6 +505,7 @@ static void cf_check cmd_write(
     if ( (cmd & PCI_COMMAND_MEMORY) && vpci_make_msix_hole(pdev) )
         return;
 #endif
+
     /*
      * FIXME: for domUs we don't want the guest toggling the memory decoding
      * bit.  It should be set in vpci_init_header() and guest attempts to
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index 17cfecb0aabf..6bdbbb842f58 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -128,6 +128,11 @@ struct vpci {
             bool prefetchable : 1;
             /* Store whether the BAR is mapped into guest p2m. */
             bool enabled      : 1;
+            /*
+             * Is the BAR position valid?  Used to store intermediate state
+             * before BAR modifications are applied to the p2m.
+             */
+            bool valid        : 1;
         } bars[PCI_HEADER_NORMAL_NR_BARS + 1];
         /* At most 6 BARS + 1 expansion ROM BAR. */
 
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 16:04:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 16:04:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081980.1441972 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umaR5-0001ZR-LL; Thu, 14 Aug 2025 16:04:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081980.1441972; Thu, 14 Aug 2025 16:04:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umaR5-0001Y1-ET; Thu, 14 Aug 2025 16:04:15 +0000
Received: by outflank-mailman (input) for mailman id 1081980;
 Thu, 14 Aug 2025 16:04:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6Upc=22=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1umaR3-0001FY-LH
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 16:04:13 +0000
Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com
 [2a00:1450:4864:20::329])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 515d4357-7928-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 18:04:12 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-45a1b001f55so5404695e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 09:04:12 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-45a1c6fa00bsm26313545e9.19.2025.08.14.09.04.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Aug 2025 09:04:10 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 515d4357-7928-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755187451; x=1755792251; 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=xBj5NRvP8XG/dMSSpUAh9hQU/qoLTjxS6PC2X80rtxs=;
        b=bmBSX/sE+9SEZvaH7CmeS9iuJvunCvQd0SPNUpgQ1Qx6n14vWpeJK2B0PAip3tARfQ
         8DharXDrpBbQ2wtQzFORnQ2l4Uhd0qKpkIcpcbzFX0K3nJrnaQYhy8yY/tBdVsFmABcK
         9Tay1OKiSVdPOsSlnklfA7cVMB8yLb8iDQzEM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755187451; x=1755792251;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=xBj5NRvP8XG/dMSSpUAh9hQU/qoLTjxS6PC2X80rtxs=;
        b=WT3pwIHfXKvWgBOSvZit9CVu6NsmFcJew+k06/PFfnM1tDkZ/nnIEy1ZlrQQer8YRF
         RME/k79zNbQKdf2yJtBJYMj0vpvTIyj5N7jcWfXnLDbyptD/zU4Fc4PcAugD5JSCkOSn
         13gCdiX6UouIyntwmBZ2Sj/H7CBspxeedVRsDq9SHHdYerTFUixx62+c3OHWXERbg0Bz
         Q5mbmNLVKQPgQe2HM13pVIIq7NG72XJB5vepLrNgTBTw9KuYwUpDOq4yDr0+qfjdRDyL
         +TQbT7KwwbnlHAJavASlV3V24rCceEzvgSlh3dGAThtETeOm4sl0bupnvtKGTgfo2mBE
         CDIw==
X-Gm-Message-State: AOJu0YwY74H7VPAYpL5RCF0ajc0tnR0nGmnRoZSV04aNwEEiqP3ih0R4
	WcIiDf06eeEeess0KBMtMoJGxXW3uUQjbhHRYXUmftjLdoeZQQqBOae/c0+f/D3cfR30rtROg02
	nLtOc
X-Gm-Gg: ASbGncvaxzrRDuhnwli3JR9uWQTMxmzVIuavdP6RlPFLkAkXE13d35yL6n0s31ExTGS
	Ul+CjKSMXPu+8ORUMeBgX4lx+ydAlFE2OgcafVlFnf8zJ45M0mLVtAvmHhXuzPtD+MBzpuVn47Q
	o1pA3+Lr5tSvLikMC8LC3+T1gy1WQz1+rU9o9sK0MIa72Af7FNDmIPOHtYtO9Z/Nyr8gANN466n
	76d2PVKoL/5hgx8d8sEMTPVofXQwR8RJ2FJln4uDHmoty6XfLWhU8J2a1xSasDNOh51Ms1CYGcq
	bS+AFyNt7OSxktgUPDqz8a2uzWBArGGtOplxGlSgj/rRTsAqFqubAOzyA4wYovscLfpLNs9Swrw
	Oh9AxazHWkqCNagnffrK84pKOSQkNxNwMcWy6mcnj0P3fYNotfRe3IruLnLbuebzlTA==
X-Google-Smtp-Source: AGHT+IH2hvKY7uV7i/yxnMKmS32Xi9zhMKkCRqCwn5ROjY05Dm67HZQHtqs4EAJOZ4JIHnvBuiwEgA==
X-Received: by 2002:a05:600c:3b1a:b0:458:c059:7db1 with SMTP id 5b1f17b1804b1-45a1b668ac4mr39262205e9.30.1755187450635;
        Thu, 14 Aug 2025 09:04:10 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: stewart.hildebrand@amd.com,
	Jiqian.Chen@amd.com,
	jbeulich@suse.com,
	Roger Pau Monne <roger.pau@citrix.com>
Subject: [PATCH 4/5] vpci/msix: move MSI-X hole punching as a result of memory decoding enable
Date: Thu, 14 Aug 2025 18:03:57 +0200
Message-ID: <20250814160358.95543-5-roger.pau@citrix.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250814160358.95543-1-roger.pau@citrix.com>
References: <20250814160358.95543-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Deferring the p2m unpopulate of the MSI-X table region to after the BAR are
mapped in the p2m is not needed.  The aim of vpci_make_msix_hole() is to
cope with the BAR containing the MSI-X table being positioned over a
reserved e820 region, by making sure the MSI-X table region is
unpopulated on the p2m. Note that reserved e820 regions are identity mapped
in the hardware domain p2m by default.

Doing it before or after the BAR p2m changes are done is irrelevant, hence
do it ahead of the p2m changes, as that's simpler.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/drivers/vpci/header.c | 18 +++++-------------
 1 file changed, 5 insertions(+), 13 deletions(-)

diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index 1a501a0ba47e..255c6d54b406 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -133,19 +133,6 @@ static void modify_decoding(const struct pci_dev *pdev, uint16_t cmd,
     bool map = cmd & PCI_COMMAND_MEMORY;
     unsigned int i;
 
-    /*
-     * Make sure there are no mappings in the MSIX MMIO areas, so that accesses
-     * can be trapped (and emulated) by Xen when the memory decoding bit is
-     * enabled.
-     *
-     * FIXME: punching holes after the p2m has been set up might be racy for
-     * DomU usage, needs to be revisited.
-     */
-#ifdef CONFIG_HAS_PCI_MSI
-    if ( map && !rom_only && vpci_make_msix_hole(pdev) )
-        return;
-#endif
-
     for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
     {
         struct vpci_bar *bar = &header->bars[i];
@@ -547,6 +534,11 @@ static void cf_check cmd_write(
          */
         return;
 
+#ifdef CONFIG_HAS_PCI_MSI
+    /* Unpopulate MSI-X table region, so accesses trap into Xen. */
+    if ( (cmd & PCI_COMMAND_MEMORY) && vpci_make_msix_hole(pdev) )
+        return;
+#endif
     /*
      * FIXME: for domUs we don't want the guest toggling the memory decoding
      * bit.  It should be set in vpci_init_header() and guest attempts to
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 16:04:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 16:04:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1081984.1441987 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umaRD-0002Dm-3m; Thu, 14 Aug 2025 16:04:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1081984.1441987; Thu, 14 Aug 2025 16:04:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umaRC-0002DZ-Uy; Thu, 14 Aug 2025 16:04:22 +0000
Received: by outflank-mailman (input) for mailman id 1081984;
 Thu, 14 Aug 2025 16:04:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6Upc=22=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1umaRC-0000md-BL
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 16:04:22 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5741821a-7928-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 18:04:22 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-45a1b0990b2so7380825e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 09:04:22 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-45a1c6bc93fsm26178975e9.2.2025.08.14.09.04.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Aug 2025 09:04: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>
X-Inumbo-ID: 5741821a-7928-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755187461; x=1755792261; 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=q/aE4/XzPV59CJPrm3Gg+uv4SbRmBDmotMngXyRqJUQ=;
        b=E7+134YxY9FOURXY/MR9yTGDiYdJrEEt/Nqnx04HlTmbE6U+8uXXBS52kvgXWuJbGx
         Hx+55Y7FYtUFq9j4Sf4xoM8XM8HbrwmhJOkxjtcncVY5HU96W603zaBQW93nhWuR4+ny
         pBwNVKdlGIWuqLEs5nYGR6YOk7dCpTQZSFfZE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755187461; x=1755792261;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=q/aE4/XzPV59CJPrm3Gg+uv4SbRmBDmotMngXyRqJUQ=;
        b=CG5FNWvYBpgicw6htT2c1PeFBTlBUF2KS8ch9UzppJq/s7fJ63dfflfebEeIk7aATh
         Bipq+LTFhYEaOmz7GDXWol/gTqC//ccfo019rRTzsoao8B120VZMWhMX/rHF1cHG3HPH
         3hBTpqPjgwGGe5aTeSUtDjLqcNvyeFXv3hkSD7dS+YLRgUa3dtFhejnT/AIaDRL/nWFA
         chANtyPSTVO6hY24zrBVk2rjieEJVCJc2Es02xSF3fZjJxfyRHaAggMIyhn3KXkB1o9b
         6Ev9jCI8Cj5qazuZi6qG3LI6xRVp47vED/6HobED1OpzyBpKFaPgrDijgnjaAILoIhQn
         tb0w==
X-Gm-Message-State: AOJu0YzgMxfOAY06hvWnFvR48skBKCKEpnp9KISkdEOX+mKPzHILsB2x
	7702WbJpkgWWd87UMlPfD8L+mMRdflmgioLHsQYAGwUM/l+2HUiYakdpFeZ4jNym8cWdiU6oDWl
	OEsrU
X-Gm-Gg: ASbGncsu9e/WRixiw3b0gwqMOwLDE/Jt24HYrtyvcpJdCqPLVv9ebOPaY15OYXb/rSf
	Bc+lpQGgZ20ovmBA8J6Im5wQ8BwS0j+G9eEGlIG+iNl0j7JjFJ4fUz72EeWCAyVCrSYzVTR4lhA
	j7V/IFXTvHE+QLvNhe67YXWw5ys5lRpJ06APtnKpIfvI4GQb3ZG5LF0O+TIuOsM9qMpUoZ5snAY
	83qCh4SlypR/pRwyeJW/5+Xno0F5pJ9HaEg4CkhJcDj1ka3RkbwDr0BjkOi5N6ZE/gN1+q8s3VM
	cyJC+2yazDKQ2lHbZhd4S1CkTUnwS8CtC5p6v3BflNggPyEAWxAksAmB80tjd8ZclC/y1QSVR8d
	PtDIClP4FDfQGTNAfDPKMyxwOYLBXx+aRUOFbRjASmuXKtKes2wdV2JdAJcOwZTEKWw==
X-Google-Smtp-Source: AGHT+IHmbaGVo5yru/zbIYz4g1CR9qPgenXRGr/YGkkrLd01NhwlOqiZstHfexkqrTx+XqeNe3W9Pg==
X-Received: by 2002:a05:600c:b90:b0:458:bda4:43df with SMTP id 5b1f17b1804b1-45a1b646db2mr37167305e9.17.1755187445701;
        Thu, 14 Aug 2025 09:04:05 -0700 (PDT)
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: stewart.hildebrand@amd.com,
	Jiqian.Chen@amd.com,
	jbeulich@suse.com,
	Roger Pau Monne <roger.pau@citrix.com>
Subject: [PATCH 1/5] xen/vpci: purge BAR rangeset contents before use
Date: Thu, 14 Aug 2025 18:03:54 +0200
Message-ID: <20250814160358.95543-2-roger.pau@citrix.com>
X-Mailer: git-send-email 2.49.0
In-Reply-To: <20250814160358.95543-1-roger.pau@citrix.com>
References: <20250814160358.95543-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

It's possible for the BAR rangeset to contain stale data when used in
modify_bars() if previous calls to modify_bars() resulted in errors.

Fix by always purging the rangeset before usage, thus getting rid of any
previous stale data.  Remove the ASSERT that checked whether the rangeset
was empty, it was incorrect.

Fixes: 52ebde3cfae2 ('vpci/header: program p2m with guest BAR view')
Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/drivers/vpci/header.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index 469f4977441a..b9756b364300 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -338,6 +338,12 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
         if ( !bar->mem )
             continue;
 
+        /*
+         * Empty before use, previous failures might have left stale data in
+         * the rangeset.
+         */
+        rangeset_purge(bar->mem);
+
         if ( !MAPPABLE_BAR(bar) ||
              (rom_only ? bar->type != VPCI_BAR_ROM
                        : (bar->type == VPCI_BAR_ROM && !header->rom_enabled)) ||
@@ -353,8 +359,6 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
             continue;
         }
 
-        ASSERT(rangeset_is_empty(bar->mem));
-
         /*
          * Make sure that the guest set address has the same page offset
          * as the physical address on the host or otherwise things won't work as
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 16:26:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 16:26:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082063.1441997 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umamR-0006dT-Od; Thu, 14 Aug 2025 16:26:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082063.1441997; Thu, 14 Aug 2025 16:26:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umamR-0006dM-Ly; Thu, 14 Aug 2025 16:26:19 +0000
Received: by outflank-mailman (input) for mailman id 1082063;
 Thu, 14 Aug 2025 16:26:18 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=yIeE=22=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1umamQ-0006dB-05
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 16:26:18 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5ffeb630-792b-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 18:26:05 +0200 (CEST)
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com (2603:10a6:102:ea::23)
 by AS8PR03MB7876.eurprd03.prod.outlook.com (2603:10a6:20b:423::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.17; Thu, 14 Aug
 2025 16:26:02 +0000
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f]) by PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f%6]) with mapi id 15.20.9009.018; Thu, 14 Aug 2025
 16:26: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>
X-Inumbo-ID: 5ffeb630-792b-11f0-a328-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=S3VcG2FLnDBsoqRH3OKIZtNQv3TZeVHln6FeISTNEMNumTT67Mw/3GQyFUulcfCi6lPJJpe4OS2dWmDl2BnX6g8IaBwRR0E5NsWyMO/WBxP12FlAJ3aI17/ntUKw4bxAoyWU0k2P7U3K5DXS3dHxn0l3yTwDa+65Z4pwCWBn8qmBm5ht9+GUHuUq2yRLjy32kfgsd9qMpuhs2gQ1nOiIoSgCzplBqWA9WKgXYMcYno7SJuGgWPGmHTYB0X4jGbnx09GbZRgfs5BszVbwLDz2LzTduWa3i+W8+Lme1cxZO3UDdY8XEktSReBYScQ2KbuFakNdkjsX63EARpQ0H+8CQA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=F478Q9e3gaDQOqrkaOFUq/H9ZEdGMrm4ZTXBXrpOjv4=;
 b=MK0u9Dy5/7uij+VQbbdLpzEyIVl1uUbRBXp4u8JyknG0AVkm9dBnINJZxgryl0Zngy4r4tKU0chBjBOzD+ej0mzZXKo59T2Kv72m+eXqow4cjS9XE9NhOcH+aPIBymlIqNbTyzx0m4r4s+eKwbJcynanfmgQfaeYd2zPITHDIDp5JRc06emcVqf72MgUJajRCLSnS2pCoAUIi7Xtq5HnWuBOqbNHcVZICVAw0KRORzhJQIRnaRxLQAHRlIqyQ0FpFN1kuSmHkORteNVpnnY8Le+FWUfBBdLy4AmXGmXsRGaOI1kzevREiCIKom8yZyiq8KH9j1++MhV5XL50NHy2zg==
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=F478Q9e3gaDQOqrkaOFUq/H9ZEdGMrm4ZTXBXrpOjv4=;
 b=M15ZsaTat3rsIVEW4xVBq/Ec2Md0nP/++1icZVHsnZKGXvc44WLUbuLfiKkSRjI+LpJJ0HsBw5qnQp5vcEkDNoEWN5FlfiTv/BTY852W84jLI09xr7pnteI75dXgOR1nlSdBfVJPBgnezDEtoJvMmHj/UeBzMLBiu7WQYTEx6dhXAHr+qilbwvTOjmuF80H8ApVW2uvHLXJ/2f3bjThUQingZvXD7tuLX/XNRd752ohKoCSXbzVtKEUGx5zw38K+bJrCuWB8GdxqhfcJ42n5Hg+CQeTITrXPhQ59pjR/0PqqePligdMZSXnrybKWYDNV1ngIRc6mCr/PsSCrOuf5pQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <a5943713-85fa-48ad-86fe-5698604ed8c9@epam.com>
Date: Thu, 14 Aug 2025 18:26:00 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 00/20] Add SMMUv3 Stage 1 Support for XEN guests
To: Julien Grall <julien@xen.org>, Julien Grall <julien.grall.oss@gmail.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 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>, Anthony PERARD <anthony.perard@vates.tech>,
 Nick Rosbrook <enr0n@ubuntu.com>, George Dunlap <gwd@xenproject.org>,
 Juergen Gross <jgross@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
References: <cover.1754580687.git.milan_djokic@epam.com>
 <CAJ=z9a1eM6M+Gagond9TiFtF7c7EEQKOKHANcvDWDhW_3JzqOA@mail.gmail.com>
 <12ba4388-ee23-4e17-910f-9702271865ad@epam.com>
 <b1f79b84-d0c4-4807-87a7-1cf94e58ecee@xen.org>
Content-Language: en-US
From: Milan Djokic <milan_djokic@epam.com>
In-Reply-To: <b1f79b84-d0c4-4807-87a7-1cf94e58ecee@xen.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: VI1PR0102CA0013.eurprd01.prod.exchangelabs.com
 (2603:10a6:802::26) To PA4PR03MB7136.eurprd03.prod.outlook.com
 (2603:10a6:102:ea::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: PA4PR03MB7136:EE_|AS8PR03MB7876:EE_
X-MS-Office365-Filtering-Correlation-Id: 11777d18-8f49-4ef6-9697-08dddb4f42a0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|366016|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Rm43Zms5aEoyMFpRRDVwMXBCRldodUxHbjVmcFRrMHZ2YjluSS80K2VLWk0r?=
 =?utf-8?B?NnRYSk82YWc0SmppSTVBTVk1Y2xGNkxVUDhTL29nTm1la3lIV1VuKzRTY0Q2?=
 =?utf-8?B?dUt5U1dCQmpVZGlaMTc5cG5PVE9PSVFadEplR1ZCWjN4aXRGdXlQSGhENnpk?=
 =?utf-8?B?SFMrclRVSnBibzVkSGRwbENxUmNrUWsxNmlmZlRvdEZ1a2xpc2pYdGFVSWFm?=
 =?utf-8?B?MmJra04yb3VGam8xajBlT3V2bUFaclFpcGt0MGJxNkVYVmlnK0ttRlA1QXIy?=
 =?utf-8?B?Uy9lSzQ4SG01S3BxdEJXVnNRY0RlUTA1TkhHZDB5dGZGOE9xa1d3ZUsyQ2lz?=
 =?utf-8?B?ejNDdUk4QkpNVGxRbkRYVE1rUU81UjZ5OFZZRldVNTNzazd2d2ZDM081aHQ0?=
 =?utf-8?B?bVFaMUdCZ29KcGU3VmVoMjh2RzNpNHQyelZHZDBRVngrTFBUaEZySmpSUUxB?=
 =?utf-8?B?UWZBMm16YkJqNTNDaVN5Q0NEZmtEZis2dFgrMWUzUlNneGtzcDAwNEN2QTRj?=
 =?utf-8?B?eklBZjdtQTBNdlArVmpndlpmeEd1ZEJNazRGZ3FpMkJZc2daRVlTdSswT2Mr?=
 =?utf-8?B?c08zSTk5bE5VeEUzOWNuOFdnanl6N2R2TFMxMkdYZGNyT1RjRUp3SmNlajNr?=
 =?utf-8?B?ZVBkYXFCZWkrdW5qQmdUUk43TXFESzZtRUcxamE3WFpQTDVJeXZMeWN4V05v?=
 =?utf-8?B?aWxQNlJiVU5GMVpDTStsTTc2R2d2cVA2dnp2Q3pIQWFkWTVJSzdKSlNaMHY3?=
 =?utf-8?B?cXJ5QmdaVUdiRERTdjZGWmkyVUlyRTVzYnZ5MnBBTG9aL3NSS0NqRFFpeTd0?=
 =?utf-8?B?SkU4UWVKMEVXYlJnV0dhUWpvVldGa1ZOUmJDNTlIc0lzUWNianJJbEF6K3c2?=
 =?utf-8?B?M2RFczVKRUo2SXNrZFdCYVVGcjVxdjF1VzV6Y2ZvblYrZDN0Ri9FY2lSTlFI?=
 =?utf-8?B?b1UvQ3c5YTNrazlGSGNPYUZyMXFrdjhTUU5QNFhPalp1SVdTY1JpcVFmTDZE?=
 =?utf-8?B?YnE0K3NxMjd4bVRnbzhDTVZHeU13SDc0WDZ3azREeHI4QTFpT2VPbktvS3pY?=
 =?utf-8?B?NXBzc0lockFwaWVrNERoNmVOc2RPZzBra05ISlcrWUNudjBWNUZhWnlUejVQ?=
 =?utf-8?B?MHJNS3k1WU9RdmthKzZzNlBIQzhWRE1Udk1HRW1uNTZDQnVmWjVRVUxjdVpL?=
 =?utf-8?B?VG9oeGpwaUd1SHRjS2RHa2tZSVE5NlY0cFRidHN1YjViYlpLMjhCbjArRjJt?=
 =?utf-8?B?dHlLNm9LdnZNWUhjc1VxMjZOOGMxdWoxbXdFZ1habFd1b29HcTJzRHFWVnJy?=
 =?utf-8?B?NnNHVEdYVWM3dTlSVk9DaTRrTVBzTnVzbnpGWWJVdzJDZmxPczYvdE9MYlZv?=
 =?utf-8?B?T1NuckN0d21sMWtsUW1oaVRYdnVSNHJ0UC9vckJ0eTVPcThyQVNPMEZ2VEVV?=
 =?utf-8?B?VFBpb2N3RlB6bHN3bnZCc1RBbHFrUGM0OXlKb1dveEtHd1BLR2tYdlQyVHcy?=
 =?utf-8?B?ZUI5QldZbVlkZlJHZWVnbnlaUmVyWFZyUkhEUjg1VEhVelByaDdWZnNzMXVT?=
 =?utf-8?B?OElacngyZVV2OGpYQllnUTh1S3ZzUkVGMnJHRjVoNzR6OFMxMW9mMU0vN0Ir?=
 =?utf-8?B?bTQzUm9QRE5KYVhaQlQwa3Q1UDRpMjNRZEs1N1IyeHFud095blJHUURyTWVW?=
 =?utf-8?B?bXg2MS9GR0h5Zk4rNTRlTSswdDlVTkZQOCtnSVNRSE12L3NQc0swcW5OTDgz?=
 =?utf-8?B?c3liTnRUOGo4UzZRb2d3akoydnkzbU53L2p6NFY3WjJVSFBuRTc5L3h1S3Va?=
 =?utf-8?B?aDZCQ3dvTzQzQU91VHFIc29zMDYyWHBVTHRVRHhUc3BhV1Rqa2trNkIyMGxI?=
 =?utf-8?B?bis5NWo5cXl1bVRDdkhoWThCNHFrUDIwUUVNczVwV2dYdnJWamRSUk1OeWEw?=
 =?utf-8?Q?UouL+qVVjOM=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR03MB7136.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?S0Z6T2VDQmszak1hVHhuaHdXaUYrTnVWVXBndUlnTG0zSzJCMkdCeFM4Rk5j?=
 =?utf-8?B?aE1kRDhhMHhZUmQzbi9LUHBOM3k4SUcwZDdhMGlTYnZOcUxlK21mUk5zUTIz?=
 =?utf-8?B?YitWZHZNT0dzeGJTNllBQ3NaRjRaT2cvckhudjUwcmlMc2RlZHA3d0gyd0xl?=
 =?utf-8?B?L2pIWDgrejlvaWlVS1Q0YXZxbmU0TUJHN3phWW9nYWFwUFkzZTlMZzU0dHVv?=
 =?utf-8?B?Q3Evc0o3dUovS002Vng0ZEpXcElGdG52Mi8rRzVWNXhNenJ2QVIxOW5GZ0sr?=
 =?utf-8?B?ell4TFlMNkZBWTMyUFhOSGRKSzN4eTBJa2ZkUFFoeUN4WlZoRmdOOUl3dEVN?=
 =?utf-8?B?MDhDN1VockUxeGtGRVh1dWZMaW81a1o3RjVpa3VFNFFhcXdxNlh3a2x0Ni9K?=
 =?utf-8?B?TGgrZGFtaXVWSzR2aFFnRGJLcHVmS09STmNJYmhVcGhwVWt1c0o3L2d3MXNK?=
 =?utf-8?B?Mk5UeFNJZ1pjNEUxUG53cEtha3dHMSs2QWRiVGlZS29oZDdnS0o3UFR5Qmcy?=
 =?utf-8?B?azBLTGxya1pMRyt5OXEyNzRWbG4ycFlmUlNZemdiRU9QUHhuVHZBYTJyclJL?=
 =?utf-8?B?ejNWRHlkSXYvTmpBTFFSaUhsMlQ2UE5xK3VJTWkyYjEzMnlzQVUzUkZFTk4r?=
 =?utf-8?B?dWNZTnpnMGVicFFVdnFjeWZMS1FOSEZXRmV3QWZOUVlxNGtxa3RUVnNCL2Ju?=
 =?utf-8?B?ZndUVWFhbEFRUUVYblhLZ05aK3Vuazh2dHFHeEJERjZPRTBmbDZxQVJnbkZy?=
 =?utf-8?B?MXZLWnZLU2ovdTFFMS9OVG5KTnQ5TkZ6UFgramNGblF5ckNXZHJzaXFrNVg2?=
 =?utf-8?B?ek1RVjhtRkVmYndFak5xdVgvcFFMcDVsUEhJOUloTHJpeVJxSHp5U004dzBv?=
 =?utf-8?B?UVowQ2VaRXZhdXprTmhLVnJ6R3p0Q2l5ZE9vL21tTFVaSmNJRURNQnQ0VjR5?=
 =?utf-8?B?Qnp0bHd5UDV2YS84c0NtZVJ2Rk9EeW11UWVLR1RoV2k4VEJkRUVvcWJDYTdD?=
 =?utf-8?B?SkY0UzZJV1FZY20rNTlDZ2psVTIvMXVLWGFFWkhDUk1ZTW03elRQMnhIaVk3?=
 =?utf-8?B?MFE3c2s1NkI4N2lRakNrL2tMemU0Z2ZDSWlKRHpVUi9OeWpEYVR4NG5yVllk?=
 =?utf-8?B?bVhYdzhQbHdrUzk0aTVHbDR2cXdHd21oZ1JGcTNZcE9sQWQ3ZFdmZTRJZmdq?=
 =?utf-8?B?dkN6Zk9JNWhYUlpkSVpEUVNIUTJydFZndXg3TzhDV3IvVWpSalR5bmlydFpJ?=
 =?utf-8?B?MENmSjhSRGxPeEZ6TG5ydWR3Rzd6K1Z2NXM1d2dEYlZTNFp3UVhsZmYzODlq?=
 =?utf-8?B?ZHk0ZDRYQU5qZS9lZU9DOWJGVGNBRk5hd0pXZThoK3lydDF4cURMQW5Uc042?=
 =?utf-8?B?ZHVITVVWRU1wVkdnTENwNGdGUTd3K0drSFdYRlY2STJLRXJkeHRleWVoeWtD?=
 =?utf-8?B?QWFDTHlwL1BoQ2M5TjRmTHBlajliZ0JHbUpOTUh4Z2N5dC9EUTFibTU0RFFy?=
 =?utf-8?B?Y21sMitqc0o3UExNQmxQZE9PVjkraFo3TlBTcDY5dVU1SWxQdW1CTytMMnRw?=
 =?utf-8?B?V21lQmNnK3YzN1BrUTVub1c2d0VDWW1BWkN1ZXlDTW85cDVMdEdmcG00dWMx?=
 =?utf-8?B?cDRTQm16UWJBdEhNQjVTUnlkY2dScExBSnFvTDBNbExMZnFFdGN4Qm5CZDJq?=
 =?utf-8?B?MW5HU1pjTVF1Q2ZWWmNjaDM0TVFVYVl6ejVodVRLaUdTbWlOZWVKUEYvWXNU?=
 =?utf-8?B?K2s1TXJ1OWg1YUpob3dEMWZmQ1lPMzdnbVg2VUVlL1ZEdU84TXM4UHN5a05y?=
 =?utf-8?B?Z3ZOOUpXYjU2b2t1a0t1UlJBaGNPSmlIelV6WXFpTXVQUEJVQmlCTlB3VUlX?=
 =?utf-8?B?MFdMWFhOT3BqRzZjY2ZVRmlDZXNZWjNjaHRUWFRLck5Pd0M2NGdISWx2OWhm?=
 =?utf-8?B?NkdOY1hmelpXaU4yU0tENzVLeXU2bE9zYjZ1clo1b2t6SWo3cS9JU000a1Nz?=
 =?utf-8?B?VHJWUGJqdjRxUUpJSW1XZHR4TTlVcXBsaERTV3ArbzlPSitNWno2SmRXWkhT?=
 =?utf-8?B?OGJsVnhlTENKa3hmWk5hVG1BcDNvVU8zTld3RDg4Nml0VU1NWUovMGtZZmRt?=
 =?utf-8?Q?1vkSO35VcCQeZlqig2Z7bPVio?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 11777d18-8f49-4ef6-9697-08dddb4f42a0
X-MS-Exchange-CrossTenant-AuthSource: PA4PR03MB7136.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Aug 2025 16:26:02.4683
 (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: p/HpHG36y7wtpA4jlFshJ9r8Mp0/VSXAxbHeitTuW9LqEa54+dqjPLEe4lP8kGAsZkZWLqnlGv3Uicep5Nn+2w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7876

Hello Julien,

On 8/13/25 14:11, Julien Grall wrote:
> On 13/08/2025 11:04, Milan Djokic wrote:
>> Hello Julien,
> 
> Hi Milan,
> 
>>
>> We have prepared a design document and it will be part of the updated
>> patch series (added in docs/design). I'll also extend cover letter with
>> details on implementation structure to make review easier.
> 
> I would suggest to just iterate on the design document for now.
> 
>> Following is the design document content which will be provided in
>> updated patch series:
>>
>> Design Proposal: Add SMMUv3 Stage-1 Support for XEN Guests
>> ==========================================================
>>
>> Author: Milan Djokic <milan_djokic@epam.com>
>> Date:Â Â  2025-08-07
>> Status: Draft
>>
>> Introduction
>> ------------
>>
>> The SMMUv3 supports two stages of translation. Each stage of translation
>> can be independently enabled. An incoming address is logically
>> translated from VA to IPA in stage 1, then the IPA is input to stage 2
>> which translates the IPA to the output PA. Stage 1 translation support
>> is required to provide isolation between different devices within the OS.
>>
>> Xen already supports Stage 2 translation but there is no support for
>> Stage 1 translation. This design proposal outlines the introduction of
>> Stage-1 SMMUv3 support in Xen for ARM guests.
>>
>> Motivation
>> ----------
>>
>> ARM systems utilizing SMMUv3 require Stage-1 address translation to
>> ensure correct and secure DMA behavior inside guests.
> 
> Can you clarify what you mean by "correct"? DMA would still work without
> stage-1.

Correct in terms of working with guest managed I/O space. I'll rephrase 
this statement, it seems ambiguous.

>>
>> This feature enables:
>> - Stage-1 translation in guest domain
>> - Safe device passthrough under secure memory translation
>>
>> Design Overview
>> ---------------
>>
>> These changes provide emulated SMMUv3 support:
>>
>> - SMMUv3 Stage-1 Translation: stage-1 and nested translation support in
>>   Â  SMMUv3 driver
>> - vIOMMU Abstraction: virtual IOMMU framework for guest Stage-1 handling
> 
> So what are you planning to expose to a guest? Is it one vIOMMU per
> pIOMMU? Or a single one?

Single vIOMMU model is used in this design.

> 
> Have you considered the pros/cons for both?
>> - Register/Command Emulation: SMMUv3 register emulation and command
>>   Â  queue handling
> 

That's a point for consideration.
single vIOMMU prevails in terms of less complex implementation and a 
simple guest iommmu model - single vIOMMU node, one interrupt path, 
event queue, single set of trap handlers for emulation, etc.
Cons for a single vIOMMU model could be less accurate hw representation 
and a potential bottleneck with one emulated queue and interrupt path.
On the other hand, vIOMMU per pIOMMU provides more accurate hw modeling 
and offers better scalability in case of many IOMMUs in the system, but 
this comes with more complex emulation logic and device tree, also 
handling multiple vIOMMUs on guest side.
IMO, single vIOMMU model seems like a better option mostly because it's 
less complex, easier to maintain and debug. Of course, this decision can 
and should be discussed.

> For each pSMMU, we have a single command queue that will receive command
> from all the guests. How do you plan to prevent a guest hogging the
> command queue?
> 
> In addition to that, AFAIU, the size of the virtual command queue is
> fixed by the guest rather than Xen. If a guest is filling up the queue
> with commands before notifying Xen, how do you plan to ensure we don't
> spend too much time in Xen (which is not preemptible)?
> 

We'll have to do a detailed analysis on these scenarios, they are not 
covered by the design (as well as some others which is clear after your 
comments). I'll come back with an updated design.

> Lastly, what do you plan to expose? Is it a full vIOMMU (including event
> forwarding)?
> 

Yes, implementation provides full vIOMMU functionality, with stage-1 
event forwarding to guest.

>> - Device Tree Extensions: adds iommus and virtual SMMUv3 nodes to
>>   Â  device trees for dom0 and dom0less scenarios
>> - Runtime Configuration: introduces a 'viommu' boot parameter for
>>   Â  dynamic enablement
>>
>> Security Considerations
>> ------------------------
>>
>> viommu security benefits:
>> - Stage-1 translation ensures guest devices cannot perform unauthorized
>>   Â  DMA
>> - Emulated SMMUv3 for domains removes dependency on host hardware while
>>   Â  maintaining isolation
> 
> I don't understand this sentence.
> 

Current implementation emulates IOMMU with predefined capabilities, 
exposed as a single vIOMMU to guest. That's where "removes dependency on 
host hardware" came from. I'll rephrase this part to be more clear.


>>
>> Observations and Potential Risks
>> --------------------------------
>>
>> 1. Observation:
>> Support for Stage-1 translation introduces new data structures
>> (s1_cfg and s2_cfg) and logic to write both Stage-1 and Stage-2 entries
>> in the Stream Table Entry (STE), including an abort field for partial
>> config states.
>>
>> Risk:
>> A partially applied Stage-1 configuration might leave guest DMA
>> mappings in an inconsistent state, enabling unauthorized access or
>> cross-domain interference.
> 
> I don't understand how a misconfigured stage-1 could lead to
> cross-domain interference. Can you clarify?
> 

For stage-1 support, SID-to-device mapping and per device  io_domain 
allocation is introduced in Xen smmu driver, and we have to take care 
that these mappings are valid all the time. If these are not properly 
managed, structures and SIDs could be mapped to wrong device (and 
consequentially wrong guest) in some extreme cases.
This is covered by the design, but listed as a risc anyway for eventual 
future updates in this area.


>>
>> Mitigation (Handled by design):
>> Both s1_cfg and s2_cfg are written atomically. The abort field ensures
>> Stage-1 config is only used when fully applied. Incomplete configs are
>> ignored by the hypervisor.
>>
>> 2. Observation:
>> Guests can now issue Stage-1 cache invalidations.
>>
>> Risk:
>> Failure to propagate invalidations could leave stale mappings, enabling
>> data leakage or misrouting.
> 
> This is a risk from the guest PoV, right? IOW, this would not open up a
> security hole in Xen.
> 

Yes, this is guest PoV, although still related to vIOMMU.

>>
>> Mitigation (Handled by design):
>> Guest invalidations are forwarded to the hardware to ensure IOMMU
>> coherency.
>>
>> 3. Observation:
>> The feature introduces large functional changes including the vIOMMU
>> framework, vsmmuv3 devices, command queues, event queues, domain
>> handling, and Device Tree modifications.
>>
>> Risk:
>> Increased attack surface with risk of race conditions, malformed
>> commands, or misconfiguration via the device tree.
>>
>> Mitigation:
>> - Improved sanity checks and error handling
>> - Feature is marked as Tech Preview and self-contained to reduce risk
>>   Â  to unrelated code
> 
> Surely, you will want to use the code in production... No?
> 

Yes, it is planned for production usage. At the moment, it is optionally 
enabled (grouped under unsupported features), needs community feedback, 
complete security analysis and performance benchmarking/optimization. 
That's the reason it's marked as a Tech Preview at this point.


>>
>> 4. Observation:
>> The implementation supports nested and standard translation modes,
>> using guest command queues (e.g. CMD_CFGI_STE) and events.
>>
>> Risk:
>> Malicious commands could bypass validation and corrupt SMMUv3 state or
>> destabilize dom0.
>>
>> Mitigation (Handled by design):
>> Command queues are validated, and only permitted configuration changes
>> are accepted. Handled in vsmmuv3 and cmdqueue logic.
> 
> I didn't mention anything in obversation 1 but now I have to say it...
> The observations you wrote are what I would expect to be handled in any
> submission to our code base. This is the bare minimum to have the code
> secure. But you don't seem to address the more subttle ones which are
> more related to scheduling issue (see some above). They require some
> design and discussion.
> 

Yes, it's clear to me after your comments that some important 
observations are missing. We'll do additional analysis and come back 
with a more complete design.

>>
>> 5. Observation:
>> Device Tree changes inject iommus and vsmmuv3 nodes via libxl.
>>
>> Risk:
>> Malicious or incorrect DT fragments could result in wrong device
>> assignments or hardware access.
>>
>> Mitigation:
>> Only vetted and sanitized DT fragments are allowed. libxl limits what
>> guests can inject.
> 
> Today, libxl doesn't do any sanitisation on the DT. In fact, this is
> pretty much impossible because libfdt expects trusted DT. Is this
> something you are planning to change?

I've referred to libxl parsing only supported fragments/nodes from DT, 
but yes, that's not actual sanitization. I'll update these statements.

>>
>> 6. Observation:
>> The feature is enabled per-guest via viommu setting.
>>
>> Risk:
>> Guests without viommu may behave differently, potentially causing
>> confusion, privilege drift, or accidental exposure.
>>
>> Mitigation:
>> Ensure downgrade paths are safe. Perform isolation audits in
>> multi-guest environments to ensure correct behavior.
>>
>> Performance Impact
>> ------------------
>>
>> Hardware-managed translations are expected to have minimal overhead.
>> Emulated vIOMMU may introduce some latency during initialization or
>> event processing.
> 
> Latency to who? We still expect isolation between guests and a guest
> will not go over its time slice.
> 

This is more related to comparison of emulated vs hw translation, and 
overall overhead introduced with these mechanisms. I'll rephrase this 
part to be more clear.

> For the guest itself, the main performance impact will be TLB flushes
> because they are commands that will end up to be emulated by Xen.
> Depending on your Linux configuration (I haven't checked other), this
> will either happen every unmap operation or they will be batch. The
> performance of the latter will be the worse one.
> 
> Have you done any benchmark to confirm the impact? Just to note, I would
> not gate the work for virtual SMMUv3 based on the performance. I think
> it is ok to offer the support if the user want extra security and
> doesn't care about performance. But it would be good to outline them as
> I expect them to be pretty bad...
> 

We haven't performed detailed benchmarking, just a measurement of boot 
time and our domU application execution rate with and without viommu. We 
could perform some measurements for viommu operations and add results in 
this section.

Thank you for your feedback, I'll come back with an updated design 
document for further review.

BR,
Milan


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 17:38:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 17:38:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082101.1442010 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umbth-00071p-0K; Thu, 14 Aug 2025 17:37:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082101.1442010; Thu, 14 Aug 2025 17:37: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 1umbtg-00071i-TF; Thu, 14 Aug 2025 17:37:52 +0000
Received: by outflank-mailman (input) for mailman id 1082101;
 Thu, 14 Aug 2025 17:37:52 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=cDpc=22=infradead.org=rdunlap@srs-se1.protection.inumbo.net>)
 id 1umbtf-00071c-5l
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 17:37:52 +0000
Received: from bombadil.infradead.org (bombadil.infradead.org
 [2607:7c80:54:3::133])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 64e10aaf-7935-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 19:37:49 +0200 (CEST)
Received: from [50.53.25.54] (helo=[192.168.254.17])
 by bombadil.infradead.org with esmtpsa (Exim 4.98.2 #2 (Red Hat Linux))
 id 1umbtD-00000000E9n-3MTt; Thu, 14 Aug 2025 17:37: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>
X-Inumbo-ID: 64e10aaf-7935-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=bombadil.20210309; h=Content-Transfer-Encoding:
	Content-Type:In-Reply-To:From:References:Cc:To:Subject:MIME-Version:Date:
	Message-ID:Sender:Reply-To:Content-ID:Content-Description;
	bh=OE4LAchkYGbRbWIAPtKdq4yp8AV8hBrJ1qdnR14GXT4=; b=4KLyFDU/Vumsz96izTNEFh1dPT
	gcELlCyTppY1dhYETNtbcxbOIeh1/sthMu9DbTeiVaAcP7tcEuyIkykR+tjpcFgzaiM4l5e7zW/99
	WT21f95NU5V6ne9427BqfukuNCmE4P8LKLVbcXGI3NVbyx+CI0xucaJY3VBJ0r3B7kFJXEhhBYBCH
	rRABtXI9ZkOcgZvf82D6jL0f5HF0S2ekt30gXEkdZuKsfcL0Px0gARfb1GdZ7N6PG/l3W5OuzmpWz
	GxsIWFejW3a3LSYz1Mfw2PcJDMlTUQWwRae7vRCeE50nJNZOOiGyqf3SNV1eNn7Mpy146jdENj5EG
	0OjLyf7Q==;
Message-ID: <c855a4f9-4a50-4e02-9ac6-372abe7da730@infradead.org>
Date: Thu, 14 Aug 2025 10:37:22 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 01/16] dma-mapping: introduce new DMA attribute to
 indicate MMIO memory
To: Leon Romanovsky <leon@kernel.org>,
 Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>, Jason Gunthorpe <jgg@nvidia.com>,
 Abdiel Janulgue <abdiel.janulgue@gmail.com>,
 Alexander Potapenko <glider@google.com>, Alex Gaynor
 <alex.gaynor@gmail.com>, Andrew Morton <akpm@linux-foundation.org>,
 Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
 iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
 Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
 Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
 kasan-dev@googlegroups.com, Keith Busch <kbusch@kernel.org>,
 linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
 linux-kernel@vger.kernel.org, linux-mm@kvack.org,
 linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
 linux-trace-kernel@vger.kernel.org, Madhavan Srinivasan
 <maddy@linux.ibm.com>, Masami Hiramatsu <mhiramat@kernel.org>,
 Michael Ellerman <mpe@ellerman.id.au>, "Michael S. Tsirkin"
 <mst@redhat.com>, Miguel Ojeda <ojeda@kernel.org>,
 Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
 Sagi Grimberg <sagi@grimberg.me>, Stefano Stabellini
 <sstabellini@kernel.org>, Steven Rostedt <rostedt@goodmis.org>,
 virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1755153054.git.leon@kernel.org>
 <f832644c76e13de504ecf03450fd5d125f72f4c6.1755153054.git.leon@kernel.org>
Content-Language: en-US
From: Randy Dunlap <rdunlap@infradead.org>
In-Reply-To: <f832644c76e13de504ecf03450fd5d125f72f4c6.1755153054.git.leon@kernel.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Hi Leon,

On 8/14/25 3:13 AM, Leon Romanovsky wrote:
> diff --git a/Documentation/core-api/dma-attributes.rst b/Documentation/core-api/dma-attributes.rst
> index 1887d92e8e92..58a1528a9bb9 100644
> --- a/Documentation/core-api/dma-attributes.rst
> +++ b/Documentation/core-api/dma-attributes.rst
> @@ -130,3 +130,21 @@ accesses to DMA buffers in both privileged "supervisor" and unprivileged
>  subsystem that the buffer is fully accessible at the elevated privilege
>  level (and ideally inaccessible or at least read-only at the
>  lesser-privileged levels).
> +
> +DMA_ATTR_MMIO
> +-------------
> +
> +This attribute indicates the physical address is not normal system
> +memory. It may not be used with kmap*()/phys_to_virt()/phys_to_page()
> +functions, it may not be cachable, and access using CPU load/store

Usually "cacheable" (git grep -w cacheable counts 1042 hits vs.
55 hits for "cachable"). And the $internet agrees.

> +instructions may not be allowed.
> +
> +Usually this will be used to describe MMIO addresses, or other non

non-cacheable

> +cachable register addresses. When DMA mapping this sort of address we

> +call the operation Peer to Peer as a one device is DMA'ing to another
> +device. For PCI devices the p2pdma APIs must be used to determine if
> +DMA_ATTR_MMIO is appropriate.
> +
> +For architectures that require cache flushing for DMA coherence
> +DMA_ATTR_MMIO will not perform any cache flushing. The address
> +provided must never be mapped cachable into the CPU.
again.

thanks.
-- 
~Randy



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 17:43:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 17:43:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082111.1442022 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umbzM-000093-Kw; Thu, 14 Aug 2025 17:43:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082111.1442022; Thu, 14 Aug 2025 17:43: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 1umbzM-00008w-GN; Thu, 14 Aug 2025 17:43:44 +0000
Received: by outflank-mailman (input) for mailman id 1082111;
 Thu, 14 Aug 2025 17:43:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Hncw=22=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1umbzL-00008a-Qb
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 17:43:43 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 370e2266-7936-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 19:43:41 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 7FB4F601D8;
 Thu, 14 Aug 2025 17:43:39 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 66588C4CEED;
 Thu, 14 Aug 2025 17:43:38 +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>
X-Inumbo-ID: 370e2266-7936-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755193419;
	bh=NtGaXEt/rCXZbH6AhRXhKag5AQfcAprg8g7HcBf4fa8=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=qET8o0XvKzXdUiWMSbCsLL3eECdWZ/AbT+J3b7auosgo7K/gf6rt6x3D6UTI76iqO
	 ti/iGG5xkCHTOQimoWMmFfEnk9qKFL2quOO5nh0SiN+AtdcIknOOMaCwhWCHlP4gMD
	 ykB+wRt62M5cjTVShpIgxGBKujUJevNaAvQmESCXsgTaz6eSAmBzP6Np2+HWgacd/i
	 ptn2QT+kSVgRjXKbq92+rFZQUf9rAqUBC2DFgoqq/jRE8er78UlpXtOrVW/WVebQgm
	 oscioXsT1akK/vdGGIJZToP0KYoeWZGwANzuVPBNp0BvFFlINHo65cmqBExc85Nyt2
	 XqGc4T1I2WbCQ==
Date: Thu, 14 Aug 2025 20:43:33 +0300
From: Leon Romanovsky <leon@kernel.org>
To: Randy Dunlap <rdunlap@infradead.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 01/16] dma-mapping: introduce new DMA attribute to
 indicate MMIO memory
Message-ID: <20250814174333.GA8427@unreal>
References: <cover.1755153054.git.leon@kernel.org>
 <f832644c76e13de504ecf03450fd5d125f72f4c6.1755153054.git.leon@kernel.org>
 <c855a4f9-4a50-4e02-9ac6-372abe7da730@infradead.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <c855a4f9-4a50-4e02-9ac6-372abe7da730@infradead.org>

On Thu, Aug 14, 2025 at 10:37:22AM -0700, Randy Dunlap wrote:
> Hi Leon,
> 
> On 8/14/25 3:13 AM, Leon Romanovsky wrote:
> > diff --git a/Documentation/core-api/dma-attributes.rst b/Documentation/core-api/dma-attributes.rst
> > index 1887d92e8e92..58a1528a9bb9 100644
> > --- a/Documentation/core-api/dma-attributes.rst
> > +++ b/Documentation/core-api/dma-attributes.rst
> > @@ -130,3 +130,21 @@ accesses to DMA buffers in both privileged "supervisor" and unprivileged
> >  subsystem that the buffer is fully accessible at the elevated privilege
> >  level (and ideally inaccessible or at least read-only at the
> >  lesser-privileged levels).
> > +
> > +DMA_ATTR_MMIO
> > +-------------
> > +
> > +This attribute indicates the physical address is not normal system
> > +memory. It may not be used with kmap*()/phys_to_virt()/phys_to_page()
> > +functions, it may not be cachable, and access using CPU load/store
> 
> Usually "cacheable" (git grep -w cacheable counts 1042 hits vs.
> 55 hits for "cachable"). And the $internet agrees.
> 
> > +instructions may not be allowed.
> > +
> > +Usually this will be used to describe MMIO addresses, or other non
> 
> non-cacheable
> 
> > +cachable register addresses. When DMA mapping this sort of address we
> 
> > +call the operation Peer to Peer as a one device is DMA'ing to another
> > +device. For PCI devices the p2pdma APIs must be used to determine if
> > +DMA_ATTR_MMIO is appropriate.
> > +
> > +For architectures that require cache flushing for DMA coherence
> > +DMA_ATTR_MMIO will not perform any cache flushing. The address
> > +provided must never be mapped cachable into the CPU.
> again.

Thanks, I will fix.

> 
> thanks.
> -- 
> ~Randy
> 
> 


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 17:49:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 17:49:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082121.1442030 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umc4f-0000id-5M; Thu, 14 Aug 2025 17:49:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082121.1442030; Thu, 14 Aug 2025 17:49: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 1umc4f-0000iW-2G; Thu, 14 Aug 2025 17:49:13 +0000
Received: by outflank-mailman (input) for mailman id 1082121;
 Thu, 14 Aug 2025 17:49:12 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=QQqN=22=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1umc4d-0000iQ-IY
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 17:49:12 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fa867b72-7936-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 19:49:08 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 98C784EE3C04;
 Thu, 14 Aug 2025 19:49: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>
X-Inumbo-ID: fa867b72-7936-11f0-b898-0df219b8e170
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=1755193747;
	b=evJP8l7QeIUq/oYk43X5JBzf+yAmxLnEn2D/hfH2oJdDs71zSN4IpZl7Nc+YDO0uLp2/
	 bg6xqx2KOZMTMDHQnIu9m/1lJJB0P86iJX5NnononoDaLQrVk0RN40knbIG3qPP0n1C+A
	 KkaczgVwVye5aV1ef8RKoxWpjyjjXkcNSgZIuJPpbZWEhjOgRNaGpUuhJHUP11jjSNrpD
	 4vKM4TSgsJIGu6qmg5hRtmJydCS4PKk5PHLKPiBK04o+lzb5hBiPYOxyF33I8XndgsLDf
	 4qnmsWXfuKP1YVoI5tltl2n6hTG0+BLFz6t1smYfK56zeG0ybcqprZXGhOe993P62sGgd
	 o81Sf/4UNFnC8F4rI0HEsPxP08YLwgqGzOLakzcW7iOJRhjhHFgYxcIzqQ4koDiCpJPVf
	 GwGl6CyGYNieaJo9tAspyTo0zv/M3REJNEAELjcPNRj4mgZgIiLGcCo4bwxVOsFrKGN9E
	 9wVLocHpKnyB1IIf3+rlmClAR2p9dH4TPMiT4EZDjvGZXHbCxln1O5pO+QDSfVyPaGvT0
	 9LGH5JyIZjKNIxNXOGxwCFV4QqEfJ9yF/EKMChwoXEqyL6jiEYomV2la9p2pCq1PChQsh
	 6866NXhgQkiiF8LUg5HbiSSTL2Y2U+QssL5IWpptYap7SbF5i+oEA6E2mYDURW8=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1755193747;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=YO7Ya9iBWiFrBHR+XdC+uFThSUh8MFN6TXgkgn+bID8=;
	b=ZZLzAmdsPn/Mq4DPMasEmesxhFQLsL2s+CluNPIHkBuWm5YQxQ9TmxbUu5yHefZXUqo+
	 LFbs07hcz5PzTVSikyEEDUFfvxfE/65fl0wTE+AabBieMS3C8Kop2YbpJ9g8g0hepSKgg
	 LuyrpG/jpxwvCLPKrTGkZQk98qAuwph5jnomquQ6kmCbxH+GL0991Ko5zsvO1zrXWoOWp
	 P/+ddpUMMtI4xlQJMipTnEAstwf0upkp+h5YE+BMQsIctDFtCwvmBPSE3S+Nd2noTKuzG
	 YcsfxNsGU1YUSyZIWfRzCYS8p2e68oNVy0Hi/NnuHJa6o4mMoSWvcssnGJgicqDS5Bk8q
	 WSTCOA6jjOWjq2XaB3Bm/NJikQnXHAAGm/GxXux8B1WX9gKsFa0duwg7Rf4j8PbP4FUGG
	 eZR/NEi6HQISClVTWpVcYIlu3z6BPCTnL9j+Hl9nR8iAoTHMgXkqJ8QZ/3CfJQvVd1OT+
	 KQVPeZL369MpgzT4upTo0OJlTNetM5nwzC4PdmzNDE320yRjGWAUakxpbmX8VAsrb35cn
	 pCUob/9hKaMakj5v+YH776IErdFGdrzxyqcohngiJ7Udb/0a+AjfSVInvW4o08JScEG9y
	 LoxjWvVeNUjtGSYmJe0UH5MJIsd89taKn8dxJYsEpjhjlWgDvYvNnsDS+AoETIg=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1755193747; bh=UOLYbN34On77eNfK6ujLWY3o1aFbm4jVSPgMTCAbHws=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=lDMYaTeVN5andKJKDFXgjtj6okcZ3kZ6VsVY15/wYS8gwMW1iJpUz3X5P3pz7hgH6
	 E38uEGyPxRNZu/YARO7SosqRGTe9w+DWABlo13whXXXlZ38HFBS0ZIXgR3AFkhT5E/
	 73F4h81Fp4mvRGiYSA9WLnHSqcsdUl/DF+7Gk8DaqQSz0vYf9/UghyZ3AUPk+wM8Yi
	 IaU41mNK7Um7vqLVkRTaBi4fzSpB48+UEmyNq+OVz326xE7j4q3nUwBTDtQgoXHTrN
	 ENemWQc2nKIOObuz2BAvNQE6z/4qIc4detcrY60roPSq87b6cRdjUcoEsvZ5CAoxLw
	 1ua1oVvLQihMw==
MIME-Version: 1.0
Date: Thu, 14 Aug 2025 19:49:07 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: sstabellini@kernel.org, consulting@bugseng.com,
 dmytro_prokopchuk1@epam.com, andrew.cooper3@citrix.com, Doug Goldstein
 <cardoe@cardoe.com>, xen-devel@lists.xenproject.org
Subject: Re: [XEN PATCH 2/2] Address violation of MISRA C Rule 13.1 involving
 asm side effects.
In-Reply-To: <0b55d5f9-35ad-4598-94ab-1aa4991c0e3a@suse.com>
References: <1283be3b76d76814af244bbca544f6a3b74a04de.1754689062.git.nicola.vetrini@bugseng.com>
 <c4da2554d94c3f7bd4b1e460dcaa27db382ece2f.1754689062.git.nicola.vetrini@bugseng.com>
 <0b55d5f9-35ad-4598-94ab-1aa4991c0e3a@suse.com>
Message-ID: <2994bb7cfe2b0a5f86876a3ead64bdff@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

On 2025-08-14 09:36, Jan Beulich wrote:
> On 08.08.2025 23:40, Nicola Vetrini wrote:
>> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
>> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
>> @@ -437,6 +437,10 @@ write or not"
>>  # Series 13
>>  #
>> 
>> +-doc_begin="Consider the asm instruction to read an Arm system 
>> register to have no side effects."
>> +-asm_properties+={"asm(any())&&child(text, 
>> ast_field(value,^mrs\\s+%0.*$))", {no_side_effect}}
>> +-doc_end
> 
> Is this actually strict enough to not allow multiple instructions in 
> the asm(),
> where some of the others would yield side effects we actually need to 
> respect?
> 
> Jan

Good point, I didn't think of that. As it is, there is only one MRS asm, 
so no worries here, but in general the remark is valid. The regex could 
be a bit stricter, though the real solution here would be to match the 
context in which this asm is present to limit the scope of the 
deviation. This does not make much sense for an asm property because the 
properties of an asm statement (at the level of granularity targeted by 
ECLAIR) can be derived mostly in isolation from the surrounding code.

Another improvement we are pursuing is allowing single effects in 
init-list-exprs, but it will take a bit of time to surface (i.e., next 
major release probably).

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 17:54:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 17:54:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082132.1442051 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umc9h-0002d7-Uv; Thu, 14 Aug 2025 17:54:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082132.1442051; Thu, 14 Aug 2025 17:54: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 1umc9h-0002d0-Rm; Thu, 14 Aug 2025 17:54:25 +0000
Received: by outflank-mailman (input) for mailman id 1082132;
 Thu, 14 Aug 2025 17:54:24 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Hncw=22=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1umc9g-0002OV-6X
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 17:54:24 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org
 [2604:1380:4641:c500::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b4cef084-7937-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 19:54:22 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 880095C71A2;
 Thu, 14 Aug 2025 17:54:20 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 84294C4CEED;
 Thu, 14 Aug 2025 17:54:19 +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>
X-Inumbo-ID: b4cef084-7937-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755194060;
	bh=EWgy5B4A+Akm79sn7jh5YTuSXsOOCp8mk7trqVaPDEQ=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=S9amqurfNETOVtezAkVa6MnsxIu6FYiLmixRtkhT7UqHmokRjufKZ1zA6i9tqvLQ2
	 VpJ4757fo5s+Q2B9uKr7wl6GFTqBZChNrcR91YPaDGQm3vc25I4sL8CzGbTzuJPVlN
	 hPNWCQXPSv+pe++9AF//cQKOMXHlxjzvfpawShOZexyhB811vMblb4Iob91DHn4JMc
	 0Ps4ndMm0C4ZpnAnz+lLs8UrfAyun9stmeMVvNUeWnOeLJkhGWt7hBLyD/hpHedHFz
	 VRCIt+hbiKhk4E6OvRy5w370VlsotUtqhkL6SY1GJHWGdRmKrFcs1UCUfCS6wKxQd/
	 DwNNNAdWNBcLA==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v3 01/16] dma-mapping: introduce new DMA attribute to indicate MMIO memory
Date: Thu, 14 Aug 2025 20:53:52 +0300
Message-ID: <08e044a00a872932e106f7e27449a8eab2690dbc.1755193625.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755193625.git.leon@kernel.org>
References: <cover.1755193625.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

This patch introduces the DMA_ATTR_MMIO attribute to mark DMA buffers
that reside in memory-mapped I/O (MMIO) regions, such as device BARs
exposed through the host bridge, which are accessible for peer-to-peer
(P2P) DMA.

This attribute is especially useful for exporting device memory to other
devices for DMA without CPU involvement, and avoids unnecessary or
potentially detrimental CPU cache maintenance calls.

DMA_ATTR_MMIO is supposed to provide dma_map_resource() functionality
without need to call to special function and perform branching by
the callers.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 Documentation/core-api/dma-attributes.rst | 18 ++++++++++++++++++
 include/linux/dma-mapping.h               | 20 ++++++++++++++++++++
 include/trace/events/dma.h                |  3 ++-
 rust/kernel/dma.rs                        |  3 +++
 4 files changed, 43 insertions(+), 1 deletion(-)

diff --git a/Documentation/core-api/dma-attributes.rst b/Documentation/core-api/dma-attributes.rst
index 1887d92e8e92..0bdc2be65e57 100644
--- a/Documentation/core-api/dma-attributes.rst
+++ b/Documentation/core-api/dma-attributes.rst
@@ -130,3 +130,21 @@ accesses to DMA buffers in both privileged "supervisor" and unprivileged
 subsystem that the buffer is fully accessible at the elevated privilege
 level (and ideally inaccessible or at least read-only at the
 lesser-privileged levels).
+
+DMA_ATTR_MMIO
+-------------
+
+This attribute indicates the physical address is not normal system
+memory. It may not be used with kmap*()/phys_to_virt()/phys_to_page()
+functions, it may not be cacheable, and access using CPU load/store
+instructions may not be allowed.
+
+Usually this will be used to describe MMIO addresses, or other non-cacheable
+register addresses. When DMA mapping this sort of address we call
+the operation Peer to Peer as a one device is DMA'ing to another device.
+For PCI devices the p2pdma APIs must be used to determine if
+DMA_ATTR_MMIO is appropriate.
+
+For architectures that require cache flushing for DMA coherence
+DMA_ATTR_MMIO will not perform any cache flushing. The address
+provided must never be mapped cacheable into the CPU.
diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h
index 55c03e5fe8cb..4254fd9bdf5d 100644
--- a/include/linux/dma-mapping.h
+++ b/include/linux/dma-mapping.h
@@ -58,6 +58,26 @@
  */
 #define DMA_ATTR_PRIVILEGED		(1UL << 9)
 
+/*
+ * DMA_ATTR_MMIO - Indicates memory-mapped I/O (MMIO) region for DMA mapping
+ *
+ * This attribute indicates the physical address is not normal system
+ * memory. It may not be used with kmap*()/phys_to_virt()/phys_to_page()
+ * functions, it may not be cacheable, and access using CPU load/store
+ * instructions may not be allowed.
+ *
+ * Usually this will be used to describe MMIO addresses, or other non-cacheable
+ * register addresses. When DMA mapping this sort of address we call
+ * the operation Peer to Peer as a one device is DMA'ing to another device.
+ * For PCI devices the p2pdma APIs must be used to determine if DMA_ATTR_MMIO
+ * is appropriate.
+ *
+ * For architectures that require cache flushing for DMA coherence
+ * DMA_ATTR_MMIO will not perform any cache flushing. The address
+ * provided must never be mapped cacheable into the CPU.
+ */
+#define DMA_ATTR_MMIO		(1UL << 10)
+
 /*
  * A dma_addr_t can hold any valid DMA or bus address for the platform.  It can
  * be given to a device to use as a DMA source or target.  It is specific to a
diff --git a/include/trace/events/dma.h b/include/trace/events/dma.h
index d8ddc27b6a7c..ee90d6f1dcf3 100644
--- a/include/trace/events/dma.h
+++ b/include/trace/events/dma.h
@@ -31,7 +31,8 @@ TRACE_DEFINE_ENUM(DMA_NONE);
 		{ DMA_ATTR_FORCE_CONTIGUOUS, "FORCE_CONTIGUOUS" }, \
 		{ DMA_ATTR_ALLOC_SINGLE_PAGES, "ALLOC_SINGLE_PAGES" }, \
 		{ DMA_ATTR_NO_WARN, "NO_WARN" }, \
-		{ DMA_ATTR_PRIVILEGED, "PRIVILEGED" })
+		{ DMA_ATTR_PRIVILEGED, "PRIVILEGED" }, \
+		{ DMA_ATTR_MMIO, "MMIO" })
 
 DECLARE_EVENT_CLASS(dma_map,
 	TP_PROTO(struct device *dev, phys_addr_t phys_addr, dma_addr_t dma_addr,
diff --git a/rust/kernel/dma.rs b/rust/kernel/dma.rs
index 2bc8ab51ec28..61d9eed7a786 100644
--- a/rust/kernel/dma.rs
+++ b/rust/kernel/dma.rs
@@ -242,6 +242,9 @@ pub mod attrs {
     /// Indicates that the buffer is fully accessible at an elevated privilege level (and
     /// ideally inaccessible or at least read-only at lesser-privileged levels).
     pub const DMA_ATTR_PRIVILEGED: Attrs = Attrs(bindings::DMA_ATTR_PRIVILEGED);
+
+    /// Indicates that the buffer is MMIO memory.
+    pub const DMA_ATTR_MMIO: Attrs = Attrs(bindings::DMA_ATTR_MMIO);
 }
 
 /// An abstraction of the `dma_alloc_coherent` API.
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 17:54:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 17:54:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082131.1442042 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umc9d-0002Oj-P3; Thu, 14 Aug 2025 17:54:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082131.1442042; Thu, 14 Aug 2025 17:54: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 1umc9d-0002Oc-KV; Thu, 14 Aug 2025 17:54:21 +0000
Received: by outflank-mailman (input) for mailman id 1082131;
 Thu, 14 Aug 2025 17:54:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Hncw=22=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1umc9c-0002OV-GA
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 17:54:20 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b29b50c2-7937-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 19:54:18 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 92993601D8;
 Thu, 14 Aug 2025 17:54:16 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2DF51C4CEED;
 Thu, 14 Aug 2025 17:54: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>
X-Inumbo-ID: b29b50c2-7937-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755194056;
	bh=4y9YNTqs9ATD73KrJOwGSmCUPGlXOqneFIdpT6164E0=;
	h=From:To:Cc:Subject:Date:From;
	b=OcmeWeukMp2SnwuNGWIvA4eA/M6CtC77rgEGKJ+lP8E1ncVU3Rmm5LjSTPE0H8OIk
	 JZc0BQ5Uii4DFY4trcWY4DohMWke+oNy5brn/WmBiBVBoMxElYNdjsyjyNfvJZipWu
	 rD3GletMxA6oI7vW8NFEBfCcopcc0RYA3HnpqlvuA1f4tTqJ0+y3JOCfgCc3d9hfs8
	 ttOaiCXhCd9V6vk0MBmgu5dxIIxE7tYYoSllHfQFqM08tNP1IKiV4A7io6lECGj6Np
	 ZY5UolVIrPEH6pl1NJx2zRjMl+SdP2cIEKEsjWmwcNT4ScCkWZF9oA7VDmsnbc8OhT
	 4x50cIzc9r3Fw==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v3 00/16] dma-mapping: migrate to physical address-based API
Date: Thu, 14 Aug 2025 20:53:51 +0300
Message-ID: <cover.1755193625.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Changelog:
v3:
 * Fixed typo in "cacheable" word
 * Simplified kmsan patch a lot to be simple argument refactoring
v2: https://lore.kernel.org/all/cover.1755153054.git.leon@kernel.org
 * Used commit messages and cover letter from Jason
 * Moved setting IOMMU_MMIO flag to dma_info_to_prot function
 * Micro-optimized the code
 * Rebased code on v6.17-rc1
v1: https://lore.kernel.org/all/cover.1754292567.git.leon@kernel.org
 * Added new DMA_ATTR_MMIO attribute to indicate
   PCI_P2PDMA_MAP_THRU_HOST_BRIDGE path.
 * Rewrote dma_map_* functions to use thus new attribute
v0: https://lore.kernel.org/all/cover.1750854543.git.leon@kernel.org/
------------------------------------------------------------------------

This series refactors the DMA mapping to use physical addresses
as the primary interface instead of page+offset parameters. This
change aligns the DMA API with the underlying hardware reality where
DMA operations work with physical addresses, not page structures.

The series maintains export symbol backward compatibility by keeping
the old page-based API as wrapper functions around the new physical
address-based implementations.

This series refactors the DMA mapping API to provide a phys_addr_t
based, and struct-page free, external API that can handle all the
mapping cases we want in modern systems:

 - struct page based cachable DRAM
 - struct page MEMORY_DEVICE_PCI_P2PDMA PCI peer to peer non-cachable
   MMIO
 - struct page-less PCI peer to peer non-cachable MMIO
 - struct page-less "resource" MMIO

Overall this gets much closer to Matthew's long term wish for
struct-pageless IO to cachable DRAM. The remaining primary work would
be in the mm side to allow kmap_local_pfn()/phys_to_virt() to work on
phys_addr_t without a struct page.

The general design is to remove struct page usage entirely from the
DMA API inner layers. For flows that need to have a KVA for the
physical address they can use kmap_local_pfn() or phys_to_virt(). This
isolates the struct page requirements to MM code only. Long term all
removals of struct page usage are supporting Matthew's memdesc
project which seeks to substantially transform how struct page works.

Instead make the DMA API internals work on phys_addr_t. Internally
there are still dedicated 'page' and 'resource' flows, except they are
now distinguished by a new DMA_ATTR_MMIO instead of by callchain. Both
flows use the same phys_addr_t.

When DMA_ATTR_MMIO is specified things work similar to the existing
'resource' flow. kmap_local_pfn(), phys_to_virt(), phys_to_page(),
pfn_valid(), etc are never called on the phys_addr_t. This requires
rejecting any configuration that would need swiotlb. CPU cache
flushing is not required, and avoided, as ATTR_MMIO also indicates the
address have no cachable mappings. This effectively removes any
DMA API side requirement to have struct page when DMA_ATTR_MMIO is
used.

In the !DMA_ATTR_MMIO mode things work similarly to the 'page' flow,
except on the common path of no cache flush, no swiotlb it never
touches a struct page. When cache flushing or swiotlb copying
kmap_local_pfn()/phys_to_virt() are used to get a KVA for CPU
usage. This was already the case on the unmap side, now the map side
is symmetric.

Callers are adjusted to set DMA_ATTR_MMIO. Existing 'resource' users
must set it. The existing struct page based MEMORY_DEVICE_PCI_P2PDMA
path must also set it. This corrects some existing bugs where iommu
mappings for P2P MMIO were improperly marked IOMMU_CACHE.

Since ATTR_MMIO is made to work with all the existing DMA map entry
points, particularly dma_iova_link(), this finally allows a way to use
the new DMA API to map PCI P2P MMIO without creating struct page. The
VFIO DMABUF series demonstrates how this works. This is intended to
replace the incorrect driver use of dma_map_resource() on PCI BAR
addresses.

This series does the core code and modern flows. A followup series
will give the same treatment to the legacy dma_ops implementation.

Thanks

Leon Romanovsky (16):
  dma-mapping: introduce new DMA attribute to indicate MMIO memory
  iommu/dma: implement DMA_ATTR_MMIO for dma_iova_link().
  dma-debug: refactor to use physical addresses for page mapping
  dma-mapping: rename trace_dma_*map_page to trace_dma_*map_phys
  iommu/dma: rename iommu_dma_*map_page to iommu_dma_*map_phys
  iommu/dma: extend iommu_dma_*map_phys API to handle MMIO memory
  dma-mapping: convert dma_direct_*map_page to be phys_addr_t based
  kmsan: convert kmsan_handle_dma to use physical addresses
  dma-mapping: handle MMIO flow in dma_map|unmap_page
  xen: swiotlb: Open code map_resource callback
  dma-mapping: export new dma_*map_phys() interface
  mm/hmm: migrate to physical address-based DMA mapping API
  mm/hmm: properly take MMIO path
  block-dma: migrate to dma_map_phys instead of map_page
  block-dma: properly take MMIO path
  nvme-pci: unmap MMIO pages with appropriate interface

 Documentation/core-api/dma-api.rst        |   4 +-
 Documentation/core-api/dma-attributes.rst |  18 ++++
 arch/powerpc/kernel/dma-iommu.c           |   4 +-
 block/blk-mq-dma.c                        |  15 ++-
 drivers/iommu/dma-iommu.c                 |  61 +++++------
 drivers/nvme/host/pci.c                   |  18 +++-
 drivers/virtio/virtio_ring.c              |   4 +-
 drivers/xen/swiotlb-xen.c                 |  21 +++-
 include/linux/blk-mq-dma.h                |   6 +-
 include/linux/blk_types.h                 |   2 +
 include/linux/dma-direct.h                |   2 -
 include/linux/dma-map-ops.h               |   8 +-
 include/linux/dma-mapping.h               |  33 ++++++
 include/linux/iommu-dma.h                 |  11 +-
 include/linux/kmsan.h                     |   9 +-
 include/trace/events/dma.h                |   9 +-
 kernel/dma/debug.c                        |  71 ++++---------
 kernel/dma/debug.h                        |  37 ++-----
 kernel/dma/direct.c                       |  22 +---
 kernel/dma/direct.h                       |  52 ++++++----
 kernel/dma/mapping.c                      | 117 +++++++++++++---------
 kernel/dma/ops_helpers.c                  |   6 +-
 mm/hmm.c                                  |  19 ++--
 mm/kmsan/hooks.c                          |   7 +-
 rust/kernel/dma.rs                        |   3 +
 tools/virtio/linux/kmsan.h                |   2 +-
 26 files changed, 306 insertions(+), 255 deletions(-)

-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 17:54:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 17:54:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082133.1442061 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umc9k-0002su-AI; Thu, 14 Aug 2025 17:54:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082133.1442061; Thu, 14 Aug 2025 17:54: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 1umc9k-0002sm-6n; Thu, 14 Aug 2025 17:54:28 +0000
Received: by outflank-mailman (input) for mailman id 1082133;
 Thu, 14 Aug 2025 17:54:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Hncw=22=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1umc9i-0002mL-RG
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 17:54:26 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org
 [2600:3c04:e001:324:0:1991:8:25])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b6e0292a-7937-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 19:54:25 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 6F76E61133;
 Thu, 14 Aug 2025 17:54:24 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 541FFC4CEED;
 Thu, 14 Aug 2025 17:54:23 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b6e0292a-7937-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755194064;
	bh=+6SuvKk/7U//cW4wXi0ADVlYqazqjfxTWHubS42t1as=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=SSyTqHjtBmbu6JSnA9djhWkisCUhS2upmgx7DjuBuZoB1zXCG1ppZ6qpNKaNig9+X
	 MQEyRo3KFjoASUpCwJ5AZ5g5sUyrS+Zlv62kaxjpjibOfYhUxurdg3PwnhN6GTkOqr
	 rxzmt8yr2UEApO9MPX+pIKB1IhbTqHHGFpMks53XC7SJW0W0yz9o0U3/E2RNKJ5IPL
	 nkHIfYL8k/F+tlNgXvvEAn9fnLRyaK2lsLECMAM4vdnB8BVOJXaFLu8kio3t/TCuAL
	 z5ifS26qY9vgMv1C4m9bQJoqndi6rxn6P1l5Yr9peXg6/GZVJF/SkKrbO2H28P/tA8
	 BgwFXQ6RbS0Aw==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v3 03/16] dma-debug: refactor to use physical addresses for page mapping
Date: Thu, 14 Aug 2025 20:53:54 +0300
Message-ID: <478d5b7135008b3c82f100faa9d3830839fc6562.1755193625.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755193625.git.leon@kernel.org>
References: <cover.1755193625.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

Convert the DMA debug infrastructure from page-based to physical address-based
mapping as a preparation to rely on physical address for DMA mapping routines.

The refactoring renames debug_dma_map_page() to debug_dma_map_phys() and
changes its signature to accept a phys_addr_t parameter instead of struct page
and offset. Similarly, debug_dma_unmap_page() becomes debug_dma_unmap_phys().
A new dma_debug_phy type is introduced to distinguish physical address mappings
from other debug entry types. All callers throughout the codebase are updated
to pass physical addresses directly, eliminating the need for page-to-physical
conversion in the debug layer.

This refactoring eliminates the need to convert between page pointers and
physical addresses in the debug layer, making the code more efficient and
consistent with the DMA mapping API's physical address focus.

Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 Documentation/core-api/dma-api.rst |  4 ++--
 kernel/dma/debug.c                 | 28 +++++++++++++++++-----------
 kernel/dma/debug.h                 | 16 +++++++---------
 kernel/dma/mapping.c               | 15 ++++++++-------
 4 files changed, 34 insertions(+), 29 deletions(-)

diff --git a/Documentation/core-api/dma-api.rst b/Documentation/core-api/dma-api.rst
index 3087bea715ed..ca75b3541679 100644
--- a/Documentation/core-api/dma-api.rst
+++ b/Documentation/core-api/dma-api.rst
@@ -761,7 +761,7 @@ example warning message may look like this::
 	[<ffffffff80235177>] find_busiest_group+0x207/0x8a0
 	[<ffffffff8064784f>] _spin_lock_irqsave+0x1f/0x50
 	[<ffffffff803c7ea3>] check_unmap+0x203/0x490
-	[<ffffffff803c8259>] debug_dma_unmap_page+0x49/0x50
+	[<ffffffff803c8259>] debug_dma_unmap_phys+0x49/0x50
 	[<ffffffff80485f26>] nv_tx_done_optimized+0xc6/0x2c0
 	[<ffffffff80486c13>] nv_nic_irq_optimized+0x73/0x2b0
 	[<ffffffff8026df84>] handle_IRQ_event+0x34/0x70
@@ -855,7 +855,7 @@ that a driver may be leaking mappings.
 dma-debug interface debug_dma_mapping_error() to debug drivers that fail
 to check DMA mapping errors on addresses returned by dma_map_single() and
 dma_map_page() interfaces. This interface clears a flag set by
-debug_dma_map_page() to indicate that dma_mapping_error() has been called by
+debug_dma_map_phys() to indicate that dma_mapping_error() has been called by
 the driver. When driver does unmap, debug_dma_unmap() checks the flag and if
 this flag is still set, prints warning message that includes call trace that
 leads up to the unmap. This interface can be called from dma_mapping_error()
diff --git a/kernel/dma/debug.c b/kernel/dma/debug.c
index e43c6de2bce4..da6734e3a4ce 100644
--- a/kernel/dma/debug.c
+++ b/kernel/dma/debug.c
@@ -39,6 +39,7 @@ enum {
 	dma_debug_sg,
 	dma_debug_coherent,
 	dma_debug_resource,
+	dma_debug_phy,
 };
 
 enum map_err_types {
@@ -141,6 +142,7 @@ static const char *type2name[] = {
 	[dma_debug_sg] = "scatter-gather",
 	[dma_debug_coherent] = "coherent",
 	[dma_debug_resource] = "resource",
+	[dma_debug_phy] = "phy",
 };
 
 static const char *dir2name[] = {
@@ -1201,9 +1203,8 @@ void debug_dma_map_single(struct device *dev, const void *addr,
 }
 EXPORT_SYMBOL(debug_dma_map_single);
 
-void debug_dma_map_page(struct device *dev, struct page *page, size_t offset,
-			size_t size, int direction, dma_addr_t dma_addr,
-			unsigned long attrs)
+void debug_dma_map_phys(struct device *dev, phys_addr_t phys, size_t size,
+		int direction, dma_addr_t dma_addr, unsigned long attrs)
 {
 	struct dma_debug_entry *entry;
 
@@ -1218,19 +1219,24 @@ void debug_dma_map_page(struct device *dev, struct page *page, size_t offset,
 		return;
 
 	entry->dev       = dev;
-	entry->type      = dma_debug_single;
-	entry->paddr	 = page_to_phys(page) + offset;
+	entry->type      = dma_debug_phy;
+	entry->paddr	 = phys;
 	entry->dev_addr  = dma_addr;
 	entry->size      = size;
 	entry->direction = direction;
 	entry->map_err_type = MAP_ERR_NOT_CHECKED;
 
-	check_for_stack(dev, page, offset);
+	if (!(attrs & DMA_ATTR_MMIO)) {
+		struct page *page = phys_to_page(phys);
+		size_t offset = offset_in_page(page);
 
-	if (!PageHighMem(page)) {
-		void *addr = page_address(page) + offset;
+		check_for_stack(dev, page, offset);
 
-		check_for_illegal_area(dev, addr, size);
+		if (!PageHighMem(page)) {
+			void *addr = page_address(page) + offset;
+
+			check_for_illegal_area(dev, addr, size);
+		}
 	}
 
 	add_dma_entry(entry, attrs);
@@ -1274,11 +1280,11 @@ void debug_dma_mapping_error(struct device *dev, dma_addr_t dma_addr)
 }
 EXPORT_SYMBOL(debug_dma_mapping_error);
 
-void debug_dma_unmap_page(struct device *dev, dma_addr_t dma_addr,
+void debug_dma_unmap_phys(struct device *dev, dma_addr_t dma_addr,
 			  size_t size, int direction)
 {
 	struct dma_debug_entry ref = {
-		.type           = dma_debug_single,
+		.type           = dma_debug_phy,
 		.dev            = dev,
 		.dev_addr       = dma_addr,
 		.size           = size,
diff --git a/kernel/dma/debug.h b/kernel/dma/debug.h
index f525197d3cae..76adb42bffd5 100644
--- a/kernel/dma/debug.h
+++ b/kernel/dma/debug.h
@@ -9,12 +9,11 @@
 #define _KERNEL_DMA_DEBUG_H
 
 #ifdef CONFIG_DMA_API_DEBUG
-extern void debug_dma_map_page(struct device *dev, struct page *page,
-			       size_t offset, size_t size,
-			       int direction, dma_addr_t dma_addr,
+extern void debug_dma_map_phys(struct device *dev, phys_addr_t phys,
+			       size_t size, int direction, dma_addr_t dma_addr,
 			       unsigned long attrs);
 
-extern void debug_dma_unmap_page(struct device *dev, dma_addr_t addr,
+extern void debug_dma_unmap_phys(struct device *dev, dma_addr_t addr,
 				 size_t size, int direction);
 
 extern void debug_dma_map_sg(struct device *dev, struct scatterlist *sg,
@@ -55,14 +54,13 @@ extern void debug_dma_sync_sg_for_device(struct device *dev,
 					 struct scatterlist *sg,
 					 int nelems, int direction);
 #else /* CONFIG_DMA_API_DEBUG */
-static inline void debug_dma_map_page(struct device *dev, struct page *page,
-				      size_t offset, size_t size,
-				      int direction, dma_addr_t dma_addr,
-				      unsigned long attrs)
+static inline void debug_dma_map_phys(struct device *dev, phys_addr_t phys,
+				      size_t size, int direction,
+				      dma_addr_t dma_addr, unsigned long attrs)
 {
 }
 
-static inline void debug_dma_unmap_page(struct device *dev, dma_addr_t addr,
+static inline void debug_dma_unmap_phys(struct device *dev, dma_addr_t addr,
 					size_t size, int direction)
 {
 }
diff --git a/kernel/dma/mapping.c b/kernel/dma/mapping.c
index 107e4a4d251d..4c1dfbabb8ae 100644
--- a/kernel/dma/mapping.c
+++ b/kernel/dma/mapping.c
@@ -157,6 +157,7 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
 		unsigned long attrs)
 {
 	const struct dma_map_ops *ops = get_dma_ops(dev);
+	phys_addr_t phys = page_to_phys(page) + offset;
 	dma_addr_t addr;
 
 	BUG_ON(!valid_dma_direction(dir));
@@ -165,16 +166,15 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
 		return DMA_MAPPING_ERROR;
 
 	if (dma_map_direct(dev, ops) ||
-	    arch_dma_map_page_direct(dev, page_to_phys(page) + offset + size))
+	    arch_dma_map_page_direct(dev, phys + size))
 		addr = dma_direct_map_page(dev, page, offset, size, dir, attrs);
 	else if (use_dma_iommu(dev))
 		addr = iommu_dma_map_page(dev, page, offset, size, dir, attrs);
 	else
 		addr = ops->map_page(dev, page, offset, size, dir, attrs);
 	kmsan_handle_dma(page, offset, size, dir);
-	trace_dma_map_page(dev, page_to_phys(page) + offset, addr, size, dir,
-			   attrs);
-	debug_dma_map_page(dev, page, offset, size, dir, addr, attrs);
+	trace_dma_map_page(dev, phys, addr, size, dir, attrs);
+	debug_dma_map_phys(dev, phys, size, dir, addr, attrs);
 
 	return addr;
 }
@@ -194,7 +194,7 @@ void dma_unmap_page_attrs(struct device *dev, dma_addr_t addr, size_t size,
 	else
 		ops->unmap_page(dev, addr, size, dir, attrs);
 	trace_dma_unmap_page(dev, addr, size, dir, attrs);
-	debug_dma_unmap_page(dev, addr, size, dir);
+	debug_dma_unmap_phys(dev, addr, size, dir);
 }
 EXPORT_SYMBOL(dma_unmap_page_attrs);
 
@@ -712,7 +712,8 @@ struct page *dma_alloc_pages(struct device *dev, size_t size,
 	if (page) {
 		trace_dma_alloc_pages(dev, page_to_virt(page), *dma_handle,
 				      size, dir, gfp, 0);
-		debug_dma_map_page(dev, page, 0, size, dir, *dma_handle, 0);
+		debug_dma_map_phys(dev, page_to_phys(page), size, dir,
+				   *dma_handle, 0);
 	} else {
 		trace_dma_alloc_pages(dev, NULL, 0, size, dir, gfp, 0);
 	}
@@ -738,7 +739,7 @@ void dma_free_pages(struct device *dev, size_t size, struct page *page,
 		dma_addr_t dma_handle, enum dma_data_direction dir)
 {
 	trace_dma_free_pages(dev, page_to_virt(page), dma_handle, size, dir, 0);
-	debug_dma_unmap_page(dev, dma_handle, size, dir);
+	debug_dma_unmap_phys(dev, dma_handle, size, dir);
 	__dma_free_pages(dev, size, page, dma_handle, dir);
 }
 EXPORT_SYMBOL_GPL(dma_free_pages);
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 17:54:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 17:54:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082134.1442071 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umc9n-0003Ak-JY; Thu, 14 Aug 2025 17:54:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082134.1442071; Thu, 14 Aug 2025 17:54:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umc9n-0003AR-GU; Thu, 14 Aug 2025 17:54:31 +0000
Received: by outflank-mailman (input) for mailman id 1082134;
 Thu, 14 Aug 2025 17:54:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Hncw=22=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1umc9m-0002mL-1X
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 17:54:30 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b9471a88-7937-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 19:54:29 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 75DE8601E0;
 Thu, 14 Aug 2025 17:54:28 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8F8C1C4CEED;
 Thu, 14 Aug 2025 17:54:27 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b9471a88-7937-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755194068;
	bh=/KA5/iirzA+7NBo2WhreWFarQonN7Bxg4iw8kozROnk=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=EOeexjxPS/6ckwAPFRbfEI6in/li8Umj4rsGNm9PozGB9vSpZDA0l2HVvxKXWJY0H
	 c9kRUP//VlmtqQDo7vP2pT9qUIq35CfPoyCVtFUgYbGTuqU/IrXxy5Zis4lOPAfKpv
	 Qn42KxzqThq/CBCoqG+x30f0YbctMymqllyLmd8r41SkZLk0a4Vld+fYgdMxy/D7oK
	 KkD8kBg+gl3/b6HrQsdWNvwrzee1F50J0L4mqfd/q98lj6BCMP40rfPDepY0NoMJLi
	 /vr2KcIfm8mHX5eJ4IXShqV3DtPJ2Y2dAIyk9uE1jeVq3oTEm0AUda85Mgz4J38cN8
	 S/2gU/vm5nOng==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v3 04/16] dma-mapping: rename trace_dma_*map_page to trace_dma_*map_phys
Date: Thu, 14 Aug 2025 20:53:55 +0300
Message-ID: <d7c9b5bedd4bacd78490799917948192dd537ca7.1755193625.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755193625.git.leon@kernel.org>
References: <cover.1755193625.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

As a preparation for following map_page -> map_phys API conversion,
let's rename trace_dma_*map_page() to be trace_dma_*map_phys().

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 include/trace/events/dma.h | 4 ++--
 kernel/dma/mapping.c       | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/include/trace/events/dma.h b/include/trace/events/dma.h
index ee90d6f1dcf3..84416c7d6bfa 100644
--- a/include/trace/events/dma.h
+++ b/include/trace/events/dma.h
@@ -72,7 +72,7 @@ DEFINE_EVENT(dma_map, name, \
 		 size_t size, enum dma_data_direction dir, unsigned long attrs), \
 	TP_ARGS(dev, phys_addr, dma_addr, size, dir, attrs))
 
-DEFINE_MAP_EVENT(dma_map_page);
+DEFINE_MAP_EVENT(dma_map_phys);
 DEFINE_MAP_EVENT(dma_map_resource);
 
 DECLARE_EVENT_CLASS(dma_unmap,
@@ -110,7 +110,7 @@ DEFINE_EVENT(dma_unmap, name, \
 		 enum dma_data_direction dir, unsigned long attrs), \
 	TP_ARGS(dev, addr, size, dir, attrs))
 
-DEFINE_UNMAP_EVENT(dma_unmap_page);
+DEFINE_UNMAP_EVENT(dma_unmap_phys);
 DEFINE_UNMAP_EVENT(dma_unmap_resource);
 
 DECLARE_EVENT_CLASS(dma_alloc_class,
diff --git a/kernel/dma/mapping.c b/kernel/dma/mapping.c
index 4c1dfbabb8ae..fe1f0da6dc50 100644
--- a/kernel/dma/mapping.c
+++ b/kernel/dma/mapping.c
@@ -173,7 +173,7 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
 	else
 		addr = ops->map_page(dev, page, offset, size, dir, attrs);
 	kmsan_handle_dma(page, offset, size, dir);
-	trace_dma_map_page(dev, phys, addr, size, dir, attrs);
+	trace_dma_map_phys(dev, phys, addr, size, dir, attrs);
 	debug_dma_map_phys(dev, phys, size, dir, addr, attrs);
 
 	return addr;
@@ -193,7 +193,7 @@ void dma_unmap_page_attrs(struct device *dev, dma_addr_t addr, size_t size,
 		iommu_dma_unmap_page(dev, addr, size, dir, attrs);
 	else
 		ops->unmap_page(dev, addr, size, dir, attrs);
-	trace_dma_unmap_page(dev, addr, size, dir, attrs);
+	trace_dma_unmap_phys(dev, addr, size, dir, attrs);
 	debug_dma_unmap_phys(dev, addr, size, dir);
 }
 EXPORT_SYMBOL(dma_unmap_page_attrs);
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 17:54:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 17:54:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082137.1442081 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umc9s-0003Yt-Sm; Thu, 14 Aug 2025 17:54:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082137.1442081; Thu, 14 Aug 2025 17:54: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 1umc9s-0003Y8-O9; Thu, 14 Aug 2025 17:54:36 +0000
Received: by outflank-mailman (input) for mailman id 1082137;
 Thu, 14 Aug 2025 17:54:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Hncw=22=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1umc9r-0002OV-4S
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 17:54:35 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org
 [2600:3c04:e001:324:0:1991:8:25])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bb904095-7937-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 19:54:33 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 51186601D8;
 Thu, 14 Aug 2025 17:54:32 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6E4C7C4CEF4;
 Thu, 14 Aug 2025 17:54:31 +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>
X-Inumbo-ID: bb904095-7937-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755194072;
	bh=0MhcGdVdXvKtqKaQ8KaQcBZJnClPr0/vCjOFn/qCf0g=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=GiDx2YUAvdSAgdlNedcslwbPWUjIzBCh3H4y4Z2cOp+Za2TXJshVjl0dRbygvJ6fm
	 w4pwmjvnGMtLaeWgVgvSrwVZS4eKaY0eu1ewavbC/hKQ/HDxUGqrtI63NTSsINiqAo
	 B3N0EibDob/Ah5ZvgcmHmf1FmzrR4VW5fnpzgourjkfZUXlvT9U33FbDnbj5mhQ+ki
	 kybEqlGmRFj7sXpjJkISBnna9ohQzWpq6yGNawv36+FjVbNXwqIivN32e/FyqrDjU+
	 9JdIiLz3vmtHul2VhTtnInFiLRRKdhfQ/3K+QZv14C1JTDouJBSGFbjxpROdID/txT
	 DgAY4TGXRn43Q==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v3 05/16] iommu/dma: rename iommu_dma_*map_page to iommu_dma_*map_phys
Date: Thu, 14 Aug 2025 20:53:56 +0300
Message-ID: <66e7cc6854e4e40278b598b38e0c4d49d7fcec91.1755193625.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755193625.git.leon@kernel.org>
References: <cover.1755193625.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

Rename the IOMMU DMA mapping functions to better reflect their actual
calling convention. The functions iommu_dma_map_page() and
iommu_dma_unmap_page() are renamed to iommu_dma_map_phys() and
iommu_dma_unmap_phys() respectively, as they already operate on physical
addresses rather than page structures.

The calling convention changes from accepting (struct page *page,
unsigned long offset) to (phys_addr_t phys), which eliminates the need
for page-to-physical address conversion within the functions. This
renaming prepares for the broader DMA API conversion from page-based
to physical address-based mapping throughout the kernel.

All callers are updated to pass physical addresses directly, including
dma_map_page_attrs(), scatterlist mapping functions, and DMA page
allocation helpers. The change simplifies the code by removing the
page_to_phys() + offset calculation that was previously done inside
the IOMMU functions.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 drivers/iommu/dma-iommu.c | 14 ++++++--------
 include/linux/iommu-dma.h |  7 +++----
 kernel/dma/mapping.c      |  4 ++--
 kernel/dma/ops_helpers.c  |  6 +++---
 4 files changed, 14 insertions(+), 17 deletions(-)

diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
index e1185ba73e23..aea119f32f96 100644
--- a/drivers/iommu/dma-iommu.c
+++ b/drivers/iommu/dma-iommu.c
@@ -1195,11 +1195,9 @@ static inline size_t iova_unaligned(struct iova_domain *iovad, phys_addr_t phys,
 	return iova_offset(iovad, phys | size);
 }
 
-dma_addr_t iommu_dma_map_page(struct device *dev, struct page *page,
-	      unsigned long offset, size_t size, enum dma_data_direction dir,
-	      unsigned long attrs)
+dma_addr_t iommu_dma_map_phys(struct device *dev, phys_addr_t phys, size_t size,
+		enum dma_data_direction dir, unsigned long attrs)
 {
-	phys_addr_t phys = page_to_phys(page) + offset;
 	bool coherent = dev_is_dma_coherent(dev);
 	int prot = dma_info_to_prot(dir, coherent, attrs);
 	struct iommu_domain *domain = iommu_get_dma_domain(dev);
@@ -1227,7 +1225,7 @@ dma_addr_t iommu_dma_map_page(struct device *dev, struct page *page,
 	return iova;
 }
 
-void iommu_dma_unmap_page(struct device *dev, dma_addr_t dma_handle,
+void iommu_dma_unmap_phys(struct device *dev, dma_addr_t dma_handle,
 		size_t size, enum dma_data_direction dir, unsigned long attrs)
 {
 	struct iommu_domain *domain = iommu_get_dma_domain(dev);
@@ -1346,7 +1344,7 @@ static void iommu_dma_unmap_sg_swiotlb(struct device *dev, struct scatterlist *s
 	int i;
 
 	for_each_sg(sg, s, nents, i)
-		iommu_dma_unmap_page(dev, sg_dma_address(s),
+		iommu_dma_unmap_phys(dev, sg_dma_address(s),
 				sg_dma_len(s), dir, attrs);
 }
 
@@ -1359,8 +1357,8 @@ static int iommu_dma_map_sg_swiotlb(struct device *dev, struct scatterlist *sg,
 	sg_dma_mark_swiotlb(sg);
 
 	for_each_sg(sg, s, nents, i) {
-		sg_dma_address(s) = iommu_dma_map_page(dev, sg_page(s),
-				s->offset, s->length, dir, attrs);
+		sg_dma_address(s) = iommu_dma_map_phys(dev, sg_phys(s),
+				s->length, dir, attrs);
 		if (sg_dma_address(s) == DMA_MAPPING_ERROR)
 			goto out_unmap;
 		sg_dma_len(s) = s->length;
diff --git a/include/linux/iommu-dma.h b/include/linux/iommu-dma.h
index 508beaa44c39..485bdffed988 100644
--- a/include/linux/iommu-dma.h
+++ b/include/linux/iommu-dma.h
@@ -21,10 +21,9 @@ static inline bool use_dma_iommu(struct device *dev)
 }
 #endif /* CONFIG_IOMMU_DMA */
 
-dma_addr_t iommu_dma_map_page(struct device *dev, struct page *page,
-		unsigned long offset, size_t size, enum dma_data_direction dir,
-		unsigned long attrs);
-void iommu_dma_unmap_page(struct device *dev, dma_addr_t dma_handle,
+dma_addr_t iommu_dma_map_phys(struct device *dev, phys_addr_t phys, size_t size,
+		enum dma_data_direction dir, unsigned long attrs);
+void iommu_dma_unmap_phys(struct device *dev, dma_addr_t dma_handle,
 		size_t size, enum dma_data_direction dir, unsigned long attrs);
 int iommu_dma_map_sg(struct device *dev, struct scatterlist *sg, int nents,
 		enum dma_data_direction dir, unsigned long attrs);
diff --git a/kernel/dma/mapping.c b/kernel/dma/mapping.c
index fe1f0da6dc50..58482536db9b 100644
--- a/kernel/dma/mapping.c
+++ b/kernel/dma/mapping.c
@@ -169,7 +169,7 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
 	    arch_dma_map_page_direct(dev, phys + size))
 		addr = dma_direct_map_page(dev, page, offset, size, dir, attrs);
 	else if (use_dma_iommu(dev))
-		addr = iommu_dma_map_page(dev, page, offset, size, dir, attrs);
+		addr = iommu_dma_map_phys(dev, phys, size, dir, attrs);
 	else
 		addr = ops->map_page(dev, page, offset, size, dir, attrs);
 	kmsan_handle_dma(page, offset, size, dir);
@@ -190,7 +190,7 @@ void dma_unmap_page_attrs(struct device *dev, dma_addr_t addr, size_t size,
 	    arch_dma_unmap_page_direct(dev, addr + size))
 		dma_direct_unmap_page(dev, addr, size, dir, attrs);
 	else if (use_dma_iommu(dev))
-		iommu_dma_unmap_page(dev, addr, size, dir, attrs);
+		iommu_dma_unmap_phys(dev, addr, size, dir, attrs);
 	else
 		ops->unmap_page(dev, addr, size, dir, attrs);
 	trace_dma_unmap_phys(dev, addr, size, dir, attrs);
diff --git a/kernel/dma/ops_helpers.c b/kernel/dma/ops_helpers.c
index 9afd569eadb9..6f9d604d9d40 100644
--- a/kernel/dma/ops_helpers.c
+++ b/kernel/dma/ops_helpers.c
@@ -72,8 +72,8 @@ struct page *dma_common_alloc_pages(struct device *dev, size_t size,
 		return NULL;
 
 	if (use_dma_iommu(dev))
-		*dma_handle = iommu_dma_map_page(dev, page, 0, size, dir,
-						 DMA_ATTR_SKIP_CPU_SYNC);
+		*dma_handle = iommu_dma_map_phys(dev, page_to_phys(page), size,
+						 dir, DMA_ATTR_SKIP_CPU_SYNC);
 	else
 		*dma_handle = ops->map_page(dev, page, 0, size, dir,
 					    DMA_ATTR_SKIP_CPU_SYNC);
@@ -92,7 +92,7 @@ void dma_common_free_pages(struct device *dev, size_t size, struct page *page,
 	const struct dma_map_ops *ops = get_dma_ops(dev);
 
 	if (use_dma_iommu(dev))
-		iommu_dma_unmap_page(dev, dma_handle, size, dir,
+		iommu_dma_unmap_phys(dev, dma_handle, size, dir,
 				     DMA_ATTR_SKIP_CPU_SYNC);
 	else if (ops->unmap_page)
 		ops->unmap_page(dev, dma_handle, size, dir,
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 17:54:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 17:54:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082140.1442090 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umc9v-0003qW-4O; Thu, 14 Aug 2025 17:54:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082140.1442090; Thu, 14 Aug 2025 17:54: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 1umc9v-0003qP-1X; Thu, 14 Aug 2025 17:54:39 +0000
Received: by outflank-mailman (input) for mailman id 1082140;
 Thu, 14 Aug 2025 17:54:38 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Hncw=22=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1umc9t-0002mL-VA
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 17:54:37 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id be0990f9-7937-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 19:54:37 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 731A16112C;
 Thu, 14 Aug 2025 17:54:36 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 73FB6C4CEF1;
 Thu, 14 Aug 2025 17:54:35 +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>
X-Inumbo-ID: be0990f9-7937-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755194076;
	bh=mXPBKGOTAXMaA8YnIACrT4VeK6ColaZH6f/lOi0T5+M=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=pIdx8ZwArqOnC8H1WXZmJQviGN3PGljxwaImYvA1qdYzR2oZxq3BM7DrGyd+Zf4kP
	 Rd3GxG3TTrXgG4p3B8bnSvGoXzofBO6pR9DN5xqqJUqBkNiUODxcew5WfU2rcNXmuA
	 msiVJMJNHMiWaw7xktQtXRAejc40yXlJLZHm+8dGVrXFyuKeW1Gzk10A2714lELSbu
	 mW6vabq71pTXUgj0NwjVhP65AQZCzZMov1zm1TCRq9mnHTR7T1OH8xQrOi6VGMm03z
	 QAlg6gJCETG/pVwnhN3rm4ne2MlguCRzIbsgIodAK+qQM4i4CRjQu8fdnlnPNos/O4
	 PwKx8Ppt/xhjA==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v3 02/16] iommu/dma: implement DMA_ATTR_MMIO for dma_iova_link().
Date: Thu, 14 Aug 2025 20:53:53 +0300
Message-ID: <62d9a6c3ca03037631f6d0640ebec5fbac41d547.1755193625.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755193625.git.leon@kernel.org>
References: <cover.1755193625.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

This will replace the hacky use of DMA_ATTR_SKIP_CPU_SYNC to avoid
touching the possibly non-KVA MMIO memory.

Also correct the incorrect caching attribute for the IOMMU, MMIO
memory should not be cachable inside the IOMMU mapping or it can
possibly create system problems. Set IOMMU_MMIO for DMA_ATTR_MMIO.

Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 drivers/iommu/dma-iommu.c | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
index ea2ef53bd4fe..e1185ba73e23 100644
--- a/drivers/iommu/dma-iommu.c
+++ b/drivers/iommu/dma-iommu.c
@@ -724,7 +724,12 @@ static int iommu_dma_init_domain(struct iommu_domain *domain, struct device *dev
 static int dma_info_to_prot(enum dma_data_direction dir, bool coherent,
 		     unsigned long attrs)
 {
-	int prot = coherent ? IOMMU_CACHE : 0;
+	int prot;
+
+	if (attrs & DMA_ATTR_MMIO)
+		prot = IOMMU_MMIO;
+	else
+		prot = coherent ? IOMMU_CACHE : 0;
 
 	if (attrs & DMA_ATTR_PRIVILEGED)
 		prot |= IOMMU_PRIV;
@@ -1838,12 +1843,13 @@ static int __dma_iova_link(struct device *dev, dma_addr_t addr,
 		unsigned long attrs)
 {
 	bool coherent = dev_is_dma_coherent(dev);
+	int prot = dma_info_to_prot(dir, coherent, attrs);
 
-	if (!coherent && !(attrs & DMA_ATTR_SKIP_CPU_SYNC))
+	if (!coherent && !(attrs & (DMA_ATTR_SKIP_CPU_SYNC | DMA_ATTR_MMIO)))
 		arch_sync_dma_for_device(phys, size, dir);
 
 	return iommu_map_nosync(iommu_get_dma_domain(dev), addr, phys, size,
-			dma_info_to_prot(dir, coherent, attrs), GFP_ATOMIC);
+			prot, GFP_ATOMIC);
 }
 
 static int iommu_dma_iova_bounce_and_link(struct device *dev, dma_addr_t addr,
@@ -1949,9 +1955,13 @@ int dma_iova_link(struct device *dev, struct dma_iova_state *state,
 		return -EIO;
 
 	if (dev_use_swiotlb(dev, size, dir) &&
-	    iova_unaligned(iovad, phys, size))
+	    iova_unaligned(iovad, phys, size)) {
+		if (attrs & DMA_ATTR_MMIO)
+			return -EPERM;
+
 		return iommu_dma_iova_link_swiotlb(dev, state, phys, offset,
 				size, dir, attrs);
+	}
 
 	return __dma_iova_link(dev, state->addr + offset - iova_start_pad,
 			phys - iova_start_pad,
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 17:54:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 17:54:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082148.1442101 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umcA0-0004OM-J7; Thu, 14 Aug 2025 17:54:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082148.1442101; Thu, 14 Aug 2025 17:54:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umcA0-0004O8-FN; Thu, 14 Aug 2025 17:54:44 +0000
Received: by outflank-mailman (input) for mailman id 1082148;
 Thu, 14 Aug 2025 17:54:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Hncw=22=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1umc9z-0002OV-Mo
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 17:54:43 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c079c21d-7937-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 19:54:41 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 3B05E5C721E;
 Thu, 14 Aug 2025 17:54:40 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 39032C4CEF4;
 Thu, 14 Aug 2025 17:54:39 +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>
X-Inumbo-ID: c079c21d-7937-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755194079;
	bh=vOnEIp8ay7pVjNUnKwOoXsO+91/AeyefXChuEBTVE5g=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=u8LGJqu+DZN6N8tja2j4y/HEVoIOR0CZMHqy4m3LzlYqq5xImycGK/2Y4YT8bniPG
	 sPtHNVs9IQrDANf6jN+Goaps+cFyMEgAS8AUtBqvz68pr4+UK/mIciN8zTQNjlw7rv
	 VZzHwtnevpJujJ0fbLrAsrcY5fh5ryrzCMNxF7kk/RppsprXCriYpXtwICnTqnTE1X
	 O1hvJ4io1gg8Lxn8sfw3WbqunbEm6vYfxIUKrId7Gx9s8OLuP3HisrSj4l89fkuf3v
	 +RutPVha9afaNWYAy5o2/4i3CJQuZAPw2GBzK30xdwrfser0QnF8gQl3D+QGY7LLr8
	 lfEb6x2yaP/SA==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v3 07/16] dma-mapping: convert dma_direct_*map_page to be phys_addr_t based
Date: Thu, 14 Aug 2025 20:53:58 +0300
Message-ID: <3faa9c978e243a904ffe01496148c4563dc9274e.1755193625.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755193625.git.leon@kernel.org>
References: <cover.1755193625.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

Convert the DMA direct mapping functions to accept physical addresses
directly instead of page+offset parameters. The functions were already
operating on physical addresses internally, so this change eliminates
the redundant page-to-physical conversion at the API boundary.

The functions dma_direct_map_page() and dma_direct_unmap_page() are
renamed to dma_direct_map_phys() and dma_direct_unmap_phys() respectively,
with their calling convention changed from (struct page *page,
unsigned long offset) to (phys_addr_t phys).

Architecture-specific functions arch_dma_map_page_direct() and
arch_dma_unmap_page_direct() are similarly renamed to
arch_dma_map_phys_direct() and arch_dma_unmap_phys_direct().

The is_pci_p2pdma_page() checks are replaced with DMA_ATTR_MMIO checks
to allow integration with dma_direct_map_resource and dma_direct_map_phys()
is extended to support MMIO path either.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 arch/powerpc/kernel/dma-iommu.c |  4 +--
 include/linux/dma-map-ops.h     |  8 ++---
 kernel/dma/direct.c             |  6 ++--
 kernel/dma/direct.h             | 52 +++++++++++++++++++++------------
 kernel/dma/mapping.c            |  8 ++---
 5 files changed, 46 insertions(+), 32 deletions(-)

diff --git a/arch/powerpc/kernel/dma-iommu.c b/arch/powerpc/kernel/dma-iommu.c
index 4d64a5db50f3..0359ab72cd3b 100644
--- a/arch/powerpc/kernel/dma-iommu.c
+++ b/arch/powerpc/kernel/dma-iommu.c
@@ -14,7 +14,7 @@
 #define can_map_direct(dev, addr) \
 	((dev)->bus_dma_limit >= phys_to_dma((dev), (addr)))
 
-bool arch_dma_map_page_direct(struct device *dev, phys_addr_t addr)
+bool arch_dma_map_phys_direct(struct device *dev, phys_addr_t addr)
 {
 	if (likely(!dev->bus_dma_limit))
 		return false;
@@ -24,7 +24,7 @@ bool arch_dma_map_page_direct(struct device *dev, phys_addr_t addr)
 
 #define is_direct_handle(dev, h) ((h) >= (dev)->archdata.dma_offset)
 
-bool arch_dma_unmap_page_direct(struct device *dev, dma_addr_t dma_handle)
+bool arch_dma_unmap_phys_direct(struct device *dev, dma_addr_t dma_handle)
 {
 	if (likely(!dev->bus_dma_limit))
 		return false;
diff --git a/include/linux/dma-map-ops.h b/include/linux/dma-map-ops.h
index f48e5fb88bd5..71f5b3025415 100644
--- a/include/linux/dma-map-ops.h
+++ b/include/linux/dma-map-ops.h
@@ -392,15 +392,15 @@ void *arch_dma_set_uncached(void *addr, size_t size);
 void arch_dma_clear_uncached(void *addr, size_t size);
 
 #ifdef CONFIG_ARCH_HAS_DMA_MAP_DIRECT
-bool arch_dma_map_page_direct(struct device *dev, phys_addr_t addr);
-bool arch_dma_unmap_page_direct(struct device *dev, dma_addr_t dma_handle);
+bool arch_dma_map_phys_direct(struct device *dev, phys_addr_t addr);
+bool arch_dma_unmap_phys_direct(struct device *dev, dma_addr_t dma_handle);
 bool arch_dma_map_sg_direct(struct device *dev, struct scatterlist *sg,
 		int nents);
 bool arch_dma_unmap_sg_direct(struct device *dev, struct scatterlist *sg,
 		int nents);
 #else
-#define arch_dma_map_page_direct(d, a)		(false)
-#define arch_dma_unmap_page_direct(d, a)	(false)
+#define arch_dma_map_phys_direct(d, a)		(false)
+#define arch_dma_unmap_phys_direct(d, a)	(false)
 #define arch_dma_map_sg_direct(d, s, n)		(false)
 #define arch_dma_unmap_sg_direct(d, s, n)	(false)
 #endif
diff --git a/kernel/dma/direct.c b/kernel/dma/direct.c
index 24c359d9c879..fa75e3070073 100644
--- a/kernel/dma/direct.c
+++ b/kernel/dma/direct.c
@@ -453,7 +453,7 @@ void dma_direct_unmap_sg(struct device *dev, struct scatterlist *sgl,
 		if (sg_dma_is_bus_address(sg))
 			sg_dma_unmark_bus_address(sg);
 		else
-			dma_direct_unmap_page(dev, sg->dma_address,
+			dma_direct_unmap_phys(dev, sg->dma_address,
 					      sg_dma_len(sg), dir, attrs);
 	}
 }
@@ -476,8 +476,8 @@ int dma_direct_map_sg(struct device *dev, struct scatterlist *sgl, int nents,
 			 */
 			break;
 		case PCI_P2PDMA_MAP_NONE:
-			sg->dma_address = dma_direct_map_page(dev, sg_page(sg),
-					sg->offset, sg->length, dir, attrs);
+			sg->dma_address = dma_direct_map_phys(dev, sg_phys(sg),
+					sg->length, dir, attrs);
 			if (sg->dma_address == DMA_MAPPING_ERROR) {
 				ret = -EIO;
 				goto out_unmap;
diff --git a/kernel/dma/direct.h b/kernel/dma/direct.h
index d2c0b7e632fc..92dbadcd3b2f 100644
--- a/kernel/dma/direct.h
+++ b/kernel/dma/direct.h
@@ -80,42 +80,56 @@ static inline void dma_direct_sync_single_for_cpu(struct device *dev,
 		arch_dma_mark_clean(paddr, size);
 }
 
-static inline dma_addr_t dma_direct_map_page(struct device *dev,
-		struct page *page, unsigned long offset, size_t size,
-		enum dma_data_direction dir, unsigned long attrs)
+static inline dma_addr_t dma_direct_map_phys(struct device *dev,
+		phys_addr_t phys, size_t size, enum dma_data_direction dir,
+		unsigned long attrs)
 {
-	phys_addr_t phys = page_to_phys(page) + offset;
-	dma_addr_t dma_addr = phys_to_dma(dev, phys);
+	dma_addr_t dma_addr;
+	bool capable;
 
 	if (is_swiotlb_force_bounce(dev)) {
-		if (is_pci_p2pdma_page(page))
-			return DMA_MAPPING_ERROR;
+		if (attrs & DMA_ATTR_MMIO)
+			goto err_overflow;
+
 		return swiotlb_map(dev, phys, size, dir, attrs);
 	}
 
-	if (unlikely(!dma_capable(dev, dma_addr, size, true)) ||
-	    dma_kmalloc_needs_bounce(dev, size, dir)) {
-		if (is_pci_p2pdma_page(page))
-			return DMA_MAPPING_ERROR;
-		if (is_swiotlb_active(dev))
+	if (attrs & DMA_ATTR_MMIO)
+		dma_addr = phys;
+	else
+		dma_addr = phys_to_dma(dev, phys);
+
+	capable = dma_capable(dev, dma_addr, size, !(attrs & DMA_ATTR_MMIO));
+	if (unlikely(!capable) || dma_kmalloc_needs_bounce(dev, size, dir)) {
+		if (is_swiotlb_active(dev) && !(attrs & DMA_ATTR_MMIO))
 			return swiotlb_map(dev, phys, size, dir, attrs);
 
-		dev_WARN_ONCE(dev, 1,
-			     "DMA addr %pad+%zu overflow (mask %llx, bus limit %llx).\n",
-			     &dma_addr, size, *dev->dma_mask, dev->bus_dma_limit);
-		return DMA_MAPPING_ERROR;
+		goto err_overflow;
 	}
 
-	if (!dev_is_dma_coherent(dev) && !(attrs & DMA_ATTR_SKIP_CPU_SYNC))
+	if (!dev_is_dma_coherent(dev) &&
+	    !(attrs & (DMA_ATTR_SKIP_CPU_SYNC | DMA_ATTR_MMIO)))
 		arch_sync_dma_for_device(phys, size, dir);
 	return dma_addr;
+
+err_overflow:
+	dev_WARN_ONCE(
+		dev, 1,
+		"DMA addr %pad+%zu overflow (mask %llx, bus limit %llx).\n",
+		&dma_addr, size, *dev->dma_mask, dev->bus_dma_limit);
+	return DMA_MAPPING_ERROR;
 }
 
-static inline void dma_direct_unmap_page(struct device *dev, dma_addr_t addr,
+static inline void dma_direct_unmap_phys(struct device *dev, dma_addr_t addr,
 		size_t size, enum dma_data_direction dir, unsigned long attrs)
 {
-	phys_addr_t phys = dma_to_phys(dev, addr);
+	phys_addr_t phys;
+
+	if (attrs & DMA_ATTR_MMIO)
+		/* nothing to do: uncached and no swiotlb */
+		return;
 
+	phys = dma_to_phys(dev, addr);
 	if (!(attrs & DMA_ATTR_SKIP_CPU_SYNC))
 		dma_direct_sync_single_for_cpu(dev, addr, size, dir);
 
diff --git a/kernel/dma/mapping.c b/kernel/dma/mapping.c
index 58482536db9b..80481a873340 100644
--- a/kernel/dma/mapping.c
+++ b/kernel/dma/mapping.c
@@ -166,8 +166,8 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
 		return DMA_MAPPING_ERROR;
 
 	if (dma_map_direct(dev, ops) ||
-	    arch_dma_map_page_direct(dev, phys + size))
-		addr = dma_direct_map_page(dev, page, offset, size, dir, attrs);
+	    arch_dma_map_phys_direct(dev, phys + size))
+		addr = dma_direct_map_phys(dev, phys, size, dir, attrs);
 	else if (use_dma_iommu(dev))
 		addr = iommu_dma_map_phys(dev, phys, size, dir, attrs);
 	else
@@ -187,8 +187,8 @@ void dma_unmap_page_attrs(struct device *dev, dma_addr_t addr, size_t size,
 
 	BUG_ON(!valid_dma_direction(dir));
 	if (dma_map_direct(dev, ops) ||
-	    arch_dma_unmap_page_direct(dev, addr + size))
-		dma_direct_unmap_page(dev, addr, size, dir, attrs);
+	    arch_dma_unmap_phys_direct(dev, addr + size))
+		dma_direct_unmap_phys(dev, addr, size, dir, attrs);
 	else if (use_dma_iommu(dev))
 		iommu_dma_unmap_phys(dev, addr, size, dir, attrs);
 	else
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 17:54:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 17:54:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082151.1442111 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umcA3-0004mT-US; Thu, 14 Aug 2025 17:54:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082151.1442111; Thu, 14 Aug 2025 17:54: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 1umcA3-0004mE-QR; Thu, 14 Aug 2025 17:54:47 +0000
Received: by outflank-mailman (input) for mailman id 1082151;
 Thu, 14 Aug 2025 17:54:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Hncw=22=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1umcA2-0002mL-A0
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 17:54:46 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org
 [2604:1380:45d1:ec00::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c2e620da-7937-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 19:54:45 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id DD020A573EF;
 Thu, 14 Aug 2025 17:54:43 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id D180CC4CEEF;
 Thu, 14 Aug 2025 17:54:42 +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>
X-Inumbo-ID: c2e620da-7937-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755194083;
	bh=R7qBwFAm9izbrLVrPILQ9w37/FtDeJtTkRXoDvtS1CI=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=iIPdKT0aBIcYkeb/LiN0KqK3Xncf9eZZsRXFgIanpuSaYiJCb/1rKUprk4/hACv32
	 BbT/YJJLOF1rEPaztLA0oAft4rdkYqJNcaKExvnXyxrjj7rUbZ403eWhTwUzzvGabi
	 afIjuWmko6gtMe1wRQTcqQriX67Lbt8bIC9fmmy6DUCNJKHtMEbqhw+L7qlcixBxn7
	 fjPsiNM1dAf4aRYRmpsTtAuBGONpGleKAROv8v+xxiaCx8/8uPPJxUSnIphNqZvuBJ
	 CCEQXBAUhxVm9aEvfsThLZHa6lCGABl4QFyBMxqqn6Dy4rhPlrIWIYiWRRD23CPfu6
	 oSidLdWzGZhIw==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v3 08/16] kmsan: convert kmsan_handle_dma to use physical addresses
Date: Thu, 14 Aug 2025 20:53:59 +0300
Message-ID: <38de1c5ffb567c5705826f14742fcaf54522c083.1755193625.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755193625.git.leon@kernel.org>
References: <cover.1755193625.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

Convert the KMSAN DMA handling function from page-based to physical
address-based interface.

The refactoring renames kmsan_handle_dma() parameters from accepting
(struct page *page, size_t offset, size_t size) to (phys_addr_t phys,
size_t size). The existing semantics where callers are expected to
provide only kmap memory is continued here.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 drivers/virtio/virtio_ring.c | 4 ++--
 include/linux/kmsan.h        | 9 ++++-----
 kernel/dma/mapping.c         | 3 ++-
 mm/kmsan/hooks.c             | 7 ++++---
 tools/virtio/linux/kmsan.h   | 2 +-
 5 files changed, 13 insertions(+), 12 deletions(-)

diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c
index f5062061c408..c147145a6593 100644
--- a/drivers/virtio/virtio_ring.c
+++ b/drivers/virtio/virtio_ring.c
@@ -378,7 +378,7 @@ static int vring_map_one_sg(const struct vring_virtqueue *vq, struct scatterlist
 		 * is initialized by the hardware. Explicitly check/unpoison it
 		 * depending on the direction.
 		 */
-		kmsan_handle_dma(sg_page(sg), sg->offset, sg->length, direction);
+		kmsan_handle_dma(sg_phys(sg), sg->length, direction);
 		*addr = (dma_addr_t)sg_phys(sg);
 		return 0;
 	}
@@ -3157,7 +3157,7 @@ dma_addr_t virtqueue_dma_map_single_attrs(struct virtqueue *_vq, void *ptr,
 	struct vring_virtqueue *vq = to_vvq(_vq);
 
 	if (!vq->use_dma_api) {
-		kmsan_handle_dma(virt_to_page(ptr), offset_in_page(ptr), size, dir);
+		kmsan_handle_dma(virt_to_phys(ptr), size, dir);
 		return (dma_addr_t)virt_to_phys(ptr);
 	}
 
diff --git a/include/linux/kmsan.h b/include/linux/kmsan.h
index 2b1432cc16d5..f2fd221107bb 100644
--- a/include/linux/kmsan.h
+++ b/include/linux/kmsan.h
@@ -182,8 +182,7 @@ void kmsan_iounmap_page_range(unsigned long start, unsigned long end);
 
 /**
  * kmsan_handle_dma() - Handle a DMA data transfer.
- * @page:   first page of the buffer.
- * @offset: offset of the buffer within the first page.
+ * @phys:   physical address of the buffer.
  * @size:   buffer size.
  * @dir:    one of possible dma_data_direction values.
  *
@@ -192,7 +191,7 @@ void kmsan_iounmap_page_range(unsigned long start, unsigned long end);
  * * initializes the buffer, if it is copied from device;
  * * does both, if this is a DMA_BIDIRECTIONAL transfer.
  */
-void kmsan_handle_dma(struct page *page, size_t offset, size_t size,
+void kmsan_handle_dma(phys_addr_t phys, size_t size,
 		      enum dma_data_direction dir);
 
 /**
@@ -372,8 +371,8 @@ static inline void kmsan_iounmap_page_range(unsigned long start,
 {
 }
 
-static inline void kmsan_handle_dma(struct page *page, size_t offset,
-				    size_t size, enum dma_data_direction dir)
+static inline void kmsan_handle_dma(phys_addr_t phys, size_t size,
+				    enum dma_data_direction dir)
 {
 }
 
diff --git a/kernel/dma/mapping.c b/kernel/dma/mapping.c
index 80481a873340..891e1fc3e582 100644
--- a/kernel/dma/mapping.c
+++ b/kernel/dma/mapping.c
@@ -172,7 +172,8 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
 		addr = iommu_dma_map_phys(dev, phys, size, dir, attrs);
 	else
 		addr = ops->map_page(dev, page, offset, size, dir, attrs);
-	kmsan_handle_dma(page, offset, size, dir);
+
+	kmsan_handle_dma(phys, size, dir);
 	trace_dma_map_phys(dev, phys, addr, size, dir, attrs);
 	debug_dma_map_phys(dev, phys, size, dir, addr, attrs);
 
diff --git a/mm/kmsan/hooks.c b/mm/kmsan/hooks.c
index 97de3d6194f0..a080400290e7 100644
--- a/mm/kmsan/hooks.c
+++ b/mm/kmsan/hooks.c
@@ -336,14 +336,15 @@ static void kmsan_handle_dma_page(const void *addr, size_t size,
 }
 
 /* Helper function to handle DMA data transfers. */
-void kmsan_handle_dma(struct page *page, size_t offset, size_t size,
-		      enum dma_data_direction dir)
+void kmsan_handle_dma(phys_addr_t phys, size_t size,
+		      enum dma_data_direction dir, unsigned int attrs)
 {
+	struct page *page = phys_to_page(phys);
 	u64 page_offset, to_go, addr;
 
 	if (PageHighMem(page))
 		return;
-	addr = (u64)page_address(page) + offset;
+	addr = (u64)page_address(page) + offset_in_page(phys);
 	/*
 	 * The kernel may occasionally give us adjacent DMA pages not belonging
 	 * to the same allocation. Process them separately to avoid triggering
diff --git a/tools/virtio/linux/kmsan.h b/tools/virtio/linux/kmsan.h
index 272b5aa285d5..6cd2e3efd03d 100644
--- a/tools/virtio/linux/kmsan.h
+++ b/tools/virtio/linux/kmsan.h
@@ -4,7 +4,7 @@
 
 #include <linux/gfp.h>
 
-inline void kmsan_handle_dma(struct page *page, size_t offset, size_t size,
+inline void kmsan_handle_dma(phys_addr_t phys, size_t size,
 			     enum dma_data_direction dir)
 {
 }
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 18:00:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 18:00:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082171.1442122 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umcFm-0007eJ-JX; Thu, 14 Aug 2025 18:00:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082171.1442122; Thu, 14 Aug 2025 18:00: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 1umcFm-0007eC-Fj; Thu, 14 Aug 2025 18:00:42 +0000
Received: by outflank-mailman (input) for mailman id 1082171;
 Thu, 14 Aug 2025 18:00:41 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Hncw=22=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1umcAQ-0002mL-Ff
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 17:55:10 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d03bf01f-7937-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 19:55:08 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id CB8B25C720C;
 Thu, 14 Aug 2025 17:55:06 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id B3833C4CEED;
 Thu, 14 Aug 2025 17:55: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>
X-Inumbo-ID: d03bf01f-7937-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755194106;
	bh=stLVV7BdINySQbyeqCDmRbXyWeQEecbuIkQ/rhX45FU=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=MsbLK5kT7aVmvA8nYsB7sMG5ChwILEdiBjYxFpaN32F94VWo3aNRqEpCWyi0ZcA9p
	 gzrDDZo2miJ4WqgfgWiIO+xYs26NKRu0sCKEs/zjyoblbT43qDpduEb0902V5dsZLe
	 LoqDmkZ4tJUci0ASJStCM0akDlv9hkIs16pFwCUDhbDeO9/8jSYgcXuHYjX5JddxcS
	 RXuhev7mQMkvVDqD2zAL8EZxehXvCtT7xSvrfSbfXftLTMASDzbFLrji9Uwj/1hHdJ
	 +mpU742EZEFVDRxgLoKCb3gccSJQtbzkhw5GrIX4UPYImmbiz1iMotRsRFcm4hk2C3
	 KDHPuzC3NM7Mg==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v3 14/16] block-dma: migrate to dma_map_phys instead of map_page
Date: Thu, 14 Aug 2025 20:54:05 +0300
Message-ID: <d05ac5a700b008577a5740c99fc1ccd24c8e1359.1755193625.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755193625.git.leon@kernel.org>
References: <cover.1755193625.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

After introduction of dma_map_phys(), there is no need to convert
from physical address to struct page in order to map page. So let's
use it directly.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 block/blk-mq-dma.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/block/blk-mq-dma.c b/block/blk-mq-dma.c
index ad283017caef..37e2142be4f7 100644
--- a/block/blk-mq-dma.c
+++ b/block/blk-mq-dma.c
@@ -87,8 +87,8 @@ static bool blk_dma_map_bus(struct blk_dma_iter *iter, struct phys_vec *vec)
 static bool blk_dma_map_direct(struct request *req, struct device *dma_dev,
 		struct blk_dma_iter *iter, struct phys_vec *vec)
 {
-	iter->addr = dma_map_page(dma_dev, phys_to_page(vec->paddr),
-			offset_in_page(vec->paddr), vec->len, rq_dma_dir(req));
+	iter->addr = dma_map_phys(dma_dev, vec->paddr, vec->len,
+			rq_dma_dir(req), 0);
 	if (dma_mapping_error(dma_dev, iter->addr)) {
 		iter->status = BLK_STS_RESOURCE;
 		return false;
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 18:00:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 18:00:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082176.1442130 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umcFx-0007ze-PQ; Thu, 14 Aug 2025 18:00:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082176.1442130; Thu, 14 Aug 2025 18:00: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 1umcFx-0007zX-MY; Thu, 14 Aug 2025 18:00:53 +0000
Received: by outflank-mailman (input) for mailman id 1082176;
 Thu, 14 Aug 2025 18:00:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Hncw=22=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1umcAL-0002OV-RJ
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 17:55:05 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cddd7c37-7937-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 19:55:04 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id ED6975C71E8;
 Thu, 14 Aug 2025 17:55:02 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id C7099C4CEF6;
 Thu, 14 Aug 2025 17:55:01 +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>
X-Inumbo-ID: cddd7c37-7937-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755194102;
	bh=0mJoy+46tPnckyRiCMrZ6rM11HgiRAqoXhfeDURewQs=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=q5y8UPYbkB2gzf2uIya/X3vdHYBLt5p8f2+4LvAOXumYTMXCUY8KcMUO+hVWuG5Mi
	 7MzmZa8BOiq3ncXs0zot46eTEMUqsrH0jSfmEBc4Rd3RC/EnHrCaD8bS0umwGI1rMd
	 UdLZ+i6qVKHnzlk0T5qsMDg7gCo2PKlNRDcnn29eXsO4dvTPBeiyKX3kJYqrunChzP
	 vBTtaqwfzFacD2KSsvNKIuqP2BySwh9+2MLpaW2otrJlck+iVxAf0mH6nSYGwNIHe7
	 pVOlSpgYbdrZ6NMFd3ZlatqJdHDz1ybQq38chzBmAVKpPy4QK8iQXExLGVHCiU/RcX
	 j/D9of2rZm+xA==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v3 10/16] xen: swiotlb: Open code map_resource callback
Date: Thu, 14 Aug 2025 20:54:01 +0300
Message-ID: <be7c97a559d2482c99e41b7714400934251c53cd.1755193625.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755193625.git.leon@kernel.org>
References: <cover.1755193625.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

General dma_direct_map_resource() is going to be removed
in next patch, so simply open-code it in xen driver.

Reviewed-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 drivers/xen/swiotlb-xen.c | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)

diff --git a/drivers/xen/swiotlb-xen.c b/drivers/xen/swiotlb-xen.c
index da1a7d3d377c..dd7747a2de87 100644
--- a/drivers/xen/swiotlb-xen.c
+++ b/drivers/xen/swiotlb-xen.c
@@ -392,6 +392,25 @@ xen_swiotlb_sync_sg_for_device(struct device *dev, struct scatterlist *sgl,
 	}
 }
 
+static dma_addr_t xen_swiotlb_direct_map_resource(struct device *dev,
+						  phys_addr_t paddr,
+						  size_t size,
+						  enum dma_data_direction dir,
+						  unsigned long attrs)
+{
+	dma_addr_t dma_addr = paddr;
+
+	if (unlikely(!dma_capable(dev, dma_addr, size, false))) {
+		dev_err_once(dev,
+			     "DMA addr %pad+%zu overflow (mask %llx, bus limit %llx).\n",
+			     &dma_addr, size, *dev->dma_mask, dev->bus_dma_limit);
+		WARN_ON_ONCE(1);
+		return DMA_MAPPING_ERROR;
+	}
+
+	return dma_addr;
+}
+
 /*
  * Return whether the given device DMA address mask can be supported
  * properly.  For example, if your device can only drive the low 24-bits
@@ -426,5 +445,5 @@ const struct dma_map_ops xen_swiotlb_dma_ops = {
 	.alloc_pages_op = dma_common_alloc_pages,
 	.free_pages = dma_common_free_pages,
 	.max_mapping_size = swiotlb_max_mapping_size,
-	.map_resource = dma_direct_map_resource,
+	.map_resource = xen_swiotlb_direct_map_resource,
 };
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 18:00:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 18:00:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082178.1442137 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umcFy-000831-3F; Thu, 14 Aug 2025 18:00:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082178.1442137; Thu, 14 Aug 2025 18:00: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 1umcFx-00082b-U9; Thu, 14 Aug 2025 18:00:53 +0000
Received: by outflank-mailman (input) for mailman id 1082178;
 Thu, 14 Aug 2025 18:00:52 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Hncw=22=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1umcA7-0002OV-JL
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 17:54:51 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c4c49a03-7937-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 19:54:48 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id AD63A5C721E;
 Thu, 14 Aug 2025 17:54:47 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8F749C4CEF6;
 Thu, 14 Aug 2025 17: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>
X-Inumbo-ID: c4c49a03-7937-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755194087;
	bh=6kQRc8M4kSTN6oNlv6UupesxmLI8KrU+a1TL4nhd0iE=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=C6w4ugQYiUdcIBDBap/wpiQAIwZla3sL70dXT7fdDwlS8iAo7WkvllaYcXF4QU2M9
	 kt4WEnzYrIn4ZDZURbuikMUlP1Qp9CxkQOq+obTZHosuKzmVJJ0AF/lK9fQSX5YtoJ
	 kzMxjlyIoIy5MaeVth9MfY0uS93UJW4vr922gEZKEo2egnsKAq7kg8ZgHQF2XBxqCZ
	 F1uVGjeU46DFgcCqPy+lW15qydDCb2UvhK7t93bEVpZBLmZ+yVMS129GxQ41QBkFWL
	 CFslA3zPU9Peu4BjTd3+d/0rvdaudAz+bJ7W9WzhuA5hIM9mliO10n+CPNH4ALRsGy
	 OQQa8odedrzVg==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v3 09/16] dma-mapping: handle MMIO flow in dma_map|unmap_page
Date: Thu, 14 Aug 2025 20:54:00 +0300
Message-ID: <ae473ed08a384bd70e3816cc74e11513213d71f4.1755193625.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755193625.git.leon@kernel.org>
References: <cover.1755193625.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

Extend base DMA page API to handle MMIO flow and follow
existing dma_map_resource() implementation to rely on dma_map_direct()
only to take DMA direct path.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 kernel/dma/mapping.c | 26 +++++++++++++++++++++-----
 1 file changed, 21 insertions(+), 5 deletions(-)

diff --git a/kernel/dma/mapping.c b/kernel/dma/mapping.c
index 891e1fc3e582..fdabfdaeff1d 100644
--- a/kernel/dma/mapping.c
+++ b/kernel/dma/mapping.c
@@ -158,6 +158,7 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
 {
 	const struct dma_map_ops *ops = get_dma_ops(dev);
 	phys_addr_t phys = page_to_phys(page) + offset;
+	bool is_mmio = attrs & DMA_ATTR_MMIO;
 	dma_addr_t addr;
 
 	BUG_ON(!valid_dma_direction(dir));
@@ -166,14 +167,25 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
 		return DMA_MAPPING_ERROR;
 
 	if (dma_map_direct(dev, ops) ||
-	    arch_dma_map_phys_direct(dev, phys + size))
+	    (!is_mmio && arch_dma_map_phys_direct(dev, phys + size)))
 		addr = dma_direct_map_phys(dev, phys, size, dir, attrs);
 	else if (use_dma_iommu(dev))
 		addr = iommu_dma_map_phys(dev, phys, size, dir, attrs);
-	else
+	else if (is_mmio) {
+		if (!ops->map_resource)
+			return DMA_MAPPING_ERROR;
+
+		addr = ops->map_resource(dev, phys, size, dir, attrs);
+	} else {
+		/*
+		 * The dma_ops API contract for ops->map_page() requires
+		 * kmappable memory, while ops->map_resource() does not.
+		 */
 		addr = ops->map_page(dev, page, offset, size, dir, attrs);
+	}
 
-	kmsan_handle_dma(phys, size, dir);
+	if (!is_mmio)
+		kmsan_handle_dma(phys, size, dir);
 	trace_dma_map_phys(dev, phys, addr, size, dir, attrs);
 	debug_dma_map_phys(dev, phys, size, dir, addr, attrs);
 
@@ -185,14 +197,18 @@ void dma_unmap_page_attrs(struct device *dev, dma_addr_t addr, size_t size,
 		enum dma_data_direction dir, unsigned long attrs)
 {
 	const struct dma_map_ops *ops = get_dma_ops(dev);
+	bool is_mmio = attrs & DMA_ATTR_MMIO;
 
 	BUG_ON(!valid_dma_direction(dir));
 	if (dma_map_direct(dev, ops) ||
-	    arch_dma_unmap_phys_direct(dev, addr + size))
+	    (!is_mmio && arch_dma_unmap_phys_direct(dev, addr + size)))
 		dma_direct_unmap_phys(dev, addr, size, dir, attrs);
 	else if (use_dma_iommu(dev))
 		iommu_dma_unmap_phys(dev, addr, size, dir, attrs);
-	else
+	else if (is_mmio) {
+		if (ops->unmap_resource)
+			ops->unmap_resource(dev, addr, size, dir, attrs);
+	} else
 		ops->unmap_page(dev, addr, size, dir, attrs);
 	trace_dma_unmap_phys(dev, addr, size, dir, attrs);
 	debug_dma_unmap_phys(dev, addr, size, dir);
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 18:01:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 18:01:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082214.1442151 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umcGm-00016X-Ev; Thu, 14 Aug 2025 18:01:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082214.1442151; Thu, 14 Aug 2025 18:01: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 1umcGm-00015R-9e; Thu, 14 Aug 2025 18:01:44 +0000
Received: by outflank-mailman (input) for mailman id 1082214;
 Thu, 14 Aug 2025 18:01:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Hncw=22=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1umcAB-0002OV-LR
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 17:54:55 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c72ad42f-7937-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 19:54:52 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 5A698A56B3C;
 Thu, 14 Aug 2025 17:54:51 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 43E02C4CEED;
 Thu, 14 Aug 2025 17:54: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>
X-Inumbo-ID: c72ad42f-7937-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755194091;
	bh=dJuAJRFwFKXIJkybNGJNx5df3xqMYXp7O5ndEMDZg04=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=uzys0fctaKduRyxRgFcqqWB9TJX8pmDHxUeerVSmc9hyJder8/7gFl3wfN/unHZ2C
	 S5CzVr+5GYaSUOFs9bmQ75Ecqcu9Pu4Whd8sbfjlhm2XOYZLIhCbef/DMcn3CTb45+
	 GiznNYOI/+RzFM5PLcTzNPRM35pJT6rtglK+OdmUleRbcbftiNpy2RaoYN+398HPlI
	 EdMAoWucl5y3/7eOxc13vugzgtDg65qJbFLVFBCCc/G5s+GnSm+p2hysDhRiLfbghA
	 f5DgNGtveHYzPp98rPtOh2sXpm5HgOwAFNALlZh24t/cDF5EYiXAKJyn8L22WCuZ0B
	 PilBrOf3zwuYA==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v3 06/16] iommu/dma: extend iommu_dma_*map_phys API to handle MMIO memory
Date: Thu, 14 Aug 2025 20:53:57 +0300
Message-ID: <4f84639baf6d5d0e107fd2001dff91b6538ff9ae.1755193625.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755193625.git.leon@kernel.org>
References: <cover.1755193625.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

Combine iommu_dma_*map_phys with iommu_dma_*map_resource interfaces in
order to allow single phys_addr_t flow.

In the following patches, the iommu_dma_map_resource() will be removed
in favour of iommu_dma_map_phys(..., attrs | DMA_ATTR_MMIO) flow.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 drivers/iommu/dma-iommu.c | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
index aea119f32f96..6804aaf034a1 100644
--- a/drivers/iommu/dma-iommu.c
+++ b/drivers/iommu/dma-iommu.c
@@ -1211,16 +1211,19 @@ dma_addr_t iommu_dma_map_phys(struct device *dev, phys_addr_t phys, size_t size,
 	 */
 	if (dev_use_swiotlb(dev, size, dir) &&
 	    iova_unaligned(iovad, phys, size)) {
+		if (attrs & DMA_ATTR_MMIO)
+			return DMA_MAPPING_ERROR;
+
 		phys = iommu_dma_map_swiotlb(dev, phys, size, dir, attrs);
 		if (phys == (phys_addr_t)DMA_MAPPING_ERROR)
 			return DMA_MAPPING_ERROR;
 	}
 
-	if (!coherent && !(attrs & DMA_ATTR_SKIP_CPU_SYNC))
+	if (!coherent && !(attrs & (DMA_ATTR_SKIP_CPU_SYNC | DMA_ATTR_MMIO)))
 		arch_sync_dma_for_device(phys, size, dir);
 
 	iova = __iommu_dma_map(dev, phys, size, prot, dma_mask);
-	if (iova == DMA_MAPPING_ERROR)
+	if (iova == DMA_MAPPING_ERROR && !(attrs & DMA_ATTR_MMIO))
 		swiotlb_tbl_unmap_single(dev, phys, size, dir, attrs);
 	return iova;
 }
@@ -1228,10 +1231,14 @@ dma_addr_t iommu_dma_map_phys(struct device *dev, phys_addr_t phys, size_t size,
 void iommu_dma_unmap_phys(struct device *dev, dma_addr_t dma_handle,
 		size_t size, enum dma_data_direction dir, unsigned long attrs)
 {
-	struct iommu_domain *domain = iommu_get_dma_domain(dev);
 	phys_addr_t phys;
 
-	phys = iommu_iova_to_phys(domain, dma_handle);
+	if (attrs & DMA_ATTR_MMIO) {
+		__iommu_dma_unmap(dev, dma_handle, size);
+		return;
+	}
+
+	phys = iommu_iova_to_phys(iommu_get_dma_domain(dev), dma_handle);
 	if (WARN_ON(!phys))
 		return;
 
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 18:01:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 18:01:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082224.1442161 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umcGo-0001My-Jr; Thu, 14 Aug 2025 18:01:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082224.1442161; Thu, 14 Aug 2025 18:01: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 1umcGo-0001Mp-Gc; Thu, 14 Aug 2025 18:01:46 +0000
Received: by outflank-mailman (input) for mailman id 1082224;
 Thu, 14 Aug 2025 18:01:45 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Hncw=22=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1umcAV-0002mL-Sv
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 17:55:15 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d496320d-7937-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 19:55:15 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 2FF73A56B3C;
 Thu, 14 Aug 2025 17:55:14 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 062CDC4CEED;
 Thu, 14 Aug 2025 17:55:13 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d496320d-7937-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755194113;
	bh=5GnXky7X8jRP4E4M761xyU7kxSqR5w3y9HvcAnisW/0=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=EroDnatiN77eyZc8zegeMwy59a5Enwcm/becY+2cM1xEQlBxk+b21KJgmglXV2ov/
	 UAq+7q6G8szT9ayGDwFdvye3DpNCa5azL0+oeplA5ykwR8qtY9MvyiRAvK1RJTTt60
	 jj1ueyGIbIKDB1TT1kqbUgqL2YySpHz93UkSkKkL6xA+IHZdU8xkZSmEu2K1L+CEMn
	 eDkihXiVUo3ItXvnErhHX0b7l7LtSk6nXO1O/r3RjsejOHSUTXBk2C+n6YTghAKVqs
	 DX2mYrIvGKys5EbD3n5M3UUHcOrr0vXJlHcNVB+uJ6D/mQ4AC0WOIDOFe67q5ODvW8
	 tXLnC/0mn7J0g==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v3 13/16] mm/hmm: properly take MMIO path
Date: Thu, 14 Aug 2025 20:54:04 +0300
Message-ID: <44e4937b3d906a77a6b905946f8a74b49659b0c7.1755193625.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755193625.git.leon@kernel.org>
References: <cover.1755193625.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

In case peer-to-peer transaction traverses through host bridge,
the IOMMU needs to have IOMMU_MMIO flag, together with skip of
CPU sync.

The latter was handled by provided DMA_ATTR_SKIP_CPU_SYNC flag,
but IOMMU flag was missed, due to assumption that such memory
can be treated as regular one.

Reuse newly introduced DMA attribute to properly take MMIO path.

Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 mm/hmm.c | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/mm/hmm.c b/mm/hmm.c
index 015ab243f081..6556c0e074ba 100644
--- a/mm/hmm.c
+++ b/mm/hmm.c
@@ -746,7 +746,7 @@ dma_addr_t hmm_dma_map_pfn(struct device *dev, struct hmm_dma_map *map,
 	case PCI_P2PDMA_MAP_NONE:
 		break;
 	case PCI_P2PDMA_MAP_THRU_HOST_BRIDGE:
-		attrs |= DMA_ATTR_SKIP_CPU_SYNC;
+		attrs |= DMA_ATTR_MMIO;
 		pfns[idx] |= HMM_PFN_P2PDMA;
 		break;
 	case PCI_P2PDMA_MAP_BUS_ADDR:
@@ -776,7 +776,7 @@ dma_addr_t hmm_dma_map_pfn(struct device *dev, struct hmm_dma_map *map,
 			goto error;
 
 		dma_addr = dma_map_phys(dev, paddr, map->dma_entry_size,
-					DMA_BIDIRECTIONAL, 0);
+					DMA_BIDIRECTIONAL, attrs);
 		if (dma_mapping_error(dev, dma_addr))
 			goto error;
 
@@ -811,16 +811,17 @@ bool hmm_dma_unmap_pfn(struct device *dev, struct hmm_dma_map *map, size_t idx)
 	if ((pfns[idx] & valid_dma) != valid_dma)
 		return false;
 
+	if (pfns[idx] & HMM_PFN_P2PDMA)
+		attrs |= DMA_ATTR_MMIO;
+
 	if (pfns[idx] & HMM_PFN_P2PDMA_BUS)
 		; /* no need to unmap bus address P2P mappings */
-	else if (dma_use_iova(state)) {
-		if (pfns[idx] & HMM_PFN_P2PDMA)
-			attrs |= DMA_ATTR_SKIP_CPU_SYNC;
+	else if (dma_use_iova(state))
 		dma_iova_unlink(dev, state, idx * map->dma_entry_size,
 				map->dma_entry_size, DMA_BIDIRECTIONAL, attrs);
-	} else if (dma_need_unmap(dev))
+	else if (dma_need_unmap(dev))
 		dma_unmap_phys(dev, dma_addrs[idx], map->dma_entry_size,
-			       DMA_BIDIRECTIONAL, 0);
+			       DMA_BIDIRECTIONAL, attrs);
 
 	pfns[idx] &=
 		~(HMM_PFN_DMA_MAPPED | HMM_PFN_P2PDMA | HMM_PFN_P2PDMA_BUS);
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 18:01:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 18:01:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082227.1442171 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umcGw-0001r7-Rj; Thu, 14 Aug 2025 18:01:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082227.1442171; Thu, 14 Aug 2025 18:01: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 1umcGw-0001qy-O4; Thu, 14 Aug 2025 18:01:54 +0000
Received: by outflank-mailman (input) for mailman id 1082227;
 Thu, 14 Aug 2025 18:01:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Hncw=22=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1umcAE-0002OV-V3
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 17:54:59 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c960229f-7937-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 19:54:56 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id EBD5043F94;
 Thu, 14 Aug 2025 17:54:54 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2419DC4CEED;
 Thu, 14 Aug 2025 17:54:54 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c960229f-7937-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755194094;
	bh=BkEmu3z7RRGlp2YN9VORvYX5wSDL+7OOgFuObGZzrDs=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=bHYYYSKADkxeM+Ac633UQDO/08P4WWJTTsQl6m+kz2gOcj8R6CGIb+RC3QVMGasAO
	 iE4XCWhrY43gFBXiJfGMDzXyrHd/xdFbEE5B/LB87/iG3WQ3/X7WbArlsB60JDMvAU
	 OwxHcEOW9uU/lMZm5JAciboMdjyBuVRnwXVSRTCXBrqUUlUZchH25gVP39l6u48+kM
	 1v/6/EFZL+vpAJJ5gImSNIz7k+Naq8cBnwZCewYDLppEr9TXTVNb2Nmb6PCb3031OG
	 sYI990SnuCLpCADu3QTZot5rhFrRecoRzQBnfyFNPbragNsmPGP589R5uzOh2l7/92
	 PT0+RUPfXFSQA==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v3 11/16] dma-mapping: export new dma_*map_phys() interface
Date: Thu, 14 Aug 2025 20:54:02 +0300
Message-ID: <60724b0fdc808c8290014ae38a2ee5d9f3d091ee.1755193625.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755193625.git.leon@kernel.org>
References: <cover.1755193625.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

Introduce new DMA mapping functions dma_map_phys() and dma_unmap_phys()
that operate directly on physical addresses instead of page+offset
parameters. This provides a more efficient interface for drivers that
already have physical addresses available.

The new functions are implemented as the primary mapping layer, with
the existing dma_map_page_attrs()/dma_map_resource() and
dma_unmap_page_attrs()/dma_unmap_resource() functions converted to simple
wrappers around the phys-based implementations.

In case dma_map_page_attrs(), the struct page is converted to physical
address with help of page_to_phys() function and dma_map_resource()
provides physical address as is together with addition of DMA_ATTR_MMIO
attribute.

The old page-based API is preserved in mapping.c to ensure that existing
code won't be affected by changing EXPORT_SYMBOL to EXPORT_SYMBOL_GPL
variant for dma_*map_phys().

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 drivers/iommu/dma-iommu.c   | 14 --------
 include/linux/dma-direct.h  |  2 --
 include/linux/dma-mapping.h | 13 +++++++
 include/linux/iommu-dma.h   |  4 ---
 include/trace/events/dma.h  |  2 --
 kernel/dma/debug.c          | 43 -----------------------
 kernel/dma/debug.h          | 21 -----------
 kernel/dma/direct.c         | 16 ---------
 kernel/dma/mapping.c        | 69 ++++++++++++++++++++-----------------
 9 files changed, 50 insertions(+), 134 deletions(-)

diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
index 6804aaf034a1..7944a3af4545 100644
--- a/drivers/iommu/dma-iommu.c
+++ b/drivers/iommu/dma-iommu.c
@@ -1556,20 +1556,6 @@ void iommu_dma_unmap_sg(struct device *dev, struct scatterlist *sg, int nents,
 		__iommu_dma_unmap(dev, start, end - start);
 }
 
-dma_addr_t iommu_dma_map_resource(struct device *dev, phys_addr_t phys,
-		size_t size, enum dma_data_direction dir, unsigned long attrs)
-{
-	return __iommu_dma_map(dev, phys, size,
-			dma_info_to_prot(dir, false, attrs) | IOMMU_MMIO,
-			dma_get_mask(dev));
-}
-
-void iommu_dma_unmap_resource(struct device *dev, dma_addr_t handle,
-		size_t size, enum dma_data_direction dir, unsigned long attrs)
-{
-	__iommu_dma_unmap(dev, handle, size);
-}
-
 static void __iommu_dma_free(struct device *dev, size_t size, void *cpu_addr)
 {
 	size_t alloc_size = PAGE_ALIGN(size);
diff --git a/include/linux/dma-direct.h b/include/linux/dma-direct.h
index f3bc0bcd7098..c249912456f9 100644
--- a/include/linux/dma-direct.h
+++ b/include/linux/dma-direct.h
@@ -149,7 +149,5 @@ void dma_direct_free_pages(struct device *dev, size_t size,
 		struct page *page, dma_addr_t dma_addr,
 		enum dma_data_direction dir);
 int dma_direct_supported(struct device *dev, u64 mask);
-dma_addr_t dma_direct_map_resource(struct device *dev, phys_addr_t paddr,
-		size_t size, enum dma_data_direction dir, unsigned long attrs);
 
 #endif /* _LINUX_DMA_DIRECT_H */
diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h
index 4254fd9bdf5d..8248ff9363ee 100644
--- a/include/linux/dma-mapping.h
+++ b/include/linux/dma-mapping.h
@@ -138,6 +138,10 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
 		unsigned long attrs);
 void dma_unmap_page_attrs(struct device *dev, dma_addr_t addr, size_t size,
 		enum dma_data_direction dir, unsigned long attrs);
+dma_addr_t dma_map_phys(struct device *dev, phys_addr_t phys, size_t size,
+		enum dma_data_direction dir, unsigned long attrs);
+void dma_unmap_phys(struct device *dev, dma_addr_t addr, size_t size,
+		enum dma_data_direction dir, unsigned long attrs);
 unsigned int dma_map_sg_attrs(struct device *dev, struct scatterlist *sg,
 		int nents, enum dma_data_direction dir, unsigned long attrs);
 void dma_unmap_sg_attrs(struct device *dev, struct scatterlist *sg,
@@ -192,6 +196,15 @@ static inline void dma_unmap_page_attrs(struct device *dev, dma_addr_t addr,
 		size_t size, enum dma_data_direction dir, unsigned long attrs)
 {
 }
+static inline dma_addr_t dma_map_phys(struct device *dev, phys_addr_t phys,
+		size_t size, enum dma_data_direction dir, unsigned long attrs)
+{
+	return DMA_MAPPING_ERROR;
+}
+static inline void dma_unmap_phys(struct device *dev, dma_addr_t addr,
+		size_t size, enum dma_data_direction dir, unsigned long attrs)
+{
+}
 static inline unsigned int dma_map_sg_attrs(struct device *dev,
 		struct scatterlist *sg, int nents, enum dma_data_direction dir,
 		unsigned long attrs)
diff --git a/include/linux/iommu-dma.h b/include/linux/iommu-dma.h
index 485bdffed988..a92b3ff9b934 100644
--- a/include/linux/iommu-dma.h
+++ b/include/linux/iommu-dma.h
@@ -42,10 +42,6 @@ size_t iommu_dma_opt_mapping_size(void);
 size_t iommu_dma_max_mapping_size(struct device *dev);
 void iommu_dma_free(struct device *dev, size_t size, void *cpu_addr,
 		dma_addr_t handle, unsigned long attrs);
-dma_addr_t iommu_dma_map_resource(struct device *dev, phys_addr_t phys,
-		size_t size, enum dma_data_direction dir, unsigned long attrs);
-void iommu_dma_unmap_resource(struct device *dev, dma_addr_t handle,
-		size_t size, enum dma_data_direction dir, unsigned long attrs);
 struct sg_table *iommu_dma_alloc_noncontiguous(struct device *dev, size_t size,
 		enum dma_data_direction dir, gfp_t gfp, unsigned long attrs);
 void iommu_dma_free_noncontiguous(struct device *dev, size_t size,
diff --git a/include/trace/events/dma.h b/include/trace/events/dma.h
index 84416c7d6bfa..5da59fd8121d 100644
--- a/include/trace/events/dma.h
+++ b/include/trace/events/dma.h
@@ -73,7 +73,6 @@ DEFINE_EVENT(dma_map, name, \
 	TP_ARGS(dev, phys_addr, dma_addr, size, dir, attrs))
 
 DEFINE_MAP_EVENT(dma_map_phys);
-DEFINE_MAP_EVENT(dma_map_resource);
 
 DECLARE_EVENT_CLASS(dma_unmap,
 	TP_PROTO(struct device *dev, dma_addr_t addr, size_t size,
@@ -111,7 +110,6 @@ DEFINE_EVENT(dma_unmap, name, \
 	TP_ARGS(dev, addr, size, dir, attrs))
 
 DEFINE_UNMAP_EVENT(dma_unmap_phys);
-DEFINE_UNMAP_EVENT(dma_unmap_resource);
 
 DECLARE_EVENT_CLASS(dma_alloc_class,
 	TP_PROTO(struct device *dev, void *virt_addr, dma_addr_t dma_addr,
diff --git a/kernel/dma/debug.c b/kernel/dma/debug.c
index da6734e3a4ce..06e31fd216e3 100644
--- a/kernel/dma/debug.c
+++ b/kernel/dma/debug.c
@@ -38,7 +38,6 @@ enum {
 	dma_debug_single,
 	dma_debug_sg,
 	dma_debug_coherent,
-	dma_debug_resource,
 	dma_debug_phy,
 };
 
@@ -141,7 +140,6 @@ static const char *type2name[] = {
 	[dma_debug_single] = "single",
 	[dma_debug_sg] = "scatter-gather",
 	[dma_debug_coherent] = "coherent",
-	[dma_debug_resource] = "resource",
 	[dma_debug_phy] = "phy",
 };
 
@@ -1448,47 +1446,6 @@ void debug_dma_free_coherent(struct device *dev, size_t size,
 	check_unmap(&ref);
 }
 
-void debug_dma_map_resource(struct device *dev, phys_addr_t addr, size_t size,
-			    int direction, dma_addr_t dma_addr,
-			    unsigned long attrs)
-{
-	struct dma_debug_entry *entry;
-
-	if (unlikely(dma_debug_disabled()))
-		return;
-
-	entry = dma_entry_alloc();
-	if (!entry)
-		return;
-
-	entry->type		= dma_debug_resource;
-	entry->dev		= dev;
-	entry->paddr		= addr;
-	entry->size		= size;
-	entry->dev_addr		= dma_addr;
-	entry->direction	= direction;
-	entry->map_err_type	= MAP_ERR_NOT_CHECKED;
-
-	add_dma_entry(entry, attrs);
-}
-
-void debug_dma_unmap_resource(struct device *dev, dma_addr_t dma_addr,
-			      size_t size, int direction)
-{
-	struct dma_debug_entry ref = {
-		.type           = dma_debug_resource,
-		.dev            = dev,
-		.dev_addr       = dma_addr,
-		.size           = size,
-		.direction      = direction,
-	};
-
-	if (unlikely(dma_debug_disabled()))
-		return;
-
-	check_unmap(&ref);
-}
-
 void debug_dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle,
 				   size_t size, int direction)
 {
diff --git a/kernel/dma/debug.h b/kernel/dma/debug.h
index 76adb42bffd5..424b8f912ade 100644
--- a/kernel/dma/debug.h
+++ b/kernel/dma/debug.h
@@ -30,14 +30,6 @@ extern void debug_dma_alloc_coherent(struct device *dev, size_t size,
 extern void debug_dma_free_coherent(struct device *dev, size_t size,
 				    void *virt, dma_addr_t addr);
 
-extern void debug_dma_map_resource(struct device *dev, phys_addr_t addr,
-				   size_t size, int direction,
-				   dma_addr_t dma_addr,
-				   unsigned long attrs);
-
-extern void debug_dma_unmap_resource(struct device *dev, dma_addr_t dma_addr,
-				     size_t size, int direction);
-
 extern void debug_dma_sync_single_for_cpu(struct device *dev,
 					  dma_addr_t dma_handle, size_t size,
 					  int direction);
@@ -88,19 +80,6 @@ static inline void debug_dma_free_coherent(struct device *dev, size_t size,
 {
 }
 
-static inline void debug_dma_map_resource(struct device *dev, phys_addr_t addr,
-					  size_t size, int direction,
-					  dma_addr_t dma_addr,
-					  unsigned long attrs)
-{
-}
-
-static inline void debug_dma_unmap_resource(struct device *dev,
-					    dma_addr_t dma_addr, size_t size,
-					    int direction)
-{
-}
-
 static inline void debug_dma_sync_single_for_cpu(struct device *dev,
 						 dma_addr_t dma_handle,
 						 size_t size, int direction)
diff --git a/kernel/dma/direct.c b/kernel/dma/direct.c
index fa75e3070073..1062caac47e7 100644
--- a/kernel/dma/direct.c
+++ b/kernel/dma/direct.c
@@ -502,22 +502,6 @@ int dma_direct_map_sg(struct device *dev, struct scatterlist *sgl, int nents,
 	return ret;
 }
 
-dma_addr_t dma_direct_map_resource(struct device *dev, phys_addr_t paddr,
-		size_t size, enum dma_data_direction dir, unsigned long attrs)
-{
-	dma_addr_t dma_addr = paddr;
-
-	if (unlikely(!dma_capable(dev, dma_addr, size, false))) {
-		dev_err_once(dev,
-			     "DMA addr %pad+%zu overflow (mask %llx, bus limit %llx).\n",
-			     &dma_addr, size, *dev->dma_mask, dev->bus_dma_limit);
-		WARN_ON_ONCE(1);
-		return DMA_MAPPING_ERROR;
-	}
-
-	return dma_addr;
-}
-
 int dma_direct_get_sgtable(struct device *dev, struct sg_table *sgt,
 		void *cpu_addr, dma_addr_t dma_addr, size_t size,
 		unsigned long attrs)
diff --git a/kernel/dma/mapping.c b/kernel/dma/mapping.c
index fdabfdaeff1d..0ca098d2e88d 100644
--- a/kernel/dma/mapping.c
+++ b/kernel/dma/mapping.c
@@ -152,12 +152,10 @@ static inline bool dma_map_direct(struct device *dev,
 	return dma_go_direct(dev, *dev->dma_mask, ops);
 }
 
-dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
-		size_t offset, size_t size, enum dma_data_direction dir,
-		unsigned long attrs)
+dma_addr_t dma_map_phys(struct device *dev, phys_addr_t phys, size_t size,
+		enum dma_data_direction dir, unsigned long attrs)
 {
 	const struct dma_map_ops *ops = get_dma_ops(dev);
-	phys_addr_t phys = page_to_phys(page) + offset;
 	bool is_mmio = attrs & DMA_ATTR_MMIO;
 	dma_addr_t addr;
 
@@ -177,6 +175,9 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
 
 		addr = ops->map_resource(dev, phys, size, dir, attrs);
 	} else {
+		struct page *page = phys_to_page(phys);
+		size_t offset = offset_in_page(phys);
+
 		/*
 		 * The dma_ops API contract for ops->map_page() requires
 		 * kmappable memory, while ops->map_resource() does not.
@@ -191,9 +192,26 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
 
 	return addr;
 }
+EXPORT_SYMBOL_GPL(dma_map_phys);
+
+dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
+		size_t offset, size_t size, enum dma_data_direction dir,
+		unsigned long attrs)
+{
+	phys_addr_t phys = page_to_phys(page) + offset;
+
+	if (unlikely(attrs & DMA_ATTR_MMIO))
+		return DMA_MAPPING_ERROR;
+
+	if (IS_ENABLED(CONFIG_DMA_API_DEBUG) &&
+	    WARN_ON_ONCE(is_zone_device_page(page)))
+		return DMA_MAPPING_ERROR;
+
+	return dma_map_phys(dev, phys, size, dir, attrs);
+}
 EXPORT_SYMBOL(dma_map_page_attrs);
 
-void dma_unmap_page_attrs(struct device *dev, dma_addr_t addr, size_t size,
+void dma_unmap_phys(struct device *dev, dma_addr_t addr, size_t size,
 		enum dma_data_direction dir, unsigned long attrs)
 {
 	const struct dma_map_ops *ops = get_dma_ops(dev);
@@ -213,6 +231,16 @@ void dma_unmap_page_attrs(struct device *dev, dma_addr_t addr, size_t size,
 	trace_dma_unmap_phys(dev, addr, size, dir, attrs);
 	debug_dma_unmap_phys(dev, addr, size, dir);
 }
+EXPORT_SYMBOL_GPL(dma_unmap_phys);
+
+void dma_unmap_page_attrs(struct device *dev, dma_addr_t addr, size_t size,
+		 enum dma_data_direction dir, unsigned long attrs)
+{
+	if (unlikely(attrs & DMA_ATTR_MMIO))
+		return;
+
+	dma_unmap_phys(dev, addr, size, dir, attrs);
+}
 EXPORT_SYMBOL(dma_unmap_page_attrs);
 
 static int __dma_map_sg_attrs(struct device *dev, struct scatterlist *sg,
@@ -338,41 +366,18 @@ EXPORT_SYMBOL(dma_unmap_sg_attrs);
 dma_addr_t dma_map_resource(struct device *dev, phys_addr_t phys_addr,
 		size_t size, enum dma_data_direction dir, unsigned long attrs)
 {
-	const struct dma_map_ops *ops = get_dma_ops(dev);
-	dma_addr_t addr = DMA_MAPPING_ERROR;
-
-	BUG_ON(!valid_dma_direction(dir));
-
-	if (WARN_ON_ONCE(!dev->dma_mask))
+	if (IS_ENABLED(CONFIG_DMA_API_DEBUG) &&
+	    WARN_ON_ONCE(pfn_valid(PHYS_PFN(phys_addr))))
 		return DMA_MAPPING_ERROR;
 
-	if (dma_map_direct(dev, ops))
-		addr = dma_direct_map_resource(dev, phys_addr, size, dir, attrs);
-	else if (use_dma_iommu(dev))
-		addr = iommu_dma_map_resource(dev, phys_addr, size, dir, attrs);
-	else if (ops->map_resource)
-		addr = ops->map_resource(dev, phys_addr, size, dir, attrs);
-
-	trace_dma_map_resource(dev, phys_addr, addr, size, dir, attrs);
-	debug_dma_map_resource(dev, phys_addr, size, dir, addr, attrs);
-	return addr;
+	return dma_map_phys(dev, phys_addr, size, dir, attrs | DMA_ATTR_MMIO);
 }
 EXPORT_SYMBOL(dma_map_resource);
 
 void dma_unmap_resource(struct device *dev, dma_addr_t addr, size_t size,
 		enum dma_data_direction dir, unsigned long attrs)
 {
-	const struct dma_map_ops *ops = get_dma_ops(dev);
-
-	BUG_ON(!valid_dma_direction(dir));
-	if (dma_map_direct(dev, ops))
-		; /* nothing to do: uncached and no swiotlb */
-	else if (use_dma_iommu(dev))
-		iommu_dma_unmap_resource(dev, addr, size, dir, attrs);
-	else if (ops->unmap_resource)
-		ops->unmap_resource(dev, addr, size, dir, attrs);
-	trace_dma_unmap_resource(dev, addr, size, dir, attrs);
-	debug_dma_unmap_resource(dev, addr, size, dir);
+	dma_unmap_phys(dev, addr, size, dir, attrs | DMA_ATTR_MMIO);
 }
 EXPORT_SYMBOL(dma_unmap_resource);
 
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 18:02:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 18:02:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082243.1442180 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umcHM-0002vg-7x; Thu, 14 Aug 2025 18:02:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082243.1442180; Thu, 14 Aug 2025 18:02:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umcHM-0002vX-5B; Thu, 14 Aug 2025 18:02:20 +0000
Received: by outflank-mailman (input) for mailman id 1082243;
 Thu, 14 Aug 2025 18:02:18 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Hncw=22=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1umcAZ-0002mL-Tx
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 17:55:19 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d6d055fc-7937-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 19:55:19 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id D46345C723C;
 Thu, 14 Aug 2025 17:55:17 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id D4E86C4CEED;
 Thu, 14 Aug 2025 17:55:16 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d6d055fc-7937-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755194117;
	bh=shzOb9LxCd4j9ffIAYJARd3Ll/bIHN63Rdsm8jF6HN0=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=A2rSNS72zGetBKpBZhRpgqD/rhRKvperIaIjrbRs5wRy9RZU2ScEPi/IdUXlel8t2
	 hDgSN0G3a2Rr04NiqmiYV9jLKqGT5IVplnGBul4pnKCtb46Ped2E5ecDGN1YyZ9EdT
	 rXEjC1b3JvJImZhlMYQO6QlVt3EMPsCUGfWZr+AhLTcRk7pnn5IH6GnI2xlLYD7zEg
	 XZ0PFeMCvymXzBoe83iYKupWfZGsEJm8bskOyv5EZlnO8619JC8K6d0uu61BKChHoS
	 EV2FsRD9b3uIVJtaqF6rm99phCdO9U9AfY6/vt89TghuDzKHyGWoqQ9sfISwsumlQI
	 OJ+zBWNq9+6YA==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v3 16/16] nvme-pci: unmap MMIO pages with appropriate interface
Date: Thu, 14 Aug 2025 20:54:07 +0300
Message-ID: <16e541279b4b030de54a0a2f1829e601b7923523.1755193625.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755193625.git.leon@kernel.org>
References: <cover.1755193625.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

Block layer maps MMIO memory through dma_map_phys() interface
with help of DMA_ATTR_MMIO attribute. There is a need to unmap
that memory with the appropriate unmap function, something which
wasn't possible before adding new REQ attribute to block layer in
previous patch.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 drivers/nvme/host/pci.c | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c
index 2c6d9506b172..f8ecc0e0f576 100644
--- a/drivers/nvme/host/pci.c
+++ b/drivers/nvme/host/pci.c
@@ -682,11 +682,15 @@ static void nvme_free_prps(struct request *req)
 {
 	struct nvme_iod *iod = blk_mq_rq_to_pdu(req);
 	struct nvme_queue *nvmeq = req->mq_hctx->driver_data;
+	unsigned int attrs = 0;
 	unsigned int i;
 
+	if (req->cmd_flags & REQ_MMIO)
+		attrs = DMA_ATTR_MMIO;
+
 	for (i = 0; i < iod->nr_dma_vecs; i++)
-		dma_unmap_page(nvmeq->dev->dev, iod->dma_vecs[i].addr,
-				iod->dma_vecs[i].len, rq_dma_dir(req));
+		dma_unmap_phys(nvmeq->dev->dev, iod->dma_vecs[i].addr,
+				iod->dma_vecs[i].len, rq_dma_dir(req), attrs);
 	mempool_free(iod->dma_vecs, nvmeq->dev->dmavec_mempool);
 }
 
@@ -699,15 +703,19 @@ static void nvme_free_sgls(struct request *req)
 	unsigned int sqe_dma_len = le32_to_cpu(iod->cmd.common.dptr.sgl.length);
 	struct nvme_sgl_desc *sg_list = iod->descriptors[0];
 	enum dma_data_direction dir = rq_dma_dir(req);
+	unsigned int attrs = 0;
+
+	if (req->cmd_flags & REQ_MMIO)
+		attrs = DMA_ATTR_MMIO;
 
 	if (iod->nr_descriptors) {
 		unsigned int nr_entries = sqe_dma_len / sizeof(*sg_list), i;
 
 		for (i = 0; i < nr_entries; i++)
-			dma_unmap_page(dma_dev, le64_to_cpu(sg_list[i].addr),
-				le32_to_cpu(sg_list[i].length), dir);
+			dma_unmap_phys(dma_dev, le64_to_cpu(sg_list[i].addr),
+				le32_to_cpu(sg_list[i].length), dir, attrs);
 	} else {
-		dma_unmap_page(dma_dev, sqe_dma_addr, sqe_dma_len, dir);
+		dma_unmap_phys(dma_dev, sqe_dma_addr, sqe_dma_len, dir, attrs);
 	}
 }
 
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 18:02:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 18:02:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082249.1442191 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umcHS-0003IP-Ff; Thu, 14 Aug 2025 18:02:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082249.1442191; Thu, 14 Aug 2025 18:02: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 1umcHS-0003Hm-CM; Thu, 14 Aug 2025 18:02:26 +0000
Received: by outflank-mailman (input) for mailman id 1082249;
 Thu, 14 Aug 2025 18:02:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Hncw=22=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1umcAT-0002OV-0N
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 17:55:13 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org
 [2600:3c04:e001:324:0:1991:8:25])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d248b9f6-7937-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 19:55:11 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 6C823601D8;
 Thu, 14 Aug 2025 17:55:10 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 765DEC4CEED;
 Thu, 14 Aug 2025 17:55:09 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d248b9f6-7937-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755194110;
	bh=VNpaHZYPDKoIVZk7JizQ+fAc7bXMl6IIrMQIwsKC7lg=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=M2Mnp3BW+NvPJt5C4Sa+m7N3xsVvI1PpeKOHABnYT/vsqBqQhN2aLvMQnNynxEeAf
	 jG+kWZtMh48W66QRgQVMl/nvjMqjsy9+E74nO/CD2HT4kLYU3Mpwjb6twcf8C3Hi4c
	 2+Posv9gcGORRKK5OlA0AbDJ7mN2IvDl/9m3YJLUUXqWT+rCGcxmptcDx464MwQkm6
	 RaeicrSrrijeM0dmFtQ16WUZR+XakQqQ7kOi0XQLbVsC9gFu1fGTGqeqj+8lEQxfmc
	 nPia317PiXQksGzD9LHJjd8h2SO8LgOmvjbc0XOA4r3NKpGeunr34rUdDB90w5gr0l
	 ihfxQKBWNsLcQ==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v3 15/16] block-dma: properly take MMIO path
Date: Thu, 14 Aug 2025 20:54:06 +0300
Message-ID: <b82cf88cbe69db93a98bfdfc90f11121abb973cc.1755193625.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755193625.git.leon@kernel.org>
References: <cover.1755193625.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

Make sure that CPU is not synced and IOMMU is configured to take
MMIO path by providing newly introduced DMA_ATTR_MMIO attribute.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 block/blk-mq-dma.c         | 13 +++++++++++--
 include/linux/blk-mq-dma.h |  6 +++++-
 include/linux/blk_types.h  |  2 ++
 3 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/block/blk-mq-dma.c b/block/blk-mq-dma.c
index 37e2142be4f7..d415088ed9fd 100644
--- a/block/blk-mq-dma.c
+++ b/block/blk-mq-dma.c
@@ -87,8 +87,13 @@ static bool blk_dma_map_bus(struct blk_dma_iter *iter, struct phys_vec *vec)
 static bool blk_dma_map_direct(struct request *req, struct device *dma_dev,
 		struct blk_dma_iter *iter, struct phys_vec *vec)
 {
+	unsigned int attrs = 0;
+
+	if (req->cmd_flags & REQ_MMIO)
+		attrs = DMA_ATTR_MMIO;
+
 	iter->addr = dma_map_phys(dma_dev, vec->paddr, vec->len,
-			rq_dma_dir(req), 0);
+			rq_dma_dir(req), attrs);
 	if (dma_mapping_error(dma_dev, iter->addr)) {
 		iter->status = BLK_STS_RESOURCE;
 		return false;
@@ -103,14 +108,17 @@ static bool blk_rq_dma_map_iova(struct request *req, struct device *dma_dev,
 {
 	enum dma_data_direction dir = rq_dma_dir(req);
 	unsigned int mapped = 0;
+	unsigned int attrs = 0;
 	int error;
 
 	iter->addr = state->addr;
 	iter->len = dma_iova_size(state);
+	if (req->cmd_flags & REQ_MMIO)
+		attrs = DMA_ATTR_MMIO;
 
 	do {
 		error = dma_iova_link(dma_dev, state, vec->paddr, mapped,
-				vec->len, dir, 0);
+				vec->len, dir, attrs);
 		if (error)
 			break;
 		mapped += vec->len;
@@ -176,6 +184,7 @@ bool blk_rq_dma_map_iter_start(struct request *req, struct device *dma_dev,
 			 * same as non-P2P transfers below and during unmap.
 			 */
 			req->cmd_flags &= ~REQ_P2PDMA;
+			req->cmd_flags |= REQ_MMIO;
 			break;
 		default:
 			iter->status = BLK_STS_INVAL;
diff --git a/include/linux/blk-mq-dma.h b/include/linux/blk-mq-dma.h
index c26a01aeae00..6c55f5e58511 100644
--- a/include/linux/blk-mq-dma.h
+++ b/include/linux/blk-mq-dma.h
@@ -48,12 +48,16 @@ static inline bool blk_rq_dma_map_coalesce(struct dma_iova_state *state)
 static inline bool blk_rq_dma_unmap(struct request *req, struct device *dma_dev,
 		struct dma_iova_state *state, size_t mapped_len)
 {
+	unsigned int attrs = 0;
+
 	if (req->cmd_flags & REQ_P2PDMA)
 		return true;
 
 	if (dma_use_iova(state)) {
+		if (req->cmd_flags & REQ_MMIO)
+			attrs = DMA_ATTR_MMIO;
 		dma_iova_destroy(dma_dev, state, mapped_len, rq_dma_dir(req),
-				 0);
+				 attrs);
 		return true;
 	}
 
diff --git a/include/linux/blk_types.h b/include/linux/blk_types.h
index 09b99d52fd36..283058bcb5b1 100644
--- a/include/linux/blk_types.h
+++ b/include/linux/blk_types.h
@@ -387,6 +387,7 @@ enum req_flag_bits {
 	__REQ_FS_PRIVATE,	/* for file system (submitter) use */
 	__REQ_ATOMIC,		/* for atomic write operations */
 	__REQ_P2PDMA,		/* contains P2P DMA pages */
+	__REQ_MMIO,		/* contains MMIO memory */
 	/*
 	 * Command specific flags, keep last:
 	 */
@@ -420,6 +421,7 @@ enum req_flag_bits {
 #define REQ_FS_PRIVATE	(__force blk_opf_t)(1ULL << __REQ_FS_PRIVATE)
 #define REQ_ATOMIC	(__force blk_opf_t)(1ULL << __REQ_ATOMIC)
 #define REQ_P2PDMA	(__force blk_opf_t)(1ULL << __REQ_P2PDMA)
+#define REQ_MMIO	(__force blk_opf_t)(1ULL << __REQ_MMIO)
 
 #define REQ_NOUNMAP	(__force blk_opf_t)(1ULL << __REQ_NOUNMAP)
 
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 18:02:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 18:02:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082255.1442200 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umcHc-0003lV-Nt; Thu, 14 Aug 2025 18:02:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082255.1442200; Thu, 14 Aug 2025 18:02:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umcHc-0003lM-Ke; Thu, 14 Aug 2025 18:02:36 +0000
Received: by outflank-mailman (input) for mailman id 1082255;
 Thu, 14 Aug 2025 18:02:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Hncw=22=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1umcAI-0002OV-DN
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 17:55:02 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cbc96888-7937-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 19:55:00 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 5CAFA5C723B;
 Thu, 14 Aug 2025 17:54:59 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id D761DC4CEED;
 Thu, 14 Aug 2025 17:54: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>
X-Inumbo-ID: cbc96888-7937-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755194099;
	bh=O9XZOHlHvjORXmOt4kTIQrFLHTrONFqw1ae8lUbcYw8=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=CXSCeVE+Es9wrKuDcpfkRMTkDto/V48L8Ycdt4GtyNjxscvktn1Z99cFkFtRP/kln
	 U5W7nGDod+MKcDedvM3kM4XcOh+z9xIG9xfqQ5kYPENdCi5rtK4ZZJ/5GlccU2TLIL
	 GSv/FlkQP2WjCDMPWxMGzlIz8nzfEP21FesXi4YSi/jF97egAabTlDywP9rcOaQCcP
	 YZU5fh26G2OcRPElvsF04cBU7c8Fh/SKU+f9iW76za6qCT6dDUk96sGALBaDgg4JoR
	 XoGaGn+PfcZdzgjfNrD1EQJ+yZgEqghYXshQat2k4DW6G9UhYSMKSVOH4UIpz86afV
	 grufu+x+aFPlQ==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v3 12/16] mm/hmm: migrate to physical address-based DMA mapping API
Date: Thu, 14 Aug 2025 20:54:03 +0300
Message-ID: <dfa67811bf82079e888fe9cb3fabbbc5a05776b4.1755193625.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755193625.git.leon@kernel.org>
References: <cover.1755193625.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

Convert HMM DMA operations from the legacy page-based API to the new
physical address-based dma_map_phys() and dma_unmap_phys() functions.
This demonstrates the preferred approach for new code that should use
physical addresses directly rather than page+offset parameters.

The change replaces dma_map_page() and dma_unmap_page() calls with
dma_map_phys() and dma_unmap_phys() respectively, using the physical
address that was already available in the code. This eliminates the
redundant page-to-physical address conversion and aligns with the
DMA subsystem's move toward physical address-centric interfaces.

This serves as an example of how new code should be written to leverage
the more efficient physical address API, which provides cleaner interfaces
for drivers that already have access to physical addresses.

Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 mm/hmm.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/mm/hmm.c b/mm/hmm.c
index d545e2494994..015ab243f081 100644
--- a/mm/hmm.c
+++ b/mm/hmm.c
@@ -775,8 +775,8 @@ dma_addr_t hmm_dma_map_pfn(struct device *dev, struct hmm_dma_map *map,
 		if (WARN_ON_ONCE(dma_need_unmap(dev) && !dma_addrs))
 			goto error;
 
-		dma_addr = dma_map_page(dev, page, 0, map->dma_entry_size,
-					DMA_BIDIRECTIONAL);
+		dma_addr = dma_map_phys(dev, paddr, map->dma_entry_size,
+					DMA_BIDIRECTIONAL, 0);
 		if (dma_mapping_error(dev, dma_addr))
 			goto error;
 
@@ -819,8 +819,8 @@ bool hmm_dma_unmap_pfn(struct device *dev, struct hmm_dma_map *map, size_t idx)
 		dma_iova_unlink(dev, state, idx * map->dma_entry_size,
 				map->dma_entry_size, DMA_BIDIRECTIONAL, attrs);
 	} else if (dma_need_unmap(dev))
-		dma_unmap_page(dev, dma_addrs[idx], map->dma_entry_size,
-			       DMA_BIDIRECTIONAL);
+		dma_unmap_phys(dev, dma_addrs[idx], map->dma_entry_size,
+			       DMA_BIDIRECTIONAL, 0);
 
 	pfns[idx] &=
 		~(HMM_PFN_DMA_MAPPED | HMM_PFN_P2PDMA | HMM_PFN_P2PDMA_BUS);
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 18:07:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 18:07:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082265.1442210 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umcMl-0004tf-9f; Thu, 14 Aug 2025 18:07:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082265.1442210; Thu, 14 Aug 2025 18:07: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 1umcMl-0004tY-75; Thu, 14 Aug 2025 18:07:55 +0000
Received: by outflank-mailman (input) for mailman id 1082265;
 Thu, 14 Aug 2025 18:07:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mOIo=22=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1umcMk-0004tS-DA
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 18:07:54 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 981e746b-7939-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 20:07:52 +0200 (CEST)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-45a207aef58so565585e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 11:07:52 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3b8ff860acbsm25345824f8f.51.2025.08.14.11.07.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Aug 2025 11:07: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>
X-Inumbo-ID: 981e746b-7939-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755194871; x=1755799671; 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=+pkgY3Ci0S+KloWF5rHnFY8ifcBvH5plQNSURnhdoKY=;
        b=rmtYo5TGgcP6vFjyHaXg3Mv04hmHfOmXmE0IbQtrbwKA1XiWE1RNoxVhM0tx9CAb8g
         7YyxF9aZJ1AoYbWNTkTl7wbjbtOGRdYCmhBnVfNgnCsHNr5VwquHAr5tmwvtqDyWncbv
         LcfJc4QlmdKTd8ZeHWA2AxVqHCkrExsAvkfzs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755194871; x=1755799671;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=+pkgY3Ci0S+KloWF5rHnFY8ifcBvH5plQNSURnhdoKY=;
        b=VLmwrCmS+xA4h+axHf2YaCtsmcmJIMQTJblMO064AFdc7VpgVSU3v5TY20x3r6AX9y
         xmgjvgJfnBMNxpg+paFwUdjkk6DR/oOiqSxIigLqaPGRrhPuwAlK+65VbVL7SPItqMfY
         2pn/z+O34/A00+sFdReDd2h3x0TU11A0+FnrWGyRx/UO6s2uaDJ0Cm61/LcWDSfItOYA
         IYutjet3eS9a2gLJ2T+RpE4WMv9XlZeNh6tjR9Gx9wAs6faeY7IZwPbkyxGeTmCtoEiL
         a0Fnz++Hb2e4Rm6ZM8OeW7Bo55tE7eZiiReoZpvbJ5swScVfIYqe8y7aA6dysluucIT5
         QXkw==
X-Gm-Message-State: AOJu0YzfNvcbSaW9L63G3tUiMInq9Jga7mDYeLfYR/fMKv73zTRvvWz3
	3EdfmazOVM/8JcSIK6O3yY0MVVBl8ll4V+cgDx3M6kNBejOPWJHR/0NN4/TUFRDqe9V2+EyyPHM
	7DsyO
X-Gm-Gg: ASbGncvKmpM1S62ETuqgaJfsff25WaqpCvKIWFITjr2qKnyFa/hAOv/om917hY9JIcK
	gwIeniKx94vaYTbreU5c7IfB/bdiJ8GfWzuEv9q3EahnaSHX2+bIcZPBISd67ys5uDQOe2X7Hu3
	IQ62Gu60I/wP7Eg1BuRL8zaQRyHybsCJpf+QHymJa+6gdjqujFLkoixA3cxIqc17++pLPWbsSzy
	pfImsoiRdI7NHSFJYqfecWR9m6oNRWA2YcF8+W9UrEAbGF2fWVfxp6UpC3BNSyzFyGfZU7CnhWq
	9NvbtbSGVceQwiOLKirk7RaHVmu0WG8vgKXlQJkGomjYHu6BJ6o9+p8nEXOVakJujyxoNTD5cFm
	mQnfqAgke2zMOr2FuJTm7MTW1uLfyOHa5XLaAvizjuPKmzyn9JkdthMkpFE4rEnMqmIOzhfLt7G
	9h
X-Google-Smtp-Source: AGHT+IED7jhBoBGqAQq90HTQh8vZ1TU5nMlDO7A8ImLuxr3k/87DhKvz/z5+RnXy1M8QB7TOfJwjlA==
X-Received: by 2002:a05:6000:400b:b0:3b7:775d:e923 with SMTP id ffacd0b85a97d-3ba506624edmr3110458f8f.4.1755194871320;
        Thu, 14 Aug 2025 11:07: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>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v1.1 08/22] x86/traps: Introduce percpu_early_traps_init() and set up exception handling earlier
Date: Thu, 14 Aug 2025 19:07:48 +0100
Message-Id: <20250814180748.2532533-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250808202314.1045968-9-andrew.cooper3@citrix.com>
References: <20250808202314.1045968-9-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

As things stand, we set up AP/S3 exception handling marginally after the
fragile activity of setting up shadow stacks.  Shadow stack setup is going to
get more complicated under FRED.

Introduce percpu_early_traps_init() and call it ahead of setting up shadow
stacks.  To start with, call load_system_tables() which is sufficient to set
up full exception handling.

In order to handle exceptions, current and the speculation controls needs to
work.  cpu_smpboot_alloc() already constructs some of the AP's top-of-stack
block, so have it set up a little more.  Zero the whole structure to subsume
other misc setup.

This gets us complete exception coverage of setting up shadow stacks, rather
than dying with a triple fault.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

v2:
 * Rename to percpu_early_traps_init()
 * Reorder setup
---
 xen/arch/x86/acpi/wakeup_prot.S |  5 +++--
 xen/arch/x86/boot/x86_64.S      |  5 ++++-
 xen/arch/x86/smpboot.c          | 19 ++++++-------------
 xen/arch/x86/traps-setup.c      | 12 ++++++++++++
 4 files changed, 25 insertions(+), 16 deletions(-)

diff --git a/xen/arch/x86/acpi/wakeup_prot.S b/xen/arch/x86/acpi/wakeup_prot.S
index 92af6230b31f..cc40fddc38d4 100644
--- a/xen/arch/x86/acpi/wakeup_prot.S
+++ b/xen/arch/x86/acpi/wakeup_prot.S
@@ -63,6 +63,9 @@ LABEL(s3_resume)
         pushq   %rax
         lretq
 1:
+        /* Set up early exceptions and CET before entering C properly. */
+        call    percpu_early_traps_init
+
 #if defined(CONFIG_XEN_SHSTK) || defined(CONFIG_XEN_IBT)
         call    xen_msr_s_cet_value
         test    %eax, %eax
@@ -117,8 +120,6 @@ LABEL(s3_resume)
 .L_cet_done:
 #endif /* CONFIG_XEN_SHSTK || CONFIG_XEN_IBT */
 
-        call    load_system_tables
-
         /* Restore CR4 from the cpuinfo block. */
         GET_STACK_END(bx)
         mov     STACK_CPUINFO_FIELD(cr4)(%rbx), %rax
diff --git a/xen/arch/x86/boot/x86_64.S b/xen/arch/x86/boot/x86_64.S
index 95a6b6cf63bd..d0e7449a149f 100644
--- a/xen/arch/x86/boot/x86_64.S
+++ b/xen/arch/x86/boot/x86_64.S
@@ -30,7 +30,10 @@ ENTRY(__high_start)
         test    %ebx,%ebx
         jz      .L_bsp
 
-        /* APs.  Set up CET before entering C properly. */
+        /* APs.  Set up early exceptions and CET before entering C properly. */
+
+        call    percpu_early_traps_init
+
 #if defined(CONFIG_XEN_SHSTK) || defined(CONFIG_XEN_IBT)
         call    xen_msr_s_cet_value
         test    %eax, %eax
diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c
index ce4862dde5a7..efb5adb3a12a 100644
--- a/xen/arch/x86/smpboot.c
+++ b/xen/arch/x86/smpboot.c
@@ -327,12 +327,7 @@ void asmlinkage start_secondary(void)
     struct cpu_info *info = get_cpu_info();
     unsigned int cpu = smp_processor_id();
 
-    /* Critical region without IDT or TSS.  Any fault is deadly! */
-
-    set_current(idle_vcpu[cpu]);
-    this_cpu(curr_vcpu) = idle_vcpu[cpu];
     rdmsrl(MSR_EFER, this_cpu(efer));
-    init_shadow_spec_ctrl_state(info);
 
     /*
      * Just as during early bootstrap, it is convenient here to disable
@@ -352,14 +347,6 @@ void asmlinkage start_secondary(void)
      */
     spin_debug_disable();
 
-    get_cpu_info()->use_pv_cr3 = false;
-    get_cpu_info()->xen_cr3 = 0;
-    get_cpu_info()->pv_cr3 = 0;
-
-    load_system_tables();
-
-    /* Full exception support from here on in. */
-
     if ( cpu_has_pks )
         wrpkrs_and_cache(0); /* Must be before setting CR4.PKS */
 
@@ -1064,9 +1051,15 @@ static int cpu_smpboot_alloc(unsigned int cpu)
             goto out;
 
     info = get_cpu_info_from_stack((unsigned long)stack_base[cpu]);
+    memset(info, 0, sizeof(*info));
     info->processor_id = cpu;
     info->per_cpu_offset = __per_cpu_offset[cpu];
 
+    init_shadow_spec_ctrl_state(info);
+
+    info->current_vcpu = idle_vcpu[cpu]; /* set_current() */
+    per_cpu(curr_vcpu, cpu) = idle_vcpu[cpu];
+
     gdt = per_cpu(gdt, cpu) ?: alloc_xenheap_pages(0, memflags);
     if ( gdt == NULL )
         goto out;
diff --git a/xen/arch/x86/traps-setup.c b/xen/arch/x86/traps-setup.c
index 99257bbb16ec..758c67b335bd 100644
--- a/xen/arch/x86/traps-setup.c
+++ b/xen/arch/x86/traps-setup.c
@@ -127,3 +127,15 @@ void percpu_traps_init(void)
     if ( cpu_has_xen_lbr )
         wrmsrl(MSR_IA32_DEBUGCTLMSR, IA32_DEBUGCTLMSR_LBR);
 }
+
+/*
+ * Configure exception handling on APs and S3.  Called before entering C
+ * properly, and before shadow stacks are activated.
+ *
+ * boot_gdt is currently loaded, and we must switch to our local GDT.  The
+ * local IDT has unknown IST-ness.
+ */
+void asmlinkage percpu_early_traps_init(void)
+{
+    load_system_tables();
+}
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 18:09:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 18:09:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082275.1442221 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umcOI-0005Os-IS; Thu, 14 Aug 2025 18:09:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082275.1442221; Thu, 14 Aug 2025 18:09: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 1umcOI-0005Ol-FT; Thu, 14 Aug 2025 18:09:30 +0000
Received: by outflank-mailman (input) for mailman id 1082275;
 Thu, 14 Aug 2025 18:09:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mOIo=22=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1umcOH-0005Of-F4
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 18:09:29 +0000
Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com
 [2a00:1450:4864:20::436])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d0f18594-7939-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 20:09:27 +0200 (CEST)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-3b9e418ba08so629630f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 11:09:27 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3b916394937sm7802792f8f.6.2025.08.14.11.09.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 11:09: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>
X-Inumbo-ID: d0f18594-7939-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755194967; x=1755799767; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=dUa4vDDKtXY0mKXKKCqtXMoCQIMztx30JacTWlz2leY=;
        b=EHLXrhAM2P9jwM9MMIa96L016Y3be6QofHFHQK6EYgV/Nqo1fWgl3T3HjfqWEzP1qJ
         MGnG/HSGz7o68avTOIq73pfDPFVcsFDwKP9J5YmQPqfQB2eKGgbTbH5UEtpFlEuK/uPD
         AwteTaSHwhNm+zFBmcDHuuJh/M0A72zZR5lqk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755194967; x=1755799767;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dUa4vDDKtXY0mKXKKCqtXMoCQIMztx30JacTWlz2leY=;
        b=SeUG6Hs4sAZw8jz6Reg9BY133FPRY3aEI0PK4vLWvZXOo3Lf+lV+uM/ycm0nhzxcyo
         /txl7qOGpkk441piH+uplMuRY7UXcmDR15d/7PmnX1+IFdWCicsdFixfMQW3HlonYPG1
         6pSTiUtp3kOzRrlsHilY6b4JHSqy4p27t5/QveUmuW9zgNp6Z2Nk5YCcaQwPa48z6WpM
         /vxeXIcx85EjEGKs4NT9ka8/WJyjd+v3A5whVw0KFr9aAp3xPQOAuMBkO+MvBzfUpa08
         PhYlI3+Bj2BP9xtwJByQAUAQGMOQ14GzIqxOSJsn/LPcAQE9If+YhxS4xovvRLqUVJ7U
         vtPw==
X-Forwarded-Encrypted: i=1; AJvYcCXjhLhBc7TkK6AYo7+0fvoSxZRhdzxeezjESoTEPlGToVMNrZrmtnVQB4FbPkzgzN+0iPPp71pWjSU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwEsX+8fTK/6Asxa14ZEpc9BxxPzITRhyUC3FEDP80FiOaHUpgD
	qUU3fwD7g7tJZ6dbxQWwStQPPp4mFeKbXHSMCvDvuelRrXlivW0CbldXTSKn0XuKoNX6uUGSQkd
	TOLSu
X-Gm-Gg: ASbGncvr7WnT2uf5cGGP/p3VqArnxB8Pf3Pb76NHTsqt3jzhuY7QIipSxJvn+zhw5M0
	eG/SKPK1lhOTSsWVOiV53AaU1s7DWZOj9dwzeZscazlcOAuZ3E6cEwZEt2E9HbFpyHnFp7H0IWE
	OytE8K7k9yuvA0986nhslwhdCPFh+qZIXE9KPszzaKQ/4arkH8c7YIz88upn3kEerMQZCdB5Skv
	lMgqFBtzBIxRTgWy64DQ2h/fDJxwQ+sC5++7krknVrvTXCJ/cr/xuVQReTevZyKLU8VTvVhP9tE
	EcUE1FA96pJoqbgEct0X/cNYxzePKU3K6Qt652V739RFoPF9tuVsuFEDHDOy85UNX5Z3x6HcCM9
	qwYxo4ZcpeAkFHtkxbOhFk4+74clNseJtoiUgWp4ztL5jxFowpy4i1b/8/l3S2hW4pait
X-Google-Smtp-Source: AGHT+IGdGMx8ZxuX+02H+n0fNLqhclXVTwQ9P+CYBwNKcc6zv7Y6aMQZuvRcSe8kRtjj7HrmA0j+4w==
X-Received: by 2002:a5d:5d88:0:b0:3b8:dabe:bd78 with SMTP id ffacd0b85a97d-3b9edfd625amr3623365f8f.54.1755194966904;
        Thu, 14 Aug 2025 11:09:26 -0700 (PDT)
Message-ID: <5def44a3-4139-4870-94f2-cb895078f968@citrix.com>
Date: Thu, 14 Aug 2025 19:09:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 09/22] x86/traps: Move load_system_tables() into
 traps-setup.c
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-10-andrew.cooper3@citrix.com>
 <a4a88d7a-8c1f-4170-a1fe-afafcad0c8ea@suse.com>
 <9e955bff-c145-4a52-af4f-a7055fc9aa67@citrix.com>
 <8e0b4a82-3189-4446-96a8-921d8ae44a21@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: <8e0b4a82-3189-4446-96a8-921d8ae44a21@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14/08/2025 9:55 am, Jan Beulich wrote:
> On 13.08.2025 13:25, Andrew Cooper wrote:
>> On 12/08/2025 10:19 am, Jan Beulich wrote:
>>> On 08.08.2025 22:23, Andrew Cooper wrote:
>>>> Since commit a35816b5cae8 ("x86/traps: Introduce early_traps_init() and
>>>> simplify setup"), load_system_tables() is called later on the BSP, so the
>>>> SYS_STATE_early_boot check can be dropped from the safety BUG_ON().
>>>>
>>>> Move the BUILD_BUG_ON() into build_assertions(),
>>> I'm not quite convinced of this move - having the related BUILD_BUG_ON()
>>> and BUG_ON() next to each other would seem better to me.
>> I don't see a specific reason for them to be together, and the comment
>> explains what's going on.
>>
>> With FRED, we want a related BUILD_BUG_ON(), but there's no equivalent
>> BUG_ON() because MSR_RSP_SL0 will #GP on being misaligned.
> That BUILD_BUG_ON() could then sit next to the MSR write? Unless of course
> that ends up sitting in an assembly source.

It's the bottom hunk in patch 14, which you've looked at now.

Personally, I think both BUILD_BUG_ON()'s should be together, because
they are related.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 18:20:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 18:20:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082333.1442231 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umcYn-0001QP-LE; Thu, 14 Aug 2025 18:20:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082333.1442231; Thu, 14 Aug 2025 18:20:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umcYn-0001QI-IL; Thu, 14 Aug 2025 18:20:21 +0000
Received: by outflank-mailman (input) for mailman id 1082333;
 Thu, 14 Aug 2025 18:20:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mOIo=22=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1umcYm-0001QA-6V
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 18:20:20 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 549102ad-793b-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 20:20:17 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-45a1b00f23eso6658575e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 11:20:17 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3b91b05b28fsm5459040f8f.21.2025.08.14.11.20.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 11:20: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>
X-Inumbo-ID: 549102ad-793b-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755195617; x=1755800417; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=MmZkt0R1b0M3Fai1YjWidcDQOmuulM3aGiIx5Uuomj4=;
        b=Fz1c0ablEzgUci2YGU/sUJFN366ia6j9I4XmF3NBESY81iAoQNiMTGBOTsLQoW2HYH
         HHtwBpg1w17QEgsz+9Z+WRpHEmrZQcbg8zBWdt9UCUxHaizZO2G2o1dw0DvQQ+TpYJJY
         3oQst5uzA4Ev3xmajFmU30uDuS58Iyf49u6U8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755195617; x=1755800417;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MmZkt0R1b0M3Fai1YjWidcDQOmuulM3aGiIx5Uuomj4=;
        b=Zw46clAwA9veRFozLDUf70iFEEZPoEIHW/fqqJkLVJaYWgWYtMPyGAnwuyWR9YHZo+
         jIW4BhKMmnlehU2FqPKjKghb4MwfxWg2CuUkKkbPnUlH7I4AMLTWVEpZWuSSqMqHODdM
         Is+IAwcDTwOWVbI55mpQ4sKvrGqioU4oLLx/4bLKWobJPi0cRGao6YU/WygmuMvVE4ot
         7AYzXz2BC6iayJFWzVbSkG0fMM9rOz08JFZfYTX5+99Lle8rPUZ98xQoSphv2vebS44t
         2SPGDix8uLqjx+MVI6OnMz+ON/PjdYLBo7warVYFwp2x1qr2w6AT2IM6E7HFL0Iyo5NT
         noxw==
X-Gm-Message-State: AOJu0Yz2IRu9cswBeHkBk/HMb9D62mOodYly5cO8kCkeCW4uB3+ZRPJh
	sGttTtSulJsk8ey6fjogK35hhFNlYRd0N0H9JlXo12Rl4/RgmIw1n2fP1VWbx11MHag=
X-Gm-Gg: ASbGncutzLt8kSMJa8sqgB1h9rNyE+7Ndm7HYWcL7aCKoce+CtAFCPbJzysDzXpFkrn
	DMfkfXrWYYHgxve0HRIn+AQ0IRMr6OG6+ddck7qYqSVnDQxHixaMvPBjTfYeAtBR/L0mBiydikH
	sGIl97BELUFISLj+F99FAgijwiMt3FKd0+b2rU5aSz6prGzs9XJT/WaOA2CoBoorUAhV+csC4/N
	lV23elNcpVYcoLLxcXAxKSAG+eu69Qzs0OOd6tEoSP8BO+Y/Wcvxd3ONQXYW4ROfyq4oOG5Tr7O
	gBWbn6a2FQPVKGhy40vPE1fn3taEuOjKjwsOrNaz7My9woklCUtOcKeK4gYMdzOx9oICJCqa1/s
	x6iNcEU8chyKqroq2qxpl3BpYD0Sxge4yXYi9GLQJyc0jbCUHvU4dbC/3tsSyAE2mI/sv0/WQK7
	AzT34=
X-Google-Smtp-Source: AGHT+IGQPPbKRRdkfIqwiymy+aegYBPv8KNVH6YXKDb/ozMJWeYXpbIKjXJPohbOpWdMbqPbB3Y9fg==
X-Received: by 2002:a05:600c:1988:b0:459:db80:c2d0 with SMTP id 5b1f17b1804b1-45a1b6152ccmr35487985e9.7.1755195617171;
        Thu, 14 Aug 2025 11:20:17 -0700 (PDT)
Message-ID: <0af415c5-df96-4715-a7e6-0d645e2e3a96@citrix.com>
Date: Thu, 14 Aug 2025 19:20:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 09/22] x86/traps: Move load_system_tables() into
 traps-setup.c
To: Jan Beulich <jbeulich@suse.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-10-andrew.cooper3@citrix.com>
 <80285a06f5d4fb3bd3e378317cca61ca@bugseng.com>
 <7e906964-b07d-4205-a683-e665f19d5edc@citrix.com>
 <aab37ec2-33bf-403b-978a-dc3c4bc282f7@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: <aab37ec2-33bf-403b-978a-dc3c4bc282f7@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14/08/2025 8:26 am, Jan Beulich wrote:
> On 13.08.2025 13:36, Andrew Cooper wrote:
>> On 12/08/2025 10:43 am, Nicola Vetrini wrote:
>>> On 2025-08-08 22:23, Andrew Cooper wrote:
>>>> diff --git a/xen/arch/x86/traps-setup.c b/xen/arch/x86/traps-setup.c
>>>> index 8ca379c9e4cb..13b8fcf0ba51 100644
>>>> --- a/xen/arch/x86/traps-setup.c
>>>> +++ b/xen/arch/x86/traps-setup.c
>>>> @@ -19,6 +20,124 @@ boolean_param("ler", opt_ler);
>>>>
>>>> Â void nocall entry_PF(void);
>>>>
>>>> +/*
>>>> + * Sets up system tables and descriptors for IDT devliery.
>>>> + *
>>>> + * - Sets up TSS with stack pointers, including ISTs
>>>> + * - Inserts TSS selector into regular and compat GDTs
>>>> + * - Loads GDT, IDT, TR then null LDT
>>>> + * - Sets up IST references in the IDT
>>>> + */
>>>> +static void load_system_tables(void)
>>>> +{
>>>> +Â Â Â  unsigned int i, cpu = smp_processor_id();
>>>> +Â Â Â  unsigned long stack_bottom = get_stack_bottom(),
>>>> +Â Â Â Â Â Â Â  stack_top = stack_bottom & ~(STACK_SIZE - 1);
>>>> +Â Â Â  /*
>>>> +Â Â Â Â  * NB: define tss_page as a local variable because clang 3.5
>>>> doesn't
>>>> +Â Â Â Â  * support using ARRAY_SIZE against per-cpu variables.
>>>> +Â Â Â Â  */
>>>> +Â Â Â  struct tss_page *tss_page = &this_cpu(tss_page);
>>>> +Â Â Â  idt_entry_t *idt = this_cpu(idt);
>>>> +
>>> Given the clang baseline this might not be needed anymore?
>> Hmm.Â  While true, looking at 51461114e26, the code is definitely better
>> written with the tss_page variable and we wouldn't want to go back to
>> the old form.
>>
>> I think that I'll simply drop the comment.
>>
>> ~Andrew
>>
>> P.S.
>>
>> Generally speaking, because of the RELOC_HIDE() in this_cpu(), any time
>> you ever want two accesses to a variable, it's better (code gen wise) to
>> construct a pointer to it and use the point multiple times.
>>
>> I don't understand why there's a RELOC_HIDE() in this_cpu().Â  The
>> justification doesn't make sense, but I've not had time to explore what
>> happens if we take it out.
> There's no justification in xen/percpu.h?

Well, it's given in compiler.h by RELOC_HIDE().

/* This macro obfuscates arithmetic on a variable address so that gcc
Â Â  shouldn't recognize the original var, and make assumptions about it */


But this is far from convincing.

>
> My understanding is that we simply may not expose any accesses to per_cpu_*
> variables directly to the compiler, or there's a risk that it might access
> the "master" variable (i.e. CPU0's on at least x86).

RELOC_HIDE() doesn't do anything about the correctness of the pointer
arithmetic expression to make the access work.

I don't see how a correct expression can ever access CPU0's data by
accident.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 18:46:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 18:46:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082389.1442240 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umcxR-00017R-Iz; Thu, 14 Aug 2025 18:45:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082389.1442240; Thu, 14 Aug 2025 18:45: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 1umcxR-00017K-GE; Thu, 14 Aug 2025 18:45:49 +0000
Received: by outflank-mailman (input) for mailman id 1082389;
 Thu, 14 Aug 2025 18:45:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mOIo=22=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1umcxQ-00017E-Kt
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 18:45:48 +0000
Received: from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com
 [2a00:1450:4864:20::42c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e45c96a3-793e-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 20:45:47 +0200 (CEST)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-3b9e414ef53so1121491f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 11:45:47 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3ba54b6c93fsm2059399f8f.12.2025.08.14.11.45.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 11:45: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>
X-Inumbo-ID: e45c96a3-793e-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755197147; x=1755801947; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=9/Zko+2yKa3WJ85zsniF0G9v8Wzy5uyGbRRZ97TxGmw=;
        b=fxZjxouKloWZe3y98oZ4yBf/j9MFNwHb1s8vpEbVs/udz+usx8PUs6IJuvUJAd2atL
         ujTDW4h5pvDPoVhYwgQl425bZrNiCO7n/957Wwrzqyh6PdNKGRFulDlHwWXzFskg59bZ
         8yyrXjdNIO4Jq6Up5nNC/uIM9C6BZA+NuEeuI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755197147; x=1755801947;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9/Zko+2yKa3WJ85zsniF0G9v8Wzy5uyGbRRZ97TxGmw=;
        b=wtzOd2ClO0QL1KYonH5hcTL8g47vOnLHV/men7UHC38g8gNxnxS9XeSg7/vduYApV2
         adH8gtH3SLjwNoD86RulKKb217+kR3+n1mmYEh0KCgPln1aTmjlMh/HqOgWlUEFrqvka
         Slb840Apr3e9sYSbqtfMWbYjPHu6h/KmFrbB1NKV83Rt89DuZF6M50xjwjysNIVXbkVS
         lLOhFZeqomhxyXa2wYM+KhurABnboa/G6TW1IFbEsO0A6KyiO5HaK2kw4JHbdtJbjj9D
         coWp6kfBQ28wQJaySOYAYJMS4qe1+xjNs0lmYJVlb7oKI3h4OPqo2hc0edJym4MAnkbl
         Khpg==
X-Forwarded-Encrypted: i=1; AJvYcCUzeJPb1nhjBowrNwwFszzEIvs2I/Z7WwXcBd91JcxnHBFu2LTdu47JHY0ul4UE/n6UZpEJCTv8rsA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxc2ddgNI/YZOmvODtpXWoX+1pDcmQg+KqCj8Sv5G1kwVIYBcUR
	GuOo/brN1v2Q9EITXjgRFTwuWGuhPdHmL3nc5pC2tY1U6cyJd8FZjFue8EfydopzBtY=
X-Gm-Gg: ASbGnctTIszrU/GjPvMSi6RSPkap54fhdAf5PYW87rgLGuS5WNjc9r7LLHG3i6UUrC+
	kyw0RMAvU4LsnZ2s4jyiFCtir7MXp3ANeL0ao0nJ1EGtQmacsU0tIuq5IGwWwGuwyix5//0WCIE
	1QgoGvQ3BhPn7mnh40VZUWnJRQ+HclWLkgjr+FzIHrmFKFQdy+p0N3cRDkh3d/17NenF3Ywkp7a
	T2xVhYluWvjHUZ7AaoiNOsvZFgcEg5lfy8sAATC2rWqkG3fBsaQwxJ7YKIl/66dAcgZ3ucnJ2M5
	EbmCm3ZzjP11YxtEb00/ulYcLEWATy/1tOwfrFy/n3+t9j78sqPVCNQwBnSN9I8i28c4661SCK2
	F5VkuCrXu9NZcq87iSl12N4j/gUUmCxR8nE9uY3GW0dT9HGilcmq1Bp7cBI8zhc45UFgq
X-Google-Smtp-Source: AGHT+IGiQAVO4siwkHMT3ShwKyY6J8zzZ1zOrRwUS8GBBSX52VjgW7eXlwJ8QKhZ008/OPcbcUNrDA==
X-Received: by 2002:a05:6000:40ce:b0:3b8:f8d0:f75c with SMTP id ffacd0b85a97d-3b9edf2d867mr4085817f8f.35.1755197146970;
        Thu, 14 Aug 2025 11:45:46 -0700 (PDT)
Message-ID: <79521edc-34d9-4364-922d-158e93fcbc04@citrix.com>
Date: Thu, 14 Aug 2025 19:45:45 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 13/22] x86: FRED enumerations
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-14-andrew.cooper3@citrix.com>
 <9b4da5b3-dd68-4052-92cc-fe322164eaa5@suse.com>
 <737eab59-f016-426a-ba6e-e6c7a58a9e61@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: <737eab59-f016-426a-ba6e-e6c7a58a9e61@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14/08/2025 2:19 pm, Jan Beulich wrote:
> On 14.08.2025 13:20, Jan Beulich wrote:
>> On 08.08.2025 22:23, Andrew Cooper wrote:
>>> --- a/xen/include/public/arch-x86/cpufeatureset.h
>>> +++ b/xen/include/public/arch-x86/cpufeatureset.h
>>> @@ -310,7 +310,10 @@ XEN_CPUFEATURE(ARCH_PERF_MON, 10*32+8) /*   Architectural Perfmon */
>>>  XEN_CPUFEATURE(FZRM,         10*32+10) /*A  Fast Zero-length REP MOVSB */
>>>  XEN_CPUFEATURE(FSRS,         10*32+11) /*A  Fast Short REP STOSB */
>>>  XEN_CPUFEATURE(FSRCS,        10*32+12) /*A  Fast Short REP CMPSB/SCASB */
>>> +XEN_CPUFEATURE(FRED,         10*32+17) /*   Fast Return and Event Delivery */
>>> +XEN_CPUFEATURE(LKGS,         10*32+18) /*   Load Kernel GS instruction */
>>>  XEN_CPUFEATURE(WRMSRNS,      10*32+19) /*S  WRMSR Non-Serialising */
>>> +XEN_CPUFEATURE(NMI_SRC,      10*32+20) /*   NMI-Source Reporting */
>>>  XEN_CPUFEATURE(AMX_FP16,     10*32+21) /*   AMX FP16 instruction */
>>>  XEN_CPUFEATURE(AVX_IFMA,     10*32+23) /*A  AVX-IFMA Instructions */
>>>  XEN_CPUFEATURE(LAM,          10*32+26) /*   Linear Address Masking */
>> I'd like to note that we could long have had this if my long-pending emulator
>> patch had gone in at some point.
> Actually what I further have there, and what in the context of patch 15 I
> notice you should have here is
>
> --- a/xen/tools/gen-cpuid.py
> +++ b/xen/tools/gen-cpuid.py
> @@ -278,7 +278,8 @@ def crunch_numbers(state):
>          # superpages, PCID and PKU are only available in 4 level paging.
>          # NO_LMSL indicates the absense of Long Mode Segment Limits, which
>          # have been dropped in hardware.
> -        LM: [CX16, PCID, LAHF_LM, PAGE1GB, PKU, NO_LMSL, AMX_TILE, CMPCCXADD],
> +        LM: [CX16, PCID, LAHF_LM, PAGE1GB, PKU, NO_LMSL, AMX_TILE, CMPCCXADD,
> +             LKGS],
>  
>          # AMD K6-2+ and K6-III processors shipped with 3DNow+, beyond the
>          # standard 3DNow in the earlier K6 processors.
> @@ -347,6 +348,9 @@ def crunch_numbers(state):
>          # computational instructions.  All further AMX features are built on top
>          # of AMX-TILE.
>          AMX_TILE: [AMX_BF16, AMX_INT8, AMX_FP16, AMX_COMPLEX],
> +
> +        # FRED builds on the LKGS instruction.
> +        LKGS: [FRED],
>      }
>  
>      deep_features = tuple(sorted(deps.keys()))

Hmm.Â  Yes, but normally this is part of guest enablement.

Having now done the Xen work and concluded that we don't actually need
LKGS, I'm rethinking the linkage here.Â  It's probably the right thing to
do in practice, but probably needs a bit more in the way of
justification.Â  "built on" doesn't quite cut it IMO.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 19:16:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 19:16:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082403.1442251 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umdQy-0001Ay-R0; Thu, 14 Aug 2025 19:16:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082403.1442251; Thu, 14 Aug 2025 19:16: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 1umdQy-0001Ar-OJ; Thu, 14 Aug 2025 19:16:20 +0000
Received: by outflank-mailman (input) for mailman id 1082403;
 Thu, 14 Aug 2025 19:16:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mOIo=22=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1umdQx-0001Al-Tz
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 19:16:19 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 254eb874-7943-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 21:16:14 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-45a20c51c40so440485e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 12:16:14 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45a1c71068csm30438435e9.29.2025.08.14.12.16.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 12:16: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>
X-Inumbo-ID: 254eb874-7943-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755198974; x=1755803774; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=fvSxKhl9hrp5VRKuGPAXqBCjiWHN7luQcrTvacgPQqY=;
        b=qHhXRRR/X7TSkMsT4Gv8nFEBjS+jsgccK8ROb19nfuX+VtxE5GaJcvyZ7R8FjVunoL
         pzlUjPnJyqpW6dU4LO6UmXkelGqWYHny7xTXLdbQYf2Nn7ShDKZpD8TFApb82KExsL5B
         FzhP8rTUqa7+9SoFaVhKSUOAG0a99b4LIhaso=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755198974; x=1755803774;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fvSxKhl9hrp5VRKuGPAXqBCjiWHN7luQcrTvacgPQqY=;
        b=Z2y9dJIsy0bnk5dgGXXQP39HUpoZAuI/khUikeUvevyXPbD/xTgWKk9uTgoyrcVltD
         LMnXyt/zsWHPdbUuZk5QJhrY6ehUbx222QsBnY/sznkOq2SRYszVx6f8TVrfudr4QC3N
         LZ4Mw5AqNtHUAHdVfC9MrHQjvKdmZND/4h51msFWQvess8OMfhEudGbtAm9wVQuSIdbu
         uRopHZD2nLAGSmT/biE0xK5gPDGF/c+b6MhM1IubDuVAiFPacShXhoO5BaFUCXwsq0mb
         JdTpipJIkHMt8v57yV68NpYtXnQLvfhT5cMRMxq2F+P10bbbE3VUv/Qiz4bUXy5Utrqu
         3v9g==
X-Gm-Message-State: AOJu0YwTA4yIQ0yqqeyeUDO++WIeUPQh+p7W2ucns8uUA3BjXHh3fkML
	WSJBtSx7KYWulGcrvGUyxHZHPLmdL/j8lBwk8LBAtSzkdLMlHHZzsZWOtGWoFb2Zc5g=
X-Gm-Gg: ASbGncu0gADb+yuGLv/qOBxeZLy2+qLX6tnB0E72qUm03viiqMtoGBbBDMMXonyT5e9
	D1B2RmljcWkkKbP9eehjeW08kBpKpVt5ro60VcBb8V40GEMJjnT7SB6rcDvP/fqYPSmUlgfjCpK
	nzovF9/MvWiH37DSdknT5BazFKoSdsR1HHjAVEydKe6H0ILmPEE8+6d2US23ubB63S3Sh31blhb
	eWuSOxcXHX9S0ijs0iTxI3XZFPUTMdPYRjabi/gXx18M9pvRlRcqQjoiCZh0CzD64y7YI1yQT6i
	qOWhAKb8DPH4ZEPuj8ZdPL3yZcC4G321zMX9zGuA/Vrt31aBMdsuv20RsgRyAULzmKk+nIWsXXq
	2Nm36Uw2WXDE1bN3aIENvXYsQVj/774C2MEExkaFVvgHunX9yfL0dldm90JLNZWFplMw6
X-Google-Smtp-Source: AGHT+IFjg6gAE/jKm3eUDld0/P6lacsCR5feUoRad8CD8Rd0VzZlYm3En+Itr4OhbZgOrMT/QRseKQ==
X-Received: by 2002:a05:600c:4fc7:b0:455:f59e:fdaa with SMTP id 5b1f17b1804b1-45a20c11693mr1182905e9.21.1755198973894;
        Thu, 14 Aug 2025 12:16:13 -0700 (PDT)
Message-ID: <8adbd032-9da2-481d-8d98-30c9a605ec46@citrix.com>
Date: Thu, 14 Aug 2025 20:16:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 15/22] x86/traps: Introduce opt_fred
To: Jan Beulich <jbeulich@suse.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-16-andrew.cooper3@citrix.com>
 <0a6b6fce-2cc8-4933-8703-399e4a4fdad6@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: <0a6b6fce-2cc8-4933-8703-399e4a4fdad6@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14/08/2025 2:30 pm, Jan Beulich wrote:
> On 08.08.2025 22:23, Andrew Cooper wrote:
>> ... disabled by default.  There is a lot of work before FRED can be enabled by
>> default.
>>
>> One part of FRED, the LKGS (Load Kernel GS) instruction, is enumerated
>> separately but is mandatory as FRED disallows the SWAPGS instruction.
>> Therefore, both CPUID bits must be checked.
> See my (further) reply to patch 13 - I think FRED simply ought to depend on
> LKGS.
>
>> @@ -20,6 +22,9 @@ unsigned int __ro_after_init ler_msr;
>>  static bool __initdata opt_ler;
>>  boolean_param("ler", opt_ler);
>>  
>> +int8_t __ro_after_init opt_fred = 0; /* -1 when supported. */
> I'm a little puzzled by the comment? DYM "once default-enabled"?

Well, I have this temporary patch
https://gitlab.com/xen-project/hardware/xen-staging/-/commit/70ef6a1178a411a29b7b1745a1112e267ffb6245
that will turn into a real patch when we enable FRED by default.

As much as anything else, it was just a TODO.


>  Then ...
>
>> @@ -305,6 +310,32 @@ void __init traps_init(void)
>>      /* Replace early pagefault with real pagefault handler. */
>>      _update_gate_addr_lower(&bsp_idt[X86_EXC_PF], entry_PF);
>>  
>> +    if ( !cpu_has_fred || !cpu_has_lkgs )
>> +    {
>> +        if ( opt_fred )
> ... this won't work anymore once the initializer is changed.

Hmm yes.Â  That wants to be an == 1 check.Â  Fixed.

>
>> +            printk(XENLOG_WARNING "FRED not available, ignoring\n");
>> +        opt_fred = false;
> Better use 0 here?
>
>> +    }
>> +
>> +    if ( opt_fred == -1 )
>> +        opt_fred = !pv_shim;
> Imo it would be better to have the initializer be -1 right away, and comment
> out the "!pv_shim" here, until we mean it to be default-enabled.

It cannot be -1, or Xen will fail spectacularly on any FRED capable
hardware.Â  Setting to -1 is the point at which FRED becomes security
supported.

>
>> +    if ( opt_fred )
>> +    {
>> +#ifdef CONFIG_PV32
>> +        if ( opt_pv32 )
>> +        {
>> +            opt_pv32 = 0;
>> +            printk(XENLOG_INFO "Disabling PV32 due to FRED\n");
>> +        }
>> +#endif
>> +        printk("Using FRED event delivery\n");
>> +    }
>> +    else
>> +    {
>> +        printk("Using IDT event delivery\n");
>> +    }
> Could I talk you into omitting the figure braces here? Hmm, or perhaps you
> mean to later move code here.

Indeed, patch 22.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 19:20:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 19:20:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082417.1442260 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umdV5-00032J-Fo; Thu, 14 Aug 2025 19:20:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082417.1442260; Thu, 14 Aug 2025 19:20:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umdV5-00032C-D8; Thu, 14 Aug 2025 19:20:35 +0000
Received: by outflank-mailman (input) for mailman id 1082417;
 Thu, 14 Aug 2025 19:20:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vYBG=22=csgroup.eu=christophe.leroy@srs-se1.protection.inumbo.net>)
 id 1umdV4-000326-7q
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 19:20:34 +0000
Received: from pegase2.c-s.fr (pegase2.c-s.fr [93.17.235.10])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id bf81a879-7943-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 21:20:33 +0200 (CEST)
Received: from localhost (mailhub4.si.c-s.fr [172.26.127.67])
 by localhost (Postfix) with ESMTP id 4c2vpK65M9z9sSH;
 Thu, 14 Aug 2025 21:05:45 +0200 (CEST)
Received: from pegase2.c-s.fr ([172.26.127.65])
 by localhost (pegase2.c-s.fr [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id ZPu83EvDtL2B; Thu, 14 Aug 2025 21:05:45 +0200 (CEST)
Received: from messagerie.si.c-s.fr (messagerie.si.c-s.fr [192.168.25.192])
 by pegase2.c-s.fr (Postfix) with ESMTP id 4c2vpK3P9dz9sSC;
 Thu, 14 Aug 2025 21:05:45 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1])
 by messagerie.si.c-s.fr (Postfix) with ESMTP id 16AD08B764;
 Thu, 14 Aug 2025 21:05:45 +0200 (CEST)
Received: from messagerie.si.c-s.fr ([127.0.0.1])
 by localhost (messagerie.si.c-s.fr [127.0.0.1]) (amavisd-new, port 10023)
 with ESMTP id v81OkG88qzZ0; Thu, 14 Aug 2025 21:05:44 +0200 (CEST)
Received: from [192.168.235.99] (unknown [192.168.235.99])
 by messagerie.si.c-s.fr (Postfix) with ESMTP id 592BF8B763;
 Thu, 14 Aug 2025 21:05:43 +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>
X-Inumbo-ID: bf81a879-7943-11f0-a328-13f23c93f187
X-Virus-Scanned: amavisd-new at c-s.fr
X-Virus-Scanned: amavisd-new at c-s.fr
Message-ID: <ccc8eeba-757a-440d-80d3-9158e80c19fe@csgroup.eu>
Date: Thu, 14 Aug 2025 21:05:42 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 00/16] dma-mapping: migrate to physical address-based
 API
To: Leon Romanovsky <leon@kernel.org>,
 Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Jason Gunthorpe <jgg@nvidia.com>,
 Abdiel Janulgue <abdiel.janulgue@gmail.com>,
 Alexander Potapenko <glider@google.com>, Alex Gaynor
 <alex.gaynor@gmail.com>, Andrew Morton <akpm@linux-foundation.org>,
 Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
 iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
 Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
 Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
 kasan-dev@googlegroups.com, Keith Busch <kbusch@kernel.org>,
 linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
 linux-kernel@vger.kernel.org, linux-mm@kvack.org,
 linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
 linux-trace-kernel@vger.kernel.org, Madhavan Srinivasan
 <maddy@linux.ibm.com>, Masami Hiramatsu <mhiramat@kernel.org>,
 Michael Ellerman <mpe@ellerman.id.au>, "Michael S. Tsirkin"
 <mst@redhat.com>, Miguel Ojeda <ojeda@kernel.org>,
 Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
 Sagi Grimberg <sagi@grimberg.me>, Stefano Stabellini
 <sstabellini@kernel.org>, Steven Rostedt <rostedt@goodmis.org>,
 virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
 xen-devel@lists.xenproject.org
References: <cover.1755193625.git.leon@kernel.org>
From: Christophe Leroy <christophe.leroy@csgroup.eu>
Content-Language: fr-FR
In-Reply-To: <cover.1755193625.git.leon@kernel.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit



Le 14/08/2025 Ã  19:53, Leon Romanovsky a Ã©critÂ :
> Changelog:
> v3:
>   * Fixed typo in "cacheable" word
>   * Simplified kmsan patch a lot to be simple argument refactoring

v2 sent today at 12:13, v3 sent today at 19:53 .... for only that ?

Have you read 
https://docs.kernel.org//process/submitting-patches.html#don-t-get-discouraged-or-impatient 
?

Thanks
Christophe

> v2: https://lore.kernel.org/all/cover.1755153054.git.leon@kernel.org
>   * Used commit messages and cover letter from Jason
>   * Moved setting IOMMU_MMIO flag to dma_info_to_prot function
>   * Micro-optimized the code
>   * Rebased code on v6.17-rc1
> v1: https://lore.kernel.org/all/cover.1754292567.git.leon@kernel.org
>   * Added new DMA_ATTR_MMIO attribute to indicate
>     PCI_P2PDMA_MAP_THRU_HOST_BRIDGE path.
>   * Rewrote dma_map_* functions to use thus new attribute
> v0: https://lore.kernel.org/all/cover.1750854543.git.leon@kernel.org/
> ------------------------------------------------------------------------
> 
> This series refactors the DMA mapping to use physical addresses
> as the primary interface instead of page+offset parameters. This
> change aligns the DMA API with the underlying hardware reality where
> DMA operations work with physical addresses, not page structures.
> 
> The series maintains export symbol backward compatibility by keeping
> the old page-based API as wrapper functions around the new physical
> address-based implementations.
> 
> This series refactors the DMA mapping API to provide a phys_addr_t
> based, and struct-page free, external API that can handle all the
> mapping cases we want in modern systems:
> 
>   - struct page based cachable DRAM
>   - struct page MEMORY_DEVICE_PCI_P2PDMA PCI peer to peer non-cachable
>     MMIO
>   - struct page-less PCI peer to peer non-cachable MMIO
>   - struct page-less "resource" MMIO
> 
> Overall this gets much closer to Matthew's long term wish for
> struct-pageless IO to cachable DRAM. The remaining primary work would
> be in the mm side to allow kmap_local_pfn()/phys_to_virt() to work on
> phys_addr_t without a struct page.
> 
> The general design is to remove struct page usage entirely from the
> DMA API inner layers. For flows that need to have a KVA for the
> physical address they can use kmap_local_pfn() or phys_to_virt(). This
> isolates the struct page requirements to MM code only. Long term all
> removals of struct page usage are supporting Matthew's memdesc
> project which seeks to substantially transform how struct page works.
> 
> Instead make the DMA API internals work on phys_addr_t. Internally
> there are still dedicated 'page' and 'resource' flows, except they are
> now distinguished by a new DMA_ATTR_MMIO instead of by callchain. Both
> flows use the same phys_addr_t.
> 
> When DMA_ATTR_MMIO is specified things work similar to the existing
> 'resource' flow. kmap_local_pfn(), phys_to_virt(), phys_to_page(),
> pfn_valid(), etc are never called on the phys_addr_t. This requires
> rejecting any configuration that would need swiotlb. CPU cache
> flushing is not required, and avoided, as ATTR_MMIO also indicates the
> address have no cachable mappings. This effectively removes any
> DMA API side requirement to have struct page when DMA_ATTR_MMIO is
> used.
> 
> In the !DMA_ATTR_MMIO mode things work similarly to the 'page' flow,
> except on the common path of no cache flush, no swiotlb it never
> touches a struct page. When cache flushing or swiotlb copying
> kmap_local_pfn()/phys_to_virt() are used to get a KVA for CPU
> usage. This was already the case on the unmap side, now the map side
> is symmetric.
> 
> Callers are adjusted to set DMA_ATTR_MMIO. Existing 'resource' users
> must set it. The existing struct page based MEMORY_DEVICE_PCI_P2PDMA
> path must also set it. This corrects some existing bugs where iommu
> mappings for P2P MMIO were improperly marked IOMMU_CACHE.
> 
> Since ATTR_MMIO is made to work with all the existing DMA map entry
> points, particularly dma_iova_link(), this finally allows a way to use
> the new DMA API to map PCI P2P MMIO without creating struct page. The
> VFIO DMABUF series demonstrates how this works. This is intended to
> replace the incorrect driver use of dma_map_resource() on PCI BAR
> addresses.
> 
> This series does the core code and modern flows. A followup series
> will give the same treatment to the legacy dma_ops implementation.
> 
> Thanks
> 
> Leon Romanovsky (16):
>    dma-mapping: introduce new DMA attribute to indicate MMIO memory
>    iommu/dma: implement DMA_ATTR_MMIO for dma_iova_link().
>    dma-debug: refactor to use physical addresses for page mapping
>    dma-mapping: rename trace_dma_*map_page to trace_dma_*map_phys
>    iommu/dma: rename iommu_dma_*map_page to iommu_dma_*map_phys
>    iommu/dma: extend iommu_dma_*map_phys API to handle MMIO memory
>    dma-mapping: convert dma_direct_*map_page to be phys_addr_t based
>    kmsan: convert kmsan_handle_dma to use physical addresses
>    dma-mapping: handle MMIO flow in dma_map|unmap_page
>    xen: swiotlb: Open code map_resource callback
>    dma-mapping: export new dma_*map_phys() interface
>    mm/hmm: migrate to physical address-based DMA mapping API
>    mm/hmm: properly take MMIO path
>    block-dma: migrate to dma_map_phys instead of map_page
>    block-dma: properly take MMIO path
>    nvme-pci: unmap MMIO pages with appropriate interface
> 
>   Documentation/core-api/dma-api.rst        |   4 +-
>   Documentation/core-api/dma-attributes.rst |  18 ++++
>   arch/powerpc/kernel/dma-iommu.c           |   4 +-
>   block/blk-mq-dma.c                        |  15 ++-
>   drivers/iommu/dma-iommu.c                 |  61 +++++------
>   drivers/nvme/host/pci.c                   |  18 +++-
>   drivers/virtio/virtio_ring.c              |   4 +-
>   drivers/xen/swiotlb-xen.c                 |  21 +++-
>   include/linux/blk-mq-dma.h                |   6 +-
>   include/linux/blk_types.h                 |   2 +
>   include/linux/dma-direct.h                |   2 -
>   include/linux/dma-map-ops.h               |   8 +-
>   include/linux/dma-mapping.h               |  33 ++++++
>   include/linux/iommu-dma.h                 |  11 +-
>   include/linux/kmsan.h                     |   9 +-
>   include/trace/events/dma.h                |   9 +-
>   kernel/dma/debug.c                        |  71 ++++---------
>   kernel/dma/debug.h                        |  37 ++-----
>   kernel/dma/direct.c                       |  22 +---
>   kernel/dma/direct.h                       |  52 ++++++----
>   kernel/dma/mapping.c                      | 117 +++++++++++++---------
>   kernel/dma/ops_helpers.c                  |   6 +-
>   mm/hmm.c                                  |  19 ++--
>   mm/kmsan/hooks.c                          |   7 +-
>   rust/kernel/dma.rs                        |   3 +
>   tools/virtio/linux/kmsan.h                |   2 +-
>   26 files changed, 306 insertions(+), 255 deletions(-)
> 



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 19:23:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 19:23:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082424.1442271 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umdXM-0004mt-SL; Thu, 14 Aug 2025 19:22:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082424.1442271; Thu, 14 Aug 2025 19:22: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 1umdXM-0004mm-Og; Thu, 14 Aug 2025 19:22:56 +0000
Received: by outflank-mailman (input) for mailman id 1082424;
 Thu, 14 Aug 2025 19:22:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mOIo=22=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1umdXL-0004k2-1J
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 19:22:55 +0000
Received: from mail-wr1-x42a.google.com (mail-wr1-x42a.google.com
 [2a00:1450:4864:20::42a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 12d3f335-7944-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 21:22:53 +0200 (CEST)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-3b9d41baedeso743505f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 12:22:53 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45a1c70cb83sm31261025e9.27.2025.08.14.12.22.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 12:22: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>
X-Inumbo-ID: 12d3f335-7944-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755199372; x=1755804172; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=X8psSapV7C1ENqgkkCPKgquvOZX0QY9OZ5KZkH3TqcU=;
        b=t2H1tJFHicbkAXruqWu4SIthsYrryTvt2px0qnPIL39G2ZRfpu6P1BTLOacPLG3UWM
         7mYcvwZVHv2d2CmngZGKCxhtQxUoYi0RGQEpZypBVl8g3IArqR81lH4W+zTh6WWyPHKG
         VcTgUBdgndYJeFzUrm25BiXxiA4mU1GJeAciE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755199372; x=1755804172;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=X8psSapV7C1ENqgkkCPKgquvOZX0QY9OZ5KZkH3TqcU=;
        b=PMIjm8AIonBfexxAQpGFnhTUrxJld/NsuXxeIl75FZO7k9ZDGl5poZXWycznLVTNJ/
         uigg6AWyDlY8DzE2rPhxOB0JSooCvNUrZMi7ucua41M7Bn9bdF3ov5T/+bG27VEmVjXy
         aAgOSuSOyjPsL2AUpaMn+h6NqvbfAb4S4B1DDtytpm6jzfApgyy+o/uqi0p2PjIeGrxD
         DjLIOVsFPa2b/w9r+BdNc1qRjVTd817joQ3zinTjkldK05jGrocERP3qo33jPV8SnvLt
         aKUkRrCFfI1CKKaPSyf0EHfwqM9cxpNDXqIDCzg1+ozvU3BbIAalrD1UIjIIc6X3hIfx
         JFsQ==
X-Forwarded-Encrypted: i=1; AJvYcCXqRBXEOgKS2ed20lLK96GmKZcCtreoe8j85x+sD6NYV67gFCgUUbNO3+0gekfjj58tnQMZaV6gjjQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzgIKzHjXOfvAQLVJZ6y2b/Jg5RG/8wYbDfJtP+NshWHr+drX36
	P2tC0ewZz8GaHGtCxfEcXSHedx0eR4Fxc9B3TXnKFi2mNKRwDznQn9PDvU1DltGY1q4=
X-Gm-Gg: ASbGnctNwGz1djPw6q5wiH++fHHhxSnuEFIqqnjBYX3n0cnHkuahnA6BNt+o/1lBXPP
	rWv+Mt+uD6pbMtrtz+W73RrOoUUO71aQxgOC6xlOfNyqeVLF5Ydp3L2NhBBRFyifovdWeRaGFZX
	q7xm9JIwo6CxDOKN/i19JlSW05kB/SbC58+7FwHL2kP/AwoP12AygKDVmHshnNI0jo/DAL5rDYs
	0qUSdUyHFjOY3XcW6yRGY3NE/hPDD5XUidKPIbc7Ulzfwgtf7AN/HlR4yScbRdFylBJ3M74jiKI
	CLzCXzbXPkFDl30xRX+nmVgJlMd4TJFps+ABj/gc41uN8Z19Q5jNfKSY9ES2HcgZ3UryXPs/GUh
	to1SfGEkPr1fOG5AK62jPuGZhFtU5NJOwzeRtmUCtBW4sss1okHp9NAeXFEqO3sPx4RPQ
X-Google-Smtp-Source: AGHT+IEX8JhrveqNbHIrD32CDXIweyb9ZuOkJGOwK234Jr8q/qkavNlEJWO3T7WR+VXeT5aN31fDpw==
X-Received: by 2002:a05:6000:401f:b0:3a4:f50b:ca2 with SMTP id ffacd0b85a97d-3b9edf903e9mr4028619f8f.8.1755199372429;
        Thu, 14 Aug 2025 12:22:52 -0700 (PDT)
Message-ID: <17e90568-36f0-439a-aa8e-00779d07de49@citrix.com>
Date: Thu, 14 Aug 2025 20:22:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 16/22] x86/boot: Adjust CR4 handling around
 ap_early_traps_init()
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-17-andrew.cooper3@citrix.com>
 <270b2ad1-fb8a-4a0a-8733-a8f3f8f25a94@suse.com>
 <64dc9f62-b48e-400b-8840-feff2f688913@citrix.com>
 <b4315516-289f-4495-a0c7-f504f92ec5cd@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: <b4315516-289f-4495-a0c7-f504f92ec5cd@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14/08/2025 3:56 pm, Jan Beulich wrote:
> On 14.08.2025 16:54, Andrew Cooper wrote:
>> On 14/08/2025 3:47 pm, Jan Beulich wrote:
>>> On 08.08.2025 22:23, Andrew Cooper wrote:
>>>> --- a/xen/arch/x86/boot/x86_64.S
>>>> +++ b/xen/arch/x86/boot/x86_64.S
>>>> @@ -11,16 +11,19 @@ ENTRY(__high_start)
>>>>          mov     %ecx,%gs
>>>>          mov     %ecx,%ss
>>>>  
>>>> -        /* Enable minimal CR4 features. */
>>>> -        mov     $XEN_MINIMAL_CR4,%rcx
>>>> -        mov     %rcx,%cr4
>>>> -
>>>>          mov     stack_start(%rip),%rsp
>>>>  
>>>>          /* Reset EFLAGS (subsumes CLI and CLD). */
>>>>          pushq   $0
>>>>          popf
>>>>  
>>>> +        GET_STACK_END(15)
>>>> +
>>>> +        /* Enable minimal CR4 features. */
>>>> +        mov     $XEN_MINIMAL_CR4, %eax
>>>> +        mov     %rax, STACK_CPUINFO_FIELD(cr4)(%r15)
>>> ... this could be 32-bit stores, even in the longer run.
>> ... no, they can't.
>>
>> The store also serves to clear out stale X86_CR4_FRED, prior to FRED
>> getting reconfigured again.
>>
>> fatal_trap() uses info->cr4 to decide whether it's safe to look at the
>> extended FRED metadata.Â  Strictly speaking I probably ought to read the
>> real CR4 (in read_registers too), but using a 32bit store here would
>> extend a 1-instruction window into quite a larger window where exception
>> handling would not work quite right.
> Oh, I see. Mind me asking to add brief comments there to this effect?

I've changed it to:

/* Enable minimal CR4 features, sync cached state. */

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 19:37:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 19:37:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082434.1442281 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umdlB-0008D7-1J; Thu, 14 Aug 2025 19:37:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082434.1442281; Thu, 14 Aug 2025 19:37: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 1umdlA-0008D0-Tw; Thu, 14 Aug 2025 19:37:12 +0000
Received: by outflank-mailman (input) for mailman id 1082434;
 Thu, 14 Aug 2025 19:37:11 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=QQqN=22=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1umdl9-0008Cs-7S
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 19:37:11 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 10a5f390-7946-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 21:37:08 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 205144EE3C04;
 Thu, 14 Aug 2025 21:37:07 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 10a5f390-7946-11f0-b898-0df219b8e170
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=1755200227;
	b=VoehlsPTRNB/8vXLEW1Voa6kyf1wqS463teExrvejTltdPPrQ+L4Mdhar7uD5o+outlL
	 BTKEz4++reDQqiLyaI3ohvwEw6JJZPjPYETya6hFEhW/vWPNNQVzn18u1jSg6OaNxb52P
	 +LbJ2E1h+nOKj0QpW3Q1Uzq4aernLxG3+BvUgSAfX6WdWVyWIVnfuNRyePWzmc2p4XbYH
	 MZvSKN8YealOlmLjLH4X+UyPkLeY7xGP63VcfgtUgbe/dNhNLdHkZnWvN18Cd4j01dLis
	 Iw5IwJqK+0XPYRKe1TRPrO+YugEsm3JiLEHREMxTLpkxStxMPeo20vtkupK863aYtle52
	 s00lS5zQ80OY2z7ecmQO2bI/Z6i7JGEMkCH87H5s7TTIG0m0r/0H0Kt6p4SOEa2D4kB/s
	 K4hxDXwti3rje4NRXly4lYGzoOzq8VewZ4lQFN2NalnF7Eed/MIyVG2IqQI36HcqbcEwe
	 +/5heTQRAdSC+1TrtrbpiVqalcl2WiBTnBM4A6eswumIxrowSGwoqbTgS1lT2ghmQCVJc
	 zp62d9/zRQljpJZb+u4PuSZraP5FcWuBpFNklrTgYzetBUjxNrePgZ4ZxcFzZzE/UMFcK
	 IzGsMf8il0Tdpz+/b90sQoLGpb91OKdfUo413SGWCxngJCSiOpOuIhVFCHay+7E=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1755200227;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=ph7jdZQ9NX/u8qetWLQ4Vkglvn/rONeb5m5p/5MafIo=;
	b=ibHsmJhqBIpZ28PUIqHVvCsky1kr9cmruwYB7TPA9Sdx7wOwhbHWdJEhieyTByeoRXBz
	 +QR5lreIf6WskOp7H/y7g5fD21t8/kUud5BCMVTXZ4Y6X1r/Y8zC8mi7qm4OS/NySHPte
	 Tb+0lVA4iWKTa6vhacrN4v3QkjvTY3CqyPrGNuHlyRtsJxAamRMIAnqx/NWntaTXiLWIi
	 hZK8I8x423l4ummytWs//4sMbCjZkfAJEGiRGz+i9fuJx3hldjNN6IuGk5ZFH3lk+y7Ju
	 7lLeZs8/xmKn23Zcmh4fA9yl1HYdDusSAckoOInkIzNZKt3jeGEL7enjb3MLBcQcFWWMd
	 KiYRLmPJr5Si58lvs8qSLfwtMF3JDNOz8oAptmyZv45VKfiJo+5c2uKQGztfhlkYsm43Q
	 3HLzwE4mOV6X/bnJooTDrDy1Wzlyd+zHzzn8/lB1Y/PHUmfKata33R6ClS3Q4Gp2LxxM7
	 nCbsuCv95iEif58wUOaey02P4pNqMZVR0gHHMAjPFrUb+6A/PJa1fubNFdnTJdYkyxHvT
	 W3xcfRKscUfWz/ChAZ6HpRpvdMt88BIqz8xpWirUd/62sDFw9AjOXNJpzzQUow3aDrTXj
	 VoxzdAsWGnoQLo3bHMWlTf4Icgrl1obkZu+y05FsFWzUmP7hyeavYEJOsVnJaso=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1755200227; bh=QycrJWiuoyqqNf7RG1Xgq94L+aMciX+ilz5eWfCflKo=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=qMqdM5daQFbVpCbjawj/xxwXkYPPcV5+RW0dj7t+/4IPAN8D/N5Zc7v/7LVd/fYud
	 pMxTQaZipulpdwYWKYvaq0Iscpw0om1/ReS7246yY/JcNB7LL16nf7GHrZwj3btvpO
	 GKK7Dr3DxjUIu6GalYvTdwNMdjDRivvE8Gww/pRAgNDvOgOky1g3fER3N930ds5hXf
	 v9kZ0Cr7kZPqAIe8ynm0TwWwJPSFHfnFNkNzcBTGcoag/5mKcHXNMh8A9oGeKKvihx
	 Bee4B7uy/PM2pTDV/NySB56wNyAVLWc4W87z2if/K6oTY/w1J+vFFxdatCoW3ojeWW
	 BJG8rNExWJpdg==
MIME-Version: 1.0
Date: Thu, 14 Aug 2025 21:37:07 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 13/22] x86: FRED enumerations
In-Reply-To: <b058cb18-7a03-403d-b0c4-402fc0353da2@citrix.com>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-14-andrew.cooper3@citrix.com>
 <9b4da5b3-dd68-4052-92cc-fe322164eaa5@suse.com>
 <9cc46920-b1a6-4085-8481-abf0f1cd0aab@citrix.com>
 <c7e82bee-1b38-41e1-89c6-d1d3717087b2@suse.com>
 <b058cb18-7a03-403d-b0c4-402fc0353da2@citrix.com>
Message-ID: <e3416a404c78156ff33de829c7b4b664@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

On 2025-08-14 13:47, Andrew Cooper wrote:
> On 14/08/2025 12:44 pm, Jan Beulich wrote:
>> On 14.08.2025 13:42, Andrew Cooper wrote:
>>> On 14/08/2025 12:20 pm, Jan Beulich wrote:
>>>> On 08.08.2025 22:23, Andrew Cooper wrote:
>>>>> --- a/xen/arch/x86/include/asm/x86-defns.h
>>>>> +++ b/xen/arch/x86/include/asm/x86-defns.h
>>>>> @@ -75,6 +75,7 @@
>>>>>  #define X86_CR4_PKE        0x00400000 /* enable PKE */
>>>>>  #define X86_CR4_CET        0x00800000 /* Control-flow Enforcement 
>>>>> Technology */
>>>>>  #define X86_CR4_PKS        0x01000000 /* Protection Key Supervisor 
>>>>> */
>>>>> +#define X86_CR4_FRED      0x100000000 /* Fast Return and Event 
>>>>> Delivery */
>>>> ... a UL suffix added here for Misra.
>>> I was surprised, but Eclair is entirely fine with this.
>> And there is a use of the identifier in a monitored C file?
> 
> Yes.Â  traps-setup.c which definitely has not been added to an exclusion
> list.
> 

Might look into it before the end of the week, if time allows. Is [1] 
the right branch to look at?

[1] 
https://gitlab.com/xen-project/hardware/xen-staging/-/commits/andrew/fred

> ~Andrew

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 19:37:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 19:37:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082443.1442292 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umdlt-0000F3-A5; Thu, 14 Aug 2025 19:37:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082443.1442292; Thu, 14 Aug 2025 19:37: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 1umdlt-0000Ew-5b; Thu, 14 Aug 2025 19:37:57 +0000
Received: by outflank-mailman (input) for mailman id 1082443;
 Thu, 14 Aug 2025 19:37:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mOIo=22=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1umdls-0008Rn-FZ
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 19:37:56 +0000
Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com
 [2a00:1450:4864:20::42f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2d122683-7946-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 21:37:56 +0200 (CEST)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-3b9d41baedeso749980f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 12:37:56 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3b79c3b9386sm51923038f8f.18.2025.08.14.12.37.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 12: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>
X-Inumbo-ID: 2d122683-7946-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755200275; x=1755805075; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=gBGI48VsPUnT+e9vpM1hkbUkMXnBNJ79lzK13v1JZo8=;
        b=ZrDTRL/enzCKClCXDYZxvGxv6ba3/uWA2ag2/wgm7JgMXsvtAF5KZduPyrjCwZKZYs
         AP5FcnnyWaeGsRjHP4+rGw1aCQZswmxkWzD8sEoNH9qSwzb+UKJK6t5/XgP4fplco1Xx
         9gS3gXh+WK4rZujz0xM7Rvyu5B/l3LUaydVjE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755200275; x=1755805075;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gBGI48VsPUnT+e9vpM1hkbUkMXnBNJ79lzK13v1JZo8=;
        b=pe8rumMpS45KjKgYOWOqhhJk8dreT5gUzhXx53LSBMUL7+ycU7pS/fVQbXnCVqwg8Q
         epGFtKrBxx/gOt8WajCAo5wbYzUjl8FPnY55nk06YG0zQr1J9mrtNjetW2pMQEppncob
         wXEkQyW3oBWcLh6kUxy3xpy4sVkj6QaAM/D/oH3PthML19WS1f6APivUBiU8Mrt/8e03
         HFJE2bHM+M74xCiR5VNVEkysR0lkk9Ecr4NbATWjZ6Bceqh/8j3Ip/+R5HDNLEFioSYt
         OU+DHBv+YjvyeeYZVDb2QNDtfdPxN95fTtv2ZOWwr3px6PcmMI6BtrBqL4Zzj5EyqqTa
         TL+A==
X-Forwarded-Encrypted: i=1; AJvYcCVrYv94VSboGAl2YE1x9TZffiTB2LMi7sqRSv9DGlWdFOL/uqS+0Xx+KfiKEJWcQ3qt2J8OVoyfWNw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwvZiHTCtyxGbSl30zTThW4N8Lt8L8tBqIN7oYNmVLOrSWDV4Nz
	Q6b2VBgS6jII7zMk2Jvzs1IKsNQa2FSmQWlEg0dlCrdmIgC/F1ZDIJ4Ltp8GfAKHxCvDANUcdUo
	EmG0i
X-Gm-Gg: ASbGncsgRODQFHzAIBZc/FdizKN9bR9gR1IASRfv3Z9LNb3U8Hflr1SL5Fe3LHdP7p5
	xrCl1qDFJw0PfiVsHUO+scgYRgQlD+hh/GdugxYkO4N0mEpKRe8/KkQid79l6fp9Pf9sfliiPYd
	7hUmyWD3FB84i6YPQVaGRU/B9RiG/JUFMlzCdnXRQ7Bk2w5I7gZSfGCnfVvvKwCneNeHuF56GoO
	vQYY7+QGuWssgxovL0jI+IT8/ryvPhJySLJvFb1P/CFFHYFq/w4WWPdpQU8B21rmlM1mmyftjno
	KtetlVE+V2qmrYqNdoBxHUw2KGbF63TKtO6fcl6YSbPtxYFft73yCwQI2MDeF6rkGIzDkDQV9nn
	4glUSuqDdApZTQbsfNnU7MzOJip3vuc3gZ1LMFIXchWO0aTfhWVNcUXgPcZHV5u3gEehK
X-Google-Smtp-Source: AGHT+IHDhKVX/cMGvyDTUpwNB2EPLDpSvErvqRv7vfn1LMjbOYgb6LoUWKJ2l869EP53GUhyrDjlFg==
X-Received: by 2002:a5d:5c84:0:b0:3b9:13d6:cb4a with SMTP id ffacd0b85a97d-3b9fc36466bmr3543638f8f.59.1755200275381;
        Thu, 14 Aug 2025 12:37:55 -0700 (PDT)
Message-ID: <abfd11c9-db7b-4922-aeb5-381b5284fb22@citrix.com>
Date: Thu, 14 Aug 2025 20:37:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 18/22] x86/traps: Set MSR_PL0_SSP in load_system_tables()
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-19-andrew.cooper3@citrix.com>
 <74a76087-e45e-4d7a-8df3-2711f77eea2a@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: <74a76087-e45e-4d7a-8df3-2711f77eea2a@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14/08/2025 4:00 pm, Jan Beulich wrote:
> On 08.08.2025 22:23, Andrew Cooper wrote:
>> FRED and IDT differ by a Supervisor Token on the base of the shstk.  This
>> means that the value they load into MSR_PL0_SSP differs by 8.
>>
>> s3_resume() in particular has logic which is otherwise invariant of FRED mode,
>> and must not clobber a FRED MSR_PL0_SSP with an IDT one.
>>
>> This also simplifies the AP path too.  Updating reinit_bsp_stack() is deferred
>> until later.
>>
>> No functional change.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> I wonder why this was originally done in assembly in the first place, when
> we aim at reducing tghe assembly code we have.

It took several iterations (and releases) to get the setup of the
supervisor tokens correct.

I can't even recall if we had load_system_tables() working like this
when the first code went it.Â  It may have been following a subsequent
clean-up series.

>
>> --- a/xen/arch/x86/boot/x86_64.S
>> +++ b/xen/arch/x86/boot/x86_64.S
>> @@ -65,17 +65,11 @@ ENTRY(__high_start)
>>          or      $(PRIMARY_SHSTK_SLOT + 1) * PAGE_SIZE - 8, %rdx
>>  
>>          /*
>> -         * Write a new supervisor token.  Doesn't matter on boot, but for S3
>> -         * resume this clears the busy bit.
>> +         * Write a new Supervisor Token.  It doesn't matter the first time a
>> +         * CPU boots, but for S3 resume or CPU hot re-add, this clears the
>> +         * busy bit.
>>           */
>>          wrssq   %rdx, (%rdx)
>> -
>> -        /* Point MSR_PL0_SSP at the token. */
>> -        mov     $MSR_PL0_SSP, %ecx
>> -        mov     %edx, %eax
>> -        shr     $32, %rdx
>> -        wrmsr
>> -
>>          setssbsy
> This is ending up a little odd: The comment says the write is to clear the
> busy bit, when that's re-set immediately afterwards.

That comment is about the wrssq.Â  I suppose what isn't said is that
setssbsy will fault if not.Â  How about ", so SETSSBSY can set it again" ?

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 19:44:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 19:44:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082457.1442300 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umdsH-0003BK-2n; Thu, 14 Aug 2025 19:44:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082457.1442300; Thu, 14 Aug 2025 19:44: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 1umdsH-0003BD-0E; Thu, 14 Aug 2025 19:44:33 +0000
Received: by outflank-mailman (input) for mailman id 1082457;
 Thu, 14 Aug 2025 19:44:31 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mOIo=22=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1umdsF-0003B6-OL
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 19:44:31 +0000
Received: from mail-wr1-x42a.google.com (mail-wr1-x42a.google.com
 [2a00:1450:4864:20::42a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 186d1d5c-7947-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 21:44:31 +0200 (CEST)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-3b9e4148134so702633f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 12:44:30 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3b8fc28a7b0sm27488609f8f.63.2025.08.14.12.44.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 12:44: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>
X-Inumbo-ID: 186d1d5c-7947-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755200670; x=1755805470; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=7ZRLayb7V0RceJQ2jytl80WgfPBsENNbB3t8RL8blr4=;
        b=k3yIASwgPJncZBBU3yDxtS0Rs6zJJ8dZdswrRV/fWcn3nu82uO7SSxSRSbZU8rJVoM
         InWnMOPyNFhXGBzQDcoXEmIyJZqu9Ytdlqey+FNhW/zX93mdInbgpkjB6+ygUhiygyV6
         X0IWTtzMyDGXrMy/bfJCUiUIAnMOLJ+a15Xcw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755200670; x=1755805470;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7ZRLayb7V0RceJQ2jytl80WgfPBsENNbB3t8RL8blr4=;
        b=ly/KOjnhTz/8YE0oqXJsi7sWfwp2a3cLMZctjJtLpvlRax8kKHCuHFUKf1RM3i5kD3
         E+a9AFCKXX/Ih3uwIC1ORMN4vEjihYHrpl3Bj4EP+zDgy8D3JE9zuDCQWIBz8fAgkeFr
         +Q50x9vxupWZlglU0fSpLnvaBOxAfmEGa3m8gr31c+JroLkB1PmAuzpSlmQ3nu3RXLUY
         U9JRBLm35D7kBTIk2atZCzIOZT/JT9jV3s0W2HYAwxeDDaXhFe6eKCLeE4WNjoNCdMV9
         ZkOxECbg2BEZGjbooblS/eqWXkCLMrKffpmoeQ85WDxpChEGRvFB7GSwAPJjyKYyXM1l
         BKfg==
X-Forwarded-Encrypted: i=1; AJvYcCUDn4B5YGkGb9moQ+twfXjJDyLGGK/vhIRwBtHR1E1MOGQKv22ZjpdPjZWLlOjazipsPDR06b9Bu8w=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywd1DC0vu5HiNGS9r/v0MRLKu/vk6hKma/URcL7hbSk6PnlN6/S
	8gpfoeO0FE+kLNAuB2wkShp9tSxxSwI3Xmr1NPBRPWmCEqBZakLe4C3kxUwXv+S2MyQ=
X-Gm-Gg: ASbGncu8XO6agSqjD9AfCj9bZXDhpflh9J5Zs2jc1he/5LdeY9OWhg7LCuwBV/oZC4I
	B6aZ2llpLzwi/+6PE5SZ6tN4DOtcyD36cSEKJTHbxSL9GsSiutZfheS9d8Eu+0ootBqFjDTs24X
	KIQROqhE+KloyGq8UqQUA8nvuc4V8oFP7rN+K3xOZDHz/Dfwg/0IQ33b03alr7uoS1ia/FKxTPy
	ClsUZAi+OjRsV5gltPoW+8dyT0szws8xjsqh0kqu2xYmXKq90B2ufalcSW5Wj7v5sXs8wYU97ON
	bEKJphxB+cHZsK03ZcvYdQAvGyb4z5ujjHLtBWV8WoELM4R+62KHH8GKerbDA8227BI5taxqvZc
	HZ4CVEbkzfcIpfl0461a2ldrOyq8phio7yBfKDwg2qWC90xIrUMQSuHfxQtBPzi+PmT43
X-Google-Smtp-Source: AGHT+IHikOc+Z9L9AbBHM8g3seujuup2o7uUtxLjJqCyqlSlW4eTBofjn7vqrPpgFL8nk3sXUJaW3A==
X-Received: by 2002:a05:6000:1449:b0:3b8:d79a:6a35 with SMTP id ffacd0b85a97d-3b9edfb6f3emr4015470f8f.20.1755200670326;
        Thu, 14 Aug 2025 12:44:30 -0700 (PDT)
Message-ID: <c325aa24-d0e1-4895-89d3-3f7ec196407c@citrix.com>
Date: Thu, 14 Aug 2025 20:44:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 13/22] x86: FRED enumerations
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-14-andrew.cooper3@citrix.com>
 <9b4da5b3-dd68-4052-92cc-fe322164eaa5@suse.com>
 <9cc46920-b1a6-4085-8481-abf0f1cd0aab@citrix.com>
 <c7e82bee-1b38-41e1-89c6-d1d3717087b2@suse.com>
 <b058cb18-7a03-403d-b0c4-402fc0353da2@citrix.com>
 <e3416a404c78156ff33de829c7b4b664@bugseng.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <e3416a404c78156ff33de829c7b4b664@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14/08/2025 8:37 pm, Nicola Vetrini wrote:
> On 2025-08-14 13:47, Andrew Cooper wrote:
>> On 14/08/2025 12:44 pm, Jan Beulich wrote:
>>> On 14.08.2025 13:42, Andrew Cooper wrote:
>>>> On 14/08/2025 12:20 pm, Jan Beulich wrote:
>>>>> On 08.08.2025 22:23, Andrew Cooper wrote:
>>>>>> --- a/xen/arch/x86/include/asm/x86-defns.h
>>>>>> +++ b/xen/arch/x86/include/asm/x86-defns.h
>>>>>> @@ -75,6 +75,7 @@
>>>>>> Â #define X86_CR4_PKEÂ Â Â Â Â Â Â  0x00400000 /* enable PKE */
>>>>>> Â #define X86_CR4_CETÂ Â Â Â Â Â Â  0x00800000 /* Control-flow
>>>>>> Enforcement Technology */
>>>>>> Â #define X86_CR4_PKSÂ Â Â Â Â Â Â  0x01000000 /* Protection Key
>>>>>> Supervisor */
>>>>>> +#define X86_CR4_FREDÂ Â Â Â Â  0x100000000 /* Fast Return and Event
>>>>>> Delivery */
>>>>> ... a UL suffix added here for Misra.
>>>> I was surprised, but Eclair is entirely fine with this.
>>> And there is a use of the identifier in a monitored C file?
>>
>> Yes.Â  traps-setup.c which definitely has not been added to an exclusion
>> list.
>>
>
> Might look into it before the end of the week, if time allows. Is [1]
> the right branch to look at?
>
> [1]
> https://gitlab.com/xen-project/hardware/xen-staging/-/commits/andrew/fred

Yes, although I am force pushing this with fixes as I find them.

In the latest run at the time of writing, I had one trivial R8.4
violation to fix, and all other clean rules came up fine.Â  I expect the
next run to be clean.

One thing that might be relevant, IIRC it's implementation defined
behaviour what happens to constants which are wider than int to begin with.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 20:10:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 20:10:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082466.1442311 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umeGo-0008S3-VT; Thu, 14 Aug 2025 20:09:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082466.1442311; Thu, 14 Aug 2025 20: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 1umeGo-0008Rw-SY; Thu, 14 Aug 2025 20:09:54 +0000
Received: by outflank-mailman (input) for mailman id 1082466;
 Thu, 14 Aug 2025 20:09:53 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mOIo=22=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1umeGn-0008Rq-Eh
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 20:09:53 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a2f21ee8-794a-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 22:09:52 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-45a1b0990b2so8590425e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 13:09:52 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45a1c6bc85csm32396155e9.5.2025.08.14.13.09.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 13: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>
X-Inumbo-ID: a2f21ee8-794a-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755202191; x=1755806991; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=2C3Bpq/5YK7rjuqCAASb3WVo7vUPUKLoHP7HHauFe24=;
        b=CMAePYvfY66chLaAI2BJnjx+3y4qJNhXeOeQiB0Dz+jJiLY1LwzO0N8E9ecqiJ8Lyv
         bflrLAXwcRlGhRenT8k2HCvmEk5YDjkT3d5Lg3xYeDQUrWOMnXI+qYkYuDo0ZzzdX0Mq
         tIiaqb5deQJKCdVeFmE/6gj5Hm6f3fPLAEk/I=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755202191; x=1755806991;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2C3Bpq/5YK7rjuqCAASb3WVo7vUPUKLoHP7HHauFe24=;
        b=HyWIou2HYooFX8n+iWE8YvmQ2yj9s/ri49tL529pypq4l4EQluaRH0G3kX1rD7U/PM
         Let5KkPjIMaIho7Fs0EhHbyclGuEnQONurt+f+42SsTLOiBwBrbNCIKPpL+wHTv+GVwl
         LXiABkeT0v72GPpZpGHxSUFqUsemxmuB/LeSZHOwmPnAA11dyt/GTaBxRNvaOGDEG40L
         4GIofeD71q3f9Q7i2Zfp9+/GegHQ+QAiuPJ3jIO1ECaA4sdGaZXz+IUiH2psax9JA3F6
         LgERLTpj5PAhrJUtkNhN7oTfMhPElkn0pCEIOltmhzB8iBFd7PqTECT2xzDAgV58HtVS
         B0/w==
X-Forwarded-Encrypted: i=1; AJvYcCXC2EwIu0GI8vraKxpwEhR8V0FDqDyQ+kQrJmhlNbZV86fgeqHrBFfE4f7z430YS5cNe97sB064GBQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzHYYynPMF2WZlR+QiKNBBwVVSVtCVQd2TQ5etypYc/XGp0NpfO
	JV7hIWIq3z4fQEAMcQXccZTJGMH8+cFzQOsHUYvQNSLXf6YFFpIZfa/rI20OrV/LCho=
X-Gm-Gg: ASbGncsk8zk0YrS2SSZ/fqTptYl3N4HyhN+aduGXRub58HOGsQvA5nQ52yqvoZ4veHD
	94mWX387rymt0b27zpmtH9q9yePPkk5fohxt5jinLK0wa12hpDk/x9UuCAtYbcKA2/sMr86dDGc
	RaDhc1oKCeTnIKTAI4WU+WJJYSwHdQw4oeRmVNdQGhYZCsy6+QzTE3S7wwYAa1VgVJhR3y5SDEW
	A6l8Tv3hux0TMKL1fSryJ3OOoId4NpUoc6pqEdsmgpSRhEJ1IlaSL1LO9N/GzSaBowgQooR3jBg
	NeSSPupBgiCSoapihPdX8Avch3tGQbbVjLSuWlrYd/yKBKso0pN+OEwQA26011Igi1bj3lG9oC2
	u9RhyoUiWBXDwOzsdkCQCOlea2weSTwFKGvOcmGGWzQQpXqe5YLoLIDvSilV5IPPfJJz8
X-Google-Smtp-Source: AGHT+IH0TCP/R0AjIEQJyrxlL2CgdDpSFZSGg8SiwhDl3plTjuPkCxzzQKovUh/daQyl44BTWBxzFg==
X-Received: by 2002:a05:600c:4e93:b0:43c:fe5e:f03b with SMTP id 5b1f17b1804b1-45a1b668299mr42064945e9.30.1755202191279;
        Thu, 14 Aug 2025 13:09:51 -0700 (PDT)
Message-ID: <757e3b87-bb4f-410a-84b7-cf3607bf3eb3@citrix.com>
Date: Thu, 14 Aug 2025 21:09:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 19/22] x86/boot: Use RSTORSSP to establish SSP
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-20-andrew.cooper3@citrix.com>
 <5ad64534-514c-412a-b2a2-23adaf835f60@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: <5ad64534-514c-412a-b2a2-23adaf835f60@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14/08/2025 4:11 pm, Jan Beulich wrote:
> On 08.08.2025 22:23, Andrew Cooper wrote:
>> Under FRED, SETSSBSY is unavailable, and we want to be setting up FRED prior
>> to setting up shadow stacks.  As we still need Supervisor Tokens in IDT mode,
>> we need mode-specific logic to establish SSP.
>>
>> In FRED mode, write a Restore Token, RSTORSSP it, and discard the resulting
>> Previous-SSP token.
>>
>> No change outside of FRED mode.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Why is it that in patch 17 you could use identical code, but here you can't?

This caught me out at first too.

For S3, we're going from "no shadow stack" to "back to where we were on
an active shadow stack".Â  All we need to do is get saved_ssp back into
the SSP register.

Here, we're going from "no shadow stack" to "on a good, empty, shadow
stack".Â  For FRED we only need to load a value into SSP, but in IDT mode
we must also arrange to create a busy Supervisor Token on the base of
the stack.

We could in principle conditionally write a busy supervisor token, then
unconditionally RSTORSSP, but that's even more complicated to follow IMO.

It also flips around our position of "clean the busy bit on S3/hotplug"
to "set it even on first-bringup".





>
>> @@ -912,10 +913,30 @@ static void __init noreturn reinit_bsp_stack(void)
>>  
>>      if ( cpu_has_xen_shstk )
>>      {
>> -        wrmsrl(MSR_PL0_SSP,
>> -               (unsigned long)stack + (PRIMARY_SHSTK_SLOT + 1) * PAGE_SIZE - 8);
> Does this removal perhaps belong elsewhere, especially with "No change
> outside of FRED mode" in the description?

This is the "Updating reinit_bsp_stack() is deferred until later." note
in the previous patch.

This hunk was illegible without the split, although I have to admit that
I can't quite remember why now.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 20:19:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 20:19:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082475.1442321 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umePd-0002fS-P1; Thu, 14 Aug 2025 20:19:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082475.1442321; Thu, 14 Aug 2025 20:19: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 1umePd-0002fL-Lr; Thu, 14 Aug 2025 20:19:01 +0000
Received: by outflank-mailman (input) for mailman id 1082475;
 Thu, 14 Aug 2025 20:18:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=QQqN=22=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1umePb-0002fF-RZ
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 20:18:59 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e84a6493-794b-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 22:18:57 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 3903B4EE3C04;
 Thu, 14 Aug 2025 22:18:56 +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>
X-Inumbo-ID: e84a6493-794b-11f0-b898-0df219b8e170
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=1755202736;
	b=pc0wvpGc8W71vHRjr5lZWV0niM88fe/Rx5H/xCsYU5FhMC7ve+mrzUeQt/t1JwOU5XKd
	 m0f2GFeutDvjxKZCAlHRZ+2AGn3oUCwSHHA+/0JHcatuz6gG+M4nCKJHZr5OCeYKO3lPv
	 39jczqac1M3BWoD0iwBf2aos1JL0mXDudXjVAlymUVI8WtCc1V+RGUZ+Z7u9XYNooOgs5
	 X9D4NZBvUwpm8WTwgVkRoVGiu8fM8AOzA3oBiWd18jnakQIObfIfYUMGeHy3pbEDvqTJG
	 2h9d+WN3J8nJE91h15WWFZ4bFqb/BJEyGNAlfMEHzksbMz3F0HOfy5CamRxie/ePd0r80
	 xXMDBJJML9Kypcutl9rrR1mcm85AtCpuhEsOeRNFFOFAFvRGvkJtnAMpcn8I7ChjMZftZ
	 YkdtT0538QB+Vx1m5wEdw2OgPJs3thZj1Juaa+bE7t0ViKcivyJtxNNsOpEi4/wOF6os5
	 OQQT/PEbFDr5j5t0qG5ocauhQROpqE6FE1QqOFeEt3NN3S25Mh+vacO0xvrLTLj7YIz60
	 Gb8WVJNz5nSj+c7PM9quxY9WuvZ77seCF54FRA59QA2jeyuoziexuTx7yC525jWoq32v2
	 laNeN/uq2dtAckRf0cU9egVUkJ30NijTKOkYjoZl8BnA74dOadUoHZ9QNM1dBd0=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1755202736;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=J0M3XxeIUeWOBUmBkuPSheRSMFm4wMPEVIu+y0iS+ak=;
	b=cWj7kkMBPvg0n4RjCGgJavwi09c52lClqZOEeCkSyUsYnZYOParaE5i+cikfz07p0S0Y
	 aXKzWiKleLVqOeyMzWZkqnox/qrso0OAeXEhElTS1i/H2132wsNvRnuivVIFs4nOXv7YO
	 5zlp3FwcuYtjeaXksXmNgxTdl8XNbOVVhDtMdDHybIioQoGnRJmnISZCvpT5/m1Sf7GmY
	 5xoiTkLK4VY2QSB5mQ9xgxf+aiNGKe0v1HOhofwKcDCZpDvfTnsjGo9EWlfIN2DcexT7E
	 f1Cjcu+sfgVqsXIzM2HfEgIKjLz3YAoWxPAsGD6TNekRx9rRMcQ5Yw+zQAa/dmIGV7LAI
	 db+3B2vKkUcAk+kXahkVeJnnIKluU86j8R5pdavJRTvJquigpYTvbfjxdUOoRi993CSce
	 KYb+CqOPy4uHTRGOMqrsdMo5sDHx0NLrpUEv2RNH67of28aDvx5SN3AbUiREkHhA1ywc2
	 Dq60xlxQjwlkzFYl3AifqQzwaNxrkoxilQoA+2pljM4OGg+y/xa6OzdBm82ahqPD2xH5a
	 lmLzKR0ZDlc623Qd4/ExjKDAr/y58sBNYOk2PaYU+0mNo3eb9ljgnrdwtacn9JFypF5FF
	 vdOfRWLRGNVYBJTVAN+Xjkkxh4NwWC+xh/9gc50XReKXEeV5Agrix0eOE3rl0eU=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1755202736; bh=yA8OSl03SMr2pvzqi72fRbftOACITWQQrGaGZnwZnsE=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=y3zMI56Kwgjx8Y75BCR6vViS8ivcZol88bXIN2GPgjocN4+NWzUB540j7sVj1jarO
	 NdEVPcRQA/FrKEfOUXFfFs0se9wEZCmVD5nXKoCrutbBF265V7JY9Rt17QOYc/Zw95
	 DAC5SdDHQMXHiQTS0BFwDBQypp/HFt+5x1vihkBGPtYuxGJbLtAb5xzI1lE26q39Q8
	 wg1tsO/2GZzaf0Y5jYct9AxbuD0KYJhQd5ihHRwrXPfaJ3wMw3F4tyllaKVCMr04Tk
	 P0rzooPdwF3cBaBIqtHgbA2v2gvqt7Qe3aXkSCd3r//0rwxIBBbIx0cj/qulSd6Uwu
	 l54NZQXtsQK/g==
MIME-Version: 1.0
Date: Thu, 14 Aug 2025 22:18:56 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 13/22] x86: FRED enumerations
In-Reply-To: <e3416a404c78156ff33de829c7b4b664@bugseng.com>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-14-andrew.cooper3@citrix.com>
 <9b4da5b3-dd68-4052-92cc-fe322164eaa5@suse.com>
 <9cc46920-b1a6-4085-8481-abf0f1cd0aab@citrix.com>
 <c7e82bee-1b38-41e1-89c6-d1d3717087b2@suse.com>
 <b058cb18-7a03-403d-b0c4-402fc0353da2@citrix.com>
 <e3416a404c78156ff33de829c7b4b664@bugseng.com>
Message-ID: <539e7b06b6f8faed2f35edb8c1851db0@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

On 2025-08-14 21:37, Nicola Vetrini wrote:
> On 2025-08-14 13:47, Andrew Cooper wrote:
>> On 14/08/2025 12:44 pm, Jan Beulich wrote:
>>> On 14.08.2025 13:42, Andrew Cooper wrote:
>>>> On 14/08/2025 12:20 pm, Jan Beulich wrote:
>>>>> On 08.08.2025 22:23, Andrew Cooper wrote:
>>>>>> --- a/xen/arch/x86/include/asm/x86-defns.h
>>>>>> +++ b/xen/arch/x86/include/asm/x86-defns.h
>>>>>> @@ -75,6 +75,7 @@
>>>>>>  #define X86_CR4_PKE        0x00400000 /* enable PKE */
>>>>>>  #define X86_CR4_CET        0x00800000 /* Control-flow Enforcement 
>>>>>> Technology */
>>>>>>  #define X86_CR4_PKS        0x01000000 /* Protection Key 
>>>>>> Supervisor */
>>>>>> +#define X86_CR4_FRED      0x100000000 /* Fast Return and Event 
>>>>>> Delivery */
>>>>> ... a UL suffix added here for Misra.
>>>> I was surprised, but Eclair is entirely fine with this.
>>> And there is a use of the identifier in a monitored C file?
>> 
>> Yes.Â  traps-setup.c which definitely has not been added to an 
>> exclusion
>> list.
>> 
> 
> Might look into it before the end of the week, if time allows. Is [1] 
> the right branch to look at?
> 
> [1] 
> https://gitlab.com/xen-project/hardware/xen-staging/-/commits/andrew/fred
> 

Actually thinking about it, this is indeed represented in a signed type 
in x86: according to the standard it's just a signed long [2], therefore 
the rule does not apply. Then you would have a R10 violation due to the 
conversion at the callsite. I would put a U regardless, since the 
intention was clearly to have an unsigned long.

[2] https://godbolt.org/z/rT5j4j9vj

>> ~Andrew

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 20:40:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 20:40:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082503.1442331 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umeke-0008T7-He; Thu, 14 Aug 2025 20:40:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082503.1442331; Thu, 14 Aug 2025 20:40: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 1umeke-0008T0-Dq; Thu, 14 Aug 2025 20:40:44 +0000
Received: by outflank-mailman (input) for mailman id 1082503;
 Thu, 14 Aug 2025 20:40:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mOIo=22=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1umekd-0008Su-4P
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 20:40:43 +0000
Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com
 [2a00:1450:4864:20::435])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f113e329-794e-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 22:40:40 +0200 (CEST)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-3b9dc5c6521so767803f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 13:40:40 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45a1c6bc932sm36123625e9.3.2025.08.14.13.40.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 13:40: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>
X-Inumbo-ID: f113e329-794e-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755204040; x=1755808840; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=EM+HNoQBt+VGaLjN4m1AxiSkl0/PgB3AVdnRqyt9mYU=;
        b=PqDIHu47e6VsnmudeJMFNm1GC/LowgxfeDIqjpijG4+SkCVp8TW140DEkAwlqFio8p
         CU7q+b0TSTAa921vm8QWOS1UwFdu/Zxz5iMmcpTU9i+FG8r2iI+fLTj4gGAuXkWO8MCW
         EYTMPtxdQg8UKFDftt1q2gWnhEiCe/YViZZ5Q=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755204040; x=1755808840;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=EM+HNoQBt+VGaLjN4m1AxiSkl0/PgB3AVdnRqyt9mYU=;
        b=cd7Q/au6wlbcqVjsZ5v22geQXGj2lHcazDTEWsuk/Vl6+KzKfAVSJ/GFxk3lGPuMky
         vQ6A6ur4XF8PWDyMHxEnDvpJVWwMioB2nlYL3Vx+XJvUhvftaBca0AQrvigT1dXSBLaw
         O+pCxlG/Ho/F5VrQKs23HwzAUPBQHh2UGHgBJVvl2jV/0aQ5+pLjYFeaBO7i4fFCp+n/
         /QUuILpi89mOA32MPxvyZi2Vp/EH8O9JmcpF9+515QxeD0dz8tyZnEEC0ZPOAhwi1Fdl
         RKS4T97X+KeJUmzNkyZ6ZiOxIoEPFnF/6R0f0wT43LwbxsnRYlmyElj31TXa+EVEi6V4
         eXLg==
X-Forwarded-Encrypted: i=1; AJvYcCWDV1NZZZbu9y3obpEqChnB/BrPnepcQD6JRmRLza+0Vsvuwq9T6em23uaNJDQcZi3akSl98q65MM4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyvz0YiHwHq2iv/KlaBbKs/qUYlDOpg6CqEKWyACVE/jJJ85PTF
	CgjKFJd5Dv9UkltwNtCYrxh5YqNIAwRoepFoCkkFCvidu2+CE+qNvIVZLIhCdtGZNjs=
X-Gm-Gg: ASbGncvwPkPBSyrVsiFEgRsofdUZCNln4SJvFmmR/BE8BBjE6PUGk31N6FhL5qMVizQ
	+YqKsySMI2/PKPWLXc/MT+efkbX5HwWK+qjGX22HSBaHkCKDiVERt094R5cwFkUeZj2cWO2tqcE
	a8C4zemRVGlVKJq/x8T5kkGTJ8fyZQ/10wC2BRaZhov/krOkr1YqQT0kbTloFpAPNWkDPT6lHRa
	1UrfTJF+E7KyksQ75WKz1dliMVqu1EaeE8+tZpQrKzSoVKe84KpWGl57kUsNHsdZs2msqPSt2yd
	BNbP482neZ7ONIJT4HDTDt5H70d9YYaqb1tQIRWzsQj8zoHj522FAluLencXjhORyUXsX0KsPWz
	UdWl/qFBqptRZE2bPVZBlPzuDQigc3mrHooJoBhc+b0EsAXfnOnKHQULqbxF1xfYBOprT
X-Google-Smtp-Source: AGHT+IGxC4LPnlikozzrfsQ6uwwai3SKTcqJCMLrNKAYvDH0Kv6qKwpJ2otRVgi+cmHIJIK8cGJd4w==
X-Received: by 2002:a05:6000:2302:b0:3a3:63d3:369a with SMTP id ffacd0b85a97d-3bb2483ccf3mr101660f8f.25.1755204040162;
        Thu, 14 Aug 2025 13:40:40 -0700 (PDT)
Message-ID: <37cb95df-520e-45b3-9003-b638296d1001@citrix.com>
Date: Thu, 14 Aug 2025 21:40:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 21/22] x86/traps: Introduce FRED entrypoints
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-22-andrew.cooper3@citrix.com>
 <53028a31-e07d-43f1-b320-2775c5560a09@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: <53028a31-e07d-43f1-b320-2775c5560a09@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14/08/2025 4:57 pm, Jan Beulich wrote:
> On 08.08.2025 22:23, Andrew Cooper wrote:
>> --- a/xen/arch/x86/include/asm/asm_defns.h
>> +++ b/xen/arch/x86/include/asm/asm_defns.h
>> @@ -315,6 +315,71 @@ static always_inline void stac(void)
>>          subq  $-(UREGS_error_code-UREGS_r15+\adj), %rsp
>>  .endm
>>  
>> +/*
>> + * Push and clear GPRs
>> + */
>> +.macro PUSH_AND_CLEAR_GPRS
>> +        push  %rdi
>> +        xor   %edi, %edi
>> +        push  %rsi
>> +        xor   %esi, %esi
>> +        push  %rdx
>> +        xor   %edx, %edx
>> +        push  %rcx
>> +        xor   %ecx, %ecx
>> +        push  %rax
>> +        xor   %eax, %eax
>> +        push  %r8
>> +        xor   %r8d, %r8d
>> +        push  %r9
>> +        xor   %r9d, %r9d
>> +        push  %r10
>> +        xor   %r10d, %r10d
>> +        push  %r11
>> +        xor   %r11d, %r11d
>> +        push  %rbx
>> +        xor   %ebx, %ebx
>> +        push  %rbp
>> +#ifdef CONFIG_FRAME_POINTER
>> +/* Indicate special exception stack frame by inverting the frame pointer. */
>> +        mov   %rsp, %rbp
>> +        notq  %rbp
>> +#else
>> +        xor   %ebp, %ebp
>> +#endif
>> +        push  %r12
>> +        xor   %r12d, %r12d
>> +        push  %r13
>> +        xor   %r13d, %r13d
>> +        push  %r14
>> +        xor   %r14d, %r14d
>> +        push  %r15
>> +        xor   %r15d, %r15d
>> +.endm
>> +
>> +/*
>> + * POP GPRs from a UREGS_* frame on the stack.  Does not modify flags.
>> + *
>> + * @rax: Alternative destination for the %rax value on the stack.
>> + */
>> +.macro POP_GPRS rax=%rax
>> +        pop   %r15
>> +        pop   %r14
>> +        pop   %r13
>> +        pop   %r12
>> +        pop   %rbp
>> +        pop   %rbx
>> +        pop   %r11
>> +        pop   %r10
>> +        pop   %r9
>> +        pop   %r8
>> +        pop   \rax
>> +        pop   %rcx
>> +        pop   %rdx
>> +        pop   %rsi
>> +        pop   %rdi
>> +.endm
> Hmm, yes, differences are apparently large enough to warrant the redundancy
> with SAVE_ALL / RESTORE_ALL.

You may recall this construct from prior attempts I've had to remove
SAVE_ALL/RESTORE_ALL, even with the \rax parameter for SVM.Â  I still
intend to complete that work at some point.

>
>> --- a/xen/arch/x86/include/asm/msr.h
>> +++ b/xen/arch/x86/include/asm/msr.h
>> @@ -202,9 +202,9 @@ static inline unsigned long read_gs_base(void)
>>  
>>  static inline unsigned long read_gs_shadow(void)
>>  {
>> -    unsigned long base;
>> +    unsigned long base, cr4 = read_cr4();
>>  
>> -    if ( read_cr4() & X86_CR4_FSGSBASE )
>> +    if ( !(cr4 & X86_CR4_FRED) && (cr4 & X86_CR4_FSGSBASE) )
>>      {
>>          asm volatile ( "swapgs" );
>>          base = __rdgsbase();
>> @@ -234,7 +234,9 @@ static inline void write_gs_base(unsigned long base)
>>  
>>  static inline void write_gs_shadow(unsigned long base)
>>  {
>> -    if ( read_cr4() & X86_CR4_FSGSBASE )
>> +    unsigned long cr4 = read_cr4();
>> +
>> +    if ( !(cr4 & X86_CR4_FRED) && (cr4 & X86_CR4_FSGSBASE) )
>>      {
>>          asm volatile ( "swapgs\n\t"
>>                         "wrgsbase %0\n\t"
> I don't quite get how these changes fit into this patch.

Without the change, read_registers() suffers #UD because of the SWAPGS.

This recurses until hitting the guard page, then repeats the same on the
#DF stack.Â  And because stacks work nicely under FRED, you eventually
hit #DF's guard page.

Strictly speaking it's only read_gs_shadow() which we need to change to
make exception handling work, but I fixed both at the same time.

That said, I have actually cleaned this codepath up with the MSR work
because the code gen in read_registers() is terrible.Â  Due to
no-strict-aliasing, every store into state-> forces a recalculation of
get_cpu_info(), meaning that read_cr4() cannot be hoisted, and there's a
branch in every helper.

I'm still not sure how best to fit it into this series.

>
>> --- a/xen/arch/x86/traps.c
>> +++ b/xen/arch/x86/traps.c
>> @@ -1013,6 +1013,32 @@ void show_execution_state_nmi(const cpumask_t *mask, bool show_all)
>>          printk("Non-responding CPUs: {%*pbl}\n", CPUMASK_PR(&show_state_mask));
>>  }
>>  
>> +static const char *x86_et_name(unsigned int type)
>> +{
>> +    static const char *const names[] = {
>> +        [X86_ET_EXT_INTR]    = "EXT_INTR",
>> +        [X86_ET_NMI]         = "NMI",
>> +        [X86_ET_HW_EXC]      = "HW_EXC",
>> +        [X86_ET_SW_INT]      = "SW_INT",
>> +        [X86_ET_PRIV_SW_EXC] = "PRIV_SW_EXEC",
>> +        [X86_ET_SW_EXC]      = "SW_EXEC",
>> +        [X86_ET_OTHER]       = "OTHER",
>> +    };
>> +
>> +    return (type < ARRAY_SIZE(names) && names[type]) ? names[type] : "???";
>> +}
>> +
>> +static const char *x86_et_other_name(unsigned int vec)
> This isn't really a vector, is it?

Well - you are decoding the field name regs->fred_ss.vector.

Also I see I've typo'd EXEC in two of those names.

>
>> +{
>> +    static const char *const names[] = {
>> +        [0] = "MTF",
>> +        [1] = "SYSCALL",
>> +        [2] = "SYSENTER",
>> +    };
>> +
>> +    return (vec < ARRAY_SIZE(names) && names[vec][0]) ? names[vec] : "???";
> Did you mean to check names[ves] for being NULL? Or is this a leftover
> from the array being something like names[][10]?

Oh, bad copy&paste.Â  Will fix.

>
>> --- a/xen/arch/x86/x86_64/Makefile
>> +++ b/xen/arch/x86/x86_64/Makefile
>> @@ -1,6 +1,7 @@
>>  obj-$(CONFIG_PV32) += compat/
>>  
>>  obj-bin-y += entry.o
>> +obj-bin-y += entry-fred.o
> For the ordering here, ...
>
>> --- /dev/null
>> +++ b/xen/arch/x86/x86_64/entry-fred.S
>> @@ -0,0 +1,35 @@
>> +/* SPDX-License-Identifier: GPL-2.0-or-later */
>> +
>> +        .file "x86_64/entry-fred.S"
>> +
>> +#include <asm/asm_defns.h>
>> +#include <asm/page.h>
>> +
>> +        .section .text.entry, "ax", @progbits
>> +
>> +        /* The Ring3 entry point is required to be 4k aligned. */
>> +
>> +FUNC(entry_FRED_R3, 4096)
> ... doesn't this 4k-alignment requirement suggest we want to put
> entry-fred.o first?

Perhaps, but that is quite subtle.Â  I did also consider a
.text.entry.page_aligned section, but .text.entry only matters for XPTI
which (as agreed), I'm not intending to implement in FRED mode unless it
proves to be necessary.

Also IIRC there's still a symbol bug where _sentrytext takes priority
over entry_FRED_R3, so the backtrace is effectively wrong.

(These are all bad excuses, but some parts of this series are rather old.)

>  Also, might it be more natural to use PAGE_SIZE
> here?

I did debate that, but the spec uses 0xfff, not pages, even if the
pipline surely does have an optimisation for chopping 12 metadata bits
off the bottom of a pointer.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 20:43:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 20:43:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082533.1442342 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umenV-0001bW-63; Thu, 14 Aug 2025 20:43:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082533.1442342; Thu, 14 Aug 2025 20: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 1umenV-0001bP-0a; Thu, 14 Aug 2025 20:43:41 +0000
Received: by outflank-mailman (input) for mailman id 1082533;
 Thu, 14 Aug 2025 20:43:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=QQqN=22=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1umenS-0001ak-IC
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 20:43:39 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 59d88611-794f-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 22:43:36 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 72D454EE3C04;
 Thu, 14 Aug 2025 22:43:35 +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>
X-Inumbo-ID: 59d88611-794f-11f0-b898-0df219b8e170
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=1755204215;
	b=14/b92MzxkwMZCBF5XHypzYyRxl+/hMLpZM7UuHUxhiqW0mTIxU/Um3uL/ph5HJcQHo0
	 /avKlISirNh8n/VtdFjxAywfv7Xh2XXDkqbG+sAffzdullnBPgIMRmBtTU8Q0yHqaPyBo
	 l3mDwp8r8mFmsgdId1QrFy0GvKmf+CLwxG8sL2M6wqXF+bvzCOYXnNDs72wzcjI1SdMez
	 L5n4MrK4dnn0px0DeaUfEaFBCEc8944IUY3MMWbu7lHNaUPpbRg0nWezhzhLXKOmtTKXQ
	 XqK4hLTTrfIwvapNa5pUqu/k+Nj50AANkX1QVjBRPVL7YQ8ShXhwHyKeznKkIfZki6Wiq
	 AZhv4dl9+Q8vwVlzVkA8drRsBriymNaWYNlS+Mqwq4RtwuKpCOxyawMk0KqokyMcu1bVX
	 vC4VXAbiQOt4KTo9FF0B3VnJ8uTxC56kcRepZLiNkL7TIqgW2lZbKpbVcvMJkIe7YSXBk
	 Zu7KDBMenHd1ghNkvVP0LOfX0X3CHRTupNaoY3wOBUCRpn1MREyZzf5JeRcLzoNQCZpA5
	 iIFeFqu1jIeOBRIfz8cehIkiQ+zfmQSRMb1SCwtyJQ0geaWYspzU5bMgyvfNrakJ0bgPJ
	 uza1aGOQsa/GtxbVpVZx8b9Kssonhk0tbZ0KZiszNqY4q58pcdXjP55BCdrE31A=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1755204215;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=t2i4JB2kkGIb9QprJ692xafevtOStcEc7CYsB6Tvmno=;
	b=vHqa7EkxvD8LefkgyMUnYUTRYJd492G5IXsj/4b1msBuHO0smZu0y4eyhm5Cm/MO4q8s
	 FDZAfsNZ/9ut/kSzQJJ2WadaxI28XqklJVFt5Mb11XywahtEdR2oAlWGOP/hVCKlZykZo
	 MGIU8+L3rUB+GQRC3c8wlyG0mwgCAQSqOyXplpDMP3JXzat9aR8AKyyh8TXO5s/4dK+Zw
	 LyI9Ewea+n2K616ZoFkg2Gu4TmisIleYFdcYLkWAuxoQDV6eCA7OHMor11U+uIkcUXfoK
	 XrT6Ij9AdBSCtGDd6eZYmMFhjJ3ekGoaTCYcIodyCq3y7B1kqeqU0sfJMpX8IK06hzazm
	 Tw6+l3jgiyGqJeTZTcQ924u6xcY7qJoVYrtBqZNqyl8E6bwvS3nQRlUlXrXL7PaFCG26y
	 tKn4EZPV2mkFUGSyBtFgch/5L39ntseDu3e3TAg79rHtcYcwOfoKh/O+5Y76lBcnHkyqV
	 Yw1+zxsKDAwKdxA0h+Nfrbpyn7AYfJ4j8v5xMRHQwkWjBPGR9eYY0nMWbYsIeJdxSf8RN
	 nnXJSGujSrhfNhUOvoO2ZFxbkXrkDuBQ+ailpMHv2N3AqJKONOsLhfYiaq0vvjxc2gn8m
	 Ysh96isyj7FBt/BKeVyt9UpiqQq9Ib9fVJzsfVb4m9ayklMNL0covtl3pRHXZaY=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1755204215; bh=Sc9DC7YCBMC2KV8sh6G4neQKjGC2jILflCb2j+u4AK4=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=jRAldRBMvU8xUJLJCeRQ5Uh15/C8PxTzDwZa83UhGLV06v4xsDCiBBWrX6Hv2rbvD
	 cgwL7Xlt7x9qiHcg6dqOrPtFKIAfPzc0HyJC7V8SC+DxIusL+LB5K4GACiBm3X7KVM
	 XEieytyjaMwWSEEQLc+0h8Lov10qNT/Eg5VhDmJp9rb+Hi8YNF8RFh/Xdq761amsBd
	 HzyvKLzHoWbuoek46k7SSdgHLTEcaKC2/6Eff8J/w+pMeHD0noCQoi2U0xakgNUhc6
	 ct8801yElcxgULeOiklxOS7M1DOaQWuOYMUL3rza7p0r6M8WbYfAhtKctQC7Kxfz+G
	 mTUx4WbvkBBzg==
MIME-Version: 1.0
Date: Thu, 14 Aug 2025 22:43:35 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, Doug Goldstein
 <cardoe@cardoe.com>, Stefano Stabellini <sstabellini@kernel.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
 <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien
 Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 xen-devel@lists.xenproject.org
Subject: Re: [RFC PATCH] misra: allow conversion from unsigned long to
 function pointer
In-Reply-To: <06120b08-7ce8-4d03-b3cd-cbb22547eca3@suse.com>
References: <8cbc9e6d881661d0d7a1055cbcef5a65e20522be.1755109168.git.dmytro_prokopchuk1@epam.com>
 <06120b08-7ce8-4d03-b3cd-cbb22547eca3@suse.com>
Message-ID: <6990512dab007bfa51e4281dda3cc2f0@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

On 2025-08-14 10:36, Jan Beulich wrote:
> On 13.08.2025 20:27, Dmytro Prokopchuk1 wrote:
>> ...
>> 
>> from `vaddr_t' (that is `unsigned long') to `switch_ttbr_fn*' (that is 
>> `void(*)(unsigned long)')
>> 
>> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
>> ---
>> This is just a RFC patch.
>> The commit message is not important at this stage.
>> 
>> I am seeking comments regarding this case.
>> 
>> Thanks.
>> ---
>>  automation/eclair_analysis/ECLAIR/deviations.ecl |  8 ++++++++
>>  docs/misra/deviations.rst                        | 10 ++++++++++
>>  docs/misra/rules.rst                             |  8 +++++++-
>>  xen/arch/arm/arm64/mmu/mm.c                      |  2 ++
>>  4 files changed, 27 insertions(+), 1 deletion(-)
>> 
>> diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl 
>> b/automation/eclair_analysis/ECLAIR/deviations.ecl
>> index ebce1ceab9..f9fd6076b7 100644
>> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
>> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
>> @@ -365,6 +365,14 @@ constant expressions are required.\""
>>  }
>>  -doc_end
>> 
>> +-doc_begin="The conversion from unsigned long to a function pointer 
>> does not lose any information, provided that the source type has 
>> enough bits to restore it."
>> +-config=MC3A2.R11.1,casts+={safe,
>> +  "from(type(canonical(builtin(unsigned long))))
>> +   &&to(type(canonical(__function_pointer_types)))
>> +   &&relation(definitely_preserves_value)"
>> +}
>> +-doc_end
>> +

This check is not quite targeted at this situation, as the behaviour of 
different compilers is a bit of a grey area (even GCC, though that works 
in practice). The relation is mostly aimed at testing whether the 
pointer are represented using the same number of bits as unsigned long 
(which happens to be the case fortunately).

>>  -doc_begin="The conversion from a function pointer to a boolean has a 
>> well-known semantics that do not lead to unexpected behaviour."
>>  -config=MC3A2.R11.1,casts+={safe,
>>    "from(type(canonical(__function_pointer_types)))
>> diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
>> index 3c46a1e47a..27848602f6 100644
>> --- a/docs/misra/deviations.rst
>> +++ b/docs/misra/deviations.rst
>> @@ -348,6 +348,16 @@ Deviations related to MISRA C:2012 Rules:
>>         to store it.
>>       - Tagged as `safe` for ECLAIR.
>> 
>> +   * - R11.1
>> +     - The conversion from unsigned long to a function pointer does 
>> not lose any
>> +       information or violate type safety assumptions if the unsigned 
>> long type
>> +       is guaranteed to be at least as large as a function pointer. 
>> This ensures
>> +       that the function pointer address can be fully represented 
>> without
>> +       truncation or corruption. Macro BUILD_BUG_ON can be integrated 
>> into the
>> +       build system to confirm that 'sizeof(unsigned long) >= 
>> sizeof(void (*)())'
>> +       on all target platforms.
> 
> If sizeof(unsigned long) > sizeof(void (*)()), there is loss of 
> information.
> Unless (not said here) the unsigned long value itself is the result of
> converting a function pointer to unsigned long. Whether all of that 
> together
> can be properly expressed to Eclair I don't know. Hence, as Teddy 
> already
> suggested, == may want specifying instead.
> 

+1; it might be worth to add both the eclair config and the 
BUILD_BUG_ON, noting that neither is sufficient on its own: unless the 
compiler guarantees not to fiddle with the value is unaltered when cast 
back and forth all checks on the number of bits are moot.

>> --- a/xen/arch/arm/arm64/mmu/mm.c
>> +++ b/xen/arch/arm/arm64/mmu/mm.c
>> @@ -150,6 +150,7 @@ void __init relocate_and_switch_ttbr(uint64_t 
>> ttbr)
>>      vaddr_t id_addr = virt_to_maddr(relocate_xen);
>>      relocate_xen_fn *fn = (relocate_xen_fn *)id_addr;
>>      lpae_t pte;
>> +    BUILD_BUG_ON(sizeof(unsigned long) < sizeof(fn));
>> 
>>      /* Enable the identity mapping in the boot page tables */
>>      update_identity_mapping(true);
>> @@ -178,6 +179,7 @@ void __init switch_ttbr(uint64_t ttbr)
>>      vaddr_t id_addr = virt_to_maddr(switch_ttbr_id);
>>      switch_ttbr_fn *fn = (switch_ttbr_fn *)id_addr;
>>      lpae_t pte;
>> +    BUILD_BUG_ON(sizeof(unsigned long) < sizeof(fn));
>> 
>>      /* Enable the identity mapping in the boot page tables */
>>      update_identity_mapping(true);
> 
> BUILD_BUG_ON() is a statement, not a declaration, and hence wants 
> grouping
> as such. Question is whether we indeed want to sprinkle such checks all
> over the code base. (I expect the two cases here aren't all we have.)
> 

+1 as well. I would expect such check to live e.g. in compiler.h or any 
similarly general header, since this is a widespread and largely 
arch-neutral property that Xen wants to be always true I believe.

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 20:55:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 20:55:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082557.1442359 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umeyp-0004BL-6F; Thu, 14 Aug 2025 20:55:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082557.1442359; Thu, 14 Aug 2025 20:55: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 1umeyp-0004BE-2q; Thu, 14 Aug 2025 20:55:23 +0000
Received: by outflank-mailman (input) for mailman id 1082557;
 Thu, 14 Aug 2025 20:55:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mOIo=22=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1umeyo-0004Ay-4H
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 20:55:22 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fd0de4ab-7950-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 22:55:20 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-45a1b065d59so7298805e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 13:55:20 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45a1c773e57sm35944625e9.23.2025.08.14.13.55.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 13:55: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>
X-Inumbo-ID: fd0de4ab-7950-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755204919; x=1755809719; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Rod5wjhx1PqBzw1BP3Cl+Q066L7oGZUW3oODyYVwXew=;
        b=AjVEHuk6JvwYLncvOru5T3TSSZm6sYvfNnO1W+L85vK0V4Tu0Lu/gVW9QQf9ejEOSX
         shFOpFiWqmmKOYU/2SiKsqKkTBZcVZA9sjnEX6XJN7uqzvQ/6cHcx7G3aWvdhCJ856FH
         LvojtDe0RHgfoY4HpZDRK/MzIN3lQlogNeSqc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755204919; x=1755809719;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Rod5wjhx1PqBzw1BP3Cl+Q066L7oGZUW3oODyYVwXew=;
        b=ggEgJkLssV7WybxIb65p2QAunB5Bi1ZQHmYI5Sep2NFwe/xYpXtVVe2WCtEbOC9aER
         ADwelMaWpR33QJEDcC32yaboGYjDUWbd2z05NIIx0IsslHde2PBOX8SUKxoGu8wCjEIV
         qge13+EFlGjoXSje+7XuWPWR7xiLEyqkm70q7HI9ezQuobWsTUTc56KebuRm6kcB8Vxb
         M1CuErg1FWhLPCu1FNgK5laQX87urN0bf5DupSAwks/HvX/W9HgSJ1eGKyHaF0rphtX9
         mqHhTPztimjgWqWeeF+iAeHoZ8DUHrXHS3/1q+AuzMCqjeY7gy9h8TS2iHdtw3ogfojF
         w8ig==
X-Forwarded-Encrypted: i=1; AJvYcCUQIZFyGPmDQ1D2q/kaZzXcBl7cnsueiNvlEzDXKoOHi51XIGN5jrHpcXV3odMDQ1K1SgG9IkaP3J4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzccRzQd2rCfO0nV1MoBww+SZwbrnt9woVfmziar68p8jBW0qoh
	IhL8Qw7ruXzWgiasAcBgYojMf9J+H95vRyrI+GH8GUW+OaTb0e0Vvp8LWt5ZQXHfyVfq5oE2iB6
	RlHZr
X-Gm-Gg: ASbGncuwZwq2NOmB8YmiuJ3qBVo0h4Ru1t0xR/zDw1bwhKt4D1+VzH0lDkoN1aDMj1d
	Kz4sXUPKEyH2BhQ48B7Rl120X1l9U0atrD9AgNbWw+DlEz7Bk21HoHlxPXpjkF/u6mqccK01Epq
	dN/GekIy/pNMtNzzBbBtxm1kFE50CV4Lh/iCIJ5PRr+KUJrVBjDNAq0MpW7OWpKid/qZOTzSy8Y
	Rvf1PukTvWQuMlZpipsZlhK0F5ERBgQZLK803HTSa9dDr1WZws2J5tiqklbj4eWtrLpyqmWJin2
	WOvv3oiVz/nx/dBj98ehVHVeQpH/eLz+01oMj4kXg2j1/Kmb04hv3IGTqF1b+AgkGnjE+qG/fpW
	oCMLYcD12bHTw7v80iNKN31k7uR9ztPl/PsYZG28YTPcYSrojllP8NDfjlGK8QtGeIfQ8
X-Google-Smtp-Source: AGHT+IF7Pnlrd1U8dsxHvK0vr24DCg1PcifVWJu5JxmmmIWAGOrIz+dZ6+mx/Yt4g7hH3qPLrDYryg==
X-Received: by 2002:a05:600c:450e:b0:456:1904:27f3 with SMTP id 5b1f17b1804b1-45a1b66d9bbmr41779755e9.18.1755204919147;
        Thu, 14 Aug 2025 13:55:19 -0700 (PDT)
Message-ID: <17498f02-0603-489c-bbc9-2207ffef8029@citrix.com>
Date: Thu, 14 Aug 2025 21:55:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 20/22] x86/traps: Alter switch_stack_and_jump() for FRED
 mode
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-21-andrew.cooper3@citrix.com>
 <7b46de92-d7b6-462f-8469-0f334d9e70bb@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: <7b46de92-d7b6-462f-8469-0f334d9e70bb@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14/08/2025 4:35 pm, Jan Beulich wrote:
> On 08.08.2025 22:23, Andrew Cooper wrote:
>> FRED and IDT differ by a Supervisor Token on the base of the shstk.  This
>> means that switch_stack_and_jump() needs to discard one extra word when FRED
>> is active.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> ---
>> CC: Jan Beulich <JBeulich@suse.com>
>> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
>>
>> RFC.  I don't like this, but it does work.
>>
>> This emits opt_fred logic outside of CONFIG_XEN_SHSTK.
> opt_fred and XEN_SHSTK are orthogonal, so that's fine anyway. What I guess
> you may mean is that you now have a shstk-related calculation outside of
> a respective #ifdef.

I really mean "outside of the path where shadow stacks are known to be
active", i.e. inside the middle of SHADOW_STACK_WORK

>  Given the simplicity of the calculation, ...
>
>>  But frankly, the
>> construct is already too unweildly, and all options I can think of make it
>> moreso.
> ... I agree having it like this is okay.

Yes, but it is a read of a global even when it's not used.

And as a tangent, we probably want __ro_after_init_read_mostly too.Â  The
read mostly is about cache locality, and is applicable even to the
__ro_after_init section.

>
>> @@ -154,7 +155,6 @@ unsigned long get_stack_dump_bottom (unsigned long sp);
>>      "rdsspd %[ssp];"                                            \
>>      "cmp $1, %[ssp];"                                           \
>>      "je .L_shstk_done.%=;" /* CET not active?  Skip. */         \
>> -    "mov $%c[skstk_base], %[val];"                              \
>>      "and $%c[stack_mask], %[ssp];"                              \
>>      "sub %[ssp], %[val];"                                       \
>>      "shr $3, %[val];"                                           \
> With the latter two insns here, ...
>
>> @@ -177,6 +177,8 @@ unsigned long get_stack_dump_bottom (unsigned long sp);
>>  
>>  #define switch_stack_and_jump(fn, instr, constr)                        \
>>      ({                                                                  \
>> +        unsigned int token_offset =                                     \
>> +            (PRIMARY_SHSTK_SLOT + 1) * PAGE_SIZE - (opt_fred ? 0 : 8);  \
>>          unsigned int tmp;                                               \
>>          BUILD_BUG_ON(!ssaj_has_attr_noreturn(fn));                      \
>>          __asm__ __volatile__ (                                          \
>> @@ -184,12 +186,11 @@ unsigned long get_stack_dump_bottom (unsigned long sp);
>>              "mov %[stk], %%rsp;"                                        \
>>              CHECK_FOR_LIVEPATCH_WORK                                    \
>>              instr "[fun]"                                               \
>> -            : [val] "=&r" (tmp),                                        \
>> +            : [val] "=r" (tmp),                                         \
> ... I don't think you can legitimately drop the & from here? With it
> retained:
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

You chopped the bit which has an explicit input for "[val]", making the
earlyclobber incorrect.

IIRC, one version of Clang complained.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 21:04:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 21:04:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082568.1442377 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umf7Z-0006hk-3r; Thu, 14 Aug 2025 21:04:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082568.1442377; Thu, 14 Aug 2025 21:04:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umf7Y-0006hd-Vg; Thu, 14 Aug 2025 21:04:24 +0000
Received: by outflank-mailman (input) for mailman id 1082568;
 Thu, 14 Aug 2025 21:04:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vckc=22=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1umf7X-0006hX-DV
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 21:04:23 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on2060d.outbound.protection.outlook.com
 [2a01:111:f403:2418::60d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3e97ea0c-7952-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 23:04:20 +0200 (CEST)
Received: from MN2PR06CA0005.namprd06.prod.outlook.com (2603:10b6:208:23d::10)
 by SA5PPF9BB0D8619.namprd12.prod.outlook.com
 (2603:10b6:80f:fc04::8d8) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.15; Thu, 14 Aug
 2025 21:04:14 +0000
Received: from BL02EPF00029929.namprd02.prod.outlook.com
 (2603:10b6:208:23d:cafe::f) by MN2PR06CA0005.outlook.office365.com
 (2603:10b6:208:23d::10) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9031.18 via Frontend Transport; Thu,
 14 Aug 2025 21:04:14 +0000
Received: from SATLEXMB04.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_128_GCM_SHA256) id
 15.20.9031.11 via Frontend Transport; Thu, 14 Aug 2025 21:04:14 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) 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; Thu, 14 Aug
 2025 16:04:13 -0500
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Thu, 14 Aug
 2025 16:04:13 -0500
Received: from [172.23.255.54] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Thu, 14 Aug 2025 16:04:12 -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>
X-Inumbo-ID: 3e97ea0c-7952-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UDn/t46y+ZVtzCNIpXucLoPvYKh/FYG0s3rG2F1vV6QSwWYl9OrGA807PBVsnWbEpGArXVAKUlUTUF/KTfEJGRQqrRtHaBOv4IVtjB9fo8MSv6BchxEK85DUbL70I+D3GyQzsJsS06KQUTo08LNgfnFY3Xj8ZZgaCth/m6PWRbdHuUrL4/dt5athabVDju5NQtbfVy85yGZF4ND90+DtFvCph4f56J0aO87uIMUO3AZgMJZwjXhaAzgMmRPQAnR3Uq/Sc3uWofAELnpPQjpTXrm4e0H7CO+8ODDHvo+r7by3l9YcgsQjGwMVrvKKkLZhIsdSHTBiEmYqC8GB/PCTkQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-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+fefGiP643bWbhlH0h/mgMGbq0UrkurRyvb+dSujKU=;
 b=kCFH52R635273MA2tVTiyOsvVXWdkwanUOHB9h86gPi89Q+X4/WcZ+/vC0V2zovpAr/CqmUH2Zhpc7w9ePL1bxnz1sKQU1FLuF1KUPgDxIFrjOVPrGKvQnhEHsElbd6uaE55/56KTpwuyINjust0Wo+BWIiyDs7Rk4ZMsA3NCAgUst0RAQEgXB67fUhg37eflySnNGFK7yAzJ0YHcHyJcLR132/MwhZLH0kfc5V98PjCW7DWafsDa4dYMutM3rHL4t/V/hW3zHN7x6RArdEK5Y5vfv5mnTpdtz2u518288o12Zhk3vpFg/wRrluDSIQmgR3BMxm4sYPVnjpunWt8Hw==
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=L+fefGiP643bWbhlH0h/mgMGbq0UrkurRyvb+dSujKU=;
 b=WhIQMHqUGphP2w31pXoht841ajm0851SjZXQ6zoCOimdBwlSgeWDDCwB1FwoD01e+SNQxYOgWxAEgr1xHkNSytCKN1xXCF49DpHt0jFvJ/4LuiHsfCrtDbtsqhw1hYNVWLTy7BBrYNhlw4hMH8MEQwVC0QajDQf3mkHAHu2BywY=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <238b2fd0-33ab-4279-9205-de58332fa944@amd.com>
Date: Thu, 14 Aug 2025 17:04:15 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/events: Fix Global and Domain VIRQ tracking
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Oleksandr Tyshchenko
	<oleksandr_tyshchenko@epam.com>, Chris Wright <chrisw@sous-sol.org>, "Jeremy
 Fitzhardinge" <jeremy@xensource.com>
CC: <stable@vger.kernel.org>, <xen-devel@lists.xenproject.org>,
	<linux-kernel@vger.kernel.org>
References: <20250812190041.23276-1-jason.andryuk@amd.com>
 <a4b5fd6b-80db-4b58-b3e8-5832e542d64c@amd.com>
 <6bf9bac0-a394-4064-bb5d-924f5a920e7e@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <6bf9bac0-a394-4064-bb5d-924f5a920e7e@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF00029929:EE_|SA5PPF9BB0D8619:EE_
X-MS-Office365-Filtering-Correlation-Id: e08dfef4-71bc-4bf3-cb8e-08dddb761fc9
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|36860700013|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?b0JFdG9MUFIrNXhEZE5MUkxCU2hIWGYrb2kwZ3QvYndVWnlxM2pPd08wUSsw?=
 =?utf-8?B?MVovN0ZMQjYvZjJBcGF1cSt5aHRGT0tMQXoyM2twQmJYV01YTTJoQndYUVdN?=
 =?utf-8?B?a3pYMDVzRXd5R3R6TjlTaVhYUGpkTWhtRFBqR1praXlPN0xWTGZXanllR1Nt?=
 =?utf-8?B?dWxwTGJ5dlpwRXEzakRKMDMxdnptNVRYRzlacC9lckphUjI0blpjRFFDTUow?=
 =?utf-8?B?NDlRekl0d0NlMUJ0L3B4U3ptKy9wK2V1NHdrSUZseE5PY0o1c1NYWVkwYW8y?=
 =?utf-8?B?UHE1QjNYaEFRS29Sckl5NWY2WCs3MUh5c3BObHA1aHZQQ2k0dFhGdFBDd0lN?=
 =?utf-8?B?a29CeUszdysvWU5UVVZoanp1WEJ6ZG1SUGc1cUJiTW44WHM2YXhJSGhxeTQx?=
 =?utf-8?B?Q1EwNXNFcmljemtqSGhhK3F6WDVuUzlrei9PQlRBUHRQNEFGK01XYms1eVFx?=
 =?utf-8?B?eElsVEpFZ0pYemJjL0pucDZtVzBBeTNTcVNCSzIzcGdRUUx1elhaVS94eUZY?=
 =?utf-8?B?aVFvREo3bEVmWG9BNVpyVUxJS0hsd0hhcy9CWkNoVytzYkl6OHo1Q0pDOXlp?=
 =?utf-8?B?eXhMVGZFUkZZbS85a21xV2tSWnRxTnZPV2hnc3dybm9QLzR0TXIrb05OT3pi?=
 =?utf-8?B?UlJxVXNTY2o3Umo5UFN5dFVmaU9nN1N6NUw0emZTZFlrcmErQmdlTktWZ2FW?=
 =?utf-8?B?emZpUjRGYmQ1clQ2U2VnaE9ybmJlWHdRbEF4RE0rMW1XOXczMTJweXVISG9q?=
 =?utf-8?B?T0pDK1lQTTkrVlh0K3k0aDdaYkhVNEVIZG5Ga0xsWStBcXl0NHN1U09GM2xa?=
 =?utf-8?B?VjJ6YU5GdXhJdllnSkI0Q1p1dDRlcHNCRVAzZ0wya0tLR2dOalFZUHJROVNn?=
 =?utf-8?B?a3p5VGdYampTODNiaEN2WlFqZjU1cCtyRnhFYU00RDVjanRyWVpZLytpV3J0?=
 =?utf-8?B?aXVPeHR1SXZmY3VDUU1MbUwzVDBLYitieEYzYWNST3JrTllCSitVRmcrK1ZL?=
 =?utf-8?B?ckM4UnRENFQ0MnBkMnlqTitra25kWEhXTXp3MzEwWUJUS3dhdzFSUXVmNFZq?=
 =?utf-8?B?Y0NRd3R2bnRkbXljRjE1NkFWZVBMR3c0VWxTVjdaSnUxUytUTFR4RG00dUE2?=
 =?utf-8?B?cW90VWNwOHFTN2J1enJFd2w2TWxDb01wT2hDc3ZMbXJsQTF2OGd3cENJY2Za?=
 =?utf-8?B?SzVsMHRZU2dWcENYVm1BQ25EVGEzSmUwYTVoaFlnSVFaTjh6NDAydWZBOTBH?=
 =?utf-8?B?a201OFQ2L1JaOWpJOTZBTk1reEdoZWRGV2FPNG5EMzZPZEJRVHQ5WXlXMnVV?=
 =?utf-8?B?aFdNUnh2cFFMM0IvNVNnSVF6RGdJbksyN2xORm8xZUZpR3oxZk91RXhNNmxL?=
 =?utf-8?B?TmhwOExpVDQ4R0lUcDVRZ2YzQ3dtNVl3U3VPR0lpN0pCYjRLRWFpSXA0Q3V6?=
 =?utf-8?B?eXJoTnluVGJoYkQ4VUhKd1lXb3NuelhoMU5DcFNIbEM0dVlHQVpseWlJYUla?=
 =?utf-8?B?V0VhcCs2Y1UzOUpPek9HUHJIeGVWT0srMVl4d0lqa3RGU25wd0Rpc3VCMEQ5?=
 =?utf-8?B?elU2blRlb2tuZEZkR3NIQ2hoU0ZxekU5N2NnQXpydGdBZFZlOWovSTBQMUxx?=
 =?utf-8?B?WmhERnVmTVFGbXRQOWo1VE9oQ1VoVGQyK2EzQllUTHRHZVVDQkVPR2k3a08x?=
 =?utf-8?B?ZThyajBjc09VQ3JWMUJGdWxibTJuaGo4WFpTdkNaaDhBV2JoOFdFVXorYisw?=
 =?utf-8?B?Zk9tVGRGajR2QjZEd0hBTDBqVEV4YXgrUHVoUjVsb0dSVDRRNCtHZUo2OVJV?=
 =?utf-8?B?cFMwOG1kRTgycDZEM3haODZoMUFFdzdaald0RGM4UDZZS252TDZPL3VkQ3p5?=
 =?utf-8?B?b2RwRk9XNWdaZ213WGtLQ2hhSW8xeDhMQU1QMHhwMHRkMllldW1EYlZQbXZ2?=
 =?utf-8?B?SHpVMVJQdXptMEFVSnJub1I1N0x2Q0xZdUJJYVBJbzVxVkZGUnhUMXUwR01I?=
 =?utf-8?B?SEhtczRUTGVUNERXeFN1QjJFOWozNDdyYlQ4K3RSSHBKN1Q0TklWa2lORVc5?=
 =?utf-8?Q?TDvjyD?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Aug 2025 21:04:14.1988
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e08dfef4-71bc-4bf3-cb8e-08dddb761fc9
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=[SATLEXMB04.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: SA5PPF9BB0D8619

On 2025-08-14 03:05, JÃ¼rgen GroÃŸ wrote:
> On 13.08.25 17:03, Jason Andryuk wrote:
>> On 2025-08-12 15:00, Jason Andryuk wrote:
>>> VIRQs come in 3 flavors, per-VPU, per-domain, and global.Â  The existing
>>> tracking of VIRQs is handled by per-cpu variables virq_to_irq.
>>>
>>> The issue is that bind_virq_to_irq() sets the per_cpu virq_to_irq at
>>> registration time - typically CPU 0.Â  Later, the interrupt can migrate,
>>> and info->cpu is updated.Â  When calling unbind_from_irq(), the per-cpu
>>> virq_to_irq is cleared for a different cpu.Â  If bind_virq_to_irq() is
> 
> This is what needs to be fixed. At migration the per_cpu virq_to_irq of the
> source and the target cpu need to be updated to reflect that migration.

I considered this, and even implemented it, before changing my approach. 
  My concern was that the single VIRQ is now in one of the N per_cpu 
virq_to_irq arrays.  A second attempt to register on CPU 0 will probably 
find -1 and continue and issue the hypercall.

It looks like Xen tracks virq on the bind_virq vcpu, so 
per-domain/global stays on vcpu0.  Binding again would return -EEXISTS. 
find_virq() would not match the virq if it was re-bound to a different vcpu.

If we don't care about handling duplicate registration, then updating 
the virq_to_irq tables should be is fine.

>>> called again with CPU 0, the stale irq is returned.
>>>
>>> Change the virq_to_irq tracking to use CPU 0 for per-domain and global
>>> VIRQs.Â  As there can be at most one of each, there is no need for
>>> per-vcpu tracking.Â  Also, per-domain and global VIRQs need to be
>>> registered on CPU 0 and can later move, so this matches the expectation.
>>>
>>> Fixes: e46cdb66c8fc ("xen: event channels")
>>> Cc: stable@vger.kernel.org
>>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>>> ---
>>> Fixes is the introduction of the virq_to_irq per-cpu array.
>>>
>>> This was found with the out-of-tree argo driver during suspend/resume.
>>> On suspend, the per-domain VIRQ_ARGO is unbound.Â  On resume, the driver
>>> attempts to bind VIRQ_ARGO.Â  The stale irq is returned, but the
>>> WARN_ON(info == NULL || info->type != IRQT_VIRQ) in bind_virq_to_irq()
>>> triggers for NULL info.Â  The bind fails and execution continues with the
>>> driver trying to clean up by unbinding.Â  This eventually faults over the
>>> NULL info.
>>> ---
>>> Â  drivers/xen/events/events_base.c | 17 ++++++++++++++++-
>>> Â  1 file changed, 16 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/xen/events/events_base.c b/drivers/xen/events/ 
>>> events_base.c
>>> index 41309d38f78c..a27e4d7f061e 100644
>>> --- a/drivers/xen/events/events_base.c
>>> +++ b/drivers/xen/events/events_base.c
>>> @@ -159,7 +159,19 @@ static DEFINE_MUTEX(irq_mapping_update_lock);
>>> Â  static LIST_HEAD(xen_irq_list_head);
>>> -/* IRQ <-> VIRQ mapping. */
>>> +static bool is_per_vcpu_virq(int virq) {
>>> +Â Â Â  switch (virq) {
>>> +Â Â Â  case VIRQ_TIMER:
>>> +Â Â Â  case VIRQ_DEBUG:
>>> +Â Â Â  case VIRQ_XENOPROF:
>>> +Â Â Â  case VIRQ_XENPMU:
>>> +Â Â Â Â Â Â Â  return true;
>>> +Â Â Â  default:
>>> +Â Â Â Â Â Â Â  return false;
>>> +Â Â Â  }
>>> +}
>>> +
>>> +/* IRQ <-> VIRQ mapping.Â  Global/Domain virqs are tracked in cpu 0.Â  */
>>> Â  static DEFINE_PER_CPU(int [NR_VIRQS], virq_to_irq) = {[0 ... 
>>> NR_VIRQS-1] = -1};
>>> Â  /* IRQ <-> IPI mapping */
>>> @@ -974,6 +986,9 @@ static void __unbind_from_irq(struct irq_info 
>>> *info, unsigned int irq)
>>> Â Â Â Â Â Â Â Â Â  switch (info->type) {
>>> Â Â Â Â Â Â Â Â Â  case IRQT_VIRQ:
>>> +Â Â Â Â Â Â Â Â Â Â Â  if (!is_per_vcpu_virq(virq_from_irq(info)))
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  cpu = 0;
>>> +
>>> Â Â Â Â Â Â Â Â Â Â Â Â Â  per_cpu(virq_to_irq, cpu)[virq_from_irq(info)] = -1;
>>> Â Â Â Â Â Â Â Â Â Â Â Â Â  break;
>>> Â Â Â Â Â Â Â Â Â  case IRQT_IPI:
>>
>> Thinking about it a little more, bind_virq_to_irq() should ensure cpu 
>> == 0 for per-domain and global VIRQs to ensure the property holds.  
>> Also virq_to_irq 
> 
> In Xen's evtchn_bind_virq() there is:
> 
>  Â Â Â  if ( type != VIRQ_VCPU && vcpu != 0 )
>  Â Â Â Â Â Â Â  return -EINVAL;
> 
> Making sure in Linux that there is never a violation of that restriction 
> would
> require to always have an up-to-date table of all possible VIRQs and their
> type, which I'd like to avoid.

Yes, I agree with this.

> I think it is the user of the VIRQ who is responsible to ensure cpu 0 is 
> passed
> to bind_virq_to_irq(), as this user knows that such a restriction 
> applies to
> the VIRQ in question (at least he should know that).
> 
> Special handling for really used VIRQs in the kernel can have some special
> handling, of course, as they are known already and should be used 
> correctly.

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 21:27:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 21:27:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082583.1442388 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umfTq-0002hz-0f; Thu, 14 Aug 2025 21:27:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082583.1442388; Thu, 14 Aug 2025 21:27: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 1umfTp-0002hs-T5; Thu, 14 Aug 2025 21:27:25 +0000
Received: by outflank-mailman (input) for mailman id 1082583;
 Thu, 14 Aug 2025 21:27:24 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=QQqN=22=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1umfTo-0002hm-Uj
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 21:27:24 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 772316e2-7955-11f0-b898-0df219b8e170;
 Thu, 14 Aug 2025 23:27:22 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id A28304EE3C04;
 Thu, 14 Aug 2025 23:27: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>
X-Inumbo-ID: 772316e2-7955-11f0-b898-0df219b8e170
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=1755206841;
	b=DCSHo0LKi2g3zD4PyGCXR9mlIQm9Zmm+J93eNTXs8EtxvIqjnRzDQOgLHm+h3WIYxYr6
	 ecUNk2RcasAmqQxCHrK5wpW76UfJVbTsvmKCv+zYbny192vFrWPtkpU2uGsnTqE5nP1ex
	 XcL45/eRjoRLg7b5F0xLtJFx/VCxhMQNiV8V55oo5L3n5l2glGxLuLyg04sNGSEkK7VvR
	 z23tsY/gIqzGJD9hL5M1gv5Cg0+DQwHmT2kiMKCI92Ogozq8G2tsWmq1Cxi91s805omAV
	 Prkim2CQ2TOBvaBpxuWhTNtW+0lGlQzR/oCXZpai/7GjMX2g83rzPhNnUonhxrhYWpeK4
	 9Y6tdXek/IIVoZJonuV+rUBFWXV1FQlWqhPQ4KSV8l9SHP48ze3V5OLOfuG3SZa7L/BLw
	 qSmTToBYnURm+owCXzkVzddtwZkDSIPFYem/4Ikflo5UhBqp6aQg4cI5vmx0gGLknB0Cd
	 89zdPsRA1VhOlp11zQiNCucXZO1yPPnuGTkpQxYoxODYlI0U4IxFEnuTs54p30CE+VnbK
	 hWKipJRTWOE/IGpsoWKifN5C8usUsX5mzhCPiBgwMww3odQ+XtTG2RoxwfKRV+erxiO6v
	 W23k3WMWwwtLEQOpEvx+0yFgmPlnGjgyWGOgu02qwNCSA9iRqNRfcKGud4Q4oCE=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1755206841;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=YcEOhaBAHRv6Gh+reAkJBHW4l0+xSdsTx3IN3DpZN6I=;
	b=ulvDD/Dufp6wyYyd3ieUMm255/3uPBMJHi4OtEpzzRXLWZLQNAR1I+gAyo+zPm3n3w8/
	 y6ntiroGEEFeKB/QPETwc7CSGu8XrhZzm8w/pRNfj/GDHE0l7cChYF2ajsWp6IW8k4WD0
	 G10hLqAZsgTeN863hkbug+qC9wzbEHTWNEwewrNwe8f8JDAbGpn9EH1/pheKWSTU1bEoD
	 7iuWOlItlRbGtgeZlPMwiYT50dkyARTqr+Kqr5ysmRhWl/2Z8zlPJlCQCXG3asYK7E3ZZ
	 tFISykQYR1Fbn8f7VWCMZ4gmEiuNNyKVSFyJZ1bE/UMYq4m1Pz95e0dCjBdGKJdms6igJ
	 PcqR3Q5t0uplZ6iWm1uDtsWMVSf9371b2yMgGCTijBwTO/iG7+x6h/KuEDYXGuZsp36Ez
	 5/ZVONlxJWncD7rEdrzv3uaa5FO7wv9yaQLjkj5Ie/iVfOtgS9UfTfubQki02HzKl3iO1
	 6NHnB9CRN6GBvGEOea3eDYbTQtPAicLvU5hXl2CfcKr95a9WUdI6bzHY1QGOJzFRIWA7p
	 nbAB7B68AMLiUMroEez1osW9TBIRLLRgGPJr8+ZLIyTz7IIww5rLoCQGgf6tiXrYPNj5K
	 4WDISAoaQb5pH9nvek9RUl1O1ZfsGLgs1joLDmageQkqE2ws3TyoOajj/WMFIxc=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1755206841; bh=Eh9tldxbP/zhRe2/SLk12oOw3e0TiFibZU8eGhqSobY=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=JOv2/BexPOKtqTmYsD8o3UPeCfnqbg1OkeDf8Adh51EOGU/wLKT6G/J2TzIAFBDm8
	 oUBXa4cMnh0F9mmDbOoyguw85DCEQpGeDGvxzPRp8KQhOWd2XyJzDdRyy0B6rvU0t3
	 +dlsmAkqt6VmAygiVFqaVrH3N4KBABcB+dYSm3TLk4bCIiiO3bq/B4tSjO4vjFc6Nn
	 boC0BegtaRJNVBlJ8JM3oePzLd2F9Dpx2Cyd8bjEQXJ1sTLyZuN8xt3OdjMOPRCJ3/
	 bVam0t7sPhchzoPOJxMb3axociMsSZJMomWUqBoTb9kY0DhDZiFU1SHiZBEhcdw5bR
	 N17obeMwSBrUw==
MIME-Version: 1.0
Date: Thu, 14 Aug 2025 23:27:21 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 13/22] x86: FRED enumerations
In-Reply-To: <c325aa24-d0e1-4895-89d3-3f7ec196407c@citrix.com>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-14-andrew.cooper3@citrix.com>
 <9b4da5b3-dd68-4052-92cc-fe322164eaa5@suse.com>
 <9cc46920-b1a6-4085-8481-abf0f1cd0aab@citrix.com>
 <c7e82bee-1b38-41e1-89c6-d1d3717087b2@suse.com>
 <b058cb18-7a03-403d-b0c4-402fc0353da2@citrix.com>
 <e3416a404c78156ff33de829c7b4b664@bugseng.com>
 <c325aa24-d0e1-4895-89d3-3f7ec196407c@citrix.com>
Message-ID: <6dc480fc8b508eb934cd937d3a438df3@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

On 2025-08-14 21:44, Andrew Cooper wrote:
> On 14/08/2025 8:37 pm, Nicola Vetrini wrote:
>> On 2025-08-14 13:47, Andrew Cooper wrote:
>>> On 14/08/2025 12:44 pm, Jan Beulich wrote:
>>>> On 14.08.2025 13:42, Andrew Cooper wrote:
>>>>> On 14/08/2025 12:20 pm, Jan Beulich wrote:
>>>>>> On 08.08.2025 22:23, Andrew Cooper wrote:
>>>>>>> --- a/xen/arch/x86/include/asm/x86-defns.h
>>>>>>> +++ b/xen/arch/x86/include/asm/x86-defns.h
>>>>>>> @@ -75,6 +75,7 @@
>>>>>>> Â #define X86_CR4_PKEÂ Â Â Â Â Â Â  0x00400000 /* enable PKE */
>>>>>>> Â #define X86_CR4_CETÂ Â Â Â Â Â Â  0x00800000 /* Control-flow
>>>>>>> Enforcement Technology */
>>>>>>> Â #define X86_CR4_PKSÂ Â Â Â Â Â Â  0x01000000 /* Protection Key
>>>>>>> Supervisor */
>>>>>>> +#define X86_CR4_FREDÂ Â Â Â Â  0x100000000 /* Fast Return and Event
>>>>>>> Delivery */
>>>>>> ... a UL suffix added here for Misra.
>>>>> I was surprised, but Eclair is entirely fine with this.
>>>> And there is a use of the identifier in a monitored C file?
>>> 
>>> Yes.Â  traps-setup.c which definitely has not been added to an 
>>> exclusion
>>> list.
>>> 
>> 
>> Might look into it before the end of the week, if time allows. Is [1]
>> the right branch to look at?
>> 
>> [1]
>> https://gitlab.com/xen-project/hardware/xen-staging/-/commits/andrew/fred
> 
> Yes, although I am force pushing this with fixes as I find them.
> 
> In the latest run at the time of writing, I had one trivial R8.4
> violation to fix, and all other clean rules came up fine.Â  I expect the
> next run to be clean.
> 
> One thing that might be relevant, IIRC it's implementation defined
> behaviour what happens to constants which are wider than int to begin 
> with.
> 

See my other reply in this thread; the rule is concerned with the type 
of the constant present after preprocessing, which is defined in C99 
6.4.4.1.5 . As such, I'm not sure what you're hinting at regarding IDB 
here. Of course I might be wrong.

> ~Andrew

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 21:28:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 21:28:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082594.1442397 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umfUV-0003Aa-8o; Thu, 14 Aug 2025 21:28:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082594.1442397; Thu, 14 Aug 2025 21:28: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 1umfUV-0003AT-5X; Thu, 14 Aug 2025 21:28:07 +0000
Received: by outflank-mailman (input) for mailman id 1082594;
 Thu, 14 Aug 2025 21:28:05 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=0PP2=22=gmail.com=demiobenour@srs-se1.protection.inumbo.net>)
 id 1umfUT-00033g-Pk
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 21:28:05 +0000
Received: from mail-yb1-xb35.google.com (mail-yb1-xb35.google.com
 [2607:f8b0:4864:20::b35])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8f359134-7955-11f0-a328-13f23c93f187;
 Thu, 14 Aug 2025 23:28:03 +0200 (CEST)
Received: by mail-yb1-xb35.google.com with SMTP id
 3f1490d57ef6-e931cdc2e4bso1492733276.3; 
 Thu, 14 Aug 2025 14:28:03 -0700 (PDT)
Received: from [10.138.34.110]
 (h96-60-249-169.cncrtn.broadband.dynamic.tds.net. [96.60.249.169])
 by smtp.gmail.com with ESMTPSA id
 3f1490d57ef6-e931d56d5d1sm948928276.24.2025.08.14.14.28.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 14:28: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>
X-Inumbo-ID: 8f359134-7955-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1755206882; x=1755811682; 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=vKknwY18N/K2FGPwPyQZboArmT0hjN3VpRYltczYsV0=;
        b=bFVrAX6Ek8ufzkbpt/dR/HJaS39Y0VlC61D4IDa+aco1K/4J21DVydEYTznZuYjYeY
         S94iUKI5rXUPyED0Oy/H28UO4DqovbqgHWSqBANTfI8FGwkfWKpsBTYS4WYdz0iGh3ey
         DUR2trITVtiOGpN3w+Xmf/vafhvEl41uMq4I9C1kIkc/hxJKF+QlE9z8VrYTNGXZ5LCd
         KyQNJiXF2bU78cFkm3kw8C2ZWzUl0gI01/qrN8j/obqToAVxRp0UAg3KWjc6sL8pJV+4
         jJdlKBvo5yQZlfq9yzA2P/7yq0eVJQxFsPsIJ594qBQe5t8mk9Df+D8CuGP06LqFh5if
         +KQg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755206882; x=1755811682;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=vKknwY18N/K2FGPwPyQZboArmT0hjN3VpRYltczYsV0=;
        b=AA+qi7OvbATWM84w/oqYwYQukwmVvEyd5CInz0extvKZAZZa/C9cF/z+klALy0UZR5
         YZ95S14vIX3UR5FBvsxQJvPughR6LJC/+pUTNlcZ9cH4CFou7C8IpdBxQvuNDXxg84Oq
         L91UN20fyQYHl5OzTpSQJphRehcCnjFlOK72oG3l/j+bJ/r+Kh3hBk+zCEHMNWMZ8PK4
         hdLjmnqVDp6xx8hdtCug+W4ZMNlO4FlUpGuW8rn0IEcOJFb0l4cKE6j5VH5/iWXmkBIR
         P7hBEKOpyL29KUtXlFRLauYOsL3UCyyJ9gdu/l28DCWZZeh25Eftrc1Y8DN/EUC0KXvx
         bJsw==
X-Forwarded-Encrypted: i=1; AJvYcCXjiu6TtctaR3OeGQEfhxvtci1Js82bG185bD4JtI0jeU0tKsR7YMZlKLFU0dADHsjUYwimaukjcRk=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx0bShQFG5VOeK1z5MESy37ij/hit2C294hIq9GiVjM1jEq5aZa
	0CTSwH4tiBahgw1igIuueb7Fv89rts7q+0EI+nP2bd3Wv1DOuCfI61Ek
X-Gm-Gg: ASbGnctxn7hDueMARvLrtwQMGq+53lSH4GYbwz80qPkaYYHHSUkS4oi/NSPzXg2z5sd
	cPkIjSVdz0z1lFeti+LCKLFPWPwsr3JFwwhTelIMAHPydW9+Ig4pmSrDkTaWCqxuRyDZjiAQUjJ
	qi7PYYXBrd8tQ2TwtN/uIebpoECNe2vgXer80PFxP0afp+XeACAsS2wF3hozxaYONDFOyDSHf0O
	ru69Ciw4f9Tuyly+nQJwnXHAUanmLtv5mocZzOb7xolqJSIwTFI1w2NEB4Cm6xusjRw8o3mmOKs
	CA2RhJ7lGeNUGkj/nlGYlBrPVyPBBT6Mmp5zT3b7ecw4jq/5lZSI6H/oUuEsqVV8vhQdGGpTmw6
	SDb1TlfL8ep9eBbO6a98AFEacJJWuZ3I0I2uEdRYbUWodaExDQkLI+U10+WLhYEYOsh60A1Oved
	ZLEQeXLqdjf+D3yGLd9eKukRUopr3bFaiCWqY=
X-Google-Smtp-Source: AGHT+IEQmm+qCpC7as5m3UlanJZi+peuM4cw8wYRx5uwxZf9y/9/w/zyNZOWEhVlom3RIFbobkLGkQ==
X-Received: by 2002:a05:6902:20c2:b0:e90:69a1:17a6 with SMTP id 3f1490d57ef6-e932ee8f541mr466748276.46.1755206882244;
        Thu, 14 Aug 2025 14:28:02 -0700 (PDT)
Message-ID: <6e9b5265-7a3b-4fd5-b14e-0e60a8b49833@gmail.com>
Date: Thu, 14 Aug 2025 17:27:56 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Consider changing CONFIG_ACPI default on ARM?
To: Jan Beulich <jbeulich@suse.com>, Elliott Mitchell <ehem+xen@m5p.com>
Cc: xen-users@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>,
 Paul Leiber <paul@onlineschubla.de>
References: <CAO_48GG1Tg0d3ATnNAYNr0cg7Ty_zsnzT29=dpkk99DxyTWcmg@mail.gmail.com>
 <fceb5df8-d628-479d-acb3-d1d26409fbac@onlineschubla.de>
 <aJLae1Nl0pyOZgyh@mattapan.m5p.com>
 <1b96f2f3-55a2-4b33-84b1-a7c18d38d10c@suse.com>
Content-Language: en-US
From: Demi Marie Obenour <demiobenour@gmail.com>
Autocrypt: addr=demiobenour@gmail.com; keydata=
 xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49yB+l2nipd
 aq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYfbWpr/si88QKgyGSV
 Z7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/UorR+FaSuVwT7rqzGrTlscnT
 DlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7MMPCJwI8JpPlBedRpe9tfVyfu3euTPLPx
 wcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9Hzx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR
 6h3nBc3eyuZ+q62HS1pJ5EvUT1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl
 5FMWo8TCniHynNXsBtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2
 Bkg1b//r6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
 9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nSm9BBff0N
 m0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQABzTxEZW1pIE1hcmll
 IE9iZW5vdXIgKGxvdmVyIG9mIGNvZGluZykgPGRlbWlvYmVub3VyQGdtYWlsLmNvbT7CwXgE
 EwECACIFAlp+A0oCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJELKItV//nCLBhr8Q
 AK/xrb4wyi71xII2hkFBpT59ObLN+32FQT7R3lbZRjVFjc6yMUjOb1H/hJVxx+yo5gsSj5LS
 9AwggioUSrcUKldfA/PKKai2mzTlUDxTcF3vKx6iMXKA6AqwAw4B57ZEJoMM6egm57TV19kz
 PMc879NV2nc6+elaKl+/kbVeD3qvBuEwsTe2Do3HAAdrfUG/j9erwIk6gha/Hp9yZlCnPTX+
 VK+xifQqt8RtMqS5R/S8z0msJMI/ajNU03kFjOpqrYziv6OZLJ5cuKb3bZU5aoaRQRDzkFIR
 6aqtFLTohTo20QywXwRa39uFaOT/0YMpNyel0kdOszFOykTEGI2u+kja35g9TkH90kkBTG+a
 EWttIht0Hy6YFmwjcAxisSakBuHnHuMSOiyRQLu43ej2+mDWgItLZ48Mu0C3IG1seeQDjEYP
 tqvyZ6bGkf2Vj+L6wLoLLIhRZxQOedqArIk/Sb2SzQYuxN44IDRt+3ZcDqsPppoKcxSyd1Ny
 2tpvjYJXlfKmOYLhTWs8nwlAlSHX/c/jz/ywwf7eSvGknToo1Y0VpRtoxMaKW1nvH0OeCSVJ
 itfRP7YbiRVc2aNqWPCSgtqHAuVraBRbAFLKh9d2rKFB3BmynTUpc1BQLJP8+D5oNyb8Ts4x
 Xd3iV/uD8JLGJfYZIR7oGWFLP4uZ3tkneDfYzsFNBFp+A0oBEAC9ynZI9LU+uJkMeEJeJyQ/
 8VFkCJQPQZEsIGzOTlPnwvVna0AS86n2Z+rK7R/usYs5iJCZ55/JISWd8xD57ue0eB47bcJv
 VqGlObI2DEG8TwaW0O0duRhDgzMEL4t1KdRAepIESBEA/iPpI4gfUbVEIEQuqdqQyO4GAe+M
 kD0Hy5JH/0qgFmbaSegNTdQg5iqYjRZ3ttiswalql1/iSyv1WYeC1OAs+2BLOAT2NEggSiVO
 txEfgewsQtCWi8H1SoirakIfo45Hz0tk/Ad9ZWh2PvOGt97Ka85o4TLJxgJJqGEnqcFUZnJJ
 riwoaRIS8N2C8/nEM53jb1sH0gYddMU3QxY7dYNLIUrRKQeNkF30dK7V6JRH7pleRlf+wQcN
 fRAIUrNlatj9TxwivQrKnC9aIFFHEy/0mAgtrQShcMRmMgVlRoOA5B8RTulRLCmkafvwuhs6
 dCxN0GNAORIVVFxjx9Vn7OqYPgwiofZ6SbEl0hgPyWBQvE85klFLZLoj7p+joDY1XNQztmfA
 rnJ9x+YV4igjWImINAZSlmEcYtd+xy3Li/8oeYDAqrsnrOjb+WvGhCykJk4urBog2LNtcyCj
 kTs7F+WeXGUo0NDhbd3Z6AyFfqeF7uJ3D5hlpX2nI9no/ugPrrTVoVZAgrrnNz0iZG2DVx46
 x913pVKHl5mlYQARAQABwsFfBBgBAgAJBQJafgNKAhsMAAoJELKItV//nCLBwNIP/AiIHE8b
 oIqReFQyaMzxq6lE4YZCZNj65B/nkDOvodSiwfwjjVVE2V3iEzxMHbgyTCGA67+Bo/d5aQGj
 gn0TPtsGzelyQHipaUzEyrsceUGWYoKXYyVWKEfyh0cDfnd9diAm3VeNqchtcMpoehETH8fr
 RHnJdBcjf112PzQSdKC6kqU0Q196c4Vp5HDOQfNiDnTf7gZSj0BraHOByy9LEDCLhQiCmr+2
 E0rW4tBtDAn2HkT9uf32ZGqJCn1O+2uVfFhGu6vPE5qkqrbSE8TG+03H8ecU2q50zgHWPdHM
 OBvy3EhzfAh2VmOSTcRK+tSUe/u3wdLRDPwv/DTzGI36Kgky9MsDC5gpIwNbOJP2G/q1wT1o
 Gkw4IXfWv2ufWiXqJ+k7HEi2N1sree7Dy9KBCqb+ca1vFhYPDJfhP75I/VnzHVssZ/rYZ9+5
 1yDoUABoNdJNSGUYl+Yh9Pw9pE3Kt4EFzUlFZWbE4xKL/NPno+z4J9aWemLLszcYz/u3XnbO
 vUSQHSrmfOzX3cV4yfmjM5lewgSstoxGyTx2M8enslgdXhPthZlDnTnOT+C+OTsh8+m5tos8
 HQjaPM01MKBiAqdPgksm1wu2DrrwUi6ChRVTUBcj6+/9IJ81H2P2gJk3Ls3AVIxIffLoY34E
 +MYSfkEjBz0E8CLOcAw7JIwAaeBT
In-Reply-To: <1b96f2f3-55a2-4b33-84b1-a7c18d38d10c@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------rO4lIfK0tgeR13JMNehk2AP9"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------rO4lIfK0tgeR13JMNehk2AP9
Content-Type: multipart/mixed; boundary="------------y9mx4z91nTxlghyMIEal9H0H";
 protected-headers="v1"
From: Demi Marie Obenour <demiobenour@gmail.com>
To: Jan Beulich <jbeulich@suse.com>, Elliott Mitchell <ehem+xen@m5p.com>
Cc: xen-users@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>,
 Paul Leiber <paul@onlineschubla.de>
Message-ID: <6e9b5265-7a3b-4fd5-b14e-0e60a8b49833@gmail.com>
Subject: Re: Consider changing CONFIG_ACPI default on ARM?
References: <CAO_48GG1Tg0d3ATnNAYNr0cg7Ty_zsnzT29=dpkk99DxyTWcmg@mail.gmail.com>
 <fceb5df8-d628-479d-acb3-d1d26409fbac@onlineschubla.de>
 <aJLae1Nl0pyOZgyh@mattapan.m5p.com>
 <1b96f2f3-55a2-4b33-84b1-a7c18d38d10c@suse.com>
In-Reply-To: <1b96f2f3-55a2-4b33-84b1-a7c18d38d10c@suse.com>

--------------y9mx4z91nTxlghyMIEal9H0H
Content-Type: multipart/mixed; boundary="------------We07yydANd6nJvOL0FG40k0P"

--------------We07yydANd6nJvOL0FG40k0P
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On 8/14/25 02:55, Jan Beulich wrote:
> On 06.08.2025 06:30, Elliott Mitchell wrote:
>> On Tue, Jul 01, 2025 at 10:01:13PM +0200, Paul Leiber wrote:
>>>
>>> Unfortunately, I don't have a direct answer to the question (as is so=
 often
>>> the case, due to my limited knowledge and experience). However, I am
>>> successfully running Xen on a RPi 4 (mostly, except for some VLAN rel=
ated
>>> networking issues).
>>>
>>> I used instructions in [1] to install vanilla Debian on the RPi, incl=
uding
>>> UEFI boot and grub. I then compiled Xen with expert options and ACPI
>>> enabled.
>>>
>>> I don't know if there are better solutions. For example, I suffer fro=
m the
>>> fact that I2C doesn't work when using UEFI boot on a RPi. Nowadays, D=
ebian
>>> provides their own vanilla Debian images for RPi and with working I2C=
, but
>>> these images are using a different boot method that I didn't know how=
 to use
>>> with Xen.  So far, the procedure described above seems to be the easi=
est
>>> solution for me.
>>
>>
>>> [1] https://forums.raspberrypi.com/viewtopic.php?t=3D282839
>>>
>>> Am 30.06.2025 um 12:35 schrieb Sumit Semwal:
>>>>
>>>> I've just begun to experiment with the Raspberry Pi 5, trying to run=
 a
>>>> simple xen + Dom0 setup, using uBoot, and the bookworm based Rpi
>>>> distro.
>>>>
>>>> I've tried combinations of the following setup:
>>>>
>>>> 1. prebuilt Rpi5 kernel + dtbs, and have also tried to build them fr=
om
>>>> source [1]
>>>> 2. Xen from upstream [2] and xen-troops [3]
>>>> 3. upstream uBoot from [4]
>>>>
>>>> but with the same result: [short log below; I can provide a fuller l=
og
>>>> if needed]
>>>>
>>>> (XEN) DT: ** translation for device /axi/msi-controller@1000130000 *=
*
>>>> (XEN) DT: bus is default (na=3D2, ns=3D2) on /axi
>>>> (XEN) DT: translating address:<3> 000000ff<3> fffff000<3>
>>>> (XEN) DT: parent bus is default (na=3D2, ns=3D1) on /
>>>> (XEN) DT: walking ranges...
>>>> (XEN) DT: default map, cp=3D0, s=3D1000000000, da=3Dfffffff000
>>>> (XEN) DT: default map, cp=3D1000000000, s=3D100000000, da=3Dfffffff0=
00
>>>> (XEN) DT: default map, cp=3D1400000000, s=3D400000000, da=3Dfffffff0=
00
>>>> (XEN) DT: default map, cp=3D1800000000, s=3D400000000, da=3Dfffffff0=
00
>>>> (XEN) DT: default map, cp=3D1c00000000, s=3D400000000, da=3Dfffffff0=
00
>>>> (XEN) DT: not found !
>>>> (XEN) Unable to retrieve address 1 for /axi/msi-controller@100013000=
0
>>>> (XEN) Device tree generation failed (-22).
>>>> (XEN) debugtrace_dump() global buffer starting
>>>> 1 cpupool_create(pool=3D0,sched=3D6)
>>>> 2 Created cpupool 0 with scheduler SMP Credit Scheduler rev2 (credit=
2)
>>>> 3 cpupool_add_domain(dom=3D0,pool=3D0) n_dom 1 rc 0
>>>> (XEN) wrap: 0
>>>> (XEN) debugtrace_dump() global buffer finished
>>>> (XEN)
>>>> (XEN) ****************************************
>>>> (XEN) Panic on CPU 0:
>>>> (XEN) Could not set up DOM0 guest OS (rc =3D -22)
>>>> (XEN) ****************************************
>>>>
>>>>
>>>> I'm certain I'm missing something, but before I delve deeper, I just=

>>>> wanted to ask if this is a known issue, and if so, are there any
>>>> workarounds or solutions available for this?
>>>>
>>>> Any help about this is highly appreciated!
>>>>
>>>> Thanks and Best regards,
>>>> Sumit.
>>>>
>>>> [1]:  https://github.com/raspberrypi/linux rpi-6.12.y branch
>>>> [2]: git://xenbits.xen.org/xen.git - main branch
>>>> [3] xen-troops https://github.com/xen-troops/xen - rpi5_dev branch
>>>> [4]: https://github.com/u-boot/u-boot.git master branch
>>
>> Ultimately Debian is choosing to leave most defaults alone.  So far th=
e
>> Xen developers have left CONFIG_ACPI defaulting to off on ARM*.  The
>> Debian project doesn't have paid people to support Raspberry PI hardwa=
re,
>> despite being rather common.  As a result there aren't any official
>> Raspberry PI images, but people associated with Tianocore have gotten
>> generic images to boot on Raspberry PI hardware.
>>
>> I'm unsure of the likelihood of getting the Debian maintainers to
>> override the default.  Yet due being by far the simplest way to instal=
l
>> Debian and Xen on a very common ARM64 platform, perhaps the Xen
>> developers should consider changing?
>=20
> In an open source project everyone is a developer. There is a
> significant amount of work someone needs to pick up to change this
> SUPPORT.md entry:
>=20
> ### Host ACPI (via Domain 0)
>=20
>     Status, x86 PV: Supported
>     Status, ARM: Experimental
>=20
> Parties interested in changing the support status of any component are =
the
> primary candidates to actually carry out the necessary work.
>=20
> Jan

What is that work?
--=20
Sincerely,
Demi Marie Obenour (she/her/hers)
--------------We07yydANd6nJvOL0FG40k0P
Content-Type: application/pgp-keys; name="OpenPGP_0xB288B55FFF9C22C1.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB288B55FFF9C22C1.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

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

xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49y
B+l2nipdaq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYf
bWpr/si88QKgyGSVZ7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/
UorR+FaSuVwT7rqzGrTlscnTDlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7M
MPCJwI8JpPlBedRpe9tfVyfu3euTPLPxwcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9H
zx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR6h3nBc3eyuZ+q62HS1pJ5EvU
T1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl5FMWo8TCniHynNXs
BtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2Bkg1b//r
6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nS
m9BBff0Nm0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQAB
zTxEZW1pIE9iZW5vdXIgKElUTCBFbWFpbCBLZXkpIDxhdGhlbmFAaW52aXNpYmxl
dGhpbmdzbGFiLmNvbT7CwY4EEwEIADgWIQR2h02fEza6IlkHHHGyiLVf/5wiwQUC
X6YJvQIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRCyiLVf/5wiwWRhD/0Y
R+YYC5Kduv/2LBgQJIygMsFiRHbR4+tWXuTFqgrxxFSlMktZ6gQrQCWe38WnOXkB
oY6n/5lSJdfnuGd2UagZ/9dkaGMUkqt+5WshLFly4BnP7pSsWReKgMP7etRTwn3S
zk1OwFx2lzY1EnnconPLfPBc6rWG2moA6l0WX+3WNR1B1ndqpl2hPSjT2jUCBWDV
rGOUSX7r5f1WgtBeNYnEXPBCUUM51pFGESmfHIXQrqFDA7nBNiIVFDJTmQzuEqIy
Jl67pKNgooij5mKzRhFKHfjLRAH4mmWZlB9UjDStAfFBAoDFHwd1HL5VQCNQdqEc
/9lZDApqWuCPadZN+pGouqLysesIYsNxUhJ7dtWOWHl0vs7/3qkWmWun/2uOJMQh
ra2u8nA9g91FbOobWqjrDd6x3ZJoGQf4zLqjmn/P514gb697788e573WN/MpQ5XI
Fl7aM2d6/GJiq6LC9T2gSUW4rbPBiqOCeiUx7Kd/sVm41p9TOA7fEG4bYddCfDsN
xaQJH6VRK3NOuBUGeL+iQEVF5Xs6Yp+U+jwvv2M5Lel3EqAYo5xXTx4ls0xaxDCu
fudcAh8CMMqx3fguSb7Mi31WlnZpk0fDuWQVNKyDP7lYpwc4nCCGNKCj622ZSocH
AcQmX28L8pJdLYacv9pU3jPy4fHcQYvmTavTqowGnM08RGVtaSBNYXJpZSBPYmVu
b3VyIChsb3ZlciBvZiBjb2RpbmcpIDxkZW1pb2Jlbm91ckBnbWFpbC5jb20+wsF4
BBMBAgAiBQJafgNKAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRCyiLVf
/5wiwYa/EACv8a2+MMou9cSCNoZBQaU+fTmyzft9hUE+0d5W2UY1RY3OsjFIzm9R
/4SVccfsqOYLEo+S0vQMIIIqFEq3FCpXXwPzyimotps05VA8U3Bd7yseojFygOgK
sAMOAee2RCaDDOnoJue01dfZMzzHPO/TVdp3OvnpWipfv5G1Xg96rwbhMLE3tg6N
xwAHa31Bv4/Xq8CJOoIWvx6fcmZQpz01/lSvsYn0KrfEbTKkuUf0vM9JrCTCP2oz
VNN5BYzqaq2M4r+jmSyeXLim922VOWqGkUEQ85BSEemqrRS06IU6NtEMsF8EWt/b
hWjk/9GDKTcnpdJHTrMxTspExBiNrvpI2t+YPU5B/dJJAUxvmhFrbSIbdB8umBZs
I3AMYrEmpAbh5x7jEjoskUC7uN3o9vpg1oCLS2ePDLtAtyBtbHnkA4xGD7ar8mem
xpH9lY/i+sC6CyyIUWcUDnnagKyJP0m9ks0GLsTeOCA0bft2XA6rD6aaCnMUsndT
ctrab42CV5XypjmC4U1rPJ8JQJUh1/3P48/8sMH+3krxpJ06KNWNFaUbaMTGiltZ
7x9DngklSYrX0T+2G4kVXNmjaljwkoLahwLla2gUWwBSyofXdqyhQdwZsp01KXNQ
UCyT/Pg+aDcm/E7OMV3d4lf7g/CSxiX2GSEe6BlhSz+Lmd7ZJ3g32M1ARGVtaSBN
YXJpZSBPYmVub3VyIChJVEwgRW1haWwgS2V5KSA8ZGVtaUBpbnZpc2libGV0aGlu
Z3NsYWIuY29tPsLBjgQTAQgAOBYhBHaHTZ8TNroiWQcccbKItV//nCLBBQJgOEV+
AhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJELKItV//nCLBKwoP/1WSnFdv
SAD0g7fD0WlF+oi7ISFT7oqJnchFLOwVHK4Jg0e4hGn1ekWsF3Ha5tFLh4V/7UUu
obYJpTfBAA2CckspYBqLtKGjFxcaqjjpO1I2W/jeNELVtSYuCOZICjdNGw2Hl9yH
KRZiBkqc9u8lQcHDZKq4LIpVJj6ZQV/nxttDX90ax2No1nLLQXFbr5wb465LAPpU
lXwunYDij7xJGye+VUASQh9datye6orZYuJvNo8Tr3mAQxxkfR46LzWgxFCPEAZJ
5P56Nc0IMHdJZj0Uc9+1jxERhOGppp5jlLgYGK7faGB/jTV6LaRQ4Ad+xiqokDWp
mUOZsmA+bMbtPfYjDZBz5mlyHcIRKIFpE1l3Y8F7PhJuzzMUKkJi90CYakCV4x/a
Zs4pzk5E96c2VQx01RIEJ7fzHF7lwFdtfTS4YsLtAbQFsKayqwkGcVv2B1AHeqdo
TMX+cgDvjd1ZganGlWA8Sv9RkNSMchn1hMuTwERTyFTr2dKPnQdA1F480+jUap41
ClXgn227WkCIMrNhQGNyJsnwyzi5wS8rBVRQ3BOTMyvGM07j3axUOYaejEpg7wKi
wTPZGLGH1sz5GljD/916v5+v2xLbOo5606j9dWf5/tAhbPuqrQgWv41wuKDi+dDD
EKkODF7DHes8No+QcHTDyETMn1RYm7t0RKR4zsFNBFp+A0oBEAC9ynZI9LU+uJkM
eEJeJyQ/8VFkCJQPQZEsIGzOTlPnwvVna0AS86n2Z+rK7R/usYs5iJCZ55/JISWd
8xD57ue0eB47bcJvVqGlObI2DEG8TwaW0O0duRhDgzMEL4t1KdRAepIESBEA/iPp
I4gfUbVEIEQuqdqQyO4GAe+MkD0Hy5JH/0qgFmbaSegNTdQg5iqYjRZ3ttiswalq
l1/iSyv1WYeC1OAs+2BLOAT2NEggSiVOtxEfgewsQtCWi8H1SoirakIfo45Hz0tk
/Ad9ZWh2PvOGt97Ka85o4TLJxgJJqGEnqcFUZnJJriwoaRIS8N2C8/nEM53jb1sH
0gYddMU3QxY7dYNLIUrRKQeNkF30dK7V6JRH7pleRlf+wQcNfRAIUrNlatj9Txwi
vQrKnC9aIFFHEy/0mAgtrQShcMRmMgVlRoOA5B8RTulRLCmkafvwuhs6dCxN0GNA
ORIVVFxjx9Vn7OqYPgwiofZ6SbEl0hgPyWBQvE85klFLZLoj7p+joDY1XNQztmfA
rnJ9x+YV4igjWImINAZSlmEcYtd+xy3Li/8oeYDAqrsnrOjb+WvGhCykJk4urBog
2LNtcyCjkTs7F+WeXGUo0NDhbd3Z6AyFfqeF7uJ3D5hlpX2nI9no/ugPrrTVoVZA
grrnNz0iZG2DVx46x913pVKHl5mlYQARAQABwsFfBBgBAgAJBQJafgNKAhsMAAoJ
ELKItV//nCLBwNIP/AiIHE8boIqReFQyaMzxq6lE4YZCZNj65B/nkDOvodSiwfwj
jVVE2V3iEzxMHbgyTCGA67+Bo/d5aQGjgn0TPtsGzelyQHipaUzEyrsceUGWYoKX
YyVWKEfyh0cDfnd9diAm3VeNqchtcMpoehETH8frRHnJdBcjf112PzQSdKC6kqU0
Q196c4Vp5HDOQfNiDnTf7gZSj0BraHOByy9LEDCLhQiCmr+2E0rW4tBtDAn2HkT9
uf32ZGqJCn1O+2uVfFhGu6vPE5qkqrbSE8TG+03H8ecU2q50zgHWPdHMOBvy3Ehz
fAh2VmOSTcRK+tSUe/u3wdLRDPwv/DTzGI36Kgky9MsDC5gpIwNbOJP2G/q1wT1o
Gkw4IXfWv2ufWiXqJ+k7HEi2N1sree7Dy9KBCqb+ca1vFhYPDJfhP75I/VnzHVss
Z/rYZ9+51yDoUABoNdJNSGUYl+Yh9Pw9pE3Kt4EFzUlFZWbE4xKL/NPno+z4J9aW
emLLszcYz/u3XnbOvUSQHSrmfOzX3cV4yfmjM5lewgSstoxGyTx2M8enslgdXhPt
hZlDnTnOT+C+OTsh8+m5tos8HQjaPM01MKBiAqdPgksm1wu2DrrwUi6ChRVTUBcj
6+/9IJ81H2P2gJk3Ls3AVIxIffLoY34E+MYSfkEjBz0E8CLOcAw7JIwAaeBTzsFN
BGbyLVgBEACqClxh50hmBepTSVlan6EBq3OAoxhrAhWZYEwN78k+ENhK68KhqC5R
IsHzlL7QHW1gmfVBQZ63GnWiraM6wOJqFTL4ZWvRslga9u28FJ5XyK860mZLgYhK
9BzoUk4s+dat9jVUbq6LpQ1Ot5I9vrdzo2p1jtQ8h9WCIiFxSYy8s8pZ3hHh5T64
GIj1m/kY7lG3VIdUgoNiREGf/iOMjUFjwwE9ZoJ26j9p7p1U+TkKeF6wgswEB1T3
J8KCAtvmRtqJDq558IU5jhg5fgN+xHB8cgvUWulgK9FIF9oFxcuxtaf/juhHWKMO
RtL0bHfNdXoBdpUDZE+mLBUAxF6KSsRrvx6AQyJs7VjgXJDtQVWvH0PUmTrEswgb
49nNU+dLLZQAZagxqnZ9Dp5l6GqaGZCHERJcLmdY/EmMzSf5YazJ6c0vO8rdW27M
kn73qcWAplQn5mOXaqbfzWkAUPyUXppuRHfrjxTDz3GyJJVOeMmMrTxH4uCaGpOX
Z8tN6829J1roGw4oKDRUQsaBAeEDqizXMPRc+6U9vI5FXzbAsb+8lKW65G7JWHym
YPOGUt2hK4DdTA1PmVo0DxH00eWWeKxqvmGyX+Dhcg+5e191rPsMRGsDlH6KihI6
+3JIuc0y6ngdjcp6aalbuvPIGFrCRx3tnRtNc7He6cBWQoH9RPwluwARAQABwsOs
BBgBCgAgFiEEdodNnxM2uiJZBxxxsoi1X/+cIsEFAmbyLVgCGwICQAkQsoi1X/+c
IsHBdCAEGQEKAB0WIQSilC2pUlbVp66j3+yzNoc6synyUwUCZvItWAAKCRCzNoc6
synyU85gD/0T1QDtPhovkGwoqv4jUbEMMvpeYQf+oWgm/TjWPeLwdjl7AtY0G9Ml
ZoyGniYkoHi37Gnn/ShLT3B5vtyI58ap2+SSa8SnGftdAKRLiWFWCiAEklm9FRk8
N3hwxhmSFF1KR/AIDS4g+HIsZn7YEMubBSgLlZZ9zHl4O4vwuXlREBEW97iL/FSt
VownU2V39t7PtFvGZNk+DJH7eLO3jmNRYB0PL4JOyyda3NH/J92iwrFmjFWWmmWb
/Xz8l9DIs+Z59pRCVTTwbBEZhcUc7rVMCcIYL+q1WxBG2e6lMn15OQJ5WfiE6E0I
sGirAEDnXWx92JNGx5l+mMpdpsWhBZ5iGTtttZesibNkQfd48/eCgFi4cxJUC4PT
UQwfD9AMgzwSTGJrkI5XGy+XqxwOjL8UA0iIrtTpMh49zw46uV6kwFQCgkf32jZM
OLwLTNSzclbnA7GRd8tKwezQ/XqeK3dal2n+cOr+o+Eka7yGmGWNUqFbIe8cjj9T
JeF3mgOCmZOwMI+wIcQYRSf+e5VTMO6TNWH5BI3vqeHSt7HkYuPlHT0pGum88d4a
pWqhulH4rUhEMtirX1hYx8Q4HlUOQqLtxzmwOYWkhl1C+yPObAvUDNiHCLf9w28n
uihgEkzHt9J4VKYulyJM9fe3ENcyU6rpXD7iANQqcr87ogKXFxknZ97uEACvSucc
RbnnAgRqZ7GDzgoBerJ2zrmhLkeREZ08iz1zze1JgyW3HEwdr2UbyAuqvSADCSUU
GN0vtQHsPzWl8onRc7lOPqPDF8OO+UfN9NAfA4wl3QyChD1GXl9rwKQOkbvdlYFV
UFx9u86LNi4ssTmU8p9NtHIGpz1SYMVYNoYy9NU7EVqypGMguDCL7gJt6GUmA0sw
p+YCroXiwL2BJ7RwRqTpgQuFL1gShkA17D5jK4mDPEetq1d8kz9rQYvAR/sTKBsR
ImC3xSfn8zpWoNTTB6lnwyP5Ng1bu6esS7+SpYprFTe7ZqGZF6xhvBPf1Ldi9UAm
U2xPN1/eeWxEa2kusidmFKPmN8lcT4miiAvwGxEnY7Oww9CgZlUB+LP4dl5VPjEt
sFeAhrgxLdpVTjPRRwTd9VQF3/XYl83j5wySIQKIPXgT3sG3ngAhDhC8I8GpM36r
8WJJ3x2yVzyJUbBPO0GBhWE2xPNIfhxVoU4cGGhpFqz7dPKSTRDGq++MrFgKKGpI
ZwT3CPTSSKc7ySndEXWkOYArDIdtyxdE1p5/c3aoz4utzUU7NDHQ+vVIwlnZSMiZ
jek2IJP3SZ+COOIHCVxpUaZ4lnzWT4eDqABhMLpIzw6NmGfg+kLBJhouqz81WITr
EtJuZYM5blWncBOJCoWMnBEcTEo/viU3GgcVRw=3D=3D
=3Dx94R
-----END PGP PUBLIC KEY BLOCK-----

--------------We07yydANd6nJvOL0FG40k0P--

--------------y9mx4z91nTxlghyMIEal9H0H--

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

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

iQIzBAEBCgAdFiEEopQtqVJW1aeuo9/sszaHOrMp8lMFAmieVN0ACgkQszaHOrMp
8lOe2BAAntXcZvrYJ1RmED1c1oKGYMULWNTj5p7Z737zBfk3MJp/SMa4SKDcBm0o
+Fvs358E+3XaOorKVTqD/Rx49zhCeVwttYjE9DVFPpTXiEtJRy7BTEx119k4PpIc
E9o7waaGPmmB0vIK5Yi5BdYLOshSFaAVwz9os8MGlowmujC27J8Xd+P+i46Vjc+3
uySzyW5PCSIOeIRGTjY5765vxYA2MJ8etezVx6w3rWwsqbOJ2agrjC5+U6Z0BOnN
S0fCCwIsTnlAC9hB37p+Vijjyol9nSJg8Cp8Y7U1g+/l175WvzDC4zscK0LabdVT
3fRKuFHGYXTEBBGTopYnpsqg2cOZ1q8Sjd1OyDKgpuLf1l2HR2zGqAwcDT1Hg3Cw
xuZkRhUM1Ud8Drftb/nT+AGjT/lkQCUgUBcLnzGkl/7ZDa3+2K2+TybtmL5myYly
ETb3z03nZ6PHton0/iM0mg2glO/kuG8HsE9oaKk7KXkhsRChj7ruCH001iBbxLNq
kE0dEb7G7P0DQQxJjeNlpdV+0cCfL93s7VPmk7N8WuDbK7TjM+jAE8Kw3qBLFf8p
sj7xwGn4Y8prsDLFPadv3s02yumMQATPIWG7yUnI04AS1WiWlaNzRr9KUCnOp0tF
1a0sakW3Jne4hsEBjL9mB/D+Lu4NmFwDO27cSkvKAIVcAkomYnw=
=np9y
-----END PGP SIGNATURE-----

--------------rO4lIfK0tgeR13JMNehk2AP9--


From xen-devel-bounces@lists.xenproject.org Thu Aug 14 22:25:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 22:25:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082604.1442406 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umgO2-0004oo-EI; Thu, 14 Aug 2025 22:25:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082604.1442406; Thu, 14 Aug 2025 22: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 1umgO2-0004oh-Bj; Thu, 14 Aug 2025 22:25:30 +0000
Received: by outflank-mailman (input) for mailman id 1082604;
 Thu, 14 Aug 2025 22:25:29 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mOIo=22=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1umgO1-0004ob-7f
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 22:25:29 +0000
Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com
 [2a00:1450:4864:20::331])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 940f68b2-795d-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 00:25:27 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-45a1b04f8b5so7291405e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 15:25:27 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45a1c6cec65sm37122845e9.11.2025.08.14.15.25.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 14 Aug 2025 15:25: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>
X-Inumbo-ID: 940f68b2-795d-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755210326; x=1755815126; 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=FKVFUdCKTfX+XVpvbvYWLH9RGVLOaxaOH7QOH70/CtY=;
        b=WCbwWr6Q58/w5JZ1TC5XNNwYrPaNlrnBmo5jTy4/gQn/xuQ/iQ4SfkOWglb5/SUqf1
         BmkSxWP3gSFBjEwlmN1rr/xxBni/Lu3anmLe/ZSMEUlNA7VWsToRNAowsU8jXB0UuuTg
         kMn8lrbjxtn+sPSpOVJgvCm4Zk/3eS6SDC/Mo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755210326; x=1755815126;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=FKVFUdCKTfX+XVpvbvYWLH9RGVLOaxaOH7QOH70/CtY=;
        b=kk3ZmnxwN4Y3h/vuCYvXPDuTKYM4SgwNu6BQAqeLxVuiOiYf6dB1qG2joxcHajaWzN
         Egt7RH0070RJY7jbkDTmSSbbAre6Vrk+lrdHFQXw+CAEWcY+Fyx5WcJJfzfTi59GWVPo
         ESc90LrUFypFvd8xjqw3AGLuCxATm18QDXJ1MBJg1BrklP9cMw1gbZMrDqXclOdbqhfj
         MqIxJh5h3QJxz4Vm2RXME4N6nevfuMWMrRqSfqSQ0iRy9heVP4qxnb5V6joD18sZ8rTn
         EXGvkymIUTDkyAywJ6A6pD+MkiU59QP1GRos6ges7+bshA5tgpyltdoVUnJhbjRKwqMu
         ot3A==
X-Gm-Message-State: AOJu0YzEi4ica7NA6NhMcHPiBhwVFQJ5HVbf9fKBvRmv04+7240N4E3f
	o/qWbKnGP4/qQemDmyE0l2th+CpFpLxQAG5/36+P+cDLDHTVugRbyrPAcO0znTBNYnp05NX3Y5o
	YKw4T
X-Gm-Gg: ASbGncs9EIBYEXrbdA080ZAb0NCy67hDFbFl4pBRcc9kfdJQuSjWAeaKSBHhHMkZejg
	+aj7lslUlrp6KOz3lHQcsFGcR5z+zu0GR1wghDD7X4BKTkgAq2CstL8SkmYrQYau24EMB+SD3TV
	CxJHBS6d5jIpDoLPYbLqtHLQFVwDXhmNzTFHSXy0GuodJcCT1mnVVAQDpQJY8hRKIYJL2K5Deu5
	m20cg2q1PnhLObUGGrkIKF8aWpcW/iub3c5JQnYzpHp7Iv+EG01UEXarFbfZEBtAGD7M+eZZ36T
	Q3xVlb1FkixNQ5IffHqJnGV4DDf0Bp8oceBXE16Y/2MN+tDzbINCDq40kcrntZgB8tjcUW10HR4
	1D0e3Tu9yyRa0N5mR7plbHpZGt0CrmhJYbdgoIpGMPxcT8TYaswDJW3CjytVAYnIhdODlL4AM+f
	GD
X-Google-Smtp-Source: AGHT+IGsz8sayD1aehoqLqII8CiRc7etrgUdKkOyoFbLyfBbTsOCNjeLIRRFQD/UxTOyScimHI+raA==
X-Received: by 2002:a05:600c:8010:b0:459:e3f8:92ec with SMTP id 5b1f17b1804b1-45a217ecb09mr215125e9.10.1755210326392;
        Thu, 14 Aug 2025 15:25:26 -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>,
	Roberto Bagnara <roberto.bagnara@bugseng.com>,
	Nicola Vetrini <nicola.vetrini@bugseng.com>,
	"consulting @ bugseng . com" <consulting@bugseng.com>
Subject: [PATCH v2] xen: Use auto as per C23
Date: Thu, 14 Aug 2025 23:25:24 +0100
Message-Id: <20250814222524.2638883-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

In macros it is common to declare local variables using typeof(param) in order
to ensure that side effects are only evaluated once.  A consequence of this is
double textural expansion of the parameter, which can get out of hand very
quickly with nested macros.

In C23, the auto keyword has been repurposed to perform type inference.

A GCC extension, __auto_type, is now avaialble in the new toolchain baseline
and avoids the double textural expansion.

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: Roberto Bagnara <roberto.bagnara@bugseng.com>
CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
CC: consulting@bugseng.com <consulting@bugseng.com>

The resulting build is identical.

v2:
 * Use auto directly
 * Eclair configuration

https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/1985289434
---
 automation/eclair_analysis/ECLAIR/toolchain.ecl | 11 +++++++++--
 docs/misra/C-language-toolchain.rst             |  2 ++
 xen/include/xen/compiler.h                      | 14 ++++++++++++++
 xen/include/xen/macros.h                        | 14 +++++++-------
 4 files changed, 32 insertions(+), 9 deletions(-)

diff --git a/automation/eclair_analysis/ECLAIR/toolchain.ecl b/automation/eclair_analysis/ECLAIR/toolchain.ecl
index 842f8377e561..125f99a06583 100644
--- a/automation/eclair_analysis/ECLAIR/toolchain.ecl
+++ b/automation/eclair_analysis/ECLAIR/toolchain.ecl
@@ -15,6 +15,7 @@
     __alignof__, __alignof: see Sections \"6.48 Alternate Keywords\" and \"6.44 Determining the Alignment of Functions, Types or Variables\" of "GCC_MANUAL".
     asm, __asm__: see Sections \"6.48 Alternate Keywords\" and \"6.47 How to Use Inline Assembly Language in C Code\" of "GCC_MANUAL".
     __attribute__: see Section \"6.39 Attribute Syntax\" of "GCC_MANUAL".
+    __auto_type: see Section \"6.7 Referring to a Type with typeof\" of "GCC_MANUAL".
     __builtin_offsetof: see Section \"6.53 Support for offsetof\" of "GCC_MANUAL".
     __builtin_types_compatible_p: see Section \"6.59 Other Built-in Functions Provided by GCC\" of "GCC_MANUAL".
     __builtin_va_arg: non-documented GCC extension.
@@ -26,6 +27,7 @@
 -name_selector+={alignof, "^(__alignof__|__alignof)$"}
 -name_selector+={asm, "^(__asm__|asm)$"}
 -name_selector+={attribute, "^__attribute__$"}
+-name_selector+={auto_type, "^__auto_type$"}
 -name_selector+={builtin_offsetof, "^__builtin_offsetof$"}
 -name_selector+={builtin_types_p, "^__builtin_types_compatible_p$"}
 -name_selector+={builtin_va_arg, "^__builtin_va_arg$"}
@@ -39,6 +41,7 @@
 "alignof||
 asm||
 attribute||
+auto_type||
 builtin_offsetof||
 builtin_types_p||
 builtin_va_arg||
@@ -114,6 +117,7 @@ volatile"
 -doc_end
 
 -doc_begin="
+    ext_auto_type: see Section \"6.7 Referring to a Type with typeof\" of "GCC_MANUAL".
     ext_c_missing_varargs_arg: see Section \"6.21 Macros with a Variable Number of Arguments\" of "GCC_MANUAL".
     ext_enum_value_not_int: non-documented GCC extension.
     ext_flexible_array_in_array: see Section \"6.18 Arrays of Length Zero\" of "GCC_MANUAL".
@@ -126,6 +130,7 @@ volatile"
     ext_return_has_void_expr: see the documentation for -Wreturn-type in Section \"3.8 Options to Request or Suppress Warnings\" of "GCC_MANUAL".
     ext_sizeof_alignof_void_type: see Section \"6.24 Arithmetic on void- and Function-Pointers\" of "GCC_MANUAL".
 "
+-name_selector+={ext_auto_type, "^ext_auto_type$"}
 -name_selector+={ext_c_missing_varargs_arg, "^ext_c_missing_varargs_arg$"}
 -name_selector+={ext_enum_value_not_int, "^ext_enum_value_not_int$"}
 -name_selector+={ext_flexible_array_in_array, "^ext_flexible_array_in_array$"}
@@ -139,7 +144,8 @@ volatile"
 -name_selector+={ext_sizeof_alignof_void_type, "^ext_sizeof_alignof_void_type$"}
 
 -config=STD.diag,behavior+={c99,GCC_ARM64,
-"ext_c_missing_varargs_arg||
+"ext_auto_type||
+ext_c_missing_varargs_arg||
 ext_forward_ref_enum_def||
 ext_gnu_array_range||
 ext_gnu_statement_expr_macro||
@@ -149,7 +155,8 @@ ext_return_has_void_expr||
 ext_sizeof_alignof_void_type"
 }
 -config=STD.diag,behavior+={c99,GCC_X86_64,
-"ext_c_missing_varargs_arg||
+"ext_auto_type||
+ext_c_missing_varargs_arg||
 ext_enum_value_not_int||
 ext_flexible_array_in_array||
 ext_flexible_array_in_struct||
diff --git a/docs/misra/C-language-toolchain.rst b/docs/misra/C-language-toolchain.rst
index cb81f5c09872..635936004554 100644
--- a/docs/misra/C-language-toolchain.rst
+++ b/docs/misra/C-language-toolchain.rst
@@ -94,6 +94,8 @@ The table columns are as follows:
           see Sections "6.48 Alternate Keywords" and "6.44 Determining the Alignment of Functions, Types or Variables" of GCC_MANUAL.
        __attribute__:
           see Section "6.39 Attribute Syntax" of GCC_MANUAL.
+       __auto_type:
+          see Section "6.7 Referring to a Type with typeof" of GCC_MANUAL.
        __builtin_types_compatible_p:
           see Section "6.59 Other Built-in Functions Provided by GCC" of GCC_MANUAL.
        __builtin_va_arg:
diff --git a/xen/include/xen/compiler.h b/xen/include/xen/compiler.h
index 88bf26bc5109..38ef5d82ad95 100644
--- a/xen/include/xen/compiler.h
+++ b/xen/include/xen/compiler.h
@@ -64,6 +64,20 @@
 # define asm_inline asm
 #endif
 
+/*
+ * In C23, the auto keyword has been repurposed to perform type inference.
+ *
+ * This behaviour is available via the __auto_type extension in supported
+ * toolchains.
+ *
+ * https://www.gnu.org/software/c-intro-and-ref/manual/html_node/Auto-Type.html
+ * https://clang.llvm.org/docs/LanguageExtensions.html#auto-type
+ */
+#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 202311L
+/* SAF-3-safe MISRA C Rule 20.4: Giving the keyword it's C23 meaning. */
+#define auto __auto_type
+#endif
+
 /*
  * Add the pseudo keyword 'fallthrough' so case statement blocks
  * must end with any of these keywords:
diff --git a/xen/include/xen/macros.h b/xen/include/xen/macros.h
index f9ccde86fb23..ceca2e4a1bf1 100644
--- a/xen/include/xen/macros.h
+++ b/xen/include/xen/macros.h
@@ -63,18 +63,18 @@
 /* Hide a value from the optimiser. */
 #define HIDE(x)                                 \
     ({                                          \
-        typeof(x) _x = (x);                     \
+        auto _x = (x);                          \
         asm volatile ( "" : "+r" (_x) );        \
         _x;                                     \
     })
 
 #define ABS(x) ({                              \
-    typeof(x) x_ = (x);                        \
+    auto x_ = (x);                             \
     (x_ < 0) ? -x_ : x_;                       \
 })
 
 #define SWAP(a, b) \
-   do { typeof(a) t_ = (a); (a) = (b); (b) = t_; } while ( 0 )
+   do { auto t_ = (a); (a) = (b); (b) = t_; } while ( 0 )
 
 #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]) + __must_be_array(x))
 
@@ -102,15 +102,15 @@
  */
 #define min(x, y)                               \
     ({                                          \
-        const typeof(x) _x = (x);               \
-        const typeof(y) _y = (y);               \
+        const auto _x = (x);                    \
+        const auto _y = (y);                    \
         (void)(&_x == &_y); /* typecheck */     \
         _x < _y ? _x : _y;                      \
     })
 #define max(x, y)                               \
     ({                                          \
-        const typeof(x) _x = (x);               \
-        const typeof(y) _y = (y);               \
+        const auto _x = (x);                    \
+        const auto _y = (y);                    \
         (void)(&_x == &_y); /* typecheck */     \
         _x > _y ? _x : _y;                      \
     })

base-commit: b2c0dc44b37516b758c38de04c61ad295ac0dff2
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Aug 14 23:14:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 14 Aug 2025 23:14:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082645.1442417 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umh9N-0003il-5c; Thu, 14 Aug 2025 23:14:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082645.1442417; Thu, 14 Aug 2025 23:14: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 1umh9N-0003ie-2A; Thu, 14 Aug 2025 23:14:25 +0000
Received: by outflank-mailman (input) for mailman id 1082645;
 Thu, 14 Aug 2025 23:14:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qfDD=22=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1umh9M-0003iY-2v
 for xen-devel@lists.xenproject.org; Thu, 14 Aug 2025 23:14:24 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 69177a64-7964-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 01:14:22 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 1F2B95C6F45;
 Thu, 14 Aug 2025 23:14:21 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7FA6DC4CEED;
 Thu, 14 Aug 2025 23:14:19 +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>
X-Inumbo-ID: 69177a64-7964-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755213260;
	bh=QJo7sR57A90hMJBr0SQ3Pgkvw+Xm7vtfsmBF4NCJMF4=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=o+eV+wAIEfYZo7K8t+zbP7Q6JX+JIXZFuacGpFOFQiNqms/JS9ckSnQ2znT6wkFDZ
	 4HYV6QYKCZWWaF2EYRi6rG3AePoIshraEcANIVSlDGg561bTUuW7OdmlydtQfA4/N/
	 1k672uzBq3ysVH3FVIzlMynu9Ey1x2C8osEUrG3KKN2695UdZZWfy6TzGn9G3osBj5
	 Hb7LYvtdvO59yjWlZBsqZUnfsMdtKV4yWDuKc8HFjec+wGGZfc8U3Evs49rHrzjXo7
	 xYvyhC9Yl79V2o17MngPvZpHTm58yUMRRYL04Wha2FyHaq/oi/xA/B0pRIafCbhNIv
	 S/ACCzKZriadQ==
Date: Thu, 14 Aug 2025 16:14:17 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: "Penny, Zheng" <penny.zheng@amd.com>, "Huang, Ray" <Ray.Huang@amd.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    "Orzel, Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v1 01/25] xen/x86: move domctl.o out of
 PV_SHIM_EXCLUSIVE
In-Reply-To: <3e20688c-c125-4aa4-bc06-1fe634550f70@suse.com>
Message-ID: <alpine.DEB.2.22.394.2508141604510.10166@ubuntu-linux-20-04-desktop>
References: <20250803094738.3625269-1-Penny.Zheng@amd.com> <20250803094738.3625269-2-Penny.Zheng@amd.com> <371bc812-acdb-41ef-950b-3c9e5feea48e@suse.com> <DM4PR12MB84510F1F89641B672916C055E122A@DM4PR12MB8451.namprd12.prod.outlook.com>
 <3e20688c-c125-4aa4-bc06-1fe634550f70@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; BOUNDARY="8323329-1533615221-1755212732=:10166"
Content-ID: <alpine.DEB.2.22.394.2508141612420.10166@ubuntu-linux-20-04-desktop>

  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-1533615221-1755212732=:10166
Content-Type: text/plain; CHARSET=UTF-8
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.DEB.2.22.394.2508141612421.10166@ubuntu-linux-20-04-desktop>

On Tue, 5 Aug 2025, Jan Beulich wrote:
> On 05.08.2025 05:38, Penny, Zheng wrote:
> > [Public]
> > 
> >> -----Original Message-----
> >> From: Jan Beulich <jbeulich@suse.com>
> >> Sent: Monday, August 4, 2025 3:43 PM
> >> To: Penny, Zheng <penny.zheng@amd.com>
> >> Cc: Huang, Ray <Ray.Huang@amd.com>; Andrew Cooper
> >> <andrew.cooper3@citrix.com>; Roger Pau MonnÃ© <roger.pau@citrix.com>;
> >> Anthony PERARD <anthony.perard@vates.tech>; Orzel, Michal
> >> <Michal.Orzel@amd.com>; Julien Grall <julien@xen.org>; Stefano Stabellini
> >> <sstabellini@kernel.org>; xen-devel@lists.xenproject.org
> >> Subject: Re: [PATCH v1 01/25] xen/x86: move domctl.o out of
> >> PV_SHIM_EXCLUSIVE
> >>
> >> On 03.08.2025 11:47, Penny Zheng wrote:
> >>> In order to fix CI error of a randconfig picking both
> >>> PV_SHIM_EXCLUSIVE=y and HVM=y results in hvm.c being built, but
> >>> domctl.c not being built, which leaves a few functions, like
> >>> domctl_lock_acquire/release() undefined, causing linking to fail.
> >>> To fix that, we intend to move domctl.o out of the PV_SHIM_EXCLUSIVE
> >>> Makefile /hypercall-defs section, with this adjustment, we also need
> >>> to release redundant vnuma_destroy() stub definition and paging_domctl
> >>> hypercall-defs from PV_SHIM_EXCLUSIVE guardian, to not break
> >>> compilation Above change will leave dead code in the shim binary
> >>> temporarily and will be fixed with the introduction of CONFIG_DOMCTL.
> >>>
> >>> Fixes: 568f806cba4c ("xen/x86: remove "depends on
> >>> !PV_SHIM_EXCLUSIVE"")
> >>> Reported-by: Jan Beulich <jbeulich@suse.com>
> >>> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
> >>> ---
> >>> v1 -> v2:
> >>> - remove paging_domctl hypercall-defs
> >>
> >> And you've run this through a full round of testing this time, in isolation?
> > 
> > This commit shall be committed together with "xen/x86: complement PG_log_dirty wrapping", (I've added in change log, idk why it didn't get delivered in the mail list in the last).
> 
> And "committed together" still means the two at least build okay independently
> (i.e. allowing the build-each-commit job to succeed)?
> 
> As to the missing indication thereof in the submission: Patch 01 has a revlog,
> so if anything was missing there you must have added it some other way. But
> the cover letter is lacking that information as well. (As indicated earlier,
> to increase the chance of such a remark actually being noticed, it's best put
> in both places.)
> 
> > As PG_log_dirty is disabled on PV mode, paging_domctl() will still have "undefined reference" on PV mode, which gets fixed in "xen/x86: complement PG_log_dirty wrapping".  I thought it better sits there.
> > If it doesn't comply with the commit policy, I'll move according fix here.
> 
> Let me post a pair of patches dealing with part of the problem, in an imo
> (longer term) more desirable way.

With this patch https://marc.info/?l=xen-devel&m=175438069103017
committed, can we go ahead with this patch, to resolve the outstanding
build problem?

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
--8323329-1533615221-1755212732=:10166--


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 03:07:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 03:07:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082687.1442439 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umkmU-00058G-5F; Fri, 15 Aug 2025 03:07:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082687.1442439; Fri, 15 Aug 2025 03:07: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 1umkmT-00056J-SH; Fri, 15 Aug 2025 03:07:01 +0000
Received: by outflank-mailman (input) for mailman id 1082687;
 Fri, 15 Aug 2025 03:07:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vxBA=23=huawei.com=ruanjinjie@srs-se1.protection.inumbo.net>)
 id 1umkmS-00052B-6P
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 03:07:00 +0000
Received: from szxga05-in.huawei.com (szxga05-in.huawei.com [45.249.212.191])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e422c208-7984-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 05:06:54 +0200 (CEST)
Received: from mail.maildlp.com (unknown [172.19.88.214])
 by szxga05-in.huawei.com (SkyGuard) with ESMTP id 4c36Q44PGsz2gL5D;
 Fri, 15 Aug 2025 11:03:56 +0800 (CST)
Received: from dggpemf500011.china.huawei.com (unknown [7.185.36.131])
 by mail.maildlp.com (Postfix) with ESMTPS id 1972D1A016C;
 Fri, 15 Aug 2025 11:06:46 +0800 (CST)
Received: from huawei.com (10.90.53.73) by dggpemf500011.china.huawei.com
 (7.185.36.131) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.11; Fri, 15 Aug
 2025 11:06:44 +0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e422c208-7984-11f0-a328-13f23c93f187
From: Jinjie Ruan <ruanjinjie@huawei.com>
To: <catalin.marinas@arm.com>, <will@kernel.org>, <oleg@redhat.com>,
	<sstabellini@kernel.org>, <mark.rutland@arm.com>, <ada.coupriediaz@arm.com>,
	<mbenes@suse.cz>, <broonie@kernel.org>, <anshuman.khandual@arm.com>,
	<ryan.roberts@arm.com>, <chenl311@chinatelecom.cn>, <liaochang1@huawei.com>,
	<kristina.martsenko@arm.com>, <leitao@debian.org>, <ardb@kernel.org>,
	<linux-arm-kernel@lists.infradead.org>, <linux-kernel@vger.kernel.org>,
	<xen-devel@lists.xenproject.org>
CC: <ruanjinjie@huawei.com>
Subject: [PATCH v8 2/8] arm64: entry: Refactor the entry and exit for exceptions from EL1
Date: Fri, 15 Aug 2025 11:06:27 +0800
Message-ID: <20250815030633.448613-3-ruanjinjie@huawei.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250815030633.448613-1-ruanjinjie@huawei.com>
References: <20250815030633.448613-1-ruanjinjie@huawei.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.90.53.73]
X-ClientProxiedBy: kwepems500002.china.huawei.com (7.221.188.17) To
 dggpemf500011.china.huawei.com (7.185.36.131)

The generic entry code uses irqentry_state_t to track lockdep and RCU
state across exception entry and return. For historical reasons, arm64
embeds similar fields within its pt_regs structure.

In preparation for moving arm64 over to the generic entry code, pull
these fields out of arm64's pt_regs, and use a separate structure,
matching the style of the generic entry code.

No functional changes.

Acked-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Ada Couprie Diaz <ada.coupriediaz@arm.com>
Suggested-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
---
 arch/arm64/include/asm/ptrace.h  |   4 -
 arch/arm64/kernel/entry-common.c | 163 ++++++++++++++++++++-----------
 2 files changed, 106 insertions(+), 61 deletions(-)

diff --git a/arch/arm64/include/asm/ptrace.h b/arch/arm64/include/asm/ptrace.h
index 8b915d4a9d4b..65b053a24d82 100644
--- a/arch/arm64/include/asm/ptrace.h
+++ b/arch/arm64/include/asm/ptrace.h
@@ -169,10 +169,6 @@ struct pt_regs {
 
 	u64 sdei_ttbr1;
 	struct frame_record_meta stackframe;
-
-	/* Only valid for some EL1 exceptions. */
-	u64 lockdep_hardirqs;
-	u64 exit_rcu;
 };
 
 /* For correct stack alignment, pt_regs has to be a multiple of 16 bytes. */
diff --git a/arch/arm64/kernel/entry-common.c b/arch/arm64/kernel/entry-common.c
index 8e798f46ad28..93c95fc51cc0 100644
--- a/arch/arm64/kernel/entry-common.c
+++ b/arch/arm64/kernel/entry-common.c
@@ -29,6 +29,13 @@
 #include <asm/sysreg.h>
 #include <asm/system_misc.h>
 
+typedef struct irqentry_state {
+	union {
+		bool	exit_rcu;
+		bool	lockdep;
+	};
+} arm64_irqentry_state_t;
+
 /*
  * Handle IRQ/context state management when entering from kernel mode.
  * Before this function is called it is not safe to call regular kernel code,
@@ -37,29 +44,37 @@
  * This is intended to match the logic in irqentry_enter(), handling the kernel
  * mode transitions only.
  */
-static __always_inline void __enter_from_kernel_mode(struct pt_regs *regs)
+static __always_inline arm64_irqentry_state_t __enter_from_kernel_mode(struct pt_regs *regs)
 {
-	regs->exit_rcu = false;
+	arm64_irqentry_state_t state = {
+		.exit_rcu = false,
+	};
 
 	if (!IS_ENABLED(CONFIG_TINY_RCU) && is_idle_task(current)) {
 		lockdep_hardirqs_off(CALLER_ADDR0);
 		ct_irq_enter();
 		trace_hardirqs_off_finish();
 
-		regs->exit_rcu = true;
-		return;
+		state.exit_rcu = true;
+		return state;
 	}
 
 	lockdep_hardirqs_off(CALLER_ADDR0);
 	rcu_irq_enter_check_tick();
 	trace_hardirqs_off_finish();
+
+	return state;
 }
 
-static void noinstr enter_from_kernel_mode(struct pt_regs *regs)
+static noinstr arm64_irqentry_state_t enter_from_kernel_mode(struct pt_regs *regs)
 {
-	__enter_from_kernel_mode(regs);
+	arm64_irqentry_state_t state;
+
+	state = __enter_from_kernel_mode(regs);
 	mte_check_tfsr_entry();
 	mte_disable_tco_entry(current);
+
+	return state;
 }
 
 /*
@@ -70,12 +85,13 @@ static void noinstr enter_from_kernel_mode(struct pt_regs *regs)
  * This is intended to match the logic in irqentry_exit(), handling the kernel
  * mode transitions only, and with preemption handled elsewhere.
  */
-static __always_inline void __exit_to_kernel_mode(struct pt_regs *regs)
+static __always_inline void __exit_to_kernel_mode(struct pt_regs *regs,
+						  arm64_irqentry_state_t state)
 {
 	lockdep_assert_irqs_disabled();
 
 	if (!regs_irqs_disabled(regs)) {
-		if (regs->exit_rcu) {
+		if (state.exit_rcu) {
 			trace_hardirqs_on_prepare();
 			lockdep_hardirqs_on_prepare();
 			ct_irq_exit();
@@ -85,15 +101,16 @@ static __always_inline void __exit_to_kernel_mode(struct pt_regs *regs)
 
 		trace_hardirqs_on();
 	} else {
-		if (regs->exit_rcu)
+		if (state.exit_rcu)
 			ct_irq_exit();
 	}
 }
 
-static void noinstr exit_to_kernel_mode(struct pt_regs *regs)
+static void noinstr exit_to_kernel_mode(struct pt_regs *regs,
+					arm64_irqentry_state_t state)
 {
 	mte_check_tfsr_exit();
-	__exit_to_kernel_mode(regs);
+	__exit_to_kernel_mode(regs, state);
 }
 
 /*
@@ -194,9 +211,11 @@ asmlinkage void noinstr asm_exit_to_user_mode(struct pt_regs *regs)
  * mode. Before this function is called it is not safe to call regular kernel
  * code, instrumentable code, or any code which may trigger an exception.
  */
-static void noinstr arm64_enter_nmi(struct pt_regs *regs)
+static noinstr arm64_irqentry_state_t arm64_enter_nmi(struct pt_regs *regs)
 {
-	regs->lockdep_hardirqs = lockdep_hardirqs_enabled();
+	arm64_irqentry_state_t state;
+
+	state.lockdep = lockdep_hardirqs_enabled();
 
 	__nmi_enter();
 	lockdep_hardirqs_off(CALLER_ADDR0);
@@ -205,6 +224,8 @@ static void noinstr arm64_enter_nmi(struct pt_regs *regs)
 
 	trace_hardirqs_off_finish();
 	ftrace_nmi_enter();
+
+	return state;
 }
 
 /*
@@ -212,19 +233,18 @@ static void noinstr arm64_enter_nmi(struct pt_regs *regs)
  * mode. After this function returns it is not safe to call regular kernel
  * code, instrumentable code, or any code which may trigger an exception.
  */
-static void noinstr arm64_exit_nmi(struct pt_regs *regs)
+static void noinstr arm64_exit_nmi(struct pt_regs *regs,
+				   arm64_irqentry_state_t state)
 {
-	bool restore = regs->lockdep_hardirqs;
-
 	ftrace_nmi_exit();
-	if (restore) {
+	if (state.lockdep) {
 		trace_hardirqs_on_prepare();
 		lockdep_hardirqs_on_prepare();
 	}
 
 	ct_nmi_exit();
 	lockdep_hardirq_exit();
-	if (restore)
+	if (state.lockdep)
 		lockdep_hardirqs_on(CALLER_ADDR0);
 	__nmi_exit();
 }
@@ -234,14 +254,18 @@ static void noinstr arm64_exit_nmi(struct pt_regs *regs)
  * kernel mode. Before this function is called it is not safe to call regular
  * kernel code, instrumentable code, or any code which may trigger an exception.
  */
-static void noinstr arm64_enter_el1_dbg(struct pt_regs *regs)
+static noinstr arm64_irqentry_state_t arm64_enter_el1_dbg(struct pt_regs *regs)
 {
-	regs->lockdep_hardirqs = lockdep_hardirqs_enabled();
+	arm64_irqentry_state_t state;
+
+	state.lockdep = lockdep_hardirqs_enabled();
 
 	lockdep_hardirqs_off(CALLER_ADDR0);
 	ct_nmi_enter();
 
 	trace_hardirqs_off_finish();
+
+	return state;
 }
 
 /*
@@ -249,17 +273,16 @@ static void noinstr arm64_enter_el1_dbg(struct pt_regs *regs)
  * kernel mode. After this function returns it is not safe to call regular
  * kernel code, instrumentable code, or any code which may trigger an exception.
  */
-static void noinstr arm64_exit_el1_dbg(struct pt_regs *regs)
+static void noinstr arm64_exit_el1_dbg(struct pt_regs *regs,
+				       arm64_irqentry_state_t state)
 {
-	bool restore = regs->lockdep_hardirqs;
-
-	if (restore) {
+	if (state.lockdep) {
 		trace_hardirqs_on_prepare();
 		lockdep_hardirqs_on_prepare();
 	}
 
 	ct_nmi_exit();
-	if (restore)
+	if (state.lockdep)
 		lockdep_hardirqs_on(CALLER_ADDR0);
 }
 
@@ -475,73 +498,87 @@ UNHANDLED(el1t, 64, error)
 static void noinstr el1_abort(struct pt_regs *regs, unsigned long esr)
 {
 	unsigned long far = read_sysreg(far_el1);
+	arm64_irqentry_state_t state;
 
-	enter_from_kernel_mode(regs);
+	state = enter_from_kernel_mode(regs);
 	local_daif_inherit(regs);
 	do_mem_abort(far, esr, regs);
 	local_daif_mask();
-	exit_to_kernel_mode(regs);
+	exit_to_kernel_mode(regs, state);
 }
 
 static void noinstr el1_pc(struct pt_regs *regs, unsigned long esr)
 {
 	unsigned long far = read_sysreg(far_el1);
+	arm64_irqentry_state_t state;
 
-	enter_from_kernel_mode(regs);
+	state = enter_from_kernel_mode(regs);
 	local_daif_inherit(regs);
 	do_sp_pc_abort(far, esr, regs);
 	local_daif_mask();
-	exit_to_kernel_mode(regs);
+	exit_to_kernel_mode(regs, state);
 }
 
 static void noinstr el1_undef(struct pt_regs *regs, unsigned long esr)
 {
-	enter_from_kernel_mode(regs);
+	arm64_irqentry_state_t state;
+
+	state = enter_from_kernel_mode(regs);
 	local_daif_inherit(regs);
 	do_el1_undef(regs, esr);
 	local_daif_mask();
-	exit_to_kernel_mode(regs);
+	exit_to_kernel_mode(regs, state);
 }
 
 static void noinstr el1_bti(struct pt_regs *regs, unsigned long esr)
 {
-	enter_from_kernel_mode(regs);
+	arm64_irqentry_state_t state;
+
+	state = enter_from_kernel_mode(regs);
 	local_daif_inherit(regs);
 	do_el1_bti(regs, esr);
 	local_daif_mask();
-	exit_to_kernel_mode(regs);
+	exit_to_kernel_mode(regs, state);
 }
 
 static void noinstr el1_gcs(struct pt_regs *regs, unsigned long esr)
 {
-	enter_from_kernel_mode(regs);
+	arm64_irqentry_state_t state;
+
+	state = enter_from_kernel_mode(regs);
 	local_daif_inherit(regs);
 	do_el1_gcs(regs, esr);
 	local_daif_mask();
-	exit_to_kernel_mode(regs);
+	exit_to_kernel_mode(regs, state);
 }
 
 static void noinstr el1_mops(struct pt_regs *regs, unsigned long esr)
 {
-	enter_from_kernel_mode(regs);
+	arm64_irqentry_state_t state;
+
+	state = enter_from_kernel_mode(regs);
 	local_daif_inherit(regs);
 	do_el1_mops(regs, esr);
 	local_daif_mask();
-	exit_to_kernel_mode(regs);
+	exit_to_kernel_mode(regs, state);
 }
 
 static void noinstr el1_breakpt(struct pt_regs *regs, unsigned long esr)
 {
-	arm64_enter_el1_dbg(regs);
+	arm64_irqentry_state_t state;
+
+	state = arm64_enter_el1_dbg(regs);
 	debug_exception_enter(regs);
 	do_breakpoint(esr, regs);
 	debug_exception_exit(regs);
-	arm64_exit_el1_dbg(regs);
+	arm64_exit_el1_dbg(regs, state);
 }
 
 static void noinstr el1_softstp(struct pt_regs *regs, unsigned long esr)
 {
-	arm64_enter_el1_dbg(regs);
+	arm64_irqentry_state_t state;
+
+	state = arm64_enter_el1_dbg(regs);
 	if (!cortex_a76_erratum_1463225_debug_handler(regs)) {
 		debug_exception_enter(regs);
 		/*
@@ -554,37 +591,42 @@ static void noinstr el1_softstp(struct pt_regs *regs, unsigned long esr)
 			do_el1_softstep(esr, regs);
 		debug_exception_exit(regs);
 	}
-	arm64_exit_el1_dbg(regs);
+	arm64_exit_el1_dbg(regs, state);
 }
 
 static void noinstr el1_watchpt(struct pt_regs *regs, unsigned long esr)
 {
 	/* Watchpoints are the only debug exception to write FAR_EL1 */
 	unsigned long far = read_sysreg(far_el1);
+	arm64_irqentry_state_t state;
 
-	arm64_enter_el1_dbg(regs);
+	state = arm64_enter_el1_dbg(regs);
 	debug_exception_enter(regs);
 	do_watchpoint(far, esr, regs);
 	debug_exception_exit(regs);
-	arm64_exit_el1_dbg(regs);
+	arm64_exit_el1_dbg(regs, state);
 }
 
 static void noinstr el1_brk64(struct pt_regs *regs, unsigned long esr)
 {
-	arm64_enter_el1_dbg(regs);
+	arm64_irqentry_state_t state;
+
+	state = arm64_enter_el1_dbg(regs);
 	debug_exception_enter(regs);
 	do_el1_brk64(esr, regs);
 	debug_exception_exit(regs);
-	arm64_exit_el1_dbg(regs);
+	arm64_exit_el1_dbg(regs, state);
 }
 
 static void noinstr el1_fpac(struct pt_regs *regs, unsigned long esr)
 {
-	enter_from_kernel_mode(regs);
+	arm64_irqentry_state_t state;
+
+	state = enter_from_kernel_mode(regs);
 	local_daif_inherit(regs);
 	do_el1_fpac(regs, esr);
 	local_daif_mask();
-	exit_to_kernel_mode(regs);
+	exit_to_kernel_mode(regs, state);
 }
 
 asmlinkage void noinstr el1h_64_sync_handler(struct pt_regs *regs)
@@ -639,15 +681,19 @@ asmlinkage void noinstr el1h_64_sync_handler(struct pt_regs *regs)
 static __always_inline void __el1_pnmi(struct pt_regs *regs,
 				       void (*handler)(struct pt_regs *))
 {
-	arm64_enter_nmi(regs);
+	arm64_irqentry_state_t state;
+
+	state = arm64_enter_nmi(regs);
 	do_interrupt_handler(regs, handler);
-	arm64_exit_nmi(regs);
+	arm64_exit_nmi(regs, state);
 }
 
 static __always_inline void __el1_irq(struct pt_regs *regs,
 				      void (*handler)(struct pt_regs *))
 {
-	enter_from_kernel_mode(regs);
+	arm64_irqentry_state_t state;
+
+	state = enter_from_kernel_mode(regs);
 
 	irq_enter_rcu();
 	do_interrupt_handler(regs, handler);
@@ -655,7 +701,7 @@ static __always_inline void __el1_irq(struct pt_regs *regs,
 
 	arm64_preempt_schedule_irq();
 
-	exit_to_kernel_mode(regs);
+	exit_to_kernel_mode(regs, state);
 }
 static void noinstr el1_interrupt(struct pt_regs *regs,
 				  void (*handler)(struct pt_regs *))
@@ -681,11 +727,12 @@ asmlinkage void noinstr el1h_64_fiq_handler(struct pt_regs *regs)
 asmlinkage void noinstr el1h_64_error_handler(struct pt_regs *regs)
 {
 	unsigned long esr = read_sysreg(esr_el1);
+	arm64_irqentry_state_t state;
 
 	local_daif_restore(DAIF_ERRCTX);
-	arm64_enter_nmi(regs);
+	state = arm64_enter_nmi(regs);
 	do_serror(regs, esr);
-	arm64_exit_nmi(regs);
+	arm64_exit_nmi(regs, state);
 }
 
 static void noinstr el0_da(struct pt_regs *regs, unsigned long esr)
@@ -997,12 +1044,13 @@ asmlinkage void noinstr el0t_64_fiq_handler(struct pt_regs *regs)
 static void noinstr __el0_error_handler_common(struct pt_regs *regs)
 {
 	unsigned long esr = read_sysreg(esr_el1);
+	arm64_irqentry_state_t state;
 
 	enter_from_user_mode(regs);
 	local_daif_restore(DAIF_ERRCTX);
-	arm64_enter_nmi(regs);
+	state = arm64_enter_nmi(regs);
 	do_serror(regs, esr);
-	arm64_exit_nmi(regs);
+	arm64_exit_nmi(regs, state);
 	local_daif_restore(DAIF_PROCCTX);
 	exit_to_user_mode(regs);
 }
@@ -1122,6 +1170,7 @@ asmlinkage void noinstr __noreturn handle_bad_stack(struct pt_regs *regs)
 asmlinkage noinstr unsigned long
 __sdei_handler(struct pt_regs *regs, struct sdei_registered_event *arg)
 {
+	arm64_irqentry_state_t state;
 	unsigned long ret;
 
 	/*
@@ -1146,9 +1195,9 @@ __sdei_handler(struct pt_regs *regs, struct sdei_registered_event *arg)
 	else if (cpu_has_pan())
 		set_pstate_pan(0);
 
-	arm64_enter_nmi(regs);
+	state = arm64_enter_nmi(regs);
 	ret = do_sdei_event(regs, arg);
-	arm64_exit_nmi(regs);
+	arm64_exit_nmi(regs, state);
 
 	return ret;
 }
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 03:07:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 03:07:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082692.1442476 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umkmW-0005rK-80; Fri, 15 Aug 2025 03:07:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082692.1442476; Fri, 15 Aug 2025 03: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 1umkmW-0005pL-0Y; Fri, 15 Aug 2025 03:07:04 +0000
Received: by outflank-mailman (input) for mailman id 1082692;
 Fri, 15 Aug 2025 03:07:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vxBA=23=huawei.com=ruanjinjie@srs-se1.protection.inumbo.net>)
 id 1umkmU-00052A-BW
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 03:07:02 +0000
Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e4a639ec-7984-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 05:06:55 +0200 (CEST)
Received: from mail.maildlp.com (unknown [172.19.88.194])
 by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4c36TQ3hG2zvX5h;
 Fri, 15 Aug 2025 11:06:50 +0800 (CST)
Received: from dggpemf500011.china.huawei.com (unknown [7.185.36.131])
 by mail.maildlp.com (Postfix) with ESMTPS id EA1BB1402D0;
 Fri, 15 Aug 2025 11:06:51 +0800 (CST)
Received: from huawei.com (10.90.53.73) by dggpemf500011.china.huawei.com
 (7.185.36.131) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.11; Fri, 15 Aug
 2025 11:06:50 +0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e4a639ec-7984-11f0-b898-0df219b8e170
From: Jinjie Ruan <ruanjinjie@huawei.com>
To: <catalin.marinas@arm.com>, <will@kernel.org>, <oleg@redhat.com>,
	<sstabellini@kernel.org>, <mark.rutland@arm.com>, <ada.coupriediaz@arm.com>,
	<mbenes@suse.cz>, <broonie@kernel.org>, <anshuman.khandual@arm.com>,
	<ryan.roberts@arm.com>, <chenl311@chinatelecom.cn>, <liaochang1@huawei.com>,
	<kristina.martsenko@arm.com>, <leitao@debian.org>, <ardb@kernel.org>,
	<linux-arm-kernel@lists.infradead.org>, <linux-kernel@vger.kernel.org>,
	<xen-devel@lists.xenproject.org>
CC: <ruanjinjie@huawei.com>
Subject: [PATCH v8 7/8] arm64: entry: Move arm64_preempt_schedule_irq() into __exit_to_kernel_mode()
Date: Fri, 15 Aug 2025 11:06:32 +0800
Message-ID: <20250815030633.448613-8-ruanjinjie@huawei.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250815030633.448613-1-ruanjinjie@huawei.com>
References: <20250815030633.448613-1-ruanjinjie@huawei.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.90.53.73]
X-ClientProxiedBy: kwepems500002.china.huawei.com (7.221.188.17) To
 dggpemf500011.china.huawei.com (7.185.36.131)

The arm64 entry code only preempts a kernel context upon a return from
a regular IRQ exception. The generic entry code may preempt a kernel
context for any exception return where irqentry_exit() is used, and so
may preempt other exceptions such as faults.

In preparation for moving arm64 over to the generic entry code, align
arm64 with the generic behaviour by calling
arm64_preempt_schedule_irq() from exit_to_kernel_mode(). To make this
possible, arm64_preempt_schedule_irq()
and dynamic/raw_irqentry_exit_cond_resched() are moved earlier in
the file, with no changes.

As Mark pointed out, this change will have the following 2 key impact:

- " We'll preempt even without taking a "real" interrupt. That
    shouldn't result in preemption that wasn't possible before,
    but it does change the probability of preempting at certain points,
    and might have a performance impact, so probably warrants a
    benchmark."

- " We will not preempt when taking interrupts from a region of kernel
    code where IRQs are enabled but RCU is not watching, matching the
    behaviour of the generic entry code.

    This has the potential to introduce livelock if we can ever have a
    screaming interrupt in such a region, so we'll need to go figure out
    whether that's actually a problem.

    Having this as a separate patch will make it easier to test/bisect
    for that specifically."

Reviewed-by: Ada Couprie Diaz <ada.coupriediaz@arm.com>
Suggested-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
---
 arch/arm64/kernel/entry-common.c | 96 ++++++++++++++++----------------
 1 file changed, 48 insertions(+), 48 deletions(-)

diff --git a/arch/arm64/kernel/entry-common.c b/arch/arm64/kernel/entry-common.c
index 64066c643f97..f52067d17baf 100644
--- a/arch/arm64/kernel/entry-common.c
+++ b/arch/arm64/kernel/entry-common.c
@@ -77,6 +77,51 @@ static noinstr arm64_irqentry_state_t enter_from_kernel_mode(struct pt_regs *reg
 	return state;
 }
 
+static inline bool arm64_preempt_schedule_irq(void)
+{
+	/*
+	 * DAIF.DA are cleared at the start of IRQ/FIQ handling, and when GIC
+	 * priority masking is used the GIC irqchip driver will clear DAIF.IF
+	 * using gic_arch_enable_irqs() for normal IRQs. If anything is set in
+	 * DAIF we must have handled an NMI, so skip preemption.
+	 */
+	if (system_uses_irq_prio_masking() && read_sysreg(daif))
+		return false;
+
+	/*
+	 * Preempting a task from an IRQ means we leave copies of PSTATE
+	 * on the stack. cpufeature's enable calls may modify PSTATE, but
+	 * resuming one of these preempted tasks would undo those changes.
+	 *
+	 * Only allow a task to be preempted once cpufeatures have been
+	 * enabled.
+	 */
+	if (!system_capabilities_finalized())
+		return false;
+
+	return true;
+}
+
+#ifdef CONFIG_PREEMPTION
+void raw_irqentry_exit_cond_resched(void)
+{
+	if (!preempt_count()) {
+		if (need_resched() && arm64_preempt_schedule_irq())
+			preempt_schedule_irq();
+	}
+}
+#endif
+
+#ifdef CONFIG_PREEMPT_DYNAMIC
+DEFINE_STATIC_KEY_TRUE(sk_dynamic_irqentry_exit_cond_resched);
+void dynamic_irqentry_exit_cond_resched(void)
+{
+	if (!static_branch_unlikely(&sk_dynamic_irqentry_exit_cond_resched))
+		return;
+	raw_irqentry_exit_cond_resched();
+}
+#endif
+
 /*
  * Handle IRQ/context state management when exiting to kernel mode.
  * After this function returns it is not safe to call regular kernel code,
@@ -99,6 +144,9 @@ static __always_inline void __exit_to_kernel_mode(struct pt_regs *regs,
 			return;
 		}
 
+		if (IS_ENABLED(CONFIG_PREEMPTION))
+			irqentry_exit_cond_resched();
+
 		trace_hardirqs_on();
 	} else {
 		if (state.exit_rcu)
@@ -286,31 +334,6 @@ static void noinstr arm64_exit_el1_dbg(struct pt_regs *regs,
 		lockdep_hardirqs_on(CALLER_ADDR0);
 }
 
-static inline bool arm64_preempt_schedule_irq(void)
-{
-	/*
-	 * DAIF.DA are cleared at the start of IRQ/FIQ handling, and when GIC
-	 * priority masking is used the GIC irqchip driver will clear DAIF.IF
-	 * using gic_arch_enable_irqs() for normal IRQs. If anything is set in
-	 * DAIF we must have handled an NMI, so skip preemption.
-	 */
-	if (system_uses_irq_prio_masking() && read_sysreg(daif))
-		return false;
-
-	/*
-	 * Preempting a task from an IRQ means we leave copies of PSTATE
-	 * on the stack. cpufeature's enable calls may modify PSTATE, but
-	 * resuming one of these preempted tasks would undo those changes.
-	 *
-	 * Only allow a task to be preempted once cpufeatures have been
-	 * enabled.
-	 */
-	if (!system_capabilities_finalized())
-		return false;
-
-	return true;
-}
-
 static void do_interrupt_handler(struct pt_regs *regs,
 				 void (*handler)(struct pt_regs *))
 {
@@ -671,26 +694,6 @@ static __always_inline void __el1_pnmi(struct pt_regs *regs,
 	arm64_exit_nmi(regs, state);
 }
 
-#ifdef CONFIG_PREEMPTION
-void raw_irqentry_exit_cond_resched(void)
-{
-	if (!preempt_count()) {
-		if (need_resched() && arm64_preempt_schedule_irq())
-			preempt_schedule_irq();
-	}
-}
-#endif
-
-#ifdef CONFIG_PREEMPT_DYNAMIC
-DEFINE_STATIC_KEY_TRUE(sk_dynamic_irqentry_exit_cond_resched);
-void dynamic_irqentry_exit_cond_resched(void)
-{
-	if (!static_branch_unlikely(&sk_dynamic_irqentry_exit_cond_resched))
-		return;
-	raw_irqentry_exit_cond_resched();
-}
-#endif
-
 static __always_inline void __el1_irq(struct pt_regs *regs,
 				      void (*handler)(struct pt_regs *))
 {
@@ -702,9 +705,6 @@ static __always_inline void __el1_irq(struct pt_regs *regs,
 	do_interrupt_handler(regs, handler);
 	irq_exit_rcu();
 
-	if (IS_ENABLED(CONFIG_PREEMPTION))
-		irqentry_exit_cond_resched();
-
 	exit_to_kernel_mode(regs, state);
 }
 static void noinstr el1_interrupt(struct pt_regs *regs,
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 03:07:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 03:07:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082691.1442465 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umkmV-0005hi-M6; Fri, 15 Aug 2025 03:07:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082691.1442465; Fri, 15 Aug 2025 03: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 1umkmV-0005f0-Bs; Fri, 15 Aug 2025 03:07:03 +0000
Received: by outflank-mailman (input) for mailman id 1082691;
 Fri, 15 Aug 2025 03:07:02 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vxBA=23=huawei.com=ruanjinjie@srs-se1.protection.inumbo.net>)
 id 1umkmU-00052B-2M
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 03:07:02 +0000
Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e3ef2371-7984-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 05:06:55 +0200 (CEST)
Received: from mail.maildlp.com (unknown [172.19.88.105])
 by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4c36PS28Zgz13Lg7;
 Fri, 15 Aug 2025 11:03:24 +0800 (CST)
Received: from dggpemf500011.china.huawei.com (unknown [7.185.36.131])
 by mail.maildlp.com (Postfix) with ESMTPS id BE7D8140258;
 Fri, 15 Aug 2025 11:06:50 +0800 (CST)
Received: from huawei.com (10.90.53.73) by dggpemf500011.china.huawei.com
 (7.185.36.131) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.11; Fri, 15 Aug
 2025 11:06:49 +0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e3ef2371-7984-11f0-a328-13f23c93f187
From: Jinjie Ruan <ruanjinjie@huawei.com>
To: <catalin.marinas@arm.com>, <will@kernel.org>, <oleg@redhat.com>,
	<sstabellini@kernel.org>, <mark.rutland@arm.com>, <ada.coupriediaz@arm.com>,
	<mbenes@suse.cz>, <broonie@kernel.org>, <anshuman.khandual@arm.com>,
	<ryan.roberts@arm.com>, <chenl311@chinatelecom.cn>, <liaochang1@huawei.com>,
	<kristina.martsenko@arm.com>, <leitao@debian.org>, <ardb@kernel.org>,
	<linux-arm-kernel@lists.infradead.org>, <linux-kernel@vger.kernel.org>,
	<xen-devel@lists.xenproject.org>
CC: <ruanjinjie@huawei.com>
Subject: [PATCH v8 6/8] arm64: entry: Refactor preempt_schedule_irq() check code
Date: Fri, 15 Aug 2025 11:06:31 +0800
Message-ID: <20250815030633.448613-7-ruanjinjie@huawei.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250815030633.448613-1-ruanjinjie@huawei.com>
References: <20250815030633.448613-1-ruanjinjie@huawei.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.90.53.73]
X-ClientProxiedBy: kwepems500002.china.huawei.com (7.221.188.17) To
 dggpemf500011.china.huawei.com (7.185.36.131)

To align the structure of the code with irqentry_exit_cond_resched()
from the generic entry code, hoist the need_irq_preemption()
and IS_ENABLED() check earlier. And different preemption check functions
are defined based on whether dynamic preemption is enabled.

Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
---
 arch/arm64/include/asm/preempt.h |  6 ++++++
 arch/arm64/kernel/entry-common.c | 37 +++++++++++++++++++-------------
 2 files changed, 28 insertions(+), 15 deletions(-)

diff --git a/arch/arm64/include/asm/preempt.h b/arch/arm64/include/asm/preempt.h
index 0159b625cc7f..c2437ea0790f 100644
--- a/arch/arm64/include/asm/preempt.h
+++ b/arch/arm64/include/asm/preempt.h
@@ -85,6 +85,7 @@ static inline bool should_resched(int preempt_offset)
 void preempt_schedule(void);
 void preempt_schedule_notrace(void);
 
+void raw_irqentry_exit_cond_resched(void);
 #ifdef CONFIG_PREEMPT_DYNAMIC
 
 DECLARE_STATIC_KEY_TRUE(sk_dynamic_irqentry_exit_cond_resched);
@@ -92,13 +93,18 @@ void dynamic_preempt_schedule(void);
 #define __preempt_schedule()		dynamic_preempt_schedule()
 void dynamic_preempt_schedule_notrace(void);
 #define __preempt_schedule_notrace()	dynamic_preempt_schedule_notrace()
+void dynamic_irqentry_exit_cond_resched(void);
+#define irqentry_exit_cond_resched()	dynamic_irqentry_exit_cond_resched()
 
 #else /* CONFIG_PREEMPT_DYNAMIC */
 
 #define __preempt_schedule()		preempt_schedule()
 #define __preempt_schedule_notrace()	preempt_schedule_notrace()
+#define irqentry_exit_cond_resched()	raw_irqentry_exit_cond_resched()
 
 #endif /* CONFIG_PREEMPT_DYNAMIC */
+#else /* CONFIG_PREEMPTION */
+#define irqentry_exit_cond_resched()	{}
 #endif /* CONFIG_PREEMPTION */
 
 #endif /* __ASM_PREEMPT_H */
diff --git a/arch/arm64/kernel/entry-common.c b/arch/arm64/kernel/entry-common.c
index 1ba1d40fa6a7..64066c643f97 100644
--- a/arch/arm64/kernel/entry-common.c
+++ b/arch/arm64/kernel/entry-common.c
@@ -286,19 +286,8 @@ static void noinstr arm64_exit_el1_dbg(struct pt_regs *regs,
 		lockdep_hardirqs_on(CALLER_ADDR0);
 }
 
-#ifdef CONFIG_PREEMPT_DYNAMIC
-DEFINE_STATIC_KEY_TRUE(sk_dynamic_irqentry_exit_cond_resched);
-#define need_irq_preemption() \
-	(static_branch_unlikely(&sk_dynamic_irqentry_exit_cond_resched))
-#else
-#define need_irq_preemption()	(IS_ENABLED(CONFIG_PREEMPTION))
-#endif
-
 static inline bool arm64_preempt_schedule_irq(void)
 {
-	if (!need_irq_preemption())
-		return false;
-
 	/*
 	 * DAIF.DA are cleared at the start of IRQ/FIQ handling, and when GIC
 	 * priority masking is used the GIC irqchip driver will clear DAIF.IF
@@ -682,6 +671,26 @@ static __always_inline void __el1_pnmi(struct pt_regs *regs,
 	arm64_exit_nmi(regs, state);
 }
 
+#ifdef CONFIG_PREEMPTION
+void raw_irqentry_exit_cond_resched(void)
+{
+	if (!preempt_count()) {
+		if (need_resched() && arm64_preempt_schedule_irq())
+			preempt_schedule_irq();
+	}
+}
+#endif
+
+#ifdef CONFIG_PREEMPT_DYNAMIC
+DEFINE_STATIC_KEY_TRUE(sk_dynamic_irqentry_exit_cond_resched);
+void dynamic_irqentry_exit_cond_resched(void)
+{
+	if (!static_branch_unlikely(&sk_dynamic_irqentry_exit_cond_resched))
+		return;
+	raw_irqentry_exit_cond_resched();
+}
+#endif
+
 static __always_inline void __el1_irq(struct pt_regs *regs,
 				      void (*handler)(struct pt_regs *))
 {
@@ -693,10 +702,8 @@ static __always_inline void __el1_irq(struct pt_regs *regs,
 	do_interrupt_handler(regs, handler);
 	irq_exit_rcu();
 
-	if (!preempt_count() && need_resched()) {
-		if (arm64_preempt_schedule_irq())
-			preempt_schedule_irq();
-	}
+	if (IS_ENABLED(CONFIG_PREEMPTION))
+		irqentry_exit_cond_resched();
 
 	exit_to_kernel_mode(regs, state);
 }
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 03:07:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 03:07:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082685.1442427 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umkmT-00052t-Jp; Fri, 15 Aug 2025 03:07:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082685.1442427; Fri, 15 Aug 2025 03:07: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 1umkmT-00052b-DF; Fri, 15 Aug 2025 03:07:01 +0000
Received: by outflank-mailman (input) for mailman id 1082685;
 Fri, 15 Aug 2025 03:06:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vxBA=23=huawei.com=ruanjinjie@srs-se1.protection.inumbo.net>)
 id 1umkmR-00052A-Md
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 03:06:59 +0000
Received: from szxga05-in.huawei.com (szxga05-in.huawei.com [45.249.212.191])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e287b778-7984-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 05:06:56 +0200 (CEST)
Received: from mail.maildlp.com (unknown [172.19.162.112])
 by szxga05-in.huawei.com (SkyGuard) with ESMTP id 4c36QG3WRSz2Dc0p;
 Fri, 15 Aug 2025 11:04:06 +0800 (CST)
Received: from dggpemf500011.china.huawei.com (unknown [7.185.36.131])
 by mail.maildlp.com (Postfix) with ESMTPS id 6B7EE14011F;
 Fri, 15 Aug 2025 11:06:48 +0800 (CST)
Received: from huawei.com (10.90.53.73) by dggpemf500011.china.huawei.com
 (7.185.36.131) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.11; Fri, 15 Aug
 2025 11:06:47 +0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e287b778-7984-11f0-b898-0df219b8e170
From: Jinjie Ruan <ruanjinjie@huawei.com>
To: <catalin.marinas@arm.com>, <will@kernel.org>, <oleg@redhat.com>,
	<sstabellini@kernel.org>, <mark.rutland@arm.com>, <ada.coupriediaz@arm.com>,
	<mbenes@suse.cz>, <broonie@kernel.org>, <anshuman.khandual@arm.com>,
	<ryan.roberts@arm.com>, <chenl311@chinatelecom.cn>, <liaochang1@huawei.com>,
	<kristina.martsenko@arm.com>, <leitao@debian.org>, <ardb@kernel.org>,
	<linux-arm-kernel@lists.infradead.org>, <linux-kernel@vger.kernel.org>,
	<xen-devel@lists.xenproject.org>
CC: <ruanjinjie@huawei.com>
Subject: [PATCH v8 4/8] arm64: entry: Use preempt_count() and need_resched() helper
Date: Fri, 15 Aug 2025 11:06:29 +0800
Message-ID: <20250815030633.448613-5-ruanjinjie@huawei.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250815030633.448613-1-ruanjinjie@huawei.com>
References: <20250815030633.448613-1-ruanjinjie@huawei.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.90.53.73]
X-ClientProxiedBy: kwepems500002.china.huawei.com (7.221.188.17) To
 dggpemf500011.china.huawei.com (7.185.36.131)

The generic entry code uses preempt_count() and need_resched() helpers to
check if it should do preempt_schedule_irq(). Currently, arm64 use its own
check logic, that is "READ_ONCE(current_thread_info()->preempt_count == 0",
which is equivalent to "preempt_count() == 0 && need_resched()".

In preparation for moving arm64 over to the generic entry code, use
these helpers to replace arm64's own code and move it ahead.

No functional changes.

Reviewed-by: Ada Couprie Diaz <ada.coupriediaz@arm.com>
Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
---
 arch/arm64/kernel/entry-common.c | 14 ++++----------
 1 file changed, 4 insertions(+), 10 deletions(-)

diff --git a/arch/arm64/kernel/entry-common.c b/arch/arm64/kernel/entry-common.c
index dd7903f371ad..1ba1d40fa6a7 100644
--- a/arch/arm64/kernel/entry-common.c
+++ b/arch/arm64/kernel/entry-common.c
@@ -299,14 +299,6 @@ static inline bool arm64_preempt_schedule_irq(void)
 	if (!need_irq_preemption())
 		return false;
 
-	/*
-	 * Note: thread_info::preempt_count includes both thread_info::count
-	 * and thread_info::need_resched, and is not equivalent to
-	 * preempt_count().
-	 */
-	if (READ_ONCE(current_thread_info()->preempt_count) != 0)
-		return false;
-
 	/*
 	 * DAIF.DA are cleared at the start of IRQ/FIQ handling, and when GIC
 	 * priority masking is used the GIC irqchip driver will clear DAIF.IF
@@ -701,8 +693,10 @@ static __always_inline void __el1_irq(struct pt_regs *regs,
 	do_interrupt_handler(regs, handler);
 	irq_exit_rcu();
 
-	if (arm64_preempt_schedule_irq())
-		preempt_schedule_irq();
+	if (!preempt_count() && need_resched()) {
+		if (arm64_preempt_schedule_irq())
+			preempt_schedule_irq();
+	}
 
 	exit_to_kernel_mode(regs, state);
 }
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 03:07:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 03:07:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082688.1442444 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umkmU-0005CB-F1; Fri, 15 Aug 2025 03:07:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082688.1442444; Fri, 15 Aug 2025 03:07: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 1umkmU-00059Q-5A; Fri, 15 Aug 2025 03:07:02 +0000
Received: by outflank-mailman (input) for mailman id 1082688;
 Fri, 15 Aug 2025 03:07:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vxBA=23=huawei.com=ruanjinjie@srs-se1.protection.inumbo.net>)
 id 1umkmS-00052A-B9
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 03:07:00 +0000
Received: from szxga06-in.huawei.com (szxga06-in.huawei.com [45.249.212.32])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e14b0b92-7984-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 05:06:52 +0200 (CEST)
Received: from mail.maildlp.com (unknown [172.19.88.163])
 by szxga06-in.huawei.com (SkyGuard) with ESMTP id 4c36VY1xNyz2dMNB;
 Fri, 15 Aug 2025 11:07:49 +0800 (CST)
Received: from dggpemf500011.china.huawei.com (unknown [7.185.36.131])
 by mail.maildlp.com (Postfix) with ESMTPS id DD9C81800B2;
 Fri, 15 Aug 2025 11:06:44 +0800 (CST)
Received: from huawei.com (10.90.53.73) by dggpemf500011.china.huawei.com
 (7.185.36.131) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.11; Fri, 15 Aug
 2025 11:06:43 +0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e14b0b92-7984-11f0-b898-0df219b8e170
From: Jinjie Ruan <ruanjinjie@huawei.com>
To: <catalin.marinas@arm.com>, <will@kernel.org>, <oleg@redhat.com>,
	<sstabellini@kernel.org>, <mark.rutland@arm.com>, <ada.coupriediaz@arm.com>,
	<mbenes@suse.cz>, <broonie@kernel.org>, <anshuman.khandual@arm.com>,
	<ryan.roberts@arm.com>, <chenl311@chinatelecom.cn>, <liaochang1@huawei.com>,
	<kristina.martsenko@arm.com>, <leitao@debian.org>, <ardb@kernel.org>,
	<linux-arm-kernel@lists.infradead.org>, <linux-kernel@vger.kernel.org>,
	<xen-devel@lists.xenproject.org>
CC: <ruanjinjie@huawei.com>
Subject: [PATCH v8 1/8] arm64: ptrace: Replace interrupts_enabled() with regs_irqs_disabled()
Date: Fri, 15 Aug 2025 11:06:26 +0800
Message-ID: <20250815030633.448613-2-ruanjinjie@huawei.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250815030633.448613-1-ruanjinjie@huawei.com>
References: <20250815030633.448613-1-ruanjinjie@huawei.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.90.53.73]
X-ClientProxiedBy: kwepems500002.china.huawei.com (7.221.188.17) To
 dggpemf500011.china.huawei.com (7.185.36.131)

The generic entry code expects architecture code to provide
regs_irqs_disabled(regs) function, but arm64 does not have this and
provides interrupts_enabled(regs), which has the opposite polarity.

In preparation for moving arm64 over to the generic entry code,
relace arm64's interrupts_enabled() with regs_irqs_disabled() and
update its callers under arch/arm64.

For the moment, a definition of interrupts_enabled() is provided for
the GICv3 driver. Once arch/arm implement regs_irqs_disabled(), this
can be removed.

Delete the fast_interrupts_enabled() macro as it is unused and we
don't want any new users to show up.

No functional changes.

Reviewed-by: Ada Couprie Diaz <ada.coupriediaz@arm.com>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Suggested-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
---
 arch/arm64/include/asm/daifflags.h  | 2 +-
 arch/arm64/include/asm/ptrace.h     | 9 +++++----
 arch/arm64/include/asm/xen/events.h | 2 +-
 arch/arm64/kernel/acpi.c            | 2 +-
 arch/arm64/kernel/debug-monitors.c  | 2 +-
 arch/arm64/kernel/entry-common.c    | 4 ++--
 arch/arm64/kernel/sdei.c            | 2 +-
 7 files changed, 12 insertions(+), 11 deletions(-)

diff --git a/arch/arm64/include/asm/daifflags.h b/arch/arm64/include/asm/daifflags.h
index fbb5c99eb2f9..5fca48009043 100644
--- a/arch/arm64/include/asm/daifflags.h
+++ b/arch/arm64/include/asm/daifflags.h
@@ -128,7 +128,7 @@ static inline void local_daif_inherit(struct pt_regs *regs)
 {
 	unsigned long flags = regs->pstate & DAIF_MASK;
 
-	if (interrupts_enabled(regs))
+	if (!regs_irqs_disabled(regs))
 		trace_hardirqs_on();
 
 	if (system_uses_irq_prio_masking())
diff --git a/arch/arm64/include/asm/ptrace.h b/arch/arm64/include/asm/ptrace.h
index 47ff8654c5ec..8b915d4a9d4b 100644
--- a/arch/arm64/include/asm/ptrace.h
+++ b/arch/arm64/include/asm/ptrace.h
@@ -214,11 +214,12 @@ static inline void forget_syscall(struct pt_regs *regs)
 		(regs)->pmr == GIC_PRIO_IRQON :				\
 		true)
 
-#define interrupts_enabled(regs)			\
-	(!((regs)->pstate & PSR_I_BIT) && irqs_priority_unmasked(regs))
+static __always_inline bool regs_irqs_disabled(const struct pt_regs *regs)
+{
+	return (regs->pstate & PSR_I_BIT) || !irqs_priority_unmasked(regs);
+}
 
-#define fast_interrupts_enabled(regs) \
-	(!((regs)->pstate & PSR_F_BIT))
+#define interrupts_enabled(regs)	(!regs_irqs_disabled(regs))
 
 static inline unsigned long user_stack_pointer(struct pt_regs *regs)
 {
diff --git a/arch/arm64/include/asm/xen/events.h b/arch/arm64/include/asm/xen/events.h
index 2788e95d0ff0..2977b5fe068d 100644
--- a/arch/arm64/include/asm/xen/events.h
+++ b/arch/arm64/include/asm/xen/events.h
@@ -14,7 +14,7 @@ enum ipi_vector {
 
 static inline int xen_irqs_disabled(struct pt_regs *regs)
 {
-	return !interrupts_enabled(regs);
+	return regs_irqs_disabled(regs);
 }
 
 #define xchg_xen_ulong(ptr, val) xchg((ptr), (val))
diff --git a/arch/arm64/kernel/acpi.c b/arch/arm64/kernel/acpi.c
index 4d529ff7ba51..3fbce0a9a0fe 100644
--- a/arch/arm64/kernel/acpi.c
+++ b/arch/arm64/kernel/acpi.c
@@ -407,7 +407,7 @@ int apei_claim_sea(struct pt_regs *regs)
 	return_to_irqs_enabled = !irqs_disabled_flags(arch_local_save_flags());
 
 	if (regs)
-		return_to_irqs_enabled = interrupts_enabled(regs);
+		return_to_irqs_enabled = !regs_irqs_disabled(regs);
 
 	/*
 	 * SEA can interrupt SError, mask it and describe this as an NMI so
diff --git a/arch/arm64/kernel/debug-monitors.c b/arch/arm64/kernel/debug-monitors.c
index 110d9ff54174..85fc162a6f9b 100644
--- a/arch/arm64/kernel/debug-monitors.c
+++ b/arch/arm64/kernel/debug-monitors.c
@@ -167,7 +167,7 @@ static void send_user_sigtrap(int si_code)
 	if (WARN_ON(!user_mode(regs)))
 		return;
 
-	if (interrupts_enabled(regs))
+	if (!regs_irqs_disabled(regs))
 		local_irq_enable();
 
 	arm64_force_sig_fault(SIGTRAP, si_code, instruction_pointer(regs),
diff --git a/arch/arm64/kernel/entry-common.c b/arch/arm64/kernel/entry-common.c
index 2b0c5925502e..8e798f46ad28 100644
--- a/arch/arm64/kernel/entry-common.c
+++ b/arch/arm64/kernel/entry-common.c
@@ -74,7 +74,7 @@ static __always_inline void __exit_to_kernel_mode(struct pt_regs *regs)
 {
 	lockdep_assert_irqs_disabled();
 
-	if (interrupts_enabled(regs)) {
+	if (!regs_irqs_disabled(regs)) {
 		if (regs->exit_rcu) {
 			trace_hardirqs_on_prepare();
 			lockdep_hardirqs_on_prepare();
@@ -662,7 +662,7 @@ static void noinstr el1_interrupt(struct pt_regs *regs,
 {
 	write_sysreg(DAIF_PROCCTX_NOIRQ, daif);
 
-	if (IS_ENABLED(CONFIG_ARM64_PSEUDO_NMI) && !interrupts_enabled(regs))
+	if (IS_ENABLED(CONFIG_ARM64_PSEUDO_NMI) && regs_irqs_disabled(regs))
 		__el1_pnmi(regs, handler);
 	else
 		__el1_irq(regs, handler);
diff --git a/arch/arm64/kernel/sdei.c b/arch/arm64/kernel/sdei.c
index 6f24a0251e18..95169f7b6531 100644
--- a/arch/arm64/kernel/sdei.c
+++ b/arch/arm64/kernel/sdei.c
@@ -243,7 +243,7 @@ unsigned long __kprobes do_sdei_event(struct pt_regs *regs,
 	 * If we interrupted the kernel with interrupts masked, we always go
 	 * back to wherever we came from.
 	 */
-	if (mode == kernel_mode && !interrupts_enabled(regs))
+	if (mode == kernel_mode && regs_irqs_disabled(regs))
 		return SDEI_EV_HANDLED;
 
 	/*
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 03:07:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 03:07:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082689.1442452 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umkmU-0005Ps-TQ; Fri, 15 Aug 2025 03:07:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082689.1442452; Fri, 15 Aug 2025 03:07: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 1umkmU-0005NV-Lu; Fri, 15 Aug 2025 03:07:02 +0000
Received: by outflank-mailman (input) for mailman id 1082689;
 Fri, 15 Aug 2025 03:07:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vxBA=23=huawei.com=ruanjinjie@srs-se1.protection.inumbo.net>)
 id 1umkmS-00052B-H4
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 03:07:00 +0000
Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e4c0f348-7984-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 05:06:54 +0200 (CEST)
Received: from mail.maildlp.com (unknown [172.19.88.194])
 by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4c36TM0qYmzvX7B;
 Fri, 15 Aug 2025 11:06:47 +0800 (CST)
Received: from dggpemf500011.china.huawei.com (unknown [7.185.36.131])
 by mail.maildlp.com (Postfix) with ESMTPS id 403C41402D0;
 Fri, 15 Aug 2025 11:06:47 +0800 (CST)
Received: from huawei.com (10.90.53.73) by dggpemf500011.china.huawei.com
 (7.185.36.131) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.11; Fri, 15 Aug
 2025 11:06:46 +0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e4c0f348-7984-11f0-a328-13f23c93f187
From: Jinjie Ruan <ruanjinjie@huawei.com>
To: <catalin.marinas@arm.com>, <will@kernel.org>, <oleg@redhat.com>,
	<sstabellini@kernel.org>, <mark.rutland@arm.com>, <ada.coupriediaz@arm.com>,
	<mbenes@suse.cz>, <broonie@kernel.org>, <anshuman.khandual@arm.com>,
	<ryan.roberts@arm.com>, <chenl311@chinatelecom.cn>, <liaochang1@huawei.com>,
	<kristina.martsenko@arm.com>, <leitao@debian.org>, <ardb@kernel.org>,
	<linux-arm-kernel@lists.infradead.org>, <linux-kernel@vger.kernel.org>,
	<xen-devel@lists.xenproject.org>
CC: <ruanjinjie@huawei.com>
Subject: [PATCH v8 3/8] arm64: entry: Rework arm64_preempt_schedule_irq()
Date: Fri, 15 Aug 2025 11:06:28 +0800
Message-ID: <20250815030633.448613-4-ruanjinjie@huawei.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250815030633.448613-1-ruanjinjie@huawei.com>
References: <20250815030633.448613-1-ruanjinjie@huawei.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.90.53.73]
X-ClientProxiedBy: kwepems500002.china.huawei.com (7.221.188.17) To
 dggpemf500011.china.huawei.com (7.185.36.131)

The generic entry code has the form:

| raw_irqentry_exit_cond_resched()
| {
| 	if (!preempt_count()) {
| 		...
| 		if (need_resched())
| 			preempt_schedule_irq();
| 	}
| }

In preparation for moving arm64 over to the generic entry code, align
the structure of the arm64 code with raw_irqentry_exit_cond_resched() from
the generic entry code.

Reviewed-by: Ada Couprie Diaz <ada.coupriediaz@arm.com>
Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
---
 arch/arm64/kernel/entry-common.c | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/arch/arm64/kernel/entry-common.c b/arch/arm64/kernel/entry-common.c
index 93c95fc51cc0..dd7903f371ad 100644
--- a/arch/arm64/kernel/entry-common.c
+++ b/arch/arm64/kernel/entry-common.c
@@ -294,10 +294,10 @@ DEFINE_STATIC_KEY_TRUE(sk_dynamic_irqentry_exit_cond_resched);
 #define need_irq_preemption()	(IS_ENABLED(CONFIG_PREEMPTION))
 #endif
 
-static void __sched arm64_preempt_schedule_irq(void)
+static inline bool arm64_preempt_schedule_irq(void)
 {
 	if (!need_irq_preemption())
-		return;
+		return false;
 
 	/*
 	 * Note: thread_info::preempt_count includes both thread_info::count
@@ -305,7 +305,7 @@ static void __sched arm64_preempt_schedule_irq(void)
 	 * preempt_count().
 	 */
 	if (READ_ONCE(current_thread_info()->preempt_count) != 0)
-		return;
+		return false;
 
 	/*
 	 * DAIF.DA are cleared at the start of IRQ/FIQ handling, and when GIC
@@ -314,7 +314,7 @@ static void __sched arm64_preempt_schedule_irq(void)
 	 * DAIF we must have handled an NMI, so skip preemption.
 	 */
 	if (system_uses_irq_prio_masking() && read_sysreg(daif))
-		return;
+		return false;
 
 	/*
 	 * Preempting a task from an IRQ means we leave copies of PSTATE
@@ -324,8 +324,10 @@ static void __sched arm64_preempt_schedule_irq(void)
 	 * Only allow a task to be preempted once cpufeatures have been
 	 * enabled.
 	 */
-	if (system_capabilities_finalized())
-		preempt_schedule_irq();
+	if (!system_capabilities_finalized())
+		return false;
+
+	return true;
 }
 
 static void do_interrupt_handler(struct pt_regs *regs,
@@ -699,7 +701,8 @@ static __always_inline void __el1_irq(struct pt_regs *regs,
 	do_interrupt_handler(regs, handler);
 	irq_exit_rcu();
 
-	arm64_preempt_schedule_irq();
+	if (arm64_preempt_schedule_irq())
+		preempt_schedule_irq();
 
 	exit_to_kernel_mode(regs, state);
 }
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 03:07:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 03:07:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082690.1442458 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umkmV-0005Xo-75; Fri, 15 Aug 2025 03:07:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082690.1442458; Fri, 15 Aug 2025 03: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 1umkmV-0005VT-0a; Fri, 15 Aug 2025 03:07:03 +0000
Received: by outflank-mailman (input) for mailman id 1082690;
 Fri, 15 Aug 2025 03:07:01 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vxBA=23=huawei.com=ruanjinjie@srs-se1.protection.inumbo.net>)
 id 1umkmT-00052A-BB
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 03:07:01 +0000
Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e564f5f0-7984-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 05:06:56 +0200 (CEST)
Received: from mail.maildlp.com (unknown [172.19.163.174])
 by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4c36SK23xyztTHr;
 Fri, 15 Aug 2025 11:05:53 +0800 (CST)
Received: from dggpemf500011.china.huawei.com (unknown [7.185.36.131])
 by mail.maildlp.com (Postfix) with ESMTPS id 2BD491400C8;
 Fri, 15 Aug 2025 11:06:53 +0800 (CST)
Received: from huawei.com (10.90.53.73) by dggpemf500011.china.huawei.com
 (7.185.36.131) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.11; Fri, 15 Aug
 2025 11:06:51 +0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e564f5f0-7984-11f0-b898-0df219b8e170
From: Jinjie Ruan <ruanjinjie@huawei.com>
To: <catalin.marinas@arm.com>, <will@kernel.org>, <oleg@redhat.com>,
	<sstabellini@kernel.org>, <mark.rutland@arm.com>, <ada.coupriediaz@arm.com>,
	<mbenes@suse.cz>, <broonie@kernel.org>, <anshuman.khandual@arm.com>,
	<ryan.roberts@arm.com>, <chenl311@chinatelecom.cn>, <liaochang1@huawei.com>,
	<kristina.martsenko@arm.com>, <leitao@debian.org>, <ardb@kernel.org>,
	<linux-arm-kernel@lists.infradead.org>, <linux-kernel@vger.kernel.org>,
	<xen-devel@lists.xenproject.org>
CC: <ruanjinjie@huawei.com>
Subject: [PATCH v8 8/8] arm64: entry: Switch to generic IRQ entry
Date: Fri, 15 Aug 2025 11:06:33 +0800
Message-ID: <20250815030633.448613-9-ruanjinjie@huawei.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250815030633.448613-1-ruanjinjie@huawei.com>
References: <20250815030633.448613-1-ruanjinjie@huawei.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.90.53.73]
X-ClientProxiedBy: kwepems500002.china.huawei.com (7.221.188.17) To
 dggpemf500011.china.huawei.com (7.185.36.131)

Currently, x86, Riscv and Loongarch use the generic entry code, which
makes maintainer's work easier and code more elegant. Start converting
arm64 to use the generic entry infrastructure from kernel/entry/* by
switching it to generic IRQ entry, which removes 100+ lines of duplicate
code. arm64 will completely switch to generic entry in a later series.

The changes are below:
 - Remove *enter_from/exit_to_kernel_mode(), and wrap with generic
   irqentry_enter/exit() as their code and functionality are almost
   identical.

 - Define ARCH_EXIT_TO_USER_MODE_WORK and implement
   arch_exit_to_user_mode_work() to check arm64-specific thread flags
   "_TIF_MTE_ASYNC_FAULT" and "_TIF_FOREIGN_FPSTATE".
   So also remove *enter_from/exit_to_user_mode(), and wrap with
   generic enter_from/exit_to_user_mode() because they are
   exactly the same.

 - Remove arm64_enter/exit_nmi() and use generic irqentry_nmi_enter/exit()
   because they're exactly the same, so the temporary arm64 version
   irqentry_state can also be removed.

 - Remove PREEMPT_DYNAMIC code, as generic irqentry_exit_cond_resched()
   has the same functionality.

 - Implement arch_irqentry_exit_need_resched() with
   arm64_preempt_schedule_irq() for arm64 which will allow arm64 to do
   its architecture specific checks.

Tested-by: Ada Couprie Diaz <ada.coupriediaz@arm.com>
Suggested-by: Ada Couprie Diaz <ada.coupriediaz@arm.com>
Suggested-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
---
 arch/arm64/Kconfig                    |   1 +
 arch/arm64/include/asm/entry-common.h |  57 ++++
 arch/arm64/include/asm/exception.h    |   1 -
 arch/arm64/include/asm/preempt.h      |   8 -
 arch/arm64/kernel/entry-common.c      | 378 +++++++-------------------
 arch/arm64/kernel/signal.c            |   3 +-
 6 files changed, 156 insertions(+), 292 deletions(-)
 create mode 100644 arch/arm64/include/asm/entry-common.h

diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index e9bbfacc35a6..6bb60a0620ec 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -151,6 +151,7 @@ config ARM64
 	select GENERIC_EARLY_IOREMAP
 	select GENERIC_IDLE_POLL_SETUP
 	select GENERIC_IOREMAP
+	select GENERIC_IRQ_ENTRY
 	select GENERIC_IRQ_IPI
 	select GENERIC_IRQ_KEXEC_CLEAR_VM_FORWARD
 	select GENERIC_IRQ_PROBE
diff --git a/arch/arm64/include/asm/entry-common.h b/arch/arm64/include/asm/entry-common.h
new file mode 100644
index 000000000000..cab8cd78f693
--- /dev/null
+++ b/arch/arm64/include/asm/entry-common.h
@@ -0,0 +1,57 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+
+#ifndef _ASM_ARM64_ENTRY_COMMON_H
+#define _ASM_ARM64_ENTRY_COMMON_H
+
+#include <linux/thread_info.h>
+
+#include <asm/cpufeature.h>
+#include <asm/daifflags.h>
+#include <asm/fpsimd.h>
+#include <asm/mte.h>
+#include <asm/stacktrace.h>
+
+#define ARCH_EXIT_TO_USER_MODE_WORK (_TIF_MTE_ASYNC_FAULT | _TIF_FOREIGN_FPSTATE)
+
+static __always_inline void arch_exit_to_user_mode_work(struct pt_regs *regs,
+							unsigned long ti_work)
+{
+	if (ti_work & _TIF_MTE_ASYNC_FAULT) {
+		clear_thread_flag(TIF_MTE_ASYNC_FAULT);
+		send_sig_fault(SIGSEGV, SEGV_MTEAERR, (void __user *)NULL, current);
+	}
+
+	if (ti_work & _TIF_FOREIGN_FPSTATE)
+		fpsimd_restore_current_state();
+}
+
+#define arch_exit_to_user_mode_work arch_exit_to_user_mode_work
+
+static inline bool arch_irqentry_exit_need_resched(void)
+{
+	/*
+	 * DAIF.DA are cleared at the start of IRQ/FIQ handling, and when GIC
+	 * priority masking is used the GIC irqchip driver will clear DAIF.IF
+	 * using gic_arch_enable_irqs() for normal IRQs. If anything is set in
+	 * DAIF we must have handled an NMI, so skip preemption.
+	 */
+	if (system_uses_irq_prio_masking() && read_sysreg(daif))
+		return false;
+
+	/*
+	 * Preempting a task from an IRQ means we leave copies of PSTATE
+	 * on the stack. cpufeature's enable calls may modify PSTATE, but
+	 * resuming one of these preempted tasks would undo those changes.
+	 *
+	 * Only allow a task to be preempted once cpufeatures have been
+	 * enabled.
+	 */
+	if (!system_capabilities_finalized())
+		return false;
+
+	return true;
+}
+
+#define arch_irqentry_exit_need_resched arch_irqentry_exit_need_resched
+
+#endif /* _ASM_ARM64_ENTRY_COMMON_H */
diff --git a/arch/arm64/include/asm/exception.h b/arch/arm64/include/asm/exception.h
index e3874c4fc399..a2da3cb21c24 100644
--- a/arch/arm64/include/asm/exception.h
+++ b/arch/arm64/include/asm/exception.h
@@ -89,7 +89,6 @@ void do_el1_fpac(struct pt_regs *regs, unsigned long esr);
 void do_el0_mops(struct pt_regs *regs, unsigned long esr);
 void do_el1_mops(struct pt_regs *regs, unsigned long esr);
 void do_serror(struct pt_regs *regs, unsigned long esr);
-void do_signal(struct pt_regs *regs);
 
 void __noreturn panic_bad_stack(struct pt_regs *regs, unsigned long esr, unsigned long far);
 #endif	/* __ASM_EXCEPTION_H */
diff --git a/arch/arm64/include/asm/preempt.h b/arch/arm64/include/asm/preempt.h
index c2437ea0790f..932ea4b62042 100644
--- a/arch/arm64/include/asm/preempt.h
+++ b/arch/arm64/include/asm/preempt.h
@@ -2,7 +2,6 @@
 #ifndef __ASM_PREEMPT_H
 #define __ASM_PREEMPT_H
 
-#include <linux/jump_label.h>
 #include <linux/thread_info.h>
 
 #define PREEMPT_NEED_RESCHED	BIT(32)
@@ -85,26 +84,19 @@ static inline bool should_resched(int preempt_offset)
 void preempt_schedule(void);
 void preempt_schedule_notrace(void);
 
-void raw_irqentry_exit_cond_resched(void);
 #ifdef CONFIG_PREEMPT_DYNAMIC
 
-DECLARE_STATIC_KEY_TRUE(sk_dynamic_irqentry_exit_cond_resched);
 void dynamic_preempt_schedule(void);
 #define __preempt_schedule()		dynamic_preempt_schedule()
 void dynamic_preempt_schedule_notrace(void);
 #define __preempt_schedule_notrace()	dynamic_preempt_schedule_notrace()
-void dynamic_irqentry_exit_cond_resched(void);
-#define irqentry_exit_cond_resched()	dynamic_irqentry_exit_cond_resched()
 
 #else /* CONFIG_PREEMPT_DYNAMIC */
 
 #define __preempt_schedule()		preempt_schedule()
 #define __preempt_schedule_notrace()	preempt_schedule_notrace()
-#define irqentry_exit_cond_resched()	raw_irqentry_exit_cond_resched()
 
 #endif /* CONFIG_PREEMPT_DYNAMIC */
-#else /* CONFIG_PREEMPTION */
-#define irqentry_exit_cond_resched()	{}
 #endif /* CONFIG_PREEMPTION */
 
 #endif /* __ASM_PREEMPT_H */
diff --git a/arch/arm64/kernel/entry-common.c b/arch/arm64/kernel/entry-common.c
index f52067d17baf..f546a914f041 100644
--- a/arch/arm64/kernel/entry-common.c
+++ b/arch/arm64/kernel/entry-common.c
@@ -6,6 +6,7 @@
  */
 
 #include <linux/context_tracking.h>
+#include <linux/irq-entry-common.h>
 #include <linux/kasan.h>
 #include <linux/linkage.h>
 #include <linux/livepatch.h>
@@ -29,13 +30,6 @@
 #include <asm/sysreg.h>
 #include <asm/system_misc.h>
 
-typedef struct irqentry_state {
-	union {
-		bool	exit_rcu;
-		bool	lockdep;
-	};
-} arm64_irqentry_state_t;
-
 /*
  * Handle IRQ/context state management when entering from kernel mode.
  * Before this function is called it is not safe to call regular kernel code,
@@ -44,31 +38,14 @@ typedef struct irqentry_state {
  * This is intended to match the logic in irqentry_enter(), handling the kernel
  * mode transitions only.
  */
-static __always_inline arm64_irqentry_state_t __enter_from_kernel_mode(struct pt_regs *regs)
+static __always_inline irqentry_state_t __enter_from_kernel_mode(struct pt_regs *regs)
 {
-	arm64_irqentry_state_t state = {
-		.exit_rcu = false,
-	};
-
-	if (!IS_ENABLED(CONFIG_TINY_RCU) && is_idle_task(current)) {
-		lockdep_hardirqs_off(CALLER_ADDR0);
-		ct_irq_enter();
-		trace_hardirqs_off_finish();
-
-		state.exit_rcu = true;
-		return state;
-	}
-
-	lockdep_hardirqs_off(CALLER_ADDR0);
-	rcu_irq_enter_check_tick();
-	trace_hardirqs_off_finish();
-
-	return state;
+	return irqentry_enter(regs);
 }
 
-static noinstr arm64_irqentry_state_t enter_from_kernel_mode(struct pt_regs *regs)
+static noinstr irqentry_state_t enter_from_kernel_mode(struct pt_regs *regs)
 {
-	arm64_irqentry_state_t state;
+	irqentry_state_t state;
 
 	state = __enter_from_kernel_mode(regs);
 	mte_check_tfsr_entry();
@@ -77,51 +54,6 @@ static noinstr arm64_irqentry_state_t enter_from_kernel_mode(struct pt_regs *reg
 	return state;
 }
 
-static inline bool arm64_preempt_schedule_irq(void)
-{
-	/*
-	 * DAIF.DA are cleared at the start of IRQ/FIQ handling, and when GIC
-	 * priority masking is used the GIC irqchip driver will clear DAIF.IF
-	 * using gic_arch_enable_irqs() for normal IRQs. If anything is set in
-	 * DAIF we must have handled an NMI, so skip preemption.
-	 */
-	if (system_uses_irq_prio_masking() && read_sysreg(daif))
-		return false;
-
-	/*
-	 * Preempting a task from an IRQ means we leave copies of PSTATE
-	 * on the stack. cpufeature's enable calls may modify PSTATE, but
-	 * resuming one of these preempted tasks would undo those changes.
-	 *
-	 * Only allow a task to be preempted once cpufeatures have been
-	 * enabled.
-	 */
-	if (!system_capabilities_finalized())
-		return false;
-
-	return true;
-}
-
-#ifdef CONFIG_PREEMPTION
-void raw_irqentry_exit_cond_resched(void)
-{
-	if (!preempt_count()) {
-		if (need_resched() && arm64_preempt_schedule_irq())
-			preempt_schedule_irq();
-	}
-}
-#endif
-
-#ifdef CONFIG_PREEMPT_DYNAMIC
-DEFINE_STATIC_KEY_TRUE(sk_dynamic_irqentry_exit_cond_resched);
-void dynamic_irqentry_exit_cond_resched(void)
-{
-	if (!static_branch_unlikely(&sk_dynamic_irqentry_exit_cond_resched))
-		return;
-	raw_irqentry_exit_cond_resched();
-}
-#endif
-
 /*
  * Handle IRQ/context state management when exiting to kernel mode.
  * After this function returns it is not safe to call regular kernel code,
@@ -131,31 +63,13 @@ void dynamic_irqentry_exit_cond_resched(void)
  * mode transitions only, and with preemption handled elsewhere.
  */
 static __always_inline void __exit_to_kernel_mode(struct pt_regs *regs,
-						  arm64_irqentry_state_t state)
-{
-	lockdep_assert_irqs_disabled();
-
-	if (!regs_irqs_disabled(regs)) {
-		if (state.exit_rcu) {
-			trace_hardirqs_on_prepare();
-			lockdep_hardirqs_on_prepare();
-			ct_irq_exit();
-			lockdep_hardirqs_on(CALLER_ADDR0);
-			return;
-		}
-
-		if (IS_ENABLED(CONFIG_PREEMPTION))
-			irqentry_exit_cond_resched();
-
-		trace_hardirqs_on();
-	} else {
-		if (state.exit_rcu)
-			ct_irq_exit();
-	}
+						  irqentry_state_t state)
+{
+	irqentry_exit(regs, state);
 }
 
 static void noinstr exit_to_kernel_mode(struct pt_regs *regs,
-					arm64_irqentry_state_t state)
+					irqentry_state_t state)
 {
 	mte_check_tfsr_exit();
 	__exit_to_kernel_mode(regs, state);
@@ -166,18 +80,15 @@ static void noinstr exit_to_kernel_mode(struct pt_regs *regs,
  * Before this function is called it is not safe to call regular kernel code,
  * instrumentable code, or any code which may trigger an exception.
  */
-static __always_inline void __enter_from_user_mode(void)
+static __always_inline void __enter_from_user_mode(struct pt_regs *regs)
 {
-	lockdep_hardirqs_off(CALLER_ADDR0);
-	CT_WARN_ON(ct_state() != CT_STATE_USER);
-	user_exit_irqoff();
-	trace_hardirqs_off_finish();
+	enter_from_user_mode(regs);
 	mte_disable_tco_entry(current);
 }
 
-static __always_inline void enter_from_user_mode(struct pt_regs *regs)
+static __always_inline void arm64_enter_from_user_mode(struct pt_regs *regs)
 {
-	__enter_from_user_mode();
+	__enter_from_user_mode(regs);
 }
 
 /*
@@ -185,116 +96,19 @@ static __always_inline void enter_from_user_mode(struct pt_regs *regs)
  * After this function returns it is not safe to call regular kernel code,
  * instrumentable code, or any code which may trigger an exception.
  */
-static __always_inline void __exit_to_user_mode(void)
-{
-	trace_hardirqs_on_prepare();
-	lockdep_hardirqs_on_prepare();
-	user_enter_irqoff();
-	lockdep_hardirqs_on(CALLER_ADDR0);
-}
 
-static void do_notify_resume(struct pt_regs *regs, unsigned long thread_flags)
+static __always_inline void arm64_exit_to_user_mode(struct pt_regs *regs)
 {
-	do {
-		local_irq_enable();
-
-		if (thread_flags & (_TIF_NEED_RESCHED | _TIF_NEED_RESCHED_LAZY))
-			schedule();
-
-		if (thread_flags & _TIF_UPROBE)
-			uprobe_notify_resume(regs);
-
-		if (thread_flags & _TIF_MTE_ASYNC_FAULT) {
-			clear_thread_flag(TIF_MTE_ASYNC_FAULT);
-			send_sig_fault(SIGSEGV, SEGV_MTEAERR,
-				       (void __user *)NULL, current);
-		}
-
-		if (thread_flags & _TIF_PATCH_PENDING)
-			klp_update_patch_state(current);
-
-		if (thread_flags & (_TIF_SIGPENDING | _TIF_NOTIFY_SIGNAL))
-			do_signal(regs);
-
-		if (thread_flags & _TIF_NOTIFY_RESUME)
-			resume_user_mode_work(regs);
-
-		if (thread_flags & _TIF_FOREIGN_FPSTATE)
-			fpsimd_restore_current_state();
-
-		local_irq_disable();
-		thread_flags = read_thread_flags();
-	} while (thread_flags & _TIF_WORK_MASK);
-}
-
-static __always_inline void exit_to_user_mode_prepare(struct pt_regs *regs)
-{
-	unsigned long flags;
-
 	local_irq_disable();
-
-	flags = read_thread_flags();
-	if (unlikely(flags & _TIF_WORK_MASK))
-		do_notify_resume(regs, flags);
-
-	local_daif_mask();
-
-	lockdep_sys_exit();
-}
-
-static __always_inline void exit_to_user_mode(struct pt_regs *regs)
-{
 	exit_to_user_mode_prepare(regs);
+	local_daif_mask();
 	mte_check_tfsr_exit();
-	__exit_to_user_mode();
+	exit_to_user_mode();
 }
 
 asmlinkage void noinstr asm_exit_to_user_mode(struct pt_regs *regs)
 {
-	exit_to_user_mode(regs);
-}
-
-/*
- * Handle IRQ/context state management when entering an NMI from user/kernel
- * mode. Before this function is called it is not safe to call regular kernel
- * code, instrumentable code, or any code which may trigger an exception.
- */
-static noinstr arm64_irqentry_state_t arm64_enter_nmi(struct pt_regs *regs)
-{
-	arm64_irqentry_state_t state;
-
-	state.lockdep = lockdep_hardirqs_enabled();
-
-	__nmi_enter();
-	lockdep_hardirqs_off(CALLER_ADDR0);
-	lockdep_hardirq_enter();
-	ct_nmi_enter();
-
-	trace_hardirqs_off_finish();
-	ftrace_nmi_enter();
-
-	return state;
-}
-
-/*
- * Handle IRQ/context state management when exiting an NMI from user/kernel
- * mode. After this function returns it is not safe to call regular kernel
- * code, instrumentable code, or any code which may trigger an exception.
- */
-static void noinstr arm64_exit_nmi(struct pt_regs *regs,
-				   arm64_irqentry_state_t state)
-{
-	ftrace_nmi_exit();
-	if (state.lockdep) {
-		trace_hardirqs_on_prepare();
-		lockdep_hardirqs_on_prepare();
-	}
-
-	ct_nmi_exit();
-	lockdep_hardirq_exit();
-	if (state.lockdep)
-		lockdep_hardirqs_on(CALLER_ADDR0);
-	__nmi_exit();
+	arm64_exit_to_user_mode(regs);
 }
 
 /*
@@ -302,9 +116,9 @@ static void noinstr arm64_exit_nmi(struct pt_regs *regs,
  * kernel mode. Before this function is called it is not safe to call regular
  * kernel code, instrumentable code, or any code which may trigger an exception.
  */
-static noinstr arm64_irqentry_state_t arm64_enter_el1_dbg(struct pt_regs *regs)
+static noinstr irqentry_state_t arm64_enter_el1_dbg(struct pt_regs *regs)
 {
-	arm64_irqentry_state_t state;
+	irqentry_state_t state;
 
 	state.lockdep = lockdep_hardirqs_enabled();
 
@@ -322,7 +136,7 @@ static noinstr arm64_irqentry_state_t arm64_enter_el1_dbg(struct pt_regs *regs)
  * kernel code, instrumentable code, or any code which may trigger an exception.
  */
 static void noinstr arm64_exit_el1_dbg(struct pt_regs *regs,
-				       arm64_irqentry_state_t state)
+				       irqentry_state_t state)
 {
 	if (state.lockdep) {
 		trace_hardirqs_on_prepare();
@@ -353,7 +167,7 @@ extern void (*handle_arch_fiq)(struct pt_regs *);
 static void noinstr __panic_unhandled(struct pt_regs *regs, const char *vector,
 				      unsigned long esr)
 {
-	arm64_enter_nmi(regs);
+	irqentry_nmi_enter(regs);
 
 	console_verbose();
 
@@ -504,7 +318,7 @@ UNHANDLED(el1t, 64, error)
 static void noinstr el1_abort(struct pt_regs *regs, unsigned long esr)
 {
 	unsigned long far = read_sysreg(far_el1);
-	arm64_irqentry_state_t state;
+	irqentry_state_t state;
 
 	state = enter_from_kernel_mode(regs);
 	local_daif_inherit(regs);
@@ -516,7 +330,7 @@ static void noinstr el1_abort(struct pt_regs *regs, unsigned long esr)
 static void noinstr el1_pc(struct pt_regs *regs, unsigned long esr)
 {
 	unsigned long far = read_sysreg(far_el1);
-	arm64_irqentry_state_t state;
+	irqentry_state_t state;
 
 	state = enter_from_kernel_mode(regs);
 	local_daif_inherit(regs);
@@ -527,7 +341,7 @@ static void noinstr el1_pc(struct pt_regs *regs, unsigned long esr)
 
 static void noinstr el1_undef(struct pt_regs *regs, unsigned long esr)
 {
-	arm64_irqentry_state_t state;
+	irqentry_state_t state;
 
 	state = enter_from_kernel_mode(regs);
 	local_daif_inherit(regs);
@@ -538,7 +352,7 @@ static void noinstr el1_undef(struct pt_regs *regs, unsigned long esr)
 
 static void noinstr el1_bti(struct pt_regs *regs, unsigned long esr)
 {
-	arm64_irqentry_state_t state;
+	irqentry_state_t state;
 
 	state = enter_from_kernel_mode(regs);
 	local_daif_inherit(regs);
@@ -549,7 +363,7 @@ static void noinstr el1_bti(struct pt_regs *regs, unsigned long esr)
 
 static void noinstr el1_gcs(struct pt_regs *regs, unsigned long esr)
 {
-	arm64_irqentry_state_t state;
+	irqentry_state_t state;
 
 	state = enter_from_kernel_mode(regs);
 	local_daif_inherit(regs);
@@ -560,7 +374,7 @@ static void noinstr el1_gcs(struct pt_regs *regs, unsigned long esr)
 
 static void noinstr el1_mops(struct pt_regs *regs, unsigned long esr)
 {
-	arm64_irqentry_state_t state;
+	irqentry_state_t state;
 
 	state = enter_from_kernel_mode(regs);
 	local_daif_inherit(regs);
@@ -571,7 +385,7 @@ static void noinstr el1_mops(struct pt_regs *regs, unsigned long esr)
 
 static void noinstr el1_breakpt(struct pt_regs *regs, unsigned long esr)
 {
-	arm64_irqentry_state_t state;
+	irqentry_state_t state;
 
 	state = arm64_enter_el1_dbg(regs);
 	debug_exception_enter(regs);
@@ -582,7 +396,7 @@ static void noinstr el1_breakpt(struct pt_regs *regs, unsigned long esr)
 
 static void noinstr el1_softstp(struct pt_regs *regs, unsigned long esr)
 {
-	arm64_irqentry_state_t state;
+	irqentry_state_t state;
 
 	state = arm64_enter_el1_dbg(regs);
 	if (!cortex_a76_erratum_1463225_debug_handler(regs)) {
@@ -604,7 +418,7 @@ static void noinstr el1_watchpt(struct pt_regs *regs, unsigned long esr)
 {
 	/* Watchpoints are the only debug exception to write FAR_EL1 */
 	unsigned long far = read_sysreg(far_el1);
-	arm64_irqentry_state_t state;
+	irqentry_state_t state;
 
 	state = arm64_enter_el1_dbg(regs);
 	debug_exception_enter(regs);
@@ -615,7 +429,7 @@ static void noinstr el1_watchpt(struct pt_regs *regs, unsigned long esr)
 
 static void noinstr el1_brk64(struct pt_regs *regs, unsigned long esr)
 {
-	arm64_irqentry_state_t state;
+	irqentry_state_t state;
 
 	state = arm64_enter_el1_dbg(regs);
 	debug_exception_enter(regs);
@@ -626,7 +440,7 @@ static void noinstr el1_brk64(struct pt_regs *regs, unsigned long esr)
 
 static void noinstr el1_fpac(struct pt_regs *regs, unsigned long esr)
 {
-	arm64_irqentry_state_t state;
+	irqentry_state_t state;
 
 	state = enter_from_kernel_mode(regs);
 	local_daif_inherit(regs);
@@ -687,17 +501,17 @@ asmlinkage void noinstr el1h_64_sync_handler(struct pt_regs *regs)
 static __always_inline void __el1_pnmi(struct pt_regs *regs,
 				       void (*handler)(struct pt_regs *))
 {
-	arm64_irqentry_state_t state;
+	irqentry_state_t state;
 
-	state = arm64_enter_nmi(regs);
+	state = irqentry_nmi_enter(regs);
 	do_interrupt_handler(regs, handler);
-	arm64_exit_nmi(regs, state);
+	irqentry_nmi_exit(regs, state);
 }
 
 static __always_inline void __el1_irq(struct pt_regs *regs,
 				      void (*handler)(struct pt_regs *))
 {
-	arm64_irqentry_state_t state;
+	irqentry_state_t state;
 
 	state = enter_from_kernel_mode(regs);
 
@@ -731,22 +545,22 @@ asmlinkage void noinstr el1h_64_fiq_handler(struct pt_regs *regs)
 asmlinkage void noinstr el1h_64_error_handler(struct pt_regs *regs)
 {
 	unsigned long esr = read_sysreg(esr_el1);
-	arm64_irqentry_state_t state;
+	irqentry_state_t state;
 
 	local_daif_restore(DAIF_ERRCTX);
-	state = arm64_enter_nmi(regs);
+	state = irqentry_nmi_enter(regs);
 	do_serror(regs, esr);
-	arm64_exit_nmi(regs, state);
+	irqentry_nmi_exit(regs, state);
 }
 
 static void noinstr el0_da(struct pt_regs *regs, unsigned long esr)
 {
 	unsigned long far = read_sysreg(far_el1);
 
-	enter_from_user_mode(regs);
+	arm64_enter_from_user_mode(regs);
 	local_daif_restore(DAIF_PROCCTX);
 	do_mem_abort(far, esr, regs);
-	exit_to_user_mode(regs);
+	arm64_exit_to_user_mode(regs);
 }
 
 static void noinstr el0_ia(struct pt_regs *regs, unsigned long esr)
@@ -761,50 +575,50 @@ static void noinstr el0_ia(struct pt_regs *regs, unsigned long esr)
 	if (!is_ttbr0_addr(far))
 		arm64_apply_bp_hardening();
 
-	enter_from_user_mode(regs);
+	arm64_enter_from_user_mode(regs);
 	local_daif_restore(DAIF_PROCCTX);
 	do_mem_abort(far, esr, regs);
-	exit_to_user_mode(regs);
+	arm64_exit_to_user_mode(regs);
 }
 
 static void noinstr el0_fpsimd_acc(struct pt_regs *regs, unsigned long esr)
 {
-	enter_from_user_mode(regs);
+	arm64_enter_from_user_mode(regs);
 	local_daif_restore(DAIF_PROCCTX);
 	do_fpsimd_acc(esr, regs);
-	exit_to_user_mode(regs);
+	arm64_exit_to_user_mode(regs);
 }
 
 static void noinstr el0_sve_acc(struct pt_regs *regs, unsigned long esr)
 {
-	enter_from_user_mode(regs);
+	arm64_enter_from_user_mode(regs);
 	local_daif_restore(DAIF_PROCCTX);
 	do_sve_acc(esr, regs);
-	exit_to_user_mode(regs);
+	arm64_exit_to_user_mode(regs);
 }
 
 static void noinstr el0_sme_acc(struct pt_regs *regs, unsigned long esr)
 {
-	enter_from_user_mode(regs);
+	arm64_enter_from_user_mode(regs);
 	local_daif_restore(DAIF_PROCCTX);
 	do_sme_acc(esr, regs);
-	exit_to_user_mode(regs);
+	arm64_exit_to_user_mode(regs);
 }
 
 static void noinstr el0_fpsimd_exc(struct pt_regs *regs, unsigned long esr)
 {
-	enter_from_user_mode(regs);
+	arm64_enter_from_user_mode(regs);
 	local_daif_restore(DAIF_PROCCTX);
 	do_fpsimd_exc(esr, regs);
-	exit_to_user_mode(regs);
+	arm64_exit_to_user_mode(regs);
 }
 
 static void noinstr el0_sys(struct pt_regs *regs, unsigned long esr)
 {
-	enter_from_user_mode(regs);
+	arm64_enter_from_user_mode(regs);
 	local_daif_restore(DAIF_PROCCTX);
 	do_el0_sys(esr, regs);
-	exit_to_user_mode(regs);
+	arm64_exit_to_user_mode(regs);
 }
 
 static void noinstr el0_pc(struct pt_regs *regs, unsigned long esr)
@@ -814,58 +628,58 @@ static void noinstr el0_pc(struct pt_regs *regs, unsigned long esr)
 	if (!is_ttbr0_addr(instruction_pointer(regs)))
 		arm64_apply_bp_hardening();
 
-	enter_from_user_mode(regs);
+	arm64_enter_from_user_mode(regs);
 	local_daif_restore(DAIF_PROCCTX);
 	do_sp_pc_abort(far, esr, regs);
-	exit_to_user_mode(regs);
+	arm64_exit_to_user_mode(regs);
 }
 
 static void noinstr el0_sp(struct pt_regs *regs, unsigned long esr)
 {
-	enter_from_user_mode(regs);
+	arm64_enter_from_user_mode(regs);
 	local_daif_restore(DAIF_PROCCTX);
 	do_sp_pc_abort(regs->sp, esr, regs);
-	exit_to_user_mode(regs);
+	arm64_exit_to_user_mode(regs);
 }
 
 static void noinstr el0_undef(struct pt_regs *regs, unsigned long esr)
 {
-	enter_from_user_mode(regs);
+	arm64_enter_from_user_mode(regs);
 	local_daif_restore(DAIF_PROCCTX);
 	do_el0_undef(regs, esr);
-	exit_to_user_mode(regs);
+	arm64_exit_to_user_mode(regs);
 }
 
 static void noinstr el0_bti(struct pt_regs *regs)
 {
-	enter_from_user_mode(regs);
+	arm64_enter_from_user_mode(regs);
 	local_daif_restore(DAIF_PROCCTX);
 	do_el0_bti(regs);
-	exit_to_user_mode(regs);
+	arm64_exit_to_user_mode(regs);
 }
 
 static void noinstr el0_mops(struct pt_regs *regs, unsigned long esr)
 {
-	enter_from_user_mode(regs);
+	arm64_enter_from_user_mode(regs);
 	local_daif_restore(DAIF_PROCCTX);
 	do_el0_mops(regs, esr);
-	exit_to_user_mode(regs);
+	arm64_exit_to_user_mode(regs);
 }
 
 static void noinstr el0_gcs(struct pt_regs *regs, unsigned long esr)
 {
-	enter_from_user_mode(regs);
+	arm64_enter_from_user_mode(regs);
 	local_daif_restore(DAIF_PROCCTX);
 	do_el0_gcs(regs, esr);
-	exit_to_user_mode(regs);
+	arm64_exit_to_user_mode(regs);
 }
 
 static void noinstr el0_inv(struct pt_regs *regs, unsigned long esr)
 {
-	enter_from_user_mode(regs);
+	arm64_enter_from_user_mode(regs);
 	local_daif_restore(DAIF_PROCCTX);
 	bad_el0_sync(regs, 0, esr);
-	exit_to_user_mode(regs);
+	arm64_exit_to_user_mode(regs);
 }
 
 static void noinstr el0_breakpt(struct pt_regs *regs, unsigned long esr)
@@ -873,12 +687,12 @@ static void noinstr el0_breakpt(struct pt_regs *regs, unsigned long esr)
 	if (!is_ttbr0_addr(regs->pc))
 		arm64_apply_bp_hardening();
 
-	enter_from_user_mode(regs);
+	arm64_enter_from_user_mode(regs);
 	debug_exception_enter(regs);
 	do_breakpoint(esr, regs);
 	debug_exception_exit(regs);
 	local_daif_restore(DAIF_PROCCTX);
-	exit_to_user_mode(regs);
+	arm64_exit_to_user_mode(regs);
 }
 
 static void noinstr el0_softstp(struct pt_regs *regs, unsigned long esr)
@@ -886,7 +700,7 @@ static void noinstr el0_softstp(struct pt_regs *regs, unsigned long esr)
 	if (!is_ttbr0_addr(regs->pc))
 		arm64_apply_bp_hardening();
 
-	enter_from_user_mode(regs);
+	arm64_enter_from_user_mode(regs);
 	/*
 	 * After handling a breakpoint, we suspend the breakpoint
 	 * and use single-step to move to the next instruction.
@@ -897,7 +711,7 @@ static void noinstr el0_softstp(struct pt_regs *regs, unsigned long esr)
 		local_daif_restore(DAIF_PROCCTX);
 		do_el0_softstep(esr, regs);
 	}
-	exit_to_user_mode(regs);
+	arm64_exit_to_user_mode(regs);
 }
 
 static void noinstr el0_watchpt(struct pt_regs *regs, unsigned long esr)
@@ -905,39 +719,39 @@ static void noinstr el0_watchpt(struct pt_regs *regs, unsigned long esr)
 	/* Watchpoints are the only debug exception to write FAR_EL1 */
 	unsigned long far = read_sysreg(far_el1);
 
-	enter_from_user_mode(regs);
+	arm64_enter_from_user_mode(regs);
 	debug_exception_enter(regs);
 	do_watchpoint(far, esr, regs);
 	debug_exception_exit(regs);
 	local_daif_restore(DAIF_PROCCTX);
-	exit_to_user_mode(regs);
+	arm64_exit_to_user_mode(regs);
 }
 
 static void noinstr el0_brk64(struct pt_regs *regs, unsigned long esr)
 {
-	enter_from_user_mode(regs);
+	arm64_enter_from_user_mode(regs);
 	local_daif_restore(DAIF_PROCCTX);
 	do_el0_brk64(esr, regs);
-	exit_to_user_mode(regs);
+	arm64_exit_to_user_mode(regs);
 }
 
 static void noinstr el0_svc(struct pt_regs *regs)
 {
-	enter_from_user_mode(regs);
+	arm64_enter_from_user_mode(regs);
 	cortex_a76_erratum_1463225_svc_handler();
 	fpsimd_syscall_enter();
 	local_daif_restore(DAIF_PROCCTX);
 	do_el0_svc(regs);
-	exit_to_user_mode(regs);
+	arm64_exit_to_user_mode(regs);
 	fpsimd_syscall_exit();
 }
 
 static void noinstr el0_fpac(struct pt_regs *regs, unsigned long esr)
 {
-	enter_from_user_mode(regs);
+	arm64_enter_from_user_mode(regs);
 	local_daif_restore(DAIF_PROCCTX);
 	do_el0_fpac(regs, esr);
-	exit_to_user_mode(regs);
+	arm64_exit_to_user_mode(regs);
 }
 
 asmlinkage void noinstr el0t_64_sync_handler(struct pt_regs *regs)
@@ -1011,7 +825,7 @@ asmlinkage void noinstr el0t_64_sync_handler(struct pt_regs *regs)
 static void noinstr el0_interrupt(struct pt_regs *regs,
 				  void (*handler)(struct pt_regs *))
 {
-	enter_from_user_mode(regs);
+	arm64_enter_from_user_mode(regs);
 
 	write_sysreg(DAIF_PROCCTX_NOIRQ, daif);
 
@@ -1022,7 +836,7 @@ static void noinstr el0_interrupt(struct pt_regs *regs,
 	do_interrupt_handler(regs, handler);
 	irq_exit_rcu();
 
-	exit_to_user_mode(regs);
+	arm64_exit_to_user_mode(regs);
 }
 
 static void noinstr __el0_irq_handler_common(struct pt_regs *regs)
@@ -1048,15 +862,15 @@ asmlinkage void noinstr el0t_64_fiq_handler(struct pt_regs *regs)
 static void noinstr __el0_error_handler_common(struct pt_regs *regs)
 {
 	unsigned long esr = read_sysreg(esr_el1);
-	arm64_irqentry_state_t state;
+	irqentry_state_t state;
 
-	enter_from_user_mode(regs);
+	arm64_enter_from_user_mode(regs);
 	local_daif_restore(DAIF_ERRCTX);
-	state = arm64_enter_nmi(regs);
+	state = irqentry_nmi_enter(regs);
 	do_serror(regs, esr);
-	arm64_exit_nmi(regs, state);
+	irqentry_nmi_exit(regs, state);
 	local_daif_restore(DAIF_PROCCTX);
-	exit_to_user_mode(regs);
+	arm64_exit_to_user_mode(regs);
 }
 
 asmlinkage void noinstr el0t_64_error_handler(struct pt_regs *regs)
@@ -1067,27 +881,27 @@ asmlinkage void noinstr el0t_64_error_handler(struct pt_regs *regs)
 #ifdef CONFIG_COMPAT
 static void noinstr el0_cp15(struct pt_regs *regs, unsigned long esr)
 {
-	enter_from_user_mode(regs);
+	arm64_enter_from_user_mode(regs);
 	local_daif_restore(DAIF_PROCCTX);
 	do_el0_cp15(esr, regs);
-	exit_to_user_mode(regs);
+	arm64_exit_to_user_mode(regs);
 }
 
 static void noinstr el0_svc_compat(struct pt_regs *regs)
 {
-	enter_from_user_mode(regs);
+	arm64_enter_from_user_mode(regs);
 	cortex_a76_erratum_1463225_svc_handler();
 	local_daif_restore(DAIF_PROCCTX);
 	do_el0_svc_compat(regs);
-	exit_to_user_mode(regs);
+	arm64_exit_to_user_mode(regs);
 }
 
 static void noinstr el0_bkpt32(struct pt_regs *regs, unsigned long esr)
 {
-	enter_from_user_mode(regs);
+	arm64_enter_from_user_mode(regs);
 	local_daif_restore(DAIF_PROCCTX);
 	do_bkpt32(esr, regs);
-	exit_to_user_mode(regs);
+	arm64_exit_to_user_mode(regs);
 }
 
 asmlinkage void noinstr el0t_32_sync_handler(struct pt_regs *regs)
@@ -1166,7 +980,7 @@ asmlinkage void noinstr __noreturn handle_bad_stack(struct pt_regs *regs)
 	unsigned long esr = read_sysreg(esr_el1);
 	unsigned long far = read_sysreg(far_el1);
 
-	arm64_enter_nmi(regs);
+	irqentry_nmi_enter(regs);
 	panic_bad_stack(regs, esr, far);
 }
 
@@ -1174,7 +988,7 @@ asmlinkage void noinstr __noreturn handle_bad_stack(struct pt_regs *regs)
 asmlinkage noinstr unsigned long
 __sdei_handler(struct pt_regs *regs, struct sdei_registered_event *arg)
 {
-	arm64_irqentry_state_t state;
+	irqentry_state_t state;
 	unsigned long ret;
 
 	/*
@@ -1199,9 +1013,9 @@ __sdei_handler(struct pt_regs *regs, struct sdei_registered_event *arg)
 	else if (cpu_has_pan())
 		set_pstate_pan(0);
 
-	state = arm64_enter_nmi(regs);
+	state = irqentry_nmi_enter(regs);
 	ret = do_sdei_event(regs, arg);
-	arm64_exit_nmi(regs, state);
+	irqentry_nmi_exit(regs, state);
 
 	return ret;
 }
diff --git a/arch/arm64/kernel/signal.c b/arch/arm64/kernel/signal.c
index db3f972f8cd9..1110eeb21f57 100644
--- a/arch/arm64/kernel/signal.c
+++ b/arch/arm64/kernel/signal.c
@@ -9,6 +9,7 @@
 #include <linux/cache.h>
 #include <linux/compat.h>
 #include <linux/errno.h>
+#include <linux/irq-entry-common.h>
 #include <linux/kernel.h>
 #include <linux/signal.h>
 #include <linux/freezer.h>
@@ -1576,7 +1577,7 @@ static void handle_signal(struct ksignal *ksig, struct pt_regs *regs)
  * the kernel can handle, and then we build all the user-level signal handling
  * stack-frames in one go after that.
  */
-void do_signal(struct pt_regs *regs)
+void arch_do_signal_or_restart(struct pt_regs *regs)
 {
 	unsigned long continue_addr = 0, restart_addr = 0;
 	int retval = 0;
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 03:07:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 03:07:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082693.1442496 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umkmX-0006VP-OA; Fri, 15 Aug 2025 03:07:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082693.1442496; Fri, 15 Aug 2025 03:07:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umkmX-0006TX-K9; Fri, 15 Aug 2025 03:07:05 +0000
Received: by outflank-mailman (input) for mailman id 1082693;
 Fri, 15 Aug 2025 03:07:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vxBA=23=huawei.com=ruanjinjie@srs-se1.protection.inumbo.net>)
 id 1umkmV-00052A-BZ
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 03:07:03 +0000
Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e4bd98dc-7984-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 05:06:55 +0200 (CEST)
Received: from mail.maildlp.com (unknown [172.19.163.252])
 by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4c36TM0rqDzvX7F;
 Fri, 15 Aug 2025 11:06:47 +0800 (CST)
Received: from dggpemf500011.china.huawei.com (unknown [7.185.36.131])
 by mail.maildlp.com (Postfix) with ESMTPS id B5B50180B71;
 Fri, 15 Aug 2025 11:06:43 +0800 (CST)
Received: from huawei.com (10.90.53.73) by dggpemf500011.china.huawei.com
 (7.185.36.131) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.11; Fri, 15 Aug
 2025 11:06:42 +0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e4bd98dc-7984-11f0-b898-0df219b8e170
From: Jinjie Ruan <ruanjinjie@huawei.com>
To: <catalin.marinas@arm.com>, <will@kernel.org>, <oleg@redhat.com>,
	<sstabellini@kernel.org>, <mark.rutland@arm.com>, <ada.coupriediaz@arm.com>,
	<mbenes@suse.cz>, <broonie@kernel.org>, <anshuman.khandual@arm.com>,
	<ryan.roberts@arm.com>, <chenl311@chinatelecom.cn>, <liaochang1@huawei.com>,
	<kristina.martsenko@arm.com>, <leitao@debian.org>, <ardb@kernel.org>,
	<linux-arm-kernel@lists.infradead.org>, <linux-kernel@vger.kernel.org>,
	<xen-devel@lists.xenproject.org>
CC: <ruanjinjie@huawei.com>
Subject: [PATCH v8 0/8] arm64: entry: Convert to generic irq entry
Date: Fri, 15 Aug 2025 11:06:25 +0800
Message-ID: <20250815030633.448613-1-ruanjinjie@huawei.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.90.53.73]
X-ClientProxiedBy: kwepems500002.china.huawei.com (7.221.188.17) To
 dggpemf500011.china.huawei.com (7.185.36.131)

Currently, x86, Riscv, Loongarch use the generic entry which makes
maintainers' work easier and codes more elegant. So also convert arm64
to use the generic entry infrastructure from kernel/entry/* by
switching it to generic IRQ entry first, which will make PREEMPT_DYNAMIC
and PREEMPT_LAZY use the generic entry common code and remove a lot of
duplicate code.

Since commit a70e9f647f50 ("entry: Split generic entry into generic
exception and syscall entry") split the generic entry into generic irq
entry and generic syscall entry, it is time to convert arm64 to use
the generic irq entry. And ARM64 will be completely converted to generic
entry in the upcoming patch series.

The main convert steps are as follows:
- Split generic entry into generic irq entry and generic syscall to
  make the single patch more concentrated in switching to one thing.
- Make arm64 easier to use irqentry_enter/exit().
- Make arm64 closer to the PREEMPT_DYNAMIC code of generic entry.
- Switch to generic irq entry.

This patch set is rebased on v6.17-rc1.

It was tested ok with following test cases on QEMU virt platform:
 - Perf tests.
 - Different `dynamic preempt` mode switch.
 - Pseudo NMI tests.
 - Stress-ng CPU stress test.
 - MTE test case in Documentation/arch/arm64/memory-tagging-extension.rst
   and all test cases in tools/testing/selftests/arm64/mte/*.

The test QEMU configuration is as follows:

	qemu-system-aarch64 \
		-M virt,gic-version=3,virtualization=on,mte=on \
		-cpu max,pauth-impdef=on \
		-kernel Image \
		-smp 8,sockets=1,cores=4,threads=2 \
		-m 512m \
		-nographic \
		-no-reboot \
		-device virtio-rng-pci \
		-append "root=/dev/vda rw console=ttyAMA0 kgdboc=ttyAMA0,115200 \
			earlycon preempt=voluntary irqchip.gicv3_pseudo_nmi=1" \
		-drive if=none,file=images/rootfs.ext4,format=raw,id=hd0 \
		-device virtio-blk-device,drive=hd0 \

Changes in v8:
- Update the comment.
- Fix a typo, inerrupts_enabled(regs) -> interrupts_enabled(regs).
- Consistently defined 'state' on a separate line, before the main block.
- Split the "arch_irqentry_exit_need_resched()" patch.
- Fix CONFIG_PREEMPTION not set build issue.
- Remove do_signal() declaration in exception.h as there remains
  no users of `do_signal().
- Add asm/cpufeature.h header for entry-common.h
- Add Reviewed-by, Acked-by and Tested-by.
- Update the commit message.
- Link to v7: https://lore.kernel.org/all/20250729015456.3411143-1-ruanjinjie@huawei.com/

Changes in v7:
- Rebased on v6.16-rc7 and remove the merged first patch.
- Update the commit message.
- Link to v6: https://lore.kernel.org/all/20250213130007.1418890-1-ruanjinjie@huawei.com/

Changes in v6:
- Rebased on 6.14 rc2 next.
- Put the syscall bits aside and split it out.
- Have the split patch before the arm64 changes.
- Merge some tightly coupled patches.
- Adjust the order of some patches to make them more reasonable.
- Define regs_irqs_disabled() by inline function.
- Define interrupts_enabled() in terms of regs_irqs_disabled().
- Delete the fast_interrupts_enabled() macro.
- irqentry_state_t -> arm64_irqentry_state_t.
- Remove arch_exit_to_user_mode_prepare() and pull local_daif_mask() later
  in the arm64 exit sequence
- Update the commit message.
- Link to v5: https://lkml.org/lkml/2024/12/6/609

Changes in v5:
- Not change arm32 and keep inerrupts_enabled() macro for gicv3 driver.
- Move irqentry_state definition into arch/arm64/kernel/entry-common.c.
- Avoid removing the __enter_from_*() and __exit_to_*() wrappers.
- Update "irqentry_state_t ret/irq_state" to "state"
  to keep it consistently.
- Use generic irq entry header for PREEMPT_DYNAMIC after split
  the generic entry.
- Also refactor the ARM64 syscall code.
- Introduce arch_ptrace_report_syscall_entry/exit(), instead of
  arch_pre/post_report_syscall_entry/exit() to simplify code.
- Make the syscall patches clear separation.
- Update the commit message.
- Link to v4: https://lkml.indiana.edu/2410.3/02309.html

Changes in v4:
- Rework/cleanup split into a few patches as Mark suggested.
- Replace interrupts_enabled() macro with regs_irqs_disabled(), instead
  of left it here.
- Remove rcu and lockdep state in pt_regs by using temporary
  irqentry_state_t as Mark suggested.
- Remove some unnecessary intermediate functions to make it clear.
- Rework preempt irq and PREEMPT_DYNAMIC code
  to make the switch more clear.
- arch_prepare_*_entry/exit() -> arch_pre_*_entry/exit().
- Expand the arch functions comment.
- Make arch functions closer to its caller.
- Declare saved_reg in for block.
- Remove arch_exit_to_kernel_mode_prepare(), arch_enter_from_kernel_mode().
- Adjust "Add few arch functions to use generic entry" patch to be
  the penultimate.
- Update the commit message.
- Add suggested-by.

Changes in v3:
- Test the MTE test cases.
- Handle forget_syscall() in arch_post_report_syscall_entry()
- Make the arch funcs not use __weak as Thomas suggested, so move
  the arch funcs to entry-common.h, and make arch_forget_syscall() folded
  in arch_post_report_syscall_entry() as suggested.
- Move report_single_step() to thread_info.h for arm64
- Change __always_inline() to inline, add inline for the other arch funcs.
- Remove unused signal.h for entry-common.h.
- Add Suggested-by.
- Update the commit message.

Changes in v2:
- Add tested-by.
- Fix a bug that not call arch_post_report_syscall_entry() in
  syscall_trace_enter() if ptrace_report_syscall_entry() return not zero.
- Refactor report_syscall().
- Add comment for arch_prepare_report_syscall_exit().
- Adjust entry-common.h header file inclusion to alphabetical order.
- Update the commit message.

Jinjie Ruan (8):
  arm64: ptrace: Replace interrupts_enabled() with regs_irqs_disabled()
  arm64: entry: Refactor the entry and exit for exceptions from EL1
  arm64: entry: Rework arm64_preempt_schedule_irq()
  arm64: entry: Use preempt_count() and need_resched() helper
  entry: Add arch_irqentry_exit_need_resched() for arm64
  arm64: entry: Refactor preempt_schedule_irq() check code
  arm64: entry: Move arm64_preempt_schedule_irq() into
    __exit_to_kernel_mode()
  arm64: entry: Switch to generic IRQ entry

 arch/arm64/Kconfig                    |   1 +
 arch/arm64/include/asm/daifflags.h    |   2 +-
 arch/arm64/include/asm/entry-common.h |  57 ++++
 arch/arm64/include/asm/exception.h    |   1 -
 arch/arm64/include/asm/preempt.h      |   2 -
 arch/arm64/include/asm/ptrace.h       |  13 +-
 arch/arm64/include/asm/xen/events.h   |   2 +-
 arch/arm64/kernel/acpi.c              |   2 +-
 arch/arm64/kernel/debug-monitors.c    |   2 +-
 arch/arm64/kernel/entry-common.c      | 423 +++++++++-----------------
 arch/arm64/kernel/sdei.c              |   2 +-
 arch/arm64/kernel/signal.c            |   3 +-
 kernel/entry/common.c                 |  16 +-
 13 files changed, 230 insertions(+), 296 deletions(-)
 create mode 100644 arch/arm64/include/asm/entry-common.h

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 03:07:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 03:07:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082686.1442430 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umkmT-00053S-Q2; Fri, 15 Aug 2025 03:07:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082686.1442430; Fri, 15 Aug 2025 03:07: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 1umkmT-000536-KJ; Fri, 15 Aug 2025 03:07:01 +0000
Received: by outflank-mailman (input) for mailman id 1082686;
 Fri, 15 Aug 2025 03:06:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vxBA=23=huawei.com=ruanjinjie@srs-se1.protection.inumbo.net>)
 id 1umkmR-00052A-TZ
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 03:06:59 +0000
Received: from szxga04-in.huawei.com (szxga04-in.huawei.com [45.249.212.190])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e38387c8-7984-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 05:06:55 +0200 (CEST)
Received: from mail.maildlp.com (unknown [172.19.162.112])
 by szxga04-in.huawei.com (SkyGuard) with ESMTP id 4c36NP1Z3Kz2CgB4;
 Fri, 15 Aug 2025 11:02:29 +0800 (CST)
Received: from dggpemf500011.china.huawei.com (unknown [7.185.36.131])
 by mail.maildlp.com (Postfix) with ESMTPS id 9B54814011F;
 Fri, 15 Aug 2025 11:06:49 +0800 (CST)
Received: from huawei.com (10.90.53.73) by dggpemf500011.china.huawei.com
 (7.185.36.131) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.11; Fri, 15 Aug
 2025 11:06:48 +0800
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e38387c8-7984-11f0-b898-0df219b8e170
From: Jinjie Ruan <ruanjinjie@huawei.com>
To: <catalin.marinas@arm.com>, <will@kernel.org>, <oleg@redhat.com>,
	<sstabellini@kernel.org>, <mark.rutland@arm.com>, <ada.coupriediaz@arm.com>,
	<mbenes@suse.cz>, <broonie@kernel.org>, <anshuman.khandual@arm.com>,
	<ryan.roberts@arm.com>, <chenl311@chinatelecom.cn>, <liaochang1@huawei.com>,
	<kristina.martsenko@arm.com>, <leitao@debian.org>, <ardb@kernel.org>,
	<linux-arm-kernel@lists.infradead.org>, <linux-kernel@vger.kernel.org>,
	<xen-devel@lists.xenproject.org>
CC: <ruanjinjie@huawei.com>
Subject: [PATCH v8 5/8] entry: Add arch_irqentry_exit_need_resched() for arm64
Date: Fri, 15 Aug 2025 11:06:30 +0800
Message-ID: <20250815030633.448613-6-ruanjinjie@huawei.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250815030633.448613-1-ruanjinjie@huawei.com>
References: <20250815030633.448613-1-ruanjinjie@huawei.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.90.53.73]
X-ClientProxiedBy: kwepems500002.china.huawei.com (7.221.188.17) To
 dggpemf500011.china.huawei.com (7.185.36.131)

Compared to the generic entry code, ARM64 does additional checks
when deciding to reschedule on return from interrupt. So introduce
arch_irqentry_exit_need_resched() in the need_resched()
condition of the generic raw_irqentry_exit_cond_resched(), with
a NOP default. This will allow ARM64 to implement the architecture
specific version for switching over to the generic entry code.

Suggested-by: Ada Couprie Diaz <ada.coupriediaz@arm.com>
Suggested-by: Mark Rutland <mark.rutland@arm.com>
Suggested-by: Kevin Brodsky <kevin.brodsky@arm.com>
Suggested-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
---
 kernel/entry/common.c | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/kernel/entry/common.c b/kernel/entry/common.c
index 408d28b5179d..f62e1d1b2063 100644
--- a/kernel/entry/common.c
+++ b/kernel/entry/common.c
@@ -143,6 +143,20 @@ noinstr irqentry_state_t irqentry_enter(struct pt_regs *regs)
 	return ret;
 }
 
+/**
+ * arch_irqentry_exit_need_resched - Architecture specific need resched function
+ *
+ * Invoked from raw_irqentry_exit_cond_resched() to check if resched is needed.
+ * Defaults return true.
+ *
+ * The main purpose is to permit arch to avoid preemption of a task from an IRQ.
+ */
+static inline bool arch_irqentry_exit_need_resched(void);
+
+#ifndef arch_irqentry_exit_need_resched
+static inline bool arch_irqentry_exit_need_resched(void) { return true; }
+#endif
+
 void raw_irqentry_exit_cond_resched(void)
 {
 	if (!preempt_count()) {
@@ -150,7 +164,7 @@ void raw_irqentry_exit_cond_resched(void)
 		rcu_irq_exit_check_preempt();
 		if (IS_ENABLED(CONFIG_DEBUG_ENTRY))
 			WARN_ON_ONCE(!on_thread_stack());
-		if (need_resched())
+		if (need_resched() && arch_irqentry_exit_need_resched())
 			preempt_schedule_irq();
 	}
 }
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 05:11:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 05:11:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082782.1442517 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ummij-0007gf-DU; Fri, 15 Aug 2025 05:11:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082782.1442517; Fri, 15 Aug 2025 05:11: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 1ummij-0007gX-7d; Fri, 15 Aug 2025 05:11:17 +0000
Received: by outflank-mailman (input) for mailman id 1082782;
 Fri, 15 Aug 2025 05:11:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=3nai=23=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1ummii-0007gR-L9
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 05:11:16 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3f1fca16-7996-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 07:11:07 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 451BD5C4C44;
 Fri, 15 Aug 2025 05:11:05 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id EDF32C4CEF4;
 Fri, 15 Aug 2025 05:11:03 +0000 (UTC)
Received: from phl-compute-12.internal (phl-compute-12.internal [10.202.2.52])
 by mailfauth.phl.internal (Postfix) with ESMTP id CD58BF40066;
 Fri, 15 Aug 2025 01:11:02 -0400 (EDT)
Received: from phl-imap-08 ([10.202.2.84])
 by phl-compute-12.internal (MEProxy); Fri, 15 Aug 2025 01:11:02 -0400
Received: by mailuser.phl.internal (Postfix, from userid 501)
 id 8094E2CE0071; Fri, 15 Aug 2025 01:11:02 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3f1fca16-7996-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755234665;
	bh=rjs/V71n+3a48sbczUimLUbQ99An++PfjAuhQIEa13s=;
	h=Date:From:To:Cc:In-Reply-To:References:Subject:From;
	b=qaZHeg2/5a1nlFDrCh+QQq8+2z+k/HIBWZUD4nh0+1i6c37KB42J7MuL6+NCG/t+L
	 Sb4lS+mkZ14VoVX+YlDNVGPRMcWMXRHAGigO6GBs+JD82O/j0LxY54D+zDNDsJYKAo
	 sXevI5VIzQWOLFfl/WV5zUlxyV+wLZ1J0REOzQc8KXCWGG5zo4v1sD8WTb37YmZh26
	 fQvGeRnhGwhiRkaAiLioOMAOHFUuoJ1KDM4vS7BfgMxeW43efHE9YPv+gnweYXLTPM
	 XrWCUBDKKDrqe8banORHuWlWg0uTJGuY3c9EmS4cdtxIgiUKad4TjoW3OXKR2Ys5uU
	 wi4dFrypsvChQ==
X-ME-Sender: <xms:ZsGeaEjCAtEWX1UaHLA2gfColtQZO7w89chtZ2uFaG4vMYHweTmDIQ>
    <xme:ZsGeaNCED0uQ78E9d2j9GAg3NYkGAhxwrM8S6giPlAbcy5DsDkd_hrjkIGTNdnggG
    4eL_xWyjdx6jEOR_bI>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgddugeeftdekucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepofggfffhvfevkfgjfhfutgfgsehtqhertdertdejnecuhfhrohhmpedfnfgvohhn
    ucftohhmrghnohhvshhkhidfuceolhgvohhnsehkvghrnhgvlhdrohhrgheqnecuggftrf
    grthhtvghrnhepffegjefgueegffffjeevheektdekgeevheelvdekieehvdejvdejjefh
    hfelhfefnecuffhomhgrihhnpehkvghrnhgvlhdrohhrghenucevlhhushhtvghrufhiii
    gvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehlvghonhdomhgvshhmthhprghuthhh
    phgvrhhsohhnrghlihhthidquddvfedtheefleekgedqvdejjeeljeejvdekqdhlvghonh
    eppehkvghrnhgvlhdrohhrgheslhgvohhnrdhnuhdpnhgspghrtghpthhtohepfeejpdhm
    ohguvgepshhmthhpohhuthdprhgtphhtthhopehjohhroheskegshihtvghsrdhorhhgpd
    hrtghpthhtoheprhhosghinhdrmhhurhhphhihsegrrhhmrdgtohhmpdhrtghpthhtohep
    tghhrhhishhtohhphhgvrdhlvghrohihsegtshhgrhhouhhprdgvuhdprhgtphhtthhope
    hmphgvsegvlhhlvghrmhgrnhdrihgurdgruhdprhgtphhtthhopegrsgguihgvlhdrjhgr
    nhhulhhguhgvsehgmhgrihhlrdgtohhmpdhrtghpthhtoheprghlvgigrdhgrgihnhhorh
    esghhmrghilhdrtghomhdprhgtphhtthhopehrohhsthgvughtsehgohhoughmihhsrdho
    rhhgpdhrtghpthhtohepghhlihguvghrsehgohhoghhlvgdrtghomhdprhgtphhtthhope
    hkrghsrghnqdguvghvsehgohhoghhlvghgrhhouhhpshdrtghomh
X-ME-Proxy: <xmx:ZsGeaPWPNXdI6VvYib3k9QdMC2XlJbr86LA_KN5YspkDL_EEK6BRlA>
    <xmx:ZsGeaI3d1bh3fFRFl4aiXZUts9ejR-WHFcon7KnhJbC_6nOGWjjn2Q>
    <xmx:ZsGeaIdgKvfZyaCQpAF_MAary9Xg8Dva0Q5zSBAie2gJ8xC3nka9fw>
    <xmx:ZsGeaNVlXDFhOQ5jT6MnFggS_FVesjsSUNJLf3EVumbGV5Io7NaXkQ>
    <xmx:ZsGeaG9LccLFJ2EboOYrfkTWU2yRr6gsoUbWRyvB7Ij-X0QWOgy49Rp5>
Feedback-ID: i927946fb:Fastmail
X-Mailer: MessagingEngine.com Webmail Interface
MIME-Version: 1.0
X-ThreadId: AWyaQ402xWe7
Date: Fri, 15 Aug 2025 08:10:43 +0300
From: "Leon Romanovsky" <leon@kernel.org>
To: "Christophe Leroy" <christophe.leroy@csgroup.eu>,
 "Marek Szyprowski" <m.szyprowski@samsung.com>
Cc: "Jason Gunthorpe" <jgg@nvidia.com>,
 "Abdiel Janulgue" <abdiel.janulgue@gmail.com>,
 "Alexander Potapenko" <glider@google.com>,
 "Alex Gaynor" <alex.gaynor@gmail.com>,
 "Andrew Morton" <akpm@linux-foundation.org>,
 "Christoph Hellwig" <hch@lst.de>, "Danilo Krummrich" <dakr@kernel.org>,
 iommu@lists.linux.dev, "Jason Wang" <jasowang@redhat.com>,
 "Jens Axboe" <axboe@kernel.dk>, "Joerg Roedel" <joro@8bytes.org>,
 "Jonathan Corbet" <corbet@lwn.net>, "Juergen Gross" <jgross@suse.com>,
 kasan-dev@googlegroups.com, "Keith Busch" <kbusch@kernel.org>,
 linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
 linux-kernel@vger.kernel.org, linux-mm@kvack.org,
 linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
 linux-trace-kernel@vger.kernel.org,
 "Madhavan Srinivasan" <maddy@linux.ibm.com>,
 "Masami Hiramatsu" <mhiramat@kernel.org>,
 "Michael Ellerman" <mpe@ellerman.id.au>,
 "Michael S. Tsirkin" <mst@redhat.com>, "Miguel Ojeda" <ojeda@kernel.org>,
 "Robin Murphy" <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
 "Sagi Grimberg" <sagi@grimberg.me>,
 "Stefano Stabellini" <sstabellini@kernel.org>,
 "Steven Rostedt" <rostedt@goodmis.org>, virtualization@lists.linux.dev,
 "Will Deacon" <will@kernel.org>, xen-devel@lists.xenproject.org
Message-Id: <45552b38-5717-4b0c-b0eb-8c463d8cf816@app.fastmail.com>
In-Reply-To: <ccc8eeba-757a-440d-80d3-9158e80c19fe@csgroup.eu>
References: <cover.1755193625.git.leon@kernel.org>
 <ccc8eeba-757a-440d-80d3-9158e80c19fe@csgroup.eu>
Subject: Re: [PATCH v3 00/16] dma-mapping: migrate to physical address-based API
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable



On Thu, Aug 14, 2025, at 22:05, Christophe Leroy wrote:
> Le 14/08/2025 =C3=A0 19:53, Leon Romanovsky a =C3=A9crit=C2=A0:
>> Changelog:
>> v3:
>>   * Fixed typo in "cacheable" word
>>   * Simplified kmsan patch a lot to be simple argument refactoring
>
> v2 sent today at 12:13, v3 sent today at 19:53 .... for only that ?
>
> Have you read=20
> https://docs.kernel.org//process/submitting-patches.html#don-t-get-dis=
couraged-or-impatient=20
> ?

Yes, I'm aware of that section. It is not even remotely close to the rea=
lity in different subsystems.

There are some places in the kernel where you never get any responses.

Thanks


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 05:12:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 05:12:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082795.1442527 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ummk4-0008Ee-PB; Fri, 15 Aug 2025 05:12:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082795.1442527; Fri, 15 Aug 2025 05:12:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ummk4-0008EX-M9; Fri, 15 Aug 2025 05:12:40 +0000
Received: by outflank-mailman (input) for mailman id 1082795;
 Fri, 15 Aug 2025 05:12:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=VEq/=23=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1ummk3-0008EM-9W
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 05:12:39 +0000
Received: from mail-ej1-x631.google.com (mail-ej1-x631.google.com
 [2a00:1450:4864:20::631])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7602beb3-7996-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 07:12:38 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-afcb78e70c5so264098166b.1
 for <xen-devel@lists.xenproject.org>; Thu, 14 Aug 2025 22:12:38 -0700 (PDT)
Received: from ?IPV6:2003:e5:872d:6400:8c05:37ee:9cf6:6840?
 (p200300e5872d64008c0537ee9cf66840.dip0.t-ipconnect.de.
 [2003:e5:872d:6400:8c05:37ee:9cf6:6840])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afcdce53f2bsm50564066b.4.2025.08.14.22.12.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 14 Aug 2025 22:12: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>
X-Inumbo-ID: 7602beb3-7996-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755234757; x=1755839557; 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=McLdgNQ0UHTP+K3nrEWRJGT+gcj5jy8rw3LhbVPqvsA=;
        b=QyuL0o3xgzp9dx43ttEHAVta+ZutkoTpwg5hf1OPOGb9OVilOKLtuh25CNr9ywQ1jv
         A23/Ae8OloDZ+JCt2z6AcBBH2vnkEN+mEbyDCZjFwmEL9L+KIOtQFH6cUkC5ne76/iuL
         SllEQ2m9B6Wqacg1UTELw+80Lv7WPEBcY0jRnzhYMPX/lXkkGCtZq1KSoVZhYLi327bV
         6sbgaPjQXbAYHlm+XRcs2MDurt+Qrh2rxNVVlAsueauGuko4g/aeO0ezCsDD/D2EWlKI
         CB/nsVjmB6GmoSuXcIRb8WWsdye65l0ULSLX029Y9LLpHkxL10Fmuri8D4rM24gtcbeV
         LxbA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755234757; x=1755839557;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=McLdgNQ0UHTP+K3nrEWRJGT+gcj5jy8rw3LhbVPqvsA=;
        b=IFcdVfGaDNN4trXRZnkrrE69TsE4WAi1ikR8yg610F+6R42frIeT48+wbHQrp2LIeV
         q4XdlK/tIQCIbpKI3rg8c1qQ8kSRf0oZlWA847wFYQQ7ZhjiXTw6a3FONHccOvgXSLmR
         8dIYGWRdT2ZcX88+/X9MMK9MbyVBIljbXnc+6oXTZwLrVvQan2AsxsGKAOJCypDKejkw
         eFkH9ShFOQzYGjNKtCWkYDR9Fmewav9MLbfsPb/jbNR/RgEo4xcOT09xWDkF1adn0/3Y
         w9EznQuePuAA0rzkvD1qDW9HVUbp70iN9mABuWjmf/+PojxUharHWh4qlvepay2/O9+C
         T2cQ==
X-Forwarded-Encrypted: i=1; AJvYcCWnHwBGThL9eaVe4OSNeQ+3WtWL37g8jFaLBdM3ofZ6GG5X0VLTwSxqxmS1QvB/yIP2iinBcajLMW4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzeszmIkPl5HrQyvmVNXupkzAzoR1pW4FwiHKSJ9kGRf79UjhW8
	Ugi0g/xUX9HQgXPjiGYlFvXCCFUN4cYHsq+tvTxyhP2EyPsnZvuSAB+0jMYsYQJjd8NVvJPmyMZ
	EUcwJ7aE=
X-Gm-Gg: ASbGncvVAQa+ikQ3Xi99IW6wa/wXBlhe1VhO+At6a5YrtwXSFA2qFXv4wBSLN5PnH8q
	wGu4xpyZQ5RFwiNeBtv8paaXo1mBpXq4wcXDNca6mQi/UWfFDc8cCkCivYdAxVrGeYGi3YqzvgC
	Xo/HRmAXVhMKte8dc5HmZUBiUa0GyONBrw6EfH8kob5slrCXj0gOMbMYe3z1eVcgIHxXXrGzBxR
	uFS8BF8inPoIGdN06v5o148y31/MWMCmbWkCHH4vnKHpHAH4K/552N5iiWdSJZNeDv2WsIfG+/c
	snxWxwkbrn1Ms/92RqFswfXlLTRoOSi7lmnl4Cpn8XtpUfW2Bjty5UrqNShf+8h653ba5PgLBVx
	ihBp+xW6FAMGMUu+5Fv+EeZ5ixdcJ/SkctM5LvVatxBEZbtQsfXT5bhss3osUtdj4PAht6Nngjr
	bAXpKRSBO0hUd85m7zwF4jI7xq73lRcOz/UrG5tjar36vhHSTm6nI9sVLSDT7LGfDRhmNx
X-Google-Smtp-Source: AGHT+IH6RL+UYk9eXXiqf/2WHHs101Br/d9JtfFbTA1uN2J85tzv604BGxlwSoNOiF9FL27kkFNuHA==
X-Received: by 2002:a17:906:6a0f:b0:af9:67ef:96d5 with SMTP id a640c23a62f3a-afcdc32cc31mr62306866b.52.1755234757442;
        Thu, 14 Aug 2025 22:12:37 -0700 (PDT)
Message-ID: <3823aae9-34cd-430f-8cf5-873d354c52ac@suse.com>
Date: Fri, 15 Aug 2025 07:12:36 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/events: Fix Global and Domain VIRQ tracking
To: Jason Andryuk <jason.andryuk@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Chris Wright <chrisw@sous-sol.org>,
 Jeremy Fitzhardinge <jeremy@xensource.com>
Cc: stable@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org
References: <20250812190041.23276-1-jason.andryuk@amd.com>
 <a4b5fd6b-80db-4b58-b3e8-5832e542d64c@amd.com>
 <6bf9bac0-a394-4064-bb5d-924f5a920e7e@suse.com>
 <238b2fd0-33ab-4279-9205-de58332fa944@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: <238b2fd0-33ab-4279-9205-de58332fa944@amd.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------qv29XdA3S4CPXDXpJem8TU1B"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------qv29XdA3S4CPXDXpJem8TU1B
Content-Type: multipart/mixed; boundary="------------NWazRfyTV0cxBaTWpf0ZP2x3";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Jason Andryuk <jason.andryuk@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Chris Wright <chrisw@sous-sol.org>,
 Jeremy Fitzhardinge <jeremy@xensource.com>
Cc: stable@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org
Message-ID: <3823aae9-34cd-430f-8cf5-873d354c52ac@suse.com>
Subject: Re: [PATCH] xen/events: Fix Global and Domain VIRQ tracking
References: <20250812190041.23276-1-jason.andryuk@amd.com>
 <a4b5fd6b-80db-4b58-b3e8-5832e542d64c@amd.com>
 <6bf9bac0-a394-4064-bb5d-924f5a920e7e@suse.com>
 <238b2fd0-33ab-4279-9205-de58332fa944@amd.com>
In-Reply-To: <238b2fd0-33ab-4279-9205-de58332fa944@amd.com>

--------------NWazRfyTV0cxBaTWpf0ZP2x3
Content-Type: multipart/mixed; boundary="------------HJPRokk2UZjLy6HwgH9d4q8C"

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

T24gMTQuMDguMjUgMjM6MDQsIEphc29uIEFuZHJ5dWsgd3JvdGU6DQo+IE9uIDIwMjUtMDgt
MTQgMDM6MDUsIErDvHJnZW4gR3Jvw58gd3JvdGU6DQo+PiBPbiAxMy4wOC4yNSAxNzowMywg
SmFzb24gQW5kcnl1ayB3cm90ZToNCj4+PiBPbiAyMDI1LTA4LTEyIDE1OjAwLCBKYXNvbiBB
bmRyeXVrIHdyb3RlOg0KPj4+PiBWSVJRcyBjb21lIGluIDMgZmxhdm9ycywgcGVyLVZQVSwg
cGVyLWRvbWFpbiwgYW5kIGdsb2JhbC7CoCBUaGUgZXhpc3RpbmcNCj4+Pj4gdHJhY2tpbmcg
b2YgVklSUXMgaXMgaGFuZGxlZCBieSBwZXItY3B1IHZhcmlhYmxlcyB2aXJxX3RvX2lycS4N
Cj4+Pj4NCj4+Pj4gVGhlIGlzc3VlIGlzIHRoYXQgYmluZF92aXJxX3RvX2lycSgpIHNldHMg
dGhlIHBlcl9jcHUgdmlycV90b19pcnEgYXQNCj4+Pj4gcmVnaXN0cmF0aW9uIHRpbWUgLSB0
eXBpY2FsbHkgQ1BVIDAuwqAgTGF0ZXIsIHRoZSBpbnRlcnJ1cHQgY2FuIG1pZ3JhdGUsDQo+
Pj4+IGFuZCBpbmZvLT5jcHUgaXMgdXBkYXRlZC7CoCBXaGVuIGNhbGxpbmcgdW5iaW5kX2Zy
b21faXJxKCksIHRoZSBwZXItY3B1DQo+Pj4+IHZpcnFfdG9faXJxIGlzIGNsZWFyZWQgZm9y
IGEgZGlmZmVyZW50IGNwdS7CoCBJZiBiaW5kX3ZpcnFfdG9faXJxKCkgaXMNCj4+DQo+PiBU
aGlzIGlzIHdoYXQgbmVlZHMgdG8gYmUgZml4ZWQuIEF0IG1pZ3JhdGlvbiB0aGUgcGVyX2Nw
dSB2aXJxX3RvX2lycSBvZiB0aGUNCj4+IHNvdXJjZSBhbmQgdGhlIHRhcmdldCBjcHUgbmVl
ZCB0byBiZSB1cGRhdGVkIHRvIHJlZmxlY3QgdGhhdCBtaWdyYXRpb24uDQo+IA0KPiBJIGNv
bnNpZGVyZWQgdGhpcywgYW5kIGV2ZW4gaW1wbGVtZW50ZWQgaXQsIGJlZm9yZSBjaGFuZ2lu
ZyBteSBhcHByb2FjaC4gwqBNeSANCj4gY29uY2VybiB3YXMgdGhhdCB0aGUgc2luZ2xlIFZJ
UlEgaXMgbm93IGluIG9uZSBvZiB0aGUgTiBwZXJfY3B1IHZpcnFfdG9faXJxIA0KPiBhcnJh
eXMuwqAgQSBzZWNvbmQgYXR0ZW1wdCB0byByZWdpc3RlciBvbiBDUFUgMCB3aWxsIHByb2Jh
Ymx5IGZpbmQgLTEgYW5kIA0KPiBjb250aW51ZSBhbmQgaXNzdWUgdGhlIGh5cGVyY2FsbC4N
Cg0KVGhlIGh5cGVydmlzb3Igd291bGQgcmVqZWN0IHRoZSBhdHRlbXB0LCByaWdodD8gU28g
aW4gdGhlIGVuZCBubyBwcm9ibGVtLg0KDQo+IEl0IGxvb2tzIGxpa2UgWGVuIHRyYWNrcyB2
aXJxIG9uIHRoZSBiaW5kX3ZpcnEgdmNwdSwgc28gcGVyLWRvbWFpbi9nbG9iYWwgc3RheXMg
DQo+IG9uIHZjcHUwLsKgIEJpbmRpbmcgYWdhaW4gd291bGQgcmV0dXJuIC1FRVhJU1RTLiBm
aW5kX3ZpcnEoKSB3b3VsZCBub3QgbWF0Y2ggdGhlIA0KPiB2aXJxIGlmIGl0IHdhcyByZS1i
b3VuZCB0byBhIGRpZmZlcmVudCB2Y3B1Lg0KDQpXZSBwcm9iYWJseSB3b3VsZCB3YW50IHRv
IG1vZGlmeSBmaW5kX3ZpcnEoKSBhbmQgYmluZF92aXJxX3RvX2lycSgpIHRvIG5vdA0KcmVz
dWx0IGluIGEgQlVHKCkgaWYgYSBub24tcGVyY3B1IHZpcnEgaXMgYm91bmQgdG8gYW5vdGhl
ciBjcHUuIFRoaXMgY291bGQNCmJlIGRvbmUgYnkgcGFzc2luZyB0aGUgcGVyY3B1IGZsYWcg
dG8gZmluZF92aXJxKCkgYW5kIGxldCBmaW5kX3ZpcnEoKSByZXR1cm4NCmUuZy4gLUVFWElT
VCBpZiBhIG5vbi1wZXJjcHUgdmlycSBpcyBmb3VuZCB0byBiZSBib3VuZCB0byBhbm90aGVy
IGNwdS4NCg0KDQpKdWVyZ2VuDQo=
--------------HJPRokk2UZjLy6HwgH9d4q8C
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-----

--------------HJPRokk2UZjLy6HwgH9d4q8C--

--------------NWazRfyTV0cxBaTWpf0ZP2x3--

--------------qv29XdA3S4CPXDXpJem8TU1B
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/Ey8FAmiewcQFAwAAAAAACgkQsN6d1ii/Ey9U
dwf+JQ8ngZHuOyMPboD3OIdWJ5UeTzUd+CWSxX/m1aJo/f3gK1XCtKjF1ibbb0UILsS0EBkW33DP
WE0oZ6j/o6JgNy0VCaRO6Q46+5J4wPHlQ1GcPwWNTO/rQRznf3DQYbzTbnD1mnoGbP7as6nJFDVZ
bvVKSA9X/tk7cE0G0o1ksdEak3ZXXK3SkDkjUbuXl8P8emnwAqpLlekIxqocNGsJTTKx3NRkZ3g0
8GRPdGsxlxb4G3kD/rqlE35pK9owUtyzFkUAYFD6cypTEAGgEQLB97g0ENPTWh5GaBeYlS3lpAQG
yNhrN7dYqAAjX1MWmK1ShMI+AI522nM7eofBE78c1g==
=WKZ2
-----END PGP SIGNATURE-----

--------------qv29XdA3S4CPXDXpJem8TU1B--


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 07:00:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 07:00:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082826.1442536 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umoQT-0004zO-7H; Fri, 15 Aug 2025 07:00:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082826.1442536; Fri, 15 Aug 2025 07:00:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umoQT-0004zH-4T; Fri, 15 Aug 2025 07:00:33 +0000
Received: by outflank-mailman (input) for mailman id 1082826;
 Fri, 15 Aug 2025 07:00:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9KPM=23=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1umoQR-0004z6-Tv
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 07:00:32 +0000
Received: from GVXPR05CU001.outbound.protection.outlook.com
 (mail-swedencentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c202::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 827ce42d-79a5-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 09:00:21 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by DU5PR03MB10444.eurprd03.prod.outlook.com (2603:10a6:10:528::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.18; Fri, 15 Aug
 2025 07:00:18 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9031.014; Fri, 15 Aug 2025
 07:00:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 827ce42d-79a5-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Mrxp/5yDEzS9V9cTafEtqXeg2ZFLEC9VqTfkdMrEaaYQDQ5BkfHD9Y9v7NTmv7338dYWBdIkstrtYr1C6dLfStc3cQjKYpg+QruYsOR5oBm7so3VkJd0iG2V5t6HJasA+g0ybr48Sf3GuHbJFgHG9hmlAOI+aprmg4IC2/zOgCGlsrWUuf6T3FMMJxG8xZrzHCQR+p/pMrgxZvoRA8+uolgPipY40uWLpU0wuzisMCSY8kWvu/XXvbytCXj0s0dLOGXwrUtU3DtzxF+IYVrglN8BvUjfyBrGCIDcPpRpsZGabFBL4FsiNcbZSAaHq9KrJRshmSkg3xeXxC0n8/bb1g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/bE8XFLro+FXsYjpGK8BMb83wJUXpukyPio7i5EsPgc=;
 b=OU3fVnPmqfwWGxxM68Cv3DdBtG0wO8SO0ggKRwEzA8vcbD3JqgbqkjbjLF2pZYU/XoAZgRQ+a2CSw3vwZUcr+VJwfiBrnSySJdFotFLKBH4NolxCa9Ef8RRHK2roDPlVjfExgVXrlMlDk3TUuEvP0cvi0XfiPs17YlLCyHBeOzDQQB6vUAEB572yvwQdPRA/l2KGo2M7ttr97P2aFxJaWwkwXyORuQwi3naz1SNyM5FJU2KKt084bMTterGpvV5Jp+2stsJ2+y/FpHyeGDPxbD8A5Ut8Xuesx6DXvPbVFEqUdCAM2QeN4q65cnInnK921LtgvCuVt3bnQB4w0TxnzA==
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=/bE8XFLro+FXsYjpGK8BMb83wJUXpukyPio7i5EsPgc=;
 b=Ll4gNRsuAKYdYWCLJliLDMEu0I/FdHbAnxuGyf1XQp/iF7twUR+gUYjhPWBSXGdQC6QDMyyXGOpDRnaeB+9jROLWTtQ5uUwMhXVM+XNN0ehzibAh7OIahRvZFPcN+7uDaKT/CHnEhqclz28LrvNYIeSd0uT43KmSKqwCti+HHkht51Su3GXzVRjbwjubwJvfeJpvVWSTmNBvBpWZK/uS3rXZmUgPYe1m89Zl5HuiZbjppRV26rxbSpqV6oYOEbKrdr1dBrdz0YLySMne5PZnEFS6bpS9B/tkNrp2VCMiM5BDAx+VZ2XV88CA9Rg7B6cPAaqZzGMgX+mrWTcR5UjoKQ==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH] docs/misra: fix sphinx-build issues
Thread-Topic: [PATCH] docs/misra: fix sphinx-build issues
Thread-Index: AQHcDbJCdYlsiZdfl0mX5ViIXi0+6A==
Date: Fri, 15 Aug 2025 07:00:18 +0000
Message-ID:
 <fb809a94e8a50bd3a59aa47ee1832c61af8a9f40.1755241166.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: GV2PR03MB9572:EE_|DU5PR03MB10444:EE_
x-ms-office365-filtering-correlation-id: 3781a9d2-0464-4b02-6aef-08dddbc96504
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|42112799006|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?InnQCGK1LgjTxv4tIgUDoSVYbxv6DqqzAZ6NTQmjVilMfGjOqoKvCPOiHe?=
 =?iso-8859-1?Q?4jnpEI8CzQReLhlEhkfErUTwIT9fMhLcVxeLmCVnqvzyEQzDdBYzXxMlHT?=
 =?iso-8859-1?Q?n97vKW7IniQtlWJRZsEf1iabJjZNEBN4Ol7KN3lc/9KcPGBG4gbNSHgLZq?=
 =?iso-8859-1?Q?Tu3lW1JGJtQFvxCoc4wCOhcBIf9jZOYVeGWDVwNQtnQV7ijeco+iomLiAA?=
 =?iso-8859-1?Q?HSRpGdb7DSKTe7YtO8EsNOFrltQ6BzQRazlc4g1CkmIhXXiy2KNow/lLeg?=
 =?iso-8859-1?Q?fFT56R4m4H08s85o7vbWMywAdYZsOtTat7Nx+HA/RgETrQQvlUA/axKICT?=
 =?iso-8859-1?Q?H6Adf7H8ng/LiYQ0itvuL2AZh4ZO1POPqfQ6WAi7ukDxEI8s+MGrHFd+Nn?=
 =?iso-8859-1?Q?/f/67iaeUr2FlAbamSPHRPCrKODkvJc991xMXEJRazcxEYgBRswE0vlo+C?=
 =?iso-8859-1?Q?pMmmbI2n/acFkSqazAizWIexogFy3rJr0T58ufXymx6wWR3OqKXwId7+jK?=
 =?iso-8859-1?Q?f2kct+6pdetSvEazVvhHLjq0b1b4nGsQLHCuT+oHwDMMMh5x1NWOoU8boQ?=
 =?iso-8859-1?Q?QrrkBqKYX6HMhYX4i+eq/sJpA66PsyX1jafc+lgnS4w4lYLoiXO7LFolSl?=
 =?iso-8859-1?Q?E2Fv2LX3eLjkJS9eV2+9zEJhfip4CSPLJKXLMq85D0ixRR3QBj5LeUrTuH?=
 =?iso-8859-1?Q?LtfwZiYq2F7WRq79vhx0Mst+meB661cTUFxl7tPNm2oxPZEqEF85aBiWyo?=
 =?iso-8859-1?Q?9U7cSoCuoESWfKrzTqu9KQboQ5bz8RGJQWfSYo9sh3lOf1ciVFKcKFTclP?=
 =?iso-8859-1?Q?zUlNvxt5+P45X/RHaie6dyvO35/mCtVqUkn07QzvxHSkna1u3lk7at0GYm?=
 =?iso-8859-1?Q?YiWpcf6SmuqH4eaOusknyRetV4R7AAk8FSdBC/eM0iY6YWDRokNuK0iIfO?=
 =?iso-8859-1?Q?K4Y301Mfjos7VgH6Ou9SRW3V9JT2AL1mxrS+iQ2HXNoQGUKfilUsiA/opu?=
 =?iso-8859-1?Q?oC31REBDLwv8vXCS/A0EZybNrmOH672ncmjrnCJFUbJLsOtEGHIXICGVE6?=
 =?iso-8859-1?Q?G5Wstovz1fVBQi1WpYTbvqB32ctPfjUU7Q2D7KH4C0z5K3xwKfOOpULcw5?=
 =?iso-8859-1?Q?6o+Jf+Gx5aYhoaixX4aU40MC97Ge9lHvdq0zz31VUjUBTvJV/bLP4442OO?=
 =?iso-8859-1?Q?x5JHJqltczH3JcLM2818AgJpsHqj5SLtJaVT4zcIZcVHbd9Vqk/sT8ywTJ?=
 =?iso-8859-1?Q?TwYKqRnR13UVjZQtoEqS8593M6y2/7i9fRY95K/FYAFOkMWmJ1am9tJrmE?=
 =?iso-8859-1?Q?VEGh9RjFhSt+bltoWf48UEtSiBiO1C3a7VYEV5fGWXG6BspMct9skjsFiW?=
 =?iso-8859-1?Q?0oAaNp82p49Bk1VVOe2yMwhfL9kzk2LSeK13HtjVTkJremEUKFCgPfpNfk?=
 =?iso-8859-1?Q?UJaxlOASckGnJgL3L6VXf6WCH9UekIOdNd2l65H6qwLTefxzHWOC+gSyeQ?=
 =?iso-8859-1?Q?uv/6pM7o+q2hBeqXJxRZPl9HwwXXDNppLrurIcquIyUA=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(42112799006)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?1Q8fa4eSW9hMCKibSdxGBV/3mxvkn5Cxi/M7+2phF4bVWQ6zB4TPyK9Gh+?=
 =?iso-8859-1?Q?sREyCKNx/MgtQmc1qpVRD+9vv0wKoPvfoAVxvSi9hpVKjhNZVMUx10CPXn?=
 =?iso-8859-1?Q?dbU8rJ7mOR8X4eQV2P0cX4VV3XuD6y1uE3dvl/sDKbl2uLS8mgq62R5sJ6?=
 =?iso-8859-1?Q?g+QU1mEfcUQPS5350mOw+3XeTXc5n0xxFZTdPu0e7r42Gn84e3WkGjKTVS?=
 =?iso-8859-1?Q?svVD6VEeGXjwLRVdXvmjeipug8Ry2I3SktVEotItwYDYYenmdjRXNnOVPK?=
 =?iso-8859-1?Q?XoqwgSlZXOQEf98Jq7hEuieTRHGDuMW1aPRnx9ClXTqVTSaGbP8AYnL0BM?=
 =?iso-8859-1?Q?ylUyqculGeU9ib7GN8Gkuvgr4Y+6zRcNV/QTJX8mYnpB6ZKR51mS2aITHU?=
 =?iso-8859-1?Q?HUsG+vqW6oeAOA9+d1liqVQp5au9leFxriD3MLWsVAVMn6uD6OumnlfBAI?=
 =?iso-8859-1?Q?HFg7eQlmcJSK3PhfFnDqe6BKYoPZMpkDa+twGGIvGJbTYkQtXPRteJJtmX?=
 =?iso-8859-1?Q?zUTh3DUBJF+f0CZX+r8R/QsBsIsil79u4TfnhziCp3zk2SrL4+SqXx7wXH?=
 =?iso-8859-1?Q?dX46Lx9aLKiYU7LfSnZrLjOna5cssaELsbNN0ok597C2fGuYirFz//DbkA?=
 =?iso-8859-1?Q?vYNOAymTl5R91CPZbbcjrFIe5PupctRNNYBFI8zHA3fO+kExAnzn0yj9Iy?=
 =?iso-8859-1?Q?HtZue8ve7eeFNGnNcD+3tCYclrbKs4WZgmospJz+wdtTJkLED4FVd4cbpU?=
 =?iso-8859-1?Q?REfBSASkx48VcqiW6pdqczdzT3ulGz0eVEgDbGd1EdWMys2xoXzxc17r/t?=
 =?iso-8859-1?Q?Jzu7S0SzMIztTLMYWopYDaZRx4T6x+asG2BHVAaJKE0dBu0e4FDtMDTJZV?=
 =?iso-8859-1?Q?EXvGLbdLfdTjbRDWo3ZFYs6SwdtWhtzA31wLbe0Lv9dkMMptCyDRJnhmvO?=
 =?iso-8859-1?Q?1vkcnIDTvkYKVbu3FUfr8Lj898YDVYgyPDSaEbhLmoSoop7ohRvIeoeATG?=
 =?iso-8859-1?Q?3cuosy34ToH+cwFetWxASmm59ex2YFkDUCK+JOe8gGp4NywXDIvQjUAzX2?=
 =?iso-8859-1?Q?UuXEc1VYx+P8oQFxDJsTMD6hzrqYSK2rnrmBdxKuwTl/DwsDhCQRlekTYl?=
 =?iso-8859-1?Q?RA/HBPqalHCWHCqoa8c4Z6aFs4J2RRf8WPTBr7p4yjUyXsGXeabTS0Fwfw?=
 =?iso-8859-1?Q?HovAgB/3/Y99NTlbycl7oUR989XpELM7ze4PfA/gxtWXtsCmkayzJOwOnK?=
 =?iso-8859-1?Q?+EGIDvF9p6/j0M8SXp3CJn8wB4k6uZdzpFqQ8rcCPGCZuHcl/0E1pob5xP?=
 =?iso-8859-1?Q?JqYg1cqAEHVkylo3xfjm1kzLqQbBEK2OKlXbYG37k5U6Tbr2BXk3350IW0?=
 =?iso-8859-1?Q?ktUHB1vtZQXveBru/U+1YlCEL+Wl0aoeA7d7JNNAGGZpJNIkk+fDpajSrO?=
 =?iso-8859-1?Q?klCPkWp5eFknqedgk96VbpXr+i91n9XpZ/XqvajtsiKuzY2lNgQ5dcretX?=
 =?iso-8859-1?Q?neoL9j9k4rxAC1QKGkwE3h/yT9SzQPBEj6gCqKvjoWilrdOSmvqbTSko3y?=
 =?iso-8859-1?Q?qe00oUz3afvrs3ZcahEO+rNk8cCddAHP5hlvxNKAlsZZSIn5AEgwlPMTx6?=
 =?iso-8859-1?Q?rpeZgmfc30D7HkuwqpML9BkdMXWimjKcGeT8VROPMhpaa8tXMLWlZHmA?=
 =?iso-8859-1?Q?=3D=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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3781a9d2-0464-4b02-6aef-08dddbc96504
X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Aug 2025 07:00:18.5917
 (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: Cqw7T/sgHHkkHXaxpAquSYmGKoXjcEek2/PJJBQ/zjcSK1/8ZGqoZMcq+jwaCRlr7YBaCQAOJNAQ4DaUafQyF6UDXGvm0Qa+d4+W85BC1vw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU5PR03MB10444

Fix the following issues:
1. xen/docs/misra/deviations.rst:90: WARNING: Inline interpreted text or
phrase reference start-string without end-string. [docutils]
2. xen/docs/misra/deviations.rst:54: ERROR: Error parsing content block
for the "list-table" directive: uniform two-level bullet list expected,
but row 6 does not contain the same number of items as row 1 (2 vs 3).
* - R2.1
  - Calls to the `__builtin_unreachable()` function inside the expansion of
    the `ASSERT_UNREACHABLE()` macro may cause a function to be marked as
    non-returning. This behavior occurs only in configurations where
    assertions are enabled. To address this, the `noreturn` property for
    `__builtin_unreachable()` is overridden in these contexts, resulting in
    the absence of reports that do not have an impact on safety, despite
    being true positives.
    Xen expects developers to ensure code remains safe and reliable in buil=
ds,
    even when debug-only assertions like `ASSERT_UNREACHABLE() are removed.
3. xen/docs/misra/rules.rst:127: WARNING: Inline interpreted text or phrase
reference start-string without end-string. [docutils]

Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
 docs/misra/deviations.rst | 3 ++-
 docs/misra/rules.rst      | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
index 3c46a1e47a..2be49076e1 100644
--- a/docs/misra/deviations.rst
+++ b/docs/misra/deviations.rst
@@ -95,7 +95,8 @@ Deviations related to MISRA C:2012 Rules:
        the absence of reports that do not have an impact on safety, despit=
e
        being true positives.
        Xen expects developers to ensure code remains safe and reliable in =
builds,
-       even when debug-only assertions like `ASSERT_UNREACHABLE() are remo=
ved.
+       even when debug-only assertions like `ASSERT_UNREACHABLE()` are rem=
oved.
+     - ECLAIR has been configured to ignore those statements.
=20
    * - R2.2
      - Proving compliance with respect to Rule 2.2 is generally impossible=
:
diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst
index 6812eb7e8a..382331447e 100644
--- a/docs/misra/rules.rst
+++ b/docs/misra/rules.rst
@@ -124,7 +124,7 @@ maintainers if you want to suggest a change.
            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_UNREAC=
HABLE()'
+         - Functions that are no-return due to calls to the 'ASSERT_UNREAC=
HABLE()'
            macro in debug build configurations are not considered violatio=
ns::
=20
               static inline bool
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 07:10:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 07:10:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082843.1442547 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umoZV-0005kK-2y; Fri, 15 Aug 2025 07:09:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082843.1442547; Fri, 15 Aug 2025 07:09: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 1umoZV-0005kD-01; Fri, 15 Aug 2025 07:09:53 +0000
Received: by outflank-mailman (input) for mailman id 1082843;
 Fri, 15 Aug 2025 07:09:52 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ZXrH=23=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1umoZU-0005jr-3W
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 07:09:52 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d49be02e-79a6-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 09:09:48 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id E0ED84EE0742;
 Fri, 15 Aug 2025 09:09:47 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d49be02e-79a6-11f0-a328-13f23c93f187
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=1755241788;
	b=idRZ+J/Ymvkbav0qXAOUvaNWsUx2sHuBUz57PGFgcMp71uleFyVveQWS0+M5yFSMWBoF
	 ztkniDOkAP+9mGdjLz5QyyBaDFr0oXupOmVj2qDvArYc1eJ3ffz6/N4+6LrSvVEQjgteO
	 r2rqp0+LhshcAZQ+S8z66oUpZRb5hQ1WlrraJ/gUhCGFQnL9sxfEzz88p+QwAilJbxXkZ
	 Ysajn8O3AHpl64yIZNkz5lEaye4L+XgOgCKhEPvwW6i9KV9+VZfFgxUezgNq/W+jdHl0v
	 jJl/JpF0sxFHB5Sw/Plm61ZJ06h4Q+sE7mOlhLRI6Do2Nj403Wbrstzc1A5mgONXVidZd
	 v0vxXcPFqR/VvIGy7xuC6q2ptswv+V+gQzDE+o9BacUr3Xpzk4+PcKmOGoDtbdX5RGfnk
	 eAz0UWao1A+3+734ksMDN5gCnj3Re4uc9Esbctw+V7Mr0i4vzSMltwH2r1+ApBPWRnDC+
	 1NNwprzumSDq9sU0O4610ImMced/aIpomOrt1Yby6sya4ml+IT6nKljYzd0PIfItLZXx6
	 DNsIkyhX5PTGeMQmn07zzTgPYwrNKu+qe01eIeSK5ugdiQ1SZkJ91hjRGXU9/orexI/CQ
	 bWHSjD2SG2dsgniIABvgZm7eLWVxYnNEvmixg7p1vVAi7i51DdbBu/UDkC4UHNg=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1755241788;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=KFiRFFK7OFgSMVoQTACXyR8v6u0l5skmrJA/2+R6tUo=;
	b=hPoiQZtspB6O70lvz9BzaMLYnYHeg0kSyR1QXs1yymbf63FkkvMlGmP6eznkYezyDZNr
	 T+FtKkzgPhfOyPzCHTHI5WrRAHDWVmeqNz73koQTbvEjcEc71FaoVLVEfNrlmDWzJZ6fV
	 9z8r0rAFy213TPbE+zU2HVdODNEEnZyUaiW2Cf5bBuI6xUlxrZC3wgFeRi+Xb9KH74gNl
	 Ym6PqvubRSkXtxLCJUAfoGkMJSeXt2KjLTxpTS4QgLAVONTi7qsiSQajRe2n9Z5qCq0Ju
	 xy7TXfYQODAZBwBKjHn6hmTC5en+H2cLr5vNGgRBg3IJDyCKdOSsRer7uUgldrf53YuL/
	 jBbCENZGSuC8qDosV6Ox8akeM4NlESUQHlNO2Co0D6pJpuyTVrza54CT2Do7nf8aqoj4F
	 GfUDQ+6CETy1oCsnrDKa134WA/sNICZKllUitpe2FA2geikPxLRW0P89uH4ebLylPgzbi
	 2+OMBN+PeNMFUauPSju9j5z9C2qiB/4MARoGKweNm6FHjQsV8TsbuKvrJvIoGCFBc1pfO
	 RWmYfqtBdmoU5C2XcLai0qR8ucO9bqN20+x8Y2Dljh+oCCehqsGKXPT7maZy3Hoi+NWvc
	 nrmhm2oIDB+8PNLUw5xNvYMYTWN+FU5QlYGHAqRZxVIXNKHACoS9/vua8mTJ3ZI=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1755241788; bh=hgtYGugSWg0TBHG86mCkJsmhYi3+GD9ttE0Cwa5tG80=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=qh+bRco20XRD5YQhG3oKpt2CD65NEB81IUm7LvRzXUG00YHPBeFB1uryLXyDg5rVn
	 MLxqEaXqJYcoGOQmrEFSiGeDj98wHXRLWA7nPEnik/SJTa2Js1Fzki96GfPAELaRNi
	 gKAjEQs3LbsTPE3flz/2Gt1ZqZXqgIzYQ3yTZukOA9LS8hww1/YbXmjUbg+JWba0Ku
	 lN2Xfdt6ooBuAiiNs6S5CTGaXhRh6sWLHJmiLBe635xkh1+B7aHop2ZMzqQYwLxQxk
	 A90T1xM8HvZ3ltkHO/aFvFwGZQ/TRAql5KXYeD6mWys1IDbRIcdDsA4ys7QsNtCPE6
	 085a5Com2AqRQ==
MIME-Version: 1.0
Date: Fri, 15 Aug 2025 09:09:47 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] docs/misra: fix sphinx-build issues
In-Reply-To: <fb809a94e8a50bd3a59aa47ee1832c61af8a9f40.1755241166.git.dmytro_prokopchuk1@epam.com>
References: <fb809a94e8a50bd3a59aa47ee1832c61af8a9f40.1755241166.git.dmytro_prokopchuk1@epam.com>
Message-ID: <c7d9513dfc7201c5d3c6e6cbd99db481@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

On 2025-08-15 09:00, Dmytro Prokopchuk1 wrote:
> Fix the following issues:
> 1. xen/docs/misra/deviations.rst:90: WARNING: Inline interpreted text 
> or
> phrase reference start-string without end-string. [docutils]
> 2. xen/docs/misra/deviations.rst:54: ERROR: Error parsing content block
> for the "list-table" directive: uniform two-level bullet list expected,
> but row 6 does not contain the same number of items as row 1 (2 vs 3).
> * - R2.1
>   - Calls to the `__builtin_unreachable()` function inside the 
> expansion of
>     the `ASSERT_UNREACHABLE()` macro may cause a function to be marked 
> as
>     non-returning. This behavior occurs only in configurations where
>     assertions are enabled. To address this, the `noreturn` property 
> for
>     `__builtin_unreachable()` is overridden in these contexts, 
> resulting in
>     the absence of reports that do not have an impact on safety, 
> despite
>     being true positives.
>     Xen expects developers to ensure code remains safe and reliable in 
> builds,
>     even when debug-only assertions like `ASSERT_UNREACHABLE() are 
> removed.
> 3. xen/docs/misra/rules.rst:127: WARNING: Inline interpreted text or 
> phrase
> reference start-string without end-string. [docutils]
> 
> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>

Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

I recall that Andrew wanted to add a doc build test to avoid introducing 
warnings. On that front, with my Sphinx version I also see this build 
warning:

Running Sphinx v8.1.3
WARNING: Calling get_html_theme_path is deprecated. If you are calling 
it to define html_theme_path, you are safe to remove that code.

> ---
>  docs/misra/deviations.rst | 3 ++-
>  docs/misra/rules.rst      | 2 +-
>  2 files changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
> index 3c46a1e47a..2be49076e1 100644
> --- a/docs/misra/deviations.rst
> +++ b/docs/misra/deviations.rst
> @@ -95,7 +95,8 @@ Deviations related to MISRA C:2012 Rules:
>         the absence of reports that do not have an impact on safety, 
> despite
>         being true positives.
>         Xen expects developers to ensure code remains safe and reliable 
> in builds,
> -       even when debug-only assertions like `ASSERT_UNREACHABLE() are 
> removed.
> +       even when debug-only assertions like `ASSERT_UNREACHABLE()` are 
> removed.
> +     - ECLAIR has been configured to ignore those statements.
> 
>     * - R2.2
>       - Proving compliance with respect to Rule 2.2 is generally 
> impossible:
> diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst
> index 6812eb7e8a..382331447e 100644
> --- a/docs/misra/rules.rst
> +++ b/docs/misra/rules.rst
> @@ -124,7 +124,7 @@ maintainers if you want to suggest a change.
>             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()'
> +         - Functions that are no-return due to calls to the 
> 'ASSERT_UNREACHABLE()'
>             macro in debug build configurations are not considered 
> violations::
> 
>                static inline bool

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 07:20:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 07:20:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082857.1442556 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umok8-00009O-2T; Fri, 15 Aug 2025 07:20:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082857.1442556; Fri, 15 Aug 2025 07:20: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 1umok7-00009H-W6; Fri, 15 Aug 2025 07:20:51 +0000
Received: by outflank-mailman (input) for mailman id 1082857;
 Fri, 15 Aug 2025 07:20:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ZXrH=23=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1umok6-00006B-OD
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 07:20:50 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5d5d15e3-79a8-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 09:20:47 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id D45BB4EE0742;
 Fri, 15 Aug 2025 09:20:46 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5d5d15e3-79a8-11f0-a328-13f23c93f187
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=1755242446;
	b=bi6ly0sU3FUisvooVeqp0IYRtW3ev7CjBo6kcDbtEDzFbyI+HZsn2z2SDKyFY+HwoiOG
	 S3tajlBHNyq5MrnmsxBpTjpt142OJc7KX0gTLW6uRzPbSruw9YHQPNqvL7Ag53+wD3Cgv
	 gkiGXT7Dei0y/he5UreK4bA9FXPivyIWZQWJ+bXEwJIsclJ2ttYDldpmGy3CSfIZ33GRB
	 EmjYdFZdEBxUzGYu5V76H5OT/Mmz2vArVWi4RF9S6JZVGYWSbWUdvhT6DYCEvBee2jBrD
	 NBuQXhWxy9tc2W/2L7g5qLll9129VykEqkOv7Er5l1rQU2FCUZQ9g+H8jiXfvV6aofPU/
	 T71zm0JdPAhl4lctr8sgi8hpGbnZ9up5RHxLnSiPv8ux2UoNuc6EeXNrqRsjVD4T6A9e2
	 vvnV1bOqtJGAbNwwrrabCznWmEptKdQNMzs0D6nSSnyrLYwAi6PaoBW/nuulamKWhBAzI
	 1ErnexPBHq3WhSK5J/j9iojMW9S7F4tSOQhbKRiYhyOOiNtdwDHQ/IXa3+TvxWZfTufVu
	 T3iJj8P4Ifcl+skjEQLcjl2SSqSTj6kTKL+KNLFpPhi5EUoriWbtFJhKCqAbzqsVx8fEm
	 nqBi2RdUmcgPecklLdFDEG4OshZCGatcvKZlFQp/Wv2/CFF/Q6ay64/VFZuAblY=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1755242446;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=Q7Y7H8c+F1DqZMzbG89vk7tX0P1WIMm2jykyWtYIrdk=;
	b=oP/QNifGXTKsX7FbT/vLpfPgHt38KapDx9pfwYLAzP7jJDa1gry3OEoHw1QpQM+Jfu5J
	 PHf0K91gbIvoM0vQNyT3bP01p+v8jLpZnxUT1u8nlutUCVmV7WZft9IQV3U+ZsKq15zuX
	 +iax53P/BZICjkOF8rnr3EnILJtCloIbtf9IpeTE0hVp0nXuvzHJ82K3xVncpjb2uLoLk
	 9vC0NIWOPJ0Wd/ZEAZf8PlfPA8r+4QCDEUHMbefAH24OyxrGVqp5QQYztz5zL6YFWOQOn
	 DbfepoSTii4/XpL5i+IZbbFqzqRM0e0ykl5OVxhnn6lDUyCQWUV1dglpgNGdv487Vl0y/
	 OV62qHt/Eyy7zcbZqDQ210jsyGlcODpeUhEIdeLiEPphPZJdm93OYOVuc3rGHK+sCt9r3
	 xxe/Fl7Wl2TTP8tBGnvsYmj5QcBmbdt9RlXV/Eb+gA7kk+ATGbxoZYZLEx+ZF38lxnEZP
	 sguEfT5X0LFZRM5iAfeGNoT5XvRNWjUyjjS2uFLUyEGj4JNHbbMtxu6VXUwdBUNROuyGh
	 UiY78leo7HydYWmBaCcXQvL1FdSmZUk5nyyCDusCH15C7DtF1FaqylfZOcvci0Vr1Kyhj
	 EW6Qeq9nHAugVZ1mNf1WsYWEj7gsE1ckAs1PDv1qKDfDy86uJV7zpEluRQouWw4=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1755242446; bh=gqzTKs7uKnX+aOymgpnk0l7TG5zuKmwONeDcb2YAtHU=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=b1zVMIYnIC/pQMqAV+Y2Q7+WNEk4podEf1WkY2yag9mfq6fowXAqLmFFIdZgWtbgM
	 FHN3+UbA0UuPRWi3LTVB2KmppYzTNCy0vmPbvwnn+YYnPCmHNe8dEmbku1j/CY3RUU
	 X3MJrqHa/y4Kg3s5VOtr9qMIi9938ggcmss4Syn49YfOsCx/oFPTsCBFrrwpIQdGog
	 xjy4bI0a4VjHCbKRu04EWV34LRC00rL8gDzdLXdjkObTwM8pquF269Qgi5736IcGDZ
	 notydaEo1dgE91Yj2G5MZ5JY9gXIlXhbVyLg1xV9l9uDz4KW4WBvmJEBRf/IC6e+fw
	 ZfqDO52+uVMEg==
MIME-Version: 1.0
Date: Fri, 15 Aug 2025 09:20:46 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Anthony PERARD
 <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan
 Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Roberto Bagnara <roberto.bagnara@bugseng.com>,
 "consulting @ bugseng . com" <consulting@bugseng.com>
Subject: Re: [PATCH v2] xen: Use auto as per C23
In-Reply-To: <20250814222524.2638883-1-andrew.cooper3@citrix.com>
References: <20250814222524.2638883-1-andrew.cooper3@citrix.com>
Message-ID: <3056ed85948288639110e3cdd6b28c6e@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

On 2025-08-15 00:25, Andrew Cooper wrote:
> In macros it is common to declare local variables using typeof(param) 
> in order
> to ensure that side effects are only evaluated once.  A consequence of 
> this is
> double textural expansion of the parameter, which can get out of hand 
> very
> quickly with nested macros.
> 
> In C23, the auto keyword has been repurposed to perform type inference.
> 
> A GCC extension, __auto_type, is now avaialble in the new toolchain 
> baseline
> and avoids the double textural expansion.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

with a nit below:

> ---
> 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: Roberto Bagnara <roberto.bagnara@bugseng.com>
> CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
> CC: consulting@bugseng.com <consulting@bugseng.com>
> 
> The resulting build is identical.
> 
> v2:
>  * Use auto directly
>  * Eclair configuration
> 
> https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/1985289434
> ---
>  automation/eclair_analysis/ECLAIR/toolchain.ecl | 11 +++++++++--
>  docs/misra/C-language-toolchain.rst             |  2 ++
>  xen/include/xen/compiler.h                      | 14 ++++++++++++++
>  xen/include/xen/macros.h                        | 14 +++++++-------
>  4 files changed, 32 insertions(+), 9 deletions(-)
> 
> diff --git a/automation/eclair_analysis/ECLAIR/toolchain.ecl 
> b/automation/eclair_analysis/ECLAIR/toolchain.ecl
> index 842f8377e561..125f99a06583 100644
> --- a/automation/eclair_analysis/ECLAIR/toolchain.ecl
> +++ b/automation/eclair_analysis/ECLAIR/toolchain.ecl
> @@ -15,6 +15,7 @@
>      __alignof__, __alignof: see Sections \"6.48 Alternate Keywords\" 
> and \"6.44 Determining the Alignment of Functions, Types or Variables\" 
> of "GCC_MANUAL".
>      asm, __asm__: see Sections \"6.48 Alternate Keywords\" and \"6.47 
> How to Use Inline Assembly Language in C Code\" of "GCC_MANUAL".
>      __attribute__: see Section \"6.39 Attribute Syntax\" of 
> "GCC_MANUAL".
> +    __auto_type: see Section \"6.7 Referring to a Type with typeof\" 
> of "GCC_MANUAL".
>      __builtin_offsetof: see Section \"6.53 Support for offsetof\" of 
> "GCC_MANUAL".
>      __builtin_types_compatible_p: see Section \"6.59 Other Built-in 
> Functions Provided by GCC\" of "GCC_MANUAL".
>      __builtin_va_arg: non-documented GCC extension.
> @@ -26,6 +27,7 @@
>  -name_selector+={alignof, "^(__alignof__|__alignof)$"}
>  -name_selector+={asm, "^(__asm__|asm)$"}
>  -name_selector+={attribute, "^__attribute__$"}
> +-name_selector+={auto_type, "^__auto_type$"}
>  -name_selector+={builtin_offsetof, "^__builtin_offsetof$"}
>  -name_selector+={builtin_types_p, "^__builtin_types_compatible_p$"}
>  -name_selector+={builtin_va_arg, "^__builtin_va_arg$"}
> @@ -39,6 +41,7 @@
>  "alignof||
>  asm||
>  attribute||
> +auto_type||
>  builtin_offsetof||
>  builtin_types_p||
>  builtin_va_arg||
> @@ -114,6 +117,7 @@ volatile"
>  -doc_end
> 
>  -doc_begin="
> +    ext_auto_type: see Section \"6.7 Referring to a Type with typeof\" 
> of "GCC_MANUAL".
>      ext_c_missing_varargs_arg: see Section \"6.21 Macros with a 
> Variable Number of Arguments\" of "GCC_MANUAL".
>      ext_enum_value_not_int: non-documented GCC extension.
>      ext_flexible_array_in_array: see Section \"6.18 Arrays of Length 
> Zero\" of "GCC_MANUAL".
> @@ -126,6 +130,7 @@ volatile"
>      ext_return_has_void_expr: see the documentation for -Wreturn-type 
> in Section \"3.8 Options to Request or Suppress Warnings\" of 
> "GCC_MANUAL".
>      ext_sizeof_alignof_void_type: see Section \"6.24 Arithmetic on 
> void- and Function-Pointers\" of "GCC_MANUAL".
>  "
> +-name_selector+={ext_auto_type, "^ext_auto_type$"}
>  -name_selector+={ext_c_missing_varargs_arg, 
> "^ext_c_missing_varargs_arg$"}
>  -name_selector+={ext_enum_value_not_int, "^ext_enum_value_not_int$"}
>  -name_selector+={ext_flexible_array_in_array, 
> "^ext_flexible_array_in_array$"}
> @@ -139,7 +144,8 @@ volatile"
>  -name_selector+={ext_sizeof_alignof_void_type, 
> "^ext_sizeof_alignof_void_type$"}
> 
>  -config=STD.diag,behavior+={c99,GCC_ARM64,
> -"ext_c_missing_varargs_arg||
> +"ext_auto_type||
> +ext_c_missing_varargs_arg||
>  ext_forward_ref_enum_def||
>  ext_gnu_array_range||
>  ext_gnu_statement_expr_macro||
> @@ -149,7 +155,8 @@ ext_return_has_void_expr||
>  ext_sizeof_alignof_void_type"
>  }
>  -config=STD.diag,behavior+={c99,GCC_X86_64,
> -"ext_c_missing_varargs_arg||
> +"ext_auto_type||
> +ext_c_missing_varargs_arg||
>  ext_enum_value_not_int||
>  ext_flexible_array_in_array||
>  ext_flexible_array_in_struct||
> diff --git a/docs/misra/C-language-toolchain.rst 
> b/docs/misra/C-language-toolchain.rst
> index cb81f5c09872..635936004554 100644
> --- a/docs/misra/C-language-toolchain.rst
> +++ b/docs/misra/C-language-toolchain.rst
> @@ -94,6 +94,8 @@ The table columns are as follows:
>            see Sections "6.48 Alternate Keywords" and "6.44 Determining 
> the Alignment of Functions, Types or Variables" of GCC_MANUAL.
>         __attribute__:
>            see Section "6.39 Attribute Syntax" of GCC_MANUAL.
> +       __auto_type:
> +          see Section "6.7 Referring to a Type with typeof" of 
> GCC_MANUAL.
>         __builtin_types_compatible_p:
>            see Section "6.59 Other Built-in Functions Provided by GCC" 
> of GCC_MANUAL.
>         __builtin_va_arg:
> diff --git a/xen/include/xen/compiler.h b/xen/include/xen/compiler.h
> index 88bf26bc5109..38ef5d82ad95 100644
> --- a/xen/include/xen/compiler.h
> +++ b/xen/include/xen/compiler.h
> @@ -64,6 +64,20 @@
>  # define asm_inline asm
>  #endif
> 
> +/*
> + * In C23, the auto keyword has been repurposed to perform type 
> inference.
> + *
> + * This behaviour is available via the __auto_type extension in 
> supported
> + * toolchains.
> + *
> + * 
> https://www.gnu.org/software/c-intro-and-ref/manual/html_node/Auto-Type.html
> + * https://clang.llvm.org/docs/LanguageExtensions.html#auto-type
> + */
> +#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 202311L
> +/* SAF-3-safe MISRA C Rule 20.4: Giving the keyword it's C23 meaning. 
> */
> +#define auto __auto_type
> +#endif
> +

A more detailed explanation should live in deviations.rst under this 
bullet point

    * - R20.4
      - The override of the keyword \"inline\" in xen/compiler.h is 
present so
        that section contents checks pass when the compiler chooses not 
to
        inline a particular function.
      - Comment-based deviation.

as described in the SAF entry:

         {
             "id": "SAF-3-safe",
             "analyser": {
                 "eclair": "MC3A2.R20.4"
             },
             "name": "MC3A2.R20.4: allow the definition of a macro with 
the same name as a keyword in some special cases",
             "text": "The definition of a macro with the same name as a 
keyword can be useful in certain configurations to improve the 
guarantees that can be provided by Xen. See docs/misra/deviations.rst 
for a precise rationale for all such cases."
         },


>  /*
>   * Add the pseudo keyword 'fallthrough' so case statement blocks
>   * must end with any of these keywords:
> diff --git a/xen/include/xen/macros.h b/xen/include/xen/macros.h
> index f9ccde86fb23..ceca2e4a1bf1 100644
> --- a/xen/include/xen/macros.h
> +++ b/xen/include/xen/macros.h
> @@ -63,18 +63,18 @@
>  /* Hide a value from the optimiser. */
>  #define HIDE(x)                                 \
>      ({                                          \
> -        typeof(x) _x = (x);                     \
> +        auto _x = (x);                          \
>          asm volatile ( "" : "+r" (_x) );        \
>          _x;                                     \
>      })
> 
>  #define ABS(x) ({                              \
> -    typeof(x) x_ = (x);                        \
> +    auto x_ = (x);                             \
>      (x_ < 0) ? -x_ : x_;                       \
>  })
> 
>  #define SWAP(a, b) \
> -   do { typeof(a) t_ = (a); (a) = (b); (b) = t_; } while ( 0 )
> +   do { auto t_ = (a); (a) = (b); (b) = t_; } while ( 0 )
> 
>  #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]) + 
> __must_be_array(x))
> 
> @@ -102,15 +102,15 @@
>   */
>  #define min(x, y)                               \
>      ({                                          \
> -        const typeof(x) _x = (x);               \
> -        const typeof(y) _y = (y);               \
> +        const auto _x = (x);                    \
> +        const auto _y = (y);                    \
>          (void)(&_x == &_y); /* typecheck */     \
>          _x < _y ? _x : _y;                      \
>      })
>  #define max(x, y)                               \
>      ({                                          \
> -        const typeof(x) _x = (x);               \
> -        const typeof(y) _y = (y);               \
> +        const auto _x = (x);                    \
> +        const auto _y = (y);                    \
>          (void)(&_x == &_y); /* typecheck */     \
>          _x > _y ? _x : _y;                      \
>      })
> 
> base-commit: b2c0dc44b37516b758c38de04c61ad295ac0dff2

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 07:28:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 07:28:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082871.1442566 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umorJ-0000nL-QL; Fri, 15 Aug 2025 07:28:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082871.1442566; Fri, 15 Aug 2025 07:28:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umorJ-0000nE-Np; Fri, 15 Aug 2025 07:28:17 +0000
Received: by outflank-mailman (input) for mailman id 1082871;
 Fri, 15 Aug 2025 07:28:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9KPM=23=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1umorH-0000n8-RG
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 07:28:16 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 62f19e05-79a9-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 09:28:06 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by AM9PR03MB7332.eurprd03.prod.outlook.com (2603:10a6:20b:265::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.18; Fri, 15 Aug
 2025 07:28:04 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9031.014; Fri, 15 Aug 2025
 07:28: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>
X-Inumbo-ID: 62f19e05-79a9-11f0-a328-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=V3zg0zlH4RMm1DzdUxmAeBi+9O1A8yMKzg/H5hk+DNdIACtiBWudQe05qcbun4DdVD+vWQD2kmCmmLmbHq0dtNobC4kLzaJF8bimcsAjaidZOfhgIVPQYYDFKrJdbrQllk4wbAgLNQzT7TruGxP2r0d+XH8Uz39EXklXHQ4trWRJX40ABliXENjDco2wdFtHVliz8cJ8ZRU8zsScktLfTriEJ8eYcwuDvMMajiKaZxCcT6LFBXQaxnXLH2k1PwZm40m4eAKlX4pCvTMtiybgbyNayMJEz2m0jo+JLOGqB2vdPncqhakrsZVZmzptv44BAZZBhqrVkNF1x3Eomv4CWQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0DxiJhF+2MqDibtIQLtfAJPqX4b5UYHrAaicpye+2mQ=;
 b=XqVM4Iwff5NaI0wlmNyRrOIgTI3TnqAdLyB5P4dlc54dOqv2zn1jNKQKr7dGHF/i/oPNHFQtqasLUtqWNy1HnQuV7UpY9DwfBMvwKitCx/zT1IA6IrAphvDyUEz+uCylg2TVPGX7Swka2ZrPpLWQcFHabzqWSxM+nF6j9a5xk4Ku5gcGqHrlA41qSKP3upc4YF34YHkyzT4htDmekX+tlOY9+f0uJ6N30e0KJR+vJFTAGw/7yWbq1+RYxgH8URs0DR4o8BFcy6HzTgJ67gpLOQyy+UCT+KoPXGviij4nBmKrpZY87UudXop3lLPlY1qWeYJ/HzC2j56PczJ9CrHGxw==
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=0DxiJhF+2MqDibtIQLtfAJPqX4b5UYHrAaicpye+2mQ=;
 b=hnQKuDzMRylDg+cY8zLGxj9p0BHzaIRmC448BjMaSB9EUfk+UsKIOw4huC9sxVSRnvh8KBJl03RmtLvV3Eqm14Bqs7p3i2LlA/IrKeL0RiyvEmz/atv7g5/2aknkR+mswTnDc/+tLiUJiKo8A9Ti6MyEveg3iSNsYHMdfwDmN4J5Mve1p8EXqPf5PS3sjVi9A1kPJKepyWzel9QvM63CQudAOe9jXfnaVFWRwu6dAOM526Kw3mNE/QhmfGDbOoZJMbbuRYNvBr3kWC0CF+mKyhzXGGDqOVd9avvnbxFuzxJ/3Inj+Yjml/5kK8JAHd79skskZzCjykiljREVY27gnw==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 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?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Stefano
 Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] docs/misra: fix sphinx-build issues
Thread-Topic: [PATCH] docs/misra: fix sphinx-build issues
Thread-Index: AQHcDbJCdYlsiZdfl0mX5ViIXi0+6LRjS8aAgAAFGoA=
Date: Fri, 15 Aug 2025 07:28:04 +0000
Message-ID: <77912fca-8bf2-43f5-8049-de4cdc3ec82d@epam.com>
References:
 <fb809a94e8a50bd3a59aa47ee1832c61af8a9f40.1755241166.git.dmytro_prokopchuk1@epam.com>
 <c7d9513dfc7201c5d3c6e6cbd99db481@bugseng.com>
In-Reply-To: <c7d9513dfc7201c5d3c6e6cbd99db481@bugseng.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV2PR03MB9572:EE_|AM9PR03MB7332:EE_
x-ms-office365-filtering-correlation-id: a9036ee8-6291-4474-a221-08dddbcd45fc
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|42112799006|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?akIzK2lLUXM4NER5c0ttbGcxY2hZd290NFdFL01GaGFUZjE2T2V5d1pzYm1a?=
 =?utf-8?B?NEV4akxlejI5ZzU0OXdRUFVsbWtTMGdpem56L0lUUnlwWml1Z3hNYWdqSm9x?=
 =?utf-8?B?aFR6cml3NXV1czRDTzFQYXROaHp6b1JlSWYxMFBlenZJMUhjQXZMSHJHbVRX?=
 =?utf-8?B?TG01YzhhSjYrVm1CbGVqbmlVTW82ZTcyMVhmem5GRnVxak1PdDExLzZLZFNz?=
 =?utf-8?B?ZjBNbk9HVkt1WHhEeTZyYXphaGJ1OGlwM1FtY3p5cXB2dFhkZmZuSWFpYjBN?=
 =?utf-8?B?MGFSM28zc2FaL0RWNnVxMGt2b2VWS0hGSlovT09RWEcwcE1WcEpHa3RUSHJI?=
 =?utf-8?B?bjBLVU5rL1RYWUEra0VMUnpQK3VQbHM2SnNMMm91Y0tjd3pPZHFpNm0zOVln?=
 =?utf-8?B?WS9YQmZkRlVBa245L2FsZFQrN2M1YU40cHdTUmd6aHg0aHVyL2hxblV4bGVB?=
 =?utf-8?B?eEgzZGxjcU5BSUhBK2FMMGR0c2hNYnN6bCttNENlRVlKMXBHeHVESlJ6amhl?=
 =?utf-8?B?dXdzSEQzUGNBMkNjMjZjY2trYlQ4K3Zrakk5Y3ZoYlp6ZGozSHlQWVVwUzlq?=
 =?utf-8?B?NitUZXNQSjdhWmhWbS9DTURlOHh0STJrVHNyaElxREFRVEllNEVpeFUyVEdJ?=
 =?utf-8?B?ZjZoVzg2UC9WK3ZKU2FLYUtPV2pBRXllck9qaitUMS9KMTBjREs5WHBwZThW?=
 =?utf-8?B?bzJLWEdyWTM4YWV6eHIwcXVqWFBrWkFKaUV1UlZETzhIblZTK3E2U3FkNTVG?=
 =?utf-8?B?Zi9PTGZ4K1JGbHpKWHBicTlmVFhNSEFlKzVBckRKbmZyNmxMeDdnbFF6bGxK?=
 =?utf-8?B?cG4zbEE1bWNhTTdYYy9PZ0kvZW9OS3RFVGNCRk8velNsZCtPUGdGR2t5TUg1?=
 =?utf-8?B?MTJ0TEkzTUFicDBNTUVsRGNhR2VZK3lVN09TVjhoSnRJUzNJWXEvclZsWVhI?=
 =?utf-8?B?TkwvSjc2RG5HUnRsNjhsYm9NRy9xa3NnZ3VmZFFPaFRrUXIrRG52QTRucHQx?=
 =?utf-8?B?dHBXY0k5aGZBNW1KazhST3lTRHh1dXFGUmg2cUNtd2luUW9QZ0Iyc2JHcCtV?=
 =?utf-8?B?WE5XbllCRWlKMkdlbXVlN0NjU0ZhaFE2UVlXcldCNEhPbW85c2h2R3BRQm1w?=
 =?utf-8?B?V21VSU9pU2h0c3JxOCtuSVZmZXYvN2FzdXV5TkpiT09Ma083RVV2dmltZ1Bm?=
 =?utf-8?B?RjFQb3k1MUlTZU9JaHVuNHp2cWdHVGliU3dlRExLTGo5cERYWXRZc09vMlky?=
 =?utf-8?B?bFFpWUxmdmtPYVZjQUZqRFNWTjRWTzBvWEIvSVBlK3BLbERWeUgyT1MvNXBk?=
 =?utf-8?B?Nk5XSlV5MlNIempqcGs0VlQwTTl3ZDArN2trLzVhbWlSd2FYREkyQnhVRDUy?=
 =?utf-8?B?OVU3WDc2ZDBsS3Z0RUxPRmVzTTlZY1VSblF6dTlGVWhnNzh2ekVvaEN4K1Bj?=
 =?utf-8?B?Ym9ndHBXNmtNVHpzVGQ2ZFdhWnB0NmNQTzdLQ0h3UEw4ZS9pVEhQUkxEdFE3?=
 =?utf-8?B?aHlGWjFrZmpib2Nid0lKcmFTOVJGVXZXQkZBV21TOW43ZTUzV1EvS3E1OW1B?=
 =?utf-8?B?VnJLLzJ1aWJzWkNYQWhJa1l3aGxuM240VGN2enUzRVU5UC9keW5ORTY4bGIr?=
 =?utf-8?B?bUZkV0hoWGhXSDhMd0Eyc2tRTWpKbGFhaGxwaXBHL3p1ZS9ad25kWHhMaWRX?=
 =?utf-8?B?Vk0xa3M5RGNkSDdNdk9wTGNPbVZFdFFNcXRmVlAxNDhOOXJ1eVIrcHdQYnB1?=
 =?utf-8?B?UVB0Z1NwdXk3L204eGJKL3RJWUwwZHY0STFUalFJZG1mazJ6RkJFdXJtTUVz?=
 =?utf-8?B?RjVGOEI1MlZJZm9hK3pTWFVGLzBFanMxY1JLUGk0UGJyODkxeEM4N3QvUE9X?=
 =?utf-8?B?YWdDL3o5Zy9OT0ZZVTBMemJlcFpQbnZkY1ZwaFpFYW9qalFTY2dEWkFnTEpQ?=
 =?utf-8?B?UnFGbEkvRDRtSFNyUFR4ZTBnMVlCQ256Mk9PMGY0bmlxYXNNdjdiaUNjT29Q?=
 =?utf-8?B?WnBhODhoV3d3PT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(42112799006)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?TkdVb2oxY1VyZVFqdlFUSGxhNkYzVnRTL2FEQmgvSEpvd2JxNGNlOElVN1VL?=
 =?utf-8?B?eUdDa1FFejM3aEJmL1BUUC9qcWJVa0E1dzJIZzJZWjJZVGVMMjJHMHlrSTZW?=
 =?utf-8?B?L3RFWGdXK3p0U1d5Qmpld0RuM3pwMGxWOU4wZUFQaFAzV2F6YnZRVkFYaEEr?=
 =?utf-8?B?N1lZU2hqaElmNmVRRW4wSjZ2a3c0UlY5eVlKOHYrR1pUYnZiSVV6QlBic0dS?=
 =?utf-8?B?Vi9sTG5CTmJsaXRRby8xZ1ZIYW9HZGpld0NwbDh2SHljMGEwLzg0UmZIYmNS?=
 =?utf-8?B?UTJzZkxGakxZakorY0ZVK2p0ZXFuREJ1TlZkWmNCWFluNEV3YzlaQlZxOXda?=
 =?utf-8?B?bFZvUUNrUG41OVFVMnhWeVEvbXRpNXVnN1JtamlDS2t1djhIcGw3OHcvMWNM?=
 =?utf-8?B?UklLbVdQYi8vRlNSb1k0VE5PMUdzNXhBWnNra1RyVmtVTEkzOXhCUmx2MXpk?=
 =?utf-8?B?dy91cjhFVVliUkE4UVBRcHU4VHpyZ3QrdG1VL1g1aUtIN1RrUWNoY2hIa0VP?=
 =?utf-8?B?TEhnRUtsTks0d3lzQXRhck1XVDcyVEkxZkd0LzFnWGM3U3VFTWZkTnR3QzZm?=
 =?utf-8?B?OWhiOE94T3p6Q2xGaVpVOGpmU3NUZ2U3MVdMSDltNzJNTndhTVpGRkFkSnIr?=
 =?utf-8?B?MEdvOTcrakpKVkttRHpIOE9vYitlQjVpUnBKZkozVElXa2RoVDJ5OFpad0U3?=
 =?utf-8?B?MzB6YnhvcWw0TnRmZFV4OERqS2Yxa09XWjNSeCtRM3VNYWNCSEpINnRTbU83?=
 =?utf-8?B?ODBrQmxUSnJwRmNNWlQ3UWxjK0tQWlI2SVhrVlJ1am9ibmsrZVM2eFFOTTJa?=
 =?utf-8?B?TFl3QWZCSFROT2U4T2pPRFdTWGFiZFNtaVBTNzBBZ1VScGdEQ3RBbThVWjZa?=
 =?utf-8?B?Q2JKMXU2bGhtbXZuK0Q3dnZhUTFTQnJvTndVUXoyWHUyajdqTTc1dWxuVlVa?=
 =?utf-8?B?cTBjSHdETUhWZ2EzMEt4WHNiVmc3YkZRNFBNRlRmbWZCN242c3BRVllJeFlQ?=
 =?utf-8?B?L2dUa2VIRWNtanNocmY5NGRrUVBQY0l5b0pyVmprQmlOKyt2cnJlU0MrTHdK?=
 =?utf-8?B?ajY1WnVMZEVaaEd3amdZc3BoVnhBN2pKZU9kWHFWM1pKS21mZkdKQ2NHQ1E1?=
 =?utf-8?B?VnNRNkU2RXdPMGdQY0RJT0hJeTZYY3BjdkFXVjR5cE92TFdUc0ZvK2duK3lt?=
 =?utf-8?B?L3o5OUIweTlSckVQSWpDLzI0MFZ4VERjK1h4bFFpMVREQTZUMEJlYVJyUHp5?=
 =?utf-8?B?M3dNc0F0b2o4U2U5VzdhNXJMekJxeXBrUlUybGRqdWFQb1Y1bFVHSk1pdEN5?=
 =?utf-8?B?MVR2TE9sazBXdGltbDNVUkNNMm44b0NzckdHYU8zUGh0YnlQcjEzV3NWTFdM?=
 =?utf-8?B?UzJMS2FkV2xub0hZUmhxZzlrbHplUHJFL21GaGJOQ1JqTHJyZThHVFltMDV2?=
 =?utf-8?B?M1E3M1ZXbWF6MFVsYjFBWXZFVGltU0pQaHZaM3FsZGovbStqa3VLZCtCUWFw?=
 =?utf-8?B?VlBxdFdubFpMdXp5VGgrNVRyZjlSK0FMcTBENU9UdVo5Um41dEF4RUx3eWhN?=
 =?utf-8?B?QktwamhPZmUyUU1ncEF4VW40Um1jajRicFNBT0tQMXM3ZzZWZ3MvNVZjZ1N3?=
 =?utf-8?B?Wnhrd3A1d1Z2YlRKNGt2TVhmN3k3MFB5Y3JaVFZEOUM1UUo2YVM0WUdYUkhq?=
 =?utf-8?B?REpEdmpVdTRNZmVCbHBLSnFUcDEraVlHazBhWk1ZVzJGR1ViMG0wclRHYnRl?=
 =?utf-8?B?RjJFS1RkZkJhQUVKOHRRNjVBTTNSeHFJVVBNc1Z2YXZnbUJqN1kvWEs5Mm5j?=
 =?utf-8?B?QnFad3NpYVBqWjRHRVNHSGQ2QU04Z3VQeHJCZGVGaXgvb0pPNVg1SmhXckRT?=
 =?utf-8?B?VVpQUVRUd2RObTIwenU2SkRxWDIzRVJOQTN2M3gvdDdOdDJCMFVoQ0Z6SDRO?=
 =?utf-8?B?ejFkS1psTjhtZVpPRVBzVGFkQTlqMFVmOXkyR1hzZDRMTHF5TUVuVmZDbW1a?=
 =?utf-8?B?a0hvT1pSTFVLQlkzaXpKYWsyRHc2TUtMNkwrc2RMdzZER2tSMForV1UrbHg3?=
 =?utf-8?B?OGxXVGRvUUtyQ3dlNTErK0pCSDVpQnVIWnZwcjlnQTNhdTBwNzBUZHZHSjdo?=
 =?utf-8?B?N2UzdWt4TU5VTFQ4ejZITW1wVk5RVnYvOUJuTHM5TjVFQlBwWm1UYURKdmJm?=
 =?utf-8?B?M0E9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <40CAB7612B3E01448F060E7165536F1C@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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a9036ee8-6291-4474-a221-08dddbcd45fc
X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Aug 2025 07:28:04.4798
 (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: 4v4dsknz+Sr5dzfJZGnUJqmODyAyXsPw3no+cNQEFBMPJGGyc/h/wvlUnZvoZ/l9lU9OCw3RDaaxFuMgqh3i0DIdAhmMRXm/YPfGdyXguQ0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7332

DQoNCk9uIDgvMTUvMjUgMTA6MDksIE5pY29sYSBWZXRyaW5pIHdyb3RlOg0KPiBPbiAyMDI1LTA4
LTE1IDA5OjAwLCBEbXl0cm8gUHJva29wY2h1azEgd3JvdGU6DQo+PiBGaXggdGhlIGZvbGxvd2lu
ZyBpc3N1ZXM6DQo+PiAxLiB4ZW4vZG9jcy9taXNyYS9kZXZpYXRpb25zLnJzdDo5MDogV0FSTklO
RzogSW5saW5lIGludGVycHJldGVkIHRleHQgb3INCj4+IHBocmFzZSByZWZlcmVuY2Ugc3RhcnQt
c3RyaW5nIHdpdGhvdXQgZW5kLXN0cmluZy4gW2RvY3V0aWxzXQ0KPj4gMi4geGVuL2RvY3MvbWlz
cmEvZGV2aWF0aW9ucy5yc3Q6NTQ6IEVSUk9SOiBFcnJvciBwYXJzaW5nIGNvbnRlbnQgYmxvY2sN
Cj4+IGZvciB0aGUgImxpc3QtdGFibGUiIGRpcmVjdGl2ZTogdW5pZm9ybSB0d28tbGV2ZWwgYnVs
bGV0IGxpc3QgZXhwZWN0ZWQsDQo+PiBidXQgcm93IDYgZG9lcyBub3QgY29udGFpbiB0aGUgc2Ft
ZSBudW1iZXIgb2YgaXRlbXMgYXMgcm93IDEgKDIgdnMgMykuDQo+PiAqIC0gUjIuMQ0KPj4gwqAg
LSBDYWxscyB0byB0aGUgYF9fYnVpbHRpbl91bnJlYWNoYWJsZSgpYCBmdW5jdGlvbiBpbnNpZGUg
dGhlIA0KPj4gZXhwYW5zaW9uIG9mDQo+PiDCoMKgwqAgdGhlIGBBU1NFUlRfVU5SRUFDSEFCTEUo
KWAgbWFjcm8gbWF5IGNhdXNlIGEgZnVuY3Rpb24gdG8gYmUgbWFya2VkIGFzDQo+PiDCoMKgwqAg
bm9uLXJldHVybmluZy4gVGhpcyBiZWhhdmlvciBvY2N1cnMgb25seSBpbiBjb25maWd1cmF0aW9u
cyB3aGVyZQ0KPj4gwqDCoMKgIGFzc2VydGlvbnMgYXJlIGVuYWJsZWQuIFRvIGFkZHJlc3MgdGhp
cywgdGhlIGBub3JldHVybmAgcHJvcGVydHkgZm9yDQo+PiDCoMKgwqAgYF9fYnVpbHRpbl91bnJl
YWNoYWJsZSgpYCBpcyBvdmVycmlkZGVuIGluIHRoZXNlIGNvbnRleHRzLCANCj4+IHJlc3VsdGlu
ZyBpbg0KPj4gwqDCoMKgIHRoZSBhYnNlbmNlIG9mIHJlcG9ydHMgdGhhdCBkbyBub3QgaGF2ZSBh
biBpbXBhY3Qgb24gc2FmZXR5LCBkZXNwaXRlDQo+PiDCoMKgwqAgYmVpbmcgdHJ1ZSBwb3NpdGl2
ZXMuDQo+PiDCoMKgwqAgWGVuIGV4cGVjdHMgZGV2ZWxvcGVycyB0byBlbnN1cmUgY29kZSByZW1h
aW5zIHNhZmUgYW5kIHJlbGlhYmxlIGluIA0KPj4gYnVpbGRzLA0KPj4gwqDCoMKgIGV2ZW4gd2hl
biBkZWJ1Zy1vbmx5IGFzc2VydGlvbnMgbGlrZSBgQVNTRVJUX1VOUkVBQ0hBQkxFKCkgYXJlIA0K
Pj4gcmVtb3ZlZC4NCj4+IDMuIHhlbi9kb2NzL21pc3JhL3J1bGVzLnJzdDoxMjc6IFdBUk5JTkc6
IElubGluZSBpbnRlcnByZXRlZCB0ZXh0IG9yIA0KPj4gcGhyYXNlDQo+PiByZWZlcmVuY2Ugc3Rh
cnQtc3RyaW5nIHdpdGhvdXQgZW5kLXN0cmluZy4gW2RvY3V0aWxzXQ0KPj4NCj4+IFNpZ25lZC1v
ZmYtYnk6IERteXRybyBQcm9rb3BjaHVrIDxkbXl0cm9fcHJva29wY2h1azFAZXBhbS5jb20+DQo+
IA0KPiBSZXZpZXdlZC1ieTogTmljb2xhIFZldHJpbmkgPG5pY29sYS52ZXRyaW5pQGJ1Z3Nlbmcu
Y29tPg0KPiANCj4gSSByZWNhbGwgdGhhdCBBbmRyZXcgd2FudGVkIHRvIGFkZCBhIGRvYyBidWls
ZCB0ZXN0IHRvIGF2b2lkIGludHJvZHVjaW5nIA0KPiB3YXJuaW5ncy4gT24gdGhhdCBmcm9udCwg
d2l0aCBteSBTcGhpbnggdmVyc2lvbiBJIGFsc28gc2VlIHRoaXMgYnVpbGQgDQo+IHdhcm5pbmc6
DQo+IA0KPiBSdW5uaW5nIFNwaGlueCB2OC4xLjMNCj4gV0FSTklORzogQ2FsbGluZyBnZXRfaHRt
bF90aGVtZV9wYXRoIGlzIGRlcHJlY2F0ZWQuIElmIHlvdSBhcmUgY2FsbGluZyANCj4gaXQgdG8g
ZGVmaW5lIGh0bWxfdGhlbWVfcGF0aCwgeW91IGFyZSBzYWZlIHRvIHJlbW92ZSB0aGF0IGNvZGUu
DQo+IA0KWWVzLCBJIHNlZSB0aGUgc2FtZSB3YXJuaW5nIG9uIG15IGVuZC4NCk5lZWQgdG8gYWRk
cmVzcyB0aGF0IGluIGRvY3MvY29uZi5weSBhcyB3ZWxsLg0KDQpEbXl0cm8uDQo+PiAtLS0NCj4+
IMKgZG9jcy9taXNyYS9kZXZpYXRpb25zLnJzdCB8IDMgKystDQo+PiDCoGRvY3MvbWlzcmEvcnVs
ZXMucnN0wqDCoMKgwqDCoCB8IDIgKy0NCj4+IMKgMiBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlv
bnMoKyksIDIgZGVsZXRpb25zKC0pDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL2RvY3MvbWlzcmEvZGV2
aWF0aW9ucy5yc3QgYi9kb2NzL21pc3JhL2RldmlhdGlvbnMucnN0DQo+PiBpbmRleCAzYzQ2YTFl
NDdhLi4yYmU0OTA3NmUxIDEwMDY0NA0KPj4gLS0tIGEvZG9jcy9taXNyYS9kZXZpYXRpb25zLnJz
dA0KPj4gKysrIGIvZG9jcy9taXNyYS9kZXZpYXRpb25zLnJzdA0KPj4gQEAgLTk1LDcgKzk1LDgg
QEAgRGV2aWF0aW9ucyByZWxhdGVkIHRvIE1JU1JBIEM6MjAxMiBSdWxlczoNCj4+IMKgwqDCoMKg
wqDCoMKgIHRoZSBhYnNlbmNlIG9mIHJlcG9ydHMgdGhhdCBkbyBub3QgaGF2ZSBhbiBpbXBhY3Qg
b24gc2FmZXR5LCANCj4+IGRlc3BpdGUNCj4+IMKgwqDCoMKgwqDCoMKgIGJlaW5nIHRydWUgcG9z
aXRpdmVzLg0KPj4gwqDCoMKgwqDCoMKgwqAgWGVuIGV4cGVjdHMgZGV2ZWxvcGVycyB0byBlbnN1
cmUgY29kZSByZW1haW5zIHNhZmUgYW5kIA0KPj4gcmVsaWFibGUgaW4gYnVpbGRzLA0KPj4gLcKg
wqDCoMKgwqDCoCBldmVuIHdoZW4gZGVidWctb25seSBhc3NlcnRpb25zIGxpa2UgYEFTU0VSVF9V
TlJFQUNIQUJMRSgpIGFyZSANCj4+IHJlbW92ZWQuDQo+PiArwqDCoMKgwqDCoMKgIGV2ZW4gd2hl
biBkZWJ1Zy1vbmx5IGFzc2VydGlvbnMgbGlrZSBgQVNTRVJUX1VOUkVBQ0hBQkxFKClgIA0KPj4g
YXJlIHJlbW92ZWQuDQo+PiArwqDCoMKgwqAgLSBFQ0xBSVIgaGFzIGJlZW4gY29uZmlndXJlZCB0
byBpZ25vcmUgdGhvc2Ugc3RhdGVtZW50cy4NCj4+DQo+PiDCoMKgwqAgKiAtIFIyLjINCj4+IMKg
wqDCoMKgwqAgLSBQcm92aW5nIGNvbXBsaWFuY2Ugd2l0aCByZXNwZWN0IHRvIFJ1bGUgMi4yIGlz
IGdlbmVyYWxseSANCj4+IGltcG9zc2libGU6DQo+PiBkaWZmIC0tZ2l0IGEvZG9jcy9taXNyYS9y
dWxlcy5yc3QgYi9kb2NzL21pc3JhL3J1bGVzLnJzdA0KPj4gaW5kZXggNjgxMmViN2U4YS4uMzgy
MzMxNDQ3ZSAxMDA2NDQNCj4+IC0tLSBhL2RvY3MvbWlzcmEvcnVsZXMucnN0DQo+PiArKysgYi9k
b2NzL21pc3JhL3J1bGVzLnJzdA0KPj4gQEAgLTEyNCw3ICsxMjQsNyBAQCBtYWludGFpbmVycyBp
ZiB5b3Ugd2FudCB0byBzdWdnZXN0IGEgY2hhbmdlLg0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oCB0aGV5IGFyZSB1c2VkIHRvIGdlbmVyYXRlIGRlZmluaXRpb25zIGZvciBhc20gbW9kdWxlcw0K
Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIC0gRGVjbGFyYXRpb25zIHdpdGhvdXQgaW5pdGlhbGl6ZXIg
YXJlIHNhZmUsIGFzIHRoZXkgYXJlIG5vdA0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBleGVj
dXRlZA0KPj4gLcKgwqDCoMKgwqDCoMKgwqAgLSBGdW5jdGlvbnMgdGhhdCBhcmUgbm8tcmV0dXJu
IGR1ZSB0byBjYWxscyB0byB0aGUgDQo+PiBgQVNTRVJUX1VOUkVBQ0hBQkxFKCknDQo+PiArwqDC
oMKgwqDCoMKgwqDCoCAtIEZ1bmN0aW9ucyB0aGF0IGFyZSBuby1yZXR1cm4gZHVlIHRvIGNhbGxz
IHRvIHRoZSANCj4+ICdBU1NFUlRfVU5SRUFDSEFCTEUoKScNCj4+IMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqAgbWFjcm8gaW4gZGVidWcgYnVpbGQgY29uZmlndXJhdGlvbnMgYXJlIG5vdCBjb25zaWRl
cmVkIA0KPj4gdmlvbGF0aW9uczo6DQo+Pg0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oCBzdGF0aWMgaW5saW5lIGJvb2wNCj4gDQo=


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 07:41:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 07:41:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082887.1442577 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ump3c-0003fx-4V; Fri, 15 Aug 2025 07:41:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082887.1442577; Fri, 15 Aug 2025 07: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 1ump3c-0003fq-0P; Fri, 15 Aug 2025 07:41:00 +0000
Received: by outflank-mailman (input) for mailman id 1082887;
 Fri, 15 Aug 2025 07:40:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=VEq/=23=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1ump3a-0003fk-Mz
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 07:40:58 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2dc5a2bf-79ab-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 09:40:56 +0200 (CEST)
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 699EA1F840;
 Fri, 15 Aug 2025 07:40:55 +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 3090B13876;
 Fri, 15 Aug 2025 07:40:55 +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 g7mKCYfknmiiDAAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 15 Aug 2025 07:40:55 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2dc5a2bf-79ab-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1755243655; 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=VlazP9btikB8NJpiu0YBPgFKLXh5P4NJfwM/KmYNni0=;
	b=YPDOcRAqIO/Irub2iFSLUb3I8osWAfM7JgI2sbx4rlr8mjKsI2u8MLbMf+Aox4gqjOHEb8
	PBi9wdjlu7shKPe0CTcCg7W/f2MSmcCwwbQtkUQsZeAxz1KWHvIl7u5zRGpx/hAygq1jhl
	BIUGJFvQONNka5x0nSTifBbtYxf4QSU=
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=YPDOcRAq
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1755243655; 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=VlazP9btikB8NJpiu0YBPgFKLXh5P4NJfwM/KmYNni0=;
	b=YPDOcRAqIO/Irub2iFSLUb3I8osWAfM7JgI2sbx4rlr8mjKsI2u8MLbMf+Aox4gqjOHEb8
	PBi9wdjlu7shKPe0CTcCg7W/f2MSmcCwwbQtkUQsZeAxz1KWHvIl7u5zRGpx/hAygq1jhl
	BIUGJFvQONNka5x0nSTifBbtYxf4QSU=
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH] drivers/xen/xenbus: remove quirk for Xen 3.x
Date: Fri, 15 Aug 2025 09:40:52 +0200
Message-ID: <20250815074052.13792-1-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
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)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:mid,suse.com:dkim,suse.com:email];
	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];
	RCVD_TLS_ALL(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	FROM_EQ_ENVFROM(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	RCPT_COUNT_FIVE(0.00)[5];
	DKIM_TRACE(0.00)[suse.com:+]
X-Spam-Flag: NO
X-Spam-Level: 
X-Rspamd-Queue-Id: 699EA1F840
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Rspamd-Action: no action
X-Spam-Score: -3.01

The kernel is not supported to run as a Xen guest on Xen versions
older than 4.0.

Remove xen_strict_xenbus_quirk() which is testing the Xen version to be
at least 4.0.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 drivers/xen/xenbus/xenbus_xs.c | 23 -----------------------
 1 file changed, 23 deletions(-)

diff --git a/drivers/xen/xenbus/xenbus_xs.c b/drivers/xen/xenbus/xenbus_xs.c
index 3c9da446b85d..528682bf0c7f 100644
--- a/drivers/xen/xenbus/xenbus_xs.c
+++ b/drivers/xen/xenbus/xenbus_xs.c
@@ -718,26 +718,6 @@ int xs_watch_msg(struct xs_watch_event *event)
 	return 0;
 }
 
-/*
- * Certain older XenBus toolstack cannot handle reading values that are
- * not populated. Some Xen 3.4 installation are incapable of doing this
- * so if we are running on anything older than 4 do not attempt to read
- * control/platform-feature-xs_reset_watches.
- */
-static bool xen_strict_xenbus_quirk(void)
-{
-#ifdef CONFIG_X86
-	uint32_t eax, ebx, ecx, edx, base;
-
-	base = xen_cpuid_base();
-	cpuid(base + 1, &eax, &ebx, &ecx, &edx);
-
-	if ((eax >> 16) < 4)
-		return true;
-#endif
-	return false;
-
-}
 static void xs_reset_watches(void)
 {
 	int err;
@@ -745,9 +725,6 @@ static void xs_reset_watches(void)
 	if (!xen_hvm_domain() || xen_initial_domain())
 		return;
 
-	if (xen_strict_xenbus_quirk())
-		return;
-
 	if (!xenbus_read_unsigned("control",
 				  "platform-feature-xs_reset_watches", 0))
 		return;
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 08:12:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 08:12:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082900.1442586 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umpXb-0008Lw-Br; Fri, 15 Aug 2025 08:11:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082900.1442586; Fri, 15 Aug 2025 08:11: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 1umpXb-0008Lp-90; Fri, 15 Aug 2025 08:11:59 +0000
Received: by outflank-mailman (input) for mailman id 1082900;
 Fri, 15 Aug 2025 08:11:57 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5DW6=23=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umpXZ-0008Lj-MQ
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 08:11:57 +0000
Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com
 [2a00:1450:4864:20::52f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 823d4522-79af-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 10:11:56 +0200 (CEST)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-6188b5b7c72so2277910a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 01:11: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
 4fb4d7f45d1cf-618b01ae6b1sm904242a12.33.2025.08.15.01.11.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Aug 2025 01:11: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>
X-Inumbo-ID: 823d4522-79af-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755245516; x=1755850316; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=/7wJAb18ZbFup88taCz0Ci3UqtvdykWsRuNCo8SXl0U=;
        b=XYqH1p+PAA9g89zmGNtYmv30sGoigsBgFZiPcz/3M7B+ePuQBJB9K9KLEXlmm4RwlP
         4jTC2RN0Chd4bHWZ68pwzeS4Tbg8cAee81BoeSHWStbs1/p+08scFjtotu/D/5ivqkS4
         1hitTac4AJ/Pq50aOg8RSa3RPNvE5tx+VGwiRRjcFRw6q98FBw6ebkzTEBqL+zQKKyti
         ask01pnVvJy1QPHFU4H6FQH6ejFu4KI4Pr1v9FUU/RB8XFWN+1OCBhnC9N6sifC7IMbo
         02vUotLo249dDPdpGWWNSFSaBVJ9NxxH+CKARCKALlMU8i+F99o8clLsOTXmZh/vWng/
         gbKQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755245516; x=1755850316;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/7wJAb18ZbFup88taCz0Ci3UqtvdykWsRuNCo8SXl0U=;
        b=hwGvoOE8xif3U6EBdPGpOS/5hw/2Mk38CwgN9OSUE5kMIboGZeGoCKAfvla5+6UhSN
         yO4laMic1Zym/uTsH3qekUs+u6hE7nZIcRmbZkXFxSXd3yztq3mjXgk/pJavuYPlEK6j
         7n6FcdobQMnhsoHLvOE1N46DFu6ZlSELYMbpqGKfoU8ZEHvEQOmPWfnnfDPKlg/RUzes
         Xq6rF9e7DhV1GNq5OntsOMnTouwifhYGU5YQlssC4qngBG2nh8+Q53SFY92JSrM9IpAJ
         lVBOss0kKhbG9EdapV0/zdRZbKhrulaMYbyAPz0cMajHEhsJF1mMI0ULZOxeraiP4p+w
         QRmg==
X-Forwarded-Encrypted: i=1; AJvYcCXYXJWuchIq7Qe1DSbEqp6Z+bE8jVPGUxUWoqLdiXL7I1hGlUrelE1W/l24YwrvWyasycRtEPoVqwM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwDIpZCXfI595o8qoRttdl8ZdNo7qaOB8PdACjnSXPZ4T2ZgiJ5
	InPAfLh85u7qGny1qqnLHalK1kNhTD67Zdoy6bcy0PUDQN47ZUOompVma7jbNCvjWg==
X-Gm-Gg: ASbGnctY0odlAxFhizu52b88gWmzdo0Is4j9/ESCA96Fthuv8LssEFAbAApgHDBIOaM
	Q0dOAWXlZWuCIiQivYOR2/gdP2+qauTX3PBJgCXfKpUXwbH+edK8PW2SnCCgkVpUey2EDoqYyDY
	duvuSAMDpd10kQKHBjAK+Fjkx7UFmR8052bn6U/LcUnDPhqIyd2uQ92wDpnKmL4JDHZO2ucI4fr
	58J2YxujkNgQwMIN/GRIhJguaByk8a8wtruFSdUB/fVSHUtFwnoSlOeLQgBvaE/VwoYiUr44BqN
	o+S6lwORvUWEVmcd/sSm4jwDGzIjqjlzsQUYTg5qvt1qj7LjOlmQsYtZb1HbFKal5P7UkTgcnFq
	j6podKoi81vBkW3+H0W6V+1qOOefDH74fCoG0XjI3oPbaKyG4Mj53dAzp/4+hVPe02uS4sD5Wgy
	M/5C6yVNk=
X-Google-Smtp-Source: AGHT+IGja/EAN4ScOvYCZ8G+MGMP3/VwHe7ivnMWIm3sFW6swkHtx/mORnC6NPLN+IPJHqajRMz05A==
X-Received: by 2002:a05:6402:348e:b0:618:6afb:8cb2 with SMTP id 4fb4d7f45d1cf-618b05041f5mr871397a12.5.1755245515594;
        Fri, 15 Aug 2025 01:11:55 -0700 (PDT)
Message-ID: <de30aca2-1840-473b-8995-fd58f2447c44@suse.com>
Date: Fri, 15 Aug 2025 10:11:54 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 01/25] xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: "Penny, Zheng" <penny.zheng@amd.com>, "Huang, Ray" <Ray.Huang@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 "Orzel, Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20250803094738.3625269-1-Penny.Zheng@amd.com>
 <20250803094738.3625269-2-Penny.Zheng@amd.com>
 <371bc812-acdb-41ef-950b-3c9e5feea48e@suse.com>
 <DM4PR12MB84510F1F89641B672916C055E122A@DM4PR12MB8451.namprd12.prod.outlook.com>
 <3e20688c-c125-4aa4-bc06-1fe634550f70@suse.com>
 <alpine.DEB.2.22.394.2508141604510.10166@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.2508141604510.10166@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15.08.2025 01:14, Stefano Stabellini wrote:
> On Tue, 5 Aug 2025, Jan Beulich wrote:
>> On 05.08.2025 05:38, Penny, Zheng wrote:
>>> [Public]
>>>
>>>> -----Original Message-----
>>>> From: Jan Beulich <jbeulich@suse.com>
>>>> Sent: Monday, August 4, 2025 3:43 PM
>>>> To: Penny, Zheng <penny.zheng@amd.com>
>>>> Cc: Huang, Ray <Ray.Huang@amd.com>; Andrew Cooper
>>>> <andrew.cooper3@citrix.com>; Roger Pau MonnÃ© <roger.pau@citrix.com>;
>>>> Anthony PERARD <anthony.perard@vates.tech>; Orzel, Michal
>>>> <Michal.Orzel@amd.com>; Julien Grall <julien@xen.org>; Stefano Stabellini
>>>> <sstabellini@kernel.org>; xen-devel@lists.xenproject.org
>>>> Subject: Re: [PATCH v1 01/25] xen/x86: move domctl.o out of
>>>> PV_SHIM_EXCLUSIVE
>>>>
>>>> On 03.08.2025 11:47, Penny Zheng wrote:
>>>>> In order to fix CI error of a randconfig picking both
>>>>> PV_SHIM_EXCLUSIVE=y and HVM=y results in hvm.c being built, but
>>>>> domctl.c not being built, which leaves a few functions, like
>>>>> domctl_lock_acquire/release() undefined, causing linking to fail.
>>>>> To fix that, we intend to move domctl.o out of the PV_SHIM_EXCLUSIVE
>>>>> Makefile /hypercall-defs section, with this adjustment, we also need
>>>>> to release redundant vnuma_destroy() stub definition and paging_domctl
>>>>> hypercall-defs from PV_SHIM_EXCLUSIVE guardian, to not break
>>>>> compilation Above change will leave dead code in the shim binary
>>>>> temporarily and will be fixed with the introduction of CONFIG_DOMCTL.
>>>>>
>>>>> Fixes: 568f806cba4c ("xen/x86: remove "depends on
>>>>> !PV_SHIM_EXCLUSIVE"")
>>>>> Reported-by: Jan Beulich <jbeulich@suse.com>
>>>>> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
>>>>> ---
>>>>> v1 -> v2:
>>>>> - remove paging_domctl hypercall-defs
>>>>
>>>> And you've run this through a full round of testing this time, in isolation?
>>>
>>> This commit shall be committed together with "xen/x86: complement PG_log_dirty wrapping", (I've added in change log, idk why it didn't get delivered in the mail list in the last).
>>
>> And "committed together" still means the two at least build okay independently
>> (i.e. allowing the build-each-commit job to succeed)?
>>
>> As to the missing indication thereof in the submission: Patch 01 has a revlog,
>> so if anything was missing there you must have added it some other way. But
>> the cover letter is lacking that information as well. (As indicated earlier,
>> to increase the chance of such a remark actually being noticed, it's best put
>> in both places.)
>>
>>> As PG_log_dirty is disabled on PV mode, paging_domctl() will still have "undefined reference" on PV mode, which gets fixed in "xen/x86: complement PG_log_dirty wrapping".  I thought it better sits there.
>>> If it doesn't comply with the commit policy, I'll move according fix here.
>>
>> Let me post a pair of patches dealing with part of the problem, in an imo
>> (longer term) more desirable way.
> 
> With this patch https://marc.info/?l=xen-devel&m=175438069103017
> committed, can we go ahead with this patch, to resolve the outstanding
> build problem?

It first needs re-basing, I expect. There were also other anomalies, like a
requirement to commit together with another patch.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 08:14:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 08:14:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082909.1442597 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umpaI-0000RE-OO; Fri, 15 Aug 2025 08:14:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082909.1442597; Fri, 15 Aug 2025 08:14:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umpaI-0000R7-LX; Fri, 15 Aug 2025 08:14:46 +0000
Received: by outflank-mailman (input) for mailman id 1082909;
 Fri, 15 Aug 2025 08:14:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5DW6=23=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umpaI-0000Qz-8h
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 08:14:46 +0000
Received: from mail-ed1-x535.google.com (mail-ed1-x535.google.com
 [2a00:1450:4864:20::535])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e669c9a9-79af-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 10:14:44 +0200 (CEST)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-6188b72b7caso2062534a12.2
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 01:14: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
 4fb4d7f45d1cf-618b01b5f14sm923645a12.40.2025.08.15.01.14.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Aug 2025 01:14: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>
X-Inumbo-ID: e669c9a9-79af-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755245683; x=1755850483; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=G88eqCYTto50nyzB0kT3fBFYvRF+HnYjHzuaSVpQ15Q=;
        b=FDuTqNKBJWUzfsPxngQI3OKiv5t38gURhp6Swl+4AZP1ZYubwS79kJQHAWPQMHIgKc
         UWee8KmN4DXHfgIFz6WeiCpTCXKVPJJHp3jZVOoy9v+kqpEvv83LyQo2c4Mipa9j8SE9
         MY08ngQqZWBxG2T1ToOkH2UUNcbBN4I7tbEF1t0HytV9SjTo0xl5gY5nauby23yWGHmQ
         r2sF/xVCBjpMG+N4KOzSUGQ1MNAbJ+KOLqyA0bPJEWPYo0aQMorWu4C5NL9vW7gr5CzF
         v2qkOKTxdvV1qucPed+n5fHnGGxtWONNUqtc815erORn7zJO85uEApG7XuL873FU3fhh
         g4ww==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755245683; x=1755850483;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=G88eqCYTto50nyzB0kT3fBFYvRF+HnYjHzuaSVpQ15Q=;
        b=E7OfloOJTnDK4u/gSbiN8QzzGDodZDQstxuL5bQdfbN/s+cMTsGiZhKfQu7kvGCcPC
         gAMTMfzLwtWrb7J6ttt0H8BqEcPvpayfftYlHvFPT1/3CMYAajAx5DiIw6IHYZ3HesMr
         0TEneTyIOPEBE7xYC90RCA6nXbsQjC19QDLVABgeJAwTzot4zj+a+MUYwUgPdRCL2CMn
         rwz9gzi/tkO7FzRztnx74TmkpC9AMXBbhmndcfYi7eK7uPe2AdU3dL88sCIyLBb85d/v
         ub1k0KuJKy82FZpwJPXXd+wH1FXvyxkzoXWSW2CDbJVIa591HBW1rEqeZTnZ44wxMKUh
         Ncfg==
X-Forwarded-Encrypted: i=1; AJvYcCUkMq1OdhHgnaAtVwwy9xtbBxbFoJPUE7u1d4bMDHEHYRDwB4/2yzffsCsOJv1yxxgT0D7t73+t/Vs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwQP25XpA1ViNlgs7qQovuzIjKFCsQxHPzt75DJ1ARH+bpj/ItN
	H+HTolj43BThw0hPuJT0L+UOPNyWfxVLkGKv7Oi8JHh7NM9Dd1vqvOwfkFFP1rh8wg==
X-Gm-Gg: ASbGncv/F4HHCU10njPPrFbsverEH27D0fhMmXCGis8Xq4JE+J3/M5anoC5ghMUYFC6
	eTtekMBpSFE2uHLOJG2EQ7eUhKbMff18U3cMhWS1enGHzVlpO/WjiqhUfJbt/BGBNUTtxvpdtGE
	KfVOvPO/VO4FLrQjRUYIHJKjmYkpJrm7NEZQ8p6Yn9i7cKnxQ5u5FONwZrMFxmYPIcklW8Hq7ah
	4oHQOOUPMxg2vdY9TC/F3BrzNDX6bL6onABStUNvCd18uhucL8hInyZHXDREN82EPC9Hx/6M6mu
	OQe1XsIRjzpKYoHya6QqNAELIj9m9Kat1//RWsaPGb2LKAatGGDMm21t6Cpmr/chYqK3aaeSpzh
	ExkiZsC7zK5j2DNlAU7/vFpbgFUxkDTSuwjEGPOPObiiPsEsPPedVUhn5xDDiN1dFHQ56THAgtq
	UaJ6GpM8LfdOQIFhSkbw==
X-Google-Smtp-Source: AGHT+IFtPzpXjYMAKcvl9d5L3FVP/b3gNasxzDxZ/0uItiGO7RJ5Lf+VzLef/Ss/aL5ikBzmHKr0Vw==
X-Received: by 2002:a05:6402:84d:b0:615:a847:c179 with SMTP id 4fb4d7f45d1cf-618b054b8e0mr894951a12.18.1755245683500;
        Fri, 15 Aug 2025 01:14:43 -0700 (PDT)
Message-ID: <a3092ae1-d836-4403-8fb5-30593fcd2fb8@suse.com>
Date: Fri, 15 Aug 2025 10:14:42 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Consider changing CONFIG_ACPI default on ARM?
To: Demi Marie Obenour <demiobenour@gmail.com>
Cc: xen-users@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>,
 Paul Leiber <paul@onlineschubla.de>, Elliott Mitchell <ehem+xen@m5p.com>
References: <CAO_48GG1Tg0d3ATnNAYNr0cg7Ty_zsnzT29=dpkk99DxyTWcmg@mail.gmail.com>
 <fceb5df8-d628-479d-acb3-d1d26409fbac@onlineschubla.de>
 <aJLae1Nl0pyOZgyh@mattapan.m5p.com>
 <1b96f2f3-55a2-4b33-84b1-a7c18d38d10c@suse.com>
 <6e9b5265-7a3b-4fd5-b14e-0e60a8b49833@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: <6e9b5265-7a3b-4fd5-b14e-0e60a8b49833@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.08.2025 23:27, Demi Marie Obenour wrote:
> On 8/14/25 02:55, Jan Beulich wrote:
>> On 06.08.2025 06:30, Elliott Mitchell wrote:
>>> On Tue, Jul 01, 2025 at 10:01:13PM +0200, Paul Leiber wrote:
>>>>
>>>> Unfortunately, I don't have a direct answer to the question (as is so often
>>>> the case, due to my limited knowledge and experience). However, I am
>>>> successfully running Xen on a RPi 4 (mostly, except for some VLAN related
>>>> networking issues).
>>>>
>>>> I used instructions in [1] to install vanilla Debian on the RPi, including
>>>> UEFI boot and grub. I then compiled Xen with expert options and ACPI
>>>> enabled.
>>>>
>>>> I don't know if there are better solutions. For example, I suffer from the
>>>> fact that I2C doesn't work when using UEFI boot on a RPi. Nowadays, Debian
>>>> provides their own vanilla Debian images for RPi and with working I2C, but
>>>> these images are using a different boot method that I didn't know how to use
>>>> with Xen.  So far, the procedure described above seems to be the easiest
>>>> solution for me.
>>>
>>>
>>>> [1] https://forums.raspberrypi.com/viewtopic.php?t=282839
>>>>
>>>> Am 30.06.2025 um 12:35 schrieb Sumit Semwal:
>>>>>
>>>>> I've just begun to experiment with the Raspberry Pi 5, trying to run a
>>>>> simple xen + Dom0 setup, using uBoot, and the bookworm based Rpi
>>>>> distro.
>>>>>
>>>>> I've tried combinations of the following setup:
>>>>>
>>>>> 1. prebuilt Rpi5 kernel + dtbs, and have also tried to build them from
>>>>> source [1]
>>>>> 2. Xen from upstream [2] and xen-troops [3]
>>>>> 3. upstream uBoot from [4]
>>>>>
>>>>> but with the same result: [short log below; I can provide a fuller log
>>>>> if needed]
>>>>>
>>>>> (XEN) DT: ** translation for device /axi/msi-controller@1000130000 **
>>>>> (XEN) DT: bus is default (na=2, ns=2) on /axi
>>>>> (XEN) DT: translating address:<3> 000000ff<3> fffff000<3>
>>>>> (XEN) DT: parent bus is default (na=2, ns=1) on /
>>>>> (XEN) DT: walking ranges...
>>>>> (XEN) DT: default map, cp=0, s=1000000000, da=fffffff000
>>>>> (XEN) DT: default map, cp=1000000000, s=100000000, da=fffffff000
>>>>> (XEN) DT: default map, cp=1400000000, s=400000000, da=fffffff000
>>>>> (XEN) DT: default map, cp=1800000000, s=400000000, da=fffffff000
>>>>> (XEN) DT: default map, cp=1c00000000, s=400000000, da=fffffff000
>>>>> (XEN) DT: not found !
>>>>> (XEN) Unable to retrieve address 1 for /axi/msi-controller@1000130000
>>>>> (XEN) Device tree generation failed (-22).
>>>>> (XEN) debugtrace_dump() global buffer starting
>>>>> 1 cpupool_create(pool=0,sched=6)
>>>>> 2 Created cpupool 0 with scheduler SMP Credit Scheduler rev2 (credit2)
>>>>> 3 cpupool_add_domain(dom=0,pool=0) n_dom 1 rc 0
>>>>> (XEN) wrap: 0
>>>>> (XEN) debugtrace_dump() global buffer finished
>>>>> (XEN)
>>>>> (XEN) ****************************************
>>>>> (XEN) Panic on CPU 0:
>>>>> (XEN) Could not set up DOM0 guest OS (rc = -22)
>>>>> (XEN) ****************************************
>>>>>
>>>>>
>>>>> I'm certain I'm missing something, but before I delve deeper, I just
>>>>> wanted to ask if this is a known issue, and if so, are there any
>>>>> workarounds or solutions available for this?
>>>>>
>>>>> Any help about this is highly appreciated!
>>>>>
>>>>> Thanks and Best regards,
>>>>> Sumit.
>>>>>
>>>>> [1]:  https://github.com/raspberrypi/linux rpi-6.12.y branch
>>>>> [2]: git://xenbits.xen.org/xen.git - main branch
>>>>> [3] xen-troops https://github.com/xen-troops/xen - rpi5_dev branch
>>>>> [4]: https://github.com/u-boot/u-boot.git master branch
>>>
>>> Ultimately Debian is choosing to leave most defaults alone.  So far the
>>> Xen developers have left CONFIG_ACPI defaulting to off on ARM*.  The
>>> Debian project doesn't have paid people to support Raspberry PI hardware,
>>> despite being rather common.  As a result there aren't any official
>>> Raspberry PI images, but people associated with Tianocore have gotten
>>> generic images to boot on Raspberry PI hardware.
>>>
>>> I'm unsure of the likelihood of getting the Debian maintainers to
>>> override the default.  Yet due being by far the simplest way to install
>>> Debian and Xen on a very common ARM64 platform, perhaps the Xen
>>> developers should consider changing?
>>
>> In an open source project everyone is a developer. There is a
>> significant amount of work someone needs to pick up to change this
>> SUPPORT.md entry:
>>
>> ### Host ACPI (via Domain 0)
>>
>>     Status, x86 PV: Supported
>>     Status, ARM: Experimental
>>
>> Parties interested in changing the support status of any component are the
>> primary candidates to actually carry out the necessary work.
> 
> What is that work?

To determine what exactly needs doing is part of the exercise. I, for one, am
unaware of a concrete written down set of things which need doing.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 08:17:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 08:17:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082921.1442606 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umpdF-00010F-76; Fri, 15 Aug 2025 08:17:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082921.1442606; Fri, 15 Aug 2025 08:17: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 1umpdF-000108-4V; Fri, 15 Aug 2025 08:17:49 +0000
Received: by outflank-mailman (input) for mailman id 1082921;
 Fri, 15 Aug 2025 08:17:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oFbR=23=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1umpdE-000102-Co
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 08:17:48 +0000
Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com
 [2a00:1450:4864:20::42d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 539a91fb-79b0-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 10:17:47 +0200 (CEST)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-3b9e4148134so900093f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 01:17:47 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3bb67d86755sm1015229f8f.48.2025.08.15.01.17.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Aug 2025 01:17: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>
X-Inumbo-ID: 539a91fb-79b0-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755245867; x=1755850667; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=BSD2pbMUBebq8bYeGE877yWQHhdSd05nNNyJHMAA7Uc=;
        b=YYsSHO6QEmvVxifMafnaK5AY9cKNUZce76rpfUPz2KowYxFO8IIAmrmYyGuSz8adNg
         aP0aK1Uj5ANdBWEJGxELxc7w6Gg6xLy1QkaTzjkpb5OTSi7cO4GMp9MvDlw9oo5sisLL
         nWc0n+1gp0eFAp2vrPbS7C7ep5BNzf/oEPwz0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755245867; x=1755850667;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BSD2pbMUBebq8bYeGE877yWQHhdSd05nNNyJHMAA7Uc=;
        b=jalAL0jsKONGiV5VgxQwd5V3f+JrqdqIAPvEaOakX3j86qGhdmsHGwP0anj7XRV7bg
         hBLjkRlX1gvuzchu9/WyrAfDYa8Rm4Rqq/EF73TcxwyQKkx+cgyzxmKw0Ln2hS7Aravf
         OmHdEL5U6vGR0Hfhwfrghs7wCSaucxp1vHHtGjosmLregzL6g2XkT3CjnTIwYu8sqfDc
         kFvP+INp5/TCI6Nr+154clLPPY6whSbwjgYUhy7LEzvEa3WgL/VNxL7OP3JY8zCn8nc3
         I2IDJOsye+xj05jRMmRzoU6lJZUcvvEn90rvfcFhS/ZOYT4q5Fi9QIDBSZOJgFdNWohW
         dNcg==
X-Gm-Message-State: AOJu0Yzu4tFRQHYvniD2yZOJNRO/cuxrKW34VjGySuhvTeL3Ob/6r7cp
	YKoNqaVB8aQu9H1yKPP7sE/UNVNwy65YYea7fO/ck2JtyYuFwQhndGD3/cmz1+SrKK4=
X-Gm-Gg: ASbGncsrYQ+32AY31dS888upVDbuJ1Nd0cfws5qkhZYRtA74ovKNA69WqhmT0XZX6RL
	EXPZQoWCZ/1wlSbqA65WA9wrVqMjgvtc43KuT0FrPP6Ygn1azDK/x7+Zz/AqNOMPdXbUvP7266r
	Z/FEsvg/PYJUAO/0AFZwn4QRkoxuI5nofve6JLhjmABHzehhtr07Jeevm9lh55SYI7h8vXNFsnT
	V5vLJzCOjnk3vVT32qC2TITmtdGFsQWZluGEhHZ4snWoxHliGKxxLu/k0a9RcHt5iQj/ySV1QtG
	VeryYqwPdTRrO70/sSZdGXCbqzALHNn1BlEe9KmRNHiOCyCVuvjijvWtLF72um4K4yxj4dDgnZr
	YLPLufXyCUvh+pDaNmgrCoil+GJc2R6kMSfsYRwqSNFAhfrDWfe0TaHMh0Y8Wk5gxDKTMtMRFey
	Qchrs=
X-Google-Smtp-Source: AGHT+IHg+viKjf6cq6sYPDHu/sWzWXU+eRm++UntVqWP2X6PEMGK1wObFGgG/qQcp4WQFPvuw0a1RA==
X-Received: by 2002:a05:6000:2893:b0:3b9:48f:1960 with SMTP id ffacd0b85a97d-3bb692bcf88mr908009f8f.49.1755245866873;
        Fri, 15 Aug 2025 01:17:46 -0700 (PDT)
Message-ID: <f3ff5b2d-8077-4591-bf1f-bd658d705242@citrix.com>
Date: Fri, 15 Aug 2025 09:17:45 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen: Use auto as per C23
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Roberto Bagnara <roberto.bagnara@bugseng.com>,
 "consulting @ bugseng . com" <consulting@bugseng.com>
References: <20250814222524.2638883-1-andrew.cooper3@citrix.com>
 <3056ed85948288639110e3cdd6b28c6e@bugseng.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <3056ed85948288639110e3cdd6b28c6e@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15/08/2025 8:20 am, Nicola Vetrini wrote:
> On 2025-08-15 00:25, Andrew Cooper wrote:
>> In macros it is common to declare local variables using typeof(param)
>> in order
>> to ensure that side effects are only evaluated once.Â  A consequence
>> of this is
>> double textural expansion of the parameter, which can get out of hand
>> very
>> quickly with nested macros.
>>
>> In C23, the auto keyword has been repurposed to perform type inference.
>>
>> A GCC extension, __auto_type, is now avaialble in the new toolchain
>> baseline
>> and avoids the double textural expansion.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>
> Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

Thankyou.

>>
>> diff --git a/xen/include/xen/compiler.h b/xen/include/xen/compiler.h
>> index 88bf26bc5109..38ef5d82ad95 100644
>> --- a/xen/include/xen/compiler.h
>> +++ b/xen/include/xen/compiler.h
>> @@ -64,6 +64,20 @@
>> Â # define asm_inline asm
>> Â #endif
>>
>> +/*
>> + * In C23, the auto keyword has been repurposed to perform type
>> inference.
>> + *
>> + * This behaviour is available via the __auto_type extension in
>> supported
>> + * toolchains.
>> + *
>> + *
>> https://www.gnu.org/software/c-intro-and-ref/manual/html_node/Auto-Type.html
>> + * https://clang.llvm.org/docs/LanguageExtensions.html#auto-type
>> + */
>> +#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 202311L
>> +/* SAF-3-safe MISRA C Rule 20.4: Giving the keyword it's C23
>> meaning. */
>> +#define auto __auto_type
>> +#endif
>> +
>
> A more detailed explanation should live in deviations.rst under this
> bullet point
>
> Â Â  * - R20.4
> Â Â Â Â  - The override of the keyword \"inline\" in xen/compiler.h is
> present so
> Â Â Â Â Â Â  that section contents checks pass when the compiler chooses not to
> Â Â Â Â Â Â  inline a particular function.
> Â Â Â Â  - Comment-based deviation.
>
> as described in the SAF entry:
>
> Â Â Â Â Â Â Â  {
> Â Â Â Â Â Â Â Â Â Â Â  "id": "SAF-3-safe",
> Â Â Â Â Â Â Â Â Â Â Â  "analyser": {
> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "eclair": "MC3A2.R20.4"
> Â Â Â Â Â Â Â Â Â Â Â  },
> Â Â Â Â Â Â Â Â Â Â Â  "name": "MC3A2.R20.4: allow the definition of a macro with
> the same name as a keyword in some special cases",
> Â Â Â Â Â Â Â Â Â Â Â  "text": "The definition of a macro with the same name as a
> keyword can be useful in certain configurations to improve the
> guarantees that can be provided by Xen. See docs/misra/deviations.rst
> for a precise rationale for all such cases."
> Â Â Â Â Â Â Â  },

Ah right.Â  What about this:

"Xen does not use the \"auto\" keyword as a storage qualifier.Â  The
override of the keyword \"auto\" in xen/compiler.h is to give it it's
C23 behaviour of type inference."

?

~Andrew

P.S. I thought that final fix was too easy.Â  Your instructions for the
main config were spot on and worked first time, except for getting the
R20.4 violation too.


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 08:22:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 08:22:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082942.1442616 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umphU-0002jx-Qp; Fri, 15 Aug 2025 08:22:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082942.1442616; Fri, 15 Aug 2025 08:22: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 1umphU-0002jq-NW; Fri, 15 Aug 2025 08:22:12 +0000
Received: by outflank-mailman (input) for mailman id 1082942;
 Fri, 15 Aug 2025 08:22:11 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5DW6=23=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umphT-0002jk-SA
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 08:22:11 +0000
Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com
 [2a00:1450:4864:20::533])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ef1dc478-79b0-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 10:22:08 +0200 (CEST)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-6188b5b11b2so2221375a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 01:22: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
 a640c23a62f3a-afcdcfcce74sm86771566b.70.2025.08.15.01.22.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Aug 2025 01:22: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>
X-Inumbo-ID: ef1dc478-79b0-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755246128; x=1755850928; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=FicuPYQ+5C0gzJB+7lhCWVOUMKux/rD98bas8hJhuOs=;
        b=CQF/ANW0gCp5Vpe5KyCq3bJjpSBAVjE8ASzJOqGXTW0xZJYUc3eoqNH4i8QYxsjnDm
         wyP448gELVGf7n3Ij0df5tdci3Rl0gE081vuqnjfwP6PDtHp15mXcBPFSSdROF9I3Onw
         2QcfYvY4zMYHfn8CXAj+K6R/l7RMjfZODs6N3j09M1lRlTVWBT+EQP76uTHZr9rtdnOS
         dHRwccrKnaX3VGca78GTQyLnUOHjhFiayxzlqaxgb2yp+SHR5avEFMhH/QpFqqS5qRKf
         lwnl9zVPCgjlkvKvwdrRceYPFBpkih6LLkBJNux4XCBWF3IouSEjUqALYhfxJOqoaTRD
         L02g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755246128; x=1755850928;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=FicuPYQ+5C0gzJB+7lhCWVOUMKux/rD98bas8hJhuOs=;
        b=QORoL5NUYzJY/kAtIbF5vO5D8aAzmKt6YyIDDiCTFfoV7P1mYgLN3v/4rZw7hV80un
         5FNvmErgFe4JIvr8j2/fUjhcyjW787BDmQq50HKRnS3AHKmL7Fj0EH8KZVfBor9JlaBW
         CWxHNeb6/BXo/UvgcIurtDWOn3CcdvmOI/YoK6qOw4V47av1A0SWIt/aAvi0VvihwB1i
         0CSsJ8PCXqe1Uij2ZOullb+BP5DKNw8BmRJekuffq6pcfBaainHg1j7Lg6FLSyjxy+4y
         cNkHkdEeqApLujDNewgNNWHhknsTgfMQ87F63uV6OZwO7cFCZY90RgDitRcaIsRLA15H
         w1Ag==
X-Forwarded-Encrypted: i=1; AJvYcCUwuBG//LovLl0qTjRUXgO30s1mw/XAFH9WiCZ+4cM+YocpUpwoxq6d2K1S5pqElbfPzbMNLygLphc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxAVCR+jf0Bl32c4Ywj6BdYjIIOlKQzVJKl4IJbpYpyFIoDe1Nl
	MFwFf8qn9nKbVLlRG9VRLUllgn47mYssSBVq5X7d1kivi1vKy38wwxU8shufYIY7ug==
X-Gm-Gg: ASbGncurEJ9faZ00UwUpHmWeDzd21GCqG2be2MmdsmI0ToeC0xNTwj9Ra3w8Y1mBAIN
	PCfz/NQb5w/Wu5+KxkZgUwzJBVvcsDndpfe5D4q2iDoXgGNM0o6HU16rZN56j7kQ6PTIWs+HZY3
	vjTP0YNCM2DyDPw17PC8Le0ZfKTtio/IaONMM1nldDymtv8SoGDqCuHVcTBRh2Wqp05Ev/4ke5a
	3ELTayYJ/y2abUqYSswvTynZ/B/tnAxkVcqWZjuEbLNX2K6tD1o7E5Q4t4Gf5EY02xPvfmvDkW5
	Emg8O6r0OJiqFyVvKllYrFjCAKpM+guSBaHKALmzoHbVB1DLWVSgWpVFOtwBD08PArrazLx5Dt4
	0dmRFSNF/B6ri7X31h4VH1k6WmIhwPDc7JAB87GnUc2rnv7DU45YltHN1S8Os3nEnqajCk1Tr+w
	G1kmHHgXGPWqtRBMUd7g==
X-Google-Smtp-Source: AGHT+IEEGzfvZlFG9jwdVm5SXpogJTGqn+2ywMgCSU+x22t3Sl8pmaFUrvDjCJoiPNLgVVL1Lqbm9A==
X-Received: by 2002:a17:907:70c:b0:af2:4769:8917 with SMTP id a640c23a62f3a-afcdc24e050mr78524866b.37.1755246127676;
        Fri, 15 Aug 2025 01:22:07 -0700 (PDT)
Message-ID: <0e9878a9-fb0d-4d18-ab15-eb248629b192@suse.com>
Date: Fri, 15 Aug 2025 10:22:06 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 09/22] x86/traps: Move load_system_tables() into
 traps-setup.c
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-10-andrew.cooper3@citrix.com>
 <a4a88d7a-8c1f-4170-a1fe-afafcad0c8ea@suse.com>
 <9e955bff-c145-4a52-af4f-a7055fc9aa67@citrix.com>
 <8e0b4a82-3189-4446-96a8-921d8ae44a21@suse.com>
 <5def44a3-4139-4870-94f2-cb895078f968@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: <5def44a3-4139-4870-94f2-cb895078f968@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.08.2025 20:09, Andrew Cooper wrote:
> On 14/08/2025 9:55 am, Jan Beulich wrote:
>> On 13.08.2025 13:25, Andrew Cooper wrote:
>>> On 12/08/2025 10:19 am, Jan Beulich wrote:
>>>> On 08.08.2025 22:23, Andrew Cooper wrote:
>>>>> Since commit a35816b5cae8 ("x86/traps: Introduce early_traps_init() and
>>>>> simplify setup"), load_system_tables() is called later on the BSP, so the
>>>>> SYS_STATE_early_boot check can be dropped from the safety BUG_ON().
>>>>>
>>>>> Move the BUILD_BUG_ON() into build_assertions(),
>>>> I'm not quite convinced of this move - having the related BUILD_BUG_ON()
>>>> and BUG_ON() next to each other would seem better to me.
>>> I don't see a specific reason for them to be together, and the comment
>>> explains what's going on.
>>>
>>> With FRED, we want a related BUILD_BUG_ON(), but there's no equivalent
>>> BUG_ON() because MSR_RSP_SL0 will #GP on being misaligned.
>> That BUILD_BUG_ON() could then sit next to the MSR write? Unless of course
>> that ends up sitting in an assembly source.
> 
> It's the bottom hunk in patch 14, which you've looked at now.
> 
> Personally, I think both BUILD_BUG_ON()'s should be together, because
> they are related.

I don't really agree, but I also won't insist on my preference to be followed.
IOW please keep as is.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 08:23:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 08:23:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082952.1442626 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umpis-0003FB-3i; Fri, 15 Aug 2025 08:23:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082952.1442626; Fri, 15 Aug 2025 08:23: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 1umpis-0003F4-19; Fri, 15 Aug 2025 08:23:38 +0000
Received: by outflank-mailman (input) for mailman id 1082952;
 Fri, 15 Aug 2025 08:23:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oFbR=23=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1umpiq-0003Ew-7x
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 08:23:36 +0000
Received: from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com
 [2a00:1450:4864:20::42c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 22526d4d-79b1-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 10:23:34 +0200 (CEST)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-3b9e413a219so1444141f8f.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 01:23:34 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45a1c748a9esm49585255e9.19.2025.08.15.01.23.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Aug 2025 01:23: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>
X-Inumbo-ID: 22526d4d-79b1-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755246213; x=1755851013; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=1KbG4WpTRqhtC6im1pjbQasRJ4zCXOuj0sRVv8P1oe4=;
        b=Z1lV2MbYTThlfqx0tPjJyepcN5j88SIYceYfiikoMMO3D+19VpLgB+fbLK7ffwiJsy
         wMrB5GabtUbgX7bVGy6Qyk2AHsxowGAe2CXy09/2n0E4rawr+I2Rh7TPstrDUAN5UrQB
         ylaIx3NvcN4uhRxTESQr+W0w8javZJm9hiKj0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755246213; x=1755851013;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1KbG4WpTRqhtC6im1pjbQasRJ4zCXOuj0sRVv8P1oe4=;
        b=AliNHldveT1a+aVAv+CqzLgGaVgC1yXLWmRYFv2OBGix/0ajniNEDsi6+e/e1NG2yo
         BHTh1Euj5Qr3IO1mUMVpvHknAKSSnZ9UtBCp0TVxzWk8G6VxHG+zeYS2/hGfCAEEQeQs
         uqqHWTaGnR4cOJcZxGjXxlplCb6HI1EIM0aVlzQzHTDYzBbsfWOeOEcwY/R71M1bslHE
         G02JHuEsXYGwTXCmQdgpQfgRpO59rBYodRVQQO0pO92o1ConAyjkjkHN66M6B1Nr5dj6
         bjm3KlEAvmsxqzQMpCwU36DFSmDZgxak/M8amZoGru/8/LUUYuDcKEuIILm9hbQTjSLr
         9HUg==
X-Gm-Message-State: AOJu0YziYN8mESFxeG9WRLUN+1xKdSX6y1P18LjwjcUwXemArr4ZUH5A
	MtSbqE71j3fb6Om7GKkG8pwBOEAQWB0quZHrShumUTYFh+owl47NYQUfUk77gp6qkNY=
X-Gm-Gg: ASbGncvlyM0fwC+q9Mv0dbqjVuod5b6NAC1MU4lv52Lp18w5bT3fOxVfrNekgyaDMvJ
	nPmIP8tEeQb72oD1fysnrgJsSSDoLmP2MmzACfkDTVkOvS9bLLTdk2a1aNfJouBWQUDjmIRY3Gz
	MAA5laOIpMzmYEKJ8294iQtFFi62aOwed5m1nDJUbYbjCJVdfGtcPT0KkIJUhGrfzvqS3/oqfn3
	HxBtXCddfFzUEbJt63S8ALy8WeRNw1YKzD5PLjwlZImPtSq122WC9qB1B2t04oXjpPiGme390yV
	WBZA9hYt9QErDyhYpaRpQLcmmSGIFxFxrFmo3zQSpnoiwXKwZaWEVTGg9Y66Yrg1fVeqLYAP+R1
	oQe1choyRLK7aa1IYr+YjBGRL0F2P1givl8RlGXxZuDhNs9DevEHWX74UnoZQglGsrhkc
X-Google-Smtp-Source: AGHT+IGxm0RZ6o1a/9yLO+N7zXkYQMf3GJmBb3oyOL0vnFlNCIxKIAmjWvdV/3zGR3qqY6MoJ7CxJQ==
X-Received: by 2002:a5d:5f53:0:b0:3b8:d3ae:26e with SMTP id ffacd0b85a97d-3bb69b7d31emr661059f8f.53.1755246213536;
        Fri, 15 Aug 2025 01:23:33 -0700 (PDT)
Message-ID: <0a6576e2-183c-4411-8920-3930eb4ff6c9@citrix.com>
Date: Fri, 15 Aug 2025 09:23:32 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] docs/misra: fix sphinx-build issues
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <fb809a94e8a50bd3a59aa47ee1832c61af8a9f40.1755241166.git.dmytro_prokopchuk1@epam.com>
 <c7d9513dfc7201c5d3c6e6cbd99db481@bugseng.com>
 <77912fca-8bf2-43f5-8049-de4cdc3ec82d@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: <77912fca-8bf2-43f5-8049-de4cdc3ec82d@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15/08/2025 8:28 am, Dmytro Prokopchuk1 wrote:
>
> On 8/15/25 10:09, Nicola Vetrini wrote:
>> On 2025-08-15 09:00, Dmytro Prokopchuk1 wrote:
>>> Fix the following issues:
>>> 1. xen/docs/misra/deviations.rst:90: WARNING: Inline interpreted text or
>>> phrase reference start-string without end-string. [docutils]
>>> 2. xen/docs/misra/deviations.rst:54: ERROR: Error parsing content block
>>> for the "list-table" directive: uniform two-level bullet list expected,
>>> but row 6 does not contain the same number of items as row 1 (2 vs 3).
>>> * - R2.1
>>> Â  - Calls to the `__builtin_unreachable()` function inside the 
>>> expansion of
>>> Â Â Â  the `ASSERT_UNREACHABLE()` macro may cause a function to be marked as
>>> Â Â Â  non-returning. This behavior occurs only in configurations where
>>> Â Â Â  assertions are enabled. To address this, the `noreturn` property for
>>> Â Â Â  `__builtin_unreachable()` is overridden in these contexts, 
>>> resulting in
>>> Â Â Â  the absence of reports that do not have an impact on safety, despite
>>> Â Â Â  being true positives.
>>> Â Â Â  Xen expects developers to ensure code remains safe and reliable in 
>>> builds,
>>> Â Â Â  even when debug-only assertions like `ASSERT_UNREACHABLE() are 
>>> removed.
>>> 3. xen/docs/misra/rules.rst:127: WARNING: Inline interpreted text or 
>>> phrase
>>> reference start-string without end-string. [docutils]
>>>
>>> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
>> Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

>>
>> I recall that Andrew wanted to add a doc build test to avoid introducing 
>> warnings.

Yes I do, but sadly still on my TODO list.

>>  On that front, with my Sphinx version I also see this build 
>> warning:
>>
>> Running Sphinx v8.1.3
>> WARNING: Calling get_html_theme_path is deprecated. If you are calling 
>> it to define html_theme_path, you are safe to remove that code.
>>
> Yes, I see the same warning on my end.
> Need to address that in docs/conf.py as well.

IIRC, this needs ignoring for now.Â  It is still required in the minimum
Sphinx version we support.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 08:28:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 08:28:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082962.1442637 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umpnZ-0003p1-KX; Fri, 15 Aug 2025 08:28:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082962.1442637; Fri, 15 Aug 2025 08:28: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 1umpnZ-0003ou-Hg; Fri, 15 Aug 2025 08:28:29 +0000
Received: by outflank-mailman (input) for mailman id 1082962;
 Fri, 15 Aug 2025 08:28:28 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oFbR=23=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1umpnY-0003oo-95
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 08:28:28 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d1032b6a-79b1-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 10:28:27 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-45a1b05fe23so9468945e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 01:28:27 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45a1cda0021sm47814355e9.13.2025.08.15.01.28.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Aug 2025 01:28: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>
X-Inumbo-ID: d1032b6a-79b1-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755246507; x=1755851307; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=MqJ92Se36d2J1W6EeVLUW+3FLWK0HcX3Of0xKvlV+zU=;
        b=BBd8Vg1w4p1ZyQ6hz9n8zo/PsAtJ9r8h8X0RB7Rz6II6WqP+AseJfQP1ZV3sMNrUJl
         NG0OXdTS1sE/YI0b99ken2F3NSK7zvRe8ErYEzH8Nu31xbyl08nrqrHZukQXeYYYIGjg
         ipvCJFIR8EtvFg/d22dSCQcv1TAOzrB/Nwwn4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755246507; x=1755851307;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MqJ92Se36d2J1W6EeVLUW+3FLWK0HcX3Of0xKvlV+zU=;
        b=t6+Q1YsJhj1rHsq0CsC4VyJ3W0EYjPyyLxfjDWl48v+f0L8wvBdagd6qg8Hi3y4F/Q
         w1uMDRKpwNfTz+LFiel6na/Fb4E4yyYUPhSLcZZ8cieqfYYP90Qcb8TqDtu9poIiHnlo
         dQnyCfNdaVN71AelchB1YKhlJa7lWdcQPMueg5imcwalw0zsvTqPG05M7yRgnEtvx1wJ
         mP5mQO6cfOJREc2E5x+OaPwqjvdcGmnwbTQneEf46pbAyJZdFbq+qVqgqOSMgheCISw1
         jgvcpbtK7/DYzfzhCALbtuIvdkgWoJGgcUuk5hljZZO690YTyBhaq+JNdnENcP4Q6mqx
         g9kw==
X-Forwarded-Encrypted: i=1; AJvYcCXZvX85d6VR8tJIRRz7XchBGGhoC/n4m2/YeBQLou3xwzO+rOQWe93m4t4cce9xTobmp+cSMH4LH9o=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyNhc92gEzbpSVdwNgz5szOhwSPilWBsH+9QLOb79BoLBoMfFp/
	D3vmsdgCALvxnMsTTboYRV7dRgr8csNOmifkcgkWyN8x//4/yqrFPuupkUQETg0kSvg=
X-Gm-Gg: ASbGnctZZr7CyHXG8KHpKXPqcYAujNQFzyTQqw4RcXiAEkHYWGz4q2aMGTSY8sCLzKP
	vzGX8T1uc91xS6wCrv8umavUFjUm9eTaV6XM5MJatCkCBtlPAjK/3HNuW9aChTBAlxn0zYJFm6o
	kEBw+W8eiKBQ5uoM3XFI6ecU2w8it8yuyfpLDAcDGutaGZJjRzrmuqQ6EyaATu0LqW3BI/v6BG1
	TSk6f8QAazIbe/nG7ctvCYJiTNp1mjMYmRUukHO9KJjanNSsdzF9P57kSNcN7tjq9ZcI6QyXimV
	GNK7caSNs28g/TZGLQwH35kl/yqT4V22ppWnljJ6ldsd5vlrz/r0FUi0BiwursRfWOuVwckQ2H+
	YndKMi0dXTPMdF4MTem/zITydMsiMlqvbP+xc44jsQOTat2H8aAaB0DlO/nu2DZ01VsPO
X-Google-Smtp-Source: AGHT+IHPuMZYxjC/HdTcb66xNNpob0t8AiqzTTbqVpsL8iCJwZibAM378k6sNxiFtXl7WXikg2ckMA==
X-Received: by 2002:a05:600c:3b84:b0:458:7005:2ac3 with SMTP id 5b1f17b1804b1-45a230f5c66mr6648925e9.21.1755246506753;
        Fri, 15 Aug 2025 01:28:26 -0700 (PDT)
Message-ID: <a2f8167b-cfcc-4729-892b-d2994aa77f84@citrix.com>
Date: Fri, 15 Aug 2025 09:28:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 09/22] x86/traps: Move load_system_tables() into
 traps-setup.c
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-10-andrew.cooper3@citrix.com>
 <a4a88d7a-8c1f-4170-a1fe-afafcad0c8ea@suse.com>
 <9e955bff-c145-4a52-af4f-a7055fc9aa67@citrix.com>
 <8e0b4a82-3189-4446-96a8-921d8ae44a21@suse.com>
 <5def44a3-4139-4870-94f2-cb895078f968@citrix.com>
 <0e9878a9-fb0d-4d18-ab15-eb248629b192@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: <0e9878a9-fb0d-4d18-ab15-eb248629b192@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15/08/2025 9:22 am, Jan Beulich wrote:
> On 14.08.2025 20:09, Andrew Cooper wrote:
>> On 14/08/2025 9:55 am, Jan Beulich wrote:
>>> On 13.08.2025 13:25, Andrew Cooper wrote:
>>>> On 12/08/2025 10:19 am, Jan Beulich wrote:
>>>>> On 08.08.2025 22:23, Andrew Cooper wrote:
>>>>>> Since commit a35816b5cae8 ("x86/traps: Introduce early_traps_init() and
>>>>>> simplify setup"), load_system_tables() is called later on the BSP, so the
>>>>>> SYS_STATE_early_boot check can be dropped from the safety BUG_ON().
>>>>>>
>>>>>> Move the BUILD_BUG_ON() into build_assertions(),
>>>>> I'm not quite convinced of this move - having the related BUILD_BUG_ON()
>>>>> and BUG_ON() next to each other would seem better to me.
>>>> I don't see a specific reason for them to be together, and the comment
>>>> explains what's going on.
>>>>
>>>> With FRED, we want a related BUILD_BUG_ON(), but there's no equivalent
>>>> BUG_ON() because MSR_RSP_SL0 will #GP on being misaligned.
>>> That BUILD_BUG_ON() could then sit next to the MSR write? Unless of course
>>> that ends up sitting in an assembly source.
>> It's the bottom hunk in patch 14, which you've looked at now.
>>
>> Personally, I think both BUILD_BUG_ON()'s should be together, because
>> they are related.
> I don't really agree, but I also won't insist on my preference to be followed.
> IOW please keep as is.

Thankyou.Â  Can I consider this to be A-by then?Â  (This, and the rename
to percpu_early_traps_init() are the only two remaining items in the
entire first half of the series.)

~Andrew



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 08:30:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 08:30:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082972.1442647 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umppr-0005OJ-WC; Fri, 15 Aug 2025 08:30:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082972.1442647; Fri, 15 Aug 2025 08:30:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umppr-0005OC-TD; Fri, 15 Aug 2025 08:30:51 +0000
Received: by outflank-mailman (input) for mailman id 1082972;
 Fri, 15 Aug 2025 08:30:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5DW6=23=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umppq-0005Mb-9U
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 08:30:50 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 25809729-79b2-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 10:30:49 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-afcb731ca8eso283997466b.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 01:30: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
 a640c23a62f3a-afcdce53f49sm93900266b.7.2025.08.15.01.30.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Aug 2025 01:30: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>
X-Inumbo-ID: 25809729-79b2-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755246648; x=1755851448; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=b8KdAPqjUc62YbZbRyUmVI1Fj7/jzssYQ+5o+G0d1u4=;
        b=Tc5i1jbi5pb3tLF7eXhcw2JSn3Snof6TzEQpDybcLEFbXf2hKJ4qK7fiZXZA52pa5U
         /LNeKNrTuXB5K86WVmBaODYkKhcidCZzuxO3DJQfoSwW6GmjyRLhGXYJOY2gDfJUTh0g
         mSOZOzYl3aWkBBxJxCQ7srHzAmCRdPABhtnMOJOafKz2Gncw62dAb8kIQR8tnyCAbpnS
         TmY/T43mOdxiHD148lT1NWH39vonElAmG3dV69U6Y+o/RM2ZIPcXxG994qNAvLC/JAkv
         bRbbTqKEUopq+IAF02qLpkVVPFXoZGcv8qIFLDF+nk0Sfp76gDXMy1AKD0pBrQpaHlqK
         1h/w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755246648; x=1755851448;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=b8KdAPqjUc62YbZbRyUmVI1Fj7/jzssYQ+5o+G0d1u4=;
        b=o/tO1Q4RBDCXizE1SoZTFUuBeFfqeiEWzUs2672HHfuiW8j8JRSczVd/wZYuWyoSxg
         ZPETDY3W/yTvUg/+0wSuDQekm26NKHyrlIwpGfJIz1+CHmctUHZxFBHxXHksSBljikjK
         SV54GmvPPGa7UEZtkZxryooXtznheOVT2yB+mw6KbiQ8uTQ24jlgejzGtvU7GuBJdQyO
         OLq5TSYUNhI0xo8M3RSNSrfqIrVIKiIgJO3rHvtrr7e3kmMi8ooRgz6X2CWDVfuCpUx3
         RuU6Fc0G0bGaBS4/K4ENGNBaFg6ULJwqFoent2Ma1VflVryqVOYvZccVtNpgcX57QZwi
         fI5g==
X-Gm-Message-State: AOJu0YwYjidQi4/t/xqtjGHw3GxIEfCSBH1viec102jtYzxBP+xi4TU4
	h9PSInF1F8CwcVqNNcvJ94A8pXL8tQweKFPNsfifOdVaLiG7djHujBexapkPVDmLCA==
X-Gm-Gg: ASbGncvE26IxYsAZPT/iU7ys7JBniqu16JYMvXQih8KU4DNLk8GMHp9qCRNKMTKsL5K
	4QZSUj2/E8WYWrO8V8ri+CY1g+2ntkcpGm9qfGh600ZLCPPjLEiLheD3XZLOxLA2oxJFSI5XqYf
	D505QOQrkb+RPXRjed6KePPOxwBLmiXQWiO3cNSL7pgh2bqTdX+Z+qpW0cVJyZmtFSwhhXtFiAg
	hdhZNxFTO9ZCELmZA+yZ7Np+M3MCcBlTQ0ehK630E8Q2RFALMh2LTJ0ZIDbCp9BAdtGt7x/BcO5
	6z++gBIqmWJtVJRxhGMjPWS3QxuTUG2z5DIhsJ1sIgx0fyqsd33gqy655mv+RuGfVDd8JAF9wSO
	okOfX9C9DbwMRWKmT2PefOgqsHCci4Jht971yKFMJIyGOFL6A7vJ4Q7YblZRoED8mr4QYrEwS/v
	TDrBCx9jc=
X-Google-Smtp-Source: AGHT+IFLdKx3RnmVUyVNLLMWTlDtpsJgjZ95X8+/E3fGx2IYIqo3pw8fYGG1XPOQQhMZVF7dqvshFg==
X-Received: by 2002:a17:907:788:b0:ad5:74cd:1824 with SMTP id a640c23a62f3a-afcdc35dff2mr103672466b.38.1755246648451;
        Fri, 15 Aug 2025 01:30:48 -0700 (PDT)
Message-ID: <75886e26-29b3-4aab-9780-7301330b4bb1@suse.com>
Date: Fri, 15 Aug 2025 10:30:47 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 09/22] x86/traps: Move load_system_tables() into
 traps-setup.c
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>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-10-andrew.cooper3@citrix.com>
 <80285a06f5d4fb3bd3e378317cca61ca@bugseng.com>
 <7e906964-b07d-4205-a683-e665f19d5edc@citrix.com>
 <aab37ec2-33bf-403b-978a-dc3c4bc282f7@suse.com>
 <0af415c5-df96-4715-a7e6-0d645e2e3a96@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: <0af415c5-df96-4715-a7e6-0d645e2e3a96@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14.08.2025 20:20, Andrew Cooper wrote:
> On 14/08/2025 8:26 am, Jan Beulich wrote:
>> On 13.08.2025 13:36, Andrew Cooper wrote:
>>> On 12/08/2025 10:43 am, Nicola Vetrini wrote:
>>>> On 2025-08-08 22:23, Andrew Cooper wrote:
>>>>> diff --git a/xen/arch/x86/traps-setup.c b/xen/arch/x86/traps-setup.c
>>>>> index 8ca379c9e4cb..13b8fcf0ba51 100644
>>>>> --- a/xen/arch/x86/traps-setup.c
>>>>> +++ b/xen/arch/x86/traps-setup.c
>>>>> @@ -19,6 +20,124 @@ boolean_param("ler", opt_ler);
>>>>>
>>>>> Â void nocall entry_PF(void);
>>>>>
>>>>> +/*
>>>>> + * Sets up system tables and descriptors for IDT devliery.
>>>>> + *
>>>>> + * - Sets up TSS with stack pointers, including ISTs
>>>>> + * - Inserts TSS selector into regular and compat GDTs
>>>>> + * - Loads GDT, IDT, TR then null LDT
>>>>> + * - Sets up IST references in the IDT
>>>>> + */
>>>>> +static void load_system_tables(void)
>>>>> +{
>>>>> +Â Â Â  unsigned int i, cpu = smp_processor_id();
>>>>> +Â Â Â  unsigned long stack_bottom = get_stack_bottom(),
>>>>> +Â Â Â Â Â Â Â  stack_top = stack_bottom & ~(STACK_SIZE - 1);
>>>>> +Â Â Â  /*
>>>>> +Â Â Â Â  * NB: define tss_page as a local variable because clang 3.5
>>>>> doesn't
>>>>> +Â Â Â Â  * support using ARRAY_SIZE against per-cpu variables.
>>>>> +Â Â Â Â  */
>>>>> +Â Â Â  struct tss_page *tss_page = &this_cpu(tss_page);
>>>>> +Â Â Â  idt_entry_t *idt = this_cpu(idt);
>>>>> +
>>>> Given the clang baseline this might not be needed anymore?
>>> Hmm.Â  While true, looking at 51461114e26, the code is definitely better
>>> written with the tss_page variable and we wouldn't want to go back to
>>> the old form.
>>>
>>> I think that I'll simply drop the comment.
>>>
>>> ~Andrew
>>>
>>> P.S.
>>>
>>> Generally speaking, because of the RELOC_HIDE() in this_cpu(), any time
>>> you ever want two accesses to a variable, it's better (code gen wise) to
>>> construct a pointer to it and use the point multiple times.
>>>
>>> I don't understand why there's a RELOC_HIDE() in this_cpu().Â  The
>>> justification doesn't make sense, but I've not had time to explore what
>>> happens if we take it out.
>> There's no justification in xen/percpu.h?
> 
> Well, it's given in compiler.h by RELOC_HIDE().
> 
> /* This macro obfuscates arithmetic on a variable address so that gcc
> Â Â  shouldn't recognize the original var, and make assumptions about it */
> 
> 
> But this is far from convincing.
> 
>>
>> My understanding is that we simply may not expose any accesses to per_cpu_*
>> variables directly to the compiler, or there's a risk that it might access
>> the "master" variable (i.e. CPU0's on at least x86).
> 
> RELOC_HIDE() doesn't do anything about the correctness of the pointer
> arithmetic expression to make the access work.
> 
> I don't see how a correct expression can ever access CPU0's data by
> accident.

Hmm, upon another look I agree. I wonder whether we inherited this from
Linux, where in turn it may have been merely a workaround to deal with
preemptible code not correctly accessing per-CPU data (i.e. not
accounting for get_per_cpu_offset() not being stable across preemption).
Yet then per_cpu() would have been of similar concern when "cpu" isn't
properly re-fetched after any possible preemption point ...

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 08:32:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 08:32:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082986.1442657 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umprI-00068a-F7; Fri, 15 Aug 2025 08:32:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082986.1442657; Fri, 15 Aug 2025 08:32:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umprI-00068T-BL; Fri, 15 Aug 2025 08:32:20 +0000
Received: by outflank-mailman (input) for mailman id 1082986;
 Fri, 15 Aug 2025 08:32:18 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5DW6=23=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umprG-00068H-T9
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 08:32:18 +0000
Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com
 [2a00:1450:4864:20::530])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5a649d59-79b2-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 10:32:17 +0200 (CEST)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-6188b794743so2937027a12.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 01:32: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
 4fb4d7f45d1cf-618b02b1cfasm947756a12.54.2025.08.15.01.32.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Aug 2025 01:32: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>
X-Inumbo-ID: 5a649d59-79b2-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755246737; x=1755851537; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Muea7NkvBYsveiar0A5vnkTQBnnL+3DlrW5SeB8DAi4=;
        b=eGdvO7o3t5mRNhAEzNosyiaEHBVIJXXZLBc7EwEHTyWhLBh+NUfk3U8+4kHmNP1M1l
         iiV/EPzrpowl2y6G3twZUZNVKQnBusmEWUseUBV2cjd1coWVfvKzNo5WZENWdjcMiG+C
         1uiL+yzgF1jFBd80DnUZHT7TBKv60ehpy2gj4CVSdxTjAWgFfAsdwq2IBEbZX4JUzyao
         45VFDBbKyUipPKqTHw46d+tsb/XLbGS7WVmA7WAulzzmRdud4mVMPumLvYwtPsxTTBOB
         GdAz3RQIjugizocrk2xTklIO5Mb7EFeAd0qS843i2l9+JB12lGrecwTrIA7aWFxaSXVW
         i6HA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755246737; x=1755851537;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Muea7NkvBYsveiar0A5vnkTQBnnL+3DlrW5SeB8DAi4=;
        b=prGKqICqTb1Ycvbgbns4Qfkg/mLPa/9NUY696FhJJJPuNZ8oEqE9CModtgTzCk29ub
         isdG44DE/0s2xp0maTpFQ9fkZayNMUBoL3EFa2sWTALEoa7juS/hXsEjjg3FsVqDwOfp
         qTzim5AhRNq0cugodSxH2h+QwQo+HPpp+b8jt9qkIbrQuZoiiDcKs0xgmPd8oxtm3a7f
         kTRm0Uuof4ioy8lyzAtvgjDptBa/0s+LfPJIzQwj4TJpqwLv2X5yFZwohasBpR5+oCgh
         pws3Bom5NfCHcA8lenuPfwjs/wi7Y1LSRorC+BknSxyJhPDkt8l/XVinpr2NLDq5ZEzq
         bjjA==
X-Forwarded-Encrypted: i=1; AJvYcCWbtVpeNzwEbHsBGeH9bG7pUO7e9h5d0pCongYEYZeZ7z1RoZXI/Uvnl1Dpo/fnxnQ1Oye23HySl/g=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzDql7JSxhGwLWc7FcS+X+Q62C9I3qgge8VUGCoDKC+viT1KHaM
	sgvSZPD090mhtxa0tJ7CvtRnd0QQTuex3KB2nuwUbV7ZgvmQheNqQQ7XdmKbsa8uog==
X-Gm-Gg: ASbGncuaoKbfSqKrFFob4oWCRjkI+qO98vf2C/zKA75AkdcO25b3AwRvKwGs8Iw54zv
	6CFIBEFUfBmES794s5gUecn/KIoL5XTIp0kJDm9EGA+G8fSyU/XDOVQdvNZBcNW1x0FbTWDpMKn
	8PwN0K7YoHN/sLOOybRSaHvARtwBumJ/ezKpegL4xH4Q9hitPn4rpqScZGwRFdMvL99ddNur07I
	FTGtEr3Py6fbhDqvva92qM8Z1+itn2bMejqA9S5UpkO69keJdxwc3EqwRet6owWxtA5uqNpX/Yw
	MFrcHF2IqOowRwM1m1QGN5kna9dJral0d4mHbEmKSfYc3HQ6x8koKvInFCOIiLEDCAIK1y9OX4n
	3hGQE3+s1kJ+TBXZ8nmY7eQuNw/2fZ0q+kV9KO/MALCBmsMht57BF7oOFujhiVAyBH34DZymVH5
	FOISKZZC8xIcYx+NeVeA==
X-Google-Smtp-Source: AGHT+IETDH/5x9eLB6pmwslbllCgVgCyw7FlssXa8LyyjLnAXUkY0j7ix9kieViSNmDcsJI3Duf6uQ==
X-Received: by 2002:a05:6402:35cb:b0:615:cc03:e6ab with SMTP id 4fb4d7f45d1cf-618b052b625mr879378a12.2.1755246737300;
        Fri, 15 Aug 2025 01:32:17 -0700 (PDT)
Message-ID: <25794508-f262-4aed-819b-3c32ad4c2a86@suse.com>
Date: Fri, 15 Aug 2025 10:32:16 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 09/22] x86/traps: Move load_system_tables() into
 traps-setup.c
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-10-andrew.cooper3@citrix.com>
 <a4a88d7a-8c1f-4170-a1fe-afafcad0c8ea@suse.com>
 <9e955bff-c145-4a52-af4f-a7055fc9aa67@citrix.com>
 <8e0b4a82-3189-4446-96a8-921d8ae44a21@suse.com>
 <5def44a3-4139-4870-94f2-cb895078f968@citrix.com>
 <0e9878a9-fb0d-4d18-ab15-eb248629b192@suse.com>
 <a2f8167b-cfcc-4729-892b-d2994aa77f84@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: <a2f8167b-cfcc-4729-892b-d2994aa77f84@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15.08.2025 10:28, Andrew Cooper wrote:
> On 15/08/2025 9:22 am, Jan Beulich wrote:
>> On 14.08.2025 20:09, Andrew Cooper wrote:
>>> On 14/08/2025 9:55 am, Jan Beulich wrote:
>>>> On 13.08.2025 13:25, Andrew Cooper wrote:
>>>>> On 12/08/2025 10:19 am, Jan Beulich wrote:
>>>>>> On 08.08.2025 22:23, Andrew Cooper wrote:
>>>>>>> Since commit a35816b5cae8 ("x86/traps: Introduce early_traps_init() and
>>>>>>> simplify setup"), load_system_tables() is called later on the BSP, so the
>>>>>>> SYS_STATE_early_boot check can be dropped from the safety BUG_ON().
>>>>>>>
>>>>>>> Move the BUILD_BUG_ON() into build_assertions(),
>>>>>> I'm not quite convinced of this move - having the related BUILD_BUG_ON()
>>>>>> and BUG_ON() next to each other would seem better to me.
>>>>> I don't see a specific reason for them to be together, and the comment
>>>>> explains what's going on.
>>>>>
>>>>> With FRED, we want a related BUILD_BUG_ON(), but there's no equivalent
>>>>> BUG_ON() because MSR_RSP_SL0 will #GP on being misaligned.
>>>> That BUILD_BUG_ON() could then sit next to the MSR write? Unless of course
>>>> that ends up sitting in an assembly source.
>>> It's the bottom hunk in patch 14, which you've looked at now.
>>>
>>> Personally, I think both BUILD_BUG_ON()'s should be together, because
>>> they are related.
>> I don't really agree, but I also won't insist on my preference to be followed.
>> IOW please keep as is.
> 
> Thankyou.Â  Can I consider this to be A-by then?Â  (This, and the rename
> to percpu_early_traps_init() are the only two remaining items in the
> entire first half of the series.)

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

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 08:33:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 08:33:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1082996.1442666 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umpsl-0006el-OI; Fri, 15 Aug 2025 08:33:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1082996.1442666; Fri, 15 Aug 2025 08:33: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 1umpsl-0006ee-Lj; Fri, 15 Aug 2025 08:33:51 +0000
Received: by outflank-mailman (input) for mailman id 1082996;
 Fri, 15 Aug 2025 08:33:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ZXrH=23=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1umpsj-0006eT-FK
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 08:33:50 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8f1f98ad-79b2-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 10:33:46 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 59ADE4EE0742;
 Fri, 15 Aug 2025 10:33:45 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8f1f98ad-79b2-11f0-a328-13f23c93f187
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=1755246825;
	b=1tzPg5EpoQZvLYDDg1IgCgbcxJAFZL0uo37bFP7e7/h95Yg7DgUsYKAlUZUm67mcC68M
	 SAhZWY2zB0UqKCV8YW700j1OYzN7DCGn5YXoxjuv65JJHh6PR3mCul6Hx1ET7ccd0GzrI
	 umktG5r/9JMCrDEPeGk6Ka/p1qkYOOisfBS4LttOlsi/SKA5G5F9b50Zu+D0q/xeDqa39
	 lxsxlc7c1DJGER1z9jkjF3UmUp6bbrRs2ozsP5xrOiCJ8SEr5aeUcWksYe9BtwZc0eOsO
	 LCXG+09upXSNm3XMKzUeYZh6gfOLMSIGXNsGtYfx2xxSBne0Mdt859XFsBeKbG7lZkoOk
	 FLqDR78+6cSPS5Hm3AIG7SJOGAyTpN1EA42+6+wBUyTd3/hp02xKjeJSnQYk+ba+utrJL
	 XXO25EPSDyahX0HdLE1gA3eT9gS5oaS1Vh8SIBU8pzu84JfR9Fng4udAit8UTQOdRSR1y
	 K0CnJ6fZujgjgSWZH5273EhA6aAaKUYVirREnszz+k9ifhUHDUlCXYSV4WSzxmlxzfq8e
	 cTWk+yOh4dBtF8K032fbnEA5p+UG/0HgF7PIkB2yo9M0jtCgbQ0N54TZqW4Xh3KR69xD6
	 0Q08YxCxhSXyx4onMxQ/mR+4tHCU3TDtyrYH07nX5nuYXWLtd0kwSUlt9pswZRk=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1755246825;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=8UX0rF92ich/Uj9FEpDrVgAcvFZxbLo++qCmo3WlKiY=;
	b=kUSdh+4UCl5CL+mW4xLKiptWeQKhZQXIDtLCIDHgsTm+0TDqAsnpyqJqsOrJIBbV4GHn
	 KlB+1UgcnUQgM41SnYWbWBgDbwNPOuvtnZTTJNy+mpRXMU98mHMjpwLgve++dckFB8Pur
	 bwCsyfCCTYOiUdJjIg52Llz1Ey8azUPl/KX7pou4dMHXneSjNrfIxW4xBz/L/zpRbX+qJ
	 pQ1UrQ/EpiZ2MEqRJOjnCRBLVGxNWVsOBoXY4SEUQwEac9ZOUbWrTPGqfheYPTxEZg+Ut
	 kCE3jzLu9jVrRPkq2GHdnNgXTP+tq+dqXZZFVeGDu6XU5gR7DdkUCO1KzvKfWpHHwbHa6
	 2oP55peO4hVBOOi9cYTvtd2baMq6eiqMb2TAUH0LVnDEfiLUvJGWuJKvxwgcglqnvuX0c
	 Gm+mgE9ctQIsSBWM0zSv0MKQGIrRoPxUj+zKgoZ1Ti6wmzoE339etg/hUfIJ0W/yLMZ5+
	 bVs79b7rsWu/vvqmfCGFrz/DMO1F7vzserCYOYBuOcpRUqsl+PUth0BlJD3vVjXXyXl+h
	 CFL0TAWygVRd2y72TxfjoBBcWExBEgxImQPQeSkVTh+M9AGJzMD13E8EJjqRAq3GykstY
	 fYt3M0+AhECzRuIELz/9ki7LBXg7ZabPYy3LHNeXcBMmfT/EmOsQxFYEgizEaJA=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1755246825; bh=0nRO27FFoVsRsivnfkAhF9FHD4VCkeUdH4EspsCm0Zg=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=jA1ImJNIGxogOPwJ49vI7WiVO9bvjNPFBxLTmxiL46eoNucj1aO2RsX5cwAEaeeEx
	 2eXX3bKUVH7KanzWZO00ANb3zhS0dpTY15ZyG2GPVlt+ox0kjK8p+s3mgzNSEb9KaM
	 NQKIEKk3R6QkdrYL8tzqUrgiwnyt4BLjphba3KQBvDknOE5Bwh7DtA0YSw9CHxLhid
	 JYAomDsemxVRilOrZyacUpJRZUSoyrHYPiAVxGJH9N9tIQUTU8J0dg92S0N8Oo3h5O
	 eKS2K/iu65Q+sODPx2dqSKUTQX3+qFi1JsSOUBsb0jCUPv9PIv2sgIONH8w5SoPtxy
	 O+1V3n78aPX+w==
MIME-Version: 1.0
Date: Fri, 15 Aug 2025 10:33:45 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, Anthony PERARD
 <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan
 Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Roberto Bagnara <roberto.bagnara@bugseng.com>,
 "consulting @ bugseng . com" <consulting@bugseng.com>
Subject: Re: [PATCH v2] xen: Use auto as per C23
In-Reply-To: <f3ff5b2d-8077-4591-bf1f-bd658d705242@citrix.com>
References: <20250814222524.2638883-1-andrew.cooper3@citrix.com>
 <3056ed85948288639110e3cdd6b28c6e@bugseng.com>
 <f3ff5b2d-8077-4591-bf1f-bd658d705242@citrix.com>
Message-ID: <7fc93aeef27153f1d6caa786bd44420f@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

On 2025-08-15 10:17, Andrew Cooper wrote:
> On 15/08/2025 8:20 am, Nicola Vetrini wrote:
>> On 2025-08-15 00:25, Andrew Cooper wrote:
>>> In macros it is common to declare local variables using typeof(param)
>>> in order
>>> to ensure that side effects are only evaluated once.Â  A consequence
>>> of this is
>>> double textural expansion of the parameter, which can get out of hand
>>> very
>>> quickly with nested macros.
>>> 
>>> In C23, the auto keyword has been repurposed to perform type 
>>> inference.
>>> 
>>> A GCC extension, __auto_type, is now avaialble in the new toolchain
>>> baseline
>>> and avoids the double textural expansion.
>>> 
>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> 
>> Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> 
> Thankyou.
> 
>>> 
>>> diff --git a/xen/include/xen/compiler.h b/xen/include/xen/compiler.h
>>> index 88bf26bc5109..38ef5d82ad95 100644
>>> --- a/xen/include/xen/compiler.h
>>> +++ b/xen/include/xen/compiler.h
>>> @@ -64,6 +64,20 @@
>>> Â # define asm_inline asm
>>> Â #endif
>>> 
>>> +/*
>>> + * In C23, the auto keyword has been repurposed to perform type
>>> inference.
>>> + *
>>> + * This behaviour is available via the __auto_type extension in
>>> supported
>>> + * toolchains.
>>> + *
>>> + *
>>> https://www.gnu.org/software/c-intro-and-ref/manual/html_node/Auto-Type.html
>>> + * https://clang.llvm.org/docs/LanguageExtensions.html#auto-type
>>> + */
>>> +#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 202311L
>>> +/* SAF-3-safe MISRA C Rule 20.4: Giving the keyword it's C23
>>> meaning. */
>>> +#define auto __auto_type
>>> +#endif
>>> +
>> 
>> A more detailed explanation should live in deviations.rst under this
>> bullet point
>> 
>> Â Â  * - R20.4
>> Â Â Â Â  - The override of the keyword \"inline\" in xen/compiler.h is
>> present so
>> Â Â Â Â Â Â  that section contents checks pass when the compiler chooses not 
>> to
>> Â Â Â Â Â Â  inline a particular function.
>> Â Â Â Â  - Comment-based deviation.
>> 
>> as described in the SAF entry:
>> 
>> Â Â Â Â Â Â Â  {
>> Â Â Â Â Â Â Â Â Â Â Â  "id": "SAF-3-safe",
>> Â Â Â Â Â Â Â Â Â Â Â  "analyser": {
>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "eclair": "MC3A2.R20.4"
>> Â Â Â Â Â Â Â Â Â Â Â  },
>> Â Â Â Â Â Â Â Â Â Â Â  "name": "MC3A2.R20.4: allow the definition of a macro with
>> the same name as a keyword in some special cases",
>> Â Â Â Â Â Â Â Â Â Â Â  "text": "The definition of a macro with the same name as a
>> keyword can be useful in certain configurations to improve the
>> guarantees that can be provided by Xen. See docs/misra/deviations.rst
>> for a precise rationale for all such cases."
>> Â Â Â Â Â Â Â  },
> 
> Ah right.Â  What about this:
> 
> "Xen does not use the \"auto\" keyword as a storage qualifier.Â  The
> override of the keyword \"auto\" in xen/compiler.h is to give it it's
> C23 behaviour of type inference."
> 
> ?
> 

Seems good to me. Maybe this should be spelled out in ./CODING_STYLE as 
well, so that newcomers don't trip over this?

> ~Andrew
> 
> P.S. I thought that final fix was too easy.Â  Your instructions for the
> main config were spot on and worked first time, except for getting the
> R20.4 violation too.

Yeah, forgot about that one; it's not so common to override keywords.

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 08:34:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 08:34:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083005.1442677 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umptr-0007AD-3T; Fri, 15 Aug 2025 08:34:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083005.1442677; Fri, 15 Aug 2025 08:34: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 1umptq-0007A6-Vr; Fri, 15 Aug 2025 08:34:58 +0000
Received: by outflank-mailman (input) for mailman id 1083005;
 Fri, 15 Aug 2025 08:34:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5DW6=23=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umptp-0006eT-Un
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 08:34:57 +0000
Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com
 [2a00:1450:4864:20::634])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b94ae9b4-79b2-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 10:34:57 +0200 (CEST)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-afcb7347e09so280764466b.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 01:34: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
 a640c23a62f3a-afcdce72d95sm90502866b.33.2025.08.15.01.34.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Aug 2025 01:34: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>
X-Inumbo-ID: b94ae9b4-79b2-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755246896; x=1755851696; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+xOSjCohFmefKXh7W/af4tIQMWDxymb30IEjQgi7Y0g=;
        b=NMXMLKrMu6Q6xXaYxqoCCzDjw5kVxPP0G9VdbWcD2uI0i1tyWbp2m7dlhMfiAuwGa0
         /w5HPKicCV6qJgFksmhDzrrZR0p1LkbukNisU4g/0vwHovYiqg6Zw4yvBCkdlC+i9WqX
         gOr1NAVZpJdh5KRWsO0KiaWJhb1ittKcmBlYz/saoBS5Mc/yeg13qrwi2uyHCWSEMBpB
         A/6k6v+N5acSaRtu4KozBf0p67GE9TnQoGv4n3+Zi0M2BURNm+VgE34U1m5iqd6dZ22R
         L/BS4fPFz7VIFZi3fW9Q5cO8mmG9KTzBbhbGduPO8qcGinzDS8LfdcdeBtUOL83O5E3d
         bNew==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755246896; x=1755851696;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+xOSjCohFmefKXh7W/af4tIQMWDxymb30IEjQgi7Y0g=;
        b=rf9gWHo7YEbab/N4tEVkHrX2g04+vv9vaVDyktFHyjSSxAu+UQlUnr5rpHcO8Ch4s6
         8b6kc7PNFd39HGcz4M+UB2A5d1CW2zkGIigJ8Uc0xXKdXAtm0PcRsPEKIqxwASEMdh9e
         4KdqgPuMUKNZ5IPP3XZe6TQ3xK82r4Z5ByIUrDOa18DDQ3n9eOYfXBHXIpitHcvDJZau
         yZ28TUw5AnVLpS6aYBQ5/pBZGS2jkqdW6fEn/4EHWpIOUkUHnQkazcm5o9cYzb/CrBef
         Gf6v+xizrN+IK6Syc5XtdJ7Yg9X8l+TEmpbNnIowuf4xY6A37/oLmZfH/NNzT2vaR8t6
         cV5Q==
X-Forwarded-Encrypted: i=1; AJvYcCXkaSpWTHvwIs0/Xb1u2T2CCJ1VbyugQuEcusO/68C75AiABKmlO/j0PK7o/DUqE+EBHGdSEAK+wQ4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxMSxVop/T2dPTdAhA/lZ9H7E/5crDa+WLVvIZpt0vGyPpzk3yy
	RqlXXw0dGQnUuSsujIL0M0dIedHsW1GMPp0YuOZP22ZcDywco3uFJoUKL0NhNLyR73MzzskEf6t
	+o78=
X-Gm-Gg: ASbGncvxMhme0onZ19ie4P0DpCqzwHtKxsBGK91MC/5pev//dU9VHNSTFV1lgQUaHzk
	+4uiIfv0KmsM3HFCvosfjg+7CtRFRbPKclVZPQIG/PqIvJMJbfyfpk6NtlpqiG2HGbipBK00AK6
	YnumN01vqESIA8P3UXYoUzgL+4wwKbBsOBepZxYqcsGCJBhPgoejh3+CrDZutZhQjJqWX2O7ctS
	I0GpQsBcad9O/vIS7gAoC4ULG6RuaP47vMXl6HUdxxx7St/vxnkx62kD+Yv6ZMTwERkQXkIAmZX
	LC2Yj8SqtyPdabDeS/EOi+uswWulxAvaPvSU/h5dUqqNqL+0pHQv4sIcVzRCPbsY/l9Y+uMbAcY
	CKh90aSYto47qQdS4ZqEvaJbSi7gdxptEtFgBTMgQL0bVX5Mg0OsWzauWVXeHC7g4R5IP4NSySj
	xz6YGuK2EVvzi7yVFX73dvb9bKSD0/
X-Google-Smtp-Source: AGHT+IFGJw5SdHwxPN12saWkad28wcxdI2EdUfdE+ir9kX3EoH/Sgbd7S6ScTEsdy3X7+hnAHtO6QQ==
X-Received: by 2002:a17:906:7307:b0:af9:81cd:ccd9 with SMTP id a640c23a62f3a-afcdc2d947dmr108010066b.28.1755246896527;
        Fri, 15 Aug 2025 01:34:56 -0700 (PDT)
Message-ID: <689c255e-ebea-4454-80e3-3731b4d12781@suse.com>
Date: Fri, 15 Aug 2025 10:34:55 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 13/22] x86: FRED enumerations
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-14-andrew.cooper3@citrix.com>
 <9b4da5b3-dd68-4052-92cc-fe322164eaa5@suse.com>
 <737eab59-f016-426a-ba6e-e6c7a58a9e61@suse.com>
 <79521edc-34d9-4364-922d-158e93fcbc04@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: <79521edc-34d9-4364-922d-158e93fcbc04@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14.08.2025 20:45, Andrew Cooper wrote:
> On 14/08/2025 2:19 pm, Jan Beulich wrote:
>> On 14.08.2025 13:20, Jan Beulich wrote:
>>> On 08.08.2025 22:23, Andrew Cooper wrote:
>>>> --- a/xen/include/public/arch-x86/cpufeatureset.h
>>>> +++ b/xen/include/public/arch-x86/cpufeatureset.h
>>>> @@ -310,7 +310,10 @@ XEN_CPUFEATURE(ARCH_PERF_MON, 10*32+8) /*   Architectural Perfmon */
>>>>  XEN_CPUFEATURE(FZRM,         10*32+10) /*A  Fast Zero-length REP MOVSB */
>>>>  XEN_CPUFEATURE(FSRS,         10*32+11) /*A  Fast Short REP STOSB */
>>>>  XEN_CPUFEATURE(FSRCS,        10*32+12) /*A  Fast Short REP CMPSB/SCASB */
>>>> +XEN_CPUFEATURE(FRED,         10*32+17) /*   Fast Return and Event Delivery */
>>>> +XEN_CPUFEATURE(LKGS,         10*32+18) /*   Load Kernel GS instruction */
>>>>  XEN_CPUFEATURE(WRMSRNS,      10*32+19) /*S  WRMSR Non-Serialising */
>>>> +XEN_CPUFEATURE(NMI_SRC,      10*32+20) /*   NMI-Source Reporting */
>>>>  XEN_CPUFEATURE(AMX_FP16,     10*32+21) /*   AMX FP16 instruction */
>>>>  XEN_CPUFEATURE(AVX_IFMA,     10*32+23) /*A  AVX-IFMA Instructions */
>>>>  XEN_CPUFEATURE(LAM,          10*32+26) /*   Linear Address Masking */
>>> I'd like to note that we could long have had this if my long-pending emulator
>>> patch had gone in at some point.
>> Actually what I further have there, and what in the context of patch 15 I
>> notice you should have here is
>>
>> --- a/xen/tools/gen-cpuid.py
>> +++ b/xen/tools/gen-cpuid.py
>> @@ -278,7 +278,8 @@ def crunch_numbers(state):
>>          # superpages, PCID and PKU are only available in 4 level paging.
>>          # NO_LMSL indicates the absense of Long Mode Segment Limits, which
>>          # have been dropped in hardware.
>> -        LM: [CX16, PCID, LAHF_LM, PAGE1GB, PKU, NO_LMSL, AMX_TILE, CMPCCXADD],
>> +        LM: [CX16, PCID, LAHF_LM, PAGE1GB, PKU, NO_LMSL, AMX_TILE, CMPCCXADD,
>> +             LKGS],
>>  
>>          # AMD K6-2+ and K6-III processors shipped with 3DNow+, beyond the
>>          # standard 3DNow in the earlier K6 processors.
>> @@ -347,6 +348,9 @@ def crunch_numbers(state):
>>          # computational instructions.  All further AMX features are built on top
>>          # of AMX-TILE.
>>          AMX_TILE: [AMX_BF16, AMX_INT8, AMX_FP16, AMX_COMPLEX],
>> +
>> +        # FRED builds on the LKGS instruction.
>> +        LKGS: [FRED],
>>      }
>>  
>>      deep_features = tuple(sorted(deps.keys()))
> 
> Hmm.Â  Yes, but normally this is part of guest enablement.

Hence why I would have wanted the emulator patch to long have gone in.

> Having now done the Xen work and concluded that we don't actually need
> LKGS, I'm rethinking the linkage here.Â  It's probably the right thing to
> do in practice, but probably needs a bit more in the way of
> justification.Â  "built on" doesn't quite cut it IMO.

The comment can be adjusted (or dropped). Im "builds on" is quite adequate,
as without SWAPGS you won't really have a way to get things working in an
OS without having LKGS available. In Xen we're in a slightly different
position ...

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 08:37:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 08:37:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083015.1442687 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umpwe-0007jk-GQ; Fri, 15 Aug 2025 08:37:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083015.1442687; Fri, 15 Aug 2025 08:37: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 1umpwe-0007jd-D2; Fri, 15 Aug 2025 08:37:52 +0000
Received: by outflank-mailman (input) for mailman id 1083015;
 Fri, 15 Aug 2025 08:37:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5DW6=23=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umpwd-0007jX-84
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 08:37:51 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2034d355-79b3-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 10:37:49 +0200 (CEST)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-afcb7347e09so281049766b.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 01:37: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
 a640c23a62f3a-afcdd018a4bsm88028566b.100.2025.08.15.01.37.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Aug 2025 01:37: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>
X-Inumbo-ID: 2034d355-79b3-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755247069; x=1755851869; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=04e9BxANNq7LI1zJx7oHYnVb8rCpd2XDRLkHDJ8sGas=;
        b=dh8X4LlR1MSUAzstXxfGu8i6yWLtQT3S0KnP3ODnVpjE6fHavA8NsNovKdNQJZFNXm
         2Th6l/tVc+E7/tztOIa5ZjzHvZLnHs1+ZjwvlSE8E2gnq7zGktBd7DmUERVUKWa+kdxU
         s6/zGI6Dxyw2uHe0B7WBdJwRYAOzFbS5H+1OsEkiBXGRWhL17cYDji5/SC6JC8VFIJ5M
         iN/1HRWWFzm1ZpVlknac+6kmbbysw3iJNZlW/aS03LAiL11gs3msCZmuEpd1QS3SRQi7
         /ddtMIC9N4/cm8Xbp6V4Npir6yoYC7MqULeI0+JgXZ025LXIy3qi2p4nmfJ2zXioe0zC
         oNOw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755247069; x=1755851869;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=04e9BxANNq7LI1zJx7oHYnVb8rCpd2XDRLkHDJ8sGas=;
        b=hDvrv094dcUIhMTit4WmBh8QxHGIiglrWfPC3FGKZSy6WaFfqm3TfqRQm2+ogHKbYH
         /DS1IKPXE/XWlw2ZQB37kcYXqw1oQ7CZ4HV0i+pzbvN3pYCXqvm2QB9dCA/x4FlDeUoY
         G8on6Lffas99vl5rE15bJtRhGJ7VlxnTukJreSkyQckl2h+r8M/wlsaqqTN270zZt5jN
         8EZUqTt99+5QieKP+QjGuKM6LtdPtKS/yq39qRmzXR6/chufnfJp5Q2M1au8YeMsU5Ip
         MUdmFYf5hkgiyVZ4vN3iH48IQPR3FF7St+H8yaXWfDCptQY8IgsDJJNF70lfE3z7xm2H
         wU4w==
X-Gm-Message-State: AOJu0YznfOqoZ2/oSSR4utySi/G/FA3ewcCeCFNVUmqbOfpEOwX4tUmw
	UI948ddyL2u3ZVD0Tq2znHCZW0Sksl75kbdFgiaDgAm+IvtQAmW+4khFcyHzGGZmjg==
X-Gm-Gg: ASbGnctfXKYzH4+cYzg7yNWtPAGw77CcrewF9LMNLLHx4G+bsoWPmEgxYDJL64wZKGD
	y4sSAqHxpAECacP8DbhgRNwq1u8NKJ55m/8hlZrsv5PXMF42Q0Vm81gBuv/QlnVxIzTuo5V1KLh
	lMQuqAq80lXqCRqJD4kGbrxQxezpe+mtkhnN0Aw/yrDc3c9NgFYscV+GZ3Utswq6sr7kwJ+Ggyg
	II0juA0NJNmg6MTq4X1VLtehslPbb9lM5Sm/XWygAoi/PhR7pFPSceHXskHH+BcIJGFcoiCZYsd
	koRnLJ+XSqpvyQYXmFrj+3y0KCMQ0E+oJLNBZpeMqCL7OFu+hCNCLnS2w/EAU2EdJEQrX/UQkdW
	BxjMys1NBKE3HhDhL04vUqJLPxBxqgAXCK/M1bGUllhBFdPZ6TqoW5j3eUZuqFZLytyuKws0V7f
	xLPoHZNow=
X-Google-Smtp-Source: AGHT+IEyPyVNHU15X/9SEv5YwCwUqcMdULbe/+3n/6tSGW3fnVcq2KFtwj46G+RGpOPEHGlnnmeLTQ==
X-Received: by 2002:a17:907:6d29:b0:af9:467d:abc0 with SMTP id a640c23a62f3a-afcdc3349admr104408366b.50.1755247069043;
        Fri, 15 Aug 2025 01:37:49 -0700 (PDT)
Message-ID: <5c608ebc-e9c2-47ea-a98f-246f7a3d4c30@suse.com>
Date: Fri, 15 Aug 2025 10:37:48 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 15/22] x86/traps: Introduce opt_fred
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>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-16-andrew.cooper3@citrix.com>
 <0a6b6fce-2cc8-4933-8703-399e4a4fdad6@suse.com>
 <8adbd032-9da2-481d-8d98-30c9a605ec46@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: <8adbd032-9da2-481d-8d98-30c9a605ec46@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14.08.2025 21:16, Andrew Cooper wrote:
> On 14/08/2025 2:30 pm, Jan Beulich wrote:
>> On 08.08.2025 22:23, Andrew Cooper wrote:
>>> ... disabled by default.  There is a lot of work before FRED can be enabled by
>>> default.
>>>
>>> One part of FRED, the LKGS (Load Kernel GS) instruction, is enumerated
>>> separately but is mandatory as FRED disallows the SWAPGS instruction.
>>> Therefore, both CPUID bits must be checked.
>> See my (further) reply to patch 13 - I think FRED simply ought to depend on
>> LKGS.
>>
>>> @@ -20,6 +22,9 @@ unsigned int __ro_after_init ler_msr;
>>>  static bool __initdata opt_ler;
>>>  boolean_param("ler", opt_ler);
>>>  
>>> +int8_t __ro_after_init opt_fred = 0; /* -1 when supported. */
>> I'm a little puzzled by the comment? DYM "once default-enabled"?
> 
> Well, I have this temporary patch
> https://gitlab.com/xen-project/hardware/xen-staging/-/commit/70ef6a1178a411a29b7b1745a1112e267ffb6245
> that will turn into a real patch when we enable FRED by default.
> 
> As much as anything else, it was just a TODO.
> 
> 
>>  Then ...
>>
>>> @@ -305,6 +310,32 @@ void __init traps_init(void)
>>>      /* Replace early pagefault with real pagefault handler. */
>>>      _update_gate_addr_lower(&bsp_idt[X86_EXC_PF], entry_PF);
>>>  
>>> +    if ( !cpu_has_fred || !cpu_has_lkgs )
>>> +    {
>>> +        if ( opt_fred )
>> ... this won't work anymore once the initializer is changed.
> 
> Hmm yes.Â  That wants to be an == 1 check.Â  Fixed.
> 
>>
>>> +            printk(XENLOG_WARNING "FRED not available, ignoring\n");
>>> +        opt_fred = false;
>> Better use 0 here?
>>
>>> +    }
>>> +
>>> +    if ( opt_fred == -1 )
>>> +        opt_fred = !pv_shim;
>> Imo it would be better to have the initializer be -1 right away, and comment
>> out the "!pv_shim" here, until we mean it to be default-enabled.
> 
> It cannot be -1, or Xen will fail spectacularly on any FRED capable
> hardware.Â  Setting to -1 is the point at which FRED becomes security
> supported.

I guess I'm not following: If it was -1, and if the code here was

    if ( opt_fred < 0 )
        opt_fred = 0 /* !pv_shim */;

why would things "fail spectacularly" unless someone passed "fred" on
the command line?

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 08:40:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 08:40:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083036.1442697 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umpyy-0000pv-0K; Fri, 15 Aug 2025 08:40:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083036.1442697; Fri, 15 Aug 2025 08:40: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 1umpyx-0000po-TO; Fri, 15 Aug 2025 08:40:15 +0000
Received: by outflank-mailman (input) for mailman id 1083036;
 Fri, 15 Aug 2025 08:40:15 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ZXrH=23=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1umpyw-0000pi-Vu
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 08:40:14 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 762fb800-79b3-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 10:40:13 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id C96E24EE0742;
 Fri, 15 Aug 2025 10:40:12 +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>
X-Inumbo-ID: 762fb800-79b3-11f0-a328-13f23c93f187
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=1755247212;
	b=cEk+yBtUZ7MIO9XLbsl8uG1LqBJNlQSZw7CmcA7Uz0kc1K/B5r17T/ZI+/6ev38MGgrd
	 zoSyhGzJRqUgbynffIpD3wOOreVIUjSMffkFrDiFY7QXLrxtCwnJelXrTvHxD7k8+Qq0Q
	 6I//vqM82c3CMprYph2PpOYFs7i/NNJyYCkW8rp9DIu9c2P50vo4RkPICMN/1vtA5Y2QL
	 MMTQLHxGHW5Jgdo8oJUw00TaOlEyniQEL/5TVO30MZb5oXSR+pLz4aVvnbp+JqhmSpCv7
	 k112opJxqbL6xMMqkKDzU7kwhD7mkJv0fzCXt5AtWepCf+dDVgGbBPhoxMZwfltMNsG9/
	 J1b1Dwo6UnphK8NZyxB2JgoYBafJdhVg3B+FtO+HpSrFY9Y9LPdvY9H2VFO3N0hnNcJuM
	 JSVzlzf/LTj70mYrigyJt17Ql7XFiK4wceuBOgaY8lQVW8y+rsuVEGS2evxln/n70x8s9
	 K8B91QkItXjwBE2GVWukN98ir7eU0NaBYnY9sX0pe8WPqxY6RkqehYwGWJN/19a1mtGeS
	 ozAHIUNWnCaQ76aT9bFgFspdk9dishDpJmhVkyPStoA9WfGv3e/Indtcgafx3CmGDtqMh
	 X5PQxP2XWyiR2WqTyFXwb6qUXVbvk9uZoQnU9jVMnvpaop+oED6L8q8faGYbqfI=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1755247212;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=y3MHDgRKmuqaGju4Zy5thsD6qx9/BTglp6ydF5MPld0=;
	b=icQ2liYMAjXEeeakC12qL+jXR1qMQd8DTU6JVcNL+M4UbCU7lXLQkYb/xOv7b24a0LDt
	 fxU7Ku8Ed9qvEowvVtrZ4epQq3C6Y3HcH7fdFXHdtNg4K2xGxKD7YsRrlHHGkjtdZejEf
	 sB1ndDK01IGj8jYheEz5yX9HrNfLbSHct0TJwKzLU18VZDzAWjZSYBXrJ99RxC1hP7FE7
	 oTi5Ip/2IEJFH/voJXCHCCLGsG1dhe8Vm+OepfTYTVa3hys3bUL41GbUJJ9dRVR3AVWZ7
	 VrR7Yk+9GWKmqKwG9dIE43sIDiAyxAmaA1fTkDFRlR/DwkO131yPtTbDJJzDhY9sh9tih
	 5QWgGkbWUI2MRxJt7B1+cmV3Nr0+wA3XTuVyjJ7J5tKwv5tWOBJmKI0W+UdJ14DbTaubP
	 0YWNY3WSD3Vzx3D5iyf863cKhSrzQFgPEwit/HOoj5E6sytt3+oWG6ywbco3wn/cWBJYB
	 UKlQdfMVwkpg/kambcZUYZ2aUd9z1vnrD1rtoMWA2XZG+jutSW5OcA7yFi7rnMKVjUj8B
	 rWCfgQSmP5LUxCOKtyXVYVdMxU/QwEjFiyDXI0//t94xzPXO4NoHFTflxKDysdzi+KzOT
	 uySEcPGiXVaiCPI2q38tT8IDGkCbTXQk3kUE7jyaLWQeHD3Y6wlEN+GtXTHe6CQ=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1755247212; bh=LDTDOa/knwMX1qgNK++W+iWoxR6W7dbFUcBUV2ig83A=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=iRXjvZNS9folroxFD9wTo3iTxbHbvFKArPv0YvHQEzDuYTSiRZnkY/YB0vH6DgIWG
	 ihM5aSXAAuaYfOJYDtNoNUTCZLKcYhqIXsX1dcWjT8nSbNFq39sXVEmGx7ARVUiBtT
	 iWREcHORcpn7ps1oddAHOgn3loMCxl9TodkK4V40W/+BXhs6tpOEiDWuD+G9v1AsgJ
	 k26Brqp6KHQAcaAaoE2dpiZhnXSbIBbNsCNaYH3x4t9LjtdUgWPaFNxhG+LD30ZcWi
	 EEn8j/+HwHczAwrtycTF+HAwtB+taM2Y4LbwP3cxqm9nZbo1tzsjl2uDoyF98v5yH5
	 WX5jns9vIDVPA==
MIME-Version: 1.0
Date: Fri, 15 Aug 2025 10:40:12 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
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>
Subject: Re: [PATCH 09/22] x86/traps: Move load_system_tables() into
 traps-setup.c
In-Reply-To: <75886e26-29b3-4aab-9780-7301330b4bb1@suse.com>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-10-andrew.cooper3@citrix.com>
 <80285a06f5d4fb3bd3e378317cca61ca@bugseng.com>
 <7e906964-b07d-4205-a683-e665f19d5edc@citrix.com>
 <aab37ec2-33bf-403b-978a-dc3c4bc282f7@suse.com>
 <0af415c5-df96-4715-a7e6-0d645e2e3a96@citrix.com>
 <75886e26-29b3-4aab-9780-7301330b4bb1@suse.com>
Message-ID: <219ecea713dd9dac4c788d91c727f401@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

On 2025-08-15 10:30, Jan Beulich wrote:
> On 14.08.2025 20:20, Andrew Cooper wrote:
>> On 14/08/2025 8:26 am, Jan Beulich wrote:
>>> On 13.08.2025 13:36, Andrew Cooper wrote:
>>>> On 12/08/2025 10:43 am, Nicola Vetrini wrote:
>>>>> On 2025-08-08 22:23, Andrew Cooper wrote:
>>>>>> diff --git a/xen/arch/x86/traps-setup.c 
>>>>>> b/xen/arch/x86/traps-setup.c
>>>>>> index 8ca379c9e4cb..13b8fcf0ba51 100644
>>>>>> --- a/xen/arch/x86/traps-setup.c
>>>>>> +++ b/xen/arch/x86/traps-setup.c
>>>>>> @@ -19,6 +20,124 @@ boolean_param("ler", opt_ler);
>>>>>> 
>>>>>> Â void nocall entry_PF(void);
>>>>>> 
>>>>>> +/*
>>>>>> + * Sets up system tables and descriptors for IDT devliery.
>>>>>> + *
>>>>>> + * - Sets up TSS with stack pointers, including ISTs
>>>>>> + * - Inserts TSS selector into regular and compat GDTs
>>>>>> + * - Loads GDT, IDT, TR then null LDT
>>>>>> + * - Sets up IST references in the IDT
>>>>>> + */
>>>>>> +static void load_system_tables(void)
>>>>>> +{
>>>>>> +Â Â Â  unsigned int i, cpu = smp_processor_id();
>>>>>> +Â Â Â  unsigned long stack_bottom = get_stack_bottom(),
>>>>>> +Â Â Â Â Â Â Â  stack_top = stack_bottom & ~(STACK_SIZE - 1);
>>>>>> +Â Â Â  /*
>>>>>> +Â Â Â Â  * NB: define tss_page as a local variable because clang 3.5
>>>>>> doesn't
>>>>>> +Â Â Â Â  * support using ARRAY_SIZE against per-cpu variables.
>>>>>> +Â Â Â Â  */
>>>>>> +Â Â Â  struct tss_page *tss_page = &this_cpu(tss_page);
>>>>>> +Â Â Â  idt_entry_t *idt = this_cpu(idt);
>>>>>> +
>>>>> Given the clang baseline this might not be needed anymore?
>>>> Hmm.Â  While true, looking at 51461114e26, the code is definitely 
>>>> better
>>>> written with the tss_page variable and we wouldn't want to go back 
>>>> to
>>>> the old form.
>>>> 
>>>> I think that I'll simply drop the comment.
>>>> 
>>>> ~Andrew
>>>> 
>>>> P.S.
>>>> 
>>>> Generally speaking, because of the RELOC_HIDE() in this_cpu(), any 
>>>> time
>>>> you ever want two accesses to a variable, it's better (code gen 
>>>> wise) to
>>>> construct a pointer to it and use the point multiple times.
>>>> 
>>>> I don't understand why there's a RELOC_HIDE() in this_cpu().Â  The
>>>> justification doesn't make sense, but I've not had time to explore 
>>>> what
>>>> happens if we take it out.
>>> There's no justification in xen/percpu.h?
>> 
>> Well, it's given in compiler.h by RELOC_HIDE().
>> 
>> /* This macro obfuscates arithmetic on a variable address so that gcc
>> Â Â  shouldn't recognize the original var, and make assumptions about it 
>> */
>> 
>> 
>> But this is far from convincing.
>> 
>>> 
>>> My understanding is that we simply may not expose any accesses to 
>>> per_cpu_*
>>> variables directly to the compiler, or there's a risk that it might 
>>> access
>>> the "master" variable (i.e. CPU0's on at least x86).
>> 
>> RELOC_HIDE() doesn't do anything about the correctness of the pointer
>> arithmetic expression to make the access work.
>> 
>> I don't see how a correct expression can ever access CPU0's data by
>> accident.
> 
> Hmm, upon another look I agree. I wonder whether we inherited this from
> Linux, where in turn it may have been merely a workaround to deal with
> preemptible code not correctly accessing per-CPU data (i.e. not
> accounting for get_per_cpu_offset() not being stable across 
> preemption).
> Yet then per_cpu() would have been of similar concern when "cpu" isn't
> properly re-fetched after any possible preemption point ...
> 
> Jan

Probably inherited with a stripped-down comment on top of RELOC_HIDE, 
see [1]. In a way it does make sense that the compiler may decide to 
optimize based on this assumption, though I don't know whether wrapping 
is meant to happen with per-CPU variables.

[1] 
https://elixir.bootlin.com/linux/v6.16/source/include/linux/compiler-gcc.h#L31

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 08:42:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 08:42:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083046.1442707 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umq1X-0001OF-B2; Fri, 15 Aug 2025 08:42:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083046.1442707; Fri, 15 Aug 2025 08:42: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 1umq1X-0001O8-8G; Fri, 15 Aug 2025 08:42:55 +0000
Received: by outflank-mailman (input) for mailman id 1083046;
 Fri, 15 Aug 2025 08:42:53 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5DW6=23=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umq1V-0001O2-R0
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 08:42:53 +0000
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com
 [2a00:1450:4864:20::636])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d4e7bb44-79b3-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 10:42:52 +0200 (CEST)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-afcb79f659aso272716966b.2
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 01:42:53 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afcdce72d7fsm95281166b.45.2025.08.15.01.42.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Aug 2025 01:42: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>
X-Inumbo-ID: d4e7bb44-79b3-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755247372; x=1755852172; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=sp8j09d/FwqmGud3wvm8WI8EqrLbh/424KQpQumueW4=;
        b=BqwSpCoE8soJbEhdPDxM58cb6nwv4/un1CttEXiMy3m5ZIuDaEnxYS05diW0wZFMIq
         qHXxbuqCW7Mt7bNLelWQ1OosMQIDDPI5GLErzC+WEv/bHYfz6/kqKZxuFI5tvd7J0op1
         qRJcEqKkxm0EVLVwNngl1xEOkHq91B986RrJZb9scHzIBN0LaMZLk9Ure9n1HXZLkKMk
         Tx5H3hLZyFBnujemBxoCpmG+Y5P+1pTdeBW1hETCwJw+QQCgwxpF09CKaUeT6FIg/gBn
         djTvU4CcCi7eBSZT4kis2y5jQIDQQ73p+JsaPmNzn+osHC0O3yDdstbko1hqfZXta4er
         zsTg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755247372; x=1755852172;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sp8j09d/FwqmGud3wvm8WI8EqrLbh/424KQpQumueW4=;
        b=DM7NxGzVA3xIMiHixDsYJaKbDTcPY0U4O65QrZ2xqe4Y04CM4FVyNbajxTomFzeqVN
         YixTvSbbAnFO04HphHIgjrM1nja/pwvwhaOFkNF5koA6MPPAwUrinoZMX7WFvm2o5u4n
         FbFYeYlfVSasI5YgwpyTp7zzUNDMmC3qWw1fDVyNiX/1ivGFJs2hi5ccUXGlQnwXZ+nv
         ZQy9x2YibefJYseQ5Bx/qD721q1N6NvJ9D2IwCKZ09GFvOYL9T3gSBbq4iIfp6HRc012
         nfbqrZUKX5qms9o9vQBX7RpXXAGygIILCU/wYWMgWcEB9tBt0iXIdNJ0wQZfp1z318B/
         gr3A==
X-Forwarded-Encrypted: i=1; AJvYcCWmOMYXc3r6+KizSwhRVwrkVWwoOwEoaAvJqyRyEF8+MlzraW9yPE55mozPjKwR4/gCtYB7jjAP3VU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzHy06OL4uUmqdpp8LRAkHMwzdoh0YM43eu+UJ9T6f5H1OLoOre
	9/rqMBtzB9EJXyRTE2iM2+RM3q4j1lrebk3U7cZtbbMRKl7tmAQixE3LkgWvl8V61Q==
X-Gm-Gg: ASbGnctoEdsALoyqZu49R2jv9Un2agIXkdmXpfyS+++5K6tRM1Lsyp1sNDeHuK0llMD
	NQFr/Ytbt/mi7pyI6dZeSoYPgSdi6u+n1fGCYjDvqRpxwk4BTDMK3vgI1UQ5HrHZDFvfInagU+V
	kpUf3o9CPid/ZvNq3GO/6GUC7TnQRK/ftJ4q8kMzthK0oHDzNTzerz5aTA4Tn9rhCz9xq8f7272
	0PXPJ4g0snsMa3P5IvSFr/g3VfbCgG9HJ8fdGuU6E48TYccjiGowq1fYmj0HYJtt/vGhH3nYJTC
	+/qNx6StINTqkDdqwL3zFkxC4aak6cQQez6lhHWMDe17Yplatc6XVM3GTSm2DrVmS1jpbnycPNi
	41wCjqNym9NLbEt/nbLP7MGyAgN9qhdAZAkajtipEL9c/J6NhQWOD2dtI5EduMS6Tox8E1aE5QS
	0cjbWYiC0=
X-Google-Smtp-Source: AGHT+IF5peGhDa4gEbOPiTXg1SWpskWxQEmUXh3EuYw8ljsoXpisY/3MCtK6FmZiu3X0Bp+1G9aveg==
X-Received: by 2002:a17:907:3f12:b0:af9:414d:9c2 with SMTP id a640c23a62f3a-afcdc1c2477mr115620866b.3.1755247372400;
        Fri, 15 Aug 2025 01:42:52 -0700 (PDT)
Message-ID: <99171678-71a2-4cec-a6dc-343993108a37@suse.com>
Date: Fri, 15 Aug 2025 10:42:51 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] docs/misra: fix sphinx-build issues
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <fb809a94e8a50bd3a59aa47ee1832c61af8a9f40.1755241166.git.dmytro_prokopchuk1@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <fb809a94e8a50bd3a59aa47ee1832c61af8a9f40.1755241166.git.dmytro_prokopchuk1@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.08.2025 09:00, Dmytro Prokopchuk1 wrote:
> --- a/docs/misra/deviations.rst
> +++ b/docs/misra/deviations.rst
> @@ -95,7 +95,8 @@ Deviations related to MISRA C:2012 Rules:
>         the absence of reports that do not have an impact on safety, despite
>         being true positives.
>         Xen expects developers to ensure code remains safe and reliable in builds,
> -       even when debug-only assertions like `ASSERT_UNREACHABLE() are removed.
> +       even when debug-only assertions like `ASSERT_UNREACHABLE()` are removed.
> +     - ECLAIR has been configured to ignore those statements.

Mind me asking why one form of quoting is used here (using back-tick), while ...

> --- a/docs/misra/rules.rst
> +++ b/docs/misra/rules.rst
> @@ -124,7 +124,7 @@ maintainers if you want to suggest a change.
>             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()'
> +         - Functions that are no-return due to calls to the 'ASSERT_UNREACHABLE()'

... another is used here (single quotes)?

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 08:49:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 08:49:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083056.1442716 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umq7d-0002Nu-Uc; Fri, 15 Aug 2025 08:49:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083056.1442716; Fri, 15 Aug 2025 08:49: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 1umq7d-0002Nn-Ro; Fri, 15 Aug 2025 08:49:13 +0000
Received: by outflank-mailman (input) for mailman id 1083056;
 Fri, 15 Aug 2025 08:49:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5DW6=23=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umq7c-0002Nh-Kd
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 08:49:12 +0000
Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com
 [2a00:1450:4864:20::634])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b65ae3aa-79b4-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 10:49:11 +0200 (CEST)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-afcb72d5409so289069566b.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 01:49: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
 a640c23a62f3a-afcdce72db0sm95083366b.38.2025.08.15.01.49.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Aug 2025 01:49: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>
X-Inumbo-ID: b65ae3aa-79b4-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755247750; x=1755852550; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=NDKn85YhVQuiGAXpeIem42zh5VYz9mxqsRhW3y92ScM=;
        b=OfwWenzxNPmqesHLg8jHV9wHKW5iPBRVE42hj1d+wz24lROefWN/63O9QLxyPs9vnS
         +rHxfIJd60vn39CNPGz6jLcFW1jhy3wXSIu8IYzTtA4RSm2i2+ArezefptVhLqAWIkr7
         7X4xAwOebLB+ngavANf4MoUT+p5G1kiYHQmqAep5RTx/mllB+dxggCCSr/70J7mCBTkh
         9mDNnPMvl5+pETsHpqnF6PCzoVDbCuvEHB8cdMBpVlS6smdJlvY/zyn2mBdPdAE9KjHB
         VcadajTwAHlT359jAlVhdONzIvwO6IcOxrTdImxtb3e/bauwP0582lZnFR7+cvE5j3zp
         aOPQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755247750; x=1755852550;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NDKn85YhVQuiGAXpeIem42zh5VYz9mxqsRhW3y92ScM=;
        b=VVOCnhjFxFcLgiHOJvTeY9DE4y+dDU4JhOUgaN0ES3dXw804iur3S7fpnMRMd9PY3Q
         eHs9i4kvpi+T/i6nqXluHmQGrAuDgv3jHhDXqytaebsRCO3HwuTXm097MPQ9PJKYETr4
         Lebwm9y3NEIAvqhwb3Y4q8NujL660W/ny/PAR4DCJdR8dTD1R4IBNLWn/Dt9kgbIsujP
         yAtZF0eeN8RfKapORprmWlRbpqMxsdUwluooyLggOAxkahLbBLWU/K5UHm9dQtNkjNhK
         vV5Ayhh4xm3wTnbTcFT/PoY4tnuQu7+cWtgQtiP9wh9IgSMkPdqGF1RhBfI23+2TfNnP
         UFkw==
X-Forwarded-Encrypted: i=1; AJvYcCW9sot7yaP3gA6AR0BFsNbPRNeKZT0TKD3VwSapw1fTP1cGAf3qgvCEYVnvd2h9cHJwTGmp3HtfSXg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwRfhYZaGl4ZAbwxqI68nvf+AWSOIQM95eDNVL0qOd/n5IeN9oy
	lJ8E7hoUnUGmIOKMSWZ7bykANUo/8mnp4wRDWtaZTx7lD1qngLTC1l3SbNcT3qbiNg==
X-Gm-Gg: ASbGnctN9bjU72GjI0b4F5s/fVVtFs5YKOvJZC7V0XlM59npOeManmVKXVzOipuol5j
	061xqMdkxUDTOoZjFf9oQOv9aqxo2OCCq2Ojj2btCdzki953AyXP4yNoopRduMHqzxnkuv1UW+q
	/FamlADQ5ZT+a/uDQFs4KVWu9pExsFPnKftp9c2orZnkyek7jEB2jfkbG4F2htteBfM9N+WuBF+
	RuEAmrY4COTO8ebD/kOAozXcL8AivZjR4QyL8LoTyMAzuvKKqDpf37H6tBkwpmimfHSk+CJ87bl
	AvCp9BmMkTvOj4NqwFP3gqm2NTk3p+pRrUY0whM1b5uz6wGJdlmkKk1NREWSySjq+G5v99qWKi1
	skOuUkMIoGg5udTfJxl8t1ejE/NhXx80O8QIYuzpxum3l/dX2/lOrmqxbJZAzIIU9zN7PjDqiGy
	Hu26DplK8=
X-Google-Smtp-Source: AGHT+IHeKjanxpUaltsw27FVqlgNaD492Y7MtGoNdHs4hW9D2TDx9y9MywM8iH1XM2Ye16C52YFVlQ==
X-Received: by 2002:a17:907:3c95:b0:afc:b61a:df8 with SMTP id a640c23a62f3a-afcdc32a5aemr100033666b.34.1755247750502;
        Fri, 15 Aug 2025 01:49:10 -0700 (PDT)
Message-ID: <d04ff22a-59e6-47f4-817e-c26ff2a98505@suse.com>
Date: Fri, 15 Aug 2025 10:49:09 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 09/22] x86/traps: Move load_system_tables() into
 traps-setup.c
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
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>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-10-andrew.cooper3@citrix.com>
 <80285a06f5d4fb3bd3e378317cca61ca@bugseng.com>
 <7e906964-b07d-4205-a683-e665f19d5edc@citrix.com>
 <aab37ec2-33bf-403b-978a-dc3c4bc282f7@suse.com>
 <0af415c5-df96-4715-a7e6-0d645e2e3a96@citrix.com>
 <75886e26-29b3-4aab-9780-7301330b4bb1@suse.com>
 <219ecea713dd9dac4c788d91c727f401@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <219ecea713dd9dac4c788d91c727f401@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15.08.2025 10:40, Nicola Vetrini wrote:
> On 2025-08-15 10:30, Jan Beulich wrote:
>> On 14.08.2025 20:20, Andrew Cooper wrote:
>>> On 14/08/2025 8:26 am, Jan Beulich wrote:
>>>> On 13.08.2025 13:36, Andrew Cooper wrote:
>>>>> On 12/08/2025 10:43 am, Nicola Vetrini wrote:
>>>>>> On 2025-08-08 22:23, Andrew Cooper wrote:
>>>>>>> diff --git a/xen/arch/x86/traps-setup.c 
>>>>>>> b/xen/arch/x86/traps-setup.c
>>>>>>> index 8ca379c9e4cb..13b8fcf0ba51 100644
>>>>>>> --- a/xen/arch/x86/traps-setup.c
>>>>>>> +++ b/xen/arch/x86/traps-setup.c
>>>>>>> @@ -19,6 +20,124 @@ boolean_param("ler", opt_ler);
>>>>>>>
>>>>>>> Â void nocall entry_PF(void);
>>>>>>>
>>>>>>> +/*
>>>>>>> + * Sets up system tables and descriptors for IDT devliery.
>>>>>>> + *
>>>>>>> + * - Sets up TSS with stack pointers, including ISTs
>>>>>>> + * - Inserts TSS selector into regular and compat GDTs
>>>>>>> + * - Loads GDT, IDT, TR then null LDT
>>>>>>> + * - Sets up IST references in the IDT
>>>>>>> + */
>>>>>>> +static void load_system_tables(void)
>>>>>>> +{
>>>>>>> +Â Â Â  unsigned int i, cpu = smp_processor_id();
>>>>>>> +Â Â Â  unsigned long stack_bottom = get_stack_bottom(),
>>>>>>> +Â Â Â Â Â Â Â  stack_top = stack_bottom & ~(STACK_SIZE - 1);
>>>>>>> +Â Â Â  /*
>>>>>>> +Â Â Â Â  * NB: define tss_page as a local variable because clang 3.5
>>>>>>> doesn't
>>>>>>> +Â Â Â Â  * support using ARRAY_SIZE against per-cpu variables.
>>>>>>> +Â Â Â Â  */
>>>>>>> +Â Â Â  struct tss_page *tss_page = &this_cpu(tss_page);
>>>>>>> +Â Â Â  idt_entry_t *idt = this_cpu(idt);
>>>>>>> +
>>>>>> Given the clang baseline this might not be needed anymore?
>>>>> Hmm.Â  While true, looking at 51461114e26, the code is definitely 
>>>>> better
>>>>> written with the tss_page variable and we wouldn't want to go back 
>>>>> to
>>>>> the old form.
>>>>>
>>>>> I think that I'll simply drop the comment.
>>>>>
>>>>> ~Andrew
>>>>>
>>>>> P.S.
>>>>>
>>>>> Generally speaking, because of the RELOC_HIDE() in this_cpu(), any 
>>>>> time
>>>>> you ever want two accesses to a variable, it's better (code gen 
>>>>> wise) to
>>>>> construct a pointer to it and use the point multiple times.
>>>>>
>>>>> I don't understand why there's a RELOC_HIDE() in this_cpu().Â  The
>>>>> justification doesn't make sense, but I've not had time to explore 
>>>>> what
>>>>> happens if we take it out.
>>>> There's no justification in xen/percpu.h?
>>>
>>> Well, it's given in compiler.h by RELOC_HIDE().
>>>
>>> /* This macro obfuscates arithmetic on a variable address so that gcc
>>> Â Â  shouldn't recognize the original var, and make assumptions about it 
>>> */
>>>
>>>
>>> But this is far from convincing.
>>>
>>>>
>>>> My understanding is that we simply may not expose any accesses to 
>>>> per_cpu_*
>>>> variables directly to the compiler, or there's a risk that it might 
>>>> access
>>>> the "master" variable (i.e. CPU0's on at least x86).
>>>
>>> RELOC_HIDE() doesn't do anything about the correctness of the pointer
>>> arithmetic expression to make the access work.
>>>
>>> I don't see how a correct expression can ever access CPU0's data by
>>> accident.
>>
>> Hmm, upon another look I agree. I wonder whether we inherited this from
>> Linux, where in turn it may have been merely a workaround to deal with
>> preemptible code not correctly accessing per-CPU data (i.e. not
>> accounting for get_per_cpu_offset() not being stable across 
>> preemption).
>> Yet then per_cpu() would have been of similar concern when "cpu" isn't
>> properly re-fetched after any possible preemption point ...
> 
> Probably inherited with a stripped-down comment on top of RELOC_HIDE, 
> see [1]. In a way it does make sense that the compiler may decide to 
> optimize based on this assumption, though I don't know whether wrapping 
> is meant to happen with per-CPU variables.

I wouldn't call it "meant to", but wrapping certainly is possible. This
is arch-independent code, and hence whether any wrapping would occur
depends on the VA layout of the individual architectures.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 08:53:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 08:53:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083066.1442726 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umqBL-0004FA-Cy; Fri, 15 Aug 2025 08:53:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083066.1442726; Fri, 15 Aug 2025 08: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 1umqBL-0004F3-9w; Fri, 15 Aug 2025 08:53:03 +0000
Received: by outflank-mailman (input) for mailman id 1083066;
 Fri, 15 Aug 2025 08:53:01 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5DW6=23=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umqBJ-0004Ex-Kl
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 08:53:01 +0000
Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com
 [2a00:1450:4864:20::630])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3e8ac98a-79b5-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 10:52:59 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-afcb78d5e74so283704066b.1
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 01:52: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
 a640c23a62f3a-afcdce53c26sm93938966b.17.2025.08.15.01.52.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Aug 2025 01:52: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>
X-Inumbo-ID: 3e8ac98a-79b5-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755247979; x=1755852779; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+KlIxOv/DM19//SJ3J/e/fsCOHMbI95nDUME0qVtWWg=;
        b=MMEpRnQjt8x+f+j3tKgX1h9VWe7gnFinR+71IQi0rR25BZ14q0uyh0TGj+nQDBMbwE
         TXau5uhfViA7JZCvr7HZWRuvsoO0eUYToQDb6MsNNOXyf3xyh5w4cijq8La8AZqsUhxB
         nZrZ5x0jb3uRZzC/z+DTljCe0DxryHFV5/hWEzgYyQmvLRL/koItQjkrw4mUERvdCLl/
         sN5k2donf4aLEqm6niJW/Rs0/8K1keO8+XjsxP+WpxHaLHhcPJe4ac1q3/2HGbIZQj60
         q/38t3jO3K1XjjFX1hXLMh9TWRw9Awoqhrry+ZwbQepru6OH1fETNKx2oYLKOoxCh4fP
         18Vg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755247979; x=1755852779;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+KlIxOv/DM19//SJ3J/e/fsCOHMbI95nDUME0qVtWWg=;
        b=Xpr7zOcUhWvQh+PcK6be6y/MUrJRUATnMfGbRWfZkz8v+L4+MFJDiKcsmrh0zyOo7F
         vW/gCqtPBMvsoODa/rjg5uxhxqUnGY1p4UIqWGnawOIkdtQ9XIfs+LRy1pzmRz4YX7vv
         TUBcLsw7jPCP7MiYN4WnVNGVOZUN339pAnerz/0tO53rgTTMB/r13FoRFBsZRzMS56CQ
         Ua9j0YN9D2D+SHFZsbjn16apJXRRNK/dZtMjFyIoziq5IRGIOkXbr8mDMJ1Tex9Bf820
         zs+NKHtmddOT9J7nL9dn+UcZov9JAwhxkHG5KNXWwEXtx7oSa4soP8kOCN4dJl4OkyYw
         C+8w==
X-Forwarded-Encrypted: i=1; AJvYcCXnwBMIc+zUzb0norCL0AWL37osErwGKHPXmbiR6w1ms0xF+fZX73ueoRClhzBlanLWAU+MoF6TGe4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx3lcHnLWc1SD9R8AQKlZeUgzIk8DjzchiVcuxWQBka059hWa+0
	ZY3mYAKLY4CUvSRD3xJQz0FnEyBXdSk4A9U94rQHdcOovorLwJmv4qqbEDWkx9xlbA==
X-Gm-Gg: ASbGncvbcl/f8Hvr66lewSOcdlUC8YEsDKxhwPjKscfgchOO31OPDI9OkZEQSKTOJii
	tnX0WsyQf/pY9A/2L+KXUOPyV0oHPqwomiIZEVy1XT5cAU7sxfEJthKcicn17LlsMnPRbTqhgBR
	jy1TVH6FFssjrVhz3uB4iTYDeNkcK/QOV2N8lG9i5biBJwAEEPKsI4CF58Ww49HYrExwvH1WTKX
	JYXs1un/1Gnhk9iE+e/jaYMhXp7rl7c8JIh90TPL7zk1dt5y71yfogmGOlGl+dugvRvnR1vk2Ni
	Pn9h77LAVrNoH5Zq1c5oZFuBtfYJG0moSn+EtmRcdeSU+Fu5VmUqzlL3rNC41qeAIh9mt1MDGVI
	2HmeweY7nnUwM03BM508PMPM3OUXxeFRtNQhOr5Zmxzb2Myl1kEv5KplTtSu5YQtm7mn2XqlhHM
	QbJL552h8=
X-Google-Smtp-Source: AGHT+IHYGk5XgkPv5ka2vG5rSNtjWiJOJpW+ftjRmHXJ9D8w5+iG/5nzkQygwpLJCkAI163vLSDxvw==
X-Received: by 2002:a17:907:1b0c:b0:ae1:5db8:b78f with SMTP id a640c23a62f3a-afcdc35d96fmr105970366b.34.1755247978914;
        Fri, 15 Aug 2025 01:52:58 -0700 (PDT)
Message-ID: <2377fe95-2c04-4b71-8bdd-ea61996c82a4@suse.com>
Date: Fri, 15 Aug 2025 10:52:57 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 18/22] x86/traps: Set MSR_PL0_SSP in load_system_tables()
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-19-andrew.cooper3@citrix.com>
 <74a76087-e45e-4d7a-8df3-2711f77eea2a@suse.com>
 <abfd11c9-db7b-4922-aeb5-381b5284fb22@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: <abfd11c9-db7b-4922-aeb5-381b5284fb22@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14.08.2025 21:37, Andrew Cooper wrote:
> On 14/08/2025 4:00 pm, Jan Beulich wrote:
>> On 08.08.2025 22:23, Andrew Cooper wrote:
>>> --- a/xen/arch/x86/boot/x86_64.S
>>> +++ b/xen/arch/x86/boot/x86_64.S
>>> @@ -65,17 +65,11 @@ ENTRY(__high_start)
>>>          or      $(PRIMARY_SHSTK_SLOT + 1) * PAGE_SIZE - 8, %rdx
>>>  
>>>          /*
>>> -         * Write a new supervisor token.  Doesn't matter on boot, but for S3
>>> -         * resume this clears the busy bit.
>>> +         * Write a new Supervisor Token.  It doesn't matter the first time a
>>> +         * CPU boots, but for S3 resume or CPU hot re-add, this clears the
>>> +         * busy bit.
>>>           */
>>>          wrssq   %rdx, (%rdx)
>>> -
>>> -        /* Point MSR_PL0_SSP at the token. */
>>> -        mov     $MSR_PL0_SSP, %ecx
>>> -        mov     %edx, %eax
>>> -        shr     $32, %rdx
>>> -        wrmsr
>>> -
>>>          setssbsy
>> This is ending up a little odd: The comment says the write is to clear the
>> busy bit, when that's re-set immediately afterwards.
> 
> That comment is about the wrssq.Â  I suppose what isn't said is that
> setssbsy will fault if not.Â  How about ", so SETSSBSY can set it again" ?

That would improve things, but then it's still unclear to me why we need to
go through this. If the busy bit is already set, why clear it just to set
it again. Or perhaps asked differently: Wouldn't we be better off if we
cleared the busy bit when a CPU went offline?

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 09:03:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 09:03:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083082.1442737 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umqLJ-0006Iy-Ea; Fri, 15 Aug 2025 09:03:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083082.1442737; Fri, 15 Aug 2025 09:03: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 1umqLJ-0006Ir-BF; Fri, 15 Aug 2025 09:03:21 +0000
Received: by outflank-mailman (input) for mailman id 1083082;
 Fri, 15 Aug 2025 09:03:19 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5DW6=23=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umqLH-0006Il-C6
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 09:03:19 +0000
Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com
 [2a00:1450:4864:20::630])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id af5268c0-79b6-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 11:03:18 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-afcb72d51dcso262408766b.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 02:03: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
 a640c23a62f3a-afcdd018b27sm92186966b.105.2025.08.15.02.03.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Aug 2025 02:03: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>
X-Inumbo-ID: af5268c0-79b6-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755248598; x=1755853398; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=RGubftaYcdFb8zsB0VfOymiv0pkY/lHQxH5McHtxYuw=;
        b=bX4UDREGdeO+zjzqmeWKnvTNRK6ABLQMP99Ff9F3nRovhj8GiBdxmpfVZbNLmXqvMb
         tRoxrwO1/6dv+OSQ2uhclfgEEC+d3HB7NGW/dScW5YMJLf2mofACGUX2yym4kjCsqevu
         oA11eWbXigeld4a3lAuTh4/r5s1Be55gvxLB+fxj4a0wJUFoPbO5jTdd4I1XB+gvawoP
         vB0q+d295EgSnnubJpW0mF3cHDMM4F+UhT1WD4LOOp9lEs6/sdljB22faWYIZJvOtUew
         YoW2X36mYpwhXzZSKYM3tao9z2uUl1IHsZqEPrRZpHZqKJL7OPIlMtwmlpD5aR6Adx3I
         2Crw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755248598; x=1755853398;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RGubftaYcdFb8zsB0VfOymiv0pkY/lHQxH5McHtxYuw=;
        b=m/R35mDpEcUgvk8qRVB1FVV6f2ZX+Hs6L6ol1fyegMr0kdFmRU58oeV8N/+NYrXP9J
         MmtbJOKHj2Ymt9LuHo+/X5gv8Q/2a928eVpkFbfJTGurT9QBPpxyOjWBjMidZo/DRmXQ
         DIii/9yhOOZnj9D6mj831WlRabOECAmpn0Nd5qUrVq6r7af+KDQpssEK7KQF+TzhB22G
         unJSEJG8fsJj6Yu/kUTSahX2GiHvzbyU6jRTEYTjwYJqAoFgAgNNb+av12twc19nyYJ/
         VtUFOp5Tpe2wtffCasKN8ghikHVGYJYd0LIhcikn5H2q0TKplp0ab1hyrJJIuw4+ZXpW
         Vi0g==
X-Forwarded-Encrypted: i=1; AJvYcCVGyPqltJpnV6IB+Km7YsqfS8yAcrMMbedQ4BWo3hnD50iFn/uko8HoV1d+DEB5LXF/L3mG1lJjzUk=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz1o6T15qeGKBmJEOWlP713O0kYatwu4Cg4vbTe1185mYgb42WD
	QB/4bsqNf90ygMYhPtaJtD2DFDdJAUpDwWsB1BWt6IiQnn6slyR9d/IH5r3ek0Z02A==
X-Gm-Gg: ASbGncto2SZH80aUNAUBAeYL7dUmZlnBOMhZRc+Lw0U12olfpThoFWKifEqEVAo0dm+
	3jtf4FiftYl4/feWRb5yRYnLGctf5UxkYO3HcgIe4FY4zGrQI4H0x79HSw3ymXy2Af5rIxeU6mO
	VI47759rlLpJZOobUVw8QyL0b4cLcKnuwhycIwGdMZMURMI6aVsJqR0TeRTEGHa5eVLZSb9q2Vp
	SoNtCmt8PI1MHwaTxRQNOvDhhoSe5aNpLiqv65XmKIAFv4FZQEpkUfTS5lwuKOjXVp6ozzQ1DqQ
	c1fO7lip5i0sKIk9IgkP28PEADXEmoWAcg8tS/2xQYZ0WIWwthmT8FwHaaHZsM8KQToZEnNYKXf
	IBpOHbV0ly4bBfQDPUAxRi+z3XpOryj2bvMO3qgKV0eAFRszL++tZ76fv69tcz+DX9qCsu1MC17
	W5pVIxkICbS5tgv6EAlQ==
X-Google-Smtp-Source: AGHT+IEVKP9GJkMwmUxehUfoNQdcuqadJVENNAGegzdi6vZCQSXeNPQAXgKXfmNbxOj+hi/L3/lGFw==
X-Received: by 2002:a17:907:728d:b0:af9:b456:f9c8 with SMTP id a640c23a62f3a-afcdbada8e6mr109197466b.0.1755248597474;
        Fri, 15 Aug 2025 02:03:17 -0700 (PDT)
Message-ID: <1576d28d-bdd9-488e-a374-29695fca4ca5@suse.com>
Date: Fri, 15 Aug 2025 11:03:16 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 19/22] x86/boot: Use RSTORSSP to establish SSP
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-20-andrew.cooper3@citrix.com>
 <5ad64534-514c-412a-b2a2-23adaf835f60@suse.com>
 <757e3b87-bb4f-410a-84b7-cf3607bf3eb3@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: <757e3b87-bb4f-410a-84b7-cf3607bf3eb3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14.08.2025 22:09, Andrew Cooper wrote:
> On 14/08/2025 4:11 pm, Jan Beulich wrote:
>> On 08.08.2025 22:23, Andrew Cooper wrote:
>>> Under FRED, SETSSBSY is unavailable, and we want to be setting up FRED prior
>>> to setting up shadow stacks.  As we still need Supervisor Tokens in IDT mode,
>>> we need mode-specific logic to establish SSP.
>>>
>>> In FRED mode, write a Restore Token, RSTORSSP it, and discard the resulting
>>> Previous-SSP token.
>>>
>>> No change outside of FRED mode.
>>>
>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> Why is it that in patch 17 you could use identical code, but here you can't?
> 
> This caught me out at first too.
> 
> For S3, we're going from "no shadow stack" to "back to where we were on
> an active shadow stack".Â  All we need to do is get saved_ssp back into
> the SSP register.
> 
> Here, we're going from "no shadow stack" to "on a good, empty, shadow
> stack".Â  For FRED we only need to load a value into SSP, but in IDT mode
> we must also arrange to create a busy Supervisor Token on the base of
> the stack.
> 
> We could in principle conditionally write a busy supervisor token, then
> unconditionally RSTORSSP, but that's even more complicated to follow IMO.

Why would the write need to be conditional? Can't we write what effectively
is already there? Or is it more a safety measure to avoid the write when
it's supposed to be unnecessary, to avoid papering over bugs?

>>> @@ -912,10 +913,30 @@ static void __init noreturn reinit_bsp_stack(void)
>>>  
>>>      if ( cpu_has_xen_shstk )
>>>      {
>>> -        wrmsrl(MSR_PL0_SSP,
>>> -               (unsigned long)stack + (PRIMARY_SHSTK_SLOT + 1) * PAGE_SIZE - 8);
>> Does this removal perhaps belong elsewhere, especially with "No change
>> outside of FRED mode" in the description?
> 
> This is the "Updating reinit_bsp_stack() is deferred until later." note
> in the previous patch.
> 
> This hunk was illegible without the split, although I have to admit that
> I can't quite remember why now.

Hmm, if it is to stay like this, would you mind adding a respective remark
also in the description here?

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 09:10:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 09:10:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083096.1442748 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umqSQ-0007pk-5V; Fri, 15 Aug 2025 09:10:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083096.1442748; Fri, 15 Aug 2025 09:10: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 1umqSQ-0007pd-1g; Fri, 15 Aug 2025 09:10:42 +0000
Received: by outflank-mailman (input) for mailman id 1083096;
 Fri, 15 Aug 2025 09:10:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5DW6=23=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umqSP-0007pW-J4
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 09:10:41 +0000
Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com
 [2a00:1450:4864:20::52e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b643f870-79b7-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 11:10:39 +0200 (CEST)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-6188b5ad681so2586588a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 02:10: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
 4fb4d7f45d1cf-618b01b5facsm1009436a12.41.2025.08.15.02.10.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Aug 2025 02:10: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>
X-Inumbo-ID: b643f870-79b7-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755249039; x=1755853839; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=KOGibgqHpFSUyECnu5mFn8dJLnKijIdNyAd+pMF56UM=;
        b=ZWTSsO6VTQKS3etBXtRlqzRzwlHVcerd/VWtvu00AMsOwD1ng+KHnIk+vt+nO5saCv
         2SrywOzADUGP2ZUIB28IHW/Gq2641oldXkEbbroG2qqILad4ONRPc+T0f+nemutT50fN
         2k37kxqohK3IL3ZWOP8/8nbwNh7/v3y7hc2Xklo+uY71xtWRTwGhlCWWkB7GABMB15Mr
         lYvR4geJDsvZHD07btDz0IFM8cBXV5CSf5nxqdVw7Gh8hmFxitsc4iQxQ81/jMB9vNgw
         OrZkgWgCzKWoHFxFhV7ZM1rhHlEj+SgLnk48kKe2kyNpSln0+bsCOqy0n/epXppQj9F3
         pJxA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755249039; x=1755853839;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=KOGibgqHpFSUyECnu5mFn8dJLnKijIdNyAd+pMF56UM=;
        b=CAbUAEjOZmM2W7Mfl5JYBCQLuzlnFDfenD3OJjm+dQsyZKjEEMEWjGPsq9VR86Ho42
         1KmQwUQRGUM2tbgOYjo9l7ARv6Gc2N532wcNcEayWxfjrPBqv/FFJULkk/373zHxOZLv
         e1SzRMKSA0gk1d+mEE8pI+ymXKaR4cYWQA3U3/tsATRBGt88B9w96jSSfHQeMLfnjio2
         Bvsy7FEl2Di3j+N7KaSG6EfNXKOCTThfz/6/PJv9tdkUByLD8aTXMzpbF0uEXmWp4xIx
         wxg/KOM6rQsGULW9YKhADV8c1M1QRz+qeHWUruu7TvwC3x/2Zk1hU30w7Pox6VUI3PBu
         LKdg==
X-Forwarded-Encrypted: i=1; AJvYcCX20zctxSuYgYRe3c3SZg8rWcyd/tRkZ+0GkX8eYz0asrM6rANZpLaejqgXh2xqjKZ4E3rDRhGjtRA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyT03lEVwWKubTxR3qk/zpnfzQzLCHDpEdRCl7qzV9MgiYQZRCE
	+6OHupJa2o/HrrEvE+1DzHQhXlMQxwcY+KJHc9t0VW5PkE0R8DiTKS52rBm5OBe7JA==
X-Gm-Gg: ASbGncvWngMjO9pE6Eu1+Nl7JqmxbyLb4wBariBVvtvCNfJIKcJAg7VQJx6knquqFy6
	/dLCq/pjTfX0bYRHoChD/1y5LVCOGUaTjnA3Z3jAxG574HwuaL1jGTeIsB0no3CWcIDh9kznT9E
	xxKXY44N3YLPHhvuEbeIg/y377Jq7zUe5b395RmVKOiauSC81iaBZltCvgRkX8nUWMaCatzH//q
	4gxM+aacKge1AgMgY2KAJ7s4T0sODhRjniyRUQm0FezuPlMeD6OkwKC9hWy15tSwjnkuCjNzJIK
	5TcxDILGZ8ZQNgoq3cWr+Gf8UCeuKSY9Jnm2B9rDWgLo3PB3NEx/anVPkAoGK5eBjwfW4exTDeu
	k4SVD6queNeb0ZlIsXTjZOKMyqmRP3G1TAHFHONJEXWHAcdc36MNYfiVgeD32Emh1KkND6vyM3e
	AMfg/x5ljojTRCTzZCi506kYn0xBof
X-Google-Smtp-Source: AGHT+IFG7yAhaiDAgztVqlBgzkzTPd1QK3cF4sYr8FukEhuYaaVtd3ibyfOn6QDiAwW1pIGa1NDvyw==
X-Received: by 2002:a17:907:268e:b0:af9:6f04:8dd0 with SMTP id a640c23a62f3a-afcdc32f33cmr130938166b.55.1755249038360;
        Fri, 15 Aug 2025 02:10:38 -0700 (PDT)
Message-ID: <0fdea579-7100-43d8-b5ec-0c9d34476aea@suse.com>
Date: Fri, 15 Aug 2025 11:10:37 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 20/22] x86/traps: Alter switch_stack_and_jump() for FRED
 mode
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-21-andrew.cooper3@citrix.com>
 <7b46de92-d7b6-462f-8469-0f334d9e70bb@suse.com>
 <17498f02-0603-489c-bbc9-2207ffef8029@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: <17498f02-0603-489c-bbc9-2207ffef8029@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14.08.2025 22:55, Andrew Cooper wrote:
> On 14/08/2025 4:35 pm, Jan Beulich wrote:
>> On 08.08.2025 22:23, Andrew Cooper wrote:
>>> FRED and IDT differ by a Supervisor Token on the base of the shstk.  This
>>> means that switch_stack_and_jump() needs to discard one extra word when FRED
>>> is active.
>>>
>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>> ---
>>> CC: Jan Beulich <JBeulich@suse.com>
>>> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
>>>
>>> RFC.  I don't like this, but it does work.
>>>
>>> This emits opt_fred logic outside of CONFIG_XEN_SHSTK.
>> opt_fred and XEN_SHSTK are orthogonal, so that's fine anyway. What I guess
>> you may mean is that you now have a shstk-related calculation outside of
>> a respective #ifdef.
> 
> I really mean "outside of the path where shadow stacks are known to be
> active", i.e. inside the middle of SHADOW_STACK_WORK
> 
>>  Given the simplicity of the calculation, ...
>>
>>>  But frankly, the
>>> construct is already too unweildly, and all options I can think of make it
>>> moreso.
>> ... I agree having it like this is okay.
> 
> Yes, but it is a read of a global even when it's not used.
> 
> And as a tangent, we probably want __ro_after_init_read_mostly too.Â  The
> read mostly is about cache locality, and is applicable even to the
> __ro_after_init section.

Not really: __read_mostly is to keep stuff rarely written apart from stuff
more frequently written (cache locality, yes). There's not going to be any
frequently written data next to a __ro_after_init item; it's all r/o post-
boot. And I don't think we care much during boot.

>>> @@ -154,7 +155,6 @@ unsigned long get_stack_dump_bottom (unsigned long sp);
>>>      "rdsspd %[ssp];"                                            \
>>>      "cmp $1, %[ssp];"                                           \
>>>      "je .L_shstk_done.%=;" /* CET not active?  Skip. */         \
>>> -    "mov $%c[skstk_base], %[val];"                              \
>>>      "and $%c[stack_mask], %[ssp];"                              \
>>>      "sub %[ssp], %[val];"                                       \
>>>      "shr $3, %[val];"                                           \
>> With the latter two insns here, ...
>>
>>> @@ -177,6 +177,8 @@ unsigned long get_stack_dump_bottom (unsigned long sp);
>>>  
>>>  #define switch_stack_and_jump(fn, instr, constr)                        \
>>>      ({                                                                  \
>>> +        unsigned int token_offset =                                     \
>>> +            (PRIMARY_SHSTK_SLOT + 1) * PAGE_SIZE - (opt_fred ? 0 : 8);  \
>>>          unsigned int tmp;                                               \
>>>          BUILD_BUG_ON(!ssaj_has_attr_noreturn(fn));                      \
>>>          __asm__ __volatile__ (                                          \
>>> @@ -184,12 +186,11 @@ unsigned long get_stack_dump_bottom (unsigned long sp);
>>>              "mov %[stk], %%rsp;"                                        \
>>>              CHECK_FOR_LIVEPATCH_WORK                                    \
>>>              instr "[fun]"                                               \
>>> -            : [val] "=&r" (tmp),                                        \
>>> +            : [val] "=r" (tmp),                                         \
>> ... I don't think you can legitimately drop the & from here? With it
>> retained:
>> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> 
> You chopped the bit which has an explicit input for "[val]", making the
> earlyclobber incorrect.

I was wondering whether there was a connection there, but ...

> IIRC, one version of Clang complained.

... that's not good. Without the early-clobber the asm() isn't quite
correct imo. If the same value appeared as another input, the compiler
may validly tie both together, assuming the register stays intact until
the very last insn (and hence even that last insn could still use the
register as an input). IOW if there's a Clang issue here, I think it
may need working around explicitly.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 09:22:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 09:22:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083107.1442757 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umqdW-0001ff-4H; Fri, 15 Aug 2025 09:22:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083107.1442757; Fri, 15 Aug 2025 09:22: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 1umqdW-0001fY-1A; Fri, 15 Aug 2025 09:22:10 +0000
Received: by outflank-mailman (input) for mailman id 1083107;
 Fri, 15 Aug 2025 09:22:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5DW6=23=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umqdV-0001fS-1j
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 09:22:09 +0000
Received: from mail-ed1-x535.google.com (mail-ed1-x535.google.com
 [2a00:1450:4864:20::535])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 50043b9f-79b9-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 11:22:06 +0200 (CEST)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-618adc251f0so755092a12.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 02:22: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
 4fb4d7f45d1cf-618b3d060dbsm759606a12.20.2025.08.15.02.22.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Aug 2025 02:22: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>
X-Inumbo-ID: 50043b9f-79b9-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755249726; x=1755854526; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=brLLhGRT55+VOoNIyf07zvY7oyz20C3zFD/8TMrXLGU=;
        b=fRk8ZXmtOSd0Scb5ppGHN2Xl4VforIwJRdsBlJd45l1ZBUqXaqrO3vfaRupVcEeIZK
         FyNlJ66yS9mL58r1gCeAgsOSZMkUImnW/9/xYgsVxZpm0LoDhPkR5/Cf+03IG6VAHc4j
         JtBCxZCidZd0HLDkBvVdtm3almeKtWMffegxEw6sMVhXWGvfyH/UprE89gFHhDKQHvFC
         VaWFe6/QWH/xfAWPRDThJsqxbI2aHrC3OYNKyo8yZ0lVbCsbFmJVMMbvM0ETG1uOND1q
         ZTJRS/7B0mzr23hW/V22qv7RY0k6AFGHejiJ2SCB1/72Nncgj7VU6is0hjo4uPpSOWU+
         piAA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755249726; x=1755854526;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=brLLhGRT55+VOoNIyf07zvY7oyz20C3zFD/8TMrXLGU=;
        b=FyqyZTZKbLhfh/MtkUU8dk9HqJyaSRYEin4D7u59kS+UCMCn6FZroiT0rJeSrMIL8V
         pN/IhD2QHjslDr1jTMc+1yiOdwzdBOZjetbN9QNBx0z4K4hyDg2ZVTnvHn6mTSA3Ekhp
         fd/bkhv5EzvHwRRC4ABERiEz3y1LtLJ6Q6U9UN9S09SUpCeazdbCDwJwWfDJCzEQPCXV
         IZlAYC0tNy23vuOy96O5itdOV2EUiS6+2hvxsQ/iYbiS4uWzPZRwH755ueMuiI8+dhfa
         0/lVDJ5YobYlAUr4/xJK8xeu5U9J2TSjPvpGsz8VOamNUpvooWhd2DYexiZ3zo2M3bk7
         eEVA==
X-Forwarded-Encrypted: i=1; AJvYcCUuZzBkCWO1P1x/k1+vv/K85vdDJh2ctOCqJtjacQZvuoy16V6m8YFudlG3UPte8fNCpFBapxNrwE8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwfHaLdyFxfi7aL0tKJQYxOIegUCwaXAANNdGvfsLjeiLd16IrN
	1J+0eHgikr+pjes1Q/p+kfsPOQE+Hy6fOEHOlU0TjQ3mPgxrUAGhX2DHiX2kquB4Ow==
X-Gm-Gg: ASbGncvvpViNeFy5w47y4Y8g+6Nd9D19cK57xWAFO3yyzkIU8rav2o+jPhkwjLm8wGl
	LoDppl6tSwl1gz6kvf6RQkubnp9I2regyTe9tZKaaA+mZu0R1koNhJL7dI7xGYukLExwlVSirwF
	jbg8dqewIbR7pevA8vHAXdvX5U/r/K9wceCPvSXgdxWc9NlZd00EMkpFR5QBw3IgGO4cjvlM/iK
	4Npv++mhn3slBvANqS7ENXi1UHOo0c7Gm4B/gwtiENyXXOeEh0rnufTqt4+nwKhQlrAQtnYKfkR
	0oU5F65SHFgZQ7BHLDLYw3Zem1qHkPG/tghkC3Zj/wK+XCxjwex+IaPe+BTDGoP3vODu0l8mj+z
	2ZG+YQXpJVTOhSSAZH93gF6shXIjxEKsaD/oAjX3vtGlO/CG+dVV7Jw1p1FpVzdzKKXFsaEn0Na
	4ddBBj5JQ=
X-Google-Smtp-Source: AGHT+IF6mTrWtQfME2OE9P1P3//2+bVBGyVi8VVX8X0yHDRspi89E+xetHUHaVmenm/nOeqZv/K92w==
X-Received: by 2002:a05:6402:2681:b0:618:3a9d:53df with SMTP id 4fb4d7f45d1cf-618b054e95bmr963827a12.17.1755249726175;
        Fri, 15 Aug 2025 02:22:06 -0700 (PDT)
Message-ID: <6ddc980c-f526-4e01-9294-1b60aa3c843a@suse.com>
Date: Fri, 15 Aug 2025 11:22:05 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 21/22] x86/traps: Introduce FRED entrypoints
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-22-andrew.cooper3@citrix.com>
 <53028a31-e07d-43f1-b320-2775c5560a09@suse.com>
 <37cb95df-520e-45b3-9003-b638296d1001@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: <37cb95df-520e-45b3-9003-b638296d1001@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14.08.2025 22:40, Andrew Cooper wrote:
> On 14/08/2025 4:57 pm, Jan Beulich wrote:
>> On 08.08.2025 22:23, Andrew Cooper wrote:
>>> --- a/xen/arch/x86/include/asm/msr.h
>>> +++ b/xen/arch/x86/include/asm/msr.h
>>> @@ -202,9 +202,9 @@ static inline unsigned long read_gs_base(void)
>>>  
>>>  static inline unsigned long read_gs_shadow(void)
>>>  {
>>> -    unsigned long base;
>>> +    unsigned long base, cr4 = read_cr4();
>>>  
>>> -    if ( read_cr4() & X86_CR4_FSGSBASE )
>>> +    if ( !(cr4 & X86_CR4_FRED) && (cr4 & X86_CR4_FSGSBASE) )
>>>      {
>>>          asm volatile ( "swapgs" );
>>>          base = __rdgsbase();
>>> @@ -234,7 +234,9 @@ static inline void write_gs_base(unsigned long base)
>>>  
>>>  static inline void write_gs_shadow(unsigned long base)
>>>  {
>>> -    if ( read_cr4() & X86_CR4_FSGSBASE )
>>> +    unsigned long cr4 = read_cr4();
>>> +
>>> +    if ( !(cr4 & X86_CR4_FRED) && (cr4 & X86_CR4_FSGSBASE) )
>>>      {
>>>          asm volatile ( "swapgs\n\t"
>>>                         "wrgsbase %0\n\t"
>> I don't quite get how these changes fit into this patch.
> 
> Without the change, read_registers() suffers #UD because of the SWAPGS.
> 
> This recurses until hitting the guard page, then repeats the same on the
> #DF stack.Â  And because stacks work nicely under FRED, you eventually
> hit #DF's guard page.
> 
> Strictly speaking it's only read_gs_shadow() which we need to change to
> make exception handling work, but I fixed both at the same time.
> 
> That said, I have actually cleaned this codepath up with the MSR work
> because the code gen in read_registers() is terrible.Â  Due to
> no-strict-aliasing, every store into state-> forces a recalculation of
> get_cpu_info(), meaning that read_cr4() cannot be hoisted, and there's a
> branch in every helper.
> 
> I'm still not sure how best to fit it into this series.

Could these two hunks move to another prereq patch, then coming with its
own description?

>>> --- a/xen/arch/x86/traps.c
>>> +++ b/xen/arch/x86/traps.c
>>> @@ -1013,6 +1013,32 @@ void show_execution_state_nmi(const cpumask_t *mask, bool show_all)
>>>          printk("Non-responding CPUs: {%*pbl}\n", CPUMASK_PR(&show_state_mask));
>>>  }
>>>  
>>> +static const char *x86_et_name(unsigned int type)
>>> +{
>>> +    static const char *const names[] = {
>>> +        [X86_ET_EXT_INTR]    = "EXT_INTR",
>>> +        [X86_ET_NMI]         = "NMI",
>>> +        [X86_ET_HW_EXC]      = "HW_EXC",
>>> +        [X86_ET_SW_INT]      = "SW_INT",
>>> +        [X86_ET_PRIV_SW_EXC] = "PRIV_SW_EXEC",
>>> +        [X86_ET_SW_EXC]      = "SW_EXEC",
>>> +        [X86_ET_OTHER]       = "OTHER",
>>> +    };
>>> +
>>> +    return (type < ARRAY_SIZE(names) && names[type]) ? names[type] : "???";
>>> +}
>>> +
>>> +static const char *x86_et_other_name(unsigned int vec)
>> This isn't really a vector, is it?
> 
> Well - you are decoding the field name regs->fred_ss.vector.

Hmm, yes, the field is re-used, but I'm in trouble viewing these as vectors.
Anyway - I would prefer a rename, but I won't insist.

>>> --- a/xen/arch/x86/x86_64/Makefile
>>> +++ b/xen/arch/x86/x86_64/Makefile
>>> @@ -1,6 +1,7 @@
>>>  obj-$(CONFIG_PV32) += compat/
>>>  
>>>  obj-bin-y += entry.o
>>> +obj-bin-y += entry-fred.o
>> For the ordering here, ...
>>
>>> --- /dev/null
>>> +++ b/xen/arch/x86/x86_64/entry-fred.S
>>> @@ -0,0 +1,35 @@
>>> +/* SPDX-License-Identifier: GPL-2.0-or-later */
>>> +
>>> +        .file "x86_64/entry-fred.S"
>>> +
>>> +#include <asm/asm_defns.h>
>>> +#include <asm/page.h>
>>> +
>>> +        .section .text.entry, "ax", @progbits
>>> +
>>> +        /* The Ring3 entry point is required to be 4k aligned. */
>>> +
>>> +FUNC(entry_FRED_R3, 4096)
>> ... doesn't this 4k-alignment requirement suggest we want to put
>> entry-fred.o first?
> 
> Perhaps, but that is quite subtle.Â  I did also consider a
> .text.entry.page_aligned section, but .text.entry only matters for XPTI
> which (as agreed), I'm not intending to implement in FRED mode unless it
> proves to be necessary.
> 
> Also IIRC there's still a symbol bug where _sentrytext takes priority
> over entry_FRED_R3, so the backtrace is effectively wrong.
> 
> (These are all bad excuses, but some parts of this series are rather old.)

Are you sure this is still the case with entry_FRED_R<n> properly typed as
functions (while _stextentry has no type)? When choosing which symbol to
display, objdump prefers typed over type-less symbols:

  /* Sort function and object symbols before global symbols before
     local symbols before section symbols before debugging symbols.  */

>>  Also, might it be more natural to use PAGE_SIZE
>> here?
> 
> I did debate that, but the spec uses 0xfff, not pages, even if the
> pipline surely does have an optimisation for chopping 12 metadata bits
> off the bottom of a pointer.

Plus pretty certainly a page boundary is meant here, no matter how things
are worded.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 09:24:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 09:24:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083121.1442768 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umqfZ-0002EO-Jq; Fri, 15 Aug 2025 09:24:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083121.1442768; Fri, 15 Aug 2025 09:24: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 1umqfZ-0002EH-FH; Fri, 15 Aug 2025 09:24:17 +0000
Received: by outflank-mailman (input) for mailman id 1083121;
 Fri, 15 Aug 2025 09:24:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5DW6=23=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umqfX-0002E7-Ta
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 09:24:15 +0000
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com
 [2a00:1450:4864:20::52a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9a4bb857-79b9-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 11:24:11 +0200 (CEST)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-61868d83059so4838155a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 02:24: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
 a640c23a62f3a-afcdd016c61sm98269166b.96.2025.08.15.02.24.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Aug 2025 02: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>
X-Inumbo-ID: 9a4bb857-79b9-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755249851; x=1755854651; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=auio8x0l2qflv9y4/XQOWSDdEvCz7ayC7OM05wHgoTY=;
        b=MNDJojiS2u07CiHpJsE0sB4R4fSuZ+YYiMPzIuI0znxZDGj8phWNGcc91B9/EegEvs
         diTsLoRrYgtdR42SkEiL6IG+vw+oiJRn52JNTib86aCsqoSUXnYp1mGdajgxMCfleLz1
         Wy6XM6rZ5/xvWNk62x9fjzou8Kw0+RV3JZ7GWeE+w399qMe7N3MeolF5aq488nf3QOLB
         PPg7h0HwArQTS78iYf8HK+HL7Lg+P2X5cY7OPE9yjOzxMSij595l2uELPXQTvOWs9DyC
         utt8YXHYGzr7FC8ZEWghKA499F+2lSksXwQLtt1KXhJxYocikLkBUloeid2sc+kvoA7C
         C1Hw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755249851; x=1755854651;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=auio8x0l2qflv9y4/XQOWSDdEvCz7ayC7OM05wHgoTY=;
        b=CdhFdZl9zeBklv3+QRaCH+rz0p3Vvpu5JbVnPZMb2A0ipmMdiCosS/XbtV0i2ee28z
         oekPoHKP3otINkFGG7E414QlKejhPCvC3rqJOxiWgQYakw/Dzar74Na3mG0Dwx8z3nLB
         pSaBZaPN/GQptfiAKfWBbkU4FtLHY1f5dCVgu7HWFc0uL/NfSEKfBVAqgmu4WLexZ2rd
         4su7fBGkNkhY3eSWKLdoIaBAeXTjOiJypopl5hdKo2t0EjYOgxVQFENZpGcOs71tYtxv
         70VvY/oc6sIgzpQ9DOysQDT/8hHW4anYFrlbSWvGhWg2zKjkuev17hJTFprjF4tAX0mc
         uJiQ==
X-Forwarded-Encrypted: i=1; AJvYcCV+TtoqtaCyNBFrVPraBa8HruYY+NC5QOhwMYsgizsKgkjyAMl6Mk5FWAFNLtLLAWMkH4cCFCTKU6g=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzUokwbVX8XRBgXSj6ZlwSnAfK2kdfriWubqcqcWwteUAQtl2Rh
	L0m/uqlCwTT9P2mSb6BYXFVYXrQxx5jE4dHufq5A6UbwBh6yQOz9/TQeu1oCVc4bPA==
X-Gm-Gg: ASbGncsKZygfW6YED89zAreE5ah+io+s+DUF+wk73bp7g21WS3xbkIe5cFoMaoVdlEA
	bDcWFoDwWgkJpQLvt7L5JWY9S1RMldDOqtOTPNOP3+NlTxUhZGooClsQxJiRYUMFaLz1jWx9aHu
	5Yj/SoNi7nsfjwl9ykpITqzpIRmaFQvz662XhahpkvPPXXbr/7YYXxw37twBX2KEMeMEIeaaw1y
	p1RbZJGaCwlZ9r6mC1GUmz3rmo3Rkd2o72avutYGNYkFMTekboEsnTLscB147VFXuZvoLf6AS82
	C6VKMBmdAWOoJkg+Z5udGgNMu45zO09UESjyNOoCNvkksZt+udp+oV08w2Iijbr74TcT1ODI9Su
	gu0an+MEZMX5Tg1LRoUS9BPLcTiPUO0ertvB2BHtldswjlBhWJ97uyOQZJuitWmfXjkOqQg31+I
	ht8T5JluQ=
X-Google-Smtp-Source: AGHT+IEvKQ/5Szj400mffy58CMu459NDjMQ1FuawO4FDKvL5tKGCdGTbsLDHGjx2mEbvrurPqAv85w==
X-Received: by 2002:a17:906:7316:b0:afc:b3c2:82eb with SMTP id a640c23a62f3a-afcbd67aec3mr607189866b.13.1755249850856;
        Fri, 15 Aug 2025 02:24:10 -0700 (PDT)
Message-ID: <efb23ae1-564b-4336-bba9-7147dc5ed9f0@suse.com>
Date: Fri, 15 Aug 2025 11:24:09 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1.1 08/22] x86/traps: Introduce percpu_early_traps_init()
 and set up exception handling earlier
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-9-andrew.cooper3@citrix.com>
 <20250814180748.2532533-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: <20250814180748.2532533-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.08.2025 20:07, Andrew Cooper wrote:
> As things stand, we set up AP/S3 exception handling marginally after the
> fragile activity of setting up shadow stacks.  Shadow stack setup is going to
> get more complicated under FRED.
> 
> Introduce percpu_early_traps_init() and call it ahead of setting up shadow
> stacks.  To start with, call load_system_tables() which is sufficient to set
> up full exception handling.
> 
> In order to handle exceptions, current and the speculation controls needs to
> work.  cpu_smpboot_alloc() already constructs some of the AP's top-of-stack
> block, so have it set up a little more.  Zero the whole structure to subsume
> other misc setup.
> 
> This gets us complete exception coverage of setting up shadow stacks, rather
> than dying with a triple fault.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 09:36:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 09:36:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083133.1442777 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umqr9-0004GV-K0; Fri, 15 Aug 2025 09:36:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083133.1442777; Fri, 15 Aug 2025 09:36: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 1umqr9-0004GO-GB; Fri, 15 Aug 2025 09:36:15 +0000
Received: by outflank-mailman (input) for mailman id 1083133;
 Fri, 15 Aug 2025 09:36:13 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5DW6=23=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umqr7-0004Ek-FV
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 09:36:13 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 47687d3a-79bb-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 11:36:11 +0200 (CEST)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-6188b5b113eso2556506a12.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 02:36: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
 4fb4d7f45d1cf-618af9e0156sm1129573a12.25.2025.08.15.02.36.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Aug 2025 02:36: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>
X-Inumbo-ID: 47687d3a-79bb-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755250571; x=1755855371; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=6612q3TaD0wbHG2zsWzab6k3N6lA7slpYvrXGGQ8J0E=;
        b=PPK0mQnQlO8ilk/Sf5J022pfVVnStKnPTUkH3+y5yvP6TqfXn9WwvJGFePZieDQJbA
         EW9ZbKnvYseHUK7zmTAtL4Lv+JPQxAi07Jzac6GF6DaBz3DWzBMxKK/eVTBNx9L+PMQl
         0l/Xl0KAEoO+pcZ9qebPU8OxEtyp8/i1jnknUWw90SNEKr+9a+shS3+7mIbzVPlNi8Wv
         v1d7y5gkOt58fNBh6MrD3sjb/lC4h6W8q5HxlPmKmUC5Z0iWGYnL01IWnr1VDU5QJixD
         gtXaMJPxZmpQVydFNcOxezhVXTbnV68KSTfUw81TMLrzXuHsFIgjUShsGuD3RuFHl2cQ
         T1fQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755250571; x=1755855371;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6612q3TaD0wbHG2zsWzab6k3N6lA7slpYvrXGGQ8J0E=;
        b=qkT/4IjWWVQd8YCqIyvTaWMCUQek1Pd4DS18teDqlMsQG2VVBvlMJYHifMvBdf1HSi
         +7/26kkPG7pne6S7sgBAS151YxUTLO5lvGN1mIfgDGsFmFe5sqVHXRH8U8KQZWwtMCbX
         yA2aXNMeM7p4fv4ypLli6eSnebPMOhQDfQt8KYc6Jwf+gCaucJHy3UvTscy7jC4UGp86
         5e8AZ4wuS8slWVnyMXaM9suIaXkqtndTIweKqNshe6LXsGRHq9Cx5UqhrpqZd3k5Ep1t
         7cXYIBbRm4YwSdBxmdY4Df95Y4iBzCQeLgY7LbY3Fy6r5YeDRrASMOncttl1+cxKYax6
         wECg==
X-Gm-Message-State: AOJu0YwaInuYbRAKFZMi+zXG3ZGYjhLWTq60Q+ckTYA8K2HgAEFjNlcp
	5J6U9CcGUxHe7P/RLf4s5T1VgPzwb/D0ZsirOyOGgn+GPDgJ6rrQqK84S7pYIkGZww==
X-Gm-Gg: ASbGncscqW2swdNFvv9txy+XEccDEDE+I5R9zWb81ssxhRAYn3Tf2mmlPaPetPwKtLG
	baAnwXp+IcaMdP+7+Im6w68c4CF5XJU/kS1lb4rpGbCifp5mDVdc7eI1RudxaTwgZLFa37EMm5m
	i2uH6G+o0t6tuMXQUGMEPfzF5cV4NbLNST3IOL7gAGCycdQcabGUe8V2YOJ7rzNSiOiqVQv/7EV
	MHrUf9TKMOqvHdppMFBW7/eKt03lmwj25laAo2iGWFrcJIYq+eOwzwC1HVtH0/DCXpxCSboW0oq
	Y/HIR9Lm2l+xN0X4JhEAl7J8XQDKd+gke9HuRzcBWkC+o5Fv76yOknMLn+4Pu3jTYdNwydd+Shw
	2FFahhyXqOnxROkTQRhNt1/GY0sxGnCSpUE+Wk9YGjWrxFxm5gzL3TSvwnG8p9YrXTcnJYPmYt2
	muqtCLEDI=
X-Google-Smtp-Source: AGHT+IEexVo7lmeSUMu/qNm7ecSdcIK6lwWUcvHbdjxs7VTtlrHeZasiqCOxYn0Rg6+XYUN5MOzxYA==
X-Received: by 2002:a05:6402:3509:b0:618:8964:bdda with SMTP id 4fb4d7f45d1cf-618b065baf6mr971764a12.23.1755250570870;
        Fri, 15 Aug 2025 02:36:10 -0700 (PDT)
Message-ID: <caf19e2b-046e-495f-b425-9cb3a0053006@suse.com>
Date: Fri, 15 Aug 2025 11:36:09 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen: Use auto as per C23
To: Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Roberto Bagnara <roberto.bagnara@bugseng.com>,
 "consulting @ bugseng . com" <consulting@bugseng.com>
References: <20250814222524.2638883-1-andrew.cooper3@citrix.com>
 <3056ed85948288639110e3cdd6b28c6e@bugseng.com>
 <f3ff5b2d-8077-4591-bf1f-bd658d705242@citrix.com>
 <7fc93aeef27153f1d6caa786bd44420f@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <7fc93aeef27153f1d6caa786bd44420f@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15.08.2025 10:33, Nicola Vetrini wrote:
> On 2025-08-15 10:17, Andrew Cooper wrote:
>> On 15/08/2025 8:20 am, Nicola Vetrini wrote:
>>> On 2025-08-15 00:25, Andrew Cooper wrote:
>>>> In macros it is common to declare local variables using typeof(param)
>>>> in order
>>>> to ensure that side effects are only evaluated once.Â  A consequence
>>>> of this is
>>>> double textural expansion of the parameter, which can get out of hand
>>>> very
>>>> quickly with nested macros.
>>>>
>>>> In C23, the auto keyword has been repurposed to perform type 
>>>> inference.
>>>>
>>>> A GCC extension, __auto_type, is now avaialble in the new toolchain
>>>> baseline
>>>> and avoids the double textural expansion.
>>>>
>>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>>
>>> Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
>>
>> Thankyou.
>>
>>>>
>>>> diff --git a/xen/include/xen/compiler.h b/xen/include/xen/compiler.h
>>>> index 88bf26bc5109..38ef5d82ad95 100644
>>>> --- a/xen/include/xen/compiler.h
>>>> +++ b/xen/include/xen/compiler.h
>>>> @@ -64,6 +64,20 @@
>>>> Â # define asm_inline asm
>>>> Â #endif
>>>>
>>>> +/*
>>>> + * In C23, the auto keyword has been repurposed to perform type
>>>> inference.
>>>> + *
>>>> + * This behaviour is available via the __auto_type extension in
>>>> supported
>>>> + * toolchains.
>>>> + *
>>>> + *
>>>> https://www.gnu.org/software/c-intro-and-ref/manual/html_node/Auto-Type.html
>>>> + * https://clang.llvm.org/docs/LanguageExtensions.html#auto-type
>>>> + */
>>>> +#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 202311L
>>>> +/* SAF-3-safe MISRA C Rule 20.4: Giving the keyword it's C23
>>>> meaning. */
>>>> +#define auto __auto_type
>>>> +#endif
>>>> +
>>>
>>> A more detailed explanation should live in deviations.rst under this
>>> bullet point
>>>
>>> Â Â  * - R20.4
>>> Â Â Â Â  - The override of the keyword \"inline\" in xen/compiler.h is
>>> present so
>>> Â Â Â Â Â Â  that section contents checks pass when the compiler chooses not 
>>> to
>>> Â Â Â Â Â Â  inline a particular function.
>>> Â Â Â Â  - Comment-based deviation.
>>>
>>> as described in the SAF entry:
>>>
>>> Â Â Â Â Â Â Â  {
>>> Â Â Â Â Â Â Â Â Â Â Â  "id": "SAF-3-safe",
>>> Â Â Â Â Â Â Â Â Â Â Â  "analyser": {
>>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "eclair": "MC3A2.R20.4"
>>> Â Â Â Â Â Â Â Â Â Â Â  },
>>> Â Â Â Â Â Â Â Â Â Â Â  "name": "MC3A2.R20.4: allow the definition of a macro with
>>> the same name as a keyword in some special cases",
>>> Â Â Â Â Â Â Â Â Â Â Â  "text": "The definition of a macro with the same name as a
>>> keyword can be useful in certain configurations to improve the
>>> guarantees that can be provided by Xen. See docs/misra/deviations.rst
>>> for a precise rationale for all such cases."
>>> Â Â Â Â Â Â Â  },
>>
>> Ah right.Â  What about this:
>>
>> "Xen does not use the \"auto\" keyword as a storage qualifier.Â  The
>> override of the keyword \"auto\" in xen/compiler.h is to give it it's
>> C23 behaviour of type inference."
>>
>> ?
> 
> Seems good to me. Maybe this should be spelled out in ./CODING_STYLE as 
> well, so that newcomers don't trip over this?

I'm not sure newcomers would look there, but in the absence of any better
place that's perhaps indeed where to mention this.

I am, however, still not quite sure if we're doing ourselves a favor with
the re-purposing of auto (while not using C23 in general). It'll certainly
hit me as unexpected, for some time, to see uses of the keyword. It simply
has been for too long that it had its earlier meaning (of very limited use).

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 09:39:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 09:39:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083142.1442788 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umquX-0004nZ-1k; Fri, 15 Aug 2025 09:39:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083142.1442788; Fri, 15 Aug 2025 09:39:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umquW-0004nS-Ti; Fri, 15 Aug 2025 09:39:44 +0000
Received: by outflank-mailman (input) for mailman id 1083142;
 Fri, 15 Aug 2025 09:39:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=VEq/=23=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1umquV-0004nL-76
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 09:39:43 +0000
Received: from mail-ej1-x631.google.com (mail-ej1-x631.google.com
 [2a00:1450:4864:20::631])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c2a7ab9f-79bb-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 11:39:38 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-afcb7abfc5cso315234766b.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 02:39:38 -0700 (PDT)
Received: from ?IPV6:2003:e5:872d:6400:8c05:37ee:9cf6:6840?
 (p200300e5872d64008c0537ee9cf66840.dip0.t-ipconnect.de.
 [2003:e5:872d:6400:8c05:37ee:9cf6:6840])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afcdcfcacb7sm102830666b.75.2025.08.15.02.39.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Aug 2025 02:39:37 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c2a7ab9f-79bb-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755250777; x=1755855577; 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=3g+PQ3xjx9P4EFaRQ0wwl8aRz2l/n5CpGraKYVMVvtg=;
        b=ClKkt1cMgc2WriBT88cIluw36INPrZqQtCto0it6mZ1INm+FzAOs6QKnbh0C9k4JXf
         kq5PqQrlkATeqsuvuehoood4ud/DJqfHXEnq3Vn1GaCSSu5ee8MrLRZbEQTJocehJ3Ep
         p0cbzIplpXMBUOHhVev/HNbe2G3JP/iE3UnZ7KLrfObcIVEgEM+Y4gxQgn7E0qzwzw2h
         u0uqXudJb7+yvHIUljPUNXwH4cUi6KZ8GvGDWKhhpvg3YXRhkNzxsbNID08MT1WOYiQu
         +4uhNHpQINnyPS4kYhqdMv43/mhV+/BSbqX3za3N82dVtwTl3PTpf7eWCwpfrtL7SqYB
         vDzA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755250777; x=1755855577;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=3g+PQ3xjx9P4EFaRQ0wwl8aRz2l/n5CpGraKYVMVvtg=;
        b=bPs4IGulctYGNo+8x5eiI5dlYpLLJKtHCYTHmJEUwY2yAssLhxJNCZUE3KNdl6XOKb
         i9dAd5UKD19cXhrAB4osKLazuy3Eky7xjPpsBEckS9M8vUOj6RzKDkZAwQ2oma//pMbq
         zpm7+COuv9Y110dHJRm/G74YGm8gqxAMsI6lar6d6bGeSj8dL1mA89ttobV0ZiT/Jmpp
         QQQhgkjyx8FNrvfvemYEIdfrAxf/Z8nD0ppgEct5IaLTYpFGeFkaS9LthWxx+W9zIrQK
         PVs+A2IN2bCwfeYj+Y8OM2GbEqkxqh1gubfdQHZSJkp7a8UQJHQ//+IA08uRry12unpp
         VSPw==
X-Forwarded-Encrypted: i=1; AJvYcCUKHDYaTDADrZq6kA0zBKq4R/5NOmyGpHrysjHEdRuy/h0LHfhFelcJE4zFfJ/Qu1ca0H3ckzis/H0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzWS/+f4LV8DEh6K0s6LPiyilITL4spC3vlpAVIstBeBIUJnAi/
	D9VOIpiMwmYjgzvB+gW2CxLMwZlgn0HcJuBoCh4YcVcbSMlHQFr0ayVPl3czBlvJVKw=
X-Gm-Gg: ASbGncvbSkMsEqhHO21o2zEeCZKyk46S6OVmNqPVzp8NpqUSK2kmjPi/C3hi1ygUY9Z
	upiw6182HmHs/CewocFzY/hLO3ymUyHXREA1zbMmpp7I1G/ke/9/Dp+rMLRnNtl+jTA/AOXArfi
	FYhHfcD0pUuYTkB4LNDB0EWfX71DirHJby7wDEv2SqEaNSYMnCFfVBWj3pXoUMtztsmCy9Lal2F
	aOWQ+PCac2D7G4KIDoFlsmcsrciZcTEWV7S3Vl8DO5r8+z6Wg/M3YTPY9BDD/EVrSghp26T7w2G
	e8aY6sqAwzZgXKeskV24WoWawFI2qd3tokeNYyhYvBCfygHHZmPmHhOLUaRDqTJLkcpm7+zpnVS
	KRJd5GdVNQAwHlw1baI7vAJ9n7GL/8f2dfTuYP/rp8/J11FVYLdaOC6vsYRst9+IBUP/zTnpQ/M
	G0ki7Qc6NCASlgBBUYiqI30KakiUsZMQhiOnxCwXyfqJLLn2Y=
X-Google-Smtp-Source: AGHT+IEHXHXioE2m6N5dfhq3XxxDP5XEOG6qUvoMnlnSz4ZTvO2zDp7w6xyK4QzGWlTbfjW24XkKOA==
X-Received: by 2002:a17:907:70c:b0:ad5:7bc4:84b5 with SMTP id a640c23a62f3a-afcdc4215c0mr106520366b.57.1755250777520;
        Fri, 15 Aug 2025 02:39:37 -0700 (PDT)
Message-ID: <1e8347ef-3d77-4317-b8af-4f12ad4aa659@suse.com>
Date: Fri, 15 Aug 2025 11:39:36 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen: rework error handling in vcpu_create
To: Jan Beulich <jbeulich@suse.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>,
 xen-devel@lists.xenproject.org
References: <20250801202418.38977-1-stewart.hildebrand@amd.com>
 <52ea4f10-26b4-447b-8753-0e4287a03408@suse.com>
 <e7344494-8ac1-42a6-94a8-52a46f7f691a@amd.com>
 <795cf4c1-07be-47a5-b807-074b165650c4@suse.com>
 <07c5f672-034a-46f0-a563-081a0d4ad0d5@amd.com>
 <cefc96a0-b095-4bc8-baa6-4d929ffaa1a6@suse.com>
 <a3e9afa2-d60e-4779-8eee-54268d7d833f@amd.com>
 <f35586f8-c80f-4023-a9c0-5107e53c4063@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: <f35586f8-c80f-4023-a9c0-5107e53c4063@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------OmdcWlgnaXUz88V1U4SxfOdp"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------OmdcWlgnaXUz88V1U4SxfOdp
Content-Type: multipart/mixed; boundary="------------TTYF5c4pBk6NY170xxnySqxT";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>,
 xen-devel@lists.xenproject.org
Message-ID: <1e8347ef-3d77-4317-b8af-4f12ad4aa659@suse.com>
Subject: Re: [PATCH v2] xen: rework error handling in vcpu_create
References: <20250801202418.38977-1-stewart.hildebrand@amd.com>
 <52ea4f10-26b4-447b-8753-0e4287a03408@suse.com>
 <e7344494-8ac1-42a6-94a8-52a46f7f691a@amd.com>
 <795cf4c1-07be-47a5-b807-074b165650c4@suse.com>
 <07c5f672-034a-46f0-a563-081a0d4ad0d5@amd.com>
 <cefc96a0-b095-4bc8-baa6-4d929ffaa1a6@suse.com>
 <a3e9afa2-d60e-4779-8eee-54268d7d833f@amd.com>
 <f35586f8-c80f-4023-a9c0-5107e53c4063@suse.com>
In-Reply-To: <f35586f8-c80f-4023-a9c0-5107e53c4063@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=

--------------TTYF5c4pBk6NY170xxnySqxT
Content-Type: multipart/mixed; boundary="------------yQGfq7og37jqka0bMz8ZZqeA"

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

T24gMDUuMDguMjUgMTE6NDksIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAwNS4wOC4yMDI1
IDExOjMzLCBTdGV3YXJ0IEhpbGRlYnJhbmQgd3JvdGU6DQo+PiBPbiA4LzUvMjUgMDU6MTcs
IEphbiBCZXVsaWNoIHdyb3RlOg0KPj4+IE9uIDA1LjA4LjIwMjUgMTE6MDYsIFN0ZXdhcnQg
SGlsZGVicmFuZCB3cm90ZToNCj4+Pj4gT24gOC81LzI1IDAzOjQ0LCBKYW4gQmV1bGljaCB3
cm90ZToNCj4+Pj4+IE9uIDA0LjA4LjIwMjUgMTg6NTcsIFN0ZXdhcnQgSGlsZGVicmFuZCB3
cm90ZToNCj4+Pj4+PiBPbiA4LzQvMjUgMDM6NTcsIEphbiBCZXVsaWNoIHdyb3RlOg0KPj4+
Pj4+PiBPbiAwMS4wOC4yMDI1IDIyOjI0LCBTdGV3YXJ0IEhpbGRlYnJhbmQgd3JvdGU6DQo+
Pj4+Pj4+PiBAQCAtODM5LDYgKzgzOSw5IEBAIHZvaWQgc2NoZWRfZGVzdHJveV92Y3B1KHN0
cnVjdCB2Y3B1ICp2KQ0KPj4+Pj4+Pj4gICB7DQo+Pj4+Pj4+PiAgICAgICBzdHJ1Y3Qgc2No
ZWRfdW5pdCAqdW5pdCA9IHYtPnNjaGVkX3VuaXQ7DQo+Pj4+Pj4+PiAgIA0KPj4+Pj4+Pj4g
KyAgICBpZiAoICF1bml0ICkNCj4+Pj4+Pj4+ICsgICAgICAgIHJldHVybjsNCj4+Pj4+Pj4+
ICsNCj4+Pj4+Pj4+ICAgICAgIGtpbGxfdGltZXIoJnYtPnBlcmlvZGljX3RpbWVyKTsNCj4+
Pj4+Pj4+ICAgICAgIGtpbGxfdGltZXIoJnYtPnNpbmdsZXNob3RfdGltZXIpOw0KPj4+Pj4+
Pj4gICAgICAga2lsbF90aW1lcigmdi0+cG9sbF90aW1lcik7DQo+Pj4+Pj4+DQo+Pj4+Pj4+
IFdoYXQgaWYgaXQncyB0aGUgMm5kIGVycm9yIHBhdGggaW4gc2NoZWRfaW5pdF92Y3B1KCkg
dGhhdCBpcyB0YWtlbj8NCj4+Pj4NCj4+Pj4gXl4gVGhpcyBeXiBpcyB3aGF0IEknbSBjb25m
dXNlZCBhYm91dA0KPj4+DQo+Pj4gSWYgc2NoZWRfaW5pdF92Y3B1KCkgdG9vayB0aGUgaW5k
aWNhdGVkIHBhdGgsDQo+Pg0KPj4gV2hhdCBwYXRoPyBJbiB0aGUgb25lIEknbSBsb29raW5n
IGF0LCBzY2hlZF9mcmVlX3VuaXQoKSBnZXRzIGNhbGxlZCwNCj4gDQo+IE9oLCBJIHNlZSAt
IHRoYXQgd2Fzbid0IHF1aXRlIG9idmlvdXMsIHRob3VnaC4gWWV0IG9mIGNvdXJzZSAuLi4N
Cj4gDQo+PiBzZXR0aW5nIHYtPnNjaGVkX3VuaXQgPSBOVUxMLCBhbmQgaW4gdGhhdCBjYXNl
IC4uLg0KPj4NCj4+PiB0aGUgaWYoKSB5b3UgYWRkIGhlcmUgd29uJ3QNCj4+PiBoZWxwLCBh
bmQgLi4uDQo+Pg0KPj4gLi4uIHRoZSBjb25kaXRpb24gaXMgdHJ1ZSwgYW5kIC4uLg0KPj4N
Cj4+Pj4+Pj4gVGhlbiB3ZQ0KPj4+Pj4+PiBtaWdodCB0YWtlIHRoaXMgcGF0aCAoanVzdCBv
dXQgb2YgY29udGV4dCBoZXJlKQ0KPj4+Pj4+Pg0KPj4+Pj4+PiAgICAgIGlmICggdW5pdC0+
dmNwdV9saXN0ID09IHYgKQ0KPj4+Pj4+PiAgICAgIHsNCj4+Pj4+Pj4gICAgICAgICAgcmN1
X3JlYWRfbG9jaygmc2NoZWRfcmVzX3JjdWxvY2spOw0KPj4+Pj4+Pg0KPj4+Pj4+PiAgICAg
ICAgICBzY2hlZF9yZW1vdmVfdW5pdCh2Y3B1X3NjaGVkdWxlcih2KSwgdW5pdCk7DQo+Pj4+
Pj4+ICAgICAgICAgIHNjaGVkX2ZyZWVfdWRhdGEodmNwdV9zY2hlZHVsZXIodiksIHVuaXQt
PnByaXYpOw0KPj4+Pj4+Pg0KPj4+Pj4+PiBhbmQgYXQgbGVhc3QgQ3JlZGl0MSdzIGhvb2sg
ZG9lc24ndCBsb29rIHRvIGJlIHNhZmUgYWdhaW5zdCBiZWluZyBwYXNzZWQgTlVMTC4NCj4+
Pj4+Pj4gKE5vdCB0byBzcGVhayBvZiB0aGUgcmlzayBvZiB1bml0LT5wcml2IGJlaW5nIHVz
ZWQgZWxzZXdoZXJlIHdoaWxlIGNsZWFuaW5nDQo+Pj4+Pj4+IHVwLikNCj4gDQo+IC4uLiB0
aGlzIGxhdHRlciBwYXJ0IG9mIG15IHJlbWFyayBzdGlsbCBhcHBsaWVzLiBJT1cgSSBjb250
aW51ZSB0byB0aGluaw0KPiB0aGF0IGRpc2N1c3NpbmcgdGhlIGNvcnJlY3RuZXNzIG9mIHRo
aXMgY2hhbmdlIG5lZWRzIHRvIGJlIGV4dGVuZGVkLg0KPiBVbmxlc3Mgb2YgY291cnNlIGEg
c2NoZWR1bGVyIG1haW50YWluZXIgd2FudHMgdG8gYWNrIGl0IGFzIGlzLg0KDQpJdCBkb2Vz
bid0IGFwcGx5Lg0KDQp2Y3B1cyBvZiBub3JtYWwgZG9tYWlucyAoaS5lLiBub3QgdGhlIGlk
bGUgZG9tYWluKSBhcmUgY3JlYXRlZCBpbiBzZXF1ZW50aWFsDQpvcmRlci4gSWYgdGhlIDJu
ZCBlcnJvciBwYXRoIG9mIHNjaGVkX2luaXRfdmNwdSgpIGlzIHRha2VuLCB0aGlzIG1lYW5z
IHdlDQphcmUgaGFuZGxpbmcgdGhlIGZpcnN0IHZjcHUgb2YgdGhlIHVuaXQuIEluIHRoaXMg
Y2FzZSBzY2hlZF9mcmVlX3VuaXQoKSB3aWxsDQpmcmVlIHRoZSB1bml0IGl0c2VsZiBjb21w
bGV0ZWx5LCBzbyB0aGUgcGF0aCB5b3UgYXJlIHJlZmVycmluZyB0byBjYW4ndCBiZQ0KcmVh
Y2hlZC4NCg0KSSB0aGluayBvbmx5IEFuZHJldydzIGNvbW1lbnRzIG5lZWQgdG8gYmUgd29y
a2VkIG9uLg0KDQoNCkp1ZXJnZW4NCg==
--------------yQGfq7og37jqka0bMz8ZZqeA
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-----

--------------yQGfq7og37jqka0bMz8ZZqeA--

--------------TTYF5c4pBk6NY170xxnySqxT--

--------------OmdcWlgnaXUz88V1U4SxfOdp
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/Ey8FAmifAFgFAwAAAAAACgkQsN6d1ii/Ey+g
AAf9GipFpYDBJpxnoPq+M0VQjsYdNIZjlkQorH/VcFmG9HUHMz6oJ9EoWU08hCEnnfOnvsnee5bS
Aiv1Kp6TadUANISJSVPAjs6PSfVm+y8OyHOBoq8YbhDhJ6ayeul23UvjwqtuBXl9E8eBNAhA5ik5
wX5bSuXtiySPq7PPp6mFaO2McJAqUSsxbqIIFCIg72EowLj9F1sLGaEJHgnJTp82iHCYQQ5Rucy1
o3kQJGBNDedeyf/Db9WUOyR4AqCYeLtWFNNgEEFWs6c54guSGdPThVFKwjw1FWc/kWGhsAYwiasA
3z9TSV9fGz4WwcOenHq7BgiwNsDq/3+M4Diqd0rGhg==
=6ud4
-----END PGP SIGNATURE-----

--------------OmdcWlgnaXUz88V1U4SxfOdp--


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 09:51:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 09:51:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083156.1442797 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umr63-0007s2-4f; Fri, 15 Aug 2025 09:51:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083156.1442797; Fri, 15 Aug 2025 09:51: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 1umr63-0007rv-1D; Fri, 15 Aug 2025 09:51:39 +0000
Received: by outflank-mailman (input) for mailman id 1083156;
 Fri, 15 Aug 2025 09:51:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oFbR=23=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1umr62-0007rp-8l
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 09:51:38 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 668989a6-79bd-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 11:51:22 +0200 (CEST)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-45a23def5f2so710155e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 02:51:22 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45a22210a65sm12785405e9.6.2025.08.15.02.51.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Aug 2025 02:51:21 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 668989a6-79bd-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755251482; x=1755856282; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=luBj8STpAE9Qhm525hIQuJU8L2VHJEsa72t3SloV9bo=;
        b=uAI28/U41bpUoIctS8nkls4rnXS4KhJv8TXPU52zPN12mxYTEACiksXoPPIAiwpLLa
         yQH3sEGNYqR0bChzg9j8g2g3YNZRyEA156qS8UT0X9A8VIvXs2xc2RnmsrPOSqqgqE7B
         1Q+27/t5EroFwWhjl9Kcx+RFVQl+9Gi7CPwpA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755251482; x=1755856282;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=luBj8STpAE9Qhm525hIQuJU8L2VHJEsa72t3SloV9bo=;
        b=kQ8EQckBOypnjWNVdoXdnW1S77+K07gf2DgTUG7Tz6Brll0PyugKTYdMcy8ize1EzF
         F3E+VHaXgIWTKEtIoH1WzUQRlchMClTzqDAtazKzJplPCDDj0XXHpHbHJHAgJe96Rddc
         IJ1ka+8k504AdyYscXNvZ3CWmroSJv8wZ9shZqpVqfTAAjjfXsfRCLwGAPhrcEbzwXh5
         j4oJHjLTaQbabRsmNBqB4RsCoP19vxNACMmyWzQDL3kDq+/5Oq6uWwpcy1mqFvC8/BMN
         Cy+H0A8ZB1pY+aiGrce8l9jZGDzsJnZ27nGDwUBaBPYBGxuQtg/dRthpPXioQDP7cApW
         yQTQ==
X-Gm-Message-State: AOJu0YxR49g6on54zEQc/vfianIuG9Jl/6LhKvBtLsDM+PpRnhLqJzDz
	VIb3E41QD2tOlOJbT9E81M8uA74kngk+YwDLr/VlfvB5Om3sgyhSfSEZX8dPyxo8Zms=
X-Gm-Gg: ASbGncsfrWOaCPsx/e6xRTP1qYR8N/mXIGuHy/sptkwhkG0rYwVd9eagJdt+86fEU21
	XabZF9jCn/nGiofSL1dNH7/1i+h67W+2Lw9DOCo7tB/wN7n2/2JALBygTAIAJgSyLiXyiwYEooe
	Mll/hxNltwaCje06fEdI40Vcbb66tO/5kSXP9h2lff/MGi1QvGv62oGFiguAs8NXExbw9uWu5rO
	ZsWwC9md/1rJCjyPMtfWMRe5TeiDQJm2pnWDP7hWcOeIIES5tSLh0f7pP8AX/jS8sZ5TeSCYYXG
	57X65n3Td66sPOg0dim0C4ZivtYdPwsExYsC59nyGFmQhDlwqKh1KtfqEXNThSdoEFCm6rC97P4
	5NEjhUIee8xkecnexYJnysJ+GBaW84XaeiFmf5//2QHnUKn3QZZcb6cjutsC1bmdR5beO
X-Google-Smtp-Source: AGHT+IGxiad1ickG/IrWnSGnq3srRYdqznO7GnqPXuRVzmgIUUcocnn5FQpKmyfXGwaTzClVkHFLHA==
X-Received: by 2002:a05:600c:4e86:b0:459:d6a6:77c with SMTP id 5b1f17b1804b1-45a2186461emr11906805e9.33.1755251481868;
        Fri, 15 Aug 2025 02:51:21 -0700 (PDT)
Message-ID: <bd3f9c28-aaf4-479d-b56e-48838442f7a3@citrix.com>
Date: Fri, 15 Aug 2025 10:51:20 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen: Use auto as per C23
To: Jan Beulich <jbeulich@suse.com>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 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>,
 Roberto Bagnara <roberto.bagnara@bugseng.com>,
 "consulting @ bugseng . com" <consulting@bugseng.com>
References: <20250814222524.2638883-1-andrew.cooper3@citrix.com>
 <3056ed85948288639110e3cdd6b28c6e@bugseng.com>
 <f3ff5b2d-8077-4591-bf1f-bd658d705242@citrix.com>
 <7fc93aeef27153f1d6caa786bd44420f@bugseng.com>
 <caf19e2b-046e-495f-b425-9cb3a0053006@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: <caf19e2b-046e-495f-b425-9cb3a0053006@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15/08/2025 10:36 am, Jan Beulich wrote:
> On 15.08.2025 10:33, Nicola Vetrini wrote:
>> On 2025-08-15 10:17, Andrew Cooper wrote:
>>> On 15/08/2025 8:20 am, Nicola Vetrini wrote:
>>>> On 2025-08-15 00:25, Andrew Cooper wrote:
>>>>> In macros it is common to declare local variables using typeof(param)
>>>>> in order
>>>>> to ensure that side effects are only evaluated once.Â  A consequence
>>>>> of this is
>>>>> double textural expansion of the parameter, which can get out of hand
>>>>> very
>>>>> quickly with nested macros.
>>>>>
>>>>> In C23, the auto keyword has been repurposed to perform type 
>>>>> inference.
>>>>>
>>>>> A GCC extension, __auto_type, is now avaialble in the new toolchain
>>>>> baseline
>>>>> and avoids the double textural expansion.
>>>>>
>>>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>>> Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
>>> Thankyou.
>>>
>>>>> diff --git a/xen/include/xen/compiler.h b/xen/include/xen/compiler.h
>>>>> index 88bf26bc5109..38ef5d82ad95 100644
>>>>> --- a/xen/include/xen/compiler.h
>>>>> +++ b/xen/include/xen/compiler.h
>>>>> @@ -64,6 +64,20 @@
>>>>> Â # define asm_inline asm
>>>>> Â #endif
>>>>>
>>>>> +/*
>>>>> + * In C23, the auto keyword has been repurposed to perform type
>>>>> inference.
>>>>> + *
>>>>> + * This behaviour is available via the __auto_type extension in
>>>>> supported
>>>>> + * toolchains.
>>>>> + *
>>>>> + *
>>>>> https://www.gnu.org/software/c-intro-and-ref/manual/html_node/Auto-Type.html
>>>>> + * https://clang.llvm.org/docs/LanguageExtensions.html#auto-type
>>>>> + */
>>>>> +#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 202311L
>>>>> +/* SAF-3-safe MISRA C Rule 20.4: Giving the keyword it's C23
>>>>> meaning. */
>>>>> +#define auto __auto_type
>>>>> +#endif
>>>>> +
>>>> A more detailed explanation should live in deviations.rst under this
>>>> bullet point
>>>>
>>>> Â Â  * - R20.4
>>>> Â Â Â Â  - The override of the keyword \"inline\" in xen/compiler.h is
>>>> present so
>>>> Â Â Â Â Â Â  that section contents checks pass when the compiler chooses not 
>>>> to
>>>> Â Â Â Â Â Â  inline a particular function.
>>>> Â Â Â Â  - Comment-based deviation.
>>>>
>>>> as described in the SAF entry:
>>>>
>>>> Â Â Â Â Â Â Â  {
>>>> Â Â Â Â Â Â Â Â Â Â Â  "id": "SAF-3-safe",
>>>> Â Â Â Â Â Â Â Â Â Â Â  "analyser": {
>>>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "eclair": "MC3A2.R20.4"
>>>> Â Â Â Â Â Â Â Â Â Â Â  },
>>>> Â Â Â Â Â Â Â Â Â Â Â  "name": "MC3A2.R20.4: allow the definition of a macro with
>>>> the same name as a keyword in some special cases",
>>>> Â Â Â Â Â Â Â Â Â Â Â  "text": "The definition of a macro with the same name as a
>>>> keyword can be useful in certain configurations to improve the
>>>> guarantees that can be provided by Xen. See docs/misra/deviations.rst
>>>> for a precise rationale for all such cases."
>>>> Â Â Â Â Â Â Â  },
>>> Ah right.Â  What about this:
>>>
>>> "Xen does not use the \"auto\" keyword as a storage qualifier.Â  The
>>> override of the keyword \"auto\" in xen/compiler.h is to give it it's
>>> C23 behaviour of type inference."
>>>
>>> ?
>> Seems good to me. Maybe this should be spelled out in ./CODING_STYLE as 
>> well, so that newcomers don't trip over this?
> I'm not sure newcomers would look there, but in the absence of any better
> place that's perhaps indeed where to mention this.

How about this:

diff --git a/CODING_STYLE b/CODING_STYLE
index 7bf3848444ad..e33b9d1170cf 100644
--- a/CODING_STYLE
+++ b/CODING_STYLE
@@ -129,6 +129,10 @@ Fixed width types should only be used when a fixed width quantity is
Â meant (which for example may be a value read from or to be written to a
Â register).
Â 
+Macros which otherwise would use "typeof(arg) newarg =" to avoid double
+evaluation of side effects should use "auto newarg =" per it's C23 behaviour,
+to also avoid double textural expansion.
+
Â Especially with pointer types, whenever the pointed to object is not
Â (supposed to be) modified, qualify the pointed to type with "const".



>
> I am, however, still not quite sure if we're doing ourselves a favor with
> the re-purposing of auto (while not using C23 in general). It'll certainly
> hit me as unexpected, for some time, to see uses of the keyword. It simply
> has been for too long that it had its earlier meaning (of very limited use).

I suspect that people won't find this great reasoning, but here's how I
see it.

Linux already does this, so familiarity in wider circles is growing.Â 
Now C23 is available, people starting new projects will be using it,
which will normalise the construct further.

People are going to be forced to get used to it, one way or another.Â 
They can simply choose whether it's now, or later.

Within Xen, the scope is narrow.Â  I am specifically not advocating that
we get it used outside of macros.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 09:52:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 09:52:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083161.1442807 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umr6W-0008KT-C8; Fri, 15 Aug 2025 09:52:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083161.1442807; Fri, 15 Aug 2025 09:52: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 1umr6W-0008KM-8W; Fri, 15 Aug 2025 09:52:08 +0000
Received: by outflank-mailman (input) for mailman id 1083161;
 Fri, 15 Aug 2025 09:52:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=N6kI=23=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1umr6U-0007rp-Ic
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 09:52:06 +0000
Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com
 [2a00:1450:4864:20::62f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7f53f9bd-79bd-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 11:52:04 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-afcb7ae6ed0so230885766b.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 02:52:04 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afcdce53e04sm103919166b.14.2025.08.15.02.52.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Aug 2025 02: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>
X-Inumbo-ID: 7f53f9bd-79bd-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1755251523; x=1755856323; darn=lists.xenproject.org;
        h=in-reply-to:content-language:references:cc:to:subject:from
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qujfu2sdvE2/Ze1R09kpCTYkoKJ6ymyyxG7SkC2RS+U=;
        b=nUFy/HXtq+nKhCOdz5v4L18Dc8HcObmFmKmbbM1SJEBpdZ3zN+njBYgdZQRP56s/KN
         nhfZ9JCRjq6uIieLzqEJheZtl4y0o8haf2Z6z9wSzqDSH0oTDzq1WAHpSD88XoKa8PSu
         DGMGRAnxauuChiYKL8OSRNAhyhetOxuf16UDNs0plhQCMD0IZCb+QdYAzcWjP2kCZFtH
         mfWZo8dyUeLP8bKK5wxkHLaVt+fiAhfOb/yARVVHUb6PpLy2C/z6xCd8WOyqtjSqfGGi
         wzmmkiHdR6mSb4N87k6faQW7bw4zWHm5ntfEZdUYKdxNVO7iq1odD7wlCmmhzAMYx0uL
         ACzw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755251524; x=1755856324;
        h=in-reply-to:content-language:references:cc:to:subject:from
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=qujfu2sdvE2/Ze1R09kpCTYkoKJ6ymyyxG7SkC2RS+U=;
        b=RLaHoivXU1A54IQfCFiH72F64Y/ExTGJVmi0byhUJ2Vve+T6CG/5qZWyWQ5OM27CKV
         FXGNXfSnyEWBf9e4Ho8fQC3tzVQ0p0RZxtWkt885GuRtd0Y0hxDp6g+m1JtYgeri7Fxk
         Nld/ESvF9upoAgjnxgNaunDnCYwUtfizORD+XU9/CzUsOPSS31YAFik2LjNoRu9IFSF5
         OXX1VKyx7LcEGwqgPVa0hX+CHoTfP9TW/wQ9ez9e2+X2Go5tqU0ZoTRmJR0eXvhHZLja
         WksFDMeJ5Roj95noSZY/qp+k9/EVTrD26zcM6SL25/EcfpHn2bxKLmIuR+bZhDWBVxTq
         KuPA==
X-Forwarded-Encrypted: i=1; AJvYcCUTPXkBKk+ftzWxeCs/8v7fwFmirYMAP+yot5rHQ0/2DQeGVMcvDffnaBlkaVgYlmURkW1R8Fu4wdk=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx5H32UxhUOQPOlDDY3VeSkXJt61YOcCHz84iv0MPVjU1vgCRAK
	xEcIvwqc7QCHof3Hon7EbSmSWboxPTd9ok55j9jehwY3jWjn+yDA5rKb
X-Gm-Gg: ASbGncvIQBINas3L53BCbk3YPynARD2StT1mzNDpbSo+14zMwARAG/SfpL/D1oRc1nG
	uVSIQmkZdeX7C98WRzXarn3cLFjFMZvYSgtCZeWm/fcPGoUjcloum/aXvcKMJScS4tQXTL8AvTh
	hKAAoNFF6nEX4WFLtkJRyPUvwhx0Eu6ei1UtZnUwyBivWKL7TnF+sOo38hqAa2RAfs/k+ZbtWRy
	8vyW2lsmWbXoW6i/j9BI4xhLoMQhe1LW/bbK/Wt3itNx1zOvJ5qyDpKPHkUPNsRZC+zwH10HmlM
	CuX0XcEy0KHZ57fy/CVYpYmDLTxm8pc3/jxLikiX5QaiVHaZluyHHQc1RNJk4hzXkB+F7qx1wQJ
	anL+ItEzW97fzjbMkhBGLP/n2o4/j+08WR2WjZZiSkkeBYtMsj1ULXLU26+2F7Hi/ZgNDGRs=
X-Google-Smtp-Source: AGHT+IECjzF2wZAZN5+wr1ghQnQulolsCtLyU2RU76Bm2YD5ayh2albmtbJLsd/mYdYqHhEN1BJ40g==
X-Received: by 2002:a17:907:1b28:b0:af8:f9e8:6fae with SMTP id a640c23a62f3a-afcdc2bbd8amr149282866b.46.1755251523164;
        Fri, 15 Aug 2025 02:52:03 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------HROQljmCX0Yx6E9D50dJ1CoZ"
Message-ID: <62a3c3ef-1f19-4fac-b967-f7730e8f235f@gmail.com>
Date: Fri, 15 Aug 2025 11:52:01 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH v3 12/20] xen/riscv: implement p2m_set_range()
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <ea69584222a4c41eac276de1ec8eed25b13642d3.1753973161.git.oleksii.kurochko@gmail.com>
 <f217021e-1fef-4324-a56e-529fd29b4c69@suse.com>
Content-Language: en-US
In-Reply-To: <f217021e-1fef-4324-a56e-529fd29b4c69@suse.com>

This is a multi-part message in MIME format.
--------------HROQljmCX0Yx6E9D50dJ1CoZ
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 8/5/25 6:04 PM, Jan Beulich wrote:
> On 31.07.2025 17:58, Oleksii Kurochko wrote:
>> This patch introduces p2m_set_range() and its core helper p2m_set_entry() for
> Nit: This patch doesn't introduce p2m_set_range(); it merely fleshes it out.
>
>> --- a/xen/arch/riscv/include/asm/p2m.h
>> +++ b/xen/arch/riscv/include/asm/p2m.h
>> @@ -7,11 +7,13 @@
>>   #include <xen/rwlock.h>
>>   #include <xen/types.h>
>>   
>> +#include <asm/page.h>
>>   #include <asm/page-bits.h>
>>   
>>   extern unsigned int p2m_root_order;
>>   #define P2M_ROOT_ORDER  p2m_root_order
>>   #define P2M_ROOT_PAGES  BIT(P2M_ROOT_ORDER, U)
>> +#define P2M_ROOT_LEVEL  HYP_PT_ROOT_LEVEL
> I think I commented on this before, and I would have hoped for at least a remark
> in the description to appear (perhaps even a comment here): It's okay(ish) to tie
> these together for now, but in the longer run I don't expect this is going to be
> wanted. If e.g. we ran Xen in Sv57 mode, there would be no reason at all to force
> all P2Ms to use 5 levels of page tables.

Do you mean that for G-stage it could be chosen any SvXX mode to limit an amount
of page tables necessary for G-stage? If yes, then, at least, I agree that a
comment should be added or, probably, "#warning optimize an amount of p2m root level
for MMU mode > Sv48" (or maybe >=).

Or do you mean if we set hgatp.mode=Sv57 then it is possible to limit an amount of
page table's levels to use? In this case I think hardware still will expect to see
5 levels of page tables.


>> @@ -175,13 +179,257 @@ int p2m_set_allocation(struct domain *d, unsigned long pages, bool *preempted)
>>       return 0;
>>   }
>>   
>> +/*
>> + * Find and map the root page table. The caller is responsible for
>> + * unmapping the table.
>> + *
>> + * The function will return NULL if the offset into the root table is
>> + * invalid.
>> + */
>> +static pte_t *p2m_get_root_pointer(struct p2m_domain *p2m, gfn_t gfn)
>> +{
>> +    unsigned long root_table_indx;
>> +
>> +    root_table_indx = gfn_x(gfn) >> XEN_PT_LEVEL_ORDER(P2M_ROOT_LEVEL);
> Right now page table layouts / arrangements are indeed similar enough to
> share accessor constructs. Nevertheless I find it problematic (doc-wise
> at the very least) that a Xen page table construct is used to access a
> P2M page table. If and when these needed to be decoupled, it would likely
> help of the distinction was already made, by - for now - simply
> introducing aliases (here e.g. P2M_LEVEL_ORDER(), expanding to
> XEN_PT_LEVEL_ORDER() for the time being).

I think it's better to define this correctly now, as I initially missed
that only non-root page tables and all page table entries (PTEs) share
the same format as their corresponding Sv39, Sv48, or Sv57 modes
(i.e., corresponding to SvXXx4).

However, in this case, we're dealing with the*root level*, which is extended
by 2 extra bits. Therefore, using|XEN_PT_LEVEL_ORDER()| would be incorrect
if those two extra bits are actually used.

We're just fortunate that no one currently uses these extra 2 bits.

>> +    if ( root_table_indx >= P2M_ROOT_PAGES )
>> +        return NULL;
>> +
>> +    return __map_domain_page(p2m->root + root_table_indx);
>> +}
>> +
>> +static inline void p2m_write_pte(pte_t *p, pte_t pte, bool clean_pte)
>> +{
>> +    write_pte(p, pte);
>> +    if ( clean_pte )
>> +        clean_dcache_va_range(p, sizeof(*p));
> Not necessarily for right away, but if multiple adjacent PTEs are
> written without releasing the lock, this then redundant cache flushing
> can be a performance issue.

Can't it be resolved on a caller side? Something like:
   p2m_write_pte(p1, pte1, false);
   p2m_write_pte(p2, pte2, false);
   p2m_write_pte(p3, pte3, false);
   p2m_write_pte(p4, pte4, true);
where p1-p4 are adjacent.

  

>> +}
>> +
>> +static inline void p2m_clean_pte(pte_t *p, bool clean_pte)
>> +{
>> +    pte_t pte;
>> +
>> +    memset(&pte, 0, sizeof(pte));
> Why memset()? Why not simply give the variable an appropriate initializer?

Good point. It would be much better just to use an appropriate initializer.

> Or use ...
>
>> +    p2m_write_pte(p, pte, clean_pte);
> ... a compound literal here, like you do ...
>
>> +}
>> +
>> +static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t)
>> +{
>> +    panic("%s: hasn't been implemented yet\n", __func__);
>> +
>> +    return (pte_t) { .pte = 0 };
> ... here? (Just {} would also do, if I'm not mistaken.)

According to C99 it will be enough {}, but {.pte = 0} is more obvious and
clearer, IMO.

>> +}
>> +
>> +#define P2M_TABLE_MAP_NONE 0
>> +#define P2M_TABLE_MAP_NOMEM 1
>> +#define P2M_TABLE_SUPER_PAGE 2
>> +#define P2M_TABLE_NORMAL 3
>> +
>> +/*
>> + * Take the currently mapped table, find the corresponding the entry
>> + * corresponding to the GFN, and map the next table, if available.
> Nit: Double "corresponding".
>
>> + * The previous table will be unmapped if the next level was mapped
>> + * (e.g P2M_TABLE_NORMAL returned).
>> + *
>> + * `alloc_tbl` parameter indicates whether intermediate tables should
>> + * be allocated when not present.
>> + *
>> + * Return values:
>> + *  P2M_TABLE_MAP_NONE: a table allocation isn't permitted.
>> + *  P2M_TABLE_MAP_NOMEM: allocating a new page failed.
>> + *  P2M_TABLE_SUPER_PAGE: next level or leaf mapped normally.
>> + *  P2M_TABLE_NORMAL: The next entry points to a superpage.
>> + */
>> +static int p2m_next_level(struct p2m_domain *p2m, bool alloc_tbl,
>> +                          unsigned int level, pte_t **table,
>> +                          unsigned int offset)
>> +{
>> +    panic("%s: hasn't been implemented yet\n", __func__);
>> +
>> +    return P2M_TABLE_MAP_NONE;
>> +}
>> +
>> +/* Free pte sub-tree behind an entry */
>> +static void p2m_free_subtree(struct p2m_domain *p2m,
>> +                             pte_t entry, unsigned int level)
>> +{
>> +    panic("%s: hasn't been implemented yet\n", __func__);
>> +}
>> +
>> +/*
>> + * Insert an entry in the p2m. This should be called with a mapping
>> + * equal to a page/superpage.
>> + */
>> +static int p2m_set_entry(struct p2m_domain *p2m,
>> +                           gfn_t gfn,
>> +                           unsigned long page_order,
>> +                           mfn_t mfn,
>> +                           p2m_type_t t)
>> +{
>> +    unsigned int level;
>> +    unsigned int target = page_order / PAGETABLE_ORDER;
>> +    pte_t *entry, *table, orig_pte;
>> +    int rc;
>> +    /* A mapping is removed if the MFN is invalid. */
>> +    bool removing_mapping = mfn_eq(mfn, INVALID_MFN);
> Comment and code don't fit together. Many MFNs are invalid (any for which
> mfn_valid() returns false), yet you only check for INVALID_MFN here.

Probably, it makes sense to add an|ASSERT()| here for the case when
|mfn_valid(mfn)| is false, but the MFN is not explicitly equal to|INVALID_MFN|.
This would indicate that someone attempted to perform a mapping with an
incorrect MFN, which, IMO, is entirely wrong.
In the case where the MFN is explicitly set to|INVALID_MFN|, I believe it's
enough to indicate that a mapping is being removed.

>> +    DECLARE_OFFSETS(offsets, gfn_to_gaddr(gfn));
>> +
>> +    ASSERT(p2m_is_write_locked(p2m));
>> +
>> +    /*
>> +     * Check if the level target is valid: we only support
>> +     * 4K - 2M - 1G mapping.
>> +     */
>> +    ASSERT((target <= 2) && !(page_order % PAGETABLE_ORDER));
> If you think you need to check this, don't you also want to check that
> GFN and MFN (the latter if it isn't INVALID_MFN) fit the requested order?

I'm not 100% sure it makes sense to check|page_order|, as in IMO, proper
alignment is already guaranteed by|p2m_mapping_order(sgfn, smfn, left)|,
and thus both GFN and MFN are aligned accordingly.
So, I think this part of the check could be dropped.

>> +    table = p2m_get_root_pointer(p2m, gfn);
>> +    if ( !table )
>> +        return -EINVAL;
>> +
>> +    for ( level = P2M_ROOT_LEVEL; level > target; level-- )
>> +    {
>> +        /*
>> +         * Don't try to allocate intermediate page table if the mapping
>> +         * is about to be removed.
>> +         */
>> +        rc = p2m_next_level(p2m, !removing_mapping,
>> +                            level, &table, offsets[level]);
>> +        if ( (rc == P2M_TABLE_MAP_NONE) || (rc == P2M_TABLE_MAP_NOMEM) )
>> +        {
>> +            rc = (rc == P2M_TABLE_MAP_NONE) ? -ENOENT : -ENOMEM;
>> +            /*
>> +             * We are here because p2m_next_level has failed to map
>> +             * the intermediate page table (e.g the table does not exist
>> +             * and they p2m tree is read-only). It is a valid case
>> +             * when removing a mapping as it may not exist in the
>> +             * page table. In this case, just ignore it.
>> +             */
>> +            rc = removing_mapping ?  0 : rc;
> Nit: Stray blank.
>
>> +            goto out;
>> +        }
>> +
>> +        if ( rc != P2M_TABLE_NORMAL )
>> +            break;
>> +    }
>> +
>> +    entry = table + offsets[level];
>> +
>> +    /*
>> +     * If we are here with level > target, we must be at a leaf node,
>> +     * and we need to break up the superpage.
>> +     */
>> +    if ( level > target )
>> +    {
>> +        panic("Shattering isn't implemented\n");
>> +    }
>> +
>> +    /*
>> +     * We should always be there with the correct level because all the
>> +     * intermediate tables have been installed if necessary.
>> +     */
>> +    ASSERT(level == target);
>> +
>> +    orig_pte = *entry;
>> +
>> +    if ( removing_mapping )
>> +        p2m_clean_pte(entry, p2m->clean_pte);
>> +    else
>> +    {
>> +        pte_t pte = p2m_pte_from_mfn(mfn, t);
>> +
>> +        p2m_write_pte(entry, pte, p2m->clean_pte);
>> +
>> +        p2m->max_mapped_gfn = gfn_max(p2m->max_mapped_gfn,
>> +                                      gfn_add(gfn, BIT(page_order, UL) - 1));
>> +        p2m->lowest_mapped_gfn = gfn_min(p2m->lowest_mapped_gfn, gfn);
>> +    }
>> +
>> +    p2m->need_flush = true;
>> +
>> +    /*
>> +     * Currently, the infrastructure required to enable CONFIG_HAS_PASSTHROUGH
>> +     * is not ready for RISC-V support.
>> +     *
>> +     * When CONFIG_HAS_PASSTHROUGH=y, iommu_iotlb_flush() should be done
>> +     * here.
>> +     */
>> +#ifdef CONFIG_HAS_PASSTHROUGH
>> +#   error "add code to flush IOMMU TLB"
>> +#endif
>> +
>> +    rc = 0;
>> +
>> +    /*
>> +     * Free the entry only if the original pte was valid and the base
>> +     * is different (to avoid freeing when permission is changed).
>> +     */
>> +    if ( pte_is_valid(orig_pte) &&
>> +         !mfn_eq(pte_get_mfn(*entry), pte_get_mfn(orig_pte)) )
> I'm puzzled by this 2nd check: A permission change would - I expect - only
> occur to a leaf entry. If the new entry is a super-page one and the old
> wasn't, don't you still need to free the sub-tree, no matter whether the
> MFNs are the same?

I expect the MFNs to differ in this scenario, so the old sub-tree will be freed.

Based on your example (new entry is super-page and old entry isn't):
For old mapping (lets say, 4 KiB leaf) p2m_set_entry() walks all levels down
to L0, so we will have the following MMU page table walks:
   L2 PTE -> L1 PTE (MFN of L0 page table) -> L0 PTE -> RAM

When new mapping (lets say, 2 MiB superpage) will be requested, p2m_set_entry()
will stop at L1 (the superpage level):
  L2 PTE -> L1 PTE (at this moment, L1 PTE points to L0 page table, which
                    points to RAM)
Then the old L1 PTE will be saved in 'orig_pte', then writes 'entry' with
the RAM MFN for the 2 MiB mapping. The walk becomes:
   L2 PTE -> L1 PTE -> RAM

Therefore, 'entry' now holds an MFN pointing to RAM (superpage leaf). 'orig_pte'
still holds an MFN pointing to the L0 table (the old sub-tree). Since these MFNs
differ, the code calls p2m_free_subtree(p2m, orig_pte, â€¦) and frees the old L0
sub-tree.

     

>   Plus consider the special case of MFN 0: If you clear
> an entry using MFN 0, you will find old and new PTEs' both having the same
> MFN.

Isn't this happen only when a mapping removal is explicitly requested?
In the case of a mapping removal it seems to me it is enough just to
clear PTE with all zeroes.

>   static int p2m_set_range(struct p2m_domain *p2m,
>                            gfn_t sgfn,
>                            unsigned long nr,
>                            mfn_t smfn,
>                            p2m_type_t t)
>   {
> -    return -EOPNOTSUPP;
> +    int rc = 0;
> +    unsigned long left = nr;
> +
> +    /*
> +     * Any reference taken by the P2M mappings (e.g. foreign mapping) will
> +     * be dropped in relinquish_p2m_mapping(). As the P2M will still
> +     * be accessible after, we need to prevent mapping to be added when the
> +     * domain is dying.
> +     */
> +    if ( unlikely(p2m->domain->is_dying) )
> +        return -EACCES;
> +
> +    while ( left )
> +    {
> +        unsigned long order = p2m_mapping_order(sgfn, smfn, left);
> +
> +        rc = p2m_set_entry(p2m, sgfn, order, smfn, t);
> +        if ( rc )
> +            break;
> +
> +        sgfn = gfn_add(sgfn, BIT(order, UL));
> +        if ( !mfn_eq(smfn, INVALID_MFN) )
> +           smfn = mfn_add(smfn, BIT(order, UL));
> +
> +        left -= BIT(order, UL);
> +    }
> +
> +    return !left ? 0 : left == nr ? rc : (nr - left);
> The function returning "int", you may be truncating the return value here.
> In the worst case indicating success (0) or an error (negative) when some
> of the upper bits were set.

I think what will be better:
or (1) Return long instead of int and the following check:
    long result = nr - left;
    if (result < 0 || result > LONG_MAX)
       return -ERANGE;
or (2) Just add new `left_to_map` (or just left) argument to p2m_set_range().

> Also looks like you could get away with a single conditional operator here:
>
>      return !left || left == nr ? rc : (nr - left);

Thanks.

~ Oleksii

--------------HROQljmCX0Yx6E9D50dJ1CoZ
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/5/25 6:04 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:f217021e-1fef-4324-a56e-529fd29b4c69@suse.com">
      <pre wrap="" class="moz-quote-pre">On 31.07.2025 17:58, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">This patch introduces p2m_set_range() and its core helper p2m_set_entry() for
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">Nit: This patch doesn't introduce p2m_set_range(); it merely fleshes it out.

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">--- a/xen/arch/riscv/include/asm/p2m.h
+++ b/xen/arch/riscv/include/asm/p2m.h
@@ -7,11 +7,13 @@
 #include &lt;xen/rwlock.h&gt;
 #include &lt;xen/types.h&gt;
 
+#include &lt;asm/page.h&gt;
 #include &lt;asm/page-bits.h&gt;
 
 extern unsigned int p2m_root_order;
 #define P2M_ROOT_ORDER  p2m_root_order
 #define P2M_ROOT_PAGES  BIT(P2M_ROOT_ORDER, U)
+#define P2M_ROOT_LEVEL  HYP_PT_ROOT_LEVEL
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">I think I commented on this before, and I would have hoped for at least a remark
in the description to appear (perhaps even a comment here): It's okay(ish) to tie
these together for now, but in the longer run I don't expect this is going to be
wanted. If e.g. we ran Xen in Sv57 mode, there would be no reason at all to force
all P2Ms to use 5 levels of page tables.</pre>
    </blockquote>
    <pre>Do you mean that for G-stage it could be chosen any SvXX mode to limit an amount
of page tables necessary for G-stage? If yes, then, at least, I agree that a
comment should be added or, probably, "#warning optimize an amount of p2m root level
for MMU mode &gt; Sv48" (or maybe &gt;=).

Or do you mean if we set hgatp.mode=Sv57 then it is possible to limit an amount of
page table's levels to use? In this case I think hardware still will expect to see
5 levels of page tables.


</pre>
    <blockquote type="cite"
      cite="mid:f217021e-1fef-4324-a56e-529fd29b4c69@suse.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">@@ -175,13 +179,257 @@ int p2m_set_allocation(struct domain *d, unsigned long pages, bool *preempted)
     return 0;
 }
 
+/*
+ * Find and map the root page table. The caller is responsible for
+ * unmapping the table.
+ *
+ * The function will return NULL if the offset into the root table is
+ * invalid.
+ */
+static pte_t *p2m_get_root_pointer(struct p2m_domain *p2m, gfn_t gfn)
+{
+    unsigned long root_table_indx;
+
+    root_table_indx = gfn_x(gfn) &gt;&gt; XEN_PT_LEVEL_ORDER(P2M_ROOT_LEVEL);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">Right now page table layouts / arrangements are indeed similar enough to
share accessor constructs. Nevertheless I find it problematic (doc-wise
at the very least) that a Xen page table construct is used to access a
P2M page table. If and when these needed to be decoupled, it would likely
help of the distinction was already made, by - for now - simply
introducing aliases (here e.g. P2M_LEVEL_ORDER(), expanding to
XEN_PT_LEVEL_ORDER() for the time being).</pre>
    </blockquote>
    <pre data-start="59" data-end="299">I think it's better to define this correctly now, as I initially missed
that only non-root page tables and all page table entries (PTEs) share
the same format as their corresponding Sv39, Sv48, or Sv57 modes
(i.e., corresponding to SvXXx4).</pre>
    <pre data-start="301" data-end="501">However, in this case, we're dealing with the <strong
    data-start="347" data-end="361">root level</strong>, which is extended
by 2 extra bits. Therefore, using <code data-start="415" data-end="437">XEN_PT_LEVEL_ORDER()</code> would be incorrect
if those two extra bits are actually used.</pre>
    <pre data-start="503" data-end="570">We're just fortunate that no one currently uses these extra 2 bits.
</pre>
    <blockquote type="cite"
      cite="mid:f217021e-1fef-4324-a56e-529fd29b4c69@suse.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    if ( root_table_indx &gt;= P2M_ROOT_PAGES )
+        return NULL;
+
+    return __map_domain_page(p2m-&gt;root + root_table_indx);
+}
+
+static inline void p2m_write_pte(pte_t *p, pte_t pte, bool clean_pte)
+{
+    write_pte(p, pte);
+    if ( clean_pte )
+        clean_dcache_va_range(p, sizeof(*p));
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">Not necessarily for right away, but if multiple adjacent PTEs are
written without releasing the lock, this then redundant cache flushing
can be a performance issue.</pre>
    </blockquote>
    <pre>Can't it be resolved on a caller side? Something like:
  p2m_write_pte(p1, pte1, false);
  p2m_write_pte(p2, pte2, false);
  p2m_write_pte(p3, pte3, false);
  p2m_write_pte(p4, pte4, true);
where p1-p4 are adjacent.

 
</pre>
    <blockquote type="cite"
      cite="mid:f217021e-1fef-4324-a56e-529fd29b4c69@suse.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+}
+
+static inline void p2m_clean_pte(pte_t *p, bool clean_pte)
+{
+    pte_t pte;
+
+    memset(&amp;pte, 0, sizeof(pte));
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">Why memset()? Why not simply give the variable an appropriate initializer?</pre>
    </blockquote>
    <pre>Good point. It would be much better just to use an appropriate initializer.

</pre>
    <blockquote type="cite"
      cite="mid:f217021e-1fef-4324-a56e-529fd29b4c69@suse.com">
      <pre wrap="" class="moz-quote-pre">Or use ...

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    p2m_write_pte(p, pte, clean_pte);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">... a compound literal here, like you do ...

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+}
+
+static pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t)
+{
+    panic("%s: hasn't been implemented yet\n", __func__);
+
+    return (pte_t) { .pte = 0 };
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">... here? (Just {} would also do, if I'm not mistaken.)</pre>
    </blockquote>
    <pre>According to C99 it will be enough {}, but {.pte = 0} is more obvious and
clearer, IMO.

</pre>
    <blockquote type="cite"
      cite="mid:f217021e-1fef-4324-a56e-529fd29b4c69@suse.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+}
+
+#define P2M_TABLE_MAP_NONE 0
+#define P2M_TABLE_MAP_NOMEM 1
+#define P2M_TABLE_SUPER_PAGE 2
+#define P2M_TABLE_NORMAL 3
+
+/*
+ * Take the currently mapped table, find the corresponding the entry
+ * corresponding to the GFN, and map the next table, if available.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">Nit: Double "corresponding".

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+ * The previous table will be unmapped if the next level was mapped
+ * (e.g P2M_TABLE_NORMAL returned).
+ *
+ * `alloc_tbl` parameter indicates whether intermediate tables should
+ * be allocated when not present.
+ *
+ * Return values:
+ *  P2M_TABLE_MAP_NONE: a table allocation isn't permitted.
+ *  P2M_TABLE_MAP_NOMEM: allocating a new page failed.
+ *  P2M_TABLE_SUPER_PAGE: next level or leaf mapped normally.
+ *  P2M_TABLE_NORMAL: The next entry points to a superpage.
+ */
+static int p2m_next_level(struct p2m_domain *p2m, bool alloc_tbl,
+                          unsigned int level, pte_t **table,
+                          unsigned int offset)
+{
+    panic("%s: hasn't been implemented yet\n", __func__);
+
+    return P2M_TABLE_MAP_NONE;
+}
+
+/* Free pte sub-tree behind an entry */
+static void p2m_free_subtree(struct p2m_domain *p2m,
+                             pte_t entry, unsigned int level)
+{
+    panic("%s: hasn't been implemented yet\n", __func__);
+}
+
+/*
+ * Insert an entry in the p2m. This should be called with a mapping
+ * equal to a page/superpage.
+ */
+static int p2m_set_entry(struct p2m_domain *p2m,
+                           gfn_t gfn,
+                           unsigned long page_order,
+                           mfn_t mfn,
+                           p2m_type_t t)
+{
+    unsigned int level;
+    unsigned int target = page_order / PAGETABLE_ORDER;
+    pte_t *entry, *table, orig_pte;
+    int rc;
+    /* A mapping is removed if the MFN is invalid. */
+    bool removing_mapping = mfn_eq(mfn, INVALID_MFN);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">Comment and code don't fit together. Many MFNs are invalid (any for which
mfn_valid() returns false), yet you only check for INVALID_MFN here.</pre>
    </blockquote>
    <pre>Probably, it makes sense to add an <code data-start="84"
    data-end="94">ASSERT()</code> here for the case when
<code data-start="118" data-end="134">mfn_valid(mfn)</code> is false, but the MFN is not explicitly equal to <code
    data-start="184" data-end="197">INVALID_MFN</code>.
This would indicate that someone attempted to perform a mapping with an
incorrect MFN, which, IMO, is entirely wrong.
In the case where the MFN is explicitly set to <code data-start="374"
    data-end="387">INVALID_MFN</code>, I believe it's
enough to indicate that a mapping is being removed.

</pre>
    <blockquote type="cite"
      cite="mid:f217021e-1fef-4324-a56e-529fd29b4c69@suse.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    DECLARE_OFFSETS(offsets, gfn_to_gaddr(gfn));
+
+    ASSERT(p2m_is_write_locked(p2m));
+
+    /*
+     * Check if the level target is valid: we only support
+     * 4K - 2M - 1G mapping.
+     */
+    ASSERT((target &lt;= 2) &amp;&amp; !(page_order % PAGETABLE_ORDER));
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">If you think you need to check this, don't you also want to check that
GFN and MFN (the latter if it isn't INVALID_MFN) fit the requested order?</pre>
    </blockquote>
    <pre>I'm not 100% sure it makes sense to check <code data-start="91"
    data-end="103">page_order</code>, as in IMO, proper
alignment is already guaranteed by <code data-start="165" data-end="202">p2m_mapping_order(sgfn, smfn, left)</code>,
and thus both GFN and MFN are aligned accordingly.
So, I think this part of the check could be dropped.</pre>
    <blockquote type="cite"
      cite="mid:f217021e-1fef-4324-a56e-529fd29b4c69@suse.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+    table = p2m_get_root_pointer(p2m, gfn);
+    if ( !table )
+        return -EINVAL;
+
+    for ( level = P2M_ROOT_LEVEL; level &gt; target; level-- )
+    {
+        /*
+         * Don't try to allocate intermediate page table if the mapping
+         * is about to be removed.
+         */
+        rc = p2m_next_level(p2m, !removing_mapping,
+                            level, &amp;table, offsets[level]);
+        if ( (rc == P2M_TABLE_MAP_NONE) || (rc == P2M_TABLE_MAP_NOMEM) )
+        {
+            rc = (rc == P2M_TABLE_MAP_NONE) ? -ENOENT : -ENOMEM;
+            /*
+             * We are here because p2m_next_level has failed to map
+             * the intermediate page table (e.g the table does not exist
+             * and they p2m tree is read-only). It is a valid case
+             * when removing a mapping as it may not exist in the
+             * page table. In this case, just ignore it.
+             */
+            rc = removing_mapping ?  0 : rc;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">Nit: Stray blank.

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+            goto out;
+        }
+
+        if ( rc != P2M_TABLE_NORMAL )
+            break;
+    }
+
+    entry = table + offsets[level];
+
+    /*
+     * If we are here with level &gt; target, we must be at a leaf node,
+     * and we need to break up the superpage.
+     */
+    if ( level &gt; target )
+    {
+        panic("Shattering isn't implemented\n");
+    }
+
+    /*
+     * We should always be there with the correct level because all the
+     * intermediate tables have been installed if necessary.
+     */
+    ASSERT(level == target);
+
+    orig_pte = *entry;
+
+    if ( removing_mapping )
+        p2m_clean_pte(entry, p2m-&gt;clean_pte);
+    else
+    {
+        pte_t pte = p2m_pte_from_mfn(mfn, t);
+
+        p2m_write_pte(entry, pte, p2m-&gt;clean_pte);
+
+        p2m-&gt;max_mapped_gfn = gfn_max(p2m-&gt;max_mapped_gfn,
+                                      gfn_add(gfn, BIT(page_order, UL) - 1));
+        p2m-&gt;lowest_mapped_gfn = gfn_min(p2m-&gt;lowest_mapped_gfn, gfn);
+    }
+
+    p2m-&gt;need_flush = true;
+
+    /*
+     * Currently, the infrastructure required to enable CONFIG_HAS_PASSTHROUGH
+     * is not ready for RISC-V support.
+     *
+     * When CONFIG_HAS_PASSTHROUGH=y, iommu_iotlb_flush() should be done
+     * here.
+     */
+#ifdef CONFIG_HAS_PASSTHROUGH
+#   error "add code to flush IOMMU TLB"
+#endif
+
+    rc = 0;
+
+    /*
+     * Free the entry only if the original pte was valid and the base
+     * is different (to avoid freeing when permission is changed).
+     */
+    if ( pte_is_valid(orig_pte) &amp;&amp;
+         !mfn_eq(pte_get_mfn(*entry), pte_get_mfn(orig_pte)) )
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">I'm puzzled by this 2nd check: A permission change would - I expect - only
occur to a leaf entry. If the new entry is a super-page one and the old
wasn't, don't you still need to free the sub-tree, no matter whether the
MFNs are the same?</pre>
    </blockquote>
    <pre>I expect the MFNs to differ in this scenario, so the old sub-tree will be freed.

Based on your example (new entry is super-page and old entry isn't):
For old mapping (lets say, 4 KiB leaf) p2m_set_entry() walks all levels down
to L0, so we will have the following MMU page table walks:
  L2 PTE -&gt; L1 PTE (MFN of L0 page table) -&gt; L0 PTE -&gt; RAM

When new mapping (lets say, 2 MiB superpage) will be requested, p2m_set_entry()
will stop at L1 (the superpage level):
 L2 PTE -&gt; L1 PTE (at this moment, L1 PTE points to L0 page table, which
                   points to RAM)
Then the old L1 PTE will be saved in 'orig_pte', then writes 'entry' with
the RAM MFN for the 2 MiB mapping. The walk becomes:
  L2 PTE -&gt; L1 PTE -&gt; RAM

Therefore, 'entry' now holds an MFN pointing to RAM (superpage leaf). 'orig_pte'
still holds an MFN pointing to the L0 table (the old sub-tree). Since these MFNs
differ, the code calls p2m_free_subtree(p2m, orig_pte, â€¦) and frees the old L0
sub-tree.</pre>
    <pre>    </pre>
    <blockquote type="cite"
      cite="mid:f217021e-1fef-4324-a56e-529fd29b4c69@suse.com">
      <pre wrap="" class="moz-quote-pre"> Plus consider the special case of MFN 0: If you clear
an entry using MFN 0, you will find old and new PTEs' both having the same
MFN.</pre>
    </blockquote>
    <pre>Isn't this happen only when a mapping removal is explicitly requested?
In the case of a mapping removal it seems to me it is enough just to
clear PTE with all zeroes.

</pre>
    <blockquote type="cite"
      cite="mid:f217021e-1fef-4324-a56e-529fd29b4c69@suse.com">
      <pre wrap="" class="moz-quote-pre"> static int p2m_set_range(struct p2m_domain *p2m,
                          gfn_t sgfn,
                          unsigned long nr,
                          mfn_t smfn,
                          p2m_type_t t)
 {
-    return -EOPNOTSUPP;
+    int rc = 0;
+    unsigned long left = nr;
+
+    /*
+     * Any reference taken by the P2M mappings (e.g. foreign mapping) will
+     * be dropped in relinquish_p2m_mapping(). As the P2M will still
+     * be accessible after, we need to prevent mapping to be added when the
+     * domain is dying.
+     */
+    if ( unlikely(p2m-&gt;domain-&gt;is_dying) )
+        return -EACCES;
+
+    while ( left )
+    {
+        unsigned long order = p2m_mapping_order(sgfn, smfn, left);
+
+        rc = p2m_set_entry(p2m, sgfn, order, smfn, t);
+        if ( rc )
+            break;
+
+        sgfn = gfn_add(sgfn, BIT(order, UL));
+        if ( !mfn_eq(smfn, INVALID_MFN) )
+           smfn = mfn_add(smfn, BIT(order, UL));
+
+        left -= BIT(order, UL);
+    }
+
+    return !left ? 0 : left == nr ? rc : (nr - left);
</pre>
    </blockquote>
    <blockquote type="cite"
      cite="mid:f217021e-1fef-4324-a56e-529fd29b4c69@suse.com">
      <blockquote type="cite"> </blockquote>
      <pre wrap="" class="moz-quote-pre">The function returning "int", you may be truncating the return value here.
In the worst case indicating success (0) or an error (negative) when some
of the upper bits were set.</pre>
    </blockquote>
    <pre>I think what will be better:
or (1) Return long instead of int and the following check:
   long result = nr - left;
   if (result &lt; 0 || result &gt; LONG_MAX)
      return -ERANGE;
or (2) Just add new `left_to_map` (or just left) argument to p2m_set_range().

</pre>
    <blockquote type="cite"
      cite="mid:f217021e-1fef-4324-a56e-529fd29b4c69@suse.com">
      <pre wrap="" class="moz-quote-pre">Also looks like you could get away with a single conditional operator here:

    return !left || left == nr ? rc : (nr - left);</pre>
    </blockquote>
    <pre>Thanks. 

~ Oleksii</pre>
  </body>
</html>

--------------HROQljmCX0Yx6E9D50dJ1CoZ--


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 10:19:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 10:19:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083182.1442816 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umrXN-0003e3-Hi; Fri, 15 Aug 2025 10:19:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083182.1442816; Fri, 15 Aug 2025 10:19: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 1umrXN-0003dw-F0; Fri, 15 Aug 2025 10:19:53 +0000
Received: by outflank-mailman (input) for mailman id 1083182;
 Fri, 15 Aug 2025 10:19:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UXkI=23=epam.com=Oleksandr_Tyshchenko@srs-se1.protection.inumbo.net>)
 id 1umrXL-0003dq-DI
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 10:19:51 +0000
Received: from GVXPR05CU001.outbound.protection.outlook.com
 (mail-swedencentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c202::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6048f896-79c1-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 12:19:50 +0200 (CEST)
Received: from AM9PR03MB7025.eurprd03.prod.outlook.com (2603:10a6:20b:2d7::20)
 by DU0PR03MB8622.eurprd03.prod.outlook.com (2603:10a6:10:3e9::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.15; Fri, 15 Aug
 2025 10:19:47 +0000
Received: from AM9PR03MB7025.eurprd03.prod.outlook.com
 ([fe80::bdd:3097:e48c:6c4b]) by AM9PR03MB7025.eurprd03.prod.outlook.com
 ([fe80::bdd:3097:e48c:6c4b%5]) with mapi id 15.20.9031.014; Fri, 15 Aug 2025
 10:19: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>
X-Inumbo-ID: 6048f896-79c1-11f0-a328-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=o2ii5JCgBUw+PIPn7A87xRzgqgAflzzzzxtiko2VZqgI4F1gyIGAzvGLExd/8K+8xIIDDqNs5xYT8iALGHnfQm6Pz0jDIZlAwx0WYe93cslvtHXmpZr9Dv359V77VnbFI9/CSqz/pQD7DREjaWTt+s1B9Spp0Xb2UjOXiL80vNGNr9Hx7/1Cm1riw2W1Q0yZel1AjcpuDl6EHGQsG8Uiuo1pJTBjPI/g4tazfWJT11fEWzYGHj5x6a1XTjAJoVz0fr9lJ3HJcNtB83M2o0409kJ70BguQnbl5ppsWB4JduoluMzPYTf4oCcbxkX9K+TGAaiINbp9qz9Eqh40MCHjlg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7xewDOK4jXNrNHpQ075L7aH9M6LJMV17EtRmkCrE2YA=;
 b=JUtych8JE/iYHI/7n2jIpeuvH3+MbaATfqZluDbjQrPJoFUs7g+KTNuSoFgjlpeqRNs263kf1ACHZfZfdAet1Ewdcw3cnaoxBOhGDz+UfRfMAOWh6Q7iPNTHVJ0nS14+z2b6rZpuZ87hqsDSacpA0d+xhhb6+66Z5YWPAyom1N3y+kCESbL34GP16A/iq/agNfiUIOpUfh66gFn8da/lPVyv8sucVzOzzUp2p07pc6MPqLVCHZyBHWPIdpxsz5vSlCrgtAQKYDsB3O51JqLC8xV5b9NaVIe/rPZOi19ihhrtJ+yFsKatp+6ry+5kNs/nowdz86gNFtEgut7+EFuKlg==
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=7xewDOK4jXNrNHpQ075L7aH9M6LJMV17EtRmkCrE2YA=;
 b=mrktaaDdQi7PuwjNFCjbjmhFI6VS6CvmVsscIvQMHsiQ8b0ssIh6CxpaFc3vnBuhj8eRU0/NV1NP4mkdhM5Wlbw0YEMpf8rlFfnZfEjaS1/NKs0asmWVhCRbEELcDu376aN49703ZuSeo7q51jb/G9QNUNc36BB5q8uFaXw5NyP0xoRnTUU+7T4ilNgTsmSCPANqucrcrwGHqyahB3J3sjjPe/UZtMrnJ8vKCiKzGxh2Ai5tQbJFqacPVJ37s/yxd/HZaw69NPHLkChBIVMZcShfysrIHy2Kt51uU9eGQty4bxbdhjVwlGMD9bDQcqE3xTHSveyrYZ2moqzG5ZZn9w==
From: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>
Subject: [PATCH] x86/hvm/ioreq: Fix condition in hvm_alloc_legacy_ioreq_gfn()
Thread-Topic: [PATCH] x86/hvm/ioreq: Fix condition in
 hvm_alloc_legacy_ioreq_gfn()
Thread-Index: AQHcDc4g80PGAKCUYEOWQIOrbWg9cg==
Date: Fri, 15 Aug 2025 10:19:47 +0000
Message-ID: <20250815101946.2329018-1-oleksandr_tyshchenko@epam.com>
Accept-Language: en-US, 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: AM9PR03MB7025:EE_|DU0PR03MB8622:EE_
x-ms-office365-filtering-correlation-id: 2da364ec-859b-4d85-c661-08dddbe5432a
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|42112799006|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?bM2UEudxJl/HJLmVja824Ka6fLgmfzhCti6jLwrSiLP5P2p8TSc34oJk91?=
 =?iso-8859-1?Q?9ePQ49A0sPXTRyawEAirP8f3HbruDNK70ex319qDZbNAvJ0/ZIitZNVBaG?=
 =?iso-8859-1?Q?X9k1nBGiyPkb7ZTHqkq+p9UgnWwcs7TId14oCsPjKkEI9xSUYT+hLZLEge?=
 =?iso-8859-1?Q?kmOlgD97B/Fwp/liHtBuNjBkKWtFZi+5cRdsup4YKJ5NkRdnzSvVJahPkf?=
 =?iso-8859-1?Q?YbheRpIWAiBB1IQke8vy17/qadpO4vWRYc9/pip4ddn4PdMyFrodrXnT5W?=
 =?iso-8859-1?Q?NPdbl6471bEqLIDg5lBUZ2YdNkw8rBAwT+8upqZC6PxZLcoxa6VGn2/aWL?=
 =?iso-8859-1?Q?BtNRkbHU0tPbQuIRoQlWzed99ekmVsfxdMIFlbZ9PEReFlW5j8uv9f5qDD?=
 =?iso-8859-1?Q?0E9vUQ6W3Xz4efYH008qdYn1XypFNdNHdx37cftqO1cOg5ZDgzrX8wdM6T?=
 =?iso-8859-1?Q?M6MOofFaNc3rZ6Qib0f7Inktlyg/FSno7Ftt0KlcQTlcGkfrta12x1iwkV?=
 =?iso-8859-1?Q?R3LBOC+3O+ZbB+FFETl+/UDLx4J5E2dGH+T588qyenSw20HzX3SICfb7p4?=
 =?iso-8859-1?Q?TnuJ+kOn4rYavTibwGGMDZOsgVC7/WbkU/4PIJ77YeaW2AZl4mG5fUxvxR?=
 =?iso-8859-1?Q?YSj+bv6pR20ghHC1+/yW85VBF0LFpKvmHu8iLUu236+Za6aH/HufUUvwAg?=
 =?iso-8859-1?Q?LczTghkxFNvdBgKB+4+D985I4zVZozexPPLjHOs/JnJdoZibC/gh/FIC8I?=
 =?iso-8859-1?Q?rcjPx93iQ33Oc99Chj9M9RIfzxj1CC67StV35MRgGuZVr916zmVHfg4wP2?=
 =?iso-8859-1?Q?GgWaYhfYbqwM++EmJ+ED5yPa1RnwNfhigFP8PmbHZ+RgSEUyrWGDhZiKi6?=
 =?iso-8859-1?Q?1D2tJsNtwAdUErkfMIFuCLAYktXwMM2p+Tt2m/h2JjcBs1BwzHsdbM1U1N?=
 =?iso-8859-1?Q?+9GXX7mqM/U6Z+f3Ypvdz7z8jB2Hyyt5ttIkixcdsuROl1WiF9hicYPgI/?=
 =?iso-8859-1?Q?0tZWAZGPCvVlvH9bukAs+a7pj1FzXdWb+sHsGQXj4CnkSNH0Gt+bfBmdmm?=
 =?iso-8859-1?Q?5nt9xWImdGYs+7MQ0xiwC03S/8x+Zm+UN8SHoSCtbVhVoN/3Zjp29c8Jbs?=
 =?iso-8859-1?Q?VxjS5Ez320X+gDvWF+Ywdw0Qu3p1b6pzAJ54mgByJryy4J2EAlXqbDEPCE?=
 =?iso-8859-1?Q?j3zyars30PYdQD+LOnINsT33urw19OWbi466YeVezgSyDMQKa2fXN4K1YT?=
 =?iso-8859-1?Q?YvDjBYRKauHl2VQ7knderCvpNdI/YKWcTTFc7rS07Lv8I/mpezGtcWn72M?=
 =?iso-8859-1?Q?yJj/JtTta7cEQ7tCmjN4xjLAoEzFLiDzWsFa4kYApJsfMLrDSdpZlBLmOD?=
 =?iso-8859-1?Q?cJzsQwUFQqKYQXd4Rs9g0GB2mIVDXUFawBb8bTYk65a9HX8IW1iuV66Llq?=
 =?iso-8859-1?Q?LqAF+l4Hk6gbr7TCXISyq/m7hCVdNzb8ie45Y6A5rQ2VpemEmxpFF5OWE7?=
 =?iso-8859-1?Q?25QgKQUqrGnN+ZJIYeyl9IK88mzNpxDAgxuUgcI01y/Q=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR03MB7025.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(42112799006)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?r2r3JdWRuRDBmJetIOMuZNk8Oi87ecONtVXuKznoSpz4i9emGRmwYtz5uk?=
 =?iso-8859-1?Q?yCFdWYeYv8aCr/uuDTN9g7itW5wjQuSZAydqUec270QES+TSIelWbjGriH?=
 =?iso-8859-1?Q?m0RXX5p8EZej32rbNMf6dVRs14htSsCthp8qT3iJTz6mTBjOXcald5zYpG?=
 =?iso-8859-1?Q?9YeERqZitaGlmZeMnGtlpxfNAyrGMEpKnxcNbgi1Pewh69uIpV/buGBpKC?=
 =?iso-8859-1?Q?PvP9Jbo7FwZMRNtf2S9NwY/ZkgtpGCo7pb1mkgPKj4hVTQ8DaMQUCbGWsO?=
 =?iso-8859-1?Q?1y/mED5G0bndbf2yrvdJNF4feml5dvyR5+uWmRoOCHEd4/lCdpIwf0thqm?=
 =?iso-8859-1?Q?b+dhBkeIwEukE31HqSAXMnHzHjwV2R0BqYfeG+CrmXoKVZgjPppCPWRmK4?=
 =?iso-8859-1?Q?euO2UbRQQCz366OFKiSxH6rwxlorHm3MWMOpiWCf1y6fD7PNYb2tDeCYu0?=
 =?iso-8859-1?Q?Bz1J3LiNpisqjkTY5Qrusel+RtWJEODr3tZn3lkCxfZit6yRlIkWrZp87y?=
 =?iso-8859-1?Q?sQrvgjJtm7ez9Ie8ecZUk/78HiNt86NRq9Mqr1YaT9Q3zwhi6cx5KjnZx4?=
 =?iso-8859-1?Q?jA8KR/RM/mo8VzN3+upITh3Kp7APqDOcejPTK9y1huFfyS3jLL7RrI53YB?=
 =?iso-8859-1?Q?JMqz/nyOTZkKOg4zUCW0h3JS6wYV0l8c3JpwgKyA9Ov+r0FjobUSupqpT0?=
 =?iso-8859-1?Q?amHRXe3fXA18pR15o+Fr3LZzfGD6tvDOIqAx7FbnJWZmufREiWKNjjr8Z1?=
 =?iso-8859-1?Q?u0RgjDX+UFrD7l768bp6FfNPGJW2FaFc3TjgbVmQANYppqoeYmNRy8ykLL?=
 =?iso-8859-1?Q?d2IZ1odjRy3jpBLlOaCVwKGpjApxX25iY0OwEYsVJaTYna/wRC7AQOvwwj?=
 =?iso-8859-1?Q?FEx03ecVGAxKcIv2/17s++RZETAL1Qc+ur7KCsIoQeGu8OkRWadFEA15Us?=
 =?iso-8859-1?Q?dbdl7ML5WrxOGvLQi3OspsIB1QfPlBsb/Vlp4LZYODricsr96BfitJhRwf?=
 =?iso-8859-1?Q?gxZL70M3Q39TMmUVRZdasqZIHARgE1pv1kDJHVX3iJ//Z3Kda9Vkv4r1dv?=
 =?iso-8859-1?Q?RUVVTOcqeq644kK8HoUSI1OGSH/B0tL/j6VndStpiUxLKkTrYE8B3X2U39?=
 =?iso-8859-1?Q?27TJc7OcjFT0CUCOrwxNMBDJy1oZY3o2eP+kdX32pNnkDsZ2iftmr9gjVj?=
 =?iso-8859-1?Q?Xj98Uf6KC7vFo5azUye7jrsE5JpEH33dd1AVNgH8JGC2hj2J2LMouUXRjE?=
 =?iso-8859-1?Q?RBGe36zJN1PfSQewEmF5C6HfpdZcQGvagB5oL+GHQp9lYul1F+rWuyXfNZ?=
 =?iso-8859-1?Q?WTxjw8dqfCzuk8hdMWe1uoZSVvgrbWru3T75OvH1bvl6p2kOZ4TwDei1ct?=
 =?iso-8859-1?Q?V/EVMxMVWtbAQ9bvP1qZo83u9abtphZ7xdoenJfSASYfL1HEMn1NUykocH?=
 =?iso-8859-1?Q?ccmEAgDKkpmG9wu05Z9szRvX9ONtyZ9O58mjPpk8AdbLJggK8z0Jw6lm82?=
 =?iso-8859-1?Q?DQ1OjPczsKwAepseywzFtUFpGYrcmFoNRVsfNho1TJpT8JQrkCVzg00eFk?=
 =?iso-8859-1?Q?A2GkL+ddCpd5eeXmpZ/Zg2/OBfrvjdDJYtsAYCusdAvt6cb2LXlJ4BqV/e?=
 =?iso-8859-1?Q?wRFVWz4T/EdmPmjGXeXlmJKBbUeKmyNR7b0WVALim5/bCvgx0vItC0RjpP?=
 =?iso-8859-1?Q?W1ffihrZpNVG6TtVnVM=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: AM9PR03MB7025.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2da364ec-859b-4d85-c661-08dddbe5432a
X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Aug 2025 10:19:47.7289
 (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: KSV9Qc1+rESTIBDe+hYL3Ho9a7KIWziB61K/b8GjEjKCdQdMY8ynWlplQp+EuJ6vF+ml1mRY5a9z7PDzLnXOm0+jA+BFuAveoH+NUhEvUwc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB8622

Fix the incorrect condition that causes hvm_alloc_legacy_ioreq_gfn()
to return INVALID_GFN even if the HVM param was installed properly by
the toolstack.

Fixes: 3486f398a3dd (' x86/hvm/ioreq: allow ioreq servers to use HVM_PARAM_=
[BUF]IOREQ_PFN')
Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
---
When playing with the XEN_DMOP_get_ioreq_server_info sub-op, I noticed weir=
d
behavior where the hypercall returned success only the second time.
---
---
 xen/arch/x86/hvm/ioreq.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/x86/hvm/ioreq.c b/xen/arch/x86/hvm/ioreq.c
index ec709e5f47..4d30f2d730 100644
--- a/xen/arch/x86/hvm/ioreq.c
+++ b/xen/arch/x86/hvm/ioreq.c
@@ -63,7 +63,7 @@ static gfn_t hvm_alloc_legacy_ioreq_gfn(struct ioreq_serv=
er *s)
=20
     for ( i =3D HVM_PARAM_IOREQ_PFN; i <=3D HVM_PARAM_BUFIOREQ_PFN; i++ )
     {
-        if ( !test_and_clear_bit(i, &d->arch.hvm.ioreq_gfn.legacy_mask) )
+        if ( test_and_clear_bit(i, &d->arch.hvm.ioreq_gfn.legacy_mask) )
             return _gfn(d->arch.hvm.params[i]);
     }
=20
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 10:23:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 10:23:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083199.1442826 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umrbC-0005MA-00; Fri, 15 Aug 2025 10:23:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083199.1442826; Fri, 15 Aug 2025 10:23: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 1umrbB-0005M3-Tj; Fri, 15 Aug 2025 10:23:49 +0000
Received: by outflank-mailman (input) for mailman id 1083199;
 Fri, 15 Aug 2025 10:23:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6qfu=23=darkstar.site=sakib@srs-se1.protection.inumbo.net>)
 id 1umrbA-0005Lx-Nk
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 10:23:48 +0000
Received: from fforwardh-b1-smtp.messagingengine.com
 (fforwardh-b1-smtp.messagingengine.com [202.12.124.196])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e7e93a20-79c1-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 12:23:38 +0200 (CEST)
Received: from phl-compute-05.internal (phl-compute-05.internal [10.202.2.45])
 by mailfforwardh.stl.internal (Postfix) with ESMTP id B2E488403EB;
 Fri, 15 Aug 2025 06:23:36 -0400 (EDT)
Received: from phl-frontend-02 ([10.202.2.161])
 by phl-compute-05.internal (MEProxy); Fri, 15 Aug 2025 06:23:37 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 15 Aug 2025 06:23: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>
X-Inumbo-ID: e7e93a20-79c1-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	: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=
	1755253416; x=1755339816; bh=VfbWa6ZOG79mwYmoIlmwVOUp1+sEopcTEg9
	w8VoJEmc=; b=OnqWsMh6NvuuKf91HwEmSSlqqudiQZbMnh+7kjx7lwfVrxTeWex
	3xuoyNXdvR5CgbYfBHxCE0p8kOEhGEXAOGGvSs5n9eQlBqpbf0U9/NQ3porzv6pi
	KhCYszlJBlBaDr82KB1JFSZCfytpxmbOouX9lbPwpjsx9U0fKYAy6jyRmqVXdkcN
	H1gVMS1HYH0FgMXJO7S1OwJbaMZen/drLOJX2PXFKcCHBpF2b3BfESkv95h8xsdK
	4AhUfFNP7J4YX5Zg+sXlNr0VGAR8jewjqJI5ejq8Q6SFJtGr5uJtzejlpZd/c6vZ
	2p5UVG4AiGrnMfDuRPc0/OnwujV9tylEIAw==
X-ME-Sender: <xms:pwqfaLhE3YpBq7QzutrENiDxAC7hq5HnBLuOh8JCxkC0dutLPd9cgg>
    <xme:pwqfaHtUDl9_EG4L2wVDPPM6C3YZsSVTDIC-sJqMgP10d8_6Ec8pDI3qVEJy3b4mZ
    g6PPTyYM19tVVf9e04>
X-ME-Received: <xmr:pwqfaGsA3UbAMqa2b5eW7tkJWNBdvddmg0hGbZ1fGq7KpdQG7ZDhc0hNsoU>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgddugeefjeduucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhephffvvefufffkofgggfestdekredtredttdenucfhrhhomhepufgvrhhgihihucfm
    ihgsrhhikhcuoefuvghrghhihigpmfhisghrihhksegvphgrmhdrtghomheqnecuggftrf
    grthhtvghrnhepffffvdeifeeijefhheefuedvvedtheffjeeiveehgfettedvgedujefg
    udejgedvnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomh
    epshgrkhhisgesuggrrhhkshhtrghrrdhsihhtvgdpnhgspghrtghpthhtohepuddupdhm
    ohguvgepshhmthhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrd
    igvghnphhrohhjvggtthdrohhrghdprhgtphhtthhopehsvghrghhihigpkhhisghrihhk
    segvphgrmhdrtghomhdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghith
    hrihigrdgtohhmpdhrtghpthhtoheprghnthhhohhnhidrphgvrhgrrhgusehvrghtvghs
    rdhtvggthhdprhgtphhtthhopehmihgthhgrlhdrohhriigvlhesrghmugdrtghomhdprh
    gtphhtthhopehjsggvuhhlihgthhesshhushgvrdgtohhmpdhrtghpthhtohepjhhulhhi
    vghnseigvghnrdhorhhgpdhrtghpthhtoheprhhoghgvrhdrphgruhestghithhrihigrd
    gtohhmpdhrtghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhnvghlrdhorhhg
X-ME-Proxy: <xmx:pwqfaEGTa95tdu2ba6dGbwAPpjejCNgAGXKNcDSlRmxZddRu1TaGDA>
    <xmx:pwqfaJPr6m6DiRn2BeiT_VHt6hho6Gcxe446xUD1c6kEyVFO7wwahg>
    <xmx:pwqfaLJ6-776Qy-qSpcFLE-dVZjU-z6J5OlfcYWjOuhgJ7R9th9m3g>
    <xmx:pwqfaK-UmHbUzEsWORS-h2fHN_PFN-pnGJo3LS2myiAw5ro-C9ZiIQ>
    <xmx:pwqfaPHBMTDjGnZk6OL6A-BCUA0b5bCITd_9RndNJbrOfVDlArbixg>
    <xmx:qAqfaFqp1Zys_xPr8XEZWBV49nqUc6RRR_BfOpUmUm-jozDPLosFGs5jnrpT>
Feedback-ID: iff35298b:Fastmail
From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
To: xen-devel@lists.xenproject.org
Cc: Sergiy Kibrik <Sergiy_Kibrik@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Stefano Stabellini <stefano.stabellini@amd.com>
Subject: [RFC PATCH] xsm/flask: add AVC pre-allocation boot parameter
Date: Fri, 15 Aug 2025 13:23:30 +0300
Message-Id: <20250815102330.778749-1-Sergiy_Kibrik@epam.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

In the system configured for safety it may not be desirable to do guest-triggered
dynamic memory allocations at runtime, or allow changing memory layout by
adjusting AVC size after boot.
This patch introduces `avc_prealloc` boot parameter that enables allocation of
AVC nodes in advance so that no Xen heap allocations take place at runtime.

In case when pre-allocated cache is exhausted the reclaim of old nodes is
started, just as before, but no new node added to cache while cache is full.
AV is computed and returned to requester, but not cached during the reclaim.
So there's some performance penalty here.

Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
---
This RFC presents one possible way to hard limit the memory AVC can consume.
With current implementation of AV cache threshold reclaim of memory only starts
after threshold has been reached, and we only reclaim up to AVC_CACHE_RECLAIM=16
nodes at a time.
As allocation of new nodes is always allowed, in a hypothetical situation of
great AVC pressure when more then AVC_CACHE_RECLAIM new nodes are quickly
requested while reclaim is still in progress, it won't be possible to decrease
allocation below threshold.
Does this scenario make sense? Or is there a better way to address it? Thank you!

  -Sergiy
---
 docs/misc/xen-command-line.pandoc |  9 +++++++
 xen/xsm/flask/avc.c               | 44 ++++++++++++++++++++++++++-----
 xen/xsm/flask/flask_op.c          |  3 +++
 xen/xsm/flask/include/avc.h       |  2 ++
 4 files changed, 52 insertions(+), 6 deletions(-)

diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
index a75b6c9301..9044827e78 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -238,6 +238,15 @@ loops for Queued Invalidation completions.**
 Specify a maximum amount of available memory, to which Xen will clamp
 the e820 table.
 
+### avc_prealloc
+> `= <boolean>`
+
+> Default: `false`
+
+Allocate XSM Access Vector Cache at boot. This forbids runtime dynamic
+allocation of AVC nodes from Xen heap and changing AVC size via
+FLASK_SETAVC_THRESHOLD hypercall.
+
 ### badpage
 > `= List of [ <integer> | <integer>-<integer> ]`
 
diff --git a/xen/xsm/flask/avc.c b/xen/xsm/flask/avc.c
index 3d39e55cae..19e524fe35 100644
--- a/xen/xsm/flask/avc.c
+++ b/xen/xsm/flask/avc.c
@@ -21,6 +21,7 @@
 #include <xen/types.h>
 #include <xen/list.h>
 #include <xen/spinlock.h>
+#include <xen/param.h>
 #include <xen/prefetch.h>
 #include <xen/kernel.h>
 #include <xen/sched.h>
@@ -84,6 +85,7 @@ struct avc_cache {
     atomic_t        lru_hint;    /* LRU hint for reclaim scan */
     atomic_t        active_nodes;
     u32            latest_notif;    /* latest revocation notification */
+    struct hlist_head freelist;
 };
 
 /* Exported via Flask hypercall */
@@ -97,6 +99,9 @@ static struct avc_cache avc_cache;
 
 static DEFINE_RCU_READ_LOCK(avc_rcu_lock);
 
+bool __read_mostly opt_avc_prealloc = false;
+boolean_param("avc_prealloc", opt_avc_prealloc);
+
 static inline int avc_hash(u32 ssid, u32 tsid, u16 tclass)
 {
     return (ssid ^ (tsid<<2) ^ (tclass<<4)) & (AVC_CACHE_SLOTS - 1);
@@ -239,6 +244,16 @@ void __init avc_init(void)
     }
     atomic_set(&avc_cache.active_nodes, 0);
     atomic_set(&avc_cache.lru_hint, 0);
+    INIT_HLIST_HEAD(&avc_cache.freelist);
+    for ( i = 0; opt_avc_prealloc && i < avc_cache_threshold + 1; i++ )
+    {
+        struct avc_node *node = xzalloc(struct avc_node);
+        if ( !node )
+        {
+            break;
+        }
+        hlist_add_head(&node->list, &avc_cache.freelist);
+    }
 }
 
 int avc_get_hash_stats(struct xen_flask_hash_stats *arg)
@@ -280,7 +295,10 @@ int avc_get_hash_stats(struct xen_flask_hash_stats *arg)
 static void cf_check avc_node_free(struct rcu_head *rhead)
 {
     struct avc_node *node = container_of(rhead, struct avc_node, rhead);
-    xfree(node);
+    if ( opt_avc_prealloc )
+        hlist_add_head(&node->list, &avc_cache.freelist);
+    else
+        xfree(node);
     avc_cache_stats_incr(frees);
 }
 
@@ -293,7 +311,10 @@ static void avc_node_delete(struct avc_node *node)
 
 static void avc_node_kill(struct avc_node *node)
 {
-    xfree(node);
+    if ( opt_avc_prealloc )
+        hlist_add_head(&node->list, &avc_cache.freelist);
+    else
+        xfree(node);
     avc_cache_stats_incr(frees);
     atomic_dec(&avc_cache.active_nodes);
 }
@@ -344,11 +365,22 @@ static inline int avc_reclaim_node(void)
 
 static struct avc_node *avc_alloc_node(void)
 {
-    struct avc_node *node;
+    struct avc_node *node = NULL;
 
-    node = xzalloc(struct avc_node);
-    if (!node)
-        goto out;
+    if ( opt_avc_prealloc )
+    {
+        if ( hlist_empty(&avc_cache.freelist) )
+            goto out;
+
+        node = hlist_entry(avc_cache.freelist.first, struct avc_node, list);
+        hlist_del(&node->list);
+    }
+    else
+    {
+        node = xzalloc(struct avc_node);
+        if ( !node )
+            goto out;
+    }
 
     INIT_RCU_HEAD(&node->rhead);
     INIT_HLIST_NODE(&node->list);
diff --git a/xen/xsm/flask/flask_op.c b/xen/xsm/flask/flask_op.c
index ea7dd10dc8..5415a696a0 100644
--- a/xen/xsm/flask/flask_op.c
+++ b/xen/xsm/flask/flask_op.c
@@ -226,6 +226,9 @@ static int flask_security_setavc_threshold(
 {
     int rv = 0;
 
+    if ( opt_avc_prealloc )
+        return -EACCES;
+
     if ( arg->threshold != avc_cache_threshold )
     {
         rv = domain_has_security(current->domain, SECURITY__SETSECPARAM);
diff --git a/xen/xsm/flask/include/avc.h b/xen/xsm/flask/include/avc.h
index e29949f5a8..d6122f3dc9 100644
--- a/xen/xsm/flask/include/avc.h
+++ b/xen/xsm/flask/include/avc.h
@@ -95,6 +95,8 @@ int avc_has_perm(u32 ssid, u32 tsid, u16 tclass, u32 requested,
 struct xen_flask_hash_stats;
 int avc_get_hash_stats(struct xen_flask_hash_stats *arg);
 extern unsigned int avc_cache_threshold;
+/* pre-allocate AVC at boot and forbid SETAVC_THRESHOLD flask_op */
+extern bool opt_avc_prealloc;
 
 #ifdef CONFIG_XSM_FLASK_AVC_STATS
 DECLARE_PER_CPU(struct avc_cache_stats, avc_cache_stats);
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 10:26:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 10:26:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083206.1442836 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umrdF-0005tH-BM; Fri, 15 Aug 2025 10:25:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083206.1442836; Fri, 15 Aug 2025 10:25:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umrdF-0005tA-8f; Fri, 15 Aug 2025 10:25:57 +0000
Received: by outflank-mailman (input) for mailman id 1083206;
 Fri, 15 Aug 2025 10:25:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5DW6=23=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umrdE-0005t4-4u
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 10:25:56 +0000
Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com
 [2a00:1450:4864:20::533])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 39607ade-79c2-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 12:25:54 +0200 (CEST)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-6188b7532f3so3007947a12.2
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 03:25: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
 4fb4d7f45d1cf-618b02b11bbsm1190330a12.53.2025.08.15.03.25.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Aug 2025 03:25:53 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 39607ade-79c2-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755253554; x=1755858354; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=LdAvir8I9FSVLQne7J5E45Yzfg6yU0NAhlJ7ukyQ0Lo=;
        b=NFKh0w8ARaWpvKDyJwJgjiJ41iU22S7x0TzYln/XUlmkuHapneNfKJjMvR9oFNL7Ik
         Ka6zlHcJqzDWflr0ikuqhW+IWRfe06EvdLRK1JNYMLD7uH3/nR8Vmqdzt4WkxcLfTTS0
         Le9yzCPC0VnX6gcCURdXByKGxdIFCzLvOd2OL46wkFLue5/mbvQROHPUy/5shL4r5QJe
         jFIs+NxjTNvGNivhsp8yHuoZQLsSfThTaKMss8RwhrThoxvf7hzmUQvwHXKo6wcWuH8Q
         YRBIuGK5vmc0xtC6Ay6o0/IBVrL766KdcctqE5jIjI7EuLC8rZCcr0zYtHHqutRVgLei
         DRYw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755253554; x=1755858354;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=LdAvir8I9FSVLQne7J5E45Yzfg6yU0NAhlJ7ukyQ0Lo=;
        b=GTb03lCNKzjq5LtOwgX2P4njhbrq32rg+UDm7lFcvZrOsXyzKst8BqwjhGw4W4aYWm
         et6nmgXOk7m75hv4rGyzuiioYHd7wwxubAzdWw8qP0mBJQgHsXNgsvVNgeD+qNR7rbDm
         /+Y0oMivBIo9bSWpQa1WGA2Gv73NxYvaYEkX9BWsYW5t4UE1eQs+9ENOb87hwrqr7CWA
         RW3R303XHjCDTFsnK3qTScAIZKqAlV+5DvZFTNT9w3V2S45NgJPr35Lct44R0UyipcJ9
         /z5Lauw+x4X19pEf4tlYfFOUhCVL4+l6lcotmLMoxI2aN2kgTBjV3CX8hgb5QR9EV+CD
         gJ+Q==
X-Gm-Message-State: AOJu0YwvqRvHGiRZBn2yBLPYhqrXhzwIglqlFWMVJyJfPYwSsOcJF1y7
	SYvbgFIFgJC3+kHawm5IB96ykUMlTYzwf2B0c92LdGGQ0jfaLhxC5tagTv8cQri2sw==
X-Gm-Gg: ASbGncuh6RNXJPeKKwngOA7vUeby3xZoeEXMu4ie1yEIP8Va2EQdicGNOKBfb59YnLd
	ObZvBUI6nVaddrTQHjoz64b8XsQ7ZALg/l+3G1t+NuXBMYzK04QORslZGV0C4cSdfEb2GvX8qEQ
	emUZ0xAinWAeOgx+R0gjyuhgv/rzVToR5auy+HsgnX8kzw5fdtSA/M4XGvZuv3B1g+FNSMl24kT
	KcF1aXo2JuQWCSB4tO1Hwr5zGG/3uaJZWcY/y9f8NNl3YUYCpGvVwW5weyOYSeZnQoMRojrlkkE
	/66mcujHBB/rBweizuXeqHMNC7xoltLI1csG0UkWxrWSNICmk9OAicdwtXtCHi32V8E+gVL+owF
	zxFvEchZ8xhsMlBMrhw+lRD+tvYVOWQ2vrQ+CH9kKe+TDjtqcVmp3vSY3JIbH+TEveMyRykAJ3e
	npjpJrLSc=
X-Google-Smtp-Source: AGHT+IEeMfYPzEylAQy/x6LbE0KEgoBcx3lK3YWUvQOxpoujYgOjiOBqRvlTlJ1J8g9zpcxD3pFFDA==
X-Received: by 2002:a05:6402:2811:b0:615:957f:416b with SMTP id 4fb4d7f45d1cf-618b0502bf8mr1244024a12.6.1755253553788;
        Fri, 15 Aug 2025 03:25:53 -0700 (PDT)
Message-ID: <5ff1e337-9ec5-466b-b21f-cf29274b007b@suse.com>
Date: Fri, 15 Aug 2025 12:25:52 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen: Use auto as per C23
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Roberto Bagnara <roberto.bagnara@bugseng.com>,
 "consulting @ bugseng . com" <consulting@bugseng.com>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>
References: <20250814222524.2638883-1-andrew.cooper3@citrix.com>
 <3056ed85948288639110e3cdd6b28c6e@bugseng.com>
 <f3ff5b2d-8077-4591-bf1f-bd658d705242@citrix.com>
 <7fc93aeef27153f1d6caa786bd44420f@bugseng.com>
 <caf19e2b-046e-495f-b425-9cb3a0053006@suse.com>
 <bd3f9c28-aaf4-479d-b56e-48838442f7a3@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: <bd3f9c28-aaf4-479d-b56e-48838442f7a3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15.08.2025 11:51, Andrew Cooper wrote:
> On 15/08/2025 10:36 am, Jan Beulich wrote:
>> On 15.08.2025 10:33, Nicola Vetrini wrote:
>>> On 2025-08-15 10:17, Andrew Cooper wrote:
>>>> On 15/08/2025 8:20 am, Nicola Vetrini wrote:
>>>>> On 2025-08-15 00:25, Andrew Cooper wrote:
>>>>>> In macros it is common to declare local variables using typeof(param)
>>>>>> in order
>>>>>> to ensure that side effects are only evaluated once.Â  A consequence
>>>>>> of this is
>>>>>> double textural expansion of the parameter, which can get out of hand
>>>>>> very
>>>>>> quickly with nested macros.
>>>>>>
>>>>>> In C23, the auto keyword has been repurposed to perform type 
>>>>>> inference.
>>>>>>
>>>>>> A GCC extension, __auto_type, is now avaialble in the new toolchain
>>>>>> baseline
>>>>>> and avoids the double textural expansion.
>>>>>>
>>>>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>>>> Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
>>>> Thankyou.
>>>>
>>>>>> diff --git a/xen/include/xen/compiler.h b/xen/include/xen/compiler.h
>>>>>> index 88bf26bc5109..38ef5d82ad95 100644
>>>>>> --- a/xen/include/xen/compiler.h
>>>>>> +++ b/xen/include/xen/compiler.h
>>>>>> @@ -64,6 +64,20 @@
>>>>>> Â # define asm_inline asm
>>>>>> Â #endif
>>>>>>
>>>>>> +/*
>>>>>> + * In C23, the auto keyword has been repurposed to perform type
>>>>>> inference.
>>>>>> + *
>>>>>> + * This behaviour is available via the __auto_type extension in
>>>>>> supported
>>>>>> + * toolchains.
>>>>>> + *
>>>>>> + *
>>>>>> https://www.gnu.org/software/c-intro-and-ref/manual/html_node/Auto-Type.html
>>>>>> + * https://clang.llvm.org/docs/LanguageExtensions.html#auto-type
>>>>>> + */
>>>>>> +#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 202311L
>>>>>> +/* SAF-3-safe MISRA C Rule 20.4: Giving the keyword it's C23
>>>>>> meaning. */
>>>>>> +#define auto __auto_type
>>>>>> +#endif
>>>>>> +
>>>>> A more detailed explanation should live in deviations.rst under this
>>>>> bullet point
>>>>>
>>>>> Â Â  * - R20.4
>>>>> Â Â Â Â  - The override of the keyword \"inline\" in xen/compiler.h is
>>>>> present so
>>>>> Â Â Â Â Â Â  that section contents checks pass when the compiler chooses not 
>>>>> to
>>>>> Â Â Â Â Â Â  inline a particular function.
>>>>> Â Â Â Â  - Comment-based deviation.
>>>>>
>>>>> as described in the SAF entry:
>>>>>
>>>>> Â Â Â Â Â Â Â  {
>>>>> Â Â Â Â Â Â Â Â Â Â Â  "id": "SAF-3-safe",
>>>>> Â Â Â Â Â Â Â Â Â Â Â  "analyser": {
>>>>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "eclair": "MC3A2.R20.4"
>>>>> Â Â Â Â Â Â Â Â Â Â Â  },
>>>>> Â Â Â Â Â Â Â Â Â Â Â  "name": "MC3A2.R20.4: allow the definition of a macro with
>>>>> the same name as a keyword in some special cases",
>>>>> Â Â Â Â Â Â Â Â Â Â Â  "text": "The definition of a macro with the same name as a
>>>>> keyword can be useful in certain configurations to improve the
>>>>> guarantees that can be provided by Xen. See docs/misra/deviations.rst
>>>>> for a precise rationale for all such cases."
>>>>> Â Â Â Â Â Â Â  },
>>>> Ah right.Â  What about this:
>>>>
>>>> "Xen does not use the \"auto\" keyword as a storage qualifier.Â  The
>>>> override of the keyword \"auto\" in xen/compiler.h is to give it it's
>>>> C23 behaviour of type inference."
>>>>
>>>> ?
>>> Seems good to me. Maybe this should be spelled out in ./CODING_STYLE as 
>>> well, so that newcomers don't trip over this?
>> I'm not sure newcomers would look there, but in the absence of any better
>> place that's perhaps indeed where to mention this.
> 
> How about this:
> 
> diff --git a/CODING_STYLE b/CODING_STYLE
> index 7bf3848444ad..e33b9d1170cf 100644
> --- a/CODING_STYLE
> +++ b/CODING_STYLE
> @@ -129,6 +129,10 @@ Fixed width types should only be used when a fixed width quantity is
> Â meant (which for example may be a value read from or to be written to a
> Â register).
> Â 
> +Macros which otherwise would use "typeof(arg) newarg =" to avoid double
> +evaluation of side effects should use "auto newarg =" per it's C23 behaviour,
> +to also avoid double textural expansion.
> +
> Â Especially with pointer types, whenever the pointed to object is not
> Â (supposed to be) modified, qualify the pointed to type with "const".

That doesn't focus on the pitfall though, in that people shouldn't be using
the "auto" keyword (except in said cases).

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 10:26:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 10:26:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083218.1442846 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umrdq-0006QG-Ml; Fri, 15 Aug 2025 10:26:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083218.1442846; Fri, 15 Aug 2025 10:26: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 1umrdq-0006Q9-Jn; Fri, 15 Aug 2025 10:26:34 +0000
Received: by outflank-mailman (input) for mailman id 1083218;
 Fri, 15 Aug 2025 10:26:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=X6Ka=23=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1umrdp-00069F-4R
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 10:26:33 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20622.outbound.protection.outlook.com
 [2a01:111:f403:2412::622])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4e4e28ab-79c2-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 12:26:30 +0200 (CEST)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 IA0PR12MB8205.namprd12.prod.outlook.com (2603:10b6:208:400::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.18; Fri, 15 Aug
 2025 10:26:25 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d%7]) with mapi id 15.20.9031.018; Fri, 15 Aug 2025
 10:26: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>
X-Inumbo-ID: 4e4e28ab-79c2-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ASaxq9Wl6/wZUhHux0lNkAYuZ34xIqXgoF7LceMdrQ2HRK2roZSVhDxF+f03gK6zuOjBR2nOy+1nLmWCKQUfuEViIJUuob1dL8jJYYt0WTnRo7+CINIxqepIO0Lrygl50SpZSuoWa+AVbcck+pSPZwzXosGSrtXCOfkVfS+fdtTIKwaK6xC5uwFze2WbgNCcXb5sQAH2AC+FBiba1/p8/P+2yzErjswFFQp9HJCHQkLuS2ZKLOlf9dqVC/2ciT420+i4E/CWMtxIUhiBLBHfP710x9qmmzjvwJ6DK93jyY3hutoIpe6IGYwDHxo2HwDT7NA4booZCwpilLdYmgRkwg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Aq58ZRNJZvGKoX52oub8t7ukTUrSA/AVvQtJz1xA3Ag=;
 b=jqEDGwl4adwlpZMVg2aSmEV+YWWmrO3kU8ix30iwV6eDIpZvTdckuTWDr0SCgWVle5oobW+x2ghEz42+hgt49JsApEesWwDcNPcC+03T47nXIdYVPReL2EOd6RFM464AlpFqnsWufqoFGAQtod5OG/IDaum1LJE20FqVUwoSQYfW6x7vLQbQj4+ym/bhosYOSS8mgEHvl+u1BqOblm2WwKE9F2o8vvWrnrS4/kJQ3PIM8rraUBriuzqOlX7oXRvBibfi5cl83bT8QBSsKisV5iBgYUnvVtqheBaOr+vDmTlqbecZrgfRVliJ9M3X/gC6VnJsFfz4qGETmPG/KLVm6g==
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=Aq58ZRNJZvGKoX52oub8t7ukTUrSA/AVvQtJz1xA3Ag=;
 b=c8g/wy/6Gpi1+q0a6WL4+m1v8OkRPoYsYuUcEC1ENl+GSDbeEvJFTTE87y3q4CbC1YWm4/xVPpGKy6pTK5vHHzDz+K7k0ccYvXmRiYM3brTxDFkjf2bVJcmbMjSUJTxEjuqjt4ji7RmKw3aq2hZn9YZxIjq/TPLPTSNHtprbZus=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>, Stefano Stabellini
	<sstabellini@kernel.org>
CC: "Huang, Ray" <Ray.Huang@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Orzel,
 Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v1 01/25] xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE
Thread-Topic: [PATCH v1 01/25] xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE
Thread-Index:
 AQHcBFu8ZJDiUyPinUSx+WVIYPWedrRSHgaAgAAiBnCAAW81gIAPKleAgACWNgCAAB1FUA==
Date: Fri, 15 Aug 2025 10:26:25 +0000
Message-ID:
 <DM4PR12MB8451846A825A3EEDA400690CE134A@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20250803094738.3625269-1-Penny.Zheng@amd.com>
 <20250803094738.3625269-2-Penny.Zheng@amd.com>
 <371bc812-acdb-41ef-950b-3c9e5feea48e@suse.com>
 <DM4PR12MB84510F1F89641B672916C055E122A@DM4PR12MB8451.namprd12.prod.outlook.com>
 <3e20688c-c125-4aa4-bc06-1fe634550f70@suse.com>
 <alpine.DEB.2.22.394.2508141604510.10166@ubuntu-linux-20-04-desktop>
 <de30aca2-1840-473b-8995-fd58f2447c44@suse.com>
In-Reply-To: <de30aca2-1840-473b-8995-fd58f2447c44@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-08-15T09:56:48.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|IA0PR12MB8205:EE_
x-ms-office365-filtering-correlation-id: 2899e091-0aad-4997-3a11-08dddbe6304a
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|13003099007|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?SGdZQnZGQlRWbW1QaGVjaGRHS2tYa2lEemgxaHhYamV6YmxsSC9wdmtBVCts?=
 =?utf-8?B?VXpoTFRNMXFoTkx1blNHR2lxa0ZYSVRjSmJTYjl2bC9nTUxBc3hDVk1wK2Q5?=
 =?utf-8?B?dUJFUEFsZEFRcW85Ykc2UC90L0JyZWRrRVpaVSs3V3RJRngyOVNpMGtiK3Ar?=
 =?utf-8?B?UlJzcldhd0RIdTBDY2VxbmlDaUhkdkx2NWJOZGlWbnNSOWdnNXphMjZGQzBn?=
 =?utf-8?B?d3RrQkxwVUYwcFFXaFdsNm9ZTWZMT2xQZk0zNHA5NHNsbUN6anlBenhJY3JN?=
 =?utf-8?B?dW5JRm1ITWg3N3JqcllTZGdDN2hvTGRnR2wvWXlGamlZRExmWDA5Mjh4eUht?=
 =?utf-8?B?OXlFalJoT3A4SGNzMEM2WVd2WXdKMnlUVGRscVh4Zm5HTkhlYzJBYXFmdFFu?=
 =?utf-8?B?VngrMElVenpEcWhnZEpMV0diKzN2NmQ4dGZBSm14VVVXVUpUTHRGTWFDSi9l?=
 =?utf-8?B?USt4dWd3djZheUwwc3RqZ0pLeHNvZEwxa3hobW5FbDJXVzBYd3cvU2h4bWsw?=
 =?utf-8?B?VEwwS25GSlUwUE9MUDgvN3JWUVhrQWtlUzVQY1ZUQ0V5K2N1VVFpNmRta2hF?=
 =?utf-8?B?YnprekZWQXlBN3FoOFZ1c0t6dDRHWHMyOU4xY0hBQi9FTW5tRGhrOFkyTlN5?=
 =?utf-8?B?T3NYbFR3RnBROGQwQ2NEc1lBcVJDK1J0c09yNkR5MUxEVFBTZWZPSTkzeHVC?=
 =?utf-8?B?ODRCdldRYVM4aDlmcWdCVmR5UDZaWTRyU3M2SnA3anFkMmwxenV1SGRNdGVX?=
 =?utf-8?B?aFZ2ajJyUGIzUUZDQy8yWlJmSnA0aSsvVzJPU242eDJDeUVtNitZNEFQWU4w?=
 =?utf-8?B?RHY3dlVmZTlEVUZ4R0lveUJnNFY0R1p2VEREaWFLa000bXova3JmUExDM0NX?=
 =?utf-8?B?OFVwamErRjdvQ01CV2lxa1FLL3lmaG5nWllSRXBqV1pNZzdqRFFQMC8zNjhR?=
 =?utf-8?B?eUhuUS9SbjZsWncrcE5WN3dNSGxRLzQxREtCRlV1c1dwOHNobVJlZE5MUDJ1?=
 =?utf-8?B?WWxESGU2azMxdDdWUUMzRDkwOHNnLzJoMFk4YkpYbVJKYzNEY0MveFdSNDQw?=
 =?utf-8?B?WmQxYm9qSERqWnAxd1UrTGxsQ2xYMjI4R3NyUkpDbzFtMU52SUo0L0hSWXJG?=
 =?utf-8?B?Q3Nlb1QyTDN0ekd5KzZ1Tyt6M3RKcFlCOVdUQjVJclJSNGdNUXdBTnNZanJa?=
 =?utf-8?B?VVdNV3FyQWg0eDRZdTdiRG1GOGg0d2w0MWIzTGFOVHYyaUw0VDVzM0MxS3lm?=
 =?utf-8?B?RW9TeUxSOFIyY2U3TnFRbk93OGRhMlVURjkzeGhUZlZRSStHVUhiUng4YVhO?=
 =?utf-8?B?RVE3WGEwK0ZheXVSVDY2TDRKSmtvWXdtekM3ZFhlMUg0TGpXQzB6NDZOUm80?=
 =?utf-8?B?ZW9OWk9Rb01vQkpRR0Rqd2ozWjdxWjFveEw4aXI2UEt2ME5xUXVGZTdKWkNO?=
 =?utf-8?B?MzdCVThKZi9jUXJDUHBGZFZXb0xTK2pXWDlUNG5QSW1RUkcreEdaVmNnL3B4?=
 =?utf-8?B?VkZYdEFycnNyVzZBZ215TjNhTm1Pd0NPVXRQZE5kckxVUjcvYTg0dEV0Znpn?=
 =?utf-8?B?TVRMSlh2SkxBSDN1RXNuNjRiUEgrQmJjbUphYmZkQkdwWngzV3NQdWZMRk85?=
 =?utf-8?B?aHRFcm54UHVOYytYMzFWOC9RNTM3UWdEcjJ0U0N4OFlDOHVuc0FSTkVCSENr?=
 =?utf-8?B?dVZTRXhGN01oaytMcVByazFETU9zdTlvWEQxSXhzVWRxb0NsMkU5b0FzNHlY?=
 =?utf-8?B?WG5WMyt5bnh0dVpna2pGUUxpdVJiMy9KWkNJWlFKVFJTR1IyOFVRTnViNVhl?=
 =?utf-8?B?aEx0WUNsV2d2RllkeEZOM05SeUhEM0dFZ21sU0pwSjk5VEFrM0xTYVdRa2x6?=
 =?utf-8?B?b3pPd05OKzU5RmtEVlFGSmZNSmU4SCsyQjFEZCtzWTJHZGFobDR6aXZCS3cy?=
 =?utf-8?Q?4C8uUUSwNuQ=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(13003099007)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?OXZtMm5rTUNDclBRckNwcUFOb1hMM1F3VHlEZyt2WkdDTnp6WTFJdTUrMzVF?=
 =?utf-8?B?d3VmbFltQ1FsZG83REFyNWEveWNPZDB0SkMzazd4cUdaSmpKcGh0ZHlmeENh?=
 =?utf-8?B?YUhLN1NLU0RUbSt2b0l3TGh3RGFCUnVRVGpJT09jY2JHRlZ0dDFqeTllc084?=
 =?utf-8?B?SVNTbzc2dXp0KzFXSDZYa0RuNmw3d1hLUUNXdXJ5QXVtbTkwRjViR01hRDQ2?=
 =?utf-8?B?WmtFRUZUV3FXUGpadS9OWFNpOU9hR3hkV3pjL1I3VjQ5bDVqUE1FblZRczBp?=
 =?utf-8?B?d0pIc3N3a0s3NUhOd3lnVDR2ckRTWjVxNUZidDgvcWdKU3gvSEZlSFpwaVhW?=
 =?utf-8?B?b2wyQlhMT1Njc0FGdmJreUJZaUhZcFU1VXZSMnJxVDRpc2Rha2Fod21nU0tV?=
 =?utf-8?B?QUROZ3VLL1dlVVoxcCtGcFlBVkJVSmNUZVgyWHZKY29uaVd5SzQwdTUwUUds?=
 =?utf-8?B?ZU8reEdrY0M0YmxManlXaHppNHBNU29uc3JvVnVYcnFRU2V0ak4wZDFGMlJa?=
 =?utf-8?B?NXkvTDAwVGVTZTVKd3ZYOU9JWHJ2MWFDVnQ2dTVQSmxwdVRIZjJOMVpMeXBI?=
 =?utf-8?B?N0dXVGZsWklNVnpPNWhNV1h1ZzdRV053bjNRNU5lTHJ4VFUvQ2gxcDFxTXQz?=
 =?utf-8?B?UmduS1FkR1dpaVVSTXhOdEJVTjFPQzFReTdWN3NaSWtBQVdIZm05VE4xTHVQ?=
 =?utf-8?B?K0xvTDNMV3NsVmhXZnFSVmNLcCtNVS94S3pUNWt6aDg3UU9ubVl6WHVJNHQr?=
 =?utf-8?B?NXdyODdyZmM2Zm81eWFWTGprZUg5YUlsSHRlQncyNnBrTmE3dXR3VFg0S0xJ?=
 =?utf-8?B?YmdOWjQ4WkNNclB3QUwyNkJOZkZjZTRWK1JKYlQ5eDg3N3RhNVpURGpLanpy?=
 =?utf-8?B?algySzZMUVpBUnNSREtRcWxTcFd0WTNjenNrYms4b3A1eUpYdFdrYVNJYlpV?=
 =?utf-8?B?Ymt4emRFeFZ6dERPckt0cFVQUHhudG14K2tSYkxmVkRRR0RLQ1dOOU5mTTUr?=
 =?utf-8?B?UTl5Ni9OVW9Ka2lsNzVqLzdpMnh4VGZURDRwdCsvektWQ2dZQlRYTjhZSkw5?=
 =?utf-8?B?RWlDVmt1WDBmVUlTZG5rOXZweVJYMnFkaS95Q2l2aHFGa2JYaFd4T1RrdC91?=
 =?utf-8?B?N3J6UkMzQ05tY1RyV0dabTRFS2drUjhvM1ZBWEd4SUxtWDZBMHJyZ1A3eXF5?=
 =?utf-8?B?RGNjTzBZNEdsUzVNTkQ1UlU1aFdHQzdrank0ME5hb3VTWkN3U2pYaFNPSDlW?=
 =?utf-8?B?VjRhWFRQcytsV0pkam1IUUJvYzNHOEpmSGR5S1JwWDZ3Qk9XNnZHbDZTUlZR?=
 =?utf-8?B?V1IyTDFVUFltem9RTjR0UURES3F6a2NPaEp1M2tzZ05zWXE1dmxpK0lzVHIz?=
 =?utf-8?B?Zmp1RXRkcUR5RDdzeE9OdmpxTU1NTVhEWERVVGN3d2FTTkxrdENRc08xekJm?=
 =?utf-8?B?ZjhncWRPMmo4TFM3TXR4L3J6UzdhRmt5bjREOVNFQXVtUHd3U3pHUEwyM005?=
 =?utf-8?B?OGhvZDlMT2s3akE1c1NqMFBkZmNaRXYxOEd2VnNwNCthOUw0bGZqY2hVS2xu?=
 =?utf-8?B?ODBmNmVPcUI2amVCeVZCMmxqMXlSR1U2T2wvTnhaNDNIdTN2byt4bWIwQ1lR?=
 =?utf-8?B?UGtEVXhUb0lic1FuQnFmYy9NNlN5TUxoL0RKdzdFc3dsYVFzN3NodU9WMXl3?=
 =?utf-8?B?cjMvOFFZWTFUTVlWbytBVUVTdk50aDdlb0Zzclg4eGxDcnlIZkdWUkoxS2Zw?=
 =?utf-8?B?UWdTZUVsK05XUXFycDFqQWtZK0hxNi8wZ1VNSDIzV0tKbXZiZnFlKy9pUHlM?=
 =?utf-8?B?V2RUenNvVmRzUlVWV2p4M1hXTlRicU16STBqL01manJhMlVFaG1jV3FPY1g0?=
 =?utf-8?B?UllwMlZKVlRiVkFjSW95NmpWOEM5UkVoOFp4RWRqVDUzT0lkaWxENk8vcDda?=
 =?utf-8?B?SWtMMHZiOXJQbnB1Rk5KSW5FdW0xL3BUd1dJbFF5U2tmUE5GL0Z6U1dlNWV6?=
 =?utf-8?B?bXZaLzdzN1k2ME1Pekd3aGpiN1N0WGxzVjhDNHU4TDdMQnVFV2wvdWI4S1Q3?=
 =?utf-8?B?V1ZkZUovb0h2SzFWT1J4bTd6RS9iMnBTK1ZSaGZJSDFITXlGYkJ0VjhUaWdx?=
 =?utf-8?Q?BSys=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2899e091-0aad-4997-3a11-08dddbe6304a
X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Aug 2025 10:26:25.5423
 (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: D77mvVM3OBqAFftP0yB929A5mVM3aHFWSz41O1bYtN9g6z9kzBN2AEXABJmpjtU6M/8sgjNa5AolWel26ligAQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB8205

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IEZyaWRheSwgQXVndXN0IDE1LCAyMDI1
IDQ6MTIgUE0NCj4gVG86IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9y
Zz4NCj4gQ2M6IFBlbm55LCBaaGVuZyA8cGVubnkuemhlbmdAYW1kLmNvbT47IEh1YW5nLCBSYXkN
Cj4gPFJheS5IdWFuZ0BhbWQuY29tPjsgQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0
cml4LmNvbT47IFJvZ2VyDQo+IFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPjsgQW50
aG9ueSBQRVJBUkQNCj4gPGFudGhvbnkucGVyYXJkQHZhdGVzLnRlY2g+OyBPcnplbCwgTWljaGFs
IDxNaWNoYWwuT3J6ZWxAYW1kLmNvbT47IEp1bGllbg0KPiBHcmFsbCA8anVsaWVuQHhlbi5vcmc+
OyB4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gU3ViamVjdDogUmU6IFtQQVRDSCB2
MSAwMS8yNV0geGVuL3g4NjogbW92ZSBkb21jdGwubyBvdXQgb2YNCj4gUFZfU0hJTV9FWENMVVNJ
VkUNCj4NCj4gT24gMTUuMDguMjAyNSAwMToxNCwgU3RlZmFubyBTdGFiZWxsaW5pIHdyb3RlOg0K
PiA+IE9uIFR1ZSwgNSBBdWcgMjAyNSwgSmFuIEJldWxpY2ggd3JvdGU6DQo+ID4+IE9uIDA1LjA4
LjIwMjUgMDU6MzgsIFBlbm55LCBaaGVuZyB3cm90ZToNCj4gPj4+IFtQdWJsaWNdDQo+ID4+Pg0K
PiA+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+Pj4gRnJvbTogSmFuIEJldWxp
Y2ggPGpiZXVsaWNoQHN1c2UuY29tPg0KPiA+Pj4+IFNlbnQ6IE1vbmRheSwgQXVndXN0IDQsIDIw
MjUgMzo0MyBQTQ0KPiA+Pj4+IFRvOiBQZW5ueSwgWmhlbmcgPHBlbm55LnpoZW5nQGFtZC5jb20+
DQo+ID4+Pj4gQ2M6IEh1YW5nLCBSYXkgPFJheS5IdWFuZ0BhbWQuY29tPjsgQW5kcmV3IENvb3Bl
cg0KPiA+Pj4+IDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPjsgUm9nZXIgUGF1IE1vbm7DqQ0K
PiA+Pj4+IDxyb2dlci5wYXVAY2l0cml4LmNvbT47IEFudGhvbnkgUEVSQVJEIDxhbnRob255LnBl
cmFyZEB2YXRlcy50ZWNoPjsNCj4gPj4+PiBPcnplbCwgTWljaGFsIDxNaWNoYWwuT3J6ZWxAYW1k
LmNvbT47IEp1bGllbiBHcmFsbA0KPiA+Pj4+IDxqdWxpZW5AeGVuLm9yZz47IFN0ZWZhbm8gU3Rh
YmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz47DQo+ID4+Pj4geGVuLWRldmVsQGxpc3Rz
LnhlbnByb2plY3Qub3JnDQo+ID4+Pj4gU3ViamVjdDogUmU6IFtQQVRDSCB2MSAwMS8yNV0geGVu
L3g4NjogbW92ZSBkb21jdGwubyBvdXQgb2YNCj4gPj4+PiBQVl9TSElNX0VYQ0xVU0lWRQ0KPiA+
Pj4+DQo+ID4+Pj4gT24gMDMuMDguMjAyNSAxMTo0NywgUGVubnkgWmhlbmcgd3JvdGU6DQo+ID4+
Pj4+IEluIG9yZGVyIHRvIGZpeCBDSSBlcnJvciBvZiBhIHJhbmRjb25maWcgcGlja2luZyBib3Ro
DQo+ID4+Pj4+IFBWX1NISU1fRVhDTFVTSVZFPXkgYW5kIEhWTT15IHJlc3VsdHMgaW4gaHZtLmMg
YmVpbmcgYnVpbHQsIGJ1dA0KPiA+Pj4+PiBkb21jdGwuYyBub3QgYmVpbmcgYnVpbHQsIHdoaWNo
IGxlYXZlcyBhIGZldyBmdW5jdGlvbnMsIGxpa2UNCj4gPj4+Pj4gZG9tY3RsX2xvY2tfYWNxdWly
ZS9yZWxlYXNlKCkgdW5kZWZpbmVkLCBjYXVzaW5nIGxpbmtpbmcgdG8gZmFpbC4NCj4gPj4+Pj4g
VG8gZml4IHRoYXQsIHdlIGludGVuZCB0byBtb3ZlIGRvbWN0bC5vIG91dCBvZiB0aGUNCj4gPj4+
Pj4gUFZfU0hJTV9FWENMVVNJVkUgTWFrZWZpbGUgL2h5cGVyY2FsbC1kZWZzIHNlY3Rpb24sIHdp
dGggdGhpcw0KPiA+Pj4+PiBhZGp1c3RtZW50LCB3ZSBhbHNvIG5lZWQgdG8gcmVsZWFzZSByZWR1
bmRhbnQgdm51bWFfZGVzdHJveSgpIHN0dWINCj4gPj4+Pj4gZGVmaW5pdGlvbiBhbmQgcGFnaW5n
X2RvbWN0bCBoeXBlcmNhbGwtZGVmcyBmcm9tIFBWX1NISU1fRVhDTFVTSVZFDQo+ID4+Pj4+IGd1
YXJkaWFuLCB0byBub3QgYnJlYWsgY29tcGlsYXRpb24gQWJvdmUgY2hhbmdlIHdpbGwgbGVhdmUg
ZGVhZA0KPiA+Pj4+PiBjb2RlIGluIHRoZSBzaGltIGJpbmFyeSB0ZW1wb3JhcmlseSBhbmQgd2ls
bCBiZSBmaXhlZCB3aXRoIHRoZSBpbnRyb2R1Y3Rpb24gb2YNCj4gQ09ORklHX0RPTUNUTC4NCj4g
Pj4+Pj4NCj4gPj4+Pj4gRml4ZXM6IDU2OGY4MDZjYmE0YyAoInhlbi94ODY6IHJlbW92ZSAiZGVw
ZW5kcyBvbg0KPiA+Pj4+PiAhUFZfU0hJTV9FWENMVVNJVkUiIikNCj4gPj4+Pj4gUmVwb3J0ZWQt
Ynk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4NCj4gPj4+Pj4gU2lnbmVkLW9mZi1i
eTogUGVubnkgWmhlbmcgPFBlbm55LlpoZW5nQGFtZC5jb20+DQo+ID4+Pj4+IC0tLQ0KPiA+Pj4+
PiB2MSAtPiB2MjoNCj4gPj4+Pj4gLSByZW1vdmUgcGFnaW5nX2RvbWN0bCBoeXBlcmNhbGwtZGVm
cw0KPiA+Pj4+DQo+ID4+Pj4gQW5kIHlvdSd2ZSBydW4gdGhpcyB0aHJvdWdoIGEgZnVsbCByb3Vu
ZCBvZiB0ZXN0aW5nIHRoaXMgdGltZSwgaW4gaXNvbGF0aW9uPw0KPiA+Pj4NCj4gPj4+IFRoaXMg
Y29tbWl0IHNoYWxsIGJlIGNvbW1pdHRlZCB0b2dldGhlciB3aXRoICJ4ZW4veDg2OiBjb21wbGVt
ZW50DQo+IFBHX2xvZ19kaXJ0eSB3cmFwcGluZyIsIChJJ3ZlIGFkZGVkIGluIGNoYW5nZSBsb2cs
IGlkayB3aHkgaXQgZGlkbid0IGdldCBkZWxpdmVyZWQgaW4NCj4gdGhlIG1haWwgbGlzdCBpbiB0
aGUgbGFzdCkuDQo+ID4+DQo+ID4+IEFuZCAiY29tbWl0dGVkIHRvZ2V0aGVyIiBzdGlsbCBtZWFu
cyB0aGUgdHdvIGF0IGxlYXN0IGJ1aWxkIG9rYXkNCj4gPj4gaW5kZXBlbmRlbnRseSAoaS5lLiBh
bGxvd2luZyB0aGUgYnVpbGQtZWFjaC1jb21taXQgam9iIHRvIHN1Y2NlZWQpPw0KPiA+Pg0KPiA+
PiBBcyB0byB0aGUgbWlzc2luZyBpbmRpY2F0aW9uIHRoZXJlb2YgaW4gdGhlIHN1Ym1pc3Npb246
IFBhdGNoIDAxIGhhcw0KPiA+PiBhIHJldmxvZywgc28gaWYgYW55dGhpbmcgd2FzIG1pc3Npbmcg
dGhlcmUgeW91IG11c3QgaGF2ZSBhZGRlZCBpdA0KPiA+PiBzb21lIG90aGVyIHdheS4gQnV0IHRo
ZSBjb3ZlciBsZXR0ZXIgaXMgbGFja2luZyB0aGF0IGluZm9ybWF0aW9uIGFzDQo+ID4+IHdlbGwu
IChBcyBpbmRpY2F0ZWQgZWFybGllciwgdG8gaW5jcmVhc2UgdGhlIGNoYW5jZSBvZiBzdWNoIGEg
cmVtYXJrDQo+ID4+IGFjdHVhbGx5IGJlaW5nIG5vdGljZWQsIGl0J3MgYmVzdCBwdXQgaW4gYm90
aCBwbGFjZXMuKQ0KPiA+Pg0KPiA+Pj4gQXMgUEdfbG9nX2RpcnR5IGlzIGRpc2FibGVkIG9uIFBW
IG1vZGUsIHBhZ2luZ19kb21jdGwoKSB3aWxsIHN0aWxsIGhhdmUNCj4gInVuZGVmaW5lZCByZWZl
cmVuY2UiIG9uIFBWIG1vZGUsIHdoaWNoIGdldHMgZml4ZWQgaW4gInhlbi94ODY6IGNvbXBsZW1l
bnQNCj4gUEdfbG9nX2RpcnR5IHdyYXBwaW5nIi4gIEkgdGhvdWdodCBpdCBiZXR0ZXIgc2l0cyB0
aGVyZS4NCj4gPj4+IElmIGl0IGRvZXNuJ3QgY29tcGx5IHdpdGggdGhlIGNvbW1pdCBwb2xpY3ks
IEknbGwgbW92ZSBhY2NvcmRpbmcgZml4IGhlcmUuDQo+ID4+DQo+ID4+IExldCBtZSBwb3N0IGEg
cGFpciBvZiBwYXRjaGVzIGRlYWxpbmcgd2l0aCBwYXJ0IG9mIHRoZSBwcm9ibGVtLCBpbiBhbg0K
PiA+PiBpbW8gKGxvbmdlciB0ZXJtKSBtb3JlIGRlc2lyYWJsZSB3YXkuDQo+ID4NCj4gPiBXaXRo
IHRoaXMgcGF0Y2ggaHR0cHM6Ly9tYXJjLmluZm8vP2w9eGVuLWRldmVsJm09MTc1NDM4MDY5MTAz
MDE3DQo+ID4gY29tbWl0dGVkLCBjYW4gd2UgZ28gYWhlYWQgd2l0aCB0aGlzIHBhdGNoLCB0byBy
ZXNvbHZlIHRoZSBvdXRzdGFuZGluZw0KPiA+IGJ1aWxkIHByb2JsZW0/DQo+DQo+IEl0IGZpcnN0
IG5lZWRzIHJlLWJhc2luZywgSSBleHBlY3QuIFRoZXJlIHdlcmUgYWxzbyBvdGhlciBhbm9tYWxp
ZXMsIGxpa2UgYQ0KPiByZXF1aXJlbWVudCB0byBjb21taXQgdG9nZXRoZXIgd2l0aCBhbm90aGVy
IHBhdGNoLg0KPg0KDQpJJ3ZlIHByZXBhcmVkIHRoaXMgY29tbWl0IG9ubHkgb24gdGhlIGJhc2lz
IG9mIGh0dHBzOi8vbWFyYy5pbmZvLz9sPXhlbi1kZXZlbCZtPTE3NTQzODA2OTEwMzAxNyAsIGFu
ZCBhbHNvIHdpdGggaXQsIEkgdGhpbmsgYW5vdGhlciBwYXRjaCAieGVuL3g4NjogY29tcGxlbWVu
dCBQR19sb2dfZGlydHkgd3JhcHBpbmciIHJlcXVpcmVkIHRvIGNvbW1pdCB0b2dldGhlciBpcyBh
bHNvIG5vIGxvbmdlciBuZWVkZWQuDQoNCj4gSmFuDQo=


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 10:27:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 10:27:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083227.1442856 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umrf9-0006zf-0e; Fri, 15 Aug 2025 10:27:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083227.1442856; Fri, 15 Aug 2025 10:27:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umrf8-0006zY-UM; Fri, 15 Aug 2025 10:27:54 +0000
Received: by outflank-mailman (input) for mailman id 1083227;
 Fri, 15 Aug 2025 10:27:53 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=X6Ka=23=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1umrf7-0006z4-Iy
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 10:27:53 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on2060a.outbound.protection.outlook.com
 [2a01:111:f403:2415::60a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7f87e2e9-79c2-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 12:27:52 +0200 (CEST)
Received: from BN0PR04CA0090.namprd04.prod.outlook.com (2603:10b6:408:ea::35)
 by BN5PR12MB9510.namprd12.prod.outlook.com (2603:10b6:408:2ac::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.18; Fri, 15 Aug
 2025 10:27:47 +0000
Received: from BL6PEPF0001AB4B.namprd04.prod.outlook.com (2603:10b6:408:ea::4)
 by BN0PR04CA0090.outlook.office365.com (2603:10b6:408:ea::35) with
 Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9031.19
 via Frontend Transport; Fri, 15 Aug 2025 10:27:47 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL6PEPF0001AB4B.mail.protection.outlook.com (10.167.242.69) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9031.11 via Frontend Transport; Fri, 15 Aug 2025 10:27:47 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) 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; Fri, 15 Aug 2025 05:27:44 -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>
X-Inumbo-ID: 7f87e2e9-79c2-11f0-a328-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NC9BKhdr7Ke/Z04kwEYLdOmvSNGpBJJrgzeqzocdZ/RehMR1F2mzm8L1Uh1JOvU0UsMWinP/0G8thvD765mNu3e5hTopEYs61h+OHBvyd/aJ/tlJQnhuelECpOhxaMmqsX7fS90Al3z0iCqbJOnsPMNuBxr3XnCu/z1IGPYi6wiL81WjfGh6GgpgPm7t/YxYflIPPHS37A8YSHDWrP9h0sg8nSciZlArzZmB++Bhw8BtyZFxMwYcXsFTm5m6D+sLQQWLfbOipOwvLpxyDqP8jYjZKjxIfkcCvYpXYDknFhbd4JWsaHrKX3suJE/J661LpUsbvzstYxmEUUs0kkrqyw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ZBvKK82tbyQNuu5z2qYEs6P3sS12pzw+UX3TGVc+xUQ=;
 b=nv7S69PLiXmWfmma+TMgkAB03TnkktMLYpcuP8+9/gVAE4KwAgmUrN/Ka1lkTuK7B8JKZ3eySLp9aXa52kAMKyv9Jnpbs0Ehv+riANhhXNxnLFg9ygxb3cZIrV8F8d2lbpP0+upAPB+H9btW/XrTiMObpmgdojrb2141w0I59OQRXKSV8qUguPEhXZvMDuNr62uVLOZYPXttTi5DZsVYV4VkqpWuIvrpovPPDHNpMoSoALfGTtUMtzbizGjYWmn9hGtzFstnzV51TMrdns3+JLyhvS8BQl1xbVcJVkGjZfQ6Qb6g+QMnfR3Kqa0YWnwJkYxdgB0/9nWq1y22/TU48Q==
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=ZBvKK82tbyQNuu5z2qYEs6P3sS12pzw+UX3TGVc+xUQ=;
 b=c1v3heYdQEgoXDRM+3/04u+KjMHsI3kkLeFVGw1XDzGC5wECqdNaAGFY0dnyMvHidhSA+9zcs8z976RRBhAUVkN9xNpnw9NxVaq2waO62SNu2YPiflXppaQ1mENu0b1V1YxDM99uf113YnjfRJehLFh3+SxorFXiOu+KTx5nRc4=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH] xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE
Date: Fri, 15 Aug 2025 18:27:28 +0800
Message-ID: <20250815102728.1340505-1-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB4B:EE_|BN5PR12MB9510:EE_
X-MS-Office365-Filtering-Correlation-Id: 36de5d72-94f1-405d-d7d6-08dddbe660fd
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?gc4gXHqmSwv6ko9NCFsnqogy7RkpNFAh2HCAXoVIPZfQsvt5EuzJKeARKpbj?=
 =?us-ascii?Q?5xBlHA/p0kRlNEbJmJMK7k8sT0X0wNd+kI90DJ2KZMOPD99vPKHfyqzH8ygU?=
 =?us-ascii?Q?nTi7kV592TcWzCctaJ4WjWb3XCMlkeLCliC8AfGs65CBRlOsgL8d405PVRts?=
 =?us-ascii?Q?e32ho1t937ZyckPZ+iVDgk3p1OnYCG3iphLlBRtMpmoA9ixqgTmg0ueyamDZ?=
 =?us-ascii?Q?rlIkogK00AKjaRsZnfegwdqY1tNmNzUb5AseGxg+woAyYbQQV7xjTPAr6wDU?=
 =?us-ascii?Q?Jatd9QtrOwsMOUDwbb92wiJcaR0oaFbo40CRLUaskpmRFtQBKMxsX7tmh4Zx?=
 =?us-ascii?Q?jyaO8AHhHBYsgh7w/9RfepBKjStD2z75GdXiZtPr/5HHBlLlkHn73b1J/g1m?=
 =?us-ascii?Q?3xu5Wbl6sugKV9u+DXYSogUSk/ekkd/Brj7zP8Vt+mOSPNzmRci+8AD0KHLu?=
 =?us-ascii?Q?isREylSqLj7mmPT55MtzWMQ1lVJtEAQxRWHjj+3nAKqOcFDLyvh0wpzbiiiA?=
 =?us-ascii?Q?/Ur/YplGnXhpaWmnXNTnuUCDAhABsC9YlZrcd6u3Jdch3IN21DNgDw3S38nU?=
 =?us-ascii?Q?2xTOM1x84ism8yj6oEKh44zaE7hy499uX2S9zz/k8P7rYcWHjbmr1dRmoHLv?=
 =?us-ascii?Q?2DAdtEX7cNzCljT6Volhhqbi5ZkmBIV0rpYRN8/dorvkXmeV6Pyw7WvN3ol+?=
 =?us-ascii?Q?P28D0f1WlCAnsJnJKpKaBB9lRcQP1vTmVr76nsbqPWQPqYnboRvmj0LQZoS6?=
 =?us-ascii?Q?tZyKSwuxPZI72nIh+YpkI9JHZO0BWDlkKjXseAZQfoF50Amu1B4TbvoeJ3D+?=
 =?us-ascii?Q?eas4QjuuMjonsONTJ0jrLYiFRtrJ/3JuTs8K+/qYJFOCDlQlS5ry12fyBSue?=
 =?us-ascii?Q?x1okX9rtGzDF8ePb6WyMaOe0w/Y+LKZdZuUwBKcjByTx0lOGhDSeYT8b/UqF?=
 =?us-ascii?Q?dU7G7SkkvTnPa6n4KjmXsWU2eUQ6W3qYxYJCQGjMbrarnihuLzaTiym96u/h?=
 =?us-ascii?Q?n4GjCIxVL3s+xtnDjoEtb0NooOufV6l59Ct9Uj21edFR7E0O2lVvZ3NkEa5r?=
 =?us-ascii?Q?tvssoU2xBlCZewXm1LCKqkrBLVoFOMqcblmfXq5PoghrnCBFDwFNN5DFPyiv?=
 =?us-ascii?Q?neU8gWDoUwKoIhZUol1B3gHOhqW2shAQoK7BsFN8tBCPKXqLa/9UZFqOHA11?=
 =?us-ascii?Q?7uhYRiiXLgXgSyKXwTEjwWbGPTQKlR5RueHmlU73E23ZgEAFU974qKe+yQ30?=
 =?us-ascii?Q?nk0nAV5Ah1QxKtC1NnJXWCPV1G7err6SPIUDBWC+NlC68DfUEHHji+MNvTbW?=
 =?us-ascii?Q?b0UUsYA78E4+XbaAGSKGCzZ4X0d/rUylAXvx4gc5y5VX/z2j5VN8TGrHawvR?=
 =?us-ascii?Q?bb0Y4wkxNb2k3pSmx7YVIZbxMmH0kh3RS/4C1Y5y0/0kc+Rv0f1KZo+/VTpR?=
 =?us-ascii?Q?Ut6eUkhJ1ibxLuIbxK+r+SGgxr7Wh041arRZwAHQvHVSVAc2QKltQjVVC1Ad?=
 =?us-ascii?Q?Rc3ZMdZY0iApWEK86jdLwHlU9wFf+lpwEQDi?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(376014)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Aug 2025 10:27:47.2254
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 36de5d72-94f1-405d-d7d6-08dddbe660fd
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF0001AB4B.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN5PR12MB9510

In order to fix CI error of a randconfig picking both PV_SHIM_EXCLUSIVE=y and
HVM=y results in hvm.c being built, but domctl.c not being built, which leaves
a few functions, like domctl_lock_acquire/release() undefined, causing linking
to fail.
To fix that, we intend to move domctl.o out of the PV_SHIM_EXCLUSIVE Makefile
/hypercall-defs section, with this adjustment, we also need to release
redundant vnuma_destroy() stub definition from PV_SHIM_EXCLUSIVE guardian,
to not break compilation
Above change will leave dead code in the shim binary temporarily and will be
fixed with the introduction of domctl-op wrapping.

Fixes: 568f806cba4c ("xen/x86: remove "depends on !PV_SHIM_EXCLUSIVE"")
Reported-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v1 -> v2:
- remove paging_domctl hypercall-defs
---
v2 -> v3:
- remove paging_domctl change
---
 xen/arch/x86/Makefile        | 2 +-
 xen/common/Makefile          | 5 +----
 xen/include/hypercall-defs.c | 4 +---
 xen/include/xen/domain.h     | 4 ----
 4 files changed, 3 insertions(+), 12 deletions(-)

diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 5aab30a0c4..7676d7cdd8 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -28,6 +28,7 @@ obj-y += delay.o
 obj-y += desc.o
 obj-bin-y += dmi_scan.init.o
 obj-y += domain.o
+obj-y += domctl.o
 obj-bin-y += dom0_build.init.o
 obj-y += domain_page.o
 obj-y += e820.o
@@ -79,7 +80,6 @@ obj-y += vm_event.o
 obj-y += xstate.o
 
 ifneq ($(CONFIG_PV_SHIM_EXCLUSIVE),y)
-obj-y += domctl.o
 obj-y += platform_hypercall.o
 obj-$(CONFIG_COMPAT) += x86_64/platform_hypercall.o
 endif
diff --git a/xen/common/Makefile b/xen/common/Makefile
index c316957fcb..756ddf52c3 100644
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -11,6 +11,7 @@ obj-$(filter-out $(CONFIG_X86),$(CONFIG_ACPI)) += device.o
 obj-$(CONFIG_DEVICE_TREE_PARSE) += device-tree/
 obj-$(CONFIG_IOREQ_SERVER) += dm.o
 obj-y += domain.o
+obj-y += domctl.o
 obj-y += event_2l.o
 obj-y += event_channel.o
 obj-$(CONFIG_EVTCHN_FIFO) += event_fifo.o
@@ -69,10 +70,6 @@ obj-bin-$(CONFIG_X86) += $(foreach n,decompress bunzip2 unxz unlzma lzo unlzo un
 
 obj-$(CONFIG_COMPAT) += $(addprefix compat/,domain.o memory.o multicall.o xlat.o)
 
-ifneq ($(CONFIG_PV_SHIM_EXCLUSIVE),y)
-obj-y += domctl.o
-endif
-
 extra-y := symbols-dummy.o
 
 obj-$(CONFIG_COVERAGE) += coverage/
diff --git a/xen/include/hypercall-defs.c b/xen/include/hypercall-defs.c
index 8370b4b289..221dc25f6f 100644
--- a/xen/include/hypercall-defs.c
+++ b/xen/include/hypercall-defs.c
@@ -200,8 +200,8 @@ sysctl(xen_sysctl_t *u_sysctl)
 #if defined(CONFIG_X86) && defined(CONFIG_PAGING)
 paging_domctl_cont(xen_domctl_t *u_domctl)
 #endif
-#ifndef CONFIG_PV_SHIM_EXCLUSIVE
 domctl(xen_domctl_t *u_domctl)
+#ifndef CONFIG_PV_SHIM_EXCLUSIVE
 platform_op(xen_platform_op_t *u_xenpf_op)
 #endif
 #ifdef CONFIG_HVM
@@ -280,9 +280,7 @@ hvm_op                             do       do       do       do       do
 #ifdef CONFIG_SYSCTL
 sysctl                             do       do       do       do       do
 #endif
-#ifndef CONFIG_PV_SHIM_EXCLUSIVE
 domctl                             do       do       do       do       do
-#endif
 #ifdef CONFIG_KEXEC
 kexec_op                           compat   do       -        -        -
 #endif
diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
index e10baf2615..33dd90357c 100644
--- a/xen/include/xen/domain.h
+++ b/xen/include/xen/domain.h
@@ -182,11 +182,7 @@ struct vnuma_info {
     struct xen_vmemrange *vmemrange;
 };
 
-#ifndef CONFIG_PV_SHIM_EXCLUSIVE
 void vnuma_destroy(struct vnuma_info *vnuma);
-#else
-static inline void vnuma_destroy(struct vnuma_info *vnuma) { ASSERT(!vnuma); }
-#endif
 
 extern bool vmtrace_available;
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 10:30:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 10:30:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083237.1442867 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umrhY-0008Th-EL; Fri, 15 Aug 2025 10:30:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083237.1442867; Fri, 15 Aug 2025 10:30:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umrhY-0008Ta-Ak; Fri, 15 Aug 2025 10:30:24 +0000
Received: by outflank-mailman (input) for mailman id 1083237;
 Fri, 15 Aug 2025 10:30:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9KPM=23=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1umrhW-0008TU-MS
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 10:30:22 +0000
Received: from AM0PR83CU005.outbound.protection.outlook.com
 (mail-westeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c201::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d82e08a2-79c2-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 12:30:20 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by DBBPR03MB10319.eurprd03.prod.outlook.com (2603:10a6:10:53a::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.16; Fri, 15 Aug
 2025 10:30:16 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9031.014; Fri, 15 Aug 2025
 10:30:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d82e08a2-79c2-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=IMjLmdApv2JgaOaGHQZSgQd118tWfwKU8kwS0UJ7yG7lyy6mV6wIQkGf4vsB6onXR1itnbLUh3ZTHEwkBl7X7rqj6r0E/vlqfVCiCNY5Xrqlk2EXhpEgvVm2fc366CwfYVDAZ/F4qTM2Catc0ykefJE0psNaUdjC7avhwp/WJ0t4Y9G9YWyDTHecr4c8TOZK4NjgB6ozh2P2VcjbVQvkDmW3eVcH/XGzIdHhe3k+xd6vk9pZeQUj8eocpLENXTUHxtLyKsUxENRbJp29eiEJNlK4qwARXWugBO8cQCxQMIFlv9kltSfXF9nyxMm7SY6CW6nVWHCLza1ZvuTUnamRTw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=uLjt83miRImh6TpQfMmlfrFQ+IKwp92JkOS2CL55pH4=;
 b=cDTO48Wg+uavhgDAjBTFVezq4XSOn0zeC1qvHe3uggwsnCbv8r2jxgLac6iaTRArxThBMlAI8k42DIcpXrjFFARfsBE64j7MnCXv11XAK1GtcSEa3ZomUKC8IygGYY4+1hTuaUoUs122vIqFfO3BTpH3EPTnBC9ZakEawJQ1nU1iFkiK0BBwRzHvlLnUSQniBtlqUHAl1vnc2GDs/Y4MvZU5P/qZaTZlAC444dBl0e6BUZdQZ10HQf7faquusgdB+x3S7l5qo+oxpSdrbYLCLMl25mpJwL09hA8JJfex+xjz5p9HpGdWOkJDTmsDfol1kUaQaDWiMLAyPLLQayS30w==
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=uLjt83miRImh6TpQfMmlfrFQ+IKwp92JkOS2CL55pH4=;
 b=Fq2R5C4G5kA9e0ExUNt2augEQ6WdPmP4w5U97ITW1zTsgkksHaAabPDEkNEhipVQ2a0ZxA6+KPWcHltcbYNfa+3bOTqCLL7DWcvKrMXJf6gb0OKFdqgOjIk73CDYI4kb8lVzIiRSSdmj5EDZR9qbK4TiOB0asTuDD0g2gRhOVFbtXk4dAWqejFYprfwRMXv8awccqglDWXuJ6gHlaxJY1Ol58KlWc118hAXVKKl1Ok2pzWQMjPhpEbxIp7F6ZiEZG3LwRvu8nswh5lMDJ/X2i360w6i2kFWVQo9bh+lsVQiEUL4LDRvlleTirS7JxoDQeFEWzVqrBU5Nzd+JlV2O0A==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien
 Grall <julien@xen.org>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] docs/misra: fix sphinx-build issues
Thread-Topic: [PATCH] docs/misra: fix sphinx-build issues
Thread-Index: AQHcDbJCdYlsiZdfl0mX5ViIXi0+6LRjZcaAgAAeAoA=
Date: Fri, 15 Aug 2025 10:30:16 +0000
Message-ID: <b8aff698-fbc8-4fc6-a616-fbe14c7538d7@epam.com>
References:
 <fb809a94e8a50bd3a59aa47ee1832c61af8a9f40.1755241166.git.dmytro_prokopchuk1@epam.com>
 <99171678-71a2-4cec-a6dc-343993108a37@suse.com>
In-Reply-To: <99171678-71a2-4cec-a6dc-343993108a37@suse.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV2PR03MB9572:EE_|DBBPR03MB10319:EE_
x-ms-office365-filtering-correlation-id: 66f9a84e-24fc-4c36-f641-08dddbe6b9d6
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|366016|42112799006|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?RUJ1U1c5RjBHanplU0puRnFlWlAwOWo4d1dUQjBpbGVTZWxydkRqc2JRTnND?=
 =?utf-8?B?V2N6M3J5MjNSZ2ZjOVNqbENoUDZWQ0lwVjhPZ0U3YmU2MXdoVGhYRFg1cUJT?=
 =?utf-8?B?SG9XVVBYV2l5L2poMzF1MlpZdnpSK213LzloYWIyOUpLdTc3blU1aUxkK0xE?=
 =?utf-8?B?MStodnVqRC9CMUduMTd6d2MwSjVvRmphV1ZIL2k1a2tDdDZubHBkWDVOWDUw?=
 =?utf-8?B?dnJlbjZOT2U2N2tNSUxSTFhNR3JtbFJ2T1B1Nk9qdGpnQkI3eUY2d0l6cFBW?=
 =?utf-8?B?MytVdW1uSEV4QWp2SlVzY3VOUUdqbVhNdmMrckxVNlJhcnNCSHVDQXVLU25N?=
 =?utf-8?B?dVlXTDNuek0ybjhCTjVydzI1TUhNQWk1M3ljL1I2THdKY2hZVDhwZnBEakJv?=
 =?utf-8?B?c0lvNGNvU0JSR2xpcUZTaXcrbTNKK3kxTkl3U05iVWhJMndEWlVHeXRNcjZV?=
 =?utf-8?B?RzZ5S3JSOW93b0JLbUJ1QU1JYlVQdzNqOVZZNEt4RTlPeWRpaVV3WVNOM3VL?=
 =?utf-8?B?a08zMzl1UkVVQWd4aC8ydmlsVTc5SFd4WWlsNUt2eEkwQXJoOGsvNG94SnV2?=
 =?utf-8?B?Yyt6Nk1RNUtjZHFIcThhc1Z4cHRPYXkwVzJoVERZa1hyNlFZcGdjb0ljd3NN?=
 =?utf-8?B?cVFyYlFjMUQ2c290bVFzZ0RLZk9XL0FnRENLc2YvcXNhaTlYSVkzNWJhNkor?=
 =?utf-8?B?cTcxdTVUdjdzQ2ZXNVF0ZVBOMFQ4ZGlkMUlldEZQb3dnTWxNSXBHV3E5ZlNQ?=
 =?utf-8?B?MFpMNkFlODlEU2paVVdDUHBOU1VnNmlabXdXT0JGc1Q1S3ZVN1hXc0tET24z?=
 =?utf-8?B?Q3p5WlVBSWdZdE5qWlpKaG5KL2ZPTWZzZWM1TnRndy83K1pvU1h6cHNLaU9I?=
 =?utf-8?B?NXRRMXBTV0tZYWQxRTYvKzd4cDRRWmExYTJEam9Wc1FKZjdBazlVdGg3MVpV?=
 =?utf-8?B?dC9Td3Q0czNWSmFGN2NTbHZFYzJHc3kzU2NyNHdXeW1QZ1pyMDd1bG81MDdk?=
 =?utf-8?B?OVN0UWYwNnBpU3FtS3pSUXFtV3VGeldOMWU5NklnR0ZPWEdGRm5BSjV4Z2Ny?=
 =?utf-8?B?VDhTT0VkeVJyZ1hKMTJpMjRsUm95eWhjWFJQL1Era1NqaUF5ajY0aTY3L296?=
 =?utf-8?B?T0pWREt1UXJIdG5yc1ZNMmVTYkxkdGhLQ3NBQzBqYW0rdXJjdTRUY1V3aUV4?=
 =?utf-8?B?UDRUNlpwOEFOK0lwaFJ5UEpWbGRSb2UrVitQczdIaS9uSURtczhjY3k3OWVq?=
 =?utf-8?B?dGtYVGthMzFyS0lDMW5xbGpWZzIrbXF3eEZYQ2JVQmlBeTB2bCtmcEZ5a0h5?=
 =?utf-8?B?b2dLS2RBTld6WjZzTmhvL2x4YVFucDNqVHkrWm1wK0JZT3B2ZzRTb3h5YW1X?=
 =?utf-8?B?VENNNFAyRHhKMVAwYllyc3F3VXdST1dWQk4rUjBzYzBHa2h3NTRiNVhpVzht?=
 =?utf-8?B?MnZ4ejBNRitXaFlBTjRTK28zSm5OeEkyRHE4Nks5MnQ1dDVNa0tabWNNN2dN?=
 =?utf-8?B?YUlLaWs1UkpPVWswVnhaZUFzU1grZDJoUHM5SnV2L1dmYWtGM28vdFBaNW44?=
 =?utf-8?B?alBpakx4MVRRRGppUER2amVYRnhNSUh0WUJUTDdSTm4rTXhoR2xnaWUrRVhX?=
 =?utf-8?B?bEtUUC81bzFhVXBTM2NsQ3M2SGNQZDN6ZllGbm1laWwwTzI4eXhJdkpSbTlH?=
 =?utf-8?B?T2ZwcUFmaVI1c2FYK29hd0dNa2JXYWJkNm5DbDNBWVRJN0pra3AvNStLaldv?=
 =?utf-8?B?OGlzUGRiL3FmWHd1VFhqZmpUVHI5R1ZmcXNvZDN5azN0c0Z6STZnNE82MmNn?=
 =?utf-8?B?Qlh2L0JkWDhWTm5OUkErVGh0cUtQeG1GSitZTExJc3A4QklEYWhQSFhsUHRP?=
 =?utf-8?B?WVJvQ1VHS2N6Z1QyMk00eG5oOHc4NmZaV3M2VkoxT2JGQ09zdTZKVFhCd05x?=
 =?utf-8?B?QmNUODI5TDlURjlVUGQ1MFpaellCQndJR3ZrRUduUjQwUW5xdHIrRlNOS1pj?=
 =?utf-8?B?OXZ6elQ5OGdRPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(42112799006)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?ZU5ydnBkZkZCUGI0bG04cFFLdWNNM2hzQkFrUnY1VWlYWmdDNXd6Q0hORGxY?=
 =?utf-8?B?eXphSlgwYTR3Q2w2ZnlFUThZYm1iTVpQQjdIVE5LczIzODZHeVVyWXZBejFM?=
 =?utf-8?B?UmhIdzE5WUNhdGxNaGxrK2MwSkY1OFA4aTcvZEdHUS90Zk5jQ2N2TGdnZmE4?=
 =?utf-8?B?Vi9hYXlNeXFQS0F2aDVmQlRWTmVVNXUyQTRlVUxXYkJwMFNjL2lOaDRURGFi?=
 =?utf-8?B?cm5WMHZPUkxnSUxFQ0Vkc2t6ZUJiSzQ5Y0xPV2RtajgxSEp1ZWdJV2Z0S2Jj?=
 =?utf-8?B?bUFrYnJCclU4aE8wbWQzQlZHTERYbkRNdlRiNW11NUxiQlJsL2R6ZGVwdjJp?=
 =?utf-8?B?M09BZDIvTm5nVHRIT0xmOE1ZVzFIQU1XM2t2TmJvMTVocHMxVzRTMmVtWEdi?=
 =?utf-8?B?WVc4S0x3dm5kbThiRDJ5cWp5TlBaSER6VzZhMlBwVmJtMVc4Rm5tRTBUaG5T?=
 =?utf-8?B?b05jcTBzSW0vOWFOb00rWVQxeEFvYjQ2UzhPNWxacTZhbWZzSlFzZ0U4MjdC?=
 =?utf-8?B?N1FNZ2FTT2J0MnlZeGlDOFJTMnltM242Tkl6WHc4Nm9OWE9xK3JtcVMyVTRv?=
 =?utf-8?B?QzlEM2pTMlFla1E5STIzRUZFZklhbHY4QW9CSU43VUtxMkRZSXZrZUMxOHNz?=
 =?utf-8?B?bENRamtRR3lQc2krZEtHSWlNem84TnEyVVNYMWVRWURRdEk5SkRwZGRSM0Zp?=
 =?utf-8?B?Vy9iOG5PT1FZQW5FS2FFY1gwbHBod254aG5OczM4aVJEUEVFV1dxVEhCSTMv?=
 =?utf-8?B?dW1BaTEvS24yTVg1ZE1sMDNudlZ0UWNlWGV0dVRuaG5wM3ZoTVFUNnFvYkEz?=
 =?utf-8?B?dEc5SG8wWnJHbXY1WWthU1FlVzdUenhVUElBNWx1dHo3TjExTHZ4eFBuUExR?=
 =?utf-8?B?aENkYXpJUU9mdmwrcXJBOEQxTDBISWEzeitkRHJvZDl1Tm11cjhsY09zRnVJ?=
 =?utf-8?B?NUF5MHhYdWVHc0F6VHdSK3ZjR2tRNktqdWl0aWh1R2xkdFF1dzhyUmZ1Y0tO?=
 =?utf-8?B?NEQ1T2ZEYUlWQjJYK2UyNzhQRS9NSWVkM2FGUm1jWWVwNWNtMHlacy9lQ2h4?=
 =?utf-8?B?UW44TEowVWdNeW9aNy85ZWlKVkRkck5oektBT25HTGE5ZEpCU0pROHBuTDFD?=
 =?utf-8?B?eHAwVmNkOVdSUStIbDZxKzdRSjJpV3JKN1NjaHJDM2p2aGU2QjhDZ2V0T1Ni?=
 =?utf-8?B?Ny9ROUE3RzZ2dmFvYmREdkdtZDZzQjNPTFE5K1F1TWhpcXZXS0QrMVBtZUF2?=
 =?utf-8?B?QmkzaXZ3cjFWclNOT29JRTMvUHVSbkg3eFVlcDNoQUcxWDJjMVk5L2FsQm1C?=
 =?utf-8?B?ZUtJYkFLM013QXlsV01zZ1FUVFdWY1dqQkVFZTVKKzM3TlpRMS9UaDFmcEpV?=
 =?utf-8?B?RkRRS1MrcFhNblpjdkZrNVowYy9XY1dWWmdtcmhiOEUvbFNLbnhaTytEbVRV?=
 =?utf-8?B?alBUTkhaaTcvR000aDEyWE9kZ1BSS0VyWVVqVmswT2k3dWphL2FXSmpBOExk?=
 =?utf-8?B?WkowRVZyenVLTk9XVm5QQXY1MUV4dVNFYlVMYXNFY1JGUXphSUFYN1ovUjFW?=
 =?utf-8?B?dVdUeldyQzlhNm55YnJhSmMxVGduM2JnY3NyZlFGNEZvcjZRdlFtZFpjbEhV?=
 =?utf-8?B?RC9nQmZmZGJVaGVNOGhTMWJ0TzlOeWJKU1daRjFMejAzck5pMUVZSWlmY0F3?=
 =?utf-8?B?Sk5DUUxRQ3BMQnFFZWY3SUxkaXh3NFpmM1F6VlhPSEpwNGJucWF6MFprazJx?=
 =?utf-8?B?QUlDME9IWXl3N3ZhUHF0R0o2ckRIcTM2MFlUanpsMmtNM0RjQ242bjFBL29w?=
 =?utf-8?B?QlRYVm81c29VNVpLdzJyK3hrbnZsc01ZRGxYaTM0S0JTMWFUajYrYmdGYVh0?=
 =?utf-8?B?RWJkSUhhOFFhRER5ZHdCS043YlJSZ3M2cFptVHZ5c1prSi9PR2diVVNLQlFU?=
 =?utf-8?B?dnVmQWhYUHFkL3h0cEp6S1BnZHk3cGJxYUhwNVkyWWZHemRkdlp6MUZaZS94?=
 =?utf-8?B?WFVlRW1iTzNzQ3FXbTMzMmtCL3VCM0t5cTVtcXlURWFKbUJERnQ5SUtDWjJz?=
 =?utf-8?B?U2QyNG9jY0d1UnFDNE9xQk0yNjhtTGhJRUxodVlvdWRXWWVEMTU2RkcweXQ3?=
 =?utf-8?B?bnN3eUVBaGpUWTZ0R2QrclVVUm5BOHY3UEJzZG40OGJqNUI5UWVMaHV6VTNJ?=
 =?utf-8?B?dlE9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <E0BD61196D72C046B00CD08C0A2D598A@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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 66f9a84e-24fc-4c36-f641-08dddbe6b9d6
X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Aug 2025 10:30:16.3241
 (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: iUEfBKFLJJj3QJjfQ5XVbpyZ+6FCJK1cQloB2zn7gg/Q1qNq0mSrba3i/LOkbFAlcJxjLsBoyTWeLzSW1o0o6Arnd8NIZO0FCDEMY+EEVqM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR03MB10319

DQoNCk9uIDgvMTUvMjUgMTE6NDIsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAxNS4wOC4yMDI1
IDA5OjAwLCBEbXl0cm8gUHJva29wY2h1azEgd3JvdGU6DQo+PiAtLS0gYS9kb2NzL21pc3JhL2Rl
dmlhdGlvbnMucnN0DQo+PiArKysgYi9kb2NzL21pc3JhL2RldmlhdGlvbnMucnN0DQo+PiBAQCAt
OTUsNyArOTUsOCBAQCBEZXZpYXRpb25zIHJlbGF0ZWQgdG8gTUlTUkEgQzoyMDEyIFJ1bGVzOg0K
Pj4gICAgICAgICAgdGhlIGFic2VuY2Ugb2YgcmVwb3J0cyB0aGF0IGRvIG5vdCBoYXZlIGFuIGlt
cGFjdCBvbiBzYWZldHksIGRlc3BpdGUNCj4+ICAgICAgICAgIGJlaW5nIHRydWUgcG9zaXRpdmVz
Lg0KPj4gICAgICAgICAgWGVuIGV4cGVjdHMgZGV2ZWxvcGVycyB0byBlbnN1cmUgY29kZSByZW1h
aW5zIHNhZmUgYW5kIHJlbGlhYmxlIGluIGJ1aWxkcywNCj4+IC0gICAgICAgZXZlbiB3aGVuIGRl
YnVnLW9ubHkgYXNzZXJ0aW9ucyBsaWtlIGBBU1NFUlRfVU5SRUFDSEFCTEUoKSBhcmUgcmVtb3Zl
ZC4NCj4+ICsgICAgICAgZXZlbiB3aGVuIGRlYnVnLW9ubHkgYXNzZXJ0aW9ucyBsaWtlIGBBU1NF
UlRfVU5SRUFDSEFCTEUoKWAgYXJlIHJlbW92ZWQuDQo+PiArICAgICAtIEVDTEFJUiBoYXMgYmVl
biBjb25maWd1cmVkIHRvIGlnbm9yZSB0aG9zZSBzdGF0ZW1lbnRzLg0KPiANCj4gTWluZCBtZSBh
c2tpbmcgd2h5IG9uZSBmb3JtIG9mIHF1b3RpbmcgaXMgdXNlZCBoZXJlICh1c2luZyBiYWNrLXRp
Y2spLCB3aGlsZSAuLi4NCj4gDQo+PiAtLS0gYS9kb2NzL21pc3JhL3J1bGVzLnJzdA0KPj4gKysr
IGIvZG9jcy9taXNyYS9ydWxlcy5yc3QNCj4+IEBAIC0xMjQsNyArMTI0LDcgQEAgbWFpbnRhaW5l
cnMgaWYgeW91IHdhbnQgdG8gc3VnZ2VzdCBhIGNoYW5nZS4NCj4+ICAgICAgICAgICAgICB0aGV5
IGFyZSB1c2VkIHRvIGdlbmVyYXRlIGRlZmluaXRpb25zIGZvciBhc20gbW9kdWxlcw0KPj4gICAg
ICAgICAgICAtIERlY2xhcmF0aW9ucyB3aXRob3V0IGluaXRpYWxpemVyIGFyZSBzYWZlLCBhcyB0
aGV5IGFyZSBub3QNCj4+ICAgICAgICAgICAgICBleGVjdXRlZA0KPj4gLSAgICAgICAgIC0gRnVu
Y3Rpb25zIHRoYXQgYXJlIG5vLXJldHVybiBkdWUgdG8gY2FsbHMgdG8gdGhlIGBBU1NFUlRfVU5S
RUFDSEFCTEUoKScNCj4+ICsgICAgICAgICAtIEZ1bmN0aW9ucyB0aGF0IGFyZSBuby1yZXR1cm4g
ZHVlIHRvIGNhbGxzIHRvIHRoZSAnQVNTRVJUX1VOUkVBQ0hBQkxFKCknDQo+IA0KPiAuLi4gYW5v
dGhlciBpcyB1c2VkIGhlcmUgKHNpbmdsZSBxdW90ZXMpPw0KPiANCj4gSmFuDQoNCkdvb2QgcXVl
c3Rpb24uLi4NCkknbGwgYWxpZ24gYSBzdHlsZS4NCg0KRG15dHJvLg==


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 10:32:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 10:32:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083253.1442878 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umrjy-00012e-Th; Fri, 15 Aug 2025 10:32:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083253.1442878; Fri, 15 Aug 2025 10:32: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 1umrjy-00012X-Py; Fri, 15 Aug 2025 10:32:54 +0000
Received: by outflank-mailman (input) for mailman id 1083253;
 Fri, 15 Aug 2025 10:32:52 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RDBg=23=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1umrjw-000128-AI
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 10:32:52 +0000
Received: from mail-oa1-x34.google.com (mail-oa1-x34.google.com
 [2001:4860:4864:20::34])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 319e1d9f-79c3-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 12:32:51 +0200 (CEST)
Received: by mail-oa1-x34.google.com with SMTP id
 586e51a60fabf-30cce58bb89so1690020fac.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 03:32: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>
X-Inumbo-ID: 319e1d9f-79c3-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1755253970; x=1755858770; 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=LIis+tELiFMThSIqBI+16VMGt7tO48JAPZ3VKq3sYRw=;
        b=Fn9GZOZ+dN0eWbTOTtDZBsn2xXQ9Z/NxYHX3Ky9IeHWUS38MlUsFZlh3cFsx7msbpN
         ObnwV7j+DU+rYOhnoL96yutTk0oLzD3Ziw5Z//6tY0ej5Fjs/Qd1waTqZEfI5QWAKikr
         MU71sjnCLfMbWXi2Ly/9ye4Co9JmppmNK5ghw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755253970; x=1755858770;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=LIis+tELiFMThSIqBI+16VMGt7tO48JAPZ3VKq3sYRw=;
        b=kcV3t9Xj/0KNesSYSYgM1QedVgEF6pUs65POE/c/8js2qwmvwyiWo72GsRbAXUI8+5
         pcbBlk+7H8rk+xRAa8PfaOcWrbhdKKx041AsQPocJ4DqMmQgkBRYF2vB6Uen/MoaG5Re
         0bEcQkNDHjjh01huR7gOWiqSkhSrbaQkdb9E6axsu/gB/KhAtI2CPmToowGvHzSbXW9l
         68zXlGbjRGOYVA07bZOrLWlgu4XoQrLw805VtQgRjogQ+UWgUhl4M02hFeWFmzdU0bBx
         TmjnBTRBUlGFpsWflYrWr/EXSndMuQqybCZQa6g0b93AVrM4SvOpL9IITFIYJPc8LWqw
         KbDg==
X-Gm-Message-State: AOJu0YxLhjKr2FQZ1doAV+eqqc9sUMn+PkUe1IB65Cly2USW1ZEtZenX
	PFUn93QiAdgKywdx99OFTxV9WO3GYByBY4ZHQhuZato6trT6V3zvSwSSAnDLMZT3n6vr3yfhcfV
	VUdPaFkDPL0xHO1CpkWlvhrn/pMVOG9NEiCBwj18VNBo3JRaKGLdsG3U=
X-Gm-Gg: ASbGncsiaqnZFBAHx+6JlYTt4lf/LMTGhbLfpBV7kzvA0ZpZnlpBHUJRqnEdpKDRXvP
	6Qd1E2djq2upRWrrURQa9aGfkF2zELkZ73XwNYd4NeNfnVbfJ8Kmb1s+BoC5mAd3oabhTOoTl5c
	yiDk0W68dw6DoApFK74OVQrc1mWPouE18v12XW+UfjXryD7jVdzy/fmUO4Deki5uqR7h+y0gP9+
	gRyoQ==
X-Google-Smtp-Source: AGHT+IHshQcpdjY0o1B6PLdYwN+FJ3+bqRiUyEUW+o03QwRRTRLLgeDrw+jrmwaz40U6mndZXNxGExOI9HU1PAE+m14=
X-Received: by 2002:a05:6808:4fdf:b0:426:8e44:33f5 with SMTP id
 5614622812f47-435ec2e49a0mr666438b6e.0.1755253969886; Fri, 15 Aug 2025
 03:32:49 -0700 (PDT)
MIME-Version: 1.0
References: <20250708135701.119601-1-frediano.ziglio@cloud.com> <CACHz=Zj1n1=azmve2QZT4W7O_dcZqZY0M1GBnkTKfDzZrsGqhg@mail.gmail.com>
In-Reply-To: <CACHz=Zj1n1=azmve2QZT4W7O_dcZqZY0M1GBnkTKfDzZrsGqhg@mail.gmail.com>
From: Frediano Ziglio <frediano.ziglio@cloud.com>
Date: Fri, 15 Aug 2025 11:32:38 +0100
X-Gm-Features: Ac12FXwmWgKjg7zYa89DJ8qYhgfHwn9vBaEoOYkj88-lx1Jhu2n-AOOpjS5zSnM
Message-ID: <CACHz=Zi1e7NiPZ-E+arBziz3XpBu-Ynm80QKZS5TP3KVpJDHhg@mail.gmail.com>
Subject: Re: [PATCH v2] xen/efi: Fix crash with initial empty EFI options
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>, 
	=?UTF-8?Q?Marek_Marczykowski=2DG=C3=B3recki?= <marmarek@invisiblethingslab.com>, 
	Jan Beulich <jbeulich@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

ping

On Mon, Jul 28, 2025 at 11:39=E2=80=AFAM Frediano Ziglio
<frediano.ziglio@cloud.com> wrote:
>
> ping
>
> On Tue, Jul 8, 2025 at 2:57=E2=80=AFPM Frediano Ziglio
> <frediano.ziglio@cloud.com> wrote:
> >
> > EFI code path split options from EFI LoadOptions fields in 2
> > pieces, first EFI options, second Xen options.
> > "get_argv" function is called first to get the number of arguments
> > in the LoadOptions, second, after allocating enough space, to
> > fill some "argc"/"argv" variable. However the first parsing could
> > be different from second as second is able to detect "--" argument
> > separator. So it was possible that "argc" was bigger that the "argv"
> > array leading to potential buffer overflows, in particular
> > a string like "-- a b c" would lead to buffer overflow in "argv"
> > resulting in crashes.
> > Using EFI shell is possible to pass any kind of string in
> > LoadOptions.
> >
> > Fixes: bf6501a62e80 ("x86-64: EFI boot code")
> > Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
> > ---
> > Changes since v1:
> > - use argc to make code more clear;
> > - fix commit reference;
> > - improve commit message.
> > ---
> >  xen/common/efi/boot.c | 13 +++++++------
> >  1 file changed, 7 insertions(+), 6 deletions(-)
> >
> > diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
> > index 9306dc8953..385292ad4e 100644
> > --- a/xen/common/efi/boot.c
> > +++ b/xen/common/efi/boot.c
> > @@ -350,10 +350,11 @@ static unsigned int __init get_argv(unsigned int =
argc, CHAR16 **argv,
> >
> >      if ( argc )
> >      {
> > +        argc =3D 0;
> >          cmdline =3D data + *offset;
> >          /* EFI_LOAD_OPTION does not supply an image name as first comp=
onent. */
> >          if ( *offset )
> > -            *argv++ =3D NULL;
> > +            argv[argc++] =3D NULL;
> >      }
> >      else if ( size > sizeof(*cmdline) && !(size % sizeof(*cmdline)) &&
> >                (wmemchr(data, 0, size / sizeof(*cmdline)) =3D=3D
> > @@ -414,14 +415,14 @@ static unsigned int __init get_argv(unsigned int =
argc, CHAR16 **argv,
> >                  ++argc;
> >              else if ( prev && wstrcmp(prev, L"--") =3D=3D 0 )
> >              {
> > -                --argv;
> > +                --argc;
> >                  if ( options )
> >                      *options =3D cmdline;
> >                  break;
> >              }
> >              else
> >              {
> > -                *argv++ =3D prev =3D ptr;
> > +                argv[argc++] =3D prev =3D ptr;
> >                  *ptr =3D *cmdline;
> >                  *++ptr =3D 0;
> >              }
> > @@ -429,7 +430,7 @@ static unsigned int __init get_argv(unsigned int ar=
gc, CHAR16 **argv,
> >          prev_sep =3D cur_sep;
> >      }
> >      if ( argv )
> > -        *argv =3D NULL;
> > +        argv[argc] =3D NULL;
> >      return argc;
> >  }
> >
> > @@ -1348,8 +1349,8 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE =
ImageHandle,
> >                                    (argc + 1) * sizeof(*argv) +
> >                                        loaded_image->LoadOptionsSize,
> >                                    (void **)&argv) =3D=3D EFI_SUCCESS )
> > -            get_argv(argc, argv, loaded_image->LoadOptions,
> > -                     loaded_image->LoadOptionsSize, &offset, &options)=
;
> > +            argc =3D get_argv(argc, argv, loaded_image->LoadOptions,
> > +                            loaded_image->LoadOptionsSize, &offset, &o=
ptions);
> >          else
> >              argc =3D 0;
> >          for ( i =3D 1; i < argc; ++i )
> > --
> > 2.43.0
> >


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 10:33:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 10:33:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083266.1442903 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umrkl-0001fg-9G; Fri, 15 Aug 2025 10:33:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083266.1442903; Fri, 15 Aug 2025 10:33:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umrkl-0001fZ-6e; Fri, 15 Aug 2025 10:33:43 +0000
Received: by outflank-mailman (input) for mailman id 1083266;
 Fri, 15 Aug 2025 10:33:42 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RDBg=23=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1umrkk-000128-1I
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 10:33:42 +0000
Received: from mail-oo1-xc2b.google.com (mail-oo1-xc2b.google.com
 [2607:f8b0:4864:20::c2b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4f825f53-79c3-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 12:33:41 +0200 (CEST)
Received: by mail-oo1-xc2b.google.com with SMTP id
 006d021491bc7-61bd4d9fe61so980735eaf.2
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 03:33: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>
X-Inumbo-ID: 4f825f53-79c3-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1755254020; x=1755858820; 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=dPfGx67bHtSWcI3qHAZKZtXgMIn73goR5PnuAZZZSOU=;
        b=LZ3KEj2xMAP3OFlKfLXEbdeaEzMhtwqiU8Qg2DGPpf/MWW9D5bI3RRS/097nOqL/aP
         lkhKkcjHeWWmYi50ver9z3Dszcw+LtQSnnGtcjRLViEfd2BDQyd4v+61+3l53f7HJpMQ
         Vh4b2eujVV3pDouhEhe69JENNf7q/20w8zHuY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755254020; x=1755858820;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=dPfGx67bHtSWcI3qHAZKZtXgMIn73goR5PnuAZZZSOU=;
        b=wNZv0S2YFlp8rCRVZ6qMZhMNQ+dvzV1Lz0TbPoD4kK6j2QNH4YAywn135ng4cyRw2M
         R8bLmrU3SCzkDppg+NvVRAgQfHpEsZn/yiYiLLXTT6bazGOVUsMDntWRlGNSYCVzZ+ik
         8smHuJ8jr1kqh+Hxtjn4ppSBCsZdDVrtQ4hBNbVxRpPxA78vHEg7HhCGlFom7C7yv+s7
         CKqaMK+YfGxEPTQ/TYZkHm/bzuFrEA6QrPrFn9dL27YLfKHBMEomzAKssapziIwlIMai
         r8XsCztdzmcpcSq1rdx8siE855gGSl3JDl951CLrqjp92DYU/wbAtX0Xl7un0TKtiIow
         LJMQ==
X-Gm-Message-State: AOJu0YwXDSL+fa9b2M/LORy0XIogY8ZFOsSGfgcDHiFYyoqGPVNkOw4c
	JwWAjdlkVpb6WZa2LjABepSbvOvqnwiSeNtWcHyfNHqsX4rXNzaN3kvMSpQq+4AX6fgk+cJKNUQ
	+4SNO7Qxwu4tUC6n8OEo+EC/xG02hYZI7vYran2i4qgNmQinMhqZ+0Qk=
X-Gm-Gg: ASbGncuKwRAlWydmlzaUZh3BX/MkdElpcyXqRbAVUP3vcu+8lpkFLyJFU4xscB7cgHG
	hqPog8V8OUPObUOhSD48JCCmiUdSgDOv9O87lMx8uEpfgY4GqhVPDOOzbwVJCrzNNjCLjIGjoS0
	4epMUa7n/2HhsZ2fyKXs0ksNqiAeFO8NzMket+KUBUy0Fz97svgC6gFBrHCHw3daZDnBaXFYrw0
	RYYKA==
X-Google-Smtp-Source: AGHT+IHvgsW+72UH83evf2dolDF2WuE16sGExLlhRvkOSZXTnbR2Ma9/Bj59kOw5YHrBIB/9T2o/Tv7lOMX/2sBSMSg=
X-Received: by 2002:a05:6808:3092:b0:434:e9a5:b7f4 with SMTP id
 5614622812f47-435ec3eda1fmr643463b6e.21.1755254019915; Fri, 15 Aug 2025
 03:33:39 -0700 (PDT)
MIME-Version: 1.0
References: <20250612100705.21988-1-frediano.ziglio@cloud.com>
 <CACHz=ZjeiTx5uktt8C=5CC+WzYywgV=e+w=nL++N+9cUbLUEiQ@mail.gmail.com> <CACHz=ZiYePphaH6GMM9OA25bzM2pBxCHFH=OidU7CckO=T6oMg@mail.gmail.com>
In-Reply-To: <CACHz=ZiYePphaH6GMM9OA25bzM2pBxCHFH=OidU7CckO=T6oMg@mail.gmail.com>
From: Frediano Ziglio <frediano.ziglio@cloud.com>
Date: Fri, 15 Aug 2025 11:33:29 +0100
X-Gm-Features: Ac12FXxvxDsJF0DChLCmtByMkRs4odZNNnK1SzI076bcUnsJ2HzutjfQlc7iLcU
Message-ID: <CACHz=ZhvbRuRQSNx9BZ_g+U7TvH=eyKD4-qJBNZomaiJnE4Xzw@mail.gmail.com>
Subject: Re: [PATCH v2] xen: Strip xen.efi by default
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, 
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Stefano Stabellini <sstabellini@kernel.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

ping

On Mon, Jul 28, 2025 at 11:34=E2=80=AFAM Frediano Ziglio
<frediano.ziglio@cloud.com> wrote:
>
> ping
>
> On Wed, Jun 25, 2025 at 12:49=E2=80=AFPM Frediano Ziglio
> <frediano.ziglio@cloud.com> wrote:
> >
> > On Thu, Jun 12, 2025 at 11:07=E2=80=AFAM Frediano Ziglio
> > <frediano.ziglio@cloud.com> wrote:
> > >
> > > For xen.gz file we strip all symbols and have an additional
> > > xen-syms file version with all symbols.
> > > Make xen.efi more coherent stripping all symbols too.
> > > xen.efi.elf can be used for debugging.
> > >
> > > Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
> > > ---
> > > Changes since v1:
> > > - avoid leaving target if some command fails
> > > ---
> > >  docs/misc/efi.pandoc  |  8 +-------
> > >  xen/Kconfig.debug     |  9 ++-------
> > >  xen/Makefile          | 19 -------------------
> > >  xen/arch/x86/Makefile |  8 +++++---
> > >  4 files changed, 8 insertions(+), 36 deletions(-)
> > >
> > > diff --git a/docs/misc/efi.pandoc b/docs/misc/efi.pandoc
> > > index 11c1ac3346..c66b18a66b 100644
> > > --- a/docs/misc/efi.pandoc
> > > +++ b/docs/misc/efi.pandoc
> > > @@ -20,13 +20,7 @@ Xen to load the configuration file even if multibo=
ot modules are found.
> > >  Once built, `make install-xen` will place the resulting binary direc=
tly into
> > >  the EFI boot partition, provided `EFI_VENDOR` is set in the environm=
ent (and
> > >  `EFI_MOUNTPOINT` is overridden as needed, should the default of `/bo=
ot/efi` not
> > > -match your system). When built with debug info, the binary can be qu=
ite large.
> > > -Setting `INSTALL_EFI_STRIP=3D1` in the environment will cause it to =
be stripped
> > > -of debug info in the process of installing. `INSTALL_EFI_STRIP` can =
also be set
> > > -to any combination of options suitable to pass to `strip`, in case t=
he default
> > > -ones don't do. The xen.efi binary will also be installed in `/usr/li=
b64/efi/`,
> > > -unless `EFI_DIR` is set in the environment to override this default.=
 This
> > > -binary will not be stripped in the process.
> > > +match your system).
> > >
> > >  The binary itself will require a configuration file (names with the =
`.efi`
> > >  extension of the binary's name replaced by `.cfg`, and - until an ex=
isting
> > > diff --git a/xen/Kconfig.debug b/xen/Kconfig.debug
> > > index d14093017e..cafbb1236c 100644
> > > --- a/xen/Kconfig.debug
> > > +++ b/xen/Kconfig.debug
> > > @@ -147,12 +147,7 @@ config DEBUG_INFO
> > >           Say Y here if you want to build Xen with debug information.=
 This
> > >           information is needed e.g. for doing crash dump analysis of=
 the
> > >           hypervisor via the "crash" tool.
> > > -         Saying Y will increase the size of the xen-syms and xen.efi
> > > -         binaries. In case the space on the EFI boot partition is ra=
ther
> > > -         limited, you may want to install a stripped variant of xen.=
efi in
> > > -         the EFI boot partition (look for "INSTALL_EFI_STRIP" in
> > > -         docs/misc/efi.pandoc for more information - when not using
> > > -         "make install-xen" for installing xen.efi, stripping needs =
to be
> > > -         done outside the Xen build environment).
> > > +         Saying Y will increase the size of the xen-syms and xen.efi=
.elf
> > > +         binaries.
> > >
> > >  endmenu
> > > diff --git a/xen/Makefile b/xen/Makefile
> > > index 8fc4e042ff..664c4ea7b8 100644
> > > --- a/xen/Makefile
> > > +++ b/xen/Makefile
> > > @@ -488,22 +488,6 @@ endif
> > >  .PHONY: _build
> > >  _build: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX)
> > >
> > > -# Strip
> > > -#
> > > -# INSTALL_EFI_STRIP, if defined, will cause xen.efi to be stripped b=
efore it
> > > -# is installed. If INSTALL_EFI_STRIP is '1', then the default option=
(s) below
> > > -# will be used. Otherwise, INSTALL_EFI_STRIP value will be used as t=
he
> > > -# option(s) to the strip command.
> > > -ifdef INSTALL_EFI_STRIP
> > > -
> > > -ifeq ($(INSTALL_EFI_STRIP),1)
> > > -efi-strip-opt :=3D --strip-debug --keep-file-symbols
> > > -else
> > > -efi-strip-opt :=3D $(INSTALL_EFI_STRIP)
> > > -endif
> > > -
> > > -endif
> > > -
> > >  .PHONY: _install
> > >  _install: D=3D$(DESTDIR)
> > >  _install: T=3D$(notdir $(TARGET))
> > > @@ -530,9 +514,6 @@ _install: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX)
> > >                 ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T=
)-$(XEN_VERSION).efi; \
> > >                 ln -sf $(T)-$(XEN_FULLVERSION).efi $(D)$(EFI_DIR)/$(T=
).efi; \
> > >                 if [ -n '$(EFI_MOUNTPOINT)' -a -n '$(EFI_VENDOR)' ]; =
then \
> > > -                       $(if $(efi-strip-opt), \
> > > -                            $(STRIP) $(efi-strip-opt) -p -o $(TARGET=
).efi.stripped $(TARGET).efi && \
> > > -                            $(INSTALL_DATA) $(TARGET).efi.stripped $=
(D)$(EFI_MOUNTPOINT)/efi/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi ||) \
> > >                         $(INSTALL_DATA) $(TARGET).efi $(D)$(EFI_MOUNT=
POINT)/efi/$(EFI_VENDOR)/$(T)-$(XEN_FULLVERSION).efi; \
> > >                 elif [ "$(D)" =3D "$(patsubst $(shell cd $(XEN_ROOT) =
&& pwd)/%,%,$(D))" ]; then \
> > >                         echo 'EFI installation only partially done (E=
FI_VENDOR not set)' >&2; \
> > > diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
> > > index ce724a9daa..e0ebc8c73e 100644
> > > --- a/xen/arch/x86/Makefile
> > > +++ b/xen/arch/x86/Makefile
> > > @@ -232,14 +232,16 @@ endif
> > >         $(MAKE) $(build)=3D$(@D) .$(@F).1r.o .$(@F).1s.o
> > >         $(LD) $(call EFI_LDFLAGS,$(VIRT_BASE)) -T $(obj)/efi.lds $< \
> > >               $(dot-target).1r.o $(dot-target).1s.o $(orphan-handling=
-y) \
> > > -             $(note_file_option) -o $@
> > > -       $(NM) -pa --format=3Dsysv $@ \
> > > +             $(note_file_option) -o $@.tmp
> > > +       $(NM) -pa --format=3Dsysv $@.tmp \
> > >                 | $(objtree)/tools/symbols --all-symbols --xensyms --=
sysv --sort \
> > >                 > $@.map
> > >  ifeq ($(CONFIG_DEBUG_INFO),y)
> > > -       $(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCO=
PY) -O elf64-x86-64 $@ $@.elf
> > > +       $(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(OBJCO=
PY) -O elf64-x86-64 $@.tmp $@.elf
> > > +       $(if $(filter --strip-debug,$(EFI_LDFLAGS)),:$(space))$(STRIP=
) $@.tmp
> > >  endif
> > >         rm -f $(dot-target).[0-9]* $(@D)/..$(@F).[0-9]*
> > > +       mv -f $@.tmp $@
> > >  ifeq ($(CONFIG_XEN_IBT),y)
> > >         $(SHELL) $(srctree)/tools/check-endbr.sh $@
> > >  endif
> >
> > Any comments on this version?
> >
> > Frediano


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 10:53:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 10:53:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083291.1442913 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ums3k-0004lw-S1; Fri, 15 Aug 2025 10:53:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083291.1442913; Fri, 15 Aug 2025 10:53: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 1ums3k-0004lp-OW; Fri, 15 Aug 2025 10:53:20 +0000
Received: by outflank-mailman (input) for mailman id 1083291;
 Fri, 15 Aug 2025 10:53:20 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oFbR=23=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ums3k-0004lj-1J
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 10:53:20 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0d70c377-79c6-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 12:53:18 +0200 (CEST)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-45a1b0becf5so8722225e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 03:53:19 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3bb676c9a72sm1474683f8f.34.2025.08.15.03.53.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Aug 2025 03:53: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>
X-Inumbo-ID: 0d70c377-79c6-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755255198; x=1755859998; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=PpLsbdrATSiDM+RZFfiNUwYqvZ8vpT7n+8yyslF3u8E=;
        b=lcrSpo+GJCrp0YNlHl8n8E93lD8Zm1id6zJv0i15Gp8rlrr+DLyX7XuDsM85Gny7je
         X1Hftt/DS7hgQ8uAsVTzVmc2FEzaWSOJCdm3/z44vdqRmmpRnbpLGn9D13pFSiM6MUD2
         hQ+zIsb7OXWyUY8cJBlm3ka/qo8nFWqyNIUEw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755255198; x=1755859998;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=PpLsbdrATSiDM+RZFfiNUwYqvZ8vpT7n+8yyslF3u8E=;
        b=TuLmHjE23O4TtKiHBxDrDWNHrjfsSyW7W5Er76UJvCtT1OrfBN139IvnfUUHhhqVMi
         M8YgP/UjFLebvMr7dVk0RQTnCbjieeUeb4MLIPXGZlDcPPTpHxkUD53LLSHG8r6lzFin
         hhdyrdHOH/yVdElN+z3MGGmfSJxJjZ0VgMOJsjGJI9BfkhIreCUSc63s/shzJFy7Bk2/
         TtdIZAWqZI3iaji9POebBo7MvZXEzNmdQdL17c4h33xeo0Jid0fwNqb860vcChIjI8AA
         0ViEeF81WTKUSNEuwdxo8d4HSwZQm4/z6eqFIBbzrphiQEdt9hceNCSC2GTaB5eHf+3+
         LBbg==
X-Gm-Message-State: AOJu0Ywu7IgZPiIiDUZM77qwvfjINTZraIasPcs/yqCgFiHsTZbFeQ4R
	nL9E4A5jvk6rLM9PmtDwoY61zgicLPm0OIMEryV9ReSwTDswY/fZ6jeUX75Pyh9TXA0=
X-Gm-Gg: ASbGncuJJ23Xlm7P528b1j1vbBrJau+b0off0qeCARVmimeZTkOJQmVkNwPEqXnOmUw
	8JiC+C5ZqxLUEh3f9qrPPb2m23me5RyEh5xYcSc9+vGlfyGgRlnePQjZWn0D1NJfAK8qCLY0gHI
	vDUPe+fVq8v5AE8ggXK4mq/Idw6U0+hCgHEXTv0cwr45OKQGOB5Jf4Y7hxYKml4pzZJ3EIsDFtG
	AStQBheQsbKRXKBFFwvygFzfmmeRYb7OBZlIk5GfcGKuDGmbMOwWB5B7dAByhZnxZjVQAuSRYgc
	qlU/4+2lALtL2XWK3U7yTggmAoSYDozIcQYPPRdOi5B2CFqdmMOPrkx2WasxV94eTZwcgHUV2gU
	mYOVUjSFbV5uKeXzB4pPPYO32Td3BFu03+sYqeKhI8AllGG+9Ckwc1Q/NcetWX7jdfUxM
X-Google-Smtp-Source: AGHT+IHqGODLtox0MwY/WdEm3XC8GJsvdI24QnQQy0uxgOmjVstANnnP+HpqnH9M6F84uJR4N+9Rcg==
X-Received: by 2002:a05:600c:354c:b0:459:d6a6:792 with SMTP id 5b1f17b1804b1-45a218580e4mr14756605e9.29.1755255198172;
        Fri, 15 Aug 2025 03:53:18 -0700 (PDT)
Message-ID: <aad0db65-06cd-4631-a6e8-de36fa6af85d@citrix.com>
Date: Fri, 15 Aug 2025 11:53:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen: Use auto as per C23
To: Jan Beulich <jbeulich@suse.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 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>,
 Roberto Bagnara <roberto.bagnara@bugseng.com>,
 "consulting @ bugseng . com" <consulting@bugseng.com>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>
References: <20250814222524.2638883-1-andrew.cooper3@citrix.com>
 <3056ed85948288639110e3cdd6b28c6e@bugseng.com>
 <f3ff5b2d-8077-4591-bf1f-bd658d705242@citrix.com>
 <7fc93aeef27153f1d6caa786bd44420f@bugseng.com>
 <caf19e2b-046e-495f-b425-9cb3a0053006@suse.com>
 <bd3f9c28-aaf4-479d-b56e-48838442f7a3@citrix.com>
 <5ff1e337-9ec5-466b-b21f-cf29274b007b@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: <5ff1e337-9ec5-466b-b21f-cf29274b007b@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15/08/2025 11:25 am, Jan Beulich wrote:
> On 15.08.2025 11:51, Andrew Cooper wrote:
>> On 15/08/2025 10:36 am, Jan Beulich wrote:
>>> On 15.08.2025 10:33, Nicola Vetrini wrote:
>>>> On 2025-08-15 10:17, Andrew Cooper wrote:
>>>>> On 15/08/2025 8:20 am, Nicola Vetrini wrote:
>>>>>> On 2025-08-15 00:25, Andrew Cooper wrote:
>>>>>>> In macros it is common to declare local variables using typeof(param)
>>>>>>> in order
>>>>>>> to ensure that side effects are only evaluated once.Â  A consequence
>>>>>>> of this is
>>>>>>> double textural expansion of the parameter, which can get out of hand
>>>>>>> very
>>>>>>> quickly with nested macros.
>>>>>>>
>>>>>>> In C23, the auto keyword has been repurposed to perform type 
>>>>>>> inference.
>>>>>>>
>>>>>>> A GCC extension, __auto_type, is now avaialble in the new toolchain
>>>>>>> baseline
>>>>>>> and avoids the double textural expansion.
>>>>>>>
>>>>>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>>>>> Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
>>>>> Thankyou.
>>>>>
>>>>>>> diff --git a/xen/include/xen/compiler.h b/xen/include/xen/compiler.h
>>>>>>> index 88bf26bc5109..38ef5d82ad95 100644
>>>>>>> --- a/xen/include/xen/compiler.h
>>>>>>> +++ b/xen/include/xen/compiler.h
>>>>>>> @@ -64,6 +64,20 @@
>>>>>>> Â # define asm_inline asm
>>>>>>> Â #endif
>>>>>>>
>>>>>>> +/*
>>>>>>> + * In C23, the auto keyword has been repurposed to perform type
>>>>>>> inference.
>>>>>>> + *
>>>>>>> + * This behaviour is available via the __auto_type extension in
>>>>>>> supported
>>>>>>> + * toolchains.
>>>>>>> + *
>>>>>>> + *
>>>>>>> https://www.gnu.org/software/c-intro-and-ref/manual/html_node/Auto-Type.html
>>>>>>> + * https://clang.llvm.org/docs/LanguageExtensions.html#auto-type
>>>>>>> + */
>>>>>>> +#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 202311L
>>>>>>> +/* SAF-3-safe MISRA C Rule 20.4: Giving the keyword it's C23
>>>>>>> meaning. */
>>>>>>> +#define auto __auto_type
>>>>>>> +#endif
>>>>>>> +
>>>>>> A more detailed explanation should live in deviations.rst under this
>>>>>> bullet point
>>>>>>
>>>>>> Â Â  * - R20.4
>>>>>> Â Â Â Â  - The override of the keyword \"inline\" in xen/compiler.h is
>>>>>> present so
>>>>>> Â Â Â Â Â Â  that section contents checks pass when the compiler chooses not 
>>>>>> to
>>>>>> Â Â Â Â Â Â  inline a particular function.
>>>>>> Â Â Â Â  - Comment-based deviation.
>>>>>>
>>>>>> as described in the SAF entry:
>>>>>>
>>>>>> Â Â Â Â Â Â Â  {
>>>>>> Â Â Â Â Â Â Â Â Â Â Â  "id": "SAF-3-safe",
>>>>>> Â Â Â Â Â Â Â Â Â Â Â  "analyser": {
>>>>>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "eclair": "MC3A2.R20.4"
>>>>>> Â Â Â Â Â Â Â Â Â Â Â  },
>>>>>> Â Â Â Â Â Â Â Â Â Â Â  "name": "MC3A2.R20.4: allow the definition of a macro with
>>>>>> the same name as a keyword in some special cases",
>>>>>> Â Â Â Â Â Â Â Â Â Â Â  "text": "The definition of a macro with the same name as a
>>>>>> keyword can be useful in certain configurations to improve the
>>>>>> guarantees that can be provided by Xen. See docs/misra/deviations.rst
>>>>>> for a precise rationale for all such cases."
>>>>>> Â Â Â Â Â Â Â  },
>>>>> Ah right.Â  What about this:
>>>>>
>>>>> "Xen does not use the \"auto\" keyword as a storage qualifier.Â  The
>>>>> override of the keyword \"auto\" in xen/compiler.h is to give it it's
>>>>> C23 behaviour of type inference."
>>>>>
>>>>> ?
>>>> Seems good to me. Maybe this should be spelled out in ./CODING_STYLE as 
>>>> well, so that newcomers don't trip over this?
>>> I'm not sure newcomers would look there, but in the absence of any better
>>> place that's perhaps indeed where to mention this.
>> How about this:
>>
>> diff --git a/CODING_STYLE b/CODING_STYLE
>> index 7bf3848444ad..e33b9d1170cf 100644
>> --- a/CODING_STYLE
>> +++ b/CODING_STYLE
>> @@ -129,6 +129,10 @@ Fixed width types should only be used when a fixed width quantity is
>> Â meant (which for example may be a value read from or to be written to a
>> Â register).
>> Â 
>> +Macros which otherwise would use "typeof(arg) newarg =" to avoid double
>> +evaluation of side effects should use "auto newarg =" per it's C23 behaviour,
>> +to also avoid double textural expansion.
>> +
>> Â Especially with pointer types, whenever the pointed to object is not
>> Â (supposed to be) modified, qualify the pointed to type with "const".
> That doesn't focus on the pitfall though, in that people shouldn't be using
> the "auto" keyword (except in said cases).

/sigh, this is why noone does patches to CODING_STYLE.

If you don't like the wording, propose some wording that you do like.

Or I will commit the patch without this hunk, because I'm not going to
get drawn into the cycle of blind guessing that every change to
CODING_STYLE seems to get caught in.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 11:22:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 11:22:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083311.1442922 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umsVa-0000jU-48; Fri, 15 Aug 2025 11:22:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083311.1442922; Fri, 15 Aug 2025 11:22: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 1umsVa-0000jN-14; Fri, 15 Aug 2025 11:22:06 +0000
Received: by outflank-mailman (input) for mailman id 1083311;
 Fri, 15 Aug 2025 11:22:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oFbR=23=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1umsVY-0000jA-8e
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 11:22:04 +0000
Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com
 [2a00:1450:4864:20::434])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0bfa693d-79ca-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 13:21:54 +0200 (CEST)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-3b9d41bfa35so1559636f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 04:21:54 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3bb7f02578dsm1511171f8f.62.2025.08.15.04.21.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Aug 2025 04:21: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>
X-Inumbo-ID: 0bfa693d-79ca-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755256913; x=1755861713; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=g6YkzUBDYEfpcZ37KsMoLWm73oRdBRcB99+AtHrh2GU=;
        b=wWm+CyPXYTq1Zjgnj4u0hnzqpmfzeIljNlRgJTOw4nxQGn8lp16iTyd4DGB8H4fZJV
         GsmjbBXsiJr0wUAgXbWaap37yaV/SDqrdzgFnTp22vPl+l7dulb9vqxqgSmuesB0Xiu+
         RKoEOW0JPHDRJccyzw7pa6Vj1l5zrJGUk4x68=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755256913; x=1755861713;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=g6YkzUBDYEfpcZ37KsMoLWm73oRdBRcB99+AtHrh2GU=;
        b=a3GA5HI3ewWWoeONX6S6rkMCI4KXuhb7xstRW3Ytia49Ke9XpEFMrINg56ZbvjWr38
         xoAwNW/lXT4jm15fdf4SEA/M2E6E95ERV4tigHVJ+VR73D3JCuUR/0YYtsj+6hreRU4x
         dlAco5zxz2plJk+3gjVbtYRPPuEsJufbHhzqL9IkTdelqlNU0b0LYTLaMFA+V4lg/SqE
         2f6ADS4syEuQ1ibRwRQtBcoTnJNH0Xs/IWqgZ4II3yeXmNo0te60mYZZe3s+tvkwUITx
         EVKmROUvr43cnTSYLZBFRi4ypjYO//aWY1cA569oXKbtc8ruKRdD9oai0gEWaVenCHLu
         RBDQ==
X-Forwarded-Encrypted: i=1; AJvYcCXhogRsTMkQGEysCDM4ky/K9tRcUItjS0IzYvTN7w/mun2A5iSU4c6gudMDmDhxJUW89gnbsWUm97Q=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwtBMu3lq4XNgAQjyc9gW+F2c1u2f+EyyLdFWJF9bsY2SHbLVaU
	i9onsJiP5xeR9NkvlIxqxlOmrEaYu8yPtob7JDbhrGxxPv7gosL5L7Sgo5TMaZdnaRc=
X-Gm-Gg: ASbGnctdNp57OSY/nL9ZZAd4i3Uo7KsfFRt5Jf4qItvmV9J5Ha0IRW3069rWJ5SqnrR
	DhxrPIDN0hi/qFEuG/SrsA7cSjGD3x1Tql2disAKsU+IzPglyVWppBi4hVBdUXXcJn+T4Q4xsOW
	yPc61Bq3x40HXxDIFP6GEe62IW5W/nNVfAdbhJJx3ak+4SrMMr8oQFZpZFFNv6l2Y+Xziksg55O
	76JXT+HYlbmAXKrRbIAu7C2e++KCCShbvWdse7P68YSoGDbt1hVni/nrbKyvqIjiPI9XurwwiAk
	058vtJ6NdkiHXI0nBUstXcwmOAn8F6hEFWtZwlms8tgVxSKuB12m6q3///BXznIsz1J9ilpzWVb
	LiygOiwzRnnyIAsDpichrpfMNJyI8YfEdV24IlWHhe528oU9nK2bbQqJRc6b863/nPQ8q
X-Google-Smtp-Source: AGHT+IFfkdHY8BsuzhT300ypF3WNgHFlTSYk7vVtZDaxyOBKH2RTblyZteQXSU6sFewxVk2b0v+X7w==
X-Received: by 2002:a05:600c:3513:b0:456:e39:ec1a with SMTP id 5b1f17b1804b1-45a21804c69mr12577105e9.14.1755256913434;
        Fri, 15 Aug 2025 04:21:53 -0700 (PDT)
Message-ID: <37206bd7-b455-499a-9632-f435ab87888e@citrix.com>
Date: Fri, 15 Aug 2025 12:21:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xsm/flask: add AVC pre-allocation boot parameter
To: Sergiy Kibrik <Sergiy_Kibrik@epam.com>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Stefano Stabellini <stefano.stabellini@amd.com>
References: <20250815102330.778749-1-Sergiy_Kibrik@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: <20250815102330.778749-1-Sergiy_Kibrik@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15/08/2025 11:23 am, Sergiy Kibrik wrote:
> diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
> index a75b6c9301..9044827e78 100644
> --- a/docs/misc/xen-command-line.pandoc
> +++ b/docs/misc/xen-command-line.pandoc
> @@ -238,6 +238,15 @@ loops for Queued Invalidation completions.**
>  Specify a maximum amount of available memory, to which Xen will clamp
>  the e820 table.
>  
> +### avc_prealloc
> +> `= <boolean>`
> +
> +> Default: `false`
> +
> +Allocate XSM Access Vector Cache at boot. This forbids runtime dynamic
> +allocation of AVC nodes from Xen heap and changing AVC size via
> +FLASK_SETAVC_THRESHOLD hypercall.

I don't have any input on memory allocation side of things, but this
needs to be a sub-option under the existing flask=, and it looks like
you're going to need to turn it into a comma separated list.

Also, if you actually want to use Flask in a safety system, Flask needs
to become security supported in Xen.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 11:36:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 11:36:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083330.1442958 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umsjC-0002mf-J2; Fri, 15 Aug 2025 11:36:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083330.1442958; Fri, 15 Aug 2025 11: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 1umsjC-0002mY-F7; Fri, 15 Aug 2025 11:36:10 +0000
Received: by outflank-mailman (input) for mailman id 1083330;
 Fri, 15 Aug 2025 11:36:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RDBg=23=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1umsjB-0002mS-PE
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 11:36:09 +0000
Received: from mail-oo1-xc2b.google.com (mail-oo1-xc2b.google.com
 [2607:f8b0:4864:20::c2b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 078cd27f-79cc-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 13:36:06 +0200 (CEST)
Received: by mail-oo1-xc2b.google.com with SMTP id
 006d021491bc7-61bd4ba9fafso597672eaf.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 04:36: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>
X-Inumbo-ID: 078cd27f-79cc-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1755257765; x=1755862565; 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=88s+LwtH5M8MvWXP+YQs20eZKOWUrlWO3DOfhaSJxSo=;
        b=B/aSC5AlJK4gUafsPd6bD5T8BvUdmGLHCQwil4cX18RhKaBga2RH3+saW6VitBchwh
         tF3i3r9itpAOWoiPAotFKEa0RGa7QCwfoIfQME3nA47UejF4Jo1cI2wc2dCg2UQ+0SZK
         X+3Yq3L3VjbMqI4voKx6JMRWPvcViDSbeZYnY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755257765; x=1755862565;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=88s+LwtH5M8MvWXP+YQs20eZKOWUrlWO3DOfhaSJxSo=;
        b=SyIaZXSOeMAp060k/0mFJUdMo/oF1dUXFGnNIy6eHOO0X9s0KjWup9m1ckWl9MgTls
         OIPRaeKINiYics5fPvFJBMn24dZNIDdXbPPYZO7c5obk2YlTu58kmcQxRso5UmNYkh9p
         4cMv2EEvEID/mtbpZ5XB8PEltSkl6VAKYiocqpwCDIzF9xilPJuSzEHTbJXYjRga0Y9L
         5gHkPn6l3zFQFYC4laVSGfG1lWLgx7XTA2ty7HimLdGDl1zhmBlotwFj9y/qHgmnbl15
         O+Ywrm7JZCCtJEjgbnmNsl4iJkBN907UXYw5m9cxZiyb2fCibTCoLC3OYC4bD+mI0UVA
         aSyQ==
X-Gm-Message-State: AOJu0YwvQs5Jo1qkrPGxRnOEhnXMug9fl7iOoW1uIa8bbfS4WqzKA5aw
	6K/pMibjHnihbhHPZ6qk1Uz5r8yxmSp3libwLUbfOmeWb6AuH3SK7DDgVJQnCMKFCEPSOWgrza7
	zMqShhuQDaLCmahHzA7wc5YX/PHyBKsf/2dLcYWrJCA==
X-Gm-Gg: ASbGncsB0mVvjIG2eKnXUWh4YKDN7aB2ILrsLOzETrRUmlPUDha1bqVviTj4569ZV5H
	Gwb1O3n2DzCHXfYsI5X7nAtP5lbL0Vn/1mvedSws0wL0dJKPZ89qS6UbvX72HOogwtP9hspMFRZ
	GDuwQ8893TBHEsgWXZzZp8GscZ/hdgeBBo1TIoZaFyGHmT+rAr09Qg4+wyI2kyWwhJgqVkISvuA
	oNLYRI=
X-Google-Smtp-Source: AGHT+IEuoINvLaaUyfbos5t52MXcUB7aOp+Pe5YN7OAe7VOwYXMmTVg9v+DTOZG6pY4XLullwHxxPzEq8QTyoMk6Aus=
X-Received: by 2002:a05:6820:228d:b0:61b:d93c:eb30 with SMTP id
 006d021491bc7-61beac2af48mr1006698eaf.7.1755257765144; Fri, 15 Aug 2025
 04:36:05 -0700 (PDT)
MIME-Version: 1.0
References: <20250814222524.2638883-1-andrew.cooper3@citrix.com>
In-Reply-To: <20250814222524.2638883-1-andrew.cooper3@citrix.com>
From: Frediano Ziglio <frediano.ziglio@cloud.com>
Date: Fri, 15 Aug 2025 12:35:54 +0100
X-Gm-Features: Ac12FXzeqTLRUVPyFsJhJ7p1Y3OIqvB6iO0MHD6jYJtqRE7ObzkwnvR7CChn8ik
Message-ID: <CACHz=ZhFgyy4GoZEge1wJahdq=F8bSiU+dNubqEMj6n_Myzydg@mail.gmail.com>
Subject: Re: [PATCH v2] xen: Use auto as per C23
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, 
	Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, 
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Roberto Bagnara <roberto.bagnara@bugseng.com>, 
	Nicola Vetrini <nicola.vetrini@bugseng.com>, 
	"consulting @ bugseng . com" <consulting@bugseng.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, Aug 14, 2025 at 11:25=E2=80=AFPM Andrew Cooper
<andrew.cooper3@citrix.com> wrote:
>
> In macros it is common to declare local variables using typeof(param) in =
order
> to ensure that side effects are only evaluated once.  A consequence of th=
is is
> double textural expansion of the parameter, which can get out of hand ver=
y
> quickly with nested macros.
>
> In C23, the auto keyword has been repurposed to perform type inference.
>
> A GCC extension, __auto_type, is now avaialble in the new toolchain basel=
ine
> and avoids the double textural expansion.
>
> 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=C3=A9 <roger.pau@citrix.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Roberto Bagnara <roberto.bagnara@bugseng.com>
> CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
> CC: consulting@bugseng.com <consulting@bugseng.com>
>
> The resulting build is identical.
>
> v2:
>  * Use auto directly
>  * Eclair configuration
>
> https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/198528943=
4
> ---
>  automation/eclair_analysis/ECLAIR/toolchain.ecl | 11 +++++++++--
>  docs/misra/C-language-toolchain.rst             |  2 ++
>  xen/include/xen/compiler.h                      | 14 ++++++++++++++
>  xen/include/xen/macros.h                        | 14 +++++++-------
>  4 files changed, 32 insertions(+), 9 deletions(-)
>
> diff --git a/automation/eclair_analysis/ECLAIR/toolchain.ecl b/automation=
/eclair_analysis/ECLAIR/toolchain.ecl
> index 842f8377e561..125f99a06583 100644
> --- a/automation/eclair_analysis/ECLAIR/toolchain.ecl
> +++ b/automation/eclair_analysis/ECLAIR/toolchain.ecl
> @@ -15,6 +15,7 @@
>      __alignof__, __alignof: see Sections \"6.48 Alternate Keywords\" and=
 \"6.44 Determining the Alignment of Functions, Types or Variables\" of "GC=
C_MANUAL".
>      asm, __asm__: see Sections \"6.48 Alternate Keywords\" and \"6.47 Ho=
w to Use Inline Assembly Language in C Code\" of "GCC_MANUAL".
>      __attribute__: see Section \"6.39 Attribute Syntax\" of "GCC_MANUAL"=
.
> +    __auto_type: see Section \"6.7 Referring to a Type with typeof\" of =
"GCC_MANUAL".
>      __builtin_offsetof: see Section \"6.53 Support for offsetof\" of "GC=
C_MANUAL".
>      __builtin_types_compatible_p: see Section \"6.59 Other Built-in Func=
tions Provided by GCC\" of "GCC_MANUAL".
>      __builtin_va_arg: non-documented GCC extension.
> @@ -26,6 +27,7 @@
>  -name_selector+=3D{alignof, "^(__alignof__|__alignof)$"}
>  -name_selector+=3D{asm, "^(__asm__|asm)$"}
>  -name_selector+=3D{attribute, "^__attribute__$"}
> +-name_selector+=3D{auto_type, "^__auto_type$"}
>  -name_selector+=3D{builtin_offsetof, "^__builtin_offsetof$"}
>  -name_selector+=3D{builtin_types_p, "^__builtin_types_compatible_p$"}
>  -name_selector+=3D{builtin_va_arg, "^__builtin_va_arg$"}
> @@ -39,6 +41,7 @@
>  "alignof||
>  asm||
>  attribute||
> +auto_type||
>  builtin_offsetof||
>  builtin_types_p||
>  builtin_va_arg||
> @@ -114,6 +117,7 @@ volatile"
>  -doc_end
>
>  -doc_begin=3D"
> +    ext_auto_type: see Section \"6.7 Referring to a Type with typeof\" o=
f "GCC_MANUAL".
>      ext_c_missing_varargs_arg: see Section \"6.21 Macros with a Variable=
 Number of Arguments\" of "GCC_MANUAL".
>      ext_enum_value_not_int: non-documented GCC extension.
>      ext_flexible_array_in_array: see Section \"6.18 Arrays of Length Zer=
o\" of "GCC_MANUAL".
> @@ -126,6 +130,7 @@ volatile"
>      ext_return_has_void_expr: see the documentation for -Wreturn-type in=
 Section \"3.8 Options to Request or Suppress Warnings\" of "GCC_MANUAL".
>      ext_sizeof_alignof_void_type: see Section \"6.24 Arithmetic on void-=
 and Function-Pointers\" of "GCC_MANUAL".
>  "
> +-name_selector+=3D{ext_auto_type, "^ext_auto_type$"}
>  -name_selector+=3D{ext_c_missing_varargs_arg, "^ext_c_missing_varargs_ar=
g$"}
>  -name_selector+=3D{ext_enum_value_not_int, "^ext_enum_value_not_int$"}
>  -name_selector+=3D{ext_flexible_array_in_array, "^ext_flexible_array_in_=
array$"}
> @@ -139,7 +144,8 @@ volatile"
>  -name_selector+=3D{ext_sizeof_alignof_void_type, "^ext_sizeof_alignof_vo=
id_type$"}
>
>  -config=3DSTD.diag,behavior+=3D{c99,GCC_ARM64,
> -"ext_c_missing_varargs_arg||
> +"ext_auto_type||
> +ext_c_missing_varargs_arg||
>  ext_forward_ref_enum_def||
>  ext_gnu_array_range||
>  ext_gnu_statement_expr_macro||
> @@ -149,7 +155,8 @@ ext_return_has_void_expr||
>  ext_sizeof_alignof_void_type"
>  }
>  -config=3DSTD.diag,behavior+=3D{c99,GCC_X86_64,
> -"ext_c_missing_varargs_arg||
> +"ext_auto_type||
> +ext_c_missing_varargs_arg||
>  ext_enum_value_not_int||
>  ext_flexible_array_in_array||
>  ext_flexible_array_in_struct||
> diff --git a/docs/misra/C-language-toolchain.rst b/docs/misra/C-language-=
toolchain.rst
> index cb81f5c09872..635936004554 100644
> --- a/docs/misra/C-language-toolchain.rst
> +++ b/docs/misra/C-language-toolchain.rst
> @@ -94,6 +94,8 @@ The table columns are as follows:
>            see Sections "6.48 Alternate Keywords" and "6.44 Determining t=
he Alignment of Functions, Types or Variables" of GCC_MANUAL.
>         __attribute__:
>            see Section "6.39 Attribute Syntax" of GCC_MANUAL.
> +       __auto_type:
> +          see Section "6.7 Referring to a Type with typeof" of GCC_MANUA=
L.
>         __builtin_types_compatible_p:
>            see Section "6.59 Other Built-in Functions Provided by GCC" of=
 GCC_MANUAL.
>         __builtin_va_arg:
> diff --git a/xen/include/xen/compiler.h b/xen/include/xen/compiler.h
> index 88bf26bc5109..38ef5d82ad95 100644
> --- a/xen/include/xen/compiler.h
> +++ b/xen/include/xen/compiler.h
> @@ -64,6 +64,20 @@
>  # define asm_inline asm
>  #endif
>
> +/*
> + * In C23, the auto keyword has been repurposed to perform type inferenc=
e.
> + *
> + * This behaviour is available via the __auto_type extension in supporte=
d
> + * toolchains.
> + *
> + * https://www.gnu.org/software/c-intro-and-ref/manual/html_node/Auto-Ty=
pe.html
> + * https://clang.llvm.org/docs/LanguageExtensions.html#auto-type
> + */
> +#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 202311L
> +/* SAF-3-safe MISRA C Rule 20.4: Giving the keyword it's C23 meaning. */
> +#define auto __auto_type
> +#endif
> +
>  /*
>   * Add the pseudo keyword 'fallthrough' so case statement blocks
>   * must end with any of these keywords:
> diff --git a/xen/include/xen/macros.h b/xen/include/xen/macros.h
> index f9ccde86fb23..ceca2e4a1bf1 100644
> --- a/xen/include/xen/macros.h
> +++ b/xen/include/xen/macros.h
> @@ -63,18 +63,18 @@
>  /* Hide a value from the optimiser. */
>  #define HIDE(x)                                 \
>      ({                                          \
> -        typeof(x) _x =3D (x);                     \
> +        auto _x =3D (x);                          \
>          asm volatile ( "" : "+r" (_x) );        \
>          _x;                                     \
>      })
>
>  #define ABS(x) ({                              \
> -    typeof(x) x_ =3D (x);                        \
> +    auto x_ =3D (x);                             \
>      (x_ < 0) ? -x_ : x_;                       \
>  })
>
>  #define SWAP(a, b) \
> -   do { typeof(a) t_ =3D (a); (a) =3D (b); (b) =3D t_; } while ( 0 )
> +   do { auto t_ =3D (a); (a) =3D (b); (b) =3D t_; } while ( 0 )
>
>  #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]) + __must_be_array(x))
>
> @@ -102,15 +102,15 @@
>   */
>  #define min(x, y)                               \
>      ({                                          \
> -        const typeof(x) _x =3D (x);               \
> -        const typeof(y) _y =3D (y);               \
> +        const auto _x =3D (x);                    \
> +        const auto _y =3D (y);                    \
>          (void)(&_x =3D=3D &_y); /* typecheck */     \
>          _x < _y ? _x : _y;                      \
>      })
>  #define max(x, y)                               \
>      ({                                          \
> -        const typeof(x) _x =3D (x);               \
> -        const typeof(y) _y =3D (y);               \
> +        const auto _x =3D (x);                    \
> +        const auto _y =3D (y);                    \
>          (void)(&_x =3D=3D &_y); /* typecheck */     \
>          _x > _y ? _x : _y;                      \
>      })
>
> base-commit: b2c0dc44b37516b758c38de04c61ad295ac0dff2

Thanks for the change, nice to have it.

Reviewed-by: Frediano Ziglio <frediano.ziglio@cloud.com>

Frediano


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 11:43:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 11:43:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083340.1442967 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umsqa-0004Sx-8w; Fri, 15 Aug 2025 11:43:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083340.1442967; Fri, 15 Aug 2025 11: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 1umsqa-0004Sq-6N; Fri, 15 Aug 2025 11:43:48 +0000
Received: by outflank-mailman (input) for mailman id 1083340;
 Fri, 15 Aug 2025 11:43:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oFbR=23=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1umsqY-0004Sk-Ob
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 11:43:46 +0000
Received: from mail-wr1-x42a.google.com (mail-wr1-x42a.google.com
 [2a00:1450:4864:20::42a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1978064e-79cd-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 13:43:45 +0200 (CEST)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-3b9dc55d84bso1445075f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 04:43:45 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45a2231f6a0sm16714685e9.13.2025.08.15.04.43.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Aug 2025 04: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>
X-Inumbo-ID: 1978064e-79cd-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755258225; x=1755863025; 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=46KruP2C9ZyuN3HowYFlaJL5UmOyGq3m48gy3Sr3B/U=;
        b=u4AskVu6Ui0yDBb2jDxH3sYEeWrOgoxexYpXT2vT8ZVkCL5dxZNbd1x6lshDhcFNqU
         cXwxbh+QX6HAZEa8wMfr7BT8te0SMf9ILh/nm9JC4cXEL2AeX51L/GyqerneTUEgWpHk
         AY52UrQj1OBelkiGr7ses2TnRtMa1b4dTYf6w=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755258225; x=1755863025;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=46KruP2C9ZyuN3HowYFlaJL5UmOyGq3m48gy3Sr3B/U=;
        b=NMfWnko9m+ejkH/BI0Wy6qSpWQNxK2MhbvMznHu9qXEZ6+F89TGVlraBIMSbkGBVN/
         BJ6GGdkIhKVUauepKIriVrGfpZKNXUMkZqBIw0qoD5rCAx0UTBTzgXrHA6R47b1lxrUR
         YKp0UkGs5bG8dU4dZSCBspt8N/kowlXfHDkEAWsGWWKy9S0mGOhvdXPf9DFDzPy1wplo
         hBnpIpeJflsteIH29KsSFY5eA4wAf8iURMt7C3XSXUBOhZv0kyf+HSCxUHPHPg/ayCwK
         hDkxG4bZlgd3sqW0yd7+PQvVkTiQ9zGWmzKammjp9L6UDA94+fQbt26V7t599hIeOOH6
         aHVA==
X-Forwarded-Encrypted: i=1; AJvYcCVO7opq8RZ82E4EHvsT8hTSQoAIrNrH4qgvLtqzwrTr7RCt8eqqDepym/CTFuySiIhj393mnb/elwg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwlGvsKGl5N1oWtZevzYRujfip5ddZ7nZfbUgLSzzp69++l0nJO
	p7QGi0M5GOW13SZbZyOn9aBF6pIw3r3L0cSNheJTREftAfbl/e515iiizmsxMaqdBOo=
X-Gm-Gg: ASbGncssfS2IGemEARwgwf3sSRim1oeobsCKiBuJ/nQvHxrDtNbLtLyZ8rLuQVkXcXy
	4d+F7OPU/XEaM5NYzpKgfpXO+ZIRPOG2eXxRabhqXNG19NKN0Rr19E2ouAJwnWyswz8CwJFBM5L
	ukJqMxe+V2nlleYIb5hX1cMjW+yXPfh8fzOU+S+tFdcSzISz4ZbpC+JpUt8UBgqD/20rL5OFfOv
	nyymy+/320siPcnMIdTkALIUvwLOF95w06NvkOHCbQnrwLkGCtqpo+nbSHdritqRwG4+WJ/+bUy
	eE1GNGdL+4VnwopxF3RlXd2NbStKOZUSbJu4+CBMzX0Jv5qkzzN0TyajyDmUPrVdzE/IlTnB18N
	4lduzj8y44VjxudU4ipAlHidYzlNukiA7uA31pun0Iee3c8Yhy7qtoz7H4Nf0fX/TyXNE64s274
	b48vc=
X-Google-Smtp-Source: AGHT+IFnyT5f5/wW6SHmrzkVDEJYdRgnY0WIWLKTUlHMHLCuTaZ1MJLrgKsVMUIYMH+hb73DtGKeeA==
X-Received: by 2002:a05:6000:2210:b0:3b9:1443:aba with SMTP id ffacd0b85a97d-3bb669435bemr1277245f8f.9.1755258224776;
        Fri, 15 Aug 2025 04:43:44 -0700 (PDT)
Message-ID: <0a828038-69e4-4ffb-bc88-0359213ad878@citrix.com>
Date: Fri, 15 Aug 2025 12:43:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xsm/flask: add AVC pre-allocation boot parameter
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Sergiy Kibrik <Sergiy_Kibrik@epam.com>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Stefano Stabellini <stefano.stabellini@amd.com>
References: <20250815102330.778749-1-Sergiy_Kibrik@epam.com>
 <37206bd7-b455-499a-9632-f435ab87888e@citrix.com>
Content-Language: en-GB
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: <37206bd7-b455-499a-9632-f435ab87888e@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15/08/2025 12:21 pm, Andrew Cooper wrote:
> On 15/08/2025 11:23 am, Sergiy Kibrik wrote:
>> diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
>> index a75b6c9301..9044827e78 100644
>> --- a/docs/misc/xen-command-line.pandoc
>> +++ b/docs/misc/xen-command-line.pandoc
>> @@ -238,6 +238,15 @@ loops for Queued Invalidation completions.**
>>  Specify a maximum amount of available memory, to which Xen will clamp
>>  the e820 table.
>>  
>> +### avc_prealloc
>> +> `= <boolean>`
>> +
>> +> Default: `false`
>> +
>> +Allocate XSM Access Vector Cache at boot. This forbids runtime dynamic
>> +allocation of AVC nodes from Xen heap and changing AVC size via
>> +FLASK_SETAVC_THRESHOLD hypercall.
> I don't have any input on memory allocation side of things, but this
> needs to be a sub-option under the existing flask=, and it looks like
> you're going to need to turn it into a comma separated list.
>
> Also, if you actually want to use Flask in a safety system, Flask needs
> to become security supported in Xen.

Sorry, sent a little too early.Â  x86's dom0= is probably the closes good
example to follow, having both comma separated booleans and a choice-of-$N.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 12:20:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 12:20:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083353.1442976 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umtQL-0001Sl-3F; Fri, 15 Aug 2025 12:20:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083353.1442976; Fri, 15 Aug 2025 12:20: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 1umtQL-0001Se-0X; Fri, 15 Aug 2025 12:20:45 +0000
Received: by outflank-mailman (input) for mailman id 1083353;
 Fri, 15 Aug 2025 12:20:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5DW6=23=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umtQJ-0001SY-F6
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 12:20:43 +0000
Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com
 [2a00:1450:4864:20::52b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 42626df7-79d2-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 14:20:41 +0200 (CEST)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-6188b73bef3so3269158a12.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 05:20: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
 4fb4d7f45d1cf-618af9e042fsm1381178a12.27.2025.08.15.05.20.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Aug 2025 05:20: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>
X-Inumbo-ID: 42626df7-79d2-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755260441; x=1755865241; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=IihHkFiwVS08R3oZ9R55usIUU0voPkzswi1Iu31kr/U=;
        b=IDPgRnoSOskhYWtU1yaeF3y1kf86s/45UC06UCpsEddUW4cVNtSnjEry1r0SLrO9Tu
         3aLiwtDfx9csjZeMTC3NpB/S1mLz3C3NoH1oCRp9wlFa0osQc1Df2qVfrSo4+gdhkkp8
         DZgUR8LlZGZY6UxqeUlJbv0UllgkmDkgBbP+q2MCxGh5+cTcgy1Yg207TCFmHIz4cQhB
         iHlTyNubgXkmWyGsq8RTZwYUoIlnwmtmwprXUPYqv47j5fOhJ9ByuFyUNGIui9R4Q0UP
         V3308AogjsSfAS2DAfXdTH/UHPKRSwypX5RwRijV7gJ7C6JQaUFbbKm/h9Nibvh16FR7
         vqnQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755260441; x=1755865241;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=IihHkFiwVS08R3oZ9R55usIUU0voPkzswi1Iu31kr/U=;
        b=FRcnBEpPfI1Y/v2xCu5OF8LR4g2tONaSW98thqUngByhcSBZI7J92MsbvffO3hcitc
         87qE2s+817AtZcusE147p2ijYz+Z0ZlLorUqVNPn3E9BzUKaLp57y1wwvDFqMtpsuz2l
         flGgGNILX8WNmLmv7uLgM3IuFkm9mVSjB6RzuuLJS3lEQmXSAV+mdFZ3lrZmm6DLFEL/
         leOIe2Cw69NJ5BlxzHoneDWd020Xv5R+cqq77a2kVZBv9LNHrkavf7ezOVHpE30rlN/X
         +iM1rXvWgHIZw+7a037w6Ooyovx2HZusw0YOePvIA48eFzFBw0KutgIdhFnwMVyPtLNX
         D+SA==
X-Forwarded-Encrypted: i=1; AJvYcCUhS67o3Y1irnm/aIsaLlrNZqoNr0q1OiPtRxJcblpBp7Fkm0BJj68vVDeonpwRQTYcWZ8KBRcQlPE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwioSZJDNtOBNZTVIlRBlaLyChw+EH/qbPRbKSXv6XnwTDG+Gem
	cmtx5ES+KluvJ05BEUji8N0dTS3jq4+PaJp2ajBME97T3Qq/kIxZc9xIB73t+p5XwQ==
X-Gm-Gg: ASbGncvgnantnDKe1yblIZAFUvuE+vtLoG1h3wEtidQVn+g0i5rgHvR6SQxBMb2B7eO
	UnoEs2z5CwF7gxWUluru6cYQZtTzDPQzAbGeEbHLYWRAZsBh3FsbU5C6I9y52EjdwtxYICCljK2
	gSIVGWKlk/KPYNCgUeCt2LtK09P9BSZpaNrr2yhnrjM1sqYS/36WyWpsw0l+KEnPytpbFZJb2Zn
	RrOUZ8R/L1q8MCmqAOUtbmDPDh7HmaLGEfU10uzpL9N+4LrcnVhuezqBxWun8+ei3jJjtJTet+i
	wHewDGqR9NRj4a/eBKoj38LGLaANT4oVlzovX1qPD2UscDHQ9g2u6yIZbNxlCg6TyZKkPPZuHTw
	yeFPdOQbH1PBqOp1z0vGckQHmGm4tJKcTHC3IZRBNjaC9AFYdQi/ZkIyg84ch2LcXIrsatalhcE
	USkUcYc7E=
X-Google-Smtp-Source: AGHT+IGt02WTlqu32dUIC4+gQLzLODcKMxQkhh2uFGkz3/WzNh+0rbmtSNz/xeH2oYccB9hnSufxug==
X-Received: by 2002:a05:6402:3595:b0:618:1cc6:8e75 with SMTP id 4fb4d7f45d1cf-618b051058bmr1396098a12.14.1755260440780;
        Fri, 15 Aug 2025 05:20:40 -0700 (PDT)
Message-ID: <de3fa546-1ef8-46f6-85e9-4902379bd435@suse.com>
Date: Fri, 15 Aug 2025 14:20:39 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xsm/flask: add AVC pre-allocation boot parameter
To: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Stefano Stabellini <stefano.stabellini@amd.com>,
 xen-devel@lists.xenproject.org
References: <20250815102330.778749-1-Sergiy_Kibrik@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: <20250815102330.778749-1-Sergiy_Kibrik@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.08.2025 12:23, Sergiy Kibrik wrote:
> --- a/docs/misc/xen-command-line.pandoc
> +++ b/docs/misc/xen-command-line.pandoc
> @@ -238,6 +238,15 @@ loops for Queued Invalidation completions.**
>  Specify a maximum amount of available memory, to which Xen will clamp
>  the e820 table.
>  
> +### avc_prealloc

In addition to what Andrew said, please prefer dashes over underscores in new
options.

> @@ -97,6 +99,9 @@ static struct avc_cache avc_cache;
>  
>  static DEFINE_RCU_READ_LOCK(avc_rcu_lock);
>  
> +bool __read_mostly opt_avc_prealloc = false;

__ro_after_init?

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 12:28:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 12:28:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083372.1442987 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umtXb-000268-QF; Fri, 15 Aug 2025 12:28:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083372.1442987; Fri, 15 Aug 2025 12:28: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 1umtXb-000261-M3; Fri, 15 Aug 2025 12:28:15 +0000
Received: by outflank-mailman (input) for mailman id 1083372;
 Fri, 15 Aug 2025 12:28:13 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5DW6=23=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umtXZ-00025v-Qr
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 12:28:13 +0000
Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com
 [2a00:1450:4864:20::533])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4de237c1-79d3-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 14:28:10 +0200 (CEST)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-6188b6f7f15so2586151a12.2
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 05:28: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
 a640c23a62f3a-afcdce72d8asm148660966b.36.2025.08.15.05.28.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Aug 2025 05:28: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>
X-Inumbo-ID: 4de237c1-79d3-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755260889; x=1755865689; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=9RHjRkndutA3QalWX38+A9hxEcPn6zasAuFckxzBxW4=;
        b=LHH+e58FAh/1CVgNqvGhBn/WbeulC+c12b6hart/oB+Hk13BBKHZJvCCTI8YsN48xp
         SwzcINeN28FWNpXwIYIYJpQjTnw5GVliMpJn7EWDxPXHvNfpZwvB0ST8CeAwmMT8oTja
         JwS7gZQIr/XoimVaq04Cg7WiOSUNCCXhG79qjwvXqAI+fYtwYrRvYwcoAwhLvGRice2S
         EIG5NItxqSYn4paSA1pCU3LNkJVOw5ndWEj6L4ekG/0MsjmvTpsJDkkdbXfRCtJtrmeQ
         jsdFQQtP075GM6+TSVUmWR13+338/pP2fGDijq6QmQhhlemXR8KAqjPbjcvF9cL/plT3
         7H+g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755260889; x=1755865689;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9RHjRkndutA3QalWX38+A9hxEcPn6zasAuFckxzBxW4=;
        b=iqdeuLXQ3B7W/MVKq/qSIpgSM4DtoHdsyWrxFx+EdfNjA1OCziJde1kJDyX4F2DUX/
         bDw7dhKMVmG5km1D04cYY+q0+FZ4E1pexKmMNgmq3hT1I6l0Er0oUYKG6PEbDY4/9dNp
         0WRAftPYE6mxP4LSHXdVz5r/U8R2Y9tt2LA2W26QVPpIKHI3Xz7M7VvHwOmaqtBvOs9Y
         88o9mvOBTwQnS3m7Wrhhq0g8RBZzLNxfD8Z8SFfUNcWnfdVol1gmepDVXDYLq30+lgvg
         0u/LPtx5+4VxdtT0X0iKuO7RJJw61ArmqIsfeNRUfH0cm2hDy+mu2RMrjs9HkzCyZdDn
         mYoQ==
X-Gm-Message-State: AOJu0YxADnDzdkMv7fRLp25oERUAld82wnZiAO+fwXFrPtmPizxBnCx0
	etaSI+CnwtxWboz0GU4kF37LtKTBC6IpfHQye+utSLFfOKJAqP1lKtQFMUrzHX23fQ==
X-Gm-Gg: ASbGncsVFkbyNc9qWZl1b4YLwH8o+c8Ck4FSUbWUScoCqKLR5zxGHGMDTsE5fk3eQo1
	qsWxT57PEbDuo9TzrRsSFLdIa1iadYe6qw0Cz0Z0t7SkHHMRlySAgHmn70pBcNyuQBBABnJZW5Z
	5toVLYia1vsUgYgNcAkCXIku4b7h5pSkKmIKvAp8KImsvwB6NKoeFyGNII6bJtXDxv0GWUkUKPS
	w2GQTI6xvRzyWoB/dOQXtaLn3kJa6t53ZYieJjPbAVZt+F0Mr18bnHJEcKHcrHuyPl+CtsXrk33
	xqH+V5YvvKW5NKcEYJEqZRRv/pZIW87DkHPcfkjLvWyJ33DGZFAI06ZWL6MTyCD+Z7fJjluv/ai
	f7P1o4B6VRESJBCaQXnRJU7wQNZBuCdPnFSOmubbeU2/savQv2j51x1WWybL1TwXuZVL64/QIoz
	SOLYnYgnw1K0RNkriJiA==
X-Google-Smtp-Source: AGHT+IGiJAsboVDTXZhd6iXChGnH0vtzvxOmCYJukGs/a0hJNoPiOM21aLxzVvbuPdJj++R2aQON4w==
X-Received: by 2002:a17:906:6a0f:b0:ae8:4776:fbb1 with SMTP id a640c23a62f3a-afcdc03d360mr158570566b.11.1755260889490;
        Fri, 15 Aug 2025 05:28:09 -0700 (PDT)
Message-ID: <8efa3103-fad9-4921-a5ef-04e7a7c80715@suse.com>
Date: Fri, 15 Aug 2025 14:28:08 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen: Use auto as per C23
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Roberto Bagnara <roberto.bagnara@bugseng.com>,
 "consulting @ bugseng . com" <consulting@bugseng.com>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>
References: <20250814222524.2638883-1-andrew.cooper3@citrix.com>
 <3056ed85948288639110e3cdd6b28c6e@bugseng.com>
 <f3ff5b2d-8077-4591-bf1f-bd658d705242@citrix.com>
 <7fc93aeef27153f1d6caa786bd44420f@bugseng.com>
 <caf19e2b-046e-495f-b425-9cb3a0053006@suse.com>
 <bd3f9c28-aaf4-479d-b56e-48838442f7a3@citrix.com>
 <5ff1e337-9ec5-466b-b21f-cf29274b007b@suse.com>
 <aad0db65-06cd-4631-a6e8-de36fa6af85d@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: <aad0db65-06cd-4631-a6e8-de36fa6af85d@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15.08.2025 12:53, Andrew Cooper wrote:
> On 15/08/2025 11:25 am, Jan Beulich wrote:
>> On 15.08.2025 11:51, Andrew Cooper wrote:
>>> On 15/08/2025 10:36 am, Jan Beulich wrote:
>>>> On 15.08.2025 10:33, Nicola Vetrini wrote:
>>>>> On 2025-08-15 10:17, Andrew Cooper wrote:
>>>>>> On 15/08/2025 8:20 am, Nicola Vetrini wrote:
>>>>>>> On 2025-08-15 00:25, Andrew Cooper wrote:
>>>>>>>> In macros it is common to declare local variables using typeof(param)
>>>>>>>> in order
>>>>>>>> to ensure that side effects are only evaluated once.Â  A consequence
>>>>>>>> of this is
>>>>>>>> double textural expansion of the parameter, which can get out of hand
>>>>>>>> very
>>>>>>>> quickly with nested macros.
>>>>>>>>
>>>>>>>> In C23, the auto keyword has been repurposed to perform type 
>>>>>>>> inference.
>>>>>>>>
>>>>>>>> A GCC extension, __auto_type, is now avaialble in the new toolchain
>>>>>>>> baseline
>>>>>>>> and avoids the double textural expansion.
>>>>>>>>
>>>>>>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>>>>>> Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
>>>>>> Thankyou.
>>>>>>
>>>>>>>> diff --git a/xen/include/xen/compiler.h b/xen/include/xen/compiler.h
>>>>>>>> index 88bf26bc5109..38ef5d82ad95 100644
>>>>>>>> --- a/xen/include/xen/compiler.h
>>>>>>>> +++ b/xen/include/xen/compiler.h
>>>>>>>> @@ -64,6 +64,20 @@
>>>>>>>> Â # define asm_inline asm
>>>>>>>> Â #endif
>>>>>>>>
>>>>>>>> +/*
>>>>>>>> + * In C23, the auto keyword has been repurposed to perform type
>>>>>>>> inference.
>>>>>>>> + *
>>>>>>>> + * This behaviour is available via the __auto_type extension in
>>>>>>>> supported
>>>>>>>> + * toolchains.
>>>>>>>> + *
>>>>>>>> + *
>>>>>>>> https://www.gnu.org/software/c-intro-and-ref/manual/html_node/Auto-Type.html
>>>>>>>> + * https://clang.llvm.org/docs/LanguageExtensions.html#auto-type
>>>>>>>> + */
>>>>>>>> +#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 202311L
>>>>>>>> +/* SAF-3-safe MISRA C Rule 20.4: Giving the keyword it's C23
>>>>>>>> meaning. */
>>>>>>>> +#define auto __auto_type
>>>>>>>> +#endif
>>>>>>>> +
>>>>>>> A more detailed explanation should live in deviations.rst under this
>>>>>>> bullet point
>>>>>>>
>>>>>>> Â Â  * - R20.4
>>>>>>> Â Â Â Â  - The override of the keyword \"inline\" in xen/compiler.h is
>>>>>>> present so
>>>>>>> Â Â Â Â Â Â  that section contents checks pass when the compiler chooses not 
>>>>>>> to
>>>>>>> Â Â Â Â Â Â  inline a particular function.
>>>>>>> Â Â Â Â  - Comment-based deviation.
>>>>>>>
>>>>>>> as described in the SAF entry:
>>>>>>>
>>>>>>> Â Â Â Â Â Â Â  {
>>>>>>> Â Â Â Â Â Â Â Â Â Â Â  "id": "SAF-3-safe",
>>>>>>> Â Â Â Â Â Â Â Â Â Â Â  "analyser": {
>>>>>>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "eclair": "MC3A2.R20.4"
>>>>>>> Â Â Â Â Â Â Â Â Â Â Â  },
>>>>>>> Â Â Â Â Â Â Â Â Â Â Â  "name": "MC3A2.R20.4: allow the definition of a macro with
>>>>>>> the same name as a keyword in some special cases",
>>>>>>> Â Â Â Â Â Â Â Â Â Â Â  "text": "The definition of a macro with the same name as a
>>>>>>> keyword can be useful in certain configurations to improve the
>>>>>>> guarantees that can be provided by Xen. See docs/misra/deviations.rst
>>>>>>> for a precise rationale for all such cases."
>>>>>>> Â Â Â Â Â Â Â  },
>>>>>> Ah right.Â  What about this:
>>>>>>
>>>>>> "Xen does not use the \"auto\" keyword as a storage qualifier.Â  The
>>>>>> override of the keyword \"auto\" in xen/compiler.h is to give it it's
>>>>>> C23 behaviour of type inference."
>>>>>>
>>>>>> ?
>>>>> Seems good to me. Maybe this should be spelled out in ./CODING_STYLE as 
>>>>> well, so that newcomers don't trip over this?
>>>> I'm not sure newcomers would look there, but in the absence of any better
>>>> place that's perhaps indeed where to mention this.
>>> How about this:
>>>
>>> diff --git a/CODING_STYLE b/CODING_STYLE
>>> index 7bf3848444ad..e33b9d1170cf 100644
>>> --- a/CODING_STYLE
>>> +++ b/CODING_STYLE
>>> @@ -129,6 +129,10 @@ Fixed width types should only be used when a fixed width quantity is
>>> Â meant (which for example may be a value read from or to be written to a
>>> Â register).
>>> Â 
>>> +Macros which otherwise would use "typeof(arg) newarg =" to avoid double
>>> +evaluation of side effects should use "auto newarg =" per it's C23 behaviour,
>>> +to also avoid double textural expansion.
>>> +
>>> Â Especially with pointer types, whenever the pointed to object is not
>>> Â (supposed to be) modified, qualify the pointed to type with "const".
>> That doesn't focus on the pitfall though, in that people shouldn't be using
>> the "auto" keyword (except in said cases).
> 
> /sigh, this is why noone does patches to CODING_STYLE.
> 
> If you don't like the wording, propose some wording that you do like.
> 
> Or I will commit the patch without this hunk, because I'm not going to
> get drawn into the cycle of blind guessing that every change to
> CODING_STYLE seems to get caught in.

I don't care about the wording; what I do care about is to get the caveat
across. Maybe:

'"auto" isn't used in its traditional sense, but rather with its C23 meaning.
 Such uses are intended to be limited to macro-local variables.'

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 12:36:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 12:36:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083382.1442997 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umtfK-0003ge-Hd; Fri, 15 Aug 2025 12:36:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083382.1442997; Fri, 15 Aug 2025 12:36: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 1umtfK-0003gX-D6; Fri, 15 Aug 2025 12:36:14 +0000
Received: by outflank-mailman (input) for mailman id 1083382;
 Fri, 15 Aug 2025 12:36:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RDBg=23=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1umtfJ-0003f8-6S
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 12:36:13 +0000
Received: from mail-oi1-x232.google.com (mail-oi1-x232.google.com
 [2607:f8b0:4864:20::232])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6beddba4-79d4-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 14:36:10 +0200 (CEST)
Received: by mail-oi1-x232.google.com with SMTP id
 5614622812f47-435de59ddf7so1214534b6e.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 05:36: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>
X-Inumbo-ID: 6beddba4-79d4-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1755261369; x=1755866169; 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=wEMlnw2CaB342LDxXIA1afWqddDw8Ds6bu2N2QtWJjs=;
        b=kDNJitCXd3LdGhBpZQzUJndim4VIfcd5t5paEsxfYwHqaQHS8YDwFnwnjQzBXwiPi5
         dhzqfOkLxvYBlV/cLL2hW1fKXn+5lk3WZWL+zTN0CECbRi4mhNPDRndC9eGJpC7CIqUu
         umQuNCCJjofO5KbJco2Kc0N9rzn+2dgK9ngMg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755261369; x=1755866169;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=wEMlnw2CaB342LDxXIA1afWqddDw8Ds6bu2N2QtWJjs=;
        b=ls7cv0fyNEZsoQi0zJ/OC2/BmxhLvGGpO4W3dH7PxxNAVxzHqKuis3cIMLaSJKB7+6
         wgjsTaXEjeSrlGucz9kdwn623M7IECwbXu5G52GMHud2JKgM/ROwlYU5ksd8rtfvY3bB
         NWWWA8h6HfieKYa2qtNVael3mLsTk9VFbLzjYdmK0frzcuCnnBVXXLMsPTPal3vNCCOd
         bUmW7dvSf42iHuFOeOe3QORUUs/EqdTqfqOhphCShHppzn3QSFPsSfgOBS5GjoKazsso
         sjkHT28CElwl2QavYTrzbI6bUSVE8nz3aktnw3QwROBIiolOMJHtJwoXp3LkweVsHcTq
         mivQ==
X-Forwarded-Encrypted: i=1; AJvYcCW9iX0nTKqRpVOu3EE8ei9oFeQWYs4oMeRHy1j6mrQNESA8al2iwdmgXESFqfQ0K0pirY/5BrnZFSg=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzb4kQ1JqnLIR+sV8b4baKcAPqDPRQNzyF0x0RrYq/xNYypQm/i
	/XJMprsq5OgQ6NIKvEmm34wRJdw80qQOtb41Eh7fajNeBJF9dgwwJwg+GGmASnHrN/QW3ZOlpqO
	HqgpS2P2vp8NGEVVEkoFK2hftq2rHSKezFrYMP0VkgQ==
X-Gm-Gg: ASbGncs38/8rSHxTEOE4hMxWzvi1PTXN4BVx80z3HUYVd88wKXuZnLdG5ntcWTDJt7z
	0Jw8cGsraiaB9GoOnUF3L2GpCkeja991OojtpXO7uEVT83aOcpGjgyyu8iX65uu1DU/eIYAFb4+
	upl47nmFIGCf3MZzCNw4gyBTfiThD6Ms6RtkrD1FECV8/y06yC6NSCLA6RH370aEm/FyzEHv6Tf
	4NB/XM=
X-Google-Smtp-Source: AGHT+IEc+0iOXiO6snSunrBQvl203dojVhDM1HcHDLUn1gAlXZ1mafZhdpd9qPvHaZjeKUj93/aEhZeHp3NsfcYnzZM=
X-Received: by 2002:a05:6808:319a:b0:434:f1b:1a82 with SMTP id
 5614622812f47-435ec3ce4a0mr1004344b6e.5.1755261369214; Fri, 15 Aug 2025
 05:36:09 -0700 (PDT)
MIME-Version: 1.0
References: <20250814222524.2638883-1-andrew.cooper3@citrix.com>
 <3056ed85948288639110e3cdd6b28c6e@bugseng.com> <f3ff5b2d-8077-4591-bf1f-bd658d705242@citrix.com>
 <7fc93aeef27153f1d6caa786bd44420f@bugseng.com> <caf19e2b-046e-495f-b425-9cb3a0053006@suse.com>
 <bd3f9c28-aaf4-479d-b56e-48838442f7a3@citrix.com> <5ff1e337-9ec5-466b-b21f-cf29274b007b@suse.com>
 <aad0db65-06cd-4631-a6e8-de36fa6af85d@citrix.com> <8efa3103-fad9-4921-a5ef-04e7a7c80715@suse.com>
In-Reply-To: <8efa3103-fad9-4921-a5ef-04e7a7c80715@suse.com>
From: Frediano Ziglio <frediano.ziglio@cloud.com>
Date: Fri, 15 Aug 2025 13:35:57 +0100
X-Gm-Features: Ac12FXw4LzTNiJMpWAXmjjT-VQhVcaWpXciKhTe85vDZrV9DMVTh4RTyIC2pNTI
Message-ID: <CACHz=Zi5gdfg42W5oTc8e0t3Y1+oVT_kV+nTKoXQEBCnVJSw2Q@mail.gmail.com>
Subject: Re: [PATCH v2] xen: Use auto as per C23
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel <xen-devel@lists.xenproject.org>, 
	Anthony PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, 
	Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Roberto Bagnara <roberto.bagnara@bugseng.com>, 
	"consulting @ bugseng . com" <consulting@bugseng.com>, Nicola Vetrini <nicola.vetrini@bugseng.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, Aug 15, 2025 at 1:28=E2=80=AFPM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> On 15.08.2025 12:53, Andrew Cooper wrote:
> > On 15/08/2025 11:25 am, Jan Beulich wrote:
> >> On 15.08.2025 11:51, Andrew Cooper wrote:
> >>> On 15/08/2025 10:36 am, Jan Beulich wrote:
> >>>> On 15.08.2025 10:33, Nicola Vetrini wrote:
> >>>>> On 2025-08-15 10:17, Andrew Cooper wrote:
> >>>>>> On 15/08/2025 8:20 am, Nicola Vetrini wrote:
> >>>>>>> On 2025-08-15 00:25, Andrew Cooper wrote:
> >>>>>>>> In macros it is common to declare local variables using typeof(p=
aram)
> >>>>>>>> in order
> >>>>>>>> to ensure that side effects are only evaluated once.  A conseque=
nce
> >>>>>>>> of this is
> >>>>>>>> double textural expansion of the parameter, which can get out of=
 hand
> >>>>>>>> very
> >>>>>>>> quickly with nested macros.
> >>>>>>>>
> >>>>>>>> In C23, the auto keyword has been repurposed to perform type
> >>>>>>>> inference.
> >>>>>>>>
> >>>>>>>> A GCC extension, __auto_type, is now avaialble in the new toolch=
ain
> >>>>>>>> baseline
> >>>>>>>> and avoids the double textural expansion.
> >>>>>>>>
> >>>>>>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> >>>>>>> Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> >>>>>> Thankyou.
> >>>>>>
> >>>>>>>> diff --git a/xen/include/xen/compiler.h b/xen/include/xen/compil=
er.h
> >>>>>>>> index 88bf26bc5109..38ef5d82ad95 100644
> >>>>>>>> --- a/xen/include/xen/compiler.h
> >>>>>>>> +++ b/xen/include/xen/compiler.h
> >>>>>>>> @@ -64,6 +64,20 @@
> >>>>>>>>  # define asm_inline asm
> >>>>>>>>  #endif
> >>>>>>>>
> >>>>>>>> +/*
> >>>>>>>> + * In C23, the auto keyword has been repurposed to perform type
> >>>>>>>> inference.
> >>>>>>>> + *
> >>>>>>>> + * This behaviour is available via the __auto_type extension in
> >>>>>>>> supported
> >>>>>>>> + * toolchains.
> >>>>>>>> + *
> >>>>>>>> + *
> >>>>>>>> https://www.gnu.org/software/c-intro-and-ref/manual/html_node/Au=
to-Type.html
> >>>>>>>> + * https://clang.llvm.org/docs/LanguageExtensions.html#auto-typ=
e
> >>>>>>>> + */
> >>>>>>>> +#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 202311L
> >>>>>>>> +/* SAF-3-safe MISRA C Rule 20.4: Giving the keyword it's C23
> >>>>>>>> meaning. */
> >>>>>>>> +#define auto __auto_type
> >>>>>>>> +#endif
> >>>>>>>> +
> >>>>>>> A more detailed explanation should live in deviations.rst under t=
his
> >>>>>>> bullet point
> >>>>>>>
> >>>>>>>    * - R20.4
> >>>>>>>      - The override of the keyword \"inline\" in xen/compiler.h i=
s
> >>>>>>> present so
> >>>>>>>        that section contents checks pass when the compiler choose=
s not
> >>>>>>> to
> >>>>>>>        inline a particular function.
> >>>>>>>      - Comment-based deviation.
> >>>>>>>
> >>>>>>> as described in the SAF entry:
> >>>>>>>
> >>>>>>>         {
> >>>>>>>             "id": "SAF-3-safe",
> >>>>>>>             "analyser": {
> >>>>>>>                 "eclair": "MC3A2.R20.4"
> >>>>>>>             },
> >>>>>>>             "name": "MC3A2.R20.4: allow the definition of a macro=
 with
> >>>>>>> the same name as a keyword in some special cases",
> >>>>>>>             "text": "The definition of a macro with the same name=
 as a
> >>>>>>> keyword can be useful in certain configurations to improve the
> >>>>>>> guarantees that can be provided by Xen. See docs/misra/deviations=
.rst
> >>>>>>> for a precise rationale for all such cases."
> >>>>>>>         },
> >>>>>> Ah right.  What about this:
> >>>>>>
> >>>>>> "Xen does not use the \"auto\" keyword as a storage qualifier.  Th=
e
> >>>>>> override of the keyword \"auto\" in xen/compiler.h is to give it i=
t's
> >>>>>> C23 behaviour of type inference."
> >>>>>>
> >>>>>> ?
> >>>>> Seems good to me. Maybe this should be spelled out in ./CODING_STYL=
E as
> >>>>> well, so that newcomers don't trip over this?
> >>>> I'm not sure newcomers would look there, but in the absence of any b=
etter
> >>>> place that's perhaps indeed where to mention this.
> >>> How about this:
> >>>
> >>> diff --git a/CODING_STYLE b/CODING_STYLE
> >>> index 7bf3848444ad..e33b9d1170cf 100644
> >>> --- a/CODING_STYLE
> >>> +++ b/CODING_STYLE
> >>> @@ -129,6 +129,10 @@ Fixed width types should only be used when a fix=
ed width quantity is
> >>>  meant (which for example may be a value read from or to be written t=
o a
> >>>  register).
> >>>
> >>> +Macros which otherwise would use "typeof(arg) newarg =3D" to avoid d=
ouble
> >>> +evaluation of side effects should use "auto newarg =3D" per it's C23=
 behaviour,
> >>> +to also avoid double textural expansion.
> >>> +
> >>>  Especially with pointer types, whenever the pointed to object is not
> >>>  (supposed to be) modified, qualify the pointed to type with "const".
> >> That doesn't focus on the pitfall though, in that people shouldn't be =
using
> >> the "auto" keyword (except in said cases).
> >
> > /sigh, this is why noone does patches to CODING_STYLE.
> >
> > If you don't like the wording, propose some wording that you do like.
> >
> > Or I will commit the patch without this hunk, because I'm not going to
> > get drawn into the cycle of blind guessing that every change to
> > CODING_STYLE seems to get caught in.
>
> I don't care about the wording; what I do care about is to get the caveat
> across. Maybe:
>
> '"auto" isn't used in its traditional sense, but rather with its C23 mean=
ing.
>  Such uses are intended to be limited to macro-local variables.'
>

Why limiting to macros?

> Jan
>

Frediano


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 12:39:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 12:39:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083391.1443006 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umtiq-0004Ng-Tb; Fri, 15 Aug 2025 12:39:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083391.1443006; Fri, 15 Aug 2025 12:39: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 1umtiq-0004NZ-Qp; Fri, 15 Aug 2025 12:39:52 +0000
Received: by outflank-mailman (input) for mailman id 1083391;
 Fri, 15 Aug 2025 12:39:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5DW6=23=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umtip-0004NT-U1
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 12:39:51 +0000
Received: from mail-ej1-x631.google.com (mail-ej1-x631.google.com
 [2a00:1450:4864:20::631])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id eee798a1-79d4-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 14:39:49 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-afcb73394b4so292158766b.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 05:39: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
 a640c23a62f3a-afcdd018b27sm134629866b.105.2025.08.15.05.39.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Aug 2025 05:39: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>
X-Inumbo-ID: eee798a1-79d4-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755261589; x=1755866389; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=pnAfClgNK1Mn6D+FEimGWKDwENiMRkm6cug9/RR5598=;
        b=Qi61sXK920AHofsjjimRhLWA1223tgtvWyi7Io53lQMsIzrrtomCd3yt1Qzt5ZU/4j
         0zjXg3OO56N3/8Q21iTVkcjmm2T4sCUdFn2fSr7hri997ndnqDoDeW1wBxWmIZ0HI84T
         gT7oyU3cQX9U/03iL/szhARBjcFC552qGeVZyNGByzxas9mN48WbdbF9G6W4ohvBv7fF
         RjIHtbihJu9W10Zj0fpSlDk284Entgn2d9UTJOoxw50lyKazB8XvEcLuLONtgR5M+qK0
         mOvKvTQ7abNs16MamIsP8mmdPuVkIkgIHKz3o2UI+te05FHdeYD+vMzibm0cnCrVz/qL
         vESQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755261589; x=1755866389;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=pnAfClgNK1Mn6D+FEimGWKDwENiMRkm6cug9/RR5598=;
        b=nZ6RhywVa7kjlF02N4eTGYM4SUV1+dolNslNziOLGjbD8f57xCgI5zif1HSZ8p2NxY
         0Qm06k8NCthygxm1WcAgRp127eSzAnnbqmbB2iZjVYSW4Fc6UbRmd+aApPjxCy0litBe
         w+BCUIF+d1kMAajBzocSHJuYKCTqWWRvif4gnOIOUKHeHMePBTV/zDi0O7aBBPGljPQ4
         Cbj59dsyfhnaS41HaHWWehJKcF9F9mTSmLvffgoGuALn1iGrPNYuvLHZatWE9ocj8Jcg
         ltm6+IZJD/zt0mbGY5UJs2ds5MYxQniG4vsrBU+ApUK/R5wo00jifu3nztSxKk0RXio/
         WGbA==
X-Forwarded-Encrypted: i=1; AJvYcCU2c5oDNERwFg5s4WBPPGMgEId/xkMpc3tF6DJ52NbL+Y4S51Ns3JEmHuKgtXpd+xg97gNy+cgzTiQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy/uRVj8qMV6RiDjb4WXRNIl4ZhGEEeurp0EmOIj3Zve/eeV4zK
	2thpPU1IWEg87r9EvROyIufLHvFVYE4NWiOtAyyxEjsCvG31H5QzaBkd+IKuYTmMOg==
X-Gm-Gg: ASbGncu2LTCagO+Sv2dbaXU2UDPR4B7XwgPtMdYx3XeORpBlCJsoiublVQiRkdrd1W/
	HhF7kvLugHHRBMST2uwIkl3GBoujXHXaWeqtrVVJqLIiKjZSWqqJl6E8qGDHEJ2eX2W7QyYutCA
	lNE7mzYT7DI2QfUPiq1JfaflsePqTpBd9tDCD4teaYR2OZB1Aht4kJ4p83rxidnlRDiTO4vqzxr
	QYjYDFas0/0IxmUHOz/bFc5NXgRq4pV09SqWJJBRihpEAGRrkKtgt9MiMZzz7dkHmlSfhZR5Hh4
	mQOpkb8ASad+UjbjpY44dQb+JbTutzxul/5wdl/xxF6gZJducl7BwXC7pnNInotsopJFcTMkYJa
	JB36evpSxXJ39Btd2NB9xlzvar3f/0dwbYXFK3mY6Afp1q1HxsHCnOiNpWG9Il69tKlizw92sGv
	prO0SFFXip9PkwoMsCmw==
X-Google-Smtp-Source: AGHT+IHeT7hfX3oNn6A/0E/MJdBfHMGiRpxDaClbEWL+1VpoOeJVimzPTmXgXobuTgK4O2/zXtRO1g==
X-Received: by 2002:a17:907:9628:b0:afc:a18d:f14d with SMTP id a640c23a62f3a-afcdc047b3emr178651166b.7.1755261589122;
        Fri, 15 Aug 2025 05:39:49 -0700 (PDT)
Message-ID: <e920d859-e5e3-459b-b0bb-9b32ed1b0cbc@suse.com>
Date: Fri, 15 Aug 2025 14:39:47 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen: Use auto as per C23
To: Frediano Ziglio <frediano.ziglio@cloud.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Roberto Bagnara <roberto.bagnara@bugseng.com>,
 "consulting @ bugseng . com" <consulting@bugseng.com>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>
References: <20250814222524.2638883-1-andrew.cooper3@citrix.com>
 <3056ed85948288639110e3cdd6b28c6e@bugseng.com>
 <f3ff5b2d-8077-4591-bf1f-bd658d705242@citrix.com>
 <7fc93aeef27153f1d6caa786bd44420f@bugseng.com>
 <caf19e2b-046e-495f-b425-9cb3a0053006@suse.com>
 <bd3f9c28-aaf4-479d-b56e-48838442f7a3@citrix.com>
 <5ff1e337-9ec5-466b-b21f-cf29274b007b@suse.com>
 <aad0db65-06cd-4631-a6e8-de36fa6af85d@citrix.com>
 <8efa3103-fad9-4921-a5ef-04e7a7c80715@suse.com>
 <CACHz=Zi5gdfg42W5oTc8e0t3Y1+oVT_kV+nTKoXQEBCnVJSw2Q@mail.gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <CACHz=Zi5gdfg42W5oTc8e0t3Y1+oVT_kV+nTKoXQEBCnVJSw2Q@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15.08.2025 14:35, Frediano Ziglio wrote:
> On Fri, Aug 15, 2025 at 1:28â€¯PM Jan Beulich <jbeulich@suse.com> wrote:
>>
>> On 15.08.2025 12:53, Andrew Cooper wrote:
>>> On 15/08/2025 11:25 am, Jan Beulich wrote:
>>>> On 15.08.2025 11:51, Andrew Cooper wrote:
>>>>> On 15/08/2025 10:36 am, Jan Beulich wrote:
>>>>>> On 15.08.2025 10:33, Nicola Vetrini wrote:
>>>>>>> On 2025-08-15 10:17, Andrew Cooper wrote:
>>>>>>>> On 15/08/2025 8:20 am, Nicola Vetrini wrote:
>>>>>>>>> On 2025-08-15 00:25, Andrew Cooper wrote:
>>>>>>>>>> In macros it is common to declare local variables using typeof(param)
>>>>>>>>>> in order
>>>>>>>>>> to ensure that side effects are only evaluated once.  A consequence
>>>>>>>>>> of this is
>>>>>>>>>> double textural expansion of the parameter, which can get out of hand
>>>>>>>>>> very
>>>>>>>>>> quickly with nested macros.
>>>>>>>>>>
>>>>>>>>>> In C23, the auto keyword has been repurposed to perform type
>>>>>>>>>> inference.
>>>>>>>>>>
>>>>>>>>>> A GCC extension, __auto_type, is now avaialble in the new toolchain
>>>>>>>>>> baseline
>>>>>>>>>> and avoids the double textural expansion.
>>>>>>>>>>
>>>>>>>>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>>>>>>>> Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
>>>>>>>> Thankyou.
>>>>>>>>
>>>>>>>>>> diff --git a/xen/include/xen/compiler.h b/xen/include/xen/compiler.h
>>>>>>>>>> index 88bf26bc5109..38ef5d82ad95 100644
>>>>>>>>>> --- a/xen/include/xen/compiler.h
>>>>>>>>>> +++ b/xen/include/xen/compiler.h
>>>>>>>>>> @@ -64,6 +64,20 @@
>>>>>>>>>>  # define asm_inline asm
>>>>>>>>>>  #endif
>>>>>>>>>>
>>>>>>>>>> +/*
>>>>>>>>>> + * In C23, the auto keyword has been repurposed to perform type
>>>>>>>>>> inference.
>>>>>>>>>> + *
>>>>>>>>>> + * This behaviour is available via the __auto_type extension in
>>>>>>>>>> supported
>>>>>>>>>> + * toolchains.
>>>>>>>>>> + *
>>>>>>>>>> + *
>>>>>>>>>> https://www.gnu.org/software/c-intro-and-ref/manual/html_node/Auto-Type.html
>>>>>>>>>> + * https://clang.llvm.org/docs/LanguageExtensions.html#auto-type
>>>>>>>>>> + */
>>>>>>>>>> +#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 202311L
>>>>>>>>>> +/* SAF-3-safe MISRA C Rule 20.4: Giving the keyword it's C23
>>>>>>>>>> meaning. */
>>>>>>>>>> +#define auto __auto_type
>>>>>>>>>> +#endif
>>>>>>>>>> +
>>>>>>>>> A more detailed explanation should live in deviations.rst under this
>>>>>>>>> bullet point
>>>>>>>>>
>>>>>>>>>    * - R20.4
>>>>>>>>>      - The override of the keyword \"inline\" in xen/compiler.h is
>>>>>>>>> present so
>>>>>>>>>        that section contents checks pass when the compiler chooses not
>>>>>>>>> to
>>>>>>>>>        inline a particular function.
>>>>>>>>>      - Comment-based deviation.
>>>>>>>>>
>>>>>>>>> as described in the SAF entry:
>>>>>>>>>
>>>>>>>>>         {
>>>>>>>>>             "id": "SAF-3-safe",
>>>>>>>>>             "analyser": {
>>>>>>>>>                 "eclair": "MC3A2.R20.4"
>>>>>>>>>             },
>>>>>>>>>             "name": "MC3A2.R20.4: allow the definition of a macro with
>>>>>>>>> the same name as a keyword in some special cases",
>>>>>>>>>             "text": "The definition of a macro with the same name as a
>>>>>>>>> keyword can be useful in certain configurations to improve the
>>>>>>>>> guarantees that can be provided by Xen. See docs/misra/deviations.rst
>>>>>>>>> for a precise rationale for all such cases."
>>>>>>>>>         },
>>>>>>>> Ah right.  What about this:
>>>>>>>>
>>>>>>>> "Xen does not use the \"auto\" keyword as a storage qualifier.  The
>>>>>>>> override of the keyword \"auto\" in xen/compiler.h is to give it it's
>>>>>>>> C23 behaviour of type inference."
>>>>>>>>
>>>>>>>> ?
>>>>>>> Seems good to me. Maybe this should be spelled out in ./CODING_STYLE as
>>>>>>> well, so that newcomers don't trip over this?
>>>>>> I'm not sure newcomers would look there, but in the absence of any better
>>>>>> place that's perhaps indeed where to mention this.
>>>>> How about this:
>>>>>
>>>>> diff --git a/CODING_STYLE b/CODING_STYLE
>>>>> index 7bf3848444ad..e33b9d1170cf 100644
>>>>> --- a/CODING_STYLE
>>>>> +++ b/CODING_STYLE
>>>>> @@ -129,6 +129,10 @@ Fixed width types should only be used when a fixed width quantity is
>>>>>  meant (which for example may be a value read from or to be written to a
>>>>>  register).
>>>>>
>>>>> +Macros which otherwise would use "typeof(arg) newarg =" to avoid double
>>>>> +evaluation of side effects should use "auto newarg =" per it's C23 behaviour,
>>>>> +to also avoid double textural expansion.
>>>>> +
>>>>>  Especially with pointer types, whenever the pointed to object is not
>>>>>  (supposed to be) modified, qualify the pointed to type with "const".
>>>> That doesn't focus on the pitfall though, in that people shouldn't be using
>>>> the "auto" keyword (except in said cases).
>>>
>>> /sigh, this is why noone does patches to CODING_STYLE.
>>>
>>> If you don't like the wording, propose some wording that you do like.
>>>
>>> Or I will commit the patch without this hunk, because I'm not going to
>>> get drawn into the cycle of blind guessing that every change to
>>> CODING_STYLE seems to get caught in.
>>
>> I don't care about the wording; what I do care about is to get the caveat
>> across. Maybe:
>>
>> '"auto" isn't used in its traditional sense, but rather with its C23 meaning.
>>  Such uses are intended to be limited to macro-local variables.'
> 
> Why limiting to macros?

Because, if I understood Andrew correctly, the specific goal is to help limit
what macros expand to.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 12:43:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 12:43:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083406.1443017 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umtlp-0006A7-Ee; Fri, 15 Aug 2025 12:42:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083406.1443017; Fri, 15 Aug 2025 12:42:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umtlp-0006A0-BN; Fri, 15 Aug 2025 12:42:57 +0000
Received: by outflank-mailman (input) for mailman id 1083406;
 Fri, 15 Aug 2025 12:42:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9KPM=23=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1umtlo-00068y-JA
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 12:42:56 +0000
Received: from DB3PR0202CU003.outbound.protection.outlook.com
 (mail-northeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c200::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5d9bea86-79d5-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 14:42:55 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by DU2PR03MB7862.eurprd03.prod.outlook.com (2603:10a6:10:2d1::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.15; Fri, 15 Aug
 2025 12:42:53 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9031.014; Fri, 15 Aug 2025
 12:42: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>
X-Inumbo-ID: 5d9bea86-79d5-11f0-a328-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=udISKfU6agoHBQmQrBXwBvgJhCjdwGIM7CLticz4SpMFaNVsd7j0ziWxdh8yhW8VCW9ks9V0TKb4n0vVwCboPs6veco9iqizm4BAaFKy7NaHenarp6OaNgw1p7AFUhUKmkRxSCU32FwvJ5GRvRDa4m/K0RTtHEzdSdGxiJSxGBJ/AqiZmns6A4IrFj3iK7C1+QkQk6CBP5toEdAOoeP+O65VCOzKflqsGWcg4H4xQwPLPA7yBBhcEoa11EnREiXLn9tJ8aCN4m/Z+O4muoh3N9H8LR9ho3w3b25HlQqL+HiDVr4S3ki6dxqI8LFOPEKW1sdByVifo4K/CwSG5mqWug==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=XDX5wp7U2xAGP+dZo93+QLdtOQKpnjOTLlywuDupMiI=;
 b=WInBEecVOjGGrXihnHpMSWBpe9t1yftb3I5GTROTFCE7nPmffdp1c6DGSMsQZRo8HJOYXRZoeHxffUJBzQFhBqlezb3vBI4/gsjMEB2Ej0rdF8c5xfoisqNbcS4QlmaS4icr6hSX+SMy8n+SFajLWOmBH07KLcKYqUx8/E0dPYHUDH0+0+TrExnxfpZqxM1TQcFhO0M0ivOAQteytZV0x5GT8a5PUUScHwDScT1tNErhu9PJklmrgv1N8rE4zA+KifAogbAngHWig3g+1nUGJyIc6niIBho5PZ4hz/HNjV40/8KXTne7uglIQL/ufH9bIgnaA72kN/lKy/r+lLKfVQ==
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=XDX5wp7U2xAGP+dZo93+QLdtOQKpnjOTLlywuDupMiI=;
 b=ptKVOmEZthh46EWpA0G2AQ1Xhrhh3etXD0WN3LdcwzIWVe8bi6RJR1zPQhHpHRj2W5tui7nymzrsUOdkDGNe97WmGBIx9Nxlc6RagIvKl4EkvOfpO/z+vcyIzI1vyy7PZmlcOUGTATePQ6lrywdzkVmMt925MOOYZAaZQf8W+/vjRDo2iAeuQpcu0DSipvsWb9jUdgyDrEYus5CkatXXVfGjaKwaYLP7w4h3kQFPJBYAbl2+R7GsdhekmAj9Rluf2CxA5LpBdhdj/StwieiFLSitquALn7tGTlSGQcSjI5wck+228FA1meJYc5bDhRAVWLOr3yo3MMGMzbSnx5NlAA==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien
 Grall <julien@xen.org>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] docs/misra: fix sphinx-build issues
Thread-Topic: [PATCH] docs/misra: fix sphinx-build issues
Thread-Index: AQHcDbJCdYlsiZdfl0mX5ViIXi0+6LRjZcaAgAAeAoCAACUOAA==
Date: Fri, 15 Aug 2025 12:42:52 +0000
Message-ID: <124fbf42-c521-4185-b9e2-a92e7b54a5a4@epam.com>
References:
 <fb809a94e8a50bd3a59aa47ee1832c61af8a9f40.1755241166.git.dmytro_prokopchuk1@epam.com>
 <99171678-71a2-4cec-a6dc-343993108a37@suse.com>
 <b8aff698-fbc8-4fc6-a616-fbe14c7538d7@epam.com>
In-Reply-To: <b8aff698-fbc8-4fc6-a616-fbe14c7538d7@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: GV2PR03MB9572:EE_|DU2PR03MB7862:EE_
x-ms-office365-filtering-correlation-id: 0be513c0-410f-4fd1-ece6-08dddbf94067
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|366016|42112799006|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?ckZjUXpldHNFUzZqemQ5WXBFSWtoMEJKMS9DaHZVdnRYbUhRcERheVBYTmFP?=
 =?utf-8?B?bHFnZitVNUxHQmluWFdQOEYwLzdPWVNnUUpidExxY3llbmZ5Ykw2eEpnMk84?=
 =?utf-8?B?cDMyQ2VUbWM5Zy9pMUJUWWYwUGJOQU1IcUdISTJSL2dTRFVIQjNDSTdpV0g2?=
 =?utf-8?B?QnJ6cXV2Tk5EQzZ0dDhHK1ZnVGdtUXBWOXhPSHQ4VmJOaVVybGJzYmx4Y3E4?=
 =?utf-8?B?OHBXWWd3YUdHWUlRdjg4N3laTlhRWE1YanV6cFZZY04vUXpBaHlhbHhLR08w?=
 =?utf-8?B?bHArVWFRWDdoeUJCdmRENDBzdUxWQzBUd0ZkR1hXTDNDL3VJT2ZKdjJBb3Iv?=
 =?utf-8?B?RWQvc1kvdHBTQnR5SlF3Z2NvRVNEQkN0TEU5cU43QjNINE14eEVQSEZxR2Jp?=
 =?utf-8?B?MWZpRy9RL0luVEdMK1IwVnYzL212QkJOcEdDeWpTbW1ER3NOazJQQk5VYW4w?=
 =?utf-8?B?cnR1ODl1aWFNZXdJa2Y4TGFRczlWZERUeDNITnpJNjNZT0U5RVJTZnk5ZjdW?=
 =?utf-8?B?dnFKSkhBYjhoVzEvaUJHOHAwQjEwazAxQ3Z2NitDNGFpLy8wOGE3dUtURHp0?=
 =?utf-8?B?dm1LNjVrc2thN3l5YytXTXhxSjFjMEU2cVlmSGRSTGNYSlNpQ0wwRzJKeVZO?=
 =?utf-8?B?YTJ0NVFFbDFuOWRpa2lVeFhEMlhUWHZFWWFiZzl5ZkNWVnJHazcwM0I2NlZl?=
 =?utf-8?B?SUlHaC95UElEaUk1TVpxVnpZNmx4ZElsUUFteFR5bXlUcjBadS9jSzFKSnpU?=
 =?utf-8?B?ZXlrL2lJZ2Y1WmNRNDA4OXkyTG1KdkR4K0hWd2lPK2xJdkRkSTRyeTFoT1Jv?=
 =?utf-8?B?RmxwSys1UmZiS0JYVnYxZDJNSHNPMzlpMGs3ak44YnVKWnYvalpjY1hEblZz?=
 =?utf-8?B?MExMTFZLdmNZL0U2M1VYMDZLWlVQTE1QZzZxWHRXTjY2NC9DTFloNGo2aGt3?=
 =?utf-8?B?OGxDaXRTbm5NWE1EdVlMbWc2UkkwSWlLUDdTaFljVW9kZmRGZDhpb3d2aWJl?=
 =?utf-8?B?cVh2a3ZnWncrWmptRnZUcVYwUHB2U3NoMmhqb1dtbXg0TDhuMG42VWVGTGNK?=
 =?utf-8?B?ZEVJd2Zhc2FhUWZYQlNhcmRLaHBsbGtVbFNCMUJyaHBWWGRBOFJVZDNjaEoy?=
 =?utf-8?B?Z3pCcjhpNms1b2ZLenhqSWhnRkx0eCtqVTBBemNrTXlxemtuUG9ra3RRbFZp?=
 =?utf-8?B?elo0aHFQVXNoSE0rVWdMaG1kcWVvNTVPSTByVUEzWFA0WHovcGR0OWwycXdM?=
 =?utf-8?B?K08rS1A2R3VpOXVzR05IWjFodFFSTXdkNGRBYy96Y3pSc1FIL2hNbjBzV09u?=
 =?utf-8?B?UmtNWTNtclRlbnhyaytWMzVpcm5aMENPUzVrU2ZBMXdDZEVrd1pvRE1NY1ZB?=
 =?utf-8?B?aEh5amZ6TndUVHN1bEZCNjMyZ3RObk93L2NTYzRPcWJGOWRuMzBNT09qNVV6?=
 =?utf-8?B?ZGU1NjVHeG1NZU9DcVF3cjRaa1VjSFBTc1RTektUcWxMSEFyTThNMFUvNktF?=
 =?utf-8?B?OEovWnQwWFdqbXgxS1ZVeEZLTEtPVWRZQmNPVFBVdFJwcGl5NEptVDJYaXYw?=
 =?utf-8?B?bkEzclJnRkF6QWV4YlBKRHNEY0NHWFdIRk1Hd1BXQWFsbzlPYmNpQkM4T2xP?=
 =?utf-8?B?SjdkS052OEJnTS9kMGxhN05LZ05BMXZteW0zN3Yvd0NSUDd4eVU1dkVTUWRu?=
 =?utf-8?B?VzZWemxtZEpBUWgzOWZxQUNYaGNsdHE0WExya2krZWFZUDU3RDZwb3d4RkRs?=
 =?utf-8?B?SlozVDNXUDRDbXJXTFZtVE1RblJuL3dKeGFGQ0M2MERuL2pzaWRhMEYxa1Q3?=
 =?utf-8?B?d3JKak51WDJQeTlhd3ZJeC9La2Y2ZHZzbXRvUkFTRlc1YjdnWGxHZjJram5K?=
 =?utf-8?B?eFNUNVpQdGlJUXNyRTFoNm44R3hBZ2toWFQzK1FJaDNMaUpybEFnQUhkdFZz?=
 =?utf-8?B?cHhCcUYyZWVraHovaEl1WDNhUFpRUGFYYXg2WmxmYXRZRDJrUkpHRUlndVYv?=
 =?utf-8?B?RzB1eWZwMUJ3PT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(42112799006)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?d2pYSStCUVdRcXdzeW0vdisvNXZ3SmhwN3B1OEUvM1M3L3pDY1JRRFIybWR6?=
 =?utf-8?B?M1J1YThzTnZOcW9wdllVR2pYZzdnMUl2RnErL2pQZGxMUjJ4c0l1d2VyUHdn?=
 =?utf-8?B?M3lXeEFBRm5CVkxvNTZZVDE0TlBRKzAxQ1U2dHFlWnRaL2lQQVkxZi9qeFlP?=
 =?utf-8?B?V0ZJTUo1TUlJd1ZtMStTVHZHaC9FZk81MXdmb3g0NitYYVRybXBKbUpJdmNY?=
 =?utf-8?B?SlhuOXNFWlFwd1NLZms5SXRnTzdMbWQzVk81a1E2N21yUkdieHI2WUtLeGZx?=
 =?utf-8?B?bjJuWkNMWFJrdDdpYmZtZ2dkaThLanRRT0pmdjA5S25ucWtxM0N5TW1QZXk4?=
 =?utf-8?B?djlicStHNisyOHdmdzlTMVYrNVdvaDJlaXg0WFMwVnBCZHROazBuYnMva2Ex?=
 =?utf-8?B?VTUrZ1B6ZEtQUCtrdUFLd1o1U2Z1ZVF1YnhNS1RadStZMkFVclMxSVFvQkJx?=
 =?utf-8?B?ZmRLZUN2MkFJd3c5VWRKMHNWU01jRmpWNGMwMitHa1h0M3k1TGlFZ09OR283?=
 =?utf-8?B?SnM5YTVyVXJwcU9NMm5jYkFNTWdGbHZZZndFSFZGYjNXSCtFaEpxWXduamRM?=
 =?utf-8?B?OCt0ZWZaRUQzdExQMVNsMWs4TWtsdHRiVTFMSE5wREpndDZlUWNvcldOYkx5?=
 =?utf-8?B?dHBMaHpWSE15eFo1ZWlGWVMvcHV6RlFuMkNmMEpEVkw1bmduc2hYYWUvVWNX?=
 =?utf-8?B?V2VUc3pUNmxoQ2Q4aDlraWp4YTZDdzlHVitwMEI5MURQUVQzbVdpQkRTZUpX?=
 =?utf-8?B?RGxMQ0R1Ry92QWpJaTh2L3Y3Nm8wWmg2dW44RFZSNmFRZVRtMVpFSkxxMVhr?=
 =?utf-8?B?aUhmVHdJYTUxcFJwWk1RcXVZNmhYTUU4Y1ZhMUxVdkJ1WjJSVStkY1pHS2lI?=
 =?utf-8?B?akNwZHN6U3NwdTlIM0VJSGhxR0lYZDRsWTlpWkdoQzRLVk1PRzFEKzl3MWkr?=
 =?utf-8?B?KytiU2hLM1c5NFpLVjE2MjJObm43NGx4NGtJaEVsUG8wVEpiSHVMdWVETHZF?=
 =?utf-8?B?SHJjM0w4RFl4dEF5cDRYVmlLcWJxQ3c3emxzbmNlZ0dSMXIzQjc4Mlc0cG1N?=
 =?utf-8?B?WVhKbW1jMmhES1cwVWsyTXhocXRUQ2Nlak9IYjhuaHdnS1JiWllrRmpDdU03?=
 =?utf-8?B?eDh2dG95UGNwY1BOVFd5MEVRcktIVzh5ZGFQek5jWXZYOEtqTXVZN2Q3dDVp?=
 =?utf-8?B?b21UUVVOYWxOTm1PY2NTZHp1V2RaUVdiSUtFQTVZYlR6RVZReEZ4ZncvdzEr?=
 =?utf-8?B?THh2cmpuOVA1ZGNCTFZJN2pDejBRQll4MHpvQjNhMnNQTy9uYU81UDg5NTRQ?=
 =?utf-8?B?aERyN250anFQZE1BUXh1WE5UUjlaNnpCSW1jQzZoaytndlNtdmJlUzBzSDhD?=
 =?utf-8?B?TDJJK2syd21HNVR3ZGdJM3VTQ1ZGNzJaSTUyeWtSZnJpV1daR0xqNUk0STli?=
 =?utf-8?B?STJWbFpKRmkvcWRQL013OWw0blcxYlV0bkRhdmpQU21EbkNyTVExT1ovcFBv?=
 =?utf-8?B?akZlS25ZRlljcDBGVDJwTjhBRUNxS09kTFdWSFVpS1lkaUpPbnVNZ1VjVVlk?=
 =?utf-8?B?Ny81alM2MktLVFNXcmVQQ3NUbjZ4d1N1aTVlMi85Zm54RU1sL0crYzVvMEhJ?=
 =?utf-8?B?MGNEYnB3VnozT0NNYldIVC8yUGRxNVZwZ2RKMGpUQURUamZMS3RUVFUrMmRu?=
 =?utf-8?B?VDFFbXppUUNVaGMvY2pPRktkY1hoc3IreVo1SFdDUU0zSEljeWc1cHQ5U3p2?=
 =?utf-8?B?RVd6V3VIV3Nva0VOdFVxWENBTTB0R0VHa05iWWVSTmZRUUE2Q3VjbnlJNGVY?=
 =?utf-8?B?eGRRbW01UVpuaEJyekVjNWo3KzhrT1VhL3hPQmlac052L0E1U2J0QlRobzF3?=
 =?utf-8?B?RGNyL2pzYmxkSW9pbmFZMW9BQ1ZFNWJzR1JCOXNNd3oyaEhzbmRLWWJzUmhx?=
 =?utf-8?B?ZzBzamg3VEg0blBuRGtBUWtDV2NlVHpKb2x3VGVFRzd1Vkh2WEw5TW85TURX?=
 =?utf-8?B?enRhRTdOTTdzVEhNcTRBdFJiN085ZW51ZTdOV0MrYmhCcWQvVHBIMGpCN3I4?=
 =?utf-8?B?ZCt0ekNOQWtXQnRDZDk0RUREWUl2MlRWcjFqM1FLZXpPa1h5aFZodzdlR0JG?=
 =?utf-8?B?Z1lkZDNLV1BMRnIrWU1GTmJNckR6endabk8yS3N4MSsyQ2RQZDU1SGd3bHFa?=
 =?utf-8?B?Y3c9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <DA28466571BD4748981B2F2CDE752CFE@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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0be513c0-410f-4fd1-ece6-08dddbf94067
X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Aug 2025 12:42:53.0216
 (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: FV7ii3+dkrfurdMYnSBTYAixEcfxX9s7jpdV78vazgRsrn/pjmhHN7LCz2aaqzU6EtdE55m6ihWCnnGdqMVHoUDeed6eJ5NJSIRA0WWx2bc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR03MB7862

DQoNCk9uIDgvMTUvMjUgMTM6MzAsIERteXRybyBQcm9rb3BjaHVrIHdyb3RlOg0KPiANCj4gDQo+
IE9uIDgvMTUvMjUgMTE6NDIsIEphbiBCZXVsaWNoIHdyb3RlOg0KPj4gT24gMTUuMDguMjAyNSAw
OTowMCwgRG15dHJvIFByb2tvcGNodWsxIHdyb3RlOg0KPj4+IC0tLSBhL2RvY3MvbWlzcmEvZGV2
aWF0aW9ucy5yc3QNCj4+PiArKysgYi9kb2NzL21pc3JhL2RldmlhdGlvbnMucnN0DQo+Pj4gQEAg
LTk1LDcgKzk1LDggQEAgRGV2aWF0aW9ucyByZWxhdGVkIHRvIE1JU1JBIEM6MjAxMiBSdWxlczoN
Cj4+PiDCoMKgwqDCoMKgwqDCoMKgIHRoZSBhYnNlbmNlIG9mIHJlcG9ydHMgdGhhdCBkbyBub3Qg
aGF2ZSBhbiBpbXBhY3Qgb24gc2FmZXR5LCANCj4+PiBkZXNwaXRlDQo+Pj4gwqDCoMKgwqDCoMKg
wqDCoCBiZWluZyB0cnVlIHBvc2l0aXZlcy4NCj4+PiDCoMKgwqDCoMKgwqDCoMKgIFhlbiBleHBl
Y3RzIGRldmVsb3BlcnMgdG8gZW5zdXJlIGNvZGUgcmVtYWlucyBzYWZlIGFuZCANCj4+PiByZWxp
YWJsZSBpbiBidWlsZHMsDQo+Pj4gLcKgwqDCoMKgwqDCoCBldmVuIHdoZW4gZGVidWctb25seSBh
c3NlcnRpb25zIGxpa2UgYEFTU0VSVF9VTlJFQUNIQUJMRSgpIA0KPj4+IGFyZSByZW1vdmVkLg0K
Pj4+ICvCoMKgwqDCoMKgwqAgZXZlbiB3aGVuIGRlYnVnLW9ubHkgYXNzZXJ0aW9ucyBsaWtlIGBB
U1NFUlRfVU5SRUFDSEFCTEUoKWAgDQo+Pj4gYXJlIHJlbW92ZWQuDQo+Pj4gK8KgwqDCoMKgIC0g
RUNMQUlSIGhhcyBiZWVuIGNvbmZpZ3VyZWQgdG8gaWdub3JlIHRob3NlIHN0YXRlbWVudHMuDQo+
Pg0KPj4gTWluZCBtZSBhc2tpbmcgd2h5IG9uZSBmb3JtIG9mIHF1b3RpbmcgaXMgdXNlZCBoZXJl
ICh1c2luZyBiYWNrLXRpY2spLCANCj4+IHdoaWxlIC4uLg0KPj4NCj4+PiAtLS0gYS9kb2NzL21p
c3JhL3J1bGVzLnJzdA0KPj4+ICsrKyBiL2RvY3MvbWlzcmEvcnVsZXMucnN0DQo+Pj4gQEAgLTEy
NCw3ICsxMjQsNyBAQCBtYWludGFpbmVycyBpZiB5b3Ugd2FudCB0byBzdWdnZXN0IGEgY2hhbmdl
Lg0KPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0aGV5IGFyZSB1c2VkIHRvIGdlbmVyYXRl
IGRlZmluaXRpb25zIGZvciBhc20gbW9kdWxlcw0KPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIC0g
RGVjbGFyYXRpb25zIHdpdGhvdXQgaW5pdGlhbGl6ZXIgYXJlIHNhZmUsIGFzIHRoZXkgYXJlIG5v
dA0KPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBleGVjdXRlZA0KPj4+IC3CoMKgwqDCoMKg
wqDCoMKgIC0gRnVuY3Rpb25zIHRoYXQgYXJlIG5vLXJldHVybiBkdWUgdG8gY2FsbHMgdG8gdGhl
IA0KPj4+IGBBU1NFUlRfVU5SRUFDSEFCTEUoKScNCj4+PiArwqDCoMKgwqDCoMKgwqDCoCAtIEZ1
bmN0aW9ucyB0aGF0IGFyZSBuby1yZXR1cm4gZHVlIHRvIGNhbGxzIHRvIHRoZSANCj4+PiAnQVNT
RVJUX1VOUkVBQ0hBQkxFKCknDQo+Pg0KPj4gLi4uIGFub3RoZXIgaXMgdXNlZCBoZXJlIChzaW5n
bGUgcXVvdGVzKT8NCj4+DQo+PiBKYW4NCj4gDQo+IEdvb2QgcXVlc3Rpb24uLi4NCj4gSSdsbCBh
bGlnbiBhIHN0eWxlLg0KPiANCj4gRG15dHJvLg0KDQpXZWxsLCB0aGUgZGV2aWF0aW9ucy5yc3Qg
YW5kIHJ1bGVzLnJzdCBmaWxlcyBoYXZlIGEgbWl4ZWQgc3R5bGUuDQpTb21ldGltZXMgZmlsZSBu
YW1lcyBhcmUgaW4gJycsIGFuZCBzb21ldGltZXMgaW4gYGAuDQpUaGUgc2FtZSBpbmNvbnNpc3Rl
bmN5IGFwcGxpZXMgdG8gcmVmZXJyaW5nIHRvIGNvZGUuDQoNCkFueSBzdHlsZSBzdWdnZXN0aW9u
cz8NCg0KRG15dHJvLg==


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 12:50:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 12:50:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083428.1443026 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umttK-0007jT-4T; Fri, 15 Aug 2025 12:50:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083428.1443026; Fri, 15 Aug 2025 12:50: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 1umttK-0007jM-1r; Fri, 15 Aug 2025 12:50:42 +0000
Received: by outflank-mailman (input) for mailman id 1083428;
 Fri, 15 Aug 2025 12:50:40 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5DW6=23=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umttI-0007j7-Ky
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 12:50:40 +0000
Received: from mail-ej1-x62e.google.com (mail-ej1-x62e.google.com
 [2a00:1450:4864:20::62e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7202de94-79d6-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 14:50:39 +0200 (CEST)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-afcb7ae31caso341614366b.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 05:50: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
 a640c23a62f3a-afcdce53d6csm141097666b.6.2025.08.15.05.50.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Aug 2025 05:50: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>
X-Inumbo-ID: 7202de94-79d6-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755262239; x=1755867039; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=nT0wgmYg8j+TzXp9Jbb3VAX/4UIOVz3rjXWQslB704g=;
        b=TwqHmG43m5U+Uo8B7WZ2X5GGxich/sdUfPwXq5ivjft6soSrcVuWdVSyjlFxEK+wb1
         UXGh+qkH7LPmTmQelu1CMaOzLhSeX0FZYDWpx4M7wRMhiEkhHghjSFmskX3XSoD0PUmv
         nCQpyi6XYsi7nRtE1L5dwzL+qJQNp9KIxoyBXq5hSOi7fT3C3sW43k20cJbOQVNAtBji
         CAVuVNZ7altTOEhw+75P53OOIzRMSse/VlVSfL5CjXd60f2lY93rFCHXRwesgkObtNp6
         vpTCDkf17FGoZdSfP7NvnxDjLzbTBMXNyCXWIOxRQ/zE35VH/x2cW8BobePHu+xMsTAa
         DZew==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755262239; x=1755867039;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nT0wgmYg8j+TzXp9Jbb3VAX/4UIOVz3rjXWQslB704g=;
        b=beGOnrsEvM5L255abnUcPbhCYNycsqHbg7LqhE8OOKnDidCpGjpxhw56qhiYWavTJy
         L6+UeofHaAGKMryx0QsPFrRltb3JYigPkJjGq5enJtgbmD9+yrZSaVI3PV3glMR5wyLG
         /uw5+PMIiDk8swYCn/hvZMAXxshge2DFL2aCf9HlTFMk5DE6hOR4XgJJtdENhxQFpNw5
         lVOBd2SWk1XHCG/XmjVbw/CEfx/obeyE2+HS1Xvuw2dj1sA+pEVYnlJQRd8k8ScIJqZ6
         elIlyw5uj8FUyBYOSKVX6bjZmzdcN9Abv1yk4tYaOnn52aLuvM6Y4Ab1DweHUWzxzl3a
         4sfw==
X-Forwarded-Encrypted: i=1; AJvYcCV1dYGtA8VBSi1FuWAlqEkN7P8nzxtgCPoVo9fWRcVoMXLtudGD/O14ptxRd20CFoF29S5vQONdrUU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw4XpcdyjHxNEjWD4gwy8aGsPuxejxdZ3pHz8R+wvtMj4C1WiDF
	HCQRqs0BnYp+hke8axE0MwYD4JGjUMUvCyjGoPl8tYa/pV6DIrZPo3xg9gxE6LiSyQ==
X-Gm-Gg: ASbGncukTl6mhXh70OSSrmzTmJX4tCKgajn+x60gi8cZtIAP/JGLFtpnAZG2OY0TXWp
	mo/aVlZVEXXG395xg0sdg+WNXd7Rf5fIvnB0xMb0j0StUyU6r7qT7aEERZnwYJV6tMFuW50QBsR
	Wg4xWDir9oLIaQVtG7zMrmUY+qGF6GIegWJ48O2s50zkAb/9V8UrNEwOcM0xjiHtGBKMt2kOEIq
	pSN6Yd65Q/vIKMOYZRcbtAjb8dMpfnRQm7Z0J2ELm9nFgya7D+TBque1zYT4arPM1oYOdQkR6bJ
	+WulVxHMlxtF31VDFiQam9spCB14KZcUr0Dr4NjXnmINsHXwKu7KG1N4d6YSYBG24YGyQVVpl/O
	LLc1YFzzJMCD1jXdzMmPD5OtaY8OI79ka78OYZ3inLt9eIo1TU9KJ8zDAf6TlqjA8y9KhY3/02i
	NFw1DqfZDP7Rii28+sMqhlBfRMAY1u
X-Google-Smtp-Source: AGHT+IETPFNEnCRq4rfgGn5gxKvU85F4cyOibzYcOv/AACLt5d4ooLfoZS1K5VYvcpu9q5z6qlafCg==
X-Received: by 2002:a17:907:3e1a:b0:adb:428f:f748 with SMTP id a640c23a62f3a-afcdc1a3731mr164850766b.21.1755262238505;
        Fri, 15 Aug 2025 05:50:38 -0700 (PDT)
Message-ID: <da08c994-f14d-4fce-9b4e-8f97103e9acf@suse.com>
Date: Fri, 15 Aug 2025 14:50:37 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 12/20] xen/riscv: implement p2m_set_range()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <ea69584222a4c41eac276de1ec8eed25b13642d3.1753973161.git.oleksii.kurochko@gmail.com>
 <f217021e-1fef-4324-a56e-529fd29b4c69@suse.com>
 <62a3c3ef-1f19-4fac-b967-f7730e8f235f@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: <62a3c3ef-1f19-4fac-b967-f7730e8f235f@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15.08.2025 11:52, Oleksii Kurochko wrote:
> On 8/5/25 6:04 PM, Jan Beulich wrote:
>> On 31.07.2025 17:58, Oleksii Kurochko wrote:
>>> This patch introduces p2m_set_range() and its core helper p2m_set_entry() for
>> Nit: This patch doesn't introduce p2m_set_range(); it merely fleshes it out.
>>
>>> --- a/xen/arch/riscv/include/asm/p2m.h
>>> +++ b/xen/arch/riscv/include/asm/p2m.h
>>> @@ -7,11 +7,13 @@
>>>   #include <xen/rwlock.h>
>>>   #include <xen/types.h>
>>>   
>>> +#include <asm/page.h>
>>>   #include <asm/page-bits.h>
>>>   
>>>   extern unsigned int p2m_root_order;
>>>   #define P2M_ROOT_ORDER  p2m_root_order
>>>   #define P2M_ROOT_PAGES  BIT(P2M_ROOT_ORDER, U)
>>> +#define P2M_ROOT_LEVEL  HYP_PT_ROOT_LEVEL
>> I think I commented on this before, and I would have hoped for at least a remark
>> in the description to appear (perhaps even a comment here): It's okay(ish) to tie
>> these together for now, but in the longer run I don't expect this is going to be
>> wanted. If e.g. we ran Xen in Sv57 mode, there would be no reason at all to force
>> all P2Ms to use 5 levels of page tables.
> 
> Do you mean that for G-stage it could be chosen any SvXX mode to limit an amount
> of page tables necessary for G-stage? If yes, then, at least, I agree that a
> comment should be added or, probably, "#warning optimize an amount of p2m root level
> for MMU mode > Sv48" (or maybe >=).

Yes.

> Or do you mean if we set hgatp.mode=Sv57 then it is possible to limit an amount of
> page table's levels to use? In this case I think hardware still will expect to see
> 5 levels of page tables.

No.

>>> +static inline void p2m_write_pte(pte_t *p, pte_t pte, bool clean_pte)
>>> +{
>>> +    write_pte(p, pte);
>>> +    if ( clean_pte )
>>> +        clean_dcache_va_range(p, sizeof(*p));
>> Not necessarily for right away, but if multiple adjacent PTEs are
>> written without releasing the lock, this then redundant cache flushing
>> can be a performance issue.
> 
> Can't it be resolved on a caller side? Something like:
>    p2m_write_pte(p1, pte1, false);
>    p2m_write_pte(p2, pte2, false);
>    p2m_write_pte(p3, pte3, false);
>    p2m_write_pte(p4, pte4, true);
> where p1-p4 are adjacent.

No. You wouldn't know whether the last write flushes what the earlier
three have written. There may be a cacheline boundary in between. Plus
I didn't really think of back-to-back writes, but e.g. a loop doing
many of them, where a single wider flush may then be more efficient.

>>> +#define P2M_TABLE_MAP_NONE 0
>>> +#define P2M_TABLE_MAP_NOMEM 1
>>> +#define P2M_TABLE_SUPER_PAGE 2
>>> +#define P2M_TABLE_NORMAL 3
>>> +
>>> +/*
>>> + * Take the currently mapped table, find the corresponding the entry
>>> + * corresponding to the GFN, and map the next table, if available.
>> Nit: Double "corresponding".
>>
>>> + * The previous table will be unmapped if the next level was mapped
>>> + * (e.g P2M_TABLE_NORMAL returned).
>>> + *
>>> + * `alloc_tbl` parameter indicates whether intermediate tables should
>>> + * be allocated when not present.
>>> + *
>>> + * Return values:
>>> + *  P2M_TABLE_MAP_NONE: a table allocation isn't permitted.
>>> + *  P2M_TABLE_MAP_NOMEM: allocating a new page failed.
>>> + *  P2M_TABLE_SUPER_PAGE: next level or leaf mapped normally.
>>> + *  P2M_TABLE_NORMAL: The next entry points to a superpage.
>>> + */
>>> +static int p2m_next_level(struct p2m_domain *p2m, bool alloc_tbl,
>>> +                          unsigned int level, pte_t **table,
>>> +                          unsigned int offset)
>>> +{
>>> +    panic("%s: hasn't been implemented yet\n", __func__);
>>> +
>>> +    return P2M_TABLE_MAP_NONE;
>>> +}
>>> +
>>> +/* Free pte sub-tree behind an entry */
>>> +static void p2m_free_subtree(struct p2m_domain *p2m,
>>> +                             pte_t entry, unsigned int level)
>>> +{
>>> +    panic("%s: hasn't been implemented yet\n", __func__);
>>> +}
>>> +
>>> +/*
>>> + * Insert an entry in the p2m. This should be called with a mapping
>>> + * equal to a page/superpage.
>>> + */
>>> +static int p2m_set_entry(struct p2m_domain *p2m,
>>> +                           gfn_t gfn,
>>> +                           unsigned long page_order,
>>> +                           mfn_t mfn,
>>> +                           p2m_type_t t)
>>> +{
>>> +    unsigned int level;
>>> +    unsigned int target = page_order / PAGETABLE_ORDER;
>>> +    pte_t *entry, *table, orig_pte;
>>> +    int rc;
>>> +    /* A mapping is removed if the MFN is invalid. */
>>> +    bool removing_mapping = mfn_eq(mfn, INVALID_MFN);
>> Comment and code don't fit together. Many MFNs are invalid (any for which
>> mfn_valid() returns false), yet you only check for INVALID_MFN here.
> 
> Probably, it makes sense to add an|ASSERT()| here for the case when
> |mfn_valid(mfn)| is false, but the MFN is not explicitly equal to|INVALID_MFN|.
> This would indicate that someone attempted to perform a mapping with an
> incorrect MFN, which, IMO, is entirely wrong.

No, and we've been there before. MMIO can live anywhere, and mappings for
such still will need to be permitted. It is correct to check only for
INVALID_MFN here imo; it's just the comment which also needs to reflect
that.

>>> +    /*
>>> +     * If we are here with level > target, we must be at a leaf node,
>>> +     * and we need to break up the superpage.
>>> +     */
>>> +    if ( level > target )
>>> +    {
>>> +        panic("Shattering isn't implemented\n");
>>> +    }
>>> +
>>> +    /*
>>> +     * We should always be there with the correct level because all the
>>> +     * intermediate tables have been installed if necessary.
>>> +     */
>>> +    ASSERT(level == target);
>>> +
>>> +    orig_pte = *entry;
>>> +
>>> +    if ( removing_mapping )
>>> +        p2m_clean_pte(entry, p2m->clean_pte);
>>> +    else
>>> +    {
>>> +        pte_t pte = p2m_pte_from_mfn(mfn, t);
>>> +
>>> +        p2m_write_pte(entry, pte, p2m->clean_pte);
>>> +
>>> +        p2m->max_mapped_gfn = gfn_max(p2m->max_mapped_gfn,
>>> +                                      gfn_add(gfn, BIT(page_order, UL) - 1));
>>> +        p2m->lowest_mapped_gfn = gfn_min(p2m->lowest_mapped_gfn, gfn);
>>> +    }
>>> +
>>> +    p2m->need_flush = true;
>>> +
>>> +    /*
>>> +     * Currently, the infrastructure required to enable CONFIG_HAS_PASSTHROUGH
>>> +     * is not ready for RISC-V support.
>>> +     *
>>> +     * When CONFIG_HAS_PASSTHROUGH=y, iommu_iotlb_flush() should be done
>>> +     * here.
>>> +     */
>>> +#ifdef CONFIG_HAS_PASSTHROUGH
>>> +#   error "add code to flush IOMMU TLB"
>>> +#endif
>>> +
>>> +    rc = 0;
>>> +
>>> +    /*
>>> +     * Free the entry only if the original pte was valid and the base
>>> +     * is different (to avoid freeing when permission is changed).
>>> +     */
>>> +    if ( pte_is_valid(orig_pte) &&
>>> +         !mfn_eq(pte_get_mfn(*entry), pte_get_mfn(orig_pte)) )
>> I'm puzzled by this 2nd check: A permission change would - I expect - only
>> occur to a leaf entry. If the new entry is a super-page one and the old
>> wasn't, don't you still need to free the sub-tree, no matter whether the
>> MFNs are the same?
> 
> I expect the MFNs to differ in this scenario, so the old sub-tree will be freed.

You expecting something isn't a good criteria. If it's possible, even if
unexpected (by you), it needs dealing with correctly.

> Based on your example (new entry is super-page and old entry isn't):
> For old mapping (lets say, 4 KiB leaf) p2m_set_entry() walks all levels down
> to L0, so we will have the following MMU page table walks:
>    L2 PTE -> L1 PTE (MFN of L0 page table) -> L0 PTE -> RAM
> 
> When new mapping (lets say, 2 MiB superpage) will be requested, p2m_set_entry()
> will stop at L1 (the superpage level):
>   L2 PTE -> L1 PTE (at this moment, L1 PTE points to L0 page table, which
>                     points to RAM)
> Then the old L1 PTE will be saved in 'orig_pte', then writes 'entry' with
> the RAM MFN for the 2 MiB mapping. The walk becomes:
>    L2 PTE -> L1 PTE -> RAM
> 
> Therefore, 'entry' now holds an MFN pointing to RAM (superpage leaf). 'orig_pte'
> still holds an MFN pointing to the L0 table (the old sub-tree). Since these MFNs
> differ, the code calls p2m_free_subtree(p2m, orig_pte, â€¦) and frees the old L0
> sub-tree.

A particular example doesn't help. All possible cases need handling correctly.

>>   Plus consider the special case of MFN 0: If you clear
>> an entry using MFN 0, you will find old and new PTEs' both having the same
>> MFN.
> 
> Isn't this happen only when a mapping removal is explicitly requested?
> In the case of a mapping removal it seems to me it is enough just to
> clear PTE with all zeroes.

Correct. Which means original MFN (PPN) and new MFN (PPN) would match.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 12:52:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 12:52:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083438.1443036 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umtuk-0008Gf-EC; Fri, 15 Aug 2025 12:52:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083438.1443036; Fri, 15 Aug 2025 12: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 1umtuk-0008GY-Bg; Fri, 15 Aug 2025 12:52:10 +0000
Received: by outflank-mailman (input) for mailman id 1083438;
 Fri, 15 Aug 2025 12:52:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5DW6=23=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umtuj-0008GO-G2
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 12:52:09 +0000
Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com
 [2a00:1450:4864:20::62a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a74b0bf3-79d6-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 14:52:08 +0200 (CEST)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-afcb78d5dcbso273513266b.1
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 05: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
 a640c23a62f3a-afcdcfccd5asm139720066b.78.2025.08.15.05.52.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Aug 2025 05:52: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>
X-Inumbo-ID: a74b0bf3-79d6-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755262328; x=1755867128; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=N8FHr1vhiR0jND9evinEbLEIxAdTX/Hp3G4MjsUktRs=;
        b=Z+E8Rpj6oBkxZFPH+iO/JKDwGBKX8pmrPfxjnaFADfdfp1HWCWNoEQHg168+5TKQpW
         0edOxJf7H7WZWFCxzdHfO519goT2aMXGuxUj539j5XxNHdXWkcR+2lxivxkoTPhxNRuq
         fVZ2R7Yrk0TzlGQpCRZyCRJGZyb6v1K0Orfp5EhJLSBuMEETKlhMjO61m8KS9CFHesfe
         1YZ8jgPP4TpSpqVgRo5L2sDzXvehHCvro7cJmRecrUYEnGh93HQfx+ncrR+Lh0RUaCkJ
         ZXDu4UCGjgnuip0QaVAbTDTMSD24XzcQg/htyh8+C0rujbxanNyPaiFO9oJLGQkl5ZqH
         tbyg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755262328; x=1755867128;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=N8FHr1vhiR0jND9evinEbLEIxAdTX/Hp3G4MjsUktRs=;
        b=c3ehER25qonMXqOIkY8zpcnlQfiUZm9wLAiltYCmYoOJJKdJtxr+7FqGwHzrmVE6m7
         TZ1UZhZCQ0E1BolHglZtiArlq5cRQmybHAjZNJJFf904VE8r5bck0BMorTUpaQWCylLi
         r9GEfLwWSZU4rYgPHOsyetNj9nIRtlTadBohXrn0gMdfp7lLdwahenPg6NKLms4jhZQo
         J4p1MnZhu/hSkzpFdnoC7+LO29e3bvVOyLELqJ7WuN3D9rEYYnXL8gP6KVRKBCdlzy4V
         ClA9QPc7kSWgkcAWACD/gMiyxndDvAAKW1USosx2NqSv8rfflTZVs9EEyLUU1CbAuKDZ
         SHOw==
X-Forwarded-Encrypted: i=1; AJvYcCUysIzKC5Sjf/tU3zXzfIGUaCQCXa2mEWTf9sumV7+cbJoMHv4B+XceZTzYUUeoYqMvCqP6+jIlIQI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw3JRZvsJ38isgFFuaMCtJmgECejtfn4Fj6K3qYa8zUeqJcUx93
	Ma/PMHLdgTMW6tP19PIiulfBW586174Ew0jIhjXRNyxMZIKZGOH9sYwxpg7RWnx48w==
X-Gm-Gg: ASbGncstsQDROKgknKmRd7J01MwcebMglH3yI2H6R4wBvZpRtBN17GMybv6GFxsdTDG
	VuI2aakYPjhoOp8YgRpNYdw5/ZLed47dv7sytxmfJBFE8SpnCgifNGWz5xc9RjKQ4wzGgXCCovs
	xfkB4177XhEyZ5LkR7lcrbcw4+pwscoye+/t48HRiIt3Cl2IZm7KnC/uTU2xKcxAtd3ljc2xtUD
	vln45uuq7+WG45+y4VWspQmeSsdySE64JpCof+pmtA6wHGEqTKdTVa6alM6qcLfYZbCJgB5+S3m
	CdpFEa15VFjrsqVLMQce4XCp1Nag+iwtMGbWkSi5unqNsFjIRwdNfvmY7fpYZa4i9sUwjVeQWvv
	8vBOJR6TK9Db4bdersET78mEUhrSaMqAti1sEkPIjdYifZE9g/yJgvMuc0XTXFkUyF8QYutH6ec
	22pXsVaYc=
X-Google-Smtp-Source: AGHT+IGIfmZhOJyYo/FB1eNMAHKoHKuq7bFJhO9xTt5dx6+Bo61Pph9jCgGvH26PSmPAkiZnidHFgw==
X-Received: by 2002:a17:907:78d:b0:aec:76c6:6ef6 with SMTP id a640c23a62f3a-afcdc3e975fmr175947966b.50.1755262328140;
        Fri, 15 Aug 2025 05:52:08 -0700 (PDT)
Message-ID: <cdbea749-6c40-4ed6-96c4-f4d8c665b79f@suse.com>
Date: Fri, 15 Aug 2025 14:52:06 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] docs/misra: fix sphinx-build issues
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <fb809a94e8a50bd3a59aa47ee1832c61af8a9f40.1755241166.git.dmytro_prokopchuk1@epam.com>
 <99171678-71a2-4cec-a6dc-343993108a37@suse.com>
 <b8aff698-fbc8-4fc6-a616-fbe14c7538d7@epam.com>
 <124fbf42-c521-4185-b9e2-a92e7b54a5a4@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: <124fbf42-c521-4185-b9e2-a92e7b54a5a4@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15.08.2025 14:42, Dmytro Prokopchuk1 wrote:
> On 8/15/25 13:30, Dmytro Prokopchuk wrote:
>> On 8/15/25 11:42, Jan Beulich wrote:
>>> On 15.08.2025 09:00, Dmytro Prokopchuk1 wrote:
>>>> --- a/docs/misra/deviations.rst
>>>> +++ b/docs/misra/deviations.rst
>>>> @@ -95,7 +95,8 @@ Deviations related to MISRA C:2012 Rules:
>>>> Â Â Â Â Â Â Â Â  the absence of reports that do not have an impact on safety, 
>>>> despite
>>>> Â Â Â Â Â Â Â Â  being true positives.
>>>> Â Â Â Â Â Â Â Â  Xen expects developers to ensure code remains safe and 
>>>> reliable in builds,
>>>> -Â Â Â Â Â Â  even when debug-only assertions like `ASSERT_UNREACHABLE() 
>>>> are removed.
>>>> +Â Â Â Â Â Â  even when debug-only assertions like `ASSERT_UNREACHABLE()` 
>>>> are removed.
>>>> +Â Â Â Â  - ECLAIR has been configured to ignore those statements.
>>>
>>> Mind me asking why one form of quoting is used here (using back-tick), 
>>> while ...
>>>
>>>> --- a/docs/misra/rules.rst
>>>> +++ b/docs/misra/rules.rst
>>>> @@ -124,7 +124,7 @@ maintainers if you want to suggest a change.
>>>> Â Â Â Â Â Â Â Â Â Â Â Â  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()'
>>>> +Â Â Â Â Â Â Â Â  - Functions that are no-return due to calls to the 
>>>> 'ASSERT_UNREACHABLE()'
>>>
>>> ... another is used here (single quotes)?
>>>
>>> Jan
>>
>> Good question...
>> I'll align a style.
>>
>> Dmytro.
> 
> Well, the deviations.rst and rules.rst files have a mixed style.
> Sometimes file names are in '', and sometimes in ``.
> The same inconsistency applies to referring to code.
> 
> Any style suggestions?

That depends on how both quoting styles are treated by Sphinx. Which is
something I don't know. I merely noticed the inconsistency within this
single patch.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 13:05:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 13:05:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083452.1443046 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umu7j-0001yO-NF; Fri, 15 Aug 2025 13:05:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083452.1443046; Fri, 15 Aug 2025 13:05: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 1umu7j-0001yH-KI; Fri, 15 Aug 2025 13:05:35 +0000
Received: by outflank-mailman (input) for mailman id 1083452;
 Fri, 15 Aug 2025 13:05:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5DW6=23=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1umu7i-0001yB-3U
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 13:05:34 +0000
Received: from mail-ej1-x631.google.com (mail-ej1-x631.google.com
 [2a00:1450:4864:20::631])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 86b01006-79d8-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 15:05:32 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-afcb79f659aso300905366b.2
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 06:05: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
 a640c23a62f3a-afcdce72d7fsm148377166b.45.2025.08.15.06.05.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Aug 2025 06:05: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>
X-Inumbo-ID: 86b01006-79d8-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755263132; x=1755867932; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=a8O/+n6GBh+JF0+tBupnsjL8WsxDxfRDmDBBeqwpSkI=;
        b=fMqRB/wGBnBVqqk+0U+lNkr2aP+mv5d3uf5nTjZBwg8FCdRqS5wbxyZzQxsOzE3D1w
         xJnG4+EsskhN1Y36ZF/q8ECNL9G+Gs4ziKWrSoo1/0O1dGV0kzIVL4kuMGpz2r0AlnQO
         RnmsnBMV5nLFmdhWugr80lSQmNI7qIflVVKrOL3gRL/B7P0M8Ly/aKogpfPYz8Knt82b
         eKFO0NAI+K4kk69AfTnGDwCNA9NeQPw3+DHJO2bQITKuvhPP6rf/LB9kX7b7jCOF1Hza
         KLBuRTOM0vtb9P6BkhjLABOmGuYvp0/eOrcYtUXFDFChX1XmPh5GYZ4TY/+1nlyrctkN
         /PPQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755263132; x=1755867932;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=a8O/+n6GBh+JF0+tBupnsjL8WsxDxfRDmDBBeqwpSkI=;
        b=D+Y/K/W2YI1nl5qhjxv41NKZjzxi05FQ873Pf4RQY9vuFbdeTqaOUBPAtN6fkMnppX
         Tb4x11MvbVsW8g/rhC01uG41LzWe136C/UlcmVgCJMhwpcKaVyS0OP+pc6S7jZO2QZoc
         4+q/ue9OcxF+7+m+VH7ymuvn/lGDIJ58vmYib/ArjLk27QTfF06tcYC2oSmNZP3PyHro
         /xkG3ZTNFFcCR4xxkPFn66PhYcDJ3w8ZbIgEF3r6I69nsyl+/vwXRg9aO30HycpdWQo9
         Wm23y5n39BySiqG+U6NiSwPV0LKtz74SoNQo/tBk90xF1a8qsi0O1s9/jjSQSW7otmoI
         8boA==
X-Forwarded-Encrypted: i=1; AJvYcCVxJGQw8cvu4SIH3rWb1b6C5l41woMGVsFR4aAuRP5B0ZabDLJDBuHiL2uswdKdcTwvaAeO3Ev2j5s=@lists.xenproject.org
X-Gm-Message-State: AOJu0YypXAcXdgFETvu2szosgOjt18CII9307UVyLiu9oFor6RbC28zQ
	gyNPMPeTvHloggZTmI0n3YD5kLb2Z0LnOHJW2z2gxlLj8WkkMcPwJKD/LEwKErHa2g==
X-Gm-Gg: ASbGncv+t2sHwJm30b27kMHzoqCVZVui0SS0k6XAkSY2228qaBtRHxQQ6YbTJek8Il+
	sWdEx4bIZDHHvY9W2qOlr1C2Pm9AjxcC5vKrTx535chikahRLThSuZqXvF4i/WWxUh125fFx1jI
	qixlGkGP+VqHoTp+9bT2SAbHPSDjJSDL+1TvemKiOiiGlsz6mUwQYkZJFln7Gy7DRXSKhXyEtYo
	+C3N9GUDehm94YvZSX1wa0jrRhaP8EzJEXgx7WAww2nGwGL7EmWn2HCzJg3FnpDyH3/7FtO/raP
	cfVTyb0zDgIRquRW+1a5WA7i81R3Ew8LtwZaSO8RaaFPO/HW8GPzkiKbUvwzYl59Y037z5bVpZS
	da1mne1bios51HrvX8P4BBpfH2hFl2h+41jMWRhkY1lQA6ycwhJjvztgV0TNZUR1XE6cKgciJKU
	szS0vVoA7n+Fi1tImF4g==
X-Google-Smtp-Source: AGHT+IE8quJostnXrvBRjQbqzPBZnn7PCCygz9reM0zn3YmhdYC7n9CgMBSx/6LAyoERP/5hEGKQhg==
X-Received: by 2002:a17:907:7295:b0:ae3:6651:58ba with SMTP id a640c23a62f3a-afcdc328379mr159102766b.35.1755263132334;
        Fri, 15 Aug 2025 06:05:32 -0700 (PDT)
Message-ID: <9e6ddc2d-9797-4169-a2b1-3ccbfabdb368@suse.com>
Date: Fri, 15 Aug 2025 15:05:31 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/hvm/ioreq: Fix condition in
 hvm_alloc_legacy_ioreq_gfn()
To: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.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: <20250815101946.2329018-1-oleksandr_tyshchenko@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: <20250815101946.2329018-1-oleksandr_tyshchenko@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.08.2025 12:19, Oleksandr Tyshchenko wrote:
> Fix the incorrect condition that causes hvm_alloc_legacy_ioreq_gfn()
> to return INVALID_GFN even if the HVM param was installed properly by
> the toolstack.
> 
> Fixes: 3486f398a3dd (' x86/hvm/ioreq: allow ioreq servers to use HVM_PARAM_[BUF]IOREQ_PFN')
> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

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



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 13:49:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 13:49:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083467.1443057 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umuo8-0007VE-Ny; Fri, 15 Aug 2025 13:49:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083467.1443057; Fri, 15 Aug 2025 13:49:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umuo8-0007V7-L3; Fri, 15 Aug 2025 13:49:24 +0000
Received: by outflank-mailman (input) for mailman id 1083467;
 Fri, 15 Aug 2025 13:49:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oFbR=23=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1umuo7-0007V1-RF
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 13:49:23 +0000
Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com
 [2a00:1450:4864:20::435])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a60d4b10-79de-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 15:49:22 +0200 (CEST)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-3b9170db547so1290916f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 06:49:22 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3bb64664133sm2017634f8f.12.2025.08.15.06.49.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Aug 2025 06:49:21 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a60d4b10-79de-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755265762; x=1755870562; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=vTspprVRQ5VrEg5X9otlKvtAlh9KpfewSF/fCoT1Klk=;
        b=o8e570TKLzgOmm8kEDQxVlqK1eY/rALYpHSQk2FkJX3lxXEX+Gv/wwIb51JLwI6UcN
         JLQKYlMPBpG+7cQZvRXixELJ+dCUtjv3vqgGksewuae+kHrFksTd8EsnZq+8eOi4C1M0
         VPHuGZ9zDlUV7+T79E233dVApBhvrP31ZvYW8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755265762; x=1755870562;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vTspprVRQ5VrEg5X9otlKvtAlh9KpfewSF/fCoT1Klk=;
        b=q9ahwhZfpcRvVmgL8N/5ZejCIBCrc0+FfrKtzEgj0c1teFzx+Iw6gjkRM8jccCiojN
         bgDHBPArAGqBsy/ZMP3ln8edZQTd2The8NR5pirggIUxVQYnzYH/ORPafD87lpxQqCqT
         K1CqzdTfLdT2WynzklJGg7JLh7QgoWhIgP4f+fvUVPrfhhV14tYCaHNQyVUPMwIEc78A
         kSjkTYeVkOgKu6i46GLfF9YXWymjZBdWtuTmVZiCkeQqmzVJojeMUQdBGBvu13S+6LYy
         UkBi6XPh0Y0igQhuYoh0QTM+kalu6IJxYmhCgCIdPiS9evnoF/yzzTlkEYSWBWpG88hN
         7ADw==
X-Forwarded-Encrypted: i=1; AJvYcCXpN+Zm13HwBpOcgt1d672jFff3fFZ2P02FIPKt8Xs/L75haeXqUF5bqxj5Z4tbk7kcxaN5QaWkHOc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyQTL3kvQ7cRcUljbzVOsTDqTrjBi2tfUo6Y1sg+N+taJI2RazV
	ScwopK66iX7srT0xnmP0KP9on1hDTRAQ/qimZSxqPkOyF7KYTeJYDdPMvpVJiGBNDgE=
X-Gm-Gg: ASbGncs4IkEwYaa3QX6HWND+Ip6hTCsCUG8K6TXjfO5vWemO1sbp7oCAuss2jm8G13d
	YX36IV5X7+EO7gQ6ybCeOqLFFp8n8frooDPYHYhSBAwDKgVBzhIvx5Cym65TdfTSlbLSkT38n+p
	0hJN0Jvzmfz6IOw+9P8xomFh8L0RpgAev16i4QRT4Tury4c2wOH65809wTUJo9ItFcDGIwUwUpR
	pdymovA068XVioXmG1aMU0pmFk6DWSss9U0z+yiKC2QQiSA/0X78s+MdD1dBunc7lOfNZ9v4TCE
	Qtuwysvsn6bK6UkVnYweeyvJhci5MPKSD0Y4jOFBDvL2Ysm98PBt9DK0cVPtl2FOsXLVd4MDcr8
	ezqX8n4Jta8oZXEUTQijRslTDZyUptciSbVWti5lfY2rY5wz7IY2+mTU7K+Thh1rVy/QyEo37TG
	8AwKI=
X-Google-Smtp-Source: AGHT+IHK5rqGAN3riPdU0/brxhGoTvnd8bAogkXxGN+v07d1ahABEpVMzCIBfLMfge+s3vRCcdN1+Q==
X-Received: by 2002:a05:6000:2f84:b0:3b8:d337:cc2d with SMTP id ffacd0b85a97d-3ba508eb0b2mr5409431f8f.18.1755265761954;
        Fri, 15 Aug 2025 06:49:21 -0700 (PDT)
Message-ID: <fb9daf06-f18d-4301-960b-c0b2ba4d489f@citrix.com>
Date: Fri, 15 Aug 2025 14:49:20 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 18/22] x86/traps: Set MSR_PL0_SSP in load_system_tables()
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-19-andrew.cooper3@citrix.com>
 <74a76087-e45e-4d7a-8df3-2711f77eea2a@suse.com>
 <abfd11c9-db7b-4922-aeb5-381b5284fb22@citrix.com>
 <2377fe95-2c04-4b71-8bdd-ea61996c82a4@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: <2377fe95-2c04-4b71-8bdd-ea61996c82a4@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15/08/2025 9:52 am, Jan Beulich wrote:
> On 14.08.2025 21:37, Andrew Cooper wrote:
>> On 14/08/2025 4:00 pm, Jan Beulich wrote:
>>> On 08.08.2025 22:23, Andrew Cooper wrote:
>>>> --- a/xen/arch/x86/boot/x86_64.S
>>>> +++ b/xen/arch/x86/boot/x86_64.S
>>>> @@ -65,17 +65,11 @@ ENTRY(__high_start)
>>>>          or      $(PRIMARY_SHSTK_SLOT + 1) * PAGE_SIZE - 8, %rdx
>>>>  
>>>>          /*
>>>> -         * Write a new supervisor token.  Doesn't matter on boot, but for S3
>>>> -         * resume this clears the busy bit.
>>>> +         * Write a new Supervisor Token.  It doesn't matter the first time a
>>>> +         * CPU boots, but for S3 resume or CPU hot re-add, this clears the
>>>> +         * busy bit.
>>>>           */
>>>>          wrssq   %rdx, (%rdx)
>>>> -
>>>> -        /* Point MSR_PL0_SSP at the token. */
>>>> -        mov     $MSR_PL0_SSP, %ecx
>>>> -        mov     %edx, %eax
>>>> -        shr     $32, %rdx
>>>> -        wrmsr
>>>> -
>>>>          setssbsy
>>> This is ending up a little odd: The comment says the write is to clear the
>>> busy bit, when that's re-set immediately afterwards.
>> That comment is about the wrssq.Â  I suppose what isn't said is that
>> setssbsy will fault if not.Â  How about ", so SETSSBSY can set it again" ?
> That would improve things, but then it's still unclear to me why we need to
> go through this. If the busy bit is already set, why clear it just to set
> it again.

Because the behaviour of SETSSBSY is along the lines of:

Â Â Â  if ( test_and_set(busy) )
Â  Â  Â Â Â  SSP = token;
Â Â Â  else
Â Â Â  Â Â Â  #GP

It really is quite an ugly instruction, and I'm not sorry to see it go.

> Or perhaps asked differently: Wouldn't we be better off if we
> cleared the busy bit when a CPU went offline?

That's actually quite hard.Â  The shadow stack is in use until the CPU
takes an INIT, so ought to have it's busy bit set.

In practice, clearing the primary shstk busy bit is probably safe to do
when we're certain we'll never return to PV context again.

But this is still a larger change (needs wrss() in every play dead) and
more fragile than just clearing it before we're about to use the stack
fresh.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 14:16:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 14:16:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083487.1443091 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umvDp-0003NB-WE; Fri, 15 Aug 2025 14:15:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083487.1443091; Fri, 15 Aug 2025 14:15: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 1umvDp-0003N4-Sm; Fri, 15 Aug 2025 14:15:57 +0000
Received: by outflank-mailman (input) for mailman id 1083487;
 Fri, 15 Aug 2025 14:15:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9KPM=23=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1umvDo-0003Mi-IV
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 14:15:56 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5abd50d8-79e2-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 16:15:54 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by PA4PR03MB7103.eurprd03.prod.outlook.com (2603:10a6:102:f2::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.14; Fri, 15 Aug
 2025 14:15:51 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9031.014; Fri, 15 Aug 2025
 14:15: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>
X-Inumbo-ID: 5abd50d8-79e2-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=pCENmuG1YzjrspW9iRX6NBdg/LovDvj+Stpg0kU6Mq2PJaXVVuWZfCZPQYJmLs+/kIXN1o1gdgx73oi+e6XFtqZ2ryfbVgHHIjHQazmrbgPqYRY3CR4coKeHvmKqbcNa7OxBozxz7TOmlXUY9aHMY/PbPaUHavx+ks8QRBFGwaCf9R7ei1tLvC37qNqWtGO5igbi4/LbdMLCLJOAdF12H745e/75auqyby73R+BG0cKLWfd0xJZFlnH3+kTC6FjozIZ7Lo6rnRIFs5TubOOQ0GZLwVXJ+a/pJ1VEbkDUpRCCcqVbWmkBDCBy60KWgEMg5x9/jhOYSMQbvCCJ65Vs1w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=o+nErdGwgAUFF4kNo/KwOuKnRVxkhgIWh+T2/6wvl/k=;
 b=gyt7LV7C4/zLNmQAVvGmvFfNC4kqr1advVLIZnuispSjWBNms+LcNuAmn1//l5Sy7vHP1a1trs5wRP6KzaDfHp2WtDrPQWcGIUs2QX7j4lg8NTph957b9VbaFF0ubjxm6DuPucK9bfbjaOtjxeO0CuShcMkWXAWmxbY77j8J0EAQO4CpDu/EL6MLDem6xWACYx5aLshCVYK2Jlub5EhN9uz1ZXoTIS/yLbBIOiprK54LuGLbLszyK2SUGVHUv8maFpyUxto4U5qP8Nqz+fmMPmv6cys3oWDsJjrWnPtaeeA0QdQIdsd0LpQqmuVyASTby5jQ8Wm+7hfQa2hvCefEgg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=o+nErdGwgAUFF4kNo/KwOuKnRVxkhgIWh+T2/6wvl/k=;
 b=Tn/aQtFY4agEUeDlHqANVCw9B6qH1R+DdIofufSUtdb+WPSZKvjqTXP+jARibcKjbzqpSxB6hn8PJaa/z5jOiFAhu7TqXqKDtxcS7+5Os2i5PY6fQ2x104CBn3207NVnNbxkt9BvnDeVFZV6X+vsiin2Az1+RdWflP6vPoaTrjoahoU+iZ5a+z2sJto1j7UrBiTvFwFFyGTYi/NBPcarp80ZL3iSdwUhN+7q3PntR4ZU0eTrgdV08FIZwe4DzY1IkXWfH/16wsvHrxrUSTz+5SG+bAbi5aNevzmr6Sg/cJuHMeqgqYFoQ7nTSpbdV4V72ToWkRUGulN1sgviEdU0IQ==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, Nicola
 Vetrini <nicola.vetrini@bugseng.com>
Subject: [PATCH v2] docs/misra: fix sphinx-build issues
Thread-Topic: [PATCH v2] docs/misra: fix sphinx-build issues
Thread-Index: AQHcDe8as9q/ao3zhECV/xRhyhAMwQ==
Date: Fri, 15 Aug 2025 14:15:50 +0000
Message-ID:
 <f31b8d62f16bd272114276f53db842101cd53e52.1755266805.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: GV2PR03MB9572:EE_|PA4PR03MB7103:EE_
x-ms-office365-filtering-correlation-id: 818685e8-38cc-46a6-ee9a-08dddc063d23
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|42112799006|1800799024|376014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?2+W2H9rrxU1IQeE+r4Z9qwbC4tfDrqJVlyq8z/4Kjy3MiGruB7hLYixT7k?=
 =?iso-8859-1?Q?tlJeFzGNpVP0KEI044t4GEZjphfuaooKoEGwHpM6u4NZ+tLT/Jm3rtWG+u?=
 =?iso-8859-1?Q?vArabIBWENslfGvF1cNAsaLa6g+9cpfdtp3Je2xvH4RQBVbZ+/7pYbrk7d?=
 =?iso-8859-1?Q?R6QVwlgWFul0IKAfeCp/NW/Y7IxA7Cu6AfexheqbOrgYJt6jIjFbWi+8+X?=
 =?iso-8859-1?Q?oUahZtszmGXdtXl2Yqv5RGngvyQM+jiNI7lwUiCogxwKzJGT01ihrrvK58?=
 =?iso-8859-1?Q?j6u6YnuxyVRINnpI9U3tBENzEHgtUuy0PrBWtu5VlR8ReY6v6w2gLD3IhW?=
 =?iso-8859-1?Q?ad6XZc43dT6jtHX/GSFY8U4hzjQdEqKDfj4FUsP2CMUzmsHU7mFaIWx+V1?=
 =?iso-8859-1?Q?ePSnAmSRpe7mhaiOFMDMREWe7roEgc8xNY3HeaziCrJvyN8J+60U98MDW0?=
 =?iso-8859-1?Q?KpMv6cezACTHKegsFAetznO2WVL9t8aXpyulSDxcMkBrtmDh9amjjl+64x?=
 =?iso-8859-1?Q?0gfPHKeigAYj4dUWopKSm71EfKt5WcKE9Yo3sH4qtJmxPoE3JHSv9tfg5T?=
 =?iso-8859-1?Q?DbmN8CbNEsV7o6PvKF4pp01DJbF9diu2kxad3zraRYjCp5fF6JkSPJ+ltS?=
 =?iso-8859-1?Q?X2Q4YatUF6JhqkX4MJVc2gUT2z/HsQkWNGyhkC+XLx4O7kUMMDi0jMi22T?=
 =?iso-8859-1?Q?E5ouClMNrSr+BFlksRaL1/Z5+Liy16HvaCeJ3QJwtY+oEy0zQHRKKWhTd+?=
 =?iso-8859-1?Q?v31sQAtp3WvkMhZ0Y9lIW6TscsYJY+YQ9RqkWBwLqiC3w8QFokeC0hz8Op?=
 =?iso-8859-1?Q?DKDqSo8muKJ7qvpV4tc97u1gkOfxDj5AGMFuwH5fKeGKsgGO+gc48A16SR?=
 =?iso-8859-1?Q?A8+7JcNZ0VdfKAzXycWjU0+uco6wWKotkAy1YJ5B5ABktYdVtkEm3h/VBI?=
 =?iso-8859-1?Q?A8TPxc7T2XFeKSUgSgbBI6OexQTk1EYmCf+osbZwzzOvarsfZUofc/VHox?=
 =?iso-8859-1?Q?h0irq/+NGUvkFt8N+I3zWQi240bZRjXlYGxsauneoDkFMAUYdNXntN0yXk?=
 =?iso-8859-1?Q?bucPKraUR+fUAsequE77jcD6mWe4vJXyxH6M05LC85nqPNU9Zs3UCdbThj?=
 =?iso-8859-1?Q?dYVO+HxIoTX5HsGEweETkx376U91BFInjXmNJc0Msfguz33C6DNkq9dUBH?=
 =?iso-8859-1?Q?cJhbMcOygKh8/So6hOCQG30pxscTlDKOnywpkA5e1fZlsRnk4kKypd2qdv?=
 =?iso-8859-1?Q?nK86vGQrzdXP2To+zo6N7c2lgS9L1f0NEfMn83CLDlXxGo5C6c/V9mwwve?=
 =?iso-8859-1?Q?w1WGVRh1duoXFnZUuDH9v26xEbPuUZnSIHKhSv//gwEUWBpeJ7iUWxifeh?=
 =?iso-8859-1?Q?45Bq7T05Sad5dtZtmjlEc/uooTzaRCBwTGOCkLjbRZTIeZCuERsE1KlFiP?=
 =?iso-8859-1?Q?+cZ77Jqqopz4snc5oFS63RzVHjclYgq4L0PMFiBaKclxeASS2ps4ACQPgE?=
 =?iso-8859-1?Q?0=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(42112799006)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?WwnNB6PZpYJ5YzfiL6xlWdshCXF+ZoajoBBGBW9lm3YWUdTI+jx/JsnJoz?=
 =?iso-8859-1?Q?reb13f7Z27wlFBBhmmKsHNwGKn+Fyig4Ag3ZzVa3mm43RrYEAbfQLHIzar?=
 =?iso-8859-1?Q?qFaf3e4A5t8sez3xiSqGnbwjpmf0Ljd/EYRXCF2G3XcTpnoAO1eNHIrVN3?=
 =?iso-8859-1?Q?A2mYoMgAT1gXqqEWBNTEMkLPaQRLCSet7mbTFf6EVNa+KUZV3RebJgpAjv?=
 =?iso-8859-1?Q?l/Bh3MGr/8PZYbbVEV28dY9VQJOWzsSdi1NZ0hAEZ6QqXSvcuR9YuveD8I?=
 =?iso-8859-1?Q?bTeZZ/CA6eVPRzZoOSmpCvVh4EREV5y2WJ/LEkVI4Sz8/MLhUojWKzf5je?=
 =?iso-8859-1?Q?AJbK0EamYKnneZ4JEY7BaNveS0tdvASJxKSZKHnoqX314ReHDIuP+vYf+C?=
 =?iso-8859-1?Q?BE47FiUfllwTWN2iqeucAG1RFP3quH47S3wMQH9gzGiJyZPcG34V3r39w7?=
 =?iso-8859-1?Q?u98LR7Btipw8X26ZVZeHJ0kxVSSEVNkdPryjsaPp899a/9zuuvMofEt/c2?=
 =?iso-8859-1?Q?sOaNB84kQGeBVF4S32OkfIOCx80Av4pIDSCxh5PxtQMGnGnQm66FC5d0Cl?=
 =?iso-8859-1?Q?5ke57gQDvi39uk6gG3kvR/q1aoBmNPwv7ffmzsBDqe5ZS3LKapzEIwUImu?=
 =?iso-8859-1?Q?5fBvrD92UbeIUOuy5U7Z6u34yKt3zo9iQhNuArAxCkDyt8WaR/LkKZv69T?=
 =?iso-8859-1?Q?gR42EMAFen4lTd4ENOMSRS691yM3avz8sCfTvCFcgqIUwxVSxytDPiR02g?=
 =?iso-8859-1?Q?ebJFTrKlYGdAu5RYJCWs9PNH79kkMbRN/vB71Et6y6iFWBmhEUKsrG4i0K?=
 =?iso-8859-1?Q?ZrlkFhvwrU+evFBCe6Wz3J7mdj4wWA5jLsJFw5DyZ2T3cHi0jqq8E8qyzH?=
 =?iso-8859-1?Q?iBvW731VYisYPyDshGHBWuI7SGN7Fnh3FJ0xdkRO8ZZ64zjLfLRKbRKuK6?=
 =?iso-8859-1?Q?hGjuADZqwM9fRdlsPM/3XLKMnvdR4HS46nbmeYX1a7g0bmuhI1pn6hyP5l?=
 =?iso-8859-1?Q?oVzyBuZ2LKIOt0iZozb5+IxLmDxF5a6EMkmGgvX5UNfr5aZgN4eez77w9s?=
 =?iso-8859-1?Q?DS4GmSrPMxy56asWqCj5C0bOsEmkAhT7YHt/5xvkAc5/oSJeSa495AufMC?=
 =?iso-8859-1?Q?NPRkPv+dC94ES05J9XnlEjN+deu47rmepMzRAzbignTxPlBbpHedxAhSiV?=
 =?iso-8859-1?Q?fJMdm3w/ciEdydQ/u7dNjuf4X9wBdAkd9mjA+KP5f6Lt3O+7iy+/+b8dzY?=
 =?iso-8859-1?Q?sDrib0YhFNjnvPipL65rQiOjFTiNwSPMsVRia+BFLgtHpbgQ3yIScMO5ng?=
 =?iso-8859-1?Q?XXfrOo9Xt1Z9AhTXbokGicmkbab6DCnYWU/Ap4xh5fvFYudyFN8eiqMapb?=
 =?iso-8859-1?Q?h40jMIt3r+k8VIDoriQ8eykpWxs0lsphJC+x5IgnrUHZPQckBBLQ31nNtt?=
 =?iso-8859-1?Q?QmP2f1Q45Q/yBP0xkZ8iNkkoYbBT/pseHrbC76bkJxcyOQkhMWXio6gcrt?=
 =?iso-8859-1?Q?FuOCQrYgwk8C/69DATVikS1gnD/vwVqEVGS3Yky7svNa+QH4Q2OyVlqY/q?=
 =?iso-8859-1?Q?gFD3ZFWLpq+bg02BeyLk2Sr0ZtMoEDT0n7ovpEyRuaFkUp1OeSD45z0NnG?=
 =?iso-8859-1?Q?aBZ7qNAz0NuNzk5kc9Bsqn5LGbZDGvAhglx9kXJAoIWLolX+utqnPA3A?=
 =?iso-8859-1?Q?=3D=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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 818685e8-38cc-46a6-ee9a-08dddc063d23
X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Aug 2025 14:15:50.9735
 (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: YFN3R5964u6op4SoIrdUuBemNwTU43ov03aveLg6gUdj3ScPgwVrooiCvWfOWJqZxvJv0VSRzpTeoqNOgXVs8gUhHGiFXitjC3qTSducG8w=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR03MB7103

Fix the following issues:
1. xen/docs/misra/deviations.rst:90: WARNING: Inline interpreted text or
phrase reference start-string without end-string. [docutils]
2. xen/docs/misra/deviations.rst:54: ERROR: Error parsing content block
for the "list-table" directive: uniform two-level bullet list expected,
but row 6 does not contain the same number of items as row 1 (2 vs 3).
* - R2.1
  - Calls to the `__builtin_unreachable()` function inside the expansion of
    the `ASSERT_UNREACHABLE()` macro may cause a function to be marked as
    non-returning. This behavior occurs only in configurations where
    assertions are enabled. To address this, the `noreturn` property for
    `__builtin_unreachable()` is overridden in these contexts, resulting in
    the absence of reports that do not have an impact on safety, despite
    being true positives.
    Xen expects developers to ensure code remains safe and reliable in buil=
ds,
    even when debug-only assertions like `ASSERT_UNREACHABLE() are removed.
3. xen/docs/misra/rules.rst:127: WARNING: Inline interpreted text or phrase
reference start-string without end-string. [docutils]
4. remove backticks from references to source code in the file rules.rst
to have a consistent style in this file

Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
Link to v1:
https://patchew.org/Xen/fb809a94e8a50bd3a59aa47ee1832c61af8a9f40.1755241166=
.git.dmytro._5Fprokopchuk1@epam.com/

Changes in v2:
- updated commit message (item 4)
- added review tags
- in the file rules.rst, removed backticks from references to source code
---
 docs/misra/deviations.rst | 3 ++-
 docs/misra/rules.rst      | 8 ++++----
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
index 3c46a1e47a..2be49076e1 100644
--- a/docs/misra/deviations.rst
+++ b/docs/misra/deviations.rst
@@ -95,7 +95,8 @@ Deviations related to MISRA C:2012 Rules:
        the absence of reports that do not have an impact on safety, despit=
e
        being true positives.
        Xen expects developers to ensure code remains safe and reliable in =
builds,
-       even when debug-only assertions like `ASSERT_UNREACHABLE() are remo=
ved.
+       even when debug-only assertions like `ASSERT_UNREACHABLE()` are rem=
oved.
+     - ECLAIR has been configured to ignore those statements.
=20
    * - R2.2
      - Proving compliance with respect to Rule 2.2 is generally impossible=
:
diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst
index 6812eb7e8a..be315bc991 100644
--- a/docs/misra/rules.rst
+++ b/docs/misra/rules.rst
@@ -119,12 +119,12 @@ maintainers if you want to suggest a change.
          - 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')
+           assembly code (e.g. do_trap_fiq)
          - asm-offsets.c, as they are not linked deliberately, because
            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_UNREAC=
HABLE()'
+         - Functions that are no-return due to calls to the ASSERT_UNREACH=
ABLE()
            macro in debug build configurations are not considered violatio=
ns::
=20
               static inline bool
@@ -413,8 +413,8 @@ maintainers if you want to suggest a change.
        and any other type
      - All conversions to integer types are permitted if the destination
        type has enough bits to hold the entire value. Conversions to bool
-       and void* are permitted. Conversions from 'void noreturn (*)(...)'
-       to 'void (*)(...)' are permitted.
+       and void* are permitted. Conversions from void noreturn (*)(...)
+       to void (*)(...) are permitted.
=20
    * - `Rule 11.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-S=
uite/-/blob/master/R_11_02.c>`_
      - Required
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 14:32:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 14:32:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083512.1443104 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umvU7-0006Mm-FS; Fri, 15 Aug 2025 14:32:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083512.1443104; Fri, 15 Aug 2025 14:32: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 1umvU7-0006Mf-Bm; Fri, 15 Aug 2025 14:32:47 +0000
Received: by outflank-mailman (input) for mailman id 1083512;
 Fri, 15 Aug 2025 14:32:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=VEq/=23=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1umvU6-0006MZ-ON
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 14:32:46 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de
 [2a07:de40:b251:101:10:150:64:1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b238053a-79e4-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 16:32:40 +0200 (CEST)
Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 307342117A;
 Fri, 15 Aug 2025 14:32:39 +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 07A0F13876;
 Fri, 15 Aug 2025 14:32:39 +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 P8RvAAdFn2i2CAAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 15 Aug 2025 14:32: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>
X-Inumbo-ID: b238053a-79e4-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1755268359; 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=KOHAGKcLsiksvIN2UqijmhF0goRfZGHcsts43BNRfMI=;
	b=EXWXHiEBEln+uzyCBuZSJQ71sQjhvd3z1P8awJItuuhJlIDmvqOT0MljuQNwXTupA7zMwH
	l07nk7AxlDexDsO8cqgWOC3w0/991Ysr+lniVGo1/DdFm1MMxwm0LPpNeW4/PT6XnPQKqi
	jwoKUcs/fwRnOvNl2UrMvdI4QW6PJYs=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1755268359; 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=KOHAGKcLsiksvIN2UqijmhF0goRfZGHcsts43BNRfMI=;
	b=EXWXHiEBEln+uzyCBuZSJQ71sQjhvd3z1P8awJItuuhJlIDmvqOT0MljuQNwXTupA7zMwH
	l07nk7AxlDexDsO8cqgWOC3w0/991Ysr+lniVGo1/DdFm1MMxwm0LPpNeW4/PT6XnPQKqi
	jwoKUcs/fwRnOvNl2UrMvdI4QW6PJYs=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH] tools/xl: hide xenstore-features behind option
Date: Fri, 15 Aug 2025 16:32:36 +0200
Message-ID: <20250815143236.27641-1-jgross@suse.com>
X-Mailer: git-send-email 2.43.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)[99.99%];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MID_CONTAINS_FROM(1.00)[];
	R_MISSING_CHARSET(0.50)[];
	NEURAL_HAM_SHORT(-0.20)[-0.999];
	MIME_GOOD(-0.10)[text/plain];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FROM_HAS_DN(0.00)[];
	ARC_NA(0.00)[];
	MIME_TRACE(0.00)[0:+];
	TO_DN_SOME(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email,suse.com:mid,imap1.dmz-prg2.suse.org:helo];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	RCPT_COUNT_THREE(0.00)[4];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO
X-Spam-Score: -2.80

In order to be able to use "xl info" before Xenstore has been started
or after it has crashed, hide obtaining the available Xenstore features
behind the new option "-x".

Fixes: ecce7970cfe7 ("tools/xl: add available Xenstore features to xl info output")
Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
---
 docs/man/xl.1.pod.in     |  4 ++++
 docs/man/xl.cfg.5.pod.in |  2 +-
 tools/xl/xl_info.c       | 14 ++++++++++----
 3 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/docs/man/xl.1.pod.in b/docs/man/xl.1.pod.in
index fe38724b2b..88ccf7ad82 100644
--- a/docs/man/xl.1.pod.in
+++ b/docs/man/xl.1.pod.in
@@ -996,6 +996,10 @@ B<OPTIONS>
 
 List host NUMA topology information
 
+=item B<-x>, B<--xenstore>
+
+Show Xenstore features available.
+
 =back
 
 =item B<top>
diff --git a/docs/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.in
index f0c920b39d..acff45d308 100644
--- a/docs/man/xl.cfg.5.pod.in
+++ b/docs/man/xl.cfg.5.pod.in
@@ -743,7 +743,7 @@ condition.
 =back
 
 The features supported by the running Xenstore instance can be retrieved
-via the B<xl info> command in dom0.
+via the B<xl info -x> command in dom0.
 
 The default value is B<0xffffffff>, meaning that all possible Xenstore
 features are visible by the guest.
diff --git a/tools/xl/xl_info.c b/tools/xl/xl_info.c
index eb019e3ee9..d3583cbf8f 100644
--- a/tools/xl/xl_info.c
+++ b/tools/xl/xl_info.c
@@ -353,7 +353,7 @@ static void output_xenstore_info(void)
     xs_close(xsh);
 }
 
-static void print_info(int numa)
+static void print_info(int numa, bool xs)
 {
     output_nodeinfo();
 
@@ -365,7 +365,8 @@ static void print_info(int numa)
     }
     output_xeninfo();
 
-    output_xenstore_info();
+    if (xs)
+        output_xenstore_info();
 
     maybe_printf("xend_config_format     : 4\n");
 
@@ -631,14 +632,19 @@ int main_info(int argc, char **argv)
     int opt;
     static struct option opts[] = {
         {"numa", 0, 0, 'n'},
+        {"xenstore", 0, 0, 'x'},
         COMMON_LONG_OPTS
     };
     int numa = 0;
+    bool xs = false;
 
-    SWITCH_FOREACH_OPT(opt, "n", opts, "info", 0) {
+    SWITCH_FOREACH_OPT(opt, "nx", opts, "info", 0) {
     case 'n':
         numa = 1;
         break;
+    case 'x':
+        xs = true;
+        break;
     }
 
     /*
@@ -648,7 +654,7 @@ int main_info(int argc, char **argv)
     if (numa == 0 && argc > optind)
         info_name = argv[optind];
 
-    print_info(numa);
+    print_info(numa, xs);
     return 0;
 }
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 14:35:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 14:35:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083521.1443113 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umvWx-0006uN-RJ; Fri, 15 Aug 2025 14:35:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083521.1443113; Fri, 15 Aug 2025 14:35: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 1umvWx-0006uG-Nq; Fri, 15 Aug 2025 14:35:43 +0000
Received: by outflank-mailman (input) for mailman id 1083521;
 Fri, 15 Aug 2025 14:35:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=VEq/=23=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1umvWw-0006uA-ML
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 14:35:42 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1ddc1795-79e5-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 16:35:40 +0200 (CEST)
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 D737C21841;
 Fri, 15 Aug 2025 14:35:38 +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 A8E1513876;
 Fri, 15 Aug 2025 14:35:38 +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 67QqJ7pFn2h5CQAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 15 Aug 2025 14:35: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>
X-Inumbo-ID: 1ddc1795-79e5-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1755268539; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=6pp+ytwLOK+MztvsSRVjiwIuvmSzvA9Aw7OxJ82sq54=;
	b=hni2Gz7XeYjECOZO7DuKzCVZ1j9MA7O2Sl3/5ims49WVjqEQuAlI/PH2aFAw84h9B/Frr8
	qOYUgrij0wYCEgvdazBg9dvcEQaSS7Hxjio1UQlSJFIwCYOKGc6whhYV+s/5BB4hTPcWBw
	oumJ6DoKhirTscKJV7qLCyQad9qnX2I=
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b="XrFtaJ/c"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1755268538; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=6pp+ytwLOK+MztvsSRVjiwIuvmSzvA9Aw7OxJ82sq54=;
	b=XrFtaJ/cl7c6LlIo08otXrRhKa8b2KaTF2l9uFdRltkmn6Iu9Qna7hChdnwQGhrj+SfIIq
	kqqEcibksZUSeHJJK7G3UIxexgXsy+SjFe/c7RszxDIFOQm0H38epMUxccdIn/0+koIv95
	3HtGLg74/+iTzHgoU4Sl6QiFhd0109k=
Message-ID: <115eca26-32a3-403f-9bf6-553c6b20940c@suse.com>
Date: Fri, 15 Aug 2025 16:35:37 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] tools/xl: hide xenstore-features behind option
To: xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Oleksii <oleksii.kurochko@gmail.com>
References: <20250815143236.27641-1-jgross@suse.com>
Content-Language: en-US
From: Juergen Gross <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <20250815143236.27641-1-jgross@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------A0Dcn3IjDW2NBO0w5M2PlIz0"
X-Spam-Level: 
X-Spam-Flag: NO
X-Rspamd-Queue-Id: D737C21841
X-Rspamd-Action: no action
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org
X-Spamd-Result: default: False [-3.91 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	SIGNED_PGP(-2.00)[];
	SUSPICIOUS_RECIPS(1.50)[];
	MIME_BASE64_TEXT_BOGUS(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_UNKNOWN(0.10)[application/pgp-keys];
	MIME_BASE64_TEXT(0.10)[];
	MX_GOOD(-0.01)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FREEMAIL_ENVRCPT(0.00)[gmail.com];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	ARC_NA(0.00)[];
	RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	RCVD_TLS_ALL(0.00)[];
	DKIM_TRACE(0.00)[suse.com:+];
	TO_DN_SOME(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	DNSWL_BLOCKED(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	FREEMAIL_CC(0.00)[vates.tech,citrix.com,gmail.com];
	MID_RHS_MATCH_FROM(0.00)[];
	TAGGED_RCPT(0.00)[];
	HAS_ATTACHMENT(0.00)[];
	RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received];
	RCPT_COUNT_THREE(0.00)[4];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim,suse.com:mid,suse.com:email,imap1.dmz-prg2.suse.org:rdns,imap1.dmz-prg2.suse.org:helo]
X-Spam-Score: -3.91

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------A0Dcn3IjDW2NBO0w5M2PlIz0
Content-Type: multipart/mixed; boundary="------------2Lb4BPtvePWZwQg4grnGBijt";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Oleksii <oleksii.kurochko@gmail.com>
Message-ID: <115eca26-32a3-403f-9bf6-553c6b20940c@suse.com>
Subject: Re: [PATCH] tools/xl: hide xenstore-features behind option
References: <20250815143236.27641-1-jgross@suse.com>
In-Reply-To: <20250815143236.27641-1-jgross@suse.com>

--------------2Lb4BPtvePWZwQg4grnGBijt
Content-Type: multipart/mixed; boundary="------------ec8tc0rs9iqSFNSQgMMruLG0"

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

KyBSZWxlYXNlIE1hbmFnZXINCg0KT24gMTUuMDguMjUgMTY6MzIsIEp1ZXJnZW4gR3Jvc3Mg
d3JvdGU6DQo+IEluIG9yZGVyIHRvIGJlIGFibGUgdG8gdXNlICJ4bCBpbmZvIiBiZWZvcmUg
WGVuc3RvcmUgaGFzIGJlZW4gc3RhcnRlZA0KPiBvciBhZnRlciBpdCBoYXMgY3Jhc2hlZCwg
aGlkZSBvYnRhaW5pbmcgdGhlIGF2YWlsYWJsZSBYZW5zdG9yZSBmZWF0dXJlcw0KPiBiZWhp
bmQgdGhlIG5ldyBvcHRpb24gIi14Ii4NCj4gDQo+IEZpeGVzOiBlY2NlNzk3MGNmZTcgKCJ0
b29scy94bDogYWRkIGF2YWlsYWJsZSBYZW5zdG9yZSBmZWF0dXJlcyB0byB4bCBpbmZvIG91
dHB1dCIpDQo+IFJlcG9ydGVkLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0Bj
aXRyaXguY29tPg0KPiBTaWduZWQtb2ZmLWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3Vz
ZS5jb20+DQo+IC0tLQ0KPiAgIGRvY3MvbWFuL3hsLjEucG9kLmluICAgICB8ICA0ICsrKysN
Cj4gICBkb2NzL21hbi94bC5jZmcuNS5wb2QuaW4gfCAgMiArLQ0KPiAgIHRvb2xzL3hsL3hs
X2luZm8uYyAgICAgICB8IDE0ICsrKysrKysrKystLS0tDQo+ICAgMyBmaWxlcyBjaGFuZ2Vk
LCAxNSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBh
L2RvY3MvbWFuL3hsLjEucG9kLmluIGIvZG9jcy9tYW4veGwuMS5wb2QuaW4NCj4gaW5kZXgg
ZmUzODcyNGIyYi4uODhjY2Y3YWQ4MiAxMDA2NDQNCj4gLS0tIGEvZG9jcy9tYW4veGwuMS5w
b2QuaW4NCj4gKysrIGIvZG9jcy9tYW4veGwuMS5wb2QuaW4NCj4gQEAgLTk5Niw2ICs5OTYs
MTAgQEAgQjxPUFRJT05TPg0KPiAgIA0KPiAgIExpc3QgaG9zdCBOVU1BIHRvcG9sb2d5IGlu
Zm9ybWF0aW9uDQo+ICAgDQo+ICs9aXRlbSBCPC14PiwgQjwtLXhlbnN0b3JlPg0KPiArDQo+
ICtTaG93IFhlbnN0b3JlIGZlYXR1cmVzIGF2YWlsYWJsZS4NCj4gKw0KPiAgID1iYWNrDQo+
ICAgDQo+ICAgPWl0ZW0gQjx0b3A+DQo+IGRpZmYgLS1naXQgYS9kb2NzL21hbi94bC5jZmcu
NS5wb2QuaW4gYi9kb2NzL21hbi94bC5jZmcuNS5wb2QuaW4NCj4gaW5kZXggZjBjOTIwYjM5
ZC4uYWNmZjQ1ZDMwOCAxMDA2NDQNCj4gLS0tIGEvZG9jcy9tYW4veGwuY2ZnLjUucG9kLmlu
DQo+ICsrKyBiL2RvY3MvbWFuL3hsLmNmZy41LnBvZC5pbg0KPiBAQCAtNzQzLDcgKzc0Myw3
IEBAIGNvbmRpdGlvbi4NCj4gICA9YmFjaw0KPiAgIA0KPiAgIFRoZSBmZWF0dXJlcyBzdXBw
b3J0ZWQgYnkgdGhlIHJ1bm5pbmcgWGVuc3RvcmUgaW5zdGFuY2UgY2FuIGJlIHJldHJpZXZl
ZA0KPiAtdmlhIHRoZSBCPHhsIGluZm8+IGNvbW1hbmQgaW4gZG9tMC4NCj4gK3ZpYSB0aGUg
Qjx4bCBpbmZvIC14PiBjb21tYW5kIGluIGRvbTAuDQo+ICAgDQo+ICAgVGhlIGRlZmF1bHQg
dmFsdWUgaXMgQjwweGZmZmZmZmZmPiwgbWVhbmluZyB0aGF0IGFsbCBwb3NzaWJsZSBYZW5z
dG9yZQ0KPiAgIGZlYXR1cmVzIGFyZSB2aXNpYmxlIGJ5IHRoZSBndWVzdC4NCj4gZGlmZiAt
LWdpdCBhL3Rvb2xzL3hsL3hsX2luZm8uYyBiL3Rvb2xzL3hsL3hsX2luZm8uYw0KPiBpbmRl
eCBlYjAxOWUzZWU5Li5kMzU4M2NiZjhmIDEwMDY0NA0KPiAtLS0gYS90b29scy94bC94bF9p
bmZvLmMNCj4gKysrIGIvdG9vbHMveGwveGxfaW5mby5jDQo+IEBAIC0zNTMsNyArMzUzLDcg
QEAgc3RhdGljIHZvaWQgb3V0cHV0X3hlbnN0b3JlX2luZm8odm9pZCkNCj4gICAgICAgeHNf
Y2xvc2UoeHNoKTsNCj4gICB9DQo+ICAgDQo+IC1zdGF0aWMgdm9pZCBwcmludF9pbmZvKGlu
dCBudW1hKQ0KPiArc3RhdGljIHZvaWQgcHJpbnRfaW5mbyhpbnQgbnVtYSwgYm9vbCB4cykN
Cj4gICB7DQo+ICAgICAgIG91dHB1dF9ub2RlaW5mbygpOw0KPiAgIA0KPiBAQCAtMzY1LDcg
KzM2NSw4IEBAIHN0YXRpYyB2b2lkIHByaW50X2luZm8oaW50IG51bWEpDQo+ICAgICAgIH0N
Cj4gICAgICAgb3V0cHV0X3hlbmluZm8oKTsNCj4gICANCj4gLSAgICBvdXRwdXRfeGVuc3Rv
cmVfaW5mbygpOw0KPiArICAgIGlmICh4cykNCj4gKyAgICAgICAgb3V0cHV0X3hlbnN0b3Jl
X2luZm8oKTsNCj4gICANCj4gICAgICAgbWF5YmVfcHJpbnRmKCJ4ZW5kX2NvbmZpZ19mb3Jt
YXQgICAgIDogNFxuIik7DQo+ICAgDQo+IEBAIC02MzEsMTQgKzYzMiwxOSBAQCBpbnQgbWFp
bl9pbmZvKGludCBhcmdjLCBjaGFyICoqYXJndikNCj4gICAgICAgaW50IG9wdDsNCj4gICAg
ICAgc3RhdGljIHN0cnVjdCBvcHRpb24gb3B0c1tdID0gew0KPiAgICAgICAgICAgeyJudW1h
IiwgMCwgMCwgJ24nfSwNCj4gKyAgICAgICAgeyJ4ZW5zdG9yZSIsIDAsIDAsICd4J30sDQo+
ICAgICAgICAgICBDT01NT05fTE9OR19PUFRTDQo+ICAgICAgIH07DQo+ICAgICAgIGludCBu
dW1hID0gMDsNCj4gKyAgICBib29sIHhzID0gZmFsc2U7DQo+ICAgDQo+IC0gICAgU1dJVENI
X0ZPUkVBQ0hfT1BUKG9wdCwgIm4iLCBvcHRzLCAiaW5mbyIsIDApIHsNCj4gKyAgICBTV0lU
Q0hfRk9SRUFDSF9PUFQob3B0LCAibngiLCBvcHRzLCAiaW5mbyIsIDApIHsNCj4gICAgICAg
Y2FzZSAnbic6DQo+ICAgICAgICAgICBudW1hID0gMTsNCj4gICAgICAgICAgIGJyZWFrOw0K
PiArICAgIGNhc2UgJ3gnOg0KPiArICAgICAgICB4cyA9IHRydWU7DQo+ICsgICAgICAgIGJy
ZWFrOw0KPiAgICAgICB9DQo+ICAgDQo+ICAgICAgIC8qDQo+IEBAIC02NDgsNyArNjU0LDcg
QEAgaW50IG1haW5faW5mbyhpbnQgYXJnYywgY2hhciAqKmFyZ3YpDQo+ICAgICAgIGlmIChu
dW1hID09IDAgJiYgYXJnYyA+IG9wdGluZCkNCj4gICAgICAgICAgIGluZm9fbmFtZSA9IGFy
Z3Zbb3B0aW5kXTsNCj4gICANCj4gLSAgICBwcmludF9pbmZvKG51bWEpOw0KPiArICAgIHBy
aW50X2luZm8obnVtYSwgeHMpOw0KPiAgICAgICByZXR1cm4gMDsNCj4gICB9DQo+ICAgDQoN
Cg==
--------------ec8tc0rs9iqSFNSQgMMruLG0
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-----

--------------ec8tc0rs9iqSFNSQgMMruLG0--

--------------2Lb4BPtvePWZwQg4grnGBijt--

--------------A0Dcn3IjDW2NBO0w5M2PlIz0
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/Ey8FAmifRboFAwAAAAAACgkQsN6d1ii/Ey8y
4wf9FZshIg+hJnal1upPNBUIcCo9MRmHsdtNeNen5Tk5vucKgJmN83uyjFDtJ96KeP89oJ+9Z40g
1eN1uen8nN5TOWbqO043ZBRBQyRLGucWXmfYVfsixPVkElYNgbWmdoU5YPFmHKXpt383zzy8Fars
EulkQviIzIFUmXjD8wv1ThPRmjuIVrhxoyp7+WOr27Sl33kvfOc2xpirpeO7A+ffrA9kqNsiDBfa
Kbe+NCLNjgBuaetf8JDuG1S8WH4wCojYud6wwW2SuyBOHlfAas3oZ077osr96Rc9ojz+YfDsmXlu
nDbkSnYW4ZTTINRRmTNo6be5ntLY2ZFQIQX4GsyqQw==
=J+UN
-----END PGP SIGNATURE-----

--------------A0Dcn3IjDW2NBO0w5M2PlIz0--


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 14:36:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 14:36:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083531.1443124 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umvXh-0007Px-3a; Fri, 15 Aug 2025 14:36:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083531.1443124; Fri, 15 Aug 2025 14:36: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 1umvXh-0007Pq-01; Fri, 15 Aug 2025 14:36:29 +0000
Received: by outflank-mailman (input) for mailman id 1083531;
 Fri, 15 Aug 2025 14:36:28 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oFbR=23=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1umvXf-0007BC-U0
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 14:36:27 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 39942fc7-79e5-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 16:36:27 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-45a1b0c82eeso14625985e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 07:36:27 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45a1c6bd172sm65420915e9.6.2025.08.15.07.36.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Aug 2025 07:36: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>
X-Inumbo-ID: 39942fc7-79e5-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755268586; x=1755873386; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=DFRRmyonge3EEmjI8473VeOucy0wZomyrXC22r84+/k=;
        b=agKoV/Zb+l45QyRrVnP0J/fcVLwuftEYaU5mdmUkiwAH0+OZdRuLieuAWpZyxxGa8P
         IIeKV5BIT3AqDQV9BDAb9BC2sZwLLKZotTXbiJuHUXbsBs8SXTYWFqs51Denq1u6u9mK
         RfhfC2hwq1VmuY9VXvU5wDW+RUR7JxRMsN8o4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755268586; x=1755873386;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=DFRRmyonge3EEmjI8473VeOucy0wZomyrXC22r84+/k=;
        b=mgjksYnxJgosSUX2IgzlWWG4mRxMtKdT/1D7rtpgwZiPkcLsLWfWXpzXqcNicSn9h6
         OqVzKydkvwFhVzueRg8mXQ1yXC+/y6sYjh9cPjhlrljcjnpOZJ2aC+rFJFy7zcgNn23p
         /Iek/iY/0nptR+sGcrFacoIT3/0L47lpET/i7VTZuHR9+waHvXiL/hMwTDdZr2r8y9bd
         cIY2HNW7pRwFNXdkEGPXOQm77oPfUbrqMC2pNRz31EgmCQzQY45U5aC/MkXj5yb1Ps88
         BfotIlaF7DY6TmFA/mHxYniJAzT8t/BHknVY9kMENcxQCi4pl5eBUTTZtU0c/me1ma5d
         IORQ==
X-Forwarded-Encrypted: i=1; AJvYcCVr+qiI3SsOaugqEUXxfX23mgpXYsBZ59WQP/lVZ3ApUDYNW79vz2qm6HRYxQxs4lSb4dpKM0p87XU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxOCLlmS2dK0fcf6Vc14aSuYtF/oCbMV7sXAhMfQ4KolqaAcp8B
	d+hQUsuFuD6zusqEWIhhImEt/b+rzhhj2KV+Xez2WA3Qb8oPtECQ45wmi3XNkXuCszxrVcYULCH
	MSE4i
X-Gm-Gg: ASbGnctLmuyDsbhlLeEFY6zLMxQooMUXR6N/KO0DuEhvu5DKiGMZ5qSo9dXW8Bu3rFA
	sSP31PbeMmV3G1QdKM3z5x6IdPZIvKtFNbUus5j+Ci/JB9HYnAXodjVIouY/1f2v8v2dFb42EvZ
	ELxzpMW8QSdDGbp65X9zvxhf1BJvhecn+Jyjb4d9O1UK92Jjyr9Kn6oi+8gWMzI/HYuZqzR+w9+
	d2ZGiPPJ4UVyQad2u9EFcceaq3aGk+cqOair61WsluuH2q9znTfq0ceAGj2GIhz12RRSRfNOqA5
	IIr9evuduFqQMiH/uUOY1JU1nO7NLZ91ajE8HBcf+MAKXtvP0mazYmUVOlC4/JCy+Reqn95rC62
	gYJjExu3ITfIjQNQiyz1dXdpctzlrv7FNdJOOePt7oYXuTG5lHP5lvCde5udq5oRN5rFvpMf0fT
	Xp3qU=
X-Google-Smtp-Source: AGHT+IHMM3CFXuRjMCgEUoxVngc5v2BD5693kpZUF+OUE/VnnsKziPseAr7OV03/X2M0EMqfPXjRDw==
X-Received: by 2002:a05:600c:1c9a:b0:459:d3ce:2cea with SMTP id 5b1f17b1804b1-45a217fbc98mr20976475e9.6.1755268586500;
        Fri, 15 Aug 2025 07:36:26 -0700 (PDT)
Message-ID: <3ef1fc73-601c-4de0-b94e-bbf9cc27d081@citrix.com>
Date: Fri, 15 Aug 2025 15:36:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] tools/xl: hide xenstore-features behind option
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>
References: <20250815143236.27641-1-jgross@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: <20250815143236.27641-1-jgross@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15/08/2025 3:32 pm, Juergen Gross wrote:
> In order to be able to use "xl info" before Xenstore has been started
> or after it has crashed, hide obtaining the available Xenstore features
> behind the new option "-x".
>
> Fixes: ecce7970cfe7 ("tools/xl: add available Xenstore features to xl info output")
> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Juergen Gross <jgross@suse.com>

Probably ought to be Reported-by Ross Lagerwall.Â  He did all the hard
work debugging this; I just insisted that the conversation move onto Matrix.

For the change itself, Reviewed-by: Andrew Cooper
<andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 14:39:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 14:39:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083543.1443133 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umvaP-00082i-Ht; Fri, 15 Aug 2025 14:39:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083543.1443133; Fri, 15 Aug 2025 14:39:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umvaP-00082b-FM; Fri, 15 Aug 2025 14:39:17 +0000
Received: by outflank-mailman (input) for mailman id 1083543;
 Fri, 15 Aug 2025 14:39:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=VEq/=23=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1umvaN-00082V-82
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 14:39:15 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9c741e48-79e5-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 16:39:13 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-45a1b00f23eso11109185e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 07:39:13 -0700 (PDT)
Received: from ?IPV6:2003:e5:872d:6400:8c05:37ee:9cf6:6840?
 (p200300e5872d64008c0537ee9cf66840.dip0.t-ipconnect.de.
 [2003:e5:872d:6400:8c05:37ee:9cf6:6840])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45a1c790689sm64530545e9.28.2025.08.15.07.39.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Aug 2025 07:39: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>
X-Inumbo-ID: 9c741e48-79e5-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755268752; x=1755873552; 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=P4KUKr66TVIGF5KsKxX0kgWIBTJcWZogsPA3kDvYRhM=;
        b=HFPP0YOpxbpY55/cbJs8qxbAX7h5RXhNSyfM81vs1EjBTPjUUV1xK1irfsqhLNbKAR
         2GmsC8z4wxuwCyIMpJkxuWjsZS0A/mZ7JjsLaFYHaU4YNXVA1wFLPxS3oSJJrNHWV3h9
         44MkzzSpei/dgbbjnbSOTH9FGsh2EdpDJvN2mpW8wq320Y/E+B9z/YS8oui3FbG2sm6S
         npP4fLZjtSpYSBHnUGO2ObLVbriYiSTfWK4d/6GB/MSDk0ToTs1gw/hPSOxmxBt39vai
         CMt6RfY/6gg8OIqSUA0yxcgwbnVMnE9TpePX4ui/sXebGrpBA6F8BXx6VDQZQulOE++W
         TW5w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755268752; x=1755873552;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=P4KUKr66TVIGF5KsKxX0kgWIBTJcWZogsPA3kDvYRhM=;
        b=J50kojGnuXIm51gLm3LGqAlfeN0R5VlFSLCB1edX2aYB5oIFUdumpu2rBi9JpVzuHi
         9NLXC7ofgPVkA899Dg3VrgcpamzgwjJey1Ok1JKP5Qtt+97k32t6jSJboMEWq3aUNACK
         dYw6ooGP4ey3itAREzlxhAsdSZKMMUT4zJjOVtfX1/bXORv6jgIoeyoiEhMnv3qSlPb6
         mum1JyBb1cShaenCcMNfORNkeQhZBchen6FE28w4WTofO/A2lUQBPEfG6/qXIInqFB+j
         a5aVf2QgNC+IVYl/R6r4/GiJokPopkSZkPW1sJMDtmSmkvvoIGdQXN93cq0EyjZ6dbr1
         50DQ==
X-Forwarded-Encrypted: i=1; AJvYcCWxgh8JGFKhpe+3u6fPlI7X7nYD0fBx1gaLYhU+cSTp7mwuO5HrpO139osCvGXc78RYqRukDl+oD34=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw1XqBPXetnOpQtw5XlypkhvLdqodYZSQAuK+pYUYxAlgw65dLz
	U98aNqCkNdZ93/tlatHXhwxftdCJ75I514uX40I7w0pK/5W6WnfYn9cqR3TVJXTISTzbsEcFrl6
	XA51swA0=
X-Gm-Gg: ASbGncs2zlzSLJU75JPbZeK00mi+3Uau4n57dsKD05h41qe4p/j1NPPKtWB9oSnNHgK
	Tc1+ASpzNXDatJGROIqPGCYyD+F3133VCJKhaYr+9TmiCmTNwlHKlv434zRmItQ3mUP6R3XeW0b
	2iGSn2FhtLk8JvU90C8Au8po9J9bkNS5NWqqwPRqUwpXCULIz/K9nRVdXw6XhTOjc1CocBFwkn6
	qJh51vNON2u/z9TIt2+r8CvWz+DhgFRl73XAw7LGr17lUknIj5vvjzIo6J57eJllB+j2yb7ZdwK
	teykoLpxdwVHPINmJ0M4IDrBSDohU3J5vJHNrh0Y81JZWdflMoB88sJcdQx9ZsadG5FzfvUi4L3
	1uxJKyBMRLLH1/f1krMDUFpWlhSns/Ljaa5sMX1IUiCUiZdSNLNTKHD7/QXsofIy3lREUXtCqFY
	mRkbDovALXhXZkowGM5fliQi7up8xTcREJZFhh8E5E6rXEazZUT8559Rqwpw==
X-Google-Smtp-Source: AGHT+IHGFj/v2AHSUMHoX1jjl4Iv4qGOlcF/g0ZjYHai5w1aps1/1W1MuA4xzrC50dfslrT8/ocQqQ==
X-Received: by 2002:a05:6000:420f:b0:3b5:def6:4f7 with SMTP id ffacd0b85a97d-3bb68a17722mr1784443f8f.30.1755268752307;
        Fri, 15 Aug 2025 07:39:12 -0700 (PDT)
Message-ID: <1704c30a-49fc-49fd-bb2f-a90f7f834761@suse.com>
Date: Fri, 15 Aug 2025 16:39:11 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] tools/xl: hide xenstore-features behind option
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>
References: <20250815143236.27641-1-jgross@suse.com>
 <3ef1fc73-601c-4de0-b94e-bbf9cc27d081@citrix.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: <3ef1fc73-601c-4de0-b94e-bbf9cc27d081@citrix.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------9DbFNITkh0xoVOwuyguxC25E"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------9DbFNITkh0xoVOwuyguxC25E
Content-Type: multipart/mixed; boundary="------------Gd7ubZkjyHvDXGUcS3WFyIs0";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>
Message-ID: <1704c30a-49fc-49fd-bb2f-a90f7f834761@suse.com>
Subject: Re: [PATCH] tools/xl: hide xenstore-features behind option
References: <20250815143236.27641-1-jgross@suse.com>
 <3ef1fc73-601c-4de0-b94e-bbf9cc27d081@citrix.com>
In-Reply-To: <3ef1fc73-601c-4de0-b94e-bbf9cc27d081@citrix.com>

--------------Gd7ubZkjyHvDXGUcS3WFyIs0
Content-Type: multipart/mixed; boundary="------------79m3haPTCrmQfwbb7oSPwABD"

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

T24gMTUuMDguMjUgMTY6MzYsIEFuZHJldyBDb29wZXIgd3JvdGU6DQo+IE9uIDE1LzA4LzIw
MjUgMzozMiBwbSwgSnVlcmdlbiBHcm9zcyB3cm90ZToNCj4+IEluIG9yZGVyIHRvIGJlIGFi
bGUgdG8gdXNlICJ4bCBpbmZvIiBiZWZvcmUgWGVuc3RvcmUgaGFzIGJlZW4gc3RhcnRlZA0K
Pj4gb3IgYWZ0ZXIgaXQgaGFzIGNyYXNoZWQsIGhpZGUgb2J0YWluaW5nIHRoZSBhdmFpbGFi
bGUgWGVuc3RvcmUgZmVhdHVyZXMNCj4+IGJlaGluZCB0aGUgbmV3IG9wdGlvbiAiLXgiLg0K
Pj4NCj4+IEZpeGVzOiBlY2NlNzk3MGNmZTcgKCJ0b29scy94bDogYWRkIGF2YWlsYWJsZSBY
ZW5zdG9yZSBmZWF0dXJlcyB0byB4bCBpbmZvIG91dHB1dCIpDQo+PiBSZXBvcnRlZC1ieTog
QW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4NCj4+IFNpZ25lZC1v
ZmYtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4NCj4gDQo+IFByb2JhYmx5
IG91Z2h0IHRvIGJlIFJlcG9ydGVkLWJ5IFJvc3MgTGFnZXJ3YWxsLsKgIEhlIGRpZCBhbGwg
dGhlIGhhcmQNCj4gd29yayBkZWJ1Z2dpbmcgdGhpczsgSSBqdXN0IGluc2lzdGVkIHRoYXQg
dGhlIGNvbnZlcnNhdGlvbiBtb3ZlIG9udG8gTWF0cml4Lg0KPiANCj4gRm9yIHRoZSBjaGFu
Z2UgaXRzZWxmLCBSZXZpZXdlZC1ieTogQW5kcmV3IENvb3Blcg0KPiA8YW5kcmV3LmNvb3Bl
cjNAY2l0cml4LmNvbT4NCg0KVGhhbmtzLg0KDQpTaG91bGQgSSBzZW5kIFYyIHdpdGggdGhl
ICJSZXBvcnRlZC1ieSIgY29ycmVjdGVkLCBvciBjYW4gdGhpcyBiZSBkb25lDQp3aGVuIGNv
bW1pdHRpbmc/DQoNCg0KSnVlcmdlbg0K
--------------79m3haPTCrmQfwbb7oSPwABD
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-----

--------------79m3haPTCrmQfwbb7oSPwABD--

--------------Gd7ubZkjyHvDXGUcS3WFyIs0--

--------------9DbFNITkh0xoVOwuyguxC25E
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/Ey8FAmifRo8FAwAAAAAACgkQsN6d1ii/Ey8y
2gf/aaRqZQebJjsWL2SdshOuCmgj2PNgXokNZsOXC8e2IFhoL2zfAl5vI3vZ8Hx3aM9ZkBDj9IKJ
gKnBn1/+ElBi6xbCmkdkXUiKJwQdLHi/emNpZelKpObJ34l3BSKMSAhzstPDmKk2d2IgyWresb1N
HPFYc2UsonUgmA2aQfI41g/lWHDe/m0f5mKcETkpZhJaCjthA4j48iiEwd0jW9X8tukcrgVOkKfe
OPG17XwHAJcV0prrYrBpSrbDtrGjIX2Ri3HBpp7HBusR1RlaZSZeGWjnqkNwSkKuznfqojqnAOGd
ldXjbVl4YMbtDgIupdyV4A4MzJXzK56+MLiaHFo8hQ==
=GW7x
-----END PGP SIGNATURE-----

--------------9DbFNITkh0xoVOwuyguxC25E--


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 14:40:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 14:40:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083551.1443144 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umvbd-00012R-SV; Fri, 15 Aug 2025 14:40:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083551.1443144; Fri, 15 Aug 2025 14:40: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 1umvbd-00012K-PK; Fri, 15 Aug 2025 14:40:33 +0000
Received: by outflank-mailman (input) for mailman id 1083551;
 Fri, 15 Aug 2025 14:40:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oFbR=23=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1umvbc-00012E-PH
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 14:40:32 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cad2201e-79e5-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 16:40:30 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-45a1b0c8867so15569075e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 07:40:30 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45a1b26a3dcsm34707745e9.2.2025.08.15.07.40.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 15 Aug 2025 07:40: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>
X-Inumbo-ID: cad2201e-79e5-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755268830; x=1755873630; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=UJa7e5ne+kx7WHlNm9CeGyUQLRt59v+cocjtp3Oyxcs=;
        b=nDHypn0PGi/BIU3GgcpSc/8zOBmhtJ7W5FS6MKuD+1+YCM0IzVII2sJzckjTpteeu8
         Ff8o209Ze0skraaF0X6mwJlXwip4FvhudVgi+DqBAFY6/LpX38qY9AxQl9mU2bjMPKEq
         1Q9U1/IX1zDMzw+Q6BYWTAWKObzgk7KMO10ag=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755268830; x=1755873630;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=UJa7e5ne+kx7WHlNm9CeGyUQLRt59v+cocjtp3Oyxcs=;
        b=v6SemP81zcrkw+EAham1lQogd9iip2MpypivFz1qyxLEwddKjl2rCCCk39sPDg9Ftl
         2t/8Ux4d1UB+Tr01RJzXB0Dr+gxakdd2QS2WSbeR3+vq1/dIxbVRNwSjYJqwLFFGZmk9
         SDhxQkA4JQGBEfd/VgAITVIvj4XKWnD2Jv4ldVXAnTcW6SB44G2iBHTK03fjHZabcPs2
         lgPKcIlxLhuAYD8gqnRYT/6lLoJEgpPCURhyMWiPMVQNJ+opJ9L/K8qNwi0f2E0DwAHH
         r4BQExY8kjbvhfGglcyGvFTiYR4lKa1Dgqp1mKpLzkpyHUT3SNi0C15qmkPdULGs+PXS
         XCbA==
X-Forwarded-Encrypted: i=1; AJvYcCW99mj4CAgPFjuEl1+fz085tkZxN8MLFMOurkvkhJIGnxLqA2p7ZIX1Fnz4jxo8na+HIn6b8JoYjIU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx7qagaklPxSL0YK+G89xLxlbf+5i0r+3x/fLswMErIJ1ntHDJz
	1HI2e02MB3PmiY5k+UPbqK2PLb3mwVdqggTCinK9kpOYSDs8puX3sNIRVYlQpEIrVqM=
X-Gm-Gg: ASbGnctocSJcRZiVM62k1XI2Knb7DrrgSpU8MCirluwuG9cGd0RCP5Szrfy+S/QzCug
	DOjkxbHKjv76MmrS0Vrf5ORVWWpP/AK9H97sZgkDthLRrPq9geTWRRXwrwePmzMSPi8NvgsWj0l
	yKjRX5D8rZB91u0W9vVNpG8i8iYF3iFvCR5ColyKypPEDmK1ZfgfdDlvQcOLTLICK8NXfu5Hqua
	Q/FDYC95iIi49iG7pc7Jo5hS7GWMFzkzSCM0UgyZDU3/JVLIq+CDKIxs2KT8kebWzMW8xRVK+jS
	Ik0jTlFM5Hk9LhcuQyP8ZPpuZpOqC2oGgVEX5RUxXVZhzDrvFW4L1Ph3UTpbMXOP9v4vnpqGkjs
	rQycddsshtWOZQQ4FKvTNpEtGW3tqkW9XBucK5p7QbL1BjkuWpQRKxgesd+Zh3nchOsnttr+qqT
	BuMUM=
X-Google-Smtp-Source: AGHT+IGWn95w2UK9mUjmyjMFz61hi350Sdtu3y6aixIW9Nqgx5C54+Z0pMZQxp6uGx2qZXmVAtdjIg==
X-Received: by 2002:a05:600c:3b1f:b0:459:4441:1c07 with SMTP id 5b1f17b1804b1-45a21844b9cmr19942635e9.20.1755268830099;
        Fri, 15 Aug 2025 07:40:30 -0700 (PDT)
Message-ID: <70779bfb-f65e-41c3-abe3-09ef7b13d758@citrix.com>
Date: Fri, 15 Aug 2025 15:40:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] tools/xl: hide xenstore-features behind option
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
 xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>
References: <20250815143236.27641-1-jgross@suse.com>
 <3ef1fc73-601c-4de0-b94e-bbf9cc27d081@citrix.com>
 <1704c30a-49fc-49fd-bb2f-a90f7f834761@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: <1704c30a-49fc-49fd-bb2f-a90f7f834761@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15/08/2025 3:39 pm, JÃ¼rgen GroÃŸ wrote:
> On 15.08.25 16:36, Andrew Cooper wrote:
>> On 15/08/2025 3:32 pm, Juergen Gross wrote:
>>> In order to be able to use "xl info" before Xenstore has been started
>>> or after it has crashed, hide obtaining the available Xenstore features
>>> behind the new option "-x".
>>>
>>> Fixes: ecce7970cfe7 ("tools/xl: add available Xenstore features to
>>> xl info output")
>>> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>> Signed-off-by: Juergen Gross <jgross@suse.com>
>>
>> Probably ought to be Reported-by Ross Lagerwall.Â  He did all the hard
>> work debugging this; I just insisted that the conversation move onto
>> Matrix.
>>
>> For the change itself, Reviewed-by: Andrew Cooper
>> <andrew.cooper3@citrix.com>
>
> Thanks.
>
> Should I send V2 with the "Reported-by" corrected, or can this be done
> when committing?

Happy to fix on commit.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 18:09:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 18:09:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083708.1443191 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umyrf-0004Km-G4; Fri, 15 Aug 2025 18:09:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083708.1443191; Fri, 15 Aug 2025 18:09: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 1umyrf-0004Kf-DF; Fri, 15 Aug 2025 18:09:19 +0000
Received: by outflank-mailman (input) for mailman id 1083708;
 Fri, 15 Aug 2025 18:09:18 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fG+3=23=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1umyre-0004KZ-9D
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 18:09:18 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20622.outbound.protection.outlook.com
 [2a01:111:f403:2418::622])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f3c9302c-7a02-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 20:09:16 +0200 (CEST)
Received: from MN2PR18CA0002.namprd18.prod.outlook.com (2603:10b6:208:23c::7)
 by IA1PR12MB7493.namprd12.prod.outlook.com (2603:10b6:208:41b::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.18; Fri, 15 Aug
 2025 18:09:11 +0000
Received: from BN2PEPF000055DC.namprd21.prod.outlook.com
 (2603:10b6:208:23c:cafe::40) by MN2PR18CA0002.outlook.office365.com
 (2603:10b6:208:23c::7) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9031.19 via Frontend Transport; Fri,
 15 Aug 2025 18:09:11 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN2PEPF000055DC.mail.protection.outlook.com (10.167.245.6) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.0 via Frontend Transport; Fri, 15 Aug 2025 18:09:11 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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; Fri, 15 Aug
 2025 13:09:10 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Fri, 15 Aug
 2025 13:09:10 -0500
Received: from [172.31.85.68] (10.180.168.240) 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 via Frontend
 Transport; Fri, 15 Aug 2025 13:09:09 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f3c9302c-7a02-11f0-a328-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=j1chYo5XoRQRHoKg/T5sYomntK2fuyrsbrxVBawn7d3kGEbsbii45FA3VJjh5ypEbZfwYdw7u1no0EwYe+B3XQwzmSJjmc4MYSp+s1gIS4WC+rqd+XyDLveJLMlK7K+IjJc9QDAhRX2bZDaQwxsfiiHYfa4PJQmCFUnU2djKcnWNmheLVrqmgjS8MEyf85pbI3ZiUmyajT4Wkqrs8ARoaor9FWHN9I0y5iBBntc+POro7XF7OoLJmVifXfOHDwz7FUQmHcr5uGuAOtninApiCbtHqaO0gDyWUWuTylH6SMvoDa0LXdGzM/C1N572IgFwHHp1NkeOg9rVGPuzcnV1yg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=YV5AM1xXJg5EuOpbatI/2a/CMhM/mA9PACHTI4d2Jko=;
 b=xc+65O/fRkMyk7L9itWUBauSThhTJxbyHfqbm2GQYVTegi3YiJ/YPn6EASHpWVXmxn8KDgHRl0mlYJJTmcHX1Ae5LNttDbtYJX1jjNoQa929uIdOW1CjMHiTBKo7Dax6p8Xzj/sVZOu8KGvCzJBla9CnQkWcZiNVku379TVxvcyx4w4nZaFageHyZ74uRYmyMCCgEwBJ0Ji8hh5UOSUuIiTs57KLs8jaa0gFIap4k75mSSJ28wUk7QFxIp4XZF3D9ENXZvFozsVx6RnfNWyeAOyvK9TFyiKPaUwzJo+kMx/et59USy0lN8AMqprXVtDyH1o8RhjN+5rN1G8w0muE7w==
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=YV5AM1xXJg5EuOpbatI/2a/CMhM/mA9PACHTI4d2Jko=;
 b=BPINZFgBt7chX+qTPVu7f2nbnOVxqKQoFXmI6rN7bWtatk5KB0Hbb1lpQLGRX83k/BuD47g/ABlIGwIoYNDySTr2gve5sMgXho0lQURWm5SWzydNpNBxPK12k0eMm3Szk5JRkixrOay8oMuCdZNlvE5IPxrBrTAs4xhpDAfRfck=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <e6fc4718-821a-47ea-b7c5-56829fdf2bba@amd.com>
Date: Fri, 15 Aug 2025 14:09:09 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/5] xen/vpci: purge BAR rangeset contents before use
To: Roger Pau Monne <roger.pau@citrix.com>, <xen-devel@lists.xenproject.org>
CC: <Jiqian.Chen@amd.com>, <jbeulich@suse.com>
References: <20250814160358.95543-1-roger.pau@citrix.com>
 <20250814160358.95543-2-roger.pau@citrix.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <20250814160358.95543-2-roger.pau@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB05.amd.com: stewart.hildebrand@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN2PEPF000055DC:EE_|IA1PR12MB7493:EE_
X-MS-Office365-Filtering-Correlation-Id: f2482ff7-11a3-48c6-1d68-08dddc26d620
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|82310400026|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?ditvaENubTZUS2gwVDI1STk2Q2d4SkhWSjVycHJGRzViblQ5cHJCM25vWWVO?=
 =?utf-8?B?M0Vxa0ROVUhDbGdwUHlqbEM1ZmIvSHU3SjVYWVZwUXpBRytCNEp5QXFkZXdY?=
 =?utf-8?B?bUNMNUpZbkJlSHVVMEZScTB0Nld1R2lpTUFoK0Nid1cyWkhTektwVm9yN1R1?=
 =?utf-8?B?azYrMmtyejVzdWdZbEdkbUdWRjhUK3VBME43MTdlZThDS0ZJZmE2ZCs5T040?=
 =?utf-8?B?cW5jeHdjN1E1ZzhNSTN1dVVvaFRaaUJYQzNycXAxZXRqdHlHc2g0S0RDWGhG?=
 =?utf-8?B?UncveWVFWTlsbm9ONDExM0tleXk2U1QvYTF2Vnp3MHpianduRGRwS3ZsK3ZJ?=
 =?utf-8?B?Z1ZZVDhVVTlsbEdJRUxZNnh2cXJQUHBsdVhkbHZMcDFxM3M1b0lwYWhjUEdC?=
 =?utf-8?B?WlkwY3p4TTZOVHdSMDdoYi81cTdzbjljZzg0WFh6Y1kzZEhodVhXTk5zZVhq?=
 =?utf-8?B?OW44U3RleVErOXR0UUZJUkVJdlVMUnFHWWdGTlk2TTNXcWtkMHlKdGwyMUVm?=
 =?utf-8?B?VlI2bjJHVU9LMCtNK2ppT1kzTlJOWWZHSDlQaTlGd2tYMmt4b0s0K3hDaGQ2?=
 =?utf-8?B?RnZRUVR0ZmFBSDBLL3U3blBqNElkUG5EZnE0QjJRVE95eDVhVVo1WEFoWnFl?=
 =?utf-8?B?L0FKZ2tXZXgzR2oyZno2MVRzMkYzbW1QZGpJSUEzSWRZbHRqRExHeis3VWN6?=
 =?utf-8?B?NzJtSnR4azZPVGpLaXdiaXZTVEdudCtvOHcrNy96R2ZPZVpoc0RzTjdpWjdJ?=
 =?utf-8?B?TjJZWmkxZUlRU2hYTFZiTnc2L2Noc0pHUTdMUGIwaCtxUm81L0pyL0RSKzk0?=
 =?utf-8?B?SlBGM2tuMC9nU3Z0eDFWZldTTm9jeGpnZ2h2V2x6RjN4c3hMZ2pmUFI1UFE3?=
 =?utf-8?B?RVJ1T1NBZmFqM1F0Q1hSQnl5UFNUZ2FFK2NnNkxaMFhBUkFQZlV3dTVLVU53?=
 =?utf-8?B?c1EvdWpmdGYzZ1hLR1dqajNleDBVU0xYcDA0eGJjVUE2c0tYVWpsN1F4SHVJ?=
 =?utf-8?B?c3RLUktXSUloUi9HbkRra0pnUHBQVEp2U3hRbEFMcXpNMlc0UGpuSnRDa3Ft?=
 =?utf-8?B?dVJieVFKdndmRDlDaDJKWVhJR2oyZFo4UkljOFJnNFZCNHpmOEE0T2Y2RTJv?=
 =?utf-8?B?RDZWVVZVUDhzT0FhMzB0NXBlcWpiN08vR0ZTQldhNUMxakF3L1dqQmRmSDBv?=
 =?utf-8?B?WUpBT1kxY2FUUHI2WkdLRWJYckc4c2lvdmlPQzluc1Y5dWptbnQ4ckhnVDlD?=
 =?utf-8?B?Ym1TWlVxZlJ3NnF1RTZubXNLNnFrd2tUU1lPV1BUOG1kNWFBelAwQ3ZsSENY?=
 =?utf-8?B?bVB0S3AwUElUbUlqYUtpdWQyUVBqZGpzQTBkOFE2VUxIbS9GdVVpMEZpL0t6?=
 =?utf-8?B?cTBKbFlsQk5kNmxlRnZDT1JGMGVJSEtOeHJkZ3hUV0MvRklBYmhhaGhPcUZW?=
 =?utf-8?B?VTRxYnZ2OE1sT210Ym5wUDI0MThUcXhBWVhOdldnd3Z6NTRpOHAvaGN3RGJI?=
 =?utf-8?B?aXdpbmVCZGFZUUovNkVPZFJCWGZTbjZpd0ZLaXl4Q3VhYjVyY2lNT21XWmtD?=
 =?utf-8?B?a3dtWkptVENXWit5YUpIUXdiVUErU0NoQW84N3NFT2pPWUpPREJ6TWtBSDlH?=
 =?utf-8?B?SW9jdHpMR2NmUnZ1cllZQmVhbXR6b3NNSHM3YTloK1FMK0RxMFVWNDR0VWZ4?=
 =?utf-8?B?N3I5dGR3MFdRSXFaZ25PSXVvallTeWZ4Y3M0SUYzZHV4SmJMS21nTndlUjBw?=
 =?utf-8?B?TFZFWnVxSmhRemluV0xhNmtDUExZU2xreGIvWlZYMGI0YWRwNUZDaFdUYWZ1?=
 =?utf-8?B?TDR2bmV3dS9teml3b1ZtTmtvcjZBWVBveXF4bnhsNkFobDhiamxMVmdQODkr?=
 =?utf-8?B?amJWWWhYRElISlVEM20rc0FpeHhyRjdmTzc1akxjaHNsUUpjejMrSE9sRFhv?=
 =?utf-8?B?VzA5WC8zakp0QVhwL0l5ZW1EUVhqcE95QjVuREpiVHd2QnNrMDRNMVVrdGR1?=
 =?utf-8?B?VE9aS1NwVUNCN3lGc0tPZkVpNk5TYThZWmxPZ0dSUzJZRVkyRW1VZzl4Z2FR?=
 =?utf-8?Q?Lf9r2S?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(82310400026)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Aug 2025 18:09:11.5346
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f2482ff7-11a3-48c6-1d68-08dddc26d620
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN2PEPF000055DC.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB7493

On 8/14/25 12:03, Roger Pau Monne wrote:
> It's possible for the BAR rangeset to contain stale data when used in
> modify_bars() if previous calls to modify_bars() resulted in errors.
> 
> Fix by always purging the rangeset before usage, thus getting rid of any
> previous stale data.  Remove the ASSERT that checked whether the rangeset
> was empty, it was incorrect.
> 
> Fixes: 52ebde3cfae2 ('vpci/header: program p2m with guest BAR view')
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

Reviewed-by: Stewart Hildebrand <stewart.hildebrand@amd.com>


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 18:53:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 18:53:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083733.1443200 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1umzYe-0002VD-Rv; Fri, 15 Aug 2025 18:53:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083733.1443200; Fri, 15 Aug 2025 18:53: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 1umzYe-0002V6-OP; Fri, 15 Aug 2025 18:53:44 +0000
Received: by outflank-mailman (input) for mailman id 1083733;
 Fri, 15 Aug 2025 18:53:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fG+3=23=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1umzYd-0002Uy-DE
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 18:53:43 +0000
Received: from NAM04-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam04on2061c.outbound.protection.outlook.com
 [2a01:111:f403:2408::61c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2874aeef-7a09-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 20:53:40 +0200 (CEST)
Received: from BY5PR16CA0035.namprd16.prod.outlook.com (2603:10b6:a03:1a0::48)
 by BN7PPF0FD1DEA27.namprd12.prod.outlook.com
 (2603:10b6:40f:fc02::6c8) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.21; Fri, 15 Aug
 2025 18:53:38 +0000
Received: from SJ1PEPF00001CE4.namprd03.prod.outlook.com
 (2603:10b6:a03:1a0:cafe::21) by BY5PR16CA0035.outlook.office365.com
 (2603:10b6:a03:1a0::48) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9031.18 via Frontend Transport; Fri,
 15 Aug 2025 18:53:37 +0000
Received: from SATLEXMB03.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_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Fri, 15 Aug 2025 18:53:37 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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; Fri, 15 Aug
 2025 13:53:36 -0500
Received: from [172.31.85.68] (10.180.168.240) 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 via Frontend
 Transport; Fri, 15 Aug 2025 13:53:35 -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>
X-Inumbo-ID: 2874aeef-7a09-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mhQdyellYa1b9zuP0rJFVLvzoR6UC2NW/TGwlMXHhhkyQT13IGwtucbKob8BWVLm2H0qIaJVZEq0d/QaWDFFq0aJ7jXl/RwAx6KvRJmsewchf0xf24OCXZAAL2ioJ/6qwSLgMWJbYxX2W8zuTxBJasb1jsKdqsfdcss6nrYIgnB5Gniww3M2Uwm3w04eZEirkeqXB9d1SKuhBTK+PfyFMWrvfemzuKXWqSiaBcdhxsDu2S9xPYhmKmnSl/NtrcG3S2v4NSzEqiXiZfMCKW+TulStXp2xFWH4ZBaZW+7nvchxihrSfLx+qIlLi1noGmj5NHscNB5ENBGXGbhjWkTfYg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/Vn11oGlMGJdgsJKJ/UkgI2qFLAsdSYPvFyKvx/9Zk8=;
 b=ZNWaxvNMNPX2nZrCzKOXkeCno/FLibJxF0coXphGlrgt0JdbHMbuRw71g97C49MM1Lc0Q/VRhARq4V3S6RoIUiG6dbPlsr8gdHJgtzA6/HsBea74A0Q5n56kqffj6m8niUyXism0ZKwPIvQ1gPQcpfJgdP+bErBCpvfLRT10seQku/Ya1nI4/9w4swwJtZYjCA5fxAB61Uim5/HAZZoGa6jghrQHMPQ/zugOaoW4oow3jCrDYvRiYCE7Csy1s574S89EW59r5yxVYvrKWo7/kwmGB82MtG7oG6LrHjrZsnTARzMDN/IfK8ET23HtV0H4s2ASe4eyKlGeUDYjpD/shA==
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=/Vn11oGlMGJdgsJKJ/UkgI2qFLAsdSYPvFyKvx/9Zk8=;
 b=4+PkkMtrIvhXzc9EeupKaW+kTTnMygAYZjUmbDuz5s6vnPKfBEzdmonzNQ6VghcZXabUy93BHcDioCTmfJg72q0VLgQXVYUqqGLVuEjU4hRzLreVrkf3ROXimQ/MhBcL5YdwlWqP5MiJnPGBs2KXbVMcKjoYhyLeSW2YIWXBzkI=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <269db2aa-9ca1-446b-98f7-60ea2386fc03@amd.com>
Date: Fri, 15 Aug 2025 14:53:35 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/5] xen/vpci: make BAR mapping more resilient for the
 hardware domain
To: Roger Pau Monne <roger.pau@citrix.com>, <xen-devel@lists.xenproject.org>
CC: <Jiqian.Chen@amd.com>, <jbeulich@suse.com>
References: <20250814160358.95543-1-roger.pau@citrix.com>
 <20250814160358.95543-3-roger.pau@citrix.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <20250814160358.95543-3-roger.pau@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB03.amd.com: stewart.hildebrand@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF00001CE4:EE_|BN7PPF0FD1DEA27:EE_
X-MS-Office365-Filtering-Correlation-Id: a3c8b5bc-b899-4955-a012-08dddc2d0b2e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|36860700013|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?ZFZyeHU5b0dDWmlZb2lieXpBWmUvL1hpQ2hDY1JEMEdvL1BMMHl0SW92dzRK?=
 =?utf-8?B?VXM3M0JaY1RsRVZwSkxQN09GQXgwSGhMYi9vQ1V6Z1A3ZEt3cVpOaWJndUpp?=
 =?utf-8?B?R1l5SmVnM05kZGtQb2FVQkgwN1VXUkE4UUkyeXp3djVnbHl2TkJ5YitTUUx3?=
 =?utf-8?B?ZnVXc05xVlVEa2h0YXFxN2JLZ2RXMDNMZEVJRDNza0FWeTZUQlk5ZmU2OEg4?=
 =?utf-8?B?aVBNTVpta1REQzJjcmVhNkM0eXZVbHdhYS9JQ2xjOTI0Ri84Z3VkQVplT2s4?=
 =?utf-8?B?Q2tmR25QWFdKdGE2bHlwNVBhMVJrbXlZbStNblFqckJZcTRWdUFpbVdGMnVm?=
 =?utf-8?B?cWRwUVVYTFFEUXZtWEp0WnAxWVp5cFJLdGVRWEhuMzBjTWJ6TmZMKy9ubVha?=
 =?utf-8?B?cEVjQ3EzTEN2c2REejgvWkp4cDdoL3RIZUowT1RkTE9VT1FEajJsaFlJTGpR?=
 =?utf-8?B?SW9VS0g2enJDbXZZaWo0M3R5RUZpOC9aTUZyZWYrTDJCRjBmdGFLSk94YTZU?=
 =?utf-8?B?c2srb01FZ2Jzai9YenFoOHRhRSsyUHUyaW5IS0YzMnB4M3JSRGtpdm12ZHN0?=
 =?utf-8?B?d25ydlFlaXpPRzEvK1BnVVBNVWh6dmM5NTRiZ2tSRUI5ZWFVejZIZ1hENDB0?=
 =?utf-8?B?QmlIek9hTERVWHFkYTFwV1dhSzREeXNYVDRFK3liaW1sWTBBbUJxZTNwUXdM?=
 =?utf-8?B?eGZiR0x6dU93Q3Z3S3VkWXE5bUxVcWVFY0d1RndpNk1QRFBuNVlXeWQ4d2RO?=
 =?utf-8?B?bGZneEZ6VHQ2QWp6ZzNJQ0prMVN2blV3OXdTV2pySmZCdnRwejFzeFUzdmZD?=
 =?utf-8?B?Y3BnNEhtRVg4SVNZbG1ORElucFUxZ0hGeWJOVkgwMTZYSkxNbFF2ZnR0Kzh1?=
 =?utf-8?B?T1l1Rzh1NEQwQW9tL1Z3djFKU3N5Kys2aVFqUitIZXh6bTJUUTBXdlZqTFBW?=
 =?utf-8?B?eFdIRUlmdGlydEZuNnQyVnhzWmdhejQvdnFkd0lVcUZBdk9ZRXV5Y0dYcTYw?=
 =?utf-8?B?VzlDT0RvTE1TRGZOQTgvZG1vNElLdFh2OHZicjlKK0dYWHdOU0ViZFZTVFNi?=
 =?utf-8?B?SWIxS3h6L2tMOUxkN3d1ay9WV1lvdEZqZWRLR25Pcjd4UHRjU0RaMjFSWnBY?=
 =?utf-8?B?cTVZaTA1WjV5ajZiV2h1VEI1NEhEN2dsU05FbnJLM0g4Znc2UWVFUmIxdGtj?=
 =?utf-8?B?bVZlaHRPZ3NFdkNpUmswQlFhSlFEOEtOWkhkQ1JOSlNJcVNOYXI4dGo0Mi9i?=
 =?utf-8?B?SHRBN2Q4NzE5bGFjc0hSQTh6Rk9KMCtUWXp4WXdiWCtUTmZ0d0Z0Q3d4bnZO?=
 =?utf-8?B?dXZCemRhTkhheDFhVWo4UWpBY1E2eUZzcWJHTUlsUGU4dnFVRndVdVc5ck5p?=
 =?utf-8?B?TWlwTmNERGlLQkZKOXRNbWJHUE4zVlVqdE1QRGVNS0hsNHYrdUV3WFRuRmdw?=
 =?utf-8?B?U0NjUnhCZlhhaUN6dk1Jd2ZKRkpHNVU1Zmt5UjJKbHRnRndYUmd2ZlFlV3lM?=
 =?utf-8?B?U0lEV0d0TzVRbnJHdnNQdW1SRDNodVI0d2FTQzZBUmlZcllZRU1yc09KT3hB?=
 =?utf-8?B?dFpFZ1BSY0kvZGVabnZRNlNlQUhQOFBYU3V2OE9qQVAxV3BqQ0paaXljTEhV?=
 =?utf-8?B?M0ZGWitxNGs2amR4N2RFcUc0RHA3a3MzRVM4OER5b0tRMUVwWkovY000V1RX?=
 =?utf-8?B?SzRwSVBVQXQvbCtkb2dpSGsraXFPMTVzOFNnS0VwVXNaK1BpZEcwZ294Y1BT?=
 =?utf-8?B?TGRMS0xIM3dzQXk1TWhtNlV3UTVzU3RDYzV3TEIwQ3B0WlprREhDRUpjYUtE?=
 =?utf-8?B?NEtIcHlkeVZweDgzN25ENTNZV2dibFRlcURGcmUyQTMvcE1xZVRGV1VrRnll?=
 =?utf-8?B?ZnBrZ1pxazN5QlFXREtOYSt4Y0JyZW1aVi9PYU5RYU90Uy9BSGVnNnFNdXE3?=
 =?utf-8?B?eUdzc0NyamxFN0VnODdjQ0ZUMzBxYlBrVWJBYnhzMDZpV0dtbWRmUzB1Unc2?=
 =?utf-8?B?OHcvVXp2ZTRkZGNrK2RWOG9UbGxEcjdUaGRkSDdKSmJ6Y2xYUmozcVlIMmQ3?=
 =?utf-8?Q?oZPbBH?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(36860700013)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Aug 2025 18:53:37.4372
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a3c8b5bc-b899-4955-a012-08dddc2d0b2e
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=[SATLEXMB03.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: BN7PPF0FD1DEA27

On 8/14/25 12:03, Roger Pau Monne wrote:
> The logic in map_range() will bubble up failures to the upper layer, which
> will result in any remaining regions being skip, and for the non-hardware
> domain case the owner domain of the device would be destroyed.  However for
> the hardware domain the intent is to continue execution, hopping the
> failure to modify the p2m could be worked around by the hardware domain.
> 
> To accomplish that in a better way, ignore failures and skip the range in
> that case, possibly continuing to map further ranges.
> 
> Since the error path in vpci_process_pending() should only be used by domUs
> now, and it will unconditionally end up calling domain_crash(), simplify
> it: there's no need to cleanup if the domain will be destroyed.
> 
> No functional change for domUs intended.
> 
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> ---
>  xen/drivers/vpci/header.c | 51 +++++++++++++++++++++------------------
>  1 file changed, 28 insertions(+), 23 deletions(-)
> 
> diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
> index b9756b364300..1035dcca242d 100644
> --- a/xen/drivers/vpci/header.c
> +++ b/xen/drivers/vpci/header.c
> @@ -64,7 +64,8 @@ static int cf_check map_range(
>              printk(XENLOG_G_WARNING
>                     "%pd denied access to MMIO range [%#lx, %#lx]\n",
>                     map->d, map_mfn, m_end);
> -            return -EPERM;
> +            rc = -EPERM;
> +            goto done;
>          }
>  
>          rc = xsm_iomem_mapping(XSM_HOOK, map->d, map_mfn, m_end, map->map);
> @@ -73,7 +74,7 @@ static int cf_check map_range(
>              printk(XENLOG_G_WARNING
>                     "%pd XSM denied access to MMIO range [%#lx, %#lx]: %d\n",
>                     map->d, map_mfn, m_end, rc);
> -            return rc;
> +            goto done;
>          }
>  
>          /*
> @@ -87,17 +88,27 @@ static int cf_check map_range(
>  
>          rc = map->map ? map_mmio_regions(map->d, _gfn(s), size, _mfn(map_mfn))
>                        : unmap_mmio_regions(map->d, _gfn(s), size, _mfn(map_mfn));
> -        if ( rc == 0 )
> -        {
> -            *c += size;
> -            break;
> -        }
>          if ( rc < 0 )
>          {
>              printk(XENLOG_G_WARNING
>                     "Failed to %smap [%lx %lx] -> [%lx %lx] for %pd: %d\n",
>                     map->map ? "" : "un", s, e, map_mfn,
>                     map_mfn + size, map->d, rc);
> +            goto done;
> +        }
> +        if ( rc == 0 )
> +        {
> + done:
> +            if ( is_hardware_domain(map->d) )
> +            {
> +                /*
> +                 * Ignore failures for the hardware domain and skip the range.
> +                 * Do it as a best effort workaround to attempt to get the
> +                 * hardware domain to boot.
> +                 */
> +                rc = 0;

If we return success and size is zero, we will potentially attempt to map/unmap
the same region again in an infinite loop. rangeset_consume_ranges would invoke
map_range again directly without returning to vpci_process_pending.

> +                *c += size;

This line is now only executed for hwdom, but ...

> +            }

... it should go outside of the hwdom check because domUs still need it.

>              break;
>          }
>          ASSERT(rc < size);
> @@ -213,28 +224,22 @@ bool vpci_process_pending(struct vcpu *v)
>              return true;
>          }
>  
> -        if ( rc )
> +        if ( rc && !is_hardware_domain(v->domain) )
>          {
> -            spin_lock(&pdev->vpci->lock);
> -            /* Disable memory decoding unconditionally on failure. */
> -            modify_decoding(pdev, v->vpci.cmd & ~PCI_COMMAND_MEMORY,
> -                            false);

This path could be taken for either map or unmap. Do we still want to disable
memory decoding in case of unmap?

> -            spin_unlock(&pdev->vpci->lock);
> -
> -            /* Clean all the rangesets */
> -            for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
> -                if ( !rangeset_is_empty(header->bars[i].mem) )
> -                     rangeset_purge(header->bars[i].mem);
> -
> -            v->vpci.pdev = NULL;
> -
>              read_unlock(&v->domain->pci_lock);
>  
> -            if ( !is_hardware_domain(v->domain) )
> -                domain_crash(v->domain);
> +            domain_crash(v->domain);
>  
>              return false;
>          }
> +        ASSERT(!rc);
> +        /*
> +         * Purge rangeset to deal with the hardware domain having triggered an
> +         * error.  It shouldn't be possible, as map_range() will always shallow
> +         * errors for hardware domain owned devices, and
> +         * rangeset_consume_ranges() itself doesn't generate any errors.
> +         */
> +        rangeset_purge(bar->mem);

Reiterating what was mentioned above: if map_range returned 0 without
incrementing *c, we won't make it back here.

>      }
>      v->vpci.pdev = NULL;
>  



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 19:23:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 19:23:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083758.1443210 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1un01l-0006pu-1o; Fri, 15 Aug 2025 19:23:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083758.1443210; Fri, 15 Aug 2025 19:23: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 1un01k-0006pn-VX; Fri, 15 Aug 2025 19:23:48 +0000
Received: by outflank-mailman (input) for mailman id 1083758;
 Fri, 15 Aug 2025 19:23:47 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JuuU=23=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1un01j-0006ph-Ep
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 19:23:47 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5c5e78d5-7a0d-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 21:23:45 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 4F92A61419;
 Fri, 15 Aug 2025 19:23:44 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id C8594C4CEEB;
 Fri, 15 Aug 2025 19:23:42 +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>
X-Inumbo-ID: 5c5e78d5-7a0d-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755285824;
	bh=P74Tzrd6fI9TUU1l4n0T6/+nz3Lk8dMWYKPfWd4yHus=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=C+4FEFmmHLaziaY6trd8PCfW/cjUKMgTu2Z8HHTrtiVjxlKHEa50hhdPdoWT5D4I9
	 qfvU7hzcCJm8KNXPZ1KN/HEigRRyVXRPwr8T8AmaqT6+UUCeGFf2FUKU5HKqEDQkTf
	 ZB55fCBgoZlCColS1z8YEnhTz0qGNnHC3ZvfDog9lC12GGLQskiOe0j9dUd3+jxHU7
	 N4HpSNti9DJ1Sq+H8etGzmRXv1qXaf/WC1ehpqNBrPoQoUebwMNSRP7ftG2bqaepyI
	 Uk+ycT5ghgcTmaaw78J1RxZyPMUpDb6kwrE8uCOh3w9cob90u9/93yWCg5kJXv86QX
	 /ay3HcIdgzT2Q==
Date: Fri, 15 Aug 2025 12:23:40 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Penny Zheng <Penny.Zheng@amd.com>
cc: xen-devel@lists.xenproject.org, ray.huang@amd.com, 
    Jan Beulich <jbeulich@suse.com>, 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>
Subject: Re: [PATCH] xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE
In-Reply-To: <20250815102728.1340505-1-Penny.Zheng@amd.com>
Message-ID: <alpine.DEB.2.22.394.2508151223300.10166@ubuntu-linux-20-04-desktop>
References: <20250815102728.1340505-1-Penny.Zheng@amd.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Fri, 15 Aug 2025, Penny Zheng wrote:
> In order to fix CI error of a randconfig picking both PV_SHIM_EXCLUSIVE=y and
> HVM=y results in hvm.c being built, but domctl.c not being built, which leaves
> a few functions, like domctl_lock_acquire/release() undefined, causing linking
> to fail.
> To fix that, we intend to move domctl.o out of the PV_SHIM_EXCLUSIVE Makefile
> /hypercall-defs section, with this adjustment, we also need to release
> redundant vnuma_destroy() stub definition from PV_SHIM_EXCLUSIVE guardian,
> to not break compilation
> Above change will leave dead code in the shim binary temporarily and will be
> fixed with the introduction of domctl-op wrapping.
> 
> Fixes: 568f806cba4c ("xen/x86: remove "depends on !PV_SHIM_EXCLUSIVE"")
> Reported-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>

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



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 19:24:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 19:24:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083766.1443221 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1un02K-0007H5-Ac; Fri, 15 Aug 2025 19:24:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083766.1443221; Fri, 15 Aug 2025 19:24: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 1un02K-0007Gy-74; Fri, 15 Aug 2025 19:24:24 +0000
Received: by outflank-mailman (input) for mailman id 1083766;
 Fri, 15 Aug 2025 19:24:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fG+3=23=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1un02I-00077V-LE
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 19:24:22 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on2061c.outbound.protection.outlook.com
 [2a01:111:f403:2413::61c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 70ccef44-7a0d-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 21:24:20 +0200 (CEST)
Received: from MW4PR04CA0039.namprd04.prod.outlook.com (2603:10b6:303:6a::14)
 by CH3PR12MB9024.namprd12.prod.outlook.com (2603:10b6:610:176::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.16; Fri, 15 Aug
 2025 19:24:14 +0000
Received: from SJ5PEPF000001D7.namprd05.prod.outlook.com
 (2603:10b6:303:6a:cafe::1) by MW4PR04CA0039.outlook.office365.com
 (2603:10b6:303:6a::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9031.19 via Frontend Transport; Fri,
 15 Aug 2025 19:24:13 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SJ5PEPF000001D7.mail.protection.outlook.com (10.167.242.59) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Fri, 15 Aug 2025 19:24:12 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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; Fri, 15 Aug
 2025 14:24:12 -0500
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Fri, 15 Aug
 2025 14:24:11 -0500
Received: from [172.31.85.68] (10.180.168.240) 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 via Frontend
 Transport; Fri, 15 Aug 2025 14:24:11 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 70ccef44-7a0d-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=musyiadMv7Cct85TxZ2ienEB84ZiorNRHQFTr80NJkKG5FgCCT9luvI/x5wyVVvm9gJL80j/TLvLVEuOT/PaeLTKDr0QeK/P2bj1BxEwQTUUxJOSq2LbLXO+AZd0vgFuR6e7wYqOcmK2pK3hgBE82mIWfojrsmiITfTG4ZzOvqLCDTFLOTyOCLUu11AiEbGE2iy06PfYMKtcxW6Di8M0lJZ8x7TjrKquZeX6caMnKv10P6o7XN+ArZiwFkdrpO9PF5Dg0kVtbOveucMvVjXfkPfMsbEE5dfTze8f5ct26UeZTffnZiZWqPx+XgGM/rnPMpajy5TeTxhzYp6BjWy6Bg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jqXfgjrsJCPYSErrVtY/J9xbSb3TkNGVIS0aoEEeO7I=;
 b=CIoMlvxMPMtc52ShAj6SuWfk1j/FXKu6FEJs5cfJxwUKVIWnDnp0a63PhW+/81OX+nM39ovj4WU90dJgM6iwZagQsyyQh43VCEY309gxK6EnTOfSHfnNpcytRKNZoG/ggMmF2lJcTbiWDhp/RD1G73ZKArdAWIg10oEt3GxwfMbrQomzetDZewdh7+CWUKhGBCoefx6wCCBPWx3ZR9VXwU0nRHXhZCu5Ph0ejlOJvo8qmYpmrkyOipTqcuMabP0SV1YsNhSF5K0ET3oobTKL7nYoH8bYCX1kCeawzLzbxaQvMfUuUYVCIlpWFqtonXJpGN8eRLsdzvciskxLDquGqg==
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=jqXfgjrsJCPYSErrVtY/J9xbSb3TkNGVIS0aoEEeO7I=;
 b=GWfrYgL9AaNXRJTNppe236ZfrGrwQWrwyF+CiLfIaTQsysfWL8iPNLKJQaNFSx83stYmPnL5nre3hWWKUQPGimQ4NpXKq5MDG7WH2sBDpo4T4UaE9GabyZXvzQxWAste1NYr61CYPi3FtmlFvyMz7JcvadoLgeE2XDmrnUma3+0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=SATLEXMB03.amd.com; pr=C
Message-ID: <29a8d359-464c-4a46-ad28-c2c391a83115@amd.com>
Date: Fri, 15 Aug 2025 15:24:10 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/5] xen/vpci: make BAR mapping more resilient for the
 hardware domain
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
To: Roger Pau Monne <roger.pau@citrix.com>, <xen-devel@lists.xenproject.org>
CC: <Jiqian.Chen@amd.com>, <jbeulich@suse.com>
References: <20250814160358.95543-1-roger.pau@citrix.com>
 <20250814160358.95543-3-roger.pau@citrix.com>
 <269db2aa-9ca1-446b-98f7-60ea2386fc03@amd.com>
Content-Language: en-US
In-Reply-To: <269db2aa-9ca1-446b-98f7-60ea2386fc03@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB05.amd.com: stewart.hildebrand@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ5PEPF000001D7:EE_|CH3PR12MB9024:EE_
X-MS-Office365-Filtering-Correlation-Id: 20a8a74d-d058-437c-0cc6-08dddc315129
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|376014|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Y3FWamZ2NHIybmIvWlNPQ1V6SEkxamJ4REdWYWxMeEEyWmZ3QkJHRXJVNVEw?=
 =?utf-8?B?UUt0L0w0Zmp0WXZEckV4ZmluTFg2UVhJRWc2bWpSV3dKbW81SjJPRTFkZitD?=
 =?utf-8?B?OHhmSlN4MithcE1zQTE4VURITjlBYVkraEpDZ0tJQ2Npd2hSUXBXaXQvWXJh?=
 =?utf-8?B?ZmUwSWFPM2l0aGhHeUIxZjNtYytYUjNGNGtiWFBIN3VsSXFZaG1yVWhaU1R5?=
 =?utf-8?B?R29XZUpkY0dmeTJZUEN0UHhqa29YSUNSQ05oY1k1emFrMTE4Y3pTakFpSXlJ?=
 =?utf-8?B?ZGJabVBraFV2RlVrVkczVDFsNDVuSktlQzVkSTBMWGZuazRaS1lQbUVzekFY?=
 =?utf-8?B?RDRWc2ZNTXlOVDdtTmtEQWtzY0hINWJERVQ1UlNlWEJpWVo0MVpNNXpkNHZJ?=
 =?utf-8?B?MFcvaTIwMXFWemN4b2Y5RlpqM0dranRtbEg1UmdsL2QvTjRmaEdFT3Zwb21i?=
 =?utf-8?B?b002NXoxNzJEU2JEdm5nVnZyT1IxZ1BCZWIxYThCM1RRbDBReDQwMm56Vms4?=
 =?utf-8?B?VkxGSnpFMVArSlcycHFmMXdnQVFpUXJFazFxT1E1SUoxeEhvYnExczdWNzRZ?=
 =?utf-8?B?MjVTTlRYempxeXdkRTNzcEJUNTZSdVlRVG1CbEhzY3VLMTZ5Y0ZLMEdVYjZY?=
 =?utf-8?B?cGdnY2hhSGlOSnU5UU5ISElXT2lDMWduK1Z1VWR2MVI2U3phWlB4ZEFjMkFY?=
 =?utf-8?B?V1prL2MvSzAvSTlPYWxRUmFjK2daYzJ1M0tydFNRQlZxOGlMN1JuSnoxd1JY?=
 =?utf-8?B?ck8yMDlPYlNCNU4waHA4UUlQSGw3eElXOUl4YTlrQ2NkNVc5MmkzMXZRRmZW?=
 =?utf-8?B?WW1tWk9IdU1la2dEZGZqdTVycitHYSt4UER3YzVGNGZmdnpBUHdiVVFLZ3Vv?=
 =?utf-8?B?SFB3NWxaV2wyRGJQaXAzWitkQ0xYbG9lZm1ONzRxWTc3UjhLOFdybVpDVXBC?=
 =?utf-8?B?eGt5d0w0QjBzMndaanZyQ3BNa04xRURSVW9IOFp1c2hrVjhsNTNKYjg1YjU4?=
 =?utf-8?B?VE9LRzVrdTY4bGgrODI0Vm15eFNPZHYxYlM1MVpwcDhYUzE4K0t1YmpYb1U3?=
 =?utf-8?B?Umo1aVluR1lPTzM3OUpNT2lsN1kvVGZIYXNPdXZ5QVpMWm1wRDk2NGgySzdh?=
 =?utf-8?B?WEVKN3pYbm5KaU1JZEhVK2tkMlhRL1BRNjk3VUprVm9pdzNxVk9SR3hYaExz?=
 =?utf-8?B?SGoyVnRIOVZlWlpIeDRzQjE4OTFpSlJHS1ZVMEt4T0c0djNIVzRXanl3cmh3?=
 =?utf-8?B?c2xIRVdXUW5ITUJMOU1GcTNXZmd5aktrQjNreXAzVUZYMzRmSEVHbDl4T0Ew?=
 =?utf-8?B?bEs0bFlTd3grMTVCcVpHeEJjU1AveHcwS1FreE1GNmp3N1Jta3NZR00rVzFO?=
 =?utf-8?B?NVpuMXgyemNQYXMwSENZMGF5YjdiaHF1bnUvc1pjWGs5Y3liQTF4aDUrbFEw?=
 =?utf-8?B?Ti94amhWTzkrSjZ6eE4wQ1M1azA2anFvU3VMaFVNaTd0NVhvdnZpMDNUQU9H?=
 =?utf-8?B?Smg2Znd6MmNtZlFvU2lrR1V0SXNxUHBjYW91QXpmTDl6MjE3K3hPb3Nod04x?=
 =?utf-8?B?SGtzVnNDY0o5c2hoWWFrR3V5aWVUK0NzcnJGUjJTUm5xUE1iaW5pQmtLWnQ2?=
 =?utf-8?B?S3RiM0tJSzVYV3BmWGRUQTlDR1hzUFVmMW5YTFRua3EvQmZ1NmtWM0VGU2E4?=
 =?utf-8?B?aTdPMnNGNkF1c0hLQ1hPdjRJTkkxR29oMUpLbjVkY0JWUEFCZm1nUE1vRVNY?=
 =?utf-8?B?cXY4MDdUZ3dkaXM2SXJqRW55T0hrZm95VmZlNlRvdFV3VFVrSVdkcUJHS0VV?=
 =?utf-8?B?ZXBmUTV3blFGcFg1a3RwWXhDUmhUeWpESEhvNEJGemM5MnYrUWQ2RjJ3WEFJ?=
 =?utf-8?B?TFlOU3hQWHNtUURPbGE0RVhyWlF3OVhsL254N2ZjN1NzUytKQXIxY1pKa3Zl?=
 =?utf-8?B?aXZURldodXNKZHNvRFJxOGJ6c1ZMaFcyWVNCQWI1RHd6SThSSzhOanVIaFFI?=
 =?utf-8?B?RlFJN0RlYlR3clFiSVdLeVpaYmhlREdOcSsrZC8xNTBuZVZ4ZGFxUnZQZ08v?=
 =?utf-8?Q?6fwoUj?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Aug 2025 19:24:12.8273
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 20a8a74d-d058-437c-0cc6-08dddc315129
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ5PEPF000001D7.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB9024

On 8/15/25 14:53, Stewart Hildebrand wrote:
> On 8/14/25 12:03, Roger Pau Monne wrote:
>> The logic in map_range() will bubble up failures to the upper layer, which
>> will result in any remaining regions being skip, and for the non-hardware
>> domain case the owner domain of the device would be destroyed.  However for
>> the hardware domain the intent is to continue execution, hopping the
>> failure to modify the p2m could be worked around by the hardware domain.
>>
>> To accomplish that in a better way, ignore failures and skip the range in
>> that case, possibly continuing to map further ranges.
>>
>> Since the error path in vpci_process_pending() should only be used by domUs
>> now, and it will unconditionally end up calling domain_crash(), simplify
>> it: there's no need to cleanup if the domain will be destroyed.
>>
>> No functional change for domUs intended.
>>
>> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
>> ---
>>  xen/drivers/vpci/header.c | 51 +++++++++++++++++++++------------------
>>  1 file changed, 28 insertions(+), 23 deletions(-)
>>
>> diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
>> index b9756b364300..1035dcca242d 100644
>> --- a/xen/drivers/vpci/header.c
>> +++ b/xen/drivers/vpci/header.c
>> @@ -64,7 +64,8 @@ static int cf_check map_range(
>>              printk(XENLOG_G_WARNING
>>                     "%pd denied access to MMIO range [%#lx, %#lx]\n",
>>                     map->d, map_mfn, m_end);
>> -            return -EPERM;
>> +            rc = -EPERM;
>> +            goto done;
>>          }
>>  
>>          rc = xsm_iomem_mapping(XSM_HOOK, map->d, map_mfn, m_end, map->map);
>> @@ -73,7 +74,7 @@ static int cf_check map_range(
>>              printk(XENLOG_G_WARNING
>>                     "%pd XSM denied access to MMIO range [%#lx, %#lx]: %d\n",
>>                     map->d, map_mfn, m_end, rc);
>> -            return rc;
>> +            goto done;
>>          }
>>  
>>          /*
>> @@ -87,17 +88,27 @@ static int cf_check map_range(
>>  
>>          rc = map->map ? map_mmio_regions(map->d, _gfn(s), size, _mfn(map_mfn))
>>                        : unmap_mmio_regions(map->d, _gfn(s), size, _mfn(map_mfn));
>> -        if ( rc == 0 )
>> -        {
>> -            *c += size;
>> -            break;
>> -        }
>>          if ( rc < 0 )
>>          {
>>              printk(XENLOG_G_WARNING
>>                     "Failed to %smap [%lx %lx] -> [%lx %lx] for %pd: %d\n",
>>                     map->map ? "" : "un", s, e, map_mfn,
>>                     map_mfn + size, map->d, rc);
>> +            goto done;
>> +        }
>> +        if ( rc == 0 )
>> +        {
>> + done:
>> +            if ( is_hardware_domain(map->d) )
>> +            {
>> +                /*
>> +                 * Ignore failures for the hardware domain and skip the range.
>> +                 * Do it as a best effort workaround to attempt to get the
>> +                 * hardware domain to boot.
>> +                 */
>> +                rc = 0;
> 
> If we return success and size is zero, we will potentially attempt to map/unmap
> the same region again in an infinite loop. rangeset_consume_ranges would invoke
> map_range again directly without returning to vpci_process_pending.

Sorry, I sent the previous email too soon, I see now that it shouldn't be
possible for size to be zero.

> 
>> +                *c += size;
> 
> This line is now only executed for hwdom, but ...
> 
>> +            }
> 
> ... it should go outside of the hwdom check because domUs still need it.
> 
>>              break;
>>          }
>>          ASSERT(rc < size);
>> @@ -213,28 +224,22 @@ bool vpci_process_pending(struct vcpu *v)
>>              return true;
>>          }
>>  
>> -        if ( rc )
>> +        if ( rc && !is_hardware_domain(v->domain) )
>>          {
>> -            spin_lock(&pdev->vpci->lock);
>> -            /* Disable memory decoding unconditionally on failure. */
>> -            modify_decoding(pdev, v->vpci.cmd & ~PCI_COMMAND_MEMORY,
>> -                            false);
> 
> This path could be taken for either map or unmap. Do we still want to disable
> memory decoding in case of unmap?
> 
>> -            spin_unlock(&pdev->vpci->lock);
>> -
>> -            /* Clean all the rangesets */
>> -            for ( i = 0; i < ARRAY_SIZE(header->bars); i++ )
>> -                if ( !rangeset_is_empty(header->bars[i].mem) )
>> -                     rangeset_purge(header->bars[i].mem);
>> -
>> -            v->vpci.pdev = NULL;
>> -
>>              read_unlock(&v->domain->pci_lock);
>>  
>> -            if ( !is_hardware_domain(v->domain) )
>> -                domain_crash(v->domain);
>> +            domain_crash(v->domain);
>>  
>>              return false;
>>          }
>> +        ASSERT(!rc);
>> +        /*
>> +         * Purge rangeset to deal with the hardware domain having triggered an
>> +         * error.  It shouldn't be possible, as map_range() will always shallow
>> +         * errors for hardware domain owned devices, and
>> +         * rangeset_consume_ranges() itself doesn't generate any errors.
>> +         */
>> +        rangeset_purge(bar->mem);
> 
> Reiterating what was mentioned above: if map_range returned 0 without
> incrementing *c, we won't make it back here.
> 
>>      }
>>      v->vpci.pdev = NULL;
>>  


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 19:28:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 19:28:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083781.1443231 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1un05o-0007yi-Vv; Fri, 15 Aug 2025 19:28:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083781.1443231; Fri, 15 Aug 2025 19:28: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 1un05o-0007yb-Rl; Fri, 15 Aug 2025 19:28:00 +0000
Received: by outflank-mailman (input) for mailman id 1083781;
 Fri, 15 Aug 2025 19:28:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JuuU=23=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1un05o-0007yB-0G
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 19:28:00 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f19d210c-7a0d-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 21:27:56 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id C722BA583A9;
 Fri, 15 Aug 2025 19:27:54 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id C228CC4CEEB;
 Fri, 15 Aug 2025 19:27: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>
X-Inumbo-ID: f19d210c-7a0d-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755286074;
	bh=dm9hGRQRuU3Ti61KlLjxam3MN99K/XV9ylHs6j08/Mo=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=F/19KR41w+KuAPKXxMLrfZZRYJyND95hDItIfiduIAqJG0OoBvI790PweQcnsTcyT
	 EH5AQAjZVX4qBNoXQ1n89tUI4CoIoZqbH4sBbLhhtsVJq+DGS0pUkjJ68XPuG+VJaC
	 YR4gyfaFduYM3xYUaiiKyWA7Ty0Q0zqVWm8WUgYnrR9Ts4Q+XfhhpH4vpboJb8g5Hs
	 aSv9IAvtZTu2oLeXtP8Xsc5ABZxsDbwUYvyT6H04DVIL1QBuSkGvL1rIvEjRPgDuVF
	 a763Mr6va+Y4UZ27SZ2btpSUM14tWe/v0wpR+e++UkliyWo2Tc+nz7KJTGX6LinS5H
	 T2RiqM/Ga8Lgg==
Date: Fri, 15 Aug 2025 12:27:51 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Juergen Gross <jgross@suse.com>
cc: linux-kernel@vger.kernel.org, Stefano Stabellini <sstabellini@kernel.org>, 
    Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, 
    xen-devel@lists.xenproject.org
Subject: Re: [PATCH] drivers/xen/xenbus: remove quirk for Xen 3.x
In-Reply-To: <20250815074052.13792-1-jgross@suse.com>
Message-ID: <alpine.DEB.2.22.394.2508151227420.10166@ubuntu-linux-20-04-desktop>
References: <20250815074052.13792-1-jgross@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Fri, 15 Aug 2025, Juergen Gross wrote:
> The kernel is not supported to run as a Xen guest on Xen versions
> older than 4.0.
> 
> Remove xen_strict_xenbus_quirk() which is testing the Xen version to be
> at least 4.0.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>

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


> ---
>  drivers/xen/xenbus/xenbus_xs.c | 23 -----------------------
>  1 file changed, 23 deletions(-)
> 
> diff --git a/drivers/xen/xenbus/xenbus_xs.c b/drivers/xen/xenbus/xenbus_xs.c
> index 3c9da446b85d..528682bf0c7f 100644
> --- a/drivers/xen/xenbus/xenbus_xs.c
> +++ b/drivers/xen/xenbus/xenbus_xs.c
> @@ -718,26 +718,6 @@ int xs_watch_msg(struct xs_watch_event *event)
>  	return 0;
>  }
>  
> -/*
> - * Certain older XenBus toolstack cannot handle reading values that are
> - * not populated. Some Xen 3.4 installation are incapable of doing this
> - * so if we are running on anything older than 4 do not attempt to read
> - * control/platform-feature-xs_reset_watches.
> - */
> -static bool xen_strict_xenbus_quirk(void)
> -{
> -#ifdef CONFIG_X86
> -	uint32_t eax, ebx, ecx, edx, base;
> -
> -	base = xen_cpuid_base();
> -	cpuid(base + 1, &eax, &ebx, &ecx, &edx);
> -
> -	if ((eax >> 16) < 4)
> -		return true;
> -#endif
> -	return false;
> -
> -}
>  static void xs_reset_watches(void)
>  {
>  	int err;
> @@ -745,9 +725,6 @@ static void xs_reset_watches(void)
>  	if (!xen_hvm_domain() || xen_initial_domain())
>  		return;
>  
> -	if (xen_strict_xenbus_quirk())
> -		return;
> -
>  	if (!xenbus_read_unsigned("control",
>  				  "platform-feature-xs_reset_watches", 0))
>  		return;
> -- 
> 2.43.0
> 


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 19:44:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 19:44:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083801.1443243 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1un0LU-0002Vd-71; Fri, 15 Aug 2025 19:44:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083801.1443243; Fri, 15 Aug 2025 19: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 1un0LU-0002VW-47; Fri, 15 Aug 2025 19:44:12 +0000
Received: by outflank-mailman (input) for mailman id 1083801;
 Fri, 15 Aug 2025 19:44:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JuuU=23=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1un0LS-0002VQ-NH
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 19:44:10 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3524588f-7a10-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 21:44:08 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 3781F60007;
 Fri, 15 Aug 2025 19:44:07 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 82717C4CEEB;
 Fri, 15 Aug 2025 19:44: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>
X-Inumbo-ID: 3524588f-7a10-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755287046;
	bh=L/keBw/Wcwup6Co+KZG6QZZWHxdMSKTfGUNrWhFbiQU=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=dkD3+N5GMphFkxsnjfAm3nTS0N36kIXWp5Z53NN7insZCaCWfW1slfJlYyVBmvOI8
	 zt6zF6oK8BpGiEpcrScZWKFsUeaxsJPKz2jTgi+NNJ6crJFfNDhzE3AqL4LYMBDNMU
	 IdNUDZT37blfsbuHHM+9UljTOmGBijyGR7m7dO0h3AlG/K2VPSzkhwJb6dslxtJfl6
	 kfaHMDorZvwPcNR/XPbxnpNx3MsjjVeaijZ0/wAz9qFhgSKVtFHHZVOSEfuo/AGcPJ
	 TCOlWQzDTXy4bUWzXGvLaSE9ITiPxm76CEJjnNQL9J5XhCfxuE9LC2g9AGitxX2WSW
	 4k9De+ZCQpqPg==
Date: Fri, 15 Aug 2025 12:44:01 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
cc: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, 
    xen-devel@lists.xenproject.org, Doug Goldstein <cardoe@cardoe.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v4] misra: add deviations of MISRA C Rule 5.5
In-Reply-To: <874c914eafd42020afc2087eccf4d7a3@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2508151243480.923618@ubuntu-linux-20-04-desktop>
References: <afe942916b8a2408f575d2acda49699f74718161.1753991597.git.dmytro_prokopchuk1@epam.com> <874c914eafd42020afc2087eccf4d7a3@bugseng.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 7 Aug 2025, Nicola Vetrini wrote:
> On 2025-07-31 22:43, Dmytro Prokopchuk1 wrote:
> > MISRA C Rule 5.5 states: "Identifiers shall be distinct from macro names".
> > 
> > Update ECLAIR configuration to deviate clashes: specify the macros that
> > should be ignored. Update deviations.rst and rules.rst accordingly.
> > 
> > Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
> 
> Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

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



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 19:51:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 19:51:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083812.1443256 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1un0SM-0004H1-T7; Fri, 15 Aug 2025 19:51:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083812.1443256; Fri, 15 Aug 2025 19:51: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 1un0SM-0004Gu-QD; Fri, 15 Aug 2025 19:51:18 +0000
Received: by outflank-mailman (input) for mailman id 1083812;
 Fri, 15 Aug 2025 19:51:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JuuU=23=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1un0SL-0004Go-TR
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 19:51:17 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 34167c35-7a11-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 21:51:16 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id CB5D05C68F6;
 Fri, 15 Aug 2025 19:51:14 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7BEBCC4CEEB;
 Fri, 15 Aug 2025 19:51:13 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 34167c35-7a11-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755287474;
	bh=I5SyojDAyh5oE0Zg/W7EpO9tvOZPWPQm1sMUtoQ5TFY=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=lTp0ud5x3PAE1M5aXLmt4PEvAJor4ks+t/23M08yRo4ANbca7HXyrCiaB63ZRYwaw
	 RhFy3aWt34Qxxpxe92enfwYKpSt/kG4oOh74ZP1KfY4E3UxPZrm8eHEa5phlxoM7yw
	 Di+oubgEU/kt/GO5oMvVEJVFsnrcg+404XR6LlR3G5IsWM+6EnHaUBVnmwz3mVWjR6
	 x4soMMsmh6wU4PsWTMoRGj7GGeHsF7421qoT9nFZud4myYHhRhz13ni0SotcXv114F
	 CMeZwURBneYt9l435j7QAD4+syeGstSl0kwh7bI1WZrlXYOJauIgXvwe4Vs4/mgjzT
	 CxWPAwN+oROIw==
Date: Fri, 15 Aug 2025 12:51:11 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
cc: xen-devel@lists.xenproject.org, sstabellini@kernel.org, 
    consulting@bugseng.com, dmytro_prokopchuk1@epam.com, 
    andrew.cooper3@citrix.com, jbeulich@suse.com, 
    Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [XEN PATCH 2/2] Address violation of MISRA C Rule 13.1 involving
 asm side effects.
In-Reply-To: <c4da2554d94c3f7bd4b1e460dcaa27db382ece2f.1754689062.git.nicola.vetrini@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2508151250460.923618@ubuntu-linux-20-04-desktop>
References: <1283be3b76d76814af244bbca544f6a3b74a04de.1754689062.git.nicola.vetrini@bugseng.com> <c4da2554d94c3f7bd4b1e460dcaa27db382ece2f.1754689062.git.nicola.vetrini@bugseng.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Fri, 8 Aug 2025, Nicola Vetrini wrote:
> The rule states: "Initializer lists shall not contain persistent side effects".
> The specific way in which the 'mrs' instruction is used does not lead to
> visible side effects for the surrounding code.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

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

Ideally, with the improved doc as suggested by Dmytro.


> ---
> Not yet tested on the Xen ECLAIR runner, as the syntax used in the deviation
> is only supported after updating the runner.
> 
> What the tool is reporting is that due to the '=r' constraint and the
> semantics of the instruction, there is the side effect of writing to '_r',
> but this is not observable outside the stmt expr. The deviation ends up being
> a bit too general for my taste, but the restriction on the actual istruction
> should be enough to limit applicability to cases that are arguably safe in
> practice.
> 
> An alternative approach would be represented by stating that side effects in
> 'READ_SYSREG64' are safe, but this is not true in general.
> ---
>  automation/eclair_analysis/ECLAIR/deviations.ecl | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
> index ec0cac797e5f..6b492e38505d 100644
> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
> @@ -437,6 +437,10 @@ write or not"
>  # Series 13
>  #
>  
> +-doc_begin="Consider the asm instruction to read an Arm system register to have no side effects."
> +-asm_properties+={"asm(any())&&child(text, ast_field(value,^mrs\\s+%0.*$))", {no_side_effect}}
> +-doc_end
> +
>  -doc_begin="All developers and reviewers can be safely assumed to be well aware
>  of the short-circuit evaluation strategy of such logical operators."
>  -config=MC3A2.R13.5,reports+={disapplied,"any()"}
> -- 
> 2.43.0
> 


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 19:53:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 19:53:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083822.1443267 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1un0UN-0004nE-7V; Fri, 15 Aug 2025 19:53:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083822.1443267; Fri, 15 Aug 2025 19:53:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1un0UN-0004n7-4n; Fri, 15 Aug 2025 19:53:23 +0000
Received: by outflank-mailman (input) for mailman id 1083822;
 Fri, 15 Aug 2025 19:53:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JuuU=23=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1un0UL-0004n1-7k
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 19:53:21 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org
 [2600:3c04:e001:324:0:1991:8:25])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7d26e86c-7a11-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 21:53:19 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 3239F60007;
 Fri, 15 Aug 2025 19:53:17 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id CF23AC4CEEB;
 Fri, 15 Aug 2025 19:53: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>
X-Inumbo-ID: 7d26e86c-7a11-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755287596;
	bh=iGNGs1jeOIT4gU8UtpJE11Yr+bLheb576dbnvjw5NCg=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=cIX/Z4gPF62zRCv2GyOSY/prYVquJp5kRvUpJeQRrdAQJKPBivHc5PI6vs6UpxclJ
	 vhTUfpCiYEUe+7oq/vDGPIZdhybNmZ+hrpdmDtKjzsYwC3JhDX5wwXDQB4jjbOQcn5
	 GYB0Q7+iXTb0zY0jqk3Ur6KoK4jUdS3eo8amobp2ZP9T4fwm6nr+yF14EPrDzIY2Pa
	 CFejcPVyys/Xrh5S3QLv+uX+HOCEBFzHCTGlxs9bOo8xX13KMrJsYasfEMr6w/qa54
	 BMWooxov9N2yINltf7JfWAJmZhIRAd4d+9VxB1zdAL63bvKiOzyAc9l69ZkK4fneh5
	 SMawhPmuVuyjQ==
Date: Fri, 15 Aug 2025 12:53:13 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
cc: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, 
    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>
Subject: Re: [PATCH] misra: add missing noreturn attribute for __div0()
In-Reply-To: <6aa50b8147d14e4d654f1291fc3b9cef@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2508151253010.923618@ubuntu-linux-20-04-desktop>
References: <1b5549a97db31c65edb769302deff73576cec41d.1755013482.git.dmytro_prokopchuk1@epam.com> <6aa50b8147d14e4d654f1291fc3b9cef@bugseng.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 12 Aug 2025, Nicola Vetrini wrote:
> On 2025-08-12 17:46, Dmytro Prokopchuk1 wrote:
> > The __div0() function never returns to its caller, causing a violation
> > of MISRA C Rule 2.1: "A project shall not contain unreachable code".
> > Add the `noreturn` attribute to fix this.
> > 
> 
> I was convinced that this was already upstream, as I made a patch a while ago,
> but evidently I forgot to send it.
> 
> > Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
> 
> Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

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



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 19:59:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 19:59:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083831.1443277 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1un0Zj-0005MN-R0; Fri, 15 Aug 2025 19:58:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083831.1443277; Fri, 15 Aug 2025 19:58: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 1un0Zj-0005MG-NX; Fri, 15 Aug 2025 19:58:55 +0000
Received: by outflank-mailman (input) for mailman id 1083831;
 Fri, 15 Aug 2025 19:58:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JuuU=23=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1un0Zi-0005MA-1B
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 19:58:54 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org
 [2604:1380:45d1:ec00::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4422ce45-7a12-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 21:58:52 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 5F9ADA5837B;
 Fri, 15 Aug 2025 19:58:51 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id C130BC4CEEB;
 Fri, 15 Aug 2025 19:58:49 +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>
X-Inumbo-ID: 4422ce45-7a12-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755287931;
	bh=KeZ9nGDPhYIlP7j7m4D88X8oexmsh94FFACn1/Stn3g=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=BqnLVdZhWdI6EznkMqfVGza6sPY8b/Vl5WCzeJKCfetixvuo7Hco8sJYqdZTLR3bn
	 qGdrn2SIlwVKabyna9JLyqM4G1IvJY2Bfq0ZAJxxSXOGi7YXxJNXNsA0aMxXkUn6QM
	 x01C67zQ4CILOStpKDV0nTugZ8Ad2vw2IpzCzZZALA38YHAGqWmHuqQ1kKOK3enxCI
	 uQ+42KC4Ku+Tmz8RBYzZOKTRnrlq99KM6rCIPKLNKpCltQHgWyi7oE8Pnn0wUIup1o
	 PxJMzau694iez62I3M/kqYDf2xPj6MBnAu+f33/K9FMW3l6zecblOVTNFFjWv211AS
	 KZODOUhxjjP3w==
Date: Fri, 15 Aug 2025 12:58:47 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Teddy Astie <teddy.astie@vates.tech>
cc: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, 
    xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] misra: address Rule 11.1 violation in cmpxchgptr()
In-Reply-To: <53d285af-e7ce-4736-a91a-5893b1773171@vates.tech>
Message-ID: <alpine.DEB.2.22.394.2508151258090.923618@ubuntu-linux-20-04-desktop>
References: <64882f9ee8e470a2633b8b4d0b5c1cd9d1c0a8c7.1755107902.git.dmytro_prokopchuk1@epam.com> <53d285af-e7ce-4736-a91a-5893b1773171@vates.tech>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-1824684921-1755287930=:923618"

  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-1824684921-1755287930=:923618
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Thu, 14 Aug 2025, Teddy Astie wrote:
> Hello,
> 
> Le 13/08/2025 Ã  20:07, Dmytro Prokopchuk1 a Ã©critÂ :
> > Misra Rule 11.1 states: "Conversions shall not be performed between a
> > pointer to a function and any other type."
> >
> > The violation occurs in the macro:
> >      __typeof__(**(ptr)) *const o_ = (o);                                \
> >      __typeof__(**(ptr)) *n_ = (n);                                      \
> >      ((__typeof__(*(ptr)))__cmpxchg(ptr, (unsigned long)o_,              \
> >                                     (unsigned long)n_, sizeof(*(ptr)))); \
> > })
> > when it is used for handling function pointers of type:
> > typedef void (*)(struct vcpu *, unsigned int).
> > The issue happens because the '__cmpxchg()' function returns an 'unsigned
> > long', which is then converted back into a function pointer, causing a
> > violation of Rule 11.1. In this particular usage, the return value of the
> > macro 'cmpxchgptr()' is not required. To address the violation, the macro
> > has been replaced to discard the return value of '__cmpxchg()', preventing
> > the conversion.
> >
> > Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
> > ---
> > Probably separate macro is too much for this single case.
> >
> > And the following will be enought:
> > __cmpxchg(&xen_consumers[i], (unsigned long)NULL, (unsigned long)fn, sizeof(*(&xen_consumers[i])));
> > ---
> >   xen/common/event_channel.c | 15 +++++++++++++--
> >   1 file changed, 13 insertions(+), 2 deletions(-)
> >
> > diff --git a/xen/common/event_channel.c b/xen/common/event_channel.c
> > index 67700b050a..2094338b28 100644
> > --- a/xen/common/event_channel.c
> > +++ b/xen/common/event_channel.c
> > @@ -93,6 +93,17 @@ static void cf_check default_xen_notification_fn(
> >           vcpu_wake(v);
> >   }
> >
> > +/*
> > + * A slightly more updated variant of cmpxchgptr() where old value
> > + * is not returned.
> > + */
> > +#define cmpxchgptr_noret(ptr, o, n) ({                  \
> > +    __typeof__(**(ptr)) *const o_ = (o);                \
> > +    __typeof__(**(ptr)) *n_ = (n);                      \
> > +    (void)__cmpxchg(ptr, (unsigned long)o_,             \
> > +                    (unsigned long)n_, sizeof(*(ptr))); \
> > +})
> > +
> >   /*
> >    * Given a notification function, return the value to stash in
> >    * the evtchn->xen_consumer field.
> > @@ -106,9 +117,9 @@ static uint8_t get_xen_consumer(xen_event_channel_notification_t fn)
> >
> >       for ( i = 0; i < ARRAY_SIZE(xen_consumers); i++ )
> >       {
> > -        /* Use cmpxchgptr() in lieu of a global lock. */
> > +        /* Use cmpxchgptr_noret() in lieu of a global lock. */
> >           if ( xen_consumers[i] == NULL )
> > -            cmpxchgptr(&xen_consumers[i], NULL, fn);
> > +            cmpxchgptr_noret(&xen_consumers[i], NULL, fn);
> >           if ( xen_consumers[i] == fn )
> >               break;
> >       }
> 
> AFAICS, Rule 11.1 has a deviation which allows this specific case.
> 
> In docs/misra/deviations.rst
> > * - R11.1
> >   - The conversion from a function pointer to unsigned long or (void \*) does
> >     not lose any information, provided that the target type has enough bits
> >     to store it.
> >   - Tagged as `safe` for ECLAIR.
> 
> Here, we are constructing a function pointer from a unsigned long. I
> assume this rule goes the other way it says, and allow converting a
> unsigned long into a function pointer as long as its value is a valid
> function pointer.

You are right, we should need to update the deviation instead here:


-doc_begin="The conversion from a function pointer to unsigned long or (void *) does not lose any information, provided that the target type has enough bits to store it."
-config=MC3A2.R11.1,casts+={safe,
  "from(type(canonical(__function_pointer_types)))
   &&to(type(canonical(builtin(unsigned long)||pointer(builtin(void)))))
   &&relation(definitely_preserves_value)"
}
-doc_end

--8323329-1824684921-1755287930=:923618--


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 20:12:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 20:12:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083849.1443295 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1un0mZ-0000Dq-1c; Fri, 15 Aug 2025 20:12:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083849.1443295; Fri, 15 Aug 2025 20:12: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 1un0mY-0000Dj-UO; Fri, 15 Aug 2025 20:12:10 +0000
Received: by outflank-mailman (input) for mailman id 1083849;
 Fri, 15 Aug 2025 20:12:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JuuU=23=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1un0mY-0000Dc-Cu
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 20:12:10 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1c3ae4b4-7a14-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 22:12:05 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 545704482B;
 Fri, 15 Aug 2025 20:12:03 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 34211C4CEEB;
 Fri, 15 Aug 2025 20:12:02 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1c3ae4b4-7a14-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755288723;
	bh=sToq7dYo63iihTltLRWdAyJmRpr8xV/Hq79f1DzLLDc=;
	h=Date:From:To:cc:Subject:From;
	b=SeCg42IQiGnFQ5tIRJ0xpR0SavOS2lUxSF0sPDb1Mr553dscZJM0nB7Lpp9Irobmt
	 /Y9fEfsI26xydzimKbU0iYc8fz4L16iXnRz81f1yDq9xVLGDbnNbC1BjFTVfof4p4M
	 b0g2pkS/HPcpEn3tq+ZwCyueBh5gKEMWs3fPlLlUIr9FuPd/z3OZERQoqSkA1BF0lE
	 wbut6jKaFMbAx/J4bILcm9Y7BB2SxcfV8csoaHnQAPLtsk3tN+b0n/ZTmjMwRc+ZR1
	 Smn+sct0kRJOZYEd641nhzwTP84Rhh+4hJclkXOFKOcE8R0eZh9Z7A9C3J1no6aSlC
	 WXM8pF27EpVFA==
Date: Fri, 15 Aug 2025 13:12:00 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: xen-devel@lists.xenproject.org
cc: sstabellini@kernel.org, andrew.cooper3@citrix.com, 
    anthony.perard@vates.tech, michal.orzel@amd.com, jbeulich@suse.com, 
    julien@xen.org, roger.pau@citrix.com
Subject: [PATCH] docs/sending-patches: add GitLab pipeline link
Message-ID: <alpine.DEB.2.22.394.2508151310010.923618@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

When submitting patches to xen-devel, add a link to a successful
pipeline run.

Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>

diff --git a/docs/process/sending-patches.pandoc b/docs/process/sending-patches.pandoc
index 1991932b68..6e1401ea22 100644
--- a/docs/process/sending-patches.pandoc
+++ b/docs/process/sending-patches.pandoc
@@ -314,3 +314,23 @@ A patch should always be sent **to** the xen-devel mailing list
 of all touched code areas should get a copy of the mail via **Cc**. In case
 some other recipients are known to be interested in the patch, they can be
 added via **Cc**, too.
+
+## Testing
+
+Xen Project uses a GitLab-based CI infrastructure. You can request to
+have your GitLab account added to the Xen Project organization on GitLab
+(https://gitlab.com/xen-project) by reaching out to THE REST maintainers
+via xen-devel or Matrix. Once your account is added to the Xen Project
+organization on GitLab, also a personal Xen repository will be created
+for you under https://gitlab.com/xen-project/people/<your-username>/xen.
+You will be able to trigger a GitLab testing pipeline with a single git
+push to your personal Xen repository.
+
+When submitting a non-trivial patch or a non-trivial patch series,
+please include a link to the successful GitLab pipeline run on your
+personal branch. This information can be added after the `---` line.
+For example:
+
+    ---
+    Test CI pipeline:
+    https://gitlab.com/xen-project/people/your-username/xen/-/pipelines/1980129839


From xen-devel-bounces@lists.xenproject.org Fri Aug 15 20:36:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 20:36:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083859.1443305 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1un19r-0003PG-Sh; Fri, 15 Aug 2025 20:36:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083859.1443305; Fri, 15 Aug 2025 20:36: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 1un19r-0003P9-P9; Fri, 15 Aug 2025 20:36:15 +0000
Received: by outflank-mailman (input) for mailman id 1083859;
 Fri, 15 Aug 2025 20:36:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fG+3=23=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1un19q-0003P3-V2
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 20:36:15 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20605.outbound.protection.outlook.com
 [2a01:111:f403:2414::605])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 73dbb120-7a17-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 22:36:00 +0200 (CEST)
Received: from SN7PR04CA0163.namprd04.prod.outlook.com (2603:10b6:806:125::18)
 by BN7PPF5D27497F1.namprd12.prod.outlook.com
 (2603:10b6:40f:fc02::6d1) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.16; Fri, 15 Aug
 2025 20:35:57 +0000
Received: from SA2PEPF00003AE9.namprd02.prod.outlook.com
 (2603:10b6:806:125:cafe::ac) by SN7PR04CA0163.outlook.office365.com
 (2603:10b6:806:125::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9031.18 via Frontend Transport; Fri,
 15 Aug 2025 20:35:56 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SA2PEPF00003AE9.mail.protection.outlook.com (10.167.248.9) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Fri, 15 Aug 2025 20:35:56 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) 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; Fri, 15 Aug
 2025 15:35:55 -0500
Received: from [172.31.85.68] (10.180.168.240) 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 via Frontend
 Transport; Fri, 15 Aug 2025 15:35: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>
X-Inumbo-ID: 73dbb120-7a17-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HJT6ShUgDZprqNtv7OlkYV1ghdLIw7Vv50FyNEOjReziLSRmRU9yt36Zk2YV/CWAi1ZiuonTTl8+yB44x0je7nyycSzd5lx/RPbOIwhIQ1COceM5zIJSpZQGk/Q6ZZ2lzD9A4mEyXpezKGUGx0EYrjLF3E39/jkvak5gBht699og+lLWGZIj5Btb7BB4mhUJiOUMiaarLx7Zv5Vhfh8pPzVSwPjWFpOcYhJqKyaZ5PvXvGTvijzHS1s0c9h6rvjlp7fMdu5HKqvZpR+y/+R2NnSehjnBeAfUxAp+NqR0WrgHhu9Z94h2u+dt5OL9N6wQNdE9cJx6mzKpbNB9UqxM0A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=L8uDGKHuLql1G+HoYZ1TJAjKzShrmL6zC1TPCMJ36T4=;
 b=FOe/X1eyIJIXAchZ3QWQNXKqhd+1s6icof8M30P0IwBeSJwm/WJJS01/VCEwWnAoDEtM/Hm1kRHqJkDdISIp1MJS0R6wtZ53vmKYqqr0c4KYvvdoHm+ehsiPRZphWnbs+9p5vCKZt1Z6bjy7kANw9pntTJEokiP1kOT+oMeXkjIS9yUbPykOSWy02QAK7+pcvGC2C1uexaskyKONpyykh7WxRVEPEluwUaLvgE7xwcZ81COsuMabZPZ6Sg7t1FTMnush0nUbFhNs+Tv6GM6uk2RFfF2Xx8ODP7mI2MfyIqEeot1kiI9wPlH2Xi1e6IDn37HxJLxXlgz9QFUTVDMS/Q==
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=L8uDGKHuLql1G+HoYZ1TJAjKzShrmL6zC1TPCMJ36T4=;
 b=fEm8EjzV3APTpjnHYMByFnzcwgqL2pDF5OguOnOpRCW+oURozMCWKq1wogIRohnhGOEY+ysJRDZ9jmYDFI+lUWm+qLjQuhy0ZOWAHJFWFl84msqj+fOgZIgu/bifdgWKpAtI56M2rw13zDgtejpbEKJDM/OgOIhkedfWrH2Cens=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <77c37121-2801-4c51-b167-1d6e364f4295@amd.com>
Date: Fri, 15 Aug 2025 16:35:49 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/5] xen/vpci: simplify handling of memory decoding and
 ROM enable writes
To: Roger Pau Monne <roger.pau@citrix.com>, <xen-devel@lists.xenproject.org>
CC: <Jiqian.Chen@amd.com>, <jbeulich@suse.com>
References: <20250814160358.95543-1-roger.pau@citrix.com>
 <20250814160358.95543-4-roger.pau@citrix.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <20250814160358.95543-4-roger.pau@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB03.amd.com: stewart.hildebrand@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF00003AE9:EE_|BN7PPF5D27497F1:EE_
X-MS-Office365-Filtering-Correlation-Id: 2e9f07d1-f58d-47f6-39b7-08dddc3b5666
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?SDZNUFAwaVlncVRXRVd4M1FDQUtNMldHVDJ6T1U2N29WczlwcjZkdS83bmRp?=
 =?utf-8?B?c2Y2NXVQbnlSYUZ6dGtTM05WSC9hcm9WOURPRUZtUDRTY3J6TmVaMWJFeHIz?=
 =?utf-8?B?VVNnYXhSMEJHWUlVNDV5K1JxMHB5MEN0OU1qb2VJK0NzektRRGRiRk9DNUh3?=
 =?utf-8?B?clhkSmxsaC8wUk4wT0o4dXZ2Z1ZhMkxwTzRmNGNxdU1VVEVVZ2MzLy9lbmt5?=
 =?utf-8?B?RlRZaHNDaEJHeGIwTFBMRDVuOUQvRWJ4a25lMlZVa25lZFR0UHVtOUVUSkVE?=
 =?utf-8?B?aUZDWEVtOTQxQUhyVkRIdWE5eEVybFIveCtwbkkzMnRqYXNYR29lSFYwK1Rx?=
 =?utf-8?B?N0Z5eWxMVUV0bW4rZzZycEZRZVlTSmdtNXpNaDZndTEvQkUxYzhSMmhiek1L?=
 =?utf-8?B?V1RNendMTEMrcjdzQUc3T2VIalJDRW9jaUcrS2k4MzB5eFF5NXpHcG1mZUFO?=
 =?utf-8?B?RzZKVUx3bzBjOVk3ekptenpFbkxCMmMxRUVNUEJiYXNsVXBPUE56Q3lNQkxU?=
 =?utf-8?B?YXZIYW8yb1QxWXRnMUNJYlpzdHRpNmNsbG5jTnJCMjFYdnZ3MG9lSXE4TE5o?=
 =?utf-8?B?UjM4TkhQRCs4cksvcXNqQXZuTG02LzFKVFVYY0srRlRxV2lCamM4dVRMSXEw?=
 =?utf-8?B?U2NITEt4a3JIRGRsWEZjTWdGOURraFlFRk0rNGFRdUk0b1NVTjBhU1crNTBT?=
 =?utf-8?B?SGZjRlJCWTBEbDFOeGJBeHlzQTk0QkwxMklVY2JRUjFEM3FId3VJbldKVmhi?=
 =?utf-8?B?T3JKRTAyWjVXRzA2cVBwQ2dEZjdzSld2UDlFTlZQdmoxd3lCWlduVXBJTWpj?=
 =?utf-8?B?ZGZTbVFLS25Zd0crM2U4M0w2RkJmQ2pPSElBWjJRYXQ1VGNneUI5MHhwOUU5?=
 =?utf-8?B?OEFIY2lMUGJ5UTRpdEJlOU9oemt4WVBiaUxlWjZKaEdFaEt5N2RqQ1pDbGw2?=
 =?utf-8?B?UGpVSEpVRWY0eVV1dy9pemlGNisrSUhOWkNFRGp0cFlhTVVEVXNwaGZod05v?=
 =?utf-8?B?N01KT0ppUnRJeVNXNmw1L0Y2TjJZclEyVkdrNmhwbytaR1J6RjVWS3lENWgy?=
 =?utf-8?B?dTl5WTkxaEZFVGlJaWRMWTAwZ1daNjV6R3BHYjQwakZMWXpWUGZPM1RoZ29J?=
 =?utf-8?B?QWxPOHB1U2RNbmRRc1lQWStLUERROFUyS2RRMGtDN3hVNGtQRlQvR3RRWUtt?=
 =?utf-8?B?MHA2RDZmSzF6cEprczh4eS9MVDlqbE5rbWlkbSt6Ui9KN3RVY0dlSUxqaWhD?=
 =?utf-8?B?aHRhN1h2c05UY3JSYzVuS2pSMHUvNVo2bnEraUZpL3JjaUVnMnVFaWNIQzJH?=
 =?utf-8?B?Ukc3a0xGNXRlYW1yeVhER2diRnloTG9hQ3NySVFFTllreEVqYy95UkxSSGJ1?=
 =?utf-8?B?eHFMMHg5blhrQkJ4REVrUGpwQnF3UEY0dERtTUZFeWJoelpuZFAwZnRYYUx0?=
 =?utf-8?B?b1ZxSnRJR2o0WmhrSFhiYzRHYWQ5THBtazRKVVZQQzc1QjZMdkJVMG15NmdC?=
 =?utf-8?B?UjJZb1dkdGg2MEJrVUJVUlVXR1BUZzE5YW9aZTVvL0FqcHVRZlQ4ckVHK1ZE?=
 =?utf-8?B?Y0dWTXd1YWhIMVdQMEdFVHpPRWdDVStOazV4VStMRmpjL0ZuT0ZUeiszMzY5?=
 =?utf-8?B?bGd2d1Fka1N2SGQwUjJ4d1lBek02aUZML0w2K3BvZm04bll1RGtyMnhTaXZB?=
 =?utf-8?B?aWNFY0dFSlVMRTkrN3MrZDQvMHhoazgwRkpoM3Mvd004UHczNTJGTVdIWERt?=
 =?utf-8?B?NXBFdU5qeGxISEpqKy8yMHIwNnROYzRQbkRMcDJvbHhUOTVlT2k2VlJMMUtx?=
 =?utf-8?B?MllpY2xzWjNPMjFDL3JzVnhQS0sxcWZNQ3hmRVVMd2FlcjZwTFVpTXlQaE5K?=
 =?utf-8?B?M0F4aHRiZGkyQ2ppUHdieTU5dlV6ZEV5UnlXUkJlaHhkUU9FOGZEZE1aaHlW?=
 =?utf-8?B?eElyUERMd09NcWlJWnRxLytoQlZaNWFhZTFyQVBsVkhjc2tqeCtuemlxUGpT?=
 =?utf-8?B?cDY1Y09XNDRDcktyNGZpdnVvZUozQlBIWFRPeDQrVVVEVFdqSDlGaVh1WkhC?=
 =?utf-8?B?TWN0R0cvaEZtYW9mZUQzREFiWTVFZ1JMbSt5UT09?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(1800799024)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Aug 2025 20:35:56.6455
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2e9f07d1-f58d-47f6-39b7-08dddc3b5666
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF00003AE9.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PPF5D27497F1

On 8/14/25 12:03, Roger Pau Monne wrote:
> Deferring the actual write of the PCI register bit, either the memory
> decoding or the ROM enable is not helpful, and adds an unnecessary amount of
> complexity to the preemptible handling of BAR related p2m modifications.
> 
> In the hardware domain case, whether the PCI register write is done ahead
> or after the p2m changes doesn't matter, a hardware domain has plenty of
> ways to mess with the PCI register state if it wants to.  Any poking at the
> BAR p2m regions ahead of the guest write having completed will be
> undefined.
> 
> On the other hand, for domUs the memory decoding bit shouldn't really
> change as a result of guest actions, and should always be enabled.  Guest
> toggling the memory decoding command register should only result in p2m
> modifications, but no propagation to the device PCI registers.  Having
> memory decoding unconditionally enabled ensures the domU attempting to
> perform p2m accesses while the p2m changes are taking place will always
> access the BAR contents. This is not the current behavior for domUs, so add
> a note that it would preferably done that way.
> 

Nit: I think you want:
Resolves: https://gitlab.com/xen-project/xen/-/issues/98

> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> ---
>  xen/drivers/vpci/header.c | 42 +++++++++++++++++++--------------------
>  1 file changed, 21 insertions(+), 21 deletions(-)
> 
> diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
> index 1035dcca242d..1a501a0ba47e 100644
> --- a/xen/drivers/vpci/header.c
> +++ b/xen/drivers/vpci/header.c
> @@ -163,8 +163,6 @@ static void modify_decoding(const struct pci_dev *pdev, uint16_t cmd,
>              if ( pci_check_bar(pdev, _mfn(PFN_DOWN(bar->addr)),
>                                 _mfn(PFN_DOWN(bar->addr + bar->size - 1))) )
>                  bar->enabled = map;
> -            header->rom_enabled = map;
> -            pci_conf_write32(pdev->sbdf, rom_pos, val);

rom_pos and val are unused

drivers/vpci/header.c: In function â€˜modify_decodingâ€™:
drivers/vpci/header.c:160:22: error: unused variable â€˜valâ€™ [-Werror=unused-variable]
  160 |             uint32_t val = bar->addr |
      |                      ^~~
drivers/vpci/header.c:158:26: error: unused variable â€˜rom_posâ€™ [-Werror=unused-variable]
  158 |             unsigned int rom_pos = (i == PCI_HEADER_NORMAL_NR_BARS)
      |                          ^~~~~~~

Other than that the patch looks good to me

>              return;
>          }
>  
> @@ -174,14 +172,6 @@ static void modify_decoding(const struct pci_dev *pdev, uint16_t cmd,
>                             _mfn(PFN_DOWN(bar->addr + bar->size - 1))) )
>              bar->enabled = map;
>      }
> -
> -    if ( !rom_only )
> -    {
> -        pci_conf_write16(pdev->sbdf, PCI_COMMAND, cmd);
> -        header->bars_mapped = map;
> -    }
> -    else
> -        ASSERT_UNREACHABLE();
>  }
>  
>  bool vpci_process_pending(struct vcpu *v)
> @@ -547,16 +537,23 @@ static void cf_check cmd_write(
>       * decoding one. Bits that are not allowed for DomU are already
>       * handled above and by the rsvdp_mask.
>       */
> -    if ( header->bars_mapped != !!(cmd & PCI_COMMAND_MEMORY) )
> +    if ( header->bars_mapped != !!(cmd & PCI_COMMAND_MEMORY) &&
> +         modify_bars(pdev, cmd, false) )
>          /*
>           * Ignore the error. No memory has been added or removed from the p2m
>           * (because the actual p2m changes are deferred in defer_map) and the
>           * memory decoding bit has not been changed, so leave everything as-is,
>           * hoping the guest will realize and try again.
>           */
> -        modify_bars(pdev, cmd, false);
> -    else
> -        pci_conf_write16(pdev->sbdf, reg, cmd);
> +        return;
> +
> +    /*
> +     * FIXME: for domUs we don't want the guest toggling the memory decoding
> +     * bit.  It should be set in vpci_init_header() and guest attempts to
> +     * modify it should only lead to guest p2m changes.
> +     */
> +    header->bars_mapped = cmd & PCI_COMMAND_MEMORY;
> +    pci_conf_write16(pdev->sbdf, reg, cmd);
>  }
>  
>  static uint32_t cf_check guest_cmd_read(
> @@ -712,17 +709,11 @@ static void cf_check rom_write(
>          rom->guest_addr = rom->addr;
>      }
>  
> -    if ( !header->bars_mapped || rom->enabled == new_enabled )
> -    {
> -        /* Just update the ROM BAR field. */
> -        header->rom_enabled = new_enabled;
> -        pci_conf_write32(pdev->sbdf, reg, val);
> -    }
>      /*
>       * Pass PCI_COMMAND_MEMORY or 0 to signal a map/unmap request, note that
>       * this fabricated command is never going to be written to the register.
>       */
> -    else if ( modify_bars(pdev, new_enabled ? PCI_COMMAND_MEMORY : 0, true) )
> +    if ( modify_bars(pdev, new_enabled ? PCI_COMMAND_MEMORY : 0, true) )
>          /*
>           * No memory has been added or removed from the p2m (because the actual
>           * p2m changes are deferred in defer_map) and the ROM enable bit has
> @@ -733,6 +724,8 @@ static void cf_check rom_write(
>           */
>          return;
>  
> +    header->rom_enabled = new_enabled;
> +    pci_conf_write32(pdev->sbdf, reg, val);
>      if ( !new_enabled )
>      {
>          rom->addr = val & PCI_ROM_ADDRESS_MASK;
> @@ -1057,6 +1050,13 @@ int vpci_init_header(struct pci_dev *pdev)
>              goto fail;
>      }
>  
> +    if ( cmd & PCI_COMMAND_MEMORY )
> +    {
> +        /* Restore command register value. */
> +        header->bars_mapped = true;
> +        pci_conf_write16(pdev->sbdf, PCI_COMMAND, cmd);
> +    }
> +
>      return (cmd & PCI_COMMAND_MEMORY) ? modify_bars(pdev, cmd, false) : 0;
>  
>   fail:



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 20:41:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 20:41:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083883.1443315 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1un1Ep-0005EL-I4; Fri, 15 Aug 2025 20:41:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083883.1443315; Fri, 15 Aug 2025 20:41: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 1un1Ep-0005EE-F7; Fri, 15 Aug 2025 20:41:23 +0000
Received: by outflank-mailman (input) for mailman id 1083883;
 Fri, 15 Aug 2025 20:41:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oFbR=23=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1un1Eo-0005E7-0C
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 20:41:22 +0000
Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com
 [2a00:1450:4864:20::331])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 33771dd2-7a18-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 22:41:21 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-45a23def5f2so2948035e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 13:41:21 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3bb5d089e07sm3153924f8f.0.2025.08.15.13.41.19
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Aug 2025 13:41: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>
X-Inumbo-ID: 33771dd2-7a18-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755290480; x=1755895280; 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=8yEpVab4fGkYl1BhvVp/pjwz3h/lJ6YiQVMI8fiwlKM=;
        b=i55apf/8QcMpJMJ3SV43JSj4wWyG0rufK7kxMrXZQAMF1FEOj9CJgXggq66jgSuWfX
         AZ8AkqAwAXZ1e2hvt9g9k7d7g9caG6NEHEhUgY05pDUuDkOXZ1jsBODNSOAFJVqxsiDV
         DSK3M49h8pz3ipnBkdH1mz4+AdoN6aj1xVAqc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755290480; x=1755895280;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=8yEpVab4fGkYl1BhvVp/pjwz3h/lJ6YiQVMI8fiwlKM=;
        b=HK5UG7ZfU+M6Ke4FcLilDRHCuY9KxzGfJH4Qmh6wofrpj2VJu9eIya5j1U2YdG/l0F
         ELpCdbY85x9AGP3hh1B70bwcpk3f3aP4OLZlKPUh0ioTik7biuWsCz3Vt5AFRfa5xpK0
         6qp2Iy1RWd4xJEEaGN0EFZurj2kyLGWEPgC3G2ADqeoCL29RabJgzTq26y9GrN3k/Apr
         tBaPJlCAiqNSJ5wEEYOJXsAydgGFSpOaz6TAxbXZFG1Z7fi5mR9JeaLCYYorMCWwCEOB
         /LXB9S0XlK5vyLF+sbhV0M2JC2F1t25eo3WdfoVZACmg1KuITTpCRbAE3vDRPjXh5o8S
         DllA==
X-Gm-Message-State: AOJu0YwRWI8h8FvX8pp2VzDfpsJeCIGYkUh/XDzBv/RneIF3d5ZgfNyb
	tBGexksAOC4XKElxbVsT6u6y3OMuLyg7kczETbfK611K8VB4Uf0mMZz1HxsusoxrctG4KsGzAcm
	z5Pni
X-Gm-Gg: ASbGnctu3DQkF6FzJzptP6P7T+g7zocmyHEmyaFpGNLEAb0wCygUafg+fGrlqvklAUf
	EUj2i1wAIUvDLZ+GIx8TJqU07lgWfgBxrudK80O2WG3KLiA8zTTH1FTutJKBNJ8X2872uoD0gCZ
	PuP+zzgshbHTRGDoT6XhpfjAIHvkbmE9NyBRIn9sJ4nX19pBe6UaGJLXTpsXWbvYDCnCOqlWYHy
	b5tsMJf+o6SBzz1gSPeBxIFsXN7YTs7d7LfBRvWOIF5O+HWKAdIT6ZaL8UjhrFK52xxv0fUqsmo
	Tx3fhxb7x49rCuJPHAzk73sP6X7VY13UygyTjknUESdadlipBcdns+sMPao7dkPC929CAD+ivOi
	iILhS2fBQAS5epRKjDRU8xQ0boY8r3OGiz8G9RHeQlUOCY9WMIIS7jgssBtN852Lt0vr3mYEq/S
	xL
X-Google-Smtp-Source: AGHT+IGcSRXUq/l/xq9zlepAhbaICE0P8n4Z1iR9KbIAbLQVO9o9UlNfrxl3Keu+eRHJmrvZO0slZA==
X-Received: by 2002:a05:600c:b8d:b0:458:bd31:2c27 with SMTP id 5b1f17b1804b1-45a21848eb0mr22915175e9.23.1755290480092;
        Fri, 15 Aug 2025 13:41:20 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 00/16] x86/msr: Cleanup and FRED prep
Date: Fri, 15 Aug 2025 21:41:01 +0100
Message-Id: <20250815204117.3312742-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

This started as the final couple of patches, and escalated...

Some has been posted before, two even back in 2018 (work literally done in
Nanjing airport leaving XenSummit, and there was an 8h delay).  The rest is
FRED prep work, targetted for 4.21.

https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/1986711791

Andrew Cooper (16):
  x86/msr: Implement rdmsr_safe() in C
  x86/msr: Rework rdmsr_safe() using asm goto()
  x86: Sort headers
  x86/msr: Split out guest-msr.h
  x86/msr: Split out fsgsbase.h
  x86/msr: Split out tsc.h
  x86/msr: Move msr_{split,fold}() into asm/cpu-user-regs.h
  x86: Clean up asm/time.h
  x86: Clean up asm/msr.h
  x86/svm: Rename variable in svm_msr_write_intercept()
  x86/msr: Change rdmsr() to have normal API
  x86/msr: Change wrmsr() to take a single parameter
  x86/msr: Use MSR_IMM when available
  x86/fsgsbase: Split out __{rd,wr}gskern() helpers
  x86/fsgsbase: Update fs/gs helpers to use wrmsrns()
  x86/fsgsbase: Improve code generation in read_registers()

 xen/arch/x86/acpi/cpufreq/acpi.c            |   7 +-
 xen/arch/x86/acpi/cpufreq/cpufreq.c         |   3 +
 xen/arch/x86/acpi/cpufreq/hwp.c             |  18 +-
 xen/arch/x86/acpi/cpufreq/powernow.c        |  12 +-
 xen/arch/x86/apic.c                         |   2 +-
 xen/arch/x86/cpu/amd.c                      |  33 +-
 xen/arch/x86/cpu/common.c                   |  27 +-
 xen/arch/x86/cpu/intel.c                    |  38 +-
 xen/arch/x86/cpu/mcheck/mce.h               |   3 +-
 xen/arch/x86/cpu/mcheck/mce_amd.c           |   2 +-
 xen/arch/x86/cpu/mcheck/mce_intel.c         |   6 +-
 xen/arch/x86/cpu/microcode/intel.c          |   4 +
 xen/arch/x86/cpuid.c                        |   1 +
 xen/arch/x86/debug.c                        |   2 +
 xen/arch/x86/domain.c                       |  16 +-
 xen/arch/x86/domctl.c                       |  45 +-
 xen/arch/x86/genapic/x2apic.c               |   5 +-
 xen/arch/x86/guest/hyperv/hyperv.c          |   1 +
 xen/arch/x86/hvm/hvm.c                      |  77 +--
 xen/arch/x86/hvm/ioreq.c                    |   3 +-
 xen/arch/x86/hvm/svm/svm.c                  |  31 +-
 xen/arch/x86/hvm/svm/vmcb.c                 |   5 +-
 xen/arch/x86/hvm/vmx/vmcs.c                 |  32 +-
 xen/arch/x86/hvm/vmx/vmx.c                  |  64 +--
 xen/arch/x86/hvm/vmx/vvmx.c                 |   8 +-
 xen/arch/x86/include/asm/alternative.h      |   7 +
 xen/arch/x86/include/asm/cpu-user-regs.h    |  11 +
 xen/arch/x86/include/asm/fsgsbase.h         | 112 +++++
 xen/arch/x86/include/asm/guest-msr.h        | 155 ++++++
 xen/arch/x86/include/asm/hvm/hvm.h          |   3 +-
 xen/arch/x86/include/asm/msr.h              | 502 +++++++-------------
 xen/arch/x86/include/asm/prot-key.h         |   6 +-
 xen/arch/x86/include/asm/time.h             |  13 +-
 xen/arch/x86/include/asm/tsc.h              |  46 ++
 xen/arch/x86/machine_kexec.c                |   1 +
 xen/arch/x86/msr.c                          |   9 +-
 xen/arch/x86/nmi.c                          |  18 +-
 xen/arch/x86/oprofile/op_model_athlon.c     |   2 +-
 xen/arch/x86/platform_hypercall.c           |   2 +-
 xen/arch/x86/psr.c                          |   2 +
 xen/arch/x86/pv/domain.c                    |   1 +
 xen/arch/x86/pv/emul-priv-op.c              |  22 +-
 xen/arch/x86/pv/emulate.h                   |   1 +
 xen/arch/x86/pv/misc-hypercalls.c           |   1 +
 xen/arch/x86/spec_ctrl.c                    |   2 +-
 xen/arch/x86/tboot.c                        |  16 +-
 xen/arch/x86/traps.c                        |  16 +-
 xen/arch/x86/tsx.c                          |  29 +-
 xen/arch/x86/x86_64/asm-offsets.c           |   1 +
 xen/arch/x86/x86_64/mmconfig-shared.c       |   2 +-
 xen/arch/x86/xstate.c                       |   5 +-
 xen/common/efi/runtime.c                    |   1 +
 xen/common/ubsan/ubsan.c                    |   2 +
 xen/drivers/acpi/apei/apei-base.c           |  15 +-
 xen/drivers/acpi/tables/tbfadt.c            |   2 +
 xen/drivers/acpi/utilities/utmisc.c         |   3 +
 xen/drivers/passthrough/vtd/iommu.c         |   2 +-
 xen/include/public/arch-x86/cpufeatureset.h |   1 +
 xen/lib/x86/private.h                       |   2 +-
 59 files changed, 846 insertions(+), 612 deletions(-)
 create mode 100644 xen/arch/x86/include/asm/fsgsbase.h
 create mode 100644 xen/arch/x86/include/asm/guest-msr.h
 create mode 100644 xen/arch/x86/include/asm/tsc.h

-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 20:41:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 20:41:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083884.1443325 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1un1Er-0005SS-Oa; Fri, 15 Aug 2025 20:41:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083884.1443325; Fri, 15 Aug 2025 20:41: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 1un1Er-0005SL-La; Fri, 15 Aug 2025 20:41:25 +0000
Received: by outflank-mailman (input) for mailman id 1083884;
 Fri, 15 Aug 2025 20:41:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oFbR=23=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1un1Eq-0005E7-25
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 20:41:24 +0000
Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com
 [2a00:1450:4864:20::435])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 35163475-7a18-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 22:41:23 +0200 (CEST)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-3b9d41cd38dso1675740f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 13:41:23 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3bb5d089e07sm3153924f8f.0.2025.08.15.13.41.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Aug 2025 13:41: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>
X-Inumbo-ID: 35163475-7a18-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755290483; x=1755895283; 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=paeLb+OeWm7Kh4afS3Tq+uDEFsCiAJMk5Nnn8+ey0D4=;
        b=OHN4L3LLc64luS8hYrI1Sq9Lc+4kTqBvQL67lJ9mCgASSXaOe4tkOvrZYH4bfytR1X
         Hz3adDXY70lHFF4cIe25DICmgJ534y4ROJ+DUaCvguG992m1l07oPfU8QAzW3xoYcjRs
         Ji+dMqMjK7kRWDuLVsz3rrNWp+bhxBvdyLOnM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755290483; x=1755895283;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=paeLb+OeWm7Kh4afS3Tq+uDEFsCiAJMk5Nnn8+ey0D4=;
        b=J9ByAzHL2Q9R3L2ui9Tyi7ZKMCTIntQ40mqIrkr+njKgpOsDP63ikmQKDBKdZfehvk
         LSnOIbLDGCLPQbihEfnhTgEPSwZXFKCqYJnSNHDUcbKeZJyOpDN619c6MXxoVBqhkRFI
         niyDYZSFppKbfo6PARIJkkhdhE2hi4M/QBKLAaa3HAR3WwWty0q/aC0vPCELev9KWcUV
         uKS/o6LVdVAM0JBbcLIGJAM/IDqJPOkx0Lj76vud0d0m76q8kOUYfCatgRvFNtmCLTmR
         hDS7lbrQh0bJ5Bk68FZwXVvEk95CCuYOz88BA2ULbEOkMcwhhEePst8Hz4nSDG5nU1j2
         H1KA==
X-Gm-Message-State: AOJu0Yyajeyn+0KuiJAsw3eeDClAa6Vb6ONObAwrJcmECsIvUyoQxeaT
	VxFC9V1aVtYLgOgPfFsyCy+j0+9ymTMPHsB2Xp0S57db99xmT8tCKBsnG9hYGQJvHYW0cyOl3U4
	fOseR
X-Gm-Gg: ASbGncsf34wQHiG53et00rg/q+coh3WIfXHqgX5BKSYrTR759oJaOnEdxVOGwxHJTLC
	+E0b2JN4wy90n6KslVMbthm+WVYa+zfW2JnyGCnd3ls7F3v1JqXlr7pCI5v3q2Lu91hs3bAV6lk
	ONT9m6EfcZIIeSMqs0UZU67XPwAMJxxaQ78tpv2um129GmNGBp2kU+0/BSCkrl0mGpxRezMjCMv
	/asHxiNKdmmf2IMWNkybEXeasYE6K7bOSf11iVuP3CEiRufTITQdbNGaPlvtehKUuW1dHnX0Pm0
	jgcoz/c1F3+l86IyXUJW3gugwWcUFBrOwpBfJU87mH99Pk1srWrfltCWA91UzXB7/RtkRUe3ddC
	TDNE5DRJXQQIiJXfJu2t4yYCTOKlvIVKUXoQcNqT+EAjBaAxeeZptJZL0+46wDpLasGhQPPyEJH
	dd
X-Google-Smtp-Source: AGHT+IGifGN3xZ06BUeGeyRrpuDRd2B66yl+ECqdoH4ziQ81hz+1O0IIjPXxjds+8gHb/yjolvgiVA==
X-Received: by 2002:a05:6000:2f88:b0:3b7:84fc:ef4c with SMTP id ffacd0b85a97d-3bb66180488mr2439327f8f.6.1755290482728;
        Fri, 15 Aug 2025 13:41: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>
Subject: [PATCH v2 03/16] x86: Sort headers
Date: Fri, 15 Aug 2025 21:41:04 +0100
Message-Id: <20250815204117.3312742-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

I'm disappointed to notice that this is the second time I've done this to
arch/x86/domain.c recently, and screwed it up the first time.

I think we need some tooling to help keep this in order, not that I remotely
have time to look into this.
---
 xen/arch/x86/acpi/cpufreq/acpi.c   |  2 +-
 xen/arch/x86/cpu/mcheck/mce.h      |  2 +-
 xen/arch/x86/domain.c              |  4 +-
 xen/arch/x86/domctl.c              | 44 ++++++++---------
 xen/arch/x86/hvm/hvm.c             | 76 +++++++++++++++---------------
 xen/arch/x86/hvm/svm/svm.c         |  6 +--
 xen/arch/x86/hvm/svm/vmcb.c        |  4 +-
 xen/arch/x86/hvm/vmx/vmx.c         | 54 +++++++++++----------
 xen/arch/x86/hvm/vmx/vvmx.c        |  6 +--
 xen/arch/x86/include/asm/hvm/hvm.h |  2 +-
 xen/arch/x86/tboot.c               | 15 +++---
 xen/arch/x86/xstate.c              |  4 +-
 xen/drivers/acpi/apei/apei-base.c  | 14 +++---
 13 files changed, 121 insertions(+), 112 deletions(-)

diff --git a/xen/arch/x86/acpi/cpufreq/acpi.c b/xen/arch/x86/acpi/cpufreq/acpi.c
index 0c2537640608..b81f2afc9b9b 100644
--- a/xen/arch/x86/acpi/cpufreq/acpi.c
+++ b/xen/arch/x86/acpi/cpufreq/acpi.c
@@ -11,8 +11,8 @@
  *      porting acpi-cpufreq.c from Linux 2.6.23 to Xen hypervisor
  */
 
-#include <xen/errno.h>
 #include <xen/delay.h>
+#include <xen/errno.h>
 #include <xen/param.h>
 #include <xen/types.h>
 
diff --git a/xen/arch/x86/cpu/mcheck/mce.h b/xen/arch/x86/cpu/mcheck/mce.h
index eba4b536c797..6157a41aaeea 100644
--- a/xen/arch/x86/cpu/mcheck/mce.h
+++ b/xen/arch/x86/cpu/mcheck/mce.h
@@ -7,8 +7,8 @@
 #include <xen/sched.h>
 #include <xen/smp.h>
 
-#include <asm/traps.h>
 #include <asm/atomic.h>
+#include <asm/traps.h>
 
 #include "x86_mca.h"
 #include "mctelem.h"
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 28c91cf023f1..6e3fd35c934e 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -24,11 +24,13 @@
 #include <xen/hypercall.h>
 #include <xen/init.h>
 #include <xen/iocap.h>
+#include <xen/iommu.h>
 #include <xen/irq.h>
 #include <xen/kernel.h>
 #include <xen/lib.h>
 #include <xen/livepatch.h>
 #include <xen/multicall.h>
+#include <xen/numa.h>
 #include <xen/paging.h>
 #include <xen/pci.h>
 #include <xen/percpu.h>
@@ -64,8 +66,6 @@
 #include <asm/system.h>
 #include <asm/traps.h>
 #include <asm/xstate.h>
-#include <xen/iommu.h>
-#include <xen/numa.h>
 
 #include <public/arch-x86/cpuid.h>
 #include <public/sysctl.h>
diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c
index f07cae6a70b8..d7781b7dc5fd 100644
--- a/xen/arch/x86/domctl.c
+++ b/xen/arch/x86/domctl.c
@@ -4,39 +4,41 @@
  * Copyright (c) 2002-2006, K A Fraser
  */
 
-#include <xen/types.h>
-#include <xen/lib.h>
-#include <xen/mm.h>
-#include <xen/guest_access.h>
 #include <xen/compat.h>
-#include <xen/pci.h>
-#include <public/domctl.h>
-#include <xen/sched.h>
+#include <xen/console.h>
 #include <xen/domain.h>
-#include <xen/event.h>
 #include <xen/domain_page.h>
-#include <asm/msr.h>
-#include <xen/trace.h>
-#include <xen/console.h>
+#include <xen/event.h>
+#include <xen/guest_access.h>
+#include <xen/hypercall.h>
 #include <xen/iocap.h>
+#include <xen/iommu.h>
+#include <xen/lib.h>
+#include <xen/mm.h>
 #include <xen/paging.h>
+#include <xen/pci.h>
+#include <xen/sched.h>
+#include <xen/trace.h>
+#include <xen/types.h>
+#include <xen/vm_event.h>
 
+#include <asm/acpi.h>
+#include <asm/cpu-policy.h>
 #include <asm/gdbsx.h>
-#include <asm/irq.h>
 #include <asm/hvm/emulate.h>
 #include <asm/hvm/hvm.h>
+#include <asm/io_apic.h>
+#include <asm/irq.h>
+#include <asm/mem_sharing.h>
+#include <asm/msr.h>
 #include <asm/processor.h>
-#include <asm/acpi.h> /* for hvm_acpi_power_button */
-#include <xen/hypercall.h> /* for arch_do_domctl */
+#include <asm/psr.h>
+#include <asm/xstate.h>
+
 #include <xsm/xsm.h>
-#include <xen/iommu.h>
-#include <xen/vm_event.h>
+
+#include <public/domctl.h>
 #include <public/vm_event.h>
-#include <asm/mem_sharing.h>
-#include <asm/xstate.h>
-#include <asm/psr.h>
-#include <asm/cpu-policy.h>
-#include <asm/io_apic.h>
 
 static int update_domain_cpu_policy(struct domain *d,
                                     xen_domctl_cpu_policy_t *xdpc)
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index cb8ecd050d41..6d2b937b62ba 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -7,64 +7,66 @@
  * Copyright (c) 2008, Citrix Systems, Inc.
  */
 
+#include <xen/console.h>
+#include <xen/cpu.h>
+#include <xen/domain.h>
+#include <xen/domain_page.h>
+#include <xen/event.h>
+#include <xen/guest_access.h>
+#include <xen/hypercall.h>
 #include <xen/init.h>
 #include <xen/io.h>
 #include <xen/ioreq.h>
-#include <xen/lib.h>
-#include <xen/trace.h>
-#include <xen/sched.h>
 #include <xen/irq.h>
-#include <xen/softirq.h>
-#include <xen/domain.h>
-#include <xen/domain_page.h>
-#include <xen/hypercall.h>
-#include <xen/guest_access.h>
-#include <xen/event.h>
-#include <xen/cpu.h>
-#include <xen/wait.h>
+#include <xen/lib.h>
 #include <xen/mem_access.h>
-#include <xen/rangeset.h>
 #include <xen/monitor.h>
-#include <xen/param.h>
-#include <xen/warning.h>
-#include <xen/vpci.h>
 #include <xen/nospec.h>
+#include <xen/param.h>
+#include <xen/rangeset.h>
+#include <xen/sched.h>
+#include <xen/softirq.h>
+#include <xen/trace.h>
 #include <xen/vm_event.h>
-#include <xen/console.h>
-#include <asm/shadow.h>
-#include <asm/hap.h>
+#include <xen/vpci.h>
+#include <xen/wait.h>
+#include <xen/warning.h>
+
+#include <asm/altp2m.h>
+#include <asm/apic.h>
+#include <asm/cpufeature.h>
 #include <asm/current.h>
 #include <asm/debugreg.h>
 #include <asm/e820.h>
-#include <asm/regs.h>
-#include <asm/cpufeature.h>
-#include <asm/processor.h>
-#include <asm/msr.h>
-#include <asm/i387.h>
-#include <asm/xstate.h>
-#include <asm/traps.h>
-#include <asm/mc146818rtc.h>
-#include <asm/mce.h>
-#include <asm/monitor.h>
+#include <asm/hap.h>
+#include <asm/hvm/cacheattr.h>
 #include <asm/hvm/emulate.h>
 #include <asm/hvm/hvm.h>
-#include <asm/hvm/vpt.h>
-#include <asm/hvm/support.h>
-#include <asm/hvm/cacheattr.h>
-#include <asm/hvm/nestedhvm.h>
 #include <asm/hvm/monitor.h>
+#include <asm/hvm/nestedhvm.h>
+#include <asm/hvm/support.h>
 #include <asm/hvm/viridian.h>
 #include <asm/hvm/vm_event.h>
-#include <asm/altp2m.h>
+#include <asm/hvm/vpt.h>
+#include <asm/i387.h>
+#include <asm/mc146818rtc.h>
+#include <asm/mce.h>
+#include <asm/monitor.h>
+#include <asm/msr.h>
 #include <asm/mtrr.h>
-#include <asm/apic.h>
+#include <asm/processor.h>
+#include <asm/regs.h>
+#include <asm/shadow.h>
+#include <asm/traps.h>
 #include <asm/vm_event.h>
-#include <public/sched.h>
+#include <asm/xstate.h>
+
+#include <public/arch-x86/cpuid.h>
 #include <public/hvm/ioreq.h>
-#include <public/version.h>
 #include <public/memory.h>
+#include <public/sched.h>
+#include <public/version.h>
 #include <public/vm_event.h>
-#include <public/arch-x86/cpuid.h>
 
 #include <compat/hvm/hvm_op.h>
 
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 57520ac3ec2d..a807cab305aa 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -18,7 +18,6 @@
 #include <asm/cpufeature.h>
 #include <asm/current.h>
 #include <asm/debugreg.h>
-#include <asm/idt.h>
 #include <asm/gdbsx.h>
 #include <asm/hvm/emulate.h>
 #include <asm/hvm/hvm.h>
@@ -29,13 +28,14 @@
 #include <asm/hvm/svm/svm.h>
 #include <asm/hvm/svm/svmdebug.h>
 #include <asm/hvm/svm/vmcb.h>
-#include <asm/iocap.h>
 #include <asm/i387.h>
+#include <asm/idt.h>
+#include <asm/iocap.h>
 #include <asm/monitor.h>
 #include <asm/msr.h>
+#include <asm/p2m.h>
 #include <asm/paging.h>
 #include <asm/processor.h>
-#include <asm/p2m.h>
 #include <asm/x86_emulate.h>
 #include <asm/xenoprof.h>
 
diff --git a/xen/arch/x86/hvm/svm/vmcb.c b/xen/arch/x86/hvm/svm/vmcb.c
index 839d3ff91b5a..e4c797608f25 100644
--- a/xen/arch/x86/hvm/svm/vmcb.c
+++ b/xen/arch/x86/hvm/svm/vmcb.c
@@ -14,11 +14,11 @@
 #include <xen/sched.h>
 #include <xen/softirq.h>
 
+#include <asm/hvm/svm/svm.h>
+#include <asm/hvm/svm/svmdebug.h>
 #include <asm/hvm/svm/vmcb.h>
 #include <asm/msr-index.h>
 #include <asm/p2m.h>
-#include <asm/hvm/svm/svm.h>
-#include <asm/hvm/svm/svmdebug.h>
 #include <asm/spec_ctrl.h>
 
 struct vmcb_struct *alloc_vmcb(void)
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index 6341fa20457c..c6bf435b744a 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -4,51 +4,53 @@
  * Copyright (c) 2004, Intel Corporation.
  */
 
+#include <xen/domain_page.h>
 #include <xen/guest_access.h>
+#include <xen/hypercall.h>
 #include <xen/init.h>
+#include <xen/irq.h>
 #include <xen/lib.h>
 #include <xen/param.h>
-#include <xen/trace.h>
+#include <xen/perfc.h>
 #include <xen/sched.h>
-#include <xen/irq.h>
 #include <xen/softirq.h>
-#include <xen/domain_page.h>
-#include <xen/hypercall.h>
-#include <xen/perfc.h>
-#include <asm/current.h>
-#include <asm/io.h>
-#include <asm/iocap.h>
-#include <asm/regs.h>
+#include <xen/trace.h>
+
+#include <asm/altp2m.h>
+#include <asm/apic.h>
 #include <asm/cpufeature.h>
-#include <asm/processor.h>
+#include <asm/current.h>
 #include <asm/debugreg.h>
-#include <asm/msr.h>
-#include <asm/p2m.h>
-#include <asm/mem_sharing.h>
+#include <asm/event.h>
+#include <asm/gdbsx.h>
 #include <asm/hvm/emulate.h>
 #include <asm/hvm/hvm.h>
+#include <asm/hvm/monitor.h>
+#include <asm/hvm/nestedhvm.h>
 #include <asm/hvm/support.h>
-#include <asm/hvm/vmx/vmx.h>
-#include <asm/hvm/vmx/vmcs.h>
-#include <public/sched.h>
-#include <public/hvm/ioreq.h>
 #include <asm/hvm/vlapic.h>
-#include <asm/x86_emulate.h>
+#include <asm/hvm/vmx/vmcs.h>
+#include <asm/hvm/vmx/vmx.h>
 #include <asm/hvm/vpt.h>
-#include <public/hvm/save.h>
-#include <asm/hvm/monitor.h>
-#include <asm/xenoprof.h>
-#include <asm/gdbsx.h>
-#include <asm/apic.h>
-#include <asm/hvm/nestedhvm.h>
-#include <asm/altp2m.h>
-#include <asm/event.h>
+#include <asm/io.h>
+#include <asm/iocap.h>
 #include <asm/mce.h>
+#include <asm/mem_sharing.h>
 #include <asm/monitor.h>
+#include <asm/msr.h>
+#include <asm/p2m.h>
+#include <asm/processor.h>
 #include <asm/prot-key.h>
+#include <asm/regs.h>
 #include <asm/spec_ctrl.h>
 #include <asm/stubs.h>
+#include <asm/x86_emulate.h>
+#include <asm/xenoprof.h>
+
 #include <public/arch-x86/cpuid.h>
+#include <public/hvm/ioreq.h>
+#include <public/hvm/save.h>
+#include <public/sched.h>
 
 static bool __initdata opt_force_ept;
 boolean_param("force-ept", opt_force_ept);
diff --git a/xen/arch/x86/hvm/vmx/vvmx.c b/xen/arch/x86/hvm/vmx/vvmx.c
index 2432af58e0e0..95d3c2ee7b79 100644
--- a/xen/arch/x86/hvm/vmx/vvmx.c
+++ b/xen/arch/x86/hvm/vmx/vvmx.c
@@ -10,12 +10,12 @@
 
 #include <xen/ioreq.h>
 
-#include <asm/mtrr.h>
-#include <asm/p2m.h>
+#include <asm/hvm/nestedhvm.h>
 #include <asm/hvm/support.h>
 #include <asm/hvm/vmx/vmx.h>
 #include <asm/hvm/vmx/vvmx.h>
-#include <asm/hvm/nestedhvm.h>
+#include <asm/mtrr.h>
+#include <asm/p2m.h>
 
 static DEFINE_PER_CPU(u64 *, vvmcs_buf);
 
diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/asm/hvm/hvm.h
index 18e40910ff71..228f47dbde8b 100644
--- a/xen/arch/x86/include/asm/hvm/hvm.h
+++ b/xen/arch/x86/include/asm/hvm/hvm.h
@@ -14,8 +14,8 @@
 
 #include <asm/asm_defns.h>
 #include <asm/current.h>
-#include <asm/x86_emulate.h>
 #include <asm/hvm/asid.h>
+#include <asm/x86_emulate.h>
 
 struct pirq; /* needed by pi_update_irte */
 
diff --git a/xen/arch/x86/tboot.c b/xen/arch/x86/tboot.c
index d5db60d335e3..319116857d4a 100644
--- a/xen/arch/x86/tboot.c
+++ b/xen/arch/x86/tboot.c
@@ -1,19 +1,20 @@
+#include <xen/acpi.h>
+#include <xen/domain_page.h>
 #include <xen/efi.h>
 #include <xen/init.h>
-#include <xen/types.h>
+#include <xen/iommu.h>
 #include <xen/lib.h>
 #include <xen/param.h>
-#include <xen/sched.h>
-#include <xen/domain_page.h>
-#include <xen/iommu.h>
-#include <xen/acpi.h>
 #include <xen/pfn.h>
+#include <xen/sched.h>
+#include <xen/types.h>
+
+#include <asm/e820.h>
 #include <asm/fixmap.h>
 #include <asm/page.h>
 #include <asm/processor.h>
-#include <asm/e820.h>
-#include <asm/tboot.h>
 #include <asm/setup.h>
+#include <asm/tboot.h>
 #include <asm/trampoline.h>
 
 #include <crypto/vmac.h>
diff --git a/xen/arch/x86/xstate.c b/xen/arch/x86/xstate.c
index e8e218caed36..f6d677eb121d 100644
--- a/xen/arch/x86/xstate.c
+++ b/xen/arch/x86/xstate.c
@@ -10,12 +10,12 @@
 #include <xen/sched.h>
 #include <xen/xvmalloc.h>
 
+#include <asm/asm_defns.h>
 #include <asm/cpu-policy.h>
 #include <asm/current.h>
-#include <asm/processor.h>
 #include <asm/i387.h>
+#include <asm/processor.h>
 #include <asm/xstate.h>
-#include <asm/asm_defns.h>
 
 /*
  * Maximum size (in byte) of the XSAVE/XRSTOR save area required by all
diff --git a/xen/drivers/acpi/apei/apei-base.c b/xen/drivers/acpi/apei/apei-base.c
index 053a92c307bb..4fe99573a220 100644
--- a/xen/drivers/acpi/apei/apei-base.c
+++ b/xen/drivers/acpi/apei/apei-base.c
@@ -30,15 +30,17 @@
  * 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 <xen/kernel.h>
-#include <xen/errno.h>
+
+#include <xen/cper.h>
 #include <xen/delay.h>
-#include <xen/string.h>
-#include <xen/types.h>
-#include <xen/spinlock.h>
+#include <xen/errno.h>
 #include <xen/init.h>
-#include <xen/cper.h>
+#include <xen/kernel.h>
+#include <xen/spinlock.h>
+#include <xen/string.h>
+
 #include <asm/io.h>
+
 #include <acpi/acpi.h>
 #include <acpi/apei.h>
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 20:41:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 20:41:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083886.1443334 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1un1Es-0005aR-DB; Fri, 15 Aug 2025 20:41:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083886.1443334; Fri, 15 Aug 2025 20:41: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 1un1Es-0005ZF-7v; Fri, 15 Aug 2025 20:41:26 +0000
Received: by outflank-mailman (input) for mailman id 1083886;
 Fri, 15 Aug 2025 20:41:25 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oFbR=23=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1un1Er-0005E7-5P
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 20:41:25 +0000
Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com
 [2a00:1450:4864:20::435])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 35c20d56-7a18-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 22:41:25 +0200 (CEST)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-3b9e7437908so2303324f8f.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 13:41:24 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3bb5d089e07sm3153924f8f.0.2025.08.15.13.41.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Aug 2025 13:41: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>
X-Inumbo-ID: 35c20d56-7a18-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755290484; x=1755895284; 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=mwxm9dtR34acjMnkNswLFgfroPyNnvaszlLLiRIs7JA=;
        b=Fg3xKeNl+tdHAlFxJ+jHdJl0ooyutdeRvhCRLEPoxNPp3TGOK7xvF4VX1zJ0hINaQu
         6Xf1lZrUvpYZ6J5gRNPwx+efYMI80xGR+8pWhsmYJ+iRtYewW/O2TXlLhMFGY+LrpOc8
         EiTGVc2+o5O/hqxUnWb31tzydvyY8c+3el7OY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755290484; x=1755895284;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=mwxm9dtR34acjMnkNswLFgfroPyNnvaszlLLiRIs7JA=;
        b=NDUmRwJkzRyt+H8p+emvsOj3rN7Z2XRT7EaZpuK6zTxfTZ9DE3A8zLT3kiczlbQqeM
         V57r+5q7Zt5hkTHkfLQYvWVzvzLEidbbF/6UZS9RWOMrzHhjaiTGKexLY0uPa5c8UC7F
         2wJCNCt+XOplgqvBxJqZ83Ngaz3wrmEd0JLRSaowOzlvsCoxOsazfkGPMdZIKsQK4x7R
         kf7VRvgSwqHMzn8NiKPqLDpnj2MEeGpd79ovWBv4QzwCwYMmYRzOLDb69KhNhO6Dhwct
         kUnRoyG6OtMyw4wkxjZa9ePyidXcTxNmUJZYE7ZqhYXqvf6Gy9DqlHiI7ReW9KrDxar4
         ID8g==
X-Gm-Message-State: AOJu0Yz94UNZq3BZg/1iUs0NvtWRhq4KsPX0wvUbtYS6YdcdX/VDPCXP
	NGEEp6wcMj+q+7Bb+GfL0P63dw3LWUkf10u4OdGYaAtzvAfVFzWuEQ0ypZs673VEV380htsX07Z
	A3fcZ
X-Gm-Gg: ASbGnct6YmldGqQ+EfA1e8MvKy2hsmnY5TY5ndQ4CNn56WMLBF7zkzGmZgY7KO9V96M
	kihZohmpdHZr17wv9+On+KtQflPf20caje53PBHWFKwpy0BhD+JhhEoyE5ryupzr08udAv2v8FJ
	gsQl6PtRdQIvmE5skbL7TAi2kLtBcgHpVlje5yxrvdsjQbRFH6LQdIhITzL76AwMh05lQcAqcPZ
	GE4LbB7wwq+p9IQ0t4TrGFm0jFECYhiRH/SrHWDcGlEDCU9TSlkxzc1JB52m1X+RpYA6gAGws6l
	j7xGQZr/wSxRw3elASdYH91wyLkSiVSYiEUw4aQt68iGPF1aFst8pppIGeFKCjIgR9iP0UIycat
	uVStKg4zyAsVke1Qt5rsQWOQqoJ/y5tfHYnFNRttLOMtacqiHsYuIH4O8gcrtNxM05Bl8C94q9G
	O7
X-Google-Smtp-Source: AGHT+IHIU9YezxkPwbQPSJ2CWP0/AaAL4ACtTJxCWrUwlc9hoG1CWVqPiJe5VELgZbY9axUZezHXXg==
X-Received: by 2002:a05:6000:400b:b0:3b7:9b58:5b53 with SMTP id ffacd0b85a97d-3bc6a280040mr330177f8f.45.1755290483766;
        Fri, 15 Aug 2025 13:41:23 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 04/16] x86/msr: Split out guest-msr.h
Date: Fri, 15 Aug 2025 21:41:05 +0100
Message-Id: <20250815204117.3312742-5-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

struct vcpu_msrs has a very different purpose to everything else in msr.h

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/cpu/common.c            |   1 +
 xen/arch/x86/cpuid.c                 |   1 +
 xen/arch/x86/debug.c                 |   1 +
 xen/arch/x86/domain.c                |   1 +
 xen/arch/x86/domctl.c                |   1 +
 xen/arch/x86/hvm/hvm.c               |   1 +
 xen/arch/x86/hvm/svm/svm.c           |   1 +
 xen/arch/x86/hvm/svm/vmcb.c          |   1 +
 xen/arch/x86/hvm/vmx/vmx.c           |   1 +
 xen/arch/x86/hvm/vmx/vvmx.c          |   1 +
 xen/arch/x86/include/asm/guest-msr.h | 155 +++++++++++++++++++++++++++
 xen/arch/x86/include/asm/msr.h       | 145 -------------------------
 xen/arch/x86/msr.c                   |   1 +
 xen/arch/x86/pv/emulate.h            |   1 +
 xen/arch/x86/x86_64/asm-offsets.c    |   1 +
 15 files changed, 168 insertions(+), 145 deletions(-)
 create mode 100644 xen/arch/x86/include/asm/guest-msr.h

diff --git a/xen/arch/x86/cpu/common.c b/xen/arch/x86/cpu/common.c
index 60f3c9a29e67..530b9eb39abc 100644
--- a/xen/arch/x86/cpu/common.c
+++ b/xen/arch/x86/cpu/common.c
@@ -9,6 +9,7 @@
 #include <asm/cpu-policy.h>
 #include <asm/current.h>
 #include <asm/debugreg.h>
+#include <asm/guest-msr.h>
 #include <asm/idt.h>
 #include <asm/io.h>
 #include <asm/match-cpu.h>
diff --git a/xen/arch/x86/cpuid.c b/xen/arch/x86/cpuid.c
index 8dc68945f7ae..b63a82dd3815 100644
--- a/xen/arch/x86/cpuid.c
+++ b/xen/arch/x86/cpuid.c
@@ -7,6 +7,7 @@
 
 #include <asm/cpu-policy.h>
 #include <asm/cpuid.h>
+#include <asm/guest-msr.h>
 #include <asm/hvm/viridian.h>
 #include <asm/xstate.h>
 
diff --git a/xen/arch/x86/debug.c b/xen/arch/x86/debug.c
index 71755dea6ff2..11b0a7e5475a 100644
--- a/xen/arch/x86/debug.c
+++ b/xen/arch/x86/debug.c
@@ -9,6 +9,7 @@
 
 #include <asm/current.h>
 #include <asm/debugreg.h>
+#include <asm/guest-msr.h>
 
 /*
  * Merge new bits into dr6.  'new' is always given in positive polarity,
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 6e3fd35c934e..1bbe53e36b59 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -44,6 +44,7 @@
 #include <asm/cpuidle.h>
 #include <asm/debugreg.h>
 #include <asm/desc.h>
+#include <asm/guest-msr.h>
 #include <asm/hvm/hvm.h>
 #include <asm/hvm/nestedhvm.h>
 #include <asm/hvm/svm/svm.h>
diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c
index d7781b7dc5fd..6153e3c07e2d 100644
--- a/xen/arch/x86/domctl.c
+++ b/xen/arch/x86/domctl.c
@@ -25,6 +25,7 @@
 #include <asm/acpi.h>
 #include <asm/cpu-policy.h>
 #include <asm/gdbsx.h>
+#include <asm/guest-msr.h>
 #include <asm/hvm/emulate.h>
 #include <asm/hvm/hvm.h>
 #include <asm/io_apic.h>
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 6d2b937b62ba..bd64faf2071c 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -38,6 +38,7 @@
 #include <asm/current.h>
 #include <asm/debugreg.h>
 #include <asm/e820.h>
+#include <asm/guest-msr.h>
 #include <asm/hap.h>
 #include <asm/hvm/cacheattr.h>
 #include <asm/hvm/emulate.h>
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index a807cab305aa..4fc6206edac0 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -19,6 +19,7 @@
 #include <asm/current.h>
 #include <asm/debugreg.h>
 #include <asm/gdbsx.h>
+#include <asm/guest-msr.h>
 #include <asm/hvm/emulate.h>
 #include <asm/hvm/hvm.h>
 #include <asm/hvm/io.h>
diff --git a/xen/arch/x86/hvm/svm/vmcb.c b/xen/arch/x86/hvm/svm/vmcb.c
index e4c797608f25..334950709f69 100644
--- a/xen/arch/x86/hvm/svm/vmcb.c
+++ b/xen/arch/x86/hvm/svm/vmcb.c
@@ -14,6 +14,7 @@
 #include <xen/sched.h>
 #include <xen/softirq.h>
 
+#include <asm/guest-msr.h>
 #include <asm/hvm/svm/svm.h>
 #include <asm/hvm/svm/svmdebug.h>
 #include <asm/hvm/svm/vmcb.h>
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index c6bf435b744a..4664a014bc8a 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -23,6 +23,7 @@
 #include <asm/debugreg.h>
 #include <asm/event.h>
 #include <asm/gdbsx.h>
+#include <asm/guest-msr.h>
 #include <asm/hvm/emulate.h>
 #include <asm/hvm/hvm.h>
 #include <asm/hvm/monitor.h>
diff --git a/xen/arch/x86/hvm/vmx/vvmx.c b/xen/arch/x86/hvm/vmx/vvmx.c
index 95d3c2ee7b79..6201665d9f4c 100644
--- a/xen/arch/x86/hvm/vmx/vvmx.c
+++ b/xen/arch/x86/hvm/vmx/vvmx.c
@@ -10,6 +10,7 @@
 
 #include <xen/ioreq.h>
 
+#include <asm/guest-msr.h>
 #include <asm/hvm/nestedhvm.h>
 #include <asm/hvm/support.h>
 #include <asm/hvm/vmx/vmx.h>
diff --git a/xen/arch/x86/include/asm/guest-msr.h b/xen/arch/x86/include/asm/guest-msr.h
new file mode 100644
index 000000000000..5f0cb0a93995
--- /dev/null
+++ b/xen/arch/x86/include/asm/guest-msr.h
@@ -0,0 +1,155 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef X86_GUEST_MSR_H
+#define X86_GUEST_MSR_H
+
+#include <xen/types.h>
+
+/* Container object for per-vCPU MSRs */
+struct vcpu_msrs
+{
+    /*
+     * 0x00000048 - MSR_SPEC_CTRL
+     * 0xc001011f - MSR_VIRT_SPEC_CTRL (if X86_FEATURE_AMD_SSBD)
+     *
+     * For PV guests, this holds the guest kernel value.  It is accessed on
+     * every entry/exit path.
+     *
+     * For VT-x guests, one of two situations exist:
+     *
+     * - If hardware supports virtualized MSR_SPEC_CTRL, it is active by
+     *   default and the guest value lives in the VMCS.
+     * - Otherwise, the guest value is held in the MSR load/save list.
+     *
+     * For SVM, the guest value lives in the VMCB, and hardware saves/restores
+     * the host value automatically.  However, guests run with the OR of the
+     * host and guest value, which allows Xen to set protections behind the
+     * guest's back.
+     *
+     * We must clear/restore Xen's value before/after VMRUN to avoid unduly
+     * influencing the guest.  In order to support "behind the guest's back"
+     * protections, we load this value (commonly 0) before VMRUN.
+     *
+     * Once of such "behind the guest's back" usages is setting SPEC_CTRL.SSBD
+     * if the guest sets VIRT_SPEC_CTRL.SSBD.
+     */
+    struct {
+        uint32_t raw;
+    } spec_ctrl;
+
+    /*
+     * 0x00000140 - MSR_INTEL_MISC_FEATURES_ENABLES
+     *
+     * This MSR is non-architectural, but for simplicy we allow it to be read
+     * unconditionally.  The CPUID Faulting bit is the only writeable bit, and
+     * only if enumerated by MSR_PLATFORM_INFO.
+     */
+    union {
+        uint32_t raw;
+        struct {
+            bool cpuid_faulting:1;
+        };
+    } misc_features_enables;
+
+    /*
+     * 0x00000560 ... 57x - MSR_RTIT_*
+     *
+     * "Real Time Instruction Trace", now called Processor Trace.
+     *
+     * These MSRs are not exposed to guests.  They are controlled by Xen
+     * behind the scenes, when vmtrace is enabled for the domain.
+     *
+     * MSR_RTIT_OUTPUT_BASE not stored here.  It is fixed per vcpu, and
+     * derived from v->vmtrace.buf.
+     */
+    struct {
+        /*
+         * Placed in the MSR load/save lists.  Only modified by hypercall in
+         * the common case.
+         */
+        uint64_t ctl;
+
+        /*
+         * Updated by hardware in non-root mode.  Synchronised here on vcpu
+         * context switch.
+         */
+        uint64_t status;
+        union {
+            uint64_t output_mask;
+            struct {
+                uint32_t output_limit;
+                uint32_t output_offset;
+            };
+        };
+    } rtit;
+
+    /*
+     * 0x000006e1 - MSR_PKRS - Protection Key Supervisor.
+     *
+     * Exposed R/W to guests.  Xen doesn't use PKS yet, so only context
+     * switched per vcpu.  When in current context, live value is in hardware,
+     * and this value is stale.
+     */
+    uint32_t pkrs;
+
+    /* 0x00000da0 - MSR_IA32_XSS */
+    struct {
+        uint64_t raw;
+    } xss;
+
+    /*
+     * 0xc0000103 - MSR_TSC_AUX
+     *
+     * Value is guest chosen, and always loaded in vcpu context.  Guests have
+     * no direct MSR access, and the value is accessible to userspace with the
+     * RDTSCP and RDPID instructions.
+     */
+    uint32_t tsc_aux;
+
+    /*
+     * 0xc001011f - MSR_VIRT_SPEC_CTRL (if !X86_FEATURE_AMD_SSBD)
+     *
+     * AMD only, used on Zen1 and older hardware (pre-AMD_SSBD).  Holds the
+     * the guests value.
+     *
+     * In the default case, Xen doesn't protect itself from SSB, and guests
+     * are expected to use VIRT_SPEC_CTRL.SSBD=1 sparingly.  Xen therefore
+     * runs in the guest kernel's choice of SSBD.
+     *
+     * However, if the global enable `spec-ctrl=ssbd` is selected, hardware is
+     * always configured with SSBD=1 and the guest's setting is never loaded
+     * into hardware.
+     */
+    struct {
+        uint32_t raw;
+    } virt_spec_ctrl;
+
+    /*
+     * 0xc00110{27,19-1b} MSR_AMD64_DR{0-3}_ADDRESS_MASK
+     *
+     * Loaded into hardware for guests which have active %dr7 settings.
+     * Furthermore, HVM guests are offered direct access, meaning that the
+     * values here may be stale in current context.
+     */
+    uint32_t dr_mask[4];
+};
+
+struct vcpu;
+struct cpu_policy;
+
+int init_vcpu_msr_policy(struct vcpu *v);
+
+/*
+ * Below functions can return X86EMUL_UNHANDLEABLE which means that MSR is
+ * not (yet) handled by it and must be processed by legacy handlers. Such
+ * behaviour is needed for transition period until all rd/wrmsr are handled
+ * by the new MSR infrastructure.
+ *
+ * These functions are also used by the migration logic, so need to cope with
+ * being used outside of v's context.
+ */
+int guest_rdmsr(struct vcpu *v, uint32_t msr, uint64_t *val);
+int guest_wrmsr(struct vcpu *v, uint32_t msr, uint64_t val);
+
+uint64_t msr_spec_ctrl_valid_bits(const struct cpu_policy *cp);
+
+#endif /* X86_GUEST_MSR_H */
diff --git a/xen/arch/x86/include/asm/msr.h b/xen/arch/x86/include/asm/msr.h
index 6a97b41bae07..787517802d9d 100644
--- a/xen/arch/x86/include/asm/msr.h
+++ b/xen/arch/x86/include/asm/msr.h
@@ -299,149 +299,4 @@ static inline void wrmsr_tsc_aux(uint32_t val)
     }
 }
 
-uint64_t msr_spec_ctrl_valid_bits(const struct cpu_policy *cp);
-
-/* Container object for per-vCPU MSRs */
-struct vcpu_msrs
-{
-    /*
-     * 0x00000048 - MSR_SPEC_CTRL
-     * 0xc001011f - MSR_VIRT_SPEC_CTRL (if X86_FEATURE_AMD_SSBD)
-     *
-     * For PV guests, this holds the guest kernel value.  It is accessed on
-     * every entry/exit path.
-     *
-     * For VT-x guests, one of two situations exist:
-     *
-     * - If hardware supports virtualized MSR_SPEC_CTRL, it is active by
-     *   default and the guest value lives in the VMCS.
-     * - Otherwise, the guest value is held in the MSR load/save list.
-     *
-     * For SVM, the guest value lives in the VMCB, and hardware saves/restores
-     * the host value automatically.  However, guests run with the OR of the
-     * host and guest value, which allows Xen to set protections behind the
-     * guest's back.
-     *
-     * We must clear/restore Xen's value before/after VMRUN to avoid unduly
-     * influencing the guest.  In order to support "behind the guest's back"
-     * protections, we load this value (commonly 0) before VMRUN.
-     *
-     * Once of such "behind the guest's back" usages is setting SPEC_CTRL.SSBD
-     * if the guest sets VIRT_SPEC_CTRL.SSBD.
-     */
-    struct {
-        uint32_t raw;
-    } spec_ctrl;
-
-    /*
-     * 0x00000140 - MSR_INTEL_MISC_FEATURES_ENABLES
-     *
-     * This MSR is non-architectural, but for simplicy we allow it to be read
-     * unconditionally.  The CPUID Faulting bit is the only writeable bit, and
-     * only if enumerated by MSR_PLATFORM_INFO.
-     */
-    union {
-        uint32_t raw;
-        struct {
-            bool cpuid_faulting:1;
-        };
-    } misc_features_enables;
-
-    /*
-     * 0x00000560 ... 57x - MSR_RTIT_*
-     *
-     * "Real Time Instruction Trace", now called Processor Trace.
-     *
-     * These MSRs are not exposed to guests.  They are controlled by Xen
-     * behind the scenes, when vmtrace is enabled for the domain.
-     *
-     * MSR_RTIT_OUTPUT_BASE not stored here.  It is fixed per vcpu, and
-     * derived from v->vmtrace.buf.
-     */
-    struct {
-        /*
-         * Placed in the MSR load/save lists.  Only modified by hypercall in
-         * the common case.
-         */
-        uint64_t ctl;
-
-        /*
-         * Updated by hardware in non-root mode.  Synchronised here on vcpu
-         * context switch.
-         */
-        uint64_t status;
-        union {
-            uint64_t output_mask;
-            struct {
-                uint32_t output_limit;
-                uint32_t output_offset;
-            };
-        };
-    } rtit;
-
-    /*
-     * 0x000006e1 - MSR_PKRS - Protection Key Supervisor.
-     *
-     * Exposed R/W to guests.  Xen doesn't use PKS yet, so only context
-     * switched per vcpu.  When in current context, live value is in hardware,
-     * and this value is stale.
-     */
-    uint32_t pkrs;
-
-    /* 0x00000da0 - MSR_IA32_XSS */
-    struct {
-        uint64_t raw;
-    } xss;
-
-    /*
-     * 0xc0000103 - MSR_TSC_AUX
-     *
-     * Value is guest chosen, and always loaded in vcpu context.  Guests have
-     * no direct MSR access, and the value is accessible to userspace with the
-     * RDTSCP and RDPID instructions.
-     */
-    uint32_t tsc_aux;
-
-    /*
-     * 0xc001011f - MSR_VIRT_SPEC_CTRL (if !X86_FEATURE_AMD_SSBD)
-     *
-     * AMD only, used on Zen1 and older hardware (pre-AMD_SSBD).  Holds the
-     * the guests value.
-     *
-     * In the default case, Xen doesn't protect itself from SSB, and guests
-     * are expected to use VIRT_SPEC_CTRL.SSBD=1 sparingly.  Xen therefore
-     * runs in the guest kernel's choice of SSBD.
-     *
-     * However, if the global enable `spec-ctrl=ssbd` is selected, hardware is
-     * always configured with SSBD=1 and the guest's setting is never loaded
-     * into hardware.
-     */
-    struct {
-        uint32_t raw;
-    } virt_spec_ctrl;
-
-    /*
-     * 0xc00110{27,19-1b} MSR_AMD64_DR{0-3}_ADDRESS_MASK
-     *
-     * Loaded into hardware for guests which have active %dr7 settings.
-     * Furthermore, HVM guests are offered direct access, meaning that the
-     * values here may be stale in current context.
-     */
-    uint32_t dr_mask[4];
-};
-
-int init_vcpu_msr_policy(struct vcpu *v);
-
-/*
- * Below functions can return X86EMUL_UNHANDLEABLE which means that MSR is
- * not (yet) handled by it and must be processed by legacy handlers. Such
- * behaviour is needed for transition period until all rd/wrmsr are handled
- * by the new MSR infrastructure.
- *
- * These functions are also used by the migration logic, so need to cope with
- * being used outside of v's context.
- */
-int guest_rdmsr(struct vcpu *v, uint32_t msr, uint64_t *val);
-int guest_wrmsr(struct vcpu *v, uint32_t msr, uint64_t val);
-
 #endif /* __ASM_MSR_H */
diff --git a/xen/arch/x86/msr.c b/xen/arch/x86/msr.c
index b301143ed2d4..ad75a2e10855 100644
--- a/xen/arch/x86/msr.c
+++ b/xen/arch/x86/msr.c
@@ -15,6 +15,7 @@
 #include <asm/amd.h>
 #include <asm/cpu-policy.h>
 #include <asm/debugreg.h>
+#include <asm/guest-msr.h>
 #include <asm/hvm/nestedhvm.h>
 #include <asm/hvm/viridian.h>
 #include <asm/msr.h>
diff --git a/xen/arch/x86/pv/emulate.h b/xen/arch/x86/pv/emulate.h
index 49a4d34832df..c74e45e50c08 100644
--- a/xen/arch/x86/pv/emulate.h
+++ b/xen/arch/x86/pv/emulate.h
@@ -3,6 +3,7 @@
 
 #include <xen/sched.h>
 
+#include <asm/guest-msr.h>
 #include <asm/processor.h>
 #include <asm/x86_emulate.h>
 
diff --git a/xen/arch/x86/x86_64/asm-offsets.c b/xen/arch/x86/x86_64/asm-offsets.c
index 2258b4ce1b95..9d4536402661 100644
--- a/xen/arch/x86/x86_64/asm-offsets.c
+++ b/xen/arch/x86/x86_64/asm-offsets.c
@@ -15,6 +15,7 @@
 #include <asm/hardirq.h>
 #include <xen/multiboot.h>
 #include <xen/multiboot2.h>
+#include <asm/guest-msr.h>
 
 #ifdef CONFIG_VIDEO
 # include "../boot/video.h"
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 20:41:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 20:41:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083887.1443343 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1un1Es-0005gG-U7; Fri, 15 Aug 2025 20:41:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083887.1443343; Fri, 15 Aug 2025 20:41: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 1un1Es-0005db-JB; Fri, 15 Aug 2025 20:41:26 +0000
Received: by outflank-mailman (input) for mailman id 1083887;
 Fri, 15 Aug 2025 20:41:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oFbR=23=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1un1Er-0005Rl-C7
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 20:41:25 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3418a8be-7a18-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 22:41:22 +0200 (CEST)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-45a1b065d59so12105795e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 13:41:22 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3bb5d089e07sm3153924f8f.0.2025.08.15.13.41.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Aug 2025 13:41: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>
X-Inumbo-ID: 3418a8be-7a18-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755290481; x=1755895281; 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=Mj6TEvAdxVzR/7U8GT5TshFxyIHuvBrftHDmoFGVHrQ=;
        b=Yzzvq7jErhYOM6/U/V42pMqV+MFfi/GY9gPhaxcW/FQWe6Ik+/xGhay7Fr+S8FkWs3
         6knTBzrTVytJ1MIEDJ6jthMSgkN4pf5fFimJnQ637+GzgXgTiw5wxAaJO8r4CEujr7Fh
         sW6YdaB10hAuQOxw8NvWFmj98ADgUn7WiQr/s=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755290481; x=1755895281;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=Mj6TEvAdxVzR/7U8GT5TshFxyIHuvBrftHDmoFGVHrQ=;
        b=lRvyLTVsN2AYHCdQNQAJ5WhjU36ASzXzpKP7dRcuHpYq/GqW7CA4GuOljNl8zqP+LM
         WzNgLoU0Eft5IlI2utTxGXK5y/JLIOk02henkh1plM7sAKeVoJQ8+qsT0QJQnK4C5qI5
         fqzltTRnIeYSy1Ibv1VCpwNILdBg6lgIcjhNVclzjCPOeY1CrRh7fSVFyDC2Bvx3jW/w
         goRrHjfg3se6vp1Wo0xjwrJTWTYmxFwJbZJ1IDDXcUnNwVjiD8TJBEHnAmEVmu8d4mal
         qtuBlAISIhwpj6uio0Ml7TQIzfi8r5hjeequ868PNx4lT9ZQSOP5rsPJqnk/FDpmAsJ9
         LARQ==
X-Gm-Message-State: AOJu0YzQAxnUzbfyjxSv296AIvAhiPnLBKgEWpRyutN8bCuDqXvm7j3K
	qagV/UsVjQ/YXS8Yse8DR+dXqF9ZRUqyeq6OIH6Gwc0i+K60HZQrA89qveFE5/J/+BuwsPGEzfr
	BX/gg
X-Gm-Gg: ASbGncungSZqbBGyhcKKTro6LpmKe7M4/ol4dIgwooQwWa0aZSYRj7M0qLN06YVR9ez
	tzf8uu4RUsvBYWFg4PzEoNJpICordteSuYwGxBBOd6zvGRp21aLHtZ2/YdOjmac6C44qR2GWHjC
	a3KUhpMHOH2NsRbBs0UfZovFb38onMfjcuron5CMa5dc9abdYzu4A8kqGvH9SL5AHD6aGOd+7QB
	nJGR3nW0ZFM2Lv3+w73gVWGlZiUA3GNURSoTEWZrbOrfPqoWpK+dKF0cHvQacvaRZgFDED7wcdh
	pAQcVEeHQI4pA2J0ON3tUhO59OM7A7AVS7dxhHC0hPUg1US8AWQD4TAuIqs8R+/Etc4mAt4x9Up
	sIvM0dshB+ANAso+We4ZYXBuO1ACwXd4eXviwGbVE9wC9ZbMWNprxxWbccOQfey6Ws51FBRrUZg
	mh
X-Google-Smtp-Source: AGHT+IGWRY+BlPaw6b1OLFiLe1oOrOesRfoJZceGFBwdQDl4sSHD4EVGyhAOnHX1aSuriWfCSLy/GQ==
X-Received: by 2002:a05:600c:8707:b0:453:5c30:a1fd with SMTP id 5b1f17b1804b1-45a25283959mr11356635e9.8.1755290481074;
        Fri, 15 Aug 2025 13:41:21 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 01/16] x86/msr: Implement rdmsr_safe() in C
Date: Fri, 15 Aug 2025 21:41:02 +0100
Message-Id: <20250815204117.3312742-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

... in preparation to be able to use asm goto.

Notably this mean that the value parameter must be taken by pointer rather
than by value.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/acpi/cpufreq/hwp.c       | 14 +++++------
 xen/arch/x86/apic.c                   |  2 +-
 xen/arch/x86/cpu/amd.c                | 25 +++++++++----------
 xen/arch/x86/cpu/common.c             |  6 ++---
 xen/arch/x86/cpu/intel.c              |  8 +++---
 xen/arch/x86/cpu/mcheck/mce_amd.c     |  2 +-
 xen/arch/x86/cpu/mcheck/mce_intel.c   |  6 ++---
 xen/arch/x86/hvm/ioreq.c              |  2 +-
 xen/arch/x86/hvm/svm/svm.c            | 16 ++++++------
 xen/arch/x86/hvm/vmx/vmx.c            |  4 +--
 xen/arch/x86/include/asm/msr.h        | 35 ++++++++++++++++-----------
 xen/arch/x86/msr.c                    |  8 +++---
 xen/arch/x86/platform_hypercall.c     |  2 +-
 xen/arch/x86/pv/emul-priv-op.c        | 18 +++++++-------
 xen/arch/x86/spec_ctrl.c              |  2 +-
 xen/arch/x86/x86_64/mmconfig-shared.c |  2 +-
 xen/drivers/passthrough/vtd/iommu.c   |  2 +-
 17 files changed, 80 insertions(+), 74 deletions(-)

diff --git a/xen/arch/x86/acpi/cpufreq/hwp.c b/xen/arch/x86/acpi/cpufreq/hwp.c
index f22b4674dfe9..26dce9aaf89a 100644
--- a/xen/arch/x86/acpi/cpufreq/hwp.c
+++ b/xen/arch/x86/acpi/cpufreq/hwp.c
@@ -245,7 +245,7 @@ static void cf_check hwp_write_request(void *info)
     {
         hwp_verbose("CPU%u: error wrmsr_safe(MSR_HWP_REQUEST, %lx)\n",
                     policy->cpu, hwp_req.raw);
-        rdmsr_safe(MSR_HWP_REQUEST, data->curr_req.raw);
+        rdmsr_safe(MSR_HWP_REQUEST, &data->curr_req.raw);
         data->ret = -EINVAL;
     }
 }
@@ -281,7 +281,7 @@ static bool hdc_set_pkg_hdc_ctl(unsigned int cpu, bool val)
 {
     uint64_t msr;
 
-    if ( rdmsr_safe(MSR_PKG_HDC_CTL, msr) )
+    if ( rdmsr_safe(MSR_PKG_HDC_CTL, &msr) )
     {
         hwp_err(cpu, "rdmsr_safe(MSR_PKG_HDC_CTL)\n");
         return false;
@@ -305,7 +305,7 @@ static bool hdc_set_pm_ctl1(unsigned int cpu, bool val)
 {
     uint64_t msr;
 
-    if ( rdmsr_safe(MSR_PM_CTL1, msr) )
+    if ( rdmsr_safe(MSR_PM_CTL1, &msr) )
     {
         hwp_err(cpu, "rdmsr_safe(MSR_PM_CTL1)\n");
         return false;
@@ -353,7 +353,7 @@ static void cf_check hwp_init_msrs(void *info)
      * Package level MSR, but we don't have a good idea of packages here, so
      * just do it everytime.
      */
-    if ( rdmsr_safe(MSR_PM_ENABLE, val) )
+    if ( rdmsr_safe(MSR_PM_ENABLE, &val) )
     {
         hwp_err(policy->cpu, "rdmsr_safe(MSR_PM_ENABLE)\n");
         data->curr_req.raw = -1;
@@ -375,13 +375,13 @@ static void cf_check hwp_init_msrs(void *info)
         }
     }
 
-    if ( rdmsr_safe(MSR_HWP_CAPABILITIES, data->hwp_caps) )
+    if ( rdmsr_safe(MSR_HWP_CAPABILITIES, &data->hwp_caps) )
     {
         hwp_err(policy->cpu, "rdmsr_safe(MSR_HWP_CAPABILITIES)\n");
         goto error;
     }
 
-    if ( rdmsr_safe(MSR_HWP_REQUEST, data->curr_req.raw) )
+    if ( rdmsr_safe(MSR_HWP_REQUEST, &data->curr_req.raw) )
     {
         hwp_err(policy->cpu, "rdmsr_safe(MSR_HWP_REQUEST)\n");
         goto error;
@@ -481,7 +481,7 @@ static void cf_check hwp_set_misc_turbo(void *info)
 
     data->ret = 0;
 
-    if ( rdmsr_safe(MSR_IA32_MISC_ENABLE, msr) )
+    if ( rdmsr_safe(MSR_IA32_MISC_ENABLE, &msr) )
     {
         hwp_verbose("CPU%u: error rdmsr_safe(MSR_IA32_MISC_ENABLE)\n",
                     policy->cpu);
diff --git a/xen/arch/x86/apic.c b/xen/arch/x86/apic.c
index 0fd8bdba7067..cac5ba39e615 100644
--- a/xen/arch/x86/apic.c
+++ b/xen/arch/x86/apic.c
@@ -764,7 +764,7 @@ static int __init detect_init_APIC (void)
     if (enable_local_apic < 0)
         return -1;
 
-    if ( rdmsr_safe(MSR_APIC_BASE, msr_content) )
+    if ( rdmsr_safe(MSR_APIC_BASE, &msr_content) )
     {
         printk("No local APIC present\n");
         return -1;
diff --git a/xen/arch/x86/cpu/amd.c b/xen/arch/x86/cpu/amd.c
index eb428f284ecb..567b992a9fe2 100644
--- a/xen/arch/x86/cpu/amd.c
+++ b/xen/arch/x86/cpu/amd.c
@@ -496,7 +496,7 @@ static void cf_check disable_c1e(void *unused)
 	 * The MSR does not exist in all FamilyF CPUs (only Rev F and above),
 	 * but we safely catch the #GP in that case.
 	 */
-	if ((rdmsr_safe(MSR_K8_ENABLE_C1E, msr_content) == 0) &&
+	if ((rdmsr_safe(MSR_K8_ENABLE_C1E, &msr_content) == 0) &&
 	    (msr_content & (3ULL << 27)) &&
 	    (wrmsr_safe(MSR_K8_ENABLE_C1E, msr_content & ~(3ULL << 27)) != 0))
 		printk(KERN_ERR "Failed to disable C1E on CPU#%u (%16"PRIx64")\n",
@@ -695,21 +695,21 @@ static void amd_process_freq(const struct cpuinfo_x86 *c,
 
 	lo = 0; /* gcc may not recognize the loop having at least 5 iterations */
 	for (h = c->x86 == 0x10 ? 5 : 8; h--; )
-		if (!rdmsr_safe(0xC0010064 + h, lo) && (lo >> 63))
+		if (!rdmsr_safe(0xC0010064 + h, &lo) && (lo >> 63))
 			break;
 	if (!(lo >> 63))
 		return;
 
 	if (idx && idx < h &&
-	    !rdmsr_safe(0xC0010064 + idx, val) && (val >> 63) &&
-	    !rdmsr_safe(0xC0010064, hi) && (hi >> 63)) {
+	    !rdmsr_safe(0xC0010064 + idx, &val) && (val >> 63) &&
+	    !rdmsr_safe(0xC0010064, &hi) && (hi >> 63)) {
 		if (nom_mhz)
 			*nom_mhz = amd_parse_freq(c->x86, val);
 		if (low_mhz)
 			*low_mhz = amd_parse_freq(c->x86, lo);
 		if (hi_mhz)
 			*hi_mhz = amd_parse_freq(c->x86, hi);
-	} else if (h && !rdmsr_safe(0xC0010064, hi) && (hi >> 63)) {
+	} else if (h && !rdmsr_safe(0xC0010064, &hi) && (hi >> 63)) {
 		if (low_mhz)
 			*low_mhz = amd_parse_freq(c->x86, lo);
 		if (hi_mhz)
@@ -765,7 +765,7 @@ void amd_init_lfence(struct cpuinfo_x86 *c)
 	 * rather than per-thread, so do a full safe read/write/readback cycle
 	 * in the worst case.
 	 */
-	if (rdmsr_safe(MSR_AMD64_DE_CFG, value))
+	if (rdmsr_safe(MSR_AMD64_DE_CFG, &value))
 		/* Unable to read.  Assume the safer default. */
 		__clear_bit(X86_FEATURE_LFENCE_DISPATCH,
 			    c->x86_capability);
@@ -775,7 +775,7 @@ void amd_init_lfence(struct cpuinfo_x86 *c)
 			  c->x86_capability);
 	else if (wrmsr_safe(MSR_AMD64_DE_CFG,
 			    value | AMD64_DE_CFG_LFENCE_SERIALISE) ||
-		 rdmsr_safe(MSR_AMD64_DE_CFG, value) ||
+		 rdmsr_safe(MSR_AMD64_DE_CFG, &value) ||
 		 !(value & AMD64_DE_CFG_LFENCE_SERIALISE))
 		/* Attempt to set failed.  Assume the safer default. */
 		__clear_bit(X86_FEATURE_LFENCE_DISPATCH,
@@ -804,7 +804,7 @@ static bool set_legacy_ssbd(const struct cpuinfo_x86 *c, bool enable)
 	if (bit >= 0) {
 		uint64_t val, mask = 1ull << bit;
 
-		if (rdmsr_safe(MSR_AMD64_LS_CFG, val) ||
+		if (rdmsr_safe(MSR_AMD64_LS_CFG, &val) ||
 		    ({
 			    val &= ~mask;
 			    if (enable)
@@ -962,7 +962,7 @@ void amd_init_spectral_chicken(void)
 	if (cpu_has_hypervisor || !is_zen2_uarch())
 		return;
 
-	if (rdmsr_safe(MSR_AMD64_DE_CFG2, val) == 0 && !(val & chickenbit))
+	if (rdmsr_safe(MSR_AMD64_DE_CFG2, &val) == 0 && !(val & chickenbit))
 		wrmsr_safe(MSR_AMD64_DE_CFG2, val | chickenbit);
 }
 
@@ -1116,8 +1116,7 @@ static void amd_check_bp_cfg(void)
 static void cf_check init_amd(struct cpuinfo_x86 *c)
 {
 	u32 l, h;
-
-	unsigned long long value;
+	uint64_t value;
 
 	/* Disable TLB flush filter by setting HWCR.FFDIS on K8
 	 * bit 6 of msr C001_0015
@@ -1251,7 +1250,7 @@ static void cf_check init_amd(struct cpuinfo_x86 *c)
 	if ((c->x86 == 0x15) &&
 	    (c->x86_model >= 0x10) && (c->x86_model <= 0x1f) &&
 	    !cpu_has(c, X86_FEATURE_TOPOEXT) &&
-	    !rdmsr_safe(MSR_K8_EXT_FEATURE_MASK, value)) {
+	    !rdmsr_safe(MSR_K8_EXT_FEATURE_MASK, &value)) {
 		value |= 1ULL << 54;
 		wrmsr_safe(MSR_K8_EXT_FEATURE_MASK, value);
 		rdmsrl(MSR_K8_EXT_FEATURE_MASK, value);
@@ -1267,7 +1266,7 @@ static void cf_check init_amd(struct cpuinfo_x86 *c)
 	 * Disable it on the affected CPUs.
 	 */
 	if (c->x86 == 0x15 && c->x86_model >= 0x02 && c->x86_model < 0x20 &&
-	    !rdmsr_safe(MSR_AMD64_IC_CFG, value) && (value & 0x1e) != 0x1e)
+	    !rdmsr_safe(MSR_AMD64_IC_CFG, &value) && (value & 0x1e) != 0x1e)
 		wrmsr_safe(MSR_AMD64_IC_CFG, value | 0x1e);
 
         amd_get_topology(c);
diff --git a/xen/arch/x86/cpu/common.c b/xen/arch/x86/cpu/common.c
index da05015578aa..60f3c9a29e67 100644
--- a/xen/arch/x86/cpu/common.c
+++ b/xen/arch/x86/cpu/common.c
@@ -130,14 +130,14 @@ bool __init probe_cpuid_faulting(void)
 	uint64_t val;
 	int rc;
 
-	if ((rc = rdmsr_safe(MSR_INTEL_PLATFORM_INFO, val)) == 0)
+	if ((rc = rdmsr_safe(MSR_INTEL_PLATFORM_INFO, &val)) == 0)
 		raw_cpu_policy.platform_info.cpuid_faulting =
 			val & MSR_PLATFORM_INFO_CPUID_FAULTING;
 
 	if (rc ||
 	    !(val & MSR_PLATFORM_INFO_CPUID_FAULTING) ||
 	    rdmsr_safe(MSR_INTEL_MISC_FEATURES_ENABLES,
-		       this_cpu(msr_misc_features)))
+		       &this_cpu(msr_misc_features)))
 	{
 		setup_clear_cpu_cap(X86_FEATURE_CPUID_FAULTING);
 		return false;
@@ -851,7 +851,7 @@ static void skinit_enable_intr(void)
 	 * If the platform is performing a Secure Launch via SKINIT
 	 * INIT_REDIRECTION flag will be active.
 	 */
-	if ( !cpu_has_skinit || rdmsr_safe(MSR_K8_VM_CR, val) ||
+	if ( !cpu_has_skinit || rdmsr_safe(MSR_K8_VM_CR, &val) ||
 	     !(val & VM_CR_INIT_REDIRECTION) )
 		return;
 
diff --git a/xen/arch/x86/cpu/intel.c b/xen/arch/x86/cpu/intel.c
index 29144ffe37a5..ecca11f04db8 100644
--- a/xen/arch/x86/cpu/intel.c
+++ b/xen/arch/x86/cpu/intel.c
@@ -115,7 +115,7 @@ static uint64_t __init _probe_mask_msr(unsigned int *msr, uint64_t caps)
 
 	expected_levelling_cap |= caps;
 
-	if (rdmsr_safe(*msr, val) || wrmsr_safe(*msr, val))
+	if (rdmsr_safe(*msr, &val) || wrmsr_safe(*msr, val))
 		*msr = 0;
 	else
 		levelling_caps |= caps;
@@ -546,7 +546,7 @@ static void intel_log_freq(const struct cpuinfo_x86 *c)
             { 26667, 13333, 20000, 16667, 33333, 10000, 40000 };
 
     case 6:
-        if ( rdmsr_safe(MSR_INTEL_PLATFORM_INFO, msrval) )
+        if ( rdmsr_safe(MSR_INTEL_PLATFORM_INFO, &msrval) )
             return;
         max_ratio = msrval >> 8;
         min_ratio = msrval >> 40;
@@ -566,7 +566,7 @@ static void intel_log_freq(const struct cpuinfo_x86 *c)
              */
             if ( min_ratio > max_ratio )
                 SWAP(min_ratio, max_ratio);
-            if ( rdmsr_safe(MSR_FSB_FREQ, msrval) ||
+            if ( rdmsr_safe(MSR_FSB_FREQ, &msrval) ||
                  (msrval &= 7) >= ARRAY_SIZE(core_factors) )
                 return;
             factor = core_factors[msrval];
@@ -584,7 +584,7 @@ static void intel_log_freq(const struct cpuinfo_x86 *c)
         break;
 
     case 0xf:
-        if ( rdmsr_safe(MSR_IA32_EBC_FREQUENCY_ID, msrval) )
+        if ( rdmsr_safe(MSR_IA32_EBC_FREQUENCY_ID, &msrval) )
             return;
         max_ratio = msrval >> 24;
         min_ratio = 0;
diff --git a/xen/arch/x86/cpu/mcheck/mce_amd.c b/xen/arch/x86/cpu/mcheck/mce_amd.c
index 4f06a3153b91..25c29eb3d255 100644
--- a/xen/arch/x86/cpu/mcheck/mce_amd.c
+++ b/xen/arch/x86/cpu/mcheck/mce_amd.c
@@ -195,7 +195,7 @@ static void mcequirk_amd_apply(enum mcequirk_amd_flags flags)
         break;
 
     case MCEQUIRK_F10_GART:
-        if ( rdmsr_safe(MSR_AMD64_MCx_MASK(4), val) == 0 )
+        if ( rdmsr_safe(MSR_AMD64_MCx_MASK(4), &val) == 0 )
             wrmsr_safe(MSR_AMD64_MCx_MASK(4), val | (1 << 10));
         break;
 
diff --git a/xen/arch/x86/cpu/mcheck/mce_intel.c b/xen/arch/x86/cpu/mcheck/mce_intel.c
index 1e52b1ac25a4..c4655de401c6 100644
--- a/xen/arch/x86/cpu/mcheck/mce_intel.c
+++ b/xen/arch/x86/cpu/mcheck/mce_intel.c
@@ -726,7 +726,7 @@ static bool intel_enable_lmce(void)
      * MSR_IA32_MCG_EXT_CTL.LMCE_EN.
      */
 
-    if ( rdmsr_safe(MSR_IA32_FEATURE_CONTROL, msr_content) )
+    if ( rdmsr_safe(MSR_IA32_FEATURE_CONTROL, &msr_content) )
         return false;
 
     if ( (msr_content & IA32_FEATURE_CONTROL_LOCK) &&
@@ -879,14 +879,14 @@ static void intel_init_ppin(const struct cpuinfo_x86 *c)
     case 0x8f: /* Sapphire Rapids X */
 
         if ( (c != &boot_cpu_data && !ppin_msr) ||
-             rdmsr_safe(MSR_PPIN_CTL, val) )
+             rdmsr_safe(MSR_PPIN_CTL, &val) )
             return;
 
         /* If PPIN is disabled, but not locked, try to enable. */
         if ( !(val & (PPIN_ENABLE | PPIN_LOCKOUT)) )
         {
             wrmsr_safe(MSR_PPIN_CTL, val | PPIN_ENABLE);
-            rdmsr_safe(MSR_PPIN_CTL, val);
+            rdmsr_safe(MSR_PPIN_CTL, &val);
         }
 
         if ( !(val & PPIN_ENABLE) )
diff --git a/xen/arch/x86/hvm/ioreq.c b/xen/arch/x86/hvm/ioreq.c
index ec709e5f4741..98b0dd7972c2 100644
--- a/xen/arch/x86/hvm/ioreq.c
+++ b/xen/arch/x86/hvm/ioreq.c
@@ -292,7 +292,7 @@ bool arch_ioreq_server_get_type_addr(const struct domain *d,
         {
             uint64_t msr_val;
 
-            if ( !rdmsr_safe(MSR_AMD64_NB_CFG, msr_val) &&
+            if ( !rdmsr_safe(MSR_AMD64_NB_CFG, &msr_val) &&
                  (msr_val & (1ULL << AMD64_NB_CFG_CF8_EXT_ENABLE_BIT)) )
                 *addr |= CF8_ADDR_HI(cf8);
         }
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index fce750ca1f7a..57520ac3ec2d 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -1082,8 +1082,8 @@ static void svm_host_osvw_init(void)
     {
         uint64_t len, status;
 
-        if ( rdmsr_safe(MSR_AMD_OSVW_ID_LENGTH, len) ||
-             rdmsr_safe(MSR_AMD_OSVW_STATUS, status) )
+        if ( rdmsr_safe(MSR_AMD_OSVW_ID_LENGTH, &len) ||
+             rdmsr_safe(MSR_AMD_OSVW_STATUS, &status) )
             len = status = 0;
 
         if ( len < osvw_length )
@@ -1481,7 +1481,7 @@ static void svm_init_erratum_383(const struct cpuinfo_x86 *c)
         return;
 
     /* use safe methods to be compatible with nested virtualization */
-    if ( rdmsr_safe(MSR_AMD64_DC_CFG, msr_content) == 0 &&
+    if ( rdmsr_safe(MSR_AMD64_DC_CFG, &msr_content) == 0 &&
          wrmsr_safe(MSR_AMD64_DC_CFG, msr_content | (1ULL << 47)) == 0 )
         amd_erratum383_found = 1;
     else
@@ -1785,7 +1785,7 @@ static int cf_check svm_msr_read_intercept(
         break;
 
     case MSR_F10_BU_CFG:
-        if ( !rdmsr_safe(msr, *msr_content) )
+        if ( !rdmsr_safe(msr, msr_content) )
             break;
 
         if ( boot_cpu_data.x86 == 0xf )
@@ -1804,7 +1804,7 @@ static int cf_check svm_msr_read_intercept(
         goto gpf;
 
     case MSR_F10_BU_CFG2:
-        if ( rdmsr_safe(msr, *msr_content) )
+        if ( rdmsr_safe(msr, msr_content) )
             goto gpf;
         break;
 
@@ -1881,7 +1881,7 @@ static int cf_check svm_msr_read_intercept(
         break;
 
     default:
-        if ( d->arch.msr_relaxed && !rdmsr_safe(msr, tmp) )
+        if ( d->arch.msr_relaxed && !rdmsr_safe(msr, &tmp) )
         {
             *msr_content = 0;
             break;
@@ -2047,7 +2047,7 @@ static int cf_check svm_msr_write_intercept(
 
     case MSR_F10_BU_CFG:
     case MSR_F10_BU_CFG2:
-        if ( rdmsr_safe(msr, msr_content) )
+        if ( rdmsr_safe(msr, &msr_content) )
             goto gpf;
         break;
 
@@ -2068,7 +2068,7 @@ static int cf_check svm_msr_write_intercept(
         break;
 
     default:
-        if ( d->arch.msr_relaxed && !rdmsr_safe(msr, msr_content) )
+        if ( d->arch.msr_relaxed && !rdmsr_safe(msr, &msr_content) )
             break;
 
         gdprintk(XENLOG_WARNING,
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index cb82d52ef035..6341fa20457c 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -3499,7 +3499,7 @@ static int cf_check vmx_msr_read_intercept(
             break;
         }
 
-        if ( curr->domain->arch.msr_relaxed && !rdmsr_safe(msr, tmp) )
+        if ( curr->domain->arch.msr_relaxed && !rdmsr_safe(msr, &tmp) )
         {
             *msr_content = 0;
             break;
@@ -3809,7 +3809,7 @@ static int cf_check vmx_msr_write_intercept(
              is_last_branch_msr(msr) )
             break;
 
-        if ( v->domain->arch.msr_relaxed && !rdmsr_safe(msr, msr_content) )
+        if ( v->domain->arch.msr_relaxed && !rdmsr_safe(msr, &msr_content) )
             break;
 
         gdprintk(XENLOG_WARNING,
diff --git a/xen/arch/x86/include/asm/msr.h b/xen/arch/x86/include/asm/msr.h
index e185db096756..d2c86ddb09e9 100644
--- a/xen/arch/x86/include/asm/msr.h
+++ b/xen/arch/x86/include/asm/msr.h
@@ -53,20 +53,27 @@ static inline void wrmsrns(uint32_t msr, uint64_t val)
 }
 
 /* rdmsr with exception handling */
-#define rdmsr_safe(msr,val) ({\
-    int rc_; \
-    uint64_t lo_, hi_; \
-    __asm__ __volatile__( \
-        "1: rdmsr\n2:\n" \
-        ".section .fixup,\"ax\"\n" \
-        "3: xorl %k0,%k0\n; xorl %k1,%k1\n" \
-        "   movl %5,%2\n; jmp 2b\n" \
-        ".previous\n" \
-        _ASM_EXTABLE(1b, 3b) \
-        : "=a" (lo_), "=d" (hi_), "=&r" (rc_) \
-        : "c" (msr), "2" (0), "i" (-EFAULT)); \
-    val = lo_ | (hi_ << 32); \
-    rc_; })
+static inline int rdmsr_safe(unsigned int msr, uint64_t *val)
+{
+    int rc;
+    uint64_t lo, hi;
+
+    asm_inline volatile (
+        "1: rdmsr\n2:\n"
+        ".section .fixup,\"ax\"\n"
+        "3: xorl %k0,%k0\n\t"
+        "   xorl %k1,%k1\n\t"
+        "   movl %5,%2\n\t"
+        "   jmp 2b\n\t"
+        ".previous"
+        _ASM_EXTABLE(1b, 3b)
+        : "=a" (lo), "=d" (hi), "=&r" (rc)
+        : "c" (msr), "2" (0), "i" (-EFAULT) );
+
+    *val = lo | (hi << 32);
+
+    return rc;
+}
 
 /* wrmsr with exception handling */
 static inline int wrmsr_safe(unsigned int msr, uint64_t val)
diff --git a/xen/arch/x86/msr.c b/xen/arch/x86/msr.c
index 1bf117cbd80f..b301143ed2d4 100644
--- a/xen/arch/x86/msr.c
+++ b/xen/arch/x86/msr.c
@@ -191,7 +191,7 @@ int guest_rdmsr(struct vcpu *v, uint32_t msr, uint64_t *val)
         if ( !(cp->x86_vendor & (X86_VENDOR_INTEL | X86_VENDOR_AMD)) ||
              !(boot_cpu_data.x86_vendor &
                (X86_VENDOR_INTEL | X86_VENDOR_AMD)) ||
-             rdmsr_safe(MSR_AMD_PATCHLEVEL, *val) )
+             rdmsr_safe(MSR_AMD_PATCHLEVEL, val) )
             goto gp_fault;
         break;
 
@@ -239,7 +239,7 @@ int guest_rdmsr(struct vcpu *v, uint32_t msr, uint64_t *val)
             goto gp_fault;
 
         *val = 0;
-        if ( likely(!is_cpufreq_controller(d)) || rdmsr_safe(msr, *val) == 0 )
+        if ( likely(!is_cpufreq_controller(d)) || rdmsr_safe(msr, val) == 0 )
             break;
         goto gp_fault;
 
@@ -305,7 +305,7 @@ int guest_rdmsr(struct vcpu *v, uint32_t msr, uint64_t *val)
             goto gp_fault;
         if ( !is_hardware_domain(d) )
             return X86EMUL_UNHANDLEABLE;
-        if ( rdmsr_safe(msr, *val) )
+        if ( rdmsr_safe(msr, val) )
             goto gp_fault;
         if ( msr == MSR_K8_SYSCFG )
             *val &= (SYSCFG_TOM2_FORCE_WB | SYSCFG_MTRR_TOM2_EN |
@@ -321,7 +321,7 @@ int guest_rdmsr(struct vcpu *v, uint32_t msr, uint64_t *val)
     case MSR_FAM10H_MMIO_CONF_BASE:
         if ( !is_hardware_domain(d) ||
              !(cp->x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)) ||
-             rdmsr_safe(msr, *val) )
+             rdmsr_safe(msr, val) )
             goto gp_fault;
 
         break;
diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hypercall.c
index 3eba791889bd..21f9f795c1c7 100644
--- a/xen/arch/x86/platform_hypercall.c
+++ b/xen/arch/x86/platform_hypercall.c
@@ -186,7 +186,7 @@ void cf_check resource_access(void *info)
                 if ( unlikely(read_tsc) )
                     local_irq_save(flags);
 
-                ret = rdmsr_safe(entry->idx, entry->val);
+                ret = rdmsr_safe(entry->idx, &entry->val);
 
                 if ( unlikely(read_tsc) )
                 {
diff --git a/xen/arch/x86/pv/emul-priv-op.c b/xen/arch/x86/pv/emul-priv-op.c
index f3f012f8fb55..4afbee59e53e 100644
--- a/xen/arch/x86/pv/emul-priv-op.c
+++ b/xen/arch/x86/pv/emul-priv-op.c
@@ -248,7 +248,7 @@ static bool pci_cfg_ok(struct domain *currd, unsigned int start,
     {
         uint64_t msr_val;
 
-        if ( rdmsr_safe(MSR_AMD64_NB_CFG, msr_val) )
+        if ( rdmsr_safe(MSR_AMD64_NB_CFG, &msr_val) )
             return false;
         if ( msr_val & (1ULL << AMD64_NB_CFG_CF8_EXT_ENABLE_BIT) )
             start |= CF8_ADDR_HI(currd->arch.pci_cf8);
@@ -961,7 +961,7 @@ static int cf_check read_msr(
         return X86EMUL_OKAY;
 
     case MSR_IA32_MISC_ENABLE:
-        if ( rdmsr_safe(reg, *val) )
+        if ( rdmsr_safe(reg, val) )
             break;
         *val = guest_misc_enable(*val);
         return X86EMUL_OKAY;
@@ -991,7 +991,7 @@ static int cf_check read_msr(
         }
         /* fall through */
     default:
-        if ( currd->arch.msr_relaxed && !rdmsr_safe(reg, tmp) )
+        if ( currd->arch.msr_relaxed && !rdmsr_safe(reg, &tmp) )
         {
             *val = 0;
             return X86EMUL_OKAY;
@@ -1001,14 +1001,14 @@ static int cf_check read_msr(
         break;
 
     normal:
-        if ( rdmsr_safe(reg, *val) )
+        if ( rdmsr_safe(reg, val) )
             break;
         return X86EMUL_OKAY;
     }
 
  done:
     if ( ret != X86EMUL_OKAY && !curr->arch.pv.trap_ctxt[X86_EXC_GP].address &&
-         (reg >> 16) != 0x4000 && !rdmsr_safe(reg, tmp) )
+         (reg >> 16) != 0x4000 && !rdmsr_safe(reg, &tmp) )
     {
         gprintk(XENLOG_WARNING, "faking RDMSR 0x%08x\n", reg);
         *val = 0;
@@ -1095,7 +1095,7 @@ static int cf_check write_msr(
     case MSR_AMD64_NB_CFG:
         if ( !is_hwdom_pinned_vcpu(curr) )
             return X86EMUL_OKAY;
-        if ( (rdmsr_safe(MSR_AMD64_NB_CFG, temp) != 0) ||
+        if ( (rdmsr_safe(MSR_AMD64_NB_CFG, &temp) != 0) ||
              ((val ^ temp) & ~(1ULL << AMD64_NB_CFG_CF8_EXT_ENABLE_BIT)) )
             goto invalid;
         if ( wrmsr_safe(MSR_AMD64_NB_CFG, val) == 0 )
@@ -1108,7 +1108,7 @@ static int cf_check write_msr(
             break;
         if ( !is_hwdom_pinned_vcpu(curr) )
             return X86EMUL_OKAY;
-        if ( rdmsr_safe(MSR_FAM10H_MMIO_CONF_BASE, temp) != 0 )
+        if ( rdmsr_safe(MSR_FAM10H_MMIO_CONF_BASE, &temp) != 0 )
             break;
         if ( (pci_probe & PCI_PROBE_MASK) == PCI_PROBE_MMCONF ?
              temp != val :
@@ -1124,7 +1124,7 @@ static int cf_check write_msr(
         break;
 
     case MSR_IA32_MISC_ENABLE:
-        if ( rdmsr_safe(reg, temp) )
+        if ( rdmsr_safe(reg, &temp) )
             break;
         if ( val != guest_misc_enable(temp) )
             goto invalid;
@@ -1171,7 +1171,7 @@ static int cf_check write_msr(
         }
         /* fall through */
     default:
-        if ( currd->arch.msr_relaxed && !rdmsr_safe(reg, val) )
+        if ( currd->arch.msr_relaxed && !rdmsr_safe(reg, &val) )
             return X86EMUL_OKAY;
 
         gdprintk(XENLOG_WARNING,
diff --git a/xen/arch/x86/spec_ctrl.c b/xen/arch/x86/spec_ctrl.c
index 1ff3d6835d9d..e71f62c60186 100644
--- a/xen/arch/x86/spec_ctrl.c
+++ b/xen/arch/x86/spec_ctrl.c
@@ -714,7 +714,7 @@ static bool __init check_smt_enabled(void)
      */
     if ( boot_cpu_data.vendor == X86_VENDOR_INTEL &&
          boot_cpu_data.family != 0xf && !cpu_has_hypervisor &&
-         !rdmsr_safe(MSR_INTEL_CORE_THREAD_COUNT, val) )
+         !rdmsr_safe(MSR_INTEL_CORE_THREAD_COUNT, &val) )
         return (MASK_EXTR(val, MSR_CTC_CORE_MASK) !=
                 MASK_EXTR(val, MSR_CTC_THREAD_MASK));
 
diff --git a/xen/arch/x86/x86_64/mmconfig-shared.c b/xen/arch/x86/x86_64/mmconfig-shared.c
index f1a3d42c5b21..d2364b32563f 100644
--- a/xen/arch/x86/x86_64/mmconfig-shared.c
+++ b/xen/arch/x86/x86_64/mmconfig-shared.c
@@ -149,7 +149,7 @@ static const char *__init cf_check pci_mmcfg_amd_fam10h(void)
         return NULL;
 
     address = MSR_FAM10H_MMIO_CONF_BASE;
-    if (rdmsr_safe(address, msr_content))
+    if ( rdmsr_safe(address, &msr_content) )
         return NULL;
 
     /* mmconfig is not enable */
diff --git a/xen/drivers/passthrough/vtd/iommu.c b/xen/drivers/passthrough/vtd/iommu.c
index c55f02c97e16..b4105163cc78 100644
--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -2286,7 +2286,7 @@ static bool __init vtd_ept_page_compatible(const struct vtd_iommu *iommu)
 
     /* EPT is not initialised yet, so we must check the capability in
      * the MSR explicitly rather than use cpu_has_vmx_ept_*() */
-    if ( rdmsr_safe(MSR_IA32_VMX_EPT_VPID_CAP, ept_cap) != 0 ) 
+    if ( rdmsr_safe(MSR_IA32_VMX_EPT_VPID_CAP, &ept_cap) != 0 )
         return false;
 
     return (ept_has_2mb(ept_cap) && opt_hap_2mb) <=
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 20:41:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 20:41:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083885.1443329 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1un1Es-0005Uu-1s; Fri, 15 Aug 2025 20:41:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083885.1443329; Fri, 15 Aug 2025 20:41: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 1un1Er-0005U7-Ti; Fri, 15 Aug 2025 20:41:25 +0000
Received: by outflank-mailman (input) for mailman id 1083885;
 Fri, 15 Aug 2025 20:41:24 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oFbR=23=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1un1Eq-0005Rl-Ma
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 20:41:24 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 34576377-7a18-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 22:41:22 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-45a1b05a59fso15257325e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 13:41:22 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3bb5d089e07sm3153924f8f.0.2025.08.15.13.41.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Aug 2025 13:41:21 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 34576377-7a18-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755290482; x=1755895282; 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=xtXFDwLluZe8C/hKYY81pjsgXvMiYWUxXd7DbLa9zVQ=;
        b=CJALOHpyOti3wq0qxdR5pfZg6IFr4GeZe34MNJW4yVYDBaXQo1voImgQsntYQLsqi0
         StFAweuAwLaahP2XyZCPpK+/SMCaf56ZcLBVG+ycmj0RSoummY//VYliBmTpAOZceRjz
         r1J7VUb0Yrz30Fi2SH1rmQoke8ji9CqC7h6ZQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755290482; x=1755895282;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=xtXFDwLluZe8C/hKYY81pjsgXvMiYWUxXd7DbLa9zVQ=;
        b=DCaq1lHSXRsq+LBzNRgtox6jOGnk73OK3IUA3xN2IYu/Anj8BzPXBrv2it+bte5PHK
         5fAOAaNXbKS2vOosi7efl9U3i9+k57/rmTOt1Sv5Q+Xpfe4CFehlYTp2L8r4xnhylVY0
         QS/2oaLCk425sF/XokI7EdzOHFm8a0zAu4/687bVxv5yczF+rZKfwidjOaM5NhRZfHI4
         Q/oC02dof4YNcMgOlFKr5fJ8c6PNwW52KIWq7QeIkzirq33XeVn94ySKKGrNYq0fCP01
         iXNmpoDioAjxi1mLq0V/4xtXHvJk53ARpwV58j/n3ii9BYCUQOLcAMAteLvin7kq83b7
         4fIQ==
X-Gm-Message-State: AOJu0YwSi7ur2F0ZDRaIkaY/4W533rTrRube89sTfGSJgohxh6sHWDtO
	xnM41Ck8lsZ2AZAslsQQaukPlFXgsylzHV7nqO+oWtKfqgp5Sq45qasgY+i+ubqtsEKqEZqC41n
	YHnU0
X-Gm-Gg: ASbGncsowxFg3O3r5Y6c01Rn2ppbBNNkn0Y8d6lbn3rOFbfEXqw8OygUdmee5kmHFeM
	vZnX2NHiXPdUW/OK7xHiPyrsFRdv1skpCHzxn4v4ojAdtMUCWCU23cmriMoN7aM/Gl9rOOKdh7W
	/JE06AcVqxVWVuKt+xhC2K0ukltzfznj4GQUPZtorY/lSdudPllM8gb9rXB5ZbFZusA20dVD5um
	KpSx0p7VWrX7NtfU8O/P9mwwYrxdZXmucrGrf4IniMpwNucRrn5pBTrpWJPJf2X6eLbydeRyXOs
	/U2AxdntagBj6Hy2QPPSMexcvezH0vkjDEoBqJ2B/oKc9MRDsyb7dWJuyrvl/zijCRo9EC2OyVk
	nRBBhuApQGHciw31diHLztWSm/S3YC8FWMm/4DAeMpHPcTMFWSL/q9jiADdZFEAdXRzV2+Kc4dM
	Lg
X-Google-Smtp-Source: AGHT+IEWGuUvIBrWYMifHvQE9DG1hEtyvEMYFOjxojce4tUHcYXVFrPSZtIKy6FIduAlNyt1T8HclQ==
X-Received: by 2002:a05:6000:24c7:b0:3b7:7680:35d3 with SMTP id ffacd0b85a97d-3bc69cc2bdfmr304480f8f.37.1755290481764;
        Fri, 15 Aug 2025 13:41:21 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 02/16] x86/msr: Rework rdmsr_safe() using asm goto()
Date: Fri, 15 Aug 2025 21:41:03 +0100
Message-Id: <20250815204117.3312742-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

... on capable toolchains.

This avoids needing to hold rc in a register across the RDMSR, and in most
cases removes direct testing and branching based on rc, as the fault label can
be rearranged to directly land on the out-of-line block.

There is a subtle difference in behaviour.  The old behaviour would, on fault,
still produce 0's and write to val.

The new behaviour only writes val on success, and write_msr() is the only
place where this matters.  Move temp out of switch() scope and initialise it
to 0.

Resolves: https://gitlab.com/xen-project/xen/-/work_items/217
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

Doing this safely does depend on getting GCC-14 into CI somewhere.  Debian
13/Trixie satisfies this, as does archlinux I expect.
---
 xen/arch/x86/include/asm/msr.h | 19 +++++++++++++++++++
 xen/arch/x86/pv/emul-priv-op.c |  3 +--
 2 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/include/asm/msr.h b/xen/arch/x86/include/asm/msr.h
index d2c86ddb09e9..6a97b41bae07 100644
--- a/xen/arch/x86/include/asm/msr.h
+++ b/xen/arch/x86/include/asm/msr.h
@@ -55,6 +55,24 @@ static inline void wrmsrns(uint32_t msr, uint64_t val)
 /* rdmsr with exception handling */
 static inline int rdmsr_safe(unsigned int msr, uint64_t *val)
 {
+#ifdef CONFIG_CC_HAS_ASM_GOTO_OUTPUT
+    uint64_t lo, hi;
+
+    asm_inline goto (
+        "1: rdmsr\n\t"
+        _ASM_EXTABLE(1b, %l[fault])
+        : "=a" (lo), "=d" (hi)
+        : "c" (msr)
+        :
+        : fault );
+
+    *val = lo | (hi << 32);
+
+    return 0;
+
+ fault:
+    return -EFAULT;
+#else
     int rc;
     uint64_t lo, hi;
 
@@ -73,6 +91,7 @@ static inline int rdmsr_safe(unsigned int msr, uint64_t *val)
     *val = lo | (hi << 32);
 
     return rc;
+#endif
 }
 
 /* wrmsr with exception handling */
diff --git a/xen/arch/x86/pv/emul-priv-op.c b/xen/arch/x86/pv/emul-priv-op.c
index 4afbee59e53e..c3a484c50bf8 100644
--- a/xen/arch/x86/pv/emul-priv-op.c
+++ b/xen/arch/x86/pv/emul-priv-op.c
@@ -1027,6 +1027,7 @@ static int cf_check write_msr(
     struct vcpu *curr = current;
     const struct domain *currd = curr->domain;
     const struct cpu_policy *cp = currd->arch.cpu_policy;
+    uint64_t temp = 0;
     bool vpmu_msr = false;
     int ret;
 
@@ -1040,8 +1041,6 @@ static int cf_check write_msr(
 
     switch ( reg )
     {
-        uint64_t temp;
-
     case MSR_FS_BASE:
     case MSR_GS_BASE:
     case MSR_SHADOW_GS_BASE:
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 20:41:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 20:41:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083888.1443363 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1un1Eu-0006LG-Na; Fri, 15 Aug 2025 20:41:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083888.1443363; Fri, 15 Aug 2025 20:41: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 1un1Eu-0006Ij-GD; Fri, 15 Aug 2025 20:41:28 +0000
Received: by outflank-mailman (input) for mailman id 1083888;
 Fri, 15 Aug 2025 20:41:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oFbR=23=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1un1Et-0005Rl-Bk
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 20:41:27 +0000
Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com
 [2a00:1450:4864:20::42d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3617a41b-7a18-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 22:41:25 +0200 (CEST)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-3b9d41cd38dso1675761f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 13:41:25 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3bb5d089e07sm3153924f8f.0.2025.08.15.13.41.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Aug 2025 13:41: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>
X-Inumbo-ID: 3617a41b-7a18-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755290485; x=1755895285; 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=7GDtBG/SpNuMZzE1pyYu4N7XQrylYOdxJ81PeErRVSs=;
        b=Dw6vr7CrSyUBDbltO864XQQPFmKN+6MDE249cCZimzhW/pSICGsCbnaQLvJDL676au
         T3m+JBf8i1zyt95dmgxsUedEmbEj/u5tinSx0WiwID2TnTNffuhjHRc9ocUuUhc2VBOn
         wmKF81jc7x7WkfF1R/B+48n4repsBLJapMwRI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755290485; x=1755895285;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=7GDtBG/SpNuMZzE1pyYu4N7XQrylYOdxJ81PeErRVSs=;
        b=IAi9c+ICygqLVqAa3q/ButkZZClR6nSLhDjOMmK3GNYZ72FS+vw2FmzKRDuFFBBHsf
         AGXF+sEcrkbK/bSdMw+jooa5VRX09lmZ4QNIKPTd3ijgq63LrBo4Xq8fG2scVIri4oGs
         lPfNYZ91m1cYbSbqqjjpbxjsm3vwx+KJmeEFrOUjqaKEe6nZM8B360n4gAxTTHG6/0XD
         7C8lct6oAgmQJ3Wqg0Bryenjl+tCJ1g+cOp83CW75FF9/LA/1t6fRwzpAuE7WsXAOJut
         KXGmHCTkSX+WpWbYDoJ8OlS7/ISiyQVDgMavlM7innQuj1tz5SF8B/NjYuho34LLleCx
         ofhw==
X-Gm-Message-State: AOJu0YwLiZWAz+CKsgekkwdlQzCghMGJmOf6Sm+P88aDRTm4t6WZUSxZ
	CCbWdbRWFQ9+sdD6r0ngFOt/6attkyLw3Q4P8wu6r1UuVqGixXijQUA6eBFU8LlcZzF1c9zQpcm
	NX1Hi
X-Gm-Gg: ASbGncuksO7SROeF0a01e4B8ir8erUZne31wAclmo/3Men+qpq+HMi7eCudDAAkoQsw
	hw+0wkzwJxYWqfYz64ETgvpXawdlGMcv8vXYLnp2N+54xpjTcXLFNtXWhXLzk99r1aSl36gsW7+
	bQkc6Jm5T4pmTCnjKCzFklgzhHtro0QZgVshZ4ou2hzyYYylDU2ZLshRaBiDZ6sswGyNAkgnmU3
	eyHtArdonhjgqwgNU1aOrDoH43lyvUQ6g3HIC3xUB0FJiG/zEmEUHzyhtY4EV8wdhO2oYVmH3fF
	y9V4wRVpIYa2iTMEuySWeuXGzvbyA6cCvZlPBcvGLRGf3P19EOHAuHh0CkdoGadFhhNWxKK9shm
	NSbyBWV0LgZ7z5vmAVh6XbWUET+ppjkXeSE+o9aEpv7omUAlwn3DKjS2PPijChXiH8YRTy33p9/
	dV
X-Google-Smtp-Source: AGHT+IE8eryCLPtShJuII1V24pM2mtTDi57utajU6P334frxZMAAONClZbDhtSHCJ9O1ZA2rAat2mA==
X-Received: by 2002:a5d:5f85:0:b0:3b7:8a49:eee9 with SMTP id ffacd0b85a97d-3bb66180720mr2429221f8f.8.1755290484539;
        Fri, 15 Aug 2025 13:41:24 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 05/16] x86/msr: Split out fsgsbase.h
Date: Fri, 15 Aug 2025 21:41:06 +0100
Message-Id: <20250815204117.3312742-6-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

It is a large and complex API, but only a handful of translation units need
access.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/domain.c               |   1 +
 xen/arch/x86/hvm/vmx/vmx.c          |   1 +
 xen/arch/x86/include/asm/fsgsbase.h | 114 ++++++++++++++++++++++++++++
 xen/arch/x86/include/asm/msr.h      | 105 -------------------------
 xen/arch/x86/pv/domain.c            |   1 +
 xen/arch/x86/pv/emul-priv-op.c      |   1 +
 xen/arch/x86/pv/misc-hypercalls.c   |   1 +
 xen/arch/x86/traps.c                |   1 +
 8 files changed, 120 insertions(+), 105 deletions(-)
 create mode 100644 xen/arch/x86/include/asm/fsgsbase.h

diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 1bbe53e36b59..3015aac4adbc 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -44,6 +44,7 @@
 #include <asm/cpuidle.h>
 #include <asm/debugreg.h>
 #include <asm/desc.h>
+#include <asm/fsgsbase.h>
 #include <asm/guest-msr.h>
 #include <asm/hvm/hvm.h>
 #include <asm/hvm/nestedhvm.h>
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index 4664a014bc8a..f97a7746531a 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -22,6 +22,7 @@
 #include <asm/current.h>
 #include <asm/debugreg.h>
 #include <asm/event.h>
+#include <asm/fsgsbase.h>
 #include <asm/gdbsx.h>
 #include <asm/guest-msr.h>
 #include <asm/hvm/emulate.h>
diff --git a/xen/arch/x86/include/asm/fsgsbase.h b/xen/arch/x86/include/asm/fsgsbase.h
new file mode 100644
index 000000000000..03e6a85d31ce
--- /dev/null
+++ b/xen/arch/x86/include/asm/fsgsbase.h
@@ -0,0 +1,114 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef X86_FSGSBASE_H
+#define X86_FSGSBASE_H
+
+#include <asm/msr.h>
+#include <asm/processor.h>
+#include <asm/x86-defns.h>
+
+/*
+ * On hardware supporting FSGSBASE, the value loaded into hardware is the
+ * guest kernel's choice for 64bit PV guests (Xen's choice for Idle, HVM and
+ * 32bit PV).
+ *
+ * Therefore, the {RD,WR}{FS,GS}BASE instructions are only safe to use if
+ * %cr4.fsgsbase is set.
+ */
+static inline unsigned long __rdfsbase(void)
+{
+    unsigned long base;
+
+    asm volatile ( "rdfsbase %0" : "=r" (base) );
+
+    return base;
+}
+
+static inline unsigned long __rdgsbase(void)
+{
+    unsigned long base;
+
+    asm volatile ( "rdgsbase %0" : "=r" (base) );
+
+    return base;
+}
+
+static inline void __wrfsbase(unsigned long base)
+{
+    asm volatile ( "wrfsbase %0" :: "r" (base) );
+}
+
+static inline void __wrgsbase(unsigned long base)
+{
+    asm volatile ( "wrgsbase %0" :: "r" (base) );
+}
+
+static inline unsigned long read_fs_base(void)
+{
+    unsigned long base;
+
+    if ( read_cr4() & X86_CR4_FSGSBASE )
+        return __rdfsbase();
+
+    rdmsrl(MSR_FS_BASE, base);
+
+    return base;
+}
+
+static inline unsigned long read_gs_base(void)
+{
+    unsigned long base;
+
+    if ( read_cr4() & X86_CR4_FSGSBASE )
+        return __rdgsbase();
+
+    rdmsrl(MSR_GS_BASE, base);
+
+    return base;
+}
+
+static inline unsigned long read_gs_shadow(void)
+{
+    unsigned long base;
+
+    if ( read_cr4() & X86_CR4_FSGSBASE )
+    {
+        asm volatile ( "swapgs" );
+        base = __rdgsbase();
+        asm volatile ( "swapgs" );
+    }
+    else
+        rdmsrl(MSR_SHADOW_GS_BASE, base);
+
+    return base;
+}
+
+static inline void write_fs_base(unsigned long base)
+{
+    if ( read_cr4() & X86_CR4_FSGSBASE )
+        __wrfsbase(base);
+    else
+        wrmsrl(MSR_FS_BASE, base);
+}
+
+static inline void write_gs_base(unsigned long base)
+{
+    if ( read_cr4() & X86_CR4_FSGSBASE )
+        __wrgsbase(base);
+    else
+        wrmsrl(MSR_GS_BASE, base);
+}
+
+static inline void write_gs_shadow(unsigned long base)
+{
+    if ( read_cr4() & X86_CR4_FSGSBASE )
+    {
+        asm volatile ( "swapgs\n\t"
+                       "wrgsbase %0\n\t"
+                       "swapgs"
+                       :: "r" (base) );
+    }
+    else
+        wrmsrl(MSR_SHADOW_GS_BASE, base);
+}
+
+#endif /* X86_FSGSBASE_H */
diff --git a/xen/arch/x86/include/asm/msr.h b/xen/arch/x86/include/asm/msr.h
index 787517802d9d..4a35cd0fdff6 100644
--- a/xen/arch/x86/include/asm/msr.h
+++ b/xen/arch/x86/include/asm/msr.h
@@ -168,111 +168,6 @@ static inline uint64_t rdtsc_ordered(void)
 			  : "=a" (low), "=d" (high) \
 			  : "c" (counter))
 
-/*
- * On hardware supporting FSGSBASE, the value loaded into hardware is the
- * guest kernel's choice for 64bit PV guests (Xen's choice for Idle, HVM and
- * 32bit PV).
- *
- * Therefore, the {RD,WR}{FS,GS}BASE instructions are only safe to use if
- * %cr4.fsgsbase is set.
- */
-static inline unsigned long __rdfsbase(void)
-{
-    unsigned long base;
-
-    asm volatile ( "rdfsbase %0" : "=r" (base) );
-
-    return base;
-}
-
-static inline unsigned long __rdgsbase(void)
-{
-    unsigned long base;
-
-    asm volatile ( "rdgsbase %0" : "=r" (base) );
-
-    return base;
-}
-
-static inline void __wrfsbase(unsigned long base)
-{
-    asm volatile ( "wrfsbase %0" :: "r" (base) );
-}
-
-static inline void __wrgsbase(unsigned long base)
-{
-    asm volatile ( "wrgsbase %0" :: "r" (base) );
-}
-
-static inline unsigned long read_fs_base(void)
-{
-    unsigned long base;
-
-    if ( read_cr4() & X86_CR4_FSGSBASE )
-        return __rdfsbase();
-
-    rdmsrl(MSR_FS_BASE, base);
-
-    return base;
-}
-
-static inline unsigned long read_gs_base(void)
-{
-    unsigned long base;
-
-    if ( read_cr4() & X86_CR4_FSGSBASE )
-        return __rdgsbase();
-
-    rdmsrl(MSR_GS_BASE, base);
-
-    return base;
-}
-
-static inline unsigned long read_gs_shadow(void)
-{
-    unsigned long base;
-
-    if ( read_cr4() & X86_CR4_FSGSBASE )
-    {
-        asm volatile ( "swapgs" );
-        base = __rdgsbase();
-        asm volatile ( "swapgs" );
-    }
-    else
-        rdmsrl(MSR_SHADOW_GS_BASE, base);
-
-    return base;
-}
-
-static inline void write_fs_base(unsigned long base)
-{
-    if ( read_cr4() & X86_CR4_FSGSBASE )
-        __wrfsbase(base);
-    else
-        wrmsrl(MSR_FS_BASE, base);
-}
-
-static inline void write_gs_base(unsigned long base)
-{
-    if ( read_cr4() & X86_CR4_FSGSBASE )
-        __wrgsbase(base);
-    else
-        wrmsrl(MSR_GS_BASE, base);
-}
-
-static inline void write_gs_shadow(unsigned long base)
-{
-    if ( read_cr4() & X86_CR4_FSGSBASE )
-    {
-        asm volatile ( "swapgs\n\t"
-                       "wrgsbase %0\n\t"
-                       "swapgs"
-                       :: "r" (base) );
-    }
-    else
-        wrmsrl(MSR_SHADOW_GS_BASE, base);
-}
-
 DECLARE_PER_CPU(uint64_t, efer);
 static inline uint64_t read_efer(void)
 {
diff --git a/xen/arch/x86/pv/domain.c b/xen/arch/x86/pv/domain.c
index 9334da1dab93..9c4785c187dd 100644
--- a/xen/arch/x86/pv/domain.c
+++ b/xen/arch/x86/pv/domain.c
@@ -12,6 +12,7 @@
 
 #include <asm/cpu-policy.h>
 #include <asm/cpufeature.h>
+#include <asm/fsgsbase.h>
 #include <asm/invpcid.h>
 #include <asm/spec_ctrl.h>
 #include <asm/pv/domain.h>
diff --git a/xen/arch/x86/pv/emul-priv-op.c b/xen/arch/x86/pv/emul-priv-op.c
index c3a484c50bf8..225d4cff03c1 100644
--- a/xen/arch/x86/pv/emul-priv-op.c
+++ b/xen/arch/x86/pv/emul-priv-op.c
@@ -16,6 +16,7 @@
 #include <asm/amd.h>
 #include <asm/debugreg.h>
 #include <asm/endbr.h>
+#include <asm/fsgsbase.h>
 #include <asm/hpet.h>
 #include <asm/mc146818rtc.h>
 #include <asm/pv/domain.h>
diff --git a/xen/arch/x86/pv/misc-hypercalls.c b/xen/arch/x86/pv/misc-hypercalls.c
index 17030d800d1b..7a37f16bf038 100644
--- a/xen/arch/x86/pv/misc-hypercalls.c
+++ b/xen/arch/x86/pv/misc-hypercalls.c
@@ -10,6 +10,7 @@
 #include <xen/hypercall.h>
 
 #include <asm/debugreg.h>
+#include <asm/fsgsbase.h>
 
 long do_set_debugreg(int reg, unsigned long value)
 {
diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index 270b93ed623e..0c5393cb2166 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -33,6 +33,7 @@
 #include <asm/debugreg.h>
 #include <asm/desc.h>
 #include <asm/flushtlb.h>
+#include <asm/fsgsbase.h>
 #include <asm/gdbsx.h>
 #include <asm/i387.h>
 #include <asm/io.h>
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 20:41:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 20:41:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083889.1443369 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1un1Ev-0006QA-2R; Fri, 15 Aug 2025 20:41:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083889.1443369; Fri, 15 Aug 2025 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 1un1Eu-0006PA-Qe; Fri, 15 Aug 2025 20:41:28 +0000
Received: by outflank-mailman (input) for mailman id 1083889;
 Fri, 15 Aug 2025 20:41:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oFbR=23=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1un1Et-0005Rl-SM
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 20:41:27 +0000
Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com
 [2a00:1450:4864:20::430])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 36814a16-7a18-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 22:41:26 +0200 (CEST)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-3b9a342e8ffso1689975f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 13:41:26 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3bb5d089e07sm3153924f8f.0.2025.08.15.13.41.24
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Aug 2025 13:41: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>
X-Inumbo-ID: 36814a16-7a18-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755290485; x=1755895285; 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=D9vb1ykp1WCFZixE3MBqEFa5gu4OAlJWE3J2pPtkp/g=;
        b=TPeB+JEzab2G4CDBFksRWlWlfX7EX0d6qI/mQqX1jhO8YxZgKkoo5ggt+S2yiLz2Su
         1eMxx/BZBv1AT/HmNhw079TdW6qe+LcceF33YD8gaCCrsFbdWN+6RP7isBsi3bwMSAQr
         0eNJ1OWyyqZ378LjUKXKgFyKcvtsL7wUMnJcQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755290485; x=1755895285;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=D9vb1ykp1WCFZixE3MBqEFa5gu4OAlJWE3J2pPtkp/g=;
        b=iiijvnYay7i0HJ9w7PknstUOHL0n3+oInK/asbQ+JBZkRr4GDI+m/+ErlgU1LHc6YI
         2FZIW/+jRy8RhToytZR4cQIKWqcqufs0PX15hzhAgN0E9H9OhMPqUXyxT28IxzKzAicn
         rR9vyjs7PbyuWX+Vdb0KB3+v3Cgsdm2WfqRsDyiYjCt8+DRkXuG4UHH14d84skdWHkt7
         kTfFbiTBRfhm93M4y3pOJVc0yECm/+fm+0P8l9hHWGQktYwfRHi0BxtdvWPnRRvQiy1T
         GDY7juaod6YWfi9kkRrRgS3z7JxGLT9b8owxaTkOOK39JQxtXTBr7xHI0RbJku0P+nMH
         hERQ==
X-Gm-Message-State: AOJu0Yw8FFYaKxBR2f8GJqJbcBqL6A6Z6K84LEbFMn2dOrXdS24sLX9e
	pYZdeFP1RZvmAvNNLNsxKqNJd2tnK3sW2DiDZPoR5C6KV2XIjpVpcHoRD2/hFflxalmD2PA6kbx
	zu6CL
X-Gm-Gg: ASbGncuT4LHEx4zirWgM5kllfPcrjMpzFtTIhhmDYVVA3coVO9fr+Q4a6EWCZamMmWV
	yFEIltEsdjoNg3K1HnW2SsDeP7uxXT1pYU65HxSDNPEJYnukpuDaLaGIudRi5i4gXyvltFEKmiX
	kQKN6zxB2WlkmZehILOGWQw7yncRVFkm4W6aT3+YhHu8vswbYCOC7U+LTfaCO+9ViZ6t4ts6huH
	FNvVBMcKU33TGfnkqBYPhlpvhW9HUGop0guaR00MpxRaGZDfTSvMA0atnhM4DYie6VgT3JNpGwo
	mvcN85xmMuaGVIoji7BIjuypHbfJjaD2kjhC4Cefg2OCys9F3DB/EzDZxB2hCVyD9a0hn+SkcBk
	r87DFscyJvdaWRzNXV4lbxsg1lHHzTY+WdOdnGmFt4tXQS8MTrGGBCzTfDijwl/2sqGaoq5L8a5
	F3
X-Google-Smtp-Source: AGHT+IEfLzdav0QEeJA3iq738WkJCVQpfAhf2z0YY0EDkCnOb2synwzTcDgFsBifp87gCjD10c9Ohw==
X-Received: by 2002:a05:6000:2405:b0:3b7:590d:ac7d with SMTP id ffacd0b85a97d-3bb4a1fa053mr3127627f8f.1.1755290485246;
        Fri, 15 Aug 2025 13:41: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>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 06/16] x86/msr: Split out tsc.h
Date: Fri, 15 Aug 2025 21:41:07 +0100
Message-Id: <20250815204117.3312742-7-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The TSC functionality is only related to MSRs by write_tsc(), and this really
does not want to be available as widely as is currently is.

asm/time.h shouldn't be including asm/msr.h, but this turns out to be
sufficiently tangled that I've chosen to break it out into it's own patch.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/include/asm/msr.h  | 39 ----------------------------
 xen/arch/x86/include/asm/time.h |  1 +
 xen/arch/x86/include/asm/tsc.h  | 46 +++++++++++++++++++++++++++++++++
 3 files changed, 47 insertions(+), 39 deletions(-)
 create mode 100644 xen/arch/x86/include/asm/tsc.h

diff --git a/xen/arch/x86/include/asm/msr.h b/xen/arch/x86/include/asm/msr.h
index 4a35cd0fdff6..1c0e768d9123 100644
--- a/xen/arch/x86/include/asm/msr.h
+++ b/xen/arch/x86/include/asm/msr.h
@@ -124,45 +124,6 @@ static inline void msr_split(struct cpu_user_regs *regs, uint64_t val)
     regs->rax = (uint32_t)val;
 }
 
-static inline uint64_t rdtsc(void)
-{
-    uint64_t low, high;
-
-    __asm__ __volatile__("rdtsc" : "=a" (low), "=d" (high));
-
-    return (high << 32) | low;
-}
-
-static inline uint64_t rdtsc_ordered(void)
-{
-    uint64_t low, high, aux;
-
-    /*
-     * The RDTSC instruction is not serializing.  Make it dispatch serializing
-     * for the purposes here by issuing LFENCE (or MFENCE if necessary) ahead
-     * of it.
-     *
-     * RDTSCP, otoh, "does wait until all previous instructions have executed
-     * and all previous loads are globally visible" (SDM) / "forces all older
-     * instructions to retire before reading the timestamp counter" (APM).
-     */
-    alternative_io_2("lfence; rdtsc",
-                     "mfence; rdtsc", X86_FEATURE_MFENCE_RDTSC,
-                     "rdtscp",        X86_FEATURE_RDTSCP,
-                     ASM_OUTPUT2("=a" (low), "=d" (high), "=c" (aux)),
-                     /* no inputs */);
-
-    return (high << 32) | low;
-}
-
-#define __write_tsc(val) wrmsrl(MSR_IA32_TSC, val)
-#define write_tsc(val) ({                                       \
-    /* Reliable TSCs are in lockstep across all CPUs. We should \
-     * never write to them. */                                  \
-    ASSERT(!boot_cpu_has(X86_FEATURE_TSC_RELIABLE));            \
-    __write_tsc(val);                                           \
-})
-
 #define rdpmc(counter,low,high) \
      __asm__ __volatile__("rdpmc" \
 			  : "=a" (low), "=d" (high) \
diff --git a/xen/arch/x86/include/asm/time.h b/xen/arch/x86/include/asm/time.h
index 3dfbb5297a25..c55b69831448 100644
--- a/xen/arch/x86/include/asm/time.h
+++ b/xen/arch/x86/include/asm/time.h
@@ -3,6 +3,7 @@
 #define __X86_TIME_H__
 
 #include <asm/msr.h>
+#include <asm/tsc.h>
 
 typedef u64 cycles_t;
 
diff --git a/xen/arch/x86/include/asm/tsc.h b/xen/arch/x86/include/asm/tsc.h
new file mode 100644
index 000000000000..5f48fed26c23
--- /dev/null
+++ b/xen/arch/x86/include/asm/tsc.h
@@ -0,0 +1,46 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef X86_TSC_H
+#define X86_TSC_H
+
+#include <asm/alternative.h>
+
+static inline uint64_t rdtsc(void)
+{
+    uint64_t low, high;
+
+    asm volatile ( "rdtsc" : "=a" (low), "=d" (high) );
+
+    return (high << 32) | low;
+}
+
+static inline uint64_t rdtsc_ordered(void)
+{
+    uint64_t low, high, aux;
+
+    /*
+     * The RDTSC instruction is not serializing.  Make it dispatch serializing
+     * for the purposes here by issuing LFENCE (or MFENCE if necessary) ahead
+     * of it.
+     *
+     * RDTSCP, otoh, "does wait until all previous instructions have executed
+     * and all previous loads are globally visible" (SDM) / "forces all older
+     * instructions to retire before reading the timestamp counter" (APM).
+     */
+    alternative_io_2("lfence; rdtsc",
+                     "mfence; rdtsc", X86_FEATURE_MFENCE_RDTSC,
+                     "rdtscp",        X86_FEATURE_RDTSCP,
+                     ASM_OUTPUT2("=a" (low), "=d" (high), "=c" (aux)),
+                     /* no inputs */);
+
+    return (high << 32) | low;
+}
+
+#define __write_tsc(val) wrmsrl(MSR_IA32_TSC, val)
+#define write_tsc(val) ({                                       \
+    /* Reliable TSCs are in lockstep across all CPUs. We should \
+     * never write to them. */                                  \
+    ASSERT(!boot_cpu_has(X86_FEATURE_TSC_RELIABLE));            \
+    __write_tsc(val);                                           \
+})
+
+#endif /* X86_TSC_H */
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 20:41:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 20:41:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083890.1443381 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1un1Ew-0006mT-AS; Fri, 15 Aug 2025 20:41:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083890.1443381; Fri, 15 Aug 2025 20:41: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 1un1Ew-0006lR-1u; Fri, 15 Aug 2025 20:41:30 +0000
Received: by outflank-mailman (input) for mailman id 1083890;
 Fri, 15 Aug 2025 20:41:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oFbR=23=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1un1Eu-0005Rl-D1
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 20:41:28 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 36da42d3-7a18-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 22:41:26 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-45a1b0becf5so11025885e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 13:41:26 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3bb5d089e07sm3153924f8f.0.2025.08.15.13.41.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Aug 2025 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>
X-Inumbo-ID: 36da42d3-7a18-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755290486; x=1755895286; 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=QxRXdg9UPt8dkHi8B3FuNiEDbj6Vs8SSKaXVlL6xJiM=;
        b=opFI7NfD6VFf4BuIdOy6CZrbe4Ddc/qfxXUMhrYK5GLXYf3ayeOH43yo/GkN7oIFBP
         d8rsOvZURZ80a0hU03HL8I3M7US8jF2zQKJvmy6s5/yGQ+leUOTYpyXqdni38qcBtiXJ
         qH8MTyFEmYre+LRl2BanBBSh6NOmzFwkz2uQg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755290486; x=1755895286;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=QxRXdg9UPt8dkHi8B3FuNiEDbj6Vs8SSKaXVlL6xJiM=;
        b=LcqUesCQleNjTbH0AKziPA9Redf4HsEEbzrN2ldPXOwUd4WMFRNcRtEiyUzOBlQPXT
         gxmS1Mhq54HGTQjMTLBKeStFMbJXPBn3RBWJwzcaXcxyWH/nHzVtjbpsGztMS1reBncK
         vodTSi7HiDr5c4l4/R/BVYYjcJq6Hg25Z0ouL+STExoDBVYtOCdV9DNJSmBzvKkaszhx
         Mhkr8cJL99zQUoRAluyd7EqTN0lJy9t0JdVc2LHJ/ed5q/XZSO0EPpyalZCyJZxXdvte
         ajEeiBCMXqvYAIHPVSh1MnkkFm0IJM44LfPjLIPcsOT+3z3mKcdXrmnu3bxp0I0D/0kO
         nnzA==
X-Gm-Message-State: AOJu0YzQy4TzZh+iWswO7nrg2pT+c9lpbC5wAFhTrIs58+KHoOTMa4bc
	6ajLfhHnFSuKCxwXapiX2VjHJxfeoN/QyPj1iszRPPmo28LXtv3/MkUHl4fHEcg3BY1Ubgw9ove
	i087+
X-Gm-Gg: ASbGnctzzvGVlJDOwoGxrNcdGM646Upbb60zm+//wPsEzxFinJOlfxJiIKKCNZzsgHr
	xReRr3z6kZ5TQP7n6EneHoe2tf8eoHx8WQ2RjxKQc94InkVW5JM6cN51qsxWgDsTe/Xrgnl/csb
	xyTum1TuTDMKI/cCfKsonecYyd+vDjbswsNmZXkfOhHDx4mhJAhkdt0GkrvpX8wqkvSknaelWP+
	2JDTsXaPh3Y2gJWPsPvW6XXb5UIOIXRrNEjrZRAFW15v3MxBhXn1UrUw6jXwEgY04k6g/WBgTY3
	MSftYbLElfeKmzBZ3xCOp6NN4VNjAPtxOK1yyGgjaqUJ4mbyjIH6q/nvHPtMVdcq8utSexqXq38
	P4tiSAY1UcpwhU73ViaQ8iK0Ohl4QW/mXnckQzHdTViLu4bu1zgv9mL1VV54KYCLuIdXnoamoob
	Pj
X-Google-Smtp-Source: AGHT+IFiZFIFWk7O6XDfdO/dJOYAueyeHWg2xRt6N9IJ5+HDhJCMvOXCZfA7ZpFMp4D+kZkeHUGRzA==
X-Received: by 2002:a05:6000:2004:b0:3b8:d15f:1d4a with SMTP id ffacd0b85a97d-3bb68fdd5famr2814365f8f.41.1755290485935;
        Fri, 15 Aug 2025 13:41: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>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 07/16] x86/msr: Move msr_{split,fold}() into asm/cpu-user-regs.h
Date: Fri, 15 Aug 2025 21:41:08 +0100
Message-Id: <20250815204117.3312742-8-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Now there is a local header, asm/cpu-user-regs.h is a far better place for
these to live.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/include/asm/cpu-user-regs.h | 11 +++++++++++
 xen/arch/x86/include/asm/msr.h           | 11 -----------
 2 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/xen/arch/x86/include/asm/cpu-user-regs.h b/xen/arch/x86/include/asm/cpu-user-regs.h
index d700a3ef3447..5b283a2f6d02 100644
--- a/xen/arch/x86/include/asm/cpu-user-regs.h
+++ b/xen/arch/x86/include/asm/cpu-user-regs.h
@@ -55,4 +55,15 @@ struct cpu_user_regs
      */
 };
 
+static inline uint64_t msr_fold(const struct cpu_user_regs *regs)
+{
+    return (regs->rdx << 32) | regs->eax;
+}
+
+static inline void msr_split(struct cpu_user_regs *regs, uint64_t val)
+{
+    regs->rdx = val >> 32;
+    regs->rax = (uint32_t)val;
+}
+
 #endif /* X86_CPU_USER_REGS_H */
diff --git a/xen/arch/x86/include/asm/msr.h b/xen/arch/x86/include/asm/msr.h
index 1c0e768d9123..4aeb06f6524d 100644
--- a/xen/arch/x86/include/asm/msr.h
+++ b/xen/arch/x86/include/asm/msr.h
@@ -113,17 +113,6 @@ static inline int wrmsr_safe(unsigned int msr, uint64_t val)
     return -EFAULT;
 }
 
-static inline uint64_t msr_fold(const struct cpu_user_regs *regs)
-{
-    return (regs->rdx << 32) | regs->eax;
-}
-
-static inline void msr_split(struct cpu_user_regs *regs, uint64_t val)
-{
-    regs->rdx = val >> 32;
-    regs->rax = (uint32_t)val;
-}
-
 #define rdpmc(counter,low,high) \
      __asm__ __volatile__("rdpmc" \
 			  : "=a" (low), "=d" (high) \
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 20:41:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 20:41:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083891.1443394 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1un1Ex-00079L-Mt; Fri, 15 Aug 2025 20:41:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083891.1443394; Fri, 15 Aug 2025 20:41: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 1un1Ex-000791-G2; Fri, 15 Aug 2025 20:41:31 +0000
Received: by outflank-mailman (input) for mailman id 1083891;
 Fri, 15 Aug 2025 20:41:29 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oFbR=23=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1un1Ev-0005E7-Ie
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 20:41:29 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 384b6a2c-7a18-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 22:41:29 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-45a1abf5466so13081975e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 13:41:29 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3bb5d089e07sm3153924f8f.0.2025.08.15.13.41.27
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Aug 2025 13:41: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>
X-Inumbo-ID: 384b6a2c-7a18-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755290488; x=1755895288; 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=bQxOPgyYeB7NyNJYslvJ0f7DBDgh5r0i/jkvkXdHUJc=;
        b=RvPNpQOG/JYIFvcCRyAHlrLysEqo5kPc8LB8+N/ff1fvwNL34jg8MKLKXFzYMPm22w
         Hq5LvuRsT/QvFqeIOlr1o5BEl+gcwxElHfykkyuU6HphKq+9h7pi7amSIo+WOIvzebeH
         PclaBNNw29LVNFcN53R0I2hyIkijm3eeRcf30=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755290488; x=1755895288;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=bQxOPgyYeB7NyNJYslvJ0f7DBDgh5r0i/jkvkXdHUJc=;
        b=BC9IQ4bq2m25B2WfUNuExu/X7HzgfNH/gAJH7pb+z+AucZXXcVMK1KMyydq5THfe+D
         y9ToTBB214WSPP4icrU6+lcAkHCrrNG8MDhvNJG33eUWMY+UpnwGlxA8GgSLS9C9hwhI
         rMxp7j1vssVpI10ezCrVwa6x80kwyuV7PNl7EKmJyhXnYR63OHopf3PE3sqExYBFEp/C
         qqCDyY7bWWKHnTig1Tm1J8CWE9nvMeuLvO5AxhN7pgi7ZXhviOEc1rujb4ePZd7xwunx
         YCZ+Lr3v5QuozQ/uFhhAQXUcUPwiUyQpBe0OgmdHMjPTKkds99f5cRkxxWKBkY5LnfNr
         6zpw==
X-Gm-Message-State: AOJu0YzTEVgGPrQ7g1WFiQiXyJ1QBYO3OUmfKC2JX1nvK7aFEluyHDth
	sXFeVjPt95LfohjKU385iQkU4tistmFnlx40fBQSB4VPdj830W8gphyD4YmFQElhzb7eMpvJnbg
	vbhbE
X-Gm-Gg: ASbGncvtAwca8bsLhv+q5rDZVfwnmXtHEPc33RMoj7fRHhWBBBtw9F2fai6emoBoR75
	4BNEG9JBDGwuPrev5avEf7uDbZl5yi9SclTURDayj1suIubPwwVJmeLR2OD7N/moVMk2LO6YMP7
	StzDWznikMNDZ3OjOK2+tJsznFXon2mfdbp+ifHCBp808I8FUwDdRgQlA31yg5z2Y290F3tJ8P0
	nfpanDYDgaoSwg4WQB0gAnYyqpRZJrIkQpFAcq6xXHjC+zqRPrkFUnfAwYma/ajJPwUm9UlxRxI
	VlE/tTtb5ormNoeHmSyjT0ZCHM3Khcd9O1R6BQxUSawRpq9VWI+A+11iFK6wL9ItSSpq1fhMQ9I
	UkIL1hH1FyAL3xJyohUBPBIc+WgWQfCnTD6LqfqCJvYVqunM/v9D5Tzxwzw5r4l6mPE1RvcWglt
	Q8
X-Google-Smtp-Source: AGHT+IEXh/ktc0F9XBGdi4cicZDPiNEVbVK/poj0lIGxn189XDfNPnPMXIOY1An13z87LYT9VHEzLA==
X-Received: by 2002:a05:600c:8b05:b0:459:eeee:2759 with SMTP id 5b1f17b1804b1-45a1b6c7e20mr68277415e9.14.1755290488242;
        Fri, 15 Aug 2025 13:41:28 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 10/16] x86/svm: Rename variable in svm_msr_write_intercept()
Date: Fri, 15 Aug 2025 21:41:11 +0100
Message-Id: <20250815204117.3312742-11-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

We're about to turn the rdmsr() macro into a real function, at which point
Eclair complains that we're now shadowing an identifer.

Rename rdmsr to is_rdmsr.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/hvm/svm/svm.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 4fc6206edac0..90f19d98422a 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -2087,14 +2087,14 @@ static int cf_check svm_msr_write_intercept(
 static void svm_do_msr_access(struct cpu_user_regs *regs)
 {
     struct vcpu *curr = current;
-    bool rdmsr = curr->arch.hvm.svm.vmcb->exitinfo1 == 0;
-    int rc, inst_len = svm_get_insn_len(curr, rdmsr ? INSTR_RDMSR
-                                                    : INSTR_WRMSR);
+    bool is_rdmsr = curr->arch.hvm.svm.vmcb->exitinfo1 == 0;
+    int rc, inst_len = svm_get_insn_len(curr, is_rdmsr ? INSTR_RDMSR
+                                                       : INSTR_WRMSR);
 
     if ( inst_len == 0 )
         return;
 
-    if ( rdmsr )
+    if ( is_rdmsr )
     {
         uint64_t msr_content = 0;
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 20:41:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 20:41:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083892.1443398 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1un1Ey-0007CU-4y; Fri, 15 Aug 2025 20:41:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083892.1443398; Fri, 15 Aug 2025 20:41: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 1un1Ex-0007Bc-Ro; Fri, 15 Aug 2025 20:41:31 +0000
Received: by outflank-mailman (input) for mailman id 1083892;
 Fri, 15 Aug 2025 20:41:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oFbR=23=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1un1Ev-0005Rl-IV
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 20:41:29 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 376d5f8f-7a18-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 22:41:27 +0200 (CEST)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-45a1b0cd668so11569915e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 13:41:27 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3bb5d089e07sm3153924f8f.0.2025.08.15.13.41.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Aug 2025 13:41: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>
X-Inumbo-ID: 376d5f8f-7a18-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755290487; x=1755895287; 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=DXNyVngOEhOHNH/b7q938K73j9wIxC+b5U4uBb+L+Oc=;
        b=LVmwXDOuKOIGG1nmVGi3isqu3JBt8oPlHVoQNh8qP6VWUyg/nIPGE1mXsODDvfq7jJ
         V8ji6hhgFyZ4BOCBk7VNLt9Llr1Ql9HAJob5j43boW08inR60LP+/goUofTlenoxblgE
         hzJELlf2HYaMY4/9XJyJ8W83UGTJzLTQCQ7Oc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755290487; x=1755895287;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=DXNyVngOEhOHNH/b7q938K73j9wIxC+b5U4uBb+L+Oc=;
        b=DXTO+LLzAC8ZwB8rRrU6WSbarY2MmZTTjUDhTKGra2aUngZXmFNG2UYUVXC5hFdDU0
         ySWAyGH7bCIJ2OlcZxwAnq5OcQPx5PVW5EzIe8jHrcPqCN2XAffBFdnvQ8FuIHFAwl8H
         X4aC0fahsIyoLfD/nU2W4buiXkNzyR0+sSmEj2CxctTmDQtYiJBseAyyZ84fO2v8Ucrm
         d3PkM8F0rgnlGZ2YPUt0lP98a5hpThR+3GloSj1hSR1KWEMurbNFhIAcZzLgrz4T93JH
         1dKVQ6DK4eBemzWjGC3bGJp9gpomgKnRSS0GuD1pWWHNe0bhJ9IbO59UxVQi0yZyVwI7
         yy3g==
X-Gm-Message-State: AOJu0YwHCwzL5ZIkMu1gdebd6xJVR17zHTN3gLgf/OrZDs09/0Wnn2Cg
	+MlAiXcOOOiPsGI/NbyGwrrsjYjWCcOe9g5T7ZTnG1kc84XRBxrWin5pelIkTg/PaZkWECwBZCg
	qFjFe
X-Gm-Gg: ASbGncs6jE0eSiU8WD58KZm5JvEx4JcWhacBuSopuq5ekrImHXIcj3wMFbbZuXTLzwT
	SyywleQW9d/Ob+FRORTPL8Kh9EU4u+oor7C13ngyoI6uejy2PUc8NpotTtPMaatpXiH9IevKbER
	PqCnWynOV4GyqwB79aUR1dnZS13MgVS3T/YdvBwKcBdl9gGYZ/fExM53pdA/HLQMUt4t4VPnM5C
	wRu5Lm+BSK03Kard7zPpvWJm8ipEd53HBSYBjCMrfS7zFo8pEPeEZ7QmhcdEDnt/HAxFQk9A/gO
	wWMhCzHWXHCIU6Wc24e/4USJWF9kJmKU6tlh8qva5Mr20xhEk/uD5ucvgZqXYjsIM45ivtO66dq
	IlCP4gw7gBl9/UOuMdhU20IW9BIFo1DN97nKh8UHBlxpFEWLpZHszhftCJR3xuZZs7nzGH7mgv/
	Wy
X-Google-Smtp-Source: AGHT+IERbAFAL3Ci1q7SYpibLQpNPLvDtFGVRZkn2GMM5I+jZ7s5bpsYM73D0whD2jnzaR8gVXSR4w==
X-Received: by 2002:a05:600c:1e03:b0:450:d3b9:4ba4 with SMTP id 5b1f17b1804b1-45a21d49bcemr31971645e9.2.1755290486820;
        Fri, 15 Aug 2025 13:41:26 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 08/16] x86: Clean up asm/time.h
Date: Fri, 15 Aug 2025 21:41:09 +0100
Message-Id: <20250815204117.3312742-9-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

With asm/tsc.h split out, asm/time.h shouldn't be including asm/msr.h, but it
turns out that an outrageous number of files (even some headers) are pulling
their dependentices transitively through asm/time.h -> asm/msr.h

Most are asm/msr{,-index}.h, but in some cases it's printk(), va_args, and
even PRIxxx macros.

Give asm/time.h an SPDX tag, and strip trailing whitespace.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

Randconfig in CI has stopped finding new issues, but there's a reasonable risk
that more is still lurking.

ubsan.c needing asm/processor.h isn't good but it does work with all 4
architectures right now.  We really ought to have dump_execution_state()
somewhere more common.
---
 xen/arch/x86/acpi/cpufreq/acpi.c    |  3 ++-
 xen/arch/x86/acpi/cpufreq/cpufreq.c |  3 +++
 xen/arch/x86/cpu/mcheck/mce.h       |  1 +
 xen/arch/x86/debug.c                |  1 +
 xen/arch/x86/guest/hyperv/hyperv.c  |  1 +
 xen/arch/x86/hvm/ioreq.c            |  1 +
 xen/arch/x86/hvm/vmx/vvmx.c         |  1 +
 xen/arch/x86/include/asm/hvm/hvm.h  |  1 +
 xen/arch/x86/include/asm/time.h     | 12 ++++++------
 xen/arch/x86/machine_kexec.c        |  1 +
 xen/arch/x86/psr.c                  |  2 ++
 xen/arch/x86/tboot.c                |  1 +
 xen/arch/x86/xstate.c               |  1 +
 xen/common/efi/runtime.c            |  1 +
 xen/common/ubsan/ubsan.c            |  2 ++
 xen/drivers/acpi/apei/apei-base.c   |  1 +
 xen/drivers/acpi/tables/tbfadt.c    |  2 ++
 xen/drivers/acpi/utilities/utmisc.c |  3 +++
 xen/lib/x86/private.h               |  2 +-
 19 files changed, 32 insertions(+), 8 deletions(-)

diff --git a/xen/arch/x86/acpi/cpufreq/acpi.c b/xen/arch/x86/acpi/cpufreq/acpi.c
index b81f2afc9b9b..567c10dd0643 100644
--- a/xen/arch/x86/acpi/cpufreq/acpi.c
+++ b/xen/arch/x86/acpi/cpufreq/acpi.c
@@ -14,7 +14,8 @@
 #include <xen/delay.h>
 #include <xen/errno.h>
 #include <xen/param.h>
-#include <xen/types.h>
+
+#include <asm/msr.h>
 
 #include <acpi/acpi.h>
 #include <acpi/cpufreq/cpufreq.h>
diff --git a/xen/arch/x86/acpi/cpufreq/cpufreq.c b/xen/arch/x86/acpi/cpufreq/cpufreq.c
index 45f301f354ac..d18735c7ae1b 100644
--- a/xen/arch/x86/acpi/cpufreq/cpufreq.c
+++ b/xen/arch/x86/acpi/cpufreq/cpufreq.c
@@ -30,6 +30,9 @@
 #include <xen/errno.h>
 #include <xen/param.h>
 #include <xen/sched.h>
+
+#include <asm/msr.h>
+
 #include <acpi/cpufreq/cpufreq.h>
 
 struct acpi_cpufreq_data *cpufreq_drv_data[NR_CPUS];
diff --git a/xen/arch/x86/cpu/mcheck/mce.h b/xen/arch/x86/cpu/mcheck/mce.h
index 6157a41aaeea..aa00e94cb5b1 100644
--- a/xen/arch/x86/cpu/mcheck/mce.h
+++ b/xen/arch/x86/cpu/mcheck/mce.h
@@ -8,6 +8,7 @@
 #include <xen/smp.h>
 
 #include <asm/atomic.h>
+#include <asm/msr.h>
 #include <asm/traps.h>
 
 #include "x86_mca.h"
diff --git a/xen/arch/x86/debug.c b/xen/arch/x86/debug.c
index 11b0a7e5475a..037f97d6f17b 100644
--- a/xen/arch/x86/debug.c
+++ b/xen/arch/x86/debug.c
@@ -10,6 +10,7 @@
 #include <asm/current.h>
 #include <asm/debugreg.h>
 #include <asm/guest-msr.h>
+#include <asm/msr.h>
 
 /*
  * Merge new bits into dr6.  'new' is always given in positive polarity,
diff --git a/xen/arch/x86/guest/hyperv/hyperv.c b/xen/arch/x86/guest/hyperv/hyperv.c
index 6989af38f180..90757e079362 100644
--- a/xen/arch/x86/guest/hyperv/hyperv.c
+++ b/xen/arch/x86/guest/hyperv/hyperv.c
@@ -12,6 +12,7 @@
 #include <asm/fixmap.h>
 #include <asm/guest.h>
 #include <asm/guest/hyperv-tlfs.h>
+#include <asm/msr.h>
 #include <asm/processor.h>
 
 #include "private.h"
diff --git a/xen/arch/x86/hvm/ioreq.c b/xen/arch/x86/hvm/ioreq.c
index 98b0dd7972c2..d79a1a23655e 100644
--- a/xen/arch/x86/hvm/ioreq.c
+++ b/xen/arch/x86/hvm/ioreq.c
@@ -20,6 +20,7 @@
 #include <asm/hvm/emulate.h>
 #include <asm/hvm/hvm.h>
 #include <asm/hvm/vmx/vmx.h>
+#include <asm/msr.h>
 
 #include <public/hvm/ioreq.h>
 #include <public/hvm/params.h>
diff --git a/xen/arch/x86/hvm/vmx/vvmx.c b/xen/arch/x86/hvm/vmx/vvmx.c
index 6201665d9f4c..e4f3a5fe4c71 100644
--- a/xen/arch/x86/hvm/vmx/vvmx.c
+++ b/xen/arch/x86/hvm/vmx/vvmx.c
@@ -15,6 +15,7 @@
 #include <asm/hvm/support.h>
 #include <asm/hvm/vmx/vmx.h>
 #include <asm/hvm/vmx/vvmx.h>
+#include <asm/msr.h>
 #include <asm/mtrr.h>
 #include <asm/p2m.h>
 
diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/asm/hvm/hvm.h
index 228f47dbde8b..5c5a790f9e41 100644
--- a/xen/arch/x86/include/asm/hvm/hvm.h
+++ b/xen/arch/x86/include/asm/hvm/hvm.h
@@ -15,6 +15,7 @@
 #include <asm/asm_defns.h>
 #include <asm/current.h>
 #include <asm/hvm/asid.h>
+#include <asm/msr-index.h>
 #include <asm/x86_emulate.h>
 
 struct pirq; /* needed by pi_update_irte */
diff --git a/xen/arch/x86/include/asm/time.h b/xen/arch/x86/include/asm/time.h
index c55b69831448..e474a76e64df 100644
--- a/xen/arch/x86/include/asm/time.h
+++ b/xen/arch/x86/include/asm/time.h
@@ -1,8 +1,7 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef X86_TIME_H
+#define X86_TIME_H
 
-#ifndef __X86_TIME_H__
-#define __X86_TIME_H__
-
-#include <asm/msr.h>
 #include <asm/tsc.h>
 
 typedef u64 cycles_t;
@@ -38,6 +37,7 @@ uint64_t cf_check acpi_pm_tick_to_ns(uint64_t ticks);
 
 uint64_t tsc_ticks2ns(uint64_t ticks);
 
+struct cpu_user_regs;
 uint64_t pv_soft_rdtsc(const struct vcpu *v, const struct cpu_user_regs *regs);
 uint64_t gtime_to_gtsc(const struct domain *d, uint64_t time);
 uint64_t gtsc_to_gtime(const struct domain *d, uint64_t tsc);
@@ -47,7 +47,7 @@ int tsc_set_info(struct domain *d, uint32_t tsc_mode, uint64_t elapsed_nsec,
 
 void tsc_get_info(struct domain *d, uint32_t *tsc_mode, uint64_t *elapsed_nsec,
                   uint32_t *gtsc_khz, uint32_t *incarnation);
-   
+
 
 void force_update_vcpu_system_time(struct vcpu *v);
 
@@ -93,4 +93,4 @@ u64 scale_delta(u64 delta, const struct time_scale *scale);
 #define PIT_STATUS_NULL_COUNT (1 << 6)
 /* Lower bits match Timer Control Word. */
 
-#endif /* __X86_TIME_H__ */
+#endif /* X86_TIME_H */
diff --git a/xen/arch/x86/machine_kexec.c b/xen/arch/x86/machine_kexec.c
index 35fa5c82e9c2..f921eec5aae6 100644
--- a/xen/arch/x86/machine_kexec.c
+++ b/xen/arch/x86/machine_kexec.c
@@ -24,6 +24,7 @@
 #include <asm/hpet.h>
 #include <asm/idt.h>
 #include <asm/machine_kexec.h>
+#include <asm/msr.h>
 #include <asm/page.h>
 
 /*
diff --git a/xen/arch/x86/psr.c b/xen/arch/x86/psr.c
index 499d320e6163..9c7aab9f4021 100644
--- a/xen/arch/x86/psr.c
+++ b/xen/arch/x86/psr.c
@@ -18,6 +18,8 @@
 #include <xen/init.h>
 #include <xen/param.h>
 #include <xen/sched.h>
+
+#include <asm/msr.h>
 #include <asm/psr.h>
 
 /*
diff --git a/xen/arch/x86/tboot.c b/xen/arch/x86/tboot.c
index 319116857d4a..9d9bb6e7cf6d 100644
--- a/xen/arch/x86/tboot.c
+++ b/xen/arch/x86/tboot.c
@@ -11,6 +11,7 @@
 
 #include <asm/e820.h>
 #include <asm/fixmap.h>
+#include <asm/msr.h>
 #include <asm/page.h>
 #include <asm/processor.h>
 #include <asm/setup.h>
diff --git a/xen/arch/x86/xstate.c b/xen/arch/x86/xstate.c
index f6d677eb121d..e990abc9d18c 100644
--- a/xen/arch/x86/xstate.c
+++ b/xen/arch/x86/xstate.c
@@ -14,6 +14,7 @@
 #include <asm/cpu-policy.h>
 #include <asm/current.h>
 #include <asm/i387.h>
+#include <asm/msr.h>
 #include <asm/processor.h>
 #include <asm/xstate.h>
 
diff --git a/xen/common/efi/runtime.c b/xen/common/efi/runtime.c
index 7e1fce291d92..42386c6bde42 100644
--- a/xen/common/efi/runtime.c
+++ b/xen/common/efi/runtime.c
@@ -33,6 +33,7 @@ void efi_rs_leave(struct efi_rs_state *state);
 
 #ifndef CONFIG_ARM
 # include <asm/i387.h>
+# include <asm/msr.h>
 # include <asm/xstate.h>
 # include <public/platform.h>
 #endif
diff --git a/xen/common/ubsan/ubsan.c b/xen/common/ubsan/ubsan.c
index 20aa0cb598e1..15ae34816412 100644
--- a/xen/common/ubsan/ubsan.c
+++ b/xen/common/ubsan/ubsan.c
@@ -16,6 +16,8 @@
 #include <xen/percpu.h>
 #include <xen/spinlock.h>
 
+#include <asm/processor.h>
+
 #define __noreturn    noreturn
 #define pr_err(...) printk(XENLOG_ERR __VA_ARGS__)
 struct xen_ubsan { int in_ubsan; };
diff --git a/xen/drivers/acpi/apei/apei-base.c b/xen/drivers/acpi/apei/apei-base.c
index 4fe99573a220..1722698ba675 100644
--- a/xen/drivers/acpi/apei/apei-base.c
+++ b/xen/drivers/acpi/apei/apei-base.c
@@ -36,6 +36,7 @@
 #include <xen/errno.h>
 #include <xen/init.h>
 #include <xen/kernel.h>
+#include <xen/lib.h>
 #include <xen/spinlock.h>
 #include <xen/string.h>
 
diff --git a/xen/drivers/acpi/tables/tbfadt.c b/xen/drivers/acpi/tables/tbfadt.c
index a03836e0dc8a..32678700bdc8 100644
--- a/xen/drivers/acpi/tables/tbfadt.c
+++ b/xen/drivers/acpi/tables/tbfadt.c
@@ -42,6 +42,8 @@
  */
 
 #include <xen/init.h>
+#include <xen/inttypes.h>
+
 #include <acpi/acpi.h>
 #include <acpi/actables.h>
 
diff --git a/xen/drivers/acpi/utilities/utmisc.c b/xen/drivers/acpi/utilities/utmisc.c
index ee22c83e3842..b7756e4ebf29 100644
--- a/xen/drivers/acpi/utilities/utmisc.c
+++ b/xen/drivers/acpi/utilities/utmisc.c
@@ -42,6 +42,9 @@
  */
 
 #include <xen/init.h>
+#include <xen/lib.h>
+#include <xen/stdarg.h>
+
 #include <acpi/acpi.h>
 
 #define _COMPONENT          ACPI_UTILITIES
diff --git a/xen/lib/x86/private.h b/xen/lib/x86/private.h
index 60bb82a400b7..aedd8e482121 100644
--- a/xen/lib/x86/private.h
+++ b/xen/lib/x86/private.h
@@ -10,7 +10,7 @@
 #include <xen/nospec.h>
 #include <xen/types.h>
 
-#include <asm/msr-index.h>
+#include <asm/msr.h>
 
 #define copy_to_buffer_offset copy_to_guest_offset
 #define copy_from_buffer_offset copy_from_guest_offset
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 20:41:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 20:41:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083893.1443406 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1un1Ez-0007Qp-B4; Fri, 15 Aug 2025 20:41:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083893.1443406; Fri, 15 Aug 2025 20:41: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 1un1Ey-0007OA-TG; Fri, 15 Aug 2025 20:41:32 +0000
Received: by outflank-mailman (input) for mailman id 1083893;
 Fri, 15 Aug 2025 20:41:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oFbR=23=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1un1Ew-0005Rl-DS
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 20:41:30 +0000
Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com
 [2a00:1450:4864:20::433])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 37bbaf58-7a18-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 22:41:28 +0200 (CEST)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-3b9e4148134so1245330f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 13:41:28 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3bb5d089e07sm3153924f8f.0.2025.08.15.13.41.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Aug 2025 13:41: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>
X-Inumbo-ID: 37bbaf58-7a18-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755290487; x=1755895287; 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=wp9GcfERhSc9RphdTohoYWO6tq4mmGqIFpMiNdNkKno=;
        b=nc7FURIpoPVqGQ8aB4ByHuI6HpOWqhwSGSdiwse8/TijTZqynl9Ivs8usxAX/Kh5SU
         ZRTcIOEMftzNl/Kt63w3VIEWA2cuGCAIx+PyVtKKhE/bhNwH44d3JzT5HPC7E+GUuvvX
         Pf0ra2gUuKSeBe6V3NR/sEWbCOsU4qFWgibrA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755290487; x=1755895287;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=wp9GcfERhSc9RphdTohoYWO6tq4mmGqIFpMiNdNkKno=;
        b=vlxbW6MNbWEiaruMw5BpyEfSu/B9Vtl9DKfsQ0760havv8Gf3TXOxtze8/iePkez/h
         7dOZA6ls71pSSIDl5ZMUSHA0srZIOXpIkQwKugUjdoibDI/EAJLUngcU4ovqArYj2FTI
         vRO4WIrqJ4F77pYBRJPBBDkwICcWTzUpvUgbGnTK9HRTTwDneD7uTFRfvNCGy7BGWZ0K
         ZF18gjVjVVn+PEo8C9Z12EhjmE0c9ZY4U2AnrLvI/mXLzkD3uGUslnRwIwgPkKYdoQVG
         syMLHyUfFfBFaa6Z48XJsyxUR/fBiaRbtLRAg+oZIuj8IRTpek7Vg5HrbbeOw2ucEeA5
         9URA==
X-Gm-Message-State: AOJu0Yy75NtK76aQVanVVzmkLK2E/GCNp/+o+gVpwyuvkTRoZ+8f7a2B
	VQ9S6CoMVRtyCH6HnV4Jb/qZbJrErxoZK+w75PbzEN5T+Q2/s3TRrUZIqc31OaFJM58eDfAxW0q
	Qm+HT
X-Gm-Gg: ASbGncsFhYrVfAqTWakt4Rjm0YcloCVjW3h/AzGGZ5+fn6C3IS61UM6o4US/BrFJRqo
	hELEdWaWEoZlmyYw94qNIwFUwVcdQIA0U73nNuc0Hv9gs12hvc1b6mm3KBNeANMpzIYzySze/zS
	xptQOZOPwxq30wJ4Vjpv9hXLCSu5OTwGq/9rXBmQTq9TQn/LRd8xh4a+whuyAxynHTHUW4RV/ZG
	S+KL3U2XTooCXUaiWTWkR43DwCbM7iifBulEwvhhEMBvwiAVLrvAZ1W4ylIiz7MGHeleteNdW5v
	c58Aa7uGcQEagH1u+ylH01c91FVKa3y3zJBThvbrfvLUdIjz1pGhqpYof4QKh4lJNmh0gGN9EdI
	AXeMehDqz6XGUUXzk5LeJ/tGpRYGMat+X8+nXFQtOERXyFlKgxGgKfZRx/Lx/vyUTS6GEqi9hGK
	tA
X-Google-Smtp-Source: AGHT+IEEyLbKPN+sxUmYC4dnDd/MtkqdHPkIGELrbZjq83w5vLTDWuOrlWJnQQ0xO23PMPLGtWuNVw==
X-Received: by 2002:a05:6000:420d:b0:3a3:63d3:369a with SMTP id ffacd0b85a97d-3bb670fc6famr2575056f8f.25.1755290487435;
        Fri, 15 Aug 2025 13:41: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>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 09/16] x86: Clean up asm/msr.h
Date: Fri, 15 Aug 2025 21:41:10 +0100
Message-Id: <20250815204117.3312742-10-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Now that content has been split out, minimise the header files as msr.h is
included by many translation units.  A few more TUs were pulling dependencies
in transitively, so fix them up.

Give asm/time.h an SPDX tag, and strip trailing whitespace.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/acpi/cpufreq/acpi.c   |  2 ++
 xen/arch/x86/acpi/cpufreq/hwp.c    |  4 ++++
 xen/arch/x86/cpu/microcode/intel.c |  4 ++++
 xen/arch/x86/include/asm/msr.h     | 22 ++++++----------------
 xen/arch/x86/tsx.c                 |  2 ++
 5 files changed, 18 insertions(+), 16 deletions(-)

diff --git a/xen/arch/x86/acpi/cpufreq/acpi.c b/xen/arch/x86/acpi/cpufreq/acpi.c
index 567c10dd0643..b02745941701 100644
--- a/xen/arch/x86/acpi/cpufreq/acpi.c
+++ b/xen/arch/x86/acpi/cpufreq/acpi.c
@@ -14,8 +14,10 @@
 #include <xen/delay.h>
 #include <xen/errno.h>
 #include <xen/param.h>
+#include <xen/smp.h>
 
 #include <asm/msr.h>
+#include <asm/processor.h>
 
 #include <acpi/acpi.h>
 #include <acpi/cpufreq/cpufreq.h>
diff --git a/xen/arch/x86/acpi/cpufreq/hwp.c b/xen/arch/x86/acpi/cpufreq/hwp.c
index 26dce9aaf89a..38037d8300cd 100644
--- a/xen/arch/x86/acpi/cpufreq/hwp.c
+++ b/xen/arch/x86/acpi/cpufreq/hwp.c
@@ -8,8 +8,12 @@
 #include <xen/cpumask.h>
 #include <xen/init.h>
 #include <xen/param.h>
+#include <xen/smp.h>
 #include <xen/xmalloc.h>
+
 #include <asm/msr.h>
+#include <asm/processor.h>
+
 #include <acpi/cpufreq/cpufreq.h>
 
 static bool __ro_after_init hwp_in_use;
diff --git a/xen/arch/x86/cpu/microcode/intel.c b/xen/arch/x86/cpu/microcode/intel.c
index 3f8e9ca63b55..281993e725cc 100644
--- a/xen/arch/x86/cpu/microcode/intel.c
+++ b/xen/arch/x86/cpu/microcode/intel.c
@@ -23,8 +23,12 @@
 
 #include <xen/err.h>
 #include <xen/init.h>
+#include <xen/lib.h>
+#include <xen/string.h>
+#include <xen/xmalloc.h>
 
 #include <asm/msr.h>
+#include <asm/processor.h>
 #include <asm/system.h>
 
 #include "private.h"
diff --git a/xen/arch/x86/include/asm/msr.h b/xen/arch/x86/include/asm/msr.h
index 4aeb06f6524d..c0d66562956d 100644
--- a/xen/arch/x86/include/asm/msr.h
+++ b/xen/arch/x86/include/asm/msr.h
@@ -1,18 +1,13 @@
-#ifndef __ASM_MSR_H
-#define __ASM_MSR_H
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef X86_MSR_H
+#define X86_MSR_H
 
-#include "msr-index.h"
-
-#include <xen/types.h>
 #include <xen/percpu.h>
 #include <xen/errno.h>
-#include <xen/kernel.h>
-
-#include <xen/lib/x86/cpu-policy.h>
 
+#include <asm/alternative.h>
 #include <asm/asm_defns.h>
-#include <asm/cpufeature.h>
-#include <asm/processor.h>
+#include <asm/msr-index.h>
 
 #define rdmsr(msr,val1,val2) \
      __asm__ __volatile__("rdmsr" \
@@ -113,11 +108,6 @@ static inline int wrmsr_safe(unsigned int msr, uint64_t val)
     return -EFAULT;
 }
 
-#define rdpmc(counter,low,high) \
-     __asm__ __volatile__("rdpmc" \
-			  : "=a" (low), "=d" (high) \
-			  : "c" (counter))
-
 DECLARE_PER_CPU(uint64_t, efer);
 static inline uint64_t read_efer(void)
 {
@@ -144,4 +134,4 @@ static inline void wrmsr_tsc_aux(uint32_t val)
     }
 }
 
-#endif /* __ASM_MSR_H */
+#endif /* X86_MSR_H */
diff --git a/xen/arch/x86/tsx.c b/xen/arch/x86/tsx.c
index fbdd05971c8b..2a0c7c08a2ba 100644
--- a/xen/arch/x86/tsx.c
+++ b/xen/arch/x86/tsx.c
@@ -1,7 +1,9 @@
 #include <xen/init.h>
 #include <xen/param.h>
+
 #include <asm/microcode.h>
 #include <asm/msr.h>
+#include <asm/processor.h>
 
 /*
  * Valid values:
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 20:41:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 20:41:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083894.1443415 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1un1F0-0007Z3-72; Fri, 15 Aug 2025 20:41:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083894.1443415; Fri, 15 Aug 2025 20:41: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 1un1Ez-0007XA-Fy; Fri, 15 Aug 2025 20:41:33 +0000
Received: by outflank-mailman (input) for mailman id 1083894;
 Fri, 15 Aug 2025 20:41:31 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oFbR=23=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1un1Ex-0005E7-9v
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 20:41:31 +0000
Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com
 [2a00:1450:4864:20::429])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 39581d1d-7a18-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 22:41:31 +0200 (CEST)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-3b9e4148134so1245347f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 13:41:30 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3bb5d089e07sm3153924f8f.0.2025.08.15.13.41.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Aug 2025 13:41: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>
X-Inumbo-ID: 39581d1d-7a18-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755290490; x=1755895290; 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=FvO0yLtg8eUzoMi6i7eFIKNAZaltNGJ3gKQP47UCP/c=;
        b=SDs43sESv2h4o8hjJLbluotkQwu296vvU+HE1HTMWlfSiZKNzfxYex1cT+qHlZ9Tl7
         glx0Raa7RdpfJshz6/fU60PHXQQJtsOn6VSkpk84r3k9aQL7Lq+R//Oi0+VuZpnri7+3
         OoHCajUa/T7HeJ1sjw2oqml8D0pTcc6Dt+Cn0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755290490; x=1755895290;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=FvO0yLtg8eUzoMi6i7eFIKNAZaltNGJ3gKQP47UCP/c=;
        b=koBU1eL4YtUvPpz/UjOVLDzFBeE8Q8zm27h5y+7amk8IWiURWr/4wio4i9jVivgo4E
         UED7MjC/TeBCt8yYF7GcGwVcS75eqXCtsIrvmxFtk6e3ruU687Z0UBfHknLeQaylxcQd
         WYpUXkxkAx6etOKRezxz0RRkHqRwdM4RBMSeOT54mC3Pp4nzwxcUnf79QUGsplWYTPWc
         U3h9XMexVpbkLY+1fKZLHEO9dfoaMl7Bm/Mm2ENKXCvF0eDOCCNC6N73qSrvyyWuHylJ
         ClpLNqJAhQKOIN9xTX+fViRSCmptL8VhoYgY2f7ntyPomD9ABbqw6GHI8EzIqwdlCRVc
         1HAw==
X-Gm-Message-State: AOJu0YzncWpzAR7yn93efCoxyRhrKNWC2to/6aftJM46Iw64PquMeeNi
	Rnc1vtD4mEMJ/Yzj22DMgtNSy9cX21p1lRmsS+dhCe2SCe8IuulXFWTbldqKR9ZFJq2sRhCU8WG
	9HfGx
X-Gm-Gg: ASbGncvJ2ejbMoyK2ZK1cIbQ6P0OvWp3u8gpKpk4r6Y+tnyQ6NmpaieXrDwOBBBuLGa
	shrztAZQBJBaT9MogTecpeZ4FFTA1xYV8cxJiEABXIFPa5XiminBj+Gno5t1HToWKOYaYchvv5h
	fv95vq3oyWPl3CMSVExRgGiqmyUjpJ1l/WgUN2TUxGfCetNkDbMaDUYwgTxX5DrKnvzq2xDPnu1
	2cABp4Z1pAoE295Bb9KfZKigqlyvwppjLJClwIRCugkxUemeRj5U6Cwqo5dxfjS3UgLD1NSyoP3
	AysLhueKQa62WuJxYOYil1kqPDzqsDPfCnmEJEZF5IGzO4vRFKG8Ky8EmWcV6eS6Zk6YT4rxgg7
	hMQFNA9c5Qt68d45KVHv0Kj80Dlnn/911SjBH/HzOnO3dpSOXsCu/3k14Ug6jBqoYfjNzyjMOhv
	16
X-Google-Smtp-Source: AGHT+IE5gUnTS0BYvPT4trTFUJODzmMQk18pgqY+TyoH28fLr+55LY4YaVDros88nEa37ogXoOhYdQ==
X-Received: by 2002:a05:6000:3113:b0:3b7:75dd:f37d with SMTP id ffacd0b85a97d-3bb636edd8emr2680132f8f.0.1755290489859;
        Fri, 15 Aug 2025 13:41:29 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 12/16] x86/msr: Change wrmsr() to take a single parameter
Date: Fri, 15 Aug 2025 21:41:13 +0100
Message-Id: <20250815204117.3312742-13-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Mirroring the cleanup to rdmsr(), do the same to wrmsr().  It now has the same
API as wrmsrl(), but we'll want to drop that wrapper in due course.

It's telling that almost all remaining users pass in 0.  Most are converted
directly to WRMSRNS, but a few are not.

MSR_VIRT_SPEC_CTRL is unconditionally intercepted is orders of magnitude more
expensive than just serialising.  In disable_lapic_nmi_watchdog(), the P4 case
won't run on hardware which has anything more than plain WRMSR.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/cpu/amd.c                  |  2 +-
 xen/arch/x86/hvm/vmx/vmcs.c             |  2 +-
 xen/arch/x86/include/asm/msr.h          | 20 ++++++++++----------
 xen/arch/x86/nmi.c                      | 18 +++++++++---------
 xen/arch/x86/oprofile/op_model_athlon.c |  2 +-
 5 files changed, 22 insertions(+), 22 deletions(-)

diff --git a/xen/arch/x86/cpu/amd.c b/xen/arch/x86/cpu/amd.c
index 769413e96a3f..e03fba935510 100644
--- a/xen/arch/x86/cpu/amd.c
+++ b/xen/arch/x86/cpu/amd.c
@@ -934,7 +934,7 @@ void amd_set_legacy_ssbd(bool enable)
 		return;
 
 	if (cpu_has_virt_ssbd)
-		wrmsr(MSR_VIRT_SPEC_CTRL, enable ? SPEC_CTRL_SSBD : 0, 0);
+		wrmsr(MSR_VIRT_SPEC_CTRL, enable ? SPEC_CTRL_SSBD : 0);
 	else if (amd_legacy_ssbd)
 		core_set_legacy_ssbd(enable);
 	else
diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
index 1fa61a944b23..328cba64387d 100644
--- a/xen/arch/x86/hvm/vmx/vmcs.c
+++ b/xen/arch/x86/hvm/vmx/vmcs.c
@@ -754,7 +754,7 @@ static int _vmx_cpu_up(bool bsp)
         eax |= IA32_FEATURE_CONTROL_ENABLE_VMXON_OUTSIDE_SMX;
         if ( test_bit(X86_FEATURE_SMX, &boot_cpu_data.x86_capability) )
             eax |= IA32_FEATURE_CONTROL_ENABLE_VMXON_INSIDE_SMX;
-        wrmsr(MSR_IA32_FEATURE_CONTROL, eax, 0);
+        wrmsrns(MSR_IA32_FEATURE_CONTROL, eax);
     }
 
     if ( (rc = vmx_init_vmcs_config(bsp)) != 0 )
diff --git a/xen/arch/x86/include/asm/msr.h b/xen/arch/x86/include/asm/msr.h
index f1b2bd5adc9f..1bd27b989a4d 100644
--- a/xen/arch/x86/include/asm/msr.h
+++ b/xen/arch/x86/include/asm/msr.h
@@ -15,13 +15,17 @@
  *   uint64_t foo = rdmsr(MSR_BAR);
  *   wrmsrns(MSR_BAR, foo);
  *
+ * and, if architectural serialisaition is necessary, or there are other
+ * reasons that WRMSRNS is inapplicable, then:
+ *
+ *   wrmsr(MSR_BAR, foo);
+ *
  * In addition, *_safe() wrappers exist to cope gracefully with a #GP.
  *
  *
  * All legacy forms are to be phased out:
  *
  *  rdmsrl(MSR_FOO, val);
- *  wrmsr(MSR_FOO, lo, hi);
  *  wrmsrl(MSR_FOO, val);
  */
 
@@ -43,17 +47,13 @@ static inline uint64_t rdmsr(unsigned int msr)
        val = a__ | ((u64)b__<<32); \
 } while(0)
 
-#define wrmsr(msr,val1,val2) \
-     __asm__ __volatile__("wrmsr" \
-			  : /* no outputs */ \
-			  : "c" (msr), "a" (val1), "d" (val2))
-
-static inline void wrmsrl(unsigned int msr, uint64_t val)
+static inline void wrmsr(unsigned int msr, uint64_t val)
 {
-        uint32_t lo = val, hi = val >> 32;
+    uint32_t lo = val, hi = val >> 32;
 
-        wrmsr(msr, lo, hi);
+    asm volatile ( "wrmsr" :: "a" (lo), "d" (hi), "c" (msr) );
 }
+#define wrmsrl(msr, val) wrmsr(msr, val)
 
 /* Non-serialising WRMSR, when available.  Falls back to a serialising WRMSR. */
 static inline void wrmsrns(uint32_t msr, uint64_t val)
@@ -151,7 +151,7 @@ static inline void wrmsr_tsc_aux(uint32_t val)
 
     if ( *this_tsc_aux != val )
     {
-        wrmsr(MSR_TSC_AUX, val, 0);
+        wrmsrns(MSR_TSC_AUX, val);
         *this_tsc_aux = val;
     }
 }
diff --git a/xen/arch/x86/nmi.c b/xen/arch/x86/nmi.c
index 9793fa23168d..0d4aaa5a0b57 100644
--- a/xen/arch/x86/nmi.c
+++ b/xen/arch/x86/nmi.c
@@ -218,16 +218,16 @@ void disable_lapic_nmi_watchdog(void)
         return;
     switch (boot_cpu_data.x86_vendor) {
     case X86_VENDOR_AMD:
-        wrmsr(MSR_K7_EVNTSEL0, 0, 0);
+        wrmsrns(MSR_K7_EVNTSEL0, 0);
         break;
     case X86_VENDOR_INTEL:
         switch (boot_cpu_data.x86) {
         case 6:
-            wrmsr(MSR_P6_EVNTSEL(0), 0, 0);
+            wrmsrns(MSR_P6_EVNTSEL(0), 0);
             break;
         case 15:
-            wrmsr(MSR_P4_IQ_CCCR0, 0, 0);
-            wrmsr(MSR_P4_CRU_ESCR0, 0, 0);
+            wrmsr(MSR_P4_IQ_CCCR0, 0);
+            wrmsr(MSR_P4_CRU_ESCR0, 0);
             break;
         }
         break;
@@ -282,7 +282,7 @@ static void clear_msr_range(unsigned int base, unsigned int n)
     unsigned int i;
 
     for (i = 0; i < n; i++)
-        wrmsr(base+i, 0, 0);
+        wrmsrns(base + i, 0);
 }
 
 static inline void write_watchdog_counter(const char *descr)
@@ -308,11 +308,11 @@ static void setup_k7_watchdog(void)
         | K7_EVNTSEL_USR
         | K7_NMI_EVENT;
 
-    wrmsr(MSR_K7_EVNTSEL0, evntsel, 0);
+    wrmsr(MSR_K7_EVNTSEL0, evntsel);
     write_watchdog_counter("K7_PERFCTR0");
     apic_write(APIC_LVTPC, APIC_DM_NMI);
     evntsel |= K7_EVNTSEL_ENABLE;
-    wrmsr(MSR_K7_EVNTSEL0, evntsel, 0);
+    wrmsr(MSR_K7_EVNTSEL0, evntsel);
 }
 
 static void setup_p6_watchdog(unsigned counter)
@@ -338,11 +338,11 @@ static void setup_p6_watchdog(unsigned counter)
         | P6_EVNTSEL_USR
         | counter;
 
-    wrmsr(MSR_P6_EVNTSEL(0), evntsel, 0);
+    wrmsrns(MSR_P6_EVNTSEL(0), evntsel);
     write_watchdog_counter("P6_PERFCTR0");
     apic_write(APIC_LVTPC, APIC_DM_NMI);
     evntsel |= P6_EVNTSEL0_ENABLE;
-    wrmsr(MSR_P6_EVNTSEL(0), evntsel, 0);
+    wrmsrns(MSR_P6_EVNTSEL(0), evntsel);
 }
 
 static void setup_p4_watchdog(void)
diff --git a/xen/arch/x86/oprofile/op_model_athlon.c b/xen/arch/x86/oprofile/op_model_athlon.c
index bf897a4b6328..fd454b04c353 100644
--- a/xen/arch/x86/oprofile/op_model_athlon.c
+++ b/xen/arch/x86/oprofile/op_model_athlon.c
@@ -34,7 +34,7 @@
 #define MAX_COUNTERS FAM15H_NUM_COUNTERS
 
 #define CTR_READ(msr_content,msrs,c) do {rdmsrl(msrs->counters[(c)].addr, (msr_content));} while (0)
-#define CTR_WRITE(l,msrs,c) do {wrmsr(msrs->counters[(c)].addr, -(unsigned int)(l), -1);} while (0)
+#define CTR_WRITE(l,msrs,c) do { wrmsr(msrs->counters[(c)].addr, -l); } while (0)
 #define CTR_OVERFLOWED(n) (!((n) & (1ULL<<31)))
 
 #define CTRL_READ(msr_content,msrs,c) do {rdmsrl(msrs->controls[(c)].addr, (msr_content));} while (0)
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 20:41:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 20:41:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083895.1443423 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1un1F1-0007pg-JM; Fri, 15 Aug 2025 20:41:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083895.1443423; Fri, 15 Aug 2025 20:41: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 1un1F0-0007nf-NR; Fri, 15 Aug 2025 20:41:34 +0000
Received: by outflank-mailman (input) for mailman id 1083895;
 Fri, 15 Aug 2025 20:41:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oFbR=23=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1un1Ex-0005E7-RV
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 20:41:31 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 39b96662-7a18-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 22:41:31 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-45a1b0becf5so11026065e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 13:41:31 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3bb5d089e07sm3153924f8f.0.2025.08.15.13.41.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Aug 2025 13:41: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>
X-Inumbo-ID: 39b96662-7a18-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755290491; x=1755895291; 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=Blw/OgqEV6s8KO1QT2Lc7w+OV2g1Z3TtGNPo19pd+aY=;
        b=Vb0k2LzJLNqlyyhFFtf8ltlj79iTEKH0KXsyAiWQs0mQOHb+Ox1DsXIwyNHEv1NOLR
         A+8PeCfHK+uswArl6wra17YuLxNyUdSAr0voVpBVn0C+AEyzP0H580CPqD1Ync9/9M7g
         OPsl6ssXPhiNAN2FqczmKHKUFlktv/3cIl8kc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755290491; x=1755895291;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=Blw/OgqEV6s8KO1QT2Lc7w+OV2g1Z3TtGNPo19pd+aY=;
        b=daltgyzlzR6fgMGQCllaxFTAIWWaiK9FHBCqk8WH3cLRDdLOD0KHeCJVQ1WSL07ZUx
         Jj5HZ+Ey5Ewqzs6juc0R3w4Dp4rL9pV1upP1HtTqx8e8JJCDxxmj+lVRnuqnCOV6PoQi
         LYGBv6O1c3xHAKvwQ5CCu+dyCn9C3zFa1Htag3cgaotHTJJwjhSWp1iiE6A99ntYtaX5
         72cBF6R2MQ6vkkCLF8NhfwWHFvuVWggHUWdTv7fh24vrNQ0+gFTqMFGeNeRBvM2eSNCG
         KthMdioq0IyYySOYBfSqX4RQUsZKvO8bX+mBBOUIv1KzymYnGIwFVBRkeyju3eFPAGCx
         tCSg==
X-Gm-Message-State: AOJu0Yx5do7LnvrE4TewkhvlVoPu9fonnNJEWUNawVPUjdYK7YJly/Zm
	DgG30JJ2ZV7l6i6ctg2TRCoJwC/jeOhwyyGIG1a2VMf1Ontq/RGi6UQdsxL7YWnqVWbzoz39jVi
	YNtmv
X-Gm-Gg: ASbGncvrdFKkSXnmcgLGC8QCwv8qBSLWbAso+uT8EHbZLya0yTbjSwMOrbXOSks9v5m
	UgO9OuHkedKk9MwgrpsgPFTtspTNYsgZuibA48imBrT8cTfhnSk9qxxXbQoXHIH2keMuguSFGoG
	8HKVNWDI//d/ArRWRho2SDoMwY0d2535j6ijvrzcK6dcsbXSVhpO0AQetTGrWjgHpJZNECUtgEH
	GMducyH8rXIOoEEUYeYH68mr+GRvtReNgDQbps2yDciR4HQ/mD+InEnKZ8IsUvm3FkeA8DAApIG
	IfSl+MVy6xfWHqYYhaCAap8PXPwVS6ub9YEyduCqYWLP7oc1YgEKZ2WAxvn2k87P+PzWGO6PQw8
	Ozig/hnZwhVaEgaB2X8D07qK4YKbjkRMdRAAoibqSNtdTLS2UFHtyCBegtEdOPFVf+1Zw3tRhpn
	gI
X-Google-Smtp-Source: AGHT+IEZ6wVEsLUR/pwMbyTNhLupnt76Uj/H6B8RQmZijH++982FmR/W9Us83m9j3vRuXU+XgWQsmw==
X-Received: by 2002:a05:600c:354b:b0:456:eb9:5236 with SMTP id 5b1f17b1804b1-45a21808b2bmr34021885e9.15.1755290490541;
        Fri, 15 Aug 2025 13:41: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>
Subject: [PATCH v2 13/16] x86/msr: Use MSR_IMM when available
Date: Fri, 15 Aug 2025 21:41:14 +0100
Message-Id: <20250815204117.3312742-14-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Most MSR accesses have compile time constant indexes.  By using the immediate
form when available, the decoder can start issuing uops directly for the
relevant MSR, rather than having to issue uops to implement "switch (%ecx)".
Modern CPUs have tens of thousands of MSRs, so that's quite an if/else chain.

Create __{rdmsr,wrmsrns}_imm() helpers and use them from {rdmsr,wrmsrns}()
when the compiler can determine that the msr index is known at compile time.

At the instruction level, the combined ABI is awkward.  Explain our choices in
detail.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

The expression wrmsrns(MSR_STAR, rdmsr(MSR_STAR)) now yields:

  <test_star>:
      b9 81 00 00 c0          mov    $0xc0000081,%ecx
      0f 32                   rdmsr
      48 c1 e2 20             shl    $0x20,%rdx
      48 09 d0                or     %rdx,%rax
      48 89 c2                mov    %rax,%rdx
      48 c1 ea 20             shr    $0x20,%rdx
      2e 0f 30                cs wrmsr
      e9 a3 84 e8 ff          jmp    ffff82d040204260 <__x86_return_thunk>

which is as good as we can manage.  The alternative form of this looks like:

  <test_star>:
      b9 81 00 00 c0          mov    $0xc0000081,%ecx
      c4 e7 7b f6 c0 81 00    rdmsr  $0xc0000081,%rax
      00 c0
      2e c4 e7 7a f6 c0 81    cs wrmsrns %rax,$0xc0000081
      00 00 c0
      e9 xx xx xx xx          jmp    ffff82d040204260 <__x86_return_thunk>

Still TBD.  We ought to update the *_safe() forms too.  rdmsr_safe() is easier
because the potential #GP locations line up, but there need to be two variants
because of

v2:
 * Let the compiler do %ecx setup
 * Add RDMSR $imm too
---
 xen/arch/x86/include/asm/alternative.h      |  7 ++
 xen/arch/x86/include/asm/msr.h              | 86 ++++++++++++++++++++-
 xen/include/public/arch-x86/cpufeatureset.h |  1 +
 3 files changed, 92 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/include/asm/alternative.h b/xen/arch/x86/include/asm/alternative.h
index 0482bbf7cbf1..fe87b15ec72c 100644
--- a/xen/arch/x86/include/asm/alternative.h
+++ b/xen/arch/x86/include/asm/alternative.h
@@ -151,6 +151,13 @@ extern void alternative_instructions(void);
         ALTERNATIVE(oldinstr, newinstr, feature)                        \
         :: input )
 
+#define alternative_input_2(oldinstr, newinstr1, feature1,              \
+                            newinstr2, feature2, input...)              \
+    asm_inline volatile (                                               \
+        ALTERNATIVE_2(oldinstr, newinstr1, feature1,                    \
+                      newinstr2, feature2)                              \
+        :: input )
+
 /* Like alternative_input, but with a single output argument */
 #define alternative_io(oldinstr, newinstr, feature, output, input...)   \
     asm_inline volatile (                                               \
diff --git a/xen/arch/x86/include/asm/msr.h b/xen/arch/x86/include/asm/msr.h
index 1bd27b989a4d..2ceff6cca8bb 100644
--- a/xen/arch/x86/include/asm/msr.h
+++ b/xen/arch/x86/include/asm/msr.h
@@ -29,10 +29,52 @@
  *  wrmsrl(MSR_FOO, val);
  */
 
-static inline uint64_t rdmsr(unsigned int msr)
+/*
+ * RDMSR with a compile-time constant index, when available.  Falls back to
+ * plain RDMSR.
+ */
+static always_inline uint64_t __rdmsr_imm(uint32_t msr)
+{
+    uint64_t val;
+
+    /*
+     * For best performance, RDMSR $msr, %r64 is recommended.  For
+     * compatibility, we need to fall back to plain RDMSR.
+     *
+     * The combined ABI is awkward, because RDMSR $imm produces an r64,
+     * whereas WRMSR{,NS} produces a split edx:eax pair.
+     *
+     * Always use RDMSR $imm, %rax, because it has the most in common with the
+     * legacy form.  When MSR_IMM isn't available, emit logic to fold %edx
+     * back into %rax.
+     *
+     * Let the compiler do %ecx setup.  This does mean there's a useless `mov
+     * $imm, %ecx` in the instruction stream in the MSR_IMM case, but it means
+     * the compiler can de-duplicate the setup in the common case of reading
+     * and writing the same MSR.
+     */
+    alternative_io(
+        "rdmsr\n\t"
+        "shl $32, %%rdx\n\t"
+        "or %%rdx, %%rax\n\t",
+
+        /* RDMSR $msr, %rax */
+        ".byte 0xc4,0xe7,0x7b,0xf6,0xc0; .long %c[msr]", X86_FEATURE_MSR_IMM,
+
+        "=a" (val),
+
+        [msr] "i" (msr), "c" (msr) : "rdx");
+
+    return val;
+}
+
+static always_inline uint64_t rdmsr(unsigned int msr)
 {
     unsigned long lo, hi;
 
+    if ( __builtin_constant_p(msr) )
+        return __rdmsr_imm(msr);
+
     asm volatile ( "rdmsr"
                    : "=a" (lo), "=d" (hi)
                    : "c" (msr) );
@@ -55,11 +97,51 @@ static inline void wrmsr(unsigned int msr, uint64_t val)
 }
 #define wrmsrl(msr, val) wrmsr(msr, val)
 
+/*
+ * Non-serialising WRMSR with a compile-time constant index, when available.
+ * Falls back to plain WRMSRNS, or to a serialising WRMSR.
+ */
+static always_inline void __wrmsrns_imm(uint32_t msr, uint64_t val)
+{
+    /*
+     * For best performance, WRMSRNS %r64, $msr is recommended.  For
+     * compatibility, we need to fall back to plain WRMSRNS, or to WRMSR.
+     *
+     * The combined ABI is awkward, because WRMSRNS $imm takes a single r64,
+     * whereas WRMSR{,NS} takes a split edx:eax pair.
+     *
+     * Always use WRMSRNS %rax, $imm, because it has the most in common with
+     * the legacy forms.  When MSR_IMM isn't available, emit setup logic for
+     * %edx.
+     *
+     * Let the compiler do %ecx setup.  This does mean there's a useless `mov
+     * $imm, %ecx` in the instruction stream in the MSR_IMM case, but it means
+     * the compiler can de-duplicate the setup in the common case of reading
+     * and writing the same MSR.
+     */
+    alternative_input_2(
+        "mov %%rax, %%rdx\n\t"
+        "shr $32, %%rdx\n\t"
+        ".byte 0x2e; wrmsr",
+
+        /* CS WRMSRNS %rax, $msr */
+        ".byte 0x2e,0xc4,0xe7,0x7a,0xf6,0xc0; .long %c[msr]", X86_FEATURE_MSR_IMM,
+
+        "mov %%rax, %%rdx\n\t"
+        "shr $32, %%rdx\n\t"
+        ".byte 0x0f,0x01,0xc6", X86_FEATURE_WRMSRNS,
+
+        [msr] "i" (msr), "a" (val), "c" (msr) : "rdx");
+}
+
 /* Non-serialising WRMSR, when available.  Falls back to a serialising WRMSR. */
-static inline void wrmsrns(uint32_t msr, uint64_t val)
+static always_inline void wrmsrns(uint32_t msr, uint64_t val)
 {
     uint32_t lo = val, hi = val >> 32;
 
+    if ( __builtin_constant_p(msr) )
+        return __wrmsrns_imm(msr, val);
+
     /*
      * WRMSR is 2 bytes.  WRMSRNS is 3 bytes.  Pad WRMSR with a redundant CS
      * prefix to avoid a trailing NOP.
diff --git a/xen/include/public/arch-x86/cpufeatureset.h b/xen/include/public/arch-x86/cpufeatureset.h
index f7312e0b04e7..990b1d13f301 100644
--- a/xen/include/public/arch-x86/cpufeatureset.h
+++ b/xen/include/public/arch-x86/cpufeatureset.h
@@ -349,6 +349,7 @@ XEN_CPUFEATURE(MCDT_NO,            13*32+ 5) /*A  MCDT_NO */
 XEN_CPUFEATURE(UC_LOCK_DIS,        13*32+ 6) /*   UC-lock disable */
 
 /* Intel-defined CPU features, CPUID level 0x00000007:1.ecx, word 14 */
+XEN_CPUFEATURE(MSR_IMM,            14*32+ 5) /*   {RD,WR}MSR $imm32 */
 
 /* Intel-defined CPU features, CPUID level 0x00000007:1.edx, word 15 */
 XEN_CPUFEATURE(AVX_VNNI_INT8,      15*32+ 4) /*A  AVX-VNNI-INT8 Instructions */
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 20:41:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 20:41:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083896.1443427 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1un1F2-0007vb-7f; Fri, 15 Aug 2025 20:41:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083896.1443427; Fri, 15 Aug 2025 20:41: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 1un1F1-0007uC-Ew; Fri, 15 Aug 2025 20:41:35 +0000
Received: by outflank-mailman (input) for mailman id 1083896;
 Fri, 15 Aug 2025 20:41:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oFbR=23=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1un1Ey-0005Rl-2D
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 20:41:32 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 38d972ff-7a18-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 22:41:30 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-45a1b0cbbbaso15530345e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 13:41:30 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3bb5d089e07sm3153924f8f.0.2025.08.15.13.41.28
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Aug 2025 13:41: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>
X-Inumbo-ID: 38d972ff-7a18-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755290489; x=1755895289; 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=tsAW6YRQ7EL+rm+g8TqTA5BGiKOLvFJtiuYCMyK0eMA=;
        b=MtRdOHa1fV27dfLwkNwnfejdWy+wf5oQlMZiU0XRcVORaiNtiKjY6CcyhknIX1xA1K
         97+zkDbxq89vUiE4uokEQxwbG/GAFZymlGaE85x6vVpehSjr8eDmWhvZkKAsVepX/a0v
         kJ/aLm3lY8Ar1VV9q5J1u0gM0lDk170O6FoMg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755290489; x=1755895289;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=tsAW6YRQ7EL+rm+g8TqTA5BGiKOLvFJtiuYCMyK0eMA=;
        b=fTL+7InH8/Ng4xtkTh2X4IQrQHyFYtFneiTModCuz8O//L2/KoLGSsV9zMtZ8zWBZq
         NVaZJBkbA1mISDM0sIxWTvhPqt8ELb116f5goBicVA3DbMWPxA7RsGAGWdxe9ggYuyQ1
         9saVU5eDoEqvDTyvSjP5k3Bb4qfYj8x2E9fYVaty6+o7ZOL8JbgrpmtBTsVXQ/o8L070
         0sBWsmRRKtX/xZQY82wR6vbtPfGCzbf4zGUCePWNg7FP4TeOfi3TJZEd5lurrVoYVGfZ
         Ch+x8uIKVKN3NItbYWfeeOuJMDxsiTYCeqjQSdNqm60flTi7ACTQU1x7bBRt12MDV8dc
         T6bw==
X-Gm-Message-State: AOJu0YzPG2oD4Uksj1O5BM+nm6INZQMNOnXNGUGEbdlbGtQWI2m9ggyN
	lmnulBvxMZfeVNG+Kwnsxi+2gBJDlEOq3U6fqv06t/djAE2iaZh4Dqf70jnpysMstGbUvmxXoR+
	/o2a9
X-Gm-Gg: ASbGnct/AM4kEIiWnZacorpQhrPRl8f88ya/xv/MvebhsxpjsBha2wgvva1PU6k+9W1
	mDzXX/Gx9K8+/+pNt1dnP6cjBJnleKFl5nI5lufpHuXmRWWt2apU4HAY/qfufrMqSn62YQN2x4h
	FqsMgJU519ZsDDqAU3ehjlY0w6DshYy/8hLHJ49NZLZWvZHF5+hgJi00J2l6V2MCWtwEhhpmPbx
	wIIx5e81pEV/P+RCP5l8pgl3elHBqZoYgi6A/8Nl1uHs4WZTRXT3GV12sDKguw+9xJQI/JgWytm
	9piJXTsH355oIGHcPMlF5kZW0VtsemVGcTZRebjipdNFD9u3twy3xuL+nO0OOy9VmrIorLThEd8
	mwxLj8n5rLisZd79PN2htab3yZkeYJL0pbYTN5uZfZ4lX/OhYJQRkxUFyqmGq1yHEFRxR9eYpz+
	Nslm9gApSDXqo=
X-Google-Smtp-Source: AGHT+IG4qV3LMsXZdcksnTtPUD53NbWs2YRqPMmUo3CKbagEy/65pcXsy5+FfvxgmjCk2FDjGtr+QA==
X-Received: by 2002:a05:600c:4ec6:b0:456:f1e:205c with SMTP id 5b1f17b1804b1-45a23deba7bmr25980285e9.4.1755290489144;
        Fri, 15 Aug 2025 13:41:29 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 11/16] x86/msr: Change rdmsr() to have normal API
Date: Fri, 15 Aug 2025 21:41:12 +0100
Message-Id: <20250815204117.3312742-12-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

We want a consistent MSR API, and these want to be named rdmsr() and wrmsr(),
but not with their current APIs.  The current rdmsr() flavours writing to
their parameters by name makes code that reads like invalid C, and is
unergonomic to use in lots of cases.

Change the API, and update the callers all in one go.  Where appropriate,
update the write side to wrmsrns() as per the recommendation.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

I do have a more creative solution if this patch is considered to be too
large.  https://gitlab.com/xen-project/hardware/xen-staging/-/commit/e13cf25d06d08481e2c138daa1fd902cf36d757b
---
 xen/arch/x86/acpi/cpufreq/powernow.c | 12 ++++++-----
 xen/arch/x86/cpu/amd.c               |  6 +++---
 xen/arch/x86/cpu/common.c            | 20 +++++++++++--------
 xen/arch/x86/cpu/intel.c             | 30 ++++++++++++++--------------
 xen/arch/x86/genapic/x2apic.c        |  5 +----
 xen/arch/x86/hvm/vmx/vmcs.c          | 30 +++++++++++++++++++++-------
 xen/arch/x86/include/asm/msr.h       | 30 ++++++++++++++++++++++++----
 xen/arch/x86/include/asm/prot-key.h  |  6 +-----
 xen/arch/x86/tsx.c                   | 27 ++++++++++---------------
 9 files changed, 99 insertions(+), 67 deletions(-)

diff --git a/xen/arch/x86/acpi/cpufreq/powernow.c b/xen/arch/x86/acpi/cpufreq/powernow.c
index 12fca45b4551..71ac0b45261a 100644
--- a/xen/arch/x86/acpi/cpufreq/powernow.c
+++ b/xen/arch/x86/acpi/cpufreq/powernow.c
@@ -140,23 +140,25 @@ static int cf_check powernow_cpufreq_target(
 
 static void amd_fixup_frequency(struct xen_processor_px *px)
 {
-    u32 hi, lo, fid, did;
+    uint64_t val;
+    uint32_t fid, did;
     int index = px->control & 0x00000007;
     const struct cpuinfo_x86 *c = &current_cpu_data;
 
     if ((c->x86 != 0x10 || c->x86_model >= 10) && c->x86 != 0x11)
         return;
 
-    rdmsr(MSR_PSTATE_DEF_BASE + index, lo, hi);
+    val = rdmsr(MSR_PSTATE_DEF_BASE + index);
+
     /*
      * MSR C001_0064+:
      * Bit 63: PstateEn. Read-write. If set, the P-state is valid.
      */
-    if (!(hi & (1U << 31)))
+    if (!(val & (1UL << 63)))
         return;
 
-    fid = lo & 0x3f;
-    did = (lo >> 6) & 7;
+    fid = val & 0x3f;
+    did = (val >> 6) & 7;
     if (c->x86 == 0x10)
         px->core_frequency = (100 * (fid + 16)) >> did;
     else
diff --git a/xen/arch/x86/cpu/amd.c b/xen/arch/x86/cpu/amd.c
index 567b992a9fe2..769413e96a3f 100644
--- a/xen/arch/x86/cpu/amd.c
+++ b/xen/arch/x86/cpu/amd.c
@@ -1369,9 +1369,9 @@ static void cf_check init_amd(struct cpuinfo_x86 *c)
 	}
 
 	if (cpu_has(c, X86_FEATURE_EFRO)) {
-		rdmsr(MSR_K8_HWCR, l, h);
-		l |= (1 << 27); /* Enable read-only APERF/MPERF bit */
-		wrmsr(MSR_K8_HWCR, l, h);
+		/* Enable read-only APERF/MPERF bit */
+		wrmsrns(MSR_K8_HWCR,
+			rdmsr(MSR_K8_HWCR) | (1 << 27));
 	}
 
 	/* Prevent TSC drift in non single-processor, single-core platforms. */
diff --git a/xen/arch/x86/cpu/common.c b/xen/arch/x86/cpu/common.c
index 530b9eb39abc..9c6b8c291d6e 100644
--- a/xen/arch/x86/cpu/common.c
+++ b/xen/arch/x86/cpu/common.c
@@ -329,6 +329,7 @@ static inline u32 phys_pkg_id(u32 cpuid_apic, int index_msb)
 void __init early_cpu_init(bool verbose)
 {
 	struct cpuinfo_x86 *c = &boot_cpu_data;
+	uint64_t val;
 	u32 eax, ebx, ecx, edx;
 
 	c->x86_cache_alignment = 32;
@@ -412,10 +413,11 @@ void __init early_cpu_init(bool verbose)
 			    &c->x86_capability[FEATURESET_7c0],
 			    &c->x86_capability[FEATURESET_7d0]);
 
-		if (test_bit(X86_FEATURE_ARCH_CAPS, c->x86_capability))
-			rdmsr(MSR_ARCH_CAPABILITIES,
-			      c->x86_capability[FEATURESET_m10Al],
-			      c->x86_capability[FEATURESET_m10Ah]);
+		if (test_bit(X86_FEATURE_ARCH_CAPS, c->x86_capability)) {
+			val = rdmsr(MSR_ARCH_CAPABILITIES);
+			c->x86_capability[FEATURESET_m10Al] = val;
+			c->x86_capability[FEATURESET_m10Al] = val >> 32;
+		}
 
 		if (max_subleaf >= 1)
 			cpuid_count(7, 1, &eax, &ebx, &ecx,
@@ -467,6 +469,7 @@ void reset_cpuinfo(struct cpuinfo_x86 *c, bool keep_basic)
 
 static void generic_identify(struct cpuinfo_x86 *c)
 {
+	uint64_t val;
 	u32 eax, ebx, ecx, edx, tmp;
 
 	/* Get vendor name */
@@ -559,10 +562,11 @@ static void generic_identify(struct cpuinfo_x86 *c)
 			    &c->x86_capability[FEATURESET_Da1],
 			    &tmp, &tmp, &tmp);
 
-	if (test_bit(X86_FEATURE_ARCH_CAPS, c->x86_capability))
-		rdmsr(MSR_ARCH_CAPABILITIES,
-		      c->x86_capability[FEATURESET_m10Al],
-		      c->x86_capability[FEATURESET_m10Ah]);
+	if (test_bit(X86_FEATURE_ARCH_CAPS, c->x86_capability)) {
+		val = rdmsr(MSR_ARCH_CAPABILITIES);
+		c->x86_capability[FEATURESET_m10Al] = val;
+		c->x86_capability[FEATURESET_m10Al] = val >> 32;
+	}
 }
 
 /*
diff --git a/xen/arch/x86/cpu/intel.c b/xen/arch/x86/cpu/intel.c
index ecca11f04db8..4f5bb022deea 100644
--- a/xen/arch/x86/cpu/intel.c
+++ b/xen/arch/x86/cpu/intel.c
@@ -23,17 +23,17 @@ static uint32_t __ro_after_init mcu_opt_ctrl_val;
 
 void update_mcu_opt_ctrl(void)
 {
-    uint32_t mask = mcu_opt_ctrl_mask, lo, hi;
+    uint32_t mask = mcu_opt_ctrl_mask, val;
 
     if ( !mask )
         return;
 
-    rdmsr(MSR_MCU_OPT_CTRL, lo, hi);
+    val = rdmsr(MSR_MCU_OPT_CTRL);
 
-    lo &= ~mask;
-    lo |= mcu_opt_ctrl_val;
+    val &= ~mask;
+    val |= mcu_opt_ctrl_val;
 
-    wrmsr(MSR_MCU_OPT_CTRL, lo, hi);
+    wrmsrns(MSR_MCU_OPT_CTRL, val);
 }
 
 void __init set_in_mcu_opt_ctrl(uint32_t mask, uint32_t val)
@@ -51,17 +51,17 @@ static uint32_t __ro_after_init pb_opt_ctrl_val;
 
 void update_pb_opt_ctrl(void)
 {
-    uint32_t mask = pb_opt_ctrl_mask, lo, hi;
+    uint32_t mask = pb_opt_ctrl_mask, val;
 
     if ( !mask )
         return;
 
-    rdmsr(MSR_PB_OPT_CTRL, lo, hi);
+    val = rdmsr(MSR_PB_OPT_CTRL);
 
-    lo &= ~mask;
-    lo |= pb_opt_ctrl_val;
+    val &= ~mask;
+    val |= pb_opt_ctrl_val;
 
-    wrmsr(MSR_PB_OPT_CTRL, lo, hi);
+    wrmsrns(MSR_PB_OPT_CTRL, val);
 }
 
 void __init set_in_pb_opt_ctrl(uint32_t mask, uint32_t val)
@@ -456,15 +456,15 @@ static void __init probe_mwait_errata(void)
  */
 static void Intel_errata_workarounds(struct cpuinfo_x86 *c)
 {
-	unsigned long lo, hi;
+	uint64_t val;
 
 	if ((c->x86 == 15) && (c->x86_model == 1) && (c->x86_mask == 1)) {
-		rdmsr (MSR_IA32_MISC_ENABLE, lo, hi);
-		if ((lo & (1<<9)) == 0) {
+		val = rdmsr(MSR_IA32_MISC_ENABLE);
+		if ((val & (1 << 9)) == 0) {
 			printk (KERN_INFO "CPU: C0 stepping P4 Xeon detected.\n");
 			printk (KERN_INFO "CPU: Disabling hardware prefetching (Errata 037)\n");
-			lo |= (1<<9);	/* Disable hw prefetching */
-			wrmsr (MSR_IA32_MISC_ENABLE, lo, hi);
+			val |= (1 << 9); /* Disable hw prefetching */
+			wrmsrns(MSR_IA32_MISC_ENABLE, val);
 		}
 	}
 
diff --git a/xen/arch/x86/genapic/x2apic.c b/xen/arch/x86/genapic/x2apic.c
index 1d55eb6b8a41..58157c217ee8 100644
--- a/xen/arch/x86/genapic/x2apic.c
+++ b/xen/arch/x86/genapic/x2apic.c
@@ -268,14 +268,11 @@ const struct genapic *__init apic_x2apic_probe(void)
 
 void __init check_x2apic_preenabled(void)
 {
-    u32 lo, hi;
-
     if ( !cpu_has_x2apic )
         return;
 
     /* Check whether x2apic mode was already enabled by the BIOS. */
-    rdmsr(MSR_APIC_BASE, lo, hi);
-    if ( lo & APIC_BASE_EXTD )
+    if ( rdmsr(MSR_APIC_BASE) & APIC_BASE_EXTD )
     {
         printk("x2APIC mode is already enabled by BIOS.\n");
         x2apic_enabled = 1;
diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
index ab8b1c87ec0f..1fa61a944b23 100644
--- a/xen/arch/x86/hvm/vmx/vmcs.c
+++ b/xen/arch/x86/hvm/vmx/vmcs.c
@@ -207,9 +207,13 @@ static void __init vmx_display_features(void)
 static u32 adjust_vmx_controls(
     const char *name, u32 ctl_min, u32 ctl_opt, u32 msr, bool *mismatch)
 {
+    uint64_t val;
     u32 vmx_msr_low, vmx_msr_high, ctl = ctl_min | ctl_opt;
 
-    rdmsr(msr, vmx_msr_low, vmx_msr_high);
+    val = rdmsr(msr);
+
+    vmx_msr_low = val;
+    vmx_msr_high = val >> 32;
 
     ctl &= vmx_msr_high; /* bit == 0 in high word ==> must be zero */
     ctl |= vmx_msr_low;  /* bit == 1 in low word  ==> must be one  */
@@ -258,10 +262,13 @@ static int vmx_init_vmcs_config(bool bsp)
 {
     u32 vmx_basic_msr_low, vmx_basic_msr_high, min, opt;
     struct vmx_caps caps = {};
-    u64 _vmx_misc_cap = 0;
+    uint64_t _vmx_misc_cap = 0, val;
     bool mismatch = false;
 
-    rdmsr(MSR_IA32_VMX_BASIC, vmx_basic_msr_low, vmx_basic_msr_high);
+    val = rdmsr(MSR_IA32_VMX_BASIC);
+
+    vmx_basic_msr_low = val;
+    vmx_basic_msr_high = val >> 32;
 
     min = (PIN_BASED_EXT_INTR_MASK |
            PIN_BASED_NMI_EXITING);
@@ -366,7 +373,10 @@ static int vmx_init_vmcs_config(bool bsp)
     if ( caps.secondary_exec_control & (SECONDARY_EXEC_ENABLE_EPT |
                                         SECONDARY_EXEC_ENABLE_VPID) )
     {
-        rdmsr(MSR_IA32_VMX_EPT_VPID_CAP, caps.ept, caps.vpid);
+        val = rdmsr(MSR_IA32_VMX_EPT_VPID_CAP);
+
+        caps.ept = val;
+        caps.vpid = val >> 32;
 
         if ( !opt_ept_ad )
             caps.ept &= ~VMX_EPT_AD_BIT;
@@ -408,9 +418,15 @@ static int vmx_init_vmcs_config(bool bsp)
          * We check VMX_BASIC_MSR[55] to correctly handle default controls.
          */
         uint32_t must_be_one, must_be_zero, msr = MSR_IA32_VMX_PROCBASED_CTLS;
+
         if ( vmx_basic_msr_high & (VMX_BASIC_DEFAULT1_ZERO >> 32) )
             msr = MSR_IA32_VMX_TRUE_PROCBASED_CTLS;
-        rdmsr(msr, must_be_one, must_be_zero);
+
+        val = rdmsr(msr);
+
+        must_be_one = val;
+        must_be_zero = val >> 32;
+
         if ( must_be_one & (CPU_BASED_INVLPG_EXITING |
                             CPU_BASED_CR3_LOAD_EXITING |
                             CPU_BASED_CR3_STORE_EXITING) )
@@ -699,7 +715,7 @@ void cf_check vmx_cpu_dead(unsigned int cpu)
 
 static int _vmx_cpu_up(bool bsp)
 {
-    u32 eax, edx;
+    u32 eax;
     int rc, bios_locked, cpu = smp_processor_id();
     u64 cr0, vmx_cr0_fixed0, vmx_cr0_fixed1;
 
@@ -719,7 +735,7 @@ static int _vmx_cpu_up(bool bsp)
         return -EINVAL;
     }
 
-    rdmsr(MSR_IA32_FEATURE_CONTROL, eax, edx);
+    eax = rdmsr(MSR_IA32_FEATURE_CONTROL);
 
     bios_locked = !!(eax & IA32_FEATURE_CONTROL_LOCK);
     if ( bios_locked )
diff --git a/xen/arch/x86/include/asm/msr.h b/xen/arch/x86/include/asm/msr.h
index c0d66562956d..f1b2bd5adc9f 100644
--- a/xen/arch/x86/include/asm/msr.h
+++ b/xen/arch/x86/include/asm/msr.h
@@ -9,10 +9,32 @@
 #include <asm/asm_defns.h>
 #include <asm/msr-index.h>
 
-#define rdmsr(msr,val1,val2) \
-     __asm__ __volatile__("rdmsr" \
-			  : "=a" (val1), "=d" (val2) \
-			  : "c" (msr))
+/*
+ * MSR APIs.  Most logic is expected to use:
+ *
+ *   uint64_t foo = rdmsr(MSR_BAR);
+ *   wrmsrns(MSR_BAR, foo);
+ *
+ * In addition, *_safe() wrappers exist to cope gracefully with a #GP.
+ *
+ *
+ * All legacy forms are to be phased out:
+ *
+ *  rdmsrl(MSR_FOO, val);
+ *  wrmsr(MSR_FOO, lo, hi);
+ *  wrmsrl(MSR_FOO, val);
+ */
+
+static inline uint64_t rdmsr(unsigned int msr)
+{
+    unsigned long lo, hi;
+
+    asm volatile ( "rdmsr"
+                   : "=a" (lo), "=d" (hi)
+                   : "c" (msr) );
+
+    return (hi << 32) | lo;
+}
 
 #define rdmsrl(msr,val) do { unsigned long a__,b__; \
        __asm__ __volatile__("rdmsr" \
diff --git a/xen/arch/x86/include/asm/prot-key.h b/xen/arch/x86/include/asm/prot-key.h
index 3e9c2eaef415..8fb15b5c32e9 100644
--- a/xen/arch/x86/include/asm/prot-key.h
+++ b/xen/arch/x86/include/asm/prot-key.h
@@ -52,11 +52,7 @@ DECLARE_PER_CPU(uint32_t, pkrs);
 
 static inline uint32_t rdpkrs(void)
 {
-    uint32_t pkrs, tmp;
-
-    rdmsr(MSR_PKRS, pkrs, tmp);
-
-    return pkrs;
+    return rdmsr(MSR_PKRS);
 }
 
 static inline uint32_t rdpkrs_and_cache(void)
diff --git a/xen/arch/x86/tsx.c b/xen/arch/x86/tsx.c
index 2a0c7c08a2ba..fe9f0ab4f792 100644
--- a/xen/arch/x86/tsx.c
+++ b/xen/arch/x86/tsx.c
@@ -42,6 +42,8 @@ void tsx_init(void)
 {
     static bool __read_mostly once;
 
+    uint64_t val;
+
     /*
      * This function is first called between microcode being loaded, and
      * CPUID being scanned generally. early_cpu_init() has already prepared
@@ -62,8 +64,6 @@ void tsx_init(void)
              * On a TAA-vulnerable or later part with at least the May 2020
              * microcode mitigating SRBDS.
              */
-            uint64_t val;
-
             rdmsrl(MSR_MCU_OPT_CTRL, val);
 
             /*
@@ -118,8 +118,6 @@ void tsx_init(void)
 
         if ( cpu_has_tsx_force_abort )
         {
-            uint64_t val;
-
             /*
              * On an early TSX-enabled Skylake part subject to the memory
              * ordering erratum, with at least the March 2019 microcode.
@@ -250,18 +248,17 @@ void tsx_init(void)
          *    controlled, we have or will set MSR_MCU_OPT_CTRL.RTM_ALLOW to
          *    let TSX_CTRL.RTM_DISABLE be usable.
          */
-        uint32_t hi, lo;
 
-        rdmsr(MSR_TSX_CTRL, lo, hi);
+        val = rdmsr(MSR_TSX_CTRL);
 
         /* Check bottom bit only.  Higher bits are various sentinels. */
         rtm_disabled = !(opt_tsx & 1);
 
-        lo &= ~(TSX_CTRL_RTM_DISABLE | TSX_CTRL_CPUID_CLEAR);
+        val &= ~(TSX_CTRL_RTM_DISABLE | TSX_CTRL_CPUID_CLEAR);
         if ( rtm_disabled )
-            lo |= TSX_CTRL_RTM_DISABLE | TSX_CTRL_CPUID_CLEAR;
+            val |= TSX_CTRL_RTM_DISABLE | TSX_CTRL_CPUID_CLEAR;
 
-        wrmsr(MSR_TSX_CTRL, lo, hi);
+        wrmsrns(MSR_TSX_CTRL, val);
     }
     else if ( cpu_has_tsx_force_abort )
     {
@@ -269,14 +266,12 @@ void tsx_init(void)
          * On an early TSX-enable Skylake part subject to the memory ordering
          * erratum, with at least the March 2019 microcode.
          */
-        uint32_t hi, lo;
-
-        rdmsr(MSR_TSX_FORCE_ABORT, lo, hi);
+        val = rdmsr(MSR_TSX_FORCE_ABORT);
 
         /* Check bottom bit only.  Higher bits are various sentinels. */
         rtm_disabled = !(opt_tsx & 1);
 
-        lo &= ~(TSX_FORCE_ABORT_RTM | TSX_CPUID_CLEAR | TSX_ENABLE_RTM);
+        val &= ~(TSX_FORCE_ABORT_RTM | TSX_CPUID_CLEAR | TSX_ENABLE_RTM);
 
         if ( cpu_has_rtm_always_abort )
         {
@@ -291,7 +286,7 @@ void tsx_init(void)
              *  - TSX_FORCE_ABORT.ENABLE_RTM may be used to opt in to
              *    re-enabling RTM, at the users own risk.
              */
-            lo |= rtm_disabled ? TSX_CPUID_CLEAR : TSX_ENABLE_RTM;
+            val |= rtm_disabled ? TSX_CPUID_CLEAR : TSX_ENABLE_RTM;
         }
         else
         {
@@ -304,10 +299,10 @@ void tsx_init(void)
              *    setting TSX_FORCE_ABORT.FORCE_ABORT_RTM.
              */
             if ( rtm_disabled )
-                lo |= TSX_FORCE_ABORT_RTM;
+                val |= TSX_FORCE_ABORT_RTM;
         }
 
-        wrmsr(MSR_TSX_FORCE_ABORT, lo, hi);
+        wrmsrns(MSR_TSX_FORCE_ABORT, val);
     }
     else if ( opt_tsx >= 0 )
         printk_once(XENLOG_WARNING
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 20:41:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 20:41:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083898.1443433 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1un1F3-0008Dy-Lf; Fri, 15 Aug 2025 20:41:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083898.1443433; Fri, 15 Aug 2025 20: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 1un1F2-00088l-S3; Fri, 15 Aug 2025 20:41:36 +0000
Received: by outflank-mailman (input) for mailman id 1083898;
 Fri, 15 Aug 2025 20:41:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oFbR=23=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1un1Ez-0005E7-Jz
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 20:41:33 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3a0fcd2e-7a18-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 22:41:32 +0200 (CEST)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-45a1b00797dso14310255e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 13:41:32 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3bb5d089e07sm3153924f8f.0.2025.08.15.13.41.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Aug 2025 13:41: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>
X-Inumbo-ID: 3a0fcd2e-7a18-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755290491; x=1755895291; 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=5l8iC7hfjMIumK90MTT4QYT+fq6ZtsDyp8BT4xY81Ws=;
        b=QgUKC5CwmPiTcmGUKQj4TFX97xJEJIrTv+BHwTwCnhuNMbQTHl1ZS3c5Dfxhdbaeo0
         8e1NMVLNvcEE/8G95mbintsRUbaHClebKRjn3CuS2WYeYZECKR5D1QzHVj+z6XUbbWPz
         ZlPwKiFu6s6y0EAAQDWjDvUexT7WKAk4+PFdY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755290491; x=1755895291;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=5l8iC7hfjMIumK90MTT4QYT+fq6ZtsDyp8BT4xY81Ws=;
        b=AyjMgcLktLjUsx3yJetjn3xCx0FCLLIg5C4FPEI740u6/mVIgT6nlrQlwAPkM++MHR
         +kg9dGWa6Hn9lUgbDpCz40rCTg1KPovFllwit29AL6C6YVvI3Puj+MBpLSUIhIUoLZQA
         MO0e7bGom3oXqdoctan/WNmDEryfFUIZJgP4uknSOeUlkYccqZKfgvfZB4LLi/w4pu1h
         RD2DM4danEB6DjPwdiodcfnnSC/qZCvpCcHCgcEzgxIwZzkc0w913ar6DZz98yOv+PmW
         555OIxiwmS3ksiGBZQc9b26fd/Gjo14s6t3P99rscIImdgl83D8PVJdM0Q4OZ7Z/HVdQ
         icGQ==
X-Gm-Message-State: AOJu0YxnhgQAR5LzzoJHyZp6Vuk4U42UcR0zQQ6x8gN5QQ5NSxscFO+5
	i0ziSYXng0/OnyvzIhMwgUEIjeNylBOzoSdIckcnnSODKJrNS105x8a8q+TI+81i4+xssszf3F/
	os5gb
X-Gm-Gg: ASbGncu9CAG5i96IyEzfN7I8aM0BNSHdpfL9OI7o9wWlO3pUT6Tp91+z9oQ8LY4DCVl
	PcH5t0Ksobp25f6fwV2qssii//TP8nU7DnWT6UHnzB5rWm6TdH3jG1OK4xOopzgZ20xbY1rPzHJ
	ed1n/nK5k2xlOecaVw1HGkXwAlsi8qu2XgmyKIxcUCbltaoTipTFAKjgdPkvaOnkImGbI9qrp0F
	LTFJzsHZ3x7104jbcLHXRrXAHCuPeBc8zX7/k1Ti2dOC8p9BFKXfmJ3bHuewIbFcCcmJZiu5vZh
	yfrZe0+T0QKNXfr3z4ShrUlm50g9Q/jHmzZnmVjFySx08eOETgwMxsIvqNVm5WzxcuFnwcOR7dT
	ASofD2IZq1DpkBV3xLEyY39QurqeuULeDuG5wRXnD0TLAcuSJYaLq5YzPpRyq/YBlOETic2KUfU
	OW
X-Google-Smtp-Source: AGHT+IGLKcxsTFD/74Q1iwVsGiS+q0qhl5kyjKoENcYh0fT3yViCJ70DCGmKJRr8XyDGkjzzso3jDw==
X-Received: by 2002:a05:600c:1e03:b0:458:bfb1:1fb6 with SMTP id 5b1f17b1804b1-45a21d44a9amr32589075e9.2.1755290491196;
        Fri, 15 Aug 2025 13:41:31 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 14/16] x86/fsgsbase: Split out __{rd,wr}gskern() helpers
Date: Fri, 15 Aug 2025 21:41:15 +0100
Message-Id: <20250815204117.3312742-15-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Right now they're inline in {read,write}_gs_shadow(), but we're going to need
to use these elsewhere to support FRED.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/include/asm/fsgsbase.h | 36 ++++++++++++++++++-----------
 1 file changed, 23 insertions(+), 13 deletions(-)

diff --git a/xen/arch/x86/include/asm/fsgsbase.h b/xen/arch/x86/include/asm/fsgsbase.h
index 03e6a85d31ce..90d116f3bb54 100644
--- a/xen/arch/x86/include/asm/fsgsbase.h
+++ b/xen/arch/x86/include/asm/fsgsbase.h
@@ -32,6 +32,17 @@ static inline unsigned long __rdgsbase(void)
     return base;
 }
 
+static inline unsigned long __rdgskern(void)
+{
+    unsigned long base;
+
+    asm_inline volatile ( "swapgs\n\t"
+                          "rdgsbase %0\n\t"
+                          "swapgs" : "=r" (base) );
+
+    return base;
+}
+
 static inline void __wrfsbase(unsigned long base)
 {
     asm volatile ( "wrfsbase %0" :: "r" (base) );
@@ -42,6 +53,14 @@ static inline void __wrgsbase(unsigned long base)
     asm volatile ( "wrgsbase %0" :: "r" (base) );
 }
 
+static inline void __wrgskern(unsigned long base)
+{
+    asm_inline volatile ( "swapgs\n\t"
+                          "wrgsbase %0\n\t"
+                          "swapgs"
+                          :: "r" (base) );
+}
+
 static inline unsigned long read_fs_base(void)
 {
     unsigned long base;
@@ -71,13 +90,9 @@ static inline unsigned long read_gs_shadow(void)
     unsigned long base;
 
     if ( read_cr4() & X86_CR4_FSGSBASE )
-    {
-        asm volatile ( "swapgs" );
-        base = __rdgsbase();
-        asm volatile ( "swapgs" );
-    }
-    else
-        rdmsrl(MSR_SHADOW_GS_BASE, base);
+        return __rdgskern();
+
+    rdmsrl(MSR_SHADOW_GS_BASE, base);
 
     return base;
 }
@@ -101,12 +116,7 @@ static inline void write_gs_base(unsigned long base)
 static inline void write_gs_shadow(unsigned long base)
 {
     if ( read_cr4() & X86_CR4_FSGSBASE )
-    {
-        asm volatile ( "swapgs\n\t"
-                       "wrgsbase %0\n\t"
-                       "swapgs"
-                       :: "r" (base) );
-    }
+        __wrgskern(base);
     else
         wrmsrl(MSR_SHADOW_GS_BASE, base);
 }
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 20:41:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 20:41:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083901.1443443 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1un1F4-0008S7-O6; Fri, 15 Aug 2025 20:41:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083901.1443443; Fri, 15 Aug 2025 20:41: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 1un1F4-0008OY-1k; Fri, 15 Aug 2025 20:41:38 +0000
Received: by outflank-mailman (input) for mailman id 1083901;
 Fri, 15 Aug 2025 20:41:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oFbR=23=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1un1F0-0005Rl-LW
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 20:41:34 +0000
Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com
 [2a00:1450:4864:20::436])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3a91e778-7a18-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 22:41:33 +0200 (CEST)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-3b9edf36838so1495100f8f.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 13:41:33 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3bb5d089e07sm3153924f8f.0.2025.08.15.13.41.31
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Aug 2025 13:41: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>
X-Inumbo-ID: 3a91e778-7a18-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755290492; x=1755895292; 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=CEN/2XOrsEO0ZjOf5D7MPDTnV9rmV5trFiuPwf9NEvs=;
        b=ByY/ossxbKttZFjJAwXykNldMMrSfpFBb1HVfVoCOkmZBRf4+QQPSYcMA1YquZkjdE
         6paMFf58ZNFsjXhek9+bIHJhqR+WiBnGVw1HF+xhnpnvcTqSNFux1DcQYmEj2BX2ApAD
         AlCPiZEy1pOg3ESdd4UczP57PVQRIwh00PhoQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755290492; x=1755895292;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=CEN/2XOrsEO0ZjOf5D7MPDTnV9rmV5trFiuPwf9NEvs=;
        b=F6vPsba4MkbYqV2oZtPPoS6yoTl05kdEZd6B0DPYUXaztaghsn0VN/Tkmfn6BDr3up
         zN9MXMgTVfmzDMJ/vHR3tgqNFs17eqnSTWHUVaBipBtq5yfBUn9YE3PVmowwxi28v/Rf
         06dpHlzSSAQV/W/ewOrPgaYrp3sBj4SCQA4R2VWGwReYJYVrwBPmVbWDS2AbPy0onwI1
         Bg81GqHSUhmR+bJ47TCY9jUoQfnr48QBgQxNkiOKlwuhbohUiss+jRBvIsqNbyePBqJZ
         M3KxpPIOIZEw0gE/o+NvbAruQqH+CknMTX3F//Usb55kQV9aqeydo06ECB5MFazYswlM
         tQzQ==
X-Gm-Message-State: AOJu0YyGF8hZW1fP0zB/7jcF8qzLm80GwUBbEEER9UeCShWrIoOhnkcg
	H6KqlxHMlfAk7N4cAzmpj0zP3Z/zDtME0POBEgr3HyWkFasI/sLuTQB6M6clJ5DBu8LZH9bmlfp
	HmXQ9
X-Gm-Gg: ASbGnctxNooR3MwFJcy17La/rXweBWCDSfaugMNOO3NQ5yyHrm+UzXKWFf/J9oQUL8t
	c0ojiR5JqzJKMbo0OjUqaP0RByy2VoAWzmQVjTgFkVtlzVvWLsly509tEj3pXHNDvvJ9dH91pA0
	LnJCZUwdKZMW1dlqP/mlXRSe1M/QThfHNTZ00CrJ3H7WlHfl72yn9q+qzdbdmpSSPnoZxMw0/84
	6c+as0XvAv4+RJivtmCh2jQdQ0R+FVZ+Kdn+kzhumb+52r2f0dYfwk83LNfCcGMqlv8fDkQBV5y
	E8cLXRzn1I0cbUW8qCpIiTsrNDGIPuXco6nuPImiKt+IbCfgwbC09GHqlQNtA0ens3KLWMM+qWI
	P/hvVYq/vwGwOXN5QYyE1P2yB5FAH5kqp5XCZQltG+MasL8+diTji1VT/HuYrL1a0UO8PIb5E8i
	4k
X-Google-Smtp-Source: AGHT+IGWo66ukoW8MvWNvEHtUQjOhfM0bkel1B+NqYn/+qbSo2BCaaKx9/VegcKFb27gkUys+KKsfA==
X-Received: by 2002:a05:6000:230b:b0:3b8:d081:3240 with SMTP id ffacd0b85a97d-3bb6636c7edmr2548031f8f.1.1755290492043;
        Fri, 15 Aug 2025 13:41:32 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 15/16] x86/fsgsbase: Update fs/gs helpers to use wrmsrns()
Date: Fri, 15 Aug 2025 21:41:16 +0100
Message-Id: <20250815204117.3312742-16-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

... and rdmsr() while here.

Most of these accesses are in fastpaths and do not need serialising behaviour,
but the write side is serialising on all Intel hardware as well as older AMD
hardware.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/domain.c               | 10 +++++-----
 xen/arch/x86/hvm/vmx/vmx.c          |  4 ++--
 xen/arch/x86/include/asm/fsgsbase.h | 30 +++++++++--------------------
 3 files changed, 16 insertions(+), 28 deletions(-)

diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 3015aac4adbc..2a9bb87729c8 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -1824,9 +1824,9 @@ static void load_segments(struct vcpu *n)
         }
         else
         {
-            wrmsrl(MSR_FS_BASE, n->arch.pv.fs_base);
-            wrmsrl(MSR_GS_BASE, gsb);
-            wrmsrl(MSR_SHADOW_GS_BASE, gss);
+            wrmsrns(MSR_FS_BASE, n->arch.pv.fs_base);
+            wrmsrns(MSR_GS_BASE, gsb);
+            wrmsrns(MSR_SHADOW_GS_BASE, gss);
         }
     }
 
@@ -1951,8 +1951,8 @@ static void save_segments(struct vcpu *v)
         }
         else
         {
-            rdmsrl(MSR_FS_BASE, fs_base);
-            rdmsrl(MSR_GS_BASE, gs_base);
+            fs_base = rdmsr(MSR_FS_BASE);
+            gs_base = rdmsr(MSR_GS_BASE);
         }
 
         v->arch.pv.fs_base = fs_base;
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index f97a7746531a..9ba140c4811c 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -2733,8 +2733,8 @@ static uint64_t cf_check vmx_get_reg(struct vcpu *v, unsigned int reg)
     case MSR_SHADOW_GS_BASE:
         if ( v != curr )
             return v->arch.hvm.vmx.shadow_gs;
-        rdmsrl(MSR_SHADOW_GS_BASE, val);
-        return val;
+        else
+            return rdmsr(MSR_SHADOW_GS_BASE);
     }
 
     /* Logic which maybe requires remote VMCS acquisition. */
diff --git a/xen/arch/x86/include/asm/fsgsbase.h b/xen/arch/x86/include/asm/fsgsbase.h
index 90d116f3bb54..7a0b623cca8f 100644
--- a/xen/arch/x86/include/asm/fsgsbase.h
+++ b/xen/arch/x86/include/asm/fsgsbase.h
@@ -63,38 +63,26 @@ static inline void __wrgskern(unsigned long base)
 
 static inline unsigned long read_fs_base(void)
 {
-    unsigned long base;
-
     if ( read_cr4() & X86_CR4_FSGSBASE )
         return __rdfsbase();
-
-    rdmsrl(MSR_FS_BASE, base);
-
-    return base;
+    else
+        return rdmsr(MSR_FS_BASE);
 }
 
 static inline unsigned long read_gs_base(void)
 {
-    unsigned long base;
-
     if ( read_cr4() & X86_CR4_FSGSBASE )
         return __rdgsbase();
-
-    rdmsrl(MSR_GS_BASE, base);
-
-    return base;
+    else
+        return rdmsr(MSR_GS_BASE);
 }
 
 static inline unsigned long read_gs_shadow(void)
 {
-    unsigned long base;
-
     if ( read_cr4() & X86_CR4_FSGSBASE )
         return __rdgskern();
-
-    rdmsrl(MSR_SHADOW_GS_BASE, base);
-
-    return base;
+    else
+        return rdmsr(MSR_SHADOW_GS_BASE);
 }
 
 static inline void write_fs_base(unsigned long base)
@@ -102,7 +90,7 @@ static inline void write_fs_base(unsigned long base)
     if ( read_cr4() & X86_CR4_FSGSBASE )
         __wrfsbase(base);
     else
-        wrmsrl(MSR_FS_BASE, base);
+        wrmsrns(MSR_FS_BASE, base);
 }
 
 static inline void write_gs_base(unsigned long base)
@@ -110,7 +98,7 @@ static inline void write_gs_base(unsigned long base)
     if ( read_cr4() & X86_CR4_FSGSBASE )
         __wrgsbase(base);
     else
-        wrmsrl(MSR_GS_BASE, base);
+        wrmsrns(MSR_GS_BASE, base);
 }
 
 static inline void write_gs_shadow(unsigned long base)
@@ -118,7 +106,7 @@ static inline void write_gs_shadow(unsigned long base)
     if ( read_cr4() & X86_CR4_FSGSBASE )
         __wrgskern(base);
     else
-        wrmsrl(MSR_SHADOW_GS_BASE, base);
+        wrmsrns(MSR_SHADOW_GS_BASE, base);
 }
 
 #endif /* X86_FSGSBASE_H */
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 20:51:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 20:51:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1083958.1443475 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1un1O3-0006GB-2t; Fri, 15 Aug 2025 20:50:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1083958.1443475; Fri, 15 Aug 2025 20:50: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 1un1O2-0006G4-W9; Fri, 15 Aug 2025 20:50:54 +0000
Received: by outflank-mailman (input) for mailman id 1083958;
 Fri, 15 Aug 2025 20:50:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oFbR=23=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1un1F1-0005Rl-6N
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 20:41:35 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3ae662db-7a18-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 22:41:33 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-45a1b0c8867so17685085e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 15 Aug 2025 13:41:33 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3bb5d089e07sm3153924f8f.0.2025.08.15.13.41.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 15 Aug 2025 13:41: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>
X-Inumbo-ID: 3ae662db-7a18-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755290493; x=1755895293; 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=3zNiV0d1+G8Wff8cLR0QuknnKG7CLHYvqMENqSQD6oI=;
        b=YYoikke66TIu9bg0lXNNBWACJO+G6Z9KNhCP2i1qCkrvF6P99yfL/fSLOQxFvOE9QJ
         +n4fk739F74DZR4On0vQivHyWWv1aTNxT7pZ/+OEqpHlkjRs01RwAFNtw1idf3p/WPHV
         6DeVAEhV+9pbWmybFjbnEcs879cg13m3wKLZM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755290493; x=1755895293;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=3zNiV0d1+G8Wff8cLR0QuknnKG7CLHYvqMENqSQD6oI=;
        b=cu8OxPsi3x9FrfynKbd4a/8J31hG1rr7cPtkQF14zS5uTmmjaOmUblbHTY3E1WqUdl
         uG7qZ9wF98XCO97qJFyzxIp2jTUIvh9tF5FuUd0gOLHGTmjbQStN0TFpoVhw8zGwjNLQ
         OPonngiYef6XswS0F7Uq+8s3BgNXSQ9rf8S5JJR/CbnLqs6Jnh9vtG18/ZLif5bSC+ra
         E86DkW6OV/fAwY7nC59OMPoHFD1lWqYoLMF+NTdfZV5PdEy7TKEAL00hwACVmCVgDESs
         0ZoqF08+5oDnerCvcExAoijPmAHVKGy/cHVMkmbVJYfz9udy/YzR7lv9P27MNCS4Sk35
         lEgg==
X-Gm-Message-State: AOJu0YxWZ6PefI4bo4+e07JX7v+m8qrZWOKbmDArWmDs4+Slht3LvvN1
	Qr83GiuxPXiekKhmAW++/P/pS1uHGlVgrgUoUoC5xPhvZg24tIJNARZdLGtp34bhvGp1xQcOiIT
	3RmBh
X-Gm-Gg: ASbGncut/xXsNv+qHHVAcI98DXBuRhN5OHfrp5zkPvcl6XT4NcY2ozDKvZOvlJ0UbUw
	52VKm1cC/HTrOkraCPhExEmYERvHTsgejLfp2zVqa2wsJIqVd7sZiR2UqiEA6HaorQ3pcPUWqwh
	7vxhQWvD/81+4iXIkX5CRd7n08m7kjWHpKOKifoHznaM+nE1VIqVhSNBDlq7imsuvMzZEoAxKeB
	qNFQPJvM8d9h+FfEd4KusP1BJXQUQ6S1Z0L2gx/Tqi3auyihJShWXaijsXM4RNiDxJWGFCc7grz
	3L+Evc86oHEPzaQFa/1hHtOQt5OLI7taH6mY/pbba0Rs29Pcdn+8C+61qDhXswlB6Og11NFv/3o
	tX/a+QkfskSfMaaMSvEXywE6V6iafiXfRRF61giilsk6mZPyaz2zysTxPMVRJv+QamBDFKbKfED
	4e
X-Google-Smtp-Source: AGHT+IGmu1YDwyvtZE2fRU7Zf8nu4yq1fC7elgzaDXo+fr0XiiF6JzjzRaV8vQ9Z+C3XJYBW2NYqqg==
X-Received: by 2002:a05:600c:4591:b0:458:bbed:a827 with SMTP id 5b1f17b1804b1-45a217f78damr26648625e9.1.1755290492736;
        Fri, 15 Aug 2025 13:41:32 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 16/16] x86/fsgsbase: Improve code generation in read_registers()
Date: Fri, 15 Aug 2025 21:41:17 +0100
Message-Id: <20250815204117.3312742-17-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

It turns out that using the higher level helpers adjacent like this leads to
terrible code generation.  Due to -fno-strict-alising, the store into state->
invalidates the read_cr4() address calculation (which is really cpu_info->cr4
under the hood), meaning that it can't be hoisted.

As a result we get "locate the top of stack block, get cr4, and see if
FSGSBASE is set" repeated 3 times, and an unreasoanble number of basic blocks.

Hoist the calculation manually, which results in two basic blocks.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

Side-by-side disassembly: https://termbin.com/9xfq
---
 xen/arch/x86/traps.c | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index 0c5393cb2166..8c261d219c07 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -118,9 +118,18 @@ static void read_registers(struct extra_state *state)
     state->cr3 = read_cr3();
     state->cr4 = read_cr4();
 
-    state->fsb = read_fs_base();
-    state->gsb = read_gs_base();
-    state->gss = read_gs_shadow();
+    if ( state->cr4 & X86_CR4_FSGSBASE )
+    {
+        state->fsb = __rdfsbase();
+        state->gsb = __rdgsbase();
+        state->gss = __rdgskern();
+    }
+    else
+    {
+        state->fsb = rdmsr(MSR_FS_BASE);
+        state->gsb = rdmsr(MSR_GS_BASE);
+        state->gss = rdmsr(MSR_SHADOW_GS_BASE);
+    }
 
     asm ( "mov %%ds, %0" : "=m" (state->ds) );
     asm ( "mov %%es, %0" : "=m" (state->es) );
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 21:36:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 21:36:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1084084.1443502 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1un25g-0005G9-1x; Fri, 15 Aug 2025 21:36:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1084084.1443502; Fri, 15 Aug 2025 21: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 1un25f-0005Fz-SE; Fri, 15 Aug 2025 21:35:59 +0000
Received: by outflank-mailman (input) for mailman id 1084084;
 Fri, 15 Aug 2025 21:35:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=IuPz=23=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1un25e-0005Bt-Va
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 21:35:58 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20607.outbound.protection.outlook.com
 [2a01:111:f403:200a::607])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d444bda3-7a1f-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 23:35:58 +0200 (CEST)
Received: from BL1P223CA0044.NAMP223.PROD.OUTLOOK.COM (2603:10b6:208:5b6::17)
 by DS7PR12MB8081.namprd12.prod.outlook.com (2603:10b6:8:e6::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.18; Fri, 15 Aug
 2025 21:35:53 +0000
Received: from BL02EPF00021F6E.namprd02.prod.outlook.com
 (2603:10b6:208:5b6:cafe::29) by BL1P223CA0044.outlook.office365.com
 (2603:10b6:208:5b6::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9031.19 via Frontend Transport; Fri,
 15 Aug 2025 21:35:53 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL02EPF00021F6E.mail.protection.outlook.com (10.167.249.10) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Fri, 15 Aug 2025 21:35:52 +0000
Received: from satlexmb10.amd.com (10.181.42.219) 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; Fri, 15 Aug
 2025 16:35:51 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.10; Fri, 15 Aug
 2025 14:35:51 -0700
Received: from fedora.mshome.net (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Fri, 15 Aug 2025 16:35:51 -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>
X-Inumbo-ID: d444bda3-7a1f-11f0-a328-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=t1BpfoxercyfzxMEQduwjJEPQwlgMHC4Bj2K4tOiAYikcaNQjl/YXl+Ex0maBkJMI68SG4V5g1pJv89qF2Gkg6j7kQJ0Uk0k9NQ0RCydF8uaKqLNYbQZKTKGzM9I/GrJcw/rDZ4X6CASid6/2ZJ/l+X5p7pHEGWMvmEBrLGlHBCyoSwVZgBSnjwPWNYbvyTEnV/6TU25sEqLFUIjgC9zV/8XgDDyr2yGR5lcGYCWKLD4+0snFo9OK1O2pxI8Iv1jyVi324j1C/+QAZ6yx4jv8FBz++kM0G/PIW8iLCtH4BVoG15UHEDv6kFHfKPlwguTaR0nC8dlqyNtAVlHIx/XSA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=yAfHh+BbqPgNLnkNywYk6LkBNqhFeDrqPgFaeMFhZ5E=;
 b=jJvgVoDBUeJK23iJ0hq3BApxZYgbBMeKsULPWRxwvaKYiqSecttPc/vOtRwLa1vYRNHO3mRZysxpSNfiVUTRXjv6+B0/bY+nMPUFKAysD5uBzLsch8lSX/0zTc8+nriYXe+/mpQg4vSGQ5s+Sr2KpwB//aGfUVJ53hTqlOoTUYKXU5DS9s63X0B0dXYAZSNZsFNTZL2WESFDfr8dPUokb4PLhInFwH752wob5e352yG2krNdWQHbzkXwhlgw5A02cG4lwxp7jdXJ1GpGK4pC1gPc96UskNHF/iaLIlPu3CwEqFx0oQ3eXENom2K4o021+RV8S71039O76SbuFkFZsw==
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=yAfHh+BbqPgNLnkNywYk6LkBNqhFeDrqPgFaeMFhZ5E=;
 b=s8oP1BYSLzAGBWiHFD1sPKIpZ5e4+IIKdMg7G+IhSpxNEKUsvTecGWGtZfaYwwwrq+eq4cPsYCv3AcUhS2LCJnuLtkEaLLQoaV7RWK2y55KQEsYGpcAgYaCnn+whszmBXax2p5L9Ukmo/VKTPh5m9fCCm79GBWeI20/AEQzV29g=
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=SATLEXMB04.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Jason Andryuk <jason.andryuk@amd.com>, Juergen Gross <jgross@suse.com>,
	Julien Grall <julien@xen.org>, Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v6 2/8] tools/xenstored: Add get_domain_evtchn() to find evtchn
Date: Fri, 15 Aug 2025 17:35:50 -0400
Message-ID: <20250815213556.90068-3-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250815213556.90068-1-jason.andryuk@amd.com>
References: <20250815213556.90068-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF00021F6E:EE_|DS7PR12MB8081:EE_
X-MS-Office365-Filtering-Correlation-Id: f62508f5-f0c0-4395-3c89-08dddc43b591
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?AD6TJ7uTY52ynfyrXbMFj5X/k3R15bF8SvFBhA+ziofY83s2DDvQluND/+93?=
 =?us-ascii?Q?PZ8g9TnLWG6aq1gblk/O8AtJYeqzkdPwNjlXtHrR4ncqqzeOugpKes6b5gah?=
 =?us-ascii?Q?C6t96fo3s8DDQ262+oenmm1UMv+6YOvNRAe3jxxMeOc3OLnSIxmd9MIfA4YE?=
 =?us-ascii?Q?e78KtybvsaeMd8wAZR/iY8DzI+3QuYMT1MW7rbPttP7SdY8RPtb+l60rh16q?=
 =?us-ascii?Q?okwrHd1ZAmnNzd7c1CV2myudRrEy8uDxO1sV1TRIvncfV2dsngQmUiFXx9ea?=
 =?us-ascii?Q?ZUKuOL60xw9BREshS45O+8pyJTDsdwSrUWVRyJSHp98YHs/3ArSSooBJaaOR?=
 =?us-ascii?Q?aak8bvKzDZvVW9VscAo2XsfjflvnVHDKoTa1H5NeRQphlTI2v1K7JTmy8XtB?=
 =?us-ascii?Q?tV9nP3NOut963Gi4olhUn0c1yLce54HuytFRLHjiQBM0CF1WaXoYfVMDWbDO?=
 =?us-ascii?Q?2MWpbs8OUxMNWQtWLABAEHC42dZpwAZFDUXhDBsygrN3V3VzMNxMlxPkvTzU?=
 =?us-ascii?Q?HFl0NWgP74R8HxBcZiBZfU76gGcTjWHnZqFF2FfYo0+QZa8y9k19NTbd9s8f?=
 =?us-ascii?Q?avFsZR49uHeTfhmFXO/vqNstz6syelU4PVIREsWWAjwaxBXQWwiN+9bP9DO3?=
 =?us-ascii?Q?Xy1E6flO0sC/6pps/U3x2s4WtvFSmiSAw536fKP5CWcD3SMibMaxYKnwr8gU?=
 =?us-ascii?Q?8KiKXOaQgQfY3faetOIYkwc4+N/jbPYCqCQkpvVK7AzveakckEiFDYGMnM7m?=
 =?us-ascii?Q?8dbXUUzSO2C2OoZwonyNR/a9uZSJB8KMBhf8jE+A/V4cPjcUEwNhezU4X+ic?=
 =?us-ascii?Q?TicoPigS3LkZgOOq6BdVaB5qlnaNlAp9N4DYIXAP8rYASdz/+ErshL7ocj47?=
 =?us-ascii?Q?KUNMrMefNc1v3ogTu5eUpv7N11ZkaUZHpZlEN2yUbzNJgFIwZh4WEzIgL8V/?=
 =?us-ascii?Q?0EAeXzm1srnq01Cb3o0/Nt3/XeIMqw3IdSsDvWUPjJN/sN4K5Bp8MJ7Ghk4z?=
 =?us-ascii?Q?OWxAjp07eemf66b7kZB25L7PgBK9sBHmds7BjCgQLCI9k1oFrUFnx17JCLNF?=
 =?us-ascii?Q?POc78zKp2PqAeAwtNBctRjVRLqCBAB1Bc4NlsYME3FStiVfeGc0mDrl4sk4h?=
 =?us-ascii?Q?v8OcRdkT0ADlqy3m4iTLA9h60XRrZhHKhiWQt9OpsR3ZKryTxGw13cix2GDf?=
 =?us-ascii?Q?cBKtYyoO516SF0bZwFzRKArR6+djgtlYpwUlJSVcwrkYpeJcYNQ15urVgCKQ?=
 =?us-ascii?Q?6nBNBQGO6EaPvqVy+nvJtMITSLjr2O5AGjTXuVGCfkSZJpcJQKS1a19S93hY?=
 =?us-ascii?Q?I3bu6zwYLJy2bq1i6gl9WH5yxOXRAowRBkHcEZ5fwZRrE+0r77O8TOs59lkh?=
 =?us-ascii?Q?EEcxygWMxhaJjHQzoIf1NhxocMFMgEwAwiOSU6eVmLWLQxuYQSqjNddeWrqn?=
 =?us-ascii?Q?eOiAmgFApFrZdXSQcsY3PoSU1iXQMu0csokCx2UvF35tU7SLvI+1SXiAwma7?=
 =?us-ascii?Q?Cb1ECcfoPCBesYtss4ihnDsFQt4EstLR7p4S?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(1800799024)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Aug 2025 21:35:52.3156
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f62508f5-f0c0-4395-3c89-08dddc43b591
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF00021F6E.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB8081

Add helpers to lookup the event channel for a domid.  This hides some
of the differences between dom0 and stubdom xenstored.  Each version
defines its own.

It highlights the different meanings between get_xenbus_evtchn() in a
stubdom, where it looks up dom0's event channel, and dom0, where it
looks up the local event channel.

get_domain_evtchn() replaces get_xenbus_evtchn(), and
get_xenbus_evtchn() is removed from minios.c as it is inlined in the new
function.

The default return 0 will be fine as any other auto-introduced domain
will needs the event channel populated in the grant.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
---
v6:
R-b: Juergen

v5:
Split get_domain_evtchn() in minios.c and posix.c versions
s/dom0/stubdom/
---
 tools/xenstored/core.h   |  2 +-
 tools/xenstored/domain.c | 10 +++++++---
 tools/xenstored/minios.c | 19 ++++++++++++++++---
 tools/xenstored/posix.c  | 16 +++++++++++++++-
 4 files changed, 39 insertions(+), 8 deletions(-)

diff --git a/tools/xenstored/core.h b/tools/xenstored/core.h
index 5071f1dedd..cef3c71eb0 100644
--- a/tools/xenstored/core.h
+++ b/tools/xenstored/core.h
@@ -397,7 +397,7 @@ static inline bool domain_is_unprivileged(const struct connection *conn)
 extern xenevtchn_handle *xce_handle; /* in domain.c */
 
 /* Return the event channel used by xenbus. */
-evtchn_port_t get_xenbus_evtchn(void);
+evtchn_port_t get_domain_evtchn(unsigned int domid);
 void early_init(bool live_update, bool dofork, const char *pidfile);
 void late_init(bool live_update);
 
diff --git a/tools/xenstored/domain.c b/tools/xenstored/domain.c
index 60d398682f..0866e04aa9 100644
--- a/tools/xenstored/domain.c
+++ b/tools/xenstored/domain.c
@@ -1330,7 +1330,7 @@ void dom0_init(void)
 	evtchn_port_t port;
 	struct domain *dom0;
 
-	port = get_xenbus_evtchn();
+	port = get_domain_evtchn(xenbus_master_domid());
 	if (port == -1)
 		barf_perror("Failed to initialize dom0 port");
 
@@ -1345,13 +1345,17 @@ void stubdom_init(bool live_update)
 {
 #ifdef __MINIOS__
 	struct domain *stubdom;
+	evtchn_port_t port;
 
 	if (stub_domid < 0)
 		return;
 
 	if (!live_update) {
-		stubdom = introduce_domain(NULL, stub_domid, xenbus_evtchn,
-					   false);
+		port = get_domain_evtchn(stub_domid);
+		if (port == -1)
+			barf_perror("Failed to initialize stubdom port");
+
+		stubdom = introduce_domain(NULL, stub_domid, port, false);
 		if (!stubdom)
 			barf_perror("Failed to initialize stubdom");
 
diff --git a/tools/xenstored/minios.c b/tools/xenstored/minios.c
index f04423fe09..60d921cf01 100644
--- a/tools/xenstored/minios.c
+++ b/tools/xenstored/minios.c
@@ -41,9 +41,22 @@ struct connection *add_socket_connection(int fd)
 	barf("socket based connection without sockets");
 }
 
-evtchn_port_t get_xenbus_evtchn(void)
-{
-	return dom0_event;
+/*
+ * minios stubdom looks up dom0's event channel from the command line
+ * (--event).  The stubdom's own event channel is returned directly.
+ *
+ * Any other existing domains from dom0less/Hyperlaunch will have
+ * the event channel in the xenstore page, so lookup here isn't necessary.
+ * --event would not be set, so it would default to 0.
+ */
+evtchn_port_t get_domain_evtchn(unsigned int domid)
+{
+	if (domid == stub_domid)
+		return xenbus_evtchn;
+	else if (domid == priv_domid)
+		return dom0_event;
+
+	return 0;
 }
 
 void *xenbus_map(void)
diff --git a/tools/xenstored/posix.c b/tools/xenstored/posix.c
index 97561701ae..4a97f53dc0 100644
--- a/tools/xenstored/posix.c
+++ b/tools/xenstored/posix.c
@@ -139,7 +139,7 @@ void unmap_xenbus(void *interface)
 	munmap(interface, getpagesize());
 }
 
-evtchn_port_t get_xenbus_evtchn(void)
+static evtchn_port_t get_xenbus_evtchn(void)
 {
 	int fd;
 	int rc;
@@ -166,6 +166,20 @@ evtchn_port_t get_xenbus_evtchn(void)
 	return port;
 }
 
+/*
+ * dom0 xenstored uses get_xenbus_evtchn() to lookup with XENSTORED_PORT_DEV.
+ *
+ * Any other existing domains from dom0less/Hyperlaunch will have
+ * the event channel in the xenstore page, so lookup here isn't necessary.
+ */
+evtchn_port_t get_domain_evtchn(unsigned int domid)
+{
+	if (domid == xenbus_master_domid())
+		return get_xenbus_evtchn();
+
+	return 0;
+}
+
 void *xenbus_map(void)
 {
 	int fd;
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 21:36:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 21:36:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1084083.1443496 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1un25f-0005Ct-Oh; Fri, 15 Aug 2025 21:35:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1084083.1443496; Fri, 15 Aug 2025 21:35:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1un25f-0005Cm-Jg; Fri, 15 Aug 2025 21:35:59 +0000
Received: by outflank-mailman (input) for mailman id 1084083;
 Fri, 15 Aug 2025 21:35:57 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=IuPz=23=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1un25d-0005Bt-Oq
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 21:35:57 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on2062f.outbound.protection.outlook.com
 [2a01:111:f403:2413::62f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d35bb020-7a1f-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 23:35:56 +0200 (CEST)
Received: from SJ0PR05CA0194.namprd05.prod.outlook.com (2603:10b6:a03:330::19)
 by MN0PR12MB6004.namprd12.prod.outlook.com (2603:10b6:208:380::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.18; Fri, 15 Aug
 2025 21:35:51 +0000
Received: from SJ5PEPF000001E9.namprd05.prod.outlook.com
 (2603:10b6:a03:330:cafe::f2) by SJ0PR05CA0194.outlook.office365.com
 (2603:10b6:a03:330::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.8 via Frontend Transport; Fri,
 15 Aug 2025 21:35:51 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SJ5PEPF000001E9.mail.protection.outlook.com (10.167.242.197) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Fri, 15 Aug 2025 21:35:50 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) 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; Fri, 15 Aug
 2025 16:35:50 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.10; Fri, 15 Aug
 2025 14:35:49 -0700
Received: from fedora.mshome.net (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Fri, 15 Aug 2025 16:35: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>
X-Inumbo-ID: d35bb020-7a1f-11f0-a328-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uPtkbm23uPCfYDWELpsvlmSOeHEl8wk7RR8AKt6x4uTdbck3fLVTXem71xf4PGmGmRmj4WPZeNRF1D64jEKJGQhppv4PzssogLk1HsfOYkF7rymeHoqods2mr3zOv3lU54p0DHYok+Q5YDGh5c8WkjwGhdCXuZLCZ3yqI45/hNA0tL+Q1ZXlaX4Af7OxJLUe7nrtTYsKLYVvauGgZ6PzTt3lGzd4CPs0q1gWOl2/4yOf22++UValaXGWiI7taTexEvYHfiE4PxUnCuIRcJbvMJ8GRQGX3ZzWDCrKMnMO8/5cVI+F1DJNtDu+/FOH60eLghrX9O9PjD1JJ9l3IlgFsQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=GVn2duUPp9hjMB8CoqALfiWNheVOsXnVO9y1TaPjV/s=;
 b=iOgqRK0ozg1geOZtrEFW+u0UpObRdfp5FIGFkY/ttRdr2HQmkcW8yjCDnQySDZr72l4asawhaM/vw96QZ+gj4wK330H9twpxxn5d7sfm+KuY3Zd2IuAaTgSUtbKH5pRmyweRR9SNyzTFmefdqNCtq39Q9TtQq5ltNWkQmCu3Brt0vjzzj+Eev5EaUV668BuYlLQuDkLEu2jYLCMlTL8mxPQPMsyZKJDOD8z63uVdswWBFMxzrL8ofBtdj4MHmmk5Eed+73+4YKoaUje8J5Chz/w45VJf08BjKcoA9LLk9aMsMSwEzE3jPhOdKxsC60Q2fDcmj5R6dzaODHVu3s+4LQ==
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=GVn2duUPp9hjMB8CoqALfiWNheVOsXnVO9y1TaPjV/s=;
 b=ZyiffDc9P65mKZ0Rq3mRxzlJc9B3f0XbNkjWhPkeSOyBa3taKbSba6LEE00rlFhVi5eFHlIFe3CrGygF9rka8MaOtQTevTGtnpj5oFYRmNvfyz6JZkDgZUbr13ClvhxZJRQ/5ReN/0cD2QTpaXCW1Jmy6qL61Pu8RtscvqUWtqw=
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=SATLEXMB03.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Jason Andryuk <jason.andryuk@amd.com>, Juergen Gross <jgross@suse.com>,
	Julien Grall <julien@xen.org>, Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v6 1/8] tools/xenstored: Read event channel from xenstored page
Date: Fri, 15 Aug 2025 17:35:49 -0400
Message-ID: <20250815213556.90068-2-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250815213556.90068-1-jason.andryuk@amd.com>
References: <20250815213556.90068-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ5PEPF000001E9:EE_|MN0PR12MB6004:EE_
X-MS-Office365-Filtering-Correlation-Id: 0d8980c5-5113-4b8e-7456-08dddc43b4d1
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?q2iWiQfB3VnN4jwIp6UZmXVaohc8S6XK2yYWDuLkTbCIIEcwi7qRdavPQSDa?=
 =?us-ascii?Q?AgU08rVZfYhiwwarzPdXvwwor5UP196Zw/Ph/RWovJs0qXIPHzI67q+Wmv4q?=
 =?us-ascii?Q?Sk30azgqTuZZVZRRJS9Zg4LISnbKoG0dCXYPXXcW6IUHELECD5/IEdv3JWSc?=
 =?us-ascii?Q?wH2myzwBSPsqs8UFN8vw4pM0e/RuwgfbGAPht9DRcZ5sIGIHSwwceWMrgZKe?=
 =?us-ascii?Q?1bDqFquaDhXCDae1T02RIqBG2ckGnRSZqx8nTliRfJ2QRqubloqO4r/58oca?=
 =?us-ascii?Q?uORdMOUwI+zIqungdiL4+6I7ekFguCiTL1Q66pXizs2GO502+lAAuEQ81CSC?=
 =?us-ascii?Q?brrdsBz4vew4JvwmiocTRhJCEIjGeb/dAkJLEjNTv8mNSqvP197i9W/deyFE?=
 =?us-ascii?Q?vDD8AnDr/A/61bVxjPzOsVlHfP/zdKFO+mkcezd7Nv+A83L9oqRyrxXjNOeq?=
 =?us-ascii?Q?aDsuKZIsRUcwuW9otNwFbqw+6rIQ9QTjDgJBxqWknXKVPs2vQNX+3HsZrpis?=
 =?us-ascii?Q?wv8YXhD/LFNe4l60rfZSh/H+GBvSfNseFTOQxBk4VndYnAdxH2ONcdKna0L1?=
 =?us-ascii?Q?ONcrAdYgJlQgFjhjMKkECA57LBs3pBztfeTYROdyEd8N6qfdwJUGdYfOq50K?=
 =?us-ascii?Q?FuyyaAzTzxDMWD98xFnZjag0OaO009xn4Hl5SK21yY/ScyAsqNfy/CmmtPwO?=
 =?us-ascii?Q?y4J5qn93uZrp02IfB49pruzqEtMORl2ag5ePIoLNqv0mRDNZlovMUF2OaaEG?=
 =?us-ascii?Q?3rU10khBm7KASL9Sgt5q4zHVLbUo4nB4KUET36FY5XYc/yS3MLxYDswIzotM?=
 =?us-ascii?Q?mwYHlF9tTasiUF06QDxxOFO2lPpwb2mlTx6up1HCk7bvdhCygd2wuI3LJVSa?=
 =?us-ascii?Q?U+0yHXjfW7lGuO2PU9fXS5LdSY3GuNC0z1wg55yNOMeTFvW9kyCkoUgIqKO+?=
 =?us-ascii?Q?B7YEHCNtff9fb/Jndqf8ioOdd84iEMPFqCGRZ/PiQ60Ofh57HwYj4/HsKjLq?=
 =?us-ascii?Q?tW16kNQI27w/oLggeNDD7uucp3Ks7C5k02aSyqC0pbkkM8BzjVB9wdJdJXsd?=
 =?us-ascii?Q?5O9GrHuBbLwQMZFb8ww/Z/Y6vxEyxZzdmG5rFaImkm+F0UzRkhvr+EP9l7XJ?=
 =?us-ascii?Q?MVlBNuOiLQYCx7YFGs+AWD0mykDo+LiCyvdQtx8/oAuK93BlcsYMFRxbjqGj?=
 =?us-ascii?Q?ZRa1lk01FZ4sJvzgAlO187vYNTZZpMjq0NfDAjzIpjvjY7243yRy29QNEmmj?=
 =?us-ascii?Q?3M76X0ANtFL2V1OCF2OgJ4jrT7VogjwT4oXshfVefano95xl2YkmRp7H6Bz2?=
 =?us-ascii?Q?Px3YEbwNITPmzXvGy0CMgZvxGslllF1Po9sTToPsA3LxZeUwf0iKTG5lysKP?=
 =?us-ascii?Q?yFmEgeq+WMGohCn1tPhTgjz9Rpn70CHk7LfoHOeMjay+EW/Ap7jtdX1H8aw7?=
 =?us-ascii?Q?SLAPjYDP0+/DST1PzhLkOlLf9YJ8OG9XpCzc1ek+PWV+AUY44NXVfeWVF0s5?=
 =?us-ascii?Q?Gtm6kyEY1v3Ey8TQiJF6SE99MhqOA2OSX7g8?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(376014)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Aug 2025 21:35:50.9589
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0d8980c5-5113-4b8e-7456-08dddc43b4d1
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ5PEPF000001E9.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB6004

Make introduce_domain() use an event channel from the the xenstore page.
It is only used if non-zero.  Otherwise the passed in event channel port
is used.

The is useful for a xenstored stubdom to configure domains autonomously.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
---
v4:
R-b Juergen

v2:
Remove iface_port variable.
---
 tools/xenstored/domain.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/tools/xenstored/domain.c b/tools/xenstored/domain.c
index 34ebeaac9b..60d398682f 100644
--- a/tools/xenstored/domain.c
+++ b/tools/xenstored/domain.c
@@ -1036,6 +1036,10 @@ static struct domain *introduce_domain(const void *ctx,
 		interface = map_interface(domid);
 		if (!interface && !restore)
 			return NULL;
+
+		if (interface->evtchn_port)
+			port = interface->evtchn_port;
+
 		if (new_domain(domain, port, restore)) {
 			rc = errno;
 			if (interface)
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 21:36:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 21:36:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1084082.1443484 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1un25Y-0004xX-Bc; Fri, 15 Aug 2025 21:35:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1084082.1443484; Fri, 15 Aug 2025 21:35: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 1un25Y-0004xQ-94; Fri, 15 Aug 2025 21:35:52 +0000
Received: by outflank-mailman (input) for mailman id 1084082;
 Fri, 15 Aug 2025 21:35:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=IuPz=23=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1un25X-0004xK-AC
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 21:35:51 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on20602.outbound.protection.outlook.com
 [2a01:111:f403:2406::602])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ce681348-7a1f-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 23:35:48 +0200 (CEST)
Received: from BN0PR04CA0160.namprd04.prod.outlook.com (2603:10b6:408:eb::15)
 by LV8PR12MB9452.namprd12.prod.outlook.com (2603:10b6:408:200::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.19; Fri, 15 Aug
 2025 21:35:45 +0000
Received: from BL02EPF00021F6C.namprd02.prod.outlook.com
 (2603:10b6:408:eb:cafe::69) by BN0PR04CA0160.outlook.office365.com
 (2603:10b6:408:eb::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9031.17 via Frontend Transport; Fri,
 15 Aug 2025 21:35:45 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL02EPF00021F6C.mail.protection.outlook.com (10.167.249.8) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Fri, 15 Aug 2025 21:35:44 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) 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; Fri, 15 Aug
 2025 16:35:44 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Fri, 15 Aug
 2025 16:35:44 -0500
Received: from fedora.mshome.net (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Fri, 15 Aug 2025 16:35:43 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ce681348-7a1f-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=RCPUBJxxRndAdSbcEm5LlWTRXMaNqk9WQ4vuwYuqhaP8pdFBvKO6SMyGuomiUGEUAfKS+VP5mNRdiabVljzCk9R4j7C1RbRBYcGB7HDdP9i7FwJ24iveNm3AtxpsmOwZXfdxpxOcpoT4hpTWQDIu9bEvSTD+8eLketWQGWHzc7N2gBbwudsvhxVde3Oh+Wn5RtxdpYOLswvl7RMSFT6mYBo5YHCYHiyJtYPsmp3Na+xjIZa0eOI40k28wpdBwV9vM+01xjlTV2TZBcDgo+30tvQlErgxPauu+DSDb96H56i5fRxXxLc960oUjkPYQ1lSty8I3sTvcQbwcVRN/MYrBA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=2D2BgYB2jvAg9Habw/kRw/P3OCnyTCx7Sn7Bkw58x3c=;
 b=Dm+B8emln9wlhgT0lFvhghUz8cKJUU8HfJQXSjv1L+vCcrMPEmgpml71C9C4fIy6FCshFa/1woWY8QXkRaR/NLatNaaXS1lc/CHq8/4DeSjPHzZ5mRq4mqBqqTbBRYtOMQdTX36VO3I1jwUr6OMtGe7+jGALvKPyIYhngbhK9EHz+OZuVofk4czheKv/fnlfV9TOudWYJbUw98zEDmWGJHCPFeEMygLwCrKm1IUxub0CzbJfXMLFt/L/OSWXYkzLnuiXg2uQ8npM8e0xTQcTj/2CAApvTWH8uSXmedbbooVJa76lj+6IFh+YuDBxemq9eIa7yod+6w91ipzdk2Ym9g==
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=2D2BgYB2jvAg9Habw/kRw/P3OCnyTCx7Sn7Bkw58x3c=;
 b=FEAK5Sef6vmHRmOY83cjTW2phMm+R6rd4b367pYGG46mSnmvw761khkJJAXxdGhTjbjPqHwY8jcsYjsvRf8Hs+syzZtjTlRoeCPDfWI4uILKjkgYIsMiplRJxbqy067q5nvVzDryIkgFgL+dcAItI2qmE7hn97mjtbjtuc8h+uU=
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=SATLEXMB04.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Jason Andryuk <jason.andryuk@amd.com>, Juergen Gross <jgross@suse.com>,
	Julien Grall <julien@xen.org>, Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v6 0/8] xenstored patches from split hardware control
Date: Fri, 15 Aug 2025 17:35:48 -0400
Message-ID: <20250815213556.90068-1-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.50.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF00021F6C:EE_|LV8PR12MB9452:EE_
X-MS-Office365-Filtering-Correlation-Id: 2904fefc-1937-4917-104f-08dddc43b10e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|1800799024|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?ZuIjS0nDwRMhEuZH80ooIUBbbquI0REqT/D7PNhn4JNHu3agrYsVOlfglUlX?=
 =?us-ascii?Q?taYIiGu2CpfmzjvSnCZT6C1unxIs1ez4K6Uk3qv9BKaRK9r9DU4JXk8G1/60?=
 =?us-ascii?Q?ohL+Pg/t5Rle54MSitAS6ucRIBlY0g7CQ2BEwb0DkmALXmjwavrkH6wQqCsH?=
 =?us-ascii?Q?OlrQ32fgIG31SWn+gd33XtuVKZEg9aYooqibL/mn/Tc9PIwepXPl0M7sEd/O?=
 =?us-ascii?Q?i62Hp8jU93RpjPxuDHWapdA7lSlDm5C9JEAdWWL7AhPp4cJz34KhMvMcJcS3?=
 =?us-ascii?Q?qI9YNYLSYWPKif0ouznm4Yi/BrJK5e2+aIqYGVz0+2fLGCWmPoTrQwk/QZ91?=
 =?us-ascii?Q?a+7tvwFBrFff34FSVINaxubo4ZQv/OajRuR8OeISUgPLLs8v/3ZMlT7+DcIh?=
 =?us-ascii?Q?/1y78Fs3SejN66d5BUN6NqO1RC/bL2q49r3t0tkwSjtDmKfC2DkllNdl8XPM?=
 =?us-ascii?Q?qWBx+z0/484OYy1I63EdEHisj/CdvVwzngIAB1OR3b6R+ro/UPlp9RAhwANW?=
 =?us-ascii?Q?od/njL3N3GkQ+gK7MQbr7LeL7e/kjUp2wd0Y7PtV3cgZqnqY9tKFgY1wNeps?=
 =?us-ascii?Q?MNzk5D8M96ShMuOrUle0BSTgolyQL7IGbAc5kYbHE/n+qGdWX4xkHwV3E+aD?=
 =?us-ascii?Q?fq9ekcXCKdaoxXRrQt1c7Li5tzYxWLLPhmA66vaBUR5Ei4rRZCK6pLbP9eSM?=
 =?us-ascii?Q?DuS/DyRE/mkH8xXxBEbHof5ZYrHEjUf2QlvtyD4YNP8KfJCFFh13LCLjaUWe?=
 =?us-ascii?Q?t5ddp6qSKAGO2j/6p7e5/uNVIHVtI8CEZIrzWcL6NBzMeRaHPA2yotsO1eAO?=
 =?us-ascii?Q?Q8AQ3C+V4Zb0aXAOOvM7fIJNNWd9nvk2FgB0MitWKYO0t0Ga6qJWDMaUmHd3?=
 =?us-ascii?Q?OCL5g+gC1PHoWCKg3zgU/VVZWiXt+Wsa/phcAb1+RstTbVIaX+nHdinyOSQ4?=
 =?us-ascii?Q?UWiz9Hhqju7HOM4/koeNH2GwhXZK8fENn4PvyR6475MUN2ottJyFFZUQ4zyG?=
 =?us-ascii?Q?c81CCiDZBQSz9UNtuFrQaExvC+rk6CXG3X8eQ8hr6Btd7K3tCxvt5Y/cNY+E?=
 =?us-ascii?Q?xPzLoB5imLmRF0vYx679blVJKzMZVdviG7sui7clTHsh72UHydGSWYxaGq4/?=
 =?us-ascii?Q?nUX6bQzY7n87tFzBk69AX+VzTzgzc3bop2B2iJ8nMKYk39fIOY9lgfhPfmzH?=
 =?us-ascii?Q?ySDdJBCiKdl2WP8cRdciRP3xFtZ1OsxQjTeoH5FU2D5gC26DOrs4N6+9dkCz?=
 =?us-ascii?Q?bCtIf9xQPBa+bAreFwWOaF/egestiE0OMyhe2XxZByM3F+ymRKQqjHs2mOb/?=
 =?us-ascii?Q?/BgOLotDS34iL10xBf1H/u5x02Pq+Iq6oIMT/COSjpLRxS0FOCIOhnpQAmqu?=
 =?us-ascii?Q?Z//HfeELCwiRgKnOvH+8DqIxa38gSXbNaME8W8MS5iEMosu7E0RuTthua9fO?=
 =?us-ascii?Q?F3iHCBPJbgAgNVfqAaPSHYZzZVvcmbfO1qmvw42VaUApcOk2R5ZQ2qeCYc6h?=
 =?us-ascii?Q?XmPcGLzFgB26hcK+kib25fDzXkMjJOa306Ot?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Aug 2025 21:35:44.7451
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2904fefc-1937-4917-104f-08dddc43b10e
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF00021F6C.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9452

This is a subset of patches focusing on xenstored changes from my split
hardware control domain series.

"tools/xenstored: Check NULL domain in domain_chk_quota()" is new.

The xenstore changes are reviewed aside from the new commit.

stubdom was tested in gitlab-ci - xl list shows Domain-0 and Xenstore.

"tools/xenstored: Use priv_domid for manual nodes and permission" is an
interesting result of looking to rename some internal variables to
better align their purpose.

Any review or guidance on the approach is appreciated.

Jason Andryuk (8):
  tools/xenstored: Read event channel from xenstored page
  tools/xenstored: Add get_domain_evtchn() to find evtchn
  tools/xenstored: Auto-introduce domains
  tools/xenstored: Check NULL domain in domain_chk_quota()
  tools/xenstored: Use priv_domid for manual nodes and permission
  tools/xenstored: Rename dom0_domid to store_domid
  tools/xenstored: Remove stubdom special casing
  tools/xenstored: Remove hardcoded implicit path

 tools/xenstored/core.c   |  17 +++---
 tools/xenstored/core.h   |   8 +--
 tools/xenstored/domain.c | 128 +++++++++++++++++++++++++++++----------
 tools/xenstored/domain.h |   2 +-
 tools/xenstored/minios.c |  21 +++++--
 tools/xenstored/posix.c  |  18 +++++-
 6 files changed, 141 insertions(+), 53 deletions(-)

-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 21:36:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 21:36:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1084085.1443515 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1un25j-0005iF-9Y; Fri, 15 Aug 2025 21:36:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1084085.1443515; Fri, 15 Aug 2025 21:36:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1un25j-0005i8-5p; Fri, 15 Aug 2025 21:36:03 +0000
Received: by outflank-mailman (input) for mailman id 1084085;
 Fri, 15 Aug 2025 21:36:01 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=IuPz=23=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1un25h-0004xK-N8
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 21:36:01 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on2061a.outbound.protection.outlook.com
 [2a01:111:f403:200a::61a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d499c129-7a1f-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 23:35:59 +0200 (CEST)
Received: from MN0PR04CA0019.namprd04.prod.outlook.com (2603:10b6:208:52d::33)
 by IA0PR12MB7723.namprd12.prod.outlook.com (2603:10b6:208:431::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.13; Fri, 15 Aug
 2025 21:35:54 +0000
Received: from BL02EPF00021F69.namprd02.prod.outlook.com
 (2603:10b6:208:52d:cafe::ff) 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.9031.19 via Frontend Transport; Fri,
 15 Aug 2025 21:35:54 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL02EPF00021F69.mail.protection.outlook.com (10.167.249.5) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Fri, 15 Aug 2025 21:35:53 +0000
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; Fri, 15 Aug
 2025 16:35:53 -0500
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.1748.10; Fri, 15 Aug
 2025 14:35:53 -0700
Received: from fedora.mshome.net (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Fri, 15 Aug 2025 16:35: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>
X-Inumbo-ID: d499c129-7a1f-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HSqN9e8Zd3XQXuZ2+Um6F2v+huF+EF1zooBN9VK4UzTrpHpR44L74Em3NtL8CAowAnIwMUAEn2Sc2GsAmWWY6my+ga//WBdMjaNH7/BUNvz/IMrnNvvp25xXiBvFZI+rBMdIT2ps/KQJC6N/s/mFSTAYVzudPrNjftfkU08WjlTy8cOmQcmo0OnDd0OPZJVmehg/OBdF5xDPsmEYur/PBgXJKcFV5YcTvk93ktaKiu349Z13nmqD6OtnMh4TPfVe09PEQm108r1jZtzgKAuh//6Xg0tvmY50UCJADFp+jHcZRcfhFvFnpyaDZr0Hik2zKBvMkF9xXfFMMF1gds2hBw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Y9OMkaeEj/AsuDXHj8i2+xAiSM5DDL4gA9WvTiPcZo4=;
 b=ttZQWWyAxvb1NH1m8pwCOy6XbiKd9R4495Le8YkD6USnXRFsEhksOjJNCgbeHCCHH1oJXkxFXVCKkCeNqkKnM0wayPH5Oajp0pcjlDu1ycmdMKnac1zuH4YtcAuRRX6S7TMTN+nHycGv2J0/Vv1XP9HrbXsqU50xtLcpi5cWMfGMFchSw/igo9VgeHG65VczbALb4G8RwffUcCkkQ3VxqnCthx5iUWR3gtJ8iVLE/rbQ4tuHE/BXPt0tcsKxaGfniaF86uIyEnVcOGLV29F0nw/SrYeWwKfqVEuIql0U8SUuEKFzT5wFmGtT3YvIFIIHtg+g/BTSeB3CpmIE4Z4ppw==
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=Y9OMkaeEj/AsuDXHj8i2+xAiSM5DDL4gA9WvTiPcZo4=;
 b=ie3xYLNI998GwocH2nlKH4UFWwXqAmlgdSRcz7gztgwmBzi9zC76CYJh9doXQShval65xIh9waNAZcP48XtZajnFXhgXYAlYyT2X4qMHn8vp856z128DFRk6lh60SOt4P+Ndfj3aZ4v7JYJXs9aMCETBf7R2w4S/H+8GnIx2q0Q=
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=SATLEXMB04.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Jason Andryuk <jason.andryuk@amd.com>, Juergen Gross <jgross@suse.com>,
	Julien Grall <julien@xen.org>, Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v6 3/8] tools/xenstored: Auto-introduce domains
Date: Fri, 15 Aug 2025 17:35:51 -0400
Message-ID: <20250815213556.90068-4-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250815213556.90068-1-jason.andryuk@amd.com>
References: <20250815213556.90068-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF00021F69:EE_|IA0PR12MB7723:EE_
X-MS-Office365-Filtering-Correlation-Id: 2d4b6c8b-800a-4dd4-2782-08dddc43b683
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|376014|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?SrVyB97rxNylzhm8pykIfhpSf47iObKdpP9v0bMqDvp/9Y5eoaSJUPQOcyoG?=
 =?us-ascii?Q?JtuJw7Pxpz0xJj3HdLBgcSehTEGVeNJXk4+dkxYmhGiQHukLanXB8NoVTFhg?=
 =?us-ascii?Q?9b0Kj1jp0TxRi2jOhad/aR7/4l8poejVEjw42JRWU51ushTlLQghM7A2PXfJ?=
 =?us-ascii?Q?5mtUQ8oq3ocIzFLww0Bj2hzlxa337M1Ur+qtwIPzHAvfDzBwdoHtIu6M0RKA?=
 =?us-ascii?Q?qxVa9kt3k61+UdnDnTooZCxzrOw3Za94sy5ad13pN91eBEBzNRATT9VevdSn?=
 =?us-ascii?Q?GNfKjWSmhR24F1+1S6+F/L9DcWkqjLu1WuAdmg2mGyKE6v00/SK8fSEAzkDi?=
 =?us-ascii?Q?gTW3uzlySaFBq77Ti/OazVdwY9xdrH5plG9F8Svko4dvlxnGyoATOj/nZn0O?=
 =?us-ascii?Q?d1D4EFgBHXzk/vW0M3YsgmJ7wzaiibBtgmvYws8FDrvXNaXDKhA6gn+GRQJM?=
 =?us-ascii?Q?/eZf2qyyUqEwh2fpgtoEAvMzjI+D5dmO3QRzVcZVilCGAt8sATZM07Zg4EF/?=
 =?us-ascii?Q?xUpPnI7BFkG7uAVOwLS6vKX0DsATh05ArOxKQtLW/cDOaniLRptUfgOsznq5?=
 =?us-ascii?Q?Zh3340VOKDNBypnkEtghwziGA0JMYFJEbyEboUA02Nv0yRhEqTK/mi4Ft5+h?=
 =?us-ascii?Q?SyZ2WKs7yusfS306tj6m7q4JYrWTNHGv+zNwmQ5HIzrmAMmmxY9ba+B4ZhFB?=
 =?us-ascii?Q?Xy04eB3kXpibjcfGfRnlsSj6Ejm0S1A11qFxEeknudbShYRF69OBzEWXhiX1?=
 =?us-ascii?Q?egLqN75/bbZWflExPCk9ue+3Vt5Rotrr9OBVed3B/x1yTbE3fQ3W9L+PunDF?=
 =?us-ascii?Q?1QrkfREUUG1C26gLV1DM+bESxDY2xjIoYhfZiDttLyFSXnuJF/yO5Oakr1Od?=
 =?us-ascii?Q?MMVKHTzPzuOuhOj/ADtd3x5JbIPYTz6rtPLSB8Bchq+zi6EVYPGB8jg1F+uN?=
 =?us-ascii?Q?eFuPXwXL0Bk64oi6UeUtk+rsLT7Rwtc838JxxN1cj1LPqDhRjBxUDp3EFNwN?=
 =?us-ascii?Q?hmZqkfqMhvyrh2Iw+SinVRBJfR1/+thva6KXuXE9jonJMZkXThOgwqLw4bjk?=
 =?us-ascii?Q?Tgu7WS0XEjSlLihPmTenPdGQN1hPIZ226OZUm4NMbHw56fCTEVhUX2CS4nHg?=
 =?us-ascii?Q?ZgKv2uw07iUE1+k9IkI69+gx8L8jSHc4UmGf/M38vnQ8XvdKzOCYzA+zUWyH?=
 =?us-ascii?Q?jaxi7cRTBBWr+6e/6zfpCNqdjdvqNYuEKgmnxohgP40ofpKckWIFDL+LOiRY?=
 =?us-ascii?Q?NCFIdFbObUwswAOptUT/HAc3GUh2KlxDzVWCwuqi3OvJ/+VAtbfxjgOjUnJD?=
 =?us-ascii?Q?nRN9O/m5yihwzlT8WFxSnRQsGSZ+SH9NTJt5sSfalcjJISLtb+i7Bw7GFOV/?=
 =?us-ascii?Q?QPJtIPlgmC4wLQVzUbbjbdQg3XKjUPBqRfwML1OdpZQNx6rA103CkKIw3v3u?=
 =?us-ascii?Q?3zN2qPSIgugyFXfNqxgvJp1Dvwvn9tjzfRJ8DmHS4axD99MTU8b/1gukXoOk?=
 =?us-ascii?Q?0YHn4eP+77y4IuOD1fZPAsWYoR4Y026Tuncz?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Aug 2025 21:35:53.9000
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2d4b6c8b-800a-4dd4-2782-08dddc43b683
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF00021F69.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB7723

Replace dom0_init() with init_domains() which uses libxenmanage to
iterate through all existing domains, storing them in a list.  The xenstore
domain is introduced first, and then all the other domains are
introduced.  The xenstore domain needs to be introduced first to setup
structures needed for firing watches.

dom0_domid is updated with the xenstore domain, since it really
indicates the local domain.

priv_domid is set to the control domain.  This makes it limited to a
single domain.

These features let xenstore automatically connect any existing domains,
which means it doesn't need to be done manually from init-dom0less.

For a legacy dom0, the result should be unchanged.

For a late xenstore stubdom it should also be the same, but priv_domid
would be set automatically to control domain (which default to 0
normally).

Always signal the event channel for initial domains.  This gets dom0 (a
local xenstored domain) to connect.

Also always write XENSTORE_CONNECTED since we know we are connected at
this point.

To support ARM dom0less domains with xen,enhanced = "no-xenstore" a
failed introduce_domain() becomes non-fatal.  Normally,
HVM_PARAM_STORE_EVTCHN is used to identify .

priv_domid from the command line is used, or the first control domain is
used.

dom0_domid will set to the last xenstore found.  This will handle dom0
or dom0less, where only 1 xenstore domain can exist, or stubdom, where
dom0 and dom1 exist, and we want to take the stubdom.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
---
v6:
R-b: Juergen

v5:
Add init_domain() helper and call for dom0_domid first outside loop.
Fix HVM_PARAM_STORE_EVTCHN typo
Only take first priv_domid and respect command line setting
Take last dom0_domid
Set priv_domid & dom0_domid default values - bail if both unset
Use talloc_realloc
Remove domain_conn_reset()
---
 tools/xenstored/core.c   |   6 +--
 tools/xenstored/domain.c | 100 ++++++++++++++++++++++++++++++---------
 tools/xenstored/domain.h |   2 +-
 3 files changed, 81 insertions(+), 27 deletions(-)

diff --git a/tools/xenstored/core.c b/tools/xenstored/core.c
index 5377d72f54..d447e1167e 100644
--- a/tools/xenstored/core.c
+++ b/tools/xenstored/core.c
@@ -2567,9 +2567,9 @@ static struct option options[] = {
 #endif
 	{ NULL, 0, NULL, 0 } };
 
-int dom0_domid = 0;
+int dom0_domid = DOMID_INVALID;
 int dom0_event = 0;
-int priv_domid = 0;
+int priv_domid = DOMID_INVALID;
 domid_t stub_domid = DOMID_INVALID;
 
 static unsigned int get_optval_uint(const char *arg)
@@ -2760,7 +2760,7 @@ int main(int argc, char *argv[])
 	/* Listen to hypervisor. */
 	if (!live_update) {
 		domain_init(-1);
-		dom0_init();
+		init_domains();
 	}
 
 	/* redirect to /dev/null now we're ready to accept connections */
diff --git a/tools/xenstored/domain.c b/tools/xenstored/domain.c
index 0866e04aa9..051e3fd164 100644
--- a/tools/xenstored/domain.c
+++ b/tools/xenstored/domain.c
@@ -1325,43 +1325,97 @@ const char *get_implicit_path(const struct connection *conn)
 	return conn->domain->path;
 }
 
-void dom0_init(void)
+static bool init_domain(unsigned int domid)
 {
 	evtchn_port_t port;
-	struct domain *dom0;
+	struct domain *domain;
 
-	port = get_domain_evtchn(xenbus_master_domid());
+	port = get_domain_evtchn(domid);
 	if (port == -1)
-		barf_perror("Failed to initialize dom0 port");
+		barf_perror("Failed to initialize dom%u port", domid);
 
-	dom0 = introduce_domain(NULL, xenbus_master_domid(), port, false);
-	if (!dom0)
-		barf_perror("Failed to initialize dom0");
+	domain = introduce_domain(NULL, domid, port, false);
+	if (!domain) {
+		xprintf("Could not initialize dom%u", domid);
+		return false;
+	}
 
-	xenevtchn_notify(xce_handle, dom0->port);
-}
+	if (domain->interface)
+		domain->interface->connection = XENSTORE_CONNECTED;
 
-void stubdom_init(bool live_update)
+	xenevtchn_notify(xce_handle, domain->port);
+
+	return true;
+}
+void init_domains(void)
 {
-#ifdef __MINIOS__
-	struct domain *stubdom;
-	evtchn_port_t port;
+	unsigned int *domids = NULL;
+	unsigned int nr_domids = 0;
+	unsigned int domid;
+	unsigned int state;
+	unsigned int caps;
+	uint64_t unique_id;
+	int introduce_count = 0;
 
-	if (stub_domid < 0)
-		return;
+	while (!xenmanage_poll_changed_domain(xm_handle, &domid, &state, &caps,
+					      &unique_id)) {
+		nr_domids++;
+		domids = talloc_realloc(NULL, domids, unsigned int, nr_domids);
+		if (!domids)
+			barf_perror("Failed to reallocate domids");
+
+		domids[nr_domids - 1] = domid;
+
+		if (caps & XENMANAGE_GETDOMSTATE_CAP_CONTROL) {
+			/*
+			 * Only update with first found - otherwise use command
+			 * line.
+			 */
+			if (priv_domid == DOMID_INVALID)
+				priv_domid = domid;
+		}
+
+		if (caps & XENMANAGE_GETDOMSTATE_CAP_XENSTORE) {
+			/*
+			 * Update with last found.  dom0 or dom0less will only
+			 * have 1 domain.  stubdom there will be dom0 and dom1,
+			 * so this will take the second for stubdom.
+			 */
+			dom0_domid = domid;
+		}
+	}
+
+	if (dom0_domid == DOMID_INVALID)
+		dom0_domid = priv_domid;
 
-	if (!live_update) {
-		port = get_domain_evtchn(stub_domid);
-		if (port == -1)
-			barf_perror("Failed to initialize stubdom port");
+	if (dom0_domid == DOMID_INVALID)
+		barf("Could not determine xenstore domid\n");
+
+	/*
+	 * Local domid must be first to setup structures for firing the special
+	 * watches.
+	 */
+	if (init_domain(dom0_domid))
+		introduce_count++;
 
-		stubdom = introduce_domain(NULL, stub_domid, port, false);
-		if (!stubdom)
-			barf_perror("Failed to initialize stubdom");
+	for (unsigned int i = 0; i < nr_domids; i++) {
+		domid = domids[i];
+		if (domid == dom0_domid)
+			continue;
 
-		xenevtchn_notify(xce_handle, stubdom->port);
+		if (init_domain(domid))
+			introduce_count++;
 	}
 
+	talloc_free(domids);
+
+	if (introduce_count == 0)
+		barf("Did not initialize any domains");
+}
+
+void stubdom_init(bool live_update)
+{
+#ifdef __MINIOS__
 	mount_9pfs(live_update);
 #endif
 }
diff --git a/tools/xenstored/domain.h b/tools/xenstored/domain.h
index 3ca702f56d..3b1fce74cf 100644
--- a/tools/xenstored/domain.h
+++ b/tools/xenstored/domain.h
@@ -92,7 +92,7 @@ int do_set_feature(const void *ctx, struct connection *conn,
 
 void domain_early_init(void);
 void domain_init(int evtfd);
-void dom0_init(void);
+void init_domains(void);
 void stubdom_init(bool live_update);
 void domain_deinit(void);
 void ignore_connection(struct connection *conn, unsigned int err);
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 21:36:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 21:36:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1084086.1443524 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1un25k-0005xo-Mf; Fri, 15 Aug 2025 21:36:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1084086.1443524; Fri, 15 Aug 2025 21:36:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1un25k-0005xh-JS; Fri, 15 Aug 2025 21:36:04 +0000
Received: by outflank-mailman (input) for mailman id 1084086;
 Fri, 15 Aug 2025 21:36:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=IuPz=23=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1un25i-0004xK-NM
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 21:36:02 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20611.outbound.protection.outlook.com
 [2a01:111:f403:2413::611])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d57553bc-7a1f-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 23:36:00 +0200 (CEST)
Received: from MN0PR04CA0007.namprd04.prod.outlook.com (2603:10b6:208:52d::12)
 by CY5PR12MB6083.namprd12.prod.outlook.com (2603:10b6:930:29::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.18; Fri, 15 Aug
 2025 21:35:56 +0000
Received: from BL02EPF00021F69.namprd02.prod.outlook.com
 (2603:10b6:208:52d:cafe::62) by MN0PR04CA0007.outlook.office365.com
 (2603:10b6:208:52d::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9031.19 via Frontend Transport; Fri,
 15 Aug 2025 21:35:55 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL02EPF00021F69.mail.protection.outlook.com (10.167.249.5) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Fri, 15 Aug 2025 21:35:55 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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; Fri, 15 Aug
 2025 16:35:55 -0500
Received: from fedora.mshome.net (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Fri, 15 Aug 2025 16:35: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>
X-Inumbo-ID: d57553bc-7a1f-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=oN790B/dhLgF92Q9Pj7f/82XLVQXMXxSENmlPkyJE9aEddTF/f9fOM1smcSkAdMNrVXkKbtaLjeqnx7PHYaTMnds+JsJfxrxXZ3VcxakzKhCnaFLZ0DM/j8Mpk1aQouwKSCZGg9oPZ+O0VeWKY2AV+BBP+kUXtvpLEEe8bm9dY27FTE5LoR6osJqxhryROYDkxVF/7UdIPnSX1YTTOah+ZiejdAmciLJ//Kono3doC7u0w+8Rx5IY/HLGgrjQtWHm2gF8IVoiTtl3FplnEOwSOP6UB9GzI7G+XXKlYyUyYujtJwZAuqksKr+jwx6pW9a1gLvin2AXHGm07WLKS1WxA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=MfnTWYT+hidron2wSySDF7eq4i9pLVKgrFQZivNWi+0=;
 b=c6jIVBCQE0dqlucOPJvRk0NmraTBv71Gks5+gCFp7Q7JR3F/GPnhzebbKeIFxzdBH92yY49QqaS3QZyGjWHKpQymbWcGdjhiHhxKp1fVIZPqM0Eo2qoz6v/uNhlh5hdAose6vRXcrTYlvVM6XxeiihUAYnNYPW//yDCJtJSiq32K6PDm6Q6l0+f4hx06LihcS+ld6E2kC2o1WhWnIP5ebTF83HTcMujled78h5l1xRVBqxHHDIoNkduoGLZrx8pbLu+Rw6E1a3OSs5phOMDPH/7b/6rLHmZ3Qq7WYG7CvydkQfpeau1okjN6VBPdLfmIEj838BXF9ks/4SFBnp7G9g==
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=MfnTWYT+hidron2wSySDF7eq4i9pLVKgrFQZivNWi+0=;
 b=1VkWkj7wOLXLszo12r0dPdjlyRZHzNTIwRBWlkz6OAbrUD3D69gNIU/I47rPcZwNF2nhCnEWzoNG003pzdxqnhWtLASaJmFCTfmJVDEND4EPwKoygTm1WpbHl19tZSi31M7i2XYN+JBLUThApJrAASCc8hL4kNbR4rJe64VFgHE=
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=SATLEXMB04.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Jason Andryuk <jason.andryuk@amd.com>, Juergen Gross <jgross@suse.com>,
	Julien Grall <julien@xen.org>, Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v6 4/8] tools/xenstored: Check NULL domain in domain_chk_quota()
Date: Fri, 15 Aug 2025 17:35:52 -0400
Message-ID: <20250815213556.90068-5-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250815213556.90068-1-jason.andryuk@amd.com>
References: <20250815213556.90068-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB04.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF00021F69:EE_|CY5PR12MB6083:EE_
X-MS-Office365-Filtering-Correlation-Id: 2ec94166-b4fc-46f7-7120-08dddc43b7b7
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|82310400026|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?IlLT80jKXitCSMyPa9zaAxLMT123UqTevSr6QCI6If7oxkx3MykMe94ygHDD?=
 =?us-ascii?Q?l77/Pot50z8r8lGPXP32z+i8FgyMmmKLa25Vmdeg/ukA21Xidgp43ybzbQlF?=
 =?us-ascii?Q?Df1Lgs+7UCOJL2ywcyI3OJgtjkmJmGq7ZXIbFbDpmjD+yLmZz7LK5sn3z98A?=
 =?us-ascii?Q?jyYUFU7vhUXHGME+GNDkVDIkLh5upPPrbo2e31Y0f36O7mgwnkXHKnk/Y3Fa?=
 =?us-ascii?Q?BcEwQEfzqmcNKvprcyeQ05ktrsm6RV+CnqwukQnuAEI+6Hje6q0VZsVLSsCs?=
 =?us-ascii?Q?NUzMiYpA5Taqi4uctkVCsytuTW4IUjXWPCFh30DAyGJhyzsE2DovFRcgaCYs?=
 =?us-ascii?Q?eF2txzgcm/6hkQrsCFrIT3IyD/68hf11Sh8A46vA+z4aFSEGU3QwralMDDoN?=
 =?us-ascii?Q?6VYkfMZSlvavUMN5Hmtk+1JeXBLcUlasc7B6SK0yJ42hMyDZsl9lVOJIxvPD?=
 =?us-ascii?Q?rNdiCysliM6w5hM8Dv3+KpZpq0NChIk6cg6FELVgr5kIAsufPEB3vCD3Hgzu?=
 =?us-ascii?Q?T9nOhmprZ4Htq3vzqUQlRd5CMIsLRIq5ZggOVp65lvE6Ee+snj/Tuwaqvi48?=
 =?us-ascii?Q?WlSAJwddz2ch6AZdizJr2N1MbkIRrJxyomaKcytR9y3R9nHLBYmaXTEuJCwC?=
 =?us-ascii?Q?wJM64T2MAB5EOCeIn8reqbOLVSYi+9KaSqvTI1SNz7KdC4r6hIE2r5e7Q6sr?=
 =?us-ascii?Q?JO4r0QuAyGFeVyzWiQ0//MwHqOuexzeGp8clF6ZYTjONt80c/wBviy+pd1RH?=
 =?us-ascii?Q?D/o+lSf4T2aKFj3hGhZHBNjnVJPVN0TYeo4c0qQ4ol0d04ME7a9hMGRJszye?=
 =?us-ascii?Q?BYeV5p4I1rjMc9QtGUKRmGa3Kv/dq9vGei0F8MbE4y9JviKhxe/IigJZsY5G?=
 =?us-ascii?Q?/MhEiBHLHeGW3eak3AFgKBxR0z2IxV+xnlOMbZpx+0vZG4fWAYdNLpl4g+bk?=
 =?us-ascii?Q?lMHzw+iBv7TnkcviV6PMXEm0c/ehfJmYdPQm1McLnIGN4LpgrfBpY5nF0YaD?=
 =?us-ascii?Q?XYHcvQOqdnd9znleHvHM1WF+hgN4EVPVyeXsrn93HWee3WGDG9x7EUIVuejR?=
 =?us-ascii?Q?0iQcCLVdl8GNGW3P9i/XaZBD0gdnvHswzP1fKe6b+YWpmw13q776yYmGmO/M?=
 =?us-ascii?Q?eXzXhGUz0bgks4AWmCeqIcb9Jnhn3ylyNr9SrfxO7FlNEwI9zFVe+h5oRby8?=
 =?us-ascii?Q?e4pjOh/Igygz1M6kLOwtEw6f/a87yZtlSvj2MiP0k0QB0rV0lpkQ1EpRfDIm?=
 =?us-ascii?Q?23gfJK14Zgmm+jfd5fGKPkdJmSSAq0HpIEI3pJlt/K8Tgw0xeB15BLuMiWKx?=
 =?us-ascii?Q?s0pHw+ErjJAzOoXbAOw3EAuGfuXq9YrnwiIdX362kbmGNreOZMqPLdkE1iib?=
 =?us-ascii?Q?M4ICjS4vFaiu7P6JqTYO46HtddP6l8qnZublOwerqUY+kRrc63hkAPj+DcoW?=
 =?us-ascii?Q?GhWz0dS4Uhjq9SJL5n/oQ7MoNqwJnw0RPlRpKnsY9QWNgCz6P+zHqguWWnAR?=
 =?us-ascii?Q?PHNoUaV+BNQ9q8KM9SqefCkly/YRKlRY9+9+?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(82310400026)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Aug 2025 21:35:55.9218
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2ec94166-b4fc-46f7-7120-08dddc43b7b7
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF00021F69.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6083

With separate control and xenstore domains, the xenstore domain itself
is no longer privileged.  Local socket connections do not have
conn->domain assigned, but domain_chk_quota() will go ahead and
dereference it.  The !domid_is_unprivileged(conn->id) check usually
means the function would have already returned.

Bail out on !conn->domain to avoid faulting.  This adds a similar check
to that in domain_max_chk()

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
v6:
New
---
 tools/xenstored/domain.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/xenstored/domain.c b/tools/xenstored/domain.c
index 051e3fd164..c74bafa165 100644
--- a/tools/xenstored/domain.c
+++ b/tools/xenstored/domain.c
@@ -1762,7 +1762,7 @@ static bool domain_chk_quota(struct connection *conn, unsigned int mem)
 	time_t now;
 	struct domain *domain;
 
-	if (!conn || !domid_is_unprivileged(conn->id) ||
+	if (!conn || !conn->domain || !domid_is_unprivileged(conn->id) ||
 	    conn->is_ignored)
 		return false;
 
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 21:36:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 21:36:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1084087.1443535 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1un25n-0006Fg-0N; Fri, 15 Aug 2025 21:36:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1084087.1443535; Fri, 15 Aug 2025 21:36:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1un25m-0006FX-T7; Fri, 15 Aug 2025 21:36:06 +0000
Received: by outflank-mailman (input) for mailman id 1084087;
 Fri, 15 Aug 2025 21:36:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=IuPz=23=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1un25l-0004xK-Gw
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 21:36:05 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20621.outbound.protection.outlook.com
 [2a01:111:f403:2009::621])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d797e75e-7a1f-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 23:36:03 +0200 (CEST)
Received: from BY3PR10CA0006.namprd10.prod.outlook.com (2603:10b6:a03:255::11)
 by CYYPR12MB8732.namprd12.prod.outlook.com (2603:10b6:930:c8::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.17; Fri, 15 Aug
 2025 21:35:59 +0000
Received: from SJ5PEPF000001EA.namprd05.prod.outlook.com
 (2603:10b6:a03:255:cafe::2c) by BY3PR10CA0006.outlook.office365.com
 (2603:10b6:a03:255::11) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9031.19 via Frontend Transport; Fri,
 15 Aug 2025 21:35:58 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SJ5PEPF000001EA.mail.protection.outlook.com (10.167.242.198) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Fri, 15 Aug 2025 21:35:57 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) 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; Fri, 15 Aug
 2025 16:35:57 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.10; Fri, 15 Aug
 2025 14:35:56 -0700
Received: from fedora.mshome.net (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Fri, 15 Aug 2025 16:35:56 -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>
X-Inumbo-ID: d797e75e-7a1f-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UeMN+4wmElynPYLdrILMLDjMIqU8je+i0dolCtvD9JfQjbfQ8Ekp4ZxAZER7pW579S11e5Ae13yPboicOXEfDDz9m5Bob1VGjuJq+MOD9oUhNBPDvy9GLjoPNTrPHbiIT0uV4OSEzgtV1KXliSJD0kvEb2oTaejjj1F1qTulutD3wE+k5fqiYrVS8CQ1ZiUwPMfJGQ9OInnb7IWVlUbQchS3Ry10GWqGvNK+yLD/daGF6q9U8K1/84Nukx79jCdkomC1icON1+FGUohn8bvbp0yHq4hV/vTEI1yadK2z6/MLOMC0GgJFJDfbSJgNGhd2Ir/TgIxnbf5h5W0CMrL6DA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=AYlxeCuUWQFVD2Lqd3WOg1K+vgoKT/PL3YrRM2td0dw=;
 b=pIm2fIxjHFM3SA1j72JihVfrUzT4324UOXJebFbLkRDcjNZPwwXEz1XN6ADfDCcMMc5CFbJpsKyZRbE0vxU1CvWsnlNG5XlRZRBZvPk0sR8vz3QJ1Q4BGTvjR6OEJO+BwpvLJUhFFg153HAYUlL31QPfTdIGKLVpnXIpYQQXoF/1WLalLircxWlq9PrvswrscFrwDiWARyIzXgEWF7Vbq9EKrmsROdrA8Arsxlv9PF4Gi9ZUpyIY1CLup3+rVK5D5CCNHXZgnKwn13pBr5zqf22/8aeQ0XClK5TTHuRAYHvGxfpTWowVwOMalJayOKqL4LIYHzoOl1nOqKepYrVUWA==
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=AYlxeCuUWQFVD2Lqd3WOg1K+vgoKT/PL3YrRM2td0dw=;
 b=nle9G64PJHQJLp7gIDPAecESI707bOG74BBAutpKk7aqLMzd5zLIMFqoyssejNDn9DcoOPYLSjS6HQ/jwLypPwtYTbmcoDY7lTDgu9GPy0wAt6WxEC08Zlozb/hFlur5dGIe4oZzEeRQROF+uwJebn/VppG33C7//1BgrI02hxo=
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=SATLEXMB03.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Jason Andryuk <jason.andryuk@amd.com>, Juergen Gross <jgross@suse.com>,
	Julien Grall <julien@xen.org>, Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v6 5/8] tools/xenstored: Use priv_domid for manual nodes and permission
Date: Fri, 15 Aug 2025 17:35:53 -0400
Message-ID: <20250815213556.90068-6-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250815213556.90068-1-jason.andryuk@amd.com>
References: <20250815213556.90068-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ5PEPF000001EA:EE_|CYYPR12MB8732:EE_
X-MS-Office365-Filtering-Correlation-Id: 099e23d6-1c01-4c69-d5b5-08dddc43b8fc
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|36860700013|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?YR+BLkoi9Pv451Mb/gbtkoVPaxH2E1EJ9kWHGffGQC4LXzjaVwrNtNEtk8K6?=
 =?us-ascii?Q?AiAomoXtgSGWq3vwIAOAw98iTz21628Co1pBym+RKoDrVeyh/r0AaDqEDxX8?=
 =?us-ascii?Q?eoYSYw2IEU/MDY0JCev+is2owA8whyKc9mzxY14pEt/hcTh/X048F9enHxBN?=
 =?us-ascii?Q?klb5873KHNu0PAiI5jAC79QyWt2jypU3302qN7gFq36gaDbZCYtdWXCIy9Z0?=
 =?us-ascii?Q?oQLWqx4W0NrlFaAkN3TLoYZp/qmH/eGAGE1hE50fbLTVoabuf8Q6EsUdmCyX?=
 =?us-ascii?Q?gH84JEQga7xycZ6bFZlJfk3216APBj9KXFPKDseSgnueQx9dKqCIM2mtJTHT?=
 =?us-ascii?Q?UKsGNl9qA5wcA0Kz9NgDT9dkpWNurCbXTNudm65nYdyP20KOoOjcvypUTzS2?=
 =?us-ascii?Q?el4QwdMEjTkGgfmm6YYFuSo1Vpw5VWVsw+Lb6xN+hqV6weceiKaPPuGcFluQ?=
 =?us-ascii?Q?AM0OJ08eCf1qZcx3wGxXFYKJIUWVyvAs6U9wnkICYplEJsNxswybmNIAh6aD?=
 =?us-ascii?Q?OORxJeoQrvVin1C8iGM9H32bKoiFDSCp9P7pr1Mkp0P36Zo+HeyUmAQI7Qkk?=
 =?us-ascii?Q?JuGOVSYUBWlhzQZt67M3r7PFWRAkeTOpb3SD5DORylhG19pWPX3gH8aIreLU?=
 =?us-ascii?Q?rL745JHaVniFzpq/+QDV0GUiqOMd6n6TkAJ1wUI8CIfnHLzhD359njJAW7Ve?=
 =?us-ascii?Q?qBvdgJrzMXZhYM46a+yiWr/lODVTks1NSxJ/2Kp2MG6UvZn8T7kZMXhYBa2r?=
 =?us-ascii?Q?tn3O8sxRAvbxPqaQL5Yjz5PFN2COH+6G3JN9i2YZgqMRKGxEXNw2n8HltIhB?=
 =?us-ascii?Q?XX1eofBa2OdBpeMJ3KQMzIoiJ9AqkvmsA2zsRKnQrLFBFLnTBwG6oOpyNrBT?=
 =?us-ascii?Q?afSJHFfVz8971tn+vmqzJdSSXqFlRhC8WkEh9RDJFyrDHFkiM0Wh3Ydj6/lE?=
 =?us-ascii?Q?S6PMRg7YcesMNvUZCNTg1Hhy4PaBG7DVCJTe1yiLWj1ktWwERMeEjAzU8eNe?=
 =?us-ascii?Q?BMIPWx5raMjY/Tf6HSDk529rYP2g3MbbnCMcectbemm1uNLZRzsfBVstvAwF?=
 =?us-ascii?Q?E+0i+Nn7srH2JUanLe1yMPgW2emqPIhaveYJ2XEoUo30TD676ZL7Vr5bKsBQ?=
 =?us-ascii?Q?xrhmi8hjNQ9MsG8tJcmzdBmbrWo3p/hGTcUdE4FKrQogvfJ3v6n19zpL3bz1?=
 =?us-ascii?Q?UjhpN/jAv2h8vT1fHJYmwhU/nohTQs7BR2+vCYd7PiuoKMNN5uBQ098Te8oY?=
 =?us-ascii?Q?GHsMbRS1PDzk2AzNEC4O3GEOhgSjohjDVNtd8bbR//nWruHg3pS6RbwA9mYt?=
 =?us-ascii?Q?mv9z6EKVgV6e/9WIjuF7aP4mWNUMgETQqtw9D5VNxORmkPh6lBA6XmnDE6lK?=
 =?us-ascii?Q?OkBfMEDl2c7zAsfD+pAPGHJfhbleyBrYwve8NwOZ9R6SziTiWnfnQ2wtcflD?=
 =?us-ascii?Q?N0bhIXY/MQeI/MDrUj+cshvhqlIU2HJwj6yfubbyw8vJc2Lafx/t2tmjdut2?=
 =?us-ascii?Q?Kz2MB0gj3Sg2qNBW38QKlEhxTX6DohcaPOn7?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Aug 2025 21:35:57.9614
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 099e23d6-1c01-4c69-d5b5-08dddc43b8fc
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ5PEPF000001EA.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYYPR12MB8732

Usually, priv_domid == dom0_domid == 0, and that is what is expected.
If we rename s/dom0_domid/store_domid/, it seems more likely we want to
actually have the priv_domid as the owner.

That leads to follow on changes to ensure that the priv_domid is created
first.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
---
v5:
R-b Juergen
s/Local/Privileged/ in comment
---
 tools/xenstored/core.c   |  4 ++--
 tools/xenstored/domain.c | 14 +++++++-------
 2 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/tools/xenstored/core.c b/tools/xenstored/core.c
index d447e1167e..7a65ddb585 100644
--- a/tools/xenstored/core.c
+++ b/tools/xenstored/core.c
@@ -2269,7 +2269,7 @@ struct connection *get_connection_by_id(unsigned int conn_id)
 static void manual_node(const char *name, const char *child)
 {
 	struct node *node;
-	struct xs_permissions perms = { .id = dom0_domid,
+	struct xs_permissions perms = { .id = priv_domid,
 					.perms = XS_PERM_NONE };
 
 	node = talloc_zero(NULL, struct node);
@@ -2320,7 +2320,7 @@ void setup_structure(bool live_update)
 		manual_node("/tool/xenstored", NULL);
 		manual_node("@releaseDomain", NULL);
 		manual_node("@introduceDomain", NULL);
-		domain_nbentry_fix(dom0_domid, 5, true);
+		domain_nbentry_fix(priv_domid, 5, true);
 	}
 }
 
diff --git a/tools/xenstored/domain.c b/tools/xenstored/domain.c
index c74bafa165..bcc63104b7 100644
--- a/tools/xenstored/domain.c
+++ b/tools/xenstored/domain.c
@@ -1026,7 +1026,7 @@ static struct domain *introduce_domain(const void *ctx,
 	struct domain *domain;
 	int rc;
 	struct xenstore_domain_interface *interface;
-	bool is_master_domain = (domid == xenbus_master_domid());
+	bool is_priv_domain = (domid == priv_domid);
 
 	domain = find_or_alloc_domain(ctx, domid);
 	if (!domain)
@@ -1051,13 +1051,13 @@ static struct domain *introduce_domain(const void *ctx,
 		if (!restore)
 			interface->server_features = domain->features;
 
-		if (is_master_domain)
+		if (is_priv_domain)
 			setup_structure(restore);
 
 		/* Now domain belongs to its connection. */
 		talloc_steal(domain->conn, domain);
 
-		if (!is_master_domain && !restore)
+		if (!is_priv_domain && !restore)
 			fire_special_watches("@introduceDomain");
 	} else {
 		/* Use XS_INTRODUCE for recreating the xenbus event-channel. */
@@ -1392,15 +1392,15 @@ void init_domains(void)
 		barf("Could not determine xenstore domid\n");
 
 	/*
-	 * Local domid must be first to setup structures for firing the special
-	 * watches.
+	 * Privileged domid must be first to setup structures for firing the
+	 * special watches.
 	 */
-	if (init_domain(dom0_domid))
+	if (init_domain(priv_domid))
 		introduce_count++;
 
 	for (unsigned int i = 0; i < nr_domids; i++) {
 		domid = domids[i];
-		if (domid == dom0_domid)
+		if (domid == priv_domid)
 			continue;
 
 		if (init_domain(domid))
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 21:36:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 21:36:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1084088.1443545 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1un25o-0006Vt-9G; Fri, 15 Aug 2025 21:36:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1084088.1443545; Fri, 15 Aug 2025 21: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 1un25o-0006Vh-4t; Fri, 15 Aug 2025 21:36:08 +0000
Received: by outflank-mailman (input) for mailman id 1084088;
 Fri, 15 Aug 2025 21:36:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=IuPz=23=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1un25m-0005Bt-Ou
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 21:36:06 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20616.outbound.protection.outlook.com
 [2a01:111:f403:2009::616])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d93c5cf6-7a1f-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 23:36:06 +0200 (CEST)
Received: from BN1PR14CA0026.namprd14.prod.outlook.com (2603:10b6:408:e3::31)
 by BN7PPF0D942FA9A.namprd12.prod.outlook.com
 (2603:10b6:40f:fc02::6c7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8901.27; Fri, 15 Aug
 2025 21:36:00 +0000
Received: from BL02EPF00021F68.namprd02.prod.outlook.com
 (2603:10b6:408:e3:cafe::5d) by BN1PR14CA0026.outlook.office365.com
 (2603:10b6:408:e3::31) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9031.19 via Frontend Transport; Fri,
 15 Aug 2025 21:36:00 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL02EPF00021F68.mail.protection.outlook.com (10.167.249.4) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Fri, 15 Aug 2025 21:35:59 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) 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; Fri, 15 Aug
 2025 16:35:59 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.10; Fri, 15 Aug
 2025 14:35:58 -0700
Received: from fedora.mshome.net (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Fri, 15 Aug 2025 16:35:58 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d93c5cf6-7a1f-11f0-a328-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HwsNIf6F+5RmvZcWKCnZ+WKiy8IPyzWYTVPa7hyTebWvAnCBBhGCShaBwqBEhNegUx2z4NnRQF04OaUtSpiEkxQTfO/LF7jS8a3ZPIKbgXpj43jUv4TMS2jpjYSy6bCEjLMuI88L1v6K7PW71RuAaBL83Wr+K2QNYdH0rcGLwt1oeBcXCJDBiIu8KeKId+yVPRHa/Yu8kAW3gIFkzM8lb7yGkd+JvDETjgnbihouJauUXIT/dkpJq2ETcxeWYOBZxs6k0T/TxR0Qpuj/4B1+T7U/LjJnbSywC8eFrum+1lA/nYvJ9mEkhiZCJ4jjSjZ1xkyjszCsqfb3Pb4JdWGbvQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-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+7OuLM8ujWFjQdwdbY3VEN6ufQX8/ZTtd1lIhEbSQ4=;
 b=TBFeKYmmrbOpV4XuqpPg3HtCGE6OflcLrss5ykDOuSdUk1A6COFMtm73DjmO8Mb/eg/MNkRsCj2pIP4Q/2N9khPMn9FrCUYcLWoYd+oA0E5Wcl/UBX5bV0p4eNuff9FfXtKxcDUaIeDPtjbD7BdspRaL2J+FvnL5jCOuu1tD59pNZvynDgL336YFqKJzaR4VL4HASZgqBdBiP9FT6A8lnsiVqljmZNHo4FRtdu75befVXADrja8I+4SaD4Qp6lHagMzSGP8No4tq+gpC2utAcZH1NoeJhO2TuLoUMze8N3AArFTZ59AA2TDNsc0rmOci/XqhUwzZZR7R2mn4OZjq3g==
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=T+7OuLM8ujWFjQdwdbY3VEN6ufQX8/ZTtd1lIhEbSQ4=;
 b=tUaAXX5gQZxplhnjE1+pTJYcKZQZfdaRmznsdgzUhAQ7EopFf0wo5U8vlRFpkEoPFx0sYKnRcDJMkFfuEnER3/t1L1T2W1WMbEVRwlUl1qfG1A3YP6yWH5ITadgiNwBJWasqa8+fHTKxOIB3lPqv+9GxhQQiIkqxLaC6oluA8bk=
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=SATLEXMB04.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Jason Andryuk <jason.andryuk@amd.com>, Juergen Gross <jgross@suse.com>,
	Julien Grall <julien@xen.org>, Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v6 6/8] tools/xenstored: Rename dom0_domid to store_domid
Date: Fri, 15 Aug 2025 17:35:54 -0400
Message-ID: <20250815213556.90068-7-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250815213556.90068-1-jason.andryuk@amd.com>
References: <20250815213556.90068-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF00021F68:EE_|BN7PPF0D942FA9A:EE_
X-MS-Office365-Filtering-Correlation-Id: ab9fe8a8-1dbf-4d4e-ed8b-08dddc43b9e0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|30052699003|82310400026|1800799024|376014|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?MbBCNNumPkrTmmvRgd6QWWtH5JAcC5erQ15zNCyzF3R6+b8djx3QMqq4Gvkb?=
 =?us-ascii?Q?fkx2cOd+mesLVedJPumA8gt9ZB2Mmb85Nuy2rU/F2EuC2iapfYH1sDUmfnTV?=
 =?us-ascii?Q?ExBDoag+WhzTZtt/wKCF/rHuuH8/nQ/6XlVHd/3dZgomG6X56XgBl8qOSzOO?=
 =?us-ascii?Q?gsbJ/vlaA8P6hrXCASCPeYKbqi/1CFjOwL415hZcMziAvkS+nhCJ3c1kzeUU?=
 =?us-ascii?Q?isxQu1N/21ttsFK7CcEkmhWgInwKPKcmhcbHeRLtavYyuji/gKjgQdu8ufQq?=
 =?us-ascii?Q?9dCXVFIT4R+eQ8isMW0NJQu7eOIL5kYrqB+TKVlhwBeZz6vCB1HrDjohLnNe?=
 =?us-ascii?Q?Xuydj79uchjjEPZWrizhQnN7bbfarZah76EYy+kZaoUKuFVvjIodAUfvOlZt?=
 =?us-ascii?Q?aXSETHv//7vp42nIs2/tZzlq36fRz9rMrFR9BYoZRj7SA6z1bNH9OPe7Nm0J?=
 =?us-ascii?Q?V/pmjRWts5ujKC82HhDuZOeWVtz/1Ss/KxzM6EaYInn+qBwLxH/YxsmPmJYx?=
 =?us-ascii?Q?fT9WS4aVRkMnSualXUua58W+rR9dBMlsNcXohwjby2E2PS7Aala0nhafWuo8?=
 =?us-ascii?Q?4EzYzBU9ai2qO/3Tr8B6jWcsAmMJxOXTNa8jfu81DcLqIsiJWkR09TvD2GZ5?=
 =?us-ascii?Q?cIMVox42JmOP82SWOpHcxhSk2ZK/MbEUuvxW74YQIc2Eygv6CEjceCH08MPM?=
 =?us-ascii?Q?wqcNs5zz+rrqzJyDnp1n68GmIPugh8HH98j7iRxeR2ahfGgHrNmLf2PnBCic?=
 =?us-ascii?Q?ZAoxTiNYdZCoBp0OlZKbpDd+PnqTMLVyEqbHeSozIW+23un+SJwTz76rdsKA?=
 =?us-ascii?Q?B+ZMZ+r42xqIsrdQYPR5KSRZnsAzpPPQ99RPVePCp8snj2GYMLTknJI5gPEX?=
 =?us-ascii?Q?r3qLwtpJthp0/jtmZFIpFM5nTVy6vEZV4+OFZVRFSmXrvH0lfdZKB75wNrPh?=
 =?us-ascii?Q?wMGmMRVEa4VlkavVNNy1CB5cLvBGMvfAZfX+VMvCnqYSzBmzxJTIlL+AUWWj?=
 =?us-ascii?Q?P8jpSf7NcSt9tNt+LqWBgtrtBMo2q1m8zHxE9qJmGzwpaBVQEjEhck5MZBsK?=
 =?us-ascii?Q?l/MBDzh/k8viw3INOPIDM4lTRhoOUD4txu9kHU8dnCecdCNyDnVeRAcyInt9?=
 =?us-ascii?Q?OF85+IbZDo82F42X+6Z+VcRWbNqsqSNxVt6TOP+Yw0NJnvvREY/wsPatQqIJ?=
 =?us-ascii?Q?u6nSmEKxZXofnOoZNeNpA6kqO/7UmLjeKL7kzADDgbN9fMoZqBT0ukgt8pXY?=
 =?us-ascii?Q?4qUY+F/OgH4jycH0juPnK5ZQ0LEfb1vPKUlM4W6bLbPP4CX8RD+J70hwDfYZ?=
 =?us-ascii?Q?49y4ilkhCK3/ZSslzUwahQIg6216ecGRio9Pc89s1uNfjG+4I/fxMi1qBwl5?=
 =?us-ascii?Q?tfWQnwD8mg+tHphawyzhU7Xh+WUB2ZhviJUepwz6f+GAaRCdLEiBkwHEXpCR?=
 =?us-ascii?Q?DOPc2ArlzzMvS8CSsZUcQLiPnkWLkei3GNkEQ/eyGcP4U6/xJyzyX9/rQ1Xg?=
 =?us-ascii?Q?phJ4wPTuipijd6XfJFVazxS5KBr01lrrmz0a?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(30052699003)(82310400026)(1800799024)(376014)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Aug 2025 21:35:59.5481
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ab9fe8a8-1dbf-4d4e-ed8b-08dddc43b9e0
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF00021F68.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PPF0D942FA9A

The dom0_domid variable is misnamed and conflates purposes.  If we have
xenstored running in a Linux domain that is not dom0, this variable
controls the lookup of /proc/xen/xsd_kva and the event channel.

Rename to store_domid to better show its purpose.

One implication of this change is that the xenstore domain is not
privileged by virtue of considering store_domid as privileged.

domain_is_unprivileged() removes the dom0_domid/store_domid check, so
xenstore domain is no longer considered privileged.

onearg_domain() is updated to return EINVAL for store_domid or priv_domid
to maintain the ability to call XS_RESUME.

xenbus_master_domid() is removed with store_domid being used instead.

Add a description of the -m/--master-domid options while
doing this.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
---
v6:
R-b: Juergen

v5:
Remove xenbus_master_domid()
domain_is_unprivileged() drop dom0/store_domid.
XS_RESUME/onearg_domain() check store_domid || priv_domid
---
 tools/xenstored/core.c   |  9 ++++++---
 tools/xenstored/core.h   |  6 ++----
 tools/xenstored/domain.c | 14 +++++++-------
 tools/xenstored/posix.c  |  4 ++--
 4 files changed, 17 insertions(+), 16 deletions(-)

diff --git a/tools/xenstored/core.c b/tools/xenstored/core.c
index 7a65ddb585..64c478a801 100644
--- a/tools/xenstored/core.c
+++ b/tools/xenstored/core.c
@@ -2539,7 +2539,10 @@ static void usage(void)
 "                          allowed timeout candidates are:\n"
 "                          watch-event: time a watch-event is kept pending\n"
 "  -K, --keep-orphans      don't delete nodes owned by a domain when the\n"
-"                          domain is deleted (this is a security risk!)\n");
+"                          domain is deleted (this is a security risk!)\n"
+"  -m, --master-domid      specify the domid of the domain where xenstored\n"
+"                          is running.  defaults to 0\n"
+);
 }
 
 
@@ -2567,7 +2570,7 @@ static struct option options[] = {
 #endif
 	{ NULL, 0, NULL, 0 } };
 
-int dom0_domid = DOMID_INVALID;
+int store_domid = DOMID_INVALID;
 int dom0_event = 0;
 int priv_domid = DOMID_INVALID;
 domid_t stub_domid = DOMID_INVALID;
@@ -2736,7 +2739,7 @@ int main(int argc, char *argv[])
 			dom0_event = get_optval_uint(optarg);
 			break;
 		case 'm':
-			dom0_domid = get_optval_uint(optarg);
+			store_domid = get_optval_uint(optarg);
 			break;
 		case 'p':
 			priv_domid = get_optval_uint(optarg);
diff --git a/tools/xenstored/core.h b/tools/xenstored/core.h
index cef3c71eb0..e0b48e4978 100644
--- a/tools/xenstored/core.h
+++ b/tools/xenstored/core.h
@@ -365,7 +365,7 @@ do {						\
 		trace("tdb: " __VA_ARGS__);	\
 } while (0)
 
-extern int dom0_domid;
+extern int store_domid;
 extern int dom0_event;
 extern int priv_domid;
 extern domid_t stub_domid;
@@ -382,11 +382,9 @@ uint64_t get_now_msec(void);
 void *xenbus_map(void);
 void unmap_xenbus(void *interface);
 
-static inline int xenbus_master_domid(void) { return dom0_domid; }
-
 static inline bool domid_is_unprivileged(unsigned int domid)
 {
-	return domid != dom0_domid && domid != priv_domid;
+	return domid != priv_domid;
 }
 
 static inline bool domain_is_unprivileged(const struct connection *conn)
diff --git a/tools/xenstored/domain.c b/tools/xenstored/domain.c
index bcc63104b7..e282b5c5ed 100644
--- a/tools/xenstored/domain.c
+++ b/tools/xenstored/domain.c
@@ -509,7 +509,7 @@ static const struct interface_funcs domain_funcs = {
 
 static void *map_interface(domid_t domid)
 {
-	if (domid == xenbus_master_domid())
+	if (domid == store_domid)
 		return xenbus_map();
 
 #ifdef __MINIOS__
@@ -524,7 +524,7 @@ static void *map_interface(domid_t domid)
 
 static void unmap_interface(domid_t domid, void *interface)
 {
-	if (domid == xenbus_master_domid())
+	if (domid == store_domid)
 		unmap_xenbus(interface);
 	else if (domid != stub_domid)
 		xengnttab_unmap(*xgt_handle, interface, 1);
@@ -1158,7 +1158,7 @@ static struct domain *onearg_domain(struct connection *conn,
 		return ERR_PTR(-EINVAL);
 
 	domid = atoi(domid_str);
-	if (domid == dom0_domid)
+	if (domid == store_domid || domid == priv_domid)
 		return ERR_PTR(-EINVAL);
 
 	return find_connected_domain(domid);
@@ -1381,14 +1381,14 @@ void init_domains(void)
 			 * have 1 domain.  stubdom there will be dom0 and dom1,
 			 * so this will take the second for stubdom.
 			 */
-			dom0_domid = domid;
+			store_domid = domid;
 		}
 	}
 
-	if (dom0_domid == DOMID_INVALID)
-		dom0_domid = priv_domid;
+	if (store_domid == DOMID_INVALID)
+		store_domid = priv_domid;
 
-	if (dom0_domid == DOMID_INVALID)
+	if (store_domid == DOMID_INVALID)
 		barf("Could not determine xenstore domid\n");
 
 	/*
diff --git a/tools/xenstored/posix.c b/tools/xenstored/posix.c
index 4a97f53dc0..0ec7babb7a 100644
--- a/tools/xenstored/posix.c
+++ b/tools/xenstored/posix.c
@@ -174,7 +174,7 @@ static evtchn_port_t get_xenbus_evtchn(void)
  */
 evtchn_port_t get_domain_evtchn(unsigned int domid)
 {
-	if (domid == xenbus_master_domid())
+	if (domid == store_domid)
 		return get_xenbus_evtchn();
 
 	return 0;
@@ -280,7 +280,7 @@ static void accept_connection(int sock)
 	conn = new_connection(&socket_funcs);
 	if (conn) {
 		conn->fd = fd;
-		conn->id = dom0_domid;
+		conn->id = store_domid;
 	} else
 		close(fd);
 }
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 21:36:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 21:36:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1084089.1443555 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1un25p-0006nr-Q8; Fri, 15 Aug 2025 21:36:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1084089.1443555; Fri, 15 Aug 2025 21:36:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1un25p-0006nb-MZ; Fri, 15 Aug 2025 21:36:09 +0000
Received: by outflank-mailman (input) for mailman id 1084089;
 Fri, 15 Aug 2025 21:36:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=IuPz=23=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1un25n-0005Bt-Ul
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 21:36:07 +0000
Received: from NAM04-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam04on20609.outbound.protection.outlook.com
 [2a01:111:f403:2409::609])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d9c9aca6-7a1f-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 23:36:07 +0200 (CEST)
Received: from BY3PR10CA0009.namprd10.prod.outlook.com (2603:10b6:a03:255::14)
 by MW4PR12MB7483.namprd12.prod.outlook.com (2603:10b6:303:212::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.18; Fri, 15 Aug
 2025 21:36:01 +0000
Received: from SJ5PEPF000001EA.namprd05.prod.outlook.com
 (2603:10b6:a03:255:cafe::c1) by BY3PR10CA0009.outlook.office365.com
 (2603:10b6:a03:255::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9031.19 via Frontend Transport; Fri,
 15 Aug 2025 21:36:00 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SJ5PEPF000001EA.mail.protection.outlook.com (10.167.242.198) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Fri, 15 Aug 2025 21:36:00 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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; Fri, 15 Aug
 2025 16:36:00 -0500
Received: from fedora.mshome.net (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Fri, 15 Aug 2025 16:35:59 -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>
X-Inumbo-ID: d9c9aca6-7a1f-11f0-a328-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=VgrSNPaEKBw0Zz8vvdp5zm6E446U3Kjcme/EK2Xv3lG+/0GF8kQSHtMOjEPMUpmvlrjDzg6ZIk/bmjtvic410Qmz5d901vGo4gF38xIDO5iYstMHGEKAesV5LliwhpwmCLNDF9pT+9D5YLsneBAu0wGn+piJeEZoeq1TE67BbjOA7HuDK6+Q/S3FPHOqoRvNwLZDUkEINR2qzmfTWIHg9cbmjGJ3hAfyayixGPBkyI7QeAYH6Ce+LhAFHf3OEMicHO1lBfNwIhjJ4Efdv0oYK9hXhHcwUyKSKmCjn3S1dBLy9M0NhcqLTH03s064jnqHtRZ1b4IfbjXaIrQtGsonxQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ew1kABlxkh9uuRA1y1N6NUP22h+9pypvGUCR2HNQr2Q=;
 b=BwScjzo6So78v0yW06DXXh4ulV+V58a0t3JHUMXg/7SrYbsTMSAOFDx6RKo2aH2SxHPD/0zE7GexW0Sj1oDgvWQL8b7qDx3LhY2VF5Vwgx5l+YaAU6Mw8ZLs6jAeTwJ04+d6u4xFNjZ/S6kW8Eivjmtfi4o6psFPeTUPHby/xcEoqYAH0dqzBytX/QIZMgm7SL0D7xDZ80xr5y9Q2hVYJXm1DP2Ct/VS5FHfbZLgehN56d6rHxBIJ3rieS7hTpOj7Q11pAg3RbN+6EJgwHMYN0CrSJR5mt4Gmx8+MC3oM1To0qZks6dBgiF7du7BNP0R/nn08HArCsqO2h5TuqckwA==
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=ew1kABlxkh9uuRA1y1N6NUP22h+9pypvGUCR2HNQr2Q=;
 b=zNN8+L/l5caYJvYrW0zsO+a4EGYlSasCQfGZ2sxSHnvh4VZwCw4aiMrnXPQfa0dB9QM4lpfP+7Y0NqVdqrwX6YMwk+rAdxeFwWDovkBKxPH30I4Z29GjPRu4A5nckhenxojqlhsS/t2Bvos953Vv4JHzWDOriZleJo9ZPLv1jwY=
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=SATLEXMB03.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Jason Andryuk <jason.andryuk@amd.com>, Juergen Gross <jgross@suse.com>,
	Julien Grall <julien@xen.org>, Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v6 7/8] tools/xenstored: Remove stubdom special casing
Date: Fri, 15 Aug 2025 17:35:55 -0400
Message-ID: <20250815213556.90068-8-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250815213556.90068-1-jason.andryuk@amd.com>
References: <20250815213556.90068-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB03.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ5PEPF000001EA:EE_|MW4PR12MB7483:EE_
X-MS-Office365-Filtering-Correlation-Id: f751c741-02a8-4471-054d-08dddc43ba9e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|376014|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?A6/ZpUxuB9jyBR5zSp8pkhSaIWhwJvCjWv9bW0dj3l+WEPE3f5y+thUGtL8l?=
 =?us-ascii?Q?MtBEd0SlMri618J3wHAuDbh1SrtFWBlEWmNHgmJ4MPPSJIn0nVXZb4IeyZwa?=
 =?us-ascii?Q?5RY2S8Mvvw2uO7kubzUzO3+bvQtNb1xHW/hQBsXyAy4gM0MUIloNyDdCDgJ+?=
 =?us-ascii?Q?83S/9hEeiiS13vUV2AIezC4JWHkhhMFu9L/VN2CYrIKf8al3UNdsT1T6LIr+?=
 =?us-ascii?Q?TH+pbb153APjmBBLrNFSTx1xIdM7Y9AbReAzrq0nRf3CQTbwFsBbUXJyQwiW?=
 =?us-ascii?Q?IokOC5Wg1gV2JVUo2q141xkYZHYz2tYj3XChWttgCWnYiCyOK44D64Yu/aSZ?=
 =?us-ascii?Q?/Mcd3+e6f+oxzyBLRiz/7KVyTZw4SQoKMzI30/IdZxtwmRo+T/zgasF6n0qU?=
 =?us-ascii?Q?FvsZ1dTG5Vh2t3ZZLFqBPVU1/aRWVFfo0g7gq2EYqa8hv05GlMKKtngN19bk?=
 =?us-ascii?Q?P8WT/FsAs8hHupgj/ON2PyV11M2CNkNPz3QIOAZPlBidGwa/++nE/Go55Jbv?=
 =?us-ascii?Q?CNfYWG6P2Ud5IR8fmNCBpolW+0PdUuheWeUM7bK1hlnyUcmxyjcMokhuFjY4?=
 =?us-ascii?Q?AEo8CjvSAphhOeMusUn8cPSzWsVMBQUe/e5hywE3ZkyRbEx+/6ihROg12YaE?=
 =?us-ascii?Q?bJH5HsftBy8AVh82///G6T8uEPZI6kh4jAoKWqpd9qqb80KjCFhabfFimkJ+?=
 =?us-ascii?Q?tFQLdxMbKzbAN/rBifm25bPPVPmGVvTjXMhnSpQXtJe08uWk+wQSMdrdJIl1?=
 =?us-ascii?Q?FsXLUO4RiYe0SKNPfLQMJiEK0XmJo3XrzvE0oeEgRclRO0uYVdR8527nrJgl?=
 =?us-ascii?Q?yNVcDkSXUNPeLNxBheb4pyICjxAGZLeOLFicrfnGTeCkwisW4oGzZCbZZeA9?=
 =?us-ascii?Q?EanNygmJbeO01H/99ykPgXMNtCHtYVOXJhAASh5HavRYu/FVjoLZZLEtiPzz?=
 =?us-ascii?Q?dhSoJQ6MqjsBvjldnqLMKBpgflihVW1bhdLVbZEGTula5cUYi7eE75eZNdnN?=
 =?us-ascii?Q?uLe+IGGJ9TfZHdDZVCn9zjfkCD2Hro/DmTPG7imTm6Q6rMWuLQn0CsoslTfg?=
 =?us-ascii?Q?/kcFHVTUPYfgiOypZvq7I3EZ2SNUO9DcMn8EZvi3eZRWn1yKcb6mSUbW3RJ3?=
 =?us-ascii?Q?+whD/LjeMCIjpGk+1voqvjL6nSfSaG6037vvWtV+78vU2r5jS/V7DB6VylzC?=
 =?us-ascii?Q?6ii+1s52Orw5sa+Olni92ddZPrS6m60do7MW1rwR849wTIlntGSMJ+HX17Gr?=
 =?us-ascii?Q?WrMTjfkrFTv9UloV+r0jkEym8QZf0hK1blYjy/cagtdH0n9mQqFXb4lIHlFT?=
 =?us-ascii?Q?4QPqafusJD2ybjl9mhRLdPzPzKO9Bhn5lRLcKBldP3T40jX5iAcCOypuutgK?=
 =?us-ascii?Q?NZlk7WIrVuQfaRm/bkKHSiwy+XVJyrhLTp9cyOcq4+bVpWSRgP7yznr419z3?=
 =?us-ascii?Q?mEJEpQrhit8FT/Rkhl8+YJ5mHG/grStcPOJN9DTEJ2EK4yieKdl1N0aS4dfk?=
 =?us-ascii?Q?NT8CNCpx1Y0U/kCJSZc8xG0JhKqejQhKx1vc?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Aug 2025 21:36:00.6957
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f751c741-02a8-4471-054d-08dddc43ba9e
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ5PEPF000001EA.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7483

posix.c and minios.c implement the same named functions serving slightly
different purposes.

For xenbus_map()
posix.c maps the local /dev/xen/xsd_kva
minios.c maps dom0 via grant and there is open coding for stub_domid in
map_interface.

Change xenbus_map() to map the local domain's interface.  The default
grant table mapping is performed otherwise.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
---
v6:
R-b: Juergen

v5:
Re-order later
---
 tools/xenstored/domain.c | 5 -----
 tools/xenstored/minios.c | 4 +---
 2 files changed, 1 insertion(+), 8 deletions(-)

diff --git a/tools/xenstored/domain.c b/tools/xenstored/domain.c
index e282b5c5ed..cf5a54965a 100644
--- a/tools/xenstored/domain.c
+++ b/tools/xenstored/domain.c
@@ -512,11 +512,6 @@ static void *map_interface(domid_t domid)
 	if (domid == store_domid)
 		return xenbus_map();
 
-#ifdef __MINIOS__
-	if (domid == stub_domid)
-		return xenstore_buf;
-#endif
-
 	return xengnttab_map_grant_ref(*xgt_handle, domid,
 				       GNTTAB_RESERVED_XENSTORE,
 				       PROT_READ|PROT_WRITE);
diff --git a/tools/xenstored/minios.c b/tools/xenstored/minios.c
index 60d921cf01..a214e23907 100644
--- a/tools/xenstored/minios.c
+++ b/tools/xenstored/minios.c
@@ -61,13 +61,11 @@ evtchn_port_t get_domain_evtchn(unsigned int domid)
 
 void *xenbus_map(void)
 {
-	return xengnttab_map_grant_ref(*xgt_handle, xenbus_master_domid(),
-			GNTTAB_RESERVED_XENSTORE, PROT_READ|PROT_WRITE);
+	return xenstore_buf;
 }
 
 void unmap_xenbus(void *interface)
 {
-	xengnttab_unmap(*xgt_handle, interface, 1);
 }
 
 void early_init(bool live_update, bool dofork, const char *pidfile)
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 21:36:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 21:36:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1084090.1443565 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1un25r-00077i-75; Fri, 15 Aug 2025 21:36:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1084090.1443565; Fri, 15 Aug 2025 21:36: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 1un25r-00076h-1a; Fri, 15 Aug 2025 21:36:11 +0000
Received: by outflank-mailman (input) for mailman id 1084090;
 Fri, 15 Aug 2025 21:36:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=IuPz=23=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1un25p-0004xK-AA
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 21:36:09 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20610.outbound.protection.outlook.com
 [2a01:111:f403:2415::610])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d99759af-7a1f-11f0-b898-0df219b8e170;
 Fri, 15 Aug 2025 23:36:07 +0200 (CEST)
Received: from MW3PR05CA0016.namprd05.prod.outlook.com (2603:10b6:303:2b::21)
 by SJ2PR12MB9212.namprd12.prod.outlook.com (2603:10b6:a03:563::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.18; Fri, 15 Aug
 2025 21:36:03 +0000
Received: from SJ5PEPF000001EE.namprd05.prod.outlook.com
 (2603:10b6:303:2b:cafe::c6) by MW3PR05CA0016.outlook.office365.com
 (2603:10b6:303:2b::21) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.7 via Frontend Transport; Fri,
 15 Aug 2025 21:36:03 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SJ5PEPF000001EE.mail.protection.outlook.com (10.167.242.202) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Fri, 15 Aug 2025 21:36:02 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) 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; Fri, 15 Aug
 2025 16:36:01 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.10; Fri, 15 Aug
 2025 14:36:01 -0700
Received: from fedora.mshome.net (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Fri, 15 Aug 2025 16:36:01 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d99759af-7a1f-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qcbn4taXH5N+gmU7zSCkzic2vVK9BfbjPL0GPbXGM5OYPqJ1P8/p8On1svOLLNO7L7ycHflBmauwSB/BgQ1SUKqAdk9dEDNEXXUQoe2I7xaIHf0Ab/21EBJKM0AnRpvFL5dOjAwTwjUicaDOlilEpSWv9LwCkYfTMB4ioVn4e4gje7mq8J7rnsyHmyuRbgmFlEix/OZ1tlHsJ1aU1laIxSzCZ5BDj+0YRCXrtdYV4qQ9jVKAaurApdrYcPsL7+ZLBoYvXiE+mHR0y/ipOytViNB1U9uxuuMJuX8mMJmeXofa9/hombCM461FuaC/HK+CITLzMFhVZe+rwz+Rz4mBxA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=6o2KKFuYGe9DCLPgWqQt6Y96aL0o/a+ZBCaV0wZywVI=;
 b=QdfTS1pOZKvD3B5eEzws+XGpp/6yagNXfnA+ee1tp80h9BNzBNWfbS/j+9A7cSlfgo10b12QVbjD5jelWlciQbt8jevb1o+hievnYDjASqsLnLa+acskDmdhkwJroTlU4p8vfpGC6/5B2pbDDJA9h+A6tN9xnW0IdpOl9JtG6XnxGGhykxKTIgoFUEVriqHLRSeGOlAWii7ItVBJsMrmW3zJes4ZdgtrQPrk6nIj1SvvvTaiQIi4ZwXWkvlX5r9Bg7rVIcwMZrIVIALNdB8yGn45f8vIS7quTec/3F0aTzrfK6NhID2NUM5yUYh4McN3kxSAaYA3sM1lrvtvVTpbYA==
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=6o2KKFuYGe9DCLPgWqQt6Y96aL0o/a+ZBCaV0wZywVI=;
 b=QrcbNczmLlt/dQJkc2UClJq0G4x3O6PztXDJIS/+Uuh9mdAafk8WNp+fqupoEsut40ir3hoy9LMpPY8bWvcllZmLQLCSAJhbTMUOOuN2N6x9ErUkbCCI/xW9agUoDOTp3mCveMy9fTco+/QPLWIfWxvoqUaEUtckN8Oo1CndAr0=
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=SATLEXMB03.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Jason Andryuk <jason.andryuk@amd.com>, Juergen Gross <jgross@suse.com>,
	Julien Grall <julien@xen.org>, Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v6 8/8] tools/xenstored: Remove hardcoded implicit path
Date: Fri, 15 Aug 2025 17:35:56 -0400
Message-ID: <20250815213556.90068-9-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250815213556.90068-1-jason.andryuk@amd.com>
References: <20250815213556.90068-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ5PEPF000001EE:EE_|SJ2PR12MB9212:EE_
X-MS-Office365-Filtering-Correlation-Id: 86644da7-bb35-4510-ba7d-08dddc43bbdf
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|376014|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?ZYjBAGuKHmy5E0NsrK2wEaSwu03icErZ/yPsLpCo0GOPXTkroJnh9b7DrvG/?=
 =?us-ascii?Q?1/xxl7gyZmFW4x+8XRTiB8aUHqD6byaWBzpR3xG5nppbe9YqHyfY3AhbqbX1?=
 =?us-ascii?Q?WpcyfeLiAOpxJeWVpsqrxf9qo3knptIcRjQ2ZFyusvwhJjQSC+J05ii5BDo7?=
 =?us-ascii?Q?VV67hUWr2YRjqOATXmoPetpqex/64w5Uljdtm/2F8ZxeVCu7stv/wijkQ3Ti?=
 =?us-ascii?Q?mIA48effSlkwzWRWaqiPkzFIUav7yL6Egd4chyVUVPbLYZ1KSO5oRyQSyYKQ?=
 =?us-ascii?Q?mSfFF0xWXVAfXsvbVGGRpmwIY7lxDnjuYS9UrFkbwc2ZobakF3zOc/kVWVqS?=
 =?us-ascii?Q?njUJmq9l5sR16wP7FF9NJqeK85M0PQ19sQoSbDk4h0ND3824vTL3+QCvpfJE?=
 =?us-ascii?Q?AYvupKQa2gEDOsi5jlzqIrhrAooCBhEv34Op/g/uAGbfrOwNoo5X7bjboSfC?=
 =?us-ascii?Q?3JQlvM+qYemu+khEuzz7LTI84ZRSnhcu+JylNCtrEAU8Ba3eNuBMU2GS3zfN?=
 =?us-ascii?Q?qBoDY4AUEQWXuF9tkm+WO/Gj5pYCm67t6pSntLOsCt1i8PxXXiBTxxmQglYH?=
 =?us-ascii?Q?STSLOQWpDZohIFbUNjimn2XMQ6bepSIxEuAJIqpz24A6rw06wiHGfhjhV4oB?=
 =?us-ascii?Q?S13yKAgqr37WoGrRbOA1JWFzhE1mbNbUxBEX7Qwnj/3dU88F0Y1VJWebgpjb?=
 =?us-ascii?Q?CpooKJSOQw6q5qghwtAXCLU8fMBHeoRyZNX0vAN+bOfASdUSthSH7aCcjDi/?=
 =?us-ascii?Q?D8DTLLB16veEmahn/j6CYN0RN5AgXD0NynaWllBNOJ00YQbC0xPFnqjrxUDF?=
 =?us-ascii?Q?h6I9EJwWHtdhv5eB2cZiYNyPZbT97pBpK++p/UhmFKzUpHCAd5Seqy4rd9Do?=
 =?us-ascii?Q?aRDj5HaBj0zo/ZRYjqxI8eGbjL4to2DWR0tDDP6wojOAMJNp8FqJ0ZPXb2Cc?=
 =?us-ascii?Q?uQRuNsZJEGEEvlrD9CQ42JUjaxhnqahl2aeZPTxh1cmOc4upR18jJbhCQBL3?=
 =?us-ascii?Q?9YdoT1XO9AMzPwztl9E2dzFBZYgYyk0qii2xNXGbVQjSUiCnrbUpHnBuTqgE?=
 =?us-ascii?Q?GOO9tJ3COMDQRXQCIaZBdrurDeRpuJROM5UHXamYsGqjfddDPmkk0EiYV+n1?=
 =?us-ascii?Q?xaZqF3PuizQRuZSgcy/g57DrIlFQI1wKdAFy6NAqVVIhkSjH+zgdHOQjbNEp?=
 =?us-ascii?Q?Fd5WbAihY510V7IOL35sxrPS4N3AYUMPetOdhCRLPFHF1BoHnNv65MrlO9FO?=
 =?us-ascii?Q?EwMfYiTtBZtkgP9JbavwLvIg7OGKRpV3ElfsGy1/wber0ow7v9KzsZsXkrR6?=
 =?us-ascii?Q?AGVGeZvIj4vc8O898tKFUhr+BMO8mhyGW0qfMggzwbeA1D71ZyevuqdHyPyf?=
 =?us-ascii?Q?6YrbxwF8R0n2QnlaiA7Cua7awNs3plQRU2B5VS8fjTZoh6+B2KXFryN+nAl5?=
 =?us-ascii?Q?7ibvGXkm98XmE9xI1yftIxu6vfVMJ55XbkNUzqXzvV/iZ0nTWLImNk8NVDq9?=
 =?us-ascii?Q?1Ko3PSg2fyryVnUGCWybUvJofj8NcYmCfOzf?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Aug 2025 21:36:02.7648
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 86644da7-bb35-4510-ba7d-08dddc43bbdf
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ5PEPF000001EE.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB9212

Update get_implicit_path to return the correct value for a non-dom0
xenstored domain.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
---
v5:
R-b: Juergen
---
 tools/xenstored/domain.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/tools/xenstored/domain.c b/tools/xenstored/domain.c
index cf5a54965a..694d68670a 100644
--- a/tools/xenstored/domain.c
+++ b/tools/xenstored/domain.c
@@ -1312,11 +1312,13 @@ static int close_xgt_handle(void *_handle)
 	return 0;
 }
 
+static char store_domain_path[] = "/local/domain/65535";
+
 /* Returns the implicit path of a connection (only domains have this) */
 const char *get_implicit_path(const struct connection *conn)
 {
 	if (!conn->domain)
-		return "/local/domain/0";
+		return store_domain_path;
 	return conn->domain->path;
 }
 
@@ -1386,6 +1388,9 @@ void init_domains(void)
 	if (store_domid == DOMID_INVALID)
 		barf("Could not determine xenstore domid\n");
 
+	snprintf(store_domain_path, sizeof(store_domain_path),
+		 "/local/domain/%u", store_domid);
+
 	/*
 	 * Privileged domid must be first to setup structures for firing the
 	 * special watches.
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 15 21:40:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 15 Aug 2025 21:40:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1084142.1443575 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1un2AG-0002Jm-P3; Fri, 15 Aug 2025 21:40:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1084142.1443575; Fri, 15 Aug 2025 21:40: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 1un2AG-0002Jf-L0; Fri, 15 Aug 2025 21:40:44 +0000
Received: by outflank-mailman (input) for mailman id 1084142;
 Fri, 15 Aug 2025 21:40:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=IuPz=23=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1un26Z-0005Bt-Mv
 for xen-devel@lists.xenproject.org; Fri, 15 Aug 2025 21:36:55 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20602.outbound.protection.outlook.com
 [2a01:111:f403:2412::602])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f35b78c0-7a1f-11f0-a328-13f23c93f187;
 Fri, 15 Aug 2025 23:36:49 +0200 (CEST)
Received: from BN8PR15CA0044.namprd15.prod.outlook.com (2603:10b6:408:80::21)
 by CH1PR12MB9694.namprd12.prod.outlook.com (2603:10b6:610:2af::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.18; Fri, 15 Aug
 2025 21:36:44 +0000
Received: from BN3PEPF0000B36D.namprd21.prod.outlook.com
 (2603:10b6:408:80:cafe::f) by BN8PR15CA0044.outlook.office365.com
 (2603:10b6:408:80::21) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9031.18 via Frontend Transport; Fri,
 15 Aug 2025 21:36:43 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BN3PEPF0000B36D.mail.protection.outlook.com (10.167.243.164) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.0 via Frontend Transport; Fri, 15 Aug 2025 21:36:43 +0000
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; Fri, 15 Aug
 2025 16:36:43 -0500
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.1748.10; Fri, 15 Aug
 2025 14:36:43 -0700
Received: from [172.23.255.54] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Fri, 15 Aug 2025 16:36:42 -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>
X-Inumbo-ID: f35b78c0-7a1f-11f0-a328-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aZPDV7AlRw8JJfPyDabV9Rz1Zyzy4g/7qEG3PoZdiYs0fUsCtksORk2Ns4A8Z6kh5/WRDbWc3M96rtn25EUFDRl0GY0sKksBF3up/JJqK4B3XLPreEnT/rDG2+gpc8HRmrxvSrlNnms0BuIrVlfceX42wlhYg/FILY/l0pcAi2hy7JsjB0LksYsk25htl08qpEEi2HWpQ5Ao64GDERRPotTpZDZBlVfpIpnIIbjMfwSWE07GRP8LwVjecye+Fa2LHMjcyl8wozQfjPOEb0sK/9NF261vSx/IUipoOmUtbpeelFYoR2Q77YX8pNwoSHKzEI0jK74dr11/RKxgsqIS4g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ASkSUggCy20SnPNHIlAX2QNa1664ZTX5T6E9cv2J31c=;
 b=O7aDyxKJiqkvUn7CCVYCW8Vff5k5/6u6T+fsrOBFXqXCwLqH4jHYKzjRZCgcU8D53K2gS0eetAIu9HAr1oDxH4/O+VNsDOzRO5Uh2DQI1n8ufFdpm+J87V50nOxEICRwrHGSVzYpUssxYPJKAm1f1xEpEBvip9wganJ5fdSKA/iQkL0fRFJI3jTG8UlwLjyGsDc1T4gE11Gi/w2RbvzCR0QHb8DjlcTDHqmlF6I+bMQhH3UvDwP+z3kXXsa9LqL5dEgDncIvgyzcrJPCHs48ACMfK3os34frWcei/2TiIlxGGvgqCtYGBeA8Z/BLf9pG6mCi+kMvP621IG7IH3WMrQ==
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=ASkSUggCy20SnPNHIlAX2QNa1664ZTX5T6E9cv2J31c=;
 b=PotvdN1dJQZ4/zKEYE+jPKKhd85N8gtuoLJDfv8rAJDot+5im078RlPXNSkUkZAnBixiIrqfLhYeQ7/MmH+xsYNWEOwW9gDx2T1zL5H/Y0ZETcFHpWyivTq6Hto6G+mClBuurZb2XwMrNo3Eo/M9KnPZuM4862BJ8YrnPy9JPtg=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <f5bf8d33-7686-4a08-a8e4-09ec64522d55@amd.com>
Date: Fri, 15 Aug 2025 17:36:57 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] drivers/xen/xenbus: remove quirk for Xen 3.x
To: Juergen Gross <jgross@suse.com>, <linux-kernel@vger.kernel.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Oleksandr Tyshchenko
	<oleksandr_tyshchenko@epam.com>, <xen-devel@lists.xenproject.org>
References: <20250815074052.13792-1-jgross@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20250815074052.13792-1-jgross@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN3PEPF0000B36D:EE_|CH1PR12MB9694:EE_
X-MS-Office365-Filtering-Correlation-Id: f9c29260-3f89-44f3-2806-08dddc43d42b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|1800799024|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?dEdSdGRTUkg5TWM1M204bWxvOFFWT1hHZ2tsbnIvVDZJUFFtMDZDMnpkNkNp?=
 =?utf-8?B?T05jUVdaR3RFOGY4V29vc2w2YWJGdExCVnpnZTRMODRFL0k0NVNKR2luL3Rz?=
 =?utf-8?B?bEhhK1ZlU3NwVDZXZ1oyenNwNzJFK2QwckNkYWtTUldVUG91REk0cGsxMHl5?=
 =?utf-8?B?SjU5WFF4WmRyVUZxbHVOVFJveHVsY1J1eTVyRlRHQUxQbVFiTE1XZkhtSmV6?=
 =?utf-8?B?M0IyVG1XM1M4TEg5ZEpYaUEvc3ZoT0ZmaVBuY3V2L0NobFoyMDhsRXdKMkdB?=
 =?utf-8?B?OGFmalhjRU9QeU9oTXFseGw5LzN6TGF6c0l0ek1qOVplSWE1anpMSVdIalBn?=
 =?utf-8?B?UDd3ZzhDMFZGUTU2ZHhDekRZRjd3T1VvZTFKdXA1enRoSU0vQ3dpTUNDUDQx?=
 =?utf-8?B?bVlOakxKTlhrNkZtZk5teEFQTkNvRXVvWUNuaGZTQkZCdkJKc3UrUEp3V1Ey?=
 =?utf-8?B?MURzeTUvaldvbGw0TDRJV2ZzOUJNMCtDMzMvQVhOc3NiNFR6MTNFZFlFMDli?=
 =?utf-8?B?dWFyd3FRL3RqZS9TbnNudGRROXMzS0NUWnRQcUd4Unphb3krRUhadHp3a25Q?=
 =?utf-8?B?RjhsWWtWL0pDWWVaU2tLVHdHVm9XZ2xRM3FtTVYxeFM5V09VcGluRlpnVkl6?=
 =?utf-8?B?VkNWTDI4aDBQZ3BCR0o4TVNlWGFqQjF3QTRVU2ZIZEVBcnBNQnlPY0lrWWlX?=
 =?utf-8?B?Z0h3YWlvZDd6T2RQREl0MVFSYXhBeDVaMXQ2b1ZiLy8wMkh0NW1TaXRIazlr?=
 =?utf-8?B?Y0p0L1dQVkk5d1lVZ1U0N3Z4TTViUXpYWWtNb2JobzQydEp3S1d5YnJ2Smt0?=
 =?utf-8?B?Z29yeWhxdGV6STAyaGQzU1ZSbHNLRmU1YmZiT2MvU1NLWlJ6RDdJZHR6RDdh?=
 =?utf-8?B?SVpML3diMWMrZWRVd2k5VWNFZlQ2Q0swMHQ5aFZRWXhLaElIY1dYellleVgz?=
 =?utf-8?B?VTRzR0I3Y0QrSGN5QmNvMlJibk52U1Y4d2lpTis2TTF2RUJidXg5KzVxNC9l?=
 =?utf-8?B?MGRQdUZ1RXdiOUhQR21hcUtTcjhUMDdyeWp3bGRUL1RyN24xZUwxQmpxUDdu?=
 =?utf-8?B?WXQ0SlhFQU44NmxmNlhPRmxnVWk4N2VvNitoSWpQK3pKczYxOE83bUpWRCtL?=
 =?utf-8?B?cS9qVWxHSm9oenJpZVZqRDZqRnpUZzJwUWtXOFM2UTRqWUVhVENzdVdnNnla?=
 =?utf-8?B?UE9FemJ3SWkvYVFXRjZIVzA4OFBKR1k3bVJXQmZDZWR5dlFKQnFaZzlNdDZo?=
 =?utf-8?B?cm92cFNGS0hDTG1BWFFVYjg5UjRNSzIydml6a3pPRzNhN0NxTWVyZ1d5d1JO?=
 =?utf-8?B?UFRmT3F4eXU1dWdzM3I3T2RROWVML3k5SlRLS0Jjdk5LT1dOeENITDByenRT?=
 =?utf-8?B?clFFOHQ3NUlvR3M4TG5aNXZ3ZktFTzhEa3EvclRpYkdGVHN1UXVQelBYdFhL?=
 =?utf-8?B?bmlCdU5HQTVNOXoybCttUnhKMHZZM2dqcUMyY3pMMDNVN2hwb2laSDlrWUdi?=
 =?utf-8?B?bEJieXdXbDBsbGc1Rk14N1p6cDl3MU1hengwSFR1ckY2QVQvSkVWOEw5Y0dS?=
 =?utf-8?B?T1lzbEI4MlduWFJsRno4Z1lESVcyUElSc1I4bWE0T1MvSm9EbG9jZHAzaUNt?=
 =?utf-8?B?SmpkeHloNnBNLytqZjJkZWU4MWQrT2M3NytqQ0JhUWYvbGtSZnJUK0JOMExw?=
 =?utf-8?B?bC94NjRXalhpTHBhTEFZblF5UmJ4ZEY2Y2cxK0ViWU5FRjBydzlxcVY1cjlM?=
 =?utf-8?B?UnIxdmJhZkw0bWtXQVNaNVdHbHlQaGVPVm0vcHl3cWlsSVhTY09IMzU3MXdn?=
 =?utf-8?B?d2Vad3pjMGFleXFJM0RWb2JXUk0vRzI5azUzblVXRUZrSXhjWlY5eGhEc2hZ?=
 =?utf-8?B?QkpwVHJsckVpN2Nydnd0OHh1M1NZNW41eE5UWVF3aW4wQldqSG5GamtIY1Rk?=
 =?utf-8?B?UFlyNlA4KzIrcmZWM2VVbWwvNW1YZFdEMC81Zmhhb2d2dkZ2dTJYSDdCczFC?=
 =?utf-8?B?eGhXODh2MFlnPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(1800799024)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Aug 2025 21:36:43.6565
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f9c29260-3f89-44f3-2806-08dddc43d42b
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN3PEPF0000B36D.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH1PR12MB9694

On 2025-08-15 03:40, Juergen Gross wrote:
> The kernel is not supported to run as a Xen guest on Xen versions
> older than 4.0.
> 
> Remove xen_strict_xenbus_quirk() which is testing the Xen version to be
> at least 4.0.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>


From xen-devel-bounces@lists.xenproject.org Sat Aug 16 11:20:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Aug 2025 11:20:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1084442.1443585 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unExX-0005tb-UK; Sat, 16 Aug 2025 11:20:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1084442.1443585; Sat, 16 Aug 2025 11: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 1unExX-0005tQ-PH; Sat, 16 Aug 2025 11:20:27 +0000
Received: by outflank-mailman (input) for mailman id 1084442;
 Sat, 16 Aug 2025 11:20:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UO4R=24=cloud.com=bernhard.kaindl@srs-se1.protection.inumbo.net>)
 id 1unExW-0005tK-7w
 for xen-devel@lists.xenproject.org; Sat, 16 Aug 2025 11:20:26 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f9b560af-7a92-11f0-b898-0df219b8e170;
 Sat, 16 Aug 2025 13:20:12 +0200 (CEST)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-45a1b0becf5so12543965e9.2
 for <xen-devel@lists.xenproject.org>; Sat, 16 Aug 2025 04:20:12 -0700 (PDT)
Received: from MinisforumBD795m.citrite.net
 ([2a02:1748:f7df:8cb1:3992:b1e9:da8a:3f30])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45a27ec6b71sm13852325e9.10.2025.08.16.04.20.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sat, 16 Aug 2025 04:20:10 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f9b560af-7a92-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1755343211; x=1755948011; 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=q8NrHUv/BZP21PfU22f6r7e6G7TP0L/hOZLojm9nBfI=;
        b=PM1YrptOkJhYTZb7+t4XARnci1vOwSfKVpHcKrm28FhUw8Aly9pd9zRHoIbrk25PYE
         7uTIS23Fzcrk3I+2su7qEPrPPdHMfDsGTNruG+2pVs1BrPdT2FmuEo1CliSbYRPSHUHA
         LB0kNZsJAn8D06Z9hz/VZqQOyN41cQxLNWwMs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755343211; x=1755948011;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=q8NrHUv/BZP21PfU22f6r7e6G7TP0L/hOZLojm9nBfI=;
        b=QCFYE2IuM3wYa3rZdFp33xeyhwUaiKp0v0SG2iRv7wlpPrNjfxSbGqXWyckwgHZMv5
         CPZt6IYW5X1Sh5/LRbxl8ML2s8RZnu11dp5QEHXkxUPXXtlXRwphhyCZVjZi9dD+7+9X
         5JA+aDuBArL2S3EmGBz3WZELTuufmyBvot68cMSSRqEB6D9CMR/+PWguo3qdlIawGppw
         MLWIQj07RlLBR9D3SPDJk06+AjAqwz66F/hqzMWd5fAEX6/MBeiRBMxaOnjADAHcyRf4
         hz32yvtOcrFMzr2TYAVF4ViWtPaC+uZuXVVfAk40oqh+xc7boxWNk09Vmy+zR3PKFl+x
         cvQw==
X-Gm-Message-State: AOJu0YzTIau6+oawaxZjEmlnlajpH+V1ZgoTS24G7JY0t9bXZKpf4M77
	JWZF64DtAZJ2sK9gbtHAaW9FwhLKxNgcQNDujL62KoARxtFqpOS8nIEHKueyQMTveIzRruhsz4x
	e/GiCVxs=
X-Gm-Gg: ASbGncuSrsL+13MN+O3Ik8Q6CKkZMMSJePH6azXSSDYaYebdf4adBLVQN7zkokPQ1lZ
	maTcqNds6iENSpDHx0MBkxpXAt8CAGuUFQr3p6kKkLXZohHww1Bp+A88/ppMcjNQZWLz2HbtYc/
	PD43M/WgjsnftcOZTyDYgbYkY8P2xfRtssiVFK7qcrIkgeT3fB8zH+8OPaEwFVgL4I8vQcVGYRP
	bYnPkC3q+cq3mqxqXRfq2M1hlZoy4SZoaHApnddr2ieAsMQji1hCQG1hDWLSj/1KUhE9FzAYs+m
	xIGomAnTbuvuwAhGBo5Ogg5TnePkXJBHh1Du5/0moPlRftmUhiSNV9Yz+1lEivSysoyZbSZqB5m
	TYbeagQKWls6M9epRC8JsrlZu+JeQp6wLdowkkt4Up/LSmoV4X2v2jbs=
X-Google-Smtp-Source: AGHT+IFX564gLQPEOUgvLYI74WyqS4tKzgJfE9H32sZKtKBWH3G9XY/WuERP5uJM9AejRRboqoqZ2A==
X-Received: by 2002:a05:600c:3149:b0:456:1d61:b0f2 with SMTP id 5b1f17b1804b1-45a218676b5mr51582025e9.30.1755343211384;
        Sat, 16 Aug 2025 04:20:11 -0700 (PDT)
From: Bernhard Kaindl <bernhard.kaindl@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@cloud.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Tamas K Lengyel <tamas@tklengyel.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Juergen Gross <jgross@suse.com>,
	Christian Lindig <christian.lindig@citrix.com>,
	David Scott <dave@recoil.org>,
	Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Subject: [PATCH v2 0/7] xen/page_alloc: Add NUMA-node specific memory claims
Date: Sat, 16 Aug 2025 13:19:26 +0200
Message-ID: <cover.1755341947.git.bernhard.kaindl@cloud.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Xen supports claiming an amount of memory ahead of allocating it to
ensure that the memory for the domain is available for allocation.

On NUMA hosts, the same assurance is needed on a per-NUMA-node basis
to ensure optimal placement of domain memory on the correct NUMA node:

Add per-NUMA-node claims and add a new Hypercall to claim memory for
a domain using XEN_DOMCTL_claim_memory and xc_domain_claim_memory().

As we will implement multi-node claims as well, we updated the design
to be flexible for multi-node claims, so that a 2nd series can build
upon it without changing the hypercall API.

Bernhard Kaindl (6):
  xen/page_alloc: Simplify domain_adjust_tot_pages for future changes
  xen: New API to claim memory for a domain using XEN_DOMCTL_claim_memory

Alejandro Vallejo (1):
  xen/page_alloc: Remove `claim` from domain_set_outstanding_pages()

Alejandro Vallejo and Bernhard Kaindl (5):
  xen/page_alloc: Add static per-NUMA-node counts of free pages
  xen: Add node argument to
    domain_{adjust_tot_pages,set_outstanding_pages}()
  xen/page_alloc.c: Create per-node outstanding claims
  xen/page_alloc: Check per-node claims in alloc_heap_pages()

 tools/flask/policy/modules/dom0.te  |   1 +
 tools/flask/policy/modules/xen.if   |   1 +
 tools/include/xenctrl.h             |   4 +
 tools/libs/ctrl/xc_domain.c         |  42 ++++++++
 tools/ocaml/libs/xc/xenctrl.ml      |   9 ++
 tools/ocaml/libs/xc/xenctrl.mli     |   9 ++
 tools/ocaml/libs/xc/xenctrl_stubs.c |  21 ++++
 xen/arch/x86/mm.c                   |   3 +-
 xen/arch/x86/mm/mem_sharing.c       |   4 +-
 xen/common/domain.c                 |  32 +++++-
 xen/common/domctl.c                 |   8 ++
 xen/common/grant_table.c            |   4 +-
 xen/common/memory.c                 |   6 +-
 xen/common/page_alloc.c             | 154 ++++++++++++++++++++++------
 xen/include/public/domctl.h         |  17 +++
 xen/include/xen/domain.h            |   2 +
 xen/include/xen/mm.h                |   6 +-
 xen/include/xen/sched.h             |   1 +
 xen/xsm/flask/hooks.c               |   3 +
 xen/xsm/flask/policy/access_vectors |   2 +
 20 files changed, 285 insertions(+), 44 deletions(-)

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sat Aug 16 11:20:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Aug 2025 11:20:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1084446.1443594 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unExx-0006KD-8Z; Sat, 16 Aug 2025 11:20:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1084446.1443594; Sat, 16 Aug 2025 11:20:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unExx-0006K6-5p; Sat, 16 Aug 2025 11:20:53 +0000
Received: by outflank-mailman (input) for mailman id 1084446;
 Sat, 16 Aug 2025 11:20:52 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UO4R=24=cloud.com=bernhard.kaindl@srs-se1.protection.inumbo.net>)
 id 1unExw-0006Jf-6x
 for xen-devel@lists.xenproject.org; Sat, 16 Aug 2025 11:20:52 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1113acd7-7a93-11f0-a328-13f23c93f187;
 Sat, 16 Aug 2025 13:20:51 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-45a1abf5466so14764555e9.0
 for <xen-devel@lists.xenproject.org>; Sat, 16 Aug 2025 04:20:51 -0700 (PDT)
Received: from MinisforumBD795m.citrite.net
 ([2a02:1748:f7df:8cb1:3992:b1e9:da8a:3f30])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45a27ec6b71sm13852325e9.10.2025.08.16.04.20.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sat, 16 Aug 2025 04:20:50 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1113acd7-7a93-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1755343251; x=1755948051; 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=5WfLnf5/kvCLxvLOEfumWxUHPhaPlVs8I4oO2kdVd+M=;
        b=LLQThDwUqjnplM/TESg62YCQZHjTwCzdqLtdNiKRmPVtDRIXhpWlOPEmtlqyTVpB/L
         CrNy6dZJcpjTD3nc8A+2efqgeoFyZ6psZglYAaCDZbo3dgQO0z4eOfJlJ/S18+eD/bgT
         VqhavyxEgG9Q9j/+UjPz0zWTMbFdfumse41Dg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755343251; x=1755948051;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=5WfLnf5/kvCLxvLOEfumWxUHPhaPlVs8I4oO2kdVd+M=;
        b=M/P0ptWKFNRKcVJjUPzDEKSX7xsnIvEH+Va4IBMa/aRoFK0qsMzESi2+le6wa3HKQ/
         rxKv4C1S7FMj2+GX3uySYrDRbwq9Mb3CBY52Ytz1nXO885dD5l8P9H7VusQ/BUP3/IH8
         irrqYIj684vO70mK/u424YEo8c5/YP+1MOT6mr5Als9r0Eg16mwpgCtajzmQ3i0NVoZP
         SAJrcMiXntlUBh/YpA7nbyN8WG3V/+0PB+BiWlp+f13en6eJrTX+nDMNjg0BO9Vye5Cg
         c3NUPh+p6XTN4iBo/q6NcquQnDwUYaMFUePc5cve5Vox7EgucmuGPXw+ea3zYr/UF4bg
         LqNA==
X-Gm-Message-State: AOJu0YxvqMCyTBEqbDHpNwZRHenTo/wulEUpvYioGcW4ULP6UlTqSJA5
	zgBnc3rQoEPsaa0UqARHyT5OvSikaAczYQRMxIkN2YL5bDc4BnAp6cEgcaNoHuzYhMenL9ebmHl
	JeFhMf+c=
X-Gm-Gg: ASbGncs429WUsPzqvlpMLTpif8xOKbtXkgMDnwr/TiMvpUpbhsMaN2eIoP/kNfOJSz1
	Uzjyb7NEWFCvsKSjGP+QSPeh6xTUppomSaQLt5qgPQ3/DN5TN++TOrqcFgnBS72W9d6fbyH6o1d
	WN7NxgTH1idijEpmjWIaHR7CFRrSxQqEam4nz7Dfqoj9QUPfTCPVZNNUIvPX7WODM38u3O17g77
	zkjl6ClW2ZJNqBlpQGMdmuQtRa9fy+FubzIJYyaqk60EbkrgaErarvRIZbi7kpTILI8fc7pwTCo
	9pOvDhSU4DokahAS54zYANup7aFkwz2fGaeoUWK3xCGesoHvvSexMQcJrPHHQC3grOfJSz3FwlH
	KO76CkzeBhBhtsvokVN/zfqAdP2gWN5XE6q96lh8tjU/LyNlW+Kx6XicHFZ9NE99mpg==
X-Google-Smtp-Source: AGHT+IEzPs9FkQ63BOLIzEufxuBLYDjBbOgrJbqFTH4gdP1GhoFRqjout6kGca2aCgD/lZWY9mSK7Q==
X-Received: by 2002:a05:600c:8b05:b0:459:eeee:2759 with SMTP id 5b1f17b1804b1-45a1b6c7e20mr80482885e9.14.1755343250703;
        Sat, 16 Aug 2025 04:20:50 -0700 (PDT)
From: Bernhard Kaindl <bernhard.kaindl@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@cloud.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Subject: [PATCH v2 1/7] xen/page_alloc: Simplify domain_adjust_tot_pages for future changes
Date: Sat, 16 Aug 2025 13:19:27 +0200
Message-ID: <5f417fea5ca8e4da0d4b9679103c3eff4bc92900.1755341947.git.bernhard.kaindl@cloud.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1755341947.git.bernhard.kaindl@cloud.com>
References: <cover.1755341947.git.bernhard.kaindl@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

domain_adjust_tot_pages() is used to update the domain's total pages
after allocating and freeing memory.

Simplify the design for updating it for single and even more so
for multi-node claims regarding the case where we could have
allocated more memory than we had claims left.

Replace it with min() to avoid reducing the outstadings claims
by more than we had left to claim:

When domain memory is freed, we skip changing the claim. Thus, this
only handles reducing the claims after allocating. So, min() is fine.

Signed-off-by: Bernhard Kaindl <bernhard.kaindl@cloud.com>
Cc: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
 xen/common/page_alloc.c | 27 ++++++++++++++++-----------
 1 file changed, 16 insertions(+), 11 deletions(-)

diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index ec9dec365e..e1ac22b9ed 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -510,8 +510,14 @@ static unsigned long avail_heap_pages(
     return free_pages;
 }
 
+/*
+ * Update the total number of pages and outstanding claims of a domain.
+ * - When pages were freed, we do not increase outstanding claims.
+ */
 unsigned long domain_adjust_tot_pages(struct domain *d, long pages)
 {
+    unsigned long adjustment;
+
     ASSERT(rspin_is_locked(&d->page_alloc_lock));
     d->tot_pages += pages;
 
@@ -519,23 +525,22 @@ unsigned long domain_adjust_tot_pages(struct domain *d, long pages)
      * can test d->outstanding_pages race-free because it can only change
      * if d->page_alloc_lock and heap_lock are both held, see also
      * domain_set_outstanding_pages below
+     *
+     * If the domain has no outstanding claims (or we freed pages instead),
+     * we don't update outstanding claims and skip the claims adjustment.
      */
     if ( !d->outstanding_pages || pages <= 0 )
         goto out;
 
     spin_lock(&heap_lock);
     BUG_ON(outstanding_claims < d->outstanding_pages);
-    if ( d->outstanding_pages < pages )
-    {
-        /* `pages` exceeds the domain's outstanding count. Zero it out. */
-        outstanding_claims -= d->outstanding_pages;
-        d->outstanding_pages = 0;
-    }
-    else
-    {
-        outstanding_claims -= pages;
-        d->outstanding_pages -= pages;
-    }
+    /*
+     * Reduce claims by outstanding claims or pages (whichever is smaller):
+     * If allocated > outstanding, reduce the claims only by outstanding pages.
+     */
+    adjustment = min(d->outstanding_pages, (unsigned int)pages);
+    d->outstanding_pages -= adjustment;
+    outstanding_claims -= adjustment;
     spin_unlock(&heap_lock);
 
 out:
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sat Aug 16 11:21:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Aug 2025 11:21:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1084461.1443606 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unEyY-0006uz-Jc; Sat, 16 Aug 2025 11:21:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1084461.1443606; Sat, 16 Aug 2025 11:21: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 1unEyY-0006us-Ej; Sat, 16 Aug 2025 11:21:30 +0000
Received: by outflank-mailman (input) for mailman id 1084461;
 Sat, 16 Aug 2025 11:21:29 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UO4R=24=cloud.com=bernhard.kaindl@srs-se1.protection.inumbo.net>)
 id 1unEyX-0006Jf-2O
 for xen-devel@lists.xenproject.org; Sat, 16 Aug 2025 11:21:29 +0000
Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com
 [2a00:1450:4864:20::32d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 27346c8e-7a93-11f0-a328-13f23c93f187;
 Sat, 16 Aug 2025 13:21:28 +0200 (CEST)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-45a1b004a31so17014015e9.0
 for <xen-devel@lists.xenproject.org>; Sat, 16 Aug 2025 04:21:28 -0700 (PDT)
Received: from MinisforumBD795m.citrite.net
 ([2a02:1748:f7df:8cb1:3992:b1e9:da8a:3f30])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45a27ec6b71sm13852325e9.10.2025.08.16.04.21.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sat, 16 Aug 2025 04:21: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>
X-Inumbo-ID: 27346c8e-7a93-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1755343288; x=1755948088; 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=NqLgWRTfSlSShI6W9CQEOmln3SxcjiGyydtrE7lJ0Xc=;
        b=iuSi+WBNoGCyrzKsXH7w+Dj28YWN+kRyNfTt1uUI+LfCzbNIoCpZjlrPnEn+eozYB7
         cf2uX8lOVxvLeriHSgYY0gti2N6K/ghCf0tPm6ktIerHx6K5XCu1AeDqG45bWZto5l/t
         3xoNlybI+UKeaiGJfGbIqZy+SaLlBrM/qtF5I=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755343288; x=1755948088;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=NqLgWRTfSlSShI6W9CQEOmln3SxcjiGyydtrE7lJ0Xc=;
        b=jCxiPEAO3L/ZSuwUrTF+ES/IBd1MaFZr25r5urWWzoJqjHyCbIlYXsUwpQvjBUeM0m
         KX4U6TNFSH/8zgsiNX3g+5HDvDb4Vsy9TjB830YpoDKDTuj4VN5y67WmwvCl2u7hIW7c
         IWERYrSGxlgSVPRP/4RmHP2vEXbLZ+HW4lKKL62LDJWHWSp2UesAgziCfFu4EqQjfO+7
         /DKSYgm7N75x4DL6pqNgtGlQFPtgw1ki8wvzagB9ZHjdAXQIX7KXUuamikDzHO0c75Ht
         6eANI2LUUhaNJnPrYv0Px36svWqnNUHC64u4PMuD8uVz0BJNesoNzVmnfs3wr/BSfE47
         DCMQ==
X-Gm-Message-State: AOJu0YwnZwvGdzaa0ObZE/cdkIIoiAQB6IVm7l9ltjthzZpZPHroJqWu
	PGHpsYIRcg5GOxA8+mldL9FGqIoNTIj1Fwhvu0CyJ8fRHuE1jvMe9CWsV9UMbWmHwvO3Rao+zji
	bc4gCPXU=
X-Gm-Gg: ASbGnctxcXXUV1dBJs0TZxr4iKgDdqJOIvXOpn8L2Phkfbv2XUSgBQ7BDcENhIG2KtH
	+3U04co1vgVavHkalf54/eNs7QZxVAOFk0UYMEQdjnXhMe2w0jryBVfYy3dEc9zhEjBRHtdYxVK
	L+ZWJspMasMTydqTa9J+K8mR3Rkx1anolp9sUCkAgeZh4vFbTrXKBIUBGTBYcEvsv0LmOZ+THyu
	pXuZ6U0NxJdYq/GB/AqsiCgJHsvufbj92/R27rdIUvRVIq7fjrF+D24j++IA6hbXHb5416WsB4W
	2MYGGNvRwtOLedvSnA3s/PDOIZW+RCELAPn6jiBUBiWu1+nE3gWSVYYKq6X0fiGniJP91E540Gx
	YITs8U3ZWbe4tXuL9NjvHxeFpwWlT3owaTcT3gXsjYEveX3u29kaugE0=
X-Google-Smtp-Source: AGHT+IEvBr5RnjHc3muBzso6mPDrnMFo7IOsVkET3qV1DzWggzJ+Lw/himDguhJV2TPdNORgbLRSIQ==
X-Received: by 2002:a05:600c:4ed3:b0:459:dc92:b95f with SMTP id 5b1f17b1804b1-45a23323e44mr38796815e9.5.1755343287774;
        Sat, 16 Aug 2025 04:21:27 -0700 (PDT)
From: Bernhard Kaindl <bernhard.kaindl@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@cloud.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Subject: [PATCH v2 2/7] xen/page_alloc: Remove `claim` from domain_set_outstanding_pages()
Date: Sat, 16 Aug 2025 13:19:28 +0200
Message-ID: <73dc08d9ec628823309acc40a2603e9138bdd4b1.1755341947.git.bernhard.kaindl@cloud.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1755341947.git.bernhard.kaindl@cloud.com>
References: <cover.1755341947.git.bernhard.kaindl@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

With a single global count for the claims it is easy to substract
domain_tot_pages() from the claim so the number given in the hypercall
is the real reservation of the domain. This is the current behaviour.

However, a later patch introduces node-specific claims and those interact
very poorly with such a scheme. Since accounting domain_tot_pages() in
one case but not the other seems strictly worse than not accounting them
at all (which is at least consistent), this patch stops substracting
tot_pages from the claim and instead checks that claimed memory +
allocated memory don't exceed max_mem.

Arguably it's also clearer for the caller to align the amount of claimed
memory with that of the requested claim. xl/libxenguest code never updated
an existing claim: It stakes a claim, allocates all domain memory, cancels
a possible leftover claim, finishes building the domain and unpauses it.

Signed-off-by: Bernhard Kaindl <bernhard.kaindl@cloud.com>
Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
 xen/common/page_alloc.c | 19 ++++++-------------
 1 file changed, 6 insertions(+), 13 deletions(-)

diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index e1ac22b9ed..7e90b9cc1e 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -550,7 +550,7 @@ out:
 int domain_set_outstanding_pages(struct domain *d, unsigned long pages)
 {
     int ret = -ENOMEM;
-    unsigned long claim, avail_pages;
+    unsigned long avail_pages;
 
     /*
      * take the domain's page_alloc_lock, else all d->tot_page adjustments
@@ -576,28 +576,21 @@ int domain_set_outstanding_pages(struct domain *d, unsigned long pages)
         goto out;
     }
 
-    /* disallow a claim not exceeding domain_tot_pages() or above max_pages */
-    if ( (pages <= domain_tot_pages(d)) || (pages > d->max_pages) )
+    /* Don't claim past max_pages */
+    if ( (domain_tot_pages(d) + pages) > d->max_pages )
     {
         ret = -EINVAL;
         goto out;
     }
 
     /* how much memory is available? */
-    avail_pages = total_avail_pages;
+    avail_pages = total_avail_pages - outstanding_claims;
 
-    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 )
+    if ( pages > avail_pages )
         goto out;
 
     /* yay, claim fits in available memory, stake the claim, success! */
-    d->outstanding_pages = claim;
+    d->outstanding_pages = pages;
     outstanding_claims += d->outstanding_pages;
     ret = 0;
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sat Aug 16 11:22:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Aug 2025 11:22:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1084467.1443615 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unEzh-0007Sc-S3; Sat, 16 Aug 2025 11:22:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1084467.1443615; Sat, 16 Aug 2025 11:22: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 1unEzh-0007SV-OK; Sat, 16 Aug 2025 11:22:41 +0000
Received: by outflank-mailman (input) for mailman id 1084467;
 Sat, 16 Aug 2025 11:22:40 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UO4R=24=cloud.com=bernhard.kaindl@srs-se1.protection.inumbo.net>)
 id 1unEzg-0007SI-8v
 for xen-devel@lists.xenproject.org; Sat, 16 Aug 2025 11:22:40 +0000
Received: from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com
 [2a00:1450:4864:20::42c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 51644001-7a93-11f0-a328-13f23c93f187;
 Sat, 16 Aug 2025 13:22:39 +0200 (CEST)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-3b9d41bea3cso2756514f8f.0
 for <xen-devel@lists.xenproject.org>; Sat, 16 Aug 2025 04:22:39 -0700 (PDT)
Received: from MinisforumBD795m.citrite.net
 ([2a02:1748:f7df:8cb1:3992:b1e9:da8a:3f30])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45a27ec6b71sm13852325e9.10.2025.08.16.04.22.37
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sat, 16 Aug 2025 04:22: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>
X-Inumbo-ID: 51644001-7a93-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1755343359; x=1755948159; 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=M8oXwoujm1GIgXMxJFvaFemEOtGYUi/CM14piShTTxU=;
        b=SVUQFVvhpdlwrQXYe4za5lQgmImZyaJz+8K7c5K2VjxpFNyW2nMGhz1oZg9ijWnflI
         V5XE2wDrmfCfxh5yox4X+kDF6872ugIOZZej6EVXDdlakwLd3P/G3kbuiMoScO4Lq/YL
         rIkjbHAZyrbu5M5lLrmWEwVRdZkYcMYFdimo0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755343359; x=1755948159;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=M8oXwoujm1GIgXMxJFvaFemEOtGYUi/CM14piShTTxU=;
        b=oWs23u6a04WOiFXCFL9U4d+iwxoYsQ30oqVEzkvq3Y9RyBvGBlXz1To67bqD6Z9LPI
         D9i7gQwjmYxubzBR8+mKrtfkUt6q+Q536JjZcbjJ982JyWKbvks+Gu0qb76QaL9J/5ZN
         v/hWAGlrQ6DFmftTA0Itrw4UlBO83HsZNHCGYZci5X1qsPYqKkoZZH/tcseMDYoSGu4e
         az+DMzxNeMTZdMLeM9wq4VgSlYKcQfxBcEs4anBdtwFM+VGfvnOkIKr+6dlDGC0O9euS
         Q01YtnGM5neGnnzARJnyDkOFE2GKkpApTxazUYY0BxC/Jl6+Xp/H7xBAVlmENZDAYIdm
         s7CQ==
X-Gm-Message-State: AOJu0YzW3PMzgrOjkHOa85oytOyj9JzaAPUKoFaCgbam6onV/P+9QMVP
	tvzP752CU/piTwDlWBlehQb1qIR2hydyYMdMdqmIJAz8evUzmtQpoNj00vfdd2tP7yk+Fo1AasI
	RBtJl0ts=
X-Gm-Gg: ASbGncv0J2HFyr6vQ/z5jYY5VXpP2V24NNV1/A87/cMPO5K18RkMH8gMzyTPW0AExE3
	DJK9NpGtHYDB+kkM148bqmMrM/Jcc6B92LumFuaruXrxYucqUs3wFjdvb0puma6XNhp8XthG684
	Q/yrGxREGhHD5fwBuCm/JNRVM2FDJJs3Ai1nYfLL0ky+QDaM1WUgMD17k68uLAz8YmW5tUtSvz6
	B62kYqYWoYdHuzCViWMns33RgXmz44TNqysOg8ioqL1oNheyVrxcSZAlQSBSTIktn+DLHcc53tL
	4KVymju9hDIu8rFJVOphkcD1k/HnN690up6bStNjScaqv9BRa7sCq/e2EMICoZtGz2Je5zX/58h
	1EGKtXXlcAAEzIcmYAUoHLYetumniR2yoxVguDd7rPryVEJE2g3BGqGo=
X-Google-Smtp-Source: AGHT+IFgS9YcmZerlWfp+2PGSbboes1eTWmA6Ks71Yh8olqHY0310RWySPPUycVu5rm2nESIrRRkyQ==
X-Received: by 2002:a05:6000:381:b0:3a4:f72a:b18a with SMTP id ffacd0b85a97d-3bb676c9d2fmr3802460f8f.26.1755343358475;
        Sat, 16 Aug 2025 04:22:38 -0700 (PDT)
From: Bernhard Kaindl <bernhard.kaindl@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@cloud.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Tamas K Lengyel <tamas@tklengyel.com>,
	Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Subject: [PATCH v2 4/7] xen/page_alloc: Add node argument to domain_{adjust_tot_pages,set_outstanding_pages}()
Date: Sat, 16 Aug 2025 13:19:30 +0200
Message-ID: <62a9612c4f9d507184c50f720b5fe22f4921e85e.1755341947.git.bernhard.kaindl@cloud.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1755341947.git.bernhard.kaindl@cloud.com>
References: <cover.1755341947.git.bernhard.kaindl@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

domain_adjust_tot_pages() adjusts the total pages of a domain
after allocating or freeing memory. When allocating, it also
reduces the outstanding claims of a domain as pages are allocated.

When adding the node argument, we pass the node from which the pages
were allocated. When pages are freed, we simply pass NUMA_NO_NODE as
when freeing, the outstanding claims are not updated anyways.

domain_set_outstanding_pages() sets the amount of outstanding claims
of a domain. We pass the node on which to to stake an claim,
or NUMA_NO_NODE for host-wide claims.

No functional change, as neither function uses the arguments
for anything yet. It's a prerequisite to simplify for the next
patch that introduces per-node claim counts.

Changed since v1:
- Fix for the correct indentation of line with '-dec_count));'

Signed-off-by: Bernhard Kaindl <bernhard.kaindl@cloud.com>
Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
 xen/arch/x86/mm.c             |  3 ++-
 xen/arch/x86/mm/mem_sharing.c |  4 ++--
 xen/common/domain.c           |  2 +-
 xen/common/grant_table.c      |  4 ++--
 xen/common/memory.c           |  6 ++++--
 xen/common/page_alloc.c       | 17 ++++++++++++-----
 xen/include/xen/mm.h          |  6 ++++--
 7 files changed, 27 insertions(+), 15 deletions(-)

diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index e7fd56c7ce..effc67c6ba 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -4444,7 +4444,8 @@ int steal_page(
     page_list_del(page, &d->page_list);
 
     /* Unlink from original owner. */
-    if ( !(memflags & MEMF_no_refcount) && !domain_adjust_tot_pages(d, -1) )
+    if ( !(memflags & MEMF_no_refcount) &&
+         !domain_adjust_tot_pages(d, NUMA_NO_NODE, -1) )
         drop_dom_ref = true;
 
     nrspin_unlock(&d->page_alloc_lock);
diff --git a/xen/arch/x86/mm/mem_sharing.c b/xen/arch/x86/mm/mem_sharing.c
index da28266ef0..2551c0d86e 100644
--- a/xen/arch/x86/mm/mem_sharing.c
+++ b/xen/arch/x86/mm/mem_sharing.c
@@ -720,7 +720,7 @@ static int page_make_sharable(struct domain *d,
     if ( !validate_only )
     {
         page_set_owner(page, dom_cow);
-        drop_dom_ref = !domain_adjust_tot_pages(d, -1);
+        drop_dom_ref = !domain_adjust_tot_pages(d, NUMA_NO_NODE, -1);
         page_list_del(page, &d->page_list);
     }
 
@@ -766,7 +766,7 @@ static int page_make_private(struct domain *d, struct page_info *page)
     ASSERT(page_get_owner(page) == dom_cow);
     page_set_owner(page, d);
 
-    if ( domain_adjust_tot_pages(d, 1) == 1 )
+    if ( domain_adjust_tot_pages(d, page_to_nid(page), 1) == 1 )
         get_knownalive_domain(d);
     page_list_add_tail(page, &d->page_list);
     nrspin_unlock(&d->page_alloc_lock);
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 5241a1629e..1beadb05e1 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -1239,7 +1239,7 @@ int domain_kill(struct domain *d)
         rspin_barrier(&d->domain_lock);
         argo_destroy(d);
         vnuma_destroy(d->vnuma);
-        domain_set_outstanding_pages(d, 0);
+        domain_set_outstanding_pages(d, NUMA_NO_NODE, 0);
         /* fallthrough */
     case DOMDYING_dying:
         rc = domain_teardown(d);
diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
index cf131c43a1..8fea75dbb2 100644
--- a/xen/common/grant_table.c
+++ b/xen/common/grant_table.c
@@ -2405,7 +2405,7 @@ gnttab_transfer(
         }
 
         /* Okay, add the page to 'e'. */
-        if ( unlikely(domain_adjust_tot_pages(e, 1) == 1) )
+        if ( unlikely(domain_adjust_tot_pages(e, page_to_nid(page), 1) == 1) )
             get_knownalive_domain(e);
 
         /*
@@ -2431,7 +2431,7 @@ gnttab_transfer(
              * page in the page total
              */
             nrspin_lock(&e->page_alloc_lock);
-            drop_dom_ref = !domain_adjust_tot_pages(e, -1);
+            drop_dom_ref = !domain_adjust_tot_pages(e, NUMA_NO_NODE, -1);
             nrspin_unlock(&e->page_alloc_lock);
 
             if ( okay /* i.e. e->is_dying due to the surrounding if() */ )
diff --git a/xen/common/memory.c b/xen/common/memory.c
index 3688e6dd50..b8cf4bd23d 100644
--- a/xen/common/memory.c
+++ b/xen/common/memory.c
@@ -775,7 +775,8 @@ static long memory_exchange(XEN_GUEST_HANDLE_PARAM(xen_memory_exchange_t) arg)
 
                 nrspin_lock(&d->page_alloc_lock);
                 drop_dom_ref = (dec_count &&
-                                !domain_adjust_tot_pages(d, -dec_count));
+                                !domain_adjust_tot_pages(d, NUMA_NO_NODE,
+                                                         -dec_count));
                 nrspin_unlock(&d->page_alloc_lock);
 
                 if ( drop_dom_ref )
@@ -1682,7 +1683,8 @@ long do_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
         rc = xsm_claim_pages(XSM_PRIV, d);
 
         if ( !rc )
-            rc = domain_set_outstanding_pages(d, reservation.nr_extents);
+            rc = domain_set_outstanding_pages(d, NUMA_NO_NODE,
+                                              reservation.nr_extents);
 
         rcu_unlock_domain(d);
 
diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 43de9296fd..e8ba21dc46 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -517,7 +517,8 @@ static unsigned long avail_heap_pages(
  * Update the total number of pages and outstanding claims of a domain.
  * - When pages were freed, we do not increase outstanding claims.
  */
-unsigned long domain_adjust_tot_pages(struct domain *d, long pages)
+unsigned long domain_adjust_tot_pages(struct domain *d, nodeid_t node,
+                                      long pages)
 {
     unsigned long adjustment;
 
@@ -550,7 +551,8 @@ out:
     return d->tot_pages;
 }
 
-int domain_set_outstanding_pages(struct domain *d, unsigned long pages)
+int domain_set_outstanding_pages(struct domain *d, nodeid_t node,
+                                 unsigned long pages)
 {
     int ret = -ENOMEM;
     unsigned long avail_pages;
@@ -2620,6 +2622,8 @@ int assign_pages(
 
     if ( !(memflags & MEMF_no_refcount) )
     {
+        nodeid_t node = page_to_nid(&pg[0]);
+
         if ( unlikely(d->tot_pages + nr < nr) )
         {
             gprintk(XENLOG_INFO,
@@ -2631,7 +2635,9 @@ int assign_pages(
             goto out;
         }
 
-        if ( unlikely(domain_adjust_tot_pages(d, nr) == nr) )
+        ASSERT(node == page_to_nid(&pg[nr - 1]));
+
+        if ( unlikely(domain_adjust_tot_pages(d, node, nr) == nr) )
             get_knownalive_domain(d);
     }
 
@@ -2764,7 +2770,8 @@ void free_domheap_pages(struct page_info *pg, unsigned int order)
                 }
             }
 
-            drop_dom_ref = !domain_adjust_tot_pages(d, -(1 << order));
+            drop_dom_ref = !domain_adjust_tot_pages(d, NUMA_NO_NODE,
+                                                    -(1 << order));
 
             rspin_unlock(&d->page_alloc_lock);
 
@@ -2970,7 +2977,7 @@ void free_domstatic_page(struct page_info *page)
 
     arch_free_heap_page(d, page);
 
-    drop_dom_ref = !domain_adjust_tot_pages(d, -1);
+    drop_dom_ref = !domain_adjust_tot_pages(d, NUMA_NO_NODE, -1);
 
     unprepare_staticmem_pages(page, 1, scrub_debug);
 
diff --git a/xen/include/xen/mm.h b/xen/include/xen/mm.h
index 93c037d618..f977e73b1c 100644
--- a/xen/include/xen/mm.h
+++ b/xen/include/xen/mm.h
@@ -65,6 +65,7 @@
 #include <xen/compiler.h>
 #include <xen/mm-frame.h>
 #include <xen/mm-types.h>
+#include <xen/numa.h>
 #include <xen/types.h>
 #include <xen/list.h>
 #include <xen/spinlock.h>
@@ -130,8 +131,9 @@ mfn_t xen_map_to_mfn(unsigned long va);
 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);
+    nodeid_t node, long pages);
+int domain_set_outstanding_pages(struct domain *d, nodeid_t node,
+                                 unsigned long pages);
 void get_outstanding_claims(uint64_t *free_pages, uint64_t *outstanding_pages);
 
 /* Domain suballocator. These functions are *not* interrupt-safe.*/
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sat Aug 16 11:23:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Aug 2025 11:23:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1084480.1443625 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unF0d-0007zF-5Z; Sat, 16 Aug 2025 11:23:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1084480.1443625; Sat, 16 Aug 2025 11:23: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 1unF0d-0007z8-2Q; Sat, 16 Aug 2025 11:23:39 +0000
Received: by outflank-mailman (input) for mailman id 1084480;
 Sat, 16 Aug 2025 11:23:38 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UO4R=24=cloud.com=bernhard.kaindl@srs-se1.protection.inumbo.net>)
 id 1unF0c-0007SI-3o
 for xen-devel@lists.xenproject.org; Sat, 16 Aug 2025 11:23:38 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7423fa02-7a93-11f0-a328-13f23c93f187;
 Sat, 16 Aug 2025 13:23:37 +0200 (CEST)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-45a1b00f187so11183025e9.0
 for <xen-devel@lists.xenproject.org>; Sat, 16 Aug 2025 04:23:37 -0700 (PDT)
Received: from MinisforumBD795m.citrite.net
 ([2a02:1748:f7df:8cb1:3992:b1e9:da8a:3f30])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45a27ec6b71sm13852325e9.10.2025.08.16.04.23.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sat, 16 Aug 2025 04:23: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>
X-Inumbo-ID: 7423fa02-7a93-11f0-a328-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1755343417; x=1755948217; 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=I+05UXLfbMsAgarpS2s46Loi9+DfuxXq2X3Fj022QKo=;
        b=kDoUhMPGZWSzXRA7TmKOko1MdKJAEHbmqa+jGeU7BEP8GtxlFMpCr5t2fNbCPNW981
         OdzJG62MM6ks3UQtlWcIb73vBCjxujBFuYdzFu824MahvhoRaCyuil2XUkhbrOTqaHf/
         +j+MpkEwItqBCuEsqfkPiw3aUehdYbv7s2L/I=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755343417; x=1755948217;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=I+05UXLfbMsAgarpS2s46Loi9+DfuxXq2X3Fj022QKo=;
        b=RjZ1C5wzeqD2oM3C4lZ47JmSaxF2rvboRt7A4kgS+ULenob4Z/hKw+/s1HFoA5H0WF
         cv7ktnahzippxW7pXR8ovTUjjqY1yVzNkupHiGy4fGZGxaTAFA2u3aAmN3n5+x5ugG4F
         g+va2nf41qJouG4buUWONJaaWBdPGSQqfq6XUv2/X2moLrghyntSTpCGI2zsScVyFyFn
         mys4id2JQjQipPowkps4RG4UCgsj/BISHU2KixQyghvQubf+kYbf2N11HRwuUoFP9a0A
         MW9018Qp8UeF9Qfuh5VYjHctCvuTiRj0P9ReObIA5DTZoxodCKBJmXgfathsrnkbHW8n
         FAQA==
X-Gm-Message-State: AOJu0YzDursj2uGaSVDuFvqZi7y72fXw3tXvBDzMY3HPI5QOOjsuFAeY
	xb8H7DBeTS0BKnwL8dHxlYzn1luCA6YzUeQ4nRu+fJF1KobVGxWUepYYauBZ62nXAVkL7MgpQz9
	WlnLlD9I=
X-Gm-Gg: ASbGnctOeYRuq+mke9OOWMTsgME0zdQFkFTaPanBiibG845d6iX8DD1Vggvb1Nvt03C
	7wC1gXQ7lAyMibquSy/G/6uaRX02TxDuQF5HXE1w/FMcVce4BHq1hw3KW5YtIgLIYsKibtyrPtg
	eG+BhPtpKgiCtnk66kizLn4MAyKgHo/8x+Bhza+83v1+Ana667B6BTdo1vUGX8T2Cp92Cnq6vw6
	Npbz6a3BS+gaTww1gMYAdMhcG9tFEYWqdSZWs+A+7bczOhL5Rwe/vhy/Rt1J7wlENvOWkw2AjHX
	0iZBH+oqIOz7roL+UIfHJIfUBuhRE2rY/ziDLng6d/A0qYYn+EYOFZnx9uEtFDWmKQmU+9ByZTp
	HEy76vLYL7XVBA0VITVSufICWk6uj2jvm94gpUKQ5GJaYODmnp449exw=
X-Google-Smtp-Source: AGHT+IGqX6lX+0qjwd3ZJHWzwevLA3gtpXVk7B4Wh5fM2DAlWP2x0QefOv/95gtbzlo0eDDvBzZfBQ==
X-Received: by 2002:a05:600c:b90:b0:459:eeaf:d6c7 with SMTP id 5b1f17b1804b1-45a218578fbmr38391925e9.26.1755343416867;
        Sat, 16 Aug 2025 04:23:36 -0700 (PDT)
From: Bernhard Kaindl <bernhard.kaindl@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@cloud.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Marcus Granado <marcus.granado@cloud.com>,
	Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Subject: [PATCH v2 5/7] xen/page_alloc: Create per-node outstanding claims
Date: Sat, 16 Aug 2025 13:19:31 +0200
Message-ID: <646f3bdbbfef5ace7902ca18c532b5518612f36e.1755341947.git.bernhard.kaindl@cloud.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1755341947.git.bernhard.kaindl@cloud.com>
References: <cover.1755341947.git.bernhard.kaindl@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Extend domain_set_outstanding_claims() to allow staking claims on a
specific NUMA node instead of host-wide:

A claim on a specific NUMA node is the amount of d->outstanding_claims
where the new field d->claim_node field is not NUMA_NO_NODE.

We use the most straightforward implementation to minimise the amount
of changes in this commit and the rest of the series: In the next series
that converts the claims handling the multi-node claims, this will of
course be converted into another structure. It helps to keep this
commit focused on the central challenge of the new type of claim and
leaves extending claims to multi-node claims for the next series.

Also extend get_free_buddy() for when it circles round-robin over nodes:
Make it skip NUMA nodes that do not have enough unclaimed memory left.

---
Changes since v1:
- Join all conditions into a single if clause
- Improve the function description and comments
- Use const when passing struct domain when applicable
- Renamed pernode_oc[] to per_node_outstanding_claims[]
- Reject invalid node IDs in domain_set_outstanding_pages()
- Use nodeid_t instead of unsigned int for the claim_node field.
- Removed dependency on MEMF_EXACT_NODE (checked in get_free_buddy())
- Added awareness for honoring NUMA claims to get_free_buddy()

Signed-off-by: Bernhard Kaindl <bernhard.kaindl@cloud.com>
Signed-off-by: Marcus Granado <marcus.granado@cloud.com>
Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
 xen/common/page_alloc.c | 37 +++++++++++++++++++++++++++++++++++--
 xen/include/xen/sched.h |  1 +
 2 files changed, 36 insertions(+), 2 deletions(-)

diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index e8ba21dc46..63ecd74dcc 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -491,6 +491,7 @@ static unsigned long per_node_avail_pages[MAX_NUMNODES];
 
 static DEFINE_SPINLOCK(heap_lock);
 static long outstanding_claims; /* total outstanding claims by all domains */
+static unsigned long per_node_outstanding_claims[MAX_NUMNODES];
 
 static unsigned long avail_heap_pages(
     unsigned int zone_lo, unsigned int zone_hi, unsigned int node)
@@ -532,8 +533,12 @@ unsigned long domain_adjust_tot_pages(struct domain *d, nodeid_t node,
      *
      * If the domain has no outstanding claims (or we freed pages instead),
      * we don't update outstanding claims and skip the claims adjustment.
+     *
+     * Also don't update outstanding claims when the domain has node-specific
+     * claims, but the memory allocation was from a different NUMA node.
      */
-    if ( !d->outstanding_pages || pages <= 0 )
+    if ( !d->outstanding_pages || pages <= 0 ||
+         (d->claim_node != NUMA_NO_NODE && d->claim_node != node) )
         goto out;
 
     spin_lock(&heap_lock);
@@ -544,6 +549,8 @@ unsigned long domain_adjust_tot_pages(struct domain *d, nodeid_t node,
      */
     adjustment = min(d->outstanding_pages, (unsigned int)pages);
     d->outstanding_pages -= adjustment;
+    if ( d->claim_node != NUMA_NO_NODE ) /* adjust the static per-node claims */
+        per_node_outstanding_claims[d->claim_node] -= adjustment;
     outstanding_claims -= adjustment;
     spin_unlock(&heap_lock);
 
@@ -557,6 +564,9 @@ int domain_set_outstanding_pages(struct domain *d, nodeid_t node,
     int ret = -ENOMEM;
     unsigned long avail_pages;
 
+    if ( node != NUMA_NO_NODE && !node_online(node) )
+        return -EINVAL;
+
     /*
      * take the domain's page_alloc_lock, else all d->tot_page adjustments
      * must always take the global heap_lock rather than only in the much
@@ -569,6 +579,10 @@ int domain_set_outstanding_pages(struct domain *d, nodeid_t node,
     if ( pages == 0 )
     {
         outstanding_claims -= d->outstanding_pages;
+
+        if ( d->claim_node != NUMA_NO_NODE )
+            per_node_outstanding_claims[d->claim_node] -= d->outstanding_pages;
+
         d->outstanding_pages = 0;
         ret = 0;
         goto out;
@@ -591,12 +605,26 @@ int domain_set_outstanding_pages(struct domain *d, nodeid_t node,
     /* how much memory is available? */
     avail_pages = total_avail_pages - outstanding_claims;
 
+    /* This check can't be skipped for the NUMA case, or we may overclaim */
     if ( pages > avail_pages )
         goto out;
 
+    if ( node != NUMA_NO_NODE )
+    {
+        avail_pages = per_node_avail_pages[node] - per_node_outstanding_claims[node];
+
+        if ( pages > avail_pages )
+            goto out;
+    }
+
     /* yay, claim fits in available memory, stake the claim, success! */
     d->outstanding_pages = pages;
     outstanding_claims += d->outstanding_pages;
+    d->claim_node = node;
+
+    if ( node != NUMA_NO_NODE )
+        per_node_outstanding_claims[node] += pages;
+
     ret = 0;
 
 out:
@@ -934,7 +962,12 @@ static struct page_info *get_free_buddy(unsigned int zone_lo,
         zone = zone_hi;
         do {
             /* Check if target node can support the allocation. */
-            if ( !avail[node] || (avail[node][zone] < (1UL << order)) )
+            if ( !avail[node] || (avail[node][zone] < (1UL << order)) ||
+                 /* For host-wide allocations, skip nodes without enough
+                  * unclaimed memory. */
+                  (req_node == NUMA_NO_NODE && outstanding_claims &&
+                   ((per_node_avail_pages[node] -
+                     per_node_outstanding_claims[node]) < (1UL << order))) )
                 continue;
 
             /* Find smallest order which can satisfy the request. */
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index fd5c9f9333..9535ed7a6a 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -406,6 +406,7 @@ struct domain
     unsigned int     max_pages;         /* maximum value for domain_tot_pages() */
     unsigned int     extra_pages;       /* pages not included in domain_tot_pages() */
 
+    nodeid_t         claim_node;        /* NUMA_NO_NODE for host-wide claims */
 #ifdef CONFIG_MEM_SHARING
     atomic_t         shr_pages;         /* shared pages */
 #endif
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sat Aug 16 11:24:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Aug 2025 11:24:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1084487.1443635 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unF11-0008SD-Hc; Sat, 16 Aug 2025 11:24:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1084487.1443635; Sat, 16 Aug 2025 11:24: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 1unF11-0008S6-Ek; Sat, 16 Aug 2025 11:24:03 +0000
Received: by outflank-mailman (input) for mailman id 1084487;
 Sat, 16 Aug 2025 11:24:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UO4R=24=cloud.com=bernhard.kaindl@srs-se1.protection.inumbo.net>)
 id 1unF10-0008R6-K2
 for xen-devel@lists.xenproject.org; Sat, 16 Aug 2025 11:24:02 +0000
Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com
 [2a00:1450:4864:20::329])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 81d79ddb-7a93-11f0-b898-0df219b8e170;
 Sat, 16 Aug 2025 13:24:00 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-45a20c51c40so9827955e9.3
 for <xen-devel@lists.xenproject.org>; Sat, 16 Aug 2025 04:24:00 -0700 (PDT)
Received: from MinisforumBD795m.citrite.net
 ([2a02:1748:f7df:8cb1:3992:b1e9:da8a:3f30])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45a27ec6b71sm13852325e9.10.2025.08.16.04.23.58
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sat, 16 Aug 2025 04:23: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>
X-Inumbo-ID: 81d79ddb-7a93-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1755343440; x=1755948240; 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=j1iRU9m3XRpby6RHQR14UBdcIiWltVXdQcuwow+h8HQ=;
        b=KOIjoCAr0Sxnt+5/pP7qUZkTaiR80CdOm3salZhyK0CroBJdXUKihkiLnOoyzpnc7Y
         0jM+qFffx/bynmC2RuNYImpxB+JOCMWZ1PuMGAkHiGzriBazVX0JWqgJ5Ro42vb12MSX
         zw1syGXb1P9fC5tQpBMI3xTT+4Hvkuv4og2cc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755343440; x=1755948240;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=j1iRU9m3XRpby6RHQR14UBdcIiWltVXdQcuwow+h8HQ=;
        b=anU55+AWg35f0+5o5HzxrESLc+wmb15LQOSEs2Xn9DzV/m6RZaI7lylLDk1Y0abGCo
         Kr/OMhFZdHRy4kixcB1xVDu+nN8a/0spawYRnJ+fzDkSzhXV179P7gFLvSeHdAZt5KaB
         1WaPRLfRUhuaDn33ensiknvyD5qAztq8s7EXC+7ut+Ri3x9Oc5kE7q3L6UTt2rqwAC2t
         gmd1efzuVg61WZhrSkYJTYZRKyLHdN4nSygk9PqFhzPOQHUsCyfVtGaw7QYLbfc3qGuR
         RtWxGFMtLoGVJV6xpdPtIMSb04WTswNZTICWdAnXYKOr+6GNwMdqVhGUEu1i/t1nw+Pz
         wjcQ==
X-Gm-Message-State: AOJu0YzsmM9MIKnHgyc+eD6zlA6dFK+xzKL4gL5h92wtOoMqIZWZPQHw
	w8xWPZaO/JRGIzdrLcbqH0RMQC625FT3ESRHQD/RKv9v+UJU1N/EnE8+zJm5s9dWJXrMW7lObKu
	+YcoYFLg=
X-Gm-Gg: ASbGncsEqcVkFQvhWuBEBStLytdHhobuzb6ZO0I0a8jVj5jIeLyYitwyC1275msgMpl
	hMKLSDqLW3Rcxf7NaCruLteKKputKlVLBWI5ZxN2q4Qxu5N3MSW/z8EEhP/hwwGR5eEEI1SyBkU
	N3MDxLIVPHwXAMfmOewQxY7HIIT+vwJK5VIGaTlY19jECmxqBYzn54aGgQBgFXHxT118Vc09dzG
	C1ud4vHDSVOh14UxYs9MqjYkmA+l4/Qqp0yRZGXmtv1OpxLT8CTzZopWkQplpXzzccshmg7Piga
	0vwSVbpJxqUV/gGU65zsEWqy2aPgxv9jIMBg5qbg/U+7pC03mAG85oeepowMEVwYYyF50QrbLxB
	DEqU1ujhev9l/pWl/P3zGK3M+62yRxr9B0dZkDaJACoTnJXZgQf2yhOc=
X-Google-Smtp-Source: AGHT+IHuOtR+8eaxNX0/XVwzU9erg7D0dXe6omoAZOyWtG0EUecSpWYLLhu2OalCdVzZ7D5v8sX4gA==
X-Received: by 2002:a05:600c:4691:b0:456:1ac8:cace with SMTP id 5b1f17b1804b1-45a217fd7aemr50051845e9.12.1755343439803;
        Sat, 16 Aug 2025 04:23:59 -0700 (PDT)
From: Bernhard Kaindl <bernhard.kaindl@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@cloud.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Subject: [PATCH v2 6/7] xen/page_alloc: Check per-node claims in alloc_heap_pages()
Date: Sat, 16 Aug 2025 13:19:32 +0200
Message-ID: <3836533d5424baa470e69838bac89862e14d44e0.1755341947.git.bernhard.kaindl@cloud.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1755341947.git.bernhard.kaindl@cloud.com>
References: <cover.1755341947.git.bernhard.kaindl@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Extend the claim checks in alloc_heap_pages() to NUMA claims.

Signed-off-by: Bernhard Kaindl <bernhard.kaindl@cloud.com>
Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>

---
Changes since v1:
- No longer require the memflags & MEMF_exact_node for using claims

- If the NUMA node is not passed in memflags, get the NUMA node to
  conume claims from using the claim itself and confirm it using
  the domain's d->node_affinity, which is where get_free_buddy will
  allocate from. This also eases the conversion to multi-node claim
  usage as memflags in inherently single-node.
---
 xen/common/page_alloc.c | 46 ++++++++++++++++++++++++++++++++++++++---
 1 file changed, 43 insertions(+), 3 deletions(-)

diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 63ecd74dcc..12e1d6a049 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -1027,6 +1027,48 @@ static void init_free_page_fields(struct page_info *pg)
     page_set_owner(pg, NULL);
 }
 
+/*
+ * Check if a heap allocation is allowed (helper for alloc_heap_pages)
+ */
+static bool can_alloc(const struct domain *d, unsigned int memflags,
+                      unsigned long request)
+{
+    nodeid_t node = MEMF_get_node(memflags);
+
+    /*
+     * If memflags don't define a node to allocate from, get_free_buddy() will
+     * use d->node_affinity for the allocation: Allow the allocation to
+     * take advantage of it when the claimed node is exactly d->node_affinity:
+     */
+    if ( node == NUMA_NO_NODE && d && d->claim_node != NUMA_NO_NODE )
+    {
+        nodemask_t claim_node = nodemask_of_node(d->claim_node);
+
+        if (nodes_equal(d->node_affinity, claim_node))
+            node = d->claim_node;
+    }
+
+    if ( outstanding_claims + request <= total_avail_pages && /* host-wide, */
+         (node == NUMA_NO_NODE || /* if the alloc is node-specific, then also */
+          per_node_outstanding_claims[node] + request <= /* check per-node */
+          per_node_avail_pages[node]) )
+        return true;
+
+    /*
+     * The requested allocation can only be satisfied by outstanding claims.
+     * Claimed memory is considered unavailable unless the request
+     * is made by a domain with sufficient unclaimed pages.
+     *
+     * Only allow if the allocation matches the available claims of the domain.
+     * For host-wide allocs and claims, node == d->claim_node == NUMA_NO_NODE.
+     *
+     * Only refcounted allocs attributed to domains may have been claimed:
+     * Not refcounted allocs cannot consume claimed memory.
+     */
+    return d && d->claim_node == node && d->outstanding_pages >= request &&
+           !(memflags & MEMF_no_refcount);
+}
+
 /* Allocate 2^@order contiguous pages. */
 static struct page_info *alloc_heap_pages(
     unsigned int zone_lo, unsigned int zone_hi,
@@ -1057,9 +1099,7 @@ static struct page_info *alloc_heap_pages(
      * Claimed memory is considered unavailable unless the request
      * is made by a domain with sufficient unclaimed pages.
      */
-    if ( (outstanding_claims + request > total_avail_pages) &&
-          ((memflags & MEMF_no_refcount) ||
-           !d || d->outstanding_pages < request) )
+    if ( !can_alloc(d, memflags, request) )
     {
         spin_unlock(&heap_lock);
         return NULL;
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sat Aug 16 11:30:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Aug 2025 11:30:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1084500.1443644 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unF7f-0001om-7d; Sat, 16 Aug 2025 11:30:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1084500.1443644; Sat, 16 Aug 2025 11:30: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 1unF7f-0001of-4t; Sat, 16 Aug 2025 11:30:55 +0000
Received: by outflank-mailman (input) for mailman id 1084500;
 Sat, 16 Aug 2025 11:30:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UO4R=24=cloud.com=bernhard.kaindl@srs-se1.protection.inumbo.net>)
 id 1unF1b-0008R6-0x
 for xen-devel@lists.xenproject.org; Sat, 16 Aug 2025 11:24:39 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9792924d-7a93-11f0-b898-0df219b8e170;
 Sat, 16 Aug 2025 13:24:37 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-45a1b00a65fso12970895e9.0
 for <xen-devel@lists.xenproject.org>; Sat, 16 Aug 2025 04:24:37 -0700 (PDT)
Received: from MinisforumBD795m.citrite.net
 ([2a02:1748:f7df:8cb1:3992:b1e9:da8a:3f30])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45a27ec6b71sm13852325e9.10.2025.08.16.04.24.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sat, 16 Aug 2025 04:24: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>
X-Inumbo-ID: 9792924d-7a93-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1755343476; x=1755948276; 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=Wt3Ep5ObVZ9RSrrf4fRGSI8+1rgfl6o5cNaA3eQGhXk=;
        b=g1nekSbXX9b6SbxlLRKch3bi1y8sj2M60B6HKXQS5Cny3dgT1I4moic1OAzn4NXl+2
         RYS90EsPUfNoXVqvSGV1jyLCrlW7yCAm2DKgwdMhqtSuiR8xv9qEScMh5EJv3VfKJHb1
         P0tnrzcYNxJzA3vw7Q6DXmiR8OgFu87yKLC9E=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755343476; x=1755948276;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=Wt3Ep5ObVZ9RSrrf4fRGSI8+1rgfl6o5cNaA3eQGhXk=;
        b=WMug1XEMNNEs00zY1w7ioj7QogON+8C/USHNyTNhdEqBK019fqwQiFdHiWjXJbQaFI
         atAqXuIqh4lOg+Jh8foY3sak2zmNw0k/2BoC7Sz2eaiRdFbgs8p65MRW1yK3PleQSB4C
         09GHXLFnMXvkfrxmYfwEt0EnpVTbaxmNEaENXsAOulovR/9R1vX2A5fOMbFTE2MNViEz
         bDomJHHpTYun7CbVcVl1Nba4RJspb47wqcSN3/rTKBp0DQYsAtnKtI9IucCnJsqCFSmn
         EPFBILijADmia/i3XQM/8jYaBvaFu8InmfLGhsy3cuSgV4Gj0vAS9FOsXU0sCnTxhn2o
         iqFA==
X-Gm-Message-State: AOJu0Yx1svJPV1mprcbF9pOaAhiMWOR+2XLGE6TklK7STMsXxYLPVUGP
	/1x3cQDCPmuT8DdzRYywH9cC+InJPHmYa3QSMSLxWyqGZVhp30wz5jZug565gDCDHaIZDzYJ/uD
	v5vlyYKQ=
X-Gm-Gg: ASbGncu/glfkXjt7POIxwRMt4+f0YxDhHP2QnImxcJctQnh9LEAZVDKuiJzocKPawlm
	NGkW9OWe/jc39Ebou4Ctc9pwiQwodywXFIqLyEldBrMVj2aaRiYd+tq9R5q5Un+QCeG4ykBR2CV
	PTDW8dfkJUVrX/WmS4U05dDSTjJTdagqV3oSDuae8ortZLUmQ2S0pJrtUcWBzw2CulFfE7VHgNt
	ILUln1KytEa++cUvQSL+Oq5mkRP+yC7Nd2qwDu6wpPtMBYBKAGjnw+xxqHjPw9BI5NyH8ypeQeP
	dSW9Fgv4zORlWIdxAYtySYD31usZ+VNKoO6wiUMqQG2RhtPcfC4ulE/39WegfcYhQzMhif9u4TJ
	Yck3kKhoQHiwDFnZd3rwaD29/T130ClYGLBLXEsCJ6NlEvERGueBQ6qw=
X-Google-Smtp-Source: AGHT+IFgURo8r1ge/HnYI3T0kx/VEtXSw1AoZBylv9ZwyhZqA6n1wDRJZ6lnLl7S0mPy4UCT+3KL/w==
X-Received: by 2002:a05:600c:198d:b0:459:e094:92cb with SMTP id 5b1f17b1804b1-45a218095eemr45110205e9.12.1755343476320;
        Sat, 16 Aug 2025 04:24:36 -0700 (PDT)
From: Bernhard Kaindl <bernhard.kaindl@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@cloud.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Juergen Gross <jgross@suse.com>,
	Christian Lindig <christian.lindig@citrix.com>,
	David Scott <dave@recoil.org>,
	Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Subject: [PATCH v2 7/7] xen: New API to claim memory for a domain using XEN_DOMCTL_claim_memory
Date: Sat, 16 Aug 2025 13:19:33 +0200
Message-ID: <cc9119869fb87f02b287250d9bb33962a6d35961.1755341947.git.bernhard.kaindl@cloud.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1755341947.git.bernhard.kaindl@cloud.com>
References: <cover.1755341947.git.bernhard.kaindl@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add the new hypercall requested during the review of the v1 series
do not require changing the API for multi-node claims.

The hypercall receives a number of claims, intented to be one claim per
NUMA node, and limited to one claim for now. The changes to update the
NUMA claims management to handle updating the claims for multiple
NUMA nodes of a domain at once are deferred to the next series.

Signed-off-by: Bernhard Kaindl <bernhard.kaindl@cloud.com>
Cc: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
 tools/flask/policy/modules/dom0.te  |  1 +
 tools/flask/policy/modules/xen.if   |  1 +
 tools/include/xenctrl.h             |  4 +++
 tools/libs/ctrl/xc_domain.c         | 42 +++++++++++++++++++++++++++++
 tools/ocaml/libs/xc/xenctrl.ml      |  9 +++++++
 tools/ocaml/libs/xc/xenctrl.mli     |  9 +++++++
 tools/ocaml/libs/xc/xenctrl_stubs.c | 21 +++++++++++++++
 xen/common/domain.c                 | 30 +++++++++++++++++++++
 xen/common/domctl.c                 |  8 ++++++
 xen/include/public/domctl.h         | 17 ++++++++++++
 xen/include/xen/domain.h            |  2 ++
 xen/xsm/flask/hooks.c               |  3 +++
 xen/xsm/flask/policy/access_vectors |  2 ++
 13 files changed, 149 insertions(+)

diff --git a/tools/flask/policy/modules/dom0.te b/tools/flask/policy/modules/dom0.te
index ad2b4f9ea7..8801cb24f2 100644
--- a/tools/flask/policy/modules/dom0.te
+++ b/tools/flask/policy/modules/dom0.te
@@ -105,6 +105,7 @@ allow dom0_t dom0_t:domain2 {
 	get_cpu_policy
 	dt_overlay
 	get_domain_state
+	claim_memory
 };
 allow dom0_t dom0_t:resource {
 	add
diff --git a/tools/flask/policy/modules/xen.if b/tools/flask/policy/modules/xen.if
index ef7d8f438c..8e2dceb505 100644
--- a/tools/flask/policy/modules/xen.if
+++ b/tools/flask/policy/modules/xen.if
@@ -98,6 +98,7 @@ define(`create_domain_common', `
 		vuart_op
 		set_llc_colors
 		get_domain_state
+		claim_memory
 	};
 	allow $1 $2:security check_context;
 	allow $1 $2:shadow enable;
diff --git a/tools/include/xenctrl.h b/tools/include/xenctrl.h
index 4955981231..1059629d94 100644
--- a/tools/include/xenctrl.h
+++ b/tools/include/xenctrl.h
@@ -2660,6 +2660,10 @@ int xc_domain_set_llc_colors(xc_interface *xch, uint32_t domid,
                              const uint32_t *llc_colors,
                              uint32_t num_llc_colors);
 
+int xc_domain_claim_memory(xc_interface *xch, uint32_t domid,
+                           uint32_t nr_claims,
+                           const memory_claim_t *claims);
+
 #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 2ddc3f4f42..370917d877 100644
--- a/tools/libs/ctrl/xc_domain.c
+++ b/tools/libs/ctrl/xc_domain.c
@@ -2229,6 +2229,48 @@ out:
 
     return ret;
 }
+
+/*
+ * Claim memory for a domain. A Domain can only have one type of claim:
+ *
+ * If the number of claims is 0, existing claims are cancelled.
+ * Updating claims is not supported, cancel the existing claim first.
+ *
+ * Memory allocations consume the outstanding claim and if not enough memory is
+ * free, the allocation must be satisfied from the remaining outstanding claim.
+ */
+int xc_domain_claim_memory(xc_interface *xch, uint32_t domid,
+                           uint32_t nr_claims,
+                           const memory_claim_t *claims)
+{
+    struct xen_domctl domctl = {
+        .cmd = XEN_DOMCTL_claim_memory,
+        .domain = domid,
+        .u.claim_memory.nr_claims = nr_claims,
+    };
+    int ret;
+    DECLARE_HYPERCALL_BUFFER(struct xen_domctl_claim_memory, buffer);
+
+    /* Use an array to not need changes for multi-node claims in the future */
+    if ( nr_claims )
+    {
+        size_t bytes = sizeof(memory_claim_t) * nr_claims;
+
+        buffer = xc_hypercall_buffer_alloc(xch, buffer, bytes);
+        if ( buffer == NULL )
+        {
+            PERROR("Could not allocate memory for xc_domain_claim_memory");
+            return -1;
+        }
+        memcpy(buffer, claims, bytes);
+        set_xen_guest_handle(domctl.u.claim_memory.claims, buffer);
+    }
+
+    ret = do_domctl(xch, &domctl);
+    xc_hypercall_buffer_free(xch, buffer);
+    return ret;
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/tools/ocaml/libs/xc/xenctrl.ml b/tools/ocaml/libs/xc/xenctrl.ml
index 7e1aabad6c..cb1c18481b 100644
--- a/tools/ocaml/libs/xc/xenctrl.ml
+++ b/tools/ocaml/libs/xc/xenctrl.ml
@@ -369,6 +369,15 @@ 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"
 
+type claim =
+  {
+    node: int;
+    nr_pages: int64;
+  }
+
+external domain_claim_memory: handle -> domid -> int -> 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 f44dba61ae..32786a5f7f 100644
--- a/tools/ocaml/libs/xc/xenctrl.mli
+++ b/tools/ocaml/libs/xc/xenctrl.mli
@@ -296,6 +296,15 @@ 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"
 
+type claim =
+  {
+    node: int;
+    nr_pages: int64;
+  }
+
+external domain_claim_memory: handle -> domid -> int -> 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 b51fd66788..c27e6c4683 100644
--- a/tools/ocaml/libs/xc/xenctrl_stubs.c
+++ b/tools/ocaml/libs/xc/xenctrl_stubs.c
@@ -1424,6 +1424,27 @@ CAMLprim value stub_xc_watchdog(value xch_val, value domid, value timeout)
 	CAMLreturn(Val_int(ret));
 }
 
+/* Claim memory for a domain. See xc_domain_claim_memory() for details. */
+CAMLprim value stub_xc_domain_claim_memory(value xch_val, value domid,
+                                           value num_claims, value desc)
+{
+	CAMLparam4(xch_val, domid, num_claims, desc);
+	xc_interface *xch = xch_of_val(xch_val);
+	int i, retval, nr_claims = Int_val(num_claims);
+	memory_claim_t claim[nr_claims];
+
+	for (i = 0; i < nr_claims; i++) {
+		claim[i].node = Int_val(Field(desc, i*2));
+		claim[i].nr_pages = Int64_val(Field(desc, i*2 + 1));
+	}
+
+	retval = xc_domain_claim_memory(xch, Int_val(domid), nr_claims, claim);
+	if (retval < 0)
+		failwith_xc(xch);
+
+	CAMLreturn(Val_unit);
+}
+
 /*
  * Local variables:
  *  indent-tabs-mode: t
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 1beadb05e1..dcfad4ab15 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -267,6 +267,36 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
     return rc;
 }
 
+/* XEN_DOMCTL_claim_memory: Claim an amount of memory for a domain */
+int claim_memory(struct domain *d, const struct xen_domctl_claim_memory *uinfo)
+{
+    memory_claim_t claim;
+    int rc;
+
+    switch ( uinfo->nr_claims )
+    {
+        case 0:
+            /* Cancel existing claim. */
+            rc = domain_set_outstanding_pages(d, 0, 0);
+            break;
+
+        case 1:
+            /* Only single node claims supported at the moment. */
+            if ( copy_from_guest(&claim, uinfo->claims, 1) )
+                return -EFAULT;
+
+            rc = domain_set_outstanding_pages(d, claim.node,
+                                              claim.nr_pages);
+            break;
+
+        default:
+            rc = -EOPNOTSUPP;
+            break;
+    }
+
+    return rc;
+}
+
 static void __domain_finalise_shutdown(struct domain *d)
 {
     struct vcpu *v;
diff --git a/xen/common/domctl.c b/xen/common/domctl.c
index f2a7caaf85..e7576ae00b 100644
--- a/xen/common/domctl.c
+++ b/xen/common/domctl.c
@@ -894,6 +894,14 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
         ret = get_domain_state(&op->u.get_domain_state, d, &op->domain);
         break;
 
+    case XEN_DOMCTL_claim_memory:
+        ret = xsm_claim_pages(XSM_PRIV, d);
+        if ( ret )
+            break;
+
+        ret = claim_memory(d, &op->u.claim_memory);
+        break;
+
     default:
         ret = arch_do_domctl(op, d, u_domctl);
         break;
diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h
index 0c75d9d27f..5e924abd85 100644
--- a/xen/include/public/domctl.h
+++ b/xen/include/public/domctl.h
@@ -1273,6 +1273,21 @@ struct xen_domctl_get_domain_state {
     uint64_t unique_id;      /* Unique domain identifier. */
 };
 
+struct xen_memory_claim {
+    unsigned int node;      /* NUMA node, XC_NUMA_NO_NODE for a host claim */
+    unsigned long nr_pages; /* Number of pages to claim */
+};
+typedef struct xen_memory_claim memory_claim_t;
+DEFINE_XEN_GUEST_HANDLE(memory_claim_t);
+
+/* XEN_DOMCTL_claim_memory: Claim an amount of memory for a domain */
+struct xen_domctl_claim_memory {
+    /* IN: array of memory claims */
+    XEN_GUEST_HANDLE_64(memory_claim_t) claims;
+    /* IN: number of claims */
+    unsigned int nr_claims;
+};
+
 struct xen_domctl {
 /* Stable domctl ops: interface_version is required to be 0.  */
     uint32_t cmd;
@@ -1365,6 +1380,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
@@ -1433,6 +1449,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/xen/domain.h b/xen/include/xen/domain.h
index e10baf2615..bd5f37bd64 100644
--- a/xen/include/xen/domain.h
+++ b/xen/include/xen/domain.h
@@ -192,4 +192,6 @@ extern bool vmtrace_available;
 
 extern bool vpmu_is_available;
 
+int claim_memory(struct domain *d, const struct xen_domctl_claim_memory *uinfo);
+
 #endif /* __XEN_DOMAIN_H__ */
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index b0308e1b26..6b2535b666 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -853,6 +853,9 @@ static int cf_check flask_domctl(struct domain *d, unsigned int cmd,
     case XEN_DOMCTL_set_llc_colors:
         return current_has_perm(d, SECCLASS_DOMAIN2, DOMAIN2__SET_LLC_COLORS);
 
+    case XEN_DOMCTL_claim_memory:
+        return current_has_perm(d, SECCLASS_DOMAIN2, DOMAIN2__CLAIM_MEMORY);
+
     default:
         return avc_unknown_permission("domctl", cmd);
     }
diff --git a/xen/xsm/flask/policy/access_vectors b/xen/xsm/flask/policy/access_vectors
index 51a1577a66..87338b5c2a 100644
--- a/xen/xsm/flask/policy/access_vectors
+++ b/xen/xsm/flask/policy/access_vectors
@@ -259,6 +259,8 @@ class domain2
     set_llc_colors
 # XEN_DOMCTL_get_domain_state
     get_domain_state
+# XEN_DOMCTL_claim_memory
+    claim_memory
 }
 
 # Similar to class domain, but primarily contains domctls related to HVM domains
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sat Aug 16 11:30:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Aug 2025 11:30:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1084507.1443655 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unF7g-00022P-Fg; Sat, 16 Aug 2025 11:30:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1084507.1443655; Sat, 16 Aug 2025 11:30: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 1unF7g-00022G-CI; Sat, 16 Aug 2025 11:30:56 +0000
Received: by outflank-mailman (input) for mailman id 1084507;
 Sat, 16 Aug 2025 11:30:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UO4R=24=cloud.com=bernhard.kaindl@srs-se1.protection.inumbo.net>)
 id 1unEz5-0005tK-OJ
 for xen-devel@lists.xenproject.org; Sat, 16 Aug 2025 11:22:03 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3b1be4e5-7a93-11f0-b898-0df219b8e170;
 Sat, 16 Aug 2025 13:22:02 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-45a1ac7c066so14730565e9.1
 for <xen-devel@lists.xenproject.org>; Sat, 16 Aug 2025 04:22:02 -0700 (PDT)
Received: from MinisforumBD795m.citrite.net
 ([2a02:1748:f7df:8cb1:3992:b1e9:da8a:3f30])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45a27ec6b71sm13852325e9.10.2025.08.16.04.22.00
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sat, 16 Aug 2025 04:22:00 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3b1be4e5-7a93-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1755343321; x=1755948121; 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=itB6W5Mjw83eiGRv4d1CzarPcdxe/AwYbDWU2IVujVI=;
        b=H9aa13Zl2XFOwQv2tYNg0vEUbg2Wa5rh1EeZi32NcT0xjXqwCVUvgceMI/VvXqrxhW
         4/FRYVZqNPmaIW/b0InIdyQQSPF9N+KfhPZofKU2rJfY6n2UJ2M6is6SF25e+8lyc61o
         Rvv5eKcXCWHoJKd5K7fpTfxuIyZO7GP+K6es8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755343321; x=1755948121;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=itB6W5Mjw83eiGRv4d1CzarPcdxe/AwYbDWU2IVujVI=;
        b=LG1gxb9qYFdPewX2Hh3kGJPakyVE8q01hmwld4Wp2d0l84ARCSeSfAAmrkg2vq3bQQ
         mzJoMYvP06QxKRbcQvhE4zpZY+ANFboIHZK1QJd1BxIxENe5RKxLaG1do7QU+C+iXgdF
         MvduA4KSnJz+lX3sT8WSgl8eEXSZlRtwQnmCU2QsOw2oXSZvkgI/v8mwwKMio5jmgYwC
         YspVgPawXBQT4SAhKtU1l34h7V9XTfhf3KfVCqJoe+qD3xUExQ/TqV9Mx0uGUPqU03Tb
         8JWKCtlKSkl4JY2i2R7VvVLbP17wHYFKB7D4SnJ1ihpLfA8HSev4pWpkrDMNP//ipvfO
         qXQg==
X-Gm-Message-State: AOJu0Yw5i1hmQfUwbLgSpuHO1B31Wp3U+X1W2VTMOdnNlK0voUOLSIpB
	bTaoGNvF1nD0GC1ccrXhDaRM9aaalC9Wc8HXnvXPf2/lThTP1kf+tTrmOmXIu9RF+Bjdb/zYgVc
	kivp7PKE=
X-Gm-Gg: ASbGncsQu4oeMO6nDYoCfQGDUydez3eX5hjy1cT9++afCXzHWX6OzyjoDDFK+wDaM6A
	Y2qAJwcSdP8hFUCM3UXh5JTyqc/4O68xLRSoW35wPlL3s9I9ASMGAklNW2/uJ3dTbKgUDpzOQcY
	4atEUMCeaUDT/fTFlLP/S3QXRm6kpEON9pJ52GT4phK6swkNY52CRO3+KHVOHSIj0lELTCdPIbb
	yKXlLJRZuLohFTydyWwG8irh8B9TO1slS0HyW+VmLEbZD2y44UEeKHLJ/+tHSO+diLTVgT5ZIDA
	xYl/tkbHdl4CMhMr9j32LTurQ5o0ZKvH6+mWznADZZXuq9x8/zGXxMgwnVUOA49QHi9jCja5LIf
	Sbvp7BVWmGAzz/SlqwT5tUAJ7nVYW5NYP1OVGFjZ9TmxujWHl7S1yfgc=
X-Google-Smtp-Source: AGHT+IGNf35gMUVzvlqFV29NkNPtqAgDj/10uCjjHdVaqfSJq9g6oY9WCZuroUHFpKy4ygpelHlvQQ==
X-Received: by 2002:a05:600c:c104:b0:43c:ed33:a500 with SMTP id 5b1f17b1804b1-45a1b819ca7mr54173995e9.10.1755343321278;
        Sat, 16 Aug 2025 04:22:01 -0700 (PDT)
From: Bernhard Kaindl <bernhard.kaindl@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@cloud.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Subject: [PATCH v2 3/7] xen/page_alloc: Add static per-NUMA-node counts of free pages
Date: Sat, 16 Aug 2025 13:19:29 +0200
Message-ID: <b74a6a61209e37c2126dd1171b64c12264754f2e.1755341947.git.bernhard.kaindl@cloud.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <cover.1755341947.git.bernhard.kaindl@cloud.com>
References: <cover.1755341947.git.bernhard.kaindl@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The static per-NUMA-node count of free pages is the sum of free memory
in all zones of a node. It's an optimisation to avoid doing that operation
frequently in the following patches that introduce per-NUMA-node claims.

---
Changed since v1:
- Added ASSERT(per_node_avail_pages[node] >= request) as requested
  during review by Roger: Comment by me: As we have
  ASSERT(avail[node][zone] >= request);
  directly before it, request is already valid, so this checks
  that per_node_avail_pages[node] is not mis-accounted too low.

Signed-off-by: Bernhard Kaindl <bernhard.kaindl@cloud.com>
Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
 xen/common/page_alloc.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 7e90b9cc1e..43de9296fd 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -486,6 +486,9 @@ static unsigned long node_need_scrub[MAX_NUMNODES];
 static unsigned long *avail[MAX_NUMNODES];
 static long total_avail_pages;
 
+/* Per-NUMA-node counts of free pages */
+static unsigned long per_node_avail_pages[MAX_NUMNODES];
+
 static DEFINE_SPINLOCK(heap_lock);
 static long outstanding_claims; /* total outstanding claims by all domains */
 
@@ -1066,6 +1069,8 @@ static struct page_info *alloc_heap_pages(
 
     ASSERT(avail[node][zone] >= request);
     avail[node][zone] -= request;
+    ASSERT(per_node_avail_pages[node] >= request);
+    per_node_avail_pages[node] -= request;
     total_avail_pages -= request;
     ASSERT(total_avail_pages >= 0);
 
@@ -1226,6 +1231,8 @@ static int reserve_offlined_page(struct page_info *head)
             continue;
 
         avail[node][zone]--;
+        ASSERT(per_node_avail_pages[node] > 0);
+        per_node_avail_pages[node]--;
         total_avail_pages--;
         ASSERT(total_avail_pages >= 0);
 
@@ -1550,6 +1557,7 @@ static void free_heap_pages(
     }
 
     avail[node][zone] += 1 << order;
+    per_node_avail_pages[node] += 1 << order;
     total_avail_pages += 1 << order;
     if ( need_scrub )
     {
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Sat Aug 16 16:32:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 16 Aug 2025 16:32:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1084666.1443665 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unJop-0004NI-Tg; Sat, 16 Aug 2025 16:31:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1084666.1443665; Sat, 16 Aug 2025 16:31: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 1unJop-0004NA-Pp; Sat, 16 Aug 2025 16:31:47 +0000
Received: by outflank-mailman (input) for mailman id 1084666;
 Sat, 16 Aug 2025 16:31:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=EH88=24=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1unJoo-0004N4-N2
 for xen-devel@lists.xenproject.org; Sat, 16 Aug 2025 16:31:46 +0000
Received: from DB3PR0202CU003.outbound.protection.outlook.com
 (mail-northeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c200::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7e10ab1d-7abe-11f0-a328-13f23c93f187;
 Sat, 16 Aug 2025 18:31:44 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by VI1PR03MB6382.eurprd03.prod.outlook.com (2603:10a6:800:195::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.21; Sat, 16 Aug
 2025 16:31:40 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9031.019; Sat, 16 Aug 2025
 16:31: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>
X-Inumbo-ID: 7e10ab1d-7abe-11f0-a328-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=d8GQvwO8vET1IVEymfRIZGwhiZfCoPcmmmkr+K9pM1nq07LW4r6rpSdlVyk3xFYGH3BrLwGUYDJnG3nQFTgxE+8z3VppdsD6E4wleCjGlMf3dx4kuVxashTwhsfcxQ3Q540rT0qJap0IVgyD/81SQNho8w+cKsLHqGibh53+bU6Foq11ZLyDfzttRClfX0+lG1VioWQK5Yl0kfsrKEJIwlh46jyKtAplVPW75bn+6iT+QeNlm9JJhQE7tZcQcd6ibRPt7ADJkZSBXunugTBp+r5r1S6XeNCtyfy/tskiqRYMwtpgUZV1VoUhAmmyvohmmhyAgdpK8Ey2lGJSGNZWDg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=U0ZrfAgBW0bObJ4ykVGDTR7PpltnCDCau9ENjvHx484=;
 b=CAkMCJYZA6tkr32W2idKnh96lHV97EUnG6QPKSFSd2ylJYRuyWlZhjTRfyCqJRxveHrxoXDx24ob1gCRi86XoiSoZ+fggtsV3wIDg/z/P8AMpO+JpYjtfkefdcaoxfRZzW4J8HKEpHM0wPAwgyyO9o6yIF59AMhyroUw9TBDdHIgNaxzJdFv+OrnZ27Tb3D9SH+gjYnqJRlpT695TVj1j0A0lXxO2jutN6LUMhDJsHvYlOiMqR0dJUIzswer9KW78u5OOFpRu837Q8OOyiGrplFVRQlSux5EzMwTmIrcm5204HXmeH9FLPzqMOCTg9W8HJwkH8QRx0SWXtujYchywA==
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=U0ZrfAgBW0bObJ4ykVGDTR7PpltnCDCau9ENjvHx484=;
 b=YnmRvu4308Od5RYAqcTVvJJ6Qr2NECVNb1IO3cPnNGAfMwSl8CGOiaR6crzgtp11tD6YeJDzR1ma8fi3rwnOdJ6kWzP6Lc6wBZBJpaVKJ2tQfCNZcvMmOCB6sxEx3Ce/uUUpkbT+Dx9eY3ugkjwNmI/Bvd2OaGz5dR4CYWdWb66Wm5h1hNXfUd6g/kyJX6BfZf8IcAfanewQ9fCUvqWcHuCu/Zq2rnZD3wDL7ycIAZhRsmXy18pLOW5vwqCdtTpITGxrDFPjS/+fCUbQMRCoqdGvzV7Z+fn0B/x4rK6aRJb/OlZuNkWYp/2q852n17Ykejjun1em8tqT/th2eGMoFw==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<jbeulich@suse.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<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>, Dmytro Prokopchuk1
	<dmytro_prokopchuk1@epam.com>
Subject: [PATCH v2] xen/irq: Delete the pirq_cleanup_check() macro
Thread-Topic: [PATCH v2] xen/irq: Delete the pirq_cleanup_check() macro
Thread-Index: AQHcDss9HzeZqtz/Tk6XtiCEDCCXBQ==
Date: Sat, 16 Aug 2025 16:31:38 +0000
Message-ID:
 <ce37bdf7b5189d314c0f41628dbfb3281358bcf4.1755361782.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: GV2PR03MB9572:EE_|VI1PR03MB6382:EE_
x-ms-office365-filtering-correlation-id: 05453e3d-e296-435e-e55f-08dddce26018
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|42112799006|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?1ojuMz78veiAXqG8hLV+nUgL1s7++qyG0I6pD0W3fzLUVcSNCHTHK4H3Gd?=
 =?iso-8859-1?Q?M1RnNXvqdwhsOWk6kwmcrfPIeM4YvDhHhwY6K160g/c4FjlW0L6ii+YSC+?=
 =?iso-8859-1?Q?4Xle7SB0b8c+4SftmV7mD2zLsswFK8+osKkXWIzGSBc1dsmcdPfj/66+cg?=
 =?iso-8859-1?Q?yf4trMNLUnB1lwi0SWiQ6uuZaiHSDu7ftE/B+Iu7Cv/EXb36lkOMXrcNTP?=
 =?iso-8859-1?Q?xXzYJ/AEt9MoKG3XKAy7WXdJAGkSeMMWw3+SF4/e2NneL6moZAAN/BIoKz?=
 =?iso-8859-1?Q?is3ilb5Lwxv65tWvT+6ibyfk55MSsXVCVI7FNdatIseNMA7du1hGfUoS9Y?=
 =?iso-8859-1?Q?ilcXjQ5b/jloLp9mQv3YLwNnMHE0SaxvBp7DpNuom0pqNNkX+b4/R+GYnm?=
 =?iso-8859-1?Q?Da65HfzFEIR1XnfGSY68QHlDi01H56GXdXbZFsgRnc4zyKFzwrXKPwkkXy?=
 =?iso-8859-1?Q?TxslJ7AQHSiLVY2oe6ocsuM/mtGh2HvCaB8YFBxyojWRYNbpDqZWh4OiV3?=
 =?iso-8859-1?Q?R5yUFpUE0Xfu5D9YcYsLEwGvIz+EhyUcGIzaugirC34HVd9Es0XsMfh2w/?=
 =?iso-8859-1?Q?Xke1nrX9udQZdzYTUw0FIj2LoxdSF1UQslKC87uSlFyXtOw2/6aky8yVk/?=
 =?iso-8859-1?Q?aDmuvy4WCASpx5sV7zWan9MfriHwXlFI8PsiC6O01+VsXbSxqDBZEGuS2n?=
 =?iso-8859-1?Q?b3Um41SigPYltqor7olAUBjo22Fg0SKz9e0FTVIEzTJ6HHXAuRi5llzKJZ?=
 =?iso-8859-1?Q?GzCADeUPAG2tJUrtwvfpu3sC3CPJC1OKr02VVeWKMWnMn/P8AkS0RoCOHX?=
 =?iso-8859-1?Q?TTHkmvmjoml2ak6ogvKIi5QI/VZwsS/kd7CZCnqsL7q7ZlrzuoROp8cYJ/?=
 =?iso-8859-1?Q?jwPsOjR3N6xieXxiJfOgRW7eVpFVZtfcwBH3nQaiA9KiZv9LxXtLLHKJwG?=
 =?iso-8859-1?Q?myMGm/BNPi1WJMVRzij+QX1P+0VU0Qr4POPRzOjevJqMNN/uxPh8XitCpg?=
 =?iso-8859-1?Q?06J7e9IQDEj+IcsxoUoYi4BihEHfgsafNaKo9FYNeOR3ll6p2DlJDtEhAZ?=
 =?iso-8859-1?Q?KdVTR8XVh7m6ClEWFxX5iasMMBv5n3Ft9hIZ0zm7a32DmsEa5q8V+zXFw2?=
 =?iso-8859-1?Q?3eBZey35v8Pt9L8HJqJyMJvnED8V+z2jR+j0uvDNrqYxs/R1aDvi4rTOV6?=
 =?iso-8859-1?Q?d2FWuYwuVfD1pPdE36xQhAV74xk2PZ7fhz23k0kN+16Uahg2BLjaL6XOkJ?=
 =?iso-8859-1?Q?6Tijlz9/3EphqC/155fEwWvH0BjBym++SvRTlYlBAoEYKI7TQlQWg9ibRj?=
 =?iso-8859-1?Q?m29rHjo3I8DQv81XRhMEBSCqMzuzNwxiKUWc81oVKuodf+1aYZGKpqx7dm?=
 =?iso-8859-1?Q?imtvQZ2d3JdcyvHOzIgAW2y9j4vHptrmtLSDP1kHwTBll+Z5DqiVU7SuDf?=
 =?iso-8859-1?Q?xv0wKOxb/cbrBE6C+JdjZQDL5MmpzKvh8562OQs2a3bDj2YkRE+A8CVYxE?=
 =?iso-8859-1?Q?g=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(42112799006)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?x3PahXTsLC7QUpsla9QadG8PkYOuz7OpNhHYITqCSDnNW6RBL1PgvkOj6h?=
 =?iso-8859-1?Q?zgQtc3tikXZX8bE6F3ZVd1S9BJrP5q3FDgnyTEkymGhDCRhqP5vKCKryRt?=
 =?iso-8859-1?Q?ftoU4UGmDjluaS56xLFpr4u213v6rdBwE1MgU9fl7kwh4YTbkSBI3UmIvy?=
 =?iso-8859-1?Q?beoWvYMJxqAX6gsixcC404oMGjtZ+X1LQjH4vxfOQivrUFAnhAQ4dcx5ov?=
 =?iso-8859-1?Q?c5AGkMGCKIimkSIwdU1sixT1j1vRwOT/6Zck/yckZYTznebHpXKNjfNq6B?=
 =?iso-8859-1?Q?d7ZXgKNZSGkBZckTZwgWoihpe6fUhDtK1DYdWgGEoh04mqjpitzFEJOwyX?=
 =?iso-8859-1?Q?YotXMm/cyVoh5MD/uXJmsenSoLf+coyg+ts3v0BKZurJAGQyI4SrcDyMhF?=
 =?iso-8859-1?Q?KGCc0pFh4LQ07vfJsUV5LwFCVLrXdJ0/QUt2BpVqNDFaD5daAJc3KQ8ymo?=
 =?iso-8859-1?Q?3BPfz6hozKpRWwEiQuj3/wNBUU7qfz/6b55c1MpHqQMseNremHUXzgr3gC?=
 =?iso-8859-1?Q?hrwifurdzEzq3LL0NM+KbjdQeg5lKj0HMROI1sbGGNLquBIqMeey3OEg0s?=
 =?iso-8859-1?Q?Ri9PXkj9Sz5VBAshBHTLfipEjuCrYs9d39jKOKt0CyoZFGXLE4WK6ls4lv?=
 =?iso-8859-1?Q?FhDjY8okOhF10ed0j6d9vJAx2L9uTZ7E5y4BE39sTEr6KQugvJovdBJbau?=
 =?iso-8859-1?Q?9Meug+vOjq9wdp6Iz4Gcq5TdlT4TakOZLgVVWPyaY38grOSBuhOKz4KXkw?=
 =?iso-8859-1?Q?VNFy6opG3C+XELibQwv3PVuOnxMOT4O4oAPJjLO0KS4vSQ+lyXsSlzTzsg?=
 =?iso-8859-1?Q?At4/iQyQPnconH4+oTWBEP/Ytd4ToPYfccZcQR8OfPZ1Y+wBM5tYcY/Ks5?=
 =?iso-8859-1?Q?llNviHz3A55MgpmCoMv+wxhPWb+6VcUUZ9fgQWbPfMDEQrpbo7PtO9UhKe?=
 =?iso-8859-1?Q?agCtdFsbrSZSBiYmklm+rvZYzM897pjP76yFax3XFH2VNv7YQ3XtNKtvf+?=
 =?iso-8859-1?Q?4Uk0qrvHdYIuVY6zspdaIu1uW1mpZJpE/6ECoTzwaOY5Rpz4smiVm66kn6?=
 =?iso-8859-1?Q?lIJnTW6yDKWpSFIBLEshnaPuSscLwCHvlLY7Jbdlv74EAqc8oETRIiGPqG?=
 =?iso-8859-1?Q?NSxkpinq4daeQlUa/kWL9hPCCNU9wznqUOboW1IvEPJ1Cj3ymbR5c/Ubjk?=
 =?iso-8859-1?Q?YLAKegdHqPIcJ0p3ZAES8LQn7H9MX/As2pjok4ZgF53r7t50/qsoUuu9K6?=
 =?iso-8859-1?Q?r1y9fZZ75FFU/PHFV4UidfkyMzxM67RcIGPk9HrZT6CqGqevRqMuvgziet?=
 =?iso-8859-1?Q?6v+8SSwJZBRO78xWssNxcyjQN+qNvrOz5aw7BxNLw3enyat3b9qTYspekM?=
 =?iso-8859-1?Q?2yFmLE0g99Sc60KvSozvRc+tb1MCo+/FhXI2bTobA9NYrDBPy5rz9JWQms?=
 =?iso-8859-1?Q?oQpW+ZCc3oxLuCZpJY+6RUf6zr1x1OLq4auCFV+7PI3TbfDF1tbqo57MxU?=
 =?iso-8859-1?Q?OejR4asGPYy1+ZQlgIxQxTnLixAMc5JEFtIksWIKIWrcPiD0QT8T4YaZx1?=
 =?iso-8859-1?Q?Ckie4ixR3k1hlYhHhH3xMYavDymTG4CpfOqiKZu24OdbT8jTECaEkIILgF?=
 =?iso-8859-1?Q?U3qhdfeyU/PD8i+joXkrXR4UJMA3eQKCyxb4FwdEUUAQkV61/zP3AAGg?=
 =?iso-8859-1?Q?=3D=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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 05453e3d-e296-435e-e55f-08dddce26018
X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Aug 2025 16:31:38.8989
 (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: urwweigUNShy2t3Cx0MIeq8aHFWcQtWCG+n5JPXTqUgiE7VjYkHAzTqqSC/9687duELQi7axcgWbRddaS4YPTeBm+qygPEeBpArfuaczMp8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR03MB6382

From: Andrew Cooper <andrew.cooper3@citrix.com>

MISRA Rule 5.5 objects to a macro aliasing a function, which is what
pirq_cleanup_check() does. The macro was originally intended to ensure
the condition 'if (!pirq->evtchn)' is always checked before invoking
the function, avoiding errors across call sites.

To achieve MISRA compliance, the condition is expanded inline at all
call sites, using plain C constructs. This ensures clarity while
retaining the original behavior. While this complies with MISRA, it
shifts the responsibility to developers to check 'if (!pirq->evtchn)'
at call sites.

No functional changes.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
Link to v1:
https://patchew.org/Xen/20250729223110.3404441-1-andrew.cooper3@citrix.com/

Changes in v2:
- updated commit message
---
 xen/arch/x86/irq.c                | 11 +++++++----
 xen/common/event_channel.c        |  5 ++++-
 xen/drivers/passthrough/x86/hvm.c |  9 ++++++---
 xen/include/xen/irq.h             |  3 ---
 4 files changed, 17 insertions(+), 11 deletions(-)

diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c
index 556134f85a..1ed85c0c11 100644
--- a/xen/arch/x86/irq.c
+++ b/xen/arch/x86/irq.c
@@ -1325,7 +1325,8 @@ static void clear_domain_irq_pirq(struct domain *d, i=
nt irq, struct pirq *pirq)
 static void cleanup_domain_irq_pirq(struct domain *d, int irq,
                                     struct pirq *pirq)
 {
-    pirq_cleanup_check(pirq, d);
+    if ( !pirq->evtchn )
+        pirq_cleanup_check(pirq, d);
     radix_tree_delete(&d->arch.irq_pirq, irq);
 }
=20
@@ -1383,7 +1384,7 @@ struct pirq *alloc_pirq_struct(struct domain *d)
     return pirq;
 }
=20
-void (pirq_cleanup_check)(struct pirq *pirq, struct domain *d)
+void pirq_cleanup_check(struct pirq *pirq, struct domain *d)
 {
     /*
      * Check whether all fields have their default values, and delete
@@ -2823,7 +2824,8 @@ int map_domain_emuirq_pirq(struct domain *d, int pirq=
, int emuirq)
                 radix_tree_int_to_ptr(pirq));
             break;
         default:
-            pirq_cleanup_check(info, d);
+            if ( !info->evtchn )
+                pirq_cleanup_check(info, d);
             return err;
         }
     }
@@ -2858,7 +2860,8 @@ int unmap_domain_pirq_emuirq(struct domain *d, int pi=
rq)
     if ( info )
     {
         info->arch.hvm.emuirq =3D IRQ_UNBOUND;
-        pirq_cleanup_check(info, d);
+        if ( !info->evtchn )
+            pirq_cleanup_check(info, d);
     }
     if ( emuirq !=3D IRQ_PT )
         radix_tree_delete(&d->arch.hvm.emuirq_pirq, emuirq);
diff --git a/xen/common/event_channel.c b/xen/common/event_channel.c
index 67700b050a..a3d18bc464 100644
--- a/xen/common/event_channel.c
+++ b/xen/common/event_channel.c
@@ -741,11 +741,14 @@ int evtchn_close(struct domain *d1, int port1, bool g=
uest)
             if ( !is_hvm_domain(d1) ||
                  domain_pirq_to_irq(d1, pirq->pirq) <=3D 0 ||
                  unmap_domain_pirq_emuirq(d1, pirq->pirq) < 0 )
+            {
                 /*
                  * The successful path of unmap_domain_pirq_emuirq() will =
have
                  * called pirq_cleanup_check() already.
                  */
-                pirq_cleanup_check(pirq, d1);
+                if ( !pirq->evtchn )
+                    pirq_cleanup_check(pirq, d1);
+            }
         }
         unlink_pirq_port(chn1, d1->vcpu[chn1->notify_vcpu_id]);
         break;
diff --git a/xen/drivers/passthrough/x86/hvm.c b/xen/drivers/passthrough/x8=
6/hvm.c
index a2ca7e0e57..b73bb55055 100644
--- a/xen/drivers/passthrough/x86/hvm.c
+++ b/xen/drivers/passthrough/x86/hvm.c
@@ -329,7 +329,8 @@ int pt_irq_create_bind(
                 pirq_dpci->gmsi.gvec =3D 0;
                 pirq_dpci->dom =3D NULL;
                 pirq_dpci->flags =3D 0;
-                pirq_cleanup_check(info, d);
+                if ( !info->evtchn )
+                    pirq_cleanup_check(info, d);
                 write_unlock(&d->event_lock);
                 return rc;
             }
@@ -536,7 +537,8 @@ int pt_irq_create_bind(
                     hvm_irq_dpci->link_cnt[link]--;
                 }
                 pirq_dpci->flags =3D 0;
-                pirq_cleanup_check(info, d);
+                if ( !info->evtchn )
+                    pirq_cleanup_check(info, d);
                 write_unlock(&d->event_lock);
                 xfree(girq);
                 xfree(digl);
@@ -693,7 +695,8 @@ int pt_irq_destroy_bind(
          */
         pt_pirq_softirq_reset(pirq_dpci);
=20
-        pirq_cleanup_check(pirq, d);
+        if ( !pirq->evtchn )
+            pirq_cleanup_check(pirq, d);
     }
=20
     write_unlock(&d->event_lock);
diff --git a/xen/include/xen/irq.h b/xen/include/xen/irq.h
index 95034c0d6b..6071b00f62 100644
--- a/xen/include/xen/irq.h
+++ b/xen/include/xen/irq.h
@@ -185,9 +185,6 @@ extern struct pirq *pirq_get_info(struct domain *d, int=
 pirq);
=20
 void pirq_cleanup_check(struct pirq *pirq, struct domain *d);
=20
-#define pirq_cleanup_check(pirq, d) \
-    (!(pirq)->evtchn ? pirq_cleanup_check(pirq, d) : (void)0)
-
 extern void pirq_guest_eoi(struct pirq *pirq);
 extern void desc_guest_eoi(struct irq_desc *desc, struct pirq *pirq);
 extern int pirq_guest_unmask(struct domain *d);
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 06:50:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 06:50:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085371.1443691 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1untgg-0002cM-Vx; Mon, 18 Aug 2025 06:49:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085371.1443691; Mon, 18 Aug 2025 06:49: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 1untgg-0002cC-R2; Mon, 18 Aug 2025 06:49:46 +0000
Received: by outflank-mailman (input) for mailman id 1085371;
 Mon, 18 Aug 2025 06:42:01 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=HKqL=26=oss.qualcomm.com=pratyush.brahma@srs-se1.protection.inumbo.net>)
 id 1untZB-0002Vt-1D
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 06:42:01 +0000
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com
 [205.220.180.131]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6cb710d3-7bfe-11f0-b898-0df219b8e170;
 Mon, 18 Aug 2025 08:41:53 +0200 (CEST)
Received: from pps.filterd (m0279871.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57HKWZQR021804
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 06:41:52 GMT
Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com
 [209.85.214.199])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48jhjybjrw-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 06:41:51 +0000 (GMT)
Received: by mail-pl1-f199.google.com with SMTP id
 d9443c01a7336-2445806eab4so38021815ad.1
 for <xen-devel@lists.xenproject.org>; Sun, 17 Aug 2025 23:41:51 -0700 (PDT)
Received: from hu-pbrahma-hyd.qualcomm.com ([202.46.22.19])
 by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-2446d53bf5dsm70069295ad.114.2025.08.17.23.41.37
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 17 Aug 2025 23:41:48 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6cb710d3-7bfe-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:message-id
	:mime-version:subject:to; s=qcppdkim1; bh=l8N9ttvKyCBAcyEDvuaLoM
	1BSXehm0oCXcCPSraNLCM=; b=S1ofeuAZEvausPNcfPdvnKZWbPTOWDSn/I7BEC
	fEzcKChFEREcdnUgDUZ0liwYbWKPM8rZPt1QO6jTgcF7psCTS7i5PGkOE6QI5JZ+
	KHyXq3fCcqVTX2TNJW8aE6hSDVQ07wo13XXPL6m308u3dn1gS4TZLJGYH+UVZxaP
	N5c049QcgEAx92YW7CGLG4srnZufUn6OZjs+cmknhQDuglZbtyx7y+zif+BWwBD5
	rLKoMV37K5sMLFRlSxJZfA3l9dBzOODYODOqjuY6k3pCnQT61mXkUULbWa5h5/21
	Fb+5mmW8neh+DKoOx0rQ8WtgQ3aJv0kjv4N5E7mgkhK3nJmQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755499310; x=1756104110;
        h=cc:to:message-id:content-transfer-encoding:mime-version:subject
         :date:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=l8N9ttvKyCBAcyEDvuaLoM1BSXehm0oCXcCPSraNLCM=;
        b=IkDQjNZiN4NnZAyHLVFP1sgAbvn6TeCYjjOvOdMehW1ojI75aIWNpwBV0OyLP712NL
         I5umoNmbdcq9uEibEm1aTetVHv6pIEmYl7ilD2wOmY2a+2CdFJeph7J+h5S5LG2Flw9K
         Zz4EG1XwqS1OBfq69TAB83OSTeMlgdseEFVT2OEryFRkQ/kKvQ4+0LKUwDD82YpO4Qz/
         tcbN7oJ8JiPJ8ZPumWVV/m1BsZya2Hav1v1JISXTJnPyAll1ZYxO+bb7ocHZCRpvfPqy
         6t+9Fcznhrice45inuPcD8aRq+ZK0HvA0sh4gayhVqWyPqtdnrAjU1rDgkJl88CYzxj4
         FBKQ==
X-Forwarded-Encrypted: i=1; AJvYcCVYTBaCunKrl8y/0dsCLuPE6R15HfPUeTVxW1L+RPthE02itC2RayTX6YXPtyYNnG1Iyd6+UKtmmtw=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzq08PiqL6eKlaq213/F/PrCbE5+HtSChjp01A9wcMmex4FT3ay
	RZGOwD9kI+geg81ZNZEeqNA/wajbAKGbMRlcPgzLp5Qj6cZnluLsqw2eohWRPFDap8ZqC7hO8lX
	ShmSQdhyq5N3pg8AvXvZ16+gNplem8Gu0wmlUONGXo6CopvX4HhWlD6xl1TXNd+6DNejUpg==
X-Gm-Gg: ASbGnctS1t0rP0ALpvDIesFYHNttK4FSWW88ZvGVPMATR4QqaYdew5DVK1X+yVhMBPT
	qDZo3rFemUKsGbyH5X8B1Lj/ugKNkU0faY/0qT0ApQPPwjq61fz4yFQccH+Eg7C1+DuUBqlt8y/
	jakKqjrrgFzOTy7NU6zlldgCIgvbz+Qy4kHXBjrD9lrfmb+020rnjes0xPBhU7z4owR23jGwLfx
	J7ap6CNPqxBWBdfMOgJOHQYqoVFHNpAegns/F/GFaK50D/5CZgQCqW9KtvhGNjfLqDdpIT5/lrw
	PpIBZ66j3Hc3aWU09KeSEqqHpTAVcQSbj+A2Lsj3iD0=
X-Received: by 2002:a17:902:c951:b0:240:22af:91c7 with SMTP id d9443c01a7336-2446d71db3fmr134372785ad.14.1755499310170;
        Sun, 17 Aug 2025 23:41:50 -0700 (PDT)
X-Google-Smtp-Source: AGHT+IGmF5KBA9eIDDl75sJwjMQCpOEjZ8TR6DA+JYR6yCjrU7iJmsnLTLQaYA9/NFl8UsVIfaN9mw==
X-Received: by 2002:a17:902:c951:b0:240:22af:91c7 with SMTP id d9443c01a7336-2446d71db3fmr134372375ad.14.1755499309632;
        Sun, 17 Aug 2025 23:41:49 -0700 (PDT)
From: pratyush.brahma@oss.qualcomm.com
X-Google-Original-From: Pratyush
Date: Mon, 18 Aug 2025 12:11:15 +0530
Subject: [PATCH] mm/numa: Rename memory_add_physaddr_to_nid to
 memory_get_phys_to_nid
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20250818-numa_memblks-v1-1-9eb29ade560a@oss.qualcomm.com>
X-B4-Tracking: v=1; b=H4sIAArLomgC/6tWKk4tykwtVrJSqFYqSi3LLM7MzwNyDHUUlJIzE
 vPSU3UzU4B8JSMDI1MDC0MT3bzS3MT43NTcpJzsYt0kU5NEC3MLCyODlFQloJaCotS0zAqwcdG
 xQH5GZnFJflElyPTa2loAgXpdgW0AAAA=
X-Change-ID: 20250814-numa_memblks-b54a878820de
To: Madhavan Srinivasan <maddy@linux.ibm.com>,
        Michael Ellerman <mpe@ellerman.id.au>,
        Nicholas Piggin <npiggin@gmail.com>,
        Christophe Leroy <christophe.leroy@csgroup.eu>,
        Heiko Carstens <hca@linux.ibm.com>, Vasily Gorbik <gor@linux.ibm.com>,
        Alexander Gordeev <agordeev@linux.ibm.com>,
        Christian Borntraeger <borntraeger@linux.ibm.com>,
        Sven Schnelle <svens@linux.ibm.com>,
        "Rafael J. Wysocki" <rafael@kernel.org>, Len Brown <lenb@kernel.org>,
        Dan Williams <dan.j.williams@intel.com>,
        Vishal Verma <vishal.l.verma@intel.com>,
        Dave Jiang <dave.jiang@intel.com>, Ira Weiny <ira.weiny@intel.com>,
        David Hildenbrand <david@redhat.com>,
        Oscar Salvador <osalvador@suse.de>,
        Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
        Danilo Krummrich <dakr@kernel.org>,
        Davidlohr Bueso <dave@stgolabs.net>,
        Jonathan Cameron <jonathan.cameron@huawei.com>,
        Alison Schofield <alison.schofield@intel.com>,
        "K. Y. Srinivasan" <kys@microsoft.com>,
        Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>,
        Dexuan Cui <decui@microsoft.com>,
        Pankaj Gupta <pankaj.gupta.linux@gmail.com>,
        "Michael S. Tsirkin" <mst@redhat.com>,
        Jason Wang <jasowang@redhat.com>,
        Xuan Zhuo <xuanzhuo@linux.alibaba.com>,
        =?utf-8?q?Eugenio_P=C3=A9rez?= <eperezma@redhat.com>,
        Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Andrew Morton <akpm@linux-foundation.org>,
        Mike Rapoport <rppt@kernel.org>
Cc: linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org,
        linux-s390@vger.kernel.org, linux-acpi@vger.kernel.org,
        nvdimm@lists.linux.dev, linux-mm@kvack.org, linux-cxl@vger.kernel.org,
        linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
        xen-devel@lists.xenproject.org,
        Pratyush Brahma <pratyush.brahma@oss.qualcomm.com>
X-Mailer: b4 0.14.2
X-Developer-Signature: v=1; a=ed25519-sha256; t=1755499297; l=12122;
 i=pratyush.brahma@oss.qualcomm.com; s=20250808; h=from:subject:message-id;
 bh=//n/Cd8/21p2TwuLHbKJjrZr/VX2C3LDE0HHjeHcn3A=;
 b=YhwC5Lk4afAnAuPN/u4jW8oYab0ctCO2cz+geSxr4bRuihGdwIV2yM1kuCXBVrnF+tdcuoDdH
 v7S65fFa5CkAcFfEgaPVnJ6mv1qtlUNsSBr4p0Efj25v9textGh8WHy
X-Developer-Key: i=pratyush.brahma@oss.qualcomm.com; a=ed25519;
 pk=ZeXF1N8hxU6j3G/ajMI+du/TVXMZQaXDwnJyznB69ms=
X-Proofpoint-ORIG-GUID: 3C4GU4mDUEzHrdlpIRyDUQkBIOAB7Sew
X-Authority-Analysis: v=2.4 cv=ZJHXmW7b c=1 sm=1 tr=0 ts=68a2cb2f cx=c_pps
 a=JL+w9abYAAE89/QcEU+0QA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17
 a=IkcTkHD0fZMA:10 a=2OwXVqhp2XgA:10 a=EUspDBNiAAAA:8 a=qb4DzySmTAYQGscL8MYA:9
 a=QEXdDO2ut3YA:10 a=324X-CrmTo6CU4MGRt3R:22
X-Proofpoint-GUID: 3C4GU4mDUEzHrdlpIRyDUQkBIOAB7Sew
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODE2MDAyOCBTYWx0ZWRfX0ixZWnkSQJUH
 t83shXTR9mGEsPdAtSBite8cXy05U7679/0mzgLJz0XGOsfPTJxah9BqDRSLXQUe17mqbaTi/kb
 RncjxOU4i3JVcblRRNaaSVbU5QELtSLUiuq2liSNlkqbcy4uPQ3AdjZDUqAKtc49MEK8vBzwnMf
 m+z8lEQ/wmOA8lS+EDsQ9aQmtYwePUnawKH4R3F5qV7oRJw91RTu27mFgNCH8HDBILb3KdNBYwn
 Pe9E8JicXWptsE1sLZKhUkWd7EaA9dAoomuUlhbM17DAwwW8n8UVONUMPAwEqgJsDcYL4ZUOhQo
 AdIfoXB6ExcFtmH/3f+7C1JMeoRXYXunZ8CfEeOcsuMiE7mEvUTEa0zM9Asgu2oazlNFIczpzbD
 xr6QqxgW
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40
 definitions=2025-08-18_03,2025-08-14_01,2025-03-28_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 malwarescore=0 adultscore=0 phishscore=0 suspectscore=0 clxscore=1011
 bulkscore=0 spamscore=0 impostorscore=0 priorityscore=1501
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508160028

From: Pratyush Brahma <pratyush.brahma@oss.qualcomm.com>

The function `memory_add_physaddr_to_nid` seems a misnomer.
It does not to "add" a physical address to a NID mapping,
but rather it gets the NID associated with a given physical address.

Improve the semantic clarity of the API by renaming to a more
descriptive name.

Signed-off-by: Pratyush Brahma <pratyush.brahma@oss.qualcomm.com>
---
 arch/powerpc/include/asm/sparsemem.h | 4 ++--
 arch/powerpc/mm/mem.c                | 4 ++--
 arch/s390/include/asm/sparsemem.h    | 4 ++--
 drivers/acpi/acpi_memhotplug.c       | 2 +-
 drivers/acpi/nfit/core.c             | 2 +-
 drivers/base/memory.c                | 2 +-
 drivers/cxl/pmem.c                   | 2 +-
 drivers/dax/cxl.c                    | 2 +-
 drivers/hv/hv_balloon.c              | 6 +++---
 drivers/nvdimm/virtio_pmem.c         | 2 +-
 drivers/virtio/virtio_mem.c          | 2 +-
 drivers/xen/balloon.c                | 2 +-
 include/linux/numa.h                 | 6 +++---
 include/linux/numa_memblks.h         | 4 ++--
 mm/numa.c                            | 6 +++---
 mm/numa_memblks.c                    | 4 ++--
 16 files changed, 27 insertions(+), 27 deletions(-)

diff --git a/arch/powerpc/include/asm/sparsemem.h b/arch/powerpc/include/asm/sparsemem.h
index d072866842e4229159fcb6635745fd19a2788413..cdb5594616c8e32ab8ae3d209d0b2df20f3564f6 100644
--- a/arch/powerpc/include/asm/sparsemem.h
+++ b/arch/powerpc/include/asm/sparsemem.h
@@ -14,8 +14,8 @@
 
 #ifdef CONFIG_MEMORY_HOTPLUG
 extern int remove_section_mapping(unsigned long start, unsigned long end);
-extern int memory_add_physaddr_to_nid(u64 start);
-#define memory_add_physaddr_to_nid memory_add_physaddr_to_nid
+extern int memory_get_phys_to_nid(u64 start);
+#define memory_get_phys_to_nid memory_get_phys_to_nid
 
 #ifdef CONFIG_NUMA
 extern int hot_add_scn_to_nid(unsigned long scn_addr);
diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c
index 3ddbfdbfa9413a17d8321885724ce432d967005a..5665b2e2fc68df8634613c11706e1a9158a3a616 100644
--- a/arch/powerpc/mm/mem.c
+++ b/arch/powerpc/mm/mem.c
@@ -54,11 +54,11 @@ EXPORT_SYMBOL(__phys_mem_access_prot);
 static DEFINE_MUTEX(linear_mapping_mutex);
 
 #ifdef CONFIG_NUMA
-int memory_add_physaddr_to_nid(u64 start)
+int memory_get_phys_to_nid(u64 start)
 {
 	return hot_add_scn_to_nid(start);
 }
-EXPORT_SYMBOL_GPL(memory_add_physaddr_to_nid);
+EXPORT_SYMBOL_GPL(memory_get_phys_to_nid);
 #endif
 
 int __weak create_section_mapping(unsigned long start, unsigned long end,
diff --git a/arch/s390/include/asm/sparsemem.h b/arch/s390/include/asm/sparsemem.h
index 668dfc5de538742269af1b25151372506105fd4d..744c67dce4c106d063cb5436b37412045da0fd2a 100644
--- a/arch/s390/include/asm/sparsemem.h
+++ b/arch/s390/include/asm/sparsemem.h
@@ -7,11 +7,11 @@
 
 #ifdef CONFIG_NUMA
 
-static inline int memory_add_physaddr_to_nid(u64 addr)
+static inline int memory_get_phys_to_nid(u64 addr)
 {
 	return 0;
 }
-#define memory_add_physaddr_to_nid memory_add_physaddr_to_nid
+#define memory_get_phys_to_nid memory_get_phys_to_nid
 
 static inline int phys_to_target_node(u64 start)
 {
diff --git a/drivers/acpi/acpi_memhotplug.c b/drivers/acpi/acpi_memhotplug.c
index d0c1a71007d0a3054608bec8fddc8e86bdffb78b..6f968243ffc3cc5864e73b914d1bf67748e30e66 100644
--- a/drivers/acpi/acpi_memhotplug.c
+++ b/drivers/acpi/acpi_memhotplug.c
@@ -183,7 +183,7 @@ static int acpi_memory_enable_device(struct acpi_memory_device *mem_device)
 			continue;
 		/* We want a single node for the whole memory group */
 		if (node < 0)
-			node = memory_add_physaddr_to_nid(info->start_addr);
+			node = memory_get_phys_to_nid(info->start_addr);
 		total_length += info->length;
 	}
 
diff --git a/drivers/acpi/nfit/core.c b/drivers/acpi/nfit/core.c
index ae035b93da087812dee6ec47d9ef4aa97dc8e7bc..04c3ab311e4d5923aef50252efabd193c5fb7850 100644
--- a/drivers/acpi/nfit/core.c
+++ b/drivers/acpi/nfit/core.c
@@ -2630,7 +2630,7 @@ static int acpi_nfit_register_region(struct acpi_nfit_desc *acpi_desc,
 
 	/* Fallback to address based numa information if node lookup failed */
 	if (ndr_desc->numa_node == NUMA_NO_NODE) {
-		ndr_desc->numa_node = memory_add_physaddr_to_nid(spa->address);
+		ndr_desc->numa_node = memory_get_phys_to_nid(spa->address);
 		dev_info(acpi_desc->dev, "changing numa node from %d to %d for nfit region [%pa-%pa]",
 			NUMA_NO_NODE, ndr_desc->numa_node, &res.start, &res.end);
 	}
diff --git a/drivers/base/memory.c b/drivers/base/memory.c
index 5c6c1d6bb59f1241a5f42a3396be1a8e2058c965..f657520855408804761afec379e3c0b2a238b239 100644
--- a/drivers/base/memory.c
+++ b/drivers/base/memory.c
@@ -599,7 +599,7 @@ static ssize_t probe_store(struct device *dev, struct device_attribute *attr,
 	if (ret)
 		return ret;
 
-	nid = memory_add_physaddr_to_nid(phys_addr);
+	nid = memory_get_phys_to_nid(phys_addr);
 	ret = __add_memory(nid, phys_addr,
 			   MIN_MEMORY_BLOCK_SIZE * sections_per_block,
 			   MHP_NONE);
diff --git a/drivers/cxl/pmem.c b/drivers/cxl/pmem.c
index e197883690efc11f60c31bd56aeb5695665d422b..471aed4e11241948e994d0b9d53600c147e38fb0 100644
--- a/drivers/cxl/pmem.c
+++ b/drivers/cxl/pmem.c
@@ -410,7 +410,7 @@ static int cxl_pmem_region_probe(struct device *dev)
 	ndr_desc.res = res;
 	ndr_desc.provider_data = cxlr_pmem;
 
-	ndr_desc.numa_node = memory_add_physaddr_to_nid(res->start);
+	ndr_desc.numa_node = memory_get_phys_to_nid(res->start);
 	ndr_desc.target_node = phys_to_target_node(res->start);
 	if (ndr_desc.target_node == NUMA_NO_NODE) {
 		ndr_desc.target_node = ndr_desc.numa_node;
diff --git a/drivers/dax/cxl.c b/drivers/dax/cxl.c
index 13cd94d32ff7a1d70af7821c1aecd7490302149d..35843791872ba466f571c022e1484816368a1198 100644
--- a/drivers/dax/cxl.c
+++ b/drivers/dax/cxl.c
@@ -15,7 +15,7 @@ static int cxl_dax_region_probe(struct device *dev)
 	struct dev_dax_data data;
 
 	if (nid == NUMA_NO_NODE)
-		nid = memory_add_physaddr_to_nid(cxlr_dax->hpa_range.start);
+		nid = memory_get_phys_to_nid(cxlr_dax->hpa_range.start);
 
 	dax_region = alloc_dax_region(dev, cxlr->id, &cxlr_dax->hpa_range, nid,
 				      PMD_SIZE, IORESOURCE_DAX_KMEM);
diff --git a/drivers/hv/hv_balloon.c b/drivers/hv/hv_balloon.c
index 2b4080e51f97c30e7adb06faa56b1403bc08b53c..8878aac6da9cd3bd6f499eae2588e989b7219af3 100644
--- a/drivers/hv/hv_balloon.c
+++ b/drivers/hv/hv_balloon.c
@@ -725,7 +725,7 @@ static void hv_mem_hot_add(unsigned long start, unsigned long size,
 
 		reinit_completion(&dm_device.ol_waitevent);
 
-		nid = memory_add_physaddr_to_nid(PFN_PHYS(start_pfn));
+		nid = memory_get_phys_to_nid(PFN_PHYS(start_pfn));
 		ret = add_memory(nid, PFN_PHYS((start_pfn)),
 				 HA_BYTES_IN_CHUNK, MHP_MERGE_RESOURCE);
 
@@ -1701,8 +1701,8 @@ static int hot_add_enabled(void)
 {
 	/*
 	 * Disable hot add on ARM64, because we currently rely on
-	 * memory_add_physaddr_to_nid() to get a node id of a hot add range,
-	 * however ARM64's memory_add_physaddr_to_nid() always return 0 and
+	 * memory_get_phys_to_nid() to get a node id of a hot add range,
+	 * however ARM64's memory_get_phys_to_nid() always return 0 and
 	 * DM_MEM_HOT_ADD_REQUEST doesn't have the NUMA node information for
 	 * add_memory().
 	 */
diff --git a/drivers/nvdimm/virtio_pmem.c b/drivers/nvdimm/virtio_pmem.c
index 2396d19ce5496974f8b93b54cc8c95e48dda103d..df6a3fd552d11a577d85708f80e7558ea83839d2 100644
--- a/drivers/nvdimm/virtio_pmem.c
+++ b/drivers/nvdimm/virtio_pmem.c
@@ -100,7 +100,7 @@ static int virtio_pmem_probe(struct virtio_device *vdev)
 
 	ndr_desc.res = &res;
 
-	ndr_desc.numa_node = memory_add_physaddr_to_nid(res.start);
+	ndr_desc.numa_node = memory_get_phys_to_nid(res.start);
 	ndr_desc.target_node = phys_to_target_node(res.start);
 	if (ndr_desc.target_node == NUMA_NO_NODE) {
 		ndr_desc.target_node = ndr_desc.numa_node;
diff --git a/drivers/virtio/virtio_mem.c b/drivers/virtio/virtio_mem.c
index 1688ecd69a0445d5c21d108a9a1d60577f96d7ac..6154f03a12c3efa65728f626e43b6270245d439c 100644
--- a/drivers/virtio/virtio_mem.c
+++ b/drivers/virtio/virtio_mem.c
@@ -2858,7 +2858,7 @@ static int virtio_mem_init(struct virtio_mem *vm)
 
 	/* Determine the nid for the device based on the lowest address. */
 	if (vm->nid == NUMA_NO_NODE)
-		vm->nid = memory_add_physaddr_to_nid(vm->addr);
+		vm->nid = memory_get_phys_to_nid(vm->addr);
 
 	dev_info(&vm->vdev->dev, "start address: 0x%llx", vm->addr);
 	dev_info(&vm->vdev->dev, "region size: 0x%llx", vm->region_size);
diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
index 2de37dcd75566fc1a03b75232cbe17fc0f53909d..93ca270ddd516ec11bc3f096eb518b9789d92664 100644
--- a/drivers/xen/balloon.c
+++ b/drivers/xen/balloon.c
@@ -284,7 +284,7 @@ static enum bp_state reserve_additional_memory(void)
 	if (!resource)
 		goto err;
 
-	nid = memory_add_physaddr_to_nid(resource->start);
+	nid = memory_get_phys_to_nid(resource->start);
 
 #ifdef CONFIG_XEN_HAVE_PVMMU
 	/*
diff --git a/include/linux/numa.h b/include/linux/numa.h
index e6baaf6051bcff6c23308d3b67f790053fbd29dc..ed65a20f39718a5a3157f6f9db60561f4418b000 100644
--- a/include/linux/numa.h
+++ b/include/linux/numa.h
@@ -33,8 +33,8 @@ int numa_nearest_node(int node, unsigned int state);
 
 int nearest_node_nodemask(int node, nodemask_t *mask);
 
-#ifndef memory_add_physaddr_to_nid
-int memory_add_physaddr_to_nid(u64 start);
+#ifndef memory_get_phys_to_nid
+int memory_get_phys_to_nid(u64 start);
 #endif
 
 #ifndef phys_to_target_node
@@ -54,7 +54,7 @@ static inline int nearest_node_nodemask(int node, nodemask_t *mask)
 	return NUMA_NO_NODE;
 }
 
-static inline int memory_add_physaddr_to_nid(u64 start)
+static inline int memory_get_phys_to_nid(u64 start)
 {
 	return 0;
 }
diff --git a/include/linux/numa_memblks.h b/include/linux/numa_memblks.h
index 991076cba7c5016d845eb40a2f9887f73fa83862..37cc0987e738f8aa2eb5c8f1ca2c94394def4780 100644
--- a/include/linux/numa_memblks.h
+++ b/include/linux/numa_memblks.h
@@ -53,8 +53,8 @@ static inline int numa_emu_cmdline(char *str)
 #ifdef CONFIG_NUMA_KEEP_MEMINFO
 extern int phys_to_target_node(u64 start);
 #define phys_to_target_node phys_to_target_node
-extern int memory_add_physaddr_to_nid(u64 start);
-#define memory_add_physaddr_to_nid memory_add_physaddr_to_nid
+extern int memory_get_phys_to_nid(u64 start);
+#define memory_get_phys_to_nid memory_get_phys_to_nid
 #endif /* CONFIG_NUMA_KEEP_MEMINFO */
 
 #endif /* CONFIG_NUMA_MEMBLKS */
diff --git a/mm/numa.c b/mm/numa.c
index 7d5e06fe5bd4a2790b83dd7dbe646617f6476d8c..f7b5ac8aea608368b75c606970187eb147ddf427 100644
--- a/mm/numa.c
+++ b/mm/numa.c
@@ -40,14 +40,14 @@ void __init alloc_offline_node_data(int nid)
 
 /* Stub functions: */
 
-#ifndef memory_add_physaddr_to_nid
-int memory_add_physaddr_to_nid(u64 start)
+#ifndef memory_get_phys_to_nid
+int memory_get_phys_to_nid(u64 start)
 {
 	pr_info_once("Unknown online node for memory at 0x%llx, assuming node 0\n",
 			start);
 	return 0;
 }
-EXPORT_SYMBOL_GPL(memory_add_physaddr_to_nid);
+EXPORT_SYMBOL_GPL(memory_get_phys_to_nid);
 #endif
 
 #ifndef phys_to_target_node
diff --git a/mm/numa_memblks.c b/mm/numa_memblks.c
index 541a99c4071a67e5b0ef66f4136dee268a880003..346039bd933390fb014931fc61ccd2f96a773c37 100644
--- a/mm/numa_memblks.c
+++ b/mm/numa_memblks.c
@@ -580,7 +580,7 @@ int phys_to_target_node(u64 start)
 }
 EXPORT_SYMBOL_GPL(phys_to_target_node);
 
-int memory_add_physaddr_to_nid(u64 start)
+int memory_get_phys_to_nid(u64 start)
 {
 	int nid = meminfo_to_nid(&numa_meminfo, start);
 
@@ -588,6 +588,6 @@ int memory_add_physaddr_to_nid(u64 start)
 		nid = numa_meminfo.blk[0].nid;
 	return nid;
 }
-EXPORT_SYMBOL_GPL(memory_add_physaddr_to_nid);
+EXPORT_SYMBOL_GPL(memory_get_phys_to_nid);
 
 #endif /* CONFIG_NUMA_KEEP_MEMINFO */

---
base-commit: 479058002c32b77acac43e883b92174e22c4be2d
change-id: 20250814-numa_memblks-b54a878820de

Best regards,
-- 
Pratyush Brahma <pratyush.brahma@oss.qualcomm.com>



From xen-devel-bounces@lists.xenproject.org Mon Aug 18 06:59:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 06:59:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085392.1443700 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1untpl-0004K7-P4; Mon, 18 Aug 2025 06:59:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085392.1443700; Mon, 18 Aug 2025 06: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 1untpl-0004K0-MI; Mon, 18 Aug 2025 06:59:09 +0000
Received: by outflank-mailman (input) for mailman id 1085392;
 Mon, 18 Aug 2025 06:59:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=rFjA=26=redhat.com=david@srs-se1.protection.inumbo.net>)
 id 1untpk-0004Ju-OJ
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 06:59:08 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.129.124])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d4885741-7c00-11f0-a329-13f23c93f187;
 Mon, 18 Aug 2025 08:59:06 +0200 (CEST)
Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com
 [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-271-de82_TqLPDe1pTVrsCi2wA-1; Mon, 18 Aug 2025 02:59:03 -0400
Received: by mail-wm1-f70.google.com with SMTP id
 5b1f17b1804b1-45a1b0b6466so19905155e9.2
 for <xen-devel@lists.xenproject.org>; Sun, 17 Aug 2025 23:59:03 -0700 (PDT)
Received: from ?IPV6:2003:d8:2f22:600:53c7:df43:7dc3:ae39?
 (p200300d82f22060053c7df437dc3ae39.dip0.t-ipconnect.de.
 [2003:d8:2f22:600:53c7:df43:7dc3:ae39])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3bb676c9a72sm11554512f8f.34.2025.08.17.23.58.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 17 Aug 2025 23: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>
X-Inumbo-ID: d4885741-7c00-11f0-a329-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1755500345;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=tPhHppo9Id9H3Mf+xNXwTczb/fY9tmDFofhTHWpEmEI=;
	b=LRCUF7pX9oBGT+Cbdyw6S2hNEICrsJlS8hwR5s5YYZ74GAxy4RFnQKydbSdiY3H9yw6/b0
	a2uwfFlJMYtCwAYmzbiETxJj8DJqwlJGcNnrpLuA88N4rqLaZ0vh/H1yPWBJhtbgH4978U
	1XJGmP90jSJ2jejobUQLd64276p8md8=
X-MC-Unique: de82_TqLPDe1pTVrsCi2wA-1
X-Mimecast-MFC-AGG-ID: de82_TqLPDe1pTVrsCi2wA_1755500343
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755500342; x=1756105142;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :from:references:cc:to:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=tPhHppo9Id9H3Mf+xNXwTczb/fY9tmDFofhTHWpEmEI=;
        b=Ce5TTDh9BMT++mGVZkxWEkKDdmx5m18DwtQSuGHjRS7+9isQM3+ouE803WyLamrGbn
         SHpex0zNg+EVoachoSxYmBYAg35sAJPYDWUa+NXCCMxselVow13FZJsFKTHgkyae0kp1
         fCkkpN5PWu4/7+Q74TAbvEg16MAMcsRuFbKHG276gTJC9O7TBLALhdw+7wU9owovzw56
         HBMC25rbDhW0qnRpa52IAAlEi3cIZUkIMCzQBEF149AqO+k91eID8QuM3JSH/OSB3/78
         GIkHH3UpNVWTK8BPu3am1YOVgIcHKfkNhFWQLXFBFIyShnx5dMPowmCcrBEVnJi81ny4
         H9Jw==
X-Forwarded-Encrypted: i=1; AJvYcCWAp1YMy1+aibOxvU78LhdaTlMYLyCrOuFb8HTXhsx3PFcqLtU86Yy97DSeB1rzAB+DmvOoJuZD0cQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyJ723CoAesmJaL76VZqRl7+UgamPVR/3LCG7yYvyGDWdJFNiET
	U6AaI1I/50SwMFpUUsBV63VeOoCNDoUUWUE61xGDfEqbvH/aeVd3YJZNob8rSy0+ldb4xRO6aWL
	aEFrqvnUMaP9GdDg0aUO5iavO2/2V9lld8sSDrhuX/5s2K7qkpLOVN8QyiLVU/nk/xPeQ
X-Gm-Gg: ASbGncv7HvoLA+RSfkveqDGj+7WCh+TJScFq/wyFtrhnyz5+Q2+GZO4Ildf/WxkkDjb
	EYJhbcahzwzGDJy4yU0TFutucsPPryxj4f8CW1vmzgEq3FlWR+vwcfftDKoYgt8awv8qsVgqfRT
	P871NNRcOLfSHtBpdlE69srE98sKkEpnqLkfNCtFBJ4vgf8bKZVAqOsLn0Gvg6bjqzTAYN18bWI
	jBa9Q85Cfi0OVN3sTKN+9VNiudcHP8hG1do38YyiUjPybQX013le95wbDv2j1VG5Bop6ekjcTMB
	9OyEhROZcvNC+3IPl4YyXbt6dVc7ti5VD6WXtihw8zTqWEocJQZpXW8oO9E+BLx2Hqxwn4Wdui1
	0mF9qdPQQJgHewx0Ky3mq+/ugD+0mZIrLAdXxNlerZFma8qITC+fmrFnHuVGVNXAp
X-Received: by 2002:a05:600c:3b0e:b0:458:aed1:f82c with SMTP id 5b1f17b1804b1-45a21844ae1mr69168855e9.22.1755500342388;
        Sun, 17 Aug 2025 23:59:02 -0700 (PDT)
X-Google-Smtp-Source: AGHT+IFRjJq0XIQ1oLnzV4tapEXxp+CDryL3RteLWPsUBJ810j9eh5EZSzNq0LPGyZErkVrGEekgEg==
X-Received: by 2002:a05:600c:3b0e:b0:458:aed1:f82c with SMTP id 5b1f17b1804b1-45a21844ae1mr69168235e9.22.1755500341938;
        Sun, 17 Aug 2025 23:59:01 -0700 (PDT)
Message-ID: <d7cdb65d-c241-478c-aa01-bc1a5f188e4f@redhat.com>
Date: Mon, 18 Aug 2025 08:58:59 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] mm/numa: Rename memory_add_physaddr_to_nid to
 memory_get_phys_to_nid
To: pratyush.brahma@oss.qualcomm.com,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Heiko Carstens <hca@linux.ibm.com>, Vasily Gorbik <gor@linux.ibm.com>,
 Alexander Gordeev <agordeev@linux.ibm.com>,
 Christian Borntraeger <borntraeger@linux.ibm.com>,
 Sven Schnelle <svens@linux.ibm.com>, "Rafael J. Wysocki"
 <rafael@kernel.org>, Len Brown <lenb@kernel.org>,
 Dan Williams <dan.j.williams@intel.com>,
 Vishal Verma <vishal.l.verma@intel.com>, Dave Jiang <dave.jiang@intel.com>,
 Ira Weiny <ira.weiny@intel.com>, Oscar Salvador <osalvador@suse.de>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 Danilo Krummrich <dakr@kernel.org>, Davidlohr Bueso <dave@stgolabs.net>,
 Jonathan Cameron <jonathan.cameron@huawei.com>,
 Alison Schofield <alison.schofield@intel.com>,
 "K. Y. Srinivasan" <kys@microsoft.com>,
 Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>,
 Dexuan Cui <decui@microsoft.com>, Pankaj Gupta
 <pankaj.gupta.linux@gmail.com>, "Michael S. Tsirkin" <mst@redhat.com>,
 Jason Wang <jasowang@redhat.com>, Xuan Zhuo <xuanzhuo@linux.alibaba.com>,
 =?UTF-8?Q?Eugenio_P=C3=A9rez?= <eperezma@redhat.com>,
 Juergen Gross <jgross@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Andrew Morton <akpm@linux-foundation.org>, Mike Rapoport <rppt@kernel.org>
Cc: linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org,
 linux-s390@vger.kernel.org, linux-acpi@vger.kernel.org,
 nvdimm@lists.linux.dev, linux-mm@kvack.org, linux-cxl@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 xen-devel@lists.xenproject.org
References: <20250818-numa_memblks-v1-1-9eb29ade560a@oss.qualcomm.com>
From: David Hildenbrand <david@redhat.com>
Autocrypt: addr=david@redhat.com; keydata=
 xsFNBFXLn5EBEAC+zYvAFJxCBY9Tr1xZgcESmxVNI/0ffzE/ZQOiHJl6mGkmA1R7/uUpiCjJ
 dBrn+lhhOYjjNefFQou6478faXE6o2AhmebqT4KiQoUQFV4R7y1KMEKoSyy8hQaK1umALTdL
 QZLQMzNE74ap+GDK0wnacPQFpcG1AE9RMq3aeErY5tujekBS32jfC/7AnH7I0v1v1TbbK3Gp
 XNeiN4QroO+5qaSr0ID2sz5jtBLRb15RMre27E1ImpaIv2Jw8NJgW0k/D1RyKCwaTsgRdwuK
 Kx/Y91XuSBdz0uOyU/S8kM1+ag0wvsGlpBVxRR/xw/E8M7TEwuCZQArqqTCmkG6HGcXFT0V9
 PXFNNgV5jXMQRwU0O/ztJIQqsE5LsUomE//bLwzj9IVsaQpKDqW6TAPjcdBDPLHvriq7kGjt
 WhVhdl0qEYB8lkBEU7V2Yb+SYhmhpDrti9Fq1EsmhiHSkxJcGREoMK/63r9WLZYI3+4W2rAc
 UucZa4OT27U5ZISjNg3Ev0rxU5UH2/pT4wJCfxwocmqaRr6UYmrtZmND89X0KigoFD/XSeVv
 jwBRNjPAubK9/k5NoRrYqztM9W6sJqrH8+UWZ1Idd/DdmogJh0gNC0+N42Za9yBRURfIdKSb
 B3JfpUqcWwE7vUaYrHG1nw54pLUoPG6sAA7Mehl3nd4pZUALHwARAQABzSREYXZpZCBIaWxk
 ZW5icmFuZCA8ZGF2aWRAcmVkaGF0LmNvbT7CwZoEEwEIAEQCGwMCF4ACGQEFCwkIBwICIgIG
 FQoJCAsCBBYCAwECHgcWIQQb2cqtc1xMOkYN/MpN3hD3AP+DWgUCaJzangUJJlgIpAAKCRBN
 3hD3AP+DWhAxD/9wcL0A+2rtaAmutaKTfxhTP0b4AAp1r/eLxjrbfbCCmh4pqzBhmSX/4z11
 opn2KqcOsueRF1t2ENLOWzQu3Roiny2HOU7DajqB4dm1BVMaXQya5ae2ghzlJN9SIoopTWlR
 0Af3hPj5E2PYvQhlcqeoehKlBo9rROJv/rjmr2x0yOM8qeTroH/ZzNlCtJ56AsE6Tvl+r7cW
 3x7/Jq5WvWeudKrhFh7/yQ7eRvHCjd9bBrZTlgAfiHmX9AnCCPRPpNGNedV9Yty2Jnxhfmbv
 Pw37LA/jef8zlCDyUh2KCU1xVEOWqg15o1RtTyGV1nXV2O/mfuQJud5vIgzBvHhypc3p6VZJ
 lEf8YmT+Ol5P7SfCs5/uGdWUYQEMqOlg6w9R4Pe8d+mk8KGvfE9/zTwGg0nRgKqlQXrWRERv
 cuEwQbridlPAoQHrFWtwpgYMXx2TaZ3sihcIPo9uU5eBs0rf4mOERY75SK+Ekayv2ucTfjxr
 Kf014py2aoRJHuvy85ee/zIyLmve5hngZTTe3Wg3TInT9UTFzTPhItam6dZ1xqdTGHZYGU0O
 otRHcwLGt470grdiob6PfVTXoHlBvkWRadMhSuG4RORCDpq89vu5QralFNIf3EysNohoFy2A
 LYg2/D53xbU/aa4DDzBb5b1Rkg/udO1gZocVQWrDh6I2K3+cCs7BTQRVy5+RARAA59fefSDR
 9nMGCb9LbMX+TFAoIQo/wgP5XPyzLYakO+94GrgfZjfhdaxPXMsl2+o8jhp/hlIzG56taNdt
 VZtPp3ih1AgbR8rHgXw1xwOpuAd5lE1qNd54ndHuADO9a9A0vPimIes78Hi1/yy+ZEEvRkHk
 /kDa6F3AtTc1m4rbbOk2fiKzzsE9YXweFjQvl9p+AMw6qd/iC4lUk9g0+FQXNdRs+o4o6Qvy
 iOQJfGQ4UcBuOy1IrkJrd8qq5jet1fcM2j4QvsW8CLDWZS1L7kZ5gT5EycMKxUWb8LuRjxzZ
 3QY1aQH2kkzn6acigU3HLtgFyV1gBNV44ehjgvJpRY2cC8VhanTx0dZ9mj1YKIky5N+C0f21
 zvntBqcxV0+3p8MrxRRcgEtDZNav+xAoT3G0W4SahAaUTWXpsZoOecwtxi74CyneQNPTDjNg
 azHmvpdBVEfj7k3p4dmJp5i0U66Onmf6mMFpArvBRSMOKU9DlAzMi4IvhiNWjKVaIE2Se9BY
 FdKVAJaZq85P2y20ZBd08ILnKcj7XKZkLU5FkoA0udEBvQ0f9QLNyyy3DZMCQWcwRuj1m73D
 sq8DEFBdZ5eEkj1dCyx+t/ga6x2rHyc8Sl86oK1tvAkwBNsfKou3v+jP/l14a7DGBvrmlYjO
 59o3t6inu6H7pt7OL6u6BQj7DoMAEQEAAcLBfAQYAQgAJgIbDBYhBBvZyq1zXEw6Rg38yk3e
 EPcA/4NaBQJonNqrBQkmWAihAAoJEE3eEPcA/4NaKtMQALAJ8PzprBEXbXcEXwDKQu+P/vts
 IfUb1UNMfMV76BicGa5NCZnJNQASDP/+bFg6O3gx5NbhHHPeaWz/VxlOmYHokHodOvtL0WCC
 8A5PEP8tOk6029Z+J+xUcMrJClNVFpzVvOpb1lCbhjwAV465Hy+NUSbbUiRxdzNQtLtgZzOV
 Zw7jxUCs4UUZLQTCuBpFgb15bBxYZ/BL9MbzxPxvfUQIPbnzQMcqtpUs21CMK2PdfCh5c4gS
 sDci6D5/ZIBw94UQWmGpM/O1ilGXde2ZzzGYl64glmccD8e87OnEgKnH3FbnJnT4iJchtSvx
 yJNi1+t0+qDti4m88+/9IuPqCKb6Stl+s2dnLtJNrjXBGJtsQG/sRpqsJz5x1/2nPJSRMsx9
 5YfqbdrJSOFXDzZ8/r82HgQEtUvlSXNaXCa95ez0UkOG7+bDm2b3s0XahBQeLVCH0mw3RAQg
 r7xDAYKIrAwfHHmMTnBQDPJwVqxJjVNr7yBic4yfzVWGCGNE4DnOW0vcIeoyhy9vnIa3w1uZ
 3iyY2Nsd7JxfKu1PRhCGwXzRw5TlfEsoRI7V9A8isUCoqE2Dzh3FvYHVeX4Us+bRL/oqareJ
 CIFqgYMyvHj7Q06kTKmauOe4Nf0l0qEkIuIzfoLJ3qr5UyXc2hLtWyT9Ir+lYlX9efqh7mOY
 qIws/H2t
In-Reply-To: <20250818-numa_memblks-v1-1-9eb29ade560a@oss.qualcomm.com>
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: g85hwN_bX86_dqEsJMzW16nlPriRvPIanBacnid7uE8_1755500343
X-Mimecast-Originator: redhat.com
Content-Language: en-US
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 18.08.25 08:41, pratyush.brahma@oss.qualcomm.com wrote:
> From: Pratyush Brahma <pratyush.brahma@oss.qualcomm.com>
> 
> The function `memory_add_physaddr_to_nid` seems a misnomer.
> It does not to "add" a physical address to a NID mapping,
> but rather it gets the NID associated with a given physical address.

You probably misunderstood what the function is used for: memory hotplug 
aka "memory_add".

This patch is making matters worse by stripping that detail, unfortunately.


-- 
Cheers

David / dhildenb



From xen-devel-bounces@lists.xenproject.org Mon Aug 18 07:38:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 07:38:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085430.1443710 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unuRk-0001e5-MF; Mon, 18 Aug 2025 07:38:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085430.1443710; Mon, 18 Aug 2025 07:38: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 1unuRk-0001dy-Jc; Mon, 18 Aug 2025 07:38:24 +0000
Received: by outflank-mailman (input) for mailman id 1085430;
 Mon, 18 Aug 2025 07:38:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=q+DX=26=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1unuRi-0001ds-GR
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 07:38:22 +0000
Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com
 [2a00:1450:4864:20::52c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4e3da4c1-7c06-11f0-b898-0df219b8e170;
 Mon, 18 Aug 2025 09:38:17 +0200 (CEST)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-618aea78f23so3276675a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 00:38: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
 4fb4d7f45d1cf-618af9da4bdsm6633733a12.17.2025.08.18.00.38.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Aug 2025 00:38: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>
X-Inumbo-ID: 4e3da4c1-7c06-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755502697; x=1756107497; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=bem4tcqZ6fgCy6luMAU3MbQM+UTYmudC9/uPsrxA6eE=;
        b=VkwSVX2YPM8S/ZP6C+UUkis9cVyUJstXLAUBKVqg+1reYTmjkd6fzPgnYJfxe1gn1x
         5Iv3T7ckhCf74TT4vDMCMEJ9oi+bMeV6D3YvVQILGJVJBJYU1/SEctvCZsgG8e5S+mlw
         4JtCJVLyNpR8voseKd6ppjFpla1oKiBpWuT4Jm+T46f/Ip2vLbIs0YGkZa01GnwzbZxm
         7JQPZKld/QMRuquVNGpn2HIz0LjW3HlwDv24RoMkXffEM2MAQmQ91BJnV7BInb5LxyiX
         krqOZSO/2vOuCVHwWkVLbjegyEVmhPsZMkBE06HdDfLUeje9Z+GR5TAkGtxNecPegEm8
         0e0A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755502697; x=1756107497;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bem4tcqZ6fgCy6luMAU3MbQM+UTYmudC9/uPsrxA6eE=;
        b=L5Z6/vYMJEwGKiGl/AbhH1dIkNK8+45Pf2z3qdoIJRKCMcCYfmwwkFA8P/xtHIBSCQ
         vwvKyifenSNH0gyUSuxdAzzNQnoMgPBHlmDAZnNF0cl3u+D+PoztNLGkXVbOz/+soy2v
         UXCD5AwOXqECHLPvfFdzrY9cbxMbmFCghnldA+dJAROdailFN9D59KFAoHzQbdzJ0hPM
         YXi39j5br8YTp+mcGZg7rYzFU3M9HyDgfb3fMs9dBBhztlbpQbrV4ce6P21+PFVYroHZ
         zhGuGls8XTk8miWq1p/JcUaFPB30n6V3qWo2TbryqLDOYDbr92irsEMUVGOavXijZ4/A
         LmlQ==
X-Forwarded-Encrypted: i=1; AJvYcCVVSj1Vl6k5H04EVPVMq1DUHxA2kBOYbJIMcIj1PwP0UtpYdirzTsNl8I3v9XVHvFgHzptDkJAOrXk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxStk28K5rCmrH6a1M1/dDHTKZFnf/KYYXZfV2cHy07uV/ZgSVv
	qAAUp2TGfCG1c3DsG+E1KCIezeb8OncJqcpekeJoJiRTrA89xHNJPIoBHdEVWy+PzQ==
X-Gm-Gg: ASbGncvA4zim9YlcT5XeAlfGSs8N6YuNf2AIDT1xeapHm/KJ7u7fpq0ATfzHSfUTnby
	k3fPSEPrrW8Wy/ruePVhfpXhIF21WjL7s6SDt1QgkTzHHwdGp/6Xs7HR5EMRoYcPSO4svj8j26L
	65iiItQnTSVVO9cNmXWMf33Mx9Ygwt826QRuOGbqWyGYCq8Xk9kQAoqlifj1p93RDfW2toHxU5Y
	rDFAavGtCfcD6U2gyyOl2ywZ3iAEMSSVNwCokbKynPQv+42dljvy71ROgLbchAhSyuR+uc+aULM
	gtr9WU6ZSaiJsPt9R0RGGr/hFlm9O8dRnUMbpdlmY/s8GPLbhq8NdCodblMV+MElLiz2jUzeh4F
	TkddRnI4Go3GfhG/ZtpstuCTdpuXnkSUsdFiw9BxMlUTOQcHd9HTJV7kTYgwG8ACCpaXJ91wERW
	X7pejMFWw=
X-Google-Smtp-Source: AGHT+IEQlIrEbOyUZPI/mZsm6GdT/7oVV4fKU8PXxvDT9cGKY+5egHnf0ZwPeH2imCp0n29l424p8g==
X-Received: by 2002:a05:6402:1e8a:b0:618:7585:be40 with SMTP id 4fb4d7f45d1cf-618b054b91fmr8712353a12.17.1755502696294;
        Mon, 18 Aug 2025 00:38:16 -0700 (PDT)
Message-ID: <17ab13e4-1fba-4c43-ba32-be512e66621e@suse.com>
Date: Mon, 18 Aug 2025 09:38:15 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] docs/misra: fix sphinx-build issues
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <f31b8d62f16bd272114276f53db842101cd53e52.1755266805.git.dmytro_prokopchuk1@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <f31b8d62f16bd272114276f53db842101cd53e52.1755266805.git.dmytro_prokopchuk1@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.08.2025 16:15, Dmytro Prokopchuk1 wrote:
> Fix the following issues:
> 1. xen/docs/misra/deviations.rst:90: WARNING: Inline interpreted text or
> phrase reference start-string without end-string. [docutils]
> 2. xen/docs/misra/deviations.rst:54: ERROR: Error parsing content block
> for the "list-table" directive: uniform two-level bullet list expected,
> but row 6 does not contain the same number of items as row 1 (2 vs 3).
> * - R2.1
>   - Calls to the `__builtin_unreachable()` function inside the expansion of
>     the `ASSERT_UNREACHABLE()` macro may cause a function to be marked as
>     non-returning. This behavior occurs only in configurations where
>     assertions are enabled. To address this, the `noreturn` property for
>     `__builtin_unreachable()` is overridden in these contexts, resulting in
>     the absence of reports that do not have an impact on safety, despite
>     being true positives.
>     Xen expects developers to ensure code remains safe and reliable in builds,
>     even when debug-only assertions like `ASSERT_UNREACHABLE() are removed.
> 3. xen/docs/misra/rules.rst:127: WARNING: Inline interpreted text or phrase
> reference start-string without end-string. [docutils]
> 4. remove backticks from references to source code in the file rules.rst
> to have a consistent style in this file

I don't understand this: For one, why remove quotation? Personally I
consider such quoting useful. And then ...

> --- a/docs/misra/deviations.rst
> +++ b/docs/misra/deviations.rst
> @@ -95,7 +95,8 @@ Deviations related to MISRA C:2012 Rules:
>         the absence of reports that do not have an impact on safety, despite
>         being true positives.
>         Xen expects developers to ensure code remains safe and reliable in builds,
> -       even when debug-only assertions like `ASSERT_UNREACHABLE() are removed.
> +       even when debug-only assertions like `ASSERT_UNREACHABLE()` are removed.
> +     - ECLAIR has been configured to ignore those statements.

... backticks are still kept here (kind of in line with what you say in
4, but still somewhat puzzling). Whereas what you remove ...

> --- a/docs/misra/rules.rst
> +++ b/docs/misra/rules.rst
> @@ -119,12 +119,12 @@ maintainers if you want to suggest a change.
>           - 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')
> +           assembly code (e.g. do_trap_fiq)

... e.g. here are single quotes.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 07:42:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 07:42:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085475.1443788 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unuVt-0004Bm-0H; Mon, 18 Aug 2025 07:42:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085475.1443788; Mon, 18 Aug 2025 07:42: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 1unuVs-0004Bf-Tg; Mon, 18 Aug 2025 07:42:40 +0000
Received: by outflank-mailman (input) for mailman id 1085475;
 Mon, 18 Aug 2025 07:42:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=AAy/=26=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1unuVr-0004BI-5r
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 07:42:39 +0000
Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com
 [2a00:1450:4864:20::429])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e9a4ab16-7c06-11f0-a329-13f23c93f187;
 Mon, 18 Aug 2025 09:42:38 +0200 (CEST)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-3b9e41101d4so2012910f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 00:42:38 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3bb6484ebfdsm11620505f8f.7.2025.08.18.00.42.36
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 18 Aug 2025 00:42: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>
X-Inumbo-ID: e9a4ab16-7c06-11f0-a329-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755502957; x=1756107757; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=yecjhFxDU+7ON3aoGiaI2+YdtwJIrs35dIO/yxBltB0=;
        b=EydYCCFn25vevSCg6USPTM0nTS0MaWNyhXhINZe/kMXYhfMZ4IwZ1jYxfgVnNifBGA
         1zlfYNvksVWCuERJgkOPpNVpoXTBSLAFmgVJIbAM18BRGe9qLQEY6f8+XMc1bcef6dCG
         Y9KmeM63i0yRBnOrg4II4ySUhiEwUjClAQTNA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755502957; x=1756107757;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=yecjhFxDU+7ON3aoGiaI2+YdtwJIrs35dIO/yxBltB0=;
        b=CD1yZmlJor0k99Ld3MWNVMxOGR3eJ4uvr9xt9h6LEhdwR86b1r2s2rnzzX4suF7gs9
         0FA6rRQWnxbov9inytIthSafdyTM/eM0TNNtlkfA4F41yBHUrO//HB1VYEUT4Q0dJK8x
         kLNLVS2C4cESqvlaWyIRDakN7SsC2JEsviIV3K/EH90nLaN7LC4JjsBEMhuQc96LzXLn
         9CLPeUSX10K/aLNxD0TpWxlvOw9ntMX4YnQL192wO5Gs8tCvbtsiUjop72KvAWqBMHkz
         oZGXvxPzOCYDUWGh3X+jQhbwNqpBmVYBlGOUt9okA647v98WKcAxI9tYBjpvlmk3i8nJ
         HEUw==
X-Gm-Message-State: AOJu0YxBU1yuUORTlYbug364SMJdlhZqqZ9KuJjM/EkdC7YW5srrn05g
	/LaiiP5p3c4StiZF6w3djkyC2r8np5FtACG44F/Gwmg73D0NYDGfI1fiGKspU3OQARo=
X-Gm-Gg: ASbGncuR58XKkH12Wy6EebW22MInKpmUaP2+gKfgs6oXUQkTsacv21C8PuZj5TL4ruV
	Lon8f586NbUek1d2R1o5VKFnpTEcvuMoThFmIPokmUQkverGxVs5hHDSPH0kCHwxPG+iN1cYRPX
	/znDH5kTiiLWkt7SiWEfLYM4lZa72VCBVAUaV6NgOIQeM2WNtGeCJ+AJHSzXhGT7xhmMF8xVxc1
	wGH3+aVlSnwDEpn74uCO1rAceLrZERTQonB9rgvYOWQ0AtETXvAvzM2m8kUn/o6IZ7IdOYiA5nv
	4I9lE/7O0nRwPxI9Gn7AQyBEikyhPf1FNuEpTTxpHgbbu2rPLYalKkhBEa++/Inlfq5zfXgDYuk
	CUOdjZH+jNA4rHmMeIAi/XVZ0sw9Bo31eaR1Mt4jFi2wgaTSYE6zCEYaht1AICJ7IQw==
X-Google-Smtp-Source: AGHT+IHc4+fTiG8ca2srRKBQ7URCmrMhhdIBd5Z/Ki9XX7Lg3pkV+wNZYKKW3kmhMG/0OgbPoi2P0g==
X-Received: by 2002:a5d:5888:0:b0:3b7:820b:a830 with SMTP id ffacd0b85a97d-3bb676c93cdmr8682614f8f.25.1755502957480;
        Mon, 18 Aug 2025 00:42:37 -0700 (PDT)
Date: Mon, 18 Aug 2025 09:42:36 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Stewart Hildebrand <stewart.hildebrand@amd.com>
Cc: xen-devel@lists.xenproject.org, Jiqian.Chen@amd.com, jbeulich@suse.com
Subject: Re: [PATCH 2/5] xen/vpci: make BAR mapping more resilient for the
 hardware domain
Message-ID: <aKLZbNSltqqbXWk0@macbook.local>
References: <20250814160358.95543-1-roger.pau@citrix.com>
 <20250814160358.95543-3-roger.pau@citrix.com>
 <269db2aa-9ca1-446b-98f7-60ea2386fc03@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <269db2aa-9ca1-446b-98f7-60ea2386fc03@amd.com>

On Fri, Aug 15, 2025 at 02:53:35PM -0400, Stewart Hildebrand wrote:
> On 8/14/25 12:03, Roger Pau Monne wrote:
> > The logic in map_range() will bubble up failures to the upper layer, which
> > will result in any remaining regions being skip, and for the non-hardware
> > domain case the owner domain of the device would be destroyed.  However for
> > the hardware domain the intent is to continue execution, hopping the
> > failure to modify the p2m could be worked around by the hardware domain.
> > 
> > To accomplish that in a better way, ignore failures and skip the range in
> > that case, possibly continuing to map further ranges.
> > 
> > Since the error path in vpci_process_pending() should only be used by domUs
> > now, and it will unconditionally end up calling domain_crash(), simplify
> > it: there's no need to cleanup if the domain will be destroyed.
> > 
> > No functional change for domUs intended.
> > 
> > Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> > ---
> >  xen/drivers/vpci/header.c | 51 +++++++++++++++++++++------------------
> >  1 file changed, 28 insertions(+), 23 deletions(-)
> > 
> > diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
> > index b9756b364300..1035dcca242d 100644
> > --- a/xen/drivers/vpci/header.c
> > +++ b/xen/drivers/vpci/header.c
> > @@ -64,7 +64,8 @@ static int cf_check map_range(
> >              printk(XENLOG_G_WARNING
> >                     "%pd denied access to MMIO range [%#lx, %#lx]\n",
> >                     map->d, map_mfn, m_end);
> > -            return -EPERM;
> > +            rc = -EPERM;
> > +            goto done;
> >          }
> >  
> >          rc = xsm_iomem_mapping(XSM_HOOK, map->d, map_mfn, m_end, map->map);
> > @@ -73,7 +74,7 @@ static int cf_check map_range(
> >              printk(XENLOG_G_WARNING
> >                     "%pd XSM denied access to MMIO range [%#lx, %#lx]: %d\n",
> >                     map->d, map_mfn, m_end, rc);
> > -            return rc;
> > +            goto done;
> >          }
> >  
> >          /*
> > @@ -87,17 +88,27 @@ static int cf_check map_range(
> >  
> >          rc = map->map ? map_mmio_regions(map->d, _gfn(s), size, _mfn(map_mfn))
> >                        : unmap_mmio_regions(map->d, _gfn(s), size, _mfn(map_mfn));
> > -        if ( rc == 0 )
> > -        {
> > -            *c += size;
> > -            break;
> > -        }
> >          if ( rc < 0 )
> >          {
> >              printk(XENLOG_G_WARNING
> >                     "Failed to %smap [%lx %lx] -> [%lx %lx] for %pd: %d\n",
> >                     map->map ? "" : "un", s, e, map_mfn,
> >                     map_mfn + size, map->d, rc);
> > +            goto done;
> > +        }
> > +        if ( rc == 0 )
> > +        {
> > + done:
> > +            if ( is_hardware_domain(map->d) )
> > +            {
> > +                /*
> > +                 * Ignore failures for the hardware domain and skip the range.
> > +                 * Do it as a best effort workaround to attempt to get the
> > +                 * hardware domain to boot.
> > +                 */
> > +                rc = 0;
> 
> If we return success and size is zero, we will potentially attempt to map/unmap
> the same region again in an infinite loop. rangeset_consume_ranges would invoke
> map_range again directly without returning to vpci_process_pending.
> 
> > +                *c += size;
> 
> This line is now only executed for hwdom, but ...
> 
> > +            }
> 
> ... it should go outside of the hwdom check because domUs still need it.
> 
> >              break;
> >          }
> >          ASSERT(rc < size);
> > @@ -213,28 +224,22 @@ bool vpci_process_pending(struct vcpu *v)
> >              return true;
> >          }
> >  
> > -        if ( rc )
> > +        if ( rc && !is_hardware_domain(v->domain) )
> >          {
> > -            spin_lock(&pdev->vpci->lock);
> > -            /* Disable memory decoding unconditionally on failure. */
> > -            modify_decoding(pdev, v->vpci.cmd & ~PCI_COMMAND_MEMORY,
> > -                            false);
> 
> This path could be taken for either map or unmap. Do we still want to disable
> memory decoding in case of unmap?

Does it make an effective difference?  For the hardware domain we
should never get here, and for domUs the domain will be destroyed, so
disabling memory decoding is not helpful?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 07:43:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 07:43:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085480.1443799 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unuWE-0004b4-8o; Mon, 18 Aug 2025 07:43:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085480.1443799; Mon, 18 Aug 2025 07:43: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 1unuWE-0004ax-5Q; Mon, 18 Aug 2025 07:43:02 +0000
Received: by outflank-mailman (input) for mailman id 1085480;
 Mon, 18 Aug 2025 07:43:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=q+DX=26=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1unuWC-0004BI-L7
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 07:43:00 +0000
Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com
 [2a00:1450:4864:20::62f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f6a17376-7c06-11f0-a329-13f23c93f187;
 Mon, 18 Aug 2025 09:42:59 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-afca3e71009so723144666b.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 00:42:59 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afcdcfccd8esm759349666b.65.2025.08.18.00.42.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Aug 2025 00:42:58 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f6a17376-7c06-11f0-a329-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755502979; x=1756107779; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=qrzJWwBLEUVUnt82XwUlToFnEvElvx7yFJrOrM7Iy8E=;
        b=TIxReLxR7gS/yFxFcPMaBEZan/gpDq1a1pqeQ+h81Xjd6qD8YDpuoCBUkcKx+T1mH3
         qgprEBEmvEZ5ufDN8P9OYmTPy+SGcjjbVMyiBs8eckhJ0a9xfJLLduxKH0nuVI/5eVDI
         GQhUTuwXWtQMblqBGa/1gtwEKCnKR7G8XZVwiktchbt1OOOHK/Fdv8Q221g+HFZF3nGC
         wqhgivRSir50hoo3JZB4AXYQNvePKHl15DEULDU1xwy37X+YD5U9ftbOABpy1CNSdFZa
         W+TwZNxlQ582pZkP0J+nOe33xBBxKS+5IOigiXJ/4lRT/Uk6qn3Uw9gQ1TEXJkqEcIbH
         /P6A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755502979; x=1756107779;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qrzJWwBLEUVUnt82XwUlToFnEvElvx7yFJrOrM7Iy8E=;
        b=RClhOVedZ8PqAQXREtTLXZMPutJN2HaaUcaeaGZUogqtARiOjiDxbmPk6IOuAb9ioc
         gjPGZjF3/27Mn+pts676e2fvKd6qlW5k0jo/Fez8vDnHm/QR897E5SfdEME23ITtrkBX
         xalqZqbAoe1zAdTtIDkXGQeKhNNDLhaJIFpOswsqnHpI0EzqBvaPTvGynZygx4vDjVR+
         7aqSZnMDX40cKspJHsQ8FrM0Q+YybfIpBhOsz1ByV/GypgP+TC0rW0GV61ALf+tGZGHv
         2cGx5Mjhrd21MYX3FusJ2PyK0rqJb6ZWlOPSEK8ZlA1SYwFcJKXlWprDWfksQID5Bter
         WZQA==
X-Forwarded-Encrypted: i=1; AJvYcCVOSktUPc6NVVfF11RULZyCJe7jkVk47A8yQ8peR+e/GCkPlppBhKg3tSrmFaOhMVWLdWbANzACWtY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyVm3b1fJP2QHJOxRlNyfe3j2bTwg4dkF5pHWGaYl2raCVrL4TN
	LsmPbZ2PYCHJCi+451QO8Nod9tsn8qTWtUmPYwZDmeELT/0bBoTrvnlRnjBqPNQDHg==
X-Gm-Gg: ASbGncs1qSgYL5V/O15KZHXJcmB4L4RY7r/9I/XNS4mJ3VK6mBPMRgcJyjbMGT+tOQX
	8jYM01DCSOEu0A6K9BwQ/LXQQO/6kmNHtnSaXJZrJjCdW96ACotGMq1+nJWKW58eXtKpY1anHY8
	X+nmJY6fbjhr/xrU27oFMk1mlVT9fPFB9p39Dd/mqAc3XKqf3ueq1tzzQ9Nn4aSiraimLwH8QLJ
	NBwaH+gsvGR7iz6PIHUPUY3vtEUa6hw+LJ0kYsZmTfUMg3ygR5dNg4TuAgV6Bozo4FDAff+9FJ+
	YzBMS+hbu4m0WLHfytDwDtwld1qA3T0ofojir2NfY8lptd0uRAXMdhebc/abo7w5ImHDjC+rSs8
	7Mav5kmlHcEB+FsF+Q0sfsyjwkOFQ9veMEb3WTIQ3gfYWIZ/z8u0qWXWPZP7OvXIQk4LjeRH8Ls
	wQuAngIJ0mY4pyKdHdnQ==
X-Google-Smtp-Source: AGHT+IH1HwrWBuZG6lmtDLBKROUuEdAX7XZt7LLgrJowOv6D6ZospaeblEHOEWRM2NCmXG9Nstpgow==
X-Received: by 2002:a17:907:1c1d:b0:af9:3f99:1422 with SMTP id a640c23a62f3a-afcbd5cbd9fmr1451036766b.5.1755502979174;
        Mon, 18 Aug 2025 00:42:59 -0700 (PDT)
Message-ID: <6330d03a-b228-4946-bb5e-c0142d0df6c8@suse.com>
Date: Mon, 18 Aug 2025 09:42:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] tools/xl: hide xenstore-features behind option
To: Juergen Gross <jgross@suse.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Oleksii <oleksii.kurochko@gmail.com>, xen-devel@lists.xenproject.org
References: <20250815143236.27641-1-jgross@suse.com>
 <115eca26-32a3-403f-9bf6-553c6b20940c@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: <115eca26-32a3-403f-9bf6-553c6b20940c@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.08.2025 16:35, Juergen Gross wrote:
> + Release Manager

While this surely doesn't hurt, my understanding is that bug fixes don't
require release-acks just yet.

Jan

> On 15.08.25 16:32, Juergen Gross wrote:
>> In order to be able to use "xl info" before Xenstore has been started
>> or after it has crashed, hide obtaining the available Xenstore features
>> behind the new option "-x".
>>
>> Fixes: ecce7970cfe7 ("tools/xl: add available Xenstore features to xl info output")
>> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> Signed-off-by: Juergen Gross <jgross@suse.com>
>> ---
>>   docs/man/xl.1.pod.in     |  4 ++++
>>   docs/man/xl.cfg.5.pod.in |  2 +-
>>   tools/xl/xl_info.c       | 14 ++++++++++----
>>   3 files changed, 15 insertions(+), 5 deletions(-)
>>
>> diff --git a/docs/man/xl.1.pod.in b/docs/man/xl.1.pod.in
>> index fe38724b2b..88ccf7ad82 100644
>> --- a/docs/man/xl.1.pod.in
>> +++ b/docs/man/xl.1.pod.in
>> @@ -996,6 +996,10 @@ B<OPTIONS>
>>   
>>   List host NUMA topology information
>>   
>> +=item B<-x>, B<--xenstore>
>> +
>> +Show Xenstore features available.
>> +
>>   =back
>>   
>>   =item B<top>
>> diff --git a/docs/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.in
>> index f0c920b39d..acff45d308 100644
>> --- a/docs/man/xl.cfg.5.pod.in
>> +++ b/docs/man/xl.cfg.5.pod.in
>> @@ -743,7 +743,7 @@ condition.
>>   =back
>>   
>>   The features supported by the running Xenstore instance can be retrieved
>> -via the B<xl info> command in dom0.
>> +via the B<xl info -x> command in dom0.
>>   
>>   The default value is B<0xffffffff>, meaning that all possible Xenstore
>>   features are visible by the guest.
>> diff --git a/tools/xl/xl_info.c b/tools/xl/xl_info.c
>> index eb019e3ee9..d3583cbf8f 100644
>> --- a/tools/xl/xl_info.c
>> +++ b/tools/xl/xl_info.c
>> @@ -353,7 +353,7 @@ static void output_xenstore_info(void)
>>       xs_close(xsh);
>>   }
>>   
>> -static void print_info(int numa)
>> +static void print_info(int numa, bool xs)
>>   {
>>       output_nodeinfo();
>>   
>> @@ -365,7 +365,8 @@ static void print_info(int numa)
>>       }
>>       output_xeninfo();
>>   
>> -    output_xenstore_info();
>> +    if (xs)
>> +        output_xenstore_info();
>>   
>>       maybe_printf("xend_config_format     : 4\n");
>>   
>> @@ -631,14 +632,19 @@ int main_info(int argc, char **argv)
>>       int opt;
>>       static struct option opts[] = {
>>           {"numa", 0, 0, 'n'},
>> +        {"xenstore", 0, 0, 'x'},
>>           COMMON_LONG_OPTS
>>       };
>>       int numa = 0;
>> +    bool xs = false;
>>   
>> -    SWITCH_FOREACH_OPT(opt, "n", opts, "info", 0) {
>> +    SWITCH_FOREACH_OPT(opt, "nx", opts, "info", 0) {
>>       case 'n':
>>           numa = 1;
>>           break;
>> +    case 'x':
>> +        xs = true;
>> +        break;
>>       }
>>   
>>       /*
>> @@ -648,7 +654,7 @@ int main_info(int argc, char **argv)
>>       if (numa == 0 && argc > optind)
>>           info_name = argv[optind];
>>   
>> -    print_info(numa);
>> +    print_info(numa, xs);
>>       return 0;
>>   }
>>   
> 



From xen-devel-bounces@lists.xenproject.org Mon Aug 18 07:47:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 07:47:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085498.1443812 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unuaW-0005J7-RB; Mon, 18 Aug 2025 07:47:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085498.1443812; Mon, 18 Aug 2025 07:47:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unuaW-0005J0-Nz; Mon, 18 Aug 2025 07:47:28 +0000
Received: by outflank-mailman (input) for mailman id 1085498;
 Mon, 18 Aug 2025 07:47:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=AAy/=26=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1unuaW-0005Fu-7T
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 07:47:28 +0000
Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com
 [2a00:1450:4864:20::436])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 957d28b7-7c07-11f0-b898-0df219b8e170;
 Mon, 18 Aug 2025 09:47:26 +0200 (CEST)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-3b9edf504e6so1730051f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 00:47:26 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-45a1c6ce764sm160067735e9.10.2025.08.18.00.47.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 18 Aug 2025 00:47:21 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 957d28b7-7c07-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755503246; x=1756108046; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=eJVH+bWoszW05bZZxori3hPMjhrOcUefb8rm7OOztU8=;
        b=S9bjNR5N/qFGlvg1KnjZLW6c7sTNmdUfwD9l1ClYhe8o13c9KOwcGT5F1odEGo1D4K
         tsK8IdBeuwduUaC4AAWYAukYhHtfG5UJF2KOUZzEYr0vACqXXjZX01oeNMJYR+I6WzDG
         rqp44/8QDhWj2adiMvLXSE9TVUeMorBqXdsEI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755503246; x=1756108046;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=eJVH+bWoszW05bZZxori3hPMjhrOcUefb8rm7OOztU8=;
        b=ZgRshKDtkOnkJ6O78jdFMKOXdLs4o7EJPWJeBPoR2ZOOBLHdy/MbII9M5ayaS6WbHS
         ykK0XtnBuSNAI6fbiu4kmSVd5QiFkoxnU5G2pJk6cyq4opOUOXbLKncfRSqs4ZgBs/Fv
         tKALkrvXP1DqpNM9onBSNBiZCMCYUtcam1Yyu6Dvt0b4E0uiomt6Pz8dunRvyhO9G8N0
         N0h7DMYTP4gyh0J0HWyBQPAF/x9PCjq1eeGHjDZ3TbQ5m00e/x58eg73BDOg7kHwUBrR
         EK4RYiFntdxVpTK1TU5Pl9B/+qVOEUFuZli2nLa+Qy6D2DZLo+qRnVcZgAAJ1tua3dTV
         d0/Q==
X-Gm-Message-State: AOJu0Yy6l+mMN0+irbc97aMQblPWXCduXBgLDbP7dPt0wraorueLJMUB
	us0z1Ge+28qM674Uq6AHH9Zvn7JJBXam6SWf0uMWYw/zjYv2E+a3kG2yM/poBwx6nP0=
X-Gm-Gg: ASbGncu7WTGcoNI9/g0r8Rb21h/Vog82VZYAMAEwwdsMR88MwKCbLyyvSgIki0IPDZ8
	jHVDDUFDm4qRz2rtxu0mwhRj6ThA7aDhVshpi8LD+l9mSjVUF0WCiavmBWestL6E1qpy+wo0i0P
	QBcCpfUA0nCL01KB7qRe1NJL58rekLy4aXWrNYqNfOQQbmZ3dEeKkDwSmLIJ5Ze/tqHK8oaA3fs
	m/I+pZxvDAM1iDFiChTECjuPl4L912I5bODZ7DOcvcQ4fvtOa9onMW8u9CJT6+dGgshDb0RGk+9
	pDBnr3chDR8FNCNbjusjEkK73g4Ton3Vww5wLSgnDYJr7xBsLtYrSnkOMhCxdEqbGh1YwwD57eE
	7xdQIA6gxXdAaDmUBYggyZ8raeQYZhtPxAPSmwU3E6BKYXvGr0+J1JVp9hOPXYsVBiQ==
X-Google-Smtp-Source: AGHT+IF8ao7qhRrS0c8MZaQdJBJewoUcCurGJKqO/6C5LB79oyG3B6SG98yaOyLTEAOQj2EkY0tWMQ==
X-Received: by 2002:a05:6000:430c:b0:3b7:8984:5134 with SMTP id ffacd0b85a97d-3bb66a3b2ddmr8050979f8f.16.1755503241742;
        Mon, 18 Aug 2025 00:47:21 -0700 (PDT)
Date: Mon, 18 Aug 2025 09:47:20 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Stewart Hildebrand <stewart.hildebrand@amd.com>
Cc: xen-devel@lists.xenproject.org, Jiqian.Chen@amd.com, jbeulich@suse.com
Subject: Re: [PATCH 2/5] xen/vpci: make BAR mapping more resilient for the
 hardware domain
Message-ID: <aKLaiJYqIcC9Rr6r@macbook.local>
References: <20250814160358.95543-1-roger.pau@citrix.com>
 <20250814160358.95543-3-roger.pau@citrix.com>
 <269db2aa-9ca1-446b-98f7-60ea2386fc03@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <269db2aa-9ca1-446b-98f7-60ea2386fc03@amd.com>

On Fri, Aug 15, 2025 at 02:53:35PM -0400, Stewart Hildebrand wrote:
> On 8/14/25 12:03, Roger Pau Monne wrote:
> > The logic in map_range() will bubble up failures to the upper layer, which
> > will result in any remaining regions being skip, and for the non-hardware
> > domain case the owner domain of the device would be destroyed.  However for
> > the hardware domain the intent is to continue execution, hopping the
> > failure to modify the p2m could be worked around by the hardware domain.
> > 
> > To accomplish that in a better way, ignore failures and skip the range in
> > that case, possibly continuing to map further ranges.
> > 
> > Since the error path in vpci_process_pending() should only be used by domUs
> > now, and it will unconditionally end up calling domain_crash(), simplify
> > it: there's no need to cleanup if the domain will be destroyed.
> > 
> > No functional change for domUs intended.
> > 
> > Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> > ---
> >  xen/drivers/vpci/header.c | 51 +++++++++++++++++++++------------------
> >  1 file changed, 28 insertions(+), 23 deletions(-)
> > 
> > diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
> > index b9756b364300..1035dcca242d 100644
> > --- a/xen/drivers/vpci/header.c
> > +++ b/xen/drivers/vpci/header.c
> > @@ -64,7 +64,8 @@ static int cf_check map_range(
> >              printk(XENLOG_G_WARNING
> >                     "%pd denied access to MMIO range [%#lx, %#lx]\n",
> >                     map->d, map_mfn, m_end);
> > -            return -EPERM;
> > +            rc = -EPERM;
> > +            goto done;
> >          }
> >  
> >          rc = xsm_iomem_mapping(XSM_HOOK, map->d, map_mfn, m_end, map->map);
> > @@ -73,7 +74,7 @@ static int cf_check map_range(
> >              printk(XENLOG_G_WARNING
> >                     "%pd XSM denied access to MMIO range [%#lx, %#lx]: %d\n",
> >                     map->d, map_mfn, m_end, rc);
> > -            return rc;
> > +            goto done;
> >          }
> >  
> >          /*
> > @@ -87,17 +88,27 @@ static int cf_check map_range(
> >  
> >          rc = map->map ? map_mmio_regions(map->d, _gfn(s), size, _mfn(map_mfn))
> >                        : unmap_mmio_regions(map->d, _gfn(s), size, _mfn(map_mfn));
> > -        if ( rc == 0 )
> > -        {
> > -            *c += size;
> > -            break;
> > -        }
> >          if ( rc < 0 )
> >          {
> >              printk(XENLOG_G_WARNING
> >                     "Failed to %smap [%lx %lx] -> [%lx %lx] for %pd: %d\n",
> >                     map->map ? "" : "un", s, e, map_mfn,
> >                     map_mfn + size, map->d, rc);
> > +            goto done;
> > +        }
> > +        if ( rc == 0 )
> > +        {
> > + done:
> > +            if ( is_hardware_domain(map->d) )
> > +            {
> > +                /*
> > +                 * Ignore failures for the hardware domain and skip the range.
> > +                 * Do it as a best effort workaround to attempt to get the
> > +                 * hardware domain to boot.
> > +                 */
> > +                rc = 0;
> 
> If we return success and size is zero, we will potentially attempt to map/unmap
> the same region again in an infinite loop. rangeset_consume_ranges would invoke
> map_range again directly without returning to vpci_process_pending.
> 
> > +                *c += size;
> 
> This line is now only executed for hwdom, but ...
> 
> > +            }
> 
> ... it should go outside of the hwdom check because domUs still need it.

Indeed, this should be:

            if ( is_hardware_domain(map->d) )
                /*
                 * Ignore failures for the hardware domain and skip the range.
                 * Do it as a best effort workaround to attempt to get the
                 * hardware domain to boot.
                 */
                rc = 0;

            *c += size;
            break;

Otherwise domU won't make progress.  It would be helpful to have some
domU testing in the CI loop, otherwise I have no way to test the domU
side when modifying vPCI.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 07:55:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 07:55:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085516.1443830 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unui2-0007Le-Oj; Mon, 18 Aug 2025 07:55:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085516.1443830; Mon, 18 Aug 2025 07:55: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 1unui2-0007LX-LM; Mon, 18 Aug 2025 07:55:14 +0000
Received: by outflank-mailman (input) for mailman id 1085516;
 Mon, 18 Aug 2025 07:55:14 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=q+DX=26=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1unui1-0007LR-Vi
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 07:55:13 +0000
Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com
 [2a00:1450:4864:20::635])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a804b608-7c08-11f0-a329-13f23c93f187;
 Mon, 18 Aug 2025 09:55:07 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-afcb78c77ebso609480666b.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 00:55: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
 a640c23a62f3a-afcdce54021sm740800866b.10.2025.08.18.00.55.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Aug 2025 00:55: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>
X-Inumbo-ID: a804b608-7c08-11f0-a329-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755503706; x=1756108506; 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=xPBLMJl2+Rpmi0b+Id6ZGuXhPVF+pZ48s/pokx1Sd44=;
        b=e8tIFtwAwGL4nYMoNfzN1XAoiCSDhCuttvHy0h46gPS1cgExfcbSzd9Wsqpz3GKQUT
         TxvDv2P4qrvRV3ZPbvqkg2b4dk81SltJ5k23J8i+vD99mTWybcOuopgRETdxQzE52Wvj
         J3Bz/1ENCxEcei54opLOo4iY8BxQ51WfpwjPsypE9A+GfS6w4wqZWCdIchb/71M3VLuy
         PmXHRQ2pj3afcYLPpFPL6mUnnq8og8/ithX+6KTdCgreWTulEtN86bnI2iQ0u6MwB6aY
         vp7dCSt0hhSoxTcGAqH/5uQXdhzLAXWXGuVQ2SIX3NSH8naefgAghajRGB7v9CC7BhFB
         MUVQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755503706; x=1756108506;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=xPBLMJl2+Rpmi0b+Id6ZGuXhPVF+pZ48s/pokx1Sd44=;
        b=UPsMNyccLwO2ybMSfyKao71WH2m7tQjOPeX+WuDOtmHrJzBvFETw9o2JUqOZ05bEga
         /Bc2dpfGmv2F+Ftk8AHB8ygbX/po5ZAtNwZrwKbbgOjrjCkTxVRjbXreX2AMNB8Z7viM
         ovMzuLGVo6ZwEZ4IffbPLEsrqWIjewaM862uhibYbKcRMFPBHElmBhJKtgQerOCkuxgW
         NYaZGztc/ILp+Zo3Vdh2eyRyuwuqDQ+YFe5IHeN+LvVePLSSderjjAo837vek5FIwh0+
         FzuEMQDF/lky8YfIBqB4qsQUOybIM3Rq8IRkgrEEYhQOXQ53xtii0QyMIqxHFnlBuVTJ
         c6+A==
X-Gm-Message-State: AOJu0Yx8BlB+fNvGXsuwxE66OvzbNKTNgwHELdr3F2zghLkhiot1teHF
	pfVQkeuoS8K/JGYBG1j70AbZ6CWnTPe4oLVfXerKyBXXhtwxK9FeNeEXk69VtOVrNdN08n36tY+
	7eMQ=
X-Gm-Gg: ASbGncsImVOfd/VmZmjVFrF5/GlXuouLuHvXUq3EE3ytmztmnb+ZwtIQGlZcni8H3Q7
	X+EsDhu8s7ke62+eVwxjEjYLsgRPgxs5izfBy7nf/HRip8VScPqGK4vCVwCMB/DWhPCwHEFuKHC
	8sjnrf689xWqYrINOIHwWyVrrLcrZSTNEVinPp5KhsSlRnvwnknHIe3V+iW52Kwm4ooIRwHQHcp
	iDgNXYxbHvhBv4dtTWlDNYR9xdKTad+DyAF/2KgLy8Utigriq0T3qNoWReuQRaG7SQaSu42TWa6
	2cOyqOsGmZHP7ZLQUP/6AQVig44YmSqmjpAOTx4UnaKnDz94znPbui33TkehoMEqUuFH2Iv1qx0
	xVl4iDx5S9UpJIFsnLI+jIxBreoeqWk6VnUeDldn1FCDNCKeWQ8TcBuVdhxCUo5prUAv3/Adc61
	QjwQ1y53ZJIOAv9BIhCw==
X-Google-Smtp-Source: AGHT+IH3UcLfcKzpZ8NpiShKHvw1R1yo9Nt8cDQ0yzOwmxSog7PRk63QVljFGSdw2aloAfytm5fNOQ==
X-Received: by 2002:a17:907:6d1d:b0:af9:5e9a:b6a with SMTP id a640c23a62f3a-afcdc363b98mr911599166b.42.1755503706375;
        Mon, 18 Aug 2025 00:55:06 -0700 (PDT)
Message-ID: <a2dc40a8-908a-44a7-b443-90f492a775cc@suse.com>
Date: Mon, 18 Aug 2025 09:55:05 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v2 0/2] constrain page_is_ram_type() to x86
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>,
 Oleksii Kurochko <oleksii.kurochko@gmail.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>
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

Re-worked the plain dropping of an assertion to a function rename, and then
isolating of the original function to just x86.

1: Arm: drop assertion from page_is_ram_type()
2: common: make page_{is,get}_ram_type() x86-only

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 07:56:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 07:56:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085522.1443840 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unuip-0007p5-00; Mon, 18 Aug 2025 07:56:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085522.1443840; Mon, 18 Aug 2025 07:56: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 1unuio-0007oy-TT; Mon, 18 Aug 2025 07:56:02 +0000
Received: by outflank-mailman (input) for mailman id 1085522;
 Mon, 18 Aug 2025 07:56:01 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=q+DX=26=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1unuin-0007oq-G4
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 07:56:01 +0000
Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com
 [2a00:1450:4864:20::52d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c750888b-7c08-11f0-b898-0df219b8e170;
 Mon, 18 Aug 2025 09:55:59 +0200 (CEST)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-6188b5b7c72so5324099a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 00:55: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
 4fb4d7f45d1cf-618b01b5ebfsm6527478a12.42.2025.08.18.00.55.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Aug 2025 00:55: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>
X-Inumbo-ID: c750888b-7c08-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755503759; x=1756108559; 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=BYqLOoEq7xEukfuS6r9GGa1bJycK3KYzC0x6yJyfG5g=;
        b=PhiTj81bE6TGyL/QhiP1uvThqtlLZ2jABxgm9n7xoMrPWYeIY6XFFPNdDSFWuH5Nvi
         IMCwzepKCZKiv9VtNCoQiAGM4SQOpz6NHboHFD07QUO3s8CnzcDbq/twvWIZZe+ykWX3
         YHwxhJ2Igho7+vd/MIOTlFj6Sito25Xyxke8czWmr+A3WTqp4Xc0sXojEHel/mPgtLdh
         lGfFE20QjDffoDn9JV8rGjlrDfqgrGVdIE64lh1PINTJjbzlQzx8Ss9UbeJ8+QYSZycT
         uPYHQDB5Lk4bU9UGHfy50WTgy2gFEmyW0TgBKwIAN+1Ha3ZGF5D8vzH/wswhH93YwI+f
         dFRQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755503759; x=1756108559;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=BYqLOoEq7xEukfuS6r9GGa1bJycK3KYzC0x6yJyfG5g=;
        b=pTQrjeNZ3ZLgKyyGpjEo4hhEXb1UMfPi50a9HuXaFDRZdb+pXxhg8oLYZ2OL2Fg1gi
         Ei4wgZ3DCdougip8fi5phUiBXoLFWfgsgtUiEmCQ2+HjubMayjsH1GEj1CSVekblE07D
         1ULsdaKA8Yze+H3mJnHQV22PRterIdgNku8rScY1ql9Hum5AOqS9PaQvaqaNlHT7NUsp
         hC+jaoqj1B4CxOCDmAV+UoEzUDZmicauVWpKYBaXKMIcZ3/sCRuizHeR/kqwIPmdRk2y
         nEcTRCKV8mhK9HzSu+ZJ4g8eYzZMtJOj95dkP+/BPBqODigTREykaZAg0wDU94kPxovI
         mqSQ==
X-Gm-Message-State: AOJu0Ywcow5rIjhcfqTXfDbHJrpiJau86jcDBnk7dA4e1M+zoMR0ahI/
	jR+BJ4ALsSOcQvg04wd56A6bzwmrgoBQyCpe5kdsv0bMLVsvGayupjkF7nIYmOdKBPXCboz9wTr
	287E=
X-Gm-Gg: ASbGncu5E4M8l3uzLyPLdhlNI3xYyymKGESVMW6j0gUaOHzKT9po//e+LnRoBe7k/ma
	1NxDk0jCxbq3vQ13ArmwCT20Feut6CdxZQAvnznGao+2LYoaiM6KUJn/KgvgPP5Sf52YuLa9pRT
	r1QqI93kjB0/YWdmDqdNBqJje8szeNOzPCbfbJpKfgNZfe1wfudT4Bg7f8AloXQAoZhZnRowbD6
	9t4WPmlXWeuPVq4qVaYYngM3DKCMdoFnspnpO0d8gAp+mA2N7xTVxanlZCqgXvM+x++IDObfiNJ
	cyJ57Juu4kJ4avbqMgdnOnEVPIIrULL4byCue6SN8dmixTNQl3pirF8OcPC2fRTlZEQ/ii6qmqC
	XfeMyr2/HA9jCdbUJaBWbr479V+YPqPzb4x0ND5izaHlg6CbZBZlpZlztW7fMel0saB6bixN60d
	i5SIzZsndlg0Dk1vnjYg==
X-Google-Smtp-Source: AGHT+IEz2BSC3+F0OQuDnnZtZiXLSl8S9yWFaTZVSIX4b5r90OS+aIQvZWWGNNpRmC4rLRkkPT0Fmw==
X-Received: by 2002:a05:6402:2687:b0:615:9c88:59ef with SMTP id 4fb4d7f45d1cf-618b0543e33mr8556342a12.20.1755503758917;
        Mon, 18 Aug 2025 00:55:58 -0700 (PDT)
Message-ID: <753ce2a1-8d9c-41ba-a066-abf6f625cb60@suse.com>
Date: Mon, 18 Aug 2025 09:55:57 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v2 1/2] Arm: drop assertion from page_is_ram_type()
From: Jan Beulich <jbeulich@suse.com>
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>,
 Oleksii Kurochko <oleksii.kurochko@gmail.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>
References: <a2dc40a8-908a-44a7-b443-90f492a775cc@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: <a2dc40a8-908a-44a7-b443-90f492a775cc@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Its uses in offline_page() and query_page_offline() make it reachable on
Arm, as long as XEN_SYSCTL_page_offline_op doesn't have any Arm-specific
code added. It being reachable was even mentioned in the commit
introducing it, claiming it "clearly shouldn't be called on ARM just
yet".

However, dropping the assertion from a function of this name is deemed
problematic. Rename it to better reflect its sole purpose outside of
x86-specific code.

Fixes: 214c4cd94a80 ("xen: arm: stub page_is_ram_type")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
v2: Rename the function used in common code.
---
The new name is chosen such that, down the road, offlining of non-RAM
could in principle also become possible.

--- a/xen/arch/arm/mm.c
+++ b/xen/arch/arm/mm.c
@@ -64,10 +64,9 @@ int steal_page(
     return -EOPNOTSUPP;
 }
 
-int page_is_ram_type(unsigned long mfn, unsigned long mem_type)
+bool page_is_offlinable(mfn_t mfn)
 {
-    ASSERT_UNREACHABLE();
-    return 0;
+    return false;
 }
 
 unsigned long domain_get_maximum_gpfn(struct domain *d)
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -425,6 +425,11 @@ int page_is_ram_type(unsigned long mfn,
     return 0;
 }
 
+bool page_is_offlinable(mfn_t mfn)
+{
+    return page_is_ram_type(mfn_x(mfn), RAM_TYPE_CONVENTIONAL);
+}
+
 unsigned int page_get_ram_type(mfn_t mfn)
 {
     uint64_t last = 0, maddr = mfn_to_maddr(mfn);
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -1635,7 +1635,7 @@ static unsigned long mark_page_offline(s
 {
     unsigned long nx, x, y = pg->count_info;
 
-    ASSERT(page_is_ram_type(mfn_x(page_to_mfn(pg)), RAM_TYPE_CONVENTIONAL));
+    ASSERT(page_is_offlinable(page_to_mfn(pg)));
     ASSERT(spin_is_locked(&heap_lock));
 
     do {
@@ -1711,7 +1711,7 @@ int offline_page(mfn_t mfn, int broken,
      * N.B. xen's txt in x86_64 is marked reserved and handled already.
      * Also kexec range is reserved.
      */
-    if ( !page_is_ram_type(mfn_x(mfn), RAM_TYPE_CONVENTIONAL) )
+    if ( !page_is_offlinable(mfn) )
     {
         *status = PG_OFFLINE_FAILED | PG_OFFLINE_NOT_CONV_RAM;
         return -EINVAL;
@@ -1851,7 +1851,7 @@ int query_page_offline(mfn_t mfn, uint32
 {
     struct page_info *pg;
 
-    if ( !mfn_valid(mfn) || !page_is_ram_type(mfn_x(mfn), RAM_TYPE_CONVENTIONAL) )
+    if ( !mfn_valid(mfn) || !page_is_offlinable(mfn) )
     {
         dprintk(XENLOG_WARNING, "call expand_pages() first\n");
         return -EINVAL;
--- a/xen/include/xen/mm.h
+++ b/xen/include/xen/mm.h
@@ -144,9 +144,11 @@ unsigned long avail_domheap_pages_region
 unsigned long avail_node_heap_pages(unsigned int nodeid);
 #define alloc_domheap_page(d,f) (alloc_domheap_pages(d,0,f))
 #define free_domheap_page(p)  (free_domheap_pages(p,0))
+
 int online_page(mfn_t mfn, uint32_t *status);
 int offline_page(mfn_t mfn, int broken, uint32_t *status);
 int query_page_offline(mfn_t mfn, uint32_t *status);
+bool page_is_offlinable(mfn_t mfn);
 
 void heap_init_late(void);
 



From xen-devel-bounces@lists.xenproject.org Mon Aug 18 07:57:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 07:57:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085536.1443851 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unukQ-0008Qa-AA; Mon, 18 Aug 2025 07:57:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085536.1443851; Mon, 18 Aug 2025 07:57: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 1unukQ-0008QT-7E; Mon, 18 Aug 2025 07:57:42 +0000
Received: by outflank-mailman (input) for mailman id 1085536;
 Mon, 18 Aug 2025 07:57:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=q+DX=26=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1unukO-0008QK-L8
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 07:57:40 +0000
Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com
 [2a00:1450:4864:20::632])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 01ac2169-7c09-11f0-b898-0df219b8e170;
 Mon, 18 Aug 2025 09:57:37 +0200 (CEST)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-afcb78c66dcso536529166b.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 00:57: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
 4fb4d7f45d1cf-618af9da747sm6726244a12.19.2025.08.18.00.57.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Aug 2025 00:57: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>
X-Inumbo-ID: 01ac2169-7c09-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755503857; x=1756108657; 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=Pgs+IIgn/sUdCqmh7fe6wvHFy3WtKqV40+O4WUq7794=;
        b=Xix8tPQN8W72hKwFx5nfHTzp/Z8bVS9nZRMmGUUOFBt9tkUFJghrM2SSSvlXwoWB6W
         CMmOfZiQkMU8cwDkwi110nQ4MqxsK8flene/3f7mMZUFrNB3HDw0aM712/VSssrFkVEo
         QcEOtyC4ejEFCRMIGU+JB15FAJM7Btz7NLU/W1ORvAOOiiu2Y8YWkEFroCIJXpaMLWHB
         o3+7UHVS3czIeaUunx3qhi3x+mZLaWnRb6IPTYmx0pdJ7lod8ccvkc4tBe/PWY491jxq
         vI7CryhUDlIdmdxrm6W9XQcj81XDAU6ECT1zBE32Pa0IYYQw6Tn/2zE1ITrGI+AiJff7
         0xoA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755503857; x=1756108657;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=Pgs+IIgn/sUdCqmh7fe6wvHFy3WtKqV40+O4WUq7794=;
        b=n2NBzHby5FsU+JeMRkAVmOV6o8KduTYGHNDGluzVnEF0um/70elbxfYCzslfXzQcf/
         pNUHrZsTuTTbX2KyTGHGBJqdzYY+l98tkAu8mRwI4FoXp90eur6Im8AJINF5+KLASeBU
         38cKt/2nkz8dLlyw4MvswADEvJY3WWTWWXK8W1j/e+1wzmH8EhNurqnwuBtLfvbb8zcw
         CccFGcCLCPfvT5xlQ5KLDtuSmey0KPXEHfH76gR+ee2giuJNWrEL4BdEsz4kBKPdf8M3
         +NujkAXumvpwTo9vU+Xyjw1gadB4Fumo4VJrIQ7k5vB8JpqDUdOsuaEisUGWwIfuXpjm
         zang==
X-Gm-Message-State: AOJu0Yw+JsONkTjHjzgtsGtgy9u6oTteSgvvmGul85zrn6pwa4w+ZP9C
	1odWlpVwkrPUrPgwrb5gvtvd7RKG60dF51VGXk1hlZoWYm1i9iuWPVjbEL3wZ8Ps7fMm5HEEoBA
	3wEU=
X-Gm-Gg: ASbGncvJqoWEVWjTqQ0Ct7UNoN14wf5koccvpYNf+3PHy2njwooFoIA4dJLJXhK7gBW
	m4CEvV2BSBZGw3R370v68eae7UEXOeLXWwMv1SNtnEtxv+NHShV2AOfxo0wJd6YjQvaH81FAZ2o
	CmfVqZhIJIxJa8KGHTrEXgdhg5rAjQWVQ2+Pfe/1gUnJLOC9unXSVc50tOcsNCV+IbFzdCRCspd
	9RxhrhAINSf21wl4xuiooWyhxaB4KuLArDih0jv2H0mQyeDhQBFSdXIwmieG+innnxKGmr9bJne
	aQd/IMWUjRs7oIRRUGas2VY1ZDgHhYJBgf0uOJYiZQeKlWAetM2n8qDSzrMl+PG/dxoYPHvEYhX
	sDHtOMRpGCBzk4VAg23N6ZO3zME7jk283hT7LineFu727zbIyjOX+VoAZS48I8veJAtWmlfX06I
	UDXQgdBe6JWydO92iCuw==
X-Google-Smtp-Source: AGHT+IEkxn3JlDNFXp7hxB79wqP1o4SsRbRPNJ/jECI8MOKEMJIeauykkzlhv9IPtepT09GCUBrQpQ==
X-Received: by 2002:a17:907:9484:b0:af8:fad5:aee5 with SMTP id a640c23a62f3a-afcead09313mr808235866b.25.1755503856766;
        Mon, 18 Aug 2025 00:57:36 -0700 (PDT)
Message-ID: <4a568ff4-2cfd-40ec-b249-217fab34f4ec@suse.com>
Date: Mon, 18 Aug 2025 09:57:35 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v2 2/2] common: make page_{is,get}_ram_type() x86-only
From: Jan Beulich <jbeulich@suse.com>
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>,
 Oleksii Kurochko <oleksii.kurochko@gmail.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>
References: <a2dc40a8-908a-44a7-b443-90f492a775cc@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: <a2dc40a8-908a-44a7-b443-90f492a775cc@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The classification is pretty E820-centric anyway, and all uses of the
function are now in x86-only code.

Switch the boolean return type to properly use bool while at it.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
v2: New.

--- a/xen/arch/x86/include/asm/mm.h
+++ b/xen/arch/x86/include/asm/mm.h
@@ -464,6 +464,16 @@ extern bool opt_pv_linear_pt;
     ASSERT(((_p)->count_info & PGC_count_mask) != 0);          \
     ASSERT(page_get_owner(_p) == (_d))
 
+#define RAM_TYPE_CONVENTIONAL 0x00000001
+#define RAM_TYPE_RESERVED     0x00000002
+#define RAM_TYPE_UNUSABLE     0x00000004
+#define RAM_TYPE_ACPI         0x00000008
+#define RAM_TYPE_UNKNOWN      0x00000010
+/* TRUE if the whole page at @mfn is of the requested RAM type(s) above. */
+bool page_is_ram_type(unsigned long mfn, unsigned long mem_type);
+/* Returns the page type(s). */
+unsigned int page_get_ram_type(mfn_t mfn);
+
 /******************************************************************************
  * With shadow pagetables, the different kinds of address start
  * to get get confusing.
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -385,7 +385,7 @@ void __init arch_init_memory(void)
     ASM_CONSTANT(FIXADDR_X_SIZE, FIXADDR_X_SIZE);
 }
 
-int page_is_ram_type(unsigned long mfn, unsigned long mem_type)
+bool page_is_ram_type(unsigned long mfn, unsigned long mem_type)
 {
     uint64_t maddr = pfn_to_paddr(mfn);
     int i;
@@ -419,10 +419,10 @@ int page_is_ram_type(unsigned long mfn,
         /* Test the range. */
         if ( (e820.map[i].addr <= maddr) &&
              ((e820.map[i].addr + e820.map[i].size) >= (maddr + PAGE_SIZE)) )
-            return 1;
+            return true;
     }
 
-    return 0;
+    return false;
 }
 
 bool page_is_offlinable(mfn_t mfn)
--- a/xen/include/xen/mm.h
+++ b/xen/include/xen/mm.h
@@ -565,15 +565,6 @@ int __must_check guest_remove_page(struc
 int __must_check steal_page(struct domain *d, struct page_info *page,
                             unsigned int memflags);
 
-#define RAM_TYPE_CONVENTIONAL 0x00000001
-#define RAM_TYPE_RESERVED     0x00000002
-#define RAM_TYPE_UNUSABLE     0x00000004
-#define RAM_TYPE_ACPI         0x00000008
-#define RAM_TYPE_UNKNOWN      0x00000010
-/* TRUE if the whole page at @mfn is of the requested RAM type(s) above. */
-int page_is_ram_type(unsigned long mfn, unsigned long mem_type);
-/* Returns the page type(s). */
-unsigned int page_get_ram_type(mfn_t mfn);
 /* Check if a range falls into a hole in the memory map. */
 bool is_memory_hole(mfn_t start, mfn_t end);
 



From xen-devel-bounces@lists.xenproject.org Mon Aug 18 08:14:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 08:14:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085548.1443862 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unv14-0003pS-Hr; Mon, 18 Aug 2025 08:14:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085548.1443862; Mon, 18 Aug 2025 08:14: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 1unv14-0003pL-E8; Mon, 18 Aug 2025 08:14:54 +0000
Received: by outflank-mailman (input) for mailman id 1085548;
 Mon, 18 Aug 2025 08:14:52 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=q+DX=26=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1unv12-0003pF-TT
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 08:14:52 +0000
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com
 [2a00:1450:4864:20::52a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 629cbb32-7c0b-11f0-b898-0df219b8e170;
 Mon, 18 Aug 2025 10:14:39 +0200 (CEST)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-6188b5b1f1cso4600092a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 01:14: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
 4fb4d7f45d1cf-618af9d31c1sm6806716a12.2.2025.08.18.01.14.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Aug 2025 01:14: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>
X-Inumbo-ID: 629cbb32-7c0b-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755504878; x=1756109678; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=DXjbF+VjIPB80im+h/kRtTWNnlFN0sSNMIBdpKsZsRA=;
        b=DyI1tzzKYOWPPOs618uvE+5rkmjxba/D74oSExg63MMXWSd6mSsaNtaXwAsqS3/Nii
         FcYtFRe0ZCJDQ2UY8w5VrDeSvIC14X+hK/6SMCe185aFwBZlyg7N9dlJaV2sW0e+wXk7
         dlgtc/Vy40fIZmLydOfEmAdm00fKPInWHQvbWBEQcAEXn6D2H0LB/vO0aFxMZ90sSpug
         OrtWFUMGSMczhwnlVDtRmeUB6qTyAFhvPX9+c7ogIwGh4kLVYd0W7OWLn/CMD3rrjZKk
         NlATzb1jBgiSISOn3W2FqdxQpB6Mzl53b9zKdwU7bJy6yPaOLjlnWl7Y5/jMskq+xAvz
         GQ1w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755504878; x=1756109678;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=DXjbF+VjIPB80im+h/kRtTWNnlFN0sSNMIBdpKsZsRA=;
        b=v6m77L5ajRQeQR+QBBKXQf3tvbKi4/+YgBhjgOnePuoEdjSsRIiJZPZzmnMynpFnCj
         xYeZrllMjNixKG4AQx+q7Xk7K1/XIf/M+DJqlLso6D8tSzMpNYDFJBl1lqP2IdqK7f+K
         A+maIgRq1jUzrKuioaqNghNroBSR5dx3Zl0aNx6qYEOrmGfWJDKgt84WHaSkxKdT3lyV
         kbX2CwQasXlVycYgk95J/9LigGssXKocTOGjlmVgR++8WHoXuUWn/6AmzFt/9PoMZ+ue
         MmYxTmMWotw5i320teRMgTwwdSvK6GQotrJMJd0LmAeywn9GLnXlUhal2z/nnRIN+KCW
         qb4A==
X-Forwarded-Encrypted: i=1; AJvYcCU0v4Z+Yg2Mmi45r3Kj3eJ4nwxmlR8INvWKJOe2mCmSEQLBoibRSloSXajjX4kd8gjYhuq3CoZ5K7c=@lists.xenproject.org
X-Gm-Message-State: AOJu0YygNwWIdUSPu+MnOEEMG90htOl2qmRO1/UYHSF9/VsaDHSFbijh
	TXCJ/Ny1Fvrulw6XZQ41rOVEiUQZ/hFJn606wKQX9hicrsDPQOSmmlyN8q2ccayhQA==
X-Gm-Gg: ASbGnctrAc68YF0K1clUOFxrJaEogodsoVhgbiNpuGKc8sn2fnR48YVFdoT6cnJHPo/
	yk/IG1CxvMan86IoNrOefke38y09qYVeXdDpfSSbnBrA9pYo0iwlovjMSi8yP9pMN8gI/zKYmQn
	DPqSdGxLvjInj5RkNyujswAtYzYWxb06YppfWudri4bJhLVlggZHMIIXKeCHNxq/Ibmdk8lv+/r
	SkGklJh9UFVfmqmkQ6entdLciO3os8xJW2+eWvJWmIqTIuycPLIiCM0mzb2DMBcy/Rqixw3pJBk
	nEC3mGFB6zb85hiaNmXUS61Q5xbhqJl1emXHFOC0qZMosObfry9r9Twa1CPJjgKyvG4CNZLs8Jq
	QBvtSg9HWf/GNvDj61OxkU39IqBQKqM8jiQcS0P/a/gtAv6fpYmcO2R73uKDX1taVSmogtTaGm0
	Arj1IXeBs=
X-Google-Smtp-Source: AGHT+IEdscER3D0PnJYRJ7ZFpOw2gD63w1Z0nw5nNYG3S2PRz3fvk+9pGmV4ny3KBCVWf57+bTQs5w==
X-Received: by 2002:a05:6402:1d53:b0:615:920d:4de5 with SMTP id 4fb4d7f45d1cf-618b054689emr141322a12.12.1755504878358;
        Mon, 18 Aug 2025 01:14:38 -0700 (PDT)
Message-ID: <3f51c424-da0d-49be-9f8d-3f5f259e76fe@suse.com>
Date: Mon, 18 Aug 2025 10:14:37 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/irq: Delete the pirq_cleanup_check() macro
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
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" <xen-devel@lists.xenproject.org>
References: <ce37bdf7b5189d314c0f41628dbfb3281358bcf4.1755361782.git.dmytro_prokopchuk1@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ce37bdf7b5189d314c0f41628dbfb3281358bcf4.1755361782.git.dmytro_prokopchuk1@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 16.08.2025 18:31, Dmytro Prokopchuk1 wrote:
> From: Andrew Cooper <andrew.cooper3@citrix.com>
> 
> MISRA Rule 5.5 objects to a macro aliasing a function, which is what
> pirq_cleanup_check() does. The macro was originally intended to ensure
> the condition 'if (!pirq->evtchn)' is always checked before invoking
> the function, avoiding errors across call sites.
> 
> To achieve MISRA compliance, the condition is expanded inline at all
> call sites,

That's not correct. Andrew's description specifically said "..., and
one path in evtchn_bind_pirq() where the expanded form simplies back
to no delta, as it follows an unconditional clear of info->evtchn."
Imo this wording wants adding back, with adjustments as necessary to
make it fit the rest of the sentence. (Likely doable on commit, if
no other reason for a v3 arises.)

Jan

> using plain C constructs. This ensures clarity while
> retaining the original behavior. While this complies with MISRA, it
> shifts the responsibility to developers to check 'if (!pirq->evtchn)'
> at call sites.
> 
> No functional changes.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 08:18:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 08:18:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085562.1443870 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unv4Y-0004S6-3N; Mon, 18 Aug 2025 08:18:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085562.1443870; Mon, 18 Aug 2025 08:18: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 1unv4Y-0004Rz-0f; Mon, 18 Aug 2025 08:18:30 +0000
Received: by outflank-mailman (input) for mailman id 1085562;
 Mon, 18 Aug 2025 08:18:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=GLF1=26=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1unv4X-0004Rt-Gd
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 08:18:29 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id eac82f3f-7c0b-11f0-b898-0df219b8e170;
 Mon, 18 Aug 2025 10:18:27 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-45a1b0c8867so30403075e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 01:18:27 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45a23e97c11sm116746055e9.1.2025.08.18.01.18.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 18 Aug 2025 01:18: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>
X-Inumbo-ID: eac82f3f-7c0b-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755505107; x=1756109907; 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=067q2AjcoYjPVFAvXZaDbsE2Gw8SxtghbkprnJcBiao=;
        b=v96GZOxHIbE4wgU4rC4fRwAWmoMG2hPgAq5deNQkv9zqiJQ9BzEg0MTztB5baIm0Sr
         EGG3xN9fj7l2VZCEbKHU8xQBflagy/Nfn9vVR+BLu8saqgzFfYN8AeStCJy6Pc6RNI6/
         DvZ++F0ASzi+ldIbBEs3BLBABCBXlB6lxEMuQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755505107; x=1756109907;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=067q2AjcoYjPVFAvXZaDbsE2Gw8SxtghbkprnJcBiao=;
        b=G8xgh/EEvC7QP4on6nGyI62JveFtAr4nsp8z9adQZwRo+94NjBP+REz1454E3wT+jB
         jHNOQ5IePDrNbpEzb+DQJlJLydaqZHF6l/kVKjR9lbWPJ0rSDiBWYG1NxMzrEA2Ghl7c
         QqqQyT9oNaPNsYWMdpUF/oKj81CaOPvGbcB59jwgJCPcHenxbkakCBEV+xKs1y//mqCA
         BB9S7HUVyLC1AyEMKgXdTc5trjtjXVzI1YAY3PgZCAt3wu+4azFXG07eIx2NsqQN0Adp
         iACOn/NH114AK1juOOObfdSX1P2XIsVZZsCexPRKkhcUfuo16qHubN5Nq7SyGzuGU8jN
         3sWQ==
X-Gm-Message-State: AOJu0YxPXYWq2Kfzi9uraTaN+59mQS+NH2mDZ0nOOiHXgFY/eAWly1Xl
	+uLZumvEeRHU19c8ZPFuyvVTF4ZfmG5BBpIAJEjII5BP2eNnfODLfS3ePCsv5jM1DYBr3vzHLcj
	rSeio
X-Gm-Gg: ASbGncsoNbO3kkC6+F2m6IHENesFiDY3hbl2cb/oOtaPL6U0P2774NMy9Gb+ynyxvjg
	9imWwsDqGjlE6YBEahYEnLoQAG9Ndt05Jx1yUU3vAZXopbOKA52NEowFPv9N6O9gjH3DhsR2sv2
	9am2VILlF5NERT4tntKmBWZDlLHI2R4DVzZgyvHGyqkJ3h8YWLx046ch8ZjfckfIWQ8qKgAfHPx
	BFomaF8LiFi48R2iKzbUJ6ioL+kAnayNXXFfYyUQAFOUIV/U01U76i4NlqqItxZ4bJA2BQGwfru
	BoREbsr0CB8YJynWkDimp8VFyyYJz8D4JOd919OOMfn3ZpMpqKr+22DWyVGV0wKcfwYSOqxQKbK
	JVNBlNg1KjvRFn4JGnJIH0yKMDz+DUVQt9HOBoi6WP1JDuUXvPbZkTaKjKR/WpEOxlcthgp4nQx
	eM
X-Google-Smtp-Source: AGHT+IGHfN+AceJlN3nZWkqFiV9yZG8xzFCbXkv7C+0N9ju8kDecQH4tnxqTwGV/P3/zdhpcZuCHNg==
X-Received: by 2002:a05:600c:5287:b0:456:f9f:657 with SMTP id 5b1f17b1804b1-45a2185e6cbmr73896295e9.27.1755505106700;
        Mon, 18 Aug 2025 01:18:26 -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>,
	Julien Grall <julien@xen.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH] arm/link: Remove exception table sections
Date: Mon, 18 Aug 2025 09:18:24 +0100
Message-Id: <20250818081824.3538065-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This was almost certainly copy&paste from x86.  ARM does not us these nor
selects HAS_EX_TABLE, so drop the sections and their boundary markers.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>
CC: Michal Orzel <michal.orzel@amd.com>

Found because I'm getting rid of .ex_table.pre on x86 too.
---
 xen/arch/arm/xen.lds.S | 10 ----------
 1 file changed, 10 deletions(-)

diff --git a/xen/arch/arm/xen.lds.S b/xen/arch/arm/xen.lds.S
index 9f30c3a13ed1..db17ff1efa98 100644
--- a/xen/arch/arm/xen.lds.S
+++ b/xen/arch/arm/xen.lds.S
@@ -86,16 +86,6 @@ SECTIONS
   } : text
 
   .data.read_mostly : {
-       /* Exception table */
-       __start___ex_table = .;
-       *(.ex_table)
-       __stop___ex_table = .;
-
-       /* Pre-exception table */
-       __start___pre_ex_table = .;
-       *(.ex_table.pre)
-       __stop___pre_ex_table = .;
-
        *(.data.read_mostly)
   } :text
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Aug 18 08:19:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 08:19:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085571.1443881 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unv59-0004vY-Cp; Mon, 18 Aug 2025 08:19:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085571.1443881; Mon, 18 Aug 2025 08:19: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 1unv59-0004vR-97; Mon, 18 Aug 2025 08:19:07 +0000
Received: by outflank-mailman (input) for mailman id 1085571;
 Mon, 18 Aug 2025 08:19:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=q+DX=26=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1unv57-0004of-V2
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 08:19:05 +0000
Received: from mail-ej1-x631.google.com (mail-ej1-x631.google.com
 [2a00:1450:4864:20::631])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0158e744-7c0c-11f0-a329-13f23c93f187;
 Mon, 18 Aug 2025 10:19:05 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-afcb78c77ebso612656366b.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 01:19: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
 a640c23a62f3a-afcdce78d2esm752119666b.52.2025.08.18.01.19.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Aug 2025 01:19: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>
X-Inumbo-ID: 0158e744-7c0c-11f0-a329-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755505145; x=1756109945; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=sFY94uChyClg0+a0a/YvsDr5HY1piMcnGgbaNPokLow=;
        b=YFcEnU0lA/NSRJurlDB0ujpXO9k6PLBM2dsu89JJw0MQMI4J+NE+rs2UWGHZzOx8iD
         SmWJ/3qeJ/RWN4Sw38GFgM3AHssnu+iflsKr7TElX7pWsZmbv/LiXG2ZHXKllmeMRsRz
         ft7CJrz3I9c88ecPFUkwKiBeGX5CPr3ThU/UqKS1aANlwHided/p+XsUD2B/u5MDxKeJ
         1t9ofJGtAVc1ivrN5NVPqWwYMrr7en1AmYDrjHaJyd8uH/ihvNNY6ubhiofqnUcztzLl
         yckhCdh9eoJa7EReGNfwGjJ5lP+lsn3siKna3sl+VZ39xIj6GG9pDLll9F6PhPncnXNN
         KUng==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755505145; x=1756109945;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sFY94uChyClg0+a0a/YvsDr5HY1piMcnGgbaNPokLow=;
        b=RSf17QFKdJOmG4pEtdO0KrYU7N1SuQPqwq/J8GQce4cOtMou/wVaHuQVqac3oSRpvC
         bA+ahe6FABUgqwUDgBwAyKB2CDvAI0mGc70q2ZhdG5URMyt+fo5hmHs801cBV8Kru+Se
         WsAAY/pL6NHheMbs4ejsYKnBtQzqIrbD6OMHXg85ft0NGvSt/WrGKwfvWCRQm4fxpjYj
         4wVXR581cr0vujPKHwovokxGFvPSUHurM+wEjiZu789ufhJsFQWC+YtT3wUhuYKDI9QL
         zzjQ4sDYpydKnZ4bAXZ/LOrzD35Ap7M2oM0zZbfKIuoQKl7auY8gA/ghN5/IEW5Yg+SP
         /9Jg==
X-Forwarded-Encrypted: i=1; AJvYcCXcrZ58CaQntB1d862UdjpDGI+2rl2zrZmUZ+T0IUd24Suu4BtfAwcYvNLtF6SdyoecfxNY0aJPx08=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx6+i2dln4VWBG8nvTimdtBpJogV5+CBvj1U6aYyi6wGt53stPE
	cHyjnXgwfmT/dWvdmL0PurRk5C2BoHPecA/u1R1lD/jabsbOFy5HhZrEcIAHt4R8HQ==
X-Gm-Gg: ASbGncv1qYMB+cumke83V1ReriaZAYiGonMTXT4v7LMS8VHjlRpWzLGWum5tQyqPfkO
	nFDyugrJwm0wpGs0E0/wCO26FowSfFfDuEc2E34Xznr8b+Khuf0wxImUO5TpQITEaSdqa5JMmhz
	vzQvY1gLfSy7uuQSMzOE/LrkorjOWay1j+hU5aTm3yr48nefWY2xnkbp0Rpo9mqXsO7SVPZIdeU
	eK6pVpsxv/ZdWc17u1IMjASh1tdKxmnj5v7MYLS721lN0YAO3Ge0mFNhB43BXEFyQMXplIqCzqB
	Zr6NB/ztFnOf0GFY+X+638KtzGPuVEafdWWTIATnT67zdgES+8rcXqIbJsmjwWqtDH8ehOMHmN2
	x7nsGxUn5VkMBVU7cOUNxNYOBJeXAqcNu9JEoJgtZEqFxDCDQ1wa/j1PRmobg/4RyQhVnFXblfX
	MGlnL/QdxMOT+VU5oooA==
X-Google-Smtp-Source: AGHT+IHNNb6YOA/LW0siZbnkTY39xA+HxDf0E8keY6qGqfmq9zsavAiBDWgNME2Odf0ra0vBtxNxsA==
X-Received: by 2002:a17:907:3f12:b0:af9:414d:9c2 with SMTP id a640c23a62f3a-afcdc1c2477mr1064902866b.3.1755505144372;
        Mon, 18 Aug 2025 01:19:04 -0700 (PDT)
Message-ID: <717ab7f1-7ec4-4319-bf33-d7b430e04760@suse.com>
Date: Mon, 18 Aug 2025 10:19:03 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen/llvm.c: udpate LLVM profile raw format from v4 to
 v10
To: Erkai Yu <si1krow@outlook.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: <1e44e2b9009fe8d2dad5fb31c2a4ac4114e0b892.1755478573.git.si1krow@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: <1e44e2b9009fe8d2dad5fb31c2a4ac4114e0b892.1755478573.git.si1krow@outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18.08.2025 03:06, "Erkai Yu failedtofindaname"@gmail.com wrote:
> From: Erkai Yu <si1krow@outlook.com>
> 
> Update LLVM profile raw format version from 4 to 10, supporting
> LLVM 19 and LLVM 20. Only the file xen/common/coverage/llvm.c is 
> changed.
> 
> Iâ€™m not sure whether maintainers want to update this version, since
> version 4 is already a bit outdated. My patch currently supports LLVM
> 19 and 20; itâ€™s unclear if maintainers would prefer support for all
> format versions from 4 to 10.

This shouldn't be part of the commit message imo, but yes - we can't
very well support just one version when it constantly changes.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 08:22:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 08:22:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085581.1443890 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unv8U-0006qG-QL; Mon, 18 Aug 2025 08:22:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085581.1443890; Mon, 18 Aug 2025 08:22: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 1unv8U-0006q9-Nq; Mon, 18 Aug 2025 08:22:34 +0000
Received: by outflank-mailman (input) for mailman id 1085581;
 Mon, 18 Aug 2025 08:22:33 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YQjc=26=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1unv8T-0006q3-20
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 08:22:33 +0000
Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com
 [2a00:1450:4864:20::635])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7c8e38fc-7c0c-11f0-a329-13f23c93f187;
 Mon, 18 Aug 2025 10:22:32 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-afcb78c77ebso613063466b.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 01:22:32 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afcdcfccbb7sm759512366b.79.2025.08.18.01.22.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Aug 2025 01:22: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>
X-Inumbo-ID: 7c8e38fc-7c0c-11f0-a329-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1755505351; x=1756110151; darn=lists.xenproject.org;
        h=in-reply-to:content-language:references:cc:to:subject:from
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RRtB3XWqryub4ZyYPikWvB3iVIfbkwlh8Xkj2D4+MJw=;
        b=nLEAD+tu0Kt+G9Y8FwK1B3I12PTyqxTSlBzk7A88xK9o49m/0dgysN2+JAn4RMkKQR
         eBnsYqsOqi6XU0o+I5adeiYdgB3sJijKeDnlRQrde5GIdBJAmfvLxWymQc1xGxoVYvwd
         XfSlKzZYjkGqvjeciVtYX39FEnL/43/rfnLOsXJd4+DR9e7UyZMX5Gn/+kCL08oGk4dh
         AahBYuIbQ+CsKsL6oZI4x36IIxu96CaIwU4YHmM4ApTLMRp5/put0I67NkXQV6ZIOY5+
         vFwhYZuRvXZpRdgvc7z343ra0gIZIhjV3mZzliEvV+9/CHELw6GXC3nyydmE3QkS1hy9
         +LOw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755505351; x=1756110151;
        h=in-reply-to:content-language:references:cc:to:subject:from
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=RRtB3XWqryub4ZyYPikWvB3iVIfbkwlh8Xkj2D4+MJw=;
        b=Yh5kOVB6kRzXDPY/s9c3S91gmpLYypJIrnrQmaTdORktaZvpru4H0rcOduJB2fZ7bb
         S4k5sY4m+Pw2bXXTT5z7gOUDBKdgB/ii6GgFY5kiSndepeoxkaTHlXv/BFS+Ad8qWIE6
         Eil3IHHD5F314ovaZoZnYnRvVbkP4330VfQorWDD2Yh73IhB3MTvz/G27QekA4LIBA4R
         3ze35w+1ekfVgOUCbX1ReEE27dCJ8TrrGlpidsJTFcoBmgKDn23jTqSZHCXFssnCZqRa
         NMxcYOYoD17RPp71EK1muuASGuGP4PihQ1YnLT4cf8ZFOjV9zZ4OFMmSpenJSCJTXrZe
         nSIg==
X-Forwarded-Encrypted: i=1; AJvYcCVt+2fcWfOVTWXB3ECfmIWfjfGIR874wfmmAjSzsE7y9J1dWEPOfw5Lngg7y6XxXIQxMDotlnzFdKs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzxOMKzsqjjemv/rw/zkILe+nY0B+cNZ5qxIBuG6qNeC1YD3+de
	QCuIQGC0MrTHPppMdHNdpPQ9wJkPzicDOX1pfbeo5/Vwx3IHFARFI3qE
X-Gm-Gg: ASbGncv4yWGA/7lcHSLkrZHOb+dAN8bZzzvIvukKlwYdyOwdk6l0ChOThE9/QBVJS0d
	lFyehGZWQ1FWcLJIEXr7MLvit+UbWB+umSOEHqgyFwCZFaScnUjqgDog0Dog5+TC4zwRRTszL+W
	4L/q0Z8O9ALcMh4jfoFsE+b1fxbeWrjgz9evX3Qh7caNPgW7Ce0mbjp0h5qkTyCDrty0c5q6tec
	2pIlAHAOY7S+r7mqis83824erZXFsrTn42t34oRwdaV+tBf8ycWFb1D7/l+utdRbaH01IDjFIoE
	ve7Y1bOmeMFzSTxP3yKjLXBqY0c9crJPT0ADWHqngBXOEwfA8sp+7ObaMQjt2PKG2ZXVZykEIYK
	ystDTJLhzXgjHWPA9TTBwxC3BPy835FNLv92Lv0kvLuFXYL1HuWKaim2tv3+lBfa7O9AJViA=
X-Google-Smtp-Source: AGHT+IGJV9ajKmwgyV00Kv1J/nWojG6fFn8XBu+j8FlEHR1eDFahOpm9PnJMOQxMnNYT+XStLi+qPg==
X-Received: by 2002:a17:907:d92:b0:af9:3019:6aef with SMTP id a640c23a62f3a-afcdc1c0a4fmr1125457666b.10.1755505351103;
        Mon, 18 Aug 2025 01:22:31 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------FknOeCGiPYNNZXbR6X29R0Mx"
Message-ID: <3fc9f081-e358-4972-a39b-fab0494433c4@gmail.com>
Date: Mon, 18 Aug 2025 10:22:29 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH v3 13/20] xen/riscv: Implement p2m_free_subtree() and
 related helpers
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <41845723a7b0e3efd09095d13e57aace6f7747ef.1753973161.git.oleksii.kurochko@gmail.com>
 <98dc796e-bb14-435e-8c19-53e5de60cc43@suse.com>
 <c8a07c48-b79b-4136-a265-91c14bb96c81@gmail.com>
 <117e35e0-d23e-4527-964a-82fa2bed57fd@suse.com>
Content-Language: en-US
In-Reply-To: <117e35e0-d23e-4527-964a-82fa2bed57fd@suse.com>

This is a multi-part message in MIME format.
--------------FknOeCGiPYNNZXbR6X29R0Mx
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 8/14/25 5:17 PM, Jan Beulich wrote:
> On 14.08.2025 17:09, Oleksii Kurochko wrote:
>> On 8/6/25 5:55 PM, Jan Beulich wrote:
>>> On 31.07.2025 17:58, Oleksii Kurochko wrote:
>>>> +/* Put any references on the page referenced by pte. */
>>>> +static void p2m_put_page(const pte_t pte, unsigned int level)
>>>> +{
>>>> +    mfn_t mfn = pte_get_mfn(pte);
>>>> +    p2m_type_t p2m_type = p2m_get_type(pte);
>>>> +
>>>> +    ASSERT(pte_is_valid(pte));
>>>> +
>>>> +    /*
>>>> +     * TODO: Currently we don't handle level 2 super-page, Xen is not
>>>> +     * preemptible and therefore some work is needed to handle such
>>>> +     * superpages, for which at some point Xen might end up freeing memory
>>>> +     * and therefore for such a big mapping it could end up in a very long
>>>> +     * operation.
>>>> +     */
>>>> +    switch ( level )
>>>> +    {
>>>> +    case 1:
>>>> +        return p2m_put_2m_superpage(mfn, p2m_type);
>>>> +
>>>> +    case 0:
>>>> +        return p2m_put_4k_page(mfn, p2m_type);
>>>> +    }
>>> Yet despite the comment not even an assertion for level 2 and up?
>> Not sure that an ASSERT() is needed here as a reference(s) for such page(s)
>> will be put during domain_relinquish_resources() as there we could do preemption.
>> Something like Arm does here:
>>     https://gitlab.com/xen-project/people/olkur/xen/-/blob/staging/xen/arch/arm/mmu/p2m.c?ref_type=heads#L1587
>>
>> I'm thinking that probably it makes sense to put only 4k page(s) and
>> all other cases postpone until domain_relinquish_resources() is called.
> How can you defer to domain cleanup? How would handling of foreign mappings
> (or e.g. ballooning? not sure) work when you don't drop references as
> necessary?

I was confused by the code in|relinquish_p2m_mapping()|, since it removes
foreign mappings from the P2M. My current understanding is that it is called
for foreign mappings that werenâ€™t explicitly unmapped, in order to drop the
page reference taken when the mapping was created. Initially, I thought it
would be enough to just perform the (un)map in the P2M page tables to have
foreign mapping working, but that could result in a page never being fully
released, which would in turn break or confuse other logic.

So, yes, I agree that your initial suggestion to add ASSERT() is useful to
be sure that no one is using level 2 super-pages for foreign mapping.

>>>>    /* Free pte sub-tree behind an entry */
>>>>    static void p2m_free_subtree(struct p2m_domain *p2m,
>>>>                                 pte_t entry, unsigned int level)
>>>>    {
>>>> -    panic("%s: hasn't been implemented yet\n", __func__);
>>>> +    unsigned int i;
>>>> +    pte_t *table;
>>>> +    mfn_t mfn;
>>>> +    struct page_info *pg;
>>>> +
>>>> +    /* Nothing to do if the entry is invalid. */
>>>> +    if ( !pte_is_valid(entry) )
>>>> +        return;
>>>> +
>>>> +    if ( pte_is_superpage(entry, level) || (level == 0) )
>>> Perhaps swap the two conditions around?
>>>
>>>> +    {
>>>> +#ifdef CONFIG_IOREQ_SERVER
>>>> +        /*
>>>> +         * If this gets called then either the entry was replaced by an entry
>>>> +         * with a different base (valid case) or the shattering of a superpage
>>>> +         * has failed (error case).
>>>> +         * So, at worst, the spurious mapcache invalidation might be sent.
>>>> +         */
>>>> +        if ( p2m_is_ram(p2m_get_type(p2m, entry)) &&
>>>> +             domain_has_ioreq_server(p2m->domain) )
>>>> +            ioreq_request_mapcache_invalidate(p2m->domain);
>>>> +#endif
>>>> +
>>>> +        p2m_put_page(entry, level);
>>>> +
>>>> +        return;
>>>> +    }
>>>> +
>>>> +    table = map_domain_page(pte_get_mfn(entry));
>>>> +    for ( i = 0; i < XEN_PT_ENTRIES; i++ )
>>>> +        p2m_free_subtree(p2m, table[i], level - 1);
>>> In p2m_put_page() you comment towards concerns for level >= 2; no similar
>>> concerns for the resulting recursion here?
>> This function is generic enough to handle any level.
>>
>> Except that it is possible that it will be needed, for example, to split 1G mapping
>> into something smaller then p2m_free_subtree() could be called for freeing a subtree
>> of 1gb mapping.
> The question wasn't about it being generic enough, but it possibly taking
> too much time for level >= 2.

In this terms it makes sense to add such an assertion which will check that we are
working with levels <= 2.

Thanks.

~ Oleksii

--------------FknOeCGiPYNNZXbR6X29R0Mx
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/14/25 5:17 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:117e35e0-d23e-4527-964a-82fa2bed57fd@suse.com">
      <pre wrap="" class="moz-quote-pre">On 14.08.2025 17:09, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">On 8/6/25 5:55 PM, Jan Beulich wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">On 31.07.2025 17:58, Oleksii Kurochko wrote:
</pre>
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">+/* Put any references on the page referenced by pte. */
+static void p2m_put_page(const pte_t pte, unsigned int level)
+{
+    mfn_t mfn = pte_get_mfn(pte);
+    p2m_type_t p2m_type = p2m_get_type(pte);
+
+    ASSERT(pte_is_valid(pte));
+
+    /*
+     * TODO: Currently we don't handle level 2 super-page, Xen is not
+     * preemptible and therefore some work is needed to handle such
+     * superpages, for which at some point Xen might end up freeing memory
+     * and therefore for such a big mapping it could end up in a very long
+     * operation.
+     */
+    switch ( level )
+    {
+    case 1:
+        return p2m_put_2m_superpage(mfn, p2m_type);
+
+    case 0:
+        return p2m_put_4k_page(mfn, p2m_type);
+    }
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">Yet despite the comment not even an assertion for level 2 and up?
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">Not sure that an ASSERT() is needed here as a reference(s) for such page(s)
will be put during domain_relinquish_resources() as there we could do preemption.
Something like Arm does here:
   <a class="moz-txt-link-freetext"
href="https://gitlab.com/xen-project/people/olkur/xen/-/blob/staging/xen/arch/arm/mmu/p2m.c?ref_type=heads#L1587">https://gitlab.com/xen-project/people/olkur/xen/-/blob/staging/xen/arch/arm/mmu/p2m.c?ref_type=heads#L1587</a>

I'm thinking that probably it makes sense to put only 4k page(s) and
all other cases postpone until domain_relinquish_resources() is called.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">How can you defer to domain cleanup? How would handling of foreign mappings
(or e.g. ballooning? not sure) work when you don't drop references as
necessary?</pre>
    </blockquote>
    <pre>I was confused by the code in <code data-start="79"
    data-end="105">relinquish_p2m_mapping()</code>, since it removes
foreign mappings from the P2M. My current understanding is that it is called
for foreign mappings that werenâ€™t explicitly unmapped, in order to drop the
page reference taken when the mapping was created. Initially, I thought it
would be enough to just perform the (un)map in the P2M page tables to have
foreign mapping working, but that could result in a page never being fully
released, which would in turn break or confuse other logic.

So, yes, I agree that your initial suggestion to add ASSERT() is useful to
be sure that no one is using level 2 super-pages for foreign mapping.

</pre>
    <blockquote type="cite"
      cite="mid:117e35e0-d23e-4527-964a-82fa2bed57fd@suse.com">
      <blockquote type="cite">
        <blockquote type="cite">
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">  /* Free pte sub-tree behind an entry */
  static void p2m_free_subtree(struct p2m_domain *p2m,
                               pte_t entry, unsigned int level)
  {
-    panic("%s: hasn't been implemented yet\n", __func__);
+    unsigned int i;
+    pte_t *table;
+    mfn_t mfn;
+    struct page_info *pg;
+
+    /* Nothing to do if the entry is invalid. */
+    if ( !pte_is_valid(entry) )
+        return;
+
+    if ( pte_is_superpage(entry, level) || (level == 0) )
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">Perhaps swap the two conditions around?

</pre>
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">+    {
+#ifdef CONFIG_IOREQ_SERVER
+        /*
+         * If this gets called then either the entry was replaced by an entry
+         * with a different base (valid case) or the shattering of a superpage
+         * has failed (error case).
+         * So, at worst, the spurious mapcache invalidation might be sent.
+         */
+        if ( p2m_is_ram(p2m_get_type(p2m, entry)) &amp;&amp;
+             domain_has_ioreq_server(p2m-&gt;domain) )
+            ioreq_request_mapcache_invalidate(p2m-&gt;domain);
+#endif
+
+        p2m_put_page(entry, level);
+
+        return;
+    }
+
+    table = map_domain_page(pte_get_mfn(entry));
+    for ( i = 0; i &lt; XEN_PT_ENTRIES; i++ )
+        p2m_free_subtree(p2m, table[i], level - 1);
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">In p2m_put_page() you comment towards concerns for level &gt;= 2; no similar
concerns for the resulting recursion here?
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">This function is generic enough to handle any level.

Except that it is possible that it will be needed, for example, to split 1G mapping
into something smaller then p2m_free_subtree() could be called for freeing a subtree
of 1gb mapping.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">The question wasn't about it being generic enough, but it possibly taking
too much time for level &gt;= 2.</pre>
    </blockquote>
    <pre>In this terms it makes sense to add such an assertion which will check that we are
working with levels &lt;= 2.

Thanks.</pre>
    <pre>~ Oleksii
</pre>
  </body>
</html>

--------------FknOeCGiPYNNZXbR6X29R0Mx--


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 08:27:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 08:27:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085592.1443901 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unvDF-0007Pm-DJ; Mon, 18 Aug 2025 08:27:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085592.1443901; Mon, 18 Aug 2025 08:27:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unvDF-0007Pf-A6; Mon, 18 Aug 2025 08:27:29 +0000
Received: by outflank-mailman (input) for mailman id 1085592;
 Mon, 18 Aug 2025 08:27:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=czvt=26=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1unvDD-0007PU-PG
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 08:27:27 +0000
Received: from AM0PR83CU005.outbound.protection.outlook.com
 (mail-westeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c201::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 28fc0a9d-7c0d-11f0-b898-0df219b8e170;
 Mon, 18 Aug 2025 10:27:21 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by VI2PR03MB10788.eurprd03.prod.outlook.com (2603:10a6:800:26e::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.24; Mon, 18 Aug
 2025 08:27:19 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9031.023; Mon, 18 Aug 2025
 08:27: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>
X-Inumbo-ID: 28fc0a9d-7c0d-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MkikN05tqdAHzO60Eobc+UYhLy0l8s0NxiiE8yuMcLiEB5wXolKZBxxIOEteZU2NvxYBjAzg/2cMGlfSqFP+WsduthafLTVaewOH7Gv1namsu0BKb4lJGlZmuhhBKkjIiBSNxZlrNTwgod4cBPrl9TgEawUGV985l/dTJHUZyCM1eCrgO5JuKuGSh2jI4fnOWVAlQlnepG7K0CF+S6a6jRvK/CjVs8qfjEKie9Dw0vll6OfIW5X7ITP8jRiYqKSOIL5vJhF+OujQ+tsbeelUlwCMOtq2ez5yZmxrw5x4kq1ckm042Tb1VldEyjdZm92F96alBOZnJxVp3t4IVt8hqQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=PFz7/BEUKOfEzbRamS65lN5hdMqOqA7ZLGJkCAiGD1M=;
 b=mZuT/rfQVSYFKcD+7+GmccbUv4AwF3Khov3iP+IqwcfN8ZULEJYgDHoMoyIehYJbx9Fvp85Ply6giWDZULhW5bpbOfVFbup5wcopDXA/XBMno/aKnCdA25Qhuh53bXoeiOsL0rcrZBSnEG5J/SwaNM4S3d0v5UyVlGTCVpVFLUkKzH5FLa8uzf9kLQ228K5I0SWxfBbc+GyzIeDXyw4qiHIyR+2XQV50WeVPH7h165hmQ0724HRIj/ckfF3xDlBd0Z87CoJaYb0LXTtyFV9emkDCqWQg8NYcdtQYr333zb3AalIHOXTTgKqIllVv8lPYns91xpwriMzwdLbjcrBwzg==
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=PFz7/BEUKOfEzbRamS65lN5hdMqOqA7ZLGJkCAiGD1M=;
 b=VjWx6oUf+JVImYNSsa/uO/DEygCMiCzE4bHVplbFL95MreIbExjTz0C8Ms9/NtdBP0/4KbeNXCVVbh6KQnmidY25RTjt7ndph85oKHkeeb+BhpvC+MI9CYyMtjuu9vlVigjl64rSMwvfTUF1b5wWejYuS0Aw5NCqMrZevps/62sAT+3OX+Youu+Cka82rm1uYX68r31idhl4S3+1l/GL4XYYzpt3cV4R3cKcGhSUfLSsoAKLLVQvnMgvVMmZPQaQPgPlQCGBaYCTFQMMjajK0g0DzUCSGxl6UteFpUschvS0zvteeXbL1pvvcouu5H+BXx+pWct5XdMNKpZ8Sy7vgA==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien
 Grall <julien@xen.org>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, Nicola
 Vetrini <nicola.vetrini@bugseng.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v2] docs/misra: fix sphinx-build issues
Thread-Topic: [PATCH v2] docs/misra: fix sphinx-build issues
Thread-Index: AQHcDe8as9q/ao3zhECV/xRhyhAMwbRoCj+AgAANtAA=
Date: Mon, 18 Aug 2025 08:27:18 +0000
Message-ID: <1a687b9a-ebf4-495c-8fc8-453547b62dac@epam.com>
References:
 <f31b8d62f16bd272114276f53db842101cd53e52.1755266805.git.dmytro_prokopchuk1@epam.com>
 <17ab13e4-1fba-4c43-ba32-be512e66621e@suse.com>
In-Reply-To: <17ab13e4-1fba-4c43-ba32-be512e66621e@suse.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV2PR03MB9572:EE_|VI2PR03MB10788:EE_
x-ms-office365-filtering-correlation-id: 9b1dc52c-ae90-4944-9a62-08ddde310bbf
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|42112799006|376014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?YndIWnhhSS9PRkFVeGRQRWVNWStVVEd2YWxaUnc0NHV2WCtta3ZOMHV5YWZa?=
 =?utf-8?B?K1hYVXRBTlNCcUtyUGk5c1VIdTd0MTBpejZSWS83WTl2N3ZZcTBWT1U3bU5x?=
 =?utf-8?B?dU9jeld2NUpQb2Evd2k0RGoxdnhtVEZzMzIxUm5VNjZJVFpnZ3I2akgxUUhn?=
 =?utf-8?B?OHJMb0JPN3RvV2tjcHRlQzkyWFRJL05EcUhnRjl5MUtNNmRRNjRsbHdKN1FV?=
 =?utf-8?B?NU5OUzVkRTVEci85RVJEbDhjajJYbC9zZml6SnEzR3NBTkJyU2s3NXQ3SGtV?=
 =?utf-8?B?Tlk3Nko2WFh6dy9pZG9DSDk2bGRTT01QQ1BqM0RqRXJFY09GaU1rZjJ4UmF2?=
 =?utf-8?B?QWNxZkFyTEJpKytNWDIzQkc5cXI5dFRWZjdvM0NmWEl4SmsyYyt5Nm90RU80?=
 =?utf-8?B?Rm5Nc0R1ajVLUVQvbkJBWi9rVkY5QTg0WnNuQmlaWGl3WEkrbFovb1o0djEr?=
 =?utf-8?B?Z1pKditUbzkvUTdzd0ZuTWg5QW1mZmltYTRyWitBUG8wS296Mi9vS29ibzlJ?=
 =?utf-8?B?U3dyS1VlditDRUlxc0hHbnlsaWphWGQ1VkZubGwxR1loR2g0TFlOS2hHMTFp?=
 =?utf-8?B?aDVqTW1jUFRTdEVYMy9HbmlIZi8vWGI2YmlzeGdqQktHa0RURWx6K0J0QlRR?=
 =?utf-8?B?TFhLY0I4Z2dWZ3ZTVWFVcVVpU285RXFES1FGQ1pvb2VkWjJOaFpNckF5b1FY?=
 =?utf-8?B?UnFzQlFwbUNlbGoveTlFUk5QRHEwcmtYcEdjejAvWWdoRHkxenltRnBlUElt?=
 =?utf-8?B?TkZod21NbkRaNG15NzdxNUZONFpGVkoyUlVXV1ZFYzAvcDc2OXYxeGF3SUEx?=
 =?utf-8?B?SEZtU0Q4aTBOS2xiVlpqd3J5dEhsT29HM2NSQUlGUVYrcCs5SXJSTTgxdUFR?=
 =?utf-8?B?MTl0QjdCb2RpYkJ0d1FQR0RSTndkcVJnNmo1bGx1VGRVVllWQUpDaVFKaVI1?=
 =?utf-8?B?NTRpc3dYem1TUFplWFJGcXUvWmthQVhBSDJrdVFsakE3djY5aFRsd3F3RXdj?=
 =?utf-8?B?eTkrdWtONTlWY0NlZmk5UEJ0cjNpRTFFWVZmdnR1cWJockszaDhUV0Q0M0hJ?=
 =?utf-8?B?dnhuTkdaSjlGaDlDcEtNNVNEcnJEU3Z2L2Uydm5FZ0lDdDV2ZkxFamFCTmEz?=
 =?utf-8?B?d2ZOcGlUTjBvVVY4ckhhaWt0SUtpb0hEdUNqUlFVaFQxTjFyeDRwc081Z2V5?=
 =?utf-8?B?UFlCYlNuMlhrS0E3MTFVOFBOc0RKY1lCTk1xTzBvTDZOTWxqOEhnVm5MZTlD?=
 =?utf-8?B?RVBMcm4vQXgrcnhPRzRRRzNNdFdYeS95YTA1amZjNWRIRDBDRTFNZ0xOdnZo?=
 =?utf-8?B?RlpteXBFeEpobVl6amFjMktQNGtreFo5ZUF2L2RiSUlGRFh1b3ErU1dTTW01?=
 =?utf-8?B?WS9tRHpwVGlkUzZ3STJNTXpQTlJSZFUxOWZrbFo4clFNUXp5eStlREk3MWNa?=
 =?utf-8?B?bVJ1Vk5WVUd1TEFRYm9RZ3FLWG1vUUFSQk5SM20wSVVrakZWb2ZETFpiNktC?=
 =?utf-8?B?cG5wNGQ4WjMrc3cwaG1RY3FnSnhKUjFTVmE4OHVKU3o3TzJzVlNpRGxmbGkr?=
 =?utf-8?B?SGNqUENPVXVrZUpiYXJVSlhqaHBmZldlbVBxY25neDdRRjhrSDFRUmdHS0RT?=
 =?utf-8?B?WmpzeVlwMHVOVVFyUGZ3b3hXYmVteXVhT3BDNWErNWR0eTllQUQ2bFZZL0Zo?=
 =?utf-8?B?Q2cxNjRsS0dyd1krQUVqRkhzdW1lUGgrdHhJM2tJZk5wOG92UE9HaUhHYkpY?=
 =?utf-8?B?a05VcllsRVp4VHFSTkRDYTByR2NyeUp4SVBLQ3QrYWcyOTQ2bEZQTHBYSTEx?=
 =?utf-8?B?YzY0eCtNMzUrUEFOcmRra3gwRFEraSt0dVBrUXEydHhEdGZNbGVTZ0Y3VU9r?=
 =?utf-8?B?dzBOMVZwTW80VHB4a1lzbTgrc290NWdEUFVuZlRjRGlOZ2JQcHVZdjJLeHQr?=
 =?utf-8?B?ZUNieHZsUXFGQXBBaUoyU3hNdFU0V3RtVGwydG1Pdk1iV3VsenpYbVIxVWFV?=
 =?utf-8?B?L0s3Z0VqUS9nPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(42112799006)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?Q0tqMWF4eHdycy9zL1Iza3R4MUJ2RGNmcnNndWIwTndiN1hHZjkrbjg5aTVj?=
 =?utf-8?B?ODdRWDEyVVdVYy9Ebi84MGluVHd6VHEzSkhRMXR0REp5SVlYanJkYjNidjc2?=
 =?utf-8?B?QlFXayttQXJ5Vzh0dFRHdjJuMUpQUzM1RU5RdlZSZVJlTWxScWIvTzI4ZnJ2?=
 =?utf-8?B?SW1pdThGVEZBUkxxMlo3OHY2Mitza244M0ZKRWx3QWUvK2dYYndkRUM5VXN2?=
 =?utf-8?B?djBzMlhBbU1tbUJBK2gzeUZ2WUlOTVphczRZeDRRVDdhM2dmN2xTYVJadWhn?=
 =?utf-8?B?U05OWlpxcEl3S2ZmU1ZoeDBlUUtJVmNsakhXOVBscmtYd3UvUGlreG9ZY0RV?=
 =?utf-8?B?enNCVnJldk1TM1FuaGtoQjNsTFdhRk9FblVMVHc1cGZqa0tqV091SGxBeVEr?=
 =?utf-8?B?bDk1VW85U3ZxUDRrYWFLelA3VnRQeUlFMVVUbXh2NEVBSEZnd0IvZ1NSMDNu?=
 =?utf-8?B?YWVSWk5lbUQyS1U4dk93bVp2TTBZVGh1SHJDQ3lSVG9tTVd4dThjNWF3SHJQ?=
 =?utf-8?B?bENkSWZ6N2YyN3FuOVVLMzZjWDhiL01VNFcvRHJsMEhBYXM0MHFwZmJ1bE50?=
 =?utf-8?B?SWVhaDFZNm9VR1ZBMWFVcCt6UFJ1N3ZwM005bkd5ck14THdIcFloTGd6bkdK?=
 =?utf-8?B?RDloZldwTEZFY1BtbkM3WTltYTAxYmpIdWsxSnlvQVJFdloydCs1WlZsR2M5?=
 =?utf-8?B?TTJ4ZTFsSDdFUkRkZkROazR0Y0ptUWFXWkZ5SjJNeURnbWRIVFllSXhZbUZR?=
 =?utf-8?B?TWFLK2xXeXR0K2RyVi9BWlh3OENUV0hqQ0ZxMDQzd1c1OUFSR0k0Sm1YaVZy?=
 =?utf-8?B?bGtGZm5tU0lPV1FDOVYzTURTK2Fpd0FuSXNacUtybUw0VFZ4NVc3V2hrR1Jp?=
 =?utf-8?B?cU5vRWJDZm1TSTZwdHNBYXAwb090bTVyZGtFN2U1NDAzc0ZCNENRazhJeVhq?=
 =?utf-8?B?NjlXMTZoUkZwYmNLSnJPSmFSbUZ0R2tiWnBobG53czVGejZIakNPMzgzWnJz?=
 =?utf-8?B?S3BVWjI3V0x6TmFxVys3ZC9ZcUMzSFlJcUo2dWVJS09Kb2ZXeUtNKzN4Z1Aw?=
 =?utf-8?B?ZjVoT3k2SXNpUENsRXFtZzlLY0FXQkZ6dWhXemJpeTNTeVpWSUJoMmFzTXNH?=
 =?utf-8?B?OE9DWllpMkNFcGxETG0wTnFIY1llYzU0dzNTN1lUUy9LNmRLV3p2MUFNeWxW?=
 =?utf-8?B?NXA1cXNSVk1YM2VSWUxrTnRSRmVxdnpjOG9IbXl0QmdaRTFYbHVZUDloK1dz?=
 =?utf-8?B?N1VyUDFrTmd3NmhqbnMrcWpjSkZnTlZFL0ROZHJNaGl1d2FkdTdvcWRFNXA4?=
 =?utf-8?B?U052d0ZDTFZyZHVBOHZTNkd0aHprUDJuQzBQTEhDSTRkU1hOUUFhWWJnUmdz?=
 =?utf-8?B?OUthdlQ5YzN6b09NMUhWd0FRNDcrU1l6MWFYajZjM2orcHZmNXhWSUtOcjZh?=
 =?utf-8?B?Z3FYRDIvZUo5aS81WTVxWG1BNlZZaVpvVmRBUTBRclE1MEpZem9sYUY3Mnp3?=
 =?utf-8?B?WjJwSFBJR2JKSll4djlMaW5EaDQ1cDdRYUN1aG1FRTVRRG9mSVZ3TGZuSEg3?=
 =?utf-8?B?cDYySzV3MXNWUWlEbnZ1WWlXN0tpOXJCSzRIQjQyOEc4RWFJYllYSjA2T1NG?=
 =?utf-8?B?TXVwSnNHR3c1YzlYMnh1OHpUTnMwQ1R0S0RIczUxQ0ZQYWswbjMvUXVEREVi?=
 =?utf-8?B?Mk9DNWphdk01SHFHQUg1OUx1WWJ0Y2VEbEE1a1d0dkJTdlFKZUNuUGVzNVpV?=
 =?utf-8?B?V3BPc1E5WWUwY1RhMGdiL24vVlowNkhjaW03d2FHUUt2dEdKcklYbVFCUktK?=
 =?utf-8?B?UEgrSWI5L1lKU3R1ZnBac25jNzdGdHBCTEZBbW9Ickh1TzF4ZDNDclo4UlMw?=
 =?utf-8?B?MURzd0FpNkdKRzRkeXBHdStBbzJPZEVxYk4wYStJb2ZITmZjOFl4WjZJYTN0?=
 =?utf-8?B?TXhRd0lUNVJvRSs3UnJEeTFiUUdQUmtsVFhyU1laRVBtcy9OdWtWdHg5WlFU?=
 =?utf-8?B?NDlBOUlyMU5xK3RQQTIrSmZVTjRUbjVib2x1eEtoZHpHbE8yeHNtb09GMkZC?=
 =?utf-8?B?SEVUK1RYdGcrWE9NdjI5K1oxNzA0dE03R3JVa2VIbExKaW55am4xZ3Vqem1B?=
 =?utf-8?B?eWNtMngwYkpWTElDOVBhZXJLZFdTRCtiL3E0RkFuaWRMTHBoMlVQbDhqRmZ5?=
 =?utf-8?B?S0E9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <3346983AF91C1C4FBAEB573867F4B105@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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9b1dc52c-ae90-4944-9a62-08ddde310bbf
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Aug 2025 08:27:18.7823
 (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: bkny5ThWwdnT/wGIeN69XeDAmjVyX261zB3FWWq8IoK+kWlguJeDqY1EXKU6nw42GLgc3zQ5HhrYwGJJqQ8WQschUtKMdVmWEUfga6epLmQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI2PR03MB10788

DQoNCk9uIDgvMTgvMjUgMTA6MzgsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAxNS4wOC4yMDI1
IDE2OjE1LCBEbXl0cm8gUHJva29wY2h1azEgd3JvdGU6DQo+PiBGaXggdGhlIGZvbGxvd2luZyBp
c3N1ZXM6DQo+PiAxLiB4ZW4vZG9jcy9taXNyYS9kZXZpYXRpb25zLnJzdDo5MDogV0FSTklORzog
SW5saW5lIGludGVycHJldGVkIHRleHQgb3INCj4+IHBocmFzZSByZWZlcmVuY2Ugc3RhcnQtc3Ry
aW5nIHdpdGhvdXQgZW5kLXN0cmluZy4gW2RvY3V0aWxzXQ0KPj4gMi4geGVuL2RvY3MvbWlzcmEv
ZGV2aWF0aW9ucy5yc3Q6NTQ6IEVSUk9SOiBFcnJvciBwYXJzaW5nIGNvbnRlbnQgYmxvY2sNCj4+
IGZvciB0aGUgImxpc3QtdGFibGUiIGRpcmVjdGl2ZTogdW5pZm9ybSB0d28tbGV2ZWwgYnVsbGV0
IGxpc3QgZXhwZWN0ZWQsDQo+PiBidXQgcm93IDYgZG9lcyBub3QgY29udGFpbiB0aGUgc2FtZSBu
dW1iZXIgb2YgaXRlbXMgYXMgcm93IDEgKDIgdnMgMykuDQo+PiAqIC0gUjIuMQ0KPj4gICAgLSBD
YWxscyB0byB0aGUgYF9fYnVpbHRpbl91bnJlYWNoYWJsZSgpYCBmdW5jdGlvbiBpbnNpZGUgdGhl
IGV4cGFuc2lvbiBvZg0KPj4gICAgICB0aGUgYEFTU0VSVF9VTlJFQUNIQUJMRSgpYCBtYWNybyBt
YXkgY2F1c2UgYSBmdW5jdGlvbiB0byBiZSBtYXJrZWQgYXMNCj4+ICAgICAgbm9uLXJldHVybmlu
Zy4gVGhpcyBiZWhhdmlvciBvY2N1cnMgb25seSBpbiBjb25maWd1cmF0aW9ucyB3aGVyZQ0KPj4g
ICAgICBhc3NlcnRpb25zIGFyZSBlbmFibGVkLiBUbyBhZGRyZXNzIHRoaXMsIHRoZSBgbm9yZXR1
cm5gIHByb3BlcnR5IGZvcg0KPj4gICAgICBgX19idWlsdGluX3VucmVhY2hhYmxlKClgIGlzIG92
ZXJyaWRkZW4gaW4gdGhlc2UgY29udGV4dHMsIHJlc3VsdGluZyBpbg0KPj4gICAgICB0aGUgYWJz
ZW5jZSBvZiByZXBvcnRzIHRoYXQgZG8gbm90IGhhdmUgYW4gaW1wYWN0IG9uIHNhZmV0eSwgZGVz
cGl0ZQ0KPj4gICAgICBiZWluZyB0cnVlIHBvc2l0aXZlcy4NCj4+ICAgICAgWGVuIGV4cGVjdHMg
ZGV2ZWxvcGVycyB0byBlbnN1cmUgY29kZSByZW1haW5zIHNhZmUgYW5kIHJlbGlhYmxlIGluIGJ1
aWxkcywNCj4+ICAgICAgZXZlbiB3aGVuIGRlYnVnLW9ubHkgYXNzZXJ0aW9ucyBsaWtlIGBBU1NF
UlRfVU5SRUFDSEFCTEUoKSBhcmUgcmVtb3ZlZC4NCj4+IDMuIHhlbi9kb2NzL21pc3JhL3J1bGVz
LnJzdDoxMjc6IFdBUk5JTkc6IElubGluZSBpbnRlcnByZXRlZCB0ZXh0IG9yIHBocmFzZQ0KPj4g
cmVmZXJlbmNlIHN0YXJ0LXN0cmluZyB3aXRob3V0IGVuZC1zdHJpbmcuIFtkb2N1dGlsc10NCj4+
IDQuIHJlbW92ZSBiYWNrdGlja3MgZnJvbSByZWZlcmVuY2VzIHRvIHNvdXJjZSBjb2RlIGluIHRo
ZSBmaWxlIHJ1bGVzLnJzdA0KPj4gdG8gaGF2ZSBhIGNvbnNpc3RlbnQgc3R5bGUgaW4gdGhpcyBm
aWxlDQo+IA0KPiBJIGRvbid0IHVuZGVyc3RhbmQgdGhpczogRm9yIG9uZSwgd2h5IHJlbW92ZSBx
dW90YXRpb24/IFBlcnNvbmFsbHkgSQ0KPiBjb25zaWRlciBzdWNoIHF1b3RpbmcgdXNlZnVsLiBB
bmQgdGhlbiAuLi4NCj4gDQo+PiAtLS0gYS9kb2NzL21pc3JhL2RldmlhdGlvbnMucnN0DQo+PiAr
KysgYi9kb2NzL21pc3JhL2RldmlhdGlvbnMucnN0DQo+PiBAQCAtOTUsNyArOTUsOCBAQCBEZXZp
YXRpb25zIHJlbGF0ZWQgdG8gTUlTUkEgQzoyMDEyIFJ1bGVzOg0KPj4gICAgICAgICAgdGhlIGFi
c2VuY2Ugb2YgcmVwb3J0cyB0aGF0IGRvIG5vdCBoYXZlIGFuIGltcGFjdCBvbiBzYWZldHksIGRl
c3BpdGUNCj4+ICAgICAgICAgIGJlaW5nIHRydWUgcG9zaXRpdmVzLg0KPj4gICAgICAgICAgWGVu
IGV4cGVjdHMgZGV2ZWxvcGVycyB0byBlbnN1cmUgY29kZSByZW1haW5zIHNhZmUgYW5kIHJlbGlh
YmxlIGluIGJ1aWxkcywNCj4+IC0gICAgICAgZXZlbiB3aGVuIGRlYnVnLW9ubHkgYXNzZXJ0aW9u
cyBsaWtlIGBBU1NFUlRfVU5SRUFDSEFCTEUoKSBhcmUgcmVtb3ZlZC4NCj4+ICsgICAgICAgZXZl
biB3aGVuIGRlYnVnLW9ubHkgYXNzZXJ0aW9ucyBsaWtlIGBBU1NFUlRfVU5SRUFDSEFCTEUoKWAg
YXJlIHJlbW92ZWQuDQo+PiArICAgICAtIEVDTEFJUiBoYXMgYmVlbiBjb25maWd1cmVkIHRvIGln
bm9yZSB0aG9zZSBzdGF0ZW1lbnRzLg0KPiANCj4gLi4uIGJhY2t0aWNrcyBhcmUgc3RpbGwga2Vw
dCBoZXJlIChraW5kIG9mIGluIGxpbmUgd2l0aCB3aGF0IHlvdSBzYXkgaW4NCj4gNCwgYnV0IHN0
aWxsIHNvbWV3aGF0IHB1enpsaW5nKS4gV2hlcmVhcyB3aGF0IHlvdSByZW1vdmUgLi4uDQo+IA0K
Pj4gLS0tIGEvZG9jcy9taXNyYS9ydWxlcy5yc3QNCj4+ICsrKyBiL2RvY3MvbWlzcmEvcnVsZXMu
cnN0DQo+PiBAQCAtMTE5LDEyICsxMTksMTIgQEAgbWFpbnRhaW5lcnMgaWYgeW91IHdhbnQgdG8g
c3VnZ2VzdCBhIGNoYW5nZS4NCj4+ICAgICAgICAgICAgLSBTd2l0Y2ggd2l0aCBhIGNvbnRyb2xs
aW5nIHZhbHVlIHN0YXRpY2FsbHkgZGV0ZXJtaW5lZCBub3QgdG8NCj4+ICAgICAgICAgICAgICBt
YXRjaCBvbmUgb3IgbW9yZSBjYXNlIHN0YXRlbWVudHMNCj4+ICAgICAgICAgICAgLSBGdW5jdGlv
bnMgdGhhdCBhcmUgaW50ZW5kZWQgdG8gYmUgcmVmZXJlbmNlZCBvbmx5IGZyb20NCj4+IC0gICAg
ICAgICAgIGFzc2VtYmx5IGNvZGUgKGUuZy4gJ2RvX3RyYXBfZmlxJykNCj4+ICsgICAgICAgICAg
IGFzc2VtYmx5IGNvZGUgKGUuZy4gZG9fdHJhcF9maXEpDQo+IA0KPiAuLi4gZS5nLiBoZXJlIGFy
ZSBzaW5nbGUgcXVvdGVzLg0KPiANCj4gSmFuDQoNCkFzIEkgbWVudGlvbmVkIGJlZm9yZSwgdGhl
c2UgZmlsZXMgKGRldmlhdGlvbnMucnN0IGFuZCBydWxlcy5yc3QpIGhhdmUgDQptaXhlZCBzdHls
ZSBvZiBxdW90ZXMuDQpUaGUgcnVsZXMucnN0IGhhcyB0aHJlZSBwbGFjZXM6DQoxLiAnZG9fdHJh
cF9maXEnDQoyLiBgQVNTRVJUX1VOUkVBQ0hBQkxFKClgDQozLiAndm9pZCBub3JldHVybiAoKiko
Li4uKScsICd2b2lkICgqKSguLi4pJw0KQmVjYXVzZSBBU1NFUlRfVU5SRUFDSEFCTEUgaXMgdXNl
ZCB3aXRoIGJhY2t0aWNrcyBpbiB0aGUgZGV2aWF0aW9ucy5yc3QsIA0KaXQgc2hvdWxkIGhhdmUg
YmFja3RpY2tzIGluIHJ1bGVzLnJzdCBhbHNvIChJIGhvcGUpLg0KQnV0ICMxIGFuZCAjMyBoYXZl
IHNpbmdsZSBxdW90ZXMgLT4gbWl4ZWQgc3R5bGUuDQpTbywgSSBkZWNpZGVkIHRvIHJlbW92ZSBh
bGwgcXVvdGVzIGluIHRoaXMgcnVsZXMucnN0IGZpbGUuDQoNCkkgZGlkbid0IHRvdWNoIGRldmlh
dGlvbnMucnN0LCBiZWNhdXNlIGl0IHdpbGwgYmUgYSBtZXNzLg0KDQpEbXl0cm8u


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 08:28:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 08:28:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085603.1443911 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unvDn-0007wF-Od; Mon, 18 Aug 2025 08:28:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085603.1443911; Mon, 18 Aug 2025 08:28:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unvDn-0007w8-LI; Mon, 18 Aug 2025 08:28:03 +0000
Received: by outflank-mailman (input) for mailman id 1085603;
 Mon, 18 Aug 2025 08:28:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=HKqL=26=oss.qualcomm.com=pratyush.brahma@srs-se1.protection.inumbo.net>)
 id 1unvDm-0007PU-4I
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 08:28:02 +0000
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com
 [205.220.180.131]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3d6cf17b-7c0d-11f0-b898-0df219b8e170;
 Mon, 18 Aug 2025 10:27:56 +0200 (CEST)
Received: from pps.filterd (m0279870.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57I806bS027867
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 08:27:55 GMT
Received: from mail-pg1-f198.google.com (mail-pg1-f198.google.com
 [209.85.215.198])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48jj2ubxhy-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 08:27:54 +0000 (GMT)
Received: by mail-pg1-f198.google.com with SMTP id
 41be03b00d2f7-b471757dec5so7226301a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 01:27: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>
X-Inumbo-ID: 3d6cf17b-7c0d-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	rq6946DzumILvEIR5XWexmQkysEBR7GbvltHkcSl6YA=; b=pH0jjYJTAl7re29P
	eDXYy6doYRSC9/QrUBVDRGmaKfPZCRnt/27BpOESnbmKcDWYQWQE0TN4RjZHB26p
	r31MIs4hA2/C4q4WvJs0F/TcGgCHu/dmVO2NTsFUfLgXGYc273YerMZN4+uFW9F7
	hypGSTOfjNaHRAfD5yZE9ln9D4CBCF4ZoWT6/s894AJcWj4w2Ceci1tqrMg7FZ7T
	8nC/lLMKExRJTWRCvcqmfiA5ilpDfF1xh3HEHJXusTG+HZ4HJHr6VZH5d8Jd3MdY
	0E5ihcuWt8hBw0jAUsx0ZEQNIeQ0WCoiOmTnd4PZxYXj0A6xg9y5MRgUrzX0TcRD
	r1n2kA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755505673; x=1756110473;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=rq6946DzumILvEIR5XWexmQkysEBR7GbvltHkcSl6YA=;
        b=UEOpoWHepclvVUlmJ5n1kGBgWgz2zodTLWfknk+tHePe05HDWammkoLWHkuo96X6c2
         uZHgIVC9Koa/GR/2KFW3PO0OGpXRrfjUW/g2rSdrsAPooMCMpbGotPHpyLesXE+MIVQw
         cLhuDOvnUct42Cdh+bjvBEoF4dMt7QOIUGlglqu/7WqwqS8sKCr0BLVR/3YCiGO6Rgh4
         eiITAFChlMYAVpAjQ+NdiTx7FY6WvXW+EPM+d6gn6kIDU5ss5tMQqRp99fax1iX+7J16
         UnPDVmStdPH6DDJrVZozko4Q56EmL49eRvfT2dI6aB98cBYALQ4ifgKThKAVlRdFo7+e
         4rIw==
X-Forwarded-Encrypted: i=1; AJvYcCXYOEmC+qHAZy5JenbAjs8cmDsyDD1Q5ktf0SSU4OZ+ER5Icfn5Db7mBPonh7qJ8kuq31d6q9geJrI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzdYQdClpKuobFKnyN3wVFGekujO9CFhRHUpDgr9n0K4gUh2Emp
	Mv/pCEwPGu5JcKBxcfg09E/7I9O1dpEi6Ug3mWjMBnEM53kUVJcLYBgXKDAAiT/b3WUt8KoaHmW
	xw7XEcay2/GhPFyPSaW6k63DK7gJtNcWlBC1i8uvwUsOZWUROCnyVmEg7ULJwlpnVe/FCzmmKcQ
	twew24OP8D8gnct/cYJkGCOHzLd3uQEas9WFkiPo5/wK79OpqhXqtOGtc=
X-Gm-Gg: ASbGncvWQUC4HyyYZl7j5YZ3YKAeFOwt7ZcPANbtnWFg2pwhUjgcdmlvzNmW5bdLROF
	YtlgbKvGl49qlYtkK6y2EVhyMPbJPJ5wAgNzePvoSFIjSyi3LxPIVv8JSvC+9z9NwHIDJAplh4I
	5v70dU9vho5nJFC8j77jgt9g==
X-Received: by 2002:a17:902:e842:b0:235:ed01:18cd with SMTP id d9443c01a7336-2446d99e6acmr165826745ad.44.1755505673477;
        Mon, 18 Aug 2025 01:27:53 -0700 (PDT)
X-Google-Smtp-Source: AGHT+IGxmEX0bC4rGj0GsL0Ofny3nTaPHYYQ7bo5uu9L4GZIVv1jBDAAlTveYAPi+e7gAhEyyevMd3DrrsmVZDn0oyA=
X-Received: by 2002:a17:902:e842:b0:235:ed01:18cd with SMTP id
 d9443c01a7336-2446d99e6acmr165826455ad.44.1755505673065; Mon, 18 Aug 2025
 01:27:53 -0700 (PDT)
MIME-Version: 1.0
References: <20250818-numa_memblks-v1-1-9eb29ade560a@oss.qualcomm.com> <d7cdb65d-c241-478c-aa01-bc1a5f188e4f@redhat.com>
In-Reply-To: <d7cdb65d-c241-478c-aa01-bc1a5f188e4f@redhat.com>
From: Pratyush Brahma <pratyush.brahma@oss.qualcomm.com>
Date: Mon, 18 Aug 2025 13:57:41 +0530
X-Gm-Features: Ac12FXzcSoeiNhok4BzoYQfoalKvL5KSge90N69qQ3e47Ph8xq7Ih6FtZXa_xiM
Message-ID: <CALzOmR0C8BFY+-u-_aprVeAhq4uPOQa+f2L5m+yZH+=XZ2cv_w@mail.gmail.com>
Subject: Re: [PATCH] mm/numa: Rename memory_add_physaddr_to_nid to memory_get_phys_to_nid
To: David Hildenbrand <david@redhat.com>
Cc: Madhavan Srinivasan <maddy@linux.ibm.com>,
        Michael Ellerman <mpe@ellerman.id.au>,
        Nicholas Piggin <npiggin@gmail.com>,
        Christophe Leroy <christophe.leroy@csgroup.eu>,
        Heiko Carstens <hca@linux.ibm.com>, Vasily Gorbik <gor@linux.ibm.com>,
        Alexander Gordeev <agordeev@linux.ibm.com>,
        Christian Borntraeger <borntraeger@linux.ibm.com>,
        Sven Schnelle <svens@linux.ibm.com>,
        "Rafael J. Wysocki" <rafael@kernel.org>, Len Brown <lenb@kernel.org>,
        Dan Williams <dan.j.williams@intel.com>,
        Vishal Verma <vishal.l.verma@intel.com>,
        Dave Jiang <dave.jiang@intel.com>, Ira Weiny <ira.weiny@intel.com>,
        Oscar Salvador <osalvador@suse.de>,
        Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
        Danilo Krummrich <dakr@kernel.org>,
        Davidlohr Bueso <dave@stgolabs.net>,
        Jonathan Cameron <jonathan.cameron@huawei.com>,
        Alison Schofield <alison.schofield@intel.com>,
        "K. Y. Srinivasan" <kys@microsoft.com>,
        Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>,
        Dexuan Cui <decui@microsoft.com>,
        Pankaj Gupta <pankaj.gupta.linux@gmail.com>,
        "Michael S. Tsirkin" <mst@redhat.com>,
        Jason Wang <jasowang@redhat.com>,
        Xuan Zhuo <xuanzhuo@linux.alibaba.com>,
        =?UTF-8?Q?Eugenio_P=C3=A9rez?= <eperezma@redhat.com>,
        Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Andrew Morton <akpm@linux-foundation.org>,
        Mike Rapoport <rppt@kernel.org>, linuxppc-dev@lists.ozlabs.org,
        linux-kernel@vger.kernel.org, linux-s390@vger.kernel.org,
        linux-acpi@vger.kernel.org, nvdimm@lists.linux.dev, linux-mm@kvack.org,
        linux-cxl@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Authority-Analysis: v=2.4 cv=MJ9gmNZl c=1 sm=1 tr=0 ts=68a2e40b cx=c_pps
 a=Qgeoaf8Lrialg5Z894R3/Q==:117 a=IkcTkHD0fZMA:10 a=2OwXVqhp2XgA:10
 a=20KFwNOVAAAA:8 a=EUspDBNiAAAA:8 a=uSFNSxTeKwDZCnUuY58A:9 a=QEXdDO2ut3YA:10
 a=x9snwWr2DeNwDh03kgHS:22
X-Proofpoint-ORIG-GUID: j80potzZSsxDAdcQvQgXwG68usNspFQP
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODE2MDAzMSBTYWx0ZWRfXy2hYisprSVG+
 6OeQPd8OUTwwFJF/YuWhwY27zTgaIfYoGUqB7lRUMp8UKOTh6IuAAcCEETMiDVbUgZAYEoTCraW
 7RZrdla0VG9w02h4J+YXjUtb0U+xrvUXZMArD6EwMVbRGWx9e1eQYIk7w69GRhwDTPHuvEh6GBC
 VTrfvd6MSuOCSzKlDc8Pd2CnH1Xe9yDrT6rbSXyOyfAoQDrFGudRuhtqIZFc9AC6ap9g2k1Kjvi
 NsOj4ki5EvoGo69Se0z6Edaz6vYzUt0x/Qd1Jk40wASGGBF89uDtiG3U5cQB7rD7Zk1weZBPn8v
 A6lVm1V8b11jp+BFUYA+7C4Nires+Rbg5BP6l1YKoj3XNia0d84StInv7ZYmlZY5YTOL39DpTLs
 auwsLf9s
X-Proofpoint-GUID: j80potzZSsxDAdcQvQgXwG68usNspFQP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40
 definitions=2025-08-18_03,2025-08-14_01,2025-03-28_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 adultscore=0 impostorscore=0 phishscore=0 bulkscore=0 malwarescore=0
 spamscore=0 clxscore=1015 priorityscore=1501 suspectscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508160031

On Mon, Aug 18, 2025 at 12:29=E2=80=AFPM David Hildenbrand <david@redhat.co=
m> wrote:
>
> On 18.08.25 08:41, pratyush.brahma@oss.qualcomm.com wrote:
> > From: Pratyush Brahma <pratyush.brahma@oss.qualcomm.com>
> >
> > The function `memory_add_physaddr_to_nid` seems a misnomer.
> > It does not to "add" a physical address to a NID mapping,
> > but rather it gets the NID associated with a given physical address.
>
> You probably misunderstood what the function is used for: memory hotplug
> aka "memory_add".
Thanks for your feedback. I get the part about memory hotplug here but
using memory_add still seems a little odd as it doesn't truly reflect
what this api is doing.
However, I agree that my current suggestion
may not be the perfect choice for the name, so I'm open to suggestions.

Perhaps, something like "memory_add_get_nid_by_phys" may work here?
>
> This patch is making matters worse by stripping that detail, unfortunatel=
y.
>
>
> --
> Cheers
>
> David / dhildenb
>
Thanks and Regards
Pratyush


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 08:31:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 08:31:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085616.1443920 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unvGk-0001GZ-5S; Mon, 18 Aug 2025 08:31:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085616.1443920; Mon, 18 Aug 2025 08:31: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 1unvGk-0001GS-2O; Mon, 18 Aug 2025 08:31:06 +0000
Received: by outflank-mailman (input) for mailman id 1085616;
 Mon, 18 Aug 2025 08:31:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wfwg=26=cloud.com=christian.lindig@srs-se1.protection.inumbo.net>)
 id 1unvE0-0007PU-9M
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 08:28:16 +0000
Received: from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com
 [2a00:1450:4864:20::42c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 48ad16fd-7c0d-11f0-b898-0df219b8e170;
 Mon, 18 Aug 2025 10:28:14 +0200 (CEST)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-3b9dc52c430so1805744f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 01:28:14 -0700 (PDT)
Received: from smtpclient.apple ([46.149.103.15])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3bb676c971bsm11774347f8f.32.2025.08.18.01.28.13
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Mon, 18 Aug 2025 01:28:13 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 48ad16fd-7c0d-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1755505694; x=1756110494; darn=lists.xenproject.org;
        h=to:references:message-id:content-transfer-encoding:cc:date
         :in-reply-to:from:subject:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rS6PQPad+qJTxoHm41QxOqqPQHlC8QY6Sq3VU7PA8xE=;
        b=g0WROmyEujTZsYTcbg6tg6wc+UMwPMHFYXbm0l/DbEoAh7vbdC1ObwcqDhhUceHioA
         Nn4ifVTqVQdai0qBmIOVx8y35hf1dCcsUn6dWgDgFAOLflSMhtgMZnQBgbDs9Lm4EdAI
         m/Zd4WMN3laXWVqlkQqpZ/pSTvXcQvbEW5tuQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755505694; x=1756110494;
        h=to:references:message-id:content-transfer-encoding:cc:date
         :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=rS6PQPad+qJTxoHm41QxOqqPQHlC8QY6Sq3VU7PA8xE=;
        b=kIfuuLUaDG2UgEq3bkBtn8inac2BCFI8aQemR9hwqKLiTcoHVscNbVy8omLNyVsk+T
         hMMvdxzD2gCZ1IOU9e7y7RxFCO+LOTES09C6D4lQuWt1Gkz3UT9hRxJKJ0CYrYI0KI0/
         +Rk1rvkIdd4sARPmxTtTseoJ9KaWHsBFevy5/q+CCGsdFN9m7I4go9SVhFmZDPb15PFe
         lyWAgsXBox/zyJsaVYmstXNO50TfJi28vjIj/Ygf2Fh4vQfrVfUHu3hkkQ8nG6VFerTa
         BwTwmBzOj/YnC53Jn0AC92Fke4RqNuHUo8kv6DIMt1sgS+eR6x6HXV8wNzku4gZVHRHg
         kekw==
X-Gm-Message-State: AOJu0YxSghRtVeyBgp5U7tXf902VYstN4IfwstnIni6Yyih3sxpsgyIw
	mNXjwf67UEMfXIz8j7b2VEcxFxO0kwKayQweu9SmGq999ltDYf5hTFuo7yWVaGn69cQ=
X-Gm-Gg: ASbGncuHT9lQd9EhzCcHwXvK1VRpr/yU5wAkXkoopeGeewwrziyJX8fhGWl6mmiRXZw
	QIzcJP+zQPSeQP7+0rTGQivPk3stzbrjb/x9Xa8wEigSoJ5SlrV0JtRucxKDt9Ac2Fwf5p2QUOw
	TI3+s3ukGYUQfjILqR6WHHsutlwoAANuwxEW51d8xGTssEUOzPDcVOs6YGiBiYZbjf4RrVQu9jc
	XrnAZf2FnSefkfVfW0N+z4WEVbJsm+UnGNDb+Cr1zF+AAgImiGkVj0gskeLhLdyeb7uTFK2Z08o
	5lEbf6g3VmCpXXphToFLIzmK8bcBEJBw7XlZ/AMPBcCM75ahFT1+cOQc1HOPSXlJfPp57/3Kqtp
	t97ky+FBHLKYNCQPtdE29nG97BNtkf8oG+gedDbHRkHGEbjg=
X-Google-Smtp-Source: AGHT+IFXnJ4pGa0CUa7tQNI5bN+73fIC/JfHYWuoqHfsx7UimU1ob495QUyM4/dzZ1E5TFYmcE0/Zw==
X-Received: by 2002:a05:6000:430e:b0:3ba:d257:b662 with SMTP id ffacd0b85a97d-3bb6710022cmr7114124f8f.18.1755505693899;
        Mon, 18 Aug 2025 01:28:13 -0700 (PDT)
Content-Type: text/plain;
	charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3826.500.181.1.5\))
Subject: Re: [PATCH v2 7/7] xen: New API to claim memory for a domain using
 XEN_DOMCTL_claim_memory
From: Christian Lindig <christian.lindig@cloud.com>
In-Reply-To: <cc9119869fb87f02b287250d9bb33962a6d35961.1755341947.git.bernhard.kaindl@cloud.com>
Date: Mon, 18 Aug 2025 09:28:02 +0100
Cc: xen-devel@lists.xenproject.org,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>,
 =?utf-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Juergen Gross <jgross@suse.com>,
 Christian Lindig <christian.lindig@citrix.com>,
 David Scott <dave@recoil.org>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Content-Transfer-Encoding: quoted-printable
Message-Id: <D25EB8BD-B7DF-4102-90C6-89637362E722@cloud.com>
References: <cover.1755341947.git.bernhard.kaindl@cloud.com>
 <cc9119869fb87f02b287250d9bb33962a6d35961.1755341947.git.bernhard.kaindl@cloud.com>
To: Bernhard Kaindl <bernhard.kaindl@cloud.com>
X-Mailer: Apple Mail (2.3826.500.181.1.5)

Acked-by: Christian Lindig <christian.lindig@cloud.com>


> On 16 Aug 2025, at 12:19, Bernhard Kaindl <bernhard.kaindl@cloud.com> =
wrote:
>=20
> Add the new hypercall requested during the review of the v1 series
> do not require changing the API for multi-node claims.
>=20
> The hypercall receives a number of claims, intented to be one claim =
per
> NUMA node, and limited to one claim for now. The changes to update the
> NUMA claims management to handle updating the claims for multiple
> NUMA nodes of a domain at once are deferred to the next series.
>=20
> Signed-off-by: Bernhard Kaindl <bernhard.kaindl@cloud.com>
> Cc: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
> ---
> tools/flask/policy/modules/dom0.te  |  1 +
> tools/flask/policy/modules/xen.if   |  1 +
> tools/include/xenctrl.h             |  4 +++
> tools/libs/ctrl/xc_domain.c         | 42 +++++++++++++++++++++++++++++
> tools/ocaml/libs/xc/xenctrl.ml      |  9 +++++++
> tools/ocaml/libs/xc/xenctrl.mli     |  9 +++++++
> tools/ocaml/libs/xc/xenctrl_stubs.c | 21 +++++++++++++++
> xen/common/domain.c                 | 30 +++++++++++++++++++++
> xen/common/domctl.c                 |  8 ++++++
> xen/include/public/domctl.h         | 17 ++++++++++++
> xen/include/xen/domain.h            |  2 ++
> xen/xsm/flask/hooks.c               |  3 +++
> xen/xsm/flask/policy/access_vectors |  2 ++
> 13 files changed, 149 insertions(+)

> +
> +    /* Use an array to not need changes for multi-node claims in the =
future */
> +    if ( nr_claims )
> +    {
> +        size_t bytes =3D sizeof(memory_claim_t) * nr_claims;
> +
> +        buffer =3D xc_hypercall_buffer_alloc(xch, buffer, bytes);
> +        if ( buffer =3D=3D NULL )
> +        {
> +            PERROR("Could not allocate memory for =
xc_domain_claim_memory");
> +            return -1;
> +        }
> +        memcpy(buffer, claims, bytes);
> +        set_xen_guest_handle(domctl.u.claim_memory.claims, buffer);
> +    }
> +
> +    ret =3D do_domctl(xch, &domctl);
> +    xc_hypercall_buffer_free(xch, buffer);
> +    return ret;
> +}

Should this be "if (nr_claims > 0)=E2=80=9D or have an assertion against =
negative values?

=E2=80=94 C



From xen-devel-bounces@lists.xenproject.org Mon Aug 18 08:31:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 08:31:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085622.1443930 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unvH3-0001pu-E6; Mon, 18 Aug 2025 08:31:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085622.1443930; Mon, 18 Aug 2025 08:31: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 1unvH3-0001pl-AJ; Mon, 18 Aug 2025 08:31:25 +0000
Received: by outflank-mailman (input) for mailman id 1085622;
 Mon, 18 Aug 2025 08:31:24 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=rFjA=26=redhat.com=david@srs-se1.protection.inumbo.net>)
 id 1unvH2-0001ku-L3
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 08:31:24 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.129.124])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b62fc47b-7c0d-11f0-b898-0df219b8e170;
 Mon, 18 Aug 2025 10:31:19 +0200 (CEST)
Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com
 [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-163-lLf9u_weMcqOXGfoFG1xEg-1; Mon, 18 Aug 2025 04:31:16 -0400
Received: by mail-wm1-f69.google.com with SMTP id
 5b1f17b1804b1-45a1b0cfbafso23520285e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 01:31:16 -0700 (PDT)
Received: from ?IPV6:2003:d8:2f22:600:53c7:df43:7dc3:ae39?
 (p200300d82f22060053c7df437dc3ae39.dip0.t-ipconnect.de.
 [2003:d8:2f22:600:53c7:df43:7dc3:ae39])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3bb64a40c3asm12015938f8f.14.2025.08.18.01.31.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Aug 2025 01:31: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>
X-Inumbo-ID: b62fc47b-7c0d-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1755505877;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=IrBtZYA5Z28bn60ohedxv6GlFgI1zXS/Odi0JqkPxhE=;
	b=MviD3leTV9mFV5GVUcRmCDtj7YbQ2Zrab1eIgTFQ598L7Ze1PxD6VmaTkpucex2lfQiRCn
	RwEbjSUhqGeJj7G052DGLh3E54EgbHMAZeEytCAcA0O6vlQihz0MyanHq1DhpP9Mdye2gr
	GG3ZCcTx3TSw9vmpL8rV1xF5FhAZCFc=
X-MC-Unique: lLf9u_weMcqOXGfoFG1xEg-1
X-Mimecast-MFC-AGG-ID: lLf9u_weMcqOXGfoFG1xEg_1755505875
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755505875; x=1756110675;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :from:references:cc:to:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=IrBtZYA5Z28bn60ohedxv6GlFgI1zXS/Odi0JqkPxhE=;
        b=aj+C02tJx1wQnCqAL48tVlZQ8wFVhmeq+RBKOmF9VcteJjp9vnJgmc5tvUS+fl6Dxu
         SZC76apum75UPo55DORmLOWulhbw8ajvEzkUxfj4m3foF1UC4CNEDZX1j29erbDcM8pN
         GqflzOEVFMpBo4rrHWsDu8vvVXJmdOp5DycFw2OaYuRRGzr5CE5HH3y3fweDHX0tdku2
         /cEa8/cKc79M/meJ3S4shEGmneT7Va9o6ROouR3aVY9T8qAdmowMu1c5CI7//RQKyhCx
         y0n5cfF09OtZ+9LO3Ouqz3PwiP/XM+r9giYgLQ9gRPulrno0gys41xiB8IJ4SD+HcTPw
         1euw==
X-Forwarded-Encrypted: i=1; AJvYcCWb8TFlhN94L+A/7zBuzaoEsPj2gZJ1GVWIBQk6bc6uSz0m4EteoC2eekylUjaJD4CU18g9CHOC0PE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxwXUaiqXwubAbdFnnQCvZqdPaxbEHLwPkTfcv/vphADMVvzMAS
	3ex/vbd5/L3eLvP3PbsEMmjIRpqoZUh1Ot2iKhquO42GMbBbugVmR1vJ0i+TPZZeYxqoFPkjfQI
	YcSTS9VgpUD4vOweYHjVxL/Xtjf/+Kmd7FU6OXwzdaRw+Me58fnfNSUnjvKXdel1dX0lw
X-Gm-Gg: ASbGncuCym/pdMOzMbBIgxl6xN7/mDxlC2EqS/AtYczzNSpLc3ZyFY+svjm22sjXU0S
	A2JIW4A8I8S79hUzyjvMolIJ5NVge7CNfj4ghQtDojbFkoddAmI54bxoLb8FcFW7dqq6SJfZLie
	6DWrPQCOTaKj7JeHk9zSa2F4G5gjcfMJ52Lbh/gayQkYvary9J9SiywrhxPFKHeeoNKvKWnUSIk
	I6+v6N1BJiL4mYlpiJAs9OFnJPffxpCxxH+wJu7PLw+UUZn5Iz025wGIrlhvwFJELnmWvr2foFX
	2gXFfsgIou9Exj68rTzq6lIJuPA6NN8pB3IazgpVdRC6JJTLRG5xy3PeHPZqO6Jzwq0EW5H5BAm
	zDyHYnwDksyZMrVonG8cTsHO/pozy6MZb0UBX4PRk0TLsMGZg+RsZl7SnaQiMmJO5
X-Received: by 2002:a05:600c:a43:b0:459:a1c7:99ad with SMTP id 5b1f17b1804b1-45a21839edbmr81793175e9.22.1755505875232;
        Mon, 18 Aug 2025 01:31:15 -0700 (PDT)
X-Google-Smtp-Source: AGHT+IFUJ0JHZagWj9XCwRsqfc1oqsDUPxyV3bXjzLuhESOGbYeY8B2myjjJBUZ0Oh+caqJMAY5Uow==
X-Received: by 2002:a05:600c:a43:b0:459:a1c7:99ad with SMTP id 5b1f17b1804b1-45a21839edbmr81792535e9.22.1755505874765;
        Mon, 18 Aug 2025 01:31:14 -0700 (PDT)
Message-ID: <63082884-1fe2-4740-8e6a-e1d06aa5e239@redhat.com>
Date: Mon, 18 Aug 2025 10:31:12 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] mm/numa: Rename memory_add_physaddr_to_nid to
 memory_get_phys_to_nid
To: Pratyush Brahma <pratyush.brahma@oss.qualcomm.com>
Cc: Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Heiko Carstens <hca@linux.ibm.com>, Vasily Gorbik <gor@linux.ibm.com>,
 Alexander Gordeev <agordeev@linux.ibm.com>,
 Christian Borntraeger <borntraeger@linux.ibm.com>,
 Sven Schnelle <svens@linux.ibm.com>, "Rafael J. Wysocki"
 <rafael@kernel.org>, Len Brown <lenb@kernel.org>,
 Dan Williams <dan.j.williams@intel.com>,
 Vishal Verma <vishal.l.verma@intel.com>, Dave Jiang <dave.jiang@intel.com>,
 Ira Weiny <ira.weiny@intel.com>, Oscar Salvador <osalvador@suse.de>,
 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
 Danilo Krummrich <dakr@kernel.org>, Davidlohr Bueso <dave@stgolabs.net>,
 Jonathan Cameron <jonathan.cameron@huawei.com>,
 Alison Schofield <alison.schofield@intel.com>,
 "K. Y. Srinivasan" <kys@microsoft.com>,
 Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>,
 Dexuan Cui <decui@microsoft.com>, Pankaj Gupta
 <pankaj.gupta.linux@gmail.com>, "Michael S. Tsirkin" <mst@redhat.com>,
 Jason Wang <jasowang@redhat.com>, Xuan Zhuo <xuanzhuo@linux.alibaba.com>,
 =?UTF-8?Q?Eugenio_P=C3=A9rez?= <eperezma@redhat.com>,
 Juergen Gross <jgross@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Andrew Morton <akpm@linux-foundation.org>, Mike Rapoport <rppt@kernel.org>,
 linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org,
 linux-s390@vger.kernel.org, linux-acpi@vger.kernel.org,
 nvdimm@lists.linux.dev, linux-mm@kvack.org, linux-cxl@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 xen-devel@lists.xenproject.org
References: <20250818-numa_memblks-v1-1-9eb29ade560a@oss.qualcomm.com>
 <d7cdb65d-c241-478c-aa01-bc1a5f188e4f@redhat.com>
 <CALzOmR0C8BFY+-u-_aprVeAhq4uPOQa+f2L5m+yZH+=XZ2cv_w@mail.gmail.com>
From: David Hildenbrand <david@redhat.com>
Autocrypt: addr=david@redhat.com; keydata=
 xsFNBFXLn5EBEAC+zYvAFJxCBY9Tr1xZgcESmxVNI/0ffzE/ZQOiHJl6mGkmA1R7/uUpiCjJ
 dBrn+lhhOYjjNefFQou6478faXE6o2AhmebqT4KiQoUQFV4R7y1KMEKoSyy8hQaK1umALTdL
 QZLQMzNE74ap+GDK0wnacPQFpcG1AE9RMq3aeErY5tujekBS32jfC/7AnH7I0v1v1TbbK3Gp
 XNeiN4QroO+5qaSr0ID2sz5jtBLRb15RMre27E1ImpaIv2Jw8NJgW0k/D1RyKCwaTsgRdwuK
 Kx/Y91XuSBdz0uOyU/S8kM1+ag0wvsGlpBVxRR/xw/E8M7TEwuCZQArqqTCmkG6HGcXFT0V9
 PXFNNgV5jXMQRwU0O/ztJIQqsE5LsUomE//bLwzj9IVsaQpKDqW6TAPjcdBDPLHvriq7kGjt
 WhVhdl0qEYB8lkBEU7V2Yb+SYhmhpDrti9Fq1EsmhiHSkxJcGREoMK/63r9WLZYI3+4W2rAc
 UucZa4OT27U5ZISjNg3Ev0rxU5UH2/pT4wJCfxwocmqaRr6UYmrtZmND89X0KigoFD/XSeVv
 jwBRNjPAubK9/k5NoRrYqztM9W6sJqrH8+UWZ1Idd/DdmogJh0gNC0+N42Za9yBRURfIdKSb
 B3JfpUqcWwE7vUaYrHG1nw54pLUoPG6sAA7Mehl3nd4pZUALHwARAQABzSREYXZpZCBIaWxk
 ZW5icmFuZCA8ZGF2aWRAcmVkaGF0LmNvbT7CwZoEEwEIAEQCGwMCF4ACGQEFCwkIBwICIgIG
 FQoJCAsCBBYCAwECHgcWIQQb2cqtc1xMOkYN/MpN3hD3AP+DWgUCaJzangUJJlgIpAAKCRBN
 3hD3AP+DWhAxD/9wcL0A+2rtaAmutaKTfxhTP0b4AAp1r/eLxjrbfbCCmh4pqzBhmSX/4z11
 opn2KqcOsueRF1t2ENLOWzQu3Roiny2HOU7DajqB4dm1BVMaXQya5ae2ghzlJN9SIoopTWlR
 0Af3hPj5E2PYvQhlcqeoehKlBo9rROJv/rjmr2x0yOM8qeTroH/ZzNlCtJ56AsE6Tvl+r7cW
 3x7/Jq5WvWeudKrhFh7/yQ7eRvHCjd9bBrZTlgAfiHmX9AnCCPRPpNGNedV9Yty2Jnxhfmbv
 Pw37LA/jef8zlCDyUh2KCU1xVEOWqg15o1RtTyGV1nXV2O/mfuQJud5vIgzBvHhypc3p6VZJ
 lEf8YmT+Ol5P7SfCs5/uGdWUYQEMqOlg6w9R4Pe8d+mk8KGvfE9/zTwGg0nRgKqlQXrWRERv
 cuEwQbridlPAoQHrFWtwpgYMXx2TaZ3sihcIPo9uU5eBs0rf4mOERY75SK+Ekayv2ucTfjxr
 Kf014py2aoRJHuvy85ee/zIyLmve5hngZTTe3Wg3TInT9UTFzTPhItam6dZ1xqdTGHZYGU0O
 otRHcwLGt470grdiob6PfVTXoHlBvkWRadMhSuG4RORCDpq89vu5QralFNIf3EysNohoFy2A
 LYg2/D53xbU/aa4DDzBb5b1Rkg/udO1gZocVQWrDh6I2K3+cCs7BTQRVy5+RARAA59fefSDR
 9nMGCb9LbMX+TFAoIQo/wgP5XPyzLYakO+94GrgfZjfhdaxPXMsl2+o8jhp/hlIzG56taNdt
 VZtPp3ih1AgbR8rHgXw1xwOpuAd5lE1qNd54ndHuADO9a9A0vPimIes78Hi1/yy+ZEEvRkHk
 /kDa6F3AtTc1m4rbbOk2fiKzzsE9YXweFjQvl9p+AMw6qd/iC4lUk9g0+FQXNdRs+o4o6Qvy
 iOQJfGQ4UcBuOy1IrkJrd8qq5jet1fcM2j4QvsW8CLDWZS1L7kZ5gT5EycMKxUWb8LuRjxzZ
 3QY1aQH2kkzn6acigU3HLtgFyV1gBNV44ehjgvJpRY2cC8VhanTx0dZ9mj1YKIky5N+C0f21
 zvntBqcxV0+3p8MrxRRcgEtDZNav+xAoT3G0W4SahAaUTWXpsZoOecwtxi74CyneQNPTDjNg
 azHmvpdBVEfj7k3p4dmJp5i0U66Onmf6mMFpArvBRSMOKU9DlAzMi4IvhiNWjKVaIE2Se9BY
 FdKVAJaZq85P2y20ZBd08ILnKcj7XKZkLU5FkoA0udEBvQ0f9QLNyyy3DZMCQWcwRuj1m73D
 sq8DEFBdZ5eEkj1dCyx+t/ga6x2rHyc8Sl86oK1tvAkwBNsfKou3v+jP/l14a7DGBvrmlYjO
 59o3t6inu6H7pt7OL6u6BQj7DoMAEQEAAcLBfAQYAQgAJgIbDBYhBBvZyq1zXEw6Rg38yk3e
 EPcA/4NaBQJonNqrBQkmWAihAAoJEE3eEPcA/4NaKtMQALAJ8PzprBEXbXcEXwDKQu+P/vts
 IfUb1UNMfMV76BicGa5NCZnJNQASDP/+bFg6O3gx5NbhHHPeaWz/VxlOmYHokHodOvtL0WCC
 8A5PEP8tOk6029Z+J+xUcMrJClNVFpzVvOpb1lCbhjwAV465Hy+NUSbbUiRxdzNQtLtgZzOV
 Zw7jxUCs4UUZLQTCuBpFgb15bBxYZ/BL9MbzxPxvfUQIPbnzQMcqtpUs21CMK2PdfCh5c4gS
 sDci6D5/ZIBw94UQWmGpM/O1ilGXde2ZzzGYl64glmccD8e87OnEgKnH3FbnJnT4iJchtSvx
 yJNi1+t0+qDti4m88+/9IuPqCKb6Stl+s2dnLtJNrjXBGJtsQG/sRpqsJz5x1/2nPJSRMsx9
 5YfqbdrJSOFXDzZ8/r82HgQEtUvlSXNaXCa95ez0UkOG7+bDm2b3s0XahBQeLVCH0mw3RAQg
 r7xDAYKIrAwfHHmMTnBQDPJwVqxJjVNr7yBic4yfzVWGCGNE4DnOW0vcIeoyhy9vnIa3w1uZ
 3iyY2Nsd7JxfKu1PRhCGwXzRw5TlfEsoRI7V9A8isUCoqE2Dzh3FvYHVeX4Us+bRL/oqareJ
 CIFqgYMyvHj7Q06kTKmauOe4Nf0l0qEkIuIzfoLJ3qr5UyXc2hLtWyT9Ir+lYlX9efqh7mOY
 qIws/H2t
In-Reply-To: <CALzOmR0C8BFY+-u-_aprVeAhq4uPOQa+f2L5m+yZH+=XZ2cv_w@mail.gmail.com>
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: aodvscB1_8z9ffOoRuWR7eWfiTL8WUgUT7DcjY5pziE_1755505875
X-Mimecast-Originator: redhat.com
Content-Language: en-US
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 18.08.25 10:27, Pratyush Brahma wrote:
> On Mon, Aug 18, 2025 at 12:29â€¯PM David Hildenbrand <david@redhat.com> wrote:
>>
>> On 18.08.25 08:41, pratyush.brahma@oss.qualcomm.com wrote:
>>> From: Pratyush Brahma <pratyush.brahma@oss.qualcomm.com>
>>>
>>> The function `memory_add_physaddr_to_nid` seems a misnomer.
>>> It does not to "add" a physical address to a NID mapping,
>>> but rather it gets the NID associated with a given physical address.
>>
>> You probably misunderstood what the function is used for: memory hotplug
>> aka "memory_add".
> Thanks for your feedback. I get the part about memory hotplug here but
> using memory_add still seems a little odd as it doesn't truly reflect
> what this api is doing.
> However, I agree that my current suggestion
> may not be the perfect choice for the name, so I'm open to suggestions.
> 
> Perhaps, something like "memory_add_get_nid_by_phys" may work here?

I don't think this name is really any better and worth the churn :(

-- 
Cheers

David / dhildenb



From xen-devel-bounces@lists.xenproject.org Mon Aug 18 08:31:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 08:31:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085626.1443941 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unvH9-0002Bh-KY; Mon, 18 Aug 2025 08:31:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085626.1443941; Mon, 18 Aug 2025 08:31: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 1unvH9-0002BW-Hu; Mon, 18 Aug 2025 08:31:31 +0000
Received: by outflank-mailman (input) for mailman id 1085626;
 Mon, 18 Aug 2025 08:31:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=q+DX=26=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1unvH7-0001ku-UU
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 08:31:29 +0000
Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com
 [2a00:1450:4864:20::62d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bc1987b0-7c0d-11f0-b898-0df219b8e170;
 Mon, 18 Aug 2025 10:31:28 +0200 (CEST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-afcb7a16441so591039666b.2
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 01:31:28 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afcdce53eccsm758883766b.19.2025.08.18.01.31.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Aug 2025 01:31: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>
X-Inumbo-ID: bc1987b0-7c0d-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755505887; x=1756110687; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ufTV9yb7EWwTifzkKQGotfy3d0T3We0zou2B9TTj27w=;
        b=ZcyEexFjNzm5wRKEUYO8OM4c2noBJRRnZI/29h+HqFzMpXqj5eXg1Acsythu4eX2/j
         RWW04/fsXdn85eSiWRJOxOvwui2PG9sh/eCmyRkx5LPFRL7DuKY0wrHSj92wAfiRRHpM
         IKnN3R5JPaDVDUb+JxR7BMNaHuMFnG2bodUEgCrmri6vy4DDuNvx7PfS2VWAefBQD2L2
         OMKReKoXb43z5PHoZZEPZbUgMyA3dOM1rmWrhm0TcOgjENHgViI6OZHzy1nn6clGHJah
         3lGKmgJVOh+CD72MIZEEwDlTFYtNEt+Vf+K9ehxdXCLqXuMlVYb9zZWS0BcXyWPgUL6s
         DeaQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755505888; x=1756110688;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ufTV9yb7EWwTifzkKQGotfy3d0T3We0zou2B9TTj27w=;
        b=XHqEv5/PtxpUxNiAn8Y1wWZ/+VF8/WWUH66c40OIkDNC4UOdDT345bDK9p80+7Ardf
         iMIoetliItH7STXKEfglCNGavN3vBwgV0sIOlo5hd7xShiVCLewsEHX+PU/TFaOSL4Yh
         ZMSCt45A9m9siwQq2RWWckUSpN1RQLK6awFwwT3MeMCq0vagfEVy4B/ZlWwY2wOJVM6N
         0JkjoHG8mkjPB+EUdvrN22SWCRkmN1F2vc1CO5u9anNI6lnQRhcHbD7fiDR1Rgmw07oM
         tkFgEWNHNsDW8ZSCnXvpvbJh+mRuPLyYU0FvvgH6GWteyEa9GBB3f/Bx9IgUXbsD088M
         UTZA==
X-Forwarded-Encrypted: i=1; AJvYcCUImUnt3i6QJuib/acHotpQAp0GvMdOgf0X4W1OLuma2mZhwZmRpKs9NFBSyLVbBkEuYEM4E+nzIFc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxam4FItq/XtE0upltKuYoqE9id2gZYTERWl66f4MFSh2AYyACU
	j/oHXFMADDm4LqmBjPX2h05m+lNd+zj3ARq1R5uMJN24mFa3NIm8HRGKR6YgB3sF7g==
X-Gm-Gg: ASbGncskYEaGMPQQ+uVmD/j0UlOG5yFEN79s56oZzb6SnNZ4VHbgaI4TVwIDiQSzZ+z
	2xcPMSwglV5CIeXa/GQiy3tCdGhzmibM5qyVPh1NcHFHDg7YMcKfaukKRTnm7yvI840Nqdrx/33
	KR/WWrsNoETv8FTZCCaWoDh14wyZ0p14BqB75WPla0bhhJfiheSU7RRPj5FQvZJEvgeEYuv3aaC
	WWWHcAJu8eK4Gu20vDI+cusOTev4nHQshTylaYiKgWFiQcmZuFA6Hsy6pfgfgw40VAXeNhGzIP1
	Lz7VFw8SRG0lNkHBqP9zXOeaNOHlbFSUBpZ/e6bj61rhgVByd4esLKBfG0djZEm0VXgOsG7eJiW
	+BdaL3GCFXhodWmsu+p9Nv3hBuK+3te7kosE86Q6rcQpAZADFH7FPOcxzZJUr9dtQ/eyn9N0CEw
	OhHEqrprI=
X-Google-Smtp-Source: AGHT+IGGNdpqZtCrSiKl7h+/rKglrRsKPfqLFVI3z+wkQRl2W6nNtVFJCW/OJD8tcdJNgotSRMdx0Q==
X-Received: by 2002:a17:907:7ea8:b0:af9:38ed:5b49 with SMTP id a640c23a62f3a-afcdc2062c1mr1027390966b.5.1755505887483;
        Mon, 18 Aug 2025 01:31:27 -0700 (PDT)
Message-ID: <fb6f559a-b2aa-4b25-a6d3-401ecc4b4bd5@suse.com>
Date: Mon, 18 Aug 2025 10:31:26 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE
To: Penny Zheng <Penny.Zheng@amd.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: ray.huang@amd.com, 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: <20250815102728.1340505-1-Penny.Zheng@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: <20250815102728.1340505-1-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.08.2025 12:27, Penny Zheng wrote:
> In order to fix CI error of a randconfig picking both PV_SHIM_EXCLUSIVE=y and
> HVM=y results in hvm.c being built, but domctl.c not being built, which leaves
> a few functions, like domctl_lock_acquire/release() undefined, causing linking
> to fail.
> To fix that, we intend to move domctl.o out of the PV_SHIM_EXCLUSIVE Makefile
> /hypercall-defs section, with this adjustment, we also need to release
> redundant vnuma_destroy() stub definition from PV_SHIM_EXCLUSIVE guardian,
> to not break compilation
> Above change will leave dead code in the shim binary temporarily and will be
> fixed with the introduction of domctl-op wrapping.

Well, "temporarily" is now getting interesting. While v1 of "Introduce
CONFIG_DOMCTL" was submitted in time to still be eligible for taking into
4.21, that - as indicated elsewhere - is moving us further in an unwanted
direction. Hence I'm not sure this can even be counted as an in-time
submission. Plus it looks to be pretty extensive re-work in some areas.
Hence I'm somewhat weary as to 4.21 here. IOW question, mainly to Oleksii,
is whether to
1) strive to complete that work in time (and hence take the patch here),
2) take the patch here, accepting the size regression for the shim, or
3) revert what has caused the randconfig issues, and retry the effort in
   4.22.

> Fixes: 568f806cba4c ("xen/x86: remove "depends on !PV_SHIM_EXCLUSIVE"")
> Reported-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>

My earlier question (when the patch still was part of a series) sadly has
remained unanswered: You've run this through a full round of testing this
time?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 08:34:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 08:34:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085649.1443951 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unvKA-00035c-7a; Mon, 18 Aug 2025 08:34:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085649.1443951; Mon, 18 Aug 2025 08:34: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 1unvKA-00035V-4Y; Mon, 18 Aug 2025 08:34:38 +0000
Received: by outflank-mailman (input) for mailman id 1085649;
 Mon, 18 Aug 2025 08:34:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=HKqL=26=oss.qualcomm.com=pratyush.brahma@srs-se1.protection.inumbo.net>)
 id 1unvK9-00035J-2A
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 08:34:37 +0000
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com
 [205.220.180.131]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2b76ee86-7c0e-11f0-a329-13f23c93f187;
 Mon, 18 Aug 2025 10:34:35 +0200 (CEST)
Received: from pps.filterd (m0279873.ppops.net [127.0.0.1])
 by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57I7V4w9026361
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 08:34:34 GMT
Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com
 [209.85.214.199])
 by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 48kyunr5m9-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 08:34:34 +0000 (GMT)
Received: by mail-pl1-f199.google.com with SMTP id
 d9443c01a7336-2445805d386so41155905ad.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 01:34: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>
X-Inumbo-ID: 2b76ee86-7c0e-11f0-a329-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=
	cc:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
	YKnYr324eUUhj+QvrdVq/1e4Gz0w8e7EzwXqGsvWiSk=; b=Aze4Y5K8XQlzwnRF
	KS2Vkdxd7n2qp5VewK8A0a6hxTVqbzMOozD5we+cTVDCFI/JgzI4KiILotlO/UDT
	5nep91KwnnHHqgiAzY1H8M3CWe1zTEmZYyWHunj4Ox0D6WSd5grZgkLGRwPg1VDC
	AV7KF5nJZeWoctIPiE0ufDcHdCnyV7xMUGfrwbXbmIslahVPylvI9zmR1/9esOJY
	AFEx5vpmQjcRyyhWxPm+CoJZ5aqsnT0c5D/yh/yGTOu1npeEZWylk1LpzGMfAn+L
	zrROeF6fcgqEzADtHMgH4NoIVLArFoA6z69DOF0yue7AxwnGRTjpFvxh/tfVJGe1
	wi1rZg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755506073; x=1756110873;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=YKnYr324eUUhj+QvrdVq/1e4Gz0w8e7EzwXqGsvWiSk=;
        b=rAefTKdjgLQpoAiwDbLvyHZBhwJkfiHkaYAjEvIlVmqDZ1H2kh66aQQ00JiGH+bIzx
         ZUXYG25nV20/rT+IQHLOiUVAg/v83HLa0rg050JN/+Kb6Ba7z9bkA8RvBgKEfElDLk0h
         KUFoFm5JQgTW4/9nANAlttGV8eso226ms3XFna9bNZNf4InwkJ9QuqOrXRGLtWiAl5h1
         zxUZKDUM/fSjXENSeEK7kqkBPI3uuuUy4BRqqP6LjCV6PIDe83M3u83slpyA0w5Vs4cD
         3U32HLev1sjxBDcO4unOR5dSSCo7Iv31ziRpReZZmQHLBoMYYvI8inaUPwArwBXIMfct
         4mJg==
X-Forwarded-Encrypted: i=1; AJvYcCX21Wv0cX/RdgxtuYpU5w8O21SvmWTExBuSL0rbyE+HqNwCoYW4BfG041mDhNvDg9nFdmJM2Lxomk0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxwsOMJxpqRnsaKUcVd96LDvaCmka7XQCyYbESqCpfU7y9wBZ0u
	SLn4JRTyhzX1B3Ekmf2ITI/ySL/saElShII9A4VgZddvQIjJhT1ITvSdS/AzC2NOaSZ8ObJoqQl
	jX0rgDFy+fZianZJ/cBEx0MelQz+gT9r25Ne9KwwUuX08AhxM+cEI+oMR5IDXNKDno3ZlBv5hST
	L4HmQhXayJq1sOrFWQh08W5KpUvVv3gUAJ6SNh1SSzlKI1
X-Gm-Gg: ASbGnctNuvE6Xh0NMBxVaLmv+kxTK1LN7cM318BgTIbPU2/mi4YeJFYNl4Qz8H4V0KK
	43FcuYS8T8Dwp4ruuRgfPb6wkfqJK5adSai2ssoJP3/zGuLEWFeD1kgdyEDraLduspk8z5ctZPD
	dw0yLmC2yuYjpk0EjXZXxoeA==
X-Received: by 2002:a17:903:b07:b0:23d:fa76:5c3b with SMTP id d9443c01a7336-2446d745130mr162002055ad.22.1755506072928;
        Mon, 18 Aug 2025 01:34:32 -0700 (PDT)
X-Google-Smtp-Source: AGHT+IF0iaKkOx5HF+G/2fDa+4Vn+rw7qYZXEvgZcGmIZ96t7UkZ4Y6iVl499qKwZ/lWHVbWQiw75ZkO9MQbjWLb6hM=
X-Received: by 2002:a17:903:b07:b0:23d:fa76:5c3b with SMTP id
 d9443c01a7336-2446d745130mr162001485ad.22.1755506072460; Mon, 18 Aug 2025
 01:34:32 -0700 (PDT)
MIME-Version: 1.0
References: <20250818-numa_memblks-v1-1-9eb29ade560a@oss.qualcomm.com>
 <d7cdb65d-c241-478c-aa01-bc1a5f188e4f@redhat.com> <CALzOmR0C8BFY+-u-_aprVeAhq4uPOQa+f2L5m+yZH+=XZ2cv_w@mail.gmail.com>
 <63082884-1fe2-4740-8e6a-e1d06aa5e239@redhat.com>
In-Reply-To: <63082884-1fe2-4740-8e6a-e1d06aa5e239@redhat.com>
From: Pratyush Brahma <pratyush.brahma@oss.qualcomm.com>
Date: Mon, 18 Aug 2025 14:04:20 +0530
X-Gm-Features: Ac12FXzX5PzSlv6roYThUOo89xclaREe5qOUHnsYKt7fIrY-t8kJ9YEJL5m2flQ
Message-ID: <CALzOmR0MJv8EgPiFTvvbdkk8H_0BEDA4QQXKyqRPOCwwzGwjsw@mail.gmail.com>
Subject: Re: [PATCH] mm/numa: Rename memory_add_physaddr_to_nid to memory_get_phys_to_nid
To: David Hildenbrand <david@redhat.com>
Cc: Madhavan Srinivasan <maddy@linux.ibm.com>,
        Michael Ellerman <mpe@ellerman.id.au>,
        Nicholas Piggin <npiggin@gmail.com>,
        Christophe Leroy <christophe.leroy@csgroup.eu>,
        Heiko Carstens <hca@linux.ibm.com>, Vasily Gorbik <gor@linux.ibm.com>,
        Alexander Gordeev <agordeev@linux.ibm.com>,
        Christian Borntraeger <borntraeger@linux.ibm.com>,
        Sven Schnelle <svens@linux.ibm.com>,
        "Rafael J. Wysocki" <rafael@kernel.org>, Len Brown <lenb@kernel.org>,
        Dan Williams <dan.j.williams@intel.com>,
        Vishal Verma <vishal.l.verma@intel.com>,
        Dave Jiang <dave.jiang@intel.com>, Ira Weiny <ira.weiny@intel.com>,
        Oscar Salvador <osalvador@suse.de>,
        Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
        Danilo Krummrich <dakr@kernel.org>,
        Davidlohr Bueso <dave@stgolabs.net>,
        Jonathan Cameron <jonathan.cameron@huawei.com>,
        Alison Schofield <alison.schofield@intel.com>,
        "K. Y. Srinivasan" <kys@microsoft.com>,
        Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>,
        Dexuan Cui <decui@microsoft.com>,
        Pankaj Gupta <pankaj.gupta.linux@gmail.com>,
        "Michael S. Tsirkin" <mst@redhat.com>,
        Jason Wang <jasowang@redhat.com>,
        Xuan Zhuo <xuanzhuo@linux.alibaba.com>,
        =?UTF-8?Q?Eugenio_P=C3=A9rez?= <eperezma@redhat.com>,
        Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Andrew Morton <akpm@linux-foundation.org>,
        Mike Rapoport <rppt@kernel.org>, linuxppc-dev@lists.ozlabs.org,
        linux-kernel@vger.kernel.org, linux-s390@vger.kernel.org,
        linux-acpi@vger.kernel.org, nvdimm@lists.linux.dev, linux-mm@kvack.org,
        linux-cxl@vger.kernel.org, linux-hyperv@vger.kernel.org,
        virtualization@lists.linux.dev, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Proofpoint-GUID: 0PggYd9rQg3QLmqxpyannjEkKd6qeAQE
X-Authority-Analysis: v=2.4 cv=N6UpF39B c=1 sm=1 tr=0 ts=68a2e59a cx=c_pps
 a=JL+w9abYAAE89/QcEU+0QA==:117 a=IkcTkHD0fZMA:10 a=2OwXVqhp2XgA:10
 a=20KFwNOVAAAA:8 a=EUspDBNiAAAA:8 a=AFlVVsuRyXfiT6IdkpsA:9 a=QEXdDO2ut3YA:10
 a=324X-CrmTo6CU4MGRt3R:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODE4MDA3MSBTYWx0ZWRfX78rLrxAKSq8Y
 RkafkVqFGrLquNuumVXP5X3mi4jphYuYdWa/m3DAOCOZsqyBkXXGn13EuhePGf31CzOd+8qWP5p
 DqwDNFBJtXlo0yP+9qZKhartkfpuA20e0RjsXg9oF7ptj7r3mWAmbfJ33316gPUlWfyhR2i167C
 p31DhRQtDgcChHrdHnedHUj2qZBSEkiHWJCka/adlfJuXFQFycUs07z4P8sKWaC0Epg9vS5M8Dq
 vd4r1wIU93E9Da8tXsfkkwWc1+y7j2Ehw7kdQvZXW2ElxNNszvumzAy7nima3j0k647ZryicsJG
 t0MZA547Wkdvf/AndItGt7Ap7he4zwHu5uJc7gxTMKGm6QpK6NVBc15alVeN/OlUVIAuEWbTXSQ
 U1A5Vo77
X-Proofpoint-ORIG-GUID: 0PggYd9rQg3QLmqxpyannjEkKd6qeAQE
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40
 definitions=2025-08-18_03,2025-08-14_01,2025-03-28_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
 bulkscore=0 adultscore=0 clxscore=1015 malwarescore=0 impostorscore=0
 suspectscore=0 phishscore=0 priorityscore=1501 spamscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508180071

On Mon, Aug 18, 2025 at 2:01=E2=80=AFPM David Hildenbrand <david@redhat.com=
> wrote:
>
> On 18.08.25 10:27, Pratyush Brahma wrote:
> > On Mon, Aug 18, 2025 at 12:29=E2=80=AFPM David Hildenbrand <david@redha=
t.com> wrote:
> >>
> >> On 18.08.25 08:41, pratyush.brahma@oss.qualcomm.com wrote:
> >>> From: Pratyush Brahma <pratyush.brahma@oss.qualcomm.com>
> >>>
> >>> The function `memory_add_physaddr_to_nid` seems a misnomer.
> >>> It does not to "add" a physical address to a NID mapping,
> >>> but rather it gets the NID associated with a given physical address.
> >>
> >> You probably misunderstood what the function is used for: memory hotpl=
ug
> >> aka "memory_add".
> > Thanks for your feedback. I get the part about memory hotplug here but
> > using memory_add still seems a little odd as it doesn't truly reflect
> > what this api is doing.
> > However, I agree that my current suggestion
> > may not be the perfect choice for the name, so I'm open to suggestions.
> >
> > Perhaps, something like "memory_add_get_nid_by_phys" may work here?
>
> I don't think this name is really any better and worth the churn :(
>
Sure. Thanks for taking a look. Will drop this.
> --
> Cheers
>
> David / dhildenb
>
Thanks & Regards
Pratyush


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 08:50:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 08:50:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085665.1443982 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unvZ8-0006Rk-9U; Mon, 18 Aug 2025 08:50:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085665.1443982; Mon, 18 Aug 2025 08:50:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unvZ8-0006Pe-36; Mon, 18 Aug 2025 08:50:06 +0000
Received: by outflank-mailman (input) for mailman id 1085665;
 Mon, 18 Aug 2025 08:50:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=HFvU=26=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1unvZ6-0005gf-Sv
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 08:50:04 +0000
Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com
 [2a00:1450:4864:20::12c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 54d520fc-7c10-11f0-b898-0df219b8e170;
 Mon, 18 Aug 2025 10:50:03 +0200 (CEST)
Received: by mail-lf1-x12c.google.com with SMTP id
 2adb3069b0e04-55cf526f6b5so1268147e87.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 01:50:03 -0700 (PDT)
Received: from yp-VivoBook-ASUSLaptop-M1503QA-M1503QA.. ([95.67.15.120])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-55cef351579sm1571950e87.4.2025.08.18.01.50.01
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 18 Aug 2025 01:50: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>
X-Inumbo-ID: 54d520fc-7c10-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1755507003; x=1756111803; 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=gDyBEr2C8bHK7ao0mUQj4cm53R0gNtsq0NOW3g9oj/Q=;
        b=A1rjufAi3lZXZTSURI0bfI2U/Pdc6x5j4iDByNK7ByFmpoQfM0zS22+4w1syyVupVv
         9WQB/bQhMFY3NeqI0rwTX6LprJe5jaZ50Ixt2UX2iUxLT9eI2c8k/67ohtF4g7F3UaHI
         LbMMmzaP0umoAJOuK+BLJY9zpOv2Gf1HxNLnJJndBtUgkLYLQ+P/JmhdPNedDXUhamsz
         zsdlxne2GFHCQG1EPXNrsWjXQlhk1hnFz5vaTp1oYuP6Pqp13zHMtX8gvQVVrtWCJsNH
         MPNbfC0lT+MwpmDAybdUBox3kniuI8hd8SiLtEesN9JV+SYvmFauR6XuvBI0/w4mvawj
         3OMg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755507003; x=1756111803;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=gDyBEr2C8bHK7ao0mUQj4cm53R0gNtsq0NOW3g9oj/Q=;
        b=J61AtUyZknAWN0zKCztKDbNHft3fHQ/VJX4CLvXtXBzeTB37vj1lEUOdCH0KIpDzEV
         RQNZClRUBnrinCjXdPVLMwTvQZFcp97Ouf27Xfikvubg0OsZJBjVHuDC4Rdhn0WLERKq
         aovoExkt4/r/4D7aMKF6q0ZC2I3C27GkWI5YOHOJ8ynPUsJUnc4RYH890Cun3g5eQkYX
         mT/jrr66LNFif6MqFPLgrPw8J9gyf0H7Ye+Wg6SSbPdxyEJjmsXEjy2g7sZ2lSH4cl/Z
         Z10BaEzQlW87R0f2YyzQ8ooDN2G34mMDS6Os3tl+tKUkgd5TyU/CjVZiak/xyKZ64DUQ
         nhxA==
X-Gm-Message-State: AOJu0Yw1HYQ1pRsNNzcUPUOokxizNxV3rYSLDtPDKP32GTSMj1hGEnN1
	6iiJaGifHhxx5DTetpH3PNXge3VNzrXXR0BqvMBCvKasVmI1A4VXpjWbFeYnVQ==
X-Gm-Gg: ASbGncuoOykF3xFysDu3m/0vWN1GVAgPCKVD0yqnAKPSgVWqUGqoxbah+eXmarS5Fhd
	3IL+/BY6zywIMK9RLJKL5iCmpkpDtc1G3SttHeGQz9uayv9RYEGBeifbjUGoN+AD9ItqDjIch4k
	ZsRWZdh/Z7k1Qk0xIMgXn1y/Dn020wBlD1Mg4ee4pXEdZPD+ol8vH+hySStcbFvy6j42Ks2aldK
	yscFsFsRMX7LMkW+nUYSfoftABi1uoTH8dVxqzBAMU2Ngjh4rep19fts/eSHXKuF9Q48ajoFrqz
	EKcL2tKxl/6BkcEDg/dOt40n4j4DpuszkhPNPoqFGcLfQW2ntdWBI9z32+1+aKP1n3q3/WCU/0r
	r7KGz1DfGAopo3Noe431OfQj1cC//I8JIg21ce42aOaZn+q5u6qs9/TuIQ03PUcY43Js5r5tG
X-Google-Smtp-Source: AGHT+IGr02AXeA3n+BBNzDAuN5HRALbJi4k1/BBbrpK7ZkUVsp5aYN7mgH3NCmtvPfPRLdgTDba5hQ==
X-Received: by 2002:a05:6512:3da1:b0:55c:c9d5:d344 with SMTP id 2adb3069b0e04-55ceeb69a1fmr2850612e87.28.1755507002219;
        Mon, 18 Aug 2025 01:50:02 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v9 3/4] SUPPORT.md: Document PSCI SYSTEM_SUSPEND support for guests
Date: Mon, 18 Aug 2025 11:49:26 +0300
Message-ID: <433d74567cabf33c2a672afc0f96e58efec75c54.1755506449.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.1755506449.git.mykola_kvach@epam.com>
References: <cover.1755506449.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

Add a new entry under the "Virtual Hardware, QEMU" section documenting
support for the optional PSCI SYSTEM_SUSPEND function exposed to guests.

This function is available via the virtual PSCI (vPSCI) interface and
allows guest domains (domUs) to initiate system suspend operations.

The feature is currently marked as Experimental.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in v6:
- Dropped the generic guest PSCI support entry (merged in a separate patch)
- This patch now documents only the SYSTEM_SUSPEND optional function
- Reworded commit message to match the final form after rebase

Changes in v5:
- Dropped ARM/PSCI entry: this refers to internal use of PSCI SMC calls,
  which is not relevant for SUPPORT.md
- Added a dedicated entry for PSCI SYSTEM_SUSPEND instead of generic guest
  PSCI info; guest PSCI support was documented in a separate patch
---
 SUPPORT.md | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/SUPPORT.md b/SUPPORT.md
index 6a82a92189..b5ab049b52 100644
--- a/SUPPORT.md
+++ b/SUPPORT.md
@@ -962,8 +962,9 @@ Emulated PSCI interface exposed to guests. We support all mandatory
 functions of PSCI 1.1. See below for the list of optional PSCI call
 implemented and their status.
 
-   Status, Mandatory: Supported
-   Status, MIGRATE_INFO_TYPE: Supported
+    Status, Mandatory: Supported
+    Status, MIGRATE_INFO_TYPE: Supported
+    Status, SYSTEM_SUSPEND: Experimental
 
 ## Virtual Hardware, QEMU
 
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 18 08:50:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 08:50:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085662.1443961 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unvZ3-0005L3-FG; Mon, 18 Aug 2025 08:50:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085662.1443961; Mon, 18 Aug 2025 08:50: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 1unvZ3-0005Kw-C7; Mon, 18 Aug 2025 08:50:01 +0000
Received: by outflank-mailman (input) for mailman id 1085662;
 Mon, 18 Aug 2025 08:49:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=HFvU=26=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1unvZ1-0005Kq-OO
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 08:49:59 +0000
Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com
 [2a00:1450:4864:20::132])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5236df53-7c10-11f0-a329-13f23c93f187;
 Mon, 18 Aug 2025 10:49:58 +0200 (CEST)
Received: by mail-lf1-x132.google.com with SMTP id
 2adb3069b0e04-55ce526ac04so3694199e87.2
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 01:49:58 -0700 (PDT)
Received: from yp-VivoBook-ASUSLaptop-M1503QA-M1503QA.. ([95.67.15.120])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-55cef351579sm1571950e87.4.2025.08.18.01.49.55
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 18 Aug 2025 01:49: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>
X-Inumbo-ID: 5236df53-7c10-11f0-a329-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1755506998; x=1756111798; 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=hW/7VFVj3gFV3bTpR8NW4J9ddwdqSRR2zUWCWCtlG8k=;
        b=UaD8kElSGNQdiZbQBgOeW6oXlaG/6qXEz/NB5qnbaIyX5FXZRY/fU5M7C/d8d4UKRu
         /KGl9CKe7NkxetGYGQf7hXG0AhkXrqwOUPINB5L2ddd+Jc2BqfpetDlJq/TWtMd3Ljhf
         Y9Kg1iLSJ60hd4ZGaRPjvqlxD1FUvN/H6zWIWjP9+WgSXJVpcTAr5e60nJesaFsxvvgi
         CcSpDAuDeU5gEu48ee9gNK3PMRvP6jysqs0VSl7KkxNezkQAYozoIQqtd0sO7gzUHVoB
         LBlxNCAixwbrClYi2HRfKrqfFtwixgv19Lz+NKWunwuWnEPTuDv3KdhEvfMNliGtmU/9
         Ya7Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755506998; x=1756111798;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=hW/7VFVj3gFV3bTpR8NW4J9ddwdqSRR2zUWCWCtlG8k=;
        b=Bebkp/2O0QNK5st2iR2GzQsaYBgT7aA0VrYUlogi7LE7NcETQAIEIUkBIfU69i6Mhj
         wu2qRGpLnaIxdDSf8yIC8l/Rhg+w7LomUNui1KfqQntPXFkSdjuhse5qjNcIPwOV2g6Y
         +/kyqOr4ycCMa3N5Ge4ulwrWYhw4Zi6yAw7g9hi2Frr18BGhX5sdxn0LwGkKhnKhFmYF
         bi4F1iMF5hsMmvnCKhVT1ic9Y4We+YiW+2OG3zycgKViAW1iI+VlZusI3Xig35l6ViL+
         TdF1Lb/OvpqHfH3wJur2LjNnhHfsGWEkndCzwt2qIBgiczx9X+zbpXu0KjcIzO5hkC0a
         DP7g==
X-Gm-Message-State: AOJu0Yy7nL+gwx/Km5mXyoq+pipUxL5jAtEhd2s0v5gH6XXPNhtomLgI
	iijNZ1nng6Mp1tMBGqIhx0M/3Pw2vB2oNDEcO9DRbxRKt/9rSuaPsEA/XINU5w==
X-Gm-Gg: ASbGncsorO37shb2EBPahY7CxQZQdFC3EvbuJNdr2MLMIpBHnBHezf6e4Vz+8NYT9zT
	HfQ6u8dVRmscT4mgS87z96AoHU76+Y0uNM2uZo+IDHS36VSn92XewxNK6geKI5VFOdLOGmbjnLO
	NmPctmUyzH6m7elu+2GejqdbRlq6XGiB3KGEd8gPFJHEbkJlhz9Zy1GayBD3vmXQL4DgiHP5sp/
	imbUVt0N/VjQuReUZmoH5BImx/7TVzEN52vsVQp4Uf79BvN/EBcj1/ZdTwGm47FYl77F0FnHyv5
	v39X4fTRUS43UY7/wg7YSFz/eNwvPTloDHy+1wJ61oLtrDqDAEe2bcs2S/xEkyHfB4AZYOwwkh0
	YDI3WlQddGybb2+Uca6OfU1Q+k4tWVDzb8I/2kol7v36bFLc4VDQtXZQne9C3HPYtucmgROAtUV
	8+UTCKToQ=
X-Google-Smtp-Source: AGHT+IH004jORsTtNpWQSNfLNVA8Fwtmr6rKuVx2zqiCUvCqettieqJJqSTMHcp+BjYSyfqz7v0WDQ==
X-Received: by 2002:a05:6512:118a:b0:55c:e5c3:29c with SMTP id 2adb3069b0e04-55ceebbaf89mr3325010e87.56.1755506997770;
        Mon, 18 Aug 2025 01:49: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>,
	Juergen Gross <jgross@suse.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Community Manager <community.manager@xenproject.org>
Subject: [PATCH v9 0/4] Enable guest suspend/resume support on ARM via vPSCI
Date: Mon, 18 Aug 2025 11:49:23 +0300
Message-ID: <cover.1755506449.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.48.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

This patch series introduces the initial support for guest suspend
and resume on ARM platforms using the PSCI SYSTEM_SUSPEND interface. The main
goal is to allow ARM guests to request suspension using PSCI and be resumed
by the control domain (e.g., via "xl resume").

### Background

The PSCI SYSTEM_SUSPEND call is part of the PSCI v1.0+ specification and is
used by guests to enter the deepest possible power state. On Xen/ARM, we
emulate this interface in the virtual PSCI (vPSCI) layer for guests.

This series includes:

1. A new vPSCI implementation of the PSCI SYSTEM_SUSPEND function for guests
2. Documentation updates to SUPPORT.md to reflect PSCI and vPSCI support status
3. Enabling "xl resume" command compilation for ARM, which was previously disabled

### Usage

For Linux-based guests:
  - Suspend can be triggered using: "echo mem > /sys/power/state" or "systemctl suspend"
  - Resume can be performed from control domain using: "xl resume <domain>"

For more information, refer to the official Linux kernel documentation on power management.

Note that currently, SYSTEM_SUSPEND is supported only for guest domains (not for
the hardware domain).
---

TODO: enable "xl suspend" for ARM
---

This is the first part of previous patch series and originally consist only
with necessary changes needed for guest domain suspend.

The second part can be found here:
    https://patchew.org/Xen/cover.1754943874.git.mykola._5Fkvach@epam.com/

Changes in V9:
- no functional changes
- enhance commit message and add extra comment to the code after review

Changes in V8:
- GIC and virtual timer context saved when the domain suspends
- rework locking
- minor changes after code review

Changes in V7:
- add proper locking
- minor changes after code review

Main changes in V6:
- Skip execution of ctxt_switch_from for VCPUs in paused domains.
- Implement domain_resume_nopause
- Add a helper to determine if a VCPU is in suspended domain.
- Ignore upper 32 bits of arguments for 64-bit domains calling SMC32 SYSTEM_SUSPEND.
- Macro renamed from LIBXL_HAVE_NO_SUSPEND_RESUME to LIBXL_HAVE_NO_SUSPEND for clarity.
- Documentation now focuses only on the SYSTEM_SUSPEND function, with improved wording and structure.
- Changelog and commit messages refined for clarity and to remove redundant explanations.

Main change in V5:
  - Reverted the logic related to suspending domains. Instead of the standby
    mode introduced in v4, domains now resume execution at the point provided
    during suspend

The rest of the minor changes are described in the changelog of each commit.

Previous versions of this patch series:
  V1: https://lists.xenproject.org/archives/html/xen-devel/2018-11/msg01093.html
  V2: https://marc.info/?l=xen-devel&m=166514782207736&w=2
  V3: https://lists.xenproject.org/archives/html/xen-devel/2025-03/msg00168.html

Mykola Kvach (4):
  xen/arm: Implement PSCI SYSTEM_SUSPEND call for guests
  tools/xl: Allow compilation of 'xl resume' command on Arm
  SUPPORT.md: Document PSCI SYSTEM_SUSPEND support for guests
  CHANGELOG: Document guest suspend/resume to RAM support on Arm

 CHANGELOG.md                          |   2 +
 SUPPORT.md                            |   5 +-
 tools/include/libxl.h                 |   1 -
 tools/xl/xl.h                         |   4 +-
 tools/xl/xl_cmdtable.c                |   4 +-
 tools/xl/xl_migrate.c                 |   2 +-
 tools/xl/xl_saverestore.c             |   2 +-
 tools/xl/xl_vmcontrol.c               |  12 +--
 xen/arch/arm/domain.c                 |  17 +++--
 xen/arch/arm/include/asm/perfc_defn.h |   1 +
 xen/arch/arm/include/asm/psci.h       |   2 +
 xen/arch/arm/include/asm/vpsci.h      |   2 +-
 xen/arch/arm/vpsci.c                  | 101 ++++++++++++++++++++++----
 xen/common/domain.c                   |  31 ++++++--
 xen/include/xen/sched.h               |   6 ++
 15 files changed, 148 insertions(+), 44 deletions(-)

-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 18 08:50:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 08:50:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085664.1443977 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unvZ8-0006Mp-2N; Mon, 18 Aug 2025 08:50:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085664.1443977; Mon, 18 Aug 2025 08:50: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 1unvZ7-0006L1-Qq; Mon, 18 Aug 2025 08:50:05 +0000
Received: by outflank-mailman (input) for mailman id 1085664;
 Mon, 18 Aug 2025 08:50:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=HFvU=26=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1unvZ6-0005gf-Ly
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 08:50:04 +0000
Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com
 [2a00:1450:4864:20::12c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5410581f-7c10-11f0-b898-0df219b8e170;
 Mon, 18 Aug 2025 10:50:02 +0200 (CEST)
Received: by mail-lf1-x12c.google.com with SMTP id
 2adb3069b0e04-55ce528022eso4210518e87.3
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 01:50:02 -0700 (PDT)
Received: from yp-VivoBook-ASUSLaptop-M1503QA-M1503QA.. ([95.67.15.120])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-55cef351579sm1571950e87.4.2025.08.18.01.49.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 18 Aug 2025 01:49:59 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5410581f-7c10-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1755507001; x=1756111801; 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=iKQtb2yDXXgVIM20M/9ZKDqMqVSaENj70H3OApwPWOA=;
        b=UJilwVKl8v1Hiym+CCGJObk6o8weilog7NRSjetJglxjcdzH2H4nmPHEIf0XRtOZFf
         3Z8t1EPSkqIeiSPfwgb08dE4FcdkLv4xY3VtJmLgJ+MVUXhL8YIUsC54yG2ucyT0RM0J
         n6l168AVwcPIbQQSqnzBdZ5iiSWEK09QGmYhsvxbvbOkZS+XUm49g/Ju6AAMwbBjrplh
         XrNfsnzQdnUSMeFp77hibPTNHMavAKs+8gw9xHGQb3C1Cf1rrPEYUwYu007Z+GIo9r/Z
         XCD2siahN1O58uu2LgBqCP9E3XH3xGTP7JH6VvH54wV9o2Bss+ZmLplJeNawJrCAwaDt
         Mjpg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755507001; x=1756111801;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=iKQtb2yDXXgVIM20M/9ZKDqMqVSaENj70H3OApwPWOA=;
        b=oGHfiONwmkvta9XY5097PvPFg3+6bggzEehlZF4uS3UzSq6/i1D0OZ6UQkKvWj/KO3
         /0RIqKN+Uu5FLo7pm8IZMNFNud6rexTzvDR82LHFECqt2NG30MF1C2HTaPsf7abOJLqr
         S0RBzVMBFXaiaLQnOn6zMHIqfwP+0lc8jYJyquCu9swAznl5Zq8CI92qc1GrInkFpO7C
         cwHcQjf1tvuBXDY8aYheny2iDWugBIX44/7gE3iJuLWz4gJ1pt0Khz7kiqAxxiH++Ek1
         AFilMvLcHe53AT8hFQozKIZsXJx2V3FutIKb23U9j44Pje0qKxDSHa+eQyZ+6ssIaIDg
         3rXg==
X-Gm-Message-State: AOJu0Yx9mbt6RS8LF6WLyPaiiJx3qU/6Wmwz9vNTHJIU+dyN54NYpF2H
	dPJs8JUExIKF8zLl3inN7PZaobBDWRHBG1U3hpflx8r0vKBQXqZNTGHFknyNIQ==
X-Gm-Gg: ASbGncvd0sdi0htfmufs966pCSZmtrYTe+vr39aaJvM/R+9lN4Djiwiq9lcyc38H0vI
	09UrCyWhd3mY6nJeCKLowe1dAzYqQbyaLd2X05+m2iVBFdph4d3sV3VXfehiWHqNk0vGPAS64fB
	4obRDIq0bRah2ZpLu98tZuHVsFNv7cgE26Q1+pKIWjgobGYabeC9EJazQtJDrcChh7ZnKx9EGxS
	+rtGWA9dqMahANkdF0K19BSE40ItNwAnPwnirxKOYzXnRn7kN5d9HD9NKZ/J11X5qLBjVLqT9+8
	4Ie3EIuV3Ulf9T+phrXzlKmukBVGkaENtCQZxqXyE5FQiwWV6dfhnf5OGryHOt5TCSDfaMxb/+i
	oykFTd4FMZ9alu0AbhaqLPx38KHoR0hJOszeGtZTOv6W+Vg43ifVuZQ/Ih8HE+3thCCFeajXk
X-Google-Smtp-Source: AGHT+IERO8Ep+xUY8smoumIQzfhUwoe1nQke3+EHmR9SoaAFhFdmVrI9o4YNspXRsI1oGW0jo61fgg==
X-Received: by 2002:a05:6512:145c:20b0:55d:fb2d:3c39 with SMTP id 2adb3069b0e04-55dfb2d3df9mr106422e87.40.1755507000857;
        Mon, 18 Aug 2025 01:50:00 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH v9 2/4] tools/xl: Allow compilation of 'xl resume' command on Arm
Date: Mon, 18 Aug 2025 11:49:25 +0300
Message-ID: <60c29f80837b0642fcf225aaff3cd2b07310c0ce.1755506449.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.1755506449.git.mykola_kvach@epam.com>
References: <cover.1755506449.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

The "xl resume" command was previously excluded from Arm builds because
system suspend/resume (e.g., SYSTEM_SUSPEND via vPSCI) was not
implemented. On x86, this command is used for resume.

This change enables compilation of `xl resume` on Arm regardless of the
underlying implementation status, making the tool available for testing
and future feature support. The relevant libxl infrastructure and handler
functions are already present and usable.

Note: This does not imply full system suspend/resume support on Arm.
      The `xl suspend` command still does not work on Arm platforms.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
Acked-by: Anthony PERARD <anthony.perard@vates.tech>
---
Changes in v7:
- dropped renaming of LIBXL_HAVE_NO_SUSPEND_RESUME macro

Changes in v6:
- Renamed macro from LIBXL_HAVE_NO_SUSPEND_RESUME to LIBXL_HAVE_NO_SUSPEND
  to better reflect the scope of this change
- Applied cosmetic changes based on review feedback
---
 tools/include/libxl.h     |  1 -
 tools/xl/xl.h             |  4 ++--
 tools/xl/xl_cmdtable.c    |  4 ++--
 tools/xl/xl_migrate.c     |  2 +-
 tools/xl/xl_saverestore.c |  2 +-
 tools/xl/xl_vmcontrol.c   | 12 ++++++------
 6 files changed, 12 insertions(+), 13 deletions(-)

diff --git a/tools/include/libxl.h b/tools/include/libxl.h
index 185f74d8a8..b204fc5e2e 100644
--- a/tools/include/libxl.h
+++ b/tools/include/libxl.h
@@ -1140,7 +1140,6 @@ typedef struct libxl__ctx libxl_ctx;
  * restoring or migrating a domain. In this case the related functions
  * should be expected to return failure. That is:
  *  - libxl_domain_suspend
- *  - libxl_domain_resume
  *  - libxl_domain_remus_start
  */
 #if defined(__arm__) || defined(__aarch64__)
diff --git a/tools/xl/xl.h b/tools/xl/xl.h
index 45745f0dbb..9233b73f85 100644
--- a/tools/xl/xl.h
+++ b/tools/xl/xl.h
@@ -65,7 +65,7 @@ static const char migrate_permission_to_go[]=
     "domain is yours, you are cleared to unpause";
 static const char migrate_report[]=
     "my copy unpause results are as follows";
-#endif
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
 
   /* followed by one byte:
    *     0: everything went well, domain is running
@@ -130,8 +130,8 @@ int main_migrate_receive(int argc, char **argv);
 int main_save(int argc, char **argv);
 int main_migrate(int argc, char **argv);
 int main_suspend(int argc, char **argv);
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
 int main_resume(int argc, char **argv);
-#endif
 int main_dump_core(int argc, char **argv);
 int main_pause(int argc, char **argv);
 int main_unpause(int argc, char **argv);
diff --git a/tools/xl/xl_cmdtable.c b/tools/xl/xl_cmdtable.c
index 06a0039718..bcb2d233cc 100644
--- a/tools/xl/xl_cmdtable.c
+++ b/tools/xl/xl_cmdtable.c
@@ -198,12 +198,12 @@ const struct cmd_spec cmd_table[] = {
       "Suspend a domain to RAM",
       "<Domain>",
     },
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
     { "resume",
       &main_resume, 0, 1,
       "Resume a domain from RAM",
       "<Domain>",
     },
-#endif
     { "dump-core",
       &main_dump_core, 0, 1,
       "Core dump a domain",
@@ -548,7 +548,7 @@ const struct cmd_spec cmd_table[] = {
       "                        checkpoint must be disabled.\n"
       "-p                      Use COLO userspace proxy."
     },
-#endif
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
     { "devd",
       &main_devd, 0, 1,
       "Daemon that listens for devices and launches backends",
diff --git a/tools/xl/xl_migrate.c b/tools/xl/xl_migrate.c
index b8594f44a5..4b4a379aa1 100644
--- a/tools/xl/xl_migrate.c
+++ b/tools/xl/xl_migrate.c
@@ -767,7 +767,7 @@ int main_remus(int argc, char **argv)
     close(send_fd);
     return EXIT_FAILURE;
 }
-#endif
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
 
 
 /*
diff --git a/tools/xl/xl_saverestore.c b/tools/xl/xl_saverestore.c
index 953d791d1a..747094ec7b 100644
--- a/tools/xl/xl_saverestore.c
+++ b/tools/xl/xl_saverestore.c
@@ -270,7 +270,7 @@ int main_save(int argc, char **argv)
     return EXIT_SUCCESS;
 }
 
-#endif /* LIBXL_HAVE_NO_SUSPEND_RESUME */
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
 
 
 
diff --git a/tools/xl/xl_vmcontrol.c b/tools/xl/xl_vmcontrol.c
index c813732838..93766f631b 100644
--- a/tools/xl/xl_vmcontrol.c
+++ b/tools/xl/xl_vmcontrol.c
@@ -38,11 +38,6 @@ static void suspend_domain(uint32_t domid)
     libxl_domain_suspend_only(ctx, domid, NULL);
 }
 
-static void resume_domain(uint32_t domid)
-{
-    libxl_domain_resume(ctx, domid, 1, NULL);
-}
-
 int main_suspend(int argc, char **argv)
 {
     int opt;
@@ -55,6 +50,12 @@ int main_suspend(int argc, char **argv)
 
     return EXIT_SUCCESS;
 }
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
+
+static void resume_domain(uint32_t domid)
+{
+    libxl_domain_resume(ctx, domid, 1, NULL);
+}
 
 int main_resume(int argc, char **argv)
 {
@@ -68,7 +69,6 @@ int main_resume(int argc, char **argv)
 
     return EXIT_SUCCESS;
 }
-#endif
 
 static void pause_domain(uint32_t domid)
 {
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 18 08:50:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 08:50:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085663.1443970 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unvZ7-0006Hx-LI; Mon, 18 Aug 2025 08:50:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085663.1443970; Mon, 18 Aug 2025 08:50: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 1unvZ7-0006Hi-IS; Mon, 18 Aug 2025 08:50:05 +0000
Received: by outflank-mailman (input) for mailman id 1085663;
 Mon, 18 Aug 2025 08:50:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=HFvU=26=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1unvZ6-0005gf-Be
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 08:50:04 +0000
Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com
 [2a00:1450:4864:20::12c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 53403469-7c10-11f0-b898-0df219b8e170;
 Mon, 18 Aug 2025 10:50:00 +0200 (CEST)
Received: by mail-lf1-x12c.google.com with SMTP id
 2adb3069b0e04-55ce526ac04so3694222e87.2
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 01:50:00 -0700 (PDT)
Received: from yp-VivoBook-ASUSLaptop-M1503QA-M1503QA.. ([95.67.15.120])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-55cef351579sm1571950e87.4.2025.08.18.01.49.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 18 Aug 2025 01: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>
X-Inumbo-ID: 53403469-7c10-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1755506999; x=1756111799; 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=5+ft2nxvGpA3g1oU8oVhQcdEX9Ksnti8I9PxrIQBz08=;
        b=O7D4Snm7XdLNJLm43Rx+PfkfUfsxvhFlzobm2E3qnVnmmAcvzGIdeLmmdrlEGShAo6
         Dw4+kAsYULjuYD02ZFQ800URwXQUSE/fGPmWs/XIf7GajWJEnwKJP6tVkG3LSGJdf4IN
         YjyKNbDkKve6nZddaM5dsg1tFdEBQPn+afx7HcUim4m0eGtX7at/C4j3BEyYrCPTs5uz
         2in1nrlWZa+ZumDfvqQsQRo2UvP5VTQNDmJnQHEAdIcOZR9orRXzxTfAF2a9rsJtTBwv
         w1WA5T017M5pq8xLka01RNTyTrmeUkO2rgETZs3ocxtxfkl2VYzY5yfgoSbfsAXj/gcn
         HFMw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755506999; x=1756111799;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=5+ft2nxvGpA3g1oU8oVhQcdEX9Ksnti8I9PxrIQBz08=;
        b=QsKLfDG31MRLVP/77AQUd4teLcIb8Z0QQ+y9nnFMuv2V6ZDdQ/p4tFc/piZjfeBREM
         uVGg7+nquz1K4y0yRRJnuuOiI01izdCQ1/HGaaWXuouYfLfPWMMx2R+wPBoCMpYIYrEM
         7SGQRbxUYw3JvjKa4dKds7tcAD2iwcLc5BMFpiuMffv7ed86h6J/e4zF+Oms8vr766pT
         e/tPcfbjDP1mQWDIrCoh5XsMyMyaOBbn/PIrGbr816++wkX43jA0ZXXlUCa2I+olsPYZ
         MylZX5Gl5hAHJNKMHv0b5lK2v8Sp39+URNtsAlKnhuE2mwqn1JN0nv7ZQs++0fXMo1uW
         paEQ==
X-Gm-Message-State: AOJu0YyMRr89Hd1jFYJ5qFGLi7bum6kWot8aBWAgwiQcaU3StcUsFJY7
	cKUXmBFVTuT6kQYlE4rEBUUuzkG6N3DwnjhGvaBRYDCtFLRXzRz0cldWKWY0Qg==
X-Gm-Gg: ASbGncssSTFyoKa0RBcOW2LL/GUBFyLlxzfmiK/AmnNLHdQhbTlnVPIcUa8+ld4qzKX
	ZodrAtMpCcPVZJS4XADiTD/ziKPYD9h28k9lycw3BAGhwb+z6U6MoqoRo4vatXhjonTiQcg3Awb
	oSotYcI/vU8efo8qn8h4xtW5l1ocZJNVLv0zvGGoTeL75OJwtqXf6CMeB0o0hDcO9NUjHAnpMyE
	W8T0/ndK/hCdtHYluayBzGPzmA7kuZQ/Q3RQlB+dXkWDcrOQtfr4m1PqOucZYnTShulD4jVzKF3
	wk6tcmP1Gm/yozepIhyUNe/ZX1YWwcCD052VyEQxq6tbgczUQrhL5mLPbfw93pabIqLp4YJ9BTA
	gpvjUUfjWObyrjZDvn/j+1XZTD6PpMOIMmYZt5qbyN0cz3n94fsH5XJ8NnkcNkNTTOYDcIwe5
X-Google-Smtp-Source: AGHT+IGUx6XOIBYD5ycm/HXQM2uAsBpbGVlHochHRwE0PTieq30Kt7jzpASz4BQxPcKunyTUBtZx1Q==
X-Received: by 2002:a05:6512:1512:10b0:55b:975b:98a with SMTP id 2adb3069b0e04-55ceeba2f0bmr1738395e87.41.1755506999295;
        Mon, 18 Aug 2025 01:49:59 -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 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for guests
Date: Mon, 18 Aug 2025 11:49:24 +0300
Message-ID: <205b2b354ff1d34d0e9ec4777ca3c94492f6d9d1.1755506449.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.1755506449.git.mykola_kvach@epam.com>
References: <cover.1755506449.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

This patch adds support for the PSCI SYSTEM_SUSPEND function in the vPSCI
(virtual PSCI) interface, allowing guests to request suspend via the PSCI
v1.0 SYSTEM_SUSPEND call (both 32-bit and 64-bit variants).

The implementation:
- Adds SYSTEM_SUSPEND function IDs to PSCI definitions
- Implements trapping and handling of SYSTEM_SUSPEND in vPSCI
- Allows only non-hardware domains to invoke SYSTEM_SUSPEND; for the
  hardware domain, PSCI_NOT_SUPPORTED is returned to avoid halting the
  system in hwdom_shutdown() called from domain_shutdown
- Ensures all secondary VCPUs of the calling domain are offline before
  allowing suspend due to PSCI spec

GIC and virtual timer context must be saved when the domain suspends.
This is done by moving the respective code in ctxt_switch_from
before the return that happens if the domain suspended.

domain_resume_nopause() is introduced to allow resuming a domain from
SYSTEM_SUSPEND without pausing it first. This avoids problematic
domain_pause() calls when resuming from suspend on Arm, particularly
in error paths. The function is only used on Arm; other architectures
continue to use the original domain_resume().

Usage:

For Linux-based guests, suspend can be initiated with:
    echo mem > /sys/power/state
or via:
    systemctl suspend

Resuming the guest is performed from control domain using:
      xl resume <domain>

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in V9:
- no functional changes
- cosmetic chnages after review
- enhance commit message and add extra comment to the code after review

Changes in V8:
- GIC and virtual timer context must be saved when the domain suspends
- rework locking
- minor changes after code review

Changes in V7:
- add proper locking
- minor changes after code review

Changes in V6:
- skip execution of ctxt_switch_from for vcpu that is in paused domain
- add implementation of domain_resume without domain_pause
- add helper function to determine if vcpu is suspended or not
- ignore upper 32 bits of argument values when the domain is 64-bit
  and calls the SMC32 SYSTEM_SUSPEND function
- cosmetic changes after review

Changes in V5:
- don't use standby mode, restore execution in a provided by guest point
- move checking that all CPUs, except current one, are offline to after
  pausing the vCPUs
- provide ret status from arch_domain_shutdown and handle it in
  domain_shutdown
- adjust VPSCI_NR_FUNCS to reflect the number of newly added PSCI functions

Changes in V4:
Dropped all changes related to watchdog, domain is marked as shutting
down in domain_shutdown and watchdog timeout handler won't trigger
because of it.

Previous versions included code to manage Xen watchdog timers during suspend,
but this was removed. When a guest OS starts the Xen watchdog (either via the
kernel driver or xenwatchdogd), it is responsible for managing that state
across suspend/resume. On Linux, the Xen kernel driver properly stops the
watchdog during suspend. However, when xenwatchdogd is used instead, suspend
handling is incomplete, potentially leading to watchdog-triggered resets on
resume. Xen leaves watchdog handling to the guest OS and its services.

Dropped all changes related to VCPU context, because instead domain_shutdown
is used, so we don't need any extra changes for suspending domain.

Changes in V3:
Dropped all domain flags and related code (which touched common functions like
vcpu_unblock), keeping only the necessary changes for Xen suspend/resume, i.e.
suspend/resume is now fully supported only for the hardware domain.
Proper support for domU suspend/resume will be added in a future patch.
This patch does not yet include VCPU context reset or domain context
restoration in VCPU.
---
 xen/arch/arm/domain.c                 |  17 +++--
 xen/arch/arm/include/asm/perfc_defn.h |   1 +
 xen/arch/arm/include/asm/psci.h       |   2 +
 xen/arch/arm/include/asm/vpsci.h      |   2 +-
 xen/arch/arm/vpsci.c                  | 101 ++++++++++++++++++++++----
 xen/common/domain.c                   |  31 ++++++--
 xen/include/xen/sched.h               |   6 ++
 7 files changed, 131 insertions(+), 29 deletions(-)

diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index 310c578909..9e9649c4e2 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -90,6 +90,16 @@ static void ctxt_switch_from(struct vcpu *p)
     if ( is_idle_vcpu(p) )
         return;
 
+    /* Arch timer */
+    p->arch.cntkctl = READ_SYSREG(CNTKCTL_EL1);
+    virt_timer_save(p);
+
+    /* VGIC */
+    gic_save_state(p);
+
+    if ( test_bit(_VPF_suspended, &p->pause_flags) )
+        return;
+
     p2m_save_state(p);
 
     /* CP 15 */
@@ -106,10 +116,6 @@ static void ctxt_switch_from(struct vcpu *p)
     p->arch.tpidrro_el0 = READ_SYSREG(TPIDRRO_EL0);
     p->arch.tpidr_el1 = READ_SYSREG(TPIDR_EL1);
 
-    /* Arch timer */
-    p->arch.cntkctl = READ_SYSREG(CNTKCTL_EL1);
-    virt_timer_save(p);
-
     if ( is_32bit_domain(p->domain) && cpu_has_thumbee )
     {
         p->arch.teecr = READ_SYSREG(TEECR32_EL1);
@@ -158,9 +164,6 @@ static void ctxt_switch_from(struct vcpu *p)
 
     /* XXX MPU */
 
-    /* VGIC */
-    gic_save_state(p);
-
     isb();
 }
 
diff --git a/xen/arch/arm/include/asm/perfc_defn.h b/xen/arch/arm/include/asm/perfc_defn.h
index effd25b69e..8dfcac7e3b 100644
--- a/xen/arch/arm/include/asm/perfc_defn.h
+++ b/xen/arch/arm/include/asm/perfc_defn.h
@@ -33,6 +33,7 @@ PERFCOUNTER(vpsci_system_reset,        "vpsci: system_reset")
 PERFCOUNTER(vpsci_cpu_suspend,         "vpsci: cpu_suspend")
 PERFCOUNTER(vpsci_cpu_affinity_info,   "vpsci: cpu_affinity_info")
 PERFCOUNTER(vpsci_features,            "vpsci: features")
+PERFCOUNTER(vpsci_system_suspend,      "vpsci: system_suspend")
 
 PERFCOUNTER(vcpu_kick,                 "vcpu: notify other vcpu")
 
diff --git a/xen/arch/arm/include/asm/psci.h b/xen/arch/arm/include/asm/psci.h
index 4780972621..48a93e6b79 100644
--- a/xen/arch/arm/include/asm/psci.h
+++ b/xen/arch/arm/include/asm/psci.h
@@ -47,10 +47,12 @@ void call_psci_system_reset(void);
 #define PSCI_0_2_FN32_SYSTEM_OFF          PSCI_0_2_FN32(8)
 #define PSCI_0_2_FN32_SYSTEM_RESET        PSCI_0_2_FN32(9)
 #define PSCI_1_0_FN32_PSCI_FEATURES       PSCI_0_2_FN32(10)
+#define PSCI_1_0_FN32_SYSTEM_SUSPEND      PSCI_0_2_FN32(14)
 
 #define PSCI_0_2_FN64_CPU_SUSPEND         PSCI_0_2_FN64(1)
 #define PSCI_0_2_FN64_CPU_ON              PSCI_0_2_FN64(3)
 #define PSCI_0_2_FN64_AFFINITY_INFO       PSCI_0_2_FN64(4)
+#define PSCI_1_0_FN64_SYSTEM_SUSPEND      PSCI_0_2_FN64(14)
 
 /* PSCI v0.2 affinity level state returned by AFFINITY_INFO */
 #define PSCI_0_2_AFFINITY_LEVEL_ON      0
diff --git a/xen/arch/arm/include/asm/vpsci.h b/xen/arch/arm/include/asm/vpsci.h
index 0cca5e6830..69d40f9d7f 100644
--- a/xen/arch/arm/include/asm/vpsci.h
+++ b/xen/arch/arm/include/asm/vpsci.h
@@ -23,7 +23,7 @@
 #include <asm/psci.h>
 
 /* Number of function implemented by virtual PSCI (only 0.2 or later) */
-#define VPSCI_NR_FUNCS  12
+#define VPSCI_NR_FUNCS  14
 
 /* Functions handle PSCI calls from the guests */
 bool do_vpsci_0_1_call(struct cpu_user_regs *regs, uint32_t fid);
diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
index 7ba9ccd94b..67d369a8a2 100644
--- a/xen/arch/arm/vpsci.c
+++ b/xen/arch/arm/vpsci.c
@@ -10,28 +10,18 @@
 
 #include <public/sched.h>
 
-static int do_common_cpu_on(register_t target_cpu, register_t entry_point,
-                            register_t context_id)
+static int do_setup_vcpu_ctx(struct vcpu *v, register_t entry_point,
+                      register_t context_id)
 {
-    struct vcpu *v;
     struct domain *d = current->domain;
     struct vcpu_guest_context *ctxt;
     int rc;
     bool is_thumb = entry_point & 1;
-    register_t vcpuid;
-
-    vcpuid = vaffinity_to_vcpuid(target_cpu);
-
-    if ( (v = domain_vcpu(d, vcpuid)) == NULL )
-        return PSCI_INVALID_PARAMETERS;
 
     /* THUMB set is not allowed with 64-bit domain */
     if ( is_64bit_domain(d) && is_thumb )
         return PSCI_INVALID_ADDRESS;
 
-    if ( !test_bit(_VPF_down, &v->pause_flags) )
-        return PSCI_ALREADY_ON;
-
     if ( (ctxt = alloc_vcpu_guest_context()) == NULL )
         return PSCI_DENIED;
 
@@ -78,11 +68,32 @@ static int do_common_cpu_on(register_t target_cpu, register_t entry_point,
     if ( rc < 0 )
         return PSCI_DENIED;
 
-    vcpu_wake(v);
-
     return PSCI_SUCCESS;
 }
 
+static int do_common_cpu_on(register_t target_cpu, register_t entry_point,
+                            register_t context_id)
+{
+    int rc;
+    struct vcpu *v;
+    struct domain *d = current->domain;
+    register_t vcpuid;
+
+    vcpuid = vaffinity_to_vcpuid(target_cpu);
+
+    if ( (v = domain_vcpu(d, vcpuid)) == NULL )
+        return PSCI_INVALID_PARAMETERS;
+
+    if ( !test_bit(_VPF_down, &v->pause_flags) )
+        return PSCI_ALREADY_ON;
+
+    rc = do_setup_vcpu_ctx(v, entry_point, context_id);
+    if ( rc == PSCI_SUCCESS )
+        vcpu_wake(v);
+
+    return rc;
+}
+
 static int32_t do_psci_cpu_on(uint32_t vcpuid, register_t entry_point)
 {
     int32_t ret;
@@ -197,6 +208,48 @@ static void do_psci_0_2_system_reset(void)
     domain_shutdown(d,SHUTDOWN_reboot);
 }
 
+static int32_t do_psci_1_0_system_suspend(register_t epoint, register_t cid)
+{
+    int32_t rc;
+    struct vcpu *v;
+    struct domain *d = current->domain;
+
+    /* 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 )
+    {
+        if ( v != current && is_vcpu_online(v) )
+        {
+            domain_unlock(d);
+            return PSCI_DENIED;
+        }
+    }
+    domain_unlock(d);
+
+    rc = domain_shutdown(d, SHUTDOWN_suspend);
+    if ( rc )
+        return PSCI_DENIED;
+
+    rc = do_setup_vcpu_ctx(current, epoint, cid);
+    if ( rc != PSCI_SUCCESS )
+    {
+        domain_resume_nopause(d);
+        return rc;
+    }
+
+    set_bit(_VPF_suspended, &current->pause_flags);
+
+    dprintk(XENLOG_DEBUG,
+            "Dom %u: SYSTEM_SUSPEND requested, epoint=%#lx, cid=%#lx\n",
+            d->domain_id, epoint, cid);
+
+    return rc;
+}
+
 static int32_t do_psci_1_0_features(uint32_t psci_func_id)
 {
     /* /!\ Ordered by function ID and not name */
@@ -214,6 +267,8 @@ static int32_t do_psci_1_0_features(uint32_t psci_func_id)
     case PSCI_0_2_FN32_SYSTEM_OFF:
     case PSCI_0_2_FN32_SYSTEM_RESET:
     case PSCI_1_0_FN32_PSCI_FEATURES:
+    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
+    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
     case ARM_SMCCC_VERSION_FID:
         return 0;
     default:
@@ -344,6 +399,24 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid)
         return true;
     }
 
+    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
+    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
+    {
+        register_t epoint = PSCI_ARG(regs, 1);
+        register_t cid = PSCI_ARG(regs, 2);
+
+        if ( is_64bit_domain(current->domain) &&
+             fid == PSCI_1_0_FN32_SYSTEM_SUSPEND )
+        {
+            epoint &= GENMASK(31, 0);
+            cid &= GENMASK(31, 0);
+        }
+
+        perfc_incr(vpsci_system_suspend);
+        PSCI_SET_RESULT(regs, do_psci_1_0_system_suspend(epoint, cid));
+        return true;
+    }
+
     default:
         return false;
     }
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 5241a1629e..624c3e2c27 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -1343,16 +1343,13 @@ int domain_shutdown(struct domain *d, u8 reason)
     return 0;
 }
 
-void domain_resume(struct domain *d)
+#ifndef CONFIG_ARM
+static
+#endif
+void domain_resume_nopause(struct domain *d)
 {
     struct vcpu *v;
 
-    /*
-     * Some code paths assume that shutdown status does not get reset under
-     * their feet (e.g., some assertions make this assumption).
-     */
-    domain_pause(d);
-
     spin_lock(&d->shutdown_lock);
 
     d->is_shutting_down = d->is_shut_down = 0;
@@ -1360,13 +1357,33 @@ void domain_resume(struct domain *d)
 
     for_each_vcpu ( d, v )
     {
+        /*
+         * No need to conditionally clear _VPF_suspended here:
+         * - This bit is only set on Arm64, and only after a successful suspend.
+         * - domain_resume_nopause() may also be called from paths other than
+         *   the suspend/resume flow, such as "soft-reset" actions (e.g.,
+         *   on_poweroff), as part of the Xenstore control/shutdown protocol.
+         *   These require guest acknowledgement to complete the operation.
+         * So clearing the bit unconditionally is safe.
+         */
+        clear_bit(_VPF_suspended, &v->pause_flags);
+
         if ( v->paused_for_shutdown )
             vcpu_unpause(v);
         v->paused_for_shutdown = 0;
     }
 
     spin_unlock(&d->shutdown_lock);
+}
 
+void domain_resume(struct domain *d)
+{
+    /*
+     * Some code paths assume that shutdown status does not get reset under
+     * their feet (e.g., some assertions make this assumption).
+     */
+    domain_pause(d);
+    domain_resume_nopause(d);
     domain_unpause(d);
 }
 
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index fd5c9f9333..c1848d8ea6 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -814,6 +814,9 @@ void domain_destroy(struct domain *d);
 int domain_kill(struct domain *d);
 int domain_shutdown(struct domain *d, u8 reason);
 void domain_resume(struct domain *d);
+#ifdef CONFIG_ARM
+void domain_resume_nopause(struct domain *d);
+#endif
 
 int domain_soft_reset(struct domain *d, bool resuming);
 
@@ -1010,6 +1013,9 @@ static inline struct domain *next_domain_in_cpupool(
 /* VCPU is parked. */
 #define _VPF_parked          8
 #define VPF_parked           (1UL<<_VPF_parked)
+/* VCPU is suspended. */
+#define _VPF_suspended       9
+#define VPF_suspended        (1UL << _VPF_suspended)
 
 static inline bool vcpu_runnable(const struct vcpu *v)
 {
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 18 08:50:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 08:50:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085666.1443991 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unvZ8-0006YQ-Sl; Mon, 18 Aug 2025 08:50:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085666.1443991; Mon, 18 Aug 2025 08:50:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unvZ8-0006Wr-EH; Mon, 18 Aug 2025 08:50:06 +0000
Received: by outflank-mailman (input) for mailman id 1085666;
 Mon, 18 Aug 2025 08:50:05 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=HFvU=26=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1unvZ7-0005Kq-25
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 08:50:05 +0000
Received: from mail-lf1-x131.google.com (mail-lf1-x131.google.com
 [2a00:1450:4864:20::131])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 55874cc0-7c10-11f0-a329-13f23c93f187;
 Mon, 18 Aug 2025 10:50:04 +0200 (CEST)
Received: by mail-lf1-x131.google.com with SMTP id
 2adb3069b0e04-55ce5097638so3957479e87.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 01:50:04 -0700 (PDT)
Received: from yp-VivoBook-ASUSLaptop-M1503QA-M1503QA.. ([95.67.15.120])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-55cef351579sm1571950e87.4.2025.08.18.01.50.02
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 18 Aug 2025 01:50: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>
X-Inumbo-ID: 55874cc0-7c10-11f0-a329-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1755507004; x=1756111804; 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=rSXErmgf4mUOU3w7XCCgpOwuZwNZDieNzbmZWIHlqM8=;
        b=cApIkXbkekwT+fQsI6J91RxvVSmbMPbjVhEaDgVM9FZjb80rfjNZHMGeYSFYajE1RP
         HWrp6mxPgvfXQ6zpE8xHrRQQMo+qYMYul3yoa1kzOdH69wsotNZ/h5C5qn6yF2cHl0Go
         gEyP2xYUte2JW98LGeJLcAmaEByjpqAw3evWy3wbKip8/ySqOv0r6LKLwwd4pg2lGUSU
         npBQSK/sTO/zgAPbotHUNq7o+x58sgyMXFLS/r68i89Yy4XQavJi82sEIY/aKNBJS3VT
         GdNVfj3ZtYgL/ws5jAXLZ0HA5RLc7/uXq9Q5b7NTrYcMfxnjg0pFfE4LbKllv9vyNZE9
         FcLg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755507004; x=1756111804;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=rSXErmgf4mUOU3w7XCCgpOwuZwNZDieNzbmZWIHlqM8=;
        b=oK5yDPN55/31v5bVMrSDeI6Kej9vUvg/r3uB3wV/lbmzPWyC/9pfsV5w68UGdlQMeU
         1TF7uIKFAkqgn2Bv30FCRPlDhzXwlAYwg9nmKsJD3YCEjyihLwYAZysESEJ7JRg+svQ0
         CE2nbct0PJ2yKXm0IixQb77+ylWH1S9zaZJz0QdD701JhJHqQNG7UH5nxsnki968kDV4
         /iTS6QMLG8CY9SmlAvB41Cbas1n4Hyl45OE21SQD13ArQqFLkZtPqOTXMH0s34UUvpib
         f9KUt3Avf3ySbz6w+8dBRCncsN6OV+gamLMjRuDPq44hlzobFdVsMOUwnnfMD2KnAtLn
         hFhQ==
X-Gm-Message-State: AOJu0YzrHGB0YQ1qVR7I+yRd+BcYxcDkLUgHvsVGyCQpk/v2pW5x0YiO
	79M8fIOYFlU3qs6QIpQwh+rZOT+kObHoCNTN75kJBn0fMSVdJO3jr/Yn9qTsgA==
X-Gm-Gg: ASbGnctksdLXiFZPBlbMbIsPQylzKZlacTHvUVLFLYr46eOCdjg2BEI48RpNnfxMwk2
	J0IU8LiDrs8BIDnzdust04DdcbWIcyYh1eObGKh4cdz7Dw41/j7zO59n6Ii4KEQR5V98gEUnZnp
	EGXqStUJYPgKTeamlHgoBS3kvU9x7DyRb+adMp+A/m3zI7ShbVZcfNdlThB8fgjazntqYBTSzeR
	X71rT4fIu04ITuVBIODiL+vXkNvEZbOaI9GTPwDfRujMlLbhc5IZfGYsyr53qInDADLOFTdl+Wl
	dEajyr67lLhzAduVtxFtK4gclmWWY/qVab0UQ0J6lWk7jgqTvY6UWAFCmRcskH2Vfq32PM2zLqT
	r+YpRAJ/gDc/ICNTAWIHKSG25aXMPR1pLV5zRydhEfdRq5voz+RFDZCT7wlJLcg==
X-Google-Smtp-Source: AGHT+IHKP+vZ17DE5QYKRCnOIQOuto1ryTkPgpZmhlycbfPLB2vOYZ1r/2ziLH95IBblJQgzQ9+81g==
X-Received: by 2002:a05:6512:1054:b0:55c:e752:e9c8 with SMTP id 2adb3069b0e04-55ceeb5aaa4mr3539987e87.44.1755507003551;
        Mon, 18 Aug 2025 01:50:03 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Community Manager <community.manager@xenproject.org>
Subject: [PATCH v9 4/4] CHANGELOG: Document guest suspend/resume to RAM support on Arm
Date: Mon, 18 Aug 2025 11:49:27 +0300
Message-ID: <5d570383467445e4c89347d1cab7f4a3f062e740.1755506449.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.1755506449.git.mykola_kvach@epam.com>
References: <cover.1755506449.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

Mention the newly added support for guest suspend and resume to/from
RAM via vPSCI on Arm platforms.

This support is limited to non-hardware domain guests.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Chnages in v6:
- removed reduntand explanation that thi support added for
  both arm32 and arm64.

Changes in v5:
- adjustments to the commit title and message
- expanded the changelog entry to include more context about
  suspend/resume support introduced in this patch series
---
 CHANGELOG.md | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5f31ca08fe..7e42ca9b59 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -29,6 +29,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
 
  - On Arm:
     - Ability to enable stack protector
+    - Support for guest suspend and resume to/from RAM via vPSCI.
+      Applies only to non-hardware domain guests.
 
 ### Removed
  - On x86:
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Mon Aug 18 08:56:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 08:56:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085718.1444022 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unvf8-0001Nj-NE; Mon, 18 Aug 2025 08:56:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085718.1444022; Mon, 18 Aug 2025 08:56: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 1unvf8-0001Nc-Ki; Mon, 18 Aug 2025 08:56:18 +0000
Received: by outflank-mailman (input) for mailman id 1085718;
 Mon, 18 Aug 2025 08:56:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=HFvU=26=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1unvf7-0001NW-HP
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 08:56:17 +0000
Received: from mail-lj1-x234.google.com (mail-lj1-x234.google.com
 [2a00:1450:4864:20::234])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 32959493-7c11-11f0-b898-0df219b8e170;
 Mon, 18 Aug 2025 10:56:15 +0200 (CEST)
Received: by mail-lj1-x234.google.com with SMTP id
 38308e7fff4ca-333f92f1911so28244171fa.3
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 01:56: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>
X-Inumbo-ID: 32959493-7c11-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1755507375; x=1756112175; 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=E9DlkGUcRpvPQ88uUWsNvtalYbldu7n4i89bSCAY7mc=;
        b=V8ZvMzFOxb97u+ZYVZFJQm8STKJO1UTFAbDMejuFSIyAIbLmZTlrG3nE1gFfkcIzDK
         urNbvCtJizAPB16jlnQvtpM2baIX3pi6q2G76BUoS1atz+Ie5UvChm/M4BnOf4mSCRoE
         T7GWqMb/PWQCBWLEsoMmdytc0kNw/UHw4ZvuOmraEAMX9m/1Ai52UfYoms1ZxBLLseqt
         g+RDgrd7Zcbe6mmPumVQfQzQLyahU729H5HV/luIZlZG9NJz+XzPlGnlPkjlgDpuw8IG
         2rnvIlgrAWOXdJdLsqTlWN9J5l2pOeOVXZut3zYihgnZccDZzRzV+AhIy7c3N5YvXVKh
         9chg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755507375; x=1756112175;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=E9DlkGUcRpvPQ88uUWsNvtalYbldu7n4i89bSCAY7mc=;
        b=Nv4MTqRab7MLZI5YFNRv3c5iawYwPhzfX4X8ex3aXdre6Bf1V437VE/u8jdXBZwepk
         qvWAr0Wmv4y1w/SdSYjMVpe9Umbqf6/MEgOAxAe5a+malXuAN8XjGc0rqSr68bAKJJGZ
         FbR/lYRFI4DmJEJ/Ki+eVCxApkdYaL2YB0HEqrARu1PwMq6o7mSh2ig9PuPlaG0ITJan
         WMKDXt7+IDSfEKN2k1RayTkluI4ZOWxzz08R5Gn9/4dv3dY25Xk2vsVB7T23Y/KNpSSP
         24vXHcO8159/QHMD9X1hcWkGor89jZmk84/pKPRt2SWjHieOxH3Nv61Qnr1HPp+0yxxP
         4rBA==
X-Forwarded-Encrypted: i=1; AJvYcCWGjxMxlsWqhfwaWeYDPO5XNSC21qSwodbfKW7AKuzWmIUHe8lhZK+qXxhy8qYOc7nL69AoSMvgkqc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwKcFPG1o4//C+hISTpTbzKkoA8CyHKvtutI6DWITfsYJcTFogz
	2dYJC9aDAwVnddcbYH75cA4NdZFwga8JsNV6YbdQjKmOLLUseceL+D18Vudx3jxznjmwUZ5MhRD
	IMq3lWWWiyf8sZFK0SvAp2tecGytPp9Y=
X-Gm-Gg: ASbGncsTu6PT/nTkeJY8iG20MJwuCxxUfWkl1fmYCQFUPSfCIYNusD/ZC2I28GnfoXM
	nrIdwCgO+E+oS/gCiL9MoKWhEVPQt2jS/JhYnijjQnwsQZs4rjiNUbCfVuwL/Uvvllgbpy6dm24
	1m04SlRX+Bm9WNpFcU9UGr2cUXU9uwidna3Iocj/c+T1/DbY6pEIVJ6ZXB1aBjKVVKFYD5y9d6o
	47m/uYlG4XrQA7S
X-Google-Smtp-Source: AGHT+IEOSXECCursbVT7t0NKBgRgjHlh1aH/T2zr8PLRk7vjQ28YDCKf+lNy5oF9KzP8s7MneKZyOqp1ETtaH0Hv0yE=
X-Received: by 2002:a2e:bea1:0:b0:32b:881e:9723 with SMTP id
 38308e7fff4ca-3340995bademr28611751fa.30.1755507374654; Mon, 18 Aug 2025
 01:56:14 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1754595198.git.mykola_kvach@epam.com> <64cbfa58af7935c47141a2b1c0560e8d63e3d712.1754595198.git.mykola_kvach@epam.com>
 <f3973f06-8305-4895-97f9-6d52f03d03b3@suse.com>
In-Reply-To: <f3973f06-8305-4895-97f9-6d52f03d03b3@suse.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Mon, 18 Aug 2025 11:56:03 +0300
X-Gm-Features: Ac12FXzoHP3Z7Wg9Wm0dCgee_PlmSPWESHJl2QVLi9RzVoQr_Utfo9vvxoRQyvc
Message-ID: <CAGeoDV8XUy-LxQ0w4brdkzdUrWsH6U6aRArgt47b2aV4KwDADA@mail.gmail.com>
Subject: Re: [PATCH v8 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for guests
To: Jan Beulich <jbeulich@suse.com>
Cc: Mykola Kvach <mykola_kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, 
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Jan,

On Fri, Aug 8, 2025 at 9:33=E2=80=AFAM Jan Beulich <jbeulich@suse.com> wrot=
e:
>
> On 07.08.2025 21:39, Mykola Kvach wrote:
> > From: Mykola Kvach <mykola_kvach@epam.com>
> >
> > This patch adds support for the PSCI SYSTEM_SUSPEND function in the vPS=
CI
> > (virtual PSCI) interface, allowing guests to request suspend via the PS=
CI
> > v1.0 SYSTEM_SUSPEND call (both 32-bit and 64-bit variants).
> >
> > The implementation:
> > - Adds SYSTEM_SUSPEND function IDs to PSCI definitions
> > - Implements trapping and handling of SYSTEM_SUSPEND in vPSCI
> > - Allows only non-hardware domains to invoke SYSTEM_SUSPEND; for the
> >   hardware domain, PSCI_NOT_SUPPORTED is returned to avoid halting the
> >   system in hwdom_shutdown() called from domain_shutdown
> > - Ensures all secondary VCPUs of the calling domain are offline before
> >   allowing suspend due to PSCI spec
> >
> > GIC and virtual timer context must be saved when the domain suspends.
> > This is done by moving the respective code in ctxt_switch_from
> > before the return that happens if the domain suspended.
> >
> > Usage:
> >
> > For Linux-based guests, suspend can be initiated with:
> >     echo mem > /sys/power/state
> > or via:
> >     systemctl suspend
> >
> > Resuming the guest is performed from control domain using:
> >       xl resume <domain>
> >
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
>
> Nothing is being said on why domain_resume_nopause() would be needed. Whi=
le this
> may be entirely obvious to Arm people, the change is done in common code.
>
> > --- a/xen/common/domain.c
> > +++ b/xen/common/domain.c
> > @@ -1343,16 +1343,13 @@ int domain_shutdown(struct domain *d, u8 reason=
)
> >      return 0;
> >  }
> >
> > -void domain_resume(struct domain *d)
> > +#ifndef CONFIG_ARM
> > +static
> > +#endif
> > +void domain_resume_nopause(struct domain *d)
> >  {
> >      struct vcpu *v;
> >
> > -    /*
> > -     * Some code paths assume that shutdown status does not get reset =
under
> > -     * their feet (e.g., some assertions make this assumption).
> > -     */
> > -    domain_pause(d);
> > -
> >      spin_lock(&d->shutdown_lock);
> >
> >      d->is_shutting_down =3D d->is_shut_down =3D 0;
> > @@ -1360,13 +1357,24 @@ void domain_resume(struct domain *d)
> >
> >      for_each_vcpu ( d, v )
> >      {
> > +        clear_bit(_VPF_suspended, &v->pause_flags);
>
> Similarly it's not becoming clear why unconditionally doing this here wou=
ld
> be correct (now and going forward). There are other calls to this functio=
n,
> after all.
>
> > --- a/xen/include/xen/sched.h
> > +++ b/xen/include/xen/sched.h
> > @@ -814,6 +814,9 @@ void domain_destroy(struct domain *d);
> >  int domain_kill(struct domain *d);
> >  int domain_shutdown(struct domain *d, u8 reason);
> >  void domain_resume(struct domain *d);
> > +#ifdef CONFIG_ARM
> > +void domain_resume_nopause(struct domain *d);
> > +#endif
> >
> >  int domain_soft_reset(struct domain *d, bool resuming);
> >
> > @@ -1010,6 +1013,9 @@ static inline struct domain *next_domain_in_cpupo=
ol(
> >  /* VCPU is parked. */
> >  #define _VPF_parked          8
> >  #define VPF_parked           (1UL<<_VPF_parked)
> > +/* VCPU is suspended. */
> > +#define _VPF_suspended 9
> > +#define VPF_suspended (1UL<<_VPF_suspended)
>
> And then, even if it's "only" style: With how adjacent code is formatted,
> how come there's no suitable blank padding here? If anything wants (and
> really needs) doing differently from pre-existing code, then to have
> blanks around the << as well.

Thank you for reviewing this patch series.
All your comments have been addressed in the next version of this patch
series, V9.

Best regards,
Mykola

>
> Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 08:59:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 08:59:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085728.1444034 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unvhy-0001uU-5p; Mon, 18 Aug 2025 08:59:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085728.1444034; Mon, 18 Aug 2025 08:59: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 1unvhy-0001uN-1H; Mon, 18 Aug 2025 08:59:14 +0000
Received: by outflank-mailman (input) for mailman id 1085728;
 Mon, 18 Aug 2025 08:59:12 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=q+DX=26=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1unvhw-0001uG-My
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 08:59:12 +0000
Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com
 [2a00:1450:4864:20::635])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9b13b2c4-7c11-11f0-b898-0df219b8e170;
 Mon, 18 Aug 2025 10:59:10 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-afcb7a2befdso537863166b.2
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 01: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
 a640c23a62f3a-afcdd010e1bsm746978466b.93.2025.08.18.01.59.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Aug 2025 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>
X-Inumbo-ID: 9b13b2c4-7c11-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755507550; x=1756112350; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ESvtTKqs9XTV0Z7+EGDQllbc1lEaYKmH66i2SmFq+4Y=;
        b=bG6DGFOmnZvQevB7cLWtAUrdE8bp/Lnnx0XLFH28Uu18pSZjsXVm9nN09MJvbj6ct7
         DYC1KVocL3mrAGhGm/+iFpkY6HWmaW+tNPL4Bntmdn7fw69iR0PHLb9qVgFqy4J/xPjZ
         rIBR4B+JHddpXKb2ORHtSmCUzLhTPxZJHWyCGDyFOKKqExiMjvpi9qKkaGUtDVO2dLCj
         uszjMPcVCasfZxEplHbZT7o63xgXcxWaUc6t26TZgMQTOj1AGN2wkcRiJJa/J/X2U7il
         PZN0IRKRZmtv0o6oupk5LHW7bDDeco+lSMUfWYPkNSaj31Pf6LRoHtwJB6aymJ7rV6vP
         J7fw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755507550; x=1756112350;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ESvtTKqs9XTV0Z7+EGDQllbc1lEaYKmH66i2SmFq+4Y=;
        b=XQvruuUxK0YUGV3z8kXJHqj7R9Dm/rviK3Nr+ijTmlHEauHpCK9Jnb1I42grx5ZMZy
         ot9Vpedapko78kFys+gaELCV9UNYKWDIcaHDN4bMQVRq5dmUWFOtli/pYWSwhxLatv3o
         SFxNcruNUcavXIOXziKntYRedFM3VEsHv8smAFB9epm2bq3gEt/bUW3J4Zl2rQVsUgoC
         hKFEVaXwGe0TNL0k3fsZXYjUkCpM1VHZJMQviZZojhmTMQ5i8q4FX2sfEYS5KuS8C16N
         kPc2AI7wUG91eTa5P9wQSsq6OUtYtlIy8KB3TSO34SY8L6SV7Jpb3nQZgs+R7vNsZBMT
         ir6g==
X-Forwarded-Encrypted: i=1; AJvYcCUl4UFFDOPet/hScEIV9Dx+0JLxzQOen2cB1xWpSrh/BbJq77B7eJjeXyD9hlGTXutIJLeuRR/kpxM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzqn7F4elHJtf4kEH19SYfT6MnirUbpzgO1argTCol2kAgsDq1Z
	bFw1Fw1cuQ2dfy3vy7sCK6BN+2bpbCDfc9Xxn9SC7nqgLBqj2tVhxxJ1T2g7huu1aw==
X-Gm-Gg: ASbGncs6RLOn1kl2Uw5im5AHSvaVVXFuAMRadbGNoYDso42OjLUy1hdbPZh7BeEwBIM
	WeRWKk3UPkMitp2FW8L2a7nwJv0aeCk8edj2x0q+WHMKnCx3tlyuUlQUv34BJd9ir8b/qvc4SAm
	55eXTxrtJl+VopSjjETZXuosmOXklq9MZKp+RZ9z/J6FWBiChHoRHu2WX7g/KrOGZlzi5uKy266
	1LsgUHWD5ay7hOB/gGMyQEy4qJylUHngv6D0EEQSd/He6K79COoSP1WpDszXjglI/PoLIc2fC4L
	qgF3dvP0dN3sUPLCUHDmbVuObsazyE5upSIK3PujP3siM2ukFwsJqLuMZYQQ3bReO0myCRvS57J
	bpkSCgnO7COq55aTGwuMs9kz0jN0LkApMPGobbjH9hiT0HV6l3eJ+TiOowqm1X4Q1fXamLHlaV3
	LxfDawOXeENuhwz07OdQ==
X-Google-Smtp-Source: AGHT+IHz5aGhbXgBuCyqpfVtSBeKGhJyL/Mk5qQ8GDHnUm0mSN/kJrQRhKq/YEnPH56o6HI+qI1Agw==
X-Received: by 2002:a17:906:f59f:b0:af1:8be4:768 with SMTP id a640c23a62f3a-afceaca84cbmr765357466b.5.1755507550102;
        Mon, 18 Aug 2025 01:59:10 -0700 (PDT)
Message-ID: <2c767cac-ce62-4e31-9a5b-224cfb2a9492@suse.com>
Date: Mon, 18 Aug 2025 10:59:09 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 21/22] x86/traps: Introduce FRED entrypoints
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-22-andrew.cooper3@citrix.com>
 <53028a31-e07d-43f1-b320-2775c5560a09@suse.com>
 <37cb95df-520e-45b3-9003-b638296d1001@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: <37cb95df-520e-45b3-9003-b638296d1001@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14.08.2025 22:40, Andrew Cooper wrote:
> On 14/08/2025 4:57 pm, Jan Beulich wrote:
>> On 08.08.2025 22:23, Andrew Cooper wrote:
>>> --- /dev/null
>>> +++ b/xen/arch/x86/x86_64/entry-fred.S
>>> @@ -0,0 +1,35 @@
>>> +/* SPDX-License-Identifier: GPL-2.0-or-later */
>>> +
>>> +        .file "x86_64/entry-fred.S"
>>> +
>>> +#include <asm/asm_defns.h>
>>> +#include <asm/page.h>
>>> +
>>> +        .section .text.entry, "ax", @progbits
>>> +
>>> +        /* The Ring3 entry point is required to be 4k aligned. */
>>> +
>>> +FUNC(entry_FRED_R3, 4096)
>> ... doesn't this 4k-alignment requirement suggest we want to put
>> entry-fred.o first?
> 
> Perhaps, but that is quite subtle.Â  I did also consider a
> .text.entry.page_aligned section, but .text.entry only matters for XPTI
> which (as agreed), I'm not intending to implement in FRED mode unless it
> proves to be necessary.
> 
> Also IIRC there's still a symbol bug where _sentrytext takes priority
> over entry_FRED_R3, so the backtrace is effectively wrong.
> 
> (These are all bad excuses, but some parts of this series are rather old.)
> 
>>  Also, might it be more natural to use PAGE_SIZE
>> here?
> 
> I did debate that, but the spec uses 0xfff, not pages, even if the
> pipline surely does have an optimisation for chopping 12 metadata bits
> off the bottom of a pointer.

I found this, though:

"Bits 63:12 contain the upper bits of the linear address of a page in memory
 containing event handlers. FRED event delivery will load RIP to refer to an
 entry point on this page. See Section 5.1.1."

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 09:02:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 09:02:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085756.1444043 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unvkp-0003vO-Pm; Mon, 18 Aug 2025 09:02:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085756.1444043; Mon, 18 Aug 2025 09:02: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 1unvkp-0003vH-MU; Mon, 18 Aug 2025 09:02:11 +0000
Received: by outflank-mailman (input) for mailman id 1085756;
 Mon, 18 Aug 2025 09:02:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=HFvU=26=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1unvaV-0005Kq-NX
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 08:51:31 +0000
Received: from mail-lf1-x12d.google.com (mail-lf1-x12d.google.com
 [2a00:1450:4864:20::12d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 89378507-7c10-11f0-a329-13f23c93f187;
 Mon, 18 Aug 2025 10:51:31 +0200 (CEST)
Received: by mail-lf1-x12d.google.com with SMTP id
 2adb3069b0e04-55ce521f77bso3917262e87.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 01:51: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>
X-Inumbo-ID: 89378507-7c10-11f0-a329-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1755507091; x=1756111891; 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=/QSbj+JGTa3eJnS7j2Msd+i52iC+7MQffEyC40Z4ExU=;
        b=JTyuLxwLJow9JTnZFHv2IRjXLZ3S98VP/zrMLSNuhxc1oN7ApXa0Uok2vYUYPXSuya
         0sitB7iGUCjcsPkXrDuqvMbxYf2C/1tYhSLi1QJ+KJ/vBC6u0INBrvx99CML6kmykPt1
         aJgtdFztbmxtOY8bnAdGWtJpZQ7xG802Inm3ZIAq2fJTWq0W6FKyLDGIInwZL1HYizRS
         LZo1Fp/UK3G/01LjDNLBbXNlHBFHjvdrbeLhmSKbho7mNhoayYlypXlfmkZD+TAPvyYn
         ni0/OOJoPh6OGmqHqqMrtkQIu1UN4uyR0UcbsKWm6cLGIz6jN2YrrQzxGFWoLPxXA/L9
         IgIg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755507091; x=1756111891;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=/QSbj+JGTa3eJnS7j2Msd+i52iC+7MQffEyC40Z4ExU=;
        b=CkrdU/6+lMhtqMu7HhhS7Z6WzBqBLT6Da5uiY9wKKyFiZdJhTZXQeqpXQeedx27lry
         jboA2NtYZMkBpdB5Bu+nrGkw6R2DK5q/FIsQe7/rM947NWA8tm20TXBpE+/hgyJJsFXp
         r9/GV7ZC9JvJYcLfQBjNWcdEjzQDJrZwBzWP4iExDsgbO+L/dbPujggG/ONi2+NUDqXI
         LP2FLIC0qRy0CEMxAgAOGqRST5wTmuhHsqfW1kWQoc9bq+OtMMtUzljKx5F7eESOOv9I
         OtRLHVzmVLRxE7ninb/J6jMJ0vBUD85JpgUBeU24GuiqpWkrStsmHk1hNAFhhsh1f0Ty
         ICow==
X-Gm-Message-State: AOJu0YwreEG7aRTmwKk4oWwoQ9m7nmmyDGX8cHpQshCIBY4Lzz1ShgPe
	r8zg38dhZW27B6IUiOSTuQUueZAXZs7xoZpeh/bpFd3ZCO/k7+0jPRa84rz9SZE9twBVizNtRi8
	M/bQmX/gQOWrQiWDyt8W0C46nYH+wQM9VvkYg
X-Gm-Gg: ASbGncuGFcHB5he+du57b186p9LgDZ2NIwXEMVuBPastzlxQnYLOfwkhL/5FpEwSFmU
	L2TDmhYaWX18ZBXvStrFXXSzpdbk/3Uog0GfE4dqUv8fis+9ZcZtkXt3BRBgC8yU8o/Cx63/grq
	/+ufmYarbRydCNS1WD1dxnAZD3ezK+OTLLGeGdd6yNnLgaG3qIW30ky0MbHeKObgd7i+/D8P1QX
	eicWEsFu542DhM6
X-Google-Smtp-Source: AGHT+IEu+jWTuFu2NvTwAVONkBCjWjEW5amOEb8ENfY6rAV8VS3VnsxOeW7Es7xxgilAqT9YRUNDcnfNkvPwEnGJgV8=
X-Received: by 2002:a05:6512:3986:b0:55b:83b3:6764 with SMTP id
 2adb3069b0e04-55ceebb062cmr2749829e87.51.1755507090622; Mon, 18 Aug 2025
 01:51:30 -0700 (PDT)
MIME-Version: 1.0
References: <f983bb7c3c9f0912da7e7f2fc22384ce1081a7a3.1754901835.git.mykola_kvach@epam.com>
 <1a51ba8c-93c5-4cfb-b76e-26e318c0b22d@xen.org> <7ff1a083-d9f2-46c3-b347-d26e11d2310f@xen.org>
In-Reply-To: <7ff1a083-d9f2-46c3-b347-d26e11d2310f@xen.org>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Mon, 18 Aug 2025 11:51:19 +0300
X-Gm-Features: Ac12FXyYLy7axp54eZy5-EryqeN8LxwHCcD0XdpiLIRSG8ufv7tvUhy2XIvaSBE
Message-ID: <CAGeoDV-=4Y66hjOwGhDsu-SHStZRedBbzknjuGtmcrqmDyHS9g@mail.gmail.com>
Subject: Re: [PATCH v2] xen/arm: irq: add missing spin_unlock() in
 init_local_irq_data() error path
To: Julien Grall <julien@xen.org>
Cc: xen-devel@lists.xenproject.org, Mykola Kvach <mykola_kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Bertrand Marquis <bertrand.marquis@arm.com>, 
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
	Denis Mukhin <dmukhin@ford.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Tue, Aug 12, 2025 at 2:07=E2=80=AFPM Julien Grall <julien@xen.org> wrote=
:
>
>
>
> On 11/08/2025 18:28, Julien Grall wrote:
> > Hi Mykola,
> >
> > On 11/08/2025 09:45, Mykola Kvach wrote:
> >> From: Mykola Kvach <mykola_kvach@epam.com>
> >>
> >> If init_one_irq_desc() fails, init_local_irq_data() returns without
> >> releasing local_irqs_type_lock, leading to a possible deadlock.
> >>
> >> Release the lock before returning to ensure proper cleanup.
> >>
> >> Fixes: 2bb32b809250 ("xen/irq: Propagate the error from
> >> init_one_desc_irq() in init_*_irq_data()")
> >> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> >> Reviewed-by: Denis Mukhin <dmukhin@ford.com>
> >
> > Acked-by: Julien Grall <jgrall@amazon.com>
> >
> > I will commit the patch soon.
>
> This is now merged.

Thanks everyone for the reviews and merging!

Best regards,
Mykola

>
> Cheers,
>
> --
> Julien Grall
>


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 09:02:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 09:02:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085757.1444052 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unvks-0004C7-VT; Mon, 18 Aug 2025 09:02:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085757.1444052; Mon, 18 Aug 2025 09:02: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 1unvks-0004C0-SZ; Mon, 18 Aug 2025 09:02:14 +0000
Received: by outflank-mailman (input) for mailman id 1085757;
 Mon, 18 Aug 2025 09:02:14 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=q+DX=26=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1unvks-0004AL-39
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 09:02:14 +0000
Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com
 [2a00:1450:4864:20::630])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 07852c3b-7c12-11f0-a32a-13f23c93f187;
 Mon, 18 Aug 2025 11:02:12 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-afcb78fb04cso567755066b.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 02:02: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
 a640c23a62f3a-afcdce53eccsm764041366b.19.2025.08.18.02.02.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Aug 2025 02:02: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>
X-Inumbo-ID: 07852c3b-7c12-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755507732; x=1756112532; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ZWIZvwksGpTbzlC31RYEcXxtuKNXSor3vPDnyOLtS9g=;
        b=caKMuppSpaMuEYlvCDM7Ekps0u4w4reZsk+Ly/2sXBvd2OohTFcc0IVSxh5Z8IS9pJ
         ixGBF2E7XO6nXoyYkKY/AO4LzT1Y19sBnlAmDwCZaCHeI6GfypnYppN2u4v2pkjYBeYa
         HqfaRyTnnFKBernJCHQxe4l3XDZ3CeWIPkY5HaY9ApkzocQG92SRzLRuoPRKlA/M+4U1
         evwINiuVoD8aMo9EcbR4IBVV5rytlsX7DaFmWHctCmEc5AZsVTTBw69LqqOL4Yna6t9j
         d1XBjH2aS7Tp0dQ6oi6UxphT6h7NyRlrm9zo/TVs7iDZu3JeM2zu51vLpjExSFFYxIdn
         wXqg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755507732; x=1756112532;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ZWIZvwksGpTbzlC31RYEcXxtuKNXSor3vPDnyOLtS9g=;
        b=EeMtZZfAmTEkXenDmntEoinRszl15ys1nmkhvbp2SQ9BGMqBXZuRMnYV289GVVd4FA
         XeBVLK0m0Fgi1PdR9hxb3si9bao0H3hkMX0YhGioKMbAXi7NqgyQm36AoS7Px0yaN7Yl
         T4hrK+eCMJg1OdzDFQAHbE5oU9k3CGhlHt2nPMLKuCjyhvdLOX3zLuG/dLZo0befb83a
         hokfX844MEJ4BkYoJMYqbQwJkbCE+AETiLE7hEbs+aMFaBwX7ebnFUqxllId0ENZwddF
         GZGto72FB5V/4x4opF/GLojjSCYfxE6sv8tIVSsCLYu1QR/APGCiomzqVg5b/Jcp08dB
         XHcA==
X-Forwarded-Encrypted: i=1; AJvYcCUnmSn8cPBVgp80JNDG0adN2Ms2XmB2sjZHC3vqII8hVBKqxWP4r+sEVfcQHMjUbP6m+IgIDdV6tJc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywu6i+GKbiHtcVuVnhbOftHFR/OjYIcdt4PKNZAkSpn931og0go
	08D8m3AoYHLFkLXkGEoF5pTQCJLXp7JLBLjYBvgx2EpoJEaLC2/Txb6eQ5PvcGi5kR3dR4NrHNR
	Ta1E=
X-Gm-Gg: ASbGncuVry0/Fe5K/yHxF34z61TlBXbQeJIkClE0IYQo3Xb1nl+qPt4AbYKOr7JPBux
	kpAEH1puS4LQK8Yk/wmBImB5FmgPGAxh2hvbZzMJkoKYmoWCzk3jlV0kFy1lbVYCXBrPsBfOe2R
	9Jdlm4WgmHMc0rs65Y3ZVKl/aiSPfWvOdeef+0Jr+6vrI/LnBc76YI4l0X9WRCZvzWHUCYJh242
	hZ2tpn1xy4Cq9RB+TEvckgV8nP+dhJ0WTfO4zD2YDCCtyRaLojREnwK0GpaTQFURJwx4aA5vjGY
	TtDE/YHi6C+R64UV2iyKcFLPLur/bjSJJEvHWqT1uHavh6lVFvVtOermVH82vvD25/bz5oBGLhJ
	tSm9mTd2IT6FnyT8MzkV7qa99+A8qyJi9PKfoNDI6e3QxQo7Xe4hL5PQu8qc4ip1fFjq8amclfj
	9qRFXCK8g=
X-Google-Smtp-Source: AGHT+IFkYhQggqXKliwBnzROKb1RbmBZrXRs/gII7woUsLohPSgMn1axJDnBYSjLEzj0/BdLhJMYnw==
X-Received: by 2002:a17:907:3d86:b0:ade:3bec:ea30 with SMTP id a640c23a62f3a-afcdc03ed57mr31608866b.1.1755507731972;
        Mon, 18 Aug 2025 02:02:11 -0700 (PDT)
Message-ID: <a875b95b-32a1-4971-9004-b78c24747fc5@suse.com>
Date: Mon, 18 Aug 2025 11:02:11 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 13/22] x86: FRED enumerations
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-14-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: <20250808202314.1045968-14-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.08.2025 22:23, Andrew Cooper wrote:
> Of note, CR4.FRED is bit 32 and cannot enabled outside of 64bit mode.
> 
> Most supported toolchains don't understand the FRED instructions yet.  ERETU
> and ERETS are easy to wrap (they encoded as REPZ/REPNE CLAC), while LKGS is
> more complicated and deferred for now.
> 
> I have intentionally named the FRED MSRs differently to the spec.  In the
> spec, the stack pointer names alias the TSS fields of the same name, despite
> very different semantics.

Hmm, looking at this again I'm not entirely convinced: Staying in sync with
the spec also has its merits, and the FRED infix is sufficiently distinguishing
imo.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 09:03:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 09:03:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085775.1444063 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unvm5-0005GU-9H; Mon, 18 Aug 2025 09:03:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085775.1444063; Mon, 18 Aug 2025 09:03:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unvm5-0005GN-62; Mon, 18 Aug 2025 09:03:29 +0000
Received: by outflank-mailman (input) for mailman id 1085775;
 Mon, 18 Aug 2025 09:03:28 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1unvm4-0005GF-9H
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 09:03:28 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1unvm3-00Be7q-1V;
 Mon, 18 Aug 2025 09:03:27 +0000
Received: from [2a02:8012:3a1:0:ad2f:e692:6470:95d9]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1unvm3-007fzo-1Y;
 Mon, 18 Aug 2025 09:03: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=eS1n4xYPEb9OakrlpoefPX0czRp3HQqLk7dZByznKPg=; b=PS1Y5Yi5oXr5uwOGnX4p5eOyIX
	rxi5CJjIc+MxmtKsU+PydehqxJ2CaMGUCkyyszxAIaPNMMJe3vaiy7HepXqtphLZ9OG/zW/gATEez
	pTlSsrp9x5vL5rUPa344s6AZ2QUe8CJ39vuvx7bJtEFfnVt1e461VJXlR8foErx3QqKU=;
Message-ID: <d29bddc3-8bd7-4608-97da-bbfa1ae738c0@xen.org>
Date: Mon, 18 Aug 2025 10:03:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] arm/link: Remove exception table sections
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>
References: <20250818081824.3538065-1-andrew.cooper3@citrix.com>
Content-Language: en-GB
From: Julien Grall <julien@xen.org>
In-Reply-To: <20250818081824.3538065-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Andrew,

On 18/08/2025 09:18, Andrew Cooper wrote:
> This was almost certainly copy&paste from x86.  ARM does not us these nor
> selects HAS_EX_TABLE, so drop the sections and their boundary markers.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Acked-by: Julien Grall <jgrall@amazon.com>

Cheers,

> ---
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Julien Grall <julien@xen.org>
> CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
> CC: Bertrand Marquis <bertrand.marquis@arm.com>
> CC: Michal Orzel <michal.orzel@amd.com>
> 
> Found because I'm getting rid of .ex_table.pre on x86 too.
> ---
>   xen/arch/arm/xen.lds.S | 10 ----------
>   1 file changed, 10 deletions(-)
> 
> diff --git a/xen/arch/arm/xen.lds.S b/xen/arch/arm/xen.lds.S
> index 9f30c3a13ed1..db17ff1efa98 100644
> --- a/xen/arch/arm/xen.lds.S
> +++ b/xen/arch/arm/xen.lds.S
> @@ -86,16 +86,6 @@ SECTIONS
>     } : text
>   
>     .data.read_mostly : {
> -       /* Exception table */
> -       __start___ex_table = .;
> -       *(.ex_table)
> -       __stop___ex_table = .;
> -
> -       /* Pre-exception table */
> -       __start___pre_ex_table = .;
> -       *(.ex_table.pre)
> -       __stop___pre_ex_table = .;
> -
>          *(.data.read_mostly)
>     } :text
>   

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Mon Aug 18 09:11:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 09:11:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085790.1444072 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unvu7-0007B6-13; Mon, 18 Aug 2025 09:11:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085790.1444072; Mon, 18 Aug 2025 09:11:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unvu6-0007Az-Uh; Mon, 18 Aug 2025 09:11:46 +0000
Received: by outflank-mailman (input) for mailman id 1085790;
 Mon, 18 Aug 2025 09:11:45 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1unvu5-0007At-HB
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 09:11:45 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1unvu4-00BeJS-2U;
 Mon, 18 Aug 2025 09:11:44 +0000
Received: from [2a02:8012:3a1:0:ad2f:e692:6470:95d9]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1unvu4-007gGB-2a;
 Mon, 18 Aug 2025 09:11: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=Cl21S7RnQlZfKjaEvglLTfypVIxab1kHDDNrijQJ6zU=; b=phlmYgOuLsvcZwJpPJDqpvL1K1
	hYoYBVVPmSOF3dx/OevmMSX61VqrMs96WKsSXKLXz+R/tkqqX/h9imvbkYamBNAgBcrb40WGmDXd1
	6nmGJ+NB5+0zMf13kgVM4UQ90jrCgvxib/im7SjR5rhFs6lDFFC87hiVbEJ5++2jqHIE=;
Message-ID: <9f5a77c1-ff99-40db-ae49-86e34cc1a391@xen.org>
Date: Mon, 18 Aug 2025 10:11:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] docs/sending-patches: add GitLab pipeline link
Content-Language: en-GB
To: Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech,
 michal.orzel@amd.com, jbeulich@suse.com, roger.pau@citrix.com
References: <alpine.DEB.2.22.394.2508151310010.923618@ubuntu-linux-20-04-desktop>
From: Julien Grall <julien@xen.org>
In-Reply-To: <alpine.DEB.2.22.394.2508151310010.923618@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Stefano,

On 15/08/2025 21:12, Stefano Stabellini wrote:
> When submitting patches to xen-devel, add a link to a successful
> pipeline run.

Does this mean we have enough capacity to handle normal CI job + submission?

Also, as we try to encourage people to use the gitlab CI. So we would 
probably also encourage them to write new tests because in a lot of 
cases we will add new code. So the pipeline is only going to confirm 
that we are regressing existing tests (which may be irrelevant to the 
subsystem modified).
> 
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> 
> diff --git a/docs/process/sending-patches.pandoc b/docs/process/sending-patches.pandoc
> index 1991932b68..6e1401ea22 100644
> --- a/docs/process/sending-patches.pandoc
> +++ b/docs/process/sending-patches.pandoc
> @@ -314,3 +314,23 @@ A patch should always be sent **to** the xen-devel mailing list
>   of all touched code areas should get a copy of the mail via **Cc**. In case
>   some other recipients are known to be interested in the patch, they can be
>   added via **Cc**, too.
> +
> +## Testing
> +
> +Xen Project uses a GitLab-based CI infrastructure. You can request to
> +have your GitLab account added to the Xen Project organization on GitLab
> +(https://gitlab.com/xen-project) by reaching out to THE REST maintainers
> +via xen-devel or Matrix. Once your account is added to the Xen Project
> +organization on GitLab, also a personal Xen repository will be created
> +for you under https://gitlab.com/xen-project/people/<your-username>/xen.
> +You will be able to trigger a GitLab testing pipeline with a single git
> +push to your personal Xen repository.

I think it would be worth mentioning that this should be based on a 
recent "master" (I would say less than two days old).

Also, can you clarify why we are asking the user to trigger the pipeline 
rather than having a both that will pick a series and test it?

> +
> +When submitting a non-trivial patch or a non-trivial patch series,

This wording is ambiguous. But even trivial patch could result to 
regression. So I am not sure why we would want to exclude them. Can you 
clarify?

> +please include a link to the successful GitLab pipeline run on your
> +personal branch. This information can be added after the `---` line.
 >> +For example:
> +
> +    ---
> +    Test CI pipeline:
> +    https://gitlab.com/xen-project/people/your-username/xen/-/pipelines/1980129839

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Mon Aug 18 09:35:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 09:35:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085800.1444083 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unwGh-000363-Pu; Mon, 18 Aug 2025 09:35:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085800.1444083; Mon, 18 Aug 2025 09: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 1unwGh-00035w-Ma; Mon, 18 Aug 2025 09:35:07 +0000
Received: by outflank-mailman (input) for mailman id 1085800;
 Mon, 18 Aug 2025 09:35:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=q+DX=26=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1unwGg-00035q-2i
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 09:35:06 +0000
Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com
 [2a00:1450:4864:20::635])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9ef470cf-7c16-11f0-a32a-13f23c93f187;
 Mon, 18 Aug 2025 11:35:04 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-afcb72d5409so626318766b.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 02:35: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
 a640c23a62f3a-afcdce73e2esm789634666b.39.2025.08.18.02.35.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Aug 2025 02:35: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>
X-Inumbo-ID: 9ef470cf-7c16-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755509704; x=1756114504; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=y0h/cw0gX211U0sPkNm2gimTeh/JW3YIboXNlfSM/zA=;
        b=Oi4JeTkoZ9OFi7fwl4RVr230x5lHcFYa0vyd+sLhYO5r6K09fLGaJJKSAYKCRz/VV4
         cS0dm7RuX4EcCmYrAdH9uBM2dDSXS1x+DLa7Eflnut+dM3KksXzv4KZicLhziwblHRVt
         amveK62FE4+OgDR8IKqQxG1h1qf/iKg8p4bLUzCsbf0lx9+jQ0mb5jVYzn01Ln3gsjwE
         75SS86P30ZXGG1u+KJ5iaN7DelrOQLU44v+Vdr55JWtK6mbUeLKusP6zpUct0ea7g5AK
         /2pSL12arLUWs1mIV/hBqG/h40tLkfvUH6WG+kTM8Nnd+Ia5Dz2ksvAIc1VEwGXjefb0
         sJJg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755509704; x=1756114504;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=y0h/cw0gX211U0sPkNm2gimTeh/JW3YIboXNlfSM/zA=;
        b=SWIrjZE3WXhsr4cVkYqJNRErkyuPGtzBkAoiWlUMPeKX7LldVCNBquUn33A3wfyXPH
         tERDxqLnXgR3wYOOPE7klKSf7BUMC+mu0BmwgllKPgxRXyqe1s6AIoJPmyBb9OePIoKF
         pYSDxQBbeXZJk2DUrAxfCy8clgcS2wWz3WefTVm7MRF4ZezkV4j/1GQTQKfI3CKcNlSS
         fBekCzv+xf6d3BcBlJX9jyzLsNLF06u9CxDJM5q8QLrOA0Z0PnrQdwCdZvrA2pWxM3sA
         totbNhCZ9Vzl2DXfPpjR/5mn9fnM4AbZ6ujVvmY1x2FYbFBwuaYM/fCi+ZsXnow8ECAk
         KiKw==
X-Forwarded-Encrypted: i=1; AJvYcCXfTYHQ3Q88hWyYY5oMYDUt2KmpLxWEgZB7R2lHxg5cC5ntlaG42ErUVCUeejI2cXczggS9WyHArq4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwhfymHCWGXjBTdO/HKC+sCWN5j4HRTpvlfL0glBGgF3qPNoEWR
	u0YMIInem8+85yVmuAdEf4R1PBOD6wn5HQVcNwLsya/8aBarZY7vLE/KdCpY6q7C3Q==
X-Gm-Gg: ASbGncsOKk2CwN3XON9CP47yZb4LdD5tobRNMZYUgZauLeJz47QK1fazBBzEoIBqOwV
	o9jyk+KrUmFDzg3qdUpVovQwopMqw3ZxpMl3wes9uAk+FUXjETgTYz0YeqgFi2HqxiBJvVL6CCI
	Ig8RtQayuhPZdrYnQq03hor81vu0GTbciRFf72sSZP9Z9wWuoeFXVIvPBVme/HwI9ANMAP3pT32
	mgJhVMI/qIZ9PZ9E+R4m7FxLkXx72vHEtf2gtJtlLMoTwPIkv1lJOoMdz3b15nED66jlwIoG65J
	dF754P+oa6M0rzH3KLJdjvOOu47f9Wq4YUmWVhy9HcWSAHnKwofDEWsr3NbOAJu79KJG0uhm75G
	2f/YAVhJuZqR4BlAj1y/IsGMYxru4xeB4DSR9mc67Gy2Bu21vKyldhgy94KI3UsCy7k35iIlLkh
	WEMZVDDybdSNc9fdbUeQ==
X-Google-Smtp-Source: AGHT+IFcYaloBf0HsFv8YN6Nzg2GaDqZD7ji+PjPyzWnEB8lqLV2r12D7BrJ6RxXNlCgngdI97Oz6Q==
X-Received: by 2002:a17:907:3e23:b0:af9:8688:42de with SMTP id a640c23a62f3a-afcdc363c08mr1202263766b.41.1755509704167;
        Mon, 18 Aug 2025 02:35:04 -0700 (PDT)
Message-ID: <1d6494f6-fbef-436f-a379-a98e02b20710@suse.com>
Date: Mon, 18 Aug 2025 11:35:03 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 22/22] x86/traps: Enable FRED when requested
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-23-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: <20250808202314.1045968-23-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 08.08.2025 22:23, Andrew Cooper wrote:
> With the shadow stack and exception handling adjustements in place, we can now
> activate FRED when appropriate.  Note that opt_fred is still disabled by
> default.
> 
> Introduce init_fred() to set up all the MSRs relevant for FRED.  FRED uses
> MSR_STAR (entries from Ring3 only), and MSR_FRED_SSP_SL0 aliases MSR_PL0_SSP
> when CET-SS is active.  Otherwise, they're all new MSRs.
> 
> With init_fred() existing, load_system_tables() and legacy_syscall_init()
> should only be used when setting up IDT delivery.  Insert ASSERT()s to this
> effect, and adjust the various *_init() functions to make this property true.
> 
> Per the documentation, ap_early_traps_init() is responsible for switching off
> the boot GDT, which needs doing even in FRED mode.
> 
> Finally, set CR4.FRED in {bsp,ap}_early_traps_init().

Probably you've done that already, but these last two paragraphs will need
updating following patch 08 v1.1.

> Xen can now boot in FRED mode up until starting a PV guest, where it faults
> because IRET is not permitted to change privilege.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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

> @@ -274,6 +279,44 @@ static void __init init_ler(void)
>      setup_force_cpu_cap(X86_FEATURE_XEN_LBR);
>  }
>  
> +/*
> + * Set up all MSRs relevant for FRED event delivery.
> + *
> + * Xen does not use any of the optional config in MSR_FRED_CONFIG, so all that
> + * is needed is the entrypoint.
> + *
> + * Because FRED always provides a good stack, NMI and #DB do not need any
> + * special treatment.  Only #DF needs another stack level, and #MC for the
> + * offchance that Xen's main stack suffers an uncorrectable error.
> + *
> + * FRED reuses MSR_STAR to provide the segment selector values to load on
> + * entry from Ring3.  Entry from Ring0 leave %cs and %ss unmodified.
> + */
> +static void init_fred(void)
> +{
> +    unsigned long stack_top = get_stack_bottom() & ~(STACK_SIZE - 1);
> +
> +    ASSERT(opt_fred == 1);
> +
> +    wrmsrns(MSR_STAR, XEN_MSR_STAR);
> +    wrmsrns(MSR_FRED_CONFIG, (unsigned long)entry_FRED_R3);
> +
> +    wrmsrns(MSR_FRED_RSP_SL0, (unsigned long)(&get_cpu_info()->_fred + 1));
> +    wrmsrns(MSR_FRED_RSP_SL1, 0);

In the event of a bug somewhere causing this slot to be accessed, is the
wrapping behavior well-defined, resulting in an attempt to write to the
top end of VA space? (Then again, if the wrapping itself caused a fault,
the overall effect would be largely the same - in many cases #DF.)

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 09:47:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 09:47:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085821.1444093 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unwSJ-0005D1-TT; Mon, 18 Aug 2025 09:47:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085821.1444093; Mon, 18 Aug 2025 09:47: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 1unwSJ-0005Cu-Pn; Mon, 18 Aug 2025 09:47:07 +0000
Received: by outflank-mailman (input) for mailman id 1085821;
 Mon, 18 Aug 2025 09:47:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=GLF1=26=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1unwSJ-0005Co-8a
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 09:47:07 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4ce2cd29-7c18-11f0-a32a-13f23c93f187;
 Mon, 18 Aug 2025 11:47:06 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-45a1b0d231eso21228965e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 02:47:06 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45a215c324esm76310885e9.2.2025.08.18.02.47.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Aug 2025 02:47: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>
X-Inumbo-ID: 4ce2cd29-7c18-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755510425; x=1756115225; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=j/MNnu/hMDSAULP+vzRIufVXXke7I2U7psw3JI0EXFU=;
        b=v2ylvsD5nWigljTtbVjdTLE5cKymQFIRqVycxOUiWW+amEDqpeti0Pq/OtO2XLV7ep
         RQy7HdqX7jMtESAX84auGPDqefR5BOUL/BqovjqfTtn54jDkUpL7t1EQh3XzkMiXQNF4
         aVOy/jPsKYhfF9G7+pZxshtt3cWPrgQMVarhQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755510425; x=1756115225;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=j/MNnu/hMDSAULP+vzRIufVXXke7I2U7psw3JI0EXFU=;
        b=B2f3iHQ1bIC2w+QfV7OiqBgzXc6FI6jsUfLE4IUu3zj8769JylkrqBl6XHrGEeCGSG
         pHhxGNjkyMt/25LVO7jJT1jrw6uERN1wMLjqVbKHMcDOXN8nh9tQGb+Tm3sDtn1ZyO5R
         fhDalG7JCkFkqvCzCd/g2E1mUwdqodoc+z2ep/9GJQyV1TnLQlj2a6hlYfjkIA2dOgpN
         wLBY16KgWlQl1TtcLM1vYYBkl100vWpTeXevFdVANCcw8J3UnIZShZ+mZetAwi0OQkuZ
         3N21R3IS0okiyEtfJJ13qErFnnH6eRqMxPOlbq8NW8/58lxkb+kh1q56x1dkh4+WbNK7
         u8Xg==
X-Forwarded-Encrypted: i=1; AJvYcCUAa27xaSz6NAjlV2n30y3fG8pkKWxHOZCJoirCU48aAjb4sUWJaSg7viEvBH2iYyFgz6RcL+6Qkmk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxQKTD+O5wIyrFE/mQcNa0GIMJwAE38zWtCyAuNDHzvxJSqQLJ5
	rHU/23ATGGDkDL1QLoMA5JPNt7UrAibA2lwLXfwcTDX4LFJSlbnCMOWB0m3+5j+1pXU=
X-Gm-Gg: ASbGncslM+3+Bdi9kfUiojbwdaC1Y/ZRL2Cpgro12uuNhZivEDsZaEipha50yb/IN2f
	Z7n75UeQugUukHc8AcXv2S76b/umH7Aqc/CZ7fBJ0zX1FvFcp12+gRRld/FGRIVaTThcFmr7B6D
	uLWEY/zDM8WkSYnBw8avDzX26y2wnwK8dQKyJFN0fJVWFdy+EUpw1FkX7ue3ijYlAK/I9EUZiKr
	WB4j3Ify5g91tqL2j2RcVhBXnel6YbKW8p7f6OJaW6R+CPuto6Be6G+tDAW7ca3ijqqshLVYunj
	o1pT14mOmr0/NiVtUJPZqQ3ezxA7IujlRYqPQwDo0313Fzl32fhm+mXzURjsoS8fpbNmnDy/LdS
	OAtD5N6f/TYIJauLx9/jYv17ts0gUdwxPiSwvh07nf+Qzr+4Sc8kazt3KjZPz+l3XyQQB
X-Google-Smtp-Source: AGHT+IEODAeiC9Rms1J/h0+U278Och1Q2kIohmSa8o6zcUHFjsoPjx8PxE8EiPecMGU3o0zLygfrhg==
X-Received: by 2002:a05:600c:354b:b0:456:eb9:5236 with SMTP id 5b1f17b1804b1-45a21808b2bmr104653435e9.15.1755510425364;
        Mon, 18 Aug 2025 02:47:05 -0700 (PDT)
Message-ID: <17fd42cf-ce42-4757-afce-0b7c4d13de25@citrix.com>
Date: Mon, 18 Aug 2025 10:47:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 22/22] x86/traps: Enable FRED when requested
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-23-andrew.cooper3@citrix.com>
 <1d6494f6-fbef-436f-a379-a98e02b20710@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: <1d6494f6-fbef-436f-a379-a98e02b20710@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18/08/2025 10:35 am, Jan Beulich wrote:
> On 08.08.2025 22:23, Andrew Cooper wrote:
>> With the shadow stack and exception handling adjustements in place, we can now
>> activate FRED when appropriate.  Note that opt_fred is still disabled by
>> default.
>>
>> Introduce init_fred() to set up all the MSRs relevant for FRED.  FRED uses
>> MSR_STAR (entries from Ring3 only), and MSR_FRED_SSP_SL0 aliases MSR_PL0_SSP
>> when CET-SS is active.  Otherwise, they're all new MSRs.
>>
>> With init_fred() existing, load_system_tables() and legacy_syscall_init()
>> should only be used when setting up IDT delivery.  Insert ASSERT()s to this
>> effect, and adjust the various *_init() functions to make this property true.
>>
>> Per the documentation, ap_early_traps_init() is responsible for switching off
>> the boot GDT, which needs doing even in FRED mode.
>>
>> Finally, set CR4.FRED in {bsp,ap}_early_traps_init().
> Probably you've done that already, but these last two paragraphs will need
> updating following patch 08 v1.1.

It's on my list, but not done yet.

>
>> Xen can now boot in FRED mode up until starting a PV guest, where it faults
>> because IRET is not permitted to change privilege.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thanks, but I fear this patch has changed too much.Â  I'll take a
decision when I've cleaned up the integration of the PV work.

>
>> @@ -274,6 +279,44 @@ static void __init init_ler(void)
>>      setup_force_cpu_cap(X86_FEATURE_XEN_LBR);
>>  }
>>  
>> +/*
>> + * Set up all MSRs relevant for FRED event delivery.
>> + *
>> + * Xen does not use any of the optional config in MSR_FRED_CONFIG, so all that
>> + * is needed is the entrypoint.
>> + *
>> + * Because FRED always provides a good stack, NMI and #DB do not need any
>> + * special treatment.  Only #DF needs another stack level, and #MC for the
>> + * offchance that Xen's main stack suffers an uncorrectable error.
>> + *
>> + * FRED reuses MSR_STAR to provide the segment selector values to load on
>> + * entry from Ring3.  Entry from Ring0 leave %cs and %ss unmodified.
>> + */
>> +static void init_fred(void)
>> +{
>> +    unsigned long stack_top = get_stack_bottom() & ~(STACK_SIZE - 1);
>> +
>> +    ASSERT(opt_fred == 1);
>> +
>> +    wrmsrns(MSR_STAR, XEN_MSR_STAR);
>> +    wrmsrns(MSR_FRED_CONFIG, (unsigned long)entry_FRED_R3);
>> +
>> +    wrmsrns(MSR_FRED_RSP_SL0, (unsigned long)(&get_cpu_info()->_fred + 1));
>> +    wrmsrns(MSR_FRED_RSP_SL1, 0);
> In the event of a bug somewhere causing this slot to be accessed, is the
> wrapping behavior well-defined, resulting in an attempt to write to the
> top end of VA space? (Then again, if the wrapping itself caused a fault,
> the overall effect would be largely the same - in many cases #DF.)

The wrapping is well defined - like other cases, it goes to the top of
address space, but that's owned by PV guests.Â  SMAP ought to mitigate
what would otherwise be a priv-esc.

With IDT, we poisoned the unused pointers with non-canonical addresses,
but that's not possible here, as they're MSRs and checked at this point,
rather than when they're used.

I suspect the best we can do is reuse the #DB or NMI stacks, and
intentionally reverse the regular and shadow stack pointers, meaning
that any attempt to use SL1 will hit a guard page and escalate to #DF.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 09:53:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 09:53:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085831.1444103 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unwYm-00077Y-Hy; Mon, 18 Aug 2025 09:53:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085831.1444103; Mon, 18 Aug 2025 09:53: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 1unwYm-00077R-FK; Mon, 18 Aug 2025 09:53:48 +0000
Received: by outflank-mailman (input) for mailman id 1085831;
 Mon, 18 Aug 2025 09:53:47 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=q+DX=26=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1unwYl-00077L-6L
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 09:53:47 +0000
Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com
 [2a00:1450:4864:20::532])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3b5285e2-7c19-11f0-a32a-13f23c93f187;
 Mon, 18 Aug 2025 11:53:46 +0200 (CEST)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-6188b5ad681so5524531a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 02:53: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
 4fb4d7f45d1cf-618b01b5fa1sm6673819a12.46.2025.08.18.02.53.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Aug 2025 02:53: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>
X-Inumbo-ID: 3b5285e2-7c19-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755510825; x=1756115625; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=vQZa7geI1qq4OuK6YHyfTAofVg2d2sJB1o+R7NMB0LY=;
        b=BNFwsLxJ2KSjSZxvPO/q0lyQ8mjHd7pz27ENCjQsJCrFJaDqM/GS88rAmEuji7RJGx
         ohPBEKNhaWjWTV7NdDzXsjtjcLVC5kluX0GhMakF1//FLIhC5fi0hRjJISlxJZOxja8Y
         H7MS7o/kvfMUFDz4U/vZAV6+M+vCIIeMYm5XnD10S1lHy4gm+RcmQMNA3pSneYw7sMQq
         /wtEhW4d3MKBknioASUScJ+vMdnQtbZiyEfe/DjylftCMpqRwU7B0vwVpPkx7ikS3SVl
         8u+9c60JZTpEFb3790+cxpT8nS2G8rUbqUzHcsrjl8LzjgC04B6LG0pb1xY5gM1tmsDh
         X8yA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755510825; x=1756115625;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vQZa7geI1qq4OuK6YHyfTAofVg2d2sJB1o+R7NMB0LY=;
        b=d2hM7IrsxGAVW8EFrTiva/FXuvLOsqKZOUbltvf/YDsmLiILb85AG1pbJFkhfkrLYK
         Pjo5ZfdZd5B76Mpu3XGx23j0Y5dWTy+/Vg+U+9KdlJZPHQvsAcRMOS4SOTH/aAx77ThH
         lszCVBadjXUvqhMKQuvAqTb/Fij0jKqLOjwFZIBTtCPbAhurl200ePXP0MbtzbrR5DZp
         t3qZjCju+NNhvePWGuKP+2tzZww/YgBLXef1RILn8zUiXMRO37XIJQ5cM4SNH7aYKt4x
         pBJhaVI4KmuNMBO4bt7bXHqtJN/3K/Qy1o/+V5Ew50H1KaMszqx5pebHRvQ0auGLK6pY
         0lvQ==
X-Forwarded-Encrypted: i=1; AJvYcCUiMEwSF/DzlD/7vOe75Vl0FVxEB7k7SwNG5b1+KsHTWg+VwVPqnXTyEtRH0kG5hg0aY/+5T7tE4Nw=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw3iqBkld+yYbTz9Up993L06lLhZ+bXEbfo7miEUPIKJXC/7n3r
	+gSHoFbVeG1hwScSPYk7JYM7nVIzKYtNCqpzNBYFDMvfSEmnxtmR+y52Tv8ep1Lp/w==
X-Gm-Gg: ASbGncul7zY0SYkGCL4fBxSoMMx6fx2BHTM9a710ZjOik0+aDZFg5/RXagrsf3zBs+l
	ryHj9KTvzHyvRx30SqCncORRKY8oAwaX7C7h7311PvZNfLE56/KY5REqibd5skot3tV5B34sDyC
	mmogk4UA1q2jbYMFGXM7Ww3d6udSaGMIpzSGquGx8jlioXsU/0v2sbger8xQYBcLfpDlNPG0AW3
	btggZIpY8AjoFJLRgxzNHIDOqAXTx01xzOuZqN2IexBQyDQrs151vsVXA6uU9MrHgRU3gl5x/Sg
	gZQRX+AvoaIm/tzCa8/q5UHRO6+tu8SOEc6VQkR72S8XsPfd33roFtzk1FDvRzKjeOwNPzcQ5NM
	wC6uaOoEex+5xJp+CrVZsxILTrKtKov5hrLy8DQmOrux7I5v7LOuBh78kOrneYwrCnj7cYrH3bJ
	FWeU6Y+/nj6JiZMilgmg==
X-Google-Smtp-Source: AGHT+IF0iM7iUtg0HndeA1tTiOpRGnM2AQSkvbNJ/6EUubgubAzYd8iJEXLCRvjM+eFZUBJq2dX4Fg==
X-Received: by 2002:a17:907:a44:b0:af9:d6c1:155a with SMTP id a640c23a62f3a-afceae135ffmr737344266b.44.1755510825482;
        Mon, 18 Aug 2025 02:53:45 -0700 (PDT)
Message-ID: <c1a719af-1e56-479f-8a1d-ac6628f855b4@suse.com>
Date: Mon, 18 Aug 2025 11:53:44 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 22/22] x86/traps: Enable FRED when requested
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-23-andrew.cooper3@citrix.com>
 <1d6494f6-fbef-436f-a379-a98e02b20710@suse.com>
 <17fd42cf-ce42-4757-afce-0b7c4d13de25@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: <17fd42cf-ce42-4757-afce-0b7c4d13de25@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18.08.2025 11:47, Andrew Cooper wrote:
> On 18/08/2025 10:35 am, Jan Beulich wrote:
>> On 08.08.2025 22:23, Andrew Cooper wrote:
>>> With the shadow stack and exception handling adjustements in place, we can now
>>> activate FRED when appropriate.  Note that opt_fred is still disabled by
>>> default.
>>>
>>> Introduce init_fred() to set up all the MSRs relevant for FRED.  FRED uses
>>> MSR_STAR (entries from Ring3 only), and MSR_FRED_SSP_SL0 aliases MSR_PL0_SSP
>>> when CET-SS is active.  Otherwise, they're all new MSRs.
>>>
>>> With init_fred() existing, load_system_tables() and legacy_syscall_init()
>>> should only be used when setting up IDT delivery.  Insert ASSERT()s to this
>>> effect, and adjust the various *_init() functions to make this property true.
>>>
>>> Per the documentation, ap_early_traps_init() is responsible for switching off
>>> the boot GDT, which needs doing even in FRED mode.
>>>
>>> Finally, set CR4.FRED in {bsp,ap}_early_traps_init().
>> Probably you've done that already, but these last two paragraphs will need
>> updating following patch 08 v1.1.
> 
> It's on my list, but not done yet.
> 
>>
>>> Xen can now boot in FRED mode up until starting a PV guest, where it faults
>>> because IRET is not permitted to change privilege.
>>>
>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> 
> Thanks, but I fear this patch has changed too much.Â  I'll take a
> decision when I've cleaned up the integration of the PV work.
> 
>>
>>> @@ -274,6 +279,44 @@ static void __init init_ler(void)
>>>      setup_force_cpu_cap(X86_FEATURE_XEN_LBR);
>>>  }
>>>  
>>> +/*
>>> + * Set up all MSRs relevant for FRED event delivery.
>>> + *
>>> + * Xen does not use any of the optional config in MSR_FRED_CONFIG, so all that
>>> + * is needed is the entrypoint.
>>> + *
>>> + * Because FRED always provides a good stack, NMI and #DB do not need any
>>> + * special treatment.  Only #DF needs another stack level, and #MC for the
>>> + * offchance that Xen's main stack suffers an uncorrectable error.
>>> + *
>>> + * FRED reuses MSR_STAR to provide the segment selector values to load on
>>> + * entry from Ring3.  Entry from Ring0 leave %cs and %ss unmodified.
>>> + */
>>> +static void init_fred(void)
>>> +{
>>> +    unsigned long stack_top = get_stack_bottom() & ~(STACK_SIZE - 1);
>>> +
>>> +    ASSERT(opt_fred == 1);
>>> +
>>> +    wrmsrns(MSR_STAR, XEN_MSR_STAR);
>>> +    wrmsrns(MSR_FRED_CONFIG, (unsigned long)entry_FRED_R3);
>>> +
>>> +    wrmsrns(MSR_FRED_RSP_SL0, (unsigned long)(&get_cpu_info()->_fred + 1));
>>> +    wrmsrns(MSR_FRED_RSP_SL1, 0);
>> In the event of a bug somewhere causing this slot to be accessed, is the
>> wrapping behavior well-defined, resulting in an attempt to write to the
>> top end of VA space? (Then again, if the wrapping itself caused a fault,
>> the overall effect would be largely the same - in many cases #DF.)
> 
> The wrapping is well defined - like other cases, it goes to the top of
> address space, but that's owned by PV guests.Â  SMAP ought to mitigate
> what would otherwise be a priv-esc.
> 
> With IDT, we poisoned the unused pointers with non-canonical addresses,
> but that's not possible here, as they're MSRs and checked at this point,
> rather than when they're used.
> 
> I suspect the best we can do is reuse the #DB or NMI stacks, and
> intentionally reverse the regular and shadow stack pointers, meaning
> that any attempt to use SL1 will hit a guard page and escalate to #DF.

I was wondering whether to store the upper end of zero_page[]. Or else
point into entirely unmapped space.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 10:02:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 10:02:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085841.1444113 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unwhB-0000jL-BT; Mon, 18 Aug 2025 10:02:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085841.1444113; Mon, 18 Aug 2025 10:02: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 1unwhB-0000jE-8t; Mon, 18 Aug 2025 10:02:29 +0000
Received: by outflank-mailman (input) for mailman id 1085841;
 Mon, 18 Aug 2025 10:02:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=q+DX=26=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1unwh9-0000j7-S5
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 10:02:27 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 717a6e75-7c1a-11f0-a32a-13f23c93f187;
 Mon, 18 Aug 2025 12:02:26 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-afcb7347e09so625133366b.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 03:02: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
 a640c23a62f3a-afcdd010e7dsm769275066b.89.2025.08.18.03.02.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Aug 2025 03:02: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>
X-Inumbo-ID: 717a6e75-7c1a-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755511346; x=1756116146; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=qUhS2zNWmv8Hkk1Bfvmd7hGGkXraYGujN0Y27i1nbKA=;
        b=Wy/PD+m7w66JlTtn6RfVYVAeLN5ZJLfbBtFJFjFfPHBdQiAeufk3V6lOgKvBeABG19
         tFz63OCc+R1zDJ0j9B3Qdlv9Ot1VscI9OdgIuObJbqtxLSpr3rXW8aaOdxv/tnM897sq
         Y4t799mABaNcOytDYye5fpuhyJ16aKbRgTy+L0EWF5k6Jiall5rNT0PEVxA6JzjmdtZF
         D0DY3ykMkl4oV2Z6xwgV4ew33yorwAnlGG+Q8CZxW6N7oAHhJADGKHbus9oLbw+4MgPv
         EGScolbuR2lPbUFjnp5LR+rYTmEHrVI7fOPCpYXhLtSzPdjcW5n2J7F/M6EoFr1B/RC3
         i2uw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755511346; x=1756116146;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qUhS2zNWmv8Hkk1Bfvmd7hGGkXraYGujN0Y27i1nbKA=;
        b=OfWIXKj44mZYmPPBlh460WqZD47YsdMaz2ZBkAR3baeNPZeXyclx5P6YCkMdmz5L/K
         z1syqYanNNQAX/tymZrlJZm9QbaTWqlFcSa1XJr89k+gynG2c9ONBb6EiH1siQ6ufH1+
         rh74BriRj6thX60yWaqBkO8Qp45wj9UnciDjKUCcn2xgXllPvOav72yogfDU7eQnF7SL
         uahIf/fJdgon5WFu2KmwM9vE5nyunU6TjB/RBWJT9qTM3qKp2yK9Y/JWltseUo3hFH/z
         bKEse0HMBORqLFVRlllS+hfOHJQl2TJJbS7NDLvnm8IEWsiYsxFdu3Pfp74+94JFI43G
         gnWw==
X-Forwarded-Encrypted: i=1; AJvYcCUGMcEGtCopQNuQjXnqAUYblMd8dRIgX6bc3IAPG3vD8gTBS3RNnUvW1WBbWvZ7rI/LsC/RXiCYWPs=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxnyo06YMbFY3FlkXpTqqUOkc/6cgANFnq732a+kImBDMK+/0nF
	o9f3p4M3/LoODEoj4jN0FTIaaKGXYgVDq0T7fun/SHfmKTIvuuSgO1bCU6rms5sE7A==
X-Gm-Gg: ASbGnctdf4Rucv0cUmGimxdnEQSRR1rhI5w4xQPiHWjU2T74uxTXLaxrJitK/jNiwtE
	jcI4EUf6lynn0OWMpyvuTYPRd48nnzUU7mEILoTUPiZt7O5yQ+Sow1sz413WzVDTrO5pNVA4w20
	AQa1xHZbn8UwFyJfSihHDd4MSULVAsyEPQUjgeF2SMAbn5Xgpu9fk2bJIdVA+Fop9ivGrKcB9br
	JKXorsetgzDZqBEraS+mRMUQ+cQ/Zhj9VxiXcZp7FhRUfh8EjsBE4pG73WD/oJcHnZyQdwRQU8I
	7Z+rAHHTViHgSQ5YvOTeJSg8gLbCl73Iwdf/NwwAMgr3jx1GJrXuNZxLjoP4rW6Ung6SkywesQ6
	G+Gh/gR5FF28IWOsI5OZhp90o9+bKMRqO8TQN9hSPTJIuvvflkxcH/hyBrracjDwIOYDOocrc82
	224p1WmYY=
X-Google-Smtp-Source: AGHT+IFM6CMpDJZyAePO1larEUv0zJsAXKjbUXIWUNqxyEYX90HIPl9mHCP4HzGIvutQBkfzk8PJ+g==
X-Received: by 2002:a17:907:970b:b0:afa:2779:c24d with SMTP id a640c23a62f3a-afcdc1a14damr1016627966b.10.1755511345692;
        Mon, 18 Aug 2025 03:02:25 -0700 (PDT)
Message-ID: <d1a49f35-250a-4db5-88f7-fd0b8e6d1a1c@suse.com>
Date: Mon, 18 Aug 2025 12:02:24 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 23/22] x86/vmx: Adjust NMI handling for FRED
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808234920.1214924-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: <20250808234920.1214924-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.08.2025 01:49, Andrew Cooper wrote:
> --- a/xen/arch/x86/hvm/vmx/vmx.c
> +++ b/xen/arch/x86/hvm/vmx/vmx.c
> @@ -4209,8 +4209,18 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_regs *regs)
>               ((intr_info & INTR_INFO_INTR_TYPE_MASK) ==
>                MASK_INSR(X86_ET_NMI, INTR_INFO_INTR_TYPE_MASK)) )
>          {
> -            do_nmi(regs);
> -            enable_nmis();
> +            /*
> +             * If we exited because of an NMI, NMIs are blocked in hardware,
> +             * but software is expected to invoke the handler.
> +             *
> +             * Use INT $2.  Combined with the current state, it is the correct
> +             * architectural state for the NMI handler,

Not quite, I would say: For profiling (and anything else which may want to
look at the outer context's register state from within the handler) we'd
always appear to have been in Xen when the NMI "occurred".

> and the IRET on the
> +             * way back out will unblock NMIs.
> +             *
> +             * In FRED mode, we can spot this trick and cause the ERETS to
> +             * unblock NMIs too.
> +             */
> +            asm ("int $2");
>          }
>          break;
>      case EXIT_REASON_MCE_DURING_VMENTRY:
> --- a/xen/arch/x86/traps.c
> +++ b/xen/arch/x86/traps.c
> @@ -2285,8 +2285,22 @@ void asmlinkage entry_from_xen(struct cpu_user_regs *regs)
>          do_nmi(regs);
>          break;
>  
> -    case X86_ET_HW_EXC:
>      case X86_ET_SW_INT:
> +        if ( regs->fred_ss.vector == 2 )
> +        {
> +            /*
> +             * Explicit request from the the VMExit handler.  Rewrite the FRED
> +             * frame to look like it was a real NMI, and go around again.
> +             */
> +            regs->fred_ss.swint = false;
> +            regs->fred_ss.nmi = true;
> +            regs->fred_ss.type = X86_ET_NMI;
> +            regs->fred_ss.insnlen = 0;
> +
> +            return entry_from_xen(regs);

Any particular reason to use recursion here (which the compiler may or may
not transform)? In fact I'm having trouble seeing why you couldn't invoke
do_nmi() here directly.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 10:03:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 10:03:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085852.1444123 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unwiP-0001EH-Kj; Mon, 18 Aug 2025 10:03:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085852.1444123; Mon, 18 Aug 2025 10:03: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 1unwiP-0001EA-He; Mon, 18 Aug 2025 10:03:45 +0000
Received: by outflank-mailman (input) for mailman id 1085852;
 Mon, 18 Aug 2025 10:03:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=q+DX=26=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1unwiN-0001E2-TQ
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 10:03:44 +0000
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com
 [2a00:1450:4864:20::52a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9dbf67e6-7c1a-11f0-b898-0df219b8e170;
 Mon, 18 Aug 2025 12:03:41 +0200 (CEST)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-6188b6f501cso4709991a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 03:03: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
 4fb4d7f45d1cf-61a34c16863sm2681626a12.14.2025.08.18.03.03.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Aug 2025 03:03: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>
X-Inumbo-ID: 9dbf67e6-7c1a-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755511420; x=1756116220; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=42zY278QVcPb+qNkr0GGutF0LGSMm4/8s0SWBnkcqew=;
        b=Fz7JuR+14S+V2AKgGzvijzbxMtHqLpRicI2CRkaVV4ct6mE6gL/4b+bXesQuRXRFmm
         8n3BWEarQOeKtZBPhFO/8EmysfdRL7B7Z2Yjb7C2f6oKsyLhkHGRGGrj0rRheo0011rH
         kb9Zysh7hP5H5RP3u9un0774hji7+xzgRJ765VaZUg6RNaGoiuPYgnb4GtW9yhe88Fkd
         uW05VOKyiPD3QeZx4n70TKRCF6oB7o5ZH8xxmzoPTRihykhQFXXLYiof5/4hd4Osxdx3
         11RtQyjwWvbC9sKygggs/moxYHH3TBF1lZbaV6uZJ6BsTkKWCGDG4hYvjiV9x4PL4h/R
         x6CA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755511420; x=1756116220;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=42zY278QVcPb+qNkr0GGutF0LGSMm4/8s0SWBnkcqew=;
        b=QOrLrGJ8u6IzSJm+RC9/5pK2nyIacRsq5iFhFjpJDMoHKMilKqDo1wGrd3tJi3cNfn
         OGD/JoY6x/HJw2/7QoU3XtXD0iN1mRAr3jzuhEl41spScGLWGnLLj9hajBM4p7aoE2Pb
         FfRrEY8EAQP0hjeqq0vtNk4ESqME27GXTIwiNUwSI3KDJpysDz7apE6aTZjRU1FDcfgN
         Oy5GwFOow8X4sKkZlpO4nwkV8nT7sEBJtsVR2m5uuYf7HEnYElwdLpZ4+++7kgOfLtm1
         Gnu46rjBqXWYUFLXLz+GEY+hJV5afjj0MKbMeQwqS/AZpv82uFexCAWcwRclOynENEXe
         HBaw==
X-Forwarded-Encrypted: i=1; AJvYcCXXiEidC37BmwZToK4HzQvPqyNX6Dp1LTf32GcPVRcdYgIOwY2YGXIeKgKHYA8Tkcvk0zRrwiS60aw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwLEanRdV1rZ4R4+7a6Bmlq41acJrh4WwObGnGZkRz8x/m/bxNG
	OQuL8C7ataQ4+N/en2Rji1H1zMETO0fwehjm3iPFLV/PDuAf1oWi5W6z+NNlpKGeHDbkCzLcMrX
	lKBs=
X-Gm-Gg: ASbGncuN6AOtoEh8jeAUxs0EA/EVkqXcBz4CCsnUdq5+f5N0jeIFls9PPSPgW8/jmD/
	j6dQxUGq0Z01viT3mTQFVufhLTJF7XfFctYOg/YS+OoX7cu2B9N165LLKBl7yMJUgTCy60L4iOm
	+e8zOgnevNejovwfEdCP2EeRynmQOzQokawXf3OGyrLdVGF+r2iJBlHze8xF5NCMmbTOb9eEFw7
	+cy9UaRSkLEz7nwUBGulr5MvsiNit1hH6IPWd6QXF87valYn9ZgaTjLCwYfbUwfEaJ7fIrVI2fo
	dsmmQuin/ehhjMQKPrcQWazYQfSFCyQ2vwt/dFJQB+72bF5an2lPnXOvM37M/GUkIZU0PWYAWbK
	w6voh6r1ouHqS+RNWxnGZcuSXB7waBqwDGZi8KJwHGTRAiMbbs1LwxbZ8urt1wSclYG3lR3fEZv
	MPDr5rs4w=
X-Google-Smtp-Source: AGHT+IE0UAeJHrJEYqTCYeBkgf+obnA0Z8ORTQjJnd9Kj0/GxEyAssW1+4la8N8DK3OLmiKcIJ+Emg==
X-Received: by 2002:a05:6402:2809:b0:618:6c87:c5f6 with SMTP id 4fb4d7f45d1cf-619bf059ee7mr6822252a12.15.1755511419813;
        Mon, 18 Aug 2025 03:03:39 -0700 (PDT)
Message-ID: <d1635022-c386-4665-be07-e66afc8f3330@suse.com>
Date: Mon, 18 Aug 2025 12:03:39 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 21/22] x86/traps: Introduce FRED entrypoints
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-22-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: <20250808202314.1045968-22-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 08.08.2025 22:23, Andrew Cooper wrote:
> Under FRED, there's one entrypoint from Ring 3, and one from Ring 0.
> 
> FRED gives us a good stack (even for SYSCALL/SYSENTER), and a unified event
> frame on the stack, meaing that all software needs to do is spill the GPRs
> with a line of PUSHes.  Introduce PUSH_AND_CLEAR_GPRS and POP_GPRS for this
> purpose.
> 
> Introduce entry_FRED_R0() which to a first appoximation is complete for all
> event handling within Xen.
> 
> entry_FRED_R0() needs deriving from entry_FRED_R3(), so introduce a basic
> handler.  There is more work required to make the return-to-guest path work
> under FRED, so leave a BUG clearly in place.
> 
> Also introduce entry_from_{xen,pv}() to be the C level handlers.  By simply
> copying regs->fred_ss.vector into regs->entry_vector, we can reuse all the
> existing fault handlers.
> 
> Extend fatal_trap() to render the event type, including by name, when FRED is
> active.  This is slightly complicated, because X86_ET_OTHER must not use
> vector_name() or SYSCALL and SYSENTER get rendered as #BP and #DB.  Also,
> {read,write}_gs_shadow() needs modifying to avoid the SWAPGS instruction,
> which is disallowed in FRED mode.
> 
> This is sufficient to handle all interrupts and exceptions encountered during
> development, including plenty of Double Faults.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
> 
> SIMICS hasn't been updated to the FRED v9, and still wants ENDBR instructions
> at the entrypoints.
> ---
>  xen/arch/x86/include/asm/asm_defns.h |  65 ++++++++++++
>  xen/arch/x86/include/asm/msr.h       |   8 +-
>  xen/arch/x86/traps.c                 | 153 ++++++++++++++++++++++++++-
>  xen/arch/x86/x86_64/Makefile         |   1 +
>  xen/arch/x86/x86_64/entry-fred.S     |  35 ++++++
>  5 files changed, 256 insertions(+), 6 deletions(-)
>  create mode 100644 xen/arch/x86/x86_64/entry-fred.S
> 
> diff --git a/xen/arch/x86/include/asm/asm_defns.h b/xen/arch/x86/include/asm/asm_defns.h
> index 72a0082d319d..a81a4043d0f1 100644
> --- a/xen/arch/x86/include/asm/asm_defns.h
> +++ b/xen/arch/x86/include/asm/asm_defns.h
> @@ -315,6 +315,71 @@ static always_inline void stac(void)
>          subq  $-(UREGS_error_code-UREGS_r15+\adj), %rsp
>  .endm
>  
> +/*
> + * Push and clear GPRs
> + */
> +.macro PUSH_AND_CLEAR_GPRS
> +        push  %rdi
> +        xor   %edi, %edi
> +        push  %rsi
> +        xor   %esi, %esi
> +        push  %rdx
> +        xor   %edx, %edx
> +        push  %rcx
> +        xor   %ecx, %ecx
> +        push  %rax
> +        xor   %eax, %eax
> +        push  %r8
> +        xor   %r8d, %r8d
> +        push  %r9
> +        xor   %r9d, %r9d
> +        push  %r10
> +        xor   %r10d, %r10d
> +        push  %r11
> +        xor   %r11d, %r11d
> +        push  %rbx
> +        xor   %ebx, %ebx
> +        push  %rbp
> +#ifdef CONFIG_FRAME_POINTER
> +/* Indicate special exception stack frame by inverting the frame pointer. */
> +        mov   %rsp, %rbp
> +        notq  %rbp
> +#else
> +        xor   %ebp, %ebp
> +#endif
> +        push  %r12
> +        xor   %r12d, %r12d
> +        push  %r13
> +        xor   %r13d, %r13d
> +        push  %r14
> +        xor   %r14d, %r14d
> +        push  %r15
> +        xor   %r15d, %r15d
> +.endm
> +
> +/*
> + * POP GPRs from a UREGS_* frame on the stack.  Does not modify flags.
> + *
> + * @rax: Alternative destination for the %rax value on the stack.
> + */
> +.macro POP_GPRS rax=%rax
> +        pop   %r15
> +        pop   %r14
> +        pop   %r13
> +        pop   %r12
> +        pop   %rbp
> +        pop   %rbx
> +        pop   %r11
> +        pop   %r10
> +        pop   %r9
> +        pop   %r8
> +        pop   \rax
> +        pop   %rcx
> +        pop   %rdx
> +        pop   %rsi
> +        pop   %rdi
> +.endm
> +
>  #ifdef CONFIG_PV32
>  #define CR4_PV32_RESTORE                               \
>      ALTERNATIVE_2 "",                                  \
> diff --git a/xen/arch/x86/include/asm/msr.h b/xen/arch/x86/include/asm/msr.h
> index b6b85b04c3fd..01f510315ffe 100644
> --- a/xen/arch/x86/include/asm/msr.h
> +++ b/xen/arch/x86/include/asm/msr.h
> @@ -202,9 +202,9 @@ static inline unsigned long read_gs_base(void)
>  
>  static inline unsigned long read_gs_shadow(void)
>  {
> -    unsigned long base;
> +    unsigned long base, cr4 = read_cr4();
>  
> -    if ( read_cr4() & X86_CR4_FSGSBASE )
> +    if ( !(cr4 & X86_CR4_FRED) && (cr4 & X86_CR4_FSGSBASE) )
>      {
>          asm volatile ( "swapgs" );
>          base = __rdgsbase();
> @@ -234,7 +234,9 @@ static inline void write_gs_base(unsigned long base)
>  
>  static inline void write_gs_shadow(unsigned long base)
>  {
> -    if ( read_cr4() & X86_CR4_FSGSBASE )
> +    unsigned long cr4 = read_cr4();
> +
> +    if ( !(cr4 & X86_CR4_FRED) && (cr4 & X86_CR4_FSGSBASE) )
>      {
>          asm volatile ( "swapgs\n\t"
>                         "wrgsbase %0\n\t"
> diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
> index 270b93ed623e..e67a428e4362 100644
> --- a/xen/arch/x86/traps.c
> +++ b/xen/arch/x86/traps.c
> @@ -1013,6 +1013,32 @@ void show_execution_state_nmi(const cpumask_t *mask, bool show_all)
>          printk("Non-responding CPUs: {%*pbl}\n", CPUMASK_PR(&show_state_mask));
>  }
>  
> +static const char *x86_et_name(unsigned int type)
> +{
> +    static const char *const names[] = {
> +        [X86_ET_EXT_INTR]    = "EXT_INTR",
> +        [X86_ET_NMI]         = "NMI",
> +        [X86_ET_HW_EXC]      = "HW_EXC",
> +        [X86_ET_SW_INT]      = "SW_INT",
> +        [X86_ET_PRIV_SW_EXC] = "PRIV_SW_EXEC",
> +        [X86_ET_SW_EXC]      = "SW_EXEC",
> +        [X86_ET_OTHER]       = "OTHER",
> +    };
> +
> +    return (type < ARRAY_SIZE(names) && names[type]) ? names[type] : "???";
> +}
> +
> +static const char *x86_et_other_name(unsigned int vec)
> +{
> +    static const char *const names[] = {
> +        [0] = "MTF",
> +        [1] = "SYSCALL",
> +        [2] = "SYSENTER",
> +    };
> +
> +    return (vec < ARRAY_SIZE(names) && names[vec][0]) ? names[vec] : "???";
> +}
> +
>  const char *vector_name(unsigned int vec)
>  {
>      static const char names[][4] = {
> @@ -1091,9 +1117,42 @@ void fatal_trap(const struct cpu_user_regs *regs, bool show_remote)
>          }
>      }
>  
> -    panic("FATAL TRAP: vec %u, %s[%04x]%s\n",
> -          trapnr, vector_name(trapnr), regs->error_code,
> -          (regs->eflags & X86_EFLAGS_IF) ? "" : " IN INTERRUPT CONTEXT");
> +    if ( read_cr4() & X86_CR4_FRED )
> +    {
> +        bool render_ec = false;
> +        const char *vec_name = NULL;
> +
> +        switch ( regs->fred_ss.type )
> +        {
> +        case X86_ET_HW_EXC:
> +        case X86_ET_SW_INT:
> +        case X86_ET_PRIV_SW_EXC:
> +        case X86_ET_SW_EXC:
> +            render_ec = true;
> +            vec_name = vector_name(regs->fred_ss.vector);
> +            break;
> +
> +        case X86_ET_OTHER:
> +            vec_name = x86_et_other_name(regs->fred_ss.vector);
> +            break;
> +        }
> +
> +        if ( render_ec )
> +            panic("Fatal TRAP: type %u, %s, vec %u, %s[%04x]%s\n",
> +                  regs->fred_ss.type, x86_et_name(regs->fred_ss.type),
> +                  regs->fred_ss.vector, vec_name ?: "",
> +                  regs->error_code,
> +                  (regs->eflags & X86_EFLAGS_IF) ? "" : " IN INTERRUPT CONTEXT");
> +        else
> +            panic("Fatal TRAP: type %u, %s, vec %u, %s%s\n",
> +                  regs->fred_ss.type, x86_et_name(regs->fred_ss.type),
> +                  regs->fred_ss.vector, vec_name ?: "",
> +                  (regs->eflags & X86_EFLAGS_IF) ? "" : " IN INTERRUPT CONTEXT");
> +    }
> +    else
> +        panic("FATAL TRAP: vec %u, %s[%04x]%s\n",
> +              trapnr, vector_name(trapnr), regs->error_code,
> +              (regs->eflags & X86_EFLAGS_IF) ? "" : " IN INTERRUPT CONTEXT");
>  }
>  
>  void asmlinkage noreturn do_unhandled_trap(struct cpu_user_regs *regs)
> @@ -2181,6 +2240,94 @@ void asmlinkage check_ist_exit(const struct cpu_user_regs *regs, bool ist_exit)
>  }
>  #endif
>  
> +void asmlinkage entry_from_pv(struct cpu_user_regs *regs)
> +{
> +    /* Copy fred_ss.vector into entry_vector as IDT delivery would have done. */
> +    regs->entry_vector = regs->fred_ss.vector;
> +
> +    switch ( regs->fred_ss.type )
> +    {
> +    case X86_ET_EXT_INTR:
> +        do_IRQ(regs);
> +        break;
> +
> +    case X86_ET_NMI:
> +        do_nmi(regs);
> +        break;
> +
> +    case X86_ET_HW_EXC:
> +    case X86_ET_SW_INT:
> +    case X86_ET_PRIV_SW_EXC:
> +    case X86_ET_SW_EXC:
> +        goto fatal;
> +
> +    default:
> +        goto fatal;
> +    }
> +
> +    return;
> +
> + fatal:
> +    fatal_trap(regs, false);
> +}

Noticed only now: Shouldn't this be surrounded with #ifdef CONFIG_PV (with
knock-on effects elsewhere)?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 10:10:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 10:10:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085866.1444133 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unwoa-0002pB-Bu; Mon, 18 Aug 2025 10:10:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085866.1444133; Mon, 18 Aug 2025 10:10: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 1unwoa-0002p4-8p; Mon, 18 Aug 2025 10:10:08 +0000
Received: by outflank-mailman (input) for mailman id 1085866;
 Mon, 18 Aug 2025 10:10:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=GLF1=26=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1unwoY-0002jN-Bj
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 10:10:06 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8085e428-7c1b-11f0-b898-0df219b8e170;
 Mon, 18 Aug 2025 12:10:01 +0200 (CEST)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-45a1b05fe23so23027135e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 03:10:01 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45a223206c7sm126725655e9.16.2025.08.18.03.09.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Aug 2025 03:10: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>
X-Inumbo-ID: 8085e428-7c1b-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755511800; x=1756116600; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ydxr98DfLf1NMz2ktFXD5VRVZNzuMMeQc8N7CP6g5dU=;
        b=aGAKjtNLi/kAP9Df7m5B5p46y1fHSGCH8TQHRB7haBwO5YiMVKTHHj5/WqmgGCgNoZ
         yuAYU21kWkpaY2675MMW/kwo3H3rmrJ6VUzVnhNwe7rEwlgFRWXhlvKKaCIG8U1RLJNx
         JgzqiWAQJz5hZgBnfv1vjPK/BYYqM6t1lPDXE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755511800; x=1756116600;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ydxr98DfLf1NMz2ktFXD5VRVZNzuMMeQc8N7CP6g5dU=;
        b=WGQE+LsOM5VAq+/+T8XW5k4ArN5mdiewrUZc7I+TMVkbbtK1tERZe+nh9voYV2sDnA
         iAaTryrdBUevp3VEeE66MvYlV6zJObtNluR9IQ4JxAFQgV3S8QyOLjWXI2Aixt51gTy7
         +mY2WyLvBHL21vVwdKnPggSgEKJWWDot8ZNMv94HTCSdeyrwWHi9UpuAAJUMmCTDrv7w
         U2BN9f0icax7PeJwvcaErOu07QWLmRDB5uQn1YDhai9+VbXUWXCcU9igqgQHoJlXsoAE
         ypC/7eOItElpVolpk2ci6ll20Tr+YFmwwMJ7s3cnEx9nAefXiDtI1S4hznc2Y7FDriZf
         BONg==
X-Forwarded-Encrypted: i=1; AJvYcCUH2KpfApSbMFAsq6kI2BCvomtwMKmKfYIeC+dz4u4wYprn5esWT/ye0myrTQVib+uKxdBip5epGOQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yygl4az7f0C4XYEhsDxcC+6VxOIh6xKuWG5tPhsqjSBZ3QdF9pT
	6aExlfE+hA6lTSS1mmk5tyDE+DTdrn/GJ54AYFNZX8pqr8qwU6Fxjy0JpCUDsp1krd0=
X-Gm-Gg: ASbGncs2UIbI+QSJ+j6igSwDyw2Pqtcej09K8YkWfbEogCgL4XK8vnQrhQ6O07fuuiA
	tuY1kjG2YbjzQffClsgeIGaAudUqM5Uq1hMriJ2Y8614cUJGKgx+7sh5liM635MVFGCVbDIw667
	ICmg7HPPimv3Dsizw3aiF1Y7ivJ59O0HygoXsa59SaOSNDyiS5BGmIjZHwrn5VZROFLjNRxm6VZ
	Uv8vDsTAMiF1KBeE5UZFgWqloY6JsW6GHhVuLURjmxxTi61P0uE0wtay07BkatdVGT0M/cnKVm6
	m8DNoeNCY0vNp/9B6cWFQ9VZg85klZGDkOq4bMmghLsd2xFaRK76Lpf/ghQjTTKh3B32kmEYYa0
	vHmb2Eh8Wh1D+VmD/axnWc4LeTRh/oM+U87Ib+i46iFive7soEDc2C99+cUDIENe718GraUjH7c
	313JM=
X-Google-Smtp-Source: AGHT+IFQO44CWLdFSq3sG2kl/inSkgevpGtr90RZgIoctuXJVxMWpfxQMiNe8cpq9yovVkCgmF8zsQ==
X-Received: by 2002:a05:600c:4451:b0:456:1a87:a6cb with SMTP id 5b1f17b1804b1-45a218590c8mr101219625e9.19.1755511800526;
        Mon, 18 Aug 2025 03:10:00 -0700 (PDT)
Message-ID: <0047fe59-b95e-44c5-b26e-dd37b4c2bc9b@citrix.com>
Date: Mon, 18 Aug 2025 11:09:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 21/22] x86/traps: Introduce FRED entrypoints
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-22-andrew.cooper3@citrix.com>
 <d1635022-c386-4665-be07-e66afc8f3330@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: <d1635022-c386-4665-be07-e66afc8f3330@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18/08/2025 11:03 am, Jan Beulich wrote:
> On 08.08.2025 22:23, Andrew Cooper wrote:
>> diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
>> index 270b93ed623e..e67a428e4362 100644
>> --- a/xen/arch/x86/traps.c
>> +++ b/xen/arch/x86/traps.c
>> @@ -2181,6 +2240,94 @@ void asmlinkage check_ist_exit(const struct cpu_user_regs *regs, bool ist_exit)
>>  }
>>  #endif
>>  
>> +void asmlinkage entry_from_pv(struct cpu_user_regs *regs)
>> +{
>> +    /* Copy fred_ss.vector into entry_vector as IDT delivery would have done. */
>> +    regs->entry_vector = regs->fred_ss.vector;
>> +
>> +    switch ( regs->fred_ss.type )
>> +    {
>> +    case X86_ET_EXT_INTR:
>> +        do_IRQ(regs);
>> +        break;
>> +
>> +    case X86_ET_NMI:
>> +        do_nmi(regs);
>> +        break;
>> +
>> +    case X86_ET_HW_EXC:
>> +    case X86_ET_SW_INT:
>> +    case X86_ET_PRIV_SW_EXC:
>> +    case X86_ET_SW_EXC:
>> +        goto fatal;
>> +
>> +    default:
>> +        goto fatal;
>> +    }
>> +
>> +    return;
>> +
>> + fatal:
>> +    fatal_trap(regs, false);
>> +}
> Noticed only now: Shouldn't this be surrounded with #ifdef CONFIG_PV (with
> knock-on effects elsewhere)?

Randconfig had a fun time with CONFIG_PV.

I've got an early "if ( IS_ENABLED(CONFIG_PV) ) goto fatal;" but there's
a bit of extra complexity in the ASM.Â  entry_FRED_R3() needs to exist
even outside of CONFIG_PV, despite things like test_all_events being
conditional.

Also, this is changing a bit as part of getting PV support working.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 10:15:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 10:15:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085876.1444143 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unwtX-0003rw-TY; Mon, 18 Aug 2025 10:15:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085876.1444143; Mon, 18 Aug 2025 10:15: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 1unwtX-0003rp-Qd; Mon, 18 Aug 2025 10:15:15 +0000
Received: by outflank-mailman (input) for mailman id 1085876;
 Mon, 18 Aug 2025 10:15:15 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=q+DX=26=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1unwtX-0003rj-Gn
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 10:15:15 +0000
Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com
 [2a00:1450:4864:20::52f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3a164860-7c1c-11f0-a32a-13f23c93f187;
 Mon, 18 Aug 2025 12:15:12 +0200 (CEST)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-6188b5ad681so5549097a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 03:15: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
 4fb4d7f45d1cf-618b01ae59esm6834537a12.28.2025.08.18.03.15.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Aug 2025 03:15: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>
X-Inumbo-ID: 3a164860-7c1c-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755512112; x=1756116912; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=VKQj/6TgXb7or6K2qBxCrUpoOiR7kEXd+6VoPBUfrLg=;
        b=RKJLpGLGNQJ/dKEw5LJZOepge27PMxblL0s4mysqfZDY76mNW8CqIyv9kUWchDSgK0
         bN5XoiCxEyLJhlY3mcYPDB2HIhm41WL1hL9tNmhPG6dT0tSoyu6XifQrptLtwx4RoRAn
         6+VhvB6zVfpYcoo7RGQPCHsmBBRjQGUFMRFtwBIzOD0+QE+Ax7i3hCBnl09RhRK7v10H
         2PUVu5alc835fmLwDvtioTFxSrIe2Bb6QgHtt7dieSAKcR+F5DYdav/9EOMn6wMrskif
         i7fCg53TyiJpd4rZXn5/IeKf6c/nqBBhofzJKmyN2gM+W1lC8b+iI9wFIyHcBl1omCY5
         XZmQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755512112; x=1756116912;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=VKQj/6TgXb7or6K2qBxCrUpoOiR7kEXd+6VoPBUfrLg=;
        b=O2Dj5M7E8sF2xPW3Z/MIyCmYacHbuvD7Hpi2iXIP7pwVhsuGT9pM3LHDvhwPxpN2xR
         gYyIQ8phE5SEOQQpf+h7rTqFse0/su6yJ57Rf4iWiYGDtap1SyAklgmAtS8b+Hs96RVz
         tCVyfAPM84kQUrCRhwVQQZJjC9/qt+piCybDAk5N0jsYgGr/ulTfR31+8t9hvs1NcIcc
         KZsFknSQlKsvopK2KuN2DwZs37oN8ZA3VrtOMGr4YxMCfKf/YgQNSNfgZNPC4T+qkEN+
         3rsBU9/PSBLqLvT74JWUCnQrwWO3MJ5QvxvEZCHn9hq5TpuxYQuICYfTR83FMd0/5BNB
         WUTg==
X-Forwarded-Encrypted: i=1; AJvYcCUJjcDqWl6BkQ5oxm1w2Ghjex/F1ANAyIxkz1uWOvqNFpFzdBYvWW6fkoFJPqMXyfolQnwxe4rYdRA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxI8kb8JgfiSOT1cxGiIddjIaYwT1yrww87N1aEPHNquU0qhhZ7
	/izoM3LemNHJtUSRFkqMzO8h05Xa3ljquZFTiwBeXttJBo+sNjtzJ4dg0kCzCL5IHg==
X-Gm-Gg: ASbGnctMhD0/shoewb4rmMRPvvSGJ/4eEoPSakcU+mwnH9BU8GhkTrNwW/JdVANQIxM
	PY0Y+zpRjdpBWEuunOdbs4S7c4O2/DEZZdYIbcOVCbC+wz+hPVRJPPiPyLt7J1fiRrPDbCeyFrR
	FpUAD6d8SUV8AIjACuOrZNEvJxKAGbPE1SbXELXH0zpLi2dOz4hUFrxnLuPZh1Aq+9H7ib5drhf
	ODqtRiL+bNGfOULzFtMGCtLZdu/C3nkdD4v1TThVS6zZXsY/ms/DlwCaTghBSXzWbcdc8MtAIu5
	G1yvump4bt5hzpfG1JMU++cHO7eBje06Mt9YLnpGaV2Caf/6nkqF/2ynxwD28ziJQ73Bb7BMpLD
	0WBrsu5fbHpQA8GRMQ5UAEjg8qwmHp3eErdwC7yMO9j9iTOIuQ2fxUhC+yqnCjy5GkgjtKHmLBF
	JPW8GaAyP6X1eO4GiENg==
X-Google-Smtp-Source: AGHT+IF/7TPyYT9hXHqYx3LHSLvhY7h19SzI5N7vFKnPB3A4XDN3NU9+6sZyBZ5zPbZ9eGrn0d7WSg==
X-Received: by 2002:a05:6402:274b:b0:618:bc4:5777 with SMTP id 4fb4d7f45d1cf-619b707c46emr6799188a12.9.1755512111911;
        Mon, 18 Aug 2025 03:15:11 -0700 (PDT)
Message-ID: <5bf9b184-70fb-4698-a01e-e8cbcb05935f@suse.com>
Date: Mon, 18 Aug 2025 12:15:10 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for
 guests
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: Mykola Kvach <mykola_kvach@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1755506449.git.mykola_kvach@epam.com>
 <205b2b354ff1d34d0e9ec4777ca3c94492f6d9d1.1755506449.git.mykola_kvach@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <205b2b354ff1d34d0e9ec4777ca3c94492f6d9d1.1755506449.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.08.2025 10:49, Mykola Kvach wrote:
> --- a/xen/arch/arm/domain.c
> +++ b/xen/arch/arm/domain.c
> @@ -90,6 +90,16 @@ static void ctxt_switch_from(struct vcpu *p)
>      if ( is_idle_vcpu(p) )
>          return;
>  
> +    /* Arch timer */
> +    p->arch.cntkctl = READ_SYSREG(CNTKCTL_EL1);
> +    virt_timer_save(p);
> +
> +    /* VGIC */
> +    gic_save_state(p);
> +
> +    if ( test_bit(_VPF_suspended, &p->pause_flags) )
> +        return;

As I had to look at the Arm side uses of the new bit to at least try to
follow the comment further down, I came across this. And now I wonder:
Why would one of the pause flags need special casing here?

> @@ -1360,13 +1357,33 @@ void domain_resume(struct domain *d)
>  
>      for_each_vcpu ( d, v )
>      {
> +        /*
> +         * No need to conditionally clear _VPF_suspended here:
> +         * - This bit is only set on Arm64, and only after a successful suspend.
> +         * - domain_resume_nopause() may also be called from paths other than
> +         *   the suspend/resume flow, such as "soft-reset" actions (e.g.,
> +         *   on_poweroff), as part of the Xenstore control/shutdown protocol.
> +         *   These require guest acknowledgement to complete the operation.
> +         * So clearing the bit unconditionally is safe.
> +         */
> +        clear_bit(_VPF_suspended, &v->pause_flags);

Seeing that you set this bit for a single vCPU in a domain only, I wonder why
it needs to be a per-vCPU flag.

Apart from this, with the comment I still fear I wouldn't feel capable of
ack-ing this, as there's too much Arm-only interaction in here. It's not even
clear whether this could easily be re-used by another port.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 10:16:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 10:16:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085887.1444153 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unwuq-0004Op-7X; Mon, 18 Aug 2025 10:16:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085887.1444153; Mon, 18 Aug 2025 10:16: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 1unwuq-0004Oi-4B; Mon, 18 Aug 2025 10:16:36 +0000
Received: by outflank-mailman (input) for mailman id 1085887;
 Mon, 18 Aug 2025 10:16:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=czvt=26=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1unwuo-0004OR-Ii
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 10:16:34 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 67e4cb37-7c1c-11f0-b898-0df219b8e170;
 Mon, 18 Aug 2025 12:16:29 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by PAVPR03MB9044.eurprd03.prod.outlook.com (2603:10a6:102:324::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.17; Mon, 18 Aug
 2025 10:16:25 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9031.023; Mon, 18 Aug 2025
 10:16: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>
X-Inumbo-ID: 67e4cb37-7c1c-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=DD+O4wUNIKJzeLS4xH49y76plv/9yhqnV27lcT9AB6vvxl12btz4flDhFv+M+ijedWQVGChnCGE3GaEG0xf8Tqow3XzIyEmPEds5T5tZ49tD44ZLBCgFeI89vO9bsE3ExjfCl/gDjdz8YPHmHJSV65LZPJ92iVcOKpsuDIp7hdfxqhXWaqKqmEH1e1lqgukezHoTkbzRoobTLwfDGtfQpQH4xWMqfmffc5zZv+JSPz9a26grSuFwmY7xRANgx07UVYRbs1rTWHW+0ngydmL5sHCwf6MvXTC9tPLirc8Lf0jAoY4oNegla16V0bHoG6PXrEFfiQfM8mCBB7zzXF/pJg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Ap9GNoXnMIJwuupLRKCKvuu9AyR4fxLS0C1yG+MuPwM=;
 b=ThRS7T51NmWtUpMbWLq9XmhbmQMdbhvqmx7ts+vewAUjaaXHkFgtCHj5fkxFB7EsMj1egkoavgVtZW8aRyZGDSvpCCmiYTlSYRHvNGyywkLZAZFOPT1W/PRgn6rFqhPAoZpsDQj0qiLkZOp6sE8d8uXR6HhHmPRk3DWcKoyVUxh2v1KVNNzfSYdP0qy/rNG1OgFqFENOz68r+QivxDS6ogKrMXLV6FHlhvORwMHZHTz1ltdfLeXlQP3OAXeSe/pgXrzuxJE/d2uxjPBYHW8MKL+ClV6fL2IUAdoLy3y6kp88HPkQ92u5oxZ3d7k0vnIeIb4xyK4MDqH9O3vcBW1saw==
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=Ap9GNoXnMIJwuupLRKCKvuu9AyR4fxLS0C1yG+MuPwM=;
 b=lTuMIn1jaPpUu9E+CoR7zDsP9dr7ddk6IyaT9hem3HaLmAgYNovH+N5O7nSN6cAJ6aegPm/rLHW9bxa2hHWbZAelVhvfNllw4yJ4kuQZiha668HjEc63irshb5ACDHhdW5KPRmNDjOOoWiXRC7XO6nzv9ca4Z+mlZhrivkhuz7fXLiRwmBc8KOUtII8QSmcsENFliS/xKV9rXhKp5/Hn6e/6bYH2oeiCofDaLhXMTKM1jmS0Y0tkjItjaofVrNhCluRCOYg94hiMyms5NkDqf6lpi12j4sV7/bHcCGV7GVCyJaY1OgfSGEixSfA2uCwN9QI8WAApBsDfy17C4UpGuA==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Nicola Vetrini <nicola.vetrini@bugseng.com>, Jan Beulich
	<jbeulich@suse.com>
CC: Doug Goldstein <cardoe@cardoe.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Andrew Cooper <andrew.cooper3@citrix.com>, Anthony
 PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [RFC PATCH] misra: allow conversion from unsigned long to
 function pointer
Thread-Topic: [RFC PATCH] misra: allow conversion from unsigned long to
 function pointer
Thread-Index: AQHcDH/2fJv669AP80eUn9D9WGE5wrRh1CUAgADLEICABZoWgA==
Date: Mon, 18 Aug 2025 10:16:24 +0000
Message-ID: <c9ac9466-5f22-450b-9def-f79d2d4a6233@epam.com>
References:
 <8cbc9e6d881661d0d7a1055cbcef5a65e20522be.1755109168.git.dmytro_prokopchuk1@epam.com>
 <06120b08-7ce8-4d03-b3cd-cbb22547eca3@suse.com>
 <6990512dab007bfa51e4281dda3cc2f0@bugseng.com>
In-Reply-To: <6990512dab007bfa51e4281dda3cc2f0@bugseng.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV2PR03MB9572:EE_|PAVPR03MB9044:EE_
x-ms-office365-filtering-correlation-id: d895dc1f-3417-4d40-d5d8-08ddde40495f
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|366016|1800799024|7416014|42112799006|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?OFVqY2o2RndpVUw0RU51b3owU1NibGpaNHNmdERCa2RweUEzWmNjdS9EQkJ3?=
 =?utf-8?B?TEpYbVY1dGtLdlphZjRvYXNyWW1IKytkaytHQlQrVFIrVjdmRFUvdXJtTGIw?=
 =?utf-8?B?SURWUkREWU9CWEdSUXRvNk5wdGpoRUhoWHRRekwwZCt0dnB5RlZmenlIRnFT?=
 =?utf-8?B?U0ExNGtNSFNFSmliMWZ6NkV5eGpVd0h2SDBBcFJRYjIwc0ZoenJnMmthNVZj?=
 =?utf-8?B?UGZSd3UvOWNCZ1ZZNDlLMnFuYkNwYzBmUkZKbW1vTjNQdzVVRGpJZW1nUzJj?=
 =?utf-8?B?bDNIL083dVBrcjZhdGJPNXZ2UHZyVGNuckxiWCtYaVprUFY4Z1p4NDFwejZz?=
 =?utf-8?B?S0VnbkRZcVA1MnF6Rzk0alNXSHVad0tHWUlLTjFoYWRBLzZvMlE1aEI3blZi?=
 =?utf-8?B?dytlZzVOT3czK25DYVc5bndJT2hiNmVhWktqTkdpLytHeHp3bGptQ0U2YW5V?=
 =?utf-8?B?Sy8vSDJ2U2Z0b2RsRzkrOEh2MWZUV3BvbmpORGNVaUdnTmE1TFMrT0svaWVm?=
 =?utf-8?B?NHpmSnJWWlRDdzlFNUNsd3prU1BMcWg4MHhkMU5wc3AwZ2E5b0xOQ0lHQ1p6?=
 =?utf-8?B?dmZVSVdIaWkrSEYxdXczeEVxN3MweGVGYi9IeXJkTE9zRldNdmZ1cklBeHdL?=
 =?utf-8?B?eGViOTNhbVZvbmZmOWZYY1NydHNDMGZZYlBwd2xnUjZlL2I1WEVLN0F6OWdY?=
 =?utf-8?B?d0hGeFYxc09EdkZiSWRCQ3JjOGE5RC9INnNjMjdIdGdTQjZhMHhGK1VTSjZE?=
 =?utf-8?B?SGNPb29nUmNUSUFTT28rQ3JSYlk1Y1ZuUXdMQ21FWWhQc2FaUVBpem5JZkl1?=
 =?utf-8?B?RXZSUnVUbm14Y0JERURoWC8yaCs3dGJLQmJNV0RUVWdVUGRieHN5R09kRStl?=
 =?utf-8?B?MDRjVElVWXl6U0JJS29DQ1hDd1hkck84Mm82ZkVZNjRMV0Znak1NQjlVVmN5?=
 =?utf-8?B?Q0JuVlZ2a2dUbVRvTGk0NUxFMDFPQTVmUWRrbmxnbVdNUVJhU3BCS2V2V3pY?=
 =?utf-8?B?a1FaNWQwOTJZMG9XNmVDZlVTR2ljM2FpSXh6bVQxUVBUbGNCY2RtSW5EV3pF?=
 =?utf-8?B?NHZZVlFQR2tqMDMxVlBYZWJwcTU0cWpjRXo4bVB3SkxkUm1jQUF0Nkd6cVZV?=
 =?utf-8?B?SlZHWi9NSGJFSlE4OGVsWEFTOHlERFJKM2JHa1ZBYi9RaExrKzhMbnhtSVRD?=
 =?utf-8?B?cDY5ZmJSS25GU3hsQ0lScEdiS0xxUG5ZVzIvd283WlZ1cFRmV3FoTGIzbHRj?=
 =?utf-8?B?V1BPcHpSNjZzTDY5aEkvaEFONDN5OEFER1U5WWFLY0tlbi9WVzRmUGVEVndY?=
 =?utf-8?B?RTUvbTAzWk5UNmhBeTZxenB5TEUrOEk5QXBjSklOREdvVWFtOEJjRGpWWGdD?=
 =?utf-8?B?ZjJoMWtmL1hxV2wxTytZMWVNSGxmTkQ3YTMrMUxLOUluTUVMOVBQRnFJYnY2?=
 =?utf-8?B?VGljNWNlVjJ0WjZNTTRKaUF3R1pzTjhTbG9odXJNTWNQbTdXQW05S0JJdkZh?=
 =?utf-8?B?SHlaa0RYaXlBTWg3MmJBZCtJcW1kZlB5RHlJejZIc254a3I5djUyaHg1a2Ft?=
 =?utf-8?B?aEZXN3VIZEg5dUNmQmpQYW8wTGY3SnNicFdMUlFSVm9MQ1FQTGlkTVJvV2ti?=
 =?utf-8?B?b2FnVUoxeUNJeHhQLzczZEZJRzZ4Z2xjTGwyLzROd2ZEc0ZaRTJXRXhwUjlB?=
 =?utf-8?B?THVXdUY5OWNZS2NzVkZLWEtCbmN6UUNVTUpUWUdwY21BMTk1NzJremFVZTVR?=
 =?utf-8?B?Zmc4Wk9HdHhzbHhhalNZUHNaMlRiaW9nVmMvZlBKZllTdWVGdjZlQmdFdlYy?=
 =?utf-8?B?OWNtQUo0djhPS0ZwMjlkT1B6TndOaVJNTWJHS20vVTZtM2lZQVVYci9FL043?=
 =?utf-8?B?bXVuZ3BJc1pudHBFTXdENGhSN0NiUEx0dE5BTEY1ZkVCQXBaUTZNdVdreFNo?=
 =?utf-8?B?Nk5CY1dWNElnMHFtbWMvaWdWVmprYkRuODVCU2IwZFMzNVZxcXVuUS9PT1JM?=
 =?utf-8?B?allGVEVUNXFBPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7416014)(42112799006)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?bGhFNXZVOTdnZVVyOUJPSlE4N0Jld1J0QTdLSHBmdWJLR290VkdYalJUMEY0?=
 =?utf-8?B?bDRGM2hXR2J5RjVaK0tzY09PSVRkbkxJd2tJeUhqMis1NkJueEoya0xaNlgv?=
 =?utf-8?B?Q2tNVUtGMG45MTVSK3VjaDJQeUtoL1pERnhyZVpHNURlUmNBTVNMOVRBUWVt?=
 =?utf-8?B?T1NJcG01UE9reURtT1kzaWhOQWdNSFdZSG5lWDdlazF4ckkyNjlqUStUTEpE?=
 =?utf-8?B?SVhmaFFZSEMxQTU0bjFBNk5CMkFIZURZbytUWUhNT2IyU3Z5UHcwYkwvVmtJ?=
 =?utf-8?B?aDc5bjYyVWRodSt2em9US0tPNXEyRlk0NDNickdla3VOblZEbUxxM2RzNDZU?=
 =?utf-8?B?Mnpvc2dFZW52VWt3Mkh2U25iY2x1RlNjREtLOTBURC95Q2NoQ3EyM1M5ZG5N?=
 =?utf-8?B?MWg5ZGduYnR2QThwemdtUkQ4c3Y3T0FEdTJYc2x4Z2phaEtRZDlteWNEcW85?=
 =?utf-8?B?YUdpZjlTdjJjcGRZVm92SWlSSU01elJTbXhlcWRNbEF3WW04K2c3UDV2VzlD?=
 =?utf-8?B?Sks5QmlHaVlDR2NMbmlaUE9QVi9DUXhEL0FYYXFOMjVxNTg0dUlaaEFpVGFZ?=
 =?utf-8?B?ZkFOVUZBUSsySlpzaDZVWW93bjZQMUtxY0JNaGV1L2JrNEZsa0dsR3lENXFM?=
 =?utf-8?B?RHBFRnNBYTJ1aVJVZmNQNWlNa0p4ZTgrUEIrV1pLa3c3a1ZxYnJDSEJZRUVL?=
 =?utf-8?B?R0ZtSW5UYjZMQWZKSnJDUFErYlNiVHFOYVliUDhGQ28zdlpOaitLUmlUdGtn?=
 =?utf-8?B?enZxR0hrWUZKeWw1SGUxOTd6YWcwVHlGWVV6ckFEZE4xckpVVUtOTTRhTStF?=
 =?utf-8?B?M3o5N2dQaU1CYTdUK1ByRkhsc0hHSjl4T3pQTFdLMUtadFZVeXpuVGRoc2tR?=
 =?utf-8?B?KzNFMm9EZnFkaHNrT2pnc1NMcm43bnE4c3M2emZRVFEzTHljSy9NenJhVWJq?=
 =?utf-8?B?UzMvRWYwOFdyOWlreVEvTGtORDRLUmlwSnFTT0c1WEpORlQ3V2NJRTNUVVBs?=
 =?utf-8?B?eTBONkpXNWNCdVhQd0hBY053Q21nSkhSUk9XYng4ZGM3Y0o5ekpmeHRGdlBY?=
 =?utf-8?B?dCszamRMdmJKaGZkNHRlNUNYZVBSN0d1YXcyVnZyTFRFMUVLZDkra1huNktL?=
 =?utf-8?B?OHNHYnFPS1RvZ09xSkVWOFg5RUZ4OUczQUpZeWYxWHVaaW5saU81ME1kMTVu?=
 =?utf-8?B?WU1UNkU1eFJXRmN4T3BPSkUyT2dLK0lNSnNjSFpvZmRqMG1RSUE1ekZEUGw3?=
 =?utf-8?B?eUlvTnJZQytyS0VKeUdiNkt5bldtb1JMY0Z5Q1pTK09uYnRONHg2T3RPYjZ2?=
 =?utf-8?B?U2d0YmpOYWF6QlRZZEdFTmcyNlVWbjU2M2JGb1ZiS09QcXJ0cFlKTHd1MWpw?=
 =?utf-8?B?MEtpOXJKRHM0aEtvamFXcWZZWWVRVE9QNXYvbTA4N2VkYmFIajVtaEovRWht?=
 =?utf-8?B?ODhUL01uemt0REtEbnI4bHRZcXZYT0RycEdEVHVFQkJtNFIxeFR3NFh1TEw0?=
 =?utf-8?B?ck5YZzNQYmNCKzI5TG5EZFd2K2E1SlVmTE5lZHdsQTcrN1VtYzZaejNQYjNK?=
 =?utf-8?B?SFNOTEtIdUVTbFdYa20vT2Fnai91NmJGWEtSOW5PTG1OU0hCU3hJcWhOell2?=
 =?utf-8?B?akJpU1d5cCtUZUVQd2svVVBpUlc1RkhnUjhObFB3bXJBYzVONDAxZ0NULzky?=
 =?utf-8?B?eXhJTjdqeTJsYTlzdk9jK3c5TFNlYVpUbUxlQkZZK0I1Znd6Ulc3bHQrc1NM?=
 =?utf-8?B?WGNFN0tYeFpsVWxZTFhLcnY0SERXTzBTellOK2dFdVkvWWVzbXNXV2drRytB?=
 =?utf-8?B?WStJekJRcm1oMFIxcjdZSlJaZFBxVEhhbGkxcDRVc0JLek55VFo5WmpOVGRS?=
 =?utf-8?B?STM0Zi93WXl0R3ZWQXpMOUZDTEN5USt5UTRRT1plczZ2czdUUzd0ekc1Q0c5?=
 =?utf-8?B?THB6MFcyaDQ2THNETGxETkpzTEVtK3VLTG0vOGpjbUhhVkpteWQwSVhGS3Fa?=
 =?utf-8?B?RHRlYUJlN2E5NWMxNFJwZnA5UXdwQjZVUkZDaUJDTmZkTkg3QWdXSFJVQUJu?=
 =?utf-8?B?QVdyYmhaM1laZkFScWZWRWdVVFAxQVo5ekt0YlM0Q1JFYnpKdnY0UFphOHFD?=
 =?utf-8?B?NEl0RHZJWldHNHhHT2FUMGEwdlZxN0lCclQ2dTFOTjMrWmEvZTdVQk94K2Ew?=
 =?utf-8?B?cGc9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <24741589B0BAE24DAC310D33740D87EB@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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d895dc1f-3417-4d40-d5d8-08ddde40495f
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Aug 2025 10:16:24.6700
 (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: c4srNc0TZga136kAN6dnKx3Fx2S339R/UUO9K4kfto8k6k42LgWcCLqrYFOWXUpk5Lr22fT7rGysAkW2rcRhqfNbUwnRcWEt5qzyL6vqZPY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR03MB9044

DQoNCk9uIDgvMTQvMjUgMjM6NDMsIE5pY29sYSBWZXRyaW5pIHdyb3RlOg0KPiBPbiAyMDI1LTA4
LTE0IDEwOjM2LCBKYW4gQmV1bGljaCB3cm90ZToNCj4+IE9uIDEzLjA4LjIwMjUgMjA6MjcsIERt
eXRybyBQcm9rb3BjaHVrMSB3cm90ZToNCj4+PiAuLi4NCj4+Pg0KPj4+IGZyb20gYHZhZGRyX3Qn
ICh0aGF0IGlzIGB1bnNpZ25lZCBsb25nJykgdG8gYHN3aXRjaF90dGJyX2ZuKicgKHRoYXQgDQo+
Pj4gaXMgYHZvaWQoKikodW5zaWduZWQgbG9uZyknKQ0KPj4+DQo+Pj4gU2lnbmVkLW9mZi1ieTog
RG15dHJvIFByb2tvcGNodWsgPGRteXRyb19wcm9rb3BjaHVrMUBlcGFtLmNvbT4NCj4+PiAtLS0N
Cj4+PiBUaGlzIGlzIGp1c3QgYSBSRkMgcGF0Y2guDQo+Pj4gVGhlIGNvbW1pdCBtZXNzYWdlIGlz
IG5vdCBpbXBvcnRhbnQgYXQgdGhpcyBzdGFnZS4NCj4+Pg0KPj4+IEkgYW0gc2Vla2luZyBjb21t
ZW50cyByZWdhcmRpbmcgdGhpcyBjYXNlLg0KPj4+DQo+Pj4gVGhhbmtzLg0KPj4+IC0tLQ0KPj4+
IMKgYXV0b21hdGlvbi9lY2xhaXJfYW5hbHlzaXMvRUNMQUlSL2RldmlhdGlvbnMuZWNsIHzCoCA4
ICsrKysrKysrDQo+Pj4gwqBkb2NzL21pc3JhL2RldmlhdGlvbnMucnN0wqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IDEwICsrKysrKysrKysNCj4+PiDCoGRv
Y3MvbWlzcmEvcnVsZXMucnN0wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqAgfMKgIDggKysrKysrKy0NCj4+PiDCoHhlbi9hcmNoL2FybS9hcm02
NC9tbXUvbW0uY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAg
MiArKw0KPj4+IMKgNCBmaWxlcyBjaGFuZ2VkLCAyNyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9u
KC0pDQo+Pj4NCj4+PiBkaWZmIC0tZ2l0IGEvYXV0b21hdGlvbi9lY2xhaXJfYW5hbHlzaXMvRUNM
QUlSL2RldmlhdGlvbnMuZWNsIGIvIA0KPj4+IGF1dG9tYXRpb24vZWNsYWlyX2FuYWx5c2lzL0VD
TEFJUi9kZXZpYXRpb25zLmVjbA0KPj4+IGluZGV4IGViY2UxY2VhYjkuLmY5ZmQ2MDc2YjcgMTAw
NjQ0DQo+Pj4gLS0tIGEvYXV0b21hdGlvbi9lY2xhaXJfYW5hbHlzaXMvRUNMQUlSL2RldmlhdGlv
bnMuZWNsDQo+Pj4gKysrIGIvYXV0b21hdGlvbi9lY2xhaXJfYW5hbHlzaXMvRUNMQUlSL2Rldmlh
dGlvbnMuZWNsDQo+Pj4gQEAgLTM2NSw2ICszNjUsMTQgQEAgY29uc3RhbnQgZXhwcmVzc2lvbnMg
YXJlIHJlcXVpcmVkLlwiIg0KPj4+IMKgfQ0KPj4+IMKgLWRvY19lbmQNCj4+Pg0KPj4+ICstZG9j
X2JlZ2luPSJUaGUgY29udmVyc2lvbiBmcm9tIHVuc2lnbmVkIGxvbmcgdG8gYSBmdW5jdGlvbiBw
b2ludGVyIA0KPj4+IGRvZXMgbm90IGxvc2UgYW55IGluZm9ybWF0aW9uLCBwcm92aWRlZCB0aGF0
IHRoZSBzb3VyY2UgdHlwZSBoYXMgDQo+Pj4gZW5vdWdoIGJpdHMgdG8gcmVzdG9yZSBpdC4iDQo+
Pj4gKy1jb25maWc9TUMzQTIuUjExLjEsY2FzdHMrPXtzYWZlLA0KPj4+ICvCoCAiZnJvbSh0eXBl
KGNhbm9uaWNhbChidWlsdGluKHVuc2lnbmVkIGxvbmcpKSkpDQo+Pj4gK8KgwqAgJiZ0byh0eXBl
KGNhbm9uaWNhbChfX2Z1bmN0aW9uX3BvaW50ZXJfdHlwZXMpKSkNCj4+PiArwqDCoCAmJnJlbGF0
aW9uKGRlZmluaXRlbHlfcHJlc2VydmVzX3ZhbHVlKSINCj4+PiArfQ0KPj4+ICstZG9jX2VuZA0K
Pj4+ICsNCj4gDQo+IFRoaXMgY2hlY2sgaXMgbm90IHF1aXRlIHRhcmdldGVkIGF0IHRoaXMgc2l0
dWF0aW9uLCBhcyB0aGUgYmVoYXZpb3VyIG9mIA0KPiBkaWZmZXJlbnQgY29tcGlsZXJzIGlzIGEg
Yml0IG9mIGEgZ3JleSBhcmVhIChldmVuIEdDQywgdGhvdWdoIHRoYXQgd29ya3MgDQo+IGluIHBy
YWN0aWNlKS4gVGhlIHJlbGF0aW9uIGlzIG1vc3RseSBhaW1lZCBhdCB0ZXN0aW5nIHdoZXRoZXIg
dGhlIA0KPiBwb2ludGVyIGFyZSByZXByZXNlbnRlZCB1c2luZyB0aGUgc2FtZSBudW1iZXIgb2Yg
Yml0cyBhcyB1bnNpZ25lZCBsb25nIA0KPiAod2hpY2ggaGFwcGVucyB0byBiZSB0aGUgY2FzZSBm
b3J0dW5hdGVseSkuDQoNCkhpIE5pY29sYS4NCg0KV2VsbCwgd2UncmUgdGVsbGluZyBFY2xhaXIg
dGhlIGNvbnZlcnNpb24gdHlwZXMgZnJvbSgpIGFuZCB0bygpLCBidXQgY2FuIA0KRWNsYWlyIGRl
dGVybWluZSB0aGVpciBzaXplcyAoaW4gYml0cykgZm9yIHBhcnRpY3VsYXIgYXJjaGl0ZWN0dXJl
Pw0KSSBtZWFuLCBpcyBpdCBwb3NzaWJsZSB0byBhdm9pZCB0aGlzICJzaXplb2YodW5zaWduZWQg
bG9uZykgPT0gDQpzaXplb2Yodm9pZCAoKikoKSkiIGluIHNvdXJjZSBjb2RlIHVzaW5nIG9ubHkg
RWNsYWlyIGNvbmZpZ3M/DQoNCkRteXRyby4NCg0KPiANCj4+PiDCoC1kb2NfYmVnaW49IlRoZSBj
b252ZXJzaW9uIGZyb20gYSBmdW5jdGlvbiBwb2ludGVyIHRvIGEgYm9vbGVhbiBoYXMgDQo+Pj4g
YSB3ZWxsLWtub3duIHNlbWFudGljcyB0aGF0IGRvIG5vdCBsZWFkIHRvIHVuZXhwZWN0ZWQgYmVo
YXZpb3VyLiINCj4+PiDCoC1jb25maWc9TUMzQTIuUjExLjEsY2FzdHMrPXtzYWZlLA0KPj4+IMKg
wqAgImZyb20odHlwZShjYW5vbmljYWwoX19mdW5jdGlvbl9wb2ludGVyX3R5cGVzKSkpDQo+Pj4g
ZGlmZiAtLWdpdCBhL2RvY3MvbWlzcmEvZGV2aWF0aW9ucy5yc3QgYi9kb2NzL21pc3JhL2Rldmlh
dGlvbnMucnN0DQo+Pj4gaW5kZXggM2M0NmExZTQ3YS4uMjc4NDg2MDJmNiAxMDA2NDQNCj4+PiAt
LS0gYS9kb2NzL21pc3JhL2RldmlhdGlvbnMucnN0DQo+Pj4gKysrIGIvZG9jcy9taXNyYS9kZXZp
YXRpb25zLnJzdA0KPj4+IEBAIC0zNDgsNiArMzQ4LDE2IEBAIERldmlhdGlvbnMgcmVsYXRlZCB0
byBNSVNSQSBDOjIwMTIgUnVsZXM6DQo+Pj4gwqDCoMKgwqDCoMKgwqAgdG8gc3RvcmUgaXQuDQo+
Pj4gwqDCoMKgwqDCoCAtIFRhZ2dlZCBhcyBgc2FmZWAgZm9yIEVDTEFJUi4NCj4+Pg0KPj4+ICvC
oMKgICogLSBSMTEuMQ0KPj4+ICvCoMKgwqDCoCAtIFRoZSBjb252ZXJzaW9uIGZyb20gdW5zaWdu
ZWQgbG9uZyB0byBhIGZ1bmN0aW9uIHBvaW50ZXIgZG9lcyANCj4+PiBub3QgbG9zZSBhbnkNCj4+
PiArwqDCoMKgwqDCoMKgIGluZm9ybWF0aW9uIG9yIHZpb2xhdGUgdHlwZSBzYWZldHkgYXNzdW1w
dGlvbnMgaWYgdGhlIA0KPj4+IHVuc2lnbmVkIGxvbmcgdHlwZQ0KPj4+ICvCoMKgwqDCoMKgwqAg
aXMgZ3VhcmFudGVlZCB0byBiZSBhdCBsZWFzdCBhcyBsYXJnZSBhcyBhIGZ1bmN0aW9uIHBvaW50
ZXIuIA0KPj4+IFRoaXMgZW5zdXJlcw0KPj4+ICvCoMKgwqDCoMKgwqAgdGhhdCB0aGUgZnVuY3Rp
b24gcG9pbnRlciBhZGRyZXNzIGNhbiBiZSBmdWxseSByZXByZXNlbnRlZCANCj4+PiB3aXRob3V0
DQo+Pj4gK8KgwqDCoMKgwqDCoCB0cnVuY2F0aW9uIG9yIGNvcnJ1cHRpb24uIE1hY3JvIEJVSUxE
X0JVR19PTiBjYW4gYmUgDQo+Pj4gaW50ZWdyYXRlZCBpbnRvIHRoZQ0KPj4+ICvCoMKgwqDCoMKg
wqAgYnVpbGQgc3lzdGVtIHRvIGNvbmZpcm0gdGhhdCAnc2l6ZW9mKHVuc2lnbmVkIGxvbmcpID49
IA0KPj4+IHNpemVvZih2b2lkICgqKSgpKScNCj4+PiArwqDCoMKgwqDCoMKgIG9uIGFsbCB0YXJn
ZXQgcGxhdGZvcm1zLg0KPj4NCj4+IElmIHNpemVvZih1bnNpZ25lZCBsb25nKSA+IHNpemVvZih2
b2lkICgqKSgpKSwgdGhlcmUgaXMgbG9zcyBvZiANCj4+IGluZm9ybWF0aW9uLg0KPj4gVW5sZXNz
IChub3Qgc2FpZCBoZXJlKSB0aGUgdW5zaWduZWQgbG9uZyB2YWx1ZSBpdHNlbGYgaXMgdGhlIHJl
c3VsdCBvZg0KPj4gY29udmVydGluZyBhIGZ1bmN0aW9uIHBvaW50ZXIgdG8gdW5zaWduZWQgbG9u
Zy4gV2hldGhlciBhbGwgb2YgdGhhdCANCj4+IHRvZ2V0aGVyDQo+PiBjYW4gYmUgcHJvcGVybHkg
ZXhwcmVzc2VkIHRvIEVjbGFpciBJIGRvbid0IGtub3cuIEhlbmNlLCBhcyBUZWRkeSBhbHJlYWR5
DQo+PiBzdWdnZXN0ZWQsID09IG1heSB3YW50IHNwZWNpZnlpbmcgaW5zdGVhZC4NCj4+DQo+IA0K
PiArMTsgaXQgbWlnaHQgYmUgd29ydGggdG8gYWRkIGJvdGggdGhlIGVjbGFpciBjb25maWcgYW5k
IHRoZSANCj4gQlVJTERfQlVHX09OLCBub3RpbmcgdGhhdCBuZWl0aGVyIGlzIHN1ZmZpY2llbnQg
b24gaXRzIG93bjogdW5sZXNzIHRoZSANCj4gY29tcGlsZXIgZ3VhcmFudGVlcyBub3QgdG8gZmlk
ZGxlIHdpdGggdGhlIHZhbHVlIGlzIHVuYWx0ZXJlZCB3aGVuIGNhc3QgDQo+IGJhY2sgYW5kIGZv
cnRoIGFsbCBjaGVja3Mgb24gdGhlIG51bWJlciBvZiBiaXRzIGFyZSBtb290Lg0KPiANCj4+PiAt
LS0gYS94ZW4vYXJjaC9hcm0vYXJtNjQvbW11L21tLmMNCj4+PiArKysgYi94ZW4vYXJjaC9hcm0v
YXJtNjQvbW11L21tLmMNCj4+PiBAQCAtMTUwLDYgKzE1MCw3IEBAIHZvaWQgX19pbml0IHJlbG9j
YXRlX2FuZF9zd2l0Y2hfdHRicih1aW50NjRfdCB0dGJyKQ0KPj4+IMKgwqDCoMKgIHZhZGRyX3Qg
aWRfYWRkciA9IHZpcnRfdG9fbWFkZHIocmVsb2NhdGVfeGVuKTsNCj4+PiDCoMKgwqDCoCByZWxv
Y2F0ZV94ZW5fZm4gKmZuID0gKHJlbG9jYXRlX3hlbl9mbiAqKWlkX2FkZHI7DQo+Pj4gwqDCoMKg
wqAgbHBhZV90IHB0ZTsNCj4+PiArwqDCoMKgIEJVSUxEX0JVR19PTihzaXplb2YodW5zaWduZWQg
bG9uZykgPCBzaXplb2YoZm4pKTsNCj4+Pg0KPj4+IMKgwqDCoMKgIC8qIEVuYWJsZSB0aGUgaWRl
bnRpdHkgbWFwcGluZyBpbiB0aGUgYm9vdCBwYWdlIHRhYmxlcyAqLw0KPj4+IMKgwqDCoMKgIHVw
ZGF0ZV9pZGVudGl0eV9tYXBwaW5nKHRydWUpOw0KPj4+IEBAIC0xNzgsNiArMTc5LDcgQEAgdm9p
ZCBfX2luaXQgc3dpdGNoX3R0YnIodWludDY0X3QgdHRicikNCj4+PiDCoMKgwqDCoCB2YWRkcl90
IGlkX2FkZHIgPSB2aXJ0X3RvX21hZGRyKHN3aXRjaF90dGJyX2lkKTsNCj4+PiDCoMKgwqDCoCBz
d2l0Y2hfdHRicl9mbiAqZm4gPSAoc3dpdGNoX3R0YnJfZm4gKilpZF9hZGRyOw0KPj4+IMKgwqDC
oMKgIGxwYWVfdCBwdGU7DQo+Pj4gK8KgwqDCoCBCVUlMRF9CVUdfT04oc2l6ZW9mKHVuc2lnbmVk
IGxvbmcpIDwgc2l6ZW9mKGZuKSk7DQo+Pj4NCj4+PiDCoMKgwqDCoCAvKiBFbmFibGUgdGhlIGlk
ZW50aXR5IG1hcHBpbmcgaW4gdGhlIGJvb3QgcGFnZSB0YWJsZXMgKi8NCj4+PiDCoMKgwqDCoCB1
cGRhdGVfaWRlbnRpdHlfbWFwcGluZyh0cnVlKTsNCj4+DQo+PiBCVUlMRF9CVUdfT04oKSBpcyBh
IHN0YXRlbWVudCwgbm90IGEgZGVjbGFyYXRpb24sIGFuZCBoZW5jZSB3YW50cyANCj4+IGdyb3Vw
aW5nDQo+PiBhcyBzdWNoLiBRdWVzdGlvbiBpcyB3aGV0aGVyIHdlIGluZGVlZCB3YW50IHRvIHNw
cmlua2xlIHN1Y2ggY2hlY2tzIGFsbA0KPj4gb3ZlciB0aGUgY29kZSBiYXNlLiAoSSBleHBlY3Qg
dGhlIHR3byBjYXNlcyBoZXJlIGFyZW4ndCBhbGwgd2UgaGF2ZS4pDQo+Pg0KPiANCj4gKzEgYXMg
d2VsbC4gSSB3b3VsZCBleHBlY3Qgc3VjaCBjaGVjayB0byBsaXZlIGUuZy4gaW4gY29tcGlsZXIu
aCBvciBhbnkgDQo+IHNpbWlsYXJseSBnZW5lcmFsIGhlYWRlciwgc2luY2UgdGhpcyBpcyBhIHdp
ZGVzcHJlYWQgYW5kIGxhcmdlbHkgYXJjaC0gDQo+IG5ldXRyYWwgcHJvcGVydHkgdGhhdCBYZW4g
d2FudHMgdG8gYmUgYWx3YXlzIHRydWUgSSBiZWxpZXZlLg0KPiANCg==


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 11:01:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 11:01:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085910.1444163 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unxcA-0003Xk-IP; Mon, 18 Aug 2025 11:01:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085910.1444163; Mon, 18 Aug 2025 11:01: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 1unxcA-0003Xd-E6; Mon, 18 Aug 2025 11:01:22 +0000
Received: by outflank-mailman (input) for mailman id 1085910;
 Mon, 18 Aug 2025 11:01:21 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=q+DX=26=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1unxc9-0003XX-0a
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 11:01:21 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a587ca01-7c22-11f0-a32a-13f23c93f187;
 Mon, 18 Aug 2025 13:01:09 +0200 (CEST)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-afcb7aea37cso499213566b.3
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 04:01: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
 a640c23a62f3a-afcdd016ad2sm782422066b.99.2025.08.18.04.01.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Aug 2025 04:01: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>
X-Inumbo-ID: a587ca01-7c22-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755514869; x=1756119669; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4BJURpgMVEUlbZpRU1UuPujjvaDwapeZHZZROZ/10Q0=;
        b=egx0hXVDaqcRE8R5ExBln2pV8U5M5x8sDmByX8/7Ue+fQ+Bhmur8RXP4xJzgUVH04P
         +0UTxVKsWrSYMGS8p0BMdBmNWDGzS/Lj/WcOG4viwyd8RNuhq/4OZFWh8ZToXdngQpKt
         TS2XUrDnLEeRAZnQ19nTsXe8uzAa8qN+1Lsn/Ca0HZxwSnwq6MYeTygyRsjTxt3oEHnR
         dGtksL/bG0ZI2RnOnIVmXebWj2leraT0DE2UwY666gs0Y1FzoFVlQ1jzPiXzbFzOyEKz
         c3Anopjx5VV5VKh6qhktsIhGa9aPePNDSue+mZ5h/D5vD3h+1YV14YnIRAXCN1fpftM3
         AVMA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755514869; x=1756119669;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4BJURpgMVEUlbZpRU1UuPujjvaDwapeZHZZROZ/10Q0=;
        b=MhLuy+gZgDv1Kio4wM1lG2GA5FHhGuaw7W35L2D34UOIVJargQu95uHmVcHyoBU7Dz
         eJaHcCcbMbnwYRBD8a2eBlPCu6QbPwmWzE832v2CgySA1FdRGNS7uSOKsUzmaDrbRI01
         iseqi/Z8tL1HHLZTbWWq6tN6NnubDs78HhLfy7fZHR9UY+6dm5Pcn+VkxM/IO9jQqKEe
         oJkpzzd4IdLLS7beaDUVfmZalGXShPDqR29LZSeFGP1hVn7WZflHwrQrL/Xgc/uAEKyn
         O3G7Jvxx2LN7rsKwQXSJNMxej+g8xvMQQufTSzbe9iJNfe/iUs2cv/sXbdS2tkXa8BEq
         191w==
X-Forwarded-Encrypted: i=1; AJvYcCXfqgHzuDbFac/ycfQ7i3vwS50jj7CuKiVVVIcgZ+Z/ElJpsqULWIF3EiUt7LryBpgPuN6OOcRx+nU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwtwQuI/Il08kJU0/n/j7q3qfjNHUND24lzZBfdRtOfEAAjXLhR
	Hn0mAelmT+vVaJUailpiQ4JwzkxNe3JYr0NySQCxXENVCDvAQOlKBW+JOJN8aC3NcQ==
X-Gm-Gg: ASbGncvsAjdMb6biomRE/+PiruXSRhpLKmgEgfBelEfr/X4GMIabAEGuE+I143k/R34
	LCCdZYb+tcVfRmKC0QjkuvenMAyAPj/VMIkM7QqaNPFmgRr4QrYX7zYCJ8ihhqEwnUqkm0RbzJK
	HE9/p+mgfro1Hx8tN2IlhvNB2apqM0tC2Osol7iaVkAb8UZsGzfITbxFz6/7MwrCtYLIQMvyj02
	9uYMR3BYjWVIvVG+4oaK3vPg0XwupbLsE2kFIwTx8Yu2fgrdzpDpQTL/9wWprii5XG2e8VCg00q
	zOOqLnQzFY9nEJrUsAmlg66Vu/X6K6ayymE5nzvBFt1Ko4bCpc1BT1WaRjQtRWdPuAUMnZjMOoN
	L9SWuCdw32aRpslK4vFR1Cl1KecYU/G30zOqq8aZsOkw/e1unkAHGxwQz/I7/P9yV4UuZS5eF9V
	ac4v9uVDmvZ2lmoDQHJQ==
X-Google-Smtp-Source: AGHT+IFVAAytPel9ZMuCKy7P0wnGFRFCmcx+X/8+aMy5CR5wHNWdMJev/GUyPJ5UI8Tbpuw3Gwdb9A==
X-Received: by 2002:a17:907:2d27:b0:af9:6bfb:58b7 with SMTP id a640c23a62f3a-afcdc03c4acmr1038418466b.5.1755514868755;
        Mon, 18 Aug 2025 04:01:08 -0700 (PDT)
Message-ID: <a3129918-d053-4243-b52d-2622dfd4a725@suse.com>
Date: Mon, 18 Aug 2025 13:01:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5] pdx: introduce a new compression algorithm based on
 region offsets
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>, xen-devel@lists.xenproject.org
References: <20250812150624.64898-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: <20250812150624.64898-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12.08.2025 17:06, Roger Pau Monne wrote:
> With the appearance of Intel Sierra Forest and Granite Rapids it's now
> possible to get a production x86 host with the following memory map:
> 
> SRAT: Node 0 PXM 0 [0000000000000000, 000000007fffffff]
> SRAT: Node 0 PXM 0 [0000000100000000, 000000807fffffff]
> SRAT: Node 1 PXM 1 [0000063e80000000, 000006be7fffffff]
> SRAT: Node 2 PXM 2 [00000c7e80000000, 00000cfe7fffffff]
> SRAT: Node 3 PXM 3 [000012be80000000, 0000133e7fffffff]
> 
> This is from a four socket Granite Rapids system, with each node having
> 512GB of memory.  The total amount of RAM on the system is 2TB, but without
> enabling CONFIG_BIGMEM the last range is not accessible, as it's above the
> 16TB boundary covered by the frame table. Sierra Forest and Granite Rapids
> are socket compatible, however Sierra Forest only supports 2 socket
> configurations, while Granite Rapids can go up to 8 sockets.
> 
> Note that while the memory map is very sparse, it couldn't be compressed
> using the current PDX_MASK compression algorithm, which relies on all
> ranges having a shared zeroed region of bits that can be removed.
> 
> The memory map presented above has the property of all regions being
> similarly spaced between each other, and all having also a similar size.
> Use a lookup table to store the offsets to translate from/to PFN and PDX
> spaces.  Such table is indexed based on the input PFN or PDX to translated.
> The example PFN layout about would get compressed using the following:
> 
> PFN compression using PFN lookup table shift 29 and PDX region size 0x10000000
>  range 0 [0000000000000, 0x0000807ffff] PFN IDX  0 : 0000000000000
>  range 1 [0x00063e80000, 0x0006be7ffff] PFN IDX  3 : 0x00053e80000
>  range 2 [0x000c7e80000, 0x000cfe7ffff] PFN IDX  6 : 0x000a7e80000
>  range 3 [0x0012be80000, 0x00133e7ffff] PFN IDX  9 : 0x000fbe80000
> 
> Note how the tow ranges belonging to node 0 get merged into a single PDX
> region by the compression algorithm.
> 
> The default size of lookup tables currently set in Kconfig is 64 entries,
> and the example memory map consumes 10 entries.  Such memory map is from a
> 4 socket Granite Rapids host, which in theory supports up to 8 sockets
> according to Intel documentation.  Assuming the layout of a 8 socket system
> is similar to the 4 socket one, it would require 21 lookup table entries to
> support it, way below the current default of 64 entries.
> 
> The valid range of lookup table size is currently restricted from 1 to 512
> elements in Kconfig.
> 
> An extra array is used to keep track of the base PFN for each translated
> range.  Non used slots are set to ~0UL, so that in mfn_valid() the mfn <
> base check always fails, thus reporting the mfn as invalid.
> 
> Introduce __init_or_pdx_mask and use it on some shared functions between
> PDX mask and offset compression, as otherwise some code becomes unreachable
> after boot if PDX offset compression is used.  Mark the code as __init in
> that case, so it's pruned after boot.
> 
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>
with one cosmetic remark (sorry for not spotting this earlier):

> --- a/tools/tests/pdx/harness.h
> +++ b/tools/tests/pdx/harness.h
> @@ -44,8 +44,10 @@
>  
>  #define MAX_RANGES 16
>  #define MAX_PFN_RANGES MAX_RANGES
> +#define CONFIG_PDX_OFFSET_TBL_ORDER 6
>  
>  #define ASSERT assert
> +#define ASSERT_UNREACHABLE() assert(0)
>  
>  #define CONFIG_DEBUG
>  
> @@ -66,10 +68,22 @@ static inline unsigned int find_next(
>  #define find_next_zero_bit(a, s, o) find_next(a, s, o, false)
>  #define find_next_bit(a, s, o)      find_next(a, s, o, true)
>  
> +#define flsl(x) ((x) ? BITS_PER_LONG - __builtin_clzl(x) : 0)
> +#define ffsl(x) __builtin_ffsl(x)
> +
>  #define boolean_param(name, func)
>  
>  typedef uint64_t paddr_t;
>  
> +#define SWAP(a, b) \
> +   do { typeof(a) t_ = (a); (a) = (b); (b) = t_; } while ( 0 )
> +
> +#define sort(elem, nr, size, cmp, swp) ({                               \
> +    /* Consume swp() so compiler doesn't complain it's unused. */       \
> +    (void)swp;                                                          \

It generally shouldn't matter here, yet maybe still better to parenthesize swp.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 11:03:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 11:03:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085920.1444173 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unxdv-00043H-TT; Mon, 18 Aug 2025 11:03:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085920.1444173; Mon, 18 Aug 2025 11:03: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 1unxdv-00043A-P5; Mon, 18 Aug 2025 11:03:11 +0000
Received: by outflank-mailman (input) for mailman id 1085920;
 Mon, 18 Aug 2025 11:03:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YQjc=26=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1unxdu-000432-An
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 11:03:10 +0000
Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com
 [2a00:1450:4864:20::634])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ec38d554-7c22-11f0-a32a-13f23c93f187;
 Mon, 18 Aug 2025 13:03:08 +0200 (CEST)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-afcb78c77ebso634487266b.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 04:03:08 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afcdd0107ecsm765220166b.86.2025.08.18.04.03.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Aug 2025 04: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>
X-Inumbo-ID: ec38d554-7c22-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1755514988; x=1756119788; darn=lists.xenproject.org;
        h=in-reply-to:content-language:references:cc:to:subject:from
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dGuD18uJg0jAH6V6gOSHIgVxrqhpA8JY6ekj+vV34fc=;
        b=Zy3oKDQ6QVnlrLRiqdKSSr5btsZrR0cONtJq1AaHGd15TMU1kHBLrC/xUHj4hPrRO/
         X3XFjbbvKT82KQlOGd/C6fqejmTlF2u94DXNhbOwVOusLg46nqoTwiRqSncipHJWQC3s
         f8yRkeheYpbUbkEeRjXFyJXyPUwAMwsZXk2MF6GQSY3SUJ5qWIQhicG4Apts3KkeoXxW
         8wPIqWEVqjfX2NE5rnEU6WlPUd5tjJ7FRT3kmnjxwKTCLgSHSf0uuVHs9LCUbMTOA1Ot
         Bg6ANpmXfIgqCx7Dk+VZq14XaUK3M4/814wFFbQUtUuA29r4QaIFBPprJzehiwJavpJk
         yPPw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755514988; x=1756119788;
        h=in-reply-to:content-language:references:cc:to:subject:from
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=dGuD18uJg0jAH6V6gOSHIgVxrqhpA8JY6ekj+vV34fc=;
        b=aTxPqY2wK6i52fxZIG3XIC6A1k+4A7BFV6d1U3YarRpG2M5yOjxfof7OEinl5KjcV2
         4r2otZluiczNVYs6+Wx9RICzGA3jF20jpw/B08Z5AS1FgWUmJQWjvK6otrXCShwoZ1Sd
         s6B9kCaaZf3LKAQMEtqzu2btFs+tVGbnYF4QyVnGmlqnh8lVe0oTF7QGH2GpBFHK0EDt
         pDlrEcupX9PGDb34TfzYp7tYkdqA8ZYmMzw3C0N8usM1+Aw5UA0/VUx8PZfBTgXHn07r
         dP6bG+YD44ksPiSxKl7PAG+ILozbhf90WPUr+5n+1WGNzVRaPMeslARgooHAkMZxQE/L
         L10Q==
X-Forwarded-Encrypted: i=1; AJvYcCXnw6i8T/k6ATb7boA7YbDWZzcklAXlI9uMjWDgeFrMa1jMvb3DhiXpTTUfilR/aA2C5ncW1pzNXkM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx6cFA0kxgERwIKs8QtGmmMvctJlMas3jr3VICVgbItKbj/kT+1
	XvB+PEG5S3pQ+U3VYWE/bC9N9RBcNqyy8DmtrwsqdkIWdzClsYiTaNJ2
X-Gm-Gg: ASbGncvNM0tNvobuMs7oJJNHGXKRIbE1yWN7WxpayPfOxVPBQOO9ZMllY4G7FLRykkh
	j4aFbU6vf1CiBvv16KPDa5WbyfiBGcQXNJdC4Xj+PKByz4YR98JJHUZZwcjy/JpDbVkKfAWuZHp
	xpNCupveSUXChgjL/jQavsq7ZVU8gyy/MZKE4NDs0YzibNW6WUItf/q3tPS23N0nIlBs/ErE+pg
	xdqmMx+DtQkZM97nbhg7WlJduIDCvA0MrBXHucI7h7qoiELItYYxBNuTrWtxCdwdc/ECc/5cwTX
	R0fPqWn4rZytmZaqaozhQ1UN2V0pUmUWXBY3cPlgKOClRvuq0GNDLE7smKqbR0yhpyfpGx6ocjq
	sA4kuXQD0DHjCfDM1wtbDHE9D17LX/R5zhmhexEHk2S/Q/KAiONO1Ip/iFFJajFQPontHf2A=
X-Google-Smtp-Source: AGHT+IF8wD3nSlxrkH0ucNqDd4VnUdV4msy47kozDVZ1/hvesYkzXySz+VU7toF5AD7KYyGUToeu8Q==
X-Received: by 2002:a17:906:c141:b0:af9:6065:fc84 with SMTP id a640c23a62f3a-afcdc237d69mr1164715966b.27.1755514987310;
        Mon, 18 Aug 2025 04:03:07 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------JjfAIznUMdWgBed42B00sOpd"
Message-ID: <f9c816d3-7222-4a32-8aff-801f3c08d671@gmail.com>
Date: Mon, 18 Aug 2025 13:03:04 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH v3 12/20] xen/riscv: implement p2m_set_range()
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <ea69584222a4c41eac276de1ec8eed25b13642d3.1753973161.git.oleksii.kurochko@gmail.com>
 <f217021e-1fef-4324-a56e-529fd29b4c69@suse.com>
 <62a3c3ef-1f19-4fac-b967-f7730e8f235f@gmail.com>
 <da08c994-f14d-4fce-9b4e-8f97103e9acf@suse.com>
Content-Language: en-US
In-Reply-To: <da08c994-f14d-4fce-9b4e-8f97103e9acf@suse.com>

This is a multi-part message in MIME format.
--------------JjfAIznUMdWgBed42B00sOpd
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 8/15/25 2:50 PM, Jan Beulich wrote:
> On 15.08.2025 11:52, Oleksii Kurochko wrote:
>> On 8/5/25 6:04 PM, Jan Beulich wrote:
>>> On 31.07.2025 17:58, Oleksii Kurochko wrote:
>>>> +static inline void p2m_write_pte(pte_t *p, pte_t pte, bool clean_pte)
>>>> +{
>>>> +    write_pte(p, pte);
>>>> +    if ( clean_pte )
>>>> +        clean_dcache_va_range(p, sizeof(*p));
>>> Not necessarily for right away, but if multiple adjacent PTEs are
>>> written without releasing the lock, this then redundant cache flushing
>>> can be a performance issue.
>> Can't it be resolved on a caller side? Something like:
>>     p2m_write_pte(p1, pte1, false);
>>     p2m_write_pte(p2, pte2, false);
>>     p2m_write_pte(p3, pte3, false);
>>     p2m_write_pte(p4, pte4, true);
>> where p1-p4 are adjacent.
> No. You wouldn't know whether the last write flushes what the earlier
> three have written. There may be a cacheline boundary in between.

Oh, correct. It would be hard to detect, so agree that it will work
badly...

> Plus
> I didn't really think of back-to-back writes, but e.g. a loop doing
> many of them, where a single wider flush may then be more efficient.

... So IIUC you mean something like:
   for (i = 0; i < nr_entries; i++)
       p2m_write_pte(&pt[i], entries[i], false);  // no flush yet

   clean_dcache_va_range(pt, nr_entries * sizeof(pte_t));

>>>> +#define P2M_TABLE_MAP_NONE 0
>>>> +#define P2M_TABLE_MAP_NOMEM 1
>>>> +#define P2M_TABLE_SUPER_PAGE 2
>>>> +#define P2M_TABLE_NORMAL 3
>>>> +
>>>> +/*
>>>> + * Take the currently mapped table, find the corresponding the entry
>>>> + * corresponding to the GFN, and map the next table, if available.
>>> Nit: Double "corresponding".
>>>
>>>> + * The previous table will be unmapped if the next level was mapped
>>>> + * (e.g P2M_TABLE_NORMAL returned).
>>>> + *
>>>> + * `alloc_tbl` parameter indicates whether intermediate tables should
>>>> + * be allocated when not present.
>>>> + *
>>>> + * Return values:
>>>> + *  P2M_TABLE_MAP_NONE: a table allocation isn't permitted.
>>>> + *  P2M_TABLE_MAP_NOMEM: allocating a new page failed.
>>>> + *  P2M_TABLE_SUPER_PAGE: next level or leaf mapped normally.
>>>> + *  P2M_TABLE_NORMAL: The next entry points to a superpage.
>>>> + */
>>>> +static int p2m_next_level(struct p2m_domain *p2m, bool alloc_tbl,
>>>> +                          unsigned int level, pte_t **table,
>>>> +                          unsigned int offset)
>>>> +{
>>>> +    panic("%s: hasn't been implemented yet\n", __func__);
>>>> +
>>>> +    return P2M_TABLE_MAP_NONE;
>>>> +}
>>>> +
>>>> +/* Free pte sub-tree behind an entry */
>>>> +static void p2m_free_subtree(struct p2m_domain *p2m,
>>>> +                             pte_t entry, unsigned int level)
>>>> +{
>>>> +    panic("%s: hasn't been implemented yet\n", __func__);
>>>> +}
>>>> +
>>>> +/*
>>>> + * Insert an entry in the p2m. This should be called with a mapping
>>>> + * equal to a page/superpage.
>>>> + */
>>>> +static int p2m_set_entry(struct p2m_domain *p2m,
>>>> +                           gfn_t gfn,
>>>> +                           unsigned long page_order,
>>>> +                           mfn_t mfn,
>>>> +                           p2m_type_t t)
>>>> +{
>>>> +    unsigned int level;
>>>> +    unsigned int target = page_order / PAGETABLE_ORDER;
>>>> +    pte_t *entry, *table, orig_pte;
>>>> +    int rc;
>>>> +    /* A mapping is removed if the MFN is invalid. */
>>>> +    bool removing_mapping = mfn_eq(mfn, INVALID_MFN);
>>> Comment and code don't fit together. Many MFNs are invalid (any for which
>>> mfn_valid() returns false), yet you only check for INVALID_MFN here.
>> Probably, it makes sense to add an|ASSERT()| here for the case when
>> |mfn_valid(mfn)| is false, but the MFN is not explicitly equal to|INVALID_MFN|.
>> This would indicate that someone attempted to perform a mapping with an
>> incorrect MFN, which, IMO, is entirely wrong.
> No, and we've been there before. MMIO can live anywhere, and mappings for
> such still will need to be permitted. It is correct to check only for
> INVALID_MFN here imo; it's just the comment which also needs to reflect
> that.

Got it now. The original one comment looked clear to me, but considering what
you wrote, I will update the comment then to:
   A mapping is removed only if the MFN is explicitly passed as INVALID_MFN.
Also, perhaps, it makes sense to add the following:
   Other MFNs that are not valid (e.g., MMIO) from mfn_valid() point of
   view are allowed.

Does it make more sense now?

>
>>>> +    /*
>>>> +     * If we are here with level > target, we must be at a leaf node,
>>>> +     * and we need to break up the superpage.
>>>> +     */
>>>> +    if ( level > target )
>>>> +    {
>>>> +        panic("Shattering isn't implemented\n");
>>>> +    }
>>>> +
>>>> +    /*
>>>> +     * We should always be there with the correct level because all the
>>>> +     * intermediate tables have been installed if necessary.
>>>> +     */
>>>> +    ASSERT(level == target);
>>>> +
>>>> +    orig_pte = *entry;
>>>> +
>>>> +    if ( removing_mapping )
>>>> +        p2m_clean_pte(entry, p2m->clean_pte);
>>>> +    else
>>>> +    {
>>>> +        pte_t pte = p2m_pte_from_mfn(mfn, t);
>>>> +
>>>> +        p2m_write_pte(entry, pte, p2m->clean_pte);
>>>> +
>>>> +        p2m->max_mapped_gfn = gfn_max(p2m->max_mapped_gfn,
>>>> +                                      gfn_add(gfn, BIT(page_order, UL) - 1));
>>>> +        p2m->lowest_mapped_gfn = gfn_min(p2m->lowest_mapped_gfn, gfn);
>>>> +    }
>>>> +
>>>> +    p2m->need_flush = true;
>>>> +
>>>> +    /*
>>>> +     * Currently, the infrastructure required to enable CONFIG_HAS_PASSTHROUGH
>>>> +     * is not ready for RISC-V support.
>>>> +     *
>>>> +     * When CONFIG_HAS_PASSTHROUGH=y, iommu_iotlb_flush() should be done
>>>> +     * here.
>>>> +     */
>>>> +#ifdef CONFIG_HAS_PASSTHROUGH
>>>> +#   error "add code to flush IOMMU TLB"
>>>> +#endif
>>>> +
>>>> +    rc = 0;
>>>> +
>>>> +    /*
>>>> +     * Free the entry only if the original pte was valid and the base
>>>> +     * is different (to avoid freeing when permission is changed).
>>>> +     */
>>>> +    if ( pte_is_valid(orig_pte) &&
>>>> +         !mfn_eq(pte_get_mfn(*entry), pte_get_mfn(orig_pte)) )
>>> I'm puzzled by this 2nd check: A permission change would - I expect - only
>>> occur to a leaf entry. If the new entry is a super-page one and the old
>>> wasn't, don't you still need to free the sub-tree, no matter whether the
>>> MFNs are the same?
>> I expect the MFNs to differ in this scenario, so the old sub-tree will be freed.
> You expecting something isn't a good criteria. If it's possible, even if
> unexpected (by you), it needs dealing with correctly.
>
>> Based on your example (new entry is super-page and old entry isn't):
>> For old mapping (lets say, 4 KiB leaf) p2m_set_entry() walks all levels down
>> to L0, so we will have the following MMU page table walks:
>>     L2 PTE -> L1 PTE (MFN of L0 page table) -> L0 PTE -> RAM
>>
>> When new mapping (lets say, 2 MiB superpage) will be requested, p2m_set_entry()
>> will stop at L1 (the superpage level):
>>    L2 PTE -> L1 PTE (at this moment, L1 PTE points to L0 page table, which
>>                      points to RAM)
>> Then the old L1 PTE will be saved in 'orig_pte', then writes 'entry' with
>> the RAM MFN for the 2 MiB mapping. The walk becomes:
>>     L2 PTE -> L1 PTE -> RAM
>>
>> Therefore, 'entry' now holds an MFN pointing to RAM (superpage leaf). 'orig_pte'
>> still holds an MFN pointing to the L0 table (the old sub-tree). Since these MFNs
>> differ, the code calls p2m_free_subtree(p2m, orig_pte, â€¦) and frees the old L0
>> sub-tree.
> A particular example doesn't help. All possible cases need handling correctly.

For sure, all possible cases need handling correctly, but I don't see any cases
except one you mentioned below where MFNs will be the same.

>
>>>    Plus consider the special case of MFN 0: If you clear
>>> an entry using MFN 0, you will find old and new PTEs' both having the same
>>> MFN.
>> Isn't this happen only when a mapping removal is explicitly requested?
>> In the case of a mapping removal it seems to me it is enough just to
>> clear PTE with all zeroes.
> Correct. Which means original MFN (PPN) and new MFN (PPN) would match.

Oh, I got it what is the issue here. If previously MFN 0 was mapped, then
it is going to be removed and considering that during removing MFN 0 is
used, we won't put MFN 0 page reference (mapped earlier) because
p2m_free_subtree() won't be called.

In this case, if-condidtion should be updated with:
   @@ -883,7 +890,8 @@ static int p2m_set_entry(struct p2m_domain *p2m,
         * is different (to avoid freeing when permission is changed).
         */
        if ( pte_is_valid(orig_pte) &&
   -         !mfn_eq(pte_get_mfn(*entry), pte_get_mfn(orig_pte)) )
   +         (!mfn_eq(pte_get_mfn(*entry), pte_get_mfn(orig_pte)) ||
   +          (removing_mapping && mfn_eq(pte_get_mfn(*entry), mfn_t(0))) )

or call p2m_free_subentry() in remove_mapping handling:
   @@ -850,7 +852,12 @@ static int p2m_set_entry(struct p2m_domain *p2m,
        orig_pte = *entry;
  
        if ( removing_mapping )
   +    {
   +       if ( mfn_eq(pte_get_mfn(*entry), mfn_t(0) )
   +            p2m_free_subtree(p2m, orig_pte, level,  virt_to_page(table), offsets[level]);
   +
          p2m_clean_pte(entry, p2m->clean_pte);
   +    }
        else

~ Oleksii

--------------JjfAIznUMdWgBed42B00sOpd
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/15/25 2:50 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:da08c994-f14d-4fce-9b4e-8f97103e9acf@suse.com">
      <pre wrap="" class="moz-quote-pre">On 15.08.2025 11:52, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">On 8/5/25 6:04 PM, Jan Beulich wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">On 31.07.2025 17:58, Oleksii Kurochko wrote:
</pre>
        </blockquote>
      </blockquote>
      <blockquote type="cite">
        <blockquote type="cite">
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">+static inline void p2m_write_pte(pte_t *p, pte_t pte, bool clean_pte)
+{
+    write_pte(p, pte);
+    if ( clean_pte )
+        clean_dcache_va_range(p, sizeof(*p));
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">Not necessarily for right away, but if multiple adjacent PTEs are
written without releasing the lock, this then redundant cache flushing
can be a performance issue.
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">Can't it be resolved on a caller side? Something like:
   p2m_write_pte(p1, pte1, false);
   p2m_write_pte(p2, pte2, false);
   p2m_write_pte(p3, pte3, false);
   p2m_write_pte(p4, pte4, true);
where p1-p4 are adjacent.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">No. You wouldn't know whether the last write flushes what the earlier
three have written. There may be a cacheline boundary in between. </pre>
    </blockquote>
    <pre>Oh, correct. It would be hard to detect, so agree that it will work
badly...
</pre>
    <blockquote type="cite"
      cite="mid:da08c994-f14d-4fce-9b4e-8f97103e9acf@suse.com">
      <pre wrap="" class="moz-quote-pre">Plus
I didn't really think of back-to-back writes, but e.g. a loop doing
many of them, where a single wider flush may then be more efficient.</pre>
    </blockquote>
    <pre>... So IIUC you mean something like:
  for (i = 0; i &lt; nr_entries; i++)
      p2m_write_pte(&amp;pt[i], entries[i], false);  // no flush yet

  clean_dcache_va_range(pt, nr_entries * sizeof(pte_t));

</pre>
    <blockquote type="cite"
      cite="mid:da08c994-f14d-4fce-9b4e-8f97103e9acf@suse.com">
      <blockquote type="cite">
        <blockquote type="cite">
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">+#define P2M_TABLE_MAP_NONE 0
+#define P2M_TABLE_MAP_NOMEM 1
+#define P2M_TABLE_SUPER_PAGE 2
+#define P2M_TABLE_NORMAL 3
+
+/*
+ * Take the currently mapped table, find the corresponding the entry
+ * corresponding to the GFN, and map the next table, if available.
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">Nit: Double "corresponding".

</pre>
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">+ * The previous table will be unmapped if the next level was mapped
+ * (e.g P2M_TABLE_NORMAL returned).
+ *
+ * `alloc_tbl` parameter indicates whether intermediate tables should
+ * be allocated when not present.
+ *
+ * Return values:
+ *  P2M_TABLE_MAP_NONE: a table allocation isn't permitted.
+ *  P2M_TABLE_MAP_NOMEM: allocating a new page failed.
+ *  P2M_TABLE_SUPER_PAGE: next level or leaf mapped normally.
+ *  P2M_TABLE_NORMAL: The next entry points to a superpage.
+ */
+static int p2m_next_level(struct p2m_domain *p2m, bool alloc_tbl,
+                          unsigned int level, pte_t **table,
+                          unsigned int offset)
+{
+    panic("%s: hasn't been implemented yet\n", __func__);
+
+    return P2M_TABLE_MAP_NONE;
+}
+
+/* Free pte sub-tree behind an entry */
+static void p2m_free_subtree(struct p2m_domain *p2m,
+                             pte_t entry, unsigned int level)
+{
+    panic("%s: hasn't been implemented yet\n", __func__);
+}
+
+/*
+ * Insert an entry in the p2m. This should be called with a mapping
+ * equal to a page/superpage.
+ */
+static int p2m_set_entry(struct p2m_domain *p2m,
+                           gfn_t gfn,
+                           unsigned long page_order,
+                           mfn_t mfn,
+                           p2m_type_t t)
+{
+    unsigned int level;
+    unsigned int target = page_order / PAGETABLE_ORDER;
+    pte_t *entry, *table, orig_pte;
+    int rc;
+    /* A mapping is removed if the MFN is invalid. */
+    bool removing_mapping = mfn_eq(mfn, INVALID_MFN);
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">Comment and code don't fit together. Many MFNs are invalid (any for which
mfn_valid() returns false), yet you only check for INVALID_MFN here.
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">Probably, it makes sense to add an|ASSERT()| here for the case when
|mfn_valid(mfn)| is false, but the MFN is not explicitly equal to|INVALID_MFN|.
This would indicate that someone attempted to perform a mapping with an
incorrect MFN, which, IMO, is entirely wrong.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">No, and we've been there before. MMIO can live anywhere, and mappings for
such still will need to be permitted. It is correct to check only for
INVALID_MFN here imo; it's just the comment which also needs to reflect
that.</pre>
    </blockquote>
    <pre>Got it now. The original one comment looked clear to me, but considering what
you wrote, I will update the comment then to:
  A mapping is removed only if the MFN is explicitly passed as INVALID_MFN.
Also, perhaps, it makes sense to add the following:
  Other MFNs that are not valid (e.g., MMIO) from mfn_valid() point of
  view are allowed.

Does it make more sense now?

</pre>
    <blockquote type="cite"
      cite="mid:da08c994-f14d-4fce-9b4e-8f97103e9acf@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <blockquote type="cite">
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">+    /*
+     * If we are here with level &gt; target, we must be at a leaf node,
+     * and we need to break up the superpage.
+     */
+    if ( level &gt; target )
+    {
+        panic("Shattering isn't implemented\n");
+    }
+
+    /*
+     * We should always be there with the correct level because all the
+     * intermediate tables have been installed if necessary.
+     */
+    ASSERT(level == target);
+
+    orig_pte = *entry;
+
+    if ( removing_mapping )
+        p2m_clean_pte(entry, p2m-&gt;clean_pte);
+    else
+    {
+        pte_t pte = p2m_pte_from_mfn(mfn, t);
+
+        p2m_write_pte(entry, pte, p2m-&gt;clean_pte);
+
+        p2m-&gt;max_mapped_gfn = gfn_max(p2m-&gt;max_mapped_gfn,
+                                      gfn_add(gfn, BIT(page_order, UL) - 1));
+        p2m-&gt;lowest_mapped_gfn = gfn_min(p2m-&gt;lowest_mapped_gfn, gfn);
+    }
+
+    p2m-&gt;need_flush = true;
+
+    /*
+     * Currently, the infrastructure required to enable CONFIG_HAS_PASSTHROUGH
+     * is not ready for RISC-V support.
+     *
+     * When CONFIG_HAS_PASSTHROUGH=y, iommu_iotlb_flush() should be done
+     * here.
+     */
+#ifdef CONFIG_HAS_PASSTHROUGH
+#   error "add code to flush IOMMU TLB"
+#endif
+
+    rc = 0;
+
+    /*
+     * Free the entry only if the original pte was valid and the base
+     * is different (to avoid freeing when permission is changed).
+     */
+    if ( pte_is_valid(orig_pte) &amp;&amp;
+         !mfn_eq(pte_get_mfn(*entry), pte_get_mfn(orig_pte)) )
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">I'm puzzled by this 2nd check: A permission change would - I expect - only
occur to a leaf entry. If the new entry is a super-page one and the old
wasn't, don't you still need to free the sub-tree, no matter whether the
MFNs are the same?
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">I expect the MFNs to differ in this scenario, so the old sub-tree will be freed.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">You expecting something isn't a good criteria. If it's possible, even if
unexpected (by you), it needs dealing with correctly.

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">Based on your example (new entry is super-page and old entry isn't):
For old mapping (lets say, 4 KiB leaf) p2m_set_entry() walks all levels down
to L0, so we will have the following MMU page table walks:
   L2 PTE -&gt; L1 PTE (MFN of L0 page table) -&gt; L0 PTE -&gt; RAM

When new mapping (lets say, 2 MiB superpage) will be requested, p2m_set_entry()
will stop at L1 (the superpage level):
  L2 PTE -&gt; L1 PTE (at this moment, L1 PTE points to L0 page table, which
                    points to RAM)
Then the old L1 PTE will be saved in 'orig_pte', then writes 'entry' with
the RAM MFN for the 2 MiB mapping. The walk becomes:
   L2 PTE -&gt; L1 PTE -&gt; RAM

Therefore, 'entry' now holds an MFN pointing to RAM (superpage leaf). 'orig_pte'
still holds an MFN pointing to the L0 table (the old sub-tree). Since these MFNs
differ, the code calls p2m_free_subtree(p2m, orig_pte, â€¦) and frees the old L0
sub-tree.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">A particular example doesn't help. All possible cases need handling correctly.</pre>
    </blockquote>
    <pre>For sure, all possible cases need handling correctly, but I don't see any cases
except one you mentioned below where MFNs will be the same.

</pre>
    <blockquote type="cite"
      cite="mid:da08c994-f14d-4fce-9b4e-8f97103e9acf@suse.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">  Plus consider the special case of MFN 0: If you clear
an entry using MFN 0, you will find old and new PTEs' both having the same
MFN.
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">Isn't this happen only when a mapping removal is explicitly requested?
In the case of a mapping removal it seems to me it is enough just to
clear PTE with all zeroes.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">Correct. Which means original MFN (PPN) and new MFN (PPN) would match.</pre>
    </blockquote>
    <pre>Oh, I got it what is the issue here. If previously MFN 0 was mapped, then
it is going to be removed and considering that during removing MFN 0 is
used, we won't put MFN 0 page reference (mapped earlier) because
p2m_free_subtree() won't be called.

In this case, if-condidtion should be updated with:
  @@ -883,7 +890,8 @@ static int p2m_set_entry(struct p2m_domain *p2m,
        * is different (to avoid freeing when permission is changed).
        */
       if ( pte_is_valid(orig_pte) &amp;&amp;
  -         !mfn_eq(pte_get_mfn(*entry), pte_get_mfn(orig_pte)) )
  +         (!mfn_eq(pte_get_mfn(*entry), pte_get_mfn(orig_pte)) ||
  +          (removing_mapping &amp;&amp; mfn_eq(pte_get_mfn(*entry), mfn_t(0))) )

or call p2m_free_subentry() in remove_mapping handling:
  @@ -850,7 +852,12 @@ static int p2m_set_entry(struct p2m_domain *p2m,
       orig_pte = *entry;
 
       if ( removing_mapping )
  +    {
  +       if ( mfn_eq(pte_get_mfn(*entry), mfn_t(0) )
  +            p2m_free_subtree(p2m, orig_pte, level,  virt_to_page(table), offsets[level]);
  +
         p2m_clean_pte(entry, p2m-&gt;clean_pte);
  +    }
       else
</pre>
    <pre>~ Oleksii
</pre>
  </body>
</html>

--------------JjfAIznUMdWgBed42B00sOpd--


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 11:05:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 11:05:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085936.1444184 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unxg1-0004eQ-CS; Mon, 18 Aug 2025 11:05:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085936.1444184; Mon, 18 Aug 2025 11:05:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unxg1-0004eJ-7n; Mon, 18 Aug 2025 11:05:21 +0000
Received: by outflank-mailman (input) for mailman id 1085936;
 Mon, 18 Aug 2025 11:05:19 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vF/Q=26=epam.com=Sergiy_Kibrik@srs-se1.protection.inumbo.net>)
 id 1unxfz-0004e7-JF
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 11:05:19 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c201::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 39dcc57a-7c23-11f0-a32a-13f23c93f187;
 Mon, 18 Aug 2025 13:05:18 +0200 (CEST)
Received: from AS8PR03MB9192.eurprd03.prod.outlook.com (2603:10a6:20b:5c0::11)
 by AM9PR03MB7252.eurprd03.prod.outlook.com (2603:10a6:20b:261::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.24; Mon, 18 Aug
 2025 11:05:16 +0000
Received: from AS8PR03MB9192.eurprd03.prod.outlook.com
 ([fe80::baa9:29b3:908:ed7d]) by AS8PR03MB9192.eurprd03.prod.outlook.com
 ([fe80::baa9:29b3:908:ed7d%5]) with mapi id 15.20.9031.018; Mon, 18 Aug 2025
 11:05:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 39dcc57a-7c23-11f0-a32a-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rz3bvIhS8Yvdx9tiWGshNUjA5OKqHfEC5Zb4ec+gIA/I2+DHnWVgMqMyCOhWG6hFIP3tB/26zUXpI+cnNe6xAemNuGZ/nHk6fsDVWFEZbLGUxERlEurr2cnUhkgnN2XHWnDXQJ606mDj+juo+45LZHFopsyKWbp8ozusNgmHKvVZJPElnVH9EIL5EI3dYaywUtpyjYq3HKk0H39Ptqp3ZLpMbE3ElL867liZcEDerrqO+e9AOE9IdpFCDllkZ/wA2yrCzsWe7A9p/E+VZ3hPY1XWw3pMqYup26KQ8q6SXVIRmAp2E/xuMnS0meI2VCSw4qiy7rDK1jvUOLbTgwZURA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=GEEVsKvUw3gYPGQzKfXXvO/h4+13vEHAuwYIS+sjKCY=;
 b=sgzrR2mBOadmpQCUEFwOzxThZRrJWpiLG4vCbZTsI01oy/SLUYnsN374dMUyh7558ezRHwPuw+pNZs32VF4V1MZmQuiB+74sO0rqD0RLzMHRtUMh6SZUlqYSvJQmZd47aBLXJXUDhwNMbRrGA1ZpqC9jNNPExtse/bg4T28HQzVJYK0NeuxGlwKRPP7V0wKOHiB+t2ySKJLQ4sGjY92yIPAZsEZFvUg+5Kaprn8roxNZT4e1rpvSpGOX6vjx8b/UwyuOxow8i6LX7Yvr7U8MFkeJFwfeHrZR5yel3KRmp3pbu6iAMTtsqHh0ypUFmQG3g+/kU+Qdt2Dtu59EViB20w==
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=GEEVsKvUw3gYPGQzKfXXvO/h4+13vEHAuwYIS+sjKCY=;
 b=qh7C1Dsgr0NJoPDI+LuVum5LFnlzS04SrJoNsdUhyvHOhH2uK74Mfvj+CZnvNaonOJAP2Wgr3eLhGTsi7/DoQNdqQXbnddLv3kwRBdxySIB+Eak+jOFQqgfwmihiO83G7h7YmfKfxV+TFTyY5mqePAO74we3xe6UVYEn+KRX1cj9ORDnj+fMTG8ewFhGyMv7/tjJTA6G7CDfEuq2W4g9YkL1VlMN21drNSmYF8H2/yIaX807T2RRwfUZds2Dwsd53GhA2jQYxrBd8h9A/LTNWS2YdXlYUQNxkbl2BXhc65WKJYMcjBeeEIngULBaxXWhvDGYPQlRAEbzhvgoBgE2og==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <49b552b5-8199-4fd6-bd9e-bdbbb9afe726@epam.com>
Date: Mon, 18 Aug 2025 14:05:13 +0300
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xsm/flask: add AVC pre-allocation boot parameter
To: Jan Beulich <jbeulich@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>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Stefano Stabellini <stefano.stabellini@amd.com>
References: <20250815102330.778749-1-Sergiy_Kibrik@epam.com>
 <de3fa546-1ef8-46f6-85e9-4902379bd435@suse.com>
Content-Language: en-US
From: Sergiy Kibrik <sergiy_kibrik@epam.com>
In-Reply-To: <de3fa546-1ef8-46f6-85e9-4902379bd435@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: WA2P291CA0007.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1e::10) To AS8PR03MB9192.eurprd03.prod.outlook.com
 (2603:10a6:20b:5c0::11)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS8PR03MB9192:EE_|AM9PR03MB7252:EE_
X-MS-Office365-Filtering-Correlation-Id: 1a05b965-8697-4f2f-d69a-08ddde471c23
X-LD-Processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?d3BKNmI2SHFDNjJMaUgrZ3Y1QUIyWkdYWU5hNkRKVUFOcTk4UXJodmx2dTBB?=
 =?utf-8?B?RDNnbktsTUNkbFNNQzBPeWNFWEFZcEZXZVM0Mlk1T0p1c0ROcWRTZk5NV3Nw?=
 =?utf-8?B?SUY2bnhaWmlvSURFNUpCQ0d5bUxoMGRkdlNFZXR0M09vTFlrT0FuU3dUNXk3?=
 =?utf-8?B?SHQzWThOQXNXYXNFUWZSdFJOME1ocXJWMmlKNG9jdGJJUFc1cXRsNDRBcFZ1?=
 =?utf-8?B?dkxKd24wQm15cTFDRVk5WXNNbjM0R3hkRUJHZmNsR2kyMHJuaHJtQ1UyWGkv?=
 =?utf-8?B?VnJjemJxRkk5eSs4ZGJ2ZXdKV3lpSk9iMCtBVENzK0tRZ0FnZExuM0tlelBU?=
 =?utf-8?B?M0pkWU9RWGsvcVVCSkdlN2tkMUtuRTBIWGc5Sml2Z2J6Vlg5TWk3eDk0dWtZ?=
 =?utf-8?B?MDNJaUJ4cWF3NHhHYlZPbmVQa3F0SVBQRExGMEJud2xPZ1A2OTBQZzY4MnAz?=
 =?utf-8?B?WDEwYVk3YXR5bTB6TjV1c2cwSEZKNDZyUWQ5bkVLSlNmUnptOXRDeUhQVTZw?=
 =?utf-8?B?OTN4UEpWKzRqR2ZNZTdqZUcyTW84ekJsNXZoUnBnZUgzT3BCN0xRVElkc2Js?=
 =?utf-8?B?NUVRb1hENXE1aWNZQTNqMkZNMjR0SzBUcGRvcEF0MDRRNTc4WGtld1hIQ1Za?=
 =?utf-8?B?a0U2MzBVQ2ZuZzhuWVRhd1hWVlFIdzE0N1A0Nm5aMkRwOG9ERlRveWlTRGNT?=
 =?utf-8?B?Y2w3ZzNmMUs4cWV1aW5lZHp4QzNWdVFDR3ZlQm9KQmpvcnFqYlgwUDFLQ1pq?=
 =?utf-8?B?ZVZCM1VLTEFDMTNtN1B3UGxITXlIamZKRjIvZFhNSEt1dTVvYm9EaHkzRE8x?=
 =?utf-8?B?a3J2QWlZSEZ2bzVBdkZMV1hkQnRKZ2pjQnBqeGlYcDNYMW5DMFdMd0JjMEor?=
 =?utf-8?B?alU4TjA2NlR3bnZzWndReHo4L3BOZFprKzd6QVBlZEJabWhJaWU0ODJ4STVS?=
 =?utf-8?B?ZkxGMEVmUG9zRVJobjdyRlZPd1Q5c283VzBLV2sySXJsT1Qvek0yUGVmbG4z?=
 =?utf-8?B?YkxidE56UEVEOUxkdmRSSjhEYXk4RnRncjFiMXB3ZmNpamphTTNZbFpQLzds?=
 =?utf-8?B?YmFIOWFOM2EzbXJyclgvZ2Q2S3o0dFpaN3l0eitJcDBnR1hTZDdYYmNHclJv?=
 =?utf-8?B?VzBpVmFXamxBa3pyaDVDa0JMc05tTlQ1OTZWTUR2dUJYTFdoMWo5bkZxYmJG?=
 =?utf-8?B?SWh2bkRXSUc5elg5YVlyVWJmVTNXU0ovcHF1blExek93RjVSdTd3STIrVFd5?=
 =?utf-8?B?cmNRNHNTcU52WUhoYlVHdWUyTklaeHdXVmo5UU1sYmQzRHdFQkdGQUtyMnNB?=
 =?utf-8?B?d1JrMEZsSER1RG8zWmhHcklsVmZZMTlvT3dKd3prelFzcVRCZjJsZEdXNVUw?=
 =?utf-8?B?cVVSeU92K3JkQUI3LzJCZnVHcjIxSi93anozVEdtVEloa2syTmUzYVE3Q2t6?=
 =?utf-8?B?NTF5eWpMa3hvTGJmSDJXeE1ZK2k2MTI3NUtLZERIU2ljZTVBdUkrWkZKMG1a?=
 =?utf-8?B?MkxkT0VHQVJuNlNkVDFsUnJEZjFTSXNzdE5mMHVlc0hTcjhKZVVKTXhHdUdO?=
 =?utf-8?B?c080RWhxVnlhWXNQM0d3TjJBOFhhMzNQNXRKemhIN0twRnQ5cExBb25xU0JC?=
 =?utf-8?B?OWpka3BBU0JzZ0hpeElwcU1hTWVjaHlFUm5tUnE5SWgydis5WXhPdTZ6UDJu?=
 =?utf-8?B?Y0JuT3lsSFV4VWFzSldwamVqaTJNZFo2Y0tHUzQ3NHpIWTFsdFhERW9Jb1dn?=
 =?utf-8?B?K2RLWjhqaFErcjZuMjgwSWhFb3E4K1ZzcXFQbmQ4aEwwTTNDM0RvQ29kZ3F3?=
 =?utf-8?B?QWpqT053Z0FRT3E0bUhLeGJYeFVicStyT0oxOWVSRDE5RW1tandWUGhOZURL?=
 =?utf-8?B?eTRJcFIzZ05GVVJUMmcvcTFnQTBrdG9sWk9ZdWxnSDdIbkVBSFIxQ2NIM0No?=
 =?utf-8?Q?jiiKDxj+nbk=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR03MB9192.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Zmt5U1ZSbytKZTNoOTFjN3lPSEZPcjY1c3JSd2JsN2ZpWHZDN3ZxaXprREdo?=
 =?utf-8?B?ZUszS2tUaUU5d01sRHBGQTRKRW55VzZGcm9nR2lFYUQ3ek1QYjJMNmdiV0N2?=
 =?utf-8?B?VVRtQ3owSzFkeTAzdzBHQUF6OURsYmFxZkZUSWRlR1NaTWJxZlVXOWFSeFJy?=
 =?utf-8?B?aDhrNmF0Q0EvcFpObkNEcEN5dnkzaTRQN0dhN3lDSFpWR0dHQ0xBWFhwb1or?=
 =?utf-8?B?ZmE0SW1SajRqUU92Z0l0WVc2UnMrV1dwNEFrcUoyVHZVNWNzNlpWSURBWWUy?=
 =?utf-8?B?a0tDUUJaU1FLQm1ybDc0eXpuTTVJZGx0VzBHb0NsN3hha2ZxcFNJclo3bUlV?=
 =?utf-8?B?bk9xZUdGVVdCSFlLd0NOdHBMVnFsQXREakRYRmlBNlRiUDI1TmxTOGdrd2E0?=
 =?utf-8?B?cEMxMDJSaDl3Y1lFY2R6amxQMFhvanNrNm90YThGdXA0THJSVTQ3aHVOaUsr?=
 =?utf-8?B?TEozSGlxTm1OSzE4SFRRaDYrVkZyR0VybEhVR1FOQjVWRTJaRUhUSTlPSkdu?=
 =?utf-8?B?eW9GTXIzNEFqNVFwODVRRHJZY1JjaStDR3dCS3Nrc2N2REVWOG1HNWZrd0t3?=
 =?utf-8?B?angzZ3lERjFhaU5HR3FJTTZFTGhWMVNnNjMwSVZ1VEhFaWhhZGFQTG01S25o?=
 =?utf-8?B?TGdlKzdCeWQxTHViVXdSSUV2bXpIWEpPYW00WjFNbjJmZVhpYXVwenp2ckl2?=
 =?utf-8?B?a0tsNzM5alVzM2Q4aFdzakFaMjQrVEdVay82VXBDNmZjMHcyajZwK3dOUGpj?=
 =?utf-8?B?NEFOVVZieVVDdzRNcE5XT2NIOUsrUGRReXRmOGg2QjZqbDlSYnM3a2xINFZr?=
 =?utf-8?B?T3Fmb2RMZ0NxK2F4ellmdXFGK2VSK3I3Q2YzMXVwRWpBaUN0RHRkaWtjZ0cv?=
 =?utf-8?B?cmt3T1hlSk1WcWtRN0FHWTBXUXJ4em9VczZlRTJIdlFyREg5dmFrbUJqdTQ3?=
 =?utf-8?B?TVk1M3ZEeHZ6M3VlaCsvSEwrWnRHaUZQRElveUUwenUwbjc3T1BxNUMyY2Uv?=
 =?utf-8?B?Z0RKemc3RHVGbUxoVkR5Nm1hbzZzL21NNGx0TVV1ejVKa291UW5GdzMxMGhM?=
 =?utf-8?B?WEw0eE52WFFlN3BudVJWU0cyUW8reVBZU2swUzhXenhoYlk2b1NaMlViQUZh?=
 =?utf-8?B?azc0MXkzSkVvVDBDMG9KeHhBRjNVdzR6UGFQUDEvc3RNbEJCZXNEc2dPOTlL?=
 =?utf-8?B?enV3aDJ1eFZHU2gra0kxTlp2QVdENFJVbGlBNnVkYWVheXBNSzljdzl5Q2hQ?=
 =?utf-8?B?OE9mazV2S3FSQXM2ZFhoM2xCamhSd09lMnF6SHRGMWw5bm9LT0UrV1N4N1R1?=
 =?utf-8?B?TzkvazRCZzJHbW5Henp5Y0ZWZ0VieHFCMHo4TXdSTmxqcVV1SUxMUFVRRS9a?=
 =?utf-8?B?ZnBpN2RXWGdMUkRaR04wSDdCN25MaTlGS0xtLzU3Y21CM3pzcWtzaXE5L21N?=
 =?utf-8?B?ajZZbUNhTHl4RlR3TWtNaGQxOTNOeDR2aTJPbEw2bHJHZlVqc04zUzZLWko3?=
 =?utf-8?B?a3Brd254Vm1zMWFmbCtveWNCYVNMSXdhZGN4YzVDT2VIR2VxVU9ZQVJCaGwx?=
 =?utf-8?B?RjVzaWVYa2NYQ2Fzb0d2R1h2TWFZUm02QVVBREd0RVBoN0ZCekR3K2VOUElE?=
 =?utf-8?B?OWFTd0pybGQvTWZLMmQ5RWhLNmdQWVNYb2VldjVhbTF1VVJ1REJXd3RaSDlL?=
 =?utf-8?B?empaTmczZzVEaUNvczVESk1xQ1hsVnVQWHBVcUhwMjI1TmhOY2Y3KzJIRElv?=
 =?utf-8?B?RlFOLzh0YzkycVQwUFU4a09UbGVqcm00NU04eVlPckVKN2xKd0VlUTl4L09N?=
 =?utf-8?B?QUN4OEVCN2IzL2JqQUdhV1hIQ3N6WVZEcDMvS1VTOUl5cWNUdEVDUlJOWDdl?=
 =?utf-8?B?R3g3OHpIOWNXRUMrTUhPdFhCamJXNTgyTHV6bXF0cmxEdHFoZWcwc0VFVjcw?=
 =?utf-8?B?aTBHREI1bG1ZeUIrdW45RlVpQTZLeTJBeUxmU0VUZzVmUFIvMzlheERsb3RC?=
 =?utf-8?B?VS8vWXlQYk5NQTVKOTFzTldYT2NYcnFheDV2akJEc2c5d2hiRG45NHpRbklE?=
 =?utf-8?B?cmhzaGpnYmh1Z1ZmWXczM243Tm1XZEIzblhza1VlY3pkUFA1NjRROWpLVmxV?=
 =?utf-8?Q?jZb0CVE1z+E2IruDBdAOP4hLS?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1a05b965-8697-4f2f-d69a-08ddde471c23
X-MS-Exchange-CrossTenant-AuthSource: AS8PR03MB9192.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Aug 2025 11:05:15.9286
 (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: v+W908g1HISAqSw9jPvBifMwWMMpYBTXCQ3lDY/9EE2eUnTD5fwMpEe/we/HdkJiNkMrNoiKg68EySR5mF647w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7252

15.08.25 15:20, Jan Beulich:
> On 15.08.2025 12:23, Sergiy Kibrik wrote:
>> --- a/docs/misc/xen-command-line.pandoc
>> +++ b/docs/misc/xen-command-line.pandoc
>> @@ -238,6 +238,15 @@ loops for Queued Invalidation completions.**
>>   Specify a maximum amount of available memory, to which Xen will clamp
>>   the e820 table.
>>   
>> +### avc_prealloc
> 
> In addition to what Andrew said, please prefer dashes over underscores in new
> options.
> 
>> @@ -97,6 +99,9 @@ static struct avc_cache avc_cache;
>>   
>>   static DEFINE_RCU_READ_LOCK(avc_rcu_lock);
>>   
>> +bool __read_mostly opt_avc_prealloc = false;
> 
> __ro_after_init?
> 

sure, will do that. Thank you!

   -Sergiy


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 11:05:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 11:05:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085938.1444193 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unxgF-0004xO-IU; Mon, 18 Aug 2025 11:05:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085938.1444193; Mon, 18 Aug 2025 11:05: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 1unxgF-0004xH-FH; Mon, 18 Aug 2025 11:05:35 +0000
Received: by outflank-mailman (input) for mailman id 1085938;
 Mon, 18 Aug 2025 11:05:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vF/Q=26=epam.com=Sergiy_Kibrik@srs-se1.protection.inumbo.net>)
 id 1unxgE-0004e7-G0
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 11:05:34 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 42fefa7e-7c23-11f0-a32a-13f23c93f187;
 Mon, 18 Aug 2025 13:05:34 +0200 (CEST)
Received: from AS8PR03MB9192.eurprd03.prod.outlook.com (2603:10a6:20b:5c0::11)
 by AM9PR03MB7252.eurprd03.prod.outlook.com (2603:10a6:20b:261::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.24; Mon, 18 Aug
 2025 11:05:31 +0000
Received: from AS8PR03MB9192.eurprd03.prod.outlook.com
 ([fe80::baa9:29b3:908:ed7d]) by AS8PR03MB9192.eurprd03.prod.outlook.com
 ([fe80::baa9:29b3:908:ed7d%5]) with mapi id 15.20.9031.018; Mon, 18 Aug 2025
 11:05:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 42fefa7e-7c23-11f0-a32a-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=WP7e2pm2qcM3QUs/pVeq2lT0B+1YyY3OlEXTpQLM3Ll+vJfJqbmQj+dLJsYVwcMpaevEIiYAQYHmyiLPKg0p4Yz42eLR+mHX1M2TukIETpoeCeo0Isr1jLKK3X2qG9y7XA/1VdSlqjA++O0HUgtmgCMNl0vjVGyY92Ov3CVwn1z31t5SF2bBQEsR//ga/xLKyROyxTZ/doNdbFSbfDZHbsfqKyW9g6zqsni+hFJoTonaOZYXNVojitt3pKivomFa9g29sTWCk+e7jMQXVD6HOqWn0kgeE1/uJ+slUhZ3X4YxJXQ3Ol4igVv6NOz6LXFbEW1jzZy48rZzdJET6l8iyg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=tUENUuEQjChbl8u4LhrlpSG4vRnO6ZMwkiesRPYgKjk=;
 b=AeWcu25NX/1owpPQIf98drsl/pKaC0A9upJjtRPNtUwKYVYDEf9qmeVNhYKoQbCCr10YIsAabQ3ct9ODXE50xUXhHrRMp3RgiQNj5eKRPRvF57fUP8oruW8ubuOsDL9E/ZlNeuqC+euxjEiQIYer4R/G6k6RbwW+PkId/0yZhhPoh3Wp0VcusUTZ8lwRYnhYiXoLNAjDybrj8XJ+OMLtplp5nSIBc8hUsE0FHu5jCtUq3Vrnf3RUor10n/7P2obaZUTzHKNdOamZCrZMPv6kcjDPdef+99/FDa+rGEKzK6lh1p+gdbtBWjUc7MV3G/t/P6qfHehI8OboPxBeONAxhg==
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=tUENUuEQjChbl8u4LhrlpSG4vRnO6ZMwkiesRPYgKjk=;
 b=MYoCZ4ymgyXIMtAUKXX27LOOhfKi1aHWbp/nm4FXcBiYnaiA+0gqNzo998rV4kdKYiZ2YYlpoGN0yFUIpFM99d64KviURXOdfuY+nywUWyCTfJu9eYcZJyZA1s97bUfPaFMV4xrM/bJVfOOnpoHJK/g746Lw8IXaP7gSBKeuRGwKzOj3DcQPEqR7/OF7eZjnB0K4t4waQ/OuTcUraCkG/INYFV5znMV3F8GYGnUljx5v2VDmOYIYX7zsBpRGR1TiJ3Gtx7VOajgr8bZLmCQtbXoMVgcjaFVvy9MGC18rtJv5OYcaf1x1gRl3UPVjzr7Pc39i1JWarYMwJz7kjaxagg==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <8428a76e-8414-4367-9e27-65b9cb049bb3@epam.com>
Date: Mon, 18 Aug 2025 14:05:30 +0300
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xsm/flask: add AVC pre-allocation boot parameter
To: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Stefano Stabellini <stefano.stabellini@amd.com>
References: <20250815102330.778749-1-Sergiy_Kibrik@epam.com>
 <37206bd7-b455-499a-9632-f435ab87888e@citrix.com>
 <0a828038-69e4-4ffb-bc88-0359213ad878@citrix.com>
Content-Language: en-US
From: Sergiy Kibrik <sergiy_kibrik@epam.com>
In-Reply-To: <0a828038-69e4-4ffb-bc88-0359213ad878@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: WA2P291CA0004.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1e::8) To AS8PR03MB9192.eurprd03.prod.outlook.com
 (2603:10a6:20b:5c0::11)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS8PR03MB9192:EE_|AM9PR03MB7252:EE_
X-MS-Office365-Filtering-Correlation-Id: aa7c3e99-efc1-4ba3-f5a3-08ddde4725fa
X-LD-Processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Q1FrbTJCNi94T3RWVkdQQlBud2JITVBTNG9YOFhYNDg2NHNQd2IzTHJTU1A5?=
 =?utf-8?B?Ym1ONlEvUHNFS0x4U1UvaTlSNjZ1T1M2ZFlsRmw1a2EvWGNZTGpxNTZaM3No?=
 =?utf-8?B?clJ5QzdIZU1EOUw5cStYQzBCTTViOVZpTGJmUU04ZU1acGZPdkpPcmpZVVRM?=
 =?utf-8?B?TFU2b0xqWS9KMG5Nc3lObm02VUs0clRIUXBqaVZ1TXBGRGpDN3dLUVFMNTU1?=
 =?utf-8?B?TWNvK0t4UU9VSkN3NlVVUmxYNTEzcWlyVXVtUWhJQWZhNDdmQmJFUUdVN0xS?=
 =?utf-8?B?RVdTeDZ5amVFcTdWK0M3YnpMOG5zTFpDSWp2QmQ1OVhvV2F5TXVRSStvcnJN?=
 =?utf-8?B?N1RNaWtaNUJhL2RVZ1Ywd3BrSnBENlpuOHJFcEhlTEk2a2dxWCtyQVFzZlF5?=
 =?utf-8?B?WU9IQTFHSGdoOTE3TEoxZ3NTWDFZdnM4TFN0QTBKUnQvUWtjTEw4Mkl6TlVK?=
 =?utf-8?B?Y1IzbXpPZU5HK1lVN29sWEl3L21wWWFBd0pUeUVDVzdxWFFmaUc5eFFTTk53?=
 =?utf-8?B?L3NEKzd3Vm83aFZwWTUzdDQzNXRrcTZ3TitFLyt0UWJpbmYwRTNLUzZnSy9i?=
 =?utf-8?B?eDNlYks0ZWJBRWExVWw3cTZGQnJJY08wSEZYcnNTM2JrT05WRkFZdmJhSUx6?=
 =?utf-8?B?NVI4d1NXMU04MDdNRTFkVjREZHNhaEFQV3BwTTQ3c3BkQk14dFlPZk9qQ1l4?=
 =?utf-8?B?dmNzVHBWMjVaYStRR1puaWw1L3dYOFgwb3NSOThtRzhyb0w1RlRPM1NndUpX?=
 =?utf-8?B?ZTNIM1prWHpzZDUvWWVTVmhqYWJxREtmTXRDMWpQbHZmbUZiendQK0c5TExX?=
 =?utf-8?B?NnB2dmZlZmU0UU9SaXZMTWNQdFNSZ1djamdBZlM0YVBhME1tbm43Y1Frb1Jy?=
 =?utf-8?B?ZDVjSVdQYVYwcGVESzJQQWJjOVpjNGhxSUtDS0lLWVRSKzNUblVIOVBiM3pi?=
 =?utf-8?B?YjZMMm9hTS9IMFR6RTIzdVFvbklXMnlUODVNMkp5ZnRPU2tVY1dza3NNY1RD?=
 =?utf-8?B?NDdpQ0l3S21Eb0FFdXl5b2NPbThQdHlOQW9YVGI2ZFA2VGxVVVc0MFJkMDJP?=
 =?utf-8?B?aElLUFY2Q2lPenZTMzNiWGpBZlMvL0xPR01GUURyMmxyblpDTFZWYlFnYytI?=
 =?utf-8?B?ai9GcmNuanRmcCtnQjkvSzRGcWJDTzVoUjliNWZ0Z0RSWHY2VEJkckxOZVlQ?=
 =?utf-8?B?YlNaaTRUSG81RWovVHQ5a3pBMFExL28vRXc2dFZqaHhGTzVhcEFqSjZNWU9Z?=
 =?utf-8?B?a1pVVE9OY3RwSW5FVDV1MzN2bVlvTUkrdk8wZDNTRVRNY1Zyck9oZlUwRUdJ?=
 =?utf-8?B?aklYVzZOQXhvMkhqSVJyNDhIbW9LcVQ0RXAxdjQyRklkdGpwMk9LOHpTZTl0?=
 =?utf-8?B?QnBYMS9kSjAwYlM4R1YrL1psOVd5eVZIMDNUUHJ2bEdNcmRnSmZjV2tub293?=
 =?utf-8?B?cnFXb3B4VlJyaTdoeGFtUUR3SEJKQzR1OWdDQlY4b3JVczNLVGFSdVFjQmxl?=
 =?utf-8?B?MUxscnZzUVlheUp5dU9vRHQraVlmYnRxQy9kdTlWUGVwZnFHd1NyWWpKN3Rz?=
 =?utf-8?B?bWEvcVdBUjlCY3pPMmoxOGdFY3czbkE1ZUNWaDRBbDRDQTJoc0FPckJ3ZjRH?=
 =?utf-8?B?a1FSWXdKLzRtb1hCc0FCSk5FWGxhV204L01SR1UxY3JIendyWm8vOGdzVTF4?=
 =?utf-8?B?MHFIM1R0NlFIR2JEaXRNN1RKZE9KZVBPUTIvSXR6TngwSEJXVVhhR2NkcGZH?=
 =?utf-8?B?QUdFMGllaHA1eWc3bnpmNisrL2ZWc2VxOFJTYnZtNUptUWszY0pJOGl2WExR?=
 =?utf-8?B?U2tseHlhMk5BUWhGajE1aW5UTmNQdHBXNXpoTFg3T2YwWms3TDIxaEJMaE5j?=
 =?utf-8?B?M1M5bFBMeFBvRXhmbEFsSXpxZnNrajVuYVcvc3ZJemJVT3V1c2xCRmV4OVQ2?=
 =?utf-8?Q?83ppTcwNEks=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR03MB9192.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VW1GbG5VZWdvMmNTZDBOYzFhWllBbXpneE1OMFc3WWIxZFJJaFlETUM1MHd0?=
 =?utf-8?B?eWpwVEs3VG9Zc2NMc2l4OWF1SGlDQnNwQW5KOEpjcjJmUXFhb2hOTTNsUzNT?=
 =?utf-8?B?dWo3eTdVMmJRY1Q0VGhnNzErMTJBQWI2MEs0ZGh2VzhyTHFzUEdneWwySXpT?=
 =?utf-8?B?WExMdU9VNm1UMXd3bmJ2bURpQmtzdVBtMG1OMTBadWE4NE9VRU0zMURoSG9w?=
 =?utf-8?B?UGpFV1V4TlYyVEpEYnlLSVVKZHlRaVh4cTcxejcxc1BqRWg4Nm1vOTlXcU5B?=
 =?utf-8?B?cTNIUUxMVE1aT0J2bUNxQVlYaFE5bUVVazlLWFdtcnBoaTRwTFp3b01jY2NB?=
 =?utf-8?B?UnZYMEJrMEdHS09lWnVjd0dPUW80RjZXY1hnMWlRWGxYbTRyN28rdU82a0NK?=
 =?utf-8?B?MkRaNmJSWlI1WEJxcitEZE9qMVNmeVJ4dmhnMWJldEo1azhvSjNyZjRyZDBs?=
 =?utf-8?B?ckcrK0YrbW9YZTFUQS80Y3ZYZjNzeEtuNFFuMHJZVVczS3p3cjZqdmluQXVu?=
 =?utf-8?B?V241TDRhN2Z5TTdQeEsvS1d3cWJ3TUpKTXhLQ0srVklJMlNUYTMvbks5cWhw?=
 =?utf-8?B?VTZ0WGRLNkgvamZwT2R0T09JYXhFMFBGSWhQWHo4NWw1STdtSXVsQXQvNDV5?=
 =?utf-8?B?OUpQZWdEMGVzZXpjbzVybnJ1Sm1oUjBUZkFZWi9DMFNZSmJ0ck1KNzVwZDZw?=
 =?utf-8?B?S2VVQy9naEJhODFrVWtwa2g3TUNBTjZwQjI2bzcxOEZBaWg5UWdCNHhpVDFY?=
 =?utf-8?B?Um81SFF1Yko0SEJGL2VGaDdGMUF2Q3N6WlBQZlR2L2I2bTllQTBSZkVocHB6?=
 =?utf-8?B?QXcwdkNlQlFRQmxxVGc5a0R4UmZ5R1dyeUJBL29reDBsQ0Y2M2R1bWhRemlt?=
 =?utf-8?B?NFA4b3NlY3U4M1NOS2JYTVoyaDZacjFVdEVvbitkbnhFT2J1aStkZ1R3YUxT?=
 =?utf-8?B?VzJaVFZ3OTBkVGgvVXNINTVGYnFqdHVNM3hWSnpWY21ac0FKOW05ZWN5UCt5?=
 =?utf-8?B?dVViNjNLNEhUR2NqV0VJVXVsQUZVYWVXNDdBY2xocy9BYUFiNVhiK043eVIx?=
 =?utf-8?B?azRFWUVIandLdEJ0OWhGQXhaYkNsdnh0WDJlY2hYM1pObFpsRi80eXk1ZFVm?=
 =?utf-8?B?UHNDK1cxSUFVK0RYMU9Iak0zekp2eFd2d1VseWNaWTI3ZjBPWnkxQ04yc2Qz?=
 =?utf-8?B?RFlMYmdSeWQvdTJwd2Q5SVZzOU9BL2Q0SUtuQ2tBN2daRTRwNE1yWVAxL3lG?=
 =?utf-8?B?aEMyai9yaThQZ083OXZ1STRGUFFzODlVOWh2c21wMytmOUZFbUZTY0xheWRV?=
 =?utf-8?B?SFMzcWFuajF2S29DcCsxVTlKYnVZbi9vbmZUWVNCbjJBMjk4TG5CQ1JhS29T?=
 =?utf-8?B?Vmw0eDFPT05XeUY5SXRYL3kxOFRMMUIrRmdZM25HOElUdnJvemJUQ2RmaDY2?=
 =?utf-8?B?UWN3c3Ftd1hST3ZxMmtyZXE3OUV2NjlFZGJXUE5VSXZQTFRwZlExRTlMMnh6?=
 =?utf-8?B?M3ZPU0F4Yk4waVF0bXk0UWNKb3MrUnBzYUpLT2pTVm44aDlhelFvTlRuZDBz?=
 =?utf-8?B?a0xoL1pMaVo1V09EWmpoTUNJZWl5YUJIeXNMVUxxYkV2cmlOSFRvSTFZSWQ0?=
 =?utf-8?B?R2MyREFvVlFPZ3p3L3NnRndEcnpVQ25XR3lNOXo1Ry9DYTQ2UTdJQlE5RUp0?=
 =?utf-8?B?MCs3Wm5WbU9WV2xIYUJ3UTdzR3JwZjh6SEQyZEd6Ty9wZUlsVFBlL0piYXVJ?=
 =?utf-8?B?RVhCRmZNZ3l2SE94dXA1ODlBemIrQTU5L1k5QXRHakFoUjhuSWZUSDFqQlpQ?=
 =?utf-8?B?RFplSmhXbDU4VnRLL1BhZTd1TWV5dFhWMS8yc1U1TVRuSW9PQlF5d25TeHcw?=
 =?utf-8?B?cWtuWm1mQ002VjllQ2VuU3ZGNVh6bjFsYzRkVU5WU01CV1ZWVy9hc29YRmoy?=
 =?utf-8?B?ZVZNVzZKdkxQd2xxYzc4ZEt2eFJYczJKdEVZNFpCMDQxbWNSZnkxZzFjYUZy?=
 =?utf-8?B?emdwM3dyV0lUNC95MUhIZEdsek1ZdURXeXlNOU44ZDIvZUFsT1FQdHdDZTU3?=
 =?utf-8?B?TXVmZGNlc2dSd0VvYnVWV0dkaDhYWnY3VkpkUnFNWERqaXgxUXZNemJHd3p5?=
 =?utf-8?Q?Hfdgt6/kHQGDyp51J/tkcHRDk?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: aa7c3e99-efc1-4ba3-f5a3-08ddde4725fa
X-MS-Exchange-CrossTenant-AuthSource: AS8PR03MB9192.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Aug 2025 11:05:31.9008
 (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: BeoSTgvL1srEWt8MhUYaLUI6nLfs9jS2M2qMXO8r9j8U0kkIyNYBday7UjoAaMToi1MsEe4YEbqjciEk5wq3zQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB7252



15.08.25 14:43, Andrew Cooper:
> On 15/08/2025 12:21 pm, Andrew Cooper wrote:
>> On 15/08/2025 11:23 am, Sergiy Kibrik wrote:
>>> diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
>>> index a75b6c9301..9044827e78 100644
>>> --- a/docs/misc/xen-command-line.pandoc
>>> +++ b/docs/misc/xen-command-line.pandoc
>>> @@ -238,6 +238,15 @@ loops for Queued Invalidation completions.**
>>>   Specify a maximum amount of available memory, to which Xen will clamp
>>>   the e820 table.
>>>   
>>> +### avc_prealloc
>>> +> `= <boolean>`
>>> +
>>> +> Default: `false`
>>> +
>>> +Allocate XSM Access Vector Cache at boot. This forbids runtime dynamic
>>> +allocation of AVC nodes from Xen heap and changing AVC size via
>>> +FLASK_SETAVC_THRESHOLD hypercall.
>> I don't have any input on memory allocation side of things, but this
>> needs to be a sub-option under the existing flask=, and it looks like
>> you're going to need to turn it into a comma separated list.
>>
>> Also, if you actually want to use Flask in a safety system, Flask needs
>> to become security supported in Xen.
> 
> Sorry, sent a little too early.Â  x86's dom0= is probably the closes good
> example to follow, having both comma separated booleans and a choice-of-$N.
> 

yes, I'll try to integrate that option into flask=

  -Sergiy


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 11:23:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 11:23:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085956.1444202 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unxxl-0008Ec-1C; Mon, 18 Aug 2025 11:23:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085956.1444202; Mon, 18 Aug 2025 11:23: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 1unxxk-0008EV-Up; Mon, 18 Aug 2025 11:23:40 +0000
Received: by outflank-mailman (input) for mailman id 1085956;
 Mon, 18 Aug 2025 11:23:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=q+DX=26=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1unxxj-0008EP-Te
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 11:23:39 +0000
Received: from mail-ed1-x534.google.com (mail-ed1-x534.google.com
 [2a00:1450:4864:20::534])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c8eb19c5-7c25-11f0-b898-0df219b8e170;
 Mon, 18 Aug 2025 13:23:37 +0200 (CEST)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-6188b5ad681so5622332a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 04:23: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
 4fb4d7f45d1cf-618af9d3429sm7056189a12.7.2025.08.18.04.23.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Aug 2025 04:23: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>
X-Inumbo-ID: c8eb19c5-7c25-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755516217; x=1756121017; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=5nVtqkLnTj5A0xGXZojylCejMyrz3zv/rUp+gncqiNs=;
        b=akVUmNhtap9vzxlql22SJAR2NDBm+URPlHbibkMO0INIYZZG35lmie47fIzk+KXmbf
         V9hQZIANmhYE4VECvDgiwaOnd/8fC7tngQUNn/u89BUxJiRhzSfR+U0BXpjlMehwqCV3
         DI8l3k9FZVTD+OD4+V3DKLgb9cd/6b7YHELJz2KLbnGox/229vTce+dtVfhM04wqot0X
         PYcd3V/87R5gaLifwq8YCQ0kCLEgcjmAR30vibvnoJ0TIp8K0MKcyOz3eyfHVkVKcJeu
         DKK06f615O2rTlvREEi03WnPaaQXg2+WE7mLnRPA2ACRUR5iLErfsJFoB95OUd5jgGqx
         J8Aw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755516217; x=1756121017;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5nVtqkLnTj5A0xGXZojylCejMyrz3zv/rUp+gncqiNs=;
        b=w9+IJIjfiKv+r0zf655oc3C8bPBXW5vOshpCeYjUY233+6Fam4c/WdwgRPfcxzsEFX
         co8wZacW32FnqCTDHQMPuqhKQ+hnwZh5QLfpcMu6uld9i7ebjyXznUCLJQDegIEV0AJb
         P5CSZ3X4qujvpx1ZKRhEd3jPb1DzgFgkc7+t58Jnz7v/zzQnsTU8rDGWLjRqARjqhvJR
         CjUAJrqRtCXaO7DBw0ngQSME4A3auhT2DszgsQ4qjdBeYWKmA3QvXTUnmdlPzTt3GqKE
         Q0kexxbmIgaUiy59o+ANM+Nyvh6QaAKbC2ozc25wQD6mgrj5/nj6a8eFld+Ln4Td7jP+
         mZig==
X-Forwarded-Encrypted: i=1; AJvYcCWhP3qWF4MTLY5sBwI0gU6sQ0m7I6YnQSqjXV3Y6x6nGEzpdPL+l/eNvZiOWXLAEVbXLs4XTQxu1Bs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxJCicJGys+IRnfEa9Sbk6kf3jaZvyJ/bDmtXotQv3BaZGKFd1h
	efnNIVV3h6sk+pBdaCJCW16D6T/PUwsZwH2WVibK7Wk42sMcxXnA5FbIB7ctHARz+Q==
X-Gm-Gg: ASbGnct/PRC7z37xqM0oEtlpvoM9GSzGie3h1ACdwbFSMwspe8ryhNfRLt2iBR7IxUe
	6O9H8yRmBlw34vrPaE9Zz579H83aZok6J4eGHktRFKDU56eFp4HHBOOcmOGdYEV9ynhm3MLgLBg
	Y3Q4iSKzffBTf+N4M9bQDrxtcvoqutyS4ueHPOtT++Rp17pIsyNhA6CZSLWTX4MfyhntdYjBSSl
	QItMKrPmKSA787o1U462FMvgTOyP+LU1szoCMOljEawO/jDvCg8g1RNqlWTmm8hgE4yPCVKr/ou
	GFLU0gSgg1SXOxbSIz9bQjWYshn8b5Cpfqdkgzrnu6SHsoyVx5Wn20vjdpTzmWJFYarXIA26/CE
	vdo25Ki9T74qeoWLZLJLXX2Ui+HVMkcYeeeqDawH1j7ZGB5aiFPXTDUcj9+VAzPalCvqsfAaQf+
	kM9AkYc/Nk2nPc6BmNqw==
X-Google-Smtp-Source: AGHT+IFnGPmvyE84qnokHwEOTdAS9lE+VbR2qDwRik4nu4P93ketyHm4ruGM18hClQS+Bo3+jOU/gg==
X-Received: by 2002:a05:6402:254b:b0:617:cd9d:e2a4 with SMTP id 4fb4d7f45d1cf-619b6f65d8cmr7158680a12.2.1755516217051;
        Mon, 18 Aug 2025 04:23:37 -0700 (PDT)
Message-ID: <e3b37ba8-72df-403b-816d-3be9011b8203@suse.com>
Date: Mon, 18 Aug 2025 13:23:36 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 01/16] x86/msr: Implement rdmsr_safe() in C
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
 <20250815204117.3312742-2-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: <20250815204117.3312742-2-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.08.2025 22:41, Andrew Cooper wrote:
> ... in preparation to be able to use asm goto.
> 
> Notably this mean that the value parameter must be taken by pointer rather
> than by value.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

In principle
Reviewed-by: Jan Beulich <jbeulich@suse.com>
However, having looked at patch 2 first, ...

> @@ -879,14 +879,14 @@ static void intel_init_ppin(const struct cpuinfo_x86 *c)
>      case 0x8f: /* Sapphire Rapids X */
>  
>          if ( (c != &boot_cpu_data && !ppin_msr) ||
> -             rdmsr_safe(MSR_PPIN_CTL, val) )
> +             rdmsr_safe(MSR_PPIN_CTL, &val) )
>              return;

... with this, wouldn't we be better off using ...

>          /* If PPIN is disabled, but not locked, try to enable. */
>          if ( !(val & (PPIN_ENABLE | PPIN_LOCKOUT)) )
>          {
>              wrmsr_safe(MSR_PPIN_CTL, val | PPIN_ENABLE);
> -            rdmsr_safe(MSR_PPIN_CTL, val);
> +            rdmsr_safe(MSR_PPIN_CTL, &val);

... plain rdmsr() here, thus not leaving it open to the behavioral change
patch 2 comes with?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 11:27:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 11:27:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085970.1444213 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uny1K-0000QL-JG; Mon, 18 Aug 2025 11:27:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085970.1444213; Mon, 18 Aug 2025 11:27: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 1uny1K-0000QE-GX; Mon, 18 Aug 2025 11:27:22 +0000
Received: by outflank-mailman (input) for mailman id 1085970;
 Mon, 18 Aug 2025 11:27:20 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=q+DX=26=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uny1I-0000Q8-P1
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 11:27:20 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4d55f301-7c26-11f0-a32a-13f23c93f187;
 Mon, 18 Aug 2025 13:27:19 +0200 (CEST)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-afcb7ace3baso690886266b.3
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 04:27: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
 a640c23a62f3a-afcdce72d95sm781147266b.33.2025.08.18.04.27.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Aug 2025 04:27: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>
X-Inumbo-ID: 4d55f301-7c26-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755516439; x=1756121239; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=c6YI6rLDELEMVS9y/+wUGUf6Y17A1nICAA/Vkash6gk=;
        b=LMIOEwO7Edjex+5mCM68s6IaWARpu+Y02SjoL7sfxx0+sCRXp4nb5v3ueO/nYvQKNH
         np+LD0YnkpgBuZD0nPABzUgqXJUuOfozyKca1+VXXakS6u2oJXipE6wowIYVBm0FOG/4
         GO7QlsXmhgv0GLXL8uSvJcqRdZ0gzN0Vsp8l+fOTe482aqfIm/FfijGrWxGM8itgxfPc
         +iMG+r7HQwhuKecY50Al357DJa80lNBHWsv84Dda7vRZn5YzwtNjLVESYUmp+Yx4IqEr
         xVIVib+IYlFS01GMWnh2N9LHpn2zN8qKHETZ7/msvgsK/nIgFaaq6KX0uhELR0NVYLV4
         v02g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755516439; x=1756121239;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=c6YI6rLDELEMVS9y/+wUGUf6Y17A1nICAA/Vkash6gk=;
        b=ggxVz8q5581neAYuNC4H3uddS1/aYo4pl/TaKM8nGfklCguG+FE619gGOixhd6hNE3
         CsuJPOlzd/xrYGlYyaWURKTe1zW/qYjNJTP9xCpOy+Nc+SzDfhWlVBjytDWdpvyUTldW
         fZ9IK5gaHse2MrxGyV8OEtrQNKc5Nk+G3BgkBPz8rOQCOxGnlQQ6pWpRdFwdymoDDeDr
         A5N4up49JD6ytqnDZuvVzdLUHv35sauptOvnDWQMrAofLPTor9wwwiIBVKDmZrueKVs/
         lQQmCTV6e1UhQUqklM7lC7REdOVZEPcL0i75yi3uCFsD/hXgljvGJdkHin5SOU07PZg/
         DgLQ==
X-Forwarded-Encrypted: i=1; AJvYcCV4bgHHNa2rOP2Qo2db7Lq5a6d/K8HoLFud5vbVsFwusW+oZO/YNXKnXMSk1qDIgfdcitGJgKq2e84=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzWLmmU5gh3f0+T6AoechQ0LqNjStnLt46SaRFyVPSw/yu18zfQ
	WdDWc3LrrzRyLNfvFTNhL5Dw5jFyJYtXO423oGe8XRdtvVNDp1X8WrzrhWm0gPcIwQ==
X-Gm-Gg: ASbGncvomeNYJcshI968D6e4juEXZZreIaEL9xMYeigusF0Y4xVc593BwZfFdjEUqbh
	zhK5ZAbFeFwpCGuRNkKUTnscO9nWvyHGlW18rCDBgAjx+PptwOIRaULk9XnlSWDtAIuxk0uldnl
	hULf4yExpoe2sar9sIZird0epdvrDTIOtjdRzIJhNI441kLpoj6rUPHC0yE9YvPbgCi11tNatBL
	GApw15RR2+SRn68JHjfwFOhdo8xLt25tH5dqCnnxXD2D10TvVl3PV3+DaoQH2DH5KL43VkjPIsG
	gqhjHHQAvXRh13i9GexORrQI/7YDkyG8ugZZ0m71rhDiEMXNSybAgKkAaGA8ueiQnneVYsbvV/i
	3bMpFhLn68wvOV2ffxfrSQrBU+bYuZU3esf99/01c6V7YiOpxUsyXzGfbDUTGnaTscS1ynqkrJx
	04QGMyuJY=
X-Google-Smtp-Source: AGHT+IH35MtDGHaQ1rHsPAH+0hxBlxdYuYwuNJ/MaNRCpLrR++yu0jFxM37G9oGk7HGaOCPOjtlHnA==
X-Received: by 2002:a17:907:c28:b0:ae0:ad5c:4185 with SMTP id a640c23a62f3a-afcdc3e9749mr871572066b.57.1755516439158;
        Mon, 18 Aug 2025 04:27:19 -0700 (PDT)
Message-ID: <aa57cc7c-c659-4949-aaed-4484ead54ffc@suse.com>
Date: Mon, 18 Aug 2025 13:27:18 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 02/16] x86/msr: Rework rdmsr_safe() using asm goto()
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
 <20250815204117.3312742-3-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: <20250815204117.3312742-3-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.08.2025 22:41, Andrew Cooper wrote:
> ... on capable toolchains.
> 
> This avoids needing to hold rc in a register across the RDMSR, and in most
> cases removes direct testing and branching based on rc, as the fault label can
> be rearranged to directly land on the out-of-line block.
> 
> There is a subtle difference in behaviour.  The old behaviour would, on fault,
> still produce 0's and write to val.
> 
> The new behaviour only writes val on success, and write_msr() is the only
> place where this matters.  Move temp out of switch() scope and initialise it
> to 0.

But what's the motivation behind making this behavioral change? At least in
the cases where the return value isn't checked, it would feel safer if we
continued clearing the value. Even if in all cases where this could matter
(besides the one you cover here) one can prove correctness by looking at
surrounding code.

> --- a/xen/arch/x86/include/asm/msr.h
> +++ b/xen/arch/x86/include/asm/msr.h
> @@ -55,6 +55,24 @@ static inline void wrmsrns(uint32_t msr, uint64_t val)
>  /* rdmsr with exception handling */
>  static inline int rdmsr_safe(unsigned int msr, uint64_t *val)
>  {
> +#ifdef CONFIG_CC_HAS_ASM_GOTO_OUTPUT
> +    uint64_t lo, hi;

Could at least this line move ahead of the #ifdef, to also cover ...

> +    asm_inline goto (
> +        "1: rdmsr\n\t"
> +        _ASM_EXTABLE(1b, %l[fault])
> +        : "=a" (lo), "=d" (hi)
> +        : "c" (msr)
> +        :
> +        : fault );
> +
> +    *val = lo | (hi << 32);
> +
> +    return 0;
> +
> + fault:
> +    return -EFAULT;
> +#else
>      int rc;
>      uint64_t lo, hi;

... the same being needed here?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 11:28:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 11:28:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085981.1444222 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uny2K-0000vP-Rr; Mon, 18 Aug 2025 11:28:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085981.1444222; Mon, 18 Aug 2025 11:28: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 1uny2K-0000vI-P7; Mon, 18 Aug 2025 11:28:24 +0000
Received: by outflank-mailman (input) for mailman id 1085981;
 Mon, 18 Aug 2025 11:28:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=q+DX=26=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uny2I-0000vC-Q6
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 11:28:22 +0000
Received: from mail-ed1-x534.google.com (mail-ed1-x534.google.com
 [2a00:1450:4864:20::534])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 72555514-7c26-11f0-a32a-13f23c93f187;
 Mon, 18 Aug 2025 13:28:21 +0200 (CEST)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-6188b5b7c72so5570131a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 04:28:21 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-618b02b11bbsm6970123a12.53.2025.08.18.04.28.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Aug 2025 04:28:21 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 72555514-7c26-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755516501; x=1756121301; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=yMss1VaCsT68Jsie8hsNeglTurGh81K1EwTj7W2pCMk=;
        b=ZASxtGD4yFSUlSz7y5ljJk8BBKca4805BN7ti5hYYMARDy2kX8kXAoVkNqBkhEF2Ma
         w2cn5mbLNTgs7FzDWiF2e6G8oP/e6vkKSwtFUZhfj7rUwJ2BuDhPe+qJnkO3kHxIZa1x
         B0j4aUC30kRTstrTp5RfovHrXb1zuUyfSN1Sfh7cfEe0WV+6z3tT9higDwQF2Svp1FmO
         1BVMxKtF5hrM5qhIEnprbfnUU7BspgxnYGLDmvN/2GEMWwab9p6FP7WQ0u8pEAwtDEep
         yKPi5K27Hjw39jWbpUm14R7as6Dkj6mqgzLtNu+8visbtgAlOsJWIeo4vkZUhLT0HxB5
         7DNQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755516501; x=1756121301;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yMss1VaCsT68Jsie8hsNeglTurGh81K1EwTj7W2pCMk=;
        b=VFSg29TR7cd68UDqIfuJa+uBSs+aDjmjUqaT8fFMW1ZNXDc9k+WKO/Bj9wbjaJR/10
         gnKMwLRHTAuslInOpaAi2BPFXDXE6FvfGp9GDESe66PF1e0VCyJ+hIcr34UfzqeEzYnF
         ille+r+GKZAEZo3sgIIm1Kl4zgap+10+76/nKTPtsOeioyXXEZuRRa0VI/4Oh0EOOebV
         zqcPbSeV5/+qm5CuCvwEzSJCP9jJI9PiZGrKArkiG8eJeho78a36Ea76hE5jG2w94IC5
         tiVFA3Txm48ryDdaCgaAm3e9ArROaZz5L/5mfc4zgTECRgDN1YvxyYNbS/9HYLlN0mQ1
         uXWg==
X-Forwarded-Encrypted: i=1; AJvYcCXj+s+iDhQ7Ea4KsavfzX5aef6UXtua1mc0zN+0afu/qkVhb2aNzoCZEtID6/rlWguvyAQ0NBApd00=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyX7EIk/qNIP+kgV+hzK+XyVHmmqeVxE0AkphnejzSCdthTpyAf
	NLx5Md5zSHdW+AVdqOVX2HG0kmchekzMJJNnL+y6AO0GTOoRNpJaDyk21xQUmNg2mVjVGAjGGMD
	KU3E=
X-Gm-Gg: ASbGncuMCtxTDNWP0DU33O5SnEhTXcKXpPKOU0c4FoknXYzM3P9wvYaMEoYio+1oDsl
	oAnmxuzHMOpe+beZnot7UOcxVM5i7KGkxIrYojlvwHNeTXE276aJ0wh5uIOflkCVAhx/h0Qw5GL
	j72Mc+k1hR374cNHxZmP849Uo3oySKl3Rf5gVCEaIMVf1sUfGSHScpdeR1DeMa9imeDsyhRbTy7
	3+uatBiEysbCz5t6ToVw42AHLGOcz/0gd+ITCsIoEnwInf1N074F+Mf/zZwKXp+f459Bc4T05Ld
	4YCRWuB1WybelFBATjeYP7SH8jvTZdU6Fekt/r3H5iraIOQPMvYCIJ4X3bCQ20WPxdWWLUJ69bE
	4mhlCDAoEhLLrtiHdCj7rdKa/bc8pVMFsXAAnVq9hXq/PYggyKJORVosVoaxk7A1RLTyqhxEC2m
	Ql6ndP66E=
X-Google-Smtp-Source: AGHT+IE6Ayvm7v7EtW2V96gwlk8gsyNLfcf17J47XkPBx+m3Tz7Fq5iNgvGEeRfyhNaDkC78/xqbLA==
X-Received: by 2002:a05:6402:5245:b0:617:c8a4:b0b6 with SMTP id 4fb4d7f45d1cf-618b054e61emr8864287a12.24.1755516501247;
        Mon, 18 Aug 2025 04:28:21 -0700 (PDT)
Message-ID: <9347c104-f686-43e3-bd70-dbe1f9f13cc4@suse.com>
Date: Mon, 18 Aug 2025 13:28:20 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 03/16] x86: Sort headers
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
 <20250815204117.3312742-4-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: <20250815204117.3312742-4-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.08.2025 22:41, Andrew Cooper wrote:
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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



From xen-devel-bounces@lists.xenproject.org Mon Aug 18 11:34:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 11:34:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1085990.1444233 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uny88-0002jY-Fd; Mon, 18 Aug 2025 11:34:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1085990.1444233; Mon, 18 Aug 2025 11:34: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 1uny88-0002jR-CP; Mon, 18 Aug 2025 11:34:24 +0000
Received: by outflank-mailman (input) for mailman id 1085990;
 Mon, 18 Aug 2025 11:34:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=GLF1=26=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1uny87-0002jL-Pc
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 11:34:23 +0000
Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com
 [2a00:1450:4864:20::32c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 495ca0f2-7c27-11f0-a32a-13f23c93f187;
 Mon, 18 Aug 2025 13:34:22 +0200 (CEST)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-45a1b0c52f3so18942735e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 04:34:22 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45a1c6d89b9sm178054575e9.12.2025.08.18.04.34.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Aug 2025 04:34: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>
X-Inumbo-ID: 495ca0f2-7c27-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755516862; x=1756121662; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=6vCaLmNz9+UO5Qx4SPmdQn+wAOeMPN1Ed6InYeDMSaA=;
        b=v6/QW1w/az4lVB+gMZdYfTMQnS/JVLz38wBNqYfvdAQbHYY6n6zPokJWy51p8/ekIK
         9+siB3I0zzN3nzDDRhJnmJjsM0rp+KJlZAdmK1d5k189SpslWK8xVS85UYCEX5ysfSFE
         lUuYEGNS51OMFIsw2j4IZU/eq5KvsAcOlmfDg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755516862; x=1756121662;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6vCaLmNz9+UO5Qx4SPmdQn+wAOeMPN1Ed6InYeDMSaA=;
        b=MyIMToCvSdbtWI3307RbcJNy16Jw5lI9/DUsjfLmPrnle2kgJzxWbb+VNWfQeGMgMm
         ysB+yZfp1snZVmqfXeihv25ONTBUPStX2mgZ8yqh404ujJ11D3bK6w5fruG+KTZJ49zG
         BOk2XVOOzjhlT4zngv+cn3cdNm4VkDaJ2F2lol52lB20+IO1t+jBMqY08A2Ep8U6BHf8
         GQnrn7lp36kLN+41A/wXvqCCbwXqAFLGbbRIved34WaOR6dmhmIkUzIiQnBIc1P938M2
         qQkit/ctTzcCeBgf06X+qgSmL/5ptEk8t/VAdFOKAiRWlTTMy4VVpCW3EC5mb+QvlBUd
         JcsA==
X-Gm-Message-State: AOJu0YzKQnxWMast/b9dgOk/QFg/XXUaIxR7riSXWnw02Tvo7DMQUv+q
	xy1jcDuNmkyR/M94KFZLvgJCkcA/71rOsN+GqoqhgMGdMUQT50+M13jDOu2fr1Rbg1/qCXE8ujt
	6O37U
X-Gm-Gg: ASbGncuCVV/5kAXLtx6f42gIRrkwPIArUCPCrGLm6nHY3DBRb+WjH42DhZ5YJ91/p5O
	izuVgV4ZuMRXWwkQ/I9fXWbBdgxuIPeD2KwsvRgtpaJ7DG8YBvtejNOUn9Nz2DefN9EQwsSCI9T
	5EMtLYPDaOmI+7ke3kfW6NyCiIu91owgnpof8/8LU0wxceqWAi5yAhyRt06tjwkVwjyHjy8Xrlu
	kcMHyXvih9Ezg0menHiifaPFCPv/EgrigqZ7/+XrqTm4y9a0cLa8Dl2nGelDwZUndckizTCBLqc
	z3gBtyFxAoU0IWeWuGGGE3BONdMC8kpUiSc+RFMM7tfsIIMqeFKpdEl1hFk+7WgTFG8tXVLfdox
	7zeNP4e8mhxAsuzqTSPyUVPYU9Ft34QneTJRYZ2NJcrS4z3+RIQfdkQXrXmqCpMbh5AuV
X-Google-Smtp-Source: AGHT+IGE2g5baiho1qnB3timfn15519c1j3lKW5Nz5zJyQDJ0zBmfagu8YqwacrLOFHb6Ir8e28y2w==
X-Received: by 2002:a05:600c:138f:b0:459:db71:74d7 with SMTP id 5b1f17b1804b1-45a26795f2bmr58332385e9.27.1755516861730;
        Mon, 18 Aug 2025 04:34:21 -0700 (PDT)
Message-ID: <356c3daa-f532-4450-a634-3ecfbdedff91@citrix.com>
Date: Mon, 18 Aug 2025 12:34:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 11/16] x86/msr: Change rdmsr() to have normal API
To: 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: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
 <20250815204117.3312742-12-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: <20250815204117.3312742-12-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15/08/2025 9:41 pm, Andrew Cooper wrote:
> diff --git a/xen/arch/x86/cpu/common.c b/xen/arch/x86/cpu/common.c
> index 530b9eb39abc..9c6b8c291d6e 100644
> --- a/xen/arch/x86/cpu/common.c
> +++ b/xen/arch/x86/cpu/common.c
> @@ -329,6 +329,7 @@ static inline u32 phys_pkg_id(u32 cpuid_apic, int index_msb)
>  void __init early_cpu_init(bool verbose)
>  {
>  	struct cpuinfo_x86 *c = &boot_cpu_data;
> +	uint64_t val;
>  	u32 eax, ebx, ecx, edx;
>  
>  	c->x86_cache_alignment = 32;
> @@ -412,10 +413,11 @@ void __init early_cpu_init(bool verbose)
>  			    &c->x86_capability[FEATURESET_7c0],
>  			    &c->x86_capability[FEATURESET_7d0]);
>  
> -		if (test_bit(X86_FEATURE_ARCH_CAPS, c->x86_capability))
> -			rdmsr(MSR_ARCH_CAPABILITIES,
> -			      c->x86_capability[FEATURESET_m10Al],
> -			      c->x86_capability[FEATURESET_m10Ah]);
> +		if (test_bit(X86_FEATURE_ARCH_CAPS, c->x86_capability)) {
> +			val = rdmsr(MSR_ARCH_CAPABILITIES);
> +			c->x86_capability[FEATURESET_m10Al] = val;
> +			c->x86_capability[FEATURESET_m10Al] = val >> 32;

This is a typo.Â  Fixed locally.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 12:43:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 12:43:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086013.1444243 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unzDG-0003Pe-Jg; Mon, 18 Aug 2025 12:43:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086013.1444243; Mon, 18 Aug 2025 12: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 1unzDG-0003PX-FP; Mon, 18 Aug 2025 12:43:46 +0000
Received: by outflank-mailman (input) for mailman id 1086013;
 Mon, 18 Aug 2025 12:43:45 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=HFvU=26=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1unzDE-0003PR-TY
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 12:43:44 +0000
Received: from mail-lj1-x233.google.com (mail-lj1-x233.google.com
 [2a00:1450:4864:20::233])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f9c95796-7c30-11f0-a32a-13f23c93f187;
 Mon, 18 Aug 2025 14:43:44 +0200 (CEST)
Received: by mail-lj1-x233.google.com with SMTP id
 38308e7fff4ca-333f8ef379dso34298761fa.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 05: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>
X-Inumbo-ID: f9c95796-7c30-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1755521023; x=1756125823; 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=1xWg2an8MdDVOhi310Jn/j5TA5sUCH1R7QLJZ1Ypuok=;
        b=mhxwWzky/zVsNMbI87eD4bLOPfEC4u/Ff1Mgb3mvwjBiiaGtrH0sNqpRKudjlPurVy
         idlZ7mKeXRFtFnGBKBKMzAM6H3LKDxdwNc8xpgujoNRloifMXFeLYHjVe4kRsAKKDMkr
         AaoR3Gt1vs3F+pOCh1FA1ecsXaykev8ANyE1BKiuSvai4ig+V7X2dfDHuVKVKaWYZNoZ
         PXc8vowUIZsB9GV2FHnmGdseg7p6opmK3i5MinIrcj9Jp4reF0DtJwDrxuUrInNLcGm4
         bVzaVXHp6RzGXUQmwWhVzBA+iR/Ot38xpAf/WEU5K71taFjYZHDKkKQIqUd47fLjNVpk
         1DWw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755521023; x=1756125823;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=1xWg2an8MdDVOhi310Jn/j5TA5sUCH1R7QLJZ1Ypuok=;
        b=CCT1lrJjEMiJucXJMVYVKrD+O78u+QKDahVxG8ifTkuqiDzdj8dNvBgWayv57TVJjB
         p8rJCCd0L8QXSjv1eCH/q/HPvYv4kya0mQYpWw56Oj1DEoSmgXV+Ljif5v6vvS9xG9Gi
         FGlz7juPnrVjh6yfz4OfwHWGcvXaQRQJRc5Et89xS/2eOn2W0eZnEfFGdd5JWacIQDUV
         SjSpcvjA2B5KTcEUNTQ+pW1dV34i4DSD1PYs5RLQS/RIeF084dazJ5vsBWVKVtnm5+RR
         zodx8SRAO7qjCeKF6dZqKikDkmpsVj36fjCAINVbKzyZ1GxsnxJAtVaeQLNadJAI5T+v
         8jtg==
X-Forwarded-Encrypted: i=1; AJvYcCX3+Dxan5xSZ6m8Q1iz7bS/GTIBOeBOIRrrSg94N9pla+adCfn5Ei7NGMfOTuMy3jE0OCO9ohdiND4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwJw0K4l9n8kSQk/FbSehFwrAuyIe3CK6AOhQTfD7ffIEDiqFyx
	QN27+2U+yABPsdQNH83pYfnlb01bhUcpFUR4twu+3ilAVFZv88dStPYdYIdJBUyHFHUC7Jwd8xB
	MLZufbGli4cQBE+UYMGaEqq3et73nMWk=
X-Gm-Gg: ASbGncul+IMPQ17F3hp2b35fMMwDJQa+6AGRkk6wVkxQz2uu3ansH3IaPuoTqVYh5oz
	0E1QvNC6PMi/Y3eQGTQmmgqyP6hEp7eF5L92HttzKLyfeo1E64Knf73KnDkKlJpWSwm4RXYJ3q/
	1OPzQ5xSyvC8yj6ljqGRrFT8bJxkbd19m+NfNE1U5umL2myGicmP0dvXNkfvV6BHGzm1GLTx4Jm
	Btvz5zB6ZbrIxox
X-Google-Smtp-Source: AGHT+IGe6yJt0c63LktyTxX5j+EdFn5jv1w7Vv6PVh+PqXdKJwkSHsPABqIHuclYaCqz3v0W6ZYMl3r7HArA5nml9vk=
X-Received: by 2002:a2e:b8d6:0:b0:333:b6b0:e665 with SMTP id
 38308e7fff4ca-33409974206mr32094281fa.30.1755521022943; Mon, 18 Aug 2025
 05:43:42 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1755506449.git.mykola_kvach@epam.com> <205b2b354ff1d34d0e9ec4777ca3c94492f6d9d1.1755506449.git.mykola_kvach@epam.com>
 <5bf9b184-70fb-4698-a01e-e8cbcb05935f@suse.com>
In-Reply-To: <5bf9b184-70fb-4698-a01e-e8cbcb05935f@suse.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Mon, 18 Aug 2025 15:43:31 +0300
X-Gm-Features: Ac12FXyR_GMe1YiuIBQNUmCTJhsqX9F4TkEC9llBNBsAifKcMNWqfpN0oprtqGU
Message-ID: <CAGeoDV-JiD-sdVwGQjYbchD5N57ta8aT4_ZtPb_jNHxe77p5aQ@mail.gmail.com>
Subject: Re: [PATCH v9 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for guests
To: Jan Beulich <jbeulich@suse.com>
Cc: Mykola Kvach <mykola_kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, 
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Jan,

On Mon, Aug 18, 2025 at 1:15=E2=80=AFPM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> On 18.08.2025 10:49, Mykola Kvach wrote:
> > --- a/xen/arch/arm/domain.c
> > +++ b/xen/arch/arm/domain.c
> > @@ -90,6 +90,16 @@ static void ctxt_switch_from(struct vcpu *p)
> >      if ( is_idle_vcpu(p) )
> >          return;
> >
> > +    /* Arch timer */
> > +    p->arch.cntkctl =3D READ_SYSREG(CNTKCTL_EL1);
> > +    virt_timer_save(p);
> > +
> > +    /* VGIC */
> > +    gic_save_state(p);
> > +
> > +    if ( test_bit(_VPF_suspended, &p->pause_flags) )
> > +        return;
>
> As I had to look at the Arm side uses of the new bit to at least try to
> follow the comment further down, I came across this. And now I wonder:
> Why would one of the pause flags need special casing here?

Some kind of answer was given in a previous version of this patch series,
see:
https://patchew.org/Xen/cover.1751020456.git.mykola._5Fkvach@epam.com/07227=
0e0940b6bcc2743d56a336363f4719ba60a.1751020456.git.mykola._5Fkvach@epam.com=
/#066c6e93-a478-4c8f-b161-d109bd0e6bb4@xen.org

To clarify:

We need to avoid updating the vCPU context when switching from a vCPU of a
domain that is being suspended to a vCPU of another domain. After the curre=
nt
HVC trap, which handles the PSCI SYSTEM_SUSPEND call, completes, the schedu=
ler
will switch to a vCPU from another domain. At this point, the virtual CPU i=
s
marked as paused either via pause_count (domain_shutdown -> vcpu_pause_nosy=
nc)
or by having the _VPF_suspended bit set in pause_flags. In both cases,
vcpu_runnable() will return false, so control will not be returned to the g=
uest
OS from this trap, and the scheduler will switch to another domain's vCPU.

During this context switch, we must not update the saved context of certain
vCPU registers for the domain that has entered suspend. The vCPU context fo=
r
suspend is set up in do_setup_vcpu_ctx(). If another function were to overw=
rite
the saved values with the current ones in a physical CPU at this point, the
domain would not be able to resume correctly after a resume command.


As an alternative, all suspend-related actions could be performed in a task=
let,
which would avoid the need for modifications in domain_pause and the
introduction of the new flag. The tasklet would execute after the context
switch, but this approach would increase code complexity and introduce
synchronization issues, such as passing the suspend command context to the
tasklet, adding extra locks, or creating a dedicated tasklet for each domai=
n.
Locking would also need to be reworked to handle cases where another domain
might attempt to change the vCPU context concurrently and just domain_pause
won't be enough.

Since the trap is a synchronous call, the current approach greatly simplifi=
es
synchronization compared to the tasklet-based alternative.

>
> > @@ -1360,13 +1357,33 @@ void domain_resume(struct domain *d)
> >
> >      for_each_vcpu ( d, v )
> >      {
> > +        /*
> > +         * No need to conditionally clear _VPF_suspended here:
> > +         * - This bit is only set on Arm64, and only after a successfu=
l suspend.

Note to self: s/Arm64/Arm/g

> > +         * - domain_resume_nopause() may also be called from paths oth=
er than
> > +         *   the suspend/resume flow, such as "soft-reset" actions (e.=
g.,
> > +         *   on_poweroff), as part of the Xenstore control/shutdown pr=
otocol.
> > +         *   These require guest acknowledgement to complete the opera=
tion.
> > +         * So clearing the bit unconditionally is safe.
> > +         */
> > +        clear_bit(_VPF_suspended, &v->pause_flags);
>
> Seeing that you set this bit for a single vCPU in a domain only, I wonder=
 why
> it needs to be a per-vCPU flag.

That's a good question. In earlier versions of this patch series, both I an=
d
some other contributors used existed fields from the domain structure, such=
 as
shutdown_code and is_shutting_down, for this purpose. However, I recall tha=
t
in a previous review, this approach was not well received. See:
https://lore.kernel.org/all/d24be446-af5a-7881-2db4-b25afac3e1f4@citrix.com=
/

Technically, there is nothing preventing me from storing this information i=
n
the domain structure. However, I do not see much benefit in introducing a n=
ew
field to the domain struct when there is already an existing per-vCPU flags
field that tracks powerdown and pause states. Using one more bit in the
pause_flags field seems sufficient and avoids further bloating the domain
structure.

>
> Apart from this, with the comment I still fear I wouldn't feel capable of
> ack-ing this, as there's too much Arm-only interaction in here. It's not =
even
> clear whether this could easily be re-used by another port.

Thank you for your feedback.

I understand your concern regarding the Arm-specific nature of this code an=
d
the potential challenges for reusing it on other architectures. The current
implementation is focused on supporting PSCI SYSTEM_SUSPEND, which is an
Arm-specific interface, so much of the logic is naturally tied to Arm.

That said, I have tried to keep the changes as contained as possible, and
where feasible, I have avoided making unnecessary modifications to common c=
ode.
If there is interest or a use case for supporting similar suspend/resume fl=
ows
on other architectures, I am open to suggestions on how to further abstract=
 or
generalize the implementation.

If you have specific recommendations for making this code more portable or
easier to adapt for other ports, I would be happy to discuss and consider
them.

>
> Jan

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 12:45:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 12:45:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086024.1444253 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unzF9-0003vm-TZ; Mon, 18 Aug 2025 12:45:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086024.1444253; Mon, 18 Aug 2025 12:45: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 1unzF9-0003vf-QN; Mon, 18 Aug 2025 12:45:43 +0000
Received: by outflank-mailman (input) for mailman id 1086024;
 Mon, 18 Aug 2025 12:45:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=czvt=26=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1unzF8-0003vE-Ff
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 12:45:42 +0000
Received: from AM0PR83CU005.outbound.protection.outlook.com
 (mail-westeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c201::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3d35beeb-7c31-11f0-b898-0df219b8e170;
 Mon, 18 Aug 2025 14:45:37 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by AS8PR03MB7735.eurprd03.prod.outlook.com (2603:10a6:20b:405::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.24; Mon, 18 Aug
 2025 12:45:35 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9031.023; Mon, 18 Aug 2025
 12:45: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>
X-Inumbo-ID: 3d35beeb-7c31-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=L6zWZnPs+W2bR2aYhHS4DDCG472zkU3XNGurA6Gtrk0+FYZtmTXVkkl1NBnwaUOnZuSxp9pEb8hBNFKmt1MVI5boMdQpTa3ZwCpTWDYg+cWZGpZxBBOMN9iqtAIiPqeVLApMz/0yR/NQNTCKHU2To9uj+O8veoyh9Fm37u9tuuAexXQjjjAsAeH0AFJhf74ufM+YbosIRSEuofaa0zRu47+HT4eiL5kBypuB87T9ba448donGzI52fWXKhIUxAYJ2G1+78zWdGAN8ADjJ+i+bFawFa10IubqPjI+glo/rUezC8ASUajqEprjvwIpDW4MrHHdi6DSL5qwDMXzZ3sb6Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ohAJdWNY7iLIqoQeAkdAh8dV5HVGtsMZnmPU5ogE1B8=;
 b=dxGyruQ0KDgAq7fXnBTmtTdv7cYKAew6oDNsY0xDOPx9p57J1uABX+rZGvPhpazOVKujIRfH45jBYnc3yttNkTfazmc8gMqm3SvSbX08u89/w5H1uP1k3w3T9QcgtKDoZQDAZGT5ehJbYceuTBHDY8Gt8/KOLsnaHFVwoowwLEjtI1X9MTkCqgn4uCdienhP2WQy8r3SbzwWv8BNWCM+TMRtv7vAZtbuTNIgk6FuY6U7d7KaqVXy/VCYzG4RVgCXvVvNEvSJM9NxeGLCq6Davy927KXeKCWOiERxwi4rv33M538QghVvAI0eh2tIgK1l5OiHw7U1PTY9fu3eu6Eqwg==
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=ohAJdWNY7iLIqoQeAkdAh8dV5HVGtsMZnmPU5ogE1B8=;
 b=Uaovfy+sHk9tBZsWRgbyXZ3gwjBOhQI2HFslo0hkoV/ph+GYSlAf6Y16AUdA3C8IfwulHg8augch9pqp/9YuNy0+kEpNW1t3CywBRsnwd+aw2ylCjANeCXkysukjfdANXGSTI8qsQF4vwxR6b3ld8dG2zGxWynNA31lfi/7OgKLFRDfeNmn1Ngukyt9kMXDLjSU81nah01UFqMWLLt03P/72TdDM60mofSQJ7wZUx0M9fKKURDNrYP1OEm8dhHHlTNkvnc/BCwZGexxBQ+v+ERWlrSjiWjQAG4P+d+M6M5BdjlWBKEUYjwD/APDhR8Lyfc/naxv9MCVF2DdbIrlxFQ==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?utf-8?B?TWFyZWsgTWFyY3p5a293c2tpLUfDs3JlY2tp?=
	<marmarek@invisiblethingslab.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] efi: remove unreachable code in read_file()
Thread-Topic: [PATCH] efi: remove unreachable code in read_file()
Thread-Index: AQHcC72+MqlVxdSA/E6jjiAcMI3Nd7Rh0dCAgAaSrYA=
Date: Mon, 18 Aug 2025 12:45:34 +0000
Message-ID: <e1b5de9c-b911-4349-a045-fa9b15a04ecd@epam.com>
References:
 <52dbb5c5c1385b3b9d8522ef308ef15248973368.1755023074.git.dmytro_prokopchuk1@epam.com>
 <bda0c44d-d862-4045-8653-0d36d3ad479e@suse.com>
In-Reply-To: <bda0c44d-d862-4045-8653-0d36d3ad479e@suse.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV2PR03MB9572:EE_|AS8PR03MB7735:EE_
x-ms-office365-filtering-correlation-id: 763c30f8-6e3b-4f41-b8f6-08ddde551ffc
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|42112799006|366016|376014|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?cG1ua2djV05QUE80dmg4c1h5MnMvcjNZQzNzTE5uQnlYN0hYUG9rMGxka2VG?=
 =?utf-8?B?dmdRbnZCZk8ybmRxREtPSm1xRFdsN3hQWTZqdUY4NHR0VG5kK0p6SjFJS3ZM?=
 =?utf-8?B?cDl1VmJVOUhzQmtVTDZFL1liWTljTDJvZ1FYN20yZzdSaTBpekFvZnh3eXpw?=
 =?utf-8?B?RE5NdUd2Mkkxd2I1Z0lzdGRLTjJlTlk5bXkrNTAyWW1DVlVvUksxR1JOZWlj?=
 =?utf-8?B?YTM1dFlHdjRNbS9zbGNLcHAzRXZURUtHM3pCSkxNMEZFZTdBUnpMdFgzNDAx?=
 =?utf-8?B?eEh2Q3RWalZuT2wxL1JEY3pseG4yUFArNjlLUkFjQXAzeE9OL2xTWFZFd0hy?=
 =?utf-8?B?Y0dFS2kvbFdpeVlTdTU0MkU1b1N3T3JIUk5uRmcxSUM3NXNsT3pSVlFibnpz?=
 =?utf-8?B?UU1RYjg3eEdSNWxRZzJDZkNwZmIvOFp2eW1Gb2VNZHhldGUwcU40ajV1YkMr?=
 =?utf-8?B?SThiQkx0UW8xQVp5SkJRV3NNRmNvbGJ1TTF0RnkraGt0M0xZUkRPL1RUSUZp?=
 =?utf-8?B?cElRaER3dSs3RzJ1MUZVanYrUDR1RlJGMWRCdlJVOU9jOVRLS3RRUndBWDRC?=
 =?utf-8?B?L0htZlZLMEZZaUhFKy9ZWnVRZFVJcnRyYUVKSEg2anUzQXl2eWZKVUpMdWpQ?=
 =?utf-8?B?NXdNOHVXcThxaHhHZDRKdVFyNkxjSkZUdGxuM1ZkWGJlNTBiNUZ4akdPVk95?=
 =?utf-8?B?WDR3cVlIWThibW1iVWtDSzIvM21ZV2p2QTRKM2pIamRSSFA1bHM4WjFFOVhG?=
 =?utf-8?B?YThpSGFrRTR3aGNlbi9IZ20xL1JwVGtRNVVxU3ZYUXpBalZMYkI4T3I0ZHZw?=
 =?utf-8?B?cG1Gb1U4KytDZUtpTDc4VnlDblRvSGtBVURmb3dIYVhQUFZENGlNY0w2c2Vi?=
 =?utf-8?B?dmVSTkQ0S3Vqc3R6eWtPZThPZVFSWXlDalVYSkN5SVhaNmpsazBpY1NBN2lS?=
 =?utf-8?B?Q1pMdWt6WFljOHk1VzI5VG5hU0JkN2pmbS96STdSbDJ4aHNsNEhxVC9Cejk5?=
 =?utf-8?B?eERiVVl5aXBWTlE5YWlRZ2s0QU1VZzRjaE9MYXhjUjBnNU1MK1A2Z3UyOWt4?=
 =?utf-8?B?V0dqcldrOGorOTJ4STN2ckZWSFAzb2o5eEUwZUJRMXp4UUxRWjVnQ2ZZdDdm?=
 =?utf-8?B?MzcxR3N4dk4wNml1dzJPTDAzTHJ1VXEybHZmR0pVenRzWDZRSDNHbG8waVFH?=
 =?utf-8?B?UTQ5b2Q1Nm9CQXprSG00Q3dodUxwVXl1SXlRNEZKdEdNZUFaNkdWWjY2QWNw?=
 =?utf-8?B?ZG1KNWZnOEthaXR0OXM4NG0wY084dHljeFdIU1BBc0Mwb1dtT0pyb0Z6dno5?=
 =?utf-8?B?bmZDSTRSVHVPWXZtUWhwRVdzV2NMUTBkMXdzalFuUDdWWTQxR1NiZ3VaMHV0?=
 =?utf-8?B?aXN4U0dCaFdrNUZxN0RvZnlTU1hSaVRwNE1FMnUvSXNLMHFJanNqZSttVitO?=
 =?utf-8?B?azc2MDY0Ti83YTIwcWZxMUswUWpPUmUvbWpEOUJnRVZVRG1sMFRYb1JTZkM0?=
 =?utf-8?B?clNCM1dKdllkeHZma2dnbUk3TDl1MzYwNS9QS0JESmVSbEZLVmpla1RyT2xD?=
 =?utf-8?B?bEJsZXRmeXYrbk02VFVpajBYYlhnQUhCYnFGTU5KMGlja0NQTWNKU2gvQ2Fz?=
 =?utf-8?B?MzhIRFdQTlBZcDkvd1JOYlNqQ0JrdmlhUVg0RW12SnJvOFdtZGdCcEVZdTNa?=
 =?utf-8?B?b2t3WURwSGkyU3ZsZzd0S1FLakpBcHYwYnJ5c0kwNlNKNEw5OUhVb1BSRXpq?=
 =?utf-8?B?a2NLRFJ4Zk9kZTRvSEVQTHdaV3ZRMDN0ZUJyVHN1RnRyZGZSUE1iK2w4SXd0?=
 =?utf-8?B?anZBbjBKc05XTkIxbnZ6U2ErUVVIcmNGZFpWSE9JZEpXTlJDSHhGKzlINU5P?=
 =?utf-8?B?YW95WHRVcHZHTjl6Z3NrbGl1YWFTRUFNVUdzZDgxbDF1M1Yzd2FlenhyVzFG?=
 =?utf-8?Q?DDr8vR7AS9A=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(42112799006)(366016)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?eFhYdjVVcEVGb29PdlgvVllKSHg2WlVKVnh2U1NNZmFzTnVYZ29iWW9QUmZO?=
 =?utf-8?B?T2NhcTFWL1pRZnhtbTQ4cUVYK2pLOG0rOWtGUTJaemFNU1JFc0pyVVRPOVVP?=
 =?utf-8?B?bGVNdnYrUzduYkdGSEVMa3ErSnQ4SWhKeUN2SHRvLzR4UUU4clM3eHcxTkY0?=
 =?utf-8?B?NFAxNktiQkNvWE9hekh1Z2NpaU1ram02ZlczWC9UZGRlVXMwNjUyMExudHNq?=
 =?utf-8?B?Z0dGSWpMaW1BeS9LVnpNdDJRaFZNTXlHK2Z0NHhnK2JTbTRKK3FlU2JLcStz?=
 =?utf-8?B?UUtDMUpiUmFQbjBPZjlVN0pJTjhVdHIwMjdRdmkvaFZCRWJ0eFprRnU1VVR3?=
 =?utf-8?B?TTNnbXArbTlJNUlUbWhLZVF5Sk5RK2lWTHhHMTM3WXIwRG52bHFtOVFlYVcv?=
 =?utf-8?B?dDBKRng0c3pmczQyQlpzbDdZKzZubDFhVEJHRHBPR2RnSnBsbjlNRU0wZUx1?=
 =?utf-8?B?dDJ2bm94clJvQjAvbDFvckdYdFhiaktpbXFUakhZeitnd0ZwQUZmY2lvSXRR?=
 =?utf-8?B?cWQ0RGttSUY3S3Z3YitUaFNwbFZCOUpCZm1aL0ZHbjJBNzJVenJRNTFZVTZS?=
 =?utf-8?B?L2gxdmJiZlRKSkg2ZDVWK2Fmak5YYXYxeU9oYjNyQ1JLQXovMEt2azVzbVJN?=
 =?utf-8?B?K1pHYzVYTW1PUDY0WEluSGFDTjlGZk1XRCtlWHdrU0lLa0N5ZXR0TEx4N1lk?=
 =?utf-8?B?TWhzRDR2Q2c4WGNQRHkxSk9sTW1OVWZSSHpaZk41SXpZSVAxM0o0MWdIOTB1?=
 =?utf-8?B?emJFN0EzNW1HMEdsU3owZjBhL2tCelNieXdsT05zTEJJUk9pZEVHakYxcFha?=
 =?utf-8?B?aS9OcHA1cXMxWHMyakt5YmFNbUNCSEhzeHd3TVhhVHNWcldxOERFWS95dHFM?=
 =?utf-8?B?cnVnblJEdkowU0wzak84eWZTVFFMVk5TRHNEc3A0dXhYTzJrcDFmbWVsU05o?=
 =?utf-8?B?K29vbkJvRThVTDcrQ3UwU0hZN1NqMlhlS3ZraFYrNDhDT1FVNjFGTFFRVjkv?=
 =?utf-8?B?RkpVRjFNd2M5bXVBQjhOR2RjNFIwSGQwOEtLRFMxV1hzL2FMa3MzTFdSQ3dQ?=
 =?utf-8?B?UzNOYnB6Z1orbVB0Q3dhK2crTlFTWVV4QTdxd0tybHdDMjdUTEFDOGRkcHNE?=
 =?utf-8?B?ZnJmclpsZERCMkszMkE5N2ZYYWVWWmx2bHpqZEd6SG9NbVVZSjNmM01VVkly?=
 =?utf-8?B?WUpibGllWTQ4VFJtNnJJTVQ5SlUySVBLaTVIVllZL2h4cjFneWE5YVREcXNB?=
 =?utf-8?B?N2ErWElSSWFtdW1LMmJ4K3JsQUtITjJLMjgyNEFzbzVDUjE5cmRQTngyZXdP?=
 =?utf-8?B?VFVwL2xjanc1S01ta0wxQ3A5blBacVNSMHdVZnJGYnY4Ykp1Y3JKdjVEMG44?=
 =?utf-8?B?MU5IckNKbkZUNzdvaUlIeUZxajkrOVVCUzJzMlY3YUM2Y3V4eE43T0UvK0VM?=
 =?utf-8?B?L2k4M1NDTk9mdWY3R3A0ZDBXVHREVXJTQmJva1V0aU44Q25VaGpiMmk2bTY5?=
 =?utf-8?B?WHNxWkcwcDNxRmhyWnNGSGNWL0ZHRzEydWlSQXJ1VkN1U05mVkR5a1E0K1gz?=
 =?utf-8?B?MVdobVJQR3oweUFtem83WHd2OVI4eFIvRUhES0gyNUY4aVJrZ2p0TmQrUy9L?=
 =?utf-8?B?V2lOOFY3dVd3eCtPM3JEUjMwbE1yRFRocmE2WlEvMjZ0Qk1XaTBkKzh1QU1Z?=
 =?utf-8?B?b1JOajJWNU5WQWhweUx0M2N5VTBoM2kvNWhCSExOV05NUElkdkRScXZTYnYw?=
 =?utf-8?B?bThXbFZWb1NnclY1aVVpQVMwamxpTjBvZVgwOGtVQXVRYXl4VjgyZ3I0VHFs?=
 =?utf-8?B?eWVsUGs3dUViWEJ5eWNxZmEzN1BkNnpPcjcwZUpsdE13TjNCS0xwdWt0K0J3?=
 =?utf-8?B?NFJiTWhvNndjNkg2ODl2bVExLzN1NStnZ2VlY3FjOW1rMU5jR1J1dHoxM2Jt?=
 =?utf-8?B?cTY4OTFvK3VJYkVLdFU1bk9kVUFDWjhzb3Job3lCcWRPS1dZYWRwNFJ0SkNO?=
 =?utf-8?B?RGZQdDhQSTF2TmpteUNJYlRMZnBIU3ZFTjV3cWFVYlFhRDJ2QnI4c2tzaUF5?=
 =?utf-8?B?YW5zbDJONWZUdXEzVmFYR0hqZGpkVjd5cnlVSk9GY01XSmRNb1dkdzNvSThU?=
 =?utf-8?B?WVA0TVp6UHNqNTBpTzBXb2tUOFNVWVRYaTVyYlRCOUxWK0w3WWFkL1VzZjA1?=
 =?utf-8?B?U0E9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <1431300A34188B41B042AD9A91B9244C@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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 763c30f8-6e3b-4f41-b8f6-08ddde551ffc
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Aug 2025 12:45:34.6204
 (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: rsgOEE+xFov+df9nArbsYhyx3n0SNtmDFOO1VW1RHxavXN0GmRi2MMImYdK0RrdSrTJbT2PZXpXgRhfqNyS60I7OZ2HTBRUYs9e8Ucn3WaQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7735

DQoNCk9uIDgvMTQvMjUgMTE6MjMsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAxMi4wOC4yMDI1
IDIxOjE3LCBEbXl0cm8gUHJva29wY2h1azEgd3JvdGU6DQo+PiBNSVNSQSBDIFJ1bGUgMi4xIHN0
YXRlczogIkEgcHJvamVjdCBzaGFsbCBub3QgY29udGFpbiB1bnJlYWNoYWJsZSBjb2RlLiINCj4+
DQo+PiBGdW5jdGlvbiBgUHJpbnRFcnJNZXNnKGNvbnN0IENIQVIxNiosIEVGSV9TVEFUVVMpYCBp
c24ndCBpbnRlbmRlZCB0byByZXR1cm4NCj4+IGNvbnRyb2wgdG8gaXRzIGNhbGxlci4gQXQgdGhl
IGVuZCwgaXQgY2FsbHMgYGJsZXhpdCgpYCwgd2hpY2gsIGluIHR1cm4sDQo+PiBpbnZva2VzIHRo
ZSBgX19idWlsdGluX3VucmVhY2hhYmxlKClgIGZ1bmN0aW9uLCBtYWtpbmcgc3Vic2VxdWVudCBy
ZXR1cm4NCj4+IHN0YXRlbWVudHMgaW4gYHJlYWRfZmlsZSgpYCB1bnJlYWNoYWJsZToNCj4+DQo+
PiAgICAgIFByaW50RXJyTWVzZyhuYW1lLCByZXQpOw0KPj4gICAgICAvKiBub3QgcmVhY2hlZCAq
Lw0KPj4gICAgICByZXR1cm4gZmFsc2U7DQo+Pg0KPj4gVGhpcyBhbHNvIGNhdXNlcyB1bnJlYWNo
YWJpbGl0eSBvZiB0aGUgY29kZSBtZWFudCB0byBoYW5kbGUgYHJlYWRfZmlsZSgpYA0KPj4gZXJy
b3JzLCBhcyBzZWVuIGluIHRoZXNlIGV4YW1wbGVzOg0KPj4NCj4+IEluIHRoaXMgYmxvY2s6DQo+
PiAgICAgIGlmICggcmVhZF9maWxlKGRpcl9oYW5kbGUsIGZpbGVfbmFtZSwgJmNmZywgTlVMTCkg
KQ0KPj4gICAgICAgICAgYnJlYWs7DQo+PiAgICAgICp0YWlsID0gMDsNCj4+ICAgICAgfQ0KPj4g
ICAgICBpZiAoICF0YWlsICkNCj4+ICAgICAgICAgIGJsZXhpdChMIk5vIGNvbmZpZ3VyYXRpb24g
ZmlsZSBmb3VuZC4iKTsNCj4+DQo+PiBBbmQgaGVyZToNCj4+ICAgICAgZWxzZSBpZiAoICFyZWFk
X2ZpbGUoZGlyX2hhbmRsZSwgY2ZnX2ZpbGVfbmFtZSwgJmNmZywgTlVMTCkgKQ0KPj4gICAgICAg
ICAgYmxleGl0KEwiQ29uZmlndXJhdGlvbiBmaWxlIG5vdCBmb3VuZC4iKTsNCj4+DQo+PiBBbmQg
aGVyZToNCj4+ICAgICAgaWYgKCAhcmVhZF9maWxlKGRpcl9oYW5kbGUsIHMydygmbmFtZSksICZj
ZmcsIE5VTEwpICkNCj4+ICAgICAgew0KPj4gICAgICAgICAgUHJpbnRTdHIoTCJDaGFpbmVkIGNv
bmZpZ3VyYXRpb24gZmlsZSAnIik7DQo+PiAgICAgICAgICBQcmludFN0cihuYW1lLncpOw0KPj4g
ICAgICAgICAgZWZpX2JzLT5GcmVlUG9vbChuYW1lLncpOw0KPj4gICAgICAgICAgYmxleGl0KEwi
J25vdCBmb3VuZC4iKTsNCj4+ICAgICAgfQ0KPj4NCj4+IFRoZSBpc3N1ZSBhcmlzZXMgYmVjYXVz
ZSB3aGVuIGFuIGVycm9yIG9jY3VycyBpbnNpZGUgYHJlYWRfZmlsZSgpYCwgaXQgY2FsbHMNCj4+
IGBQcmludEVyck1lc2coKWAgYW5kIGRvZXMgbm90IHJldHVybiB0byB0aGUgY2FsbGVyLg0KPj4N
Cj4+IFRvIGFkZHJlc3MgdGhpcyB0aGUgZm9sbG93aW5nIGNoYW5nZXMgYXJlIGFwcGxpZWQ6DQo+
PiAxLiBSZW1vdmUgYFByaW50RXJyTWVzZyhuYW1lLCByZXQpO2AgZnJvbSB0aGUgYHJlYWRfZmls
ZSgpYCBmdW5jdGlvbi4NCj4+IDIuIFJlcGxhY2VkIGl0IHdpdGggYFByaW50RXJyKG5hbWUpO2As
IHdoaWNoIHByaW50cyB0aGUgZmlsZSBuYW1lIGFuZCByZXR1cm5zDQo+PiAgICAgY29udHJvbCB0
byB0aGUgY2FsbGVyLg0KPj4gMy4gQ2hhbmdlIHRoZSBgcmVhZF9maWxlKClgIHJldHVybiB0eXBl
IGZyb20gYGJvb2xgIHRvIGBFRklfU1RBVFVTYCwgYWxsb3dpbmcNCj4+ICAgICBmaWxlIG9wZXJh
dGlvbiByZXN1bHQgY29kZXMgdG8gYmUgcmV0dXJuZWQgdG8gdGhlIGNhbGxlci4NCj4+IDQuIFBy
b3Blcmx5IGhhbmRsZSBlcnJvciBjb2RlcyByZXR1cm5lZCBmcm9tIHRoZSBgcmVhZF9maWxlKClg
IGZ1bmN0aW9uIGluIHRoZQ0KPj4gICAgIHJlbGV2YW50IGFyZWFzIG9mIHRoZSBjb2RlLg0KPj4g
NS4gUmVwbGFjZSBgYmxleGl0KClgIGNhbGxzIHdpdGggaW5mb3JtYXRpdmUgZXJyb3IgY29kZXMg
dXNpbmcgYFByaW50RXJyTWVzZygpYA0KPj4gICAgIHdoZXJlIGFwcHJvcHJpYXRlLg0KPj4NCj4+
IFNpZ25lZC1vZmYtYnk6IERteXRybyBQcm9rb3BjaHVrIDxkbXl0cm9fcHJva29wY2h1azFAZXBh
bS5jb20+DQo+PiAtLS0NCj4+IFRlc3QgQ0kgcGlwZWxpbmU6DQo+PiBodHRwczovL2dpdGxhYi5j
b20veGVuLXByb2plY3QvcGVvcGxlL2RpbWFwcmtwNGsveGVuLy0vcGlwZWxpbmVzLzE5ODA1OTAx
MTgNCj4+IC0tLQ0KPj4gICB4ZW4vY29tbW9uL2VmaS9ib290LmMgfCA1NyArKysrKysrKysrKysr
KysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tDQo+PiAgIDEgZmlsZSBjaGFuZ2VkLCA0MCBp
bnNlcnRpb25zKCspLCAxNyBkZWxldGlvbnMoLSkNCj4+DQo+PiBkaWZmIC0tZ2l0IGEveGVuL2Nv
bW1vbi9lZmkvYm9vdC5jIGIveGVuL2NvbW1vbi9lZmkvYm9vdC5jDQo+PiBpbmRleCA1MGZmMWQx
YmQyLi5kZGJhZmIyZjljIDEwMDY0NA0KPj4gLS0tIGEveGVuL2NvbW1vbi9lZmkvYm9vdC5jDQo+
PiArKysgYi94ZW4vY29tbW9uL2VmaS9ib290LmMNCj4+IEBAIC0xMzIsNyArMTMyLDcgQEAgc3Ry
dWN0IGZpbGUgew0KPj4gICAgICAgfTsNCj4+ICAgfTsNCj4+DQo+PiAtc3RhdGljIGJvb2wgcmVh
ZF9maWxlKEVGSV9GSUxFX0hBTkRMRSBkaXJfaGFuZGxlLCBDSEFSMTYgKm5hbWUsDQo+PiArc3Rh
dGljIEVGSV9TVEFUVVMgcmVhZF9maWxlKEVGSV9GSUxFX0hBTkRMRSBkaXJfaGFuZGxlLCBDSEFS
MTYgKm5hbWUsDQo+PiAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZmlsZSAqZmlsZSwg
Y29uc3QgY2hhciAqb3B0aW9ucyk7DQo+PiAgIHN0YXRpYyBib29sIHJlYWRfc2VjdGlvbihjb25z
dCBFRklfTE9BREVEX0lNQUdFICppbWFnZSwgY29uc3QgQ0hBUjE2ICpuYW1lLA0KPj4gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgKm9wdGlv
bnMpOw0KPj4gQEAgLTc4Miw3ICs3ODIsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgaGFuZGxlX2Zp
bGVfaW5mbyhjb25zdCBDSEFSMTYgKm5hbWUsDQo+PiAgICAgICBlZmlfYXJjaF9oYW5kbGVfbW9k
dWxlKGZpbGUsIG5hbWUsIG9wdGlvbnMpOw0KPj4gICB9DQo+Pg0KPj4gLXN0YXRpYyBib29sIF9f
aW5pdCByZWFkX2ZpbGUoRUZJX0ZJTEVfSEFORExFIGRpcl9oYW5kbGUsIENIQVIxNiAqbmFtZSwN
Cj4+ICtzdGF0aWMgRUZJX1NUQVRVUyBfX2luaXQgcmVhZF9maWxlKEVGSV9GSUxFX0hBTkRMRSBk
aXJfaGFuZGxlLCBDSEFSMTYgKm5hbWUsDQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgKm9wdGlvbnMpDQo+PiAgIHsNCj4+ICAg
ICAgIEVGSV9GSUxFX0hBTkRMRSBGaWxlSGFuZGxlID0gTlVMTDsNCj4+IEBAIC03OTEsNyArNzkx
LDcgQEAgc3RhdGljIGJvb2wgX19pbml0IHJlYWRfZmlsZShFRklfRklMRV9IQU5ETEUgZGlyX2hh
bmRsZSwgQ0hBUjE2ICpuYW1lLA0KPj4gICAgICAgY29uc3QgQ0hBUjE2ICp3aGF0ID0gTlVMTDsN
Cj4+DQo+PiAgICAgICBpZiAoICFuYW1lICkNCj4+IC0gICAgICAgIFByaW50RXJyTWVzZyhMIk5v
IGZpbGVuYW1lIiwgRUZJX09VVF9PRl9SRVNPVVJDRVMpOw0KPj4gKyAgICAgICAgcmV0dXJuIEVG
SV9JTlZBTElEX1BBUkFNRVRFUjsNCj4NCj4gV2h5IHRoZSBjaGFuZ2UgaW4gZXJyb3IgY29kZT8g
RUZJX09VVF9PRl9SRVNPVVJDRVMoKSB3YXMgdXNlZCBkZWxpYmVyYXRlbHkgZm9yDQo+IGNhc2Vz
IHdoZXJlIHRoZSByZXN1bHQgb2YgczJ3KCkgaXMgcGFzc2VkIGRpcmVjdGx5IGludG8gaGVyZS4N
Cj4NCj4gQmV0d2VlbiB0aGlzIGh1bmsgYW5kIC4uLg0KPg0KPj4gQEAgLTg0Miw3ICs4NDIsNyBA
QCBzdGF0aWMgYm9vbCBfX2luaXQgcmVhZF9maWxlKEVGSV9GSUxFX0hBTkRMRSBkaXJfaGFuZGxl
LCBDSEFSMTYgKm5hbWUsDQo+Pg0KPj4gICAgICAgZWZpX2FyY2hfZmx1c2hfZGNhY2hlX2FyZWEo
ZmlsZS0+cHRyLCBmaWxlLT5zaXplKTsNCj4+DQo+PiAtICAgIHJldHVybiB0cnVlOw0KPj4gKyAg
ICByZXR1cm4gcmV0Ow0KPj4NCj4+ICAgIGZhaWw6DQo+PiAgICAgICBpZiAoIEZpbGVIYW5kbGUg
KQ0KPg0KPiAuLi4gdGhpcyBvbmUgdGhlcmUncyBhdCBsZWFzdCBvbmUgInJldHVybiBmYWxzZSIg
d2hpY2ggeW91IGxlYXZlIHVudG91Y2hlZCwgdGh1cw0KPiB3cm9uZ2x5IHJlcG9ydGluZyBFRklf
U1VDQ0VTUyBub3cgdG8gdGhlIGNhbGxlci4NCj4NCj4+IEBAIC04NTAsMTAgKzg1MCw5IEBAIHN0
YXRpYyBib29sIF9faW5pdCByZWFkX2ZpbGUoRUZJX0ZJTEVfSEFORExFIGRpcl9oYW5kbGUsIENI
QVIxNiAqbmFtZSwNCj4+DQo+PiAgICAgICBQcmludEVycih3aGF0KTsNCj4+ICAgICAgIFByaW50
RXJyKEwiIGZhaWxlZCBmb3IgIik7DQo+PiAtICAgIFByaW50RXJyTWVzZyhuYW1lLCByZXQpOw0K
Pj4gKyAgICBQcmludEVycihuYW1lKTsNCj4+DQo+PiAtICAgIC8qIG5vdCByZWFjaGVkICovDQo+
PiAtICAgIHJldHVybiBmYWxzZTsNCj4+ICsgICAgcmV0dXJuIHJldDsNCj4+ICAgfQ0KPg0KPiBX
aXRoIHRoZSBjb21tZW50IGhlcmUgLSBwb3NzaWJseSBhZGp1c3RlZCB0byBiZWNvbWUgYSBTQUYg
b25lIC0gYWxsIHNob3VsZCBiZQ0KPiBmaW5lIHdpdGggbm8gb3RoZXIgY2hhbmdlcz8gQmVjYXVz
ZSBvZiB0aGUgb3RoZXIgInJldHVybiBmYWxzZSIgY2FsbGVycyBzaW1wbHkNCj4gY2FuJ3QgYXNz
dW1lIHRoZSBmdW5jdGlvbiB3b3VsZCBuZXZlciBpbmRpY2F0ZSBmYWlsdXJlIGJhY2sgdG8gdGhl
bS4gKE5ldw0KPiAicmV0dXJuIGZhbHNlIiBjb3VsZCBpbiBwcmluY2lwbGUgYWxzbyBhcHBlYXIs
IHdoaWNoIGlzIHdoeSBJIHRoaW5rIHRoZSBiYXNlDQo+IHN0cnVjdHVyZSB3YW50cyBrZWVwaW5n
IGFzIGlzLCBpbmNsdWRpbmcgaW4gdGhlIGNhbGxlcnMuKQ0KPg0KPiBKYW4NCg0KWWVzLCBwcm9i
YWJseSB0aGUgZGV2aWF0aW9uIGlzIGJldHRlciBpbiBzdWNoIGNhc2UsIHRoYXQgY2hhbmdpbmcg
Y29kZQ0KYW5kIGludHJvZHVjaW5nIG5ldyBlcnJvcnMuDQoNCkRteXRyby4NCg==


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 12:56:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 12:56:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086042.1444272 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unzPU-0005kf-21; Mon, 18 Aug 2025 12:56:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086042.1444272; Mon, 18 Aug 2025 12:56: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 1unzPT-0005kY-S9; Mon, 18 Aug 2025 12:56:23 +0000
Received: by outflank-mailman (input) for mailman id 1086042;
 Mon, 18 Aug 2025 12:56:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=czvt=26=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1unzPS-0005kS-1W
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 12:56:22 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bc35683b-7c32-11f0-a32a-13f23c93f187;
 Mon, 18 Aug 2025 14:56:20 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by VI1PR03MB9899.eurprd03.prod.outlook.com (2603:10a6:800:1c1::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.24; Mon, 18 Aug
 2025 12:56:15 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9031.023; Mon, 18 Aug 2025
 12:56: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>
X-Inumbo-ID: bc35683b-7c32-11f0-a32a-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YJXbSCYKQIpgsgx0Ragt9fmXwpAqyrq3e5Q6nqzSA5mdTp9gZn4Vab8XbDHD4R3Z7Uj89JaY7BzrFXu/5T0SAEDK7l2JEMgNZRYAFCrvFa2HLnPW2rkqSTPShYlcRvGYRjp/qO0GO1tQ/GHyq8AS94iH1MBy9x45Ttm3mNLcBRO5cCz7Fto3VDDXOXDMzWSzTzarSK9mjBGxYwiq/8k5rNPhOAQ5x949wU5x/p0sGK900xz44tEv14X/n6U1yTnKmPyE896AWYeDBoClyEpBxsqCTS+AqM78B1PBgTnYP43N4mgjVERF66ixxmFrdwH28irkUq1fVHgb+ol3XbDn6g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=h3PkTjPlHqleawYudLmsGxHkeJOc73PULHhrG4Irv20=;
 b=oURakob7QP7YDn5LWKoCUlddM2qJcYdqCi4oM0XLSgtFH5gC5p/DisKb8WIzV5pT62d9M2tnbXn2RXILZA8i/Uqn7Yd7D3JUQlhyjAQz54t+k0i+DvLkNB/fMfTveyYanU+vOw1B1Y1HfqyvhGCjUe92fhknWuONtr46gEw7fKJdivJyWWSGA65gxuvYGiBn2PMxCgLDz1y4JSh8KHR3vEOxYQcBgVw0jvQRzCShn3x7Um/jWuoEsmOBgJueKcpnQxfHw8FmGGeteT7t2l3/ERQ2T41pSHOzt6WWoLbsk4AtNg3ry7+iDb86+ztHEZLUbCvYgiDjDVsBQ8qzl7vYhQ==
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=h3PkTjPlHqleawYudLmsGxHkeJOc73PULHhrG4Irv20=;
 b=B65pXLVxBjslTYur1kfr/af8P9jo9a87SyG3bkUgSSLFQH2jr5wuHla9N/UYeILElm6PapIRWxDx1xGLQgFUgtesWA8BIOxItLspIw3rd2QWeIXtWlcY/s6Zj/b7SEY7jl680Q6ryYW6n/EauUW1TKRZOcX9/hQN5yQvKf4SC8mAJtKhTASE0HHyGZUwVFU90zC3tag97+SmkjlgG3myQo9TtXwhH7C1aP4YP9A+tCSkweYkxzJeQ0JIjoowUqHTnBAEcbg6b89diPOcP1Tkqb6XOHE5xICVtFrUhIeue8fngk/Xbj2UO6HTw1XcryE9vzsFZp69iteRK6+t0e/H+w==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Stefano Stabellini <sstabellini@kernel.org>
CC: Nicola Vetrini <nicola.vetrini@bugseng.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Jan
 Beulich <jbeulich@suse.com>
Subject: Re: [RFC] Next steps for MISRA C Rule 17.7 in XEN
Thread-Topic: [RFC] Next steps for MISRA C Rule 17.7 in XEN
Thread-Index: AQHcA9WdQBGGn1ngVkiEBTFhozxERLRSJHeAgBZS0gA=
Date: Mon, 18 Aug 2025 12:56:14 +0000
Message-ID: <c3bb91c6-ca74-4fab-8ca8-cd5ffed3f954@epam.com>
References: <6d622813-1617-4af3-876e-52a551518f68@epam.com>
 <9d71cc11-884d-4924-9de9-e3396801158a@suse.com>
In-Reply-To: <9d71cc11-884d-4924-9de9-e3396801158a@suse.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV2PR03MB9572:EE_|VI1PR03MB9899:EE_
x-ms-office365-filtering-correlation-id: a5259a45-d788-45f2-049c-08ddde569da6
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|42112799006|1800799024|376014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?S2ZZaVVQOTAyWkxlSTRBMDd6NDhBQVZoMjhOM0ZaVGViRjJjOWpRK1hzNE5Y?=
 =?utf-8?B?anpSbHBGaWZpc203L2oxM0FlNnZjMVNtNlRLbGFmNHExQTJBWEoxKzhLVUg4?=
 =?utf-8?B?aUgxNXlGbGFJWWN1dHZ0WngxV1F6bHE1LzlKM042QXAxM0NaZmQxSm8xaUZk?=
 =?utf-8?B?d1JQZXhlaGZyd01Ud0N3WmNLbnJGbEo1Q1h0VkUrcmM2dGs1VW9ibDJ6dmdp?=
 =?utf-8?B?TWduNGRwV1NGYnM1cHR6bEFNN2FGeGlnRVM1azFzM0hLeWV0V25oaXZGMTNW?=
 =?utf-8?B?Q2FNUHREVVgzN3BkL2tWWXYyTDhjY1VIVE9tbmhScTFvSUJHdDUvRlRVVWJK?=
 =?utf-8?B?RkNyZU5hN2FrbHpTNXkzK0xISkR3YzR5UWVlS0VFSlE5T2pEZVNLcXNKVVND?=
 =?utf-8?B?aHQzK29QWlpLNkU0T1E3U3hsMFA5bmZOYWxyUmQ3b09uWWM4d2d1YUIwNkhl?=
 =?utf-8?B?dkZVWGNNUzNDb3NLcUdjWHhzMTh0RTJjTkRYZUFZbEdCSVpFWndCRk84R0Vw?=
 =?utf-8?B?S3ZrRjZHTTBDS0pEVWtLNWp0Z1JnMGZjMzdnWU9sWlpnU2V5TU5VTVl0MURQ?=
 =?utf-8?B?NXFrZG40RjZpMjNDR3RGbGZqbHdIQ3VLajcxNFp6UDlCK0hxU1QvTmZkdDdv?=
 =?utf-8?B?R3lnSlFwcEZ0a2hLM3I2dzRFbkJscmh3UXoxT2luM2xOeFI5dHBUa2dZUWFJ?=
 =?utf-8?B?V1ptR1JQVis1V0RLaGFDNVdjZlZmYlJOZXBpSXU0TGV2YVNZUlVVM3JWazFj?=
 =?utf-8?B?Tjdla3hhOTJTcWRVeVVjZ0RDSHZvZm5JVklaZE1nTG1yY1I4U0xLdnI0Z0Jv?=
 =?utf-8?B?STFRdnZZMW5YQTA4bHJUcmt2bnhUcm1lRFVDWXF3T2IwbUFlN2hUZWl1Qlpk?=
 =?utf-8?B?ZlFIRzF4MXdBV1Z6MERLSERqVjZIZVN6WENTc2luRWFLUkZpRkVZOGZpbDNJ?=
 =?utf-8?B?VlUzNzA1RDgvbGpGWjBpREZUbUNVMFpQc2dZdk56Wm80MHdnejkxOGpOR1cx?=
 =?utf-8?B?OXRmREwxSGN4NEJNd3k4NnE2ZVN0cFZyV0xGVGlhNm1ValZWVmdoZHc1dnB2?=
 =?utf-8?B?dHJ1RW1SSjhIQ1JER0RCNGFJYkt6NVYzcEIzQ2lpNy9wWWExMWR6b0I1dE9Q?=
 =?utf-8?B?UGpIbDBVbkJWTzVOTG1CSkI2UEVYV08ySGVLU1ZzZzhsMUE2akZibGQxWm5j?=
 =?utf-8?B?L0REcmJHQUFGMTZ5UzNHUHczRHZRZkZFTHpqREx6ZFNXZm5BRUJjSHNyRTV3?=
 =?utf-8?B?NXJlOGFTcXI0ekR5a2FmS2d6UU5VTmx0UzBiQUNxUmFTU09SQmJzTEdYdkFm?=
 =?utf-8?B?S094emJjSG1Fa1Rud1FZUllEZUJ3Y0YwZHdQeG02U2ZOTkZmdDNma25QYWd1?=
 =?utf-8?B?OHlOMk5GM0h1Q24yYmpIcUVzMFYxTTVXcHNERHNTRFhzdjlzYThuMnlwWTNk?=
 =?utf-8?B?cjJQeml5VUtWVWV3MFVXbktoVE5MV1BIQ1hzRUNoQzUzN2FLNFVGcFRYZjVE?=
 =?utf-8?B?QjR1KzB5YWU0N2dLMDhCNzFnV2labzZyZGM2MXVhZ1VieUE2WUM5TFVabXEy?=
 =?utf-8?B?K0FHZHpPNzM1TjVZanRsL1pjcDdmOVhudXVROE5BWFAvcE9lU0NDdnE0M3ZP?=
 =?utf-8?B?cU5BUUFDcFFrdUFPVkhwT0hUNjhFWFhack9GWUpjOTU0cGl1Y052WjVtVDNp?=
 =?utf-8?B?akF6eGhkMHdnc0VkR0VJQnRhUjZZRUxUQWZtUVVNemN2Uk8rYlFVQkRmd1pv?=
 =?utf-8?B?NW9iMWhQU0ZPRy9mVk1KcDlCY21oRG1pdzJweU0rYk45OGVsczJJY29OY3lQ?=
 =?utf-8?B?dWFmSjJYYm1VaXE3MjlpajExQ21wZ1lZWU44UGJ1cldvcnV6bncvc29sQ2JB?=
 =?utf-8?B?c0N2YXplQXJKNFFyek0xdVoxN2VhcHVHODZUSzc5UTk4Y25qMkZlZ0J6WXEz?=
 =?utf-8?B?dTFUOGV4d01aaWJjWEFoODFFMWhFM0toaXJIalJjbFdiRkkzZjNJRlcvNE0v?=
 =?utf-8?B?OGNLLzA2MlJ3PT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(42112799006)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?Vi9sYldLN0t1ckRRUnlkVXV5QUc3TkRWZDd5Vlo4Qm5wVU91Qk13bGt1L0RO?=
 =?utf-8?B?Y2hyQXNhaTF0NG80K3h2bitUa0JHdU1KUnVOUkp1bFJ3R2FGS3d3TUpqK05P?=
 =?utf-8?B?K2pEVVp0U2VuN3VPbnJGVXhRenYrL2wwM0FDYnhPQTVEVWZDR0J6VU5YN1ZC?=
 =?utf-8?B?UVZ2c3JFbDFLaUZpbVUwL2FLa3ZLVUR1MFM0UkpzaUhzYUdpa2VHWkhIQkI4?=
 =?utf-8?B?YTBld1YyNGFyaUwxaUF2QXBBQXlyNzBJT0JQOHZvWi9hVzk0V0tRQU1MU00v?=
 =?utf-8?B?TE9HSVM4T1MzdG1uZmUrbkNjaDYvYmR6Ymp1dTNtVE1QZDlLRHFGbzJVU3Nq?=
 =?utf-8?B?RXFuVGF6NGRIbHNQQmtDMW5ySVhrZkRqQzhtVUs0c1hucW9RZUpka01uWnYw?=
 =?utf-8?B?VU9NNmF3QWdCSGZWODZPaE1hRzM0eldWSG1uN1RGUnpNcnM5WjlvUzAzL3BI?=
 =?utf-8?B?dU01dnJONzlkMnZMWUVweFZRT2t0RWtoR2NXMHM1V0JwV0xzQm8zTUFQNk1h?=
 =?utf-8?B?RFJwQm1KSzNsZVZTVVgwenlMWFN5ZmkwN3BDMkUzMlJZYm12OGZ6OFF6ODdz?=
 =?utf-8?B?ckRTeVFJZGpSK3dYOXFBTGVFbld0bXRZOGYvaEJxcTZaMkRlVjFVeDdNRHdD?=
 =?utf-8?B?ZFVSeGs2ZVJlbmZrdTJtR09GUWlzaWZLWDhYMzBkemVrTVJGUS95bWl3amwx?=
 =?utf-8?B?Y2E1ZmpTUlVRU3RhMk9sMjJvTm44TTQ1UDRIK2NvbjJnSFovWkxpSUxDUFA2?=
 =?utf-8?B?VE1zRFdFVFd5cW9wODloM1pPMTZxTkE3QzRReVhaNnFHRkM5ZW5vbVkxVWJC?=
 =?utf-8?B?VEJhWXhTSVlqOHNPd1E0WXU0S2h0R0JjMENKN3k5VVNmNnBGTkFXN2E3Sys0?=
 =?utf-8?B?b2FUQWJkS3MxK2dEZzZUUUFlQzUwcGlUZjZBQmYzOXNPRmlFQldiRHUyT3RR?=
 =?utf-8?B?K3N3MUo4U0JTN04yKzRwcFhKQnBKbGp3dWc3R1JnOGFTNEY2YWFLWlpmOEhY?=
 =?utf-8?B?MWxuWklwOU9qKzNsRjRveVNCbUpXMmdjS2RQTUEvVTJQVGhub1FTNDMyMHJw?=
 =?utf-8?B?MHVudVZxRGd4YnArNy9SWjZGbnNnSG1MNUJoWnE1SmoxUHhhaG00RHJFT1Vh?=
 =?utf-8?B?UVFHTlpvSUNCbXBoWTZOeGtYc0dlTHI2WVp4bng0NXhWT0VXSDc0d2dCS3JL?=
 =?utf-8?B?VXJNS3g0NFJYNDBCemF5RlNEalNEdEk5azVzczZMR1E3dzBsdXVPSGpZNnhm?=
 =?utf-8?B?QjU5bDcrOEpXVkNKTGJvZEdwS0xrbDZMTGJ6ZGk0MkVTMkxnVkUrZXVSUVVo?=
 =?utf-8?B?andNM2o4am5FalNUUExINmxGR0pKbW84cEdFOGt5QmczN1d3bGdDeTkyYWNN?=
 =?utf-8?B?RHN0K1FLWU9ZZThsa2FjTG4rdnBJaytNSEROb2diWDI0ZmhFSWh4SGl2UEtU?=
 =?utf-8?B?ZVk0bnRROVgwUFMwMnNoS2RmSHdrbjdwMHA4cm5aM1J4b013cDFZR20vV3NB?=
 =?utf-8?B?a0w0N2RyQzJGU0lFUFk3dkhDTTA5VnA1ZlhHc3Q4UkttWmJTUnRFZTNaNENo?=
 =?utf-8?B?V21UY2RORXNSK0JURVhCdjBZK0d1d01CUnNQbUJpWi9XZkhMaDJveEdSUUFu?=
 =?utf-8?B?YkZ6cFo0bThKWmtUN2F5RTgwUlJUeTRLUEZUc045V01XT1ZQS0x6ZU9lQkdi?=
 =?utf-8?B?TmRHVTNGUU1neVJ2SzFOOFZ6bTRsVHdFZTlXNm1PeEJzLzhGK0ZpVmJrek01?=
 =?utf-8?B?UzZSb3dnSzVyMUdrcmVRdGwvYk9oWXJMbXRJUzJmTDJtS0xSY1lhVTRSc3JZ?=
 =?utf-8?B?QU9jRmdVWU9zRS9lVzEzcDlBUzNHc1B1Z00zK0tPQmh1NUh2OEpMWGZJUmhk?=
 =?utf-8?B?WnJIQUxSUHNIeDNobUNDa1JZM1dVSmFIUUxCUDZBS1Bsc2pJMTZRZWdHYWVr?=
 =?utf-8?B?TUpaaWZ3MGN0ZDhnRGFOWWtFRHRRdFdYbklsVFpweTlVYW9Ld1dvRnU4ajNX?=
 =?utf-8?B?L29JdldLSngybW1vNEZUOW11amtPUFR6MXIveXA1OGFiZkFpemhQQVByZHpV?=
 =?utf-8?B?SGowQjJiNklUQXo4Wkd6U0FVWjRxWVFxR0ZwR29RUzVtNVhDdXQxU1MxWW1O?=
 =?utf-8?B?eURDYitBbU5xck5tWGZTYllIZlg3U29vNE4zVVNQRlBiQVRLZlJkK0pSR1U4?=
 =?utf-8?B?eFE9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <CA56BF02F477A748B5813B233930D9A9@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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a5259a45-d788-45f2-049c-08ddde569da6
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Aug 2025 12:56:14.9453
 (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: GIZJgT5ajlqJjqQ9ZWSSL8cfwQ6U0w9gt+nfMtU088Lm6omnoYFTOUZgj0dNm44aGEt//8sI+rFJmGNN3fVjHD5xp2ufS3getLy6x65ds2M=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR03MB9899

DQoNCk9uIDgvNC8yNSAxMTowMiwgSmFuIEJldWxpY2ggd3JvdGU6DQo+IE9uIDAyLjA4LjIwMjUg
MTk6NDgsIERteXRybyBQcm9rb3BjaHVrMSB3cm90ZToNCj4+IFRoZXJlIGFyZSBhIGxvdCBvZiBN
SVNSQSBDIFIxNy43IHZpb2xhdGlvbnMgaW4gdGhlIFhFTi4NCj4+IFRoaXMgcnVsZSBzdGF0ZXM6
ICJUaGUgdmFsdWUgcmV0dXJuZWQgYnkgYSBmdW5jdGlvbiBoYXZpbmcgbm9uLXZvaWQNCj4+IHJl
dHVybiB0eXBlIHNoYWxsIGJlIHVzZWQiLg0KPj4NCj4+IEFjdHVhbGx5LCBuZWVkIHRvIGRlY2lk
ZSBob3cgdG8gZGVhbCB3aXRoIHRoZXNlIHZpb2xhdGlvbnMuDQo+PiBRdWljayBhbmFseXplIHNo
b3duIHRoYXQgdGhlcmUgYXJlIGRpZmZlcmVudCBjYXNlcyBpbiBYRU4gY29kZSBiYXNlLg0KPiAN
Cj4gTG9uZyBhZ28sIHdoZW4gd2UgZGlzY3Vzc2VkIHRoZSBydWxlcyBpbiBhIG1haW5seSBhYnN0
cmFjdCB3YXksIHRoZXJlIGFscmVhZHkNCj4gd2FzIHF1aXRlIGEgYml0IG9mIGRpc2N1c3Npb24g
YXJvdW5kIHRoaXMuIFN0ZWZhbm8gLSBJIHdvbmRlciBpZiB5b3UgaGFkDQo+IHRha2VuIChhbmQg
aGF2ZSBrZXB0KSBub3RlcyBiYWNrIGF0IHRoZSB0aW1lPw0KPiANCj4gSmFuDQoNCkhpIFN0ZWZh
bm8uDQoNClRoaXMgaXMgYSBraW5kIHJlbWluZGVyLg0KVGhhbmsgeW91Lg==


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 12:58:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 12:58:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086054.1444281 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unzRk-0006KQ-Ek; Mon, 18 Aug 2025 12:58:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086054.1444281; Mon, 18 Aug 2025 12: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 1unzRk-0006KJ-Br; Mon, 18 Aug 2025 12:58:44 +0000
Received: by outflank-mailman (input) for mailman id 1086054;
 Mon, 18 Aug 2025 12:58:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=q+DX=26=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1unzRj-0006Jx-6y
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 12:58:43 +0000
Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com
 [2a00:1450:4864:20::62a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0ba67cb3-7c33-11f0-b898-0df219b8e170;
 Mon, 18 Aug 2025 14:58:33 +0200 (CEST)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-afcb7a0550cso602307966b.2
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 05:58: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
 a640c23a62f3a-afcdd016bbcsm783285366b.95.2025.08.18.05.58.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Aug 2025 05:58: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>
X-Inumbo-ID: 0ba67cb3-7c33-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755521912; x=1756126712; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=e0XplaC2g32be+oaChdk+3rntwx9pprbgt7wh2cWP/w=;
        b=f+Yr17qtF+IGZQPFwne9PvxIdDr89EzcIUOzbf0Q522YVU5K6ghOWmSy5/o6NKODMG
         76SApaIdGgEIjt2VpxZ5h0/DjY1LUcpWCEKjKgJJDQ7OIi9awR9o9XKX0WUW3K/pXhsY
         z1/kkch7iyAJRcSbZA/yy8PYalykAiR5r6l2xOgTp5u1sqiKQXl2/n3/+3NoITOQ3YNu
         Fha4maSa0k+wXzBBQWZzUKpjx5WQbvZLkwkZI6TCkGeo4rz8Ezn+Pzfmkb+5+E3rAcjH
         +moK+pK70O3nqwencYrb90DtK+SCCWkcuywwonBLM/JJ/duKxWJ+PEFlSwwo6Zlvx9Ah
         hsaA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755521912; x=1756126712;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=e0XplaC2g32be+oaChdk+3rntwx9pprbgt7wh2cWP/w=;
        b=mzhEwubArqBpPaTT7sJ0CsnRDn5Ha/TgyxCm7wyDb8e8m6wRK7fKoKaWJGousNoYEm
         Z7n22deB5sFAFhmiclirrA34MJhKO9texMuwIMI6ZbnV/Mye9hQajynMd5XNKYhQyMlx
         PAMvBkzzj1ovxEdsf0k8oKWkqBAF2oq0Lqx1+fa+Io3+7hh+kEV+btt3lJa4YXxCGrRd
         how3dYk+ZebPhf1S2A5v907iXK/gYt+e0tDS3r6tbW6eyGzxOiKGEnhp1C/8c5QkSitv
         FJtCO6EsEyy801Q89iy0SunuclSUub+TBxaJgpVCNAS1RN7v167OIMVMr+mlp3d4STNW
         aHkQ==
X-Forwarded-Encrypted: i=1; AJvYcCX9vVmJDzgnQpyofh4oSd5T8rCHRLTAvd8J9RgPWryBg2bYhV8mzzhoxZHPk/cjYTN6ipSxrTYwLHw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwWSra11m664BsvIshrp1aPP+cMLDiH6YrXzCAlvvuCziTXvxG6
	V6CKxE1Enh7aP/PXhQE+QBU8Y8XIDEOBfgLdcEwadpd8LJWv49l8dGeyAnJq8hAPSg==
X-Gm-Gg: ASbGnctJrPO+puY0uAojd1s40PMxMn4iPybgRxaJ2OAbCDfdNNQEZDfiBI0yjzXEoSo
	tsLo+WfgMzwVb2Z9JAB3zsFT0n4iyvfLKbbWRzYqiccqx6GdI1+6Vk8Izicq0TmTK2Xp49vVOXq
	to1ps7w53Qe3Y1oZGk9WqDIe16vBQwaPXku3f98kh9uMbZDis6+KA8SFFnTfS++gQ0XUleusNOY
	S1/FFGpVs7p0YIIo1E3kdNDUcBnRwR6g5T9xq8fg5BEvykaPfzSPIBdpfYcvxZBvGHONMd18MgU
	C3u9CN8T2k9P1fQmlaNMdcnB2befQcexL1dTRJiKQZ1Lxq7RqCBEYzFeOKDMsBaY5I0SU/mMjda
	AXZTq4th1GVAeoC2vg3ATU33v8HWcBz9zA43g9pcpFglatx0sBpR4f9Q+rS9u0t1/PyFPnTiC+g
	syH4qG5Euf+MUX1SNS3CxuEBG5fo76
X-Google-Smtp-Source: AGHT+IHUPCCxe2EUBRNwUOkbU3QYY5Hf/mkO2Y7dXo98MaehpeGmvzEU27WgQawWjdJ3gM+8HqV8tw==
X-Received: by 2002:a17:907:7eaa:b0:ae0:da2f:dcf3 with SMTP id a640c23a62f3a-afcdc3f261emr1098033366b.59.1755521912279;
        Mon, 18 Aug 2025 05:58:32 -0700 (PDT)
Message-ID: <db587dea-f5b9-47cd-9f0e-6d0e1bd8569c@suse.com>
Date: Mon, 18 Aug 2025 14:58:31 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for
 guests
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: Mykola Kvach <mykola_kvach@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1755506449.git.mykola_kvach@epam.com>
 <205b2b354ff1d34d0e9ec4777ca3c94492f6d9d1.1755506449.git.mykola_kvach@epam.com>
 <5bf9b184-70fb-4698-a01e-e8cbcb05935f@suse.com>
 <CAGeoDV-JiD-sdVwGQjYbchD5N57ta8aT4_ZtPb_jNHxe77p5aQ@mail.gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <CAGeoDV-JiD-sdVwGQjYbchD5N57ta8aT4_ZtPb_jNHxe77p5aQ@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18.08.2025 14:43, Mykola Kvach wrote:
> On Mon, Aug 18, 2025 at 1:15â€¯PM Jan Beulich <jbeulich@suse.com> wrote:
>> On 18.08.2025 10:49, Mykola Kvach wrote:
>>> @@ -1360,13 +1357,33 @@ void domain_resume(struct domain *d)
>>>
>>>      for_each_vcpu ( d, v )
>>>      {
>>> +        /*
>>> +         * No need to conditionally clear _VPF_suspended here:
>>> +         * - This bit is only set on Arm64, and only after a successful suspend.
> 
> Note to self: s/Arm64/Arm/g
> 
>>> +         * - domain_resume_nopause() may also be called from paths other than
>>> +         *   the suspend/resume flow, such as "soft-reset" actions (e.g.,
>>> +         *   on_poweroff), as part of the Xenstore control/shutdown protocol.
>>> +         *   These require guest acknowledgement to complete the operation.
>>> +         * So clearing the bit unconditionally is safe.
>>> +         */
>>> +        clear_bit(_VPF_suspended, &v->pause_flags);
>>
>> Seeing that you set this bit for a single vCPU in a domain only, I wonder why
>> it needs to be a per-vCPU flag.
> 
> That's a good question. In earlier versions of this patch series, both I and
> some other contributors used existed fields from the domain structure, such as
> shutdown_code and is_shutting_down, for this purpose. However, I recall that
> in a previous review, this approach was not well received. See:
> https://lore.kernel.org/all/d24be446-af5a-7881-2db4-b25afac3e1f4@citrix.com/
> 
> Technically, there is nothing preventing me from storing this information in
> the domain structure. However, I do not see much benefit in introducing a new
> field to the domain struct when there is already an existing per-vCPU flags
> field that tracks powerdown and pause states. Using one more bit in the
> pause_flags field seems sufficient and avoids further bloating the domain
> structure.

Hmm, yes, I was mis-remembering something here: I thought that much like we
have pause_count both for vCPU-s and for domains, we'd also have pause_flags
for both. Perhaps indeed okay as is then, as far as where to put the flag
goes.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 13:02:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 13:02:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086063.1444290 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unzV5-00081m-SF; Mon, 18 Aug 2025 13:02:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086063.1444290; Mon, 18 Aug 2025 13:02: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 1unzV5-00081f-PV; Mon, 18 Aug 2025 13:02:11 +0000
Received: by outflank-mailman (input) for mailman id 1086063;
 Mon, 18 Aug 2025 13:02:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=q+DX=26=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1unzV4-00081Z-N4
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 13:02:10 +0000
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com
 [2a00:1450:4864:20::636])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8c3aff3e-7c33-11f0-b898-0df219b8e170;
 Mon, 18 Aug 2025 15:02:08 +0200 (CEST)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-afcb732eee6so681623166b.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 06:02: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
 a640c23a62f3a-afcdcfcceb6sm803790266b.66.2025.08.18.06.02.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Aug 2025 06:02: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>
X-Inumbo-ID: 8c3aff3e-7c33-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755522128; x=1756126928; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=5gZaN1otdtnf/cLKufGHm9zZCuHf6Mwpt7F1BJj34Rs=;
        b=QSDqDGsFdRFbJUszie4Trp2WL4lOlE0cbS34VwHrwjeKeHybtoy/yYceHYdKPcyvYI
         8xujiONvR4oienAvYbaVS+j/RHoGGbbkUtTrOW2qNzFNjbGrsR7oMv3g3wQr23iZ+AIV
         nIhbDEUN2ZKsJ+XRm11p9mP2gSVRk9fdZho+S90oPx5w9Zo6uKraMHB0KyfQX0CxVoVU
         JVw4GyoIfgED+pXbmG+RH29hVXpvVNi/WgxD7StnDTMxkGgror16FE8g9quNR1RggeqC
         v6yFMHO70uc0RMlk6U9i6jjhpb3eLyMtJ+ApUpkT3P1LBJminwJICUwzycsPWODARGeS
         m4aQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755522128; x=1756126928;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5gZaN1otdtnf/cLKufGHm9zZCuHf6Mwpt7F1BJj34Rs=;
        b=UOGnwm/5+iRcjWWmdWhu4eZryYpBYgVv/lHPzlq9hWjI7747oCF9R4rqfUTxK2hEpx
         mKIoyvHjYZ9RCvLPyjlZFCroQzKvF12L6fsAZ21MP9CsAx2BvjFBj6P3Ik9NavaQRrUJ
         xIn8xW4yslbiq5eRkc53553vk3Og/YafRyLDoX9lADKCtwmj3ODgSLFhahA9XCCgpIzz
         9wBsozSfRXlK41QJVRcbK3iF40gLj3YfqIwrmggshf3mZnOahm0P7Snqr17o2eRQGp5q
         J2eWtx4Su4mOCBnke2cu9bxK+xEJw4rvBg4JkaeeB9Sj/DSDxdTk2NMyCtunJiRvU+9h
         gFAg==
X-Forwarded-Encrypted: i=1; AJvYcCWck0Vk6Xfbodxm+D+XktmXJ0qgpZaz/FaxUu/qqYpxAgIr3axiJ4g9m99MXNPNkWZNRWY3MRyRntA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxdGPAo5nLf4uoIxfv+cxtRkPfzawY9O5d/lrRJadoIRRm7BlMg
	g+u30Y6Q+eIEmq7M6TZha97Wz+AcNxYNCPGxcywYwsN4/ZkrlfZVRcAspvOyDxluVw==
X-Gm-Gg: ASbGncsiVBM0TkK33Sm9FdaSbWg+WNvr6BR4bmQs+mixB/psIjcmU8ykt2tnVVEv9Tu
	FTv9dvI09zkFO2KZtqI3NqNxLhBSZ9wxGYJfUT3B5RVld7S8fsG3aqP5DlDzK0LeWRWq4iK27+G
	gHupYg0xdYR7rp16H90kf0OezOC5yaIfp37kTC3I7HJasXc9ADpzPK5mgtg9vi3QDSQ5ajtjVdk
	UlwMXFYA0u/s/ok9h0fMFIeNbDwEA6yDxBFptTV1Rys0QiT7JKkOHxjWRuSg8POeeu2kkzuIehm
	dK7bSZFnJgAWy8RtDBeUGoc18V72NyMn8U7/6Vl6TDsUVBObyYxMSr+FKNWmI2mj5sgo57UbBoG
	ktjDe/bt0nZivzG1PpXmYz1eY3tutDZRM9DknmzJaEQD+mrs0E7O41XzlqFMaq0s1Ltzw+8AFyS
	Y678Bn3Yw=
X-Google-Smtp-Source: AGHT+IG5CfkQ5ldRAmBumHz7I9ve5BY4GikejRLVgOhHDhq3x2mlXOlCf8xkPyu6ONUGlVEZMEMQiQ==
X-Received: by 2002:a17:907:709:b0:ae3:635c:53c1 with SMTP id a640c23a62f3a-afceae47202mr800382666b.54.1755522128024;
        Mon, 18 Aug 2025 06:02:08 -0700 (PDT)
Message-ID: <2de868ca-c2aa-4d53-8048-30fc4fabd80d@suse.com>
Date: Mon, 18 Aug 2025 15:02:06 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 04/16] x86/msr: Split out guest-msr.h
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
 <20250815204117.3312742-5-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: <20250815204117.3312742-5-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.08.2025 22:41, Andrew Cooper wrote:
> struct vcpu_msrs has a very different purpose to everything else in msr.h
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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



From xen-devel-bounces@lists.xenproject.org Mon Aug 18 13:04:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 13:04:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086071.1444300 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unzXU-00007o-7D; Mon, 18 Aug 2025 13:04:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086071.1444300; Mon, 18 Aug 2025 13:04: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 1unzXU-00007h-4a; Mon, 18 Aug 2025 13:04:40 +0000
Received: by outflank-mailman (input) for mailman id 1086071;
 Mon, 18 Aug 2025 13:04:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=q+DX=26=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1unzXT-00007Z-Ad
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 13:04:39 +0000
Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com
 [2a00:1450:4864:20::632])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e554e1d0-7c33-11f0-a32a-13f23c93f187;
 Mon, 18 Aug 2025 15:04:38 +0200 (CEST)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-afcb7acfde3so555547366b.3
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 06:04: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
 a640c23a62f3a-afcdcfccd5asm803637366b.78.2025.08.18.06.04.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Aug 2025 06:04: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>
X-Inumbo-ID: e554e1d0-7c33-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755522278; x=1756127078; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=p3u7gZ4ixzFXFm2hX6hi+G9kvmUsrPnys/fYx1AmvDk=;
        b=SbdTPzI8cIAPGGebT303jzwlmcXfMX/1NtefbCevF248j2uqBMs42AX8Y36diWEgdX
         hgNwplz+2gC42pbTEBP54RqS6T7/PkajX1ilkM+Y5EuS7UsEhzL1vOxGqjaghXeTYjtj
         NH6jK8eZS1KeYp4MXN3TasV3z7I1n2+zyumsnORn73tRp6WjY0sIxvKw1qEdIx8aK5jw
         8ajM9B+QVojMqwrR5ubZCYsN5oEKhvXQZot4lxQrxohfRPkHeALXMrM8gp8S1z+exy7r
         2ZC1H2geZz9Qsq68m6FkJfDsBoChVua0ulXYDwFVEyR4ejBnhkEbkqiTZtO8gtDnx/op
         9Alg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755522278; x=1756127078;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=p3u7gZ4ixzFXFm2hX6hi+G9kvmUsrPnys/fYx1AmvDk=;
        b=FYO6metylWcp4CKuXWTY3bKcUjqCgv7Mv9yEbQVhZ1yRjYStxnY/DvOis+3rTsYLQR
         x6sDHauFnA3/o5/7RONWND7Pvl5y73+jSqyIJT0KSJQimDImy+EDOdaXcpQnlVxRgiH5
         SEhM8F6k6hX1Xn2Ld1MkohRxes3WZ9KZC/mjCjHMdoEdN/8svJ23ehTa3iAr3dorDrPJ
         rAXg41JAFyGqN/TlZBJYqHMTByFTDMvZAvgRuAgGi3GZOwpGIWS08p9I8pqKZ3nCXT0y
         +ciVCSA4GXVmuGSn5L3yvMnzW01VYKAqMmqP53JAzIsBBrww6E3Cti4906MSsuuxmms2
         MrUw==
X-Forwarded-Encrypted: i=1; AJvYcCUZSPct7sbWhr6p6ODWkLuXNdLcb1S84KWzYEw01T7phLo+7jHRNQVAZXk+JXaPBygYIF9lApaAMro=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzQ9jmGS46hO8gKx4LvpwfALVXhnBhWcp2CJuIgL87KcubdPTwN
	e+uLhrosDmikutYJiJiny70Xe8etj2RrXxgwnd37lHgJg8GjwRJIQdFYSNFpTG+yBQ==
X-Gm-Gg: ASbGncvUI2TEP1fYl1UjRXWlCyereO8MQj3xpdp2ps6vyRnHEjt4KE2yHC9QeWtfK2n
	4karKY2y9HTUzV/vx1CxEM/WxAfK5qQx8pip/3s6pm3ZbpxkdppWeRgWt67ShCLukb8Xv+Dc5eq
	vJYG5pyYGdjqD2nnSysKCtcJWOJFbOjPyb4qBHn5V1X+iIGjxncF9uT19XxeQ8V4n60zXD7zL16
	sAzt65nxSpVAmKeiuROZ6ghH9+keZMgpdycBJawGLNDHFKGNdsco1qh8LnYWkP/tPKFdMDqrBIA
	TDqt+DewlnV/nrkEGbXfluLMeNf3lp4VewBX0Wv3j20eMRl7mAt5bDaMGUExUQ8YMATgdhMunR2
	YLl8qtg9KMBiL59U9ulBYqtw9fWdmMkn7J8HWnxWlI0760edQIZzCr1+aS5YbIhlf1vNS19kYIg
	qGiHVgqdzbm6koya+nDA==
X-Google-Smtp-Source: AGHT+IHhAWmx9OacSk+JHwMasrbyCghP9HLyaQAJtZtAHHH35d/0eJbBj5kv2l2LeTDIjmF447/h3g==
X-Received: by 2002:a17:907:1c09:b0:ad8:914b:7d0b with SMTP id a640c23a62f3a-afcdc206127mr1095686966b.11.1755522277498;
        Mon, 18 Aug 2025 06:04:37 -0700 (PDT)
Message-ID: <db36a7b0-c92d-4512-bfa8-b4a7f5c165e9@suse.com>
Date: Mon, 18 Aug 2025 15:04:36 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 05/16] x86/msr: Split out fsgsbase.h
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
 <20250815204117.3312742-6-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: <20250815204117.3312742-6-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.08.2025 22:41, Andrew Cooper wrote:
> It is a large and complex API, but only a handful of translation units need
> access.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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



From xen-devel-bounces@lists.xenproject.org Mon Aug 18 13:07:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 13:07:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086079.1444312 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unzZt-0000ge-LO; Mon, 18 Aug 2025 13:07:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086079.1444312; Mon, 18 Aug 2025 13:07: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 1unzZt-0000gX-Gt; Mon, 18 Aug 2025 13:07:09 +0000
Received: by outflank-mailman (input) for mailman id 1086079;
 Mon, 18 Aug 2025 13:07:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=q+DX=26=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1unzZr-0000gR-Op
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 13:07:07 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3de5f22e-7c34-11f0-a32a-13f23c93f187;
 Mon, 18 Aug 2025 15:07:06 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-afcb731caaaso576463066b.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 06:07: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
 a640c23a62f3a-afcdce72cfesm787988066b.46.2025.08.18.06.07.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Aug 2025 06:07: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>
X-Inumbo-ID: 3de5f22e-7c34-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755522426; x=1756127226; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=yIGAesZuFJCgpAO1KkMfSp7LXfd2M3wMtq3dQBbIKUE=;
        b=PKhcXt1czbh2bHo/fjg5hhiOM7IkBD+90rBxaN+mpEQQCAscPexjhdIUUnkZMPU/Cc
         P4+G6B4tc5uYBBk9p5wthVIBL1D9ATk9w+Nh9rYQNqLBvPFF5xCQ3+ZbLv6FzIpwFE5c
         EXc5J1vYKCK7hDhbXQxSDmiL3Gyenfiy/bIq4DOxQkPO7RSXpLj/cJPSvkQWHZKPdx7U
         wn3a7fxMaUjvMMfzK8JEhxaSroB7lSc2VmVcyvFjA2Gps7gU0TF//LP/f1Zs6ZCzX+RF
         ww/fQDrsfXvaeOJ3JmxcOsuBn6q7wAZb8Xj2uAZt1A1Gx8FvTiyQldQ/VNge98WJiLXA
         BKCQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755522426; x=1756127226;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yIGAesZuFJCgpAO1KkMfSp7LXfd2M3wMtq3dQBbIKUE=;
        b=T2ZAnK3mnTeheidC663V04RLT/4RHLFSrkz1UBKckdFMs7As9TSX+q16R1VwTmMCDw
         ppB91pvzOtyeNTO1VEgOmG1cSND0PqVGxd7dw/aaAvcsrFYTLdZUUnxXdhMZ4z/URF+o
         rdlLb6JV9ZBo2Woh3WM86Mr4zhwTfj6v3bSP4TBmpQFpYM5KTV+kagScfwhDcIxUw3RZ
         EtzrkqEGEUmk4b4ToOOzi7yy/a8DwTsTLPsGBVIq+0kgUzVjePaeJUUOtaF3zOJrKUbI
         pZfPheiEAyFaKUEiuFHAuqG0wKvm9pMr7Sqrtdiz9p7uPbO9ij9b1SYQn5u5QBjFH/4j
         eATQ==
X-Forwarded-Encrypted: i=1; AJvYcCWgSXL1GvVZIArhj7lUimrEgGckhRb7IBWhqplwxVMX8iZ9i852CnfmmxBYHhUURtoxniLukxWD174=@lists.xenproject.org
X-Gm-Message-State: AOJu0YybdiRoiIo8PFHQf88a+xzPXuRRWzHzrydWxRtnMRywxvUGw8vY
	W3qgC7yzMVjYr/sL9Janpw5Sj7MBt5qj2fEUv0ZanVyAqw8ej3I7rWPxJjBDRZTy0Q==
X-Gm-Gg: ASbGnct2LSuIhGIaUrnsRp156uD6ZdUu6TRBVIYqPPehxTn9kNBDKiaJpKzvUSidoLN
	y2v91MrSBPP0Nm70zJ9aETtHxMhiuOZXea5BAeu5KbQFHdj2+yPYXRD8TuSmfFZrxQ0n9dV50QS
	NzABTdA4b1im8OJTUy/g4mVj4bm8lO8rIKo3D+aQCduwcfjovO7FvzxhYdAsRBjemJSm82DLthq
	EGZDoz9cMgpdRpHAyp9jBz8sWW3XPDdUQBMyW52b+2E9AtsyZfleH30U8oM95ET4fYxjeIgDeId
	cR5Qhu1f+VF2CCwA8xR4Gp4mROQKaXQd0w8PhDTUvfJoBlNNKvcmxvPXR2j6VJ+Ucr/m6IK3Pdl
	QUe146M4gusYfyHyCjYK/m6kKi8UyeQLz33BhDUUlzmxIPW4WoTqe2dmI8xlC7oR978cCkQNrjF
	jYggpcJcWeMvxMRp3ViQ==
X-Google-Smtp-Source: AGHT+IEziThFRdZCfz05bviPzuufeE2dhFJZO/TyZOmUflmBzTkfluRmlzBW0scFIltWkQww/CuZMw==
X-Received: by 2002:a17:907:7faa:b0:ae3:6655:410f with SMTP id a640c23a62f3a-afcdc20625emr1117531266b.7.1755522426181;
        Mon, 18 Aug 2025 06:07:06 -0700 (PDT)
Message-ID: <f1693582-ff30-47a2-8be5-2fbe9c812594@suse.com>
Date: Mon, 18 Aug 2025 15:07:05 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 06/16] x86/msr: Split out tsc.h
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
 <20250815204117.3312742-7-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: <20250815204117.3312742-7-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.08.2025 22:41, Andrew Cooper wrote:
> The TSC functionality is only related to MSRs by write_tsc(), and this really
> does not want to be available as widely as is currently is.
> 
> asm/time.h shouldn't be including asm/msr.h, but this turns out to be
> sufficiently tangled that I've chosen to break it out into it's own patch.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Acked-by: Jan Beulich <jbeulich@suse.com>
with one nit:

> --- /dev/null
> +++ b/xen/arch/x86/include/asm/tsc.h
> @@ -0,0 +1,46 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +#ifndef X86_TSC_H
> +#define X86_TSC_H
> +
> +#include <asm/alternative.h>
> +
> +static inline uint64_t rdtsc(void)
> +{
> +    uint64_t low, high;
> +
> +    asm volatile ( "rdtsc" : "=a" (low), "=d" (high) );
> +
> +    return (high << 32) | low;
> +}
> +
> +static inline uint64_t rdtsc_ordered(void)
> +{
> +    uint64_t low, high, aux;
> +
> +    /*
> +     * The RDTSC instruction is not serializing.  Make it dispatch serializing
> +     * for the purposes here by issuing LFENCE (or MFENCE if necessary) ahead
> +     * of it.
> +     *
> +     * RDTSCP, otoh, "does wait until all previous instructions have executed
> +     * and all previous loads are globally visible" (SDM) / "forces all older
> +     * instructions to retire before reading the timestamp counter" (APM).
> +     */
> +    alternative_io_2("lfence; rdtsc",
> +                     "mfence; rdtsc", X86_FEATURE_MFENCE_RDTSC,
> +                     "rdtscp",        X86_FEATURE_RDTSCP,
> +                     ASM_OUTPUT2("=a" (low), "=d" (high), "=c" (aux)),
> +                     /* no inputs */);
> +
> +    return (high << 32) | low;
> +}
> +
> +#define __write_tsc(val) wrmsrl(MSR_IA32_TSC, val)
> +#define write_tsc(val) ({                                       \
> +    /* Reliable TSCs are in lockstep across all CPUs. We should \
> +     * never write to them. */                                  \

This comment may want to become a proper Xen-style one while being moved.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 13:25:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 13:25:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086092.1444321 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unzrX-0003cE-5u; Mon, 18 Aug 2025 13:25:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086092.1444321; Mon, 18 Aug 2025 13:25:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unzrX-0003c7-1v; Mon, 18 Aug 2025 13:25:23 +0000
Received: by outflank-mailman (input) for mailman id 1086092;
 Mon, 18 Aug 2025 13:25:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RUli=26=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1unzrV-0003c1-Jw
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 13:25:21 +0000
Received: from mail-ot1-x32b.google.com (mail-ot1-x32b.google.com
 [2607:f8b0:4864:20::32b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c6e71c7d-7c36-11f0-b898-0df219b8e170;
 Mon, 18 Aug 2025 15:25:16 +0200 (CEST)
Received: by mail-ot1-x32b.google.com with SMTP id
 46e09a7af769-74374a65f35so3209128a34.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 06:25: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>
X-Inumbo-ID: c6e71c7d-7c36-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1755523515; x=1756128315; 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=UbgjEWrFgywzJCgyLCGykrKsOpFZVL7XFoZn1TUjcck=;
        b=NdvWCSR20KYKr5srsEL02WLyjZUGdK1uJv9uREtkrypSILO7aY0LVjgpGgFHgdG1rJ
         kexVMAIV1UZOHMMyJzqjjWqBBxPIJ2+RloXCWpJfh/2ZW5e9+hOPEIg8kstpdkXAB4qo
         XAdOXz22wQzCA3JM6wKAQl31FaVUdUkS9KZ54=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755523515; x=1756128315;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=UbgjEWrFgywzJCgyLCGykrKsOpFZVL7XFoZn1TUjcck=;
        b=lQfXcbDywEDD3hcV2ay7w7X3OnxwErVZ/e5xo+U6DVLtvyZRHcafvU/zEt3SG4BNfo
         tWUPp1oxQL0r8vrfR9/JS8YNq5X/2vxylm88SdtzCdo3/078KfC7GujJ91ZGnPUVsHbP
         QSco3SwwwmVRfLXcF2zo3l6iI5j3KU/udwzhIcYwC74n+Caq7FngViwUL7+GA0DTCbf1
         EqCyBUCVcVldRrH0k4u+TaUT24Qoj6Peg+EHlqZ14s52/yR1ObrGsRylCC7FDdCCL+d1
         rE1xP6ase9o/cOab1kko60M4llsGMVVdSL+E/LOHJHGZ4o8sOQ2ge5MlWyfJV3wxgvD/
         8new==
X-Forwarded-Encrypted: i=1; AJvYcCVR0h8JyCTLAU5+Hd89/dwnK6fNLlxxuX/SMVpyEaKogDPimvig+3Ap6JvWGam5zWrtkGf3JedPsug=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyKKb67wXOcOjY9o75v3MwV3hfhfDFdtWxoCaoz4SZOM2iayIoO
	J68Wyk4tEHVWx6A43HSvDBoFuyWY3u/VbLROP1Y7OHQQSLIewe8tltYngFPSTWPqXd7SO1BkSo2
	20BOqwXDDL2+KG4F8dh0Z455MwA5qJlNgOyDcxtR0GA==
X-Gm-Gg: ASbGncssMsVou660gq/1qyTHyJuCPh8hLpj2/Tdzcr2AheHUgWeHaRi2LyniQy/2ypm
	jugvlL0NE+ZmXJqetFfqB22OLbbn0jNv20ALUMIaGubN0+XyqWXvEFqtUQmP4SwAm1BqZ1CPk0N
	+v6JQoENk/zm7/O24KLhZyu04+uIqf/Ziu6KpKS0tx85BqgMYDOmzWpgTSeyjhZnX86Zuxf23Yx
	Zzr2A==
X-Google-Smtp-Source: AGHT+IF0EZhS2xMnu9d+NYT2sH6vXpo3zpk6nGHQKbvjF2mgnKVGxqF/igHyxeTcRxnfq+wGqxL/+KAM+N7Z3+dH/LY=
X-Received: by 2002:a05:6808:6ec3:b0:435:e4ee:d779 with SMTP id
 5614622812f47-435ebb2a587mr8745764b6e.4.1755523514709; Mon, 18 Aug 2025
 06:25:14 -0700 (PDT)
MIME-Version: 1.0
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
 <20250815204117.3312742-7-andrew.cooper3@citrix.com> <f1693582-ff30-47a2-8be5-2fbe9c812594@suse.com>
In-Reply-To: <f1693582-ff30-47a2-8be5-2fbe9c812594@suse.com>
From: Frediano Ziglio <frediano.ziglio@cloud.com>
Date: Mon, 18 Aug 2025 14:25:03 +0100
X-Gm-Features: Ac12FXwVU_sC29BLEVf2bJf0TCQ1uI0_b1NYY7YiLAR_yenqe_vSCnC87FnWM9U
Message-ID: <CACHz=Zgp8c+n4yQKSw2BVEdHKjOw2SrKquixfdDDGrRxrVGDDg@mail.gmail.com>
Subject: Re: [PATCH v2 06/16] x86/msr: Split out tsc.h
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Xen-devel <xen-devel@lists.xenproject.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Mon, Aug 18, 2025 at 2:07=E2=80=AFPM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> On 15.08.2025 22:41, Andrew Cooper wrote:
> > The TSC functionality is only related to MSRs by write_tsc(), and this =
really
> > does not want to be available as widely as is currently is.
> >
> > asm/time.h shouldn't be including asm/msr.h, but this turns out to be
> > sufficiently tangled that I've chosen to break it out into it's own pat=
ch.
> >
> > No functional change.
> >
> > Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>
> Acked-by: Jan Beulich <jbeulich@suse.com>
> with one nit:
>
> > --- /dev/null
> > +++ b/xen/arch/x86/include/asm/tsc.h
> > @@ -0,0 +1,46 @@
> > +/* SPDX-License-Identifier: GPL-2.0-only */
> > +#ifndef X86_TSC_H
> > +#define X86_TSC_H
> > +
> > +#include <asm/alternative.h>
> > +
> > +static inline uint64_t rdtsc(void)
> > +{
> > +    uint64_t low, high;
> > +
> > +    asm volatile ( "rdtsc" : "=3Da" (low), "=3Dd" (high) );
> > +
> > +    return (high << 32) | low;
> > +}
> > +
> > +static inline uint64_t rdtsc_ordered(void)
> > +{
> > +    uint64_t low, high, aux;
> > +
> > +    /*
> > +     * The RDTSC instruction is not serializing.  Make it dispatch ser=
ializing
> > +     * for the purposes here by issuing LFENCE (or MFENCE if necessary=
) ahead
> > +     * of it.
> > +     *
> > +     * RDTSCP, otoh, "does wait until all previous instructions have e=
xecuted
> > +     * and all previous loads are globally visible" (SDM) / "forces al=
l older
> > +     * instructions to retire before reading the timestamp counter" (A=
PM).
> > +     */
> > +    alternative_io_2("lfence; rdtsc",
> > +                     "mfence; rdtsc", X86_FEATURE_MFENCE_RDTSC,
> > +                     "rdtscp",        X86_FEATURE_RDTSCP,
> > +                     ASM_OUTPUT2("=3Da" (low), "=3Dd" (high), "=3Dc" (=
aux)),
> > +                     /* no inputs */);
> > +
> > +    return (high << 32) | low;
> > +}
> > +
> > +#define __write_tsc(val) wrmsrl(MSR_IA32_TSC, val)
> > +#define write_tsc(val) ({                                       \
> > +    /* Reliable TSCs are in lockstep across all CPUs. We should \
> > +     * never write to them. */                                  \
>
> This comment may want to become a proper Xen-style one while being moved.
>
> Jan
>

Does it make sense to move the comment out of the macro?

Frediano


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 13:29:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 13:29:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086102.1444330 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1unzv5-0004BU-Jg; Mon, 18 Aug 2025 13:29:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086102.1444330; Mon, 18 Aug 2025 13: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 1unzv5-0004BN-Ge; Mon, 18 Aug 2025 13:29:03 +0000
Received: by outflank-mailman (input) for mailman id 1086102;
 Mon, 18 Aug 2025 13:29:02 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YQjc=26=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1unzv4-0004BH-Ny
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 13:29:02 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4db04641-7c37-11f0-a32a-13f23c93f187;
 Mon, 18 Aug 2025 15:29:01 +0200 (CEST)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-afcb78da8a7so674428666b.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 06:29:01 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afcdce9edbesm798075466b.58.2025.08.18.06.29.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Aug 2025 06:29: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>
X-Inumbo-ID: 4db04641-7c37-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1755523741; x=1756128541; darn=lists.xenproject.org;
        h=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=LgLUV9qqPgpJr/VGJyMAbCDazaP0yA/nC3W94MfGf5c=;
        b=Yyw0Z13ygav+eN/ca6quK+SYPaYsTl+3pq84TMhviVg8NcA721ZWM2r1n0VeRi7Vvu
         toOKfFxFjWfv7v/e8shuPkZz5r8LIq5H+T1B93z5mBsFfgXl2VCTlitMM+kbZWihR4MO
         LOPqAyPlwyWneYcAh/aTLD4IlaxalBTD2JmmYGA52p1gJ3BAaO+deg4So50RAnnu3Xlh
         XrPVzJfWkHR9fFSI4FTusX2NGWwkMiE0QHs9EIqm8jFfrfOEHLpX23ZczOoeeVmCJWLw
         rLe4ORSwsIqeq+N2rDvYE4upa7ohPGPF2WVd4bEdGmfVFeNThurXBV1KnNYZbxd1iomB
         MIFg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755523741; x=1756128541;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=LgLUV9qqPgpJr/VGJyMAbCDazaP0yA/nC3W94MfGf5c=;
        b=dgAxBtLEpXZuvck4r2Unvwm/AHlJnCkIf90lZXfXQGdeRmWXgi7bL90/mC+QuXth8A
         JG4DmxM5bGvxoLcblnDOjkJhpJoJnejcIbPFkelO7pnrwYGlHOotXdpMUZkYJ/rBvGXJ
         QVaoJap5PDVW5EBIEyQiqyvMphlPTRFOEw0uVZj4khUUmnPnRsFzNeCIw28vmnuvlgyC
         u+ifhwhVONzYDfeUybW40/Cd66lMHNYAFDLY1xzyKBXXfIg/xflccg1OOn4dNqiFfqeZ
         ozmF6X+EvFh+N0vNtukQoxF/CkTQ4kiV4q4JVZqFYZ6os9+g7zW28Y+VxLu515+EW0kc
         inDQ==
X-Forwarded-Encrypted: i=1; AJvYcCXFhBq61X5zamxKFfK+3PcC1CI/kOP2WBKfso/ONDtLIjt9sfUmXfGtmJUxpsbwWgtGhCjJQuL2B3Q=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy1oiKs7qNbi5+etz6TcWnO+c+LkuSv9edcZGQI/abcU2QpckEj
	oqqTfBkc3gwYMs81HKVk3WWXiIu9BwbMBXf64Smg3oXsDhE+o8SkTad9
X-Gm-Gg: ASbGnctcdd1QCpYUfnmv2axcxj2/qtj0MUozJ9ePhWEa1RG3vmd+P6Yi6Z+01iM2S/w
	8DWpaeZPCbfkzxIE695GrngMUko4Il2u61w65tz2PMSEEcTL+EYL7eDu1A2h1tvCxUXl/l328mV
	/vvOzfrv02bAM4Q93VNi/Gv3sf3c2mSRKyslHnuOfzWNO9qKtdbAjfAlL8hJopwcj5X3G5PKpcZ
	u43aEEELKXt0MgIZ8PB1NM6oHXV1rmyaZJPptonRyRQSqIq+h0DjKDmC3c8v6nivbwXtmv+kKAe
	DfQlwdgu7l2MF9vZur7n6f6AOnQvZfKvwX44zxelSD54LEPSPGE2haq+HMItfX6VSVcOvdDdtgt
	1/+ie9LVgGHE813MYVZwuvvSaaT7Rrd5K2oahySvO2doBInAO+VqWE02MzimC2d9/W4m6vRg=
X-Google-Smtp-Source: AGHT+IFjhwcTHcT46jvQJP0UQkdWWViMHzd5njczFWav1FFBUSgctVClbf+Sr709BlzRBeS+iFMf/g==
X-Received: by 2002:a17:907:7fa9:b0:af9:d705:9f19 with SMTP id a640c23a62f3a-afcdc28bb9fmr1206458666b.17.1755523740820;
        Mon, 18 Aug 2025 06:29:00 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------s2ykdF5OBL13o3ZOvpkj09nB"
Message-ID: <d6046b53-9317-43d6-bfda-e30d42c09320@gmail.com>
Date: Mon, 18 Aug 2025 15:28:59 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE
To: Jan Beulich <jbeulich@suse.com>, Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, 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: <20250815102728.1340505-1-Penny.Zheng@amd.com>
 <fb6f559a-b2aa-4b25-a6d3-401ecc4b4bd5@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <fb6f559a-b2aa-4b25-a6d3-401ecc4b4bd5@suse.com>

This is a multi-part message in MIME format.
--------------s2ykdF5OBL13o3ZOvpkj09nB
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 8/18/25 10:31 AM, Jan Beulich wrote:
> On 15.08.2025 12:27, Penny Zheng wrote:
>> In order to fix CI error of a randconfig picking both PV_SHIM_EXCLUSIVE=y and
>> HVM=y results in hvm.c being built, but domctl.c not being built, which leaves
>> a few functions, like domctl_lock_acquire/release() undefined, causing linking
>> to fail.
>> To fix that, we intend to move domctl.o out of the PV_SHIM_EXCLUSIVE Makefile
>> /hypercall-defs section, with this adjustment, we also need to release
>> redundant vnuma_destroy() stub definition from PV_SHIM_EXCLUSIVE guardian,
>> to not break compilation
>> Above change will leave dead code in the shim binary temporarily and will be
>> fixed with the introduction of domctl-op wrapping.
> Well, "temporarily" is now getting interesting. While v1 of "Introduce
> CONFIG_DOMCTL" was submitted in time to still be eligible for taking into
> 4.21, that - as indicated elsewhere - is moving us further in an unwanted
> direction.

Do you mean that specifically this patch or the whole patch series is moving us
in unwanted direction? (1)


>   Hence I'm not sure this can even be counted as an in-time
> submission. Plus it looks to be pretty extensive re-work in some areas.

It doesn't clear based on change log why this patch is sent outside "Introduce
CONFIG_DOMCTL" (2) as it looks the same as in (2) and it was reverted once with
the reason "for breaking the x86 build". (I haven't checked what was changed so
it won't lead to build issue again.)

> Hence I'm somewhat weary as to 4.21 here. IOW question, mainly to Oleksii,
> is whether to
> 1) strive to complete that work in time (and hence take the patch here),
> 2) take the patch here, accepting the size regression for the shim, or
> 3) revert what has caused the randconfig issues, and retry the effort in
>     4.22.
>
In the current context, I think I prefer option 3.
However, if option 1 is possible, it could also be consideredâ€”except in the
case where the answer to (1) is that the whole patch series is moving us in
an unwanted direction. In that situation, IMO, only option 3 remains viable.

>> Fixes: 568f806cba4c ("xen/x86: remove "depends on !PV_SHIM_EXCLUSIVE"")
>> Reported-by: Jan Beulich<jbeulich@suse.com>
>> Signed-off-by: Penny Zheng<Penny.Zheng@amd.com>
> My earlier question (when the patch still was part of a series) sadly has
> remained unanswered: You've run this through a full round of testing this
> time?
>
> Jan
--------------s2ykdF5OBL13o3ZOvpkj09nB
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/18/25 10:31 AM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:fb6f559a-b2aa-4b25-a6d3-401ecc4b4bd5@suse.com">
      <pre wrap="" class="moz-quote-pre">On 15.08.2025 12:27, Penny Zheng wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">In order to fix CI error of a randconfig picking both PV_SHIM_EXCLUSIVE=y and
HVM=y results in hvm.c being built, but domctl.c not being built, which leaves
a few functions, like domctl_lock_acquire/release() undefined, causing linking
to fail.
To fix that, we intend to move domctl.o out of the PV_SHIM_EXCLUSIVE Makefile
/hypercall-defs section, with this adjustment, we also need to release
redundant vnuma_destroy() stub definition from PV_SHIM_EXCLUSIVE guardian,
to not break compilation
Above change will leave dead code in the shim binary temporarily and will be
fixed with the introduction of domctl-op wrapping.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Well, "temporarily" is now getting interesting. While v1 of "Introduce
CONFIG_DOMCTL" was submitted in time to still be eligible for taking into
4.21, that - as indicated elsewhere - is moving us further in an unwanted
direction.</pre>
    </blockquote>
    <pre>Do you mean that specifically this patch or the whole patch series is moving us
in unwanted direction? (1)


</pre>
    <blockquote type="cite"
      cite="mid:fb6f559a-b2aa-4b25-a6d3-401ecc4b4bd5@suse.com">
      <pre wrap="" class="moz-quote-pre"> Hence I'm not sure this can even be counted as an in-time
submission. Plus it looks to be pretty extensive re-work in some areas.</pre>
    </blockquote>
    <pre>It doesn't clear based on change log why this patch is sent outside "Introduce
CONFIG_DOMCTL" (2) as it looks the same as in (2) and it was reverted once with
the reason "for breaking the x86 build". (I haven't checked what was changed so
it won't lead to build issue again.)

</pre>
    <blockquote type="cite"
      cite="mid:fb6f559a-b2aa-4b25-a6d3-401ecc4b4bd5@suse.com">
      <pre wrap="" class="moz-quote-pre">
Hence I'm somewhat weary as to 4.21 here. IOW question, mainly to Oleksii,
is whether to
1) strive to complete that work in time (and hence take the patch here),
2) take the patch here, accepting the size regression for the shim, or
3) revert what has caused the randconfig issues, and retry the effort in
   4.22.

</pre>
    </blockquote>
    <pre>In the current context, I think I prefer option 3.
However, if option 1 is possible, it could also be consideredâ€”except in the
case where the answer to (1) is that the whole patch series is moving us in
an unwanted direction. In that situation, IMO, only option 3 remains viable.

</pre>
    <blockquote type="cite"
      cite="mid:fb6f559a-b2aa-4b25-a6d3-401ecc4b4bd5@suse.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">Fixes: 568f806cba4c ("xen/x86: remove "depends on !PV_SHIM_EXCLUSIVE"")
Reported-by: Jan Beulich <a class="moz-txt-link-rfc2396E" href="mailto:jbeulich@suse.com">&lt;jbeulich@suse.com&gt;</a>
Signed-off-by: Penny Zheng <a class="moz-txt-link-rfc2396E" href="mailto:Penny.Zheng@amd.com">&lt;Penny.Zheng@amd.com&gt;</a>
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
My earlier question (when the patch still was part of a series) sadly has
remained unanswered: You've run this through a full round of testing this
time?

Jan
</pre>
    </blockquote>
  </body>
</html>

--------------s2ykdF5OBL13o3ZOvpkj09nB--


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 13:34:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 13:34:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086111.1444340 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uo00F-0005sl-4I; Mon, 18 Aug 2025 13:34:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086111.1444340; Mon, 18 Aug 2025 13:34: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 1uo00F-0005se-1f; Mon, 18 Aug 2025 13:34:23 +0000
Received: by outflank-mailman (input) for mailman id 1086111;
 Mon, 18 Aug 2025 13:34:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=q+DX=26=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uo00E-0005sY-FC
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 13:34:22 +0000
Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com
 [2a00:1450:4864:20::52b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0b9b63d0-7c38-11f0-b898-0df219b8e170;
 Mon, 18 Aug 2025 15:34:20 +0200 (CEST)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-618b62dba21so3508068a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 06:34: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
 a640c23a62f3a-afcdce53e52sm802605166b.25.2025.08.18.06.34.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Aug 2025 06:34: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>
X-Inumbo-ID: 0b9b63d0-7c38-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755524060; x=1756128860; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ziJV7uvnC+kKtjjhxQiMo5MJuHMGdaQJ22bUrgjwyEU=;
        b=OjcMgorcZ7W4oihDtkyofLgU4KRjKGuI+LKJaNg7sRoU8+sP/NZVeLt9S7WnfEWsK7
         kWu0QAb6bTIQbtc0kocBKIxTB1751LtbTCKkDXpqeDyJKiBjG+ClCFve2OeLBocD6nmc
         3SQUkbv82Ze79KQQfyOFPhyDuQM8ttC0Crcy+8WeReKSHfG44/R78jdggFCTFBabBjRf
         hftWVK2zuIdaKtn4z/0q+tYX9H/QYac2MqKhadMwrxNjG7lEVqmNhD+lTPnxyM6STvwO
         ngNxoKpROeNNhLCc2OpO3nkm5hWJHBRjEwr38miqDiMAhCsZClc5Io5tiB9T8/jVOs3Q
         O62w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755524060; x=1756128860;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ziJV7uvnC+kKtjjhxQiMo5MJuHMGdaQJ22bUrgjwyEU=;
        b=ltNcW6slXHTEf3bB5N7f30x2S6sypug2z2632ssbwGLD+tfH7zrQ5ie8RJD6VFVyrU
         IEloG2N992Kh0afOfGuIciQisgU/x4HtyPFW6K8LRgJVEThX1Lm6+K8nuDgCnC+bS292
         AqOy+wT7C9HTuu8LlZeGa/BnHzYBxMidqlnbF18d+NjtdM/CuMOs9Fay2NjZFeO9NyOv
         w9pFILvh9LjhlWi7buQodtb7+SrLKl7k+n9uhdr+AeKdLIdLP8D3+BmaWfSPAv6JNEbe
         0xQgUhXfZnljWVxF1x0+YqYlwsBMaZP3sMYhLreNIAKlzk+cd3sLtt4QfPnkDpmww6At
         2oIQ==
X-Forwarded-Encrypted: i=1; AJvYcCVAvSLaywUt3vn4ny7we6S0X2V7G6BX3uKbHHFJ4m5XKzv2kbSunzRimO182MkBdXFzMUeTZrnD/Gs=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw4zqtcjMhrzwJHMuts5inHRwwK5ty+XpKuKCmY66jSeVwg5hD3
	jxYjGeiC/oOlSpWfj8WCGpa+CizaBVjs7A97n7PDWTKfVTVZXD5HYg4cLj3s3McmIw==
X-Gm-Gg: ASbGncsHLFoytu9tTAW9eFMh/8o+2H4I83w3Ft79ILCp8TJms2ogUVEq+3qFXdwApHf
	fruKZgkGLjyy0lbrLtMxhKEVyZ8JZ2HYsnsxd107+/zrD6GrvG1xKfM8RIUlmt1u7grBpkXv9QQ
	TAwGvKkw1UO9Ot+XnENinEAIdLJC0lBRNbJ3mxrZ47u41CKKN+Td4iZOC9vu7PIU2p+k8fbezHL
	BqSQO5xcI5t4fkqQhGjZNhNcdnHbTHOwY1K5a1Ish40ED+9kYP08Q6lrcKLYuBS+5S7Dm1N7pjH
	JEQcAf5/6PGl9ivIwmJUQU/IFK1LtLRyT3tLVQtjH61qNd/iiT/C6A/1Zi+74GiUstXrjbsaaoD
	EEHNf+cibpW3hRJRl2/iUecKUQhXaYQXjyIZS+XEn1P610GQcZHporcPx4IrA2hF8Lr8lYngkc0
	fQW/zQSh03xzq1rgxwBg==
X-Google-Smtp-Source: AGHT+IFG+miXy84MAkmSESonFdJyyR6+0pgOf9dKc1ZpoCX1mpIyq6XAL72MTWidfaxU04nInh2vCw==
X-Received: by 2002:a17:906:f587:b0:afc:a331:ba2e with SMTP id a640c23a62f3a-afceacd90d8mr871673766b.24.1755524059794;
        Mon, 18 Aug 2025 06:34:19 -0700 (PDT)
Message-ID: <2035b14e-3836-4e80-9dad-8a49ca90864a@suse.com>
Date: Mon, 18 Aug 2025 15:34:18 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: ray.huang@amd.com, 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,
 Penny Zheng <Penny.Zheng@amd.com>
References: <20250815102728.1340505-1-Penny.Zheng@amd.com>
 <fb6f559a-b2aa-4b25-a6d3-401ecc4b4bd5@suse.com>
 <d6046b53-9317-43d6-bfda-e30d42c09320@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: <d6046b53-9317-43d6-bfda-e30d42c09320@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.08.2025 15:28, Oleksii Kurochko wrote:
> On 8/18/25 10:31 AM, Jan Beulich wrote:
>> On 15.08.2025 12:27, Penny Zheng wrote:
>>> In order to fix CI error of a randconfig picking both PV_SHIM_EXCLUSIVE=y and
>>> HVM=y results in hvm.c being built, but domctl.c not being built, which leaves
>>> a few functions, like domctl_lock_acquire/release() undefined, causing linking
>>> to fail.
>>> To fix that, we intend to move domctl.o out of the PV_SHIM_EXCLUSIVE Makefile
>>> /hypercall-defs section, with this adjustment, we also need to release
>>> redundant vnuma_destroy() stub definition from PV_SHIM_EXCLUSIVE guardian,
>>> to not break compilation
>>> Above change will leave dead code in the shim binary temporarily and will be
>>> fixed with the introduction of domctl-op wrapping.
>> Well, "temporarily" is now getting interesting. While v1 of "Introduce
>> CONFIG_DOMCTL" was submitted in time to still be eligible for taking into
>> 4.21, that - as indicated elsewhere - is moving us further in an unwanted
>> direction.
> 
> Do you mean that specifically this patch or the whole patch series is moving us
> in unwanted direction? (1)

That series. We said we don't want individual CONFIG_SYSCTL, CONFIG_DOMCTL, etc.
Instead a single umbrella option wants introducing. Which means there series
doesn't need re-doing from scratch, but it may end up being a significant re-
work, especially considering that CONFIG_SYSCTL is already in the codebase and
hence now also needs replacing.

>>   Hence I'm not sure this can even be counted as an in-time
>> submission. Plus it looks to be pretty extensive re-work in some areas.
> 
> It doesn't clear based on change log why this patch is sent outside "Introduce
> CONFIG_DOMCTL" (2) as it looks the same as in (2) and it was reverted once with
> the reason "for breaking the x86 build". (I haven't checked what was changed so
> it won't lead to build issue again.)

Before we can even consider further work in the intended direction, the present
randconfig build issue wants sorting. Which supposedly this patch alone does.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 13:38:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 13:38:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086121.1444350 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uo03n-0006S5-JI; Mon, 18 Aug 2025 13:38:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086121.1444350; Mon, 18 Aug 2025 13:38: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 1uo03n-0006Ry-G7; Mon, 18 Aug 2025 13:38:03 +0000
Received: by outflank-mailman (input) for mailman id 1086121;
 Mon, 18 Aug 2025 13:38:02 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YQjc=26=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1uo03m-0006Rs-7c
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 13:38:02 +0000
Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com
 [2a00:1450:4864:20::62f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8eefac4b-7c38-11f0-a32a-13f23c93f187;
 Mon, 18 Aug 2025 15:38:00 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-afcb731ca8eso685372966b.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 06:38:00 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afcdce53f19sm807253566b.26.2025.08.18.06.37.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Aug 2025 06:37: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>
X-Inumbo-ID: 8eefac4b-7c38-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1755524280; x=1756129080; darn=lists.xenproject.org;
        h=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=aU6WsleQrH2ihQNXjsgn5kb3s440pPqiiKUIoE9B/8E=;
        b=aRSnpCvE+vuuiiSj4zdTOOho7YfTIf+ke1dWpXFhxXD3n0iX3EXEa0T+69X1S/4vu8
         MgqaO0PEIETwZscuGu/5uanrVVpGiygMMtUf9H64HWgAKB4MvFiHNSY/kTe1f4+ehjyj
         38sgJfp0CQkh4QoFkm/yUsGEm58Mc43y2ZYciD93IQ23FqVvbJYKeJ6cHcWzjNTMFceV
         WRp57ouso7OlaPgwCkkXLFYHXDxR0cABTYtl0oV5jdqClIE/jtxU2Bk/IC9Iw3tX78TI
         cX8wXQtJFpKosGGLgXpBzJzd91yX5dIKvXJnHP1Q1SeyyS9DW1Hd5nNNU+4ohe9g9Wnk
         bk/Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755524280; x=1756129080;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=aU6WsleQrH2ihQNXjsgn5kb3s440pPqiiKUIoE9B/8E=;
        b=qqfsPUstDy9pnnnKB/HPxKJwRA3+xGQIhwUFGydY/3gUkHMp1a1OIA+ZC66qPTXBAL
         rvXiHjqkMi3peYkUrl+yShsPPt4IOUqkaN2akdZXcO8F9XrQmN+8J98lvoMqj5S1os4W
         j7AlbF7D3K00bJFkJG3rj8GvehJxRR8xVQ6l2UMGAuroDaHZnQIxXPHzQVU4UhGCD0mO
         rgAu+8j1x5RDJcQmMhg1008z5R9PK/7/rEc5MXJrT11g1Yf3uLk0K8hNbxVO0gbPFdE2
         n6MRgJ9aEYBlbUHzptySWAPqjw7PUzsf1/gnhRBHZXIXMlzJ7uSoD8yzG0lgUzKJ3mUk
         nJGw==
X-Forwarded-Encrypted: i=1; AJvYcCWVC8zf+MaA6+rt3VWnIQyw55PuNtGQADYmmI6nqkyJTfK+LX/3xBUPt16TqD+jEtI9uUksWesVGIE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwnNg6xqumclH/kFgm6dQ5kDyjnXrtsIk/jegE3tlb9QNaIqfLe
	oaH1IGAqVTBPTUSm1KdJOc5MN7u+QBdgml6VfQJjkqHfgoH8Ps16ZU3Y
X-Gm-Gg: ASbGncuUMCauzbKJhKldiJg5wauJfg5s3UtXQvBuXhHtyUQrkn6ZCCYHJMmU/4qZsNM
	VtO9IV+5jal6MBeC3/FTBC9BqkRlwPEk7R5aeCpQcVFAxtYUTAoTjsQAOMDFEDD0FQ8SKBOu7Cb
	WqgMm44/eutF7Tt1zpIgM+qoFck35V+GrA7gX2PYIxzJKPv5/xrhAHSmegjph7IYJep2XO9fPqE
	hcSqGIxyrnR2R5JLUSm4jghCBTCwCTQi/J0LYrDDZimmMNm1mL3sQjpuyhM78LD0KOF02MQRShK
	bphvL+1/KFmsRskt+pZE/483P+bcXl3jpxp316NNCdcw+rsy5RXLutXH2eSbulN0JwG0DJyAnJ6
	ftWJlpM0zjjq/3ZMTB7YpSHrXmUnfc152eLD87uCNqV9f+vBfPBTMRok6X9C+iAFnNM8/V6SrxE
	DELmBsCA==
X-Google-Smtp-Source: AGHT+IEX7UgxuBSUYDk8vU5NmzFX871vMHKJWg7x8U/4UtMWZ9ztxrGltPz2kEZcRIP2sFy3fq+gaQ==
X-Received: by 2002:a17:907:9344:b0:af8:f187:3222 with SMTP id a640c23a62f3a-afcdc35e589mr1098387166b.33.1755524279877;
        Mon, 18 Aug 2025 06:37:59 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------FX5uLnqQvBBN0CgrzLqcHXju"
Message-ID: <dcea6cee-7f8d-4f98-a72f-0969b818ffe0@gmail.com>
Date: Mon, 18 Aug 2025 15:37:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/2] Arm: drop assertion from page_is_ram_type()
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>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <a2dc40a8-908a-44a7-b443-90f492a775cc@suse.com>
 <753ce2a1-8d9c-41ba-a066-abf6f625cb60@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <753ce2a1-8d9c-41ba-a066-abf6f625cb60@suse.com>

This is a multi-part message in MIME format.
--------------FX5uLnqQvBBN0CgrzLqcHXju
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 8/18/25 9:55 AM, Jan Beulich wrote:
> Its uses in offline_page() and query_page_offline() make it reachable on
> Arm, as long as XEN_SYSCTL_page_offline_op doesn't have any Arm-specific
> code added. It being reachable was even mentioned in the commit
> introducing it, claiming it "clearly shouldn't be called on ARM just
> yet".
>
> However, dropping the assertion from a function of this name is deemed
> problematic. Rename it to better reflect its sole purpose outside of
> x86-specific code.
>
> Fixes: 214c4cd94a80 ("xen: arm: stub page_is_ram_type")
> Signed-off-by: Jan Beulich<jbeulich@suse.com>
> ---
> v2: Rename the function used in common code.
> ---
> The new name is chosen such that, down the road, offlining of non-RAM
> could in principle also become possible.

I think it could be useful to put in commit message.

LGTM: Reviewed-by: Oleksii Kurochko<oleksii.kurochko@gmail.com>

~ Oleksii

>
> --- a/xen/arch/arm/mm.c
> +++ b/xen/arch/arm/mm.c
> @@ -64,10 +64,9 @@ int steal_page(
>       return -EOPNOTSUPP;
>   }
>   
> -int page_is_ram_type(unsigned long mfn, unsigned long mem_type)
> +bool page_is_offlinable(mfn_t mfn)
>   {
> -    ASSERT_UNREACHABLE();
> -    return 0;
> +    return false;
>   }
>   
>   unsigned long domain_get_maximum_gpfn(struct domain *d)
> --- a/xen/arch/x86/mm.c
> +++ b/xen/arch/x86/mm.c
> @@ -425,6 +425,11 @@ int page_is_ram_type(unsigned long mfn,
>       return 0;
>   }
>   
> +bool page_is_offlinable(mfn_t mfn)
> +{
> +    return page_is_ram_type(mfn_x(mfn), RAM_TYPE_CONVENTIONAL);
> +}
> +
>   unsigned int page_get_ram_type(mfn_t mfn)
>   {
>       uint64_t last = 0, maddr = mfn_to_maddr(mfn);
> --- a/xen/common/page_alloc.c
> +++ b/xen/common/page_alloc.c
> @@ -1635,7 +1635,7 @@ static unsigned long mark_page_offline(s
>   {
>       unsigned long nx, x, y = pg->count_info;
>   
> -    ASSERT(page_is_ram_type(mfn_x(page_to_mfn(pg)), RAM_TYPE_CONVENTIONAL));
> +    ASSERT(page_is_offlinable(page_to_mfn(pg)));
>       ASSERT(spin_is_locked(&heap_lock));
>   
>       do {
> @@ -1711,7 +1711,7 @@ int offline_page(mfn_t mfn, int broken,
>        * N.B. xen's txt in x86_64 is marked reserved and handled already.
>        * Also kexec range is reserved.
>        */
> -    if ( !page_is_ram_type(mfn_x(mfn), RAM_TYPE_CONVENTIONAL) )
> +    if ( !page_is_offlinable(mfn) )
>       {
>           *status = PG_OFFLINE_FAILED | PG_OFFLINE_NOT_CONV_RAM;
>           return -EINVAL;
> @@ -1851,7 +1851,7 @@ int query_page_offline(mfn_t mfn, uint32
>   {
>       struct page_info *pg;
>   
> -    if ( !mfn_valid(mfn) || !page_is_ram_type(mfn_x(mfn), RAM_TYPE_CONVENTIONAL) )
> +    if ( !mfn_valid(mfn) || !page_is_offlinable(mfn) )
>       {
>           dprintk(XENLOG_WARNING, "call expand_pages() first\n");
>           return -EINVAL;
> --- a/xen/include/xen/mm.h
> +++ b/xen/include/xen/mm.h
> @@ -144,9 +144,11 @@ unsigned long avail_domheap_pages_region
>   unsigned long avail_node_heap_pages(unsigned int nodeid);
>   #define alloc_domheap_page(d,f) (alloc_domheap_pages(d,0,f))
>   #define free_domheap_page(p)  (free_domheap_pages(p,0))
> +
>   int online_page(mfn_t mfn, uint32_t *status);
>   int offline_page(mfn_t mfn, int broken, uint32_t *status);
>   int query_page_offline(mfn_t mfn, uint32_t *status);
> +bool page_is_offlinable(mfn_t mfn);
>   
>   void heap_init_late(void);
>   
>
--------------FX5uLnqQvBBN0CgrzLqcHXju
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/18/25 9:55 AM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:753ce2a1-8d9c-41ba-a066-abf6f625cb60@suse.com">
      <pre wrap="" class="moz-quote-pre">Its uses in offline_page() and query_page_offline() make it reachable on
Arm, as long as XEN_SYSCTL_page_offline_op doesn't have any Arm-specific
code added. It being reachable was even mentioned in the commit
introducing it, claiming it "clearly shouldn't be called on ARM just
yet".

However, dropping the assertion from a function of this name is deemed
problematic. Rename it to better reflect its sole purpose outside of
x86-specific code.

Fixes: 214c4cd94a80 ("xen: arm: stub page_is_ram_type")
Signed-off-by: Jan Beulich <a class="moz-txt-link-rfc2396E" href="mailto:jbeulich@suse.com">&lt;jbeulich@suse.com&gt;</a>
---
v2: Rename the function used in common code.
---
The new name is chosen such that, down the road, offlining of non-RAM
could in principle also become possible.</pre>
    </blockquote>
    <pre>I think it could be useful to put in commit message.

LGTM: Reviewed-by: Oleksii Kurochko <a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>

~ Oleksii
</pre>
    <blockquote type="cite"
      cite="mid:753ce2a1-8d9c-41ba-a066-abf6f625cb60@suse.com">
      <pre wrap="" class="moz-quote-pre">

--- a/xen/arch/arm/mm.c
+++ b/xen/arch/arm/mm.c
@@ -64,10 +64,9 @@ int steal_page(
     return -EOPNOTSUPP;
 }
 
-int page_is_ram_type(unsigned long mfn, unsigned long mem_type)
+bool page_is_offlinable(mfn_t mfn)
 {
-    ASSERT_UNREACHABLE();
-    return 0;
+    return false;
 }
 
 unsigned long domain_get_maximum_gpfn(struct domain *d)
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -425,6 +425,11 @@ int page_is_ram_type(unsigned long mfn,
     return 0;
 }
 
+bool page_is_offlinable(mfn_t mfn)
+{
+    return page_is_ram_type(mfn_x(mfn), RAM_TYPE_CONVENTIONAL);
+}
+
 unsigned int page_get_ram_type(mfn_t mfn)
 {
     uint64_t last = 0, maddr = mfn_to_maddr(mfn);
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -1635,7 +1635,7 @@ static unsigned long mark_page_offline(s
 {
     unsigned long nx, x, y = pg-&gt;count_info;
 
-    ASSERT(page_is_ram_type(mfn_x(page_to_mfn(pg)), RAM_TYPE_CONVENTIONAL));
+    ASSERT(page_is_offlinable(page_to_mfn(pg)));
     ASSERT(spin_is_locked(&amp;heap_lock));
 
     do {
@@ -1711,7 +1711,7 @@ int offline_page(mfn_t mfn, int broken,
      * N.B. xen's txt in x86_64 is marked reserved and handled already.
      * Also kexec range is reserved.
      */
-    if ( !page_is_ram_type(mfn_x(mfn), RAM_TYPE_CONVENTIONAL) )
+    if ( !page_is_offlinable(mfn) )
     {
         *status = PG_OFFLINE_FAILED | PG_OFFLINE_NOT_CONV_RAM;
         return -EINVAL;
@@ -1851,7 +1851,7 @@ int query_page_offline(mfn_t mfn, uint32
 {
     struct page_info *pg;
 
-    if ( !mfn_valid(mfn) || !page_is_ram_type(mfn_x(mfn), RAM_TYPE_CONVENTIONAL) )
+    if ( !mfn_valid(mfn) || !page_is_offlinable(mfn) )
     {
         dprintk(XENLOG_WARNING, "call expand_pages() first\n");
         return -EINVAL;
--- a/xen/include/xen/mm.h
+++ b/xen/include/xen/mm.h
@@ -144,9 +144,11 @@ unsigned long avail_domheap_pages_region
 unsigned long avail_node_heap_pages(unsigned int nodeid);
 #define alloc_domheap_page(d,f) (alloc_domheap_pages(d,0,f))
 #define free_domheap_page(p)  (free_domheap_pages(p,0))
+
 int online_page(mfn_t mfn, uint32_t *status);
 int offline_page(mfn_t mfn, int broken, uint32_t *status);
 int query_page_offline(mfn_t mfn, uint32_t *status);
+bool page_is_offlinable(mfn_t mfn);
 
 void heap_init_late(void);
 

</pre>
    </blockquote>
  </body>
</html>

--------------FX5uLnqQvBBN0CgrzLqcHXju--


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 13:39:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 13:39:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086134.1444360 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uo04r-00070o-0X; Mon, 18 Aug 2025 13:39:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086134.1444360; Mon, 18 Aug 2025 13:39: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 1uo04q-00070h-UD; Mon, 18 Aug 2025 13:39:08 +0000
Received: by outflank-mailman (input) for mailman id 1086134;
 Mon, 18 Aug 2025 13:39:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YQjc=26=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1uo04p-0006nx-GW
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 13:39:07 +0000
Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com
 [2a00:1450:4864:20::632])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b5b57923-7c38-11f0-b898-0df219b8e170;
 Mon, 18 Aug 2025 15:39:05 +0200 (CEST)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-afcb78d5e74so701817666b.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 06:39:05 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afcdd010d4csm790828366b.85.2025.08.18.06.39.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Aug 2025 06:39: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>
X-Inumbo-ID: b5b57923-7c38-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1755524345; x=1756129145; darn=lists.xenproject.org;
        h=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=TC2/844wfRxMJ18+GlAvLJqaXFcGO14qdcOCaL4dm6Y=;
        b=DIcucqp0u0Sow0EIi8ukxw/wD+Ql+968DItqcgc3WVWDL7Btw6TzKuRDr4VBN8ouLx
         IzWth4bwi58H4AHdDESu7hlfES1bTOJ5aDTy6DfL/1wESjK/dMECTqfYovk0LF5p0L6c
         Refv8iOMJv2EbmQD8CgeDEoOYXgSPQc5RfguONsWr+q5vt0y6Pczy3gtEy1rAefRof0g
         o6d4lGa3CtP4cL+GisE5Prj5AUYDPSiOT1YuS1ozjXTgQtTi+NLPuRjIfvV8h400iESi
         A1RRyEe7nKLV/hpslKWuaKVd2Yb963elnK4xKSsqtZ/2aq42FZL+I+Ngdfh4BmvM7RHV
         hEBA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755524345; x=1756129145;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=TC2/844wfRxMJ18+GlAvLJqaXFcGO14qdcOCaL4dm6Y=;
        b=b/eo9yBMORHQbjSfCvd8luNsRB25Lo6IRLsduUdTfpOpV2tgh2rAkCF9Hf3+jpEOcA
         FIcbJ10o05yD/yZqfoLNGzV9yH1YKuu2+SuEiqRSu3GoiPknlGMFbbPZbbdLnbw1gK7G
         v/chGizvpK6r5KHcqgfBZGH6bC5ucQPBsn+taoXkM8dH7d32/KdIqbP7317ScnVFHrqu
         aknxOe0QBIXSKi29oflTngT3QWWt+RPuoJpN17wu7tGrgMulykkiO5snaTkArKcQEwhF
         PFHRuyjC33u0WwR3/OQ1Uf5vTUIEvnVd2U/rHOTGv7MXVEzIN/jxU6cNv1Ch9Nl/0eKS
         agMQ==
X-Forwarded-Encrypted: i=1; AJvYcCX/2kFURJq1uy8ChWGxZLIg0PhNQUtkKBI9rZ1oxOWW5sU34rfgiopdzTPDTNfX6Rmghm48TcW/gHc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwRFmWwWDSZ/smlCgb6Chq3OPK9MNhYbN1NyI7PJbWeP52CKWd9
	F0WbByN7qRY5CptMQt/N5GeS1o6ZlDx7fk9GQK3Ial2bhdP/hQTsH15Y
X-Gm-Gg: ASbGnct2IIeXiur8V58GxANAMwtlSSAE+fY+5TlcaubrKM8cMTlmB5+yxDJtAjQTWXY
	zPZw97NHZl94DKt1HB/NXDYTmy3xOzIb38a4ouP/y/BouNxsn8a7eLr3+IZpMoAhqZYHAONaqu9
	hMosM+cwi+yBsT1rrBqJJfnoRKwR+WjJZVTWpQtx+hWT8/Nibgw9a6DwWZ5mvfPjywgpVWlOBM4
	6p4hhbG2Jtv+0zrbQUNEwUoV5r+SzL54+0vMO1OCXKSRBiEEyBN5yrrQnBrvDcRQyqg219hLXyW
	+3Fo6GvpdgJXZ5HGxZpjLtm2CHDPSKpML7yr/NpdTIFbfZnqZJd2C7/zc2TyGTvAzNpV1YiIiPp
	FwX5+YHXUvNWuaahzQzueRLoM9+gnpJCs4MkZ1vyJ1NgzsQZmwTVO82LykRqo6qU2Ai/kvKo=
X-Google-Smtp-Source: AGHT+IHjm0rZMpYZjl0ZYPm12EwnfvJq0+bNg2Vyh2b25408ZBszyLz6hGWudlmy9fN8cPvRJtmF1Q==
X-Received: by 2002:a17:907:2dac:b0:afa:1b05:69c3 with SMTP id a640c23a62f3a-afcdc3ab862mr1013590466b.47.1755524345060;
        Mon, 18 Aug 2025 06:39:05 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------9bLFxSR9aZ0wdvA79F6IpIYB"
Message-ID: <da5aae89-2a8a-4c29-aaa1-16af43f43785@gmail.com>
Date: Mon, 18 Aug 2025 15:39:03 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] tools/xl: hide xenstore-features behind option
To: Jan Beulich <jbeulich@suse.com>, Juergen Gross <jgross@suse.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20250815143236.27641-1-jgross@suse.com>
 <115eca26-32a3-403f-9bf6-553c6b20940c@suse.com>
 <6330d03a-b228-4946-bb5e-c0142d0df6c8@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <6330d03a-b228-4946-bb5e-c0142d0df6c8@suse.com>

This is a multi-part message in MIME format.
--------------9bLFxSR9aZ0wdvA79F6IpIYB
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 8/18/25 9:42 AM, Jan Beulich wrote:
> On 15.08.2025 16:35, Juergen Gross wrote:
>> + Release Manager
> While this surely doesn't hurt, my understanding is that bug fixes don't
> require release-acks just yet.

Yes, your understanding is correct.


~ Oleksii

>> On 15.08.25 16:32, Juergen Gross wrote:
>>> In order to be able to use "xl info" before Xenstore has been started
>>> or after it has crashed, hide obtaining the available Xenstore features
>>> behind the new option "-x".
>>>
>>> Fixes: ecce7970cfe7 ("tools/xl: add available Xenstore features to xl info output")
>>> Reported-by: Andrew Cooper<andrew.cooper3@citrix.com>
>>> Signed-off-by: Juergen Gross<jgross@suse.com>
>>> ---
>>>    docs/man/xl.1.pod.in     |  4 ++++
>>>    docs/man/xl.cfg.5.pod.in |  2 +-
>>>    tools/xl/xl_info.c       | 14 ++++++++++----
>>>    3 files changed, 15 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/docs/man/xl.1.pod.in b/docs/man/xl.1.pod.in
>>> index fe38724b2b..88ccf7ad82 100644
>>> --- a/docs/man/xl.1.pod.in
>>> +++ b/docs/man/xl.1.pod.in
>>> @@ -996,6 +996,10 @@ B<OPTIONS>
>>>    
>>>    List host NUMA topology information
>>>    
>>> +=item B<-x>, B<--xenstore>
>>> +
>>> +Show Xenstore features available.
>>> +
>>>    =back
>>>    
>>>    =item B<top>
>>> diff --git a/docs/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.in
>>> index f0c920b39d..acff45d308 100644
>>> --- a/docs/man/xl.cfg.5.pod.in
>>> +++ b/docs/man/xl.cfg.5.pod.in
>>> @@ -743,7 +743,7 @@ condition.
>>>    =back
>>>    
>>>    The features supported by the running Xenstore instance can be retrieved
>>> -via the B<xl info> command in dom0.
>>> +via the B<xl info -x> command in dom0.
>>>    
>>>    The default value is B<0xffffffff>, meaning that all possible Xenstore
>>>    features are visible by the guest.
>>> diff --git a/tools/xl/xl_info.c b/tools/xl/xl_info.c
>>> index eb019e3ee9..d3583cbf8f 100644
>>> --- a/tools/xl/xl_info.c
>>> +++ b/tools/xl/xl_info.c
>>> @@ -353,7 +353,7 @@ static void output_xenstore_info(void)
>>>        xs_close(xsh);
>>>    }
>>>    
>>> -static void print_info(int numa)
>>> +static void print_info(int numa, bool xs)
>>>    {
>>>        output_nodeinfo();
>>>    
>>> @@ -365,7 +365,8 @@ static void print_info(int numa)
>>>        }
>>>        output_xeninfo();
>>>    
>>> -    output_xenstore_info();
>>> +    if (xs)
>>> +        output_xenstore_info();
>>>    
>>>        maybe_printf("xend_config_format     : 4\n");
>>>    
>>> @@ -631,14 +632,19 @@ int main_info(int argc, char **argv)
>>>        int opt;
>>>        static struct option opts[] = {
>>>            {"numa", 0, 0, 'n'},
>>> +        {"xenstore", 0, 0, 'x'},
>>>            COMMON_LONG_OPTS
>>>        };
>>>        int numa = 0;
>>> +    bool xs = false;
>>>    
>>> -    SWITCH_FOREACH_OPT(opt, "n", opts, "info", 0) {
>>> +    SWITCH_FOREACH_OPT(opt, "nx", opts, "info", 0) {
>>>        case 'n':
>>>            numa = 1;
>>>            break;
>>> +    case 'x':
>>> +        xs = true;
>>> +        break;
>>>        }
>>>    
>>>        /*
>>> @@ -648,7 +654,7 @@ int main_info(int argc, char **argv)
>>>        if (numa == 0 && argc > optind)
>>>            info_name = argv[optind];
>>>    
>>> -    print_info(numa);
>>> +    print_info(numa, xs);
>>>        return 0;
>>>    }
>>>    
--------------9bLFxSR9aZ0wdvA79F6IpIYB
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/18/25 9:42 AM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:6330d03a-b228-4946-bb5e-c0142d0df6c8@suse.com">
      <pre wrap="" class="moz-quote-pre">On 15.08.2025 16:35, Juergen Gross wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+ Release Manager
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
While this surely doesn't hurt, my understanding is that bug fixes don't
require release-acks just yet.</pre>
    </blockquote>
    <pre>Yes, your understanding is correct.


~ Oleksii</pre>
    <blockquote type="cite"
      cite="mid:6330d03a-b228-4946-bb5e-c0142d0df6c8@suse.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">On 15.08.25 16:32, Juergen Gross wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">In order to be able to use "xl info" before Xenstore has been started
or after it has crashed, hide obtaining the available Xenstore features
behind the new option "-x".

Fixes: ecce7970cfe7 ("tools/xl: add available Xenstore features to xl info output")
Reported-by: Andrew Cooper <a class="moz-txt-link-rfc2396E" href="mailto:andrew.cooper3@citrix.com">&lt;andrew.cooper3@citrix.com&gt;</a>
Signed-off-by: Juergen Gross <a class="moz-txt-link-rfc2396E" href="mailto:jgross@suse.com">&lt;jgross@suse.com&gt;</a>
---
  docs/man/xl.1.pod.in     |  4 ++++
  docs/man/xl.cfg.5.pod.in |  2 +-
  tools/xl/xl_info.c       | 14 ++++++++++----
  3 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/docs/man/xl.1.pod.in b/docs/man/xl.1.pod.in
index fe38724b2b..88ccf7ad82 100644
--- a/docs/man/xl.1.pod.in
+++ b/docs/man/xl.1.pod.in
@@ -996,6 +996,10 @@ B&lt;OPTIONS&gt;
  
  List host NUMA topology information
  
+=item B&lt;-x&gt;, B&lt;--xenstore&gt;
+
+Show Xenstore features available.
+
  =back
  
  =item B&lt;top&gt;
diff --git a/docs/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.in
index f0c920b39d..acff45d308 100644
--- a/docs/man/xl.cfg.5.pod.in
+++ b/docs/man/xl.cfg.5.pod.in
@@ -743,7 +743,7 @@ condition.
  =back
  
  The features supported by the running Xenstore instance can be retrieved
-via the B&lt;xl info&gt; command in dom0.
+via the B&lt;xl info -x&gt; command in dom0.
  
  The default value is B&lt;0xffffffff&gt;, meaning that all possible Xenstore
  features are visible by the guest.
diff --git a/tools/xl/xl_info.c b/tools/xl/xl_info.c
index eb019e3ee9..d3583cbf8f 100644
--- a/tools/xl/xl_info.c
+++ b/tools/xl/xl_info.c
@@ -353,7 +353,7 @@ static void output_xenstore_info(void)
      xs_close(xsh);
  }
  
-static void print_info(int numa)
+static void print_info(int numa, bool xs)
  {
      output_nodeinfo();
  
@@ -365,7 +365,8 @@ static void print_info(int numa)
      }
      output_xeninfo();
  
-    output_xenstore_info();
+    if (xs)
+        output_xenstore_info();
  
      maybe_printf("xend_config_format     : 4\n");
  
@@ -631,14 +632,19 @@ int main_info(int argc, char **argv)
      int opt;
      static struct option opts[] = {
          {"numa", 0, 0, 'n'},
+        {"xenstore", 0, 0, 'x'},
          COMMON_LONG_OPTS
      };
      int numa = 0;
+    bool xs = false;
  
-    SWITCH_FOREACH_OPT(opt, "n", opts, "info", 0) {
+    SWITCH_FOREACH_OPT(opt, "nx", opts, "info", 0) {
      case 'n':
          numa = 1;
          break;
+    case 'x':
+        xs = true;
+        break;
      }
  
      /*
@@ -648,7 +654,7 @@ int main_info(int argc, char **argv)
      if (numa == 0 &amp;&amp; argc &gt; optind)
          info_name = argv[optind];
  
-    print_info(numa);
+    print_info(numa, xs);
      return 0;
  }
  
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
</pre>
    </blockquote>
  </body>
</html>

--------------9bLFxSR9aZ0wdvA79F6IpIYB--


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 15:02:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 15:02:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086156.1444371 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uo1Mn-0001Et-K2; Mon, 18 Aug 2025 15:01:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086156.1444371; Mon, 18 Aug 2025 15:01: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 1uo1Mn-0001Em-Gk; Mon, 18 Aug 2025 15:01:45 +0000
Received: by outflank-mailman (input) for mailman id 1086156;
 Mon, 18 Aug 2025 15:01:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=h6u/=26=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1uo1Ml-0001EN-Nx
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 15:01:44 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3dbb82fd-7c44-11f0-b898-0df219b8e170;
 Mon, 18 Aug 2025 17:01:38 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id A0DC24EEBC45;
 Mon, 18 Aug 2025 17:01:37 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3dbb82fd-7c44-11f0-b898-0df219b8e170
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=1755529297;
	b=PZQXeXKOJ4bghzD4W7GFKMMLqwva2uVc40r9Z8/l8+UN2i87bKMgUJR4P4/1ZACjO99a
	 xl1n7+BpGQdfJHA9aVndhCE3/PtB1SLDYhpoVlYvCuHdvurY48NMlX2NB+uO2U91DQi37
	 nbQJC85V5Ioq1IWrbiEiC1PQpBH/6qKQIdS2hjchKmcbrH/wHm/u5Qg5IUv6brBD/ldjT
	 K3Mh56poxyUjYK4yzH7o9YKfepaSCR/eVT5szOfjtzeIPii5aw2I/NEINwSadfGNU5t5e
	 GYftO2kq6ckiQts/+TdB2CpSoYYKzIJjI9jHDwHu22qhrttv7L4iLPXIBXuNxyyX8uT8y
	 F0OgojVBDShQQ8pLD3PUjvDrjUGwO4WYZBifKdsffFidKe9kyO4Ytv9DyLNqTslfYn7i+
	 P4u4Q+1aZzpTUxMztc0UAGhKQMpBy04cQcPb9jZFy0TSKxeclzcPUTSmKAzboVHiUdMUB
	 lRSihHQ9nw0cMZ69GrW1ZcOOzuTh3Pl7+EhdtpJPe46DNmG+d1TBIBfIDPPktLjueIB9A
	 lT7RmyfiWL91OCidRnO7s55z2fC/8uJeYrz5qtcjbhkynGXo6QAsXo9LuSogRjvtJnuzc
	 76p18pVBJcoz04Ek1/Os84NOQPTMgkjg2utN0y39lxca2jL9T8Mt7xhECv/6UDA=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1755529297;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=1ZuPrBToaBkOGWnHFlIFT5yfpra2K8TrRBe3G1qCB+8=;
	b=Vdc3buTu5E1EVBiuv033mna/2zAQY56ikH9e0YZqjX0nt3CyJTexagHdr8Rrx8my9QId
	 U0+LbMQDPwoEdpO2y6C4gbpvBgDJad8zLguR1Yb3dqpNrb1VZk8qqZHbxRobRcZEIzu8w
	 lUa+AMHi/vCbFIzoOJYcgd/9ObTNadPlmKbZlZ2E3GFe+jacbi7IgPGYgM9V5JpH/BRyd
	 /Wj/XwREAHdoyPOmiGsC9XXkVo69nGvl9P8LrCm+Xkgg5K9rGpbZ6M0lK/v+L30/44HHQ
	 y1EAyWzMLJ87V9OAZkDaLwmobBNp4Vkz5WS68ZBDzphbrOZcXl1eyCSxLoreMz85Zq7x6
	 RbJF84Sqq0j+nMaIGunxmtOMHaiBchdFj7J9fD2NtibqQ161gEeJ1I6koBzHPAxS95dVl
	 bkIa3qi60emKvKse4Dzfc9GkkUE5kmFG0UeyifGRRrccM4JhO71UP6vhfUzoUGpzNy4Cu
	 otdsDzsshE+0JENGaNuLEbKJPAZ/FzTkWCi9lpGmOvVtiyyUVqWgU6n3W7FJ1BqEyxp9+
	 7Q4xF1+jI88ZW2CODEUGQpowF/b9xM50VCEyh4yrertMgBMLpvR0pOUUAto7UN5oZJ6+x
	 nsJmxUuAXUZPszcL9/OK7sE07Mfxw7k0w1ppAmIJIsw4Z/mMmIrY7FYwpaMelU4=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1755529297; bh=zz61sY2W1AxxQVKgnrNWGfR/hGljWoFkzi5m5fCJm5I=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=PKf4A51qCi8R4zPl5hG08oTpYyKMUssUT0N/JUMVmiqSqy/t/ENwW8bIc1ppMoswN
	 sZPDStFeZuwkah1pCwSxMTpzFLsT7OHPDBJAqOB2PBKdTL/mkKZJAbqLNu2vQysHJK
	 lr5mrQyphLUTRQjlsY3XZNWS9420iRGQvtGVqWlsoyAlTpKTpxEOS1Xygbi38nLLfM
	 s0f5Dvtss8ZVDL/Fhr0hqHlhRuTtw/gYRDe70EO92tdCWknZEGfnrZUa/dAAJfxQmb
	 lKLK3DfaM61x8yC8mApFQ90ROwA4Kj7f999Uwj4MMcu88ZMd2xSgT5518KoT/BZzSw
	 COfyz7heUSFCQ==
MIME-Version: 1.0
Date: Mon, 18 Aug 2025 17:01:37 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: Jan Beulich <jbeulich@suse.com>, Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Andrew Cooper
 <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Bertrand Marquis
 <bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 xen-devel@lists.xenproject.org
Subject: Re: [RFC PATCH] misra: allow conversion from unsigned long to
 function pointer
In-Reply-To: <c9ac9466-5f22-450b-9def-f79d2d4a6233@epam.com>
References: <8cbc9e6d881661d0d7a1055cbcef5a65e20522be.1755109168.git.dmytro_prokopchuk1@epam.com>
 <06120b08-7ce8-4d03-b3cd-cbb22547eca3@suse.com>
 <6990512dab007bfa51e4281dda3cc2f0@bugseng.com>
 <c9ac9466-5f22-450b-9def-f79d2d4a6233@epam.com>
Message-ID: <a8b9ed4cf80885355a4d29ae4936a8c0@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

On 2025-08-18 12:16, Dmytro Prokopchuk1 wrote:
> On 8/14/25 23:43, Nicola Vetrini wrote:
>> On 2025-08-14 10:36, Jan Beulich wrote:
>>> On 13.08.2025 20:27, Dmytro Prokopchuk1 wrote:
>>>> ...
>>>> 
>>>> from `vaddr_t' (that is `unsigned long') to `switch_ttbr_fn*' (that
>>>> is `void(*)(unsigned long)')
>>>> 
>>>> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
>>>> ---
>>>> This is just a RFC patch.
>>>> The commit message is not important at this stage.
>>>> 
>>>> I am seeking comments regarding this case.
>>>> 
>>>> Thanks.
>>>> ---
>>>> Â automation/eclair_analysis/ECLAIR/deviations.ecl |Â  8 ++++++++
>>>> Â docs/misra/deviations.rstÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  | 10 ++++++++++
>>>> Â docs/misra/rules.rstÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  |Â  8 +++++++-
>>>> Â xen/arch/arm/arm64/mmu/mm.cÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  |Â  2 ++
>>>> Â 4 files changed, 27 insertions(+), 1 deletion(-)
>>>> 
>>>> diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/
>>>> automation/eclair_analysis/ECLAIR/deviations.ecl
>>>> index ebce1ceab9..f9fd6076b7 100644
>>>> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
>>>> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
>>>> @@ -365,6 +365,14 @@ constant expressions are required.\""
>>>> Â }
>>>> Â -doc_end
>>>> 
>>>> +-doc_begin="The conversion from unsigned long to a function pointer
>>>> does not lose any information, provided that the source type has
>>>> enough bits to restore it."
>>>> +-config=MC3A2.R11.1,casts+={safe,
>>>> +Â  "from(type(canonical(builtin(unsigned long))))
>>>> +Â Â  &&to(type(canonical(__function_pointer_types)))
>>>> +Â Â  &&relation(definitely_preserves_value)"
>>>> +}
>>>> +-doc_end
>>>> +
>> 
>> This check is not quite targeted at this situation, as the behaviour 
>> of
>> different compilers is a bit of a grey area (even GCC, though that 
>> works
>> in practice). The relation is mostly aimed at testing whether the
>> pointer are represented using the same number of bits as unsigned long
>> (which happens to be the case fortunately).
> 
> Hi Nicola.
> 
> Well, we're telling Eclair the conversion types from() and to(), but 
> can
> Eclair determine their sizes (in bits) for particular architecture?
> I mean, is it possible to avoid this "sizeof(unsigned long) ==
> sizeof(void (*)())" in source code using only Eclair configs?
> 
> Dmytro.
> 

Unfortunately no. ECLAIR knowns the number of bytes used to represent 
pointer and unsigned long, but what it cannot tell is whether the bits 
are preserved after being converted. What we can do, as it was done 
here, is provide a written justification that this is indeed the case 
for the toolchain we care about (GCC in the specific case). I suggest 
having both the config and the assertion to be extra sure that the 
assumption is never broken (despite being very unlikely).

>> 
>>>> Â -doc_begin="The conversion from a function pointer to a boolean has
>>>> a well-known semantics that do not lead to unexpected behaviour."
>>>> Â -config=MC3A2.R11.1,casts+={safe,
>>>> Â Â  "from(type(canonical(__function_pointer_types)))
>>>> diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
>>>> index 3c46a1e47a..27848602f6 100644
>>>> --- a/docs/misra/deviations.rst
>>>> +++ b/docs/misra/deviations.rst
>>>> @@ -348,6 +348,16 @@ Deviations related to MISRA C:2012 Rules:
>>>> Â Â Â Â Â Â Â  to store it.
>>>> Â Â Â Â Â  - Tagged as `safe` for ECLAIR.
>>>> 
>>>> +Â Â  * - R11.1
>>>> +Â Â Â Â  - The conversion from unsigned long to a function pointer does
>>>> not lose any
>>>> +Â Â Â Â Â Â  information or violate type safety assumptions if the
>>>> unsigned long type
>>>> +Â Â Â Â Â Â  is guaranteed to be at least as large as a function pointer.
>>>> This ensures
>>>> +Â Â Â Â Â Â  that the function pointer address can be fully represented
>>>> without
>>>> +Â Â Â Â Â Â  truncation or corruption. Macro BUILD_BUG_ON can be
>>>> integrated into the
>>>> +Â Â Â Â Â Â  build system to confirm that 'sizeof(unsigned long) >=
>>>> sizeof(void (*)())'
>>>> +Â Â Â Â Â Â  on all target platforms.
>>> 
>>> If sizeof(unsigned long) > sizeof(void (*)()), there is loss of
>>> information.
>>> Unless (not said here) the unsigned long value itself is the result 
>>> of
>>> converting a function pointer to unsigned long. Whether all of that
>>> together
>>> can be properly expressed to Eclair I don't know. Hence, as Teddy 
>>> already
>>> suggested, == may want specifying instead.
>>> 
>> 
>> +1; it might be worth to add both the eclair config and the
>> BUILD_BUG_ON, noting that neither is sufficient on its own: unless the
>> compiler guarantees not to fiddle with the value is unaltered when 
>> cast
>> back and forth all checks on the number of bits are moot.
>> 
>>>> --- a/xen/arch/arm/arm64/mmu/mm.c
>>>> +++ b/xen/arch/arm/arm64/mmu/mm.c
>>>> @@ -150,6 +150,7 @@ void __init relocate_and_switch_ttbr(uint64_t 
>>>> ttbr)
>>>> Â Â Â Â  vaddr_t id_addr = virt_to_maddr(relocate_xen);
>>>> Â Â Â Â  relocate_xen_fn *fn = (relocate_xen_fn *)id_addr;
>>>> Â Â Â Â  lpae_t pte;
>>>> +Â Â Â  BUILD_BUG_ON(sizeof(unsigned long) < sizeof(fn));
>>>> 
>>>> Â Â Â Â  /* Enable the identity mapping in the boot page tables */
>>>> Â Â Â Â  update_identity_mapping(true);
>>>> @@ -178,6 +179,7 @@ void __init switch_ttbr(uint64_t ttbr)
>>>> Â Â Â Â  vaddr_t id_addr = virt_to_maddr(switch_ttbr_id);
>>>> Â Â Â Â  switch_ttbr_fn *fn = (switch_ttbr_fn *)id_addr;
>>>> Â Â Â Â  lpae_t pte;
>>>> +Â Â Â  BUILD_BUG_ON(sizeof(unsigned long) < sizeof(fn));
>>>> 
>>>> Â Â Â Â  /* Enable the identity mapping in the boot page tables */
>>>> Â Â Â Â  update_identity_mapping(true);
>>> 
>>> BUILD_BUG_ON() is a statement, not a declaration, and hence wants
>>> grouping
>>> as such. Question is whether we indeed want to sprinkle such checks 
>>> all
>>> over the code base. (I expect the two cases here aren't all we have.)
>>> 
>> 
>> +1 as well. I would expect such check to live e.g. in compiler.h or 
>> any
>> similarly general header, since this is a widespread and largely arch-
>> neutral property that Xen wants to be always true I believe.
>> 

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 15:19:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 15:19:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086166.1444380 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uo1du-0002wY-Ue; Mon, 18 Aug 2025 15:19:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086166.1444380; Mon, 18 Aug 2025 15:19: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 1uo1du-0002wR-SD; Mon, 18 Aug 2025 15:19:26 +0000
Received: by outflank-mailman (input) for mailman id 1086166;
 Mon, 18 Aug 2025 15:19:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/WGh=26=net-space.pl=dkiper@srs-se1.protection.inumbo.net>)
 id 1uo1du-0002wL-Jp
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 15:19:26 +0000
Received: from dibed.net-space.pl (dibed.net-space.pl [84.10.22.86])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b6fcecb5-7c46-11f0-b898-0df219b8e170;
 Mon, 18 Aug 2025 17:19:21 +0200 (CEST)
Received: from router-fw.i.net-space.pl ([192.168.52.1]:52594 "EHLO
 tomti.i.net-space.pl") by router-fw-old.i.net-space.pl with ESMTP
 id S2273171AblHRPTT (ORCPT <rfc822;xen-devel@lists.xenproject.org>);
 Mon, 18 Aug 2025 17:19:19 +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>
X-Inumbo-ID: b6fcecb5-7c46-11f0-b898-0df219b8e170
X-Comment: RFC 2476 MSA function at dibed.net-space.pl logged sender identity as: dkiper
Date:	Mon, 18 Aug 2025 17:19:17 +0200
From:	Daniel Kiper <dkiper@net-space.pl>
To:	arraybolt3@gmail.com
Cc:	grub-devel@gnu.org, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v5 2/3] include/xen: Add warning comment for cmd_line
Message-ID: <20250818151917.66iwgczi5t3ildrs@tomti.i.net-space.pl>
References: <20250814013645.2488043-1-arraybolt3@gmail.com>
 <20250814013645.2488043-3-arraybolt3@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250814013645.2488043-3-arraybolt3@gmail.com>
User-Agent: NeoMutt/20170113 (1.7.2)

On Wed, Aug 13, 2025 at 08:36:44PM -0500, arraybolt3@gmail.com wrote:
> From: Aaron Rainbolt <arraybolt3@gmail.com>
>
> The cmd_line field of the start_info struct is not guaranteed to be
> NUL-terminated, even though it is intended to contain a NUL-terminated
> string. Add a warning about this in a comment so future consumers of
> this field know to check it for a NUL terminator before using it.
>
> Signed-off-by: Aaron Rainbolt <arraybolt3@gmail.com>

Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>

Daniel


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 15:52:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 15:52:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086182.1444391 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uo2A6-0007qq-D3; Mon, 18 Aug 2025 15:52:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086182.1444391; Mon, 18 Aug 2025 15:52: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 1uo2A6-0007qj-AV; Mon, 18 Aug 2025 15:52:42 +0000
Received: by outflank-mailman (input) for mailman id 1086182;
 Mon, 18 Aug 2025 15:52:41 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/WGh=26=net-space.pl=dkiper@srs-se1.protection.inumbo.net>)
 id 1uo2A5-0007qd-C3
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 15:52:41 +0000
Received: from dibed.net-space.pl (dibed.net-space.pl [84.10.22.86])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5e5096c3-7c4b-11f0-a32a-13f23c93f187;
 Mon, 18 Aug 2025 17:52:40 +0200 (CEST)
Received: from router-fw.i.net-space.pl ([192.168.52.1]:52762 "EHLO
 tomti.i.net-space.pl") by router-fw-old.i.net-space.pl with ESMTP
 id S2270817AblHRPwj (ORCPT <rfc822;xen-devel@lists.xenproject.org>);
 Mon, 18 Aug 2025 17:52:39 +0200
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5e5096c3-7c4b-11f0-a32a-13f23c93f187
X-Comment: RFC 2476 MSA function at dibed.net-space.pl logged sender identity as: dkiper
Date:	Mon, 18 Aug 2025 17:52:37 +0200
From:	Daniel Kiper <dkiper@net-space.pl>
To:	arraybolt3@gmail.com
Cc:	grub-devel@gnu.org, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v5 3/3] kern/xen: Add Xen command line parsing
Message-ID: <20250818155237.rj6alei6vydwjfyp@tomti.i.net-space.pl>
References: <20250814013645.2488043-1-arraybolt3@gmail.com>
 <20250814013645.2488043-4-arraybolt3@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250814013645.2488043-4-arraybolt3@gmail.com>
User-Agent: NeoMutt/20170113 (1.7.2)

On Wed, Aug 13, 2025 at 08:36:45PM -0500, arraybolt3@gmail.com wrote:
> From: Aaron Rainbolt <arraybolt3@gmail.com>
>
> Xen traditionally allows customizing guest behavior by passing arguments
> to the VM kernel via the kernel command line. This is no longer possible
> when using GRUB with Xen, as the kernel command line is decided by the
> GRUB configuration file within the guest, not data passed to the guest
> by Xen.
>
> To work around this limitation, enable GRUB to parse a command line
> passed to it by Xen, and expose data from the command line to the GRUB
> configuration as environment variables. These variables can be used in
> the GRUB configuration for any desired purpose, such as extending the
> kernel command line passed to the guest. The command line format is
> inspired by the Linux kernel's command line format.
>
> To reduce the risk of misuse, abuse, or accidents in production, the
> command line will only be parsed if it consists entirely of 7-bit ASCII
> characters, only alphabetical characters and underscores are permitted
> in variable names, and all variable names must start with the string
> "xen_grub_env_". This also allows room for expanding the command line
> arguments accepted by GRUB in the future, should other arguments end up
> becoming desirable in the future.
>
> Signed-off-by: Aaron Rainbolt <arraybolt3@gmail.com>

Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>

... but two nits below...

> +      else if (is_key_safe (ps.current_word, ps.current_word_len - 1) == true)
> +        {
> +          param_dict_pos = param_dict_len++;
> +          param_keys[param_dict_pos] = grub_malloc (ps.current_word_len);
> +          if (param_keys == NULL)
> +            goto cleanup_main;
> +          param_vals[param_dict_pos] = grub_malloc (2);

grub_zalloc()

> +          if (param_vals == NULL)
> +            goto cleanup_main;
> +
> +          grub_strncpy (param_keys[param_dict_pos], ps.current_word,
> +			ps.current_word_len);
> +          if (param_keys[param_dict_pos][ps.current_word_len - 1] != '\0' )
> +            grub_fatal ("NUL terminator missing from key during Xen cmdline parsing");
> +          grub_strcpy (param_vals[param_dict_pos], "1");

*param_vals[param_dict_pos] = '1';

I can fix these two issues for you before push...

If I do not hear any objections from Xen community in a week or
so I will push this patch into GRUB upstream git repo.

Anyway, thank you for doing this work!

Daniel


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 16:35:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 16:35:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086198.1444400 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uo2pV-0004vf-Jb; Mon, 18 Aug 2025 16:35:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086198.1444400; Mon, 18 Aug 2025 16:35:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uo2pV-0004vY-GY; Mon, 18 Aug 2025 16:35:29 +0000
Received: by outflank-mailman (input) for mailman id 1086198;
 Mon, 18 Aug 2025 16:35:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2jcs=26=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1uo2pU-0004vS-0z
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 16:35:28 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20627.outbound.protection.outlook.com
 [2a01:111:f403:2415::627])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5531994b-7c51-11f0-b898-0df219b8e170;
 Mon, 18 Aug 2025 18:35:22 +0200 (CEST)
Received: from DM6PR02CA0156.namprd02.prod.outlook.com (2603:10b6:5:332::23)
 by DS0PR12MB8018.namprd12.prod.outlook.com (2603:10b6:8:149::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.24; Mon, 18 Aug
 2025 16:35:17 +0000
Received: from DS3PEPF000099DF.namprd04.prod.outlook.com
 (2603:10b6:5:332:cafe::7f) by DM6PR02CA0156.outlook.office365.com
 (2603:10b6:5:332::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9031.19 via Frontend Transport; Mon,
 18 Aug 2025 16:35:17 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 DS3PEPF000099DF.mail.protection.outlook.com (10.167.17.202) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Mon, 18 Aug 2025 16:35:17 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 18 Aug
 2025 11:35:16 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.10; Mon, 18 Aug
 2025 09:35:16 -0700
Received: from [172.28.207.84] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Mon, 18 Aug 2025 11:35: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>
X-Inumbo-ID: 5531994b-7c51-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=w672Rkwg/MCUQBHNWjxRZ9l6H5uqOSQFJgHYCqUC1iomIdkm+Tr/8S+Wy/1fbYf5Xra2Bf0v2nsjvuPi5UJsNebsipTU7Rk1I9/akMjdaKwhb6UStqlQkfd8M8wbv1kKtd2WQl4LwPcVwawJSns8fzs/I5prZBn39cD+U3e0GvMOTZzn5hbTOu5yaK6itFy47jwr69VkFvyIO3LMpa4uAvf05gV6mbVbW+AvmxoB77m9iGYkTQBShmyz9tKhRhOUjZA3QwPQxFa9yV55BTp5/nyxKSIaPeuAfCZtZCb13IugxOkmrv2RFxpMBTTPnZotZ8+QAU5ivvzwXCDL3gZNjw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=kWpSyxHNYwQx62CGBbVD6f3nPwEYF6Sx7plO0XOibH0=;
 b=sBclYwuGbcw7WXCGPXxDGc1sglWJAj1ySFBT5pM0LZG+/qe7xl4etzxxcb09y6AiUzfoXR+XzFpvi9MhTXPS8Dk9JHti4EKklWuMNubTKJ9op7lRbzGiN7g/pI8d1l7EPek1nbPrOZ8WfV4F4hdmNLVhwnG9LWIknuLIQDsQ2QroecK6UwTO99e/g5I4gr5s74WzjFLZe5RMekz8o+yD3PSX2fQ3cAPlc/SS+resGCzCV77xC0u4t8wf037XlDyb0V/O4ZvlAlSfqyQUm604hhJOpVOUt/gkmfJxsXw46JP+Vvjc/IcaG1S0qe3KoYrioX3Cc3ccYscRN2XvnAXBpg==
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=kWpSyxHNYwQx62CGBbVD6f3nPwEYF6Sx7plO0XOibH0=;
 b=tgY12RKrkBjtt4rooZyC+i2MYfmcyvXgg1Y5LrsTOq/8Rc/z6Xa6PlUKsT5NHZ9iqcgMxbiIhpsI7EQaTfkjsuO1zmDnPXCNNseR1xABcA5OMLs5SdVYXJ8Noj+67jf55iyz8P/YEbLUT28glGLtm8C9TmliIaOTCTebyw/+vHs=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <8e1efc16-2d82-4d7b-8fad-6af223d1fb6f@amd.com>
Date: Mon, 18 Aug 2025 12:35:16 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] xenconsole: Add connected flag
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>,
	<xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@vates.tech>,
	"Alejandro.GarciaVallejo@amd.com" <Alejandro.GarciaVallejo@amd.com>
References: <20250807015606.4427-1-jason.andryuk@amd.com>
 <25745d45-d506-4277-8ccd-302cd1316707@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <25745d45-d506-4277-8ccd-302cd1316707@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS3PEPF000099DF:EE_|DS0PR12MB8018:EE_
X-MS-Office365-Filtering-Correlation-Id: 3191ca6c-be64-465b-bcd9-08ddde753714
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|36860700013|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bHl1ZEJyazZadmFnemoxdlZQdGMzNlNZZjR1RkNyY0p5OGxaMjg3RkpReTRT?=
 =?utf-8?B?aVFXWXNWeTBqZk5uanlqSzd6WG5Da3FJanRuSXlvemxjNjJRV1pRVDMrUm5l?=
 =?utf-8?B?YXNVOHcxU2w2UjlXRlJkNHVvcW1DQndGQXkwUHBqczE1Nm5JSi9NS05hajJz?=
 =?utf-8?B?UU1XV1Yvcit5SVlHWjB3M2Q2MnMvaHhxaTRja1dRLzNBNFR1ZUxLend1U0dX?=
 =?utf-8?B?ZG1IdnJOVTlSVVBiYUo2V2g1cENQZjd1N3RKK0pQSElySWhhWllVdEw0bFVq?=
 =?utf-8?B?dWgyeWlSYXBPcFd6VzVlMlFpN2RDaWpUakh4UUdBOEh2MldCQk53Y0RseEVK?=
 =?utf-8?B?NGRmeEliM0Q5dEdKdU90djk1Y1FuSncvbENPb1pHb0RBbHJ6SlhCSzVFQWl2?=
 =?utf-8?B?ZDRYaUVjUkp3cVo4K3Z5ZUFHeGZjMlp2Yk5MeE1pbjRaQVhQL0Z6VUlEMnh6?=
 =?utf-8?B?RmdFd0lhYm00ZWJ3R1JJMTMxVm5BbFpjRm5HaEMrbFkvK2l0RWhMZ1hRTzBX?=
 =?utf-8?B?clduUHB3cDMzYmU1dUU5aEVsQ3V4QlBTcTkzYSswREtGZjVEbzhTY1Rqanl1?=
 =?utf-8?B?TDF0bHN6Y2RRMnlNeUF1WWhzVEVaaUVEYWZIVEJ5TnBWaE4reHU5NzFoajB1?=
 =?utf-8?B?KzBlbFhYTVhYQkk0cjhHMFNjN0FOdkUvQ2ZaVmR2VUhRNi9TenBUZFRZOWJk?=
 =?utf-8?B?TlVub3VzVlU0cmtzcWFYNFdBdjIxcTJYMmo3U2kxWnY1bjNwSjVSK0FNL0JE?=
 =?utf-8?B?MkErL0EyUVZxNlZ3dTE4TEI2UFFQcnJndUdVMWZrZlZoTHZ0aGNydGRnSFha?=
 =?utf-8?B?NkVpV0w4TStMNUdQajFXeWd3SnpwdnMyaGNoZE9kSUFETmZtWk45cVpXeUJp?=
 =?utf-8?B?NlQxdlZUUFVvK2tNYlF6Qm52QlBIakFLNjB4NURSdEEzSXZQQ2JXRklhQzhJ?=
 =?utf-8?B?c2R2TG5YVkxScCsrU3ZObTI0bnAxNDV0dVMxaUFtMlIrUksyaytOZWJRb2tn?=
 =?utf-8?B?Q2ZNbHFEdTU5d0QrQ0hjNUFZZDVSOVZrM0FlNUVockNMUDR2QXNRT2xGTWdn?=
 =?utf-8?B?V2t1QUZ1RXlLN1RCVW42alJVaVhzL0lMalVibnlGRWlaakZ1ZFJVYWt2MmpP?=
 =?utf-8?B?elZZSUxEQWpZNHcrc2drMEdyb0Fmc2pRajVWUEtOSjJTczVIMGhzQVJ0cm4z?=
 =?utf-8?B?ZktOMGFPMzFNTnhxejFHTWpKLzJSUjhISllYWGgzZnowMTNqVG1rU3BNb05u?=
 =?utf-8?B?U2tKZ05SajQ3YXlucHNKL2xobTZSYmVOWTZLVnF4M2lwc1dOalNLM0JLYXBK?=
 =?utf-8?B?TncxbTJ4MkxzRWFuZFBPSS9SR2VzK1l2NkxoOHlKUXI5dUJIb3pkbjEvTWdL?=
 =?utf-8?B?WW9BVVNzdWRaT2V0czh6aGh0dXRtL21qcm5KNVIrelJFZnQ4Q0tvU2VXT2FN?=
 =?utf-8?B?QW1QWnpEWTFpYU9TQzV0eW9ZdjhDMmQ2dmRDK0VYeitOa1M2VTBBNmdpdita?=
 =?utf-8?B?VVR4M3ViNGJUN0YvcmxzVEN4VTJSWmN0S0hZYk5rR0gvdnRjWUh5RkxKSmVT?=
 =?utf-8?B?NGR3cWNTbmdFanN0UkJFcjdpRlZCSFZ3UHc1Vmgvd2F2VHpIMlJxNlB3QmZ4?=
 =?utf-8?B?OXkxOW5ISzZ1YTE1QmgreWROQXB3eW1iWFdMTlFxWitYdTVFTEREUGJPdE0y?=
 =?utf-8?B?aGc5MnNoUkptYlNKRUFBbDBpeFFDNkc5am5RTVBqeHBFZDNuSmVEVm9RMGpP?=
 =?utf-8?B?MTQ2ZDg0NEZUM1RlZHpia05FYkVYVVRjbHdQQU5maVhlaUlaT0d0Tlh0eEZi?=
 =?utf-8?B?VFZKMnljUFcvT1hSeWtHaWhiUVEwYkNwaEhFNlBaZGFxM1JLUnBZSmlTTXdD?=
 =?utf-8?B?dTB6WHN6TFgxUEdyZmVLWDJOMThLdUlUbHdEbzFwK0laTVYzbklzZVJVL2Ft?=
 =?utf-8?B?VnFUNGhvUUJIb21DNXl6QVF1TGJRd0FidXJVK3ZwZWU4MmxoV0hKUGtQdS82?=
 =?utf-8?B?dDhQSWhBdG1tNzRWRmNYYVJObGNBdTJuRmZVZlRQZ2hXTHF6RUlPb0ZEc052?=
 =?utf-8?Q?roEB/K?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700013)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Aug 2025 16:35:17.2301
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3191ca6c-be64-465b-bcd9-08ddde753714
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS3PEPF000099DF.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB8018

On 2025-08-07 03:00, JÃ¼rgen GroÃŸ wrote:
> On 07.08.25 03:56, Jason Andryuk wrote:
>> With hyperlaunch, a domU can start before its console ring is connected
>> by xenconsoled.Â  With nothing emptying the ring, it can quickly fill
>> during boot.Â  In domU_write_console(), __write_console() returns 0 when
>> the ring is full.Â  This loops spins until xenconsoled starts emptying
>> the ring:
>>
>> Â Â Â Â Â Â Â Â  while (len) {
>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  ssize_t sent = __write_console(cons, data, len);
>>
>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  if (sent < 0)
>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  return sent;
>>
>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  data += sent;
>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  len -= sent;
>>
>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  if (unlikely(len))
>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  HYPERVISOR_sched_op(SCHEDOP_yield, NULL);
>> Â Â Â Â Â Â Â Â  }
>>
>> The goal of this patch is to add a way for the frontend to know when a
>> console is connected.Â  This patch adds a new flag to the end of the
>> console ring structure.Â  It is used for the backend to indicate that it
>> has connected and started servicing the page.
>>
>> The two values are
>> XENCONSOLE_DISCONNECTED 1
>> XENCONSOLE_CONNECTEDÂ Â Â  0
>>
>> XENCONSOLE_DISCONNECTED indicates to the guest that ring is
>> disconnected, so it will not be serviced.Â  The guest can avoid writing
>> into it in that case.Â  A domU can use console hypercalls and only
>> transition to the ring when it is connected and won't fill and block.
>>
>> Once the backend (xenconsoled) maps and starts servicing the
>> console, the flag will be set to XENCONSOLE_CONNECTED (0) to indicate
>> the backend state to the frontend.
>>
>> The connected value as 0 will be match the default of a zero-ed console
>> page.Â  Hyperlaunch can set the flag to XENCONSOLE_DISCONNECTED and let
>> xenconsoled set to XENCONSOLE_CONNECTED.
> 
> I think libxenguest should set XENCONSOLE_DISCONNECTED as well (see below).
> 
>>
>> Old domU hvc_xen drivers won't check the flag.
>> New domU hvc_xen running on a new xen/xenconsoled will work properly.
>> New domU hvc_xen on old xen/xenconsoled should only see a 0 for the flag
>> and behave as if connected.
>>
>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> 
> Adapt the title of the patch?
> 
>> ---
>> v1:
>> Remove evtchn notify call
>> Set connected later when there is no error
>>
>> RFC v3:
>> Flip flag values so 0 is connected.
>>
>> The other option would be to add:
>> uint32_t features
>> uint32_t connected
>>
>> New domUs would check features for a magic value and/or flag to know
>> they can rely on connected transitioning.
>>
>> I think making XENCONSOLE_CONNECTED == 0 side steps the need for
>> an additional features field.Â  As long as assuming zero-ed memory is
>> acceptable.Â  However, this only matters for a hyperlaunched guest -
>> xenconsoled will normally readily connect the console and set the value.
> 
> I'd like to consider other cases as well, e.g. a console driver domain.
> So any instance creating a domain with a console ring page should set the
> flag initially to "disconnected".

Setting disconnected for domain creation is fine.  Looking at 
libxenguest, there is also domain restore.  There the console could be 
set to disconnected again before domain restore.  Again, this should 
work and xenconsoled would set it connected again.  I originally 
intended for a single one way transition disconnected -> connected.

Alternatively, restore could skip setting disconnected and just assume 
xenconsoled will promptly attach.  Restore implies a toolstack is 
running, so there isn't the indefinite time period that is involved with 
hyperlaunch/dom0less.  But I guess an actively changing flag accurately 
shows the state, so that is preferable.

>> This assumes that existing frontends are not using the flag space for
>> some other use.
>>
>> Removed idea:
>> Send an event channel notification to let the domU know that xenconsoled
>> is connected.Â  Xenstored does similar, but for xenstore, the xenstore
>> driver owns the event channel/irq and can rebind it.Â  For hvc_xen, the
>> hvc subsystem owns the irq, so it isn't readily available for rebinding.
>> This is not implemented.
>>
>> I had the idea for the kernel to use a static key and switch writing
>> from the hypercall to the PV ring once connected.Â  It didn't actually
>> work in my short attempt - I think changing the static key from within
>> an interupt was wrong.Â  I fell back to just checking the flag directly
> 
> You'd need to do the static key changing from a worker thread instead.

My static key idea has an issue.  The flag needs to be per-instance, 
primary console and any additional PV consoles, but the kernel has only 
a single function to handle all of them.  Either the primary console 
needs dedicated ops, or the the flag would need to be checked in the 
function.  If the flag will toggle back and forth, then a static key may 
not be appropriate.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 17:19:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 17:19:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086213.1444411 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uo3Ve-0001Y5-HJ; Mon, 18 Aug 2025 17:19:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086213.1444411; Mon, 18 Aug 2025 17:19: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 1uo3Ve-0001Xy-EF; Mon, 18 Aug 2025 17:19:02 +0000
Received: by outflank-mailman (input) for mailman id 1086213;
 Mon, 18 Aug 2025 17:19:01 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=GLF1=26=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1uo3Vd-0001Xs-Hg
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 17:19:01 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6e33ebb8-7c57-11f0-a32a-13f23c93f187;
 Mon, 18 Aug 2025 19:19:00 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-45a1b05fe23so26263755e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 10:19:00 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b42a84417sm6984635e9.13.2025.08.18.10.18.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Aug 2025 10:18: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>
X-Inumbo-ID: 6e33ebb8-7c57-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755537540; x=1756142340; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=dWRYqud6Lb4cUDIwuvnzoqgDZEUinYxens6/Ehw6Yfg=;
        b=RMcRLhSscNr41a+A4JTm1gt1KGONWXwnIuse5QXZ2RlTyY1noMi5gJDmYxurYnwaNt
         CIl0gfchqGLGc9Kq5OzIXr2LoVmJzD71eWu4OskCucA422NxELRdeb1ctglywQLps6wd
         r88xM5SiVXBP+rjxSbwnefxCIF/U4wQqH1ZiM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755537540; x=1756142340;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dWRYqud6Lb4cUDIwuvnzoqgDZEUinYxens6/Ehw6Yfg=;
        b=YtMJIBkapNRoapiwojbWj0UA0ElsDEzYQUDOGXWECfgewH9LCfnHzE6ZKhi5Exgvxp
         1YRCBF7PqFjNaMcVLXsgMt+KYqkTNS/qIHFTcmerUxD4D23zfOjhxjyAwiUsY9qACeG5
         6AHLvo5lPHGfaDDh27H7y+8b3WrXAToFKz8wN+SQM48ijBJmEPJ4wMtiJ962DJkwWtJz
         s+NZM4bK1/JhMu6BZTwxH2ypULk8LHwgAbv/j/YnmyOyIFk06znY2d8pKK8Ktn/avT5U
         Ez7XWAJw8hDwEjTeDq2WONo6lRPJ5yD25CQA8/OgjDULP69moZwgYGApbDE0dC0+Plkb
         feQA==
X-Forwarded-Encrypted: i=1; AJvYcCXUpEfqINGduNKX30QDXJIaL5xyFddk8K2T6dZHhxyrAkrQfBggXqlGZyPG6ghMbVV9RqFH8Taoef0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzXnksrmFIhjO/GvbhjC7gdBK8LVFZoFBhvKP3UJLdHpWYXpPz2
	8dvfmUslH3WSRoBhMlYA9Si2kwqfTBKRRlfcQOzrHWOmKE85m6P0/LiOHyE+gTvPr00=
X-Gm-Gg: ASbGncvdakiEoDoN3fHakEkEErN08rM9hDAw66VsFW69I+wVQpi1dOAx6JhBdhIzL9B
	Okfi/dvYm/ZOMGexb1EGn7a4CHdYGWoXVjQ/pJnu1+gcdSgsWn+xNFOFyrfAHwkxdXGWvT+ND2y
	jZvc2P1HeFZi/bErqG8Gr3qPzCfaBzn+yXhAYWxNUMiP+yKhDwb+ZHCuqw67NyxQg4wdvfFPfR4
	AR4eA70APqBNZn0HPErBVlhhvmVHkpwA7SHNL0z+dTSnOqDt2/2wetMuzIJ3XmH4YaVlZWCzt1z
	N8OTAoksR4cVdTvCZ0URxPIBJqQ1wu+BYF/+eXCJOQqGcU0OW6cSU5NiJcVWlu2DckmnUpQO9Fz
	4CF85VDsHgLrWkLoJ4uHY/UA59WjV/gihS2SKMGV2l3ST9xe8m0+D+h0V+iwUoGdmevCG
X-Google-Smtp-Source: AGHT+IHzzkl6vrQtNGNhdjbA8oz36nj+jXJ/KY9YhKjKlz/e0vzCD3dUUQoWokQ2ohP5OX5BTxKe1A==
X-Received: by 2002:a05:600c:470d:b0:458:a7fa:211d with SMTP id 5b1f17b1804b1-45a21868bd2mr103764485e9.29.1755537539610;
        Mon, 18 Aug 2025 10:18:59 -0700 (PDT)
Message-ID: <9657758b-6f10-46c6-84cb-14f425f412b8@citrix.com>
Date: Mon, 18 Aug 2025 18:18:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 23/22] x86/vmx: Adjust NMI handling for FRED
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808234920.1214924-1-andrew.cooper3@citrix.com>
 <d1a49f35-250a-4db5-88f7-fd0b8e6d1a1c@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: <d1a49f35-250a-4db5-88f7-fd0b8e6d1a1c@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18/08/2025 11:02 am, Jan Beulich wrote:
> On 09.08.2025 01:49, Andrew Cooper wrote:
>> --- a/xen/arch/x86/hvm/vmx/vmx.c
>> +++ b/xen/arch/x86/hvm/vmx/vmx.c
>> @@ -4209,8 +4209,18 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_regs *regs)
>>               ((intr_info & INTR_INFO_INTR_TYPE_MASK) ==
>>                MASK_INSR(X86_ET_NMI, INTR_INFO_INTR_TYPE_MASK)) )
>>          {
>> -            do_nmi(regs);
>> -            enable_nmis();
>> +            /*
>> +             * If we exited because of an NMI, NMIs are blocked in hardware,
>> +             * but software is expected to invoke the handler.
>> +             *
>> +             * Use INT $2.  Combined with the current state, it is the correct
>> +             * architectural state for the NMI handler,
> Not quite, I would say: For profiling (and anything else which may want to
> look at the outer context's register state from within the handler) we'd
> always appear to have been in Xen when the NMI "occurred".

We are always inside Xen when the NMI "occurred".

In fact there's a latent bug I didn't spot before.Â  Nothing appears to,
but if anything in do_nmi() were to to look at regs->entry_vector, it
will see stack rubble (release build) or poison (debug build).

Having gone searching, it's only the watchdog and oprofile which
configure perf counters with NMIs.Â  vPMU uses fixed interrupts, which
further calls into question it's utility.

>
>> and the IRET on the
>> +             * way back out will unblock NMIs.
>> +             *
>> +             * In FRED mode, we can spot this trick and cause the ERETS to
>> +             * unblock NMIs too.
>> +             */
>> +            asm ("int $2");
>>          }
>>          break;
>>      case EXIT_REASON_MCE_DURING_VMENTRY:
>> --- a/xen/arch/x86/traps.c
>> +++ b/xen/arch/x86/traps.c
>> @@ -2285,8 +2285,22 @@ void asmlinkage entry_from_xen(struct cpu_user_regs *regs)
>>          do_nmi(regs);
>>          break;
>>  
>> -    case X86_ET_HW_EXC:
>>      case X86_ET_SW_INT:
>> +        if ( regs->fred_ss.vector == 2 )
>> +        {
>> +            /*
>> +             * Explicit request from the the VMExit handler.  Rewrite the FRED
>> +             * frame to look like it was a real NMI, and go around again.
>> +             */
>> +            regs->fred_ss.swint = false;
>> +            regs->fred_ss.nmi = true;
>> +            regs->fred_ss.type = X86_ET_NMI;
>> +            regs->fred_ss.insnlen = 0;
>> +
>> +            return entry_from_xen(regs);
> Any particular reason to use recursion here (which the compiler may or may
> not transform)? In fact I'm having trouble seeing why you couldn't invoke
> do_nmi() here directly.

The first way I had entry_from_xen(), this was necessary to get the
right behaviour.Â  GCC did manage to transform it into a call to do_nmi().

But this has changed somewhat now so I think I can do it with a fallthrough.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 22:59:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 22:59:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086250.1444440 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uo8of-0006Lp-Aq; Mon, 18 Aug 2025 22:59:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086250.1444440; Mon, 18 Aug 2025 22:59:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uo8of-0006Li-8G; Mon, 18 Aug 2025 22:59:01 +0000
Received: by outflank-mailman (input) for mailman id 1086250;
 Mon, 18 Aug 2025 22:59:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SEV0=26=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1uo8oe-0006Lc-HN
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 22:59:00 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ea2798c7-7c86-11f0-b898-0df219b8e170;
 Tue, 19 Aug 2025 00:58:55 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id E32DF5C5FBA;
 Mon, 18 Aug 2025 22:58:53 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 66948C4CEEB;
 Mon, 18 Aug 2025 22:58:52 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ea2798c7-7c86-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755557933;
	bh=VKSa4rD1ftS7GKzMNosks2jfXJUiukfOvOE2jil13sE=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=hD67jX/65FQODlXx5NoQMzPFe5m4RR0BTVckxrsfVOXxHpRj6piZBXk7Ou8WAP1Xf
	 uXLsZem77KAofSugJbmNvWqpFDK55WH5gUn6ogTd4LJGvTvlEag11nsFFdUJYfbigu
	 DSYjOXBHWYWLAQ3hJGzAJbN9RaXolQ1eae7iQ5OxaD6Mq2J1tF8ZI6RmB74nsMeMTv
	 QEm8v0SQ1j9yzxfGwahgmC57rIE0VP7Zkuf/5SVrfHO1FplnHYXqYYc1JDfHdjEU+Q
	 gJUfFwxlTNrmKcgR3VtVkCxK/JNn9l+qwhXFk5wqVieuFDHk218p4hYN9dfOnQc1go
	 nQcdyTn/eIvWQ==
Date: Mon, 18 Aug 2025 15:58:51 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Julien Grall <julien@xen.org>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, 
    anthony.perard@vates.tech, michal.orzel@amd.com, jbeulich@suse.com, 
    roger.pau@citrix.com
Subject: Re: [PATCH] docs/sending-patches: add GitLab pipeline link
In-Reply-To: <9f5a77c1-ff99-40db-ae49-86e34cc1a391@xen.org>
Message-ID: <alpine.DEB.2.22.394.2508181550100.923618@ubuntu-linux-20-04-desktop>
References: <alpine.DEB.2.22.394.2508151310010.923618@ubuntu-linux-20-04-desktop> <9f5a77c1-ff99-40db-ae49-86e34cc1a391@xen.org>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Mon, 18 Aug 2025, Julien Grall wrote:
> Hi Stefano,
> 
> On 15/08/2025 21:12, Stefano Stabellini wrote:
> > When submitting patches to xen-devel, add a link to a successful
> > pipeline run.
> 
> Does this mean we have enough capacity to handle normal CI job + submission?

Yes, it should be OK, especially given that most regular contributors
already run CI jobs before submitting.


> Also, as we try to encourage people to use the gitlab CI. So we would probably
> also encourage them to write new tests because in a lot of cases we will add
> new code. So the pipeline is only going to confirm that we are regressing
> existing tests (which may be irrelevant to the subsystem modified).

Good point


> > Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> > 
> > diff --git a/docs/process/sending-patches.pandoc
> > b/docs/process/sending-patches.pandoc
> > index 1991932b68..6e1401ea22 100644
> > --- a/docs/process/sending-patches.pandoc
> > +++ b/docs/process/sending-patches.pandoc
> > @@ -314,3 +314,23 @@ A patch should always be sent **to** the xen-devel
> > mailing list
> >   of all touched code areas should get a copy of the mail via **Cc**. In
> > case
> >   some other recipients are known to be interested in the patch, they can be
> >   added via **Cc**, too.
> > +
> > +## Testing
> > +
> > +Xen Project uses a GitLab-based CI infrastructure. You can request to
> > +have your GitLab account added to the Xen Project organization on GitLab
> > +(https://gitlab.com/xen-project) by reaching out to THE REST maintainers
> > +via xen-devel or Matrix. Once your account is added to the Xen Project
> > +organization on GitLab, also a personal Xen repository will be created
> > +for you under https://gitlab.com/xen-project/people/<your-username>/xen.
> > +You will be able to trigger a GitLab testing pipeline with a single git
> > +push to your personal Xen repository.
> 
> I think it would be worth mentioning that this should be based on a recent
> "master" (I would say less than two days old).

Good idea


> Also, can you clarify why we are asking the user to trigger the pipeline
> rather than having a both that will pick a series and test it?

I'll add an explanation


> > +
> > +When submitting a non-trivial patch or a non-trivial patch series,
> 
> This wording is ambiguous. But even trivial patch could result to regression.
> So I am not sure why we would want to exclude them. Can you clarify?

I'll take it out.


> > +please include a link to the successful GitLab pipeline run on your
> > +personal branch. This information can be added after the `---` line.
> >> +For example:
> > +
> > +    ---
> > +    Test CI pipeline:
> > +
> > https://gitlab.com/xen-project/people/your-username/xen/-/pipelines/1980129839
> 
> Cheers,
> 
> -- 
> Julien Grall
> 


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 23:00:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 23:00:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086263.1444451 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uo8pu-0007rj-N2; Mon, 18 Aug 2025 23:00:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086263.1444451; Mon, 18 Aug 2025 23:00: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 1uo8pu-0007rc-K5; Mon, 18 Aug 2025 23:00:18 +0000
Received: by outflank-mailman (input) for mailman id 1086263;
 Mon, 18 Aug 2025 23:00:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SEV0=26=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1uo8pt-0006Lc-5p
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 23:00:17 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1a0372b7-7c87-11f0-b898-0df219b8e170;
 Tue, 19 Aug 2025 01:00:15 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id C0418600AE;
 Mon, 18 Aug 2025 23:00:13 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7D666C4CEEB;
 Mon, 18 Aug 2025 23:00:12 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1a0372b7-7c87-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755558013;
	bh=3CXg2tE4KKA0wDurcBj5cTe6r8vOH8zOapjVdFmlqhY=;
	h=Date:From:To:cc:Subject:From;
	b=ilOjzXIXe/on/iUATydkVzmN3fDM5sE38/KeB15dnsYdSo6yQj4BJ7kBRj+NNE1Lo
	 oj8x/owzgE0dlYXWcojNHdgiRi7AMpU5lLPt+HNRWE96f0jnpL2wVJDIhVjiY4vFZ2
	 jZudq/5CJuuAmNMqWHGlATMSi4pMaz+EMST7sRTt1cT96o0CTp4tGEdRV7fSrDnVUA
	 ewWB3DUzplEpAxlqmXSR4UWwussJ+5bu5EWcc2tpsvbybE80m16Q7Uw6dytRcaUw20
	 i17j1R8ur8UeDcFV7EMyQkSd+5ICEyKwcWtIdQRJ/sCC4WAz1QoRhkslEMhjw726KZ
	 SEmye3LDPDD4g==
Date: Mon, 18 Aug 2025 16:00:11 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: xen-devel@lists.xenproject.org
cc: sstabellini@kernel.org, andrew.cooper3@citrix.com, 
    anthony.perard@vates.tech, michal.orzel@amd.com, jbeulich@suse.com, 
    julien@xen.org, roger.pau@citrix.com
Subject: [PATCH v2] docs/sending-patches: add GitLab pipeline link
Message-ID: <alpine.DEB.2.22.394.2508181558550.923618@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

When submitting patches to xen-devel, add a link to a successful
pipeline run.

Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
---
Changes in v2:
- address Julien's comments

diff --git a/docs/process/sending-patches.pandoc b/docs/process/sending-patches.pandoc
index 1991932b68..13bb3bf47a 100644
--- a/docs/process/sending-patches.pandoc
+++ b/docs/process/sending-patches.pandoc
@@ -314,3 +314,38 @@ A patch should always be sent **to** the xen-devel mailing list
 of all touched code areas should get a copy of the mail via **Cc**. In case
 some other recipients are known to be interested in the patch, they can be
 added via **Cc**, too.
+
+## Testing
+
+Xen Project uses a GitLab-based CI infrastructure. You can request to
+have your GitLab account added to the Xen Project organization on GitLab
+(https://gitlab.com/xen-project) by reaching out to THE REST maintainers
+via xen-devel or Matrix. Once your account is added to the Xen Project
+organization on GitLab, also a personal Xen repository will be created
+for you under https://gitlab.com/xen-project/people/<your-username>/xen.
+You will be able to trigger a GitLab testing pipeline with a single git
+push to your personal Xen repository.
+
+When submitting a patch or patch series, please include a link to the
+successful GitLab pipeline run on your personal branch. The branch
+should be based on a recent version of the "master" branch, ideally not
+older than two days.
+
+This information can be added after the `---` line.  For example:
+
+    ---
+    Test CI pipeline:
+    https://gitlab.com/xen-project/people/your-username/xen/-/pipelines/1980129839
+
+While it is technically possible to implement an automated system that
+picks up patches and patch series from xen-devel and runs the GitLab
+pipeline on them automatically, doing so would consume a significant
+amount of resources on the testing infrastructure. There is no reliable
+way to automatically determine whether a patch is close to being
+committed or still undergoing substantial review. By having users submit
+the link to the pipeline manually, we can manage testing resources much
+more efficiently.
+
+When submitting new features, please also consider whether you can add a
+GitLab test for the feature to ensure it continues to work correctly in
+the future.


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 23:45:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 23:45:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086275.1444460 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uo9XP-0004by-RL; Mon, 18 Aug 2025 23:45:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086275.1444460; Mon, 18 Aug 2025 23:45: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 1uo9XP-0004br-Of; Mon, 18 Aug 2025 23:45:15 +0000
Received: by outflank-mailman (input) for mailman id 1086275;
 Mon, 18 Aug 2025 23:45:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SEV0=26=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1uo9XO-0004bl-5E
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 23:45:14 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5f3c81ee-7c8d-11f0-b898-0df219b8e170;
 Tue, 19 Aug 2025 01:45:08 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 1C31C601FF;
 Mon, 18 Aug 2025 23:45:07 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id B5BD7C4CEEB;
 Mon, 18 Aug 2025 23:45: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>
X-Inumbo-ID: 5f3c81ee-7c8d-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755560706;
	bh=P4FlEfGPMi34varJpaE66zf67aMorEl9PiEytcrkipw=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=TmmtGli8iHN3Jt33ndn06fnxHBmf9S0vEQG/+6Rx/i8onhyQBE2byMieovaOwXEyH
	 LEJdwFXCHKagYI7qZa/rBIFEGqc61hIt9zVopbP7EfouYboa3DeeR/6vbiDX86MH8Z
	 B+kY4PFnQscjGuiTVl3H15scK9u9J1cJp8hCSeDNnwxcSwz9jDFulX5IUxW0PSG2SV
	 rEuMmPZo58BIW/HiTHPigitTIrLxgfYgojwT0vMmef86L3chXxaQR8fTS9qkmwcIkw
	 cBrnlnZes+8ZJqFJUYCunwfm/7UzyN1r0arCmzT2JoHjAD8jY5jSbDHXAM/qnNWeRJ
	 5Q88lo3H9SFgg==
Date: Mon, 18 Aug 2025 16:45:04 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    Nicola Vetrini <nicola.vetrini@bugseng.com>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Jan Beulich <jbeulich@suse.com>
Subject: Re: [RFC] Next steps for MISRA C Rule 17.7 in XEN
In-Reply-To: <c3bb91c6-ca74-4fab-8ca8-cd5ffed3f954@epam.com>
Message-ID: <alpine.DEB.2.22.394.2508181642140.923618@ubuntu-linux-20-04-desktop>
References: <6d622813-1617-4af3-876e-52a551518f68@epam.com> <9d71cc11-884d-4924-9de9-e3396801158a@suse.com> <c3bb91c6-ca74-4fab-8ca8-cd5ffed3f954@epam.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Mon, 18 Aug 2025, Dmytro Prokopchuk1 wrote:
> On 8/4/25 11:02, Jan Beulich wrote:
> > On 02.08.2025 19:48, Dmytro Prokopchuk1 wrote:
> >> There are a lot of MISRA C R17.7 violations in the XEN.
> >> This rule states: "The value returned by a function having non-void
> >> return type shall be used".
> >>
> >> Actually, need to decide how to deal with these violations.
> >> Quick analyze shown that there are different cases in XEN code base.
> > 
> > Long ago, when we discussed the rules in a mainly abstract way, there already
> > was quite a bit of discussion around this. Stefano - I wonder if you had
> > taken (and have kept) notes back at the time?
> > 
> > Jan
> 
> Hi Stefano.
> 
> This is a kind reminder.

Yes, I am appending below the unmodified notes which I took when we
discussed R17.7. It looks like the decision was to accept the rule and
use a mix of deviations and void casts to reach compliance.


MISRA 17.7 Use expressions' results
-----------------------------------

ACCEPT 17.7

Returning void when appropriate

When function results are used on some of the times. Use a comment to
explain why the return value is ignored and a void cast so that the
warning doesn't trigger (there is also a gcc warning).

Some functions are returning a value just for convenience (e.g. memcpy).
They need to be deviated.

Add must_check to all functions by default somehow? So that developers
will get automatic feedback when they do develpment without having to
wait for ECLAIR

For new code use return values for error, rather than optional
information


From xen-devel-bounces@lists.xenproject.org Mon Aug 18 23:51:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 18 Aug 2025 23:51:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086285.1444471 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uo9dc-0006Dy-Gq; Mon, 18 Aug 2025 23:51:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086285.1444471; Mon, 18 Aug 2025 23:51:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uo9dc-0006Dr-D7; Mon, 18 Aug 2025 23:51:40 +0000
Received: by outflank-mailman (input) for mailman id 1086285;
 Mon, 18 Aug 2025 23:51:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SEV0=26=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1uo9db-0006Dl-6w
 for xen-devel@lists.xenproject.org; Mon, 18 Aug 2025 23:51:39 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org
 [2604:1380:4641:c500::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 465b9cda-7c8e-11f0-b898-0df219b8e170;
 Tue, 19 Aug 2025 01:51:36 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 1807F5C64A6;
 Mon, 18 Aug 2025 23:51:35 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4F8BFC4CEEB;
 Mon, 18 Aug 2025 23:51:33 +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>
X-Inumbo-ID: 465b9cda-7c8e-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755561094;
	bh=ZYMkOKbnAKY/dRgl+ShMu1l56XqHPf4g8FVxUMp7qEk=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=lml3iSCFlkehTOTLcJrntybZuYFoWWiN07KTFIP0Zt8MTz5AsL2qSDxGAlQ1jeKBI
	 gTsmRTYrJ0zIfMQgHeAkUh4kGP3owA5+xY+GKxwQGcISoV+fNa6VbVnvBcuHhRijTM
	 gF6vF6LsaZTfieciYY/ybdSTpmttvo+3LobKGgAgNQ3n8RTKkVhvaZ7TghCjQ9hVHL
	 MWJulqXxMW0L4iVMdZmzBcyiwfi3xgKG3hJ8M8sEJL7eKmdtlyIweU4wiCIZipeBWv
	 2thCty1dYwFdQa6hHfzjwGH+k5VQt7jmkGJz5KuJPpqmEINfricuawX54RwOplu+hl
	 ccw3SURkxMkAw==
Date: Mon, 18 Aug 2025 16:51:31 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>, ray.huang@amd.com, 
    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, Penny Zheng <Penny.Zheng@amd.com>
Subject: Re: [PATCH] xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE
In-Reply-To: <2035b14e-3836-4e80-9dad-8a49ca90864a@suse.com>
Message-ID: <alpine.DEB.2.22.394.2508181646220.923618@ubuntu-linux-20-04-desktop>
References: <20250815102728.1340505-1-Penny.Zheng@amd.com> <fb6f559a-b2aa-4b25-a6d3-401ecc4b4bd5@suse.com> <d6046b53-9317-43d6-bfda-e30d42c09320@gmail.com> <2035b14e-3836-4e80-9dad-8a49ca90864a@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Mon, 18 Aug 2025, Jan Beulich wrote:
> On 18.08.2025 15:28, Oleksii Kurochko wrote:
> > On 8/18/25 10:31 AM, Jan Beulich wrote:
> >> On 15.08.2025 12:27, Penny Zheng wrote:
> >>> In order to fix CI error of a randconfig picking both PV_SHIM_EXCLUSIVE=y and
> >>> HVM=y results in hvm.c being built, but domctl.c not being built, which leaves
> >>> a few functions, like domctl_lock_acquire/release() undefined, causing linking
> >>> to fail.
> >>> To fix that, we intend to move domctl.o out of the PV_SHIM_EXCLUSIVE Makefile
> >>> /hypercall-defs section, with this adjustment, we also need to release
> >>> redundant vnuma_destroy() stub definition from PV_SHIM_EXCLUSIVE guardian,
> >>> to not break compilation
> >>> Above change will leave dead code in the shim binary temporarily and will be
> >>> fixed with the introduction of domctl-op wrapping.
> >> Well, "temporarily" is now getting interesting. While v1 of "Introduce
> >> CONFIG_DOMCTL" was submitted in time to still be eligible for taking into
> >> 4.21, that - as indicated elsewhere - is moving us further in an unwanted
> >> direction.
> > 
> > Do you mean that specifically this patch or the whole patch series is moving us
> > in unwanted direction? (1)
> 
> That series. We said we don't want individual CONFIG_SYSCTL, CONFIG_DOMCTL, etc.
> Instead a single umbrella option wants introducing. Which means there series
> doesn't need re-doing from scratch, but it may end up being a significant re-
> work, especially considering that CONFIG_SYSCTL is already in the codebase and
> hence now also needs replacing.

I would not characterize this series as "moving us in an unwanted
direction". Yes, it introduces a separate CONFIG_DOMCTL, which we
agreed we do not want. However, simplifying it to reuse a single
CONFIG is a minor improvement that can be addressed in v2. The main
challenge in this series is adding the #ifdef in the appropriate
places, and using a single CONFIG for domctl and sysctl would
actually help.


> >>   Hence I'm not sure this can even be counted as an in-time
> >> submission. Plus it looks to be pretty extensive re-work in some areas.
> > 
> > It doesn't clear based on change log why this patch is sent outside "Introduce
> > CONFIG_DOMCTL" (2) as it looks the same as in (2) and it was reverted once with
> > the reason "for breaking the x86 build". (I haven't checked what was changed so
> > it won't lead to build issue again.)
> 
> Before we can even consider further work in the intended direction, the present
> randconfig build issue wants sorting. Which supposedly this patch alone does.

I think we should take this patch right away.

I also think we should consider "Introduce CONFIG_DOMCTL" for 4.21.


From xen-devel-bounces@lists.xenproject.org Tue Aug 19 05:27:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 05:27:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086303.1444481 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoEs5-0002Jw-QZ; Tue, 19 Aug 2025 05:26:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086303.1444481; Tue, 19 Aug 2025 05:26: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 1uoEs5-0002Jn-L7; Tue, 19 Aug 2025 05:26:57 +0000
Received: by outflank-mailman (input) for mailman id 1086303;
 Tue, 19 Aug 2025 05:26:57 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=VG6f=27=renesas.com=jahan.murudi.zg@srs-se1.protection.inumbo.net>)
 id 1uoEs4-0002Jh-HM
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 05:26:56 +0000
Received: from TYVP286CU001.outbound.protection.outlook.com
 (mail-japaneastazlp170110002.outbound.protection.outlook.com
 [2a01:111:f403:c405::2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1b71fd5f-7cbd-11f0-a32a-13f23c93f187;
 Tue, 19 Aug 2025 07:26:51 +0200 (CEST)
Received: from OSOPR01MB12408.jpnprd01.prod.outlook.com (2603:1096:604:2d7::7)
 by OSZPR01MB6663.jpnprd01.prod.outlook.com (2603:1096:604:ff::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.24; Tue, 19 Aug
 2025 05:26:46 +0000
Received: from OSOPR01MB12408.jpnprd01.prod.outlook.com
 ([fe80::7ff4:8a98:ccd4:daa1]) by OSOPR01MB12408.jpnprd01.prod.outlook.com
 ([fe80::7ff4:8a98:ccd4:daa1%5]) with mapi id 15.20.9031.023; Tue, 19 Aug 2025
 05:26: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>
X-Inumbo-ID: 1b71fd5f-7cbd-11f0-a32a-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Go5fNQm8USQPuwyWo2J0skqt6x+/Xw91KVNEnQkFPpHJkAydfzV0DIiUzHmHbjjdx69ukz7RpVRYDNo/nDJBnq/GtVvJ/1oxIo6TX87iLh3ijkBZnCg2KpH2c/85HdhwDwvbS6aB2oTlkRUbozgeONUZSsLA6Bt+FidiFg0s3OsXyt1CGgt8DPTSEV7uiKdI4yFY272zKW9G07Og2rNBIdljMsfK5LycTi5gSarclyPU4cIVugKViM9jhxTJ1Cik+RrRkqf2c1k2e9dBotRT+JBEDYiLjiBleuxHeBadJRNEoXDN4G/rNj2ShxkTFtJRW6JOHWPeVbke1UAA7GXaMg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lt1z5mfNShiW85IyOxztuczPGD391Y37CzfRyaJYOtU=;
 b=aMJ5z0eDRLELCYRM5dqqHmXLqrnLkxihQLKhny+p0YSyWmMVrVBzpgVqaLm1mGFrFlnn3+UU1dJwMk/lVqPQsQft7OUYKVx276e16F9kbE9XVJ3gRTiZnIO6TwcJkLMm1kyO9U6GSCWBaTJlsyoU3FWF8rwutjDAUelVKLYOSDaebu2itkfGCIThoKID8Nom6Tllu+71aiyd8PbmiTLnxgLmumRKzlxnXFbp05e3fWQl7+0gUHdr2CJztTfPfj1hqB6IRysoRYvgVtREcpntNoS93/Y+1bSGKcDd/k4x+y7YK/gMmB5XGS777FjVVck+gj9r5x7BWLYr8NFhudHGdg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=renesas.com; dmarc=pass action=none header.from=renesas.com;
 dkim=pass header.d=renesas.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=renesas.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=lt1z5mfNShiW85IyOxztuczPGD391Y37CzfRyaJYOtU=;
 b=lWOKEkqoLOrOa570XpViETU3DJP+2TF174SdmMB/UUoL44ZMP7tCnoWgzkv0Dd3oTagUUDdEi2dZ8J4ECNYWbf3z1Em9DlmP7etM2M8HrHRSyTauK0XTd78ds82uj5EB4470lMYWwi2o8UVggVaonbu3T/jm3hP66oYYW5EeorY=
From: Jahan Murudi <jahan.murudi.zg@renesas.com>
To: Anthony PERARD <anthony.perard@vates.tech>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Jahan
 Murudi <jahan.murudi.zg@renesas.com>
Subject: RE: [RFC PATCH v3] tools/xentop: Add physical CPU statistics support
Thread-Topic: [RFC PATCH v3] tools/xentop: Add physical CPU statistics support
Thread-Index: AQHcBUCr71rqGhBhY0G/R3coh3xt6bRph6oA
Date: Tue, 19 Aug 2025 05:26:40 +0000
Message-ID:
 <OSOPR01MB124084CF3D745AA4974BE4737AB30A@OSOPR01MB12408.jpnprd01.prod.outlook.com>
References: <20250804130643.1046157-1-jahan.murudi.zg@renesas.com>
In-Reply-To: <20250804130643.1046157-1-jahan.murudi.zg@renesas.com>
Accept-Language: en-IN, kn-IN, 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=renesas.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: OSOPR01MB12408:EE_|OSZPR01MB6663:EE_
x-ms-office365-filtering-correlation-id: a751027b-d82f-42d6-cf47-08dddee0f9fb
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?Qk9RZS9Zc0pUTitxa2dDUXA3akpXTU9vZUtGQVR1d053SFdUajhCSWwvZG1H?=
 =?utf-8?B?b3hzUmdGa2ljZmZMb2x2blNvQlI2UlBhaDRyZHdSQ21GeGNzUlRiREpVdXUw?=
 =?utf-8?B?Zjh6ZjVwY2Racy93OHlvdkZHMS9TY2RJL1Ric0cvVmF6S2pDeXczcDNubFJa?=
 =?utf-8?B?Mm5td0dUWE1sQ3Z2QnhnUm5hZVNUSTAxZUVDa2ViRG5KaFlhSldEYXVHb3pv?=
 =?utf-8?B?RE03VnlmdGp3V0F0UkdIcloxVThqbHlIQngrUUlYQXg1T2ZFWnlXTkoxTzJl?=
 =?utf-8?B?eHorbTNnOXRzUi96WkhTelVjT2V2QlozeGNqbnZLc2NUWldKbnBLWWtuRjZH?=
 =?utf-8?B?RDFVb2o2NUdrMzAzRk1SbDN6ZjYyb3BVR2dQU2dEY0VSUHJEWFVaVThZaktr?=
 =?utf-8?B?MElQZmJhOFcxbzRPUGcrNzhPYVVEYXFYbitaRWdVSTZReHNjQ1FnaHQ2OWFT?=
 =?utf-8?B?OU0vQXJkU3dOTnZvWHpMZUdKYzdWemNMUVU4WENkSnBRT1J6a2pUeTM0R1RW?=
 =?utf-8?B?eHlWdTlnUTgrMHBzOHl6Tmh3Ly9PbEdmajVoS3ZMR0l2TXhMTmlEM05CcnJY?=
 =?utf-8?B?amFuZDFuMnBxYkE2NUovTDk0Nzg5WktvbWVoaElpaXh4RnVPYjJSVmRHYm0z?=
 =?utf-8?B?UTJVRmlReE1pNVlqTEZXK0xJSnB4UGNzODVuYjhTakEvTURMdkEzYlJ0OUhx?=
 =?utf-8?B?Z2IvMFlTcTFjaGpvREZxMWNxRXlxRFFSbjFJRjM2MVl4STd1WmlsbDRtUHpz?=
 =?utf-8?B?SEFmWFdyU0xKZ2FGa0l3TjBZeTQ3cUVZNHRkaitpM21wUU41aSs0MVVsMVE1?=
 =?utf-8?B?RlZuV215Q3BJdjdLMUJqUVdIK2pMRUVSWnNYWG02Z0g4WVpTOWEyM3JZNTBr?=
 =?utf-8?B?ajl2SEtCZW5sU1NzRzVVTzRFNUdSNEtLOWNUUEdCM09PQWdwSGpleCtOZVdj?=
 =?utf-8?B?Uzc3Ymc3YnhOeko0bm8zb2VjcHY5MHIyU0ZrYjRKYlU5YXd6Vm1NOFlacDRQ?=
 =?utf-8?B?UkxWa0Y4RnJEN1ZTM045RndzUlVTVU9PZk9SYVZyODZvVDZ1ZGdQd0F1bWhW?=
 =?utf-8?B?YnhRbFg3UnhxMjNnb3dqYlBERGR0ZlRtd2VCbGZBR1JQSUxacmJ3cVVGbTNN?=
 =?utf-8?B?WGZWSjBuamQ1WUlYMkREc052M1N6a21CMmMvZEwwd1YxOVBSbGJDYm11eFRi?=
 =?utf-8?B?aHFHeUtlaXlFSmlvaldwTHJtRG5HbVZ0c0QyYTliZ0ZKYjdKa1AvTkhFNGYr?=
 =?utf-8?B?ZGNOUHVLcVZ6T2lyY2pCN0ZqZnJJc1B4Q2NzQUFPckh2dGRuQVJabUpVcGdP?=
 =?utf-8?B?TzhBV3IwekRzcGM3eGhvYzdwQTdrbkVoRnlFSkt2RjRVbmVNbUFCV0JZRU4r?=
 =?utf-8?B?eVR1bWpLNjFkenkyMjJDOTV3N1Z2eGlmZlFCQ1pJK1lWYXdYRVRFVVNndXNY?=
 =?utf-8?B?UkxtNkFtcDBSbjU4RXpJOUNQdVI4MU1ZQnh3OWw5SjJIL2RlcFIybFFBTmlQ?=
 =?utf-8?B?OUN6UkVHcVFkMkkzaEgxV3pZaWkrY0kwTG10Y2xUZ21mN094dGZZU0xpODhE?=
 =?utf-8?B?eEs4dEdYNWJBSk1yYU1PTEhQTG5FNnl0dWJTaGloZnI1NEZ5a3VKOWs4WTBW?=
 =?utf-8?B?Y01PUE5wS29IRG5ZT2d4aVpUV3prRTRzWnR6TTg5L2FyVXdCczZWeXFPMUZ4?=
 =?utf-8?B?eWFQNVRPS1hDbklLblVvN25neUd1ZU9Tbk9jazVKTXlHRWd1ZW5RZ1c3d05G?=
 =?utf-8?B?V2wyRGVoNk9XMG9YTnJyam10cXc0eUZsZTNLaWQxTGdJS29aZytOUFJuMXBk?=
 =?utf-8?B?UW83ZTFXVUFLSk1uUlVFaXkyMDRWb2lCWGlsVWFoQmtNVC82cmVMcXFOZEc0?=
 =?utf-8?B?cVZYT3VNK3B1dlcvY1Z3SW5JNXRidFBteENVMnFNUkJBZXBMRFZwMWxkUjdW?=
 =?utf-8?B?R2xXaE9Vd0hTUEtudjYyODA4Q2RRS0Rqck9vbEE0K0dpN2E4UXZ0cHdoa1VK?=
 =?utf-8?B?NGdudjIxWmtnPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OSOPR01MB12408.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?L01FWWo2aTNsMjlEMStJemk4K3R0bUZVNy9QTE9TQ0tWdm8zdEdCRmVWZTRt?=
 =?utf-8?B?MXE4OEc3OWw1UVlmTkhqd09Sdk9SeXZQLzZiVERma0ZyU1NPU3hFT1gxRFZU?=
 =?utf-8?B?cWVDMUJlMjNoeVI2YkJndUZmOHhNbmV1NTlHL096SmNiNzFsK0g1aHRWSUQ3?=
 =?utf-8?B?cDBmenFsS0NnYzVHa2lYQnhsSk9CWkhtdzBEdXZXaUJONE5INU5jcmJsaHRL?=
 =?utf-8?B?TEpCR3VaT2UyT1dPeWxyQVA4bFFpb0JlcTVRS1BueUY3RFJIZEY2aUVVWXVC?=
 =?utf-8?B?QXRZdHBXYjVia3NVRFNtZ1phYy92TS9IZCs5WmxRbWF4MGNsaEs0d1lIc1Ns?=
 =?utf-8?B?ZmlSbXpqcEk3ejg2UGZ6bldsTTVsR2RmcHVNaFB6RVUyb1FZRjg3Q1dJakNp?=
 =?utf-8?B?WFZBZG9IcVBpeUxMZ2dyaXpZQnZXanlMK2RuUXE0QlJPWnYwVzRZLzlDTXFy?=
 =?utf-8?B?WnZFSW9KOEcrYy8wYmFHS2N6RHdjWHBEaTdTT2lUMUdXWkFaeThnQ0crWHR1?=
 =?utf-8?B?WC9YWVM3TGx1UERxdjF0M2YxODZ1N1ViWnRCYThCNlplRW9GRzR3cy9ySUlJ?=
 =?utf-8?B?aFk1V0Y2M0trTG40bU85ekV0UlRuUDZpbzBhT2EvY3IzMUttSXlMSHdHTWZq?=
 =?utf-8?B?YThtMnhiclhobXA4YUtyOS9CalZ3SGNUT1hoSkJucnZOcmZnTi9COGVaZDJG?=
 =?utf-8?B?VHJ3UW1BTDNyMWhoTTJWR3FSVmNENmZUeFhYUWlFTVlmb2hlM0ptYjZNU3kr?=
 =?utf-8?B?NDhEVWVHL3NnK2M1QkZ1Tm53cGsvdzBZWHJubUZpblc5d05FV09Md054em1U?=
 =?utf-8?B?SldQNFlwNzFjTUZPWm5UREVJQUpTa2syRmJKSDI3c3hleTl1OXJldm1lekZG?=
 =?utf-8?B?dldVWXhBSXU4YWJGMUNaek96TCtRUGhQR3A3b1pkeWVsbDBrQ2hBckhDU0xo?=
 =?utf-8?B?Y0dQWk4zclg4TG5mT2N3N0l5MEs2ZFJ1N3h4Z2hWUHNaaE03M3dTQmlWenJS?=
 =?utf-8?B?eHQ2NStsTTBBQUhoT3R0WkhhbFJ1WTZidVY0WUhqTVUwYTNVd2QveFVTazdB?=
 =?utf-8?B?eXdoWHRQUUR4Rk43T2FyU2M0KzZIUjhRVXpGKytYeFJXSXhsczRTdm1ta3U4?=
 =?utf-8?B?K21IYzRlcXVoRHZFb04reGJjT21nSzVlODVsTWt5eWFpQXQ5M0loSFBsc0N4?=
 =?utf-8?B?RGdCZWxhOEtSdHNrZ2tQUjZLRXkydDJieUwzN1pVRkZPaFZkc2NxVEcwY05D?=
 =?utf-8?B?aEFtVzl3RkcwUkhwSmt3QmFQbjM5Vm9PTjZLdnhWdjBMdFhSWE1NZWZWVUpy?=
 =?utf-8?B?VDIzRmhXNEVyekpCR3g3MlMvTU5rbWNGd3VWQUorMkNvWDlDeDA0ZnlhU1lZ?=
 =?utf-8?B?ZXJ3SXZGQUFwdjdBSXRZdDRSQWd6TnFIb0w3bm9JU3BsMXpLTWpHY0JHMEdR?=
 =?utf-8?B?ajRmckVtUHQybDI0V3ZsUG9PbDJrODRvSnh6ZFliWEFtVms3ODBuM1BRcGpV?=
 =?utf-8?B?Unc3MTd6aW5DVnY1L2dISXM4U3Z5dlIwZUNLOHJ1U1dUQzRpeW8ycFhVSnd3?=
 =?utf-8?B?SHgxQUJlTmN4c3A3d3JuN3YrUEhpY0h2T1YrM2F5M2t2TDIyckFvVmhDVG8v?=
 =?utf-8?B?bWJ4Ti9Yci9lTlFnQWE5YXJIK3RyZDFvV3RONExGbGF6S05ObTdOa25oUGdz?=
 =?utf-8?B?Wnh6TWFqOU15UDVuRldaQ1NMQTU2OFk3SloyM2MyMnA4Y1hmbXowejI5Q0dG?=
 =?utf-8?B?VzBRSkNXRjVyYzdEeWIzSnd0NHd3bS8zUW4wNUx4b2tDRG5QdmRkczhTanVL?=
 =?utf-8?B?WVFVNUZhejlCa0FsYVk5d25MQ2FNVDY5SjFkVnNVNm5kclhaamMwdkhIY2pJ?=
 =?utf-8?B?aDFPMjJCb3psM3hqYTlWUkxuTEU0MlBEVjYxRXVCOGYrT0UyWWQ5WHZzdENx?=
 =?utf-8?B?bml2Rk5pV1BUVlNYQUVyS0Z1dysydXMxbmZ5aGNmYnRoWDRJS1FiNm96clB3?=
 =?utf-8?B?ckl4RTRLMDlWaGlpNERFb0ZxMVRhd250Yk1nY1FzaEVpQWxXeXZwdzY3VVJu?=
 =?utf-8?B?VGphVnA3OE5xZFNYYTQ2clNjNVQ0YUpkMUZ3RUhUZ1k2THp3akFCbHdDYm1Z?=
 =?utf-8?B?Y2JxbWUyWi9tWGZCcS9XUDhGVTltQUVLeVZTWDJsWGtKSURtbXpjcXU4anZP?=
 =?utf-8?B?OGc9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: renesas.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: OSOPR01MB12408.jpnprd01.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a751027b-d82f-42d6-cf47-08dddee0f9fb
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Aug 2025 05:26:40.4101
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 53d82571-da19-47e4-9cb4-625a166a4a2a
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: MvqGN0TFVqdyqAK398sSvSWBTSl40aw/Pl1bgPcz06XXb4eec7oWAV5lkgPE8V+pbKx0bA8dSUEmmt50PaEgZgtSQEjJtKrHMFhkLt3FtAc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: OSZPR01MB6663

DQpIaSBBbnRob255LA0KDQpJIHdhbnRlZCB0byBraW5kbHkgZm9sbG93IHVwIG9uIHRoZSBwYXRj
aCBJIHNlbnQgZWFybGllcjoNCg0KPiBJbnRyb2R1Y2UgYSBuZXcgJy1wLy0tcGNwdXMnIGZsYWcg
dG8gZGlzcGxheSBwaHlzaWNhbCBDUFUgdXRpbGl6YXRpb24gbWV0cmljcyB1c2luZyB4Y19pbnRl
cmZhY2UuIFRoaXMgcHJvdmlkZXMgaHlwZXJ2aXNvci1sZXZlbCBDUFUgdXNhZ2UgaW5zaWdodHMg
YWxvbmdzaWRlIGV4aXN0aW5nIGRvbWFpbiBzdGF0aXN0aWNzLiBUaGlzIGhlbHBzIGNvcnJlbGF0
ZSBWTSByZXNvdXJjZSB1c2FnZSB3aXRoIGhvc3QgQ1BVIGxvYWQgcGF0dGVybnMuDQoNCldvdWxk
IHlvdSBiZSBhYmxlIHRvIHJldmlldyBpdCAoYW5kIG1lcmdlIGlmIGl0IGxvb2tzIGdvb2QpPyBQ
bGVhc2UgbGV0IG1lIGtub3cgaWYgeW914oCZZCBsaWtlIGFueSBhZGp1c3RtZW50cy4NCg0KVGhh
bmtzIGEgbG90IGZvciB5b3VyIHRpbWUuDQoNCkJlc3QgcmVnYXJkcywNCkphaGFuDQo=


From xen-devel-bounces@lists.xenproject.org Tue Aug 19 05:40:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 05:40:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086311.1444492 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoF4v-0004uQ-NM; Tue, 19 Aug 2025 05:40:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086311.1444492; Tue, 19 Aug 2025 05:40: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 1uoF4v-0004uJ-JS; Tue, 19 Aug 2025 05:40:13 +0000
Received: by outflank-mailman (input) for mailman id 1086311;
 Tue, 19 Aug 2025 05:40:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=zj8/=27=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1uoF4u-0004uB-8S
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 05:40:12 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f88b9b94-7cbe-11f0-a32a-13f23c93f187;
 Tue, 19 Aug 2025 07:40:10 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-45a1ac7c066so27574745e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 22:40:10 -0700 (PDT)
Received: from ?IPV6:2003:e5:872d:6400:8c05:37ee:9cf6:6840?
 (p200300e5872d64008c0537ee9cf66840.dip0.t-ipconnect.de.
 [2003:e5:872d:6400:8c05:37ee:9cf6:6840])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45a1c6bc85csm198591615e9.5.2025.08.18.22.40.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Aug 2025 22:40: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>
X-Inumbo-ID: f88b9b94-7cbe-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755582010; x=1756186810; 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=i4K5icz5EC90tEuLPM9J3PWFhld4r0aAf0MBVPc4jcU=;
        b=RgZzjkqvJaMv/L+z+S5uMj/WooAWX+GR/A0JDWjZXyN+H3u25GsK09y0xN0jCVsrIu
         /nYKIKv60qz+Htz+tWut4OzQ2wkNC30Frsnz5SZlJ2SKRnba/6uijn4gB5ke7dPB2CyU
         QoAxZlg3SdBA6qw9hF6XVBBZHY7Eb10CtD/oRaSk6kZJBn2GDEAu8DfIyZ13+IUVCBhy
         QPekFkFa9exGuS2ihvOO/A8uMGC7e3mRV7vF10upFMRNuHp10b3HO0pzrRwmQ9mePiy1
         oKyxKAL8ClEvlHHsXTxMhFnQvtwn8KmTriGnKe1Uot+cOZDolRIFQcf3DI7iFQqxlMae
         /HsQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755582010; x=1756186810;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=i4K5icz5EC90tEuLPM9J3PWFhld4r0aAf0MBVPc4jcU=;
        b=EBsbi7jIvVJQ0Pqi6ma4a+iyXSZUQdJXKfRnEEMclf4LitGXBY/QfIKuQkEFWDvSNx
         yuFxBh8usPKcbOIMDtSwuga1LrRGwR8yEpcV9fw9faja6s519hR28cMYQOC6cQgEf0Yf
         cj3Deo4QksKAIQF7uwL8Bx+h1c5ryYoDztLeUHm8pXck0ijUiVoFeuZSfpdj3zWOx//5
         46fss2+8YmWs81voP+KWghgTtbfWQa31/SQNaeR5LxpFLAbZ9kyA3/n30RRTSBB4FWZ3
         LFmU76RW1OkxQOLFlQnKQXJ+qqHCLfVoA+oSugJnESVMjas1CEYEkFMkwmQGPdWQ7GQy
         q7SQ==
X-Forwarded-Encrypted: i=1; AJvYcCUUA9a/WqOzWoQVaQTfvf01g8GJyI52KdYPP0j+FAOuQW88ET0E215czDyIfI1NipXXhHJ15k8IQ4k=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxQCUnHtneXe1zWmc4F+s0WeKeOjRuazI8SdOitjCzqdcrpZlsa
	Zd79SM3FaVgzJ7sLPhs3yB0EROlm48zWM8aM4TsWuzww4kd/gEt49yulm+VlbkwVY44=
X-Gm-Gg: ASbGncutUzs8LHsUpThW7cRqOE/1Avm63740/y7W2tUYJRvgfpJtk866GA6CooXvX1B
	iG0YWgj0viCDPzQRWVjkw1Ie7d0Q+U8yiH3xx6+7JwUYtwGOZuy75BHrCKNLYLDvvUlbz5J2fw6
	qsPyPYzeuTbTI+JG8xVk1t7Vezvws9ipaGZGH1Ra01nmFeZMIobxaFB5EgNtHasm1w5qEFcy4+J
	ePDlh8y2xOHMc86temLGposkSwlVV672wJ9xP6aWtRQq9aj7+l7VyaCWwZOq3UXxmATCzNs9FPv
	eGHj8SwZmaf81TJIFvdhQsYyH3UcVo/Wiws5m2fADbtJCCcc3NzphUoAbxV2u9h6jzd5EW/Z24F
	YgibQzuQcufTr/lj4K3lJLXyha45H31xCCpo+NdMcmDM6LGJPncdeod4nl+cy0oPenoXQgT5cIM
	43/jEMf7cC6SyKRYk3+i21RrfpeqCRS0HTpR/6wuBIIYeV/j6YKpy0rFSflg==
X-Google-Smtp-Source: AGHT+IF9IG38gaoK9qWSb3c0FdOk1oLLCr7Tpj2E+q5XPxAC+cDBctjq6eygZwRZJ5oYuptypLs0Og==
X-Received: by 2002:a05:600c:8592:b0:456:15be:d113 with SMTP id 5b1f17b1804b1-45b446eb150mr2783135e9.1.1755582009684;
        Mon, 18 Aug 2025 22:40:09 -0700 (PDT)
Message-ID: <beedc75e-81d0-4029-9956-6478c0a6dee8@suse.com>
Date: Tue, 19 Aug 2025 07:40:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] xenconsole: Add connected flag
To: Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 "Alejandro.GarciaVallejo@amd.com" <Alejandro.GarciaVallejo@amd.com>
References: <20250807015606.4427-1-jason.andryuk@amd.com>
 <25745d45-d506-4277-8ccd-302cd1316707@suse.com>
 <8e1efc16-2d82-4d7b-8fad-6af223d1fb6f@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: <8e1efc16-2d82-4d7b-8fad-6af223d1fb6f@amd.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------vyvJE4Zl7HwyuJ4g1Dde9TYW"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------vyvJE4Zl7HwyuJ4g1Dde9TYW
Content-Type: multipart/mixed; boundary="------------0q19FfnDfT0wDhn4Z0osTFlz";
 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: Anthony PERARD <anthony.perard@vates.tech>,
 "Alejandro.GarciaVallejo@amd.com" <Alejandro.GarciaVallejo@amd.com>
Message-ID: <beedc75e-81d0-4029-9956-6478c0a6dee8@suse.com>
Subject: Re: [PATCH v1] xenconsole: Add connected flag
References: <20250807015606.4427-1-jason.andryuk@amd.com>
 <25745d45-d506-4277-8ccd-302cd1316707@suse.com>
 <8e1efc16-2d82-4d7b-8fad-6af223d1fb6f@amd.com>
In-Reply-To: <8e1efc16-2d82-4d7b-8fad-6af223d1fb6f@amd.com>

--------------0q19FfnDfT0wDhn4Z0osTFlz
Content-Type: multipart/mixed; boundary="------------msmeh7Dvc7Cp1i00BLS2LKLo"

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

T24gMTguMDguMjUgMTg6MzUsIEphc29uIEFuZHJ5dWsgd3JvdGU6DQo+IE9uIDIwMjUtMDgt
MDcgMDM6MDAsIErDvHJnZW4gR3Jvw58gd3JvdGU6DQo+PiBPbiAwNy4wOC4yNSAwMzo1Niwg
SmFzb24gQW5kcnl1ayB3cm90ZToNCj4+PiBXaXRoIGh5cGVybGF1bmNoLCBhIGRvbVUgY2Fu
IHN0YXJ0IGJlZm9yZSBpdHMgY29uc29sZSByaW5nIGlzIGNvbm5lY3RlZA0KPj4+IGJ5IHhl
bmNvbnNvbGVkLsKgIFdpdGggbm90aGluZyBlbXB0eWluZyB0aGUgcmluZywgaXQgY2FuIHF1
aWNrbHkgZmlsbA0KPj4+IGR1cmluZyBib290LsKgIEluIGRvbVVfd3JpdGVfY29uc29sZSgp
LCBfX3dyaXRlX2NvbnNvbGUoKSByZXR1cm5zIDAgd2hlbg0KPj4+IHRoZSByaW5nIGlzIGZ1
bGwuwqAgVGhpcyBsb29wcyBzcGlucyB1bnRpbCB4ZW5jb25zb2xlZCBzdGFydHMgZW1wdHlp
bmcNCj4+PiB0aGUgcmluZzoNCj4+Pg0KPj4+IMKgwqDCoMKgwqDCoMKgwqAgd2hpbGUgKGxl
bikgew0KPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNzaXplX3Qgc2Vu
dCA9IF9fd3JpdGVfY29uc29sZShjb25zLCBkYXRhLCBsZW4pOw0KPj4+DQo+Pj4gwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKHNlbnQgPCAwKQ0KPj4+IMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gc2VudDsN
Cj4+Pg0KPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRhdGEgKz0gc2Vu
dDsNCj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBsZW4gLT0gc2VudDsN
Cj4+Pg0KPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmICh1bmxpa2Vs
eShsZW4pKQ0KPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoCBIWVBFUlZJU09SX3NjaGVkX29wKFNDSEVET1BfeWllbGQsIE5VTEwpOw0KPj4+
IMKgwqDCoMKgwqDCoMKgwqAgfQ0KPj4+DQo+Pj4gVGhlIGdvYWwgb2YgdGhpcyBwYXRjaCBp
cyB0byBhZGQgYSB3YXkgZm9yIHRoZSBmcm9udGVuZCB0byBrbm93IHdoZW4gYQ0KPj4+IGNv
bnNvbGUgaXMgY29ubmVjdGVkLsKgIFRoaXMgcGF0Y2ggYWRkcyBhIG5ldyBmbGFnIHRvIHRo
ZSBlbmQgb2YgdGhlDQo+Pj4gY29uc29sZSByaW5nIHN0cnVjdHVyZS7CoCBJdCBpcyB1c2Vk
IGZvciB0aGUgYmFja2VuZCB0byBpbmRpY2F0ZSB0aGF0IGl0DQo+Pj4gaGFzIGNvbm5lY3Rl
ZCBhbmQgc3RhcnRlZCBzZXJ2aWNpbmcgdGhlIHBhZ2UuDQo+Pj4NCj4+PiBUaGUgdHdvIHZh
bHVlcyBhcmUNCj4+PiBYRU5DT05TT0xFX0RJU0NPTk5FQ1RFRCAxDQo+Pj4gWEVOQ09OU09M
RV9DT05ORUNURUTCoMKgwqAgMA0KPj4+DQo+Pj4gWEVOQ09OU09MRV9ESVNDT05ORUNURUQg
aW5kaWNhdGVzIHRvIHRoZSBndWVzdCB0aGF0IHJpbmcgaXMNCj4+PiBkaXNjb25uZWN0ZWQs
IHNvIGl0IHdpbGwgbm90IGJlIHNlcnZpY2VkLsKgIFRoZSBndWVzdCBjYW4gYXZvaWQgd3Jp
dGluZw0KPj4+IGludG8gaXQgaW4gdGhhdCBjYXNlLsKgIEEgZG9tVSBjYW4gdXNlIGNvbnNv
bGUgaHlwZXJjYWxscyBhbmQgb25seQ0KPj4+IHRyYW5zaXRpb24gdG8gdGhlIHJpbmcgd2hl
biBpdCBpcyBjb25uZWN0ZWQgYW5kIHdvbid0IGZpbGwgYW5kIGJsb2NrLg0KPj4+DQo+Pj4g
T25jZSB0aGUgYmFja2VuZCAoeGVuY29uc29sZWQpIG1hcHMgYW5kIHN0YXJ0cyBzZXJ2aWNp
bmcgdGhlDQo+Pj4gY29uc29sZSwgdGhlIGZsYWcgd2lsbCBiZSBzZXQgdG8gWEVOQ09OU09M
RV9DT05ORUNURUQgKDApIHRvIGluZGljYXRlDQo+Pj4gdGhlIGJhY2tlbmQgc3RhdGUgdG8g
dGhlIGZyb250ZW5kLg0KPj4+DQo+Pj4gVGhlIGNvbm5lY3RlZCB2YWx1ZSBhcyAwIHdpbGwg
YmUgbWF0Y2ggdGhlIGRlZmF1bHQgb2YgYSB6ZXJvLWVkIGNvbnNvbGUNCj4+PiBwYWdlLsKg
IEh5cGVybGF1bmNoIGNhbiBzZXQgdGhlIGZsYWcgdG8gWEVOQ09OU09MRV9ESVNDT05ORUNU
RUQgYW5kIGxldA0KPj4+IHhlbmNvbnNvbGVkIHNldCB0byBYRU5DT05TT0xFX0NPTk5FQ1RF
RC4NCj4+DQo+PiBJIHRoaW5rIGxpYnhlbmd1ZXN0IHNob3VsZCBzZXQgWEVOQ09OU09MRV9E
SVNDT05ORUNURUQgYXMgd2VsbCAoc2VlIGJlbG93KS4NCj4+DQo+Pj4NCj4+PiBPbGQgZG9t
VSBodmNfeGVuIGRyaXZlcnMgd29uJ3QgY2hlY2sgdGhlIGZsYWcuDQo+Pj4gTmV3IGRvbVUg
aHZjX3hlbiBydW5uaW5nIG9uIGEgbmV3IHhlbi94ZW5jb25zb2xlZCB3aWxsIHdvcmsgcHJv
cGVybHkuDQo+Pj4gTmV3IGRvbVUgaHZjX3hlbiBvbiBvbGQgeGVuL3hlbmNvbnNvbGVkIHNo
b3VsZCBvbmx5IHNlZSBhIDAgZm9yIHRoZSBmbGFnDQo+Pj4gYW5kIGJlaGF2ZSBhcyBpZiBj
b25uZWN0ZWQuDQo+Pj4NCj4+PiBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBBbmRyeXVrIDxqYXNv
bi5hbmRyeXVrQGFtZC5jb20+DQo+Pg0KPj4gQWRhcHQgdGhlIHRpdGxlIG9mIHRoZSBwYXRj
aD8NCj4+DQo+Pj4gLS0tDQo+Pj4gdjE6DQo+Pj4gUmVtb3ZlIGV2dGNobiBub3RpZnkgY2Fs
bA0KPj4+IFNldCBjb25uZWN0ZWQgbGF0ZXIgd2hlbiB0aGVyZSBpcyBubyBlcnJvcg0KPj4+
DQo+Pj4gUkZDIHYzOg0KPj4+IEZsaXAgZmxhZyB2YWx1ZXMgc28gMCBpcyBjb25uZWN0ZWQu
DQo+Pj4NCj4+PiBUaGUgb3RoZXIgb3B0aW9uIHdvdWxkIGJlIHRvIGFkZDoNCj4+PiB1aW50
MzJfdCBmZWF0dXJlcw0KPj4+IHVpbnQzMl90IGNvbm5lY3RlZA0KPj4+DQo+Pj4gTmV3IGRv
bVVzIHdvdWxkIGNoZWNrIGZlYXR1cmVzIGZvciBhIG1hZ2ljIHZhbHVlIGFuZC9vciBmbGFn
IHRvIGtub3cNCj4+PiB0aGV5IGNhbiByZWx5IG9uIGNvbm5lY3RlZCB0cmFuc2l0aW9uaW5n
Lg0KPj4+DQo+Pj4gSSB0aGluayBtYWtpbmcgWEVOQ09OU09MRV9DT05ORUNURUQgPT0gMCBz
aWRlIHN0ZXBzIHRoZSBuZWVkIGZvcg0KPj4+IGFuIGFkZGl0aW9uYWwgZmVhdHVyZXMgZmll
bGQuwqAgQXMgbG9uZyBhcyBhc3N1bWluZyB6ZXJvLWVkIG1lbW9yeSBpcw0KPj4+IGFjY2Vw
dGFibGUuwqAgSG93ZXZlciwgdGhpcyBvbmx5IG1hdHRlcnMgZm9yIGEgaHlwZXJsYXVuY2hl
ZCBndWVzdCAtDQo+Pj4geGVuY29uc29sZWQgd2lsbCBub3JtYWxseSByZWFkaWx5IGNvbm5l
Y3QgdGhlIGNvbnNvbGUgYW5kIHNldCB0aGUgdmFsdWUuDQo+Pg0KPj4gSSdkIGxpa2UgdG8g
Y29uc2lkZXIgb3RoZXIgY2FzZXMgYXMgd2VsbCwgZS5nLiBhIGNvbnNvbGUgZHJpdmVyIGRv
bWFpbi4NCj4+IFNvIGFueSBpbnN0YW5jZSBjcmVhdGluZyBhIGRvbWFpbiB3aXRoIGEgY29u
c29sZSByaW5nIHBhZ2Ugc2hvdWxkIHNldCB0aGUNCj4+IGZsYWcgaW5pdGlhbGx5IHRvICJk
aXNjb25uZWN0ZWQiLg0KPiANCj4gU2V0dGluZyBkaXNjb25uZWN0ZWQgZm9yIGRvbWFpbiBj
cmVhdGlvbiBpcyBmaW5lLsKgIExvb2tpbmcgYXQgbGlieGVuZ3Vlc3QsIHRoZXJlIA0KPiBp
cyBhbHNvIGRvbWFpbiByZXN0b3JlLsKgIFRoZXJlIHRoZSBjb25zb2xlIGNvdWxkIGJlIHNl
dCB0byBkaXNjb25uZWN0ZWQgYWdhaW4gDQo+IGJlZm9yZSBkb21haW4gcmVzdG9yZS7CoCBB
Z2FpbiwgdGhpcyBzaG91bGQgd29yayBhbmQgeGVuY29uc29sZWQgd291bGQgc2V0IGl0IA0K
PiBjb25uZWN0ZWQgYWdhaW4uwqAgSSBvcmlnaW5hbGx5IGludGVuZGVkIGZvciBhIHNpbmds
ZSBvbmUgd2F5IHRyYW5zaXRpb24gDQo+IGRpc2Nvbm5lY3RlZCAtPiBjb25uZWN0ZWQuDQo+
IA0KPiBBbHRlcm5hdGl2ZWx5LCByZXN0b3JlIGNvdWxkIHNraXAgc2V0dGluZyBkaXNjb25u
ZWN0ZWQgYW5kIGp1c3QgYXNzdW1lIA0KPiB4ZW5jb25zb2xlZCB3aWxsIHByb21wdGx5IGF0
dGFjaC7CoCBSZXN0b3JlIGltcGxpZXMgYSB0b29sc3RhY2sgaXMgcnVubmluZywgc28gDQo+
IHRoZXJlIGlzbid0IHRoZSBpbmRlZmluaXRlIHRpbWUgcGVyaW9kIHRoYXQgaXMgaW52b2x2
ZWQgd2l0aCBoeXBlcmxhdW5jaC8gDQo+IGRvbTBsZXNzLsKgIEJ1dCBJIGd1ZXNzIGFuIGFj
dGl2ZWx5IGNoYW5naW5nIGZsYWcgYWNjdXJhdGVseSBzaG93cyB0aGUgc3RhdGUsIHNvIA0K
PiB0aGF0IGlzIHByZWZlcmFibGUuDQoNCkkgYWdyZWUuDQoNCj4gDQo+Pj4gVGhpcyBhc3N1
bWVzIHRoYXQgZXhpc3RpbmcgZnJvbnRlbmRzIGFyZSBub3QgdXNpbmcgdGhlIGZsYWcgc3Bh
Y2UgZm9yDQo+Pj4gc29tZSBvdGhlciB1c2UuDQo+Pj4NCj4+PiBSZW1vdmVkIGlkZWE6DQo+
Pj4gU2VuZCBhbiBldmVudCBjaGFubmVsIG5vdGlmaWNhdGlvbiB0byBsZXQgdGhlIGRvbVUg
a25vdyB0aGF0IHhlbmNvbnNvbGVkDQo+Pj4gaXMgY29ubmVjdGVkLsKgIFhlbnN0b3JlZCBk
b2VzIHNpbWlsYXIsIGJ1dCBmb3IgeGVuc3RvcmUsIHRoZSB4ZW5zdG9yZQ0KPj4+IGRyaXZl
ciBvd25zIHRoZSBldmVudCBjaGFubmVsL2lycSBhbmQgY2FuIHJlYmluZCBpdC7CoCBGb3Ig
aHZjX3hlbiwgdGhlDQo+Pj4gaHZjIHN1YnN5c3RlbSBvd25zIHRoZSBpcnEsIHNvIGl0IGlz
bid0IHJlYWRpbHkgYXZhaWxhYmxlIGZvciByZWJpbmRpbmcuDQo+Pj4gVGhpcyBpcyBub3Qg
aW1wbGVtZW50ZWQuDQo+Pj4NCj4+PiBJIGhhZCB0aGUgaWRlYSBmb3IgdGhlIGtlcm5lbCB0
byB1c2UgYSBzdGF0aWMga2V5IGFuZCBzd2l0Y2ggd3JpdGluZw0KPj4+IGZyb20gdGhlIGh5
cGVyY2FsbCB0byB0aGUgUFYgcmluZyBvbmNlIGNvbm5lY3RlZC7CoCBJdCBkaWRuJ3QgYWN0
dWFsbHkNCj4+PiB3b3JrIGluIG15IHNob3J0IGF0dGVtcHQgLSBJIHRoaW5rIGNoYW5naW5n
IHRoZSBzdGF0aWMga2V5IGZyb20gd2l0aGluDQo+Pj4gYW4gaW50ZXJ1cHQgd2FzIHdyb25n
LsKgIEkgZmVsbCBiYWNrIHRvIGp1c3QgY2hlY2tpbmcgdGhlIGZsYWcgZGlyZWN0bHkNCj4+
DQo+PiBZb3UnZCBuZWVkIHRvIGRvIHRoZSBzdGF0aWMga2V5IGNoYW5naW5nIGZyb20gYSB3
b3JrZXIgdGhyZWFkIGluc3RlYWQuDQo+IA0KPiBNeSBzdGF0aWMga2V5IGlkZWEgaGFzIGFu
IGlzc3VlLsKgIFRoZSBmbGFnIG5lZWRzIHRvIGJlIHBlci1pbnN0YW5jZSwgcHJpbWFyeSAN
Cj4gY29uc29sZSBhbmQgYW55IGFkZGl0aW9uYWwgUFYgY29uc29sZXMsIGJ1dCB0aGUga2Vy
bmVsIGhhcyBvbmx5IGEgc2luZ2xlIA0KPiBmdW5jdGlvbiB0byBoYW5kbGUgYWxsIG9mIHRo
ZW0uwqAgRWl0aGVyIHRoZSBwcmltYXJ5IGNvbnNvbGUgbmVlZHMgZGVkaWNhdGVkIG9wcywg
DQo+IG9yIHRoZSB0aGUgZmxhZyB3b3VsZCBuZWVkIHRvIGJlIGNoZWNrZWQgaW4gdGhlIGZ1
bmN0aW9uLsKgIElmIHRoZSBmbGFnIHdpbGwgDQo+IHRvZ2dsZSBiYWNrIGFuZCBmb3J0aCwg
dGhlbiBhIHN0YXRpYyBrZXkgbWF5IG5vdCBiZSBhcHByb3ByaWF0ZS4NCg0KSXRzIG5vdCBh
cyBpZiBjb25zb2xlcyBhcmUgaGlnaCB0aHJvdWdocHV0IGRldmljZXMuIFNvIHRlc3Rpbmcg
dGhlIGZsYWcNCmluc3RlYWQgb2YgdXNpbmcgYSBzdGF0aWMga2V5IHNob3VsZG4ndCBiZSBh
IGJpZyBpc3N1ZS4NCg0KDQpKdWVyZ2VuDQo=
--------------msmeh7Dvc7Cp1i00BLS2LKLo
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-----

--------------msmeh7Dvc7Cp1i00BLS2LKLo--

--------------0q19FfnDfT0wDhn4Z0osTFlz--

--------------vyvJE4Zl7HwyuJ4g1Dde9TYW
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/Ey8FAmikDjcFAwAAAAAACgkQsN6d1ii/Ey8R
Owf/dDJXadCwjft9jsX83NZ+ZDu6fnwcxQc7sQDTGs3ZGab23RiKDnN4S/ssHb9STdaBYCVscEKw
9D51rxz8m3nvGjHVg2aNgUrMHWwUjN+Ac3g883qGVsb8+JJr5mZlwhd8Wx3+pGDBxv0o94ysxXCW
MaJV4YP5g2fPqqGSWj1xbsd/TrGNWGYZVXw2NpLO64R71v/Nfd7VeHeBMP3Py3JYTNBEJjKu+M2j
/BYA9/hro/5m7fyNrCogbc6oYtU+wsmNR595Y3p3Zvqm0GXYuRYqioBNE8tCK6eku33pqZZZ/pVH
uUKfou2rwecjBJxu5CVWeX4fN9yQrgOPpFjqsJ3KYg==
=Q5PB
-----END PGP SIGNATURE-----

--------------vyvJE4Zl7HwyuJ4g1Dde9TYW--


From xen-devel-bounces@lists.xenproject.org Tue Aug 19 06:32:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 06:32:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086324.1444501 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoFt1-0002ry-Im; Tue, 19 Aug 2025 06:31:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086324.1444501; Tue, 19 Aug 2025 06:31: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 1uoFt1-0002rr-Ft; Tue, 19 Aug 2025 06:31:59 +0000
Received: by outflank-mailman (input) for mailman id 1086324;
 Tue, 19 Aug 2025 06:31:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xm9j=27=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uoFt0-0002rl-1a
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 06:31:58 +0000
Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com
 [2a00:1450:4864:20::52f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 30edebd3-7cc6-11f0-b898-0df219b8e170;
 Tue, 19 Aug 2025 08:31:51 +0200 (CEST)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-6188b5b7c72so6746345a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 23:31:51 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-61a758ba909sm1160510a12.54.2025.08.18.23.31.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Aug 2025 23:31: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>
X-Inumbo-ID: 30edebd3-7cc6-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755585111; x=1756189911; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SB411tn72i4zMsUdiLXP/quoibJz06k/85c4iYW2i2Y=;
        b=Z6Wb2mIpyjLn++Uc0uBBa+Z8j4svIPU2HxxedimPk3Q+DYmk9YkaF+x99vWmMoBThB
         7E/5R4xptwkWaAn5/dnudXAxctP29BSk0op7iGgIkn6LsIZtyTyM9RbA745HdGUhpllZ
         OYSvCT0OIMY2ALxSJ6HmSa3lK9W9HRPs/0KycCz7vAjtGqXvEdq1OI8WWeF2kRfcoocL
         Q5HcsqWucu6YvKuNU/90IKRABAd1hx5X5dzjeQMfcUsTc+Xi6UFwolZwRpQ24WgIuB1I
         rWB9KNEcqBDWmBWXnXT5sSMlbJoxGGj+/aY5J1THXFDE8/+C9sZmu6ShFsv6QWGdTNWm
         WxIA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755585111; x=1756189911;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SB411tn72i4zMsUdiLXP/quoibJz06k/85c4iYW2i2Y=;
        b=uUNCCRG1+E0X7hWA03vf94/9YAVHZJYoZlJkTgXjJQ6QZi2zC3756BRAXJkKV6l55u
         E9BSj/ar6K6HsoHESIhQJ/qL28a5szRXIgLyM2j7eIHEWPaCQIuGeHDhsTiJH1IjiYfY
         /KEjLCPhzV2YO9GVtDcorXJ7TNhTMLn2GBV0BkUqoymgOlewGL23BbLVGOc0rCs/nqJx
         H9yDfHupQBE45GBIVlvbkkdbl7Y/0f1s2hdKdEE161ou9b+0zToYf8PdPCoY4iAw5qVY
         0wBSfVw0Ino7/Ceh8ROoMJahKpAF5XH1zWr7QYgqguInaloKOatHCYYQrqn2IySTrzm/
         noXg==
X-Forwarded-Encrypted: i=1; AJvYcCUDjcmpqktK4gLKZJVVq1aIApjje3Nj425jT/rtv4VKfPwszoVI+PWOsFPPvYsMB9kDsXRBBjAW2kQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwCLdRtsX1Rf2eQ5c+z4hNSqs2pGhVk1Ki+NlLt0vudcv0Z/XbK
	YCP950vgg5xt+e4N5a6DWUQvaax/s1BrPyyDPNHSn6qimolddQ6EN2g32M7SMNvfhw==
X-Gm-Gg: ASbGncudB5/R9i7i1SSNXxpkR/X/nhtTiR9QTyMp/5Ub2VI6vGTsfrCI4avYRSKoSMR
	qI8dl4ssM886CKYBnqoHEL0PxqX3wPdPo30FLQ6rVqWemBSGSRgsD2066wUqouJqK2UxdTkEoJi
	ByAnf0RC97G/EHmwmLdctO+B5dy9ZrCggugsehUOmg55H8UYJZy6mUCQwLrdnOh7oqvGuIEOe1N
	eNRDlrN209xiCt/RkZRlty+vpeJrkslO7Q3s4giwlQ3WSNcWYOEPX/ET0sxF+T/+tUqpEZpqSln
	IXo+hgYrfyRDuSAdsDXdF0Pv9kZZK6gYDrYdlNilW97lbJ9o3LH/mdI3ofgXM+TMDEnDAw/55wu
	vE3W9LNWNLMkBbjw2LNVi/o+3AGp2MZZcI6McA7va5ONh48GaT9sO77WB+7JhCmTawijPRPEdaI
	QlgIvdRN8=
X-Google-Smtp-Source: AGHT+IGcG66jpih18affm4ZkneIwNbQNDz34ljfuyKXUgspRcU/aGtvMsKudByr/K7DPs91/qsnRHw==
X-Received: by 2002:a05:6402:5cd:b0:615:ad47:58c6 with SMTP id 4fb4d7f45d1cf-61a7e75e3d1mr952394a12.30.1755585110994;
        Mon, 18 Aug 2025 23:31:50 -0700 (PDT)
Message-ID: <a4e1f505-67fc-43e3-861a-30edde43216a@suse.com>
Date: Tue, 19 Aug 2025 08:31:50 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 23/22] x86/vmx: Adjust NMI handling for FRED
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808234920.1214924-1-andrew.cooper3@citrix.com>
 <d1a49f35-250a-4db5-88f7-fd0b8e6d1a1c@suse.com>
 <9657758b-6f10-46c6-84cb-14f425f412b8@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: <9657758b-6f10-46c6-84cb-14f425f412b8@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18.08.2025 19:18, Andrew Cooper wrote:
> On 18/08/2025 11:02 am, Jan Beulich wrote:
>> On 09.08.2025 01:49, Andrew Cooper wrote:
>>> --- a/xen/arch/x86/hvm/vmx/vmx.c
>>> +++ b/xen/arch/x86/hvm/vmx/vmx.c
>>> @@ -4209,8 +4209,18 @@ void asmlinkage vmx_vmexit_handler(struct cpu_user_regs *regs)
>>>               ((intr_info & INTR_INFO_INTR_TYPE_MASK) ==
>>>                MASK_INSR(X86_ET_NMI, INTR_INFO_INTR_TYPE_MASK)) )
>>>          {
>>> -            do_nmi(regs);
>>> -            enable_nmis();
>>> +            /*
>>> +             * If we exited because of an NMI, NMIs are blocked in hardware,
>>> +             * but software is expected to invoke the handler.
>>> +             *
>>> +             * Use INT $2.  Combined with the current state, it is the correct
>>> +             * architectural state for the NMI handler,
>> Not quite, I would say: For profiling (and anything else which may want to
>> look at the outer context's register state from within the handler) we'd
>> always appear to have been in Xen when the NMI "occurred".
> 
> We are always inside Xen when the NMI "occurred".

How that? The perception is based on "regs", isn't it? They're representing
guest context here, just with ...

> In fact there's a latent bug I didn't spot before.Â  Nothing appears to,
> but if anything in do_nmi() were to to look at regs->entry_vector, it
> will see stack rubble (release build) or poison (debug build).

... a few fields (apparently wrongly) not filled.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 19 06:35:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 06:35:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086334.1444512 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoFwd-0003Or-1n; Tue, 19 Aug 2025 06:35:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086334.1444512; Tue, 19 Aug 2025 06:35: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 1uoFwc-0003Ok-Tr; Tue, 19 Aug 2025 06:35:42 +0000
Received: by outflank-mailman (input) for mailman id 1086334;
 Tue, 19 Aug 2025 06:35:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=zj8/=27=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1uoFwb-0003Oe-7Z
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 06:35:41 +0000
Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com
 [2a00:1450:4864:20::32d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b899538e-7cc6-11f0-b898-0df219b8e170;
 Tue, 19 Aug 2025 08:35:39 +0200 (CEST)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-45a1b00f23eso26996655e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 23:35:39 -0700 (PDT)
Received: from ?IPV6:2003:e5:872d:6400:8c05:37ee:9cf6:6840?
 (p200300e5872d64008c0537ee9cf66840.dip0.t-ipconnect.de.
 [2003:e5:872d:6400:8c05:37ee:9cf6:6840])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b42a8670dsm26677285e9.16.2025.08.18.23.35.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Aug 2025 23:35: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>
X-Inumbo-ID: b899538e-7cc6-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755585339; x=1756190139; 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=s0DY+hzoJR4aPStnCVzJhld5S750sZJAFIORH8pKcno=;
        b=AZYnz/e9qA0ScANvk2JYTvcVzZlezfTA+LkP1pF73lQqYyMppCjuhf1sLzUYTGtIDE
         HDD6FpYa3HWceEm2KCzlRPHArd+BH48vV3sZcQuFQltupAgPSYbzpyFs7TXwaBWcEZcq
         t1iPVnfTWpLekVjN8jnWMQ+W9ekc+ugVMhSJHtfE5R9VjOukdnWoEFpCljlGCqdCapAZ
         pQtuhJjctE6F282fAOwxeVR0NVK76gfSow1OmmG+wM6hMj87V0/tUZhjMycXfPlR9MGO
         aEyuvr+0FtX5ta183qdUdYXgA4Z09Rpvja7Qm6Yv8VbiOgiTRhppD1V5c5elRNFXvAgj
         6KJA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755585339; x=1756190139;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=s0DY+hzoJR4aPStnCVzJhld5S750sZJAFIORH8pKcno=;
        b=Z91qMaXBv6NwJZh9CHmozy5hn/zmJQGmvkLhcmm9eabvQOpcuqa7jYkzwPdVLudkpM
         AUPUETHHIPYnCPIsktW9939F66Q5vRk/k9V5OYcrEnPAAaNneI8wNkyBzgr39g4y+6k2
         Aii3iJxODSuPwWKAtW8rYhViAua4xzfuPX7CavfSwCSbXMeovwTDa9l7WK9dRoJi9RZi
         gGEujiiXXpNSsdi7xPEj85CUya8yaRfmwJVCYROmBisQi+glYvuIFzzqoMrCn8vkA9Jo
         AtkKv8yhIF6Fh4NgwqipIAl2WrGjoS3aZl3NHU25gS9gg9mejGcBC41TF2jzHenFUpDY
         O1uQ==
X-Forwarded-Encrypted: i=1; AJvYcCW+B+LPjB7gmEKHHYfUkJpOzwXl5/GqEtWJKDXZ4OH60TYu0DtF9Hh7ogq9ngpFKEMdOw/3oWupSJY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwLvDcBE8uqkfRmkW9aUs568hnJBCgo7+bYeZALjTEBtaWwDVzI
	btOUGAEMuegqUBU3262EK599z6X6kx1lPvVAgnv26BVl+q6WZEvSPVjl3eCZUv8sZ3E=
X-Gm-Gg: ASbGnctr1ZfXhHFiF916xdM9NBekEb07B4LAWdSuoIw7GuxKIgHI/vptFlhWH6JDBM1
	e18LEWFVUMFT3sR+eIg6TKqV6JvCG6s5oLwvUrsHA6eJux5ZXd4SCYE1tsnrk6WY1jdDOdlCy4u
	G5zktqwzkvdbFbfEn5++QbdR5FanUIfRjv+jeOQv5UGgg3ScGcEpAtJzxdTxaxwVTfOzN1Qll5S
	qbvCIZb+TdJsJnjfCmRkIMFFU/9+fKA5gjajuMfdcK8OtdfkXc0HJfI2Lf2Wc3DBCSR7P9tTS5M
	mwoH+m7/VTA24p2VRj6GUJsGoM5n7rISOODO6pUxw+Uimv8LJHPXpEK3dWqdjQjK7lZDdS2RE59
	Hv5pxbWeZu1P1BmaU/UbCYxIYflOfh9LCe7r9+827tK3KsgsAS4b30WM1C/9EHH/or79wpzIWFc
	OeZ2kBijqtUy9sZbXpWz+c6Oli+04rHzLRTiCsdfbUzLpXEZy1W3WKe9zqJw==
X-Google-Smtp-Source: AGHT+IFtUZOm0wFVz4zGXwJa59y1P4SKcixrdW2tIsMtq0MQe9GcYR/eZQRfpBe4pgY2Nnx6gj3xdA==
X-Received: by 2002:a05:600c:3b83:b0:459:dfa8:b854 with SMTP id 5b1f17b1804b1-45b43db7044mr9106015e9.5.1755585338536;
        Mon, 18 Aug 2025 23:35:38 -0700 (PDT)
Message-ID: <25dadb00-15ed-44f3-a325-9d96b9ef871e@suse.com>
Date: Tue, 19 Aug 2025 08:35:37 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 4/8] tools/xenstored: Check NULL domain in
 domain_chk_quota()
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: <20250815213556.90068-1-jason.andryuk@amd.com>
 <20250815213556.90068-5-jason.andryuk@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: <20250815213556.90068-5-jason.andryuk@amd.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------EfHOjnOQ1QN0dNwwmcE2Tpu7"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------EfHOjnOQ1QN0dNwwmcE2Tpu7
Content-Type: multipart/mixed; boundary="------------uNUMUuQcqfXFmjRybN63Dk8L";
 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: <25dadb00-15ed-44f3-a325-9d96b9ef871e@suse.com>
Subject: Re: [PATCH v6 4/8] tools/xenstored: Check NULL domain in
 domain_chk_quota()
References: <20250815213556.90068-1-jason.andryuk@amd.com>
 <20250815213556.90068-5-jason.andryuk@amd.com>
In-Reply-To: <20250815213556.90068-5-jason.andryuk@amd.com>

--------------uNUMUuQcqfXFmjRybN63Dk8L
Content-Type: multipart/mixed; boundary="------------Cva7dPcle5pfz2200k2k0CR7"

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

T24gMTUuMDguMjUgMjM6MzUsIEphc29uIEFuZHJ5dWsgd3JvdGU6DQo+IFdpdGggc2VwYXJh
dGUgY29udHJvbCBhbmQgeGVuc3RvcmUgZG9tYWlucywgdGhlIHhlbnN0b3JlIGRvbWFpbiBp
dHNlbGYNCj4gaXMgbm8gbG9uZ2VyIHByaXZpbGVnZWQuICBMb2NhbCBzb2NrZXQgY29ubmVj
dGlvbnMgZG8gbm90IGhhdmUNCj4gY29ubi0+ZG9tYWluIGFzc2lnbmVkLCBidXQgZG9tYWlu
X2Noa19xdW90YSgpIHdpbGwgZ28gYWhlYWQgYW5kDQo+IGRlcmVmZXJlbmNlIGl0LiAgVGhl
ICFkb21pZF9pc191bnByaXZpbGVnZWQoY29ubi0+aWQpIGNoZWNrIHVzdWFsbHkNCj4gbWVh
bnMgdGhlIGZ1bmN0aW9uIHdvdWxkIGhhdmUgYWxyZWFkeSByZXR1cm5lZC4NCj4gDQo+IEJh
aWwgb3V0IG9uICFjb25uLT5kb21haW4gdG8gYXZvaWQgZmF1bHRpbmcuICBUaGlzIGFkZHMg
YSBzaW1pbGFyIGNoZWNrDQo+IHRvIHRoYXQgaW4gZG9tYWluX21heF9jaGsoKQ0KPiANCj4g
U2lnbmVkLW9mZi1ieTogSmFzb24gQW5kcnl1ayA8amFzb24uYW5kcnl1a0BhbWQuY29tPg0K
DQpSZXZpZXdlZC1ieTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPg0KDQoNCkp1
ZXJnZW4NCg==
--------------Cva7dPcle5pfz2200k2k0CR7
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-----

--------------Cva7dPcle5pfz2200k2k0CR7--

--------------uNUMUuQcqfXFmjRybN63Dk8L--

--------------EfHOjnOQ1QN0dNwwmcE2Tpu7
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/Ey8FAmikGzkFAwAAAAAACgkQsN6d1ii/Ey+q
uwf+Pfpe5LhDfQ/nnuusAw6VteDvEHnlz/PLfmyL8YwmsI9/v8BtLLTp/m0jg6i6Krrp9d3d7Lqx
45ogusiLLeTq3DE7SJ/cwg6xU3VmeFPp7AQXUZ7fVt0TkT8PF5q8wWMMzZ4F6FBvBl7eNO6f8nDU
2K1BWO1YSjZK1O6AcIuAzSZ0pkWkwFxtoZ+8PI0L66o0G+6iWd3bMi40LDNI6MCOQs+4iTXSZwSO
M1HRIBxOnaPpu2Zqv/SMPCMFHKIuGVSs+SXaCpK99+pxrsqhD7+iEaDsiaGzEqj2QyBgH/Fb0OmB
OZIQiM+jIlbbc70JzE73WRndKkGFz68ZGdpAcYohpQ==
=N1TY
-----END PGP SIGNATURE-----

--------------EfHOjnOQ1QN0dNwwmcE2Tpu7--


From xen-devel-bounces@lists.xenproject.org Tue Aug 19 06:45:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 06:45:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086342.1444521 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoG6O-00056x-T0; Tue, 19 Aug 2025 06:45:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086342.1444521; Tue, 19 Aug 2025 06: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 1uoG6O-00056q-QQ; Tue, 19 Aug 2025 06:45:48 +0000
Received: by outflank-mailman (input) for mailman id 1086342;
 Tue, 19 Aug 2025 06:45:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xm9j=27=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uoG6O-00056k-4Q
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 06:45:48 +0000
Received: from mail-ed1-x535.google.com (mail-ed1-x535.google.com
 [2a00:1450:4864:20::535])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 22cbed28-7cc8-11f0-a32a-13f23c93f187;
 Tue, 19 Aug 2025 08:45:46 +0200 (CEST)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-6188b654241so8782206a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 23:45: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
 4fb4d7f45d1cf-61a75794c43sm1154145a12.41.2025.08.18.23.45.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Aug 2025 23:45: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>
X-Inumbo-ID: 22cbed28-7cc8-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755585946; x=1756190746; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=C2aq9uMo50s2x7Xrw+cJw7jisf8TN/Q5YG5pZubXpVA=;
        b=Nda7EaEamk4WkmBVxl7Zf4rpGrhUrfOdm/RiY0Tks/sBjMgzy2/vQQrNqT5LGtG1X1
         qop/Ura4DeBLvZvjZnvydmQhPfTUb59Rv0Gz0GvojBF0+VLs10uXdIXwelerWz+QWSmf
         30qPTyjmTfdYwZiS50EQ7BvGofhunlnx2YocO06GAxGQCraZVPeffiFqWapc69Al2tDM
         yRBfrcMOHPuHFdxp0y8P/f8uEbrOZRUY/iW0WDnDVttvSAAZzFtaLP6Tv3a3lc1U1W7W
         nkKtBVtExuTKO1LBN/Sx80k3c61gKYU1X+ZrVQdSt6vzxwXDAaU1dWbWYvzMdw+bBSdW
         xplQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755585946; x=1756190746;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=C2aq9uMo50s2x7Xrw+cJw7jisf8TN/Q5YG5pZubXpVA=;
        b=YEjyNBxTwjnpPqRkDPO++uys5+tL5wTvbTy6olN3ksX+S7VP0xtQCDKdgSscQ3ADEL
         ruQvDG8fQFPqHlaC4H218i3hNvlCtgNAAUZMN7BjoEJKg5lkrrGZIvz85QK8npzntcX/
         bPzxIe1ZEaQjIkhhzmwTQUjD1HO2E0lHrztp9dBmHC7wBc4cbZwSAiSaEuiJFX0OF7GB
         eaWtyMvH7WaZWr8GsVl2UdVlmUobQqNu0oIFR8BDnMgOTUMNL3b0pO1uc7mD6f5V5W/p
         mvF3XxBSqCCcIdRItKbblM9733J+yO/k5XuEvYgzJHB++hrNfx5xXLeUbs4IlgSEtliP
         X9sA==
X-Forwarded-Encrypted: i=1; AJvYcCW1aRYxl0pP+18qEC6KN8ddmmAxWCLj8QfsE6PFp0vc7HUKiK6Q5P418ekv9qPorEp5k+lRvubzNb4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxqyPLtoLXNya3tr8S7+BQMZPNr311OePU5EaXrYNZa+aXpgAyx
	Y1rVrZOabQgF/dyYtOqzKxFd3pneJ8/Rs20SBKjsxvyt290Dpk29mSG6jL2JLR3unA==
X-Gm-Gg: ASbGnctRUDnQsrIhW2zS+7qSHJdVlBYIh6rEkwvqPGJO6akiE6f9UZKUABfGcF3LKV+
	2m0hNrTh2x9rglKXpwMvawYWBKfrjAcnV9dxWo2/q7Ook/qGyDl3wLS0wP7kV7P3CpIgbn9Xpn4
	nriml9CuBcmE7fWlXeDIAQMwB9ap47zTMfw/6NPy69Q5ywEvvegGZMW+3gQNEjR7ipu6VOs44ul
	ZcWmB+McFla0EG4OpDUeV85aPIjc/VQVwdhNgWaIHYb1aDt6JHwQOefBSS5Km9KpMTvJ0QASufv
	C5Y54l3YHTCptRUFpYwSOBX8vfMMN3vdab0nkLH5OoGsxQrgaQttD03Qgwptu3riUe/u7c5b3BA
	NZT0lV2mzlCjjwTspmbnTUv1b8OmFVSKBL0TUIZiN3izUnE7mTYaSEmaSPoRpMuif1mipkFeZ26
	K/QrVj/qtK9b2Fe4xYZA==
X-Google-Smtp-Source: AGHT+IF4KSp6gE9NaYsmKLOVHCe0Oc0wjLmpDt6dtlJsm8nzt2pCdSEgbd/B8ZDgM8eNkLDhrLlgFA==
X-Received: by 2002:a05:6402:13d5:b0:618:1250:ac62 with SMTP id 4fb4d7f45d1cf-61a7e6fa42fmr1191950a12.10.1755585946314;
        Mon, 18 Aug 2025 23:45:46 -0700 (PDT)
Message-ID: <cdd28b4f-34fa-42d4-a4b2-602fab2416b9@suse.com>
Date: Tue, 19 Aug 2025 08:45:45 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 0/3] hvmloader: add new SMBIOS tables (7,8,9,26,27,28)
To: =?UTF-8?Q?Petr_Bene=C5=A1?= <w1benny@gmail.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 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.1753869323.git.w1benny@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <cover.1753869323.git.w1benny@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 30.07.2025 11:56, Petr BeneÅ¡ wrote:
> Petr BeneÅ¡ (3):
>   tools: add sizeof_field and offsetof_end macros
>   hvmloader: fix SMBIOS table length checks
>   hvmloader: add new SMBIOS tables (7, 8, 9, 26, 27, 28)
> 
>  tools/firmware/hvmloader/smbios.c       | 290 ++++++++++++++++++------
>  tools/firmware/hvmloader/smbios_types.h | 109 +++++++--
>  tools/include/xen-tools/common-macros.h |   5 +
>  3 files changed, 317 insertions(+), 87 deletions(-)

Just to mention, also affecting your MAX_ALTP2M series: It is on you to chase
missing acks. It would of course be nice for this work of yours to not go in
only at the last minute, or even miss 4.21.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 19 06:49:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 06:49:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086350.1444531 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoG9k-0005gB-BR; Tue, 19 Aug 2025 06:49:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086350.1444531; Tue, 19 Aug 2025 06:49:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoG9k-0005g4-8o; Tue, 19 Aug 2025 06:49:16 +0000
Received: by outflank-mailman (input) for mailman id 1086350;
 Tue, 19 Aug 2025 06:49:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xm9j=27=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uoG9j-0005fy-N8
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 06:49:15 +0000
Received: from mail-ej1-x62e.google.com (mail-ej1-x62e.google.com
 [2a00:1450:4864:20::62e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9dd75710-7cc8-11f0-b898-0df219b8e170;
 Tue, 19 Aug 2025 08:49:13 +0200 (CEST)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-afcb78c77ebso797153166b.1
 for <xen-devel@lists.xenproject.org>; Mon, 18 Aug 2025 23:49: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
 a640c23a62f3a-afcdd016c61sm933938966b.96.2025.08.18.23.49.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 18 Aug 2025 23:49: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>
X-Inumbo-ID: 9dd75710-7cc8-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755586153; x=1756190953; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=wBarrgEMrR/IqomEAJ4wp9bD4p+lvnS/sY/pWdD/wpQ=;
        b=Tbc3AbBKXE2Kv8obFaPwldAEyFIFgAbvfJ4ayWNX+pAA2xEXu0W4jwFrPs5h+WridC
         th7Q9xioOkVTOF0wEE9/dbO+SWKt/jXfUHyoNSBD4zsag0i1HDJr30P0l1pqsB0G16dq
         tBDQ9oU1Xhx1Uo7u5kh6qHNKYVkGqW9xZ7GeNqJFVtqsDCbdVJ2Jy2bDRVI5sYCNc2GW
         PIfdrSKw6/OkQtRrD2uFDKLACZG8zjGz3J5v5YsVFPZPNCWmxv6gI2boNx/KJ/3+naXv
         CbVpv90fW64iXZYkw1okYU+btP5tRLGhIAJYi13MoKE6XgvsWMTwBcu6FMdiCmMYZnq3
         kQ7A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755586153; x=1756190953;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wBarrgEMrR/IqomEAJ4wp9bD4p+lvnS/sY/pWdD/wpQ=;
        b=tfHdf2eMhCdvAZmIfSTDwwMAxNL/UmHM+twHuiaSyYc8soIqQz/VnE/3Sue8AsPZcg
         tis+9+WlYazgnddsP9D9fwnWvFdU5fhnovp1Lb9TKcZrRoTtf3AH4IXSSUdl3bIbYBie
         AZwZiskkQric8kA5hPnV84rgm/Fk2/jnxmpr00b2FzV1+oyyOR1VCuu7PBe8L2TkLXwH
         1Qf5g+rCQ84QbsRmEJLYaHGi0G7iqslkwQ2WX1JV5BuOAfWIcL444EcrMqYOrRW3GkvE
         ShYqKr9ML9nHcSreAWbfhh0t/UYyAhrAaK4IZUhizkaYGuJiYIwXpZQD5eUAtC6yN0JI
         c3hw==
X-Forwarded-Encrypted: i=1; AJvYcCXyISIH5VOdRK7gWDmT1fkqcydycBAncc1WnSgAQ20VTNCJoJexPq0POH1ctLr7zOEreI1zVTeiklQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxdFsdGCY+6FOt0HQv3s1B7g7ivdrdNRFm256toHaWZpTJluFxe
	1tNp/PwrNusx/YjTXHw6yBuDaQi9NrpDixOHKavvp7Ovpd15RVjDvswPVoTdvM/Upg==
X-Gm-Gg: ASbGncv6JnorD1PLnA2LpWkZq91YztkpRXPhE2RQwTK6WhHRKeOPGLwq5MKbRc+rsWQ
	rGLuatHcIKYLLdC5ACCptwFd5m1DuyCCvdr4frs0lPNC/4QzOcd/SMnf+9NO53oYU5nyocTExl8
	KfAjN9MdpswPNiEZulH6LAB912LIx7JUWmZ9GOWv/qFCkEcsNzp659Q0RYnGFBYQxhRbctXpACs
	u19VNAwbezmFCJHh3AiA08kpl2vMit0ixT+YYwYxzuM4isE/P4nKz6IRWxrj6IyLWVIzqf1VVSA
	YI1xOS8oKzFMbLIAb3k36BakhfLUPmagTbxelwUBTbeMOH7BTYV19Bf7RnJ0Pl0KbAdeak1Zo1W
	TerMY6AqQySqI4nFHiT2p2TE68dPY0Fj28NVsiw+ditvvqcHVaO4cys7c8zBuxSFKOHWqZJF2T9
	Lw6WHl+NIQdz/dqjVbvw==
X-Google-Smtp-Source: AGHT+IHg5PmFJlc10kRTD1WrGwXnd5LdCRlW0m4E0i2E20B1MhOcBe6xzqFE9Qa7Xtso7egOuqb61A==
X-Received: by 2002:a17:906:c113:b0:af1:d32f:3e89 with SMTP id a640c23a62f3a-afddd0d276emr122218966b.31.1755586152891;
        Mon, 18 Aug 2025 23:49:12 -0700 (PDT)
Message-ID: <9a267d90-496c-496a-ab61-6b775204b594@suse.com>
Date: Tue, 19 Aug 2025 08:49:11 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC] Next steps for MISRA C Rule 17.7 in XEN
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
References: <6d622813-1617-4af3-876e-52a551518f68@epam.com>
 <9d71cc11-884d-4924-9de9-e3396801158a@suse.com>
 <c3bb91c6-ca74-4fab-8ca8-cd5ffed3f954@epam.com>
 <alpine.DEB.2.22.394.2508181642140.923618@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.2508181642140.923618@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.08.2025 01:45, Stefano Stabellini wrote:
> On Mon, 18 Aug 2025, Dmytro Prokopchuk1 wrote:
>> On 8/4/25 11:02, Jan Beulich wrote:
>>> On 02.08.2025 19:48, Dmytro Prokopchuk1 wrote:
>>>> There are a lot of MISRA C R17.7 violations in the XEN.
>>>> This rule states: "The value returned by a function having non-void
>>>> return type shall be used".
>>>>
>>>> Actually, need to decide how to deal with these violations.
>>>> Quick analyze shown that there are different cases in XEN code base.
>>>
>>> Long ago, when we discussed the rules in a mainly abstract way, there already
>>> was quite a bit of discussion around this. Stefano - I wonder if you had
>>> taken (and have kept) notes back at the time?
>>>
>>> Jan
>>
>> Hi Stefano.
>>
>> This is a kind reminder.
> 
> Yes, I am appending below the unmodified notes which I took when we
> discussed R17.7. It looks like the decision was to accept the rule and
> use a mix of deviations and void casts to reach compliance.
> 
> 
> MISRA 17.7 Use expressions' results
> -----------------------------------
> 
> ACCEPT 17.7
> 
> Returning void when appropriate
> 
> When function results are used on some of the times. Use a comment to
> explain why the return value is ignored and a void cast so that the
> warning doesn't trigger (there is also a gcc warning).
> 
> Some functions are returning a value just for convenience (e.g. memcpy).
> They need to be deviated.
> 
> Add must_check to all functions by default somehow? So that developers
> will get automatic feedback when they do develpment without having to
> wait for ECLAIR

Isn't doing this "by default" equivalent to enabling the compiler warning?
If doing this by default (one way or another), it'll need to be clear how
to mark functions as "exceptions" (like memcpy() that you mention).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 19 10:26:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 10:26:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086405.1444593 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoJXw-0007ST-QC; Tue, 19 Aug 2025 10:26:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086405.1444593; Tue, 19 Aug 2025 10:26: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 1uoJXw-0007SL-LJ; Tue, 19 Aug 2025 10:26:28 +0000
Received: by outflank-mailman (input) for mailman id 1086405;
 Tue, 19 Aug 2025 10:26:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=mE2V=27=gmail.com=w1benny@srs-se1.protection.inumbo.net>)
 id 1uoJXw-0007SD-AK
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 10:26:28 +0000
Received: from mail-oo1-xc30.google.com (mail-oo1-xc30.google.com
 [2607:f8b0:4864:20::c30])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f574a298-7ce6-11f0-b898-0df219b8e170;
 Tue, 19 Aug 2025 12:26:26 +0200 (CEST)
Received: by mail-oo1-xc30.google.com with SMTP id
 006d021491bc7-61bd4e231b7so71753eaf.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 Aug 2025 03:26: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>
X-Inumbo-ID: f574a298-7ce6-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1755599184; x=1756203984; 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=ojUIQfIyEL657Dt601PL1qd/mSs7z+u//+Iy3WEPsuA=;
        b=X55lIJinLGMkPsHg7zvzlb/M0ReRHe+/aq3/CFq14BQ8KZRAeUqxzj/2MEMbQ+OET5
         lY7U4NyYg+4W7Z/nowhRnU4KKi0+lSLO5PiBhQxJkgcp6qkGcBkq+a2zNNt2N8Qzqe4P
         ZzD3FmKnqTTLdpU2VxEJnXBlpplY527Y32fmGXF5dUNNqlGkdHdRRpQCeSG//mceMUwY
         utVV9xlUjpz/2S5uZxos3/Y7a+IRCS6f+wsm7Ke3dp/WNxIanN8gGgmyIimAwgVdTGu/
         bvoF3prR8wsDh2QHOmaJEx9ZjPPcnw2vwxDKuRSzYq+V0IpSmDX79E5/k6sKmH5Ck5hz
         uvIg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755599184; x=1756203984;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=ojUIQfIyEL657Dt601PL1qd/mSs7z+u//+Iy3WEPsuA=;
        b=pXa2lB0Ar2fr1qL6Q+l/XcB1MC3oJMmH2+5MgbjN5T7TEoozFHIEVOOKxbMDpnjl4Q
         Qy9zQPhrjQby5Pd/dBw48Gr0qorzet9kOAKY889Xj+jfbHTZhIdf9zpyWGJEzqH3qJey
         oRvpqZGjhDEHLxZmEMkeB349eBfpirHJe16AJbdNPj0i/O8E0LRYoPXb9+GWP1R20nrD
         KXu7qo245Kyq5o5SK2OOv0VXu7Uu7yVh4RRfF3Sw2rGx33Lba5YT+5pCNurNSj7yYUMa
         ke/qvRC7WnHzsr9UBspyeTZaOYnNkSPP8cgGxedaaSGxenqf2pb64HaNdj9/bZy62NLg
         D/7w==
X-Forwarded-Encrypted: i=1; AJvYcCWkOtEbOsOq/5eINBjSxxGHmUnffuZ+yRGPUcMP4Nt0tAJn6TYYQ93hf7Td1hN5x638+kC3K8Q6S9I=@lists.xenproject.org
X-Gm-Message-State: AOJu0YymCHFleLDDQxzn3S9zQhuZDWiCN7wF0DJzlaoP/J3qpSpc/j9P
	w+ER1n4F4Gnj+jcgo+gThRr/VkuD7CVDxwsvbt8vvUHIeOS+6AxtZKyWNvtKZSicfor7M4rU4x0
	T1Oh+h3CZBhDGEbDKO1A34S13CuAlDNM=
X-Gm-Gg: ASbGnct263mHHvBvg4BQqWk0MsR/I74q+qhBBIKVhm41sR/M+K7eOprPNCIaLMu7YLu
	tLWrJTyogaLtXcpLon7eYuol80KgxN3JHd8Tn/zplYxr9tt3TSxiuN69G2u0lbHWORITnHj5Ur0
	cbLESF/PhNUp7oHignCmFqWZyLcfOeYblu7wKA+bFYULCHS54B0qlMr/D9gAeYRNi4Gz9a76bZI
	F/mLg==
X-Google-Smtp-Source: AGHT+IGf8P1mui8mcmERnj0bQQerMW6ZKd7HQ19cPGUw2o1RKfcYfIZ75TxyuajR0UMw+UCfWjTTwhl8iikGTW3raRs=
X-Received: by 2002:a05:6820:1aa6:b0:61b:ae0c:d334 with SMTP id
 006d021491bc7-61d919f9e84mr305227eaf.2.1755599184436; Tue, 19 Aug 2025
 03:26:24 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1753869323.git.w1benny@gmail.com> <cdd28b4f-34fa-42d4-a4b2-602fab2416b9@suse.com>
In-Reply-To: <cdd28b4f-34fa-42d4-a4b2-602fab2416b9@suse.com>
From: =?UTF-8?Q?Petr_Bene=C5=A1?= <w1benny@gmail.com>
Date: Tue, 19 Aug 2025 12:26:13 +0200
X-Gm-Features: Ac12FXyVV_iFk-vvpdQ7L7X8BbdSfHKW_tJT7b12WQDO8nbIHrVPawhLw9ngBrc
Message-ID: <CAKBKdXg8GyX7JR599ie1DT3tuiBYcuh_H6gn5agYKcB0zDoFtQ@mail.gmail.com>
Subject: Re: [PATCH v4 0/3] hvmloader: add new SMBIOS tables (7,8,9,26,27,28)
To: Jan Beulich <jbeulich@suse.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>, Andrew Cooper <andrew.cooper3@citrix.com>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Tue, Aug 19, 2025 at 8:45=E2=80=AFAM Jan Beulich <jbeulich@suse.com> wro=
te:
> Just to mention, also affecting your MAX_ALTP2M series: It is on you to c=
hase
> missing acks. It would of course be nice for this work of yours to not go=
 in
> only at the last minute, or even miss 4.21.

Thank you, I've been watching the timeline and wondering, what could I
do to pursue this. Which... I still don't know how to do it.

How exactly can I chase the missing acks? The Submitting Xen Project
Patches wiki page mentions that I should re-send the patch with
[RESEND] in the subject. Should I do just that?

P.


From xen-devel-bounces@lists.xenproject.org Tue Aug 19 10:28:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 10:28:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086414.1444603 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoJaH-0007yE-4h; Tue, 19 Aug 2025 10:28:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086414.1444603; Tue, 19 Aug 2025 10:28: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 1uoJaH-0007y7-0o; Tue, 19 Aug 2025 10:28:53 +0000
Received: by outflank-mailman (input) for mailman id 1086414;
 Tue, 19 Aug 2025 10:28:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xm9j=27=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uoJaF-0007xz-Na
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 10:28:51 +0000
Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com
 [2a00:1450:4864:20::62a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4c078908-7ce7-11f0-a32a-13f23c93f187;
 Tue, 19 Aug 2025 12:28:50 +0200 (CEST)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-afcb78fb04cso731163066b.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 Aug 2025 03:28: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
 a640c23a62f3a-afcdcfcb2ddsm984667766b.74.2025.08.19.03.28.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Aug 2025 03:28: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>
X-Inumbo-ID: 4c078908-7ce7-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755599330; x=1756204130; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=K6SAg7jc8d7k0OXULNtwEIwM4DL3NS/H5qIiGaCFaII=;
        b=GAVkaU5jDctCc50i7FI630tzN47ZI04EQiCH7pzh+jjY72wh0XMQ5NfMCTU18Q1mCV
         GFGcEGQ4mmknrGQQxEf4FSNEmIVudrNBxO4xD51MLv1Q9oEm74DW97G0o8hvxbf6Dl8A
         yxx/CHvfl2wupagdzBwUQbc1s3Bsk4m1kChnLFtVyRHHb2ATpuP+eYTUIWE2JWa8V5v5
         O/ZtaIAAYRfdKSNRJRkw7Wf+VMPeNy51tQTEs3FMkyJGj0nyBgGJdAfwtT4pln6WbGla
         sS58LF5WhVXhbZTSnAUseUxut3aOQp400ye1BGSjHcVR0VLtYACbQOFJlEa00dug/qna
         Oc6A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755599330; x=1756204130;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=K6SAg7jc8d7k0OXULNtwEIwM4DL3NS/H5qIiGaCFaII=;
        b=FyVJ4PfuqlPs7Nf3dKi4higCEcgjg4zMaYLMbOtY8ei3QcUtnTxf5RZShXlwsb01AI
         NhUGz5cJ7Q/8HkrgqGJY40GLS0YWRbQSTP98OWyHmlB5g62a/tdFrN/Yhy7Mwh+tLjte
         5VKtfxV+lNUEhUiXfjt2VYiYMSkz3h/+pjBkmd8sE4sxkvk0CiXdhnMo35G5YUDjUvQ4
         Bxzusrr96yuVY5oJb/t63A66yGmCXNabBwCraupVo0y+v35nBS3gGLRxOzTAApGt7au7
         hu8bQ5mDvWfBQmnHqAZGlh1x2SdNQfHy56KNrm7Mc8dsYp+ZURCwXjlTw1Wz3Iw0n4Xo
         yvRA==
X-Forwarded-Encrypted: i=1; AJvYcCXQqjEWPcENnTLbSMmzEEVqpAl2kcNO01ev65G7xNxKmjCssOOq4QzUGouHZnEUbPnHUVDUmFrlGgY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyY9m33txiEp4EwcG4a82+kACMPqs66E9obWxfBs2V3h8plJdiJ
	GCzKAuO7zysHlJJLRzuiTmfoHp9Z/xO6RiSNKw//ter1VjOs4MVBOl180hZeL9+Snw==
X-Gm-Gg: ASbGncvSMiV/OkMRZNBtV0SkKwJTTILUN/D53zwYoSo8yfPp0JnAmXDLB2uIztmE1xc
	dNB5ZjEU6HHLsRYGG7655Sj4FUHzb8Ms53avi2f0anRpUqsOdPy/xt/paF6qCh7J8o5xFrfAXCB
	d3vg20/AW8UznbbpUqD9kaPgDytQAnvEwTy/drPRuwHozOnL63CtDY4Rx7sjVvAAjYjCtKfmtJP
	GkuTfqS7RbTxgElAdgzOk9Y4LxervBhqlj4ZSkR90nNswNkWDmdV6R4oHlUs2vSAbR+xjXNNekT
	+6e8C58gnKSuMZ5AzgWncEoccpmXrU7yH5f4Yj0499wXPRdbI9ew0aNpn0TIktKhLMowTaDOrPu
	cizihS9TO1eQCWOM0PPjurrJE3cKxyd+7NY/WwlCArXGzRQ56oKyix2ryiGz1bYa/jFW02TZwif
	8e45LBalD42qgSoRdMLg==
X-Google-Smtp-Source: AGHT+IEuy6xH5ET2+eYxfPdy6KnCLW5RCzuHINUyijCkKXGYe3EMjl6H3ppFlfkaeg4Y5OTbdN/M0Q==
X-Received: by 2002:a17:907:cd07:b0:af9:c1fa:92af with SMTP id a640c23a62f3a-afddcb60a8amr190695066b.6.1755599329885;
        Tue, 19 Aug 2025 03:28:49 -0700 (PDT)
Message-ID: <2392479e-b6b4-4d27-8425-4f66e677ed3c@suse.com>
Date: Tue, 19 Aug 2025 12:28:48 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 0/3] hvmloader: add new SMBIOS tables (7,8,9,26,27,28)
To: =?UTF-8?Q?Petr_Bene=C5=A1?= <w1benny@gmail.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 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.1753869323.git.w1benny@gmail.com>
 <cdd28b4f-34fa-42d4-a4b2-602fab2416b9@suse.com>
 <CAKBKdXg8GyX7JR599ie1DT3tuiBYcuh_H6gn5agYKcB0zDoFtQ@mail.gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <CAKBKdXg8GyX7JR599ie1DT3tuiBYcuh_H6gn5agYKcB0zDoFtQ@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19.08.2025 12:26, Petr BeneÅ¡ wrote:
> On Tue, Aug 19, 2025 at 8:45â€¯AM Jan Beulich <jbeulich@suse.com> wrote:
>> Just to mention, also affecting your MAX_ALTP2M series: It is on you to chase
>> missing acks. It would of course be nice for this work of yours to not go in
>> only at the last minute, or even miss 4.21.
> 
> Thank you, I've been watching the timeline and wondering, what could I
> do to pursue this. Which... I still don't know how to do it.
> 
> How exactly can I chase the missing acks? The Submitting Xen Project
> Patches wiki page mentions that I should re-send the patch with
> [RESEND] in the subject. Should I do just that?

Or, less spammy, simply reply to the respective patches with e.g. a Ping: subject
prefix. Or ping people on Matrix.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 19 10:29:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 10:29:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086422.1444613 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoJbC-0008Tm-C9; Tue, 19 Aug 2025 10:29:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086422.1444613; Tue, 19 Aug 2025 10:29: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 1uoJbC-0008Tf-9B; Tue, 19 Aug 2025 10:29:50 +0000
Received: by outflank-mailman (input) for mailman id 1086422;
 Tue, 19 Aug 2025 10:29:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xm9j=27=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uoJbB-0007xz-4n
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 10:29:49 +0000
Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com
 [2a00:1450:4864:20::52c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6eabee4e-7ce7-11f0-a32a-13f23c93f187;
 Tue, 19 Aug 2025 12:29:48 +0200 (CEST)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-6188b70abdfso7197395a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 Aug 2025 03:29: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
 4fb4d7f45d1cf-61a757745absm1519443a12.28.2025.08.19.03.29.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Aug 2025 03:29: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>
X-Inumbo-ID: 6eabee4e-7ce7-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755599388; x=1756204188; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=bqULm49BqcM7ErAH695syjDAahqZMiqsytplOm1F+u0=;
        b=WsHaXc8UISHc25tO5MyPkimzLmF+QWvs7AgUtWKHw0S/z54OpzKPV4+5xDh9K3eHhT
         3MZp7PcaMbWjjGipv6C/0Ds9ADEYy4kmyoyK2N5aRJqTiPcwOrf0EZmzYeoweCW0Zht8
         EcYofIPXjsFCmrMG/fuK3yyHSxDYDpxgeFfhhY79sUVq+4DHK8H2Fe1CyiCskC9hk1Ue
         ++GHKMdwZi83Ysb890zGnnWhZ1DClCcrOAZTnnbsA+KKGMIsiYdN6gbG0JS7EgjPP1q4
         UpiB1EMnIesDeiwCOdqt3al7CaeT6WwrSSF7yvlQfUI76Adq76NMFZIEjIxFKOb1CMCz
         VjeA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755599388; x=1756204188;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bqULm49BqcM7ErAH695syjDAahqZMiqsytplOm1F+u0=;
        b=h9o2pmIbz/q9Qjzq9YdQBEVZbHHE8RhIJyq+P+4/54RW5DDF5EAdegnBG1aZMhGzuH
         1G1YJCai81YThhiDidNIMg/2mHh+CpbnpNMl+BWxX64WHlS+OOnlC/XOh1dQ5ndb/Uht
         v/P5UbsvSwNmmnsp6aiJi8D3MNDVmIgkQYTAyxb3sQ8a1pxyoWgpnfPRaTMFuEgnajmW
         QdO3jrYAR4qSr/lfgn4NELfmkDRH3Jh+xkSCqkaa3XD+mhDoJ+XHYsTTtthIWdKgjUqG
         LT0+qP0+FImsBhNE3TopXbxAthEksXlTZb549m+R/DrgsM9kGoUOuW8iUTqM9lRoRAij
         iCiQ==
X-Forwarded-Encrypted: i=1; AJvYcCX13KvbopJSzKpo2FQUWTqFAGiQ8rK84qybGfr3IuOazjrs74+Qdtygu+eDVRCWLSM1+idDOdc1dZs=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzns58BxzOAOIT3XcUq/AWSiu/WEVRAmx61ukJg35eyFEQ/wJ3h
	s0w11lg05cU08aCmPeL5bKr9afpN4ZxBPDscKkBgQCprhYULKyOc7HS+RobZGpaxVg==
X-Gm-Gg: ASbGncu/4KYVZDKZHVcVVUdOyUoyld5ME6WEH+SWz1vrv2KNOqh1Hq7Dtje9XHXQGjw
	A0VXQ5pcAAmRZKIcxEF+Lvkg25smh/nUzWD3T5v3XAR5LQz2kjLuvBY9WoNI5NE/g/8j8HlVQn+
	wmEz+27nnNUJ7kU6Om3wUYfLIQZmR5JiyZVCE2dGnzo5vPwYOYRT7bXd+VkXLn59wXLljD8ai+v
	YfL/NWu1IHodtNl8KCZkJOShwG29pAmpptoLK9zcBBM+bItB9uaAKX6XAhG/7jiTPlA+N/sG271
	mXKL4nZ8Z592RBKketSEDyyVLmxupMgbhnQdT4tBC4Fo+jObqO8SzPpuqN8LvGr06kd2AEEv9Gi
	+RsynOkH/WPvhkgNreqFwtu6poK4W/HdhM9PvolY6+GVo0kBXgewdnY1kBybcSec5BCMmOXN7FU
	GSdePEY4r6EmAbEYdU2w==
X-Google-Smtp-Source: AGHT+IFEEV4b+D1DdYnAkY9mnkxWIRbNJ1K3J+QG4jVAvQ7r/MrDzcV+CFnd7BSy4NfWzC+sCjq7vA==
X-Received: by 2002:a05:6402:4306:b0:615:546a:932f with SMTP id 4fb4d7f45d1cf-61a7e72b6a1mr1547421a12.18.1755599387998;
        Tue, 19 Aug 2025 03:29:47 -0700 (PDT)
Message-ID: <af5a8671-4bec-48e3-8430-28d668e72c05@suse.com>
Date: Tue, 19 Aug 2025 12:29:47 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 07/16] x86/msr: Move msr_{split,fold}() into
 asm/cpu-user-regs.h
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
 <20250815204117.3312742-8-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: <20250815204117.3312742-8-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.08.2025 22:41, Andrew Cooper wrote:
> Now there is a local header, asm/cpu-user-regs.h is a far better place for
> these to live.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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



From xen-devel-bounces@lists.xenproject.org Tue Aug 19 10:40:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 10:40:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086431.1444622 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoJlA-0002jM-84; Tue, 19 Aug 2025 10:40:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086431.1444622; Tue, 19 Aug 2025 10:40:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoJlA-0002jF-4z; Tue, 19 Aug 2025 10:40:08 +0000
Received: by outflank-mailman (input) for mailman id 1086431;
 Tue, 19 Aug 2025 10:40:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xm9j=27=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uoJl8-0002dZ-KL
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 10:40:06 +0000
Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com
 [2a00:1450:4864:20::52f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dda1ec49-7ce8-11f0-b898-0df219b8e170;
 Tue, 19 Aug 2025 12:40:04 +0200 (CEST)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-6188b7949f6so9531670a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 Aug 2025 03:40: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
 4fb4d7f45d1cf-61a75794ccbsm1565987a12.39.2025.08.19.03.40.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Aug 2025 03:40:03 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dda1ec49-7ce8-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755600004; x=1756204804; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=L2HfJE50R2xX3LKs3bv68gJhZRqOK54gsd8NsS9sVNY=;
        b=fBmW/FR+ZeX2E16jbuUO2mbMxGZ+1aF21t2b3Za66Z2OBVh8aav+pW8TfFrOZrmru9
         6ITluaGTrhlf1C0iu79J3ey1dT67kQDmY53IUEIMYkesopYqBStibUuzHbcJOU+j+Mr1
         5OpMPi4pCpgWaIhISniZyRAchfXAksldSBgES6c/EBBUfYOjq91TlUtX7tsSwX/lSji1
         PKKknLs7lf9/bmije+Pu2pPatV+LG3j+oLWQ5+87DVYaTf5aXvrZeDNySurUZpIKLxIt
         ssNsEg1Pv+ek4S442k5FaVd5pFTYOxK37t0g3eFaGzq7gSgdwdYvq+ZoVwUZbYx7y9zG
         fHww==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755600004; x=1756204804;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=L2HfJE50R2xX3LKs3bv68gJhZRqOK54gsd8NsS9sVNY=;
        b=GTk3eVC68pF7HctxYo4pyDN01z1qd/o6h4sNqGEuiVgmZFC9UbRkyKA4OSquA4baf2
         01DTH0VtubAUIIX9p4XQk9Zr2Mnt/NoNOMFJbSM3n5NGXpsEItgZOotphSCmLPH7Qxxb
         kDtokUvrfwIwSUyHSTT9szy/VvxDgsij6Uf3ILAU54HwQ9JZA1xekDTOQ6zBbIU5bB6P
         CH7KvTugPwVM/XHZ1Kra6GaW4DU78HK4lIziO+efdkcfURouifLrTQ2j9N04MV2uP+ST
         l+sv2b2MobfUC4RUUm5/dAavepijUf0cOlkhkfD3LLU2WjngDgFdoGawfdIcrap0JQqF
         kVcg==
X-Forwarded-Encrypted: i=1; AJvYcCUXo7AouaNZGxj50sJ1zx9TV7kLLw+478Jm6B97QqJ09X3hRd5eC+m/7sdin9QCOjnmAs1o0nhsuAM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzl1AiH0VNo9xt9Vha+2RkKjE8upc6uDTKuULAs+pCXdIfxjbOm
	xX3MoRNOf5HQaEBaIWrzAj4or6YiQm7qh574xjZBk1j8jOkdLBBgc4hCb3WeZpK7+g==
X-Gm-Gg: ASbGncvbHbbsIgdxMJpl3VSRnf0J8dXWiaxpAWT3VXmSpDd/eC/bXIL6blkmhrgGRpt
	i9UERTBAP79fFWPr8hfQjuTYeycG8WIeofNsd7Jf5esBKeknU1t2obDvWjz2R6gJn1v7k+slqPT
	0pKm5QctKmsCEjDWie2ZQvoY9Bvv/jtO8Eeb0c5DyhZQm9PLYgsB47srZEvKfWhBMbwZ7YIaA0Y
	gPe8mRzNZaQLbroCtUdnKf29PNm3bj1MYL38UAT90mb7YN+ClqUsP7KXnU+nULXpzxmeFzcVQjm
	M/Rthkw1mwBg4fnu13y7KMCXPIgQFfHcwhQ5WEoMOrJ5DBqH1plP4FqeWlQfCrrZi0FtV6hgZmF
	ntWGsB11n7lREDiJPf/wQkf1hyBSdV9jc9NWtAFfEtDUae84xGzc+7oh32K6Z3Ivwi4IOT0+dd8
	XPEwdSfTQ=
X-Google-Smtp-Source: AGHT+IHXp/SCz+UK5HfkXt3qyPpRM+fgVa/Ksmd0I86OXMUvMvbBX7SdMIN5TbP4gXZVq++96GRaYg==
X-Received: by 2002:a05:6402:3596:b0:618:20c1:7e74 with SMTP id 4fb4d7f45d1cf-61a7e756b98mr1549722a12.25.1755600003657;
        Tue, 19 Aug 2025 03:40:03 -0700 (PDT)
Message-ID: <85c5fbe6-48f4-4e4e-9752-5d4ef34fb8a5@suse.com>
Date: Tue, 19 Aug 2025 12:40:02 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 08/16] x86: Clean up asm/time.h
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
 <20250815204117.3312742-9-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: <20250815204117.3312742-9-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.08.2025 22:41, Andrew Cooper wrote:
> With asm/tsc.h split out, asm/time.h shouldn't be including asm/msr.h, but it
> turns out that an outrageous number of files (even some headers) are pulling
> their dependentices transitively through asm/time.h -> asm/msr.h
> 
> Most are asm/msr{,-index}.h, but in some cases it's printk(), va_args, and
> even PRIxxx macros.
> 
> Give asm/time.h an SPDX tag, and strip trailing whitespace.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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

> --- a/xen/arch/x86/include/asm/time.h
> +++ b/xen/arch/x86/include/asm/time.h
> @@ -1,8 +1,7 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +#ifndef X86_TIME_H
> +#define X86_TIME_H
>  
> -#ifndef __X86_TIME_H__
> -#define __X86_TIME_H__
> -
> -#include <asm/msr.h>
>  #include <asm/tsc.h>
>  
>  typedef u64 cycles_t;
> @@ -38,6 +37,7 @@ uint64_t cf_check acpi_pm_tick_to_ns(uint64_t ticks);
>  
>  uint64_t tsc_ticks2ns(uint64_t ticks);
>  
> +struct cpu_user_regs;
>  uint64_t pv_soft_rdtsc(const struct vcpu *v, const struct cpu_user_regs *regs);
>  uint64_t gtime_to_gtsc(const struct domain *d, uint64_t time);
>  uint64_t gtsc_to_gtime(const struct domain *d, uint64_t tsc);
> @@ -47,7 +47,7 @@ int tsc_set_info(struct domain *d, uint32_t tsc_mode, uint64_t elapsed_nsec,
>  
>  void tsc_get_info(struct domain *d, uint32_t *tsc_mode, uint64_t *elapsed_nsec,
>                    uint32_t *gtsc_khz, uint32_t *incarnation);
> -   
> +
>  
>  void force_update_vcpu_system_time(struct vcpu *v);

... with that one line dropped rather than just pruned of trailing blanks, so
we no longer have a double blank line here.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 19 10:42:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 10:42:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086442.1444632 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoJnl-0003Tf-JE; Tue, 19 Aug 2025 10:42:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086442.1444632; Tue, 19 Aug 2025 10:42: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 1uoJnl-0003TY-Gg; Tue, 19 Aug 2025 10:42:49 +0000
Received: by outflank-mailman (input) for mailman id 1086442;
 Tue, 19 Aug 2025 10:42:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xm9j=27=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uoJnj-0003TQ-M2
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 10:42:47 +0000
Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com
 [2a00:1450:4864:20::533])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3ded0c83-7ce9-11f0-b898-0df219b8e170;
 Tue, 19 Aug 2025 12:42:45 +0200 (CEST)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-6188b5f620dso5696662a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 Aug 2025 03:42: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
 4fb4d7f45d1cf-61a7560a0f8sm1496434a12.24.2025.08.19.03.42.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Aug 2025 03:42: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>
X-Inumbo-ID: 3ded0c83-7ce9-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755600165; x=1756204965; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=WIsV9Vd3k3FZNRz6LQtn1B+cKcmfD9qtcjJc7rx23qg=;
        b=YtTKRuQ4y8pPNECsRjfkm3njXhVcFltNen2Pr6dqThytlHVIrew9otTIi3BoAdQoNM
         dDUy2beGLX+DLBf1pmrYalvHKen9b9QvdArLuu4bE83NdtWcoCXAZQGZI0NaRAMKM0qz
         EvwnlXZpmJzCbvYPVBZyWxGxFR6YUrHabGxnwP9IWVCg7F+waBXxzjmulZ1wXT/tyajE
         SmyqU9ZyDLExQRrbjO1+Z867pqjRGNSKnzduypAgshjYJ3JeyFvTKj3wfJOBwx0UK4CT
         ANBRQiu4fdMu8EfdfTRSJpukht7DB8TzSLcdSmZga53QTqd0J7tXgcVobMYWL5lDBJa1
         nr6w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755600165; x=1756204965;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WIsV9Vd3k3FZNRz6LQtn1B+cKcmfD9qtcjJc7rx23qg=;
        b=BRIxQpE7PRC41nXBrtYvWXaLx9BV8InhmP9eWxlvtS50uLk1AzZp/CSfb0hY4nrJOE
         Vf3XOZur+cP3guwaZ7sAuZQatnyLCXW6OE8ae0RR8K/fBQYyIj2KT5alhmUrdB5IdqRk
         hixkRj47RB/lNUPP6BGilJ/wG0aw9VDBKETonRUSOpGy29HQibLs+yZRHvoTAp7ZTKHQ
         SR6jtYVdZoNztLvuw8/nfcTuy61bSJdJVhSTQ8wUSnBZVgwmmwWI6oUlYd05ZEDPnJvy
         3Lw4XcDmUjIkz0Rrnf/ZPSTFbNE5iaSTcVcWYWPxU/rM5GG8HgwZ8PC1DcePtf93XCvW
         i6bw==
X-Forwarded-Encrypted: i=1; AJvYcCXeilO8X7zwu/OGEezlvbQH1RWmBPIdw/a1jzqfQZAU1c+VnbIrZRPVggMCpqotRrSefs+U7F7nSBY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzqeUuTSlZwlO/5YFzTplCO44O+yB6XuhciSNYUkSyQFgERG4YB
	0Rg1jd/joSe4AN3iN0PIqunds/QnFGIo0/2oJyjc8cjeoaH+B0Gy9o5IGJSUFnePmA==
X-Gm-Gg: ASbGncuBnGXp3TQu3OGnsc053BaZxwO9QhpS6zvSi8nZbQ2wIUPhHA5NYYO3io29ojW
	sHTFLKkVEPYCdJGeJt2aXtg/xn13I0/0npIWKpSwa8o76YJIz6b4a/C69F+qL19Y6g17Lxdq1ZC
	xzduwgYbQqNHRhDwiAyQm0yEOfSG5sTfbH6LV/5xhEY1EC9gRIxT86QbWXAo5ikgVDY0xyYcTw+
	b13G96CxPUd9B1wnnZILctMaAxwHgVa54hV7AUnjk18qwVUD/T1Sl5WoElM34fZiFUL6JheAe1T
	SyGoy2u/L0Eyi4+ztHeuiI/scMZyUbxbEMhXrm1SbnysBu5JH+SlijJk0lIirBZ53SnN1vS0pW+
	lKtTjebdEEoaWhrHZ5Pd12uildQEZa+H4ml57nE8+xPdtGTT81fXD+rE8hcjFWMccm0TMY+zeYN
	bXE3wgO/tLv8I/u+L+EFkPlQipcAfF
X-Google-Smtp-Source: AGHT+IFYDHtQunNVz01Hu0Tc98USIMYgaa7L0hngKjqy1sx9mSmwDNLqpF7kDcMZaHzM4KkgV6Q5Xg==
X-Received: by 2002:a05:6402:274d:b0:618:4ab5:e85c with SMTP id 4fb4d7f45d1cf-61a7e76c67cmr1559481a12.34.1755600165244;
        Tue, 19 Aug 2025 03:42:45 -0700 (PDT)
Message-ID: <9c1808fa-1865-40b6-91c2-d6e2cabd8ddc@suse.com>
Date: Tue, 19 Aug 2025 12:42:44 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 09/16] x86: Clean up asm/msr.h
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
 <20250815204117.3312742-10-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: <20250815204117.3312742-10-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.08.2025 22:41, Andrew Cooper wrote:
> Now that content has been split out, minimise the header files as msr.h is
> included by many translation units.  A few more TUs were pulling dependencies
> in transitively, so fix them up.
> 
> Give asm/time.h an SPDX tag, and strip trailing whitespace.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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

I think though that ...

> --- a/xen/arch/x86/include/asm/msr.h
> +++ b/xen/arch/x86/include/asm/msr.h
> @@ -1,18 +1,13 @@
> -#ifndef __ASM_MSR_H
> -#define __ASM_MSR_H
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +#ifndef X86_MSR_H
> +#define X86_MSR_H
>  
> -#include "msr-index.h"
> -
> -#include <xen/types.h>
>  #include <xen/percpu.h>
>  #include <xen/errno.h>
> -#include <xen/kernel.h>
> -
> -#include <xen/lib/x86/cpu-policy.h>
>  
> +#include <asm/alternative.h>
>  #include <asm/asm_defns.h>
> -#include <asm/cpufeature.h>
> -#include <asm/processor.h>
> +#include <asm/msr-index.h>
>  
>  #define rdmsr(msr,val1,val2) \
>       __asm__ __volatile__("rdmsr" \
> @@ -113,11 +108,6 @@ static inline int wrmsr_safe(unsigned int msr, uint64_t val)
>      return -EFAULT;
>  }
>  
> -#define rdpmc(counter,low,high) \
> -     __asm__ __volatile__("rdpmc" \
> -			  : "=a" (low), "=d" (high) \
> -			  : "c" (counter))
> -

... this removal wants mentioning in the description. I'm actually surprised this
is unused - how does vPMU get away?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 19 11:27:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 11:27:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086464.1444646 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoKUw-0000n3-Vt; Tue, 19 Aug 2025 11:27:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086464.1444646; Tue, 19 Aug 2025 11:27: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 1uoKUw-0000mw-TJ; Tue, 19 Aug 2025 11:27:26 +0000
Received: by outflank-mailman (input) for mailman id 1086464;
 Tue, 19 Aug 2025 11:27:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=TlMz=27=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1uoKUv-0000mp-41
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 11:27:25 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on2061b.outbound.protection.outlook.com
 [2a01:111:f403:2418::61b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 78e0b59f-7cef-11f0-b898-0df219b8e170;
 Tue, 19 Aug 2025 13:27:22 +0200 (CEST)
Received: from SJ0PR05CA0056.namprd05.prod.outlook.com (2603:10b6:a03:33f::31)
 by IA0PPF44635DB8D.namprd12.prod.outlook.com
 (2603:10b6:20f:fc04::bcc) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8964.21; Tue, 19 Aug
 2025 11:27:18 +0000
Received: from MWH0EPF000971E3.namprd02.prod.outlook.com
 (2603:10b6:a03:33f:cafe::91) by SJ0PR05CA0056.outlook.office365.com
 (2603:10b6:a03:33f::31) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.12 via Frontend Transport; Tue,
 19 Aug 2025 11:27:17 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 MWH0EPF000971E3.mail.protection.outlook.com (10.167.243.70) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Tue, 19 Aug 2025 11:27:16 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) 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, 19 Aug
 2025 06:27:14 -0500
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.10; Tue, 19 Aug
 2025 04:27:14 -0700
Received: from xcbayankuma40.xilinx.com (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via
 Frontend Transport; Tue, 19 Aug 2025 06:27:13 -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>
X-Inumbo-ID: 78e0b59f-7cef-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yTUS4i/DWTJzO9QapNZpH3V4SU3yXfdu57455jONsxSfkU6YxALOI8FupnbBOmRgkVroLF7UXngkKhBdiOfUv1Lf3HrTOUpVz4iHuEQvOZKmDurIWZQ3t60GXkYyafZKjzkWzABPXqnnKPwxi+mlEjgVtwyD3hxk0PZK0mpuLEZV9PssBeAiu1gV68mxWkX8JIXlCB/RR+XdCXXAYv1fgYO72CBj5PBWH4YG3QZ76ds9790JEQQE9e4Jv795vGBjqDi2s0gNea/kz83anhuEDX0eb1pMJ5WzZVpfDUOoa081uda4LTMWWbXt3jr+XsjOriTK+oYufnC8zBZ3SMNBaw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Mod91OXSJKMWsqI/Xv5g/tFPiOhHB1wMGsFVxE9S3kQ=;
 b=pwhzkgoqRgxi5crFH61BaM3rJ1oacenvwBnZzfkFx1x5knD449MzqUWXbq1toJq30sSiT79SGP0eD5XEjWVDb0WbI4GaLqonS2nCMAe4w94ZVs8sFAVVr1b6dG1t0KumsBZrz/+XlnMWkSLThER2CjmAVFHC9IqsxylyMxs2tiZ561c2n8MIiMJlW9z73jlPJoRw9jPRQhqCcM3HHeJaV6MnYtKyM1od0kXV9LbocYzxNhsm7fzGDZg8b4qksdREi6xjRvOtsYRsyQslReAoKslXA+uVXXBgbW0ZG4dxBvsfE/ksoSvWThTh5KmmRQC7kLYL48yv4HfFLo8Z54cS7g==
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=Mod91OXSJKMWsqI/Xv5g/tFPiOhHB1wMGsFVxE9S3kQ=;
 b=SbWTw3NpC3MslQPGCyC9TnkDrQfRcyPU4CJmS1J8BLEeKEohdWxJps+jRglos0DKiRRifY30G9R5VKLZdZ88wXEV5qR6mgE50Bywh4J47IMWp+aj9G1dWEMZKzHZEAoSu5w+Q6VAu5WlGYVB0a2Pb037TwVBw41PESJQy8QA86Y=
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=SATLEXMB03.amd.com; pr=C
From: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Ayan Kumar Halder <ayan.kumar.halder@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal
 Orzel <michal.orzel@amd.com>, Artem Mygaiev <artem_mygaiev@epam.com>
Subject: [PATCH v4 1/2] docs: fusa: Define the requirements for XEN_VERSION hypercall.
Date: Tue, 19 Aug 2025 12:27:08 +0100
Message-ID: <20250819112709.3789987-1-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MWH0EPF000971E3:EE_|IA0PPF44635DB8D:EE_
X-MS-Office365-Filtering-Correlation-Id: db9a1dde-e6e5-42dd-c988-08dddf135a04
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?D5UBKLcU9fTzyKXuHqyZ+xHU1IyhyOMbqeVXFEGXS5G4gv0WTpXXGPeboHUX?=
 =?us-ascii?Q?hMIYq9pjpJrMHFo70zOC6ZgqWR3z/c71Y4Y9n1YCSdMuSA5M7eMwf0Ys6I4v?=
 =?us-ascii?Q?kWkHrsP8UclpRC/tWqaOBIFbNtx95oPMw1sCCOhh3rJrEwDvu+qiSsnBfPyo?=
 =?us-ascii?Q?W/vVn5NPGfcY/EK/st9/DHVoUATsxpznFEborsQDSQkm/jWdCN6sJ/ylpfRm?=
 =?us-ascii?Q?0DBn8QWfmUmobZ/M1pQlycvTrR+zWaazcgl5T0wHKd0R+h9Kq5/g+Z+XkBu0?=
 =?us-ascii?Q?lSQt5g7HKyLleHFB75QfMT7vDK6kbFzVjOLMHk6iKglSHinjrXAbFEvfz4jd?=
 =?us-ascii?Q?LspIs2KizK4O8hqPa1HmTFA7acZNLxXtTGNur5P1BDP14MqsPboaXjx5/Nvi?=
 =?us-ascii?Q?/3S7ifZyMvL+cnPlLLV8yGEh6L3mOexGktR7GSqRY7QHhs/DTgFUJ/tuTBqN?=
 =?us-ascii?Q?5b1GfC3OLSz+LGbiinDEJ7D0vBdmtANhLDRaEaqr2riN39tqF7q2LtHUwnjG?=
 =?us-ascii?Q?ZC9maz+oUd5Gojvq92LdCwhABeTBWzVz3bzTTKsOTOLzvBIo753e6/g30krs?=
 =?us-ascii?Q?oY9zCvCPlZP0ElP7BxjqvqETWozBcGH6ncYZnTyPsvKu9AmvZm7yVvZ95Q0X?=
 =?us-ascii?Q?DmguSVdDCju+/5Jh4ezhPN5mRaWiMYpGnxEBrKRarD9i+6w12gshN+mvMEXd?=
 =?us-ascii?Q?twsKD3u+7WhnoK1E92fuvlAIjGaeYMQ1z1SWrO1HWKtND/quv3FpmYgpbyKY?=
 =?us-ascii?Q?ikYhSl0PbLFdDYhRZl1YxiLr8V32/G9WRZ/r0SLEzyIDWiYQnixdBUVfDApv?=
 =?us-ascii?Q?9ZWZRZv/HOHF9AarVkRmQLdP8wD91ptLikjnmRWmM6sidz2U2SPFjYuqy+nZ?=
 =?us-ascii?Q?Zei4TojfrLZhNAOkPlBwPIewuO9uC8nCoYiOYRSiVI7T9rSjahSjwkRBOdFM?=
 =?us-ascii?Q?z26qjl0dH/o4doI22j13ROrOi29SNYmv6uN65xc+xP+aGyQ86EecPIdddt8t?=
 =?us-ascii?Q?Yh4RCDuSM90RVQvyJMZv0nEGAS37pfdVoW0RgrTa/jCVB3rtmdRYjn+Wt8gy?=
 =?us-ascii?Q?uZeM3X93lag0YIUfbZfOEPT2HVbhSOYSHfOZDLrV4zZk2SXQ1Kw5vrXwKCmF?=
 =?us-ascii?Q?bWwobMP71fcLm3r4UsYVZ6LJtkoFGcBWK2ijylJWqOOhT5Z5Thetn51Ihw65?=
 =?us-ascii?Q?yRsGHkbY7eEifmm39Uy9Qyfhg7O9LEhJuhmiEYbDVBxV0FYgKgJay73Vgp/0?=
 =?us-ascii?Q?g3T5MuQw279G3YYG1LszwoD5AAvtp55S8wgi8T6vtshWiBnHKyxiwgAUrrRT?=
 =?us-ascii?Q?6u9oY+lSfq7KSAsA/sWT9HWW5bUKVGvMAkNTLxwUinz94qKF+BOqTx2PI5Ns?=
 =?us-ascii?Q?j08VUJaxXRoaTTbZLbGjOPy8Bfs5BNsQXhg/AQvKiR6gZCu9uwkUf2ysrj2d?=
 =?us-ascii?Q?myLA6XoF2vJVs5b05hvhfYRaZbRrmmxIoJs7uZ9mLaQJfevaHLwy+z+TRG+Q?=
 =?us-ascii?Q?jUcnCS1sZhUHqg9tYQntwhHT8bXjZufz41L+?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(376014)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Aug 2025 11:27:16.2768
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: db9a1dde-e6e5-42dd-c988-08dddf135a04
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000971E3.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PPF44635DB8D

Define the requirements which are common for all the commands.

Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
---
Changes from -

v1 - 1. Fixed `XenProd~version_hyp_ret_val~1` requirement as Xen does not return
0 for success in all the cases.
2. Reworded the requirements so as to write them from Xen's perspective (not
domain's perspective).

v2 - 1. Specified the register details.
2. Specified the type of buffer.

v3 - Fixed some wordings to make it precise (eg register details, bit fields).

 .../fusa/reqs/design-reqs/arm64/hypercall.rst | 60 +++++++++++++++++++
 docs/fusa/reqs/index.rst                      |  2 +
 docs/fusa/reqs/market-reqs/reqs.rst           | 16 +++++
 .../reqs/product-reqs/version_hypercall.rst   | 42 +++++++++++++
 4 files changed, 120 insertions(+)
 create mode 100644 docs/fusa/reqs/design-reqs/arm64/hypercall.rst
 create mode 100644 docs/fusa/reqs/product-reqs/version_hypercall.rst

diff --git a/docs/fusa/reqs/design-reqs/arm64/hypercall.rst b/docs/fusa/reqs/design-reqs/arm64/hypercall.rst
new file mode 100644
index 0000000000..82ecf690a3
--- /dev/null
+++ b/docs/fusa/reqs/design-reqs/arm64/hypercall.rst
@@ -0,0 +1,60 @@
+.. SPDX-License-Identifier: CC-BY-4.0
+
+Hypercall
+=========
+
+Instruction
+-----------
+
+`XenSwdgn~arm64_hyp_instr~1`
+
+Description:
+Xen shall treat domain hvc instruction execution (with 0xEA1) as hypercall
+requests.
+
+Rationale:
+
+Comments:
+Hypercall is one of the communication mechanism between Xen and domains.
+Domains use hypercalls for various requests to Xen.
+The exception syndrome register should have the following values :-
+ESR_EL2.ISS should be 0xEA1.
+ESR_EL2.EC should be 0x16.
+
+Covers:
+ - `XenProd~version_hyp_first_param~1`
+ - `XenProd~version_hyp_second_param~1`
+
+Parameters
+----------
+
+`XenSwdgn~arm64_hyp_param~1`
+
+Description:
+Xen shall use x0 - x4 core registers to obtain the arguments for domain hypercall
+requests.
+
+Rationale:
+
+Comments:
+Xen shall read x0 for the first argument, x1 for the second argument and so on.
+
+Covers:
+ - `XenProd~version_hyp_first_param~1`
+ - `XenProd~version_hyp_second_param~1`
+
+Hypercall number
+----------------
+
+`XenSwdgn~arm64_hyp_num~1`
+
+Description:
+Xen shall read x16 to obtain the hypercall number.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~version_hyp_first_param~1`
+ - `XenProd~version_hyp_second_param~1`
diff --git a/docs/fusa/reqs/index.rst b/docs/fusa/reqs/index.rst
index 1088a51d52..d8683edce7 100644
--- a/docs/fusa/reqs/index.rst
+++ b/docs/fusa/reqs/index.rst
@@ -10,5 +10,7 @@ Requirements documentation
    market-reqs/reqs
    product-reqs/reqs
    product-reqs/arm64/reqs
+   product-reqs/version_hypercall
    design-reqs/arm64/generic-timer
    design-reqs/arm64/sbsa-uart
+   design-reqs/arm64/hypercall
diff --git a/docs/fusa/reqs/market-reqs/reqs.rst b/docs/fusa/reqs/market-reqs/reqs.rst
index 2d297ecc13..7e3912c8f8 100644
--- a/docs/fusa/reqs/market-reqs/reqs.rst
+++ b/docs/fusa/reqs/market-reqs/reqs.rst
@@ -79,3 +79,19 @@ Comments:
 
 Needs:
  - XenProd
+
+Version hypercall
+-----------------
+
+`XenMkt~version_hypercall~1`
+
+Description:
+Xen shall provide a hypercall for the domains to retrieve Xen's version, type
+and compilation information.
+
+Rationale:
+
+Comments:
+
+Needs:
+ - XenProd
diff --git a/docs/fusa/reqs/product-reqs/version_hypercall.rst b/docs/fusa/reqs/product-reqs/version_hypercall.rst
new file mode 100644
index 0000000000..b824c539b0
--- /dev/null
+++ b/docs/fusa/reqs/product-reqs/version_hypercall.rst
@@ -0,0 +1,42 @@
+.. SPDX-License-Identifier: CC-BY-4.0
+
+Version hypercall
+=================
+
+First Parameter
+---------------
+
+`XenProd~version_hyp_first_param~1`
+
+Description:
+Xen shall treat the value stored in x0 as the command number for the hypercall.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenMkt~version_hypercall~1`
+
+Needs:
+ - XenSwdgn
+
+Second Parameter
+----------------
+
+`XenProd~version_hyp_second_param~1`
+
+Description:
+Xen shall treat the value stored in x1 as a domain virtual address (mapped as
+Normal Inner Write-Back Outer Write-Back Inner-Shareable) to buffer in domain's
+memory.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenMkt~version_hypercall~1`
+
+Needs:
+ - XenSwdgn
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 19 11:27:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 11:27:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086465.1444657 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoKUy-00010c-7F; Tue, 19 Aug 2025 11:27:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086465.1444657; Tue, 19 Aug 2025 11:27: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 1uoKUy-00010V-3t; Tue, 19 Aug 2025 11:27:28 +0000
Received: by outflank-mailman (input) for mailman id 1086465;
 Tue, 19 Aug 2025 11:27:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=TlMz=27=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1uoKUx-0000mv-63
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 11:27:27 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20618.outbound.protection.outlook.com
 [2a01:111:f403:2009::618])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7a064945-7cef-11f0-a32a-13f23c93f187;
 Tue, 19 Aug 2025 13:27:24 +0200 (CEST)
Received: from SA1P222CA0137.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:3c2::6)
 by CY8PR12MB8410.namprd12.prod.outlook.com (2603:10b6:930:6d::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.13; Tue, 19 Aug
 2025 11:27:18 +0000
Received: from SN1PEPF000252A2.namprd05.prod.outlook.com
 (2603:10b6:806:3c2:cafe::4b) by SA1P222CA0137.outlook.office365.com
 (2603:10b6:806:3c2::6) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9031.22 via Frontend Transport; Tue,
 19 Aug 2025 11:27:18 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SN1PEPF000252A2.mail.protection.outlook.com (10.167.242.9) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Tue, 19 Aug 2025 11:27:17 +0000
Received: from satlexmb10.amd.com (10.181.42.219) 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, 19 Aug
 2025 06:27:17 -0500
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.10; Tue, 19 Aug
 2025 04:27:16 -0700
Received: from xcbayankuma40.xilinx.com (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via
 Frontend Transport; Tue, 19 Aug 2025 06:27: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>
X-Inumbo-ID: 7a064945-7cef-11f0-a32a-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=pBfHafKBHaytvxcBOE1tBnB6eCypyZaZ6y1Hj4FTpe2FK6u+uwDrHmQnonIz9Q8pmtcxssgYrMu9H6773gKHN2dHApiI8p4btRkwlbLBhD7ngPSIvqmnP1yDi5l4Z1GjF4L5vXazyWfVDKaGEnwUseH1Yn87+xpRoaxjrwRMeQ/oiFrs8jfErt2MOVg9RlaVTXmzcEcp0iimmGzW6SQOoPjVLFBg6lJEAn3vqUHXKP9uNoGwgSeKud2uk7KK8wJ9jkGXRuNKBw3ocmlQtN8KdxUJLSyE4a1Acm/LK+iAGsJf1+xz/ABUl4Zf/v04X/+yY7+WNYzMSGfSr1hrpU3WJw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=GJgJarZIeRsjWlu15tp5dyGEaJNG+66jaT7NoB+Le90=;
 b=TaxZzaK2ITNEMJOmNCJttinm6kHmYAIiyjDqG0qVRZGsPLky6EYV5VfHEKW6kCevY3Tv+AmmvVNyBVN4YhhNr8jHAFyhTEHImfQlFYZmZhZE0SGBjYzaLKUttCz8T5w7CykRhGOdzUT2Y0aivVyO01qLgbKQkQAFiCcIi0Ekhn9IrRoC6rtoAh/LjAiuR/vx5T8Xjp+epFshK3wynWtR58HFaC5hBRoWNxhKT9i69qSZQ5+8cgOx3ngWcqdnmbRdTNdwPRIaCxe2gOrB5Pr6bcYp751jddyym8jhoyXnNphG1FxbZjVFPqlVN9VFBEXVDpvepIu1anLmX3LaSyKF+A==
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=GJgJarZIeRsjWlu15tp5dyGEaJNG+66jaT7NoB+Le90=;
 b=VyBo6bTXiqWK7NyR/rEY+EY7EmS6s9d7kdsUDxXEpWmVKV2rSc1PIvl5p6OghUCDbLkm40crlb8VrKcjjPuZcDPSdsCniNNYCDvGgzHT75chDzoQPnU6leeYEuANxoloivhhO68FIOgf1wYD+S9FmSDBXmMIPH8WwFOxmsF1QEc=
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=SATLEXMB04.amd.com; pr=C
From: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Ayan Kumar Halder <ayan.kumar.halder@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal
 Orzel <michal.orzel@amd.com>, Artem Mygaiev <artem_mygaiev@epam.com>
Subject: [PATCH v4 2/2] docs: fusa: Add the requirements for some of the commands of XEN_VERSION
Date: Tue, 19 Aug 2025 12:27:09 +0100
Message-ID: <20250819112709.3789987-2-ayan.kumar.halder@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20250819112709.3789987-1-ayan.kumar.halder@amd.com>
References: <20250819112709.3789987-1-ayan.kumar.halder@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF000252A2:EE_|CY8PR12MB8410:EE_
X-MS-Office365-Filtering-Correlation-Id: 54977446-ac67-40b8-7677-08dddf135ab3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|376014|36860700013|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?6VU3eZGwlbeSoGA1rs57qwfi10ghfpCeL7hNhFMWPpIdd7i4zWCRdTA/IGx7?=
 =?us-ascii?Q?aJHRzEYYfNWeQxF4oFLZKCHggZKj0k0Y5zwhf9VmuLVHH2GkA4NP+U58vTmM?=
 =?us-ascii?Q?UImT1158WhRo8gjyXp6GvEBoiAQkerxcbWYwzGmHvgAfWvbp0cQrY2XuqWtQ?=
 =?us-ascii?Q?RFU6SzUh5aIqIEBv3z2NP7f3ibA8mflLCXw2XVdVtMsUBRRAe8SbkQrT0rie?=
 =?us-ascii?Q?1Z+PNpSKdDlJ16mxfFvF0pFApbZEOymmZkte+6bPGm1GQ0bkhr4tp1mFPe0g?=
 =?us-ascii?Q?/NJzqVTs1CJ1hkg1Vy0BUlPNs8y605SNiUyqa/BSkvwFoesvl3b+11L68lNO?=
 =?us-ascii?Q?/MEZf5wXMXl8V9qLHS/LMqbYllAgQLudRzeymyIwa+7YkNN9RLIIgreXpFW9?=
 =?us-ascii?Q?MgdjoVRiJUeNSqBRvPUbRtBNSy45AGXgLlVgAP5PQxxB1+qny/Z1iEW/4v3Z?=
 =?us-ascii?Q?17PcG9BkWZOObKz/5zQMD/5uw920acWhk2W4GYRb+CSs/TmETQSefiIS0kBA?=
 =?us-ascii?Q?o5u1M34T3p8a/hJd2eOvhU/3kraynPBwrq7/by3xhpaUnTe9d7t7qFwUnT+E?=
 =?us-ascii?Q?YLwxej5G8wtM/6ey4/+XUByi5HYY/dAFdkDEEQVbSVw4d0VjrPTco5+uxndr?=
 =?us-ascii?Q?nukpt1xAPqR4zWlOl7ttlJgt1C7oa8Xf8AgeZ8biNT+0of+c9DNrIva2M6Sq?=
 =?us-ascii?Q?hxId3zTf4JOKhRFPw/qWi2eRpVYMhCelTXWcy7+t6bXXjTTyvjG89oNB1t4c?=
 =?us-ascii?Q?6d8Oo/pD3y4j/aVOK2/mCgiz5EGhDyf6i6UYcz1b1rt5qY306kWNgnITbKhI?=
 =?us-ascii?Q?Mr4ZqroYCtpzBeBge1vfy/qEpvXpKxayyVBVtS74e0dkbpUOcJcFnG/4s/LN?=
 =?us-ascii?Q?KyvQIi/3unBjCzMPZ37pVAxgBbUmwPSEh2vVzL4KP/iC9rUFe5AYuYV1kWHZ?=
 =?us-ascii?Q?DewSgbQ1GaomYPpD+1LWUiufIvqTwLlLI6rFmwk5oaq0b1mFF/rybXR3GnAX?=
 =?us-ascii?Q?JacEa4jkA6NT8T3Fkbs1f8ZfXJ1YaoNZPKVw3byDwikCLRT1RfXK+6d5DVFi?=
 =?us-ascii?Q?b/zzjYeKTCtPaYz8C3J32meLeOMHavIloRRlXG9DRclfUT1ejoCSp3zfa9AU?=
 =?us-ascii?Q?UJ6Vw3tXaPijuY81ZwcyQc6ztzoTfTyGDB46qKq016qnJ/9xFQnmC6DRo5lI?=
 =?us-ascii?Q?oD+b7QUhgiR2JhzGaox8Jvm3BlGu0gGDULp40dvHWmp6sPDTPsF2ZpSVWLzo?=
 =?us-ascii?Q?MiWnDDHihbksYdUggg/BJ+YLDDP63vy4amIIzby424gF7C6LHhNHnnx5rjDc?=
 =?us-ascii?Q?Sc1wmIwC2+XShX+mxsUgM09m1GQzheRfZStY/1+pokqrR/9PC78iT18s3lFY?=
 =?us-ascii?Q?kaoZtETlqZBtdGZ1uzE3SrB9XET3Z99kmENoVsZ/vogTsB+M/9ySCTcE6HPy?=
 =?us-ascii?Q?60TLxOmt9oGGlfZzOl9huOqGYeyijj4HEBDkp3iU5dPFB02TIolYsQ=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(36860700013)(13003099007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Aug 2025 11:27:17.4920
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 54977446-ac67-40b8-7677-08dddf135ab3
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF000252A2.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB8410

We have written the requirements for some of the commands of the XEN_VERSION
hypercall.

Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
---
Changes from -

v1 - 1. Reworded the requirement so as to avoid mentioining variable names
or hardcoded strings. Otherwise, one would need to change the requirement
each time the code changes.

v2 - 1. Moved few changes to previous patch.

v3 - 1. Removed the internal implementation details from the design requirements
so that they can be verified by black box tests.

 .../fusa/reqs/design-reqs/arm64/hypercall.rst | 15 ++++
 .../design-reqs/arm64/version_hypercall.rst   | 32 +++++++
 .../reqs/design-reqs/version_hypercall.rst    | 63 ++++++++++++++
 docs/fusa/reqs/index.rst                      |  3 +
 docs/fusa/reqs/product-reqs/hypercall.rst     | 20 +++++
 .../reqs/product-reqs/version_hypercall.rst   | 85 +++++++++++++++++++
 6 files changed, 218 insertions(+)
 create mode 100644 docs/fusa/reqs/design-reqs/arm64/version_hypercall.rst
 create mode 100644 docs/fusa/reqs/design-reqs/version_hypercall.rst
 create mode 100644 docs/fusa/reqs/product-reqs/hypercall.rst

diff --git a/docs/fusa/reqs/design-reqs/arm64/hypercall.rst b/docs/fusa/reqs/design-reqs/arm64/hypercall.rst
index 82ecf690a3..3b4af18323 100644
--- a/docs/fusa/reqs/design-reqs/arm64/hypercall.rst
+++ b/docs/fusa/reqs/design-reqs/arm64/hypercall.rst
@@ -58,3 +58,18 @@ Comments:
 Covers:
  - `XenProd~version_hyp_first_param~1`
  - `XenProd~version_hyp_second_param~1`
+
+Return value
+------------
+
+`XenSwdgn~arm64_ret_val~1`
+
+Description:
+Xen shall store the return value in x0.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~hyp_err_ret_val~1`
diff --git a/docs/fusa/reqs/design-reqs/arm64/version_hypercall.rst b/docs/fusa/reqs/design-reqs/arm64/version_hypercall.rst
new file mode 100644
index 0000000000..ccfcb35a7a
--- /dev/null
+++ b/docs/fusa/reqs/design-reqs/arm64/version_hypercall.rst
@@ -0,0 +1,32 @@
+.. SPDX-License-Identifier: CC-BY-4.0
+
+Capabilities
+------------
+
+`XenSwdgn~arm64_capabilities~1`
+
+Description:
+Xen shall return xen-3.0-aarch64 to denote that the cpu is running in arm64 mode.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~version_hyp_capabilities_cmd~1`
+
+Capabilities AArch32
+--------------------
+
+`XenSwdgn~arm64_capabilities_aarch32~1`
+
+Description:
+Xen shall return xen-3.0-armv7l to denote that the cpu is running in arm32 mode.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~version_hyp_capabilities_cmd~1`
+
diff --git a/docs/fusa/reqs/design-reqs/version_hypercall.rst b/docs/fusa/reqs/design-reqs/version_hypercall.rst
new file mode 100644
index 0000000000..b05481b9dc
--- /dev/null
+++ b/docs/fusa/reqs/design-reqs/version_hypercall.rst
@@ -0,0 +1,63 @@
+.. SPDX-License-Identifier: CC-BY-4.0
+
+Version
+-------
+
+`XenSwdgn~version~1`
+
+Description:
+Xen shall return its version when XENVER_version command is invoked.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~version_hyp_version_cmd~1`
+
+Error copying buffer
+--------------------
+
+`XenSwdgn~error_copy_buffer~1`
+
+Description:
+Xen shall return -EFAULT if it is not able to copy data to domain's buffer.
+
+Rationale:
+-EFAULT is one of the error code defined in
+http://xenbits.xen.org/gitweb/?p=xen.git;a=blob;f=xen/include/public/errno.h.
+
+Comments:
+
+Covers:
+ - `XenProd~hyp_err_ret_val~1`
+
+Extraversion
+------------
+
+`XenSwdgn~extraversion~1`
+
+Description:
+Xen shall return its extraversion when XENVER_extraversion command is invoked.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~version_hyp_extraversion_cmd~1`
+
+Changeset
+---------
+
+`XenSwdgn~changeset~1`
+
+Description:
+Xen shall return its changeset when XENVER_changeset command is invoked.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~version_hyp_changeset_cmd~1`
diff --git a/docs/fusa/reqs/index.rst b/docs/fusa/reqs/index.rst
index d8683edce7..de19b0cda2 100644
--- a/docs/fusa/reqs/index.rst
+++ b/docs/fusa/reqs/index.rst
@@ -11,6 +11,9 @@ Requirements documentation
    product-reqs/reqs
    product-reqs/arm64/reqs
    product-reqs/version_hypercall
+   product-reqs/hypercall
    design-reqs/arm64/generic-timer
    design-reqs/arm64/sbsa-uart
    design-reqs/arm64/hypercall
+   design-reqs/arm64/version_hypercall
+   design-reqs/version_hypercall
diff --git a/docs/fusa/reqs/product-reqs/hypercall.rst b/docs/fusa/reqs/product-reqs/hypercall.rst
new file mode 100644
index 0000000000..9fb46cf451
--- /dev/null
+++ b/docs/fusa/reqs/product-reqs/hypercall.rst
@@ -0,0 +1,20 @@
+.. SPDX-License-Identifier: CC-BY-4.0
+
+Error Return Value
+------------------
+
+`XenProd~hyp_err_ret_val~1`
+
+Description:
+In case any hypercall fails, Xen shall return one of the error codes defined
+in http://xenbits.xen.org/gitweb/?p=xen.git;a=blob;f=xen/include/public/errno.h.
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenMkt~version_hypercall~1`
+
+Needs:
+ - XenSwdgn
diff --git a/docs/fusa/reqs/product-reqs/version_hypercall.rst b/docs/fusa/reqs/product-reqs/version_hypercall.rst
index b824c539b0..466eb4108b 100644
--- a/docs/fusa/reqs/product-reqs/version_hypercall.rst
+++ b/docs/fusa/reqs/product-reqs/version_hypercall.rst
@@ -40,3 +40,88 @@ Covers:
 
 Needs:
  - XenSwdgn
+
+Version command
+---------------
+
+`XenProd~version_hyp_version_cmd~1`
+
+Description:
+Xen shall provide a command (num 0) for  hypercall (num 17) to retrieve Xen's
+version in the domain's register 0.
+
+Rationale:
+
+Comments:
+Xen version is composed of major (ie version) and minor (ie subversion) number.
+The minor number is encoded in the 16 least significant bits and the major number
+is encoded in the top remaining bits.
+
+Covers:
+ - `XenMkt~version_hypercall~1`
+
+Needs:
+ - XenSwdgn
+
+Extraversion command
+--------------------
+
+`XenProd~version_hyp_extraversion_cmd~1`
+
+Description:
+Xen shall provide a command (num 1) for hypercall (num 17) to copy its
+extraversion in the domain's buffer.
+
+Rationale:
+
+Comments:
+Xen's extra version consists of a string passed with 'XEN_VENDORVERSION' command
+line parameter while building Xen.
+
+Covers:
+ - `XenMkt~version_hypercall~1`
+
+Needs:
+ - XenSwdgn
+
+Capabilities command
+--------------------
+
+`XenProd~version_hyp_capabilities_cmd~1`
+
+Description:
+Xen shall provide a command (num 3) for hypercall (num 17) to copy its
+capabilities to the domain's buffer.
+
+Rationale:
+
+Comments:
+Capabilities related information is represented by char[1024].
+For Arm64, the capabilities should contain "xen-3.0-aarch64" string.
+
+Covers:
+ - `XenMkt~version_hypercall~1`
+
+Needs:
+ - XenSwdgn
+
+Changeset command
+-----------------
+
+`XenProd~version_hyp_changeset_cmd~1`
+
+Description:
+Xen shall provide a command (num 4) for hypercall (num 17) to copy changeset
+to the domain's buffer.
+
+Rationale:
+
+Comments:
+Changeset is string denoting the date, time and git hash of the last change
+made to Xen's codebase.
+
+Covers:
+ - `XenMkt~version_hypercall~1`
+
+Needs:
+ - XenSwdgn
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 19 11:48:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 11:48:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086485.1444667 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoKox-0004Hw-Pk; Tue, 19 Aug 2025 11:48:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086485.1444667; Tue, 19 Aug 2025 11: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 1uoKox-0004Ho-M0; Tue, 19 Aug 2025 11:48:07 +0000
Received: by outflank-mailman (input) for mailman id 1086485;
 Tue, 19 Aug 2025 11:48:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xm9j=27=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uoKow-0004Hg-9E
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 11:48:06 +0000
Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com
 [2a00:1450:4864:20::634])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5d5e1916-7cf2-11f0-b898-0df219b8e170;
 Tue, 19 Aug 2025 13:48:04 +0200 (CEST)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-afcb731ca8eso831848166b.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 Aug 2025 04:48: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
 a640c23a62f3a-afcdcfccd2csm995431066b.64.2025.08.19.04.48.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Aug 2025 04:48: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>
X-Inumbo-ID: 5d5e1916-7cf2-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755604083; x=1756208883; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=My2ElW1CsGaUg2rzbVlSnaqbwMsFuvhdNanh+sAhnxA=;
        b=dhy+5rb7jEGozIZdU08zYlmNriykoDNDb8ALsWbWVpOYbpW7PG60cQ7CkXeQtfNaul
         039/ASmbaYqZrdvzoFrnSBackkDZ8NValfVx25tf9t2cMtp4sDeA7hvrZ00TM5emXcQW
         NiaLSFUXG1tOmTYsCJaXVfU2NO+HJkjpvpEau88Eq4EWG+aABiG9x7n+KPaAtvN52hPX
         2pDm6N3NHPgvpLQCJOEULWAB3ATMl0AC1MpHouph8FtpeOG1wTLcN3jFld/03PUQEj6P
         jrvdjWVDm5rs5n0KYrVt2oSniAlZLZsdMzQaLXQxDb+JbiycKfoz24hX3MPWIF/5Nyl8
         ditA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755604083; x=1756208883;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=My2ElW1CsGaUg2rzbVlSnaqbwMsFuvhdNanh+sAhnxA=;
        b=AiJmXibDdUeCGQqK5/h+UgPUCZoLvwiWTzgiK72v5qBQRkjSCgiTb0vT2uww7ngkPZ
         ZsyT4FixWJsK5KzHTn5I53YnTNuTTGnVDWsKj9jcKsIplJzwOLQUNCSVU0nkotTGz3Vy
         WOGXfI4sOTmRCJU43FBHlzQ8XAuWAvo1AMdaDWTzJPlyMZlZPK2UQ60kekqRKJdzZcCh
         g9umQ9Nexx4m11SGCQfi4azvzL/LvzV9svh+6baSFm4Sq8i1A3aCGGN/1obUT1TFBvIl
         Irni/FXp8yxT683186+ahKJKVwrN2xZCBcfd49p9PNwhkbiabadxk+JKY9mBA+yuuAxL
         F3GA==
X-Forwarded-Encrypted: i=1; AJvYcCXnoJQn1WhJjYcB9gzfwM0ZdOP3qmtit41mc67sXb/Smafbg8eBEFQsJY2Nk3IemFa7ul9ffjel0jE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzpOjNJhgLSSuZBAFBGkvtjVLhGef1TcQjosfTFsnglw4UhmKae
	ZvAJZNDkAKqAzhdML3AGCfuU2jjfPv8mcl0CnQ77FHa6E9BetQ8+YvMBEVzhi8LTzQ==
X-Gm-Gg: ASbGncs2csZ8ugSCIUCuTSlw/ZUfkz+y805MJPLNjqMSVTBPRg3HbicgV5nwbHabdpm
	85xCT3HcbxJF9KCYsq5cywqkD+qFEEWRi25NyhKsBwvzvGCtt4uSa7kPza2KDM4G2NpdrU6BtVq
	bHimCgNiMmjS/RVAFq/lNSREVKSFdxsJJkKIsMkmuYu1orl2quOC/iu6YSrqvrCJ3AwPB4mPIoo
	gIjcyuO43Np809bPBXoHB8codK2pqnCCU4VoVJtyQHMZK1CSJPZ138MkI+7PcOCbwlgxwqmu/mG
	4Z+dRz+ZlRzoPwXqhy9k26UTlQH5Rd7Nsh1Fx1YHnyC/B7e/xxPBD0qNWFR+FUY43h19tcwrL54
	QszURdQkMe7hNwX+S8HF5opVAdTg38vmhmQY7CIZUcQ3J9Gp2S7chzm86yoj8x+vndwtqHYPu3B
	ElpAW1PwI=
X-Google-Smtp-Source: AGHT+IFJ7Qt+cEYGPN1crwlMkRDH8kRKy/cPG5jbUN8CgyxuspUjzGm24MXleu0wtEdhdSUGeF8KbA==
X-Received: by 2002:a17:907:969e:b0:afa:1b05:69c3 with SMTP id a640c23a62f3a-afddd1e905amr179355366b.47.1755604082776;
        Tue, 19 Aug 2025 04:48:02 -0700 (PDT)
Message-ID: <718dda6c-120f-443c-ac9e-de948bcd6ce4@suse.com>
Date: Tue, 19 Aug 2025 13:48:01 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 10/16] x86/svm: Rename variable in
 svm_msr_write_intercept()
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
 <20250815204117.3312742-11-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: <20250815204117.3312742-11-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.08.2025 22:41, Andrew Cooper wrote:
> We're about to turn the rdmsr() macro into a real function, at which point
> Eclair complains that we're now shadowing an identifer.
> 
> Rename rdmsr to is_rdmsr.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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


> --- a/xen/arch/x86/hvm/svm/svm.c
> +++ b/xen/arch/x86/hvm/svm/svm.c
> @@ -2087,14 +2087,14 @@ static int cf_check svm_msr_write_intercept(
>  static void svm_do_msr_access(struct cpu_user_regs *regs)
>  {
>      struct vcpu *curr = current;
> -    bool rdmsr = curr->arch.hvm.svm.vmcb->exitinfo1 == 0;
> -    int rc, inst_len = svm_get_insn_len(curr, rdmsr ? INSTR_RDMSR
> -                                                    : INSTR_WRMSR);
> +    bool is_rdmsr = curr->arch.hvm.svm.vmcb->exitinfo1 == 0;

Could also have used the shorter "read" or "rd" instead.

Jan

> +    int rc, inst_len = svm_get_insn_len(curr, is_rdmsr ? INSTR_RDMSR
> +                                                       : INSTR_WRMSR);
>  
>      if ( inst_len == 0 )
>          return;
>  
> -    if ( rdmsr )
> +    if ( is_rdmsr )
>      {
>          uint64_t msr_content = 0;
>  



From xen-devel-bounces@lists.xenproject.org Tue Aug 19 12:04:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 12:04:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086510.1444720 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoL53-0007et-MY; Tue, 19 Aug 2025 12:04:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086510.1444720; Tue, 19 Aug 2025 12:04: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 1uoL53-0007em-JI; Tue, 19 Aug 2025 12:04:45 +0000
Received: by outflank-mailman (input) for mailman id 1086510;
 Tue, 19 Aug 2025 12:04:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xm9j=27=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uoL51-0007ee-Gk
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 12:04:43 +0000
Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com
 [2a00:1450:4864:20::635])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id afa8072f-7cf4-11f0-b898-0df219b8e170;
 Tue, 19 Aug 2025 14:04:41 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-afcb72d51dcso733417666b.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 Aug 2025 05:04: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
 a640c23a62f3a-afcdcfcb2d1sm1002963966b.62.2025.08.19.05.04.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Aug 2025 05:04: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>
X-Inumbo-ID: afa8072f-7cf4-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755605080; x=1756209880; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=mAycf0BcbE8EVd3TEHzIwYGGPS4T5wc1eHsd7l+5SQE=;
        b=NcGJdi3teWXIJa5/8omMfcGu6qD/kYcAfkBVuXXK9t2rdkThWpznZsGMlti43vGT9/
         LBXYMCsCRaLUu93R1ZxCrm9tw/hJ5rQcdlCNJs3L12HVsRTA8sLpNQWOS0InFkGckbz1
         6c/i5VrELLipSTPDGR4XB8ZwBf/NwBYGofF9/TePrOossoekZXzxj3U/YKSNzEvYgU6i
         quynt3OyMc/yEJHPC9U0OMq2GZYbOw5mDNXyFu70xJo4Jq+8onrcKPvUltOm9CmDtMmy
         IUDAVMiqSCsWYGJuK9aBJNyE1PwuL0ktYttBzuCzamWgRMMvX4Ka1CpM9tewFzCXbHEd
         Le9A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755605080; x=1756209880;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mAycf0BcbE8EVd3TEHzIwYGGPS4T5wc1eHsd7l+5SQE=;
        b=qWxzku8FdKmfGXUvy9mcbYhE17lfXxoB2tYUP4xJkaxaxD2oKvG0NCRCqIRdbyGCq3
         zbIYHg4wi61wjRRbGNxP03/wSoUhI23M6jacqTi8VhryIxYq13FdhaL0xHlNbtWdWIji
         dL9ft9WD6pzAkH1P2oRfkFKX6th5ojJ8Xtjvr5B2f7AG7zdIRdjsIZp7eIsB2jI97amT
         nrteQ53ez7AxHKfm59uB8NiHaMe0/FKrkFSUIQU5iH0g9BCSrFJDqZUR60K+21hJzMm0
         pZrCsCy+9moCPYlFRuUM0oIUsPGLtxLW1hPgqlIBlWfudIjkf+Ze4XjGl4R5vZtPG7jy
         YNmA==
X-Forwarded-Encrypted: i=1; AJvYcCUT3vsCCfJlWj/uXOixKtczJHg8SF0mD0ivZASedIuAtdSPe4z59JBefm5O6WvI0HldfuxglUZiNAM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyv4z9akvzWt3+KIFYaorYIcsZY97MwIQak64rk/CmBi6hDqnn4
	p7Di4DqT10IG58uuA8S8spoCFfRytZWbTEOdeTXsgQNlu9N4CDRuqgTr0ZWBC6bcEQ==
X-Gm-Gg: ASbGncty4GTHzrg1omYqMl6hTQmm8tYmNCW8+YUAymXADSxYHrQpKZP6U1XaxNWjIhx
	HRFihPeuomDnaXE+rCsvlSFHXgwMVgg8fCuT9ROujmxV9EhWxBWg4EWdNLkPgUtJgNIg9ZMtt3u
	BHS0kPd1UEAgY/WCVqwSFYQGeu9CfxUm7StqR+j6RBoVWBA2mzrU/rTqUPu35SAOa2hEsNuUBjA
	ybQT+4huCtT6Qj6spUiW7xpq2Gte2ESUudFkN5YQ4bBLkIs0UjSYy+BhD/Fn17udzbvqyO19Ogu
	/ipKXfydPJDCDzdvm92gQVNWFQIzdF4jiz9I9SkjKTg1kVxXHgYmYgVPQ3ZLLDEgRLgLYrmm3yH
	18n7f1zuYdASXoAb0TiA0dOH4YABEXestT3J8Z5r9uGylUerNiW8MfdB0rIMmkVH1BS8feN50Mu
	J2bIxpEhlilcCr+h+pxw==
X-Google-Smtp-Source: AGHT+IFNN4OAQOuEYS4bIvPGA+DU7fwbl54h3debynjurF/SJyklRLzcw6sKoXIRUJGEpkuhkh7ovw==
X-Received: by 2002:a17:906:c113:b0:af9:5ca0:e4fe with SMTP id a640c23a62f3a-afddd200e55mr201851166b.56.1755605080021;
        Tue, 19 Aug 2025 05:04:40 -0700 (PDT)
Message-ID: <493d4580-62b7-4ff7-9159-4079b4b98f61@suse.com>
Date: Tue, 19 Aug 2025 14:04:38 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 11/16] x86/msr: Change rdmsr() to have normal API
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
 <20250815204117.3312742-12-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: <20250815204117.3312742-12-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15.08.2025 22:41, Andrew Cooper wrote:
> We want a consistent MSR API, and these want to be named rdmsr() and wrmsr(),
> but not with their current APIs.  The current rdmsr() flavours writing to
> their parameters by name makes code that reads like invalid C, and is
> unergonomic to use in lots of cases.
> 
> Change the API, and update the callers all in one go.  Where appropriate,
> update the write side to wrmsrns() as per the recommendation.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
> 
> I do have a more creative solution if this patch is considered to be too
> large.  https://gitlab.com/xen-project/hardware/xen-staging/-/commit/e13cf25d06d08481e2c138daa1fd902cf36d757b

I'm not concerned by the size of this patch.

> --- a/xen/arch/x86/cpu/intel.c
> +++ b/xen/arch/x86/cpu/intel.c
> @@ -23,17 +23,17 @@ static uint32_t __ro_after_init mcu_opt_ctrl_val;
>  
>  void update_mcu_opt_ctrl(void)
>  {
> -    uint32_t mask = mcu_opt_ctrl_mask, lo, hi;
> +    uint32_t mask = mcu_opt_ctrl_mask, val;
>  
>      if ( !mask )
>          return;
>  
> -    rdmsr(MSR_MCU_OPT_CTRL, lo, hi);
> +    val = rdmsr(MSR_MCU_OPT_CTRL);
>  
> -    lo &= ~mask;
> -    lo |= mcu_opt_ctrl_val;
> +    val &= ~mask;
> +    val |= mcu_opt_ctrl_val;
>  
> -    wrmsr(MSR_MCU_OPT_CTRL, lo, hi);
> +    wrmsrns(MSR_MCU_OPT_CTRL, val);
>  }

I don't consider it a good idea to suddenly clear the upper half of this
MSR, and ...

> @@ -51,17 +51,17 @@ static uint32_t __ro_after_init pb_opt_ctrl_val;
>  
>  void update_pb_opt_ctrl(void)
>  {
> -    uint32_t mask = pb_opt_ctrl_mask, lo, hi;
> +    uint32_t mask = pb_opt_ctrl_mask, val;
>  
>      if ( !mask )
>          return;
>  
> -    rdmsr(MSR_PB_OPT_CTRL, lo, hi);
> +    val = rdmsr(MSR_PB_OPT_CTRL);
>  
> -    lo &= ~mask;
> -    lo |= pb_opt_ctrl_val;
> +    val &= ~mask;
> +    val |= pb_opt_ctrl_val;
>  
> -    wrmsr(MSR_PB_OPT_CTRL, lo, hi);
> +    wrmsrns(MSR_PB_OPT_CTRL, val);
>  }

... this one.

> @@ -456,15 +456,15 @@ static void __init probe_mwait_errata(void)
>   */
>  static void Intel_errata_workarounds(struct cpuinfo_x86 *c)
>  {
> -	unsigned long lo, hi;
> +	uint64_t val;
>  
>  	if ((c->x86 == 15) && (c->x86_model == 1) && (c->x86_mask == 1)) {
> -		rdmsr (MSR_IA32_MISC_ENABLE, lo, hi);
> -		if ((lo & (1<<9)) == 0) {
> +		val = rdmsr(MSR_IA32_MISC_ENABLE);
> +		if ((val & (1 << 9)) == 0) {
>  			printk (KERN_INFO "CPU: C0 stepping P4 Xeon detected.\n");
>  			printk (KERN_INFO "CPU: Disabling hardware prefetching (Errata 037)\n");
> -			lo |= (1<<9);	/* Disable hw prefetching */
> -			wrmsr (MSR_IA32_MISC_ENABLE, lo, hi);
> +			val |= (1 << 9); /* Disable hw prefetching */
> +			wrmsrns(MSR_IA32_MISC_ENABLE, val);
>  		}
>  	}

Move val into the more narrow scope at the same time?

> @@ -699,7 +715,7 @@ void cf_check vmx_cpu_dead(unsigned int cpu)
>  
>  static int _vmx_cpu_up(bool bsp)
>  {
> -    u32 eax, edx;
> +    u32 eax;

Like you do elsewhere, switch to uint32_t at the same time?

> --- a/xen/arch/x86/tsx.c
> +++ b/xen/arch/x86/tsx.c
> @@ -42,6 +42,8 @@ void tsx_init(void)
>  {
>      static bool __read_mostly once;
>  
> +    uint64_t val;
> +
>      /*

No real need for yet another newline, I would say.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 19 12:05:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 12:05:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086519.1444731 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoL5x-00088o-Vq; Tue, 19 Aug 2025 12:05:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086519.1444731; Tue, 19 Aug 2025 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 1uoL5x-00088h-Sb; Tue, 19 Aug 2025 12:05:41 +0000
Received: by outflank-mailman (input) for mailman id 1086519;
 Tue, 19 Aug 2025 12:05:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xm9j=27=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uoL5w-0007ee-JB
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 12:05:40 +0000
Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com
 [2a00:1450:4864:20::533])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d234d566-7cf4-11f0-b898-0df219b8e170;
 Tue, 19 Aug 2025 14:05:39 +0200 (CEST)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-61a2a5b0689so4465459a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 Aug 2025 05:05: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
 4fb4d7f45d1cf-61a75794d0bsm1652041a12.46.2025.08.19.05.05.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Aug 2025 05:05: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>
X-Inumbo-ID: d234d566-7cf4-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755605138; x=1756209938; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=6tUjbnmMZ3UkNPAGkCOxAbOQU1toPCYtKtBi4s+xdrk=;
        b=HB5KuHJt54MJQXXoAaUKiivxEhb4NSHpMzBFIowuxV6b09hauZD2cp8KvDwmiMH9j+
         jdb9wa0l91ei92J9uHAPygipRzgOlikXn6vp6DqV9WLSDQth21Dya4j7v7aoDPwWj9Ox
         3YDNBTt72XAD9KpVCGctLkAQb1ST8CSKoHZbPCLHK1jZMGBdhppDyfRbr5ihtX4YdT0d
         LvcEgPRLZv6HREwFUs3XozmeMruj9QtlUpJCwQrRBQv5OK0eUAaE/Pr+GyM0HFn0q9vH
         4KOKB6gm92zIKa+J6hVabuEragS1lPUOkFcAXIoIrAIkpys0A/Y4NzE5P8qF7wMqJ8XY
         jtxA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755605138; x=1756209938;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6tUjbnmMZ3UkNPAGkCOxAbOQU1toPCYtKtBi4s+xdrk=;
        b=ZVtQkbJ18DgJCn59LfagHIJA/YsI4e9hGLON+Ke6qpQ2rApdXqX7kMkLMu5c+S/vAF
         a03+dQEphQUhfmLSLfZ24zWq7j/h7YNzv/tkaMAVRXzK7oQ4v+HFeNa+QjWa07qAgeVC
         xprAog+DdLE9FDzKLTocmgqhyuBdKblcOIgOj5w49RrLaalliSVxda4Rw7LfqoXawezt
         PK/5Ru+ukbWMTQRBFJwetHO0K+KKVSbqglaUsmOskHGyjqFNe5iIeMEDmWzzhlyXsa49
         JpYC7k8zm6hei37ISGtzIVVfnQWSdKTG3U+cBG19lxXmt4ia6xIvjophw0et+rFtPwZK
         PMxw==
X-Forwarded-Encrypted: i=1; AJvYcCXYDbyJM1avKVBM/EOIn+as11tJpDuOwUYGCPm+Mm61OTHPIj/OPCFe6dpgiv+bEsUHgl5LyX2ZQIU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxCiHV85aF3ASB+K1fI2v46myXClJg8Ucqi+zgMbSyObTjBxRD9
	rxRTODrZAH70ARisuk561LC/jUj9OLWHjbXA7nReIKNh9CfJ+nTap0o+cYS04U1bTQ==
X-Gm-Gg: ASbGncucD6fdWTXryVKhhdMwtdbGD62yf7erEPmDtN8dKg8qyVF9uEjfePRIbFKa8K0
	rFWSlSU3UTCTf8QU8EbAXj0gofagCgefOEZe0NjK6A6HDgBOAOcuZukemhgLZpmh9ejxQinmwSh
	0UpqIS3P9Qv5kQwLZ7/6iwO4bhcVMWTsdXkfp55D289n4NyrJK/WLax7Hv3wCh5cOp4VbENYhW+
	ETN1l4z8SRHR2cZv9Q8cNmABEuetHFg4jjtbpkAmrJL1Em/cnkE/qUo1rz3nqZdqdRK20tkCyCH
	e942YG6okqj7yR64XTyq4SEfCvDPlsee1q/uwoK/wxlEXcdTXZ1FrDkY5OJnvWGiSVM2xFOII7X
	kqkdZAVE7RB/yLpbEkh1GgZiZmpnu6N7ygh4zI1fVgQRTXR/ZjAL3SvjddmLnSsz4wthZjkhRk9
	gXOtSjsok=
X-Google-Smtp-Source: AGHT+IFSt7tpPGgP4kKUFBPZqDyDdmOteydi6DAW2pXH3ktBqIWlzKFILkPU3WKomTiMRgZmJjaOTg==
X-Received: by 2002:a05:6402:208a:b0:604:e602:779a with SMTP id 4fb4d7f45d1cf-61a7e7498abmr1716882a12.28.1755605138365;
        Tue, 19 Aug 2025 05:05:38 -0700 (PDT)
Message-ID: <ce37f096-3ff5-4f95-b20d-4b8da5600460@suse.com>
Date: Tue, 19 Aug 2025 14:05:37 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 11/16] x86/msr: Change rdmsr() to have normal API
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
 <20250815204117.3312742-12-andrew.cooper3@citrix.com>
 <356c3daa-f532-4450-a634-3ecfbdedff91@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: <356c3daa-f532-4450-a634-3ecfbdedff91@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18.08.2025 13:34, Andrew Cooper wrote:
> On 15/08/2025 9:41 pm, Andrew Cooper wrote:
>> diff --git a/xen/arch/x86/cpu/common.c b/xen/arch/x86/cpu/common.c
>> index 530b9eb39abc..9c6b8c291d6e 100644
>> --- a/xen/arch/x86/cpu/common.c
>> +++ b/xen/arch/x86/cpu/common.c
>> @@ -329,6 +329,7 @@ static inline u32 phys_pkg_id(u32 cpuid_apic, int index_msb)
>>  void __init early_cpu_init(bool verbose)
>>  {
>>  	struct cpuinfo_x86 *c = &boot_cpu_data;
>> +	uint64_t val;
>>  	u32 eax, ebx, ecx, edx;
>>  
>>  	c->x86_cache_alignment = 32;
>> @@ -412,10 +413,11 @@ void __init early_cpu_init(bool verbose)
>>  			    &c->x86_capability[FEATURESET_7c0],
>>  			    &c->x86_capability[FEATURESET_7d0]);
>>  
>> -		if (test_bit(X86_FEATURE_ARCH_CAPS, c->x86_capability))
>> -			rdmsr(MSR_ARCH_CAPABILITIES,
>> -			      c->x86_capability[FEATURESET_m10Al],
>> -			      c->x86_capability[FEATURESET_m10Ah]);
>> +		if (test_bit(X86_FEATURE_ARCH_CAPS, c->x86_capability)) {
>> +			val = rdmsr(MSR_ARCH_CAPABILITIES);
>> +			c->x86_capability[FEATURESET_m10Al] = val;
>> +			c->x86_capability[FEATURESET_m10Al] = val >> 32;
> 
> This is a typo.Â  Fixed locally.

Both of them, I expect.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 19 12:38:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 12:38:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086533.1444741 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoLbZ-0003r5-C7; Tue, 19 Aug 2025 12:38:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086533.1444741; Tue, 19 Aug 2025 12:38: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 1uoLbZ-0003qy-8f; Tue, 19 Aug 2025 12:38:21 +0000
Received: by outflank-mailman (input) for mailman id 1086533;
 Tue, 19 Aug 2025 12:38:19 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xm9j=27=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uoLbX-0003qs-QD
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 12:38:19 +0000
Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com
 [2a00:1450:4864:20::635])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 61902f3a-7cf9-11f0-a32a-13f23c93f187;
 Tue, 19 Aug 2025 14:38:17 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-afcb7347e09so853170966b.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 Aug 2025 05:38: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
 a640c23a62f3a-afcdd04e4d9sm1004208166b.113.2025.08.19.05.38.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Aug 2025 05:38:16 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 61902f3a-7cf9-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755607097; x=1756211897; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=7go6Ug4EJDI1PHHDSplUTJAc4Cu+u+fNuTxHp06eBI4=;
        b=YJS1k1d6RHNFA8rbPiQYIndpOmCsG6ObYd1GR6oDWnz4Lk3J5M7GVSMa0Q9RDPJwJp
         0PyJqqfAXjd/ZUAoN5N6ZAZe2xEpVhQTWkdfriplicHYhLhrD+v6hYksTXosU05RQwJW
         kC+IjA1Wr73SyCpQ0UeKuVlTIejCK8DsKXfBbPaip/Db9cYGjXKZ4+jeXJG4rUECyp7Y
         rnoeW1uZr+Wuyn+QaDjOrGtuQGYMP/rpECVVc132RiarKz7Uzs6Duu8YIpP/YbJfh3AW
         p7CjofE60w92iopjVjMIEsGi92Ta6XJQ0j/F1Hw3iHjVla8VpkJR6FFB60roAkuhKlY7
         AkZQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755607097; x=1756211897;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7go6Ug4EJDI1PHHDSplUTJAc4Cu+u+fNuTxHp06eBI4=;
        b=Jx2tFn6qRiFfpNQjMB/xvbXdevYZwKEbf6Uv4vkgJPTx0HZldOOMFqBd2uzCIynLZE
         Lcl9B7itPwk7em6KMnwDfUf2sT6jpXFY6fP3+FEPuCzoGjbSN741Pa/0a2cNbSZWsuNS
         LjqPOgIXqXWWc5v4FUIp9aBZ+SqZ8PJwwTNaJSDKz1nV3flgbuoRbgQaGZr+8GjG7M9G
         qMKRG423275F7MU8N+f32SasRDD8fltHJHPWC7OzLrP7rCZV/+PtFChOhRDUPwgQOpty
         FIJ+txbvtARCfidvsIQVB1XargrRzKOawCCrsHnIRslYlz/9/wM67mQFcH9r+Xyw2W3q
         tBGw==
X-Forwarded-Encrypted: i=1; AJvYcCWsX8DKyEdhQMcwJU+txcjCTMPsL3mFW9i9Cr6kRPXQIlnmFqVJ/gguUdMNAaouFEgNrYLd1kTdo2g=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyQlK3wfV+z40lANR2OBBX5DJILUrame/cZrJFiegw5pEr0vY4c
	OJSAHJa7ts0ihjjQxW8oS0zF8QxEFL1v+xxOZ5pNP6vpqMWw7Jpwo3l5vBeFwfDEQw==
X-Gm-Gg: ASbGncvS9XZYAcb8NnR8Iy4FyXMQ0LN3BwBUJW4lfGHniv4Q+Z97NLXBv3UWZA1dctz
	K+msnciFbM9IKEPjrSmEvJwPj0Da6fTPvmD8KcPMaHPp7F5fZ1wa4My4T8aWgk/lfDXracI/6hP
	9YmNI55RLtSc6rpcGJUVsbYZOWxFVW/joBP3n7+cP51WYZDf7cI+VzeYsfFqEBNRmcX5wXk+MJ+
	uusMAd42meYYMmCetXXQsM31yoPrOvfkjCjHkqr31A7IO00Hd6iO6TTZ3PEflgcZG2v28zaijv9
	0sRIFaWpCXN5cSwm4JH4DdJ7NhmNEzFTFEVUyvc1KJGWhpbramOA80DEFGWCo4jO1M6csMmEtxf
	Ugrx0C22qtFAcq1oCMJNu0Ab+b42U9myICrW0+7xEBtQ6+JqnZ4yEh79MLSBFb9NczhxJZR1hCc
	vP9z9y87weDtpu5UFktg==
X-Google-Smtp-Source: AGHT+IGk8Uh5UQQGo+pOsfMjsYj1TeMjhtyBSe8ImrIK9i0edj99zfqLy16F78Y+uAQNMEa9OeGFPA==
X-Received: by 2002:a17:907:72c5:b0:ae3:bb4a:91fb with SMTP id a640c23a62f3a-afddd235196mr267231366b.59.1755607097116;
        Tue, 19 Aug 2025 05:38:17 -0700 (PDT)
Message-ID: <3511e3dc-0c9b-412b-9cb3-e4b726088297@suse.com>
Date: Tue, 19 Aug 2025 14:38:15 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 12/16] x86/msr: Change wrmsr() to take a single
 parameter
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
 <20250815204117.3312742-13-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: <20250815204117.3312742-13-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.08.2025 22:41, Andrew Cooper wrote:
> --- a/xen/arch/x86/nmi.c
> +++ b/xen/arch/x86/nmi.c
> @@ -218,16 +218,16 @@ void disable_lapic_nmi_watchdog(void)
>          return;
>      switch (boot_cpu_data.x86_vendor) {
>      case X86_VENDOR_AMD:
> -        wrmsr(MSR_K7_EVNTSEL0, 0, 0);
> +        wrmsrns(MSR_K7_EVNTSEL0, 0);

Since you switch to non-serializing here, ...

> @@ -308,11 +308,11 @@ static void setup_k7_watchdog(void)
>          | K7_EVNTSEL_USR
>          | K7_NMI_EVENT;
>  
> -    wrmsr(MSR_K7_EVNTSEL0, evntsel, 0);
> +    wrmsr(MSR_K7_EVNTSEL0, evntsel);
>      write_watchdog_counter("K7_PERFCTR0");
>      apic_write(APIC_LVTPC, APIC_DM_NMI);
>      evntsel |= K7_EVNTSEL_ENABLE;
> -    wrmsr(MSR_K7_EVNTSEL0, evntsel, 0);
> +    wrmsr(MSR_K7_EVNTSEL0, evntsel);
>  }

... why not also here?

> --- a/xen/arch/x86/oprofile/op_model_athlon.c
> +++ b/xen/arch/x86/oprofile/op_model_athlon.c
> @@ -34,7 +34,7 @@
>  #define MAX_COUNTERS FAM15H_NUM_COUNTERS
>  
>  #define CTR_READ(msr_content,msrs,c) do {rdmsrl(msrs->counters[(c)].addr, (msr_content));} while (0)
> -#define CTR_WRITE(l,msrs,c) do {wrmsr(msrs->counters[(c)].addr, -(unsigned int)(l), -1);} while (0)
> +#define CTR_WRITE(l,msrs,c) do { wrmsr(msrs->counters[(c)].addr, -l); } while (0)

This isn't obviously correct (as in: no functional change): The macro is,
for example, passed reset_value[] contents, which is of type unsigned long.
Quite possible that the original code was wrong, though.

In any event l wants parenthesizing.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 19 12:55:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 12:55:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086546.1444751 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoLs4-0006k7-ON; Tue, 19 Aug 2025 12:55:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086546.1444751; Tue, 19 Aug 2025 12: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 1uoLs4-0006k0-K9; Tue, 19 Aug 2025 12:55:24 +0000
Received: by outflank-mailman (input) for mailman id 1086546;
 Tue, 19 Aug 2025 12:55:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xm9j=27=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uoLs3-0006ju-Lt
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 12:55:23 +0000
Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com
 [2a00:1450:4864:20::62b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c3d04d0f-7cfb-11f0-b898-0df219b8e170;
 Tue, 19 Aug 2025 14:55:21 +0200 (CEST)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-afcb732eee6so856326866b.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 Aug 2025 05:55:21 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afcdce53dd5sm989063866b.5.2025.08.19.05.55.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Aug 2025 05:55: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>
X-Inumbo-ID: c3d04d0f-7cfb-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755608121; x=1756212921; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=zPeWn1uKgrYm5hjlnnYYszZYtUhP5jdYvGwzHYJ/we4=;
        b=C1uPioulcpu4nvr+c+5lsZpdrxSdFMsNWAYkoWXTtNiEBlqEsRvwXe+HrfIdsWnVxt
         TgkAvD9IL5bzP9BsOOwV5hriPQDNMLYjbDi+IKB2nGaXczhvRERF0PZmkXteu5yN4ReJ
         j3Dh/z3KQQ16JXrxxaItDlwXZt9wVewCu1F7d2pmu/PEi85DorvlQmvRmBcyevSIuiZG
         1o8JL7+/U7rGmG7ynixFGY0TpcT3qdM4+sPjbIK8tJyO256pno75UTi9c/pGuglLefjz
         i8vCz15v1HDpBB7Nh13q4LBJ5Z9Ga+bDwilWYUs4e/HXkolDQ7htMvOh4MZexb4UpYaV
         nn1g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755608121; x=1756212921;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zPeWn1uKgrYm5hjlnnYYszZYtUhP5jdYvGwzHYJ/we4=;
        b=L0KQTub8Xc1nO3YcNxWL0HUrxJlIJNIXpqfC8yzkH1MktVPhOfKBh3lCol9KUQijmc
         KUkvLOOiZphFrmyZxJbfykr9hrmkBH8R5JCHzXCGXYsZKko9LFIk9LL5cWrdhi/jhyWi
         gdNclAiqxpI4UZudVXf6Pdl1l5TWViVTCAnjsJs0Hg/FDJv8zrloToqEj9Z6j2rh2uF8
         Hv0a7vCW8F9YGs6Xo548wRzQM6HDZzEvwlNo4ephYRV4QZbPoE2HGhZBts18tRwk6DvO
         KpqM0pB8isAJ6XvOwMynKEVWWutomM3n1VCcwIBduO0Y+OfndBn1BQWM3zpRfBX+S9lP
         nEkg==
X-Forwarded-Encrypted: i=1; AJvYcCVpFUncB3kMUSYCbWsd2f0Bhqqakr2ISJ+FupEDDcL6a8drlxxNyam8X9w4MZeFOIplnvwlpvm7xsM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxgH6w6jNpZzgMQajU5H9i1+wce7AdWqNi/Nt7AiPM0QMI+ncwn
	26Vmr2YE4osHk2GeSLnll+cz9RwlVrhl2GXG4iikkhgNwJqtwYn3dN1MdmAcrEOe0g==
X-Gm-Gg: ASbGncvGc3Js+eIj+xvtdiGQ03ectR7ycgds/hTSo3NKHXMnnEYmvIGXcihCJDxr2kU
	ix2bN0HpciT7/ynEjFT9hjxZkqnrCusgLd3YEkTCCHXYNdu3A8W4xchwQw3qU4mDNBOqVVycEOd
	Ky1Y5L3qUyHxme3FVokG8QI/UjOP1VHavaMZ+2+AO5SzjuK1EyZorNxCxaUX9BlweYH8jBXQle4
	XPtW2IzcEsjSnC5eZmk6mb2wMZ6soFbcOiMMqYM6EQsVUDBgiDr6pGSMFPCyNtNn2zWHz2EGjwp
	q6aEKRwjpty5RJsAgsLq8nwQcoh9DtcDYh5ohUxTwsMBgvig6iTfYn5ugKjUm3H4ns/n4u98wUp
	dp+yQqkdI2ih3HnH6c7M7KyI5W/QKF8mPHAMpMcR7Nv6SWqJ+b+gHe008gVQreesjTbgdCRVrv2
	3cbe3C5Rf0boY0MO9RyA==
X-Google-Smtp-Source: AGHT+IHvEphjHIogtlHbIyHTISiV65ylqR6d+7Yo7KEfpXlEjJA6iJSp9MqjkfGHHoZAvyTJ19mXww==
X-Received: by 2002:a17:907:6d04:b0:ae3:7255:ba53 with SMTP id a640c23a62f3a-afddd1f7ccamr207797866b.53.1755608120496;
        Tue, 19 Aug 2025 05:55:20 -0700 (PDT)
Message-ID: <3b367c39-4c4a-4bdd-91cd-7cb8ba18c2c9@suse.com>
Date: Tue, 19 Aug 2025 14:55:19 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 13/16] x86/msr: Use MSR_IMM when available
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
 <20250815204117.3312742-14-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: <20250815204117.3312742-14-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15.08.2025 22:41, Andrew Cooper wrote:
> Most MSR accesses have compile time constant indexes.  By using the immediate
> form when available, the decoder can start issuing uops directly for the
> relevant MSR, rather than having to issue uops to implement "switch (%ecx)".
> Modern CPUs have tens of thousands of MSRs, so that's quite an if/else chain.
> 
> Create __{rdmsr,wrmsrns}_imm() helpers and use them from {rdmsr,wrmsrns}()
> when the compiler can determine that the msr index is known at compile time.
> 
> At the instruction level, the combined ABI is awkward.  Explain our choices in
> detail.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
> 
> The expression wrmsrns(MSR_STAR, rdmsr(MSR_STAR)) now yields:
> 
>   <test_star>:
>       b9 81 00 00 c0          mov    $0xc0000081,%ecx
>       0f 32                   rdmsr
>       48 c1 e2 20             shl    $0x20,%rdx
>       48 09 d0                or     %rdx,%rax
>       48 89 c2                mov    %rax,%rdx
>       48 c1 ea 20             shr    $0x20,%rdx
>       2e 0f 30                cs wrmsr
>       e9 a3 84 e8 ff          jmp    ffff82d040204260 <__x86_return_thunk>
> 
> which is as good as we can manage.  The alternative form of this looks like:
> 
>   <test_star>:
>       b9 81 00 00 c0          mov    $0xc0000081,%ecx
>       c4 e7 7b f6 c0 81 00    rdmsr  $0xc0000081,%rax
>       00 c0
>       2e c4 e7 7a f6 c0 81    cs wrmsrns %rax,$0xc0000081
>       00 00 c0
>       e9 xx xx xx xx          jmp    ffff82d040204260 <__x86_return_thunk>
> 
> Still TBD.  We ought to update the *_safe() forms too.  rdmsr_safe() is easier
> because the potential #GP locations line up, but there need to be two variants
> because of

Because of ...?

> --- a/xen/arch/x86/include/asm/alternative.h
> +++ b/xen/arch/x86/include/asm/alternative.h
> @@ -151,6 +151,13 @@ extern void alternative_instructions(void);
>          ALTERNATIVE(oldinstr, newinstr, feature)                        \
>          :: input )
>  
> +#define alternative_input_2(oldinstr, newinstr1, feature1,              \
> +                            newinstr2, feature2, input...)              \
> +    asm_inline volatile (                                               \
> +        ALTERNATIVE_2(oldinstr, newinstr1, feature1,                    \
> +                      newinstr2, feature2)                              \
> +        :: input )
> +
>  /* Like alternative_input, but with a single output argument */
>  #define alternative_io(oldinstr, newinstr, feature, output, input...)   \
>      asm_inline volatile (                                               \
> diff --git a/xen/arch/x86/include/asm/msr.h b/xen/arch/x86/include/asm/msr.h
> index 1bd27b989a4d..2ceff6cca8bb 100644
> --- a/xen/arch/x86/include/asm/msr.h
> +++ b/xen/arch/x86/include/asm/msr.h
> @@ -29,10 +29,52 @@
>   *  wrmsrl(MSR_FOO, val);
>   */
>  
> -static inline uint64_t rdmsr(unsigned int msr)
> +/*
> + * RDMSR with a compile-time constant index, when available.  Falls back to
> + * plain RDMSR.
> + */
> +static always_inline uint64_t __rdmsr_imm(uint32_t msr)
> +{
> +    uint64_t val;
> +
> +    /*
> +     * For best performance, RDMSR $msr, %r64 is recommended.  For
> +     * compatibility, we need to fall back to plain RDMSR.
> +     *
> +     * The combined ABI is awkward, because RDMSR $imm produces an r64,
> +     * whereas WRMSR{,NS} produces a split edx:eax pair.
> +     *
> +     * Always use RDMSR $imm, %rax, because it has the most in common with the
> +     * legacy form.  When MSR_IMM isn't available, emit logic to fold %edx
> +     * back into %rax.
> +     *
> +     * Let the compiler do %ecx setup.  This does mean there's a useless `mov
> +     * $imm, %ecx` in the instruction stream in the MSR_IMM case, but it means
> +     * the compiler can de-duplicate the setup in the common case of reading
> +     * and writing the same MSR.
> +     */
> +    alternative_io(
> +        "rdmsr\n\t"
> +        "shl $32, %%rdx\n\t"
> +        "or %%rdx, %%rax\n\t",
> +
> +        /* RDMSR $msr, %rax */
> +        ".byte 0xc4,0xe7,0x7b,0xf6,0xc0; .long %c[msr]", X86_FEATURE_MSR_IMM,
> +
> +        "=a" (val),

Strictly speaking "=&a". Not that it matters much here; just to not
set a bad precedent.

> @@ -55,11 +97,51 @@ static inline void wrmsr(unsigned int msr, uint64_t val)
>  }
>  #define wrmsrl(msr, val) wrmsr(msr, val)
>  
> +/*
> + * Non-serialising WRMSR with a compile-time constant index, when available.
> + * Falls back to plain WRMSRNS, or to a serialising WRMSR.
> + */
> +static always_inline void __wrmsrns_imm(uint32_t msr, uint64_t val)
> +{
> +    /*
> +     * For best performance, WRMSRNS %r64, $msr is recommended.  For
> +     * compatibility, we need to fall back to plain WRMSRNS, or to WRMSR.
> +     *
> +     * The combined ABI is awkward, because WRMSRNS $imm takes a single r64,
> +     * whereas WRMSR{,NS} takes a split edx:eax pair.
> +     *
> +     * Always use WRMSRNS %rax, $imm, because it has the most in common with
> +     * the legacy forms.  When MSR_IMM isn't available, emit setup logic for
> +     * %edx.
> +     *
> +     * Let the compiler do %ecx setup.  This does mean there's a useless `mov
> +     * $imm, %ecx` in the instruction stream in the MSR_IMM case, but it means
> +     * the compiler can de-duplicate the setup in the common case of reading
> +     * and writing the same MSR.
> +     */
> +    alternative_input_2(
> +        "mov %%rax, %%rdx\n\t"
> +        "shr $32, %%rdx\n\t"
> +        ".byte 0x2e; wrmsr",
> +
> +        /* CS WRMSRNS %rax, $msr */
> +        ".byte 0x2e,0xc4,0xe7,0x7a,0xf6,0xc0; .long %c[msr]", X86_FEATURE_MSR_IMM,
> +
> +        "mov %%rax, %%rdx\n\t"
> +        "shr $32, %%rdx\n\t"
> +        ".byte 0x0f,0x01,0xc6", X86_FEATURE_WRMSRNS,

Isn't this the wrong way round for hardware which has both features? The
last active alternative wins, iirc.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 19 12:55:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 12:55:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086549.1444761 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoLsU-00079N-4w; Tue, 19 Aug 2025 12:55:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086549.1444761; Tue, 19 Aug 2025 12:55: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 1uoLsU-00079E-2A; Tue, 19 Aug 2025 12:55:50 +0000
Received: by outflank-mailman (input) for mailman id 1086549;
 Tue, 19 Aug 2025 12:55:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=h/XH=27=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1uoLsS-00077X-8L
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 12:55:48 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d3476aec-7cfb-11f0-a32a-13f23c93f187;
 Tue, 19 Aug 2025 14:55:47 +0200 (CEST)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-45a1b0bd237so42322455e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 Aug 2025 05:55:47 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45a1c61a66esm212586055e9.0.2025.08.19.05.55.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Aug 2025 05:55: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>
X-Inumbo-ID: d3476aec-7cfb-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755608147; x=1756212947; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=p3YnrdDLKzQmkon5V2tjhG7jvyQSjMz9p6OXXJvMf+0=;
        b=XQaW4QNRYgBLpZjiukkF7UM+knkAHtC7lYy2j5z5G20qprnna30V3L35ODMwKOBYHx
         /D/oeLfbGE5P3uXk9s0FHQeOkFHEpqHMIAn3WtDDwnYV4tEwzGlUra/Aol0VBzY5ZORb
         NXf6e9oaUbnMh0M4ZlOkP4hORfnmfsvxlVomg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755608147; x=1756212947;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=p3YnrdDLKzQmkon5V2tjhG7jvyQSjMz9p6OXXJvMf+0=;
        b=q8+iMOvOsLswdmL6BjCcJS22duA8pJIe22CZOxTJRgV+80bq6kcyaEBOVYLDA24hud
         WlddNz17ZNw+K3GIgtZXfH0vHj2SJlmn1le8DfAGdFX6HXn/W0OFTdUlMJUUG7DCwMbM
         cBanPwXtai+aIb2suS8Kx74zYgTD3Lbs3tD88jlLzBBP+00B+Xo1f+2rnRFaiG5sTPRs
         DPolYxvzj1CIbwLwx/WjNziR+npddmSC7bLamfo6pysS1tAalYvCagSLbZlqej3yZk4Y
         aNNYAgLS/gBVTyxcTY3UGOLoYXOfvkbxFgvIGblWbb+hHvhsQQiuBFBjbSwyYVGVr+iL
         tfUQ==
X-Forwarded-Encrypted: i=1; AJvYcCUkskrUShuVz4LmXtmU4lAq7aHo6XcLt9/ITPKkWyqLQbyFPOZLULzKxFtzWVoi4CWqJ+yjcQrv5K0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzYAKGU+Af2VaauUenlWSv8h9gwt8Wrw7nY2NPEFz4X/ys6KxqW
	ZW+4naHR63CkjTu2RJv6is4HaPEkeiKbii1Y4HIjdJyNlUwNbROs4P7voT2a26uaHNs=
X-Gm-Gg: ASbGnctDpMgHs0oyFR2oAT1TtYu/dDnbTIhp2chprBLV2NCArwAuFchOhvxSG2+cvup
	NAzhWXFD/YjUGga4H40/ZX4WHuoEiGR5wtaY7j/TgHS2Fvb6d42eepiTst2TpzXFDLHsza/HJ0K
	a76qSRm2dA5ao7CLfKdU2FxvEUfU1gW/3byO8gxThK5YkZBvFkn8o6chNZ+HUeGr1LDE1C/9rx6
	K1RCO52ba0SKanY56gTiBiyG0IjYXb3GeXH/po/UxGFOV4c4IQphoNvi3rxhUYpLHOvNjawLouT
	ZGtn37NPu4YWtxet4kwArvR/mu+fc98YV/9LIt38vV73ilh96Z/rxLs3AWLp+51tY6JXO9YRjs7
	iqbRbSmDrjD/P2ULOO1yC0JzYc2lyylzva1XHVf7Mo9EuCSsaBMlvZPL6SiL8yr4L33Q+GBqvCT
	cbcqM=
X-Google-Smtp-Source: AGHT+IF5ThW04yVCKWz6ODcDk1skCmc9xjiyNRZReIg2pHnZi3uZblAC8zUwkUSf47vpNraOlPGaOQ==
X-Received: by 2002:a05:600c:3144:b0:453:8bc7:5cbb with SMTP id 5b1f17b1804b1-45b43e1210cmr19499955e9.25.1755608146682;
        Tue, 19 Aug 2025 05:55:46 -0700 (PDT)
Message-ID: <72256390-91ad-40c8-a273-a98e0bbefc77@citrix.com>
Date: Tue, 19 Aug 2025 13:55:45 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 09/16] x86: Clean up asm/msr.h
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
 <20250815204117.3312742-10-andrew.cooper3@citrix.com>
 <9c1808fa-1865-40b6-91c2-d6e2cabd8ddc@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: <9c1808fa-1865-40b6-91c2-d6e2cabd8ddc@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19/08/2025 11:42 am, Jan Beulich wrote:
> On 15.08.2025 22:41, Andrew Cooper wrote:
>> Now that content has been split out, minimise the header files as msr.h is
>> included by many translation units.  A few more TUs were pulling dependencies
>> in transitively, so fix them up.
>>
>> Give asm/time.h an SPDX tag, and strip trailing whitespace.
>>
>> No functional change.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>

Thanks.

>
> I think though that ...
>
>> --- a/xen/arch/x86/include/asm/msr.h
>> +++ b/xen/arch/x86/include/asm/msr.h
>> @@ -1,18 +1,13 @@
>> -#ifndef __ASM_MSR_H
>> -#define __ASM_MSR_H
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +#ifndef X86_MSR_H
>> +#define X86_MSR_H
>>  
>> -#include "msr-index.h"
>> -
>> -#include <xen/types.h>
>>  #include <xen/percpu.h>
>>  #include <xen/errno.h>
>> -#include <xen/kernel.h>
>> -
>> -#include <xen/lib/x86/cpu-policy.h>
>>  
>> +#include <asm/alternative.h>
>>  #include <asm/asm_defns.h>
>> -#include <asm/cpufeature.h>
>> -#include <asm/processor.h>
>> +#include <asm/msr-index.h>
>>  
>>  #define rdmsr(msr,val1,val2) \
>>       __asm__ __volatile__("rdmsr" \
>> @@ -113,11 +108,6 @@ static inline int wrmsr_safe(unsigned int msr, uint64_t val)
>>      return -EFAULT;
>>  }
>>  
>> -#define rdpmc(counter,low,high) \
>> -     __asm__ __volatile__("rdpmc" \
>> -			  : "=a" (low), "=d" (high) \
>> -			  : "c" (counter))
>> -
> ... this removal wants mentioning in the description. I'm actually surprised this
> is unused - how does vPMU get away?

Kernel software can't really use RDPMC.Â  Everything else about perf
counters needs model specific knowledge, and given that model specific
knowledge, transforming the indices into another address space is just a
waste.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Aug 19 13:01:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 13:01:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086570.1444771 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoLxa-0000bp-NX; Tue, 19 Aug 2025 13:01:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086570.1444771; Tue, 19 Aug 2025 13:01:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoLxa-0000bi-KH; Tue, 19 Aug 2025 13:01:06 +0000
Received: by outflank-mailman (input) for mailman id 1086570;
 Tue, 19 Aug 2025 13:01:05 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xm9j=27=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uoLxZ-0000aL-Ia
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 13:01:05 +0000
Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com
 [2a00:1450:4864:20::635])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8f9cb34a-7cfc-11f0-a32a-13f23c93f187;
 Tue, 19 Aug 2025 15:01:03 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-afcb7a2befdso710798366b.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 Aug 2025 06:01: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
 a640c23a62f3a-afcdce53e04sm989342966b.14.2025.08.19.06.01.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Aug 2025 06:01: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>
X-Inumbo-ID: 8f9cb34a-7cfc-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755608463; x=1756213263; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Nu8ovCptOWQM0oj5TnuZHtwoUS/8jrhVrBMfhE7I0hQ=;
        b=GWM0Cq0pOcaCbcfnV31zJ68Wh5VWQpdDSDURUK0tumfXfdzFzMeU3WaPoXgtyeXgYc
         AxvgP27R04P429N2Yqjgt0V6/nr4v8SkqkCgviGDe085Lql+sXD/wxFTfQOSibyNN8RA
         orM017cDqvzervCvAqRJa+JFFRhI3r9od+6TceVOek2MwElJQbN4EPB/0Vj4Wzdyhrue
         QNez01MaCr9ac1MROmUlC5h3teAn3w5c692QRAwPZi3v/YXWFmmrUsKbksHTiO7Dhgwc
         BPQlOyfGWjwUqeD9WmUePWdQ972BNpACkiQXFGCZyObVJ77OI96B/+JKug0vuX0SzPRH
         pzyg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755608463; x=1756213263;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Nu8ovCptOWQM0oj5TnuZHtwoUS/8jrhVrBMfhE7I0hQ=;
        b=CKgJzDl49wxvkYmVyNmdbdJDI6g8in2fzHbx975MFHGKIQIqN9V3JLVXQNjPvEjQNZ
         qGTS7Xmm9X7mxLslbvr+3NMCgvPNa+rpJgYVJCBTKmEx3bRTOVgWNu8QLbP/JSVukpIa
         sUo/BbelWXcRbTK/0a2O5uwZ/CTwIw8iJVfQEXcKaaBb2Ho25yEOuvmOwBlTHxApSjdM
         XePuKRABkB5X9XtuZig9SE33Y1d33GGnwo2VYf1idLcN1wgTu2PVjTMpBMEoKn7PfY22
         a+oSR2TeAPLIw978qShbNOhT2Hi3pUTJw8RxH2lDJ7+M6fQOWMUr7oS8s0PltIKBZ16F
         07tQ==
X-Forwarded-Encrypted: i=1; AJvYcCX08LhOyf1u4zMdzDuOxgKGouL1UUNAMolzqz5F03qTXl5xzrhkebVY9ebhtXwCjWjOat7KK1OpXxU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxLXBbS+YonE/axgbS233ZxqUOD38vwIgbl88zZXCnrTDcDv+rw
	XIdTcXneGEwrA3mPjwtmtq1Alr3yekPiQsgXwfaDR5+cIUoI2Qf6VMTeN3JVc1zGDw==
X-Gm-Gg: ASbGncsotm8Ok1TlU1cS5qgxpxDDuoFwbehnCPnMVFgYFQHcpNOpAgNw2nWd+LWvxzm
	V8qlj9ThJmBO3GfGM3QQPGJYyb1bL3xNMhE+Rz2ELFLVEPfquijcW9Ch+3BKFL6nLRTe3LVnjZ7
	UAa6ql/bsW+Tv9vh6/u/TSAIHvteVVjI3+c9jBls1Mfsq2qDdxB6c46pkRFD+7AtKCOEJYI3CGU
	2QFTcFuBhn1/xg9GToDr3f1xPwop8Spy0D48ylk9oCSO+pewFy7L0eeqsIInh2uVFb1z3whfKuW
	aF94gvdNdtFf1AvFtKzOgD/dbUSRKKU/c9EOQ5P90ItcIZ+q/3kmUpvCchHikHbGvY8F0LGhCxt
	3jEpXVbyS1mLDDerpZTsRnFUgOX1tPoEH+EmVkOfzC8N0lqqSr4j7y3pujiQwjhuZpV3mCb4ihM
	BogglLsITsBtIbxTGhYQ==
X-Google-Smtp-Source: AGHT+IEEB5MH7hry23BIaJ4yahi2+heHXFLa8C2d7BT7UV0FYQKCLhK/Pko1cRKq7kq9p3sXvCaU1A==
X-Received: by 2002:a17:907:9810:b0:afd:d994:cac with SMTP id a640c23a62f3a-afddd23d1bfmr237174466b.62.1755608462525;
        Tue, 19 Aug 2025 06:01:02 -0700 (PDT)
Message-ID: <740ce507-de96-41e0-a5ae-999b5b6d8726@suse.com>
Date: Tue, 19 Aug 2025 15:01:01 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 14/16] x86/fsgsbase: Split out __{rd,wr}gskern()
 helpers
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
 <20250815204117.3312742-15-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: <20250815204117.3312742-15-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.08.2025 22:41, Andrew Cooper wrote:
> Right now they're inline in {read,write}_gs_shadow(), but we're going to need
> to use these elsewhere to support FRED.

But why "kern"? We're not dealing with GS in kernel / user terms, but in
real / shadow ones. I'm also not quite happy with the double leading
underscores, fwiw.

As to using them elsewhere to support FRED: How can we when they use SWAPGS,
which isn't available under FRED?

> --- a/xen/arch/x86/include/asm/fsgsbase.h
> +++ b/xen/arch/x86/include/asm/fsgsbase.h
> @@ -32,6 +32,17 @@ static inline unsigned long __rdgsbase(void)
>      return base;
>  }
>  
> +static inline unsigned long __rdgskern(void)
> +{
> +    unsigned long base;
> +
> +    asm_inline volatile ( "swapgs\n\t"
> +                          "rdgsbase %0\n\t"
> +                          "swapgs" : "=r" (base) );

Again strictly speaking "=&r", if already you open-code rdgsbase() now.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 19 13:09:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 13:09:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086583.1444781 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoM5g-0001GT-GV; Tue, 19 Aug 2025 13:09:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086583.1444781; Tue, 19 Aug 2025 13:09: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 1uoM5g-0001GM-Cx; Tue, 19 Aug 2025 13:09:28 +0000
Received: by outflank-mailman (input) for mailman id 1086583;
 Tue, 19 Aug 2025 13:09:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xm9j=27=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uoM5f-0001GG-4H
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 13:09:27 +0000
Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com
 [2a00:1450:4864:20::635])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bb21470a-7cfd-11f0-a32a-13f23c93f187;
 Tue, 19 Aug 2025 15:09:25 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-afcb79db329so718517366b.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 Aug 2025 06:09: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
 4fb4d7f45d1cf-61a758b8efesm1683289a12.50.2025.08.19.06.09.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Aug 2025 06:09: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>
X-Inumbo-ID: bb21470a-7cfd-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755608965; x=1756213765; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=X1lkhk08FQM22QPp21nEhLJClfw5J+nQdf8CMWaFBvs=;
        b=FQJUt+0y/ahOQ9ojkWFKPuzYveMFh3twKSmWzvUT9I4Sk9wnGz3xPLN3L8qcGu//+n
         gcQ+EPtSc3yQxjjhSa/Ol08dnDtpmwrMLynGa+u3tMyUirR5s4E7d2YSnCYoWeVqsl/K
         SnZ9nhdCs5432XjiHL8A3M9kpIFnYzWVp6Pac36myqhL9xQzILSQFgjP/E/NwuTrOFZZ
         oJyEHcC1bTGBrZWfcnCiP6buWxvKKOAUUJyAMsCi1EoUuABhGSksF7cNPt7+wGVZmy7j
         SDen7lbh73AnerM4W+yzmk20amLSzKRhVZwgxst2Z7V/sFCpng5aKpJ6wZ6ntiTnLkVu
         J44g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755608965; x=1756213765;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=X1lkhk08FQM22QPp21nEhLJClfw5J+nQdf8CMWaFBvs=;
        b=GsNV2quGu7x5PemcsgP5yg20xxykydQ69yLpHS+NjfxPpW3jeAAIh+++GUh1tA92rm
         ktDeL0RHOIEJYbU+j9dnCQSkS6hf58sIH3nMrd231MjcxM8icFefnITDYdjwhrgoifZb
         upJwGIqNsQwOFEDWeKJmswi4SBlsSJed1dChWdZds8lA8JZRtjid8rl69rCoUNotVLyv
         cvFhW5yHOjvDBheZGiZxXs+QW/71ZN2wCz695UEADy64YjmLMepcWHiEpENeIWkz92lR
         yYAp5ErRi19LnY1cfC4iuxlH+bJLMmO1/3l14Ngh1qGUyeX03zhVFB/z5BCd2CmTbNnm
         uc0A==
X-Forwarded-Encrypted: i=1; AJvYcCUT5QsxcVUERXb8lb5ADj2Jv0EoRC+Xy/+26WUKPnYjNC3al1R1rfuT5Q0+H8LE228fyQAHXTUUMWk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwMPFK9twftRX63e0uNSz//TSxs5wd+Cp61rnzbCFvJwNl6mIyk
	JmFF995SiTfcdVPYMMF5DAUEMmnp0k4+MFn4/WT/l+BcPy12nR9TYXPAyNC3B0+S1w==
X-Gm-Gg: ASbGncun5RsRIBDTXLHlDJMTGLu7Znz44/XFqkfYL269TTpr69DvNZk2hhNa+aETxJW
	s8GjDBF9NVOoky7P5mqrn+cRPNebd/WZIs0RPVKwXVNQRBrSMt+VwXklVMed48JrCpMSk3UbLoJ
	1sPJCv9Gz+NrxTLw5PGo45OyXp3BRTWPXhynhxjQamJJFfIU8AojGRUalyNEX/3ATDfpXRPG9bJ
	F252MPevxcTckeZeJXrdPlseGTMUZLCQG4EW7PbNB2wYGjazDiYzj3CykMFpDffq5JEStR36dzE
	mtvFiXX0jYMuyV4hzhKU9Bu+qwa5fJgHcNmqKiwvbxRdJtf49OTfRMWal8nA8f5WLt4pmTuI8W+
	k+83HdizNCdkdnKD3D+L2QlumFFkoM3OrGunr0OlqxCFmJFW8z7EBtZ2rxv6uABsBckxBwg/C93
	zkkiFXEsw=
X-Google-Smtp-Source: AGHT+IGcCGVB2A62UC58OhtpaaXaVCzLnhChXFctFGhD5tDm+yMt2bbM+JBRBi6IpsU1jbGNN1PcoA==
X-Received: by 2002:a17:907:1c92:b0:afd:d94b:830f with SMTP id a640c23a62f3a-afddd211e15mr232290066b.64.1755608965129;
        Tue, 19 Aug 2025 06:09:25 -0700 (PDT)
Message-ID: <ae2e8b69-8251-4f60-a5ae-f6bfe413aafb@suse.com>
Date: Tue, 19 Aug 2025 15:09:24 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 15/16] x86/fsgsbase: Update fs/gs helpers to use
 wrmsrns()
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
 <20250815204117.3312742-16-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: <20250815204117.3312742-16-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.08.2025 22:41, Andrew Cooper wrote:
> --- a/xen/arch/x86/hvm/vmx/vmx.c
> +++ b/xen/arch/x86/hvm/vmx/vmx.c
> @@ -2733,8 +2733,8 @@ static uint64_t cf_check vmx_get_reg(struct vcpu *v, unsigned int reg)
>      case MSR_SHADOW_GS_BASE:
>          if ( v != curr )
>              return v->arch.hvm.vmx.shadow_gs;
> -        rdmsrl(MSR_SHADOW_GS_BASE, val);
> -        return val;
> +        else
> +            return rdmsr(MSR_SHADOW_GS_BASE);
>      }

Here and below, can we please do without the pointless "else"? Strictly
speaking in Misra's terms that's "dead code" (things working identically
without), and I'm quite happy that I can now use this argument to
support my personal antipathy to this style of coding. Or else use the
conditional operator in such cases (where applicable).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 19 13:13:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 13:13:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086593.1444791 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoM9A-0002wY-Vh; Tue, 19 Aug 2025 13:13:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086593.1444791; Tue, 19 Aug 2025 13:13:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoM9A-0002wR-Sx; Tue, 19 Aug 2025 13:13:04 +0000
Received: by outflank-mailman (input) for mailman id 1086593;
 Tue, 19 Aug 2025 13:13:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1y2Z=27=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1uoM99-0002wL-VD
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 13:13:04 +0000
Received: from DB3PR0202CU003.outbound.protection.outlook.com
 (mail-northeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c200::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3bf07732-7cfe-11f0-b898-0df219b8e170;
 Tue, 19 Aug 2025 15:13:02 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by DU2PR03MB8008.eurprd03.prod.outlook.com (2603:10a6:10:2df::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.24; Tue, 19 Aug
 2025 13:12:59 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9031.023; Tue, 19 Aug 2025
 13:12: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>
X-Inumbo-ID: 3bf07732-7cfe-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gR5A7h9/YP2PSK6jiwDC2CWlrrn4u12SEMqnTCayGo41j2zNnHD7M5YEuNLUvbEbwVIpf77UFbZwUC9VQB9GNfG+e9jaVFeget+SNL2wEbA3Aeyrq+eN1sBSBTYiQSfAngVvRgomgUr466GvlygWW2Q0LgdA8scOECEGwLiEER07u6H/5gqlR9xPL0KopTZnD/VjWGEpRAJz8l62YkVRjTF2VM23sard5j6wb3/Wuq8XrWuCaurh+eGaXBVzknxHyZAsAMj1FbokQzD/wLwjO4kJOUm8l7f/7FH5RkhCzil0ta1QL1fbimifUnBva0EBYM3U4SVXM0q+0dmXwTflRQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=kPZxSKcQaWuKR5coz534mrGqoRFpYRqP222CZDriAyU=;
 b=Y06dDKw20JVaKtZKQa0sAyDNhHVrdrki19oq4TlqabShxI2asqi8AEFMOOVzUCg2SthkogU86oh8QxYI8JNSof4qSr5exIRekR069h5dZXojDoGDXfjlKdUdavNcFPV7lOrqRNOMCRozSFN3/5eZHhERriDStuCwcmit4Z0gtJE3kI/+JH6uKHt0CaenandkJ5AklcIk/diyYwn4etBE6JPTXblvL9xe9/IZ+5lS8rVipZKOea11QssoyAi4HjX6PqDcpts2NZkMLqHGPx1d6atl/E7atGy+ISxV90o53lW4xWQF4LVlmVg4FVL0Cy+O1r0i1Tv3/afcSFyE8Tn1qQ==
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=kPZxSKcQaWuKR5coz534mrGqoRFpYRqP222CZDriAyU=;
 b=vEFLkfWZrGAzTdE+5+gJN2tTmaXJnCqRakQnwj0z8cCfdcbbyMEkCrMhE501iXaMPZF9jo60vAQ8UvDFx3zB5wUQN8ATfRJhYkXYC3nKdpzerq41q254m/Fgdm2qeEitk3sJgDjJKeuRQP267yoJJ5I7E2IbtzbrvfMjwUrx9LHEMcXJQntanV/9b3rd67Au5smesDNDfUQ538y2sXYlENd2wixGu/WPYxXCueOe7I0C7HxoaOW/uu2VovblOCRVzvgcfP9NHLpU+x4Su/zEQGJLV0bhsNHJswGAoAnZK5iCJwgK/6NzAynNEjvjQXYrZFVQjz5sQD3A9VNYrDzjmA==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, Nicola Vetrini
	<nicola.vetrini@bugseng.com>, Doug Goldstein <cardoe@cardoe.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>
Subject: [PATCH] misra: add deviation for PrintErrMesg() function
Thread-Topic: [PATCH] misra: add deviation for PrintErrMesg() function
Thread-Index: AQHcEQr89D/JS5GCrUaBbORYWk1wAQ==
Date: Tue, 19 Aug 2025 13:12:59 +0000
Message-ID:
 <5944d87aae330246b7dab6eebd04d5d71a7d7e8f.1755608417.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: GV2PR03MB9572:EE_|DU2PR03MB8008:EE_
x-ms-office365-filtering-correlation-id: 193ff3fc-eed0-4ce6-b88f-08dddf221eca
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|7416014|42112799006|376014|13003099007|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?9fWbqyJiY8p6qQed305aKpMnYMmY6eg28PCz3EN5eXmUVKJVcnTaQQrQzu?=
 =?iso-8859-1?Q?ZWmxvHqylXQcLxHnBP4dQhcIn/4jkTK6yzLZUXvQETbajP9LIwDHYS9S7Q?=
 =?iso-8859-1?Q?X8umaj7+9yVtZ9FAr2tNIfHHBvSG98Qm0Z2UY12AyLDL6xhY3v9gE6nRX8?=
 =?iso-8859-1?Q?ySAUB2+UaU/ObnR4Nhg5RXvtyVDUu8VfTluiC9o8cprLPpW6e1I9gmzqXI?=
 =?iso-8859-1?Q?3nW99yDlVbPDCP6JfBK2/u7CSLRsGvyT5GZwTsW8BtEI+b9z4H+NXwAxam?=
 =?iso-8859-1?Q?kwsiAvJXYkfrmKe+8aNmoGZdqIh8bFnOacTyFymuOqg/nNGxi1zhEN0Iqr?=
 =?iso-8859-1?Q?+UOLZ2ZoET0ZtfykdA8x9KRA4LC48qQeZv686t2xez7KqahFdVxLMSbJdY?=
 =?iso-8859-1?Q?XUSmBNBkET1tkM3cz+ngPGcJrVPmbPq1sHdZaxGafFRuA1UXoeXt8tt4Fe?=
 =?iso-8859-1?Q?5tD8x64E20ch2TlWlKB+b5BJfeAQeIAZ58UWQtLK+zpileLFhTLUK4VgrJ?=
 =?iso-8859-1?Q?p3TxqEExtl5A5gHyYtrQryCUuYupo91vJyPn6nnzTvxg29vZD9PR+v8shw?=
 =?iso-8859-1?Q?BVIMBzkeBl69eGGP8gbfOphICgv1sNdAqXtvIGsdJxB+7YAIbi9FfaJDZq?=
 =?iso-8859-1?Q?7jTsmjBdxQCvPABy9qvScDwl0hANDcPXX/C77NDyvR/aAoq9lsxNeu5Pes?=
 =?iso-8859-1?Q?pOdoztX3tfrQG0KchiPCeMRAdcu82SmPdrF9LtYFLbKQCpC//yBHhwUqml?=
 =?iso-8859-1?Q?zEU/dsyX/p1I0cMZDzGURHH7hkYqEPavce66AwFeOIx1vIE3paQXD2Nmnq?=
 =?iso-8859-1?Q?HENlDtfR9ve/hzE/mzwqRUf3x0MlQ4yhoVCBIoiUVuZX16WXAMznM0QcE2?=
 =?iso-8859-1?Q?K0P1HUKh6CEQMrWcamjqlIMVO0RCm7L9tZmpha8osq7/NnNUVbvc4gIyzI?=
 =?iso-8859-1?Q?EWjh+yA1BS7kYvLsTsUyj3ZGR83Tt4jfMtOPCT7Si0OG7ZLFhnhh39O2Te?=
 =?iso-8859-1?Q?sin6CFuw5yHAyJwA3KNkBZp8uFPTNm0w8wJKsMLGNATS6XaZBPSRie82Ai?=
 =?iso-8859-1?Q?MxwKT1Ggk1X9SUIl5x99lAggjwQ9NE0IEeqwiM4d2hDoiGMpvjOuUBBr0L?=
 =?iso-8859-1?Q?iUFO7VA3A7YT3SseS2fcra0kDJJIrL3flyhMr8jk/BnP/5qMfSN/uaq2JO?=
 =?iso-8859-1?Q?8mABlWDqhBQpoqjmIYMVYCyB+ux8Kbfn65qNzMjjLu6hBwtQAlGH1rBLGS?=
 =?iso-8859-1?Q?YwYHBHA8i0nPRtkXo2ECqFUWsZndM61VOKjI3XcfVfNwv+QHHRK/qP0kNl?=
 =?iso-8859-1?Q?0yI95zhzlxL0KrhVFFDjURDBv3isqqirBIV0FCQ6W+5OCTi+rSiLpfN1oO?=
 =?iso-8859-1?Q?bMhNDEjP5fMUWtR3aTouCPxU3hu49CWPdwQEr5S9jce0Y0thDcbkhCcceT?=
 =?iso-8859-1?Q?ICNnF8GANyPY6FsZhbjePEMh4b1piyksDqke+wtuyeFyQAgEUhF4HXfumV?=
 =?iso-8859-1?Q?0=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(42112799006)(376014)(13003099007)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?QUAM4rp+QHXW6lUYc8h59zd9lExpovJ/PlxBzbYdf/cKgN1YvvSIyMz/cP?=
 =?iso-8859-1?Q?GzEo62r5M4jlt5EZBHL8WRF0qi+U5vfSliXNDzXY9kNbHkN+mXCJtxLgs2?=
 =?iso-8859-1?Q?xBeKpKrAm9XWVIHvZ5WSmD9Q8uF6wIfjpXCIl6jD6zrJBb1M6MZn6sIX34?=
 =?iso-8859-1?Q?o3dfX9Q570I0nnvG2ITqYQd6dg5KMP7YMyhF8hFtfhesjRUsfla1WPxX0g?=
 =?iso-8859-1?Q?O0wuRS0Nbz7VzW4ypbtszMs5TlZb35J8q6Z7LpuFO7IOj7fkUtor3/ANCV?=
 =?iso-8859-1?Q?RiYjYrTQLf3Z41cR+TjAZxx9GZ1qTjYFe0ER3nBuGPap73upA4QRPzEb8X?=
 =?iso-8859-1?Q?UqxenITGv6WH4FURnjqJJj1VizKSJSr8B/ly2HG7dpP1AmiJRTyVp8tJ5S?=
 =?iso-8859-1?Q?zJBTWSHkrNqyQik0P1kOdqplidO6ouikNb/5q+qyT4MKg228pBpXPCssKs?=
 =?iso-8859-1?Q?fvZjiZERu2XvZNgTdX+CruSzUlg0nT29IvGrPj03MhkI7s6HdiMBEHY/1M?=
 =?iso-8859-1?Q?9fhiVDcTxg3JdcYuBi6FPNr2uqNS8b2UgIsJWnhROrMX/mG7iEahySMaag?=
 =?iso-8859-1?Q?58pZ3Te230w0lAWn+80h7uCUkn94RpLIiBKyaG+LJl+sLlxkZG686Sz2gq?=
 =?iso-8859-1?Q?JenrVHR5o0upfycTibw0X/doij96KBToxhVkP80t9+TU2mv24Vp6Vh9fmp?=
 =?iso-8859-1?Q?ELwo6ISdOWd40vhDclK7TCjPpGiUJqsOM71r69AcWejHtSZyOVn/tkCbt7?=
 =?iso-8859-1?Q?MZIfBmAnufNsm5irRMmqmuiD6Ua67Cb1C2n9+ih1GcFiHAQCClLmhoUNbY?=
 =?iso-8859-1?Q?PJlldjykM/OKPz+ze5CZ9RJyNUc/wy8Mr02ZcJwjYvmuS8tRki9o9e8I9G?=
 =?iso-8859-1?Q?j4ZwIzI15sza1RQJ2I3591GTl7LCoXFGTGpKe7m7NxN9oPOD00DxB+nE00?=
 =?iso-8859-1?Q?9EICHG4KVartclwbH1QG5Fs0AXaAffEg4oDAW7+hEmVTWJpAQzi9Vt0LCi?=
 =?iso-8859-1?Q?YqNfCqXZYBz9CU5q9usSHDn2gVMsPgYN+qArmnm2HmU1Hv7uYcoVhrxFvB?=
 =?iso-8859-1?Q?dcys9t/vpINjHk3MRYhWN0P5uJuXT6/ZmIsOLG7EvuXt3d0jF5inu3pTBe?=
 =?iso-8859-1?Q?9eqN6t6RlQdHsfbLZwAljRNMNuQJzktbL1gF9B+R6/Mf46s0/B+9DLuyzb?=
 =?iso-8859-1?Q?etpM5rXmUUGSxZwy/yQa9+fdurzr390CkPWGARtrxjKjC28YuUIV8hjijR?=
 =?iso-8859-1?Q?OxoU7DJv+kq/3CZlfmLJSvREqzd6xrOyxj5rp/+lPSsoc/grNjnGNLj2ai?=
 =?iso-8859-1?Q?uFMhNowgFcHmbGNXiAgWrBwQ2ZkdG1ecDiysd9PhlWZ3KRUoG83Rv+oWD+?=
 =?iso-8859-1?Q?Aku7uHFL5b0YGicceFcrJGfo0KAizk8uSh7/AZzSETVDg+2/vHU38JHbOM?=
 =?iso-8859-1?Q?etIHE8ccGLJPZYSQfHF+RIX+nvKKOWDj4EsrDYCPFZLzlFJG9E5P0FEVxA?=
 =?iso-8859-1?Q?8jzZXEeKDOZ28S/h/nvYwXLmZr/eymdnB5birKFJymB8IEWg1dFN1Ovyzf?=
 =?iso-8859-1?Q?W00EKR5170/zRuuahKrUiN1fFCNqJ/H9zx1GmLfQ+q28ONqLXggaSn8KJe?=
 =?iso-8859-1?Q?mn8/B3ojDgphInLUlj80PRREGbFu2tATlzacbanfyceb9dJUL1lStUiA?=
 =?iso-8859-1?Q?=3D=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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 193ff3fc-eed0-4ce6-b88f-08dddf221eca
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Aug 2025 13:12:59.4758
 (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: WtKZOLcUpkJYjVT2ry01IEaHXJ9p8vtuACe/KxYDgITu4gW2CiCM7YCX+8D6qlc1X2TO/RQReE6LTYCqztmgGFuqYiDrkurRruYAV+W+MFE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR03MB8008

MISRA C Rule 2.1 states: "A project shall not contain unreachable code."

The function 'PrintErrMesg()' is implemented to never return control to
its caller. At the end of its execution, it calls 'blexit()', which, in
turn, invokes '__builtin_unreachable()'. This makes the 'return false;'
statement in 'read_file()' function unreachable.

Configure Eclair to do not report this violation.

Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
Test CI pipeline:
https://gitlab.com/xen-project/people/dimaprkp4k/xen/-/pipelines/1991518214
---
 automation/eclair_analysis/ECLAIR/deviations.ecl | 4 ++++
 docs/misra/deviations.rst                        | 7 +++++++
 2 files changed, 11 insertions(+)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/=
eclair_analysis/ECLAIR/deviations.ecl
index 7f3fd35a33..5c262aa5ad 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -41,6 +41,10 @@ not executable, and therefore it is safe for them to be =
unreachable."
 -call_properties+=3D{"name(__builtin_unreachable)&&stmt(begin(any_exp(macr=
o(name(ASSERT_UNREACHABLE)))))", {"noreturn(false)"}}
 -doc_end
=20
+-doc_begin=3D"Unreachability caused by the call to the 'PrintErrMesg()' fu=
nction is deliberate, as it terminates execution, ensuring no control flow =
continues past this point."
+-config=3DMC3A2.R2.1,reports+=3D{deliberate, "any_area(^.*PrintErrMesg.*$ =
&& any_loc(file(^xen/common/efi/boot\\.c$)))"}
+-doc_end
+
 -doc_begin=3D"Proving compliance with respect to Rule 2.2 is generally imp=
ossible:
 see https://arxiv.org/abs/2212.13933 for details. Moreover, peer review gi=
ves us
 confidence that no evidence of errors in the program's logic has been miss=
ed due
diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
index 2119066531..8df3c207ff 100644
--- a/docs/misra/deviations.rst
+++ b/docs/misra/deviations.rst
@@ -97,6 +97,13 @@ Deviations related to MISRA C:2012 Rules:
        Xen expects developers to ensure code remains safe and reliable in =
builds,
        even when debug-only assertions like `ASSERT_UNREACHABLE() are remo=
ved.
=20
+   * - R2.1
+     - Function `PrintErrMesg()` terminates execution (at the end it calls
+       `blexit()`, which, in turn, invokes `__builtin_unreachable()`), ens=
uring
+       no code beyond this point is ever reached. This guarantees that exe=
cution
+       won't incorrectly proceed or introduce unwanted behavior.
+     - Tagged as `deliberate` for ECLAIR.
+
    * - R2.2
      - Proving compliance with respect to Rule 2.2 is generally impossible=
:
        see `<https://arxiv.org/abs/2212.13933>`_ for details. Moreover, pe=
er
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Tue Aug 19 13:20:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 13:20:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086606.1444801 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoMFq-0003al-Q8; Tue, 19 Aug 2025 13:19:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086606.1444801; Tue, 19 Aug 2025 13: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 1uoMFq-0003ae-NT; Tue, 19 Aug 2025 13:19:58 +0000
Received: by outflank-mailman (input) for mailman id 1086606;
 Tue, 19 Aug 2025 13:19:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xm9j=27=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uoMFp-0003aV-BB
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 13:19:57 +0000
Received: from mail-ej1-x62e.google.com (mail-ej1-x62e.google.com
 [2a00:1450:4864:20::62e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 324d25d4-7cff-11f0-b898-0df219b8e170;
 Tue, 19 Aug 2025 15:19:55 +0200 (CEST)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-afcb73394b4so792837266b.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 Aug 2025 06:19: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
 a640c23a62f3a-afcdce53eccsm1016832866b.19.2025.08.19.06.19.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Aug 2025 06:19:54 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 324d25d4-7cff-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755609594; x=1756214394; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=a1wieFv2ae7gx6tGdoWuGagcm2RFtJCxUoP67zyobt4=;
        b=aEK4aBw26oJNc+Ak8Ise/aYcHUEvRuiXsiTZTH9z9JgVHE2Sm0o3NeR/Z95Qy+kwhp
         keofnlmLzYNSimRxSYOOgMKfcEsQC1EJB+DRMljFWOC/mKg3k1zKuqlCXu0TsIaZcH79
         6AK7gYirTjufoJlnP5Y2GXnUpx1CC5vqdxfSsXcMCesiMwQArpTIO2Dhwr09+06A7Ynf
         zV6l670I83r8vBBkzGPepauX1QjCEYFQ+6Y71+/iEutC556RiMjmU4pbVqFvLbp0M0ov
         kXtm3J/IVgZaZ0HSW1TtfLX+k7GNdlDCJDeOKmcHOrD/j5LGMSaNUmKmlH7Q7ULeUaVJ
         zBsQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755609594; x=1756214394;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=a1wieFv2ae7gx6tGdoWuGagcm2RFtJCxUoP67zyobt4=;
        b=wtSXuFCVbXa2f1FU3Fdp1X2zO3wkxbeOmKVpwbCB7d/7Aa4/Yv5996JZZtY7Aeh8XS
         voi/Km9wqP7xNrXGhGtGhxQkQqEAciSLVMsASlpjp7qm/gJIe0arAP7wiWUwAH27/vZM
         PDuGx52DGg0OQ1W6at+HXiRRpKmcDC2rmDyFXOz2sHqkI2wacKoqiHjukBaHaMPcKtuP
         L5lsloTwkheptLXX0laHZ9RBXYRRMfINSqO26xFSr1GdB8h5R4zf5/p9OqEFYvPfdO6h
         dz21/Z09SH6fK85aNDTCpCY3peJsdGejsDpzFrhsUIPHjzrduIhi7dPAWke6YJfVfPQz
         4fZQ==
X-Forwarded-Encrypted: i=1; AJvYcCW292LpTOvaut+beeSH8BLDAi2RNd4nepMIBSQJ2cP82/g7FWa4M3IQTsS7p4Csg2WAkc/LvJOnm/w=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwbNwe5IeLOWFZPrwsBtM6QqzDxsBc0vvFempebpdIF1scrd8m/
	KTaP+NCEwZJd6N7JmVqGTqww1ctVuS2rS7PTFQtkDo8a4RWZivrUy7IzjE6Wt1dx/Q==
X-Gm-Gg: ASbGncuy9IR6+Ft9/FGrQd1qDpJVJ6uFUv7lAkAjYyoRzViJGtTf6GlENDKDKdTw0RV
	oe/cSg17vax/3XSq1i7ksEfeBIxH2v51Pk3zgAshGKvn+C8Zjmrmi6ilCFV/+MCQHLX1XM8+Sod
	0nLuR9xSzMafcX6hBn8Rju4PYBVbYp8jJ8pnKkjwuGNXUZqXVo9Xsj28chnZQIRtw7Z2Sec53d5
	dT5alozERhm+0xz0ocUDsDo/6IVwLb5/ikFcaBtwY6ELF7xmPKpaudA1JU+iu3Rwd+I5n266MQN
	E99FwDwMX6GyqcQvBjf9IbxgKDs7uAEG7OXFwIElzCwmqS4cMSPBhe+MBUUB194WsmMaaep45n1
	vteq5gtFgiSyfPVA54pAbuVMEbEKeXYmfXI2fxM3H+7dGtlFhUhx4zWf5ehzNTRSAiiy1bPyh2e
	Z4iAqs2Zs=
X-Google-Smtp-Source: AGHT+IH+He7ZniET3r1N5Z7U6+BXezpL7aLqBfUyeLzFBA5DCof21NZpjhWC8LOFUn6apeCXZwPKhw==
X-Received: by 2002:a17:907:7e91:b0:ae3:6f35:36fe with SMTP id a640c23a62f3a-afddd1fb2eamr207831166b.47.1755609594531;
        Tue, 19 Aug 2025 06:19:54 -0700 (PDT)
Message-ID: <e1444bbf-89b8-4685-ada6-3092d65fb9c6@suse.com>
Date: Tue, 19 Aug 2025 15:19:53 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 16/16] x86/fsgsbase: Improve code generation in
 read_registers()
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
 <20250815204117.3312742-17-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: <20250815204117.3312742-17-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.08.2025 22:41, Andrew Cooper wrote:
> It turns out that using the higher level helpers adjacent like this leads to
> terrible code generation.  Due to -fno-strict-alising, the store into state->
> invalidates the read_cr4() address calculation (which is really cpu_info->cr4
> under the hood), meaning that it can't be hoisted.
> 
> As a result we get "locate the top of stack block, get cr4, and see if
> FSGSBASE is set" repeated 3 times, and an unreasoanble number of basic blocks.
> 
> Hoist the calculation manually, which results in two basic blocks.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Otoh the function here isn't really performance or size critical. I'm undecided
whether the undesirable open-coding or the bad code gen are the lesser evil.

> --- a/xen/arch/x86/traps.c
> +++ b/xen/arch/x86/traps.c
> @@ -118,9 +118,18 @@ static void read_registers(struct extra_state *state)
>      state->cr3 = read_cr3();
>      state->cr4 = read_cr4();
>  
> -    state->fsb = read_fs_base();
> -    state->gsb = read_gs_base();
> -    state->gss = read_gs_shadow();
> +    if ( state->cr4 & X86_CR4_FSGSBASE )
> +    {
> +        state->fsb = __rdfsbase();
> +        state->gsb = __rdgsbase();
> +        state->gss = __rdgskern();

This, btw, supports my desire to not use "kern" but "shadow" in the new helper's
name.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 19 13:25:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 13:25:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086615.1444811 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoMLR-0005Lf-Di; Tue, 19 Aug 2025 13:25:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086615.1444811; Tue, 19 Aug 2025 13:25: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 1uoMLR-0005LY-A4; Tue, 19 Aug 2025 13:25:45 +0000
Received: by outflank-mailman (input) for mailman id 1086615;
 Tue, 19 Aug 2025 13:25:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xm9j=27=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uoMLP-0005LS-Il
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 13:25:43 +0000
Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com
 [2a00:1450:4864:20::532])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 01295666-7d00-11f0-a32a-13f23c93f187;
 Tue, 19 Aug 2025 15:25:42 +0200 (CEST)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-61a2a5b06cdso4695115a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 19 Aug 2025 06:25:42 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afcdce71e1asm1022209666b.27.2025.08.19.06.25.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Aug 2025 06:25: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>
X-Inumbo-ID: 01295666-7d00-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755609942; x=1756214742; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=QG2PAxqFiSIzAAFN+iliKunpx1bwRMMvuHedKf70fZs=;
        b=JYrMlS1jTzUIFWbsQVhZbkDyo6Ck+GUjDHNb7W9mQVs0DzzutU6UanXwHu9v3YS9nG
         Q21I1VFZ9GH3yCv2KSjRAjINxPxsxMK35vbPcDqOyeuRD5tM3X88YjirRSudzQf8I/go
         WdHssliJI6SE1j7EDrhoEonJyWjQUon64x+d8dSmcnx11aB0IOIuPu5y4snn4fG+kfiU
         njPUzEGSLHY5a9ZcEoP7RIMJW1YHS0SI8RUTmxqE1LguOLykOyVTQ5MWUvjlEkdPjzDx
         wsv5OCIwBu9qsKjLZ/tvKH5oCptAm+NkygQC+8Hv47AkPaSIbVZz2WLCo/Zm/rmVoeFG
         rVKw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755609942; x=1756214742;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QG2PAxqFiSIzAAFN+iliKunpx1bwRMMvuHedKf70fZs=;
        b=sF8TgjWU4mOIGgblSSzg+0MzByHk/Ryypqe/6JB6eI3LteI4OCABK6650xt0sMcFNP
         Vaf+aKJ/a+PcS4tXzBf4DRj2IsFkXuig3MLyMYCkl2nINtr/Lc5rFZeOobFzs9O/p5fZ
         LRbPVGL0dnu4emD/pdvtEHoo4w2ng9J9w3R8zQvyy3NbV7FCvkLQNcS9jXpWezNgH4AW
         SvT6peAy+il6cU7vuBGRUufQ4pcn9A6ljNNo1b7ivOIFrakRQzXwmMV3nPAgW0pXMRzI
         OUKrdw/9bun8FIVn46H0w0qtPllg+Zb6Sk5CmzazyFjiOOadRgDZoMZ4VW4s+o0i7oty
         E5EQ==
X-Forwarded-Encrypted: i=1; AJvYcCX26DneSVrNQzwbjL8A2IcbVP/S+jPr7tbM2krtN3H3w/0G4r/rXPamCJ+Knni70ebgeVSSPscDp0Q=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy2i1JyETkRF7dFGkCZdahjzk2luKCG5icbb7QKmU5zBJOCmfA0
	vhw8AbDPFIar4WtCxRqkoYf+x92Ls2Wdhs/TVTOw+76fqzICWnWydy/LTP5w3xmLVw==
X-Gm-Gg: ASbGncvm/TPSYuQ66PZwdVgF7p/LwhUvDPiXvgwYAg7X+VBakXzB6W5apidb1qkFDDK
	gn4lL1vo3tDe/tmRDwfsezTsymvuguXGSuCY48R08NwHYj+zSNh2NWQYYcSPGc/AzrUEzSyA+UZ
	aVMqM4xPJhdDPT48FwosmwDo4bPfB7K61w7/rlmkc+rM56Ky9iFauFpWsNpbhUu1OFS+tewPDTs
	Qw8FH1tDsaAA8ryGbwcURwPFFD89fSrYOpATDByHKy7qo8BZLnndFgrlpooRB7gVKxNrHqhxwcT
	m9SGa9m7QpCqIk/RJlYjvmJUD8z/8sEHqGujUd+qXRmBfuIpufbrMAD0L1EbjeP7ka3o7wEaceD
	ZzaHJrr7iClEbVkTrbF7/CT6DAQCS0OOuW2hoFkn+eUqOdM8MCBLP1nUMAqC+2XbnuWdG10g21K
	wDMehp/DiMJ975Z+Mr/Q==
X-Google-Smtp-Source: AGHT+IHOEoEl+wOoO6pR7gEfeYXWQI3PcnC+jIodNYKlmUSp/7oKx12sOz+KL9RYY+AB9n1vY8W7GQ==
X-Received: by 2002:a17:907:3d8c:b0:ad8:9997:aa76 with SMTP id a640c23a62f3a-afddd0cfeadmr257341466b.37.1755609941627;
        Tue, 19 Aug 2025 06:25:41 -0700 (PDT)
Message-ID: <37c61f78-b723-4611-b9d5-f915f72f36e8@suse.com>
Date: Tue, 19 Aug 2025 15:25:40 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] misra: add deviation for PrintErrMesg() function
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <5944d87aae330246b7dab6eebd04d5d71a7d7e8f.1755608417.git.dmytro_prokopchuk1@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <5944d87aae330246b7dab6eebd04d5d71a7d7e8f.1755608417.git.dmytro_prokopchuk1@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.08.2025 15:12, Dmytro Prokopchuk1 wrote:
> MISRA C Rule 2.1 states: "A project shall not contain unreachable code."
> 
> The function 'PrintErrMesg()' is implemented to never return control to
> its caller. At the end of its execution, it calls 'blexit()', which, in
> turn, invokes '__builtin_unreachable()'. This makes the 'return false;'
> statement in 'read_file()' function unreachable.

I'm disappointed. In earlier review comments I pointed out that there are
two. Yet you say "the", without further disambiguation.

> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
> @@ -41,6 +41,10 @@ not executable, and therefore it is safe for them to be unreachable."
>  -call_properties+={"name(__builtin_unreachable)&&stmt(begin(any_exp(macro(name(ASSERT_UNREACHABLE)))))", {"noreturn(false)"}}
>  -doc_end
>  
> +-doc_begin="Unreachability caused by the call to the 'PrintErrMesg()' function is deliberate, as it terminates execution, ensuring no control flow continues past this point."
> +-config=MC3A2.R2.1,reports+={deliberate, "any_area(^.*PrintErrMesg.*$ && any_loc(file(^xen/common/efi/boot\\.c$)))"}
> +-doc_end

I don't understand the description here, nor ...

> --- a/docs/misra/deviations.rst
> +++ b/docs/misra/deviations.rst
> @@ -97,6 +97,13 @@ Deviations related to MISRA C:2012 Rules:
>         Xen expects developers to ensure code remains safe and reliable in builds,
>         even when debug-only assertions like `ASSERT_UNREACHABLE() are removed.
>  
> +   * - R2.1
> +     - Function `PrintErrMesg()` terminates execution (at the end it calls
> +       `blexit()`, which, in turn, invokes `__builtin_unreachable()`), ensuring
> +       no code beyond this point is ever reached. This guarantees that execution
> +       won't incorrectly proceed or introduce unwanted behavior.
> +     - Tagged as `deliberate` for ECLAIR.

.. the text here. PrintErrMesg() is noreturn. Why would anything need saying about
it? Isn't the problem here solely with the tail of read_file(), while other uses
of PrintErrMesg() are okay?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 19 13:28:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 13:28:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086624.1444820 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoMNz-0005uE-PE; Tue, 19 Aug 2025 13:28:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086624.1444820; Tue, 19 Aug 2025 13:28: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 1uoMNz-0005u7-MJ; Tue, 19 Aug 2025 13:28:23 +0000
Received: by outflank-mailman (input) for mailman id 1086624;
 Tue, 19 Aug 2025 13:28:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=h/XH=27=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1uoMNy-0005tx-Jp
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 13:28:22 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5da13151-7d00-11f0-b898-0df219b8e170;
 Tue, 19 Aug 2025 15:28:17 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-45a1b0bd237so42620125e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 Aug 2025 06:28:17 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45a1c78b33csm222651485e9.25.2025.08.19.06.28.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Aug 2025 06:28: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>
X-Inumbo-ID: 5da13151-7d00-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755610097; x=1756214897; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ke7os2fu9TtFHTuGPp/COdq8HM+tR2KBR6lKg9OnZxw=;
        b=rWXFBFohmNNpW94EB+NR2BSCjQv1r5WTb+HgREV7LNYw54p+UrXMuo0Uh07sCwByfn
         19aikgg8wiF10ZQczT3IndGnYu+MEIGBE2n4+wZybNAyKq5iIOFbI0jXWtPsjg81k9sO
         LYZxTh6XUuqCIB4TkkEDKsPfgN3TQ3oxbxPO8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755610097; x=1756214897;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ke7os2fu9TtFHTuGPp/COdq8HM+tR2KBR6lKg9OnZxw=;
        b=EhW+NNlFZ/QLuR/jFQEjcHnK8rGEPaO37ci4+Cq0apQZMizBR+Kzpx04U/V4oXer1W
         jAdiQxsq21fH9KQajmNbpvKCnHUvHhTyLcOSLCesvlirVY0HccxZYrlwrbMzN8Xd2e+G
         7MSACYjDxSZmv6sBnG0bBKtbXNzF5X7zhlH15quYwDc0sJqEmOVLhVj6Q8BJa4D8THDA
         ac6Pxtan1VqSkMqWmDkRd0Lat4RxI9/Y7XbmvnGncn9BGt+WXfjQP09YkGHXhy6wDXf+
         p1gk396gVRzy/JtMntKldEszAZazXYb3H/HKlleSJVC/um1n+CEp8FJQraGgOlmKCNGO
         3Jsg==
X-Forwarded-Encrypted: i=1; AJvYcCUAqoJK1w+cyBtaK7RzxVfDr1QKLyNnzUaZFzXsSn3GVXdoTBiEXtONewcdi3MfFvd72PRRkPPamPY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxGvHzvZtmE89IK0PPCm7AjgVE3WJ6jvRwLl3wpAThktCLbzKjb
	QpVxC5oSYXohUm5VYqvz4GsIS5GJScZQ1IrRGE3C+SCLIrX5kORymZLu7Dr1tAi8VQ8=
X-Gm-Gg: ASbGncutawSS2ozvvan6WayWIu/K3XX7vp2PFsI06zXrVh4tNvOQKqciUcVNFqFp2q4
	qHX5vv//aDiyGJiseRPJzgri7X4UgIZNnNatISPrVcXqTJrzW7B6LE01tB1bGhgdfROxICo5LcH
	vTqdrTq9FWR6bLyvA2OmvvWw2n9tJBvuD3LfDibaZyEDVRFcg8bIKFUGnu35yJJLP2dhfc9bJCE
	BQRNw6Uir9A3MSLqzlecNTEiLuuQwG0hltxZTocsuebp3PpWBW7GcJHBW9IyPm0J7j9L+fL8z+y
	Gt+vCR8EG8UeAaVV6DlFBFS4E0gH/L7GQ8So5OjocHOqXodIUhK9xKU+MrU5ipWtTXHq30oghcn
	ctp9pKeXVOrsl4oNdIb+RSEaN7GD5U/ggYsOZkbVDGrvBrxxHyRrubV62KP/8XU5k8MVV
X-Google-Smtp-Source: AGHT+IFXwbE5IwDr8z6wLUwKXiPpH5pgo2pXlaox9fMhhcM4lSDzdoIEufxjyuC2H8wJ6IRkW20LcQ==
X-Received: by 2002:a05:6000:18a8:b0:3b9:55a:9d0c with SMTP id ffacd0b85a97d-3c0e00a1623mr1916338f8f.3.1755610096649;
        Tue, 19 Aug 2025 06:28:16 -0700 (PDT)
Message-ID: <341a61df-fde2-40a4-bab3-31a0d66a3d0a@citrix.com>
Date: Tue, 19 Aug 2025 14:28:15 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 01/16] x86/msr: Implement rdmsr_safe() in C
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
 <20250815204117.3312742-2-andrew.cooper3@citrix.com>
 <e3b37ba8-72df-403b-816d-3be9011b8203@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: <e3b37ba8-72df-403b-816d-3be9011b8203@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18/08/2025 12:23 pm, Jan Beulich wrote:
> On 15.08.2025 22:41, Andrew Cooper wrote:
>> ... in preparation to be able to use asm goto.
>>
>> Notably this mean that the value parameter must be taken by pointer rather
>> than by value.
>>
>> No functional change.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> In principle
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thanks.

> However, having looked at patch 2 first, ...
>
>> @@ -879,14 +879,14 @@ static void intel_init_ppin(const struct cpuinfo_x86 *c)
>>      case 0x8f: /* Sapphire Rapids X */
>>  
>>          if ( (c != &boot_cpu_data && !ppin_msr) ||
>> -             rdmsr_safe(MSR_PPIN_CTL, val) )
>> +             rdmsr_safe(MSR_PPIN_CTL, &val) )
>>              return;
> ... with this, wouldn't we be better off using ...
>
>>          /* If PPIN is disabled, but not locked, try to enable. */
>>          if ( !(val & (PPIN_ENABLE | PPIN_LOCKOUT)) )
>>          {
>>              wrmsr_safe(MSR_PPIN_CTL, val | PPIN_ENABLE);
>> -            rdmsr_safe(MSR_PPIN_CTL, val);
>> +            rdmsr_safe(MSR_PPIN_CTL, &val);
> ... plain rdmsr() here, thus not leaving it open to the behavioral change
> patch 2 comes with?

Yeah, probably.Â  At the point we've read it once, and written to it, a
subsequent read is not going fail.

I'll adjust, although it will have to be a rdmsrl().

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Aug 19 13:35:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 13:35:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086635.1444831 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoMUZ-0007mP-ED; Tue, 19 Aug 2025 13:35:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086635.1444831; Tue, 19 Aug 2025 13:35: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 1uoMUZ-0007mI-BW; Tue, 19 Aug 2025 13:35:11 +0000
Received: by outflank-mailman (input) for mailman id 1086635;
 Tue, 19 Aug 2025 13:35:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=h/XH=27=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1uoMUY-0007mC-Oz
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 13:35:10 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 52d5db63-7d01-11f0-b898-0df219b8e170;
 Tue, 19 Aug 2025 15:35:08 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-45a1b00797dso35759575e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 Aug 2025 06:35:08 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3c074d43987sm3781997f8f.16.2025.08.19.06.35.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Aug 2025 06:35: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>
X-Inumbo-ID: 52d5db63-7d01-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755610508; x=1756215308; 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=9EgTcG7/uKM2WDnvAcInXhfpZXjhAedZwGtEHy2kLgY=;
        b=AA0EK+CnrMrZ1nyG8pCIguul73K+4+zdC0d3o1sHhiQ04GbvTTpHfJwTWTJ8NA3rCI
         6XhtYTBqMrA2x8V18aIuKvPNr6bj3nB9fD9tlEz6r0j3LVT230Tec/yTHnULR9ZULibc
         +XRtxkYiyF9mfNqqUq5WL/6fAK2a+SAVg/yf8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755610508; x=1756215308;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=9EgTcG7/uKM2WDnvAcInXhfpZXjhAedZwGtEHy2kLgY=;
        b=uJXVmUN05Vzg4MjJGJStiL6Vwv6Mlr4gxuO8/Q8zNLFu2RUPmK1HnWnBYOk/Y/oYuY
         olk69/wZHyc74fVA3j8EFEUpsFm9IVL7pJniv5X3yhz+vrjOWrb2ueCSVik0o/eJIJ3t
         zkEpnViI5bcAm7zJwqfI+o3PQw1B7TxTr/c7Nv+EuMn9UnDRn+7K1BiVBJiTxrNJ6VBX
         c7i7+WB3Vao02HxCZPPD4y/jlyVsQS9InSz3prfIfWILYIoRcVZMA3eRP4CFvsCYU4cC
         UESgHBOSqAWdxUdX0LZrtSH4fL7cdqElhBbVfrdyhNuu5IVH60TrXhAhxwC+fsxmV288
         l9jw==
X-Forwarded-Encrypted: i=1; AJvYcCWfchG4TECVlHseFEcarDiajhIJb4bVZUvXfhElmRwcCW4BblhEtyEdtv3+qmHev8+TmZeVpia5YSg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzQvQkxVuQ3Bc0xHJMY0MMLxCs3gisZzt620OYfCf8OCLHMfVng
	vw2hBLL45kz8EKFm73e53wlJy2JDBU57caW8bntbRDJvW3LlGjhvFASBtTDDyo47wWeowTv8eEo
	SKUOr
X-Gm-Gg: ASbGnctDmZJW3DTa94TK9A56MS3FNdmx0Rr65ktqvjBGkuc43a5GMhWS3YstXPv9MhU
	MbSQWgb5u1b891tGaUZ2CF11MZ0bfDqZGThjUs3NhkDHncjIpzv4UPmLwPlnXnCNX76gbQDdGmS
	3FjTbZMMAqWuvcSGkZ1eOxEsbpR3r5nBMiaVx/RDYk7vjwyMYBeUafMucFhzPk3ogxKPh7of2Zw
	538FbndTQXTPTRCRPr65LizjRGwkj73c808Kn55KY0XjX1aoGQsaeSgSokBvilj49ErYdi4YnBZ
	QOB1w+IJl4hsgp9zKiBMO1KcOQ9STg/1qurpXOQdmS8sKgjO/LWyTaadHcF06KPi6WZWC20N3He
	LmUngeiNNCeU7aghjmutRmL0OPgcdFHBCjyJQRicNZK3u7yLye7dp77d1K3Y/lQ2xT4Sc
X-Google-Smtp-Source: AGHT+IEgdSFCVnKWbi8Axj4yu+flJjG0+4b8qZiHARMN6Jm8+3+UQn+9PBz74KniJhqRbIebtBEjDg==
X-Received: by 2002:a05:600c:1909:b0:456:1d93:4365 with SMTP id 5b1f17b1804b1-45b43db65afmr23680345e9.5.1755610508024;
        Tue, 19 Aug 2025 06:35:08 -0700 (PDT)
Message-ID: <a29ecb41-1581-4102-a9ad-6768380484bc@citrix.com>
Date: Tue, 19 Aug 2025 14:35:06 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 01/16] x86/msr: Implement rdmsr_safe() in C
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
 <20250815204117.3312742-2-andrew.cooper3@citrix.com>
 <e3b37ba8-72df-403b-816d-3be9011b8203@suse.com>
 <341a61df-fde2-40a4-bab3-31a0d66a3d0a@citrix.com>
Content-Language: en-GB
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: <341a61df-fde2-40a4-bab3-31a0d66a3d0a@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19/08/2025 2:28 pm, Andrew Cooper wrote:
> On 18/08/2025 12:23 pm, Jan Beulich wrote:
>> On 15.08.2025 22:41, Andrew Cooper wrote:
>>> ... in preparation to be able to use asm goto.
>>>
>>> Notably this mean that the value parameter must be taken by pointer rather
>>> than by value.
>>>
>>> No functional change.
>>>
>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> In principle
>> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> Thanks.
>
>> However, having looked at patch 2 first, ...
>>
>>> @@ -879,14 +879,14 @@ static void intel_init_ppin(const struct cpuinfo_x86 *c)
>>>      case 0x8f: /* Sapphire Rapids X */
>>>  
>>>          if ( (c != &boot_cpu_data && !ppin_msr) ||
>>> -             rdmsr_safe(MSR_PPIN_CTL, val) )
>>> +             rdmsr_safe(MSR_PPIN_CTL, &val) )
>>>              return;
>> ... with this, wouldn't we be better off using ...
>>
>>>          /* If PPIN is disabled, but not locked, try to enable. */
>>>          if ( !(val & (PPIN_ENABLE | PPIN_LOCKOUT)) )
>>>          {
>>>              wrmsr_safe(MSR_PPIN_CTL, val | PPIN_ENABLE);
>>> -            rdmsr_safe(MSR_PPIN_CTL, val);
>>> +            rdmsr_safe(MSR_PPIN_CTL, &val);
>> ... plain rdmsr() here, thus not leaving it open to the behavioral change
>> patch 2 comes with?
> Yeah, probably.Â  At the point we've read it once, and written to it, a
> subsequent read is not going fail.
>
> I'll adjust, although it will have to be a rdmsrl().

No.Â  That would introduce a bug, because this path ignores a write error
too.

There isn't actually a problem even with patch 2, because of the how the
logic is currently laid out.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Aug 19 13:52:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 13:52:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086648.1444841 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoMlJ-0002ig-UX; Tue, 19 Aug 2025 13:52:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086648.1444841; Tue, 19 Aug 2025 13:52: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 1uoMlJ-0002iZ-Qs; Tue, 19 Aug 2025 13:52:29 +0000
Received: by outflank-mailman (input) for mailman id 1086648;
 Tue, 19 Aug 2025 13:52:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=h/XH=27=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1uoMlI-0002iT-OS
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 13:52:28 +0000
Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com
 [2a00:1450:4864:20::329])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bd4f3ec9-7d03-11f0-b898-0df219b8e170;
 Tue, 19 Aug 2025 15:52:26 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-45a1b0bde14so28704735e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 Aug 2025 06:52:26 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3c074e38d7dsm3782419f8f.26.2025.08.19.06.52.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Aug 2025 06:52: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>
X-Inumbo-ID: bd4f3ec9-7d03-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755611546; x=1756216346; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=7swxEesY8TTAbthc0zToAK4jgbEeaVJCTFFGLivNJno=;
        b=Zfd5vXI7ChUDv7DQpJXXjC7TjbsZkVxaKYNcjAciWbaV4lUSBPQ9hrGiosl3WHZOVp
         arQ95pp1IOR9sbNBog1sXJNU8TS4+T3EkQ3h+3mG8rWk8MEcjPbBi5NwNN0bg47DbGH4
         +pV+Fzij5ZeBj57f+/VOdBnwhY3Y4pMTKMs5k=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755611546; x=1756216346;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7swxEesY8TTAbthc0zToAK4jgbEeaVJCTFFGLivNJno=;
        b=l/uoP+/HpLeuYxGrpmuUqyHoctvnDUTO/ssVpiykPPhUS2Caq7s95we9p3KQJXBrR2
         RgYaH3o3UCDUEY1BnFGmq9z3IS5oYK8ohh9h9+/37AigU4yF/D/BnJORVGXs8UTZupDQ
         WPRgrJDJuyaOUE5x3Ke9aHcTMbpaSNnhsq7nJtkmryDFyJNnLUn+/eCyoW1S1LHHQg8S
         uaK3ZpVHeRRkSEJTFCQxehT0HdhTIMsosqoyctrss+3lDfSVesDpkkwkDeMaButrRLch
         6SNNAPzABmGNec6xilDB5u0/7L3/VpDbHflFPeIJuWF7Oi2UJlYEOZOHPJwafHZUet8x
         0p4Q==
X-Forwarded-Encrypted: i=1; AJvYcCW3lM6w8DyV1FsHqkDv3Yf/NzocKw3o8FxoCLeZbbx0CZomXLRLljiIJ47EaXg5AoH9SA2C/+q81dI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxsGaUmM21s1lxdgOLnbxm6kJu7t4zISmivjARnwvrPTSkkjBCO
	qmp3JJW8MY93c1F9vKvySMkbczEYF+1y7MFSlVGd317IOGWVAYNmQo1XsJpBC2xnNzA=
X-Gm-Gg: ASbGncshlGG/opRpjDgftrJCw0PrFrSyIiiQrBvd3X29AuoQqzmjl9LFTB9VHnUgtBO
	FNjDiNKijtRLFWnpFfIF4Cu+Jkjitcbr3l27SuucMZve2/QmZclww7ZZY1DBaVTOmFUrxEWL6c7
	5DjgQfmAoLPWVX12dlnZfL3iwfzun+RyouwwkBNhgTcHWE1duDEMV5CfyBbVtx4nitvo42q2n5W
	UsNjGDkWgPNIfatI67KGOeeCHtVvQ5XuvmiKHUofiZbqIsFRQSxPsTXgdYE/mWhe4iBz6JhMeEa
	/aPPucWwytvtq+UuiNWMeu91dNxTPFgM3XkqLIjF9xTh6ztSATiuTE64M7x5Aak6BMlx5HPUfvF
	JLrTD/U7Gj2kjRIP9GFDmyybiDSsV8TJvLg18RFnVfouH8YXQ+2nC0w4JenYcaBPdj6LT
X-Google-Smtp-Source: AGHT+IFq9rV/MMRVD6xuIENbiUP3FVASr+/aumZjUU5RrQeGaK8UN6jDZ2fhbtTYzDR5yvuC/i2i2w==
X-Received: by 2002:a05:6000:4287:b0:3b8:d955:c598 with SMTP id ffacd0b85a97d-3c0eca48acbmr1603800f8f.30.1755611545555;
        Tue, 19 Aug 2025 06:52:25 -0700 (PDT)
Message-ID: <7b836f06-74ab-4588-8aeb-d0105b54be91@citrix.com>
Date: Tue, 19 Aug 2025 14:52:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 02/16] x86/msr: Rework rdmsr_safe() using asm goto()
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
 <20250815204117.3312742-3-andrew.cooper3@citrix.com>
 <aa57cc7c-c659-4949-aaed-4484ead54ffc@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: <aa57cc7c-c659-4949-aaed-4484ead54ffc@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18/08/2025 12:27 pm, Jan Beulich wrote:
> On 15.08.2025 22:41, Andrew Cooper wrote:
>> ... on capable toolchains.
>>
>> This avoids needing to hold rc in a register across the RDMSR, and in most
>> cases removes direct testing and branching based on rc, as the fault label can
>> be rearranged to directly land on the out-of-line block.
>>
>> There is a subtle difference in behaviour.  The old behaviour would, on fault,
>> still produce 0's and write to val.
>>
>> The new behaviour only writes val on success, and write_msr() is the only
>> place where this matters.  Move temp out of switch() scope and initialise it
>> to 0.
> But what's the motivation behind making this behavioral change? At least in
> the cases where the return value isn't checked, it would feel safer if we
> continued clearing the value. Even if in all cases where this could matter
> (besides the one you cover here) one can prove correctness by looking at
> surrounding code.

I didn't realise I'd made a change at first, but it's a consequence of
the compiler's ability to rearrange basic blocks.

It can be fixed with ...

>
>> --- a/xen/arch/x86/include/asm/msr.h
>> +++ b/xen/arch/x86/include/asm/msr.h
>> @@ -55,6 +55,24 @@ static inline void wrmsrns(uint32_t msr, uint64_t val)
>>  /* rdmsr with exception handling */
>>  static inline int rdmsr_safe(unsigned int msr, uint64_t *val)
>>  {
>> +#ifdef CONFIG_CC_HAS_ASM_GOTO_OUTPUT
>> +    uint64_t lo, hi;
>> +    asm_inline goto (
>> +        "1: rdmsr\n\t"
>> +        _ASM_EXTABLE(1b, %l[fault])
>> +        : "=a" (lo), "=d" (hi)
>> +        : "c" (msr)
>> +        :
>> +        : fault );
>> +
>> +    *val = lo | (hi << 32);
>> +
>> +    return 0;
>> +
>> + fault:

Â Â Â  *val = 0;

here, but I don't want to do this.Â  Because val is by pointer and
generally spilled to the stack, the compiler can't optimise away the store.

I'd far rather get a real compiler error, than to have logic relying on
the result of a faulting MSR read.

>> +    return -EFAULT;
>> +#else
>>      int rc;
>>      uint64_t lo, hi;
> ... the same being needed here?

Fixed.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Aug 19 14:33:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 14:33:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086662.1444853 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoNOU-0008Db-T4; Tue, 19 Aug 2025 14:32:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086662.1444853; Tue, 19 Aug 2025 14:32: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 1uoNOU-0008DU-QF; Tue, 19 Aug 2025 14:32:58 +0000
Received: by outflank-mailman (input) for mailman id 1086662;
 Tue, 19 Aug 2025 14:32:57 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1y2Z=27=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1uoNOT-0008DO-8M
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 14:32:57 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 655eb5cd-7d09-11f0-a32a-13f23c93f187;
 Tue, 19 Aug 2025 16:32:56 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by AS8PR03MB9366.eurprd03.prod.outlook.com (2603:10a6:20b:57e::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.24; Tue, 19 Aug
 2025 14:32:53 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9031.023; Tue, 19 Aug 2025
 14:32:53 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 655eb5cd-7d09-11f0-a32a-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=pwutyx1d5zZVTBqaJvyOSpAmjS6J88EP48XNSy/uQ0BB+cF4u9EXkRaBjl5POJ67Em9QpE8nsxRiYeYLpvHrPcQekeYPIDj8rDOHQ4InELmxn9TzOymJyWJDuzpAIXolTgYprpCGeROagylV/8Gh/LeSKLAKLa5wju8Lgh+NYoJlyIBUydwi/oMQDMPBcxdszWV1uD7lkglsA4LBu8ESZPRElbfHqXGtTxXA6DIgjCFcyvosVt9xlvy6n4BVfd3lPfyNXDWQeEteRk1fGzMBaSKTKf19P09T6P1kZIYupzmSAPNQTMk8wiGCXv5krB7aupCFxQ0WjOuhRO1xAW0OYg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=t9valugcgQlnsK2Qp7SaIZUvpnlYPMRUBOINW/eHfTk=;
 b=dwyDdPqe6owQhasrFH3/1FyJx3j+x2C9ywh8+aZEbzKvZEda+yMomsblESu8JyGEmbrLcSvvOLfxvARqhvsMfPMyEII9LwBzwruo87/eE+3+NqPfbM1A8I7g4rtMNi+YXpRFngxMNqeUABot5TrS/VAbYKpaKVG1gOKtknoclbnAe4BsBTg9sOisqvAZqrpM8RKs7foz0ndBcnbphVJI/WIhVr65Rmr+03/J4k9WC2wmTzq+HqCO/u50gWVDrW/uixCD5RuYMqp59tYmQnNAZQdtjJN/jPM9z7dA1dqlzg5+jPp/g5d44SoDtu8u26X6DGE5bbP5MW6Kn62lrsfMcQ==
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=t9valugcgQlnsK2Qp7SaIZUvpnlYPMRUBOINW/eHfTk=;
 b=JKZbkTiUCF8Q+GKBPMhhaDmb8WnoKRfCio2Wi4sKqyMH7VkWGMKxgm64wwbELT14p1LVQRE2R9pQHGslUF82qIMZLHQYR6p/W09Io9iXjRffDRWgzI67x0S02CHO7u6021bxcfDqkhMev75mBAy1nkMCp5Fu2+S6YIBJXm1dWuFhsAuH8VN85bn+tKXSU+BoSgaPxUC0mbcNSFLCL4zMarNKmMTdHAgs/cIR0uM9HwJfZnlSQq37cUGZAsn2In+J26iuEHS0Gess2OyCVCCV2w7E0fU5DnlBKwAk7ygDgT93NdUJxOGCqs/2bH2uDNoo++kl5s8zRuU6gtPa6gfcsw==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Nicola Vetrini <nicola.vetrini@bugseng.com>, Doug Goldstein
	<cardoe@cardoe.com>, Stefano Stabellini <sstabellini@kernel.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien
 Grall <julien@xen.org>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] misra: add deviation for PrintErrMesg() function
Thread-Topic: [PATCH] misra: add deviation for PrintErrMesg() function
Thread-Index: AQHcEQr89D/JS5GCrUaBbORYWk1wAbRp920AgAASxgA=
Date: Tue, 19 Aug 2025 14:32:52 +0000
Message-ID: <7bd11401-bd8d-417b-90d5-e52a501211ed@epam.com>
References:
 <5944d87aae330246b7dab6eebd04d5d71a7d7e8f.1755608417.git.dmytro_prokopchuk1@epam.com>
 <37c61f78-b723-4611-b9d5-f915f72f36e8@suse.com>
In-Reply-To: <37c61f78-b723-4611-b9d5-f915f72f36e8@suse.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV2PR03MB9572:EE_|AS8PR03MB9366:EE_
x-ms-office365-filtering-correlation-id: 07152927-c342-4288-0bf5-08dddf2d47ec
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|42112799006|7416014|376014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?bU1tQjRzNk9BcXhyWkJZYTN2KzhNTzhFbnFIUklrNE95RTQ4Z21KWHI0WmNI?=
 =?utf-8?B?NDVxODk3Z0w0ZjNsSEFIMVo1bGdOVFpWa0MvZW43eDVHRkFoOGh3VFR0RW9T?=
 =?utf-8?B?SjlCb3pZazBxMzVZalpyWXkyM2lyMElEN0xrNjM3Q3ZOMExUaEs0djZiUUpK?=
 =?utf-8?B?K2NaaERucTZ6ZzBUMXVCYjFiaTdyUGFNZzF4QWYzUjNIclNPQU9uWEJiaC95?=
 =?utf-8?B?blZZMUZoWFh4TXpMdURhTUo1T0JGNWVud2xkNGlKdnZyS1VtY2E0ekNXR1Vs?=
 =?utf-8?B?UWN2UFdCZ2FJUC9aeG1Qbko2bTkzMGtaaER0akI3dStNMzFmY0t4ZlVzYUMy?=
 =?utf-8?B?QnBIQjBnZHZsVFRyZExsY0dBMWp4UzNkY1hiWmRzaGVzR3Z5M0d1cng1Ymhq?=
 =?utf-8?B?WmY1c0JiNG9Mck5vdUMwNlpSM005VHgwVndLbW1lN21qaFRCUEd6M2tDdGRy?=
 =?utf-8?B?YVlsandzOWtHOS9jSW0ybjFSdXdBYXlRa1Uxc1pXaWc4bzNwNGVTZktSSExE?=
 =?utf-8?B?YTdUM0ZQMGluS3JqVnRsN1ZnT0syYUJFenhDZVJtMFYxZ1BZTnc4KzhjZ2pT?=
 =?utf-8?B?TGlGc2E2NzJkNWJKWHdQVnM3a2VaUVhOaVF3anNCNW1YVm9ER2N4aFR0bVg3?=
 =?utf-8?B?ME9sNGJuZEdNZVF6VlVuVHVvMXdMdHA0V1FRUFpqKzFVVXBGUGJUY0dZbEla?=
 =?utf-8?B?UW9oaUpPYUdVbnNRNlpFcGFBSXFHWlNjYkltd2dENjlkSExrd1p5VW5SSURk?=
 =?utf-8?B?aWdzVWhxWngyQnhZQ2xITUFCTGdTcGdDQzdPSWFXdXV6dlIrWjQrZ25zVFNU?=
 =?utf-8?B?elNQK3NVKzRzMTVaYzYrSXpmSnJxTXdkaTI3ZzBrNjFrM3VyME5nUUtiemxi?=
 =?utf-8?B?N1dleStFelI4SVp2QzEyalZzdjRJK1NvY25NdnUvOEJpandaSXRXeStpTVla?=
 =?utf-8?B?QjFrS0dhQkx3Sjdvd0EzVlpXeXZ5QVl6dXRmVmhVWTZHN0ttNng2V3NZWGpa?=
 =?utf-8?B?V1JaT1JpOXBnVEZvMWI1VmNmZUZEVUxxcmdibVJXeHNyLzJKbjk1VXY5N1Z0?=
 =?utf-8?B?SkdNeEtaaU1EMm8zbTJqZ2E3bUF1VzJlVFM1T0sydVBCcG03WWRIVkxZQUpv?=
 =?utf-8?B?SFZyTEQ5djNQRTVzZDUwLzRlSG5OVm4weVhDOExxUFp2ZlBkNHY2UmU3c3Uz?=
 =?utf-8?B?UFJ2Y1F2Nm16MFlZQWJiZUZKVDA3RmV4czc5emVGcS9ia0xTSS9VNk4zWEMw?=
 =?utf-8?B?UldRd3dYVmdXMmZ5OHZZRVdTOVFVam9DL2lEaVBjQlhmb0ZVSkxldDFlb2x0?=
 =?utf-8?B?RHZaY00yY3dDSzhPVHYwaTdoUzdvVS96WTd1VlJKcExsMm5BK3BNKzd5QTgw?=
 =?utf-8?B?YnpFZGYxTFdwSXlVd0VINFV6ZHpUcFZZMWxNdjNuMk52UkxmenhjcHZncU5F?=
 =?utf-8?B?WDc2WWpmaTd4cVdhTkRXYUgweDVzb1NtY0hEcHFNSGVzSWN4Sk5aS2dLTU9I?=
 =?utf-8?B?WkJBekZId3JQSTRjSnVTUXAwcExxT3FDdzVPTVo5bHRJWG43MEhvQUR1L1BC?=
 =?utf-8?B?WFJ3dFJicTl4ZTIzSTNxa1ZGVjA4YWdoWExKUmhlZTFaMkJuaGJYNlBBNzJE?=
 =?utf-8?B?ZndxalI0Q2ZieVFwNk9WQXBmRWtnKzFYV3NYRnR1d0Z4emJISEVwTTZxVlFq?=
 =?utf-8?B?RUxDbFhpYXZZUURwNlJlMUlHbGdqQmRBazJEYmYvMUg1Q0d0SVIvcTMyZFV4?=
 =?utf-8?B?KzJqZldkT3RsYlZIMEt5VlNXcnBiTXFabU1abnh1WDl4ajlJT29qaXNzMlIr?=
 =?utf-8?B?bjJkbmppSnJmNFlZamhUVWpPbXZzUGVaK25Yb3F1eDc5c01qeHE2Slhyd2R5?=
 =?utf-8?B?VVhJOFZ2SExORUNGMlhpQUFhZEpUbTVNTUd2T2tPVmowaHEwZ0hXUlNSckM0?=
 =?utf-8?B?eTJUVStEVmNWKzdZbnhNenN2V1RLWXIxazJRaE5kVE1Lek1iKzNpWHpHT002?=
 =?utf-8?B?WE54NlZLeDVnPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(42112799006)(7416014)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?Zi9lTTN3MU5ES3psaUdPUnFYa2FOZlM1Q3JLNWVpQXZSRThIM2FXZFlnWTNx?=
 =?utf-8?B?MGQ1VExXTk9KbmxEWlhWS1c2QVhIWGFVUmg2SW9HNUxtQ0xJVTFkak56aUVk?=
 =?utf-8?B?MmdWa0p2RFJiQzNrMEFvMTNNSEJOd0ZhbFlEYWZINEFUanVlY0M3SU9HKzlp?=
 =?utf-8?B?WmdZRENjNDNkOXdnNUZVSVdUMUdhUS83N1BqV2FURVowUE5ESnNRWnRlL3FH?=
 =?utf-8?B?NzA2YWcwd0p1cUh5UnUwMzkwM3FEc3hXNnorOE1tYXdFZC9OSWtXS0xvaEQ4?=
 =?utf-8?B?dWpCQ1dFU3JOV1B1eG9BRDdJZHRKam1UWkFweUNIWE01TDQxcHZzQVBrZmhh?=
 =?utf-8?B?ZjNZaWJUeUpUKzRMMG1NYVJQU1U1ZzRGNnZ5RWxtS1ZRU1kxN01SN05jN0xV?=
 =?utf-8?B?QUJiUWVTS3I0R0NnRERpZ2pVZ2tvZndFcHZzY0lwb0hXRm0yWFFTRUlWOFhE?=
 =?utf-8?B?SUsraVpsYkFuUk90WFUzQ0wrR1ZUbDJtd01OZi84UG4vckFVWjdJZWt2Qmta?=
 =?utf-8?B?eTlmdlVyc3RzazNvQnJqb0lEV2o0MjlRZFYzelpuVVVCNjhNUTZ4ZllBM1Qz?=
 =?utf-8?B?amI3SDZqQTN4QitWRFJWTS9rM1JZWnpPK1o5ZldzWG9tTGtycm5qaFd0UWxu?=
 =?utf-8?B?Y3plYXBCRmhaRGNibWZ0RWRtbHpjL2dsQVZzaFhKWlVDRHM1UU9xTXJXdzNK?=
 =?utf-8?B?Y2ZwSlhwQXFERUx2aWI1WnhhM0hzaVFBdHRWM0h6Z3JaZVgrRnA3eFBnZGpV?=
 =?utf-8?B?bktBMVBmTUVmak9mTG1KTHJxck9CQ09PY1lFQUVhTFo2YW9xZU5oOVQxKzRF?=
 =?utf-8?B?c0V6eW5WT0pCSC96bTFKemhERmhHNjAvWDV6TXVsa1VvVGp6MDFVNHF3TTVk?=
 =?utf-8?B?eVZuMXJGdjlydmZjSnlKUyswbjdaWXJCRVZvRGE2alVHYnArZ0hKQVZkSjM1?=
 =?utf-8?B?UEFCTGYyWmltVmsxcE5hUjhlcEdyNUJsS3hnS0RnMi9JMWFVelZ6TWNlU0dl?=
 =?utf-8?B?M01HcHNMei8rcnJPVlZOUUR3L2xCeTBxalZYNVJ5cjdPYWpQUmNXYkZMN3JG?=
 =?utf-8?B?NE5tb0diZGdsNWxza2RtNklvcU9KQ01wN0hVR24zRUNxcXlqZGY4ZWVoRFhz?=
 =?utf-8?B?c3VWSVZaTDFOLzdWRHFIVFlvb1lxRnQwWDBjYm1xb2JNWEFFY1JOYjJHMU94?=
 =?utf-8?B?Q0tIcGYyWU00K2VMWXZwQVcrdGRxRU5HTHZIYkVxZHZhbHRadHRteXpXckJt?=
 =?utf-8?B?czFzb2xXNFZmMTNvNWJkem5sWWExMnlJcHcxT292Tk14L3YzdlBqUFVsaXhR?=
 =?utf-8?B?Y21mUlNuQ2VUWSt4Q2oydXhXS3YxeTRoMTcvN0o2N1ZGdm1xSXBTU0t4OFJn?=
 =?utf-8?B?MGgxM1FlVjJKcjV6R1VzYWVqd3EreEoveWlqaW15TUFCMkVJdmxPTXRDR0l4?=
 =?utf-8?B?dzVyTk0vTWg3VWx3cjJ0SS9aWWdwVUhBd2luSU9qcGdlSURQKzltTzVmUnhq?=
 =?utf-8?B?R0R1WkY5QjdHem1HWGdYMVhielRoc25ZcHI2WlNtNHFKQlBOOG1SMFBNOE9l?=
 =?utf-8?B?WkhyeUdiK2RMbVBnemVCdmc5YVZTMGNXVGo4RFNvQXpaZG52VldYY202ZlBP?=
 =?utf-8?B?aSswQVBpLzJ2MFFSc1VxbjI1ZTN2aUlkbTZmU2tYS1NXY3RUdGxSS0RXckpa?=
 =?utf-8?B?dUYzSzNpWm1DdVpPZE1rRldRYmN2K1FQRndralVtcGd0b0hFK01KUlIrcTE0?=
 =?utf-8?B?MTRRa2hMMFlXbkFiaU9WWWM1UHJJQUJqU2lycGw1UWdLSTJtWnhmNFVBTzY3?=
 =?utf-8?B?VjB3b1RMV2xSQ3g0YldVK2QxeGJCSEFnSkRyV05tRklKVHhEc1ZTK2J6WTVa?=
 =?utf-8?B?Y2NLdEsxZWJ4QTN4M1YrcXh5aTQ4ZnQ4a3kzRTVWeXljQUorcWt5KzRyamJD?=
 =?utf-8?B?eU4rSXlyZW9OY0xjbldNKzFZelBxaHlhazlVTEJjbjJzdU5zNHNmYjRra1NY?=
 =?utf-8?B?SmpUR2t0RXEvUzNWREYzZHpCRjJGNW1PYVRLWmJ6UjhCWVZMeXdvYUVRcDhu?=
 =?utf-8?B?b3FtMXhHVzJKam9oR210c3hCaFMrVjlxZUN3ZTljTzRXRy96TjVrL043cSsx?=
 =?utf-8?B?dmhUTlVRaUVpcklZVkM0K0xtYWdnWm1PWUVUMzhiRXhVdGVzMXF0ZCtZTVAw?=
 =?utf-8?B?UWc9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <2B7C33C96BEC7A44BE89DB2D7DB09BAF@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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 07152927-c342-4288-0bf5-08dddf2d47ec
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Aug 2025 14:32:52.9467
 (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: eElj+Jrumz7OALwAuRE7NfO1ZGFMEcdpZ8q5tk5129cL9LLeRX3aaT2dn7srN9XdLHS3nPasDuCovrNp9kjVzAU3gwB7U+b2zGPs3SPM6gU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB9366

DQoNCk9uIDgvMTkvMjUgMTY6MjUsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAxOS4wOC4yMDI1
IDE1OjEyLCBEbXl0cm8gUHJva29wY2h1azEgd3JvdGU6DQo+PiBNSVNSQSBDIFJ1bGUgMi4xIHN0
YXRlczogIkEgcHJvamVjdCBzaGFsbCBub3QgY29udGFpbiB1bnJlYWNoYWJsZSBjb2RlLiINCj4+
DQo+PiBUaGUgZnVuY3Rpb24gJ1ByaW50RXJyTWVzZygpJyBpcyBpbXBsZW1lbnRlZCB0byBuZXZl
ciByZXR1cm4gY29udHJvbCB0bw0KPj4gaXRzIGNhbGxlci4gQXQgdGhlIGVuZCBvZiBpdHMgZXhl
Y3V0aW9uLCBpdCBjYWxscyAnYmxleGl0KCknLCB3aGljaCwgaW4NCj4+IHR1cm4sIGludm9rZXMg
J19fYnVpbHRpbl91bnJlYWNoYWJsZSgpJy4gVGhpcyBtYWtlcyB0aGUgJ3JldHVybiBmYWxzZTsn
DQo+PiBzdGF0ZW1lbnQgaW4gJ3JlYWRfZmlsZSgpJyBmdW5jdGlvbiB1bnJlYWNoYWJsZS4NCj4g
DQo+IEknbSBkaXNhcHBvaW50ZWQuIEluIGVhcmxpZXIgcmV2aWV3IGNvbW1lbnRzIEkgcG9pbnRl
ZCBvdXQgdGhhdCB0aGVyZSBhcmUNCj4gdHdvLiBZZXQgeW91IHNheSAidGhlIiwgd2l0aG91dCBm
dXJ0aGVyIGRpc2FtYmlndWF0aW9uLg0KPiANCj4+IC0tLSBhL2F1dG9tYXRpb24vZWNsYWlyX2Fu
YWx5c2lzL0VDTEFJUi9kZXZpYXRpb25zLmVjbA0KPj4gKysrIGIvYXV0b21hdGlvbi9lY2xhaXJf
YW5hbHlzaXMvRUNMQUlSL2RldmlhdGlvbnMuZWNsDQo+PiBAQCAtNDEsNiArNDEsMTAgQEAgbm90
IGV4ZWN1dGFibGUsIGFuZCB0aGVyZWZvcmUgaXQgaXMgc2FmZSBmb3IgdGhlbSB0byBiZSB1bnJl
YWNoYWJsZS4iDQo+PiAgIC1jYWxsX3Byb3BlcnRpZXMrPXsibmFtZShfX2J1aWx0aW5fdW5yZWFj
aGFibGUpJiZzdG10KGJlZ2luKGFueV9leHAobWFjcm8obmFtZShBU1NFUlRfVU5SRUFDSEFCTEUp
KSkpKSIsIHsibm9yZXR1cm4oZmFsc2UpIn19DQo+PiAgIC1kb2NfZW5kDQo+PiAgIA0KPj4gKy1k
b2NfYmVnaW49IlVucmVhY2hhYmlsaXR5IGNhdXNlZCBieSB0aGUgY2FsbCB0byB0aGUgJ1ByaW50
RXJyTWVzZygpJyBmdW5jdGlvbiBpcyBkZWxpYmVyYXRlLCBhcyBpdCB0ZXJtaW5hdGVzIGV4ZWN1
dGlvbiwgZW5zdXJpbmcgbm8gY29udHJvbCBmbG93IGNvbnRpbnVlcyBwYXN0IHRoaXMgcG9pbnQu
Ig0KPj4gKy1jb25maWc9TUMzQTIuUjIuMSxyZXBvcnRzKz17ZGVsaWJlcmF0ZSwgImFueV9hcmVh
KF4uKlByaW50RXJyTWVzZy4qJCAmJiBhbnlfbG9jKGZpbGUoXnhlbi9jb21tb24vZWZpL2Jvb3Rc
XC5jJCkpKSJ9DQo+PiArLWRvY19lbmQNCj4gDQo+IEkgZG9uJ3QgdW5kZXJzdGFuZCB0aGUgZGVz
Y3JpcHRpb24gaGVyZSwgbm9yIC4uLg0KPiANCj4+IC0tLSBhL2RvY3MvbWlzcmEvZGV2aWF0aW9u
cy5yc3QNCj4+ICsrKyBiL2RvY3MvbWlzcmEvZGV2aWF0aW9ucy5yc3QNCj4+IEBAIC05Nyw2ICs5
NywxMyBAQCBEZXZpYXRpb25zIHJlbGF0ZWQgdG8gTUlTUkEgQzoyMDEyIFJ1bGVzOg0KPj4gICAg
ICAgICAgWGVuIGV4cGVjdHMgZGV2ZWxvcGVycyB0byBlbnN1cmUgY29kZSByZW1haW5zIHNhZmUg
YW5kIHJlbGlhYmxlIGluIGJ1aWxkcywNCj4+ICAgICAgICAgIGV2ZW4gd2hlbiBkZWJ1Zy1vbmx5
IGFzc2VydGlvbnMgbGlrZSBgQVNTRVJUX1VOUkVBQ0hBQkxFKCkgYXJlIHJlbW92ZWQuDQo+PiAg
IA0KPj4gKyAgICogLSBSMi4xDQo+PiArICAgICAtIEZ1bmN0aW9uIGBQcmludEVyck1lc2coKWAg
dGVybWluYXRlcyBleGVjdXRpb24gKGF0IHRoZSBlbmQgaXQgY2FsbHMNCj4+ICsgICAgICAgYGJs
ZXhpdCgpYCwgd2hpY2gsIGluIHR1cm4sIGludm9rZXMgYF9fYnVpbHRpbl91bnJlYWNoYWJsZSgp
YCksIGVuc3VyaW5nDQo+PiArICAgICAgIG5vIGNvZGUgYmV5b25kIHRoaXMgcG9pbnQgaXMgZXZl
ciByZWFjaGVkLiBUaGlzIGd1YXJhbnRlZXMgdGhhdCBleGVjdXRpb24NCj4+ICsgICAgICAgd29u
J3QgaW5jb3JyZWN0bHkgcHJvY2VlZCBvciBpbnRyb2R1Y2UgdW53YW50ZWQgYmVoYXZpb3IuDQo+
PiArICAgICAtIFRhZ2dlZCBhcyBgZGVsaWJlcmF0ZWAgZm9yIEVDTEFJUi4NCj4gDQo+IC4uIHRo
ZSB0ZXh0IGhlcmUuIFByaW50RXJyTWVzZygpIGlzIG5vcmV0dXJuLiBXaHkgd291bGQgYW55dGhp
bmcgbmVlZCBzYXlpbmcgYWJvdXQNCj4gaXQ/IElzbid0IHRoZSBwcm9ibGVtIGhlcmUgc29sZWx5
IHdpdGggdGhlIHRhaWwgb2YgcmVhZF9maWxlKCksIHdoaWxlIG90aGVyIHVzZXMNCj4gb2YgUHJp
bnRFcnJNZXNnKCkgYXJlIG9rYXk/DQo+IA0KPiBKYW4NCg0KSSdtIGEgbGl0dGxlIGJpdCBjb25m
dXNlZC4NCg0KQXMgSSB1bmRlcnN0b29kIHlvdSBwcm9wb3NlZCB0byBpbnNlcnQgdGhlIFNBRiBj
b21tZW50IGJlZm9yZSB0aGUgDQoncmV0dXJuJyBzdGF0ZW1lbnQgKHdpdGggcHJvcGVyIGp1c3Rp
ZmljYXRpb24pLg0KDQpBbmQgY3VycmVudCBFY2xhaXIgY29uZmlndXJhdGlvbiAmIGRlc2NyaXB0
aW9ucyBhcmUgbm90IGdvb2QgYXQgYWxsLg0KDQpBbSBJIHJpZ2h0Pw0KDQpEbXl0cm8uDQo=


From xen-devel-bounces@lists.xenproject.org Tue Aug 19 15:43:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 15:43:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086680.1444864 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoOU4-0008Eh-9O; Tue, 19 Aug 2025 15:42:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086680.1444864; Tue, 19 Aug 2025 15:42:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoOU4-0008Ea-6T; Tue, 19 Aug 2025 15:42:48 +0000
Received: by outflank-mailman (input) for mailman id 1086680;
 Tue, 19 Aug 2025 15:42:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xm9j=27=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uoOU2-0008EU-Gc
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 15:42:46 +0000
Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com
 [2a00:1450:4864:20::62f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 25e959a1-7d13-11f0-a32a-13f23c93f187;
 Tue, 19 Aug 2025 17:42:44 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-afcb731ca8eso869250266b.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 Aug 2025 08:42: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
 4fb4d7f45d1cf-61a755d99bbsm2043621a12.3.2025.08.19.08.42.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Aug 2025 08:42: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>
X-Inumbo-ID: 25e959a1-7d13-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755618164; x=1756222964; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Byu7bXIVb45Oov0sVagEHTxO8RckbisdzWS29pw9r5w=;
        b=A27M5lttvfyFvV77ekZTucduP74hS6udidmyRwtSeJQUNNe4OXk8tj1aFBgfwxshs0
         jQNIKNrjfe6dXkpHj5URaLRccrzXqr1rUgMRjS2/ynmhdLzIADspedSPzIpAbFJGDmzI
         EQ2wWgY03LJ6SQq0bGrnyNI/4afnUpyXiKlv2MUD0+Tgygk1ifXdxa8RGTlDePtMa32+
         MDpWF87tyZIVl1iXUJZloSXG7yozcFGhmajT5U6BXUsMBaPbjgS3jaN18QugnY2TBmS7
         p4slD3s9HIkBcM0pVsCb2hnh36ahMis36658w1wU30Z5dvkAdFw9a/WFXeO6rEBP+Y5b
         8Sdw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755618164; x=1756222964;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Byu7bXIVb45Oov0sVagEHTxO8RckbisdzWS29pw9r5w=;
        b=iWCvt41LDnVTIg+Q5icMpcZrXb1B/SN0JgPsXjHWQZiBaO7PPnsvUVPAqGu6iHmiwh
         3d9SKEuZ4DFoD8WYO10P6VLYpD52jh+7cg+i73pRaVG9v57MES2ROU0kz6N8tYdzsl/C
         RCY6ay0vc49DwPw1Ifu3PkyelrRtuO16fkJD0xKkSstCqqctKSyVVNFshl5w8OjyeZDA
         VTOJme7jwS9yfGCj7YsUxPpzO7lSLg87z6sKrqhbpxqsExXEuB4DLlYY9UXBwZaLQtxS
         AUb/9HyiA3x1jqnJs5iJLT01cSCs5LVOPYaIuRr6WylnIufH0mYzuurF09lfKoWG8EAI
         JsIw==
X-Forwarded-Encrypted: i=1; AJvYcCW7ZEAVXYC7gtxlFx9ZHMZMdbKqce2mX+gPUhHNdEfp6vRo8NklUZDRyzLuxhKCyZSm/Q41Q/pAODA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwazRXqV0elrSIMd8DOYBh4FtACvt7GJiqFN5ZRHGuXgM2YdrZS
	oKcKtLlRn73U6O49NfCmkyLeLBEHsmAExO6FTdIIzo6/nVpSnk8gJnPynyzimFnTdA==
X-Gm-Gg: ASbGncsoO6BSMVPQEFi7HnBWiJuy2QQmMc6ZPJYUHOkth/ei3kKjBMFkhest7jkbDzn
	aLGM9NH7Qz60I+vx4otGCLRGAbFGpJvZyyVVsX7DYlsmr/b2Dlkys/B563iT7Jlam/EXdzsqwE3
	D8MncAybP4EOiDNcx2V5F1HGy6VG0XTQZv1G9FczsrQfnm8qe0wvFRvf79s5wO4yoR8laOZhf6s
	hhUykLbG+jGpjOWIsUs/cFbvkuOSolHobNIKY0+5B+oI1Gst7bR7gUemK52JqzBpX6bl4aFn3rD
	WrNb42MhGgbxDAK5xvYCsZSM+w1k7EcGfwG/u2VGZ7hfilS9N9rm2ik67OsAkzpKYj+lmsDINvN
	rt5axa58JpLD2P62tCa3uvm8sEFLm5rFfmdUjM7fedMBFBNcS7UMQzHJg/+6WNZqwR95yuIReDX
	XcSJ/20s+gHOIr18qugA==
X-Google-Smtp-Source: AGHT+IGZg26R3xyBU7LPujOPH6B/e7Kq8IPxL6kcr+o99Xyci5c4ZpG39uGW8Mg4AGhS0sMpIakaZg==
X-Received: by 2002:a17:907:7e92:b0:af9:709f:970b with SMTP id a640c23a62f3a-afddd1e8dffmr307819166b.46.1755618163726;
        Tue, 19 Aug 2025 08:42:43 -0700 (PDT)
Message-ID: <195b9a3b-c15a-4bf8-a0e4-2255ede95310@suse.com>
Date: Tue, 19 Aug 2025 17:42:42 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] misra: add deviation for PrintErrMesg() function
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <5944d87aae330246b7dab6eebd04d5d71a7d7e8f.1755608417.git.dmytro_prokopchuk1@epam.com>
 <37c61f78-b723-4611-b9d5-f915f72f36e8@suse.com>
 <7bd11401-bd8d-417b-90d5-e52a501211ed@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: <7bd11401-bd8d-417b-90d5-e52a501211ed@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.08.2025 16:32, Dmytro Prokopchuk1 wrote:
> On 8/19/25 16:25, Jan Beulich wrote:
>> On 19.08.2025 15:12, Dmytro Prokopchuk1 wrote:
>>> MISRA C Rule 2.1 states: "A project shall not contain unreachable code."
>>>
>>> The function 'PrintErrMesg()' is implemented to never return control to
>>> its caller. At the end of its execution, it calls 'blexit()', which, in
>>> turn, invokes '__builtin_unreachable()'. This makes the 'return false;'
>>> statement in 'read_file()' function unreachable.
>>
>> I'm disappointed. In earlier review comments I pointed out that there are
>> two. Yet you say "the", without further disambiguation.
>>
>>> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
>>> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
>>> @@ -41,6 +41,10 @@ not executable, and therefore it is safe for them to be unreachable."
>>>   -call_properties+={"name(__builtin_unreachable)&&stmt(begin(any_exp(macro(name(ASSERT_UNREACHABLE)))))", {"noreturn(false)"}}
>>>   -doc_end
>>>   
>>> +-doc_begin="Unreachability caused by the call to the 'PrintErrMesg()' function is deliberate, as it terminates execution, ensuring no control flow continues past this point."
>>> +-config=MC3A2.R2.1,reports+={deliberate, "any_area(^.*PrintErrMesg.*$ && any_loc(file(^xen/common/efi/boot\\.c$)))"}
>>> +-doc_end
>>
>> I don't understand the description here, nor ...
>>
>>> --- a/docs/misra/deviations.rst
>>> +++ b/docs/misra/deviations.rst
>>> @@ -97,6 +97,13 @@ Deviations related to MISRA C:2012 Rules:
>>>          Xen expects developers to ensure code remains safe and reliable in builds,
>>>          even when debug-only assertions like `ASSERT_UNREACHABLE() are removed.
>>>   
>>> +   * - R2.1
>>> +     - Function `PrintErrMesg()` terminates execution (at the end it calls
>>> +       `blexit()`, which, in turn, invokes `__builtin_unreachable()`), ensuring
>>> +       no code beyond this point is ever reached. This guarantees that execution
>>> +       won't incorrectly proceed or introduce unwanted behavior.
>>> +     - Tagged as `deliberate` for ECLAIR.
>>
>> .. the text here. PrintErrMesg() is noreturn. Why would anything need saying about
>> it? Isn't the problem here solely with the tail of read_file(), while other uses
>> of PrintErrMesg() are okay?
> 
> I'm a little bit confused.
> 
> As I understood you proposed to insert the SAF comment before the 
> 'return' statement (with proper justification).
> 
> And current Eclair configuration & descriptions are not good at all.

Not sure how that's related, but apart from this, ...

> Am I right?

... yes. Yet how is what you submitted here related to the issue in read_file(),
which may be addressable by a simple SAF comment (as you say in your reply)?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 19 16:20:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 16:20:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086700.1444876 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoP45-0004Oj-7u; Tue, 19 Aug 2025 16:20:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086700.1444876; Tue, 19 Aug 2025 16:20: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 1uoP45-0004Oc-53; Tue, 19 Aug 2025 16:20:01 +0000
Received: by outflank-mailman (input) for mailman id 1086700;
 Tue, 19 Aug 2025 16:20:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xm9j=27=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uoP44-0004O9-RW
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 16:20:00 +0000
Received: from mail-ej1-x62e.google.com (mail-ej1-x62e.google.com
 [2a00:1450:4864:20::62e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 59a052dd-7d18-11f0-b898-0df219b8e170;
 Tue, 19 Aug 2025 18:19:58 +0200 (CEST)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-afcb7a16441so853412866b.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 Aug 2025 09:19: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
 a640c23a62f3a-afded530ecbsm8446666b.102.2025.08.19.09.19.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Aug 2025 09:19: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>
X-Inumbo-ID: 59a052dd-7d18-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755620398; x=1756225198; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=D4XkkX6dw6jJEpGtQSkad40L9aUzB61QSIrr3o6QIV0=;
        b=CiBUeMMonFVrs7huzEfkqXZjns89deU9s5XlDJf4Q2248p1/i+6DGitsWHaEV6eFbS
         mD+cVufcP/S871s3uG8q9WlbA9DBwXvh1QVuHPiChXz97UBTiTp60Qb/1tZa92epOZ11
         Po29IH4XO/jEUynoRbGNF0NrffiCs82teoaS/Yzcd9bqYoGhDmpkdsxYDTtI74Fs9N09
         KyVZm3OolugXY0/599trpCvqjMlRdCeGjexEtf+J4iHqaaffSHOgA9PImEUuK6Rbm/JT
         Wcofyy4eMMy5PANQDqsMiIxYMEd8DD3tr166J+dXrDSSuZZpB/LIkit6bCaV34BATFc8
         NAQQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755620398; x=1756225198;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=D4XkkX6dw6jJEpGtQSkad40L9aUzB61QSIrr3o6QIV0=;
        b=jbiECN1aeH8cGXg+ISzmGa0NoTx9X9KU3cba4EQAoi8QENPVGIG19P9k2FKs831VRy
         cddy3NlTpr9lvOJTqObedJ60PPovzDuDuHuzGGBGqEZ6P5z5z2dsh9TPBWcWBajQiWgz
         m+Zdpg86Guc78v5q1MHx/jUfu/lJqhMw5mmrlvD/ek56Aa6cy4qRey2XfGLfIntDl4n/
         cRjnN3nNkdsWLyF265iu1krPQXwt0YoMMYyAE1klrOSSgTBVEbOxUd5sOg2TxE/UkHwS
         HYgXBx9+CbPParSrMMfFdP5V56V8putyB3Ltv35t6m3myh6aer8To5AqaO+X2lSAq12F
         qbNg==
X-Forwarded-Encrypted: i=1; AJvYcCXys8aptiDRoGgQ2boZqq59WMbNwb/du+uNhMouCLISRKhbtKNntkA/Tvvk0ja4xula4RDLXk9mvds=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz2ijlLrwIzzghoauhwZ7tpdUmKyMQydTSue6F8v22JWZww6fMt
	d4C1uC/aDDvnn10hlAm+U+Jy1n9yfn+oUaHhjUtfd0xmDEWrQaY2CfaSYkmWbGoy2A==
X-Gm-Gg: ASbGncsjpMGzS0czaieFGy1Z+NUe3HKzKYqdYnuK4TWK7DBwBPyt50t121VfCCQqpxb
	SQ9N5y8aMavZq1CQ7ZRjRkFQ4jbmwwlXh48aCxpfvF/EAZbmdkX5cNqz1F+egOOIPBgpC+fMHet
	KlE4+OE5JTZ4lbrELjOgs/ArkqDkjOh1DeFITinrv1tJE7pVk2zTOuy7v9R4iVdA6w133BWJule
	GWdEs/Hx0fPmFq9idhs6xHZXLf0gKHrB77JSE23mlqoCAKe3HXRBVzFhzeN3PqZ8lrONz0iTB1g
	aVe5uyINPfujFk6wgBspRYQx5arvvTrpBp3OYokyWkmdWvg/pxXSySRc9XuHuOQBlxzGnRt2Vbl
	r7WOK8s65+Jz2/P0E80PGOANVbBnawJFdOqQBQmLsWQKLKRAnw0Iv2ZCzAWx6USjAYS5XkV76Ob
	Nbf3XW9ErRUdCpBdIktw==
X-Google-Smtp-Source: AGHT+IFaHAZnOOcY5rl8MEdogFUZt6c2V7/ThmbRH+OrlQgqUct90fjDkshOEy7zneZMkEyHjW4cmw==
X-Received: by 2002:a17:907:9486:b0:af9:8c20:145b with SMTP id a640c23a62f3a-afddc96119cmr325111466b.10.1755620398039;
        Tue, 19 Aug 2025 09:19:58 -0700 (PDT)
Message-ID: <a51426f6-a2c5-4f81-af77-1b6483eb84d7@suse.com>
Date: Tue, 19 Aug 2025 18:19:56 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 01/16] x86/msr: Implement rdmsr_safe() in C
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
 <20250815204117.3312742-2-andrew.cooper3@citrix.com>
 <e3b37ba8-72df-403b-816d-3be9011b8203@suse.com>
 <341a61df-fde2-40a4-bab3-31a0d66a3d0a@citrix.com>
 <a29ecb41-1581-4102-a9ad-6768380484bc@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: <a29ecb41-1581-4102-a9ad-6768380484bc@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19.08.2025 15:35, Andrew Cooper wrote:
> On 19/08/2025 2:28 pm, Andrew Cooper wrote:
>> On 18/08/2025 12:23 pm, Jan Beulich wrote:
>>> On 15.08.2025 22:41, Andrew Cooper wrote:
>>>> ... in preparation to be able to use asm goto.
>>>>
>>>> Notably this mean that the value parameter must be taken by pointer rather
>>>> than by value.
>>>>
>>>> No functional change.
>>>>
>>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>> In principle
>>> Reviewed-by: Jan Beulich <jbeulich@suse.com>
>> Thanks.
>>
>>> However, having looked at patch 2 first, ...
>>>
>>>> @@ -879,14 +879,14 @@ static void intel_init_ppin(const struct cpuinfo_x86 *c)
>>>>      case 0x8f: /* Sapphire Rapids X */
>>>>  
>>>>          if ( (c != &boot_cpu_data && !ppin_msr) ||
>>>> -             rdmsr_safe(MSR_PPIN_CTL, val) )
>>>> +             rdmsr_safe(MSR_PPIN_CTL, &val) )
>>>>              return;
>>> ... with this, wouldn't we be better off using ...
>>>
>>>>          /* If PPIN is disabled, but not locked, try to enable. */
>>>>          if ( !(val & (PPIN_ENABLE | PPIN_LOCKOUT)) )
>>>>          {
>>>>              wrmsr_safe(MSR_PPIN_CTL, val | PPIN_ENABLE);
>>>> -            rdmsr_safe(MSR_PPIN_CTL, val);
>>>> +            rdmsr_safe(MSR_PPIN_CTL, &val);
>>> ... plain rdmsr() here, thus not leaving it open to the behavioral change
>>> patch 2 comes with?
>> Yeah, probably.Â  At the point we've read it once, and written to it, a
>> subsequent read is not going fail.
>>
>> I'll adjust, although it will have to be a rdmsrl().
> 
> No.Â  That would introduce a bug, because this path ignores a write error
> too.

Why would there be a bug? Irrespective of the WRMSR, we know the earlier
RDMSR worked.

> There isn't actually a problem even with patch 2, because of the how the
> logic is currently laid out.

Yes, the logic would still be correct, just less obviously so.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 19 16:23:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 16:23:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086709.1444886 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoP7u-0005wY-My; Tue, 19 Aug 2025 16:23:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086709.1444886; Tue, 19 Aug 2025 16:23: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 1uoP7u-0005wR-Jw; Tue, 19 Aug 2025 16:23:58 +0000
Received: by outflank-mailman (input) for mailman id 1086709;
 Tue, 19 Aug 2025 16:23:57 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xm9j=27=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uoP7t-0005wL-BS
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 16:23:57 +0000
Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com
 [2a00:1450:4864:20::62b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e715c0ef-7d18-11f0-a32a-13f23c93f187;
 Tue, 19 Aug 2025 18:23:55 +0200 (CEST)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-afcb7a3b3a9so794817266b.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 Aug 2025 09:23: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
 a640c23a62f3a-afded4c90c8sm9179666b.79.2025.08.19.09.23.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Aug 2025 09:23: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>
X-Inumbo-ID: e715c0ef-7d18-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755620635; x=1756225435; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=GV+5N3WlhEmPQywyRK1B/Hsutcc9qZV2JpT3bduLdsM=;
        b=MuxLrJCWop1iv0MoM8zTGEIa5MLTKie+7GXRnMCCDZHtb8+g0jlkQD9gSXF0GBZqWI
         W3O/Tc2HXDCTNnDEvgVOhsdjxks5zAU8lH3R26+sYNXbo98HFPq1wQUZh7s7FO2+RsZS
         BL1OxKp5mSF82mqaryeqCnuVVf2x0FLSqRpTd+jD9SQvlELbTjbQNqGpIK5SBN8qah5Z
         jECzpzee0wrn6SqhSa6pl5gQhgUmIW8bWnnl0sdzycw4nkNp3NMNjfKhmQ2U76/nvTGZ
         AnUqMrz/v/kuYYBI1nZawStIlhgVS/lTtfx72xBU1wegy3o7XBGycmZBgIhX8fQmjLGU
         Ts8A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755620635; x=1756225435;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=GV+5N3WlhEmPQywyRK1B/Hsutcc9qZV2JpT3bduLdsM=;
        b=SEmMDLoIQFsR+gE5ClfYYo4gBxpzRJnLm1S0f06wkeA85SNmRa1HDWkFwPJQezmAUf
         11qc6DPKScZd7maMkEi6BR5oucz6NB96rRV57vaH2CmVmgo0x74Pcp9VvnUWNBUmFdGC
         RACYUDns2nL83L9sxjKE2BVT9z4XkNAwo1dmVlweDZ5DqG8iluXYNQVsuE9erIfyZrVt
         V1ioE+RxVpHQ809t8zI+Ds6vwbpWFbo335FgbgmfKg5y/vXyfSKFzIBXjC4RMrO8Lae1
         7pRUD8Zb5Z8MNd/x+NtZG/acckUZU+y0F0Qdy893XnqiwWBOd1GC3mExIO2O0Fw1s4NM
         y+dw==
X-Forwarded-Encrypted: i=1; AJvYcCVebfQH1LeDelAxsn2rnNO8I7rdkLRKUKZcN3XyQ5ALfek431y+RdG9nHMKZfvcHHex1TRHEUTTDD4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxoDVuFawbEgoU+Bmcsn2Rsp/PR3X4ytOmdUjaOM86yH/QW3zHy
	cFeZIuH8d/d+t6D/ifUw8LDavhkaU1YlZn/MNBHvm/frVtmdNv7k7pFyrN7N3+LiAQ==
X-Gm-Gg: ASbGncsnQIC9axx6+Rg66XbOuzyFLM1YcytppgE0Tu0wAva30naiw0Gxn7Cc6ue0d1G
	R1g88XokNE5h27CDkid3mmEHjEScsRRgDXQJ2sv7fM1eidKqkwSQFefZFSdv0HAKv8JwtfVNiak
	o0cdg3d6tLiD2JoXGH40KQdFN7IYN0BoiL/NmHWVHAWnPMM7Ip5truDWdXCIf6833kiKn9og/6/
	l28uA/VOoK+I0Gli0TZgmt/D+S1Fo8ujU53XvYGy+rH0QQ64pg39KlKpdMkwKFj8EQLN/vpPV/u
	4o6hbpNsCXcYe//er6USKy2ct03hVRohlcSypsgaizb5uUu6IpZWIiOEs3H6nDn4hwyvEoJLECo
	JjQGTckEeAzumAhjxLw6pvOYY4bbvEiZXZxnJ7xGXwoAclmLxFcL3kl5U4Y3goqZghgkf5RX8KR
	duyDu1GvT5ATUpah3Rgw==
X-Google-Smtp-Source: AGHT+IF5b4IjrQx+w80DfoTMKy1X6rgWK8BTE6Kjru7Wen+oJdIdzBXg8X0NOQojKbeTO6Hk+tpQYA==
X-Received: by 2002:a17:907:3da2:b0:af9:3c05:b724 with SMTP id a640c23a62f3a-afddd0d23c7mr319008366b.40.1755620635479;
        Tue, 19 Aug 2025 09:23:55 -0700 (PDT)
Message-ID: <01ece885-1363-4aac-99ce-205354419400@suse.com>
Date: Tue, 19 Aug 2025 18:23:54 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 02/16] x86/msr: Rework rdmsr_safe() using asm goto()
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
 <20250815204117.3312742-3-andrew.cooper3@citrix.com>
 <aa57cc7c-c659-4949-aaed-4484ead54ffc@suse.com>
 <7b836f06-74ab-4588-8aeb-d0105b54be91@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: <7b836f06-74ab-4588-8aeb-d0105b54be91@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19.08.2025 15:52, Andrew Cooper wrote:
> On 18/08/2025 12:27 pm, Jan Beulich wrote:
>> On 15.08.2025 22:41, Andrew Cooper wrote:
>>> ... on capable toolchains.
>>>
>>> This avoids needing to hold rc in a register across the RDMSR, and in most
>>> cases removes direct testing and branching based on rc, as the fault label can
>>> be rearranged to directly land on the out-of-line block.
>>>
>>> There is a subtle difference in behaviour.  The old behaviour would, on fault,
>>> still produce 0's and write to val.
>>>
>>> The new behaviour only writes val on success, and write_msr() is the only
>>> place where this matters.  Move temp out of switch() scope and initialise it
>>> to 0.
>> But what's the motivation behind making this behavioral change? At least in
>> the cases where the return value isn't checked, it would feel safer if we
>> continued clearing the value. Even if in all cases where this could matter
>> (besides the one you cover here) one can prove correctness by looking at
>> surrounding code.
> 
> I didn't realise I'd made a change at first, but it's a consequence of
> the compiler's ability to rearrange basic blocks.
> 
> It can be fixed with ...
> 
>>
>>> --- a/xen/arch/x86/include/asm/msr.h
>>> +++ b/xen/arch/x86/include/asm/msr.h
>>> @@ -55,6 +55,24 @@ static inline void wrmsrns(uint32_t msr, uint64_t val)
>>>  /* rdmsr with exception handling */
>>>  static inline int rdmsr_safe(unsigned int msr, uint64_t *val)
>>>  {
>>> +#ifdef CONFIG_CC_HAS_ASM_GOTO_OUTPUT
>>> +    uint64_t lo, hi;
>>> +    asm_inline goto (
>>> +        "1: rdmsr\n\t"
>>> +        _ASM_EXTABLE(1b, %l[fault])
>>> +        : "=a" (lo), "=d" (hi)
>>> +        : "c" (msr)
>>> +        :
>>> +        : fault );
>>> +
>>> +    *val = lo | (hi << 32);
>>> +
>>> +    return 0;
>>> +
>>> + fault:
> 
> Â Â Â  *val = 0;
> 
> here, but I don't want to do this.Â  Because val is by pointer and
> generally spilled to the stack, the compiler can't optimise away the store.

But the compiler is dealing with such indirection in inline functions just
fine. I don't expect it would typically spill val to the stack. Is there
anything specific here that you think would make this more likely?

> I'd far rather get a real compiler error, than to have logic relying on
> the result of a faulting MSR read.

A compiler error? (Hmm, perhaps you think of uninitialized variable
diagnostics. That may or may not trigger, depending on how else the
caller's variable is used.)

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 19 17:18:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 17:18:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086726.1444896 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoPyo-0003kW-Ha; Tue, 19 Aug 2025 17:18:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086726.1444896; Tue, 19 Aug 2025 17: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 1uoPyo-0003kP-Eq; Tue, 19 Aug 2025 17:18:38 +0000
Received: by outflank-mailman (input) for mailman id 1086726;
 Tue, 19 Aug 2025 17:18:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9H+3=27=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1uoPym-0003kJ-Vv
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 17:18:37 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 878fc7db-7d20-11f0-b898-0df219b8e170;
 Tue, 19 Aug 2025 19:18:31 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-45a1b097037so31571485e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 Aug 2025 10:18:31 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3c074879859sm4371615f8f.3.2025.08.19.10.18.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 19 Aug 2025 10:18: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>
X-Inumbo-ID: 878fc7db-7d20-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755623911; x=1756228711; 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=plhE2oARVW1biycRxwi0J8Qr/Qq0NXG+SsA73OEzfFI=;
        b=T4Gj7bsXshj2wm17nw+jLha/zzXflhzJ6hXnputn2YCXXWi2s9rjNMiwvwd7/SNbqb
         JJ8Yv6PCCWG0UXIRzMUmoOWWfaOgmLKHjbH2pK4whN7XfG7sDSLs2GKBZnFiAPcO7xet
         KdGljXQUxGaeoCd47CW60L4G7x2gH3n0tB80o=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755623911; x=1756228711;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=plhE2oARVW1biycRxwi0J8Qr/Qq0NXG+SsA73OEzfFI=;
        b=rMSs0x6utFOFg/yHkPGKpUJlkSd2thT7QxaJvfxMUnoIa3mMF0lzNuOxa8MK4Q8PLF
         718atfnjPRGxS/PmePcQoMPezyNSecnsoCHMZDtmXzd81SmiIcVjkpRm0/xTzqZ7M/5p
         rUF4/6Lsn1VNTSRnhrtYIjHFLr/EYGDjVQDMYI529u7SaEFArIeLoSNs75V66AdsGj5e
         cyzBW/dbIW4YFayemmVBatQS10zSnr5yYwAd9UtmFuUTjqBCIMu6H7NEBm7IegxiJE72
         EyC4iqNjh82QT1ZSq9Ayxje/dvq/Vt8MGWMmfzdl0jM6HowIw77hcRB/zEtvnadli8ow
         /i8w==
X-Gm-Message-State: AOJu0YzVNhz+Q3gMRCjJ4JY9Eq9ONMjGRttA34ch5XDrCqUnXY5z2+Ts
	4Udg0KWKXBzYzHCQbhsDzSwNJ8t6gro+TW+g6v+92c0kKyMRA7T8t2jXIiP0XTiFVHJAd40M5Py
	Tnad3
X-Gm-Gg: ASbGnct1BbpCGBCoyX2s3UwPW9UVonsIVMzgkPs930ikUP99zWrcch85g/fPzLUvwI9
	ZK4rIbrAU+6EMdzGpYaDV3vGF1DPDG9wMnn2GetmmThhDbBTU9do0JEDiZ107l/5h3ANFCBL4iV
	QmfSjAamnmFRat64nWYCNVzoZm0mrtOQfNhnBpJ+KCe3RC6kacUVVzPqzr8UtpwJOZm/F4xxFK0
	4eX9Z9A3BsFpI81BpU2sfRx5bWK0zqloJDVG9FswgSSS4O10K8ORoaCrlVufnkzpERSh6wdXpHi
	UvOD9nn1rNxPM/zNohQpSbZoHppxJaZnQIcpf8fKY3q0dN7baoLGE0zqvazAx2JWH8GL83yB/cj
	PW7WiGFQ5CtAX3LK6jSD1qazdwHY/m1v7ddvRirIDzGY1PnedNNSnXx/tzZSV9eIhkxBZRtGYVF
	Ac
X-Google-Smtp-Source: AGHT+IG23CtaPSekZ6jsN8U8SwAfMunksdT8XIiiAGIEvzFpNKuM2q2b3dYxOQE3bINYqJioUWGrqA==
X-Received: by 2002:a05:600c:524b:b0:456:285b:db29 with SMTP id 5b1f17b1804b1-45b43e13947mr29878195e9.29.1755623910752;
        Tue, 19 Aug 2025 10:18:30 -0700 (PDT)
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>
Subject: [PATCH] x86/iommu: setup MMCFG ahead of IOMMU
Date: Tue, 19 Aug 2025 19:18:26 +0200
Message-ID: <20250819171826.60700-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.49.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Otherwise the PCI accesses to segments different than the first one done by
the IOMMU initialization code would silently fail by returning all ones.

Introduce a new helper, called pci_setup(), and move both the creation of
PCI segment 0 internal data structures, plus the parsing of ACPI MMCFG
table to it.

Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/acpi/boot.c              |  2 --
 xen/arch/x86/include/asm/pci.h        |  2 ++
 xen/arch/x86/pci.c                    | 16 ++++++++++++++++
 xen/arch/x86/setup.c                  |  7 +++----
 xen/arch/x86/x86_64/mmconfig-shared.c |  3 +++
 5 files changed, 24 insertions(+), 6 deletions(-)

diff --git a/xen/arch/x86/acpi/boot.c b/xen/arch/x86/acpi/boot.c
index 3901f9d9825b..1ca2360e0065 100644
--- a/xen/arch/x86/acpi/boot.c
+++ b/xen/arch/x86/acpi/boot.c
@@ -748,8 +748,6 @@ int __init acpi_boot_init(void)
 
 	acpi_table_parse(ACPI_SIG_HPET, acpi_parse_hpet);
 
-	acpi_mmcfg_init();
-
 	erst_init();
 
 	acpi_hest_init();
diff --git a/xen/arch/x86/include/asm/pci.h b/xen/arch/x86/include/asm/pci.h
index 665b32116521..0b98081aeaa4 100644
--- a/xen/arch/x86/include/asm/pci.h
+++ b/xen/arch/x86/include/asm/pci.h
@@ -74,4 +74,6 @@ bool pci_check_bar(const struct pci_dev *pdev, mfn_t start, mfn_t end);
 struct rangeset;
 int pci_sanitize_bar_memory(struct rangeset *r);
 
+void pci_setup(void);
+
 #endif /* __X86_PCI_H__ */
diff --git a/xen/arch/x86/pci.c b/xen/arch/x86/pci.c
index 26bb7f6a3c3a..e75a29e851a7 100644
--- a/xen/arch/x86/pci.c
+++ b/xen/arch/x86/pci.c
@@ -6,7 +6,10 @@
 
 #include <xen/spinlock.h>
 #include <xen/pci.h>
+
+#include <asm/acpi.h>
 #include <asm/io.h>
+
 #include <xsm/xsm.h>
 
 static DEFINE_SPINLOCK(pci_config_lock);
@@ -139,6 +142,19 @@ int pci_sanitize_bar_memory(struct rangeset *r)
     return 0;
 }
 
+void __init pci_setup(void)
+{
+    /*
+     * Ahead of any ACPI table parsing make sure we have control structures
+     * for PCI segment 0.
+     */
+    if ( pci_add_segment(0) )
+        panic("Could not initialize PCI segment 0\n");
+
+    /* Parse ACPI MMCFG ahead of IOMMU, so accesses to segments > 0 is setup. */
+    acpi_mmcfg_init();
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 6fb42c5a5f95..bd648323bfed 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1938,11 +1938,10 @@ void asmlinkage __init noreturn __start_xen(void)
     setup_system_domains();
 
     /*
-     * Ahead of any ACPI table parsing make sure we have control structures
-     * for PCI segment 0.
+     * Initialize PCI (create segment 0, setup MMCFG access) ahead of IOMMU
+     * setup, as it requires access to the PCI config space.
      */
-    if ( pci_add_segment(0) )
-        panic("Could not initialize PCI segment 0\n");
+    pci_setup();
 
     /*
      * IOMMU-related ACPI table parsing has to happen before APIC probing, for
diff --git a/xen/arch/x86/x86_64/mmconfig-shared.c b/xen/arch/x86/x86_64/mmconfig-shared.c
index f1a3d42c5b21..fbe2676f8636 100644
--- a/xen/arch/x86/x86_64/mmconfig-shared.c
+++ b/xen/arch/x86/x86_64/mmconfig-shared.c
@@ -402,6 +402,9 @@ void __init acpi_mmcfg_init(void)
 {
     bool valid = true;
 
+    if ( acpi_disabled )
+        return;
+
     /* MMCONFIG disabled */
     if ((pci_probe & PCI_PROBE_MMCONF) == 0)
         return;
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Tue Aug 19 17:37:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 17:37:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086742.1444916 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoQHD-0006ss-DZ; Tue, 19 Aug 2025 17:37:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086742.1444916; Tue, 19 Aug 2025 17: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 1uoQHD-0006sl-A3; Tue, 19 Aug 2025 17:37:39 +0000
Received: by outflank-mailman (input) for mailman id 1086742;
 Tue, 19 Aug 2025 17:37:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ve3E=27=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1uoQHB-0006dc-NM
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 17:37:37 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org
 [2604:1380:4641:c500::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 30cbc678-7d23-11f0-b898-0df219b8e170;
 Tue, 19 Aug 2025 19:37:35 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 176855C64A7;
 Tue, 19 Aug 2025 17:37:34 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9C7B6C113D0;
 Tue, 19 Aug 2025 17:37:21 +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>
X-Inumbo-ID: 30cbc678-7d23-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755625042;
	bh=PY9smWWJ4JNRFUAjSvtMNJOBqFCsxBLYO5QlYdxwbLE=;
	h=From:To:Cc:Subject:Date:From;
	b=nt8pdRowHseoXvExKasdI0tEDbHSrgizbMB2qlH1aCU/xuu2CZSaOV8+REt27f9GO
	 87AyElpEj/wX92YaeYkB2ZUeSYzFX7ugQoGONRfzj6gLwHZfXjbZvX+XecnRMSzKxt
	 XWFXqQ7FRrUCmWN75OAdzO2Bw50CvLG0hQxnk0yj1TPViX5VQGWTcqYi++OUdBQ/MI
	 77ZymbBVIJT1fBt6mwrJPXADDaD1SHQ2OEMF2BgRWv5a+KqnO7FRcxsxJl834mNp8D
	 2IaJ0ZC7YC5w/kVg1P0H0R1EvS8ZJSRiF91vJogJyrKxdQR7Akp5/4TKu+iWzc343Q
	 0jqutLlV5YsRQ==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v4 00/16] dma-mapping: migrate to physical address-based API
Date: Tue, 19 Aug 2025 20:36:44 +0300
Message-ID: <cover.1755624249.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Changelog:
v4:
 * Fixed kbuild error with mismatch in kmsan function declaration due to
   rebase error.
v3: https://lore.kernel.org/all/cover.1755193625.git.leon@kernel.org
 * Fixed typo in "cacheable" word
 * Simplified kmsan patch a lot to be simple argument refactoring
v2: https://lore.kernel.org/all/cover.1755153054.git.leon@kernel.org
 * Used commit messages and cover letter from Jason
 * Moved setting IOMMU_MMIO flag to dma_info_to_prot function
 * Micro-optimized the code
 * Rebased code on v6.17-rc1
v1: https://lore.kernel.org/all/cover.1754292567.git.leon@kernel.org
 * Added new DMA_ATTR_MMIO attribute to indicate
   PCI_P2PDMA_MAP_THRU_HOST_BRIDGE path.
 * Rewrote dma_map_* functions to use thus new attribute
v0: https://lore.kernel.org/all/cover.1750854543.git.leon@kernel.org/
------------------------------------------------------------------------

This series refactors the DMA mapping to use physical addresses
as the primary interface instead of page+offset parameters. This
change aligns the DMA API with the underlying hardware reality where
DMA operations work with physical addresses, not page structures.

The series maintains export symbol backward compatibility by keeping
the old page-based API as wrapper functions around the new physical
address-based implementations.

This series refactors the DMA mapping API to provide a phys_addr_t
based, and struct-page free, external API that can handle all the
mapping cases we want in modern systems:

 - struct page based cachable DRAM
 - struct page MEMORY_DEVICE_PCI_P2PDMA PCI peer to peer non-cachable
   MMIO
 - struct page-less PCI peer to peer non-cachable MMIO
 - struct page-less "resource" MMIO

Overall this gets much closer to Matthew's long term wish for
struct-pageless IO to cachable DRAM. The remaining primary work would
be in the mm side to allow kmap_local_pfn()/phys_to_virt() to work on
phys_addr_t without a struct page.

The general design is to remove struct page usage entirely from the
DMA API inner layers. For flows that need to have a KVA for the
physical address they can use kmap_local_pfn() or phys_to_virt(). This
isolates the struct page requirements to MM code only. Long term all
removals of struct page usage are supporting Matthew's memdesc
project which seeks to substantially transform how struct page works.

Instead make the DMA API internals work on phys_addr_t. Internally
there are still dedicated 'page' and 'resource' flows, except they are
now distinguished by a new DMA_ATTR_MMIO instead of by callchain. Both
flows use the same phys_addr_t.

When DMA_ATTR_MMIO is specified things work similar to the existing
'resource' flow. kmap_local_pfn(), phys_to_virt(), phys_to_page(),
pfn_valid(), etc are never called on the phys_addr_t. This requires
rejecting any configuration that would need swiotlb. CPU cache
flushing is not required, and avoided, as ATTR_MMIO also indicates the
address have no cachable mappings. This effectively removes any
DMA API side requirement to have struct page when DMA_ATTR_MMIO is
used.

In the !DMA_ATTR_MMIO mode things work similarly to the 'page' flow,
except on the common path of no cache flush, no swiotlb it never
touches a struct page. When cache flushing or swiotlb copying
kmap_local_pfn()/phys_to_virt() are used to get a KVA for CPU
usage. This was already the case on the unmap side, now the map side
is symmetric.

Callers are adjusted to set DMA_ATTR_MMIO. Existing 'resource' users
must set it. The existing struct page based MEMORY_DEVICE_PCI_P2PDMA
path must also set it. This corrects some existing bugs where iommu
mappings for P2P MMIO were improperly marked IOMMU_CACHE.

Since ATTR_MMIO is made to work with all the existing DMA map entry
points, particularly dma_iova_link(), this finally allows a way to use
the new DMA API to map PCI P2P MMIO without creating struct page. The
VFIO DMABUF series demonstrates how this works. This is intended to
replace the incorrect driver use of dma_map_resource() on PCI BAR
addresses.

This series does the core code and modern flows. A followup series
will give the same treatment to the legacy dma_ops implementation.

Thanks

Leon Romanovsky (16):
  dma-mapping: introduce new DMA attribute to indicate MMIO memory
  iommu/dma: implement DMA_ATTR_MMIO for dma_iova_link().
  dma-debug: refactor to use physical addresses for page mapping
  dma-mapping: rename trace_dma_*map_page to trace_dma_*map_phys
  iommu/dma: rename iommu_dma_*map_page to iommu_dma_*map_phys
  iommu/dma: extend iommu_dma_*map_phys API to handle MMIO memory
  dma-mapping: convert dma_direct_*map_page to be phys_addr_t based
  kmsan: convert kmsan_handle_dma to use physical addresses
  dma-mapping: handle MMIO flow in dma_map|unmap_page
  xen: swiotlb: Open code map_resource callback
  dma-mapping: export new dma_*map_phys() interface
  mm/hmm: migrate to physical address-based DMA mapping API
  mm/hmm: properly take MMIO path
  block-dma: migrate to dma_map_phys instead of map_page
  block-dma: properly take MMIO path
  nvme-pci: unmap MMIO pages with appropriate interface

 Documentation/core-api/dma-api.rst        |   4 +-
 Documentation/core-api/dma-attributes.rst |  18 ++++
 arch/powerpc/kernel/dma-iommu.c           |   4 +-
 block/blk-mq-dma.c                        |  15 ++-
 drivers/iommu/dma-iommu.c                 |  61 +++++------
 drivers/nvme/host/pci.c                   |  18 +++-
 drivers/virtio/virtio_ring.c              |   4 +-
 drivers/xen/swiotlb-xen.c                 |  21 +++-
 include/linux/blk-mq-dma.h                |   6 +-
 include/linux/blk_types.h                 |   2 +
 include/linux/dma-direct.h                |   2 -
 include/linux/dma-map-ops.h               |   8 +-
 include/linux/dma-mapping.h               |  33 ++++++
 include/linux/iommu-dma.h                 |  11 +-
 include/linux/kmsan.h                     |   9 +-
 include/trace/events/dma.h                |   9 +-
 kernel/dma/debug.c                        |  71 ++++---------
 kernel/dma/debug.h                        |  37 ++-----
 kernel/dma/direct.c                       |  22 +---
 kernel/dma/direct.h                       |  52 ++++++----
 kernel/dma/mapping.c                      | 117 +++++++++++++---------
 kernel/dma/ops_helpers.c                  |   6 +-
 mm/hmm.c                                  |  19 ++--
 mm/kmsan/hooks.c                          |   5 +-
 rust/kernel/dma.rs                        |   3 +
 tools/virtio/linux/kmsan.h                |   2 +-
 26 files changed, 305 insertions(+), 254 deletions(-)

-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 19 17:37:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 17:37:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086743.1444921 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoQHD-0006v6-Nd; Tue, 19 Aug 2025 17:37:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086743.1444921; Tue, 19 Aug 2025 17: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 1uoQHD-0006uQ-H8; Tue, 19 Aug 2025 17:37:39 +0000
Received: by outflank-mailman (input) for mailman id 1086743;
 Tue, 19 Aug 2025 17:37:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ve3E=27=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1uoQHC-0006dc-Nb
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 17:37:38 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 314dd6da-7d23-11f0-b898-0df219b8e170;
 Tue, 19 Aug 2025 19:37:36 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id A6B125C647F;
 Tue, 19 Aug 2025 17:37:34 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1EBFAC4CEF4;
 Tue, 19 Aug 2025 17:37:33 +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>
X-Inumbo-ID: 314dd6da-7d23-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755625054;
	bh=+6SuvKk/7U//cW4wXi0ADVlYqazqjfxTWHubS42t1as=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=nRK2iAcw9naXxqVCwrZYTg0L0tJVO6Z8uYDGDwR7RfbMKGUm6C1t5jhQLddy+0Enj
	 nh3J3isWu7Zd6NLSnDbBHV9WCIoJ+nc0jxpVf8VSDaWdIXAnmpF5ICK0WXbRS5d8cv
	 8Vrlhstq8V9i+QaI/1n0oXTMXFX0BmUBAQxY2YwE9ujB5cQHDGmVxVpwXuHElC5fEa
	 Y5GtQScvK8ImAhambk4WLChGvqvr9FrlV8TMmlZ4IwV6koBzxY/i+8uGhj3kbJs4Gu
	 KVpki2bklNgxb/LEU2SZVxE1nNnUsBg4ZjpcimliacFY+BJFISpyvgWuUeq0efkjN9
	 BVZdeXsQkCpzQ==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v4 03/16] dma-debug: refactor to use physical addresses for page mapping
Date: Tue, 19 Aug 2025 20:36:47 +0300
Message-ID: <478d5b7135008b3c82f100faa9d3830839fc6562.1755624249.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755624249.git.leon@kernel.org>
References: <cover.1755624249.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

Convert the DMA debug infrastructure from page-based to physical address-based
mapping as a preparation to rely on physical address for DMA mapping routines.

The refactoring renames debug_dma_map_page() to debug_dma_map_phys() and
changes its signature to accept a phys_addr_t parameter instead of struct page
and offset. Similarly, debug_dma_unmap_page() becomes debug_dma_unmap_phys().
A new dma_debug_phy type is introduced to distinguish physical address mappings
from other debug entry types. All callers throughout the codebase are updated
to pass physical addresses directly, eliminating the need for page-to-physical
conversion in the debug layer.

This refactoring eliminates the need to convert between page pointers and
physical addresses in the debug layer, making the code more efficient and
consistent with the DMA mapping API's physical address focus.

Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 Documentation/core-api/dma-api.rst |  4 ++--
 kernel/dma/debug.c                 | 28 +++++++++++++++++-----------
 kernel/dma/debug.h                 | 16 +++++++---------
 kernel/dma/mapping.c               | 15 ++++++++-------
 4 files changed, 34 insertions(+), 29 deletions(-)

diff --git a/Documentation/core-api/dma-api.rst b/Documentation/core-api/dma-api.rst
index 3087bea715ed..ca75b3541679 100644
--- a/Documentation/core-api/dma-api.rst
+++ b/Documentation/core-api/dma-api.rst
@@ -761,7 +761,7 @@ example warning message may look like this::
 	[<ffffffff80235177>] find_busiest_group+0x207/0x8a0
 	[<ffffffff8064784f>] _spin_lock_irqsave+0x1f/0x50
 	[<ffffffff803c7ea3>] check_unmap+0x203/0x490
-	[<ffffffff803c8259>] debug_dma_unmap_page+0x49/0x50
+	[<ffffffff803c8259>] debug_dma_unmap_phys+0x49/0x50
 	[<ffffffff80485f26>] nv_tx_done_optimized+0xc6/0x2c0
 	[<ffffffff80486c13>] nv_nic_irq_optimized+0x73/0x2b0
 	[<ffffffff8026df84>] handle_IRQ_event+0x34/0x70
@@ -855,7 +855,7 @@ that a driver may be leaking mappings.
 dma-debug interface debug_dma_mapping_error() to debug drivers that fail
 to check DMA mapping errors on addresses returned by dma_map_single() and
 dma_map_page() interfaces. This interface clears a flag set by
-debug_dma_map_page() to indicate that dma_mapping_error() has been called by
+debug_dma_map_phys() to indicate that dma_mapping_error() has been called by
 the driver. When driver does unmap, debug_dma_unmap() checks the flag and if
 this flag is still set, prints warning message that includes call trace that
 leads up to the unmap. This interface can be called from dma_mapping_error()
diff --git a/kernel/dma/debug.c b/kernel/dma/debug.c
index e43c6de2bce4..da6734e3a4ce 100644
--- a/kernel/dma/debug.c
+++ b/kernel/dma/debug.c
@@ -39,6 +39,7 @@ enum {
 	dma_debug_sg,
 	dma_debug_coherent,
 	dma_debug_resource,
+	dma_debug_phy,
 };
 
 enum map_err_types {
@@ -141,6 +142,7 @@ static const char *type2name[] = {
 	[dma_debug_sg] = "scatter-gather",
 	[dma_debug_coherent] = "coherent",
 	[dma_debug_resource] = "resource",
+	[dma_debug_phy] = "phy",
 };
 
 static const char *dir2name[] = {
@@ -1201,9 +1203,8 @@ void debug_dma_map_single(struct device *dev, const void *addr,
 }
 EXPORT_SYMBOL(debug_dma_map_single);
 
-void debug_dma_map_page(struct device *dev, struct page *page, size_t offset,
-			size_t size, int direction, dma_addr_t dma_addr,
-			unsigned long attrs)
+void debug_dma_map_phys(struct device *dev, phys_addr_t phys, size_t size,
+		int direction, dma_addr_t dma_addr, unsigned long attrs)
 {
 	struct dma_debug_entry *entry;
 
@@ -1218,19 +1219,24 @@ void debug_dma_map_page(struct device *dev, struct page *page, size_t offset,
 		return;
 
 	entry->dev       = dev;
-	entry->type      = dma_debug_single;
-	entry->paddr	 = page_to_phys(page) + offset;
+	entry->type      = dma_debug_phy;
+	entry->paddr	 = phys;
 	entry->dev_addr  = dma_addr;
 	entry->size      = size;
 	entry->direction = direction;
 	entry->map_err_type = MAP_ERR_NOT_CHECKED;
 
-	check_for_stack(dev, page, offset);
+	if (!(attrs & DMA_ATTR_MMIO)) {
+		struct page *page = phys_to_page(phys);
+		size_t offset = offset_in_page(page);
 
-	if (!PageHighMem(page)) {
-		void *addr = page_address(page) + offset;
+		check_for_stack(dev, page, offset);
 
-		check_for_illegal_area(dev, addr, size);
+		if (!PageHighMem(page)) {
+			void *addr = page_address(page) + offset;
+
+			check_for_illegal_area(dev, addr, size);
+		}
 	}
 
 	add_dma_entry(entry, attrs);
@@ -1274,11 +1280,11 @@ void debug_dma_mapping_error(struct device *dev, dma_addr_t dma_addr)
 }
 EXPORT_SYMBOL(debug_dma_mapping_error);
 
-void debug_dma_unmap_page(struct device *dev, dma_addr_t dma_addr,
+void debug_dma_unmap_phys(struct device *dev, dma_addr_t dma_addr,
 			  size_t size, int direction)
 {
 	struct dma_debug_entry ref = {
-		.type           = dma_debug_single,
+		.type           = dma_debug_phy,
 		.dev            = dev,
 		.dev_addr       = dma_addr,
 		.size           = size,
diff --git a/kernel/dma/debug.h b/kernel/dma/debug.h
index f525197d3cae..76adb42bffd5 100644
--- a/kernel/dma/debug.h
+++ b/kernel/dma/debug.h
@@ -9,12 +9,11 @@
 #define _KERNEL_DMA_DEBUG_H
 
 #ifdef CONFIG_DMA_API_DEBUG
-extern void debug_dma_map_page(struct device *dev, struct page *page,
-			       size_t offset, size_t size,
-			       int direction, dma_addr_t dma_addr,
+extern void debug_dma_map_phys(struct device *dev, phys_addr_t phys,
+			       size_t size, int direction, dma_addr_t dma_addr,
 			       unsigned long attrs);
 
-extern void debug_dma_unmap_page(struct device *dev, dma_addr_t addr,
+extern void debug_dma_unmap_phys(struct device *dev, dma_addr_t addr,
 				 size_t size, int direction);
 
 extern void debug_dma_map_sg(struct device *dev, struct scatterlist *sg,
@@ -55,14 +54,13 @@ extern void debug_dma_sync_sg_for_device(struct device *dev,
 					 struct scatterlist *sg,
 					 int nelems, int direction);
 #else /* CONFIG_DMA_API_DEBUG */
-static inline void debug_dma_map_page(struct device *dev, struct page *page,
-				      size_t offset, size_t size,
-				      int direction, dma_addr_t dma_addr,
-				      unsigned long attrs)
+static inline void debug_dma_map_phys(struct device *dev, phys_addr_t phys,
+				      size_t size, int direction,
+				      dma_addr_t dma_addr, unsigned long attrs)
 {
 }
 
-static inline void debug_dma_unmap_page(struct device *dev, dma_addr_t addr,
+static inline void debug_dma_unmap_phys(struct device *dev, dma_addr_t addr,
 					size_t size, int direction)
 {
 }
diff --git a/kernel/dma/mapping.c b/kernel/dma/mapping.c
index 107e4a4d251d..4c1dfbabb8ae 100644
--- a/kernel/dma/mapping.c
+++ b/kernel/dma/mapping.c
@@ -157,6 +157,7 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
 		unsigned long attrs)
 {
 	const struct dma_map_ops *ops = get_dma_ops(dev);
+	phys_addr_t phys = page_to_phys(page) + offset;
 	dma_addr_t addr;
 
 	BUG_ON(!valid_dma_direction(dir));
@@ -165,16 +166,15 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
 		return DMA_MAPPING_ERROR;
 
 	if (dma_map_direct(dev, ops) ||
-	    arch_dma_map_page_direct(dev, page_to_phys(page) + offset + size))
+	    arch_dma_map_page_direct(dev, phys + size))
 		addr = dma_direct_map_page(dev, page, offset, size, dir, attrs);
 	else if (use_dma_iommu(dev))
 		addr = iommu_dma_map_page(dev, page, offset, size, dir, attrs);
 	else
 		addr = ops->map_page(dev, page, offset, size, dir, attrs);
 	kmsan_handle_dma(page, offset, size, dir);
-	trace_dma_map_page(dev, page_to_phys(page) + offset, addr, size, dir,
-			   attrs);
-	debug_dma_map_page(dev, page, offset, size, dir, addr, attrs);
+	trace_dma_map_page(dev, phys, addr, size, dir, attrs);
+	debug_dma_map_phys(dev, phys, size, dir, addr, attrs);
 
 	return addr;
 }
@@ -194,7 +194,7 @@ void dma_unmap_page_attrs(struct device *dev, dma_addr_t addr, size_t size,
 	else
 		ops->unmap_page(dev, addr, size, dir, attrs);
 	trace_dma_unmap_page(dev, addr, size, dir, attrs);
-	debug_dma_unmap_page(dev, addr, size, dir);
+	debug_dma_unmap_phys(dev, addr, size, dir);
 }
 EXPORT_SYMBOL(dma_unmap_page_attrs);
 
@@ -712,7 +712,8 @@ struct page *dma_alloc_pages(struct device *dev, size_t size,
 	if (page) {
 		trace_dma_alloc_pages(dev, page_to_virt(page), *dma_handle,
 				      size, dir, gfp, 0);
-		debug_dma_map_page(dev, page, 0, size, dir, *dma_handle, 0);
+		debug_dma_map_phys(dev, page_to_phys(page), size, dir,
+				   *dma_handle, 0);
 	} else {
 		trace_dma_alloc_pages(dev, NULL, 0, size, dir, gfp, 0);
 	}
@@ -738,7 +739,7 @@ void dma_free_pages(struct device *dev, size_t size, struct page *page,
 		dma_addr_t dma_handle, enum dma_data_direction dir)
 {
 	trace_dma_free_pages(dev, page_to_virt(page), dma_handle, size, dir, 0);
-	debug_dma_unmap_page(dev, dma_handle, size, dir);
+	debug_dma_unmap_phys(dev, dma_handle, size, dir);
 	__dma_free_pages(dev, size, page, dma_handle, dir);
 }
 EXPORT_SYMBOL_GPL(dma_free_pages);
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 19 17:37:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 17:37:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086741.1444907 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoQH8-0006dp-1N; Tue, 19 Aug 2025 17:37:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086741.1444907; Tue, 19 Aug 2025 17: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 1uoQH7-0006di-Td; Tue, 19 Aug 2025 17:37:33 +0000
Received: by outflank-mailman (input) for mailman id 1086741;
 Tue, 19 Aug 2025 17:37:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ve3E=27=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1uoQH6-0006dc-Or
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 17:37:32 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2db96085-7d23-11f0-b898-0df219b8e170;
 Tue, 19 Aug 2025 19:37:30 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 85E345C6338;
 Tue, 19 Aug 2025 17:37:28 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 24115C4CEF4;
 Tue, 19 Aug 2025 17:37:27 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2db96085-7d23-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755625048;
	bh=EWgy5B4A+Akm79sn7jh5YTuSXsOOCp8mk7trqVaPDEQ=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=kgbi4w2Q8/qLfemYkqYCTlJubr4ZTtFUa79DQsgoMOtMnK9XVQtew1W9zkl8AXPTg
	 5ouT8pZzyp7JtqBQN0iNERXAu/MVItkWE26bNq7tt2PQ51Vb3N7FOZu1tV27k+WDxS
	 rDNXY9cVEdCtmprq96Y70alxWNTWqmdzaHB5D3PY10GcJh034Yri4T9esFwQ2SYYGH
	 50WIZ3BWvYJhFJMsduRI2K8tz2LgY4zFEmijzvGKJlrZ1fVmLXd1pygDhMYan/xzfr
	 ol/8IHtSLtS1VL0XNmH5RkFrbie3BoNUHMXdpMX5FRAvuLWuKe1gYX4KTtkiPKAqnI
	 c3Ipp+NxzvqvA==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v4 01/16] dma-mapping: introduce new DMA attribute to indicate MMIO memory
Date: Tue, 19 Aug 2025 20:36:45 +0300
Message-ID: <08e044a00a872932e106f7e27449a8eab2690dbc.1755624249.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755624249.git.leon@kernel.org>
References: <cover.1755624249.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

This patch introduces the DMA_ATTR_MMIO attribute to mark DMA buffers
that reside in memory-mapped I/O (MMIO) regions, such as device BARs
exposed through the host bridge, which are accessible for peer-to-peer
(P2P) DMA.

This attribute is especially useful for exporting device memory to other
devices for DMA without CPU involvement, and avoids unnecessary or
potentially detrimental CPU cache maintenance calls.

DMA_ATTR_MMIO is supposed to provide dma_map_resource() functionality
without need to call to special function and perform branching by
the callers.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 Documentation/core-api/dma-attributes.rst | 18 ++++++++++++++++++
 include/linux/dma-mapping.h               | 20 ++++++++++++++++++++
 include/trace/events/dma.h                |  3 ++-
 rust/kernel/dma.rs                        |  3 +++
 4 files changed, 43 insertions(+), 1 deletion(-)

diff --git a/Documentation/core-api/dma-attributes.rst b/Documentation/core-api/dma-attributes.rst
index 1887d92e8e92..0bdc2be65e57 100644
--- a/Documentation/core-api/dma-attributes.rst
+++ b/Documentation/core-api/dma-attributes.rst
@@ -130,3 +130,21 @@ accesses to DMA buffers in both privileged "supervisor" and unprivileged
 subsystem that the buffer is fully accessible at the elevated privilege
 level (and ideally inaccessible or at least read-only at the
 lesser-privileged levels).
+
+DMA_ATTR_MMIO
+-------------
+
+This attribute indicates the physical address is not normal system
+memory. It may not be used with kmap*()/phys_to_virt()/phys_to_page()
+functions, it may not be cacheable, and access using CPU load/store
+instructions may not be allowed.
+
+Usually this will be used to describe MMIO addresses, or other non-cacheable
+register addresses. When DMA mapping this sort of address we call
+the operation Peer to Peer as a one device is DMA'ing to another device.
+For PCI devices the p2pdma APIs must be used to determine if
+DMA_ATTR_MMIO is appropriate.
+
+For architectures that require cache flushing for DMA coherence
+DMA_ATTR_MMIO will not perform any cache flushing. The address
+provided must never be mapped cacheable into the CPU.
diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h
index 55c03e5fe8cb..4254fd9bdf5d 100644
--- a/include/linux/dma-mapping.h
+++ b/include/linux/dma-mapping.h
@@ -58,6 +58,26 @@
  */
 #define DMA_ATTR_PRIVILEGED		(1UL << 9)
 
+/*
+ * DMA_ATTR_MMIO - Indicates memory-mapped I/O (MMIO) region for DMA mapping
+ *
+ * This attribute indicates the physical address is not normal system
+ * memory. It may not be used with kmap*()/phys_to_virt()/phys_to_page()
+ * functions, it may not be cacheable, and access using CPU load/store
+ * instructions may not be allowed.
+ *
+ * Usually this will be used to describe MMIO addresses, or other non-cacheable
+ * register addresses. When DMA mapping this sort of address we call
+ * the operation Peer to Peer as a one device is DMA'ing to another device.
+ * For PCI devices the p2pdma APIs must be used to determine if DMA_ATTR_MMIO
+ * is appropriate.
+ *
+ * For architectures that require cache flushing for DMA coherence
+ * DMA_ATTR_MMIO will not perform any cache flushing. The address
+ * provided must never be mapped cacheable into the CPU.
+ */
+#define DMA_ATTR_MMIO		(1UL << 10)
+
 /*
  * A dma_addr_t can hold any valid DMA or bus address for the platform.  It can
  * be given to a device to use as a DMA source or target.  It is specific to a
diff --git a/include/trace/events/dma.h b/include/trace/events/dma.h
index d8ddc27b6a7c..ee90d6f1dcf3 100644
--- a/include/trace/events/dma.h
+++ b/include/trace/events/dma.h
@@ -31,7 +31,8 @@ TRACE_DEFINE_ENUM(DMA_NONE);
 		{ DMA_ATTR_FORCE_CONTIGUOUS, "FORCE_CONTIGUOUS" }, \
 		{ DMA_ATTR_ALLOC_SINGLE_PAGES, "ALLOC_SINGLE_PAGES" }, \
 		{ DMA_ATTR_NO_WARN, "NO_WARN" }, \
-		{ DMA_ATTR_PRIVILEGED, "PRIVILEGED" })
+		{ DMA_ATTR_PRIVILEGED, "PRIVILEGED" }, \
+		{ DMA_ATTR_MMIO, "MMIO" })
 
 DECLARE_EVENT_CLASS(dma_map,
 	TP_PROTO(struct device *dev, phys_addr_t phys_addr, dma_addr_t dma_addr,
diff --git a/rust/kernel/dma.rs b/rust/kernel/dma.rs
index 2bc8ab51ec28..61d9eed7a786 100644
--- a/rust/kernel/dma.rs
+++ b/rust/kernel/dma.rs
@@ -242,6 +242,9 @@ pub mod attrs {
     /// Indicates that the buffer is fully accessible at an elevated privilege level (and
     /// ideally inaccessible or at least read-only at lesser-privileged levels).
     pub const DMA_ATTR_PRIVILEGED: Attrs = Attrs(bindings::DMA_ATTR_PRIVILEGED);
+
+    /// Indicates that the buffer is MMIO memory.
+    pub const DMA_ATTR_MMIO: Attrs = Attrs(bindings::DMA_ATTR_MMIO);
 }
 
 /// An abstraction of the `dma_alloc_coherent` API.
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 19 17:37:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 17:37:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086745.1444937 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoQHJ-0007RR-Vd; Tue, 19 Aug 2025 17:37:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086745.1444937; Tue, 19 Aug 2025 17:37: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 1uoQHJ-0007RI-Qg; Tue, 19 Aug 2025 17:37:45 +0000
Received: by outflank-mailman (input) for mailman id 1086745;
 Tue, 19 Aug 2025 17:37:45 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ve3E=27=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1uoQHJ-0007Pa-1b
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 17:37:45 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org
 [2604:1380:4641:c500::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 356d4b61-7d23-11f0-a32a-13f23c93f187;
 Tue, 19 Aug 2025 19:37:43 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 7C8405C64F0;
 Tue, 19 Aug 2025 17:37:41 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 53FEBC116B1;
 Tue, 19 Aug 2025 17:37:39 +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>
X-Inumbo-ID: 356d4b61-7d23-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755625061;
	bh=mXPBKGOTAXMaA8YnIACrT4VeK6ColaZH6f/lOi0T5+M=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=ZcfXQzEMtP4+AZ86jo3dtO0Oekoz5PxnIpxVGiM0bP5sSs9WMxZsIT5kYk/VnUi3R
	 /kc0Vzr2i3fBfcwwoPTgAmdyvW5ST0B2y1uv9wp+i8hWG5QgN6gN0jrKDriRJyNDRP
	 26rMrCRUHHKb1TjV3vj8pKsHfYCF8VeZXtu9+b4Vsvi65u3DslqBcB4jsQub3Gt2qD
	 KJFY83CBFYAED4nL0OxEGnoJhmf5HiiRJ0eyTbwf76fL/xpbF4kq0K7Xr5ssJRHfaG
	 Znxa2J61vk0Pu5GfNVrDFyX+mri+BrC7qwdiENTcRxzxBPp/BwoEirtjDV08OZLE7g
	 87wPEgWDV7Xzg==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v4 02/16] iommu/dma: implement DMA_ATTR_MMIO for dma_iova_link().
Date: Tue, 19 Aug 2025 20:36:46 +0300
Message-ID: <62d9a6c3ca03037631f6d0640ebec5fbac41d547.1755624249.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755624249.git.leon@kernel.org>
References: <cover.1755624249.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

This will replace the hacky use of DMA_ATTR_SKIP_CPU_SYNC to avoid
touching the possibly non-KVA MMIO memory.

Also correct the incorrect caching attribute for the IOMMU, MMIO
memory should not be cachable inside the IOMMU mapping or it can
possibly create system problems. Set IOMMU_MMIO for DMA_ATTR_MMIO.

Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 drivers/iommu/dma-iommu.c | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
index ea2ef53bd4fe..e1185ba73e23 100644
--- a/drivers/iommu/dma-iommu.c
+++ b/drivers/iommu/dma-iommu.c
@@ -724,7 +724,12 @@ static int iommu_dma_init_domain(struct iommu_domain *domain, struct device *dev
 static int dma_info_to_prot(enum dma_data_direction dir, bool coherent,
 		     unsigned long attrs)
 {
-	int prot = coherent ? IOMMU_CACHE : 0;
+	int prot;
+
+	if (attrs & DMA_ATTR_MMIO)
+		prot = IOMMU_MMIO;
+	else
+		prot = coherent ? IOMMU_CACHE : 0;
 
 	if (attrs & DMA_ATTR_PRIVILEGED)
 		prot |= IOMMU_PRIV;
@@ -1838,12 +1843,13 @@ static int __dma_iova_link(struct device *dev, dma_addr_t addr,
 		unsigned long attrs)
 {
 	bool coherent = dev_is_dma_coherent(dev);
+	int prot = dma_info_to_prot(dir, coherent, attrs);
 
-	if (!coherent && !(attrs & DMA_ATTR_SKIP_CPU_SYNC))
+	if (!coherent && !(attrs & (DMA_ATTR_SKIP_CPU_SYNC | DMA_ATTR_MMIO)))
 		arch_sync_dma_for_device(phys, size, dir);
 
 	return iommu_map_nosync(iommu_get_dma_domain(dev), addr, phys, size,
-			dma_info_to_prot(dir, coherent, attrs), GFP_ATOMIC);
+			prot, GFP_ATOMIC);
 }
 
 static int iommu_dma_iova_bounce_and_link(struct device *dev, dma_addr_t addr,
@@ -1949,9 +1955,13 @@ int dma_iova_link(struct device *dev, struct dma_iova_state *state,
 		return -EIO;
 
 	if (dev_use_swiotlb(dev, size, dir) &&
-	    iova_unaligned(iovad, phys, size))
+	    iova_unaligned(iovad, phys, size)) {
+		if (attrs & DMA_ATTR_MMIO)
+			return -EPERM;
+
 		return iommu_dma_iova_link_swiotlb(dev, state, phys, offset,
 				size, dir, attrs);
+	}
 
 	return __dma_iova_link(dev, state->addr + offset - iova_start_pad,
 			phys - iova_start_pad,
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 19 17:37:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 17:37:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086748.1444947 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoQHR-0007tu-7Q; Tue, 19 Aug 2025 17:37:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086748.1444947; Tue, 19 Aug 2025 17:37: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 1uoQHR-0007tk-2b; Tue, 19 Aug 2025 17:37:53 +0000
Received: by outflank-mailman (input) for mailman id 1086748;
 Tue, 19 Aug 2025 17:37:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ve3E=27=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1uoQHP-0006dc-FQ
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 17:37:51 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org
 [2600:3c04:e001:324:0:1991:8:25])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3932ac95-7d23-11f0-b898-0df219b8e170;
 Tue, 19 Aug 2025 19:37:49 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 68ED361428;
 Tue, 19 Aug 2025 17:37:47 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 20E31C4CEF4;
 Tue, 19 Aug 2025 17:37: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>
X-Inumbo-ID: 3932ac95-7d23-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755625067;
	bh=/KA5/iirzA+7NBo2WhreWFarQonN7Bxg4iw8kozROnk=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=OoY3cFH2dl227qnLV9qdRahXTo4iRGaE1ejAUo1nffsJP0oy41x+3H7L4v7i2x+3n
	 xubqfjQVTIQTYC5r+ENf4+KGcCnAUVsLcgjhKtSG7OSOwipn6OBplJzxmTdzuG0M9E
	 nOqACnOTvFp/m3vySJgCvla7yn84iC8kCcZYBJMh4R+MZ/b74GrWwrWb+iQMHKPL+t
	 NgcwvdawK6zK2SX4ql7GcDqU9F51bDD3j3M2HcQm4mmg1VmtQYwjFoitOFxvUHKbl3
	 rqW/Lkb1w2tnkNmZBZDtXk0WCZ8okhRrV49XpXjkU1fgNjQ27YX9a0l0afVRahDzUy
	 VvDsrkwd9UrzA==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v4 04/16] dma-mapping: rename trace_dma_*map_page to trace_dma_*map_phys
Date: Tue, 19 Aug 2025 20:36:48 +0300
Message-ID: <d7c9b5bedd4bacd78490799917948192dd537ca7.1755624249.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755624249.git.leon@kernel.org>
References: <cover.1755624249.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

As a preparation for following map_page -> map_phys API conversion,
let's rename trace_dma_*map_page() to be trace_dma_*map_phys().

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 include/trace/events/dma.h | 4 ++--
 kernel/dma/mapping.c       | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/include/trace/events/dma.h b/include/trace/events/dma.h
index ee90d6f1dcf3..84416c7d6bfa 100644
--- a/include/trace/events/dma.h
+++ b/include/trace/events/dma.h
@@ -72,7 +72,7 @@ DEFINE_EVENT(dma_map, name, \
 		 size_t size, enum dma_data_direction dir, unsigned long attrs), \
 	TP_ARGS(dev, phys_addr, dma_addr, size, dir, attrs))
 
-DEFINE_MAP_EVENT(dma_map_page);
+DEFINE_MAP_EVENT(dma_map_phys);
 DEFINE_MAP_EVENT(dma_map_resource);
 
 DECLARE_EVENT_CLASS(dma_unmap,
@@ -110,7 +110,7 @@ DEFINE_EVENT(dma_unmap, name, \
 		 enum dma_data_direction dir, unsigned long attrs), \
 	TP_ARGS(dev, addr, size, dir, attrs))
 
-DEFINE_UNMAP_EVENT(dma_unmap_page);
+DEFINE_UNMAP_EVENT(dma_unmap_phys);
 DEFINE_UNMAP_EVENT(dma_unmap_resource);
 
 DECLARE_EVENT_CLASS(dma_alloc_class,
diff --git a/kernel/dma/mapping.c b/kernel/dma/mapping.c
index 4c1dfbabb8ae..fe1f0da6dc50 100644
--- a/kernel/dma/mapping.c
+++ b/kernel/dma/mapping.c
@@ -173,7 +173,7 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
 	else
 		addr = ops->map_page(dev, page, offset, size, dir, attrs);
 	kmsan_handle_dma(page, offset, size, dir);
-	trace_dma_map_page(dev, phys, addr, size, dir, attrs);
+	trace_dma_map_phys(dev, phys, addr, size, dir, attrs);
 	debug_dma_map_phys(dev, phys, size, dir, addr, attrs);
 
 	return addr;
@@ -193,7 +193,7 @@ void dma_unmap_page_attrs(struct device *dev, dma_addr_t addr, size_t size,
 		iommu_dma_unmap_page(dev, addr, size, dir, attrs);
 	else
 		ops->unmap_page(dev, addr, size, dir, attrs);
-	trace_dma_unmap_page(dev, addr, size, dir, attrs);
+	trace_dma_unmap_phys(dev, addr, size, dir, attrs);
 	debug_dma_unmap_phys(dev, addr, size, dir);
 }
 EXPORT_SYMBOL(dma_unmap_page_attrs);
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 19 17:37:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 17:37:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086754.1444957 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoQHW-0008Lv-Jx; Tue, 19 Aug 2025 17:37:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086754.1444957; Tue, 19 Aug 2025 17: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 1uoQHW-0008Lj-FE; Tue, 19 Aug 2025 17:37:58 +0000
Received: by outflank-mailman (input) for mailman id 1086754;
 Tue, 19 Aug 2025 17:37:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ve3E=27=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1uoQHU-0006dc-EW
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 17:37:56 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3c535cb3-7d23-11f0-b898-0df219b8e170;
 Tue, 19 Aug 2025 19:37:54 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 8D1F260209;
 Tue, 19 Aug 2025 17:37:53 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 16E9AC4CEF4;
 Tue, 19 Aug 2025 17:37:52 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3c535cb3-7d23-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755625073;
	bh=dJuAJRFwFKXIJkybNGJNx5df3xqMYXp7O5ndEMDZg04=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=KCfTK4M16fZcS3idu4B2UtcPGBxqBCQW/ThUlPcSPjuZpk9imzaVn20BMZHpPLbyc
	 3sv0wYVSp65eod2nGPwJoVRbqWUP8iwVx1qGbM406J7EQpm2oXaICC90d6Ro5TVuLo
	 TYKUR+gfoaSSqlCAv5Zfuuwbhw+6pj13nHVJkk9nSAsT5zgqNZmrwO925lW0owpuEU
	 q+J3Pg0hHwFJc1ESksWCrS/+yq6AvaPGtnZ/mQ6gvtWd96ELDPoDM/2hRZRbzxrJGH
	 3nVNacD9SmUqnDN3yL+Ud7ESjKc3S/vPtHWyLZM7vnsGB7Xxfh7jUyQGNO7ifQQ+BT
	 knehqEHs781Uw==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v4 06/16] iommu/dma: extend iommu_dma_*map_phys API to handle MMIO memory
Date: Tue, 19 Aug 2025 20:36:50 +0300
Message-ID: <4f84639baf6d5d0e107fd2001dff91b6538ff9ae.1755624249.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755624249.git.leon@kernel.org>
References: <cover.1755624249.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

Combine iommu_dma_*map_phys with iommu_dma_*map_resource interfaces in
order to allow single phys_addr_t flow.

In the following patches, the iommu_dma_map_resource() will be removed
in favour of iommu_dma_map_phys(..., attrs | DMA_ATTR_MMIO) flow.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 drivers/iommu/dma-iommu.c | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
index aea119f32f96..6804aaf034a1 100644
--- a/drivers/iommu/dma-iommu.c
+++ b/drivers/iommu/dma-iommu.c
@@ -1211,16 +1211,19 @@ dma_addr_t iommu_dma_map_phys(struct device *dev, phys_addr_t phys, size_t size,
 	 */
 	if (dev_use_swiotlb(dev, size, dir) &&
 	    iova_unaligned(iovad, phys, size)) {
+		if (attrs & DMA_ATTR_MMIO)
+			return DMA_MAPPING_ERROR;
+
 		phys = iommu_dma_map_swiotlb(dev, phys, size, dir, attrs);
 		if (phys == (phys_addr_t)DMA_MAPPING_ERROR)
 			return DMA_MAPPING_ERROR;
 	}
 
-	if (!coherent && !(attrs & DMA_ATTR_SKIP_CPU_SYNC))
+	if (!coherent && !(attrs & (DMA_ATTR_SKIP_CPU_SYNC | DMA_ATTR_MMIO)))
 		arch_sync_dma_for_device(phys, size, dir);
 
 	iova = __iommu_dma_map(dev, phys, size, prot, dma_mask);
-	if (iova == DMA_MAPPING_ERROR)
+	if (iova == DMA_MAPPING_ERROR && !(attrs & DMA_ATTR_MMIO))
 		swiotlb_tbl_unmap_single(dev, phys, size, dir, attrs);
 	return iova;
 }
@@ -1228,10 +1231,14 @@ dma_addr_t iommu_dma_map_phys(struct device *dev, phys_addr_t phys, size_t size,
 void iommu_dma_unmap_phys(struct device *dev, dma_addr_t dma_handle,
 		size_t size, enum dma_data_direction dir, unsigned long attrs)
 {
-	struct iommu_domain *domain = iommu_get_dma_domain(dev);
 	phys_addr_t phys;
 
-	phys = iommu_iova_to_phys(domain, dma_handle);
+	if (attrs & DMA_ATTR_MMIO) {
+		__iommu_dma_unmap(dev, dma_handle, size);
+		return;
+	}
+
+	phys = iommu_iova_to_phys(iommu_get_dma_domain(dev), dma_handle);
 	if (WARN_ON(!phys))
 		return;
 
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 19 17:40:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 17:40:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086776.1444966 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoQK4-0002IO-VX; Tue, 19 Aug 2025 17:40:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086776.1444966; Tue, 19 Aug 2025 17:40: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 1uoQK4-0002IH-Sd; Tue, 19 Aug 2025 17:40:36 +0000
Received: by outflank-mailman (input) for mailman id 1086776;
 Tue, 19 Aug 2025 17:40:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=xG4o=27=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1uoQK4-0002IB-1h
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 17:40:36 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20616.outbound.protection.outlook.com
 [2a01:111:f403:2418::616])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9ae6f843-7d23-11f0-b898-0df219b8e170;
 Tue, 19 Aug 2025 19:40:33 +0200 (CEST)
Received: from SA0PR11CA0077.namprd11.prod.outlook.com (2603:10b6:806:d2::22)
 by IA0PR12MB8931.namprd12.prod.outlook.com (2603:10b6:208:48a::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.18; Tue, 19 Aug
 2025 17:40:29 +0000
Received: from SN1PEPF000252A3.namprd05.prod.outlook.com
 (2603:10b6:806:d2:cafe::a9) by SA0PR11CA0077.outlook.office365.com
 (2603:10b6:806:d2::22) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9031.22 via Frontend Transport; Tue,
 19 Aug 2025 17:40:29 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SN1PEPF000252A3.mail.protection.outlook.com (10.167.242.10) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Tue, 19 Aug 2025 17:40:28 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) 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, 19 Aug
 2025 12:40:28 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 19 Aug
 2025 12:40:28 -0500
Received: from [172.28.207.84] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Tue, 19 Aug 2025 12:40:27 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9ae6f843-7d23-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yvldbD4WCWC4Pbp3ws+7hwzCwLvYj6BokDqbdwyfNO8hzj4mbUR7QSV3M/+tGwj5wYtPPscEmcwZxGmIZ6X4GCLxx8AvcGTRzxLJ4Xu9c31NNwkLpmoSocEARgGTLdS0kCeC+0U2uDXEikL23gQIKSQCq9Jf7U2ev6S7iWXHLBF1uSoe988qYkWxncdu48FeYWkNq4v54L9BmNRk7geAsjj6Oh12BlG+OunPUXC4HrmUowZ3ScpkmdjoX43hdEkG8Wuf8Wm8eiwJOt5eYqdKpB2XLdA0i6RyNE+/GtHhqinhDEBHKidpJZ6HEv3sN/QWbN+GD8bHw2oJSssoG+ABZw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=I1BdeOuf9QUOOuYzEZ6NTRNDJNMVnMY5NhMV7Sz1540=;
 b=OwDhedBmyYgAFLoYSbE7XImM44ioCeRGurfiroOmMii0U2VSdRNDr86rhfHp0ZsvygSPjfsxwAPrhrKzNfBAfWaizKI5Erj309mX6Zl/YqlGlBPS4QxbBXaK7aYh6TZqEy9B4UdfMtmhUByyGqB0Kzc6fDONr9dTF6jPLpyCxhrSUdFUMQW2xqSovXfiGBFl5P0Jj4yHRoLdJWzseAmNdE77QyqFwDFfrixN9lQ0W6j9RFcJxncFD+2B9rXOPVFdpHjNwE6sIe8IaZFacyQySgs5ZchZxeExyUrcADMpoopgh0YxvARTEUM56CJ/s5iDiZwt2DKfT/MvpkRJqfgRVw==
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=I1BdeOuf9QUOOuYzEZ6NTRNDJNMVnMY5NhMV7Sz1540=;
 b=IZiEhFAJfiIYdzxeayy5CP7pUM2GZM16vK5I529bYOfq9asH2N4CQP6L1HnQCG/spTHnkp5KLkTliFRwT2nngkcd49d8xoiCXyYo6qQ3dUo/JVF70WLXMxFvwUSyR4yWaB6EW/74hokJ4XRbP3Q4CukgOLYy6A7+EtrONILlUJw=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <da23dabd-8e48-414c-b36c-d36ea7ca9d79@amd.com>
Date: Tue, 19 Aug 2025 13:40:26 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/2] Arm: drop assertion from page_is_ram_type()
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>, Oleksii Kurochko <oleksii.kurochko@gmail.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>
References: <a2dc40a8-908a-44a7-b443-90f492a775cc@suse.com>
 <753ce2a1-8d9c-41ba-a066-abf6f625cb60@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <753ce2a1-8d9c-41ba-a066-abf6f625cb60@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF000252A3:EE_|IA0PR12MB8931:EE_
X-MS-Office365-Filtering-Correlation-Id: 98a65777-a469-45eb-8a71-08dddf477d05
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|7416014|1800799024|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?ckZaUy9BRmJkV0gzdDhuTlhnQ21oV2c4Tkw4SlVZQm1kWEU2ZjRqRlpNa2l6?=
 =?utf-8?B?V0dHOXB3NVEzRkM1YmU1SzhKUmlsaWJBTEE2clBmN0ZITHpNbHl6ZllSYXpE?=
 =?utf-8?B?eTUyTjllY21NMU52U0E0WU45VFpDamJEUUZLeUhVQjFrMmtvMWdibnNEcThS?=
 =?utf-8?B?NDd6T2wxb1UzTnBUbms1K2QyQWRPKzN1QTY4RnRlY0Y5d1Z0dzEyK2t2aWRs?=
 =?utf-8?B?SmpJVktSZVhSaDRkWVlCbW1pY3pqNWRnT2tlTnRSVHExQmcxWHFKK2Y0ZEo3?=
 =?utf-8?B?NXhrOVc4bFRQczBQMXpZL2pLQzk2VE5XNzlqR2JhRXVCUHVoUHV6aHdQU01r?=
 =?utf-8?B?QlBPajRpZDlFSDVnMUNYVEVzRmorRHc5bkljZFFBdXdYaFprVXB1K3BYSHY5?=
 =?utf-8?B?bjdHMkpkSUx6REdCVUg5Y1EvUS9YcTJQVndHMVQrSU9GMC9jTkd3K014UnJI?=
 =?utf-8?B?azFRcmQvb3FmUXRRcnZtQjZ3V3h3YTVybG9BbHpLWnpWcUJsRzZ3ZDZ6eG83?=
 =?utf-8?B?UGJwcWNUZzJtK01jRXNzS2MrZG1HL3UyUHNTUWtadHJJdElUcnBxTDBNbzhZ?=
 =?utf-8?B?OUlvOU5jbFdtcmd2RW10aXhMUnZNQmEybXE4dXVVSWdoU1R4VVFzdHJkSzFJ?=
 =?utf-8?B?bmFLR2VWOCtVa2ZtbzgvT3BrUkYvb1lnYzlOaHp2a0Vac0RRWHZhODUvN2w0?=
 =?utf-8?B?bkN2V1VyM3IwUDVyT0l4RzBBOEJ3RWRXS1NiYmIvbXVvdU9Hbkc2U1FITG1R?=
 =?utf-8?B?TTRNbTQrYks0VTBPTmFCOS9TR3hCSldEK2JFUjJMSk9hT0pHZ0hwd3h2QkFs?=
 =?utf-8?B?ajAzcHpHNjZFMlhmN1N5TnRweUw2RUxpbVlBWGlibTNvUE5mMEVyTGJoUVNG?=
 =?utf-8?B?eFYyVmNiTFI4N21INUlGbGF0OHFCdVBqMUVEZVluOUNkeGdXRDNQd2hWTjhu?=
 =?utf-8?B?YlNwZUVHZXZiaGxobXIvVG14ajd5eWVxU05GSnNjYUUvSlFZQWhHTVBwRTlQ?=
 =?utf-8?B?KzQxRmw1cFBKLzFHcWVRc1kra1VvVmJ0clZYbGFnYVphVUxQMlEydFRDY05t?=
 =?utf-8?B?aDJuNHNGQlJmVU5OUG9VYzdRcmc5YkVPY0MxdXArWFJDd2NuQlhTMzBpQ2Y4?=
 =?utf-8?B?OVQxTStpOWxyNDZzUEVNcnFZVEtuemhzUUxXcmJIeXV2TEhKbTdSSnBFZURU?=
 =?utf-8?B?Z0RRYXh2VGdBUmlZWThuM0ZjOVdidDlOWDZ0RXpnbE82RGtCcFg3QzlmSjhF?=
 =?utf-8?B?Y2FSa1lpVUg1R3hnUjl1SE1ndklHMGpLZlVzVVEvYlVveFRtdk1yTGlzNzRp?=
 =?utf-8?B?bmZxZFAwSlhjZUl4Skh3dnlvdjk1S2cvRTIybXUyY1ZlTlkvOTJkZ0hpcXg3?=
 =?utf-8?B?N094emVIYTJaUnJubUUvMHloVnF5dVNaSkNwbUt2YXlhbFlEVG9vN1JrVjdG?=
 =?utf-8?B?M3drYk5uZjZrRUFqKzdWWmpJSEFqaHRQK1R3R1BhY3J5aUFpekY2eWt5T3d4?=
 =?utf-8?B?eGlVcDhQeUtzWHAvUWRvK01ma3Q0UmFZcHBrRnkrSzBxZEVOamlsM1YvY010?=
 =?utf-8?B?L2hHWE9tVXkvT3FHNGRtMW1sVVFRK1YwSUxWeW1nR3JnRzNlR08ydDFyYjR5?=
 =?utf-8?B?VDdPVWdndUdzcDhrQ05hN0I2Y0tSVGR5a0JxQkZzY0thTmxBNmluck1TaHd2?=
 =?utf-8?B?WDFxdm1PVEtaZ213T3c2Vm44Vk10RDRvUmFoajVCS0pjNmd3STd1TWdsSU94?=
 =?utf-8?B?WHRnbFQrU21TdFZhYUVGWVVDUjZ3N3c4blFOVGZ0bUo5bzR5bjdJV3k5dWx4?=
 =?utf-8?B?M3J1ZnNsaW1ScmFTTDBSSDRnMGpVTmVQd1c4NkhzcVRwRkozUXFScktIMWlx?=
 =?utf-8?B?Y3pqSzlLZzI3bDhFWGxlZGhJMUVZZ0xIWFZsWWJSMzQwWmxCSi9adXlWaC8z?=
 =?utf-8?B?QitzZ2VhR2dwSEFWclFnd2lQNVBSTlBtWWdOSG5EeWdYOHBHcHNBRXA0dzV4?=
 =?utf-8?B?QjBlUDRkY05WWjFidjVSQXNTR0xQTnk3YTFvbVh5R1ZWK0dLSFUzRHA0ZkJ2?=
 =?utf-8?Q?wj+FmA?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(7416014)(1800799024)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Aug 2025 17:40:28.8920
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 98a65777-a469-45eb-8a71-08dddf477d05
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF000252A3.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB8931

On 2025-08-18 03:55, Jan Beulich wrote:
> Its uses in offline_page() and query_page_offline() make it reachable on
> Arm, as long as XEN_SYSCTL_page_offline_op doesn't have any Arm-specific
> code added. It being reachable was even mentioned in the commit
> introducing it, claiming it "clearly shouldn't be called on ARM just
> yet".
> 
> However, dropping the assertion from a function of this name is deemed
> problematic. Rename it to better reflect its sole purpose outside of
> x86-specific code.
> 
> Fixes: 214c4cd94a80 ("xen: arm: stub page_is_ram_type")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>


From xen-devel-bounces@lists.xenproject.org Tue Aug 19 17:40:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 17:40:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086777.1444977 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoQKA-0002dG-8s; Tue, 19 Aug 2025 17:40:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086777.1444977; Tue, 19 Aug 2025 17:40: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 1uoQKA-0002d9-2w; Tue, 19 Aug 2025 17:40:42 +0000
Received: by outflank-mailman (input) for mailman id 1086777;
 Tue, 19 Aug 2025 17:40:41 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ve3E=27=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1uoQHh-0007Pa-K5
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 17:38:09 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 43b9b082-7d23-11f0-a32a-13f23c93f187;
 Tue, 19 Aug 2025 19:38:07 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id CB1DE61427;
 Tue, 19 Aug 2025 17:38:05 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 763E9C4CEF4;
 Tue, 19 Aug 2025 17:38:04 +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>
X-Inumbo-ID: 43b9b082-7d23-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755625085;
	bh=vOnEIp8ay7pVjNUnKwOoXsO+91/AeyefXChuEBTVE5g=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=rckaxg/qWggS3yq9CRcEqXJepOI3KHmAMFVfIxSq3QU8dYlaQtIY5AGAv+3ZAknrw
	 va+9dIqf0dcgBkMCCgTJPh62w7lV6883lFxluwRpp8NV+Cu9sxFyFjRHfRgpPHQQU7
	 u6tUlVjWJJxQ+TETuPt4lw8dv8eZUaK/FebEmWLEzYynXw2fXQyieBYPhuEdRHLWxY
	 GKsKmKSR79/UJS1Cwx6aDDiWWyjzR6EM43aSSEjB2zQ7ycrT4bCmQzsqogbyyCUd81
	 i/loHMusMs1LtWddq1dcYpxx3VKPYjG8sD/Z1438z7i4Y8MTS78q5XVw18G/G6APkq
	 W75visNWTZpgg==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v4 07/16] dma-mapping: convert dma_direct_*map_page to be phys_addr_t based
Date: Tue, 19 Aug 2025 20:36:51 +0300
Message-ID: <3faa9c978e243a904ffe01496148c4563dc9274e.1755624249.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755624249.git.leon@kernel.org>
References: <cover.1755624249.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

Convert the DMA direct mapping functions to accept physical addresses
directly instead of page+offset parameters. The functions were already
operating on physical addresses internally, so this change eliminates
the redundant page-to-physical conversion at the API boundary.

The functions dma_direct_map_page() and dma_direct_unmap_page() are
renamed to dma_direct_map_phys() and dma_direct_unmap_phys() respectively,
with their calling convention changed from (struct page *page,
unsigned long offset) to (phys_addr_t phys).

Architecture-specific functions arch_dma_map_page_direct() and
arch_dma_unmap_page_direct() are similarly renamed to
arch_dma_map_phys_direct() and arch_dma_unmap_phys_direct().

The is_pci_p2pdma_page() checks are replaced with DMA_ATTR_MMIO checks
to allow integration with dma_direct_map_resource and dma_direct_map_phys()
is extended to support MMIO path either.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 arch/powerpc/kernel/dma-iommu.c |  4 +--
 include/linux/dma-map-ops.h     |  8 ++---
 kernel/dma/direct.c             |  6 ++--
 kernel/dma/direct.h             | 52 +++++++++++++++++++++------------
 kernel/dma/mapping.c            |  8 ++---
 5 files changed, 46 insertions(+), 32 deletions(-)

diff --git a/arch/powerpc/kernel/dma-iommu.c b/arch/powerpc/kernel/dma-iommu.c
index 4d64a5db50f3..0359ab72cd3b 100644
--- a/arch/powerpc/kernel/dma-iommu.c
+++ b/arch/powerpc/kernel/dma-iommu.c
@@ -14,7 +14,7 @@
 #define can_map_direct(dev, addr) \
 	((dev)->bus_dma_limit >= phys_to_dma((dev), (addr)))
 
-bool arch_dma_map_page_direct(struct device *dev, phys_addr_t addr)
+bool arch_dma_map_phys_direct(struct device *dev, phys_addr_t addr)
 {
 	if (likely(!dev->bus_dma_limit))
 		return false;
@@ -24,7 +24,7 @@ bool arch_dma_map_page_direct(struct device *dev, phys_addr_t addr)
 
 #define is_direct_handle(dev, h) ((h) >= (dev)->archdata.dma_offset)
 
-bool arch_dma_unmap_page_direct(struct device *dev, dma_addr_t dma_handle)
+bool arch_dma_unmap_phys_direct(struct device *dev, dma_addr_t dma_handle)
 {
 	if (likely(!dev->bus_dma_limit))
 		return false;
diff --git a/include/linux/dma-map-ops.h b/include/linux/dma-map-ops.h
index f48e5fb88bd5..71f5b3025415 100644
--- a/include/linux/dma-map-ops.h
+++ b/include/linux/dma-map-ops.h
@@ -392,15 +392,15 @@ void *arch_dma_set_uncached(void *addr, size_t size);
 void arch_dma_clear_uncached(void *addr, size_t size);
 
 #ifdef CONFIG_ARCH_HAS_DMA_MAP_DIRECT
-bool arch_dma_map_page_direct(struct device *dev, phys_addr_t addr);
-bool arch_dma_unmap_page_direct(struct device *dev, dma_addr_t dma_handle);
+bool arch_dma_map_phys_direct(struct device *dev, phys_addr_t addr);
+bool arch_dma_unmap_phys_direct(struct device *dev, dma_addr_t dma_handle);
 bool arch_dma_map_sg_direct(struct device *dev, struct scatterlist *sg,
 		int nents);
 bool arch_dma_unmap_sg_direct(struct device *dev, struct scatterlist *sg,
 		int nents);
 #else
-#define arch_dma_map_page_direct(d, a)		(false)
-#define arch_dma_unmap_page_direct(d, a)	(false)
+#define arch_dma_map_phys_direct(d, a)		(false)
+#define arch_dma_unmap_phys_direct(d, a)	(false)
 #define arch_dma_map_sg_direct(d, s, n)		(false)
 #define arch_dma_unmap_sg_direct(d, s, n)	(false)
 #endif
diff --git a/kernel/dma/direct.c b/kernel/dma/direct.c
index 24c359d9c879..fa75e3070073 100644
--- a/kernel/dma/direct.c
+++ b/kernel/dma/direct.c
@@ -453,7 +453,7 @@ void dma_direct_unmap_sg(struct device *dev, struct scatterlist *sgl,
 		if (sg_dma_is_bus_address(sg))
 			sg_dma_unmark_bus_address(sg);
 		else
-			dma_direct_unmap_page(dev, sg->dma_address,
+			dma_direct_unmap_phys(dev, sg->dma_address,
 					      sg_dma_len(sg), dir, attrs);
 	}
 }
@@ -476,8 +476,8 @@ int dma_direct_map_sg(struct device *dev, struct scatterlist *sgl, int nents,
 			 */
 			break;
 		case PCI_P2PDMA_MAP_NONE:
-			sg->dma_address = dma_direct_map_page(dev, sg_page(sg),
-					sg->offset, sg->length, dir, attrs);
+			sg->dma_address = dma_direct_map_phys(dev, sg_phys(sg),
+					sg->length, dir, attrs);
 			if (sg->dma_address == DMA_MAPPING_ERROR) {
 				ret = -EIO;
 				goto out_unmap;
diff --git a/kernel/dma/direct.h b/kernel/dma/direct.h
index d2c0b7e632fc..92dbadcd3b2f 100644
--- a/kernel/dma/direct.h
+++ b/kernel/dma/direct.h
@@ -80,42 +80,56 @@ static inline void dma_direct_sync_single_for_cpu(struct device *dev,
 		arch_dma_mark_clean(paddr, size);
 }
 
-static inline dma_addr_t dma_direct_map_page(struct device *dev,
-		struct page *page, unsigned long offset, size_t size,
-		enum dma_data_direction dir, unsigned long attrs)
+static inline dma_addr_t dma_direct_map_phys(struct device *dev,
+		phys_addr_t phys, size_t size, enum dma_data_direction dir,
+		unsigned long attrs)
 {
-	phys_addr_t phys = page_to_phys(page) + offset;
-	dma_addr_t dma_addr = phys_to_dma(dev, phys);
+	dma_addr_t dma_addr;
+	bool capable;
 
 	if (is_swiotlb_force_bounce(dev)) {
-		if (is_pci_p2pdma_page(page))
-			return DMA_MAPPING_ERROR;
+		if (attrs & DMA_ATTR_MMIO)
+			goto err_overflow;
+
 		return swiotlb_map(dev, phys, size, dir, attrs);
 	}
 
-	if (unlikely(!dma_capable(dev, dma_addr, size, true)) ||
-	    dma_kmalloc_needs_bounce(dev, size, dir)) {
-		if (is_pci_p2pdma_page(page))
-			return DMA_MAPPING_ERROR;
-		if (is_swiotlb_active(dev))
+	if (attrs & DMA_ATTR_MMIO)
+		dma_addr = phys;
+	else
+		dma_addr = phys_to_dma(dev, phys);
+
+	capable = dma_capable(dev, dma_addr, size, !(attrs & DMA_ATTR_MMIO));
+	if (unlikely(!capable) || dma_kmalloc_needs_bounce(dev, size, dir)) {
+		if (is_swiotlb_active(dev) && !(attrs & DMA_ATTR_MMIO))
 			return swiotlb_map(dev, phys, size, dir, attrs);
 
-		dev_WARN_ONCE(dev, 1,
-			     "DMA addr %pad+%zu overflow (mask %llx, bus limit %llx).\n",
-			     &dma_addr, size, *dev->dma_mask, dev->bus_dma_limit);
-		return DMA_MAPPING_ERROR;
+		goto err_overflow;
 	}
 
-	if (!dev_is_dma_coherent(dev) && !(attrs & DMA_ATTR_SKIP_CPU_SYNC))
+	if (!dev_is_dma_coherent(dev) &&
+	    !(attrs & (DMA_ATTR_SKIP_CPU_SYNC | DMA_ATTR_MMIO)))
 		arch_sync_dma_for_device(phys, size, dir);
 	return dma_addr;
+
+err_overflow:
+	dev_WARN_ONCE(
+		dev, 1,
+		"DMA addr %pad+%zu overflow (mask %llx, bus limit %llx).\n",
+		&dma_addr, size, *dev->dma_mask, dev->bus_dma_limit);
+	return DMA_MAPPING_ERROR;
 }
 
-static inline void dma_direct_unmap_page(struct device *dev, dma_addr_t addr,
+static inline void dma_direct_unmap_phys(struct device *dev, dma_addr_t addr,
 		size_t size, enum dma_data_direction dir, unsigned long attrs)
 {
-	phys_addr_t phys = dma_to_phys(dev, addr);
+	phys_addr_t phys;
+
+	if (attrs & DMA_ATTR_MMIO)
+		/* nothing to do: uncached and no swiotlb */
+		return;
 
+	phys = dma_to_phys(dev, addr);
 	if (!(attrs & DMA_ATTR_SKIP_CPU_SYNC))
 		dma_direct_sync_single_for_cpu(dev, addr, size, dir);
 
diff --git a/kernel/dma/mapping.c b/kernel/dma/mapping.c
index 58482536db9b..80481a873340 100644
--- a/kernel/dma/mapping.c
+++ b/kernel/dma/mapping.c
@@ -166,8 +166,8 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
 		return DMA_MAPPING_ERROR;
 
 	if (dma_map_direct(dev, ops) ||
-	    arch_dma_map_page_direct(dev, phys + size))
-		addr = dma_direct_map_page(dev, page, offset, size, dir, attrs);
+	    arch_dma_map_phys_direct(dev, phys + size))
+		addr = dma_direct_map_phys(dev, phys, size, dir, attrs);
 	else if (use_dma_iommu(dev))
 		addr = iommu_dma_map_phys(dev, phys, size, dir, attrs);
 	else
@@ -187,8 +187,8 @@ void dma_unmap_page_attrs(struct device *dev, dma_addr_t addr, size_t size,
 
 	BUG_ON(!valid_dma_direction(dir));
 	if (dma_map_direct(dev, ops) ||
-	    arch_dma_unmap_page_direct(dev, addr + size))
-		dma_direct_unmap_page(dev, addr, size, dir, attrs);
+	    arch_dma_unmap_phys_direct(dev, addr + size))
+		dma_direct_unmap_phys(dev, addr, size, dir, attrs);
 	else if (use_dma_iommu(dev))
 		iommu_dma_unmap_phys(dev, addr, size, dir, attrs);
 	else
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 19 17:40:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 17:40:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086783.1444988 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoQKC-00032Y-IO; Tue, 19 Aug 2025 17:40:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086783.1444988; Tue, 19 Aug 2025 17:40: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 1uoQKC-00032O-CP; Tue, 19 Aug 2025 17:40:44 +0000
Received: by outflank-mailman (input) for mailman id 1086783;
 Tue, 19 Aug 2025 17:40:42 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ve3E=27=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1uoQHn-0007Pa-LG
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 17:38:15 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org
 [2600:3c04:e001:324:0:1991:8:25])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4709297f-7d23-11f0-a32a-13f23c93f187;
 Tue, 19 Aug 2025 19:38:12 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 7FC7261429;
 Tue, 19 Aug 2025 17:38:11 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id E0661C4CEF4;
 Tue, 19 Aug 2025 17:38:09 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4709297f-7d23-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755625091;
	bh=6kQRc8M4kSTN6oNlv6UupesxmLI8KrU+a1TL4nhd0iE=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=f0VJAtsVM5u2o6C1nUp18HimKN2EfCmaIhrfHn2QNSc0GqPof7zC6NvZWtW7WxBRR
	 p3RzrCBavtqMekvMpM+FFh/Cujilw/RqORiadfmgV0O0WPFzb3zoh9fG9NtA2SaKoT
	 4uJuPVNsL+wJyPMLIlFVRwue/XQQMijoKpQiX1gYXGPLJHRcRcKooNhIu/RI+O4xTw
	 brcapoHDidTXn3mbpESixmE7uBDkslSxKOYNfAAHP/Nup/cmkLiUsTvpENQ4pVyy+t
	 J22UXxZ5+SPlhyjgcQ8KrBLrryIlymPi7z68rps63VS+W0pkPza1dnTv8/Usu1mzsw
	 k69P5i9HZUFVA==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v4 09/16] dma-mapping: handle MMIO flow in dma_map|unmap_page
Date: Tue, 19 Aug 2025 20:36:53 +0300
Message-ID: <ba5b6525bb8d49ca356a299aa63b0a495d3c74ca.1755624249.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755624249.git.leon@kernel.org>
References: <cover.1755624249.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

Extend base DMA page API to handle MMIO flow and follow
existing dma_map_resource() implementation to rely on dma_map_direct()
only to take DMA direct path.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 kernel/dma/mapping.c | 26 +++++++++++++++++++++-----
 1 file changed, 21 insertions(+), 5 deletions(-)

diff --git a/kernel/dma/mapping.c b/kernel/dma/mapping.c
index 891e1fc3e582..fdabfdaeff1d 100644
--- a/kernel/dma/mapping.c
+++ b/kernel/dma/mapping.c
@@ -158,6 +158,7 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
 {
 	const struct dma_map_ops *ops = get_dma_ops(dev);
 	phys_addr_t phys = page_to_phys(page) + offset;
+	bool is_mmio = attrs & DMA_ATTR_MMIO;
 	dma_addr_t addr;
 
 	BUG_ON(!valid_dma_direction(dir));
@@ -166,14 +167,25 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
 		return DMA_MAPPING_ERROR;
 
 	if (dma_map_direct(dev, ops) ||
-	    arch_dma_map_phys_direct(dev, phys + size))
+	    (!is_mmio && arch_dma_map_phys_direct(dev, phys + size)))
 		addr = dma_direct_map_phys(dev, phys, size, dir, attrs);
 	else if (use_dma_iommu(dev))
 		addr = iommu_dma_map_phys(dev, phys, size, dir, attrs);
-	else
+	else if (is_mmio) {
+		if (!ops->map_resource)
+			return DMA_MAPPING_ERROR;
+
+		addr = ops->map_resource(dev, phys, size, dir, attrs);
+	} else {
+		/*
+		 * The dma_ops API contract for ops->map_page() requires
+		 * kmappable memory, while ops->map_resource() does not.
+		 */
 		addr = ops->map_page(dev, page, offset, size, dir, attrs);
+	}
 
-	kmsan_handle_dma(phys, size, dir);
+	if (!is_mmio)
+		kmsan_handle_dma(phys, size, dir);
 	trace_dma_map_phys(dev, phys, addr, size, dir, attrs);
 	debug_dma_map_phys(dev, phys, size, dir, addr, attrs);
 
@@ -185,14 +197,18 @@ void dma_unmap_page_attrs(struct device *dev, dma_addr_t addr, size_t size,
 		enum dma_data_direction dir, unsigned long attrs)
 {
 	const struct dma_map_ops *ops = get_dma_ops(dev);
+	bool is_mmio = attrs & DMA_ATTR_MMIO;
 
 	BUG_ON(!valid_dma_direction(dir));
 	if (dma_map_direct(dev, ops) ||
-	    arch_dma_unmap_phys_direct(dev, addr + size))
+	    (!is_mmio && arch_dma_unmap_phys_direct(dev, addr + size)))
 		dma_direct_unmap_phys(dev, addr, size, dir, attrs);
 	else if (use_dma_iommu(dev))
 		iommu_dma_unmap_phys(dev, addr, size, dir, attrs);
-	else
+	else if (is_mmio) {
+		if (ops->unmap_resource)
+			ops->unmap_resource(dev, addr, size, dir, attrs);
+	} else
 		ops->unmap_page(dev, addr, size, dir, attrs);
 	trace_dma_unmap_phys(dev, addr, size, dir, attrs);
 	debug_dma_unmap_phys(dev, addr, size, dir);
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 19 17:40:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 17:40:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086791.1444997 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoQKD-0003Jz-Sb; Tue, 19 Aug 2025 17:40:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086791.1444997; Tue, 19 Aug 2025 17:40:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoQKD-0003Jq-Ou; Tue, 19 Aug 2025 17:40:45 +0000
Received: by outflank-mailman (input) for mailman id 1086791;
 Tue, 19 Aug 2025 17:40:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ve3E=27=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1uoQHy-0007Pa-Sa
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 17:38:27 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4ecd2465-7d23-11f0-a32a-13f23c93f187;
 Tue, 19 Aug 2025 19:38:25 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id CBE4C45A18;
 Tue, 19 Aug 2025 17:38:23 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id A9ADAC4CEF4;
 Tue, 19 Aug 2025 17:38:21 +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>
X-Inumbo-ID: 4ecd2465-7d23-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755625103;
	bh=BkEmu3z7RRGlp2YN9VORvYX5wSDL+7OOgFuObGZzrDs=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=fqZWHIaPxmym3ES9wSCC61mCQuVB6YNODqqEDE/lbwZG2XspwKEnjwHVAZ9AcIPa3
	 t709YFrkcihl72/5zKvoSuzsktD5uf94bGRJiBV3UhJbBK+0QSwOIKstILNXKftRXT
	 nRLHqFn8rTZXE/xnmTbt5z/Rb2zRv0RVRvV4oqgXXmyrPVGfP3CR3zErs72ufFoC8b
	 NPRpmlmae297Qsn6hEAMRoCoDXtqLmSArEFGS8y64h17gMofkpbJRIYZ85y8PajGaZ
	 y9EJQynlRN4iDR+7zPNeKxpydrvbS44TexooV0q/H6Ah2/eyzY8W/Vrq0UZV/AfN+p
	 Fc0TIXOJC71fA==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v4 11/16] dma-mapping: export new dma_*map_phys() interface
Date: Tue, 19 Aug 2025 20:36:55 +0300
Message-ID: <bb979e4620b3bdf2878e29b998d982185beefee0.1755624249.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755624249.git.leon@kernel.org>
References: <cover.1755624249.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

Introduce new DMA mapping functions dma_map_phys() and dma_unmap_phys()
that operate directly on physical addresses instead of page+offset
parameters. This provides a more efficient interface for drivers that
already have physical addresses available.

The new functions are implemented as the primary mapping layer, with
the existing dma_map_page_attrs()/dma_map_resource() and
dma_unmap_page_attrs()/dma_unmap_resource() functions converted to simple
wrappers around the phys-based implementations.

In case dma_map_page_attrs(), the struct page is converted to physical
address with help of page_to_phys() function and dma_map_resource()
provides physical address as is together with addition of DMA_ATTR_MMIO
attribute.

The old page-based API is preserved in mapping.c to ensure that existing
code won't be affected by changing EXPORT_SYMBOL to EXPORT_SYMBOL_GPL
variant for dma_*map_phys().

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 drivers/iommu/dma-iommu.c   | 14 --------
 include/linux/dma-direct.h  |  2 --
 include/linux/dma-mapping.h | 13 +++++++
 include/linux/iommu-dma.h   |  4 ---
 include/trace/events/dma.h  |  2 --
 kernel/dma/debug.c          | 43 -----------------------
 kernel/dma/debug.h          | 21 -----------
 kernel/dma/direct.c         | 16 ---------
 kernel/dma/mapping.c        | 69 ++++++++++++++++++++-----------------
 9 files changed, 50 insertions(+), 134 deletions(-)

diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
index 6804aaf034a1..7944a3af4545 100644
--- a/drivers/iommu/dma-iommu.c
+++ b/drivers/iommu/dma-iommu.c
@@ -1556,20 +1556,6 @@ void iommu_dma_unmap_sg(struct device *dev, struct scatterlist *sg, int nents,
 		__iommu_dma_unmap(dev, start, end - start);
 }
 
-dma_addr_t iommu_dma_map_resource(struct device *dev, phys_addr_t phys,
-		size_t size, enum dma_data_direction dir, unsigned long attrs)
-{
-	return __iommu_dma_map(dev, phys, size,
-			dma_info_to_prot(dir, false, attrs) | IOMMU_MMIO,
-			dma_get_mask(dev));
-}
-
-void iommu_dma_unmap_resource(struct device *dev, dma_addr_t handle,
-		size_t size, enum dma_data_direction dir, unsigned long attrs)
-{
-	__iommu_dma_unmap(dev, handle, size);
-}
-
 static void __iommu_dma_free(struct device *dev, size_t size, void *cpu_addr)
 {
 	size_t alloc_size = PAGE_ALIGN(size);
diff --git a/include/linux/dma-direct.h b/include/linux/dma-direct.h
index f3bc0bcd7098..c249912456f9 100644
--- a/include/linux/dma-direct.h
+++ b/include/linux/dma-direct.h
@@ -149,7 +149,5 @@ void dma_direct_free_pages(struct device *dev, size_t size,
 		struct page *page, dma_addr_t dma_addr,
 		enum dma_data_direction dir);
 int dma_direct_supported(struct device *dev, u64 mask);
-dma_addr_t dma_direct_map_resource(struct device *dev, phys_addr_t paddr,
-		size_t size, enum dma_data_direction dir, unsigned long attrs);
 
 #endif /* _LINUX_DMA_DIRECT_H */
diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h
index 4254fd9bdf5d..8248ff9363ee 100644
--- a/include/linux/dma-mapping.h
+++ b/include/linux/dma-mapping.h
@@ -138,6 +138,10 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
 		unsigned long attrs);
 void dma_unmap_page_attrs(struct device *dev, dma_addr_t addr, size_t size,
 		enum dma_data_direction dir, unsigned long attrs);
+dma_addr_t dma_map_phys(struct device *dev, phys_addr_t phys, size_t size,
+		enum dma_data_direction dir, unsigned long attrs);
+void dma_unmap_phys(struct device *dev, dma_addr_t addr, size_t size,
+		enum dma_data_direction dir, unsigned long attrs);
 unsigned int dma_map_sg_attrs(struct device *dev, struct scatterlist *sg,
 		int nents, enum dma_data_direction dir, unsigned long attrs);
 void dma_unmap_sg_attrs(struct device *dev, struct scatterlist *sg,
@@ -192,6 +196,15 @@ static inline void dma_unmap_page_attrs(struct device *dev, dma_addr_t addr,
 		size_t size, enum dma_data_direction dir, unsigned long attrs)
 {
 }
+static inline dma_addr_t dma_map_phys(struct device *dev, phys_addr_t phys,
+		size_t size, enum dma_data_direction dir, unsigned long attrs)
+{
+	return DMA_MAPPING_ERROR;
+}
+static inline void dma_unmap_phys(struct device *dev, dma_addr_t addr,
+		size_t size, enum dma_data_direction dir, unsigned long attrs)
+{
+}
 static inline unsigned int dma_map_sg_attrs(struct device *dev,
 		struct scatterlist *sg, int nents, enum dma_data_direction dir,
 		unsigned long attrs)
diff --git a/include/linux/iommu-dma.h b/include/linux/iommu-dma.h
index 485bdffed988..a92b3ff9b934 100644
--- a/include/linux/iommu-dma.h
+++ b/include/linux/iommu-dma.h
@@ -42,10 +42,6 @@ size_t iommu_dma_opt_mapping_size(void);
 size_t iommu_dma_max_mapping_size(struct device *dev);
 void iommu_dma_free(struct device *dev, size_t size, void *cpu_addr,
 		dma_addr_t handle, unsigned long attrs);
-dma_addr_t iommu_dma_map_resource(struct device *dev, phys_addr_t phys,
-		size_t size, enum dma_data_direction dir, unsigned long attrs);
-void iommu_dma_unmap_resource(struct device *dev, dma_addr_t handle,
-		size_t size, enum dma_data_direction dir, unsigned long attrs);
 struct sg_table *iommu_dma_alloc_noncontiguous(struct device *dev, size_t size,
 		enum dma_data_direction dir, gfp_t gfp, unsigned long attrs);
 void iommu_dma_free_noncontiguous(struct device *dev, size_t size,
diff --git a/include/trace/events/dma.h b/include/trace/events/dma.h
index 84416c7d6bfa..5da59fd8121d 100644
--- a/include/trace/events/dma.h
+++ b/include/trace/events/dma.h
@@ -73,7 +73,6 @@ DEFINE_EVENT(dma_map, name, \
 	TP_ARGS(dev, phys_addr, dma_addr, size, dir, attrs))
 
 DEFINE_MAP_EVENT(dma_map_phys);
-DEFINE_MAP_EVENT(dma_map_resource);
 
 DECLARE_EVENT_CLASS(dma_unmap,
 	TP_PROTO(struct device *dev, dma_addr_t addr, size_t size,
@@ -111,7 +110,6 @@ DEFINE_EVENT(dma_unmap, name, \
 	TP_ARGS(dev, addr, size, dir, attrs))
 
 DEFINE_UNMAP_EVENT(dma_unmap_phys);
-DEFINE_UNMAP_EVENT(dma_unmap_resource);
 
 DECLARE_EVENT_CLASS(dma_alloc_class,
 	TP_PROTO(struct device *dev, void *virt_addr, dma_addr_t dma_addr,
diff --git a/kernel/dma/debug.c b/kernel/dma/debug.c
index da6734e3a4ce..06e31fd216e3 100644
--- a/kernel/dma/debug.c
+++ b/kernel/dma/debug.c
@@ -38,7 +38,6 @@ enum {
 	dma_debug_single,
 	dma_debug_sg,
 	dma_debug_coherent,
-	dma_debug_resource,
 	dma_debug_phy,
 };
 
@@ -141,7 +140,6 @@ static const char *type2name[] = {
 	[dma_debug_single] = "single",
 	[dma_debug_sg] = "scatter-gather",
 	[dma_debug_coherent] = "coherent",
-	[dma_debug_resource] = "resource",
 	[dma_debug_phy] = "phy",
 };
 
@@ -1448,47 +1446,6 @@ void debug_dma_free_coherent(struct device *dev, size_t size,
 	check_unmap(&ref);
 }
 
-void debug_dma_map_resource(struct device *dev, phys_addr_t addr, size_t size,
-			    int direction, dma_addr_t dma_addr,
-			    unsigned long attrs)
-{
-	struct dma_debug_entry *entry;
-
-	if (unlikely(dma_debug_disabled()))
-		return;
-
-	entry = dma_entry_alloc();
-	if (!entry)
-		return;
-
-	entry->type		= dma_debug_resource;
-	entry->dev		= dev;
-	entry->paddr		= addr;
-	entry->size		= size;
-	entry->dev_addr		= dma_addr;
-	entry->direction	= direction;
-	entry->map_err_type	= MAP_ERR_NOT_CHECKED;
-
-	add_dma_entry(entry, attrs);
-}
-
-void debug_dma_unmap_resource(struct device *dev, dma_addr_t dma_addr,
-			      size_t size, int direction)
-{
-	struct dma_debug_entry ref = {
-		.type           = dma_debug_resource,
-		.dev            = dev,
-		.dev_addr       = dma_addr,
-		.size           = size,
-		.direction      = direction,
-	};
-
-	if (unlikely(dma_debug_disabled()))
-		return;
-
-	check_unmap(&ref);
-}
-
 void debug_dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle,
 				   size_t size, int direction)
 {
diff --git a/kernel/dma/debug.h b/kernel/dma/debug.h
index 76adb42bffd5..424b8f912ade 100644
--- a/kernel/dma/debug.h
+++ b/kernel/dma/debug.h
@@ -30,14 +30,6 @@ extern void debug_dma_alloc_coherent(struct device *dev, size_t size,
 extern void debug_dma_free_coherent(struct device *dev, size_t size,
 				    void *virt, dma_addr_t addr);
 
-extern void debug_dma_map_resource(struct device *dev, phys_addr_t addr,
-				   size_t size, int direction,
-				   dma_addr_t dma_addr,
-				   unsigned long attrs);
-
-extern void debug_dma_unmap_resource(struct device *dev, dma_addr_t dma_addr,
-				     size_t size, int direction);
-
 extern void debug_dma_sync_single_for_cpu(struct device *dev,
 					  dma_addr_t dma_handle, size_t size,
 					  int direction);
@@ -88,19 +80,6 @@ static inline void debug_dma_free_coherent(struct device *dev, size_t size,
 {
 }
 
-static inline void debug_dma_map_resource(struct device *dev, phys_addr_t addr,
-					  size_t size, int direction,
-					  dma_addr_t dma_addr,
-					  unsigned long attrs)
-{
-}
-
-static inline void debug_dma_unmap_resource(struct device *dev,
-					    dma_addr_t dma_addr, size_t size,
-					    int direction)
-{
-}
-
 static inline void debug_dma_sync_single_for_cpu(struct device *dev,
 						 dma_addr_t dma_handle,
 						 size_t size, int direction)
diff --git a/kernel/dma/direct.c b/kernel/dma/direct.c
index fa75e3070073..1062caac47e7 100644
--- a/kernel/dma/direct.c
+++ b/kernel/dma/direct.c
@@ -502,22 +502,6 @@ int dma_direct_map_sg(struct device *dev, struct scatterlist *sgl, int nents,
 	return ret;
 }
 
-dma_addr_t dma_direct_map_resource(struct device *dev, phys_addr_t paddr,
-		size_t size, enum dma_data_direction dir, unsigned long attrs)
-{
-	dma_addr_t dma_addr = paddr;
-
-	if (unlikely(!dma_capable(dev, dma_addr, size, false))) {
-		dev_err_once(dev,
-			     "DMA addr %pad+%zu overflow (mask %llx, bus limit %llx).\n",
-			     &dma_addr, size, *dev->dma_mask, dev->bus_dma_limit);
-		WARN_ON_ONCE(1);
-		return DMA_MAPPING_ERROR;
-	}
-
-	return dma_addr;
-}
-
 int dma_direct_get_sgtable(struct device *dev, struct sg_table *sgt,
 		void *cpu_addr, dma_addr_t dma_addr, size_t size,
 		unsigned long attrs)
diff --git a/kernel/dma/mapping.c b/kernel/dma/mapping.c
index fdabfdaeff1d..0ca098d2e88d 100644
--- a/kernel/dma/mapping.c
+++ b/kernel/dma/mapping.c
@@ -152,12 +152,10 @@ static inline bool dma_map_direct(struct device *dev,
 	return dma_go_direct(dev, *dev->dma_mask, ops);
 }
 
-dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
-		size_t offset, size_t size, enum dma_data_direction dir,
-		unsigned long attrs)
+dma_addr_t dma_map_phys(struct device *dev, phys_addr_t phys, size_t size,
+		enum dma_data_direction dir, unsigned long attrs)
 {
 	const struct dma_map_ops *ops = get_dma_ops(dev);
-	phys_addr_t phys = page_to_phys(page) + offset;
 	bool is_mmio = attrs & DMA_ATTR_MMIO;
 	dma_addr_t addr;
 
@@ -177,6 +175,9 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
 
 		addr = ops->map_resource(dev, phys, size, dir, attrs);
 	} else {
+		struct page *page = phys_to_page(phys);
+		size_t offset = offset_in_page(phys);
+
 		/*
 		 * The dma_ops API contract for ops->map_page() requires
 		 * kmappable memory, while ops->map_resource() does not.
@@ -191,9 +192,26 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
 
 	return addr;
 }
+EXPORT_SYMBOL_GPL(dma_map_phys);
+
+dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
+		size_t offset, size_t size, enum dma_data_direction dir,
+		unsigned long attrs)
+{
+	phys_addr_t phys = page_to_phys(page) + offset;
+
+	if (unlikely(attrs & DMA_ATTR_MMIO))
+		return DMA_MAPPING_ERROR;
+
+	if (IS_ENABLED(CONFIG_DMA_API_DEBUG) &&
+	    WARN_ON_ONCE(is_zone_device_page(page)))
+		return DMA_MAPPING_ERROR;
+
+	return dma_map_phys(dev, phys, size, dir, attrs);
+}
 EXPORT_SYMBOL(dma_map_page_attrs);
 
-void dma_unmap_page_attrs(struct device *dev, dma_addr_t addr, size_t size,
+void dma_unmap_phys(struct device *dev, dma_addr_t addr, size_t size,
 		enum dma_data_direction dir, unsigned long attrs)
 {
 	const struct dma_map_ops *ops = get_dma_ops(dev);
@@ -213,6 +231,16 @@ void dma_unmap_page_attrs(struct device *dev, dma_addr_t addr, size_t size,
 	trace_dma_unmap_phys(dev, addr, size, dir, attrs);
 	debug_dma_unmap_phys(dev, addr, size, dir);
 }
+EXPORT_SYMBOL_GPL(dma_unmap_phys);
+
+void dma_unmap_page_attrs(struct device *dev, dma_addr_t addr, size_t size,
+		 enum dma_data_direction dir, unsigned long attrs)
+{
+	if (unlikely(attrs & DMA_ATTR_MMIO))
+		return;
+
+	dma_unmap_phys(dev, addr, size, dir, attrs);
+}
 EXPORT_SYMBOL(dma_unmap_page_attrs);
 
 static int __dma_map_sg_attrs(struct device *dev, struct scatterlist *sg,
@@ -338,41 +366,18 @@ EXPORT_SYMBOL(dma_unmap_sg_attrs);
 dma_addr_t dma_map_resource(struct device *dev, phys_addr_t phys_addr,
 		size_t size, enum dma_data_direction dir, unsigned long attrs)
 {
-	const struct dma_map_ops *ops = get_dma_ops(dev);
-	dma_addr_t addr = DMA_MAPPING_ERROR;
-
-	BUG_ON(!valid_dma_direction(dir));
-
-	if (WARN_ON_ONCE(!dev->dma_mask))
+	if (IS_ENABLED(CONFIG_DMA_API_DEBUG) &&
+	    WARN_ON_ONCE(pfn_valid(PHYS_PFN(phys_addr))))
 		return DMA_MAPPING_ERROR;
 
-	if (dma_map_direct(dev, ops))
-		addr = dma_direct_map_resource(dev, phys_addr, size, dir, attrs);
-	else if (use_dma_iommu(dev))
-		addr = iommu_dma_map_resource(dev, phys_addr, size, dir, attrs);
-	else if (ops->map_resource)
-		addr = ops->map_resource(dev, phys_addr, size, dir, attrs);
-
-	trace_dma_map_resource(dev, phys_addr, addr, size, dir, attrs);
-	debug_dma_map_resource(dev, phys_addr, size, dir, addr, attrs);
-	return addr;
+	return dma_map_phys(dev, phys_addr, size, dir, attrs | DMA_ATTR_MMIO);
 }
 EXPORT_SYMBOL(dma_map_resource);
 
 void dma_unmap_resource(struct device *dev, dma_addr_t addr, size_t size,
 		enum dma_data_direction dir, unsigned long attrs)
 {
-	const struct dma_map_ops *ops = get_dma_ops(dev);
-
-	BUG_ON(!valid_dma_direction(dir));
-	if (dma_map_direct(dev, ops))
-		; /* nothing to do: uncached and no swiotlb */
-	else if (use_dma_iommu(dev))
-		iommu_dma_unmap_resource(dev, addr, size, dir, attrs);
-	else if (ops->unmap_resource)
-		ops->unmap_resource(dev, addr, size, dir, attrs);
-	trace_dma_unmap_resource(dev, addr, size, dir, attrs);
-	debug_dma_unmap_resource(dev, addr, size, dir);
+	dma_unmap_phys(dev, addr, size, dir, attrs | DMA_ATTR_MMIO);
 }
 EXPORT_SYMBOL(dma_unmap_resource);
 
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 19 17:40:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 17:40:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086794.1445006 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoQKG-0003jV-8Z; Tue, 19 Aug 2025 17:40:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086794.1445006; Tue, 19 Aug 2025 17:40:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoQKG-0003iw-3h; Tue, 19 Aug 2025 17:40:48 +0000
Received: by outflank-mailman (input) for mailman id 1086794;
 Tue, 19 Aug 2025 17:40:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ve3E=27=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1uoQI4-0006dc-Ld
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 17:38:32 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 51d8c97d-7d23-11f0-b898-0df219b8e170;
 Tue, 19 Aug 2025 19:38:30 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 9FCDF5C6338;
 Tue, 19 Aug 2025 17:38:29 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id E9ED1C4CEF1;
 Tue, 19 Aug 2025 17:38: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>
X-Inumbo-ID: 51d8c97d-7d23-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755625097;
	bh=KLKjw0HUWCAlCYBL21FG5N5qspieejASWPS5ip7uwpQ=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=oNMOGF7BydGVTevhYMQSzbeUeUqo3X5k1CxovpHSkGA8/jaiePBiX9OOrhENsdH4R
	 7iQWfe2b/d/0g9OrkJiy+fkXJNNgwHp9E/t2KxhkRC6Xvupy3dfvxRLkOUV6eTSZ3A
	 uAXIz8z2i47k+jghhdlvPBGJEjZ637z4/gxVNxHJS6CJCC26rLC3/iBCFiChfhik8E
	 uJKgIvsPhjEJ14VXVrqQ7eV73Mh1ABS3byCgHYlWGKQzqw7Fwc5HlIZU+usmrZHInt
	 JGWFTFFbeq8ckv3NjoQg57zVH1eKNg7U9Ry4zOulQ4rGFslisZm3zJdjHbMcDOIe9T
	 +IZ0yFZtXVoSg==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v4 08/16] kmsan: convert kmsan_handle_dma to use physical addresses
Date: Tue, 19 Aug 2025 20:36:52 +0300
Message-ID: <f52ab055c9ffa4da854afe47232c7d06d109d8ce.1755624249.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755624249.git.leon@kernel.org>
References: <cover.1755624249.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

Convert the KMSAN DMA handling function from page-based to physical
address-based interface.

The refactoring renames kmsan_handle_dma() parameters from accepting
(struct page *page, size_t offset, size_t size) to (phys_addr_t phys,
size_t size). The existing semantics where callers are expected to
provide only kmap memory is continued here.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 drivers/virtio/virtio_ring.c | 4 ++--
 include/linux/kmsan.h        | 9 ++++-----
 kernel/dma/mapping.c         | 3 ++-
 mm/kmsan/hooks.c             | 5 +++--
 tools/virtio/linux/kmsan.h   | 2 +-
 5 files changed, 12 insertions(+), 11 deletions(-)

diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c
index f5062061c408..c147145a6593 100644
--- a/drivers/virtio/virtio_ring.c
+++ b/drivers/virtio/virtio_ring.c
@@ -378,7 +378,7 @@ static int vring_map_one_sg(const struct vring_virtqueue *vq, struct scatterlist
 		 * is initialized by the hardware. Explicitly check/unpoison it
 		 * depending on the direction.
 		 */
-		kmsan_handle_dma(sg_page(sg), sg->offset, sg->length, direction);
+		kmsan_handle_dma(sg_phys(sg), sg->length, direction);
 		*addr = (dma_addr_t)sg_phys(sg);
 		return 0;
 	}
@@ -3157,7 +3157,7 @@ dma_addr_t virtqueue_dma_map_single_attrs(struct virtqueue *_vq, void *ptr,
 	struct vring_virtqueue *vq = to_vvq(_vq);
 
 	if (!vq->use_dma_api) {
-		kmsan_handle_dma(virt_to_page(ptr), offset_in_page(ptr), size, dir);
+		kmsan_handle_dma(virt_to_phys(ptr), size, dir);
 		return (dma_addr_t)virt_to_phys(ptr);
 	}
 
diff --git a/include/linux/kmsan.h b/include/linux/kmsan.h
index 2b1432cc16d5..f2fd221107bb 100644
--- a/include/linux/kmsan.h
+++ b/include/linux/kmsan.h
@@ -182,8 +182,7 @@ void kmsan_iounmap_page_range(unsigned long start, unsigned long end);
 
 /**
  * kmsan_handle_dma() - Handle a DMA data transfer.
- * @page:   first page of the buffer.
- * @offset: offset of the buffer within the first page.
+ * @phys:   physical address of the buffer.
  * @size:   buffer size.
  * @dir:    one of possible dma_data_direction values.
  *
@@ -192,7 +191,7 @@ void kmsan_iounmap_page_range(unsigned long start, unsigned long end);
  * * initializes the buffer, if it is copied from device;
  * * does both, if this is a DMA_BIDIRECTIONAL transfer.
  */
-void kmsan_handle_dma(struct page *page, size_t offset, size_t size,
+void kmsan_handle_dma(phys_addr_t phys, size_t size,
 		      enum dma_data_direction dir);
 
 /**
@@ -372,8 +371,8 @@ static inline void kmsan_iounmap_page_range(unsigned long start,
 {
 }
 
-static inline void kmsan_handle_dma(struct page *page, size_t offset,
-				    size_t size, enum dma_data_direction dir)
+static inline void kmsan_handle_dma(phys_addr_t phys, size_t size,
+				    enum dma_data_direction dir)
 {
 }
 
diff --git a/kernel/dma/mapping.c b/kernel/dma/mapping.c
index 80481a873340..891e1fc3e582 100644
--- a/kernel/dma/mapping.c
+++ b/kernel/dma/mapping.c
@@ -172,7 +172,8 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
 		addr = iommu_dma_map_phys(dev, phys, size, dir, attrs);
 	else
 		addr = ops->map_page(dev, page, offset, size, dir, attrs);
-	kmsan_handle_dma(page, offset, size, dir);
+
+	kmsan_handle_dma(phys, size, dir);
 	trace_dma_map_phys(dev, phys, addr, size, dir, attrs);
 	debug_dma_map_phys(dev, phys, size, dir, addr, attrs);
 
diff --git a/mm/kmsan/hooks.c b/mm/kmsan/hooks.c
index 97de3d6194f0..6de5c4820330 100644
--- a/mm/kmsan/hooks.c
+++ b/mm/kmsan/hooks.c
@@ -336,14 +336,15 @@ static void kmsan_handle_dma_page(const void *addr, size_t size,
 }
 
 /* Helper function to handle DMA data transfers. */
-void kmsan_handle_dma(struct page *page, size_t offset, size_t size,
+void kmsan_handle_dma(phys_addr_t phys, size_t size,
 		      enum dma_data_direction dir)
 {
+	struct page *page = phys_to_page(phys);
 	u64 page_offset, to_go, addr;
 
 	if (PageHighMem(page))
 		return;
-	addr = (u64)page_address(page) + offset;
+	addr = (u64)page_address(page) + offset_in_page(phys);
 	/*
 	 * The kernel may occasionally give us adjacent DMA pages not belonging
 	 * to the same allocation. Process them separately to avoid triggering
diff --git a/tools/virtio/linux/kmsan.h b/tools/virtio/linux/kmsan.h
index 272b5aa285d5..6cd2e3efd03d 100644
--- a/tools/virtio/linux/kmsan.h
+++ b/tools/virtio/linux/kmsan.h
@@ -4,7 +4,7 @@
 
 #include <linux/gfp.h>
 
-inline void kmsan_handle_dma(struct page *page, size_t offset, size_t size,
+inline void kmsan_handle_dma(phys_addr_t phys, size_t size,
 			     enum dma_data_direction dir)
 {
 }
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 19 17:40:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 17:40:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086798.1445009 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoQKG-0003ll-GZ; Tue, 19 Aug 2025 17:40:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086798.1445009; Tue, 19 Aug 2025 17:40:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoQKG-0003kn-Cv; Tue, 19 Aug 2025 17:40:48 +0000
Received: by outflank-mailman (input) for mailman id 1086798;
 Tue, 19 Aug 2025 17:40:47 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ve3E=27=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1uoQIf-0007Pa-2O
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 17:39:09 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org
 [2600:3c04:e001:324:0:1991:8:25])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 68595f13-7d23-11f0-a32a-13f23c93f187;
 Tue, 19 Aug 2025 19:39:08 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 5B2BD61426;
 Tue, 19 Aug 2025 17:39:07 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 79912C4CEF1;
 Tue, 19 Aug 2025 17:38: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>
X-Inumbo-ID: 68595f13-7d23-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755625134;
	bh=VNpaHZYPDKoIVZk7JizQ+fAc7bXMl6IIrMQIwsKC7lg=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=IyxkIeqET61j6L28Kxhyyfq3v5aCBRMD3pest0PD5Wdrjee2qJOVX3wtGKvoyv4Jf
	 fKb8DM9QeSElkknNC5Yn0qU4ikvLVS6YKQgcTDs4LrxIuG7ahLDDXTNguINLme7bL8
	 R45/81G/h5t5pFX5HgPXSAhQHYQzTElWkUeH+eN1xfrfgs/fdu6WAy3SQecMOmE4la
	 PqwB4Ypx82fCtwySYC38Ou7g6EFId6EEfFxK7AajpjwqYntToNbsCqOWjya3ep9MbZ
	 2xwiFtcEYrAsYFB002LS7F3RqkXxFxSvXOROm6dSDOFh1rkCW2YvNV3Q8WIt1qnxYY
	 2+4jMjfrMc56w==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v4 15/16] block-dma: properly take MMIO path
Date: Tue, 19 Aug 2025 20:36:59 +0300
Message-ID: <642dbeb7aa94257eaea71ec63c06e3f939270023.1755624249.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755624249.git.leon@kernel.org>
References: <cover.1755624249.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

Make sure that CPU is not synced and IOMMU is configured to take
MMIO path by providing newly introduced DMA_ATTR_MMIO attribute.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 block/blk-mq-dma.c         | 13 +++++++++++--
 include/linux/blk-mq-dma.h |  6 +++++-
 include/linux/blk_types.h  |  2 ++
 3 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/block/blk-mq-dma.c b/block/blk-mq-dma.c
index 37e2142be4f7..d415088ed9fd 100644
--- a/block/blk-mq-dma.c
+++ b/block/blk-mq-dma.c
@@ -87,8 +87,13 @@ static bool blk_dma_map_bus(struct blk_dma_iter *iter, struct phys_vec *vec)
 static bool blk_dma_map_direct(struct request *req, struct device *dma_dev,
 		struct blk_dma_iter *iter, struct phys_vec *vec)
 {
+	unsigned int attrs = 0;
+
+	if (req->cmd_flags & REQ_MMIO)
+		attrs = DMA_ATTR_MMIO;
+
 	iter->addr = dma_map_phys(dma_dev, vec->paddr, vec->len,
-			rq_dma_dir(req), 0);
+			rq_dma_dir(req), attrs);
 	if (dma_mapping_error(dma_dev, iter->addr)) {
 		iter->status = BLK_STS_RESOURCE;
 		return false;
@@ -103,14 +108,17 @@ static bool blk_rq_dma_map_iova(struct request *req, struct device *dma_dev,
 {
 	enum dma_data_direction dir = rq_dma_dir(req);
 	unsigned int mapped = 0;
+	unsigned int attrs = 0;
 	int error;
 
 	iter->addr = state->addr;
 	iter->len = dma_iova_size(state);
+	if (req->cmd_flags & REQ_MMIO)
+		attrs = DMA_ATTR_MMIO;
 
 	do {
 		error = dma_iova_link(dma_dev, state, vec->paddr, mapped,
-				vec->len, dir, 0);
+				vec->len, dir, attrs);
 		if (error)
 			break;
 		mapped += vec->len;
@@ -176,6 +184,7 @@ bool blk_rq_dma_map_iter_start(struct request *req, struct device *dma_dev,
 			 * same as non-P2P transfers below and during unmap.
 			 */
 			req->cmd_flags &= ~REQ_P2PDMA;
+			req->cmd_flags |= REQ_MMIO;
 			break;
 		default:
 			iter->status = BLK_STS_INVAL;
diff --git a/include/linux/blk-mq-dma.h b/include/linux/blk-mq-dma.h
index c26a01aeae00..6c55f5e58511 100644
--- a/include/linux/blk-mq-dma.h
+++ b/include/linux/blk-mq-dma.h
@@ -48,12 +48,16 @@ static inline bool blk_rq_dma_map_coalesce(struct dma_iova_state *state)
 static inline bool blk_rq_dma_unmap(struct request *req, struct device *dma_dev,
 		struct dma_iova_state *state, size_t mapped_len)
 {
+	unsigned int attrs = 0;
+
 	if (req->cmd_flags & REQ_P2PDMA)
 		return true;
 
 	if (dma_use_iova(state)) {
+		if (req->cmd_flags & REQ_MMIO)
+			attrs = DMA_ATTR_MMIO;
 		dma_iova_destroy(dma_dev, state, mapped_len, rq_dma_dir(req),
-				 0);
+				 attrs);
 		return true;
 	}
 
diff --git a/include/linux/blk_types.h b/include/linux/blk_types.h
index 09b99d52fd36..283058bcb5b1 100644
--- a/include/linux/blk_types.h
+++ b/include/linux/blk_types.h
@@ -387,6 +387,7 @@ enum req_flag_bits {
 	__REQ_FS_PRIVATE,	/* for file system (submitter) use */
 	__REQ_ATOMIC,		/* for atomic write operations */
 	__REQ_P2PDMA,		/* contains P2P DMA pages */
+	__REQ_MMIO,		/* contains MMIO memory */
 	/*
 	 * Command specific flags, keep last:
 	 */
@@ -420,6 +421,7 @@ enum req_flag_bits {
 #define REQ_FS_PRIVATE	(__force blk_opf_t)(1ULL << __REQ_FS_PRIVATE)
 #define REQ_ATOMIC	(__force blk_opf_t)(1ULL << __REQ_ATOMIC)
 #define REQ_P2PDMA	(__force blk_opf_t)(1ULL << __REQ_P2PDMA)
+#define REQ_MMIO	(__force blk_opf_t)(1ULL << __REQ_MMIO)
 
 #define REQ_NOUNMAP	(__force blk_opf_t)(1ULL << __REQ_NOUNMAP)
 
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 19 17:40:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 17:40:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086806.1445027 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoQKJ-0004Q8-B8; Tue, 19 Aug 2025 17:40:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086806.1445027; Tue, 19 Aug 2025 17:40: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 1uoQKJ-0004Pa-4u; Tue, 19 Aug 2025 17:40:51 +0000
Received: by outflank-mailman (input) for mailman id 1086806;
 Tue, 19 Aug 2025 17:40:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ve3E=27=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1uoQHl-0006dc-NZ
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 17:38:13 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org
 [2604:1380:4641:c500::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4688136f-7d23-11f0-b898-0df219b8e170;
 Tue, 19 Aug 2025 19:38:11 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 890FC5C64A4;
 Tue, 19 Aug 2025 17:38:10 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id E64ECC116D0;
 Tue, 19 Aug 2025 17:37: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>
X-Inumbo-ID: 4688136f-7d23-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755625079;
	bh=0MhcGdVdXvKtqKaQ8KaQcBZJnClPr0/vCjOFn/qCf0g=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=MouP3Mq9M8VNSNcbEF4xEUjffk0Xzg4jGWqmsxG9iYcCqntVe/Pra1WM/OxT1i1Od
	 Aqi9aVBPbjVG96dIo5N5sOwNqlHm0xNRYmPytNGAePyWcADWp6NFOTVh93u4yekuvo
	 BDRr7Gj4XsLIJlrnY9jCLDXfSVxrgkDw+nSJXtT6ZqXHvw7L2bv3qnt948dTovXsa/
	 uxIFxcEgqXl4qbxMLy+2MwPZUpjLU1sqX6ZOTX60mm9/q3qMX2In4Sn81lZs6DgRgW
	 rcsL+GG13KPKOW+YPm37p0kWoUppDQCXi1rzzvUpGo7tZHKA9IUUOQMyoCKJOrAcvx
	 i6WFhL6htpvlA==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v4 05/16] iommu/dma: rename iommu_dma_*map_page to iommu_dma_*map_phys
Date: Tue, 19 Aug 2025 20:36:49 +0300
Message-ID: <66e7cc6854e4e40278b598b38e0c4d49d7fcec91.1755624249.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755624249.git.leon@kernel.org>
References: <cover.1755624249.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

Rename the IOMMU DMA mapping functions to better reflect their actual
calling convention. The functions iommu_dma_map_page() and
iommu_dma_unmap_page() are renamed to iommu_dma_map_phys() and
iommu_dma_unmap_phys() respectively, as they already operate on physical
addresses rather than page structures.

The calling convention changes from accepting (struct page *page,
unsigned long offset) to (phys_addr_t phys), which eliminates the need
for page-to-physical address conversion within the functions. This
renaming prepares for the broader DMA API conversion from page-based
to physical address-based mapping throughout the kernel.

All callers are updated to pass physical addresses directly, including
dma_map_page_attrs(), scatterlist mapping functions, and DMA page
allocation helpers. The change simplifies the code by removing the
page_to_phys() + offset calculation that was previously done inside
the IOMMU functions.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 drivers/iommu/dma-iommu.c | 14 ++++++--------
 include/linux/iommu-dma.h |  7 +++----
 kernel/dma/mapping.c      |  4 ++--
 kernel/dma/ops_helpers.c  |  6 +++---
 4 files changed, 14 insertions(+), 17 deletions(-)

diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
index e1185ba73e23..aea119f32f96 100644
--- a/drivers/iommu/dma-iommu.c
+++ b/drivers/iommu/dma-iommu.c
@@ -1195,11 +1195,9 @@ static inline size_t iova_unaligned(struct iova_domain *iovad, phys_addr_t phys,
 	return iova_offset(iovad, phys | size);
 }
 
-dma_addr_t iommu_dma_map_page(struct device *dev, struct page *page,
-	      unsigned long offset, size_t size, enum dma_data_direction dir,
-	      unsigned long attrs)
+dma_addr_t iommu_dma_map_phys(struct device *dev, phys_addr_t phys, size_t size,
+		enum dma_data_direction dir, unsigned long attrs)
 {
-	phys_addr_t phys = page_to_phys(page) + offset;
 	bool coherent = dev_is_dma_coherent(dev);
 	int prot = dma_info_to_prot(dir, coherent, attrs);
 	struct iommu_domain *domain = iommu_get_dma_domain(dev);
@@ -1227,7 +1225,7 @@ dma_addr_t iommu_dma_map_page(struct device *dev, struct page *page,
 	return iova;
 }
 
-void iommu_dma_unmap_page(struct device *dev, dma_addr_t dma_handle,
+void iommu_dma_unmap_phys(struct device *dev, dma_addr_t dma_handle,
 		size_t size, enum dma_data_direction dir, unsigned long attrs)
 {
 	struct iommu_domain *domain = iommu_get_dma_domain(dev);
@@ -1346,7 +1344,7 @@ static void iommu_dma_unmap_sg_swiotlb(struct device *dev, struct scatterlist *s
 	int i;
 
 	for_each_sg(sg, s, nents, i)
-		iommu_dma_unmap_page(dev, sg_dma_address(s),
+		iommu_dma_unmap_phys(dev, sg_dma_address(s),
 				sg_dma_len(s), dir, attrs);
 }
 
@@ -1359,8 +1357,8 @@ static int iommu_dma_map_sg_swiotlb(struct device *dev, struct scatterlist *sg,
 	sg_dma_mark_swiotlb(sg);
 
 	for_each_sg(sg, s, nents, i) {
-		sg_dma_address(s) = iommu_dma_map_page(dev, sg_page(s),
-				s->offset, s->length, dir, attrs);
+		sg_dma_address(s) = iommu_dma_map_phys(dev, sg_phys(s),
+				s->length, dir, attrs);
 		if (sg_dma_address(s) == DMA_MAPPING_ERROR)
 			goto out_unmap;
 		sg_dma_len(s) = s->length;
diff --git a/include/linux/iommu-dma.h b/include/linux/iommu-dma.h
index 508beaa44c39..485bdffed988 100644
--- a/include/linux/iommu-dma.h
+++ b/include/linux/iommu-dma.h
@@ -21,10 +21,9 @@ static inline bool use_dma_iommu(struct device *dev)
 }
 #endif /* CONFIG_IOMMU_DMA */
 
-dma_addr_t iommu_dma_map_page(struct device *dev, struct page *page,
-		unsigned long offset, size_t size, enum dma_data_direction dir,
-		unsigned long attrs);
-void iommu_dma_unmap_page(struct device *dev, dma_addr_t dma_handle,
+dma_addr_t iommu_dma_map_phys(struct device *dev, phys_addr_t phys, size_t size,
+		enum dma_data_direction dir, unsigned long attrs);
+void iommu_dma_unmap_phys(struct device *dev, dma_addr_t dma_handle,
 		size_t size, enum dma_data_direction dir, unsigned long attrs);
 int iommu_dma_map_sg(struct device *dev, struct scatterlist *sg, int nents,
 		enum dma_data_direction dir, unsigned long attrs);
diff --git a/kernel/dma/mapping.c b/kernel/dma/mapping.c
index fe1f0da6dc50..58482536db9b 100644
--- a/kernel/dma/mapping.c
+++ b/kernel/dma/mapping.c
@@ -169,7 +169,7 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
 	    arch_dma_map_page_direct(dev, phys + size))
 		addr = dma_direct_map_page(dev, page, offset, size, dir, attrs);
 	else if (use_dma_iommu(dev))
-		addr = iommu_dma_map_page(dev, page, offset, size, dir, attrs);
+		addr = iommu_dma_map_phys(dev, phys, size, dir, attrs);
 	else
 		addr = ops->map_page(dev, page, offset, size, dir, attrs);
 	kmsan_handle_dma(page, offset, size, dir);
@@ -190,7 +190,7 @@ void dma_unmap_page_attrs(struct device *dev, dma_addr_t addr, size_t size,
 	    arch_dma_unmap_page_direct(dev, addr + size))
 		dma_direct_unmap_page(dev, addr, size, dir, attrs);
 	else if (use_dma_iommu(dev))
-		iommu_dma_unmap_page(dev, addr, size, dir, attrs);
+		iommu_dma_unmap_phys(dev, addr, size, dir, attrs);
 	else
 		ops->unmap_page(dev, addr, size, dir, attrs);
 	trace_dma_unmap_phys(dev, addr, size, dir, attrs);
diff --git a/kernel/dma/ops_helpers.c b/kernel/dma/ops_helpers.c
index 9afd569eadb9..6f9d604d9d40 100644
--- a/kernel/dma/ops_helpers.c
+++ b/kernel/dma/ops_helpers.c
@@ -72,8 +72,8 @@ struct page *dma_common_alloc_pages(struct device *dev, size_t size,
 		return NULL;
 
 	if (use_dma_iommu(dev))
-		*dma_handle = iommu_dma_map_page(dev, page, 0, size, dir,
-						 DMA_ATTR_SKIP_CPU_SYNC);
+		*dma_handle = iommu_dma_map_phys(dev, page_to_phys(page), size,
+						 dir, DMA_ATTR_SKIP_CPU_SYNC);
 	else
 		*dma_handle = ops->map_page(dev, page, 0, size, dir,
 					    DMA_ATTR_SKIP_CPU_SYNC);
@@ -92,7 +92,7 @@ void dma_common_free_pages(struct device *dev, size_t size, struct page *page,
 	const struct dma_map_ops *ops = get_dma_ops(dev);
 
 	if (use_dma_iommu(dev))
-		iommu_dma_unmap_page(dev, dma_handle, size, dir,
+		iommu_dma_unmap_phys(dev, dma_handle, size, dir,
 				     DMA_ATTR_SKIP_CPU_SYNC);
 	else if (ops->unmap_page)
 		ops->unmap_page(dev, dma_handle, size, dir,
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 19 17:40:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 17:40:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086808.1445032 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoQKJ-0004Rt-R6; Tue, 19 Aug 2025 17:40:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086808.1445032; Tue, 19 Aug 2025 17:40: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 1uoQKJ-0004Qy-Dk; Tue, 19 Aug 2025 17:40:51 +0000
Received: by outflank-mailman (input) for mailman id 1086808;
 Tue, 19 Aug 2025 17:40:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ve3E=27=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1uoQIM-0007Pa-P7
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 17:38:50 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org
 [2600:3c0a:e001:78e:0:1991:8:25])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5d335b1e-7d23-11f0-a32a-13f23c93f187;
 Tue, 19 Aug 2025 19:38:50 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id A7C374552E;
 Tue, 19 Aug 2025 17:38:48 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9165BC4CEF1;
 Tue, 19 Aug 2025 17:38:34 +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>
X-Inumbo-ID: 5d335b1e-7d23-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755625116;
	bh=O9XZOHlHvjORXmOt4kTIQrFLHTrONFqw1ae8lUbcYw8=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=ATZH+tt0E0CIypcrTSNKTLVbz11CKQWPuWVv8Uj9hFXpVu8WhMldVqGJubdEEOKA5
	 ihrhveF/7PK4ciLaP1743VsR6NY/mkFLhxNufmCXwfsaz906MGNVzEujW1yZCGg7UJ
	 V0f9Op2bM/LDCmIDoTw89nki6nqBzfilToxhqaVR8w0WmvQL8B8EY2oxWuG20cX/6j
	 TL1fryJQsGuMrJZkOQ1NbVtcj71sbARhi2TXWmqIIZ9BTi18mEhP8usOCf32R7gnLD
	 uaTJdR9D9iuPFRWq/Gj2stVOJgLdUiBmlsVIk3TNaKhBqMgGSVJIQ5h9MDirkdjHNx
	 bZTvCl5dJvTcQ==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v4 12/16] mm/hmm: migrate to physical address-based DMA mapping API
Date: Tue, 19 Aug 2025 20:36:56 +0300
Message-ID: <18165db0ff83f8222bfd05c4807cda206bec02f7.1755624249.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755624249.git.leon@kernel.org>
References: <cover.1755624249.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

Convert HMM DMA operations from the legacy page-based API to the new
physical address-based dma_map_phys() and dma_unmap_phys() functions.
This demonstrates the preferred approach for new code that should use
physical addresses directly rather than page+offset parameters.

The change replaces dma_map_page() and dma_unmap_page() calls with
dma_map_phys() and dma_unmap_phys() respectively, using the physical
address that was already available in the code. This eliminates the
redundant page-to-physical address conversion and aligns with the
DMA subsystem's move toward physical address-centric interfaces.

This serves as an example of how new code should be written to leverage
the more efficient physical address API, which provides cleaner interfaces
for drivers that already have access to physical addresses.

Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 mm/hmm.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/mm/hmm.c b/mm/hmm.c
index d545e2494994..015ab243f081 100644
--- a/mm/hmm.c
+++ b/mm/hmm.c
@@ -775,8 +775,8 @@ dma_addr_t hmm_dma_map_pfn(struct device *dev, struct hmm_dma_map *map,
 		if (WARN_ON_ONCE(dma_need_unmap(dev) && !dma_addrs))
 			goto error;
 
-		dma_addr = dma_map_page(dev, page, 0, map->dma_entry_size,
-					DMA_BIDIRECTIONAL);
+		dma_addr = dma_map_phys(dev, paddr, map->dma_entry_size,
+					DMA_BIDIRECTIONAL, 0);
 		if (dma_mapping_error(dev, dma_addr))
 			goto error;
 
@@ -819,8 +819,8 @@ bool hmm_dma_unmap_pfn(struct device *dev, struct hmm_dma_map *map, size_t idx)
 		dma_iova_unlink(dev, state, idx * map->dma_entry_size,
 				map->dma_entry_size, DMA_BIDIRECTIONAL, attrs);
 	} else if (dma_need_unmap(dev))
-		dma_unmap_page(dev, dma_addrs[idx], map->dma_entry_size,
-			       DMA_BIDIRECTIONAL);
+		dma_unmap_phys(dev, dma_addrs[idx], map->dma_entry_size,
+			       DMA_BIDIRECTIONAL, 0);
 
 	pfns[idx] &=
 		~(HMM_PFN_DMA_MAPPED | HMM_PFN_P2PDMA | HMM_PFN_P2PDMA_BUS);
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 19 17:40:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 17:40:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086809.1445036 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoQKK-0004W4-AE; Tue, 19 Aug 2025 17:40:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086809.1445036; Tue, 19 Aug 2025 17: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 1uoQKJ-0004TY-RX; Tue, 19 Aug 2025 17:40:51 +0000
Received: by outflank-mailman (input) for mailman id 1086809;
 Tue, 19 Aug 2025 17:40:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ve3E=27=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1uoQIN-0007Pa-PD
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 17:38:51 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org
 [2600:3c04:e001:324:0:1991:8:25])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5d81ac2a-7d23-11f0-a32a-13f23c93f187;
 Tue, 19 Aug 2025 19:38:50 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 1387861430;
 Tue, 19 Aug 2025 17:38:49 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7B8E5C4CEF4;
 Tue, 19 Aug 2025 17:38: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>
X-Inumbo-ID: 5d81ac2a-7d23-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755625128;
	bh=5GnXky7X8jRP4E4M761xyU7kxSqR5w3y9HvcAnisW/0=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=Bp6IjwCK6iikZBNKRNzlwQSTkIdVOg07zMkHxMwHx2bN8ViJPSPzqSH/QAyq4vh06
	 wQO6Ewlb0QQbKPmgYqrA9uKQ5ZlVlzrl395y0zlmmQVZo3cmxr2dce8aTWrEgEuVvU
	 PK81BrhFBj0Sb03L1mOYr5A5QlqVfAMBpJE1psdYb9zwXYegwG/tfmrm5FOWTNfeE8
	 iY+rPNAKXFYUB6cprmGsa0u1KrjeSM4hl6Yb32H9zVNhuHEbrWVA9oc/K4UQWl86vA
	 0GIK4Y52fniR/iFJCHHd5h1oBGaE5KSvHvvy9rnqAMrstqGlP8VTJe6ApXPe+l+dK9
	 yBb54yNAL7EtQ==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v4 13/16] mm/hmm: properly take MMIO path
Date: Tue, 19 Aug 2025 20:36:57 +0300
Message-ID: <4b929da0b2dec4bccf489f35ee06098b437053b2.1755624249.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755624249.git.leon@kernel.org>
References: <cover.1755624249.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

In case peer-to-peer transaction traverses through host bridge,
the IOMMU needs to have IOMMU_MMIO flag, together with skip of
CPU sync.

The latter was handled by provided DMA_ATTR_SKIP_CPU_SYNC flag,
but IOMMU flag was missed, due to assumption that such memory
can be treated as regular one.

Reuse newly introduced DMA attribute to properly take MMIO path.

Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 mm/hmm.c | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/mm/hmm.c b/mm/hmm.c
index 015ab243f081..6556c0e074ba 100644
--- a/mm/hmm.c
+++ b/mm/hmm.c
@@ -746,7 +746,7 @@ dma_addr_t hmm_dma_map_pfn(struct device *dev, struct hmm_dma_map *map,
 	case PCI_P2PDMA_MAP_NONE:
 		break;
 	case PCI_P2PDMA_MAP_THRU_HOST_BRIDGE:
-		attrs |= DMA_ATTR_SKIP_CPU_SYNC;
+		attrs |= DMA_ATTR_MMIO;
 		pfns[idx] |= HMM_PFN_P2PDMA;
 		break;
 	case PCI_P2PDMA_MAP_BUS_ADDR:
@@ -776,7 +776,7 @@ dma_addr_t hmm_dma_map_pfn(struct device *dev, struct hmm_dma_map *map,
 			goto error;
 
 		dma_addr = dma_map_phys(dev, paddr, map->dma_entry_size,
-					DMA_BIDIRECTIONAL, 0);
+					DMA_BIDIRECTIONAL, attrs);
 		if (dma_mapping_error(dev, dma_addr))
 			goto error;
 
@@ -811,16 +811,17 @@ bool hmm_dma_unmap_pfn(struct device *dev, struct hmm_dma_map *map, size_t idx)
 	if ((pfns[idx] & valid_dma) != valid_dma)
 		return false;
 
+	if (pfns[idx] & HMM_PFN_P2PDMA)
+		attrs |= DMA_ATTR_MMIO;
+
 	if (pfns[idx] & HMM_PFN_P2PDMA_BUS)
 		; /* no need to unmap bus address P2P mappings */
-	else if (dma_use_iova(state)) {
-		if (pfns[idx] & HMM_PFN_P2PDMA)
-			attrs |= DMA_ATTR_SKIP_CPU_SYNC;
+	else if (dma_use_iova(state))
 		dma_iova_unlink(dev, state, idx * map->dma_entry_size,
 				map->dma_entry_size, DMA_BIDIRECTIONAL, attrs);
-	} else if (dma_need_unmap(dev))
+	else if (dma_need_unmap(dev))
 		dma_unmap_phys(dev, dma_addrs[idx], map->dma_entry_size,
-			       DMA_BIDIRECTIONAL, 0);
+			       DMA_BIDIRECTIONAL, attrs);
 
 	pfns[idx] &=
 		~(HMM_PFN_DMA_MAPPED | HMM_PFN_P2PDMA | HMM_PFN_P2PDMA_BUS);
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 19 17:40:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 17:40:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086811.1445044 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoQKL-0004hn-87; Tue, 19 Aug 2025 17:40:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086811.1445044; Tue, 19 Aug 2025 17: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 1uoQKK-0004eh-K0; Tue, 19 Aug 2025 17:40:52 +0000
Received: by outflank-mailman (input) for mailman id 1086811;
 Tue, 19 Aug 2025 17:40:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ve3E=27=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1uoQIH-0006dc-0l
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 17:38:45 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5986f49a-7d23-11f0-b898-0df219b8e170;
 Tue, 19 Aug 2025 19:38:43 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 7DFD3613EF;
 Tue, 19 Aug 2025 17:38:42 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id E7E8DC113D0;
 Tue, 19 Aug 2025 17:38:40 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5986f49a-7d23-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755625122;
	bh=stLVV7BdINySQbyeqCDmRbXyWeQEecbuIkQ/rhX45FU=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=QF95AAuhc8feQn+SEx82Pkl7/uTlNhnB5cHYHMn4haBNk3mIGB32W95xHVkQetyzQ
	 l5pjdHoqmA32dwMVHHl2ireizeQrHrNOOpU6veVyXb4NV0jh1tYHCTnC8dcn2zvtTY
	 J4nrUx7NhDiTec8s4jDArKOAkTIjbwvKXPPen+Vd16+uFXzd7usqZLmgr9JbeXZ1Jn
	 WjodL0NO0sJNloB+WXRZ6xIN7Ll+mPyFWx7P66aJjQZw9otjgjVcZKNrK0y+CcuICc
	 ddwwW0q2gx9LzWpv+xxfN0uj6Ze8uJX3Jlyv58Oh1O5dwZ9g8LdLLurbrm7l0u9gfU
	 vhh2Z4HWzRNIw==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v4 14/16] block-dma: migrate to dma_map_phys instead of map_page
Date: Tue, 19 Aug 2025 20:36:58 +0300
Message-ID: <22b824931bc8ba090979ab902e4c1c2ec8327b65.1755624249.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755624249.git.leon@kernel.org>
References: <cover.1755624249.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

After introduction of dma_map_phys(), there is no need to convert
from physical address to struct page in order to map page. So let's
use it directly.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 block/blk-mq-dma.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/block/blk-mq-dma.c b/block/blk-mq-dma.c
index ad283017caef..37e2142be4f7 100644
--- a/block/blk-mq-dma.c
+++ b/block/blk-mq-dma.c
@@ -87,8 +87,8 @@ static bool blk_dma_map_bus(struct blk_dma_iter *iter, struct phys_vec *vec)
 static bool blk_dma_map_direct(struct request *req, struct device *dma_dev,
 		struct blk_dma_iter *iter, struct phys_vec *vec)
 {
-	iter->addr = dma_map_page(dma_dev, phys_to_page(vec->paddr),
-			offset_in_page(vec->paddr), vec->len, rq_dma_dir(req));
+	iter->addr = dma_map_phys(dma_dev, vec->paddr, vec->len,
+			rq_dma_dir(req), 0);
 	if (dma_mapping_error(dma_dev, iter->addr)) {
 		iter->status = BLK_STS_RESOURCE;
 		return false;
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 19 17:40:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 17:40:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086816.1445060 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoQKN-0005LE-Gb; Tue, 19 Aug 2025 17:40:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086816.1445060; Tue, 19 Aug 2025 17:40: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 1uoQKN-0005Ji-1Z; Tue, 19 Aug 2025 17:40:55 +0000
Received: by outflank-mailman (input) for mailman id 1086816;
 Tue, 19 Aug 2025 17:40:52 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ve3E=27=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1uoQIj-0007Pa-UL
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 17:39:13 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6b5c3f00-7d23-11f0-a32a-13f23c93f187;
 Tue, 19 Aug 2025 19:39:13 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 5A73A61437;
 Tue, 19 Aug 2025 17:39:12 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id A44ECC113D0;
 Tue, 19 Aug 2025 17:38:59 +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>
X-Inumbo-ID: 6b5c3f00-7d23-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755625141;
	bh=shzOb9LxCd4j9ffIAYJARd3Ll/bIHN63Rdsm8jF6HN0=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=hP0G8Q00yNTh5FfM8EvmXjWXPCW1VAkoQrIqWO2opf8nY5Pp8kyRoAQ5sJbskFxHe
	 Dpw2oE6bb6R9DP3zDSAoqrpgkr4LknFTjksf2ZVtrQBA00wb60mjNgoeDWPO1iTMvR
	 mOZkqJAPBVE7i3vpf3SqAKzTQw9K5Rc7DptngH5viddKvezFNMaYxTj51UPsnXjIa2
	 zH66GE5Ky5jjWEuNnqpxi+DfDo3WTnC7VWe1CnDp489D3vz6rDN4s4/RlMVvekkmmH
	 q8YXIBSj9tnBwBYbvKw41cRhfgSA56D3XB40ha8nKdeMey7WqJRapAA4sbPWPZyDe2
	 vdbwCoOpeQYmA==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v4 16/16] nvme-pci: unmap MMIO pages with appropriate interface
Date: Tue, 19 Aug 2025 20:37:00 +0300
Message-ID: <545fffb8c364f36102919a5a1d57137731409f3c.1755624249.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755624249.git.leon@kernel.org>
References: <cover.1755624249.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

Block layer maps MMIO memory through dma_map_phys() interface
with help of DMA_ATTR_MMIO attribute. There is a need to unmap
that memory with the appropriate unmap function, something which
wasn't possible before adding new REQ attribute to block layer in
previous patch.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 drivers/nvme/host/pci.c | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c
index 2c6d9506b172..f8ecc0e0f576 100644
--- a/drivers/nvme/host/pci.c
+++ b/drivers/nvme/host/pci.c
@@ -682,11 +682,15 @@ static void nvme_free_prps(struct request *req)
 {
 	struct nvme_iod *iod = blk_mq_rq_to_pdu(req);
 	struct nvme_queue *nvmeq = req->mq_hctx->driver_data;
+	unsigned int attrs = 0;
 	unsigned int i;
 
+	if (req->cmd_flags & REQ_MMIO)
+		attrs = DMA_ATTR_MMIO;
+
 	for (i = 0; i < iod->nr_dma_vecs; i++)
-		dma_unmap_page(nvmeq->dev->dev, iod->dma_vecs[i].addr,
-				iod->dma_vecs[i].len, rq_dma_dir(req));
+		dma_unmap_phys(nvmeq->dev->dev, iod->dma_vecs[i].addr,
+				iod->dma_vecs[i].len, rq_dma_dir(req), attrs);
 	mempool_free(iod->dma_vecs, nvmeq->dev->dmavec_mempool);
 }
 
@@ -699,15 +703,19 @@ static void nvme_free_sgls(struct request *req)
 	unsigned int sqe_dma_len = le32_to_cpu(iod->cmd.common.dptr.sgl.length);
 	struct nvme_sgl_desc *sg_list = iod->descriptors[0];
 	enum dma_data_direction dir = rq_dma_dir(req);
+	unsigned int attrs = 0;
+
+	if (req->cmd_flags & REQ_MMIO)
+		attrs = DMA_ATTR_MMIO;
 
 	if (iod->nr_descriptors) {
 		unsigned int nr_entries = sqe_dma_len / sizeof(*sg_list), i;
 
 		for (i = 0; i < nr_entries; i++)
-			dma_unmap_page(dma_dev, le64_to_cpu(sg_list[i].addr),
-				le32_to_cpu(sg_list[i].length), dir);
+			dma_unmap_phys(dma_dev, le64_to_cpu(sg_list[i].addr),
+				le32_to_cpu(sg_list[i].length), dir, attrs);
 	} else {
-		dma_unmap_page(dma_dev, sqe_dma_addr, sqe_dma_len, dir);
+		dma_unmap_phys(dma_dev, sqe_dma_addr, sqe_dma_len, dir, attrs);
 	}
 }
 
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 19 17:40:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 17:40:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086820.1445072 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoQKP-0005lO-8N; Tue, 19 Aug 2025 17:40:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086820.1445072; Tue, 19 Aug 2025 17:40: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 1uoQKO-0005jd-RF; Tue, 19 Aug 2025 17:40:56 +0000
Received: by outflank-mailman (input) for mailman id 1086820;
 Tue, 19 Aug 2025 17:40:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ve3E=27=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1uoQIF-0007Pa-H6
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 17:38:43 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 59257576-7d23-11f0-a32a-13f23c93f187;
 Tue, 19 Aug 2025 19:38:42 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id D42D360209;
 Tue, 19 Aug 2025 17:38:41 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 55B1EC4CEF4;
 Tue, 19 Aug 2025 17:38:28 +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>
X-Inumbo-ID: 59257576-7d23-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755625109;
	bh=0mJoy+46tPnckyRiCMrZ6rM11HgiRAqoXhfeDURewQs=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=mqPmNYet1sH32wQnvqz+VvZ80hlj8hmAn5LZc210nMHXG8bXYuHHo6lQnpRQ7wdDm
	 AVkPPjVfSjLNW0DehbYvlIM2mXfpwOQAjPxs6e3RlPIo73ds9O4X7lgEElc8ORAi/f
	 C/x1WmcQqUdWnZImWQk08xqztT32jxKdhvXMOS9p8adbr0qesEwjEYXcIE7Gr89B9V
	 D5kxqWCfk0RMLfyN34FLwGfWViKqrxfYSCkMcFA4I+yentRF7/d5qM2RviS+FzeTgP
	 DNhrTd61vuyUNS97sahLp3RYlTbC6p901YEbBgWhZmWbk3sGcF6U+DBlT0qK2dJfvC
	 h1+6GBB7poGFg==
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>,
	Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev,
	Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>,
	Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com,
	Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-mm@kvack.org,
	linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev,
	Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v4 10/16] xen: swiotlb: Open code map_resource callback
Date: Tue, 19 Aug 2025 20:36:54 +0300
Message-ID: <babeeb62fcfbafa39f352da1040a5dfa9d2a2719.1755624249.git.leon@kernel.org>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <cover.1755624249.git.leon@kernel.org>
References: <cover.1755624249.git.leon@kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Leon Romanovsky <leonro@nvidia.com>

General dma_direct_map_resource() is going to be removed
in next patch, so simply open-code it in xen driver.

Reviewed-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
---
 drivers/xen/swiotlb-xen.c | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)

diff --git a/drivers/xen/swiotlb-xen.c b/drivers/xen/swiotlb-xen.c
index da1a7d3d377c..dd7747a2de87 100644
--- a/drivers/xen/swiotlb-xen.c
+++ b/drivers/xen/swiotlb-xen.c
@@ -392,6 +392,25 @@ xen_swiotlb_sync_sg_for_device(struct device *dev, struct scatterlist *sgl,
 	}
 }
 
+static dma_addr_t xen_swiotlb_direct_map_resource(struct device *dev,
+						  phys_addr_t paddr,
+						  size_t size,
+						  enum dma_data_direction dir,
+						  unsigned long attrs)
+{
+	dma_addr_t dma_addr = paddr;
+
+	if (unlikely(!dma_capable(dev, dma_addr, size, false))) {
+		dev_err_once(dev,
+			     "DMA addr %pad+%zu overflow (mask %llx, bus limit %llx).\n",
+			     &dma_addr, size, *dev->dma_mask, dev->bus_dma_limit);
+		WARN_ON_ONCE(1);
+		return DMA_MAPPING_ERROR;
+	}
+
+	return dma_addr;
+}
+
 /*
  * Return whether the given device DMA address mask can be supported
  * properly.  For example, if your device can only drive the low 24-bits
@@ -426,5 +445,5 @@ const struct dma_map_ops xen_swiotlb_dma_ops = {
 	.alloc_pages_op = dma_common_alloc_pages,
 	.free_pages = dma_common_free_pages,
 	.max_mapping_size = swiotlb_max_mapping_size,
-	.map_resource = dma_direct_map_resource,
+	.map_resource = xen_swiotlb_direct_map_resource,
 };
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 19 17:52:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 17:52:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086881.1445087 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoQV2-000237-C0; Tue, 19 Aug 2025 17:51:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086881.1445087; Tue, 19 Aug 2025 17:51:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoQV2-000230-9N; Tue, 19 Aug 2025 17:51:56 +0000
Received: by outflank-mailman (input) for mailman id 1086881;
 Tue, 19 Aug 2025 17:51:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=xG4o=27=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1uoQKt-0004O3-4J
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 17:41:27 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on2060d.outbound.protection.outlook.com
 [2a01:111:f403:2417::60d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ab991dc0-7d23-11f0-a32a-13f23c93f187;
 Tue, 19 Aug 2025 19:41:01 +0200 (CEST)
Received: from SJ0PR03CA0370.namprd03.prod.outlook.com (2603:10b6:a03:3a1::15)
 by SJ1PR12MB6146.namprd12.prod.outlook.com (2603:10b6:a03:45b::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.24; Tue, 19 Aug
 2025 17:40:56 +0000
Received: from SN1PEPF0002529D.namprd05.prod.outlook.com
 (2603:10b6:a03:3a1:cafe::b9) by SJ0PR03CA0370.outlook.office365.com
 (2603:10b6:a03:3a1::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9031.25 via Frontend Transport; Tue,
 19 Aug 2025 17:40:56 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SN1PEPF0002529D.mail.protection.outlook.com (10.167.242.4) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Tue, 19 Aug 2025 17:40:55 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) 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, 19 Aug
 2025 12:40:55 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.10; Tue, 19 Aug
 2025 10:40:54 -0700
Received: from [172.28.207.84] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Tue, 19 Aug 2025 12:40: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>
X-Inumbo-ID: ab991dc0-7d23-11f0-a32a-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nxZFYx+pMDcTzwVr1jdlggWNB6XgeaAuq/j9/LnGCpVBWZhpyxTSMNn+eFHNPhXbr/eKgd5iwTNOtPljbOePNP3Nl1JyvmsmkJNqa31UBpyvfQDJyZMzdhEU7FF1iSY0gYBED+XWXFXKrM2wdWwsMBt7AsQes8D2uWtHV2AbCuFFLLg8CybBbvWNh+yg0vfzpKB44mEoebHZcQrCoHhNceaTKT5H/acQ6KmNYJK/g6GGcBrOqCLch1JWpbG61d/qY2Uv2RBmKBJM6bZe9TUNVLVpQtxSrACv6ixFgQ9Ac7UwxmhymG5t65OQPA5fIu/pLx9qpIoIhkIv4BkfYJt8GQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=q9EZfx+dGx80nPNepjfNrACy30O6GM/cb6wg7FI1Zm8=;
 b=VqlEAGhQEr00n40lagz9X3+SAxPKLEak7YVRt6VcyD8b2mANKdbBGYs8w0Xuo+LsuBqHa/bBbRZV0h5vXuiO3Q6IAUe5nMipKInWv2UBYU+jW0sxyeCONnBm4XzugPCCrGWezx8mnsO1tUeo6CMrv1XCCIU3xnC5cHrfufggY38qnT2ImNybIo1/9b8Tll0kHO8DzpC0sfWq5rWOlHkOpDRZTineVNgpDzZAA2lWFe8r5860EgTY8gI7jQrp0ZB91fOEXLiTHD+Ls+3kI/k8YKwbbAiCPCdJzDQzFY6chtHyX5QQY2ETZfpQJ8G1dfN/eK0guGDXbjjvh00L5eWLJA==
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=q9EZfx+dGx80nPNepjfNrACy30O6GM/cb6wg7FI1Zm8=;
 b=uvLTxQZu+9fv2rdPbOczMkc8qcExKWXJMvcunJFuUysMYfqKZ5yJzGblzPUJwrnEylLT95zh83MGxgqdpTyuI8laSiik1U9KGlGPz6LZw5KML4PfGjRY1WwQsz/M+Mc6TVGueD75Rnnv9SmLkj/hzBjkKon20w/v8p6wIQc3ysk=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <b325c586-592b-4cde-b36d-91185b41bd0c@amd.com>
Date: Tue, 19 Aug 2025 13:40:53 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/2] common: make page_{is,get}_ram_type() x86-only
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>, Oleksii Kurochko <oleksii.kurochko@gmail.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>
References: <a2dc40a8-908a-44a7-b443-90f492a775cc@suse.com>
 <4a568ff4-2cfd-40ec-b249-217fab34f4ec@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <4a568ff4-2cfd-40ec-b249-217fab34f4ec@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF0002529D:EE_|SJ1PR12MB6146:EE_
X-MS-Office365-Filtering-Correlation-Id: 29fb08f2-c0b7-4a4e-b8c8-08dddf478cde
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|82310400026|7416014|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?VzhRMkhiUUpCbUtTcVo0dHZzeEJsdjV0RVVaWDNHdU5CN2dTWXFQcFUzTXlh?=
 =?utf-8?B?WHVySjZYaU5GakxGWVVmUkhFeWVObUc3WFhibzFxalNwSE1uZGhoYW5qSzZV?=
 =?utf-8?B?Mm8vcjZSRFExN2lwRkxDb1RmOU1EVEd6MGJuV3UrZEFzSVA0WHhUZGJjNDFP?=
 =?utf-8?B?QzJEaGd2RGUxbVNqNVVwZE5tMmpHdCs1SVlDSmhJUXgwRVpCd2J4b0VVY3N4?=
 =?utf-8?B?VmJIdk5VUE5WeDZKVk9hUGlkb1NqMFI2T1lla1E1S1lJVFZkczNaOXMyWGph?=
 =?utf-8?B?UE5vcjNva2hkVWluV01nZ1BtbnN3dFNXY2tUb0tOVEtpanQzOUkydzBvRi9E?=
 =?utf-8?B?SnBnMVVEZjN2elJJL1hNTEowOTRNcTQ3TmN1LzZPdTF6THl6M0lXRGYxRzJ5?=
 =?utf-8?B?ekFiMzlKTnNGN3dUVVJHU2FXQjR1NHdJOWdGdnBCNC9GNERhL05HYjF6bzN2?=
 =?utf-8?B?VlI2UmRVWHFnL0V1VnRmcDFrQjhPdGhyT216R1dGejg0aytuTXprNDUzeHFU?=
 =?utf-8?B?T1lEQW9jTlhUMW16N29PRGxNSWpKS1d2VS9sM0pYWkZleFc2OVdrbThaKzNZ?=
 =?utf-8?B?UXVwOXZIemFXQUhaSmVaTXl1b2FYbmRqTlJmYTQ5SDNLTnRKZDZKRVJXUlZ3?=
 =?utf-8?B?VXU2MXI5MGY4R3Q5U0lMRld4ejR6N3VzN3E3Ui9HVTRkWlFDdEVXWkhIOVFF?=
 =?utf-8?B?UkRiRjk0OGRDV2d3bG03QmpHWGNPZTVSWmZlOE5tU0FKeVF5V2ZQZGdkdGwy?=
 =?utf-8?B?dXpzMHdLYTJETzVEQ21BTHU4Y1R0aW9zL1hObVRicmVRNHRiMWt5ZkJtakVN?=
 =?utf-8?B?aTJHUjlKTlZuRkd3bTU3MEdCblRmUFlKLytINzN0WVFPSGxYUUJ6c1diWGVG?=
 =?utf-8?B?ZXdwSDBOclEvMi9ydDZaNFZlWGtJYUw0NEUxd0ozZ3c2dTBwSXFvTnRQNXh4?=
 =?utf-8?B?S3B0TTRCYWZSeFpjV3V5K0RLZE51d3ZKWTFZWkNlOXVYcWpOZzNtaDhSeVpG?=
 =?utf-8?B?alhnTUZaOEJwVmpqQldOSTZQZzRFSXF4T0NyZG9aSnZrcHRESTJTRFZQZExP?=
 =?utf-8?B?RTUvc25qNWZQbEViTWt6dFJHdG9vVGkwS2ZncU1LNDFWajFydHNjYnhQOExu?=
 =?utf-8?B?YWRyVWg3Qk1ZdnFhc1cvOWFkd3I0Z0d4V0ZMM2ExcVZoUk1QNkVXdzlqNC94?=
 =?utf-8?B?cE9uQzlIR3VscitKZDNIWmFLU1VTVFRKR3kyekhTbGc0enYwWUkzUnRKSmlR?=
 =?utf-8?B?WHRUOHNaZGFvNUdZajBIRDc5V0k1bjlrVWhYd0JlUnR1aUtTekhDd0k3R3BZ?=
 =?utf-8?B?dTBkOE5zOXk3YU82dDltNWdzeCszSjhySVR3WWYzZE1LanpGcWJvVDRPN3BG?=
 =?utf-8?B?clllT2hIVUdldXhHZ3lhMGJpQXhGclFMVzNWVHR4Z21UVnZUYkFabVlCb3Rm?=
 =?utf-8?B?Ulh0YUpPM0tnc3lYMzVoL3V2L1kwM1h4MHhJQjlsRjVCbEZmT2Y2Y1FCR1dY?=
 =?utf-8?B?aStvbzI4UXF5U2pYZnE5UHFTbjJwL2hNSEtCa0cybjZxd1FhQXhnUFdJVmI2?=
 =?utf-8?B?QWhiOUxxY0tuajZFMnlMbDZjV1lhUENGRm4yeWc2a0VoS0dUanBvM2ZWczR0?=
 =?utf-8?B?UUMwZTRiQ2xtVTArbWIrQmJ4Mmc1MENFSTFIN09FeHhPa1lWbHVGT2RFT05S?=
 =?utf-8?B?dEwxUzRacmxyVzQ3d3JBUjBzdmdSSFl4Um9CN25vUU9wenNpSHVPNW0yWjlO?=
 =?utf-8?B?dER2S1BQUDkzS003Q3dpNjV0TVdodHZFVGhBSS9tTEZYMWU1N0haK3JaUldV?=
 =?utf-8?B?dHFpQXhkTmZDeFlvV21hV3RiY0hZSGhBdFE2UUNaREtBenAwRE1iNHJWQ1Jz?=
 =?utf-8?B?RUVOUDJOWVlySnY1c1I0OHFHWWdMY0NvanBzSmhpV3oyQUtTQWFHOGQ0YWJV?=
 =?utf-8?B?Wk5KLzNqZWYvSW56a3NlQVN0KysxNEJiZlNSQjFSWm1wUzI3ZUZjVVg4aXJ1?=
 =?utf-8?B?Wmo4SC9STUZSanlDS1EwaTNlVUlrQnZjaHB6MXIrdW9EZ20wb0FZdHFMWXNX?=
 =?utf-8?Q?dUjowf?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(7416014)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Aug 2025 17:40:55.4887
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 29fb08f2-c0b7-4a4e-b8c8-08dddf478cde
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF0002529D.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ1PR12MB6146

On 2025-08-18 03:57, Jan Beulich wrote:
> The classification is pretty E820-centric anyway, and all uses of the
> function are now in x86-only code.
> 
> Switch the boolean return type to properly use bool while at it.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>


From xen-devel-bounces@lists.xenproject.org Tue Aug 19 18:20:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 18:20:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086941.1445096 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoQwb-0002O5-EV; Tue, 19 Aug 2025 18:20:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086941.1445096; Tue, 19 Aug 2025 18:20: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 1uoQwb-0002Ny-B2; Tue, 19 Aug 2025 18:20:25 +0000
Received: by outflank-mailman (input) for mailman id 1086941;
 Tue, 19 Aug 2025 18:20:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=fNib=27=kernel.org=kbusch@srs-se1.protection.inumbo.net>)
 id 1uoQwZ-0002Ns-Eg
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 18:20:23 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org
 [2600:3c0a:e001:78e:0:1991:8:25])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2a59c39c-7d29-11f0-a32a-13f23c93f187;
 Tue, 19 Aug 2025 20:20:21 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id C14C74588D;
 Tue, 19 Aug 2025 18:20:19 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8E0BDC4CEF1;
 Tue, 19 Aug 2025 18:20:06 +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>
X-Inumbo-ID: 2a59c39c-7d29-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755627608;
	bh=vJQ95/awDQN15gMxlaXB+Tcfic806+eL4EX36Buoiiw=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=jXjytkUFHZiUoUGI84YdHLEqkOvvneMczP1tcgM6yHssC3PZa14NlekO8OwnhQkoH
	 1tKFJyNzeoXibR5866EB9AlD853dT6hX/BHgsXNW4sH7pbBGpZs3bWwj08oPN1sJoj
	 hWrw/W8bx/Ed7fmJOvpwVh//YcUPC4H4piBW1ARVWVGtVpPRrRKbwDEj6sLZPN6zpp
	 WYxb2QFL4WZg9ljpPs9MR4UmpIcWbSmNlEaUUOSNEz9VaSvb+A8MMAVV0hqzSSr9AT
	 hd29ClRf6ZWgUwXusfUehQO9rXf61PDcTKf5hXEkAaN2POaxHzJVqre4wL9NW9YYur
	 pp6mAS1uKCUqA==
Date: Tue, 19 Aug 2025 12:20:04 -0600
From: Keith Busch <kbusch@kernel.org>
To: Leon Romanovsky <leon@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-mm@kvack.org, linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org, linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 14/16] block-dma: migrate to dma_map_phys instead of
 map_page
Message-ID: <aKTAVOBp0u6ZSC4w@kbusch-mbp>
References: <cover.1755624249.git.leon@kernel.org>
 <22b824931bc8ba090979ab902e4c1c2ec8327b65.1755624249.git.leon@kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <22b824931bc8ba090979ab902e4c1c2ec8327b65.1755624249.git.leon@kernel.org>

On Tue, Aug 19, 2025 at 08:36:58PM +0300, Leon Romanovsky wrote:
>  static bool blk_dma_map_direct(struct request *req, struct device *dma_dev,
>  		struct blk_dma_iter *iter, struct phys_vec *vec)
>  {
> -	iter->addr = dma_map_page(dma_dev, phys_to_page(vec->paddr),
> -			offset_in_page(vec->paddr), vec->len, rq_dma_dir(req));
> +	iter->addr = dma_map_phys(dma_dev, vec->paddr, vec->len,
> +			rq_dma_dir(req), 0);

Looks good.

Reviewed-by: Keith Busch <kbusch@kernel.org>

Just a random thought when I had to double back to check what the "0"
means: many dma_ api's have a default macro without an "attrs" argument,
then an _attrs() version for when you need it. Not sure if you want to
strictly follow that pattern, but merely a suggestion.


From xen-devel-bounces@lists.xenproject.org Tue Aug 19 18:22:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 18:22:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086950.1445106 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoQyk-0003cO-Oh; Tue, 19 Aug 2025 18:22:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086950.1445106; Tue, 19 Aug 2025 18:22: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 1uoQyk-0003cH-Ly; Tue, 19 Aug 2025 18:22:38 +0000
Received: by outflank-mailman (input) for mailman id 1086950;
 Tue, 19 Aug 2025 18:22:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=fNib=27=kernel.org=kbusch@srs-se1.protection.inumbo.net>)
 id 1uoQyj-0003c9-3D
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 18:22:37 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org
 [2600:3c04:e001:324:0:1991:8:25])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7abc0eb4-7d29-11f0-a32a-13f23c93f187;
 Tue, 19 Aug 2025 20:22:36 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 594E960209;
 Tue, 19 Aug 2025 18:22:34 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8557CC4CEF1;
 Tue, 19 Aug 2025 18:22: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>
X-Inumbo-ID: 7abc0eb4-7d29-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755627754;
	bh=VSqn6WSqLVd/XpfzgudXSJRo0uPOQ5wyv2bWmCBBnJg=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=alN6/hwHpvzthoP/KrllDuyPfF9f8yAYQER8+ba4p7ZAaMRpwoXt8rvK6QE3L0ekl
	 bNm+CTndacGb+nR2BKXPNUnvE9okK+nJN6vWKLBypTEbMKpjdWZnobeyYbTdlJBwG3
	 eQhAlRfAJUiGmqIDHRjbObolLDa17Te4yFQpGASd/eKfIFxPevya5z3Kg7b9O2j2pW
	 xGJZckYIQxAQDMxUtnVFWJEEUia3gPTM6PRono+D9/zC602CQuuuu0N45uS/29jmmO
	 kxle5BpRno+jkLFSoQGxLhrpEA9gCkuIidPS0ZJ3bdNRJ1LR7RUOVZQkLijjuMZ2fZ
	 kFmTbvgXjx5hQ==
Date: Tue, 19 Aug 2025 12:22:30 -0600
From: Keith Busch <kbusch@kernel.org>
To: Leon Romanovsky <leon@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-mm@kvack.org, linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org, linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 11/16] dma-mapping: export new dma_*map_phys()
 interface
Message-ID: <aKTA5i1IZquRBolf@kbusch-mbp>
References: <cover.1755624249.git.leon@kernel.org>
 <bb979e4620b3bdf2878e29b998d982185beefee0.1755624249.git.leon@kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <bb979e4620b3bdf2878e29b998d982185beefee0.1755624249.git.leon@kernel.org>

On Tue, Aug 19, 2025 at 08:36:55PM +0300, Leon Romanovsky wrote:
> From: Leon Romanovsky <leonro@nvidia.com>
> 
> Introduce new DMA mapping functions dma_map_phys() and dma_unmap_phys()
> that operate directly on physical addresses instead of page+offset
> parameters. This provides a more efficient interface for drivers that
> already have physical addresses available.
> 
> The new functions are implemented as the primary mapping layer, with
> the existing dma_map_page_attrs()/dma_map_resource() and
> dma_unmap_page_attrs()/dma_unmap_resource() functions converted to simple
> wrappers around the phys-based implementations.
> 
> In case dma_map_page_attrs(), the struct page is converted to physical
> address with help of page_to_phys() function and dma_map_resource()
> provides physical address as is together with addition of DMA_ATTR_MMIO
> attribute.
> 
> The old page-based API is preserved in mapping.c to ensure that existing
> code won't be affected by changing EXPORT_SYMBOL to EXPORT_SYMBOL_GPL
> variant for dma_*map_phys().

Looks good.

Reviewed-by: Keith Busch <kbusch@kernel.org>


From xen-devel-bounces@lists.xenproject.org Tue Aug 19 18:24:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 18:24:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086958.1445117 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoR05-0004Zc-2m; Tue, 19 Aug 2025 18:24:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086958.1445117; Tue, 19 Aug 2025 18:24: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 1uoR04-0004ZV-V5; Tue, 19 Aug 2025 18:24:00 +0000
Received: by outflank-mailman (input) for mailman id 1086958;
 Tue, 19 Aug 2025 18:24:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=h/XH=27=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1uoR04-0004ZP-GD
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 18:24:00 +0000
Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com
 [2a00:1450:4864:20::433])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ac8b7175-7d29-11f0-a32a-13f23c93f187;
 Tue, 19 Aug 2025 20:23:59 +0200 (CEST)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-3bb30c72433so1903471f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 19 Aug 2025 11:23:59 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b42a97c02sm54800675e9.23.2025.08.19.11.23.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Aug 2025 11:23: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>
X-Inumbo-ID: ac8b7175-7d29-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755627838; x=1756232638; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=/HqCqQjPQM0UofdHnvsNAQ8zMX7BE4Zl71l3xB7c6I0=;
        b=JrQ6JAmY2ZsM3SaMeGCcUcSx0qImqbVCe2Y7MZa6nbhWifa8OpqCnUFuXkwtQrXKfX
         avW/L/t8l4TQOt9GgQX35A+JrBgVxQuGHmJpNq+igviCxVUtTcZTGKaeO6FMqS7DYRGo
         iOQYHK2TwYHBmF2hkFiSwwdBSDv0SZgbpD9ts=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755627838; x=1756232638;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/HqCqQjPQM0UofdHnvsNAQ8zMX7BE4Zl71l3xB7c6I0=;
        b=W9em8LZKfWi3zxthmGvIC89NRSfvSQJXNNWU3WqU6T27zU+KEV+XRr/lfP6rpN2po+
         qLX3QWSGp1slq81/ubNmCdf38zgVpa9F7rVI0oYyVZs59fYYNe9jJeg8vHEqr2bE0EXs
         MEpniIG9cnK8R9x0LpYM1TLu0nWvbvlWscPwr3rkhTOQ64Qwoh66qc6hNa7HHtPSQcXt
         0D/LAkR6iyNd/T1Wgm601A2/6HW2Kv9E7g/QiSA+bIcATdGWwbb3av+zClTKsQ/bv2lz
         Tx45SAYqLBXl2jvFCNMXR0jOpJyaok/pP4LlUoFORl/wjmOJADp0o9o7jK458/JXmumx
         frtw==
X-Forwarded-Encrypted: i=1; AJvYcCUzGVwWHbW7eQbZbDsIwRowP7a3fgcOydrgTvw2H/oeFRSsGVFvjJfRQBbLA2R3Xv/OkU6tD/eYqVM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxxby71eFrvO3dGXA0lx58aEnJMHAT3W/qOxW0JO2K8TuQP2ZXT
	/d77NkIr10TF2Op6OxiqdSzt10x2Y3TetPLqP3Ux9nCwwmRHse9vW+buLbUpl1UhcOYToojtPIR
	D5dhn
X-Gm-Gg: ASbGnctwj801TW2rE9RUZ1xNgK9eXdpij6BO6TQii7XCY2RXIuyoGHUmMEmzs7CbMc0
	brluaVQMENVpC3+c3g+XcoprOhIBUjUwWvFXBGPav76ZPn8rPs5Gx2WQSM6FtD3l+m50vcS/OBw
	5QJhGMJFrx+agz3JGE93FcBOQjzzsHdjMrSRKVbBgDCv/boMlyJJ0jPkrlqT3XjhMZ7CYf62X26
	AvHK2hlUDwBJ8Cc1kT3ZaIE1Zy9vFK48eqX/Ifri2AOD3aNF4wt4yyrCKMD2JyywGXZq2oaZ39A
	jd2tHSdPxDpBJvmrkfG3jUgRz3dvWLUlNGNa90+Vl3UFEX3WSKeUNTMcf0Wx4iWxyWgeeIRqhbc
	8ANp92xws0sl5mWbqw0RDI2YxLxTqqjZuOXAAQ2VMRacf5Vu4CI+kgmq5PCclNo4ADskPGS0ebe
	l5ogM=
X-Google-Smtp-Source: AGHT+IHSw3mQYQM81KhX/bYTCGBeiJYXuG2QjR6E+SNk7nWFQL3i48NLQrY1aTSlqudO2MKOqCGBRw==
X-Received: by 2002:a05:6000:430e:b0:3b9:16e5:bd36 with SMTP id ffacd0b85a97d-3c32c9117aamr28174f8f.15.1755627838424;
        Tue, 19 Aug 2025 11:23:58 -0700 (PDT)
Message-ID: <6852c430-155c-4530-8aa6-67a6e97ef6b3@citrix.com>
Date: Tue, 19 Aug 2025 19:23:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/iommu: setup MMCFG ahead of IOMMU
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>
References: <20250819171826.60700-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: <20250819171826.60700-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19/08/2025 6:18 pm, Roger Pau Monne wrote:
> Otherwise the PCI accesses to segments different than the first one done by
> the IOMMU initialization code would silently fail by returning all ones.
>
> Introduce a new helper, called pci_setup(), and move both the creation of
> PCI segment 0 internal data structures, plus the parsing of ACPI MMCFG
> table to it.
>
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

And moving acpi_mmcfg_init() slightly earlier from acpi_boot_init() into
pci_setup().

> diff --git a/xen/arch/x86/pci.c b/xen/arch/x86/pci.c
> index 26bb7f6a3c3a..e75a29e851a7 100644
> --- a/xen/arch/x86/pci.c
> +++ b/xen/arch/x86/pci.c
> @@ -139,6 +142,19 @@ int pci_sanitize_bar_memory(struct rangeset *r)
>      return 0;
>  }
>  
> +void __init pci_setup(void)
> +{
> +    /*
> +     * Ahead of any ACPI table parsing make sure we have control structures
> +     * for PCI segment 0.
> +     */
> +    if ( pci_add_segment(0) )
> +        panic("Could not initialize PCI segment 0\n");
> +
> +    /* Parse ACPI MMCFG ahead of IOMMU, so accesses to segments > 0 is setup. */

"ahead of IOMMU" isn't helpful here because the relevant context is in
the caller.Â  Instead, I'd just say:

/* Parse ACPI MMCFG to see if other segments are available. */

> +    acpi_mmcfg_init();
> +}
> +
>  /*
>   * Local variables:
>   * mode: C
> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> index 6fb42c5a5f95..bd648323bfed 100644
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -1938,11 +1938,10 @@ void asmlinkage __init noreturn __start_xen(void)
>      setup_system_domains();
>  
>      /*
> -     * Ahead of any ACPI table parsing make sure we have control structures
> -     * for PCI segment 0.
> +     * Initialize PCI (create segment 0, setup MMCFG access) ahead of IOMMU
> +     * setup, as it requires access to the PCI config space.
>       */

Again, this isn't terribly clear IMO.

"ahead of IOMMU setup, as the IOMMUs might not all live on segment 0." ?


> -    if ( pci_add_segment(0) )
> -        panic("Could not initialize PCI segment 0\n");
> +    pci_setup();
>  
>      /*
>       * IOMMU-related ACPI table parsing has to happen before APIC probing, for
> diff --git a/xen/arch/x86/x86_64/mmconfig-shared.c b/xen/arch/x86/x86_64/mmconfig-shared.c
> index f1a3d42c5b21..fbe2676f8636 100644
> --- a/xen/arch/x86/x86_64/mmconfig-shared.c
> +++ b/xen/arch/x86/x86_64/mmconfig-shared.c
> @@ -402,6 +402,9 @@ void __init acpi_mmcfg_init(void)
>  {
>      bool valid = true;
>  
> +    if ( acpi_disabled )
> +        return;

This is fine for the patch, making things consistent with the prior
behaviour.

However, I think it's well gone time we drop support for pre-APCI
systems, including things like acpi_disabled, etc.

Nothing good can possibly come of these codepaths these days.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Aug 19 18:24:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 18:24:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086970.1445127 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoR0s-0005KA-D3; Tue, 19 Aug 2025 18:24:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086970.1445127; Tue, 19 Aug 2025 18:24: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 1uoR0s-0005K3-AC; Tue, 19 Aug 2025 18:24:50 +0000
Received: by outflank-mailman (input) for mailman id 1086970;
 Tue, 19 Aug 2025 18:24:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=fNib=27=kernel.org=kbusch@srs-se1.protection.inumbo.net>)
 id 1uoR0r-0004xf-JJ
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 18:24:49 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c922644e-7d29-11f0-b898-0df219b8e170;
 Tue, 19 Aug 2025 20:24:47 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 340915C655A;
 Tue, 19 Aug 2025 18:24:46 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 53727C4CEF1;
 Tue, 19 Aug 2025 18:24: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>
X-Inumbo-ID: c922644e-7d29-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755627885;
	bh=SvC+jn4R/dc0Ind2g0hlwOADBQmeZeKp/GI1XBT+Aws=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=EwzZComdy/Uu53OXhh/BwwXin3VgP9XbYbPukl1+6UUrrmT0/QUgfHPWbl0yeg2IQ
	 anqpbJ7fssVt9ylAxZXZBFI6XmgBFt76Sf9R+5d1q0uCECHn7z6AVgdwiNFmtPzUpZ
	 oIJpPvDGleeIPwFshu0MK91r/Q4vlnE3hv5K/BQn4hYDk2V66e58pXhNfNYLb9ftUC
	 FsprkYGd3dpPDZ4hTpasdYuKUOBt3HQa7ezc4te6CtdhPT3gjHwY76TvaUfRVubpfk
	 /uH6qQQOd5J1UhIfM2bjnt3K6ADP7bZZTesuRvLRHriJ0TMIrB1SG3izjobM9UNSdA
	 OKRS+aPZzKk+g==
Date: Tue, 19 Aug 2025 12:24:42 -0600
From: Keith Busch <kbusch@kernel.org>
To: Leon Romanovsky <leon@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-mm@kvack.org, linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org, linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 15/16] block-dma: properly take MMIO path
Message-ID: <aKTBariwz1_XsRv0@kbusch-mbp>
References: <cover.1755624249.git.leon@kernel.org>
 <642dbeb7aa94257eaea71ec63c06e3f939270023.1755624249.git.leon@kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <642dbeb7aa94257eaea71ec63c06e3f939270023.1755624249.git.leon@kernel.org>

On Tue, Aug 19, 2025 at 08:36:59PM +0300, Leon Romanovsky wrote:
> From: Leon Romanovsky <leonro@nvidia.com>
> 
> Make sure that CPU is not synced and IOMMU is configured to take
> MMIO path by providing newly introduced DMA_ATTR_MMIO attribute.

We may have a minor patch conflict here with my unmerged dma metadata
series, but not a big deal.

Looks good.

Reviewed-by: Keith Busch <kbusch@kernel.org>


From xen-devel-bounces@lists.xenproject.org Tue Aug 19 18:33:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 18:33:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086979.1445137 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoR9F-0007WL-4P; Tue, 19 Aug 2025 18:33:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086979.1445137; Tue, 19 Aug 2025 18:33:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoR9F-0007WE-1q; Tue, 19 Aug 2025 18:33:29 +0000
Received: by outflank-mailman (input) for mailman id 1086979;
 Tue, 19 Aug 2025 18:33:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1y2Z=27=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1uoR9E-0007Un-1u
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 18:33:28 +0000
Received: from GVXPR05CU001.outbound.protection.outlook.com
 (mail-swedencentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c202::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fe26ad99-7d2a-11f0-b898-0df219b8e170;
 Tue, 19 Aug 2025 20:33:25 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by AM9PR03MB6868.eurprd03.prod.outlook.com (2603:10a6:20b:2d6::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.24; Tue, 19 Aug
 2025 18:33:21 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9031.023; Tue, 19 Aug 2025
 18:33: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>
X-Inumbo-ID: fe26ad99-7d2a-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xr0Wi5Qv0ellTElOnriWx6N/GuAe+de9gUdP5uZL6RoLDZkqF/9QOQVEJVeKtNE8K5/TjNchb+dnLW+jgALDh1AsxwERevijJdn/Es1j92bAslq5YjN99VbAoYaFbMeZ1D9BEzMQM32ibP0e15if54cRPo2XdJczh62R3ZEpfZqDDtrklUFLVjI8/05H4F9S4vR02dytpLR77v3jDLkj0zFQqNe30Rsm0XJVF+S4aw9esWhVxX7Wjo5wuIbCNpp9CUroiHKxHhltt5GDP+7Vd1CNGG1Fi0RTlqKFv8LtcHI40/VX6Z3qFtSLlL+m3+j1U57rNXjq0vr9FYSak4SOUg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=M3VwEsLRkfi8LA2LlMMSvtpPduGc9+igZfMWlXI5awo=;
 b=tPS1GBgl/QoAfwppopa6xVkgTsY7drkCr+41nkWrCnLnDJ0FpvIC4MF5mz3UzznAeYsYVkPTqALKiAsZWGUu3CvvppVNU+Ma5PIN4cQkScpvcYxlAn99Z5u/LqFzaPjv29LPEAFBB7QAWR2HJochPC3mtUvavFfEmHSiHDWSjGz3W6PnUiOv280wa69rpee+U1IrL9u9dwow+j2IeAZSKqA2pi5O2YHbKK+H/TY8YO3Owe5KijH5Cmh7BF8bELK6lhTsVnPvEvcEJY08ISCiHS2VfaNA38YjsMjoR+7EP2f4SDWPpkLOf85SuDygfnY91obl1wPuyX+eta6aIY7p/g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=M3VwEsLRkfi8LA2LlMMSvtpPduGc9+igZfMWlXI5awo=;
 b=XtF61tee9KfVVxvJi36CraAm1PPwA3OjhdKf9HEZ69j6mcK4vqQFuvUkf4BtFbSNfgLwTo+wooUjE8G7oRyKdY95Nr44cBS15stAZYPxyLzvugGxJU+eQHPUkTPR+BJ3+Pxo/nFKPmVFFtszAlXlV5Yq5YBVqJnC7i2mX3srvckOL4YXf3iopYdxe+MF49JOPezLCziBFxyGBSvXQWu7Lnc10X7UhvPivK9Yv6APmC9mptpLLjm4+Ql2bn+7V9/sDDB+PGOSbh2V/sAU7GNznQP0uoIDajaY5dUieMxhkaANox0fZj8jqI9tPWzvCtJ4fO5DRkDIwIDn/qmcZmK6qA==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Nicola Vetrini <nicola.vetrini@bugseng.com>, Doug Goldstein
	<cardoe@cardoe.com>, Stefano Stabellini <sstabellini@kernel.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien
 Grall <julien@xen.org>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] misra: add deviation for PrintErrMesg() function
Thread-Topic: [PATCH] misra: add deviation for PrintErrMesg() function
Thread-Index: AQHcEQr89D/JS5GCrUaBbORYWk1wAbRp920AgAASxgCAABODAIAAL66A
Date: Tue, 19 Aug 2025 18:33:21 +0000
Message-ID: <0520f673-4157-41f2-9b7a-7a84232cf780@epam.com>
References:
 <5944d87aae330246b7dab6eebd04d5d71a7d7e8f.1755608417.git.dmytro_prokopchuk1@epam.com>
 <37c61f78-b723-4611-b9d5-f915f72f36e8@suse.com>
 <7bd11401-bd8d-417b-90d5-e52a501211ed@epam.com>
 <195b9a3b-c15a-4bf8-a0e4-2255ede95310@suse.com>
In-Reply-To: <195b9a3b-c15a-4bf8-a0e4-2255ede95310@suse.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV2PR03MB9572:EE_|AM9PR03MB6868:EE_
x-ms-office365-filtering-correlation-id: 4dfa8785-b565-4385-b490-08dddf4ee002
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|7416014|376014|42112799006|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?NzJ4MGVabG1pK1FYTENYVnoxYVZmSjJPeEZZV2ZJeFc2OXVWdFhaa0tCRFNK?=
 =?utf-8?B?STZBcjlTYVkzVTFienBuZ1F5aHlpeU9PbHR4bmxSVWRVWTBkejFwTkJ4MkMx?=
 =?utf-8?B?Njh5T0RmbTA4WnZxaUpzekJmREFSREoxd1M0ck9MNk85V1VxMVQzbEpmREcz?=
 =?utf-8?B?T1RCbmlBVXhoL2NhVWxtakpjTGxsVGZlMUYxZnNwUEw3RThiZEVPNVJYK2po?=
 =?utf-8?B?S21HUEtlUTB4V0wrQjNPQXB5L3ZNd2lnYzc2VTVLRWlkbUlvMFJncVNhNU9E?=
 =?utf-8?B?bGExTkZ3cklxZkMxTGM0SVlEZWtLNjh6SE5EZDEybkhNMkhjMFR1OVdvUjJr?=
 =?utf-8?B?aGVlaE05R2R6L1orTHhqMVkza2tXUEdPSmVYaUNEWHgvNEt5NHhsL0tJV2pP?=
 =?utf-8?B?TDdUSjFqYVNOUDdKTEJoM2pTb0VSWVRBZS9wS2FCK0ZpUEkwUjZLUWl3U1hE?=
 =?utf-8?B?Z3ZyMnZlRjdzNEptTFNrQVdxVFdDY2NJM3hGdHNrS25xbURNdnpjZ3JKT3NS?=
 =?utf-8?B?c3ZQM2ZLcGJBZ2U5VlBHZ0pPbW85dFNzbG1HOHBkMTZWM05jaXFxTk1VNjR1?=
 =?utf-8?B?eXcvdHd4REErT1V4bWxGbG5uN2Qxc1RXbmxROUpRd1E0Q0hTV2hITFV4QzBi?=
 =?utf-8?B?QTJyeUlFMEhjLy96cC9RcWU3Sko2T3NCaTBiWitQczIvdzFsSythS29YVmtV?=
 =?utf-8?B?VFVub01ZTVZtb3FkMm5uOGozT0ZucEt3anFrQ0dWNjEwZXJNc01kU0xmcGtS?=
 =?utf-8?B?ek1FYmlZZ2xIcGNpczRxcnd4RlJPamJESHRjdVZVbXdYU1hBTjZpcXNGVm8w?=
 =?utf-8?B?S0IwbnQvU25HdG1uUlBtdEN6cG9EUUwxR3JZcS9zUm9IenZwblYybk1ZWkZx?=
 =?utf-8?B?ZVBOR25VN2VrbytqVm1aYi9SYURtcmtua3ZYYTk0ZUFUZTVYQUhNenlaY09W?=
 =?utf-8?B?RkFOMjRMYTRUL2NuMjRYZWVwV1ZOT1FGOUxRd1JHdHJKMDVwdi9OcGNsLzFF?=
 =?utf-8?B?eEZKbU1LeXlyOTVqalZneE9IcjVVeS9jS1UyNUxxWTBlakY0ZytrekpvQjNU?=
 =?utf-8?B?WE5iNnZTK3RKVDJ2Ny9VT0VqVE1tSEkyZkphTWZOQm01ZFdwUmRqTkdOMWJP?=
 =?utf-8?B?Ui9tWllaUWE4TE1GSkN6OWQwNFB5bEljcUpyVlJtaDZySWxXK2hUVVJBTndy?=
 =?utf-8?B?RVBvYU5ZR2ZPSC9sVHkwNFZaeENtUCtGN0lJaWRtWXVFc1BCVGlqVWF0dXFu?=
 =?utf-8?B?NGFxT1pzOE9oRlV4czhwQ09mUDJ4OWZXTjFGVTNzb1E3NkRBSkFsWExrblE2?=
 =?utf-8?B?c1J6RFhsRURReTd5SER1TDB1a0xvV2Z1RktOUlZFMDBGTndNdXVFUmJuS3Av?=
 =?utf-8?B?TTloQXNBWGN3ME1lSlpIK1ZFRjRrZ1FJWEgzK3lkYTA1enFQREJyMzJDd3Fm?=
 =?utf-8?B?bk9YSE1MMS9TYzBrSGJKakoxQlFVSmRxd3ZXUHBJaGhydkkzdDFmaG41M3Nm?=
 =?utf-8?B?eWtLd3pxcndtdDlIVkNHLzJ6VmcyOFNVaWtOYWF1VVVlekc3RSt4QllpZ1ht?=
 =?utf-8?B?MWJjRmVjM3Fvd1BTWlFRL0JCaWVtNk5LVExIcy9NU09mM2pwS1JFclhIUWlX?=
 =?utf-8?B?V21NYXdITTQ3SFlrZ2cxZDZnUk56S2lhb0hlSWQzNEpXcEQreEVRcDlnZnBI?=
 =?utf-8?B?RGJ6bERkODh1Vml3U09FNTl6SURXUDhTekZRMFJrZFlQb3pwNWJ4RWFaYit2?=
 =?utf-8?B?TUMxZURmdTN6Z1UvVVBXVGtYcVBSclpMSDg5alB2TU1iZ0hKVTZTbFBDUEVU?=
 =?utf-8?B?Z2tGazlWVFNub3IwYnYvbEtlVnp2UkhTSkpUNFN1ZWF5elFHSFQranZLK3o2?=
 =?utf-8?B?Rm9KQjBNWTAvNnlZNFc0VzVPUnJTYVhaSUxCOTNQWXR1Ry9xRkZpdmphb3pN?=
 =?utf-8?B?cnZpVkRmYW42WUNlNGZqU1gvREJmcDZlNTRJckZOVkZSWmEvSHdheDlPa29h?=
 =?utf-8?B?VU53bXlkYndBPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014)(42112799006)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?dXErNGQwRFl5SG9UMTlxc05BbnFKUDJzRG8yb2pvNEFscnR3cDF3Z09kQVYr?=
 =?utf-8?B?c29qUkUxUFYwdDRiUXQvdjNMWjlzc0hVOVBTNkJoN1FPdEh3Q0pvclA2NmVR?=
 =?utf-8?B?clpXOVd1ZGpVWUllYzVFbUM0QmY1NXNMYTlRYUpPMTVlYmV2Z29pMEhUbzR6?=
 =?utf-8?B?bDArS1hoUm4xZHlqaWIwanJTTmNhMnFPUVNDZWVVU3Fma2g4VSt1SmhiZzRX?=
 =?utf-8?B?SHhoUkU0ZDNZY2xEZCtDTmVWeG1rNk1qVkVvWUpCS0J4bDIvMHpRN2trSWsw?=
 =?utf-8?B?M0NzT2I5WU8rbWJXc0NWdmZEVlR5Nk1VaHN6cG5BNUM0VjI1WnRBZDZKU0Ju?=
 =?utf-8?B?MWRLdHFpbzYzWU5VNFhVRksrYkZITFF6SzNncXltZWRLK2pJK2hZLytPdzh6?=
 =?utf-8?B?YzVzTFF1MzRpdDJTRGRQQms1MUYxODBaWjk1a0s0clgvRDlZRW5uaGdibndD?=
 =?utf-8?B?M3Jha010TzgweGdEUEQzeTJTSzk2Z0N4WUVJVGZoRkVkM3Fsam4wb2Z0ZHd1?=
 =?utf-8?B?eWtYWG43aWs4LzJML1hUTzc4Qm5BeTdpbkNFUnJhRXlQSVlxM0Z5RS9ac0Na?=
 =?utf-8?B?YmEvQ3FraUVwUWZWSVBFakpiMlIyQk9kY2hIQ281RGRIcHB6Mk02R05ESXZR?=
 =?utf-8?B?NkNOazFjNVVHeUxOTkpoOFNHQlNSeWVXdktCUEZuVnR2T2pMN002QjZ0MHIy?=
 =?utf-8?B?V0hOcGNJa29ONnh4MjFURFBrN0ZRKzZUa1ZqNnhMK1g5dlRKZ0N6Rk5HbjdO?=
 =?utf-8?B?UVEyendvYUFHUG5qSGhKOTduV3IwWmE1NndVdTNtNERCd0Fhc2ZQQjdYSjVJ?=
 =?utf-8?B?elJlWXR0QmR1eVFGZmJyUjhWMGt0OVljYmFXTHZBVVdqL1NmREJ6SkUwMEI0?=
 =?utf-8?B?eE15SDVtOFpYdWdxSk5UOWJDWmVYZnFkYW1CdXA1NENuL0t6Ymd4dW9RVXR6?=
 =?utf-8?B?cVpxbE5KTzlnNm93M1ZWRFdlUm53LzJ6SDQ3MVZldVpadkZUV2NKclJ6Zzk3?=
 =?utf-8?B?eFhTSkNtM1RVb2pjVFN6L1VETmNqMVhwTTF0eXVPZ2htSDZVSzJwVTVubmdo?=
 =?utf-8?B?Qzk4akxNYnJQWTJWcEtjREEzNG9pWmZZSDhwNVd5eDQxckJBRGlHTXppNXR3?=
 =?utf-8?B?Y2hxb29LOFM0UGZoOW1RNklXdFd6SGdoOUU5a2xkSjYwUGdpODBFdEJGanhk?=
 =?utf-8?B?SXJKVGNjZE1JZll3NnppM05GWG9mME53bmdsQU42WXBMNXY3UVliT1VuNHRT?=
 =?utf-8?B?YmtjTVNEcFFMUEhxSDRVTXJGcXNCTENwUjlCTHF5WEhnSWVCVGl1OWd0N3pU?=
 =?utf-8?B?VUNHVzhBVGpJMHZOU0xEZ3U5cmZTMUdQV2k5UFpGQWtFckh1RkdYZ2xWSDEy?=
 =?utf-8?B?R2RZR2U2RWo3Q2UyMm5hVE5OSFh6UHNyMk1IdWd0S0NuZ0J3YUxraVpIVjBl?=
 =?utf-8?B?LzNaak1Dc0Vmek4zWUlkb0Jtai95d1hFOXUxc0FvUTgrZWdMM0NwU29lT0Iw?=
 =?utf-8?B?QVJKWGFsVW1BSEQ2UHpRazNEYlFaV3JoSVYrcGNNdklRaVROUTVrbmZTTU9X?=
 =?utf-8?B?TUJub3ZPdDYxTHlxVmpEbHdPQnVTV2dTdzQ3blR2dlJsZjA3QXlYVWtSRTJj?=
 =?utf-8?B?cm5Kck1OcWdrYTBGZzJ2eG8rMm1ZY0FrS1R6Kzd5NENMRGJWTS9GY2hHdHor?=
 =?utf-8?B?WUNQOXpiRndIMVZkQ1NGMU5MSDZxZEw1UTg4dGRvdnBtc1hSbGFnNXF3VU8z?=
 =?utf-8?B?M2xuZEJ2QUw1ZGNhbEcrYktVZWE1cXEwaEhPd3ppRERIQUxVdnBmRWhnODlM?=
 =?utf-8?B?QUdxNU1ucFNISVM3TEN6ZlZsek5SKy83RW1wQkZjSlV6VVY3UHVBWE00MjY4?=
 =?utf-8?B?S2VHeWc0SHp5VHZsVW5HbzFMSENEZ0RwQnl0UmJlT0tORk1LUUd1MmN6RW1h?=
 =?utf-8?B?S3JzRlpHVHNhTmJpbTFPSzNiajNFdVBhVFhDV1FQUXZPcFVUazVtbmYvb2lR?=
 =?utf-8?B?SVVOUmlVTFREU2UxZjhGK09IUzA0NzE2c1lSK3VYMjhtbldqc0pEeUhZcGNa?=
 =?utf-8?B?VmR3anNLOStweGZTc0xFNXcyUzI1VWlTQXBsZmVoVUJIaExJaUt2aFhVQ2xI?=
 =?utf-8?B?dkVUZnhtZzRRMEdTUWpDM1JBMlpjbGtSMm51bU5PMk8yVUx1LzBiNGlCYmlX?=
 =?utf-8?B?NUE9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <F01B41058BB414428D04FAF335B30D9D@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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4dfa8785-b565-4385-b490-08dddf4ee002
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Aug 2025 18:33:21.4835
 (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: bzRKEwgKzTCO4IoVgIIaMxpvFpUe4c0GohmwtVAoHiRGFYqQApdY/XUSg8E1chW+CKtBGH6A+X+yyyTgeMehFJza0unfTdLzZKchgrdQn5k=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB6868

DQoNCk9uIDgvMTkvMjUgMTg6NDIsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAxOS4wOC4yMDI1
IDE2OjMyLCBEbXl0cm8gUHJva29wY2h1azEgd3JvdGU6DQo+PiBPbiA4LzE5LzI1IDE2OjI1LCBK
YW4gQmV1bGljaCB3cm90ZToNCj4+PiBPbiAxOS4wOC4yMDI1IDE1OjEyLCBEbXl0cm8gUHJva29w
Y2h1azEgd3JvdGU6DQo+Pj4+IE1JU1JBIEMgUnVsZSAyLjEgc3RhdGVzOiAiQSBwcm9qZWN0IHNo
YWxsIG5vdCBjb250YWluIHVucmVhY2hhYmxlIGNvZGUuIg0KPj4+Pg0KPj4+PiBUaGUgZnVuY3Rp
b24gJ1ByaW50RXJyTWVzZygpJyBpcyBpbXBsZW1lbnRlZCB0byBuZXZlciByZXR1cm4gY29udHJv
bCB0bw0KPj4+PiBpdHMgY2FsbGVyLiBBdCB0aGUgZW5kIG9mIGl0cyBleGVjdXRpb24sIGl0IGNh
bGxzICdibGV4aXQoKScsIHdoaWNoLCBpbg0KPj4+PiB0dXJuLCBpbnZva2VzICdfX2J1aWx0aW5f
dW5yZWFjaGFibGUoKScuIFRoaXMgbWFrZXMgdGhlICdyZXR1cm4gZmFsc2U7Jw0KPj4+PiBzdGF0
ZW1lbnQgaW4gJ3JlYWRfZmlsZSgpJyBmdW5jdGlvbiB1bnJlYWNoYWJsZS4NCj4+Pg0KPj4+IEkn
bSBkaXNhcHBvaW50ZWQuIEluIGVhcmxpZXIgcmV2aWV3IGNvbW1lbnRzIEkgcG9pbnRlZCBvdXQg
dGhhdCB0aGVyZSBhcmUNCj4+PiB0d28uIFlldCB5b3Ugc2F5ICJ0aGUiLCB3aXRob3V0IGZ1cnRo
ZXIgZGlzYW1iaWd1YXRpb24uDQo+Pj4NCj4+Pj4gLS0tIGEvYXV0b21hdGlvbi9lY2xhaXJfYW5h
bHlzaXMvRUNMQUlSL2RldmlhdGlvbnMuZWNsDQo+Pj4+ICsrKyBiL2F1dG9tYXRpb24vZWNsYWly
X2FuYWx5c2lzL0VDTEFJUi9kZXZpYXRpb25zLmVjbA0KPj4+PiBAQCAtNDEsNiArNDEsMTAgQEAg
bm90IGV4ZWN1dGFibGUsIGFuZCB0aGVyZWZvcmUgaXQgaXMgc2FmZSBmb3IgdGhlbSB0byBiZSB1
bnJlYWNoYWJsZS4iDQo+Pj4+ICAgIC1jYWxsX3Byb3BlcnRpZXMrPXsibmFtZShfX2J1aWx0aW5f
dW5yZWFjaGFibGUpJiZzdG10KGJlZ2luKGFueV9leHAobWFjcm8obmFtZShBU1NFUlRfVU5SRUFD
SEFCTEUpKSkpKSIsIHsibm9yZXR1cm4oZmFsc2UpIn19DQo+Pj4+ICAgIC1kb2NfZW5kDQo+Pj4+
ICAgIA0KPj4+PiArLWRvY19iZWdpbj0iVW5yZWFjaGFiaWxpdHkgY2F1c2VkIGJ5IHRoZSBjYWxs
IHRvIHRoZSAnUHJpbnRFcnJNZXNnKCknIGZ1bmN0aW9uIGlzIGRlbGliZXJhdGUsIGFzIGl0IHRl
cm1pbmF0ZXMgZXhlY3V0aW9uLCBlbnN1cmluZyBubyBjb250cm9sIGZsb3cgY29udGludWVzIHBh
c3QgdGhpcyBwb2ludC4iDQo+Pj4+ICstY29uZmlnPU1DM0EyLlIyLjEscmVwb3J0cys9e2RlbGli
ZXJhdGUsICJhbnlfYXJlYSheLipQcmludEVyck1lc2cuKiQgJiYgYW55X2xvYyhmaWxlKF54ZW4v
Y29tbW9uL2VmaS9ib290XFwuYyQpKSkifQ0KPj4+PiArLWRvY19lbmQNCj4+Pg0KPj4+IEkgZG9u
J3QgdW5kZXJzdGFuZCB0aGUgZGVzY3JpcHRpb24gaGVyZSwgbm9yIC4uLg0KPj4+DQo+Pj4+IC0t
LSBhL2RvY3MvbWlzcmEvZGV2aWF0aW9ucy5yc3QNCj4+Pj4gKysrIGIvZG9jcy9taXNyYS9kZXZp
YXRpb25zLnJzdA0KPj4+PiBAQCAtOTcsNiArOTcsMTMgQEAgRGV2aWF0aW9ucyByZWxhdGVkIHRv
IE1JU1JBIEM6MjAxMiBSdWxlczoNCj4+Pj4gICAgICAgICAgIFhlbiBleHBlY3RzIGRldmVsb3Bl
cnMgdG8gZW5zdXJlIGNvZGUgcmVtYWlucyBzYWZlIGFuZCByZWxpYWJsZSBpbiBidWlsZHMsDQo+
Pj4+ICAgICAgICAgICBldmVuIHdoZW4gZGVidWctb25seSBhc3NlcnRpb25zIGxpa2UgYEFTU0VS
VF9VTlJFQUNIQUJMRSgpIGFyZSByZW1vdmVkLg0KPj4+PiAgICANCj4+Pj4gKyAgICogLSBSMi4x
DQo+Pj4+ICsgICAgIC0gRnVuY3Rpb24gYFByaW50RXJyTWVzZygpYCB0ZXJtaW5hdGVzIGV4ZWN1
dGlvbiAoYXQgdGhlIGVuZCBpdCBjYWxscw0KPj4+PiArICAgICAgIGBibGV4aXQoKWAsIHdoaWNo
LCBpbiB0dXJuLCBpbnZva2VzIGBfX2J1aWx0aW5fdW5yZWFjaGFibGUoKWApLCBlbnN1cmluZw0K
Pj4+PiArICAgICAgIG5vIGNvZGUgYmV5b25kIHRoaXMgcG9pbnQgaXMgZXZlciByZWFjaGVkLiBU
aGlzIGd1YXJhbnRlZXMgdGhhdCBleGVjdXRpb24NCj4+Pj4gKyAgICAgICB3b24ndCBpbmNvcnJl
Y3RseSBwcm9jZWVkIG9yIGludHJvZHVjZSB1bndhbnRlZCBiZWhhdmlvci4NCj4+Pj4gKyAgICAg
LSBUYWdnZWQgYXMgYGRlbGliZXJhdGVgIGZvciBFQ0xBSVIuDQo+Pj4NCj4+PiAuLiB0aGUgdGV4
dCBoZXJlLiBQcmludEVyck1lc2coKSBpcyBub3JldHVybi4gV2h5IHdvdWxkIGFueXRoaW5nIG5l
ZWQgc2F5aW5nIGFib3V0DQo+Pj4gaXQ/IElzbid0IHRoZSBwcm9ibGVtIGhlcmUgc29sZWx5IHdp
dGggdGhlIHRhaWwgb2YgcmVhZF9maWxlKCksIHdoaWxlIG90aGVyIHVzZXMNCj4+PiBvZiBQcmlu
dEVyck1lc2coKSBhcmUgb2theT8NCj4+DQo+PiBJJ20gYSBsaXR0bGUgYml0IGNvbmZ1c2VkLg0K
Pj4NCj4+IEFzIEkgdW5kZXJzdG9vZCB5b3UgcHJvcG9zZWQgdG8gaW5zZXJ0IHRoZSBTQUYgY29t
bWVudCBiZWZvcmUgdGhlDQo+PiAncmV0dXJuJyBzdGF0ZW1lbnQgKHdpdGggcHJvcGVyIGp1c3Rp
ZmljYXRpb24pLg0KPj4NCj4+IEFuZCBjdXJyZW50IEVjbGFpciBjb25maWd1cmF0aW9uICYgZGVz
Y3JpcHRpb25zIGFyZSBub3QgZ29vZCBhdCBhbGwuDQo+IA0KPiBOb3Qgc3VyZSBob3cgdGhhdCdz
IHJlbGF0ZWQsIGJ1dCBhcGFydCBmcm9tIHRoaXMsIC4uLg0KPiANCj4+IEFtIEkgcmlnaHQ/DQo+
IA0KPiAuLi4geWVzLiBZZXQgaG93IGlzIHdoYXQgeW91IHN1Ym1pdHRlZCBoZXJlIHJlbGF0ZWQg
dG8gdGhlIGlzc3VlIGluIHJlYWRfZmlsZSgpLA0KPiB3aGljaCBtYXkgYmUgYWRkcmVzc2FibGUg
YnkgYSBzaW1wbGUgU0FGIGNvbW1lbnQgKGFzIHlvdSBzYXkgaW4geW91ciByZXBseSk/DQo+IA0K
PiBKYW4NCg0KVGhlIEVjbGFpciByZXBvcnRzIHZpb2xhdGlvbiBhcyBmb2xsb3dzOg0KImNhbGwg
dG8gZnVuY3Rpb24gYFByaW50RXJyTWVzZyhjb25zdCBDSEFSMTYqLCBFRklfU1RBVFVTKScgKHVu
aXQgDQpgeGVuL2NvbW1vbi9lZmkvYm9vdC5jJyB3aXRoIHRhcmdldCBgeGVuL2FyY2gvYXJtL2Vm
aS9ib290Lm8nKSBpcyBvbmUgDQpjYXVzZSBvZiB1bnJlYWNoYWJpbGl0eSBvZiB0aGUgbmV4dCBz
dGF0ZW1lbnQiDQoNClNvLCBwYXRjaCB3YXMgYWJvdXQgdG8gaWdub3JlIHZpb2xhdGlvbnMgaW4g
ZmlsZSAneGVuL2NvbW1vbi9lZmkvYm9vdC5jJw0KKGFjdHVhbGx5IGZ1bmN0aW9uIHJlYWRfZmls
ZSgpIGlzIHRoZXJlKSB3aGVyZSBhcHBlYXJzIHRleHQgJ1ByaW50RXJyTWVzZycuDQoNClByb2Jh
Ymx5IHRoaXMgaXMgdG9vIHVuY2xlYXIuIEFuZCB2aW9sYXRpb24gbG9jYXRpb24gKHJlYWRfZmls
ZSgpKSANCnNob3VsZCBiZSBleHBsaWNpdGx5IHNwZWNpZmllZC4uLg0KDQogRnJvbSBvdGhlciBz
aWRlIHNpbXBsZSBTQUYteHgtc2FmZSBjb3VsZCBhZGRyZXNzIHRoaXMgY2FzZSBhcyB3ZWxsLg0K
DQpEbXl0cm8uDQoNCg0KDQo=


From xen-devel-bounces@lists.xenproject.org Tue Aug 19 18:45:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 18:45:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086988.1445147 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoRKm-0004AT-6S; Tue, 19 Aug 2025 18:45:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086988.1445147; Tue, 19 Aug 2025 18: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 1uoRKm-0004AM-3l; Tue, 19 Aug 2025 18:45:24 +0000
Received: by outflank-mailman (input) for mailman id 1086988;
 Tue, 19 Aug 2025 18:45:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=h/XH=27=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1uoRKk-0004AG-Qy
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 18:45:22 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a922fc5b-7d2c-11f0-a32a-13f23c93f187;
 Tue, 19 Aug 2025 20:45:22 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-45a1b0becf5so31224805e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 19 Aug 2025 11:45:21 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b42a771ecsm50744915e9.9.2025.08.19.11.45.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Aug 2025 11: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>
X-Inumbo-ID: a922fc5b-7d2c-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755629121; x=1756233921; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=E8SXjZnYZHjmNEYZBfQ8lISq+o+9vMNdKBki0NM7h2M=;
        b=qgHySCxD7rt8sRnhtg9MNLUVBaTdBEo/tgzwNs4LoYdJoDhbdYe3CNkjTaUIEjvq12
         i5NCQ46WNKS5YJIxfwTMlNtsPwLFPl9YPrp8qadM2VfzjCH9t0Dny/flLThSqkU9tnit
         aLi+INikrFHlFydHQ1RSbZMwVcaKzjN8VVrZI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755629121; x=1756233921;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=E8SXjZnYZHjmNEYZBfQ8lISq+o+9vMNdKBki0NM7h2M=;
        b=Ko2Ye5lR8cqdrKHknMca4BQN4+1c+4KMoY9bHZvntQgtPE7fJz5yHj3urS9cIBTjtE
         kWUj/xff5Bq2IP/hiF5LOfrSKklO3eJfHmHShlutQmDOZJ/h4eJFAEgCiNIRWYb4DRn6
         8A0mLNwrKnLnCStXnORezCjsRKc/vi1inZCn2MRS+9GiLAauOxfZBjQLkv0CS/vH1WF8
         LV047RrnUrMRFPsOJ/VVJQ4rlwdiNtqtwGrhxYXutTd2bOcIgraHRwAP8KQsvOq6rWRt
         pkuczQ4NQXk98XK9T3CzhJ2Ga1YdyP9KlxJJK/2ccfIGkqZSYPoSvwiXUrKudhvoNYL7
         glFA==
X-Forwarded-Encrypted: i=1; AJvYcCWu/ol034m/Xjz6yOy29mvx+hH1NuUVTc/OOXBHv0kMA916Ii+0PkXg/vikjzj/E2yZ9f61YpDKTUI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzwUg3UTAX1z6Oi5VE5HhNH1Lj5/f+G7tdFWqGBYygTrsqAet4i
	IIQxyV0xmB8/GIkFSOeebHPThJwUEAFQnvhyxLWGEDuOSg9A3V+FjsWozRIM5a8Plco=
X-Gm-Gg: ASbGnctNF/y8dOUZ3l79avuJru8yxDNBHzZLHZqbO+Kg3cN23MtdNRef1eo068zQ4Hr
	/JI9dWawkd2XyEp+o1+EFvp5/hCTPcUgFf8HEXijPCRKXJ2DhD4WHoES5bdkgfWvnVlOaRG2e/Y
	ErMkL1skQ9Z7GuwLF2kRwdtxaJV46V+SPu55V6btX9n2unXSGbRP3k+8TbRdOtRwgYbZ/6PrpBT
	Xqa4L34s42lPOPaK4PGeBkUzG/L45XtSoqZNUUIkIIZzwd/aqR6mpoU1+P1+DeK7D8heMVK/wLB
	x+/GLzRM9d6U4J98g8wiwZAGh5y5W3Rjd3xwV0lY4WhmRVJ/69ksVxplUtDG5SrVZUaKUp9i4SZ
	fboW3bEeM02stqu6MXtR+ik1ORtwcQZRSA1VCROCzz+aDgqLM/apsj/quqU3rMgsS568I
X-Google-Smtp-Source: AGHT+IF+0seg0KGdmguGVbTZeUDCcQdzSXS8ESCL9+2ynqnS7ZeVByoIw8kqDa6iACyLJyYElhdHXA==
X-Received: by 2002:a05:600c:46c6:b0:456:24aa:9586 with SMTP id 5b1f17b1804b1-45b43dfff1amr28232785e9.21.1755629121261;
        Tue, 19 Aug 2025 11:45:21 -0700 (PDT)
Message-ID: <8b852798-83ec-4f10-99c2-ae5f0bca7038@citrix.com>
Date: Tue, 19 Aug 2025 19:45:20 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/2] common: make page_{is,get}_ram_type() x86-only
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>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <a2dc40a8-908a-44a7-b443-90f492a775cc@suse.com>
 <4a568ff4-2cfd-40ec-b249-217fab34f4ec@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: <4a568ff4-2cfd-40ec-b249-217fab34f4ec@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18/08/2025 8:57 am, Jan Beulich wrote:
> --- a/xen/arch/x86/include/asm/mm.h
> +++ b/xen/arch/x86/include/asm/mm.h
> @@ -464,6 +464,16 @@ extern bool opt_pv_linear_pt;
>      ASSERT(((_p)->count_info & PGC_count_mask) != 0);          \
>      ASSERT(page_get_owner(_p) == (_d))
>  
> +#define RAM_TYPE_CONVENTIONAL 0x00000001
> +#define RAM_TYPE_RESERVED     0x00000002
> +#define RAM_TYPE_UNUSABLE     0x00000004
> +#define RAM_TYPE_ACPI         0x00000008
> +#define RAM_TYPE_UNKNOWN      0x00000010
> +/* TRUE if the whole page at @mfn is of the requested RAM type(s) above. */
> +bool page_is_ram_type(unsigned long mfn, unsigned long mem_type);

Making it x86-only is fine, but if you're changing the return type,
mem_type can become shorter too.


Also, I'm struggling to convince myself that page_is_ram_type() is
correct.Â  Even if it is correct, it is horribly inefficient, and we run
this algorithm lots on boot.

Checking the type before the range is the backwards way of doing this,
and it can be a binary search because we go out of our way to fix
unsorted e820 maps.

Finally, acpi_memory_banned() shows that this really isn't the greatest
API in the first place.Â  It's explicitly designed to take multiple
inputs, but does the wrong thing for its' single caller wanting that
behaviour.Â  I can't help but feel we'd be in a better position by
removing this entirely and using plain E820 queries.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Aug 19 18:49:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 18:49:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1086996.1445157 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoROn-0004kF-MZ; Tue, 19 Aug 2025 18:49:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1086996.1445157; Tue, 19 Aug 2025 18:49: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 1uoROn-0004k8-J8; Tue, 19 Aug 2025 18:49:33 +0000
Received: by outflank-mailman (input) for mailman id 1086996;
 Tue, 19 Aug 2025 18:49:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=ve3E=27=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1uoROm-0004k2-8X
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 18:49:32 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3d0b4d76-7d2d-11f0-a32a-13f23c93f187;
 Tue, 19 Aug 2025 20:49:30 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 7C3E65C5C0D;
 Tue, 19 Aug 2025 18:49:29 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3CFBFC4CEF1;
 Tue, 19 Aug 2025 18:49:28 +0000 (UTC)
Received: from phl-compute-12.internal (phl-compute-12.internal [10.202.2.52])
 by mailfauth.phl.internal (Postfix) with ESMTP id 31D3DF40066;
 Tue, 19 Aug 2025 14:49:27 -0400 (EDT)
Received: from phl-imap-08 ([10.202.2.84])
 by phl-compute-12.internal (MEProxy); Tue, 19 Aug 2025 14:49:27 -0400
Received: by mailuser.phl.internal (Postfix, from userid 501)
 id E45512CE0071; Tue, 19 Aug 2025 14:49:26 -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>
X-Inumbo-ID: 3d0b4d76-7d2d-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755629369;
	bh=7PY2nvBiFg+PmH3kasIozmSCqMsV1czCdVRZ4HT8eEo=;
	h=Date:From:To:Cc:In-Reply-To:References:Subject:From;
	b=Xmpr6nUlxhT4ML+rFt1gIMnPEVpYqIqWjpUkgUQR5tX3Ea3qBYnKk1IyWsYC7sBet
	 QBsMrRk3r7iMu12daYBH1ylIKK33Dgbw2Y1MuCT43OUlbupun65NOdzuJa9IY8ytGJ
	 F2KoEBiwNJLZb2M/WkquLSxMBkG+zUTjWlAYLvA7NXHrkQmzA8GdxTTiqKCPXXi78g
	 mN0g5G7szNsgyUdSlZmbkMIIrt7pMw7M4uyf1LOzcmC10UoLlqg1CBOGjbTIEq00Ec
	 HfGNVq0UJwNkN4j62cFWRW+/HtCdXt1of9/eic9VtPkqlZST1PzxASg8IfYr3RIGmP
	 SUG+MxNe67pLw==
X-ME-Sender: <xms:NsekaGLkpYYn_tL5rT3yO_BkXqxiddfgdxidgKxcHaH-MXl652p3cQ>
    <xme:NsekaOJlIC7TCSjCwYmRCpvzsFljgqYaxuYOZolEbVOqnFcN0Yb2GZzTgHG2uybzM
    aWMSS4nJkDgbbBx7tg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgdduheeivdehucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepofggfffhvfevkfgjfhfutgfgsehtjeertdertddtnecuhfhrohhmpedfnfgvohhn
    ucftohhmrghnohhvshhkhidfuceolhgvohhnsehkvghrnhgvlhdrohhrgheqnecuggftrf
    grthhtvghrnhepjeevffelgfelvdfgvedvteelhefhvdffheegffekveelieevfeejteei
    leeuuedvnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomh
    eplhgvohhnodhmvghsmhhtphgruhhthhhpvghrshhonhgrlhhithihqdduvdeftdehfeel
    keegqddvjeejleejjedvkedqlhgvohhnpeepkhgvrhhnvghlrdhorhhgsehlvghonhdrnh
    hupdhnsggprhgtphhtthhopeefjedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohep
    jhhorhhoseeksgihthgvshdrohhrghdprhgtphhtthhopehrohgsihhnrdhmuhhrphhhhi
    esrghrmhdrtghomhdprhgtphhtthhopehmphgvsegvlhhlvghrmhgrnhdrihgurdgruhdp
    rhgtphhtthhopegrsgguihgvlhdrjhgrnhhulhhguhgvsehgmhgrihhlrdgtohhmpdhrtg
    hpthhtoheprghlvgigrdhgrgihnhhorhesghhmrghilhdrtghomhdprhgtphhtthhopehr
    ohhsthgvughtsehgohhoughmihhsrdhorhhgpdhrtghpthhtohepghhlihguvghrsehgoh
    hoghhlvgdrtghomhdprhgtphhtthhopehkrghsrghnqdguvghvsehgohhoghhlvghgrhho
    uhhpshdrtghomhdprhgtphhtthhopehsrghgihesghhrihhmsggvrhhgrdhmvg
X-ME-Proxy: <xmx:N8ekaMdwa-bjfjKiy_bnjKe5pj-w5KnECjXqAsQ2QeQdV4SQA7pQwg>
    <xmx:N8ekaPdCW9gH5-vPa6JOMA4aaqp_1mwWnXjSovauczKDDBtpYQ57dA>
    <xmx:N8ekaKnKy6VKuw8SWj7LEaUJFkqm2rbcIMv54YWlw8KOdD3OfERqqw>
    <xmx:N8ekaE8iyeSnMuDLLObkGrzOSgmAQEbj_4QdVJQzRyQ8881Jp0dwDQ>
    <xmx:N8ekaGEni2UyRaNp_TjZoxjj4fIEinDxeQ57M5QUT8SDp3Eg6UepfRUM>
Feedback-ID: i927946fb:Fastmail
X-Mailer: MessagingEngine.com Webmail Interface
MIME-Version: 1.0
X-ThreadId: A0xmfm2pPGfg
Date: Tue, 19 Aug 2025 20:49:08 +0200
From: "Leon Romanovsky" <leon@kernel.org>
To: "Keith Busch" <kbusch@kernel.org>
Cc: "Marek Szyprowski" <m.szyprowski@samsung.com>,
 "Leon Romanovsky" <leonro@nvidia.com>,
 "Jason Gunthorpe" <jgg@nvidia.com>,
 "Abdiel Janulgue" <abdiel.janulgue@gmail.com>,
 "Alexander Potapenko" <glider@google.com>,
 "Alex Gaynor" <alex.gaynor@gmail.com>,
 "Andrew Morton" <akpm@linux-foundation.org>,
 "Christoph Hellwig" <hch@lst.de>, "Danilo Krummrich" <dakr@kernel.org>,
 iommu@lists.linux.dev, "Jason Wang" <jasowang@redhat.com>,
 "Jens Axboe" <axboe@kernel.dk>, "Joerg Roedel" <joro@8bytes.org>,
 "Jonathan Corbet" <corbet@lwn.net>, "Juergen Gross" <jgross@suse.com>,
 kasan-dev@googlegroups.com, linux-block@vger.kernel.org,
 linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
 linux-mm@kvack.org, linux-nvme@lists.infradead.org,
 linuxppc-dev@lists.ozlabs.org, linux-trace-kernel@vger.kernel.org,
 "Madhavan Srinivasan" <maddy@linux.ibm.com>,
 "Masami Hiramatsu" <mhiramat@kernel.org>,
 "Michael Ellerman" <mpe@ellerman.id.au>,
 "Michael S. Tsirkin" <mst@redhat.com>, "Miguel Ojeda" <ojeda@kernel.org>,
 "Robin Murphy" <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
 "Sagi Grimberg" <sagi@grimberg.me>,
 "Stefano Stabellini" <sstabellini@kernel.org>,
 "Steven Rostedt" <rostedt@goodmis.org>, virtualization@lists.linux.dev,
 "Will Deacon" <will@kernel.org>, xen-devel@lists.xenproject.org
Message-Id: <82f3cf3c-960b-41bc-82a8-ce84353706ed@app.fastmail.com>
In-Reply-To: <aKTAVOBp0u6ZSC4w@kbusch-mbp>
References: <cover.1755624249.git.leon@kernel.org>
 <22b824931bc8ba090979ab902e4c1c2ec8327b65.1755624249.git.leon@kernel.org>
 <aKTAVOBp0u6ZSC4w@kbusch-mbp>
Subject: Re: [PATCH v4 14/16] block-dma: migrate to dma_map_phys instead of map_page
Content-Type: text/plain
Content-Transfer-Encoding: 7bit



On Tue, Aug 19, 2025, at 20:20, Keith Busch wrote:
> On Tue, Aug 19, 2025 at 08:36:58PM +0300, Leon Romanovsky wrote:
>>  static bool blk_dma_map_direct(struct request *req, struct device *dma_dev,
>>  		struct blk_dma_iter *iter, struct phys_vec *vec)
>>  {
>> -	iter->addr = dma_map_page(dma_dev, phys_to_page(vec->paddr),
>> -			offset_in_page(vec->paddr), vec->len, rq_dma_dir(req));
>> +	iter->addr = dma_map_phys(dma_dev, vec->paddr, vec->len,
>> +			rq_dma_dir(req), 0);
>
> Looks good.
>
> Reviewed-by: Keith Busch <kbusch@kernel.org>
>
> Just a random thought when I had to double back to check what the "0"
> means: many dma_ api's have a default macro without an "attrs" argument,
> then an _attrs() version for when you need it. Not sure if you want to
> strictly follow that pattern, but merely a suggestion.

At some point,  I had both functions with and without attrs, but Christoph said that it is an artefact and I should introduce one function which accepts attrs but without _attrs in the name.

Thanks 


From xen-devel-bounces@lists.xenproject.org Tue Aug 19 18:56:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 18:56:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087013.1445167 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoRV2-0007X1-EG; Tue, 19 Aug 2025 18:56:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087013.1445167; Tue, 19 Aug 2025 18:56: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 1uoRV2-0007Wu-Bi; Tue, 19 Aug 2025 18:56:00 +0000
Received: by outflank-mailman (input) for mailman id 1087013;
 Tue, 19 Aug 2025 18:55:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1y2Z=27=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1uoRV1-0007Vb-Ia
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 18:55:59 +0000
Received: from AM0PR83CU005.outbound.protection.outlook.com
 (mail-westeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c201::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2132b0c1-7d2e-11f0-b898-0df219b8e170;
 Tue, 19 Aug 2025 20:55:53 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by DU0PR03MB8164.eurprd03.prod.outlook.com (2603:10a6:10:353::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.24; Tue, 19 Aug
 2025 18:55:49 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9031.023; Tue, 19 Aug 2025
 18:55:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2132b0c1-7d2e-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YhxYQUUV4qGavwCsOV5IsS2Xq4LbIa8WgxiNDKkIuBVeCAXBIHLwDEu1RrJnLNoDr8+xOtx5kkxsf1BAlUUhGz2252aWfsKp4KDssnvpsEienTCsFSyf+wNsfpv0BnMkBHCmBq+C6YGJpUNa2Jle14j/nc+RmXFhiLMjWg08m9FcF64upJyQgo79fkR21NELiJvk11z4WYBPsSgWJFMFwfh68qq88BnnMU5Jw7pjMjjZM+9wEoneMGU8u3VL5qCmw9XufJxLdtIuQq6WBpe/AlD5eKbw4E3lOJUT6gPBMSHlETZDsB9gzpnyqU0BWjG0D4shHZ4BTUm5Ay2GmRc4nw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=FrrMBmiNRzQVInQl48AnTqOiLI6PzPO8kbTE5N2xFE0=;
 b=u5wZ89sHT5EXsrkadmFUSVqt9j2gfnSZ/rQExigarQ4GHBIoCEW2Vuz5EJQrBwbZkoDQsEoraj+LJM3eV2wyVy6Xb2Zlvev+i/inK3XrH/kKZXb3Ah/NxpMvjnmbsPJ5l7ZjcfJ5qkZ0XUXo28BQ6Bn5WKic6wC8UobvVQ544vfoFYBDuux73qfeWPQnJCqMU9zbILIhhnJh5qBcstcULOqN4TXlzrDaWJ3RNDg6VkYZb71TMfl4/iSEFgS6nNHQcUJLvEi/lissXczEca2sMo9VaAQupY5Fh6+WLUXzwT1+AGpmyq3YiCaBqP6bizMtUg3gNIbIbMVoavvG5TnyYw==
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=FrrMBmiNRzQVInQl48AnTqOiLI6PzPO8kbTE5N2xFE0=;
 b=Ra3jUm0jomYRnwV2Psg5BpatNxTmsRON2rId/F2+mdfzXIiPLOqZdNMa3Tr51FvPbeaNwZZ20WookbohHXBlVZ8miR0slfd5M7w+wubNFn/ReWaA2mxL0VikWxveosIxV8XiwHC/yGsiG/GwMsIsL4g+SgpBgXYesg4az8Ew3LLhhIQf1snBxQFdoqjH9oOhMnjNVZuChjqZtPl5xiUSiXN05eocGvsE18ueGTuIgPjSzbmp9HGHvuLyv+jbd4vbdUfDZ9r704hV4yV2FTWbWIRv/rh/U/cJCE8biwuDyWjy7i3iMRoX0meoc+QLYl+gCHMnN73lml5Sg/xizObMhA==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, Nicola Vetrini
	<nicola.vetrini@bugseng.com>, Doug Goldstein <cardoe@cardoe.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>
Subject: [PATCH] misra: consider conversion from UL or (void*) to function
 pointer as safe
Thread-Topic: [PATCH] misra: consider conversion from UL or (void*) to
 function pointer as safe
Thread-Index: AQHcETrg9Y9S2hDXvUqVfYmm522krQ==
Date: Tue, 19 Aug 2025 18:55:48 +0000
Message-ID:
 <9e5e4ff2c7ba0a90a6ac403e2de9318e18949274.1755628705.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: GV2PR03MB9572:EE_|DU0PR03MB8164:EE_
x-ms-office365-filtering-correlation-id: 6cb5b868-4444-4146-8c09-08dddf520331
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|376014|42112799006|7416014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?/DFcpcJfsRbOwomQslB1cAy06k8H0wlDLmZ7q/eCbS/KYhlf9fzTkh+eNh?=
 =?iso-8859-1?Q?EaOB5pNjrfhslf1xqKeKOJxjsa/hCwM1GLTO/dpfO51d61Ad++dTu1PIbo?=
 =?iso-8859-1?Q?mNXS9qkDZNIr66o888zJN943cobp+IT38mlXve2IjvQxad+VLFKVenCwDs?=
 =?iso-8859-1?Q?hZNQo9/gODB7RZEz0IXQNiYgtWysOFI43F9smdur3L99v6WKevRvUFvG8P?=
 =?iso-8859-1?Q?C8xakbtHUdyEob/UvIdnUbvzdCwkYKGUXYvEI78KDuSQfDqb0fwK9Fx+E+?=
 =?iso-8859-1?Q?AdmX+WfVgNRU2hxkFhB3b1TWsigwHjHsj2FMZElzuMObB4IHhxs0NmV+Eq?=
 =?iso-8859-1?Q?D7fH+FWNRZQEn2rcqjY/0jDZF4RdibNDjvs1WicZTopeADw8TlJMRvT4qA?=
 =?iso-8859-1?Q?aMqO523worVFtVrSWWJbJepcqo7yjIoTKimmLhl7rnZtDRWHOkgFtmkDgi?=
 =?iso-8859-1?Q?yv8ytqtHV/l/FU4uVkU4sz+N0weSCaV9P/GKKLotn7qjlJgyUUSpbZ4AU+?=
 =?iso-8859-1?Q?kFxAd7D4zVwX37dTfuroE/0PvujfTDo7s+Kwlb7P742cg+TgU8cdisjIbl?=
 =?iso-8859-1?Q?9O/9BDxipfl+t0k2MpGgi7qk5wcFb52XY15ujU7vbxLTOUwelKUHDtM0tu?=
 =?iso-8859-1?Q?AMGjL9d6+OQKs9W/W+domegp5daxOtGvpUbWTB3cDZmayacQ4ZXBBbzobP?=
 =?iso-8859-1?Q?rvupEPOki8mJG7tRPnTmK6iLnpsKIhQ+SAh47E6M7AEgZi7vXE5GA2wy9W?=
 =?iso-8859-1?Q?5gU5IEgvs+R+Z6ER2cRUrQi1/RWsHM/gqJ9UZ2Im7pZP1ocjhie/I7B7D+?=
 =?iso-8859-1?Q?fJlTMD1506S3vDdOZ+3DPLBQA+r7Lz4xIMYAVONJsf8XkN1JNH1dPL4dc/?=
 =?iso-8859-1?Q?9o9W6m9veUhj1+zr9PegmoRXDdYb3zJ4Q+uxwmfCq8Jr3dfCUEqf/QzOAu?=
 =?iso-8859-1?Q?7QzF2QjtNWSjPao4OFFKqhSdgttggAj5SnTNuLTMbLYkHjQFox5nv668Of?=
 =?iso-8859-1?Q?/LAE5i9BYvs/EqQBmV63Jc1ixR5dnfhlR+un/Xt8qj4DyypXSiS12lAJdz?=
 =?iso-8859-1?Q?uor827Q574nHZei74imq6toweFq0d1VShz1hpwkf2KCGAusBL9N+48qzRC?=
 =?iso-8859-1?Q?LI69MZEYMIvAnuStEehDSBn9xDNNs4gKhOqe98xob+5doMFz6cqpWER3hy?=
 =?iso-8859-1?Q?/nwN5sQhH/Lyp9RdLGQJnydVrJG6y7/Ga3TCawRoHA4h93amjGzYQxSoFD?=
 =?iso-8859-1?Q?b5KMfi2qwCYTuqjf9KXba8IG47wMnANj0Z7nvpj4kNWR/i2aV9v4LGCTsj?=
 =?iso-8859-1?Q?yZRvrxr208qT4B+ce8QDXeUxj+q/LBkipngP3ubArJnJfMoeRdxw+s2sJy?=
 =?iso-8859-1?Q?UhN1glPX3U2DYU06HvQ0dGeza4sfeWcBqUSOoaT/eZFuJ16q3Vejxr7yWb?=
 =?iso-8859-1?Q?SzGAB3y5fmFVw8olJJCHHM12kiXZcRB6IgHGtt7VltZ06jVnZ9kH6YhDZ7?=
 =?iso-8859-1?Q?o=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(42112799006)(7416014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?TX3zEJuV7czUoRsYS5DAMwvEUggKwXBey/z2p45DaFMl6cESUAZTY8+vdV?=
 =?iso-8859-1?Q?Ae/7wDz9OJGk+4GoOFANUkOC73Uau+ZIJeAd+HN7QRtyQMKf1gk7FlCSN1?=
 =?iso-8859-1?Q?ug2uR1abz7kL40BwRPcOjHwHqd2ZMjrjXH3Qw3AxyS+yxJqLLIo9lyiVK7?=
 =?iso-8859-1?Q?JyMhxxPwzrzLiqn0aNOW2skmNaj9Ii+v5O5NlXQatf5nMas7Y9dQAQ1dhO?=
 =?iso-8859-1?Q?ps27LnImuoeqWo5meo+wJVyHSbpUyYQhbyI27oo9g0WgBzyQQX8cGnTMkV?=
 =?iso-8859-1?Q?+s2ZCa1oCeJrux9vQ7GTAQgFCrFWT6ACVwu/oL0Znt3IJ1aOybwBqG33z/?=
 =?iso-8859-1?Q?ArxgWPhqdmH4AgPGEqMl+l5rx08FJ0/gvVJJalEbtcNXca+tjEmfTe+7k6?=
 =?iso-8859-1?Q?r/KTBH1ZI1llkZ2a+Bg12NcUFyvlW7ZcasfwH5l2Xq7431m8FLRN6oe8k1?=
 =?iso-8859-1?Q?MTIzF9DILg+8K1YTAPsSO+BnTFL5Jwv4A8ecFKPxrldjmMRyEbIhYIQeEa?=
 =?iso-8859-1?Q?39CzYgJRIULHK+aBvzfltoom7cHnSxMk7sIG/d4juLwTkRoTPsYl1kvhII?=
 =?iso-8859-1?Q?azLREGJ6WVqUzBfSSc3sRglg7gCvY1V3TTwyZn7htskzpEOuPCEUD4wwf6?=
 =?iso-8859-1?Q?1lqmYHvlZjIEQQdYXWiaU8dJ+0etFT0AIeqijsYALHzH3lP1YHrQ55T2jm?=
 =?iso-8859-1?Q?BbKoQUpMNWMpMBL6yfaVMCoPPdlJ1okKgDA4v5u7DAsCZZhvcD4wlsGvXt?=
 =?iso-8859-1?Q?g2m8W/dmbKxwhmo6nUQEte603lMCAJOO2t8iU87v2u4jZiKlz4FrYEPOxu?=
 =?iso-8859-1?Q?dQvZ+QUQ8E2fgDklmVe8rcETL1ozw3Y0E+55/UJVaM7nnQ0iX5JhezdHwI?=
 =?iso-8859-1?Q?b1EhzPhy2NgjA4f8A5G80cThrNn28Rur2HJGTBkTgi0QGxCLXQdmP+AowG?=
 =?iso-8859-1?Q?542oFemRZfQlC//uSnkR+xYuus5wQAaB8XrKCFRJX0sDceyIXWKCz1PhYp?=
 =?iso-8859-1?Q?SzpGR3Sx4qtzhsft3YiESfyRM3s4VCLbjZmDwvKSsnX8NdKCHGzwiW/qHH?=
 =?iso-8859-1?Q?U4qcAD8zKVtqIcgnmqmzBM+nWu9WteMh5ijhd4m8Z8Lr/rdD/Z1d5mfhQ1?=
 =?iso-8859-1?Q?KYsxvA93hTHczm0YHShlNmRkM/qkKwtZoeKvKTaoTnTItM2rUGhmbvbo8p?=
 =?iso-8859-1?Q?GH9WF462i1UKGsguUWTWg+zmH7WeIlmBNM2I9xoyUvSeBu3fzMtZIntFR1?=
 =?iso-8859-1?Q?9UNlUGv4lOjdxQocwmzJcMO54Fxhfuq6cJchOB53m4+2BhDeCCedeihyRE?=
 =?iso-8859-1?Q?ZWThxccQp9h02ECitSWNKKFqzVvxlqrkt2XKNyZuy1w7mq3c+Yh/x1UtE1?=
 =?iso-8859-1?Q?o0OyG5lYpLY53z02buzmmszjqj7LPT0TtKTzHhplTiiIwrxOJNF/AzZLId?=
 =?iso-8859-1?Q?K39YpnHQLMhmRVX9tG+5dEm1Nn6hj0bl0XVvx4OS27jG/MmY9005u42G6L?=
 =?iso-8859-1?Q?s3y5Rvzaukb5Zkd8mr8l7ev+BeoPzvy++WhUV8mzPWXKedzdWPSju6Mkfk?=
 =?iso-8859-1?Q?GVbNqsm9xBcQnSaxvEr1GR2nh4iz91Kiko4vpPC5rz6dxxvsSz40Jtt0VT?=
 =?iso-8859-1?Q?wN1lzmYV2KeED3TKcj09+HpGbQNyzXVXwgIPLQO/psLNIQ1DscUHbK5g?=
 =?iso-8859-1?Q?=3D=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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6cb5b868-4444-4146-8c09-08dddf520331
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Aug 2025 18:55:49.0023
 (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: Pyh9sdKt0C8D0V7tOZA4NzLE6QE2pSuhB3q4Q1iwdd6CIq0AJ/048Ymt/PzFN8SlwGa6Uj/NFybwfk9pNaGTHWEAoeHtkdPQ028NVX1F9qk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB8164

Rule 11.1 states as following: "Conversions shall not be performed
between a pointer to a function and any other type."

The conversion from unsigned long or (void *) to a function pointer
is safe in Xen because the architectures it supports (e.g., x86 and
ARM) guarantee compatible representations between these types.

Configure Eclair to avoid reporting violations for conversions from
unsigned long or (void *) to a function pointer.

Add a compile-time assertion to the file 'xen/common/version.c' to
confirm this conversion compatibility across all target platforms
(assuming this file is common for all platforms).

Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
Test CI pipeline:
https://gitlab.com/xen-project/people/dimaprkp4k/xen/-/pipelines/1991940822

RFC thread:
https://patchew.org/Xen/8cbc9e6d881661d0d7a1055cbcef5a65e20522be.1755109168=
.git.dmytro._5Fprokopchuk1@epam.com/
---
 automation/eclair_analysis/ECLAIR/deviations.ecl |  8 ++++++++
 docs/misra/deviations.rst                        | 10 ++++++++++
 docs/misra/rules.rst                             |  8 +++++++-
 xen/common/version.c                             | 11 +++++++++++
 4 files changed, 36 insertions(+), 1 deletion(-)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/=
eclair_analysis/ECLAIR/deviations.ecl
index 7f3fd35a33..0083c9c505 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -375,6 +375,14 @@ constant expressions are required.\""
 }
 -doc_end
=20
+-doc_begin=3D"The conversion from unsigned long or (void *) to a function =
pointer is safe because the architectures Xen supports (e.g., x86 and ARM) =
guarantee compatible representations between these types."
+-config=3DMC3A2.R11.1,casts+=3D{safe,
+  "from(type(canonical(builtin(unsigned long)||pointer(builtin(void)))))
+   &&to(type(canonical(__function_pointer_types)))
+   &&relation(definitely_preserves_value)"
+}
+-doc_end
+
 -doc_begin=3D"The conversion from a function pointer to a boolean has a we=
ll-known semantics that do not lead to unexpected behaviour."
 -config=3DMC3A2.R11.1,casts+=3D{safe,
   "from(type(canonical(__function_pointer_types)))
diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
index 2119066531..74540e0565 100644
--- a/docs/misra/deviations.rst
+++ b/docs/misra/deviations.rst
@@ -370,6 +370,16 @@ Deviations related to MISRA C:2012 Rules:
        to store it.
      - Tagged as `safe` for ECLAIR.
=20
+   * - R11.1
+     - The conversion from unsigned long or (void \*) to a function pointe=
r does
+       not lose any information or violate type safety assumptions if unsi=
gned
+       long or (void \*) type is guaranteed to be the same bit size as a
+       function pointer. This ensures that the function pointer can be ful=
ly
+       represented without truncation or corruption. The macro BUILD_BUG_O=
N is
+       integrated into xen/common/version.c to confirm conversion compatib=
ility
+       across all target platforms.
+     - Tagged as `safe` for ECLAIR.
+
    * - R11.1
      - The conversion from a function pointer to a boolean has a well-know=
n
        semantics that do not lead to unexpected behaviour.
diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst
index a2e4e9f4ff..ff48a90963 100644
--- a/docs/misra/rules.rst
+++ b/docs/misra/rules.rst
@@ -431,7 +431,13 @@ maintainers if you want to suggest a change.
      - All conversions to integer types are permitted if the destination
        type has enough bits to hold the entire value. Conversions to bool
        and void* are permitted. Conversions from 'void noreturn (*)(...)'
-       to 'void (*)(...)' are permitted.
+       to 'void (*)(...)' are permitted. Conversions from unsigned long or
+       (void \*) to a function pointer are permitted if the source type ha=
s
+       enough bits to restore function pointer without truncation or corru=
ption.
+       Example::
+
+           unsigned long func_addr =3D (unsigned long)&some_function;
+           void (*restored_func)(void) =3D (void (*)(void))func_addr;
=20
    * - `Rule 11.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-S=
uite/-/blob/master/R_11_02.c>`_
      - Required
diff --git a/xen/common/version.c b/xen/common/version.c
index 553b97ba9b..7091a6d440 100644
--- a/xen/common/version.c
+++ b/xen/common/version.c
@@ -217,6 +217,17 @@ void __init xen_build_init(void)
 #endif /* CONFIG_X86 */
 }
 #endif /* BUILD_ID */
+
+static void __init __maybe_unused build_assertions(void)
+{
+    /*
+     * To confirm conversion compatibility between unsigned long, (void *)
+     * and function pointers for all supported architectures.
+     */
+    BUILD_BUG_ON(sizeof(unsigned long) !=3D sizeof(void (*)(void)));
+    BUILD_BUG_ON(sizeof(void *) !=3D sizeof(void (*)(void)));
+}
+
 /*
  * Local variables:
  * mode: C
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Tue Aug 19 19:45:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 19:45:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087027.1445177 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoSGq-0006Aj-VQ; Tue, 19 Aug 2025 19:45:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087027.1445177; Tue, 19 Aug 2025 19: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 1uoSGq-0006Ac-S3; Tue, 19 Aug 2025 19:45:24 +0000
Received: by outflank-mailman (input) for mailman id 1087027;
 Tue, 19 Aug 2025 19:45:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=h/XH=27=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1uoSGp-0006AW-Qc
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 19:45:23 +0000
Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com
 [2a00:1450:4864:20::431])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0abf117f-7d35-11f0-a32a-13f23c93f187;
 Tue, 19 Aug 2025 21:45:21 +0200 (CEST)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-3b9d41bea3cso5984533f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 19 Aug 2025 12:45:21 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3c077c5767fsm4728251f8f.62.2025.08.19.12.45.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 19 Aug 2025 12: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>
X-Inumbo-ID: 0abf117f-7d35-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755632721; x=1756237521; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=z5DClGb7SROt07W/Ktgq3F9Lcjr5IAxjD2sOWP7WqH8=;
        b=uUQOTb3p2Z1/rH4B5N5aHuE4zkssrZ6K16HU0GtSaOp4vz139I06ptxK+7viIaYlc8
         E16wibclWEGPNaRX9s/gKtWeUY4ujMF8ezp9vRkMnPh622DT65oA4Ns6udXBd+AFusGf
         Eq8XAmqZISv+4vBc7Out4iTupc7B+qlul7rrg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755632721; x=1756237521;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=z5DClGb7SROt07W/Ktgq3F9Lcjr5IAxjD2sOWP7WqH8=;
        b=hpBWwCqhmCNGCFurlnYtRkUEbXNFJehANyQGA+I87Dev+HyLZSD/nwH2IQBzzj9rCV
         NAe2mO9vHnNjbBJul5+QJQKdWsF7W7cKt4iMDOFJJ7XHk3nhTK+wB9Ad9oxeB0uVeyzz
         xtgKJNpSc09SV62htAdWuQ0WvII3T5shydWMF8xahOvWP86sve044H0pJ0jNi24kagHV
         4IIrOEanWG7xYBggdYHMvtjx2Fkkd5Nh6Dfhjj0QyWRLT5hcKh5DfwwRdKmGc7TVRohX
         a5gsQDKNISZ7qdR7m1MwR52vMb70/ruwffJ4aWBh5vmBG5gTTGEeSJNP2M9JT5NK95j/
         MdKQ==
X-Forwarded-Encrypted: i=1; AJvYcCW2tBWxVgvDQkShefsVLgiyODPPSdtlvPimOhfUN8tAjtaSRdQOmuES6X652W1r9chJDMDa35lniww=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwQoZ2JfLdd1P0s96gloE0uUfRBDMBOg1gs77Cnyt/0mFJwyKEM
	wVGCPKwRb17Gm5wPK0BL1InLewRA9EGx8hLbhmEHWfIHP5ydeXpvENvX33mMX9FhoF4=
X-Gm-Gg: ASbGncsS2zUz8/ElHirSI31TUDbsJgFEq3GwGq3elp+c8z7tvVoyGBFBogKRuCnYdyi
	7Yo5lm05JrJAkOv1pX8goVWnrjvn1dK78WUgUoNtu5ikbTnICCqUMYBe7S41yMzO1990rZCEAGm
	5jxLtCca6cZJh++/kAQyaYd9770ra3QQ6G+3nX9yAZ/K3j15lIMXbeos1zbgh4CvY+Vu+CFAB87
	w/w9Q3o2WCT0+ph43GT4zoC3CiKeDQcJPNKr9BTaUyu3nUdBIAoeKY8ViE6Ii+14Xg5GV3VF/zI
	m6rmwaapYgPSUIy41oyCatU+0qOZWJ72r/zhCZLlbIt0IA5PX5aN4iPQrDpnyObV73CSnliKq0S
	pHTNWgWDVoQbQw96v6CQHgZCei8p3WTTi3nngnvu1h+b5ojv/4/7aMqbqosdXyJrU20ea
X-Google-Smtp-Source: AGHT+IHn6ItZ/55KdJjFIlqpp1Vqr+n+RQcvcMCo6Y+dMB7k9WYscwcNwqwPwtL4K5RBGJTqfuyeOQ==
X-Received: by 2002:a05:6000:420a:b0:3b9:48f:4967 with SMTP id ffacd0b85a97d-3c32ecce49bmr164415f8f.56.1755632720979;
        Tue, 19 Aug 2025 12:45:20 -0700 (PDT)
Message-ID: <7f737ca3-5aba-4ae9-820a-448824174f2e@citrix.com>
Date: Tue, 19 Aug 2025 20:45:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 11/16] x86/msr: Change rdmsr() to have normal API
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
 <20250815204117.3312742-12-andrew.cooper3@citrix.com>
 <493d4580-62b7-4ff7-9159-4079b4b98f61@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: <493d4580-62b7-4ff7-9159-4079b4b98f61@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19/08/2025 1:04 pm, Jan Beulich wrote:
> On 15.08.2025 22:41, Andrew Cooper wrote:
>> We want a consistent MSR API, and these want to be named rdmsr() and wrmsr(),
>> but not with their current APIs.  The current rdmsr() flavours writing to
>> their parameters by name makes code that reads like invalid C, and is
>> unergonomic to use in lots of cases.
>>
>> Change the API, and update the callers all in one go.  Where appropriate,
>> update the write side to wrmsrns() as per the recommendation.
>>
>> No functional change.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> ---
>> CC: Jan Beulich <JBeulich@suse.com>
>> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
>>
>> I do have a more creative solution if this patch is considered to be too
>> large.  https://gitlab.com/xen-project/hardware/xen-staging/-/commit/e13cf25d06d08481e2c138daa1fd902cf36d757b
> I'm not concerned by the size of this patch.
>
>> --- a/xen/arch/x86/cpu/intel.c
>> +++ b/xen/arch/x86/cpu/intel.c
>> @@ -23,17 +23,17 @@ static uint32_t __ro_after_init mcu_opt_ctrl_val;
>>  
>>  void update_mcu_opt_ctrl(void)
>>  {
>> -    uint32_t mask = mcu_opt_ctrl_mask, lo, hi;
>> +    uint32_t mask = mcu_opt_ctrl_mask, val;
>>  
>>      if ( !mask )
>>          return;
>>  
>> -    rdmsr(MSR_MCU_OPT_CTRL, lo, hi);
>> +    val = rdmsr(MSR_MCU_OPT_CTRL);
>>  
>> -    lo &= ~mask;
>> -    lo |= mcu_opt_ctrl_val;
>> +    val &= ~mask;
>> +    val |= mcu_opt_ctrl_val;
>>  
>> -    wrmsr(MSR_MCU_OPT_CTRL, lo, hi);
>> +    wrmsrns(MSR_MCU_OPT_CTRL, val);
>>  }
> I don't consider it a good idea to suddenly clear the upper half of this
> MSR, and ...
>
>> @@ -51,17 +51,17 @@ static uint32_t __ro_after_init pb_opt_ctrl_val;
>>  
>>  void update_pb_opt_ctrl(void)
>>  {
>> -    uint32_t mask = pb_opt_ctrl_mask, lo, hi;
>> +    uint32_t mask = pb_opt_ctrl_mask, val;
>>  
>>      if ( !mask )
>>          return;
>>  
>> -    rdmsr(MSR_PB_OPT_CTRL, lo, hi);
>> +    val = rdmsr(MSR_PB_OPT_CTRL);
>>  
>> -    lo &= ~mask;
>> -    lo |= pb_opt_ctrl_val;
>> +    val &= ~mask;
>> +    val |= pb_opt_ctrl_val;
>>  
>> -    wrmsr(MSR_PB_OPT_CTRL, lo, hi);
>> +    wrmsrns(MSR_PB_OPT_CTRL, val);
>>  }
> ... this one.

Yeah, both the local variables need turning into uint64_t here.

>
>> @@ -456,15 +456,15 @@ static void __init probe_mwait_errata(void)
>>   */
>>  static void Intel_errata_workarounds(struct cpuinfo_x86 *c)
>>  {
>> -	unsigned long lo, hi;
>> +	uint64_t val;
>>  
>>  	if ((c->x86 == 15) && (c->x86_model == 1) && (c->x86_mask == 1)) {
>> -		rdmsr (MSR_IA32_MISC_ENABLE, lo, hi);
>> -		if ((lo & (1<<9)) == 0) {
>> +		val = rdmsr(MSR_IA32_MISC_ENABLE);
>> +		if ((val & (1 << 9)) == 0) {
>>  			printk (KERN_INFO "CPU: C0 stepping P4 Xeon detected.\n");
>>  			printk (KERN_INFO "CPU: Disabling hardware prefetching (Errata 037)\n");
>> -			lo |= (1<<9);	/* Disable hw prefetching */
>> -			wrmsr (MSR_IA32_MISC_ENABLE, lo, hi);
>> +			val |= (1 << 9); /* Disable hw prefetching */
>> +			wrmsrns(MSR_IA32_MISC_ENABLE, val);
>>  		}
>>  	}
> Move val into the more narrow scope at the same time?

No, not based on the history of this function.

>
>> @@ -699,7 +715,7 @@ void cf_check vmx_cpu_dead(unsigned int cpu)
>>  
>>  static int _vmx_cpu_up(bool bsp)
>>  {
>> -    u32 eax, edx;
>> +    u32 eax;
> Like you do elsewhere, switch to uint32_t at the same time?

Will do.

>
>> --- a/xen/arch/x86/tsx.c
>> +++ b/xen/arch/x86/tsx.c
>> @@ -42,6 +42,8 @@ void tsx_init(void)
>>  {
>>      static bool __read_mostly once;
>>  
>> +    uint64_t val;
>> +
>>      /*
> No real need for yet another newline, I would say.

Where?Â  Before?Â  that's separation of static and not.Â  After? that's
separation of variables and code.Â  All as we do elsewhere.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Aug 19 19:58:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 19:58:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087045.1445219 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoSTc-0001CB-EX; Tue, 19 Aug 2025 19:58:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087045.1445219; Tue, 19 Aug 2025 19:58:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoSTc-0001C4-Ak; Tue, 19 Aug 2025 19:58:36 +0000
Received: by outflank-mailman (input) for mailman id 1087045;
 Tue, 19 Aug 2025 19:58:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=fNib=27=kernel.org=kbusch@srs-se1.protection.inumbo.net>)
 id 1uoSTb-0001Bx-45
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 19:58:35 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dee519ff-7d36-11f0-b898-0df219b8e170;
 Tue, 19 Aug 2025 21:58:28 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 1DCD345455;
 Tue, 19 Aug 2025 19:58:26 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 63D9EC4CEF1;
 Tue, 19 Aug 2025 19:58:24 +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>
X-Inumbo-ID: dee519ff-7d36-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755633506;
	bh=nA9A0H3LrJ78fHP6AI7J40nKWuK6fskQEP9rQ9tJOXc=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=Z3cV0SxjdjsbyAxLQAHXL9YQoVkd3oE/w0tg8f+/28wYPFIcCuOtf+n31sKJ+LyN1
	 6N7biz9o/yCuPtFBnn8ELyTNlP5RA151eN7wKi8pNSNB92o83ezmb7znz1ImNM7cWr
	 xClDJ2+EAIi/fyYTQNzUsM/2eAKArOgzFRoBwUKtf83SqZF5p6itYTMDZFBizPzyOj
	 cmndtkVjtFJFxZFPGtELV1/fpgrqmBEwX35+EsRatiowr0CXr7OcQuw39qyPoRCSeg
	 uQXDSW9Z/GPeI4IjUnpByoqXUrISGom24QKuNeZMIoK+/Modr6dLR2faOTSocU7qPz
	 FiaHtir3WFZ4Q==
Date: Tue, 19 Aug 2025 13:58:22 -0600
From: Keith Busch <kbusch@kernel.org>
To: Leon Romanovsky <leon@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-mm@kvack.org, linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org, linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 16/16] nvme-pci: unmap MMIO pages with appropriate
 interface
Message-ID: <aKTXXv7kE0pGGn_8@kbusch-mbp>
References: <cover.1755624249.git.leon@kernel.org>
 <545fffb8c364f36102919a5a1d57137731409f3c.1755624249.git.leon@kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <545fffb8c364f36102919a5a1d57137731409f3c.1755624249.git.leon@kernel.org>

On Tue, Aug 19, 2025 at 08:37:00PM +0300, Leon Romanovsky wrote:
> From: Leon Romanovsky <leonro@nvidia.com>
> 
> Block layer maps MMIO memory through dma_map_phys() interface
> with help of DMA_ATTR_MMIO attribute. There is a need to unmap
> that memory with the appropriate unmap function, something which
> wasn't possible before adding new REQ attribute to block layer in
> previous patch.

Looks good.

Reviewed-by: Keith Busch <kbusch@kernel.org>


From xen-devel-bounces@lists.xenproject.org Tue Aug 19 21:43:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 21:43:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087079.1445260 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoU7N-00081r-9B; Tue, 19 Aug 2025 21:43:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087079.1445260; Tue, 19 Aug 2025 21: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 1uoU7N-00081k-6O; Tue, 19 Aug 2025 21:43:45 +0000
Received: by outflank-mailman (input) for mailman id 1087079;
 Tue, 19 Aug 2025 21:43:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oc5E=27=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1uoU7L-00081e-9V
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 21:43:43 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 91c21f64-7d45-11f0-b898-0df219b8e170;
 Tue, 19 Aug 2025 23:43:40 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 0BD1460209;
 Tue, 19 Aug 2025 21:43:39 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id AD231C4CEF1;
 Tue, 19 Aug 2025 21:43: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>
X-Inumbo-ID: 91c21f64-7d45-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755639818;
	bh=oOfay5dwD9ZFMFUsLZRmSG17fsGVmFo2sFzv0Tchehc=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=mmOsgT9yDzJ9sB6cAQqOpJcNgzk0PTGHArRfje7KfcJwX7PSH93gbExLG7Wvap3Zi
	 uMY0B6M7gDFXUGXrmxD2WhXb86RtDfQZpzcHr/fvUyAVNTQlxegAicyYjZcYDyh3UW
	 8C+lTYb1/mtYd74O9FDescL0Aedkygj6dsy0m7SB/aoVrbaoLed7Tha/N1uIkBlZQK
	 svkRn+jABbsIcuY4yOGIPhTOl1xBeL9NPUSnWVga7/nkLbnN70VLsTcf1I2sRcO5cS
	 FI2E9sJVW8cWZMGKjYogK9W/UZzmV0zb7/HWCvsTDp39Zr7pWywGacx7OQXIHKey3V
	 b2B94O5RsQ8dQ==
Date: Tue, 19 Aug 2025 14:43: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: Stefano Stabellini <sstabellini@kernel.org>, 
    Nicola Vetrini <nicola.vetrini@bugseng.com>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Subject: Re: [RFC] Next steps for MISRA C Rule 17.7 in XEN
In-Reply-To: <9a267d90-496c-496a-ab61-6b775204b594@suse.com>
Message-ID: <alpine.DEB.2.22.394.2508191443200.923618@ubuntu-linux-20-04-desktop>
References: <6d622813-1617-4af3-876e-52a551518f68@epam.com> <9d71cc11-884d-4924-9de9-e3396801158a@suse.com> <c3bb91c6-ca74-4fab-8ca8-cd5ffed3f954@epam.com> <alpine.DEB.2.22.394.2508181642140.923618@ubuntu-linux-20-04-desktop>
 <9a267d90-496c-496a-ab61-6b775204b594@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 18 Aug 2025, Jan Beulich wrote:
> On 19.08.2025 01:45, Stefano Stabellini wrote:
> > On Mon, 18 Aug 2025, Dmytro Prokopchuk1 wrote:
> >> On 8/4/25 11:02, Jan Beulich wrote:
> >>> On 02.08.2025 19:48, Dmytro Prokopchuk1 wrote:
> >>>> There are a lot of MISRA C R17.7 violations in the XEN.
> >>>> This rule states: "The value returned by a function having non-void
> >>>> return type shall be used".
> >>>>
> >>>> Actually, need to decide how to deal with these violations.
> >>>> Quick analyze shown that there are different cases in XEN code base.
> >>>
> >>> Long ago, when we discussed the rules in a mainly abstract way, there already
> >>> was quite a bit of discussion around this. Stefano - I wonder if you had
> >>> taken (and have kept) notes back at the time?
> >>>
> >>> Jan
> >>
> >> Hi Stefano.
> >>
> >> This is a kind reminder.
> > 
> > Yes, I am appending below the unmodified notes which I took when we
> > discussed R17.7. It looks like the decision was to accept the rule and
> > use a mix of deviations and void casts to reach compliance.
> > 
> > 
> > MISRA 17.7 Use expressions' results
> > -----------------------------------
> > 
> > ACCEPT 17.7
> > 
> > Returning void when appropriate
> > 
> > When function results are used on some of the times. Use a comment to
> > explain why the return value is ignored and a void cast so that the
> > warning doesn't trigger (there is also a gcc warning).
> > 
> > Some functions are returning a value just for convenience (e.g. memcpy).
> > They need to be deviated.
> > 
> > Add must_check to all functions by default somehow? So that developers
> > will get automatic feedback when they do develpment without having to
> > wait for ECLAIR
> 
> Isn't doing this "by default" equivalent to enabling the compiler warning?
> If doing this by default (one way or another), it'll need to be clear how
> to mark functions as "exceptions" (like memcpy() that you mention).

Indeed, that is the problem.

I think the idea was to employ a different strategy depending on
whether the function returns an error or simply provides optional
information.

For functions that return errors, we would use explicit (void) casts.
For functions that return optional information, we would apply global
deviations.

Of course, these are only general guidelines. If a function that returns
errors has thousands of violations, making it impractical to address
each one individually, we would likely opt for a global deviation in
that case as well.



From xen-devel-bounces@lists.xenproject.org Tue Aug 19 23:58:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 19 Aug 2025 23:58:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087109.1445271 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoWDx-0000io-KT; Tue, 19 Aug 2025 23:58:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087109.1445271; Tue, 19 Aug 2025 23:58:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoWDx-0000ih-Hs; Tue, 19 Aug 2025 23:58:41 +0000
Received: by outflank-mailman (input) for mailman id 1087109;
 Tue, 19 Aug 2025 23:58:40 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=x5vT=27=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1uoWDv-0000ib-8m
 for xen-devel@lists.xenproject.org; Tue, 19 Aug 2025 23:58:40 +0000
Received: from mail-4316.protonmail.ch (mail-4316.protonmail.ch [185.70.43.16])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6bb88661-7d58-11f0-a32a-13f23c93f187;
 Wed, 20 Aug 2025 01:58:37 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6bb88661-7d58-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1755647915; x=1755907115;
	bh=bZsMPkcP7LjUClKF5IPD7dJJ3czft31iCTSRqwIQk90=;
	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=l2TGHs17hV8+nhPihxnyEhYAysuV1iqT9WpEG696v0UOn/JD5LxZjNZYOm+XgVZKc
	 q47p5MUKGjuHvL9/E/VproQ5iZnuLslS2DtIMUZ9WUQeGUO7ZDiB/212wEWhK73zod
	 7RoKBVcGmbZduJ7l8n3Mwy2DchEmEzgyg1Nqr8xArpkLeXbdmDSUbpZlPRKrE4773f
	 zZPy5akrArOujpd7nhRtpzrWMfHw5iNZ7CQ7puIpOzsn/wXTwiL+xmD64SRtC/hXSL
	 5Xb6HklvwgDDetx2Ju6odATPDMiSIjOlm0eFIIqRVOr5H5IxmnQXx0pVjg/kPL3vop
	 tQYLsw5Ckzd4Q==
Date: Tue, 19 Aug 2025 23:58:31 +0000
To: Jan Beulich <jbeulich@suse.com>
From: dmkhn@proton.me
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, Julien Grall <jgrall@amazon.com>, Alejandro Vallejo <alejandro.garciavallejo@amd.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v16 1/4] xen/domain: unify domain ID allocation
Message-ID: <aKUPo+hRdfGlg+S8@kraken>
In-Reply-To: <f85ae718-0243-4426-a555-327afffe7148@suse.com>
References: <20250812223024.2364749-1-dmukhin@ford.com> <20250812223024.2364749-2-dmukhin@ford.com> <f85ae718-0243-4426-a555-327afffe7148@suse.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 39544987c90e5a39a71aae442a481c81e501bb1b
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Thu, Aug 14, 2025 at 09:11:11AM +0200, Jan Beulich wrote:
> On 13.08.2025 00:30, dmkhn@proton.me wrote:
> > From: Denis Mukhin <dmukhin@ford.com>
> >
> > Currently, there are two different domain ID allocation implementations=
:
> >
> >   1) Sequential IDs allocation in dom0less Arm code based on max_init_d=
omid;
> >
> >   2) Sequential IDs allocation in XEN_DOMCTL_createdomain; does not use
> >      max_init_domid (both Arm and x86).
> >
> > The domain ID allocation covers dom0 or late hwdom, predefined domains,
> > post-boot domains, excluding Xen system domains (domid >=3D
> > DOMID_FIRST_RESERVED).
> >
> > It makes sense to have a common helper code for such task across archit=
ectures
> > (Arm and x86) and between dom0less / toolstack domU allocation.
> >
> > Note, fixing dependency on max_init_domid is out of scope of this patch=
.
> >
> > Wrap the domain ID allocation as an arch-independent function domid_all=
oc() in
> > new common/domid.c based on the bitmap.
> >
> > Allocation algorithm:
> > - If an explicit domain ID is provided, verify its availability and use=
 it if
> >   ID is not used;
> > - If DOMID_INVALID is provided, search the range [1..DOMID_FIRST_RESERV=
ED-1],
> >   starting from the last used ID.
> >   Implementation guarantees that two consecutive calls will never retur=
n the
> >   same ID. ID#0 is reserved for the first boot domain (currently, dom0)=
 and
> >   excluded from the allocation range.
> >
> > Remove is_free_domid() helper as it is not needed now.
> >
> > No functional change intended.
> >
> > Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> > Reviewed-by: Julien Grall <jgrall@amazon.com>
> > Reviewed-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
> > ---
> > Changes since v15:
> > - fixup for check after the first pass in the bitarray in domid_alloc()
> > - trivial renaming for the local variable in domid_alloc()
> > - kept Julien's R-b, added Alejandro's R-b
>=20
> Just to mention: My take is that this kind of a fix ought to invalidate a=
ll
> earlier R-b. It's not just a cosmetic change, after all.

Sorry for the hiccup here, did not mean to overrule the review process.

My bold assumption was that in case of small fixups like this it is
satisfactory to carry over previous acks.

I asked (matrix) both Julien and Alejandro to re-review and confirm.

>=20
> Jan



From xen-devel-bounces@lists.xenproject.org Wed Aug 20 03:12:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Aug 2025 03:12:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087142.1445281 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoZFe-0006zI-LE; Wed, 20 Aug 2025 03:12:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087142.1445281; Wed, 20 Aug 2025 03:12: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 1uoZFe-0006zA-HM; Wed, 20 Aug 2025 03:12:38 +0000
Received: by outflank-mailman (input) for mailman id 1087142;
 Wed, 20 Aug 2025 03:12:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=7POT=3A=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1uoZFd-0006z4-2H
 for xen-devel@lists.xenproject.org; Wed, 20 Aug 2025 03:12:37 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on2060a.outbound.protection.outlook.com
 [2a01:111:f403:2406::60a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 83da0bb2-7d73-11f0-b898-0df219b8e170;
 Wed, 20 Aug 2025 05:12:34 +0200 (CEST)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 CH3PR12MB8880.namprd12.prod.outlook.com (2603:10b6:610:17b::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.25; Wed, 20 Aug
 2025 03:12:31 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d%7]) with mapi id 15.20.9031.024; Wed, 20 Aug 2025
 03:12: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>
X-Inumbo-ID: 83da0bb2-7d73-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=h4cNxhOZdd4xOGf1Ldy3DeVCZwjHv4iUzn0BYrj8G/CqQ0v6BYTj/hgZWIqRL4KiAelsdW4NMmY/5X1SbwOzC+Cg2m+QjUeIcTXgzV/lrXF/wb10N7CBY8/NVfyERXLTxTdD1gpcm1QWh0wIn8ZM3OhxKdRhetktaZ2pflwAF/P/z2MQzgPpDxKDmqIzUC7h4lc2ViPndtNx6UIHlAYWvAHG7rqLn7I6eDwvhPrxcjXLbMJ9VTgkPd9UGG+Clcs9cX5dwpCYi/i6I0z0whUwySU8qFNdW31Viy4dqi+jAUBvaOROHl+S5OCUUCKGx2zt9b1N718bJZeCpXB5UfhBQg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0iqLUk5MSQDxs/47TA4ZgPyEY2wMaqtduBIj7qxlecI=;
 b=Pp8xTQJY9MCGeigHyfcslsAgnO1qaEWjHwShS/85ERluYfUO8Zxf+0XEJ4uH6aaUw/hhUkykw++E6aJx08Z12xHhgzOjY0AVwJ6MOco29iRt8mJBOI9ahXEzn8DL6fW0JZlo94Bz6YCd+f9jiYdp1pLEpDm4J2ZbaIj+3KrO1X8vqO+1dLVVYrELvC71vIPfuEaxkMlJilE56CAYHap2+h7Z3ZHxqJO+2oWj6Rlx0Cb2QEw1Lx2pPTvFllKML3E1LhR7A7m1VwHN7UUbqohBZSRGVnE5Mp1RulP+wVxfIYmMGuc7KyJpnKXebdagkIjINbYbU+yuBbtxQvrfSxR0ww==
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=0iqLUk5MSQDxs/47TA4ZgPyEY2wMaqtduBIj7qxlecI=;
 b=4WI1/NAWa9r7z0y2+cxhUQZLL3YvYHHyuQSE03w/9pI2A2nL3c/xp3UiYEAmuYRk70W9zTpeSFrQzmk3U6kqBZIZdZ8ulsbNaH4qn0gB+AxR+qmvr1orLrxvy9x1XTVcLe1H5h8y+Rc+PNMGkIMTKPiIj8ee7V/q0bu0Vahqvvo=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>, Oleksii Kurochko
	<oleksii.kurochko@gmail.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Orzel,
 Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH] xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE
Thread-Topic: [PATCH] xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE
Thread-Index: AQHcDc9CvptjGFID1k2o17sSnGSDybRoGVoAgALK9QA=
Date: Wed, 20 Aug 2025 03:12:30 +0000
Message-ID:
 <DM4PR12MB84519FE74D66604440827EA9E133A@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20250815102728.1340505-1-Penny.Zheng@amd.com>
 <fb6f559a-b2aa-4b25-a6d3-401ecc4b4bd5@suse.com>
In-Reply-To: <fb6f559a-b2aa-4b25-a6d3-401ecc4b4bd5@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-08-20T03:12:24.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|CH3PR12MB8880:EE_
x-ms-office365-filtering-correlation-id: 0e947f95-1d58-4fe9-d237-08dddf97666e
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|376014|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?ZFVDZzFhbFhlN0k3ZWVvTEFnUk5WeHJRLzhTZGpMVHJwdjdHbGZTYmNzNlRa?=
 =?utf-8?B?OTlFNEk0WXRma3gveEFwNmN2U1pLWWtIeHJmbDdhUkt2VW9WcUtERmpGNkti?=
 =?utf-8?B?VGJQRnBLMjg4ckZnTFFIalg0M2t2RXJFR2RwTDJ1WW9nTWp1bHdreHNxcmlU?=
 =?utf-8?B?b3E5c3czZ2xHTWYxZ0gxNk1Md3dKeEU1ZEhwT3ZPLzhWK000WU1tY1RXeG9a?=
 =?utf-8?B?Wkk0dWt6QlpuQ2FETVAyNzUvb2Uva2NIRjVZczd2aTNIa1V1WEY0RTl5ZVVI?=
 =?utf-8?B?RFhKODdmRG81Mm5jYm42VjNnOWVNaTJyNTNoLzVCNk9DRGFvUEY5djA3U05J?=
 =?utf-8?B?a3ZhZEh6cVptZnJEUHdEYU5oTEJDdDc5TmtDNzFKaXVUZjhQUjdzYXN6b21E?=
 =?utf-8?B?Wnd0K1F3L202VFJYWHFiMXBVeU9MOGt4RGVwOTEzeU5MUGpMeDEwNzlsL3hH?=
 =?utf-8?B?OS95TUpCYm42a2UzRWYrWXVvUkFPZHV4QXVYSnFkSnVBZ3pkQ3NlSGtNVTc3?=
 =?utf-8?B?bWZsZWJOZWpheEdva2ExSnJGc09IbjNjRm5oeWFqbnhYM0R2WGZaa21XYW5h?=
 =?utf-8?B?ZVc2WW9UcFRPRXV5a1A4cmR0UWpKbWdKR1Y4bjQ0dTlZWmZDT2Fzb0xJbE40?=
 =?utf-8?B?WGRqRmpzN2ZJRk1kcUFrQmdGUlFNemhHYXhuaWdDUWFlMlZQVG1UV0Y0M1hY?=
 =?utf-8?B?SU9MellkeHAvbzBzNzVZU2lzQUlZWmdVMDQ1aWNsbXJWU1ZlSllscU4xRFBX?=
 =?utf-8?B?Rlo4UEI4RC96eEp4UVJwdW11blMzdVA1ejN2Qmd0WjRuMFliNkF6ZTljdE5p?=
 =?utf-8?B?MXAxeWJrcHlpNi9teEFSTjNxQ1N5bjNBM2NXbFBvSGRsQWp1OVZCcXpyb00z?=
 =?utf-8?B?WnJ4NDUvb0xtUE12S3ZSUnZlM3lHZElkeWlGZ21SSkszSk02eDE2OExZVmQ5?=
 =?utf-8?B?VzlkZndCdTBwcDhEVUVaWjJJVk9RM1NDVzBRbFN1Tkh0eWpaWnpXa2N3T1c4?=
 =?utf-8?B?STFmZzlmMkkyZUVMV01FYXRmNFhlM0xMREJJQjVXUmtRdHdheXFyQjhHeTY3?=
 =?utf-8?B?dnB0SjVNa1Z3N000QWIyNVhBRFVua1ZsZksxQmRIU2ZtT0l2ZU5CVXphN0g4?=
 =?utf-8?B?STdpVStteUVLQzhRdGpFOGh1SG1tbzVjQTVXKzN4T3NGeTBDOGJmQUFJbk5N?=
 =?utf-8?B?NEZoN3pzQTdYVnhpZGhqVEJNT3VKLzRTYWdseExKUlVpaTFQdHlreTRBTVVR?=
 =?utf-8?B?Mjcvc3M5ZmZrcTZkemNtVkxnbDhTaTloaHhSZVFGSEx4dXBYc082VEc3UWxL?=
 =?utf-8?B?bnVRVEtVbndycFN3Z0dLNHJIK3ZhUkR3K3hSS3VQakhTeVNWaDNvMVNTdjJL?=
 =?utf-8?B?L0VuK28vUUVMOFpadlBsWE9QUDJWWm9qM0JLaUdyRy9RbXhiZFM0UDlPaFRN?=
 =?utf-8?B?SXA5K3hSZ1RMVzlzM080SXMxdy9tOGJnVWh2UUxNYWNWWml0YllLOVp5R2pw?=
 =?utf-8?B?bUZVODZDRmxsblpvYit0QnJsK3FKSStNZ0lvUjVMQ1dvK2tuc29RYkp0eHpJ?=
 =?utf-8?B?Z2JTMUN2RVduVjhuT3g0blkzUWZCQ20yTCtSQ2tYZ0UzaXNrS0UzcXU3aVI4?=
 =?utf-8?B?K2c1QjBXOEtVSnlXTVdtTDgxaFgvQlQ2TER6Z05FeDFXNFBWNXNxYzM5ZzFJ?=
 =?utf-8?B?VFdoaC9NeHNlMDdVK0pyV2ZTR0psYmtWUnVXVTN2UW5ERkMvcDZDbzRaQVRG?=
 =?utf-8?B?MDlzN2NOeFdvMjd2eit4U1Zyamxld09zOThHNi9YTFJKZHZiandFWkprckxq?=
 =?utf-8?B?WkJnZlR3WWN0SzVldGhNY1VYNDROWjJnNSs2R2krWlRvOW5QRWprRnNaNHZH?=
 =?utf-8?B?NHh3cmtLU0xmZDFlU3lOdEpIWnpyMDdUSng3V2JwQThDYzgzK0JUNjFpWS9T?=
 =?utf-8?B?cFc5eDBXTUR0Zmc1ZmtvUHVMZzZDKzRmaGYzUW1uVUhUcko3TCtYak1LUUU5?=
 =?utf-8?Q?N75hANgBn9G+dgGfpHtyLMaDNVHLLM=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?RFZrVVdtSWFsVmJaY2R4YU1Rbk42ZWZFaUpaN0hjbmVVUlFtbHhEOW9xS2JT?=
 =?utf-8?B?UjVwUVptc1JjejA3Wm9GdDIyVTNnamRJeklRMTZlM3FBUVAwb3NmWkd6N3Za?=
 =?utf-8?B?MCtqYithNFNPNE5IVkR4VHRkbVplNU0zTG1zY0pFTXplRjNsL2hYZk01bXZr?=
 =?utf-8?B?dVFMb0dOdlNaNFN5WnhhakZ0VHJYU0k2dWJ4M0w2bm1LSDZydXpuaXRoREV3?=
 =?utf-8?B?YktJSkd4YmRJNytNU1RtU3lyamdpczh1WGR6cEZmcDI0R0F1V3o4bElabFZz?=
 =?utf-8?B?ZGtQY1ZnZzZIbUJhQWJUOTJwMi9xTTRJdlFtZVV1TkFOMEJYZmptNG5Ybk5X?=
 =?utf-8?B?Z1NUYUl5dXpNeVBzM20zSWZ5b29XUHBWQytFOG8wemVJVUFIMDVweFdIcmFv?=
 =?utf-8?B?bkRNMTFsNEZISUpXMzVhWVM4bnNNa0RHdnJ0eHRtZ05NUW1RVnBSU1I5cE5D?=
 =?utf-8?B?M2lPa1FHbUd6YVplZlB5NytiaU8yRi9ETFZ1YUVLMXpOaDhadTRRYlI2Ly9r?=
 =?utf-8?B?UmhTNzdVSDZSQ2hibXQ2YS9scHJIUEVaR2hoa2JLZ1RFWUFRRndOTnJ6bzRD?=
 =?utf-8?B?TjF5N05vaEpTckQ4cEFnZTRhMUNSU3ErZ052ZnlPMXJzK2RYR3lSb2NEZGls?=
 =?utf-8?B?NFhMRXYvNDJoTDJma3RIdE50VlBVR0ZIaFNBanF4NFN4ZnFaVG9PK3hnYm42?=
 =?utf-8?B?OGtSV1NoaEVjbG9FWVFRQTRnVjhtMEw3NGlxSnJ6clpIZ1BnWENNYWRYZlo0?=
 =?utf-8?B?aW1LbUsyTWY5SmMyd2Ntd2EyMnQvbHRYNkg0d3FMRVdwdHU5TmJrd2lHZitK?=
 =?utf-8?B?MEFaSmZiSkNiMnhvd3NWVWhpalFnUjNCSlBEcHl4eERXUEpuWm5yRlZPTm0r?=
 =?utf-8?B?VWFVdDFqSWxOMHYvWHNoQms2NG9CKzdoSVQ0eEk3UEFESFJDL2ZGMHFpSUpC?=
 =?utf-8?B?NmlVNk8rTm0xYjRseitNOVZXYU9EM3ZnUFk4Sy8yOE4zSjZXRE5ibzQ1TW4w?=
 =?utf-8?B?dUdkbUJuSjdWYUJFMmM0UFIwNFB2WGxaSWxXQkJsY01CZnZPQkRYY2x5ZC91?=
 =?utf-8?B?eklmaWtGcll1Q1AreER1dUxUa01mMENFWVc1L1lTZzVFV1BhU3BjUWgrNGJK?=
 =?utf-8?B?UGdjMldxRThDQ3VmS2F3biszOVZ3Ti9PbkcxSkdNYXF5Zm1MeGlySlhPL1U0?=
 =?utf-8?B?MmIybTIwVUlmaXdVMmNrRkE1WWEwOWFJYlA5bk9IQWxnMlhSaHRNY0xBRVhK?=
 =?utf-8?B?SlRtUVlpblJOZFBWN1ZhTlpSVDJmOUJSUHpTNGp0My9ZS0t0UHpldnNMVjll?=
 =?utf-8?B?UTNCRW8wZGJKS05hZEhtYkVKaWFvWWdzLzB5aTVtT2FtVDh0dzUvOURnRUVM?=
 =?utf-8?B?L2JmekRIOUJaVk1uRm9pY0dTcUE5NU42eUNscUkyWmZDWDhhWUxrUjEzM3p6?=
 =?utf-8?B?QTVhRU5VVlRkaXVJWkdGR2xiSm8weDFGMk1XYm1admhkRUJ4RkhrYXVLek9Q?=
 =?utf-8?B?Z2h5VTVUYXNQS2F3dldwZ0tBMlRSblhaTk83ZXhZTWVLenU2L2hyR3JwYlBv?=
 =?utf-8?B?NWZvZ3hpdlB2d3BleUpwY0ZZaFk4V2h4S3hWZjA0RWtrSkw1VEpCbElUVDlB?=
 =?utf-8?B?SUltRlZ5QzJTbUhkZHQzRkd6cTFvRDdiODlFRUVFOHNpUlVpTnRSUEFkeXRj?=
 =?utf-8?B?QW9rend3VDNNU1lWcEl2U25XQ3Z1eWE2QWg1SStVd2N3VUx6QlhGNDZQajRB?=
 =?utf-8?B?L1dLQzJGSitVeGtxUnVFN2xlc3k0QXpIMnRlUmliOVBTc0lVMmRvZkw4c25z?=
 =?utf-8?B?N0Z6VDRzQ0sxbXZzRnNDODJIOG1RZnBHWG5ONUZJUEZjOWNWWHc3Zyt3ZjJh?=
 =?utf-8?B?bDE0THZnODlmWkROOVdHQ28wL3RVSllGc2ZjNkJOaTU5aUlUU0U0M1BnNFVh?=
 =?utf-8?B?M0NlKzdHU0FqelVoeUhvbmdLSHR5U1JwQWphUU1YSGxjazFMQ2pWaFF4RUIr?=
 =?utf-8?B?UWxReERNc3pTeUY5YUhWSmdPSjc3OUlHdUhGYkFQbkVZSzVNM2RGcHFDUW9H?=
 =?utf-8?B?WFdISUFEdXJzRThDdlI5Q3huTU0zWVlaL1NHTHZjYjcycFlWU0ZCL1czbmFR?=
 =?utf-8?Q?1+Mc=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0e947f95-1d58-4fe9-d237-08dddf97666e
X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Aug 2025 03:12:30.7459
 (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: 2yxZUXx8HtJihsiMW0b9oLPSUS5Gz8nqrZVQ1ddVDb0/ywjLWX2jz8oDMCOkrkN/q86dQkcRtKQh4Us9HwnkWA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8880

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IE1vbmRheSwgQXVndXN0IDE4LCAyMDI1
IDQ6MzEgUE0NCj4gVG86IFBlbm55LCBaaGVuZyA8cGVubnkuemhlbmdAYW1kLmNvbT47IE9sZWtz
aWkgS3Vyb2Noa28NCj4gPG9sZWtzaWkua3Vyb2Noa29AZ21haWwuY29tPg0KPiBDYzogSHVhbmcs
IFJheSA8UmF5Lkh1YW5nQGFtZC5jb20+OyBBbmRyZXcgQ29vcGVyDQo+IDxhbmRyZXcuY29vcGVy
M0BjaXRyaXguY29tPjsgUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+Ow0K
PiBBbnRob255IFBFUkFSRCA8YW50aG9ueS5wZXJhcmRAdmF0ZXMudGVjaD47IE9yemVsLCBNaWNo
YWwNCj4gPE1pY2hhbC5PcnplbEBhbWQuY29tPjsgSnVsaWVuIEdyYWxsIDxqdWxpZW5AeGVuLm9y
Zz47IFN0ZWZhbm8gU3RhYmVsbGluaQ0KPiA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz47IHhlbi1k
ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBTdWJqZWN0OiBSZTogW1BBVENIXSB4ZW4veDg2
OiBtb3ZlIGRvbWN0bC5vIG91dCBvZiBQVl9TSElNX0VYQ0xVU0lWRQ0KPg0KPiBPbiAxNS4wOC4y
MDI1IDEyOjI3LCBQZW5ueSBaaGVuZyB3cm90ZToNCj4gPiBJbiBvcmRlciB0byBmaXggQ0kgZXJy
b3Igb2YgYSByYW5kY29uZmlnIHBpY2tpbmcgYm90aA0KPiA+IFBWX1NISU1fRVhDTFVTSVZFPXkg
YW5kIEhWTT15IHJlc3VsdHMgaW4gaHZtLmMgYmVpbmcgYnVpbHQsIGJ1dA0KPiA+IGRvbWN0bC5j
IG5vdCBiZWluZyBidWlsdCwgd2hpY2ggbGVhdmVzIGEgZmV3IGZ1bmN0aW9ucywgbGlrZQ0KPiA+
IGRvbWN0bF9sb2NrX2FjcXVpcmUvcmVsZWFzZSgpIHVuZGVmaW5lZCwgY2F1c2luZyBsaW5raW5n
IHRvIGZhaWwuDQo+ID4gVG8gZml4IHRoYXQsIHdlIGludGVuZCB0byBtb3ZlIGRvbWN0bC5vIG91
dCBvZiB0aGUgUFZfU0hJTV9FWENMVVNJVkUNCj4gPiBNYWtlZmlsZSAvaHlwZXJjYWxsLWRlZnMg
c2VjdGlvbiwgd2l0aCB0aGlzIGFkanVzdG1lbnQsIHdlIGFsc28gbmVlZA0KPiA+IHRvIHJlbGVh
c2UgcmVkdW5kYW50IHZudW1hX2Rlc3Ryb3koKSBzdHViIGRlZmluaXRpb24gZnJvbQ0KPiA+IFBW
X1NISU1fRVhDTFVTSVZFIGd1YXJkaWFuLCB0byBub3QgYnJlYWsgY29tcGlsYXRpb24gQWJvdmUg
Y2hhbmdlIHdpbGwNCj4gPiBsZWF2ZSBkZWFkIGNvZGUgaW4gdGhlIHNoaW0gYmluYXJ5IHRlbXBv
cmFyaWx5IGFuZCB3aWxsIGJlIGZpeGVkIHdpdGgNCj4gPiB0aGUgaW50cm9kdWN0aW9uIG9mIGRv
bWN0bC1vcCB3cmFwcGluZy4NCj4NCj4gV2VsbCwgInRlbXBvcmFyaWx5IiBpcyBub3cgZ2V0dGlu
ZyBpbnRlcmVzdGluZy4gV2hpbGUgdjEgb2YgIkludHJvZHVjZQ0KPiBDT05GSUdfRE9NQ1RMIiB3
YXMgc3VibWl0dGVkIGluIHRpbWUgdG8gc3RpbGwgYmUgZWxpZ2libGUgZm9yIHRha2luZyBpbnRv
IDQuMjEsDQo+IHRoYXQgLSBhcyBpbmRpY2F0ZWQgZWxzZXdoZXJlIC0gaXMgbW92aW5nIHVzIGZ1
cnRoZXIgaW4gYW4gdW53YW50ZWQgZGlyZWN0aW9uLiBIZW5jZQ0KPiBJJ20gbm90IHN1cmUgdGhp
cyBjYW4gZXZlbiBiZSBjb3VudGVkIGFzIGFuIGluLXRpbWUgc3VibWlzc2lvbi4gUGx1cyBpdCBs
b29rcyB0byBiZQ0KPiBwcmV0dHkgZXh0ZW5zaXZlIHJlLXdvcmsgaW4gc29tZSBhcmVhcy4NCj4g
SGVuY2UgSSdtIHNvbWV3aGF0IHdlYXJ5IGFzIHRvIDQuMjEgaGVyZS4gSU9XIHF1ZXN0aW9uLCBt
YWlubHkgdG8gT2xla3NpaSwgaXMNCj4gd2hldGhlciB0bw0KPiAxKSBzdHJpdmUgdG8gY29tcGxl
dGUgdGhhdCB3b3JrIGluIHRpbWUgKGFuZCBoZW5jZSB0YWtlIHRoZSBwYXRjaCBoZXJlKSwNCj4g
MikgdGFrZSB0aGUgcGF0Y2ggaGVyZSwgYWNjZXB0aW5nIHRoZSBzaXplIHJlZ3Jlc3Npb24gZm9y
IHRoZSBzaGltLCBvcg0KPiAzKSByZXZlcnQgd2hhdCBoYXMgY2F1c2VkIHRoZSByYW5kY29uZmln
IGlzc3VlcywgYW5kIHJldHJ5IHRoZSBlZmZvcnQgaW4NCj4gICAgNC4yMi4NCj4NCj4gPiBGaXhl
czogNTY4ZjgwNmNiYTRjICgieGVuL3g4NjogcmVtb3ZlICJkZXBlbmRzIG9uDQo+ID4gIVBWX1NI
SU1fRVhDTFVTSVZFIiIpDQo+ID4gUmVwb3J0ZWQtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBz
dXNlLmNvbT4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBQZW5ueSBaaGVuZyA8UGVubnkuWmhlbmdAYW1k
LmNvbT4NCj4NCj4gTXkgZWFybGllciBxdWVzdGlvbiAod2hlbiB0aGUgcGF0Y2ggc3RpbGwgd2Fz
IHBhcnQgb2YgYSBzZXJpZXMpIHNhZGx5IGhhcyByZW1haW5lZA0KPiB1bmFuc3dlcmVkOiBZb3Un
dmUgcnVuIHRoaXMgdGhyb3VnaCBhIGZ1bGwgcm91bmQgb2YgdGVzdGluZyB0aGlzIHRpbWU/DQoN
ClNvcnJ5LCBtaXNzZWQgdGhhdCwgeWVzLCBpdCBoYXMgYmVlbiB0ZXN0ZWQgd2l0aCBib3RoIGRl
ZmF1bHQgZGVmY29uZmlnIGFuZCBhbGx5ZXNjb25maWcuDQoNCj4NCj4gSmFuDQo=


From xen-devel-bounces@lists.xenproject.org Wed Aug 20 06:06:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Aug 2025 06:06:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087178.1445301 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uobxb-00027o-FB; Wed, 20 Aug 2025 06:06:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087178.1445301; Wed, 20 Aug 2025 06:06:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uobxb-00027f-CV; Wed, 20 Aug 2025 06:06:11 +0000
Received: by outflank-mailman (input) for mailman id 1087178;
 Wed, 20 Aug 2025 06:06:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=/z1b=3A=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1uobxZ-0001qs-NR
 for xen-devel@lists.xenproject.org; Wed, 20 Aug 2025 06:06:09 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de
 [2a07:de40:b251:101:10:150:64:2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c3dbf87f-7d8b-11f0-a32a-13f23c93f187;
 Wed, 20 Aug 2025 08:06:09 +0200 (CEST)
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 72E6D1F7A9;
 Wed, 20 Aug 2025 06:06:08 +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 41BD613867;
 Wed, 20 Aug 2025 06:06:08 +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 8SdpDNBlpWiCPwAAD6G6ig
 (envelope-from <jgross@suse.com>); Wed, 20 Aug 2025 06:06: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>
X-Inumbo-ID: c3dbf87f-7d8b-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1755669968; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=POjnB+TQ+TibIkRy39mb5HuXPSGjbkWGZZcbXsDwPA8=;
	b=hQoV5CYxJfZP5N8fMnq2MjE+FNUIZbphHqGEJK+661VlEi4ekJ9lCsBEtlQ/Ww3C704KVL
	R5uvOA+0Mu5uvcZQS9taSXpdik70yelNLf9NIStwH0Xobt30ihGYaJ9TI1KpaKht62EiYP
	OzNQd/p8b4zPRlfggkZystqC5THnZJA=
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=hQoV5CYx
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1755669968; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=POjnB+TQ+TibIkRy39mb5HuXPSGjbkWGZZcbXsDwPA8=;
	b=hQoV5CYxJfZP5N8fMnq2MjE+FNUIZbphHqGEJK+661VlEi4ekJ9lCsBEtlQ/Ww3C704KVL
	R5uvOA+0Mu5uvcZQS9taSXpdik70yelNLf9NIStwH0Xobt30ihGYaJ9TI1KpaKht62EiYP
	OzNQd/p8b4zPRlfggkZystqC5THnZJA=
Message-ID: <09819192-cdeb-441f-9bdf-d334e076c833@suse.com>
Date: Wed, 20 Aug 2025 08:06:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 9/9] CHANGELOG.md: add xenstorepvh-stubdom live update
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Community Manager <community.manager@xenproject.org>
References: <20250730122305.4050-1-jgross@suse.com>
 <20250730122305.4050-10-jgross@suse.com>
Content-Language: en-US
From: Juergen Gross <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <20250730122305.4050-10-jgross@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------x1Y4qmd95IsdRRgDSsa7k7vV"
X-Spamd-Result: default: False [-5.41 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	SIGNED_PGP(-2.00)[];
	MIME_BASE64_TEXT_BOGUS(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_BASE64_TEXT(0.10)[];
	MIME_UNKNOWN(0.10)[application/pgp-keys];
	MX_GOOD(-0.01)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FREEMAIL_ENVRCPT(0.00)[gmail.com];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	ARC_NA(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	DKIM_TRACE(0.00)[suse.com:+];
	HAS_ATTACHMENT(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	DNSWL_BLOCKED(0.00)[2a07:de40:b281:106:10:150:64:167:received,2a07:de40:b281:104:10:150:64:97:from];
	RCVD_COUNT_TWO(0.00)[2];
	FROM_HAS_DN(0.00)[];
	FREEMAIL_CC(0.00)[gmail.com,xenproject.org];
	MID_RHS_MATCH_FROM(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	TAGGED_RCPT(0.00)[];
	TO_DN_SOME(0.00)[];
	RCPT_COUNT_THREE(0.00)[3];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns]
X-Spam-Flag: NO
X-Spam-Level: 
X-Rspamd-Queue-Id: 72E6D1F7A9
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Rspamd-Action: no action
X-Spam-Score: -5.41

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------x1Y4qmd95IsdRRgDSsa7k7vV
Content-Type: multipart/mixed; boundary="------------E703qs7N3IhL1Qn6ePOCOefv";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Community Manager <community.manager@xenproject.org>
Message-ID: <09819192-cdeb-441f-9bdf-d334e076c833@suse.com>
Subject: Re: [PATCH v3 9/9] CHANGELOG.md: add xenstorepvh-stubdom live update
References: <20250730122305.4050-1-jgross@suse.com>
 <20250730122305.4050-10-jgross@suse.com>
In-Reply-To: <20250730122305.4050-10-jgross@suse.com>

--------------E703qs7N3IhL1Qn6ePOCOefv
Content-Type: multipart/mixed; boundary="------------Iox0pmlvxidmy9er0CxD1SBt"

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

UGluZz8NCg0KT24gMzAuMDcuMjUgMTQ6MjMsIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6DQo+IFNp
Z25lZC1vZmYtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4NCj4gLS0tDQo+
IFYyOg0KPiAtIG5ldyBwYXRjaA0KPiAtLS0NCj4gICBDSEFOR0VMT0cubWQgfCAxICsNCj4g
ICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykNCj4gDQo+IGRpZmYgLS1naXQgYS9D
SEFOR0VMT0cubWQgYi9DSEFOR0VMT0cubWQNCj4gaW5kZXggNWYzMWNhMDhmZS4uZDExOGJi
MWM4YyAxMDA2NDQNCj4gLS0tIGEvQ0hBTkdFTE9HLm1kDQo+ICsrKyBiL0NIQU5HRUxPRy5t
ZA0KPiBAQCAtMjYsNiArMjYsNyBAQCBUaGUgZm9ybWF0IGlzIGJhc2VkIG9uIFtLZWVwIGEg
Q2hhbmdlbG9nXShodHRwczovL2tlZXBhY2hhbmdlbG9nLmNvbS9lbi8xLjAuMC8pDQo+ICAg
ICAgLSBTdXBwb3J0IFBDSSBwYXNzdGhyb3VnaCBmb3IgSFZNIGRvbVVzIHdoZW4gZG9tMCBp
cyBQVkggKG5vdGUgU1ItSU9WDQo+ICAgICAgICBjYXBhYmlsaXR5IHVzYWdlIGlzIG5vdCB5
ZXQgc3VwcG9ydGVkIG9uIFBWSCBkb20wKS4NCj4gICAgICAtIFNtb2tlIHRlc3RzIGZvciB0
aGUgRnJlZUJTRCBYZW4gYnVpbGRzIGluIENpcnJ1cyBDSS4NCj4gKyAgIC0gUFZIIHhlbnN0
b3JlLXN0dWJkb20gbm93IHN1cHBvcnRzIExpdmUgVXBkYXRlLg0KPiAgIA0KPiAgICAtIE9u
IEFybToNCj4gICAgICAgLSBBYmlsaXR5IHRvIGVuYWJsZSBzdGFjayBwcm90ZWN0b3INCg0K

--------------Iox0pmlvxidmy9er0CxD1SBt
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-----

--------------Iox0pmlvxidmy9er0CxD1SBt--

--------------E703qs7N3IhL1Qn6ePOCOefv--

--------------x1Y4qmd95IsdRRgDSsa7k7vV
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/Ey8FAmilZc8FAwAAAAAACgkQsN6d1ii/Ey9j
Pgf/dxG1/bnfqL88mg5HgG/SZT3BG7+wvrmLO6eF2w+m8WMS0iOWcP6R1Th7lkegyYUzEs7A3Nf+
6K4m53dBalzVFQNnlHHcjEj0yRQOyv1YZUpZlg06wODW1LKuKIQeq/KSklornrtZfMQUJ/Lvs6z5
TGYZ8PCdfYy6WDT8gSKsEzK+Xh4i0KqgiBJgaRjHX8eMqXCOzGxCUnSjifoXKlNXLz/HyPL4o4TP
XkUIZ1xfZz77eMoyRmqTPxSIBy67Ix5InYIgaviW5NfSHuVmURGE4GgokvPnNJOfp6RjttoFGFmv
MKjU/XChLPLLLa+5HZCUJCUZh3UqhjyEKWqwZT9Gvg==
=z+j7
-----END PGP SIGNATURE-----

--------------x1Y4qmd95IsdRRgDSsa7k7vV--


From xen-devel-bounces@lists.xenproject.org Wed Aug 20 06:06:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Aug 2025 06:06:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087177.1445291 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uobxQ-0001r7-3Y; Wed, 20 Aug 2025 06:06:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087177.1445291; Wed, 20 Aug 2025 06:06:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uobxQ-0001r0-0w; Wed, 20 Aug 2025 06:06:00 +0000
Received: by outflank-mailman (input) for mailman id 1087177;
 Wed, 20 Aug 2025 06:05:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=/z1b=3A=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1uobxO-0001qs-OX
 for xen-devel@lists.xenproject.org; Wed, 20 Aug 2025 06:05:58 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de
 [2a07:de40:b251:101:10:150:64:1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bc885660-7d8b-11f0-a32a-13f23c93f187;
 Wed, 20 Aug 2025 08:05:56 +0200 (CEST)
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 0B0A021272;
 Wed, 20 Aug 2025 06:05:56 +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 B0FAB13867;
 Wed, 20 Aug 2025 06:05:55 +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 3mAJKcNlpWhtPwAAD6G6ig
 (envelope-from <jgross@suse.com>); Wed, 20 Aug 2025 06:05: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>
X-Inumbo-ID: bc885660-7d8b-11f0-a32a-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1755669956; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=aUgNEg+R60yV/j0ZVN/mr2biHyXevgg/TDt0qe7cE38=;
	b=LL2T8F6bNyn7vE2STK1hoqQzCofgaRF/qpDIN4Ao9Uwcrb1AFgIjTQIBFqQPas4+mVFgiQ
	6Qn1nkM0hyjUnTlFG1oz7DmOgx66zKXmZsUblmFjtsyIKDggJMW2B9susetKRca+voWHWD
	pWgmRg/8c9QMo7Etn1AZkW8mkdpWMNE=
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=LL2T8F6b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1755669956; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=aUgNEg+R60yV/j0ZVN/mr2biHyXevgg/TDt0qe7cE38=;
	b=LL2T8F6bNyn7vE2STK1hoqQzCofgaRF/qpDIN4Ao9Uwcrb1AFgIjTQIBFqQPas4+mVFgiQ
	6Qn1nkM0hyjUnTlFG1oz7DmOgx66zKXmZsUblmFjtsyIKDggJMW2B9susetKRca+voWHWD
	pWgmRg/8c9QMo7Etn1AZkW8mkdpWMNE=
Message-ID: <ce9a6f53-e8b3-446b-8b43-96581a900aae@suse.com>
Date: Wed, 20 Aug 2025 08:05:54 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 8/9] SUPPORT.md: add xenstorepvh-stubdom live update
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <20250730122305.4050-1-jgross@suse.com>
 <20250730122305.4050-9-jgross@suse.com>
Content-Language: en-US
From: Juergen Gross <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <20250730122305.4050-9-jgross@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------arai7MccokQvrkgh100Fqlqk"
X-Spam-Level: 
X-Spam-Flag: NO
X-Rspamd-Queue-Id: 0B0A021272
X-Rspamd-Action: no action
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org
X-Spamd-Result: default: False [-5.41 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	SIGNED_PGP(-2.00)[];
	MIME_BASE64_TEXT_BOGUS(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	NEURAL_HAM_SHORT(-0.20)[-0.999];
	MIME_BASE64_TEXT(0.10)[];
	MIME_UNKNOWN(0.10)[application/pgp-keys];
	MX_GOOD(-0.01)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	ARC_NA(0.00)[];
	FROM_HAS_DN(0.00)[];
	HAS_ATTACHMENT(0.00)[];
	TO_DN_SOME(0.00)[];
	DNSWL_BLOCKED(0.00)[2a07:de40:b281:104:10:150:64:97:from,2a07:de40:b281:106:10:150:64:167:received];
	RCVD_COUNT_TWO(0.00)[2];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	MID_RHS_MATCH_FROM(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	RCPT_COUNT_SEVEN(0.00)[8];
	DKIM_TRACE(0.00)[suse.com:+];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:rdns,imap1.dmz-prg2.suse.org:helo]
X-Spam-Score: -5.41

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------arai7MccokQvrkgh100Fqlqk
Content-Type: multipart/mixed; boundary="------------0Jy4u2czRjlXwuLoaaVqPJnR";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Message-ID: <ce9a6f53-e8b3-446b-8b43-96581a900aae@suse.com>
Subject: Re: [PATCH v3 8/9] SUPPORT.md: add xenstorepvh-stubdom live update
References: <20250730122305.4050-1-jgross@suse.com>
 <20250730122305.4050-9-jgross@suse.com>
In-Reply-To: <20250730122305.4050-9-jgross@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=

--------------0Jy4u2czRjlXwuLoaaVqPJnR
Content-Type: multipart/mixed; boundary="------------515jn7v0lSPpI0zKocK0kRWh"

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

UGluZz8NCg0KT24gMzAuMDcuMjUgMTQ6MjMsIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6DQo+IExp
dmUgdXBkYXRlIGlzIG5vdyB3b3JraW5nIHdpdGggdGhlIFBWSCB2YXJpYW50IG9mIHhlbnN0
b3JlLXN0dWJkb20uDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jv
c3NAc3VzZS5jb20+DQo+IC0tLQ0KPiBWMjoNCj4gLSBuZXcgcGF0Y2gNCj4gLS0tDQo+ICAg
U1VQUE9SVC5tZCB8IDIgKy0NCj4gICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyks
IDEgZGVsZXRpb24oLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9TVVBQT1JULm1kIGIvU1VQUE9S
VC5tZA0KPiBpbmRleCA2YTgyYTkyMTg5Li5lYjQ0ZWU4NWZkIDEwMDY0NA0KPiAtLS0gYS9T
VVBQT1JULm1kDQo+ICsrKyBiL1NVUFBPUlQubWQNCj4gQEAgLTI4MCw3ICsyODAsNyBAQCBv
ciBpdHNlbGYgd2lsbCBub3QgYmUgcmVnYXJkZWQgYSBzZWN1cml0eSBpc3N1ZS4NCj4gICAj
IyMgQyB4ZW5zdG9yZSBzdHViZG9tIFBWSA0KPiAgIA0KPiAgICAgICBTdGF0dXM6IFN1cHBv
cnRlZA0KPiAtICAgIFN0YXR1cywgTGl2ZXVwZGF0ZTogTm90IGltcGxlbWVudGVkDQo+ICsg
ICAgU3RhdHVzLCBMaXZldXBkYXRlOiBTdXBwb3J0ZWQNCj4gICANCj4gICAjIyMgT0NhbWwg
eGVuc3RvcmVkIGRhZW1vbg0KPiAgIA0KDQo=
--------------515jn7v0lSPpI0zKocK0kRWh
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-----

--------------515jn7v0lSPpI0zKocK0kRWh--

--------------0Jy4u2czRjlXwuLoaaVqPJnR--

--------------arai7MccokQvrkgh100Fqlqk
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/Ey8FAmilZcMFAwAAAAAACgkQsN6d1ii/Ey+A
2gf/RCDDqOxCynl8wZrLI2QNuEB7kzFoO7oMkDs2/0udXEbR4sbi+cIujN//pdq+6KYaphk+c8TH
/suVqxj8Noy+Da9Oy7oNd0xIWOuZl4DMMYvxaXtUIDa/7oY31E6JDmJVgP4dqkOSQHYd9IaRLmtJ
0Soib9vT/EWcQacIIkyuhqg9iw33vAxttleLUhHQB7a9s1UdcfgoreEPvg+56WUi0OGYyc6pKxXi
n+gvurFQkqiWRIp+V3/vkQ+w0Mmd3zRtl7bBXbAYbiQShdKev8CHQMvaYIGDS1zlqSnJfvo9Ez4Q
8AK7Ela6Db1Z11Ond2LltxE6xf2vAtbeUyotYvm/og==
=KttK
-----END PGP SIGNATURE-----

--------------arai7MccokQvrkgh100Fqlqk--


From xen-devel-bounces@lists.xenproject.org Wed Aug 20 07:18:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Aug 2025 07:18:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087205.1445310 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uod59-0002nD-Fs; Wed, 20 Aug 2025 07:18:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087205.1445310; Wed, 20 Aug 2025 07:18: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 1uod59-0002n6-DC; Wed, 20 Aug 2025 07:18:03 +0000
Received: by outflank-mailman (input) for mailman id 1087205;
 Wed, 20 Aug 2025 07:18:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fiHc=3A=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1uod58-0002n0-8U
 for xen-devel@lists.xenproject.org; Wed, 20 Aug 2025 07:18:02 +0000
Received: from AM0PR83CU005.outbound.protection.outlook.com
 (mail-westeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c201::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cd38498c-7d95-11f0-b898-0df219b8e170;
 Wed, 20 Aug 2025 09:17:59 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by PAVPR03MB9116.eurprd03.prod.outlook.com (2603:10a6:102:32f::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.13; Wed, 20 Aug
 2025 07:17:55 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9031.023; Wed, 20 Aug 2025
 07:17: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>
X-Inumbo-ID: cd38498c-7d95-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=muZ5Y+QChTbA+4QEil18v6QohFzVCd5TifPQXC8lgoK2jiWNzH+IYC/HqYw7IdY/CzejFUCuV5jdTNWzV3MMk5ct00JVPBS3dgNQrS4ui/gADtkw2uzG9LaN6TcnDEQk7VWvGO1XBXfLypZzPFNoqNqOjTyrs5Lwctap30vl4Gr5JJ1/dHUuOzOYG54inAryJYzRpBvANA1MjPsYfPV4+uwzzSdv68whZtUEfC0QRQybNCgKENV9fplPJyf8Msh6G/5BVsMwgrnxft5E7GQGtDne88GWSShl00BDGoW+YATIZHzrqBowlK5aO2yTscBEkCXBKANxHC4FR4oa67y36g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8nk17zjqPVgk0nvhstfnHnzLMV54YaJzzHLf9YY3z7Y=;
 b=Mq4UoAoySplA0zMxcJSinR4YNtpb6FG/6S2pTxpgtOXUci44zX2E/f33OGGEKXMPQNaHKOrVIVtG7EkRtWwQo1C5q9mYHowUpsS0ZU3Cifds5tyMZbVxfZOlt9PTGmtXodEL4pRcWBXpa9enoHwyNQKVrKQUOXgbIecALURmuiTf5HWorFSVUyTvy/T6985BwnFaVPuaMdIVF47IkPiFZ4839Rvly6eRkzvTsbBvsNVTJ+Cu73NXQ/PUwUcAja7EMaCjsDmteafHs0OZVqVXpH79oIng3d/7A2HeHv8sKVtjTZzcgdF1K1+sbRcFE/gQvD+ABO9FiyayLucMhxVYmQ==
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=8nk17zjqPVgk0nvhstfnHnzLMV54YaJzzHLf9YY3z7Y=;
 b=agyKz8HpmHtDBOMHG7VlHZaROWI6nDqQCFnXvBUE0AtdzTEGcelv1aLGdlYsC9JH+d9s60ry3JvkVdSWtp1d7Gkgu4ELqU1P4MY3mh2BAdSXfjOnuHjj+cbgPfX3HSwjvMMO7eFFyNo8BwKqWG7Z+RboG/4WtUoxAoBuJVWOjkNB0LF5mhV3nXUBcsku4iHuITG5xp+PRrJhELYzAZMugBSQxEi7XgRnPlsQazZQK53/KCBMOTa/LcM2IpnG2wtDdTOdJlT0YBUujJFrErULyFks/xuyMpdzPdDT5hmAsXSPGMe/U9Ul4iJPMQKIfA6VlN+3k+UYdlTowkXAj0CH3g==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, Nicola Vetrini
	<nicola.vetrini@bugseng.com>, Doug Goldstein <cardoe@cardoe.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>
Subject: [PATCH] misra: add deviation for MISRA C Rule 11.3
Thread-Topic: [PATCH] misra: add deviation for MISRA C Rule 11.3
Thread-Index: AQHcEaKMMDydbZiTjE+UNGKddouDNQ==
Date: Wed, 20 Aug 2025 07:17:54 +0000
Message-ID:
 <d6a8682c98880d66ea99f882520b3defda0e3fe0.1755672275.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: GV2PR03MB9572:EE_|PAVPR03MB9116:EE_
x-ms-office365-filtering-correlation-id: ed04c68c-4044-4f3c-3cfd-08dddfb9aecf
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|7416014|376014|42112799006|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?xWK6JCdM1u5eadzYXOcYh6BLb076jD+tZpFi6pIbyMHF3zlAaxNNkbdjWO?=
 =?iso-8859-1?Q?6FS6wn8RzVirK7XMtKKJWyikSVDkJ2UD5SjQ4poFTh4rRJSE08lCshqxsG?=
 =?iso-8859-1?Q?UqOMO5WDdRqQv0eQdjIwl1+9aGvBKLYzDrMEJyANMgjDjU7LJ424nBRoAW?=
 =?iso-8859-1?Q?Ou6R5WDAefjgSnjk0BCetvJa6RMF9evk/ShKhkCVg5m8nBq6rgh83HwERo?=
 =?iso-8859-1?Q?VLXw+D5FH0gU59vwLD+Bej94q8iUOQ9+3XWHEw8Ei2oTgRfeN4glwDEzI0?=
 =?iso-8859-1?Q?TZouvmZKQzIGS1XRUPIS5gaUyKNFKi6/G8CRAHrXcR++eDshISxvi0nSRo?=
 =?iso-8859-1?Q?0ie5JgaZyOeB0NlFg3XYtY0Wnoph5vQWh+Blic2WZatsxYnDvKP7CEX66J?=
 =?iso-8859-1?Q?O/uVhtRXR8pKBUPAJ9TwiUeFjxEhepLce9d8gPUKwaJhILJocET0u1oJAv?=
 =?iso-8859-1?Q?qp/k2PO7zj63kBr1AhOa7/Z8SKig7Y2RcibRHRv9bjqK7ZwdgGZUdWRztW?=
 =?iso-8859-1?Q?/rE0Pv3YaldS2/p5Z9mz2hSptfts51XuBR2b8OVeZgBvwJ96bFm3i/Lwn0?=
 =?iso-8859-1?Q?RZmj2u1LQjs4pp9cS/sI0Dqw7zj24GJ+0P3w/hNN+DLyaCKzA4M8XmIilZ?=
 =?iso-8859-1?Q?+pcwSfbtAeHhFUZ3jA2U2++E86bzG4itx3KKTWUt9TafVBLNyDf7ofSFqC?=
 =?iso-8859-1?Q?oEzMJL6c0Xj3HD526cbizw3T6PuxBP2kLYcowydsvNzQkyBOih82aWCUuw?=
 =?iso-8859-1?Q?p/9Z0vKGy+79jgt0+Iut+9b4NxBQ2MPrJrBBssWJFELM7NnhR8yI1JbA3w?=
 =?iso-8859-1?Q?iMYuXGq220mDqyU8UBBnikr6zWWuP844wA7qASXQHYOdhG1ODNRp4qyP1X?=
 =?iso-8859-1?Q?KC5y5S9x49sHP+AaTzdVbkhFfYhHUo5gcjDbtCdEaGsyAr8XSRZkaJAUVk?=
 =?iso-8859-1?Q?s3Ku1HN7maJiJ0Tpi+FXozAKbTsauIFh/UlCe2pnID7lR6GSgiJTttI60B?=
 =?iso-8859-1?Q?mHUxZIelFEJXtpQXEO0Q41I8s6YW3nEGxtKz2ck8ux5066YUrixVZtXZwj?=
 =?iso-8859-1?Q?C0NlCAVaiSVun01fmU+++f2mx5thHTT+oTrYMVI1y/cMvo7ygZ07Y6VzzH?=
 =?iso-8859-1?Q?x4zLAiEH9ZPM5GE6XE/4vKdHQVMDaDC4uANLNZRiA97KtTaLZLqbyNL01k?=
 =?iso-8859-1?Q?5Ah06554Y0JpAu/Yz/3xK8ypUVmiZO/FLhA/Vj6KnfwE8U0FYkOkpWJvqk?=
 =?iso-8859-1?Q?egY3mzWJzQfJvvew4tJ3e5Cv3rYsrxpG8blfGT2E8ORnGh68OlbhWae8Db?=
 =?iso-8859-1?Q?dMxVg5AK7q60R+1fHxafZ3eDHskQwzOSy/sBR/6Hre8KgOwxHn8gauYLpQ?=
 =?iso-8859-1?Q?sZhSgjmg98AhCoxmfFEaJ3f+SvXkvKOAgHIeWk8V4bt9Ei3dgmpy5fdS+Z?=
 =?iso-8859-1?Q?mrRp4XO+EKvvN1hr5/YIhBmpOwiBc6ZDSZ3mELpPQPPobyyQWKfobtu3tD?=
 =?iso-8859-1?Q?g=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(42112799006)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?i1obyFk5ECGlOHqQ87hdJ5RGF6YB7FU7fQWRs/yQASpMdbvLhk+8URU2JB?=
 =?iso-8859-1?Q?Kz1Gcz4fA4RDW9IsYwS52SQGFR+TWFtnm5drDGoHPfwXYismPBfr1wWE3q?=
 =?iso-8859-1?Q?50JS6OEcRDJwaWkwEg5zoHpbqQU1oTeCvH89eJ9gS8/NgRXEgyelf+39si?=
 =?iso-8859-1?Q?zNHl1T6nwdWq/0oVXJ4e30blRYYTtqvszybW5gPD7zYGwJw3hYxsQ7W2e2?=
 =?iso-8859-1?Q?vimJEvQvRm57+G3KNDcXPwIfY3SV20tO+z/bt1Vn7Svcmw6Nqi+bVuU9Vf?=
 =?iso-8859-1?Q?hpmZdnc1LOpakbl4+xtm+jDkLNbvf+fs21cyr9ggRMM3ohqt/uR2Zhu7fm?=
 =?iso-8859-1?Q?nfo4r6nVzlt7OhqCLrdvypvMt5GQvCXzHOdWR6eCyXGG4j0ZtPvkD549Sc?=
 =?iso-8859-1?Q?JeXYc8no1ZGgdDEAJT4bteTZuADzemYnQeLUA5kS+ALdumhQ08qgLqu5iO?=
 =?iso-8859-1?Q?dn04andqEv+D2rvHd+N73xvFMAji+eqB01rfXEg/YldgkQBiC8LmNTAb6k?=
 =?iso-8859-1?Q?dJjLK2Npx9Z/dGgNNCF4qDgfsf7QFQtSWr5RqZlAtWqgvhdbns9QVp28vR?=
 =?iso-8859-1?Q?7/woUtLpRuoV4zBBXUpmrAFrvMa7VAR2aWoQV73hNmN6u7LxtGZq239M/H?=
 =?iso-8859-1?Q?A4KcWwLOMCN8suwRdZXBUKqFbCiFfxesJPjFxVmLQfEKUeaqI6QBpnCj19?=
 =?iso-8859-1?Q?a8FNMlOrH7N5dECFXfzUaH1MochpqVV7C2KsVb4dBpdyuL7n0st0ssI9H5?=
 =?iso-8859-1?Q?7EhvDpjwlQnnWqLbQyx54CbEfSIW0Hoz1O1hkiXy5EC+FIkXRPTwvCMYGm?=
 =?iso-8859-1?Q?HR41AHq/F3A7vu8FbkqmjUyLspAJcp2XGKno7QIps03xnVsEumIg2YSgZh?=
 =?iso-8859-1?Q?zWhCys+5jxMkuwkZeYT59qqNtH/ojff421GFvzlzJUzqER9PmnPvvEMpoq?=
 =?iso-8859-1?Q?KRxGuhKYT0RMw+WJwZmQW3iIWsdgc+lLCffoqW5HuO4f4pCW1lnn+z1TdR?=
 =?iso-8859-1?Q?r4zQ+B9VJhBINgpR12XuIPenJwUuQVuvJEjZvqvpMHylcbttshHMIUy5VE?=
 =?iso-8859-1?Q?fw1Brao4kNXKZDf34JW9uM1WAI8H+3JWmHG0JjGPX7dAFj0wzI0AmBBVKV?=
 =?iso-8859-1?Q?eHJ67TXtWm6AnQjLJoepaaKggzpT9dAb4YPXzLpvDw4YMz/u+EIDiKlpVW?=
 =?iso-8859-1?Q?wHjiJuZFlYGYErfr7hlGC+R5j6bhls+WpQEwHjU75VtbPGzVPBe0EuqA+j?=
 =?iso-8859-1?Q?n0+lH2xU174y3yqEH0+sOKFQ4HFvttTbSaBRD9Pve/vhRwtwXBbM9vLyoI?=
 =?iso-8859-1?Q?/mkZ5bFchKrjMx8TYM4WWpziz5J+4+JZUP4ksXrjZqyWec6YMr6RLct2Ei?=
 =?iso-8859-1?Q?qz/emIUpoi9VY311huQv22rsBnx2eqkgxHjyBNio7Gdd2MWIiVCv9dgrH5?=
 =?iso-8859-1?Q?xuSDvJtnt8AMHMBOBogli+W++7Mn6d/L80sAQpUJPczL5NwKC5H8GVW0ys?=
 =?iso-8859-1?Q?9W0zCmukDDBe2uS6KaM6KGcNPLcc3h/Dz1/ro3LRJ9FEryURE9UShwGbYJ?=
 =?iso-8859-1?Q?14HwespaQqPRBgvOAAL605PauDWHPAZUJVYDiHJIpgq84v2OyjJ40K7ryU?=
 =?iso-8859-1?Q?Guxh78fzg2g18jGq1NHTqERL4YryoVzG0fUbnNISb0cDT7fndsilHmNA?=
 =?iso-8859-1?Q?=3D=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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ed04c68c-4044-4f3c-3cfd-08dddfb9aecf
X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Aug 2025 07:17:55.0601
 (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: O1EAdaK8f9sjde672Wk7cenJPKwZ765JE3Sn2Tm+Q4pkMS1h3QoE4iB81NL3oW3pUX2jrP+pCaFMGAghd1zdyrz1q91RAyffo5yEccQwXZg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR03MB9116

MISRA C Rule 11.3 states: "A cast shall not be performed between a pointer
to object type and a pointer to a different object type."

Violations of this rule arise due to the 'container_of' macro, which casts
a member of a structure to its containing structure:
    container_of(ptr, type, member) ({                             \
           typeof_field(type, member) *__mptr =3D (ptr);             \
           (type *)( (char *)__mptr - offsetof(type,member) );})

The 'container_of' macro is safe because it relies on the standardized and
well-defined 'offsetof' macro to calculate the memory address of the
containing structure, while assuming proper alignment and ensuring no
undefined behavior, provided that the input pointer is valid and points to
the specified member.

Configure Eclair to suppress violation reports related to 'container_of
macro. Update 'deviations.rst' file accordingly. Add Rule 11.3 to the
monitored list.
No functional changes.

Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
Test CI pipeline:
https://gitlab.com/xen-project/people/dimaprkp4k/xen/-/pipelines/1992968166
---
 automation/eclair_analysis/ECLAIR/deviations.ecl | 8 ++++++++
 automation/eclair_analysis/ECLAIR/monitored.ecl  | 1 +
 docs/misra/deviations.rst                        | 8 ++++++++
 3 files changed, 17 insertions(+)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/=
eclair_analysis/ECLAIR/deviations.ecl
index 7f3fd35a33..3e595e3a8c 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -403,6 +403,14 @@ because the semantics of the 'noreturn' attribute do n=
ot alter the calling conve
 }
 -doc_end
=20
+-doc_begin=3D"Convesions in the 'container_of' macro are safe because it r=
elies on
+the standardized and well-defined 'offsetof' macro to calculate the memory=
 address
+of the containing structure, while assuming proper alignment and ensuring =
no
+undefined behavior, provided that the input pointer is valid and points to=
 the
+specified member."
+-config=3DMC3A2.R11.3,reports+=3D{safe,"any_area(any_loc(any_exp(macro(^co=
ntainer_of$))))"}
+-doc_end
+
 -doc_begin=3D"Conversions from and to integral types are safe, in the assu=
mption that the target type has enough bits to store the value.
 See also Section \"4.7 Arrays and Pointers\" of \"GCC_MANUAL\""
 -config=3DMC3A2.R11.6,casts+=3D{safe,
diff --git a/automation/eclair_analysis/ECLAIR/monitored.ecl b/automation/e=
clair_analysis/ECLAIR/monitored.ecl
index 72698b2eb1..abfc102d60 100644
--- a/automation/eclair_analysis/ECLAIR/monitored.ecl
+++ b/automation/eclair_analysis/ECLAIR/monitored.ecl
@@ -45,6 +45,7 @@
 -enable=3DMC3A2.R10.2
 -enable=3DMC3A2.R11.1
 -enable=3DMC3A2.R11.2
+-enable=3DMC3A2.R11.3
 -enable=3DMC3A2.R11.6
 -enable=3DMC3A2.R11.7
 -enable=3DMC3A2.R11.8
diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
index 2119066531..33b045a5a9 100644
--- a/docs/misra/deviations.rst
+++ b/docs/misra/deviations.rst
@@ -393,6 +393,14 @@ Deviations related to MISRA C:2012 Rules:
        (i.e., less strict) alignment requirement are safe.
      - Tagged as `safe` for ECLAIR.
=20
+   * - R11.3
+     - Convesions in the 'container_of' macro are safe because it relies o=
n
+       the standardized and well-defined 'offsetof' macro to calculate the=
 memory
+       address of the containing structure, while assuming proper alignmen=
t and
+       ensuring no undefined behavior, provided that the input pointer is =
valid
+       and points to the specified member.
+     - Tagged as `safe` for ECLAIR.
+
    * - R11.6
      - Conversions from and to integral types are safe, in the assumption =
that
        the target type has enough bits to store the value.
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Wed Aug 20 08:00:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Aug 2025 08:00:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087229.1445322 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uodk0-0000rD-QR; Wed, 20 Aug 2025 08:00:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087229.1445322; Wed, 20 Aug 2025 08:00:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uodk0-0000r6-L6; Wed, 20 Aug 2025 08:00:16 +0000
Received: by outflank-mailman (input) for mailman id 1087229;
 Wed, 20 Aug 2025 08:00:15 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fiHc=3A=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1uodjz-0000r0-1v
 for xen-devel@lists.xenproject.org; Wed, 20 Aug 2025 08:00:15 +0000
Received: from AM0PR83CU005.outbound.protection.outlook.com
 (mail-westeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c201::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b3d0e078-7d9b-11f0-a32a-13f23c93f187;
 Wed, 20 Aug 2025 10:00:14 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by GVXPR03MB10684.eurprd03.prod.outlook.com (2603:10a6:150:214::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.13; Wed, 20 Aug
 2025 08:00:10 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9031.023; Wed, 20 Aug 2025
 08:00: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>
X-Inumbo-ID: b3d0e078-7d9b-11f0-a32a-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xzSX5pzUhK6vyvVQ6VWJf0MR61GtI0yocgKwDBpB30wLb803OnARP7UVN4ukwUeiN/AMbQwacBVoNQ1qjnllLly8aEHMvHjbf3z8UlVmtd3VXukrJNsETYCdEUvh7Vpyk8Ofd1s1ghbbjwgtsDrI/L7XBuTD746HAr30Abo87cGed2OqCZnLkxheqasqYG5K1x3M8iycHMb27nbLQEBJg1/1atJVs53Aojs/1bAuyQATIudS5SpeDosiPr2bMCwS2RW1MDLEzfa4UZQO+k23NkMJZhqn/JmIaHbB35dN//Q1CfDNeWGibXka0KYqvt2TKzbCFOoftlh4/5c9uCXpWQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=NtkxeDBACc0cYECjaqfj1ThuQQdwXeAzi2qPSx8hTrU=;
 b=Jm3a2lM3pOs8bJFOKjEfX/hUGC6veZXtoroFfBpU72Yb7TjlzIHjVGG7rnOY7JN0H4jis6B3GPKQ6GiSglmYRncLnnapS5YP/m1ytcwY0GmtDtkapKNG8lQTzzIS9XUyILUFfilN+diSNJ+DAHKNQ2nAujE2eSLJoe7NVaOxfxNy9qZ99NOKuxxUIFHJNxyMX92XID2mF3iqiw0TBjBIDKmeMiOT3Kfc3nrviB1o8V8kxaWeWjeJLqwXDJSByA/qVIvLbYDjHHxbiZZ617jFeHHJ2bZ/B2b57lObcqY0KQqKFF46prraH5FrZ1CTWnYFx5x7/Cm7RHbYJU/tGZUmMA==
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=NtkxeDBACc0cYECjaqfj1ThuQQdwXeAzi2qPSx8hTrU=;
 b=lIl+jpu55msSBSnrULTQxtX/IHCpVWaC6K4lPhvuBMiQ7poYnYu5ZBRsh1zSPhe1iRIJjVB++/SYMGpUzgKtEHUisL6Chl4vBGhcc87qxtg/7ETeQouj3TJjUxuzN/qb9DxtPiW3X7acnX2tozlspBB5O+zqLKHurhwtKSRJ0rcboTkTRDSJ2qkYu2xqWfPctA3/fQ1FzufUBZvkQfi6+2qAaBGvEIP3zQckUyeLo7CjgeFwod+Ct8avv2T0Oi90/38Rl2HZ5XBxp+YknV1tPGbQUgWCpH8QNRai+NAzjVSqgLPOI3dyjY8w0oJ7gFDBdclmiAmuTQJ6XTaaebmgvg==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH] misra: fix Rule 11.3 violation in 'vcpu_mark_events_pending'
Thread-Topic: [PATCH] misra: fix Rule 11.3 violation in
 'vcpu_mark_events_pending'
Thread-Index: AQHcEahzo6Ns4M/vpkyFl3Gc8+EN0g==
Date: Wed, 20 Aug 2025 08:00:09 +0000
Message-ID:
 <7210337994620b60ed123ec6fc73e469c287adf6.1755676142.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: GV2PR03MB9572:EE_|GVXPR03MB10684:EE_
x-ms-office365-filtering-correlation-id: e685cf53-c497-4c81-66ef-08dddfbf95b1
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|376014|42112799006|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?7FqRICyD7kVPyi/l4U7GeIcvG6NvzUHFAtZw1z3yrkhp+QjBMCogXJMG/a?=
 =?iso-8859-1?Q?2sQorUvVpP3hFr4Q374xDm+KBanwZe8HMCZEQsBrhaylf1iv3VhmYpaI3z?=
 =?iso-8859-1?Q?IwSFhxJ4oBGtO7K4uponjn/FxjbDJYVJeF8P4fHXLY/SFoXP8JqlzMwLCm?=
 =?iso-8859-1?Q?GhqJy1NctOBXcZDaIJaL9R56Nhz9aC9DUv1pnldz6YaSL2i5hwUGz98o/7?=
 =?iso-8859-1?Q?34S/Oc5+e3yAk2EH/FcVyV1FHcjmpMyMD/1bGlefVIUJGUlhC2LAYqtrS3?=
 =?iso-8859-1?Q?X/G1D9ujyrCpKAz50XtWTUxOusUylE2hm8Lf1SP3jRMTO8bfHbYPt6BnCn?=
 =?iso-8859-1?Q?FR33dKtabajVnSmkrHiROmUl9PRgq+UDx3lpDKm6P8CL5bsYBMx161l6BC?=
 =?iso-8859-1?Q?HvE2XfK0pYQ4wNE/KEJ4sbywu3FAMV/vCq7hXLNV4guaqJukD0NH0rvbr9?=
 =?iso-8859-1?Q?oINFS4SudgTTZgFUYSwGPr5rTT0c8c3XaP2LOM/vR69dHjI5oPb/VvnSOV?=
 =?iso-8859-1?Q?w2m3k2hCLUTkVxDzX64gN7FjPvWsHg6931gEeyLF/t7UjS6/Ef+sm1BrVG?=
 =?iso-8859-1?Q?7JCaFswQrDUWjrYGRGTN4VZbqHTStlLT7Nqj4ikE7Jju/12ndugTcQSKOY?=
 =?iso-8859-1?Q?jjMvWD2TJWJxel1QuiLrY+/piqcl5m9N7Ti3yIiOk4jdWqGffjXpyglU0z?=
 =?iso-8859-1?Q?KznzNWzll6PQ492NBVeeRPs9kdAn9OpYNBNBV0xnvlgWaOrl+i/qzzdSMU?=
 =?iso-8859-1?Q?ozea08VCnzSS4ajY0QnG3q8xVfsZpICjRNx6PdpfzNtzF6eL56Oyu+ghVy?=
 =?iso-8859-1?Q?8HJ5p33qmP433GjRDqLL9IArFwzaS4osFrnwrJrjdYXOENdS1NtrvbTTTi?=
 =?iso-8859-1?Q?tgJiXjAPA5ThUti44a4ZAYBgM50+LDcapUSjFeWX79KiSypKYEycQoFXk5?=
 =?iso-8859-1?Q?ZAmuqhkyhIZJN8bzOBhFKXW9sP7edZpqihhnwoBSrytU/sXv4aUIXVIfZx?=
 =?iso-8859-1?Q?0Ay5dTKH0m11hrkQiiQE4H/2nmsfhVMlCjarcejNiio4o2ijVJNQKt2nuI?=
 =?iso-8859-1?Q?2/5nhluLY6F6uD2bspIq49wO1kP++3hA/CZVelpf1mEgYyy5Acwc1S0KsK?=
 =?iso-8859-1?Q?2KCES6bVFfhTeSg+yECahKhcCVqLrnUl6I++oj4mkiZdFLCJ+F1t/gcoTR?=
 =?iso-8859-1?Q?SUYNoFGQ0gZzol0wI2f264n1kZjxOOatqtmO2kh1HPZlQta4P3GVxOBRac?=
 =?iso-8859-1?Q?SY0XTDPILz/dQWuJo4+kc5VJQIPwqE54dr9WB1jhDKTxDAAYzaAiWY8/hD?=
 =?iso-8859-1?Q?4KXwfRuuVrh2VCLqoMetZINFfz2/LN3XvkvJZzt9Ifoxkx2+5E6VKoL9Zu?=
 =?iso-8859-1?Q?VorRncGw9Fi7/uBmMP1GylTm5uGk5DjF3bqdrPMVglVrTByFQTGFBYkx/I?=
 =?iso-8859-1?Q?FkELnjEglyNWzQXAArHH2EJO+WSlMvpS2ikNvifbPbqzimrFPqpjK1Vnns?=
 =?iso-8859-1?Q?U=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(42112799006)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?ly4c1BkLbrvLH3g5v+OPslNMtThBYtoOjvKKyj4fkGlsRWor6hPOpJv29U?=
 =?iso-8859-1?Q?osLaA+YfCW/rvU4pfphgKSUXNDOPUT2aLz6YjBJZ0p1k/Ps7x4BnqhYIly?=
 =?iso-8859-1?Q?6JcSOITahuOgTc3wX6QQdN3yfAYPlN6tsQY6slueGSwHJVfH9d+IrMEREJ?=
 =?iso-8859-1?Q?4L7gwD7apg5Dov6MKciVqjqwJfgQBCy3TnnpSaEJIW2E0/Iu3rc8k8UUEf?=
 =?iso-8859-1?Q?szYwkSf7x/k7frnbnZ8Nsqyn44D0jnmu1fbhmuiPN22WqFo9odIYbG++7i?=
 =?iso-8859-1?Q?xK7j5sbntwcRSUCblNxeuLAonWzYCCYgIQSf7+g1c/N0hMXmlrpVhkx5GY?=
 =?iso-8859-1?Q?nINd+ZDL6MHl6L4znm0g36euORbbnzqVwpyTFrAWPY2Yvn2S9UkVT/Hpx8?=
 =?iso-8859-1?Q?doLTA3U2v0DK6FlUx24uk47d3UR0KcJW2CpntsdhBShuMu8LODfOSYg6iO?=
 =?iso-8859-1?Q?ECXVZYiQB9eHjK4y1fEQnCcQDSBs4OHjufatsCPYW9pgh+7KndCQMneW7l?=
 =?iso-8859-1?Q?sHpTKu9RyFrtDH8j8xVahJIAScFnw1v8NdzPRD8yeK6lEnQt30+274mhea?=
 =?iso-8859-1?Q?CF23MKWOk8aBCJ6vrYOdijN+ELq0f2sRRWRBa9wJW0v+meetbqVeWYa7o+?=
 =?iso-8859-1?Q?W4i4e9LMD1/a7PfkU0JjLrgmUe6rlDXM2sMjM1CcJN0+5LsYXoZM4kVfMu?=
 =?iso-8859-1?Q?AmQZARY0ocPLxIgznGpyDBne2u4DDWz+skmWAgVQ5vawONHAGzaz+hfSVy?=
 =?iso-8859-1?Q?97HzeRjlAYa0dU6Lqwm5wNrtwiIK0C/xIMYhX7XNZ4Vl2E+6+KH3iX6nyI?=
 =?iso-8859-1?Q?HZpyO+hhrSGTyO44D7VIdO0HZUM0L9lweZ9pMV1lBCV11V5atswAYRAC+o?=
 =?iso-8859-1?Q?XQSflHsHpkjgWvyNDwlpOTMzbEt6Ac//K32XfM4N/VMMNJfZW0fzxCoiNk?=
 =?iso-8859-1?Q?7zB8S4vsTVn/WKBw0zuc0o6e3vYxKfskTHdN6YmOoy6j9vWabBvSrT5TXg?=
 =?iso-8859-1?Q?9iQXNORxNIm21iMVF+EPiDWG9KDNnTkf7FkDS6fqpGRpEaOltCSf9yfHVt?=
 =?iso-8859-1?Q?arJ5bE9nBdhswiKr/6MIej3+6IV0NaAtoz1QzvR4dUyi7H7dD7jZ+VCh48?=
 =?iso-8859-1?Q?rtO0mevqWSRcbXwrtHh0LdUdM757ZolTmKh9UZqNwHpLGKt7C7s/CniM9f?=
 =?iso-8859-1?Q?6f7m8nMfTG/9JBeuRridPtvhhnsh7wfkpMJzKAJq9Ka3DDeql4yo1aXqNV?=
 =?iso-8859-1?Q?cFH5XjmIRO4qwjTifIi5aXihZrqA82dEMDrFc72S/ySzXLpuQdpXCaISTf?=
 =?iso-8859-1?Q?tnQQOVLOa8KKs2hCOEtWmMk2avciJo9lLbL8G52bWNYO7Pni7MuPI/oq3P?=
 =?iso-8859-1?Q?WTsC8OO6NOryCUVlWyeYDeXGBcG0AL95uwnIYUin3gyhC0LBzLINppFZI8?=
 =?iso-8859-1?Q?fwAaha1LpatsQU9Roi646hrJGB2YacGDoJUaAM2MAG2mCI0S9vAmPjDzvI?=
 =?iso-8859-1?Q?HQtlhSjFNYB9ygdzuvWwq7d2HYKxD6J21kMyhiMWoAZFsK77tD3mP4OMfj?=
 =?iso-8859-1?Q?aKPLV7pEUntun5JXbsxvxLY2S4knC/D4Rve6Spq+/aGaL0C0H9HmRHiyvC?=
 =?iso-8859-1?Q?He0s/dkj7yXzRlIIVZNASNB5WmL+CGmkzejQsI8787GfBJ9wQXB0Yzbw?=
 =?iso-8859-1?Q?=3D=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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e685cf53-c497-4c81-66ef-08dddfbf95b1
X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Aug 2025 08:00:09.9517
 (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: 4J+9GhYgScfpv5DVWoC+6Mtnm34NReP86lLrSG8s6t5U56HkoORJLmv83a9ppia12eMIEBTQKjlrrnKUy7Z7g4k8/GMlgZ7C3vwl37E1UsI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR03MB10684

MISRA C:2012 Rule 11.3 states: "A cast shall not be performed between
a pointer to object type and a pointer to a different object type."

The function 'vcpu_mark_events_pending' contains a non-compliant cast
to (unsigned long*). Remove the explicit cast and pass the compatible
pointer type to the 'guest_test_and_set_bit' macro.

Fixes: c626aa1a5a (arm: implement event injection, 2012-06-01)
Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
Test CI pipeline:
https://gitlab.com/xen-project/people/dimaprkp4k/xen/-/pipelines/1993054203
---
 xen/arch/arm/domain.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index 310c578909..6371e68cc7 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -1166,7 +1166,7 @@ void arch_dump_vcpu_info(struct vcpu *v)
 void vcpu_mark_events_pending(struct vcpu *v)
 {
     bool already_pending =3D guest_test_and_set_bit(v->domain,
-        0, (unsigned long *)&vcpu_info(v, evtchn_upcall_pending));
+        0, &vcpu_info(v, evtchn_upcall_pending));
=20
     if ( already_pending )
         return;
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Wed Aug 20 09:19:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Aug 2025 09:19:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087262.1445355 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoeyE-0001Z8-NB; Wed, 20 Aug 2025 09:19:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087262.1445355; Wed, 20 Aug 2025 09:19: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 1uoeyE-0001Z0-Ib; Wed, 20 Aug 2025 09:19:02 +0000
Received: by outflank-mailman (input) for mailman id 1087262;
 Wed, 20 Aug 2025 09:19:02 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fiHc=3A=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1uoeyD-0001Yu-Rj
 for xen-devel@lists.xenproject.org; Wed, 20 Aug 2025 09:19:02 +0000
Received: from GVXPR05CU001.outbound.protection.outlook.com
 (mail-swedencentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c202::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b4a9210c-7da6-11f0-a32a-13f23c93f187;
 Wed, 20 Aug 2025 11:19:01 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by DU5PR03MB10357.eurprd03.prod.outlook.com (2603:10a6:10:51c::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.13; Wed, 20 Aug
 2025 09:18:57 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9031.023; Wed, 20 Aug 2025
 09:18: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>
X-Inumbo-ID: b4a9210c-7da6-11f0-a32a-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FHr9UoR0WdADrh2AM7GcaMNzPIcDrTR61+8JFQwQwArYz4IqfBqNQdljQ0g0kw3F/Xq1mKlN6ZHJ91mAurNtfTWjXFjS7YelQP2QlypTJS/2b8UVezwXG2ABj5vXpXHmhIOThe4N3DDOJJ3Yqm9XKpEw44iIJs7KOR9m2KaQewWdGqkfNwn0Xjt5mWHMqDRS6Tt7FwJv2+lhQcJpNjR5F27cg//kijx/z4GJ29fOUZQ/uCTO0Zj9Aky/QAm9C0U6AoSXCq8iJp3RCkoXWSpMS64Ik30b8u1IEcU7zaTjgQC5W6jPuHikhmE8KaC6ztpw6QxvjHnTV7RSiHmsoWhxnA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LhOfy3Bf/EPcbOOpnsP3Jwqw690bdytu7K8Ke8O78KE=;
 b=SdRUBFLOKeCSm4OiiPLYrZ/r51Uj4/oi3GD7LYcYFxehBuu2V9r0c2mamwPPM+acXuouXgx+l2EEspxEvlgkEgJAnPWpwEE66aPxOI59ULuB7IPUGdjnbS8Ed1bXP/gKTTylbnVs6YqZvUVf4r87j8emQ8Lxrf5DCmdoJSPNuni1pfu8ht5OOdWU9JExgCf1KnvBeCof/nmVz9vWFeAud+rK/8fgQgP+QqfNPxx0ofOeVSXEawjSCymGiSTslfu4hypt5QtGrOHxuVDn74Dg6VcLgbVOj78jTSwXbwy6ukbUZhgzi0geXaOnFazNgf5IINwPHkYH3sUFnUzLg28bsg==
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=LhOfy3Bf/EPcbOOpnsP3Jwqw690bdytu7K8Ke8O78KE=;
 b=vrfMY9dwsGqzZKPWuv3x8ebBzsjuXuyG6n7ALBNfQqkV0X3aCT/0la78psN1p/lR3DE/+sQiMKWR+3yKGQt9cK4RTyBK+3qzCkOabBeyTshu0sqplt5lJtDoIpcY4D8ifRksXR5zu+ZHoi90zRgGgDRjhjvE4wP+IQ11mzOiYgXWsCsT0f45iiqQBJVjB1PIq6KdUkQF4B3TesYJGg4/ov5fwSjIiNlh5z2ui+NFm+nKYFUsVdSP5Te/oq6gTC/u5vC+7Fch08S7fmgBiOEdUCy2j7Ma6+NYA8zn9h3eD9yBKoFo0AoKN/rd91YCE7jVyDPJnVTdiytE+HzyF+XU/w==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Stefano Stabellini <sstabellini@kernel.org>, Jan Beulich
	<jbeulich@suse.com>, Nicola Vetrini <nicola.vetrini@bugseng.com>
CC: Doug Goldstein <cardoe@cardoe.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?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, "Daniel P.
 Smith" <dpsmith@apertussolutions.com>,
	=?utf-8?B?TWFyZWsgTWFyY3p5a293c2tpLUfDs3JlY2tp?=
	<marmarek@invisiblethingslab.com>, Dario Faggioli <dfaggioli@suse.com>,
	Juergen Gross <jgross@suse.com>, George Dunlap <gwd@xenproject.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] misra: address MISRA C Rule 18.3 compliance
Thread-Topic: [PATCH] misra: address MISRA C Rule 18.3 compliance
Thread-Index: AQHb+7pQeGfsWWy0sUade1ju+9GDKrQ/vEEAgAOkMwCABlLfAIAhvCAA
Date: Wed, 20 Aug 2025 09:18:57 +0000
Message-ID: <e7b30994-3c36-44f8-9d14-4a4a5c0df7f8@epam.com>
References:
 <c9fb095c43edfedfd6174284bac404ec9ae5523d.1753263957.git.dmytro_prokopchuk1@epam.com>
 <6c7341a2-fd49-40de-8ad3-e7980d4e9e42@suse.com>
 <36042f23-7795-4717-be4a-cd22e52b3145@epam.com>
 <alpine.DEB.2.22.394.2507291507580.468590@ubuntu-linux-20-04-desktop>
In-Reply-To:
 <alpine.DEB.2.22.394.2507291507580.468590@ubuntu-linux-20-04-desktop>
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: GV2PR03MB9572:EE_|DU5PR03MB10357:EE_
x-ms-office365-filtering-correlation-id: 37a7e4e6-0feb-4afe-5669-08dddfca974f
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|7416014|376014|42112799006|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?VFVHSGJzSStyb2ZFbmE0SUxDUDNWK2VtMnJrMy9jbE5qTjBoWi91N0V1ZGRC?=
 =?utf-8?B?R29HRHdNVTlhUko4UGtUdEltajFmVTN6TjBia1NUdmVLTG9obUY4K2s2ZW9T?=
 =?utf-8?B?N1ZpUitMakt3WWViZzFsZ0JlOHJ0dzJocUlZSXpxbkZmSUlaajJDeDNWcnU5?=
 =?utf-8?B?eGNSZ3lZUVJjUDdIZTFidUorbml5UGtpcUs1SnJSc0RmYWNXbWU2TDRDRkpJ?=
 =?utf-8?B?RHdUeDcwbkQ4N3JzMkVISkhqNGpKTnRmZUUzQXFyVnR6KzRhd3ZIZ1o5MU80?=
 =?utf-8?B?N0Nqa3FZeVI2ZlpQd0hGRDRQNFMvcFBZTG5lS3FGa3lCVmpkRlhaRDJ1aENx?=
 =?utf-8?B?WHU5ZWIrcUhnbVZmZ1VkMjZodm5hdlpuTFRuS2ZjRHZQaDJFSlZNVWdBWHBv?=
 =?utf-8?B?ekgwL21UZTQvRkN3OUVNdFRGc3V6ZjhtaWEyeHdOWWx6SndScTExT1VwazNU?=
 =?utf-8?B?azJnY3dvSW5RaXZlVklqYmRpajRsZXJTOS9FTitrVVJhZ2wzbWR1KzRQUnBN?=
 =?utf-8?B?N1YxaEZoUE5zVFBjcU1vS3pYNWFRcjVPOVpXQ0lDTE54MURxT0VVSFkrZmI3?=
 =?utf-8?B?WG9oTXRzNGNyc2xVcEt4MG5GOHRRZVI0MXFBN1ZueUorYlVKRHRRY2trL1Z2?=
 =?utf-8?B?SWJYZTROZ0FwR2tSalNma2Flbk1QRUIydDRQSW1JeC84WjhkdXQybjJCNk92?=
 =?utf-8?B?alVpSzNnSG1LdlI0Q2ZkYzBZbWNubmNOWVRpM3hRK3VQS0dncU5aUDAxVGhB?=
 =?utf-8?B?K1VCOEVQY1BydndZNlZKeUxlRkg3QXo0dW5Tbk02eHZHYnJBTkxkUjJCMnBQ?=
 =?utf-8?B?dHI1NWVYZUZPRHhielFuK00yVnB4d2FiZDkwbW1LcGVvQ2ZKWWlOc3BRbkRx?=
 =?utf-8?B?azlnS1p4a1krWlBXN3dPd1hLRWNqc2hSUFNUcXBDTm5sdDU5QS9vbERUcFY3?=
 =?utf-8?B?bitzTlZPNFFLZ1cwK0w4VjUxYmhhd0c3bS9XNXdLTlFNOG5BMTV4NUhRQVE2?=
 =?utf-8?B?S3dwbWJZdzhjRndtUmkxZlljKytmNGo5RWtGOXAzYlZyTk9RQUREQXFSUVIz?=
 =?utf-8?B?dWxLNSttcGhIdjdPb3FMeTY5dHBZWnRGY1FISTlOSHBGSTQzajRZaEtkdDZv?=
 =?utf-8?B?V1Y3a1VpcldEcnBybTIwL1RSczUrTlJLT3FGQlg3VmE0b3FMMExIY3pIVVph?=
 =?utf-8?B?SlJCOGFkTWRJbW9iTDRGVnZrUjUvb3J5d0NRcUJON3hGQXdJSjI3THJjcnJN?=
 =?utf-8?B?ZkFlSis3V1FQZVB0VDFRbjdQVUNiQnJzYlAvRklpVnFwSVh3M3Z4YUFZam5y?=
 =?utf-8?B?M0VKbXAxYzlkZGJuQWFPQllpYTdqRldQSDZRY09IUjB6cks2T3VvaVhPVFZ1?=
 =?utf-8?B?cDdsTjF1QVFpaFdMd2xBR0x0elBXV0g4TG5vT1RYSCtIRHVlMDFpMjkvRzMw?=
 =?utf-8?B?MnBIbVNwZ3FaTnpxckxTaU16VnJydTN0eUpnM2I2VGQ3dVNqSHdFbnU1NE5p?=
 =?utf-8?B?dVExZFBlNnV4L2RObytQVndQMkZLWUU4Sk94MHR5NC9pQ0F0bVNXRndHa1pu?=
 =?utf-8?B?QXlRWmwyNy9rYVVRMW95TGs1bUUveEVXYkt5S0I1WVdkeVh0eGFmT0pqY1k2?=
 =?utf-8?B?VHpnMXJPejlGK0IwaWxhNHBSSFFlVVVtc0QrYU9LTy90T055SFBMcWIxcWt6?=
 =?utf-8?B?bXowQ1VPenpRcWVCK2VGK2lxcXNsUkQzaVdJY2Z1VXUwZ1c1Z213TTcxdlBQ?=
 =?utf-8?B?Y3E3ZzRlZ2xhdkZCSDhMY3RNWGFzcE5sbEtRSER3bHpwTHFxQ2Y2Mm00eDJX?=
 =?utf-8?B?RDhsUWZ3MFFvM2k0YWxhUE4yR0NndHpSLzlYVWRJWCs0NDI2SmcyNmFiN0dz?=
 =?utf-8?B?YXdQcjBudlNjTkZlaHlFQjFHQ3MvUGljemxUWXpPRUtkWE9OS09UTFMxWHAx?=
 =?utf-8?B?clZOYUljQThMODhKZDZGRVV6SGV5TTZ1cUlSQnAwQm9QYVdVTURQREtYcE9I?=
 =?utf-8?B?c2JCQU1RYzZ3PT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(42112799006)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?SWl2REoxZXRnOGF5dXhsaGNxWS9kVDB5VTJSeWJwa3BpUGxFTDRXUklHaGFP?=
 =?utf-8?B?UjlvbU81anc3S0hIVzIvVnovRlo4UjJJVmU4dU44TUN2WFpGNHo3VXI5Z2NZ?=
 =?utf-8?B?MVRyVXNIOWxXUExtajY0S1pTVVQ4bzZsdlFmVWI5SGJOR3U0WUYxQzhDMXpZ?=
 =?utf-8?B?ZEtnOG5MNVNzSS9rdngxcnloL2YzU3ExbEtpN1hqTnV2bG5ZOW5QYnlJYWRU?=
 =?utf-8?B?aWtSZituVkxqcW1VL0Jtd2RiQmRzY0tUZGR1NzhDNFFhYkRHSlhrTEU4bG9t?=
 =?utf-8?B?S2cwcGFzWEFrcDRsL1NRT1A1eHdOUGxUV0Rhak5GZVRkVzNHdlBOZm5uWS8y?=
 =?utf-8?B?MUxETmVaWG8vNGtjNWJ3S3hHYXhOWXZ0SG5xb3VaL0h0K3pXQ0pvVE5xZC9q?=
 =?utf-8?B?d3hZVEhQL2ZoMHdid1NWenEyZmovUk92RVVJYklTOHVacXF5SExnWDU3Z3lm?=
 =?utf-8?B?WGZtQVVxNTIwK042TUZzLzJCNDgzelhXaUtnRkxZRGlTTDBKb2pMb09FWmVu?=
 =?utf-8?B?aldGbllTbGdmRlcyOTg5bWhKdktRUHhZY2VVZm5WL0FyQ1A0eEFNTVhNbzN0?=
 =?utf-8?B?ZTR1d1c2R2gzbEw0RDUxaFArUTI2VmwvSE15d0YrYkxsSG95dElXQkUrVnhs?=
 =?utf-8?B?bG9YZkp4WUpNTXRJMGRmZkhNUXY2WGpFMW00a2lRQVduZFNObTRxWERpVDNC?=
 =?utf-8?B?REd0dFo2Wlo5SWNyQ1hzM2lFS1Nvb3lsVWkxYlRYQmsrenN6UFlqOFVUaWZ4?=
 =?utf-8?B?VFdzYXQzZDVvSkxvU3RPT2NQcXlmeHN6aThBb21yVUJ3TEQyU2RMUmhtUlA5?=
 =?utf-8?B?RlptRzRyc0wvb0J4UkMwZUxoWE5GNkh3aFNuNDEyTHZmbHE1ZzVGTXdFcFhC?=
 =?utf-8?B?OXBsRWg1Y09xSjNSY0JrclB0VFcrMUUyMk9MZ3NrNmViMHhCUkhjQjM5NDZE?=
 =?utf-8?B?RGdtRUFYU01hREZoajV4NHV6Q3U3QVg1SlFEaG5ORWFENUFNNXFxbkYrZ0Z1?=
 =?utf-8?B?Q3Y1dlRzTWhnWkthTmwzb2xxNjd6NHhNYjFOYVlCYlMxZkJjTTJRQTc3YTdL?=
 =?utf-8?B?U3JySGRBVm9VSXc3dWw5K2NEZ3lVL1ZFbkZWSHphNWlJekE3Ykh4UU9mb1hC?=
 =?utf-8?B?ZTgzTVNCa0Q1Z0FhS0V2TllTVTVwNzZKbnFxcWxuQ3BPUitJa1IrNEZGOUtL?=
 =?utf-8?B?eGlsZ1dobzdhcUE2eWZUNVhHQjZlSG5MTEdOZFoxNjQydk5rWndxRzdqL2hX?=
 =?utf-8?B?KytQSXNKV29CeWUwZTdCRDB1cGxKMDJvNWZ6ZkREVGt5T292OWtyQjhXZlc0?=
 =?utf-8?B?YytydVBjT05zb1JJMlpzRlh3K0hLVU5YcVIrOTBkUzh3RURpUXcvb1ZGdnpw?=
 =?utf-8?B?c3hQTFNDOFcwQXpmUFVkSW9WUmtPUmlVeWl5YXQybFFOMVN2cjNOcmloMHZP?=
 =?utf-8?B?YWc2QTVwMFhSb2ZWSWUvRjVFa3dSNzY0NzJUQkhPQXlJeFpKN2s3enY5TXow?=
 =?utf-8?B?Vi9BbXJNTGt4L0pjQ2VrY2s1Mm9rNmxmZUNCVjN2dk03TGsrZXRWa1lYWWt0?=
 =?utf-8?B?THdrOFhlakJWQ3VXbDNZemp3YXZyVUdWaFJRYUFUWGlPaU53ejVoMzAzZURq?=
 =?utf-8?B?blprTXZ0eWpUalg3RExmS2FvU3RDWXdIUmdRQVlnaHJhQnBnU1U1RUZNZzJs?=
 =?utf-8?B?Q2tpRmtsTStSYXhOZFk1eXR4RlhjSkZMMU5vQkdQTGFyRHRhemltemsxU1Q1?=
 =?utf-8?B?RmkwSk95ckltR3RhcDlJMnhqTGxHNHVzNGlVWGVIL0FnaDZJeVNFSldvcFBz?=
 =?utf-8?B?ZzN5MHlrNzk5NnVTOG9TQlhvSmxGajRxRjA5VWlmNC9WOCtPc2RKeVdqc0Ev?=
 =?utf-8?B?aWpzQ2pBdXkwVUFXMVBvVHVCN201cE94c2xGbmRYQTdpa2h4MG1yRjNGYkNU?=
 =?utf-8?B?ZlRublJJSzVvSlBoNFBwUVk2bnBnQWFLaW9GUVUxYmZ3UG5rV0Vxa2lrU0N3?=
 =?utf-8?B?QUxCS1hMSTMzdDh0SVFkdFFPQ28rSmNhS1JsZHlVVE8vd29oU3VvRW1vUmdQ?=
 =?utf-8?B?OUFjbkNZZE5pRVhhRmFpbjJyaXdrMzlHaUQremQxRTZRVkRwYURnS283Zk9O?=
 =?utf-8?B?SlpNTU9Pa3NiWWZyd1FWeDhKaVlISWt6bmlod1RkSmVrNW0xbmNwMUNOTFh1?=
 =?utf-8?B?cHc9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <BD10CE77DD76E2468B8D946E96A549F2@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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 37a7e4e6-0feb-4afe-5669-08dddfca974f
X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Aug 2025 09:18:57.1404
 (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: sRPylVqdqv7/zUaWQme9rEyNDtX9JxOh7Z5sMmWat7w00Qv3t5GJzuAvCZmBPf6aY/lQn4QR23Q8PZdwLKNCj+TnsCi39nj6v2XxRKda0Ps=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU5PR03MB10357

DQoNCk9uIDcvMzAvMjUgMDE6MDksIFN0ZWZhbm8gU3RhYmVsbGluaSB3cm90ZToNCj4gT24gRnJp
LCAyNSBKdWwgMjAyNSwgRG15dHJvIFByb2tvcGNodWsxIHdyb3RlOg0KPj4gT24gNy8yMy8yNSAx
Njo1OCwgSmFuIEJldWxpY2ggd3JvdGU6DQo+Pj4gT24gMjMuMDcuMjAyNSAxMjoxMiwgRG15dHJv
IFByb2tvcGNodWsxIHdyb3RlOg0KPj4+PiAtLS0gYS9hdXRvbWF0aW9uL2VjbGFpcl9hbmFseXNp
cy9FQ0xBSVIvZGV2aWF0aW9ucy5lY2wNCj4+Pj4gKysrIGIvYXV0b21hdGlvbi9lY2xhaXJfYW5h
bHlzaXMvRUNMQUlSL2RldmlhdGlvbnMuZWNsDQo+Pj4+IEBAIC01NjgsNiArNTY4LDE0IEBAIEM5
OSBVbmRlZmluZWQgQmVoYXZpb3VyIDQ1OiBQb2ludGVycyB0aGF0IGRvIG5vdCBwb2ludCBpbnRv
LCBvciBqdXN0IGJleW9uZCwgdGhlDQo+Pj4+ICAgIC1jb25maWc9TUMzQTIuUjE4LjIscmVwb3J0
cys9e3NhZmUsICJhbnlfYXJlYShhbnlfbG9jKGFueV9leHAobWFjcm8oXnBhZ2VfdG9fbWZuJCkp
KSkifQ0KPj4+PiAgICAtZG9jX2VuZA0KPj4+PiAgICANCj4+Pj4gKy1kb2NfYmVnaW49IkNvbnNp
ZGVyIHJlbGF0aW9uYWwgcG9pbnRlciBjb21wYXJpc29ucyBpbiBrZXJuZWwtcmVsYXRlZCBzZWN0
aW9ucyBhcyBzYWZlIGFuZCBjb21wbGlhbnQuIg0KPj4+PiArLWNvbmZpZz1NQzNSMS5SMTguMyxy
ZXBvcnRzKz17c2FmZSwgImFueV9hcmVhKGFueV9sb2MoYW55X2V4cChtYWNybyhuYW1lKGlzX2tl
cm5lbHx8aXNfa2VybmVsX3RleHR8fGlzX2tlcm5lbF9yb2RhdGF8fGlzX2tlcm5lbF9pbml0dGV4
dCkpKSkpIn0NCj4+Pj4gKy1kb2NfZW5kDQo+Pj4+ICsNCj4+Pj4gKy1kb2NfYmVnaW49IkFsbG93
IGRldmlhdGlvbnMgZm9yIHBvaW50ZXIgY29tcGFyaXNvbnMgaW4gQlVHX09OIGFuZCBBU1NFUlQg
bWFjcm9zLCB0cmVhdGluZyB0aGVtIGFzIHNhZmUgZm9yIGRlYnVnZ2luZyBhbmQgdmFsaWRhdGlv
bi4iDQo+Pj4+ICstY29uZmlnPU1DM1IxLlIxOC4zLHJlcG9ydHMrPXtzYWZlLCAiYW55X2FyZWEo
YW55X2xvYyhhbnlfZXhwKG1hY3JvKG5hbWUoQlVHX09OfHxBU1NFUlQpKSkpKSJ9DQo+Pj4+ICst
ZG9jX2VuZA0KPj4+DQo+Pj4gTml0OiBEcm9wICJkZXZpYXRpb25zIGZvciIgZnJvbSB0aGUgdmVy
YmFsIGRlc2NyaXB0aW9uPw0KPj4gT2suDQo+Pg0KPj4+DQo+Pj4+IC0tLSBhL3hlbi9hcmNoL3g4
Ni9lZmkvZWZpLWJvb3QuaA0KPj4+PiArKysgYi94ZW4vYXJjaC94ODYvZWZpL2VmaS1ib290LmgN
Cj4+Pj4gQEAgLTQ2MSw3ICs0NjEsOCBAQCBzdGF0aWMgdm9pZCBfX2luaXQgZWZpX2FyY2hfZWRk
KHZvaWQpDQo+Pj4+ICAgICAgICAgICAgICAgICAgICBwYXJhbXMtPmRldmljZV9wYXRoX2luZm9f
bGVuZ3RoID0NCj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICBzaXplb2Yoc3RydWN0IGVkZF9k
ZXZpY2VfcGFyYW1zKSAtDQo+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0b2Yoc3Ry
dWN0IGVkZF9kZXZpY2VfcGFyYW1zLCBrZXkpOw0KPj4+PiAtICAgICAgICAgICAgICAgIGZvciAo
IHAgPSAoY29uc3QgdTggKikmcGFyYW1zLT5rZXk7IHAgPCAmcGFyYW1zLT5jaGVja3N1bTsgKytw
ICkNCj4+Pj4gKyAgICAgICAgICAgICAgICBmb3IgKCBwID0gKGNvbnN0IHU4ICopJnBhcmFtcy0+
a2V5Ow0KPj4+PiArICAgICAgICAgICAgICAgICAgICAgICh1aW50cHRyX3QpcCA8ICh1aW50cHRy
X3QpJnBhcmFtcy0+Y2hlY2tzdW07ICsrcCApDQo+Pj4NCj4+PiBUaGVyZSBtZXJlIGFkZGl0aW9u
IG9mIHN1Y2ggY2FzdHMgbWFrZXMgY29kZSBtb3JlIGZyYWdpbGUgaW1vLiBXaGF0IGFib3V0IHRo
ZQ0KPj4+IGFsdGVybmF0aXZlIG9mIHVzaW5nICE9IGluc3RlYWQgb2YgPCBoZXJlPyBJIGNlcnRh
aW5seSBwcmVmZXIgPCBpbiBzdWNoIHNpdHVhdGlvbnMsDQo+Pj4gYnV0IGZ1bmN0aW9uYWxseSAh
PSBvdWdodCB0byBiZSBlcXVpdmFsZW50IChhbmQgbGVzcyBjb25zdHJhaW5lZCBieSBDIGFuZCBN
aXNyYSkuDQo+Pj4NCj4+PiBBcyBtZW50aW9uZWQgc2V2ZXJhbCB0aW1lcyB3aGVuIGRpc2N1c3Np
bmcgdGhlc2UgcnVsZXMsIGl0J3MgYWxzbyBub3QgZWFzeSB0byBzZWUNCj4+PiBob3cgInBvaW50
ZXJzIG9mIGRpZmZlcmVudCBvYmplY3RzIiBjb3VsZCBiZSBpbnZvbHZlZCBoZXJlOiBJdCdzIGFs
bCB3aXRoaW4NCj4+PiAqcGFyYW1zLCBpc24ndCBpdD8NCj4+IEhhcmQgdG8gc2F5IHNvbWV0aGlu
Zy4gTGV0J3MgaG9sZCB0aGlzIHNvIGZhci4NCj4+DQo+Pj4NCj4+PiBGaW5hbGx5LCB3aGVuIHRv
dWNoaW5nIHN1Y2ggY29kZSBpdCB3b3VsZCBiZSBuaWNlIGlmIHU8Tj4gd2FzIGNvbnZlcnRlZCB0
bw0KPj4+IHVpbnQ8Tj5fdC4NCj4+Pg0KPj4+PiAtLS0gYS94ZW4vY29tbW9uL3NjaGVkL2NvcmUu
Yw0KPj4+PiArKysgYi94ZW4vY29tbW9uL3NjaGVkL2NvcmUuYw0KPj4+PiBAQCAtMzYwLDcgKzM2
MCw3IEBAIHN0YXRpYyBhbHdheXNfaW5saW5lIHZvaWQgc2NoZWRfc3Bpbl9sb2NrX2RvdWJsZSgN
Cj4+Pj4gICAgICAgIHsNCj4+Pj4gICAgICAgICAgICAqZmxhZ3MgPSBfc3Bpbl9sb2NrX2lycXNh
dmUobG9jazEpOw0KPj4+PiAgICAgICAgfQ0KPj4+PiAtICAgIGVsc2UgaWYgKCBsb2NrMSA8IGxv
Y2syICkNCj4+Pj4gKyAgICBlbHNlIGlmICggKHVpbnRwdHJfdClsb2NrMSA8ICh1aW50cHRyX3Qp
bG9jazIgKQ0KDQpDb3VsZCB3ZSBhc3N1bWUgdGhhdCB0aGVzZSAnbG9jazEnIGFuZCAnbG9jazIn
IHBvaW50ZXJzIGJlbG9uZyB0byB0aGUgDQpzYW1lIGFsbG9jYXRpb24gcmVnaW9uIC0gJ3NjaGVk
X3Jlc291cmNlJyA/DQoNCkRteXRyby4NCg0KPj4+DQo+Pj4gU2ltaWxhcmx5LCBubyBtYXR0ZXIg
d2hhdCBDIG9yIE1pc3JhIG1heSBoYXZlIHRvIHNheSBoZXJlLCBpbW8gc3VjaCBjYXN0cyBhcmUN
Cj4+PiBzaW1wbHkgZGFuZ2Vyb3VzLiBFc3BlY2lhbGx5IHdoZW4gb3Blbi1jb2RlZC4NCj4+IFdl
bGwsIHRoaXMgZnVuY3Rpb24gJ3NjaGVkX3NwaW5fbG9ja19kb3VibGUnIGhhcyB0aGUgZm9sbG93
aW5nIGRlc2NyaXB0aW9uOg0KPj4gIklmIGxvY2tzIGFyZSBkaWZmZXJlbnQsIHRha2UgdGhlIG9u
ZSB3aXRoIHRoZSBsb3dlciBhZGRyZXNzIGZpcnN0LiINCj4+DQo+PiBJIHRoaW5rIGl0J3Mgc2F2
ZSB0byBjb21wYXJlIHRoZSBpbnRlZ2VyIHJlcHJlc2VudGF0aW9ucyBvZiAnbG9jazEnIGFuZA0K
Pj4gJ2xvY2syJyBhZGRyZXNzZXMgZXhwbGljaXRseSAoY2FzdGluZyB0aGUgcG9pbnRlcnMgdmFs
dWVzIHRvIGFuIGludGVnZXINCj4+IHR5cGUpLiBXZSBuZWVkIHRvIGZpbmQgdGhlICdsb3dlciBh
ZGRyZXNzJy4NCj4+IEFueSByaXNrcyBoZXJlPw0KPj4NCj4+IERteXRybw0KPj4+DQo+Pj4+IC0t
LSBhL3hlbi9jb21tb24vdmlydHVhbF9yZWdpb24uYw0KPj4+PiArKysgYi94ZW4vY29tbW9uL3Zp
cnR1YWxfcmVnaW9uLmMNCj4+Pj4gQEAgLTgzLDggKzgzLDggQEAgY29uc3Qgc3RydWN0IHZpcnR1
YWxfcmVnaW9uICpmaW5kX3RleHRfcmVnaW9uKHVuc2lnbmVkIGxvbmcgYWRkcikNCj4+Pj4gICAg
ICAgIHJjdV9yZWFkX2xvY2soJnJjdV92aXJ0dWFsX3JlZ2lvbl9sb2NrKTsNCj4+Pj4gICAgICAg
IGxpc3RfZm9yX2VhY2hfZW50cnlfcmN1ICggaXRlciwgJnZpcnR1YWxfcmVnaW9uX2xpc3QsIGxp
c3QgKQ0KPj4+PiAgICAgICAgew0KPj4+PiAtICAgICAgICBpZiAoICh2b2lkICopYWRkciA+PSBp
dGVyLT50ZXh0X3N0YXJ0ICYmDQo+Pj4+IC0gICAgICAgICAgICAgKHZvaWQgKilhZGRyIDwgIGl0
ZXItPnRleHRfZW5kICkNCj4+Pj4gKyAgICAgICAgaWYgKCBhZGRyID49ICh1bnNpZ25lZCBsb25n
KWl0ZXItPnRleHRfc3RhcnQgJiYNCj4+Pj4gKyAgICAgICAgICAgICBhZGRyIDwgICh1bnNpZ25l
ZCBsb25nKWl0ZXItPnRleHRfZW5kICkNCj4+Pg0KPj4+IENvbnNpZGVyaW5nIGZ1cnRoZXIgY2Fz
dHMgdG8gdW5zaWduZWQgbG9uZyBvZiB0aGUgc2FtZSBzdHJ1Y3QgZmllbGRzLCB3YXMgaXQNCj4+
PiBjb25zaWRlcmVkIHRvIGFsdGVyIHRoZSB0eXBlIG9mIHRoZSBzdHJ1Y3QgZmllbGRzIGluc3Rl
YWQ/DQo+PiBUaGVyZSBhcmUgcHJlc2VudCBjYXN0cyBvZiBzdHJ1Y3QgZmllbGRzICd0ZXh0X3N0
YXJ0JyBhbmQgJ3RleHRfZW5kJyBpbg0KPj4gdGhlIGZpbGUgJ3hlbi9jb21tb24vdmlydHVhbF9y
ZWdpb24uYycuDQo+Pg0KPj4gICAgICAgICAgIG1vZGlmeV94ZW5fbWFwcGluZ3NfbGl0ZSgodW5z
aWduZWQgbG9uZylyZWdpb24tPnRleHRfc3RhcnQsDQo+PiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICh1bnNpZ25lZCBsb25nKXJlZ2lvbi0+dGV4dF9lbmQsDQo+PiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBBR0VfSFlQRVJWSVNPUl9SV1gpOw0KPj4NCj4+
IENoYW5naW5nIGZpZWxkcyB0eXBlIHRvICd1bnNpZ25lZCBsb25nJyB3aWxsIGdpdmUgdGhlIG9w
cG9ydHVuaXR5IHRvDQo+PiByZW1vdmUgY2FzdHMgZnJvbSBzb3VyY2UgY29kZSAobWVudGlvbmVk
IGJlZm9yZSksDQo+PiBhbmQgcmVtb3ZlICcodm9pZCopJyBjYXN0cyBmcm9tIGhlcmU6DQo+Pg0K
Pj4gICAgICAgICAgIGlmICggKHZvaWQgKilhZGRyID49IGl0ZXItPnRleHRfc3RhcnQgJiYNCj4+
ICAgICAgICAgICAgICAgICh2b2lkICopYWRkciA8ICBpdGVyLT50ZXh0X2VuZCApDQo+Pg0KPj4g
VW5mb3J0dW5hdGVseSB0aGVyZSBhcmUgcGxhY2VzIHdoZXJlIHRoZXNlIGZpZWxkcyBhcmUgaW5p
dGlhbGl6ZWQsIHNvDQo+PiBjYXN0IHRvIHRoZSAndW5zaWduZWQgbG9uZycgc2hvdWxkIGJlIHRo
ZXJlLg0KPj4gRXhhbXBsZToNCj4+ICAgICAgIC50ZXh0X3N0YXJ0ID0gX3Npbml0dGV4dCwNCj4+
ICAgICAgIC50ZXh0X2VuZCA9IF9laW5pdHRleHQsDQo+PiBhbmQNCj4+ICAgICAgIC50ZXh0X3N0
YXJ0ID0gX3Npbml0dGV4dCwNCj4+ICAgICAgIC50ZXh0X2VuZCA9IF9laW5pdHRleHQsDQo+Pg0K
Pj4gd2hlcmUNCj4+ICAgICAgIGV4dGVybiBjaGFyIF9zaW5pdHRleHRbXSwgX2Vpbml0dGV4dFtd
Ow0KPj4gICAgICAgZXh0ZXJuIGNoYXIgX3N0ZXh0W10sIF9ldGV4dFtdOw0KPj4NCj4gDQo+IEV2
ZXJ5dGhpbmcgcmVsYXRlZCB0byBzdGV4dC9ldGV4dCwgc2luaXR0ZXh0L2Vpbml0dGV4dCwgZXRj
IHNob3VsZCBiZQ0KPiBkZXZpYXRlZCBhcyB0aG9zZSBhcmUgbm90IGV2ZW4gcG9pbnRlcnM6IHRo
ZXkgYXJlIGxpbmtlciBzeW1ib2xzLiBBbHNvLA0KPiB0aGV5IGRvIHJlZmVyIHRvIHRoZSBzYW1l
ICJvYmplY3QiOiB0aGUgWGVuIHRleHQuDQo=


From xen-devel-bounces@lists.xenproject.org Wed Aug 20 09:25:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Aug 2025 09:25:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087272.1445365 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uof4q-0003Av-AE; Wed, 20 Aug 2025 09:25:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087272.1445365; Wed, 20 Aug 2025 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 1uof4q-0003Ao-7Y; Wed, 20 Aug 2025 09:25:52 +0000
Received: by outflank-mailman (input) for mailman id 1087272;
 Wed, 20 Aug 2025 09:25:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=/z1b=3A=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1uof4p-0003Ai-2O
 for xen-devel@lists.xenproject.org; Wed, 20 Aug 2025 09:25:51 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a8812ea9-7da7-11f0-b898-0df219b8e170;
 Wed, 20 Aug 2025 11:25:49 +0200 (CEST)
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 79AE51F391;
 Wed, 20 Aug 2025 09:25:48 +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 E916D13867;
 Wed, 20 Aug 2025 09:25:47 +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 R61SN5uUpWjEfAAAD6G6ig
 (envelope-from <jgross@suse.com>); Wed, 20 Aug 2025 09:25: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>
X-Inumbo-ID: a8812ea9-7da7-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1755681948; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=ZVsl+kO4348PLGNsi5LOc+2ouykw3LEDQYE212TJFzU=;
	b=dib1sI8ueOriCYnR11ObFcjYQX0uP6ttTNORSewn1TduYE6D+3mjNkxZMEMpjTiVNUonsA
	TL26fEFBOecy02i0dTpRcofEMODDhtvtHO2wcOfEiO0BzezuJkY7E2+gUBVuOk8m68YiAd
	hD2gYluvCUGA+3LOfoj6nwCfis7FAYo=
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1755681948; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=ZVsl+kO4348PLGNsi5LOc+2ouykw3LEDQYE212TJFzU=;
	b=dib1sI8ueOriCYnR11ObFcjYQX0uP6ttTNORSewn1TduYE6D+3mjNkxZMEMpjTiVNUonsA
	TL26fEFBOecy02i0dTpRcofEMODDhtvtHO2wcOfEiO0BzezuJkY7E2+gUBVuOk8m68YiAd
	hD2gYluvCUGA+3LOfoj6nwCfis7FAYo=
Message-ID: <706acf95-4871-4ce7-897e-397672f6738b@suse.com>
Date: Wed, 20 Aug 2025 11:25:46 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] misra: address MISRA C Rule 18.3 compliance
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Jan Beulich
 <jbeulich@suse.com>, Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: Doug Goldstein <cardoe@cardoe.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>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Dario Faggioli <dfaggioli@suse.com>,
 George Dunlap <gwd@xenproject.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <c9fb095c43edfedfd6174284bac404ec9ae5523d.1753263957.git.dmytro_prokopchuk1@epam.com>
 <6c7341a2-fd49-40de-8ad3-e7980d4e9e42@suse.com>
 <36042f23-7795-4717-be4a-cd22e52b3145@epam.com>
 <alpine.DEB.2.22.394.2507291507580.468590@ubuntu-linux-20-04-desktop>
 <e7b30994-3c36-44f8-9d14-4a4a5c0df7f8@epam.com>
Content-Language: en-US
From: Juergen Gross <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <e7b30994-3c36-44f8-9d14-4a4a5c0df7f8@epam.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------sMM7EpCYQZflXcaOGyFKBWo6"
X-Spam-Level: 
X-Spamd-Result: default: False [-5.20 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	SIGNED_PGP(-2.00)[];
	MIME_BASE64_TEXT_BOGUS(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	NEURAL_HAM_SHORT(-0.20)[-0.992];
	MIME_BASE64_TEXT(0.10)[];
	MIME_UNKNOWN(0.10)[application/pgp-keys];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	RCPT_COUNT_TWELVE(0.00)[15];
	ARC_NA(0.00)[];
	MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	TO_DN_EQ_ADDR_SOME(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	TO_DN_SOME(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	MID_RHS_MATCH_FROM(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:mid,imap1.dmz-prg2.suse.org:helo];
	HAS_ATTACHMENT(0.00)[]
X-Spam-Flag: NO
X-Spam-Score: -5.20

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------sMM7EpCYQZflXcaOGyFKBWo6
Content-Type: multipart/mixed; boundary="------------hiF00SHuw7fUcJXZlXN0d2TZ";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Jan Beulich
 <jbeulich@suse.com>, Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: Doug Goldstein <cardoe@cardoe.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>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Dario Faggioli <dfaggioli@suse.com>,
 George Dunlap <gwd@xenproject.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Message-ID: <706acf95-4871-4ce7-897e-397672f6738b@suse.com>
Subject: Re: [PATCH] misra: address MISRA C Rule 18.3 compliance
References: <c9fb095c43edfedfd6174284bac404ec9ae5523d.1753263957.git.dmytro_prokopchuk1@epam.com>
 <6c7341a2-fd49-40de-8ad3-e7980d4e9e42@suse.com>
 <36042f23-7795-4717-be4a-cd22e52b3145@epam.com>
 <alpine.DEB.2.22.394.2507291507580.468590@ubuntu-linux-20-04-desktop>
 <e7b30994-3c36-44f8-9d14-4a4a5c0df7f8@epam.com>
In-Reply-To: <e7b30994-3c36-44f8-9d14-4a4a5c0df7f8@epam.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=

--------------hiF00SHuw7fUcJXZlXN0d2TZ
Content-Type: multipart/mixed; boundary="------------7MFePeqXEsoUE0gKXSXxsr8n"

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

T24gMjAuMDguMjUgMTE6MTgsIERteXRybyBQcm9rb3BjaHVrMSB3cm90ZToNCj4gDQo+IA0K
PiBPbiA3LzMwLzI1IDAxOjA5LCBTdGVmYW5vIFN0YWJlbGxpbmkgd3JvdGU6DQo+PiBPbiBG
cmksIDI1IEp1bCAyMDI1LCBEbXl0cm8gUHJva29wY2h1azEgd3JvdGU6DQo+Pj4gT24gNy8y
My8yNSAxNjo1OCwgSmFuIEJldWxpY2ggd3JvdGU6DQo+Pj4+IE9uIDIzLjA3LjIwMjUgMTI6
MTIsIERteXRybyBQcm9rb3BjaHVrMSB3cm90ZToNCj4+Pj4+IC0tLSBhL2F1dG9tYXRpb24v
ZWNsYWlyX2FuYWx5c2lzL0VDTEFJUi9kZXZpYXRpb25zLmVjbA0KPj4+Pj4gKysrIGIvYXV0
b21hdGlvbi9lY2xhaXJfYW5hbHlzaXMvRUNMQUlSL2RldmlhdGlvbnMuZWNsDQo+Pj4+PiBA
QCAtNTY4LDYgKzU2OCwxNCBAQCBDOTkgVW5kZWZpbmVkIEJlaGF2aW91ciA0NTogUG9pbnRl
cnMgdGhhdCBkbyBub3QgcG9pbnQgaW50bywgb3IganVzdCBiZXlvbmQsIHRoZQ0KPj4+Pj4g
ICAgIC1jb25maWc9TUMzQTIuUjE4LjIscmVwb3J0cys9e3NhZmUsICJhbnlfYXJlYShhbnlf
bG9jKGFueV9leHAobWFjcm8oXnBhZ2VfdG9fbWZuJCkpKSkifQ0KPj4+Pj4gICAgIC1kb2Nf
ZW5kDQo+Pj4+PiAgICAgDQo+Pj4+PiArLWRvY19iZWdpbj0iQ29uc2lkZXIgcmVsYXRpb25h
bCBwb2ludGVyIGNvbXBhcmlzb25zIGluIGtlcm5lbC1yZWxhdGVkIHNlY3Rpb25zIGFzIHNh
ZmUgYW5kIGNvbXBsaWFudC4iDQo+Pj4+PiArLWNvbmZpZz1NQzNSMS5SMTguMyxyZXBvcnRz
Kz17c2FmZSwgImFueV9hcmVhKGFueV9sb2MoYW55X2V4cChtYWNybyhuYW1lKGlzX2tlcm5l
bHx8aXNfa2VybmVsX3RleHR8fGlzX2tlcm5lbF9yb2RhdGF8fGlzX2tlcm5lbF9pbml0dGV4
dCkpKSkpIn0NCj4+Pj4+ICstZG9jX2VuZA0KPj4+Pj4gKw0KPj4+Pj4gKy1kb2NfYmVnaW49
IkFsbG93IGRldmlhdGlvbnMgZm9yIHBvaW50ZXIgY29tcGFyaXNvbnMgaW4gQlVHX09OIGFu
ZCBBU1NFUlQgbWFjcm9zLCB0cmVhdGluZyB0aGVtIGFzIHNhZmUgZm9yIGRlYnVnZ2luZyBh
bmQgdmFsaWRhdGlvbi4iDQo+Pj4+PiArLWNvbmZpZz1NQzNSMS5SMTguMyxyZXBvcnRzKz17
c2FmZSwgImFueV9hcmVhKGFueV9sb2MoYW55X2V4cChtYWNybyhuYW1lKEJVR19PTnx8QVNT
RVJUKSkpKSkifQ0KPj4+Pj4gKy1kb2NfZW5kDQo+Pj4+DQo+Pj4+IE5pdDogRHJvcCAiZGV2
aWF0aW9ucyBmb3IiIGZyb20gdGhlIHZlcmJhbCBkZXNjcmlwdGlvbj8NCj4+PiBPay4NCj4+
Pg0KPj4+Pg0KPj4+Pj4gLS0tIGEveGVuL2FyY2gveDg2L2VmaS9lZmktYm9vdC5oDQo+Pj4+
PiArKysgYi94ZW4vYXJjaC94ODYvZWZpL2VmaS1ib290LmgNCj4+Pj4+IEBAIC00NjEsNyAr
NDYxLDggQEAgc3RhdGljIHZvaWQgX19pbml0IGVmaV9hcmNoX2VkZCh2b2lkKQ0KPj4+Pj4g
ICAgICAgICAgICAgICAgICAgICBwYXJhbXMtPmRldmljZV9wYXRoX2luZm9fbGVuZ3RoID0N
Cj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihzdHJ1Y3QgZWRkX2Rldmlj
ZV9wYXJhbXMpIC0NCj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKHN0
cnVjdCBlZGRfZGV2aWNlX3BhcmFtcywga2V5KTsNCj4+Pj4+IC0gICAgICAgICAgICAgICAg
Zm9yICggcCA9IChjb25zdCB1OCAqKSZwYXJhbXMtPmtleTsgcCA8ICZwYXJhbXMtPmNoZWNr
c3VtOyArK3AgKQ0KPj4+Pj4gKyAgICAgICAgICAgICAgICBmb3IgKCBwID0gKGNvbnN0IHU4
ICopJnBhcmFtcy0+a2V5Ow0KPj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAodWludHB0
cl90KXAgPCAodWludHB0cl90KSZwYXJhbXMtPmNoZWNrc3VtOyArK3AgKQ0KPj4+Pg0KPj4+
PiBUaGVyZSBtZXJlIGFkZGl0aW9uIG9mIHN1Y2ggY2FzdHMgbWFrZXMgY29kZSBtb3JlIGZy
YWdpbGUgaW1vLiBXaGF0IGFib3V0IHRoZQ0KPj4+PiBhbHRlcm5hdGl2ZSBvZiB1c2luZyAh
PSBpbnN0ZWFkIG9mIDwgaGVyZT8gSSBjZXJ0YWlubHkgcHJlZmVyIDwgaW4gc3VjaCBzaXR1
YXRpb25zLA0KPj4+PiBidXQgZnVuY3Rpb25hbGx5ICE9IG91Z2h0IHRvIGJlIGVxdWl2YWxl
bnQgKGFuZCBsZXNzIGNvbnN0cmFpbmVkIGJ5IEMgYW5kIE1pc3JhKS4NCj4+Pj4NCj4+Pj4g
QXMgbWVudGlvbmVkIHNldmVyYWwgdGltZXMgd2hlbiBkaXNjdXNzaW5nIHRoZXNlIHJ1bGVz
LCBpdCdzIGFsc28gbm90IGVhc3kgdG8gc2VlDQo+Pj4+IGhvdyAicG9pbnRlcnMgb2YgZGlm
ZmVyZW50IG9iamVjdHMiIGNvdWxkIGJlIGludm9sdmVkIGhlcmU6IEl0J3MgYWxsIHdpdGhp
bg0KPj4+PiAqcGFyYW1zLCBpc24ndCBpdD8NCj4+PiBIYXJkIHRvIHNheSBzb21ldGhpbmcu
IExldCdzIGhvbGQgdGhpcyBzbyBmYXIuDQo+Pj4NCj4+Pj4NCj4+Pj4gRmluYWxseSwgd2hl
biB0b3VjaGluZyBzdWNoIGNvZGUgaXQgd291bGQgYmUgbmljZSBpZiB1PE4+IHdhcyBjb252
ZXJ0ZWQgdG8NCj4+Pj4gdWludDxOPl90Lg0KPj4+Pg0KPj4+Pj4gLS0tIGEveGVuL2NvbW1v
bi9zY2hlZC9jb3JlLmMNCj4+Pj4+ICsrKyBiL3hlbi9jb21tb24vc2NoZWQvY29yZS5jDQo+
Pj4+PiBAQCAtMzYwLDcgKzM2MCw3IEBAIHN0YXRpYyBhbHdheXNfaW5saW5lIHZvaWQgc2No
ZWRfc3Bpbl9sb2NrX2RvdWJsZSgNCj4+Pj4+ICAgICAgICAgew0KPj4+Pj4gICAgICAgICAg
ICAgKmZsYWdzID0gX3NwaW5fbG9ja19pcnFzYXZlKGxvY2sxKTsNCj4+Pj4+ICAgICAgICAg
fQ0KPj4+Pj4gLSAgICBlbHNlIGlmICggbG9jazEgPCBsb2NrMiApDQo+Pj4+PiArICAgIGVs
c2UgaWYgKCAodWludHB0cl90KWxvY2sxIDwgKHVpbnRwdHJfdClsb2NrMiApDQo+IA0KPiBD
b3VsZCB3ZSBhc3N1bWUgdGhhdCB0aGVzZSAnbG9jazEnIGFuZCAnbG9jazInIHBvaW50ZXJz
IGJlbG9uZyB0byB0aGUNCj4gc2FtZSBhbGxvY2F0aW9uIHJlZ2lvbiAtICdzY2hlZF9yZXNv
dXJjZScgPw0KDQpObywgdGhleSBjYW4gYmUgZWl0aGVyIGluIHNjaGVkX3Jlc291cmNlLCBp
biBhIHBlci1zY2hlZHVsZXIgcHJpdmF0ZSBtZW1vcnkNCmFyZWEsIG9yIGV2ZW4gaW4gdGhl
IC5kYXRhIHNlY3Rpb24gb2YgdGhlIGh5cGVydmlzb3IuDQoNCg0KSnVlcmdlbg0K
--------------7MFePeqXEsoUE0gKXSXxsr8n
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-----

--------------7MFePeqXEsoUE0gKXSXxsr8n--

--------------hiF00SHuw7fUcJXZlXN0d2TZ--

--------------sMM7EpCYQZflXcaOGyFKBWo6
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/Ey8FAmillJsFAwAAAAAACgkQsN6d1ii/Ey+W
xQf9F34VQdX8xt2lQvs5WEpa75+x1TY1/kFsvR0Lkg2HWWul3FL7IspP3u4Jw9sAhTPmE/1qmGDf
wGaqoil9OaJ2MtN+UdPfbU4fPcP1xMIqH3AaH5XAi2IIgOgIBZo+C+NyWp+y0tDD9jXzWsH4sI9C
tJUvcF4/U0/O7DcsG1im3baIQz30gSwF5CBwcOP/Lul4YyPwvDeKjbjmI0Nqj6b8QfiooTCbv3lb
VnHopj+w93eN3UZiwkXnvVF+Z8d/uGp7jaaGbrXoBl8b611uVwFiKWw3yTk1MHz9g6EURXh4uBJS
yTCH0VAXU14ymE9qMAD40OloekA34QNZoI51Swo9yg==
=0z4G
-----END PGP SIGNATURE-----

--------------sMM7EpCYQZflXcaOGyFKBWo6--


From xen-devel-bounces@lists.xenproject.org Wed Aug 20 10:46:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Aug 2025 10:46:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087296.1445375 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uogKo-0004hH-3K; Wed, 20 Aug 2025 10:46:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087296.1445375; Wed, 20 Aug 2025 10:46: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 1uogKo-0004hA-0R; Wed, 20 Aug 2025 10:46:26 +0000
Received: by outflank-mailman (input) for mailman id 1087296;
 Wed, 20 Aug 2025 10:46:24 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=/z1b=3A=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1uogKm-0004h4-FP
 for xen-devel@lists.xenproject.org; Wed, 20 Aug 2025 10:46:24 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e8a5170c-7db2-11f0-b898-0df219b8e170;
 Wed, 20 Aug 2025 12:46:22 +0200 (CEST)
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 9602E1FD4E;
 Wed, 20 Aug 2025 10:46:20 +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 5CD1E1368B;
 Wed, 20 Aug 2025 10:46:20 +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 XBygFHynpWiSFgAAD6G6ig
 (envelope-from <jgross@suse.com>); Wed, 20 Aug 2025 10:46: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>
X-Inumbo-ID: e8a5170c-7db2-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1755686780; 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=S+9WzjEJVK6MpKC6Xk2m9qDPN9nowHIKblDbMTPY+l4=;
	b=MOYCY2YTBWyjpicvAhEJs9asxfQqKnCKcgNc+ZlJdlLMXCIqnHCmL/7naRQRqZQMWtDcBw
	USJIwBvSyP6pr61yXqY5s/cE5nUcYxmJJ3AtE/GjifFlWx9lxamzyM31b77Jg2QyIV5RQr
	qTeojizx8W1Jk8Ow/I9/BjuRZ2rDaRc=
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1755686780; 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=S+9WzjEJVK6MpKC6Xk2m9qDPN9nowHIKblDbMTPY+l4=;
	b=MOYCY2YTBWyjpicvAhEJs9asxfQqKnCKcgNc+ZlJdlLMXCIqnHCmL/7naRQRqZQMWtDcBw
	USJIwBvSyP6pr61yXqY5s/cE5nUcYxmJJ3AtE/GjifFlWx9lxamzyM31b77Jg2QyIV5RQr
	qTeojizx8W1Jk8Ow/I9/BjuRZ2rDaRc=
From: Juergen Gross <jgross@suse.com>
To: xen-devel@lists.xenproject.org
Cc: Juergen Gross <jgross@suse.com>,
	Julien Grall <julien@xen.org>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH] tools/xenstored: fix possible NULL deref
Date: Wed, 20 Aug 2025 12:46:17 +0200
Message-ID: <20250820104617.5268-1-jgross@suse.com>
X-Mailer: git-send-email 2.43.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)[-0.999];
	MIME_GOOD(-0.10)[text/plain];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	MIME_TRACE(0.00)[0:+];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	ARC_NA(0.00)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	RCVD_TLS_ALL(0.00)[];
	RCPT_COUNT_THREE(0.00)[4];
	FROM_HAS_DN(0.00)[];
	TO_DN_SOME(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email,suse.com:mid]
X-Spam-Flag: NO
X-Spam-Score: -2.80

Avoid dereferencing NULL in introduce_domain() when called during
live update.

Coverity ID: 1665111
Fixes: f78895ad78c9 ("tools/xenstored: Read event channel from xenstored page")

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 tools/xenstored/domain.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/xenstored/domain.c b/tools/xenstored/domain.c
index 694d68670a..5ce539d640 100644
--- a/tools/xenstored/domain.c
+++ b/tools/xenstored/domain.c
@@ -1032,7 +1032,7 @@ static struct domain *introduce_domain(const void *ctx,
 		if (!interface && !restore)
 			return NULL;
 
-		if (interface->evtchn_port)
+		if (!restore && interface->evtchn_port)
 			port = interface->evtchn_port;
 
 		if (new_domain(domain, port, restore)) {
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Aug 20 10:47:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Aug 2025 10:47:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087303.1445385 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uogLy-0005A1-By; Wed, 20 Aug 2025 10:47:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087303.1445385; Wed, 20 Aug 2025 10:47:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uogLy-00059u-9J; Wed, 20 Aug 2025 10:47:38 +0000
Received: by outflank-mailman (input) for mailman id 1087303;
 Wed, 20 Aug 2025 10:47:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=qmnz=3A=gmail.com=w1benny@srs-se1.protection.inumbo.net>)
 id 1uogLx-00052a-6y
 for xen-devel@lists.xenproject.org; Wed, 20 Aug 2025 10:47:37 +0000
Received: from mail-oa1-x31.google.com (mail-oa1-x31.google.com
 [2001:4860:4864:20::31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1525f06a-7db3-11f0-a32b-13f23c93f187;
 Wed, 20 Aug 2025 12:47:36 +0200 (CEST)
Received: by mail-oa1-x31.google.com with SMTP id
 586e51a60fabf-30cceb3864aso641111fac.2
 for <xen-devel@lists.xenproject.org>; Wed, 20 Aug 2025 03:47: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>
X-Inumbo-ID: 1525f06a-7db3-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1755686855; x=1756291655; 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=9etWxezhAaAF0Ea1VJDYZxwEpb3zoaddms27rr/aeHc=;
        b=Rcvtz70Yw4DuhudR1j9ZaxkzsM34OL+hBLxQwZtoLymnFZXWwhqmJermxW+gXjSUkA
         1lUNzCep+URJHCMT02lZulNegT/SdUcAxIDoBNDywegodmZVRCia1vr5iMxf6mj10i5A
         9M9XTf4k0qqS+/schZ3Geo2PCzwu6oEOnAFVKnt7vONR90eUgZ+Rkm5FD0SQREGxNV+/
         8VkPABSO71O2e6milzuZL0RD2lmrYwCRAUp7Nf6lkyQejVKylX0Hux8uQHfZniW7NTzw
         A6ZyYxL0BuEf/RALzC/K1IpNFeU1cCI6X+uflcE7ejZyUt77pygyIgoDxlBMR9eRwENP
         6HIw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755686855; x=1756291655;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=9etWxezhAaAF0Ea1VJDYZxwEpb3zoaddms27rr/aeHc=;
        b=bM0G4E5MupeRWVqIuYnji6VXRCqaM7sRKNDXcU7RRNeDW8M9uE5QbD/mq9ooPZbNUd
         +d/TNiqAm8XxO9BdT2jzJOaTXFhLhbEEbxSTNKXiu+hgR9JCoGx07OL0p/he7n4PTUAm
         sh0ySLB1UvijoENlyU/9rYEOiO3ByQu4oZBYEDazN/+r6z9qxqqzhnYwOfUGShCk0cie
         IUBwVQPyXCezeaMrH+cjvNrldVAPvCkiccsqqypvNp0IYjXdZRA0DbAruLkvOcv/lPlC
         f+l9JUG4f3O8cFgGWeJC+0te0EWeXs4UMtL8zwZWVPmuM72fVVbeVfY8LY7UPsN2xkJe
         jxXg==
X-Gm-Message-State: AOJu0YzwROrCO83xdXLTgytBRg+TQy/755n06+fMaW4qyhq023iCyeGL
	cMb3NMq84gGpm4EIQh/JzoM9djLEjUPHaZTT+zeIsHN+nroOnkphC0k37nAyGFR2BwQtLTSJJRF
	qjSrWVCrCpnV+Z4vsXOJlWxl9c6Hw1/7ysw==
X-Gm-Gg: ASbGncvSJeUiJjMT1jUPsAJYqG+gcX0QgNoeh4U2mX/laf0tBmZ3vTz12Ye0ty/cwrv
	UB5YqiVg6NJGwwXC8Njy8pwu3klCMcw54LTv6nBuSWr3yTrtJJEttx6kWV6qXRe8TPbKDu7JSpn
	bVIRLVHkv6zIev7SA3OH+XNyOk5tbk7CdhhH97iMMH01Y1Fb1uFQpzXnfH0PyAgREBBRPhza8lg
	LD2grx0VcXs7qWSYb1GVyDvlcE0tPNRfEAClAYv
X-Google-Smtp-Source: AGHT+IGpsoWcd1Bmgi+N51BrG1BSVgctU6F020xvqjGLIZCRmGzB/eoTYCYCsIsXx5q1PGIW84HSRqRZbfH4+0pjzRE=
X-Received: by 2002:a05:6808:6d81:b0:404:a28c:ca53 with SMTP id
 5614622812f47-43771f10d15mr639228b6e.0.1755686854634; Wed, 20 Aug 2025
 03:47:34 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1753953832.git.w1benny@gmail.com>
In-Reply-To: <cover.1753953832.git.w1benny@gmail.com>
From: =?UTF-8?Q?Petr_Bene=C5=A1?= <w1benny@gmail.com>
Date: Wed, 20 Aug 2025 12:47:23 +0200
X-Gm-Features: Ac12FXxYl83BJ0yF35i4xwoTS_kTA2Aef5V6Nkax9m5KwI7cj1eK8LPZ60nRDVQ
Message-ID: <CAKBKdXiKpsmmcGR6A3jEfHSPBE4eG=9uyBzZTW21seGUuzzi0A@mail.gmail.com>
Subject: Ping: [PATCH v12 0/6] x86: Make MAX_ALTP2M configurable
To: Xen-devel <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>, 
	Shawn Anastasio <sanastasio@raptorengineering.com>, 
	Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman <bobbyeshleman@gmail.com>, 
	Connor Davis <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>, 
	Tamas K Lengyel <tamas@tklengyel.com>, Alexandru Isaila <aisaila@bitdefender.com>, 
	Petre Pircalabu <ppircalabu@bitdefender.com>, Juergen Gross <jgross@suse.com>, 
	Christian Lindig <christian.lindig@citrix.com>, David Scott <dave@recoil.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, Jul 31, 2025 at 11:28=E2=80=AFAM Petr Bene=C5=A1 <w1benny@gmail.com=
> wrote:
>
> From: Petr Bene=C5=A1 <w1benny@gmail.com>
>
> This series introduces the ability to configure the maximum number of alt=
p2m
> tables during domain creation. Previously, the limits were hardcoded to a
> maximum of 10. This change allows for greater flexibility in environments=
 that
> require more or fewer altp2m views.
>
> This enhancement is particularly relevant for users leveraging Xen's feat=
ures
> for virtual machine introspection.
>
> Changes since v11:
> - altp2m: Drop p2m_altp2m_check() stubs on non-x86, move prototype, and g=
uard
>   uses
>     - s/following/subsequent/ in the commit message + Reviewed-by: Jan Be=
ulich
>     - Despite agreeing to let Jan make this change, this commit wasn't st=
ill in
>       the staging branch at the time of sending this patch.
>
> - x86/altp2m: Wrap altp2m-specific code in #ifdef CONFIG_ALTP2M
>     - Change typo #else /* !CONFIG_HVM */ -> #else /* !CONFIG_ALTP2M */ i=
n p2m.h
>     - Move p2m_altp2m_get_or_propagate & p2m_altp2m_propagate_change outs=
ide of
>       #ifdef CONFIG_ALTP2M / #else / #endif and added comment mentioning =
that
>       these altp2m declarations are outside of the #ifdef scope intention=
ally.
>
> Changes since v10:
> - x86/altp2m: Remove p2m_altp2m_check stubs from unsupported architecture=
s
>     - (now "altp2m: drop p2m_altp2m_check() stubs on non-x86, move protot=
ype,
>        and guard uses").
>     - Changed commit message to reflect new changes.
>     - Removed p2m_altp2m_check from x86/include/asm/p2m.h.
>     - Introduced p2m_altp2m_check in xen/include/xen/p2m-common.h.
>     - Replaced #ifdef CONFIG_ALTP2M with IS_ENABLED(CONFIG_ALTP2M) in
>       vm_event.c.
>
> - x86/altp2m: Wrap altp2m-specific code in #ifdef CONFIG_ALTP2M
>     - Added `else if ( IS_ENABLED(CONFIG_ALTP2M) )` before calling
>       hvm_fast_singlestep in vm_event_toggle_singlestep, to make sure tha=
t
>       hvm_fast_singlestep is unreachable when ALTP2M=3Dn.
>
>       Also, the #ifdef CONFIG_ALTP2M inside hvm_fast_singlestep was moved=
 to be
>       _outside_ the function (wrapping it entirely).
>
>     - Removed formatting of the hvmemul_vmfunc function header + moved
>       the #ifdef to be inside the function body.
>
>     - Removed altp2m_vcpu_update_{p2m,vmfunc_ve}() declarations
>       from hvm.h, since they are not used when CONFIG_ALTP2M is not set.
>
> - xen: Make the maximum number of altp2m views configurable for x86
>     - In do_altp2m_op, -EOPNOTSUPP is now returned when nr_altp2m =3D=3D =
0, instead
>       of -EINVAL.
>
>     - Removed stray empty lines that were introduced in
>       p2m_mem_access_emulate_check & p2m_mem_access_check.
>
> Changes since v9:
> - Introduced 3 more patches:
>   - x86/p2m: Short-circuit p2m_is_altp2m() when CONFIG_ALTP2M=3Dn
>     - Needed to optimize out `if ( p2m_is_altp2m(p2m) )` when CONFIG_ALTP=
2M=3Dn.
>   - x86/altp2m: Remove p2m_altp2m_check stubs from unsupported architectu=
res
>     - Removes p2m_altp2m_check stubs from archs that don't support altp2m=
.
>   - x86/altp2m: Wrap altp2m-specific code in #ifdef CONFIG_ALTP2M
>     - Self-explanatory - based on Jans review suggestion
> - Small changes based on review:
>   - if ( v->domain->nr_altp2m =3D=3D 0 ) -> if ( !v->domain->nr_altp2m )
>   - removed unnecessary condition in p2m_teardown_altp2m
>   - Added ASSERT(!config->altp2m.nr) when CONFIG_ALTP2M=3Dn in domain_cre=
ate
>
> Changes since v8:
> - Removed 1st patch, which was already applied.
> - Removed Reviewed-by from "tools/xl: Add altp2m_count parameter" patch.
> - (No code changes)
>
> Changes since v7:
> - Fix condition in libxl_create.c that caused assertions in CI.
> - Removed incorrect mention of introduction of hvm_altp2m_supported() in =
commit
>   message of patch 0004.
> - Adjust comments in altp2m_is_eptp_valid().
> - Guard ALTP2M features with CONFIG_ALTP2M where appropriate. I made my b=
est to
>   ensure that the following configurations compile correctly:
>   * CONFIG_HVM=3Dn (CONFIG_ALTP2M=3Dn implied)
>   * CONFIG_HVM=3Dy CONFIG_ALTP2M=3Dn
>   * CONFIG_HVM=3Dy CONFIG_ALTP2M=3Dy
>   * Note: Besides taking inspiration from CONFIG_MEM_SHARING &
>     CONFIG_MEM_PAGING, the reason for guards instead of wrapper methods i=
s that
>     all ALTP2M features and fields became guarded by CONFIG_ALTP2M - ther=
efore,
>     lots of code inside ALTP2M blocks would be touching inexisting fields=
.
>
>     This could be solved by introducing wrapped functions for each ALTP2M
>     field, but I believe that would be overkill.
>
> Changes since v6:
> - Rebased on top of staging
> - Added missing Acks/Reviewed-bys where appropriate.
> - No changes in patches since v6, with the exception of 0004: xen: Make t=
he
>   maximum number of altp2m views configurable for x86... which was the on=
ly
>   patch that was left unacked/not reviewed
>   - In that patch, I made changes suggested by Jan - that is:
>     - Create altp2m_is_eptp_valid function and use it in places where
>       we don't control the index
>     - Fixed a nit: "Number of altp2ms to allocate." -> "... to permit."
>     - Cosmetic: moved altp2m_vcpu_idx() in altp2m.h up, so the order of
>       functions matches with the order in the #else block
>
> Changes since v5:
> - Reverted "Introduction of accessor functions for altp2m arrays and
>   refactoring the code to use them."
>   - Reason is minimizing the code changes, and save the code consistency.
>   - I've addressed (hopefully all) issues with long lines and mismatched
>     _nospec replacements mentioned in previous reviews.
> - Removed "struct domain *d" from altp2m_vcpu_initialise/destroy.
>
> Changes since v4:
> - Rebased on top of staging (applying Roger's changes).
> - Fix mixed tabs/spaces in xenctrl_stubs.c.
> - Add missing OCaml bindings for altp2m_opts.
> - Substitute altp2m_opts into an unnamed structure. (This is a preparatio=
n for
>   the next patch that will introduce the `nr` field.)
> - altp2m.opts is then shortened to uint16_t and a new field altp2m.nr is =
added -
>   also uint16_t. This value is then verified by libxl to not exceed the m=
aximum
>   uint16_t value.
>
>   This puts a hard limit to number of altp2m to 65535, which is enough, a=
t least
>   for the time being. Also, altp2m.opts currently uses only 2 bits. There=
fore
>   I believe this change is justified.
> - Introduction of accessor functions for altp2m arrays and refactoring th=
e code
>   to use them.
> - Added a check to arm/arch_sanitise_domain_config() to disallow creating
>   domains with altp2m.nr !=3D 0.
> - Added dummy hvm_altp2m_supported() to avoid build errors when CONFIG_HV=
M is
>   disabled.
> - Finally, expose altp2m_count to OCaml bindings (and verify both altp2m_=
opts
>   and altp2m_count fit uint16_t).
> - I also removed Christian Lindig from the Acked-by, since I think this c=
hange
>   is significant enough to require a re-review.
>
> Changes since v3:
> - Rebased on top of staging (some functions were moved to altp2m.c).
> - Re-added the array_index_nospec() where it was removed.
>
> Changes since v2:
> - Changed max_altp2m to nr_altp2m.
> - Moved arch-dependent check from xen/common/domain.c to xen/arch/x86/dom=
ain.c.
> - Replaced min(d->nr_altp2m, MAX_EPTP) occurences for just d->nr_altp2m.
> - Replaced array_index_nospec(altp2m_idx, ...) for just altp2m_idx.
> - Shortened long lines.
> - Removed unnecessary comments in altp2m_vcpu_initialise/destroy.
> - Moved nr_altp2m field after max_ fields in xen_domctl_createdomain.
> - Removed the commit that adjusted the initial allocation of pages from 2=
56
>   to 1024. This means that after these patches, technically, the nr_altp2=
m will
>   be capped to (256 - 1 - vcpus - MAX_NESTEDP2M) instead of MAX_EPTP (512=
).
>   Future work will be needed to fix this.
>
> Petr Bene=C5=A1 (6):
>   altp2m: Drop p2m_altp2m_check() stubs on non-x86, move prototype, and
>     guard uses
>   x86/altp2m: Wrap altp2m-specific code in #ifdef CONFIG_ALTP2M
>   xen: Make the maximum number of altp2m views configurable for x86
>   tools/libxl: Activate the altp2m_count feature
>   xen/x86: Disallow creating domains with altp2m enabled and altp2m.nr
>     =3D=3D 0
>   tools/ocaml: Add altp2m_count parameter
>
>  tools/libs/light/libxl_create.c     |  4 ++
>  tools/ocaml/libs/xc/xenctrl.ml      |  1 +
>  tools/ocaml/libs/xc/xenctrl.mli     |  1 +
>  tools/ocaml/libs/xc/xenctrl_stubs.c | 19 ++++++--
>  xen/arch/arm/domain.c               |  2 +-
>  xen/arch/arm/include/asm/p2m.h      |  6 ---
>  xen/arch/ppc/include/asm/p2m.h      |  5 --
>  xen/arch/riscv/include/asm/p2m.h    |  5 --
>  xen/arch/x86/domain.c               | 41 +++++++++++++---
>  xen/arch/x86/hvm/emulate.c          |  4 ++
>  xen/arch/x86/hvm/hvm.c              | 18 +++++++-
>  xen/arch/x86/hvm/monitor.c          |  2 +
>  xen/arch/x86/hvm/vmx/vmx.c          | 10 +++-
>  xen/arch/x86/include/asm/altp2m.h   | 28 +++++++++--
>  xen/arch/x86/include/asm/domain.h   | 11 +++--
>  xen/arch/x86/include/asm/hvm/hvm.h  |  6 +++
>  xen/arch/x86/include/asm/hvm/vcpu.h |  4 ++
>  xen/arch/x86/include/asm/p2m.h      | 43 +++++++++--------
>  xen/arch/x86/mm/altp2m.c            | 72 +++++++++++++++--------------
>  xen/arch/x86/mm/hap/hap.c           | 12 +++--
>  xen/arch/x86/mm/mem_access.c        | 28 +++++------
>  xen/arch/x86/mm/mem_sharing.c       |  4 +-
>  xen/arch/x86/mm/p2m-ept.c           | 11 +++--
>  xen/arch/x86/mm/p2m-pt.c            |  2 +
>  xen/arch/x86/mm/p2m.c               | 17 +++++--
>  xen/arch/x86/vm_event.c             |  2 +-
>  xen/common/domain.c                 |  6 +++
>  xen/common/vm_event.c               |  3 +-
>  xen/include/public/domctl.h         |  5 +-
>  xen/include/xen/p2m-common.h        |  3 ++
>  xen/include/xen/sched.h             |  4 ++
>  31 files changed, 261 insertions(+), 118 deletions(-)
>
> --
> 2.34.1
>


From xen-devel-bounces@lists.xenproject.org Wed Aug 20 10:48:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Aug 2025 10:48:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087310.1445394 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uogMS-0005dO-Jf; Wed, 20 Aug 2025 10:48:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087310.1445394; Wed, 20 Aug 2025 10:48: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 1uogMS-0005dH-Gi; Wed, 20 Aug 2025 10:48:08 +0000
Received: by outflank-mailman (input) for mailman id 1087310;
 Wed, 20 Aug 2025 10:48:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=qmnz=3A=gmail.com=w1benny@srs-se1.protection.inumbo.net>)
 id 1uogMQ-00052a-J5
 for xen-devel@lists.xenproject.org; Wed, 20 Aug 2025 10:48:06 +0000
Received: from mail-oa1-x2f.google.com (mail-oa1-x2f.google.com
 [2001:4860:4864:20::2f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 26df0903-7db3-11f0-a32b-13f23c93f187;
 Wed, 20 Aug 2025 12:48:06 +0200 (CEST)
Received: by mail-oa1-x2f.google.com with SMTP id
 586e51a60fabf-310c2f193b0so571986fac.1
 for <xen-devel@lists.xenproject.org>; Wed, 20 Aug 2025 03:48: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>
X-Inumbo-ID: 26df0903-7db3-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1755686884; x=1756291684; 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=mE5n/uYoEfT/Ac//khvU235+HiqMMoUZP4tTrzR4Nhw=;
        b=ib5fvxmb1wKUAMGtWpNToklPpUFvs+tPBP9jC3qM2bM8j3vtazNUkTVKVh4V+cOEdh
         PfMehXlNGwrPxuKXqC3jFFBO8J6OPGpEOLqjX+WM3S3AueQKtnIzoIoHMUv+48HdChPo
         qAasTr4Z2IaYZl2DVkZlot9DlGljVPKQ08zVvk6r2m5h28koEHLOQwRktTBcVdVdumy+
         JRxq4qZnycOJs/GU80IBzyHtX0ifmP+IkLQzqemGD5nSBsvWvOKEZuZZzTmfJEEan1aq
         kQSlJdUUhFv/U0662HZ9JBwo0ag/8j2x4YeAbpjRKb0OF5JxUygJg8OzJiXD+Inqqkcp
         JQsA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755686884; x=1756291684;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=mE5n/uYoEfT/Ac//khvU235+HiqMMoUZP4tTrzR4Nhw=;
        b=N8lKTP+xF5N6YRIUDHFqHGBEU0dZDywn1h8LrJ/JNrMDCjqPsEjNHsJXLzbOX3wYXS
         YOmX8nttPB1NNOQQlPH7jvTFocIY3ipyI0zPl7ksMBMdPLtjgyGb2cMsSJzNruIGHPeU
         jFPz0nxC29JSCYsWSGi6nkbz3OTtLGP7+QbjLXNtNuocPEZZy2Ux4ij6WNDy/ZoVEWs3
         U03G6MA1mGqWgvn7DD6TfBPJBemeHyj87hz6WDibVrLq3d16CxPLsx0jJ3Blct5DU7ZO
         6RWl97Bo3SkbPlBCc9IIofL9jmb/Q8KjdO810fcBT85qyXiUREtgql3Ax3Nevp2+hl8S
         SrYQ==
X-Gm-Message-State: AOJu0YwZaMIOeMeD5S21YAtRDMtKkah3Bws8wmRIevBgGPN4iQU2nRZ2
	pmv2AUvXR12cst+dh2suNn8WopMuGaAvKGCUYC/jsYKtDWpeNHpF66Xj3glnBqafJTkAqafwvAw
	GMKRFHGNr5+p/H1kgsu6Iv8XyAY4AgNSO1g==
X-Gm-Gg: ASbGncs/Vn/BC0ntreTG94WkGjXShZYzGJKc20vsI6w2uRctaY6UCDSl6BizLplSnlW
	p4gB82TYWu3YG5b1s6CcUMDxfeJNhYh+JDUYIXg6fdPYFlsvIOZZN3ldZc2kXoTBO5QsMQy6p2U
	EqRRUW/Ju/4LkdAgssMlrJCBYNe+OegYjHjEM7v/7WtSlx81i6FqF1R5yrDIFDELiIOlcTfbat0
	GhZiEP7+omm/pf2yxoPXTHQgAG2v+4n+dPBf8Vt
X-Google-Smtp-Source: AGHT+IEHTCYjB4JshHsUtIQ6SPuIqiE8OvBvKmf7UMEkYhT2MnLCLN5fk/Qi4hkXLGA5RimhjClPXk8W3UaFYYxt1wE=
X-Received: by 2002:a05:6808:6d81:b0:404:a28c:ca53 with SMTP id
 5614622812f47-43771f10d15mr639568b6e.0.1755686884520; Wed, 20 Aug 2025
 03:48:04 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1753869323.git.w1benny@gmail.com>
In-Reply-To: <cover.1753869323.git.w1benny@gmail.com>
From: =?UTF-8?Q?Petr_Bene=C5=A1?= <w1benny@gmail.com>
Date: Wed, 20 Aug 2025 12:47:53 +0200
X-Gm-Features: Ac12FXyh236mPiqIbqgnmqUrqbFNV0g_JmmSkQTTqzG6o2YskmoDd233FPGgpCU
Message-ID: <CAKBKdXjmhBHOMpK0DFqDr78KfX4hMMn-sUT5431V3xdZQief1A@mail.gmail.com>
Subject: Ping: [PATCH v4 0/3] hvmloader: add new SMBIOS tables (7,8,9,26,27,28)
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>, 
	Andrew Cooper <andrew.cooper3@citrix.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

On Wed, Jul 30, 2025 at 11:56=E2=80=AFAM Petr Bene=C5=A1 <w1benny@gmail.com=
> wrote:
>
> From: Petr Bene=C5=A1 <w1benny@gmail.com>
>
> Changes since v3:
> - Renamed offsetofend macro to offsetof_end.
>
> Changes since v2:
> - Added sizeof_field and offsetofend macros to common-macros.h.
> - Used offsetofend macro everywhere to make semantically sense.
> - Added BUILD_BUG_ON to ensure offsets are correct based on the SMBIOS
>   specification (with explanation in the comments).
> - Fixed commit message of the second patch to mention the new smbios_pt_c=
opy
>   function.
> - Fixed nits (empty lines, misplaced *).
> - Retained the original comment "Only present when passed in" + added it =
to
>   the new tables where applicable.
> - Replaced hardcoded offset for chassis_handle in smbios_type_2_init.
>
> Changes since v1:
> - Swapped the order of S-o-b in the last commit message.
>
> Resubmitting patch from Anton Belousov and addressing review comments
> from Jan: https://old-list-archives.xen.org/archives/html/xen-devel/2022-=
01/msg00725.html
>
> Original message:
> > SMBIOS tables like 7,8,9,26,27,28 are neccessary to prevent sandbox det=
ection
> > by malware using WMI-queries. New tables can be mapped to memory from b=
inary
> > file specified in "smbios_firmware" parameter of domain configuration.
> > If particular table is absent in binary file, then it will not be mappe=
d to
> > memory. This method works for Windows domains as tables 7,8,9,26,27,28 =
are not
> > critical for OS boot and runtime. Also if "smbios_firmware" parameter i=
s not
> > provided, these tables will be skipped in write_smbios_tables function.
>
> Further explanation:
> Some malware samples are known to check presence of various hardware comp=
onents
> (like CPU fan, CPU temperature sensor, etc.) by WMI queries. If these com=
ponents
> are not present, then malware can assume that it is running in a sandbox =
and
> will not execute its payload.
>
> This patch will allow security researchers to create a custom SMBIOS
> firmware binary file that contains these tables.
>
> Petr Bene=C5=A1 (3):
>   tools: add sizeof_field and offsetof_end macros
>   hvmloader: fix SMBIOS table length checks
>   hvmloader: add new SMBIOS tables (7, 8, 9, 26, 27, 28)
>
>  tools/firmware/hvmloader/smbios.c       | 290 ++++++++++++++++++------
>  tools/firmware/hvmloader/smbios_types.h | 109 +++++++--
>  tools/include/xen-tools/common-macros.h |   5 +
>  3 files changed, 317 insertions(+), 87 deletions(-)
>
> --
> 2.34.1
>


From xen-devel-bounces@lists.xenproject.org Wed Aug 20 11:33:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Aug 2025 11:33:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087328.1445404 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoh4Z-0003oU-Pk; Wed, 20 Aug 2025 11:33:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087328.1445404; Wed, 20 Aug 2025 11:33:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoh4Z-0003oN-N0; Wed, 20 Aug 2025 11:33:43 +0000
Received: by outflank-mailman (input) for mailman id 1087328;
 Wed, 20 Aug 2025 11:33:42 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=C0ee=3A=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1uoh4Y-0003oG-Ld
 for xen-devel@lists.xenproject.org; Wed, 20 Aug 2025 11:33:42 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 854703a1-7db9-11f0-a32b-13f23c93f187;
 Wed, 20 Aug 2025 13:33:41 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-45b49f7aaf5so3270055e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 20 Aug 2025 04:33:40 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-45b47c33203sm29157125e9.9.2025.08.20.04.33.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Aug 2025 04:33: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>
X-Inumbo-ID: 854703a1-7db9-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755689620; x=1756294420; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=tC8+aRMrrdmdk2eWWpjubkkQKUHljiGEkwEiL+azZFY=;
        b=rvEaiVK6XDJ2VnhepRRTAZlS4TDXz4pwVSoL9jNRsoZIe1nwNqumQTdd8+fpiKGPj4
         +yoeMmWSqDWLfZQo7MUA5zDF5Sx10VeDdBE3XEtCHRZt2qefCV0lcgBs9DhdQME4pOR7
         CcS05d/DC6DYcVKf4Qt3LOpfG6tijV7PV4gVk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755689620; x=1756294420;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=tC8+aRMrrdmdk2eWWpjubkkQKUHljiGEkwEiL+azZFY=;
        b=gMDQ5dGDctb9DeB427PQn+TXEmIKuO66Uq+apDN8Mt6fpKXkHzLJMBkQlITm8u3VxB
         eHE3kqPhONVhpkEYTNKp4/NpgLgPq8hQczM/zOcAfuMmo1ppR0f4JFVspuKpQCLONjVM
         O3qOutho7rnAQ5nkut6/OuTBoUffxXTSWKtoS8mlQO7hGX+lIDRiapLSiv79E9n0kvmc
         btt3HLqigw0TxszkfaZMtv8YUIneNrThqsTrvvTDNiuOAVvdIoNq2l8eH4y91cFh0EqB
         SsU8FiJlN1gxeWRnIhSPamzS3ExagLt0B7YwPqs9jIbEyZXULM7AowbVxqLNKJ8/fEVX
         V78A==
X-Gm-Message-State: AOJu0Yy7hGlTRC3y6SEirNGr3CL3ntBKS1yykQzSnBZK5cAPJMw/Gfiw
	nGGvlb2kyJmPIt2emePqnkaoDx2qf1bjsbIhd9oVSrpJShF6Yu57aMaALdfKO8IyRv8=
X-Gm-Gg: ASbGncskTBE84zByVuitwAIr0+JKep2rAt6gUXYL8fnoYn3FKJaS6aOBsmV86n56JF/
	4v4s7n94NYpHMYgnTcv3kkfFSqMBhWdqEL8ajvvVqgIKQbLmQE0WPNP2JfiHn7OT0Yzjtc9cPMt
	NbaKajUy6dC7wvncTyjDO0ThD6lsklhDVCLvFRpnq7Gmd3vRDy50nLW8EYOoSVamRNFrZhPygnC
	GIHNdYg9JdxXuI8FhxYiWmk2vve7/mZIM2JO7JGttO+YRysYNL45B5XBRT+6jqQ1UT5tF7nvPta
	rfk/rCUPLTGsFLph165nk/kRqCVvTelUpbvJFep5hbva0PEjBtRKp+tlM88WIXljHLKZ01jxGgf
	BWuFPmmCqsispshVvHc/DGTrMvDIv9ld6ChvR70FTlp0nTtgl5c7QH04nqbwsH4deLw==
X-Google-Smtp-Source: AGHT+IEWev61tPtuvQ50SeYMZqYDKBYyQtR3eNer8bT7EXIIKDd0uKOYlH6SjSOKWS2NUtdYC0eF5g==
X-Received: by 2002:a05:600c:310f:b0:459:d616:25c5 with SMTP id 5b1f17b1804b1-45b479b6b95mr21730725e9.12.1755689620038;
        Wed, 20 Aug 2025 04:33:40 -0700 (PDT)
Date: Wed, 20 Aug 2025 13:33:38 +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>
Subject: Re: [PATCH] x86/iommu: setup MMCFG ahead of IOMMU
Message-ID: <aKWykl7UiTZmtGYW@macbook.local>
References: <20250819171826.60700-1-roger.pau@citrix.com>
 <6852c430-155c-4530-8aa6-67a6e97ef6b3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <6852c430-155c-4530-8aa6-67a6e97ef6b3@citrix.com>

On Tue, Aug 19, 2025 at 07:23:57PM +0100, Andrew Cooper wrote:
> On 19/08/2025 6:18 pm, Roger Pau Monne wrote:
> > Otherwise the PCI accesses to segments different than the first one done by
> > the IOMMU initialization code would silently fail by returning all ones.
> >
> > Introduce a new helper, called pci_setup(), and move both the creation of
> > PCI segment 0 internal data structures, plus the parsing of ACPI MMCFG
> > table to it.
> >
> > Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> 
> And moving acpi_mmcfg_init() slightly earlier from acpi_boot_init() into
> pci_setup().
> 
> > diff --git a/xen/arch/x86/pci.c b/xen/arch/x86/pci.c
> > index 26bb7f6a3c3a..e75a29e851a7 100644
> > --- a/xen/arch/x86/pci.c
> > +++ b/xen/arch/x86/pci.c
> > @@ -139,6 +142,19 @@ int pci_sanitize_bar_memory(struct rangeset *r)
> >      return 0;
> >  }
> >  
> > +void __init pci_setup(void)
> > +{
> > +    /*
> > +     * Ahead of any ACPI table parsing make sure we have control structures
> > +     * for PCI segment 0.
> > +     */
> > +    if ( pci_add_segment(0) )
> > +        panic("Could not initialize PCI segment 0\n");
> > +
> > +    /* Parse ACPI MMCFG ahead of IOMMU, so accesses to segments > 0 is setup. */
> 
> "ahead of IOMMU" isn't helpful here because the relevant context is in
> the caller.Â  Instead, I'd just say:
> 
> /* Parse ACPI MMCFG to see if other segments are available. */

Sure.

> > +    acpi_mmcfg_init();
> > +}
> > +
> >  /*
> >   * Local variables:
> >   * mode: C
> > diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> > index 6fb42c5a5f95..bd648323bfed 100644
> > --- a/xen/arch/x86/setup.c
> > +++ b/xen/arch/x86/setup.c
> > @@ -1938,11 +1938,10 @@ void asmlinkage __init noreturn __start_xen(void)
> >      setup_system_domains();
> >  
> >      /*
> > -     * Ahead of any ACPI table parsing make sure we have control structures
> > -     * for PCI segment 0.
> > +     * Initialize PCI (create segment 0, setup MMCFG access) ahead of IOMMU
> > +     * setup, as it requires access to the PCI config space.
> >       */
> 
> Again, this isn't terribly clear IMO.
> 
> "ahead of IOMMU setup, as the IOMMUs might not all live on segment 0." ?

It's not just IOMMUs, but for example on VT-d we also need to poke at
the config space of bridges, and when such bridges live in segment > 0
that results in garbage being returned.

I'm not sure acpi_iommu_init() accesses the IOMMU PCI device config
space, but it does at least access the config space of bridges in
order to detect hierarchy.  See how acpi_parse_dev_scope() performs
PCI reads.

What about using:

/*
 * Initialize PCI (create segment 0, setup MMCFG access) ahead of IOMMU
 * setup, as devices in segment > 0 must also be discoverable.
 */

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Aug 20 11:37:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Aug 2025 11:37:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087341.1445414 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoh8d-0004Wy-DM; Wed, 20 Aug 2025 11:37:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087341.1445414; Wed, 20 Aug 2025 11:37: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 1uoh8d-0004Wr-Af; Wed, 20 Aug 2025 11:37:55 +0000
Received: by outflank-mailman (input) for mailman id 1087341;
 Wed, 20 Aug 2025 11:37:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=P/AY=3A=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1uoh8c-0004Wl-NO
 for xen-devel@lists.xenproject.org; Wed, 20 Aug 2025 11:37:54 +0000
Received: from mail-ed1-x534.google.com (mail-ed1-x534.google.com
 [2a00:1450:4864:20::534])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1c3ef12e-7dba-11f0-a32b-13f23c93f187;
 Wed, 20 Aug 2025 13:37:54 +0200 (CEST)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-6188b70abdfso8973850a12.2
 for <xen-devel@lists.xenproject.org>; Wed, 20 Aug 2025 04:37:54 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-61a755d9ce4sm3398466a12.6.2025.08.20.04.37.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Aug 2025 04:37: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>
X-Inumbo-ID: 1c3ef12e-7dba-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755689873; x=1756294673; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=5Na775JZCweqxBHo+jNhsiZKbEVxY5tkS1r0pImbLaE=;
        b=XwFH8Mfge6ZELSMjeOnu6ZTwlx8eAEkS1KM8aX0MAr4d2HsDHu5/WE2z0/he/wPlsi
         ShEzjV14bFfud2OUgLpxyHy3ORgwGUkprM9jgJXAYGGJrfJkb1aQSCeSmEvrBQxPCXRQ
         C2uKQ1stzfJYI1Pn22BJMzcNSrT7xMV/Jz2V0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755689873; x=1756294673;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5Na775JZCweqxBHo+jNhsiZKbEVxY5tkS1r0pImbLaE=;
        b=Z8DKwmlbOlTl3lwGu2ruqZIMXVlFf5XGub/vKTlHGQdMOR9RpXjNQMOVHAosWJB4iS
         voKj6Ebbenvj8mFqN9BGFnbDauq7fiuoGUi8iQejDd9JwvEKtdfV6sBbMgjDvthMroSO
         O3N3staKRtZjMbEpE7a73oBP8IwxRK6DMSf6R0yOflOerU42sE/Jmt+l4VSNEsXcg19D
         ieyzIp/4V8C0QSon8r8KEqZJ9UleS74dkJd+QsFaBjDBXJ6t9Oc05k9USfCnCqzbdK1z
         xIYXrrotaXIqXUfDpU4SXyt46r2Jcyz7e1ckWBBgyMO3vKKJ2GFE9YmcsYPapHF0Fhn8
         80Lg==
X-Gm-Message-State: AOJu0YxJU7bHa9+6fEyQA71GxrkwNPiNRJO04HEPiIHtPPDaqHQQiTDF
	j3QbSI2MptOBi/CdKTGAU+av/zaONqV9EywhOQGRLe9ugK3EKUs/kjY5hkdOIzi1z2c=
X-Gm-Gg: ASbGncskGdcYn9NQT4e9cWo2gzeithVZvG7gj+C+2JByUHi3EbpPMVY6nJ83rMPIWmx
	YIywiJuinoCU9VaDnPszw0Y3wZEFOe8U/bPs0bmXUfomdvWJ7rkSq8YRoOJBMHwDLER3pmoT9RO
	hE5L+2zcmyJlR5mfYQkSc8uGA0rdEoMrNiANZpCAoxUHf5bWE8EzX6kzc6ztjCJ2HTZ3D/qfrpt
	em0dyAF53oLQFxQ8iof/R1A24hdeOM+a3vmQe3jPhv+KebNGolrwwT+YyXNFeAlHlRh/RKWUTWt
	A2KUOSoGp5NsjwXlbSqPnjpGxknAvZP3pSNPJFHI66b4Rpez7rOw85hBtS/zjJ2rx3sdpzomWTO
	87z2Yc1/mOV3FyW4SFeBu/8E9zeNvPpbFuNz3KT2xiMR7c+Ghb+vod6U6K8LpBWHyYWp9
X-Google-Smtp-Source: AGHT+IFcqru/iRJyHSno2sINPBWu1AySBZmYIjNAxG3zaxLn9wufclvWOI6gX7Rtr2/LoJlZRv0j5w==
X-Received: by 2002:a05:6402:504f:b0:617:be1d:4a48 with SMTP id 4fb4d7f45d1cf-61a97542fa3mr2065921a12.5.1755689873337;
        Wed, 20 Aug 2025 04:37:53 -0700 (PDT)
Message-ID: <541c8586-b77b-478a-9dae-cde7884ee57d@citrix.com>
Date: Wed, 20 Aug 2025 12:37:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/iommu: setup MMCFG ahead of IOMMU
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>
References: <20250819171826.60700-1-roger.pau@citrix.com>
 <6852c430-155c-4530-8aa6-67a6e97ef6b3@citrix.com>
 <aKWykl7UiTZmtGYW@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: <aKWykl7UiTZmtGYW@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20/08/2025 12:33 pm, Roger Pau MonnÃ© wrote:
> On Tue, Aug 19, 2025 at 07:23:57PM +0100, Andrew Cooper wrote:
>> On 19/08/2025 6:18 pm, Roger Pau Monne wrote:
>>> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
>>> index 6fb42c5a5f95..bd648323bfed 100644
>>> --- a/xen/arch/x86/setup.c
>>> +++ b/xen/arch/x86/setup.c
>>> @@ -1938,11 +1938,10 @@ void asmlinkage __init noreturn __start_xen(void)
>>>      setup_system_domains();
>>>  
>>>      /*
>>> -     * Ahead of any ACPI table parsing make sure we have control structures
>>> -     * for PCI segment 0.
>>> +     * Initialize PCI (create segment 0, setup MMCFG access) ahead of IOMMU
>>> +     * setup, as it requires access to the PCI config space.
>>>       */
>> Again, this isn't terribly clear IMO.
>>
>> "ahead of IOMMU setup, as the IOMMUs might not all live on segment 0." ?
> It's not just IOMMUs, but for example on VT-d we also need to poke at
> the config space of bridges, and when such bridges live in segment > 0
> that results in garbage being returned.
>
> I'm not sure acpi_iommu_init() accesses the IOMMU PCI device config
> space, but it does at least access the config space of bridges in
> order to detect hierarchy.  See how acpi_parse_dev_scope() performs
> PCI reads.
>
> What about using:
>
> /*
>  * Initialize PCI (create segment 0, setup MMCFG access) ahead of IOMMU
>  * setup, as devices in segment > 0 must also be discoverable.
>  */

Yeah, that works.

With those comment adjustments, Reviewed-by: Andrew Cooper
<andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Wed Aug 20 12:15:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Aug 2025 12:15:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087368.1445425 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uohim-0001PH-4A; Wed, 20 Aug 2025 12:15:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087368.1445425; Wed, 20 Aug 2025 12:15: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 1uohim-0001PA-1Q; Wed, 20 Aug 2025 12:15:16 +0000
Received: by outflank-mailman (input) for mailman id 1087368;
 Wed, 20 Aug 2025 12:15:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=P/AY=3A=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1uohik-0001P4-MC
 for xen-devel@lists.xenproject.org; Wed, 20 Aug 2025 12:15:14 +0000
Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com
 [2a00:1450:4864:20::429])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 52647be9-7dbf-11f0-b898-0df219b8e170;
 Wed, 20 Aug 2025 14:15:12 +0200 (CEST)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-3b9d41bea3cso6526473f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 20 Aug 2025 05:15:12 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3c0777892basm7434090f8f.56.2025.08.20.05.15.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Aug 2025 05:15: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>
X-Inumbo-ID: 52647be9-7dbf-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755692112; x=1756296912; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=KdTpd0xC9bZO8pMljVY4p/HrOIrDchM9WABXRf7m9k4=;
        b=Va9cW18ihf/JVk0cTL1Dwu4Nrc+GC05gLTYUH4c2k+3JvHG+jJkmXY1m89nYaqS/F5
         bez4RvhrX7qZQZwDl/XNZQZ/zl3JrsohDvlHtdzBAGIiDuXJXJb/c39VEM4XlUj6SdC0
         lnOEEl0y9IG90BKDjxwXsaiBCyh1tTC7eHZQQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755692112; x=1756296912;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=KdTpd0xC9bZO8pMljVY4p/HrOIrDchM9WABXRf7m9k4=;
        b=HJnJ8Mpaf57KhuCnB8rImbnD7rZK1yS9ED9VEJvMBTZKprB807EEXqWR1qQG/qX3Xg
         3+opqF9l8YULMU1dwezTd3CJuNO/koBF9vRZK7NuBVEoeqX5GXnuSNkdEppptFahPjR8
         bZdtUa/ZmJ6VHoakGI/EWUikMn9nPD/fUQO/NgICqUGkiItEuMyheWY74GJyVLN6XGdx
         /QldZ585h0Jia0578ZySV/pRk4InSIMpvRB3U0Z+V2lNDkb5RJxVRse0XFpNuo/YtVkr
         QYTGedTtAzGg3hwlZgoOiw9t32O+mwXQKhqGoOccIbZVaqQqdY0W7PrG9rtyILf8snkB
         fobA==
X-Forwarded-Encrypted: i=1; AJvYcCWLTVE3kUvVm12qHDdXyPpaO1SPF6GQxGMSS9vlJnDkGu11L3cDuvmPx74pYqDOYfs3NljCxdiU8b4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwMR35OZvcQL4Piv4Q9t/7ukaPTLLH/PVTABpEywYFu8qlOXu4e
	hyiaulUPYBpFbcFvz8cpR9y7gAFbSIO48Bi2MevJEOzIMy2sJuvL20OunQL4zbud+/k=
X-Gm-Gg: ASbGncuhazR38U1mkkBP+KqLWiXtup2zkJbTWHoXNOycJg5E4j2UKj0LNN/r4rgqECi
	DmEDUGFDb/HaNf15I5PIQ+L9p2xjnNgBAx7MvgkJXOPwRFxiNHb8eB6oSKhgqZ48gP/3Eyi/+fc
	TFQ5+CRSEnT7fCSr/56SjWH6+wAeSNa+d/1xVqDacbWv3Gu5rZyBme9blMgS2ToZMWyvh75hyZ2
	PKrmwISK1hAAL3MCrs1lDnzLzQ/AOpSniDrW29rSdNKFhWZDht2wu+gqD9KKwlDIEpSx6BCHjQF
	45pEmrotRO1w8T3Tt2C+BBfU3rRdHVWqML6dWTunizLzmredAKqVSSyQBcUn9+i6erJ18f5GzRu
	IhZkzj9edt8sc2JskWPFtQu8PViwIfUWIpQIfn7/0nCIK2unJlvwJuqz/dJkW5FyFK7Eq
X-Google-Smtp-Source: AGHT+IGmmwD8h5lpcuVFh3hHoKewPV1m0J5GXZOy8SMRQPII96arNnEhd0yAlW4qF55iyN5tMZYw4Q==
X-Received: by 2002:a5d:5d0a:0:b0:3b7:9c35:bb7 with SMTP id ffacd0b85a97d-3c32e6fe9f0mr1780572f8f.46.1755692111616;
        Wed, 20 Aug 2025 05:15:11 -0700 (PDT)
Message-ID: <f2105411-ac78-4283-a7d7-45f5b1bc0bfe@citrix.com>
Date: Wed, 20 Aug 2025 13:15:10 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] releases: use newer compression methods for tarballs
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>, 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: <fdd60576-c852-4ce9-921d-9e77a86a3e66@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: <fdd60576-c852-4ce9-921d-9e77a86a3e66@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15/07/2025 7:33 am, Jan Beulich wrote:
> Other projects have long switched to xz and/or lzip.
>
> In the mktarball script, don't rely on the tar used supporting the -J
> (xz) or --lzip (lzip) options.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> Question (to the release technicians) is whether this would be adding
> undue overhead, primarily as a result of anything done outside of the
> build system.

I'm happy with this.

>
> It's unclear to me why we have git create a tarball, extract that, just
> to then make a tarball again (without any special options, like to
> override owner or timestamps;

That's because in c5be91eb8140 you deleted the intermediate step of
merging qemus


> in this context I notice that tarballs
> created by Andrew have file ownership of andrew/andrew, while ones made
> by Julien use root/root).

Ownership where exactly?Â  the tarball itself (which will be down to
accounts on downloads.xenproject.org) or the tarball contents itself?

>
> Without passing -9, I observe lzip to compress worse than xz; the win
> of passing -9 to xz isn't overly big anyway (about 100k, compared to
> about 250k with lzip).

As these are created once and downloaded many times, we should always do
max compression.Â  Even if it takes minutes extra to create, that's still
a win overall.

>
> lzip, unlike the other two tools, doesn't really show a progress
> indicator with -v. Merely having final statistics may make the use of
> the option here questionable.

I can't say I find any of the stats relevant.

> --- a/docs/process/xen-release-management.pandoc
> +++ b/docs/process/xen-release-management.pandoc
> @@ -274,10 +274,10 @@ Xen X.Y rcZ is tagged. You can check tha
>  https://xenbits.xen.org/git-http/xen.git X.Y.0-rcZ
>  
>  For your convenience there is also a tarball at:
> -https://downloads.xenproject.org/release/xen/X.Y.0-rcZ/xen-X.Y.0-rcZ.tar.gz
> +https://downloads.xenproject.org/release/xen/X.Y.0-rcZ/xen-X.Y.0-rcZ.tar.[glx]z
>  
>  And the signature is at:
> -https://downloads.xenproject.org/release/xen/X.Y.0-rcZ/xen-X.Y.0-rcZ.tar.gz.sig
> +https://downloads.xenproject.org/release/xen/X.Y.0-rcZ/xen-X.Y.0-rcZ.tar.[glx]z.sig
>  
>  Please send bug reports and test reports to xen-devel@lists.xenproject.org.
>  When sending bug reports, please CC relevant maintainers and me
> --- a/tools/misc/mktarball
> +++ b/tools/misc/mktarball
> @@ -31,4 +31,14 @@ git_archive_into $xen_root $tdir/xen-$de
>  
>  GZIP=-9v tar cz -f $xen_root/dist/xen-$desc.tar.gz -C $tdir xen-$desc
>  
> -echo "Source tarball in $xen_root/dist/xen-$desc.tar.gz"
> +if [ -n "$(command -v xz)" ]
> +then
> +  tar c -C $tdir xen-$desc | $(command -v xz) -v -9 >$xen_root/dist/xen-$desc.tar.xz
> +fi
> +
> +if [ -n "$(command -v lzip)" ]
> +then
> +  tar c -C $tdir xen-$desc | $(command -v lzip) -v -9 >$xen_root/dist/xen-$desc.tar.lz
> +fi
> +
> +echo "Source tarball in $xen_root/dist/xen-$desc".tar.[glx]z

If we're deciding to use multiple compressions, they want to not be
optional here.Â  I'd far rather have a reminder to install the package,
than for it to simply be omitted.

We don't want to be re-tar-ing now that the qemu's are gone, so I think
the structure wants to end up as:

git archive --format=tar HEAD > tmp.tar
gzip -9 < tmp.tar > $xen_root/dist/xen-$desc.tar.gz &
zx -9 < tmp.tar > $xen_root/dist/xen-$desc.tar.xz &
lzip -9 < tmp.tar > $xen_root/dist/xen-$desc.tar.lz &
wait

Might as well use the multiple cores better...

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Aug 20 12:28:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Aug 2025 12:28:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087379.1445445 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uohvP-0003Lq-Et; Wed, 20 Aug 2025 12:28:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087379.1445445; Wed, 20 Aug 2025 12:28: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 1uohvP-0003Lj-AL; Wed, 20 Aug 2025 12:28:19 +0000
Received: by outflank-mailman (input) for mailman id 1087379;
 Wed, 20 Aug 2025 12:28:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rUzz=3A=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1uohvN-00037u-Id
 for xen-devel@lists.xenproject.org; Wed, 20 Aug 2025 12:28:17 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c201::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 25cb09f4-7dc1-11f0-a32b-13f23c93f187;
 Wed, 20 Aug 2025 14:28:16 +0200 (CEST)
Received: from DU0PR03MB10116.eurprd03.prod.outlook.com (2603:10a6:10:417::7)
 by VI2PR03MB10594.eurprd03.prod.outlook.com (2603:10a6:800:27f::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.24; Wed, 20 Aug
 2025 12:28:14 +0000
Received: from DU0PR03MB10116.eurprd03.prod.outlook.com
 ([fe80::7866:f529:f351:d5db]) by DU0PR03MB10116.eurprd03.prod.outlook.com
 ([fe80::7866:f529:f351:d5db%4]) with mapi id 15.20.9031.023; Wed, 20 Aug 2025
 12:28: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>
X-Inumbo-ID: 25cb09f4-7dc1-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=t+55iS4Cwunn0yOMJQjvshHY2BcrnyeokDLXQUddh+9axAq/mv3Za9kQk36t+aEPAcmsDzM5fa0SVjNCdenTRXAHXdjh07DxutMYw+7HMjVFm7kW7yLp2BFv+Ibvehw3gSHle9ByH7CDfahjcpbr73kVBvh5ZZ6IauQKB5JceJKicMt+SUtsWggVaNa1lQU6CbacJgKNmBMjboQAG/leWx4QpBpME3sMG0OoiNTZ2s6NnQhbvEi4NJ5xAJC6/PMReNJxmgUKHOo8vWOmmhaZfvDn5BbXwJz0QlemqC9nCi4MUBPgCg1cdJh1eeyFZXIOT/VNUFPL4BhhUnFosV4mWg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=oHe2biraEfWiO4QhqZGE3FAuCAIETsgHo16/ecYld9E=;
 b=MNgtBXnYYcOOBec+Obe8ki6lBSd+g/pHSl0nYbAgZ4t0EB4CUfBRsKoD9gIYFicvtF4AxCP6LId50mq4CfzuKgPhHUzmEkDHhWmuCp6CFRTIsp0lrEC1NWzDVyO4wbnvWQGUK3eZYyTiDuF5lMwqeJLLLkPNvApg4eKeDNuwSBZjUYDei7xQEhDOseljY2+ukghd6hvVlW3IwH38H9M9Jt8jYUe7RbXYBa5KUwPP1cA7KnDLW7PkeXofabm/aIstTXs9VqhDjeiBsL1vLqfAx+MHz9B+YXirYnoV+9o9DXnE52DNMc2+sftbgUIXnLkExIBbzLseD54A8HPdRSEh8g==
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=oHe2biraEfWiO4QhqZGE3FAuCAIETsgHo16/ecYld9E=;
 b=nP4kIKbAU9SKVR6+Mr4u6rkn/lUB54UlX53BYsI2gjgZlxeK4A/SRKan4fi/FnC2WSchZay8ypl374EdTlwTBhwj53Vfpe/ttQnZbnpD251PIUdbJS6lBX/u38VpDqY/hSa77qbAMz4z7sVGNvQLpiS4PE+i+vB1jbKVgoOWumFPSatF2nj2bnyT1O/fLkm8bg7RMd5LptwiNk9idz44RbssHKcsMaBLQm3+WCDMc+nax7UmunFS2GJ7CovQeGtZot2z9bA3Gpr7H3HUkv9oJ5A/PXW0Em6pSZm8zP7IRAvImxz3TLFWGjhU01TcZHtunwqXf8toKCd+YpCfbD4jsA==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Edward Pickup <Edward.Pickup@arm.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Luca Fancellu <luca.fancellu@arm.com>, Mykyta
 Poturai <Mykyta_Poturai@epam.com>, Stewart Hildebrand
	<stewart.hildebrand@amd.com>
Subject: [PATCH v2 1/3] arm/pci: Add pci-scan boot argument
Thread-Topic: [PATCH v2 1/3] arm/pci: Add pci-scan boot argument
Thread-Index: AQHcEc3mM5cSdUcCDk+EahVSEKlf4g==
Date: Wed, 20 Aug 2025 12:28:14 +0000
Message-ID:
 <e73e8d13a09294ccc8b256b15a8d3facfc878238.1755683961.git.mykyta_poturai@epam.com>
References: <cover.1755683961.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1755683961.git.mykyta_poturai@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DU0PR03MB10116:EE_|VI2PR03MB10594:EE_
x-ms-office365-filtering-correlation-id: f7e0ec6d-d513-4956-93c1-08dddfe508af
x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|7416014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?W7maNc7RivePspcT3pXSwghqzVRZn1bAqpfxoffO1DW1M1E2fqPt/YvWcM?=
 =?iso-8859-1?Q?/Eu9xn48IdU8zE+a8051vjMNJMW0OTE3GvsPcuNScGj6Ca5+/OOD1OJhX7?=
 =?iso-8859-1?Q?Kzmn5BXjqHZAG0k/H7R3CyHZPaMj7caajdr34TsWbKbPWwXwXc1+lNPZ8N?=
 =?iso-8859-1?Q?uSPcGSmDlnlaBrJ6ICtKbek7liLRFYogf+TF0juPEUQITCiTbsI0tvjrKn?=
 =?iso-8859-1?Q?S7iAdIyeBGF+ravCJMAHnDdMYvMJWYUvE2vmkzVrtsH3vyFua/3QuzhrlN?=
 =?iso-8859-1?Q?pds3qCkvaSrmy/IniO4+ZbUpQ52KU5HgguuX7ezK6uS/yGAwwrdLAotfAB?=
 =?iso-8859-1?Q?gPZU8DzSy85UOXD8PeqCNwawAS9NspI+fhhP77EGwWdYlxRz8MBxsfQDl1?=
 =?iso-8859-1?Q?CBh9Y8v5U5kqmKCtapnL3eXwp5aBSesNrYNkJwzxYn+sqvN1t2t8+LP8im?=
 =?iso-8859-1?Q?cAmuU2ZQGCTMyTr36VGgpyTw+nADW4nWaHnqDWf/xG75jm1eshoqMp6eLl?=
 =?iso-8859-1?Q?fF+tzkuQFlQrPGADDrLveyn4HAgpLpSj9rQ9+F8D/UUy+FvZv3AewAg+uU?=
 =?iso-8859-1?Q?Owq2Q17hQB/JYfkmS/ueKuEGhPEGfk9TyzEnI8EnLVlgN6K83svI8hi16z?=
 =?iso-8859-1?Q?yyzldnhC/sYAoh+5Dppb6C/FQsid2J7GW2wwyOlsLd22guRthV0Uaj2oIi?=
 =?iso-8859-1?Q?4kuTycjUZigJmzR20qD5ZD/1dxnOitUpX7J5oRmXKh7HWgzPwhVbFJaqDG?=
 =?iso-8859-1?Q?7o6O48eC1Vzw4FhviQUluk+sshHA9FqGC8u0l8ZxOkEIrSC86eXGt2TOxR?=
 =?iso-8859-1?Q?rXkCFPeHbHZELv+kLf3wkxRh+ufsDvzfhU6M3yDE4DDGGLgDp4Qpt4pe1+?=
 =?iso-8859-1?Q?GrAywWascxNs8PQdWaRpvt5ZCBFgrNGsJRC8PnkpUGRKuugTUSDGclTWnD?=
 =?iso-8859-1?Q?tkEAUmLuNmYxSme1rC0ieo3WkBOmSc3AGRo3PoBo9gMMnoL42PnRBnfzyi?=
 =?iso-8859-1?Q?YuNIfDiKaFlil6a+a3kWZKSE5p+QFeUVeJssxBLlUAyiSmVvxoReYOPiA/?=
 =?iso-8859-1?Q?EW1cETUDquuxoxPf/cshDAoVSCHx/6cdKtLsT75tGQ2Sj7yfRP36+ZsqD4?=
 =?iso-8859-1?Q?XGNjocDgm/WgTL3hgwc8+R9HhX99aibajpimuI9DKqBcHEnTEsJzL6gNTo?=
 =?iso-8859-1?Q?cUwxI9AQzl6Xf8/4lWKIiUeKtdlS82cXuIVfs4tO97VtDe+0dkDenMmd7F?=
 =?iso-8859-1?Q?lhtCtK5w04APZmj9ZOgvbo4+pltOuh/sIo5D5IJ8zRTjllbvmcBjZCAWD9?=
 =?iso-8859-1?Q?x8b2rETmUWa90fWyu54svO1QTnaI8dKtrRZVz6ptqkEz2Vv3meg4b4BHsR?=
 =?iso-8859-1?Q?GFeBPCTR7wkSNsfaVXtAQ5TPH8PNkNsQ/0PGyTfZIV+y5htFZpQVpqqsFL?=
 =?iso-8859-1?Q?dWAzNxSNHhXe3rS2/x3BdIC8lbfVP43gpmnHHQvGByj50tpbKVQt8DBjZm?=
 =?iso-8859-1?Q?pDfLoFvw+2dor+GJZbtx5s5ya+1rdGW4nK1vzwJuH0N+HAXtzWzBQDzmbJ?=
 =?iso-8859-1?Q?tmylajE=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR03MB10116.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?kxeHluSTjxcFQqXTj0buvwT2wmKB9BQHG6Jkv683EdmyQIxHU3ZujBI1Dg?=
 =?iso-8859-1?Q?xHisLNrWm6TjQU0TVt3tN6bHgVtOXtmmI+GCHwGXdsfEVDrsO9ciZNKuUO?=
 =?iso-8859-1?Q?QtDT9Sa8L18j96Tq2dp+Aj4NvZCGq57FehVAoHXrW1YLL7890nfRroKDrV?=
 =?iso-8859-1?Q?iCy/HwlCeR8b1yCXGxQtpnvdMHfJtAacvzJemWl6sU5qdtzyBf5EMKk1p1?=
 =?iso-8859-1?Q?YKjWGhdnS+Pd+gz9wuabjQibdsw0Z0GBsAOf3OWx6E/2jYM8eNkNMsVUiu?=
 =?iso-8859-1?Q?rDWoPrDuCeYF9INzvGvtgM0bosn9WTNGAWKnMj6sALPg2LltmdwApEA2d7?=
 =?iso-8859-1?Q?IvN7esTPB5SP3Mime9FsCqB7YFgEE5PYRwN6UM6yAp/m2fPydrST5yJLej?=
 =?iso-8859-1?Q?QvKUIitnTL1r7CQgKdhyd+y0cfzuOEOpqsDTtQjtK0iY6eeYjJOpNE900v?=
 =?iso-8859-1?Q?ox6JIf7Mzp1cQ/ga2iAVXaAZcFnOIxmvc/onkSRNLxDzjS7mdu4GxBJ0HZ?=
 =?iso-8859-1?Q?/ZAUIqGdHohGeYHWlm8ZGVRQgeD56REozwmTFATfQ1kETSXZ4yOmE4fcAA?=
 =?iso-8859-1?Q?/+LVBaCNkbbThk6TgA6WOcdbWFF8UYid96qQ0DyRothfE7ia2/rnEFHAqC?=
 =?iso-8859-1?Q?TFqnKhIfyh34oZr7C1OlVHj/oj7FuTj8UbrsBNrTncCMo0FogQJQH7K8mC?=
 =?iso-8859-1?Q?SUm23cNDid3iJYXo1GVGjiWUL6YlZjQYK3BW8VpBSSuOHjTHLkPXzWtI+7?=
 =?iso-8859-1?Q?pI63Oo4RKNn1CF7eKrxenF74+yWK1NYyGnT0/9Fsi/i2bzUOzMyfgYU9ln?=
 =?iso-8859-1?Q?whtWh/6rtm/OnqNHE1iVkpxAreGsJgIi2ppQ0Jc1lBgbE4fLgSBf3d6OO9?=
 =?iso-8859-1?Q?rUy0k51QrPRj69Eh0MdeC2r3F1c8WDAfjfSBYLCrAmlLoLss+PO2FUGEsu?=
 =?iso-8859-1?Q?jZ2Wv0mZ6GFeVydaemROZmG8YHcEq1VAtG35htvkvNIIQ01fa9WrDJ5ONt?=
 =?iso-8859-1?Q?ALH88zKbKF+jMpBbS/sRUmcWb4W8BMyOJinuo5MlghOCkZGybhkLWyPOnh?=
 =?iso-8859-1?Q?uomB9K4PfRPUBMxtLqBa2BRKrveUAYettj6DUBUo0jOara17a4frrRlRh9?=
 =?iso-8859-1?Q?L9le8mFpOar/gZ4ACV4Aqoyu/pwjEjSm52ozbHlOfz1qShwsRRovcK2N1q?=
 =?iso-8859-1?Q?6mRQoyviCbFRZ62yaxG1W1PESTrb0GbuRo1ulueAxdU9C3Qxf3QIl06ZSV?=
 =?iso-8859-1?Q?05m+BopTGLoKZpA8wJeNYoKQsZKjlXx2Oba4bXIfq/ipDd27+qybf0/rq7?=
 =?iso-8859-1?Q?Fhj1drRn50irxMPV/G0whooLi3kqbuRjfsY7ZaUgyfniHHXLlugS2yPaWL?=
 =?iso-8859-1?Q?cDJWb3HIlqvi6GuG7/bxO4s2l10s9LM8C5DnaJcES1ySfSfR7WazoF1OwU?=
 =?iso-8859-1?Q?kqGwT9/IVXG1TDTGFzBpKE5Sj3mo4VFqfy2DbE2xuV+yWaHm+vg8lhgLbR?=
 =?iso-8859-1?Q?1YW4G9TSuzQl390vxid3IWxXsPAB5rVTP5ILiRuaRBAKJRTzFxA/wkVebF?=
 =?iso-8859-1?Q?XH/2vr8He2QXB4JOtkYs0n/784E0WKQFymdharUlhX3eyO0MfeH1ahEUhY?=
 =?iso-8859-1?Q?GbuX+h8dRo9jJv8YJiyJxQhCYacikryzhP2gWBWesCJ6G2YJkLCT68bg?=
 =?iso-8859-1?Q?=3D=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: DU0PR03MB10116.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f7e0ec6d-d513-4956-93c1-08dddfe508af
X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Aug 2025 12:28:14.1807
 (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: vTzwErKfFMIMNvZP/e8dZH+qgob16hS/8bExqPuYEAk0e1YNUBxmTanD+/Nbj6DB2i46wQgGhI/qIJOYLy8Wjg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI2PR03MB10594

From: Edward Pickup <Edward.Pickup@arm.com>

This patch adds a Xen boot arguments that, if enabled, causes a call to
existing code to scan pci devices enumerated by the firmware.

This will be needed ahead of dom0less support for pci passthrough on
arm.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
(cherry picked from commit bce463e1588a45e1bfdf59fc0d5f88b16604e439 from
 the downstream branch poc/pci-passthrough from
 https://gitlab.com/xen-project/people/bmarquis/xen-arm-poc.git)

v1->v2:
* remove is_pci_scan_enabled wrapper
* make pci_scan_enabled ro_after_init
* drop debug prints
* drop Edward's SOB

changes since cherry-pick:
* s/always_inline/inline/
* replace additional kconfig option with config DEBUG

Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
---
 docs/misc/xen-command-line.pandoc  |  7 +++++++
 xen/arch/arm/include/asm/pci.h     |  3 +++
 xen/arch/arm/pci/pci-host-common.c |  1 +
 xen/arch/arm/pci/pci.c             | 24 ++++++++++++++++++++++--
 4 files changed, 33 insertions(+), 2 deletions(-)

diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line=
.pandoc
index a75b6c9301..762a1a4f5f 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -2059,6 +2059,13 @@ This option can be specified more than once (up to 8=
 times at present).
=20
 Flag to enable or disable support for PCI passthrough
=20
+### pci-scan (arm)
+> `=3D <boolean>`
+
+> Default: `false`
+
+Flag to enable or disable Xen PCI scan at boot.
+
 ### pcid (x86)
 > `=3D <boolean> | xpti=3D<bool>`
=20
diff --git a/xen/arch/arm/include/asm/pci.h b/xen/arch/arm/include/asm/pci.=
h
index 08ffcd4438..7289f7688b 100644
--- a/xen/arch/arm/include/asm/pci.h
+++ b/xen/arch/arm/include/asm/pci.h
@@ -23,6 +23,7 @@
 #define pci_to_dev(pcidev) (&(pcidev)->arch.dev)
=20
 extern bool pci_passthrough_enabled;
+extern bool pci_scan_enabled;
=20
 struct rangeset;
=20
@@ -155,6 +156,8 @@ bool arch_pci_device_physdevop(void);
=20
 #else   /*!CONFIG_HAS_PCI*/
=20
+#define pci_scan_enabled false
+
 struct pci_dev;
=20
 static inline void arch_pci_init_pdev(struct pci_dev *pdev) {}
diff --git a/xen/arch/arm/pci/pci-host-common.c b/xen/arch/arm/pci/pci-host=
-common.c
index 487c545f3a..d3481b05eb 100644
--- a/xen/arch/arm/pci/pci-host-common.c
+++ b/xen/arch/arm/pci/pci-host-common.c
@@ -284,6 +284,7 @@ pci_host_common_probe(struct dt_device_node *dev,
     }
=20
     pci_add_host_bridge(bridge);
+    pci_add_segment(bridge->segment);
=20
     return bridge;
=20
diff --git a/xen/arch/arm/pci/pci.c b/xen/arch/arm/pci/pci.c
index beb1f971fa..1b34e17517 100644
--- a/xen/arch/arm/pci/pci.c
+++ b/xen/arch/arm/pci/pci.c
@@ -91,8 +91,14 @@ bool arch_pci_device_physdevop(void)
 bool __read_mostly pci_passthrough_enabled;
 boolean_param("pci-passthrough", pci_passthrough_enabled);
=20
+/* By default pci scan is disabled. */
+bool __ro_after_init pci_scan_enabled;
+boolean_param("pci-scan", pci_scan_enabled);
+
 static int __init pci_init(void)
 {
+    int ret;
+
     /*
      * Enable PCI passthrough when has been enabled explicitly
      * (pci-passthrough=3Don).
@@ -104,9 +110,23 @@ static int __init pci_init(void)
         panic("Could not initialize PCI segment 0\n");
=20
     if ( acpi_disabled )
-        return dt_pci_init();
+        ret =3D dt_pci_init();
     else
-        return acpi_pci_init();
+        ret =3D acpi_pci_init();
+
+    if ( ret < 0 )
+        return ret;
+
+    if ( pci_scan_enabled )
+    {
+        ret =3D scan_pci_devices();
+
+        if ( ret < 0 )
+            return ret;
+
+    }
+
+    return 0;
 }
 __initcall(pci_init);
=20
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Aug 20 12:28:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Aug 2025 12:28:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087381.1445465 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uohvR-0003nl-1g; Wed, 20 Aug 2025 12:28:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087381.1445465; Wed, 20 Aug 2025 12:28: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 1uohvQ-0003ne-V6; Wed, 20 Aug 2025 12:28:20 +0000
Received: by outflank-mailman (input) for mailman id 1087381;
 Wed, 20 Aug 2025 12:28:19 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rUzz=3A=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1uohvP-00037u-Iw
 for xen-devel@lists.xenproject.org; Wed, 20 Aug 2025 12:28:19 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c201::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 264e4dda-7dc1-11f0-a32b-13f23c93f187;
 Wed, 20 Aug 2025 14:28:17 +0200 (CEST)
Received: from DU0PR03MB10116.eurprd03.prod.outlook.com (2603:10a6:10:417::7)
 by VI2PR03MB10594.eurprd03.prod.outlook.com (2603:10a6:800:27f::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.24; Wed, 20 Aug
 2025 12:28:15 +0000
Received: from DU0PR03MB10116.eurprd03.prod.outlook.com
 ([fe80::7866:f529:f351:d5db]) by DU0PR03MB10116.eurprd03.prod.outlook.com
 ([fe80::7866:f529:f351:d5db%4]) with mapi id 15.20.9031.023; Wed, 20 Aug 2025
 12:28: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>
X-Inumbo-ID: 264e4dda-7dc1-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=sqXxlqp11ghaQNRz7Xvp9uU1yXdfqntVGXFFyx2O/H6bpa906FRDw4hhHlkZZMM7hEFuHuZEQ5WacL4h0SRzrva+Nvf1OOSPUryr3urtsFrnfNU9+QCTI4Y5s/ycbmLF0A8CaRYVLkehe+kNu/LWV9jsf9qpfJBl97hlytKtnlBhLfArWFNIQotMC0HSkK3eqZ7RwoTRJL7FU6MOMF6a6tHObQNb556+T/0e3PCEszRvxQvEp2wpVYtcw88UedL8wdEBlgW1bzQ/iw5NFDJQNR1rDR0SJitY+1zZGr2/LGxE7T+bEaCZDSYQAG0r2+CoC5coR/1Krne7Jr2oAu0LIA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=WVMSmg+ZotqbA/Olb93TpjL0A75kD7z3fpeyTxGIOkc=;
 b=odEn6ipmWoYAmyxaxbyVvsVVi+0n3MAI9CXjN1PcBC3GFtDgSZ1GMvRx8Qv26zq4yTpKJ69Po9FXp5zM6ly1AGZ5dRjzsWMXpI1M7zutXh/U9O1eKtnkrXi8CRcErMhS4otLZEzeYxneboK9LHva9jkcJ1wCSUx81zLsulDq9KerEhW4fnNcehHzIBegWdrn/TegwpfOYKVt6YLOr+BW5e8PkOG1ST+vpKnOFOo3U9kLPcB4tgg4ODBBnJcaLmm7NsJnL4tgaulWbB+K9sPFz5qBeeVD+War0ja/0yZch/wTggQ9eBphJy/yuob9morI2TWg086qE23nzqvYK4EduQ==
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=WVMSmg+ZotqbA/Olb93TpjL0A75kD7z3fpeyTxGIOkc=;
 b=qpiAzqqWRVJa9kElifPNWASVz7OON9y85kBZ9Bg46pYac4LBAOmPo6ToVMs401951fXni06LOe9syI8c0a+2PtYJBM+3iLyr8PzvuUkabZpThzhgzztWlX51QvtNErTDyvZIYs57Dl7dntbLJU5ha3VcG/XA7MzSTDHsOQesFpfDOPL9W6hTbJBnVwtd5xfLPz+bBC6sBW8pOP7rOKQNwP4MA1tIvIwMCHHUecDEeTHgnkbvxjgw/yVoZHYulr34Ut/icFZcI0K0FUsldQ8IpzbVPBYaxcP6NfMEsQnhvHdSmNkATNJR/6CRQ2INMgrryqKuU8uvq08Qo9UuNtH5sg==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Luca Fancellu <luca.fancellu@arm.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, Jan
 Beulich <jbeulich@suse.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Mykyta Poturai <Mykyta_Poturai@epam.com>
Subject: [PATCH v2 3/3] xen/pci: add discovered PCI device at boot
Thread-Topic: [PATCH v2 3/3] xen/pci: add discovered PCI device at boot
Thread-Index: AQHcEc3mKXITpUZcl0ea3L2+fX5U/Q==
Date: Wed, 20 Aug 2025 12:28:15 +0000
Message-ID:
 <bb2589996131b0e7e645c0af281b9862e2e0f4cb.1755683961.git.mykyta_poturai@epam.com>
References: <cover.1755683961.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1755683961.git.mykyta_poturai@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DU0PR03MB10116:EE_|VI2PR03MB10594:EE_
x-ms-office365-filtering-correlation-id: 1296db97-5722-4fe1-6093-08dddfe50939
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|7416014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?m+ZDWDLxQKqduaCQawsEUW08ueA1yhmJGWBuoYjAQM0cUMM0ehLU5G/hMu?=
 =?iso-8859-1?Q?9habU13av3zG3e/QRZkwqyRu27xPOtbpF5zfZhFZRF9uun/5JGN1V3DKgL?=
 =?iso-8859-1?Q?s7cGNpXGLDZtDQ+CKuaS3wQUubthih5Mp78nRAwfOrIDCgFIZQXmZOkIHs?=
 =?iso-8859-1?Q?ufo0JFo3QZV+XPvJhdTY8DBZju187qIHfwzQg3NGCbu4H1DtXiaA8wEHgM?=
 =?iso-8859-1?Q?9ABTyltrSR61/ZR65F5x5LRQZHYvmA0Xngr01Le+L0ybkfui6p3muq9S4t?=
 =?iso-8859-1?Q?5VNjjDZ6H2r3+k4hbM+H/fDOVsi9UecyH0QuhiGxZ48S0mSkgIRRd3YuaL?=
 =?iso-8859-1?Q?PW8GDBgmP+0GmUoXV2KkSzi7vRQMZiUQ8aR7G/rXa2M2HTqOga2NjVz/BG?=
 =?iso-8859-1?Q?YMI6sNEClb95nSeTI14V4KCEBNPQvD0enO08jHYIh7u/mN6OiMClYWjR2w?=
 =?iso-8859-1?Q?62Vmqg8eiFAxN6BpOXuMY4/UoPpbVx+RH9/1A3cKNbPyDJG76UwtOqjoD+?=
 =?iso-8859-1?Q?v0W/LeycBV3ca4y1hYrHSnrScGcnTJfBctt9kuWMt9M0ystBklpBDf7+yi?=
 =?iso-8859-1?Q?lKuSwaaqvspnhlLRRU/NwCkQdQet8IHGwWtlVWGo7oyVNxU2mgp7vgjA0G?=
 =?iso-8859-1?Q?elmEgP9peKeDxjxEMidQw6uWNLx+AWNyZ40pu823oY6emynLyTPH8dYPot?=
 =?iso-8859-1?Q?0/bjbktfoi5+pBYPZB8ffz2gShk8GRcKgnFD+KncMH9WiKe3EhZ7vzO5Cu?=
 =?iso-8859-1?Q?zt8HaXzlToQKxDrZINS3rnsSnzEcbuoWfD6NpxmKc38zD5N/IA1H3+lEda?=
 =?iso-8859-1?Q?WIpRRg1mNX+LSt5HINP0186KEDe/b7OzXAd7S/UkGIX7C6KzBXJNMFg4p7?=
 =?iso-8859-1?Q?bdSa4rYsY833zGwiFoxFON2QEdF6K/Cm8Zb9s0+iCCxq5ZYO4kSWmhqutg?=
 =?iso-8859-1?Q?bZBxojddr3FEBGMGGpyWarRCbvxL0gwLpd159Fzbc9/Rbr7Sap7L3cQcn4?=
 =?iso-8859-1?Q?ZsgRdogBab94LV0ptNfSuxV7XOtW986/c9B6NVhouajoNetvqEBNMqH/lT?=
 =?iso-8859-1?Q?P8NFci9k4117B06m7OcnO9BX3D0OO7Sg1f8wzdUs/vKjAgD85DySqwH0GW?=
 =?iso-8859-1?Q?RKGs2rV7gFy9kk4jbJyKqnD2f1ygXUlZxN49Oq+dDqXQnmTEjVLs221hNZ?=
 =?iso-8859-1?Q?phAlTxr7h1vuKeDqg86aI1mShoGVg6i4BYLh0WrWZ0jnRBNijoXJ+p37Ss?=
 =?iso-8859-1?Q?zE6yDB9Aibv6U+XodxH6heIqUl+7+bhSIr7uyPxN8iOStHBJg6DYmwgcr9?=
 =?iso-8859-1?Q?bdF9xlbGOpjrt+NjAkeMRFFi9buMABr2zrUglMH45y0/6Wb7ATapxs/Fxq?=
 =?iso-8859-1?Q?ZjcyVStwSqIApHh4oZNkXytQnET8FY2cvCP01dlqOOEJFm9JKGF9HvkGDr?=
 =?iso-8859-1?Q?N5HcQ0rSdGi7gRzDSH2jC1FvMQR6Fg2ZDW/TZBlWKyX7WjEE5qYKWYUYgu?=
 =?iso-8859-1?Q?heKLjbM0GCp9wQ26GBhGN+5OUl3iIA/4S/sVWWls31iixyF7EtMuDz6urs?=
 =?iso-8859-1?Q?JAvQXQE=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR03MB10116.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?1QVMHjdsKBv4eO/PTW611E5uzgxfgiy3YyLA9KR3Wz9At46XdSwJmXLrkt?=
 =?iso-8859-1?Q?GCB4VMBeOp8DXNT8uOBMy8/WXHIx6bWcX1bi8dW91/U4hHF3/N4ALA/3+a?=
 =?iso-8859-1?Q?U+vqIKBDyMC+n/87re3b7umELdqUqu5KoYuLUCInIW+am/0pReCsqKani5?=
 =?iso-8859-1?Q?ma0LpwLvcFE9BLg94YtrKczRUR0IQzrs/R/XOQyDq3iAOliEIaCi6j2n+0?=
 =?iso-8859-1?Q?p86FMY4Y5DLf8pl55Cq6AbhhcdHUmyhHuBQqo+TkvDueE6hpCvqhb88Mlj?=
 =?iso-8859-1?Q?I8VtYSDyTS3qoc79qZloM2pypRGzM+w31Sz84hdMx8pfko6OuwkHvUhueH?=
 =?iso-8859-1?Q?VVC2nkevIhcpbKLxhAdplvWejoakO8fz4HfCJkW9Jwv3ekTV1F9Rdv/blA?=
 =?iso-8859-1?Q?93fpkeMQa5aI448Fjy+iBOiEsOp46KOiJBBMhIHL3F8e9n5NKv0KRtvhSD?=
 =?iso-8859-1?Q?KrM59Y21UnqfLNi5XxZtVPVhmLDBA2XpGnZ871FmvlVrEkKppFbXfWElk6?=
 =?iso-8859-1?Q?AYbL9aJQPSXaAXXLSvmAo1o61GtV6aYKEatHUnsszNpRyz+EU/QUIwR7yN?=
 =?iso-8859-1?Q?5oERi6WXJWtqT5wP2GXBSeRjCbs8BULOpCL8IG5SX/fp4ctaSgBLrwBMAN?=
 =?iso-8859-1?Q?jFHKfPfN/cOaVbkXX1DpAIUVoIoLNwNQ6PU441vGYjgnShcVc0BByMz3ZE?=
 =?iso-8859-1?Q?whZV3c+ukmLWwL6r54e/DOX4S5/pqWlaeCde1riPs0c+max9kMPdKyB979?=
 =?iso-8859-1?Q?7KWEwuTPKnpvt6umPcgVp1ipyk6LDUV+RmH4OTAmk1cvYmYcuqwhoJFbTe?=
 =?iso-8859-1?Q?7tgjMySqNAOBNqkIg5UA+j1yBke+p7fQzJMpE0c31wDFViTZIj1GB9mQko?=
 =?iso-8859-1?Q?2e/YimojXwOK8K67REglVh6eLfSORghEPOTkrMUGKg8y4DmulB1S5KQQjP?=
 =?iso-8859-1?Q?6x55ovD1wBkmiPYEKj+FjvKVy9PlC03k8KsVoS3o77xPUi1T5FzkzcI+Ut?=
 =?iso-8859-1?Q?gKaJmTSkSMz7K+6CmE1WesqJvqfKQW7ZB1BEjou2fcfbcDSprELC+XR1Ev?=
 =?iso-8859-1?Q?r9v56zTTJDEROM4/oDsr7OS+fhQ6pdmPqqvw9dpJnISn6lMyfymZ2hSiEW?=
 =?iso-8859-1?Q?q+KzgmxrSn0Wkgzxv96tC02R5PPr1LYybSh+VP1l7ubO0Os8Vpf/dc3ycj?=
 =?iso-8859-1?Q?Vm8s3KEnwOfE6Caag2jMu7dRfFqKopHI+0aee9elGWilZvTDjEpyJt0d0Y?=
 =?iso-8859-1?Q?gCJbeeLBh8fG8hkzBgZptktmk+h88+aJPUKZAc3SpLVNnbHNVWbXw25tvZ?=
 =?iso-8859-1?Q?fsNfFpCIpAeQpv1BjTKFLqiu0usyLMKsBshexeF9aeNoXQk+lpzU3WN8zS?=
 =?iso-8859-1?Q?86vPEUkJxSyqK85nBgjvLPA6etcIVOhqLdrBBf26IAgVSuJH69nHi7uvqB?=
 =?iso-8859-1?Q?xxG0hUUr4fXZfa8I18gnZ32CWac/YURZs9Aqa211LJdHscCCI3iEQ3QoAZ?=
 =?iso-8859-1?Q?8K4nfoO8UraBz16chwHkVGGmulDf8M5oDIkeNLRk4dh78XScOZ66aGJi6w?=
 =?iso-8859-1?Q?6jX+SGIT9RCADgEeDXY7BA9NsM4E1gEgMpjtZRiOK7Mrm4UbgBzCChRhXN?=
 =?iso-8859-1?Q?1w1x41W6L5Tghf2xKqDqEQ4bH70VYu5Qw0Tq6S8Ja5/Wc3ahyecQgbEw?=
 =?iso-8859-1?Q?=3D=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: DU0PR03MB10116.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1296db97-5722-4fe1-6093-08dddfe50939
X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Aug 2025 12:28:15.1213
 (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: AVwCDxnfy6I0KrhadZ0oaZHtztRq0i2oLeN0MgNJ3LBLRRVO+PAUhXsgLMmTqpSDFx7Wg+gBM/KO0OyBaaW85w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI2PR03MB10594

From: Luca Fancellu <luca.fancellu@arm.com>

In dom0less mode, there is no dom0 that can call PCI physdev ops to
register PCI devices to iommu, so it needs to be done by Xen.
pci_add_device requires some default domain, we don't have hwdom, and
the guests are not yet created during the PCI init phase, so use dom_io
as a temporary sentinel before devices are assigned to their target
domains.

Rename setup_hwdom_pci_devices to setup_pci_devices and add dom0less
handling to it.

In pci_add_device there is a call to xsm that doesn't consider the
requester of the function to be Xen itself, so add a check to skip
the call if the owner domain is dom_io, since it means the call is
coming directly from Xen.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
(cherry picked from commit eff51e50021b75f5a50533f7de681b2ce044f5bd from
 the downstream branch poc/pci-passthrough from
 https://gitlab.com/xen-project/people/bmarquis/xen-arm-poc.git)

v1->v2:
* integrate add_discovered_pci_devices into existing routines
* better explain the need for dom_io
---
 xen/arch/arm/pci/pci.c                      |  1 +
 xen/drivers/passthrough/amd/pci_amd_iommu.c |  2 +-
 xen/drivers/passthrough/pci.c               | 42 ++++++++++++++-------
 xen/drivers/passthrough/vtd/iommu.c         |  2 +-
 xen/include/xen/pci.h                       |  5 +--
 5 files changed, 33 insertions(+), 19 deletions(-)

diff --git a/xen/arch/arm/pci/pci.c b/xen/arch/arm/pci/pci.c
index 1b34e17517..909fbdd694 100644
--- a/xen/arch/arm/pci/pci.c
+++ b/xen/arch/arm/pci/pci.c
@@ -124,6 +124,7 @@ static int __init pci_init(void)
         if ( ret < 0 )
             return ret;
=20
+        setup_pci_devices(dom_io, NULL);
     }
=20
     return 0;
diff --git a/xen/drivers/passthrough/amd/pci_amd_iommu.c b/xen/drivers/pass=
through/amd/pci_amd_iommu.c
index 3a14770855..f3a83a0ab7 100644
--- a/xen/drivers/passthrough/amd/pci_amd_iommu.c
+++ b/xen/drivers/passthrough/amd/pci_amd_iommu.c
@@ -401,7 +401,7 @@ static void __hwdom_init cf_check amd_iommu_hwdom_init(=
struct domain *d)
=20
     /* Make sure workarounds are applied (if needed) before adding devices=
. */
     arch_iommu_hwdom_init(d);
-    setup_hwdom_pci_devices(d, amd_iommu_add_device);
+    setup_pci_devices(d, amd_iommu_add_device);
 }
=20
 static void amd_iommu_disable_domain_device(const struct domain *domain,
diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
index 09b424d1b3..6ddc6811df 100644
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -35,6 +35,7 @@
 #include <xen/msi.h>
 #include <xsm/xsm.h>
 #include "ats.h"
+#include "xen/dom0less-build.h"
=20
 struct pci_seg {
     struct list_head alldevs_list;
@@ -676,9 +677,12 @@ int pci_add_device(uint16_t seg, uint8_t bus, uint8_t =
devfn,
     else
         type =3D "device";
=20
-    ret =3D xsm_resource_plug_pci(XSM_PRIV, (seg << 16) | (bus << 8) | dev=
fn);
-    if ( ret )
-        return ret;
+    if ( d !=3D dom_io )
+    {
+        ret =3D xsm_resource_plug_pci(XSM_PRIV, (seg << 16) | (bus << 8) |=
 devfn);
+        if ( ret )
+            return ret;
+    }
=20
     ret =3D -ENOMEM;
=20
@@ -1181,19 +1185,21 @@ int __init scan_pci_devices(void)
     return ret;
 }
=20
-struct setup_hwdom {
+struct setup_ctxt {
     struct domain *d;
     int (*handler)(uint8_t devfn, struct pci_dev *pdev);
 };
=20
-static void __hwdom_init setup_one_hwdom_device(const struct setup_hwdom *=
ctxt,
+static void __hwdom_init setup_one_pci_device(const struct setup_ctxt *ctx=
t,
                                                 struct pci_dev *pdev)
 {
     u8 devfn =3D pdev->devfn;
-    int err;
+    int err =3D 0;
=20
     do {
-        err =3D ctxt->handler(devfn, pdev);
+        if ( ctxt->handler )
+            err =3D ctxt->handler(devfn, pdev);
+
         if ( err )
         {
             printk(XENLOG_ERR "setup %pp for d%d failed (%d)\n",
@@ -1213,10 +1219,10 @@ static void __hwdom_init setup_one_hwdom_device(con=
st struct setup_hwdom *ctxt,
                ctxt->d->domain_id, err);
 }
=20
-static int __hwdom_init cf_check _setup_hwdom_pci_devices(
+static int __hwdom_init cf_check _setup_pci_devices(
     struct pci_seg *pseg, void *arg)
 {
-    struct setup_hwdom *ctxt =3D arg;
+    struct setup_ctxt *ctxt =3D arg;
     int bus, devfn;
=20
     for ( bus =3D 0; bus < 256; bus++ )
@@ -1229,18 +1235,26 @@ static int __hwdom_init cf_check _setup_hwdom_pci_d=
evices(
             if ( !pdev )
                 continue;
=20
+            if ( is_dom0less_mode() ) {
+                int ret =3D pci_add_device(pdev->seg, pdev->bus, pdev->dev=
fn, NULL,
+                                         NUMA_NO_NODE, ctxt->d);
+                if (ret)
+                    printk(XENLOG_ERR "Failed to add PCI device %pp: %d\n"=
, &pdev->sbdf, ret);
+                continue;
+            }
+
             if ( !pdev->domain )
             {
                 pdev->domain =3D ctxt->d;
                 write_lock(&ctxt->d->pci_lock);
                 list_add(&pdev->domain_list, &ctxt->d->pdev_list);
                 write_unlock(&ctxt->d->pci_lock);
-                setup_one_hwdom_device(ctxt, pdev);
+                setup_one_pci_device(ctxt, pdev);
             }
             else if ( pdev->domain =3D=3D dom_xen )
             {
                 pdev->domain =3D ctxt->d;
-                setup_one_hwdom_device(ctxt, pdev);
+                setup_one_pci_device(ctxt, pdev);
                 pdev->domain =3D dom_xen;
             }
             else if ( pdev->domain !=3D ctxt->d )
@@ -1266,13 +1280,13 @@ static int __hwdom_init cf_check _setup_hwdom_pci_d=
evices(
     return 0;
 }
=20
-void __hwdom_init setup_hwdom_pci_devices(
+void __hwdom_init setup_pci_devices(
     struct domain *d, int (*handler)(uint8_t devfn, struct pci_dev *pdev))
 {
-    struct setup_hwdom ctxt =3D { .d =3D d, .handler =3D handler };
+    struct setup_ctxt ctxt =3D { .d =3D d, .handler =3D handler };
=20
     pcidevs_lock();
-    pci_segments_iterate(_setup_hwdom_pci_devices, &ctxt);
+    pci_segments_iterate(_setup_pci_devices, &ctxt);
     pcidevs_unlock();
 }
=20
diff --git a/xen/drivers/passthrough/vtd/iommu.c b/xen/drivers/passthrough/=
vtd/iommu.c
index c55f02c97e..1096c16327 100644
--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -1451,7 +1451,7 @@ static void __hwdom_init cf_check intel_iommu_hwdom_i=
nit(struct domain *d)
 {
     struct acpi_drhd_unit *drhd;
=20
-    setup_hwdom_pci_devices(d, setup_hwdom_device);
+    setup_pci_devices(d, setup_hwdom_device);
     setup_hwdom_rmrr(d);
     /* Make sure workarounds are applied before enabling the IOMMU(s). */
     arch_iommu_hwdom_init(d);
diff --git a/xen/include/xen/pci.h b/xen/include/xen/pci.h
index 89f3281b7c..61f69a8a1b 100644
--- a/xen/include/xen/pci.h
+++ b/xen/include/xen/pci.h
@@ -220,9 +220,8 @@ int scan_pci_devices(void);
 enum pdev_type pdev_type(u16 seg, u8 bus, u8 devfn);
 int find_upstream_bridge(u16 seg, u8 *bus, u8 *devfn, u8 *secbus);
=20
-void setup_hwdom_pci_devices(struct domain *d,
-                             int (*handler)(uint8_t devfn,
-                                            struct pci_dev *pdev));
+void setup_pci_devices(struct domain *d, int (*handler)(uint8_t devfn,
+                                                        struct pci_dev *pd=
ev));
 int pci_release_devices(struct domain *d);
 int pci_add_segment(u16 seg);
 const unsigned long *pci_get_ro_map(u16 seg);
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Aug 20 12:28:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Aug 2025 12:28:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087378.1445434 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uohvO-00038C-6f; Wed, 20 Aug 2025 12:28:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087378.1445434; Wed, 20 Aug 2025 12:28:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uohvO-000385-3h; Wed, 20 Aug 2025 12:28:18 +0000
Received: by outflank-mailman (input) for mailman id 1087378;
 Wed, 20 Aug 2025 12:28:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rUzz=3A=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1uohvM-00037u-UT
 for xen-devel@lists.xenproject.org; Wed, 20 Aug 2025 12:28:17 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c201::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 257d0e09-7dc1-11f0-a32b-13f23c93f187;
 Wed, 20 Aug 2025 14:28:16 +0200 (CEST)
Received: from DU0PR03MB10116.eurprd03.prod.outlook.com (2603:10a6:10:417::7)
 by VI2PR03MB10594.eurprd03.prod.outlook.com (2603:10a6:800:27f::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.24; Wed, 20 Aug
 2025 12:28:13 +0000
Received: from DU0PR03MB10116.eurprd03.prod.outlook.com
 ([fe80::7866:f529:f351:d5db]) by DU0PR03MB10116.eurprd03.prod.outlook.com
 ([fe80::7866:f529:f351:d5db%4]) with mapi id 15.20.9031.023; Wed, 20 Aug 2025
 12:28: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>
X-Inumbo-ID: 257d0e09-7dc1-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AjV/4ZOEPv0MS4WOxN/5UpnKeSUCbXIMnrUnp9gDD/UL4/9FVp4a15xbu+ptu7GXdvp9XT65mtVT/8eNJVLebqHnqo+5uTQpzuLqCXWJSQwsOI2bNvENEVuum6etxDgx0j7H1/7o6a8qgOTgnHCs2F6FMMKaB26rVSbDV6e4mSk+wdOGzyBs0YO+aSopOXvIreKAalmOvpnaOrusSJHf7U/7ZJCMl52qsHyNvgr8pgPvT0od3tKjL7AnPj9qeZ3CXzLNTm5E8Lzjy3eQUZHDymhpw+BsdjkeuF2O5jqg3O1hTK9O0VooomWzGz8aazurNhE4AWHcqcQTmFcQ5m5PwA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ZlK9vQ1x9DEPaXsIm+wocJ3MuFEkfXWYqxqii5rJYOE=;
 b=TRZkHsOErBp9I5Nuuw9X4qSUM1A2H5F/EGBaEl/5h65jft1EGXAoLfjKXgjTy0WRQQ8lESuZILwgPHs6Yg3W0EF/13k/7XjTyIEFLel73RF1YWjWf3LJDc3ZY0uohp+BIKItfi3r9SqeMmg71Of9fcdQNx3FD+DrCELCxhZpSCKQP4GaW9OROAaWNe8f0BX7JCs2xhH3abXl5W3IqftYhTKo7uJ5xIEqODWJXYb2sHRQfYBbhDNbsY8fu6HfGhJkQGK68PrQsZLrZKVHnNUmjESHYAX35A/q57nrIGU1uN004+JAEXpUUwwNBTcLTvv9pRVME1DWwsdqoJoz7z8eHg==
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=ZlK9vQ1x9DEPaXsIm+wocJ3MuFEkfXWYqxqii5rJYOE=;
 b=uJRz3IhGrFJE+jcLGKfBFaHjLQfazdcqOYx7B7dyUDxLviIDrScBTcC19ctB7vvB/Pso1UF0fpnF86OZT+rBGfBWVPPgsxgW9+RxtGl8rMsL+il5ZV6z8+BoDCn0C1GUC2Px9TVGeO1Elz9WOlgwld83BeL/jd3N9guYfP2XNkQKD2x8XQ/XOkxmt/slBkHV0PbTS1CPHmqxBEQb5YICb4CH9R2bSMonTVRih1XwPT7qGS5rziMC3DB7hqIiDWlQjy3IVu95PYyyvCgKnLeVnPVJ/Gkt8dJX4FXgvUPHrFseMegX+r9YgM6Bej7drbi91+5DiSIboGKSAqeDuYFftQ==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Mykyta Poturai <Mykyta_Poturai@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>
Subject: [PATCH v2 0/3] dom0less pci passthrough support on Arm part 1
Thread-Topic: [PATCH v2 0/3] dom0less pci passthrough support on Arm part 1
Thread-Index: AQHcEc3l0kakLkpnsEOjM6uaMaa5Mw==
Date: Wed, 20 Aug 2025 12:28:13 +0000
Message-ID: <cover.1755683961.git.mykyta_poturai@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DU0PR03MB10116:EE_|VI2PR03MB10594:EE_
x-ms-office365-filtering-correlation-id: 3ee32ffb-faba-4f22-65ad-08dddfe50854
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|7416014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?Gji0xWH9EIHTEsB57A4PN6pBLgGAaAwLY8PNpPrK78f0CdO8tTnM8jpt/W?=
 =?iso-8859-1?Q?+BrcGgHuz7BN07cWvqqTkRI13iCB79h+DZzqAyCd6Gn33KurANDvZgseZt?=
 =?iso-8859-1?Q?1gPQqMVFitJctLzjlnl44LOqAWAyve4nHT4SpIEsAtRVtQhuCwVhMG0u80?=
 =?iso-8859-1?Q?EHp2fU75jbIeoPeb+3FdtFCw7orIMJnDa/4WYvv7nix6MhbiOZAa01Sl6z?=
 =?iso-8859-1?Q?lKoSg9PMzWk0Zx2AlYRcwlUNITAFktiDPqpH1cPjvUuJ7wwk9vDDkWO+/m?=
 =?iso-8859-1?Q?2CgKIW7q9B1NGhtzMYSAwVyoewytWiOuiKbSgmhUQ4cjWBF+0LcHwtGo9I?=
 =?iso-8859-1?Q?udl9BXPpIo8Xph5ZgdSvjaJolzZrJ0rYou2JFwkC2UxBxfbOmAC1P+ZyMm?=
 =?iso-8859-1?Q?8z2HrEBXW2bXw9eT1x7BLQfYiBBmXc6iY7yMz14nwlW3Q2XZDioqw4uMqt?=
 =?iso-8859-1?Q?4s2FJbAsQF7kgPzs7W2cYS25bvKuLsfuOWavs1iKggwL7YIqS+rhQKQizs?=
 =?iso-8859-1?Q?645tckUSzc9FFYdLJ9++XS1T0fcmNfMKO7DnHjhepzqonzemrvHUtNPYff?=
 =?iso-8859-1?Q?iK/vqAuqvDFdsDlad2Y7p8p87Kx+8cZmHxse+7TVQpBmgCgCTp2/iYyPyV?=
 =?iso-8859-1?Q?zKwHcrhxox8r/OPSGeo9PMjzLnrhDQz9pM0uPqAUOt868lCpnqVDWGBW1e?=
 =?iso-8859-1?Q?bEfhx3Itqy7ttfnZ5ph3zGxpunEyff84OlgUCgpWS7usYZWNa8KA4ewyjH?=
 =?iso-8859-1?Q?vk18T4C2tJKR+9R8n5c4nwdFinaDUYrN5iC8sGyfPQwADkMQVX7sx5Y4Jr?=
 =?iso-8859-1?Q?Wz8y7auh/L7Jwhs8w83dtzTdfyFRMxCtrEzrh79MNNd2yWPK2m+4jukPCc?=
 =?iso-8859-1?Q?sEURgPK50M1HK91dF4Z8m6ejRThXGtrikHJPqkZ4qWE7CDT/NXFAq50ddt?=
 =?iso-8859-1?Q?NhPnH/HR63/ottMUHOC7MQ+RWD67hkc+8cTncVs8AXXP09LONDCIT30IVH?=
 =?iso-8859-1?Q?w8hThJtEK/8KD9F7mgdb3TMJOxFsYongmCR0TmyetIRy0k7DuaERjsoUVy?=
 =?iso-8859-1?Q?t33iOa/hN9vxASNR3/NySRxKQhqH1C0h81evClB5ftzDTK8Zn0xYNufLtx?=
 =?iso-8859-1?Q?xrcX7gTiWXsCdUvWXqLbZAHqwOBHwoH7ZCs1LNrRy3dS1EiDc3fQIzfSf3?=
 =?iso-8859-1?Q?6o1jxXDGueAc+vRE/SpoTZFL9Dc3WdYZc7Ufnf6iuFfR9ZR+w2UB0IpKxo?=
 =?iso-8859-1?Q?zJnFEP7q6/Bfhy8l+bJJuf7Nf1o0mHn6ETilAdMrvoGIJoMD8dK6RrREiZ?=
 =?iso-8859-1?Q?4hunp3VDvaFqccNTdPguWg6tr4d+qsudGriDj/Ydg0e7zoQi83vID0VlF4?=
 =?iso-8859-1?Q?vTYLXL+mfhHg+QJmXEEGe5cDBH9wZre7hWIXyhonhdu0q0J/t/MZvXh+nP?=
 =?iso-8859-1?Q?qtWg5IHHUD6nMESGKS0MW0Hz5XY41ShTx6zi43kvi7hz99yxSltJpgStRb?=
 =?iso-8859-1?Q?Fo2oUgots7ZSeJR6n/tJCo2Sa8+JRbYXtqH3f8e52qoQ=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR03MB10116.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?/COEU+Qb3FVarZHM3UagBb2vdUvoEj0/h332hgtmhuI9GkB4J7hIzrVC9d?=
 =?iso-8859-1?Q?I1F5oAL5511sesHp46O7l0KqFENE5tc6VXIBcMj/33VkmSPEuN9sRi/8+U?=
 =?iso-8859-1?Q?xnntv84X7Pc7vDcA+saPKnVq64t4Cj0L3zz9/Js8D5VXZDihSfJfxxKHn/?=
 =?iso-8859-1?Q?KZOSKEOPGm7u1Nb39t+GFAz08jAgTHJ8DitDvrcaupfFctUwpG7S9TZoSb?=
 =?iso-8859-1?Q?MjLbrM0ST8cWt267nkCMaRBAJyunqUQrlLlIqfCdNcp8NaoZZH0jDdV4Qp?=
 =?iso-8859-1?Q?wnwry1hTQJD+stvXze5zUz8Di4gy/lKHKJUADE61yvo3XAEKQDtyU8Fo6i?=
 =?iso-8859-1?Q?NRxFk3Ls1dp3+OJeqSXqO5iZRuU4Z7fRv2nXSnsEbiPeuV4+aVejFWYh7H?=
 =?iso-8859-1?Q?tNE4EP4dmrHqgfAFZzXHk0M1GwFVf9TEnuxGmWq2d6L/5QY/sGAIzvVF3f?=
 =?iso-8859-1?Q?Wncz46tZ9W30l3NKHqBQ+m6fT6PFnsQEnlBGdFF9qGvCQmSGG2U/BMZ2WT?=
 =?iso-8859-1?Q?QqSzvKYO/3cO7LLQNUC4lLZFjddpafbsz5e2P4WCIVitgyCsyiWLcZY8in?=
 =?iso-8859-1?Q?7z03XJvCBD5gqJzihPJX3Zc2/jUrDUfts+/nCGBeG45pvzXyEc7dHR49xs?=
 =?iso-8859-1?Q?IeQKFOjYBf5cAtoAysMfDz++ogDEuW06MXIKwM/u+D31GQCUreT/cCbBDB?=
 =?iso-8859-1?Q?bbCNBDJtx1Q/wwY90SDxwtrH+sm3zopKxDcUhaVOdwL2aInumCl8Qzl1co?=
 =?iso-8859-1?Q?IYtNgbmzBbW9cre2ss4wQ2tW4s8YH9p9VrCCeuQWVnL6L/rS0Ok2d4YwxW?=
 =?iso-8859-1?Q?zX/41PVUfJ010JlcVGaL/THYAuCO2G6VG00MVI3xvzMbUFs5I01scZU4aa?=
 =?iso-8859-1?Q?aOC4dD0WB3pqzyx7N+sp1rZWH/pTLKK7r+vqIsE7MLIoMvlMbNW8nCyf0u?=
 =?iso-8859-1?Q?lBPu8/F0y1AtqHF8BBU2o9rT10SgrbvvV9J9p7i/T58+Ecqea/DTT69YY7?=
 =?iso-8859-1?Q?aimH7j2O+c5Kt87MmqleZefrb8ubqh/VZLhNX32jqwbUnRgf3f0I1Aw+ml?=
 =?iso-8859-1?Q?/jf/8ml85sLKn0tmOHY7JOlcE0oNwRfSXqsMPx1IGYrkKabyNMDBCmpCf6?=
 =?iso-8859-1?Q?hFAaNBfDganpaGVc92Cxz1/E6yi1eAxD3SAvppfDG19PUS2rx5oYGMz33x?=
 =?iso-8859-1?Q?xpLlXcueZSbSElYWHmx4kjxJqg94wUaHfwIB1ppWPGB4VrUXA2pn6Ke2gy?=
 =?iso-8859-1?Q?eR7/BnFmMQgMPnsjt/RvQb/MWClmbRifZtFyJfm3U/jbK/r/rWiAvVmZ0q?=
 =?iso-8859-1?Q?s4f4DqiZIih6XN+EVnW18XrlPynqpMRiOjYpr+nfn0hadPIT0R8QZ8KnDF?=
 =?iso-8859-1?Q?+8kokuuX5qUk4Q0G7+MS5rtdog7Jey//+lofxzuiq8JTMAA+KLWbMSqhBT?=
 =?iso-8859-1?Q?+WhVJql+LPy1FBI2JcfqERPsS79b7rN41dD+C6mcRj6vz7nNLujtHYDMhS?=
 =?iso-8859-1?Q?wj/s+TIOFV0RgknDxgeqOTf7V5IvSoYM8vP+fIriuVVWujXF4ljRlYkZj1?=
 =?iso-8859-1?Q?hzPcBtzQTxv3xQEpMOGxOOXfBRMf7vSIYrtKmb3MOPe1W9XE8qVQRVHm3u?=
 =?iso-8859-1?Q?1pZHZ2aj9vWVArKTU5rsHUr0dyOY9UocgQeqWGS81wgpJp217pF8kMNg?=
 =?iso-8859-1?Q?=3D=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: DU0PR03MB10116.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3ee32ffb-faba-4f22-65ad-08dddfe50854
X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Aug 2025 12:28:13.6389
 (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: J8Hw+/sr8TAWJ1kHwBxP3K+dXb07IelG1jsv+gxgOIsIqkKJV28Vb8JY9rTTlcWkAq46ml+C5NoZdU/zYuQGVw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI2PR03MB10594

This series adds basic PCI device enumeration in Xen. This will allow us to=
 not
rely on Dom0 enumeration for supported controllers, which will enable PCI
passthrough for dom0less setups.

Enumeration is disabled by default and can be enabled with "pci-scan" cmdli=
ne
option. Discovered devices are added to Xen and assigned to dom_io by defau=
lt.

Edward Pickup (1):
  arm/pci: Add pci-scan boot argument

Luca Fancellu (2):
  xen/pci: modify pci_add_device to handle device add by Xen
  xen/pci: add discovered PCI device at boot

 docs/misc/xen-command-line.pandoc           |  7 ++
 xen/arch/arm/include/asm/pci.h              |  3 +
 xen/arch/arm/pci/pci-host-common.c          |  1 +
 xen/arch/arm/pci/pci.c                      | 25 +++++++-
 xen/arch/x86/physdev.c                      |  9 ++-
 xen/drivers/passthrough/amd/pci_amd_iommu.c |  2 +-
 xen/drivers/passthrough/pci.c               | 71 ++++++++++++++-------
 xen/drivers/passthrough/vtd/iommu.c         |  2 +-
 xen/drivers/pci/physdev.c                   |  3 +-
 xen/include/xen/pci.h                       | 10 +--
 10 files changed, 94 insertions(+), 39 deletions(-)

--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Aug 20 12:28:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Aug 2025 12:28:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087380.1445450 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uohvP-0003Sp-RW; Wed, 20 Aug 2025 12:28:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087380.1445450; Wed, 20 Aug 2025 12:28: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 1uohvP-0003S3-Nn; Wed, 20 Aug 2025 12:28:19 +0000
Received: by outflank-mailman (input) for mailman id 1087380;
 Wed, 20 Aug 2025 12:28:18 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=rUzz=3A=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1uohvO-00037u-Ir
 for xen-devel@lists.xenproject.org; Wed, 20 Aug 2025 12:28:18 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c201::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 260bd83c-7dc1-11f0-a32b-13f23c93f187;
 Wed, 20 Aug 2025 14:28:17 +0200 (CEST)
Received: from DU0PR03MB10116.eurprd03.prod.outlook.com (2603:10a6:10:417::7)
 by VI2PR03MB10594.eurprd03.prod.outlook.com (2603:10a6:800:27f::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.24; Wed, 20 Aug
 2025 12:28:14 +0000
Received: from DU0PR03MB10116.eurprd03.prod.outlook.com
 ([fe80::7866:f529:f351:d5db]) by DU0PR03MB10116.eurprd03.prod.outlook.com
 ([fe80::7866:f529:f351:d5db%4]) with mapi id 15.20.9031.023; Wed, 20 Aug 2025
 12:28: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>
X-Inumbo-ID: 260bd83c-7dc1-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=oCh16k8REzEGLeIwSGEsh7gJldpdYG0+YgXJIJxGulXCluo0TsBGZ9EfPttjz0MB4isTRsyAeq0T8cNA30u0MR9M+L7OVNqWvl7ivRiHLQtJHhd7OHb0u1esYKc9zm+2c4JZA00ldYY+cX9WfmowTMc1SnOkilJak2CstfEf++pLBZ5ssdX+sthb0itPuWXeISc0ihVyAsluf8ZnAjZjEmavqA3GCS3oX6NvbsStkS0P5YT/v8A2K15zq1z4iBcmfRMx4vmlfmnom8E5nRVSQ8O83XAaS2Rg02V7SvhY6GmatWKRceZhZ2Cef4V/KeiO13iNUyLw0LMmdlQqb++Tpg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ac0C05LAy+PYdzhYPxrP52vTNes5QbyILNsb61Cpr/k=;
 b=urb5IoQcF/m47qbnFAtD+3dGX03k624gEMxTh4dsCQ1Bn79hr8jGFabP0B3kmVzDt1mYwZCB8mZC8hR/eMIgyx9oXegJHhopQ4Q8d/w73l1pXbgSlrmgHKz4ywedM5izRP+zVVeU3YoqrCRgppBJYnS3vnlYdgQU9UWz6R1kE99So8FiVYn0GE87BdqulhvHCHn54Xj/ye3RO1+6mAEULQ0kbYuzMmEpqCVjXE6605Twq/MJWhIWtL17J3yJJdIuvJR+arnRpSue89VzSm9z/SqfMGk7qgAPLzqwVipxAJFEisQE0PWwUsj1wK0iOzoxdY3Aa483srXDfz2Zz5dhdQ==
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=ac0C05LAy+PYdzhYPxrP52vTNes5QbyILNsb61Cpr/k=;
 b=FqFsIHh1EfmpwoAS+5PD6WVLJe42Ai9Ya3OfIsH9otPckJRYBDV9MwA0rERE+l7NewlgdSXYd7cKVSJr+yLK8dYp7O86UaLcyvrGn61XTVO58lL+nfQBDB26hDpEtA/uy8jMTy1IJfQHJgldrsGR9Yl4q1mFCjQJXcCv8ob9JNYniPJnipgT3PCgc5sDejoE1K/Y7zCFm8ZIaUMu2Ndi0xeSlJdTfN6X0INUZmM9e3K9xih7nrfnt2l5exjDbWdA3zUR15d/F7tiz5vZt+hcumevoKNTJqwd7aaqbz34NQMMR2BLn3kAn5uWZ9nrC4UC609dqOXYQNM5EqSaRbiRzA==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Luca Fancellu <luca.fancellu@arm.com>, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<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>, Mykyta Poturai <Mykyta_Poturai@epam.com>
Subject: [PATCH v2 2/3] xen/pci: modify pci_add_device to handle device add by
 Xen
Thread-Topic: [PATCH v2 2/3] xen/pci: modify pci_add_device to handle device
 add by Xen
Thread-Index: AQHcEc3mB6OQkCaDf06b+uo3Fz43YA==
Date: Wed, 20 Aug 2025 12:28:14 +0000
Message-ID:
 <e0da037322b978d427d23a1af50406598a08b378.1755683961.git.mykyta_poturai@epam.com>
References: <cover.1755683961.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1755683961.git.mykyta_poturai@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DU0PR03MB10116:EE_|VI2PR03MB10594:EE_
x-ms-office365-filtering-correlation-id: 234bb8bd-92f7-4b7b-b951-08dddfe508f6
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?Q56dZJ4d1S615WRQeo3rGXLytfUDLQgUVHPOW0lTtdrGwlVp3AMZusRJ9L?=
 =?iso-8859-1?Q?TB3GYfKFIPSW3OX21hQ7hNYPQ70Rixyei/SoO8dkAPX8IHzjIx9tqCLcxq?=
 =?iso-8859-1?Q?qg+tJVNPrUkhCcfdobMuDXs+eqmz3/SyIJtPW8+3BGukHWlbqpwCN2ZQ68?=
 =?iso-8859-1?Q?M7f2xfbod1PGXUZq/2IZWlLfI/2FzwPc7Bxx/CMSq8mhTEux7IZJbCTsWK?=
 =?iso-8859-1?Q?yycuePDtj6vszRXzFTla13ZPF7uZm50a9w55N7KiCGTRgPvucL3ku/5TEo?=
 =?iso-8859-1?Q?GQ3Ithx5f+mvZjf/pRLOpatCmWsgTydxEyOWu7mSo4B7W1riYPIIn6+uFF?=
 =?iso-8859-1?Q?Z2Xb+B7cFch1OM77USoMWT1vylVQvfRG2IrnSMgiDtLjmogSo8WjwerJAO?=
 =?iso-8859-1?Q?3JRrcgSGKoliGBt4xunlZLkKEULYukVD6U9jnMSDnAhRzNRsrpyTyLWyoO?=
 =?iso-8859-1?Q?5QE/FHU37FiosgCdrxrm/jlSG0TQDK4MzhVOrIyejKwCLOuJID7DgB1Q/v?=
 =?iso-8859-1?Q?ZeNQNvCe1JUQNbFeavhMvnN4r5T2uEjJY6Ame0uzCcB/WH9jtU5pkOKXO2?=
 =?iso-8859-1?Q?GFXtk8VnwLc8yrwna86csJes1uLi1Z4OB3oEwxUAZn/dhR3pgYgJnaa2ow?=
 =?iso-8859-1?Q?l/PWUfuexEUPliXMZD3WU956XCzROnwUy6iSGXqqQkGPjQzBYwG6Ppx8oQ?=
 =?iso-8859-1?Q?Vnc+IHopP85XDEZDFkrXGu2mg5+9srKOCL99gJSkX1MKiwZOG8Y4XR872J?=
 =?iso-8859-1?Q?DmrQhqKv2DWmzEEAlMpVQlBOmdWvbT29E1ggh86S3zyan7rKXbH5MAm8p6?=
 =?iso-8859-1?Q?X3TSQtssRUHvEVGPZfx6xV4WZTl1OOhYdFZqSUBW7BtYPQWnK2riJ77flj?=
 =?iso-8859-1?Q?2xIIgB5udZ0XiDtHjnJK1QvEHGb006PRn1JyOY8Nm6GXC6BlknNkOl3Es6?=
 =?iso-8859-1?Q?lxBNdzrLU56VCk6H8aauClFO494Pd+jrITTR60792Bj08DNAdk5H9zKU0W?=
 =?iso-8859-1?Q?tvJPlcpyb/6/5W8HxGe9/NXtB6ucbf/4LNET+f6e8qkmvcnLGmdq8iH5Uz?=
 =?iso-8859-1?Q?Ut4pLBELiHwFPNGPrDMzUa06BWnV+dUSUrsiASfa39EVLWfqth0UEpI1X9?=
 =?iso-8859-1?Q?o9IW2hmgGsmqPXEIz5VjYrBKJofQl9FoRbTXqsINb/4UCGVZ3mr8hvJFxB?=
 =?iso-8859-1?Q?lkPF9AnB1d/gCx+HaY1vFR4Z/5g4gxSgUhEJMd1pUge/Lddj9kL2wn0HEX?=
 =?iso-8859-1?Q?JW/gMIn9S66m02+EoQWxsIMdV/kMUZJHwsSn/e6zuzVGAmXvUSUs6yola0?=
 =?iso-8859-1?Q?lTdhdC1sAPAbswvC78d0o4i/JaDryeEUstCEluyY0xILeBbdRWXETsImcB?=
 =?iso-8859-1?Q?dX9ZWpoVYY8q+CfXkKnKkajE3kiv/2mR5yC995TXLU32W3TvW8ez9x3q3Y?=
 =?iso-8859-1?Q?MOgy27Y17ptpdawvL84LpNyOdtJLbjuLpBi4tQVspiX16wDqjWWPHIXytj?=
 =?iso-8859-1?Q?qJ6cT4G4XUDOd6W+wdagX9C9K0uMC3gx96dpXUsbu/vcdo7K8gUJKSs0g3?=
 =?iso-8859-1?Q?IajE2LY=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR03MB10116.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?FBUQVOhRHpFUHQ3+yzXDlXAeoWaWEUY90ot84nyUYG5lYdb8dd8u4vTATG?=
 =?iso-8859-1?Q?fQZzIQ0tZ16E2ehHBVP3Cgle0HPmk9R33sRbsLudmqEv/UjHylkXwTeUPt?=
 =?iso-8859-1?Q?Y1cKIpDmRiD2AJH7K63p1Gjz377DS5WQvUfOD77t82q7H3bvB2mgT/FBnJ?=
 =?iso-8859-1?Q?Xz0ay36+5FWvtGTZ5uihuGmLzSGv0vJvSly41lxWLlaftvxkoR6rJQcokA?=
 =?iso-8859-1?Q?A4+/zfcPFZ98I/0p3A01biKb+sfllLcjxwoqE1D/7YVdxp0SJE8+wUEGLF?=
 =?iso-8859-1?Q?uKmq8s1RRa0IEaLJ7piU0L3gqbzInGHB9NGOsmiVsMm1IDzLnMCI/2TnBz?=
 =?iso-8859-1?Q?WqlEwtKt5nxLfFicWTL4N7ASILmKVcVFn1TsMb+Twx7sXtLR4vHNQL27FZ?=
 =?iso-8859-1?Q?+vZXgPcflQcO3xEqPpIgMaHFzFLBaOdU1cho0oWctJTS4oIQ0BlfJz4RBZ?=
 =?iso-8859-1?Q?vhZG+JKeUC22Pp8avcvGTPKGru3+HWO8rzx5d358+Ng3QgMC9g84rQPSrM?=
 =?iso-8859-1?Q?aljg7uwKwy1vTIjS5hR8E1qhkmpYf5DAUAxE1u23psdsEvLplBHeLJXzp/?=
 =?iso-8859-1?Q?g5j0Ij5fsKuRnrZQ+n6yjE7Tj0uS9YADiqPjGsXy5UWkFsIF+c8nZRLF7T?=
 =?iso-8859-1?Q?fYjL8vLJvvLhC7Wg8/+jjJxeFdUfMU6fRUJj2xUmjWAKA1RAXrxnAPIB1o?=
 =?iso-8859-1?Q?WGczFXC1J/cWlakkqVaR8fl04GH11JEHOEbyJhcjju/z3viUwER+Rt6EcB?=
 =?iso-8859-1?Q?/cfCIkZ04HletDgvrls4sxSbIv/1gv0uLLGz9mUBpfSZ+kHTRoFHweaUVp?=
 =?iso-8859-1?Q?TbzN9Gu3dJj1ElT8U/mDM1SvOMGnKMF1R+FdD2Sz1ha+hqb4E6S6FD82s0?=
 =?iso-8859-1?Q?euZr8Ht5WBOaO/+8UTV5hPOU8gNDkDcYQp7hoDPDFBNx9PtbmNQlH9HUKD?=
 =?iso-8859-1?Q?cCKEbJOUrjP5b12vqwmhTeT4YIoKSXJbPGsZ3jvJ4FN/mVCT+W1gFfyv79?=
 =?iso-8859-1?Q?Jl8X9oheK0Y0FNHO/1aFRfxY3AsOXP//Oqu6k/h+ukP1UHK02wwHhaL9zi?=
 =?iso-8859-1?Q?Y3oYY4NU/SmxFpoOxC9GCTH3kIsrmCslDSNHmdVHaFQel1yE1qyzxmAoZD?=
 =?iso-8859-1?Q?zStpN7U2qSfTm78Jk+N/BXOSdMOzvWWCOneBbyfsEd7v0Rni71hPHOZC1U?=
 =?iso-8859-1?Q?s6OrbNCp3Zw06mUSI3q79PHwuUuoL/r/aIbT4QIMfROUHyWtzw3Km8e2wK?=
 =?iso-8859-1?Q?3aaREIILVU5ZDyM2EdO5DJDp4z9HCwQqnHlWGWEMZIT+C4MPzNG5CruQU4?=
 =?iso-8859-1?Q?sjxGqosWrLUv6jat84YPPoRtV+9MCJIPgXMnjh7zuvqbfhH8zks3UijP3F?=
 =?iso-8859-1?Q?NR5Ey0NH0BLikkOh5vZ20xxkVieIjGJJ8fkkqnJ/LwRaS48GeeNnZ0RNwT?=
 =?iso-8859-1?Q?YcPPZgYHcvp2Plqu6J1UbXoPKidq1xcR5hFPsesP79LUA/hF+6foat111X?=
 =?iso-8859-1?Q?prOSSu2KW1ZRd78A/Vy7DK6UvLwYt3vX8mhrRIkuu6UpxC5qEluRNxTCtf?=
 =?iso-8859-1?Q?dhoC6TpKEKU67abTy8Gt2laUXhUzst9v5zzmQwvloQ5LSyaP9R/M+FOU6d?=
 =?iso-8859-1?Q?WqZR68JweKW/3nZe7SdsPDC9ygwHk6ICvuSV/eWOa1n0ey0OhcKLE5Yg?=
 =?iso-8859-1?Q?=3D=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: DU0PR03MB10116.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 234bb8bd-92f7-4b7b-b951-08dddfe508f6
X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Aug 2025 12:28:14.7071
 (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: 18eA6QfjVUG4CASLDCnp+wd549TRhsofCxevb0MBQtM7q+Gn08mk+ONMtUqQnIcaeZ2yDmL5ApwBOAe9dmseVQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI2PR03MB10594

From: Luca Fancellu <luca.fancellu@arm.com>

Currently pci_add_device is called from hypercalls requested by Dom0
to add pci devices and when the device has no domain associated with
it, it is assumed that hardware_domain is the owner.

On the dom0less scenario, the enumeration is performed by the
firmware and Xen at boot time might want to assign some pci devices
to guests, so it has to firstly add the device and then assign it to
the final guest.

Modify pci_add_device to have the owner domain passed as a parameter
to the function, so that when it is called from the hypercall the
owner would be the caller domain, otherwise when Xen is calling it,
it would be another domain since hw domain could not be there
(dom0less guests without Dom0 use case).

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
(cherry picked from commit f0c85d9043f7c9402e85b73361c8a13c683428ca from
 the downstream branch poc/pci-passthrough from
 https://gitlab.com/xen-project/people/bmarquis/xen-arm-poc.git)

v1->v2:
* remove dom_io check
* fixup pci_add_device parameters
* use current->domain instead of hardware_domain

changes since cherry-pick:
* s/hardware_domain/d/ in some write_unlock calls in xen/drivers/passthroug=
h/pci.c
---
 xen/arch/x86/physdev.c        |  9 ++++-----
 xen/drivers/passthrough/pci.c | 29 +++++++++++++++++++----------
 xen/drivers/pci/physdev.c     |  3 ++-
 xen/include/xen/pci.h         |  5 +++--
 4 files changed, 28 insertions(+), 18 deletions(-)

diff --git a/xen/arch/x86/physdev.c b/xen/arch/x86/physdev.c
index 4dfa1c0191..04d179e81b 100644
--- a/xen/arch/x86/physdev.c
+++ b/xen/arch/x86/physdev.c
@@ -446,8 +446,8 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(voi=
d) arg)
         if ( copy_from_guest(&manage_pci, arg, 1) !=3D 0 )
             break;
=20
-        ret =3D pci_add_device(0, manage_pci.bus, manage_pci.devfn,
-                             NULL, NUMA_NO_NODE);
+        ret =3D pci_add_device(0, manage_pci.bus, manage_pci.devfn, NULL,
+                             NUMA_NO_NODE, current->domain);
         break;
     }
=20
@@ -477,9 +477,8 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(voi=
d) arg)
         pdev_info.is_virtfn =3D manage_pci_ext.is_virtfn;
         pdev_info.physfn.bus =3D manage_pci_ext.physfn.bus;
         pdev_info.physfn.devfn =3D manage_pci_ext.physfn.devfn;
-        ret =3D pci_add_device(0, manage_pci_ext.bus,
-                             manage_pci_ext.devfn,
-                             &pdev_info, NUMA_NO_NODE);
+        ret =3D pci_add_device(0, manage_pci_ext.bus, manage_pci_ext.devfn=
,
+                             &pdev_info, NUMA_NO_NODE, current->domain);
         break;
     }
=20
diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
index 3edcfa8a04..09b424d1b3 100644
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -654,8 +654,9 @@ unsigned int pci_size_mem_bar(pci_sbdf_t sbdf, unsigned=
 int pos,
     return is64bits ? 2 : 1;
 }
=20
-int pci_add_device(u16 seg, u8 bus, u8 devfn,
-                   const struct pci_dev_info *info, nodeid_t node)
+int pci_add_device(uint16_t seg, uint8_t bus, uint8_t devfn,
+                   const struct pci_dev_info *info, nodeid_t node,
+                   struct domain *d)
 {
     struct pci_seg *pseg;
     struct pci_dev *pdev;
@@ -663,6 +664,9 @@ int pci_add_device(u16 seg, u8 bus, u8 devfn,
     const char *type;
     int ret;
=20
+    if ( !d )
+        return -EINVAL;
+
     if ( !info )
         type =3D "device";
     else if ( info->is_virtfn )
@@ -767,9 +771,9 @@ int pci_add_device(u16 seg, u8 bus, u8 devfn,
     ret =3D 0;
     if ( !pdev->domain )
     {
-        pdev->domain =3D hardware_domain;
-        write_lock(&hardware_domain->pci_lock);
-        list_add(&pdev->domain_list, &hardware_domain->pdev_list);
+        pdev->domain =3D d;
+        write_lock(&d->pci_lock);
+        list_add(&pdev->domain_list, &pdev->domain->pdev_list);
=20
         /*
          * For devices not discovered by Xen during boot, add vPCI handler=
s
@@ -779,25 +783,30 @@ int pci_add_device(u16 seg, u8 bus, u8 devfn,
         if ( ret )
         {
             list_del(&pdev->domain_list);
-            write_unlock(&hardware_domain->pci_lock);
+            write_unlock(&d->pci_lock);
             pdev->domain =3D NULL;
             printk(XENLOG_ERR "Setup of vPCI failed: %d\n", ret);
             goto out;
         }
-        write_unlock(&hardware_domain->pci_lock);
+        write_unlock(&d->pci_lock);
         ret =3D iommu_add_device(pdev);
         if ( ret )
         {
-            write_lock(&hardware_domain->pci_lock);
+            write_lock(&d->pci_lock);
             vpci_deassign_device(pdev);
             list_del(&pdev->domain_list);
-            write_unlock(&hardware_domain->pci_lock);
+            write_unlock(&d->pci_lock);
             pdev->domain =3D NULL;
             goto out;
         }
     }
-    else
+    else if ( pdev->domain =3D=3D d )
         iommu_enable_device(pdev);
+    else
+    {
+        ret =3D -EINVAL;
+        goto out;
+    }
=20
     pci_enable_acs(pdev);
=20
diff --git a/xen/drivers/pci/physdev.c b/xen/drivers/pci/physdev.c
index d46501b884..cd3a36903b 100644
--- a/xen/drivers/pci/physdev.c
+++ b/xen/drivers/pci/physdev.c
@@ -50,7 +50,8 @@ ret_t pci_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void=
) arg)
         }
 #endif
=20
-        ret =3D pci_add_device(add.seg, add.bus, add.devfn, &pdev_info, no=
de);
+        ret =3D pci_add_device(add.seg, add.bus, add.devfn,
+                             &pdev_info, node, current->domain);
         break;
     }
=20
diff --git a/xen/include/xen/pci.h b/xen/include/xen/pci.h
index 130c2a8c1a..89f3281b7c 100644
--- a/xen/include/xen/pci.h
+++ b/xen/include/xen/pci.h
@@ -226,8 +226,9 @@ void setup_hwdom_pci_devices(struct domain *d,
 int pci_release_devices(struct domain *d);
 int pci_add_segment(u16 seg);
 const unsigned long *pci_get_ro_map(u16 seg);
-int pci_add_device(u16 seg, u8 bus, u8 devfn,
-                   const struct pci_dev_info *info, nodeid_t node);
+int pci_add_device(uint16_t seg, uint8_t bus, uint8_t devfn,
+                   const struct pci_dev_info *info, nodeid_t node,
+                   struct domain *d);
 int pci_remove_device(u16 seg, u8 bus, u8 devfn);
 int pci_ro_device(int seg, int bus, int devfn);
 int pci_hide_device(unsigned int seg, unsigned int bus, unsigned int devfn=
);
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Aug 20 12:39:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Aug 2025 12:39:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087427.1445474 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoi60-0006ek-7n; Wed, 20 Aug 2025 12:39:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087427.1445474; Wed, 20 Aug 2025 12:39: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 1uoi60-0006ed-4x; Wed, 20 Aug 2025 12:39:16 +0000
Received: by outflank-mailman (input) for mailman id 1087427;
 Wed, 20 Aug 2025 12:39:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=P/AY=3A=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1uoi5y-0006eH-RZ
 for xen-devel@lists.xenproject.org; Wed, 20 Aug 2025 12:39:14 +0000
Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com
 [2a00:1450:4864:20::12b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id aa84ea9c-7dc2-11f0-b898-0df219b8e170;
 Wed, 20 Aug 2025 14:39:08 +0200 (CEST)
Received: by mail-lf1-x12b.google.com with SMTP id
 2adb3069b0e04-55ce5243f6dso7113465e87.2
 for <xen-devel@lists.xenproject.org>; Wed, 20 Aug 2025 05:39:08 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-55cef3516easm2620576e87.18.2025.08.20.05.39.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 20 Aug 2025 05:39: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>
X-Inumbo-ID: aa84ea9c-7dc2-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755693548; x=1756298348; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=X9l1r2v4WJhhYxl0b5jXV+TG8bdnbPnaG0WeVU2aT9s=;
        b=j7Hfiv5d4XB6+jK7qNX4qf8OWnXG2kqkmAn3pw1SyeEBDHwoVYGxSSSQluok/Tinz3
         FNE1jtWG/GXnnpo/scUC+BCom5zeiPxNoRrjs97loQu6VKH+EA4MMUJv/hAcvzy4Gl/S
         +jnoaalYjlOUjWfeOANe8vq/uZ2/WkxNKzBDQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755693548; x=1756298348;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=X9l1r2v4WJhhYxl0b5jXV+TG8bdnbPnaG0WeVU2aT9s=;
        b=PTX/HR0r6dXvb4Z4IgAtp6RsDrnOxQlfB7PW1dDcFUj0bwANq7/1Kz83rEINxQ4ZPX
         E8SxbxWvbMBZUy6TQBNzpHUBBQ35+aUiktTvL/kc5OsJfqDzCrPPlChdgejf83zw0l8m
         2XeydnHY57sO8i9xg1Ri107RMjlHFYLSH9mcpeLQCEwEu4tiuh2BLkMNV/xh7xT4ITkA
         GVFG5ct9heBIIEEU//gY19a+XW6eJ9qhVfO7Z7J7hMPy/wKtoz/5Tv5pQMYkCeyWXe+M
         iRr4X1xmVW6TrZOWHvy4aQBJPCxMcGz97SWPaTn2/TWRDcMFyForxQ6or988prXb4aLE
         ktSQ==
X-Forwarded-Encrypted: i=1; AJvYcCUIX7AoxtEarQSAWFwJ9bpBjVskIpGma3H/X9Ygg6xFGnAquAINDVNBmAlfxKa8P8sqQrujgmwUzpk=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzg6G40mDPOXzhXVoxhhwchBr5gvszl9aSL+vIr4ZRWvBiuuaYd
	6ubRYzwf+ofzzOsc6UK+fzuzCswKydp1JMME/yb1pD1XQEu+wr5N/lHACTv+TEc7Dok6xsRotOv
	hIgF1
X-Gm-Gg: ASbGncstO6zRcFxRMU9zTZzgCjm865ZbOAih5K75SG/hKhpp+mjQl6lRMyduiV2LDmV
	XR7nPL/n8pTHF+IwHyNk9iWptm6+1V2tja3h8EYZ7oHhrjHQoO5PEor52dEOEZcUUK5qeBSDW93
	ZEnqiXUruPhLDLG5iOiVNuX4fU1JfdOBaW+PgbUdLBTbluWMHIm5BBJJpPRbYh/55unpopAzMIg
	WVMyyT2i56ShXm4t+PZWKxcJG/5iRObp82p1T9Zm7Tb3Dr/YTV3ylSwfPgOjd53+hxzGKRXmGR2
	uX6icREQh0IVdVPqzBoNI9ppNIHtaTr1LZ9L93B/bmgS2UX/z1pw+I5TTOcIZTAUSSILc17SM+W
	PXzirYTlPEVmqNckA/buxMnkhkQUqBfpWaSn5Y0pR2w7xkS+nz3cu6iABP7sK0TeLhVYY
X-Google-Smtp-Source: AGHT+IH068zN2b5rHQ5SDXKJrrCpVHqXKLGyhEdH6SNnbg3ERPdfFkdGrerrZJe9K0Mrc41DVNR1+g==
X-Received: by 2002:a05:6512:8a:b0:55b:8205:b21f with SMTP id 2adb3069b0e04-55e06b3ed66mr638460e87.19.1755693548028;
        Wed, 20 Aug 2025 05:39:08 -0700 (PDT)
Message-ID: <29aa715a-f70e-4cb8-8708-dda4d9fb4d0b@citrix.com>
Date: Wed, 20 Aug 2025 13:39:06 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/3] tools: add sizeof_field and offsetof_end macros
To: =?UTF-8?Q?Petr_Bene=C5=A1?= <w1benny@gmail.com>,
 xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>
References: <cover.1753869323.git.w1benny@gmail.com>
 <8cfd773bd5cc9ecac25a4a92104483f07021c991.1753869323.git.w1benny@gmail.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <8cfd773bd5cc9ecac25a4a92104483f07021c991.1753869323.git.w1benny@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 30/07/2025 10:56 am, Petr BeneÅ¡ wrote:
> From: Petr BeneÅ¡ <w1benny@gmail.com>
>
> * `sizeof_field` returns the size of a specific struct member
> * `offsetof_end` returns the offset to the end of the member within the struct
>
> It will be useful in upcoming layout checks of SMBIOS structs.
>
> Signed-off-by: Petr BeneÅ¡ <w1benny@gmail.com>
> ---
>  tools/include/xen-tools/common-macros.h | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/tools/include/xen-tools/common-macros.h b/tools/include/xen-tools/common-macros.h
> index 0088208c2e..3899e06753 100644
> --- a/tools/include/xen-tools/common-macros.h
> +++ b/tools/include/xen-tools/common-macros.h
> @@ -83,6 +83,11 @@
>  #define __packed __attribute__((__packed__))
>  #endif
>  
> +#define sizeof_field(type, member) sizeof(((type *)NULL)->member)
> +
> +#define offsetof_end(type, member) \
> +    (offsetof(type, member) + sizeof_field(type, member))

In Xen, we have this called endof_field()Â  (although I realise doing
this post-dated your patch).

Please could you adjust, and send out a full series.Â  I see there were
some minor changes needed in patch 2.

Also, please add a final patch which adds to CHANGELOG.md in the root
directly.Â  You want a bullet point under Added/x86 about this.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Aug 20 12:44:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Aug 2025 12:44:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087438.1445484 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoiAy-0008RO-Pa; Wed, 20 Aug 2025 12:44:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087438.1445484; Wed, 20 Aug 2025 12:44: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 1uoiAy-0008RH-N2; Wed, 20 Aug 2025 12:44:24 +0000
Received: by outflank-mailman (input) for mailman id 1087438;
 Wed, 20 Aug 2025 12:44:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fiHc=3A=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1uoiAx-0008RB-OE
 for xen-devel@lists.xenproject.org; Wed, 20 Aug 2025 12:44:23 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 65bd4f30-7dc3-11f0-a32b-13f23c93f187;
 Wed, 20 Aug 2025 14:44:23 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by AS2PR03MB9194.eurprd03.prod.outlook.com (2603:10a6:20b:5fc::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.19; Wed, 20 Aug
 2025 12:44:20 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9031.023; Wed, 20 Aug 2025
 12:44: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>
X-Inumbo-ID: 65bd4f30-7dc3-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=d8B0zMFH7QfCTV4ubQbVJnKcPGPY+1Ehj1bd9fDEzP2Bd1neBkNIClXsVD07BzllvIRxnrB/OP+TDJadSQp5LK8peTgMupEp+dPL36uYpz16ZKlwhP02VtMMpqPjGk3gkvoJY9H+eHZShYI3E25P6IhI79hTI0RSeXd9j2hf8M37yE8rnRJe+ekVBFB9zws7esRHm+RlzciJmTYmD1neuV0jBVpVR++83PZ7H3eHpkcf/K7P16XY01XHFZKwPiQQfgbAN8xqzyQ7FuujaozAuDVvLHsccmsFna2UYsMvKIUh2akwXjce5DZagHP4uPgN4Zgc3sQriek3olN9SCN/6w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=9iH5dFHiOKWzkPchOkXAXALka1CWtQksfFajkNb5o98=;
 b=H7Ujz1vOstDp/G3q9DZ3+/tGZPt8jfQwoPbLs2PuO/FON8rli2VZ30vT3xnKcH4kAnMnLO8nYQUhYxsF5wS59c1r5ve0DJARVgPV+LgvHR7YMabDl2Vk23XHp5SFe4XwAKorpaJ3m2NFXcnKUR2wnLvIDn0hQXkE9W22t4inNs8NHnhcRV/XBkvHHz+aujDIl67Yrj6yPu3JvgTDjJ4C2W/dIgKq+es3rJXDZXTRX2F0COdEQzjVZdewiM70Sf4MH7tsMwai5FsYSKw2F6Djg2lYGv+ty1yPzMgBUTIl3tZfgsHrAPoadxoT4HuQbfnZxffs4xWbwDRXO/8Jnu1zGA==
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=9iH5dFHiOKWzkPchOkXAXALka1CWtQksfFajkNb5o98=;
 b=bn04wJfnvvBMsQAV0KfKGJZRuupcg/kM/6rj0Ts/Lvgc8F3JNZd72HetW9xYh196ZGzsyqpAYgLFNVlc4vvS5tYLDxXRjpuES70+iDbt8abc0xDWa7WFKwjq8OiM+edkYHy75EmrNTKI86FYjyo1Pnqbj4RjBadsgF1AeKEYds3JgQikeoEVkbcKKpCtNVU171ODR7BLJApDES1jAFMnDWPxnMmCdsCc+oH7LBEFuQJQZNjeLILr5HlGvzaMrgoIRr4k+cyXB3MH5bXcxcZiBfIezsXDifRBMhY2iEvSCBXf7vWmmaubWkgUqAjWz9sXxNLpCaUeV1OM1nzpOZSo6g==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, Nicola Vetrini
	<nicola.vetrini@bugseng.com>, Doug Goldstein <cardoe@cardoe.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>
Subject: [PATCH] misra: add deviation for MISRA C Rule 18.3
Thread-Topic: [PATCH] misra: add deviation for MISRA C Rule 18.3
Thread-Index: AQHcEdAlL6ZgiilPSEOu1KBVqkWanQ==
Date: Wed, 20 Aug 2025 12:44:19 +0000
Message-ID:
 <901917945f704643e95842a773be9e8676f76d10.1755690681.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: GV2PR03MB9572:EE_|AS2PR03MB9194:EE_
x-ms-office365-filtering-correlation-id: 9cc36d22-59f1-4ebe-0248-08dddfe74834
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|42112799006|366016|376014|7416014|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?d3DL/lU4pzWQOnhI5ZfGcVGTLGpLyODajTLVgU0JcwDErymmToouWhjQGB?=
 =?iso-8859-1?Q?yWdES9toJjpiz4AFu73+yRqZll6XyKLysDAglmxBq3Lko2Vdl/dzSinmFt?=
 =?iso-8859-1?Q?z2QGLoFimQEe/FIv+Tb+zYf0RHgqB9IyJT2/K3bSG7zULewMir7VWFhmJP?=
 =?iso-8859-1?Q?AA+c9xpZGjgiMg5XAPQGHDQfqffqwVbsFBoezEKtjAXevA/XDeCls+vgMj?=
 =?iso-8859-1?Q?7iU2Ji6JtS2dTAwjsfUWdPsGBEm9VqxrE0YDxx2FLnSuWux9HDFfK0+pV+?=
 =?iso-8859-1?Q?8Nd7kgFgEOemTcY8Ml2I+Olhz5ohop9brS4UIAsb7KvTWTM5Hd96DzdHrA?=
 =?iso-8859-1?Q?Tdh6S6dOFIN5i/6YrsaOb1+0n7uci+EF28dKurRkKR6xI3AW/0N4Tujxiy?=
 =?iso-8859-1?Q?Sj+Rnl2Mzs3098/BimbYJummv+dgIy9JBXFHabLMtX9v+F+o29yzgBjUPp?=
 =?iso-8859-1?Q?n/PV3OI2RjZU1WT7ubOP6ba7XeFvneuu7ulNwh1UppmkCVCwEDZzeu8fo+?=
 =?iso-8859-1?Q?tmKM27HhrqohHM0Rl8exsxvciY2V2//7zbF/qpWENfd7eZiXVi9BGO5bWF?=
 =?iso-8859-1?Q?47BPXqsjjWwygu4M8FiIaYk7sNyAPw8PZV1rv2Useie8ohzMPTFXftSQrZ?=
 =?iso-8859-1?Q?fSqJ6Mg74VN/pifdo5jdTepELkKtzSmZCPcd18gIJtzg9GsPns9gr8PsTp?=
 =?iso-8859-1?Q?WONGtjqkvxOXIqblOOEVuSuz9Q6lM85BU+fjQcCpyucCrFhYSQ/1RJUx/R?=
 =?iso-8859-1?Q?cU1TXOBHVgGk7211L9en7JEd0itf4OTvh8UsrnUSHTH1tQSw9Y71os10Hg?=
 =?iso-8859-1?Q?RatwpChZwFZuV/YiXcANxWREhMW4CMEIqAlSKhs4qgoaERLzam6kGSybed?=
 =?iso-8859-1?Q?qug7gID05/UHzv0hVV8g1QkfQBnQfCYsRezTSC1J7OwMU7HfYvTfWhqJDe?=
 =?iso-8859-1?Q?he28tUFSkhaO+UjfdWYymhociMYQQ7oBkj6IIB5oL4theKdbmPEsRpMmHG?=
 =?iso-8859-1?Q?1X7a4u77Mq2YlFhOrUyghLP/Qcqlyfo0K7jHBvN55YvpfHwkmYFuVSvfS/?=
 =?iso-8859-1?Q?apa8lphaigs8bx647qOvB7NOTbaL7z/2BTDibjpoEENE/jza7Tah5kZ5sB?=
 =?iso-8859-1?Q?3yxaaRgaYTcc1rhaP2vlbCnT3jFLkJKHUHVx5jR2GzhJn7fk2yGIy2kf/m?=
 =?iso-8859-1?Q?jQZ/jUbDaHKiufyw9zetRls10ljsa98P7Y6SY73BgnW0lMUKgS3N/UPymT?=
 =?iso-8859-1?Q?ohuM4TXcP5VlKootbwluU1SK4pkWMVb9GcJLtJwjuEQ32YdV4GCerrHc+F?=
 =?iso-8859-1?Q?v5UbH7SNXGHeyq8sM3RBG251oyzgopjdNrc8Qo/9EjNcpzqXpcX0vWSCPh?=
 =?iso-8859-1?Q?28pjYpjbRvq/xhNi9TKRYXW2LV6zNKKMHciNXB00bdflecZqLr2wklvlCR?=
 =?iso-8859-1?Q?Jic3yV2ZMTw9kJkSQHSKwkd3I9NlIYC/rXMr/v31/T1sGpHQg7DR1ltQVn?=
 =?iso-8859-1?Q?0DeNpUR17wvqpfRmPq0CvoYggIilBI/sRe/u+K5POHJ1tYGV9tngTGeuvk?=
 =?iso-8859-1?Q?0z3zk7g=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(42112799006)(366016)(376014)(7416014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?1EEt7F09NECk705Ckmgg+27kA/W5nKS3vPmqOIE1iEp5Z+4TYFtHgoOLKP?=
 =?iso-8859-1?Q?Ql6d3gJpxfEobxUJ5DSlcfx3p1C04waekeORkaaf4R1bNCS+/7POkgl8Lv?=
 =?iso-8859-1?Q?yje1MBFPfyCQDDZgVjgrcXWMQSbK1D6LxtmGpePqmLYcSFWTroP/K6pkHe?=
 =?iso-8859-1?Q?0kLAmowcsoQxkzBrmeGFhnVHn2FyeHsEIYr24rZlrk+KH+wDdmXB5XUQHz?=
 =?iso-8859-1?Q?df52jbsZrsIipTL5A0muKv8p6b8jkGzUU4/fuDPwk3wm02B/HA4JYL02y2?=
 =?iso-8859-1?Q?1V8/6HXTlQHXFYmHMFk8TZzSoGOp0VOZiKbE4cr5BbphqhCdpPsdHuWncj?=
 =?iso-8859-1?Q?OKPyj5BwGpZFSWfW8WIhGn5gcKlQwjmN1UHBzkSQ3skuCVivSTHzkXwExZ?=
 =?iso-8859-1?Q?hb3K4E0Tlvpp8z+GxnT8RMwodH9CnmX7gXhRBKiYjyMj+YKiO3BtTipdAK?=
 =?iso-8859-1?Q?3IjMPrxrl87W3R/TOLue6MeowtjEs8fA0155FaHZudgS7/DF+eZHngnkfe?=
 =?iso-8859-1?Q?T+mpSIzsBbIE/A6quM3nhY0zkNshlQRPmCc1D3hhyJWbUzOD/tJ5gzK4R9?=
 =?iso-8859-1?Q?mUKcSLZUBQIjHGDjdzeppAGmUyaCoThgr9zdQscpOi8ORmD24TAtp1fj9/?=
 =?iso-8859-1?Q?eYJDNBg2RYed1GfzUBwXetlgr4zQk2VI+2X3+iatVEnuGtDRP0xSmxCJ0Q?=
 =?iso-8859-1?Q?Rhe8rofWoIziLWiVe4yYJ94kh1ofyD6JJIck8ntEn0O/hHwDDEuB2J4PYl?=
 =?iso-8859-1?Q?U/9biOC7Og/E+LpyWR886jFpgQwYB4RHV3A9qC7YvdNHUaPM5iTNeW4BAC?=
 =?iso-8859-1?Q?G0cCZen3jx1H0Fhb9ys4hhpijDzVanrLqey2bosNzguS1H1THjGkXwGR5G?=
 =?iso-8859-1?Q?OSi16Krph2Jf5nw7N3O//vBBYoX6nS/1G16KloOCVCN2k3kh+r7fROtBlQ?=
 =?iso-8859-1?Q?X3uXXtOMfu7dZEGulrW8CB2Evf9VNwQ5w0u2klgGmhYb1lasfqmyDDxOhV?=
 =?iso-8859-1?Q?yY1xImIKZfY5K+TXOx5c7+98ClnW87hVx0T8PE+Av3nofcmAoiii3/QZhp?=
 =?iso-8859-1?Q?TbmXaXS2rYdtjFhutVnEMV6ooaGDunVZiHg/nyr67dXGwxCBDW4Nc40ybl?=
 =?iso-8859-1?Q?d6jK+dwuy78nQbQfE2qBRBIMlrKRyV+XxRclcQvNFHj3CVcu8QSb7YU7+2?=
 =?iso-8859-1?Q?EHouYmPY8q/SjcqMcodLm6tgtlPGUmG7fcfu06zKce3oNTdwUNahMUudQV?=
 =?iso-8859-1?Q?o7qB8/l1PgidQ+OMK8znaPaFrW1GJilRmk9Zph1m5PwhpkjY0XBwkKDL+k?=
 =?iso-8859-1?Q?jtREe/hU4ZKtkreOelUdOP9Ef8WSlQoGXrUDCWogJ+/KeYR2oeE2ZFA0tX?=
 =?iso-8859-1?Q?/0oV/qq3m8OEhfXW0pQAHa+9fn+wLxymfUBteQV+zB/6Qz3i/y5QdRIPEY?=
 =?iso-8859-1?Q?5/VmDaNGO3X4XiLfNy5owdetxqoUZAFwzzGtgHa50W7BvLJZh1T7PnrioC?=
 =?iso-8859-1?Q?/v4JjuQ7noEB3NxfuvCv2JOwYupCqt1i4TpUko1lKz28evAkPB9SXbMcP6?=
 =?iso-8859-1?Q?6GijYrUi4pruWav6lxb771AaH5DflIidqtSxhVDW5oiaZfBYL6MDO0XplZ?=
 =?iso-8859-1?Q?kjEqG5KupQwbGIxGFmhfI4gtBHqb9a60/GJ4aYLnLuoKjRJz62iABN4w?=
 =?iso-8859-1?Q?=3D=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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9cc36d22-59f1-4ebe-0248-08dddfe74834
X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Aug 2025 12:44:19.7930
 (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: nIoyBKhGMwlwho09asHizkNoR2VVBNb2QpzbK1TmnKXxTi6CdIfpgWMNZ3n05aXSX03kxHmztvkIpb3BeFH19J1vJyqCPIXzz8MyVUw4XuY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB9194

MISRA C Rule 18.3 states:"The relational operators >, >=3D, < and <=3D shal=
l
not be applied to objects of pointer type except where they point into
the same object."

Comparisons in the 'find_text_region()' function are safe because linker
symbols '_stext' and '_etext' represent fixed virtual addresses within
the same '.text' region, and the function 'addr' argument is explicitly
compared to known valid memory bounds ('text_start' and 'text_end')
derived from these linker symbols:
    if ( (void *)addr >=3D iter->text_start &&
         (void *)addr <  iter->text_end )

Configure Eclair to suppress violation reports occured in the function
'find_text_region()'. Update 'deviations.rst' file accordingly.
No functional changes.

Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
Test CI pipeline:
https://gitlab.com/xen-project/people/dimaprkp4k/xen/-/pipelines/1993673043
---
 automation/eclair_analysis/ECLAIR/deviations.ecl | 6 ++++++
 docs/misra/deviations.rst                        | 8 ++++++++
 2 files changed, 14 insertions(+)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/=
eclair_analysis/ECLAIR/deviations.ecl
index 7f3fd35a33..32b596c9da 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -590,6 +590,12 @@ C99 Undefined Behaviour 45: Pointers that do not point=
 into, or just beyond, the
 -config=3DMC3A2.R18.2,reports+=3D{safe, "any_area(any_loc(any_exp(macro(^p=
age_to_mfn$))))"}
 -doc_end
=20
+-doc_begin=3D"Comparisons in the 'find_text_region()' function are safe be=
cause linker symbols '_stext' and '_etext' represent fixed
+virtual addresses within the same '.text' region, and the function 'addr' =
argument is explicitly compared to known valid memory
+bounds ('text_start' and 'text_end') derived from these linker symbols."
+-config=3DMC3A2.R18.3,reports+=3D{safe, "any_area(any_loc(file(^xen/common=
/virtual_region\\.c$))&&context(name(find_text_region)))"}
+-doc_end
+
 -doc_begin=3D"Flexible array members are deliberately used and XEN develop=
ers are aware of the dangers related to them:
 unexpected result when the structure is given as argument to a sizeof() op=
erator and the truncation in assignment between structures."
 -config=3DMC3A2.R18.7,reports+=3D{deliberate, "any()"}
diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
index 2119066531..a726fb22a8 100644
--- a/docs/misra/deviations.rst
+++ b/docs/misra/deviations.rst
@@ -586,6 +586,14 @@ Deviations related to MISRA C:2012 Rules:
        are safe.
      - Tagged as `safe` for ECLAIR.
=20
+   * - R18.3
+     - Comparisons in the 'find_text_region()' function are safe because
+       linker symbols '_stext' and '_etext' represent fixed virtual
+       addresses within the same '.text' region, and the function 'addr'
+       argument is explicitly compared to known valid memory bounds
+       ('text_start' and 'text_end') derived from these linker symbols.
+     - Tagged as `safe` for ECLAIR.
+
    * - R20.4
      - The override of the keyword \"inline\" in xen/compiler.h is present=
 so
        that section contents checks pass when the compiler chooses not to
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Wed Aug 20 13:03:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Aug 2025 13:03:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087453.1445495 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoiTG-0003Fl-AF; Wed, 20 Aug 2025 13:03:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087453.1445495; Wed, 20 Aug 2025 13:03: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 1uoiTG-0003Fe-77; Wed, 20 Aug 2025 13:03:18 +0000
Received: by outflank-mailman (input) for mailman id 1087453;
 Wed, 20 Aug 2025 13:03:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ZNac=3A=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1uoiTE-0003FY-16
 for xen-devel@lists.xenproject.org; Wed, 20 Aug 2025 13:03:17 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 078a1e9e-7dc6-11f0-a32b-13f23c93f187;
 Wed, 20 Aug 2025 15:03:13 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id DFBFE4EE3C0D;
 Wed, 20 Aug 2025 15:03:11 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 078a1e9e-7dc6-11f0-a32b-13f23c93f187
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=1755694992;
	b=W7IhvnnCyIhs82IWL9liElbtNUPiUnb/46KO462GDmUz94T9JIJrr90FciJVm7G6Lx53
	 ctGv4m5Bt6eZQMPo201UFnh7cbGHbHjviPft404lWMUiBY3oEgGkd7JTc5NMxtIdrlFw2
	 aQ9t/us5SA6w24DYcfTySe7brcCmErwYPpjIllj/4918WnmG3NOfSteTzb6sDqUNJcYwo
	 5ySe9X+6iaMRM4SUzz+9lEbCuUPmLKY3umWOe65RQD7ik88UIuOnrVdS5XlVRjp9japik
	 1Kw8ftU8n/+L8rP2j6OQXDum6M43NAC9MECDPRlOrtoUtR0AEZoyeJ2CniVhR7IZZ/sYJ
	 gcwP510VgiMyIAHOjr2ugi50LXYywfuuFsB4LH1GDslCnumbs/p5QBvK07QQsL8pkLK1H
	 koiV+oi7AJxajeNwuivQYWCQytFP827OaocDEHaXC8nGCZKg/uuA4+v/3rVwm92ubCAUO
	 CNhdnotQCBzs4DZiYYcJ6CRl/srkL5bJm4o3GpBRY9o7nTRgdQx2rTHCOs7/C4tV1B5qU
	 BSOKh5Qv5PPAQ5MwE4u4KJzSPfIHx05ekXNGTn2TMZmAAc270tTwD9Gf6KfHnm7cx+VcF
	 2iLpleBiUCBkWVaL8hjeKKXW8shWCjtIMSTWPv3cE18d8e4//6xpEgcn5eJhJ3Q=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1755694992;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=CB/q5y7FPjAryA9XHIdlKTQPQlU5KjrEPv8xlhx/Jp0=;
	b=OMiYFol4Atxhea15OJR/cCWNvlL2GnQXt0gfF18fSdXMfzkAJoe36vFUVPEoZL7Widgx
	 wBAzhL31DkjCQVFHu57SyehWxc+aCA5LBpfjx37c7i1A92E+prZ8DvkxxHKaK+KKuz5Ew
	 RCfu6AbRig9CTNLijX66tZ2SK+M9LDmnYKJbn6hLWnLzixBalBGsWbQ9ahYWlufVm0X+C
	 0AkVHBWATxq56GK8dR1bElL//yoGUXRk2v+GvoZlFbTPvjmWluro6dwR3zHRY3uhLSiqs
	 fgz26bpWiQ38tXk28b4idaOc1lmIwpvbE4VseUng9LEhb5MrrrmHACQZINKlalkVfK9tS
	 7eE7pVG0+hjetcBGg3gBdB1yD1gvWyBmTdgj+CGc7TOK4FOOj5G8tXIw1dIjcsg0ImF+Z
	 6U3fCLFKvDd9cS1CZIioElJkhnyVm5dfltSZ39EpKjTMcXqVIOvXkL/5tgKTAKHHnLQ9y
	 5lxPN4FscA40iuTtuXncG9WfUirk6+9LtQJEYHO/Yob1p4AhITTfbNGAtn4lFBa7V7Z3Z
	 DCdjBh6VTyixVK7JzP09rEKarfRCRuM0nGSyj76M5IOd7BeHp5ya9x6KgWJgpiYvfqTrX
	 cqrjmdDsB8tha/ZEOZQkGB7YAod2eNucEfQpGaVfH6Xd58ZT42x/WXmUFA10H1I=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1755694992; bh=THbq3nhrfitahUJ/far0AZs1qme5UUHJVMgR8xdpiSU=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=qSK9Q/40sNaQGw790SdGQozMYW/emlCWRYU9e1BX2wcski7ttgYE143sXP7QGJfg5
	 Bq/dTPiRkbMUue9AiqYXh5YTZ/R2KX6H7mw2O/uy/Q3srn1cX35UbeJg0d1Bu8Jc6V
	 a9OMgeR0s+tONJVfhOSf9W74mLiO7798KyQSOxVtEEZyPESsB+wjoGs7dtGzakYTsd
	 ozMm6Sp3GR/m9/Aa1Oe/ka2fuxs45j40LwQ3lpYGJT80JSdJicaeVF6jDyvyerWf0j
	 ZGMAmmWEChCjmug/HIZDDTJK4QZlqWIE+BkAkQdZeKqXqOeAjgOh6aZR0mmiswtJel
	 UvLhNqcAw0m8A==
MIME-Version: 1.0
Date: Wed, 20 Aug 2025 15:03:11 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: xen-devel@lists.xenproject.org, Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>, 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>
Subject: Re: [PATCH] misra: add deviation for MISRA C Rule 18.3
In-Reply-To: <901917945f704643e95842a773be9e8676f76d10.1755690681.git.dmytro_prokopchuk1@epam.com>
References: <901917945f704643e95842a773be9e8676f76d10.1755690681.git.dmytro_prokopchuk1@epam.com>
Message-ID: <ff2543e8fe894fbbc1a0b015c80c6d75@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

On 2025-08-20 14:44, Dmytro Prokopchuk1 wrote:
> MISRA C Rule 18.3 states:"The relational operators >, >=, < and <= 
> shall
> not be applied to objects of pointer type except where they point into
> the same object."
> 
> Comparisons in the 'find_text_region()' function are safe because 
> linker
> symbols '_stext' and '_etext' represent fixed virtual addresses within
> the same '.text' region, and the function 'addr' argument is explicitly
> compared to known valid memory bounds ('text_start' and 'text_end')
> derived from these linker symbols:
>     if ( (void *)addr >= iter->text_start &&
>          (void *)addr <  iter->text_end )
> 
> Configure Eclair to suppress violation reports occured in the function
> 'find_text_region()'. Update 'deviations.rst' file accordingly.
> No functional changes.
> 
> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>

Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

with two NITs below:

> ---
> Test CI pipeline:
> https://gitlab.com/xen-project/people/dimaprkp4k/xen/-/pipelines/1993673043
> ---
>  automation/eclair_analysis/ECLAIR/deviations.ecl | 6 ++++++
>  docs/misra/deviations.rst                        | 8 ++++++++
>  2 files changed, 14 insertions(+)
> 
> diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl 
> b/automation/eclair_analysis/ECLAIR/deviations.ecl
> index 7f3fd35a33..32b596c9da 100644
> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
> @@ -590,6 +590,12 @@ C99 Undefined Behaviour 45: Pointers that do not 
> point into, or just beyond, the
>  -config=MC3A2.R18.2,reports+={safe, 
> "any_area(any_loc(any_exp(macro(^page_to_mfn$))))"}
>  -doc_end
> 
> +-doc_begin="Comparisons in the 'find_text_region()' function are safe 
> because linker symbols '_stext' and '_etext' represent fixed
> +virtual addresses within the same '.text' region, and the function 
> 'addr' argument is explicitly compared to known valid memory
> +bounds ('text_start' and 'text_end') derived from these linker 
> symbols."

Maybe ['text_start', 'text_end') here and below to emphasize that this 
is a range?

> +-config=MC3A2.R18.3,reports+={safe, 
> "any_area(any_loc(file(^xen/common/virtual_region\\.c$))&&context(name(find_text_region)))"}
> +-doc_end
> +
>  -doc_begin="Flexible array members are deliberately used and XEN 
> developers are aware of the dangers related to them:
>  unexpected result when the structure is given as argument to a 
> sizeof() operator and the truncation in assignment between structures."
>  -config=MC3A2.R18.7,reports+={deliberate, "any()"}
> diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
> index 2119066531..a726fb22a8 100644
> --- a/docs/misra/deviations.rst
> +++ b/docs/misra/deviations.rst
> @@ -586,6 +586,14 @@ Deviations related to MISRA C:2012 Rules:
>         are safe.
>       - Tagged as `safe` for ECLAIR.
> 
> +   * - R18.3
> +     - Comparisons in the 'find_text_region()' function are safe 
> because
> +       linker symbols '_stext' and '_etext' represent fixed virtual
> +       addresses within the same '.text' region, and the function 
> 'addr'

s/function 'addr' argument/function parameter 'addr'/

> +       argument is explicitly compared to known valid memory bounds
> +       ('text_start' and 'text_end') derived from these linker 
> symbols.
> +     - Tagged as `safe` for ECLAIR.
> +
>     * - R20.4
>       - The override of the keyword \"inline\" in xen/compiler.h is 
> present so
>         that section contents checks pass when the compiler chooses not 
> to

-- 
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 Aug 20 13:23:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Aug 2025 13:23:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087468.1445506 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoimX-0006Mp-0t; Wed, 20 Aug 2025 13:23:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087468.1445506; Wed, 20 Aug 2025 13:23: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 1uoimW-0006Mi-Si; Wed, 20 Aug 2025 13:23:12 +0000
Received: by outflank-mailman (input) for mailman id 1087468;
 Wed, 20 Aug 2025 13:23:11 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=C0ee=3A=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1uoimV-0006Mc-G6
 for xen-devel@lists.xenproject.org; Wed, 20 Aug 2025 13:23:11 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d120d3c4-7dc8-11f0-a32b-13f23c93f187;
 Wed, 20 Aug 2025 15:23:10 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-45a1b066b5eso34461365e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 20 Aug 2025 06:23:10 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-45b47c29be6sm35098825e9.5.2025.08.20.06.23.08
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 20 Aug 2025 06:23: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>
X-Inumbo-ID: d120d3c4-7dc8-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755696190; x=1756300990; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=nca8j07YWORlafoQu2r/Sn7ocEyEHy7i27QbrcQ4Xqk=;
        b=Ih0LG7aqphzy/6dKbnIuvpa7ujpWdbnvdjOAGzBqCUCXHM+rHNbnVYMjjtLZhUA/X9
         Uh2LqCPoKqgeJ3HjfoFxeZ1NZYSOYe7/9jyXRJfPYD5dOUbGB+O2CaGJz0xccl5U85rZ
         +oidlSxRR0r2JRo1ZmoKVTDMSTECSRYkJAHho=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755696190; x=1756300990;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=nca8j07YWORlafoQu2r/Sn7ocEyEHy7i27QbrcQ4Xqk=;
        b=j8+H2o3GaJq9Fe+ABtWmP3uWKr+MiM5xhgesZrhxlEzJKFVVAx/zL+jKE1wMAv3iH3
         jkogaWMYb7WT7h+6drSK+nyX6z2PgzrGS7CjanaT+MaP+2hN29gOgsBplDDjLUtq9dKE
         bN9bvAEdP4zMX3UzeXCrAgEotuLFzbc0raOI+3QH0nWWq3jdjNbGoRrtvO4n7uI57vVa
         WyJEvesgWKdZGztjR+GTh7EVzJIMdu9HPjXZa/ZlKxohZCr+ft2VUol/IQxreYdFj9rF
         EeGdtlOFPK50Da7A4qnsJMxdQG39RSvjyCSjTVpCj0d2qpGmiXVAMrqq3BPq4V5T15u/
         r3Wg==
X-Gm-Message-State: AOJu0Yw8pCajiAaG7bXXnLtmeqI3puPrZMKzLx0A+KdaEUy5fdZoks/M
	OvXDzARNGRfdrvOLn17IWgeKdsB7+rqlWTCP16AV2u65imT9KWzzLCRABxhcv/oc+tc=
X-Gm-Gg: ASbGncsQkO0Nf5gczA45/poc8HzAXKyhAotkL23pE7quCn3DmfbsWnhZf8Drj07U2R5
	yeKNH0iUlpYF53IYtPsp/Q9+r4bY1357DvxoWFgmcTEBjkj1knhEcuNO2gg1rwMPKP2/en4KZCL
	bcXspzQtZ9KqdTBQ0LS5YGIAwydYyZQdOaziGn0q3uoqitLWcAv5kIN34dgIdy70jnTlR2fB/WM
	Q7dO0PSeImaF9A4YiKV7rDXQqzNvZHrG7yk19Mxo5+RrW6uQUjH6aPr7KOBo7IAD4xsFBFm8Yb5
	GEDeJO05TW0Cvi80UbsGz5W4WWYTW6LdBfPskQ1xcZyFD0hZ+XkCelcMoWCTFPDFC0DDIZbSixX
	vmuyllS4/3UuBVW4t1geXKlU6Q5vAOSoku69/yrvcDVQjlcAkD50Jfbd0D5chE5kwRA==
X-Google-Smtp-Source: AGHT+IHP+zriFXjutB2mI8oVKEHUc2pA9Hh9UjUikzJzyLg3DTrprEjkuLf6M54PVwfCeJfG7QJNjA==
X-Received: by 2002:a05:600c:354c:b0:459:aa0a:db2d with SMTP id 5b1f17b1804b1-45b47a0ec9bmr21572465e9.28.1755696189621;
        Wed, 20 Aug 2025 06:23:09 -0700 (PDT)
Date: Wed, 20 Aug 2025 15:23:08 +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>
Subject: Re: [PATCH] x86/iommu: setup MMCFG ahead of IOMMU
Message-ID: <aKXMPFjxuS0bpr8e@macbook.local>
References: <20250819171826.60700-1-roger.pau@citrix.com>
 <6852c430-155c-4530-8aa6-67a6e97ef6b3@citrix.com>
 <aKWykl7UiTZmtGYW@macbook.local>
 <541c8586-b77b-478a-9dae-cde7884ee57d@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <541c8586-b77b-478a-9dae-cde7884ee57d@citrix.com>

On Wed, Aug 20, 2025 at 12:37:51PM +0100, Andrew Cooper wrote:
> On 20/08/2025 12:33 pm, Roger Pau MonnÃ© wrote:
> > On Tue, Aug 19, 2025 at 07:23:57PM +0100, Andrew Cooper wrote:
> >> On 19/08/2025 6:18 pm, Roger Pau Monne wrote:
> >>> diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
> >>> index 6fb42c5a5f95..bd648323bfed 100644
> >>> --- a/xen/arch/x86/setup.c
> >>> +++ b/xen/arch/x86/setup.c
> >>> @@ -1938,11 +1938,10 @@ void asmlinkage __init noreturn __start_xen(void)
> >>>      setup_system_domains();
> >>>  
> >>>      /*
> >>> -     * Ahead of any ACPI table parsing make sure we have control structures
> >>> -     * for PCI segment 0.
> >>> +     * Initialize PCI (create segment 0, setup MMCFG access) ahead of IOMMU
> >>> +     * setup, as it requires access to the PCI config space.
> >>>       */
> >> Again, this isn't terribly clear IMO.
> >>
> >> "ahead of IOMMU setup, as the IOMMUs might not all live on segment 0." ?
> > It's not just IOMMUs, but for example on VT-d we also need to poke at
> > the config space of bridges, and when such bridges live in segment > 0
> > that results in garbage being returned.
> >
> > I'm not sure acpi_iommu_init() accesses the IOMMU PCI device config
> > space, but it does at least access the config space of bridges in
> > order to detect hierarchy.  See how acpi_parse_dev_scope() performs
> > PCI reads.
> >
> > What about using:
> >
> > /*
> >  * Initialize PCI (create segment 0, setup MMCFG access) ahead of IOMMU
> >  * setup, as devices in segment > 0 must also be discoverable.
> >  */
> 
> Yeah, that works.
> 
> With those comment adjustments, Reviewed-by: Andrew Cooper
> <andrew.cooper3@citrix.com>

Forgot to add it, this patch should have:

Fixes: 3950f2485bbc ('x86/x2APIC: defer probe until after IOMMU ACPI table parsing')

In the commit message.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Aug 20 13:35:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Aug 2025 13:35:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087477.1445516 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoiyR-0008BI-1x; Wed, 20 Aug 2025 13:35:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087477.1445516; Wed, 20 Aug 2025 13:35: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 1uoiyQ-0008BB-U7; Wed, 20 Aug 2025 13:35:30 +0000
Received: by outflank-mailman (input) for mailman id 1087477;
 Wed, 20 Aug 2025 13:35:29 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=awzM=3A=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1uoiyO-0008B5-Ug
 for xen-devel@lists.xenproject.org; Wed, 20 Aug 2025 13:35:29 +0000
Received: from NAM04-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam04on2062b.outbound.protection.outlook.com
 [2a01:111:f403:240a::62b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 87d024fd-7dca-11f0-a32b-13f23c93f187;
 Wed, 20 Aug 2025 15:35:27 +0200 (CEST)
Received: from CH2PR05CA0051.namprd05.prod.outlook.com (2603:10b6:610:38::28)
 by DS7PR12MB8276.namprd12.prod.outlook.com (2603:10b6:8:da::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Wed, 20 Aug
 2025 13:35:20 +0000
Received: from DS3PEPF000099D5.namprd04.prod.outlook.com
 (2603:10b6:610:38:cafe::9b) by CH2PR05CA0051.outlook.office365.com
 (2603:10b6:610:38::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.13 via Frontend Transport; Wed,
 20 Aug 2025 13:35:20 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 DS3PEPF000099D5.mail.protection.outlook.com (10.167.17.6) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Wed, 20 Aug 2025 13:35:20 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 20 Aug
 2025 08:35:20 -0500
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.1748.10; Wed, 20 Aug
 2025 06:35:20 -0700
Received: from [172.29.245.54] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 20 Aug 2025 08:35:19 -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>
X-Inumbo-ID: 87d024fd-7dca-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hKDxDDDwyTvEsTEKR1AbyPkot48nJoLr6cku2e5tt82RFqn7QZH2CZ8wEXGqAx4oL7ZNCu7mmQNzVz8HMFBkRvYlJeo1JChCetSemXIwIbIDI5Qflu8pQrRk75ukD7o3W4UWh4TFZcID1VfQ30CciY35c2IdbLWLqo0Ny5ofL8BDLQv284pzagPdtuC2ntwcUggtTELeU/93wkM1E6azcy1IY9vMuGTcldcKJw88pcmHnU/aR8Qw3bGMB41yxpc2pyvgMn2JH7BRttWMndF3Pm2P4VMpIWXm6srQzb0uyxy2bW6mzVF+/QDWeRUQrjDGW3Sa3ZXjO8yPFd/UOQ7vvQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=KQhdJZ6ooBYsbcX96waI7vkFshAMHCc/zOWAtlG7+yc=;
 b=pXee6YNqZBDvBLxh684RWyhFlyBtT88/Vm6E0WMvcFaf+TG1neiIQt42FZLXg+2p4oVAU6DM+GtpFzTUZXhPPglIxQbO6gJRJPDlJoF9siWqr0DFp6DiZbUQTKBSUTJ/IyrnJyS5ROmzBM0LAVM5cmUKkijSulNv/OIn+9LVQtGQg+ID5HH5AqdxurHxaB/2QQOFvqJJK355iPdEdxGiO3Uzpx9niPd9DpFmrkFLh3rMq7vyTgT0PE0PrWET4T9C9rV/+AVRqT769KJxoqh+GtDGdgClgRbQf1gnewRNwV+MhrJ2ryNGVvY5MgxCpk2NmAugecOJWz4GCMBxBaPzRw==
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=KQhdJZ6ooBYsbcX96waI7vkFshAMHCc/zOWAtlG7+yc=;
 b=3RH1GWfWzEqi9x6Olp2/+jwjqQNQZVoro11e/3q6YvFEI3N2ARO4Wt1xBz7TUwh/y3fq7Vw3rN/TnUMvg4DRpu41F7D9G1rEXmrgnc/LKeYlLhDScav2yrNl9T18HrNZ1/pqVIsy/Mj9e32GEKUHFaucN8yjHi4UIH1+K2CKL9c=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <8c5c8a19-8ac5-4244-8179-964b23cdd9b4@amd.com>
Date: Wed, 20 Aug 2025 09:35:19 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH] tools/xenstored: fix possible NULL deref
To: Juergen Gross <jgross@suse.com>, <xen-devel@lists.xenproject.org>
CC: Julien Grall <julien@xen.org>, Anthony PERARD <anthony.perard@vates.tech>
References: <20250820104617.5268-1-jgross@suse.com>
Content-Language: en-US
In-Reply-To: <20250820104617.5268-1-jgross@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS3PEPF000099D5:EE_|DS7PR12MB8276:EE_
X-MS-Office365-Filtering-Correlation-Id: cd69dfc0-8f8b-47f1-f3d5-08dddfee68a4
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|376014|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?VnhzYTlyV0hvWDkzMndDTVdIYzF3dFRCZDQxRmpsRjhOM0c2WHpHOW5UelN3?=
 =?utf-8?B?NXBlMG5sZGowNVQ5aTVvVGtwQnljeWUzdmRiZnNJSEdFend1VFljdWpWajhZ?=
 =?utf-8?B?M2N6VUd5ZjNMZ3owTDFOYWdtR0lqMFFVb2RNcEtMS3RiQnQ0MERUWlBpK3VH?=
 =?utf-8?B?OFhoVnJPcG1XTlN1K2Rad21iajFINERUR0ZUMGVBYk9XSE56N0c0NEp0QkU1?=
 =?utf-8?B?MU85UUc5cjhSbzNtamZDT2EzMFVEVWlJbHREckFQSU9BZU9PbjVFUkhpWldi?=
 =?utf-8?B?emVWN083M3R4YS9rQ0tJYjlkM1pHSjd5VHdyZWpET3lIZ3duaS9GZ0lkUy8r?=
 =?utf-8?B?TEZldE5XZnJ3UWVpNTVRQzRzaUhiUUtzQW1qVWkrbWFsMGZGeDhNcm1FTm9R?=
 =?utf-8?B?RG9rS2g0eUtacTBudCtNWXVZOTdJNnpDMm9XY3E2Tml0UFdZeHVra3V1UVcx?=
 =?utf-8?B?Smo3SEM1QVRvRmdHbS9hZzNIQVZJd0hDdWJKZDRPQVpBVkR0M2JUZGEzNDBv?=
 =?utf-8?B?RFFUTFgySjJvakY1ZkRqeU54S1d5cFF5d1YrZ0tYSVJwaVdneWJCVHdjb0lz?=
 =?utf-8?B?NFVnWjA4R0ViSVRUVFJUM3g1YWo2OUtxNzZVSmIwd1kwdThZNFcxYk1Vak9r?=
 =?utf-8?B?MmtjMUhRZTdodFFhN3RUNXRxUkE1Vk9HRXlpd29oUzFtaEd3elNqQTlUMXNr?=
 =?utf-8?B?NTZpelVjRFB1aDNWUzR1SktJWU1mVHdVWnMwUGxUWUxEY2FVVGRiS2xTQi9K?=
 =?utf-8?B?MXlNUW15MWhsT1RIaUh1ejFYK2krN0txZEVHZ3FpMVhIaTZDVWU2UGlFWlgv?=
 =?utf-8?B?SHg5Q1VDbTgyK08wV09PWjFKYUZGUXNEQ0NRL1hrWU9oUDduM3BXb0llTUJ0?=
 =?utf-8?B?UVdlTkhkWFRwYXlncmcwWUczTzRlVE91aHhvUUQ3RnkyUmJPZ1U0VEN1blBS?=
 =?utf-8?B?YlJPWGx0SGNxcDZyeWFpWlg1RHFJVVRTMzdSWFhTbytOdW5mZ05jdTdndW1a?=
 =?utf-8?B?dGlxbzh1SkVncG8zTyt0WmhObE1tbnJycm5wY3o2K0dNK1ZIdGxSWGI2QlNK?=
 =?utf-8?B?bXFMWXE5Y0laNkJ0MC9KbDhWWkdpY0NIVzdvdkhOaFRTd3NMblBSV3Ftanla?=
 =?utf-8?B?OGZ6bkZnYmdrV3UxUEUxTzBhUm1uSTJPcHg1Y2gyVGRHMDJkWXZ1VGp2SDdj?=
 =?utf-8?B?aGIrN0hjdzQ4cFdwY1J3emxNa2gvOGpVVTZEV01GOFhNZko2b1JhK09Td1BI?=
 =?utf-8?B?MC9iMjhzQ2lGM09rV3dhaTVyQWZCcXc4RkVOZGNjaXBOQkVJOHNETzhMdk9E?=
 =?utf-8?B?R2lNa2kxVDgzSTVRSTFac21zM3FXS29WVGhHRis1R3pxQmJkaGx1dWcvbGpJ?=
 =?utf-8?B?ekVuaGZlRmp1a2pLdWw1QnlQdk1NVVA2UXBubXRQdWcyRjhyQjI4VktIL1Nm?=
 =?utf-8?B?S3QrKzN1QTl6dnNIRGlHWUxLYXNWbDRoYUQycCtZbllyN1YwcGZ3SU1UdUwz?=
 =?utf-8?B?WnlyR2VLNEduckZCVW1UZEVWNzRZZmowblByM2xWN3pWZ0ZmbGxEcEZSUDJo?=
 =?utf-8?B?eVREVHpodEVCaERjM3F5S3lSQmxCeUtiaEFOSVFGaWJYWEpiVXdxQVVjVnZQ?=
 =?utf-8?B?ZG5Qa2pMM1FoUlhXamtPMElpNW5UTUpwRnJXUkNoYVZmOEo4bmkvanlxOUt5?=
 =?utf-8?B?Q3d0eCtHOWNLazlJanJxbklhalVtaFBLTDB0WmRjQUFmcm1taVl1eG9tMVQ2?=
 =?utf-8?B?U0hEZ2pwYmlWRjJ4b05ia1hQTTF5eHJFRDF1SWphQ2VRUzFmdHlVUkIzcXRG?=
 =?utf-8?B?aU9yYjdIbnNlTjlyaFJBQVF1V05EWWllZUwwZWRGaWhDNngvUUQ0em5HRXZH?=
 =?utf-8?B?Z0tIdUpXQ0Q2Q0w1U20rZkR5N1hwWVduRDJZKzAzTFowQ29qc24rMFo5YjhG?=
 =?utf-8?B?STV4UkxMaGZwUjBiS0VYMnFhWmc4a3BzcGw5aXJFSlp5ckxTN1VHdGx0dS94?=
 =?utf-8?B?R2o2RUpVSGl4ZHZRZjhYeFpsVmh3bFVveTVnUDhVT1RKd2IyOGkzUUdOOHFp?=
 =?utf-8?Q?6I235X?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(376014)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Aug 2025 13:35:20.6510
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: cd69dfc0-8f8b-47f1-f3d5-08dddfee68a4
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS3PEPF000099D5.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB8276

On 2025-08-20 06:46, Juergen Gross wrote:
> Avoid dereferencing NULL in introduce_domain() when called during
> live update.
> 
> Coverity ID: 1665111
> Fixes: f78895ad78c9 ("tools/xenstored: Read event channel from xenstored page")
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Wed Aug 20 18:05:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Aug 2025 18:05:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087553.1445539 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uonBZ-0007y2-Kv; Wed, 20 Aug 2025 18:05:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087553.1445539; Wed, 20 Aug 2025 18:05:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uonBZ-0007xq-F2; Wed, 20 Aug 2025 18:05:21 +0000
Received: by outflank-mailman (input) for mailman id 1087553;
 Wed, 20 Aug 2025 18:05:20 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fiHc=3A=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1uonBY-0007xk-AG
 for xen-devel@lists.xenproject.org; Wed, 20 Aug 2025 18:05:20 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3b2dce79-7df0-11f0-a32b-13f23c93f187;
 Wed, 20 Aug 2025 20:05:18 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by DU0PR03MB9520.eurprd03.prod.outlook.com (2603:10a6:10:41f::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.24; Wed, 20 Aug
 2025 18:05:16 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9031.023; Wed, 20 Aug 2025
 18:05:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3b2dce79-7df0-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uvSC/PKDex6n0dCkpJV+ZCvpsbsm8QuzKHtA+8kvstNhJDe0IFrSUqFVHpdYzyssUUtgY5l8eyfWO3xt0gSOzOVbBgez5vw4vrqWu8CYpMhsCclOtHZhyv9Hcf+wE8N9o0Gp29lwnnyPUlTBSPT8BHQPIekc87tmLeTtUyNfrBT/qK+lCWuth+Mu/co573+K6PDa7MyOlvrpSyT4adlW6eG590MR8gtfj9jbQLaYAA6dKOn2+BshQfrQJoHHUOWVgPrNZz6hjReurw3ciK9q2HM2/c2lanzCkagnJ4BB3+rp/jZ0BYgOiPZ0ribnaKYEc7EXaLbHcUXj9scrMjzAOQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=CSUJrm7Fx6wELtcDAKEV3aI9aIz402pWT08PIGG+1EA=;
 b=sq8QbVmW/d/eMPsz17Qb6rwbHyrJnpUXqvyQDeBkHkfbaLpXBYA2b26SgL/Pkuaq9sS/eZtOV9U5cMtREjiIQpJ/2gsBtowrEfgiOjEEaVojg48QCC9O/9Bim6yUNRY+TXNWQaMh4opgtQlbgasfRPND6vGV2re+n2VXU5Ysh9Ie2vQgtcmbokmgOzyNAIDAtpoojk9V2s7ZNQGvOvsFxMFKh/A1Hk/Dc+Bhli3GB/pK4fCAfQlL/BYIgbtjPjGQc3LMdiuEEzWCeFHmjvHu0Z0KlDUeYADKD81Bfzw76lea+u5UgCkdZtm27eqokZYWFXUE4aQfCMiCNPw1mX7BZg==
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=CSUJrm7Fx6wELtcDAKEV3aI9aIz402pWT08PIGG+1EA=;
 b=UfoRTRIn2Hh2XPHj52CxOftpYrnTsHl2OT03B++QkNvqujy+mjG43QEfnY6JA1Ik3YYfvXVMZscdb+t3BXQVpIItPFnTaIptEv0rmyrLmINwPfkvkTZFH+6i7q6x5EeXD5IJyLe1BYsLSqZeecCiyhmS8/V/PFef7szOK4dvbxqYgmfyi4R443g3pXJ4IKipDG3fI+A4HBRusP1u4jTxSO6QmcPjTyUVqs4W+vnNEdhSrNrDbhLIv2xZXXkUyEmIK0gQzGsJ26ypsUzorqNFx+y6KpxKREGJSz1j4SzkYcf4cW5mXFTAHFwm94KEGCDnn0UmPs7SOgIjGwkOk4pgGQ==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, "Daniel
 P. Smith" <dpsmith@apertussolutions.com>,
	=?iso-8859-1?Q?Marek_Marczykowski-G=F3recki?=
	<marmarek@invisiblethingslab.com>
Subject: [PATCH] common/efi: deviate Rule 2.1 violation in read_file()
Thread-Topic: [PATCH] common/efi: deviate Rule 2.1 violation in read_file()
Thread-Index: AQHcEfz7XSs2OBYVOkGOyX+FE8ObGA==
Date: Wed, 20 Aug 2025 18:05:16 +0000
Message-ID:
 <c20a58f24875806adfaf491f9c6eef2ca8682d18.1755711594.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: GV2PR03MB9572:EE_|DU0PR03MB9520:EE_
x-ms-office365-filtering-correlation-id: 249b24e5-8865-4122-b359-08dde0141e37
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|7416014|1800799024|376014|42112799006|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?IiL3i7d5yKz9eHA/2eAYC5ijVCIr5J6K7dMLuK/BGCPjqjU7/URFPQ7rWi?=
 =?iso-8859-1?Q?idHNtBt9T5jjy6y+WWFHNGq1+pkpvSKFGuJkKRj0UXZDPP4MJ50OExXBi7?=
 =?iso-8859-1?Q?fbyoV1+hovwC7Z3BUS+zU378+/hHBIZVC1vnzYqY9o87CP4Dy7AHXt/0iu?=
 =?iso-8859-1?Q?GLjTlSReLrpDemcgaj6o8yiSuUz+sBwM6QJ0p4rj4iJM36P/QejYY8WUKl?=
 =?iso-8859-1?Q?6pngBZ3oUJ14463DTWdEIJxIlIPPEXS2lPk3/ud63p+yfZfY8JliwxhPoN?=
 =?iso-8859-1?Q?L44/3EJSnwlzRhMcIQ7i0yT4dvly4WN7HfdsCWfxnhQaC/W5xbUO2BeIFQ?=
 =?iso-8859-1?Q?Xhy5MDwTgQ01bGxDIk0dI8q+4csYUz8Tqk80cshCBQI5P1cdeNfUGG0Lky?=
 =?iso-8859-1?Q?DQVQF9I3cyhfa7hXdajBrUlKYR92exK0IPwfzN/ilozfIG4gzE73bter/w?=
 =?iso-8859-1?Q?7OEih47XWxm1/Ps84cFbP/ir7gTME8L9Xt7Cm0c8tVFHappqnkFdbcCJlN?=
 =?iso-8859-1?Q?tD3ETVliu3NJXy8QJtAqTM1XnMOkDKsNt2Wlrl7F39lbXNd515AKWPfR8s?=
 =?iso-8859-1?Q?efEg/EW5FHuBxMU6h32cj7bUlaptgBOBdRbBJpIpdLXys6B2GP2IgbyR1p?=
 =?iso-8859-1?Q?aZNRZX2ueqSZklix48AcOIXgAsUs0N2yZq95IBn+jdDhSLm2wW7znnMfGt?=
 =?iso-8859-1?Q?D2MxCNvaZ9pLBclmznQkztuK62xFfWFUOotb2XPZQry5MmZDc3LAp/aCF7?=
 =?iso-8859-1?Q?4H2vwkOTTJdCL8qdnxGZ+gZb92Ddtwpi2CALz+wCyW9C1oT/2qo7kxT47C?=
 =?iso-8859-1?Q?JhQuETWty609B/Lvv1cYbKLFbpvcXlTZ5PAQ5f1LiGYDdQDSyEyvKCNUCq?=
 =?iso-8859-1?Q?AoPB+12glO3T3tsBus0vGeoMCydcFcTYZt0V/1bnoIXj09sj4MCj17H6Nl?=
 =?iso-8859-1?Q?EJkyMopVqpPlQZ4W2WTurqQxh9Yu4VaIca8XUH+SoahhiBZhRM9LiKdoFO?=
 =?iso-8859-1?Q?utDZsPQlFy//OmFIdStFtbOPpXFXE06Uk+vN/3o8hMOsOF60SUrUIQruCb?=
 =?iso-8859-1?Q?vsteiP8rVscCKmnjWhTEtPOTEI63xQs+v4Y7dgCUhah/je1GwhKEteNi1J?=
 =?iso-8859-1?Q?THB14UmXMss20sGad+TAOKNjoOkvcYeXlAhHD2Pm27HrQ2CXexuFlefMZK?=
 =?iso-8859-1?Q?L8g4IRd1UL0J0P7jYWSLrAqqQnq75a1fWFnDshaHXEV0h+2I4BkbnIfA8C?=
 =?iso-8859-1?Q?D+T+TXtY2EL14wPgdYHfFM36vtWeLfVJjYFXfY4lsGUiksDgXtQNGCBJ/q?=
 =?iso-8859-1?Q?32ljXL7S8So1qdeFu9VofItTFXUWKnxDUbRp47qMXb62dEL/MkoMjaPbd+?=
 =?iso-8859-1?Q?VOuKXc/J5vVohGGLhSl9cd3X188mBHHHDHxAXsz/winhQ6Aa8Vk4Ca6U/f?=
 =?iso-8859-1?Q?H7pf9s7vS8vM3BHs6wMNu0Fay6z/RFuBg9VK3WAucP86eXf0VwqGGRGvIw?=
 =?iso-8859-1?Q?Q=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(1800799024)(376014)(42112799006)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?I2+UGQTiZDoZWJFIJ8LUre6AK/GSvtQ5Jpzt3ZXV1Lplt9OxWxKfi6Hb2X?=
 =?iso-8859-1?Q?fQleW0rBLsDzjDFNAB6mbDdTRD9eE1gdycYZB99uwe6nJC3so6hckkBwlQ?=
 =?iso-8859-1?Q?wxe2j5uBZAFZ06fq8o4aIZf1dI0VeOjoz5TN4LU3hzG+1sREm8MEG5Gvbs?=
 =?iso-8859-1?Q?heuG4R9WSnV/cf588JBUMJNyiYbqv0ovHCyXekFJCoAwObrK6+lJPKDuTO?=
 =?iso-8859-1?Q?w9/W3whhyKiDbKBMLNByv+1i4+s/NL4kG9BCy6HfADeKI4ZBmrn+f/FIwE?=
 =?iso-8859-1?Q?8TP3p1HBH85b5SyAld1xNR5pkqsJTdT+5z8tG3xWfWapF6OA6ie3o+Uek6?=
 =?iso-8859-1?Q?2tlY3NG3bUGib0jKSYpvQwQONifRp/Pz6LLM/J51/8jOmAlWBXBVjZQUft?=
 =?iso-8859-1?Q?Vf2yt85BwEGT+k2hq0V9O9rzG0rGzi3EVxEpVyw7ACEVDw6hFcdP8ulkcm?=
 =?iso-8859-1?Q?lo3vm+OntEiR2GeQNDDIEhkDzK/r1jFW1ADuAP5MDpHPcbvB4JX47OHBo7?=
 =?iso-8859-1?Q?5oMNkrqyllL9+kafo7f5Va/8bbfN/Wh6leEoRrZgpFLR/Y/GI3bMArobUJ?=
 =?iso-8859-1?Q?dCWxgzjI2fNhO2/7wiDxQySqVmlObr5jH+KuAKzUkoTKwYXpWeX7OLhr3m?=
 =?iso-8859-1?Q?KUnBTUIoxa8P+8vJx/W5417iKbXCUKO7gC5xi8eTmlUHf2Fte8/dTh5Mai?=
 =?iso-8859-1?Q?mH4kYVGJUFe9JC+y/X2Bwwbm7W/zbdGi2zAED1eG1M9qZEEhN7FmBvWF5x?=
 =?iso-8859-1?Q?+5FOX7lzRUW+6U7MLLM1AHHiMST+/PhCuzaZsc/QtCIh+ceyzqwyHAFD+O?=
 =?iso-8859-1?Q?n8GJHgubLSw22LOIn1iGVU5LjAysPTUxqSsU6hh5Wv0hIbj9iHjKuwVevG?=
 =?iso-8859-1?Q?v9yTsF3GWkap5vK6CclATHO6fPmLLOUuHfLg9WolUch/mANYOOdjF0SRUr?=
 =?iso-8859-1?Q?86QLZvVodZan2lW0AL3tlo4tgCZWhXmuK36sPp2jGWlnkS2O/HxTvS1CHD?=
 =?iso-8859-1?Q?eNO8pzbbcGeBuqtVNAGPvqkscoceqzZGahcYgJPDql3ypbv+0/9QTlN4KO?=
 =?iso-8859-1?Q?T9/Ickg6v5HAOykiOuAriV7IYorglfRZ+bU1Ttsv/e5vbD62nn6SLG7S/D?=
 =?iso-8859-1?Q?LKx50uLpjz/YFFeaDoyNl+vdlHQbD0IWCiklWo7I9YxaJlj3ig9K+baUM1?=
 =?iso-8859-1?Q?19TjGRP/gzFT74OIatccm36z3h5qtke7hJQKdFJh3PoghRNgHQypSllh3m?=
 =?iso-8859-1?Q?ndnwzGnhawhBin5IQICT+tz4Xj4cq4wvJw7AwTRpAPeswQ2tuZPXXX6PRf?=
 =?iso-8859-1?Q?MyzGC8RUHc7MNGbY+1k/+pB6/0BwBhN8NzSU9T0aGAPB0uh0WKffT6luob?=
 =?iso-8859-1?Q?SbHQN2MTQ/Hz6kEeS1r3etUwIGh7ltiFDl5T9MSz7Rjdc72eEKrSh+hroH?=
 =?iso-8859-1?Q?ax1VdfRLZenhmzuHMG5XcLhJYfAIeTCbRZjiB0ohidlsHstQmFTtsQHFCd?=
 =?iso-8859-1?Q?7VuXjFVdQLtgdebBH84BV0Wqu6bsSTo1KU7VhV4rgG1++MgDSasgHHVXSI?=
 =?iso-8859-1?Q?PTAu8bMfoLi27M6lKyfjty5WI3cfsy6EKosEgi/6TTHBLDhwJ0zZiUJXrG?=
 =?iso-8859-1?Q?GPca6fXBIXEvN6TCH8avXHANcfVh7QgbIiqGZWsyxGWIEZKJ2SlficKA?=
 =?iso-8859-1?Q?=3D=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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 249b24e5-8865-4122-b359-08dde0141e37
X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Aug 2025 18:05:16.6791
 (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: R6iEaHyCFnf9Px57OfnDO3l6FaXyOs+n74x29Dc6ph+M/nz/yKVCNqone/EeaqxHDZF1zjmO8nelKxnyCoH83FyYrMm5foCeF40Pa1HfpAU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB9520

MISRA C Rule 2.1 states: "A project shall not contain unreachable code."

The return statements in the 'read_file()' function is unreachable due
to function 'PrintErrMesg()' which is noreturn:
    PrintErrMesg(name, ret);
    /* not reached */
    return false;

This is deviated using a SAF-xx-safe comment (specified in the file
'docs/misra/safe.json').
No functional change.

Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
Previous thread:
https://patchew.org/Xen/5944d87aae330246b7dab6eebd04d5d71a7d7e8f.1755608417=
.git.dmytro._5Fprokopchuk1@epam.com/

Test CI pipeline:
https://gitlab.com/xen-project/people/dimaprkp4k/xen/-/pipelines/1994619131
---
 docs/misra/safe.json  | 8 ++++++++
 xen/common/efi/boot.c | 2 +-
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/docs/misra/safe.json b/docs/misra/safe.json
index 3584cb90c6..2b3178de2d 100644
--- a/docs/misra/safe.json
+++ b/docs/misra/safe.json
@@ -124,6 +124,14 @@
         },
         {
             "id": "SAF-15-safe",
+            "analyser": {
+                "eclair": "MC3A2.R2.1"
+            },
+            "name": "Rule 2.1: unreachable code",
+            "text": "This is a deliberate use of unreachable code. The ret=
urn statement is retained to improve code clarity and readability by explic=
itly specifying the intended behavior for a case if PrintErrMesg() was to r=
eturn."
+        },
+        {
+            "id": "SAF-16-safe",
             "analyser": {},
             "name": "Sentinel",
             "text": "Next ID to be used"
diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index 50ff1d1bd2..860c41c8e7 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -852,7 +852,7 @@ static bool __init read_file(EFI_FILE_HANDLE dir_handle=
, CHAR16 *name,
     PrintErr(L" failed for ");
     PrintErrMesg(name, ret);
=20
-    /* not reached */
+    /* SAF-15-safe deliberately unreachable code */
     return false;
 }
=20
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Wed Aug 20 18:33:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Aug 2025 18:33:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087574.1445548 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoncM-0003Wq-KR; Wed, 20 Aug 2025 18:33:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087574.1445548; Wed, 20 Aug 2025 18:33:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoncM-0003Wj-Hl; Wed, 20 Aug 2025 18:33:02 +0000
Received: by outflank-mailman (input) for mailman id 1087574;
 Wed, 20 Aug 2025 18:33:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BRi6=3A=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1uoncK-0003WY-Br
 for xen-devel@lists.xenproject.org; Wed, 20 Aug 2025 18:33:00 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20629.outbound.protection.outlook.com
 [2a01:111:f403:2416::629])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 173c6804-7df4-11f0-a32b-13f23c93f187;
 Wed, 20 Aug 2025 20:32:57 +0200 (CEST)
Received: from MN2PR01CA0043.prod.exchangelabs.com (2603:10b6:208:23f::12) by
 CH2PR12MB4215.namprd12.prod.outlook.com (2603:10b6:610:ab::24) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9052.14; Wed, 20 Aug 2025 18:32:50 +0000
Received: from BN3PEPF0000B069.namprd21.prod.outlook.com
 (2603:10b6:208:23f:cafe::76) by MN2PR01CA0043.outlook.office365.com
 (2603:10b6:208:23f::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.14 via Frontend Transport; Wed,
 20 Aug 2025 18:33:23 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BN3PEPF0000B069.mail.protection.outlook.com (10.167.243.68) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.0 via Frontend Transport; Wed, 20 Aug 2025 18:32:50 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 20 Aug
 2025 13:32:49 -0500
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.1748.10; Wed, 20 Aug
 2025 11:32:49 -0700
Received: from [172.31.85.68] (10.180.168.240) 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 via Frontend
 Transport; Wed, 20 Aug 2025 13:32:49 -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>
X-Inumbo-ID: 173c6804-7df4-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HgrDCB+QedkDFO0arpUeO8NRDeJzruT8Ad0ZFfNWiAH6orMmPVeI7p4aTTsZ9/mcFcKt6Id5vgausLQ08lNdJFe+85Tiz/CwlcwGf+PbYV+pM0yUY8wpHqmqE9Zcvr+e5VVlvDsItwD/J4Y6M7OafACuy52nEk/x/dIzc3hh2401xpRqDhj4RjOEX2L0uzozEP+ixK8+J/E/MtI/LSPEXH+XdPPFww7ActAGUUpq01QGL/Ha6Yd79ScOJiKY1wBSSQxNzb9Q72sApF01KJr8lot6nvyL/GBFHaHvxDwiCszczt3burMDmEC5c3xlpz9K2Oqst0v3PoXgB2LtHCfw3A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/NgI6/QAGcQLG5GR+/UestV8rbSuNATaGqSMOGwCvrE=;
 b=LHin1GSElLWzGjThixruPxKa0hHAQfNPHNLNhGfvXuFigOv0ugAdon0ubovD1/oz+2Lx96ac6g2UJkvuQc99Rl2VuWvZe/A5isDM08yhqsozhkCcz9+R+uICJxsIj5wNokBdYNpK3tPS9zZUMeZU6hRjyiKarpuJ7BELwQ38Z62ULVgLx4LKH7t9KyFctZtMs36dnMG2+zV4QkVpvlaCXmg2TthBgO0F8adxmwf1DxUsCpE7+jb14VVz/9eBSxzgJWle513C7ViYQaqyupPhSlRj4uHJ1zpghdBMAPo567vS/TO9j/t3xNnW45DnNyY/aQ4r8U8YkDy6TleuS1zFXA==
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=/NgI6/QAGcQLG5GR+/UestV8rbSuNATaGqSMOGwCvrE=;
 b=1rKF26oK9JKekdqZfYTA2XQ8XcI4A7HGMV7ubk0VGLcGxVcbF62EJ+xmH7LlqZqUW5M8GV/Ckl3wido+MWa1iCWC2dcqjv+SmsnPycCHwq7ZOsXDfKUZl4JnF7lllzUSqPeEUtlcDPGZS7YFdi1ZvdVK6fIKtM1nE48nd5CxKPM=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <85aa0d98-8909-4c44-8b2a-83b5b37dab51@amd.com>
Date: Wed, 20 Aug 2025 14:32:48 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/5] xen/vpci: make BAR mapping more resilient for the
 hardware domain
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
CC: <xen-devel@lists.xenproject.org>, <Jiqian.Chen@amd.com>,
	<jbeulich@suse.com>
References: <20250814160358.95543-1-roger.pau@citrix.com>
 <20250814160358.95543-3-roger.pau@citrix.com>
 <269db2aa-9ca1-446b-98f7-60ea2386fc03@amd.com>
 <aKLZbNSltqqbXWk0@macbook.local>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <aKLZbNSltqqbXWk0@macbook.local>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN3PEPF0000B069:EE_|CH2PR12MB4215:EE_
X-MS-Office365-Filtering-Correlation-Id: d8520873-1b00-4d78-da06-08dde017f7d2
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|36860700013|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?d1AxTmUveGpvNkYwcTBlcUpqdUVDZ0hUTHRQaTM1VFRGdGxLVHBld2owaGY2?=
 =?utf-8?B?b1BNY0tHWUE3WjNmM2loZ2IvQ3RGQzlqbWw4a09iOEVSOEx0WlAvMXN3c0Z6?=
 =?utf-8?B?RDZueG1lOURtSHo3OTFuRmo3blVHQ0dJVG5uYzdNQVBFbmVzM1BKOXJ6N1pw?=
 =?utf-8?B?TGxxbS9ZTURyVzNHSjUwMXNqbUwrd0gyS1BrNnBTZlU2UHFOSjhya0VKR2NF?=
 =?utf-8?B?b0htV1FjRGNGRUNiWGJlTHBoQ0lJeVFxZDRFdi9HSmpudmkzQm9wcU9MMitl?=
 =?utf-8?B?V2NjdnFUcHpraEsvRFRmYVpveEZQbFVyekNLak9LRmFLdHI4cFJqL3BxQWxo?=
 =?utf-8?B?S2RkWktMaS9URVo4NkNOZG9MeFF1YXVhenFnSkZBZEN0QXpBVmc1VVNiUmVC?=
 =?utf-8?B?dFlrbW5nL1FzVkUxU1V6Rmxrc0huNXZIbk50b3ZtT25YYW1vajdFekVmMHNy?=
 =?utf-8?B?dXZmY1luMEk3eEthWER2VHp6Q1VGMUpLaTByU2pTR2NOclpzU0FzSGFPT3R2?=
 =?utf-8?B?K2JFaEdMbEpRYTZJK0ROTzBUTVZoQ1l0a1Zib0U3eU54c0RMVUN2NW83T1dM?=
 =?utf-8?B?MlIyNXlZL3RuVlpNWWFWeGFid2RRbHI4WExqQkc0elBtcnJKeitIU2NBTDRR?=
 =?utf-8?B?bDRtQ0Y4cjhQS09scFYxQ2YrZ1BsRUdhMlR0RXNvSXg1K3Iza1N0eExMNWNW?=
 =?utf-8?B?RzdzU0hQakgrSC8yTkVWVmZhVUUvVGt1b1FVR3NVSXFFb0dqbTRZM2RxYWQw?=
 =?utf-8?B?Ny9velE5eUJtc21uMzNraEpnYU8vQWl3RUJWOEpzZ1RsaWpRaG1xaTNhRTlS?=
 =?utf-8?B?WWpydkZWc0piU2tmT2UyOTl0QWh4NlRzWW10WVd6VGpEV0tmdEN3dTNNYmk0?=
 =?utf-8?B?aHQxeEh1RHhyYWFsN083eFVDSzBrWmJuK2ZuY2NrcVhzSk13SlFKTXpBNGkx?=
 =?utf-8?B?Z3dNYmFsdHNGVUFmaVpuNW15OXgwNVMycURoUG1ROW9UVmQzdE5abENQdXIz?=
 =?utf-8?B?b2FqeXN0NG54TUNzcU9vcnJNaXBMNTdpYzh1Sk82cVZVazRTellnK0QrbTN4?=
 =?utf-8?B?QlBEZnpQOVRVbllSY3U2cUk3WUFwcVZGNHdGdmVSWFo3OFdoU2JnSWxzRVJB?=
 =?utf-8?B?MEMzNklwNm0rZ0tPaURyc1N6Qm85RVFUQnowTkNNWHdwd0M4dEhZbzdENVJk?=
 =?utf-8?B?d2RoL05jYS9JS2dQVm0zWmIzSXdPZFhBcGoySkpSdzN0R2VmVlVnalN1QWMx?=
 =?utf-8?B?THR3b3E3dXBCZXYwUmZESHBRcVlYbk5UTTV3UXEvMmJVMjNJWGtXQXlvYzhw?=
 =?utf-8?B?bDJQcm01dFJmOUxUVjhGNDhZRmZBWDdGWXJUNTBWdkxYQjJuWTE1K1V1ajM5?=
 =?utf-8?B?akgwaGp5YXpDN0k3MUFvNXNSV0VMY0wxNW9KVWJKUzlTY2UwNEQ2QUlIbXJo?=
 =?utf-8?B?NXVtWXpIeW51UTNjNHRENDBuQ0sxdWtwbG56OS9IYXNNUEhYTUJVNDExVWhR?=
 =?utf-8?B?bXNNeEJHZE1nSUNHV05WZzZNS25PL085eWpsY1dSQmFKdnNrNTFBR3J4bm11?=
 =?utf-8?B?MXFUbWxIdEpVeWxoMGx1SGlRK205OWdxaCt2cUpQcHZqRmNWY2N5RjRaWEha?=
 =?utf-8?B?WFVlbUZlV2NIZ1VnT2lhSFcvZVMrNVUrU2VxSnl0SkFrOXpBdFdEbFVWR3Zy?=
 =?utf-8?B?bC9TZ3pLQ3lySHEzMGhDMThmdjlFV2V6c1FkWVJ1VzFONENNYjExNS9zK09j?=
 =?utf-8?B?a3VPVFhFaUR5eVZyNDdXMHRmSUIvaTBxZS9ESHduZG13UTVpd3RjTnpCSERW?=
 =?utf-8?B?MmxHRnp2UDhXUnJvTjNRb2kydXExRWZtalJSc1FPd0t2VjZWUXB6T2VjU29a?=
 =?utf-8?B?L2pLbDdZaUNPU1h4M0tFdHNJMTZ4QmVnZlV1enc4SW5Ca21qMVdwY3hLNGY0?=
 =?utf-8?B?ejJFTnN1ZmIrNUVLT0FpZFFPeTJWZTh0cUxPcDNxT0UyWWgrR2hqa2lwMUM2?=
 =?utf-8?Q?aUKdUASnF1YUkOnihS6e9M58zCHuJo=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Aug 2025 18:32:50.2716
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d8520873-1b00-4d78-da06-08dde017f7d2
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN3PEPF0000B069.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4215

On 8/18/25 03:42, Roger Pau MonnÃ© wrote:
> On Fri, Aug 15, 2025 at 02:53:35PM -0400, Stewart Hildebrand wrote:
>> On 8/14/25 12:03, Roger Pau Monne wrote:
>>> The logic in map_range() will bubble up failures to the upper layer, which
>>> will result in any remaining regions being skip, and for the non-hardware
>>> domain case the owner domain of the device would be destroyed.  However for
>>> the hardware domain the intent is to continue execution, hopping the
>>> failure to modify the p2m could be worked around by the hardware domain.
>>>
>>> To accomplish that in a better way, ignore failures and skip the range in
>>> that case, possibly continuing to map further ranges.
>>>
>>> Since the error path in vpci_process_pending() should only be used by domUs
>>> now, and it will unconditionally end up calling domain_crash(), simplify
>>> it: there's no need to cleanup if the domain will be destroyed.
>>>
>>> No functional change for domUs intended.
>>>
>>> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
>>> ---
>>>  xen/drivers/vpci/header.c | 51 +++++++++++++++++++++------------------
>>>  1 file changed, 28 insertions(+), 23 deletions(-)
>>>
>>> diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
>>> index b9756b364300..1035dcca242d 100644
>>> --- a/xen/drivers/vpci/header.c
>>> +++ b/xen/drivers/vpci/header.c

<snip>

>>> @@ -213,28 +224,22 @@ bool vpci_process_pending(struct vcpu *v)
>>>              return true;
>>>          }
>>>  
>>> -        if ( rc )
>>> +        if ( rc && !is_hardware_domain(v->domain) )
>>>          {
>>> -            spin_lock(&pdev->vpci->lock);
>>> -            /* Disable memory decoding unconditionally on failure. */
>>> -            modify_decoding(pdev, v->vpci.cmd & ~PCI_COMMAND_MEMORY,
>>> -                            false);
>>
>> This path could be taken for either map or unmap. Do we still want to disable
>> memory decoding in case of unmap?
> 
> Does it make an effective difference?  For the hardware domain we
> should never get here, and for domUs the domain will be destroyed, so
> disabling memory decoding is not helpful?

Since the domU will be destroyed, the PCI device will get assigned back to hwdom
or put into quarantine. In case of quarantine, it shouldn't matter. In case of
assignment back to hwdom, I think by keeping memory decoding enabled it could
potentially trigger additional p2m operations.

In any case, I don't have a strong opinion on disabling memory decoding vs not,
but I think the commit message ought to mention something about it.


From xen-devel-bounces@lists.xenproject.org Wed Aug 20 21:13:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Aug 2025 21:13:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087625.1445559 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoq75-0005wB-Q7; Wed, 20 Aug 2025 21:12:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087625.1445559; Wed, 20 Aug 2025 21:12:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoq75-0005w4-NP; Wed, 20 Aug 2025 21:12:55 +0000
Received: by outflank-mailman (input) for mailman id 1087625;
 Wed, 20 Aug 2025 21:12:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=awzM=3A=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1uoq74-0005vy-GW
 for xen-devel@lists.xenproject.org; Wed, 20 Aug 2025 21:12:54 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on2060a.outbound.protection.outlook.com
 [2a01:111:f403:2415::60a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6dca2ba4-7e0a-11f0-b898-0df219b8e170;
 Wed, 20 Aug 2025 23:12:51 +0200 (CEST)
Received: from BL1PR13CA0431.namprd13.prod.outlook.com (2603:10b6:208:2c3::16)
 by SN7PR12MB6715.namprd12.prod.outlook.com (2603:10b6:806:271::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.24; Wed, 20 Aug
 2025 21:12:46 +0000
Received: from BN2PEPF000044AA.namprd04.prod.outlook.com
 (2603:10b6:208:2c3:cafe::4c) by BL1PR13CA0431.outlook.office365.com
 (2603:10b6:208:2c3::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.6 via Frontend Transport; Wed,
 20 Aug 2025 21:12:46 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BN2PEPF000044AA.mail.protection.outlook.com (10.167.243.105) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Wed, 20 Aug 2025 21:12:45 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 20 Aug
 2025 16:12:44 -0500
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.10; Wed, 20 Aug
 2025 14:12:44 -0700
Received: from fedora.mshome.net (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 20 Aug 2025 16:12:44 -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>
X-Inumbo-ID: 6dca2ba4-7e0a-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=el8LAprn5QIIYsOWX6OOtThuep5t8ET8DPNwB1E4/1rFKw/GazXbHOekAgYrcpnnr8UCZFFZmdLM4CLP01GIo5d7lJDZKlbbYStHhuOkuOcOex4f4nizNfa0O8k5JG1QSM2Rd8cacVPCH2Jqfol0Z3AvfDCw4vG2P/Y/rD5F5wJ74DaCmqCoVn0WV3Na7T6tyLEl/EuH1KpOKWPXJPkwCdO58Sqiz3B/qy3kE18gMy8wMivMZs6jt8R0tLHpw7wmnqg0d8TlGAInMTd06hruEnZscLkIXC0rkZcNttn+alAYP+c1x1mujDQt607QQtGl+MrxsLcYGV0CnQP6dqt6XA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=5y8FbORDWaQ5Tt7vudtaZzZ0Fchb9UsA1yZxoBCPL8M=;
 b=g42zsHDZNXy7UVhZ6RY28oj3/uuEDOriLA/8iSwtFq7Xf80JW7gqU6AicxJGEQEAXcINV0GzFSxs4egG3DsW5n8XXlLuCqy65+mXSAJx2bb1vjjiNrLZqT8fsZz8rCRw9MPnFf69Q6yKQ1DDX/4z/OCa7UPTH6W6T65oMGKMt7wBgi5MKT3YZimYs/gJxo1Dw6ddLlmHaM8QOvoyQBZGNR7CqVMIEcpLpMRw9nmXNNpwPwtZaPjaaUMqAqEIZTKqoHCA8rYmw7AF63Lo7NLWkqXM/ewA0e1i4UJaF2rasSFIKgHHRgPbR3qKbQVfnPqJkiHEc+2L/ouSSl7j/GcRpA==
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=5y8FbORDWaQ5Tt7vudtaZzZ0Fchb9UsA1yZxoBCPL8M=;
 b=nbcRhdUobFqYJRtPI6UYGK75SPZag3s7pRo8KDqbV4gMENec4/QSloWHx6OeTCSIx+kuIoUYGGW+cFWCf57zt1+9Mxh1sD+D9tGE1NoEqvic7t2C9P054Q+GTSQZVVbpE7oTS+9hRvVmoYxVBdFvPair8wsWhT6XY6KA6kwwFw4=
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=SATLEXMB03.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Jason Andryuk <jason.andryuk@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH] xen/dom0less: Clear xenstore page
Date: Wed, 20 Aug 2025 17:12:42 -0400
Message-ID: <20250820211242.116868-1-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.50.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN2PEPF000044AA:EE_|SN7PR12MB6715:EE_
X-MS-Office365-Filtering-Correlation-Id: 29031629-b887-4d80-69f2-08dde02e4ee5
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|82310400026|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?nDvpgR8rOVZX5svUM/DSZ9KOSEPO1ma7zdr6dRwA+3IsK7vGN+cxF63ZHBes?=
 =?us-ascii?Q?5KmH+Vg1N+sgdDWldDBl6ZnTp6rgUqKyIArNmi+B+5zEWTI9yRvn/TYXqffY?=
 =?us-ascii?Q?XGDFrk45gvugGZcOrpG3gsB9YwklIMO401XMEh5ePIScoYsTkPFRgPkEbpmC?=
 =?us-ascii?Q?UCiPTAogXZ7OzWRVNerXhQoi8zPUaj9MocjqLqplAxw5vSuF8ybNac+pMv/P?=
 =?us-ascii?Q?gahsTXUiImp8n+NDQ1Lbs2urF/kYOZw0SjuIiJYMuyPIxkdNdLRYLSgOdFnK?=
 =?us-ascii?Q?lBix7RB4K/PTFsVacxxGQv06Uu3eSVJjDHhVq/9ZZDK3D0DufpbU164rw3OM?=
 =?us-ascii?Q?kS23W4h6WUT+tOVMp8VPM7YcKwYyvYum42/qB2PX3afny5l/S0o+CIKndcu1?=
 =?us-ascii?Q?Z0XrhY5wTWqpgGXcX7YUQqDEXXiJkBvLenRnBlidV4p4LC45jD1u8yi0rsRF?=
 =?us-ascii?Q?OvtN+RyHqv2W0kq0JM3Uh7Udo1u/LIuHmYoE9zalJ2BP5RGbTlE3pCCdb/IM?=
 =?us-ascii?Q?4C0NlPE182nW8jQnnwJ0CSEtiVRPGe3fJqO8sQPFZaVwiQBnx2tvJ+bnFRyI?=
 =?us-ascii?Q?mGiAzURuxCCozrUXc2BzEYa+y0EJ38iP+0tczKNLQLA/Fvjb0ESDEhu7Pp8E?=
 =?us-ascii?Q?/xaUr8j1mo8FzVCFmSIC0cebMopks0RbSLn8OT5zSf97WIG1aD5w0ijHX8t5?=
 =?us-ascii?Q?D1lVZ2IwqoAPgjkaeJghqpvME4feDuKYzkudAMBD+1/8I1SttOeodPFfwTe5?=
 =?us-ascii?Q?7vAsCbPqTvzkrQaZuML4VAErA811WUm4rY9X87twMqyH081idarmy4E2akfV?=
 =?us-ascii?Q?lwu3WN8iVqbG8Bwtd5evj6aDr7n2IHNGyiyoNLsJrWCSCdSn2+uCOiab28Nz?=
 =?us-ascii?Q?4ob4ZWKdvdJVqk0PgcIpNawwA7sPDD2TPckqMFrZYOqlzI16ozhqsNbIU80A?=
 =?us-ascii?Q?N6U/EcSN/seGBlISnfEld00m4q4NvqRcpAxP58KYARKNLesYgM3YMpGB6BeD?=
 =?us-ascii?Q?+5U3n7eKLATzqneK3Xn9jOeMbGJsM0O3/agKgA+DLGmMkf3yYscpZroom3xR?=
 =?us-ascii?Q?OnTHuGgACyHOHGMCeVhsA+U7AMOgDmkA45CkZ8k9FGooOkpMArPAx9ookbj3?=
 =?us-ascii?Q?qxxcmGuhcCQsGEeituQnI1cWgpR0OuMKT9no7LH90zSRQbJubvz5/O6PwzIF?=
 =?us-ascii?Q?/yvPMZYtJFCb9ofRP93zUHcW+XRwz6b6PbtsnWhuzQlNcJ5CStE/A9M4oP0R?=
 =?us-ascii?Q?r+DJZ7AqaeXUOJLqDf7vjOJImhcn8sWIow3DrftKRaufD9vMFJnhcf9AMMPS?=
 =?us-ascii?Q?iYHezz4sd0YzCkTznxMxGAjVBKDbOjgIqAbwMiJMUv35pNbmUo+hQW8UIIJj?=
 =?us-ascii?Q?rDT2VVRZ0ipK6Y1W+qe9exRY0S444Mwg9zmLogqBhYdiAvHzOlLvWlKlBtGc?=
 =?us-ascii?Q?QucRUOkZ5K7StzlXWXzw+zZNs75oLCTvsgbDVPl80hnChzWInGMytlUN4Ie3?=
 =?us-ascii?Q?I9lDZrTVT9EGdXw=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Aug 2025 21:12:45.2826
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 29031629-b887-4d80-69f2-08dde02e4ee5
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN2PEPF000044AA.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB6715

C Xenstored was seen failing to map a domU's event channel.  Enhancing
Xen's error messages shows:
common/event_channel.c:427:d0v0 EVTCHNOP failure: d1, port 3267543746 error -22

Port 3267543746 is 0xc2c2c2c2 - SCRUB_PATTERN.

Xenstore expects a non-zero evtchn_port to be valid.  Explicitly zero
the page to avoid this.

Fixes: f78895ad78c9 ("tools/xenstored: Read event channel from xenstored page")
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
Tweaked stubdom & dom0less C xenstored pipeline success:
Test CI pipeline:
https://gitlab.com/xen-project/people/jandryuk-amd/xen/-/pipelines/1994879466

Example failure:
https://gitlab.com/xen-project/people/jandryuk-amd/xen/-/jobs/11084356847

Alternatively, a fixes could be:
Fixes: df2c03e2ebfe ("xen/arm: Alloc XenStore page for Dom0less DomUs from hypervisor")
If the page should have been zero from the start.

gitlab-ci uses oxenstored for most testings, so this isn't seen by
default.  I don't see this in local testing, so I guess I don't have
SCRUB_PATTERN writing enabled?
---
 xen/common/device-tree/dom0less-build.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tree/dom0less-build.c
index 6bb038111d..badc227031 100644
--- a/xen/common/device-tree/dom0less-build.c
+++ b/xen/common/device-tree/dom0less-build.c
@@ -600,6 +600,7 @@ static int __init alloc_xenstore_page(struct domain *d)
     d->arch.hvm.params[HVM_PARAM_STORE_PFN] = gfn_x(gfn);
 #endif
     interface = map_domain_page(mfn);
+    clear_page(interface);
     interface->connection = XENSTORE_RECONNECT;
     unmap_domain_page(interface);
 
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Wed Aug 20 21:33:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 20 Aug 2025 21:33:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087636.1445570 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoqQt-0000Mg-Eq; Wed, 20 Aug 2025 21:33:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087636.1445570; Wed, 20 Aug 2025 21:33: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 1uoqQt-0000MZ-AZ; Wed, 20 Aug 2025 21:33:23 +0000
Received: by outflank-mailman (input) for mailman id 1087636;
 Wed, 20 Aug 2025 21:33:21 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1uoqQr-0000MT-PE
 for xen-devel@lists.xenproject.org; Wed, 20 Aug 2025 21:33:21 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1uoqQq-00FEWP-2P;
 Wed, 20 Aug 2025 21:33:20 +0000
Received: from [2a02:8012:3a1:0:d81d:920:5c70:442f]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1uoqQq-00AeVQ-24;
 Wed, 20 Aug 2025 21:33:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=fdJpON6ZcjwjfhRGu6cRmoP1KoEainZH+ZkZYlDTWaQ=; b=SwhDypONDS3tghlv+ZoV8Y64jX
	6EWmCRVSgBy1sCIbaCOCoA4QWE+YSjjFobOIcayhBp48EHzH4PnvbA6KefN2Y0PldMaxkuOFgp83v
	uFNUcHO4L5P8JNcQBwrGrKAEg0Eqa2hIdDa1Ir1p+JYyPUN496iLjfSQwvfYubnJJu+w=;
Message-ID: <304cffd8-498d-447f-a8b0-cda694393ec8@xen.org>
Date: Wed, 20 Aug 2025 22:33:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v16 1/4] xen/domain: unify domain ID allocation
Content-Language: en-GB
To: dmkhn@proton.me, xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com,
 michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
 dmukhin@ford.com, Julien Grall <jgrall@amazon.com>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>
References: <20250812223024.2364749-1-dmukhin@ford.com>
 <20250812223024.2364749-2-dmukhin@ford.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20250812223024.2364749-2-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Denis,

On 12/08/2025 23:30, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com>
> 
> Currently, there are two different domain ID allocation implementations:
> 
>    1) Sequential IDs allocation in dom0less Arm code based on max_init_domid;
> 
>    2) Sequential IDs allocation in XEN_DOMCTL_createdomain; does not use
>       max_init_domid (both Arm and x86).
> 
> The domain ID allocation covers dom0 or late hwdom, predefined domains,
> post-boot domains, excluding Xen system domains (domid >=
> DOMID_FIRST_RESERVED).
> 
> It makes sense to have a common helper code for such task across architectures
> (Arm and x86) and between dom0less / toolstack domU allocation.
> 
> Note, fixing dependency on max_init_domid is out of scope of this patch.
> 
> Wrap the domain ID allocation as an arch-independent function domid_alloc() in
> new common/domid.c based on the bitmap.
> 
> Allocation algorithm:
> - If an explicit domain ID is provided, verify its availability and use it if
>    ID is not used;
> - If DOMID_INVALID is provided, search the range [1..DOMID_FIRST_RESERVED-1],
>    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 range.
> 
> Remove is_free_domid() helper as it is not needed now.
> 
> No functional change intended.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> Reviewed-by: Julien Grall <jgrall@amazon.com>
 > Reviewed-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
 > ---> Changes since v15:
> - fixup for check after the first pass in the bitarray in domid_alloc()

This was a good catch from Jan. Has a unit-test been added for this issue?

Anyway, my reviewed-by holds.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 01:13:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 01:13:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087706.1445579 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uotrc-0001Kw-1u; Thu, 21 Aug 2025 01:13:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087706.1445579; Thu, 21 Aug 2025 01:13:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uotrb-0001Kd-TC; Thu, 21 Aug 2025 01:13:11 +0000
Received: by outflank-mailman (input) for mailman id 1087706;
 Thu, 21 Aug 2025 01:13:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JTf3=3B=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1uotra-0001KX-G7
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 01:13:10 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fea78aa4-7e2b-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 03:13:07 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 45F8561446;
 Thu, 21 Aug 2025 01:13:06 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id E0DB5C4CEE7;
 Thu, 21 Aug 2025 01:13:04 +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>
X-Inumbo-ID: fea78aa4-7e2b-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755738786;
	bh=0lsMR/auYfp0PZak8kqYkmhybqftIu9gTSwQiWM9MNI=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=JKyEUgf2BkUtuPdfcq36EDwxTpPqMEzBZolORugGPEbCrb65rvYs5LBjr2rQssfA1
	 QNLwxQihCiPOZQ8sZPbEIdm5k8mS6oGCl3M325//iXb5aS+YCQHtiuLyuLta454/8R
	 3PI+Meh1umdxOd2KHj8c0HidH4xbpdL20KyMiv1txMOCOZ94HO5sRLCm3kAB4m17Y7
	 fO87bf7zA+lBZgtEUhC0uAFOWzMBsm70eaIWk+A7bbAm+mapyr5N1SmwAvLfcLapcz
	 PqzgrESp4lzhGhL7iMbStnjofcGIhSey85jSyqj8kEvTWlQR2YaxjBHJmvGKdrRSQE
	 vX7FD0Md5NgPA==
Date: Wed, 20 Aug 2025 18:12:43 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Oleksandr Tyshchenko <Oleksandr_Tyshchenko@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 v2 3/3] iommu/ipmmu-vmsa: Implement basic PCIE-IPMMU OSID
 support
In-Reply-To: <8d0e16b6cb439000571ab6771a6c0e61627825ce.1752482857.git.mykyta_poturai@epam.com>
Message-ID: <alpine.DEB.2.22.394.2508201812370.2743087@ubuntu-linux-20-04-desktop>
References: <cover.1752482857.git.mykyta_poturai@epam.com> <8d0e16b6cb439000571ab6771a6c0e61627825ce.1752482857.git.mykyta_poturai@epam.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Mon, 14 Jul 2025, Mykyta Poturai wrote:
> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> 
> Program PCIE BDF-OSID assignment according to the S4_PCIe_IPMMU-OSID
> when adding PCI device to the IOMMU in ipmmu_add_device callback.
> This is needed for being able to assign PCI devices to different
> domains at the same time. Programmed OSID is emmited as sideband data on
> the AXI bus during PCI DMA transactions and then used by IPMMU to match
> the transaction to the corresponding uTLB.
> 
> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>

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


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 01:15:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 01:15:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087714.1445588 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uottQ-0001pC-AJ; Thu, 21 Aug 2025 01:15:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087714.1445588; Thu, 21 Aug 2025 01:15: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 1uottQ-0001p5-7k; Thu, 21 Aug 2025 01:15:04 +0000
Received: by outflank-mailman (input) for mailman id 1087714;
 Thu, 21 Aug 2025 01:15:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JTf3=3B=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1uottP-0001ov-0a
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 01:15:03 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 38733782-7e2c-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 03:14:44 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id AEDB261444;
 Thu, 21 Aug 2025 01:14:43 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id A3F14C4CEE7;
 Thu, 21 Aug 2025 01:14:41 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 38733782-7e2c-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755738883;
	bh=NWK3EpbPykEacrT/1T9HLbSOdjhsB7NrT+97Pj+3I8U=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=MsTWaHpCSjG2QwR46KaS4MO2LMTwzlJ13IulGrTx1bbEG3Fk+hl5dZYHGL7kz3ALy
	 pb0Y4AgEHT1MUIxJge2w3sGbEu8U7/eoXFud+vaLSZIVfRdsLSZM6AvcrXiKhk85HW
	 SNhuahXf6n5LoUL420AJeOufU/1U+CQ5A22cwHiFwZi82nQ0ESOoLDH8pppm8yVLy+
	 Rh7+2nZViJr3YV2noG68r7hXU4/WTqeHQkE/u+8T2C/mfHJjxjWagK0Qfg1U/9gqSb
	 hWafEtYuQg5sdEtGukcV3wVg7RaaL1uC0RbH44xhH3sFhFxgYB72SdrTy40DkXkjmD
	 Iemnoorz/mrug==
Date: Wed, 20 Aug 2025 18:14:40 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Edward Pickup <Edward.Pickup@arm.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, 
    Julien Grall <julien@xen.org>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Luca Fancellu <luca.fancellu@arm.com>, 
    Stewart Hildebrand <stewart.hildebrand@amd.com>
Subject: Re: [PATCH v2 1/3] arm/pci: Add pci-scan boot argument
In-Reply-To: <e73e8d13a09294ccc8b256b15a8d3facfc878238.1755683961.git.mykyta_poturai@epam.com>
Message-ID: <alpine.DEB.2.22.394.2508201814300.2743087@ubuntu-linux-20-04-desktop>
References: <cover.1755683961.git.mykyta_poturai@epam.com> <e73e8d13a09294ccc8b256b15a8d3facfc878238.1755683961.git.mykyta_poturai@epam.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 20 Aug 2025, Mykyta Poturai wrote:
> From: Edward Pickup <Edward.Pickup@arm.com>
> 
> This patch adds a Xen boot arguments that, if enabled, causes a call to
> existing code to scan pci devices enumerated by the firmware.
> 
> This will be needed ahead of dom0less support for pci passthrough on
> arm.
> 
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>

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


> ---
> (cherry picked from commit bce463e1588a45e1bfdf59fc0d5f88b16604e439 from
>  the downstream branch poc/pci-passthrough from
>  https://gitlab.com/xen-project/people/bmarquis/xen-arm-poc.git)
> 
> v1->v2:
> * remove is_pci_scan_enabled wrapper
> * make pci_scan_enabled ro_after_init
> * drop debug prints
> * drop Edward's SOB
> 
> changes since cherry-pick:
> * s/always_inline/inline/
> * replace additional kconfig option with config DEBUG
> 
> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> ---
>  docs/misc/xen-command-line.pandoc  |  7 +++++++
>  xen/arch/arm/include/asm/pci.h     |  3 +++
>  xen/arch/arm/pci/pci-host-common.c |  1 +
>  xen/arch/arm/pci/pci.c             | 24 ++++++++++++++++++++++--
>  4 files changed, 33 insertions(+), 2 deletions(-)
> 
> diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
> index a75b6c9301..762a1a4f5f 100644
> --- a/docs/misc/xen-command-line.pandoc
> +++ b/docs/misc/xen-command-line.pandoc
> @@ -2059,6 +2059,13 @@ This option can be specified more than once (up to 8 times at present).
>  
>  Flag to enable or disable support for PCI passthrough
>  
> +### pci-scan (arm)
> +> `= <boolean>`
> +
> +> Default: `false`
> +
> +Flag to enable or disable Xen PCI scan at boot.
> +
>  ### pcid (x86)
>  > `= <boolean> | xpti=<bool>`
>  
> diff --git a/xen/arch/arm/include/asm/pci.h b/xen/arch/arm/include/asm/pci.h
> index 08ffcd4438..7289f7688b 100644
> --- a/xen/arch/arm/include/asm/pci.h
> +++ b/xen/arch/arm/include/asm/pci.h
> @@ -23,6 +23,7 @@
>  #define pci_to_dev(pcidev) (&(pcidev)->arch.dev)
>  
>  extern bool pci_passthrough_enabled;
> +extern bool pci_scan_enabled;
>  
>  struct rangeset;
>  
> @@ -155,6 +156,8 @@ bool arch_pci_device_physdevop(void);
>  
>  #else   /*!CONFIG_HAS_PCI*/
>  
> +#define pci_scan_enabled false
> +
>  struct pci_dev;
>  
>  static inline void arch_pci_init_pdev(struct pci_dev *pdev) {}
> diff --git a/xen/arch/arm/pci/pci-host-common.c b/xen/arch/arm/pci/pci-host-common.c
> index 487c545f3a..d3481b05eb 100644
> --- a/xen/arch/arm/pci/pci-host-common.c
> +++ b/xen/arch/arm/pci/pci-host-common.c
> @@ -284,6 +284,7 @@ pci_host_common_probe(struct dt_device_node *dev,
>      }
>  
>      pci_add_host_bridge(bridge);
> +    pci_add_segment(bridge->segment);
>  
>      return bridge;
>  
> diff --git a/xen/arch/arm/pci/pci.c b/xen/arch/arm/pci/pci.c
> index beb1f971fa..1b34e17517 100644
> --- a/xen/arch/arm/pci/pci.c
> +++ b/xen/arch/arm/pci/pci.c
> @@ -91,8 +91,14 @@ bool arch_pci_device_physdevop(void)
>  bool __read_mostly pci_passthrough_enabled;
>  boolean_param("pci-passthrough", pci_passthrough_enabled);
>  
> +/* By default pci scan is disabled. */
> +bool __ro_after_init pci_scan_enabled;
> +boolean_param("pci-scan", pci_scan_enabled);
> +
>  static int __init pci_init(void)
>  {
> +    int ret;
> +
>      /*
>       * Enable PCI passthrough when has been enabled explicitly
>       * (pci-passthrough=on).
> @@ -104,9 +110,23 @@ static int __init pci_init(void)
>          panic("Could not initialize PCI segment 0\n");
>  
>      if ( acpi_disabled )
> -        return dt_pci_init();
> +        ret = dt_pci_init();
>      else
> -        return acpi_pci_init();
> +        ret = acpi_pci_init();
> +
> +    if ( ret < 0 )
> +        return ret;
> +
> +    if ( pci_scan_enabled )
> +    {
> +        ret = scan_pci_devices();
> +
> +        if ( ret < 0 )
> +            return ret;
> +
> +    }
> +
> +    return 0;
>  }
>  __initcall(pci_init);
>  
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 01:17:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 01:17:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087723.1445599 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uotvk-0002OR-OA; Thu, 21 Aug 2025 01:17:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087723.1445599; Thu, 21 Aug 2025 01:17: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 1uotvk-0002OK-KU; Thu, 21 Aug 2025 01:17:28 +0000
Received: by outflank-mailman (input) for mailman id 1087723;
 Thu, 21 Aug 2025 01:17:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JTf3=3B=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1uotvj-0002OE-3s
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 01:17:27 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 97dc34a8-7e2c-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 03:17:25 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 752EE5C58BF;
 Thu, 21 Aug 2025 01:17:23 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id F2858C4AF09;
 Thu, 21 Aug 2025 01:17:21 +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>
X-Inumbo-ID: 97dc34a8-7e2c-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755739043;
	bh=eeyCW/r+jSIHSfaXKe3oB8UsMEutwARYYbedfbO3cjE=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Ik89ng2pyiSq1zqGp0FtX9D1NdLWITbZnopY0goBDX7sUNnNHSTH7qNK3ek/xVedS
	 bNsupCrdNsfNO3LO9HIVo1vgTq1UygZc8+EoW234OMWZd239PnBN3uknE77jiygC33
	 jceI+nLjbmAYHrPTSFzOUZSRD3m5KQ/76827VmVYZWiowjw52dzmWgwcjO8JaNKvsn
	 rL/hiSNtJ68qpb11x5M4JbQVpU05RVJVURz38KoeqtarRuNVLPoxR0mO7Qha6bQBvJ
	 gtNu90X3/TPS8kpyK+IMQmMWKN63zTVNxwtxyr6e26ULbPfieHEXunEF29H0rhp2WM
	 Ukam6gM9svwAg==
Date: Wed, 20 Aug 2025 18:17:21 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Luca Fancellu <luca.fancellu@arm.com>, Jan Beulich <jbeulich@suse.com>, 
    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>
Subject: Re: [PATCH v2 2/3] xen/pci: modify pci_add_device to handle device
 add by Xen
In-Reply-To: <e0da037322b978d427d23a1af50406598a08b378.1755683961.git.mykyta_poturai@epam.com>
Message-ID: <alpine.DEB.2.22.394.2508201817130.2743087@ubuntu-linux-20-04-desktop>
References: <cover.1755683961.git.mykyta_poturai@epam.com> <e0da037322b978d427d23a1af50406598a08b378.1755683961.git.mykyta_poturai@epam.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 20 Aug 2025, Mykyta Poturai wrote:
> From: Luca Fancellu <luca.fancellu@arm.com>
> 
> Currently pci_add_device is called from hypercalls requested by Dom0
> to add pci devices and when the device has no domain associated with
> it, it is assumed that hardware_domain is the owner.
> 
> On the dom0less scenario, the enumeration is performed by the
> firmware and Xen at boot time might want to assign some pci devices
> to guests, so it has to firstly add the device and then assign it to
> the final guest.
> 
> Modify pci_add_device to have the owner domain passed as a parameter
> to the function, so that when it is called from the hypercall the
> owner would be the caller domain, otherwise when Xen is calling it,
> it would be another domain since hw domain could not be there
> (dom0less guests without Dom0 use case).
> 
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>

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



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 05:27:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 05:27:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087799.1445621 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uoxp2-000876-Jv; Thu, 21 Aug 2025 05:26:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087799.1445621; Thu, 21 Aug 2025 05:26: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 1uoxp2-00086x-Ee; Thu, 21 Aug 2025 05:26:48 +0000
Received: by outflank-mailman (input) for mailman id 1087799;
 Thu, 21 Aug 2025 05:26:47 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=PfM8=3B=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1uoxp1-00086R-HP
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 05:26:47 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de
 [2a07:de40:b251:101:10:150:64:1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6d9cd52f-7e4f-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 07:26:45 +0200 (CEST)
Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 19F2321235;
 Thu, 21 Aug 2025 05:26:45 +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 D2DB413867;
 Thu, 21 Aug 2025 05:26:44 +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 68uzMRSupmjNYwAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 21 Aug 2025 05: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>
X-Inumbo-ID: 6d9cd52f-7e4f-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1755754005; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=QDA+b9S7biTMliKw+KQllbaqlyavUDZN8VS7qjC6U9c=;
	b=pbiZcNLc+ukWFcqxc8nVKhvip4+sV84csilkbjbs28hCpGafab8jq10fd3dYUvaxlWujne
	lEkIZh26/6ABPqg5H0XzzHuzUeTCOtctIWK8FLf2lxX8zVCRO3mPXAwtHQgvkfOWO9Gpf1
	zPbS8YwpfNCqf5G+/htyLopn4eElf94=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1755754005; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=QDA+b9S7biTMliKw+KQllbaqlyavUDZN8VS7qjC6U9c=;
	b=pbiZcNLc+ukWFcqxc8nVKhvip4+sV84csilkbjbs28hCpGafab8jq10fd3dYUvaxlWujne
	lEkIZh26/6ABPqg5H0XzzHuzUeTCOtctIWK8FLf2lxX8zVCRO3mPXAwtHQgvkfOWO9Gpf1
	zPbS8YwpfNCqf5G+/htyLopn4eElf94=
Message-ID: <0cbd6cac-4745-4561-96e5-d3fec8dc7426@suse.com>
Date: Thu, 21 Aug 2025 07:26:44 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/dom0less: Clear xenstore page
To: Jason Andryuk <jason.andryuk@amd.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>
References: <20250820211242.116868-1-jason.andryuk@amd.com>
Content-Language: en-US
From: Juergen Gross <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <20250820211242.116868-1-jason.andryuk@amd.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------n30wMmDQeokO94Y5ltSIx0Ke"
X-Spam-Level: 
X-Spamd-Result: default: False [-5.20 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	SIGNED_PGP(-2.00)[];
	MIME_BASE64_TEXT_BOGUS(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain];
	NEURAL_HAM_SHORT(-0.20)[-0.994];
	MIME_UNKNOWN(0.10)[application/pgp-keys];
	MIME_BASE64_TEXT(0.10)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:~,5:~];
	ARC_NA(0.00)[];
	TO_DN_SOME(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	RCPT_COUNT_FIVE(0.00)[6];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	MID_RHS_MATCH_FROM(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email,suse.com:mid];
	HAS_ATTACHMENT(0.00)[]
X-Spam-Flag: NO
X-Spam-Score: -5.20

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------n30wMmDQeokO94Y5ltSIx0Ke
Content-Type: multipart/mixed; boundary="------------6oLGLlS3NH7ntUyMMahiYQB0";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Jason Andryuk <jason.andryuk@amd.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>
Message-ID: <0cbd6cac-4745-4561-96e5-d3fec8dc7426@suse.com>
Subject: Re: [PATCH] xen/dom0less: Clear xenstore page
References: <20250820211242.116868-1-jason.andryuk@amd.com>
In-Reply-To: <20250820211242.116868-1-jason.andryuk@amd.com>

--------------6oLGLlS3NH7ntUyMMahiYQB0
Content-Type: multipart/mixed; boundary="------------cMJiQT3OGWE2vy8vFhGKO0hh"

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

T24gMjAuMDguMjUgMjM6MTIsIEphc29uIEFuZHJ5dWsgd3JvdGU6DQo+IEMgWGVuc3RvcmVk
IHdhcyBzZWVuIGZhaWxpbmcgdG8gbWFwIGEgZG9tVSdzIGV2ZW50IGNoYW5uZWwuICBFbmhh
bmNpbmcNCj4gWGVuJ3MgZXJyb3IgbWVzc2FnZXMgc2hvd3M6DQo+IGNvbW1vbi9ldmVudF9j
aGFubmVsLmM6NDI3OmQwdjAgRVZUQ0hOT1AgZmFpbHVyZTogZDEsIHBvcnQgMzI2NzU0Mzc0
NiBlcnJvciAtMjINCj4gDQo+IFBvcnQgMzI2NzU0Mzc0NiBpcyAweGMyYzJjMmMyIC0gU0NS
VUJfUEFUVEVSTi4NCj4gDQo+IFhlbnN0b3JlIGV4cGVjdHMgYSBub24temVybyBldnRjaG5f
cG9ydCB0byBiZSB2YWxpZC4gIEV4cGxpY2l0bHkgemVybw0KPiB0aGUgcGFnZSB0byBhdm9p
ZCB0aGlzLg0KPiANCj4gRml4ZXM6IGY3ODg5NWFkNzhjOSAoInRvb2xzL3hlbnN0b3JlZDog
UmVhZCBldmVudCBjaGFubmVsIGZyb20geGVuc3RvcmVkIHBhZ2UiKQ0KPiBTaWduZWQtb2Zm
LWJ5OiBKYXNvbiBBbmRyeXVrIDxqYXNvbi5hbmRyeXVrQGFtZC5jb20+DQo+IC0tLQ0KPiBU
d2Vha2VkIHN0dWJkb20gJiBkb20wbGVzcyBDIHhlbnN0b3JlZCBwaXBlbGluZSBzdWNjZXNz
Og0KPiBUZXN0IENJIHBpcGVsaW5lOg0KPiBodHRwczovL2dpdGxhYi5jb20veGVuLXByb2pl
Y3QvcGVvcGxlL2phbmRyeXVrLWFtZC94ZW4vLS9waXBlbGluZXMvMTk5NDg3OTQ2Ng0KPiAN
Cj4gRXhhbXBsZSBmYWlsdXJlOg0KPiBodHRwczovL2dpdGxhYi5jb20veGVuLXByb2plY3Qv
cGVvcGxlL2phbmRyeXVrLWFtZC94ZW4vLS9qb2JzLzExMDg0MzU2ODQ3DQo+IA0KPiBBbHRl
cm5hdGl2ZWx5LCBhIGZpeGVzIGNvdWxkIGJlOg0KPiBGaXhlczogZGYyYzAzZTJlYmZlICgi
eGVuL2FybTogQWxsb2MgWGVuU3RvcmUgcGFnZSBmb3IgRG9tMGxlc3MgRG9tVXMgZnJvbSBo
eXBlcnZpc29yIikNCj4gSWYgdGhlIHBhZ2Ugc2hvdWxkIGhhdmUgYmVlbiB6ZXJvIGZyb20g
dGhlIHN0YXJ0Lg0KDQpJIHRoaW5rIHRoaXMgb25lIGlzIGJldHRlci4gRWl0aGVyIHdpdGgg
b3Igd2l0aG91dCB0aGUgRml4ZXM6IHRhZyBjaGFuZ2VkOg0KDQpSZXZpZXdlZC1ieTogSnVl
cmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPg0KDQoNCkp1ZXJnZW4NCg==
--------------cMJiQT3OGWE2vy8vFhGKO0hh
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-----

--------------cMJiQT3OGWE2vy8vFhGKO0hh--

--------------6oLGLlS3NH7ntUyMMahiYQB0--

--------------n30wMmDQeokO94Y5ltSIx0Ke
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/Ey8FAmimrhQFAwAAAAAACgkQsN6d1ii/Ey9l
0Af/QkcoWT+4E0Ko+Zfua7oDk0hIdgFn48CcA9JzB3V3oI7F8gEvUZ6OzfVm6zdNOyc8i8JE/e1X
5dpJ0xssKI0PTRwkL5owNJHHlYlJrw7NwEHg8YAVGou4bNI6/80dqYmtG4vBPLZe+sCiZ9kZNcSX
98uUH+iyQ34ZM3tpKLppcNW+P8/7aOonMBzIT2cb30qFLhHIYjBNRUV1cIFmGVj1Pr0WCBdT/AZQ
sYRDls9EhHQaI5V2EFf/fME9cK3qodk6tiYoUXSRCiKuxkY5SQ9FEzRoNnZ7J5ToFO+eREbUDoaC
RPLnELB8Ds0CBZVWuRqNMyJvoHERMI0+JKNu15KYwg==
=phnh
-----END PGP SIGNATURE-----

--------------n30wMmDQeokO94Y5ltSIx0Ke--


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 07:10:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 07:10:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087834.1445630 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uozRd-0004lz-Eg; Thu, 21 Aug 2025 07:10:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087834.1445630; Thu, 21 Aug 2025 07:10: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 1uozRd-0004ls-Bz; Thu, 21 Aug 2025 07:10:45 +0000
Received: by outflank-mailman (input) for mailman id 1087834;
 Thu, 21 Aug 2025 07:10:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5Hha=3B=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uozRb-0004lm-SZ
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 07:10:43 +0000
Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com
 [2a00:1450:4864:20::52e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f2c03dee-7e5d-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 09:10:42 +0200 (CEST)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-61a2a5b06cdso1259483a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 00:10:42 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afded3070b1sm336466366b.36.2025.08.21.00.10.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Aug 2025 00:10: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>
X-Inumbo-ID: f2c03dee-7e5d-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755760241; x=1756365041; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=N3h1AZ2T7CvyVmoojp7c8OtaEqzloYDb19z392xoYJg=;
        b=QsOb63muJSL+fGqwujKRyGCYSXFCcq+qXM4WR2FXQ4Q2ahmtX7ntSEKtjSab1JE4dL
         6DY9n2AlvKTU1o71ucSl5zhadTw791t5h6Bdq+V795Aaitw2gKzwr0HrPsDl8ppN+g8P
         lwrk/9Y/pzM0pb+Gm0i4TuA25ZypAezCcXvOyceSs5WdngxfWN0fpFETi+nOqNe24k+/
         U2v+SRmSRKmZxbGbCNzyp7alKTOsPK3Y84PySLzvvxik+k6GJLpZxqwTsvMrAhE+THZG
         qGjJro7iDpCLcmEuLNFRYM7seCOTOrNawvKxHaZTZtbLIm1r3epT52vw4HEHVxfNJUjJ
         1gXA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755760241; x=1756365041;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=N3h1AZ2T7CvyVmoojp7c8OtaEqzloYDb19z392xoYJg=;
        b=u5w771kyvqGbOE/Mc2YIjCgZWR4AQUwrxjLJLRE9zwEiIXOfBZ9mRSl03HbEUXYmuS
         E0Mg0CM18Qc+9/XnCVZyzZ0xaydcJmYn4glCZS2hEwoVQW/xDHCT0dsDwoEvJwM43g38
         B7twf3OqT3JGrqOK2goc8IP7HHRcvm4DjqvK7RJaLZT14NJLw7yLJVhPZAxs3yDsg6mI
         9E3PeuoGvyxfOhDfdKrOgKBdER9YwJ/dKLWoygMd49GZLCnwGtV7B/jgz/MCG+ldkBtI
         PPs7WuOmJ6CR0624MMW/XoYJBd7+4WzirMk12zEIKeHCWOWnpNfFJg3vQQ3VULJMk5WG
         SwvQ==
X-Forwarded-Encrypted: i=1; AJvYcCVSX7SIvFlSvyVF5oci659wd0k+gjU8Eic/Qs5gN+5XTL3Yf+tvq2cTdHdgnre5+vGU8Tcj2tPrbGs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzRGBWggtWa/1Ggk5PUhfFLREOupE3BJ9VZ6YVu7BbL1ZPRW3Pk
	SPrJpBQC5kdfmou9ghXd+zeALUyr0Wb/+Tfi5ZCNQV3sjt12Q5clTKSq382FZHBzEQ==
X-Gm-Gg: ASbGncsT4DX+GbcnxQe/vvATyZlTJWxJlXeQUBGguyAq1cZDaZo+keAsWNjxUJnZQwF
	J/WYfN1guVRk+XCyyY4Xlhe9VZ4ZYqP+kPz0PGusU+uyTlRn5iHF1cOnaOUY4WTuB5wKuu+icK1
	yETVWvOnJ8OgYsqCgQ4NQ1Joq2PGEL9xKWoA1z5map02u2LxLRihK/Fdy0IQM/QXOvPBO9BO2+V
	Vl6WfpFrKzT3o725p+UDiObWKPBRDDSQ2WUg/Xb+iP1xmMLjakWJfN0BsBZ/1FSEtXD9rXp3Ms/
	5b16WhTutAn2dxD7/1e09p1Z33Lk6+fDpp4Xn0AK4HsJWsPBgqxB4iy4y5Y0Z3H4CwnP7hI6TVc
	0WXZ9/2ZG68eAa5w+sH0VIW7wkIPHzWjWbHSs3DAkMJchspicsLxw32RDqUx9A79qNUKWYjbH76
	5aFtgt2FQ=
X-Google-Smtp-Source: AGHT+IG4Fc2ZXR/KiKevfPs3BwFnWjxF2BkRls4mMBlasPhEoy4cXdcweVZO2TmV5q4ZOJ4Lr+4+9g==
X-Received: by 2002:a17:907:d8f:b0:afd:eb4f:d5ce with SMTP id a640c23a62f3a-afe07d4c7b9mr137499566b.62.1755760241178;
        Thu, 21 Aug 2025 00:10:41 -0700 (PDT)
Message-ID: <608e90a8-e022-4f2c-909f-316b15379fd8@suse.com>
Date: Thu, 21 Aug 2025 09:10:39 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/2] common: make page_{is,get}_ram_type() x86-only
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>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <a2dc40a8-908a-44a7-b443-90f492a775cc@suse.com>
 <4a568ff4-2cfd-40ec-b249-217fab34f4ec@suse.com>
 <8b852798-83ec-4f10-99c2-ae5f0bca7038@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: <8b852798-83ec-4f10-99c2-ae5f0bca7038@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19.08.2025 20:45, Andrew Cooper wrote:
> On 18/08/2025 8:57 am, Jan Beulich wrote:
>> --- a/xen/arch/x86/include/asm/mm.h
>> +++ b/xen/arch/x86/include/asm/mm.h
>> @@ -464,6 +464,16 @@ extern bool opt_pv_linear_pt;
>>      ASSERT(((_p)->count_info & PGC_count_mask) != 0);          \
>>      ASSERT(page_get_owner(_p) == (_d))
>>  
>> +#define RAM_TYPE_CONVENTIONAL 0x00000001
>> +#define RAM_TYPE_RESERVED     0x00000002
>> +#define RAM_TYPE_UNUSABLE     0x00000004
>> +#define RAM_TYPE_ACPI         0x00000008
>> +#define RAM_TYPE_UNKNOWN      0x00000010
>> +/* TRUE if the whole page at @mfn is of the requested RAM type(s) above. */
>> +bool page_is_ram_type(unsigned long mfn, unsigned long mem_type);
> 
> Making it x86-only is fine, but if you're changing the return type,
> mem_type can become shorter too.

Oh, indeed - done. Won't re-post just for this, though.

> Also, I'm struggling to convince myself that page_is_ram_type() is
> correct.Â  Even if it is correct, it is horribly inefficient, and we run
> this algorithm lots on boot.
> 
> Checking the type before the range is the backwards way of doing this,
> and it can be a binary search because we go out of our way to fix
> unsorted e820 maps.
> 
> Finally, acpi_memory_banned() shows that this really isn't the greatest
> API in the first place.Â  It's explicitly designed to take multiple
> inputs, but does the wrong thing for its' single caller wanting that
> behaviour.Â  I can't help but feel we'd be in a better position by
> removing this entirely and using plain E820 queries.

All valid remarks, but all to be taken care of separately imo.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 07:12:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 07:12:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087842.1445640 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uozTM-0005IY-Oz; Thu, 21 Aug 2025 07:12:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087842.1445640; Thu, 21 Aug 2025 07:12:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uozTM-0005IR-MP; Thu, 21 Aug 2025 07:12:32 +0000
Received: by outflank-mailman (input) for mailman id 1087842;
 Thu, 21 Aug 2025 07:12:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5Hha=3B=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uozTL-0005IJ-GB
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 07:12:31 +0000
Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com
 [2a00:1450:4864:20::52b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 32f0c60f-7e5e-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 09:12:29 +0200 (CEST)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-6188b5ad4f0so1041374a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 00:12: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
 a640c23a62f3a-afdf9be51fdsm220931166b.43.2025.08.21.00.12.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Aug 2025 00:12: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>
X-Inumbo-ID: 32f0c60f-7e5e-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755760349; x=1756365149; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=UkFXBSrPc5deef/aRZ8okRkeMDIVqRrubNrQj0sW7VQ=;
        b=QMKB25Y7nRb2p1DlHgl5choCKEulLYOhCHPlduc3lsF1r1abusPTt/rNc3LEbjOebO
         XxDu9mFh0HMMaoZHdO8JtbIUIKVSPxgMlrwyFwu7R7RuHz8INkKSJLvSYQZQVl/vckzW
         zr18s1f8LItNN3/33aRnotzNf+OaqtRBquccjeWeDj/c5yodl8w6ax8KC0z68cX77rVW
         KQT0aFD6sNUeRjNXm/DeH7SWtL/3HPER/aeA9wq4qtvFGbk3eiJoHRYk/Dn10Al1du/K
         UifHyQAl7maUjNWH8oZsVNw2nU89ohO1GsDj3gRYJqbDd4EqigiSrm6nmJSTLJ/t5tH/
         Iaug==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755760349; x=1756365149;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=UkFXBSrPc5deef/aRZ8okRkeMDIVqRrubNrQj0sW7VQ=;
        b=PsxXKpqDVt92pJfNUVmjNN9xiHNOD6oEbx0RxZfTC9DZwd+aN/am3hZLGfQQfEG3NE
         RNQR2YKRrWg1b4H8L1Z4hKBv97Etrd2X/GjaSSz5gfyH9oQOcxRf4Z8PqsG68NYKUR7n
         fHT9fD+f6f5xv53fTRDINcTpBZWthYNxS+1y1Dc/EU/PlGGciqARZTleJ/kmKwVtwhJ/
         lPP0q/mhAiKnHtRHig2hEt6klnqwh+3zQRjGibJYVthdkY+1YoESyPnhdmkENgIfrdtB
         kyrpOMX8MwMYXN0i/Am6lmypPDbsZmwjDM+tGgbqxVrPdHB9V1VMfNuldm1wO0MFyuct
         3Dpw==
X-Forwarded-Encrypted: i=1; AJvYcCWIjqwRjwTmhyf/2NK52+sfB8+dk5T6l7xn83fJfG/CCqW5UdPKyXq28Gg8G7FkOZEJJo5gb6NUYWM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyOgfeHoAsD3u34OvMqokodoJlvOHd1lxsQK+EF/4ZvIS87YaDU
	PRFrni/KTS5K9/qdfPgXs4cADMgnjRgNbJz3MFfVwAhXN2nlTIi5bJoVK7/rHtfMHA==
X-Gm-Gg: ASbGncsb6TxjjfTjOUAj+WAI46h72dFjWJzSh3PTelWw1CIsndEFawAhEWiaMyzra8f
	LfgG3EKXgmAPKHAzPTbF/qiSFFVGRTd0FIU39wHfUIvWazzzPlg6q6Pr/PSnor1kvGHeICdWw81
	84ASgnMjiM+NAaVksQCSf+YGRF3CCHwQS5BhUq/RBi5TbjSIJoTWLK7d9fWbY0eOXLkrOaST+Gu
	qRpjDde2Q9atLs+gt1OXcguhUoP/590rsQfS2p34TRV0YGq6K0k+vOGZfjPUKqu5oaAPo2NjnPW
	dmd77gsJhFS73Jy6kWLLovSMKGv9tbmFb4Bwb4BHgGbiepITEuu2BjweSlVinN6nQKI91Qyslta
	aq/E9V6ubcUx50vhmlXY1dpLlP0agNM+BP6mMNEDiaQhv5L59jc7G7Rpcfy3QZG7cYCR/sAadih
	8JmRDsTLQ=
X-Google-Smtp-Source: AGHT+IGeVGUbt/u18CcoUbQ7mjGGzatj9TDLjcOpuTs5B8cZJt4aDYeuIFyd2jD15WXvET0g2wTV1g==
X-Received: by 2002:a17:907:70c:b0:ad5:1c28:3c4b with SMTP id a640c23a62f3a-afe07e1d5b0mr133292466b.52.1755760349066;
        Thu, 21 Aug 2025 00:12:29 -0700 (PDT)
Message-ID: <56aa9b08-6f82-4c91-9398-fb08746ff76f@suse.com>
Date: Thu, 21 Aug 2025 09:12:27 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 11/16] x86/msr: Change rdmsr() to have normal API
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
 <20250815204117.3312742-12-andrew.cooper3@citrix.com>
 <493d4580-62b7-4ff7-9159-4079b4b98f61@suse.com>
 <7f737ca3-5aba-4ae9-820a-448824174f2e@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: <7f737ca3-5aba-4ae9-820a-448824174f2e@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19.08.2025 21:45, Andrew Cooper wrote:
> On 19/08/2025 1:04 pm, Jan Beulich wrote:
>> On 15.08.2025 22:41, Andrew Cooper wrote:
>>> --- a/xen/arch/x86/tsx.c
>>> +++ b/xen/arch/x86/tsx.c
>>> @@ -42,6 +42,8 @@ void tsx_init(void)
>>>  {
>>>      static bool __read_mostly once;
>>>  
>>> +    uint64_t val;
>>> +
>>>      /*
>> No real need for yet another newline, I would say.
> 
> Where?Â  Before?Â  that's separation of static and not.Â  After? that's
> separation of variables and code.Â  All as we do elsewhere.

The latter we do elsewhere too, sure. But separating statics from auto
variables we don't normally do, unless the set of declarations is rather
large.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 07:16:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 07:16:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087850.1445650 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uozX4-0005qQ-75; Thu, 21 Aug 2025 07:16:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087850.1445650; Thu, 21 Aug 2025 07:16: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 1uozX4-0005qJ-4A; Thu, 21 Aug 2025 07:16:22 +0000
Received: by outflank-mailman (input) for mailman id 1087850;
 Thu, 21 Aug 2025 07:16:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5Hha=3B=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uozX3-0005qD-6E
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 07:16:21 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bbb15537-7e5e-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 09:16:19 +0200 (CEST)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-61aa702c9ebso1530335a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 00:16: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
 a640c23a62f3a-afded4cb4c5sm330336966b.88.2025.08.21.00.16.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Aug 2025 00:16: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>
X-Inumbo-ID: bbb15537-7e5e-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755760578; x=1756365378; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=RSBaZdKqIDR+DpHfZRDVdb8oW+a/R3SGa/0ehYQUfHQ=;
        b=Buz2i7j13EfSk+9ybRRpXX1IaUgoIOfQTGqO3qLtI/3kJQOfx3UYfXitMSwXKVK/sa
         uYbmZiH4uxmr4SjxZuUU1ZOhABUWf/IROYxA/81OM9Xr9iHRvhXUT+1kU9Qv51YVHlOZ
         VLj8B+1OwISOJKbq7LJHwV0Dm8zH2Mhds6TsbKCl+sGjViqQo6IocXUs69NEg/9oHc2N
         NQ/C8Pr/GAIyN/o7/Xpb7E/zIhtJBiMBcHMIct7297HXNrznnq/XoI02L6m4w6XNsZU1
         rV4AxaX2KW3bBXCW83fopUjrQLGraW/ULE9vqi+hi4CeBhFedIGba6fytVqLL6kvko+A
         TUog==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755760578; x=1756365378;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RSBaZdKqIDR+DpHfZRDVdb8oW+a/R3SGa/0ehYQUfHQ=;
        b=ZpCGEzoeTuo+dTxULlIpHlG7QIpejUOZtlPP3Dkz6cQ5Qw5KGKpm0Wk2N7Bz3EUZyI
         SJE5yOX4ZcpRIEF+h6Irzk8qPcjj5RwKcg+GQNSBBSn4zGbiZ32VQXUa1tbiNS/bnTah
         xJCIjpXRztvrNNNsiQflJDjesbZA6aOck0ycFbQhiG7sfBKpRKrm0cxKBNIsKHr3Okz+
         Oz/t8tSrBtTzxRkdIBcYW8DGaY6se+vtkI4yXYQ8nt33p0+Y/ApVQyQuKAD408q9t545
         Y/i+y69cUlCtE62RT27HE/ZTNWX02DAI9PthTniHENJQy39omZwwDSK2qJ7dxmjQB0vf
         DsIQ==
X-Forwarded-Encrypted: i=1; AJvYcCVTA2Dn71C/DL/ytJWiYjmPQqpRsEOAmxKVxdBzpiO+eDX1lbUZL1/kxMmHWxZO43/pyrMfM+HgxVU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwedzwWEBqGOf0CGk9eH4Nnl6Inq6Xh+ZUQWcntwrz+S0BwWput
	DFqhoreVlE6h7esVosldylNz9FSyghJGnHqX2YYHjivuLw7IrztR3n57jTy5pNSfVA==
X-Gm-Gg: ASbGncsfj9uUs6XlbvQCyTrArLjvgzku1imKa4zk4l01RXcK8H1grVUvclrF7CUw9yn
	vaRgSKtiClbNr7bpaJZT08tMQ0FFSikULco/sKKEIZoWwJq0eBI/CfeyYD4ESFQSvJ+IlXLn9Z7
	E1dVN+es0hgcNw5vb3IQ8wqu9ia/HXGmAgM4HtySmrMhWR5vkUc8kTl+q8C16RVk2/Wy4oj+uK6
	4M9705rllQYgelz6KOtpdYa38w8efNPQ+/po9wyk8y+PYM6qrYcQa4/3Fk/HaSvPdCzN3YMIvc0
	MBe7yjTDrzyVKjCbmSWH+LxqKO62gRNH4d+Av7ohvV91sNl+MNMYWkuF0fZCsx1UOYHOqfgb3a6
	hw1rHQ099WMmxbLSgBNmWpdbwcfCWcVkq1/BcOF7ofk9Czy7Z5+iQQNlM584fGkSTSkhN2qF3a6
	xKMEFFfilXOs3ep5pTSA==
X-Google-Smtp-Source: AGHT+IF4EuhNeGoxrZ6BJKX9hfgp17wrxdhDWcoIxzG5T3U03UWBztb4VLueQ7rpdI2OopswyK58dg==
X-Received: by 2002:a17:906:4fd6:b0:ad8:a04e:dbd9 with SMTP id a640c23a62f3a-afe07bff069mr147393566b.31.1755760578316;
        Thu, 21 Aug 2025 00:16:18 -0700 (PDT)
Message-ID: <a5d91a6d-cde6-42fc-8497-f2c822e98174@suse.com>
Date: Thu, 21 Aug 2025 09:16:16 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v16 1/4] xen/domain: unify domain ID allocation
To: dmkhn@proton.me
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, Julien Grall <jgrall@amazon.com>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 xen-devel@lists.xenproject.org
References: <20250812223024.2364749-1-dmukhin@ford.com>
 <20250812223024.2364749-2-dmukhin@ford.com>
 <f85ae718-0243-4426-a555-327afffe7148@suse.com> <aKUPo+hRdfGlg+S8@kraken>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aKUPo+hRdfGlg+S8@kraken>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 20.08.2025 01:58, dmkhn@proton.me wrote:
> On Thu, Aug 14, 2025 at 09:11:11AM +0200, Jan Beulich wrote:
>> On 13.08.2025 00:30, dmkhn@proton.me wrote:
>>> From: Denis Mukhin <dmukhin@ford.com>
>>>
>>> Currently, there are two different domain ID allocation implementations:
>>>
>>>   1) Sequential IDs allocation in dom0less Arm code based on max_init_domid;
>>>
>>>   2) Sequential IDs allocation in XEN_DOMCTL_createdomain; does not use
>>>      max_init_domid (both Arm and x86).
>>>
>>> The domain ID allocation covers dom0 or late hwdom, predefined domains,
>>> post-boot domains, excluding Xen system domains (domid >=
>>> DOMID_FIRST_RESERVED).
>>>
>>> It makes sense to have a common helper code for such task across architectures
>>> (Arm and x86) and between dom0less / toolstack domU allocation.
>>>
>>> Note, fixing dependency on max_init_domid is out of scope of this patch.
>>>
>>> Wrap the domain ID allocation as an arch-independent function domid_alloc() in
>>> new common/domid.c based on the bitmap.
>>>
>>> Allocation algorithm:
>>> - If an explicit domain ID is provided, verify its availability and use it if
>>>   ID is not used;
>>> - If DOMID_INVALID is provided, search the range [1..DOMID_FIRST_RESERVED-1],
>>>   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 range.
>>>
>>> Remove is_free_domid() helper as it is not needed now.
>>>
>>> No functional change intended.
>>>
>>> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
>>> Reviewed-by: Julien Grall <jgrall@amazon.com>
>>> Reviewed-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
>>> ---
>>> Changes since v15:
>>> - fixup for check after the first pass in the bitarray in domid_alloc()
>>> - trivial renaming for the local variable in domid_alloc()
>>> - kept Julien's R-b, added Alejandro's R-b
>>
>> Just to mention: My take is that this kind of a fix ought to invalidate all
>> earlier R-b. It's not just a cosmetic change, after all.
> 
> Sorry for the hiccup here, did not mean to overrule the review process.
> 
> My bold assumption was that in case of small fixups like this it is
> satisfactory to carry over previous acks.

Acks may be okay to keep, but imo R-b need dropping when an actual bug was
fixed. Irrespective of how severe the bug was.

> I asked (matrix) both Julien and Alejandro to re-review and confirm.

While good to ask, that's of limited use. It'll be impossible later on to
figure whether such a confirmation was given. Decisions (and acks and alike
effectively fall into that category) need to be on the list, to be able to
locate them later on.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 07:18:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 07:18:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087862.1445661 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uozZ8-0006SF-Mx; Thu, 21 Aug 2025 07:18:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087862.1445661; Thu, 21 Aug 2025 07:18: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 1uozZ8-0006S8-JU; Thu, 21 Aug 2025 07:18:30 +0000
Received: by outflank-mailman (input) for mailman id 1087862;
 Thu, 21 Aug 2025 07:18:28 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5Hha=3B=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uozZ6-0006S1-Ly
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 07:18:28 +0000
Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com
 [2a00:1450:4864:20::52e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 086457f3-7e5f-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 09:18:27 +0200 (CEST)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-61a8c134609so887484a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 00:18: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
 4fb4d7f45d1cf-61a758ba909sm4664987a12.54.2025.08.21.00.18.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Aug 2025 00:18: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>
X-Inumbo-ID: 086457f3-7e5f-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755760707; x=1756365507; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=kz+RuHL5NbWZDZeLRhEolggsKwd2SDrW5HcEjJlmTtk=;
        b=c44ad2wbTARMGeOWIOr6CwpvFsd6gofwLdh++BE/jn3JFfSTeuXGEaw64/2jH8MPQ1
         iJ5bc1Wdx3I7hi31VFci9bqR91jueOPMh5tO9eRfSDceo3VLkhK/pwaMQTdnOuzkRBVj
         6D+73TK6HRZxxVhnP4xhuvDmYkeDdYKKgjsv2XbDYGNpEIe2eBzjxXVVhe7lpm+YVnmj
         sPYW15n4xwmYNw32xj3vLh3IjpUTIwNa8RJyUE9hGpfoAB9BvXIcxIwMAsP57dJXqvYE
         9i9NBH9TrfP+X1LwfnNmzJyDuKiY030zYDgWFRJKz9ZyMRIErOkbXrbtkvKAkJ3Po+kE
         T2mw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755760707; x=1756365507;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kz+RuHL5NbWZDZeLRhEolggsKwd2SDrW5HcEjJlmTtk=;
        b=cCYGPG/0htvbmPTXKEk8ztK596pngm1ql4jIkB384Bx0q1F0oSu5RbT0PlWPU+lU6q
         1AWdMM9eNRS/8OYUmnkKcYMlBf/EtrPzNt8lgLlEJSFBXZhwT+fwHNYo7rRjrgRiAgi5
         OXeBjODUMVw3tjIWL6xjIjsbsTjnI8Ig0LhN0CzaUo2dboF98+q8wSO7UKoHHYAQ/1l5
         ypBsvvLkEQrGgRjAHvzUY0Xz6UJOZJxVtJ36BavjOqQnRbQXgf6yGU9QLXlJF+TafGfs
         sHXWmPC67YAmRh9TYjY8iWHhqi1HGC3MQmWsrq7Vk0L8K3u/ueaeoQA9cZZW/4LRUY+o
         eNDQ==
X-Forwarded-Encrypted: i=1; AJvYcCWjrl9Cg9YH0JigLN0NDOA3AoDJq2FIES5WwQ496Eaw8CVesFzPomHmSIuvlnuYag5998ZpVbapYNg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyIV5yYNLcTOGNZsIE8XvQp3bct4Yd0OeZy8PdgYNTDGX6VQLmn
	UeanSMlDiHklxVi2FJyo6VqoLnFWOkY0TjR1RfDi/qPbL22xWBF5NidyTYUXMqosEw==
X-Gm-Gg: ASbGncuHhcE75noQcOp3sApWxdifVChb1QSWfArWDqKiTf8S3KLBEnN+3QllDz3SAxH
	MIyFKby2SK+HPGJ9mRdi0J+oEWuwCVcnxfOFK/xUzmGhsGdaBWXf/3sKbXzxxbfV/JidI+03cev
	z7bRzDS3Fe/VBqVZ3se6D59slgsKbPKLAlTjTDFJ6Yoe3zS/QVBJ8qxZzjGZyBG9YMw/5LSgwvC
	kruq/aug1gMB1NieDHld5CwOj46fk6SdE0CLv1v8nPUjvW2AslrQz4nAD7VJoNxgTScaApjstXM
	d0xDBBh+T7GNaqvtbHDEPAC9zzmYmfWZEEtwzYMBjeQHHNp2mILPSox4BmAOjgwvdjnTTRsQm1n
	+hEPBLyBERginpDC5t+LaRtUOudR1Spj77aakD7A8hXB8uY01EVZg8ozOnXmlmDULvJ0eo0iKGm
	vfr78r4z4wX4PVApnkfA==
X-Google-Smtp-Source: AGHT+IFnhY6ipdZRyLg/W/m8tWp5tJc4E8cddE4qFes2yss5vL8xaq0O66xCBS7EtGaMtS022eQzkA==
X-Received: by 2002:a17:907:3f8f:b0:afd:d94b:830f with SMTP id a640c23a62f3a-afe07d482d8mr113051366b.64.1755760707085;
        Thu, 21 Aug 2025 00:18:27 -0700 (PDT)
Message-ID: <43f0c9a6-a4f3-44e0-959f-a021ae3b0466@suse.com>
Date: Thu, 21 Aug 2025 09:18:25 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE
To: "Penny, Zheng" <penny.zheng@amd.com>
Cc: "Huang, Ray" <Ray.Huang@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 "Orzel, Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <20250815102728.1340505-1-Penny.Zheng@amd.com>
 <fb6f559a-b2aa-4b25-a6d3-401ecc4b4bd5@suse.com>
 <DM4PR12MB84519FE74D66604440827EA9E133A@DM4PR12MB8451.namprd12.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: <DM4PR12MB84519FE74D66604440827EA9E133A@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20.08.2025 05:12, Penny, Zheng wrote:
> [Public]
> 
>> -----Original Message-----
>> From: Jan Beulich <jbeulich@suse.com>
>> Sent: Monday, August 18, 2025 4:31 PM
>> To: Penny, Zheng <penny.zheng@amd.com>; Oleksii Kurochko
>> <oleksii.kurochko@gmail.com>
>> Cc: Huang, Ray <Ray.Huang@amd.com>; Andrew Cooper
>> <andrew.cooper3@citrix.com>; Roger Pau MonnÃ© <roger.pau@citrix.com>;
>> Anthony PERARD <anthony.perard@vates.tech>; Orzel, Michal
>> <Michal.Orzel@amd.com>; Julien Grall <julien@xen.org>; Stefano Stabellini
>> <sstabellini@kernel.org>; xen-devel@lists.xenproject.org
>> Subject: Re: [PATCH] xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE
>>
>> On 15.08.2025 12:27, Penny Zheng wrote:
>>> In order to fix CI error of a randconfig picking both
>>> PV_SHIM_EXCLUSIVE=y and HVM=y results in hvm.c being built, but
>>> domctl.c not being built, which leaves a few functions, like
>>> domctl_lock_acquire/release() undefined, causing linking to fail.
>>> To fix that, we intend to move domctl.o out of the PV_SHIM_EXCLUSIVE
>>> Makefile /hypercall-defs section, with this adjustment, we also need
>>> to release redundant vnuma_destroy() stub definition from
>>> PV_SHIM_EXCLUSIVE guardian, to not break compilation Above change will
>>> leave dead code in the shim binary temporarily and will be fixed with
>>> the introduction of domctl-op wrapping.
>>
>> Well, "temporarily" is now getting interesting. While v1 of "Introduce
>> CONFIG_DOMCTL" was submitted in time to still be eligible for taking into 4.21,
>> that - as indicated elsewhere - is moving us further in an unwanted direction. Hence
>> I'm not sure this can even be counted as an in-time submission. Plus it looks to be
>> pretty extensive re-work in some areas.
>> Hence I'm somewhat weary as to 4.21 here. IOW question, mainly to Oleksii, is
>> whether to
>> 1) strive to complete that work in time (and hence take the patch here),
>> 2) take the patch here, accepting the size regression for the shim, or
>> 3) revert what has caused the randconfig issues, and retry the effort in
>>    4.22.
>>
>>> Fixes: 568f806cba4c ("xen/x86: remove "depends on
>>> !PV_SHIM_EXCLUSIVE"")
>>> Reported-by: Jan Beulich <jbeulich@suse.com>
>>> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
>>
>> My earlier question (when the patch still was part of a series) sadly has remained
>> unanswered: You've run this through a full round of testing this time?
> 
> Sorry, missed that, yes, it has been tested with both default defconfig and allyesconfig.

I'm sorry if my request was unclear, but with "full round of testing" I in particular
meant a full CI pipeline, plus (given the issue that's being fixed) some extra
randconfig testing.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 07:26:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 07:26:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087872.1445670 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uozgS-0008Bt-Cz; Thu, 21 Aug 2025 07:26:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087872.1445670; Thu, 21 Aug 2025 07:26:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uozgS-0008Bm-A0; Thu, 21 Aug 2025 07:26:04 +0000
Received: by outflank-mailman (input) for mailman id 1087872;
 Thu, 21 Aug 2025 07:26:03 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5Hha=3B=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uozgR-0008Bf-GS
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 07:26:03 +0000
Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com
 [2a00:1450:4864:20::52f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 172b362e-7e60-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 09:26:02 +0200 (CEST)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-6188b6f501cso893314a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 00:26:02 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-61a757a48e2sm4588866a12.40.2025.08.21.00.26.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Aug 2025 00:26:01 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 172b362e-7e60-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755761161; x=1756365961; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=bBq09f9kFg7RGpG/fvb2n8wMx0wExarpxgfmogGcM9g=;
        b=TfdXVMtyCJSkBmuHuNLu9nsSGHT3b1WfD44MyPNAj+nljxBQIcey6QdOtk6cTZjeD9
         zeXrdYU/9D6IPf8QxTtng5UW7Xh564hQazhYB2EuDx7B1NF2CmGYR7GE0exEj6EQXGj6
         e15LfLFlkR9ERQ6sxPpIXKaE4VUkyBrG+xrErzGWBYAAKfh89AScxGur8posfkn3vcOV
         Cm/O3sjjR9RA07MuF+PLbLA5GZj0tzwpMV5C9ENu2vJKjW8wsFmnYk67pttU1BPbvdsW
         kYEh20KbpM10iJfOAmlC1lDN82zK5lWo0bTO5ex1VHJ+8eRfv0WYq43wSx887akLMNxL
         4yfA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755761161; x=1756365961;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bBq09f9kFg7RGpG/fvb2n8wMx0wExarpxgfmogGcM9g=;
        b=TbrY1tvjqwMlLAfv8GSV6IYUQEW0jsnbbqw/Xl8/thg8RLwJJcCEmkZyKSQgeojj5Z
         Y5i6S6nQZIG0PUsFRG+ZWUbVC7D7IxhrzG0lzR5Pq7wlLXF2x3TXBTQOU1rq1IPT3ZQD
         dPs78sD+N3RxClM5v+ffjnDJz4i7DSpmM8N5ntvhT5v6FZNPvRzDEarx4D0L5d/NpPpz
         utUwnBOUNQt7tSDoRUsi1IFfWFmm+EsaEeEOwfCtcPYLu53I+5137uVJdrmEDk4HgBvt
         KgL6DZOjif7smXE4ovfDT83ijjunlhADHaU9UQ3WUHcs3AcjC1OUHREVlR9jsLRE22Ml
         q8zA==
X-Forwarded-Encrypted: i=1; AJvYcCUci2kMWzNkTBr63xHIy5abZMqJEadlH6rFo1JgiC8HWnGggyPqXP2QLFie77ZQItrAlT3Og4xqdXo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzNlbWs9Qgj8gLrIyAPTgLVjp5DHXQXkLkjB2iNDIu5XIBQr8aM
	c5mwmwZRs/uB6A5EQkuSU6ozLJ9TwsjCx964Wsj8/GQ8M/yb6vxiT6NTjycJTyiqDQ==
X-Gm-Gg: ASbGncvidwxe8akBiF+s8VvYNsHreXmQRepfOa4tX2vdxam+0/w/cnFgVRl5DC2AWPl
	f8GRAFBsXVODuO7qRhzM1hjmnSe4RWpSZQg5RrEchdMvOYkf09pT1Mo5eF867ApCnT3IxDXXQj0
	qtGKWUz0QfdnEfNYnEAr/oOg85/xx6F2S/P9gcfGW/mI5PtqN/c9zXvQKIpD1fORZ8v99SUKSl6
	gCTWKSue2/CVSiI+UpeUCDsLS/dYv1lJY7/vgSPN9BjvxpWgs6iDjusukPOY7FYmsGDyLabAI0o
	BNY2siG3gJxisTpvCo81UOeOTtVD6Gd+OhIU/Z4l+HI/2l1C7hPOuibPkhgH8s0lbZIYlJ91Q8B
	9yjWxYOMS8uSPH3ytBHgzxDjc+Lzn8cAM7C8D5BETZAW7/0+1oFXnPv9p5ooo5zOctVQrd9xu7o
	7vgvZxp1w=
X-Google-Smtp-Source: AGHT+IEgObsfh055ty++CgfK9N/0T11igltGYlh/R8yWlWZftv/gHjCmD6BO6sVJ320AdApHyLZczg==
X-Received: by 2002:a05:6402:5244:b0:618:1e1:c204 with SMTP id 4fb4d7f45d1cf-61bf86e9477mr1265723a12.12.1755761161490;
        Thu, 21 Aug 2025 00:26:01 -0700 (PDT)
Message-ID: <eac220b7-d5e9-4710-a0fd-e69a0162df7d@suse.com>
Date: Thu, 21 Aug 2025 09:26:00 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] releases: use newer compression methods for tarballs
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Julien Grall <julien@xen.org>, Stefano Stabellini
 <sstabellini@kernel.org>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <fdd60576-c852-4ce9-921d-9e77a86a3e66@suse.com>
 <f2105411-ac78-4283-a7d7-45f5b1bc0bfe@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: <f2105411-ac78-4283-a7d7-45f5b1bc0bfe@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20.08.2025 14:15, Andrew Cooper wrote:
> On 15/07/2025 7:33 am, Jan Beulich wrote:
>> It's unclear to me why we have git create a tarball, extract that, just
>> to then make a tarball again (without any special options, like to
>> override owner or timestamps;
> 
> That's because in c5be91eb8140 you deleted the intermediate step of
> merging qemus

Hmm, perhaps - I'm generally trying to keep the size of such changes down,
when working in an area I'm not overly familiar with.

>> in this context I notice that tarballs
>> created by Andrew have file ownership of andrew/andrew, while ones made
>> by Julien use root/root).
> 
> Ownership where exactly?Â  the tarball itself (which will be down to
> accounts on downloads.xenproject.org) or the tarball contents itself?

tarball contents.

>> lzip, unlike the other two tools, doesn't really show a progress
>> indicator with -v. Merely having final statistics may make the use of
>> the option here questionable.
> 
> I can't say I find any of the stats relevant.

Happy to drop the v options.

>> --- a/tools/misc/mktarball
>> +++ b/tools/misc/mktarball
>> @@ -31,4 +31,14 @@ git_archive_into $xen_root $tdir/xen-$de
>>  
>>  GZIP=-9v tar cz -f $xen_root/dist/xen-$desc.tar.gz -C $tdir xen-$desc
>>  
>> -echo "Source tarball in $xen_root/dist/xen-$desc.tar.gz"
>> +if [ -n "$(command -v xz)" ]
>> +then
>> +  tar c -C $tdir xen-$desc | $(command -v xz) -v -9 >$xen_root/dist/xen-$desc.tar.xz
>> +fi
>> +
>> +if [ -n "$(command -v lzip)" ]
>> +then
>> +  tar c -C $tdir xen-$desc | $(command -v lzip) -v -9 >$xen_root/dist/xen-$desc.tar.lz
>> +fi
>> +
>> +echo "Source tarball in $xen_root/dist/xen-$desc".tar.[glx]z
> 
> If we're deciding to use multiple compressions, they want to not be
> optional here.Â  I'd far rather have a reminder to install the package,
> than for it to simply be omitted.
> 
> We don't want to be re-tar-ing now that the qemu's are gone, so I think
> the structure wants to end up as:
> 
> git archive --format=tar HEAD > tmp.tar
> gzip -9 < tmp.tar > $xen_root/dist/xen-$desc.tar.gz &
> zx -9 < tmp.tar > $xen_root/dist/xen-$desc.tar.xz &
> lzip -9 < tmp.tar > $xen_root/dist/xen-$desc.tar.lz &
> wait
> 
> Might as well use the multiple cores better...

I, too, was thinking of that. Yet as per above, when fiddling with code I'm
not overly familiar with, I try to limit the amount of change done. As you
ask for a bigger change, I can certainly do so.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 07:30:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 07:30:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087881.1445681 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uozkc-0001Gz-Tb; Thu, 21 Aug 2025 07:30:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087881.1445681; Thu, 21 Aug 2025 07:30: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 1uozkc-0001Gs-Qo; Thu, 21 Aug 2025 07:30:22 +0000
Received: by outflank-mailman (input) for mailman id 1087881;
 Thu, 21 Aug 2025 07:30:21 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=5gj1=3B=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1uozkb-0001Gm-8K
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 07:30:21 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b1181962-7e60-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 09:30:20 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-afcb7a8dd3dso104114166b.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 00:30:20 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afdf593d0fesm251093866b.59.2025.08.21.00.30.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Aug 2025 00:30: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>
X-Inumbo-ID: b1181962-7e60-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1755761420; x=1756366220; darn=lists.xenproject.org;
        h=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=MZYQT49HHS59lIm8CUrhBbA8Fmjd1uIe9ccAcD8aR2Q=;
        b=l9c3qMgwBkTFYjnXhOm5JT2uccsCKVl35R/sCcikUp7rVIeyaRuCy6QSGXW0nzzPFe
         tk/5Ki2fLzTAH/JrmTrGLF/qtIZ6hVL2/4RsotPTQvkcc4iMzk/nfEhUeeU6T9oohLR5
         I+pOR1u9oAL3f5hjRQ2d7TeGoagIFBHir6+IhJhrYzIxLpCV9Gl/XYLOo9+LIrurUITt
         xV/9SixbuP35vGrKWoRX79feccflLACy37CawJREY6/mKsvV1lGMLzbLNBd9xgYPgvOd
         6GCkYBSw4U1cJAue4j9PTc7y2+ouxGpJn3YSMcI9Sgs9CNbdYw3LqGrzk+c7wQH3CPqc
         YmQw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755761420; x=1756366220;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=MZYQT49HHS59lIm8CUrhBbA8Fmjd1uIe9ccAcD8aR2Q=;
        b=UgCQnbEGCuKl9fGUMzZKFpvobr4n/zSF+x3ZJ3G/uFEWK/DqYB0pS1Es0+XyV8R9fs
         f0R7jcw7yU7ZeBMfr1uo24fDiRh55UPmuQU/uGfA1AZDWhZwKdbV7smbrQzehJnnctSi
         NEKmL6siM689RMw4gA99crYvnc4havz3TiL8OkOgcpiT66uhI26dPM2V6ML+OkueKJ/R
         MsewhGxxItZv4JfnKNmGtOLB+PYo1dxT5YXAOZrvbszj5KTqxOrKTTieLbESizHVWryM
         kqkRo1n1gBCHyEPk1l9cxhuGvBiOk23RwzhuHpV+dFTO0SFN9yPDWOIQUOreL4LpnCaX
         6TlA==
X-Forwarded-Encrypted: i=1; AJvYcCWHikbti7MbyrHyG0qLIpjDjUdajz/yhQx3PoL8kV2pBe/WwfI6Vd9/ODI6xbLY7nVWiZtJtBmIBWI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxy/mCeh5YY2wr3H9N0/jCrEFA2/znn1MXbs2xkgjLLSEdqZMHZ
	wKwiyYGWeF8KJzhHW3E0CPISeSqZ9WGAa1u+kX2cX9L+qlXoIgNH82lg4MjNgg==
X-Gm-Gg: ASbGncvkovoKJTuukTwTJkr0P3ADYd07LN0JLDnvV0sAyBokClPzL0LQdqUXuVA+48P
	Q068qTI8FsHTixpZJKda9zDmxUEtaIHDNLSdW6lsK16+RCDuGWasJAONH+cJ86FxSVqG89xxxTq
	ClqctQtcxTdZgGBp7G/zaihzBAa7wrRO8eA3+APUHDBuLJVPbh/MPrtqxPQm/jUVRgOrZsmNZtd
	wp0rievlsjPasTzPuzBFmOdSXZWygiTjATPXpaxZy9rCCpyC6PsMSI1OtBtLTf+WRJRJRsuHC61
	KGwNOCwwsZFnY2EmN03vsaQa0U1EhmS/UNPHyRkulfrTsPJDhdbJ5YhE1Wsgi7p2blEbAN6el+P
	1q9vY8dZ0HSYem+18FmHmK1ZX/IVFzG0dTuB9bFj6Ut30m366EQtGrYEGF5F4/1XiSucBGokC41
	IkuiuRtQ==
X-Google-Smtp-Source: AGHT+IGseQJ4xA0q5cG9LCIAnNiOM87WFeVFofOp41IT8EakNl7CfBxC7GHbEGBgDMKyxiIznkHxXw==
X-Received: by 2002:a17:907:7245:b0:ae0:ce59:5952 with SMTP id a640c23a62f3a-afe07e8ad85mr141140366b.60.1755761419423;
        Thu, 21 Aug 2025 00:30:19 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------uR5ghdodlNzVWntO1WGvf6e0"
Message-ID: <5f560505-78df-4f2c-8f6b-387099e54230@gmail.com>
Date: Thu, 21 Aug 2025 09:30:18 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 9/9] CHANGELOG.md: add xenstorepvh-stubdom live update
To: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Cc: Community Manager <community.manager@xenproject.org>
References: <20250730122305.4050-1-jgross@suse.com>
 <20250730122305.4050-10-jgross@suse.com>
 <09819192-cdeb-441f-9bdf-d334e076c833@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <09819192-cdeb-441f-9bdf-d334e076c833@suse.com>

This is a multi-part message in MIME format.
--------------uR5ghdodlNzVWntO1WGvf6e0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 8/20/25 8:06 AM, Juergen Gross wrote:
> Ping?
>
> On 30.07.25 14:23, Juergen Gross wrote:
>> Signed-off-by: Juergen Gross <jgross@suse.com>
>> ---
>> V2:
>> - new patch
>> ---
>> Â  CHANGELOG.md | 1 +
>> Â  1 file changed, 1 insertion(+)
>>
>> diff --git a/CHANGELOG.md b/CHANGELOG.md
>> index 5f31ca08fe..d118bb1c8c 100644
>> --- a/CHANGELOG.md
>> +++ b/CHANGELOG.md
>> @@ -26,6 +26,7 @@ The format is based on [Keep a 
>> Changelog](https://keepachangelog.com/en/1.0.0/)
>> Â Â Â Â  - Support PCI passthrough for HVM domUs when dom0 is PVH (note 
>> SR-IOV
>> Â Â Â Â Â Â  capability usage is not yet supported on PVH dom0).
>> Â Â Â Â  - Smoke tests for the FreeBSD Xen builds in Cirrus CI.
>> +Â Â  - PVH xenstore-stubdom now supports Live Update.

LGTM: Acked-by: Oleksii Kurochko<oleksii.kurochko@gmail.com>

Thanks.

~ Oleksii

>> Â  Â Â  - On Arm:
>> Â Â Â Â Â  - Ability to enable stack protector
>
--------------uR5ghdodlNzVWntO1WGvf6e0
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/20/25 8:06 AM, Juergen Gross
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:09819192-cdeb-441f-9bdf-d334e076c833@suse.com">Ping?
      <br>
      <br>
      On 30.07.25 14:23, Juergen Gross wrote:
      <br>
      <blockquote type="cite">Signed-off-by: Juergen Gross
        <a class="moz-txt-link-rfc2396E" href="mailto:jgross@suse.com">&lt;jgross@suse.com&gt;</a>
        <br>
        ---
        <br>
        V2:
        <br>
        - new patch
        <br>
        ---
        <br>
        Â  CHANGELOG.md | 1 +
        <br>
        Â  1 file changed, 1 insertion(+)
        <br>
        <br>
        diff --git a/CHANGELOG.md b/CHANGELOG.md
        <br>
        index 5f31ca08fe..d118bb1c8c 100644
        <br>
        --- a/CHANGELOG.md
        <br>
        +++ b/CHANGELOG.md
        <br>
        @@ -26,6 +26,7 @@ The format is based on [Keep a
        Changelog](<a class="moz-txt-link-freetext" href="https://keepachangelog.com/en/1.0.0/">https://keepachangelog.com/en/1.0.0/</a>)
        <br>
        Â Â Â Â  - Support PCI passthrough for HVM domUs when dom0 is PVH
        (note SR-IOV
        <br>
        Â Â Â Â Â Â  capability usage is not yet supported on PVH dom0).
        <br>
        Â Â Â Â  - Smoke tests for the FreeBSD Xen builds in Cirrus CI.
        <br>
        +Â Â  - PVH xenstore-stubdom now supports Live Update.
        <br>
      </blockquote>
    </blockquote>
    <pre>LGTM: Acked-by: Oleksii Kurochko <a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>

Thanks.

~ Oleksii
</pre>
    <blockquote type="cite"
      cite="mid:09819192-cdeb-441f-9bdf-d334e076c833@suse.com">
      <blockquote type="cite">Â  Â Â  - On Arm:
        <br>
        Â Â Â Â Â  - Ability to enable stack protector
        <br>
      </blockquote>
      <br>
    </blockquote>
  </body>
</html>

--------------uR5ghdodlNzVWntO1WGvf6e0--


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 07:42:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 07:42:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087891.1445690 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uozw5-0003Pb-TS; Thu, 21 Aug 2025 07:42:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087891.1445690; Thu, 21 Aug 2025 07:42: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 1uozw5-0003PU-QJ; Thu, 21 Aug 2025 07:42:13 +0000
Received: by outflank-mailman (input) for mailman id 1087891;
 Thu, 21 Aug 2025 07:42:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5Hha=3B=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uozw4-0003PO-ES
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 07:42:12 +0000
Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com
 [2a00:1450:4864:20::52c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 57bb8e76-7e62-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 09:42:09 +0200 (CEST)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-618aea78f23so1078308a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 00:42: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
 4fb4d7f45d1cf-61a7560a0f8sm4726847a12.24.2025.08.21.00.42.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Aug 2025 00:42: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>
X-Inumbo-ID: 57bb8e76-7e62-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755762129; x=1756366929; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=BCNbnjLP9T8ruRaSS77dcvfOpkR4qihrkU9R2gfcIas=;
        b=Xc3pihcYCKP9/VaogUQGT6Rm7/1OPSBOrIX5bfbnvIzVJ9V4HBroKadGwtCNnUjwtB
         jhrITfB2M4pXRlSqcKbSnw705DxgfEZO2e2UIjMw2WTDb87+AO12hlXyFGk8BnxMYwmS
         onuk1ZmBIRBliQK7zuc1mK+ATVMHYtbj/m5Pi15b4qmeSmUZRLBBwvlovRPhjOWYXbsx
         3O7mCTFa9RF/udcpaeZKQyipg46U9ipHYFskPOYZyy4ntLAEg0uHu+pzkdUUR7eNQ8w8
         UgTZeEEv7wfkmh1QBemURAMJOs5LXgJXDJG0tuC8B1Xh687CZcxxaQ1qgJAkTQ56bdMO
         Dyzw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755762129; x=1756366929;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BCNbnjLP9T8ruRaSS77dcvfOpkR4qihrkU9R2gfcIas=;
        b=p7gMdu4zMUkYMfp/ANy29/4tM8kfDSwsLjgmxvAx6Lg5O8L+JeTgOmmyMJmR/yI9Zs
         64miCmEkOTVVgOF5lPdv6L0Rb0RFQNzU6tWdkDelmRwgdEz68oFv3TTlldz8IXitFeoB
         2UdRq9vOy537AF03kqBDaRyVkeD4WUTmTqafBoSEbdGgJbz/zoWG6V5rYoTq2QvrI4lq
         PYcM3E3WXQc13v8uvF6YwsU8AlWdwuJVv8U73FMc33BzhEzUHNCc8p77hbZ1h66TCk5B
         lR9MOUt1bGTYyL0Sm+FANZlChu6yGrrfnF2QjxFzcejusOmw5+T33V1Hghj5JNT8lltM
         VTkA==
X-Forwarded-Encrypted: i=1; AJvYcCW3S9yYrXvobx1a4Si2ZOP8vCaFTJZET0I2sZGCXI6CFjMxp1s7VSrfWiLhO0MeNBBFVD6X3kZtSlQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx6/Wy+tcpDpvwzJaV2lwpBfHyPQEtXXVoZZASB5ypL7dhET9mf
	adG2xy+Mq3xe2tiCkh0fQ0ArtdvWtW4zMnppPeMK69Ka3atQu8eGZrQXzzuFW4XeOg==
X-Gm-Gg: ASbGnct+ZSojrHEr2zzk310DwalmKibEebPtSjgADYaw0KpDAZ5pynDr2owGXddqo9A
	vzZV+evkq9LC7KsmDJTbz/oZrjr+RrQtPfS/CNl888Z5yWJWKoePlBSyg9CbHoG5It1NSOGvEnm
	e7qyHUJpHnfWrL5E7yDtrtN9SI6fVw8P/pQlnGuxv9L63IqPKpeu5t9XD8FKdt3I9lP07iPkV96
	3DOemUwX035Ke/J6Cmiik/Us3PApyIOaCr3TXDjJTZDnVQagpbuHcfPjmQo4I0uTsflgvJNshpr
	seWELAiN6iwWt8U/Q9NZ2hF8OdTo9HB65XQkqOCn/kzq0lKMhaURuJcaxhW19X3vxLMH81ynNRF
	8Vv48la2HMALqFKF4+jD7z+1vhglPxFx37i3zMXyCbPgOHgTTK/IKyIjmUGA65GhKvIN9YW8QP7
	DpBrKg3Sk=
X-Google-Smtp-Source: AGHT+IFq8ZhaHA8NJxJTsixuMg05YlJAQA/HRQYqyLhg2tPaPkSwtfsYR+jQjcDeUFE7no55R4LZRw==
X-Received: by 2002:a05:6402:21d0:b0:618:20c1:7e61 with SMTP id 4fb4d7f45d1cf-61bf873472amr1338979a12.27.1755762128906;
        Thu, 21 Aug 2025 00:42:08 -0700 (PDT)
Message-ID: <07b2dae6-c380-4f30-a5d4-1ae67979d872@suse.com>
Date: Thu, 21 Aug 2025 09:42:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Ping: [PATCH v12 0/6] x86: Make MAX_ALTP2M configurable
To: =?UTF-8?Q?Petr_Bene=C5=A1?= <w1benny@gmail.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>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Tamas K Lengyel <tamas@tklengyel.com>,
 Alexandru Isaila <aisaila@bitdefender.com>,
 Petre Pircalabu <ppircalabu@bitdefender.com>, Juergen Gross
 <jgross@suse.com>, Christian Lindig <christian.lindig@citrix.com>,
 David Scott <dave@recoil.org>, Xen-devel <xen-devel@lists.xenproject.org>
References: <cover.1753953832.git.w1benny@gmail.com>
 <CAKBKdXiKpsmmcGR6A3jEfHSPBE4eG=9uyBzZTW21seGUuzzi0A@mail.gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <CAKBKdXiKpsmmcGR6A3jEfHSPBE4eG=9uyBzZTW21seGUuzzi0A@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20.08.2025 12:47, Petr BeneÅ¡ wrote:
> On Thu, Jul 31, 2025 at 11:28â€¯AM Petr BeneÅ¡ <w1benny@gmail.com> wrote:
>>
>> From: Petr BeneÅ¡ <w1benny@gmail.com>
>>
>> This series introduces the ability to configure the maximum number of altp2m
>> tables during domain creation. Previously, the limits were hardcoded to a
>> maximum of 10. This change allows for greater flexibility in environments that
>> require more or fewer altp2m views.
>>
>> This enhancement is particularly relevant for users leveraging Xen's features
>> for virtual machine introspection.

One remark: Besides having added the Ping: prefix in the subject, there's no
new content here. You also sent the email To: the list. It thus remains
unclear what your pinging for, as you have collected some tag(s) already. It
generally helps if you make clear whom you're addressing with what expectation.
(Things may be different if for a patch / series you didn't have any response
at all.)

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 08:01:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 08:01:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087906.1445700 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up0Eo-00079S-JW; Thu, 21 Aug 2025 08:01:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087906.1445700; Thu, 21 Aug 2025 08:01: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 1up0Eo-00079L-Gt; Thu, 21 Aug 2025 08:01:34 +0000
Received: by outflank-mailman (input) for mailman id 1087906;
 Thu, 21 Aug 2025 08:01:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5Hha=3B=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1up0Em-00077Y-LR
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 08:01:32 +0000
Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com
 [2a00:1450:4864:20::52f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0bd0d09a-7e65-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 10:01:30 +0200 (CEST)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-61a1c6a5338so1140670a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 01:01: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
 4fb4d7f45d1cf-61a75794d3asm4829557a12.44.2025.08.21.01.01.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Aug 2025 01:01: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>
X-Inumbo-ID: 0bd0d09a-7e65-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755763290; x=1756368090; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=fCrQ0wnvCaBIw94/YWBi9AxgWOcuL/KkE3qo3S7QI1Q=;
        b=DW+UbqzMEd/fIRookIAewZhDtjt34cpxkO14/b7/4Fzbfz2pKECWgp4tP1BCCJ8+7a
         VQoHMPHM4j0oeHtEraiMJsk0UGgacCDBWalKTKqRq2It3ST62UdSNGDEjc5vt+KbC7MA
         QTi05O+Zcn/VlEhh+hTFhdNUAiX+g7gAY9vyMibks7dWmfQZGWPrN2RS1A2rpz201Od6
         vOM3u8aMr/ZDDYc5OKjqKZqnzQ07ObqNqliG1SPijEEp2aztZq1mV0qCVNFjKUGmiFqK
         8dhbnhdyfZyiuVXzprFcPTolHr20H+yszn71tuFsVHEHpe0k9EOnVkjLrW5BePfDaeTC
         iGwA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755763290; x=1756368090;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fCrQ0wnvCaBIw94/YWBi9AxgWOcuL/KkE3qo3S7QI1Q=;
        b=pcbHFYNM8G6D2t74cLTQPCPlWy7FejcDb6EvOTMJlBc3sEpGG9ut+o2hSzCZeqswQ5
         mxTyZA9Rhb732QqfFNSshEB6e52EgsIZyNeBLR4XiaQJ5LEhYaEusdJ+j7JTBHPolZb7
         UTu/IQ4IBjetfyQLEF7TGPcEr07E0lUVOp7CznCGLu3GY/sP5N+h2+GHuFn2fQGxApiK
         Pwjpib3cXOAR6e32mGfWEzVP7stv5+VaDUOx1SALXDL+h1fvCLb2ypw3GGAXaNNXMI5i
         T+ySgO33RYzpHAgTEBBAp7URCyBeqSZJzwzIzmwlAhLUocMDh4SOYUy3srBkkKf3AKZE
         CcIQ==
X-Forwarded-Encrypted: i=1; AJvYcCWK0xrrHHtT5hwqWbacd3J+d2Es0+kGQ0aWsG2b/fmv59IS/JjVvrNVKe5tYGeZtt0Bp8mrsZCdq3U=@lists.xenproject.org
X-Gm-Message-State: AOJu0YycItozhSypeP/p5dEpZKMGo2oBE9RZwG+wbtDUDp0vnvmL+HXy
	+IbYaAf1n0V9AJdhS92/9wrcic990rKZrZYu7lOOhdIhLAX/ILBJJF9PGKibJi72Kw==
X-Gm-Gg: ASbGncsLUemh4v1C/XkD6Zhe6TDCS8elZayU6wWYr9hSqU4eJt/sk26hAB3ENGTEQHF
	pZ9yIoRhKpdwhafbtThdJUOEIO3KtBxMdwhraQWw97IgWc77NzkVaIOc9xY9EDgzKa202B5dVb1
	XcHaKboYc18qLhiUegzaxHqgVIDwXvRB2xIgqXnGXAou/rISXO9L6VZGnVdDM7OLKyg6JGqrwMU
	vccdTTKu8Z+m7b0IOxfIa4nSS2jx7J0A6UA6NozAb6vGQXdqbuz5hdLQKAf+nrzl5Z65L0R1RLd
	6fNoDFsHD9FIsrBESJuWN5tW9Zd0tOy93shvlpdNZ+InS3jXNmj220BGMmUCmMebn/GMdcGY5Qv
	kX2UNIfrlG7gTShbXMA1Dm4y9xHPTHAm7z4mv8ITLRmzhTr0flK/NAcb1wzUfcotqzcMtadmduJ
	EV0ZI26EHmSsgNLpMxow==
X-Google-Smtp-Source: AGHT+IEcsqyi4MHJnK1vwtFzV/ACQfY4vUjFo+AmagG8Tw8KawzEPDz8VzTuaIelPDMBaPwCnMuUNA==
X-Received: by 2002:a05:6402:50d3:b0:619:d0f3:3005 with SMTP id 4fb4d7f45d1cf-61bf87357d8mr1108380a12.28.1755763289474;
        Thu, 21 Aug 2025 01:01:29 -0700 (PDT)
Message-ID: <90fb95a3-4b32-4785-a77c-373e5b9da6ed@suse.com>
Date: Thu, 21 Aug 2025 10:01:28 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] misra: consider conversion from UL or (void*) to function
 pointer as safe
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <9e5e4ff2c7ba0a90a6ac403e2de9318e18949274.1755628705.git.dmytro_prokopchuk1@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <9e5e4ff2c7ba0a90a6ac403e2de9318e18949274.1755628705.git.dmytro_prokopchuk1@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.08.2025 20:55, Dmytro Prokopchuk1 wrote:
> Rule 11.1 states as following: "Conversions shall not be performed
> between a pointer to a function and any other type."
> 
> The conversion from unsigned long or (void *) to a function pointer
> is safe in Xen because the architectures it supports (e.g., x86 and
> ARM) guarantee compatible representations between these types.

I think we need to be as precise as possible here. The architectures
guarantee nothing, they only offer necessary fundamentals. In the
Windows x86 ABI, for example, you can't convert pointers to/from longs
without losing data. What we build upon is what respective ABIs say,
possibly in combination of implementation specifics left to compilers.

> --- a/docs/misra/deviations.rst
> +++ b/docs/misra/deviations.rst
> @@ -370,6 +370,16 @@ Deviations related to MISRA C:2012 Rules:
>         to store it.
>       - Tagged as `safe` for ECLAIR.
>  
> +   * - R11.1
> +     - The conversion from unsigned long or (void \*) to a function pointer does
> +       not lose any information or violate type safety assumptions if unsigned
> +       long or (void \*) type is guaranteed to be the same bit size as a
> +       function pointer. This ensures that the function pointer can be fully
> +       represented without truncation or corruption. The macro BUILD_BUG_ON is
> +       integrated into xen/common/version.c to confirm conversion compatibility
> +       across all target platforms.
> +     - Tagged as `safe` for ECLAIR.

Why the escaping of * here, when ...

> --- a/docs/misra/rules.rst
> +++ b/docs/misra/rules.rst
> @@ -431,7 +431,13 @@ maintainers if you want to suggest a change.
>       - All conversions to integer types are permitted if the destination
>         type has enough bits to hold the entire value. Conversions to bool
>         and void* are permitted. Conversions from 'void noreturn (*)(...)'
> -       to 'void (*)(...)' are permitted.
> +       to 'void (*)(...)' are permitted. Conversions from unsigned long or
> +       (void \*) to a function pointer are permitted if the source type has
> +       enough bits to restore function pointer without truncation or corruption.
> +       Example::
> +
> +           unsigned long func_addr = (unsigned long)&some_function;
> +           void (*restored_func)(void) = (void (*)(void))func_addr;

... context here suggests they work fine un-escaped, and you even add some un-
escaped instances as well. Perhaps I'm simply unaware of some peculiarity?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 08:22:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 08:22:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087922.1445751 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up0Yx-0002WM-AD; Thu, 21 Aug 2025 08:22:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087922.1445751; Thu, 21 Aug 2025 08:22:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up0Yx-0002WF-6x; Thu, 21 Aug 2025 08:22:23 +0000
Received: by outflank-mailman (input) for mailman id 1087922;
 Thu, 21 Aug 2025 08:22:21 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+F7x=3B=suse.de=tzimmermann@srs-se1.protection.inumbo.net>)
 id 1up0Yv-0001aA-St
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 08:22:21 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f5568de8-7e67-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 10:22:21 +0200 (CEST)
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 4D4611F7FB;
 Thu, 21 Aug 2025 08:22:14 +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 C35AD13867;
 Thu, 21 Aug 2025 08:22:13 +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 GCSGLjXXpmhzEwAAD6G6ig
 (envelope-from <tzimmermann@suse.de>); Thu, 21 Aug 2025 08:22: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>
X-Inumbo-ID: f5568de8-7e67-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764534; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=WyvgiHGFdcanw0/STMlXUJNb0LhNUwAiWqxt0oleFks=;
	b=WmaiKfCQLW3guThatF6dgda2Za5HiKKUN05xkDa9YXeEbh3ayHPQOb5c9On+vEuNYZs2Oo
	16wMW6cx8wtZk1Hv40CDEs3bz8HyW2ay6Vui5qp5GRORU/yzniTKgHNveshlx21agLTsIM
	VzNsMdaPbPidMlpeFxFxpX4IU+Tz2G0=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764534;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=WyvgiHGFdcanw0/STMlXUJNb0LhNUwAiWqxt0oleFks=;
	b=kJUj0aJ4gbbRW81Ud2K0bz5BIKn3jfRNS2B+WeR3HzjDHj/68JjaUbs+w0mQ87nwM+YQL+
	oIAAxplVxebCmwBQ==
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764534; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=WyvgiHGFdcanw0/STMlXUJNb0LhNUwAiWqxt0oleFks=;
	b=WmaiKfCQLW3guThatF6dgda2Za5HiKKUN05xkDa9YXeEbh3ayHPQOb5c9On+vEuNYZs2Oo
	16wMW6cx8wtZk1Hv40CDEs3bz8HyW2ay6Vui5qp5GRORU/yzniTKgHNveshlx21agLTsIM
	VzNsMdaPbPidMlpeFxFxpX4IU+Tz2G0=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764534;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=WyvgiHGFdcanw0/STMlXUJNb0LhNUwAiWqxt0oleFks=;
	b=kJUj0aJ4gbbRW81Ud2K0bz5BIKn3jfRNS2B+WeR3HzjDHj/68JjaUbs+w0mQ87nwM+YQL+
	oIAAxplVxebCmwBQ==
From: Thomas Zimmermann <tzimmermann@suse.de>
To: simona@ffwll.ch,
	airlied@gmail.com,
	mripard@kernel.org,
	maarten.lankhorst@linux.intel.com,
	geert@linux-m68k.org,
	tomi.valkeinen@ideasonboard.com
Cc: dri-devel@lists.freedesktop.org,
	linux-mediatek@lists.infradead.org,
	freedreno@lists.freedesktop.org,
	linux-arm-msm@vger.kernel.org,
	imx@lists.linux.dev,
	linux-samsung-soc@vger.kernel.org,
	nouveau@lists.freedesktop.org,
	virtualization@lists.linux.dev,
	spice-devel@lists.freedesktop.org,
	linux-renesas-soc@vger.kernel.org,
	linux-rockchip@lists.infradead.org,
	linux-tegra@vger.kernel.org,
	intel-xe@lists.freedesktop.org,
	xen-devel@lists.xenproject.org,
	Thomas Zimmermann <tzimmermann@suse.de>
Subject: [PATCH v6 04/25] drm/gem-shmem: Compute dumb-buffer sizes with drm_mode_size_dumb()
Date: Thu, 21 Aug 2025 10:17:11 +0200
Message-ID: <20250821081918.79786-5-tzimmermann@suse.de>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250821081918.79786-1-tzimmermann@suse.de>
References: <20250821081918.79786-1-tzimmermann@suse.de>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: 
X-Spamd-Result: default: False [-1.30 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	SUSPICIOUS_RECIPS(1.50)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MID_CONTAINS_FROM(1.00)[];
	R_MISSING_CHARSET(0.50)[];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	ARC_NA(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:email,suse.de:mid];
	RCPT_COUNT_TWELVE(0.00)[21];
	MIME_TRACE(0.00)[0:+];
	TO_DN_SOME(0.00)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	FROM_HAS_DN(0.00)[];
	FREEMAIL_TO(0.00)[ffwll.ch,gmail.com,kernel.org,linux.intel.com,linux-m68k.org,ideasonboard.com];
	RCVD_COUNT_TWO(0.00)[2];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	R_RATELIMIT(0.00)[to_ip_from(RLqirfcw6gnbcr9a9yhi49fhi6)];
	DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	FREEMAIL_ENVRCPT(0.00)[gmail.com]
X-Spam-Flag: NO
X-Spam-Score: -1.30

Call drm_mode_size_dumb() to compute dumb-buffer scanline pitch and
buffer size. Align the pitch to a multiple of 8.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
---
 drivers/gpu/drm/drm_gem_shmem_helper.c | 16 +++++-----------
 1 file changed, 5 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/drm_gem_shmem_helper.c b/drivers/gpu/drm/drm_gem_shmem_helper.c
index 5d1349c34afd..b90096ad82d8 100644
--- a/drivers/gpu/drm/drm_gem_shmem_helper.c
+++ b/drivers/gpu/drm/drm_gem_shmem_helper.c
@@ -18,6 +18,7 @@
 #include <drm/drm.h>
 #include <drm/drm_device.h>
 #include <drm/drm_drv.h>
+#include <drm/drm_dumb_buffers.h>
 #include <drm/drm_gem_shmem_helper.h>
 #include <drm/drm_prime.h>
 #include <drm/drm_print.h>
@@ -518,18 +519,11 @@ EXPORT_SYMBOL_GPL(drm_gem_shmem_purge_locked);
 int drm_gem_shmem_dumb_create(struct drm_file *file, struct drm_device *dev,
 			      struct drm_mode_create_dumb *args)
 {
-	u32 min_pitch = DIV_ROUND_UP(args->width * args->bpp, 8);
+	int ret;
 
-	if (!args->pitch || !args->size) {
-		args->pitch = min_pitch;
-		args->size = PAGE_ALIGN(args->pitch * args->height);
-	} else {
-		/* ensure sane minimum values */
-		if (args->pitch < min_pitch)
-			args->pitch = min_pitch;
-		if (args->size < args->pitch * args->height)
-			args->size = PAGE_ALIGN(args->pitch * args->height);
-	}
+	ret = drm_mode_size_dumb(dev, args, SZ_8, 0);
+	if (ret)
+		return ret;
 
 	return drm_gem_shmem_create_with_handle(file, dev, args->size, &args->handle);
 }
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 08:22:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 08:22:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087918.1445710 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up0Yq-0001aT-6j; Thu, 21 Aug 2025 08:22:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087918.1445710; Thu, 21 Aug 2025 08:22: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 1up0Yq-0001aM-4B; Thu, 21 Aug 2025 08:22:16 +0000
Received: by outflank-mailman (input) for mailman id 1087918;
 Thu, 21 Aug 2025 08:22:14 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+F7x=3B=suse.de=tzimmermann@srs-se1.protection.inumbo.net>)
 id 1up0Yo-0001aA-Dl
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 08:22:14 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de
 [2a07:de40:b251:101:10:150:64:2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f07f25f8-7e67-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 10:22:13 +0200 (CEST)
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 B4E1B1F38C;
 Thu, 21 Aug 2025 08:22:12 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 2B0FC139A8;
 Thu, 21 Aug 2025 08:22:12 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id qIcXCTTXpmhzEwAAD6G6ig
 (envelope-from <tzimmermann@suse.de>); Thu, 21 Aug 2025 08:22: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>
X-Inumbo-ID: f07f25f8-7e67-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764532; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=DfRQ1YDtmgRVCMBhPF9y1+DPJvJKm8NOBTKOgwEKeOI=;
	b=QwFg6fuVO8kPC3CYpqcQMO2WnQzn0UNsKdu6B8kida4DQTDf5ilhc9P/oEanolVli+EjXH
	K2qdPnPu37aHiZvC1dPRSQf7Po/5l+b5ytj76OleQf/+O71LyMnwNmrKf15mwFsj3pVTRD
	yu9WsOJMP1YR8H+bCw+nsu5K4VjKXXE=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764532;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=DfRQ1YDtmgRVCMBhPF9y1+DPJvJKm8NOBTKOgwEKeOI=;
	b=8duM82QCakQuiQUEkCtZxN78y8O1YDpsjhOPnIkd0B9OWViO1Q0VH9BWFwN3D+zmy/5dln
	lKsnf6WxI16j+1Bw==
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764532; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=DfRQ1YDtmgRVCMBhPF9y1+DPJvJKm8NOBTKOgwEKeOI=;
	b=QwFg6fuVO8kPC3CYpqcQMO2WnQzn0UNsKdu6B8kida4DQTDf5ilhc9P/oEanolVli+EjXH
	K2qdPnPu37aHiZvC1dPRSQf7Po/5l+b5ytj76OleQf/+O71LyMnwNmrKf15mwFsj3pVTRD
	yu9WsOJMP1YR8H+bCw+nsu5K4VjKXXE=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764532;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=DfRQ1YDtmgRVCMBhPF9y1+DPJvJKm8NOBTKOgwEKeOI=;
	b=8duM82QCakQuiQUEkCtZxN78y8O1YDpsjhOPnIkd0B9OWViO1Q0VH9BWFwN3D+zmy/5dln
	lKsnf6WxI16j+1Bw==
From: Thomas Zimmermann <tzimmermann@suse.de>
To: simona@ffwll.ch,
	airlied@gmail.com,
	mripard@kernel.org,
	maarten.lankhorst@linux.intel.com,
	geert@linux-m68k.org,
	tomi.valkeinen@ideasonboard.com
Cc: dri-devel@lists.freedesktop.org,
	linux-mediatek@lists.infradead.org,
	freedreno@lists.freedesktop.org,
	linux-arm-msm@vger.kernel.org,
	imx@lists.linux.dev,
	linux-samsung-soc@vger.kernel.org,
	nouveau@lists.freedesktop.org,
	virtualization@lists.linux.dev,
	spice-devel@lists.freedesktop.org,
	linux-renesas-soc@vger.kernel.org,
	linux-rockchip@lists.infradead.org,
	linux-tegra@vger.kernel.org,
	intel-xe@lists.freedesktop.org,
	xen-devel@lists.xenproject.org,
	Thomas Zimmermann <tzimmermann@suse.de>
Subject: [PATCH v6 01/25] drm/dumb-buffers: Sanitize output on errors
Date: Thu, 21 Aug 2025 10:17:08 +0200
Message-ID: <20250821081918.79786-2-tzimmermann@suse.de>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250821081918.79786-1-tzimmermann@suse.de>
References: <20250821081918.79786-1-tzimmermann@suse.de>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: 
X-Spamd-Result: default: False [-1.30 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	SUSPICIOUS_RECIPS(1.50)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MID_CONTAINS_FROM(1.00)[];
	R_MISSING_CHARSET(0.50)[];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	RCVD_COUNT_TWO(0.00)[2];
	ARC_NA(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FROM_HAS_DN(0.00)[];
	RCPT_COUNT_TWELVE(0.00)[21];
	MIME_TRACE(0.00)[0:+];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	FREEMAIL_TO(0.00)[ffwll.ch,gmail.com,kernel.org,linux.intel.com,linux-m68k.org,ideasonboard.com];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:email,suse.de:mid];
	FROM_EQ_ENVFROM(0.00)[];
	DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	RCVD_TLS_ALL(0.00)[];
	TO_DN_SOME(0.00)[];
	FREEMAIL_ENVRCPT(0.00)[gmail.com]
X-Spam-Flag: NO
X-Spam-Score: -1.30

The ioctls MODE_CREATE_DUMB and MODE_MAP_DUMB return results into a
memory buffer supplied by user space. On errors, it is possible that
intermediate values are being returned. The exact semantics depends
on the DRM driver's implementation of these ioctls. Although this is
most-likely not a security problem in practice, avoid any uncertainty
by clearing the memory to 0 on errors.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
---
 drivers/gpu/drm/drm_dumb_buffers.c | 40 ++++++++++++++++++++++--------
 1 file changed, 29 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/drm_dumb_buffers.c b/drivers/gpu/drm/drm_dumb_buffers.c
index 70032bba1c97..9916aaf5b3f2 100644
--- a/drivers/gpu/drm/drm_dumb_buffers.c
+++ b/drivers/gpu/drm/drm_dumb_buffers.c
@@ -99,7 +99,30 @@ int drm_mode_create_dumb(struct drm_device *dev,
 int drm_mode_create_dumb_ioctl(struct drm_device *dev,
 			       void *data, struct drm_file *file_priv)
 {
-	return drm_mode_create_dumb(dev, data, file_priv);
+	struct drm_mode_create_dumb *args = data;
+	int err;
+
+	err = drm_mode_create_dumb(dev, args, file_priv);
+	if (err) {
+		args->handle = 0;
+		args->pitch = 0;
+		args->size = 0;
+	}
+	return err;
+}
+
+static int drm_mode_mmap_dumb(struct drm_device *dev, struct drm_mode_map_dumb *args,
+			      struct drm_file *file_priv)
+{
+	if (!dev->driver->dumb_create)
+		return -ENOSYS;
+
+	if (dev->driver->dumb_map_offset)
+		return dev->driver->dumb_map_offset(file_priv, dev, args->handle,
+						    &args->offset);
+	else
+		return drm_gem_dumb_map_offset(file_priv, dev, args->handle,
+					       &args->offset);
 }
 
 /**
@@ -120,17 +143,12 @@ int drm_mode_mmap_dumb_ioctl(struct drm_device *dev,
 			     void *data, struct drm_file *file_priv)
 {
 	struct drm_mode_map_dumb *args = data;
+	int err;
 
-	if (!dev->driver->dumb_create)
-		return -ENOSYS;
-
-	if (dev->driver->dumb_map_offset)
-		return dev->driver->dumb_map_offset(file_priv, dev,
-						    args->handle,
-						    &args->offset);
-	else
-		return drm_gem_dumb_map_offset(file_priv, dev, args->handle,
-					       &args->offset);
+	err = drm_mode_mmap_dumb(dev, args, file_priv);
+	if (err)
+		args->offset = 0;
+	return err;
 }
 
 int drm_mode_destroy_dumb(struct drm_device *dev, u32 handle,
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 08:22:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 08:22:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087923.1445757 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up0Yx-0002a3-Ku; Thu, 21 Aug 2025 08:22:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087923.1445757; Thu, 21 Aug 2025 08:22:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up0Yx-0002Z2-G4; Thu, 21 Aug 2025 08:22:23 +0000
Received: by outflank-mailman (input) for mailman id 1087923;
 Thu, 21 Aug 2025 08:22:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+F7x=3B=suse.de=tzimmermann@srs-se1.protection.inumbo.net>)
 id 1up0Yw-0001aB-Rs
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 08:22:22 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de
 [2a07:de40:b251:101:10:150:64:1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f54b1315-7e67-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 10:22:21 +0200 (CEST)
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 CBA8522643;
 Thu, 21 Aug 2025 08:22:14 +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 52FED139A8;
 Thu, 21 Aug 2025 08:22:14 +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 2C8SEzbXpmhzEwAAD6G6ig
 (envelope-from <tzimmermann@suse.de>); Thu, 21 Aug 2025 08:22: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>
X-Inumbo-ID: f54b1315-7e67-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764534; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=F9N1Ea55spH8hFBExE5Mypm1vzz8jL25yLmd30aIPLE=;
	b=URXCbxj2iebHsaLzcebJyP2PPNEtTjZNFUSKmggeMHvyHQq5nKyWuFKm5Qzz6V0mBCmEuh
	3vqbUBi3ScChNzWwdv+hiEsLUqSge9wjLbAJLmW0Cwy8AbIQknEPzMsuhFwoJlAW2VCcPl
	vJhbXygkBJNRS0Fyv/vH8EcJmIG5nGU=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764534;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=F9N1Ea55spH8hFBExE5Mypm1vzz8jL25yLmd30aIPLE=;
	b=YhTtrEEWTDNjoocO6Yj5lPXmM6STfG/qO88dBj8YRnMUQAa0NEH6U90wte7wQn7ADnYgEp
	amJQqkzCv4BhmfBw==
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.de header.s=susede2_rsa header.b=URXCbxj2;
	dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=YhTtrEEW
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764534; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=F9N1Ea55spH8hFBExE5Mypm1vzz8jL25yLmd30aIPLE=;
	b=URXCbxj2iebHsaLzcebJyP2PPNEtTjZNFUSKmggeMHvyHQq5nKyWuFKm5Qzz6V0mBCmEuh
	3vqbUBi3ScChNzWwdv+hiEsLUqSge9wjLbAJLmW0Cwy8AbIQknEPzMsuhFwoJlAW2VCcPl
	vJhbXygkBJNRS0Fyv/vH8EcJmIG5nGU=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764534;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=F9N1Ea55spH8hFBExE5Mypm1vzz8jL25yLmd30aIPLE=;
	b=YhTtrEEWTDNjoocO6Yj5lPXmM6STfG/qO88dBj8YRnMUQAa0NEH6U90wte7wQn7ADnYgEp
	amJQqkzCv4BhmfBw==
From: Thomas Zimmermann <tzimmermann@suse.de>
To: simona@ffwll.ch,
	airlied@gmail.com,
	mripard@kernel.org,
	maarten.lankhorst@linux.intel.com,
	geert@linux-m68k.org,
	tomi.valkeinen@ideasonboard.com
Cc: dri-devel@lists.freedesktop.org,
	linux-mediatek@lists.infradead.org,
	freedreno@lists.freedesktop.org,
	linux-arm-msm@vger.kernel.org,
	imx@lists.linux.dev,
	linux-samsung-soc@vger.kernel.org,
	nouveau@lists.freedesktop.org,
	virtualization@lists.linux.dev,
	spice-devel@lists.freedesktop.org,
	linux-renesas-soc@vger.kernel.org,
	linux-rockchip@lists.infradead.org,
	linux-tegra@vger.kernel.org,
	intel-xe@lists.freedesktop.org,
	xen-devel@lists.xenproject.org,
	Thomas Zimmermann <tzimmermann@suse.de>
Subject: [PATCH v6 05/25] drm/gem-vram: Compute dumb-buffer sizes with drm_mode_size_dumb()
Date: Thu, 21 Aug 2025 10:17:12 +0200
Message-ID: <20250821081918.79786-6-tzimmermann@suse.de>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250821081918.79786-1-tzimmermann@suse.de>
References: <20250821081918.79786-1-tzimmermann@suse.de>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-1.51 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	SUSPICIOUS_RECIPS(1.50)[];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	FREEMAIL_TO(0.00)[ffwll.ch,gmail.com,kernel.org,linux.intel.com,linux-m68k.org,ideasonboard.com];
	DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	ARC_NA(0.00)[];
	RCPT_COUNT_TWELVE(0.00)[21];
	MIME_TRACE(0.00)[0:+];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:mid,suse.de:dkim,suse.de:email];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FROM_HAS_DN(0.00)[];
	R_RATELIMIT(0.00)[to_ip_from(RLqtkr6cif1ebgurukgmwdm7xc)];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	DKIM_TRACE(0.00)[suse.de:+];
	TO_DN_SOME(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	FREEMAIL_ENVRCPT(0.00)[gmail.com]
X-Spam-Flag: NO
X-Spam-Level: 
X-Rspamd-Queue-Id: CBA8522643
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Rspamd-Action: no action
X-Spam-Score: -1.51

Call drm_mode_size_dumb() to compute dumb-buffer scanline pitch and
buffer size. Inline code from drm_gem_vram_fill_create_dumb() without
the existing size computation. Align the pitch to a multiple of 8.

Only hibmc and vboxvideo use gem-vram. Hibmc invokes the call to
drm_gem_vram_fill_create_dumb() directly and is therefore not affected.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
---
 drivers/gpu/drm/drm_gem_vram_helper.c | 24 +++++++++++++++++++++++-
 1 file changed, 23 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/drm_gem_vram_helper.c b/drivers/gpu/drm/drm_gem_vram_helper.c
index b04cde4a60e7..dd4537bf63dc 100644
--- a/drivers/gpu/drm/drm_gem_vram_helper.c
+++ b/drivers/gpu/drm/drm_gem_vram_helper.c
@@ -7,6 +7,7 @@
 #include <drm/drm_debugfs.h>
 #include <drm/drm_device.h>
 #include <drm/drm_drv.h>
+#include <drm/drm_dumb_buffers.h>
 #include <drm/drm_file.h>
 #include <drm/drm_framebuffer.h>
 #include <drm/drm_gem_atomic_helper.h>
@@ -545,10 +546,31 @@ int drm_gem_vram_driver_dumb_create(struct drm_file *file,
 				    struct drm_device *dev,
 				    struct drm_mode_create_dumb *args)
 {
+	struct drm_gem_vram_object *gbo;
+	int ret;
+
 	if (WARN_ONCE(!dev->vram_mm, "VRAM MM not initialized"))
 		return -EINVAL;
 
-	return drm_gem_vram_fill_create_dumb(file, dev, 0, 0, args);
+	ret = drm_mode_size_dumb(dev, args, SZ_8, 0);
+	if (ret)
+		return ret;
+
+	gbo = drm_gem_vram_create(dev, args->size, 0);
+	if (IS_ERR(gbo))
+		return PTR_ERR(gbo);
+
+	ret = drm_gem_handle_create(file, &gbo->bo.base, &args->handle);
+	if (ret)
+		goto err_drm_gem_object_put;
+
+	drm_gem_object_put(&gbo->bo.base);
+
+	return 0;
+
+err_drm_gem_object_put:
+	drm_gem_object_put(&gbo->bo.base);
+	return ret;
 }
 EXPORT_SYMBOL(drm_gem_vram_driver_dumb_create);
 
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 08:22:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 08:22:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087921.1445741 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up0Yv-0002Gc-20; Thu, 21 Aug 2025 08:22:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087921.1445741; Thu, 21 Aug 2025 08:22: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 1up0Yu-0002GS-VN; Thu, 21 Aug 2025 08:22:20 +0000
Received: by outflank-mailman (input) for mailman id 1087921;
 Thu, 21 Aug 2025 08:22:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+F7x=3B=suse.de=tzimmermann@srs-se1.protection.inumbo.net>)
 id 1up0Yt-0001aB-G7
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 08:22:19 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f2ecfea9-7e67-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 10:22:17 +0200 (CEST)
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 BFBCC22640;
 Thu, 21 Aug 2025 08:22:13 +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 437BD139A8;
 Thu, 21 Aug 2025 08:22:13 +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 iKBKDzXXpmhzEwAAD6G6ig
 (envelope-from <tzimmermann@suse.de>); Thu, 21 Aug 2025 08:22: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>
X-Inumbo-ID: f2ecfea9-7e67-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764533; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=4sNe9k0oQJ0ZQgQNEWxG9c9hC2Rshx1X7aHC0D51qPg=;
	b=DEYJMSZ4Ns4VRIaIjQk1litPiCJl7TdquNq4DIz839m9oFE26jquwIHsekcFbb8CQfrSb7
	99Noz6ED0CVXZ65giB4fXvXQnSUE/Zw9ijttmoyPnC2b4ZtJ5xUmTMgCdn8EKunT5YRJ92
	pAplwHdLf8PGB/rTLsrJ0WI509g58WY=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764533;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=4sNe9k0oQJ0ZQgQNEWxG9c9hC2Rshx1X7aHC0D51qPg=;
	b=PIOkhJvOzodhFLUDub46rJi8+F64yjJu6cTCF/ZfnFV0eiIKpFA1Q6DfhKy4LevhFwb0in
	Xj3K0nWqtPyn5aAw==
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.de header.s=susede2_rsa header.b=DEYJMSZ4;
	dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=PIOkhJvO
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764533; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=4sNe9k0oQJ0ZQgQNEWxG9c9hC2Rshx1X7aHC0D51qPg=;
	b=DEYJMSZ4Ns4VRIaIjQk1litPiCJl7TdquNq4DIz839m9oFE26jquwIHsekcFbb8CQfrSb7
	99Noz6ED0CVXZ65giB4fXvXQnSUE/Zw9ijttmoyPnC2b4ZtJ5xUmTMgCdn8EKunT5YRJ92
	pAplwHdLf8PGB/rTLsrJ0WI509g58WY=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764533;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=4sNe9k0oQJ0ZQgQNEWxG9c9hC2Rshx1X7aHC0D51qPg=;
	b=PIOkhJvOzodhFLUDub46rJi8+F64yjJu6cTCF/ZfnFV0eiIKpFA1Q6DfhKy4LevhFwb0in
	Xj3K0nWqtPyn5aAw==
From: Thomas Zimmermann <tzimmermann@suse.de>
To: simona@ffwll.ch,
	airlied@gmail.com,
	mripard@kernel.org,
	maarten.lankhorst@linux.intel.com,
	geert@linux-m68k.org,
	tomi.valkeinen@ideasonboard.com
Cc: dri-devel@lists.freedesktop.org,
	linux-mediatek@lists.infradead.org,
	freedreno@lists.freedesktop.org,
	linux-arm-msm@vger.kernel.org,
	imx@lists.linux.dev,
	linux-samsung-soc@vger.kernel.org,
	nouveau@lists.freedesktop.org,
	virtualization@lists.linux.dev,
	spice-devel@lists.freedesktop.org,
	linux-renesas-soc@vger.kernel.org,
	linux-rockchip@lists.infradead.org,
	linux-tegra@vger.kernel.org,
	intel-xe@lists.freedesktop.org,
	xen-devel@lists.xenproject.org,
	Thomas Zimmermann <tzimmermann@suse.de>
Subject: [PATCH v6 03/25] drm/gem-dma: Compute dumb-buffer sizes with drm_mode_size_dumb()
Date: Thu, 21 Aug 2025 10:17:10 +0200
Message-ID: <20250821081918.79786-4-tzimmermann@suse.de>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250821081918.79786-1-tzimmermann@suse.de>
References: <20250821081918.79786-1-tzimmermann@suse.de>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: 
X-Spam-Flag: NO
X-Rspamd-Queue-Id: BFBCC22640
X-Rspamd-Action: no action
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org
X-Spamd-Result: default: False [-1.51 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	SUSPICIOUS_RECIPS(1.50)[];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:dkim,suse.de:mid,suse.de:email];
	DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	FREEMAIL_TO(0.00)[ffwll.ch,gmail.com,kernel.org,linux.intel.com,linux-m68k.org,ideasonboard.com];
	ARC_NA(0.00)[];
	MIME_TRACE(0.00)[0:+];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	RCPT_COUNT_TWELVE(0.00)[21];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FROM_HAS_DN(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	DWL_DNSWL_BLOCKED(0.00)[suse.de:dkim];
	RCVD_COUNT_TWO(0.00)[2];
	R_RATELIMIT(0.00)[to_ip_from(RLqtkr6cif1ebgurukgmwdm7xc)];
	RCVD_TLS_ALL(0.00)[];
	DKIM_TRACE(0.00)[suse.de:+];
	TO_DN_SOME(0.00)[];
	FREEMAIL_ENVRCPT(0.00)[gmail.com]
X-Spam-Score: -1.51

Call drm_mode_size_dumb() to compute dumb-buffer scanline pitch and
buffer size. Align the pitch to a multiple of 8.

Push the current calculation into the only direct caller imx. Imx's
hardware requires the framebuffer width to be aligned to 8. The
driver's current approach is actually incorrect, as it only guarantees
this implicitly and requires bpp to be a multiple of 8 already. A
later commit will fix this problem by aligning the scanline pitch
such that an aligned width still fits into each scanline's memory.

A number of other drivers are build on top of gem-dma helpers and
implement their own dumb-buffer allocation. These drivers invoke
drm_gem_dma_dumb_create_internal(), which is not affected by this
commit.

v5:
- avoid reset of arguments (Tomi)

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
---
 drivers/gpu/drm/drm_gem_dma_helper.c     | 7 +++++--
 drivers/gpu/drm/imx/ipuv3/imx-drm-core.c | 4 +++-
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/drm_gem_dma_helper.c b/drivers/gpu/drm/drm_gem_dma_helper.c
index 4f0320df858f..ab1a70b1d6f1 100644
--- a/drivers/gpu/drm/drm_gem_dma_helper.c
+++ b/drivers/gpu/drm/drm_gem_dma_helper.c
@@ -20,6 +20,7 @@
 #include <drm/drm.h>
 #include <drm/drm_device.h>
 #include <drm/drm_drv.h>
+#include <drm/drm_dumb_buffers.h>
 #include <drm/drm_gem_dma_helper.h>
 #include <drm/drm_vma_manager.h>
 
@@ -304,9 +305,11 @@ int drm_gem_dma_dumb_create(struct drm_file *file_priv,
 			    struct drm_mode_create_dumb *args)
 {
 	struct drm_gem_dma_object *dma_obj;
+	int ret;
 
-	args->pitch = DIV_ROUND_UP(args->width * args->bpp, 8);
-	args->size = args->pitch * args->height;
+	ret = drm_mode_size_dumb(drm, args, SZ_8, 0);
+	if (ret)
+		return ret;
 
 	dma_obj = drm_gem_dma_create_with_handle(file_priv, drm, args->size,
 						 &args->handle);
diff --git a/drivers/gpu/drm/imx/ipuv3/imx-drm-core.c b/drivers/gpu/drm/imx/ipuv3/imx-drm-core.c
index ec5fd9a01f1e..af4a30311e18 100644
--- a/drivers/gpu/drm/imx/ipuv3/imx-drm-core.c
+++ b/drivers/gpu/drm/imx/ipuv3/imx-drm-core.c
@@ -145,8 +145,10 @@ static int imx_drm_dumb_create(struct drm_file *file_priv,
 	int ret;
 
 	args->width = ALIGN(width, 8);
+	args->pitch = DIV_ROUND_UP(args->width * args->bpp, 8);
+	args->size = args->pitch * args->height;
 
-	ret = drm_gem_dma_dumb_create(file_priv, drm, args);
+	ret = drm_gem_dma_dumb_create_internal(file_priv, drm, args);
 	if (ret)
 		return ret;
 
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 08:22:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 08:22:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087920.1445731 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up0Yt-000223-Mu; Thu, 21 Aug 2025 08:22:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087920.1445731; Thu, 21 Aug 2025 08:22: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 1up0Yt-00021w-JD; Thu, 21 Aug 2025 08:22:19 +0000
Received: by outflank-mailman (input) for mailman id 1087920;
 Thu, 21 Aug 2025 08:22:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+F7x=3B=suse.de=tzimmermann@srs-se1.protection.inumbo.net>)
 id 1up0Ys-0001aB-G2
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 08:22:18 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f281cb5c-7e67-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 10:22:16 +0200 (CEST)
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 3C3741F7C7;
 Thu, 21 Aug 2025 08:22:13 +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 B0DF613867;
 Thu, 21 Aug 2025 08:22:12 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id ON/6KTTXpmhzEwAAD6G6ig
 (envelope-from <tzimmermann@suse.de>); Thu, 21 Aug 2025 08:22: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>
X-Inumbo-ID: f281cb5c-7e67-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764533; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=G08kfrdYZ7iVYO/+0l70MLOBY2+74cyIO0u0uJpUM1E=;
	b=Tg59gwOdYmAgHXpF40/x7cg0CzEVhC9X0tURSHv1eWu1jzgy6UuZN7GS3B3ORgPTqYBkEA
	lIoAxfyNPx6kV6Rzv9h42adXMblcfZ7hCTafvu7rxrYEl4Mn9sY5KGQzCKMLEI0ZEwzJFc
	1t6BH04pRhRSMvXKEW0D9dykZwwS3oQ=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764533;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=G08kfrdYZ7iVYO/+0l70MLOBY2+74cyIO0u0uJpUM1E=;
	b=3F4ihd6Mf4XO5B4nkG+iNmyUc7icsLv0QlLyKVBLvOXEg679NmFYaMLh2L3PWQheNghUCJ
	USaG9c+DxTjIX2Cg==
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.de header.s=susede2_rsa header.b=Tg59gwOd;
	dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=3F4ihd6M
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764533; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=G08kfrdYZ7iVYO/+0l70MLOBY2+74cyIO0u0uJpUM1E=;
	b=Tg59gwOdYmAgHXpF40/x7cg0CzEVhC9X0tURSHv1eWu1jzgy6UuZN7GS3B3ORgPTqYBkEA
	lIoAxfyNPx6kV6Rzv9h42adXMblcfZ7hCTafvu7rxrYEl4Mn9sY5KGQzCKMLEI0ZEwzJFc
	1t6BH04pRhRSMvXKEW0D9dykZwwS3oQ=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764533;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=G08kfrdYZ7iVYO/+0l70MLOBY2+74cyIO0u0uJpUM1E=;
	b=3F4ihd6Mf4XO5B4nkG+iNmyUc7icsLv0QlLyKVBLvOXEg679NmFYaMLh2L3PWQheNghUCJ
	USaG9c+DxTjIX2Cg==
From: Thomas Zimmermann <tzimmermann@suse.de>
To: simona@ffwll.ch,
	airlied@gmail.com,
	mripard@kernel.org,
	maarten.lankhorst@linux.intel.com,
	geert@linux-m68k.org,
	tomi.valkeinen@ideasonboard.com
Cc: dri-devel@lists.freedesktop.org,
	linux-mediatek@lists.infradead.org,
	freedreno@lists.freedesktop.org,
	linux-arm-msm@vger.kernel.org,
	imx@lists.linux.dev,
	linux-samsung-soc@vger.kernel.org,
	nouveau@lists.freedesktop.org,
	virtualization@lists.linux.dev,
	spice-devel@lists.freedesktop.org,
	linux-renesas-soc@vger.kernel.org,
	linux-rockchip@lists.infradead.org,
	linux-tegra@vger.kernel.org,
	intel-xe@lists.freedesktop.org,
	xen-devel@lists.xenproject.org,
	Thomas Zimmermann <tzimmermann@suse.de>
Subject: [PATCH v6 02/25] drm/dumb-buffers: Provide helper to set pitch and size
Date: Thu, 21 Aug 2025 10:17:09 +0200
Message-ID: <20250821081918.79786-3-tzimmermann@suse.de>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250821081918.79786-1-tzimmermann@suse.de>
References: <20250821081918.79786-1-tzimmermann@suse.de>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-1.51 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	SUSPICIOUS_RECIPS(1.50)[];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	FREEMAIL_TO(0.00)[ffwll.ch,gmail.com,kernel.org,linux.intel.com,linux-m68k.org,ideasonboard.com];
	DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	ARC_NA(0.00)[];
	RCPT_COUNT_TWELVE(0.00)[21];
	MIME_TRACE(0.00)[0:+];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:mid,suse.de:dkim,suse.de:email];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FROM_HAS_DN(0.00)[];
	R_RATELIMIT(0.00)[to_ip_from(RLqtkr6cif1ebgurukgmwdm7xc)];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	DKIM_TRACE(0.00)[suse.de:+];
	TO_DN_SOME(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	FREEMAIL_ENVRCPT(0.00)[gmail.com]
X-Spam-Flag: NO
X-Spam-Level: 
X-Rspamd-Queue-Id: 3C3741F7C7
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Rspamd-Action: no action
X-Spam-Score: -1.51

Add drm_modes_size_dumb(), a helper to calculate the dumb-buffer
scanline pitch and allocation size. Implementations of struct
drm_driver.dumb_create can call the new helper for their size
computations.

There is currently quite a bit of code duplication among DRM's
memory managers. Each calculates scanline pitch and buffer size
from the given arguments, but the implementations are inconsistent
in how they treat alignment and format support. Later patches will
unify this code on top of drm_mode_size_dumb() as much as possible.

drm_mode_size_dumb() uses existing 4CC format helpers to interpret
the given color mode. This makes the dumb-buffer interface behave
similar the kernel's video= parameter. Current per-driver implementations
again likely have subtle differences or bugs in how they support color
modes.

The dumb-buffer UAPI is only specified for known color modes. These
values describe linear, single-plane RGB color formats or legacy index
formats. Other values should not be specified. But some user space
still does. So for unknown color modes, there are a number of known
exceptions for which drm_mode_size_dumb() calculates the pitch from
the bpp value, as before. All other values work the same but print
an error.

v6:
- document additional use cases for DUMB_CREATE2 in TODO list (Tomi)
- fix typos in documentation (Tomi)
v5:
- check for overflows with check_mul_overflow() (Tomi)
v4:
- use %u conversion specifier (Geert)
- list DRM_FORMAT_Dn in UAPI docs (Geert)
- avoid dmesg spamming with drm_warn_once() (Sima)
- add more information about bpp special case (Sima)
- clarify parameters for hardware alignment
- add a TODO item for DUMB_CREATE2
v3:
- document the UAPI semantics
- compute scanline pitch from for unknown color modes (Andy, Tomi)

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
---
 Documentation/gpu/todo.rst         |  37 ++++++++
 drivers/gpu/drm/drm_dumb_buffers.c | 130 +++++++++++++++++++++++++++++
 include/drm/drm_dumb_buffers.h     |  14 ++++
 include/uapi/drm/drm_mode.h        |  50 ++++++++++-
 4 files changed, 230 insertions(+), 1 deletion(-)
 create mode 100644 include/drm/drm_dumb_buffers.h

diff --git a/Documentation/gpu/todo.rst b/Documentation/gpu/todo.rst
index 92db80793bba..98ed38241dc6 100644
--- a/Documentation/gpu/todo.rst
+++ b/Documentation/gpu/todo.rst
@@ -648,6 +648,43 @@ Contact: Thomas Zimmermann <tzimmermann@suse.de>, Simona Vetter
 
 Level: Advanced
 
+Implement a new DUMB_CREATE2 ioctl
+----------------------------------
+
+The current DUMB_CREATE ioctl is not well defined. Instead of a pixel and
+framebuffer format, it only accepts a color mode of vague semantics. Assuming
+a linear framebuffer, the color mode gives an idea of the supported pixel
+format. But userspace effectively has to guess the correct values. It really
+only works reliably with framebuffers in XRGB8888. Userspace has begun to
+workaround these limitations by computing arbitrary format's buffer sizes and
+calculating their sizes in terms of XRGB8888 pixels.
+
+One possible solution is a new ioctl DUMB_CREATE2. It should accept a DRM
+format and a format modifier to resolve the color mode's ambiguity. As
+framebuffers can be multi-planar, the new ioctl has to return the buffer size,
+pitch and GEM handle for each individual color plane.
+
+In the first step, the new ioctl can be limited to the current features of
+the existing DUMB_CREATE. Individual drivers can then be extended to support
+multi-planar formats. Rockchip might require this and would be a good candidate.
+
+It might also be helpful to userspace to query information about the size of
+a potential buffer, if allocated. Userspace would supply geometry and format;
+the kernel would return minimal allocation sizes and scanline pitch. There is
+interest to allocate that memory from another device and provide it to the
+DRM driver (say via dma-buf).
+
+Another requested feature is the ability to allocate a buffer by size, without
+format. Accelators use this for their buffer allocation and it could likely be
+generalized.
+
+In addition to the kernel implementation, there must be user-space support
+for the new ioctl. There's code in Mesa that might be able to use the new
+call.
+
+Contact: Thomas Zimmermann <tzimmermann@suse.de>
+
+Level: Advanced
 
 Better Testing
 ==============
diff --git a/drivers/gpu/drm/drm_dumb_buffers.c b/drivers/gpu/drm/drm_dumb_buffers.c
index 9916aaf5b3f2..e9eed9a5b760 100644
--- a/drivers/gpu/drm/drm_dumb_buffers.c
+++ b/drivers/gpu/drm/drm_dumb_buffers.c
@@ -25,6 +25,8 @@
 
 #include <drm/drm_device.h>
 #include <drm/drm_drv.h>
+#include <drm/drm_dumb_buffers.h>
+#include <drm/drm_fourcc.h>
 #include <drm/drm_gem.h>
 #include <drm/drm_mode.h>
 
@@ -57,6 +59,134 @@
  * a hardware-specific ioctl to allocate suitable buffer objects.
  */
 
+static int drm_mode_align_dumb(struct drm_mode_create_dumb *args,
+			       unsigned long hw_pitch_align,
+			       unsigned long hw_size_align)
+{
+	u32 pitch = args->pitch;
+	u32 size;
+
+	if (!pitch)
+		return -EINVAL;
+
+	if (hw_pitch_align)
+		pitch = roundup(pitch, hw_pitch_align);
+
+	if (!hw_size_align)
+		hw_size_align = PAGE_SIZE;
+	else if (!IS_ALIGNED(hw_size_align, PAGE_SIZE))
+		return -EINVAL; /* TODO: handle this if necessary */
+
+	if (check_mul_overflow(args->height, pitch, &size))
+		return -EINVAL;
+	size = ALIGN(size, hw_size_align);
+	if (!size)
+		return -EINVAL;
+
+	args->pitch = pitch;
+	args->size = size;
+
+	return 0;
+}
+
+/**
+ * drm_mode_size_dumb - Calculates the scanline and buffer sizes for dumb buffers
+ * @dev: DRM device
+ * @args: Parameters for the dumb buffer
+ * @hw_pitch_align: Hardware scanline alignment in bytes
+ * @hw_size_align: Hardware buffer-size alignment in bytes
+ *
+ * The helper drm_mode_size_dumb() calculates the size of the buffer
+ * allocation and the scanline size for a dumb buffer. Callers have to
+ * set the buffers width, height and color mode in the argument @arg.
+ * The helper validates the correctness of the input and tests for
+ * possible overflows. If successful, it returns the dumb buffer's
+ * required scanline pitch and size in &args.
+ *
+ * The parameter @hw_pitch_align allows the driver to specifies an
+ * alignment for the scanline pitch, if the hardware requires any. The
+ * calculated pitch will be a multiple of the alignment. The parameter
+ * @hw_size_align allows to specify an alignment for buffer sizes. The
+ * provided alignment should represent requirements of the graphics
+ * hardware. drm_mode_size_dumb() handles GEM-related constraints
+ * automatically across all drivers and hardware. For example, the
+ * returned buffer size is always a multiple of PAGE_SIZE, which is
+ * required by mmap().
+ *
+ * Returns:
+ * Zero on success, or a negative error code otherwise.
+ */
+int drm_mode_size_dumb(struct drm_device *dev,
+		       struct drm_mode_create_dumb *args,
+		       unsigned long hw_pitch_align,
+		       unsigned long hw_size_align)
+{
+	u64 pitch = 0;
+	u32 fourcc;
+
+	/*
+	 * The scanline pitch depends on the buffer width and the color
+	 * format. The latter is specified as a color-mode constant for
+	 * which we first have to find the corresponding color format.
+	 *
+	 * Different color formats can have the same color-mode constant.
+	 * For example XRGB8888 and BGRX8888 both have a color mode of 32.
+	 * It is possible to use different formats for dumb-buffer allocation
+	 * and rendering as long as all involved formats share the same
+	 * color-mode constant.
+	 */
+	fourcc = drm_driver_color_mode_format(dev, args->bpp);
+	if (fourcc != DRM_FORMAT_INVALID) {
+		const struct drm_format_info *info = drm_format_info(fourcc);
+
+		if (!info)
+			return -EINVAL;
+		pitch = drm_format_info_min_pitch(info, 0, args->width);
+	} else if (args->bpp) {
+		/*
+		 * Some userspace throws in arbitrary values for bpp and
+		 * relies on the kernel to figure it out. In this case we
+		 * fall back to the old method of using bpp directly. The
+		 * over-commitment of memory from the rounding is acceptable
+		 * for compatibility with legacy userspace. We have a number
+		 * of deprecated legacy values that are explicitly supported.
+		 */
+		switch (args->bpp) {
+		default:
+			drm_warn_once(dev,
+				      "Unknown color mode %u; guessing buffer size.\n",
+				      args->bpp);
+			fallthrough;
+		/*
+		 * These constants represent various YUV formats supported by
+		 * drm_gem_afbc_get_bpp().
+		 */
+		case 12: // DRM_FORMAT_YUV420_8BIT
+		case 15: // DRM_FORMAT_YUV420_10BIT
+		case 30: // DRM_FORMAT_VUY101010
+			fallthrough;
+		/*
+		 * Used by Mesa and Gstreamer to allocate NV formats and others
+		 * as RGB buffers. Technically, XRGB16161616F formats are RGB,
+		 * but the dumb buffers are not supposed to be used for anything
+		 * beyond 32 bits per pixels.
+		 */
+		case 10: // DRM_FORMAT_NV{15,20,30}, DRM_FORMAT_P010
+		case 64: // DRM_FORMAT_{XRGB,XBGR,ARGB,ABGR}16161616F
+			pitch = args->width * DIV_ROUND_UP(args->bpp, SZ_8);
+			break;
+		}
+	}
+
+	if (!pitch || pitch > U32_MAX)
+		return -EINVAL;
+
+	args->pitch = pitch;
+
+	return drm_mode_align_dumb(args, hw_pitch_align, hw_size_align);
+}
+EXPORT_SYMBOL(drm_mode_size_dumb);
+
 int drm_mode_create_dumb(struct drm_device *dev,
 			 struct drm_mode_create_dumb *args,
 			 struct drm_file *file_priv)
diff --git a/include/drm/drm_dumb_buffers.h b/include/drm/drm_dumb_buffers.h
new file mode 100644
index 000000000000..1f3a8236fb3d
--- /dev/null
+++ b/include/drm/drm_dumb_buffers.h
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: MIT */
+
+#ifndef __DRM_DUMB_BUFFERS_H__
+#define __DRM_DUMB_BUFFERS_H__
+
+struct drm_device;
+struct drm_mode_create_dumb;
+
+int drm_mode_size_dumb(struct drm_device *dev,
+		       struct drm_mode_create_dumb *args,
+		       unsigned long hw_pitch_align,
+		       unsigned long hw_size_align);
+
+#endif
diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h
index a122bea25593..1e0e02a79b5c 100644
--- a/include/uapi/drm/drm_mode.h
+++ b/include/uapi/drm/drm_mode.h
@@ -1066,7 +1066,7 @@ struct drm_mode_crtc_page_flip_target {
  * struct drm_mode_create_dumb - Create a KMS dumb buffer for scanout.
  * @height: buffer height in pixels
  * @width: buffer width in pixels
- * @bpp: bits per pixel
+ * @bpp: color mode
  * @flags: must be zero
  * @handle: buffer object handle
  * @pitch: number of bytes between two consecutive lines
@@ -1074,6 +1074,54 @@ struct drm_mode_crtc_page_flip_target {
  *
  * User-space fills @height, @width, @bpp and @flags. If the IOCTL succeeds,
  * the kernel fills @handle, @pitch and @size.
+ *
+ * The value of @bpp is a color-mode number describing a specific format
+ * or a variant thereof. The value often corresponds to the number of bits
+ * per pixel for most modes, although there are exceptions. Each color mode
+ * maps to a DRM format plus a number of modes with similar pixel layout.
+ * Framebuffer layout is always linear.
+ *
+ * Support for all modes and formats is optional. Even if dumb-buffer
+ * creation with a certain color mode succeeds, it is not guaranteed that
+ * the DRM driver supports any of the related formats. Most drivers support
+ * a color mode of 32 with a format of DRM_FORMAT_XRGB8888 on their primary
+ * plane.
+ *
+ * +------------+------------------------+------------------------+
+ * | Color mode | Framebuffer format     | Compatible formats     |
+ * +============+========================+========================+
+ * |     32     |  * DRM_FORMAT_XRGB8888 |  * DRM_FORMAT_BGRX8888 |
+ * |            |                        |  * DRM_FORMAT_RGBX8888 |
+ * |            |                        |  * DRM_FORMAT_XBGR8888 |
+ * +------------+------------------------+------------------------+
+ * |     24     |  * DRM_FORMAT_RGB888   |  * DRM_FORMAT_BGR888   |
+ * +------------+------------------------+------------------------+
+ * |     16     |  * DRM_FORMAT_RGB565   |  * DRM_FORMAT_BGR565   |
+ * +------------+------------------------+------------------------+
+ * |     15     |  * DRM_FORMAT_XRGB1555 |  * DRM_FORMAT_BGRX1555 |
+ * |            |                        |  * DRM_FORMAT_RGBX1555 |
+ * |            |                        |  * DRM_FORMAT_XBGR1555 |
+ * +------------+------------------------+------------------------+
+ * |      8     |  * DRM_FORMAT_C8       |  * DRM_FORMAT_D8       |
+ * |            |                        |  * DRM_FORMAT_R8       |
+ * +------------+------------------------+------------------------+
+ * |      4     |  * DRM_FORMAT_C4       |  * DRM_FORMAT_D4       |
+ * |            |                        |  * DRM_FORMAT_R4       |
+ * +------------+------------------------+------------------------+
+ * |      2     |  * DRM_FORMAT_C2       |  * DRM_FORMAT_D2       |
+ * |            |                        |  * DRM_FORMAT_R2       |
+ * +------------+------------------------+------------------------+
+ * |      1     |  * DRM_FORMAT_C1       |  * DRM_FORMAT_D1       |
+ * |            |                        |  * DRM_FORMAT_R1       |
+ * +------------+------------------------+------------------------+
+ *
+ * Color modes of 10, 12, 15, 30 and 64 are only supported for use by
+ * legacy user space. Please don't use them in new code. Other modes
+ * are not support.
+ *
+ * Do not attempt to allocate anything but linear framebuffer memory
+ * with single-plane RGB data. Allocation of other framebuffer
+ * layouts requires dedicated ioctls in the respective DRM driver.
  */
 struct drm_mode_create_dumb {
 	__u32 height;
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 08:22:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 08:22:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087919.1445716 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up0Yq-0001de-FV; Thu, 21 Aug 2025 08:22:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087919.1445716; Thu, 21 Aug 2025 08:22: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 1up0Yq-0001dW-Bg; Thu, 21 Aug 2025 08:22:16 +0000
Received: by outflank-mailman (input) for mailman id 1087919;
 Thu, 21 Aug 2025 08:22:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+F7x=3B=suse.de=tzimmermann@srs-se1.protection.inumbo.net>)
 id 1up0Yo-0001aB-PL
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 08:22:14 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f036b1ab-7e67-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 10:22:12 +0200 (CEST)
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 23FC42263E;
 Thu, 21 Aug 2025 08:22:12 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 90E5413867;
 Thu, 21 Aug 2025 08:22:11 +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 QMslIjPXpmhzEwAAD6G6ig
 (envelope-from <tzimmermann@suse.de>); Thu, 21 Aug 2025 08:22: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>
X-Inumbo-ID: f036b1ab-7e67-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764532; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=ZeF/TIfQ5z2dG/JFVs8HCwL/G447604zw5bvxDPQkpQ=;
	b=OFiNUD19W6D6N+wsG7pfg8cXNjXouyBJNxF08R6hQMVoJTSOLJvb340+JhoT/tHPbIeo1b
	buBoQ+gYvVFOCznOEXY/oPesDMuv8sQ3ef41xmyQLnhihXjXcCRmX57muoSn3cxGncxBKY
	IpzOGGvyBV45mzfodPsxGorq9FP6ksU=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764532;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=ZeF/TIfQ5z2dG/JFVs8HCwL/G447604zw5bvxDPQkpQ=;
	b=shuTzpzh5gftkKYzAwqtDJBw5zHjHu0ct+J/BfOsNmegojjDq03PMemmHaTV7I1oLlgd2t
	gJhvayI84Dgh1MDw==
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.de header.s=susede2_rsa header.b=OFiNUD19;
	dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=shuTzpzh
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764532; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=ZeF/TIfQ5z2dG/JFVs8HCwL/G447604zw5bvxDPQkpQ=;
	b=OFiNUD19W6D6N+wsG7pfg8cXNjXouyBJNxF08R6hQMVoJTSOLJvb340+JhoT/tHPbIeo1b
	buBoQ+gYvVFOCznOEXY/oPesDMuv8sQ3ef41xmyQLnhihXjXcCRmX57muoSn3cxGncxBKY
	IpzOGGvyBV45mzfodPsxGorq9FP6ksU=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764532;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=ZeF/TIfQ5z2dG/JFVs8HCwL/G447604zw5bvxDPQkpQ=;
	b=shuTzpzh5gftkKYzAwqtDJBw5zHjHu0ct+J/BfOsNmegojjDq03PMemmHaTV7I1oLlgd2t
	gJhvayI84Dgh1MDw==
From: Thomas Zimmermann <tzimmermann@suse.de>
To: simona@ffwll.ch,
	airlied@gmail.com,
	mripard@kernel.org,
	maarten.lankhorst@linux.intel.com,
	geert@linux-m68k.org,
	tomi.valkeinen@ideasonboard.com
Cc: dri-devel@lists.freedesktop.org,
	linux-mediatek@lists.infradead.org,
	freedreno@lists.freedesktop.org,
	linux-arm-msm@vger.kernel.org,
	imx@lists.linux.dev,
	linux-samsung-soc@vger.kernel.org,
	nouveau@lists.freedesktop.org,
	virtualization@lists.linux.dev,
	spice-devel@lists.freedesktop.org,
	linux-renesas-soc@vger.kernel.org,
	linux-rockchip@lists.infradead.org,
	linux-tegra@vger.kernel.org,
	intel-xe@lists.freedesktop.org,
	xen-devel@lists.xenproject.org,
	Thomas Zimmermann <tzimmermann@suse.de>
Subject: [PATCH v6 00/25] drm/dumb-buffers: Fix and improve buffer-size calculation
Date: Thu, 21 Aug 2025 10:17:07 +0200
Message-ID: <20250821081918.79786-1-tzimmermann@suse.de>
X-Mailer: git-send-email 2.50.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-2.01 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	SUSPICIOUS_RECIPS(1.50)[];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	ARC_NA(0.00)[];
	FREEMAIL_TO(0.00)[ffwll.ch,gmail.com,kernel.org,linux.intel.com,linux-m68k.org,ideasonboard.com];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	RCPT_COUNT_TWELVE(0.00)[21];
	MIME_TRACE(0.00)[0:+];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FREEMAIL_ENVRCPT(0.00)[gmail.com];
	DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	TO_DN_SOME(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:mid,suse.de:dkim];
	RCVD_COUNT_TWO(0.00)[2];
	DKIM_TRACE(0.00)[suse.de:+]
X-Spam-Flag: NO
X-Spam-Level: 
X-Rspamd-Queue-Id: 23FC42263E
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Rspamd-Action: no action
X-Spam-Score: -2.01

Dumb-buffer pitch and size is specified by width, height, bits-per-pixel
plus various hardware-specific alignments. The calculation of these
values is inconsistent and duplicated among drivers. The results for
formats with bpp < 8 are sometimes incorrect.

This series fixes this for most drivers. Default scanline pitch and
buffer size are now calculated with the existing 4CC helpers. There is
a new helper drm_mode_size_dumb() that calculates scanline pitch and
buffer size according to driver requirements.

The series fixes the common GEM implementations for DMA, SHMEM and
VRAM. It further changes most implementations of dumb_create to use
the new helper. A small number of drivers has more complicated
calculations and will be updated by a later patches.

v6:
- extend TODO item (Tomi)
- fix typos in documentation (Tomi)
v5:
- use check_mul_overflow() for overflow test (Tomi)
- imx: fix intermediate code (Tomi)
- rz-du: include dumb-buffers header
v4:
- improve UAPI documentation
- document bpp special cases
- use drm_warn_once()
- add TODO lists
- armada: fix pitch alignment
v3:
- document UAPI semantics
- fall back to bpp-based allocation for unknown color modes
- cleanups
v2:
- rewrite series
- convert many individual drivers besides the shared GEM helpers

Thomas Zimmermann (25):
  drm/dumb-buffers: Sanitize output on errors
  drm/dumb-buffers: Provide helper to set pitch and size
  drm/gem-dma: Compute dumb-buffer sizes with drm_mode_size_dumb()
  drm/gem-shmem: Compute dumb-buffer sizes with drm_mode_size_dumb()
  drm/gem-vram: Compute dumb-buffer sizes with drm_mode_size_dumb()
  drm/armada: Compute dumb-buffer sizes with drm_mode_size_dumb()
  drm/exynos: Compute dumb-buffer sizes with drm_mode_size_dumb()
  drm/gma500: Compute dumb-buffer sizes with drm_mode_size_dumb()
  drm/hibmc: Compute dumb-buffer sizes with drm_mode_size_dumb()
  drm/imx/ipuv3: Compute dumb-buffer sizes with drm_mode_size_dumb()
  drm/loongson: Compute dumb-buffer sizes with drm_mode_size_dumb()
  drm/mediatek: Compute dumb-buffer sizes with drm_mode_size_dumb()
  drm/msm: Compute dumb-buffer sizes with drm_mode_size_dumb()
  drm/nouveau: Compute dumb-buffer sizes with drm_mode_size_dumb()
  drm/omapdrm: Compute dumb-buffer sizes with drm_mode_size_dumb()
  drm/qxl: Compute dumb-buffer sizes with drm_mode_size_dumb()
  drm/renesas/rcar-du: Compute dumb-buffer sizes with
    drm_mode_size_dumb()
  drm/renesas/rz-du: Compute dumb-buffer sizes with drm_mode_size_dumb()
  drm/rockchip: Compute dumb-buffer sizes with drm_mode_size_dumb()
  drm/tegra: Compute dumb-buffer sizes with drm_mode_size_dumb()
  drm/virtio: Compute dumb-buffer sizes with drm_mode_size_dumb()
  drm/vmwgfx: Compute dumb-buffer sizes with drm_mode_size_dumb()
  drm/xe: Compute dumb-buffer sizes with drm_mode_size_dumb()
  drm/xen: Compute dumb-buffer sizes with drm_mode_size_dumb()
  drm/xlnx: Compute dumb-buffer sizes with drm_mode_size_dumb()

 Documentation/gpu/todo.rst                    |  37 ++++
 drivers/gpu/drm/armada/armada_gem.c           |  16 +-
 drivers/gpu/drm/drm_dumb_buffers.c            | 170 ++++++++++++++++--
 drivers/gpu/drm/drm_gem_dma_helper.c          |   7 +-
 drivers/gpu/drm/drm_gem_shmem_helper.c        |  16 +-
 drivers/gpu/drm/drm_gem_vram_helper.c         |  89 +++------
 drivers/gpu/drm/exynos/exynos_drm_gem.c       |   8 +-
 drivers/gpu/drm/gma500/gem.c                  |  21 +--
 .../gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c   |  25 ++-
 drivers/gpu/drm/imx/ipuv3/imx-drm-core.c      |  29 ++-
 drivers/gpu/drm/loongson/lsdc_gem.c           |  29 +--
 drivers/gpu/drm/mediatek/mtk_gem.c            |  13 +-
 drivers/gpu/drm/msm/msm_gem.c                 |  27 ++-
 drivers/gpu/drm/nouveau/nouveau_display.c     |   7 +-
 drivers/gpu/drm/omapdrm/omap_gem.c            |  15 +-
 drivers/gpu/drm/qxl/qxl_dumb.c                |  17 +-
 drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c |   7 +-
 drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c  |   8 +-
 drivers/gpu/drm/rockchip/rockchip_drm_gem.c   |  12 +-
 drivers/gpu/drm/tegra/gem.c                   |   8 +-
 drivers/gpu/drm/virtio/virtgpu_gem.c          |  11 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_surface.c       |  21 +--
 drivers/gpu/drm/xe/xe_bo.c                    |   8 +-
 drivers/gpu/drm/xen/xen_drm_front.c           |   7 +-
 drivers/gpu/drm/xlnx/zynqmp_kms.c             |   7 +-
 include/drm/drm_dumb_buffers.h                |  14 ++
 include/drm/drm_gem_vram_helper.h             |   6 -
 include/uapi/drm/drm_mode.h                   |  50 +++++-
 28 files changed, 457 insertions(+), 228 deletions(-)
 create mode 100644 include/drm/drm_dumb_buffers.h

-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 08:22:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 08:22:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087924.1445771 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up0Z0-00034T-S2; Thu, 21 Aug 2025 08:22:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087924.1445771; Thu, 21 Aug 2025 08:22: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 1up0Z0-00034I-Og; Thu, 21 Aug 2025 08:22:26 +0000
Received: by outflank-mailman (input) for mailman id 1087924;
 Thu, 21 Aug 2025 08:22:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+F7x=3B=suse.de=tzimmermann@srs-se1.protection.inumbo.net>)
 id 1up0Yz-0001aB-QV
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 08:22:25 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f72435a1-7e67-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 10:22:24 +0200 (CEST)
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 5D49A1F801;
 Thu, 21 Aug 2025 08:22:15 +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 D1F1213867;
 Thu, 21 Aug 2025 08:22:14 +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 kNkOMjbXpmhzEwAAD6G6ig
 (envelope-from <tzimmermann@suse.de>); Thu, 21 Aug 2025 08:22: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>
X-Inumbo-ID: f72435a1-7e67-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764535; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=Yo3qGzGc2uX+JFHeeb0Zc3UDfkT9zpIc4X7sDLWDzlA=;
	b=X658XjFPXjrNbXn79KlV+f7eyS7ZXhz+WEmGSCgDgPsAcIm3eUUFlQGWbEZz/N0xVVi0bm
	XXRDFDSkbrYqawQ8WCpUSPcFQ4JZWWdMuD7otQwiDWlfuM1Xe27I7BXLusFmnhoFdsPWJG
	h1NcY0VD57rbsrcmM650S0MVwSoxFLI=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764535;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=Yo3qGzGc2uX+JFHeeb0Zc3UDfkT9zpIc4X7sDLWDzlA=;
	b=DLGgJuKipMhNbRlPiixekidFpXsIf3kYbylHyhB+XIF+ZNqA6H+6jwhL+W/exe0x/8tstP
	FTwZV7Mv3sWMPUCQ==
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.de header.s=susede2_rsa header.b=X658XjFP;
	dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=DLGgJuKi
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764535; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=Yo3qGzGc2uX+JFHeeb0Zc3UDfkT9zpIc4X7sDLWDzlA=;
	b=X658XjFPXjrNbXn79KlV+f7eyS7ZXhz+WEmGSCgDgPsAcIm3eUUFlQGWbEZz/N0xVVi0bm
	XXRDFDSkbrYqawQ8WCpUSPcFQ4JZWWdMuD7otQwiDWlfuM1Xe27I7BXLusFmnhoFdsPWJG
	h1NcY0VD57rbsrcmM650S0MVwSoxFLI=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764535;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=Yo3qGzGc2uX+JFHeeb0Zc3UDfkT9zpIc4X7sDLWDzlA=;
	b=DLGgJuKipMhNbRlPiixekidFpXsIf3kYbylHyhB+XIF+ZNqA6H+6jwhL+W/exe0x/8tstP
	FTwZV7Mv3sWMPUCQ==
From: Thomas Zimmermann <tzimmermann@suse.de>
To: simona@ffwll.ch,
	airlied@gmail.com,
	mripard@kernel.org,
	maarten.lankhorst@linux.intel.com,
	geert@linux-m68k.org,
	tomi.valkeinen@ideasonboard.com
Cc: dri-devel@lists.freedesktop.org,
	linux-mediatek@lists.infradead.org,
	freedreno@lists.freedesktop.org,
	linux-arm-msm@vger.kernel.org,
	imx@lists.linux.dev,
	linux-samsung-soc@vger.kernel.org,
	nouveau@lists.freedesktop.org,
	virtualization@lists.linux.dev,
	spice-devel@lists.freedesktop.org,
	linux-renesas-soc@vger.kernel.org,
	linux-rockchip@lists.infradead.org,
	linux-tegra@vger.kernel.org,
	intel-xe@lists.freedesktop.org,
	xen-devel@lists.xenproject.org,
	Thomas Zimmermann <tzimmermann@suse.de>,
	Russell King <linux@armlinux.org.uk>
Subject: [PATCH v6 06/25] drm/armada: Compute dumb-buffer sizes with drm_mode_size_dumb()
Date: Thu, 21 Aug 2025 10:17:13 +0200
Message-ID: <20250821081918.79786-7-tzimmermann@suse.de>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250821081918.79786-1-tzimmermann@suse.de>
References: <20250821081918.79786-1-tzimmermann@suse.de>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-1.51 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	SUSPICIOUS_RECIPS(1.50)[];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	ARC_NA(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:mid,suse.de:dkim,suse.de:email];
	MIME_TRACE(0.00)[0:+];
	RCVD_TLS_ALL(0.00)[];
	RCPT_COUNT_TWELVE(0.00)[22];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	FREEMAIL_TO(0.00)[ffwll.ch,gmail.com,kernel.org,linux.intel.com,linux-m68k.org,ideasonboard.com];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FREEMAIL_ENVRCPT(0.00)[gmail.com];
	DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	FROM_HAS_DN(0.00)[];
	TO_DN_SOME(0.00)[];
	DKIM_TRACE(0.00)[suse.de:+]
X-Spam-Flag: NO
X-Spam-Level: 
X-Rspamd-Queue-Id: 5D49A1F801
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Rspamd-Action: no action
X-Spam-Score: -1.51

Call drm_mode_size_dumb() to compute dumb-buffer scanline pitch and
buffer size. Align the pitch to a multiple of 128.

v4:
- align pitch to 128 bytes (Russell)

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Cc: Russell King <linux@armlinux.org.uk>
---
 drivers/gpu/drm/armada/armada_gem.c | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/armada/armada_gem.c b/drivers/gpu/drm/armada/armada_gem.c
index 1a1680d71486..a767c4edd5c8 100644
--- a/drivers/gpu/drm/armada/armada_gem.c
+++ b/drivers/gpu/drm/armada/armada_gem.c
@@ -9,6 +9,7 @@
 #include <linux/shmem_fs.h>
 
 #include <drm/armada_drm.h>
+#include <drm/drm_dumb_buffers.h>
 #include <drm/drm_prime.h>
 
 #include "armada_drm.h"
@@ -244,14 +245,13 @@ int armada_gem_dumb_create(struct drm_file *file, struct drm_device *dev,
 	struct drm_mode_create_dumb *args)
 {
 	struct armada_gem_object *dobj;
-	u32 handle;
-	size_t size;
 	int ret;
 
-	args->pitch = armada_pitch(args->width, args->bpp);
-	args->size = size = args->pitch * args->height;
+	ret = drm_mode_size_dumb(dev, args, SZ_128, 0);
+	if (ret)
+		return ret;
 
-	dobj = armada_gem_alloc_private_object(dev, size);
+	dobj = armada_gem_alloc_private_object(dev, args->size);
 	if (dobj == NULL)
 		return -ENOMEM;
 
@@ -259,14 +259,12 @@ int armada_gem_dumb_create(struct drm_file *file, struct drm_device *dev,
 	if (ret)
 		goto err;
 
-	ret = drm_gem_handle_create(file, &dobj->obj, &handle);
+	ret = drm_gem_handle_create(file, &dobj->obj, &args->handle);
 	if (ret)
 		goto err;
 
-	args->handle = handle;
-
 	/* drop reference from allocate - handle holds it now */
-	DRM_DEBUG_DRIVER("obj %p size %zu handle %#x\n", dobj, size, handle);
+	DRM_DEBUG_DRIVER("obj %p size %llu handle %#x\n", dobj, args->size, args->handle);
  err:
 	drm_gem_object_put(&dobj->obj);
 	return ret;
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 08:22:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 08:22:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087925.1445780 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up0Z2-0003ML-94; Thu, 21 Aug 2025 08:22:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087925.1445780; Thu, 21 Aug 2025 08:22: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 1up0Z2-0003M4-58; Thu, 21 Aug 2025 08:22:28 +0000
Received: by outflank-mailman (input) for mailman id 1087925;
 Thu, 21 Aug 2025 08:22:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+F7x=3B=suse.de=tzimmermann@srs-se1.protection.inumbo.net>)
 id 1up0Z1-0001aB-35
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 08:22:27 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f7e4a05b-7e67-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 10:22:25 +0200 (CEST)
Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 9811A22645;
 Thu, 21 Aug 2025 08:22:16 +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 0BD7713867;
 Thu, 21 Aug 2025 08:22:16 +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 kIyvATjXpmhzEwAAD6G6ig
 (envelope-from <tzimmermann@suse.de>); Thu, 21 Aug 2025 08:22:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f7e4a05b-7e67-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764536; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=y0sBWYzzHHIXkCjtkfqfw50BlzV6U7Mnh7Ds7UZEBxk=;
	b=VmZhadMkFLug2OZzb6N2Q63FOaaF5moPgev3OQzUGthdyRFhjEvDa0JQG7OzbNManFWPlw
	zwDHlGTWVfDPzRMvW0afYwDfBPAQOZ/x7+YqTAIsARfyZLEOkC369lEFwNBxBJ7kjqpLMA
	0Fcg5GRZzrBpXjzd60vi6QWY3MP8z5w=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764536;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=y0sBWYzzHHIXkCjtkfqfw50BlzV6U7Mnh7Ds7UZEBxk=;
	b=T0eM0wjCvvR6t/NTjfhfXi8RPhmhOBJ9lMQ2dYNaQYe6NNqbepD4xT/xEbVeYbxxX8lYM6
	H2kAA+0xS9ac79BQ==
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764536; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=y0sBWYzzHHIXkCjtkfqfw50BlzV6U7Mnh7Ds7UZEBxk=;
	b=VmZhadMkFLug2OZzb6N2Q63FOaaF5moPgev3OQzUGthdyRFhjEvDa0JQG7OzbNManFWPlw
	zwDHlGTWVfDPzRMvW0afYwDfBPAQOZ/x7+YqTAIsARfyZLEOkC369lEFwNBxBJ7kjqpLMA
	0Fcg5GRZzrBpXjzd60vi6QWY3MP8z5w=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764536;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=y0sBWYzzHHIXkCjtkfqfw50BlzV6U7Mnh7Ds7UZEBxk=;
	b=T0eM0wjCvvR6t/NTjfhfXi8RPhmhOBJ9lMQ2dYNaQYe6NNqbepD4xT/xEbVeYbxxX8lYM6
	H2kAA+0xS9ac79BQ==
From: Thomas Zimmermann <tzimmermann@suse.de>
To: simona@ffwll.ch,
	airlied@gmail.com,
	mripard@kernel.org,
	maarten.lankhorst@linux.intel.com,
	geert@linux-m68k.org,
	tomi.valkeinen@ideasonboard.com
Cc: dri-devel@lists.freedesktop.org,
	linux-mediatek@lists.infradead.org,
	freedreno@lists.freedesktop.org,
	linux-arm-msm@vger.kernel.org,
	imx@lists.linux.dev,
	linux-samsung-soc@vger.kernel.org,
	nouveau@lists.freedesktop.org,
	virtualization@lists.linux.dev,
	spice-devel@lists.freedesktop.org,
	linux-renesas-soc@vger.kernel.org,
	linux-rockchip@lists.infradead.org,
	linux-tegra@vger.kernel.org,
	intel-xe@lists.freedesktop.org,
	xen-devel@lists.xenproject.org,
	Thomas Zimmermann <tzimmermann@suse.de>,
	Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
Subject: [PATCH v6 08/25] drm/gma500: Compute dumb-buffer sizes with drm_mode_size_dumb()
Date: Thu, 21 Aug 2025 10:17:15 +0200
Message-ID: <20250821081918.79786-9-tzimmermann@suse.de>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250821081918.79786-1-tzimmermann@suse.de>
References: <20250821081918.79786-1-tzimmermann@suse.de>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-1.30 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	SUSPICIOUS_RECIPS(1.50)[];
	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];
	RCVD_TLS_ALL(0.00)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	ARC_NA(0.00)[];
	MIME_TRACE(0.00)[0:+];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	TO_DN_SOME(0.00)[];
	RCPT_COUNT_TWELVE(0.00)[22];
	TAGGED_RCPT(0.00)[];
	FREEMAIL_TO(0.00)[ffwll.ch,gmail.com,kernel.org,linux.intel.com,linux-m68k.org,ideasonboard.com];
	DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	FROM_HAS_DN(0.00)[];
	FREEMAIL_CC(0.00)[lists.freedesktop.org,lists.infradead.org,vger.kernel.org,lists.linux.dev,lists.xenproject.org,suse.de,gmail.com];
	R_RATELIMIT(0.00)[to_ip_from(RLqirfcw6gnbcr9a9yhi49fhi6)];
	FROM_EQ_ENVFROM(0.00)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:mid,suse.de:email];
	RCVD_COUNT_TWO(0.00)[2];
	FREEMAIL_ENVRCPT(0.00)[gmail.com]
X-Spam-Flag: NO
X-Spam-Level: 
X-Spam-Score: -1.30

Call drm_mode_size_dumb() to compute dumb-buffer scanline pitch and
buffer size. Align the pitch to a multiple of 64.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Cc: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
---
 drivers/gpu/drm/gma500/gem.c | 21 ++++++---------------
 1 file changed, 6 insertions(+), 15 deletions(-)

diff --git a/drivers/gpu/drm/gma500/gem.c b/drivers/gpu/drm/gma500/gem.c
index 4b7627a72637..fc337db0a948 100644
--- a/drivers/gpu/drm/gma500/gem.c
+++ b/drivers/gpu/drm/gma500/gem.c
@@ -16,6 +16,7 @@
 #include <asm/set_memory.h>
 
 #include <drm/drm.h>
+#include <drm/drm_dumb_buffers.h>
 #include <drm/drm_vma_manager.h>
 
 #include "gem.h"
@@ -199,35 +200,25 @@ psb_gem_create(struct drm_device *dev, u64 size, const char *name, bool stolen,
 int psb_gem_dumb_create(struct drm_file *file, struct drm_device *dev,
 			struct drm_mode_create_dumb *args)
 {
-	size_t pitch, size;
 	struct psb_gem_object *pobj;
 	struct drm_gem_object *obj;
-	u32 handle;
 	int ret;
 
-	pitch = args->width * DIV_ROUND_UP(args->bpp, 8);
-	pitch = ALIGN(pitch, 64);
-
-	size = pitch * args->height;
-	size = roundup(size, PAGE_SIZE);
-	if (!size)
-		return -EINVAL;
+	ret = drm_mode_size_dumb(dev, args, SZ_64, 0);
+	if (ret)
+		return ret;
 
-	pobj = psb_gem_create(dev, size, "gem", false, PAGE_SIZE);
+	pobj = psb_gem_create(dev, args->size, "gem", false, PAGE_SIZE);
 	if (IS_ERR(pobj))
 		return PTR_ERR(pobj);
 	obj = &pobj->base;
 
-	ret = drm_gem_handle_create(file, obj, &handle);
+	ret = drm_gem_handle_create(file, obj, &args->handle);
 	if (ret)
 		goto err_drm_gem_object_put;
 
 	drm_gem_object_put(obj);
 
-	args->pitch = pitch;
-	args->size = size;
-	args->handle = handle;
-
 	return 0;
 
 err_drm_gem_object_put:
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 08:22:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 08:22:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087927.1445790 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up0Z6-0003kR-Kr; Thu, 21 Aug 2025 08:22:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087927.1445790; Thu, 21 Aug 2025 08:22: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 1up0Z6-0003kE-H4; Thu, 21 Aug 2025 08:22:32 +0000
Received: by outflank-mailman (input) for mailman id 1087927;
 Thu, 21 Aug 2025 08:22:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+F7x=3B=suse.de=tzimmermann@srs-se1.protection.inumbo.net>)
 id 1up0Z4-0001aB-W1
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 08:22:30 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de
 [2a07:de40:b251:101:10:150:64:2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f98180f9-7e67-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 10:22:28 +0200 (CEST)
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 054E01F83B;
 Thu, 21 Aug 2025 08:22:16 +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 63969139A8;
 Thu, 21 Aug 2025 08:22:15 +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 gDwdFzfXpmhzEwAAD6G6ig
 (envelope-from <tzimmermann@suse.de>); Thu, 21 Aug 2025 08:22: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>
X-Inumbo-ID: f98180f9-7e67-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764536; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=5A6UcO1pV9T6XpbBXD33C0ZPyPClB9b12lLWdBgNKEU=;
	b=T2f5qEU8QEbZwNTMB+c5nyDbCQ5/sj5BDm1bmdb70JijOyKpn8ZaoFAQvUlSxJ3Pm5O9Kf
	56LT7uyFSRq/w9DgJmAdlnBarctiI8t8pD3v83Xca1NEUGj29Ahayf7zf/FVSkABwjQS+h
	LA2AifgRXNZzZv8sCEDigcgNmNhD7+E=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764536;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=5A6UcO1pV9T6XpbBXD33C0ZPyPClB9b12lLWdBgNKEU=;
	b=TSRtYX0P16fCpMDdg3fATk0/IgPxERXelnqC0Ser+Sy2CA+CUb+PK5Us+C4TfY4F/NOWwd
	tEgbqUvs0NC0KnBg==
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.de header.s=susede2_rsa header.b=T2f5qEU8;
	dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=TSRtYX0P
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764536; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=5A6UcO1pV9T6XpbBXD33C0ZPyPClB9b12lLWdBgNKEU=;
	b=T2f5qEU8QEbZwNTMB+c5nyDbCQ5/sj5BDm1bmdb70JijOyKpn8ZaoFAQvUlSxJ3Pm5O9Kf
	56LT7uyFSRq/w9DgJmAdlnBarctiI8t8pD3v83Xca1NEUGj29Ahayf7zf/FVSkABwjQS+h
	LA2AifgRXNZzZv8sCEDigcgNmNhD7+E=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764536;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=5A6UcO1pV9T6XpbBXD33C0ZPyPClB9b12lLWdBgNKEU=;
	b=TSRtYX0P16fCpMDdg3fATk0/IgPxERXelnqC0Ser+Sy2CA+CUb+PK5Us+C4TfY4F/NOWwd
	tEgbqUvs0NC0KnBg==
From: Thomas Zimmermann <tzimmermann@suse.de>
To: simona@ffwll.ch,
	airlied@gmail.com,
	mripard@kernel.org,
	maarten.lankhorst@linux.intel.com,
	geert@linux-m68k.org,
	tomi.valkeinen@ideasonboard.com
Cc: dri-devel@lists.freedesktop.org,
	linux-mediatek@lists.infradead.org,
	freedreno@lists.freedesktop.org,
	linux-arm-msm@vger.kernel.org,
	imx@lists.linux.dev,
	linux-samsung-soc@vger.kernel.org,
	nouveau@lists.freedesktop.org,
	virtualization@lists.linux.dev,
	spice-devel@lists.freedesktop.org,
	linux-renesas-soc@vger.kernel.org,
	linux-rockchip@lists.infradead.org,
	linux-tegra@vger.kernel.org,
	intel-xe@lists.freedesktop.org,
	xen-devel@lists.xenproject.org,
	Thomas Zimmermann <tzimmermann@suse.de>,
	Inki Dae <inki.dae@samsung.com>,
	Seung-Woo Kim <sw0312.kim@samsung.com>,
	Kyungmin Park <kyungmin.park@samsung.com>,
	Krzysztof Kozlowski <krzk@kernel.org>,
	Alim Akhtar <alim.akhtar@samsung.com>
Subject: [PATCH v6 07/25] drm/exynos: Compute dumb-buffer sizes with drm_mode_size_dumb()
Date: Thu, 21 Aug 2025 10:17:14 +0200
Message-ID: <20250821081918.79786-8-tzimmermann@suse.de>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250821081918.79786-1-tzimmermann@suse.de>
References: <20250821081918.79786-1-tzimmermann@suse.de>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: 
X-Spam-Flag: NO
X-Rspamd-Queue-Id: 054E01F83B
X-Rspamd-Action: no action
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org
X-Spamd-Result: default: False [-1.51 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	SUSPICIOUS_RECIPS(1.50)[];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:dkim,suse.de:mid,suse.de:email];
	DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	FREEMAIL_TO(0.00)[ffwll.ch,gmail.com,kernel.org,linux.intel.com,linux-m68k.org,ideasonboard.com];
	ARC_NA(0.00)[];
	MIME_TRACE(0.00)[0:+];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	RCPT_COUNT_TWELVE(0.00)[26];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FROM_HAS_DN(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	DWL_DNSWL_BLOCKED(0.00)[suse.de:dkim];
	RCVD_COUNT_TWO(0.00)[2];
	R_RATELIMIT(0.00)[to_ip_from(RLqtkr6cif1ebgurukgmwdm7xc)];
	RCVD_TLS_ALL(0.00)[];
	DKIM_TRACE(0.00)[suse.de:+];
	TO_DN_SOME(0.00)[];
	FREEMAIL_ENVRCPT(0.00)[gmail.com]
X-Spam-Score: -1.51

Call drm_mode_size_dumb() to compute dumb-buffer scanline pitch and
buffer size. No alignment required.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Cc: Inki Dae <inki.dae@samsung.com>
Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Alim Akhtar <alim.akhtar@samsung.com>
Acked-by: Inki Dae <inki.dae@samsung.com>
---
 drivers/gpu/drm/exynos/exynos_drm_gem.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_drm_gem.c b/drivers/gpu/drm/exynos/exynos_drm_gem.c
index e3fbb45f37a2..02714c9ab639 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_gem.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_gem.c
@@ -10,6 +10,7 @@
 #include <linux/shmem_fs.h>
 #include <linux/module.h>
 
+#include <drm/drm_dumb_buffers.h>
 #include <drm/drm_prime.h>
 #include <drm/drm_vma_manager.h>
 #include <drm/exynos_drm.h>
@@ -329,15 +330,16 @@ int exynos_drm_gem_dumb_create(struct drm_file *file_priv,
 	unsigned int flags;
 	int ret;
 
+	ret = drm_mode_size_dumb(dev, args, 0, 0);
+	if (ret)
+		return ret;
+
 	/*
 	 * allocate memory to be used for framebuffer.
 	 * - this callback would be called by user application
 	 *	with DRM_IOCTL_MODE_CREATE_DUMB command.
 	 */
 
-	args->pitch = args->width * ((args->bpp + 7) / 8);
-	args->size = args->pitch * args->height;
-
 	if (is_drm_iommu_supported(dev))
 		flags = EXYNOS_BO_NONCONTIG | EXYNOS_BO_WC;
 	else
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 08:22:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 08:22:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087929.1445795 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up0Z7-0003oq-45; Thu, 21 Aug 2025 08:22:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087929.1445795; Thu, 21 Aug 2025 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 1up0Z6-0003oF-Sv; Thu, 21 Aug 2025 08:22:32 +0000
Received: by outflank-mailman (input) for mailman id 1087929;
 Thu, 21 Aug 2025 08:22:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+F7x=3B=suse.de=tzimmermann@srs-se1.protection.inumbo.net>)
 id 1up0Z6-0001aB-02
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 08:22:32 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fa3669f5-7e67-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 10:22:29 +0200 (CEST)
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 533F922646;
 Thu, 21 Aug 2025 08:22: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 9F477139A8;
 Thu, 21 Aug 2025 08:22:16 +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 4JKyJTjXpmhzEwAAD6G6ig
 (envelope-from <tzimmermann@suse.de>); Thu, 21 Aug 2025 08:22:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fa3669f5-7e67-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764538; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=aoxRmaxxQADnqcycyoHhSL9xkk4EZyjilDc77Iaw2zM=;
	b=g3XHvqvVBEM8AwKbBE2iVr6hPHPzodo5lBLrSozQE4MOsgu/Fea6yDs+gPYBMtx5zQFUVH
	8NZy28ag7qAlBqiImkeT+4NbMTBXr1zbeVPscRj+fEVOEhPKdxAIV8+tJVANJvn4rEoRRl
	zKufUwKQjKFARovGAQSvPOYY44d8+TU=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764538;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=aoxRmaxxQADnqcycyoHhSL9xkk4EZyjilDc77Iaw2zM=;
	b=PYFhYaz4VPL6J/2QkNGr+lm4k9g3//KnApzck233sh/1eXLL3Gq5qsy1G6OHAxaFIw1/Ui
	pJ8LnsmhTOdytkCg==
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.de header.s=susede2_rsa header.b=DG22LcCd;
	dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=BUuel30l
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764537; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=aoxRmaxxQADnqcycyoHhSL9xkk4EZyjilDc77Iaw2zM=;
	b=DG22LcCdUIYF7vs2qclR6DRsAqGM5NFivzD0X43NZcP5tqwKFHjLzp/8E3PxlunuVp2kEF
	bavBFT2sP7DsGKivwnfX6WdNT/3rG886zGHOLTLuryfpBooysPSPBpqmiNcjjxkLFYeaOn
	ylQcCPzzMo8YAOXddP23aeZijdPRbdo=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764537;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=aoxRmaxxQADnqcycyoHhSL9xkk4EZyjilDc77Iaw2zM=;
	b=BUuel30lckd9XJ1QZmWpPepl5cNwTMLQrxT34Koh0W4gkwbvBQ9hA9Mbuw877aCeopyxqc
	TVfw6h67Gi0/zRDQ==
From: Thomas Zimmermann <tzimmermann@suse.de>
To: simona@ffwll.ch,
	airlied@gmail.com,
	mripard@kernel.org,
	maarten.lankhorst@linux.intel.com,
	geert@linux-m68k.org,
	tomi.valkeinen@ideasonboard.com
Cc: dri-devel@lists.freedesktop.org,
	linux-mediatek@lists.infradead.org,
	freedreno@lists.freedesktop.org,
	linux-arm-msm@vger.kernel.org,
	imx@lists.linux.dev,
	linux-samsung-soc@vger.kernel.org,
	nouveau@lists.freedesktop.org,
	virtualization@lists.linux.dev,
	spice-devel@lists.freedesktop.org,
	linux-renesas-soc@vger.kernel.org,
	linux-rockchip@lists.infradead.org,
	linux-tegra@vger.kernel.org,
	intel-xe@lists.freedesktop.org,
	xen-devel@lists.xenproject.org,
	Thomas Zimmermann <tzimmermann@suse.de>,
	Xinliang Liu <xinliang.liu@linaro.org>,
	Tian Tao <tiantao6@hisilicon.com>,
	Xinwei Kong <kong.kongxinwei@hisilicon.com>,
	Sumit Semwal <sumit.semwal@linaro.org>,
	Yongqin Liu <yongqin.liu@linaro.org>,
	John Stultz <jstultz@google.com>
Subject: [PATCH v6 09/25] drm/hibmc: Compute dumb-buffer sizes with drm_mode_size_dumb()
Date: Thu, 21 Aug 2025 10:17:16 +0200
Message-ID: <20250821081918.79786-10-tzimmermann@suse.de>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250821081918.79786-1-tzimmermann@suse.de>
References: <20250821081918.79786-1-tzimmermann@suse.de>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: 
X-Spam-Flag: NO
X-Rspamd-Queue-Id: 533F922646
X-Rspamd-Action: no action
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org
X-Spamd-Result: default: False [-1.51 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	SUSPICIOUS_RECIPS(1.50)[];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[linaro.org:email,suse.de:dkim,suse.de:mid,suse.de:email];
	DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	FREEMAIL_TO(0.00)[ffwll.ch,gmail.com,kernel.org,linux.intel.com,linux-m68k.org,ideasonboard.com];
	ARC_NA(0.00)[];
	MIME_TRACE(0.00)[0:+];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	RCPT_COUNT_TWELVE(0.00)[27];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FROM_HAS_DN(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	DWL_DNSWL_BLOCKED(0.00)[suse.de:dkim];
	RCVD_COUNT_TWO(0.00)[2];
	R_RATELIMIT(0.00)[to_ip_from(RLqtkr6cif1ebgurukgmwdm7xc)];
	RCVD_TLS_ALL(0.00)[];
	DKIM_TRACE(0.00)[suse.de:+];
	TO_DN_SOME(0.00)[];
	FREEMAIL_ENVRCPT(0.00)[gmail.com]
X-Spam-Score: -1.51

Call drm_mode_size_dumb() to compute dumb-buffer scanline pitch and
buffer size. Align the pitch to a multiple of 128.

The hibmc driver's new hibmc_dumb_create() is similar to the one
in GEM VRAM helpers. The driver was the only caller of
drm_gem_vram_fill_create_dumb(). Remove the now unused helper.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Cc: Xinliang Liu <xinliang.liu@linaro.org>
Cc: Tian Tao <tiantao6@hisilicon.com>
Cc: Xinwei Kong <kong.kongxinwei@hisilicon.com>
Cc: Sumit Semwal <sumit.semwal@linaro.org>
Cc: Yongqin Liu <yongqin.liu@linaro.org>
Cc: John Stultz <jstultz@google.com>
---
 drivers/gpu/drm/drm_gem_vram_helper.c         | 65 -------------------
 .../gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c   | 25 ++++++-
 include/drm/drm_gem_vram_helper.h             |  6 --
 3 files changed, 24 insertions(+), 72 deletions(-)

diff --git a/drivers/gpu/drm/drm_gem_vram_helper.c b/drivers/gpu/drm/drm_gem_vram_helper.c
index dd4537bf63dc..d5a6d5134c55 100644
--- a/drivers/gpu/drm/drm_gem_vram_helper.c
+++ b/drivers/gpu/drm/drm_gem_vram_helper.c
@@ -407,71 +407,6 @@ void drm_gem_vram_vunmap(struct drm_gem_vram_object *gbo,
 }
 EXPORT_SYMBOL(drm_gem_vram_vunmap);
 
-/**
- * drm_gem_vram_fill_create_dumb() - Helper for implementing
- *				     &struct drm_driver.dumb_create
- *
- * @file:		the DRM file
- * @dev:		the DRM device
- * @pg_align:		the buffer's alignment in multiples of the page size
- * @pitch_align:	the scanline's alignment in powers of 2
- * @args:		the arguments as provided to
- *			&struct drm_driver.dumb_create
- *
- * This helper function fills &struct drm_mode_create_dumb, which is used
- * by &struct drm_driver.dumb_create. Implementations of this interface
- * should forwards their arguments to this helper, plus the driver-specific
- * parameters.
- *
- * Returns:
- * 0 on success, or
- * a negative error code otherwise.
- */
-int drm_gem_vram_fill_create_dumb(struct drm_file *file,
-				  struct drm_device *dev,
-				  unsigned long pg_align,
-				  unsigned long pitch_align,
-				  struct drm_mode_create_dumb *args)
-{
-	size_t pitch, size;
-	struct drm_gem_vram_object *gbo;
-	int ret;
-	u32 handle;
-
-	pitch = args->width * DIV_ROUND_UP(args->bpp, 8);
-	if (pitch_align) {
-		if (WARN_ON_ONCE(!is_power_of_2(pitch_align)))
-			return -EINVAL;
-		pitch = ALIGN(pitch, pitch_align);
-	}
-	size = pitch * args->height;
-
-	size = roundup(size, PAGE_SIZE);
-	if (!size)
-		return -EINVAL;
-
-	gbo = drm_gem_vram_create(dev, size, pg_align);
-	if (IS_ERR(gbo))
-		return PTR_ERR(gbo);
-
-	ret = drm_gem_handle_create(file, &gbo->bo.base, &handle);
-	if (ret)
-		goto err_drm_gem_object_put;
-
-	drm_gem_object_put(&gbo->bo.base);
-
-	args->pitch = pitch;
-	args->size = size;
-	args->handle = handle;
-
-	return 0;
-
-err_drm_gem_object_put:
-	drm_gem_object_put(&gbo->bo.base);
-	return ret;
-}
-EXPORT_SYMBOL(drm_gem_vram_fill_create_dumb);
-
 /*
  * Helpers for struct ttm_device_funcs
  */
diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
index 289304500ab0..14a018c47c73 100644
--- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
+++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
@@ -18,10 +18,12 @@
 #include <drm/clients/drm_client_setup.h>
 #include <drm/drm_atomic_helper.h>
 #include <drm/drm_drv.h>
+#include <drm/drm_dumb_buffers.h>
 #include <drm/drm_fbdev_ttm.h>
 #include <drm/drm_gem_framebuffer_helper.h>
 #include <drm/drm_gem_vram_helper.h>
 #include <drm/drm_managed.h>
+#include <drm/drm_mode.h>
 #include <drm/drm_module.h>
 #include <drm/drm_vblank.h>
 
@@ -70,7 +72,28 @@ static irqreturn_t hibmc_dp_interrupt(int irq, void *arg)
 static int hibmc_dumb_create(struct drm_file *file, struct drm_device *dev,
 			     struct drm_mode_create_dumb *args)
 {
-	return drm_gem_vram_fill_create_dumb(file, dev, 0, 128, args);
+	struct drm_gem_vram_object *gbo;
+	int ret;
+
+	ret = drm_mode_size_dumb(dev, args, SZ_128, 0);
+	if (ret)
+		return ret;
+
+	gbo = drm_gem_vram_create(dev, args->size, 0);
+	if (IS_ERR(gbo))
+		return PTR_ERR(gbo);
+
+	ret = drm_gem_handle_create(file, &gbo->bo.base, &args->handle);
+	if (ret)
+		goto err_drm_gem_object_put;
+
+	drm_gem_object_put(&gbo->bo.base);
+
+	return 0;
+
+err_drm_gem_object_put:
+	drm_gem_object_put(&gbo->bo.base);
+	return ret;
 }
 
 static const struct drm_driver hibmc_driver = {
diff --git a/include/drm/drm_gem_vram_helper.h b/include/drm/drm_gem_vram_helper.h
index 2dd42bed679d..1190064f5760 100644
--- a/include/drm/drm_gem_vram_helper.h
+++ b/include/drm/drm_gem_vram_helper.h
@@ -98,12 +98,6 @@ int drm_gem_vram_vmap(struct drm_gem_vram_object *gbo, struct iosys_map *map);
 void drm_gem_vram_vunmap(struct drm_gem_vram_object *gbo,
 			 struct iosys_map *map);
 
-int drm_gem_vram_fill_create_dumb(struct drm_file *file,
-				  struct drm_device *dev,
-				  unsigned long pg_align,
-				  unsigned long pitch_align,
-				  struct drm_mode_create_dumb *args);
-
 /*
  * Helpers for struct drm_driver
  */
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 08:22:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 08:22:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087933.1445811 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up0ZA-0004Sy-BP; Thu, 21 Aug 2025 08:22:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087933.1445811; Thu, 21 Aug 2025 08: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 1up0ZA-0004Si-7W; Thu, 21 Aug 2025 08:22:36 +0000
Received: by outflank-mailman (input) for mailman id 1087933;
 Thu, 21 Aug 2025 08:22:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+F7x=3B=suse.de=tzimmermann@srs-se1.protection.inumbo.net>)
 id 1up0Z8-0001aA-LW
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 08:22:34 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fcf09cd4-7e67-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 10:22:34 +0200 (CEST)
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 F24B81F841;
 Thu, 21 Aug 2025 08:22: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 5903413867;
 Thu, 21 Aug 2025 08:22: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 eFGGFDnXpmhzEwAAD6G6ig
 (envelope-from <tzimmermann@suse.de>); Thu, 21 Aug 2025 08:22: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>
X-Inumbo-ID: fcf09cd4-7e67-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764538; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=yVHBvUqEWY7SSOjBzn+0cxFCsYI6yntDEkv6RfYBGKE=;
	b=S8h5TBtSZmwNZ2ZKpFupzT93CI4X8r4hsSwkWNMlsXXrObX6yMTMs5rGGTNBlQLT8dCA65
	/JNN5S2GSVutUw0ZnO4gvyHfJKug0R1TusqEa9Utx4O7MhsWTKK30+2dE21r3G3ix0LuQN
	MIflpjZsadvYh1/FsR2HMyCyaRYKXFQ=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764538;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=yVHBvUqEWY7SSOjBzn+0cxFCsYI6yntDEkv6RfYBGKE=;
	b=V3z3Cs1j642URp70G9srpXLIrWlkml4RNjrLcGpEDb5/9h1N0Vs/7pF8C7mnLLeRivbZJ0
	HcSzj4WxGxdKP2BQ==
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764538; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=yVHBvUqEWY7SSOjBzn+0cxFCsYI6yntDEkv6RfYBGKE=;
	b=S8h5TBtSZmwNZ2ZKpFupzT93CI4X8r4hsSwkWNMlsXXrObX6yMTMs5rGGTNBlQLT8dCA65
	/JNN5S2GSVutUw0ZnO4gvyHfJKug0R1TusqEa9Utx4O7MhsWTKK30+2dE21r3G3ix0LuQN
	MIflpjZsadvYh1/FsR2HMyCyaRYKXFQ=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764538;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=yVHBvUqEWY7SSOjBzn+0cxFCsYI6yntDEkv6RfYBGKE=;
	b=V3z3Cs1j642URp70G9srpXLIrWlkml4RNjrLcGpEDb5/9h1N0Vs/7pF8C7mnLLeRivbZJ0
	HcSzj4WxGxdKP2BQ==
From: Thomas Zimmermann <tzimmermann@suse.de>
To: simona@ffwll.ch,
	airlied@gmail.com,
	mripard@kernel.org,
	maarten.lankhorst@linux.intel.com,
	geert@linux-m68k.org,
	tomi.valkeinen@ideasonboard.com
Cc: dri-devel@lists.freedesktop.org,
	linux-mediatek@lists.infradead.org,
	freedreno@lists.freedesktop.org,
	linux-arm-msm@vger.kernel.org,
	imx@lists.linux.dev,
	linux-samsung-soc@vger.kernel.org,
	nouveau@lists.freedesktop.org,
	virtualization@lists.linux.dev,
	spice-devel@lists.freedesktop.org,
	linux-renesas-soc@vger.kernel.org,
	linux-rockchip@lists.infradead.org,
	linux-tegra@vger.kernel.org,
	intel-xe@lists.freedesktop.org,
	xen-devel@lists.xenproject.org,
	Thomas Zimmermann <tzimmermann@suse.de>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Shawn Guo <shawnguo@kernel.org>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	Pengutronix Kernel Team <kernel@pengutronix.de>,
	Fabio Estevam <festevam@gmail.com>
Subject: [PATCH v6 10/25] drm/imx/ipuv3: Compute dumb-buffer sizes with drm_mode_size_dumb()
Date: Thu, 21 Aug 2025 10:17:17 +0200
Message-ID: <20250821081918.79786-11-tzimmermann@suse.de>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250821081918.79786-1-tzimmermann@suse.de>
References: <20250821081918.79786-1-tzimmermann@suse.de>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-1.30 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	SUSPICIOUS_RECIPS(1.50)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MID_CONTAINS_FROM(1.00)[];
	R_MISSING_CHARSET(0.50)[];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	ARC_NA(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[pengutronix.de:email,suse.de:mid,suse.de:email];
	MIME_TRACE(0.00)[0:+];
	RCPT_COUNT_TWELVE(0.00)[26];
	RCVD_TLS_ALL(0.00)[];
	TO_DN_SOME(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	FREEMAIL_TO(0.00)[ffwll.ch,gmail.com,kernel.org,linux.intel.com,linux-m68k.org,ideasonboard.com];
	RCVD_COUNT_TWO(0.00)[2];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FREEMAIL_CC(0.00)[lists.freedesktop.org,lists.infradead.org,vger.kernel.org,lists.linux.dev,lists.xenproject.org,suse.de,pengutronix.de,kernel.org,gmail.com];
	FROM_HAS_DN(0.00)[];
	R_RATELIMIT(0.00)[to_ip_from(RLqirfcw6gnbcr9a9yhi49fhi6)];
	DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	FREEMAIL_ENVRCPT(0.00)[gmail.com]
X-Spam-Flag: NO
X-Spam-Level: 
X-Spam-Score: -1.30

Call drm_mode_size_dumb() to compute dumb-buffer scanline pitch and
buffer size. The hardware requires the framebuffer width to be a
multiple of 8. The scanline pitch has to be large enough to support
this. Therefore compute the byte size of 8 pixels in the given color
mode and align the pitch accordingly.

v5:
- fix typo in commit description

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
Cc: Philipp Zabel <p.zabel@pengutronix.de>
Cc: Shawn Guo <shawnguo@kernel.org>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
Cc: Fabio Estevam <festevam@gmail.com>
---
 drivers/gpu/drm/imx/ipuv3/imx-drm-core.c | 31 ++++++++++++++++++------
 1 file changed, 23 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/imx/ipuv3/imx-drm-core.c b/drivers/gpu/drm/imx/ipuv3/imx-drm-core.c
index af4a30311e18..465b5a6ad5bb 100644
--- a/drivers/gpu/drm/imx/ipuv3/imx-drm-core.c
+++ b/drivers/gpu/drm/imx/ipuv3/imx-drm-core.c
@@ -17,7 +17,9 @@
 #include <drm/drm_atomic.h>
 #include <drm/drm_atomic_helper.h>
 #include <drm/drm_drv.h>
+#include <drm/drm_dumb_buffers.h>
 #include <drm/drm_fbdev_dma.h>
+#include <drm/drm_fourcc.h>
 #include <drm/drm_gem_dma_helper.h>
 #include <drm/drm_gem_framebuffer_helper.h>
 #include <drm/drm_managed.h>
@@ -141,19 +143,32 @@ static int imx_drm_dumb_create(struct drm_file *file_priv,
 			       struct drm_device *drm,
 			       struct drm_mode_create_dumb *args)
 {
-	u32 width = args->width;
+	u32 fourcc;
+	const struct drm_format_info *info;
+	u64 pitch_align;
 	int ret;
 
-	args->width = ALIGN(width, 8);
-	args->pitch = DIV_ROUND_UP(args->width * args->bpp, 8);
-	args->size = args->pitch * args->height;
-
-	ret = drm_gem_dma_dumb_create_internal(file_priv, drm, args);
+	/*
+	 * Hardware requires the framebuffer width to be aligned to
+	 * multiples of 8. The mode-setting code handles this, but
+	 * the buffer pitch has to be aligned as well. Set the pitch
+	 * alignment accordingly, so that the each scanline fits into
+	 * the allocated buffer.
+	 */
+	fourcc = drm_driver_color_mode_format(drm, args->bpp);
+	if (fourcc == DRM_FORMAT_INVALID)
+		return -EINVAL;
+	info = drm_format_info(fourcc);
+	if (!info)
+		return -EINVAL;
+	pitch_align = drm_format_info_min_pitch(info, 0, SZ_8);
+	if (!pitch_align || pitch_align > U32_MAX)
+		return -EINVAL;
+	ret = drm_mode_size_dumb(drm, args, pitch_align, 0);
 	if (ret)
 		return ret;
 
-	args->width = width;
-	return ret;
+	return drm_gem_dma_dumb_create(file_priv, drm, args);
 }
 
 static const struct drm_driver imx_drm_driver = {
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 08:22:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 08:22:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087934.1445817 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up0ZB-0004Xf-1R; Thu, 21 Aug 2025 08:22:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087934.1445817; Thu, 21 Aug 2025 08: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 1up0ZA-0004Wh-LL; Thu, 21 Aug 2025 08:22:36 +0000
Received: by outflank-mailman (input) for mailman id 1087934;
 Thu, 21 Aug 2025 08:22:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+F7x=3B=suse.de=tzimmermann@srs-se1.protection.inumbo.net>)
 id 1up0Z8-0001aB-SA
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 08:22:34 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fc8c1938-7e67-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 10:22:33 +0200 (CEST)
Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 39B0E2263E;
 Thu, 21 Aug 2025 08:22:19 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 8CCB113867;
 Thu, 21 Aug 2025 08:22:18 +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 wITvIDrXpmhzEwAAD6G6ig
 (envelope-from <tzimmermann@suse.de>); Thu, 21 Aug 2025 08:22: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>
X-Inumbo-ID: fc8c1938-7e67-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764539; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=2yMUgk7S1bP2IhhRsJITuOT2CsTgw9l4seKnO+W12MQ=;
	b=VeL8zc4bq7xMOGn2n/L7Vb6jCS4Z2hDGDrMJxaW22pNURfen/WFcP1g1UUBYrMjDN5xmL9
	OmW2TbLRaPz9Li+eeFNrMlRYEVsTCME+8GeGyhO7ldthvmn62xGpRzkdZ2clvvGb+PvW26
	UUDYcSyh0wHwr82sUPmDlhtjlb+vLuw=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764539;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=2yMUgk7S1bP2IhhRsJITuOT2CsTgw9l4seKnO+W12MQ=;
	b=Gb2aFxqf40NJrbDmKZ/gz+kQCK57SLAAfGhyEnFh3eWm8eQXhDhh3QuGIAncTsz9TymK6j
	rvjT8wmniC/SP6AA==
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764539; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=2yMUgk7S1bP2IhhRsJITuOT2CsTgw9l4seKnO+W12MQ=;
	b=VeL8zc4bq7xMOGn2n/L7Vb6jCS4Z2hDGDrMJxaW22pNURfen/WFcP1g1UUBYrMjDN5xmL9
	OmW2TbLRaPz9Li+eeFNrMlRYEVsTCME+8GeGyhO7ldthvmn62xGpRzkdZ2clvvGb+PvW26
	UUDYcSyh0wHwr82sUPmDlhtjlb+vLuw=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764539;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=2yMUgk7S1bP2IhhRsJITuOT2CsTgw9l4seKnO+W12MQ=;
	b=Gb2aFxqf40NJrbDmKZ/gz+kQCK57SLAAfGhyEnFh3eWm8eQXhDhh3QuGIAncTsz9TymK6j
	rvjT8wmniC/SP6AA==
From: Thomas Zimmermann <tzimmermann@suse.de>
To: simona@ffwll.ch,
	airlied@gmail.com,
	mripard@kernel.org,
	maarten.lankhorst@linux.intel.com,
	geert@linux-m68k.org,
	tomi.valkeinen@ideasonboard.com
Cc: dri-devel@lists.freedesktop.org,
	linux-mediatek@lists.infradead.org,
	freedreno@lists.freedesktop.org,
	linux-arm-msm@vger.kernel.org,
	imx@lists.linux.dev,
	linux-samsung-soc@vger.kernel.org,
	nouveau@lists.freedesktop.org,
	virtualization@lists.linux.dev,
	spice-devel@lists.freedesktop.org,
	linux-renesas-soc@vger.kernel.org,
	linux-rockchip@lists.infradead.org,
	linux-tegra@vger.kernel.org,
	intel-xe@lists.freedesktop.org,
	xen-devel@lists.xenproject.org,
	Thomas Zimmermann <tzimmermann@suse.de>,
	Chun-Kuang Hu <chunkuang.hu@kernel.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Subject: [PATCH v6 12/25] drm/mediatek: Compute dumb-buffer sizes with drm_mode_size_dumb()
Date: Thu, 21 Aug 2025 10:17:19 +0200
Message-ID: <20250821081918.79786-13-tzimmermann@suse.de>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250821081918.79786-1-tzimmermann@suse.de>
References: <20250821081918.79786-1-tzimmermann@suse.de>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-1.30 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	SUSPICIOUS_RECIPS(1.50)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MID_CONTAINS_FROM(1.00)[];
	R_MISSING_CHARSET(0.50)[];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	ARC_NA(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:mid,suse.de:email,pengutronix.de:email];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	MIME_TRACE(0.00)[0:+];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	RCPT_COUNT_TWELVE(0.00)[25];
	FROM_EQ_ENVFROM(0.00)[];
	TAGGED_RCPT(0.00)[];
	FREEMAIL_TO(0.00)[ffwll.ch,gmail.com,kernel.org,linux.intel.com,linux-m68k.org,ideasonboard.com];
	RCVD_COUNT_TWO(0.00)[2];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FREEMAIL_CC(0.00)[lists.freedesktop.org,lists.infradead.org,vger.kernel.org,lists.linux.dev,lists.xenproject.org,suse.de,kernel.org,pengutronix.de,gmail.com,collabora.com];
	FROM_HAS_DN(0.00)[];
	TO_DN_SOME(0.00)[];
	DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	FREEMAIL_ENVRCPT(0.00)[gmail.com]
X-Spam-Flag: NO
X-Spam-Level: 
X-Spam-Score: -1.30

Call drm_mode_size_dumb() to compute dumb-buffer scanline pitch and
buffer size. Align the pitch to a multiple of 8.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Cc: Chun-Kuang Hu <chunkuang.hu@kernel.org>
Cc: Philipp Zabel <p.zabel@pengutronix.de>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
---
 drivers/gpu/drm/mediatek/mtk_gem.c | 13 ++++---------
 1 file changed, 4 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/mediatek/mtk_gem.c b/drivers/gpu/drm/mediatek/mtk_gem.c
index a172456d1d7b..21e08fabfd7f 100644
--- a/drivers/gpu/drm/mediatek/mtk_gem.c
+++ b/drivers/gpu/drm/mediatek/mtk_gem.c
@@ -8,6 +8,7 @@
 
 #include <drm/drm.h>
 #include <drm/drm_device.h>
+#include <drm/drm_dumb_buffers.h>
 #include <drm/drm_gem.h>
 #include <drm/drm_gem_dma_helper.h>
 #include <drm/drm_prime.h>
@@ -124,15 +125,9 @@ int mtk_gem_dumb_create(struct drm_file *file_priv, struct drm_device *dev,
 	struct mtk_gem_obj *mtk_gem;
 	int ret;
 
-	args->pitch = DIV_ROUND_UP(args->width * args->bpp, 8);
-
-	/*
-	 * Multiply 2 variables of different types,
-	 * for example: args->size = args->spacing * args->height;
-	 * may cause coverity issue with unintentional overflow.
-	 */
-	args->size = args->pitch;
-	args->size *= args->height;
+	ret = drm_mode_size_dumb(dev, args, SZ_8, 0);
+	if (ret)
+		return ret;
 
 	mtk_gem = mtk_gem_create(dev, args->size, false);
 	if (IS_ERR(mtk_gem))
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 08:22:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 08:22:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087937.1445831 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up0ZD-0005Cl-K5; Thu, 21 Aug 2025 08:22:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087937.1445831; Thu, 21 Aug 2025 08:22: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 1up0ZD-0005CS-Ev; Thu, 21 Aug 2025 08:22:39 +0000
Received: by outflank-mailman (input) for mailman id 1087937;
 Thu, 21 Aug 2025 08:22:38 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+F7x=3B=suse.de=tzimmermann@srs-se1.protection.inumbo.net>)
 id 1up0ZC-0001aA-1J
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 08:22:38 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ff09a93e-7e67-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 10:22:37 +0200 (CEST)
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 CF2961F38C;
 Thu, 21 Aug 2025 08:22:19 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 34CD2139A8;
 Thu, 21 Aug 2025 08:22:19 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id oLywCzvXpmhzEwAAD6G6ig
 (envelope-from <tzimmermann@suse.de>); Thu, 21 Aug 2025 08:22: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>
X-Inumbo-ID: ff09a93e-7e67-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764540; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=M7Oh2CKC52D/bkjv3gbkyuefD0L3ZTcMttfAp9cMa/k=;
	b=X2rQAOf5qeejLZXJwJLqY3j5qJe59lvBTQEL1k4U6qH8EWzTrdHSDuDUoSjwyMd5/DipUv
	XOptlCzcXkjGBhSyYTMlesgUnPhQ5/RXGeh5zgn9vfNO6GFHovVEGlucn7f1lio5nAl1ah
	c+sCdxZmQ65bS4Ozjht1nAZhGtnWVzA=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764540;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=M7Oh2CKC52D/bkjv3gbkyuefD0L3ZTcMttfAp9cMa/k=;
	b=ldHqUVx3NNRxyAA/eYH2wc9ctGqhcYIxDn2IhSZwN/jLbaQaKhhcdtz3gH9CHzsFnkzAhK
	KDzst1jCz7zn25Bw==
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764539; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=M7Oh2CKC52D/bkjv3gbkyuefD0L3ZTcMttfAp9cMa/k=;
	b=19zloJJjZeUPBJoI+3zQp908ajWNJTisu4MqSVaNxsNQjkOdUzYhjeth3WLas6LVPyrKmZ
	cdkRKhfsSq4t6gJtGnPOC2+r7gZUjEnz5uDbpD1yabZ0bYKXCO/YddeRcnhAsN2K0Ivmtp
	ejnJd21WJT9PKm5q5uBg32R1XOBTqmk=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764539;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=M7Oh2CKC52D/bkjv3gbkyuefD0L3ZTcMttfAp9cMa/k=;
	b=K/pCPeZSFaQoqSoMOhCn3OYms/Da8wF3KYepX0KqSYYquhK4YTBHQcNhcVUo/rMxCU5+vU
	C80kpjVStIHiEqDA==
From: Thomas Zimmermann <tzimmermann@suse.de>
To: simona@ffwll.ch,
	airlied@gmail.com,
	mripard@kernel.org,
	maarten.lankhorst@linux.intel.com,
	geert@linux-m68k.org,
	tomi.valkeinen@ideasonboard.com
Cc: dri-devel@lists.freedesktop.org,
	linux-mediatek@lists.infradead.org,
	freedreno@lists.freedesktop.org,
	linux-arm-msm@vger.kernel.org,
	imx@lists.linux.dev,
	linux-samsung-soc@vger.kernel.org,
	nouveau@lists.freedesktop.org,
	virtualization@lists.linux.dev,
	spice-devel@lists.freedesktop.org,
	linux-renesas-soc@vger.kernel.org,
	linux-rockchip@lists.infradead.org,
	linux-tegra@vger.kernel.org,
	intel-xe@lists.freedesktop.org,
	xen-devel@lists.xenproject.org,
	Thomas Zimmermann <tzimmermann@suse.de>,
	Dmitry Baryshkov <dmitry.baryshkov@linaro.org>,
	Rob Clark <robdclark@gmail.com>,
	Abhinav Kumar <quic_abhinavk@quicinc.com>,
	Sean Paul <sean@poorly.run>,
	Marijn Suijten <marijn.suijten@somainline.org>
Subject: [PATCH v6 13/25] drm/msm: Compute dumb-buffer sizes with drm_mode_size_dumb()
Date: Thu, 21 Aug 2025 10:17:20 +0200
Message-ID: <20250821081918.79786-14-tzimmermann@suse.de>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250821081918.79786-1-tzimmermann@suse.de>
References: <20250821081918.79786-1-tzimmermann@suse.de>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-1.30 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	SUSPICIOUS_RECIPS(1.50)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MID_CONTAINS_FROM(1.00)[];
	R_MISSING_CHARSET(0.50)[];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	ARC_NA(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[quicinc.com:email,suse.de:mid,suse.de:email,linaro.org:email];
	MIME_TRACE(0.00)[0:+];
	RCPT_COUNT_TWELVE(0.00)[26];
	RCVD_TLS_ALL(0.00)[];
	TO_DN_SOME(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	FREEMAIL_TO(0.00)[ffwll.ch,gmail.com,kernel.org,linux.intel.com,linux-m68k.org,ideasonboard.com];
	RCVD_COUNT_TWO(0.00)[2];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FREEMAIL_CC(0.00)[lists.freedesktop.org,lists.infradead.org,vger.kernel.org,lists.linux.dev,lists.xenproject.org,suse.de,linaro.org,gmail.com,quicinc.com,poorly.run,somainline.org];
	FROM_HAS_DN(0.00)[];
	R_RATELIMIT(0.00)[to_ip_from(RLqirfcw6gnbcr9a9yhi49fhi6)];
	DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	FREEMAIL_ENVRCPT(0.00)[gmail.com]
X-Spam-Flag: NO
X-Spam-Level: 
X-Spam-Score: -1.30

Call drm_mode_size_dumb() to compute dumb-buffer scanline pitch
and buffer size. Alignment is specified in bytes, but the hardware
requires the scanline pitch to be a multiple of 32 pixels. Therefore
compute the byte size of 32 pixels in the given color mode and align
the pitch accordingly. This replaces the existing code in the driver's
align_pitch() helper.

v3:
- clarify pitch alignment in commit message (Dmitry)

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Cc: Rob Clark <robdclark@gmail.com>
Cc: Abhinav Kumar <quic_abhinavk@quicinc.com>
Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Cc: Sean Paul <sean@poorly.run>
Cc: Marijn Suijten <marijn.suijten@somainline.org>
---
 drivers/gpu/drm/msm/msm_gem.c | 27 +++++++++++++++++++++++++--
 1 file changed, 25 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/msm/msm_gem.c b/drivers/gpu/drm/msm/msm_gem.c
index 7ff994d4f91a..d854444ba1b5 100644
--- a/drivers/gpu/drm/msm/msm_gem.c
+++ b/drivers/gpu/drm/msm/msm_gem.c
@@ -10,8 +10,10 @@
 #include <linux/shmem_fs.h>
 #include <linux/dma-buf.h>
 
+#include <drm/drm_dumb_buffers.h>
 #include <drm/drm_prime.h>
 #include <drm/drm_file.h>
+#include <drm/drm_fourcc.h>
 
 #include <trace/events/gpu_mem.h>
 
@@ -691,8 +693,29 @@ void msm_gem_unpin_iova(struct drm_gem_object *obj, struct drm_gpuvm *vm)
 int msm_gem_dumb_create(struct drm_file *file, struct drm_device *dev,
 		struct drm_mode_create_dumb *args)
 {
-	args->pitch = align_pitch(args->width, args->bpp);
-	args->size  = PAGE_ALIGN(args->pitch * args->height);
+	u32 fourcc;
+	const struct drm_format_info *info;
+	u64 pitch_align;
+	int ret;
+
+	/*
+	 * Adreno needs pitch aligned to 32 pixels. Compute the number
+	 * of bytes for a block of 32 pixels at the given color format.
+	 * Use the result as pitch alignment.
+	 */
+	fourcc = drm_driver_color_mode_format(dev, args->bpp);
+	if (fourcc == DRM_FORMAT_INVALID)
+		return -EINVAL;
+	info = drm_format_info(fourcc);
+	if (!info)
+		return -EINVAL;
+	pitch_align = drm_format_info_min_pitch(info, 0, SZ_32);
+	if (!pitch_align || pitch_align > U32_MAX)
+		return -EINVAL;
+	ret = drm_mode_size_dumb(dev, args, pitch_align, 0);
+	if (ret)
+		return ret;
+
 	return msm_gem_new_handle(dev, file, args->size,
 			MSM_BO_SCANOUT | MSM_BO_WC, &args->handle, "dumb");
 }
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 08:25:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 08:25:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087976.1445841 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up0c9-0008JQ-0x; Thu, 21 Aug 2025 08:25:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087976.1445841; Thu, 21 Aug 2025 08:25: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 1up0c8-0008JJ-Uc; Thu, 21 Aug 2025 08:25:40 +0000
Received: by outflank-mailman (input) for mailman id 1087976;
 Thu, 21 Aug 2025 08:25:40 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=uBnp=3B=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1up0c7-0008J8-4s
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 08:25:40 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 69626cf0-7e68-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 10:25:36 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id C7D114EE3C0D;
 Thu, 21 Aug 2025 10:25:34 +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>
X-Inumbo-ID: 69626cf0-7e68-11f0-a32b-13f23c93f187
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=1755764734;
	b=z0ScJLQ2rorO/RMlHDUb5gkNN3yY0byb2HbylteeoO6j5vF5eMXUI9RpyRCiQT8XBOgz
	 He2j/2fqu7qvo4tmDYd765apobjmKSXeYViXmX8OYgnjx2AYZlx69oGlNFDzWdehIQy1o
	 iUZ2vLhGvy5BStYLiCpd7WFy1AYMIwmT4LLqQezie/n2xx1vwhwg5heAVJBALRapWXCpu
	 OZ+nhWz6gU40+KcQb3Mqsf2Nv9aymK2l4gt8tVVo4VEooX4iIWZzVD6C011PnX5ToA4J5
	 34sFLWOertOy4DLAgLjBX/1HIVwPjQJfCmR0ZIXxFkMEaPgcUDJ1y2Z1UCBm30PlzpxTg
	 vs4lm0uPqiPjrGNK6IlcKG9+2uHJdXIJO0lQaJ58JgTwZ7PlvAZRAP2+q3NRntcNdn2Vh
	 JM8PIZMsyE4Z23GgcX8YLyzoNwuauRRCtlbzY2om92a27uEJjDXWqEKbvMgg2OJrf6san
	 6PFWc6xqlo8vCwRX0OXU787tjPqTbG3faL0kXfBfduhWizwpPFXbcZeApg4Qo/PKpz7Rv
	 C1XHSGTu2LtfvDOvVQTJyQS040LKik1WPDd5zK3aF6YZnKKOaonQZsRY8pMh1WaGQ6hrl
	 a87fcEzebFN7g4D1FOuzlhwiPnPpoVzxtpsPih297pDLfYQNeLHO5/qQuHAQE5Q=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1755764734;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=iHzFbEZvEeJsSvh3JJ41FaQH9+W0dmD64PMJY0k9kDY=;
	b=qQlmvJvYCmXb9XDvfQro/xlDYzBXoYrEV9ADEqQT+HbE00EyTcIQuRR/PHZl3y3bHsY5
	 LTfwfdM3eTQfo8lMMoTvVivoAxhrO7QL9KWGtnWgTfc5V3j3zzg3D3a12vwVd2bgaUlVG
	 TqdfsKuQWH05JtpbIEVvexVXoSx0XKt+JxlNKAneBIgHnF1QoBG5YtrJ517XkPUrLb7Hq
	 ZLeiqtzLyTfg5zfBDXF3ktnYt7PINFE9kODl4M7vTjb4gwDT5sZ5YGDvVHyPqTFjicjWy
	 SGmUQIEo8O/pH4KIleiFidRadnyZVeJT6B4z2+I5FWRMgW4V7v3JhzLp56G2OGQlkB05L
	 F51VyZPku5sGtL0RFK8nHy+mlOzh5/J4IMLt10hpI/v63C4/FkzbHi5Sg9saYwOdKoSna
	 mzl8gfWJl+FUwuj9F78bIpIWOQQw+HjbZ6Oa+Vi5Uj5icqzSv9jqvNYYVLHs7YHpoZpDO
	 gndbPw7NPpTqBVVsf4VabbTSPmVHnrE5kUeJM7JisnqBamywenLp5336HmYgESfUof6t6
	 SIhF61K+kVfhFAYqM2iH/RscDzqHeTdb17YsPVKBPSedMe3nt5+xxUNKHY1hFc+goxNDR
	 OimKi7U5S+LK7g9eyskWwWkzZBTpLF+fL6ZEcsL9p9934HbEdhzK03QNDYGUZDs=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1755764734; bh=T+Hk05tWBBg2F9Gq0ArWKo5vC+FV4QP+5pzigD/+Sqo=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=vKrKJDtyW0S2Ke4q5leIY7BvQHzpGb5Bd+3tBbGJL5al5QOymHlAvLcZ9WZRVjcko
	 Ezh2r3/JUp4a82r6VUzYfL4/YoegR88N4HlDP/6mDC2YwkxECYJ5wIetV4NHRHyfCZ
	 oBPTjparqPxJRNrXmwZF1bFjLLkFEUnidgw8fDbwII78m3AOFLY1brxOOygY/vGwG1
	 ZYqWiL+bvF1KjwSbwlIqmcGlWi+9jwJcpciMZutZHRlJmRXxg7nH2EQzj/sZk2F9LO
	 mIwKauFDyIUMdM7JoP0iMyUnKbdpoAeFUZheHH8x3WjnUsWuh3mL3w5zRi6QFUdtsV
	 WgXQZwmO/Q1Bw==
MIME-Version: 1.0
Date: Thu, 21 Aug 2025 10:25:34 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, Doug Goldstein
 <cardoe@cardoe.com>, Stefano Stabellini <sstabellini@kernel.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
 <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien
 Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH] misra: consider conversion from UL or (void*) to function
 pointer as safe
In-Reply-To: <90fb95a3-4b32-4785-a77c-373e5b9da6ed@suse.com>
References: <9e5e4ff2c7ba0a90a6ac403e2de9318e18949274.1755628705.git.dmytro_prokopchuk1@epam.com>
 <90fb95a3-4b32-4785-a77c-373e5b9da6ed@suse.com>
Message-ID: <e1e2abdf0ef8708097aa78440eeb7147@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

On 2025-08-21 10:01, Jan Beulich wrote:
> On 19.08.2025 20:55, Dmytro Prokopchuk1 wrote:
>> Rule 11.1 states as following: "Conversions shall not be performed
>> between a pointer to a function and any other type."
>> 
>> The conversion from unsigned long or (void *) to a function pointer
>> is safe in Xen because the architectures it supports (e.g., x86 and
>> ARM) guarantee compatible representations between these types.
> 
> I think we need to be as precise as possible here. The architectures
> guarantee nothing, they only offer necessary fundamentals. In the
> Windows x86 ABI, for example, you can't convert pointers to/from longs
> without losing data. What we build upon is what respective ABIs say,
> possibly in combination of implementation specifics left to compilers.
> 

+1, a mention of the compilers and targets this deviation relies upon is 
needed.

>> --- a/docs/misra/deviations.rst
>> +++ b/docs/misra/deviations.rst
>> @@ -370,6 +370,16 @@ Deviations related to MISRA C:2012 Rules:
>>         to store it.
>>       - Tagged as `safe` for ECLAIR.
>> 
>> +   * - R11.1
>> +     - The conversion from unsigned long or (void \*) to a function 
>> pointer does
>> +       not lose any information or violate type safety assumptions if 
>> unsigned
>> +       long or (void \*) type is guaranteed to be the same bit size 
>> as a
>> +       function pointer. This ensures that the function pointer can 
>> be fully
>> +       represented without truncation or corruption. The macro 
>> BUILD_BUG_ON is
>> +       integrated into xen/common/version.c to confirm conversion 
>> compatibility
>> +       across all target platforms.
>> +     - Tagged as `safe` for ECLAIR.
> 
> Why the escaping of * here, when ...
> 
>> --- a/docs/misra/rules.rst
>> +++ b/docs/misra/rules.rst
>> @@ -431,7 +431,13 @@ maintainers if you want to suggest a change.
>>       - All conversions to integer types are permitted if the 
>> destination
>>         type has enough bits to hold the entire value. Conversions to 
>> bool
>>         and void* are permitted. Conversions from 'void noreturn 
>> (*)(...)'
>> -       to 'void (*)(...)' are permitted.
>> +       to 'void (*)(...)' are permitted. Conversions from unsigned 
>> long or
>> +       (void \*) to a function pointer are permitted if the source 
>> type has
>> +       enough bits to restore function pointer without truncation or 
>> corruption.
>> +       Example::
>> +
>> +           unsigned long func_addr = (unsigned long)&some_function;
>> +           void (*restored_func)(void) = (void (*)(void))func_addr;
> 
> ... context here suggests they work fine un-escaped, and you even add 
> some un-
> escaped instances as well. Perhaps I'm simply unaware of some 
> peculiarity?
> 

This is a literal rst block, while the other is not (* acts as a bullet 
point in rst iirc)

> Jan

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 08:26:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 08:26:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1087985.1445851 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up0dK-0000PA-AL; Thu, 21 Aug 2025 08:26:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1087985.1445851; Thu, 21 Aug 2025 08:26:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up0dK-0000P3-74; Thu, 21 Aug 2025 08:26:54 +0000
Received: by outflank-mailman (input) for mailman id 1087985;
 Thu, 21 Aug 2025 08:26:52 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5Hha=3B=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1up0dI-0000Ot-AA
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 08:26:52 +0000
Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com
 [2a00:1450:4864:20::635])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9620442f-7e68-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 10:26:51 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-afcb78d5dcbso106116166b.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 01:26:51 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afded4790bbsm349217566b.56.2025.08.21.01.26.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Aug 2025 01:26: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>
X-Inumbo-ID: 9620442f-7e68-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755764810; x=1756369610; 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=0lWE24kU4jNhTwSigocXctoFrQCO2MCM1AssF2iUCj0=;
        b=VskbHI+OS7X5AjckIFXB9Ji8eVbUPJjGJ+UEsHXS9mPZsEZKSKTiHf3ZVYjuBaFsDi
         QlDpvTa/wGPGJlpWy3Fr2q+BueHme/Z8tqWx25MKs1JsS3arhQ8XtP31TYi1uQGVApdm
         tschkQzIUC1VHDKw23IVv+YVF3bkfTnwYUMC1atuAD8lm3A9Xy7ATpOd0K/DLQ50EnHd
         5rdoEgXFvdiZBD56i1DmGcUDW2DmEva4EyYg58t8AvaOybX7ZsnPx5YVS0e4TIWD0/8l
         UUw8LrOAekuQid8iMi7MEcLM1V/pveFrr/oDcjgphoFix4FveMkGX8Mxh82FKekvuFue
         s4vg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755764810; x=1756369610;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=0lWE24kU4jNhTwSigocXctoFrQCO2MCM1AssF2iUCj0=;
        b=ATX0iTQJC94+5ToImBbEcTpw1RnKvzVMqeI08qJc7fQOHJ8RhlFhxnc4DUmk2OKMsx
         nDM3u27YdYp4/crpkgCGsXIzTq8patuylpC3RBuU4wuVcM1RgIyTdVglmyipFQSvxNLa
         ZvvdnjHmabNOI3LTVIrmVtQetOXPWsDD+Cwe5ylynayVdpmapSt7o68B6PO+1NO3ABN9
         GY4pusDx1niXzArI1C26HkHYWXo9HtqMXRAKJA/HDJfSNgIwDN/ja2h5mqv/GbLTnkD9
         o6E049wY9I2Es7MDbvTbCkcI659630kgEeKEoepiXmDkT02dx4MvVS/WQaTQD4HeFfw5
         0FiQ==
X-Gm-Message-State: AOJu0YxDWRajPbBNFA9KILiAaDbzMTzrWdoN68fXyNDdLZYn9rToVgFr
	KJpEjNkZGhg0RLIT/APL2i/rubNKw6IGEJ9EcrCjCXQQ0VKxvwdUxYSDBwpboV27EQ==
X-Gm-Gg: ASbGncv/O9cl7Y1fMMmNof3E2/HD2VgDdi2PJlxzSFFXtkKa8cRx0hZz0cB/yTGdGat
	bf0e2rdgaPldhF6e/CMjsxzy85H2GFAUyyZZm3A4DLvbEfSZ0ocY7Tabl2tyUAoGoFrr3Px1LHW
	fLgKyB4OLGAJarulQdkeBBkjoS4XGxQuQ9kq7MGbl1eBQLdglFDSzAZWzfJ5mOTwWyQosaTTclh
	NGpw5oNlMn07KUgDVaY1IpBLE0LNqOkKlzokIXXq+z21py7hZHlJJbVgXtOmUpfSxa74+zsibcM
	8xp5tcR9Ti3l08sS90KqLD9ckg0gqmUaA8ITdNYWvMs97weU7U/rt1d2/y2JiU5vldIRwjPVitS
	zRcMMKbSNudmRu3/J6JHKSWbtT/6cVCSyhWJG0MnqsHtBLHwi21BhcXjuTx8Xx/EfkzJqpNhppA
	IpQom8CA4=
X-Google-Smtp-Source: AGHT+IFhml7crmfz+RjhfADhyzd4xaAwo2+TLB0VPS2VHr+AMSihzIdgsPSf1858/Brwo3se76Yyzg==
X-Received: by 2002:a17:907:983:b0:add:fb01:c64a with SMTP id a640c23a62f3a-afe07c153d1mr158481466b.43.1755764810321;
        Thu, 21 Aug 2025 01:26:50 -0700 (PDT)
Message-ID: <312c4802-0c15-4d2b-a98c-13d1ed75bcaa@suse.com>
Date: Thu, 21 Aug 2025 10:26:49 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: Mykyta Poturai <Mykyta_Poturai@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
From: Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH v2 2/3] pci/rcar: implement OSID configuration for Renesas
 RCar Gen4 PCIe host
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

(sorry, original patch already gone from my mailbox)

This looks to have introduced a new randconfig failure, as per CI [1]:

In file included from drivers/passthrough/arm/ipmmu-vmsa.c:54:
./include/../arch/arm/pci/pci-host-rcar4.h:7:37: error: 'struct pci_host_bridge' declared inside parameter list will not be visible outside of this definition or declaration [-Werror]
    7 | void rcar4_pcie_osid_bdf_set(struct pci_host_bridge *bridge,
      |                                     ^~~~~~~~~~~~~~~
./include/../arch/arm/pci/pci-host-rcar4.h:9:39: error: 'struct pci_host_bridge' declared inside parameter list will not be visible outside of this definition or declaration [-Werror]
    9 | void rcar4_pcie_osid_bdf_clear(struct pci_host_bridge *bridge,
      |                                       ^~~~~~~~~~~~~~~
./include/../arch/arm/pci/pci-host-rcar4.h:11:36: error: 'struct pci_host_bridge' declared inside parameter list will not be visible outside of this definition or declaration [-Werror]
   11 | void rcar4_pcie_bdf_msk_set(struct pci_host_bridge *bridge, unsigned int reg_id,
      |                                    ^~~~~~~~~~~~~~~
./include/../arch/arm/pci/pci-host-rcar4.h:13:38: error: 'struct pci_host_bridge' declared inside parameter list will not be visible outside of this definition or declaration [-Werror]
   13 | int rcar4_pcie_osid_reg_alloc(struct pci_host_bridge *bridge);
      |                                      ^~~~~~~~~~~~~~~
./include/../arch/arm/pci/pci-host-rcar4.h:14:38: error: 'struct pci_host_bridge' declared inside parameter list will not be visible outside of this definition or declaration [-Werror]
   14 | void rcar4_pcie_osid_reg_free(struct pci_host_bridge *bridge,
      |                                      ^~~~~~~~~~~~~~~
./include/../arch/arm/pci/pci-host-rcar4.h:16:38: error: 'struct pci_host_bridge' declared inside parameter list will not be visible outside of this definition or declaration [-Werror]
   16 | int rcar4_pcie_osid_regs_init(struct pci_host_bridge *bridge);
      |                                      ^~~~~~~~~~~~~~~

We either need a quick correction, or this may need reverting.

Jan

[1] https://gitlab.com/xen-project/hardware/xen/-/jobs/11087233227


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 08:32:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 08:32:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088022.1445861 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up0iO-0002Pw-15; Thu, 21 Aug 2025 08:32:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088022.1445861; Thu, 21 Aug 2025 08:32: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 1up0iN-0002Po-T2; Thu, 21 Aug 2025 08:32:07 +0000
Received: by outflank-mailman (input) for mailman id 1088022;
 Thu, 21 Aug 2025 08:32:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+F7x=3B=suse.de=tzimmermann@srs-se1.protection.inumbo.net>)
 id 1up0ZI-0001aB-TZ
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 08:22:44 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 00dab7d9-7e68-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 10:22:40 +0200 (CEST)
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 729EE1F7EE;
 Thu, 21 Aug 2025 08:22:20 +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 D505913867;
 Thu, 21 Aug 2025 08:22:19 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id WO6QMjvXpmhzEwAAD6G6ig
 (envelope-from <tzimmermann@suse.de>); Thu, 21 Aug 2025 08:22: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>
X-Inumbo-ID: 00dab7d9-7e68-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764540; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=98wiGs2+EnErfdkGDAxUiBR4iD/UWra2StCl2zMlfWQ=;
	b=YfYAQaIfa3irYZmzA0AMdQCruI4KXV+TQ6UP9yGC/tY25ZKEOEp6Q7V9rz381vEhLcs1/8
	lq/ENNP8LqbL4v95DGMwb6fpOj2lwJ7aQVSW23cOF6dj5kksFigYjYE5NbESInJ9+ytpZZ
	s6u+MdfYFznr9SkM8C9MZ/opQXwJt1E=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764540;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=98wiGs2+EnErfdkGDAxUiBR4iD/UWra2StCl2zMlfWQ=;
	b=xj7wK/JSo8Xl36/yZTRk5/0NbjDslKeJly48F7fFVxuPisgQjM8itRqereqVK4butrPzV8
	UglzAStAY3zYXzBg==
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764540; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=98wiGs2+EnErfdkGDAxUiBR4iD/UWra2StCl2zMlfWQ=;
	b=YfYAQaIfa3irYZmzA0AMdQCruI4KXV+TQ6UP9yGC/tY25ZKEOEp6Q7V9rz381vEhLcs1/8
	lq/ENNP8LqbL4v95DGMwb6fpOj2lwJ7aQVSW23cOF6dj5kksFigYjYE5NbESInJ9+ytpZZ
	s6u+MdfYFznr9SkM8C9MZ/opQXwJt1E=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764540;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=98wiGs2+EnErfdkGDAxUiBR4iD/UWra2StCl2zMlfWQ=;
	b=xj7wK/JSo8Xl36/yZTRk5/0NbjDslKeJly48F7fFVxuPisgQjM8itRqereqVK4butrPzV8
	UglzAStAY3zYXzBg==
From: Thomas Zimmermann <tzimmermann@suse.de>
To: simona@ffwll.ch,
	airlied@gmail.com,
	mripard@kernel.org,
	maarten.lankhorst@linux.intel.com,
	geert@linux-m68k.org,
	tomi.valkeinen@ideasonboard.com
Cc: dri-devel@lists.freedesktop.org,
	linux-mediatek@lists.infradead.org,
	freedreno@lists.freedesktop.org,
	linux-arm-msm@vger.kernel.org,
	imx@lists.linux.dev,
	linux-samsung-soc@vger.kernel.org,
	nouveau@lists.freedesktop.org,
	virtualization@lists.linux.dev,
	spice-devel@lists.freedesktop.org,
	linux-renesas-soc@vger.kernel.org,
	linux-rockchip@lists.infradead.org,
	linux-tegra@vger.kernel.org,
	intel-xe@lists.freedesktop.org,
	xen-devel@lists.xenproject.org,
	Thomas Zimmermann <tzimmermann@suse.de>,
	Lyude Paul <lyude@redhat.com>,
	Karol Herbst <kherbst@redhat.com>,
	Danilo Krummrich <dakr@kernel.org>
Subject: [PATCH v6 14/25] drm/nouveau: Compute dumb-buffer sizes with drm_mode_size_dumb()
Date: Thu, 21 Aug 2025 10:17:21 +0200
Message-ID: <20250821081918.79786-15-tzimmermann@suse.de>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250821081918.79786-1-tzimmermann@suse.de>
References: <20250821081918.79786-1-tzimmermann@suse.de>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: 
X-Spamd-Result: default: False [-1.30 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	SUSPICIOUS_RECIPS(1.50)[];
	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];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:email,suse.de:mid];
	FREEMAIL_TO(0.00)[ffwll.ch,gmail.com,kernel.org,linux.intel.com,linux-m68k.org,ideasonboard.com];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	ARC_NA(0.00)[];
	MIME_TRACE(0.00)[0:+];
	RCPT_COUNT_TWELVE(0.00)[24];
	DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FROM_HAS_DN(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	R_RATELIMIT(0.00)[to(RLbwen1niosrcqbxsafh1),to_ip_from(RLqirfcw6gnbcr9a9yhi49fhi6)];
	TO_DN_SOME(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	FREEMAIL_ENVRCPT(0.00)[gmail.com]
X-Spam-Flag: NO
X-Spam-Score: -1.30

Call drm_mode_size_dumb() to compute dumb-buffer scanline pitch and
buffer size. Align the pitch to a multiple of 256.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Lyude Paul <lyude@redhat.com>
Cc: Karol Herbst <kherbst@redhat.com>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Danilo Krummrich <dakr@kernel.org>
---
 drivers/gpu/drm/nouveau/nouveau_display.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/nouveau/nouveau_display.c b/drivers/gpu/drm/nouveau/nouveau_display.c
index 805d0a87aa54..54aed3656a4c 100644
--- a/drivers/gpu/drm/nouveau/nouveau_display.c
+++ b/drivers/gpu/drm/nouveau/nouveau_display.c
@@ -30,6 +30,7 @@
 #include <drm/drm_atomic_helper.h>
 #include <drm/drm_client_event.h>
 #include <drm/drm_crtc_helper.h>
+#include <drm/drm_dumb_buffers.h>
 #include <drm/drm_fourcc.h>
 #include <drm/drm_gem_framebuffer_helper.h>
 #include <drm/drm_probe_helper.h>
@@ -807,9 +808,9 @@ nouveau_display_dumb_create(struct drm_file *file_priv, struct drm_device *dev,
 	uint32_t domain;
 	int ret;
 
-	args->pitch = roundup(args->width * (args->bpp / 8), 256);
-	args->size = args->pitch * args->height;
-	args->size = roundup(args->size, PAGE_SIZE);
+	ret = drm_mode_size_dumb(dev, args, SZ_256, 0);
+	if (ret)
+		return ret;
 
 	/* Use VRAM if there is any ; otherwise fallback to system memory */
 	if (nouveau_drm(dev)->client.device.info.ram_size != 0)
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 08:32:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 08:32:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088024.1445866 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up0iO-0002TD-8r; Thu, 21 Aug 2025 08:32:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088024.1445866; Thu, 21 Aug 2025 08:32: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 1up0iO-0002Rx-3a; Thu, 21 Aug 2025 08:32:08 +0000
Received: by outflank-mailman (input) for mailman id 1088024;
 Thu, 21 Aug 2025 08:32:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+F7x=3B=suse.de=tzimmermann@srs-se1.protection.inumbo.net>)
 id 1up0Zk-0001aA-8b
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 08:23:12 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0a38ef6d-7e68-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 10:22:56 +0200 (CEST)
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 9495A22654;
 Thu, 21 Aug 2025 08:22:26 +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 EF64113867;
 Thu, 21 Aug 2025 08:22:25 +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 SDo/OUHXpmhzEwAAD6G6ig
 (envelope-from <tzimmermann@suse.de>); Thu, 21 Aug 2025 08:22: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>
X-Inumbo-ID: 0a38ef6d-7e68-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764546; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=EGdQCJTAJonWrK7A3SIV2WBOFqYns5b0kXahZKMX9F4=;
	b=ZBFTnZA23y6u9nD95+UvOks2hm6I7X+w54TkeGhfzFRhGQG1m0Cxj7GnPexHnFzOe2ibBG
	EabGsWpwzjYOHLUUUSmaXhVgIpU2uKT1YyT0tWp1mpJ/m0g8gxM9Ue9hDLVaAdjTYzHeKv
	vWyvJnw1ISoMsND6do8kynhNH036Myc=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764546;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=EGdQCJTAJonWrK7A3SIV2WBOFqYns5b0kXahZKMX9F4=;
	b=zqMovemcQ2URK/snj1BBYYshh3+IoTCbuX2CLjy/NksYBTrHq4/jfdX0ANr2/PiVKxDzvn
	V8NIsj9sLtZfQUAw==
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.de header.s=susede2_rsa header.b=ZBFTnZA2;
	dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=zqMovemc
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764546; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=EGdQCJTAJonWrK7A3SIV2WBOFqYns5b0kXahZKMX9F4=;
	b=ZBFTnZA23y6u9nD95+UvOks2hm6I7X+w54TkeGhfzFRhGQG1m0Cxj7GnPexHnFzOe2ibBG
	EabGsWpwzjYOHLUUUSmaXhVgIpU2uKT1YyT0tWp1mpJ/m0g8gxM9Ue9hDLVaAdjTYzHeKv
	vWyvJnw1ISoMsND6do8kynhNH036Myc=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764546;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=EGdQCJTAJonWrK7A3SIV2WBOFqYns5b0kXahZKMX9F4=;
	b=zqMovemcQ2URK/snj1BBYYshh3+IoTCbuX2CLjy/NksYBTrHq4/jfdX0ANr2/PiVKxDzvn
	V8NIsj9sLtZfQUAw==
From: Thomas Zimmermann <tzimmermann@suse.de>
To: simona@ffwll.ch,
	airlied@gmail.com,
	mripard@kernel.org,
	maarten.lankhorst@linux.intel.com,
	geert@linux-m68k.org,
	tomi.valkeinen@ideasonboard.com
Cc: dri-devel@lists.freedesktop.org,
	linux-mediatek@lists.infradead.org,
	freedreno@lists.freedesktop.org,
	linux-arm-msm@vger.kernel.org,
	imx@lists.linux.dev,
	linux-samsung-soc@vger.kernel.org,
	nouveau@lists.freedesktop.org,
	virtualization@lists.linux.dev,
	spice-devel@lists.freedesktop.org,
	linux-renesas-soc@vger.kernel.org,
	linux-rockchip@lists.infradead.org,
	linux-tegra@vger.kernel.org,
	intel-xe@lists.freedesktop.org,
	xen-devel@lists.xenproject.org,
	Thomas Zimmermann <tzimmermann@suse.de>,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: [PATCH v6 24/25] drm/xen: Compute dumb-buffer sizes with drm_mode_size_dumb()
Date: Thu, 21 Aug 2025 10:17:31 +0200
Message-ID: <20250821081918.79786-25-tzimmermann@suse.de>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250821081918.79786-1-tzimmermann@suse.de>
References: <20250821081918.79786-1-tzimmermann@suse.de>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: 
X-Spam-Flag: NO
X-Rspamd-Queue-Id: 9495A22654
X-Rspamd-Action: no action
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org
X-Spamd-Result: default: False [-1.51 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	SUSPICIOUS_RECIPS(1.50)[];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	FREEMAIL_TO(0.00)[ffwll.ch,gmail.com,kernel.org,linux.intel.com,linux-m68k.org,ideasonboard.com];
	DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	ARC_NA(0.00)[];
	RCPT_COUNT_TWELVE(0.00)[22];
	MIME_TRACE(0.00)[0:+];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:dkim,suse.de:mid,suse.de:email];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FROM_HAS_DN(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	DWL_DNSWL_BLOCKED(0.00)[suse.de:dkim];
	RCVD_COUNT_TWO(0.00)[2];
	DKIM_TRACE(0.00)[suse.de:+];
	TO_DN_SOME(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	FREEMAIL_ENVRCPT(0.00)[gmail.com]
X-Spam-Score: -1.51

Call drm_mode_size_dumb() to compute dumb-buffer scanline pitch
and buffer size. Align the pitch to a multiple of 8.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Cc: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
---
 drivers/gpu/drm/xen/xen_drm_front.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/xen/xen_drm_front.c b/drivers/gpu/drm/xen/xen_drm_front.c
index 1bda7ef606cc..fd2f250fbc33 100644
--- a/drivers/gpu/drm/xen/xen_drm_front.c
+++ b/drivers/gpu/drm/xen/xen_drm_front.c
@@ -14,6 +14,7 @@
 
 #include <drm/drm_atomic_helper.h>
 #include <drm/drm_drv.h>
+#include <drm/drm_dumb_buffers.h>
 #include <drm/drm_ioctl.h>
 #include <drm/drm_probe_helper.h>
 #include <drm/drm_file.h>
@@ -414,8 +415,10 @@ static int xen_drm_drv_dumb_create(struct drm_file *filp,
 	 * object without pages etc.
 	 * For details also see drm_gem_handle_create
 	 */
-	args->pitch = DIV_ROUND_UP(args->width * args->bpp, 8);
-	args->size = args->pitch * args->height;
+
+	ret = drm_mode_size_dumb(dev, args, SZ_8, 0);
+	if (ret)
+		return ret;
 
 	obj = xen_drm_front_gem_create(dev, args->size);
 	if (IS_ERR(obj)) {
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 08:33:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 08:33:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088052.1445880 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up0jX-0003jd-J4; Thu, 21 Aug 2025 08:33:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088052.1445880; Thu, 21 Aug 2025 08:33: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 1up0jX-0003jW-GS; Thu, 21 Aug 2025 08:33:19 +0000
Received: by outflank-mailman (input) for mailman id 1088052;
 Thu, 21 Aug 2025 08:33:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+F7x=3B=suse.de=tzimmermann@srs-se1.protection.inumbo.net>)
 id 1up0ZV-0001aB-VI
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 08:22:57 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de
 [2a07:de40:b251:101:10:150:64:2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 056b368f-7e68-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 10:22:48 +0200 (CEST)
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 946E41F853;
 Thu, 21 Aug 2025 08:22:21 +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 06F8E13867;
 Thu, 21 Aug 2025 08:22:21 +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 CFJ9AD3XpmhzEwAAD6G6ig
 (envelope-from <tzimmermann@suse.de>); Thu, 21 Aug 2025 08:22: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>
X-Inumbo-ID: 056b368f-7e68-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764541; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=5jjJ1T1v/aZMEH6qEuFOLLTT1MbnehEC6ADbpMxNn/Y=;
	b=vi/Te3EaMGkxWne1cDrn7ss5wH3an8cpo5qRGhJwqSvV4zdPDQEysn0Xr94P00xzKbhL5P
	rAuGGknCsO+PQxy2RmWc+NjwUrIS+KHS8HtGtgELNbkrI2JefNOC3f6CuyofRTaF+yzAgD
	PvCjkl+g+4jlIr3GjsOnooCXuito11M=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764541;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=5jjJ1T1v/aZMEH6qEuFOLLTT1MbnehEC6ADbpMxNn/Y=;
	b=Ko8NiJHS05xtmCsxqe8GU7aiqtH97ywiCmDn3phzu80rJ2+SG3P04U4b5vZNupcKxO8oeL
	HETIc6If+883LbDw==
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764541; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=5jjJ1T1v/aZMEH6qEuFOLLTT1MbnehEC6ADbpMxNn/Y=;
	b=vi/Te3EaMGkxWne1cDrn7ss5wH3an8cpo5qRGhJwqSvV4zdPDQEysn0Xr94P00xzKbhL5P
	rAuGGknCsO+PQxy2RmWc+NjwUrIS+KHS8HtGtgELNbkrI2JefNOC3f6CuyofRTaF+yzAgD
	PvCjkl+g+4jlIr3GjsOnooCXuito11M=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764541;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=5jjJ1T1v/aZMEH6qEuFOLLTT1MbnehEC6ADbpMxNn/Y=;
	b=Ko8NiJHS05xtmCsxqe8GU7aiqtH97ywiCmDn3phzu80rJ2+SG3P04U4b5vZNupcKxO8oeL
	HETIc6If+883LbDw==
From: Thomas Zimmermann <tzimmermann@suse.de>
To: simona@ffwll.ch,
	airlied@gmail.com,
	mripard@kernel.org,
	maarten.lankhorst@linux.intel.com,
	geert@linux-m68k.org,
	tomi.valkeinen@ideasonboard.com
Cc: dri-devel@lists.freedesktop.org,
	linux-mediatek@lists.infradead.org,
	freedreno@lists.freedesktop.org,
	linux-arm-msm@vger.kernel.org,
	imx@lists.linux.dev,
	linux-samsung-soc@vger.kernel.org,
	nouveau@lists.freedesktop.org,
	virtualization@lists.linux.dev,
	spice-devel@lists.freedesktop.org,
	linux-renesas-soc@vger.kernel.org,
	linux-rockchip@lists.infradead.org,
	linux-tegra@vger.kernel.org,
	intel-xe@lists.freedesktop.org,
	xen-devel@lists.xenproject.org,
	Thomas Zimmermann <tzimmermann@suse.de>,
	Dave Airlie <airlied@redhat.com>,
	Gerd Hoffmann <kraxel@redhat.com>
Subject: [PATCH v6 16/25] drm/qxl: Compute dumb-buffer sizes with drm_mode_size_dumb()
Date: Thu, 21 Aug 2025 10:17:23 +0200
Message-ID: <20250821081918.79786-17-tzimmermann@suse.de>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250821081918.79786-1-tzimmermann@suse.de>
References: <20250821081918.79786-1-tzimmermann@suse.de>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-1.30 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	SUSPICIOUS_RECIPS(1.50)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MID_CONTAINS_FROM(1.00)[];
	R_MISSING_CHARSET(0.50)[];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	ARC_NA(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:mid,suse.de:email];
	RCPT_COUNT_TWELVE(0.00)[23];
	MIME_TRACE(0.00)[0:+];
	TO_DN_SOME(0.00)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	FROM_HAS_DN(0.00)[];
	FREEMAIL_TO(0.00)[ffwll.ch,gmail.com,kernel.org,linux.intel.com,linux-m68k.org,ideasonboard.com];
	RCVD_COUNT_TWO(0.00)[2];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	R_RATELIMIT(0.00)[to_ip_from(RLqirfcw6gnbcr9a9yhi49fhi6),to(RLbwen1niosrcqbxsafh1)];
	DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	FREEMAIL_ENVRCPT(0.00)[gmail.com]
X-Spam-Flag: NO
X-Spam-Level: 
X-Spam-Score: -1.30

Call drm_mode_size_dumb() to compute dumb-buffer scanline pitch
and buffer size. No alignment required.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Cc: Dave Airlie <airlied@redhat.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
---
 drivers/gpu/drm/qxl/qxl_dumb.c | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/qxl/qxl_dumb.c b/drivers/gpu/drm/qxl/qxl_dumb.c
index 17df5c7ccf69..1200946767ce 100644
--- a/drivers/gpu/drm/qxl/qxl_dumb.c
+++ b/drivers/gpu/drm/qxl/qxl_dumb.c
@@ -23,6 +23,8 @@
  *          Alon Levy
  */
 
+#include <drm/drm_dumb_buffers.h>
+
 #include "qxl_drv.h"
 #include "qxl_object.h"
 
@@ -35,14 +37,13 @@ int qxl_mode_dumb_create(struct drm_file *file_priv,
 	struct qxl_device *qdev = to_qxl(dev);
 	struct qxl_bo *qobj;
 	struct drm_gem_object *gobj;
-	uint32_t handle;
 	int r;
 	struct qxl_surface surf;
-	uint32_t pitch, format;
+	u32 format;
 
-	pitch = args->width * ((args->bpp + 1) / 8);
-	args->size = pitch * args->height;
-	args->size = ALIGN(args->size, PAGE_SIZE);
+	r = drm_mode_size_dumb(dev, args, 0, 0);
+	if (r)
+		return r;
 
 	switch (args->bpp) {
 	case 16:
@@ -57,20 +58,18 @@ int qxl_mode_dumb_create(struct drm_file *file_priv,
 
 	surf.width = args->width;
 	surf.height = args->height;
-	surf.stride = pitch;
+	surf.stride = args->pitch;
 	surf.format = format;
 	surf.data = 0;
 
 	r = qxl_gem_object_create_with_handle(qdev, file_priv,
 					      QXL_GEM_DOMAIN_CPU,
 					      args->size, &surf, &gobj,
-					      &handle);
+					      &args->handle);
 	if (r)
 		return r;
 	qobj = gem_to_qxl_bo(gobj);
 	qobj->is_dumb = true;
 	drm_gem_object_put(gobj);
-	args->pitch = pitch;
-	args->handle = handle;
 	return 0;
 }
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 08:34:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 08:34:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088069.1445891 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up0kJ-0004U8-TN; Thu, 21 Aug 2025 08:34:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088069.1445891; Thu, 21 Aug 2025 08:34: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 1up0kJ-0004U1-PT; Thu, 21 Aug 2025 08:34:07 +0000
Received: by outflank-mailman (input) for mailman id 1088069;
 Thu, 21 Aug 2025 08:34:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+F7x=3B=suse.de=tzimmermann@srs-se1.protection.inumbo.net>)
 id 1up0ZC-0001aB-Sy
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 08:22:38 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de
 [2a07:de40:b251:101:10:150:64:1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fed4454f-7e67-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 10:22:37 +0200 (CEST)
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 8508C22647;
 Thu, 21 Aug 2025 08:22:18 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 0121413AB7;
 Thu, 21 Aug 2025 08:22: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 yBmxOjnXpmhzEwAAD6G6ig
 (envelope-from <tzimmermann@suse.de>); Thu, 21 Aug 2025 08:22: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>
X-Inumbo-ID: fed4454f-7e67-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764538; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=poQ7C1VCsw7aM0EcfCcWX93Ll0/l4nTwPTwAPzmeB+U=;
	b=Yfp+a1a9SgVPnjsRGFiqns3Sq9QPQtvDEhdH73T8C9z4PuAA+Luwv5Txd6mySnhlQT/oV1
	N13gv49c66vT6jhQl39PoCM0AU0znPEStglrxgpLeeOTuq+sq4QMj+uXQJNz8NFBkyfxxx
	A9e08W6aKs3zp4RUYYl+86MKx4kNAXw=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764538;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=poQ7C1VCsw7aM0EcfCcWX93Ll0/l4nTwPTwAPzmeB+U=;
	b=Jeh8Tiuvokw72qh/UAOTEDH4tn/SpL5QbEI+OanMljgUyfcHwdhqAsE/86H/Nt0dJ4Ndkd
	ZqdL+8qQh3yn3YDw==
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.de header.s=susede2_rsa header.b=Yfp+a1a9;
	dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=Jeh8Tiuv
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764538; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=poQ7C1VCsw7aM0EcfCcWX93Ll0/l4nTwPTwAPzmeB+U=;
	b=Yfp+a1a9SgVPnjsRGFiqns3Sq9QPQtvDEhdH73T8C9z4PuAA+Luwv5Txd6mySnhlQT/oV1
	N13gv49c66vT6jhQl39PoCM0AU0znPEStglrxgpLeeOTuq+sq4QMj+uXQJNz8NFBkyfxxx
	A9e08W6aKs3zp4RUYYl+86MKx4kNAXw=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764538;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=poQ7C1VCsw7aM0EcfCcWX93Ll0/l4nTwPTwAPzmeB+U=;
	b=Jeh8Tiuvokw72qh/UAOTEDH4tn/SpL5QbEI+OanMljgUyfcHwdhqAsE/86H/Nt0dJ4Ndkd
	ZqdL+8qQh3yn3YDw==
From: Thomas Zimmermann <tzimmermann@suse.de>
To: simona@ffwll.ch,
	airlied@gmail.com,
	mripard@kernel.org,
	maarten.lankhorst@linux.intel.com,
	geert@linux-m68k.org,
	tomi.valkeinen@ideasonboard.com
Cc: dri-devel@lists.freedesktop.org,
	linux-mediatek@lists.infradead.org,
	freedreno@lists.freedesktop.org,
	linux-arm-msm@vger.kernel.org,
	imx@lists.linux.dev,
	linux-samsung-soc@vger.kernel.org,
	nouveau@lists.freedesktop.org,
	virtualization@lists.linux.dev,
	spice-devel@lists.freedesktop.org,
	linux-renesas-soc@vger.kernel.org,
	linux-rockchip@lists.infradead.org,
	linux-tegra@vger.kernel.org,
	intel-xe@lists.freedesktop.org,
	xen-devel@lists.xenproject.org,
	Thomas Zimmermann <tzimmermann@suse.de>,
	Sui Jingfeng <sui.jingfeng@linux.dev>
Subject: [PATCH v6 11/25] drm/loongson: Compute dumb-buffer sizes with drm_mode_size_dumb()
Date: Thu, 21 Aug 2025 10:17:18 +0200
Message-ID: <20250821081918.79786-12-tzimmermann@suse.de>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250821081918.79786-1-tzimmermann@suse.de>
References: <20250821081918.79786-1-tzimmermann@suse.de>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-1.51 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	SUSPICIOUS_RECIPS(1.50)[];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	FREEMAIL_TO(0.00)[ffwll.ch,gmail.com,kernel.org,linux.intel.com,linux-m68k.org,ideasonboard.com];
	DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	ARC_NA(0.00)[];
	RCPT_COUNT_TWELVE(0.00)[22];
	MIME_TRACE(0.00)[0:+];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:mid,suse.de:dkim,suse.de:email];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FROM_HAS_DN(0.00)[];
	R_RATELIMIT(0.00)[to_ip_from(RLqtkr6cif1ebgurukgmwdm7xc)];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	DKIM_TRACE(0.00)[suse.de:+];
	TO_DN_SOME(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	FREEMAIL_ENVRCPT(0.00)[gmail.com]
X-Spam-Flag: NO
X-Spam-Level: 
X-Rspamd-Queue-Id: 8508C22647
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Rspamd-Action: no action
X-Spam-Score: -1.51

Call drm_mode_size_dumb() to compute dumb-buffer scanline pitch and
buffer size. Align the pitch according to hardware requirements.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Sui Jingfeng <sui.jingfeng@linux.dev>
Cc: Sui Jingfeng <sui.jingfeng@linux.dev>
---
 drivers/gpu/drm/loongson/lsdc_gem.c | 29 ++++++++---------------------
 1 file changed, 8 insertions(+), 21 deletions(-)

diff --git a/drivers/gpu/drm/loongson/lsdc_gem.c b/drivers/gpu/drm/loongson/lsdc_gem.c
index a720d8f53209..9f982b85301f 100644
--- a/drivers/gpu/drm/loongson/lsdc_gem.c
+++ b/drivers/gpu/drm/loongson/lsdc_gem.c
@@ -6,6 +6,7 @@
 #include <linux/dma-buf.h>
 
 #include <drm/drm_debugfs.h>
+#include <drm/drm_dumb_buffers.h>
 #include <drm/drm_file.h>
 #include <drm/drm_gem.h>
 #include <drm/drm_prime.h>
@@ -204,45 +205,31 @@ int lsdc_dumb_create(struct drm_file *file, struct drm_device *ddev,
 	const struct lsdc_desc *descp = ldev->descp;
 	u32 domain = LSDC_GEM_DOMAIN_VRAM;
 	struct drm_gem_object *gobj;
-	size_t size;
-	u32 pitch;
-	u32 handle;
 	int ret;
 
-	if (!args->width || !args->height)
-		return -EINVAL;
-
-	if (args->bpp != 32 && args->bpp != 16)
-		return -EINVAL;
-
-	pitch = args->width * args->bpp / 8;
-	pitch = ALIGN(pitch, descp->pitch_align);
-	size = pitch * args->height;
-	size = ALIGN(size, PAGE_SIZE);
+	ret = drm_mode_size_dumb(ddev, args, descp->pitch_align, 0);
+	if (ret)
+		return ret;
 
 	/* Maximum single bo size allowed is the half vram size available */
-	if (size > ldev->vram_size / 2) {
-		drm_err(ddev, "Requesting(%zuMiB) failed\n", size >> 20);
+	if (args->size > ldev->vram_size / 2) {
+		drm_err(ddev, "Requesting(%zuMiB) failed\n", (size_t)(args->size >> PAGE_SHIFT));
 		return -ENOMEM;
 	}
 
-	gobj = lsdc_gem_object_create(ddev, domain, size, false, NULL, NULL);
+	gobj = lsdc_gem_object_create(ddev, domain, args->size, false, NULL, NULL);
 	if (IS_ERR(gobj)) {
 		drm_err(ddev, "Failed to create gem object\n");
 		return PTR_ERR(gobj);
 	}
 
-	ret = drm_gem_handle_create(file, gobj, &handle);
+	ret = drm_gem_handle_create(file, gobj, &args->handle);
 
 	/* drop reference from allocate, handle holds it now */
 	drm_gem_object_put(gobj);
 	if (ret)
 		return ret;
 
-	args->pitch = pitch;
-	args->size = size;
-	args->handle = handle;
-
 	return 0;
 }
 
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 08:34:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 08:34:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088075.1445901 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up0kW-0004re-6n; Thu, 21 Aug 2025 08:34:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088075.1445901; Thu, 21 Aug 2025 08:34: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 1up0kW-0004rX-40; Thu, 21 Aug 2025 08:34:20 +0000
Received: by outflank-mailman (input) for mailman id 1088075;
 Thu, 21 Aug 2025 08:34:18 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+F7x=3B=suse.de=tzimmermann@srs-se1.protection.inumbo.net>)
 id 1up0Ze-0001aA-7C
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 08:23:06 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 086d817a-7e68-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 10:22:53 +0200 (CEST)
Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id B1DB222640;
 Thu, 21 Aug 2025 08:22:24 +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 0EC0F139A8;
 Thu, 21 Aug 2025 08:22:24 +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 oC1sAkDXpmhzEwAAD6G6ig
 (envelope-from <tzimmermann@suse.de>); Thu, 21 Aug 2025 08:22: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>
X-Inumbo-ID: 086d817a-7e68-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764545; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=tTaYlAfEhcn2uVekR/eKyCCb0utiuEYUU2dpdG6hXIE=;
	b=bklQX2cyfppgubhd5umSRAHdcm/XcvRwg6R+n9OksOXJiVn5h0ZMuCAFugIKwxWROwVf7U
	V9MV/ujYHAOKPDm9ZLnG9A0hH/c8r43L/CZmvQwjFG8Yw2MDHYDkLNNPuR4pyOohjZBAD5
	Oq/b+RmN7MRI6QkvGNvh57WBWQSAVZg=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764545;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=tTaYlAfEhcn2uVekR/eKyCCb0utiuEYUU2dpdG6hXIE=;
	b=j3gK261m5hjFv0Y6LjNnygUwZVWqxy5vssVmy45dz9wmbCarr2lS50P5go19jXvj+zJRrV
	Z6CnRgsUM2eSKZCg==
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764544; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=tTaYlAfEhcn2uVekR/eKyCCb0utiuEYUU2dpdG6hXIE=;
	b=BjkF4PHT8pFBKWiSABwlYaWfA3a/b4PtoSpXxItlCSY5UcAbiyKw7AOhqLDbV7xZuBHwRD
	CmvSVxfg15rNpHaYZixmb0BEDDskSPaEW2YigEmwFq+Wy28M2CTrfaGImFbaZwQ/TAD53c
	d2qhCQY//9VAr/SSYyElyp0DGG1dJ10=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764544;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=tTaYlAfEhcn2uVekR/eKyCCb0utiuEYUU2dpdG6hXIE=;
	b=af8ECZUQi+6sLdcOKjYsVcJw/v2UWppwZZT7g9dY7W/ncsuDkQekKIWdNq0dQA5ciIDcON
	AYhl90JkKHx5CtDg==
From: Thomas Zimmermann <tzimmermann@suse.de>
To: simona@ffwll.ch,
	airlied@gmail.com,
	mripard@kernel.org,
	maarten.lankhorst@linux.intel.com,
	geert@linux-m68k.org,
	tomi.valkeinen@ideasonboard.com
Cc: dri-devel@lists.freedesktop.org,
	linux-mediatek@lists.infradead.org,
	freedreno@lists.freedesktop.org,
	linux-arm-msm@vger.kernel.org,
	imx@lists.linux.dev,
	linux-samsung-soc@vger.kernel.org,
	nouveau@lists.freedesktop.org,
	virtualization@lists.linux.dev,
	spice-devel@lists.freedesktop.org,
	linux-renesas-soc@vger.kernel.org,
	linux-rockchip@lists.infradead.org,
	linux-tegra@vger.kernel.org,
	intel-xe@lists.freedesktop.org,
	xen-devel@lists.xenproject.org,
	Thomas Zimmermann <tzimmermann@suse.de>,
	David Airlie <airlied@redhat.com>,
	Gerd Hoffmann <kraxel@redhat.com>,
	Gurchetan Singh <gurchetansingh@chromium.org>,
	Chia-I Wu <olvaffe@gmail.com>
Subject: [PATCH v6 21/25] drm/virtio: Compute dumb-buffer sizes with drm_mode_size_dumb()
Date: Thu, 21 Aug 2025 10:17:28 +0200
Message-ID: <20250821081918.79786-22-tzimmermann@suse.de>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250821081918.79786-1-tzimmermann@suse.de>
References: <20250821081918.79786-1-tzimmermann@suse.de>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-1.30 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	SUSPICIOUS_RECIPS(1.50)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MID_CONTAINS_FROM(1.00)[];
	R_MISSING_CHARSET(0.50)[];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:mid,suse.de:email];
	ARC_NA(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	RCPT_COUNT_TWELVE(0.00)[25];
	MIME_TRACE(0.00)[0:+];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	FREEMAIL_CC(0.00)[lists.freedesktop.org,lists.infradead.org,vger.kernel.org,lists.linux.dev,lists.xenproject.org,suse.de,redhat.com,chromium.org,gmail.com];
	FREEMAIL_TO(0.00)[ffwll.ch,gmail.com,kernel.org,linux.intel.com,linux-m68k.org,ideasonboard.com];
	RCVD_COUNT_TWO(0.00)[2];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	TO_DN_SOME(0.00)[];
	DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	FREEMAIL_ENVRCPT(0.00)[gmail.com]
X-Spam-Flag: NO
X-Spam-Level: 
X-Spam-Score: -1.30

Call drm_mode_size_dumb() to compute dumb-buffer scanline pitch and
buffer size. Align the pitch to a multiple of 4.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@redhat.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Gurchetan Singh <gurchetansingh@chromium.org>
Cc: Chia-I Wu <olvaffe@gmail.com>
---
 drivers/gpu/drm/virtio/virtgpu_gem.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/virtio/virtgpu_gem.c b/drivers/gpu/drm/virtio/virtgpu_gem.c
index 90c99d83c4cf..7e515d6e781d 100644
--- a/drivers/gpu/drm/virtio/virtgpu_gem.c
+++ b/drivers/gpu/drm/virtio/virtgpu_gem.c
@@ -23,6 +23,7 @@
  * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  */
 
+#include <drm/drm_dumb_buffers.h>
 #include <drm/drm_file.h>
 #include <drm/drm_fourcc.h>
 
@@ -66,15 +67,14 @@ int virtio_gpu_mode_dumb_create(struct drm_file *file_priv,
 	struct virtio_gpu_object_params params = { 0 };
 	struct virtio_gpu_device *vgdev = dev->dev_private;
 	int ret;
-	uint32_t pitch;
+
+	ret = drm_mode_size_dumb(dev, args, SZ_4, 0);
+	if (ret)
+		return ret;
 
 	if (args->bpp != 32)
 		return -EINVAL;
 
-	pitch = args->width * 4;
-	args->size = pitch * args->height;
-	args->size = ALIGN(args->size, PAGE_SIZE);
-
 	params.format = virtio_gpu_translate_format(DRM_FORMAT_HOST_XRGB8888);
 	params.width = args->width;
 	params.height = args->height;
@@ -92,7 +92,6 @@ int virtio_gpu_mode_dumb_create(struct drm_file *file_priv,
 	if (ret)
 		goto fail;
 
-	args->pitch = pitch;
 	return ret;
 
 fail:
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 08:34:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 08:34:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088105.1445911 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up0l6-0005nl-F6; Thu, 21 Aug 2025 08:34:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088105.1445911; Thu, 21 Aug 2025 08:34: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 1up0l6-0005nc-CM; Thu, 21 Aug 2025 08:34:56 +0000
Received: by outflank-mailman (input) for mailman id 1088105;
 Thu, 21 Aug 2025 08:34:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+F7x=3B=suse.de=tzimmermann@srs-se1.protection.inumbo.net>)
 id 1up0ZO-0001aB-Um
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 08:22:50 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0328ed1c-7e68-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 10:22:44 +0200 (CEST)
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 F3BC71F846;
 Thu, 21 Aug 2025 08:22:20 +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 79266139A8;
 Thu, 21 Aug 2025 08:22:20 +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 OGFjHDzXpmhzEwAAD6G6ig
 (envelope-from <tzimmermann@suse.de>); Thu, 21 Aug 2025 08:22: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>
X-Inumbo-ID: 0328ed1c-7e68-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764541; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=GLGhV+XaUo5vIwcaERE5vtMc0qiqKVdW6Sd6WsUuyCY=;
	b=Spc54SMXqWsCRPExIv8+LK+ZaQrTbQddcIU9iPXKJ0Wvj1DWyBCpOs+dV3qR8bh3daPbuZ
	bkqsSHIY0D4e8P1TRqoOkKh1P+TCKqTglc1UvzsQ29n3DGukYtkfZwD+8Is0OmvW9S8u9m
	7lfACwke8TyoV7TiPIzDXmPlAif+y+4=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764541;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=GLGhV+XaUo5vIwcaERE5vtMc0qiqKVdW6Sd6WsUuyCY=;
	b=Kk54utJ3p+S/vf5VwVIjNq0tKVEOsmXLYGFM+7foWe1Wl5UAXUJuBdbVRN/i8u/LYDaFye
	R9sWNs1EoG2NF/AQ==
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764541; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=GLGhV+XaUo5vIwcaERE5vtMc0qiqKVdW6Sd6WsUuyCY=;
	b=Spc54SMXqWsCRPExIv8+LK+ZaQrTbQddcIU9iPXKJ0Wvj1DWyBCpOs+dV3qR8bh3daPbuZ
	bkqsSHIY0D4e8P1TRqoOkKh1P+TCKqTglc1UvzsQ29n3DGukYtkfZwD+8Is0OmvW9S8u9m
	7lfACwke8TyoV7TiPIzDXmPlAif+y+4=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764541;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=GLGhV+XaUo5vIwcaERE5vtMc0qiqKVdW6Sd6WsUuyCY=;
	b=Kk54utJ3p+S/vf5VwVIjNq0tKVEOsmXLYGFM+7foWe1Wl5UAXUJuBdbVRN/i8u/LYDaFye
	R9sWNs1EoG2NF/AQ==
From: Thomas Zimmermann <tzimmermann@suse.de>
To: simona@ffwll.ch,
	airlied@gmail.com,
	mripard@kernel.org,
	maarten.lankhorst@linux.intel.com,
	geert@linux-m68k.org,
	tomi.valkeinen@ideasonboard.com
Cc: dri-devel@lists.freedesktop.org,
	linux-mediatek@lists.infradead.org,
	freedreno@lists.freedesktop.org,
	linux-arm-msm@vger.kernel.org,
	imx@lists.linux.dev,
	linux-samsung-soc@vger.kernel.org,
	nouveau@lists.freedesktop.org,
	virtualization@lists.linux.dev,
	spice-devel@lists.freedesktop.org,
	linux-renesas-soc@vger.kernel.org,
	linux-rockchip@lists.infradead.org,
	linux-tegra@vger.kernel.org,
	intel-xe@lists.freedesktop.org,
	xen-devel@lists.xenproject.org,
	Thomas Zimmermann <tzimmermann@suse.de>
Subject: [PATCH v6 15/25] drm/omapdrm: Compute dumb-buffer sizes with drm_mode_size_dumb()
Date: Thu, 21 Aug 2025 10:17:22 +0200
Message-ID: <20250821081918.79786-16-tzimmermann@suse.de>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250821081918.79786-1-tzimmermann@suse.de>
References: <20250821081918.79786-1-tzimmermann@suse.de>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: 
X-Spamd-Result: default: False [-1.30 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	SUSPICIOUS_RECIPS(1.50)[];
	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];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:email,suse.de:mid];
	FREEMAIL_TO(0.00)[ffwll.ch,gmail.com,kernel.org,linux.intel.com,linux-m68k.org,ideasonboard.com];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	ARC_NA(0.00)[];
	MIME_TRACE(0.00)[0:+];
	RCPT_COUNT_TWELVE(0.00)[21];
	DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FROM_HAS_DN(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	R_RATELIMIT(0.00)[to_ip_from(RLqirfcw6gnbcr9a9yhi49fhi6),to(RLbwen1niosrcqbxsafh1)];
	TO_DN_SOME(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	FREEMAIL_ENVRCPT(0.00)[gmail.com]
X-Spam-Flag: NO
X-Spam-Score: -1.30

Call drm_mode_size_dumb() to compute dumb-buffer scanline pitch and
buffer size. Align the pitch to a multiple of 8.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Cc: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
---
 drivers/gpu/drm/omapdrm/omap_gem.c | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/omapdrm/omap_gem.c b/drivers/gpu/drm/omapdrm/omap_gem.c
index 381552bfb409..78563a8d8732 100644
--- a/drivers/gpu/drm/omapdrm/omap_gem.c
+++ b/drivers/gpu/drm/omapdrm/omap_gem.c
@@ -10,6 +10,7 @@
 #include <linux/spinlock.h>
 #include <linux/vmalloc.h>
 
+#include <drm/drm_dumb_buffers.h>
 #include <drm/drm_prime.h>
 #include <drm/drm_vma_manager.h>
 
@@ -580,15 +581,13 @@ static int omap_gem_object_mmap(struct drm_gem_object *obj, struct vm_area_struc
 int omap_gem_dumb_create(struct drm_file *file, struct drm_device *dev,
 		struct drm_mode_create_dumb *args)
 {
-	union omap_gem_size gsize;
-
-	args->pitch = DIV_ROUND_UP(args->width * args->bpp, 8);
-
-	args->size = PAGE_ALIGN(args->pitch * args->height);
+	union omap_gem_size gsize = { };
+	int ret;
 
-	gsize = (union omap_gem_size){
-		.bytes = args->size,
-	};
+	ret = drm_mode_size_dumb(dev, args, SZ_8, 0);
+	if (ret)
+		return ret;
+	gsize.bytes = args->size;
 
 	return omap_gem_new_handle(dev, file, gsize,
 			OMAP_BO_SCANOUT | OMAP_BO_WC, &args->handle);
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 08:35:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 08:35:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088112.1445921 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up0lf-0006NR-NF; Thu, 21 Aug 2025 08:35:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088112.1445921; Thu, 21 Aug 2025 08:35: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 1up0lf-0006NK-K6; Thu, 21 Aug 2025 08:35:31 +0000
Received: by outflank-mailman (input) for mailman id 1088112;
 Thu, 21 Aug 2025 08:35:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+F7x=3B=suse.de=tzimmermann@srs-se1.protection.inumbo.net>)
 id 1up0ZJ-0001aB-Tm
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 08:22:45 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 01784338-7e68-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 10:22:41 +0200 (CEST)
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 C694E22649;
 Thu, 21 Aug 2025 08:22: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 4667513867;
 Thu, 21 Aug 2025 08:22: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 YB7CDz7XpmhzEwAAD6G6ig
 (envelope-from <tzimmermann@suse.de>); Thu, 21 Aug 2025 08:22: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>
X-Inumbo-ID: 01784338-7e68-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764543; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=nBh8A449b9pBjsawDYVRKnwfjEEGjHJu27zIKTK/wpc=;
	b=LRzAb7R57dIPJBNXVDpuEfPJGUjHoyB4bgM2Yuu5DtIV6ctgdIIA/5X84NKzczszhZ/Au+
	FVmAUNGuUo4WhWIBbJunQssC8T5RPNNmMJ6iERFX7SDZX4vjSGnicUTNmmChh0Y+mrIjsg
	tn6YaWq9habCgIqj8RRxiewEqYlo3Vk=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764543;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=nBh8A449b9pBjsawDYVRKnwfjEEGjHJu27zIKTK/wpc=;
	b=JGWPm1FvFGwwdeCCIZRDlDEnSy4bftIDBSeEubb3nn19otp/RvZpIo0mtkg39koZG38iAX
	WBSwJilZ9RQp9UCQ==
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.de header.s=susede2_rsa header.b=Rh8a0iic;
	dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=eQhNQcBl
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764542; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=nBh8A449b9pBjsawDYVRKnwfjEEGjHJu27zIKTK/wpc=;
	b=Rh8a0iicg4WusmzRzMqJbXSRD5qO/Nt6aPBG5LEwwdhrTy6kP21RDFbM2bJ6Ko1b5mqGQu
	rKVVFeCxIfg53dzI82VkaIYmQCk2b7ZyFhnVez40mgNsyv+RY49gmyc8SjiDqzgKZ6k3N2
	ts0GTqLVOdokbHXNcBtRzr+VZfd0LnA=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764542;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=nBh8A449b9pBjsawDYVRKnwfjEEGjHJu27zIKTK/wpc=;
	b=eQhNQcBlgIDC9EwYXWg4r8RwMrmUn4Pd8NPToetKEgsXMvN+pAg0A/PKgqOQEgHsczB56h
	pNjH5rbofi6r0hAA==
From: Thomas Zimmermann <tzimmermann@suse.de>
To: simona@ffwll.ch,
	airlied@gmail.com,
	mripard@kernel.org,
	maarten.lankhorst@linux.intel.com,
	geert@linux-m68k.org,
	tomi.valkeinen@ideasonboard.com
Cc: dri-devel@lists.freedesktop.org,
	linux-mediatek@lists.infradead.org,
	freedreno@lists.freedesktop.org,
	linux-arm-msm@vger.kernel.org,
	imx@lists.linux.dev,
	linux-samsung-soc@vger.kernel.org,
	nouveau@lists.freedesktop.org,
	virtualization@lists.linux.dev,
	spice-devel@lists.freedesktop.org,
	linux-renesas-soc@vger.kernel.org,
	linux-rockchip@lists.infradead.org,
	linux-tegra@vger.kernel.org,
	intel-xe@lists.freedesktop.org,
	xen-devel@lists.xenproject.org,
	Thomas Zimmermann <tzimmermann@suse.de>,
	Biju Das <biju.das.jz@bp.renesas.com>
Subject: [PATCH v6 18/25] drm/renesas/rz-du: Compute dumb-buffer sizes with drm_mode_size_dumb()
Date: Thu, 21 Aug 2025 10:17:25 +0200
Message-ID: <20250821081918.79786-19-tzimmermann@suse.de>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250821081918.79786-1-tzimmermann@suse.de>
References: <20250821081918.79786-1-tzimmermann@suse.de>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-1.51 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	SUSPICIOUS_RECIPS(1.50)[];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	ARC_NA(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[renesas.com:email,suse.de:mid,suse.de:dkim,suse.de:email];
	MIME_TRACE(0.00)[0:+];
	RCVD_TLS_ALL(0.00)[];
	RCPT_COUNT_TWELVE(0.00)[22];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	FREEMAIL_TO(0.00)[ffwll.ch,gmail.com,kernel.org,linux.intel.com,linux-m68k.org,ideasonboard.com];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FREEMAIL_ENVRCPT(0.00)[gmail.com];
	DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	FROM_HAS_DN(0.00)[];
	TO_DN_SOME(0.00)[];
	DKIM_TRACE(0.00)[suse.de:+]
X-Spam-Flag: NO
X-Spam-Level: 
X-Rspamd-Queue-Id: C694E22649
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Rspamd-Action: no action
X-Spam-Score: -1.51

Call drm_mode_size_dumb() to compute dumb-buffer scanline pitch and
buffer size. Align the pitch according to hardware requirements.

v5:
- include dumb-buffers header for drm_mode_size_dumb() (kernel test robot)

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Cc: Biju Das <biju.das.jz@bp.renesas.com>
---
 drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c b/drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c
index 87f171145a23..5fcade2b6054 100644
--- a/drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c
+++ b/drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c
@@ -11,6 +11,7 @@
 #include <drm/drm_atomic_helper.h>
 #include <drm/drm_crtc.h>
 #include <drm/drm_device.h>
+#include <drm/drm_dumb_buffers.h>
 #include <drm/drm_framebuffer.h>
 #include <drm/drm_gem_dma_helper.h>
 #include <drm/drm_gem_framebuffer_helper.h>
@@ -181,10 +182,11 @@ const struct rzg2l_du_format_info *rzg2l_du_format_info(u32 fourcc)
 int rzg2l_du_dumb_create(struct drm_file *file, struct drm_device *dev,
 			 struct drm_mode_create_dumb *args)
 {
-	unsigned int min_pitch = DIV_ROUND_UP(args->width * args->bpp, 8);
-	unsigned int align = 16 * args->bpp / 8;
+	int ret;
 
-	args->pitch = roundup(min_pitch, align);
+	ret = drm_mode_size_dumb(dev, args, 16 * args->bpp / 8, 0);
+	if (ret)
+		return ret;
 
 	return drm_gem_dma_dumb_create_internal(file, dev, args);
 }
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 08:35:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 08:35:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088113.1445924 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up0lf-0006RC-Uo; Thu, 21 Aug 2025 08:35:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088113.1445924; Thu, 21 Aug 2025 08:35: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 1up0lf-0006Ph-RV; Thu, 21 Aug 2025 08:35:31 +0000
Received: by outflank-mailman (input) for mailman id 1088113;
 Thu, 21 Aug 2025 08:35:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+F7x=3B=suse.de=tzimmermann@srs-se1.protection.inumbo.net>)
 id 1up0Zl-0001aA-8b
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 08:23:13 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0a2b76c6-7e68-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 10:22:56 +0200 (CEST)
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 692BC1FB65;
 Thu, 21 Aug 2025 08:22:23 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id CD3E8139A8;
 Thu, 21 Aug 2025 08:22: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 0PesMD7XpmhzEwAAD6G6ig
 (envelope-from <tzimmermann@suse.de>); Thu, 21 Aug 2025 08:22: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>
X-Inumbo-ID: 0a2b76c6-7e68-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764543; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=u5+AEmH+qzHnQx6Du9Jd2lQI8ZPqXlMkW0HaOuXapYU=;
	b=jyWmRdyVS6SWIrgsOYhRs9LlvIGSYRJ/MOwdpH6BZS7r9f7AqKAApHfCwAY4utEk/i8fQi
	ja6lr2g7kouZOLWLuDszH45AXU4LQLi7cKqEKBepKmyjJYRNHm3Ke5xDDpGkHFxjSHm0s0
	7mtVly7i6uVHDLFiFnaH11L37NGtQBA=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764543;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=u5+AEmH+qzHnQx6Du9Jd2lQI8ZPqXlMkW0HaOuXapYU=;
	b=HxtrMZ0xISBvzUDDf4B6HiNqPLgsrOM0J+iImirqOuQ7LXjeigfkChT69xMe3GhKAuYd5F
	jWIKRM/gGMqKTpCA==
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764543; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=u5+AEmH+qzHnQx6Du9Jd2lQI8ZPqXlMkW0HaOuXapYU=;
	b=jyWmRdyVS6SWIrgsOYhRs9LlvIGSYRJ/MOwdpH6BZS7r9f7AqKAApHfCwAY4utEk/i8fQi
	ja6lr2g7kouZOLWLuDszH45AXU4LQLi7cKqEKBepKmyjJYRNHm3Ke5xDDpGkHFxjSHm0s0
	7mtVly7i6uVHDLFiFnaH11L37NGtQBA=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764543;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=u5+AEmH+qzHnQx6Du9Jd2lQI8ZPqXlMkW0HaOuXapYU=;
	b=HxtrMZ0xISBvzUDDf4B6HiNqPLgsrOM0J+iImirqOuQ7LXjeigfkChT69xMe3GhKAuYd5F
	jWIKRM/gGMqKTpCA==
From: Thomas Zimmermann <tzimmermann@suse.de>
To: simona@ffwll.ch,
	airlied@gmail.com,
	mripard@kernel.org,
	maarten.lankhorst@linux.intel.com,
	geert@linux-m68k.org,
	tomi.valkeinen@ideasonboard.com
Cc: dri-devel@lists.freedesktop.org,
	linux-mediatek@lists.infradead.org,
	freedreno@lists.freedesktop.org,
	linux-arm-msm@vger.kernel.org,
	imx@lists.linux.dev,
	linux-samsung-soc@vger.kernel.org,
	nouveau@lists.freedesktop.org,
	virtualization@lists.linux.dev,
	spice-devel@lists.freedesktop.org,
	linux-renesas-soc@vger.kernel.org,
	linux-rockchip@lists.infradead.org,
	linux-tegra@vger.kernel.org,
	intel-xe@lists.freedesktop.org,
	xen-devel@lists.xenproject.org,
	Thomas Zimmermann <tzimmermann@suse.de>,
	Heiko Stuebner <heiko@sntech.de>,
	Sandy Huang <hjc@rock-chips.com>,
	Andy Yan <andy.yan@rock-chips.com>
Subject: [PATCH v6 19/25] drm/rockchip: Compute dumb-buffer sizes with drm_mode_size_dumb()
Date: Thu, 21 Aug 2025 10:17:26 +0200
Message-ID: <20250821081918.79786-20-tzimmermann@suse.de>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250821081918.79786-1-tzimmermann@suse.de>
References: <20250821081918.79786-1-tzimmermann@suse.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Spam-Level: 
X-Spamd-Result: default: False [-1.80 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	SUSPICIOUS_RECIPS(1.50)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	TO_DN_SOME(0.00)[];
	ARC_NA(0.00)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	MIME_TRACE(0.00)[0:+];
	RCPT_COUNT_TWELVE(0.00)[24];
	FREEMAIL_ENVRCPT(0.00)[gmail.com];
	R_RATELIMIT(0.00)[to(RLbwen1niosrcqbxsafh1),to_ip_from(RLqirfcw6gnbcr9a9yhi49fhi6)];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	FREEMAIL_TO(0.00)[ffwll.ch,gmail.com,kernel.org,linux.intel.com,linux-m68k.org,ideasonboard.com];
	RCVD_TLS_ALL(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:email,suse.de:mid]
X-Spam-Flag: NO
X-Spam-Score: -1.80

Call drm_mode_size_dumb() to compute dumb-buffer scanline pitch and
buffer size. Align the pitch to a multiple of 64.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Heiko Stuebner <heiko@sntech.de>
Cc: Sandy Huang <hjc@rock-chips.com>
Cc: "Heiko StÃ¼bner" <heiko@sntech.de>
Cc: Andy Yan <andy.yan@rock-chips.com>
---
 drivers/gpu/drm/rockchip/rockchip_drm_gem.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_gem.c b/drivers/gpu/drm/rockchip/rockchip_drm_gem.c
index 6330b883efc3..3bd06202e232 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_gem.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_gem.c
@@ -9,6 +9,7 @@
 #include <linux/vmalloc.h>
 
 #include <drm/drm.h>
+#include <drm/drm_dumb_buffers.h>
 #include <drm/drm_fb_helper.h>
 #include <drm/drm_gem.h>
 #include <drm/drm_gem_dma_helper.h>
@@ -403,13 +404,12 @@ int rockchip_gem_dumb_create(struct drm_file *file_priv,
 			     struct drm_mode_create_dumb *args)
 {
 	struct rockchip_gem_object *rk_obj;
-	int min_pitch = DIV_ROUND_UP(args->width * args->bpp, 8);
+	int ret;
 
-	/*
-	 * align to 64 bytes since Mali requires it.
-	 */
-	args->pitch = ALIGN(min_pitch, 64);
-	args->size = args->pitch * args->height;
+	/* 64-byte alignment required by Mali */
+	ret = drm_mode_size_dumb(dev, args, SZ_64, 0);
+	if (ret)
+		return ret;
 
 	rk_obj = rockchip_gem_create_with_handle(file_priv, dev, args->size,
 						 &args->handle);
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 08:35:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 08:35:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088117.1445941 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up0lh-0006qB-9c; Thu, 21 Aug 2025 08:35:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088117.1445941; Thu, 21 Aug 2025 08:35:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up0lh-0006q2-6E; Thu, 21 Aug 2025 08:35:33 +0000
Received: by outflank-mailman (input) for mailman id 1088117;
 Thu, 21 Aug 2025 08:35:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+F7x=3B=suse.de=tzimmermann@srs-se1.protection.inumbo.net>)
 id 1up0ZR-0001aB-V6
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 08:22:53 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de
 [2a07:de40:b251:101:10:150:64:1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 04560a45-7e68-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 10:22:46 +0200 (CEST)
Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 0861D2264F;
 Thu, 21 Aug 2025 08:22:24 +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 6E90613AB7;
 Thu, 21 Aug 2025 08:22:23 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id QM3EGT/XpmhzEwAAD6G6ig
 (envelope-from <tzimmermann@suse.de>); Thu, 21 Aug 2025 08:22: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>
X-Inumbo-ID: 04560a45-7e68-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764544; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=N0hUhOL8OEDGTSoY8dJmhtx0oObts8atje33DKIE3YE=;
	b=GgC4MU4NSTmK080keMkPXFD7iNPeWocWyXIkOUsAPDLhPUFgiCurPSPDPnS71UNlbgNov2
	E7BYD1WlsiieeNU08qzSp0xYMBTZzlRST/lL02qlNhoTKDUmOD1HUPT9SOy5GI+ls5Ho5g
	Dxl2lsDaJE9Yxl8ClTmAAG7+e3khh8I=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764544;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=N0hUhOL8OEDGTSoY8dJmhtx0oObts8atje33DKIE3YE=;
	b=ENmftYPKsykS+zfJX2g3eGwG8Avol3XHVncn3y2rJ7HnkTtSleYDrtXgBN5aczupmPGyKq
	66LRLlWWnWFVr/Cw==
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764544; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=N0hUhOL8OEDGTSoY8dJmhtx0oObts8atje33DKIE3YE=;
	b=GgC4MU4NSTmK080keMkPXFD7iNPeWocWyXIkOUsAPDLhPUFgiCurPSPDPnS71UNlbgNov2
	E7BYD1WlsiieeNU08qzSp0xYMBTZzlRST/lL02qlNhoTKDUmOD1HUPT9SOy5GI+ls5Ho5g
	Dxl2lsDaJE9Yxl8ClTmAAG7+e3khh8I=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764544;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=N0hUhOL8OEDGTSoY8dJmhtx0oObts8atje33DKIE3YE=;
	b=ENmftYPKsykS+zfJX2g3eGwG8Avol3XHVncn3y2rJ7HnkTtSleYDrtXgBN5aczupmPGyKq
	66LRLlWWnWFVr/Cw==
From: Thomas Zimmermann <tzimmermann@suse.de>
To: simona@ffwll.ch,
	airlied@gmail.com,
	mripard@kernel.org,
	maarten.lankhorst@linux.intel.com,
	geert@linux-m68k.org,
	tomi.valkeinen@ideasonboard.com
Cc: dri-devel@lists.freedesktop.org,
	linux-mediatek@lists.infradead.org,
	freedreno@lists.freedesktop.org,
	linux-arm-msm@vger.kernel.org,
	imx@lists.linux.dev,
	linux-samsung-soc@vger.kernel.org,
	nouveau@lists.freedesktop.org,
	virtualization@lists.linux.dev,
	spice-devel@lists.freedesktop.org,
	linux-renesas-soc@vger.kernel.org,
	linux-rockchip@lists.infradead.org,
	linux-tegra@vger.kernel.org,
	intel-xe@lists.freedesktop.org,
	xen-devel@lists.xenproject.org,
	Thomas Zimmermann <tzimmermann@suse.de>,
	Thierry Reding <treding@nvidia.com>,
	Thierry Reding <thierry.reding@gmail.com>,
	Mikko Perttunen <mperttunen@nvidia.com>
Subject: [PATCH v6 20/25] drm/tegra: Compute dumb-buffer sizes with drm_mode_size_dumb()
Date: Thu, 21 Aug 2025 10:17:27 +0200
Message-ID: <20250821081918.79786-21-tzimmermann@suse.de>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250821081918.79786-1-tzimmermann@suse.de>
References: <20250821081918.79786-1-tzimmermann@suse.de>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: 
X-Spamd-Result: default: False [-1.30 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	SUSPICIOUS_RECIPS(1.50)[];
	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];
	FREEMAIL_TO(0.00)[ffwll.ch,gmail.com,kernel.org,linux.intel.com,linux-m68k.org,ideasonboard.com];
	RCPT_COUNT_TWELVE(0.00)[24];
	MIME_TRACE(0.00)[0:+];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	ARC_NA(0.00)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	FREEMAIL_CC(0.00)[lists.freedesktop.org,lists.infradead.org,vger.kernel.org,lists.linux.dev,lists.xenproject.org,suse.de,nvidia.com,gmail.com];
	RCVD_TLS_ALL(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	TO_DN_SOME(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:email,suse.de:mid];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	TAGGED_RCPT(0.00)[];
	R_RATELIMIT(0.00)[to_ip_from(RLqirfcw6gnbcr9a9yhi49fhi6),to(RLbwen1niosrcqbxsafh1)];
	FREEMAIL_ENVRCPT(0.00)[gmail.com]
X-Spam-Flag: NO
X-Spam-Score: -1.30

Call drm_mode_size_dumb() to compute dumb-buffer scanline pitch and
buffer size. Align the pitch according to hardware requirements.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Thierry Reding <treding@nvidia.com>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: Mikko Perttunen <mperttunen@nvidia.com>
---
 drivers/gpu/drm/tegra/gem.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/tegra/gem.c b/drivers/gpu/drm/tegra/gem.c
index 41a285ec889f..84719c9d8720 100644
--- a/drivers/gpu/drm/tegra/gem.c
+++ b/drivers/gpu/drm/tegra/gem.c
@@ -16,6 +16,7 @@
 #include <linux/vmalloc.h>
 
 #include <drm/drm_drv.h>
+#include <drm/drm_dumb_buffers.h>
 #include <drm/drm_prime.h>
 
 #include "drm.h"
@@ -542,12 +543,13 @@ void tegra_bo_free_object(struct drm_gem_object *gem)
 int tegra_bo_dumb_create(struct drm_file *file, struct drm_device *drm,
 			 struct drm_mode_create_dumb *args)
 {
-	unsigned int min_pitch = DIV_ROUND_UP(args->width * args->bpp, 8);
 	struct tegra_drm *tegra = drm->dev_private;
 	struct tegra_bo *bo;
+	int ret;
 
-	args->pitch = round_up(min_pitch, tegra->pitch_align);
-	args->size = args->pitch * args->height;
+	ret = drm_mode_size_dumb(drm, args, tegra->pitch_align, 0);
+	if (ret)
+		return ret;
 
 	bo = tegra_bo_create_with_handle(file, drm, args->size, 0,
 					 &args->handle);
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 08:35:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 08:35:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088124.1445951 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up0lt-0007Pv-GU; Thu, 21 Aug 2025 08:35:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088124.1445951; Thu, 21 Aug 2025 08:35:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up0lt-0007Po-DE; Thu, 21 Aug 2025 08:35:45 +0000
Received: by outflank-mailman (input) for mailman id 1088124;
 Thu, 21 Aug 2025 08:35:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+F7x=3B=suse.de=tzimmermann@srs-se1.protection.inumbo.net>)
 id 1up0Zp-0001aA-9F
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 08:23:17 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de
 [2a07:de40:b251:101:10:150:64:2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0c03b7df-7e68-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 10:22:59 +0200 (CEST)
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 E92901F836;
 Thu, 21 Aug 2025 08:22:25 +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 4D34B13AB7;
 Thu, 21 Aug 2025 08:22:25 +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 MG6qEUHXpmhzEwAAD6G6ig
 (envelope-from <tzimmermann@suse.de>); Thu, 21 Aug 2025 08:22: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>
X-Inumbo-ID: 0c03b7df-7e68-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764546; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=hHo3GRIYvA9xU1xmUh5J3OGK8ZZKXekovTY6CDupMA0=;
	b=ybImOkpcCpGMVxoLCfs7DwHB3NQdAM6I5GB2dIe6ycgAYybGRiSTDUQGrLPrf1H97wSjVA
	jhAbOmccATonq4vNgnOBuUO59Ci4oJ5pRTUwaeRaB4io3FsQx+NHOad1Zcjr8yUUN8RYOZ
	pg582KlEehqbsVla3Y2t9WJzQ3fZoPc=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764546;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=hHo3GRIYvA9xU1xmUh5J3OGK8ZZKXekovTY6CDupMA0=;
	b=pD0tD8nN42FoPTaMyUjCINwzI0MpsU3LtNHox/MXc+Z0lucytTbAGyUPhlQvkL7ZXWFI+J
	KtlEgL0+SWpNUxBw==
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.de header.s=susede2_rsa header.b=WuVYjXJ7;
	dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=fIo7TsGz
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764545; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=hHo3GRIYvA9xU1xmUh5J3OGK8ZZKXekovTY6CDupMA0=;
	b=WuVYjXJ71ED17c9hj+XQLHQqWo7JmkkpelMz+gFtRa2o6XsakpdrrpVoAcGNRxrW5NRkJl
	E4ffL/nvf+Gr6ZqhnglArODgYcAQFgTH6DQUSKF81qzdvXsnXNIxOvxDcebwm+emQGVPgn
	G0hjA2/yDtCBP+UN5eHogvMRDLMx+14=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764545;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=hHo3GRIYvA9xU1xmUh5J3OGK8ZZKXekovTY6CDupMA0=;
	b=fIo7TsGzjwqszL/iU4SWJUBO0+5gStXtbBBikqOldRND3ePvehIOlQtLSoVuimz0Kwy3yW
	0tQm9znLDnDLgwAg==
From: Thomas Zimmermann <tzimmermann@suse.de>
To: simona@ffwll.ch,
	airlied@gmail.com,
	mripard@kernel.org,
	maarten.lankhorst@linux.intel.com,
	geert@linux-m68k.org,
	tomi.valkeinen@ideasonboard.com
Cc: dri-devel@lists.freedesktop.org,
	linux-mediatek@lists.infradead.org,
	freedreno@lists.freedesktop.org,
	linux-arm-msm@vger.kernel.org,
	imx@lists.linux.dev,
	linux-samsung-soc@vger.kernel.org,
	nouveau@lists.freedesktop.org,
	virtualization@lists.linux.dev,
	spice-devel@lists.freedesktop.org,
	linux-renesas-soc@vger.kernel.org,
	linux-rockchip@lists.infradead.org,
	linux-tegra@vger.kernel.org,
	intel-xe@lists.freedesktop.org,
	xen-devel@lists.xenproject.org,
	Thomas Zimmermann <tzimmermann@suse.de>,
	Matthew Auld <matthew.auld@intel.com>,
	Lucas De Marchi <lucas.demarchi@intel.com>,
	=?UTF-8?q?Thomas=20Hellstr=C3=B6m?= <thomas.hellstrom@linux.intel.com>,
	Rodrigo Vivi <rodrigo.vivi@intel.com>
Subject: [PATCH v6 23/25] drm/xe: Compute dumb-buffer sizes with drm_mode_size_dumb()
Date: Thu, 21 Aug 2025 10:17:30 +0200
Message-ID: <20250821081918.79786-24-tzimmermann@suse.de>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250821081918.79786-1-tzimmermann@suse.de>
References: <20250821081918.79786-1-tzimmermann@suse.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Spam-Level: 
X-Spam-Flag: NO
X-Rspamd-Queue-Id: E92901F836
X-Rspamd-Action: no action
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org
X-Spamd-Result: default: False [-2.01 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	SUSPICIOUS_RECIPS(1.50)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MID_CONTAINS_FROM(1.00)[];
	R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	ARC_NA(0.00)[];
	DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	RCPT_COUNT_TWELVE(0.00)[25];
	MIME_TRACE(0.00)[0:+];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	FREEMAIL_TO(0.00)[ffwll.ch,gmail.com,kernel.org,linux.intel.com,linux-m68k.org,ideasonboard.com];
	FREEMAIL_ENVRCPT(0.00)[gmail.com];
	RCVD_TLS_ALL(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	TO_DN_SOME(0.00)[];
	DWL_DNSWL_BLOCKED(0.00)[suse.de:dkim];
	R_RATELIMIT(0.00)[to(RLbwen1niosrcqbxsafh1),to_ip_from(RLqtkr6cif1ebgurukgmwdm7xc)];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	DKIM_TRACE(0.00)[suse.de:+];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:dkim,suse.de:mid,suse.de:email,intel.com:email]
X-Spam-Score: -2.01

Call drm_mode_size_dumb() to compute dumb-buffer scanline pitch
and buffer size. Align the pitch to a multiple of 8. Align the
buffer size according to hardware requirements.

Xe's internal calculation allowed for 64-bit wide buffer sizes, but
the ioctl's internal checks always verified against 32-bit wide limits.
Hance, it is safe to limit the driver code to 32-bit calculations as
well.

v3:
- mention 32-bit calculation in commit description (Matthew)

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: "Thomas HellstrÃ¶m" <thomas.hellstrom@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
 drivers/gpu/drm/xe/xe_bo.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_bo.c b/drivers/gpu/drm/xe/xe_bo.c
index 6fea39842e1e..2be7a618165a 100644
--- a/drivers/gpu/drm/xe/xe_bo.c
+++ b/drivers/gpu/drm/xe/xe_bo.c
@@ -9,6 +9,7 @@
 #include <linux/nospec.h>
 
 #include <drm/drm_drv.h>
+#include <drm/drm_dumb_buffers.h>
 #include <drm/drm_gem_ttm_helper.h>
 #include <drm/drm_managed.h>
 #include <drm/ttm/ttm_backup.h>
@@ -3130,14 +3131,13 @@ int xe_bo_dumb_create(struct drm_file *file_priv,
 	struct xe_device *xe = to_xe_device(dev);
 	struct xe_bo *bo;
 	uint32_t handle;
-	int cpp = DIV_ROUND_UP(args->bpp, 8);
 	int err;
 	u32 page_size = max_t(u32, PAGE_SIZE,
 		xe->info.vram_flags & XE_VRAM_FLAGS_NEED64K ? SZ_64K : SZ_4K);
 
-	args->pitch = ALIGN(args->width * cpp, 64);
-	args->size = ALIGN(mul_u32_u32(args->pitch, args->height),
-			   page_size);
+	err = drm_mode_size_dumb(dev, args, SZ_64, page_size);
+	if (err)
+		return err;
 
 	bo = xe_bo_create_user(xe, NULL, NULL, args->size,
 			       DRM_XE_GEM_CPU_CACHING_WC,
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 08:35:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 08:35:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088132.1445961 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up0ly-0007tz-NP; Thu, 21 Aug 2025 08:35:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088132.1445961; Thu, 21 Aug 2025 08:35:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up0ly-0007tq-Jc; Thu, 21 Aug 2025 08:35:50 +0000
Received: by outflank-mailman (input) for mailman id 1088132;
 Thu, 21 Aug 2025 08:35:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+F7x=3B=suse.de=tzimmermann@srs-se1.protection.inumbo.net>)
 id 1up0Ze-0001aB-Vs
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 08:23:06 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 07c3d5ea-7e68-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 10:22:52 +0200 (CEST)
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 4B3BA1F83E;
 Thu, 21 Aug 2025 08:22: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 9A6F4139A8;
 Thu, 21 Aug 2025 08:22:21 +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 EM+DJD3XpmhzEwAAD6G6ig
 (envelope-from <tzimmermann@suse.de>); Thu, 21 Aug 2025 08:22: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>
X-Inumbo-ID: 07c3d5ea-7e68-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764542; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=xijqT1x/c6ExTCIr+MaR/AHlHHs2pRlUXr04ECasbYs=;
	b=p4vOr178hGSJT9SO2wfic7PcaihKyqBMgkjUUclhCRkVzJNfej6t/ogWnPwmPFAwltUrQ/
	zQrnisbydUKEFcYZxE9fOYmXvern68yi4E7DGYFxPdb9dlA23aGaIZYviWGMB+s5JUcgW7
	GGVpmcPVjIg7GWpXlCayEF6zZpo6YHw=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764542;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=xijqT1x/c6ExTCIr+MaR/AHlHHs2pRlUXr04ECasbYs=;
	b=CSG9dMpHynGwEqa2ibkqqxhnKlhelvv6YUbArTPtcqYyCgB80ZQodTgpzlHkD821PVT0Bz
	wWbYpooL5Fpw4yCQ==
Authentication-Results: smtp-out2.suse.de;
	dkim=pass header.d=suse.de header.s=susede2_rsa header.b=p4vOr178;
	dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=CSG9dMpH
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764542; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=xijqT1x/c6ExTCIr+MaR/AHlHHs2pRlUXr04ECasbYs=;
	b=p4vOr178hGSJT9SO2wfic7PcaihKyqBMgkjUUclhCRkVzJNfej6t/ogWnPwmPFAwltUrQ/
	zQrnisbydUKEFcYZxE9fOYmXvern68yi4E7DGYFxPdb9dlA23aGaIZYviWGMB+s5JUcgW7
	GGVpmcPVjIg7GWpXlCayEF6zZpo6YHw=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764542;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=xijqT1x/c6ExTCIr+MaR/AHlHHs2pRlUXr04ECasbYs=;
	b=CSG9dMpHynGwEqa2ibkqqxhnKlhelvv6YUbArTPtcqYyCgB80ZQodTgpzlHkD821PVT0Bz
	wWbYpooL5Fpw4yCQ==
From: Thomas Zimmermann <tzimmermann@suse.de>
To: simona@ffwll.ch,
	airlied@gmail.com,
	mripard@kernel.org,
	maarten.lankhorst@linux.intel.com,
	geert@linux-m68k.org,
	tomi.valkeinen@ideasonboard.com
Cc: dri-devel@lists.freedesktop.org,
	linux-mediatek@lists.infradead.org,
	freedreno@lists.freedesktop.org,
	linux-arm-msm@vger.kernel.org,
	imx@lists.linux.dev,
	linux-samsung-soc@vger.kernel.org,
	nouveau@lists.freedesktop.org,
	virtualization@lists.linux.dev,
	spice-devel@lists.freedesktop.org,
	linux-renesas-soc@vger.kernel.org,
	linux-rockchip@lists.infradead.org,
	linux-tegra@vger.kernel.org,
	intel-xe@lists.freedesktop.org,
	xen-devel@lists.xenproject.org,
	Thomas Zimmermann <tzimmermann@suse.de>,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>,
	Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>,
	Tomi Valkeinen <tomi.valkeinen+renesas@ideasonboard.com>
Subject: [PATCH v6 17/25] drm/renesas/rcar-du: Compute dumb-buffer sizes with drm_mode_size_dumb()
Date: Thu, 21 Aug 2025 10:17:24 +0200
Message-ID: <20250821081918.79786-18-tzimmermann@suse.de>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250821081918.79786-1-tzimmermann@suse.de>
References: <20250821081918.79786-1-tzimmermann@suse.de>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-1.51 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	SUSPICIOUS_RECIPS(1.50)[];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	RCPT_COUNT_TWELVE(0.00)[25];
	MIME_TRACE(0.00)[0:+];
	DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	ARC_NA(0.00)[];
	FREEMAIL_TO(0.00)[ffwll.ch,gmail.com,kernel.org,linux.intel.com,linux-m68k.org,ideasonboard.com];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	RCVD_TLS_ALL(0.00)[];
	DKIM_TRACE(0.00)[suse.de:+];
	RCVD_COUNT_TWO(0.00)[2];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	TO_DN_SOME(0.00)[];
	TO_MATCH_ENVRCPT_SOME(0.00)[];
	TAGGED_RCPT(0.00)[renesas];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:mid,suse.de:dkim,suse.de:email];
	R_RATELIMIT(0.00)[to_ip_from(RLqtkr6cif1ebgurukgmwdm7xc),to(RLbwen1niosrcqbxsafh1)];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FREEMAIL_ENVRCPT(0.00)[gmail.com]
X-Spam-Flag: NO
X-Spam-Level: 
X-Rspamd-Queue-Id: 4B3BA1F83E
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Rspamd-Action: no action
X-Spam-Score: -1.51

Call drm_mode_size_dumb() to compute dumb-buffer scanline pitch and
buffer size. Align the pitch according to hardware requirements.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen+renesas@ideasonboard.com>
---
 drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c b/drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c
index 216219accfd9..6294443f6068 100644
--- a/drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c
+++ b/drivers/gpu/drm/renesas/rcar-du/rcar_du_kms.c
@@ -11,6 +11,7 @@
 #include <drm/drm_atomic_helper.h>
 #include <drm/drm_crtc.h>
 #include <drm/drm_device.h>
+#include <drm/drm_dumb_buffers.h>
 #include <drm/drm_framebuffer.h>
 #include <drm/drm_gem_dma_helper.h>
 #include <drm/drm_gem_framebuffer_helper.h>
@@ -407,8 +408,8 @@ int rcar_du_dumb_create(struct drm_file *file, struct drm_device *dev,
 			struct drm_mode_create_dumb *args)
 {
 	struct rcar_du_device *rcdu = to_rcar_du_device(dev);
-	unsigned int min_pitch = DIV_ROUND_UP(args->width * args->bpp, 8);
 	unsigned int align;
+	int ret;
 
 	/*
 	 * The R8A7779 DU requires a 16 pixels pitch alignment as documented,
@@ -419,7 +420,9 @@ int rcar_du_dumb_create(struct drm_file *file, struct drm_device *dev,
 	else
 		align = 16 * args->bpp / 8;
 
-	args->pitch = roundup(min_pitch, align);
+	ret = drm_mode_size_dumb(dev, args, align, 0);
+	if (ret)
+		return ret;
 
 	return drm_gem_dma_dumb_create_internal(file, dev, args);
 }
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 08:36:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 08:36:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088148.1445971 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up0mC-0000Hn-VH; Thu, 21 Aug 2025 08:36:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088148.1445971; Thu, 21 Aug 2025 08:36:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up0mC-0000H8-RY; Thu, 21 Aug 2025 08:36:04 +0000
Received: by outflank-mailman (input) for mailman id 1088148;
 Thu, 21 Aug 2025 08:36:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+F7x=3B=suse.de=tzimmermann@srs-se1.protection.inumbo.net>)
 id 1up0Zo-0001aA-8y
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 08:23:16 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0bfe736b-7e68-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 10:22:59 +0200 (CEST)
Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 1F1B92186F;
 Thu, 21 Aug 2025 08:22:27 +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 90CBC139A8;
 Thu, 21 Aug 2025 08:22:26 +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 AO8bIkLXpmhzEwAAD6G6ig
 (envelope-from <tzimmermann@suse.de>); Thu, 21 Aug 2025 08:22:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0bfe736b-7e68-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764547; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=eU7TYaqJ6duBML6uqVqJigVOdQm0L8koItjVVhsfmDY=;
	b=CYfqfqJht5lUOE4zN33sX1KK1JeKs87F5FxRoURqIJ2T5ShyZwV3g4qBgEZ+KqP8nTsFZf
	nLT7rWhlvWkQDn7dQmdhdw/fdrlD1qNCwuZ8v/WulaOXUTCyiF16OT4nbbkwL8PZYvrsh9
	hROe7QacKTe/RBk0/FyjaSo8QRb/I00=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764547;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=eU7TYaqJ6duBML6uqVqJigVOdQm0L8koItjVVhsfmDY=;
	b=+9vMn/zlV0/9G7plhgdmRfTkp3ACIUUvEf9Man6jSLLAQMGCg7LRLEpn6WXefo+gK4n8fz
	c7w74sX7QUxboSCw==
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764547; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=eU7TYaqJ6duBML6uqVqJigVOdQm0L8koItjVVhsfmDY=;
	b=CYfqfqJht5lUOE4zN33sX1KK1JeKs87F5FxRoURqIJ2T5ShyZwV3g4qBgEZ+KqP8nTsFZf
	nLT7rWhlvWkQDn7dQmdhdw/fdrlD1qNCwuZ8v/WulaOXUTCyiF16OT4nbbkwL8PZYvrsh9
	hROe7QacKTe/RBk0/FyjaSo8QRb/I00=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764547;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=eU7TYaqJ6duBML6uqVqJigVOdQm0L8koItjVVhsfmDY=;
	b=+9vMn/zlV0/9G7plhgdmRfTkp3ACIUUvEf9Man6jSLLAQMGCg7LRLEpn6WXefo+gK4n8fz
	c7w74sX7QUxboSCw==
From: Thomas Zimmermann <tzimmermann@suse.de>
To: simona@ffwll.ch,
	airlied@gmail.com,
	mripard@kernel.org,
	maarten.lankhorst@linux.intel.com,
	geert@linux-m68k.org,
	tomi.valkeinen@ideasonboard.com
Cc: dri-devel@lists.freedesktop.org,
	linux-mediatek@lists.infradead.org,
	freedreno@lists.freedesktop.org,
	linux-arm-msm@vger.kernel.org,
	imx@lists.linux.dev,
	linux-samsung-soc@vger.kernel.org,
	nouveau@lists.freedesktop.org,
	virtualization@lists.linux.dev,
	spice-devel@lists.freedesktop.org,
	linux-renesas-soc@vger.kernel.org,
	linux-rockchip@lists.infradead.org,
	linux-tegra@vger.kernel.org,
	intel-xe@lists.freedesktop.org,
	xen-devel@lists.xenproject.org,
	Thomas Zimmermann <tzimmermann@suse.de>,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Subject: [PATCH v6 25/25] drm/xlnx: Compute dumb-buffer sizes with drm_mode_size_dumb()
Date: Thu, 21 Aug 2025 10:17:32 +0200
Message-ID: <20250821081918.79786-26-tzimmermann@suse.de>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250821081918.79786-1-tzimmermann@suse.de>
References: <20250821081918.79786-1-tzimmermann@suse.de>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: 
X-Spamd-Result: default: False [-1.30 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	SUSPICIOUS_RECIPS(1.50)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MID_CONTAINS_FROM(1.00)[];
	R_MISSING_CHARSET(0.50)[];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	ARC_NA(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:email,suse.de:mid];
	RCPT_COUNT_TWELVE(0.00)[22];
	MIME_TRACE(0.00)[0:+];
	TO_DN_SOME(0.00)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	FROM_HAS_DN(0.00)[];
	FREEMAIL_TO(0.00)[ffwll.ch,gmail.com,kernel.org,linux.intel.com,linux-m68k.org,ideasonboard.com];
	RCVD_COUNT_TWO(0.00)[2];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	R_RATELIMIT(0.00)[to_ip_from(RLqirfcw6gnbcr9a9yhi49fhi6),to(RLbwen1niosrcqbxsafh1)];
	DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	FREEMAIL_ENVRCPT(0.00)[gmail.com]
X-Spam-Flag: NO
X-Spam-Score: -1.30

Call drm_mode_size_dumb() to compute dumb-buffer scanline pitch and
buffer size. Align the pitch according to hardware requirements.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
---
 drivers/gpu/drm/xlnx/zynqmp_kms.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/xlnx/zynqmp_kms.c b/drivers/gpu/drm/xlnx/zynqmp_kms.c
index 2bee0a2275ed..02f3a7d78cf8 100644
--- a/drivers/gpu/drm/xlnx/zynqmp_kms.c
+++ b/drivers/gpu/drm/xlnx/zynqmp_kms.c
@@ -19,6 +19,7 @@
 #include <drm/drm_crtc.h>
 #include <drm/drm_device.h>
 #include <drm/drm_drv.h>
+#include <drm/drm_dumb_buffers.h>
 #include <drm/drm_encoder.h>
 #include <drm/drm_fbdev_dma.h>
 #include <drm/drm_fourcc.h>
@@ -363,10 +364,12 @@ static int zynqmp_dpsub_dumb_create(struct drm_file *file_priv,
 				    struct drm_mode_create_dumb *args)
 {
 	struct zynqmp_dpsub *dpsub = to_zynqmp_dpsub(drm);
-	unsigned int pitch = DIV_ROUND_UP(args->width * args->bpp, 8);
+	int ret;
 
 	/* Enforce the alignment constraints of the DMA engine. */
-	args->pitch = ALIGN(pitch, dpsub->dma_align);
+	ret = drm_mode_size_dumb(drm, args, dpsub->dma_align, 0);
+	if (ret)
+		return ret;
 
 	return drm_gem_dma_dumb_create_internal(file_priv, drm, args);
 }
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 08:36:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 08:36:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088152.1445980 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up0mG-0000gx-C5; Thu, 21 Aug 2025 08:36:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088152.1445980; Thu, 21 Aug 2025 08: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 1up0mG-0000go-9R; Thu, 21 Aug 2025 08:36:08 +0000
Received: by outflank-mailman (input) for mailman id 1088152;
 Thu, 21 Aug 2025 08:36:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+F7x=3B=suse.de=tzimmermann@srs-se1.protection.inumbo.net>)
 id 1up0ZW-0001aA-5K
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 08:22:58 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 06aa7706-7e68-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 10:22:50 +0200 (CEST)
Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 4714622650;
 Thu, 21 Aug 2025 08:22:25 +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 AE04813867;
 Thu, 21 Aug 2025 08:22:24 +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 iNpLKUDXpmhzEwAAD6G6ig
 (envelope-from <tzimmermann@suse.de>); Thu, 21 Aug 2025 08:22: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>
X-Inumbo-ID: 06aa7706-7e68-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764545; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=kgypNVMMyj7G9RTUcdPLKrE/vfDgVYUf8Wo20zBqeqM=;
	b=T9aVr0/EmC9BMyqgT/oDMe7UEtmT5QkHbL4brDQCYvVz2Dq9k5WthGhNB4anZONVCtOucX
	pKUtTVOk4zpndjRxolDPK5MWT2+70v6Mdvg9y1cjuU5kcJzKMXKmjnIFpUIFCM4e4aCNyj
	YmRRU6beJlIKMcyHRmcdugvmhc/Dkpk=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764545;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=kgypNVMMyj7G9RTUcdPLKrE/vfDgVYUf8Wo20zBqeqM=;
	b=5vOFrucC9XrXX3Agdf7cgx3prhBn24PPqjXte3D1Pp7ww+bYgpL5O3mGaAAEU0qY7mBHHd
	m5ml0BSHt7TMm9Dg==
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755764545; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=kgypNVMMyj7G9RTUcdPLKrE/vfDgVYUf8Wo20zBqeqM=;
	b=T9aVr0/EmC9BMyqgT/oDMe7UEtmT5QkHbL4brDQCYvVz2Dq9k5WthGhNB4anZONVCtOucX
	pKUtTVOk4zpndjRxolDPK5MWT2+70v6Mdvg9y1cjuU5kcJzKMXKmjnIFpUIFCM4e4aCNyj
	YmRRU6beJlIKMcyHRmcdugvmhc/Dkpk=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755764545;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=kgypNVMMyj7G9RTUcdPLKrE/vfDgVYUf8Wo20zBqeqM=;
	b=5vOFrucC9XrXX3Agdf7cgx3prhBn24PPqjXte3D1Pp7ww+bYgpL5O3mGaAAEU0qY7mBHHd
	m5ml0BSHt7TMm9Dg==
From: Thomas Zimmermann <tzimmermann@suse.de>
To: simona@ffwll.ch,
	airlied@gmail.com,
	mripard@kernel.org,
	maarten.lankhorst@linux.intel.com,
	geert@linux-m68k.org,
	tomi.valkeinen@ideasonboard.com
Cc: dri-devel@lists.freedesktop.org,
	linux-mediatek@lists.infradead.org,
	freedreno@lists.freedesktop.org,
	linux-arm-msm@vger.kernel.org,
	imx@lists.linux.dev,
	linux-samsung-soc@vger.kernel.org,
	nouveau@lists.freedesktop.org,
	virtualization@lists.linux.dev,
	spice-devel@lists.freedesktop.org,
	linux-renesas-soc@vger.kernel.org,
	linux-rockchip@lists.infradead.org,
	linux-tegra@vger.kernel.org,
	intel-xe@lists.freedesktop.org,
	xen-devel@lists.xenproject.org,
	Thomas Zimmermann <tzimmermann@suse.de>,
	Zack Rusin <zack.rusin@broadcom.com>,
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
Subject: [PATCH v6 22/25] drm/vmwgfx: Compute dumb-buffer sizes with drm_mode_size_dumb()
Date: Thu, 21 Aug 2025 10:17:29 +0200
Message-ID: <20250821081918.79786-23-tzimmermann@suse.de>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250821081918.79786-1-tzimmermann@suse.de>
References: <20250821081918.79786-1-tzimmermann@suse.de>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: 
X-Spamd-Result: default: False [-1.30 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	SUSPICIOUS_RECIPS(1.50)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MID_CONTAINS_FROM(1.00)[];
	R_MISSING_CHARSET(0.50)[];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	RCVD_COUNT_TWO(0.00)[2];
	ARC_NA(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FROM_HAS_DN(0.00)[];
	RCPT_COUNT_TWELVE(0.00)[23];
	MIME_TRACE(0.00)[0:+];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	FREEMAIL_TO(0.00)[ffwll.ch,gmail.com,kernel.org,linux.intel.com,linux-m68k.org,ideasonboard.com];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:email,suse.de:mid];
	FROM_EQ_ENVFROM(0.00)[];
	DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	RCVD_TLS_ALL(0.00)[];
	TO_DN_SOME(0.00)[];
	FREEMAIL_ENVRCPT(0.00)[gmail.com]
X-Spam-Flag: NO
X-Spam-Score: -1.30

Call drm_mode_size_dumb() to compute dumb-buffer scanline pitch
and buffer size. No alignment required.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Zack Rusin <zack.rusin@broadcom.com>
Cc: Zack Rusin <zack.rusin@broadcom.com>
Cc: Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
---
 drivers/gpu/drm/vmwgfx/vmwgfx_surface.c | 21 ++++-----------------
 1 file changed, 4 insertions(+), 17 deletions(-)

diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_surface.c b/drivers/gpu/drm/vmwgfx/vmwgfx_surface.c
index 7e281c3c6bc5..c4ac9b47e23a 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_surface.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_surface.c
@@ -15,6 +15,7 @@
 #include "vmw_surface_cache.h"
 #include "device_include/svga3d_surfacedefs.h"
 
+#include <drm/drm_dumb_buffers.h>
 #include <drm/ttm/ttm_placement.h>
 
 #define SVGA3D_FLAGS_64(upper32, lower32) (((uint64_t)upper32 << 32) | lower32)
@@ -2267,23 +2268,9 @@ int vmw_dumb_create(struct drm_file *file_priv,
 	 * contents is going to be rendered guest side.
 	 */
 	if (!dev_priv->has_mob || !vmw_supports_3d(dev_priv)) {
-		int cpp = DIV_ROUND_UP(args->bpp, 8);
-
-		switch (cpp) {
-		case 1: /* DRM_FORMAT_C8 */
-		case 2: /* DRM_FORMAT_RGB565 */
-		case 4: /* DRM_FORMAT_XRGB8888 */
-			break;
-		default:
-			/*
-			 * Dumb buffers don't allow anything else.
-			 * This is tested via IGT's dumb_buffers
-			 */
-			return -EINVAL;
-		}
-
-		args->pitch = args->width * cpp;
-		args->size = ALIGN(args->pitch * args->height, PAGE_SIZE);
+		ret = drm_mode_size_dumb(dev, args, 0, 0);
+		if (ret)
+			return ret;
 
 		ret = vmw_gem_object_create_with_handle(dev_priv, file_priv,
 							args->size, &args->handle,
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 08:39:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 08:39:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088179.1445991 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up0pM-00020Z-QL; Thu, 21 Aug 2025 08:39:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088179.1445991; Thu, 21 Aug 2025 08:39: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 1up0pM-00020S-MP; Thu, 21 Aug 2025 08:39:20 +0000
Received: by outflank-mailman (input) for mailman id 1088179;
 Thu, 21 Aug 2025 08:39:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=m+ul=3B=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1up0pK-00020H-Ug
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 08:39:19 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 50d5d544-7e6a-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 10:39:13 +0200 (CEST)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by AS8PR03MB9096.eurprd03.prod.outlook.com
 (2603:10a6:20b:5b2::10) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.24; Thu, 21 Aug
 2025 08:39:11 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%4]) with mapi id 15.20.9052.014; Thu, 21 Aug 2025
 08:39: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>
X-Inumbo-ID: 50d5d544-7e6a-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MFTU1aWQJNrEN6cuDPkeCdiLBbbcZ5nn0UFoZU2C6mUoVuFWdA8Rv5vLeP/r0tr3b4lsUQfHS+RVER9lKlyGhuN07+JUMHnKwv904HbtO+didbMMLDy8ov+6lykgF581eik1L+khTDpiomeQ0U7Wud6yHLFjxkdYulvFEQxgfHdo/8IiZyG7HBNNnz3LEvW13Ez5kYTyZDtegp2rn55DxZnukaz+DGDcd05AgSDdIE/vfmxFxEiIfOCFMJ9d8jSOkdInAs15A5y9PzXLL5GIBDNbvxs48yIsbgGEu3zR5dpFruAFx/xTJgpCPaU8wPnJG9anS5Ay7NM63rmUMeqQhA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=L5BwtJ6fvGCjGfbUbzoxAy19zus59Zz3J+RONBmP4C8=;
 b=C/17HO7sU9bsNlYjBnIIfY0O2frJE8gtq+dqK0Dfb5eLgxbxCXvtlY+JL8ys6SVXnbfo4p4iF71Ggywb36H8RNa3UGyoSmTuByu5aFCjj4I3SBwa5LO1UrD3HJibhU3piJofMpDjEfcxCoLm+7Aj9NS88OzzcuNeJ0MAsEXCdk2JpAE5y4BGfKT11Dom/WnwZtn9v0werBFBa69yllUQ7L0jqAhwT2FBhR9H2Jlh1rk6U2XtxYrToEtqZL52lnNoI3ZkrJKqXB9FkGbeUL2ewlKDzL7CT7g8DM+4uokY9HUs+kAWwDoERs8HwR/OeKgpVvDUlPWFz2WpYxeZkO+cfA==
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=L5BwtJ6fvGCjGfbUbzoxAy19zus59Zz3J+RONBmP4C8=;
 b=jdTzGqD39hazG/2QXe2NemLjzf/JdicGvrcudNCCqZ/mq9Tqqblo3pde/cpkBf1FaDzAPipR94ZsYq1LA7UM9a2ueH0GCVEJ5a27I/MfWzNh2eaQ15Q/ijtqsWcSJwMFvrsEBM2t48ebgeIfs7zHLbvQsZQZ1cEstQeM4JBOUPi1l+fE1dkSxB/yDmwujH1djJud41ZEYfNMk/Er+TM1xxGCUPOTWRbm0/+YuoKywJSh09moCCVJ6bNR87IPo2YvWo4P4mizviSlZjZ4ZKce2j3aUwrx3KD9yeoPFnM3gtHwfCwGAh2terdI63EH30JX+uaoWTMgAt74/LkT+DNk/g==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: Jan Beulich <jbeulich@suse.com>, Stefano Stabellini
	<sstabellini@kernel.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v2 2/3] pci/rcar: implement OSID configuration for Renesas
 RCar Gen4 PCIe host
Thread-Topic: [PATCH v2 2/3] pci/rcar: implement OSID configuration for
 Renesas RCar Gen4 PCIe host
Thread-Index: AQHcEnVb4pd/F3Rt1ky19lQedFCtvLRsyTSA
Date: Thu, 21 Aug 2025 08:39:10 +0000
Message-ID: <29855e39-9af5-4d26-beaf-c6a4264a71aa@epam.com>
References: <312c4802-0c15-4d2b-a98c-13d1ed75bcaa@suse.com>
In-Reply-To: <312c4802-0c15-4d2b-a98c-13d1ed75bcaa@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_|AS8PR03MB9096:EE_
x-ms-office365-filtering-correlation-id: 61f58b45-7a01-44d6-03c8-08dde08e331b
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?SGxLV1FCeEJkM2I0SXJ4VXhhOEJSR2VkckY3N0sxS3NuTGVoeXlYTEVsZzFw?=
 =?utf-8?B?NFlYMTBXa1JmOFRIUzN0RTE4VEZnczJtakFkbXNYRDB3cDNabG5Ob1VJNTN3?=
 =?utf-8?B?Vm0xN0U0ck9xQzhlNjNoOHd1RHZSR215emxORndHNGdDOXUyNHJHQ1A0RVVL?=
 =?utf-8?B?RWRhT1F1SzlRajlBbVFmM3kwNjVLbkFaOWIzSXljQW1GUms2b1YzYWRSS1Zz?=
 =?utf-8?B?OU16a0VWVURFaUc2RWFZWENBeUZXeU1QTmNIYWh1US9jODF5aGExanZ6cjF3?=
 =?utf-8?B?V3MxbnEwZzZWcVlFc1RJN3ZQeWVQcXQydE5HSFgvUGIzVlZPWDBSVDBOSjRM?=
 =?utf-8?B?WGdrSnhVRUtWWWdlS0lpaU9XOTFwQ1drQ0lGSXI1NFNnQmNBMk1oYVpOYm41?=
 =?utf-8?B?L2pKOGg4SjlNR2l5M09IZjBWZVVtZ2lTV3h4Z0IwbTNGaVpqbFNQSjdSbnJK?=
 =?utf-8?B?S3A2cHZ3ZlUzZ1JrR1U0NjVoeWVzN25sTis5ZGZPRnVlQW9LNkcxUTlKeDJj?=
 =?utf-8?B?bmdtMUx5ajFsOG1qb0tTQkFaRDg5cTJvOFVhdDBZb05zVUFCc25DU3JWVG9Y?=
 =?utf-8?B?djhpcUVobzdyVE9MY0lRc1M1K0dNei9NckRjUDFOSWtEVnFUeG81YlVXcndR?=
 =?utf-8?B?aVpkcXljZUxLT1NJMURHZ3l1RGttQ3UyUGd0VHRIYmViZWZEMHZCbzZkUFFo?=
 =?utf-8?B?OGx0dVlYd2w5M1g1MHMvVU9MRjNVT09oM3JTcWVzckRYUG41RTc2Q0EzUDFp?=
 =?utf-8?B?aS8waWI5MEovOEdTNG9TN3N0dW4wT2ZVWTlQc0x2VEZDSEZoWHFubkl1aGNt?=
 =?utf-8?B?bi9LOTdGdFlYQWJRaGN4U2MxMEpGbjlvaXN0aXVNOElGVnVFU3p5bTIzRG5s?=
 =?utf-8?B?Ti82bm5mUE4rdnVpR2orUTF0T0RGckVpQjRneXlpanhJNnJkU3c0cHBrU3Nk?=
 =?utf-8?B?em9LWG1FQy9lZUNtb2RyZUNmTnBnWHdxY3ZlcWNhTy9oN2FOQzZ2dnVvRzZk?=
 =?utf-8?B?b2NrZzFmL2V6ZUpKMTFwRTZSaG92V2YvQ2o2bWNvcTl1YzRZRHFMbkRpZEhO?=
 =?utf-8?B?d250K0hTZWRIUURCMzA3OEhvclAwdGVGbzRub1pFcnRJK09SZ0o5d0R2MWk4?=
 =?utf-8?B?MTk5YitzOWh2Q25HU2t3aVVwYmRkVUQxQkw0MitzbzlLcFNDdlJZLzNEaXd6?=
 =?utf-8?B?N2JxSldUM2xzNFZlZEQ1dVpsMUNVT2tqV3lmQk9KR1MrYXlndklRUHE4bktF?=
 =?utf-8?B?djdHYUxzQ2NFbDJIcHE2R3NBOFBxTHZyMVUxZnJsQ2hIaUorVTdtdmpKckRt?=
 =?utf-8?B?VGdjdVlWdE5yVUxEbGFLK3FJWFZuRk54cmZrbnFUVlVPTkQ4YXhpOVJweVFt?=
 =?utf-8?B?cUc4NmdjdDNaL1JQYS9Bb2hnclB1Wk51c0twcmlxenZUenpFY2VOcEtoclJK?=
 =?utf-8?B?b1Z3YkFJM1ZzN0tHWWpOdm1SYU5zWWM1S3BacnBTQWlYV2dwSUsxUWNrSi8w?=
 =?utf-8?B?VksxeWxHOVhOR2lWM2JoM2VWd25LSGhLV0RyRXpNVHZrR1B0czI5UTJqV2pW?=
 =?utf-8?B?TUxENk11cU9HQjg2MTJZcmtHWlRySDlPNWtJY1RpSjZXbkI3S0IwejAzU29y?=
 =?utf-8?B?QXVlZ2laamJQYUIxVEgzK3lRdG5ScUl0UXhmUm1pc1VldTdEWG5pNGpGcmEw?=
 =?utf-8?B?bFBLdWMxWHVBQ3IzVXRKZWdtaVNaL3BVMWNKVDM5RW9Sd3hPUUdDcnJ0YXdM?=
 =?utf-8?B?cDBGYnA5M0E2aGJxRnp0VzREdHRycEcrNVg1c2NRSWVLdktlN3I2UHhlRzNq?=
 =?utf-8?B?Z0NsU3N5TzVsVCtqVmNHWlJjaVYzM1NYM1NxWG1RVVJyQXEwZGo3VDNqMThy?=
 =?utf-8?B?b2RIM2h6REdMZXpPUmhCV3k0VFptdFBrUGdjMVJsRGJUdEg5V3llakluS2c5?=
 =?utf-8?B?WmVLRzhjeFJEYlF5Z1dtSFBIQ29TaEZYaHV0WTdoMmY1cU96QjhDR1JFaERU?=
 =?utf-8?Q?+8Y9A3HxRjZbdZcnBWOWsOxZdDwhn4=3D?=
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)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?VFFPSlFSbjgrbFU2dTVlN3Vqblh1ZnNHK3NudGhQVVRNcFFKY2xJU0hrcmgy?=
 =?utf-8?B?NGZjdnVDcHFqZHRBbGFBTFVBaXJXbmJzL3A1U29uQWh4SkI3T2d3cExETmNG?=
 =?utf-8?B?eDk2STRrME81TWIvYXNxTnpYY2NaUUxTWkZGTWF0a3BWaGQwYms2TTZreVhl?=
 =?utf-8?B?cXJoaXJ1R3F1dVNSZHVBbFY1S3YwTGdJWDlvRlRucWZNcExweFFmTUl5bWYv?=
 =?utf-8?B?QVM3TzlEcTh0eXhVejdldG1yS0RpWk9IUVI1cGVIaWhkaHlOc1RFVmNUWWJD?=
 =?utf-8?B?ZmtsUzNtQkxKb3pzNGpvYTBxWUNmVi9CeDFKaEZnbkJQczZUaHVBZzd3Q0hj?=
 =?utf-8?B?TFl6cmZjcitVWGZnUDFmNnozUzZoTldUSDBqNHVUa1MxVDFtallUclRmcStz?=
 =?utf-8?B?UWk1V2V5MDFqajBWRmVjbmlQODJTWXVVeDJKL1crY2V2YnlOTjNZU1dJMitW?=
 =?utf-8?B?c2FWR2hmZk13b0dKNkN2YmxWWjZTTmdCRUxqald4SFRCSnkzUUlwWHBxVXJO?=
 =?utf-8?B?NjRxN1RPM3pXeVlITkpZcm5lYnRicGpzanZqek56Wko0NmN1L3pCSlRTQ0Y3?=
 =?utf-8?B?NTVqbmZxQ2pNQXNRMjVuY2VyOU1BTGwxREs1TDdmZVhPdHJib0JUWkdNWmFE?=
 =?utf-8?B?NWxkMHV5a1E5WkV1ekdxQjdVNzBvTXVLbTNUNGMwN0lhalJXZnl0dUkzZ3Jt?=
 =?utf-8?B?dm1VS09qeU9nWldibTloejcrRVRDYlU1VXplcWkzZmNMSU5xTXBzd2ZzN05s?=
 =?utf-8?B?eS81cFNNSWZWOFVmVk9TK2pzdlJrM3NxRTZNRTAzYVJ5ak9lZVdtTUpuV2d2?=
 =?utf-8?B?ajBXcEtiWkhtcUM0R3dHTjF5VTJvS0paV1gycEovZU5CbTVSckJUT1JVRjFy?=
 =?utf-8?B?UXhhNzJ1ZmxzTll2aDM4b3Q5TEx2VEtIdm9RY1lXT0pFMlJZc1FzeUxYUjZY?=
 =?utf-8?B?dG5qc3hIQVVKdVRvSThOUjE5M2VhdkRDSE9BOFVGcUY1eXFlQXJlcTduSkpW?=
 =?utf-8?B?UUNpRTBEZ1BaVG04NFN6enZmc3FJQnVVQnU0YTYySkVjMk5OWDIrNWR5TGU5?=
 =?utf-8?B?WU1UY0FNM0xTMmk0Mk9pUlo5amIyK1ZCRUFqOWsvQkRvVkpzaytIOW5jSStN?=
 =?utf-8?B?bmppL0N1WTRIcUF2L3RKUlJvc1EzZlZGdHgxYjNpSmp2STlPb0daR0wxU09l?=
 =?utf-8?B?Q2lWNjZueXBxZHJIT0FXdmlkNDErRzNlaFJ5V1JSRDBPNDl1a1JjUlFPbXJt?=
 =?utf-8?B?SEp3SllFbDFnMU9VUnl3RXg1UWljSnhNeUZ1WXBkRkpteFMxbUdIRk1qNDUy?=
 =?utf-8?B?RVpYdy9abk13dGlYOUE0Yzh5RklvZVFPNVMwRE50NStzajdwTmpzTlVZdnFB?=
 =?utf-8?B?QzBVd3NNcWUrRkF1eUg1dmZWT1pGNmI0OExOUHdSaHJzajh3NW9NRVVDZFJX?=
 =?utf-8?B?eDZFWjYvWldBRkcwTDB5VzJDVXRObDQ5UlZUMGhFaXZvL1NxTjE2K2Njc1Rm?=
 =?utf-8?B?TkhtN2JFV204M0JpWE16OWJiRkdsV1RtRWROREdmK0VBaXpsdURubXk4RjBW?=
 =?utf-8?B?TTRiaE90VEJ0azgrVk1LdThtak1UMFZ4VlV2YzYxTDF5Z29KR0RxSER3Ylli?=
 =?utf-8?B?VFNZNURoMmRPakxoOWxlSERaVEgxZXZ0MUY4aktNVGJTMTBjVHVQL0VZUm5p?=
 =?utf-8?B?RWdmSFZnOHJmb3BhSnpFRTZYeVZGTVl3VkpxbTU1cmRJelhhY2NpZDNZL01k?=
 =?utf-8?B?Wkh0a2NMazhuZGNCVXByb3hXbCtEMW1VaHJSK0pMbnpDRThCL3cyRGd2dXdm?=
 =?utf-8?B?YVJUK0p2ZDYrdmxMRUd0S1h1OWM5dDltRnZmTlQvc2Fwbmk5aXBxSEFlTjZM?=
 =?utf-8?B?ck8zT3lXVUNlaUtGZG9uQ2hMQlBPWDNqaFZLeG0rcGZPMmRiT1hrSk4rUnF2?=
 =?utf-8?B?NDVqd1Y1OXZnQXBEZFZZN1ltc0dEZXRjYjBPcXFuYWVKKzVvdFkrQ24yL01a?=
 =?utf-8?B?UTZEaitScDRpYmhKVmhucFV6V0RIVzlzYm5zcW5mSGVTNFl3WW9YYitUTlBx?=
 =?utf-8?B?M3F1cU1uMkZBTjFKN0IwRkRuRVE2eUVzczNOdWI3TEdCZmtJemYwakd3a0hi?=
 =?utf-8?B?R1FlS2kvVEV5UVQrNWRjY3JVY1J6b1VNZHkvMFVFSlA1SGx0UTBEc3BicDJj?=
 =?utf-8?B?clE9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <A2C95BA9EA53774CB493E12A5CD97BEC@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: 61f58b45-7a01-44d6-03c8-08dde08e331b
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Aug 2025 08:39:10.3247
 (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: UyPkzu8uPysntDoBj21yW53aEUkgiTSe7GjYuTQ2ms0f71a/3tkr+mMWBA7EJFQGdZOyefijX2VTLbfkts6OkQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB9096

T24gMjEuMDguMjUgMTE6MjYsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiAoc29ycnksIG9yaWdpbmFs
IHBhdGNoIGFscmVhZHkgZ29uZSBmcm9tIG15IG1haWxib3gpDQo+IA0KPiBUaGlzIGxvb2tzIHRv
IGhhdmUgaW50cm9kdWNlZCBhIG5ldyByYW5kY29uZmlnIGZhaWx1cmUsIGFzIHBlciBDSSBbMV06
DQo+IA0KPiBJbiBmaWxlIGluY2x1ZGVkIGZyb20gZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vaXBt
bXUtdm1zYS5jOjU0Og0KPiAuL2luY2x1ZGUvLi4vYXJjaC9hcm0vcGNpL3BjaS1ob3N0LXJjYXI0
Lmg6NzozNzogZXJyb3I6ICdzdHJ1Y3QgcGNpX2hvc3RfYnJpZGdlJyBkZWNsYXJlZCBpbnNpZGUg
cGFyYW1ldGVyIGxpc3Qgd2lsbCBub3QgYmUgdmlzaWJsZSBvdXRzaWRlIG9mIHRoaXMgZGVmaW5p
dGlvbiBvciBkZWNsYXJhdGlvbiBbLVdlcnJvcl0NCj4gICAgICA3IHwgdm9pZCByY2FyNF9wY2ll
X29zaWRfYmRmX3NldChzdHJ1Y3QgcGNpX2hvc3RfYnJpZGdlICpicmlkZ2UsDQo+ICAgICAgICB8
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fg0KPiAu
L2luY2x1ZGUvLi4vYXJjaC9hcm0vcGNpL3BjaS1ob3N0LXJjYXI0Lmg6OTozOTogZXJyb3I6ICdz
dHJ1Y3QgcGNpX2hvc3RfYnJpZGdlJyBkZWNsYXJlZCBpbnNpZGUgcGFyYW1ldGVyIGxpc3Qgd2ls
bCBub3QgYmUgdmlzaWJsZSBvdXRzaWRlIG9mIHRoaXMgZGVmaW5pdGlvbiBvciBkZWNsYXJhdGlv
biBbLVdlcnJvcl0NCj4gICAgICA5IHwgdm9pZCByY2FyNF9wY2llX29zaWRfYmRmX2NsZWFyKHN0
cnVjdCBwY2lfaG9zdF9icmlkZ2UgKmJyaWRnZSwNCj4gICAgICAgIHwgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn4NCj4gLi9pbmNsdWRlLy4uL2Fy
Y2gvYXJtL3BjaS9wY2ktaG9zdC1yY2FyNC5oOjExOjM2OiBlcnJvcjogJ3N0cnVjdCBwY2lfaG9z
dF9icmlkZ2UnIGRlY2xhcmVkIGluc2lkZSBwYXJhbWV0ZXIgbGlzdCB3aWxsIG5vdCBiZSB2aXNp
YmxlIG91dHNpZGUgb2YgdGhpcyBkZWZpbml0aW9uIG9yIGRlY2xhcmF0aW9uIFstV2Vycm9yXQ0K
PiAgICAgMTEgfCB2b2lkIHJjYXI0X3BjaWVfYmRmX21za19zZXQoc3RydWN0IHBjaV9ob3N0X2Jy
aWRnZSAqYnJpZGdlLCB1bnNpZ25lZCBpbnQgcmVnX2lkLA0KPiAgICAgICAgfCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fg0KPiAuL2luY2x1ZGUvLi4v
YXJjaC9hcm0vcGNpL3BjaS1ob3N0LXJjYXI0Lmg6MTM6Mzg6IGVycm9yOiAnc3RydWN0IHBjaV9o
b3N0X2JyaWRnZScgZGVjbGFyZWQgaW5zaWRlIHBhcmFtZXRlciBsaXN0IHdpbGwgbm90IGJlIHZp
c2libGUgb3V0c2lkZSBvZiB0aGlzIGRlZmluaXRpb24gb3IgZGVjbGFyYXRpb24gWy1XZXJyb3Jd
DQo+ICAgICAxMyB8IGludCByY2FyNF9wY2llX29zaWRfcmVnX2FsbG9jKHN0cnVjdCBwY2lfaG9z
dF9icmlkZ2UgKmJyaWRnZSk7DQo+ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBefn5+fn5+fn5+fn5+fn4NCj4gLi9pbmNsdWRlLy4uL2FyY2gvYXJtL3BjaS9w
Y2ktaG9zdC1yY2FyNC5oOjE0OjM4OiBlcnJvcjogJ3N0cnVjdCBwY2lfaG9zdF9icmlkZ2UnIGRl
Y2xhcmVkIGluc2lkZSBwYXJhbWV0ZXIgbGlzdCB3aWxsIG5vdCBiZSB2aXNpYmxlIG91dHNpZGUg
b2YgdGhpcyBkZWZpbml0aW9uIG9yIGRlY2xhcmF0aW9uIFstV2Vycm9yXQ0KPiAgICAgMTQgfCB2
b2lkIHJjYXI0X3BjaWVfb3NpZF9yZWdfZnJlZShzdHJ1Y3QgcGNpX2hvc3RfYnJpZGdlICpicmlk
Z2UsDQo+ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+
fn5+fn5+fn5+fn4NCj4gLi9pbmNsdWRlLy4uL2FyY2gvYXJtL3BjaS9wY2ktaG9zdC1yY2FyNC5o
OjE2OjM4OiBlcnJvcjogJ3N0cnVjdCBwY2lfaG9zdF9icmlkZ2UnIGRlY2xhcmVkIGluc2lkZSBw
YXJhbWV0ZXIgbGlzdCB3aWxsIG5vdCBiZSB2aXNpYmxlIG91dHNpZGUgb2YgdGhpcyBkZWZpbml0
aW9uIG9yIGRlY2xhcmF0aW9uIFstV2Vycm9yXQ0KPiAgICAgMTYgfCBpbnQgcmNhcjRfcGNpZV9v
c2lkX3JlZ3NfaW5pdChzdHJ1Y3QgcGNpX2hvc3RfYnJpZGdlICpicmlkZ2UpOw0KPiAgICAgICAg
fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+DQo+
IA0KPiBXZSBlaXRoZXIgbmVlZCBhIHF1aWNrIGNvcnJlY3Rpb24sIG9yIHRoaXMgbWF5IG5lZWQg
cmV2ZXJ0aW5nLg0KPiANCj4gSmFuDQo+IA0KPiBbMV0gaHR0cHM6Ly9naXRsYWIuY29tL3hlbi1w
cm9qZWN0L2hhcmR3YXJlL3hlbi8tL2pvYnMvMTEwODcyMzMyMjcNCg0KSSB3aWxsIHRha2UgYSBs
b29rIGludG8gdGhpcywgdGhhbmtzIGZvciBwb2ludGluZyBpdCBvdXQNCg0KLS0gDQpNeWt5dGE=


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 08:44:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 08:44:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088200.1446001 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up0tz-0004lR-BS; Thu, 21 Aug 2025 08:44:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088200.1446001; Thu, 21 Aug 2025 08: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 1up0tz-0004lK-7z; Thu, 21 Aug 2025 08:44:07 +0000
Received: by outflank-mailman (input) for mailman id 1088200;
 Thu, 21 Aug 2025 08:44:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5Hha=3B=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1up0tx-0004lE-MU
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 08:44:05 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fb60859f-7e6a-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 10:43:59 +0200 (CEST)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-6188b7550c0so1117216a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 01:43: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
 a640c23a62f3a-afded2bc310sm346538966b.5.2025.08.21.01.43.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Aug 2025 01: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>
X-Inumbo-ID: fb60859f-7e6a-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755765839; x=1756370639; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=HvcuYgXjK6airQth5Akct7/Vr+xine1eiyg9x2GPsf8=;
        b=Qxpuh6EWYwa6VDBenxGUVhk7MEN28x1qDJANRE7ODNXBEqOMiFqgJBkJwANe/qqWpa
         ZzNW4KMem4oM5gYscVUyQ+GhE7I5Sx+oMV3/fqymCK1Hxv2oXxWNcSxo+uX7twAO+bRF
         lisi6kViQuiQGVVjgBVixFwUoRzrXt+yPHomHwbFIeGMVBVEg2487ry5e3WsucFcGn0x
         7K66ym/W0PWv38phJhCmWOZeaCSs5FteqNmrfQSimVpiyQKfloX6O+nYhOJedcGsMxVg
         Eijc5fvo+hvkdvgWVw70u7eygXbWwvRbgso5PWtc9RgXLkdWAoJVTsL7r/NIUiwDl+Ia
         apeg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755765839; x=1756370639;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HvcuYgXjK6airQth5Akct7/Vr+xine1eiyg9x2GPsf8=;
        b=IWPc06nzaeHbq3YTrAe37vQhHnZUM4n4Eg3777ZePhphbFbRSsCUMi4Iw1ii3p6r6l
         ABZBoa3lYbxCrV3BqPpm8I5j7HUKz0J1ku0OiqxS4YFM3Emx6eSiGroXMRHuj1WlEVrA
         5Q0ZMvK66fd+XwmEQWgBiDUMa+OoBFXv9kpJHtf4JF0fvIr+cTOH//OT5mJ9NFJYvoKJ
         nx1wghEncHU71yfK2dG2s9VtMp6MpQ4/un2fsapmRUIeuIyIumSXajlNAxlzbsn+nEm2
         rob2v6pBHQGev9p7FJxNRCvxJR6B2hsxiiANOwfq0viUTYrLXn3SrnVgTtkP6kzmReRa
         SpuA==
X-Forwarded-Encrypted: i=1; AJvYcCV7yeWI8hl4J1CxbUsySONDQ+zNNuclMk9obfNzSiJOqG0neU90ePl00HAJPaCBaO9AujdP0FHTrnI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyYVr+TXe0hUPHSBOCO+aJZIKBTe3n4Z054Mfrm6MqN6FGlemXx
	NQWMbBOFmoQ99vUUMiJ9pJKrdDsWMkoEi8JhJG8oOKiHkEZkC5eIjuagaiPebAUduQ==
X-Gm-Gg: ASbGncseVtqWSTL1LFnk5mLyZjr+LYzfiVHN3UKfcf7fZ3l3ibXaEd648lhY8s0Njha
	UUZme97GU05hNmr8uKMW3LHXzxeATaNJrHeYKn7imFui42/h7HrKC64bJYTlGGzyIR92z83g5Hx
	OAaCuJgNuOHRIGXY+Kh0UyLXSZ5SMsnZLU4Oa0xobXSDzZlPL99JAuRjp2/mtGzLHw+WqEUimb0
	t/+Ugc1nGKi9GRlFSNROJtslU5pxl8u7th46RAW8e8TmCQBWIrHX/dXKOdJKQW+MHX1f5Eo7tcH
	UsdjgOhqhlhAHgWfO9VNdm6SazE772U3fxFuaTbG7KtMEi2TGLYfeFpuHAkyUXan+MUbVItUnhu
	vv0A7VhbVtxq0LprtNgnVsRoZm+beDe+jLsPLq8hQHHq+4EMN0t85aRHmfYjXoe1k8jmMLuW034
	nbPI/9sryqeLT13ISXzw==
X-Google-Smtp-Source: AGHT+IGCjPT1xyNwuZCR3Jg0OFLrxYx6Jor6bxa/5AM7KD7tHLXEJV8y83wMDOr4DW9pz1pr2jiY8g==
X-Received: by 2002:a17:907:3f86:b0:ae0:da2f:dcf3 with SMTP id a640c23a62f3a-afe07d695e5mr142047666b.59.1755765839062;
        Thu, 21 Aug 2025 01:43:59 -0700 (PDT)
Message-ID: <06e2b225-fe82-4c69-a8a1-affdecdc195c@suse.com>
Date: Thu, 21 Aug 2025 10:43:57 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] misra: consider conversion from UL or (void*) to function
 pointer as safe
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
Cc: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <9e5e4ff2c7ba0a90a6ac403e2de9318e18949274.1755628705.git.dmytro_prokopchuk1@epam.com>
 <90fb95a3-4b32-4785-a77c-373e5b9da6ed@suse.com>
 <e1e2abdf0ef8708097aa78440eeb7147@bugseng.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <e1e2abdf0ef8708097aa78440eeb7147@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.08.2025 10:25, Nicola Vetrini wrote:
> On 2025-08-21 10:01, Jan Beulich wrote:
>> On 19.08.2025 20:55, Dmytro Prokopchuk1 wrote:
>>> Rule 11.1 states as following: "Conversions shall not be performed
>>> between a pointer to a function and any other type."
>>>
>>> The conversion from unsigned long or (void *) to a function pointer
>>> is safe in Xen because the architectures it supports (e.g., x86 and
>>> ARM) guarantee compatible representations between these types.
>>
>> I think we need to be as precise as possible here. The architectures
>> guarantee nothing, they only offer necessary fundamentals. In the
>> Windows x86 ABI, for example, you can't convert pointers to/from longs
>> without losing data. What we build upon is what respective ABIs say,
>> possibly in combination of implementation specifics left to compilers.
>>
> 
> +1, a mention of the compilers and targets this deviation relies upon is 
> needed.
> 
>>> --- a/docs/misra/deviations.rst
>>> +++ b/docs/misra/deviations.rst
>>> @@ -370,6 +370,16 @@ Deviations related to MISRA C:2012 Rules:
>>>         to store it.
>>>       - Tagged as `safe` for ECLAIR.
>>>
>>> +   * - R11.1
>>> +     - The conversion from unsigned long or (void \*) to a function 
>>> pointer does
>>> +       not lose any information or violate type safety assumptions if 
>>> unsigned
>>> +       long or (void \*) type is guaranteed to be the same bit size 
>>> as a
>>> +       function pointer. This ensures that the function pointer can 
>>> be fully
>>> +       represented without truncation or corruption. The macro 
>>> BUILD_BUG_ON is
>>> +       integrated into xen/common/version.c to confirm conversion 
>>> compatibility
>>> +       across all target platforms.
>>> +     - Tagged as `safe` for ECLAIR.
>>
>> Why the escaping of * here, when ...
>>
>>> --- a/docs/misra/rules.rst
>>> +++ b/docs/misra/rules.rst
>>> @@ -431,7 +431,13 @@ maintainers if you want to suggest a change.
>>>       - All conversions to integer types are permitted if the 
>>> destination
>>>         type has enough bits to hold the entire value. Conversions to 
>>> bool
>>>         and void* are permitted. Conversions from 'void noreturn 
>>> (*)(...)'
>>> -       to 'void (*)(...)' are permitted.
>>> +       to 'void (*)(...)' are permitted. Conversions from unsigned 
>>> long or
>>> +       (void \*) to a function pointer are permitted if the source 
>>> type has
>>> +       enough bits to restore function pointer without truncation or 
>>> corruption.
>>> +       Example::
>>> +
>>> +           unsigned long func_addr = (unsigned long)&some_function;
>>> +           void (*restored_func)(void) = (void (*)(void))func_addr;
>>
>> ... context here suggests they work fine un-escaped, and you even add 
>> some un-
>> escaped instances as well. Perhaps I'm simply unaware of some 
>> peculiarity?
> 
> This is a literal rst block, while the other is not (* acts as a bullet 
> point in rst iirc)

But everything here is bullet-pointed (with at least two levels)?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 08:52:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 08:52:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088251.1446010 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up12M-0000oc-9S; Thu, 21 Aug 2025 08:52:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088251.1446010; Thu, 21 Aug 2025 08:52: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 1up12M-0000oV-5u; Thu, 21 Aug 2025 08:52:46 +0000
Received: by outflank-mailman (input) for mailman id 1088251;
 Thu, 21 Aug 2025 08:52:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5Hha=3B=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1up12L-0000ZZ-Ku
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 08:52:45 +0000
Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com
 [2a00:1450:4864:20::52f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 33c894a0-7e6c-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 10:52:44 +0200 (CEST)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-618b83e5b27so909144a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 01:52: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
 4fb4d7f45d1cf-61a92678f45sm3330159a12.18.2025.08.21.01.52.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Aug 2025 01:52: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>
X-Inumbo-ID: 33c894a0-7e6c-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755766363; x=1756371163; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=1EUL3qG1NEOtTui0EP6TOD0gafplJiEMMtQ5leoiCPQ=;
        b=NG5XbS+13PPheRclj6ys+tOYjk2KdQ9tn69U26rLANhndXrqXTkQQa8go2h1Rfi8fL
         kHXF0M3tBvt+F6XbMAh5U4Zcl8l/zCO//WUxipqmxVaDAnAO72W2IlDkKViphp+zDtCT
         zG6Nsr9jyPjRl62Xxy1zt7IfvGq6/LoXdSoRarjAJeb8pocTGiwU14ekUszXDY1XZlnm
         ZJqyHqeYOd3WLcJl07hmgLmChBcGEPR+pLJlENrsIP52PzCIjG8AX/RFOEzd7X3SB6NU
         9Dk89LzQ/y2fixMmiKGCCkVaPOaOxMdzScXEJy2+CrVmaazV/SbZNFwpcQc9GIvBeEhu
         AAjQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755766363; x=1756371163;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1EUL3qG1NEOtTui0EP6TOD0gafplJiEMMtQ5leoiCPQ=;
        b=IUUkKs8xAi74WjY1Q5cYFkioZ6y1zMKJvl9/x/ER2EUkLCPr3qZil8YGUfrrI6wvZD
         cqgEi/6vklQjPOwc6u7H+t+4k5y7PPq5eGN+5rw5N4bGL/+zTWSDFF4mHFUfI3b+3kdp
         03mLVum4m78Zo2DNL0fwl9RMyOV2jowd2oN34mM+UVPB0UNZPFY4DYiFLehCtGiDHDF9
         BdPFG8/hWLFtRqzu51R92BqRG4Y00+F/cx8QEaAYihw/19SHvUV0+4pxZObVXmCn+EKQ
         A7Dezwk3ggyK6BnOIi0KMaI9OLYaBZTlJt8HkEAH32g5ndpsaEJdogVKMSxzw3em+Tjf
         D0hQ==
X-Forwarded-Encrypted: i=1; AJvYcCUkAzjh0rqVaU4sXiPV5DF35Waofb5IZY2P6RSwlf6919swMdEG+vB5PHRSrnLmP1gZITp3EDTPBAA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyovb0OQkRCawSIpHs0Kzu0P2izYKkI85gYrWSgMRTJKHAMa78/
	YfH5GYkvTm3KivWvpQjLcYi6VRx6RreccWRyG5OEZ2XgSWaSyVFfNuZIuB+JNQCbnA==
X-Gm-Gg: ASbGncv3zRxFl4iwmk9UIenJdK/AtMKbRzEy4xgVn6u8i7Wplo17B3CnbxMjkCxbDS+
	vH8uIZzqSnuqkhQQqLUJDvfxfwsH/Ld4jN3ymaTOqzm15nJtpJMFOKuNTr9pilqmqluCFQouJr6
	XPIwD8/XoRx+pwzMkjFz/NFNvitmWwq1kqw9uDf38jLOyjefuiI3vN71lKpJK+U2GKQroj7a+Ew
	WFyKOnI7DXFUSAhYkW/5TX7pxguEI4E/WaZ+Nh6zCMgcBjlgZLk0QxxoslB8z2MbxneX+EJXYRF
	7Z8QJdsNbB+d7JOCy08XUBfi5fFYv8hKQBnT/sZL7O4fv/m38OEVDH97jDc/uStC8+KegME9U2o
	w6cdjiTvzCJhY2eq7bV35yhT3jtMp3i0rGncskR4n5dWi0zCAlc3hPwoNg7zwQnqGUJoCysKDBt
	Jdnv1nkDw=
X-Google-Smtp-Source: AGHT+IFhkyYXlEnYL/cecI7LQVIFUzXvLYNMZYEWpaApzXUk91J7/wB8WIaXwi+vDUbPscpbHS53fg==
X-Received: by 2002:a05:6402:34c5:b0:61b:fb76:a244 with SMTP id 4fb4d7f45d1cf-61bfb76a530mr1044320a12.10.1755766363348;
        Thu, 21 Aug 2025 01:52:43 -0700 (PDT)
Message-ID: <de9b2f08-b16c-4d9b-a720-00a27fe81661@suse.com>
Date: Thu, 21 Aug 2025 10:52:41 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/3] xen/pci: modify pci_add_device to handle device
 add by Xen
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: Luca Fancellu <luca.fancellu@arm.com>,
 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" <xen-devel@lists.xenproject.org>,
 Daniel Smith <dpsmith@apertussolutions.com>
References: <cover.1755683961.git.mykyta_poturai@epam.com>
 <e0da037322b978d427d23a1af50406598a08b378.1755683961.git.mykyta_poturai@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <e0da037322b978d427d23a1af50406598a08b378.1755683961.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 20.08.2025 14:28, Mykyta Poturai wrote:
> From: Luca Fancellu <luca.fancellu@arm.com>
> 
> Currently pci_add_device is called from hypercalls requested by Dom0
> to add pci devices and when the device has no domain associated with
> it, it is assumed that hardware_domain is the owner.
> 
> On the dom0less scenario, the enumeration is performed by the
> firmware and Xen at boot time might want to assign some pci devices
> to guests, so it has to firstly add the device and then assign it to
> the final guest.
> 
> Modify pci_add_device to have the owner domain passed as a parameter
> to the function, so that when it is called from the hypercall the
> owner would be the caller domain, otherwise when Xen is calling it,
> it would be another domain since hw domain could not be there
> (dom0less guests without Dom0 use case).
> 
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> ---
> (cherry picked from commit f0c85d9043f7c9402e85b73361c8a13c683428ca from
>  the downstream branch poc/pci-passthrough from
>  https://gitlab.com/xen-project/people/bmarquis/xen-arm-poc.git)
> 
> v1->v2:
> * remove dom_io check
> * fixup pci_add_device parameters
> * use current->domain instead of hardware_domain

What I'm missing (as per my v1 comment) is discussion of the hardware_domain
-> current->domain change, including the XSM aspect. Because of the XSM aspect,
please also Cc the XSM maintainer going forward (I'm adding him here as well).

> --- a/xen/drivers/passthrough/pci.c
> +++ b/xen/drivers/passthrough/pci.c
> @@ -654,8 +654,9 @@ unsigned int pci_size_mem_bar(pci_sbdf_t sbdf, unsigned int pos,
>      return is64bits ? 2 : 1;
>  }
>  
> -int pci_add_device(u16 seg, u8 bus, u8 devfn,
> -                   const struct pci_dev_info *info, nodeid_t node)
> +int pci_add_device(uint16_t seg, uint8_t bus, uint8_t devfn,
> +                   const struct pci_dev_info *info, nodeid_t node,
> +                   struct domain *d)
>  {
>      struct pci_seg *pseg;
>      struct pci_dev *pdev;
> @@ -663,6 +664,9 @@ int pci_add_device(u16 seg, u8 bus, u8 devfn,
>      const char *type;
>      int ret;
>  
> +    if ( !d )
> +        return -EINVAL;

This should't be needed. Very remotely ASSERT(d) could be added here, but
we don't normally do so elsewhere.

> @@ -767,9 +771,9 @@ int pci_add_device(u16 seg, u8 bus, u8 devfn,
>      ret = 0;
>      if ( !pdev->domain )
>      {
> -        pdev->domain = hardware_domain;
> -        write_lock(&hardware_domain->pci_lock);
> -        list_add(&pdev->domain_list, &hardware_domain->pdev_list);
> +        pdev->domain = d;
> +        write_lock(&d->pci_lock);
> +        list_add(&pdev->domain_list, &pdev->domain->pdev_list);

Why pdev->domain instead of the shorter and more efficient d?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 09:08:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 09:08:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088262.1446021 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up1HG-0006as-HO; Thu, 21 Aug 2025 09:08:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088262.1446021; Thu, 21 Aug 2025 09:08: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 1up1HG-0006al-Dy; Thu, 21 Aug 2025 09:08:10 +0000
Received: by outflank-mailman (input) for mailman id 1088262;
 Thu, 21 Aug 2025 09:08:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5Hha=3B=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1up1HF-0006af-28
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 09:08:09 +0000
Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com
 [2a00:1450:4864:20::52f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5a646c38-7e6e-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 11:08:07 +0200 (CEST)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-6188b7550c0so1146173a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 02:08: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
 4fb4d7f45d1cf-61a758bedf1sm4756282a12.52.2025.08.21.02.08.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Aug 2025 02:08: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>
X-Inumbo-ID: 5a646c38-7e6e-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755767287; x=1756372087; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=hSAGfWHiSTq6a2buNbs69CsavGFojiL0rmGC11x6+cg=;
        b=UwXAEkeCAlgfqbPM++iAvESGCf/JbAx++nU+SuFa2I/1+EIo9nOd+KUOA4Pmvflo3g
         ktP2baNhxemqrQbL2a+5wIoGbZo/QIeJyya1+HXJndH8h+fIi7Qkn8fjC1TtC71Rrlbb
         Bt35sA21Bdy9fgQznnnx/5A/auGIs+EaH0jNVPvXKneo73QgDR1oVcEfeCOe1Hamhodd
         +9FESHm1xYmZXtPjVryLxOI7koBltQsRchTAWJ6o86swT5sami2OWXp+sjczx89eZU+t
         TOnH2jBmpTbApi/5XDRZ8wGg90T7g1Ikq2KYibq5VwZlD6D8Y2cCc1eik5zU1kivSO+4
         P+1w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755767287; x=1756372087;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hSAGfWHiSTq6a2buNbs69CsavGFojiL0rmGC11x6+cg=;
        b=fxEP0BDpxCGlZEGml+8vNjr1og6orUqtKQ0+uinhXURdcNhSF+VZfofWISZS2OufPP
         MsVVeG+IjWEIk7wek98jsaOfDFp0eRoe9P1nJ1fcermdVKkNt54uhtNGma1UcMYo4X9W
         4wtGnqJI5gMHFZKyvyuSNiW6lg8DUFy+LT9QG215y4Fu/s8QehT4PHOdIbNbLdNtXnJp
         QHfRfbwLa0L0D+SrqSeDhIwCQjLjPgfl4WZflhnPm07aneYc9P77lvdm6FlwZ6N8TXUZ
         fhI9X9fInwVtRj7hgGXTXqyzhfMnk2sW8PwyglI0tPZERDzSZHYVRJUd4FShWh19SmM8
         o5/w==
X-Forwarded-Encrypted: i=1; AJvYcCVuBB/iNzde0LVdAagq12Gw6PPTSQNlH9zqdSgwjIcHLC2cHMDtFr9EMpTZv113Ytgn12ZMS4B+Dvw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyBGzY/viWatVX/hBj3eqO5RRlSaO7zDDf4GZ3OSbvJ+u/doAUe
	gEIgkevsPSkeE2BmNDBhhF1E4tBu1+cTPriG5eINyJvUf2H5StWCV8LI5jrNBZobsg==
X-Gm-Gg: ASbGncu6zVuhufvXMoqmw3nxwJYNNmQ0at+Ryt9l8WoZfKSqtm4OVODUTFRvesxNFFI
	CKlJon1Qr+T0fDELrDWdzG9bQfAaGZYYaymYcLVvWCfguf0kZmb1caz4eGoFuhLnSOJuegL+LpN
	qCnBg7Bv/jUoQqzwG1ufzERKi5AJQg5XHIdj+f5wUmsyGP2+jPLjQFZrjXcR8NDca1A/MT4oFNP
	jMmeCMy2ROUlgVJnC/gQnuW+mSYd4dA+XcQdWOEzepYe8IoS1PDQRNX9o8B+2b7xk114s07g5cg
	p73McFzvNFYsUcSmjJNu2Xi+q+MbBfczln6buys6KM8GwyGXWvckARPXEblJJVUNO3a0TIj582b
	GnPhetOH/WYn7ZDVaWfTzVDH/VZtc0IuHfoWVcywKe9OJuMqErNWheQl9gDwuN4enGthReroYeu
	MNs4u0SCYXd+DvZdMVwSxaT4mmEylk
X-Google-Smtp-Source: AGHT+IGM/hm3s9vS1+Hszm9PhpkIJIY/xzFTS/1zS6ETSaY+Exdg4sahhw8IVA5hszSye6IAmfdrBw==
X-Received: by 2002:a05:6402:3590:b0:617:b2aa:576a with SMTP id 4fb4d7f45d1cf-61bf86deb27mr1524852a12.3.1755767287116;
        Thu, 21 Aug 2025 02:08:07 -0700 (PDT)
Message-ID: <26bad9fb-3c4b-4423-a443-3406d07d56e0@suse.com>
Date: Thu, 21 Aug 2025 11:08:05 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/3] xen/pci: add discovered PCI device at boot
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: Luca Fancellu <luca.fancellu@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?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>
References: <cover.1755683961.git.mykyta_poturai@epam.com>
 <bb2589996131b0e7e645c0af281b9862e2e0f4cb.1755683961.git.mykyta_poturai@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <bb2589996131b0e7e645c0af281b9862e2e0f4cb.1755683961.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 20.08.2025 14:28, Mykyta Poturai wrote:
> From: Luca Fancellu <luca.fancellu@arm.com>
> 
> In dom0less mode, there is no dom0 that can call PCI physdev ops to
> register PCI devices to iommu, so it needs to be done by Xen.
> pci_add_device requires some default domain, we don't have hwdom, and
> the guests are not yet created during the PCI init phase, so use dom_io
> as a temporary sentinel before devices are assigned to their target
> domains.
> 
> Rename setup_hwdom_pci_devices to setup_pci_devices and add dom0less
> handling to it.
> 
> In pci_add_device there is a call to xsm that doesn't consider the
> requester of the function to be Xen itself, so add a check to skip
> the call if the owner domain is dom_io, since it means the call is
> coming directly from Xen.
> 
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> ---
> (cherry picked from commit eff51e50021b75f5a50533f7de681b2ce044f5bd from
>  the downstream branch poc/pci-passthrough from
>  https://gitlab.com/xen-project/people/bmarquis/xen-arm-poc.git)
> 
> v1->v2:
> * integrate add_discovered_pci_devices into existing routines
> * better explain the need for dom_io

What I continue to miss is an explanation of why devices can't go to their
ultimate "destination" domain right away (once those have been created),
i.e. why the dom_io intermediary is necessary in the first place.

> --- a/xen/drivers/passthrough/pci.c
> +++ b/xen/drivers/passthrough/pci.c
> @@ -35,6 +35,7 @@
>  #include <xen/msi.h>
>  #include <xsm/xsm.h>
>  #include "ats.h"
> +#include "xen/dom0less-build.h"

No, please don't, at the very least not this way (using quotes rather than
angle brackets). I may guess that it's for is_dom0less_mode(), but even
then I wonder whether that declaration wouldn't better move elsewhere. It
simply feels somewhat wrong to include this header here.

> @@ -1181,19 +1185,21 @@ int __init scan_pci_devices(void)
>      return ret;
>  }
>  
> -struct setup_hwdom {
> +struct setup_ctxt {
>      struct domain *d;
>      int (*handler)(uint8_t devfn, struct pci_dev *pdev);
>  };
>  
> -static void __hwdom_init setup_one_hwdom_device(const struct setup_hwdom *ctxt,
> +static void __hwdom_init setup_one_pci_device(const struct setup_ctxt *ctxt,
>                                                  struct pci_dev *pdev)

Nit: Indentation then also needds to change on this following line.

>  {
>      u8 devfn = pdev->devfn;
> -    int err;
> +    int err = 0;

This doesn't suffice, as ...

>      do {
> -        err = ctxt->handler(devfn, pdev);
> +        if ( ctxt->handler )
> +            err = ctxt->handler(devfn, pdev);
> +
>          if ( err )
>          {
>              printk(XENLOG_ERR "setup %pp for d%d failed (%d)\n",

... below here we may continue the loop even if we got an error. "err"
needs setting unconditionally in the loop body, and hence maybe better
with a conditional expression.

> @@ -1229,18 +1235,26 @@ static int __hwdom_init cf_check _setup_hwdom_pci_devices(
>              if ( !pdev )
>                  continue;
>  
> +            if ( is_dom0less_mode() ) {

We're in a __hwdom_init function. You can't call an __init one from here.

Also nit (style): Brace placement.

> +                int ret = pci_add_device(pdev->seg, pdev->bus, pdev->devfn, NULL,
> +                                         NUMA_NO_NODE, ctxt->d);
> +                if (ret)

Nit (style): Missing blanks.

> --- a/xen/include/xen/pci.h
> +++ b/xen/include/xen/pci.h
> @@ -220,9 +220,8 @@ int scan_pci_devices(void);
>  enum pdev_type pdev_type(u16 seg, u8 bus, u8 devfn);
>  int find_upstream_bridge(u16 seg, u8 *bus, u8 *devfn, u8 *secbus);
>  
> -void setup_hwdom_pci_devices(struct domain *d,
> -                             int (*handler)(uint8_t devfn,
> -                                            struct pci_dev *pdev));
> +void setup_pci_devices(struct domain *d, int (*handler)(uint8_t devfn,
> +                                                        struct pci_dev *pdev));

I think in this case the 2nd parameter would better remain on the following
line, to limit overall indentation.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 09:19:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 09:19:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088271.1446030 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up1Rg-0003xh-Ft; Thu, 21 Aug 2025 09:18:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088271.1446030; Thu, 21 Aug 2025 09:18: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 1up1Rg-0003xa-DC; Thu, 21 Aug 2025 09:18:56 +0000
Received: by outflank-mailman (input) for mailman id 1088271;
 Thu, 21 Aug 2025 09:18:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5Hha=3B=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1up1Re-0003wM-Qe
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 09:18:54 +0000
Received: from mail-ej1-x631.google.com (mail-ej1-x631.google.com
 [2a00:1450:4864:20::631])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dabbe609-7e6f-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 11:18:52 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-afcb79f659aso126187166b.2
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 02:18:52 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afded2fc541sm352266066b.26.2025.08.21.02.18.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Aug 2025 02:18: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>
X-Inumbo-ID: dabbe609-7e6f-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755767932; x=1756372732; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=b6/aG7zOORt47TtTgpDNhbpehE6McyGOIen27g6zISg=;
        b=HTLZSVWELxlchi5ZnzY9gOrbPyaVm0BlrQ4dU+jUhiq9POvs/Bmnjfh+h5KwYv1EJZ
         k2nnVMls/EKQQXwZqK2J6jDKXZwNPOqxuj1YNGR+usLAKbyEN3PKFJoJqevVtrwFy0O3
         LXCvM4iI0FDMIPBAkysng512DPOwqLlN3ybbN9nY/H9CgKSbDC9jYrOEKfBkCD2TwEK8
         oajCy4X/12sF3/WKKqbcQRzaTYz34L7LXl0+wRZFRK32IoEwJ1JZJB/PbNe1QE05X2ft
         3Zx0OZiI/iNijaHdejDlEM+t7uUpSW2KO9vOTJKD4NxVH0kxzYWRYENorYEFd3lc6ZJg
         Qfdw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755767932; x=1756372732;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=b6/aG7zOORt47TtTgpDNhbpehE6McyGOIen27g6zISg=;
        b=tfsJQG7jn6p1nbdwpsA9Us2LUG9uGIYpJNJKSa4DVDq1eDitD4LX0FL2WZAJLNtonS
         S7DToysm87GZdlIm6Mg8MXKpKE/UbVLHaTKG0P3lwzwg4ZJap+BAodCPLCAUAor5t0mt
         5a1VXXIjgNlyFnRKWXroq9QpcD2QguVCDAidlXq7JBKzFzE0U8sg+ySZqG1pUNPbj16l
         TgZQv9YKvoNPOzQQdiJsBJABNPM8R8E7Qt7DtGLlYO9KBVZOrBp3IxNIm26jx6DiOb/X
         4ut+Um9HpXUmfUzoQuqnU0Ob9Vux7fhlZkCMIlQo4x0VMmbdsTJjH2d/XP8w9N7JJBEX
         Mh0w==
X-Forwarded-Encrypted: i=1; AJvYcCWqku8GdFOO/7KXOoxJjQlwgjLXxwD3r7DLZnu+CY9Ay10h0Aex4v1rGNtGclTonji33W6uGfsVlVQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwWhay3qiLtCBjjUlTJmLQQlK1PoFAyqeW9cpqKlTbkepZiAOLN
	og4zMP7tXnyuUn976ZpjDxtxZdjLrZ5dDZ3JudP6ds0Dv0YU7ilijn6c1zTxaoKUVg==
X-Gm-Gg: ASbGnctKLmeJ0xNah4ZJVBIv96btcIjaqP1bSU6aK/akj61PQ+tn8Feud/wFatXK0L+
	critzRdO8/YSIw5idIZTqFkpuKOnhZ79Sd1fpfyzz/PDxiZvaOdtIkM+09ZAB/WnCFfDPii687V
	wpiMaEF9PzfJjdmN8xQE/FPg+MOa/aUVEZjzLwuynOQzzbgBrxN3ZOFOAOLkXNYkEGjlgMMb7fN
	xnfh+DtUfBZtIoDwUKolXP0aBlvn0U5608vcMWkBcf68+V6ZEgJmSvpk19bBxUTV+hjgyzCVl5e
	qzYLOLPzWww4CM0QF1mqnWoBf4M8Zme0ESERdKPL1vbItWA0YHIGTONwtzQ9W2VchQ1vhOQ1JSy
	y3t3OD6rbSo0vsEiudkwAYAR+g0K6SwhVK/dj4A7uWejz0CPymd2oRLCNy0drKzngPm95b/EuyZ
	tW3yqB4to=
X-Google-Smtp-Source: AGHT+IE2TjfJ90Tll2mveg5doi1Agb9W68Yj/glcn6ylD+TR4S3Je32FJt+2jpJvZRkOabwEbIQQ4w==
X-Received: by 2002:a17:907:5ca:b0:ae0:ad8c:a559 with SMTP id a640c23a62f3a-afe07abd710mr163112266b.4.1755767931805;
        Thu, 21 Aug 2025 02:18:51 -0700 (PDT)
Message-ID: <5199396a-685c-4839-b7cb-d32e3f4a0b48@suse.com>
Date: Thu, 21 Aug 2025 11:18:50 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] misra: add deviation for MISRA C Rule 11.3
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <d6a8682c98880d66ea99f882520b3defda0e3fe0.1755672275.git.dmytro_prokopchuk1@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <d6a8682c98880d66ea99f882520b3defda0e3fe0.1755672275.git.dmytro_prokopchuk1@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 20.08.2025 09:17, Dmytro Prokopchuk1 wrote:
> MISRA C Rule 11.3 states: "A cast shall not be performed between a pointer
> to object type and a pointer to a different object type."
> 
> Violations of this rule arise due to the 'container_of' macro, which casts
> a member of a structure to its containing structure:
>     container_of(ptr, type, member) ({                             \
>            typeof_field(type, member) *__mptr = (ptr);             \
>            (type *)( (char *)__mptr - offsetof(type,member) );})
> 
> The 'container_of' macro is safe because it relies on the standardized and
> well-defined 'offsetof' macro to calculate the memory address of the
> containing structure, while assuming proper alignment and ensuring no
> undefined behavior, provided that the input pointer is valid and points to
> the specified member.
> 
> Configure Eclair to suppress violation reports related to 'container_of
> macro. Update 'deviations.rst' file accordingly. Add Rule 11.3 to the
> monitored list.
> No functional changes.
> 
> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>

Looks largely okay; just one nit and a question:

> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
> @@ -403,6 +403,14 @@ because the semantics of the 'noreturn' attribute do not alter the calling conve
>  }
>  -doc_end
>  
> +-doc_begin="Convesions in the 'container_of' macro are safe because it relies on

"Conversions" (also in deviations.rst)

> --- a/automation/eclair_analysis/ECLAIR/monitored.ecl
> +++ b/automation/eclair_analysis/ECLAIR/monitored.ecl
> @@ -45,6 +45,7 @@
>  -enable=MC3A2.R10.2
>  -enable=MC3A2.R11.1
>  -enable=MC3A2.R11.2
> +-enable=MC3A2.R11.3

While the description mentions this change, it doesn't say why (e.g. "no
violations left" or "only this and that violation left" or some such).

> --- a/docs/misra/deviations.rst
> +++ b/docs/misra/deviations.rst
> @@ -393,6 +393,14 @@ Deviations related to MISRA C:2012 Rules:
>         (i.e., less strict) alignment requirement are safe.
>       - Tagged as `safe` for ECLAIR.
>  
> +   * - R11.3
> +     - Convesions in the 'container_of' macro are safe because it relies on
> +       the standardized and well-defined 'offsetof' macro to calculate the memory

Actually another nit: Here as well as in the description, it would be nice
to add parentheses, so indicate the function-ness of both macros (i.e.
container_of() and offsetof()).

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 09:31:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 09:31:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088280.1446040 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up1do-0001gB-Ib; Thu, 21 Aug 2025 09:31:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088280.1446040; Thu, 21 Aug 2025 09: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 1up1do-0001g4-Fu; Thu, 21 Aug 2025 09:31:28 +0000
Received: by outflank-mailman (input) for mailman id 1088280;
 Thu, 21 Aug 2025 09:31:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=O+vP=3B=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1up1dm-0001ff-PP
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 09:31:26 +0000
Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com
 [2a00:1450:4864:20::430])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9b81d3b9-7e71-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 11:31:25 +0200 (CEST)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-3b9edf4cf6cso561793f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 02:31:25 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3c4f77e968esm1132018f8f.21.2025.08.21.02.31.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Aug 2025 02:31: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>
X-Inumbo-ID: 9b81d3b9-7e71-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755768685; x=1756373485; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=7UUzI5xEraTbBLRyDZmYidZa6/vhfjYBua1iJJI3no8=;
        b=caUm7fERrvb4k3Uqo719bY6nxEZJCji5X7lQDwpAuFKHZzq2eqvXBk5U95gK2YoqAh
         4bjM1XTyA9GQOqZ46dUY5bv0QIAhpvKnZND3xgW6oZ3eIIm0Z+64fYKmv6xCDRL4qKBm
         l754+xEMftdwnLq4E/wG48oLMRaXYQAHEiKF0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755768685; x=1756373485;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7UUzI5xEraTbBLRyDZmYidZa6/vhfjYBua1iJJI3no8=;
        b=GJ7z3QX78SLnZBAuysWEPyFSEQX65ZXrw4/biE2V17yPvVpCNgIfDoOZ71gqkQGha5
         0PWuZUAjeFeSNhoAT40JMm/wTRVjWHcQNK72xW56KCimJEp4DBnTeD1lbCSrSAylzyNL
         asElJ0cY3hXUt1n/lUFFVS18n63PGm6vM3Obuomt7McTg/wE9y5wDWi6lsxYWIMfvwTY
         Yd6mOiBGGPPkewCBCi9Mrjbge5uT/1n/WGJcz4X/XgSltnkIu+3oUht8JtObZ1HWR1Qa
         DVsGme5PErW82kNky66Ctf+1VjZgyxewuCy8FoHbaKZjW/plZQJtu8crh7CHQv1wuw4o
         srCg==
X-Forwarded-Encrypted: i=1; AJvYcCU6S8bw1DU6HK+va91O1/w3xVUDsy/G8k1OxMML1vtOsFFwc4nNAxHjktSwoLCrxTgCsyDza2QrPWw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxAsX0LugD9GBYblFY0qrBYtAXWiI7pOwpaWP76sB9A7+ke4HJh
	8mKTAXqT4k7bdkdLhzbtVFwlk+6eC7BWSIz9EugWGQKce3ERsS31RbVmg3X4hyvqmcw=
X-Gm-Gg: ASbGncvWBKGP/yzvxZjrMgcN6VA8So6qJD7BRPCnt/8/qWqK/jTo22ombvERLG2J+5D
	mNiLDqQ0zLzmUZa+BtUcppaI8TCVDq7/SJvFDnhaKgE/IXjpF9s3niDVcajU8yW6fNzqgh7gZrP
	mpoOnE7ONhoGuUX/T+BkS1obPwwpysfXNiTLNPl8D3gSMqEhhSAJRCAs+vPnH/Bv/Bo6Pj+C3ci
	scPpLfa0P7t1VHarWu663DbHJ4+H+ZyUiLcBAkaa/9uGikC2FBVTpvNGcr3OdE2OE4kSLC82/K1
	y9tdYX7sLcLWyquR2aKd+0TxaUbVl8zbniCgkqfT50ukzYzP7B6dpxh1BKsDK4MxMyL1mxHsdpo
	TrO7bo/NeaepzA4IpQlhHja6atV3cVBhf2BnX9PX+PgP+JcS99hDaN5rVfm1MRCbiAQZT
X-Google-Smtp-Source: AGHT+IG5yRHb4bghgS9XvZ8KlDpoBE+3aKKsD2whqGUrsAgR9vpzKOMYGS0kTz1v4w/gza9piLtviA==
X-Received: by 2002:a05:6000:4210:b0:3c0:7e02:8676 with SMTP id ffacd0b85a97d-3c4978390fbmr1362296f8f.61.1755768684671;
        Thu, 21 Aug 2025 02:31:24 -0700 (PDT)
Message-ID: <5b87bb85-3e52-453e-82ab-6d4f9b7eec28@citrix.com>
Date: Thu, 21 Aug 2025 10:31:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] releases: use newer compression methods for tarballs
To: Jan Beulich <jbeulich@suse.com>
Cc: Julien Grall <julien@xen.org>, Stefano Stabellini
 <sstabellini@kernel.org>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <fdd60576-c852-4ce9-921d-9e77a86a3e66@suse.com>
 <f2105411-ac78-4283-a7d7-45f5b1bc0bfe@citrix.com>
 <eac220b7-d5e9-4710-a0fd-e69a0162df7d@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: <eac220b7-d5e9-4710-a0fd-e69a0162df7d@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 21/08/2025 8:26 am, Jan Beulich wrote:
> On 20.08.2025 14:15, Andrew Cooper wrote:
>> On 15/07/2025 7:33 am, Jan Beulich wrote:
>>> It's unclear to me why we have git create a tarball, extract that, just
>>> to then make a tarball again (without any special options, like to
>>> override owner or timestamps;
>> That's because in c5be91eb8140 you deleted the intermediate step of
>> merging qemus
> Hmm, perhaps - I'm generally trying to keep the size of such changes down,
> when working in an area I'm not overly familiar with.
>
>>> in this context I notice that tarballs
>>> created by Andrew have file ownership of andrew/andrew, while ones made
>>> by Julien use root/root).
>> Ownership where exactly?Â  the tarball itself (which will be down to
>> accounts on downloads.xenproject.org) or the tarball contents itself?
> tarball contents.
>
>>> lzip, unlike the other two tools, doesn't really show a progress
>>> indicator with -v. Merely having final statistics may make the use of
>>> the option here questionable.
>> I can't say I find any of the stats relevant.
> Happy to drop the v options.
>
>>> --- a/tools/misc/mktarball
>>> +++ b/tools/misc/mktarball
>>> @@ -31,4 +31,14 @@ git_archive_into $xen_root $tdir/xen-$de
>>>  
>>>  GZIP=-9v tar cz -f $xen_root/dist/xen-$desc.tar.gz -C $tdir xen-$desc
>>>  
>>> -echo "Source tarball in $xen_root/dist/xen-$desc.tar.gz"
>>> +if [ -n "$(command -v xz)" ]
>>> +then
>>> +  tar c -C $tdir xen-$desc | $(command -v xz) -v -9 >$xen_root/dist/xen-$desc.tar.xz
>>> +fi
>>> +
>>> +if [ -n "$(command -v lzip)" ]
>>> +then
>>> +  tar c -C $tdir xen-$desc | $(command -v lzip) -v -9 >$xen_root/dist/xen-$desc.tar.lz
>>> +fi
>>> +
>>> +echo "Source tarball in $xen_root/dist/xen-$desc".tar.[glx]z
>> If we're deciding to use multiple compressions, they want to not be
>> optional here.Â  I'd far rather have a reminder to install the package,
>> than for it to simply be omitted.
>>
>> We don't want to be re-tar-ing now that the qemu's are gone, so I think
>> the structure wants to end up as:
>>
>> git archive --format=tar HEAD > tmp.tar
>> gzip -9 < tmp.tar > $xen_root/dist/xen-$desc.tar.gz &
>> zx -9 < tmp.tar > $xen_root/dist/xen-$desc.tar.xz &
>> lzip -9 < tmp.tar > $xen_root/dist/xen-$desc.tar.lz &
>> wait
>>
>> Might as well use the multiple cores better...
> I, too, was thinking of that. Yet as per above, when fiddling with code I'm
> not overly familiar with, I try to limit the amount of change done. As you
> ask for a bigger change, I can certainly do so.

Would you like me to do the patch then?

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 09:35:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 09:35:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088296.1446051 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up1i5-0003NQ-6c; Thu, 21 Aug 2025 09:35:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088296.1446051; Thu, 21 Aug 2025 09:35: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 1up1i5-0003NJ-3M; Thu, 21 Aug 2025 09:35:53 +0000
Received: by outflank-mailman (input) for mailman id 1088296;
 Thu, 21 Aug 2025 09:35:52 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5Hha=3B=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1up1i4-0003Jz-3Q
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 09:35:52 +0000
Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com
 [2a00:1450:4864:20::62d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3955a7d9-7e72-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 11:35:50 +0200 (CEST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-afcb6856dfbso148846266b.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 02:35: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
 a640c23a62f3a-afded479868sm356327766b.58.2025.08.21.02.35.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Aug 2025 02:35: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>
X-Inumbo-ID: 3955a7d9-7e72-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755768950; x=1756373750; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=RbYrYvSmDJU5K4UC2r7hitotey+GrqoypZRKUkZHyuY=;
        b=O9Uh/Eb6TjgzYp0yriGZLcMiQbP/yr25A3xSlUJgEyrohKhKgyi2tN5Xt5RH3M+4fH
         kM3Grqx4tEGfaL/aBtqfNbvobmFTjcwUPhq/h5Xm5fUW6BqUQ6ZFVJvw+KwehVuGQT9l
         CL1lytUEPT/LOhpw5gWtrwwbEdwV8komdpxsQvxOZBejxb60j7JK38BKPTNSnDuQcY9d
         5+EYFmFvxzo4JVKIbTbtONxXOZUOZQyXupYZcwuPXWeACA/JA8j3gJm9qMJNpqB+Urui
         kHO6w5jdWjzIUDSAAiU3KVN74ec62vNq8HqMIgjKe3dL11/fcSSTnRBM272nZhrmJhbN
         lXig==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755768950; x=1756373750;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RbYrYvSmDJU5K4UC2r7hitotey+GrqoypZRKUkZHyuY=;
        b=Rv+8t8Rw9AFzG2yUSNul7dYQC/2ZrzS5043G6XvLW1rW53XeXnUnrafHBi0rLF/IjP
         D7+hQmwbS8gdJcApiXXbbzxq/BV9a/FQJjJUnrvNZ556mEZPRdqT+YCLNrQj+glF9axe
         E7of8XtPsM/z+dBmw7mA5Y0stPp/Kt2FeqY71XcRxryQda4NONxbIHYlAnxEeMSWw1H+
         silZFmfnprrPTMRItG390MwjzPnf/WPMF17Eaj8N3VquaJrme2cmnCJ4om9d36v2Lt0g
         frvEd5rWM+d96p8ETXq6V5FsuZu95W0R2i30QJe4x8cySum8GqWDA/OAKiMBoWxGuIti
         mxgg==
X-Forwarded-Encrypted: i=1; AJvYcCUygBIyfflKWVJ1m4ViDR0nts8iHitLsJYmeHjNM8YFDNfe0vrWh+ElGKwsM1jz7ifwKDgKv3qrFpE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzstY88wsKojy6GI/IWdpH/lYAXwOkDjK6f56sSMBar4dxYasXX
	18AFjhFOYVAnDqDl96VPp9je/KL4lCgoJ5CLoZCColFlUfleIXPdIvygTr0HQmUzAA==
X-Gm-Gg: ASbGncvYsyHEb3qgHhHW99G+cZcn0ZGpRToy7bEWKYSj2MpgAuft7kk5fa3Nu5dG3aJ
	I7uCsELN0mPPgfOFD7zecuGuvw5wJwe8ZwHe8MKMnMzey0pqWhCitT5mE2YzlJ0SX7dRoJBIy1i
	lgS6ykP18s+DyfdPwYvbYLz5grKNxpY5Z859ANsYemh0o5fATvHbLLxFotgXx+IFcuqDT1oxfr+
	igVPfJF/JoJ2ePMi2427+j0P4zxSuP9UxF1sP+QlQaRmHoN+cVn1Sr65dSZk0Ol1cMtT8/s8MmF
	qMJaAWB+ck91pJAWa+c+lQOTJ1jmCHV6EfK2pAqKTMrOwQ+3jo5Y0eUH7Xkn+IjhW+nlCGlex4m
	zekJenHEGkqyNsCkT4ejMrtpCm/VepGEFz3LZuegG/A0sS2bOxjRBh8aP9eYmTXGtmm2OtLxFow
	h0lcZMmvjgxYJA16laiQ==
X-Google-Smtp-Source: AGHT+IE2A+Mb8/ORucK97YKaEfK+9uQPcVYwU7VADy7wqTjiAcm4zPwO9yWXBDcQ+93T9Fuiawm0PA==
X-Received: by 2002:a17:907:7e84:b0:afc:d7ee:282d with SMTP id a640c23a62f3a-afe0ba8d568mr165366366b.20.1755768949721;
        Thu, 21 Aug 2025 02:35:49 -0700 (PDT)
Message-ID: <79663681-466b-43d9-9845-3f16f8a33cb5@suse.com>
Date: Thu, 21 Aug 2025 11:35:48 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] misra: fix Rule 11.3 violation in
 'vcpu_mark_events_pending'
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <7210337994620b60ed123ec6fc73e469c287adf6.1755676142.git.dmytro_prokopchuk1@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <7210337994620b60ed123ec6fc73e469c287adf6.1755676142.git.dmytro_prokopchuk1@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 20.08.2025 10:00, Dmytro Prokopchuk1 wrote:
> MISRA C:2012 Rule 11.3 states: "A cast shall not be performed between
> a pointer to object type and a pointer to a different object type."
> 
> The function 'vcpu_mark_events_pending' contains a non-compliant cast
> to (unsigned long*). Remove the explicit cast and pass the compatible
> pointer type to the 'guest_test_and_set_bit' macro.

No-where up to here (incl the subject) it is said that this is an Arm-
only issue. Hence why I ended up looking in the first place.

> Fixes: c626aa1a5a (arm: implement event injection, 2012-06-01)
> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
> ---
> Test CI pipeline:
> https://gitlab.com/xen-project/people/dimaprkp4k/xen/-/pipelines/1993054203
> ---
>  xen/arch/arm/domain.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
> index 310c578909..6371e68cc7 100644
> --- a/xen/arch/arm/domain.c
> +++ b/xen/arch/arm/domain.c
> @@ -1166,7 +1166,7 @@ void arch_dump_vcpu_info(struct vcpu *v)
>  void vcpu_mark_events_pending(struct vcpu *v)
>  {
>      bool already_pending = guest_test_and_set_bit(v->domain,
> -        0, (unsigned long *)&vcpu_info(v, evtchn_upcall_pending));
> +        0, &vcpu_info(v, evtchn_upcall_pending));

It'll be Arm maintainers to judge, but my take is that the previously
questionable construct better wouldn't be made yet more questionable.
What's missing, at least for Arm32 aiui, is a (build-time) check that
the field actually lives at a 32-bit boundary and that read-modify-
write operations carried out on it at 32-bit width (this is true even
for Arm64) won't have an impact on what follows (this may be possible
to cover by just a comment, as you can't really check for the absence
of struct fields).

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 09:40:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 09:40:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088306.1446060 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up1ml-0006FR-OD; Thu, 21 Aug 2025 09:40:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088306.1446060; Thu, 21 Aug 2025 09:40: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 1up1ml-0006FK-LQ; Thu, 21 Aug 2025 09:40:43 +0000
Received: by outflank-mailman (input) for mailman id 1088306;
 Thu, 21 Aug 2025 09:40:42 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1up1mk-0006FE-6I
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 09:40:42 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1up1mi-00GgFh-1I;
 Thu, 21 Aug 2025 09:40:40 +0000
Received: from [15.248.3.91] (helo=[10.24.67.183])
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1up1mi-00BNWo-07;
 Thu, 21 Aug 2025 09:40: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=6BWl5dUvRqYj82XZXyd1cMA74pbVYYusGlLz3T5sy14=; b=ovMLyTcDtQUiJrojQ+SSyiI2Rc
	9x7hRI2dLpWlOhvQOM1AAfuJ777vyzF9iKRzb86nbBrxwWlq6s09ATicccuo16phTCks58C0xvyCE
	synYMJYdFeEQ9PYF+lCfIWodTNFxa39rUXfFnXfr+1j2e77n44HiQeuqkduSG3voKAMk=;
Message-ID: <b53e72af-8d63-4394-80f4-80d14721e7dd@xen.org>
Date: Thu, 21 Aug 2025 10:40:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v12 1/6] altp2m: Drop p2m_altp2m_check() stubs on non-x86,
 move prototype, and guard uses
Content-Language: en-GB
To: =?UTF-8?Q?Petr_Bene=C5=A1?= <w1benny@gmail.com>,
 xen-devel@lists.xenproject.org
Cc: 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>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Tamas K Lengyel <tamas@tklengyel.com>,
 Alexandru Isaila <aisaila@bitdefender.com>,
 Petre Pircalabu <ppircalabu@bitdefender.com>
References: <cover.1753953832.git.w1benny@gmail.com>
 <44b4b60854cd7db6d529ff23bb228e9ac19a2a75.1753953832.git.w1benny@gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <44b4b60854cd7db6d529ff23bb228e9ac19a2a75.1753953832.git.w1benny@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Petr,

On 31/07/2025 10:27, Petr BeneÅ¡ wrote:
> From: Petr BeneÅ¡ <w1benny@gmail.com>
> 
> Remove the noâ€‘op stubs from the ARM, PPC, and RISCâ€‘V p2m headers and stop
> providing a stub in arch/x86/include/asm/p2m.h.
> 
> Declare p2m_altp2m_check() in xen/include/xen/p2m-common.h and gate all
> call sites with CONFIG_ALTP2M:
>   - wrap the fast_single_step block in hvm/monitor.c with #ifdef CONFIG_ALTP2M
>     (IS_ENABLED(CONFIG_ALTP2M) is not used here, because in the subsequent commit
>     hvm_vcpu::fast_single_step will be guarded by CONFIG_ALTP2M)
>   - make the vm_event.c path conditional via IS_ENABLED(CONFIG_ALTP2M)
> 
> No functional change intended: on builds without ALTP2M the calls are
> compiled out; on builds with ALTP2M behavior is unchanged.
> 
> Signed-off-by: Petr BeneÅ¡ <w1benny@gmail.com>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Julien Grall <jgrall@amazon.com> # arm

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 09:46:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 09:46:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088315.1446071 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up1s5-0000Nd-B1; Thu, 21 Aug 2025 09:46:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088315.1446071; Thu, 21 Aug 2025 09:46: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 1up1s5-0000NW-7s; Thu, 21 Aug 2025 09:46:13 +0000
Received: by outflank-mailman (input) for mailman id 1088315;
 Thu, 21 Aug 2025 09:46:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5Hha=3B=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1up1s4-0000NQ-EH
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 09:46:12 +0000
Received: from mail-ed1-x534.google.com (mail-ed1-x534.google.com
 [2a00:1450:4864:20::534])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ab19d051-7e73-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 11:46:10 +0200 (CEST)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-6188b7550c0so1192165a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 02:46: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
 4fb4d7f45d1cf-61a8c1afaa0sm3450986a12.25.2025.08.21.02.46.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Aug 2025 02:46: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>
X-Inumbo-ID: ab19d051-7e73-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755769570; x=1756374370; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=deloDzXxMgTQ54PJsdinO80QshYKSD6lzaguSnvcy1Q=;
        b=Yi8pyQba1w+Y85ScJekA7grnDiDey6m6cNoknnZc1WD2NpceFxMB+WHN3sLFuQ0vbo
         mZEi0OYM+gF/WBzU+ZptThdj1Q48TFFwhMBpDVASzcRX1BU0Kkf50AkMvN/M0ha9Tk3m
         ZDFtvUSQhxGJLHUvKCqkxI+m8QN7JROvQddGa3ZMJc2Q1oI80sZSFy9SORprVtjt9N/J
         36QrYUoSuckTfhtThEwmCbF+yN3rO2rRoy+wxPxnpG5zyTKVry/fnHjc6udc/wH0ZgPQ
         a6GiKFZAQGhNS7oUX5B+mJIMnK8zYVH3tIEfjjAfgt6xEpKhibUuuY5HWPcRW/jnb5Zi
         3gsQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755769570; x=1756374370;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=deloDzXxMgTQ54PJsdinO80QshYKSD6lzaguSnvcy1Q=;
        b=v5EQnd5tpZxsoSwb4qt28rSgBwDf1DjrNmDxzXcGjVz2o8X9xwvQORTN8tyGuIVsGv
         UuhFhtiUflfuAZoOxf/gbtgGNK5jMjunceqkNLxW4gi+p7oz2KHOQyCLDPIPXGoj2zFo
         8fNDf7rhRD0GZhbkW4lE6sOGIGqCm6eDQo443w21hbNMDLgaE6pgfC2VJwvX025kj1lM
         1n4iUXF7tqHLUQZa2gbzAmGTSar+WyPbe3bGSWgvFuN+9gO73Jd3KIBDQ7/jx+As7RSB
         S2EL8N0mu/CMoZaeC64PM/MSOnJJ+cth51ZlArTW8ZPtrvvM0JPa0MNkXcZY8fl0bSiK
         fBww==
X-Forwarded-Encrypted: i=1; AJvYcCVcK7a9KG8LpGd74QIXWwMTr/nGQ3reD7dKq/0M1BcUAPxgax0my2zcAKklPV8+CPb3IPqbv/S45yU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyS3YzDQBYcJeBBZkS6xvvmq2pQFDKunK8x0AQOzRgu109glfDM
	Y2GPrc5H70hKO4VRO7XzKf9Gp9mExe1E6ACO2hi+8Fy2FZdHR+EHw6mbDOtHLX7a4A==
X-Gm-Gg: ASbGncsNsRW4J7JiFwKAAkTxP0BTEcaEC9s7lFxTHqhPVRT1U6P7am6rs63XxW+tn32
	vpa4uexrhu2w4wHfMsPGqeaUeXRybjUxj6OO+BeSQ70hxKtI4rlOgq0NnnAt0AXbNmP8RxaMIe6
	8YlMSnypV6eNZj3Bt5Xy/Jq6ZyuXOKuEhMfyBS0e5o8xqYKB9F54PxDcvudLaz/0GuZk2r4a76S
	P0V+NyEC+S7pgP23dy5vduj4djWCCxnyhijiYNOn5eyj4/vAZ6enOokFl1jqoF/960c7CEeMuXm
	eme1o2y9HerlwEnTexKhvEvn37vggQPiv+oO5oJ1fgQL/zKWuYtnYA9qzvpq4zD6nxVw7V/tYHX
	6EiYcHNxiPine6Zejckb+W9EkL2nbKqQFUPIuzn6t1M0xlysI0KSXE7fzq+xopivUWhS3/aqWke
	wSGy5lf0qxpuZw6ZTD7A==
X-Google-Smtp-Source: AGHT+IHVZpUBl7XZ5nkG3XZ6SKleepgDDY1ZWFNh+PY2ZPwa6tWc+CnEkwG0en0FRPky9E7nDKDHqg==
X-Received: by 2002:a05:6402:3496:b0:618:986:7ab5 with SMTP id 4fb4d7f45d1cf-61bf874ef7cmr1462889a12.31.1755769569979;
        Thu, 21 Aug 2025 02:46:09 -0700 (PDT)
Message-ID: <7ca88d87-70b5-4871-827e-308941a739eb@suse.com>
Date: Thu, 21 Aug 2025 11:46:08 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] misra: add deviation for MISRA C Rule 18.3
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <901917945f704643e95842a773be9e8676f76d10.1755690681.git.dmytro_prokopchuk1@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <901917945f704643e95842a773be9e8676f76d10.1755690681.git.dmytro_prokopchuk1@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 20.08.2025 14:44, Dmytro Prokopchuk1 wrote:
> MISRA C Rule 18.3 states:"The relational operators >, >=, < and <= shall
> not be applied to objects of pointer type except where they point into
> the same object."
> 
> Comparisons in the 'find_text_region()' function are safe because linker
> symbols '_stext' and '_etext' represent fixed virtual addresses within

All symbols, after linking, "represent fixed virtual addresses". Not sure
what you're actually meaning to get across here.

> the same '.text' region, and the function 'addr' argument is explicitly
> compared to known valid memory bounds ('text_start' and 'text_end')
> derived from these linker symbols:
>     if ( (void *)addr >= iter->text_start &&
>          (void *)addr <  iter->text_end )

Overall I don't think the deviation can be justified this way. Or else
the same could be said about other similar checks, which may not be
valid to deviate. One particularly important aspect that imo needs
discussing is the safety of the logic with code transformations in mind
that a compiler may in principle do (leveraging UB for optimization
purposes).

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 09:52:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 09:52:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088324.1446081 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up1y8-0003tW-1D; Thu, 21 Aug 2025 09:52:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088324.1446081; Thu, 21 Aug 2025 09:52: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 1up1y7-0003tP-TT; Thu, 21 Aug 2025 09:52:27 +0000
Received: by outflank-mailman (input) for mailman id 1088324;
 Thu, 21 Aug 2025 09:52:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5Hha=3B=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1up1y6-0003s3-46
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 09:52:26 +0000
Received: from mail-ej1-x62e.google.com (mail-ej1-x62e.google.com
 [2a00:1450:4864:20::62e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8a4dc3bd-7e74-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 11:52:25 +0200 (CEST)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-afcb79db329so113683966b.2
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 02:52: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
 a640c23a62f3a-afded479868sm358933966b.58.2025.08.21.02.52.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Aug 2025 02:52: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>
X-Inumbo-ID: 8a4dc3bd-7e74-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755769944; x=1756374744; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=DGvzAJ5la8F34sMYmVBXoIu/QJlwI8wttBjk8XB0yFg=;
        b=QAEbcQ/sVpMU1ncT5x/Wy7w0mzTsYhYWHEGVhN0T2T+nIN0yHNcWVIJ4l4g7/bu5e3
         SzmUB0u9DwapAHn7C18dXFbOBGd9mN9e67uWjAT1B8va6LZ8wuDwLlQN8+KITDRdKynk
         GliRX9ETqA728/dDF5c3U9qAUGHRsFyKmty26q9OfDMgMCBWxH/ydbzQCMzKcSJDrsov
         dzNmrCuBxKAZn5OC/+sTYtxGzvfZpT/HMDM2JfErwq1T3dX2180erirnMXc+JcPpJgFi
         10IHQ15B6PUU3ZCrHm9E5diCh2zed7y38mJmR3NwSt77mRQDISP1sSZmBF6xfyUi8h37
         ZAEg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755769944; x=1756374744;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=DGvzAJ5la8F34sMYmVBXoIu/QJlwI8wttBjk8XB0yFg=;
        b=BIZ7PGgeJ7LVKdSzXQMX1trG3Bx7MIwOzHhRw3trWEa9raV5XYXbAujZo9IpuSeKrm
         AzipQallmfyLGs942Pa/i4uV5bEZnYSt+jc8GhgkYzwd6j652bpOoIQUz2KGN4jkAXMN
         At+WVSznvcT4aKKvg4ITWR4Aio8Hu/g1SRtPTLzvB4bgbSZrxbHqSFQzqRFgE0m43g7C
         ZaMtgcISafqSdbp3/vXam2Ci6Kdl7dWdx6BUdnawnB8VGMfoyV4acPlR4SkbsaoCTcDA
         yswdVDY6gpsEkrKjYU46eu41zAOgg6p6J/OTBuABHGOXTszpS18RUVUfdOJqUxekH6GM
         GYUA==
X-Forwarded-Encrypted: i=1; AJvYcCWU4mIUWK4GYnand1Ap+ivJEQC3chC97Co13RmkxdwHNqXqcg+Sst7x+33Uvqp7/TB72+jXuq047oc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwwCSP8+g7bMgbgnpXY/KwcpQxRJFGKuRwnm9e5uSF7vGmCArzD
	J2ctzer71v1YAWVzfexDFiFZg5n3T5BE32Ud/q4FkjhMlnHs/Oes3Oh2xEPDHLD4jA==
X-Gm-Gg: ASbGnctMofqudVdmXcgeSKbfBmKefaio8Qw0Q5QGonzOSmZ9JI23CMxTg9tQCg9w7Ol
	S6CsjuZixCQmrpzT9gVzfE4rbhDOJeNAqhFxzNhG8jMK1HOFGmPPayH0TdRq8ef0Gzi8+lOL548
	0FaXNHhPf+/nCtTuRQXOsoqhh5/sT394TlnbnlFyQ6g1cBa/JwBaQ1yLYuAOJG+1zUUAHKQIJ8R
	O7L2/5/m/Ja7DgMuT3OQExkPpQsIoUPdsNNLCbGAwstam1ZC9DrDdCcaQbmtZ/z32goHUofUbad
	cyOIpmT0VDsTvc9TsWwEYgsdo4hkDGGaM+ApW7SG/YtSC0hhRKQNl39WV+a9Lqjh4aJA3PL3pVG
	MEFmL3baUFTOUfU72HY7b6mmYo5+XdHDuqS9hQZbvrlsnoU5fPu+NhgsIrM6fMk8dXeVPhxixdV
	pK018naCUyjcoNcBIBAXx5IdXn4VQe
X-Google-Smtp-Source: AGHT+IHzt+tfDNgcndzcUZjq9e6tShbd3AdlAZy8mP9q1Nj7bCTSTTgqns/9VDmge6mQo+q2t3+ZrA==
X-Received: by 2002:a17:907:9287:b0:afc:a190:848b with SMTP id a640c23a62f3a-afe07b3905fmr198568566b.39.1755769944377;
        Thu, 21 Aug 2025 02:52:24 -0700 (PDT)
Message-ID: <b4677d1f-436b-4afe-ab51-dbd1b874b926@suse.com>
Date: Thu, 21 Aug 2025 11:52:23 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] releases: use newer compression methods for tarballs
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Julien Grall <julien@xen.org>, Stefano Stabellini
 <sstabellini@kernel.org>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <fdd60576-c852-4ce9-921d-9e77a86a3e66@suse.com>
 <f2105411-ac78-4283-a7d7-45f5b1bc0bfe@citrix.com>
 <eac220b7-d5e9-4710-a0fd-e69a0162df7d@suse.com>
 <5b87bb85-3e52-453e-82ab-6d4f9b7eec28@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: <5b87bb85-3e52-453e-82ab-6d4f9b7eec28@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 21.08.2025 11:31, Andrew Cooper wrote:
> On 21/08/2025 8:26 am, Jan Beulich wrote:
>> On 20.08.2025 14:15, Andrew Cooper wrote:
>>> On 15/07/2025 7:33 am, Jan Beulich wrote:
>>>> It's unclear to me why we have git create a tarball, extract that, just
>>>> to then make a tarball again (without any special options, like to
>>>> override owner or timestamps;
>>> That's because in c5be91eb8140 you deleted the intermediate step of
>>> merging qemus
>> Hmm, perhaps - I'm generally trying to keep the size of such changes down,
>> when working in an area I'm not overly familiar with.
>>
>>>> in this context I notice that tarballs
>>>> created by Andrew have file ownership of andrew/andrew, while ones made
>>>> by Julien use root/root).
>>> Ownership where exactly?Â  the tarball itself (which will be down to
>>> accounts on downloads.xenproject.org) or the tarball contents itself?
>> tarball contents.
>>
>>>> lzip, unlike the other two tools, doesn't really show a progress
>>>> indicator with -v. Merely having final statistics may make the use of
>>>> the option here questionable.
>>> I can't say I find any of the stats relevant.
>> Happy to drop the v options.
>>
>>>> --- a/tools/misc/mktarball
>>>> +++ b/tools/misc/mktarball
>>>> @@ -31,4 +31,14 @@ git_archive_into $xen_root $tdir/xen-$de
>>>>  
>>>>  GZIP=-9v tar cz -f $xen_root/dist/xen-$desc.tar.gz -C $tdir xen-$desc
>>>>  
>>>> -echo "Source tarball in $xen_root/dist/xen-$desc.tar.gz"
>>>> +if [ -n "$(command -v xz)" ]
>>>> +then
>>>> +  tar c -C $tdir xen-$desc | $(command -v xz) -v -9 >$xen_root/dist/xen-$desc.tar.xz
>>>> +fi
>>>> +
>>>> +if [ -n "$(command -v lzip)" ]
>>>> +then
>>>> +  tar c -C $tdir xen-$desc | $(command -v lzip) -v -9 >$xen_root/dist/xen-$desc.tar.lz
>>>> +fi
>>>> +
>>>> +echo "Source tarball in $xen_root/dist/xen-$desc".tar.[glx]z
>>> If we're deciding to use multiple compressions, they want to not be
>>> optional here.Â  I'd far rather have a reminder to install the package,
>>> than for it to simply be omitted.
>>>
>>> We don't want to be re-tar-ing now that the qemu's are gone, so I think
>>> the structure wants to end up as:
>>>
>>> git archive --format=tar HEAD > tmp.tar
>>> gzip -9 < tmp.tar > $xen_root/dist/xen-$desc.tar.gz &
>>> zx -9 < tmp.tar > $xen_root/dist/xen-$desc.tar.xz &
>>> lzip -9 < tmp.tar > $xen_root/dist/xen-$desc.tar.lz &
>>> wait
>>>
>>> Might as well use the multiple cores better...
>> I, too, was thinking of that. Yet as per above, when fiddling with code I'm
>> not overly familiar with, I try to limit the amount of change done. As you
>> ask for a bigger change, I can certainly do so.
> 
> Would you like me to do the patch then?

No worries, I'll make a v2. It's just that in some cases I'm asked to limit changes
to what's strictly necessary, yet then (when I try to from the start) in others I'm
asked to make a bigger change.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 10:15:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 10:15:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088343.1446119 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up2KZ-0005e7-C4; Thu, 21 Aug 2025 10:15:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088343.1446119; Thu, 21 Aug 2025 10:15: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 1up2KZ-0005dz-94; Thu, 21 Aug 2025 10:15:39 +0000
Received: by outflank-mailman (input) for mailman id 1088343;
 Thu, 21 Aug 2025 10:15:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=m+ul=3B=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1up2KX-00059V-NV
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 10:15:37 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c201::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c75d78d6-7e77-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 12:15:36 +0200 (CEST)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by DU2PR03MB8021.eurprd03.prod.outlook.com
 (2603:10a6:10:2dc::9) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Thu, 21 Aug
 2025 10:15:32 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%4]) with mapi id 15.20.9052.014; Thu, 21 Aug 2025
 10:15: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>
X-Inumbo-ID: c75d78d6-7e77-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aNpdJNdtXrR6hQ2HUIvFRCzAclbMbe1CDWS7qinLLiiA4PX5EvH+edGQGaACJI2IJ8f6QOmTa2E6+x0cLo5Xeq7CF4ywERopyps5XHJcgyTBYsSLvvl3JB5/2WqOD7NtX963yyGo4T1tvypyE2mHqvkn/2WbjsEVHe/uDbv9OHaBoegy8vJYF9skaQVVfVv0ESht9rbFjk0CZZZkFGO+APKwCpbR8iExxmTBVAHCi9jzYl8xwo01BkJBkHniqD2XqRSO4O+XdZNCyCEbE6sydJQy1BWBEmksLTqeUq1p7JMZfeSIaX5iCJ30RdFOZ6vd/dZ1YF0RVFMoVyRQWq6e7g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=aEdS59Qj5xcfoCBpIw5A6C+0gIZvvX9q5H0QzLIa6fQ=;
 b=mM57vObkZyzW+fwvbh4W9sU3nXxE5HBBJVq3eT0jjgbjjuhIMw+lU2hw9pcxdIPx4Hm2OLeTAv9p0/y378PqRPYHu1HALS28okq0/HL6xcbljqfLoLVfPdJNUzt/LZ8tyEAaH6qzRgyMx/S16WMknqlAQCMgGErgbkMCMzLsofPTJnn5HHzZwwUhmTkwXYrHJCreYAGJZ3v/4ByeBImOchH0ZIEzFKiTgE7d9whE32aaD8Srj5YHIfjgv65AwlDMWJjplg7q2MaB0efYaTymqAkZNtEO4zdkJ8LEiGk5M76Dx//jiKJGcKTrtB/lre9YukQFAO0YWwa8M3zuOKf84A==
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=aEdS59Qj5xcfoCBpIw5A6C+0gIZvvX9q5H0QzLIa6fQ=;
 b=stxVimkMMuT4SUtNHihKccYDrjLahp7EgEKTemi/qnpBb2vSn6gAZGzENmOPrlJ/TKTITq42bxba5o1+Y4wQAimXggmzPOg9MLJwStSVD7wONqr2MuVWa3AulArHPPQiDZj5D6F6TrwtpyivKDifaFmc/4deHRxlu3nFTdy8W5QeyO188hI5STIN1hl6ohwqXz8rgG4r6eT1u/NZh2tIikyWBXuC7WAMJHsJWgF3p5xSzwqjpjnK8GpcnSDKnGx6O7jmbk7HD5jri2sGOaCq0h+vBm0gtx4wChwv93YEhm1K+dLhx4opzmu6d1TjACv0kV3kKC8rhdTv4lWvvsHDpw==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Mykyta Poturai <Mykyta_Poturai@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>
Subject: [PATCH v3 2/3] pci/rcar: implement OSID configuration for Renesas
 RCar Gen4 PCIe host
Thread-Topic: [PATCH v3 2/3] pci/rcar: implement OSID configuration for
 Renesas RCar Gen4 PCIe host
Thread-Index: AQHcEoSG7qyUwsLndUKLnPquvcGXMw==
Date: Thu, 21 Aug 2025 10:15:32 +0000
Message-ID:
 <92af7234b27088ca707770b4ae887e0d45d68012.1755771103.git.mykyta_poturai@epam.com>
References: <cover.1755771103.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1755771103.git.mykyta_poturai@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: PAVPR03MB10102:EE_|DU2PR03MB8021:EE_
x-ms-office365-filtering-correlation-id: 8f45e616-9fcd-474d-9300-08dde09ba946
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|376014|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?N3i8fxZIQtOU8piGz1h3mkhBLWuEYrglb0srnm5z8Fxw8PprjoPoqcxjM/?=
 =?iso-8859-1?Q?2ChYnLzURW90YM8PsG58qUNUZtAdzmRywJ2HHOsPjHEf9J/YhHtFnqHdup?=
 =?iso-8859-1?Q?xiodGFpZWWg2fcWcJwbUNfOGhi2oe0zKTddE9emqORxgsvc9ZAIYgd1dwE?=
 =?iso-8859-1?Q?zoUtQQInH/BvOzhFHEyj38C+rnBn5pFXiIzrc6AkurKREVDiiC1PQqlvDd?=
 =?iso-8859-1?Q?76VW89sE+6CXj2YA3w/MadQTZlWDO6y0WdtEnroCyuJ5CZrjzuHprU4R1j?=
 =?iso-8859-1?Q?j5O8/siIDsZU9qXR6WgeXlDZWUeAFyuZ12eutj1/k6AylldG36uggBpomF?=
 =?iso-8859-1?Q?aNKsT06+6fKbPnhH2bcMjpKuv/Jdh7TPNYoQo7yUnjPFtDMWXJFnzfVk6q?=
 =?iso-8859-1?Q?ZEpQOOXKuga5FNWwYvHo/SQjJTOQoVbyvNVn2CqXtAzOnSuf0DHaXlsMYC?=
 =?iso-8859-1?Q?6S/mdDPfo6iv1w0T0zoovSXTO0XsUy4B9YbMtmA/Hq+5u/8uKGJhsm2WIL?=
 =?iso-8859-1?Q?RKK9RJSR5cTX0aKEWiIBslx89r1PhXx/krQ0mSrlNlGEAgblFQCpIwlrAU?=
 =?iso-8859-1?Q?8xck2e4Y5psnjBXrFKfNnRsdD+HrgucVXTzrGi6xFRltxBU2Uq79Jn0f2U?=
 =?iso-8859-1?Q?1BmgQMm3x0HER10W35oRrXPbDQPXg7x+4dIVxtu6V+g+g2S1rdccoNwnVd?=
 =?iso-8859-1?Q?UYecoeaYzkWEPx4E5nNQWcWjlOhIWa2iR90ozyN6AuS0dWH3D/51awYenV?=
 =?iso-8859-1?Q?tn5sj4+a1BgkqMTOvN7I8pdX3B091r+SnDSxMJKkp01UoOQxalgDprjPgv?=
 =?iso-8859-1?Q?50emrIbBceC0GXwxk7Hb9eCZDG/KHCNUqfSdHyNpJSE/C1jEGYHcgPgpyz?=
 =?iso-8859-1?Q?ukyn4C3pC6w/SPG4TQboXPE6Zu460AJEZbXWWx88xAFTvi27OO1CBpjGt7?=
 =?iso-8859-1?Q?3CecUEMI5IRsiPaDw5I/J7s0T/nbcjthlL0vwfqxxNryO8PF6sLWqA6mcZ?=
 =?iso-8859-1?Q?dhTTrUZZwkEPs5c8yLkGDR8okGEQ5B03PJLawlq2fupH6wD98fWxNEtL8/?=
 =?iso-8859-1?Q?YdFj7BJF7ZXhp180wc6BK56xG0JXKgja1SrGxGhmxqgxbM9ePXmfyMfZEU?=
 =?iso-8859-1?Q?RZEqpxWdcUPHXuvo90MHG32l1BXz+/GiPehVzKIKAL7D/zfnsbzcqGAqhm?=
 =?iso-8859-1?Q?AoTEZH+K4bnYq/GbmpMs1g9Zd/kvZ/e+xQUa+vVI0u3xUYBzVhPh//2J/A?=
 =?iso-8859-1?Q?Q3baEYD4jsiIXFXcZX5laOyzIJLlj5cctmEfWzJR+iyypk7rYMjLDXCA6V?=
 =?iso-8859-1?Q?Z82GxGjcOfYzYiwz1zdcjUG7Z7Rd64iwysaDcHNrsLAC/Q1xJPkQM37mTD?=
 =?iso-8859-1?Q?LOEonSVibIgxyMW38G4EE6/oiHoarrNt5u/r0LtsnJ+7x+IespHlK6rwSg?=
 =?iso-8859-1?Q?2QWsalVGnEi86Bl1ZPiUnQ1FlrC9EzMviglc8x2+0nxl3XogsZUxbQfsdm?=
 =?iso-8859-1?Q?hI/jNGCcp1m9gn0U+RqbNRvg7z855AFq4VXAiNrvQ3IR8rbFMUceVp80sa?=
 =?iso-8859-1?Q?DpqJIIY=3D?=
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)(366016)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?fFnSZsHxGaHJdi0uqrNBBadzVBRand4G2+gEV7Ywzlng4nfP9x4VXUwqyL?=
 =?iso-8859-1?Q?JWtOrRAcDqJ2+BCqq1JgKjtGNleTdg4xJJgXg8H6OBBlveOdYduFlDNzQd?=
 =?iso-8859-1?Q?qJnOE3qh3hO4/K78rw9hB16u6q9slLyt76O6WZISZz5bV3sm7e7I9lcbrR?=
 =?iso-8859-1?Q?OAOB6lvHkYRxONWf5SXHsoeAL8WZf7eZ/TFCbSSr/XcAL8U804RQ70AFEV?=
 =?iso-8859-1?Q?WciRoUFCBLaNbJLdjtdQ01m0eVWJjjdwNDmUMUdS6XM4yC6MF83etbf5yV?=
 =?iso-8859-1?Q?XMPYRZDiBkJ1xRznodEyhd4mtYQ6wU3bwdDfLnIBcaOxBg04wBzb+gULPS?=
 =?iso-8859-1?Q?SHIzapbFlAyBAv07kNrSRIR01WKwqmeueEpJgLmXuMgi5pKLitpaboWcSc?=
 =?iso-8859-1?Q?+7nAyS3pLxRWvXf2q23KUES9ZoKI6mJLURSBP8wUENq1+8apbtN9kQRk9Z?=
 =?iso-8859-1?Q?vh5ba++O1/UsZDkMPB+b7ssxzq0bZ+8Y6qT+jOgxj21Rnms5+3Baljv8KP?=
 =?iso-8859-1?Q?+ZKwOyQsM8NbleVQ+Kaklln4k0XVU3LvPk8tRiegs5MUFmR7nHkPq5V4L1?=
 =?iso-8859-1?Q?GEqD+rKS4xLmM13ZlyVc6EC3c390fe6NcvbYWQwxa25DEs/QPygTmNvGBr?=
 =?iso-8859-1?Q?iQsOCl4Y1+qGEe6ktTUW03vsgrTY1aQPEMJPYoYAGm2OUiWKXBTrAwyz2W?=
 =?iso-8859-1?Q?e0HYFmw4820PN5oKNhu4lw+dl1feM/z67Y24Jnr+hNEmsmXDLCZSle6/91?=
 =?iso-8859-1?Q?8vxZcc5AJHyJ2XdviR2oo1Xy14BC8A6cgUSrv2OaBeJwATXvl7/R7/ZCRG?=
 =?iso-8859-1?Q?DLTr7OEA7YMErOVZrCfK+ZO5davS7mECr3tA7X1qwjxjFBdO8J111uaWxK?=
 =?iso-8859-1?Q?DlZegw0PY/5tSxf8RcmLFXNFMEkgjzdwHDZOIPMMtkROsvUFzNYl9AcRdf?=
 =?iso-8859-1?Q?o5+TYRcg6ZmB2hDdm30Di1Z98oz3qNQCbX8ZaLLevTam0j7RxAke045wbp?=
 =?iso-8859-1?Q?0nvbcMJ7ltnkT+svrJehQDX+bjiLNQQLRXjLmXArxkNiICtOXYEfPW5Jlj?=
 =?iso-8859-1?Q?VRqN7+leVwB3ucDbBWb+lXF6mZN+npeTB9cixt0c8/Ox5bc31XZHlUXN+G?=
 =?iso-8859-1?Q?HWGawJ1hD7UfRzSUwXDNcoAY8teU4ltkRcyGTA/fshfeBvm9XKPcVzBWAq?=
 =?iso-8859-1?Q?1OiDZGUatzcTzQRjQgm+N9qkx9MFd5wN8oLxTdO5DR+M0ebLpdsmxEGL3R?=
 =?iso-8859-1?Q?thIr62CBEpCVTLj6nyboGs7CzQV+2lkdbb78LhD0IPXxS3CMMuNxD6KYnX?=
 =?iso-8859-1?Q?GGMVBddLOvPVP9i32/cGHRwa1x4WUI7XbjRK3yEqgnqyXgMvbSjdwHAHhG?=
 =?iso-8859-1?Q?jWJ6swBzej+0RoUI5HXNrKsUE4Ze9CLBOqOyZtbD/siYusaAdE6decjMkP?=
 =?iso-8859-1?Q?sAYpxox8tq1wJBxmEf/dub3q5BqtGnOaqln7zGAM5iU47ERKHW7Xbxm4Xt?=
 =?iso-8859-1?Q?kAgLaSPd2u4VPj3dEAsfR0EyBCch+SwwGvcylmPcCy6mOXfXGSwkWw08YJ?=
 =?iso-8859-1?Q?phtvk4HReSeF71AYVSpmaoDm1MWCftL6Oa8QXEjvm16GJ3i2iRVjXQt0b6?=
 =?iso-8859-1?Q?x0zolP7/yeP6aoac4v5FE/ivLUBmjLgKrcYqnml+GZFZJ6gKp6EM4egg?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8f45e616-9fcd-474d-9300-08dde09ba946
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Aug 2025 10:15:32.0551
 (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: vdFDEB2lf56+tb7BdlNRNOi9TjfgESmEleQaZiolaQmSCAP50IatYnObFpQJyjnCnKDJjWNMZiD+BiXcJ2yEag==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR03MB8021

For IPMMU to be able to associate a specific PCI device with it's TLB
the BDF to OSID mapping needs to be set up in the host bridge. The
configured OSID is then emmited as a sideband data on the AXI bus during
PCI DMA transactions. OSID configuration registers are located in the
"app" region of the host bridge.

Map the "app" region on init and implement methods for setting up
BDF->OSID mappings

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
Acked-by: Stefano Stabellini <sstabellini@kernel.org>
---
v2->v3:
* no changes

v1->v2:
* add Stefano's AB
---
 xen/arch/arm/pci/pci-host-rcar4.c | 148 ++++++++++++++++++++++++++++++
 xen/arch/arm/pci/pci-host-rcar4.h |  18 ++++
 2 files changed, 166 insertions(+)
 create mode 100644 xen/arch/arm/pci/pci-host-rcar4.h

diff --git a/xen/arch/arm/pci/pci-host-rcar4.c b/xen/arch/arm/pci/pci-host-=
rcar4.c
index 62d2130a63..9290c6cac5 100644
--- a/xen/arch/arm/pci/pci-host-rcar4.c
+++ b/xen/arch/arm/pci/pci-host-rcar4.c
@@ -16,6 +16,32 @@
=20
 #define RCAR4_DWC_VERSION       0x520A
=20
+/* PCIE BDF-OSID assignment */
+#define CNVID(n)             (0x700 + ((n) * 4))
+#define CNVID_CNV_EN         (1U << 31)
+#define CNVID_OSID_MASK      (0x0F << 16)
+#define CNVID_OSID_SHIFT     16
+#define CNVID_BDF_MASK       (0xFFFF << 0)
+#define CNVID_BDF_SHIFT      0
+
+#define CNVIDMSK(n)                (0x780 + ((n) * 4))
+#define CNVIDMSK_BDF_MSK_MASK      (0xFFFF << 0)
+#define CNVIDMSK_BDF_MSK_SHIFT     0
+
+#define CNVOSIDCTRL                0x800
+#define CNVOSIDCTRL_OSID_MASK      (0x0F << 16)
+#define CNVOSIDCTRL_OSID_SHIFT     16
+
+#define DEFAULT_OSID    0
+
+#define NUM_OSID_REGS    16
+
+struct rcar4_pcie_priv {
+    bool init_done;
+    void __iomem *app_base;
+    DECLARE_BITMAP(osid_regs, NUM_OSID_REGS);
+};
+
 /*
  * PCI host bridges often have different ways to access the root and child
  * bus config spaces:
@@ -65,17 +91,139 @@ static const struct dt_device_match __initconstrel rca=
r4_pcie_dt_match[] =3D {
     {},
 };
=20
+static void rcar4_pcie_writel_app(struct rcar4_pcie_priv *pci, uint32_t re=
g,
+                                  uint32_t val)
+{
+    writel(val, pci->app_base + reg);
+}
+
+static uint32_t rcar4_pcie_readl_app(struct rcar4_pcie_priv *pci, uint32_t=
 reg)
+{
+    return readl(pci->app_base + reg);
+}
+
+int rcar4_pcie_osid_regs_init(struct pci_host_bridge *bridge)
+{
+    struct rcar4_pcie_priv *priv =3D dw_pcie_get_priv(bridge);
+    uint32_t val =3D rcar4_pcie_readl_app(priv, CNVOSIDCTRL);
+
+    if ( priv->init_done )
+        return 0;
+    priv->init_done =3D true;
+
+    val =3D (val & ~CNVOSIDCTRL_OSID_MASK) |
+          (DEFAULT_OSID << CNVOSIDCTRL_OSID_SHIFT);
+    rcar4_pcie_writel_app(priv, CNVOSIDCTRL, val);
+    bitmap_zero(priv->osid_regs, NUM_OSID_REGS);
+
+    printk("%s: Initialized OSID regs (default OSID %u)\n",
+           bridge->dt_node->full_name, DEFAULT_OSID);
+
+    return 0;
+}
+
+int rcar4_pcie_osid_reg_alloc(struct pci_host_bridge *bridge)
+{
+    struct rcar4_pcie_priv *priv =3D dw_pcie_get_priv(bridge);
+    int ret;
+
+    ret =3D find_first_zero_bit(priv->osid_regs, NUM_OSID_REGS);
+    if ( ret !=3D NUM_OSID_REGS )
+        set_bit(ret, priv->osid_regs);
+    else
+        ret =3D -EBUSY;
+
+    return ret;
+}
+
+void rcar4_pcie_osid_reg_free(struct pci_host_bridge *bridge,
+                              unsigned int reg_id)
+{
+    struct rcar4_pcie_priv *priv =3D dw_pcie_get_priv(bridge);
+
+    clear_bit(reg_id, priv->osid_regs);
+}
+
+void rcar4_pcie_osid_bdf_set(struct pci_host_bridge *bridge,
+                             unsigned int reg_id, uint32_t osid, uint32_t =
bdf)
+{
+    struct rcar4_pcie_priv *priv =3D dw_pcie_get_priv(bridge);
+    uint32_t data =3D rcar4_pcie_readl_app(priv, CNVID(reg_id));
+
+    data &=3D ~(CNVID_OSID_MASK | CNVID_BDF_MASK);
+    data |=3D CNVID_CNV_EN | (osid << CNVID_OSID_SHIFT) |
+            (bdf << CNVID_BDF_SHIFT);
+    rcar4_pcie_writel_app(priv, CNVID(reg_id), data);
+}
+
+void rcar4_pcie_osid_bdf_clear(struct pci_host_bridge *bridge,
+                               unsigned int reg_id)
+{
+    struct rcar4_pcie_priv *priv =3D dw_pcie_get_priv(bridge);
+    uint32_t data =3D rcar4_pcie_readl_app(priv, CNVID(reg_id));
+
+    data &=3D ~CNVID_CNV_EN;
+    rcar4_pcie_writel_app(priv, CNVID(reg_id), data);
+}
+
+void rcar4_pcie_bdf_msk_set(struct pci_host_bridge *bridge, unsigned int r=
eg_id,
+                            uint32_t data)
+{
+    struct rcar4_pcie_priv *priv =3D dw_pcie_get_priv(bridge);
+
+    uint32_t val =3D rcar4_pcie_readl_app(priv, CNVIDMSK(reg_id));
+
+    val =3D (val & ~CNVIDMSK_BDF_MSK_MASK) | (data << CNVIDMSK_BDF_MSK_SHI=
FT);
+
+    rcar4_pcie_writel_app(priv, CNVIDMSK(reg_id), val);
+}
+
 static int __init pci_host_rcar4_probe(struct dt_device_node *dev,
                                        const void *data)
 {
     struct pci_host_bridge *bridge;
+    paddr_t app_phys_addr;
+    paddr_t app_size;
+    int app_idx, ret;
+
+    struct rcar4_pcie_priv *priv =3D xzalloc(struct rcar4_pcie_priv);
+    if ( !priv )
+        return -ENOMEM;
=20
     bridge =3D dw_pcie_host_probe(dev, data, &rcar4_pcie_ops,
                                 &rcar4_pcie_child_ops);
=20
+    app_idx =3D dt_property_match_string(dev, "reg-names", "app");
+    if ( app_idx < 0 )
+    {
+        printk(XENLOG_ERR "Cannot find \"app\" range index in device tree\=
n");
+        ret =3D app_idx;
+        goto err;
+    }
+    ret =3D dt_device_get_address(dev, app_idx, &app_phys_addr, &app_size)=
;
+    if ( ret )
+    {
+        printk(XENLOG_ERR "Cannot find \"app\" range in device tree\n");
+        goto err;
+    }
+
+    priv->app_base =3D ioremap_nocache(app_phys_addr, app_size);
+    if ( !priv->app_base )
+    {
+        printk(XENLOG_ERR "APP ioremap failed\n");
+        ret =3D -ENXIO;
+        goto err;
+    }
+    printk("APP at [mem 0x%" PRIpaddr "-0x%" PRIpaddr "]\n", app_phys_addr=
,
+           app_phys_addr + app_size - 1);
+
+    dw_pcie_set_priv(bridge, priv);
     dw_pcie_set_version(bridge, RCAR4_DWC_VERSION);
=20
     return 0;
+err:
+    xfree(priv);
+    return ret;
 }
=20
 DT_DEVICE_START(pci_gen, "PCI HOST R-CAR GEN4", DEVICE_PCI_HOSTBRIDGE)
diff --git a/xen/arch/arm/pci/pci-host-rcar4.h b/xen/arch/arm/pci/pci-host-=
rcar4.h
new file mode 100644
index 0000000000..8ac6626a22
--- /dev/null
+++ b/xen/arch/arm/pci/pci-host-rcar4.h
@@ -0,0 +1,18 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#include <asm/pci.h>
+
+#ifndef __PCI_HOST_RCAR4_H__
+#define __PCI_HOST_RCAR4_H__
+
+void rcar4_pcie_osid_bdf_set(struct pci_host_bridge *bridge,
+                             unsigned int reg_id, uint32_t osid, uint32_t =
bdf);
+void rcar4_pcie_osid_bdf_clear(struct pci_host_bridge *bridge,
+                               unsigned int reg_id);
+void rcar4_pcie_bdf_msk_set(struct pci_host_bridge *bridge, unsigned int r=
eg_id,
+                            uint32_t data);
+int rcar4_pcie_osid_reg_alloc(struct pci_host_bridge *bridge);
+void rcar4_pcie_osid_reg_free(struct pci_host_bridge *bridge,
+                              unsigned int reg_id);
+int rcar4_pcie_osid_regs_init(struct pci_host_bridge *bridge);
+
+#endif /* __PCI_HOST_RCAR4_H__ */
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 10:15:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 10:15:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088341.1446098 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up2KW-0005Av-U2; Thu, 21 Aug 2025 10:15:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088341.1446098; Thu, 21 Aug 2025 10:15:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up2KW-0005Ao-RO; Thu, 21 Aug 2025 10:15:36 +0000
Received: by outflank-mailman (input) for mailman id 1088341;
 Thu, 21 Aug 2025 10:15:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=m+ul=3B=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1up2KW-00059V-2f
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 10:15:36 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c201::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c6d98738-7e77-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 12:15:35 +0200 (CEST)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by DU2PR03MB8021.eurprd03.prod.outlook.com
 (2603:10a6:10:2dc::9) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Thu, 21 Aug
 2025 10:15:31 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%4]) with mapi id 15.20.9052.014; Thu, 21 Aug 2025
 10:15:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c6d98738-7e77-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wQnopTE2sAZq1m7mVc1CvoCrNAsWgKea9ZcHfSaac9cH6Q5pbV5wnuUbD7GSqubbkYqecBMOBHy64GcbLHgxd9qfxYEqxwiDNR/v0yRU5wTzF+ezOwtpN6ZqxkmqpcGPzJZZKIU2BtffQQR/2JAMnM2giuuFdkG7kuAXS79crEP/AxuYjstE0gt5rWYGgneOQVXwTTLD0dBX3Bf+Mb0VV9+hbqCL9ni0lLQ1aKy7OCg9r4qB5f/ptvyOlgxWn5zqBpZtATHmwmdYZRXd34y7Yjyendki3TCympg3APZGnkeneTPIFwAtE0AOTME4k2QZlRapSCZmZbb/6KCROjwN8w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=kqjDelxA5NEfCApppR2MvxtRhPpwk2taMmmiiJk0IN0=;
 b=FiMNhEPyxkGHUEvreKzmH3gsFUwHowbT5Qq9wNwphlyuC/85vEyNrD6MIXTjqJaLqrQyPjfQ964ZKSRrRoo9k3wuN9f3HiKJ9BTFOjdOyT1ta3aturDJ66GU5gFupO2pZ02xKAoI+vjeqzYlmrTjyRtnI7XY1kFPSsQDAYChy78t5Yyc78p2j2xTdk2d/usPssO3I1cZUzOg0pM779wA2lWbCge4cwa+OMZJcC8mKI1ljSTahQpYj4L/xn03/q4IBkaoXz1Ns4bYW4PPRz2JDxeo5MfIpA690cj/059yOChOjmT1QCeCCJKEeJkJKcMHFDOUrGozQVBKvtsPwdDIEA==
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=kqjDelxA5NEfCApppR2MvxtRhPpwk2taMmmiiJk0IN0=;
 b=EmfblyVT6xOhp2SazT0TPMf4glxmUkt34gewmNTXmz3vBYwpWv+IDacIsw318eoz2Rqb+z7MQRTv1Pu7PpmG/dAr8JQpBCp7oDjdU/Z0QTDsJKAVfpwkPb5ugWxleSNRgXmQUIJX71wevJ9XnM+aGJfORYPkantDpnZ7MOZ8QZypidolZGBRcKrlI0aL39r8ZomMYJzKmR5xXAtakXB0kL7ajp4Y/6hawM8ge0bk3+H4opmZlSSpGzvZpMtpXlDobj6YfjEXHL1ixJaXS8zFrCJSmWxA7KwPe012hnLpsszSbVA3Qio0aldi7U6yb1ePx+gGp1RLb7I587ez57At4Q==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Mykyta Poturai <Mykyta_Poturai@epam.com>
Subject: [PATCH v3 0/3]  IPMMU handling for PCIe Passthrough on ARM
Thread-Topic: [PATCH v3 0/3]  IPMMU handling for PCIe Passthrough on ARM
Thread-Index: AQHcEoSGp4UiN6shIECROwdG5unMwQ==
Date: Thu, 21 Aug 2025 10:15:31 +0000
Message-ID: <cover.1755771103.git.mykyta_poturai@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: PAVPR03MB10102:EE_|DU2PR03MB8021:EE_
x-ms-office365-filtering-correlation-id: 4c7f3d75-1d83-474d-20aa-08dde09ba8ac
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|376014|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?gJ5wWfMiyhS/iHi34PfXfeRoSfPX4W2sWZXESyhE9ulyXpBXnYmKb/jvWY?=
 =?iso-8859-1?Q?wxneVHl5D3K5jGJ2PU/OzfvHPnwXBUOPxWJB4KkhhnLU07Yuway0vtQfeH?=
 =?iso-8859-1?Q?mXs9jPlWpYO0bJhBCRVFHMRe/USbEwCIOphmOHpi0c73287TpVQUX4FEj0?=
 =?iso-8859-1?Q?Pe/VC8syW5P2icr8aUncdiGIq0mhAf24sRC6J8oq1VgnPjh646UMOSIyIt?=
 =?iso-8859-1?Q?HZPrCdQR4lBtVI1sw5jFnefaU+QqzGDTdiBrKjAPzpwXcCfdiq0R0RNmWd?=
 =?iso-8859-1?Q?rx5S2qdzbKLQqP4fQiG4jYynPRI02tmQOwxhOuLjKLzxs3NWMIFRHwbq46?=
 =?iso-8859-1?Q?UNG0mbp995xQD/qwFIp4JmLlIC9p+70qEw3EHdZwjwKkiDou/95Q+uVTy3?=
 =?iso-8859-1?Q?b2pk5GogvC+ezvpmaDigUEdMbEwQ10lhUKHVFRoelMIZq4P9cIGp8/tp+w?=
 =?iso-8859-1?Q?HHl9NHEgvjZTTsSTqNRjPvzx6Qxf1Go6vT1bdKYNm/TKxEa0Dpn01iFmCA?=
 =?iso-8859-1?Q?wqDcYPkelgEoj9ir2IH0ElI2cYU22U9w3d771Ol6o9VtvGejoDftIboWiv?=
 =?iso-8859-1?Q?S7jtaGLXworp3RdeQ9gXX713p0bfmFQ6iLQDEAXqkACmnYMOYxAAwc6iWK?=
 =?iso-8859-1?Q?cehSUCcZKbSy8bDsZjfotQ58bWLxG56DITCfNfXmlXTZt9d0jtVJKKR/fQ?=
 =?iso-8859-1?Q?6ZDserU8qeeRrfqJBCmpAFazp+YQRHX/VrxhrgV8csC+Pt467INzvUob+5?=
 =?iso-8859-1?Q?YfqI7KAuZra2mwIlgWdPYsVPLoKQfEsbjvNThAtMUG/K13nb8dcRGWaPmm?=
 =?iso-8859-1?Q?BPXxFaxwbMuBsqcW5m+xnqtXPgH7pMMGbg+2DgJcAzLl++hXhzgnzo7qXU?=
 =?iso-8859-1?Q?o8c+uY8joVsGq5bfvL0U7XaerhjQrbB/tSnPZrfrDcix3o1/QbPPQ/6r/M?=
 =?iso-8859-1?Q?hb2qOOVzsQ5EZ5iL92EF47aW0XsciWOn7sSHnNlOk/KugSB0kjvTsSkBOC?=
 =?iso-8859-1?Q?4vu0hst/XZP1JSZR6HuhC8vRdBrPEEwGFVc89GLMN/MNalta2cOFT7m6UG?=
 =?iso-8859-1?Q?F7A9BmEyTFxneS7qYBTp4hMR/PZjW4cElZMHSas6CwanseTTKheWmJH18k?=
 =?iso-8859-1?Q?eKwzRqzxD1rjJrIBilDBLxQ1u7ZpmBvfQjn2vLTFDmznOA3B61BZRnm45n?=
 =?iso-8859-1?Q?RgWh3PZZMebj7DqMsbdXj3LmHj2y7J6cCiYYdnBtjm6dT5ATB+lc2DLISY?=
 =?iso-8859-1?Q?YbCQ8DqfSCFNgrYN2cfyCDdX8CRPe6+xbz4xQm2NseD7/Byy6xikeDyP2F?=
 =?iso-8859-1?Q?yimojUGEeKKXD6qZlZwwaT+MeFVnWD9BtjU4OTKN8qS4kU57Pdshr5JJaN?=
 =?iso-8859-1?Q?Nj++jtsz1K3+bertixvwBjj4ftkn+Ubnfl780CcMBjtFH5mMsBWBlMZSsx?=
 =?iso-8859-1?Q?p67ByNOANbDBCSUR5kBu8jihniqkreT39PVx6xfVGq6b/R7YngyU/tVX2u?=
 =?iso-8859-1?Q?1LlLD+DvJqrC4gPn8G/uCEjRGvq5LXSmfLK5EVprJcEA=3D=3D?=
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)(366016)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?A6YgS1K10ku3JsAnUOLjbSEUrvDObNwPQWhzP+f6Y1Pj7avTMMRvd9RwFo?=
 =?iso-8859-1?Q?dr2kr3qFPvbRzo4mASJMoToWsSeNrI+35gQtXJVdiEL8gDiv09pMRTe3KV?=
 =?iso-8859-1?Q?g5Ka3D8QJSSguF3MXkD1d7zyvMMbXchhjg0rU1rp6EmaZIwPeJcmRQRl91?=
 =?iso-8859-1?Q?zgjKF4KS8NlatE8f/94UPFSxhKcM9nCyAm07pJW8eD89zF5WZLBi9fbxw/?=
 =?iso-8859-1?Q?27YfiM5xG/yhEVGIZ5/89fhBfslhmrTqGQvyNBr/JgcnQUUC5D44R2nJJe?=
 =?iso-8859-1?Q?2uDlTuf+NvbsJMYu2orpR01Hl6AWAOASD9IFqH6bOoLX6kC6y/PU0aUTDz?=
 =?iso-8859-1?Q?xj5N2YFSWOAs/1TMqI8DOYARJgarzQKvyrMy0Nau9+YqMzwXwe3oLlIDHM?=
 =?iso-8859-1?Q?Lwb6KHOJgGbLH/4h3zfq8BirpjbX0H92OKa08hNSpcCu0yMSZnGG4vitc/?=
 =?iso-8859-1?Q?aamiTZ7uEqQUVLs53S40+Xb00ISrx3alRuvt360Q8/ydvTB+yYZ5paarsi?=
 =?iso-8859-1?Q?36cq6y7UeZKOxQUUmp0yEIFlkcHqOG/yh2ZPB/DksOzEXcG86BXvdzrazA?=
 =?iso-8859-1?Q?dMtC5ZKhuWQSpsYElYeOf+n5X+8b+8q9LEtczgBNb7j+mFzENOV7QYwUx/?=
 =?iso-8859-1?Q?w0upWMnbsz33nNZaT9MHtBcN5N3JiOvxDlSpd1r1Cl1nxhtqjRWcL1yPUP?=
 =?iso-8859-1?Q?BNI3oCXUGIiHQWWc1Lim4MCvNCnfpBLuUFWZXcjrbcvMrmH5aD01H7r9ol?=
 =?iso-8859-1?Q?nbOPAPfyHv92MQRy206CCM+Hb+SLmj3ILp0V9Vy6YvDViMO82uVA/BOOpt?=
 =?iso-8859-1?Q?GKTNz1odbzGMK5/jeXmbKiXJp9XSrhW7l0DSYkNUIkjY/EzQBvyS1cvPal?=
 =?iso-8859-1?Q?fxKicR8U9Yq4keHbT7jLsekwPJUwIES22leOfj8dr+tDAOF461OAm7Rx82?=
 =?iso-8859-1?Q?O3BkAddxLQM4a9NmLjFyEjQRADkh/XgaNFh8gv2X79rtQcEtkDoIYqLYJx?=
 =?iso-8859-1?Q?NdXB64d5SGcwJ6ifcLsbDxxvkGlP41VB5l+X8PtR5NWBWkdGe2DZE0UnF3?=
 =?iso-8859-1?Q?1T7QkAEu7nHPc4Kb6pCrSC2PgoMQ2uZaE8AMwftkjY+YxbISMm3+RmyRA/?=
 =?iso-8859-1?Q?zwjRjptXkn4nVsc6wvyuG2hQlF6nVibk3cSF3Qz9ggONicnBR0tiqPQG2E?=
 =?iso-8859-1?Q?HyQCXepDHeJ2Zy9yrDH6FH89TCx/GgyOjFj5I9rjDnMASHcfPCmC6GnpSv?=
 =?iso-8859-1?Q?JvLIWWB5hGlBl5TS6m4R4k5Wv/AgsaLdhR0YFYItzCh+grWm5q2FX3/Kvx?=
 =?iso-8859-1?Q?GexMLrD2WPW4wLCV3nqujhYHGJoks8dkvKaAI2MzXQ09MN9pF/rh57NU0K?=
 =?iso-8859-1?Q?0tHee+OB7HVQIPBHgnX9Xc6TVLHsfD+jLve4wWdgKdklwxBYQy40oHpgso?=
 =?iso-8859-1?Q?M7+e9ZM1vSXQHxxWteBH/rPaND8IlxMxvZ3TWSMCRqOm55I96KewETY0uS?=
 =?iso-8859-1?Q?ld5L2kIEZ52JAPDnpVq2yR3DuBcMgi6V1GX/t7RepNr1K3vJtPWzBG6QDN?=
 =?iso-8859-1?Q?4NPhmMGlOnFKQgg1JgmHeAjnAhHRpo25hCydTGkYMWnwR3xbEf/V+dxnV0?=
 =?iso-8859-1?Q?0RaPBjFugoHckPp/pc5KokdKf01tnV21CV7CY7v5odAELBMjXgEYt+Yg?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4c7f3d75-1d83-474d-20aa-08dde09ba8ac
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Aug 2025 10:15:31.0494
 (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: TiKsMEDg4QYUnX7ODCodXctr6KlRVTI3y0vAjEsIdsebRjZfG9qxRY/I2zi0NHK35nyzAD61PPpcTCqfSbvA3g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR03MB8021

This series introduces IPMMU handling for PCIe passthrough on ARM. It inclu=
des
changes to pci-designware, pci-host-rcar and ipmmu-vmsa drivers to enable
configuring BDF->OSID->uTLB translation chain needed to pass different PCIe
devices to different domains.

Tested on RCar S4 Spider board.

v2->v3:
* see individual patches

v1->v2:
* see individual patches

Mykyta Poturai (2):
  arm/pci: allow designware-based hosts to have private data
  pci/rcar: implement OSID configuration for Renesas RCar Gen4 PCIe host

Oleksandr Tyshchenko (1):
  iommu/ipmmu-vmsa: Implement basic PCIE-IPMMU OSID support

 xen/arch/arm/pci/pci-designware.c        |  12 ++
 xen/arch/arm/pci/pci-designware.h        |   4 +
 xen/arch/arm/pci/pci-host-rcar4.c        | 148 +++++++++++++++++++++++
 xen/arch/arm/pci/pci-host-rcar4.h        |  18 +++
 xen/drivers/passthrough/arm/ipmmu-vmsa.c | 138 +++++++++++++++++++--
 5 files changed, 312 insertions(+), 8 deletions(-)
 create mode 100644 xen/arch/arm/pci/pci-host-rcar4.h

--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 10:15:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 10:15:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088342.1446109 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up2KY-0005Pm-68; Thu, 21 Aug 2025 10:15:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088342.1446109; Thu, 21 Aug 2025 10:15:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up2KY-0005Oq-1n; Thu, 21 Aug 2025 10:15:38 +0000
Received: by outflank-mailman (input) for mailman id 1088342;
 Thu, 21 Aug 2025 10:15:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=m+ul=3B=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1up2KW-00059V-ND
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 10:15:36 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c201::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c728d7c7-7e77-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 12:15:35 +0200 (CEST)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by DU2PR03MB8021.eurprd03.prod.outlook.com
 (2603:10a6:10:2dc::9) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Thu, 21 Aug
 2025 10:15:31 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%4]) with mapi id 15.20.9052.014; Thu, 21 Aug 2025
 10:15:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c728d7c7-7e77-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=j3RpouwbT1QJQgWqNHboOojCNYsdAP60QdXhyRcHRZtxzWteppwxsrIimV8EjVe9EJa6BO2ZeOXcIUMKDa6gJISYUy7XlaVziNTsUUaTHxKiAmtat6E9m7BS3fg/Eho5ESqworLiIdMcXBGO9UyU7hPACVEcNa42lXM2wgnh9lEGZPNRWDiJvj32t6vSK7g7ijvVgHJBp1rO9V5Mgs7gJxRdD52mAC9IglXkE3wlnWQ5wVWj5JFQKOzZ5uljApAq34nw8OkceSyjkWSJdzyhN/gahCwL0OAE8M+AHSPHNt2W6x4kz8nsI7dl+1EyKd3Zw5JEw5W0dgpuX3jIT1ohQA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=86Mi/jKKSXvwr4maQx0aFY5gwsu8uqzkfgL94yXKVYI=;
 b=YA/NIJnTtNWS9E8RnzYMrxdDVy8a2J0dDAqNgufGRdd2TXjhGeiayWGbmtew4RLxhddzFBU2Leijdrl+chGP6HIGdk/V1IZQ47NjXrspm2aT5oE6BBD4+94RUE/BdhRi2MFwbKClFZGOQz+Vw0zBmqm/N02ps5xrg3rMeorslyN9KpDWJkShAwX91Osy1QPcBraOyfISd6lKmHTAkUuht/L8oEh+rif2UZxRhQOkPS5I8LlPG3ZE7YOX6M9SckXMK3B4Aibpm2UVR7R37sa81QDnSkBhaSQM+RrRmQMppuutYvnJ/QEMIT+bj37FwkKSrjMZ+4KJYvO1JO6w3reNvQ==
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=86Mi/jKKSXvwr4maQx0aFY5gwsu8uqzkfgL94yXKVYI=;
 b=K7s9/o7VoQi/tjN+dW0bsQNSNAr9KBvv1fZObAP6OeChEV3aUMa1KiMReMmMTpdQ89RzEC0LrsWFUg3ef5ppI6+J8fzJVpsg5jwWyzdvoJSFswKT8h37xxhNrRAri+qHXEjqC/CpkessYJFrGu645sY4kJ/ED3HWShNUk1UTKO7ElqHxxD5SNN14BgnDeF9xLK0IuC47gp1FsRpoKwupu6jrYMlCS0K1onnZpFmOURf95Vc0ketqjbmZ3DqtdT70korkiU8yGwFXW1+aZXv7y8C5FhH6u4OSeJJtVbK3WiWEbQbImVSzm9Ue335TR5bkMLKLG86TyMi16/3ofvBNrw==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Mykyta Poturai <Mykyta_Poturai@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>
Subject: [PATCH v3 1/3] arm/pci: allow designware-based hosts to have private
 data
Thread-Topic: [PATCH v3 1/3] arm/pci: allow designware-based hosts to have
 private data
Thread-Index: AQHcEoSGgUpxpjEE+0qqirNnOFnD0A==
Date: Thu, 21 Aug 2025 10:15:31 +0000
Message-ID:
 <c655ff468eb806bb6b21fd389762bff41c537310.1755771103.git.mykyta_poturai@epam.com>
References: <cover.1755771103.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1755771103.git.mykyta_poturai@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: PAVPR03MB10102:EE_|DU2PR03MB8021:EE_
x-ms-office365-filtering-correlation-id: 3e0e1d70-b1be-4e55-d827-08dde09ba902
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|376014|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?g4N4YWTiI3O7e3x7JNKcpwjPaBZhUv6AOGQmDMjoqDAR2By/0qumMLQ93j?=
 =?iso-8859-1?Q?Lav1r0Fw3ju+NxqsvayH4xhXCHm/ybsJY8e79c0r37Hb76DHBmeofECRsE?=
 =?iso-8859-1?Q?VX7eoNeIbvbn+dLb5PreloPfWwNu0VNaKCCEi5y29RE67m+erhODfQayfn?=
 =?iso-8859-1?Q?8vWfkS6VeR9GoGHBS/59Im7Rd6RRjvVqhhHGDxUMiREP+svnLXBwsTdjUt?=
 =?iso-8859-1?Q?ztv+1XrTwUVtiW+0XU+fBXw8dAmi5wsVMGJEUo4xk32TVdNnVv7w08Img+?=
 =?iso-8859-1?Q?XBnDmpp/V+JE/QyaeKj2h7PdXHiFBrDhdsqoclJA/fAs5CirdoXMkLe1Rs?=
 =?iso-8859-1?Q?C/KSPeFMe5XA/IRLLqbHmHUv2Bj95+bvbbKsOYdajsbK1BLkTPzkDN+whW?=
 =?iso-8859-1?Q?pLbk6Ne/sFQbwL2OR2/BHpr+IHP5vPUilhgp6vumoHgvkdy+XOFNHom7vK?=
 =?iso-8859-1?Q?9De7cRsWWQyP5EDtZ7LibD88EuNBqHvC63P8zfSDKmxqnP8aJTbbVD8RlX?=
 =?iso-8859-1?Q?aPA4URI/IZb13A1d/CltDWsTIanU8eE18ao/cN9pt5+LMAue2z6w4+iKqU?=
 =?iso-8859-1?Q?7Q8NmHfJ0e09O8+qzG+YbnxoOlvHA7r3k5AUt3lEBZj7n/qnC8iLkoG3BG?=
 =?iso-8859-1?Q?2EgXJh87svwdBIL53C0ECJRK50yRnTfDey9PFm/+VXJrndRfUxKUsaFUry?=
 =?iso-8859-1?Q?phZFXrO3urcBdOd6AeAcJDrzK9VJPl9DEVNaID6J6lT1KZ0ep2/VQN3BoJ?=
 =?iso-8859-1?Q?ZBveNkj5TiTjUtCYuAOCoQIvQ1DVx6uzdxkfBeT+Vl6xXZ2HpBqWjJtl29?=
 =?iso-8859-1?Q?LUT4TDjCtK6x0oJwlO9Y9YhxaQOaDASJdJZDXhWVGqkNg6OEAezoNCnMl4?=
 =?iso-8859-1?Q?kt9op1JEYqsgpHHlFHRg3t+Gypp6Z43cIumDiMsIFJzmHoX3epffx+1jEy?=
 =?iso-8859-1?Q?22Ji+n3fdCuHg2eywbHYZz/i9m4sZipYIsqLodfo6YwKkFEX2iDynvWYeo?=
 =?iso-8859-1?Q?N1xZQkugnCVYl1N8qykQQfOBRknML8C0qufmtcIJ7xwDCsaf4CfQOquM7W?=
 =?iso-8859-1?Q?WBTPHeJksud9JLr0GSPfXj0qv50ulc4ajWFKyziM2496HZ+FOdTt0zcJxd?=
 =?iso-8859-1?Q?NNQlIvb3iwbXUjCBlKzMH5LcVLOdK2JMkMv1MKEM4A5cEcviZF7j1V21qk?=
 =?iso-8859-1?Q?VwR261Ayq2XshaGoa8Gb/OFOxifwrZqNjy+1tt6ISXXGI9pQorI8rF1Gn5?=
 =?iso-8859-1?Q?99gWasEvX/1l8fkC5gc5HZRb840R3cxlDT3Ug9lR3nimg4SLWP9H3i0g+d?=
 =?iso-8859-1?Q?8xJiXiKRgGrrpxgNnXpEVGJPyk5x7pWDHaKe4/KEVIKPOGo8/T8dSuAlxR?=
 =?iso-8859-1?Q?5S7X1BVNya1UlkCrCzHj5IZOSax9riOrETvkQ7nwr2ARQD1YRJbxuaBECc?=
 =?iso-8859-1?Q?tly6d+dZ3NnKvbxGj2My4YVAjy8CEBw8VebISr0O5v+0/HWyl3ZvYu2oXH?=
 =?iso-8859-1?Q?rClG7fFotC4cUlxAl1Gumbirz1FoOud4wkBKo15L+ZqeopyeLFQOl//Zuh?=
 =?iso-8859-1?Q?feedIKU=3D?=
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)(366016)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?XUAc0v5VpFkdZZ8ITIX6uofzuK/RJSbKSeJpvguZN+g8dwZdGQgx++TJs/?=
 =?iso-8859-1?Q?4uojpdvepmxHV9b+FCgVb8rKpR/2r3EidPfZ+NyCTovU0LDGK8WA0rVdLc?=
 =?iso-8859-1?Q?XyJQgG3j8jsqlTVlsM5ouj448JYqRCF0vhdZsSTMYrNMg/X+1mfuFbWekG?=
 =?iso-8859-1?Q?9tfFSJqkh5ucCPS2ou8T+yd/MXyQtduzxwAbMiSZNlCnaGUI2V4S4wbplU?=
 =?iso-8859-1?Q?s+OWrfAHMXrOlHDKwJYD2j7HhGG59dec2enNQeSoAZnhxIina0gUmadx28?=
 =?iso-8859-1?Q?xBVHNpDUwEhElM4aNbyPMFQItu3G3DeCETrkMMod3xqcaEF+4YMEB1mnLZ?=
 =?iso-8859-1?Q?Ltb340MB+x1U7TIzv0dcNSjju6g9wKPlkgC0Cp9iEyP73tXc/F4JHGdscH?=
 =?iso-8859-1?Q?R6kk85rWK12dQ7UwL9sCZwut9DiOrlpgTbnh6MZJ5SkFeQLQuAYSWHd1kP?=
 =?iso-8859-1?Q?/ThEz8Mvc3j2eoIHNqd4ejFwBwi1jqhzZWYClg2wlIsUcc2SRTdX+zrpP3?=
 =?iso-8859-1?Q?co/I90MQhiXrRoRX/7ycKxZQFu6F0V5CccOD0m57xnhb076Yvib3gOIxh6?=
 =?iso-8859-1?Q?EYLm8cApgqq1q9CHgmaPBjxmzhHYY8rx8FidIJHiPbhY/NkEP2YYeqd0WY?=
 =?iso-8859-1?Q?ZxGCs7GMiKsv7doeEo3F5S3oRpQmAtnZ/rbcQS+h2W79+jCZjFYYn5Q/7h?=
 =?iso-8859-1?Q?8f6T6TYIcT+MIJ9PT+lYpMR9ZESbINW547h/uzlAUThbKHlrdiM1tDMdHM?=
 =?iso-8859-1?Q?mSap6Qja3VXG04jN9d6F/SWiRCoz9XliPLxZAZy5/UqZ9dtkaJQ77mfiFF?=
 =?iso-8859-1?Q?CR2Q6HWb7c1xKvNDful01OpurGHpJQxd9NTK2r9P8OlTnlHBbJ1Y2coHvq?=
 =?iso-8859-1?Q?0D+qC8aGD96TMna2+cV9jDVHMqE65/ZV3KcvUTuZ9Q0CKG/xDH+aiDsJmx?=
 =?iso-8859-1?Q?UpfPHiEsElN5OS48Y/1jjd46rF4N5s9jncDZyHV75IPEHp+XowK7+rbk5O?=
 =?iso-8859-1?Q?WbKHsSsA4XwoPeeTKdn5hr5Qu8d9moS0b/uBxObSa5SjIodaYIt1Q3WljL?=
 =?iso-8859-1?Q?JFRiRyfiG41IIK6jg+6IVlB6gtjURrzuV3SpjumScJLgIMiSl2tOTvZzhE?=
 =?iso-8859-1?Q?mk67aU/Lq9R/Dv3YK2yMAO1VTCe8gi/VtGHjsb5J3Iba2esPfl760dX4h3?=
 =?iso-8859-1?Q?NZrcEWAKqo/jqZ8pwXNmLpucpRuZjEy8lBfGmqnJgZ/NRteeGlfC9jRchi?=
 =?iso-8859-1?Q?DVuzgjAXvPON/nWCA/ODIpTu8VCuqndQ2sbm4MHUoMqoazGS6euD0zPqFb?=
 =?iso-8859-1?Q?tupl/ey+scMUB1XP8pQgDxvQJqv7/uqLs5wcF1TgetxQI95ZeGT4w72uLc?=
 =?iso-8859-1?Q?wL1jA109m0mZ9ctPnJ3IwHjna497XOZIOBI4jYxPOzBnDbnFulmWTPnBcD?=
 =?iso-8859-1?Q?0O+YCk8s+RT8Tgfy+rM/fN/sVEsIgHjtEVtQaj+wAohrWq1PYN6A4EewRB?=
 =?iso-8859-1?Q?XIFsn7x/XgCmfXvmFK1EfxQV+6rtOIcD99IQNMG/ZPT8OW07A7abFzGTI+?=
 =?iso-8859-1?Q?xT7dKYg93/j0mjli475o4/AeAkq0J6G8jHHEehV2k4hx6GjV/ybskpKJGS?=
 =?iso-8859-1?Q?bi3Yar0zKFCnBcaGsBHFbD966fnl0OpLRbOg89TyTlXX87PXXC6KO68Q?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3e0e1d70-b1be-4e55-d827-08dde09ba902
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Aug 2025 10:15:31.5993
 (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: EJQkvS/+DaDA23FO/fGqint5mMnkXbJfL2HWbywq7fpNqbkVy7TZp0FmEW+9wbZndzuTt6JFELUiWpNrdqahWw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR03MB8021

Introduce an additional private data field in `dw_pcie_priv` to allow
vendors to store custom data without interfering with bridge->priv.
Also add get/set pair to make accesing that private data less
cumbersome.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
Acked-by: Stefano Stabellini <sstabellini@kernel.org>
---
v2->v3:
* no changes

v1->v2:
* add Stefano's AB
---
 xen/arch/arm/pci/pci-designware.c | 12 ++++++++++++
 xen/arch/arm/pci/pci-designware.h |  4 ++++
 2 files changed, 16 insertions(+)

diff --git a/xen/arch/arm/pci/pci-designware.c b/xen/arch/arm/pci/pci-desig=
nware.c
index 47dd2dd4c0..0bd67524ac 100644
--- a/xen/arch/arm/pci/pci-designware.c
+++ b/xen/arch/arm/pci/pci-designware.c
@@ -403,3 +403,15 @@ dw_pcie_host_probe(struct dt_device_node *dev, const v=
oid *data,
=20
     return bridge;
 }
+
+void *dw_pcie_get_priv(struct pci_host_bridge *bridge)
+{
+    struct dw_pcie_priv *priv =3D bridge->priv;
+    return priv->priv;
+}
+
+void dw_pcie_set_priv(struct pci_host_bridge *bridge, void *other)
+{
+    struct dw_pcie_priv *priv =3D bridge->priv;
+    priv->priv =3D other;
+}
diff --git a/xen/arch/arm/pci/pci-designware.h b/xen/arch/arm/pci/pci-desig=
nware.h
index 7efb1dc9a2..b9deb3b138 100644
--- a/xen/arch/arm/pci/pci-designware.h
+++ b/xen/arch/arm/pci/pci-designware.h
@@ -66,8 +66,12 @@ struct dw_pcie_priv {
     bool iatu_unroll_enabled;
     void __iomem *atu_base;
     unsigned int version;
+    void *priv;
 };
=20
+void *dw_pcie_get_priv(struct pci_host_bridge *bridge);
+void dw_pcie_set_priv(struct pci_host_bridge *bridge, void *other);
+
 void dw_pcie_set_version(struct pci_host_bridge *bridge, unsigned int vers=
ion);
=20
 void __iomem *dw_pcie_child_map_bus(struct pci_host_bridge *bridge,
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 10:15:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 10:15:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088344.1446129 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up2Ka-0005ua-P2; Thu, 21 Aug 2025 10:15:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088344.1446129; Thu, 21 Aug 2025 10:15: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 1up2Ka-0005uL-LM; Thu, 21 Aug 2025 10:15:40 +0000
Received: by outflank-mailman (input) for mailman id 1088344;
 Thu, 21 Aug 2025 10:15:38 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=m+ul=3B=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1up2KY-00059V-No
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 10:15:38 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c201::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c7a05821-7e77-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 12:15:36 +0200 (CEST)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by DU2PR03MB8021.eurprd03.prod.outlook.com
 (2603:10a6:10:2dc::9) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Thu, 21 Aug
 2025 10:15:33 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%4]) with mapi id 15.20.9052.014; Thu, 21 Aug 2025
 10:15: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>
X-Inumbo-ID: c7a05821-7e77-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=owY2co8/6Yl2qLwoj0duo4lQdUvzwvG1cMrrUJrhPwlXwnuwGmu7LWECLRwNVBO3TG6fmoXZBwqzTx9imyTmCzq+JGz3fNiiYHsK1q1q9Ap0rWlH+tAydLttD33zCJRY2/aCVA9iF3FnQT8GwZtXGfmofAnIQZ1ZgOZ6R4GrkXpkXi5ToOLCXEx+0DGx3iPPg4Ka0uUCIeo0lxQ2DnTyQwmKBcN0fgvNKz2cKX+4N5C3oDCZK4kha2Yo9h7jDK7asTO8TF+mgOgNAlM2dMJIqOfehisxeZYYC9fi/bJYlSAAcs+bvzy41E7lt+R+//ZWycgMpZgEhfoSO7fwa1p1Yg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=YqR+9bFxN+se2h8nqRUjohp74b+7gU/GgDDZKPZx/UY=;
 b=ilhWk+Zil7sThUgmlCHOWDU3s/mEJKTCZgN3dqiBZhzTGPcJvhRkKZC/4cgYWKQIblaxGjhPGOfbcQr46bUnzSncnPaOTBr/KSc9ZFJWIeL7Olyk+4/I/so729Cx/4lokhiVLAji+a2cj7kRwn4fqWSf4XgfVdvSzQfDiKJxLVgkgSndyE8DyYvlSMjcLckBJWnhnTyK8weT4hFY0Q45zmen/0pG4EIaSJ05IgALxUb9M8fQBiS7dAMLz6JoejQPSl1cQoG9Ijx8GJcLIMLGaM0TGV9sEzkowIu6qawoSndU3wE0GBuHdVyHzxysNtDTyRYuN9OpgkkXO4gPFvGVoA==
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=YqR+9bFxN+se2h8nqRUjohp74b+7gU/GgDDZKPZx/UY=;
 b=McA/buR7MNaOWldhsaqwJVm8GqahOaj7asOF3ZVlyHc4FJ+waLH9D5wKPUhPLOS7JJnH2QlRmcG3yh6QCt7qilOX3lQePva6/pI79L8cJbHFZ2i7C8Inn5vHbu0SIHjABfK2Vb0n3jkAThr1N/BGhPZ2p4JNJ9tIKY7eWSjiPrbiEGEuo7TpZtlaaWfz1s9+ooYhFs1nZTTGJ/s/XIdeMqVqmmITReQs4HFnOhibI517PbRYcof1c0P0dc08quIpeYPZx/lNi3tDdi+mzrhP0RHhJXQ5AJjFOcTcCTNw5SQ1PIEOrIA4RrR5EcPDJwgPNpabR9KiUgGm1flTIIC90g==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>, Mykyta Poturai
	<Mykyta_Poturai@epam.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 3/3] iommu/ipmmu-vmsa: Implement basic PCIE-IPMMU OSID
 support
Thread-Topic: [PATCH v3 3/3] iommu/ipmmu-vmsa: Implement basic PCIE-IPMMU OSID
 support
Thread-Index: AQHcEoSHUe5gc4yzc02M5y5xupQnTQ==
Date: Thu, 21 Aug 2025 10:15:32 +0000
Message-ID:
 <b4b99ff1a6009d3c9e70929ce638d19b27c86374.1755771103.git.mykyta_poturai@epam.com>
References: <cover.1755771103.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1755771103.git.mykyta_poturai@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: PAVPR03MB10102:EE_|DU2PR03MB8021:EE_
x-ms-office365-filtering-correlation-id: 632bb259-214a-4251-b17c-08dde09ba980
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|376014|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?cyVISqJ3IZosMGhvf5W2vC8732zJYlNwexrGRLVdoQpmVg/OnB2jMumn/+?=
 =?iso-8859-1?Q?+nawYj5f8nmtZaeK3ZtPmcjaUo9U8zFPyzEBaIoew+KQzPUqSF0tqYPnPp?=
 =?iso-8859-1?Q?9EFN0Op0oQ71CQIypsKuUza4oTPNLv0UULHxBzgpoQzG5umSmAiHngi3Hq?=
 =?iso-8859-1?Q?CxDzGYSzMDHDL7/At8RDPCFaNARSfS+5dy4Kirsr2x9nCi0pnS3AsbrT6e?=
 =?iso-8859-1?Q?SKQW45wEdsmNDhFByBOkeIGLKSuLfjMRpdRRQE4anCXwaNiuBt+/1xi6Qa?=
 =?iso-8859-1?Q?HTGXVIZ2avjqAXBOUBUVEdxRmMLdFhvO3ct72zXjk4sdLZyq+ysZSwt/BH?=
 =?iso-8859-1?Q?Loeltf+YAjOSq4SHDMELJuax4Oqt5q1VmxCj3/hr2UCFdoGDL2to4+19+l?=
 =?iso-8859-1?Q?1YmsCCeoZ3CyCNilveNQW6s4N6tZM3ZPvNYTuoBqM46/cFJoTKWQkzCgvk?=
 =?iso-8859-1?Q?yWJ8n7g2TxVxmycYQIpk3F6HkrGE5APZHbarTyFuB8pZkvkmyDXsggcDxy?=
 =?iso-8859-1?Q?vpR5qSmdgYVBAKoj7x27BGfx4Ml59t2laLONteiYFBDzVYliXkNTAITCmG?=
 =?iso-8859-1?Q?5yptTguI3EY/Xq+ObaeNpxgjcWPzodaI9NtH9Zj+njheSqj8MiRM+WRY5w?=
 =?iso-8859-1?Q?2tiiDtXvlVW1+Qymwvg+Cw/7Nyh9+v17A2w6uxixs0oeOmF47sd8FHzYmM?=
 =?iso-8859-1?Q?13dF0vpRRAY8mOAqJ6hQan3UmXcPFM5d/pl67LLlh3KmfNbzXXgWPKK8yf?=
 =?iso-8859-1?Q?lCesBaaNndC9wcXU8ZSq1tfULOwlUhtN1llsRKYhKHnc2uNI04CCoC/1NA?=
 =?iso-8859-1?Q?ttgamHvmNnRranYcxOnp46Ws1gFiIAn/JTNh80EK4+W82ZaXrOtdXBJyJL?=
 =?iso-8859-1?Q?AOka9ALlz9fsQyGwqYbF2klUqBUnseLZbQyQZMSy1JoPjeV0KdV830Fk0T?=
 =?iso-8859-1?Q?AfKbmcsUrKYWnAZuH023Ga2EKfqYlHjikNjMEJ7VGTP5LZgjgezPfmEdHC?=
 =?iso-8859-1?Q?jNVDQo9rQqM8fixdp4vYCd6E6E10HUFCvI+o2khrJ90frH+WWe9QExHrmp?=
 =?iso-8859-1?Q?cP0ny/cv20PjwGnZvl5nGjnLyZFaxfZhrmUe0C2RQksQeLZg7GY8G27evQ?=
 =?iso-8859-1?Q?KDVuEynRpOqaMhpNNAsT6BO2lYt/DDuEtyuT14xwCooYfjmUvjhhntYfGF?=
 =?iso-8859-1?Q?ludozW1vFwcZCm6m98kBOUEgs+KgzZlTdS/Ya8S0Bv28/ag8g/loAYM1dA?=
 =?iso-8859-1?Q?uCxAV4XbW1aU06t5AzICgF3Qb6JDsbl9FClizZKCSMOTGyNwiB7bqOgpr1?=
 =?iso-8859-1?Q?hHG31J2MuQDfBosrd8Al9NaZX3+NMH3Hg8M0Cg76xsZEw8CqzqHkS1y4dV?=
 =?iso-8859-1?Q?mXduIavGdW7QN/jxVnrrb9PQbzWcIHKbnr4LZdFOAFb7c4WdKk6Q/L1dJb?=
 =?iso-8859-1?Q?PmKh24r1ZG2rc0pX9iAy+Qni65JnEZ/YLgZFqMgwd2yOzXtBqwENPBU7h6?=
 =?iso-8859-1?Q?wMuo5Wex8hJGJAd985K0QEeml5rmkaWBY8p9yukXM+R0gDIc1sByhpFmXb?=
 =?iso-8859-1?Q?4qPHa0U=3D?=
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)(366016)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?GkOPoqOOCBs7J0fTBlmZZj5uxdCCvSgfkY/6gpuXDFKGWi8EtwlIstDePe?=
 =?iso-8859-1?Q?ynlT4DtTIMzVQNxrmJBSR7t756dIdRbGmqnNBZfWguB48g5OjZvsGeQw5F?=
 =?iso-8859-1?Q?YVyLA77Sekw46F6W3g/Sf4uQLY0F7T4z0T1mBgWSkOTb9Cl0cJ2k0E+dLO?=
 =?iso-8859-1?Q?Zx71GY8MH8ua/QxnTrzSm6VgfI62TZq9f5J0ksoflPgrBkqoh5YK/O0pQA?=
 =?iso-8859-1?Q?VJhWHyKHWm4WvyCbseYZWpa46Y7k8qggxkcmIdNVxwI0321AqBPxyQWAw9?=
 =?iso-8859-1?Q?WS7DQ7zqZ0tZpzDM8A+iupGLohsf8161nj+2GMyklR2ZL5A1K7ltRQqWVU?=
 =?iso-8859-1?Q?BlY3cvkgREV4y2+60Q1Ef7hUEZM5OuvRCwz9bloPy0IvYpjaEoKoilkbsu?=
 =?iso-8859-1?Q?HfwyrxNG+MIPXfNIoX57zAUsVxd+8ycLo0KOd8Xp6Emv6aFzYDgI3rfNjT?=
 =?iso-8859-1?Q?UmjA8HXKWadKlRb0T/Q2Zn1n2HdEr6+Cl9In0dPiMZXrJqQMBoiEdZ1d0S?=
 =?iso-8859-1?Q?RA3CCbU+AM4Z9+2I+EgblEDeBsGFVlttl1Zd+s3S3hLbXJdXUY485S18DY?=
 =?iso-8859-1?Q?qS0bgCVkn/fapTWKFkLM6vNX52d+emk93ZEmLjxD5ydKyZX5OQhy4yU1hG?=
 =?iso-8859-1?Q?srS2vRZE9bCQL3bk7XE0ZI1EHFdOO6SGSgzixoa2tnuL96EH3zwoJ/cVOh?=
 =?iso-8859-1?Q?zahpQLGR0UfgIidHwLHTWaKAW4pWwMVFmFN2LL1QDjn52iGeu1K9MCnpqB?=
 =?iso-8859-1?Q?8MgxXYbBeVZF+rMrhZckJkF7+XJHLXDbZEBlE3ie3UXbEnb/mwx/VzefNH?=
 =?iso-8859-1?Q?GAu229zEB8hohdY1w0gp8PWySbkQWXFYBH6cO87d+VakLR0HapCMuFKjs/?=
 =?iso-8859-1?Q?ZRGJUAj1haYX5pVfkDo5t1s7/0o/IwxeWWYXqEp5qOnOkSSEVg8t/1NIxJ?=
 =?iso-8859-1?Q?UxytPjNnmgEI2pAwNec8HLpF/HTzgem9Sg4B5+M4z+cpoBOHNVIvz/jWMO?=
 =?iso-8859-1?Q?Q821iPBfqeR4H5rVQF383gAONMdwI/EdikncShbERDWnhm86LlWJizmoMc?=
 =?iso-8859-1?Q?htoGLS+lUkX9SOwKq3R0mZG2kt/IFnv9hCjyTJpj4ASjwFVCkQz4kATHVE?=
 =?iso-8859-1?Q?NcTVU40WX9gubjPVzeubdj4Swl8J4mRakDlTZBU52BALoppV3Le1DIdvIS?=
 =?iso-8859-1?Q?meILwOIjPtHV/mRnx5yCTs5Od1IPHTObSk1zD2xZmoojOgQUIQvP7UkwbV?=
 =?iso-8859-1?Q?tLr9QHuCk8yWhnR8pwLLql8Ekl7G/EEGGLhAmXGLutEWaabco2riZCapke?=
 =?iso-8859-1?Q?TrjkroDmvYQv4eWrdtXcz6EwN1TEL+NDcpUhEB0+aUyNb4I5PDP52wYW2S?=
 =?iso-8859-1?Q?IFU+Rgvu5O/4l9vBvMy09dT2SXYHv6Gm0F8exxvC510hnCfri0iIhq25wm?=
 =?iso-8859-1?Q?UUTU7WCg0zcrsOHEC3nY+sh4Fxhti5INGskKb0a7qCkYp3adBLPQJmm/Z5?=
 =?iso-8859-1?Q?gNys44n9X01p62rBOv8TTqFarePGEa/XYSf7BMpMd4CAkeRDer/4VbnWzu?=
 =?iso-8859-1?Q?TuS/wv1/t8UyjtMRDdGVUiBEG0rFpno86kEoswV2a2eWfWOOOOYq/KJoLE?=
 =?iso-8859-1?Q?UftFO0/fEpHq2zUyEHr6ke5GUFq8frWZANMHOrYdW4IZXqXG4DOT6/Cg?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 632bb259-214a-4251-b17c-08dde09ba980
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Aug 2025 10:15:32.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: n9yOK4MrwvDEjzHL14Yaw7I2Y/xLD+6jnnHtxVYq3YIGlqxLtEl4MSvS08KG4iH08gsWsNF7Qpi9cfUMEmzVIw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR03MB8021

From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

Program PCIE BDF-OSID assignment according to the S4_PCIe_IPMMU-OSID
when adding PCI device to the IOMMU in ipmmu_add_device callback.
This is needed for being able to assign PCI devices to different
domains at the same time. Programmed OSID is emmited as sideband data on
the AXI bus during PCI DMA transactions and then used by IPMMU to match
the transaction to the corresponding uTLB.

Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
Acked-by: Stefano Stabellini <sstabellini@kernel.org>
---
v2->v3:
* fix compilation error with HAS_PCI=3Dn
* add Stefano's AB

v1->v2:
* rework VF handling to be in line with SMMU drivers
* add locking to domain_list manipulations
* remove assignment print
---
 xen/drivers/passthrough/arm/ipmmu-vmsa.c | 138 +++++++++++++++++++++--
 1 file changed, 130 insertions(+), 8 deletions(-)

diff --git a/xen/drivers/passthrough/arm/ipmmu-vmsa.c b/xen/drivers/passthr=
ough/arm/ipmmu-vmsa.c
index dac0dd6d46..49f149e222 100644
--- a/xen/drivers/passthrough/arm/ipmmu-vmsa.c
+++ b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
@@ -51,12 +51,27 @@
 #include <asm/device.h>
 #include <asm/io.h>
 #include <asm/iommu_fwspec.h>
+#ifdef CONFIG_HAS_PCI
+#include "../arch/arm/pci/pci-host-rcar4.h"
+#endif
=20
 #define dev_name(dev) dt_node_full_name(dev_to_dt(dev))
=20
 /* Device logger functions */
+#ifndef CONFIG_HAS_PCI
 #define dev_print(dev, lvl, fmt, ...)    \
     printk(lvl "ipmmu: %s: " fmt, dev_name(dev), ## __VA_ARGS__)
+#else
+#define dev_print(dev, lvl, fmt, ...) ({                                \
+    if ( !dev_is_pci((dev)) )                                           \
+        printk(lvl "ipmmu: %s: " fmt, dev_name((dev)), ## __VA_ARGS__);  \
+    else                                                                \
+    {                                                                   \
+        struct pci_dev *pdev =3D dev_to_pci((dev));                       =
\
+        printk(lvl "ipmmu: %pp: " fmt, &pdev->sbdf, ## __VA_ARGS__);     \
+    }                                                                   \
+})
+#endif
=20
 #define dev_info(dev, fmt, ...)    \
     dev_print(dev, XENLOG_INFO, fmt, ## __VA_ARGS__)
@@ -1125,6 +1140,8 @@ static void ipmmu_free_root_domain(struct ipmmu_vmsa_=
domain *domain)
     xfree(domain);
 }
=20
+static int ipmmu_deassign_device(struct domain *d, struct device *dev);
+
 static int ipmmu_assign_device(struct domain *d, u8 devfn, struct device *=
dev,
                                uint32_t flag)
 {
@@ -1138,8 +1155,38 @@ static int ipmmu_assign_device(struct domain *d, u8 =
devfn, struct device *dev,
     if ( !to_ipmmu(dev) )
         return -ENODEV;
=20
-    spin_lock(&xen_domain->lock);
+#ifdef CONFIG_HAS_PCI
+    if ( dev_is_pci(dev) )
+    {
+        struct pci_dev *pdev =3D dev_to_pci(dev);
+        struct domain *old_d =3D pdev->domain;
+
+        /* Ignore calls for phantom functions */
+        if ( devfn !=3D pdev->devfn )
+            return 0;
+
+        write_lock(&d->pci_lock);
+        list_move(&pdev->domain_list, &d->pdev_list);
+        write_unlock(&d->pci_lock);
+        pdev->domain =3D d;
+
+        /* dom_io is used as a sentinel for quarantined devices */
+        if ( d =3D=3D dom_io )
+        {
+            int ret;
+
+            /*
+             * Try to de-assign: do not return error if it was already
+             * de-assigned.
+             */
+            ret =3D ipmmu_deassign_device(old_d, dev);
+
+            return ret =3D=3D -ESRCH ? 0 : ret;
+        }
+    }
+#endif
=20
+    spin_lock(&xen_domain->lock);
     /*
      * The IPMMU context for the Xen domain is not allocated beforehand
      * (at the Xen domain creation time), but on demand only, when the fir=
st
@@ -1244,7 +1291,7 @@ static int ipmmu_reassign_device(struct domain *s, st=
ruct domain *t,
     int ret =3D 0;
=20
     /* Don't allow remapping on other domain than hwdom */
-    if ( t && !is_hardware_domain(t) )
+    if ( t && !is_hardware_domain(t) && (t !=3D dom_io) )
         return -EPERM;
=20
     if ( t =3D=3D s )
@@ -1292,20 +1339,95 @@ static int ipmmu_dt_xlate(struct device *dev,
=20
 static int ipmmu_add_device(u8 devfn, struct device *dev)
 {
-    struct iommu_fwspec *fwspec =3D dev_iommu_fwspec_get(dev);
+    struct iommu_fwspec *fwspec;
+
+#ifdef CONFIG_HAS_PCI
+    if ( dev_is_pci(dev) )
+    {
+        struct pci_dev *pdev =3D dev_to_pci(dev);
+        int ret;
+
+        if ( devfn !=3D pdev->devfn )
+            return 0;
+
+        ret =3D iommu_add_pci_sideband_ids(pdev);
+        if ( ret < 0 )
+            iommu_fwspec_free(dev);
+    }
+#endif
+
+    fwspec =3D dev_iommu_fwspec_get(dev);
=20
     /* Only let through devices that have been verified in xlate(). */
     if ( !to_ipmmu(dev) )
         return -ENODEV;
=20
-    if ( dt_device_is_protected(dev_to_dt(dev)) )
+    if ( !dev_is_pci(dev) )
     {
-        dev_err(dev, "Already added to IPMMU\n");
-        return -EEXIST;
+        if ( dt_device_is_protected(dev_to_dt(dev)) )
+        {
+            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_HAS_PCI
+    if ( dev_is_pci(dev) )
+    {
+        struct pci_dev *pdev =3D dev_to_pci(dev);
+        unsigned int reg_id, osid;
+        struct pci_host_bridge *bridge;
+        struct iommu_fwspec *fwspec_bridge;
+        unsigned int utlb_osid0 =3D 0;
+        int ret;
+
+        bridge =3D pci_find_host_bridge(pdev->seg, pdev->bus);
+        if ( !bridge )
+        {
+            dev_err(dev, "Failed to find host bridge\n");
+            return -ENODEV;
+        }
+
+        fwspec_bridge =3D 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;
+        }
+
+        if ( fwspec->num_ids < 1 )
+        {
+            dev_err(dev, "Failed to find uTLB");
+            return -ENXIO;
+        }
+
+        rcar4_pcie_osid_regs_init(bridge);
+
+        ret =3D rcar4_pcie_osid_reg_alloc(bridge);
+        if ( ret < 0 )
+        {
+            dev_err(dev, "No unused OSID regs\n");
+            return ret;
+        }
+        reg_id =3D ret;
+
+        osid =3D fwspec->ids[0] - utlb_osid0;
+        rcar4_pcie_osid_bdf_set(bridge, reg_id, osid, pdev->sbdf.bdf);
+        rcar4_pcie_bdf_msk_set(bridge, reg_id, 0);
+
+        dev_info(dev, "Allocated OSID reg %u (OSID %u)\n", reg_id, osid);
=20
-    /* Let Xen know that the master device is protected by an IOMMU. */
-    dt_device_set_protected(dev_to_dt(dev));
+        ret =3D ipmmu_assign_device(pdev->domain, devfn, dev, 0);
+        if ( ret )
+        {
+            rcar4_pcie_osid_bdf_clear(bridge, reg_id);
+            rcar4_pcie_osid_reg_free(bridge, reg_id);
+            return ret;
+        }
+    }
+#endif
=20
     dev_info(dev, "Added master device (IPMMU %s micro-TLBs %u)\n",
              dev_name(fwspec->iommu_dev), fwspec->num_ids);
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 10:20:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 10:20:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088371.1446139 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up2P8-0000nb-9W; Thu, 21 Aug 2025 10:20:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088371.1446139; Thu, 21 Aug 2025 10:20: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 1up2P8-0000nU-64; Thu, 21 Aug 2025 10:20:22 +0000
Received: by outflank-mailman (input) for mailman id 1088371;
 Thu, 21 Aug 2025 10:20:21 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=O+vP=3B=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1up2P6-0000nO-VK
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 10:20:20 +0000
Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com
 [2a00:1450:4864:20::331])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7075ee85-7e78-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 12:20:19 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-45a1b05ac1eso4558495e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 03:20:19 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b4dc255f9sm23770565e9.21.2025.08.21.03.20.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Aug 2025 03:20: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>
X-Inumbo-ID: 7075ee85-7e78-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755771619; x=1756376419; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=aUnZo7Id21mgTIGS1ZFraKZsG6ED1eIjmW/9bEyC7Jo=;
        b=bHmB29eS+4v9Cqm6omtYH6TWiuFijY8ZwOEq9i97BGMLR81TOQ7c7jJqKj5h8dMN1E
         gFGnvHnIMPt3o6GtO/Y35SW0Do3LJFXoQbavj6vA5k6PpoYirzUGtIJVKra2t+n1C0Rv
         19YCN4hS/zWySxxb2sGM9DQWk9kbgFawuilOU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755771619; x=1756376419;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=aUnZo7Id21mgTIGS1ZFraKZsG6ED1eIjmW/9bEyC7Jo=;
        b=jZljkkRZdFUnBWDrDAMr2GERF2mBCVo7nA+21GnWSe7FLMz9U51qBnhLTCCDkqZK++
         ZWzkI+I+t4JN3U+GRN079AENJaCxxysm+htcnCmB3t2kaB60TY5qD1abCWpZscNtsKch
         LMhGB6NLXCtF43uzIPpzJTBWVFmAdaL87rFCT3R9M7OR55hDwxGDMc0xz9AO93ZQuvpO
         DwNvqAafxAHCI3RX1AP5BJO8jn3zTJljJQ3cyynYHCyqAmPGnlQP1XuXpjI9q5I5bsm8
         RwZXEkhI7ZGbHECAtoQ+FMBjngp0LSzW3DP4tNpHc/JI9JFMY6dJmsAmtYz88OWZVgw7
         6OqA==
X-Forwarded-Encrypted: i=1; AJvYcCW8LRcS731NtcQRY9YGEps+Bpgkx6+ABVaURjsglfhfWIlo+fUtdLmLOsjiIBtQYynF49JlVB2XQeo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YylPpWM80Cxo+s6WxMcjd1rlEHW4xj5m5HAue30UaNjm8emsmnS
	YwN9BiwpgyjXJir8gpo3+M5OplDqhOYkmM1H7Xp8twKn7VVJi3GjDydwKosSJR9We/w=
X-Gm-Gg: ASbGnct5LdkRs0286IWqGz1gtQG/Kw1b+jreAEvX/6sc7RX0Nl4Ak4x2IiGfxdM/m+j
	WTRABNl8iyxFrqyHMflCZ14JYuzOZz89XSqzyhEKaaY9MUmJIXqsGZqIE25y8IIzTF/arEsAU1+
	2f2l057nsjUhnJZP/xRogjW6xMuSHLhV/SRr48cW0OknGT+lH28RHnwglWCeCMzNQ0dIxVfe6zT
	ExtLJgjKQiUjJHhdWHkT+5y9drQUrGSMqp+JH2/hstXQWDJXSwD3DMWiGi9vi3aLbxGRXL1qudu
	M6zLeoGn0+49RozfRk/pIV5Wd5MODt/gquZClmh9NNK9FyD8i43Rkj94fOFqANY0uX68AjJEu3t
	f8nQnAAoTUDTjuTETK2iF7p/kgpSL/yBOtL3JEjKtXIrRONbo13zd1MpzsUiJpRFZR3+m
X-Google-Smtp-Source: AGHT+IGeeWorFvmATh072IOD+0EffvhoFHVvaw1kcaYCax0Fal12LOByxGar6kmz5ShnYUBFkQNmkg==
X-Received: by 2002:a05:600c:1d0e:b0:459:443e:b180 with SMTP id 5b1f17b1804b1-45b4d7cee9amr16906865e9.8.1755771618976;
        Thu, 21 Aug 2025 03:20:18 -0700 (PDT)
Message-ID: <b936284e-bf95-47c5-8ed6-9b8609ddb695@citrix.com>
Date: Thu, 21 Aug 2025 11:20:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 3/3] iommu/ipmmu-vmsa: Implement basic PCIE-IPMMU OSID
 support
To: Mykyta Poturai <Mykyta_Poturai@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1755771103.git.mykyta_poturai@epam.com>
 <b4b99ff1a6009d3c9e70929ce638d19b27c86374.1755771103.git.mykyta_poturai@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: <b4b99ff1a6009d3c9e70929ce638d19b27c86374.1755771103.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 21/08/2025 11:15 am, Mykyta Poturai wrote:
> diff --git a/xen/drivers/passthrough/arm/ipmmu-vmsa.c b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
> index dac0dd6d46..49f149e222 100644
> --- a/xen/drivers/passthrough/arm/ipmmu-vmsa.c
> +++ b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
> @@ -1138,8 +1155,38 @@ static int ipmmu_assign_device(struct domain *d, u8 devfn, struct device *dev,
>      if ( !to_ipmmu(dev) )
>          return -ENODEV;
>  
> -    spin_lock(&xen_domain->lock);
> +#ifdef CONFIG_HAS_PCI
> +    if ( dev_is_pci(dev) )
> +    {
> +        struct pci_dev *pdev = dev_to_pci(dev);
> +        struct domain *old_d = pdev->domain;
> +
> +        /* Ignore calls for phantom functions */
> +        if ( devfn != pdev->devfn )
> +            return 0;
> +
> +        write_lock(&d->pci_lock);
> +        list_move(&pdev->domain_list, &d->pdev_list);
> +        write_unlock(&d->pci_lock);
> +        pdev->domain = d;
> +
> +        /* dom_io is used as a sentinel for quarantined devices */
> +        if ( d == dom_io )
> +        {
> +            int ret;
> +
> +            /*
> +             * Try to de-assign: do not return error if it was already
> +             * de-assigned.
> +             */
> +            ret = ipmmu_deassign_device(old_d, dev);
> +
> +            return ret == -ESRCH ? 0 : ret;
> +        }
> +    }
> +#endif
>  
> +    spin_lock(&xen_domain->lock);

Minor point.Â  You've removed a newline here, which is why the hunk is
not cleanly ahead of the spin_lock() call.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 10:22:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 10:22:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088386.1446148 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up2RD-0002AA-KS; Thu, 21 Aug 2025 10:22:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088386.1446148; Thu, 21 Aug 2025 10:22: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 1up2RD-0002A3-HX; Thu, 21 Aug 2025 10:22:31 +0000
Received: by outflank-mailman (input) for mailman id 1088386;
 Thu, 21 Aug 2025 10:22:31 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5Hha=3B=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1up2RD-00029x-5q
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 10:22:31 +0000
Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com
 [2a00:1450:4864:20::533])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id be16248f-7e78-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 12:22:30 +0200 (CEST)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-618b62dba1aso1158441a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 03:22: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
 a640c23a62f3a-afe018f1943sm173433166b.87.2025.08.21.03.22.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Aug 2025 03:22: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>
X-Inumbo-ID: be16248f-7e78-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755771749; x=1756376549; 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=mSoLkXUvoS3y7n5r2usrSlXtvtQ9nAOgtNtBsIsP/vk=;
        b=BpwbDW6dYF4OcyKfaZO9LZr6UWbnjvvVm+6l8vAxIaBbHLtWidl5cWLWdJTvzjLfcL
         TiPikaMeSa7zkjpY44iurfb2LN+TIFS6N5ZqmGQ7vxGF+vC26Fa/8uc3yJrFxrq163+U
         UYeBEhrjBXubJ7n0vFIkdJEmGeSBDpEaG/v59UEpcjLhLyrZxgWqxL87ztKQG/HBB4ee
         YXE6AN7ztAJr449kKq2uvw6oa2ga9zfDaXIwpT1BnEQvl/EzkDLvkWQRW+3h/Px4fd5G
         RBL3ppHwhT8iYnHIklmFYK4+Ica6ddhjxdsNw5G2guFGHpdc4+gOwsfugrK5Dx+y4n5d
         hz9A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755771749; x=1756376549;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc
         :content-language:references:to:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=mSoLkXUvoS3y7n5r2usrSlXtvtQ9nAOgtNtBsIsP/vk=;
        b=AzO9d3mDm1mMA8/ZQ9U/TqqenOtSkHnC+ZdTdGCgDwHCZLt9FH9FfJ5fn55N6xTXYc
         jFmWxJCbpHr4R0Fooahqk1eE8VSrePMeAZsMett5IR08pKhTZNivAlld0YLIm7Qzilx5
         68m3dtWcIUxQmsSzFR+F6x2xJBUc5yeAIXKoT/rPAx5arg+ZYKGRhDGi9WBmb0mP+lxg
         MBKnzDLgi5A735QlLTNULF2XHySdPnBuRR2/pctgOr7g918Ya1ABEtDRXCPF9XECfSLJ
         MCayRh8T2z2eIqePwt2iDo+VbZ2owpYzLABJr+Zml8wk8HmxQeqypiCBaLvm9nPGVBpI
         A73Q==
X-Gm-Message-State: AOJu0Yy5GSSnpftaMnKjrgAxqxgIFHA7t4BTL88qjOx80yVzK5D5a+fp
	jkLrjpQDsRAKu3IYf9fuiF8b75ofUpk84eQ+raOtTT63kHIywhBfUCr7IA06pIwCKA==
X-Gm-Gg: ASbGncuGft+z3BxWdQAmEEn9EuvvAr56Hlf2dhCj0OCl73cwoHSTNIFmQ5nisOSbpfN
	WgNMBLmPkKGuuokiGvdX5quUeWBSAZLehHJ45uO8hzD4zyy3DcnsA5WVHU2Z7Fm6mJC2R7v20jr
	4UKF9UoEP0lO07NPHCAN3fYRqKzdoqjjDhQbBZDW8BFK+F8opRtUxqwWs5rySzflFQS9iNICSeU
	Ob2fFXFf9IVUSsQj+EUSzqD4X4E7uz+S2w5wcm2K2rTJtyJDYnvJB6/GXew7h+WlB7586McMotk
	2QlTBMzldrDQ/kL8oXWLnB6BliGo3pjY1/T0yEbC4E54yUg0zy+0JeLbmy9XTjemmvFWj7oMKrZ
	RBF6NB/EcG/Sk+joXwxL2zFeG9SdtcazrSoUHQWOpyXMCh7PQit8tz9CITW8FgoDdzB3Zr48NZO
	lDNFXUD5dbzynj4yTAgQ==
X-Google-Smtp-Source: AGHT+IHuxFVV0uxUT9UO2MQfLvh7iCGsvp3p6PWw8krNhBf7Xdin35YEJalPPso4RunDLh73+xpnpg==
X-Received: by 2002:a17:907:1ca6:b0:af9:a1e4:1bbd with SMTP id a640c23a62f3a-afe07b952c8mr167436466b.34.1755771749245;
        Thu, 21 Aug 2025 03:22:29 -0700 (PDT)
Message-ID: <d0f3e8e6-fb33-49b6-9872-ea9478368be3@suse.com>
Date: Thu, 21 Aug 2025 12:22:28 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 0/3] IPMMU handling for PCIe Passthrough on ARM
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
References: <cover.1755771103.git.mykyta_poturai@epam.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: <cover.1755771103.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.08.2025 12:15, Mykyta Poturai wrote:
> This series introduces IPMMU handling for PCIe passthrough on ARM. It includes
> changes to pci-designware, pci-host-rcar and ipmmu-vmsa drivers to enable
> configuring BDF->OSID->uTLB translation chain needed to pass different PCIe
> devices to different domains.
> 
> Tested on RCar S4 Spider board.
> 
> v2->v3:
> * see individual patches
> 
> v1->v2:
> * see individual patches
> 
> Mykyta Poturai (2):
>   arm/pci: allow designware-based hosts to have private data
>   pci/rcar: implement OSID configuration for Renesas RCar Gen4 PCIe host
> 
> Oleksandr Tyshchenko (1):
>   iommu/ipmmu-vmsa: Implement basic PCIE-IPMMU OSID support

These patches went in already, one causing a randconfig issue. What is this
re-posting about? Are you implying that the entire series is going to be
reverted? (I really expected an incremental patch to deal with the issue CI
ran into.)

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 10:29:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 10:29:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088411.1446158 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up2YE-00050P-Ed; Thu, 21 Aug 2025 10:29:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088411.1446158; Thu, 21 Aug 2025 10:29: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 1up2YE-00050I-Bn; Thu, 21 Aug 2025 10:29:46 +0000
Received: by outflank-mailman (input) for mailman id 1088411;
 Thu, 21 Aug 2025 10:29:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=tfyc=3B=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1up2YD-00050C-3G
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 10:29:45 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20623.outbound.protection.outlook.com
 [2a01:111:f403:2009::623])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bd943731-7e79-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 12:29:39 +0200 (CEST)
Received: from CH0P220CA0019.NAMP220.PROD.OUTLOOK.COM (2603:10b6:610:ef::26)
 by DS4PR12MB9820.namprd12.prod.outlook.com (2603:10b6:8:2a7::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Thu, 21 Aug
 2025 10:29:34 +0000
Received: from CH2PEPF0000013B.namprd02.prod.outlook.com
 (2603:10b6:610:ef:cafe::f6) by CH0P220CA0019.outlook.office365.com
 (2603:10b6:610:ef::26) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.15 via Frontend Transport; Thu,
 21 Aug 2025 10:29:33 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH2PEPF0000013B.mail.protection.outlook.com (10.167.244.68) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Thu, 21 Aug 2025 10:29:33 +0000
Received: from localhost (10.180.168.240) 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; Thu, 21 Aug
 2025 05:29:30 -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>
X-Inumbo-ID: bd943731-7e79-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fyjOvuECjI+w5nQ99/M/NG3Gidho+V9srtti5hrpYxdBFVXjYdFnm8JxIAQEYfKzRtwM3TVSDDtqdIX3zvE9irtqZVdCqOAgCMO8mplLRGFVHXnhlzHWUw6Xogss9IJ/033oki1Eiw/M0oHK6tg/oyUDUnFXzcJy0yzyseYRbJBjz4hbi5FphqlWMJFPiCUnUWpU1oyVp6NIUi0s+OsTqsCqJP2HGqQVESTxzt5soxgWTS6QhDDCOGQmG2qz7JUNSc6iGM51Nta/iX52Le13sI+l+fdCTJGKdHjxN4V5dj51mKCNs7lkja1VVgfxYt2tm75DbCjCMgLQoU9/sY0qXQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=rCAyBh25oMyrEI1SxPIJBZ7ukAh9YLvSliv5AIUtm3Y=;
 b=cDLdqLQviNived1rX2ZG0Ea4YXhC9kU/2hnSwtPeQQFgUbbmfTbRbHyJumI15CRsNW/eDEEUCiYBrev04nBHYcBqLjvNks/N8bD0yqIgaVjS+Pk0Ay8RmWM7yDfM0rUETqLsyqmA8XvDU82xgkXyFqaJBt80Hhf4TgH128m2mTV+2hZ0QE5LEa+efSEPzgPlpQEsgzIHiUB+Saz5G1XtlG1Pbw2WMKYZYlBkFht7wZv2Y7L+7tFVciveXQFOl/MnhsFB60Xtyl9rvOQE4Kh2GWiFjBEkbimIMUjPn8zalafdggJedNJuywZ33E4ZPuOs94RybAKiB75d3mlx42TEkQ==
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=rCAyBh25oMyrEI1SxPIJBZ7ukAh9YLvSliv5AIUtm3Y=;
 b=DIbkSVlyIx2pt3g7A1fqLi8X9Hm3RqT60QymZZRbEkX4Wpn1MY9JhRqoEAXoHhNTAMFjcUQ4HZxeC1OGb8+EZkesa2QUCVXWWqI4okYhxeGDEmEX+mtnfEJFe6NgPSrRu1hJjppuYFG3Ubji+1TXq1n5qUYDhU+9jhAiT9G+s3k=
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=SATLEXMB04.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Thu, 21 Aug 2025 12:29:23 +0200
Message-ID: <DC81ACV8TXQ1.17YID3PYUCKA5@amd.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>, Julien Grall
	<jgrall@amazon.com>, <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v16 1/4] xen/domain: unify domain ID allocation
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Jan Beulich <jbeulich@suse.com>, <dmkhn@proton.me>
X-Mailer: aerc 0.20.1
References: <20250812223024.2364749-1-dmukhin@ford.com>
 <20250812223024.2364749-2-dmukhin@ford.com>
 <f85ae718-0243-4426-a555-327afffe7148@suse.com> <aKUPo+hRdfGlg+S8@kraken>
 <a5d91a6d-cde6-42fc-8497-f2c822e98174@suse.com>
In-Reply-To: <a5d91a6d-cde6-42fc-8497-f2c822e98174@suse.com>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH2PEPF0000013B:EE_|DS4PR12MB9820:EE_
X-MS-Office365-Filtering-Correlation-Id: c947d730-bd42-446c-4876-08dde09d9ef8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|36860700013|376014|7416014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?NFI0MVhueS9IUGNYTGFFZ0xJY01kUWhGU0dBZE01bmNXc1Vyd2NCM0Vqa0oy?=
 =?utf-8?B?SnZtODUxeXN2NXU2cmVqWmFyVDlDbi9sSGFERVVMSmhpZUthKzJ3K1ZKVUcy?=
 =?utf-8?B?Nm45bEY5WWU3dlVQdktKdkwxVnFyemF0VzlTZjEyTWdzVVIvWEFmY3pUaGx2?=
 =?utf-8?B?L05Zc3prU2RvTUhDZ0JiMllzZmpNWXdoNGJmZVpkRjFSY3gzTDMwNTBDOFpX?=
 =?utf-8?B?VWp6NWNYMVd6eUNIVGh4MTVxczVBZkFzc2w0Qk5kNDMxQXhEeGlkTWg4UUs5?=
 =?utf-8?B?RWpHVXlzdno3MnlUOE9iQnVLeCtncUhQbUg3cndrQ0RDbDB5ZzhJOHViN3Vm?=
 =?utf-8?B?OURmdnlGUEVndE1SQms2bWp5cmpRQUFjNWNac0cxdGpBUW1nbk1sYW5sRXds?=
 =?utf-8?B?MmVPeHlZMTAzYXdIYVQzQkNKOVNWUWdXZ3h4dzhzdEtianp0RmdGaG8rbC9Y?=
 =?utf-8?B?enZyZE9zMmpnSHp0QVVJS0NOM1dEWVhoSklicjkzc3hZZk54TWFXYTZwWUgw?=
 =?utf-8?B?RlMzeksyNTlSaFpIZUd3WGpFczNNZEZtZ0VUVEl2TVlHQ3JPNXpPMmNGRG9B?=
 =?utf-8?B?Tm5XbWhFcnI4d0gyY1hFYTcrMi85MllYc09MNUpPV3N4K21lYW9rYndEV2VX?=
 =?utf-8?B?aHZjckxiRkVGS0Z5WXZ0VHJ5VzlUa2JRbDUyWWhGTklJTXBrenB4U3NRYnU2?=
 =?utf-8?B?bEo3Mi9rWkV5RHF6cE8zV0JVNUJGSTFPbHEvZU15Z2tnVVBSdG9BZzlUdzZP?=
 =?utf-8?B?cmJDM3hrZi9UcCtaOW51dDdndDMzRDYyalFvS0lLdnAyM3VjSUtqZThLSTlH?=
 =?utf-8?B?MEpKQUxpb3ZjaW41bWYwSEZpekpTOFBmTCthQVhXRXhFTVd3cmVRV3BEQXpV?=
 =?utf-8?B?bkQzSG50eXpQQmJxZUNsbnoydkp6UmFLNVZLWEhUbER0QVRNWnUyWlFKTG1K?=
 =?utf-8?B?SFhoeUFqT0NNekVUMUR3dm9LcGVlMGtOcDZXS24xYko0RytNUFJSVXROODNs?=
 =?utf-8?B?b2RZQU1HWEVXTXA2ZVZQeUc5YUFUTEgvRUFEbVJCOFkySE1laldiT2h2dGFV?=
 =?utf-8?B?V1QyVlVoSFUxSVBNd0dZZ2FwMW4rNzNPQjh1dHhBUEJzN2RWNWQ1aWdsMlhS?=
 =?utf-8?B?bTdJLy96WTRGYUQzTHFPb1hNV2NPeTV6U3czNjVOUzVPajZMM0RZcmhHTVNI?=
 =?utf-8?B?c0J1cGx0TFNTT2lTdWEzTXhKWmxMeVdGeHA5VlVqZVRzakE2RFZZYVFEY2VT?=
 =?utf-8?B?a2sxUk1ZR3VabWxMWlZCU3orbjRiU2hjVURyRmxBNlc1bVNQSTZnWFdhQ3pE?=
 =?utf-8?B?YWdUUjJIYmVLd0JJc2hxbjJYalZTOTFUVlhhc2hucVpkSHZ2Y0dIZU04MmVi?=
 =?utf-8?B?SUlIQ09PMWlWZGs5bXEyeHNtaSt1Yk4xRXBpN0ZFWVFUWi9yOFVGVGZWM29w?=
 =?utf-8?B?ZkxBR2N0SnJOcExieEFpa1FpUWZtSWk3a3ZzNHRqY1NyZE95aUxKdEQ5T0h4?=
 =?utf-8?B?OSt6QXpnRWxsZzBjTnZLWlZ6dEYzdXkrMHhCVTBoYnB4Wm1ld3Y0VFdkNllE?=
 =?utf-8?B?TmhQQXdUcUZOcHlEK0luNCtURi83Sk93YjBKaVVydWlrdndORVVxNXBmUVdj?=
 =?utf-8?B?bUErbnBJT0xOdTJuUnlibWRncXhQWjdpZ09QSjgzZVpMa3F2SC9BU245cFli?=
 =?utf-8?B?cWZZd1N3V3pLdnFRVUdmUGVYcDhKemdoV3hXRU9TTG5rR2pyOVNRVXdpdkZR?=
 =?utf-8?B?SU9aa0VTMi93Tmc3NlNGdGRoLzB0bElEZWRGdS9xL1NyT0pqaXJNVEsyQ1N5?=
 =?utf-8?B?YWRDb1QvZTJxN1hHcmlXU25MOHdnaGtMTjFzYklvM1h3MXY0ODZVdEllWGJX?=
 =?utf-8?B?M0szSE1ZU09RbU0vV08rRnI4Nk4zUkZJbmdkMXU2SHdFS3ZKc2pRNE5tVnVU?=
 =?utf-8?B?Z2R1VkdVM1piWGJNSk9uWi95NC9GSHZMSCtEZ1oveXVUWUxIR3JTZjFNNlZ5?=
 =?utf-8?B?N01oL2R0VENSUHB3MHRTTjZ0S0M0YmhBVXMvQSs2TXNmVUxwZllkSkEzd3ZC?=
 =?utf-8?Q?+WSFLx?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014)(7416014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Aug 2025 10:29:33.7493
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c947d730-bd42-446c-4876-08dde09d9ef8
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH2PEPF0000013B.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR12MB9820

On Thu Aug 21, 2025 at 9:16 AM CEST, Jan Beulich wrote:
> On 20.08.2025 01:58, dmkhn@proton.me wrote:
>> On Thu, Aug 14, 2025 at 09:11:11AM +0200, Jan Beulich wrote:
>>> On 13.08.2025 00:30, dmkhn@proton.me wrote:
>>>> From: Denis Mukhin <dmukhin@ford.com>
>>>>
>>>> Currently, there are two different domain ID allocation implementation=
s:
>>>>
>>>>   1) Sequential IDs allocation in dom0less Arm code based on max_init_=
domid;
>>>>
>>>>   2) Sequential IDs allocation in XEN_DOMCTL_createdomain; does not us=
e
>>>>      max_init_domid (both Arm and x86).
>>>>
>>>> The domain ID allocation covers dom0 or late hwdom, predefined domains=
,
>>>> post-boot domains, excluding Xen system domains (domid >=3D
>>>> DOMID_FIRST_RESERVED).
>>>>
>>>> It makes sense to have a common helper code for such task across archi=
tectures
>>>> (Arm and x86) and between dom0less / toolstack domU allocation.
>>>>
>>>> Note, fixing dependency on max_init_domid is out of scope of this patc=
h.
>>>>
>>>> Wrap the domain ID allocation as an arch-independent function domid_al=
loc() in
>>>> new common/domid.c based on the bitmap.
>>>>
>>>> Allocation algorithm:
>>>> - If an explicit domain ID is provided, verify its availability and us=
e it if
>>>>   ID is not used;
>>>> - If DOMID_INVALID is provided, search the range [1..DOMID_FIRST_RESER=
VED-1],
>>>>   starting from the last used ID.
>>>>   Implementation guarantees that two consecutive calls will never retu=
rn the
>>>>   same ID. ID#0 is reserved for the first boot domain (currently, dom0=
) and
>>>>   excluded from the allocation range.
>>>>
>>>> Remove is_free_domid() helper as it is not needed now.
>>>>
>>>> No functional change intended.
>>>>
>>>> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
>>>> Reviewed-by: Julien Grall <jgrall@amazon.com>
>>>> Reviewed-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
>>>> ---
>>>> Changes since v15:
>>>> - fixup for check after the first pass in the bitarray in domid_alloc(=
)
>>>> - trivial renaming for the local variable in domid_alloc()
>>>> - kept Julien's R-b, added Alejandro's R-b
>>>
>>> Just to mention: My take is that this kind of a fix ought to invalidate=
 all
>>> earlier R-b. It's not just a cosmetic change, after all.
>>=20
>> Sorry for the hiccup here, did not mean to overrule the review process.
>>=20
>> My bold assumption was that in case of small fixups like this it is
>> satisfactory to carry over previous acks.
>
> Acks may be okay to keep, but imo R-b need dropping when an actual bug wa=
s
> fixed.

I don't know. Unless the bugfix involves a change in the code with wide rea=
ching
consequences I'd say it's reasonable to keep them. But that's something for=
 you
(the committers) to decide, and this just my .02 cents.

> Irrespective of how severe the bug was.

It's not so much about the severity (imo), as the behavioural differences
involved in the fixup. In this case (afaics?) it's a straight s/=3D=3D/>=3D=
/, which is
self-contained and has no wide-reaching side effects at all.

>
>> I asked (matrix) both Julien and Alejandro to re-review and confirm.
>
> While good to ask, that's of limited use. It'll be impossible later on to
> figure whether such a confirmation was given. Decisions (and acks and ali=
ke
> effectively fall into that category) need to be on the list, to be able t=
o
> locate them later on.
>
> Jan

He meant he reached out to ask for an in-list confirmation. As far as I'm
concerned, my R-by still holds.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 10:33:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 10:33:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088420.1446169 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up2bi-0007P9-Ti; Thu, 21 Aug 2025 10:33:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088420.1446169; Thu, 21 Aug 2025 10:33: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 1up2bi-0007P2-Qj; Thu, 21 Aug 2025 10:33:22 +0000
Received: by outflank-mailman (input) for mailman id 1088420;
 Thu, 21 Aug 2025 10:33:21 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5Hha=3B=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1up2bh-0007NU-EP
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 10:33:21 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 41e5a34d-7e7a-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 12:33:20 +0200 (CEST)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-6188b5f620dso1189379a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 03:33: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
 4fb4d7f45d1cf-61a758c062bsm5134197a12.55.2025.08.21.03.33.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Aug 2025 03:33: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>
X-Inumbo-ID: 41e5a34d-7e7a-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755772400; x=1756377200; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=PZU7HWifhl63Yg3+rr0dv9iKVLdWF7jEc07x6hJuslY=;
        b=aQn9iAaQLnJuWRDcHKQufZDV6M91Z135zWMbTAypLDJUlUCaUHKgXmAEQk3pXsDJrR
         /aZUosjAzcihWxDdce1Bx6oGTX4rSvCZ5gNA0l2xMiPlednL04w8ocqU2UzXb9LYLWp/
         FRdPQQBIeWK7pTjNSbgiOJk+QEaZK6QZMXOawDQ8j8ECy3j5ZMts6FZUJy3WyslxOTCn
         vJZalLXNjBfiNT9/8a7UuFFM5mf5qpdeloKHWcHbPruzRA9m58sI4N+R0L4JO8FeMza6
         FABvJ0gSunUoxzKvJ7k7l3m3/qZcfR0DZgEi8Jy7jERol+jNpWuanmUixvG2yeCERDwn
         9XGg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755772400; x=1756377200;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=PZU7HWifhl63Yg3+rr0dv9iKVLdWF7jEc07x6hJuslY=;
        b=tpmqwRJuOXBCMNwKUys6YgMXxTaz7PGBOvuWdCPDkT8myvgs8zwDJNbNoF+h2Y+29A
         fcmap4VSZsg2QWs2tqeJRLpE5dqRjgKxAqCRMfvbAyJN1UcSjD/Mq2dXYIWfDjCUCluW
         FUzI2XmwkI1oaM2dtyh7DFGY1BnPDeEY+0uIHcQR9qGtjVyUUD96EvwQgpM/wO34CYyl
         l8LnnBCWQpneQaPVh2pA51ADCQdrWbBctMpkaHNr9Rns8m9Fd+qRIzWK+8Sl4pTOmH9P
         3agygQtiIGj3565PylAKVX6ubl4Aau/wn9LhTx0WE2CabV8nsnMEyF8EvDqnQBR509+X
         A+LA==
X-Forwarded-Encrypted: i=1; AJvYcCX2lRU21N3rXBC6V0Q4bEJ09AzZd8IX9JsOb0gbavfZwAD30KV5TmvPHCXkUGGnuyawVPPDQp3Ekic=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxhr1ioeiedDlTJbTO8ciojTf9tmwx5kgI9VbpJDSuQpJtPhtcn
	xOZMA3x7cDHKcdYU659sjd8nbMnAMcX9Mq0Y/MqE09COdgkinra/asFVa03Yk7iBtg==
X-Gm-Gg: ASbGncuLiboDCgghRankQOI+GEN1WB0pInRUeulzCMYOc8nZUzPkEzrjeH0GdSTbcDF
	68leA6dAEBOt5bBbKRgmMPERt9yVifGyX+69AbRU+dj9+BR/M5aafAYPvvDW85aYOj85mm8eePO
	caerhCWmEn/+AWC+jsykpVrHJ1A3uJcIF328E4srtnTF8nhhl7KCUf7NiX3AqbWAzPkL9HTorVu
	0gpaW8N0ygcGOdWlfNTAe2lr0V3ZcYUNf5E4g+0RWL18Eg9vfg7HNT5fsa5DOzZrmjPezWosJeF
	ykywM6WrQIOzAP2Mfgk0dN4UqLIDSevUBSDEMw9YIp3CEhay9FS9Pxw9XEOaysjseNVnf9jUMr3
	93fk+ReboWXtFkG41o77flyXu3W0OPpY4TDXZHpq4aozKUujf91VN0dmt5d4iXVr6qJDh56Qn06
	+kAHEm56c=
X-Google-Smtp-Source: AGHT+IESwTqvZhRBUwrrdklbwPAGvXIpqLEAyIpGdHkYpo4jfUdmXDljF7pH1ktZORqd2Mmb++N8sw==
X-Received: by 2002:a05:6402:1ec1:b0:61a:9385:c780 with SMTP id 4fb4d7f45d1cf-61bf884ecabmr1472291a12.37.1755772399867;
        Thu, 21 Aug 2025 03:33:19 -0700 (PDT)
Message-ID: <98e8ca88-75cd-4d59-9e94-f758324fa46a@suse.com>
Date: Thu, 21 Aug 2025 12:33:18 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] common/efi: deviate Rule 2.1 violation in read_file()
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <c20a58f24875806adfaf491f9c6eef2ca8682d18.1755711594.git.dmytro_prokopchuk1@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <c20a58f24875806adfaf491f9c6eef2ca8682d18.1755711594.git.dmytro_prokopchuk1@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 20.08.2025 20:05, Dmytro Prokopchuk1 wrote:
> --- a/xen/common/efi/boot.c
> +++ b/xen/common/efi/boot.c
> @@ -852,7 +852,7 @@ static bool __init read_file(EFI_FILE_HANDLE dir_handle, CHAR16 *name,
>      PrintErr(L" failed for ");
>      PrintErrMesg(name, ret);
>  
> -    /* not reached */
> +    /* SAF-15-safe deliberately unreachable code */
>      return false;
>  }

Much better (even if not tagged as v2). Yet then, did you consider
alternatives? For example, with PrintErrMesg() properly annotated "noreturn",
I'd kind of expect compilers to not object to the omission of the "return"
statement here. This would then let us get away without a new SAF comment.
While you explain in the SAF text why you retain the statement, I'm not
convinced of code clarity suffering if it was deleted, as long as a suitable
comment is still there. If PrintErrMesg() lost its "noreturn", surely
compilers would then diagnose the lack of "return".

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 10:33:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 10:33:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088425.1446179 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up2c9-0007x9-5P; Thu, 21 Aug 2025 10:33:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088425.1446179; Thu, 21 Aug 2025 10:33: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 1up2c9-0007x2-1x; Thu, 21 Aug 2025 10:33:49 +0000
Received: by outflank-mailman (input) for mailman id 1088425;
 Thu, 21 Aug 2025 10:33:47 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=m+ul=3B=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1up2c7-0007NU-JJ
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 10:33:47 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 519455eb-7e7a-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 12:33:47 +0200 (CEST)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by DBBPR03MB7067.eurprd03.prod.outlook.com
 (2603:10a6:10:1f6::24) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.23; Thu, 21 Aug
 2025 10:33:44 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%4]) with mapi id 15.20.9052.014; Thu, 21 Aug 2025
 10:33: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>
X-Inumbo-ID: 519455eb-7e7a-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YFZif3VQPHgbZrW+pOGyCQOtKc8bA9RZ7kZtbY97PJz/tZDii30N3Uw4755vwqjFe9KWL2iumSPYMDjnw6xVgp8NoBgn8xqwWho6+3bVEbZryrpgDIaxMU7hysFRa0J+qDejv+7CwijVXJpRnZCi4YpKQB4ci61nDR0l1jA9gAYpAcRRO3Dm7KKelgyXE0t4DmFN0LbThgbFDraRb8WNDx12Uk0akV8VPlOTZhhyg5Kzzs/FWdEzITheleEmR3zuQuou89OK5slkIUXaKEMjDfMlLksuzq6q/QqGCP7OudGaRUMg6X1tm+RrIYMCXgxwm38NTngT+7FGJRR/sa5yoQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Ml/82C11biSbpgv96dW4rOKQGSjknt1q9GvbECagVAg=;
 b=WFuir+9fRQlFcetE1cg8TvBMNr+2JKcAbYDTAWRRPouQInZf/p/EwM21xdpEQZxBVhitOXECQKmzJvrzHPCUJA1TLBJ60cu3jrs+x9oYQu0phfSNDgfOXkHDaVeKeUyJ5gbIUQzVG8GXSxJ1xp7GILjaZbik3sXojdgRRbnFLLkAyTEij7sPGCStEWdrHg6nVK47BqqQlV5/GtRj7i4DBQHrM9iYqBvrlEDRwW6dUIQ+zoifEZdacv88tUYo4wTnc4LjGk0mCKym0ucNedZoWTeJZYYlBLl3broiv8PNFxIkFxf95yzdWlfHUKQRMyT2LcX84T//fRVPgswZ61f4Wg==
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=Ml/82C11biSbpgv96dW4rOKQGSjknt1q9GvbECagVAg=;
 b=ZD/TtHVaNdAWu67yiQPzGMlRD0wnQrafCwwJIa3PgKDA4Tb7vsTY2y4NsFrt9zk5IMSMzY5mZ0QdPI6JQIfx+cRAs3tucZ/I3FqbDcKQLYUvsK5OuuwFn44KXDSpfHCtGp+7mGO0ZOYY1AFDOJfFueXfnIlexJ2sHpWHZP0J5m5FZ0U7BUtbG9pgK9OFUx+0tmdyQLaxURFgv1s3zNZJ5RYyE3swCLmmDmk9AZi5qJfP17y/LpxMcxHyXt2jWXfHsAvm8Ub5o6f7dMPWq4Yw1wVptvCj/5DmU+KPwU84IDuG3KtrmAGH7W3seL8X4qdeFNDBUajSdGm4PPL8Ac9n1Q==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v3 0/3] IPMMU handling for PCIe Passthrough on ARM
Thread-Topic: [PATCH v3 0/3] IPMMU handling for PCIe Passthrough on ARM
Thread-Index: AQHcEoWBrXdpekseCUaIjTCf7h1JwrRs6ReA
Date: Thu, 21 Aug 2025 10:33:44 +0000
Message-ID: <b3b24b23-4892-4663-9cf6-41477567c156@epam.com>
References: <cover.1755771103.git.mykyta_poturai@epam.com>
 <d0f3e8e6-fb33-49b6-9872-ea9478368be3@suse.com>
In-Reply-To: <d0f3e8e6-fb33-49b6-9872-ea9478368be3@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_|DBBPR03MB7067:EE_
x-ms-office365-filtering-correlation-id: 7969c2b5-c814-4554-80a4-08dde09e3443
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?dEtVeUtzK0NaVkJBV1hzQUptZkFmNUsxR2YwS0pTejNwd05IWmVldEJ5VHkr?=
 =?utf-8?B?UVpLc2FQQmYvRlNnc09HY1psemljS1VRdUMzZWtuMlRjUnMzTVZOclpwaHZU?=
 =?utf-8?B?VDJZUnJONkxrNlhVcHFWVklDd2p0MVpOZTV6RTVwM2t4c1ZFRDRvajgvcEoz?=
 =?utf-8?B?OU50aDVlcnM5RXBaQzZoVjdCdGZSME93WEo0Syt4SG9JWHBTakJtd2thL0o2?=
 =?utf-8?B?VEdBeUNUOUllZlBnRkpwRnhWR1VwaldiZmtidGRFdlpMSDU2bVdYSDRlUlNQ?=
 =?utf-8?B?WmQvL0h0dExJV0FNM0VjenRaNkgrTzFBMDJYOFlKNS81aVQxbEZrbXFMa1pI?=
 =?utf-8?B?Q2hRZFdEU0RtZjY4MTdDQ0o0ODhqWnY5YVo2Rk1lazYrV2QydW1rNVQ2KzZC?=
 =?utf-8?B?d0k2S1MxT3o0ckNCRWN2TmsyNnIwbFRLRGZ0cS9BU3V6MVpqMko0RU4rTDY0?=
 =?utf-8?B?ZVBzV1JBNnB6dElaVEtOakJlakMrUEt0Smc0MUhtWGNJeTRMSzVzak1BUnYz?=
 =?utf-8?B?dE5hbUxtM1kzZzhITTRYNW5qdWxBZUZKNUlJalVqQXdwaWY0YlB5a3k5VUpz?=
 =?utf-8?B?Sy96eHNmd20rQWlXcjlMMWpLSlh3SS9HcVdKK3Q3RmFjVXM2NzJ2cGFBRnZo?=
 =?utf-8?B?YTFWSXlpTGw4MDRHeWUxb3dLL3liQVhMMWpnbWNlazJkM0ZJUnZqbllMOEZ3?=
 =?utf-8?B?RFBzcjZOcXlodGdPL2VITy9LaTJCYjBVUmhYRmxKM3c0VldlR3NOYW55MnBP?=
 =?utf-8?B?amg3Q1ZsOHh5d3FiSU9PRjhYQUl3ek8zM3loWFFYci9NRXdYbzNXZWhuZnph?=
 =?utf-8?B?T29PeUY1aE1JbVRkVVlUMW5XZGw2NC9YV3RWL0hBM3Vja3ZUZk1SWktKb1Vl?=
 =?utf-8?B?ZWlydTkxb3dBVEUzaEJTMWhKSTBxL3VMSmdocjNoNk5tRU1xNzhXbUhoOURZ?=
 =?utf-8?B?VmZncVRBMkY4L0NNUW4xNG1HcGVndVdjbksxcS9SK0x1QTM5dlh2SnVCWWpK?=
 =?utf-8?B?bHFKQ005OHg0Y3YrMlhVcGZBcGc0cjVvZ2hORFY1M1JodzRDLzBRazJnbERq?=
 =?utf-8?B?U1FCUk5mVHlpK1VncmZRTTJyNjlYWlVucE5pQWo2NmVzUE9ha2FuNHdTUG8r?=
 =?utf-8?B?MXB1aGNweG5uTlZ3RjgwQkQwVW9pNGlyVGROWkJaamw5Q3ExeitNOWp2R2dq?=
 =?utf-8?B?NUdHVWM5MTNQKzY0a0wvUXFOeEQxbjNYL1V0clFiY3NnRDJiZU5nUHIxU3k4?=
 =?utf-8?B?Q3hoS3dGcmlBZFd6di9UWjlKT2lMdnZCSjdLWFZmYU9MbmJOaUhzZ3FoQkVN?=
 =?utf-8?B?dDJFZFMrNm9wOTFEZjdsTE42VTJETnhZK1Q4MUVPc0VQM1ZTZmorKytGdTN0?=
 =?utf-8?B?bjZpNkNHMHlrR3RUdmduQ1oxSUJOVTR2c3M4aHhET0FWSi9LWjIvZ0pwSmNu?=
 =?utf-8?B?TTMyWHBGcmVYY2RjdlBaazZhM1dla0hCZEVlaTVsR3NmOFBmb0FDYzhPNGhK?=
 =?utf-8?B?OFo0cVNPdXlrbmI4K04xdTk1Q0l2OWI4MWl4czl4S3lvU2Rud1FQelVKMzZn?=
 =?utf-8?B?U3hScE84QVAvYUkxSzZ5NE9DSlE3Ti9ZWE9Ha2dqYWpFeFIxSXdUd1JZZU83?=
 =?utf-8?B?aUhhaWhnL0M2SS9wU3cvVnMwOW55dzRldUlYR1YySCtPRjFWNll4UkRUemd5?=
 =?utf-8?B?bkwzbHFqNTZDWVNRQVJkZmJDcTI5Y1dEbjF3YUdoalVTSkg0RGtZakUweVlJ?=
 =?utf-8?B?UHlyc09oRWgvMm9jcU9SOXNCRWNMTlVhSjBVeTdiV0xaNm41UURSWFY5SE9F?=
 =?utf-8?B?WUNWRDNHMHppYm5CSWI4ekI0UEF4dzhZUzhZTVl3Wm9NdjZmZlZXNjQ0Sk9s?=
 =?utf-8?B?NWh2bFNJVG9JYWNwdUhJKzR0WjVqZTBkanNsUWFUaHRhTDl2bFhCSTQ0dGpL?=
 =?utf-8?B?TStnTHpoVVJCdFM2VTlSTkxqQ2ZSenpzbVdhdlhMa0w3eG1sd0t6VWRnWW9M?=
 =?utf-8?B?NHlMV3ZibmlnPT0=?=
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)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?dXJObHdiK3NjZEg4NUhNaEd6ZWlocHhza2FKRm5HZ2tJdkMxRnlwMnJzZWNo?=
 =?utf-8?B?YWV1eG4vTEd6V3lma2lKdDN1M3NObkZsUGpRdEFleHV6OTRGSUdKdFJmOWJa?=
 =?utf-8?B?QVlteXMrUTVlL3lDTVhXdS9DbmJZWVFtZ2ZzMXFPRDI5UUlzekZER1ZRUE82?=
 =?utf-8?B?UU5NaWhncFBxcFB0RWtYV1lpbXZlRHQ3a3Y1MWJzaFgwNk9iTDhkcXI1Wk1o?=
 =?utf-8?B?eGtWV2w2K2JuQUE1UFg5ZzhiS0FjaEs3NjJUYUlwRnh5bkdVZlhpOXdZWEgy?=
 =?utf-8?B?NWEyWEFRT0hmRG1aL3h2VzVRdzdObjU0MmdzMS96c2FTdkdrNEtKUGF4UW5s?=
 =?utf-8?B?blR2ZHJIc2JtaitNRVJoQnR1N3lYd0ZxNkFHYlpCb2t3alRmTGllQ3piejJq?=
 =?utf-8?B?cngvd3lmUVJ6aXNxalo3MEhzaXhYYW1pTDdHeHdyZnZXajF4T3pyaGJsTEZ5?=
 =?utf-8?B?MVQ2emxuSmlGbjFmVyt2eGRLZTBRTHgvY29aWU1wTlhzdzZtM0JBN2VSUElw?=
 =?utf-8?B?TktoeUswYWIrOEp5Mm1PQWx6NVN3V3Jmd0Q2dnJaMktDa3ZiczhGQVFkRjVX?=
 =?utf-8?B?S2RZeDFINzdrdUJvNTJlY1FPWUtRZ1dNWXQ3KzI2QmQwNkovSGVtRFFiRk1v?=
 =?utf-8?B?ZXFmbUY0cDMyU3pTU0hOWHBGemFSbU11a0FDRCtCUDJZTk1TZzlxNmQrV2Q4?=
 =?utf-8?B?SlhCeFhCcUdaMUNHTWJnR2JaWnU4Y2doR0tENVNWNlY1SnhXb1VsR2VTay81?=
 =?utf-8?B?Qi9UcFZ2REpmeXZKU28vNXd2c254dEozUlliU0YxSVpFSnRXK254WkVNN1l2?=
 =?utf-8?B?QmR4TTRMVGQ2WGlLL0QzMzcvYVhteFlOZENRUGJZYURiOXIrZ3RXeU1Kd3Rk?=
 =?utf-8?B?bHREVDJvWVRQWDdVZDN1MkpQV1hoUVlWSnJ6NFBKNlhkdUQ1RDhmQlZLOTla?=
 =?utf-8?B?aUtHelFVN1JuRHl1NEYvVXFGci8yc2NuNG5QNGZuellLMjVwY0lkeXBCNnpH?=
 =?utf-8?B?aTlKV2t4OXFWSjgxZHBXNVlEWG5ubUZPRnVDcm4zb3M0TjdGYmtNZlk4WS9F?=
 =?utf-8?B?NDRCWWdjWEp5K1JYRTJseHBHME9mNUZ2YWJETTJrWGgwamNWNWZnbDQwaWRV?=
 =?utf-8?B?OExia2QxN1FzNXVRZ3Q3c01hWTZ0ZUFKb2k1WjFCZEFIOXVZZGluUTFEWTZz?=
 =?utf-8?B?QnBPOGFCRmhyMWFFc3BEODd6OXVWbi9ubW41UGk5R29DT1JQTGYzRkNlRVpu?=
 =?utf-8?B?K1JOQ2ZML3VnZTIvc25XblFURm1NcUFCSnFTVzVzOWx3ZExiRkRGcnlyTFEr?=
 =?utf-8?B?dkR2Wlg0MFM4MjZNOE5DSEJIVmpHQnNkMHBzZGtadVE0eTZTSExOc3k5ZXFJ?=
 =?utf-8?B?WENlOGs4Ni9DUDU0cElkTXVNTHBYOVJVZjl1WXY0N2xpbHhFVnFya2xxWFk3?=
 =?utf-8?B?WUw5NFBXeFh1eTA4NjlLWUFZZXdKT0lvQk40LzlGS0dnNGJlTHNzV1p5cUpX?=
 =?utf-8?B?bW5rV2lmMXQ4VWtrekVNV3o1WkdsWGVpODVwNUUvV0tOMTFZWG5FcHl0Qitn?=
 =?utf-8?B?c3ZuVXlEbjFwVHJDVlR5dWQ0Z0pDbGgzdEVEMnNRcElaVm5BbC9SanNVa2Mr?=
 =?utf-8?B?TS9ZZ044UjBaVWt4Vjd5RVRPcml0TncySEpUdC9YY2dMblpXR0NHbklqOG9E?=
 =?utf-8?B?N25wS3FGMFBLdGEyTDMxVzNCSTVYaG1zeVMrL2l5NzBjeTBORFJsN1IwMVRq?=
 =?utf-8?B?WXhWVzc1U1hmdGZ4ZXBIYmdQSkNUWGxod3ZlcmV4bzhWcWVWbmhNeXQxaGZq?=
 =?utf-8?B?eWpIWEFzc21Oa0N5YVhKM3Q1VS9Zbldkdk5FV09UeFIwZmc3alZFdWMwOVJn?=
 =?utf-8?B?dDVFVG9henJEMk5BSDdHQ216RlJhT1h5OXFLRXkzcnkyMS9XWllwN0RSdkxO?=
 =?utf-8?B?dzBEelM0R0Nuc3FVamVxc3FQS0ZWcGRDVmZtUk51QWdoWVJERCtGbzRZNURh?=
 =?utf-8?B?bURmeiswZDYwL1lNSm4waWZlTmk5QUN1V2NVTTJoQTdqOVg2TkFON1JPRHVZ?=
 =?utf-8?B?S2d5cThLdUZYcFJWU1RLdFcwb2QrZEVDcUNJQ2lieVMrOUJPZjFMRHVQTVFq?=
 =?utf-8?B?Ukt3aVdVUmVURXJZbXJVRHhyWWl4T29nUTN4RFMvNTc4aExqZHlTd3grVFZj?=
 =?utf-8?B?aFE9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <77A93EF5037DF541B6D5E31D6216581F@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: 7969c2b5-c814-4554-80a4-08dde09e3443
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Aug 2025 10:33:44.2137
 (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: ZV0DAj7RLzFGCMWqV/4DfqJynfnWr24U3JwWXJDwE9kwACEGt6Og1b2FNeNej9y6k8l3/dPv2bb4/R2shreMlw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR03MB7067

T24gMjEuMDguMjUgMTM6MjIsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAyMS4wOC4yMDI1IDEy
OjE1LCBNeWt5dGEgUG90dXJhaSB3cm90ZToNCj4+IFRoaXMgc2VyaWVzIGludHJvZHVjZXMgSVBN
TVUgaGFuZGxpbmcgZm9yIFBDSWUgcGFzc3Rocm91Z2ggb24gQVJNLiBJdCBpbmNsdWRlcw0KPj4g
Y2hhbmdlcyB0byBwY2ktZGVzaWdud2FyZSwgcGNpLWhvc3QtcmNhciBhbmQgaXBtbXUtdm1zYSBk
cml2ZXJzIHRvIGVuYWJsZQ0KPj4gY29uZmlndXJpbmcgQkRGLT5PU0lELT51VExCIHRyYW5zbGF0
aW9uIGNoYWluIG5lZWRlZCB0byBwYXNzIGRpZmZlcmVudCBQQ0llDQo+PiBkZXZpY2VzIHRvIGRp
ZmZlcmVudCBkb21haW5zLg0KPj4NCj4+IFRlc3RlZCBvbiBSQ2FyIFM0IFNwaWRlciBib2FyZC4N
Cj4+DQo+PiB2Mi0+djM6DQo+PiAqIHNlZSBpbmRpdmlkdWFsIHBhdGNoZXMNCj4+DQo+PiB2MS0+
djI6DQo+PiAqIHNlZSBpbmRpdmlkdWFsIHBhdGNoZXMNCj4+DQo+PiBNeWt5dGEgUG90dXJhaSAo
Mik6DQo+PiAgICBhcm0vcGNpOiBhbGxvdyBkZXNpZ253YXJlLWJhc2VkIGhvc3RzIHRvIGhhdmUg
cHJpdmF0ZSBkYXRhDQo+PiAgICBwY2kvcmNhcjogaW1wbGVtZW50IE9TSUQgY29uZmlndXJhdGlv
biBmb3IgUmVuZXNhcyBSQ2FyIEdlbjQgUENJZSBob3N0DQo+Pg0KPj4gT2xla3NhbmRyIFR5c2hj
aGVua28gKDEpOg0KPj4gICAgaW9tbXUvaXBtbXUtdm1zYTogSW1wbGVtZW50IGJhc2ljIFBDSUUt
SVBNTVUgT1NJRCBzdXBwb3J0DQo+IA0KPiBUaGVzZSBwYXRjaGVzIHdlbnQgaW4gYWxyZWFkeSwg
b25lIGNhdXNpbmcgYSByYW5kY29uZmlnIGlzc3VlLiBXaGF0IGlzIHRoaXMNCj4gcmUtcG9zdGlu
ZyBhYm91dD8gQXJlIHlvdSBpbXBseWluZyB0aGF0IHRoZSBlbnRpcmUgc2VyaWVzIGlzIGdvaW5n
IHRvIGJlDQo+IHJldmVydGVkPyAoSSByZWFsbHkgZXhwZWN0ZWQgYW4gaW5jcmVtZW50YWwgcGF0
Y2ggdG8gZGVhbCB3aXRoIHRoZSBpc3N1ZSBDSQ0KPiByYW4gaW50by4pDQo+IA0KPiBKYW4NCg0K
T29wcyBzb3JyeSwgSSd2ZSBnb3QgYW4gaWRlYSB0aGF0IGl0IHdhcyBhIHByZS1jb21taXQgQ0kg
am9iIChhcyB0aGUgDQpwYXRjaGVzIGFyZSBub3QgeWV0IGluIHRoZSBtYXN0ZXIgYnJhbmNoKS4g
UGxlYXNlIGlnbm9yZSB0aGlzIHNlcmllcywgSSANCndpbGwgc2VuZCBhbiBpbmNyZW1lbnRhbCBw
YXRjaCBzaG9ydGx5Lg0KDQotLSANCk15a3l0YQ==


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 10:45:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 10:45:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088447.1446188 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up2n1-00059I-8Y; Thu, 21 Aug 2025 10:45:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088447.1446188; Thu, 21 Aug 2025 10:45: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 1up2n1-00059B-5d; Thu, 21 Aug 2025 10:45:03 +0000
Received: by outflank-mailman (input) for mailman id 1088447;
 Thu, 21 Aug 2025 10:45:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=b9ZH=3B=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1up2n0-000595-Ka
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 10:45:02 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on20625.outbound.protection.outlook.com
 [2a01:111:f403:2406::625])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e10b5c22-7e7b-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 12:44:57 +0200 (CEST)
Received: from BYAPR05CA0011.namprd05.prod.outlook.com (2603:10b6:a03:c0::24)
 by MW4PR12MB6801.namprd12.prod.outlook.com (2603:10b6:303:1e8::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.20; Thu, 21 Aug
 2025 10:44:52 +0000
Received: from BY1PEPF0001AE1B.namprd04.prod.outlook.com
 (2603:10b6:a03:c0:cafe::29) by BYAPR05CA0011.outlook.office365.com
 (2603:10b6:a03:c0::24) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.13 via Frontend Transport; Thu,
 21 Aug 2025 10:44:52 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BY1PEPF0001AE1B.mail.protection.outlook.com (10.167.242.103) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Thu, 21 Aug 2025 10:44:52 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) 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; Thu, 21 Aug
 2025 05:44:52 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.10; Thu, 21 Aug
 2025 03:44:51 -0700
Received: from [10.71.193.195] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Thu, 21 Aug 2025 05:44: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>
X-Inumbo-ID: e10b5c22-7e7b-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=kqsZD/cx8zq3AKD9p2ttV7vUNY+KwzDaIXl7vfat5NbcgI+z78lkva089dBbPmMm7qGhvvN8IbtpLAoMHBchz2lNuBK42Out0yatIykKldkKg9OZwBfVc7AFcOSO0YZp/98Iui9QDu/jKKPDIeTE1ghBiGb2wvnXb1Cc0fQqTZIVnrNreMntbftVpoKieYR7cTN6hGMbHMMEMq8BFcPa/tnjJSi94EOxmPiaoO5PYjgjVLMTdWODDSyOMAHr7EA1vJQqDgqsTro2NEJ+AL7DWB5GnsiePgPeXHWJ3ipNfJWlQKm/TpeRY2AOHe2gyoyuWsHASGi++lUy7Ou0nySxQg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wVX7PgK0RRLc4eLIU8ow+X8k4uG2SZwxCU9rooQZTRg=;
 b=UryR/CUlSj/xR/vpcQlplPvKi2vmQlkWfrHvj16Goab2lK5TJwAu5xPblOzG4u5+aqfrtqu0spnGQ73YaCTbc4jTyqbAOdN6AipoGe/uUSXaYVKA5uXYWwaOUgYIGDxGnMbk2MxbmzmvQSAlrsbL7mLhFC6jcwfzgfb3G4611lIt/127xjM2NCCj5Ybe37I9QhZC8jCzO3CP0KPpvUGbvfeDWOFxNo9GIgcJdY70BpfAxOhVci5KxglUYaPxRy5SupajpPhzmlF3XwBebmiwwGxGpI538HUFHCoOvci+QNhQlUNvacs0gVBKOa1ko8hsWOUH9OyYj71bF0bxmk+5oQ==
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=wVX7PgK0RRLc4eLIU8ow+X8k4uG2SZwxCU9rooQZTRg=;
 b=YfkqTZfCT4tnGgiordV9RRS2DRrCQ3DRiYEaS95Rt3zX/uwdQsDp7RhbBLfAFlsbbUmVR+w3h9nfo9yCrLZ9rjPZ1+Pt7pqfRxz8JAxBXQQiBE/+NOptVajdqy0y65DVEmDjJZA7bZVGAylD5VnVcK6IxJTX+N6i+npYVWjrTzg=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <3feb63e6-e2a6-498b-bba6-5e46267f93dc@amd.com>
Date: Thu, 21 Aug 2025 12:44:49 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/5] arm/mpu: Implement setup_frametable_mappings for MPU
 systems
To: Hari Limaye <hari.limaye@arm.com>, <xen-devel@lists.xenproject.org>
CC: <luca.fancellu@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: <cover.1753864612.git.hari.limaye@arm.com>
 <f08c240934fc126b651096a315da84d2d8e15197.1753864612.git.hari.limaye@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <f08c240934fc126b651096a315da84d2d8e15197.1753864612.git.hari.limaye@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PEPF0001AE1B:EE_|MW4PR12MB6801:EE_
X-MS-Office365-Filtering-Correlation-Id: f9d49384-5fae-493c-40bc-08dde09fc2c1
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|36860700013|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?OFc3UEFPQVpBbVpiSmlVM2dRNm9mdTNwTExVcXVFRktlVFVncVNCQ1VNRXph?=
 =?utf-8?B?ZlEzTk9uZVYxMWxHbVVHdWp0ekN6M0NuYmh0dkgwaXRyT3czMnMwVUo4ajVu?=
 =?utf-8?B?S0VrVlorak1sbnpnVWJkbkNKSzFNaE9BVU1uSGZqTExLOE41b2pNVG9OdVN6?=
 =?utf-8?B?QkM3QUdEM3Nia093SzQ1RHRraFQvdkphbkIvcFNYZDJBSFR5bTdseVZqTGVJ?=
 =?utf-8?B?VTVwOU8yalhXYVdBZHZoZ2N3VERHTGFBa1M0L2FBTnJ3Z3ZRMUd2N2dJNWZW?=
 =?utf-8?B?d3IwUVhVbFZxRjhQaXV5WnNzRndGSTlPK3FjT3lQZ01JZklSMnBYRGhXUnNu?=
 =?utf-8?B?dVdZNzFzU2lGNVJrZStkRVNRaXpZVkdqT0lGNFpIR29mK1A0Rml4cDVKek9s?=
 =?utf-8?B?S1ZQZC9JVkhzbFU0ekJURFU5OXBQbE1aZFRlMFNnMTE2cnFSOUFmUmY4ZmI3?=
 =?utf-8?B?RlAvS2lHbGdOaUV4bldoaE1hSks0NDRXWXo3WkZMTmlnMysyYjQ1U0JXaUtq?=
 =?utf-8?B?RHpPeWVIbE1GRjBWWUd0YWkwRXZ4TjdxeTQvK0FSejdEWGs2VWJZb0J5ZC9J?=
 =?utf-8?B?TjBDMFp6Q20vNE51ai90dHp5MjFtNkN4Q3FidEZKUU1RM3pTSWJFUmhKTVFh?=
 =?utf-8?B?RjdVbWpyTzNZblAyOGZmK1p2STN6N3VnMnJkRFVBdEg1MVo4M2QvSzJWaUZQ?=
 =?utf-8?B?R3dUSlRibGZJdngyK2pSOGZnRHI1UFg2T2xMQTJrYVFldGxuOHg2WExzQkZU?=
 =?utf-8?B?bGVWY2R2QjBsdnQ1dExDSDZrSUlTdnBxa0Uxbm8rL09lZVpjQnJiTlg2NGxV?=
 =?utf-8?B?cXpwQVJkbjJxM1NvSUg5M2x2T3pBZWFUNXFvSFJZTG1UZ04xMUR1VEZSL1NR?=
 =?utf-8?B?M3dvRHo1WUNBU2ZXTVV5SFRRNFZQOExOazNueUl4Ni8vRmdydW1xdklSbGZO?=
 =?utf-8?B?THIxZEVxRm51UVZweU1CekVjVWdUbHk0THYyK29nWVBiSHJlcGVuU05QNVcy?=
 =?utf-8?B?dnBaWjdTWG9FQkdEekJ4QlF1QUQ3dW1PcjhYVWQwVGNQbHhYaWZ0TThUcXEr?=
 =?utf-8?B?Q0FyZjMzWXlVWjZlakhycUdzdzRxYUlpZHF1cGxDMnpGWnArQURZVVdHMWlY?=
 =?utf-8?B?VVR5UjJaSGtMVGNxMVJXUjBPZnMvcExaQ01EUE1DTjRMdFZBa2tCK3FCV1ln?=
 =?utf-8?B?eTE1VVdVbmdGajlaV1hZeG1JQVNwbjh3MkdFdGsza0Y2UHFxcUZ0VUxnTk15?=
 =?utf-8?B?SS9NdWZJdXRjSFZPS3RtZWtuaWJuUklUVzlnUGlxVWVNakdMblFGdkV0Zjc2?=
 =?utf-8?B?SkliVUptVVErdmRvK042ZFhEeDVpbFNiditUSEs1b2c2d2dIczdXWEtDTDdi?=
 =?utf-8?B?UlJPZkJZWUFra2ZTby9DdFFIckhURWlkaFpkVjV0dGk4SlVSWmJueHVWRDBq?=
 =?utf-8?B?bElFVi9xK3QzMTZoWmcxRTNEQTQ2QVpOcndZdUVGVGphUWJuMTdsZHNDbyt6?=
 =?utf-8?B?MlZGU3VQcjh5UzlYRHBCc1FGb252bk9zYXJhUFBuRjNMM0s1dFRhclVTejB1?=
 =?utf-8?B?WHBndGxsTmZnWW1LWC9NYkhHSVVZMndBVmNkbHpsNFc1V1Ric0Z2M1N1N0pC?=
 =?utf-8?B?ZGl2ZGNBMEt3SVJwNTU4cVlqMjVOT1ZnNjNwNGFPZkppemRSaG9hbVZ4eUxy?=
 =?utf-8?B?V0pqNGM0SzNUS25ncEcrRlJEYUlGL2JPcDB6Q0g0cXQ0UC9VOE4zelpzWFo3?=
 =?utf-8?B?S3FpSGhOa3VDVnZnemgzM2w5S3FiY0xXWEVCVGZwWlovRUJXL1B3RGszVW10?=
 =?utf-8?B?ZlN5VHFabUZWRG9scGhGcjJHR29zRGtRSXNvQzdndnpBM3JYYjBCTS9OVGZL?=
 =?utf-8?B?bEM0czhuSW4wdkFOMnY4M2dnSkdGdGt4Q25kK2laN054M1NkZGtnZHlmSm1M?=
 =?utf-8?B?MFhrV2ZiejVCazZLYjRzb09zR1lidFVaN2wvRzkzU2J5NHl5Mlg5cVM3QzRV?=
 =?utf-8?B?WVBYanM0UG02MDAyZWFyZFFlc3p0ZXFPc1JWcGlnT0xiWUgxSk4rdy9VZGlG?=
 =?utf-8?Q?xezzYn?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700013)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Aug 2025 10:44:52.7009
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f9d49384-5fae-493c-40bc-08dde09fc2c1
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BY1PEPF0001AE1B.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB6801



On 30/07/2025 10:45, Hari Limaye wrote:
> From: Luca Fancellu <luca.fancellu@arm.com>
> 
> Implement the MPU variant of `setup_frametable_mappings`. This function
> will be called by `setup_mm` when an implementation for MPU systems is
> added in a follow up commit.
> 
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> Signed-off-by: Hari Limaye <hari.limaye@arm.com>
> ---
>  xen/arch/arm/mpu/mm.c | 19 +++++++++++++++++++
>  1 file changed, 19 insertions(+)
> 
> diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
> index c6891607ec..6a16fa348d 100644
> --- a/xen/arch/arm/mpu/mm.c
> +++ b/xen/arch/arm/mpu/mm.c
> @@ -168,6 +168,25 @@ int mpumap_contains_region(pr_t *table, uint8_t nr_regions, paddr_t base,
>      return MPUMAP_REGION_NOTFOUND;
>  }
>  
> +/* Map a frame table to cover physical addresses ps through pe */
> +void __init setup_frametable_mappings(paddr_t ps, paddr_t pe)
> +{
> +    mfn_t base_mfn;
> +    unsigned long nr_pdxs = mfn_to_pdx(mfn_add(maddr_to_mfn(pe), -1)) -
> +                            mfn_to_pdx(maddr_to_mfn(ps)) + 1;
Don't you need to make sure that ps is rounded up to page size and e rounded down?

> +    unsigned long frametable_size = nr_pdxs * sizeof(struct page_info);
Why don't you need sanity checking with BUILD_BUG_ON to check frametable size?

> +
> +    frametable_base_pdx = paddr_to_pdx(ps);
> +    frametable_size = ROUNDUP(frametable_size, PAGE_SIZE);
> +
> +    base_mfn = alloc_boot_pages(frametable_size >> PAGE_SHIFT, 1);
> +    frame_table = (struct page_info *)mfn_to_virt(mfn_x(base_mfn));
> +
> +    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)));
> +}
> +
>  /*
>   * Allocate an entry for a new EL2 MPU region in the bitmap xen_mpumap_mask.
>   * @param idx   Set to the index of the allocated EL2 MPU region on success.
Other than that:
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal




From xen-devel-bounces@lists.xenproject.org Thu Aug 21 10:51:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 10:51:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088464.1446198 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up2t2-000809-SY; Thu, 21 Aug 2025 10:51:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088464.1446198; Thu, 21 Aug 2025 10:51:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up2t2-000802-Pj; Thu, 21 Aug 2025 10:51:16 +0000
Received: by outflank-mailman (input) for mailman id 1088464;
 Thu, 21 Aug 2025 10:51:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=m+ul=3B=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1up2t2-0007zw-99
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 10:51:16 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bd9cc337-7e7c-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 12:51:07 +0200 (CEST)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by GV1PR03MB10276.eurprd03.prod.outlook.com
 (2603:10a6:150:15e::18) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Thu, 21 Aug
 2025 10:50:59 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%4]) with mapi id 15.20.9052.014; Thu, 21 Aug 2025
 10:50: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>
X-Inumbo-ID: bd9cc337-7e7c-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=u0SWz/gu9BZwaEoqpnejdV0uMq5/32VhTjiFBc1v3tN2JzUzSTvWz76/PHHvQyaqOe63wkaR+K17IEmzOv9wZf1pkjsNKUs5JWMydXJU4dVZtfSn08O9nAGAyS+FVq0l1Q5h+MgIP+CFQ0EJpFgJ5+hEVnmb8IxpG+rUxqosFiM3chzTEUn89G9aUClj0c9gNvqS8RCJIapB4aUIjeEYwwDC49BnPfCdToxh+1KYbUmAw9B11Yx5IyT+7i6+6eqCkgMKd1sngjieAH2sVU4IGOA8CjI3Q21n3vLou12TEvUymwwoGORjiCJa/E9zDNSH3Uf1o8KWLneixP+uzxK+FQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=1ZFxoHjk2LCW85ctA8CHNhOh+xhpEnzUimziGQcn7K8=;
 b=HXytk0NJrM2RPAAhvgpIcfRx6HyIniUiobQFa5d4D6GDdraWkiLml3kU8hCCEM2GGFYXHjUrjE/0+8zbk7kysE88wsdF8yRqwDlkdfGVhv6IlmTXJZoX8YpYiF8DaUyQMxzcZZe7Hpv/3HxpCfqSB22Qbn2lWIPPE5CsT6kSLJ44Pj2wC0VBI4a6aqDs8S1PKnPDD7sVOQIj4EYrxg7yhuizPaWnLHW+q14PWR4URoB+lbmZx/vlIKvO6+D1CBQALsnwqurFhzAsusTFKlVjTKli/YxXY0F+QqiDPwZ8FFjw3A90cclV8+4hroIa5WHbnf+ykQQftUV2Zs0zGZJezw==
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=1ZFxoHjk2LCW85ctA8CHNhOh+xhpEnzUimziGQcn7K8=;
 b=poKOYxD+nhiYbwrpJKNswcmYm8Hl206xEn/uiTnE0IkZ/jGV7AY6gFMa9hrmArTgSmjZ5y/bjQSw/zywnjZSS8a+gR1rD0ZGB/g6mNmwrBVxEzl8NmJMVJPonccLwTaMXVHR8cIFTpc1mcsv1XOvaQlcGTHSiDBquSw999KX2hQkOro18qiy2Be30mUcbgZLQQJpwuEqUE/avoZ2z/9R3xPz0VfbEKj5UWVC5TdJPo+5P7BwYHaAVoWnN47+1L9OhKKD/DneHamUaSyN3EoDIbfGcZfPGYQc598YBCsGLRhBhCEerp06qQBO6lS6QZY7a2P/zZQ9p+4sdR80BmftOg==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Mykyta Poturai <Mykyta_Poturai@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v1] iommu/ipmmu-vmsa: Fix build with HAS_PCI=n
Thread-Topic: [PATCH v1] iommu/ipmmu-vmsa: Fix build with HAS_PCI=n
Thread-Index: AQHcEol6WY2CZ9Gyh0KXEcdKpt6HNg==
Date: Thu, 21 Aug 2025 10:50:59 +0000
Message-ID:
 <f6a8095483ba54e1eabeca5e4b08138312fa822b.1755773176.git.mykyta_poturai@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: PAVPR03MB10102:EE_|GV1PR03MB10276:EE_
x-ms-office365-filtering-correlation-id: 138560a9-ebcd-4c2c-8917-08dde0a09d0b
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?p89lxhNurkfZNJYxUh/YyYK9UhBhWWtolzN5FJ46c8DJ2tVNhyrqBpwQPt?=
 =?iso-8859-1?Q?Ng04mGuO/g/gin6+Ckr/l9XieD2KZiX5JbIWVW943IRm5Qst0y4bacVm3+?=
 =?iso-8859-1?Q?urS97ZhDNQ5Zj0F23kcQ5Xn826XDC064t3BsNtsaWaTn9hFEQkaf4gKwTq?=
 =?iso-8859-1?Q?Z9JRXZj0tmZjS78qbI7E0KyFPNn3rwFBY8wIHHy5i0V1UyM/y+HqwcrRRf?=
 =?iso-8859-1?Q?2uF+prIFOdVdrg89+xt6nbkWa9aIdVk3Jqr+PD53sn+KRjVczkr8gbc0Yr?=
 =?iso-8859-1?Q?XeeBbRk6T94aQ2lqwsjUP3F8Lrh0tukYtUv1FeOOp9BVG+Ws9RWhDRr8eY?=
 =?iso-8859-1?Q?eVq0Vqvt74SXolYjYnA1la6dgJQ3a24K7GUrKpR8gNqauew5trXJ4D+g6I?=
 =?iso-8859-1?Q?dxnWp5jSTy+0UbPMdw422zOjmzRFvfq2a96J0rwogkwOvZTBdY4jPkFu3g?=
 =?iso-8859-1?Q?cF6IoerDQjgSQHKC51HPvRqueRC8UvhUJDCJ9l7RovNhrRwShGSa7EF4Gh?=
 =?iso-8859-1?Q?pioLLsEIIqcI3s5MB94g3+/h902LSs2nbRiCvGKw+5Z3xxz9276e+HfByG?=
 =?iso-8859-1?Q?M3IIa3K/VZC7tibsByQ65C/NSljr/kIk0MoOr+Rc0LEQgVx7lneYkbiktE?=
 =?iso-8859-1?Q?T7KdHIb26drr4fBrFeQ72E4ZAh73scJwb0A3iwsHfOTQkPjGKEhRPZISmT?=
 =?iso-8859-1?Q?A66OzgKIDO102/cye+zgRkOqeBhddZK9XXpfJ6jheW1ZuzKydSjG3DwBM/?=
 =?iso-8859-1?Q?F2UMQ1i02QYhfCO3PfWOWlKhnzTDeLO+kt1vEUjYkVz44AURX/XEgG5rv6?=
 =?iso-8859-1?Q?tIwq7sGkKY73YyteZ5M2fPojzPjkdyob1PnvZT3rbRNQpmQ9uI2/xqxzEL?=
 =?iso-8859-1?Q?Jy2TiS4xsPizRhv7yIwLge2IjB2q4w5/4+xeD+OIWt2tqQzuCYSObgMg1j?=
 =?iso-8859-1?Q?+D++k7ZoH0HauiLCUoBTt3FY7mTbiPvBTfOHpYPK/SAyCSkyCLvrrAbMpk?=
 =?iso-8859-1?Q?qJhOae3rOk/aX3/PZjgzkGGfgrM19v04EYUMEmlB3Tzp5FS8OrdtFqM9Ze?=
 =?iso-8859-1?Q?+yCv4sFvC2lBflhlwKz3t3Kn1vw5tl2MDNuwowManx8V4M7hoZW1tHfV4R?=
 =?iso-8859-1?Q?J++Ao6N6poOF1P2AprBDamifCmI7My/RhtvSKEerWV6k9kKLLC4F2dLwuV?=
 =?iso-8859-1?Q?8jH4+HMyUK+EdLbGqJr7wgkvZzUGBM9vehWpbccQHeVUBttBbdAwLOJ3jh?=
 =?iso-8859-1?Q?sytYbMtUlEHQ8vR+jy9cASnDxDRXX/VY0wPU0Vcb1l5QbcwEtZQ4m/HLQQ?=
 =?iso-8859-1?Q?Tf2MorEbin7poXdeyq1OqCflxSqqd+N9s86uneaMnKTAyYfogx8Tx7Qc0K?=
 =?iso-8859-1?Q?W3adut1/Q6bjFOnEQeU9NIeQfZOPDCQcxtH/K+lis2sPEw8+L8WAZ5cDeZ?=
 =?iso-8859-1?Q?dAFRgU8+F6B4y6mEyhNpTa6/SrNCG/I9NpAYN+Dz+4zhWoVt+YiuYc4Q7T?=
 =?iso-8859-1?Q?12ql6yyzXDe/orD4iBDITvpxvpvvTWAGSozyx+ZBbyfw=3D=3D?=
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)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?cG4sVIOAKDP0s2jGhz/ofL4UiuJTXvocfkKXmuLm5Z5pMHBpkR/kI8YZnP?=
 =?iso-8859-1?Q?+Pw8URe+XG5eMa/MHoFybTJ26Vpf8gUa95kkXH8+CzyRL8OD2MOFqnFi7b?=
 =?iso-8859-1?Q?hxNEQ/qvJKypc5XpOa7ZvTODu1VghTZ+JILZ9KuwwXDzHmIBvYKhx9IaWj?=
 =?iso-8859-1?Q?qWD2AoQnoxrwikRJl+mKlAlJl2OYPtd/linj09CjUgClsyOub25lmo1c1F?=
 =?iso-8859-1?Q?RabuZGbkJtXk1aXLuHIEIeAgyRdmeBFyMN2DVpGDQXkZrzLXGZIvFWzcxC?=
 =?iso-8859-1?Q?AAes1EF+IdzaOsXV6WvFPih5Ke4LNq/Psh9syeezXpPuiOqOP0fkoTwWPA?=
 =?iso-8859-1?Q?RRthfJ1S4NAbKf/NTUJ4Hfw7S8dYr+sVvyFvjJGT9v7YejluwKrb/n+W1V?=
 =?iso-8859-1?Q?3JwqEaf3yhkfICsNi94v9QCMAusMkimrUY+LVswSC/im06GC7GBpQy90qr?=
 =?iso-8859-1?Q?6d15KqSao5xvQpSn2Fy1q7gStJatv1kG5NYsx8ZytAmMsfSev33MGNQAP4?=
 =?iso-8859-1?Q?OORf/+b6zqRiNdpE9CQ422RiTCHGsx/v6p2Pd89najHcwbU1TCEBAmCTfv?=
 =?iso-8859-1?Q?6088PkWksEdiuHXEWMcAFUOIATmpAKEIW2OKyjWwEen5jb/owu0jiHDY3g?=
 =?iso-8859-1?Q?Ioxrf7YPUcimyEZiluhHq5EA8ECd2UYgl0/2PvsNXTLn92d1wz7HesdBr6?=
 =?iso-8859-1?Q?9WixBgZ1it15rsyJPe+zft6QuGu0AomQmWJtqkm+uSH+0VnzwaM9MXo9NV?=
 =?iso-8859-1?Q?RnUGSwgbEIcP1GZXjTsmkFp0K9ysJg/g3zlKMjAYYSRo/w770yxxUGYQ7S?=
 =?iso-8859-1?Q?7cgkFlr19HujMre9whDBwmp69JbayUqU/tXFfCyQx0aWHg9dx7+m13zLJd?=
 =?iso-8859-1?Q?d9C+loGZmDIcrEQ7eUTciv6+QNvGwV/GNGbRr3hAmWW1c5IiU0vbJSghIU?=
 =?iso-8859-1?Q?lG8+JJ1HxuLJdtgejDHSohtJhkK3vgaifXUbBEtyGI6wihoBRTV9dyZcvj?=
 =?iso-8859-1?Q?rZmmRNzlv8ORwdN/7YTMPL2S1hlCBSXQjL/PIyIMawOwBu6bf0o5rSqKw4?=
 =?iso-8859-1?Q?27kIKF5e7R8paeteLsYLnlKoax+VGFw/4Y6xh2TkaUvFs1n0WSEE0zcNpy?=
 =?iso-8859-1?Q?cdVHf/o5Rea3XkxeyJEYaqZB+0iB/biV6H7BUMtC8ZH7SzEmcFkFzllOP6?=
 =?iso-8859-1?Q?p6Y+I4DLw36TIcr42K8SzBPQAwcZ6IJKNG0OOzP/n0z8XqSVzSRZo49jMJ?=
 =?iso-8859-1?Q?mNFr3vBkohG2WS/koWbuGztdu+6JMXaU1It3SVq8C6jN5dD1S95mqJijZy?=
 =?iso-8859-1?Q?iCmBNubcPFSnOMWBoL5QUygI3fYdOP+XVO1J7m/OL0RmeMuuk52Y9tFWxD?=
 =?iso-8859-1?Q?wKu+JxDZlnhb73exfkOid9G8j8r7/xvrFNwnj8sWV/TkrNR3S++ZkT4/KH?=
 =?iso-8859-1?Q?4KPVx+l8RIMNe9OwiMz+Rm7pfscD0LXDa46QsvU3MLZj0dKD8hsD1iBMvs?=
 =?iso-8859-1?Q?bb07SPLN0JDLx1HLnuDrHU/iiXUhJrYcFs8NCcB7Uars3IB71XEpO4fizg?=
 =?iso-8859-1?Q?NePt5GRivvIMMIWAJSqJoLp+xdvP8dHRRucgfrPPhFsQIdVbdKKgrHESLm?=
 =?iso-8859-1?Q?dhoMOOe7zjVZwhO4sQWvetno88KW4bESh1POv3S4EuWB+zQQk50Pk9xw?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 138560a9-ebcd-4c2c-8917-08dde0a09d0b
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Aug 2025 10:50:59.0368
 (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: fYjt4Hwd6clJqTipCK8/6ynVVWHk+bFdBVhIrK91ttBX9AEktw2sHSm/WfPQ28253xcz/i1wZvjliQdF54LD0Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR03MB10276

With PCI disabled the build fails due to undefined struct
pci_host_bridge.

Add ifdef guard around pci-host-rcar4.h to not include it when PCI
support is disabled.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
This patch can be squashed with iommu/ipmmu-vmsa: Implement basic PCIE-IPMM=
U OSID support
---
 xen/drivers/passthrough/arm/ipmmu-vmsa.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/xen/drivers/passthrough/arm/ipmmu-vmsa.c b/xen/drivers/passthr=
ough/arm/ipmmu-vmsa.c
index ea9fa9ddf3..49f149e222 100644
--- a/xen/drivers/passthrough/arm/ipmmu-vmsa.c
+++ b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
@@ -51,7 +51,9 @@
 #include <asm/device.h>
 #include <asm/io.h>
 #include <asm/iommu_fwspec.h>
+#ifdef CONFIG_HAS_PCI
 #include "../arch/arm/pci/pci-host-rcar4.h"
+#endif
=20
 #define dev_name(dev) dt_node_full_name(dev_to_dt(dev))
=20
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 10:55:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 10:55:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088473.1446213 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up2wl-0001w2-E9; Thu, 21 Aug 2025 10:55:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088473.1446213; Thu, 21 Aug 2025 10:55: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 1up2wl-0001vv-BI; Thu, 21 Aug 2025 10:55:07 +0000
Received: by outflank-mailman (input) for mailman id 1088473;
 Thu, 21 Aug 2025 10:55:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=b9ZH=3B=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1up2wj-0001ve-VO
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 10:55:05 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20628.outbound.protection.outlook.com
 [2a01:111:f403:2009::628])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4ab92a41-7e7d-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 12:55:04 +0200 (CEST)
Received: from MN0P223CA0026.NAMP223.PROD.OUTLOOK.COM (2603:10b6:208:52b::12)
 by SA0PR12MB4430.namprd12.prod.outlook.com (2603:10b6:806:70::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Thu, 21 Aug
 2025 10:55:00 +0000
Received: from BN2PEPF00004FBC.namprd04.prod.outlook.com
 (2603:10b6:208:52b:cafe::e) by MN0P223CA0026.outlook.office365.com
 (2603:10b6:208:52b::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.15 via Frontend Transport; Thu,
 21 Aug 2025 10:55:00 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN2PEPF00004FBC.mail.protection.outlook.com (10.167.243.182) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Thu, 21 Aug 2025 10:55:00 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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; Thu, 21 Aug
 2025 05:54:59 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Thu, 21 Aug
 2025 05:54:59 -0500
Received: from [10.71.193.195] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Thu, 21 Aug 2025 05:54:58 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4ab92a41-7e7d-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qEsreqZGpMNG2sOd7OaID3wLCIGMbfQiOiGylJZf+bw2P2RyH10wejfpnvmSuiWCkNpJ6t6mbEMn5103U/K+w9RKNTXI1EsmTW6FTlpL+7mhwWOPYATRq8Y1XRm88TFfkIdNmmIRtwhAYGbS2Tf1ZNGDcWdCXRJL9LI/BAssmYUf3M2KFKObLCB4PcjzaPJVN0O2AUcClUuhL4mOkA97HQIzLftzBWdbuP5ppaH+1i9g/HsV8RT7daXTjfQ4iTCWXox3NKXn/JRI8UfZuuQT58UXGBAxCOYBbG3E16Jr1icy2KnO4Div+gfyTzAPmAZPUwoQCZPKodVO4KtoXK5VsQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=NQ1bLXXhExpFxPT5ePWApPcDNlZrRuF/q+j1MbvLydY=;
 b=d5DhQiDyx9A3dybjM08xVNFS/XUF7cdU5rlx0WFQTPOJpZOwciOg5DFVdUyF2O8oMjmnhja+tAzJfZkYdQbvoxZCJtMjrr9zd8jtRj/cJARfFuoBjQeVo/NyTJz5FFElLPvkA13z8bTMG0c9R8+uW23zA0CNZ1wJx5cKebURmAu7KLger47Y9MaDNIpIrsuYeeDcJ7e1kDo19fVBjGhU4Ak6Ld/w+JWgr537qbP69sKqxP1IOQGpKq2GSz7DbxJt68J/w/rzh1VzjA5FP1etvjCP4GVuGLr2AQLjYt+9YaYKu1fM+h8AS93aS+aj1lyp/9NosMO5kFuCT1VIL2rnxg==
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=NQ1bLXXhExpFxPT5ePWApPcDNlZrRuF/q+j1MbvLydY=;
 b=CB9RGGg5iA45gk6dqHITwh7zoTeutro8CtyU1zcn5kWrjqcCgWTYv/1NPI6qrEfl4ECxpS7RB3LKHGQGD4yEXFIBr8hXF7evC2FV8+7ALRGauE3e9fl8A2He8AjJULqzt3SXjDEhaP15iydS1SDGRygKx0qD8OFQVSuEC637yzk=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <68a74142-667b-4b8e-8340-fd41ec15046c@amd.com>
Date: Thu, 21 Aug 2025 12:54:57 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/5] arm/mpu: Implement setup_mm for MPU systems
To: Hari Limaye <hari.limaye@arm.com>, <xen-devel@lists.xenproject.org>
CC: <luca.fancellu@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: <cover.1753864612.git.hari.limaye@arm.com>
 <d4dc1be6f581c0c090c0cecb6fd49049a46fefee.1753864612.git.hari.limaye@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <d4dc1be6f581c0c090c0cecb6fd49049a46fefee.1753864612.git.hari.limaye@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB05.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN2PEPF00004FBC:EE_|SA0PR12MB4430:EE_
X-MS-Office365-Filtering-Correlation-Id: 46feee6f-4a24-47cf-f8d1-08dde0a12cbf
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|36860700013|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?T2VtKzR4VUlLcnpQRFp2VWp3NTZrbWJHSWxEc3NudUt3L08xNk1hUWZMMzA5?=
 =?utf-8?B?UGx1eFJJYUJsdXhHNG5uV3hWYUhqUzFiaE0zeFlZb0FIcDd5R3RHcSs3Zkd4?=
 =?utf-8?B?NWtnYm51RUs5MnBKWTAxaVJ6djhXNGlTb3liUmRWcnV3SmZDeU1zVytjdTZM?=
 =?utf-8?B?aC9oK3NrSWJJbnRLREUvM0VZUnZCdDJGMUhzbys5VENBM2h5cW56NHFHVmdi?=
 =?utf-8?B?SFZaVjRwMkRZbXdQS2s0NEw0UUtBK0VqcVdxekdsNlkvR2VmOXJFTVAvOVZR?=
 =?utf-8?B?bVRFeVZPcWJYQTYxUm53R3NlQU5JSjFPUVY3NUduRzVJaWpERzNjYVA4VHBl?=
 =?utf-8?B?MS8ya0dXeTkxMWxTMTFnREdGaDVaanFPQk1EZncyLzIycjRNNm5OQnNEMHND?=
 =?utf-8?B?QzVrOFEwUmlrUHNJeTdkNWhxYW03bjYwZHhRNGpnNGtYeW5LcTNKQ0lvYng2?=
 =?utf-8?B?eFBjU0ZLeE16Z0lveDFIZmxxYjg5V0IrT1o0QnAzU0NoVzJUb2pYK3VhZWhT?=
 =?utf-8?B?SlNBc0U0bnBsRjgrallzNUNsZFRjeExUZU1SeTZqRW5XT2RlOTdXZkgzZ1Nx?=
 =?utf-8?B?aVR5Tlh6Yno4YzlkQUdUcklENmZua29ONEVNZzQwMEhPbmJoQmVnYWJjQ2pL?=
 =?utf-8?B?MkNocmxPaUd3KzlIVTZYQ2NZdmlxWkFWN2NFUEpZVjFIb3IrbjRqQ250NmlC?=
 =?utf-8?B?WEZFU3hzSlBuZmpZVE1qZGcraW5lNnZXQTVhS0cxNXcycDBIbnhrRDhtNTFv?=
 =?utf-8?B?QVl1dDNhOG9XUythcjRPVlV0eTZ1bitOUjZoNEhMd3ZYN0pRMVRhRnVEY2xs?=
 =?utf-8?B?YlhwU0plSTIwL1NGTjBVMHBEdW4wYllycTVyNVJaK3FVZVFGYWNndmlXTmMv?=
 =?utf-8?B?ZkpRZWxzLzE1S3p2TXVBaWQzaHo5dzNETjlnbzRLamZuZFdnRS9MTjgva0hG?=
 =?utf-8?B?ck82TzdNQ0NqNmVacXZIdkhYNHA2OERnOXJPaVVEejBBQUlaQ1dGMVIzQ0VJ?=
 =?utf-8?B?L1pwNGxkOHFJZmZ3eXI2ZWtGL1BFUlpIeFJZeUFmMjlLOXVvRmwvKzQvYXV2?=
 =?utf-8?B?WUNlb3dUZHc5Y1RlekFlWGd6ZFpFSnVaYUxYSGRqREpnY2N4RUw3NzNHNXQ0?=
 =?utf-8?B?Z2cvSnI4RWVpUHdDZnE1bmpUT0dFb21lN3pxVG9hYmloWWc4c1F4eXRFMWlw?=
 =?utf-8?B?bjg1THY5Ymk3MGpMWTk4NmovOFQzT2JKWjVYeWVSWFNTTnc1c0E4NVBSUWNB?=
 =?utf-8?B?QXFNaFRJdUg0d0c5NHpiMmZzK2VXZEIvQ1ZYc1MveDVVTXBrYWg1Q3l3YlN2?=
 =?utf-8?B?WElSR25PVW5qaU9CMXJNR0NaL1B0RW5pUnhEaFRVbmFPaXp2dUh2NDR4VGZh?=
 =?utf-8?B?WFcxQXhNdGRRejg5ZjlxUGp4SlF4UEpDRzYvOEJ2YlIxdFVhSnMzNEhoQmRW?=
 =?utf-8?B?Y1ZjMUJibVpEMDlETGpQZmV4NUN2a1JYQXNDVmU5cXQrMWhaK2czTzdvN0kv?=
 =?utf-8?B?RFcySmJNYXcraHQvNWg4ZnE4QlhGQkVYVUpXV1FCSUd1SUdSN2hSaFF6Vmk1?=
 =?utf-8?B?cnY3WU9qNFhnbmc1aUJnYU1xZytWTG16SUJXOGxPZ25zbm4wdndPcVJqUElY?=
 =?utf-8?B?OFp6UGRCMzIvbWkxVXI2OXVHaGp4VUNjaUVTY05mZFRaNHl0YWFOTW9sajB4?=
 =?utf-8?B?K1lFQkNQck1sbGgwa2hOR0pBckZ1UVh6YUdwYS9XUUZjeVcyV2tDMlZGd05Y?=
 =?utf-8?B?dUxvRFVkUW1EY2NPT3hzcEFiVUpURWpKQUlZY01TbDJpTUJGRklHSXlLdCto?=
 =?utf-8?B?aHd0TDBKZ2FEdzZVTHFKQmV2Rk1LMmhjOVo5S2Q0M0p0L2RzUk9jTzRkZE5s?=
 =?utf-8?B?NEVOelZjWTR2VHFPY29JRUtVcjkyYlYyZHhaeUgrUFA1QnBGN2V3eXJpT3A0?=
 =?utf-8?B?UjIvMG1rbE9sWXlHR1c4WEpVY3QyNGM1Z0dnMUFjMXl0NlNzdTlvOFRKV3Vq?=
 =?utf-8?B?cWp2Z2dPUXVlWHRVMGZxUDRYUkRaZGFyS2xLV2lFaWdQT1doK1dCaHVqYkhO?=
 =?utf-8?Q?YAngOL?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(36860700013)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Aug 2025 10:55:00.1200
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 46feee6f-4a24-47cf-f8d1-08dde0a12cbf
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN2PEPF00004FBC.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB4430



On 30/07/2025 10:45, Hari Limaye wrote:
> From: Luca Fancellu <luca.fancellu@arm.com>
> 
> Implement `setup_mm` for MPU systems. This variant doesn't need to set
> up the direct map.
> 
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> Signed-off-by: Hari Limaye <hari.limaye@arm.com>
> ---
>  xen/arch/arm/mpu/mm.c | 64 ++++++++++++++++++++++++++++++++++++++++++-
>  1 file changed, 63 insertions(+), 1 deletion(-)
> 
> diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
> index 6a16fa348d..0b05103180 100644
> --- a/xen/arch/arm/mpu/mm.c
> +++ b/xen/arch/arm/mpu/mm.c
> @@ -8,9 +8,12 @@
>  #include <xen/sizes.h>
>  #include <xen/spinlock.h>
>  #include <xen/types.h>
> +#include <xen/static-memory.h>
> +#include <xen/static-shmem.h>
>  #include <asm/mpu.h>
>  #include <asm/mpu/mm.h>
>  #include <asm/page.h>
> +#include <asm/setup.h>
>  #include <asm/sysregs.h>
>  
>  struct page_info *frame_table;
> @@ -364,9 +367,68 @@ int map_pages_to_xen(unsigned long virt, mfn_t mfn, unsigned long nr_mfns,
>      return xen_mpumap_update(virt, mfn_to_maddr(mfn_add(mfn, nr_mfns)), flags);
>  }
>  
> +/*
> + * Heap must be statically configured in Device Tree through "xen,static-heap"
> + * on MPU systems.
> + */
> +static void __init setup_staticheap_mappings(void)
> +{
> +    const struct membanks *reserved_mem = bootinfo_get_reserved_mem();
> +    unsigned int bank = 0;
> +
> +    for ( ; bank < reserved_mem->nr_banks; bank++ )
> +    {
> +        if ( reserved_mem->bank[bank].type == MEMBANK_STATIC_HEAP )
> +        {
> +            paddr_t bank_start = round_pgup(reserved_mem->bank[bank].start);
> +            paddr_t bank_size = round_pgdown(reserved_mem->bank[bank].size);
> +            paddr_t bank_end = bank_start + bank_size;
> +
> +            /* Map static heap with one MPU protection region */
> +            if ( xen_mpumap_update(bank_start, bank_end, PAGE_HYPERVISOR) )
> +                panic("Failed to map static heap\n");
> +
> +            break;
> +        }
> +    }
> +
> +    if ( bank == reserved_mem->nr_banks )
> +        panic("No static heap memory bank found\n");
> +}
> +
>  void __init setup_mm(void)
>  {
> -    BUG_ON("unimplemented");
> +    const struct membanks *mem = bootinfo_get_mem();
> +    paddr_t ram_start = INVALID_PADDR, ram_end = 0, ram_size = 0;
> +
> +    if ( !mem->nr_banks )
> +        panic("No memory bank\n");
> +
> +    init_pdx();
> +
> +    populate_boot_allocator();
> +
> +    total_pages = 0;
There's no other place setting up total_pages between this and += ram_size
so I consider it not needed assignment. And actually, this could be calculated
in init_pdx() next to max_page to avoid requiring each arch (arm32, arm64, mpu)
to set it exactly the same.

> +    for ( unsigned int bank = 0 ; bank < mem->nr_banks; bank++ )
; should be added right after a field, so bank = 0; > +    {
> +        paddr_t bank_start = round_pgup(mem->bank[bank].start);
> +        paddr_t bank_size = round_pgdown(mem->bank[bank].size);
> +        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);
> +    }
> +
> +    setup_staticheap_mappings();
> +
> +    total_pages += ram_size >> PAGE_SHIFT;
> +    max_page = PFN_DOWN(ram_end);
This is already calculated in init_pdx() after my recent changes

> +
> +    setup_frametable_mappings(ram_start, ram_end);
> +
> +    init_staticmem_pages();
> +    init_sharedmem_pages();
>  }
>  
>  int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)

~Michal



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 10:57:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 10:57:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088488.1446226 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up2zE-0003QI-W7; Thu, 21 Aug 2025 10:57:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088488.1446226; Thu, 21 Aug 2025 10:57: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 1up2zE-0003QB-TI; Thu, 21 Aug 2025 10:57:40 +0000
Received: by outflank-mailman (input) for mailman id 1088488;
 Thu, 21 Aug 2025 10:57:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5Hha=3B=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1up2zD-0003Q4-DQ
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 10:57:39 +0000
Received: from mail-ed1-x535.google.com (mail-ed1-x535.google.com
 [2a00:1450:4864:20::535])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a577f917-7e7d-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 12:57:37 +0200 (CEST)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-6188b6f7f15so1147947a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 03:57: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
 4fb4d7f45d1cf-61a761f2599sm4948390a12.5.2025.08.21.03.57.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Aug 2025 03:57: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>
X-Inumbo-ID: a577f917-7e7d-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755773855; x=1756378655; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=w1n3cyMmsHG3C5o7mCY8sLDUzFeAZrOahVTBAR2gU+8=;
        b=TSjjI++4N7aJL9jlICFBEv8Rkj8HBKF+a0ht6ctyeluM0STV2hhxnm1P53UrKIuYfM
         YKqyQRLTUAhqENd2tVMcRM4oh47XgDOwXr9I9a9ZbIG4FtQ8StAVukm/fzYtXG2Hy7GF
         rbTIZYnkv8bFyLQyjbOpm9VGeMfMT1R8MBZ0BjHrP7f6SCxijyzfbsNcWJRECpihaO57
         lLFErasUfC46Zip4T60umuMTiUDzHR471Ya4ospgG9MtWcKoHAMZ2PHv3OfPxwIRJur7
         r1imVXI7cXzkbMymwZLquNiDO9srBjwea9DaZGGEQ/yGwKT4psn+5tSjkE74HteWFKx2
         DQoA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755773855; x=1756378655;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=w1n3cyMmsHG3C5o7mCY8sLDUzFeAZrOahVTBAR2gU+8=;
        b=beMxt6Xq91lYcQkY6pt+orksXwMVZQ6SbwazQJFJcog4yLALhMNdO0oqm/nVBWxnlL
         cIkOdvHumsvjHJQu/ejgLO03nlDtTDrFsXv5PS9ki4uaef+kbB3aWsUdQs9tT9PRP6bp
         gs9i3ahazS3871TpIc4BRd3sXK41zeQH/0gsn9KWVAoi5oO8c47VIQZq2LOGgzpGMBGv
         iYpZhfy2cGHDXirWWBSzbM76zUg22YaSB/6OlTEScHFWMCWUzn4n1crxWheAXmC381Jm
         EKYuZSYnOOE3jQ/TCDA/hPUWoP/3Mmt0SSu08+OY8Roi7hRMpKoSru7CYAg4CZC/ZOxH
         vwWg==
X-Forwarded-Encrypted: i=1; AJvYcCXKcWnYbLc217uLQoZTstyOWqdgn5UO+56apbqCx0yXskYkXWUDlMUcn9FXaIJBvM6uZ4c6+JOFt6c=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzGhULmvWTj9HewbsbpIFvoUCAoiqsrxjmy2jZiG/qhXMwUd4ui
	bm39wm1XMS8MYP4s2TuXzKTvPmvgiKLLJJwY8IkKh4BJNRQqTXRK9KbbLwH/DQiFsw==
X-Gm-Gg: ASbGncsW//pTH5lvdmFx9f529gwVY0kKbZqmAgzoTmWLgXfLqVAqVJwCXFSe2CyZ6Sa
	7PHoyQia9yWr664tU89iJReMy5eyNBjNZtXa/xEWE4ZYj+YNWUhDs1ZgWTcorV2Rex6bE4bc/qS
	f1WlOo43+NoSr7rVxcGQH9YPGv4wejJg7NQ3VYPNkt/SMo/dPN/xyppCoU34x0St5aF5Sd5N1BK
	AzJTCCOrl3Mws5GBrLs2BZT5TAbqAp5SEnJ0ObQijUkgjnuIgGDgUt+0yuUGXsroq1bhjeDd/ks
	VzOrGW2Ks9z5sFuh0Xkkn0T0bVLXeuqp/wzCt9OMhSFg6ulZd8JopSG5xv6d3ZqUOBaaWfKqQ3E
	VH+yLkqg21ieh8Atwvzg8o2z9+K0k1d5WmCqGDzxAdq05w+B3iPCfp5ABv6KR51ODygwuPROLUb
	UO2hWiYj4=
X-Google-Smtp-Source: AGHT+IGAe4xr/4FjZXVWTyMTGCVermDvuGol6x2rj/rDdAKDoDs2P1h1ayqDRPy8mj9ufCmOtMffvw==
X-Received: by 2002:a05:6402:4408:b0:618:47a0:3ba2 with SMTP id 4fb4d7f45d1cf-61bf8725e3fmr1824088a12.24.1755773855526;
        Thu, 21 Aug 2025 03:57:35 -0700 (PDT)
Message-ID: <4ee727e6-2d6b-42b4-b4e2-f385c394d702@suse.com>
Date: Thu, 21 Aug 2025 12:57:34 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] iommu/ipmmu-vmsa: Fix build with HAS_PCI=n
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <f6a8095483ba54e1eabeca5e4b08138312fa822b.1755773176.git.mykyta_poturai@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <f6a8095483ba54e1eabeca5e4b08138312fa822b.1755773176.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.08.2025 12:50, Mykyta Poturai wrote:
> --- a/xen/drivers/passthrough/arm/ipmmu-vmsa.c
> +++ b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
> @@ -51,7 +51,9 @@
>  #include <asm/device.h>
>  #include <asm/io.h>
>  #include <asm/iommu_fwspec.h>
> +#ifdef CONFIG_HAS_PCI
>  #include "../arch/arm/pci/pci-host-rcar4.h"
> +#endif
>  
>  #define dev_name(dev) dt_node_full_name(dev_to_dt(dev))

Hmm, while this may take care of the immediate issue, I wonder if it wouldn't
better be the header itself which is modified. Then perhaps also taking care
of the other (Misra) issue there: The header guard check not being first in
the file, but sitting after an #include.

I further assume there is a good reason why a private header is included here
from some other subtree.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 10:58:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 10:58:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088495.1446237 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up2zl-0003t2-7W; Thu, 21 Aug 2025 10:58:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088495.1446237; Thu, 21 Aug 2025 10:58: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 1up2zl-0003sv-4M; Thu, 21 Aug 2025 10:58:13 +0000
Received: by outflank-mailman (input) for mailman id 1088495;
 Thu, 21 Aug 2025 10:58:11 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5Hha=3B=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1up2zj-0003m3-7n
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 10:58:11 +0000
Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com
 [2a00:1450:4864:20::62a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b9fbe2d1-7e7d-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 12:58:10 +0200 (CEST)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-afcb7347e09so148051266b.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 03:58: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
 a640c23a62f3a-afded4ca67fsm371030866b.92.2025.08.21.03.58.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Aug 2025 03:58: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>
X-Inumbo-ID: b9fbe2d1-7e7d-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755773890; x=1756378690; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=FjwG1DWfSFofvB8XBnFDmHUdLo0hicU7CroMspGQlB4=;
        b=QlEmEHVfSfXs3x9CPUG0a0vAbuviBbgLi/4IlSUV4fimXznuYzFjj7Brm5Rb8vm7vW
         2DUMnSl8M+mVZCOLCPo7MGJzhcviQhZUpMmdKwfXZ9w1i6FXl4r/Ku7xULrqylfLq5nG
         hlES4GndkHDZfQ+xQzVZqLx7o0CA3U1Lpp5TgRzuR6nnqmFgvCvk43kuQHDIWImssES6
         vX3XAFjxyIeIL+TssNk4GHyoHxOBQpUH5c2unn1nbI9ySSOybXDFo9kS0FhLW6WNthWT
         X4Hm/eRW4eluAOOcz7VtCskDjKR1nbWJzhNNkCJ6E58scDTpBzlTa/eRs1XJd8e+5OVj
         n5jA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755773890; x=1756378690;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=FjwG1DWfSFofvB8XBnFDmHUdLo0hicU7CroMspGQlB4=;
        b=WWVk13sO9vkcY9Nf+CajQ33dt0jk8Tf0dQa6mn1LAVL0u9k7ZscByBVKa8XeLlNCKo
         pGmG93KS4JGsr+fiBQa1P4wv0Xyc5BQ3+qxekthczutQQx59VyS17RfuAmd1AQOG+PNU
         OoktBvuRxbUnKSG9yTb1yK//ttlw8AmSuNQD7roalLs1RSccXw42Lf6G+PjG6/TRBenO
         nc+z55WR0ttd499ITrhzTckpRFH+bZVKrGBQygWBsgPqN/LLq93ruqCcR6THYs8LUmAw
         V5/2S8Ih6o01ySsaCMEuCO00OAlTsFKsZx0Qtaqw+cN05RYgunJPGvpdJNGJd13TjJKb
         tDlg==
X-Forwarded-Encrypted: i=1; AJvYcCX0+U2B6OY4taHi+byjPwpVWXTu7IwthvcMhY+IoG8jeKQiQaQjJEWE+LiDFwVH/wxUK+MUVoNNpb8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz0XGVh44Ck5PfWpPpH//TEVvBEQwUG/rg0NIXI82y+gfkdegU8
	QT6QeOgZAelXfmUsh8iOEZLlZUL3L/dnhwdWjZXZuOJRVZm+S5uPufgFE3BY3c8hQZBAtKBbxpb
	r1pI=
X-Gm-Gg: ASbGnctqk7CogdeTSPzK2a0rB087rpp512mZKOOr+jvQ94mgS7gcXvypGvHp3lE7eeE
	wCH5NFry2fK4zGsEjH1XqWjB4gPvBnyyGoAuwLKLFptTH4n/AVtKttYB/pRagcqkVQI4Cyu2AqS
	17puUbVbkxgm3AD1DAR/d4PhtJ0auf2IAOalICQHPsn+ueuwGvFLLkLNNRe5+i6ea0wgMfCPi32
	mvj+2hCJdjNyJUx4wf0kOAR4htPxga514CZufsdG9ac1kTyq6Zo1ux5yyGVn972CY0oUrIVU7tL
	CXHYBV6jeukv9AOsnLbwrCh03qjrw0ovuGnf40tJQMQ7pOmSlYxcwbERRPJtaZCtnBp8YiPLSdw
	O3b5m2VlLuTB6hYl48Jp0D+pBe2mzrCynSF2jkv5MK10qi5r0fj5gmLa4uU7MrCB19QZFXawXfp
	J8VLhV8e68x3C6FTq/7A==
X-Google-Smtp-Source: AGHT+IHjdRDri9ezYCuMAym/+IvLH+x1Rz9R4z/pvNBIpiLX8dlj51pkhHkB5p74j4bd2tG1VwBawA==
X-Received: by 2002:a17:907:6e87:b0:ade:4339:9367 with SMTP id a640c23a62f3a-afe07a278f7mr180340066b.26.1755773889748;
        Thu, 21 Aug 2025 03:58:09 -0700 (PDT)
Message-ID: <a2211b6f-4dcc-4e8a-bff8-ed162ac3bf36@suse.com>
Date: Thu, 21 Aug 2025 12:58:08 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] iommu/ipmmu-vmsa: Fix build with HAS_PCI=n
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <f6a8095483ba54e1eabeca5e4b08138312fa822b.1755773176.git.mykyta_poturai@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <f6a8095483ba54e1eabeca5e4b08138312fa822b.1755773176.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.08.2025 12:50, Mykyta Poturai wrote:
> With PCI disabled the build fails due to undefined struct
> pci_host_bridge.
> 
> Add ifdef guard around pci-host-rcar4.h to not include it when PCI
> support is disabled.
> 
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>

Oh, and - Reported-by: ... please.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 11:06:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 11:06:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088504.1446247 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up37E-0007pz-V9; Thu, 21 Aug 2025 11:05:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088504.1446247; Thu, 21 Aug 2025 11: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 1up37E-0007ps-Rz; Thu, 21 Aug 2025 11:05:56 +0000
Received: by outflank-mailman (input) for mailman id 1088504;
 Thu, 21 Aug 2025 11:05:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=b9ZH=3B=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1up37D-0007oO-Vo
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 11:05:56 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20605.outbound.protection.outlook.com
 [2a01:111:f403:2415::605])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ce202014-7e7e-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 13:05:54 +0200 (CEST)
Received: from MN0P221CA0003.NAMP221.PROD.OUTLOOK.COM (2603:10b6:208:52a::6)
 by SA5PPF6CDAEAF48.namprd12.prod.outlook.com (2603:10b6:80f:fc04::8cf) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.15; Thu, 21 Aug
 2025 11:05:49 +0000
Received: from BL02EPF0002992D.namprd02.prod.outlook.com
 (2603:10b6:208:52a:cafe::62) by MN0P221CA0003.outlook.office365.com
 (2603:10b6:208:52a::6) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.15 via Frontend Transport; Thu,
 21 Aug 2025 11:05:49 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL02EPF0002992D.mail.protection.outlook.com (10.167.249.58) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Thu, 21 Aug 2025 11:05:49 +0000
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; Thu, 21 Aug
 2025 06:05:48 -0500
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.1748.10; Thu, 21 Aug
 2025 04:06:15 -0700
Received: from [10.71.193.195] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Thu, 21 Aug 2025 06:05:46 -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>
X-Inumbo-ID: ce202014-7e7e-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=e//7Y3ATVjBKGTugUFJHlWQtq/s1nQCNEpWaFYZ6Exff9CXhJyUwv5vsy3MbYSScwEjwlLXWFgR0rCAhFl6DIYOJk6S7eaD9nQ4DaYOvXveT8WtQJkwtuYQEdsC+v8iZXIFf8fMSNeSRqRQBw3OAaoUer3nj+KLMpVurzrLGFDuJIeeYl0Uk2gMiw8sjsfw6Se39YsydAJMZvBmUYac7kOGhmq2asZ6GNRECES+oemi/ybK14TSU9CJ1NSW78KPUPc1JbxJ3Wh2cPmzJs74olBnZ5UkOkXxur/nBK+wOQIommWw4PdSeCI/oOSwFddTxSpK++JcmnFz8BLlXNTKrLQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=HRFdo1JZXljVnHB3s9XL3rh/UB5b1l9kzjQuaSOQ9So=;
 b=SPGDZXGGjsrvF0xyiWkhVlbDaas73Q9CHyVjOfw/YXIaVLpJd7ilcyOZ9lXkrbGf4NIREeclAueAa/lvuMMsnrpoCdawH2yKUvqnMEILyusbo9oCPBUQ//Wxr9WmkAqzuY9GJ0dE7je//z/Dv3/qBCpoudglLY+tU5k/7NWYsRABdtLNLpfwdu2ASbjlf8WUVBitOHlW8oVHN282OJNTw1lBeVeKreLlb/LogWKp8xkYu1ilhZUAQfsTBmT44OlTgBl3ivwN29ojieA/SmM4NmXmia+y1KSyb7Bts7c5aV96SN4PZ7g9GWu8vaDxXVTxK/k+X8rjqY8VpVaBxvv4Rg==
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=HRFdo1JZXljVnHB3s9XL3rh/UB5b1l9kzjQuaSOQ9So=;
 b=ZTwJ2BBdKggS29DHvRk7+VbtOkqKtmRUtsTE3YeM3J61RBY/YYG+ADruRp19+jOQnrn5MOku3QThQ6otrqEgFmEdDfTF32P/SkaLmH++fOvxBQt/VHgH97XtVDQKZoYSXY+1dUmXQXVJmhsOIiC2xbjODA5JqbQVbtBU16xQ/Zg=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <bb1ed794-e63d-4d9f-94ea-a468f57a6eb2@amd.com>
Date: Thu, 21 Aug 2025 13:05:41 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/5] arm/mpu: Implement transient mapping
To: Hari Limaye <hari.limaye@arm.com>, <xen-devel@lists.xenproject.org>
CC: <luca.fancellu@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: <cover.1753864612.git.hari.limaye@arm.com>
 <d6bd97094991a08fb5ffb48f2642b510b55693e8.1753864612.git.hari.limaye@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <d6bd97094991a08fb5ffb48f2642b510b55693e8.1753864612.git.hari.limaye@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0002992D:EE_|SA5PPF6CDAEAF48:EE_
X-MS-Office365-Filtering-Correlation-Id: 6be484f1-6b79-485b-9f41-08dde0a2af88
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|82310400026|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?WWZjOFV6bSthNEgwb0ZlTFN5VnJXSzFGYkdyWHpscmhXZFlmYUh1TFY0Zis4?=
 =?utf-8?B?RjJ6R0h5cUYwTnlJMVJmdGdKaXhNU1ZQTGZIcmlzcWVDcUsrSnBPdWJpKzBV?=
 =?utf-8?B?eTVxY3pzQkdsdFk2a0cxVzZPSjlHOVk0VUZ0dDRzd2hydkpxYW1pYnlyZFBB?=
 =?utf-8?B?WStub1lSRGRoN1Roc01nbGhTT1l1b2V4a201OUUwelpCL0o2QlRhYXdGZVRE?=
 =?utf-8?B?eDlPY1BGRklDUkt5eEVydHdYZFFUTnU1VGMvY1BraWlhbE5zakxZSnc5Q1h2?=
 =?utf-8?B?RHI4SkxtNGN6N3JHZjFMWk0yc1lINXlnMUk1Y0VaeXRKU09UWHhmT3Fhblpn?=
 =?utf-8?B?UTQrcFNhR1NMNmVJeUpOUEp2QlRCT05Dd2R6cjVRTGh0VFFKYlhXM0RKeDBw?=
 =?utf-8?B?bTRUcW1lZjZnU2R2bm5yKzNtM2VWRDBjSi9jUFZMREZ5am1PeGY3enBQejlC?=
 =?utf-8?B?eTlqQk14R01BWUtuZ1ZSZ2V4bnlHMGwybmpROW5WUUhrWmptNnBBUzNwelBL?=
 =?utf-8?B?QTI4NENWL1hCUVRDZHlNWmxGQkZZNzZQL2ZCYzJSMkkrbnIvOVpncjkzNU9V?=
 =?utf-8?B?aWpPbTEwNWhMMVRVWjJJSUFCVmQzcGUrODUydTFNelpOTXFEUVhFSFlBZkdN?=
 =?utf-8?B?VVJoSEdBRWlXeGxSeXFLY2VxRWtyd3FxbmQ0RjFmYXJCZ1lhUUNqYTBhZlVa?=
 =?utf-8?B?M3p2TkJlSXNVekFCTUNtaSs0WXJCcVFZQk9XQ0RyTjl3WVlOUjFrM0tkSjlH?=
 =?utf-8?B?TElUR2x4TXR3OENkQ245TFpoeURtVWpicW1FY01tOG1XQWJ0SjdvQU51b3Vu?=
 =?utf-8?B?RElsVlhJS3dUcE9CYnZZZ2pGV21wWWtGZ0FGeEJWYkdLOThsOEkrREl5Zmpt?=
 =?utf-8?B?dzRoeWViUm5rcXE0c2V0cW5pN0IrS1J5UEFnTUp2NUdabTJmVHFZMDNQTWhQ?=
 =?utf-8?B?MGVpR0M1MWl3bG1xTUVSTjByUFQxNDNXQ2RPZTc0b3QyNlpENzBDVjRwUjBa?=
 =?utf-8?B?U0d3eksvcHc1TGYwQWxZMzd0RXVvaVYvamxVbHE3WW15N1NxZjhxWTBaTHRZ?=
 =?utf-8?B?S2p3dGhYSmU0ekFVdW5lZ2xoVW9Vc1BCQWxEMjJIeUVuRU9MNVk1TzF3U0h0?=
 =?utf-8?B?OE1RNzVHUk1DMjIvNGsrZ3pQOUR6Zm4zUURvN2ErSEpNMjNtMExDdzBJMU83?=
 =?utf-8?B?dVUvdEwraGdZYVlJQ0ZDTHlPVE1oOEZCZlJ3VW4wN1RETDRoamdaTGJRajgz?=
 =?utf-8?B?bG81QnlMcXkwdnhTclVyYVRsc2xsUlFMQ3d1VFlpODV5ZlBpNUgyQmlLWVRu?=
 =?utf-8?B?TGhvS2EvMVNHVUtrYzFHMUZUSGtpZXQ5OUc3bmxZb1pUK1dUN0gzeTB6U0xM?=
 =?utf-8?B?SUo2a01vK3BUUForK2QxUDVvamRBQ0xxTlFyS3BWeTN2NkpMcUY2L0tGbHd6?=
 =?utf-8?B?YnNISFFXMUJzYldvanhNRjUrNDdaRU1pdTlYaVc1K1lDbzZORmtRMDhtQWp3?=
 =?utf-8?B?VWJ1MmpZeEZmc1pNREJvSllOSFhQWHJaQlZBOCtScHMvak96ODFuZXhhUDIx?=
 =?utf-8?B?T0E5YjQwOHA3clQxU2IxZzRjeDVEWWorV1JiNUpZbm9YaWwzVW4yMGg5d1Bv?=
 =?utf-8?B?S016Ky9pVFNtWkJ0R2tpMVhTVmp2ZXJmSVhIcy8yeTVOVEJ0U2I5V2t1UXBC?=
 =?utf-8?B?ZE9SN3hLeG1xT05ydENpcm9yY0FNclZubVR1dWhnTlFSQVdFdkVmTVJjc0lW?=
 =?utf-8?B?cWI0ZnJDY1NOQUNjSnU0M1VkNCtrL1pCcUV2TTY1S1VIY1l0U0hhNUtadlBL?=
 =?utf-8?B?bFRqVGx3ZFVpb25qWGIwTTMrWTM1MGVsazQwazhPeEo0NXluYlZWWW9pTmor?=
 =?utf-8?B?YTFGZ1RXUnUyM2ZrWGdWK252ZS9rKy9pTGtJM1pYSnVUY1FrcXVYUHNGS1Qz?=
 =?utf-8?B?QnJIN1RxWWdSajdtN1hZK3QwTWdOeVNkbER2RUcvaERrcHlTWHM3VTdYWjRt?=
 =?utf-8?B?RUdIc0N3enhCRXZvWGhPbjRodWw1bWVncjdSRG1LQW1sa2p3U2xMSUZ4TDN4?=
 =?utf-8?Q?lTEbcE?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(82310400026)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Aug 2025 11:05:49.0316
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 6be484f1-6b79-485b-9f41-08dde0a2af88
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0002992D.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PPF6CDAEAF48



On 30/07/2025 10:45, Hari Limaye wrote:
> From: Luca Fancellu <luca.fancellu@arm.com>
> 
> Add a scheme to distinguish transient MPU regions, to identify MPU
> regions which will be mapped for a short period of time.
The commit msg lacks description why this is needed.

> 
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> Signed-off-by: Hari Limaye <hari.limaye@arm.com>
> ---
>  xen/arch/arm/include/asm/arm32/mpu.h     |  2 ++
>  xen/arch/arm/include/asm/arm64/mpu.h     |  2 ++
>  xen/arch/arm/include/asm/mpu/mm.h        | 14 +++++++++++++-
>  xen/arch/arm/include/asm/mpu/regions.inc | 19 +++++++++++++++++--
>  xen/arch/arm/mpu/mm.c                    | 23 ++++++++++++++---------
>  5 files changed, 48 insertions(+), 12 deletions(-)
> 
> diff --git a/xen/arch/arm/include/asm/arm32/mpu.h b/xen/arch/arm/include/asm/arm32/mpu.h
> index 0a6930b3a0..9906d98809 100644
> --- a/xen/arch/arm/include/asm/arm32/mpu.h
> +++ b/xen/arch/arm/include/asm/arm32/mpu.h
> @@ -39,6 +39,8 @@ typedef union {
>  typedef struct {
>      prbar_t prbar;
>      prlar_t prlar;
> +    bool transient;
> +    uint8_t pad[7]; /* Pad structure to 16 Bytes */
>  } pr_t;
>  
>  #endif /* __ASSEMBLY__ */
> diff --git a/xen/arch/arm/include/asm/arm64/mpu.h b/xen/arch/arm/include/asm/arm64/mpu.h
> index f0ce344e78..1d1843eda0 100644
> --- a/xen/arch/arm/include/asm/arm64/mpu.h
> +++ b/xen/arch/arm/include/asm/arm64/mpu.h
> @@ -38,6 +38,8 @@ typedef union {
>  typedef struct {
>      prbar_t prbar;
>      prlar_t prlar;
> +    bool transient;
> +    uint8_t pad[15]; /* Pad structure to 32 Bytes */
>  } pr_t;
>  
>  #endif /* __ASSEMBLY__ */
> diff --git a/xen/arch/arm/include/asm/mpu/mm.h b/xen/arch/arm/include/asm/mpu/mm.h
> index c32fac8905..56ca411af4 100644
> --- a/xen/arch/arm/include/asm/mpu/mm.h
> +++ b/xen/arch/arm/include/asm/mpu/mm.h
> @@ -60,6 +60,16 @@ static inline void context_sync_mpu(void)
>      isb();
>  }
>  
> +static inline bool region_is_transient(pr_t *pr)
As this is just a read helper, pr could be const?

~Michal




From xen-devel-bounces@lists.xenproject.org Thu Aug 21 11:10:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 11:10:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088514.1446257 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up3B9-0000dL-Eb; Thu, 21 Aug 2025 11:09:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088514.1446257; Thu, 21 Aug 2025 11: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 1up3B9-0000dE-BK; Thu, 21 Aug 2025 11:09:59 +0000
Received: by outflank-mailman (input) for mailman id 1088514;
 Thu, 21 Aug 2025 11:09:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=b9ZH=3B=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1up3B8-0000d8-9e
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 11:09:58 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on2061e.outbound.protection.outlook.com
 [2a01:111:f403:2413::61e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5eb69eb1-7e7f-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 13:09:57 +0200 (CEST)
Received: from SA1P222CA0057.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:2c1::6)
 by DM6PR12MB4137.namprd12.prod.outlook.com (2603:10b6:5:218::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.24; Thu, 21 Aug
 2025 11:09:53 +0000
Received: from SN1PEPF0002BA4F.namprd03.prod.outlook.com
 (2603:10b6:806:2c1:cafe::64) by SA1P222CA0057.outlook.office365.com
 (2603:10b6:806:2c1::6) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.16 via Frontend Transport; Thu,
 21 Aug 2025 11:09:53 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SN1PEPF0002BA4F.mail.protection.outlook.com (10.167.242.72) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Thu, 21 Aug 2025 11:09:52 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) 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; Thu, 21 Aug
 2025 06:09:51 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.10; Thu, 21 Aug
 2025 04:09:51 -0700
Received: from [10.71.193.195] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Thu, 21 Aug 2025 06:09: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>
X-Inumbo-ID: 5eb69eb1-7e7f-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=icQXv8ntOcTROFrFdJG0/0l8WfaiB+HrLUhFUX8JemhRfx53Z4lMsEoYit2waC/71tkV5/39LmVY+U9LcU1ZFmJehvI6StLf0lQvovGilnI6kH72c9hn4iLW25cazsRChxdHRFOi1696nu7f5PZ11IKcXN3JLvJgixF3gWVtdWDr7bqfzL6B4k0USk2G+9GcbZEywGMaqpxbLY2hqb+k5or2yRJTeq9Lbecotj5/dTFzkN7jlUWBciCG7IyIep7kqfsE5uF5hyUqthVaaBqX4OjxyNEp5jhVvArrQsR+MNsDFLras0X7es2XoyqUzY2FVs1X1l9VqZdy69NAL60zKQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=I28EE7g9cPtZfRGkYhQ1dPRFYGVidmmqIHlT9wK41bk=;
 b=NedUQa6fdM9f5gC6Get4ck7LzOijVw9mcUUNKY72s5BqaG0b+ochaqT3/n4JIGIzqb8ajNHcU89uzNsFQyt0rnGjJfvUhKgzDuVh8td+8KnzFD2Y+4R5i1W2YBTdl0mjgrgAqUl9fuIvRr+Av62Eb9akfVOYT6MitEaz9ksafOtlrbDJZUlI3qsKh7DjtbYc/6MhnQ483+DfD+3M4UB3UQiM51omU75cCEsaZfF9M7qwLYsurvWgweR4uAdZuoVdV1J5/dFCTLS0SgU58GYM9mqe9jFbOY59rdymuxsMKw4LPX9mDQpsLMIY6RHTqf8a7paoC3dcu5mBrnrA/nkCHA==
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=I28EE7g9cPtZfRGkYhQ1dPRFYGVidmmqIHlT9wK41bk=;
 b=3NagO2tzforIb1mFKjgY3ExEKk2TlARMZf7tLseQ9hDWHNuyQ4W/Ijl3eiX9fUBU70KN4un2uQqflIsl4Hz/zxo1cX3xS3HpXUREfWqj8b45sIt4NZFtMJ1uFp3/fhAaT0lgw3Fk6ApldihlhE+AMQLOVYkdY1NPqotc5ogLkDo=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <4c2293b0-18a4-403d-88f9-47a3a0388a2d@amd.com>
Date: Thu, 21 Aug 2025 13:09:49 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/2] arm/mpu: Enable is_xen_heap_page and
 is_xen_heap_mfn for ARM_32
To: Ayan Kumar Halder <ayan.kumar.halder@amd.com>,
	<xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>
References: <20250814081959.3504145-1-ayan.kumar.halder@amd.com>
 <20250814081959.3504145-2-ayan.kumar.halder@amd.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20250814081959.3504145-2-ayan.kumar.halder@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF0002BA4F:EE_|DM6PR12MB4137:EE_
X-MS-Office365-Filtering-Correlation-Id: 9265893a-528c-4c66-e1b5-08dde0a340ea
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|82310400026|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?U2lIOStvcW9VaHY2TnlZZjJqQ0lHVm4xOG5hSjZ1TVVGTlplOGpHQ25uc003?=
 =?utf-8?B?YXRxQld0S1c4NDh4b1YzbkhPY3VyMlNPenZvc3lWWWNkN2hnbjJwNXJWcWNv?=
 =?utf-8?B?dUl3VEFjdEtpRHNrL2F2dHhveW1DcEVxUzVHeFJPZEhqeFN3Qy9zaGw3eTl1?=
 =?utf-8?B?MU95dGlBb3hPQkt2ZjZFazI1S1NRb0ZONTdJQUFhcTFwdHlOUm9QTnRrazhq?=
 =?utf-8?B?MXZqcnRFZjFVcE1KeDdvT3dhaUFqOTEyeXlCVmpidHlFTTgvTEovLy9RTHpD?=
 =?utf-8?B?Z0JkbXZOQW0ya2c4cTlPZjNhT1Y2VzMvTXpZUE9oZ01OVHlmdXdpcjZQVEd1?=
 =?utf-8?B?NWtLaEdBa0RJRUFPREU2UHpUTmErUHo2SWZySmYvUnBwM2prVWF6Y0xsV1Vo?=
 =?utf-8?B?WmJQeXJlQnozUU56M3VPYkUreHhLVlg3YUF0Tk1rb1ZNeDdqa3ppN1phdmdK?=
 =?utf-8?B?RWdHNmVLOVNPVi8vVGFGazRiR092MFZJUHVhSGR0YkxzZDNRdjl6dmJCNDgw?=
 =?utf-8?B?VUVESGJBdFpabUxVV3poMzR0NTlxOHdkRUQ1Y1BlazBIQ1BkdWl3TzNPOFU3?=
 =?utf-8?B?b2JTb1BkVVJDWmY1MzVKcitGRUc3NS8xNTFqYXBFU0loMDVlRDVHUTZWUGdL?=
 =?utf-8?B?R0M4cUdaNXRrOFc2cmptRGtiakMwSTU1WlVRaGNJOTRzQWhxNm5aYWR4OHd2?=
 =?utf-8?B?MW4zdjh5U2IycW56d2YyR0NuVmNlRCt4b2N4Ymw0M3dDUk8vMGtZUU1Da0JS?=
 =?utf-8?B?WlVNR3ZWWEY0N0dwekd4RUxvci9PMDdpeG8wbTUvaU55bmZtdDJnUGtaejA0?=
 =?utf-8?B?TVdxdFpzTGwrNUJkcXdWNDJoSkFGempjeDRRRFBPa3ZhM1VjRnkrTzEvNFoy?=
 =?utf-8?B?WlFVbWw0RnIyVFFUM01LWTZlUmxXdGZ0TnV0MVZ3ODlZVGxrcHU0Q2JpakZX?=
 =?utf-8?B?K0pNZS9qTm5YZmtaMm9Mc2lxVmZGUFZ5YkhOc1ZLVk5FMjdLMTloZEJpZUxH?=
 =?utf-8?B?cGQ3ejJHeC85VWRHbWdOTFVsb3ZFNHR3aVZQN2E4amdnblVjUlRPSFFNZmxM?=
 =?utf-8?B?UWVnek9ETG5DYVkxRU9kU1dpMlRuN3BleDh0NnVCVnRqMnRFNjNiL2h6YzJv?=
 =?utf-8?B?cmJqT3NBcnFDNTlzNU1WNHB6QmFMVkl2aWdJbXluSzc3TjU2UEFTNlVrVUxP?=
 =?utf-8?B?SmlWbW5YUDA4VTN5djQ3T2J5SEN4U240eWcveGhobmtNSkx1aGF0MVBWdHhx?=
 =?utf-8?B?TlY2RmNVTW1jRXZoMXR0NnUwdCtKdWdDU3BmSTY3Q3dyU1F2TGx6ZjQ3Mlho?=
 =?utf-8?B?eGdyc0tmd2N6WDNQSlpmMWdHckJ2NHpIaVBYNnU0VEZLUU5DQVRmeWRlTGx4?=
 =?utf-8?B?UzdWYnBiZUVlWFAxbzdmTUMwNmdmU1I5UXZzTW4vMVhSU1NMdU5KclBYbHdh?=
 =?utf-8?B?a3A2VElHRmh3NDJINk05clFPVHhhdnluTjZObnoxT0VQT3JtR0pNcjFHSGw5?=
 =?utf-8?B?ZTBzVXJpUHFubkFsUEJPcFZHTUw2QlphTWV2eHhJN3M4OE1Xck1YWkY0YjJF?=
 =?utf-8?B?RWpzT1h2UzZjeElKV2ZrcE5peFA3US9HT3MxS1I2aVRkbmNMTmZsT0pYa3l1?=
 =?utf-8?B?TC93YktHbjlSUGdlZ1dKZjVaUksrSzl3WW9yOVZMa3owdlBBeEZieFU3SUZB?=
 =?utf-8?B?UGlhalJUTmhReCtDeXpWM2RBSDVsRW9Nam11U2NwUHpwMG9zYTcyYW5vTDN6?=
 =?utf-8?B?NldLQi9MMURnMnlkbVNhYVVlK3ZJQ3N4UndxTnpuTDI3cmc4Z2MzKzZET0Mz?=
 =?utf-8?B?bWlzTFhKdC90VUc3T0lPblRnK3JmemFRdEJYYThZUWFPbllpYWNpVE83UjVl?=
 =?utf-8?B?ZGJ5dnEzRm9lazNkMldzVjg2Z1dTQmRQeHdWYjF2dDVsM1REeS9xQ3VQd0hQ?=
 =?utf-8?B?TUIzbXdCMGludjIrMGN1UFpzUW1ERHhCcHVOK0dyS3AxcHBBWkFnUWM0TWF6?=
 =?utf-8?B?ZEZqbURUVDVUL1dCY3Bkakdaa1J0WjFXakpoZHdrTmRyb21lbXFuaXZObzB4?=
 =?utf-8?Q?Z2GqJF?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Aug 2025 11:09:52.9233
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9265893a-528c-4c66-e1b5-08dde0a340ea
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF0002BA4F.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4137



On 14/08/2025 10:19, Ayan Kumar Halder wrote:
> In case of ARM_32, all of the RAM will be covered by a permanent contiguous
> mapping (where VA == PA) and there will be a single heap. Thus, the memory
> allocated from Xen heap uses PGC_xen_heap.
> This is similar to the scenario described for
> "CONFIG_SEPARATE_XENHEAP=n W/ DIRECT MAP OF ALL RAM" in common/page_alloc.c.
> 
> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 11:12:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 11:12:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088526.1446267 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up3DA-0003H5-Tm; Thu, 21 Aug 2025 11:12:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088526.1446267; Thu, 21 Aug 2025 11:12: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 1up3DA-0003Gy-Qu; Thu, 21 Aug 2025 11:12:04 +0000
Received: by outflank-mailman (input) for mailman id 1088526;
 Thu, 21 Aug 2025 11:12:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=b9ZH=3B=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1up3D9-0003Gq-Ux
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 11:12:03 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on2061d.outbound.protection.outlook.com
 [2a01:111:f403:2009::61d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a9913195-7e7f-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 13:12:02 +0200 (CEST)
Received: from BY3PR04CA0012.namprd04.prod.outlook.com (2603:10b6:a03:217::17)
 by DS7PR12MB6359.namprd12.prod.outlook.com (2603:10b6:8:94::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Thu, 21 Aug
 2025 11:11:59 +0000
Received: from SN1PEPF0002BA4E.namprd03.prod.outlook.com
 (2603:10b6:a03:217:cafe::a9) by BY3PR04CA0012.outlook.office365.com
 (2603:10b6:a03:217::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.17 via Frontend Transport; Thu,
 21 Aug 2025 11:11:59 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SN1PEPF0002BA4E.mail.protection.outlook.com (10.167.242.71) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Thu, 21 Aug 2025 11:11:58 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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; Thu, 21 Aug
 2025 06:11:57 -0500
Received: from [10.71.193.195] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Thu, 21 Aug 2025 06:11: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>
X-Inumbo-ID: a9913195-7e7f-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=b0q2v++h36XcGy6qod4fsrg4QkZYF7gq/tVioGH7Sp/Vz2TjiWh3S4woyitM/SvrcJ9BZucyx2ssummgqZQmO7xa/OImu0PSVVIqm5rtxo0LeN1gBcz+2ux6nO+KhxTwsrJbVudFQ8SwGjvXF7AEghUs+Rbzp37XA9RpA9bmdB8dAh3hbp08/uEteh75U2HTkyNM6k3gziGxabb10p+l5/rOiFoUjS728OzIuv1LeuvDmTUMhGrYlSl5wDxnz5XkQkO3x5H/dK2c8vJ3HVhPahJQETNlHCCM5X52FMnXksYZNGgzm96wAwucW8LxTvBs5iEePmus0lFcy1ssKYfIGQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=vabf4bcgjDRHqEYhpumcdt69oEhwzWckXktEH5MEsIc=;
 b=rHjuNjkJmE2mxwLz/htcR5AYBGzNEx44bhoMUu18P+GkvnFTrjcjfJCQbe/vnTQ8pCPxX0I3T2+t23dDihW2oCkVzE27jpjpLSgCjRFr/4pdm5fQpaL3CXwsksYSFTe8H190X1nnbvYH2+foRo8eyRWp7dNuoa9weKpZx36vfk2IBJEAMpHVdcXm6krHUt1JPE91FDZQvdhPa6mlL+1RDMmgiUkP3uGDMPfWmdKL9LOjwcLOzZhKXJZ11mkvGEWH2Ff1XPgcEKgTjPFijGvrAnWZmVxsxY4NK/cqJjXvswO3ox/XVd4SbYRRYjFmq69sNQey6btxH7UrFkt0s6Ktgg==
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=vabf4bcgjDRHqEYhpumcdt69oEhwzWckXktEH5MEsIc=;
 b=CUuYpqQeSbtiSKg/Wmm0NK57Qz+PmGM2+JPWD0lzLuizPTwHisKfBPGSvqGtOuqs8sfqwbaQnu0HAmZXFJhy9r8T50jqQZ2ipyg6s/SDbP+3GfeaqXz2jk0pPIfDBAXzat1Db13u/fwwfdicyH5Pe93t+YOexNjVxDn5LufHSDk=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <360f719c-e9ab-48d6-85c3-60593f57faf7@amd.com>
Date: Thu, 21 Aug 2025 13:11:55 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/2] arm/mpu: Disable map_domain_page for MPU
To: Ayan Kumar Halder <ayan.kumar.halder@amd.com>,
	<xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>
References: <20250814081959.3504145-1-ayan.kumar.halder@amd.com>
 <20250814081959.3504145-3-ayan.kumar.halder@amd.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20250814081959.3504145-3-ayan.kumar.halder@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB03.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF0002BA4E:EE_|DS7PR12MB6359:EE_
X-MS-Office365-Filtering-Correlation-Id: 21e295b6-f3d4-472f-ec6b-08dde0a38bc5
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|36860700013|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?ZW5rRzkwVDZuSlpoYWJwWVdWNkMyWmZYVUZPRkswOWh6cWUwMzFmNlg1UytE?=
 =?utf-8?B?SlkzUUNxYmI2RkFmSjhWNXR5ZW1wY2hvdkF4RE5CWTNpMkNZSU1lT05lanpu?=
 =?utf-8?B?UHpwcExFaEYrcE1rV2ZQemxxeUhiVDdkeXRVeHhjTVZTVHVrVVFMRmJVeEdI?=
 =?utf-8?B?UFowNGpRbjNWMXRFUGNTSlI3dHpxdU5CWlU4NWFyRHV5eUlBY1ZNd09sU3Y3?=
 =?utf-8?B?TG1KdkQ3MW1sbVFaRWZqeVZ1WVVsOGZEVjFmUzViL2hBQXlyTG1iV1YrWkxM?=
 =?utf-8?B?cE9rWWxpSVBqNnMzUk9oaytVU2tsV0x2TXdTZFp4c2J4WENoRngwOUVLS05y?=
 =?utf-8?B?QjdTZ2JUai9SeEZPam5ZUXhacFBDOFlDTytCdlZpN3lRS3Vla3pJeEEzZDhW?=
 =?utf-8?B?T0p6M3dzVmUyUmN6MURNZnpsSWtNNTc4bCtlcVpLeVh4d044WEZOOVk3TUhC?=
 =?utf-8?B?Ym5HL24xOG9YZ05NNUZJU0JHRW1VT1VoKzA3QW5rSHFsbzkxTDhLN25ReEgx?=
 =?utf-8?B?MDdDc2JMYmtyWm4xeHRGTVVEZVBPQWY3ZTNnN1pkNkMxekc4WlN0YUtSdVRa?=
 =?utf-8?B?VndRYnd6b1ZmbmhudzZRVXRxOHhSZ1FZL1BpOWtSTGUvMWZmeXR3WVErMXpG?=
 =?utf-8?B?djJmK1d4SVU3V2hvMThmZUEyM3VNVERaNVJMNWQwL0JkanVQbnk3Z1FrZ1l3?=
 =?utf-8?B?OW43TmFtSkFCb2lZdmNTTkRWU1RrcTgzZm56SXNTMUJMYmpDbEpvUnp1dkpn?=
 =?utf-8?B?UldHTXdmdVkwclZNMFBjNWU2U0FlbjlSdDh0L0lSUnRyRmUzMlBSNHhTdU54?=
 =?utf-8?B?M2xFS2gzVUhraTdJbmUzNzRKK0pIOXBqUFRsL0RpQktjYXZuRnhBaFU4b0dR?=
 =?utf-8?B?bjN4SDU5TWwvOWJzZHA5ZmJ2N1pkUlZ0NWpLdnJTbkg5QXpGamNHNHdoanZp?=
 =?utf-8?B?ZVh6ak40KzVFbnYwNDJIUkRvUE5ERVkveTk3RXU3Umg5ZG5jYSt0TDhPU0FZ?=
 =?utf-8?B?SG96MXFiN09qSHh0Z3VFSW16bXlYRmdRRXh4eCtzQzBoUHBGcFBtczdOQTBF?=
 =?utf-8?B?amc2eVN1MU55ZWEyRzhJSGE0RlpOWjlOMzhoUHVjejlzWkhsZms5c2ZEbXNl?=
 =?utf-8?B?RFNiNVBaSkpOY2xRbG5MVTAyWmxiNzE3OVNXeUg5NkZnQUwxbjl1QXVZUzBT?=
 =?utf-8?B?WWdQWkFqZE1weWJaakRzMXVZbWxvREtTMDB0bEk4SDNGWFRYa2hsWjRZMHpv?=
 =?utf-8?B?dllBekVqYWp2WGpsWVdMdmw0OXp1NDZyNW1aUTJtSllVMkxMWWw5bW5kYzhG?=
 =?utf-8?B?a0Z2aEZjaDNpN09NOE1WeTFMZ0hYekRYY1dIVlE4b1VJK3Y1ZEoxcHNQRDFj?=
 =?utf-8?B?RGtRRUxZVVM2TnFaTy8wVUtVSU1DRDNYWnU3NHVGSGN5VkFzL0l0Qit1U2xP?=
 =?utf-8?B?TXJXTG9xSEhYNlpGVlpGOXJqR3JmcVY2TkIwWFZabmFGS0lJek5iWjJXdWhT?=
 =?utf-8?B?bGZpYkhCNFk4SU1FMEZ0R0NiOGFLZkVjY0F4SnorQ0sxTEZlT0wwVUdvRjY4?=
 =?utf-8?B?ejQ5QVpIWmgrbDREbmJaMWVKTGw3QkFJRXQzZ0lQQ3p6aHVOQUxOUEdpZU1o?=
 =?utf-8?B?TUJNTVBXUERQRkMzcWpxaStKS2IrOXlGY2FKeGJrOGlWVGNxQzlUd3owM1FX?=
 =?utf-8?B?b1ZraGs0Q3NYSm1ub3JpQW1uendxMDBJTWNGSUFTNEQ3WEpPVjA4dENkMkNE?=
 =?utf-8?B?VHZYMXFFSDVwaEVGVlF6UlAwZzUvT2tickRqOUZET3VRczRjdG8yeEQrcUd1?=
 =?utf-8?B?TlRHTmU4N1ZUckg0Z0JqQzNXcWV5d1NVd0RmNHk2T3lWUFFuUDBMZ2QwVDlo?=
 =?utf-8?B?WCtDYzc1ZXo3OGRNcHBOTDMzOWFJU1FWQTZPeUFkUzh5a2k2U1NUN3U4N08w?=
 =?utf-8?B?a0hVdDEyVkZzREZidlRtU3RiZnJaajVLVTRiMkFjT1BxQTZzaTB6L3l1Ly9X?=
 =?utf-8?B?ZU1QUkg5RndzYnBkM2dFb1BwOU5mMUErM3U4SVJkSXJ3M0tuMFNTMS85a0hq?=
 =?utf-8?Q?wyVg2i?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Aug 2025 11:11:58.5000
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 21e295b6-f3d4-472f-ec6b-08dde0a38bc5
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF0002BA4E.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB6359



On 14/08/2025 10:19, Ayan Kumar Halder wrote:
> There is no domheap for ARM_32. All of the RAM is mapped and VA == PA.
NIT for the future: It's always better to mention explicitly that you're talking
about MPU also in commit msg. Without looking at the commit title, one can be
confused.

> 
> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 11:24:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 11:24:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088534.1446277 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up3Om-00011L-UM; Thu, 21 Aug 2025 11:24:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088534.1446277; Thu, 21 Aug 2025 11:24:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up3Om-00011E-Qp; Thu, 21 Aug 2025 11:24:04 +0000
Received: by outflank-mailman (input) for mailman id 1088534;
 Thu, 21 Aug 2025 11:24:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=m+ul=3B=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1up3Ol-000118-Lx
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 11:24:03 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 54709c13-7e81-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 13:23:58 +0200 (CEST)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by AS8PR03MB7876.eurprd03.prod.outlook.com
 (2603:10a6:20b:423::16) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.15; Thu, 21 Aug
 2025 11:23:55 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%4]) with mapi id 15.20.9052.014; Thu, 21 Aug 2025
 11:23: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>
X-Inumbo-ID: 54709c13-7e81-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mV6YcNDAiM8x1HK0jD071fwU1I1BKuJYKo5H53Hh9IMIdQ+9OCvdxBEMs4GSIAdrMn5oWaH8buqCZZzjes4gOh4HS4GMJ2YE9fWVOu3Q7bKTteCvGrUqdZQLjLpsDDRuzilKjUdXed6Q5POKStrsqoz9TqpL3ikZefO1VDRhKeG59maAOq+QaRR5P7goxin9UmjGjR7MWd/zTKXXsxTkVxyjJsA6PtG8FOGUfEHGkNKZnUCxDGkk+HyKCDZIJ3U7JPoyMQurqJiR7ld77IdhRNbA76eAui9Y/9j/4UWA//C+V/vW4cLt/MceorvxR+9Iqc5f46c1ZSFMdiK400XxdA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=XSok/gl8zoudCbmSQAT0+WE1rsc3HoymuSDCT6W4FTE=;
 b=vQBDM7n01oFFGBiXGH160oHPIPRvDB0cVl6csZiANnwlLa8JvyvllL9tIJEaBQmmVnPSg33aWP3GCwNq6rQiJorRlJXHZQXit7ulwcwdHA1UW9rAJcP3KuzXxddrkRlOY1sOfFBe45aFBPcfVwSrtXvbqzPfBYYgzm7Hm8C/NE+lwrRtESqXk2gpZWGws6jgueoHpTFGhu0QfR3w3B0G/xeTgA/LdJAntNZ1HDK0Y4cks26j7RPgQfi6gJ46ZT7MywYgLikyti7+nEe0t8pbdSMLjeNQ49oayGmeBkIzm0pvFJIEL2eQlN1zJJfCiNP1kam9zK/35uShaV21N9Ymig==
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=XSok/gl8zoudCbmSQAT0+WE1rsc3HoymuSDCT6W4FTE=;
 b=jXqZEjJHinxPq2Z/ZPq89PtgPybMjHIdgf1BYyKntgxm1DJqDQzF+8FxjUHELtEgKee0wpwLWUTnkShKAB59X7ljQpzFNgb83X6WUxlffDHPDsU+o8fvYW6bLq3tUeUw6IQZdi7HEf/fGqPYJ0boYkDIBAT12/B9CV9/Lcpvp5sxwYBRp2i+XfLASap2OHAfWLlTxfmZ8k6BS2c8+j1GDNeQXZRBLxeoOwoTkIy/sh07jAWXp41DD5ZeLn3CCu55XjMT+FxiA4ZKkx3Wk4QGZEk9GEtl4JPaQr0HD34V0sg1RCrNLR3B0xqTPlAJjbkMXyXatsVfNzluPpOMdORGcg==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Mykyta Poturai <Mykyta_Poturai@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v2] iommu/ipmmu-vmsa: Fix build with HAS_PCI=n
Thread-Topic: [PATCH v2] iommu/ipmmu-vmsa: Fix build with HAS_PCI=n
Thread-Index: AQHcEo4Ufb3CXIWr1ky3KSQI/1VSSA==
Date: Thu, 21 Aug 2025 11:23:55 +0000
Message-ID:
 <5ecb3da69ba1581971197388c6b9062b46900cff.1755775255.git.mykyta_poturai@epam.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: PAVPR03MB10102:EE_|AS8PR03MB7876:EE_
x-ms-office365-filtering-correlation-id: d213ad90-1b16-49f7-448f-08dde0a536e0
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?1bD6qaZDLsbTeWCD/r36+418vPtziwbk2RWjR17H/vgvx+wC+ZTVibojF0?=
 =?iso-8859-1?Q?fECSpflwkKw1TPsR1oBUTYLZ1OQxZDiuNQm8Zf+yTqPphLCgJcDNIEatmP?=
 =?iso-8859-1?Q?AlhTmdvkjIbk5Em6oBcuuiida0q6G05lKSolAQSGrOKf3wa8bRes7nUAsq?=
 =?iso-8859-1?Q?5MHVBXB5fJQaEqPQfw4eNq0NOQ/KDVPawQcbW9M6c26UCWncqeTouXrIed?=
 =?iso-8859-1?Q?7L2EW5piSR4UBADN49dhPnPQCmnH2uyRf+K7wGtuxzS7vSPaJcwl6pAhtq?=
 =?iso-8859-1?Q?mmynYJKPTFhueVrYhFdB+8MWQwz8znpYPePuzHkB4iTbsvjw66eIWLC12y?=
 =?iso-8859-1?Q?iJaxriAMQHRK8Nq1dgqNJix3i/lG4WOrpmjm1wiMkiDtXUEBdMDeleyNL3?=
 =?iso-8859-1?Q?NN+yR21SvYFH2CWYfJowj7HB0jGmyCKcXgn9XU27AaQNMbKT7kgg6Zm8Ow?=
 =?iso-8859-1?Q?Y2JLdCP9KQfQp3O0jPqteN3E75Y3nQCv+CRBI44uhtfZMPhUfG3biOBWiQ?=
 =?iso-8859-1?Q?O8rpld5SaftxXLPqSLYSYs4hHZamVAL0l5HiBOTTaZzu3PRTsfq6W4fHPR?=
 =?iso-8859-1?Q?KiVdOJdYpNv99HuZU5NqGaYBl60Vajhx9u65g7rlNZTuffohzyUrVHxemY?=
 =?iso-8859-1?Q?AsPaKWRtgTPCa8xo+sdGCImSOW0v5aUcHiUk6FpVcgO6B09r30f10BIeVZ?=
 =?iso-8859-1?Q?p12CSSvU8q5yqqq2bZV/XZ7sJp8buK5D7ae7L2jpu4xEi5YcrOjotuUyM7?=
 =?iso-8859-1?Q?qp/mkIOuIK8Clgr1s2bwrBWFIgRwZQpQ+yK03NfNvRjW/XV7xCEcRK+ogz?=
 =?iso-8859-1?Q?L/dPN1X3SUmBX0jJwBAS/EOPmfUtSO5AEMEJV4iPpMiwzEsIpAOiIZyFaX?=
 =?iso-8859-1?Q?2kn55Q7ISYv11G4Y6e+EcUhGcCbgPkqXw4afYiW9ajrkb0axSSBQkNaBt3?=
 =?iso-8859-1?Q?mpgQO9A1Z4iDqE7on/4kOoO10Rohgu1hS9rhkPIQyY/Tz5K6BEme4XQBl0?=
 =?iso-8859-1?Q?2sqPmEOyjxSDV2RT15HYDE4SZH9ShKelCMyO/NhXcy7/NEGT2iklcCLfPD?=
 =?iso-8859-1?Q?uJwXOeuoh6zKCkQcol/1PGqJjHAEwaJwpXqHld63ODOMS2CuaQaKXVmCHl?=
 =?iso-8859-1?Q?fqnEQ1KgNDi1GR6N//O6vWT8Cb9d31Ztc/7ZGXdg61g+Mj4X3AP84dcXqr?=
 =?iso-8859-1?Q?68FPKbf4UzmGLqaYRLpEc+S+xRnSJJ2vMQ1DR4SlVLrknirHX3rm7wTNeh?=
 =?iso-8859-1?Q?ecIhtP7S/a3Z9OPZiU8E4mzDVYrJfPdVgTfSIjlLo5f6hnWl0b6pSOCRxx?=
 =?iso-8859-1?Q?G+6tJ/NPxdYF63hkf0mEgdxW986s/0H6RhuAChRZat3P62faQPq5EapXHA?=
 =?iso-8859-1?Q?NZ87iVibHclcuhtyBY6ok62AHf+xITxxO4dDMKaHrpCSVy1Ugk2hmxpKFe?=
 =?iso-8859-1?Q?8TXxW5p4LkeuTADZsSXmYj0MulnJmmOX5/WAmBrg9HKhw7NciTE2uTsElR?=
 =?iso-8859-1?Q?Kt/oD95iKFc8k1KjVHFTWTqfFcGFAc6jvdwxyIb0SvTQ=3D=3D?=
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)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?Fq/DPtNeYIv+vT+Vhj9UUOUGACkIv5rfH2CIZvvjS2B8U2VezQRZ8CtdqN?=
 =?iso-8859-1?Q?Y0My3nBbj0YGlmFh6JBobhzgMjESU+tJLmoC45hR9/Dj5CssfmaezwQXLU?=
 =?iso-8859-1?Q?pECNIZJ/r7f3ie2TS+s4XXnswxTSW4OEnvzoPu+m+IzD0Lr7Frbwcgfs3m?=
 =?iso-8859-1?Q?370WyShfzF6Yvr0c5c/hLxHFyyzsbwOfIeuE80m/GTZMZTgBwy38oeeeED?=
 =?iso-8859-1?Q?4WDGcmalt4gUQx+sIOmSQe3j8Wg7AtUuo4oWPyGXmXkE8KFLQhfa3oWFV5?=
 =?iso-8859-1?Q?kU0B0AjpxD/sisR6HYor7jVxEI40663qLHvyUJTP+ZYmrXbI3TBfrzJhBK?=
 =?iso-8859-1?Q?n7w5yXMSIZb6c7hZpuL0140j7Xuc0DbRgdhrOKVsGEZZ0H1Et1260yKCfj?=
 =?iso-8859-1?Q?jfQFuyXQYB3IflQRfQo6U9RuoxbxLyE84NC21UWXIdhU6w73QleqIm4C3W?=
 =?iso-8859-1?Q?cILG4la2ILbKUlJB7dkcV3DNkmCWX19Cz9HIXgpOWxSmCRC1chQBpSjq62?=
 =?iso-8859-1?Q?OtmfRHkhAw7QEBccJCmQhRFW3LMaBoq/qMcd1GvAygF+XOC3rtVzl1FOTI?=
 =?iso-8859-1?Q?MeP0mWfYsyTeKKZORpL0/xADBVAjJEhcF8gw+gIzH0dbQ6YAqBHRfC6Nxa?=
 =?iso-8859-1?Q?38E5Nlf+GqwYKm1eYOeuN75RCCbyHdy7glhc+1EHcnWZXhzOXfls720cf1?=
 =?iso-8859-1?Q?zaK4XYmwtzVB9OBHtvl7VC5XsTetB8etXQpn6tmzS5UpuYjuwlRVo97oVx?=
 =?iso-8859-1?Q?mM0Ha4iE6V7riuyg7eDkfuWuVHiuCN5/LsEcQCZg8D/9QeYjkjeFHZTA1L?=
 =?iso-8859-1?Q?AfoNhDtQBx80yz6NiEQv9W7hg6YLyzJjfQoSNq36XXFZm3h+/qIK/6N0KU?=
 =?iso-8859-1?Q?2PO3eB4T2DHXfVqTdw7ispEu5eabM6m3x6wk86k4E6L9je+NGgA4oIbury?=
 =?iso-8859-1?Q?rOvsRUAz+xwSYYMuh06zG1P6iOTMDya/vlfbLPX3DtagHIYz//dFZuQKXU?=
 =?iso-8859-1?Q?s0z3QLWsIKCnx6rgrJVf3Cs9OnWEvCkKkT1fUIbLBHj7VzhW5+yFlxUAhO?=
 =?iso-8859-1?Q?4tr/hu+v25Isetyb60B2rj2OBhHDlLOHWiYAysQXsg8i/uRYboGxs9H4oc?=
 =?iso-8859-1?Q?97v7CS18mtQgZ6rQ8knLlbu4pxclW57ALzUC8orVzhBmJE0ftZJqrcFYQi?=
 =?iso-8859-1?Q?FJOU76vvMyY0hoE97TJbHzl5wp9ZuR6bs+MBcs7BqQxVlTGTB+dz7ydM9X?=
 =?iso-8859-1?Q?Vx351c0FJu51q1fH/u3n5FJcR6YRNTfXkRjTDvbtYTfOGE676KBhFsBVlL?=
 =?iso-8859-1?Q?G4G2ADtuSVZgMRdsj72s0ZyKLYFAVAk5HPa3jOKMs7cABlbfu1Sretb1TR?=
 =?iso-8859-1?Q?CXLlPfGptxy61tTB0GAGX6AVjZgwlaBkSFO79Ug5GHiNPBTZI5tO0m6Ufe?=
 =?iso-8859-1?Q?Q3iNaMk72Xz+XkARdlo7NAwp/S2dft5Yit5Khi/5H6x3TpKo0xbZ+5HjJp?=
 =?iso-8859-1?Q?ziOK/KzmER882AjUd1PPuKj6WEPufynWOH/G6e60/UsLCKJ2rU4xUTF8P6?=
 =?iso-8859-1?Q?hEUWD9dXYIs94sanWe5OD6pT9tRKIALuqMSh1OM3UnYnTV5CQ0cAeNLNsG?=
 =?iso-8859-1?Q?u/55JQlOdc4cSon0av1Y4kAfAlUu6nJpyGol5Qnu9LKPKR3MajMqamDA?=
 =?iso-8859-1?Q?=3D=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d213ad90-1b16-49f7-448f-08dde0a536e0
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Aug 2025 11:23:55.0535
 (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: hfzGoONtycadtMH2DYjjLaVREJLj2buMszKz1yzF7b/XZWWi0ZBdam/J+gxbxjbJGQBMmIeQH9sx34MKjsMtOg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7876

With PCI disabled the build fails due to undefined struct
pci_host_bridge.

Add ifdef guard to pci-host-rcar4.h to not require the stuct being
defined when PCI support is disabled. All call sites are already covered
by HAS_PCI check, so no dummy implementations are needed.

Also move includes under the header guard to not break MISRA rules.

Reported-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
 xen/arch/arm/pci/pci-host-rcar4.h | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/pci/pci-host-rcar4.h b/xen/arch/arm/pci/pci-host-=
rcar4.h
index 8ac6626a22..31ef9d2d40 100644
--- a/xen/arch/arm/pci/pci-host-rcar4.h
+++ b/xen/arch/arm/pci/pci-host-rcar4.h
@@ -1,9 +1,10 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
-#include <asm/pci.h>
-
 #ifndef __PCI_HOST_RCAR4_H__
 #define __PCI_HOST_RCAR4_H__
=20
+#include <asm/pci.h>
+
+#ifdef CONFIG_HAS_PCI
 void rcar4_pcie_osid_bdf_set(struct pci_host_bridge *bridge,
                              unsigned int reg_id, uint32_t osid, uint32_t =
bdf);
 void rcar4_pcie_osid_bdf_clear(struct pci_host_bridge *bridge,
@@ -14,5 +15,6 @@ int rcar4_pcie_osid_reg_alloc(struct pci_host_bridge *bri=
dge);
 void rcar4_pcie_osid_reg_free(struct pci_host_bridge *bridge,
                               unsigned int reg_id);
 int rcar4_pcie_osid_regs_init(struct pci_host_bridge *bridge);
+#endif
=20
 #endif /* __PCI_HOST_RCAR4_H__ */
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 11:28:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 11:28:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088544.1446287 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up3Si-0001ak-E5; Thu, 21 Aug 2025 11:28:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088544.1446287; Thu, 21 Aug 2025 11:28: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 1up3Si-0001ad-AE; Thu, 21 Aug 2025 11:28:08 +0000
Received: by outflank-mailman (input) for mailman id 1088544;
 Thu, 21 Aug 2025 11:28:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=aDER=3B=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1up3Sg-0001aX-4j
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 11:28:06 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e6f6dddc-7e81-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 13:28:05 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by DBBPR03MB10221.eurprd03.prod.outlook.com (2603:10a6:10:538::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Thu, 21 Aug
 2025 11:28:01 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9052.013; Thu, 21 Aug 2025
 11:28: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>
X-Inumbo-ID: e6f6dddc-7e81-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=y2M9i71huKqP5ifp1sGBo7sNH0/gfUaStFEG/g6euRIaKIyW82qkvp2W6Fu7810jqMPfBPnDoF2cVqqu/oqatkyT68ZscTu+ZrBbY+PF+S0ctmlh7i39Vzx0V2gFqC+3qLK8BbNvf7yG7A1ObCiSq/dEViZY96tzCPSXln9vCnV1ztOhaLJwES0q2Pqq2ZmwUkFxnGsHe1c9ByzfXbVO6Z9rjDkJ1b0V69oEzYAPSPxPvQYnCuHlj2ob0+Z2jkY9jXdrtae9bDTE1OvtbxcUsNEuZ7gY+WwTwsgC6ZuTDyYSKoD3dXpb/BqB57aqmwlPhV2sdNnlpnWpmElNrurIDw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=mXeqpTXoVD8k0/p9hnw2qRUC2Xg2Z5FgHlXBIsiADis=;
 b=aHHn1m96VKPVaEutV5KHaV+V9j0r0BWRwgNDrcW0iT5h5dz0utlyChXqdRb4fcCCoOF6CETYLCDljS7LofA7FfC94BypmIwya8wGpj+4jALkYqRmn6PVHY0u83hxM+Mpwb3fYSpK1RVLmeNG7ocurtSVEXy4vKf4fe7oJPlzE/RgotCsDLizKFEx0iTB/c1zD8b0PF0IRfSWl7ngxvr8qDwu/8mWfC8eWr0q70Oy4oh4nz6pk2Dc6HdV7/5sm7f6om8ofEzSxmmwwpnsFvIKi65gj0BkyvjH0jEmhhWBAw0le7Dpz9I4qdM3fboqu178dV9Weu2VwUnUppjQ7D0PCg==
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=mXeqpTXoVD8k0/p9hnw2qRUC2Xg2Z5FgHlXBIsiADis=;
 b=tZxXD38VrJ8gkHlnmz8UIpAJayChCPy/icvUomkZL+Bx1ZHXdxlEdNiFQsWhbtgncmj8Qm9iT/KKSuqjq2S/B7fUF1YNMEMN/v9ghaFX7z6gj4ZlVQA0bQYsD75BqBCiilijF8GfFehdaXaU9gl1ir2jAQTM2zVdMqjgyTjjhA32we1hO+2P1pfXNXEgPU+xDOLfAZMjNUOitl9hVFG6o7Erf2rh6jsyFGX36+Tnb7QELVFQuxczK1PY1STT3V6qdDfyj+X4xCU0UAS3AuQ50SgotvzHf1kAxHRocQ6M2BYXD2wtTeQvM5jPD4wJox0KCzcLUmPEmUQUU7H5dAOKDQ==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien
 Grall <julien@xen.org>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, "Daniel
 P. Smith" <dpsmith@apertussolutions.com>,
	=?utf-8?B?TWFyZWsgTWFyY3p5a293c2tpLUfDs3JlY2tp?=
	<marmarek@invisiblethingslab.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] common/efi: deviate Rule 2.1 violation in read_file()
Thread-Topic: [PATCH] common/efi: deviate Rule 2.1 violation in read_file()
Thread-Index: AQHcEfz7XSs2OBYVOkGOyX+FE8ObGLRs6goAgAAPSAA=
Date: Thu, 21 Aug 2025 11:28:01 +0000
Message-ID: <61ba927d-876f-496d-966c-e29db3022a1d@epam.com>
References:
 <c20a58f24875806adfaf491f9c6eef2ca8682d18.1755711594.git.dmytro_prokopchuk1@epam.com>
 <98e8ca88-75cd-4d59-9e94-f758324fa46a@suse.com>
In-Reply-To: <98e8ca88-75cd-4d59-9e94-f758324fa46a@suse.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV2PR03MB9572:EE_|DBBPR03MB10221:EE_
x-ms-office365-filtering-correlation-id: feee7e51-4922-4f1e-10a1-08dde0a5c995
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|42112799006|366016|376014|7416014|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?N0NUdVFCRVVpcDlWTHdLNFdOM0dJTTVuVVExTE0xdG11T0hLd2czR0pkM3RX?=
 =?utf-8?B?ekpHT1NtM0RqNXY5ZWc2NE5OMnFDeG8wRmFJRnIzZjRBRHNKSGhMK01qaWU5?=
 =?utf-8?B?Ui9jVFRGMytGN25xcGVjYjB2WlZqOXZvajBsNFZBWVJZWC9yeEhqMmNnWFBT?=
 =?utf-8?B?T0hEenZ4ZG9uWW1KL1RRSE02b0kzWnBPb1VwbGFEQkFnV3ZuYno5MWFTM1gy?=
 =?utf-8?B?ZmY4Y25GOFVpYUtIZmJTOXU5ZEFYSUhtSk82RGFGZ1Rjd2JxL0lXM3A4bWhP?=
 =?utf-8?B?bTlwbEFIeUZxcTBPQmNOM3kySEhxR0lFWWhtNyt2ckpvTzBBWnVib1Y4eUht?=
 =?utf-8?B?SVRQNkhFdTlEc1c0STZXOGFTbnl3b3F1VWlDMjRCTEIvMGNsbzhNMGNseith?=
 =?utf-8?B?WGJUdkpqako5R21GQnZnelMzOGZWeHRWVzZxbTB5Nm1zZGZhMncrN1IrUnFh?=
 =?utf-8?B?c1BobzBMRVJYNFhDZGVFK1VHOHdreC9tcWVEQmNJQ2trdkswYnRkLzdqQ0FJ?=
 =?utf-8?B?MG9jZy9Ia0dydUhzVVNoR1JKdWhiRTBhWm1vMTFmY0NrcjlkMkdEQmxuRG54?=
 =?utf-8?B?dTFrUkVIRFhmanl0OHUzUHNvVjZBUkc5MUZ2K1FDd0JTSnJTVUZLcFR3QWFx?=
 =?utf-8?B?Skd4dCtnanM5UzNPV0ozaVNFeGlrSTd0TlFuTWU0MTNjRGJqNDFKcWxYVEtQ?=
 =?utf-8?B?akRQQ0w0eGRCRThldVNpVXhiTlI3SGRGN0NTd3REdVlUUmp3VHM4OHphM1Ey?=
 =?utf-8?B?dDVGZERHb211L0dZSkN6aWs5SHpZalgxT1g5SGlkbHZadEVpUnljMW1PZTNX?=
 =?utf-8?B?ZEhZc1ppbmpJQW5YWjhFNEJzRjJiUUthWTZET1J0b3FtMnY2RVBZd291L2xu?=
 =?utf-8?B?cHV4OEJzSGd3TmhoT2ZJQUE2blN2dEF0Y3gyRFhmZHIwL3BQcG5uUjJiQVU1?=
 =?utf-8?B?eTdaazhrRWhXdmRXSitmd0pTOEF0RllCclRqRDBHdllNMXRKaXhQUHhEMnhI?=
 =?utf-8?B?WVJXZzFWYzUxeHdZMkkxeGEvUlgvOGxNTzBMV3l6MUtCbmQrcDFpNEtIRVZH?=
 =?utf-8?B?T28wckdLa2VMR3EzNlIxN0FLNE9ROTBFek1Hb1FGUlFoR1MyQ1pCWEU2Ukpw?=
 =?utf-8?B?S2oyZHN3WVhOYzdIemphUis5d0x1MEdNZDRWSkczdEg1T2QxczhlZkhIUkx0?=
 =?utf-8?B?VTR4SjVteWEvdThZSFFtVFFVUCtkcG92VE56SEpXMzR1dDFLeVVoZkE5enQ0?=
 =?utf-8?B?K2hxNVFTNnY3RCtBb2tCVHlwRkZrTUQxU01vWkRFeU1UdXR3ZzFpb2pTQUt3?=
 =?utf-8?B?TC9vTDY0MkpYKzhzeFAveUpRWjA3WXI3Z3BmSE1MMithSmN3K214b0REZGtY?=
 =?utf-8?B?aGpnQTVhTmZkQ2hrc3g5QmpYTHY2eGF6c0d5OFVFaWZEL3l1KzZPV1VjemN1?=
 =?utf-8?B?eUFGdDJLdlBBNHhjQXhYLzdWcGRvc0tEN2UzMVJjc1RhMi9UclphUmJpSmg5?=
 =?utf-8?B?R3RRVDJ4RDhRVkNYRExxeU42SmlERGZiaURVUkFoNitHb2YwTWgxQU1XWUhH?=
 =?utf-8?B?UW45WkloQnBHektHWVZHZFZvM2V1SGcwNkUxS0NZYkxTOUo1TGZxTjNVdzJv?=
 =?utf-8?B?TVhlZUdjOTdNZ2ZUZ0YxeHhqYlRxOE9RRmtZYmVnNGU0WERLaDUzOXNNMFZK?=
 =?utf-8?B?ZHUyVlJ4d1FvK2lseWwva3RMZUNXVTcwdnhlaHcrYnNBZ3RhZXZkTVl6ZVRn?=
 =?utf-8?B?eTVPeXVGdHd6SlpmQzZtY1FLdjE2UGlyTERndDhxdXBhRFg5UW0zTEZWMmN5?=
 =?utf-8?B?N2pTZkNoQmNzYm43eU1mUms0UDVYYkxHdkx1Yk5pcXdqMmJXMDkrWitVZWIx?=
 =?utf-8?B?T0xTTjQ5eHEyYnhnQmFHcXluV0RNdThHdVhmWUpyQ0dMcms2dm5JTFRZTXN4?=
 =?utf-8?B?QndiTUUwTFU1b3JQTmx3THVPNmVRU3pwVGFOTllvTnhPbURWeHRtbWc1bTRk?=
 =?utf-8?B?WEVyeFN5Q0R3PT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(42112799006)(366016)(376014)(7416014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?K0p4S09lNGJBaTlmeGtaNXorQ1VEeTE2c3NMcXBXVW5MS0kyMmUxZldrQk9i?=
 =?utf-8?B?eUsrd0o5ZG9tajEvYUZRZFVsOGRjMGQ1ckxibWt1N2N2Wnc2ekozVEkyejZV?=
 =?utf-8?B?TlJYQ0JBQWJ0RlFRclBtSTFPK2pTUjVMOUhkZlBkQlJ6WUZwMGdOWlJyaHkz?=
 =?utf-8?B?bU1sT3F6ZUExWW1nVEFmWVZaa0VCTkQ3dlRZQlpaSWNsQ0MwVzh5R1htMkht?=
 =?utf-8?B?WlBDQ1ZxTXY2akxWc3QvU2hqcEtMaUl0RXFZMEtoYjFhRWY0VGl4R0tWb1hU?=
 =?utf-8?B?Wm9VVHk3eUhObjd2bG04WWV1Ym1TdU13b0kweDk1T0o5czFmQ0dRbVlpSWJP?=
 =?utf-8?B?Ty9iOG51aXl0b0FFTEFlUmYwN25Edk5yWkRvMllVNlhNWEhVZytObkNnY1R3?=
 =?utf-8?B?S0daVGkwM2Y1Z2tsM1Q5N0dNTW5wTVQwdWpuM1MwYTYyNGxLUURKNEcvSTlr?=
 =?utf-8?B?aW84dHZPYnRhQW4xNjdmWXg0Lzh2OVV1L2dLRWdPWFk4a0p4NlNiMHZhRDRS?=
 =?utf-8?B?MFhaSTlsTERhakh0aUJtQy9iczZyQlhHM1cyY25ISDc1MFB1dWJUQmd0MWxX?=
 =?utf-8?B?dTlNcDVZYUJUVVVweDJuc0UyRnN5OTdhMHpzL2ExMmhQblFLTjlQN0JtL3dK?=
 =?utf-8?B?NitSdXhVYktmVmRmWGdzVFI1elNQQW4waWtQRlZjZVdTSDAyR3BjWEw1cGdp?=
 =?utf-8?B?UUVTQUtkVHF1OUhwVnMzM0FKU2ZIUG82WmRZN3JNSVZqUVNyNkNSNlFNUTRI?=
 =?utf-8?B?QkhUdDdSWCtrZEhGSS9NMlRHa3krTk5rQk5HKzVId3U5SXY2czl2TlRWS3lh?=
 =?utf-8?B?bkM4d2VQS2RLMlNkWmFBNVJWMU1DTXVLL1lwWnNrT2w2aEY0YWpGZ2lyemxw?=
 =?utf-8?B?d2NmTGhRZVR3ODkrWW5XQnlkTi9kalpva2FOdTlYSTJvZVcvZjAvRytlR21s?=
 =?utf-8?B?M055UDVsR3ZPcGdhZnA5cTRad1hjRnZvcmx6ZDJvbUQzb0lFVDlGeVFoSVZa?=
 =?utf-8?B?RmdzWHE4WnVyUG5VYlp1anZQd3EvOXRaeDRkT3ZpdFFZZmQrSHRvSGpqUHRp?=
 =?utf-8?B?ZThZMm1iMUpyZkNQbDdNd0drc1Y4Z3k2bEpCbFpEM21MUzJ0TTZqdHF5cXB6?=
 =?utf-8?B?V2w2SG80OE1mN0M0Ylh0bEdETEhISTJuRUhBdk5ucFg3S1pqMm91dVFLWWV2?=
 =?utf-8?B?SVN1UVJ3cEp2U2ZEcHQ0Y3plakdEc2lOQURobjFwQzVoampqRi9GSHN2RGR5?=
 =?utf-8?B?VVJpaUVKNFJBaGZITy8yM1N1UzdKTDR3VmZoYUtmcUNrRndyd3dXY2pNS1B3?=
 =?utf-8?B?aUcyckw3V2xmY3hJMVVEMGwzZFBLVlNpWmhFTmhCcDJvUHQ4Y2JxQmRNeUlL?=
 =?utf-8?B?cVNWYzN5dTg0QjBpQTFENHFUV1pPQlAzUEJWV2tuUStDS3lGbDBOZHZaakFr?=
 =?utf-8?B?cVNxcytlWHBJT3FycVB0bmRHZjVnZzRFZGFUUFIzd3p1UmNMVVQzRWU1eW9w?=
 =?utf-8?B?M21CMUxqQVBOQkEvc0NBUXgySFkwWDhoTTdEemk5WmZGZVRoTGkrNEVqMnpL?=
 =?utf-8?B?L3pLL1dYZVpyYmNYNjM4S3F6ajZ5NTY1Z0ZCUzZMZWQvM003ZllvSG9jekp4?=
 =?utf-8?B?SmQvL0srSzRVb2VXbWRwOXZBNzM5ZElVTFNYck43NEp2TlNuYWE4MjFvaVpI?=
 =?utf-8?B?N2lacG4yQlRMbjV1NXJsdlU5Rmc3NTFobDlnOVFUZjFaU3poQnJaZDBTbWpr?=
 =?utf-8?B?eFArVHpybGJVbmhXVnhscForK3hEMmJDUElxNzJzT3FLVHBGM1A5RmNZQUlr?=
 =?utf-8?B?eVA4aFFLdUQ4TkVhY2VxbE9WQzlHUm1rOTBWWDVWZTloYUZ4Mk9yUVJIS1pW?=
 =?utf-8?B?UkJ4NFdGZEhVMk9VZ0d3RHNRbDU2aHEyc2xEVU5SMWsvSDlhY0ZpTCtZVDQy?=
 =?utf-8?B?NTh6aEhFS0xlMHhWa2JHcmhWMU9jQXVuZWdORDZGdVdYVUlnVVpEVXZ5VmxM?=
 =?utf-8?B?UWhvaEIvSmRsa2ZWNTlPSUdyaXR5b3R0THJoYVZDT2FaT1BiWE95UXVWNmVF?=
 =?utf-8?B?ZmNJQlJ3NEQrbUdGdVF3THlieGFRT3lMS1FIc2U2VFVvbDEvOHVMMUVQMjNy?=
 =?utf-8?B?Qm1hSXRaanRqSlhDUytMNWVzSk9PRStoV3NuSVlVbFl6WENGSmx6NkZReWIr?=
 =?utf-8?B?Q1E9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <46C6CCBFB200AB4EB648A848A798EB76@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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: feee7e51-4922-4f1e-10a1-08dde0a5c995
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Aug 2025 11:28:01.2474
 (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: Y5QOHPgRYrNLZHKgcEDyoAeU0cQtvNowiOKlDlWQ63Zn5MUn3JCPkujudNYfs7dxSC1aGgxvXJIzSpZ5AXUr6246MN/TGs/Xf4V0A9qaA2M=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR03MB10221

DQoNCk9uIDgvMjEvMjUgMTM6MzMsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAyMC4wOC4yMDI1
IDIwOjA1LCBEbXl0cm8gUHJva29wY2h1azEgd3JvdGU6DQo+PiAtLS0gYS94ZW4vY29tbW9uL2Vm
aS9ib290LmMNCj4+ICsrKyBiL3hlbi9jb21tb24vZWZpL2Jvb3QuYw0KPj4gQEAgLTg1Miw3ICs4
NTIsNyBAQCBzdGF0aWMgYm9vbCBfX2luaXQgcmVhZF9maWxlKEVGSV9GSUxFX0hBTkRMRSBkaXJf
aGFuZGxlLCBDSEFSMTYgKm5hbWUsDQo+PiAgICAgICBQcmludEVycihMIiBmYWlsZWQgZm9yICIp
Ow0KPj4gICAgICAgUHJpbnRFcnJNZXNnKG5hbWUsIHJldCk7DQo+PiAgIA0KPj4gLSAgICAvKiBu
b3QgcmVhY2hlZCAqLw0KPj4gKyAgICAvKiBTQUYtMTUtc2FmZSBkZWxpYmVyYXRlbHkgdW5yZWFj
aGFibGUgY29kZSAqLw0KPj4gICAgICAgcmV0dXJuIGZhbHNlOw0KPj4gICB9DQo+IA0KPiBNdWNo
IGJldHRlciAoZXZlbiBpZiBub3QgdGFnZ2VkIGFzIHYyKS4gWWV0IHRoZW4sIGRpZCB5b3UgY29u
c2lkZXINCj4gYWx0ZXJuYXRpdmVzPyBGb3IgZXhhbXBsZSwgd2l0aCBQcmludEVyck1lc2coKSBw
cm9wZXJseSBhbm5vdGF0ZWQgIm5vcmV0dXJuIiwNCj4gSSdkIGtpbmQgb2YgZXhwZWN0IGNvbXBp
bGVycyB0byBub3Qgb2JqZWN0IHRvIHRoZSBvbWlzc2lvbiBvZiB0aGUgInJldHVybiINCj4gc3Rh
dGVtZW50IGhlcmUuIFRoaXMgd291bGQgdGhlbiBsZXQgdXMgZ2V0IGF3YXkgd2l0aG91dCBhIG5l
dyBTQUYgY29tbWVudC4NCj4gV2hpbGUgeW91IGV4cGxhaW4gaW4gdGhlIFNBRiB0ZXh0IHdoeSB5
b3UgcmV0YWluIHRoZSBzdGF0ZW1lbnQsIEknbSBub3QNCj4gY29udmluY2VkIG9mIGNvZGUgY2xh
cml0eSBzdWZmZXJpbmcgaWYgaXQgd2FzIGRlbGV0ZWQsIGFzIGxvbmcgYXMgYSBzdWl0YWJsZQ0K
PiBjb21tZW50IGlzIHN0aWxsIHRoZXJlLiBJZiBQcmludEVyck1lc2coKSBsb3N0IGl0cyAibm9y
ZXR1cm4iLCBzdXJlbHkNCj4gY29tcGlsZXJzIHdvdWxkIHRoZW4gZGlhZ25vc2UgdGhlIGxhY2sg
b2YgInJldHVybiIuDQo+IA0KPiBKYW4NCg0KU3VyZSwgdGhlIG5leHQgdmVyc2lvbiB3aWxsIGJl
IHYzLg0KQWN0dWFsbHksIHRoZSBQcmludEVyck1lc2coKSBhbHJlYWR5IGhhcyBwcm9wZXJ0eSAn
bm9yZXR1cm4nLg0KQW5kIGl0IHJlYWxseSBnaXZlcyBhbiBhbHRlcm5hdGl2ZSB3YXk6IHJlbW92
ZSAncmV0dXJuIGZhbHNlOycgZnJvbSB0aGUgDQpmdW5jdGlvbiByZWFkX2ZpbGUoKSAobGVhdmlu
ZyBjb21tZW50IHRoZXJlKS4NCg0KV2l0aCB0aGF0IGNoYW5nZSBNaXNyYSBpcyAiaGFwcHkiLg0K
DQpJbiBjYXNlIG9mIHJlbW92aW5nICdub3JldHVybicgYXR0cmlidXRlIGZyb20gUHJpbnRFcnJN
ZXNnKCkgZnVuY3Rpb24gDQpjb21waWxlciB3aWxsIGRldGVjdCB0aGF0Og0KYXJjaC9hcm0vZWZp
L2Jvb3QuYzogSW4gZnVuY3Rpb24g4oCYcmVhZF9maWxl4oCZOg0KYXJjaC9hcm0vZWZpL2Jvb3Qu
Yzo4NTQ6MTogZXJyb3I6IGNvbnRyb2wgcmVhY2hlcyBlbmQgb2Ygbm9uLXZvaWQgDQpmdW5jdGlv
biBbLVdlcnJvcj1yZXR1cm4tdHlwZV0NCiAgfQ0KICBeDQoNCklzIGl0IE9LIHRvIHByZXBhcmUg
c3VjaCBeIHBhdGNoPw0KDQpEbXl0cm8uDQo=


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 11:29:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 11:29:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088554.1446297 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up3Tf-00029d-T6; Thu, 21 Aug 2025 11:29:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088554.1446297; Thu, 21 Aug 2025 11:29: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 1up3Tf-00029W-P2; Thu, 21 Aug 2025 11:29:07 +0000
Received: by outflank-mailman (input) for mailman id 1088554;
 Thu, 21 Aug 2025 11:28:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=svlv=3B=bp.renesas.com=biju.das.jz@srs-se1.protection.inumbo.net>)
 id 1up3TD-0001vV-OV
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 11:28:40 +0000
Received: from OS0P286CU010.outbound.protection.outlook.com
 (mail-japanwestazlp170110001.outbound.protection.outlook.com
 [2a01:111:f403:c407::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f64684d4-7e81-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 13:28:31 +0200 (CEST)
Received: from TY3PR01MB11346.jpnprd01.prod.outlook.com (2603:1096:400:3d0::7)
 by TYCPR01MB10811.jpnprd01.prod.outlook.com (2603:1096:400:26e::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.15; Thu, 21 Aug
 2025 11:28:25 +0000
Received: from TY3PR01MB11346.jpnprd01.prod.outlook.com
 ([fe80::86ef:ca98:234d:60e1]) by TY3PR01MB11346.jpnprd01.prod.outlook.com
 ([fe80::86ef:ca98:234d:60e1%7]) with mapi id 15.20.9052.013; Thu, 21 Aug 2025
 11: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>
X-Inumbo-ID: f64684d4-7e81-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GVmB+TNGMZX9w5B5DrClJaT8j7d/S4urMdUZNJE+I12/+ZKqXfsREmXVkTg2I+I7UrwnbVTBjuD9ri6qy6lekjuKMjmVkRhLvXWW+oO31PneAB3zL6tyn/1E6FNGtWgencFiL4ApGI67Hdikccp2MrCePlwR5iRUgf8Nbg+ewevONksvKxIIFfpmP9Bnd4nVznqmwjGAn+ZhBtQBlwjkOxILWD++jq+WhQBJOxYpd0nAHg1gVQnnaNQmRJeAexHz1kgj9PEsf3LIYM7ixicsdPGIeEvBOPNuMcOBpop7WOk90CJ+crhc3/4Em++BcB6ngLPGAt2qGLGjB6wDq3aFhw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=batBPou7p6vt5Z9bn8Nk2nfj7gwkozC1W2UMIXPDDwo=;
 b=xZabjna9u/Y81FSfbO5oOt6Ya2lMUJFPZZKM9byTZ1BcjI4SgQq2bHe4417HIPUecJ4gbWtzmPnA0tX2klRLFaUmpLQbGiNwRIFILyKOEpXzPNaT008N2uoFHEU6cHBnUQic+rzw6SfIgczmNaBuuUjqnZQO4rNUBfSOdqg8lfQQ/nBkI6HBH7YD5FZSWZz9h+GLsDQ+qp4N89inIT+Lf0cNYNk5mJb1tJRyD8KxjnF4ka5iBbUCcObGJUIjQibNo87N708frWU3iTbkpzNKmbvZh7rr2KyXJM7ZWA9PSlBp8CpV4UPXmiSoE3sU29vV4wg5LY4Em+Sl3vuzlhQl9Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=bp.renesas.com; dmarc=pass action=none
 header.from=bp.renesas.com; dkim=pass header.d=bp.renesas.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bp.renesas.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=batBPou7p6vt5Z9bn8Nk2nfj7gwkozC1W2UMIXPDDwo=;
 b=YAsC3P9igXdfVQUuPOrh+U2ysrgV6o3GGcvlBGufKdkd0SnpFRXWNEaeTSr7EOQe3S+vyVWvfcgCMr6etNwriz4oqVqfXNWkxBo5id9PKbazwaCVIneuw9EJPHFCD0w3sA4jKu+J2s5ylgzut02q/UUlZnujwCUzOt0WAQqGN9I=
From: Biju Das <biju.das.jz@bp.renesas.com>
To: Thomas Zimmermann <tzimmermann@suse.de>, "simona@ffwll.ch"
	<simona@ffwll.ch>, "airlied@gmail.com" <airlied@gmail.com>,
	"mripard@kernel.org" <mripard@kernel.org>,
	"maarten.lankhorst@linux.intel.com" <maarten.lankhorst@linux.intel.com>,
	geert <geert@linux-m68k.org>, tomi.valkeinen
	<tomi.valkeinen@ideasonboard.com>
CC: "dri-devel@lists.freedesktop.org" <dri-devel@lists.freedesktop.org>,
	"linux-mediatek@lists.infradead.org" <linux-mediatek@lists.infradead.org>,
	"freedreno@lists.freedesktop.org" <freedreno@lists.freedesktop.org>,
	"linux-arm-msm@vger.kernel.org" <linux-arm-msm@vger.kernel.org>,
	"imx@lists.linux.dev" <imx@lists.linux.dev>,
	"linux-samsung-soc@vger.kernel.org" <linux-samsung-soc@vger.kernel.org>,
	"nouveau@lists.freedesktop.org" <nouveau@lists.freedesktop.org>,
	"virtualization@lists.linux.dev" <virtualization@lists.linux.dev>,
	"spice-devel@lists.freedesktop.org" <spice-devel@lists.freedesktop.org>,
	"linux-renesas-soc@vger.kernel.org" <linux-renesas-soc@vger.kernel.org>,
	"linux-rockchip@lists.infradead.org" <linux-rockchip@lists.infradead.org>,
	"linux-tegra@vger.kernel.org" <linux-tegra@vger.kernel.org>,
	"intel-xe@lists.freedesktop.org" <intel-xe@lists.freedesktop.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v6 18/25] drm/renesas/rz-du: Compute dumb-buffer sizes
 with drm_mode_size_dumb()
Thread-Topic: [PATCH v6 18/25] drm/renesas/rz-du: Compute dumb-buffer sizes
 with drm_mode_size_dumb()
Thread-Index: AQHcEnS9RPzKheS8DUq4xJ6ExVmpC7Rs+CdA
Date: Thu, 21 Aug 2025 11:28:24 +0000
Message-ID:
 <TY3PR01MB11346A4F40CE555D24C093F278632A@TY3PR01MB11346.jpnprd01.prod.outlook.com>
References: <20250821081918.79786-1-tzimmermann@suse.de>
 <20250821081918.79786-19-tzimmermann@suse.de>
In-Reply-To: <20250821081918.79786-19-tzimmermann@suse.de>
Accept-Language: en-GB, 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=bp.renesas.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: TY3PR01MB11346:EE_|TYCPR01MB10811:EE_
x-ms-office365-filtering-correlation-id: 9b78a164-43ad-4159-ccaf-08dde0a5d7bd
x-ld-processed: 53d82571-da19-47e4-9cb4-625a166a4a2a,ExtAddr
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|376014|7416014|38070700018;
x-microsoft-antispam-message-info:
 =?us-ascii?Q?N2kXLEFlj1eGCKIbn+vz8Sgi83kEkUFEy6HwZuvHYltrLvfrGM1P5UmBCtco?=
 =?us-ascii?Q?ak+7V202f7dc7tnDVDU5BrH6nZxNfaPycO4m8GC9relShMvBTSu6FqjHfWro?=
 =?us-ascii?Q?bgL9OiqDAprVigSb5XDqNzrhuPsrrUVHWo5KFojc+HPS9rN60TX/qym0Aqp8?=
 =?us-ascii?Q?SIWIlXCpLtw7GPK6O5BrrwJ6uVNKzhRdGiQzsrXovLrcp6M1g0aAKR+LUHx4?=
 =?us-ascii?Q?QV3E9zqoKjbJ2PbJm3Cm5i5ti78W/SbTKWeAR2kPlZlvDspNjYI226ZL0GC4?=
 =?us-ascii?Q?UE3D1D9iEIHu9HWdAPaicc5TmVM5DNX99GynNqonyEzPd3QBIvJem/k/iYbT?=
 =?us-ascii?Q?R8E+o+POGIWIJIniOuXIRDRc5Kp1Ga5Wd5McEJLO5VQ7Q15hguKv1D1+m84p?=
 =?us-ascii?Q?8jiltoYZoBuEV8CglktXCU3XBMsxkTYv5Gy9rQn8RitoA+x3D7zrl8aa0eL/?=
 =?us-ascii?Q?RaV/m5XH1UXwXwr5Wt7ZWx5MmyckC0bIx+yFOFMHiolUq3y6ot1MOQ5ExX2o?=
 =?us-ascii?Q?NhWGgeY9jTwCXDcbriZ0VsH365Yk5Ex6IrRp04SUHuiAnGPECEW76QMRt9Jv?=
 =?us-ascii?Q?vZv7WWECevwHqKJIY9iZQSPx5bB40jOEbDzJ9VDVi2tnM5U5v7RkIncV6I68?=
 =?us-ascii?Q?vfUnluF9tyIS2ePvN4OOfBEspsHniV28DEWRvyc8Z9hXwUx1yjF2fyCFzV4U?=
 =?us-ascii?Q?EJt6UJqm4Hoxbmnr4ypzm/8Sx4LLCp3RWYhhXvOma8VW2JtYQCsm3iaagCL+?=
 =?us-ascii?Q?pekzcXlRS/BuX9bbFzMgb9dsEinPvHlKi+Ba9WW6rjDC8gtuGfkiDDIkYwFB?=
 =?us-ascii?Q?5i+IbSAvuQbjn412ZXUOQi2P17IfXx5g9wTSwhsdyh/SPaiNWk4Ljm23m7yD?=
 =?us-ascii?Q?7XSaQPLNXEw+1oRFf2SYcIazdsiWSBGVUQ5GbwM+EsnZ7mG/NchBVShCq/sM?=
 =?us-ascii?Q?XzP79aE5tAh91zFX9/d7doTAzSb70CJ+mt3nsJvA93W2VlrK6wJPx4j+nnGL?=
 =?us-ascii?Q?gFqw8OyvWCTUeT6/xN2QXBy45DZDPby/CT3VOAAWfx1El9gqXJTnMdqhDU7v?=
 =?us-ascii?Q?lctq+0oKaHNhu4StQZlGQ9R7cSbPPsZ4HB2P0MqXQana0czLpcXu1Q4G+upF?=
 =?us-ascii?Q?GpQ+wxU0fDjhQjZcKKljFkruaPw4KLLA1kp7smnlkqTv972DnQsypPwwzurc?=
 =?us-ascii?Q?t3JVQvQpDOmNlfT8lAufC/8GCv1GzDbQnNCvd5KyNR9Zg1M6T7cCy8jbl+jF?=
 =?us-ascii?Q?564QUCmcjzKaEMjU9qTXy5bEBb1pAmGB8k/cvjDu9WRYydjIfa89+bsAzw+T?=
 =?us-ascii?Q?wu67TQ1FTrMxk0FjzFfffFotjtTv3O8XBViHlqAvHa7X5CeHBEVJ+zBwNPbz?=
 =?us-ascii?Q?xsx4aaeTg3lV30rmoLuS4B8rA6M26z8bVh+yhU9aHhTfeqBNKKHngi9/vKmv?=
 =?us-ascii?Q?oQN3unTlrNRdSbCWNeBd2uBhMgjzz+gVysDFpajoLxcMlCJSGstZ4A=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY3PR01MB11346.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?us-ascii?Q?PYGxOXRJ+AhtkSHRjSSo9MFFvB0Gk260SNAmCENfRdHquF7U5PkIjWNcVC07?=
 =?us-ascii?Q?OMIMxmBrvMBOB+J6bGIDNNvlOPDuasXtMNBaWBrtRaIbY9IxULTIKztviEpz?=
 =?us-ascii?Q?sH67lR0DXw6yUTXyboRaE+EoMjwUltms3WUtxtrNWphbjGuNHrOderM0zLcK?=
 =?us-ascii?Q?pN8rYmnrXasnP3vF1JMqC8ZCCZrnFBQmCh2pD9PQIJ+IHWtYSnCpQPegW8iS?=
 =?us-ascii?Q?lju+SD7BLBBnvizzg1J9k8nQhaHAjtEDOL38Y8pyoz3db1NHfO6x/Fvmfz4b?=
 =?us-ascii?Q?+kf2dgV7zHQldU8kHA6QoqZ7IpZ4bSTxMVXzTL/QB1yPkpbWrt1tELb6B3I1?=
 =?us-ascii?Q?2DdZOWGif6bq3hLXCZ7QqpfZlxaWRAQDGELhasURydZtMkTqNFaXUPihko9b?=
 =?us-ascii?Q?5E/558Doo0t0YxjPXt83KRp3ZE/8WKZKNDItZGavXnRoI+D7nJeX8qjLUwCG?=
 =?us-ascii?Q?cunw8KX1hmqZlOV/ztLqjqgWs8J2nRAXl+iQND8NfWYQ+e/HTepAowFxJfba?=
 =?us-ascii?Q?AalpObkv5Rui5+z4ihA6BBxDB9wNqqJexARo3yePoSoYnxVHQRsOIZGROlqd?=
 =?us-ascii?Q?DAnlEx5VV0poV8aY1ifA8gcvDPAPUTFN1r+bIkHfvQvVIyR58I8Lps2WDTdn?=
 =?us-ascii?Q?STaA5r35JDy7DjGUtwpGdJWwNTvx4IQh7Kqufu8OOjJ65PfAJqxIE87koi3c?=
 =?us-ascii?Q?gnZ1p3ToGwxJb9tIF0qs1FZtyk/Q6B9c7UWmIebNpHiihlViCEDfcB7MdrhG?=
 =?us-ascii?Q?gK3lyWv1fsxbQGq3EP9N4k6EZWHxE1OIyNFYQvCvj2lz8eBxMJOxtC5Vhf04?=
 =?us-ascii?Q?PQ1ePyOIeDARa/m5fAvug+/Fh5y7+g1l6w4YX08BLhvJhiEGdK0AJ0c4qK+z?=
 =?us-ascii?Q?RQLV+jHWn3gleFCdunuzjMZqUmxPxCXDdIwkHwqMRVAVmHaUB6tw8C5kpWOK?=
 =?us-ascii?Q?GSLgZCDecYKymLnUdi5KjIBUQoXqiApPTf5xQkPzy63gykuFdztc/7peC5FG?=
 =?us-ascii?Q?zVF2p6pByXplQJohwey6M2GhdHCrIOiqNffV08n/CKQNgXpcJKB6pUKxX21d?=
 =?us-ascii?Q?lSb3xSHS2UnDZ9M/RYolMTrlbu6tvYg27VX5AMEQsZ+7kPC3fxO6az9URqpB?=
 =?us-ascii?Q?4rbF1DOa5j/j17hez38INcqb4qbZasd4tBIZ7VWGPh2bt626+y5IamYu4RBX?=
 =?us-ascii?Q?H66aqdFMnqQGtZG0C7fWaX7afazH3qVUg+gML+ov1Py2MPhWU8xsePOoN46U?=
 =?us-ascii?Q?T1BgeTjbQm//iGvRtP2c+b/nfTbxOm8d/6DGMjfH2aAPPYih0YkOwcFrew1G?=
 =?us-ascii?Q?IGZJ27G4MOPPAFLv05A7I6XJnLSrXBKu9joq2VEzr+9SU04b0/QyyMRd5T11?=
 =?us-ascii?Q?3p/e/tgowK5UNtOwEna2uL3PvhvqM9pVq0VAdGVMaUMJK7SgaEPBPn/U0wbT?=
 =?us-ascii?Q?UdbWlXajo8nlLBv1VAEcDYVJz2DSPMpL23wcDvYpomqO1hWpcobNA96Fiu8I?=
 =?us-ascii?Q?Nh1GzwGzjejm5QCdlUvwMREc415aGwOXzpg9PqAztkNe17rJ7coxEcBNp5xK?=
 =?us-ascii?Q?GQJmSh6UnEvb6M56cssZ+Qoi/GAeBYJoMW0J89DnP7WLEF1BunVGuu45mx7s?=
 =?us-ascii?Q?rw=3D=3D?=
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: bp.renesas.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: TY3PR01MB11346.jpnprd01.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9b78a164-43ad-4159-ccaf-08dde0a5d7bd
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Aug 2025 11:28:24.9907
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 53d82571-da19-47e4-9cb4-625a166a4a2a
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: diWP74d6Hjqhrz3I2im0C9R48AtHhdFXOHtAbZWnsRHk5zzsvNCo0dexdMyiki0ZSZZx/wgKEHEcChoGToi+deLdzsEZ1MGzRC44i/17ZSI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYCPR01MB10811

Hi Thomas Zimmermann,

Thanks for the patch.

> -----Original Message-----
> From: Thomas Zimmermann <tzimmermann@suse.de>
> Sent: 21 August 2025 09:17
> Subject: [PATCH v6 18/25] drm/renesas/rz-du: Compute dumb-buffer sizes wi=
th drm_mode_size_dumb()
>=20
> Call drm_mode_size_dumb() to compute dumb-buffer scanline pitch and buffe=
r size. Align the pitch
> according to hardware requirements.
>=20
> v5:
> - include dumb-buffers header for drm_mode_size_dumb() (kernel test robot=
)
>=20
> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
> Cc: Biju Das <biju.das.jz@bp.renesas.com>

Tested-by: Biju Das <biju.das.jz@bp.renesas.com>

Cheers,
Biju


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 11:56:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 11:56:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088566.1446307 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up3tw-0005QK-Sn; Thu, 21 Aug 2025 11:56:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088566.1446307; Thu, 21 Aug 2025 11: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 1up3tw-0005QD-Pb; Thu, 21 Aug 2025 11:56:16 +0000
Received: by outflank-mailman (input) for mailman id 1088566;
 Thu, 21 Aug 2025 11:56:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+F7x=3B=suse.de=tzimmermann@srs-se1.protection.inumbo.net>)
 id 1up3tv-0005Q5-FF
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 11:56:15 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cf6bd556-7e85-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 13:56:02 +0200 (CEST)
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 E8C1D223BF;
 Thu, 21 Aug 2025 11:56:00 +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 30D9513867;
 Thu, 21 Aug 2025 11:56:00 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id Ozw5ClAJp2j0UAAAD6G6ig
 (envelope-from <tzimmermann@suse.de>); Thu, 21 Aug 2025 11:56: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>
X-Inumbo-ID: cf6bd556-7e85-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755777361; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=sfJDevyhbJHQ4pRUZzGgDUzFw8/hjC9NL73k+UbtfNI=;
	b=NJDFrpGJO5iUNdKMkobo3gxiDs3KVSoOo+c0Kx7YFvkYIlgx7bnpDXIsS/c0P0cQgrh+OM
	dExS90hja4MkiIhNcN5ACrES3HoMUaxtBTvpFmwjVxAsz+p2OyiAVBW8rAxUPAhgsnlwwj
	CZwQn8osw/hfaBvpa9NaTEKf6lTT/M4=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755777361;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=sfJDevyhbJHQ4pRUZzGgDUzFw8/hjC9NL73k+UbtfNI=;
	b=Gj5tANSUdM5J9dvfsooU4xEjtijJBFnr7I7ne0BmLL2IbI4EPgjzdAm3py48jgBwCGMxQT
	boIwMwnxQsGrzgBw==
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.de header.s=susede2_rsa header.b=Tnc6NDIT;
	dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=uTGuQaRo
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1755777360; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=sfJDevyhbJHQ4pRUZzGgDUzFw8/hjC9NL73k+UbtfNI=;
	b=Tnc6NDIT4e91MUk3u/uv4DBnosFc2L+6LZYV25zaGB1PKdcEVuIh/llq9RiUXqkK4mkPMk
	PfJV61ySMLhVweEIcriS3pU6Ueb/KxgiopzgPBhPws1+a3mjWGyK16+rO3Zyq+/M8wuFE7
	qfdE97vz5rt+BUFGKinpdAml62Ot91s=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1755777360;
	h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=sfJDevyhbJHQ4pRUZzGgDUzFw8/hjC9NL73k+UbtfNI=;
	b=uTGuQaRowDi9JsJ2CDS0TXWPegM6sn88iHyhpAFbnDit/r3KkSK5wNpUCdTeRnRo1G9Xoi
	pAPRiwf+LpsK+VAA==
Message-ID: <7918ea7e-8914-4c0f-97be-d660043a4aab@suse.de>
Date: Thu, 21 Aug 2025 13:55:59 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 18/25] drm/renesas/rz-du: Compute dumb-buffer sizes
 with drm_mode_size_dumb()
To: Biju Das <biju.das.jz@bp.renesas.com>, "simona@ffwll.ch"
 <simona@ffwll.ch>, "airlied@gmail.com" <airlied@gmail.com>,
 "mripard@kernel.org" <mripard@kernel.org>,
 "maarten.lankhorst@linux.intel.com" <maarten.lankhorst@linux.intel.com>,
 geert <geert@linux-m68k.org>,
 "tomi.valkeinen" <tomi.valkeinen@ideasonboard.com>
Cc: "dri-devel@lists.freedesktop.org" <dri-devel@lists.freedesktop.org>,
 "linux-mediatek@lists.infradead.org" <linux-mediatek@lists.infradead.org>,
 "freedreno@lists.freedesktop.org" <freedreno@lists.freedesktop.org>,
 "linux-arm-msm@vger.kernel.org" <linux-arm-msm@vger.kernel.org>,
 "imx@lists.linux.dev" <imx@lists.linux.dev>,
 "linux-samsung-soc@vger.kernel.org" <linux-samsung-soc@vger.kernel.org>,
 "nouveau@lists.freedesktop.org" <nouveau@lists.freedesktop.org>,
 "virtualization@lists.linux.dev" <virtualization@lists.linux.dev>,
 "spice-devel@lists.freedesktop.org" <spice-devel@lists.freedesktop.org>,
 "linux-renesas-soc@vger.kernel.org" <linux-renesas-soc@vger.kernel.org>,
 "linux-rockchip@lists.infradead.org" <linux-rockchip@lists.infradead.org>,
 "linux-tegra@vger.kernel.org" <linux-tegra@vger.kernel.org>,
 "intel-xe@lists.freedesktop.org" <intel-xe@lists.freedesktop.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20250821081918.79786-1-tzimmermann@suse.de>
 <20250821081918.79786-19-tzimmermann@suse.de>
 <TY3PR01MB11346A4F40CE555D24C093F278632A@TY3PR01MB11346.jpnprd01.prod.outlook.com>
Content-Language: en-US
From: Thomas Zimmermann <tzimmermann@suse.de>
Autocrypt: addr=tzimmermann@suse.de; keydata=
 xsBNBFs50uABCADEHPidWt974CaxBVbrIBwqcq/WURinJ3+2WlIrKWspiP83vfZKaXhFYsdg
 XH47fDVbPPj+d6tQrw5lPQCyqjwrCPYnq3WlIBnGPJ4/jreTL6V+qfKRDlGLWFjZcsrPJGE0
 BeB5BbqP5erN1qylK9i3gPoQjXGhpBpQYwRrEyQyjuvk+Ev0K1Jc5tVDeJAuau3TGNgah4Yc
 hdHm3bkPjz9EErV85RwvImQ1dptvx6s7xzwXTgGAsaYZsL8WCwDaTuqFa1d1jjlaxg6+tZsB
 9GluwvIhSezPgnEmimZDkGnZRRSFiGP8yjqTjjWuf0bSj5rUnTGiyLyRZRNGcXmu6hjlABEB
 AAHNJ1Rob21hcyBaaW1tZXJtYW5uIDx0emltbWVybWFubkBzdXNlLmRlPsLAjgQTAQgAOAIb
 AwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgBYhBHIX+6yM6c9jRKFo5WgNwR1TC3ojBQJftODH
 AAoJEGgNwR1TC3ojx1wH/0hKGWugiqDgLNXLRD/4TfHBEKmxIrmfu9Z5t7vwUKfwhFL6hqvo
 lXPJJKQpQ2z8+X2vZm/slsLn7J1yjrOsoJhKABDi+3QWWSGkaGwRJAdPVVyJMfJRNNNIKwVb
 U6B1BkX2XDKDGffF4TxlOpSQzdtNI/9gleOoUA8+jy8knnDYzjBNOZqLG2FuTdicBXblz0Mf
 vg41gd9kCwYXDnD91rJU8tzylXv03E75NCaTxTM+FBXPmsAVYQ4GYhhgFt8S2UWMoaaABLDe
 7l5FdnLdDEcbmd8uLU2CaG4W2cLrUaI4jz2XbkcPQkqTQ3EB67hYkjiEE6Zy3ggOitiQGcqp
 j//OwE0EWznS4AEIAMYmP4M/V+T5RY5at/g7rUdNsLhWv1APYrh9RQefODYHrNRHUE9eosYb
 T6XMryR9hT8XlGOYRwKWwiQBoWSDiTMo/Xi29jUnn4BXfI2px2DTXwc22LKtLAgTRjP+qbU6
 3Y0xnQN29UGDbYgyyK51DW3H0If2a3JNsheAAK+Xc9baj0LGIc8T9uiEWHBnCH+RdhgATnWW
 GKdDegUR5BkDfDg5O/FISymJBHx2Dyoklv5g4BzkgqTqwmaYzsl8UxZKvbaxq0zbehDda8lv
 hFXodNFMAgTLJlLuDYOGLK2AwbrS3Sp0AEbkpdJBb44qVlGm5bApZouHeJ/+n+7r12+lqdsA
 EQEAAcLAdgQYAQgAIAIbDBYhBHIX+6yM6c9jRKFo5WgNwR1TC3ojBQJftOH6AAoJEGgNwR1T
 C3ojVSkIALpAPkIJPQoURPb1VWjh34l0HlglmYHvZszJWTXYwavHR8+k6Baa6H7ufXNQtThR
 yIxJrQLW6rV5lm7TjhffEhxVCn37+cg0zZ3j7zIsSS0rx/aMwi6VhFJA5hfn3T0TtrijKP4A
 SAQO9xD1Zk9/61JWk8OysuIh7MXkl0fxbRKWE93XeQBhIJHQfnc+YBLprdnxR446Sh8Wn/2D
 Ya8cavuWf2zrB6cZurs048xe0UbSW5AOSo4V9M0jzYI4nZqTmPxYyXbm30Kvmz0rYVRaitYJ
 4kyYYMhuULvrJDMjZRvaNe52tkKAvMevcGdt38H4KSVXAylqyQOW5zvPc4/sq9c=
In-Reply-To: <TY3PR01MB11346A4F40CE555D24C093F278632A@TY3PR01MB11346.jpnprd01.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Level: 
X-Spam-Flag: NO
X-Rspamd-Queue-Id: E8C1D223BF
X-Rspamd-Action: no action
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org
X-Spamd-Result: default: False [-3.01 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	SUSPICIOUS_RECIPS(1.50)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	FREEMAIL_TO(0.00)[bp.renesas.com,ffwll.ch,gmail.com,kernel.org,linux.intel.com,linux-m68k.org,ideasonboard.com];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	TO_DN_EQ_ADDR_SOME(0.00)[];
	ARC_NA(0.00)[];
	RCPT_COUNT_TWELVE(0.00)[21];
	MIME_TRACE(0.00)[0:+];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FREEMAIL_ENVRCPT(0.00)[gmail.com];
	RCVD_TLS_ALL(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	TO_DN_SOME(0.00)[];
	MID_RHS_MATCH_FROM(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received];
	DKIM_TRACE(0.00)[suse.de:+];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:dkim,suse.de:mid,suse.de:email]
X-Spam-Score: -3.01

Hi

Am 21.08.25 um 13:28 schrieb Biju Das:
> Hi Thomas Zimmermann,
>
> Thanks for the patch.
>
>> -----Original Message-----
>> From: Thomas Zimmermann <tzimmermann@suse.de>
>> Sent: 21 August 2025 09:17
>> Subject: [PATCH v6 18/25] drm/renesas/rz-du: Compute dumb-buffer sizes with drm_mode_size_dumb()
>>
>> Call drm_mode_size_dumb() to compute dumb-buffer scanline pitch and buffer size. Align the pitch
>> according to hardware requirements.
>>
>> v5:
>> - include dumb-buffers header for drm_mode_size_dumb() (kernel test robot)
>>
>> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
>> Cc: Biju Das <biju.das.jz@bp.renesas.com>
> Tested-by: Biju Das <biju.das.jz@bp.renesas.com>

Thanks for testing. Could you also review the patch, please?

Best regards
Thomas

>
> Cheers,
> Biju

-- 
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstrasse 146, 90461 Nuernberg, Germany
GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman
HRB 36809 (AG Nuernberg)




From xen-devel-bounces@lists.xenproject.org Thu Aug 21 12:03:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 12:03:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088579.1446317 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up412-0000ZH-Mq; Thu, 21 Aug 2025 12:03:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088579.1446317; Thu, 21 Aug 2025 12:03:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up412-0000ZA-Jo; Thu, 21 Aug 2025 12:03:36 +0000
Received: by outflank-mailman (input) for mailman id 1088579;
 Thu, 21 Aug 2025 12:03:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=z7HC=3B=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1up411-0000Xs-53
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 12:03:35 +0000
Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com
 [2a00:1450:4864:20::12c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dcc149b1-7e86-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 14:03:34 +0200 (CEST)
Received: by mail-lf1-x12c.google.com with SMTP id
 2adb3069b0e04-55cf526f6b5so640918e87.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 05:03: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>
X-Inumbo-ID: dcc149b1-7e86-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1755777814; x=1756382614; 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=OpcPNaZFfG+GWbMmu9ekUiC9dR7j3JT6d/C7aJcxbPY=;
        b=OCn861Qxyt76Fk4qTCwUkEP44nczPtYDUDTt86znNg240EYbVjDsBymRonpeegKWqm
         OPkV+SEzIcdIQEWeLT4LdG1tTEYo8Iwr33797JKxsrAbUi1ex05/g59xdZ2zRN142YCH
         rqdzB8qs5+K8h0ScXCywBCroScdWLPN0MK+qXsno985sjYle4JdQeiLHMv7Elw1sFmmF
         g3pzpLGGaZ0mIX6kinMj2eiC2lv0isbzNWQKAUvpd4E9lgiSxbTSyUXPg0/ZjuPiDDku
         6kk5o/9hjcQKQDQa3nKOVhVfjMPPgJsZZDl3yeKIkGFT37hj/j2aizLAxIJnqkA2QyVX
         QmOw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755777814; x=1756382614;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=OpcPNaZFfG+GWbMmu9ekUiC9dR7j3JT6d/C7aJcxbPY=;
        b=J23U9lazQRjcHKGr3ly3dhpcSJdBN78l2eEZ+VwB6iZ2LyvpEIiAd/mJzmlPwDTSJ4
         zXyUV5TkFJlQXIH3vUJ8/+r3p0PQ8D/eKYPP4zKNBAGzZyIiI2KgMqyjBYpIrGJsArBR
         wK0RtFwZCDERK8ZD7MAGut3j99lHxofVWqOUMSEEz6y5GxkuzM0dcJ4WQVZnEZ4RFb4F
         XVe3Y6QGySWl7vbkTss1Pzh9y/zDp9yS6HK0w4A4mtOcPPyXv1CjeKoAmefhGLkrHlvX
         nLZs3kGxUUhWuffHAyd5IWRgZppu/8TVDBeR35SYHElgScCrOlyM1wMN5+i4eTBpvlyb
         Km7g==
X-Gm-Message-State: AOJu0YyisPb1I3P5gZOLFLib2cKuY/6DwnWi9kDrrjTqlysECLJZR9/7
	uR2EewEhtEdzNgS98Ssvw2jEGf5UPGBu1SIFYZ0K8KkqHdcGhBVPQGlMbsgzF0nwLIpnBUjbK0J
	krxfkgD3jkLVWfvHQIWVTh+TVw6UIE1I=
X-Gm-Gg: ASbGncsWt7glmY60uHVEcLPbCUoAyUkfzmtIa+2/BgvjKSScL/+rZzpH8KpXJSo+KuH
	SL6KiL5GtbWbjA+plsc8psuJn7riEVDtTKszKb3fkpmDSoccA+YSWVXHn0fgy9Sv9fmiSphfJI3
	2POBtp6iCSe4EjB5yR6gX4TNf6SlJ401nfrymt9SE+v238aL62I+isVoV8+M4Nh5/ggFmpANDxx
	YJh9aC2Ps9suuML
X-Google-Smtp-Source: AGHT+IFRoSQ78Mw3CqZOMBTcphmwiftjaKFnfiNP8LjzymUZnCzaImk6468iXiUe6nzua8yDPJpXAJ8jdgcZ3jypk5c=
X-Received: by 2002:a05:6512:3096:b0:55e:a69:f4a2 with SMTP id
 2adb3069b0e04-55e0d5487camr799094e87.14.1755777813340; Thu, 21 Aug 2025
 05:03:33 -0700 (PDT)
MIME-Version: 1.0
References: <f6a8095483ba54e1eabeca5e4b08138312fa822b.1755773176.git.mykyta_poturai@epam.com>
In-Reply-To: <f6a8095483ba54e1eabeca5e4b08138312fa822b.1755773176.git.mykyta_poturai@epam.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Thu, 21 Aug 2025 15:03:21 +0300
X-Gm-Features: Ac12FXyizrVcc8K7g3kS8auo0OzE09kEo0TMmvyL7IYzBQDSJwvmCgfiA0El_f4
Message-ID: <CAGeoDV8UBv9g3x_AunwoyZg5eQDWNkCHoXNz2_tJKrJYWeYAWg@mail.gmail.com>
Subject: Re: [PATCH v1] iommu/ipmmu-vmsa: Fix build with HAS_PCI=n
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Mykyta,

On Thu, Aug 21, 2025 at 1:51=E2=80=AFPM Mykyta Poturai <Mykyta_Poturai@epam=
.com> wrote:
>
> With PCI disabled the build fails due to undefined struct
> pci_host_bridge.
>
> Add ifdef guard around pci-host-rcar4.h to not include it when PCI
> support is disabled.
>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> ---
> This patch can be squashed with iommu/ipmmu-vmsa: Implement basic PCIE-IP=
MMU OSID support
> ---
>  xen/drivers/passthrough/arm/ipmmu-vmsa.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/xen/drivers/passthrough/arm/ipmmu-vmsa.c b/xen/drivers/passt=
hrough/arm/ipmmu-vmsa.c
> index ea9fa9ddf3..49f149e222 100644
> --- a/xen/drivers/passthrough/arm/ipmmu-vmsa.c
> +++ b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
> @@ -51,7 +51,9 @@
>  #include <asm/device.h>
>  #include <asm/io.h>
>  #include <asm/iommu_fwspec.h>
> +#ifdef CONFIG_HAS_PCI
>  #include "../arch/arm/pci/pci-host-rcar4.h"
> +#endif

As far as I know, the IPMMU VMSA driver can also be used on other
R-Car platforms. Is there a chance we could have HAS_PCI enabled
together with IPMMU VMSA, but not be on an R-Car Gen4 platform,
for example, on R-Car3 or possibly some future R-Car variants?

Wouldn't it be better to use:
#ifdef CONFIG_RCAR4
?

>
>  #define dev_name(dev) dt_node_full_name(dev_to_dt(dev))
>
> --
> 2.34.1
>

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 12:04:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 12:04:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088588.1446326 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up41n-0001Jr-Ta; Thu, 21 Aug 2025 12:04:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088588.1446326; Thu, 21 Aug 2025 12:04:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up41n-0001Jk-R3; Thu, 21 Aug 2025 12:04:23 +0000
Received: by outflank-mailman (input) for mailman id 1088588;
 Thu, 21 Aug 2025 12:04:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=hypg=3B=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1up41m-0000Xs-A2
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 12:04:22 +0000
Received: from fout-b6-smtp.messagingengine.com
 (fout-b6-smtp.messagingengine.com [202.12.124.149])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f76790ea-7e86-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 14:04:19 +0200 (CEST)
Received: from phl-compute-03.internal (phl-compute-03.internal [10.202.2.43])
 by mailfout.stl.internal (Postfix) with ESMTP id 134E81D000D7;
 Thu, 21 Aug 2025 08:04:18 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-03.internal (MEProxy); Thu, 21 Aug 2025 08:04:18 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 21 Aug 2025 08:04:15 -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>
X-Inumbo-ID: f76790ea-7e86-11f0-a32b-13f23c93f187
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=1755777857;
	 x=1755864257; bh=Zs5GGhh1diHlRXersCi6lSAqxeFXG7ttOxhIr0eb8N4=; b=
	rSkqQ9k/EyRlli/ZjljYyYP5jKppe6ZfNtmKoq+JqqXUJqR99/urPePhZE7qKB02
	huy9Li5In5PXvGZCwS19ltATAMzdA5vw/T7DjBM1M7QRPv7EUTC4Z0QWP4fv3QNn
	0b2y5d3QUwFGD6sObBPKZSLS99W4hr0PUYmj+HzVJ0f4duaEy6/UGO45e82g7eGH
	qtuDhL8ZAieM7h3CTTcM4z/63wBh4Mt5JkcFQzsd0Qhpt7P36WvMv1JwL3QZJMyG
	iETTsL9EJbtZOstTySXdwMIYU/ea+A40TEVlV9ig6BOMB3C/Hq4awHQA1uspKUaK
	2rEuYCT9xUUuD769iws0dA==
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=
	1755777857; x=1755864257; bh=Zs5GGhh1diHlRXersCi6lSAqxeFXG7ttOxh
	Ir0eb8N4=; b=GCFpWiTVYmmornpNaChPPrraGLxvTkMfiikWsMNEHzYl/NG5AcK
	rqFjuUDeRDUwwaz5XaVN5aa7e8c9usTLhSm5SrwfzvpiGQyKsy5cDwNvMM518alR
	CR5YQzcpjf4K1h9Sat2C0s3wP884N6xuNC///TXFZanQum6w2gYjUbIU5x09nO36
	5UwwPDvhxwWTXmggvRBtnkc/RndfIPha2rXomPJ2OeXzqTwys+GuETvk+F+X1Xqq
	zVnnIqJ/0m6aesB4Yk6wB0kiQCxECjTXBXlSefuT6DTHUbvJmMGBSxD+zdKowHGW
	Ak5JFzT/0V+whrlIym3dd0KVORUzwA7iz4Q==
X-ME-Sender: <xms:QQunaLIXHGWpIfVrgGBN-qYjoeF9H4bCmJs9yrYeofIZDNstEmpY2A>
    <xme:QQunaK07_vEDd3O1NMwihpl_mM7ot9xmKYGhbBxJPULwZCzBVo5eWPo3IR-CoNmz1
    7k2t2lAk3MxMg>
X-ME-Received: <xmr:QQunaALYzazIsdKrwdWiaPya4GvEgWZp_u0mLCgdumqfEZRZJISoO0GAJKAd_KkvHH4nLtkD8a_D95lKoAZlXba-5lzJ-pGQ7lw>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgdduieduudelucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfduleet
    feevhfefheeiteeliefhjefhleduveetteekveettddvgeeuteefjedunecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepuddtpd
    hmohguvgepshhmthhpohhuthdprhgtphhtthhopegumhihthhrohgpphhrohhkohhptghh
    uhhkudesvghprghmrdgtohhmpdhrtghpthhtohepjhgsvghulhhitghhsehsuhhsvgdrtg
    homhdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhm
    pdhrtghpthhtoheprghnthhhohhnhidrphgvrhgrrhgusehvrghtvghsrdhtvggthhdprh
    gtphhtthhopehmihgthhgrlhdrohhriigvlhesrghmugdrtghomhdprhgtphhtthhopehj
    uhhlihgvnhesgigvnhdrohhrghdprhgtphhtthhopehrohhgvghrrdhprghusegtihhtrh
    higidrtghomhdprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvghrnhgvlhdrohhr
    ghdprhgtphhtthhopeguphhsmhhithhhsegrphgvrhhtuhhsshholhhuthhiohhnshdrtg
    homh
X-ME-Proxy: <xmx:QQunaNicrL0bt9MbMrbNxHNfDbVs02M9weIch7MsBDe5jgwPkRIe4A>
    <xmx:QQunaIBPi5eUma2XukGEbt4CX9Frq6njWUi8VpE67djEAOPK2-lG6Q>
    <xmx:QQunaH5Cfo2Ypl-rmPmnRJHY85Wxojbej5RgLn7C2FeyG3M8iv_ALQ>
    <xmx:QQunaFGUGQHJKNrwrfRKJoYLGq6LxhceJJZAK0_rw5TETxseIGgVlQ>
    <xmx:QQunaOz6rxALc9CmKa5InIp7xz_QZjl66N7j1Mx0b7fBLHGVHxVMvB0H>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 21 Aug 2025 14:04:14 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: 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>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] common/efi: deviate Rule 2.1 violation in read_file()
Message-ID: <aKcLPhB771FsvXd4@mail-itl>
References: <c20a58f24875806adfaf491f9c6eef2ca8682d18.1755711594.git.dmytro_prokopchuk1@epam.com>
 <98e8ca88-75cd-4d59-9e94-f758324fa46a@suse.com>
 <61ba927d-876f-496d-966c-e29db3022a1d@epam.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="M4dvO/larT36ENG1"
Content-Disposition: inline
In-Reply-To: <61ba927d-876f-496d-966c-e29db3022a1d@epam.com>


--M4dvO/larT36ENG1
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 21 Aug 2025 14:04:14 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: 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>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] common/efi: deviate Rule 2.1 violation in read_file()

On Thu, Aug 21, 2025 at 11:28:01AM +0000, Dmytro Prokopchuk1 wrote:
>=20
>=20
> On 8/21/25 13:33, Jan Beulich wrote:
> > On 20.08.2025 20:05, Dmytro Prokopchuk1 wrote:
> >> --- a/xen/common/efi/boot.c
> >> +++ b/xen/common/efi/boot.c
> >> @@ -852,7 +852,7 @@ static bool __init read_file(EFI_FILE_HANDLE dir_h=
andle, CHAR16 *name,
> >>       PrintErr(L" failed for ");
> >>       PrintErrMesg(name, ret);
> >>  =20
> >> -    /* not reached */
> >> +    /* SAF-15-safe deliberately unreachable code */
> >>       return false;
> >>   }
> >=20
> > Much better (even if not tagged as v2). Yet then, did you consider
> > alternatives? For example, with PrintErrMesg() properly annotated "nore=
turn",
> > I'd kind of expect compilers to not object to the omission of the "retu=
rn"
> > statement here. This would then let us get away without a new SAF comme=
nt.
> > While you explain in the SAF text why you retain the statement, I'm not
> > convinced of code clarity suffering if it was deleted, as long as a sui=
table
> > comment is still there. If PrintErrMesg() lost its "noreturn", surely
> > compilers would then diagnose the lack of "return".
> >=20
> > Jan
>=20
> Sure, the next version will be v3.
> Actually, the PrintErrMesg() already has property 'noreturn'.
> And it really gives an alternative way: remove 'return false;' from the=
=20
> function read_file() (leaving comment there).
>=20
> With that change Misra is "happy".
>=20
> In case of removing 'noreturn' attribute from PrintErrMesg() function=20
> compiler will detect that:
> arch/arm/efi/boot.c: In function =E2=80=98read_file=E2=80=99:
> arch/arm/efi/boot.c:854:1: error: control reaches end of non-void=20
> function [-Werror=3Dreturn-type]
>   }
>   ^
>=20
> Is it OK to prepare such ^ patch?

IMO sounds like the best solution for this issue.

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAminCz4ACgkQ24/THMrX
1yz5Dwf8De3BM7eu9WCetfITKkUDzUxJIQ/Lr06APWrwfpOzJJK5rvW2DUYd+NAM
3hMla90jCxFT9uS8Ldl3cjSaYJIZar8Z4Pkjf5+PaqMqc4XSvmFtAaevCLl3UNKI
vwxcZazTYSV6PCu/oAz0dtyfh/gt5UQusvqzvUqImwIu0jIQqHcsVXZDhhqH1NoH
OhpY7wfKWG/Mgq9BusIOwzpybvdFKR3kXwQS64PAxGzgam1iBn26d8dqlhox0Ame
u/H2wxacXLNgj/FR8jHFVeZJgouj5ctyEPOogX+NSYi2KTa+WRRTPAI+bokAg3PS
bfCkiZT/LdHuiDohGUy0aN7BSS1PwA==
=tOZH
-----END PGP SIGNATURE-----

--M4dvO/larT36ENG1--


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 12:06:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 12:06:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088598.1446336 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up44H-000290-9h; Thu, 21 Aug 2025 12:06:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088598.1446336; Thu, 21 Aug 2025 12:06:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up44H-00028t-6w; Thu, 21 Aug 2025 12:06:57 +0000
Received: by outflank-mailman (input) for mailman id 1088598;
 Thu, 21 Aug 2025 12:06:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=O+vP=3B=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1up44G-00028n-IP
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 12:06:56 +0000
Received: from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com
 [2a00:1450:4864:20::42e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 54bcfdfc-7e87-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 14:06:55 +0200 (CEST)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-3b9dc5c2f0eso509703f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 05:06:55 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3c077c56454sm11508119f8f.58.2025.08.21.05.06.54
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 Aug 2025 05:06: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>
X-Inumbo-ID: 54bcfdfc-7e87-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755778015; x=1756382815; 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=TEfwe2KafUbx5r9PX7TgTBX7JjSkwM5I5H+xupXG1Bs=;
        b=jRA3YyCVP8uH5UoDrwOJ+eYUhLTnIpi/FybMtM5SX6SJOICq2xRnH7xaU7GVEtv5Fp
         eJe1kTY/UWEK+oWbur8MRlBdxsXuehiuoguTOXg1nWDy2DrWPRE8QVojS/8qo18Agb0T
         LBn4nOOOzHZL7BWYeGu+JWOGmf21+JKCgNGCY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755778015; x=1756382815;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=TEfwe2KafUbx5r9PX7TgTBX7JjSkwM5I5H+xupXG1Bs=;
        b=X87+RC56XV1UDxT686JkXzl2BttPOTN6AGNRMMpMR4jsdVwa4uiODGQYf0KvP90Poy
         itWtI8WlLHsaINrx6XzhEOytWk+Gmc208uHqfek7Uu9JrJWF8hZLPhyhuMbbCI4FIYt+
         cnndoG+YbwQ0ddlpNS3ppm8JlMA3pESPjwceGLdy6g2bsCSwp/E61N6yWmO8VM1LaF/Y
         LCxod7+58G0CFjv1GFE1DMKkLfRxBv3zQ1zDlpWxIQhrbbY4c+oavzbJMQzld4M2Jp42
         PZv4EviddkuxV+M7QgNSK+VwiqHJwpXFrm8lgjXWHSERBoopCM0ut8qWDbzTMCHv+PjQ
         O8ww==
X-Gm-Message-State: AOJu0YywuvIkWSDlSPxyAgtVCVVW3ZTXXDDTEVuoHu3I+edYpCgaQjwB
	TfEB2+16VFhoeYxCsMETWGvGB2ETZ+SY/9oXRPjpFK+BKkCMyFv8K2oSM4kwrAsydpHPN4LMyut
	6doL8
X-Gm-Gg: ASbGncs/XXdk9T4d6f+F3cemEnbdeyaP/RmbwWoeB1qLppGAM6IFsbajpq6NRbo7k45
	/AOMWggmH1JGbJhsjq9a2GgxkUYdH9yWZ8NyvOOo634Gt5IR5fnOmf84ttcIVrlI2yYJjEVLPDf
	/qNeMVAFOq5Y8GHBP6rkU7vjMpWOIDeuyw3mlbK0JqldzNDe39Z7fdY9nGKaXsJeEmu1XwCh6lO
	pVZwS2wLme1WL6+L+2qnxht/YWemQpa2R0AAypmMt69fSEOuN7x0pIIkI7pGILwEeFjZvsGFPro
	hyijeRaVrvEq2imI7EjyPaa9HAhHL95a+NTWzpfiEMgHqAAB05dTsxF1bvOqkQa7Vaw9jqTNblu
	ZcsMaVGmBkSHWJwImrya3bl8ojaZBcQ0xkv/xtXZHffs4nFNzkPeMpZI0dFazsSHaS8uCBmnu7b
	mhGC73Cfo1S60=
X-Google-Smtp-Source: AGHT+IEArblKoV1dTLpF45sNMC15Epps/32sqh+48MjSB9xx3/5LvEUT1jIdnKyEunheRp/fdj5mBw==
X-Received: by 2002:a5d:5f56:0:b0:3b8:d337:cc33 with SMTP id ffacd0b85a97d-3c4949fadcfmr2216631f8f.28.1755778014653;
        Thu, 21 Aug 2025 05:06: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>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Michal Orzel <michal.orzel@amd.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH] CI: Use 'watchdog' for x86 hardware
Date: Thu, 21 Aug 2025 13:06:52 +0100
Message-Id: <20250821120652.3910926-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

This detects various hangs and turns them into a crash with backtrace.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Jan Beulich <JBeulich@suse.com>
CC: Marek Marczykowski-GÃ³recki <marmarek@invisiblethingslab.com>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
---
 automation/scripts/qubes-x86-64.sh             | 4 ++--
 automation/scripts/xilinx-smoke-dom0-x86_64.sh | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh
index 2750d24eba17..b49a44c5b1ab 100755
--- a/automation/scripts/qubes-x86-64.sh
+++ b/automation/scripts/qubes-x86-64.sh
@@ -260,14 +260,14 @@ TFTP=/scratch/gitlab-runner/tftp
 CONTROLLER=control@thor.testnet
 
 echo "
-multiboot2 (http)/gitlab-ci/xen $CONSOLE_OPTS loglvl=all guest_loglvl=all dom0_mem=4G console_timestamps=boot $extra_xen_opts
+multiboot2 (http)/gitlab-ci/xen $CONSOLE_OPTS loglvl=all guest_loglvl=all dom0_mem=4G console_timestamps=boot watchdog $extra_xen_opts
 module2 (http)/gitlab-ci/vmlinuz console=hvc0 root=/dev/ram0 earlyprintk=xen
 module2 --nounzip (http)/gitlab-ci/initrd-dom0
 " > $TFTP/grub.cfg
 
 echo "#!ipxe
 
-kernel /gitlab-ci/xen $CONSOLE_OPTS loglvl=all guest_loglvl=all dom0_mem=4G console_timestamps=boot $extra_xen_opts || reboot
+kernel /gitlab-ci/xen $CONSOLE_OPTS loglvl=all guest_loglvl=all dom0_mem=4G console_timestamps=boot watchdog $extra_xen_opts || reboot
 module /gitlab-ci/vmlinuz console=hvc0 root=/dev/ram0 earlyprintk=xen || reboot
 module /gitlab-ci/initrd-dom0 || reboot
 boot
diff --git a/automation/scripts/xilinx-smoke-dom0-x86_64.sh b/automation/scripts/xilinx-smoke-dom0-x86_64.sh
index 6970a8658d5f..0ad8f658e396 100755
--- a/automation/scripts/xilinx-smoke-dom0-x86_64.sh
+++ b/automation/scripts/xilinx-smoke-dom0-x86_64.sh
@@ -15,7 +15,7 @@ WORKDIR="${PWD}"
 TEST="$1"
 PASS_MSG="Test passed: ${TEST}"
 XEN_CMD_DOM0="dom0=pvh dom0_max_vcpus=4 dom0_mem=4G"
-XEN_CMD_XEN="sched=null loglvl=all guest_loglvl=all console_timestamps=boot"
+XEN_CMD_XEN="sched=null loglvl=all guest_loglvl=all console_timestamps=boot watchdog"
 XEN_CMD_EXTRA=""
 DOM0_CMD=""
 DOMU_CMD=""

base-commit: 97f9db488a48d5f7c41681ac3bde7047dcfca899
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 12:21:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 12:21:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088610.1446347 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up4Ig-0007Zo-Fg; Thu, 21 Aug 2025 12:21:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088610.1446347; Thu, 21 Aug 2025 12:21:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up4Ig-0007Zh-Cx; Thu, 21 Aug 2025 12:21:50 +0000
Received: by outflank-mailman (input) for mailman id 1088610;
 Thu, 21 Aug 2025 12:21:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=hypg=3B=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1up4If-0007YE-2S
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 12:21:49 +0000
Received: from fout-b7-smtp.messagingengine.com
 (fout-b7-smtp.messagingengine.com [202.12.124.150])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 670395fd-7e89-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 14:21:46 +0200 (CEST)
Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41])
 by mailfout.stl.internal (Postfix) with ESMTP id 7CB381D0016A;
 Thu, 21 Aug 2025 08:21:44 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-01.internal (MEProxy); Thu, 21 Aug 2025 08:21:44 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 21 Aug 2025 08:21:42 -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>
X-Inumbo-ID: 670395fd-7e89-11f0-a32b-13f23c93f187
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=1755778904;
	 x=1755865304; bh=yxEn3rNxw7LrE+OCiTpE/k3D/n9WtnKN5plChM6WF/Y=; b=
	vbNXoy/5ozF7rlIqKNV8jpHEoFp+85rFke4SvMWzod6pMy3i5jX2DjI3LGeN0Xx+
	qKkh0/FxsW7mWSGl1B4IQMAVCOD8Fm5kNfne3pDtky6awWKJqaVDSQI4UDfMZpwZ
	t2iXh5/MwShAKqI6YonzPL2L7YP/QDBbW+roIXxTBPT9UGnvNJqEpKDYil1cw+ho
	WKeJYmrp41eBXA3p+32btqAjW7EhoO2HCqdML6hJCfz830YlzU8vC6fAbkvZpW33
	o9k4evsyrl4XxqCtV0IQCOAbQQ3vd3dMRkNJbP7Sv61v+IbDRgKBEhZJtsPPt5Rm
	EZJrv0WZ/V93rrtVMPa/3w==
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=
	1755778904; x=1755865304; bh=yxEn3rNxw7LrE+OCiTpE/k3D/n9WtnKN5pl
	ChM6WF/Y=; b=dXqHc1qgJlYWcH4N2404kf6EDNxS9WTNnL8De6XZ0E8RU3Xwyy/
	fEiOcp8zpeer2AMCWQUMtV/AxYgDDXbX4Dta0r9wD0IFb42RjH+Dzoy4TdOE3SrI
	/jNGQNLUsscjavCmqBG/Xp07bp1j3ag7ooo8TS5wHmY/qinKpKNGA/eFoyC2GTMo
	kupFJ0faxt31+veraQRnT5A/GvkTtyOMbFBdVh9OUWJLaDf5PYzXaqG6uwNDOBKq
	4bNE9HAZqWyfYwh/0qDmx7n/6pPcUzYAmMDOA0/3rWPAnbsJF0g9U6KklUvOVmeG
	D+O4GxOGiC5B5Dg3CYsrFSvAa3cKPeBun+Q==
X-ME-Sender: <xms:WA-naHyBagGKPNkff44eMMA8X6qVlBoNy5NiMS-u3xaKF9b6LIGpeg>
    <xme:WA-naM1lQhwWaQK26oryuMB1FQj3LRUpiXKpSFFceKKgThLT1XLLnqAX4_P7ZNx6B
    H7vVZ6dF2uXkg>
X-ME-Received: <xmr:WA-naHz0Zt0M7A7OrEYm54plIT7mTmZiDLFJN8LLN6dg7djow874XuNFGCMfFWT5nP3CuYZraN21BezRpvVhd-mx7IY5pkI66Vo>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgdduieduvdefucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtroertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnheptdetvdfh
    kedutedvleffgeeutdektefhtefhfffhfeetgefhieegledvtddtkedtnecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepjedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtoheprghnughrvgifrdgtohhophgvrhefsegt
    ihhtrhhigidrtghomhdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvg
    hnphhrohhjvggtthdrohhrghdprhgtphhtthhopegrnhhthhhonhihrdhpvghrrghruges
    vhgrthgvshdrthgvtghhpdhrtghpthhtohepjhgsvghulhhitghhsehsuhhsvgdrtghomh
    dprhgtphhtthhopehmihgthhgrlhdrohhriigvlhesrghmugdrtghomhdprhgtphhtthho
    pehrohhgvghrrdhprghusegtihhtrhhigidrtghomhdprhgtphhtthhopehsshhtrggsvg
    hllhhinhhisehkvghrnhgvlhdrohhrgh
X-ME-Proxy: <xmx:WA-naDFVgvYeO6hXQ-2lPPPVKpzbu3InC3fEnK_Z0S5QU-h4UHhYNg>
    <xmx:WA-naKargWcrJqCqAaRW8PUs9efK3u-DwIuRHFvXr4uu5A3zlIIC1Q>
    <xmx:WA-naFCVTzegvMsMVGOCJ_a8fqvwWbplLkc4sEyc47ea9ArOazx3iQ>
    <xmx:WA-naCluMaEsboXnsTP59uqqTZ6tDjjOzhA-UcBQX09FQFE5DG0xrA>
    <xmx:WA-naCO15WYA-XQ5FR20lHj_4rXK8WD2wpSIc5h2c5rd1kvAol4BKtpC>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 21 Aug 2025 14:21:41 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <JBeulich@suse.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] CI: Use 'watchdog' for x86 hardware
Message-ID: <aKcPVSFVxKJJFHrF@mail-itl>
References: <20250821120652.3910926-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="uLEFXAnlDfKbUiRr"
Content-Disposition: inline
In-Reply-To: <20250821120652.3910926-1-andrew.cooper3@citrix.com>


--uLEFXAnlDfKbUiRr
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 21 Aug 2025 14:21:41 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <JBeulich@suse.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] CI: Use 'watchdog' for x86 hardware

On Thu, Aug 21, 2025 at 01:06:52PM +0100, Andrew Cooper wrote:
> This detects various hangs and turns them into a crash with backtrace.
>=20
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Should it also apply to in-QEMU tests?

Anyway:

Reviewed-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.c=
om>

> ---
> CC: Anthony PERARD <anthony.perard@vates.tech>
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.com>
> CC: Michal Orzel <michal.orzel@amd.com>
> CC: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> ---
>  automation/scripts/qubes-x86-64.sh             | 4 ++--
>  automation/scripts/xilinx-smoke-dom0-x86_64.sh | 2 +-
>  2 files changed, 3 insertions(+), 3 deletions(-)
>=20
> diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qube=
s-x86-64.sh
> index 2750d24eba17..b49a44c5b1ab 100755
> --- a/automation/scripts/qubes-x86-64.sh
> +++ b/automation/scripts/qubes-x86-64.sh
> @@ -260,14 +260,14 @@ TFTP=3D/scratch/gitlab-runner/tftp
>  CONTROLLER=3Dcontrol@thor.testnet
> =20
>  echo "
> -multiboot2 (http)/gitlab-ci/xen $CONSOLE_OPTS loglvl=3Dall guest_loglvl=
=3Dall dom0_mem=3D4G console_timestamps=3Dboot $extra_xen_opts
> +multiboot2 (http)/gitlab-ci/xen $CONSOLE_OPTS loglvl=3Dall guest_loglvl=
=3Dall dom0_mem=3D4G console_timestamps=3Dboot watchdog $extra_xen_opts
>  module2 (http)/gitlab-ci/vmlinuz console=3Dhvc0 root=3D/dev/ram0 earlypr=
intk=3Dxen
>  module2 --nounzip (http)/gitlab-ci/initrd-dom0
>  " > $TFTP/grub.cfg
> =20
>  echo "#!ipxe
> =20
> -kernel /gitlab-ci/xen $CONSOLE_OPTS loglvl=3Dall guest_loglvl=3Dall dom0=
_mem=3D4G console_timestamps=3Dboot $extra_xen_opts || reboot
> +kernel /gitlab-ci/xen $CONSOLE_OPTS loglvl=3Dall guest_loglvl=3Dall dom0=
_mem=3D4G console_timestamps=3Dboot watchdog $extra_xen_opts || reboot
>  module /gitlab-ci/vmlinuz console=3Dhvc0 root=3D/dev/ram0 earlyprintk=3D=
xen || reboot
>  module /gitlab-ci/initrd-dom0 || reboot
>  boot
> diff --git a/automation/scripts/xilinx-smoke-dom0-x86_64.sh b/automation/=
scripts/xilinx-smoke-dom0-x86_64.sh
> index 6970a8658d5f..0ad8f658e396 100755
> --- a/automation/scripts/xilinx-smoke-dom0-x86_64.sh
> +++ b/automation/scripts/xilinx-smoke-dom0-x86_64.sh
> @@ -15,7 +15,7 @@ WORKDIR=3D"${PWD}"
>  TEST=3D"$1"
>  PASS_MSG=3D"Test passed: ${TEST}"
>  XEN_CMD_DOM0=3D"dom0=3Dpvh dom0_max_vcpus=3D4 dom0_mem=3D4G"
> -XEN_CMD_XEN=3D"sched=3Dnull loglvl=3Dall guest_loglvl=3Dall console_time=
stamps=3Dboot"
> +XEN_CMD_XEN=3D"sched=3Dnull loglvl=3Dall guest_loglvl=3Dall console_time=
stamps=3Dboot watchdog"
>  XEN_CMD_EXTRA=3D""
>  DOM0_CMD=3D""
>  DOMU_CMD=3D""
>=20
> base-commit: 97f9db488a48d5f7c41681ac3bde7047dcfca899
> --=20
> 2.39.5
>=20

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAminD1UACgkQ24/THMrX
1ywoGAf9GMRQ16p1LrDlhcrg1Wps+y6xjsW8vrOSar9pCd627xyMl2TKNQaDtOI1
oIQiKdb25s1X5jdBJsOLUTpGPtyX4pLCz/lOKokHm6VWCQeKi2+OlM9TFs3EakUX
JiX6sctw8RhHOsn7F8jDiEPTs10tcbYvOHBODpKGo62PUQsY86zsb+AejzfZdjVj
VMri86D500tFgR1KHJwff9qLqLIhAU9z9k7Yv8u/QklAyOZwnR9/AY/xa+u8/HCS
6ovR/Hi7yP5uII2VpwwJtdf3pHZR7LmGQfdivlH4Mf+9YWhOI4WlSmP/Clx5bTXj
hW7M5NkUBCFK1on7xaIOmE0+JnU1hA==
=A5+s
-----END PGP SIGNATURE-----

--uLEFXAnlDfKbUiRr--


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 12:25:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 12:25:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088626.1446356 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up4Ls-000167-2e; Thu, 21 Aug 2025 12:25:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088626.1446356; Thu, 21 Aug 2025 12:25:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up4Lr-000160-WE; Thu, 21 Aug 2025 12:25:08 +0000
Received: by outflank-mailman (input) for mailman id 1088626;
 Thu, 21 Aug 2025 12:25:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=O+vP=3B=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1up4Lr-00014a-0v
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 12:25:07 +0000
Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com
 [2a00:1450:4864:20::436])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id de6ff5fd-7e89-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 14:25:05 +0200 (CEST)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-3b9e41669d6so751759f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 05:25:05 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3c07778939bsm10994365f8f.46.2025.08.21.05.25.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Aug 2025 05:25: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>
X-Inumbo-ID: de6ff5fd-7e89-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755779105; x=1756383905; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=iHpgV8l84GfDrObZ+854z4EHYYT49r7YRN/XIy5sKU8=;
        b=KW8rRES1baeV/FrIDwSpy0OL8dqe5pQrx5Hv6bvJ2Wv9sJBFIfVdbKduHuFTBUAtbc
         3X2kKceS24/shc8qFwsMNT4cbbr/a3fOsPLrr0Q3Pk1lb5nUvA1pYbKavGPI8kjrWjcy
         6hetygXt9CXWuq6cb00d+g/R3WNZLm5xtfDy0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755779105; x=1756383905;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=iHpgV8l84GfDrObZ+854z4EHYYT49r7YRN/XIy5sKU8=;
        b=he+wAKadNptvixjxgNEDatSBuht+/QJn/ODdCb9mjKhlYbz3DWCzys/yKl5yLbod5f
         mTzRh8o94xyGvJxQyzkQbPZ0pNr/7pZaNg+bSV45ldBPBTjon3oqFxgTMCdjcXoB39fh
         KLv9w+DOAZy9D19Evcqk18ZEZFmdnKgfeCQpc+V2HwJz0dsqRDUywIas8fcDF7d1nBTn
         OPsquqja6x/q7k6O5hk17qmg7FD6SJYhktJTh3EJPzYauL0mCnlLUoZYYPtuGpoRjC+J
         XCj8mYhXSHl+PkUhe5pigEBISK7mRJ4s2Xc6Ukva1qnOZfB7PxOEpyyyCwO0ufJMgsYf
         vm/g==
X-Gm-Message-State: AOJu0YxUIBCwwtfx1kSDaG9zy2uuJihLn7OcBSCg/UVkwJJbo/DXsQIt
	bHmn+qJ1lWuVywQVX7OdAY6+InqeHfOamzcwU2B+m3KI/ByHYTzB79aUHUoOeHbxlkY=
X-Gm-Gg: ASbGncufmItfC2ZSUHbZXYCpRvrwwsUL4IG5tXQuq9N3WSqykM+/2+EPRuXA6gTfiZm
	4Lpv8x6CK6AQAgk68l6oXMTavEHv+oysAikXFinXQYpPMpEY6hjCbDfAn6tgDLSY1KQfj9ubnvu
	+Ny8DWT7kQ/niRzBQuzr2B/kRUSgPllhUoeeUjnruednfDdPBkBOnuwO1m1cJv2fjuyJsToXlQI
	/O7JJEyog3vB6+wy0MpKhN01V+8kuYHgW35XAoCjonBbM6fXl5eLAHf9Ib7U+f7OXWxQ9iHB4Zw
	mCWgRmXjT+vNQoRayy61S5KW6maO6XIdOJm9Q3RqotEgjtK0WesHrNwHZU9IaIU93Pl29W4XER+
	x2Umq7kCQMz+TFjRR0ijnP9VhT/wcTvs6FCY7YgAgDPl8jIfWcNltmIJJs+MZux8fQ9KMezPAp4
	oQdPk=
X-Google-Smtp-Source: AGHT+IGx6uaqqKqbWdlecin79VLbug4GmWVn0YcaPPrsIb6bmLfhbipirpbzZaOtr0uiMgWS/AJd1g==
X-Received: by 2002:a05:6000:40df:b0:3b7:6828:5f71 with SMTP id ffacd0b85a97d-3c494ed18eemr1582072f8f.9.1755779104742;
        Thu, 21 Aug 2025 05:25:04 -0700 (PDT)
Message-ID: <f7a0800e-b494-4b58-8f6c-80efd721d0b5@citrix.com>
Date: Thu, 21 Aug 2025 13:25:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] CI: Use 'watchdog' for x86 hardware
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <JBeulich@suse.com>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <20250821120652.3910926-1-andrew.cooper3@citrix.com>
 <aKcPVSFVxKJJFHrF@mail-itl>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <aKcPVSFVxKJJFHrF@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 21/08/2025 1:21 pm, Marek Marczykowski-GÃ³recki wrote:
> On Thu, Aug 21, 2025 at 01:06:52PM +0100, Andrew Cooper wrote:
>> This detects various hangs and turns them into a crash with backtrace.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Should it also apply to in-QEMU tests?

I doubt QEMU can emulate performance counters.Â  I certainly wouldn't
trust an emulation which claims to be able to.

>
> Anyway:
>
> Reviewed-by: Marek Marczykowski-GÃ³recki <marmarek@invisiblethingslab.com>

Thanks.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 12:31:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 12:31:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088640.1446366 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up4RX-0003Di-MR; Thu, 21 Aug 2025 12:30:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088640.1446366; Thu, 21 Aug 2025 12:30: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 1up4RX-0003Db-JF; Thu, 21 Aug 2025 12:30:59 +0000
Received: by outflank-mailman (input) for mailman id 1088640;
 Thu, 21 Aug 2025 12:30:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5Hha=3B=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1up4RV-00031X-VC
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 12:30:57 +0000
Received: from mail-ed1-x535.google.com (mail-ed1-x535.google.com
 [2a00:1450:4864:20::535])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id af503609-7e8a-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 14:30:56 +0200 (CEST)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-61a8c134533so1965468a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 05:30:56 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afded539ebbsm386134466b.111.2025.08.21.05.30.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Aug 2025 05:30:55 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: af503609-7e8a-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755779455; x=1756384255; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=X2zm1c0WhDKUDA/RtUDXmIr5olRl3yU07m4XPIOp/po=;
        b=MWA2iSjepD2Gz8X6TIDhHAGptf1ebKQxJPUnNL6u1I0JkkIe9Xj9nl2kSmo51KHJHb
         lkKIF59i4ixYQ25um9yWIQFXERuzjzRKPqvi4NdpcCBG+Q/z71/vvG7U/G+CvwpUyDs7
         3Xs9xPOAIEo3WJNJLeYzmB7BpEFL0PmE2aKvTCEVe/wnaC7IFyeOxlbGR7IumPBPS8zb
         Ng2/CgWoIz5ewjT9J7hf4DPve6Ag/JlAGvolzrUB87Jv7mN2A/gXrpxqpHM1pWG7nOb0
         0eKzOAHkmxKTGZbMjOKqRCBXTE80mQd2tjrzazPvJ9PcgfA0XbryJD6G1I7JrP0XonSs
         X8ug==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755779455; x=1756384255;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=X2zm1c0WhDKUDA/RtUDXmIr5olRl3yU07m4XPIOp/po=;
        b=CrfeHUVBrAyORni944o8ghzXfS8AWJRAtfUXNfSdUspy/1CNafVQg9g4YS74RxQSgr
         m4CapJhfvnsmrKxK7GD8mg/xuju3zIbpBWVWiYQwODpR2oXP3HjrHbcU/15ZCq/FZxpI
         5585nqeui8RogbOw4lOLDAHglfHLHFNCS1H0bWmuuFnuBkgXagZ0a0ETD1//d2lTjM1a
         uFjvJyq579eZzP1yEj1f9RvGkbTPvVxId8x7TTXiVpOZER14qoZmaz3VmdzaE+RuM5Sr
         BfGqiisbmc9tBrgEalE4ZB56WjycqzyKGXnNwRKuqoknQwXtM7oQ70yoqeC237xv6uNM
         rrCQ==
X-Forwarded-Encrypted: i=1; AJvYcCWtYKsJnCGkxOyG7Ovc/LKhLhbI43JhbpS85HqDvt2qPc1DRKnvt9JHfAHUoBoBlnVuPbF8MZ6Kn3w=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyGcsq4UqdbxPEoPj1gOlPOEAew7tZtmDaenjl51Jhx3ME4VduO
	g+h0iV4VbZdirWQdzBgo/i1zFlb8N4G/r5poOusa6t+1P0TcegUqgsFQoklYD+L+eg==
X-Gm-Gg: ASbGncuRa5zPsVoaHUwupvjqkk2qYWiWDfsG74li2SrQ4hr7L94R8dVowrbydjrVsGX
	uPqbytGfTV/xGStQ3c75YgOis/enmRQCRlu+2H5TF4FQmjZBv3sXKaCLcewbNLMHYyTD4ZRa/x2
	loRe134aWtlB43rojvA6kQqMR0jhLRN8tX9SRHV/NFVZ47mEln4sc5nMVvqy1+oCaFoSxvkJXND
	oYCPaLTAcJWZJ2H7jwl2CoJy0hKuOQKxQx/0gwH4w6LZbseQfsxxW4U2V9YFLCKG04fQFxwLfK3
	5EOVqVhHUDKjxrXq6tzSsCJ5R2XaxU5rw9iTRbopspVT91B7p02AKPMDe1GCcWEsS4rtwWz3F8v
	UlVwZVnj5pZSPbW5zVw/pDqKbmM6p+ZlLhOBVZpnmW6UBo3fRhodQfVyysgWTEqzfzfDhgGLyaq
	EamRFD0Er6LX56KoEfCg==
X-Google-Smtp-Source: AGHT+IGtyWtAvTOJOVxYadEsrW33Dxqc6eLTfDV2pJbLyKbrWRarcGcJwVDombrHf2Z2lmCthCjpSg==
X-Received: by 2002:a17:906:f5a5:b0:ae0:e065:ddfb with SMTP id a640c23a62f3a-afe07a08b0fmr239082466b.18.1755779455589;
        Thu, 21 Aug 2025 05:30:55 -0700 (PDT)
Message-ID: <267bd33a-70d4-417f-b26f-32de863f1d2d@suse.com>
Date: Thu, 21 Aug 2025 14:30:53 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] iommu/ipmmu-vmsa: Fix build with HAS_PCI=n
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <5ecb3da69ba1581971197388c6b9062b46900cff.1755775255.git.mykyta_poturai@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <5ecb3da69ba1581971197388c6b9062b46900cff.1755775255.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.08.2025 13:23, Mykyta Poturai wrote:
> With PCI disabled the build fails due to undefined struct
> pci_host_bridge.
> 
> Add ifdef guard to pci-host-rcar4.h to not require the stuct being
> defined when PCI support is disabled. All call sites are already covered
> by HAS_PCI check, so no dummy implementations are needed.
> 
> Also move includes under the header guard to not break MISRA rules.
> 
> Reported-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>

Along with the Reported-by I thought a Fixes: tag would go without saying.
Can likely be added while committing.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 12:34:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 12:34:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088649.1446376 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up4Ut-0005ih-49; Thu, 21 Aug 2025 12:34:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088649.1446376; Thu, 21 Aug 2025 12:34: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 1up4Ut-0005ia-1F; Thu, 21 Aug 2025 12:34:27 +0000
Received: by outflank-mailman (input) for mailman id 1088649;
 Thu, 21 Aug 2025 12:34:25 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=svlv=3B=bp.renesas.com=biju.das.jz@srs-se1.protection.inumbo.net>)
 id 1up4Ur-0005iU-DX
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 12:34:25 +0000
Received: from OS0P286CU011.outbound.protection.outlook.com
 (mail-japanwestazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c406::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 283dc07a-7e8b-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 14:34:20 +0200 (CEST)
Received: from TY3PR01MB11346.jpnprd01.prod.outlook.com (2603:1096:400:3d0::7)
 by TY4PR01MB15518.jpnprd01.prod.outlook.com (2603:1096:405:272::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.13; Thu, 21 Aug
 2025 12:34:14 +0000
Received: from TY3PR01MB11346.jpnprd01.prod.outlook.com
 ([fe80::86ef:ca98:234d:60e1]) by TY3PR01MB11346.jpnprd01.prod.outlook.com
 ([fe80::86ef:ca98:234d:60e1%7]) with mapi id 15.20.9052.013; Thu, 21 Aug 2025
 12:34: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>
X-Inumbo-ID: 283dc07a-7e8b-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=STJto9blANpb2zUt4SEzb00tOkrDZ1BXLoTIVQ4ca8fJU4jgPr4gO4BXkom4FnL3V1wCSBsDi1OjaiOtihfmBSZYSBqvkS8qi+u1r4iFmPEfBafCF0xxBkA+kPCNkKR0jwqICHeh70wo98cVpo6jIgxCSUYrkv+MMTl1+UI4FWjEgq3ixBbkCVmToHlG3DVvvrA12BjOlhbIbccz5R12r3Al80DKwN+xKteUAvgkVwCEHycPSzGvkASFeWW7EhdPNQnhKFC7KnEaVFwvZHn50m4ujWTSyGu9OLkYwssGbQYP53oD8qcdMJQJX6NePbG6kiRnAZHorIWoKNJyCy2bfQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+uwQkN8EY2x64KSncDN4LHHADme5IdWFatLYHbW8sHA=;
 b=OLrZTf+p2CPlaGjbQUlSPGP1FKlan0tRU2RV091zd4umF9q8n4zEUgXpC9p2So3dY/gZVSMO41cxYgIBQFCwKg+ITV+me+FDcX7n72BE8FY/tPB1eZxjtTUh853SyUicFC2p8Ecv3cLLmdHhylerYdOyyP4zubJCf654JS1L4BwDIHDuVGOglqxeuuqOXYCqEf1VK9SFzT70Z7+DrJIb0XbO5MqaQTDMKEWglPY7nclqdMhia8kVPpgi9raE9oiWv5GXNNvkxf4Ml94Wwd8ufFXCkqBtyWFF7kbtFf7W8WBuGfayXY5XRAjrMoX0rMgPk7Mm2GRvDIs2T9YY8UK3Fg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=bp.renesas.com; dmarc=pass action=none
 header.from=bp.renesas.com; dkim=pass header.d=bp.renesas.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bp.renesas.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=+uwQkN8EY2x64KSncDN4LHHADme5IdWFatLYHbW8sHA=;
 b=Ql6+yB/gEhJH/7Im1GVsdcqRoAUjWZ+0m50ApzitDHpnJNndiqcoGBdrYlvVvM1IKRN3JIbrKa6hWx+vQqBkmdsK04kpr391asg9lVzPijDYvNQDTtDfbQJy9PYPwJl16FwjYIqSMU8/U7H+ubajrmIonIziXD+/qhQOcxHzrEQ=
From: Biju Das <biju.das.jz@bp.renesas.com>
To: Thomas Zimmermann <tzimmermann@suse.de>, "simona@ffwll.ch"
	<simona@ffwll.ch>, "airlied@gmail.com" <airlied@gmail.com>,
	"mripard@kernel.org" <mripard@kernel.org>,
	"maarten.lankhorst@linux.intel.com" <maarten.lankhorst@linux.intel.com>,
	geert <geert@linux-m68k.org>, tomi.valkeinen
	<tomi.valkeinen@ideasonboard.com>
CC: "dri-devel@lists.freedesktop.org" <dri-devel@lists.freedesktop.org>,
	"linux-mediatek@lists.infradead.org" <linux-mediatek@lists.infradead.org>,
	"freedreno@lists.freedesktop.org" <freedreno@lists.freedesktop.org>,
	"linux-arm-msm@vger.kernel.org" <linux-arm-msm@vger.kernel.org>,
	"imx@lists.linux.dev" <imx@lists.linux.dev>,
	"linux-samsung-soc@vger.kernel.org" <linux-samsung-soc@vger.kernel.org>,
	"nouveau@lists.freedesktop.org" <nouveau@lists.freedesktop.org>,
	"virtualization@lists.linux.dev" <virtualization@lists.linux.dev>,
	"spice-devel@lists.freedesktop.org" <spice-devel@lists.freedesktop.org>,
	"linux-renesas-soc@vger.kernel.org" <linux-renesas-soc@vger.kernel.org>,
	"linux-rockchip@lists.infradead.org" <linux-rockchip@lists.infradead.org>,
	"linux-tegra@vger.kernel.org" <linux-tegra@vger.kernel.org>,
	"intel-xe@lists.freedesktop.org" <intel-xe@lists.freedesktop.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v6 18/25] drm/renesas/rz-du: Compute dumb-buffer sizes
 with drm_mode_size_dumb()
Thread-Topic: [PATCH v6 18/25] drm/renesas/rz-du: Compute dumb-buffer sizes
 with drm_mode_size_dumb()
Thread-Index: AQHcEnS9RPzKheS8DUq4xJ6ExVmpC7Rs+CdAgAAIDYCAAAp/AA==
Date: Thu, 21 Aug 2025 12:34:14 +0000
Message-ID:
 <TY3PR01MB113464DACE314621FDF1BCECF8632A@TY3PR01MB11346.jpnprd01.prod.outlook.com>
References: <20250821081918.79786-1-tzimmermann@suse.de>
 <20250821081918.79786-19-tzimmermann@suse.de>
 <TY3PR01MB11346A4F40CE555D24C093F278632A@TY3PR01MB11346.jpnprd01.prod.outlook.com>
 <7918ea7e-8914-4c0f-97be-d660043a4aab@suse.de>
In-Reply-To: <7918ea7e-8914-4c0f-97be-d660043a4aab@suse.de>
Accept-Language: en-GB, 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=bp.renesas.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: TY3PR01MB11346:EE_|TY4PR01MB15518:EE_
x-ms-office365-filtering-correlation-id: 46f772d9-b98a-407e-fe32-08dde0af09ea
x-ld-processed: 53d82571-da19-47e4-9cb4-625a166a4a2a,ExtAddr
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|7416014|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?NFBzVGdNc0VjTnMwd1hzbEFuak9hSytLSjdsazdSdVNzd1B6c1N3YVZoZGhv?=
 =?utf-8?B?RXB5VFJMUVFJT2lEMSs5OStOZzVqQzZKMjRZOG1IR1I2VEpvRmsxWE5yeE1O?=
 =?utf-8?B?dHlmeXgvdFI5aG1PU1o0ZXFkWEtCVXJoSkw0MVZ5WC9BZXhUNWV5dldaUmZL?=
 =?utf-8?B?RExSVzhvTklLbk9NWUJxOG5OMUdabG92b3lsQUFCR0tFa2RDditGWXhkQmxK?=
 =?utf-8?B?a1Q5YUkvQ0ozbVErNFcySy9YWjE3alc2VzdWOXU3K0g0eFBWbXU0TTJuZDhz?=
 =?utf-8?B?TUpmM2VpUGdsUnZsUXNxY1hUUDhGZ1JHUjRNUjE2SnlEbkp4b0gyZkx2OE9a?=
 =?utf-8?B?Rndhd29VMDQvZGVQRjlFbitYSHdWcVM4Y3htRzE1NkJWZUkrbWtOdjNqWXBa?=
 =?utf-8?B?QS9vMXlpUmdiam1lRGhqRHpJZlp5M09RY2tLMXZwd1NkTFQ5YVpVdGpDZTFO?=
 =?utf-8?B?OWNjVkE5TEYwaUlPaUlQWWhVem5KOFV5amVBa2NSdnljY3pSVnUxODlFTHpW?=
 =?utf-8?B?bFJKTWt4bUI2RHA1NGJjMC9UR3llc3YvdVE4cUdCRkt6c1JVelpzenU4cnBT?=
 =?utf-8?B?VXlUYzM5cE1GKzJrUHpLYVBYSXQ5dE1nSHRrbFY2N1liZ3hEV3E2UmtsU2I2?=
 =?utf-8?B?Y1BCd3JqOGpEeWlvMlVWbi9rWU1iYldyZU52dUhXYTJKWWJJbTRyRUhvbDRM?=
 =?utf-8?B?Ui9RTXIwRWJJZlhEQUJhMER5d3dISlNVdFg4TnVNa3NYYnpOdm9zeE91MDNS?=
 =?utf-8?B?dkVMZmhEdTJLbWFNTWZOQW5VVnRTbmZab2YydUhyMDJqakg4VnE2b0VhQnNo?=
 =?utf-8?B?WnNBZW5kNkZPRjhIc3FvdjArMm44czRnUFlmaitlMlJSVVE0eThxMmhkRmk2?=
 =?utf-8?B?S2tMZ3haUlBPaFA0UWZOWmp4SmIyK0RWRHZ5Mmloc1dreFBXdXhkdStDcEVy?=
 =?utf-8?B?NElIVEtIRmx5amxlQ0d1WmJiRDFURFB3RlJOc2JHZTNscTJsZVpGa1dRaDlo?=
 =?utf-8?B?bWxxU2xQZis2anllMVZIUG5VM1F1aXZvbHZNZlZCcUdlNWRzZVFkcDhYTHlj?=
 =?utf-8?B?UlhyWGR1WnZTd1V6YVliNU9RTVdjN0FFdlFDM014WWxiT05MV0RwcWZTb0M0?=
 =?utf-8?B?eVlNMC9QLzFYYVEzckxuV0xyV1dnd2pjUTEwdThLenM3V2xRcThzRzUvWUpk?=
 =?utf-8?B?ZzhpRm1wWTRjZXM1c3gyZTl1NlQybTh4VWdwV0t3SGxYWTVXQ1k0N0pGVlVw?=
 =?utf-8?B?TUNyR1E4SnFNM0F5N25RaEovOWMvWjRFbXZRaWhlOUZmd2E1aDZCYit3S0ln?=
 =?utf-8?B?N3h2Yk9iZndYaHVMb2Z5THNITTJtOEhuMWlnOEM4Qk83NUpWQThERlhLSzZ2?=
 =?utf-8?B?RkJrMGZRcUdaYU9XaTFQNG1aZmhZTHBDRlVUbDF5c0JHMzVBSlFDRnEvYkZ1?=
 =?utf-8?B?dTlMLzdmVi96bnNyWXJJQ2FpcWNLUWxnWTZGSExNYUt6bHVwdGlVdUNMQllr?=
 =?utf-8?B?OElsZUJhZkJHRjVkaFdETlIzWmw4Zm9MRzZUTTlGSmJkQ05XaC8vUGJKZVJT?=
 =?utf-8?B?VzZzb01DVWZRYlNyaGFNOXMyWlpRK0l2MWxieUxVSnprM25RUFA0NlBTUlo1?=
 =?utf-8?B?NkplRHFTYndoR3lZZjYwYlRYdVlUREZzZ1VtZnRIZmRsdlpIYkF5R0ZyazU3?=
 =?utf-8?B?Wi9Za1NJS3pwZTlVcHhIbzQ4aTdzWDMxS0h2Mm9RSVBaZzNwcjhmVWZiZm1i?=
 =?utf-8?B?NHUzZ280a2QvcnBQaXR3Snk3eEVTWndVVFRJdkMreDJwRm9BY1E2ekZYWG1m?=
 =?utf-8?B?NnlleFFsMzU3ajlrUjN2RVlsSVVkNDF6cVZXcG1PV29WVDVHSmp2WE9lRVZ5?=
 =?utf-8?B?UUczYnJtWVRmZUxsSTJybVBnNm9YeGZTdVB6aTNCd2g3N0Z3WEpsYWcvY2Zy?=
 =?utf-8?B?WGUxQlVxc2pxVFpNeTZvc2p5T2piRGZzd0t1MHRVT2VzWWQ1b0Vpb2dXaUJL?=
 =?utf-8?B?N1B2Vzc2KzZ3PT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY3PR01MB11346.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?akloL0RPcytxQTlZTFR6RkU2VGltRjdwamNJNW0ybGcvWmJldFFuQkwrL3Fx?=
 =?utf-8?B?TmR5WmVQOHBianFsMi8wQVJjMkdpb2VWblhGYUdsNzFDNnkvS0xlSjhlalBL?=
 =?utf-8?B?UGJTZUZJZlpEcDNRalh4MFk4bUtLN3l2SDZUY20xak1peWZFbmtLbGJ2bWQ2?=
 =?utf-8?B?cFQ3ZWRoUU12WjFwalhRVjY2TjQ0ZHdDRWFPdXhFalp5LzJnblFJZlZidTdS?=
 =?utf-8?B?VVRwYUVhMlJJVWcxbFdKWEQ3MUd1dTJ2YzRwclF6RWUwNzZqTGY5M0s3bnNr?=
 =?utf-8?B?bmFjdi9iRVBtd3VPWXE5a01XdGQrQkxSWlNOWEVvZ2l2ZjJGUHB1MmJtbCtH?=
 =?utf-8?B?RzZPOC9Bc2k4a2ZuZFI5RjVXWnA5eXdtZ1RsTkdBVDgrMFp0aFRQOVBreGRo?=
 =?utf-8?B?ZDJ5aG9UcFoyNGJGaWJwNW92ZktEdTAzZnN6YzVtTU43bzA5b2xhdThlN1Bj?=
 =?utf-8?B?L2o0RW5hcEU4alg1MTU5YkpZWU5odVcwVDJFZHFaM2FnOWw5QjZFbHEyVVp1?=
 =?utf-8?B?S3RmaHJodTMyREhqeGd4b09lYjMzK29JaHpFRjFIVU10TkpIQm5lK2ljL0d2?=
 =?utf-8?B?b3YzQnFlTmhtYXBpZ01wZFI5Q0VFdWpaNHltZ3FjRjhLYk5oSGpzMEovdjNq?=
 =?utf-8?B?YTk4SnZidk9qNDNRQkY3dW9tOVYrV1cxcGx3VlFlTmowOVJaTGR3V0Y2dUFp?=
 =?utf-8?B?WFVPNmU0TWxWSFZCbW1SRmQ3bTdaU2tuYlh4dWhqZWdNTkhMcVZpVXN1OXB0?=
 =?utf-8?B?YjNQaVBKMzRHT2d0eDMvcnVldmkwZDdzNnZnTEpGbnFTbXVHamRrZjRaOW8x?=
 =?utf-8?B?RkNWc2grbm5WKzNoQjgveHF0VFdHSU9rTGF1VlBNYkluSFQ5eXR4cXRNbkZJ?=
 =?utf-8?B?VW0rZ1k3TXdua0d1VXhJRWJ3aFVVYktaQ3ZxVnpYMGJhSHJySzdjRUN4WUlC?=
 =?utf-8?B?aDJVVWF0d1ZMeXdydlErNVBaVWYrdHh3Q09rMWljTGNSbGR5SUZTYTVPN3R3?=
 =?utf-8?B?ZmRWa0xyZGJDNlAvai96Tm1GS1E0YzExWmlJeXQwSEhuM3VlZkVONnhTOE9a?=
 =?utf-8?B?TXZjRFEza0hQNVZlMm80bFozblVsMm1zR1JXcUNrMEkvcUpNWndxcFMvdDFS?=
 =?utf-8?B?REt5UDV5VTNMTDdaWDBjak9ZeFBUc1VIaWhMSTEwVENSVHE0MEZRYUt6ZjVI?=
 =?utf-8?B?aUU2dklUcGZ5Vmp1L3YzSk1ZMlFtcGZkVU1zYWFGci96YVlLSFJUdUJTam5k?=
 =?utf-8?B?MURNYjVJVCtZY2N4M2V5NVpzVUtCeXhCeDVOTVd3MEJBMUJ4ZnFEMUsrT2Rl?=
 =?utf-8?B?ajZnZlc2RE5SZncrTzBnV21SMHUzcUE4c3lJQmVKemhRNjk4SlJOWDZZN3A0?=
 =?utf-8?B?WEpmWTRGeUdXK25KMnB2bzl6VVBySWdEMk5pUGRCUUhHREo0bnNoYlgrUHpv?=
 =?utf-8?B?THNRUkxWeFJzQXJiOE1vRUcwMUNYdUcydDFzNjZydVRpamJuUUNDUGkzNVhq?=
 =?utf-8?B?VlFrM2lqOFVFU296YjllK3BrcUtNUDAxa1B2ODBwYlZ2dEJEUjVRWVd1eitG?=
 =?utf-8?B?emdWZEUzbUJ5WGhGZEpIbnROdWhvYUhnQUxkQ2QvSVVaMUpaMGZjeEthcGdv?=
 =?utf-8?B?YUxpM1ErelBrQkk2eHdzNTlGWGx2K3hHTVVxd1NxNTgzalVBcTNGSGJmeHdl?=
 =?utf-8?B?c1FlWitjb1dxY3Z5VjN2SXgrV0lFbUlQU2NzL2hEZExZZHE1Kzk4VmQ1b09o?=
 =?utf-8?B?SjF6UWJ1dVU3NFA4dzM4Qk5JOWQ4YnAwTVZvQjBtNWdZMTdHcDBvTWQwemVY?=
 =?utf-8?B?cVI0Y1ptVlJvQVFkUTVpbGdNNGhtbDNBNEx2aW5BQW9HWlljNzFjU0RsRUtG?=
 =?utf-8?B?ajh5a3RMcG1hNG10Q1ZtK0xwNS8rS1RzSWttbEJOOUptNk9RNXNrb0FOSVdM?=
 =?utf-8?B?TTU0NkdaVnE1MEp1SGRSaWlLUUc4aks5SVNLalhaUkJLaGdEZEoxcGVqbWts?=
 =?utf-8?B?cjZKcC9KSVVLc1FoTnNCU3Vka1hCR1VNM0dwYUZNTlkwdjFtakJ1OFRnUm9X?=
 =?utf-8?B?SEJYQVY1TmsrRmpyS0lhTFkvaWFpbDkyQndaU0RxYklNWlY4YXppNVJaQXM2?=
 =?utf-8?B?ZEJXVC9JQzNTaDNibmZZemlCaUN2WWN0UFpQWkpJWTY3T3UrYURSdUJURUlL?=
 =?utf-8?B?ZGc9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: bp.renesas.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: TY3PR01MB11346.jpnprd01.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 46f772d9-b98a-407e-fe32-08dde0af09ea
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Aug 2025 12:34:14.6684
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 53d82571-da19-47e4-9cb4-625a166a4a2a
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: S3p5zy4tFrWLWNGLwHjTD2CfJSSxCYOJtTKv/OPtuSpu9OGrTBCK/W1llSn5EipwI2SZuaKxY9nPGHTpmkHnUhyGVpOVY/9yzxgiI4pbfL0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY4PR01MB15518

SGkgVGhvbWFzLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFRob21h
cyBaaW1tZXJtYW5uIDx0emltbWVybWFubkBzdXNlLmRlPg0KPiBTZW50OiAyMSBBdWd1c3QgMjAy
NSAxMjo1Ng0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHY2IDE4LzI1XSBkcm0vcmVuZXNhcy9yei1k
dTogQ29tcHV0ZSBkdW1iLWJ1ZmZlciBzaXplcyB3aXRoIGRybV9tb2RlX3NpemVfZHVtYigpDQo+
IA0KPiBIaQ0KPiANCj4gQW0gMjEuMDguMjUgdW0gMTM6Mjggc2NocmllYiBCaWp1IERhczoNCj4g
PiBIaSBUaG9tYXMgWmltbWVybWFubiwNCj4gPg0KPiA+IFRoYW5rcyBmb3IgdGhlIHBhdGNoLg0K
PiA+DQo+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+IEZyb206IFRob21hcyBa
aW1tZXJtYW5uIDx0emltbWVybWFubkBzdXNlLmRlPg0KPiA+PiBTZW50OiAyMSBBdWd1c3QgMjAy
NSAwOToxNw0KPiA+PiBTdWJqZWN0OiBbUEFUQ0ggdjYgMTgvMjVdIGRybS9yZW5lc2FzL3J6LWR1
OiBDb21wdXRlIGR1bWItYnVmZmVyDQo+ID4+IHNpemVzIHdpdGggZHJtX21vZGVfc2l6ZV9kdW1i
KCkNCj4gPj4NCj4gPj4gQ2FsbCBkcm1fbW9kZV9zaXplX2R1bWIoKSB0byBjb21wdXRlIGR1bWIt
YnVmZmVyIHNjYW5saW5lIHBpdGNoIGFuZA0KPiA+PiBidWZmZXIgc2l6ZS4gQWxpZ24gdGhlIHBp
dGNoIGFjY29yZGluZyB0byBoYXJkd2FyZSByZXF1aXJlbWVudHMuDQo+ID4+DQo+ID4+IHY1Og0K
PiA+PiAtIGluY2x1ZGUgZHVtYi1idWZmZXJzIGhlYWRlciBmb3IgZHJtX21vZGVfc2l6ZV9kdW1i
KCkgKGtlcm5lbCB0ZXN0DQo+ID4+IHJvYm90KQ0KPiA+Pg0KPiA+PiBTaWduZWQtb2ZmLWJ5OiBU
aG9tYXMgWmltbWVybWFubiA8dHppbW1lcm1hbm5Ac3VzZS5kZT4NCj4gPj4gQ2M6IEJpanUgRGFz
IDxiaWp1LmRhcy5qekBicC5yZW5lc2FzLmNvbT4NCj4gPiBUZXN0ZWQtYnk6IEJpanUgRGFzIDxi
aWp1LmRhcy5qekBicC5yZW5lc2FzLmNvbT4NCj4gDQo+IFRoYW5rcyBmb3IgdGVzdGluZy4gQ291
bGQgeW91IGFsc28gcmV2aWV3IHRoZSBwYXRjaCwgcGxlYXNlPw0KDQpTdXJlLCB3aWxsIGRvLg0K
DQpDaGVlcnMsDQpCaWp1DQo=


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 13:09:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 13:09:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088670.1446411 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up52s-0007Fh-WF; Thu, 21 Aug 2025 13:09:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088670.1446411; Thu, 21 Aug 2025 13:09:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up52s-0007Fa-SJ; Thu, 21 Aug 2025 13:09:34 +0000
Received: by outflank-mailman (input) for mailman id 1088670;
 Thu, 21 Aug 2025 13:09:33 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=m+ul=3B=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1up52r-0007FU-KV
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 13:09:33 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 14378f12-7e90-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 15:09:32 +0200 (CEST)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by DB9PR03MB8799.eurprd03.prod.outlook.com
 (2603:10a6:10:3c4::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Thu, 21 Aug
 2025 13:09: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%4]) with mapi id 15.20.9052.014; Thu, 21 Aug 2025
 13:09: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>
X-Inumbo-ID: 14378f12-7e90-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=IPEO0lPyZmF7Z0ES2fihZ/TqlozBZkZl5TjK/BlHcjU8fxAFQjEsA/G+WfMKtNvnzP92w1vTJ+nZypLd0nhjyqfZ1w5EIPCgkL9YMT7hEuf4DT/sjMUKpDi3jFiyxbNGBFtEYr4gIcnSf3gflFvwNIU/2WvyyxJABYXrUzM1kXnb0vPHOr0vu9qW7mqp9AaXXjFKm87OhvGzxoBMf82ZwA+lX0OIjlt3eQ3cXoqE7NR1FESnMWCq7qKwqY7qreKLcDp5mDu/1QJq9Bo/KXh8vmxpmXvsvYDT88jZ8v6mPEvAsLjXnV8jczYmEMfwtpskxvPvroZJv6QNqDHVvqsmYg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=AD2V5cMbk2gvlu7Wf4VjpePQ/aX+IIavPijQQGOzWvc=;
 b=bFxkFvY0ylhRZhvJ3Lo5ZRa+RBFBPqzIqpnPtq/x5jX2tRObxITifxd87IjieYgyBdsd3I+wakDx/csoioSE+P8Dve3fE41+nIMCbS+SUznsHmQmQFkO/7Sck7MGq04U0mztofGKG0tXOFdCpQoLMG6mwxCVfgGlFvjoPbXLmszO71j3i/Umor6W85atQN1TkSs/Sw7gdBrCggDBiT9LwGZ7mE7PoiLMZlbuOy9Wl1ChkTtUUc3JGg4PAShg4i8v4sHwaH8Qep5ZjvJsyQym/6OXbzezhX/Sz8RjaomeEIf8QdfbR3ndsMQqJQ7VKgtUBMKUlqtsQpslRE8AjxP7IQ==
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=AD2V5cMbk2gvlu7Wf4VjpePQ/aX+IIavPijQQGOzWvc=;
 b=Acyy/uCr2L3hkZ6/h5XXV91M+QJXhAPRSanvymJ6MwsuHTwVPRaRzi+UNwF5op+23zhyoC/aSeHulMC1gVuCvqe/9fwRdu1GsF5piLcQ1yEZUQXZEXrHZSEeiZX98iaxcmaikk0vHsX1GCXLtULhrFt8WSDS4CGEedpIIqWbtqYkhaEuMBs0NGLeSb9THSqQfc9AlgwOHnUgH07ichlNyUXgGFFur7bSjOlrPLRsIUJk80mC9U84Sc2TZHvVhYceawHjDsDX0hix5XJJ63o0YWHwFZH+vPmUzkfW7gsuWppALYWFYKFesTXI0pcE5YppZbfBUSvhVDF498JM1gu2og==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: Mykola Kvach <xakep.amatop@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>
Subject: Re: [PATCH v1] iommu/ipmmu-vmsa: Fix build with HAS_PCI=n
Thread-Topic: [PATCH v1] iommu/ipmmu-vmsa: Fix build with HAS_PCI=n
Thread-Index: AQHcEol6WY2CZ9Gyh0KXEcdKpt6HNrRtAhqAgAASeQA=
Date: Thu, 21 Aug 2025 13:09:29 +0000
Message-ID: <4e658c8d-3cac-481b-a153-2a8189550a13@epam.com>
References:
 <f6a8095483ba54e1eabeca5e4b08138312fa822b.1755773176.git.mykyta_poturai@epam.com>
 <CAGeoDV8UBv9g3x_AunwoyZg5eQDWNkCHoXNz2_tJKrJYWeYAWg@mail.gmail.com>
In-Reply-To:
 <CAGeoDV8UBv9g3x_AunwoyZg5eQDWNkCHoXNz2_tJKrJYWeYAWg@mail.gmail.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_|DB9PR03MB8799:EE_
x-ms-office365-filtering-correlation-id: 520e9838-922b-4d02-a577-08dde0b3f685
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?dHk4QnB5NkRrMmVmRlpQN0RBWmlDS2NETGNWS3FZUHg0OTN3c1NSWXFOanhT?=
 =?utf-8?B?WW9PcVBWSjhJWUZ4c2QrSlIrdlJobTZjTE56TmM2NEFMb1NZbnFkK01PWlIx?=
 =?utf-8?B?emFyYTBSUzhRS3pWUjQ3T21JWlpjeEJpdSthMlZRQkhPVHJVTDVSOTUvVitu?=
 =?utf-8?B?WFUvUitRUldjVk9iMDFhcmdFd3I5ekR5cmlERW5UaDNHMy9HM201ZXZpa3U5?=
 =?utf-8?B?ckxQZzMyTnpvbXNFcGpKT1V2a1ZuR1Q2SWo3dmtLWnJ5NDhQdGQ3VFF6bjM1?=
 =?utf-8?B?VmdHWHBZYzc4SUZpcTc5eU1uSnJ0UjloSklFQU9hOGFSQnlhdE1MNlVzdWRS?=
 =?utf-8?B?RW9vb29WMjZxWFo4VEl5eTFqS2pKRlJXL1FCZ2RXZmk4VFduOVhiN3AvM3NX?=
 =?utf-8?B?bWlXTEp6TGNHRkpkV3l0WnQzZEs4MFdMNUMwcGhWK0ovZGROb2U5d011Q3VO?=
 =?utf-8?B?VWlna0dNcHcvd3lSOTI0WnV4V3l3TmJOcXZaTkh5RFFNbnF1Wmo3clNObXRQ?=
 =?utf-8?B?Tjc0WktZNHFSZjhRa1VKdUNsOWpKYnVDaW9Ga3RpNWw1MVBNdlBGQlg1WU5F?=
 =?utf-8?B?SkZqTnF6REcyQlduQmNJaWs1bFd4aHVnMEIrMm9waisrZUY5OEpHaC9UczBs?=
 =?utf-8?B?UXk4YjdsWmhsdjQzdXBub3RYbXNjQmNpMjR1Zzlpbzg4OUFwczZ3WUdOcjdI?=
 =?utf-8?B?OVNGNFFsRzVtZGt2dmVCSVJIOHZNcHRhZ1ZHb0thZmt2Q0paWHlTOWpjNy84?=
 =?utf-8?B?aEZIc1libEFVRG5HeUhUWnNUY3hFUGJxM0tzR3hGUVorUm55OUlwdW02WVRa?=
 =?utf-8?B?S0NwVEExMU5VOFNMWG9rcElkamdXeFgrbzZxclhYejBxbysrOFZ0QnpFdFZG?=
 =?utf-8?B?T3Q3VkwxUGZvRUs2NktqSDRWZThFRG9aNHd2UHZHODZhbzFzbm4vNDlKS0Nm?=
 =?utf-8?B?aHVvKysvRWMxOUZJa1U3QmxMNm1QdU1CQVVnMjR4dlB1MUhMWVRRT2ZtV05S?=
 =?utf-8?B?OExlWkNid3JyM0dnb3FieEpJOHpwV0lUanVWTHhPSmRBNUhmMEIzQjY0YWYz?=
 =?utf-8?B?MHlCbjZBZDI2bkRmSFUrNmN3ZFBrRDZ3M005SGo0Q04zV3MwNFdUWjR3c0o3?=
 =?utf-8?B?ZGhSRXVNUERGNDlCZlBHNFIyTW1GKzcwTDNDWnZkdzc5akViN3pLN0RxU01F?=
 =?utf-8?B?dEkzU2h4VkJoZHFBVVRSZkdXSXRxNDM0WUhWM2JJRXRUc0xZdENtU3Z1K1Fy?=
 =?utf-8?B?RW5LY0VWTW9rUGtwVlByRzVQcUdWeGRDKy8zZEFMNlE0ODRMSGVqQzFVSWFL?=
 =?utf-8?B?Y3dvOTduRzZjdDhKYW00VHR1NmczVTRuR0JyNnFINU9qZTFWaWJmSUttblU1?=
 =?utf-8?B?dGlydEFrd09WR0U5VFU1SnhFYUJqN3lkaGlXRUlha0g4dGpuOUFFc1NhNDhK?=
 =?utf-8?B?TmVlbjBJSDUzOC9qZEIvSzVUOXdTV2NPbTFyR0JqelF0eU1qNjdTKzdvWWUx?=
 =?utf-8?B?Wm1sd0ZjNFg4QkNlYVdacWRpMVQxdFVkVXhYMHNCaFdVNThBa1ZKbXZkcVpO?=
 =?utf-8?B?R00xVE5kUGVXN0Y3ckd0UjVXRWFEOE13Q2YxVTRNZnRwamk1WUh4d25OUzFK?=
 =?utf-8?B?ek9Ea0VVYmlYMzVWV0xHb0c0QU9hQm1pL0x5dnpmdzI1SUM3YUZ2R052OURa?=
 =?utf-8?B?TXVkZ2srSnlJYk1FV1JXbnVQR3FnalYxT3F3c0VBYldrMHU2eElYWXpDZ2lI?=
 =?utf-8?B?cm44QUxLMzNhRXpvNHREY2VxR3dMMDQwS2NneWJRSTVnRDVLTW1iNXBuQ2Z5?=
 =?utf-8?B?c1JYU05hbTJ4cXBOVHlxeW43SldEZFJkMmxTR1dDOWc1aHlTdy9UbEpWem9s?=
 =?utf-8?B?Rk1QVnVMUk9aZkcwS0pkb3BRVjlPTzBvNEQyV012V1pEaGZhSDFwYVBReTBG?=
 =?utf-8?B?OTRjTHpwRGhmNzZtNWgrK3dNYUt2MHB3Uy9sR0Z3UE5CbWt1U2EveHE4MmFO?=
 =?utf-8?B?SzVjV2Q1LzhBPT0=?=
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)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?QnMxZWlsclFxRU1rZjZZQU5wam9nZGFLdlN2QWdDRmkxOTg5Uk5NcWFyZzBD?=
 =?utf-8?B?NStrT3k5cE1CQ2RLTzIrMzJhZzI2QzlSUkdNbG9IYitQQ0hUQ2lOU29Tb1Z6?=
 =?utf-8?B?NUdxd1o1ZFRYdlpFMzhUMkJ6QlJ4MkhSSzlhUjRyUFY1RzR3aUFncDcrS1Z5?=
 =?utf-8?B?SlFHMXhUZDRaU2JTR3BtOEJvUU9TMWxHWHVhdGxvRXUzM29EUHVlempCZ1pi?=
 =?utf-8?B?dVh1SmpiYnpCUnV5L3orTHBKKy9zQ0s2b2FVak9UMzFJL1BnYWpiRVhqSmY4?=
 =?utf-8?B?cHMyOVJqTTM3ZG5qY0RKME8wMWRTQ1N2ZWVNb0YzUEYzb1ErcFVDVC9PcGwz?=
 =?utf-8?B?QUY2eHA0QlkwckRua3hnWHBKSHptU0Y4UnpKTUhUaC9lKysxTWZpMEFTdy8v?=
 =?utf-8?B?eElBczhLcFJhdmNMSDlTWW1ocEtpSVdiVk5XbGVRbS94N0d2RE8xTDZ6d0ZO?=
 =?utf-8?B?TDEwaEdDMUQ1WkdIMk04OFFTYTI0ZHAwQkU4SkV3Nm01UTN0VGc2SHozTWJR?=
 =?utf-8?B?eGNzRGNxMStzamdULzNDOFVyZUNmTkF5ZmFkQXVhdjloQkxheDV5Uk4vK3RM?=
 =?utf-8?B?SzJOd3ZiU29Dd2hCenJUOGhSNDJMazluR1dGekJqMHBtU0QrRE56SkFxNGJD?=
 =?utf-8?B?K3l1K2xoUTVpWVR5ZE4wdGVwNFc4MWlSak1XUnpna2tFK2t5bVhQNnU2QzBK?=
 =?utf-8?B?ak1aUHpFSVdNajlQaUREQ3g3bG1aWDZWbVNQN3p3WXdDOFJwZFd4UnRPbUlu?=
 =?utf-8?B?UXlEcjBxMlBOVVVUSVk4MmY4RHFKbW9JM2dpTW0zTVVNc2cwcUVYcUZWQnFS?=
 =?utf-8?B?VllQQ25QOTJPNEw3aEkwK0RpbHVqVjVsTG5oZXhLZGlja2JFSnF3N3lQV285?=
 =?utf-8?B?VXAwNWFYWTJaOFczSXFyckRnZkphQ2dDMjZHblB4c1lmOVJMcVFYcXBEaGR4?=
 =?utf-8?B?elJqS0xSdXpEZ1psNkU2UXNodUQzMzQvVUZYWUpJNVFsamx6S0Z0c1J1RFFX?=
 =?utf-8?B?QUFOMkNyb2kveHZKMTgrcXZJSkZhY2J0RzJYWGhFK3MvT0FUbXgrTmliZTNo?=
 =?utf-8?B?TVpDZWgrMzJSUXVEL0FxNU1kSmdQM0QrMEdHOW9XWWtHdkVZTnc4Z0plcEZU?=
 =?utf-8?B?TFd0ZXFGbHU3aFNJUFhYdC80VC9TRGhBN2pqMmRBdG5LV2FveGs5WXRMS3pQ?=
 =?utf-8?B?YXNXTHBUcVVOVDBkb0hDREFrdkpnZ2NLbnlCVm5NY3VLVTJQdm96ZHlrdi9o?=
 =?utf-8?B?enJjMHdFckhrb0R1ZDdiWkxTcmc1VVRlbFRNc1AwU1BMaW1HVjVjbi81L3Fn?=
 =?utf-8?B?WDQyQUE5ZEJCNHJYYWlKaVMyVGJQK1EzaDh3Rk5teGJDSXB5OU5ET0NaL1B5?=
 =?utf-8?B?emowSVp0SXU3V0VoY3I5azgyZk1DYjZOMXhZK09aR2J0dnhWQjF6aHM5bEk0?=
 =?utf-8?B?UXNCSWx0Ym4xVmwzUVRieW9FTzljMkRUSWFUcEd6MVlBSjZRMzBrdHR5WDBI?=
 =?utf-8?B?RFFjSzRTL0pxKzFvcVo0QUVlK2x3elRjdWN2Sm5SNy9IT2M3dEQ4elozWTN5?=
 =?utf-8?B?N0oraGR3V1U1c3VudlBaSUdUR09PSjZCQStBYmdHcG9xNFlGSzB4eVhqSklq?=
 =?utf-8?B?bGJScEhFd1l5WGlkYkErVDhuSmlWWG9jQlE5Q3F4a2FaSUlLdTJxUkN6cWow?=
 =?utf-8?B?bVlPKytoTllPSUJ2NVo2cG0zdnVDZzJaK0hRWFowbkxSU0QwTWhQcGdwYnRO?=
 =?utf-8?B?QUJLdUtEYUE1cC93dmwvdDJ6TWYwaXJQTFRlMklzWWp2M1lsNkxjcHYva1BX?=
 =?utf-8?B?ZzJZb0c2dStGUEtRM3FHNzMweDUwNHdjSkNKL0hGVHVqUlZaVVBQVTlLclR6?=
 =?utf-8?B?Vm55MzVlTjJnYi9xLzRKa0RDaHdMeFpNZVowV2hBMVgzcWRFdVJOZ3hmUGp1?=
 =?utf-8?B?eFU0VHVGOS94ckQrVERBeTBHSXJqRElUS1VpVmpmeGoybmErQjZmRk1IVnVM?=
 =?utf-8?B?QWIwVmNSL2h6UlBlKzVreUN5SmFHd1lYakZqQnpGUFl3VXFuK1krVjcycnZM?=
 =?utf-8?B?UTNNZ0trS0N0T08wTDRGQ01aYkxoRTA4WTdGNDQzRmYzeThUYlgrS0tvSkxN?=
 =?utf-8?B?a1NqK3NLYThnRS9WT0NtbU44bDlCSFlzckxHSmxZcEtDK2I1UUFYcG01U0Zm?=
 =?utf-8?B?UUE9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <3AAB1D7205AAEE48805E9EE8B3C8263E@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: 520e9838-922b-4d02-a577-08dde0b3f685
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Aug 2025 13:09:29.5845
 (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: w7UKEuMwKylfygORwhAGhcJd5jBQU+pBaflSfU3Ty7RdN16thaTIkpJIqJqwT5uAJvmcbKq9eZZ+nkc51kdLVw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB8799

T24gMjEuMDguMjUgMTU6MDMsIE15a29sYSBLdmFjaCB3cm90ZToNCj4gSGkgTXlreXRhLA0KPiAN
Cj4gT24gVGh1LCBBdWcgMjEsIDIwMjUgYXQgMTo1MeKAr1BNIE15a3l0YSBQb3R1cmFpIDxNeWt5
dGFfUG90dXJhaUBlcGFtLmNvbT4gd3JvdGU6DQo+Pg0KPj4gV2l0aCBQQ0kgZGlzYWJsZWQgdGhl
IGJ1aWxkIGZhaWxzIGR1ZSB0byB1bmRlZmluZWQgc3RydWN0DQo+PiBwY2lfaG9zdF9icmlkZ2Uu
DQo+Pg0KPj4gQWRkIGlmZGVmIGd1YXJkIGFyb3VuZCBwY2ktaG9zdC1yY2FyNC5oIHRvIG5vdCBp
bmNsdWRlIGl0IHdoZW4gUENJDQo+PiBzdXBwb3J0IGlzIGRpc2FibGVkLg0KPj4NCj4+IFNpZ25l
ZC1vZmYtYnk6IE15a3l0YSBQb3R1cmFpIDxteWt5dGFfcG90dXJhaUBlcGFtLmNvbT4NCj4+IC0t
LQ0KPj4gVGhpcyBwYXRjaCBjYW4gYmUgc3F1YXNoZWQgd2l0aCBpb21tdS9pcG1tdS12bXNhOiBJ
bXBsZW1lbnQgYmFzaWMgUENJRS1JUE1NVSBPU0lEIHN1cHBvcnQNCj4+IC0tLQ0KPj4gICB4ZW4v
ZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vaXBtbXUtdm1zYS5jIHwgMiArKw0KPj4gICAxIGZpbGUg
Y2hhbmdlZCwgMiBpbnNlcnRpb25zKCspDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJz
L3Bhc3N0aHJvdWdoL2FybS9pcG1tdS12bXNhLmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9h
cm0vaXBtbXUtdm1zYS5jDQo+PiBpbmRleCBlYTlmYTlkZGYzLi40OWYxNDllMjIyIDEwMDY0NA0K
Pj4gLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL2lwbW11LXZtc2EuYw0KPj4gKysr
IGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL2lwbW11LXZtc2EuYw0KPj4gQEAgLTUxLDcg
KzUxLDkgQEANCj4+ICAgI2luY2x1ZGUgPGFzbS9kZXZpY2UuaD4NCj4+ICAgI2luY2x1ZGUgPGFz
bS9pby5oPg0KPj4gICAjaW5jbHVkZSA8YXNtL2lvbW11X2Z3c3BlYy5oPg0KPj4gKyNpZmRlZiBD
T05GSUdfSEFTX1BDSQ0KPj4gICAjaW5jbHVkZSAiLi4vYXJjaC9hcm0vcGNpL3BjaS1ob3N0LXJj
YXI0LmgiDQo+PiArI2VuZGlmDQo+IA0KPiBBcyBmYXIgYXMgSSBrbm93LCB0aGUgSVBNTVUgVk1T
QSBkcml2ZXIgY2FuIGFsc28gYmUgdXNlZCBvbiBvdGhlcg0KPiBSLUNhciBwbGF0Zm9ybXMuIElz
IHRoZXJlIGEgY2hhbmNlIHdlIGNvdWxkIGhhdmUgSEFTX1BDSSBlbmFibGVkDQo+IHRvZ2V0aGVy
IHdpdGggSVBNTVUgVk1TQSwgYnV0IG5vdCBiZSBvbiBhbiBSLUNhciBHZW40IHBsYXRmb3JtLA0K
PiBmb3IgZXhhbXBsZSwgb24gUi1DYXIzIG9yIHBvc3NpYmx5IHNvbWUgZnV0dXJlIFItQ2FyIHZh
cmlhbnRzPw0KPiANCj4gV291bGRuJ3QgaXQgYmUgYmV0dGVyIHRvIHVzZToNCj4gI2lmZGVmIENP
TkZJR19SQ0FSNA0KPiA/DQoNCkdlbjUgYm9hcmRzIHdpbGwgdXNlIFNNTVUsIHNvIHRoaXMgd2ls
bCBub3QgYmUgYXBwbGljYWJsZSB0byB0aGVtLiBJbiANCmFueSBjYXNlLCBjaGVja2luZyBmb3Ig
UkNBUjQgd2lsbCBub3QgaGVscCBoZXJlLCBhcyBQQ0kgY2FuIGJlIGRpc2FibGVkIA0KcmVnYXJk
bGVzcyBvZiB0aGUgcGxhdGZvcm0gcmV2aXNpb24uDQoNCj4gDQo+IEJlc3QgcmVnYXJkcywNCj4g
TXlrb2xhDQoNCi0tIA0KTXlreXRh


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 13:15:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 13:15:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088689.1446420 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up58V-00020t-Li; Thu, 21 Aug 2025 13:15:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088689.1446420; Thu, 21 Aug 2025 13:15: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 1up58V-00020m-Ix; Thu, 21 Aug 2025 13:15:23 +0000
Received: by outflank-mailman (input) for mailman id 1088689;
 Thu, 21 Aug 2025 13:15:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SZDk=3B=casper.srs.infradead.org=BATV+dd657eb3d837cdb05fc0+8033+infradead.org+dwmw2@srs-se1.protection.inumbo.net>)
 id 1up58T-00020g-7q
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 13:15:22 +0000
Received: from casper.infradead.org (casper.infradead.org
 [2001:8b0:10b:1236::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e04024a5-7e90-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 15:15:15 +0200 (CEST)
Received: from 54-240-197-225.amazon.com ([54.240.197.225]
 helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.98.2 #2 (Red Hat Linux))
 id 1up58E-00000007d3Z-34kJ; Thu, 21 Aug 2025 13:15: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>
X-Inumbo-ID: e04024a5-7e90-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=xKq3jx7kl0EOAKqaQSFqNpiB6bLoJPYimZxFkfL6FDs=; b=IoYpQ4fC4XyYcJ/CkWpKYv5xqW
	d/INmxc5clVuthuD9QzLGF4GiBLu2vTa1hiyLFwezOuF3L5rzPKPhJoIjOhmPstqyu+kYsssk+qmE
	ZnLBXRSc8PKGJpKWKk7WVTjL3Q6TApMfX+wpz0Fhkzm9XXrcDjJI/NhYlBDybQLsloZAa5kXwH+8r
	AzTinQrxPr7r9dKt0IHRX74Lpq5UPsTqRe5E77heBQnwdONNklR8heWYKwRwBEPkKPNDijU/zAKMi
	/8I/+vz7RsHW1pdgd5d5GZ1ySWoqKMdRtYh5BAKdDGQP5K8fLw3NvHXH5L3Y8rXNgqF5fHt9WJIWQ
	eJF+S9tg==;
Message-ID: <6f05a6849fb7b22db35216dcf12bf537f8a43a92.camel@infradead.org>
Subject: Re: [PATCH v3 13/15] x86/cpu/intel: Bound the non-architectural
 constant_tsc model checks
From: David Woodhouse <dwmw2@infradead.org>
To: Sohil Mehta <sohil.mehta@intel.com>, x86@kernel.org, Dave Hansen
	 <dave.hansen@linux.intel.com>, Tony Luck <tony.luck@intel.com>, 
 =?ISO-8859-1?Q?J=FCrgen?= Gross
	 <jgross@suse.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, xen-devel
	 <xen-devel@lists.xenproject.org>
Cc: Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com>, 
 Arnaldo Carvalho de Melo <acme@kernel.org>, Namhyung Kim
 <namhyung@kernel.org>, Mark Rutland <mark.rutland@arm.com>, Alexander
 Shishkin <alexander.shishkin@linux.intel.com>,  Jiri Olsa
 <jolsa@kernel.org>, Ian Rogers <irogers@google.com>, Adrian Hunter
 <adrian.hunter@intel.com>,  Kan Liang <kan.liang@linux.intel.com>, Thomas
 Gleixner <tglx@linutronix.de>, Borislav Petkov <bp@alien8.de>, "H . Peter
 Anvin" <hpa@zytor.com>, "Rafael J . Wysocki" <rafael@kernel.org>, Len Brown
 <lenb@kernel.org>, Andy Lutomirski <luto@kernel.org>, Viresh Kumar
 <viresh.kumar@linaro.org>, Jean Delvare <jdelvare@suse.com>, Guenter Roeck
 <linux@roeck-us.net>, Zhang Rui <rui.zhang@intel.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, David Laight <david.laight.linux@gmail.com>,
 Dapeng Mi <dapeng1.mi@linux.intel.com>,  linux-perf-users@vger.kernel.org,
 linux-kernel@vger.kernel.org,  linux-acpi@vger.kernel.org,
 linux-pm@vger.kernel.org
Date: Thu, 21 Aug 2025 14:15:05 +0100
In-Reply-To: <20250219184133.816753-14-sohil.mehta@intel.com>
References: <20250219184133.816753-1-sohil.mehta@intel.com>
	 <20250219184133.816753-14-sohil.mehta@intel.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-MQvy9cNew683s0qU1XN2"
User-Agent: Evolution 3.52.3-0ubuntu1 
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


--=-MQvy9cNew683s0qU1XN2
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Wed, 2025-02-19 at 18:41 +0000, Sohil Mehta wrote:
> X86_FEATURE_CONSTANT_TSC is a Linux-defined, synthesized feature flag.
> It is used across several vendors. Intel CPUs will set the feature when
> the architectural CPUID.80000007.EDX[1] bit is set. There are also some
> Intel CPUs that have the X86_FEATURE_CONSTANT_TSC behavior but don't
> enumerate it with the architectural bit.=C2=A0 Those currently have a mod=
el
> range check.
>=20
> Today, virtually all of the CPUs that have the CPUID bit *also* match
> the "model >=3D 0x0e" check. This is confusing. Instead of an open-ended
> check, pick some models (INTEL_IVYBRIDGE and P4_WILLAMETTE) as the end
> of goofy CPUs that should enumerate the bit but don't.=C2=A0 These models=
 are
> relatively arbitrary but conservative pick for this.
>=20
> This makes it obvious that later CPUs (like Family 18+) no longer need
> to synthesize X86_FEATURE_CONSTANT_TSC.
>=20
> Signed-off-by: Sohil Mehta <sohil.mehta@intel.com>
> ---
> v3: Make the non-architectural model checks more explicit.
> =C2=A0=C2=A0=C2=A0 Improve commit message.
>=20
> v2: No change.
> ---
> =C2=A0arch/x86/kernel/cpu/intel.c | 10 ++++++----
> =C2=A01 file changed, 6 insertions(+), 4 deletions(-)
>=20
> diff --git a/arch/x86/kernel/cpu/intel.c b/arch/x86/kernel/cpu/intel.c
> index fc68561d9f92..4fbc5465ca67 100644
> --- a/arch/x86/kernel/cpu/intel.c
> +++ b/arch/x86/kernel/cpu/intel.c
> @@ -210,10 +210,6 @@ static void early_init_intel(struct cpuinfo_x86 *c)
> =C2=A0{
> =C2=A0	u64 misc_enable;
> =C2=A0
> -	if ((c->x86 =3D=3D 0xf && c->x86_model >=3D 0x03) ||
> -		(c->x86 =3D=3D 0x6 && c->x86_model >=3D 0x0e))
> -		set_cpu_cap(c, X86_FEATURE_CONSTANT_TSC);
> -
> =C2=A0	if (c->x86 >=3D 6 && !cpu_has(c, X86_FEATURE_IA64))
> =C2=A0		c->microcode =3D intel_get_microcode_revision();
> =C2=A0
> @@ -266,10 +262,16 @@ static void early_init_intel(struct cpuinfo_x86 *c)
> =C2=A0	 *
> =C2=A0	 * It is also reliable across cores and sockets. (but not across
> =C2=A0	 * cabinets - we turn it off in that case explicitly.)
> +	 *
> +	 * Use a model-specific check for some older CPUs that have invariant
> +	 * TSC but may not report it architecturally via 8000_0007.
> =C2=A0	 */
> =C2=A0	if (c->x86_power & (1 << 8)) {
> =C2=A0		set_cpu_cap(c, X86_FEATURE_CONSTANT_TSC);
> =C2=A0		set_cpu_cap(c, X86_FEATURE_NONSTOP_TSC);
> +	} else if ((c->x86_vfm >=3D INTEL_P4_PRESCOTT && c->x86_vfm <=3D INTEL_=
P4_WILLAMETTE) ||
> +		=C2=A0=C2=A0 (c->x86_vfm >=3D INTEL_CORE_YONAH=C2=A0 && c->x86_vfm <=
=3D INTEL_IVYBRIDGE)) {
> +		set_cpu_cap(c, X86_FEATURE_CONSTANT_TSC);
> =C2=A0	}
> =C2=A0
> =C2=A0	/* Penwell and Cloverview have the TSC which doesn't sleep on S3 *=
/

Hm. My test host is INTEL_HASWELL_X (0x63f). For reasons which are
unclear to me, QEMU doesn't set bit 8 of 0x80000007 EDX unless I
explicitly append ',+invtsc' to the existing '-cpu host' on its command
line. So now my guest doesn't think it has X86_FEATURE_CONSTANT_TSC.

For reasons I also don't understand, for a Xen (in qemu/kvm) guest this
results in about a four-second delay when bringing up each vCPU.
Timestamps added to QEMU's stdout because the kernel's own timestamps
are lying...

1755781767: [    0.489434] smp: Bringing up secondary CPUs ...
1755781767: [    0.489434] installing Xen timer for CPU 1
1755781767: [    0.489434] smpboot: x86: Booting SMP configuration:
1755781767: [    0.489434] .... node  #0, CPUs:          #1
1755781767: [    0.489434] installing Xen timer for CPU 2
1755781767: [    0.489434]    #2
1755781767: [    0.489434] installing Xen timer for CPU 3
1755781767: [    0.489434]    #3
1755781771: [    0.489434] cpu 1 spinlock event irq 45
1755781775: [    0.544262] cpu 2 spinlock event irq 46
1755781779: [    0.604306] cpu 3 spinlock event irq 47
1755781779: [    0.604792] smp: Brought up 1 node, 4 CPUs
1755781779: [    0.604792] smpboot: Total of 4 processors activated (103411=
8.38 BogoMIPS)




--=-MQvy9cNew683s0qU1XN2
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
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI1MDgyMTEzMTUw
NVowLwYJKoZIhvcNAQkEMSIEIDmYXiAIqUEHepr3ZS6jHoNY2RgPdPAf/DeD8UPej8GSMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAhWAYCoC0NlJL
tpjjr7JqJPaupLD1vFsw4dGzKIehcImdKQxzJiZ3QOXW2ZH/+e2OCTy9dVsZ23NCbRk8X3LREH8u
K3Vh4qFfjfdsTH43v9fmImwQhHzD/5rFeYV9sx/eZmAFci5vXxDoKV8ueEWqKpjevYsqIU/8UVvU
ce3klqrKKOVsTOJ0MtQmH1W1Dn0OJp5spoqveo9WYobAQ5PydSk98DHrODA2cRRY0772Zi8NITof
J7B4wCPypKXQ7ljk8Eyw1o6w7PVNyNw8C2NagBdkEcIq2HnNnPRzT3q8T/uyuMmpDHvs4LbvaooC
JhvDqKIOGjyr/iE4u3RvNL0qUt5CTWOE4pu2DQjrWCnVTP/wXa4eHadSCffpZCuQhH6ZdIawY1/g
uivHV4cnaY9KeK8x0D1iXlb/suWWQKPZyLfzx8zmuXiRAuS7jrrycZ6pL4agaARBsaW1xxPEeQ11
KFLKelQjojrVQHWuiWlfY8XJlZhG7Der4BycE3Y1l4D1UNKr5iWywURvQpQEDvghnYWL5NNvMHpt
AjU988ArpfSe8GrE1cEyDOtpLOX07qeaSmrSQW2kwQ7P2uWsYjjwXFPDi6EZ8Awf9qtdlyTbe7hQ
nzBau6iXOUt7Nl4lZki9b9LdR9L7W7baColrB/e23E4QXF6QgHceEvo4FF1p3akAAAAAAAA=


--=-MQvy9cNew683s0qU1XN2--


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 13:56:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 13:56:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088698.1446430 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up5mN-0003rB-KN; Thu, 21 Aug 2025 13:56:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088698.1446430; Thu, 21 Aug 2025 13:56: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 1up5mN-0003r4-HU; Thu, 21 Aug 2025 13:56:35 +0000
Received: by outflank-mailman (input) for mailman id 1088698;
 Thu, 21 Aug 2025 13:56:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=aDER=3B=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1up5mL-0003qy-Ve
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 13:56:34 +0000
Received: from AM0PR83CU005.outbound.protection.outlook.com
 (mail-westeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c201::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a4f4d098-7e96-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 15:56:32 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by PR3PR03MB6411.eurprd03.prod.outlook.com (2603:10a6:102:7a::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.13; Thu, 21 Aug
 2025 13:56:28 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9052.013; Thu, 21 Aug 2025
 13:56:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a4f4d098-7e96-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Xf6KdXASpAa1eatOlEv5eYIZrzMdSUIrbf+OD5Yi4ws+WpKgBA2BRSjdORejJuffxSPjyvhaKl3HSqj7CkvrnAODOla+hgn/uwL3bgx8C8QaUnYJNv43w0GvCJjJ3W7aKpeXgVdkz4gSg8Fe6HYgbt9BDFcSbPTF4H7hNEe3y/o3KLq+U/upGgdZqRPMeiI4rbx16PSpwBVqq9NA7piRDvYN7X5qyQ0aocDGCG4iqmyW9IVlNryV4mgACbwhffq+0mc555QE5G+Be6oY0MNYKBoglufu38iH6l7qL7XmBsBinUGa/mOkPhV0RyU7tlH+SwzoaVN8/64fjOPP7yaJWg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=zjnAPyabuhbFGzDZa6AQffS5/rmzZj4F9F9bNt8eKAk=;
 b=O9TuCG/2qeqmB/MSP/e9UBieQ5DXQHMM9utwZQJN2tvDjGfUntc1Qngq9nGpydSWYO1gMEEuEmmx7aOQ6+yl9f2nWTzA82bBkisdMFQBwqpRPDvhk89RfXKGqA1DQyY9eoNlw0CUpNAtKkfRpY9grE83IWENQM9ISNqSu1+0QvMvPQF+nAIsW1ZKlDVV9B6TtV652VhaErzyn0lU2iyVNLXjYAglb/tVSMnHiFRDhTbg+ko2mnzEWZueT2QC8U+eqzwrUoL990DPfJNVAGPDLWozR9h9fmI+QuwxvT/DFma+/EtixA2IGGWBxh1N/l4FsWxHCiAJ7qSRvmvj4jRFjA==
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=zjnAPyabuhbFGzDZa6AQffS5/rmzZj4F9F9bNt8eKAk=;
 b=Q4g8+QgIjz7EgTbfXKHNPJW/+GBvIdgZ4VJNWto/I7AHVJfmaTneRzy9KyNS+d9evWm3gzXwoYe5Flss2eDQZ4bdzGVfiy2ES+GufZjuXTlMS9Er2RnP1sxoGnhGzfKPyadku4tvVjDYC3BK82twctdA05R8sEvcynslJoHcKt3qILt5XMGIqeueA/6SRWaH0rcGGvghz+NiSY0U1I1Aw+BsPiVZLeb9X1hB+dH+Skgh7iyvWoilkqAueeWXZbK1j64cIXIYzVdL06RnR5mWTtRJQXpY0wm6DZ1DtVmoQqvBcMvMUlvpR0Rmez1NvLskiTDGHFRe9JhzsbHrTzwn/Q==
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>, =?iso-8859-1?Q?Marek_Marczykowski-G=F3recki?=
	<marmarek@invisiblethingslab.com>, Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v3] common/efi: fix Rule 2.1 violation in read_file()
Thread-Topic: [PATCH v3] common/efi: fix Rule 2.1 violation in read_file()
Thread-Index: AQHcEqNkBxL+JigLCU+o9uoHNz/rIQ==
Date: Thu, 21 Aug 2025 13:56:28 +0000
Message-ID:
 <4a1a4a3406d227348afa1ad2ce90dc5264fdb44a.1755783750.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: GV2PR03MB9572:EE_|PR3PR03MB6411:EE_
x-ms-office365-filtering-correlation-id: 125c403a-a27f-493d-5d2e-08dde0ba86a9
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|42112799006|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?7ji+ekNtpDjELaUTwdQvZBCdylL2ixZmcy5inUblp2UU0MEdgb/iu1HrkE?=
 =?iso-8859-1?Q?8KGQqaYPxeEfJZe/YfBa6/2/hScjxw9EdaERCsCHJusMqlQGToMrerQJ3g?=
 =?iso-8859-1?Q?o4YCSaPrdfmAAN9+SbfMdTac513uiUrfp8ORpFjeFyeqViW8x4MGWBLYtt?=
 =?iso-8859-1?Q?lNHaYCkg4H14ptW9N/waAG/AVBeVnIdx5nj6PhAlvLUOdWG1uBVZgtQBX2?=
 =?iso-8859-1?Q?2DaT5fqGnX9Zsmsef9I689gBwpCE3vd1TrNaboutZ9m9LSUs6Re17yw3zA?=
 =?iso-8859-1?Q?9Rijh6akm3tRpAUkFRaj+S5QhnMtSxuU8O1J2hcad/YN8BeGLgg4aZ5Sat?=
 =?iso-8859-1?Q?ISEkLMpchHN7bsB0Xihh5DN7ukZREazB3V4wfnn/PNbbdcD21Sq/RuemZo?=
 =?iso-8859-1?Q?mpU3buQgvJw4P7WrKoejwB1rH3KdFMFLIdgW7dAq9FEz8khJaEwvi55Hbu?=
 =?iso-8859-1?Q?1KypZZ6WU2VuFPnSDXElpDApGb/qrAVx7DyEzLVgbKAyjt8XVdFLyRtDQI?=
 =?iso-8859-1?Q?IuDd2h3CbidE3Yk0GTBjFuG9TmPL9XpaOFTBre6CBm2VV6ETZJ9xy1MtQe?=
 =?iso-8859-1?Q?RiKu6yayxjdwJ/DSEDmeCvM6tiRh+NBF7UXS6o23vFhX5MwdotAIj51V8p?=
 =?iso-8859-1?Q?LNhmFc+wmSqQOBVBLvL3ZfIBcCIMjj+WwcHR0hgQMzUz6RLZZjfTbEvy6s?=
 =?iso-8859-1?Q?6lgR4DzEklfnOE6+jbfUnaTRoPVQ4I1E7pbil/xyZ0V4rP6imQbnhTyULN?=
 =?iso-8859-1?Q?XUSEaEUgf2QGJKMqu5BP6lN0B1d3CW0XZGC1Z0F9260PT+1yQc6DNUQM65?=
 =?iso-8859-1?Q?J4CP1WkEViSdiGKR9xGG54ENvlU7UPsFWW4jFGRmcIaSWJh5JEgAxvplhR?=
 =?iso-8859-1?Q?KKfyaDHNI8WNBK9gdVuNeeNzn9KvEHUwUzI/xH0De01ejsdSjyzX6UHeto?=
 =?iso-8859-1?Q?5rX09nYS+1pY92Yx7A7Uwof5WvyLmKnp4n3JsDRXhCGf9viKH+rq/A9YYm?=
 =?iso-8859-1?Q?M/fzZZ4L3oyFbPXgR5fhgdLZTavTDAHUIIDhmes/965GrHBBacxr5tbO/m?=
 =?iso-8859-1?Q?zMFjJAcnXBHodTgmYPrMu8A9ibEhbrFk7cZ3fgyyo6EROwMaH+q3bORLMx?=
 =?iso-8859-1?Q?1zQMxAPvfqpKU0UHu0MJULslmVwj/TFU+lfU70cw6WT2Sc3LpHvrjaADdX?=
 =?iso-8859-1?Q?5mWPVt4+orDInk5od9T9rZmPcV/oWq1xq9PdWO/YadXHgAbYxe2u6P2iV8?=
 =?iso-8859-1?Q?ZmvhX1xnhhF74YXC4QKq+HjUZY90vAwHzjSoSqInojZcVZSutBUI41vL8U?=
 =?iso-8859-1?Q?LsSHCkFpiclnv2dzVwacnGcfU6/OxB6nB1m8Q6bAEqpbH32hbyl6SLwasR?=
 =?iso-8859-1?Q?rUy58h0aBVYRbwKZcklHjYbo0z62Uia5PBJg3qVz2f0dDCcrViEBFIOZPj?=
 =?iso-8859-1?Q?totzu3CZUcvUyGTcpWXDOCXp7eKlgK+WTPUjuzk0iwqYvmOURSS2vUk0+V?=
 =?iso-8859-1?Q?E=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(42112799006)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?aDT30Ah/KGkjVWrlLuhVIkxjFTFsNtSBNIoxos2WnYPMPr9lmIbfEd4vYh?=
 =?iso-8859-1?Q?GTgqgU6uz6pNfbjaYdcJXXDa0MWlELynrAbZUxovrXZocOHOD9p6Oc3j3t?=
 =?iso-8859-1?Q?usNGl16Q5l3p+6O08CDqJHI844X+fTao/fAOu4XGh21jzNz+U1jubd7fcY?=
 =?iso-8859-1?Q?sw3/Qi4W/Zn0WCyZ3NAuf16Cn5v+XBnyVsCSP2ALk0jcYSSROi/mwGJaFT?=
 =?iso-8859-1?Q?eEPE4i8djV+qdGTvLsMPgv2TVLRO3aTCmba00uhIirh74jRW3lkef0TNCC?=
 =?iso-8859-1?Q?FNLIM3u09pu1rSCFeMcNjmmSpthnceQksOREwR93j21di6GeX2ETrWHLMX?=
 =?iso-8859-1?Q?ldvciiDd/xgie/NVTKYTmJf3Z6QjjYBzuc8nkw2WxTXSXPNS4FdtggckQc?=
 =?iso-8859-1?Q?do2rKiX1Vf/jYP59uZnqWRdLWrav5grHZexKcbz2TAYoqZhr1Wb2fAgsj3?=
 =?iso-8859-1?Q?NXie85doiBzZ2aIq+5h5zVRnFthWCteKqb/lcXncHMFuSOzvMi03FN7uAO?=
 =?iso-8859-1?Q?jT6Wtm2APSiEkRtDw+uR/xzgPNvTSujFkELTSUKpvcTRMbd+3FjRx6hmBw?=
 =?iso-8859-1?Q?0ud30ScHSMYe8ueybOVA/2vwhVs29v7epTsqw+8IZauUym4vmhhzjwKIyF?=
 =?iso-8859-1?Q?e4GX6vZA2wKugy8sZ5RntPi4PilRm/BkPurLPBco0ZlrBfCGxpzO3ymbI7?=
 =?iso-8859-1?Q?GhNbBspRgQ6cJi1VbW9vbTuVRHLi0/PQdddxFi3BJzo+v6tDfehRENP8AK?=
 =?iso-8859-1?Q?czicPnPhLGkdMQShtoJ8qgS57bw+97N4MdEv5haD/lfi2s6YFcki56O44S?=
 =?iso-8859-1?Q?9ZbkBdWtTg4dvsPw2gJqDfqxjIChNi8YQ6iBKiZjCe5ZfPLXyfIub1UwQr?=
 =?iso-8859-1?Q?/rZDb3cuimaFIpU+vucWFJ8k60ItZIsLtXUbixyvQhTrVsLIbmhwsrIg1W?=
 =?iso-8859-1?Q?taaUJGf+lur/r9CiZmGsmqk6xddaz7u4h8RgD10z2Qra4zy4JxYzImteSM?=
 =?iso-8859-1?Q?0PUQ4uoPNvc6KC4Xsu5kCNruG0ey1NYM8J33Ia4PqRvRWVhxW18Pd7yQGX?=
 =?iso-8859-1?Q?uNmmuaFanGGmRQQSN4RWh3RAd6TIuVEgshpa0x1Ewq19gWzK5mlnZZeE09?=
 =?iso-8859-1?Q?oRfVqnAUKjkA20HJl9q32Tv+slsF6ZOiDH7JtEHpcyyTvZnrNH2/8n8Fod?=
 =?iso-8859-1?Q?6rjC69xj7VpFDwI/aeMrsJvDItMaDpnPkCl/rrG+aqtF692wlQIilAf2FS?=
 =?iso-8859-1?Q?5y2nuaklaFazbazpj+CWz4Td9oCIk0J3bYQro6z17kKItQCZOBPWgU3Uw6?=
 =?iso-8859-1?Q?0QIsfiW2c7oKFlPHgWVMyczJt0QLwpeV2VmLtsuQgQZO0+0SNnJzooNXyp?=
 =?iso-8859-1?Q?UW+kJIPSN/vyZ2C+iApnP7X3HPlJlNGy+voKpw2Zz0qNK+4u9nFMIcjIdO?=
 =?iso-8859-1?Q?KCmjHTUPxp2Im+UTa1j1nJdfoybz0gKNbQ+XDI6YyaLzoFOrFhSixcaJHQ?=
 =?iso-8859-1?Q?AC3c8ZFKN193Yq9zAx5AWXBsM0uJ11/W6VBy3ySpHBFYZ5zHvcQFYBHVO+?=
 =?iso-8859-1?Q?r9nYMFCUzE7Vp27Ht9fh8kZNK0S2S+bfAh0b7invMJjzZxjfbSBfbDv/1Z?=
 =?iso-8859-1?Q?L9fV3JFEaKeKKJdEyQMKTCPVF/VGl94IAjKRngjxY/DrBuaOfNZytJdg?=
 =?iso-8859-1?Q?=3D=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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 125c403a-a27f-493d-5d2e-08dde0ba86a9
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Aug 2025 13:56:28.4008
 (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: kiW6kXLns5gu+4szT7X8dy7ZjirE+GVTdVaEVvYrZjtR3XD1g0zHEj2Zwd76TeUKGRq64uLHAMSJgMPYptSrZa6lG+kyCbRHWVAthW/xbng=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR03MB6411

MISRA C Rule 2.1 states: "A project shall not contain unreachable code."

The return statements in the 'read_file()' function is unreachable due
to function 'PrintErrMesg()' which has 'noreturn' attribute:
        PrintErrMesg(name, ret);
        /* not reached */
        return false;
    }

No explicit return statement is needed here. Remove the statement and
write a justification comment instead. No functional changes.

Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
Link to v2:
https://patchew.org/Xen/c20a58f24875806adfaf491f9c6eef2ca8682d18.1755711594=
.git.dmytro._5Fprokopchuk1@epam.com/

Changes in v3:
- removed unreachable code instead of deviation
- updated commit subject and message

Test CI pipeline:
https://gitlab.com/xen-project/people/dimaprkp4k/xen/-/pipelines/1996439444
---
 xen/common/efi/boot.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index 50ff1d1bd2..325de05b18 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -851,9 +851,13 @@ static bool __init read_file(EFI_FILE_HANDLE dir_handl=
e, CHAR16 *name,
     PrintErr(what);
     PrintErr(L" failed for ");
     PrintErrMesg(name, ret);
-
-    /* not reached */
-    return false;
+    /*
+     * No explicit return statement is needed here because 'PrintErrMesg()=
' is
+     * marked as 'noreturn', which guarantees that it never returns contro=
l to
+     * the caller. If the 'noreturn' attribute of 'PrintErrMesg()' is remo=
ved
+     * in the future, compiler will emit an error about the missing return
+     * statement (build-time safeguard).
+     */
 }
=20
 static bool __init read_section(const EFI_LOADED_IMAGE *image,
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 14:13:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 14:13:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088707.1446440 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up62p-0007mn-Ul; Thu, 21 Aug 2025 14:13:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088707.1446440; Thu, 21 Aug 2025 14:13:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up62p-0007mg-Rn; Thu, 21 Aug 2025 14:13:35 +0000
Received: by outflank-mailman (input) for mailman id 1088707;
 Thu, 21 Aug 2025 14:13:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=aDER=3B=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1up62o-0007mU-39
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 14:13:34 +0000
Received: from GVXPR05CU001.outbound.protection.outlook.com
 (mail-swedencentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c202::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0190350c-7e99-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 16:13:27 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by GV2PR03MB9499.eurprd03.prod.outlook.com (2603:10a6:150:d4::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.27; Thu, 21 Aug
 2025 14:13:22 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9052.013; Thu, 21 Aug 2025
 14:13: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>
X-Inumbo-ID: 0190350c-7e99-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nt+Op2T0WpFY+afbPt0MFhSCVw88YmP+6F2qXTF1V1eZMc0A7na1qlxSzSjwXwTnd75h0mgcHYLirAH0EehDj4Y11wNQCgFN7mzTPRodNkfLmHLT1E8+GIRG+FCUx9bBDRJ3Bi9DK0RCbyNkFd66hwAMgafvXWucnzSuQ1Vx7foqYSg4slsx7vlBShY7zGh2D8733cNYNrJjeRTfE+PLoDAVmpCjzNjuJXAwcQaon5kLxHmYD5zB+1/NJE44OonAfqi5u7AwiOviroKGvuh9v2f8SY4IFnb68XMhvUIItucJfpupfgYIc59TqcCnkKrhO8qvogZrqnJt7SNvSej5uA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ByHWbCQw1qr64D0awe/3ylho5kDseUdek9FFzu9zLuY=;
 b=TPKraM2uiC1pXlQ6Jt17jfePqEQLXKmUetJt6ngpxjgJ2egWTJXEL6lxi14gGtCURzCAqnDflo4D9VgalqrMMmuWPqWu7opz1prFq6myakwGThp5n0Vr0NLzrWuHg+h/84YxD5cZuAXHNXgtrDHbDOWvEbncXoMKJY5D894W7gtKuUWwkBiFMv49DsmfsGOsmGqKUWD15zO7q7P2RTKK6KJYTo9GaXIVL/N/LVudD+z3dIftzsSRjJmkKEvjripFKMPmnlcmIQAt1m6MnaC/kLIRGSfXyPpTizdJgez26FQRVKuqJvyKwPv9hc/U2BTUjz6vuLjleqyU8kzCm0FanA==
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=ByHWbCQw1qr64D0awe/3ylho5kDseUdek9FFzu9zLuY=;
 b=F37Cpy8pU5TT0A2wkqbPdHlnRjJQm/1pEeocVeiFXeBiC7dhJQJ9d5puxjkOxHVVjBaH9lB6/AvzsWwB28bDPMyKSiudGHVLjqeJSzKxyOeLovtZbjbUPFprtQ7YFhCcbXZ/Bpi1DRCxwaUsgvLyTYAlQG2nu4Qj9z2gbml1ohOg91R1o4obPGX8MPEiR+u9pdLNQnkLs5nPWmO0D+xdRP5eUZ3QSGuIhQJHNzxMnPKlkTljSsH1EsXuyEgmWOlbNbTn883n6oeZqMPm/oqUdLG96KeUTyOMTi1B2/8uBinAB2MRA4er9n+EUVldmHIFr6SSmnqdSILb6fIfrsLA/A==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Nicola Vetrini <nicola.vetrini@bugseng.com>, Doug Goldstein
	<cardoe@cardoe.com>, Stefano Stabellini <sstabellini@kernel.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien
 Grall <julien@xen.org>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] misra: add deviation for MISRA C Rule 11.3
Thread-Topic: [PATCH] misra: add deviation for MISRA C Rule 11.3
Thread-Index: AQHcEaKMMDydbZiTjE+UNGKddouDNbRs1fAAgABSSoA=
Date: Thu, 21 Aug 2025 14:13:22 +0000
Message-ID: <159de776-d0bf-4f77-a6b6-670246eca85e@epam.com>
References:
 <d6a8682c98880d66ea99f882520b3defda0e3fe0.1755672275.git.dmytro_prokopchuk1@epam.com>
 <5199396a-685c-4839-b7cb-d32e3f4a0b48@suse.com>
In-Reply-To: <5199396a-685c-4839-b7cb-d32e3f4a0b48@suse.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV2PR03MB9572:EE_|GV2PR03MB9499:EE_
x-ms-office365-filtering-correlation-id: 6cd6bee6-4b10-4fea-5261-08dde0bce2fb
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|376014|7416014|42112799006|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?RE10QWx3QSs1R21qUFZoczVCV0REeEh5d0JNSHlCMEJkMmVkbW8rVGFxZEht?=
 =?utf-8?B?dmpxcDltV24wK3NySldNKzBjL0ZYTHN6ZGxWM3Rid1phcno4UzN4K0JTb3ow?=
 =?utf-8?B?TWdiaEpIZkZ2a0ttaGp2UlF4dm8vSUtrVDZIMjd4ZzhQRXJQUnZYbExjRWVo?=
 =?utf-8?B?SFdyTitXQkd2SFFPdVZiMktCTUw1Qkg5TDVyT2RWTUFBN2dlRVRYOWdDdFE2?=
 =?utf-8?B?dHZ1RjcyRlZoV0tSZmtiSkdLSWJIMDRtMXF2alkrQTd0Tm9DU2ZrT0htZWtK?=
 =?utf-8?B?aW9qRHpOSk93VytMQlNxeC9pUkgzZm9YWThETVVXaEw5QzB6WXd1L0NPQjVO?=
 =?utf-8?B?K0pkT3BDSlNwZmcrU2hNOEFWdHJxRDJTeUlidmFiOVN6ZHdTQlV6M2Rua3Fr?=
 =?utf-8?B?dkxqSSthSUxNbmY4WEtZSVVtOXpJT1RCUTlSeS9hdzFNRyt6RTVjZkk4VEdz?=
 =?utf-8?B?WE16YS9NM3lvbjRzWkM4UTJ4ZDdOWWNxSkdNektpZnErUDU5QlVTTU5zemw5?=
 =?utf-8?B?UFVNVDZMS1lEVUdPQ0paRkhMb1hPQlk3b3o1K0NqcWtlMks0bEhVWFJ1TjVq?=
 =?utf-8?B?VGQ5bnhoU2Fza0JjMk9NQ00xdDdHcnBab1QzdmxsWU40MUxRaTZPNEQ1NE0v?=
 =?utf-8?B?dU9LRUFCSHNBN25EL05vRTFEZ1BXcDQxVldrTThBRGYzMkhyN2JydytkTXBH?=
 =?utf-8?B?SXlIV0hSOUk2ZGlSdkpaM1NPTkNkYUVwckZGYnAwTUpBNkZnQ0ZvYTFpdk5L?=
 =?utf-8?B?Z0dZWkRZYUV2L1g3TU5mOUE1M0gzYkJVcTJneGZscmZMb1pZSXI3N3V0ZERs?=
 =?utf-8?B?V0RIN3hFWHo0OVA3dGFPREkrd3pCWVRoZmQ2K09EaUc2T2RmbEZxc2xMV2FU?=
 =?utf-8?B?Um8wWk9PcmhkWnlINjFISm12ZUVxR3oxNGlkemtGcW9XMW9lSmRkVHR4UnZh?=
 =?utf-8?B?T0ZaS3Q0QWhXOThEVmorb3c0bXZqZDJ3SC9oQ1B2aFh5NTN4RnJDM21rVjBV?=
 =?utf-8?B?VTJxall0UlUyVlYrZFJBRnBvUVJyNHhTOXpIMkwwY2JZTFIvZWVDK3pCU2Fj?=
 =?utf-8?B?NG82eEpWdTNvNGhkZGszbUdvSnNKRW40aktVdGNjb2tWTDBGTVZoQU5GcFBH?=
 =?utf-8?B?VlhRNDVOSUFNL0pzeEE1L3E0Ti9ZNHJWcldNck5Gdkg5MGZUd09LdFRXUTJi?=
 =?utf-8?B?Qi9JVHYwdTRNS2ZpdnhIOFhDSmRXU0lhcm5FOEFxSTAxbmpra3RzRldONDZl?=
 =?utf-8?B?eWxwRForVUVoNkNSclFLSjY2YWRkeEJCSmRIWmI1QWNUTDFCYlBhTnpabUxW?=
 =?utf-8?B?MyttVFVFVkZETDIyakVVTStFajA1Vkw3T0ttbjRxRzc0Q0NhRGhlZDI0U0M1?=
 =?utf-8?B?OXlUK25Cb0pqSjR0RU03QjNGV1lva1hRSlRxQkMvVkJKNTJqaGs3a1pZNTR5?=
 =?utf-8?B?NXE1dUhrVi9ubnZidHdZMjlDS3hRcUhRdmNxbWNkTm1jUE9xY3ZTUmIwMXRx?=
 =?utf-8?B?NGxSMytRclRYL2R1U2VSOHRQMnJvenRKQWFhRlNVQURvakpLQ0EyLzJRYk9L?=
 =?utf-8?B?a1hIb045RkZVZnNjd1hUUHZ1UGVLWlRkeHZ1cTFvR01NR0tBTnpjRU5NcDJ4?=
 =?utf-8?B?eEcrSTA4YzVkNm9jdEx0cXNhM0N6MjNsS2Q0cm9iTnErWlE4SWYyMW1DaGJP?=
 =?utf-8?B?K0dXdW52U1JuVWhiZ1U3b00wbFRiR29MMUtFOUZDeUtqZk9McjZrUXhCKzR4?=
 =?utf-8?B?NldZSzc3NnJtTGUxakVrQWdQL2JVejJSL2dtQzBSQ2crM1d0dlRjN2dXeGdS?=
 =?utf-8?B?a1pWT1ZsUkRMZmxBWTNydTRuZ3ExUDdiUnBtV1ZhVSsyaG9kU3RaNThZMHlu?=
 =?utf-8?B?REZpTk1TZkFHZlZDWFJlWVRROWxQZlFSRUoxLzJJMlIwOUhyeEVMSHB5bDgy?=
 =?utf-8?B?RTJZdFpLMlFxeS9tS3JLYU5JeFhKOVJqRk9LVzBTSzhmYStYVkg5Q2dqNmZl?=
 =?utf-8?B?TEo0SGhUY1VnPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(42112799006)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?UmN4TytTK1Eyc2dGckxEU1NtNVZTbTFBR0lxSmNRYTVDMTVaYVpXV1hCQzFr?=
 =?utf-8?B?RFo1THB1MVBuUjdlaldEdjY0VCtPdW96cmMxUlpmdm1TZ3VqM1pVZU9MZTha?=
 =?utf-8?B?WlJhSUYzc3lNR1pFYXNBVm9LeEpPLzJUNHdzVWJvMHRDcmZYbzdyOU1uSzVs?=
 =?utf-8?B?NnRuVjZwQmNCeHZwUVpBM1N4cnhta0tCVDhPNGt0UFdxaE5oL2x3MkFMLzJP?=
 =?utf-8?B?RUpjWFN6VWM4K3FDelZvcjZvcHhieDhjMWhpdExtUHR1cFZWKzF5c0RMSENk?=
 =?utf-8?B?YVNoQUhIZ09EUVNRNGl2NnFFQTI0NDh0TWlxS1MveTZ4VFcyYktGU1RZMDVI?=
 =?utf-8?B?eHpESHFuNFRMSHNaUHN1cXVmcnpVaVNsc0t3RjFmYVlETjJ3eWQwL0h3VTI2?=
 =?utf-8?B?amw0WjY0SllUUEV6TVcxUUZlYVFOU3pNU0ZOWW15eVBXUllIVXpHYWxLTUVM?=
 =?utf-8?B?MTcrcmlFc0g2ZitnWTl2RWZWb3hJQlduNFVwam1rbUp1b09pTHZuTXIzMEhS?=
 =?utf-8?B?NVRRMHVCR2Q3dnByRXpKcjRHSlpUWmlvTEpTUkxtK0pSbWhWT2lwcVltblNG?=
 =?utf-8?B?aVRBT1VkZDlKUVVneHBwUnR6Y0ptUExqelk1M2ZKQWJhcU5raG9hVjRWWTE3?=
 =?utf-8?B?L3FxUGRUVWhoUW5TUlVnOW1UL090VmR0OGNUaEl4Q2JSalA1dzN1VTBaQVdv?=
 =?utf-8?B?di80NlI4UU5tdmV2QTBiM2lQZHFVRmNlalA1YTNtRHBjL1BjVi92OVE0Q0Jm?=
 =?utf-8?B?cEdqQzN5L1JsV0ltaCsyVC9nUEJpbXFmY0lqdWx5Q05DUk9XbWZZRTZPdU84?=
 =?utf-8?B?UVozTENyM0pQTDlMZTlwWTlLWDI5RTFzdEpYWWJGYkhHb1o2bnIzR3ZtSWRF?=
 =?utf-8?B?MGVOUG1USS9sUExESFFORVNYTlEzekNOM2trMGZsUHkvaWR1SUtlVXFQTjJx?=
 =?utf-8?B?YU1XcXFYU05ndXptSTlUT1phSjBzbHFxa3V4KytFQ2djVUdEbWU2MThsdXd1?=
 =?utf-8?B?T3A0Ynp2cnprVTV3eEsyWHd3VWhqYVoyem5OemRQOXNYbjRSZWZNaWU1OW82?=
 =?utf-8?B?ZnhkMUwzRUtQeEI5RXpSYXhld1hubS8yakpGNXRkWWtmNWFWaUY5YkRNVjdH?=
 =?utf-8?B?ZytxejNWNXJWb0I2dHoyQmwwU0dtSVdsUG1oajRQbnJORFdFOEJaTGhORFFX?=
 =?utf-8?B?QzZubWd4UnB0MXZkTkZVY3dxUGNMZnMvTVVJRG5kbDlORkpZZ2J3b0NwTXh5?=
 =?utf-8?B?WVcyYm1JZE5UcFlXZGtuait6bWt1ZDBJczYyMGxaWURaWUxKeDBMME1Yek02?=
 =?utf-8?B?b3V3Nko2cUtpOWR5VDRzSUd1QXYrakxkYVJTUkx1VkhiVzF1OGF5K0NsQU9t?=
 =?utf-8?B?dU1XQWZ5a25TNldNbFQwQ2hOckxFWWRVZFJoWE9BU0NBM0dub1hEZkRIQXpG?=
 =?utf-8?B?QzZKTWsrVXIxNDVjMHkycFQyNDdXR1R1anFiaVlQTStYcVluRnF3ckJOOVhn?=
 =?utf-8?B?QWdDQ2NuR0NMMm9PV25CaitpQlZzcGxEMDNEVlN1Q3psdkVvUG1wMzNnT2My?=
 =?utf-8?B?MUFvRmIyQlVMb1pIQ2djSjV5UU1FR2VxY2UzNmliQ0VFVWN2RFhTSjF2eUJV?=
 =?utf-8?B?VTVoelFPOFZjR0U1YWlJZDBMaWVVR1J5aXVweHBxNElmbFpNbU9mSnBEbmhN?=
 =?utf-8?B?ZGtoRStOVk5qT1ZZdHdqMnhBdHdXdkhVaDh2RkRRTU9uK3hhOU1OT0FFVkhY?=
 =?utf-8?B?RHkzZXJxb2RpczBGTms2Z1N5MkppSUsvTWREUUlpTzRHVHI4aVRTRnppKzRW?=
 =?utf-8?B?KytzUnlSS2tsTVFDcHlIdXdFSlZyUVRNOEZIYk5xOW5kNUhmSGV4VUd1dTYz?=
 =?utf-8?B?M09sRFhLZE4zYXl5a2xpa1FNK2c3N2FrejYzNUlFSzNhdm1BYU02Q2dIZFh1?=
 =?utf-8?B?NCtQeEF6dEg5V3h2SGNYSTY2REV4d0VsNE90UXZOdVNkLytTV1JpdVozaXBJ?=
 =?utf-8?B?alFMekpKZU1JMm5sc1YyUHBwajZncEJ3OWd1R093bHZWbDl3MVV6SEpxTk0r?=
 =?utf-8?B?WXdtR3l2Znlydm5LK3B6cUNqaEt5b3Q3WWsrckpIUW5ZNWw1VWRYdUdUTW5F?=
 =?utf-8?B?QkREejA1NUp2UlBUdnR5TEVIZ3JTV3l4Q2Z3eGQ3eUZFVHFheG9wNW5xZzND?=
 =?utf-8?B?VlE9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <50BD92532C083547854ADC2BEE8F815E@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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6cd6bee6-4b10-4fea-5261-08dde0bce2fb
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Aug 2025 14:13:22.2830
 (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: pJq/p7Pi+mBF7P34Bmg0viEEjHdtAOBSDzqFqcdkDay1hIvjBtqDLANoTciWdwyWAlBOBhTyb2zAMJWyOGTXttYJq6RnmAKS+w5t6UUvkJY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR03MB9499

DQoNCk9uIDgvMjEvMjUgMTI6MTgsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAyMC4wOC4yMDI1
IDA5OjE3LCBEbXl0cm8gUHJva29wY2h1azEgd3JvdGU6DQo+PiBNSVNSQSBDIFJ1bGUgMTEuMyBz
dGF0ZXM6ICJBIGNhc3Qgc2hhbGwgbm90IGJlIHBlcmZvcm1lZCBiZXR3ZWVuIGEgcG9pbnRlcg0K
Pj4gdG8gb2JqZWN0IHR5cGUgYW5kIGEgcG9pbnRlciB0byBhIGRpZmZlcmVudCBvYmplY3QgdHlw
ZS4iDQo+Pg0KPj4gVmlvbGF0aW9ucyBvZiB0aGlzIHJ1bGUgYXJpc2UgZHVlIHRvIHRoZSAnY29u
dGFpbmVyX29mJyBtYWNybywgd2hpY2ggY2FzdHMNCj4+IGEgbWVtYmVyIG9mIGEgc3RydWN0dXJl
IHRvIGl0cyBjb250YWluaW5nIHN0cnVjdHVyZToNCj4+ICAgICAgY29udGFpbmVyX29mKHB0ciwg
dHlwZSwgbWVtYmVyKSAoeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPj4gICAgICAg
ICAgICAgdHlwZW9mX2ZpZWxkKHR5cGUsIG1lbWJlcikgKl9fbXB0ciA9IChwdHIpOyAgICAgICAg
ICAgICBcDQo+PiAgICAgICAgICAgICAodHlwZSAqKSggKGNoYXIgKilfX21wdHIgLSBvZmZzZXRv
Zih0eXBlLG1lbWJlcikgKTt9KQ0KPj4NCj4+IFRoZSAnY29udGFpbmVyX29mJyBtYWNybyBpcyBz
YWZlIGJlY2F1c2UgaXQgcmVsaWVzIG9uIHRoZSBzdGFuZGFyZGl6ZWQgYW5kDQo+PiB3ZWxsLWRl
ZmluZWQgJ29mZnNldG9mJyBtYWNybyB0byBjYWxjdWxhdGUgdGhlIG1lbW9yeSBhZGRyZXNzIG9m
IHRoZQ0KPj4gY29udGFpbmluZyBzdHJ1Y3R1cmUsIHdoaWxlIGFzc3VtaW5nIHByb3BlciBhbGln
bm1lbnQgYW5kIGVuc3VyaW5nIG5vDQo+PiB1bmRlZmluZWQgYmVoYXZpb3IsIHByb3ZpZGVkIHRo
YXQgdGhlIGlucHV0IHBvaW50ZXIgaXMgdmFsaWQgYW5kIHBvaW50cyB0bw0KPj4gdGhlIHNwZWNp
ZmllZCBtZW1iZXIuDQo+Pg0KPj4gQ29uZmlndXJlIEVjbGFpciB0byBzdXBwcmVzcyB2aW9sYXRp
b24gcmVwb3J0cyByZWxhdGVkIHRvICdjb250YWluZXJfb2YNCj4+IG1hY3JvLiBVcGRhdGUgJ2Rl
dmlhdGlvbnMucnN0JyBmaWxlIGFjY29yZGluZ2x5LiBBZGQgUnVsZSAxMS4zIHRvIHRoZQ0KPj4g
bW9uaXRvcmVkIGxpc3QuDQo+PiBObyBmdW5jdGlvbmFsIGNoYW5nZXMuDQo+Pg0KPj4gU2lnbmVk
LW9mZi1ieTogRG15dHJvIFByb2tvcGNodWsgPGRteXRyb19wcm9rb3BjaHVrMUBlcGFtLmNvbT4N
Cj4gDQo+IExvb2tzIGxhcmdlbHkgb2theTsganVzdCBvbmUgbml0IGFuZCBhIHF1ZXN0aW9uOg0K
PiANCj4+IC0tLSBhL2F1dG9tYXRpb24vZWNsYWlyX2FuYWx5c2lzL0VDTEFJUi9kZXZpYXRpb25z
LmVjbA0KPj4gKysrIGIvYXV0b21hdGlvbi9lY2xhaXJfYW5hbHlzaXMvRUNMQUlSL2RldmlhdGlv
bnMuZWNsDQo+PiBAQCAtNDAzLDYgKzQwMywxNCBAQCBiZWNhdXNlIHRoZSBzZW1hbnRpY3Mgb2Yg
dGhlICdub3JldHVybicgYXR0cmlidXRlIGRvIG5vdCBhbHRlciB0aGUgY2FsbGluZyBjb252ZQ0K
Pj4gICB9DQo+PiAgIC1kb2NfZW5kDQo+PiAgIA0KPj4gKy1kb2NfYmVnaW49IkNvbnZlc2lvbnMg
aW4gdGhlICdjb250YWluZXJfb2YnIG1hY3JvIGFyZSBzYWZlIGJlY2F1c2UgaXQgcmVsaWVzIG9u
DQo+IA0KPiAiQ29udmVyc2lvbnMiIChhbHNvIGluIGRldmlhdGlvbnMucnN0KQ0KPiANCj4+IC0t
LSBhL2F1dG9tYXRpb24vZWNsYWlyX2FuYWx5c2lzL0VDTEFJUi9tb25pdG9yZWQuZWNsDQo+PiAr
KysgYi9hdXRvbWF0aW9uL2VjbGFpcl9hbmFseXNpcy9FQ0xBSVIvbW9uaXRvcmVkLmVjbA0KPj4g
QEAgLTQ1LDYgKzQ1LDcgQEANCj4+ICAgLWVuYWJsZT1NQzNBMi5SMTAuMg0KPj4gICAtZW5hYmxl
PU1DM0EyLlIxMS4xDQo+PiAgIC1lbmFibGU9TUMzQTIuUjExLjINCj4+ICstZW5hYmxlPU1DM0Ey
LlIxMS4zDQo+IA0KPiBXaGlsZSB0aGUgZGVzY3JpcHRpb24gbWVudGlvbnMgdGhpcyBjaGFuZ2Us
IGl0IGRvZXNuJ3Qgc2F5IHdoeSAoZS5nLiAibm8NCj4gdmlvbGF0aW9ucyBsZWZ0IiBvciAib25s
eSB0aGlzIGFuZCB0aGF0IHZpb2xhdGlvbiBsZWZ0IiBvciBzb21lIHN1Y2gpLg0KQVJNOiAgODEz
ViAtPiAgIDE2Vg0KWDg2OiAxNDIyViAtPiAxMDM1Vg0KDQpMb29rcyBPSyBmb3IgQVJNICh0byBi
ZSBhZGRlZCBpbiB0aGUgbW9uaXRvcmluZyBsaXN0KSwgYnV0IFg4Ni4uLg0KQW55d2F5IHRoZSBu
dW1iZXIgb2YgcmVwb3J0ZWQgZXJyb3JzIGhhcyBubyBzaWRlIGVmZmVjdC4NCg0KSmFuLCBkZWNp
c2lvbiB1cCB0byB5b3UgKGluY2x1ZGUgaW50byBtb25pdG9yZWQuZWNsIG9yIG5vdCkuDQoNCkRt
eXRyby4NCj4gDQo+PiAtLS0gYS9kb2NzL21pc3JhL2RldmlhdGlvbnMucnN0DQo+PiArKysgYi9k
b2NzL21pc3JhL2RldmlhdGlvbnMucnN0DQo+PiBAQCAtMzkzLDYgKzM5MywxNCBAQCBEZXZpYXRp
b25zIHJlbGF0ZWQgdG8gTUlTUkEgQzoyMDEyIFJ1bGVzOg0KPj4gICAgICAgICAgKGkuZS4sIGxl
c3Mgc3RyaWN0KSBhbGlnbm1lbnQgcmVxdWlyZW1lbnQgYXJlIHNhZmUuDQo+PiAgICAgICAgLSBU
YWdnZWQgYXMgYHNhZmVgIGZvciBFQ0xBSVIuDQo+PiAgIA0KPj4gKyAgICogLSBSMTEuMw0KPj4g
KyAgICAgLSBDb252ZXNpb25zIGluIHRoZSAnY29udGFpbmVyX29mJyBtYWNybyBhcmUgc2FmZSBi
ZWNhdXNlIGl0IHJlbGllcyBvbg0KPj4gKyAgICAgICB0aGUgc3RhbmRhcmRpemVkIGFuZCB3ZWxs
LWRlZmluZWQgJ29mZnNldG9mJyBtYWNybyB0byBjYWxjdWxhdGUgdGhlIG1lbW9yeQ0KPiANCj4g
QWN0dWFsbHkgYW5vdGhlciBuaXQ6IEhlcmUgYXMgd2VsbCBhcyBpbiB0aGUgZGVzY3JpcHRpb24s
IGl0IHdvdWxkIGJlIG5pY2UNCj4gdG8gYWRkIHBhcmVudGhlc2VzLCBzbyBpbmRpY2F0ZSB0aGUg
ZnVuY3Rpb24tbmVzcyBvZiBib3RoIG1hY3JvcyAoaS5lLg0KPiBjb250YWluZXJfb2YoKSBhbmQg
b2Zmc2V0b2YoKSkuDQo+IA0KPiBKYW4NCg==


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 14:25:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 14:25:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088727.1446450 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up6Dy-0001T6-0z; Thu, 21 Aug 2025 14:25:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088727.1446450; Thu, 21 Aug 2025 14:25:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up6Dx-0001Sz-UM; Thu, 21 Aug 2025 14:25:05 +0000
Received: by outflank-mailman (input) for mailman id 1088727;
 Thu, 21 Aug 2025 14:25:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=hypg=3B=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1up6Dx-0001St-4I
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 14:25:05 +0000
Received: from fhigh-b4-smtp.messagingengine.com
 (fhigh-b4-smtp.messagingengine.com [202.12.124.155])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9f97450d-7e9a-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 16:25:02 +0200 (CEST)
Received: from phl-compute-10.internal (phl-compute-10.internal [10.202.2.50])
 by mailfhigh.stl.internal (Postfix) with ESMTP id EB5C57A017A;
 Thu, 21 Aug 2025 10:25:00 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-10.internal (MEProxy); Thu, 21 Aug 2025 10:25:01 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 21 Aug 2025 10:24: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>
X-Inumbo-ID: 9f97450d-7e9a-11f0-b898-0df219b8e170
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=1755786300;
	 x=1755872700; bh=OhNxsoFFQkWTaZaZT00LqF9GNpUuUugqkBvIccRcWlw=; b=
	Ms6l39ER5nIGQx2FJumqxhwu+WrmrnJ6sLljRyIdojiTcnFKvSZStq4fB+NfwSCH
	fXAVN+FVEtc287BgT12UobkUBm9CwPzIb0MuCsjFof+26A09OTHlI2gSwBW5mN0W
	HVPtpA1ptouwaFSjg5OraeYs6uCIYPRxQVUgTVgS/7vVbtZpFjJpESfPMW6lhDY4
	Vch2LsNWhxC1DR4+2uCCEyZLy3aAKLl+q87Yq5rjJYrsZJhPeou96AuadwUe69nS
	CC49Iw6DK5IBICfgv2Qd4IPOIKhSaED66hrGxU0pVSSFwe9f/3dor57nmxf4QhUD
	6AhGkzFimGY0k5JFbBSEQw==
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=
	1755786300; x=1755872700; bh=OhNxsoFFQkWTaZaZT00LqF9GNpUuUugqkBv
	IccRcWlw=; b=lKzZUpE1KHLROxrq5+gxaXLFRn6ZGznzPNpGTbUAbRtzBDNszKG
	G3holoYGgat3DznEoc/YlwkEKH+isQB3nijHsd8LGNN0Snzd0Bi0Eq0dkiNYr/gA
	R45shUK9AH33P9tGN7Z6xIh2bsMpTVuV84yzs7+lH02NQB0RrLamm6xD7uJ5DUnL
	QDk7X74IGeMBCFyQJio1AU5hA5/vNM4Ghag00bAmVtwaULHuzxFNbQQTr9Agtwkf
	fPK9S/FoqrJ8N2HwZ1IaX3ZhDr8U1mi2MIZE3Uuvqgz6dA5ZD0vAgMBKdvCkucia
	IbzH2W8NmXVLjLxeS5enWyosFriH7AGKvAg==
X-ME-Sender: <xms:PCynaB395SiLFYhLJMq4OasDFxxGB1ita5yuN2u65gtAWZ-4LDbzhw>
    <xme:PCynaCrh-vWNokDwB4-ZDG0cDymxO1Xxx3PvWVDDx5BzkjqyCZ9JBrshT5NzfGYQ-
    fL8BwG4enJIVQ>
X-ME-Received: <xmr:PCynaOeo9fntOHP7wmctoeD4iwTMM4WRwOMK-JvMqg9u-y4cAWaXy9zcXuXF4ZnVuTT9pyXL6WOvK-xOJqZMvu6oM2Db3IGS1Oc>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgdduiedugeejucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnheptdfhlefh
    vefgheefkefhieeivdeivefghefgfffggfdvhfektdffvdehudfhteegnecuffhomhgrih
    hnpehprghttghhvgifrdhorhhgpdhgihhtlhgrsgdrtghomhenucevlhhushhtvghrufhi
    iigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeegpdhmohguvgep
    shhmthhpohhuthdprhgtphhtthhopegumhihthhrohgpphhrohhkohhptghhuhhkudesvg
    hprghmrdgtohhmpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhp
    rhhojhgvtghtrdhorhhgpdhrtghpthhtohepughpshhmihhthhesrghpvghrthhushhsoh
    hluhhtihhonhhsrdgtohhmpdhrtghpthhtohepjhgsvghulhhitghhsehsuhhsvgdrtgho
    mh
X-ME-Proxy: <xmx:PCynaBqqjdcP1hqKx_0u6tSDsWOC6R1N6kAntS9ypvwS3Pccst7bIA>
    <xmx:PCynaPEWs7iBGkl82ASqeq1oXEWmYGhHvibpbL04G8i33Zmrb4CWVg>
    <xmx:PCynaBte9DYPuLXEQPW6a8aE2tjgCUHw72w7wkSE4905I8UxHTwmBg>
    <xmx:PCynaBU6qTiWMR1kKva6KZe1VqXCT-vP2I4q1otOmDdvIduAZr-Z1Q>
    <xmx:PCynaPLeZqRhZ9ZTBBg5j3lapMAV80Vfje7Ip9ARLFuP98f-vGNp5Y0N>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 21 Aug 2025 16:24:57 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH v3] common/efi: fix Rule 2.1 violation in read_file()
Message-ID: <aKcsObV9UssO8ckZ@mail-itl>
References: <4a1a4a3406d227348afa1ad2ce90dc5264fdb44a.1755783750.git.dmytro_prokopchuk1@epam.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="BuoLVtSrTj8aCcHX"
Content-Disposition: inline
In-Reply-To: <4a1a4a3406d227348afa1ad2ce90dc5264fdb44a.1755783750.git.dmytro_prokopchuk1@epam.com>


--BuoLVtSrTj8aCcHX
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 21 Aug 2025 16:24:57 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH v3] common/efi: fix Rule 2.1 violation in read_file()

On Thu, Aug 21, 2025 at 01:56:28PM +0000, Dmytro Prokopchuk1 wrote:
> MISRA C Rule 2.1 states: "A project shall not contain unreachable code."
>=20
> The return statements in the 'read_file()' function is unreachable due
> to function 'PrintErrMesg()' which has 'noreturn' attribute:
>         PrintErrMesg(name, ret);
>         /* not reached */
>         return false;
>     }
>=20
> No explicit return statement is needed here. Remove the statement and
> write a justification comment instead. No functional changes.
>=20
> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
> ---
> Link to v2:
> https://patchew.org/Xen/c20a58f24875806adfaf491f9c6eef2ca8682d18.17557115=
94.git.dmytro._5Fprokopchuk1@epam.com/
>=20
> Changes in v3:
> - removed unreachable code instead of deviation
> - updated commit subject and message
>=20
> Test CI pipeline:
> https://gitlab.com/xen-project/people/dimaprkp4k/xen/-/pipelines/19964394=
44
> ---
>  xen/common/efi/boot.c | 10 +++++++---
>  1 file changed, 7 insertions(+), 3 deletions(-)
>=20
> diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
> index 50ff1d1bd2..325de05b18 100644
> --- a/xen/common/efi/boot.c
> +++ b/xen/common/efi/boot.c
> @@ -851,9 +851,13 @@ static bool __init read_file(EFI_FILE_HANDLE dir_han=
dle, CHAR16 *name,
>      PrintErr(what);
>      PrintErr(L" failed for ");
>      PrintErrMesg(name, ret);
> -
> -    /* not reached */
> -    return false;
> +    /*
> +     * No explicit return statement is needed here because 'PrintErrMesg=
()' is
> +     * marked as 'noreturn', which guarantees that it never returns cont=
rol to
> +     * the caller. If the 'noreturn' attribute of 'PrintErrMesg()' is re=
moved
> +     * in the future, compiler will emit an error about the missing retu=
rn
> +     * statement (build-time safeguard).
> +     */

I don't think this verbose code comment is needed here. Other similar places
use simply "Doesn't return." next to the function call, or nothing at
all if the function name already suggests it (which IMO is not the case
here). The longer explanation may be put in the commit message.

With that addressed:

Reviewed-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.c=
om>

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAminLDkACgkQ24/THMrX
1yyUaAgAiB7ExZW4a01QoXccHKyss6IfgsRjlpvz8ODoSiMIMXHQi6Cvob9iDKyx
F+RQKrbDIDKGTEbBB1bFvQ/amtxP5EYBto4vU20YM/ugqYedbNMRg8Zxqs3MtVM3
CIMDtecd7yyFkgGwfEvgCVv+Fihrbf8kWcq/fcrAgfMVRLsjJhU0WHANWGrtpxfr
c6svlwG+wzlnTi8Spd9OiSjun0jK20W6v9xm5rpKM1o6gHLZurCy/wJxfDbCpJLW
llSsVl39Vi2NiyBr3i3B2b13oOiAOaycb4F9wJU0GqJ+rg8bJ+uJeIGHB9nIubyH
WfAkv2Hy5kBWxLet2qTpfeuADUiojw==
=I3kr
-----END PGP SIGNATURE-----

--BuoLVtSrTj8aCcHX--


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 14:26:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 14:26:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088736.1446461 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up6Fa-00020E-Bs; Thu, 21 Aug 2025 14:26:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088736.1446461; Thu, 21 Aug 2025 14: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 1up6Fa-000207-80; Thu, 21 Aug 2025 14:26:46 +0000
Received: by outflank-mailman (input) for mailman id 1088736;
 Thu, 21 Aug 2025 14:26:45 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5Hha=3B=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1up6FZ-0001zy-9i
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 14:26:45 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dca9b967-7e9a-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 16:26:44 +0200 (CEST)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-afcb78c66dcso161333366b.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 07: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
 a640c23a62f3a-afded0717ecsm403034766b.0.2025.08.21.07.26.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Aug 2025 07: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>
X-Inumbo-ID: dca9b967-7e9a-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755786403; x=1756391203; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=cyYYYp05zdPE8e+y+YyFn0UWbrwWjLoj2G4zU6x/hnE=;
        b=gnzK8oUR8dPhDPPT9VuaRk8YEIxhRqHl4O8YDT/UoMjaGjGqnKmouPC1XPPZrPia/z
         mPX/whaGKI70bgFskZpzlsgFyiJEuZslOlNTj7/af1DBI9l1gefbMyDsgH9vCMrnk+fC
         nH4yvwTexNnCpTjksMPyhQIXCm6/Nre//7ZLnhe427SPlH2LjN54/0dmS+k3+tadlrCI
         ARsl259+iAklyW6s+AyB5n6qHA6eRYp6flk0rn0eEimKWXklhV8+0PKS36emF6vM8f5a
         xTQluL5ccWhwJQac+2oDGEgSLpUWThuHA044cEBvQEGG9qBszM1MM6Rst6twf4rOur67
         m3Sw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755786403; x=1756391203;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=cyYYYp05zdPE8e+y+YyFn0UWbrwWjLoj2G4zU6x/hnE=;
        b=ItxSp3xUFnn5PICowxD8L0zVv+Y/1AuUs4xuEvo/rP5Y8Ert6li4WP10xpHCgK5yt8
         QN5NxPz3y21tM7wHvl1J8MmXRYC8PfYFSIEVojhLdV7/sqefOtJ8l/JrrZ3tvjLH4wzp
         CWyzv5386XmEEyma3ZIAgzTXHKSL1X4yWVQ7V/a3RtNaVl3Iq9w1IGia10s4dOcy+HMF
         4pFwML17vADka1tF8edolcT/RDHCfsHxjP0bCgnkZBSAajhNYlPhRkbvlqhwzSnLUXdU
         q0EGGJKqNhpVCpbfq+qQjJcZn/i2brzub7vFoHtxvAYmVD+ES6FbgmsXX8/h1DGbYMcC
         34Pg==
X-Gm-Message-State: AOJu0YwsR2cBLlK0MDkLiWxwr9sXLQx2x2yUJ38HW0e3Zb7Er6vd785P
	vzTyw1Fo9he1OCrjlYSGlismK6Ihtsyq1R9SctKJn86AoiqNNUKNpzgxfhctDvJE5g==
X-Gm-Gg: ASbGnctSpavP8NSkzL55uOAogQ73yOFYO7hg92/GdRNKdUiVoZqGaHWkH36vY7b91FM
	tvuJsT8xul+KUgt+zATr6O59SdZve7DhcFphiZrj7s8AufWH8pTOdh5Jsa15isXail+Tk0FnSht
	JduymFcTYMoTIc/pNZcAQ1rp7mITGwpXjtlX4Z6V7KBJAdwELRgq5RbNQJxzrrxkt4y26XdxPFj
	WOXa9kRRicqqbYMkbbWgxMZR85A3+xfV7ovGh51hoIYS9X4DVVsa+qxNRbZm3q5X3Ir3XEX15cm
	57/aopaR0d2TzeDMBhGTHGHdhYBJUV0xOrz5xCMt5ecrt4aRQOpdcOpWAaCD2ntDjyM50mK98Fs
	bD8C1h0dwc39tuZ6VGp9i274mWXhYAjKuu5R0t740lHZ9tndW1snoWCGVx2quj68Fjp0PSOwg4w
	HWastPhn+HUu9Oef8eQg==
X-Google-Smtp-Source: AGHT+IEYjAhrToYww0eYyQ7Bl6IHIolVSriwJuh2+q4J1/rwnYSqM0zTvu1TrOrhAooQdxh9kP+mTg==
X-Received: by 2002:a17:906:ef09:b0:ae3:bb0a:1ccd with SMTP id a640c23a62f3a-afe079f3318mr227248566b.26.1755786403522;
        Thu, 21 Aug 2025 07:26:43 -0700 (PDT)
Message-ID: <cf9f121b-347b-4406-9b93-63375c3bdab7@suse.com>
Date: Thu, 21 Aug 2025 16:26:42 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] common/efi: fix Rule 2.1 violation in read_file()
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>,
 Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>
References: <4a1a4a3406d227348afa1ad2ce90dc5264fdb44a.1755783750.git.dmytro_prokopchuk1@epam.com>
 <aKcsObV9UssO8ckZ@mail-itl>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aKcsObV9UssO8ckZ@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 21.08.2025 16:24, Marek Marczykowski-GÃ³recki wrote:
> On Thu, Aug 21, 2025 at 01:56:28PM +0000, Dmytro Prokopchuk1 wrote:
>> MISRA C Rule 2.1 states: "A project shall not contain unreachable code."
>>
>> The return statements in the 'read_file()' function is unreachable due
>> to function 'PrintErrMesg()' which has 'noreturn' attribute:
>>         PrintErrMesg(name, ret);
>>         /* not reached */
>>         return false;
>>     }
>>
>> No explicit return statement is needed here. Remove the statement and
>> write a justification comment instead. No functional changes.
>>
>> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
>> ---
>> Link to v2:
>> https://patchew.org/Xen/c20a58f24875806adfaf491f9c6eef2ca8682d18.1755711594.git.dmytro._5Fprokopchuk1@epam.com/
>>
>> Changes in v3:
>> - removed unreachable code instead of deviation
>> - updated commit subject and message
>>
>> Test CI pipeline:
>> https://gitlab.com/xen-project/people/dimaprkp4k/xen/-/pipelines/1996439444
>> ---
>>  xen/common/efi/boot.c | 10 +++++++---
>>  1 file changed, 7 insertions(+), 3 deletions(-)
>>
>> diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
>> index 50ff1d1bd2..325de05b18 100644
>> --- a/xen/common/efi/boot.c
>> +++ b/xen/common/efi/boot.c
>> @@ -851,9 +851,13 @@ static bool __init read_file(EFI_FILE_HANDLE dir_handle, CHAR16 *name,
>>      PrintErr(what);
>>      PrintErr(L" failed for ");
>>      PrintErrMesg(name, ret);
>> -
>> -    /* not reached */
>> -    return false;
>> +    /*
>> +     * No explicit return statement is needed here because 'PrintErrMesg()' is
>> +     * marked as 'noreturn', which guarantees that it never returns control to
>> +     * the caller. If the 'noreturn' attribute of 'PrintErrMesg()' is removed
>> +     * in the future, compiler will emit an error about the missing return
>> +     * statement (build-time safeguard).
>> +     */
> 
> I don't think this verbose code comment is needed here. Other similar places
> use simply "Doesn't return." next to the function call, or nothing at
> all if the function name already suggests it (which IMO is not the case
> here).

Or simply keep the comment that was already there?

Jan

> The longer explanation may be put in the commit message.
> 
> With that addressed:
> 
> Reviewed-by: Marek Marczykowski-GÃ³recki <marmarek@invisiblethingslab.com>
> 



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 14:28:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 14:28:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088745.1446471 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up6HD-0002WR-La; Thu, 21 Aug 2025 14:28:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088745.1446471; Thu, 21 Aug 2025 14:28: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 1up6HD-0002WK-IJ; Thu, 21 Aug 2025 14:28:27 +0000
Received: by outflank-mailman (input) for mailman id 1088745;
 Thu, 21 Aug 2025 14:28:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=aDER=3B=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1up6HC-0002WE-8i
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 14:28:26 +0000
Received: from DB3PR0202CU003.outbound.protection.outlook.com
 (mail-northeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c200::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 18d56f36-7e9b-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 16:28:25 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by AS8PR03MB6997.eurprd03.prod.outlook.com (2603:10a6:20b:295::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.24; Thu, 21 Aug
 2025 14:28:21 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9052.013; Thu, 21 Aug 2025
 14:28: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>
X-Inumbo-ID: 18d56f36-7e9b-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=SLB/rfLhp1qIg5vsJXHUd6WmKogkr82FOnwiTFsukVLkhS53lg/Ppl0NpOgpaqY6ywafELCkJ2ucNgPqLYATNlJVD653GiEixNXD5kLlKMoKhdh8K0u+UP0ekqWYIRmtuVD28IZ0mb64Yr0Fzv7DppGPdy2AUlTrYqr4XWnweSYEs9E3pWDsK+mqE4hhcqxF9FPA5S8uMWOKIzz0TLbbk2QbVxr7WAQjP1nogOMUyH2LrAZV6D+epKmPBFkQ/GDC6xwk9zOc/Xlkz69SZoV2uh2LIHzN8gYl1dNlfAxoo8l2O0l85qiupLz19rlplDInxmWcUgVO2qcUkOGcQYlLdg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=2pBSA7ptOM59xle2qOeWezWcB6iRprCVAaj5xGEaFcY=;
 b=N2UGrCYyNKK5ITy0hboB7grgwdsHX+hEGvIOmB9QfoGC0Kgi+Hlb0byEP+K8BH8EsSrSFODL5/FCZw4Gtr4Mnb0LQ+j95awbHZYZvm5/0VZ5GY2ol1S/+hx0MAPXxhOKOM11tKYzqHHk1a417PgZpeWtpW4lAzRhLa6AH3x2Fmlc1uRl2J1I8jzjpK/V+ggginxi2CWRO83BExT4xWs9IFzJbDNNLsmd2EhMxdlDdVESNVDapQVIU4Dr4DP/X7LWGWsMUivrb7FkNSB7JuIavHzIJ7d3YrYXgyt0pfFFCannN8QLMpbcODR0IidJccQOiVXOAg5vRyuJzXpdogWlTQ==
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=2pBSA7ptOM59xle2qOeWezWcB6iRprCVAaj5xGEaFcY=;
 b=Odb2gt0If/hqd4b3VTsMS7e+Zt8H58s5XP2N3eNnl2zjwV1IGlAGL+dGYZ+eh4RY9FkLgN158CSWbxmRNaS9hMA99cwdY/4XidwNOdBqWHhPS5j8wrHx7yMOVMTL2ymKWAg9CAIsncSFxyK5pYaEg9U2YB6lTfi3/eiVAB6hJPg2yE+lHNbA3om+paVBHWVZ9cvEUUy6eCApUfg2mPjc1Gl1+ccoRXYudDtfWQSY/K2GnM0o9MdSibuh9vkUSI4zyCf6lGuMLAnMFju9Q0ZVcTRr3W16OJxJv53PP+OGBttQA44vIMtx4AAE5W+7IA8CFdG20nMYzbRsRaiqKn8b/g==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Nicola Vetrini <nicola.vetrini@bugseng.com>, Doug Goldstein
	<cardoe@cardoe.com>, Stefano Stabellini <sstabellini@kernel.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien
 Grall <julien@xen.org>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] misra: add deviation for MISRA C Rule 11.3
Thread-Topic: [PATCH] misra: add deviation for MISRA C Rule 11.3
Thread-Index: AQHcEaKMMDydbZiTjE+UNGKddouDNbRs1fAAgABSSoCAAAQwAA==
Date: Thu, 21 Aug 2025 14:28:21 +0000
Message-ID: <a916d650-3000-44f8-be86-714f4b46a986@epam.com>
References:
 <d6a8682c98880d66ea99f882520b3defda0e3fe0.1755672275.git.dmytro_prokopchuk1@epam.com>
 <5199396a-685c-4839-b7cb-d32e3f4a0b48@suse.com>
 <159de776-d0bf-4f77-a6b6-670246eca85e@epam.com>
In-Reply-To: <159de776-d0bf-4f77-a6b6-670246eca85e@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: GV2PR03MB9572:EE_|AS8PR03MB6997:EE_
x-ms-office365-filtering-correlation-id: 9c71f57f-c8e9-423a-685e-08dde0befae6
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|42112799006|376014|7416014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?MDluS0dMckt2NkZhMlpiV0xYb3hGVlVKc0N6Nkp5VE9JeGh3Q0p2b3MzMWZX?=
 =?utf-8?B?TzRMay9OYlVuby9kOGo3WXNOT0NrSGNqU1RlVWhyQWd3d1JyRzNTd3ZiNWJD?=
 =?utf-8?B?UnlEWjB6ZHhnVjFyY0xZaVJ4TStvQVhMVUl5V0c0OUVLSEd3Smh6MkFIaE4x?=
 =?utf-8?B?dEQvSThHNFFNVTV4UnFpbFZBV3VrbzhsTkpNNUx1bThvcEFpU2RYWXY3cXVs?=
 =?utf-8?B?aERzTVV6ZVFqakgvdEJWRUpIQTgvOU90YU9pRTI0aDZkcEkvb2l1d0MyeGE4?=
 =?utf-8?B?aWpjQUVYM1BvYTZ0RlRacmM0cHgyMzZGNVU1Z05PRHNJN0thT3VlcEU2ZFVh?=
 =?utf-8?B?Z28yK0NVNHpvV2FUWTdPMEhvS2p3MC9od3lnY0xRZ0VYaUJ4MDVteTBMNi85?=
 =?utf-8?B?RFBFSmhNQnZJYVJJcnlkZTZ3a1AyaEpoenVubm9Sd0pzeFRVU2NZUGcxODhk?=
 =?utf-8?B?blo0U2o1YTRPbU9LVUpUaDRYUVMxeU50bElYQXBUT2JBSjVESFdVa2hySzVJ?=
 =?utf-8?B?TEtMd1NmRUpJY2JtSnU4cndhNTl0Z3VzdmlNUHV0M1hNUFlIYU40R2F2NWhz?=
 =?utf-8?B?R0dMMTFvNUpwQXdhTFR4QU1ZRFJGZE1peUg4S2JBQnNUYk9UOGUwOHU0WEwy?=
 =?utf-8?B?MitYN3pXSVViOEFHckxpNldiZWVCUEJveGhIR0JlUitBTjNXUzNCMStXTTd4?=
 =?utf-8?B?K2Z1QjVtOExmMURaMG5Xa25jREczS3YrMitZTy9FMGFTYlNyNlNCakg5S3Fy?=
 =?utf-8?B?c0dlTjBLMDlEWEF6d3MwRlFnNlVSTEsvSlJQMi9BZmltLzlsU0pRZjJSMWlt?=
 =?utf-8?B?SUwwelEvZjhld3dlWUtLcUZ6SnNRZHVMK1FXMG8vVVNnRUtVUzc5TEtVMVRT?=
 =?utf-8?B?VURUbGhKcVMwbXk3Ui9pbU9MQ2FGRkEvZ1JuZ0trRWFLUjB0WjVTTzMzMk5x?=
 =?utf-8?B?cTRYZUxNQXk5d1g3cklTbk51TXlCaU9BRU41UVMvQWM2dS80SHROTVc2NnYr?=
 =?utf-8?B?eERrdDFhVCtGeHNYRkFoNzdUbkZ4UUxndlhzdTA5VEFnK2lOemh1T21jWDlS?=
 =?utf-8?B?SzFwZWZzTndMMm9ZVEZ5VnBoeERZQWVPK2tQTUJOL1hYTHNFbW44ZDh2S2ph?=
 =?utf-8?B?S09UYmkrdExqQlg1RngzV1FQbkE1WHY4VlJCaWN2MGpJOTFkR21iek1lbWFK?=
 =?utf-8?B?cjhQd0ZOcXE4Y3h5RG55eGEwTEZrRHVMZW1CQXp2RG9GbVZ1UnhXcXAraUs4?=
 =?utf-8?B?aENSOVh6K2hYazdpa3kxQTcyejRYV3c1TUdPTHl6dVM5OWFGUVVYdW1IOVl1?=
 =?utf-8?B?Y3FDSEE5c0ZYWFBtSXpLMktZMEQ2SGIxc2dXU1pQeGZkczNnU04zSGJRME5O?=
 =?utf-8?B?U014TDEva3N1UWpPVU9UY1NaZW52Ykx4WngrUmh6ZGFucGlZK3pyZlJTOG5T?=
 =?utf-8?B?b1JxemtIQ0xYOGRLL3dEU3JrZ2xSZlV3WEUyVGFrbFVScVpqODI2OVZuaTQz?=
 =?utf-8?B?T3UzZWpMY3M2Ulg5VVJiZ1NiNU9VVGRrbHhaRWNLMWVRMW80V3NhblloNnBN?=
 =?utf-8?B?WTZDdk4zZDNPdUNIWVl6YTZYTEJSZmJmRmRNSmtYSWRLTnpDQVc2V1h2ZGVG?=
 =?utf-8?B?czdwQlFnSXIxUklyM3U0U053Sk5UclNIcWNYUFhBRlpkaG5BMFNnODNRVDM1?=
 =?utf-8?B?UFRWck5JYysvOXlwT1plQmhJako0MXpjR3g1RVFOY0g0VDI2QU5KZTM1UlhS?=
 =?utf-8?B?Qk9iN0lwaXd1eGordDNkSGQxSCtVeWFuWTdqRWUzVUxsZXY0MDVaa2w1WUNp?=
 =?utf-8?B?VXhmZEtnNlJ0MDI0THllYVAxR0J3UXlPSGJNVVBLT1lJYVZaUE9IYjNVamMv?=
 =?utf-8?B?ZlRuUldSMnFnZE93OVRJSkc5a1FYOXBZaktQSnJ0anoyYVVYUXM2YktodVg5?=
 =?utf-8?B?anZRdENaYlFkK2hIbDF5RDBmTEVHbCt1SXk1V0hDYUU1RzdlZFdyempOeGg3?=
 =?utf-8?B?dUZXVUhNUzV3PT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(42112799006)(376014)(7416014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?a1RyN3cwUVNXOW5Mdm1QbFY5NkpZVnJhM3A1TFZLeWs2M3lyNURpM0FXSGRD?=
 =?utf-8?B?NjZuOTRtcHRaZU0wN0ZwM1JSZ0NrK3ZXOGpSNEhKQTJidWZtbGF0bDY2WXFj?=
 =?utf-8?B?VTNBaG1WR3R5ejBSYzVtd3RtQXFSWGJOYmlXSXBKMFZOcmN2Qit3N3p4aEJu?=
 =?utf-8?B?UG5icHlJeEZPeE9GM1Bic1Q3NkRVWDVQV2FBSlI4aWN2ZUdzRDd6TGxSdFNu?=
 =?utf-8?B?UHRqMWpMNkZIZnhNSkJCRENSRVhTQzVPNHI1TWFiYzdyLzZKSFR3MFRnS0ZB?=
 =?utf-8?B?UnZzdWlNQjhvbHNrcysyUnRFakFxU3lhbk1EanV4LzJsYUZ5VFNuL3hoZ1RB?=
 =?utf-8?B?NHNoVVhjeWJsejVLR3ZnQnJIbnB5OXlxZjJZQ0pLUjFSWlc4VkduV0t4MUsy?=
 =?utf-8?B?NFRFdWxqSHV0bnJyMDJmVktWQXRSUkt1Y3FGQVo0eVZ1Q2xUclg3bFFIUUJZ?=
 =?utf-8?B?UDdJWkduSGVVYXJadFpHMkc2cGxLa09XdzVjdXFpeUliQU8xN1AxMkNERUxH?=
 =?utf-8?B?b04wcDdHamVoNW9jdEJSSWphcmViNVBzdjR6VXhDWUUxeFQrZVZZdlV3Z0lQ?=
 =?utf-8?B?Y0U2WUl2cVl5N1I5Nk9rSEtEVzZId2kwdlo2Sk1aMVZUNGY2ajQzaU1Gbmg4?=
 =?utf-8?B?VVNGckxSRUpBcDEzaEwvQmNTcHN6akh1Q3RWSWh4T3pzVEhKVVV5UlYyblRs?=
 =?utf-8?B?NXZTaFZuc3JLTmNUSFk3RHhKN3owb1k2aW40RnpGcC9uR09BMy81K0JmRmEy?=
 =?utf-8?B?cnFhWW9tSTlJTjQrWHk0V1l4dExMR0UvVEplMHgwNXRjL0U1SmVJUlZKcGp4?=
 =?utf-8?B?T2tiRjQ2ZHRaV0Z6WWNnVFpxT3ZDak5QOGJUUjlDVXlaanlHNXdwMTNYTVFx?=
 =?utf-8?B?L204MGxRcjNIdzNzbi9Jdng2OTZXM3UwY2dzQmxmdVdET3p6Qi8xZEJpRy9L?=
 =?utf-8?B?Si9NWTIzZW1JWCt1Y0dXRFNveHM4MFUyYlNCR1BaU25JZkdVamt3STd3UFBs?=
 =?utf-8?B?Sy9MYkJBSmZlSjZzWWFOQ1FYUUZweWRaTG5leUJKYWRDZ3FsVjBKSXc4dGly?=
 =?utf-8?B?TlYwbXdXQjlXMzFtd0RqNEpmenF1NCtEVHJ5ZlRJSFdUcHRTS1pyTGdpczdI?=
 =?utf-8?B?Sk9DOWJrR3VhRlBwSG9vV1dPMjhTQmszaTFmMzBiaDExZTJrTWNGRGhSMlNw?=
 =?utf-8?B?aXVSTGV1V0d6RUVXL2pvUndQMEtRZTNZaituTFBKUGdpa2o5TC9xWXUwVHNz?=
 =?utf-8?B?TEpsZ3UyakU5UEtTZExBcVdlQ2ZHUFFoTTNNeHV0TEw2czRVNDVyVEUwSWFz?=
 =?utf-8?B?Ni9LaXJUcndPa2JITTJTNlF2QmlkcjVUZ0RrQW1KM29RZW16S3ZhN093WnV6?=
 =?utf-8?B?cG5Jak9xM1FqOStZYUd3aXhiWGVTV3BVcVB6NlF3K3c1Ykl5bWxQT1NBZXlE?=
 =?utf-8?B?dmRncTFjRU9DVC9WY1Q3Q0FDUlREekZqZjlDVUdXcXlQT3A3dGEyNEdCd2wr?=
 =?utf-8?B?UVdnb2JpNVk0OUVBM2xLazg3b0dhaVg1dk9qckJmTHFYM2VyMVdDR2hablg2?=
 =?utf-8?B?Zys0TUFISm5ncWRHOS9YUlIvcFhjWWFJUHMra3NOYUJ2V2tJbDdId1Rpa0NZ?=
 =?utf-8?B?NzdPOUd4NkVidDRmbkd6dkRwbjBDOVgzKzVFRDdXSGlweEwzZHpUbVFTMzU5?=
 =?utf-8?B?djM2dTJEUmRrSTdSVnAxdTByWktIUHVyR3d5Ny9UY1ozREJRd3BUM1pwNHJ2?=
 =?utf-8?B?Z3BYSjc2MEwrTlIrQWM4Z2ZCZEd5dG5yRm5sREszUEIvMnk3WGpuOGlIYSs5?=
 =?utf-8?B?MjViT1Z3OStLREp0K25NbWg3NFh1WjVRbXRxZ0xQeWxzZWNId09ZUEZOb2xB?=
 =?utf-8?B?RXhOcERyc1p0NExCZHFhRWFjcG1NamVUeXIvL0tuSGJZaHdENlJhS0ZKOE9q?=
 =?utf-8?B?cjhjY3F6RkRWT3huTWZFS0lrNU96KzdQR2tta0NObHFDeVhFSGVEQ0VTUUh3?=
 =?utf-8?B?aWxHamxXNnZjSGhNSjJTdTdTL0dKclFVTXFQMC9tQU5UeForRFByK1I1UVJ0?=
 =?utf-8?B?d1Rvc2NVbTFqYXprR3hOL3gxNlRmbHJQRTRLblVxbTFIVTE4WlJXYzJ3bmZQ?=
 =?utf-8?B?WkNKS3g0a3hTL3Rpdm1vRWUwUHg5ZEtlVDVyaXBhamQ0aTNZdHlIaHM1WUNl?=
 =?utf-8?B?VGc9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <49A2E5CC5C12934FA8FE857845A4EF43@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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9c71f57f-c8e9-423a-685e-08dde0befae6
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Aug 2025 14:28:21.4214
 (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: 5S2HShFplmS8Ohld64eRaBYZqT3IFJt8FSkKTClVhwWY/5Gi7pmJtqJ4PhUA8Fa0GPjy7yPVYvkV6NN4UujrCzGMDaPkniuIeTEfycOPwPU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB6997

DQoNCk9uIDgvMjEvMjUgMTc6MTMsIERteXRybyBQcm9rb3BjaHVrIHdyb3RlOg0KPiANCj4gDQo+
IE9uIDgvMjEvMjUgMTI6MTgsIEphbiBCZXVsaWNoIHdyb3RlOg0KPj4gT24gMjAuMDguMjAyNSAw
OToxNywgRG15dHJvIFByb2tvcGNodWsxIHdyb3RlOg0KPj4+IE1JU1JBIEMgUnVsZSAxMS4zIHN0
YXRlczogIkEgY2FzdCBzaGFsbCBub3QgYmUgcGVyZm9ybWVkIGJldHdlZW4gYSANCj4+PiBwb2lu
dGVyDQo+Pj4gdG8gb2JqZWN0IHR5cGUgYW5kIGEgcG9pbnRlciB0byBhIGRpZmZlcmVudCBvYmpl
Y3QgdHlwZS4iDQo+Pj4NCj4+PiBWaW9sYXRpb25zIG9mIHRoaXMgcnVsZSBhcmlzZSBkdWUgdG8g
dGhlICdjb250YWluZXJfb2YnIG1hY3JvLCB3aGljaCANCj4+PiBjYXN0cw0KPj4+IGEgbWVtYmVy
IG9mIGEgc3RydWN0dXJlIHRvIGl0cyBjb250YWluaW5nIHN0cnVjdHVyZToNCj4+PiDCoMKgwqDC
oCBjb250YWluZXJfb2YocHRyLCB0eXBlLCBtZW1iZXIpICh7wqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgXA0KPj4+IMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqAgdHlwZW9mX2ZpZWxkKHR5cGUsIG1lbWJlcikgKl9fbXB0ciA9IChwdHIpO8KgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoCBcDQo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAodHlwZSAq
KSggKGNoYXIgKilfX21wdHIgLSBvZmZzZXRvZih0eXBlLG1lbWJlcikgKTt9KQ0KPj4+DQo+Pj4g
VGhlICdjb250YWluZXJfb2YnIG1hY3JvIGlzIHNhZmUgYmVjYXVzZSBpdCByZWxpZXMgb24gdGhl
IA0KPj4+IHN0YW5kYXJkaXplZCBhbmQNCj4+PiB3ZWxsLWRlZmluZWQgJ29mZnNldG9mJyBtYWNy
byB0byBjYWxjdWxhdGUgdGhlIG1lbW9yeSBhZGRyZXNzIG9mIHRoZQ0KPj4+IGNvbnRhaW5pbmcg
c3RydWN0dXJlLCB3aGlsZSBhc3N1bWluZyBwcm9wZXIgYWxpZ25tZW50IGFuZCBlbnN1cmluZyBu
bw0KPj4+IHVuZGVmaW5lZCBiZWhhdmlvciwgcHJvdmlkZWQgdGhhdCB0aGUgaW5wdXQgcG9pbnRl
ciBpcyB2YWxpZCBhbmQgDQo+Pj4gcG9pbnRzIHRvDQo+Pj4gdGhlIHNwZWNpZmllZCBtZW1iZXIu
DQo+Pj4NCj4+PiBDb25maWd1cmUgRWNsYWlyIHRvIHN1cHByZXNzIHZpb2xhdGlvbiByZXBvcnRz
IHJlbGF0ZWQgdG8gJ2NvbnRhaW5lcl9vZg0KPj4+IG1hY3JvLiBVcGRhdGUgJ2RldmlhdGlvbnMu
cnN0JyBmaWxlIGFjY29yZGluZ2x5LiBBZGQgUnVsZSAxMS4zIHRvIHRoZQ0KPj4+IG1vbml0b3Jl
ZCBsaXN0Lg0KPj4+IE5vIGZ1bmN0aW9uYWwgY2hhbmdlcy4NCj4+Pg0KPj4+IFNpZ25lZC1vZmYt
Ynk6IERteXRybyBQcm9rb3BjaHVrIDxkbXl0cm9fcHJva29wY2h1azFAZXBhbS5jb20+DQo+Pg0K
Pj4gTG9va3MgbGFyZ2VseSBva2F5OyBqdXN0IG9uZSBuaXQgYW5kIGEgcXVlc3Rpb246DQo+Pg0K
Pj4+IC0tLSBhL2F1dG9tYXRpb24vZWNsYWlyX2FuYWx5c2lzL0VDTEFJUi9kZXZpYXRpb25zLmVj
bA0KPj4+ICsrKyBiL2F1dG9tYXRpb24vZWNsYWlyX2FuYWx5c2lzL0VDTEFJUi9kZXZpYXRpb25z
LmVjbA0KPj4+IEBAIC00MDMsNiArNDAzLDE0IEBAIGJlY2F1c2UgdGhlIHNlbWFudGljcyBvZiB0
aGUgJ25vcmV0dXJuJyANCj4+PiBhdHRyaWJ1dGUgZG8gbm90IGFsdGVyIHRoZSBjYWxsaW5nIGNv
bnZlDQo+Pj4gwqAgfQ0KPj4+IMKgIC1kb2NfZW5kDQo+Pj4gKy1kb2NfYmVnaW49IkNvbnZlc2lv
bnMgaW4gdGhlICdjb250YWluZXJfb2YnIG1hY3JvIGFyZSBzYWZlIGJlY2F1c2UgDQo+Pj4gaXQg
cmVsaWVzIG9uDQo+Pg0KPj4gIkNvbnZlcnNpb25zIiAoYWxzbyBpbiBkZXZpYXRpb25zLnJzdCkN
Cj4+DQo+Pj4gLS0tIGEvYXV0b21hdGlvbi9lY2xhaXJfYW5hbHlzaXMvRUNMQUlSL21vbml0b3Jl
ZC5lY2wNCj4+PiArKysgYi9hdXRvbWF0aW9uL2VjbGFpcl9hbmFseXNpcy9FQ0xBSVIvbW9uaXRv
cmVkLmVjbA0KPj4+IEBAIC00NSw2ICs0NSw3IEBADQo+Pj4gwqAgLWVuYWJsZT1NQzNBMi5SMTAu
Mg0KPj4+IMKgIC1lbmFibGU9TUMzQTIuUjExLjENCj4+PiDCoCAtZW5hYmxlPU1DM0EyLlIxMS4y
DQo+Pj4gKy1lbmFibGU9TUMzQTIuUjExLjMNCj4+DQo+PiBXaGlsZSB0aGUgZGVzY3JpcHRpb24g
bWVudGlvbnMgdGhpcyBjaGFuZ2UsIGl0IGRvZXNuJ3Qgc2F5IHdoeSAoZS5nLiAibm8NCj4+IHZp
b2xhdGlvbnMgbGVmdCIgb3IgIm9ubHkgdGhpcyBhbmQgdGhhdCB2aW9sYXRpb24gbGVmdCIgb3Ig
c29tZSBzdWNoKS4NCj4gQVJNOsKgIDgxM1YgLT7CoMKgIDE2Vg0KPiBYODY6IDE0MjJWIC0+IDEw
MzVWDQo+IA0KPiBMb29rcyBPSyBmb3IgQVJNICh0byBiZSBhZGRlZCBpbiB0aGUgbW9uaXRvcmlu
ZyBsaXN0KSwgYnV0IFg4Ni4uLg0KPiBBbnl3YXkgdGhlIG51bWJlciBvZiByZXBvcnRlZCBlcnJv
cnMgaGFzIG5vIHNpZGUgZWZmZWN0Lg0KPiANCj4gSmFuLCBkZWNpc2lvbiB1cCB0byB5b3UgKGlu
Y2x1ZGUgaW50byBtb25pdG9yZWQuZWNsIG9yIG5vdCkuDQo+IA0KPiBEbXl0cm8uDQoNCkFjdHVh
bGx5LCBiZXR0ZXIgd2F5IGlzIHRvIHJlbW92ZSAnLWVuYWJsZT1NQzNBMi5SMTEuMycgZnJvbSB0
aGUgDQptb25pdG9yZWQuZWNsIGZpbGUgYW5kIGNyZWF0ZSBzZXBhcmF0ZSBwYXRjaCAoaW4gZnV0
dXJlKS4NCg0KRG15dHJvLg0KDQo+Pg0KPj4+IC0tLSBhL2RvY3MvbWlzcmEvZGV2aWF0aW9ucy5y
c3QNCj4+PiArKysgYi9kb2NzL21pc3JhL2RldmlhdGlvbnMucnN0DQo+Pj4gQEAgLTM5Myw2ICsz
OTMsMTQgQEAgRGV2aWF0aW9ucyByZWxhdGVkIHRvIE1JU1JBIEM6MjAxMiBSdWxlczoNCj4+PiDC
oMKgwqDCoMKgwqDCoMKgIChpLmUuLCBsZXNzIHN0cmljdCkgYWxpZ25tZW50IHJlcXVpcmVtZW50
IGFyZSBzYWZlLg0KPj4+IMKgwqDCoMKgwqDCoCAtIFRhZ2dlZCBhcyBgc2FmZWAgZm9yIEVDTEFJ
Ui4NCj4+PiArwqDCoCAqIC0gUjExLjMNCj4+PiArwqDCoMKgwqAgLSBDb252ZXNpb25zIGluIHRo
ZSAnY29udGFpbmVyX29mJyBtYWNybyBhcmUgc2FmZSBiZWNhdXNlIGl0IA0KPj4+IHJlbGllcyBv
bg0KPj4+ICvCoMKgwqDCoMKgwqAgdGhlIHN0YW5kYXJkaXplZCBhbmQgd2VsbC1kZWZpbmVkICdv
ZmZzZXRvZicgbWFjcm8gdG8gDQo+Pj4gY2FsY3VsYXRlIHRoZSBtZW1vcnkNCj4+DQo+PiBBY3R1
YWxseSBhbm90aGVyIG5pdDogSGVyZSBhcyB3ZWxsIGFzIGluIHRoZSBkZXNjcmlwdGlvbiwgaXQg
d291bGQgYmUgDQo+PiBuaWNlDQo+PiB0byBhZGQgcGFyZW50aGVzZXMsIHNvIGluZGljYXRlIHRo
ZSBmdW5jdGlvbi1uZXNzIG9mIGJvdGggbWFjcm9zIChpLmUuDQo+PiBjb250YWluZXJfb2YoKSBh
bmQgb2Zmc2V0b2YoKSkuDQo+Pg0KPj4gSmFuDQo=


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 14:30:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 14:30:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088759.1446482 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up6JP-00044U-7m; Thu, 21 Aug 2025 14:30:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088759.1446482; Thu, 21 Aug 2025 14:30:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up6JP-00044N-2L; Thu, 21 Aug 2025 14:30:43 +0000
Received: by outflank-mailman (input) for mailman id 1088759;
 Thu, 21 Aug 2025 14:30:42 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=z7HC=3B=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1up6JN-00044H-TJ
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 14:30:42 +0000
Received: from mail-lf1-x133.google.com (mail-lf1-x133.google.com
 [2a00:1450:4864:20::133])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 69e04475-7e9b-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 16:30:41 +0200 (CEST)
Received: by mail-lf1-x133.google.com with SMTP id
 2adb3069b0e04-55ce510e769so1041954e87.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 07:30: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>
X-Inumbo-ID: 69e04475-7e9b-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1755786640; x=1756391440; 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=pKnYYYipaHX8ryBdYTdXFgmXtmZuwnneqTz283SDtzs=;
        b=gfAiERDaKumfFTFJo2yhc0CkLm3dVZYJYJX+jKIsYGepj+VE/g3dbXzUU/hJPj8TW7
         qTHPoDG6nXYS8TixuMoz21A5YisiBOGjgGuQFWt5yR/9px+mAUfPbmzTRClmpvMiPWFM
         eHU854lWOoo7hBTddHU/hpF9+BMZI2M6yOJe20D31pD3Mosib2IGqumf+8UAxaF9r+jG
         vCjEIYyY2eA+8bW9c+WJzDlT2qAHKTqOcjBS7bYAs3Sm1Bc8Yif3jrY3gRkgqLVjuZni
         ML8bGuc/rn5/XHOaQtI2xCiZEsqKTjIBPxjCoH9dqPEb1ho/P5cvPr+3W8rRIE/vXcHs
         peAw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755786640; x=1756391440;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=pKnYYYipaHX8ryBdYTdXFgmXtmZuwnneqTz283SDtzs=;
        b=YO+LEh+nCpZsb84q/QIfc7vo+c2z+FxTUYOFEgoEPi1tfsDGCwcddp7RXyI9l0sI9V
         9V7eZnEIvIrH/SdMf7aed5A/80bB3gssrt+bxhrOicsuoEHrNTmHnmDY/oEE7/Dcb4M7
         eawI72HXva8dDelXmzZny/amUXGNDxlD1Ur6z1I6ufWKt0h5qCOU6ECgeLcU+QYLTO6M
         8XgAnkmorOfiO34UIOpXizaGRhRFolldjoQnOPOinzI+rjv1EeoDJadsGDgPfElMTayz
         GGuOayd2T8St+3FnO9Rf/fCdrPYK+oz6six6ShDWU4f/SI/9EQs+biH7Lnn9xHfiW9+f
         3Veg==
X-Gm-Message-State: AOJu0YyuBOAh0DKIgVW9a6rLYsulpdfXF8Bf+KxE43v+T6FoAffA3G1v
	50xzjJL5HDzMRtdBl9h56bjUz5xuV5t9vpcGGjO2p7OGlvSGdTKsYg6MjXxtSpIX3vOz7t4FheC
	qJP2KiWWI4vj3Q7U8B32K+K6Z/XwBda4=
X-Gm-Gg: ASbGncvskIPnnrQaGtoOCPR1n8lderD2K4qAgSvl/9ImMWF6NUDZCeGHlTPQexKesqP
	hWyH6ai4vo6mTyXtvWWC86xDzDBVt/VfdoeMwp2fYwbAnfLw1psnFvZJSCnA7puBS5nFKTK4q+b
	tarOwie0sXlj5YlM0kA6o78wWrrC6snGfYoL9GjOgXnFB3d63GGGWh1tKkA3RTr2perpGQEXhrd
	R4EFm4t0j0DpLW0
X-Google-Smtp-Source: AGHT+IHVUIZSeyt9VddjbtqAdzEGoqG9KAMnId/Ylz697zE2SCCT0pE5EXAN7VuywgvsJxeBf2qliQwS7lydUiGCZlU=
X-Received: by 2002:a05:6512:4603:b0:55b:959e:e3c4 with SMTP id
 2adb3069b0e04-55e0d565868mr664362e87.25.1755786640035; Thu, 21 Aug 2025
 07:30:40 -0700 (PDT)
MIME-Version: 1.0
References: <f6a8095483ba54e1eabeca5e4b08138312fa822b.1755773176.git.mykyta_poturai@epam.com>
 <CAGeoDV8UBv9g3x_AunwoyZg5eQDWNkCHoXNz2_tJKrJYWeYAWg@mail.gmail.com> <4e658c8d-3cac-481b-a153-2a8189550a13@epam.com>
In-Reply-To: <4e658c8d-3cac-481b-a153-2a8189550a13@epam.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Thu, 21 Aug 2025 17:30:28 +0300
X-Gm-Features: Ac12FXwjXJWlkFOispz7CUG5jG8bkbqp6s6gKo2tD3PibDGfbS3ju_XqxZdAjG0
Message-ID: <CAGeoDV-MJxw48P0M9QbFWcAXgRgdOpyXv9g3vT_GK572J3OE-A@mail.gmail.com>
Subject: Re: [PATCH v1] iommu/ipmmu-vmsa: Fix build with HAS_PCI=n
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, Aug 21, 2025 at 4:09=E2=80=AFPM Mykyta Poturai <Mykyta_Poturai@epam=
.com> wrote:
>
> On 21.08.25 15:03, Mykola Kvach wrote:
> > Hi Mykyta,
> >
> > On Thu, Aug 21, 2025 at 1:51=E2=80=AFPM Mykyta Poturai <Mykyta_Poturai@=
epam.com> wrote:
> >>
> >> With PCI disabled the build fails due to undefined struct
> >> pci_host_bridge.
> >>
> >> Add ifdef guard around pci-host-rcar4.h to not include it when PCI
> >> support is disabled.
> >>
> >> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> >> ---
> >> This patch can be squashed with iommu/ipmmu-vmsa: Implement basic PCIE=
-IPMMU OSID support
> >> ---
> >>   xen/drivers/passthrough/arm/ipmmu-vmsa.c | 2 ++
> >>   1 file changed, 2 insertions(+)
> >>
> >> diff --git a/xen/drivers/passthrough/arm/ipmmu-vmsa.c b/xen/drivers/pa=
ssthrough/arm/ipmmu-vmsa.c
> >> index ea9fa9ddf3..49f149e222 100644
> >> --- a/xen/drivers/passthrough/arm/ipmmu-vmsa.c
> >> +++ b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
> >> @@ -51,7 +51,9 @@
> >>   #include <asm/device.h>
> >>   #include <asm/io.h>
> >>   #include <asm/iommu_fwspec.h>
> >> +#ifdef CONFIG_HAS_PCI
> >>   #include "../arch/arm/pci/pci-host-rcar4.h"
> >> +#endif
> >
> > As far as I know, the IPMMU VMSA driver can also be used on other
> > R-Car platforms. Is there a chance we could have HAS_PCI enabled
> > together with IPMMU VMSA, but not be on an R-Car Gen4 platform,
> > for example, on R-Car3 or possibly some future R-Car variants?
> >
> > Wouldn't it be better to use:
> > #ifdef CONFIG_RCAR4
> > ?
>
> Gen5 boards will use SMMU, so this will not be applicable to them. In
> any case, checking for RCAR4 will not help here, as PCI can be disabled
> regardless of the platform revision.

I see your point that CONFIG_RCAR4 alone isn=E2=80=99t enough, since PCI ca=
n be disabled
even on Gen4. My concern is that we=E2=80=99re adding Gen4-specific code in=
to a generic
IPMMU VMSA driver, which is used on multiple R-Car generations.

>
> >
> > Best regards,
> > Mykola
>
> --
> Mykyta


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 14:32:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 14:32:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088769.1446491 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up6Ku-000591-El; Thu, 21 Aug 2025 14:32:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088769.1446491; Thu, 21 Aug 2025 14:32: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 1up6Ku-00058u-C2; Thu, 21 Aug 2025 14:32:16 +0000
Received: by outflank-mailman (input) for mailman id 1088769;
 Thu, 21 Aug 2025 14:32:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=5Hha=3B=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1up6Kt-00058k-5S
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 14:32:15 +0000
Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com
 [2a00:1450:4864:20::62a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a0c332e5-7e9b-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 16:32:13 +0200 (CEST)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-afca3e71009so334242866b.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 07:32: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
 a640c23a62f3a-afded478b13sm409393866b.71.2025.08.21.07.32.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Aug 2025 07:32: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>
X-Inumbo-ID: a0c332e5-7e9b-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755786733; x=1756391533; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=L1aQiAv6L7gk6NAB/mBd9+LZh2X/xSMhulIbkSbaQWQ=;
        b=fM06pikGC879tPCg4z1ifvrxwU3UfSDJmMdp5pgSYS8VG/CLjqJAIwAbmpeug9/aiC
         oisY1xxCjIInJYOC/p+pT3z0SxLUxybgyPIAreDRJLUUm08JqzjoeAqWtnZV0GqU/D5w
         j3Yh8Vl4agSI59PZH3t2xoPLJKcpkwJopmBM5OO+cpDMJ2LRwalT1dgBYiGnRixOWA5B
         rkVaQN2VN5Y7k7NICHmfcCQz6pIuh5BGSZ0cmplNDAvr7Dmlf/FChszYUctQRmfDrWu3
         RDGSdd1Eow2p+uIItSo2s44oaEkkYqu/ibbOhfCk6accoVzPKVkqrrY2NabEMuJQOOn6
         zEXA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755786733; x=1756391533;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=L1aQiAv6L7gk6NAB/mBd9+LZh2X/xSMhulIbkSbaQWQ=;
        b=OKWyhiuRZQ7jrhY0fqE0AroSSCIK8KRYxHIUTmZYdT7aNRNDJR0e2zV6I5aVh3t/n4
         jsldpHdaX9tb+qoW3tOr7/y9vEMAgyeyKNON/4MLjm5kSOzlr42EfBMy4QaqBNYR8KPo
         PqnTYZfL7FAbn20RmqdgNZdFhF7HNrjjAlJFeyG/tYJdnle2s4glwDebtnwx7VjTktfI
         ln3MN6uLqVOGwPyjKzddeLaEeRh8sPIAwyVNmdXdqMeTZ4HuGyVBvOHv5U7mFIWQProi
         axnU37tf7PhVVL17f7eOr62zQdYj1VsVvM27u/SuIUdHDB2gXfd9xMiyHrQhDbmkLl42
         NpUQ==
X-Forwarded-Encrypted: i=1; AJvYcCVMl3547/KW0/rvinJqsPJ66TEC0jtMp35g4P0D6arMkN40XcfLTLmA7PijnDUJuQmYsXsSfVmP+J0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzC5GSaFOEtZM/tNiAcUsYfp8Pz/ajqWb/WWAFgjttHrY7N7zIJ
	SOU+WJjY7utYjo8gj8ubwZaH7pIrie0YSldzj745AQkAWLrZHZWN7OVarIJip3NTww==
X-Gm-Gg: ASbGncshRS9u7Gg6xRzc2LCTaBmNW83xbcwfXsH5vwE2rTjwSDbia2cfrZQaCkWL9B7
	ch6BH+cy541uB+f870j2RKQCk3FjLOFoaGH8U1jMl2jBeOH9WmhXZ7kG1VBT73I7rCXVQqtRmsu
	nLL9z8xQNY193CcJ3Up5bCzpmUMhqLk2jgiWPxv+QqWsadVfVDrbNCJPXc3WNFBb04iJg5MAmfp
	o1/cA7Tk0DfSmkMxfD3phxazhT3Fzb6Ygn8eW/GDhIslWz42BDVHY6dvMcrN13ikhzDWrx/Ntye
	N55PFygasmjVuiZgvFogvYG2uo07QQbG1ZJyvdEnz1sabuPUhfzYG05rOFUhxGxvNMM+xP+ffIs
	gwG2vcgeEgKAwHGTXKl4Mb5+YJL9cL92jBnhCCi1dxh66h1lvLY45YvGHRdLubrdOY4KvylbYQq
	RzAaA04/ljLKC6pNiQgA==
X-Google-Smtp-Source: AGHT+IHjQE22rDQtV/bbG7Y6M5UFua2e6t8Cd/o/DsOHpq5/BUVhpUimmTMSLddO+zJwb5zSV3G+Mg==
X-Received: by 2002:a17:907:7210:b0:ae3:ee3a:56ee with SMTP id a640c23a62f3a-afe0b970284mr244507266b.3.1755786732599;
        Thu, 21 Aug 2025 07:32:12 -0700 (PDT)
Message-ID: <ad40448c-499a-4d85-920b-a95bdeb67d9d@suse.com>
Date: Thu, 21 Aug 2025 16:32:11 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] misra: add deviation for MISRA C Rule 11.3
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <d6a8682c98880d66ea99f882520b3defda0e3fe0.1755672275.git.dmytro_prokopchuk1@epam.com>
 <5199396a-685c-4839-b7cb-d32e3f4a0b48@suse.com>
 <159de776-d0bf-4f77-a6b6-670246eca85e@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: <159de776-d0bf-4f77-a6b6-670246eca85e@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.08.2025 16:13, Dmytro Prokopchuk1 wrote:
> On 8/21/25 12:18, Jan Beulich wrote:
>> On 20.08.2025 09:17, Dmytro Prokopchuk1 wrote:
>>> --- a/automation/eclair_analysis/ECLAIR/monitored.ecl
>>> +++ b/automation/eclair_analysis/ECLAIR/monitored.ecl
>>> @@ -45,6 +45,7 @@
>>>   -enable=MC3A2.R10.2
>>>   -enable=MC3A2.R11.1
>>>   -enable=MC3A2.R11.2
>>> +-enable=MC3A2.R11.3
>>
>> While the description mentions this change, it doesn't say why (e.g. "no
>> violations left" or "only this and that violation left" or some such).
> ARM:  813V ->   16V
> X86: 1422V -> 1035V
> 
> Looks OK for ARM (to be added in the monitoring list), but X86...
> Anyway the number of reported errors has no side effect.

Does it not, i.e. not even on the time it takes Eclair to do a full run?

> Jan, decision up to you (include into monitored.ecl or not).

For x86 I think the count is still too high. And no, it's not solely my
decision.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 14:47:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 14:47:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088777.1446501 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up6Zo-0007En-PX; Thu, 21 Aug 2025 14:47:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088777.1446501; Thu, 21 Aug 2025 14:47: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 1up6Zo-0007Eg-MI; Thu, 21 Aug 2025 14:47:40 +0000
Received: by outflank-mailman (input) for mailman id 1088777;
 Thu, 21 Aug 2025 14:47:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=uBnp=3B=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1up6Zn-0007Ea-A2
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 14:47:39 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c7871ac2-7e9d-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 16:47:37 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id BAE654EEBC48;
 Thu, 21 Aug 2025 16:47:35 +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>
X-Inumbo-ID: c7871ac2-7e9d-11f0-a32b-13f23c93f187
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=1755787655;
	b=D0dZrJhnT5VnJT0ZxcHQ96skrjQQJENYm59G8y96RTOF45jz4o8982huK7B6h/Xaeo3L
	 KKG/1jC/mvvQntFjkjl2+SzQafFW5ZCXT4CuIkl3GqLLRMQNHR72FO7nZafC8Y5CK8niv
	 pTINceKBQNu/EMvkyN41rNJxgyvP+NQVZYk5bYXXCbI5cXHQK4Yv/aErKNT1yTUsOJbmr
	 b8LGVOod0b7DJgRBnyIzfDBXFimdyzOdvtlGdPj/2hugriZEs+mNa/CxDfsejhMueYos2
	 FOijYtvGtTeZ/hlTFI3bc4WSPnYYmfSCBJVsRA2YLKOSjfEJcILt/lxfpb8PEIuiQJRe4
	 BOQzkPvybRw1Yl7Crlc2dkHrFqqNCD+yRnauGE7TkGmnGFTSccHbUTz/m+2KjulzqHOPT
	 krpiC6z9PNEd3mhVHlS0xMEfWHt0wKFHDXRUlVOyzoXTsjk6r6jd26Rk4lXnGMo5r8x6F
	 l1b96KfJK+JqifsquKmb13ZcMaFStkCglMjmXkJwLD6ZSSoeM8j7iYG3XCb0CSS4ToF1b
	 /IEomcRZP/Wbz4XvBLuc8QWnyLEb4Tm5fdX8MsVf7oPxaoGH/0a6qWO5x7Jja9ISlJBzy
	 Ydat0r00rdMwnhlgzh1QOZzWDEHJnudvpCE+44EEvcsRNETj+Hn9cZ5ICWbzVZs=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1755787655;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=ooDp5/VMTh979qC9zYvC3jDnRtcIb2fJaBdXnV3DnHg=;
	b=rDV7MRUCJ40h4sE3MzgXafJbZN5tSX2HgsSNWQjPFdMoja5AVSqrZscH0+JJP8eN1bwV
	 2gjHdKfpU7S/tQ/8ochYlQ59WmqV+pqItee3AeptsAjRrKw09xUEMYfZ9lXmx5g7eRCEq
	 /b8kEiHMy4OdziaHhBZ3IB6VoMdGFF7a+g39a0j03S6HImBKfhhGKl5vGJ0q3SQYX0X/0
	 jecAcC628fvn8HR4EZkfMXxG96MVAz51gyFho5uEilL1wdK5sVMWO9meL9Fzu08oTHRc9
	 QpBeM3kt++9iOGAUO71vErYp3JOHCH0GOrj1dFLsYwymTFOjBcHXkhwKR2gUpcYrqklTM
	 37GCqNUyNeymUqTsvzUSOUgOJH3DLJFjH6mkdmKP6SP5r5jD60ZFwUgCormswgLgS7xAw
	 hLHVfXS2Xj4RuJdvy+qv9+fN9CWQ1wI2DLc+/4qhsHuizFwgKCiavAVc8G0CDNot+L6WU
	 j9oMi8N7JBlrlw7fGQeBE5VpJVJ7y6L36anBJrwHco15wOacgv0+cMNLoM/GKmAuHZAsV
	 4C6Y0XAn2br5de0VeFPzK+EPxVwFKkbkEO7eMMX6oek74+k4LiwhShSsdCT0bK/3bGyir
	 s6uvwuslVdnppGz9dOCv619enFEHbRs8kzFxGw5cPgp4KvqJG8T1upD1oKfyFA4=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1755787655; bh=ll72S6UAoePq+ShXQlCmPA6aoznDCaWSxVG7nbqA1q4=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=Bo1iwj3Wj2275RgP5iiuvAHmzL5EvRdSPj05rt5757tzndrkrJwj7E6rUPKFPZtfW
	 OqW0kPMXHjEu5ZvMBPWYB/WbVlxXq7/yLLqhXLGXqSCrGqh7iTpNhzHNv3kUcNWJkF
	 UmRxWYTGe3N46R9rTlw3/CR6TpXVAi+UDFUPxdD010pphEPobb0+oMNY3HLZFrPD57
	 5Kpk4fbq7qIE5p5DVbxX5g1mGaSh8dTuUSGiwpca2pc+HX82xayUFUP4OyiUi6JULi
	 LHDDApFjjU8Ugo3nss3J8rm5kkIzCimgsmufkbKG4OD1kK7eTCSBWeYHamF7V0pnwf
	 L7cT0kf9Ic2Vg==
MIME-Version: 1.0
Date: Thu, 21 Aug 2025 16:47:35 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: Jan Beulich <jbeulich@suse.com>, Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Andrew Cooper
 <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
Subject: Re: [PATCH] misra: add deviation for MISRA C Rule 11.3
In-Reply-To: <a916d650-3000-44f8-be86-714f4b46a986@epam.com>
References: <d6a8682c98880d66ea99f882520b3defda0e3fe0.1755672275.git.dmytro_prokopchuk1@epam.com>
 <5199396a-685c-4839-b7cb-d32e3f4a0b48@suse.com>
 <159de776-d0bf-4f77-a6b6-670246eca85e@epam.com>
 <a916d650-3000-44f8-be86-714f4b46a986@epam.com>
Message-ID: <756c6bc79773078a3d436e60f7e4b2e9@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

On 2025-08-21 16:28, Dmytro Prokopchuk1 wrote:
> On 8/21/25 17:13, Dmytro Prokopchuk wrote:
>> 
>> 
>> On 8/21/25 12:18, Jan Beulich wrote:
>>> On 20.08.2025 09:17, Dmytro Prokopchuk1 wrote:
>>>> MISRA C Rule 11.3 states: "A cast shall not be performed between a
>>>> pointer
>>>> to object type and a pointer to a different object type."
>>>> 
>>>> Violations of this rule arise due to the 'container_of' macro, which
>>>> casts
>>>> a member of a structure to its containing structure:
>>>> Â Â Â Â  container_of(ptr, type, member) ({Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  
>>>> \
>>>> Â Â Â Â Â Â Â Â Â Â Â  typeof_field(type, member) *__mptr = (ptr);Â Â Â Â Â Â Â Â Â Â Â Â  
>>>> \
>>>> Â Â Â Â Â Â Â Â Â Â Â  (type *)( (char *)__mptr - offsetof(type,member) );})
>>>> 
>>>> The 'container_of' macro is safe because it relies on the
>>>> standardized and
>>>> well-defined 'offsetof' macro to calculate the memory address of the
>>>> containing structure, while assuming proper alignment and ensuring 
>>>> no
>>>> undefined behavior, provided that the input pointer is valid and
>>>> points to
>>>> the specified member.
>>>> 
>>>> Configure Eclair to suppress violation reports related to 
>>>> 'container_of
>>>> macro. Update 'deviations.rst' file accordingly. Add Rule 11.3 to 
>>>> the
>>>> monitored list.
>>>> No functional changes.
>>>> 
>>>> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
>>> 
>>> Looks largely okay; just one nit and a question:
>>> 
>>>> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
>>>> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
>>>> @@ -403,6 +403,14 @@ because the semantics of the 'noreturn'
>>>> attribute do not alter the calling conve
>>>> Â  }
>>>> Â  -doc_end
>>>> +-doc_begin="Convesions in the 'container_of' macro are safe because
>>>> it relies on
>>> 
>>> "Conversions" (also in deviations.rst)
>>> 
>>>> --- a/automation/eclair_analysis/ECLAIR/monitored.ecl
>>>> +++ b/automation/eclair_analysis/ECLAIR/monitored.ecl
>>>> @@ -45,6 +45,7 @@
>>>> Â  -enable=MC3A2.R10.2
>>>> Â  -enable=MC3A2.R11.1
>>>> Â  -enable=MC3A2.R11.2
>>>> +-enable=MC3A2.R11.3
>>> 
>>> While the description mentions this change, it doesn't say why (e.g. 
>>> "no
>>> violations left" or "only this and that violation left" or some 
>>> such).
>> ARM:Â  813V ->Â Â  16V
>> X86: 1422V -> 1035V
>> 
>> Looks OK for ARM (to be added in the monitoring list), but X86...
>> Anyway the number of reported errors has no side effect.
>> 
>> Jan, decision up to you (include into monitored.ecl or not).
>> 
>> Dmytro.
> 
> Actually, better way is to remove '-enable=MC3A2.R11.3' from the
> monitored.ecl file and create separate patch (in future).
> 

I agree

> Dmytro.
> 
>>> 
>>>> --- a/docs/misra/deviations.rst
>>>> +++ b/docs/misra/deviations.rst
>>>> @@ -393,6 +393,14 @@ Deviations related to MISRA C:2012 Rules:
>>>> Â Â Â Â Â Â Â Â  (i.e., less strict) alignment requirement are safe.
>>>> Â Â Â Â Â Â  - Tagged as `safe` for ECLAIR.
>>>> +Â Â  * - R11.3
>>>> +Â Â Â Â  - Convesions in the 'container_of' macro are safe because it
>>>> relies on
>>>> +Â Â Â Â Â Â  the standardized and well-defined 'offsetof' macro to
>>>> calculate the memory
>>> 
>>> Actually another nit: Here as well as in the description, it would be
>>> nice
>>> to add parentheses, so indicate the function-ness of both macros 
>>> (i.e.
>>> container_of() and offsetof()).
>>> 
>>> Jan

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 14:51:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 14:51:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088787.1446510 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up6dO-0000hj-7K; Thu, 21 Aug 2025 14:51:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088787.1446510; Thu, 21 Aug 2025 14:51:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up6dO-0000hc-4j; Thu, 21 Aug 2025 14:51:22 +0000
Received: by outflank-mailman (input) for mailman id 1088787;
 Thu, 21 Aug 2025 14:51:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=aDER=3B=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1up6dM-0000hW-SD
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 14:51:20 +0000
Received: from DB3PR0202CU003.outbound.protection.outlook.com
 (mail-northeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c200::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4b964b12-7e9e-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 16:51:18 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by PA6PR03MB10435.eurprd03.prod.outlook.com (2603:10a6:102:3ce::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Thu, 21 Aug
 2025 14:51:16 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9052.013; Thu, 21 Aug 2025
 14:51:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4b964b12-7e9e-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=d3XhbENF1hlNOkxxgxzp0pMIYV5JRmUkEh9YWunpxE2wrXoVT3BuMMYW8nadoljif2TMjbH0g6sJTsHBZRMPxbr8jt/GYt9A1VE+/zyt4dtiuDLRXJXR4MzC/zJMNynBW4Tmw0ZescQ/0kYc/gLw/POOBvHG+0HSc5A3v/jvfCcGQOs14S76cFxNS6X+ntWv1+MEvPxb1O4R+73oRW9Y3rEagJydlywugzR7iNz7OsdFG6m5lMCS2rgZ/yTy09x4wKpWi5otiXb21ZfvNlJ6XKyAgY8UK5nfjOu8JhAZVDSrw3W+Xi0jIqnIL6Ju0Ii77MD3ndCNed4hrgcSYf42oQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=OZ0kaPsKO3Ml3Z9weND2aI5Cmr/DJI0HseFxS2Ej6qo=;
 b=urLiEhEMa3Kh1FiGHUw3Rs9YoCpjJZKNQZyAC3AwuCoa9GLrCvUtlgrrRYAECfPcN62AM0AD3I355a5tiFLOiBcRs4yBAr5ayWrHbyDikQGW29wxm3aTk/dPSmPzhNnQgOMRqeqKZDpbRFoOkiDeuDtYqvBDNslzKqutwVKPvBE9UYzz/b8Lsmby2btOiL7fLWeAHIfVxO1Gi06xYHFpeGcgrDph8F4CXJCLnHN5WD/AQOZc/Gel64X82m5ESHkSkzigY6Yn26vrcKcgu+ic5MjzILShf1rWTB+FKojfXiVkA2iJQjsIkITYQu4Ku3fdIVgrLZJiDkUJ4pcj7O0HpA==
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=OZ0kaPsKO3Ml3Z9weND2aI5Cmr/DJI0HseFxS2Ej6qo=;
 b=DfN7dHRtpAeYHGONBKrv2Jibim0POw4i034kGyH3GA5qXxVsKShCwRgv30qY+F2dBa0cvkoWTkCMIdFv+4ApyDSRSgWoWzr/ICcEkbtFWt5JJZM/o8ScoqpaaQlESFkp1am6LC31BjIu4xUgni+W/YYX8P+2w5VWL/mEAPvkfas1T2vJfkEu2FKbrNgsK3WcR0A7zNCFx6EztksVB2goNF/ODympE9YYLenQAe51Z6eHjMHmsu5xRdn2MLpW8RN1laECNV9LDMc7S/WZA+lmmwNzcmpXwZtYHbKrriiCQzxofx1HD789xqTiTRdjv75LKMiYfAOWaRNsb3APt582gA==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Jan Beulich <jbeulich@suse.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Nicola Vetrini <nicola.vetrini@bugseng.com>
CC: Doug Goldstein <cardoe@cardoe.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?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] misra: add deviation for MISRA C Rule 11.3
Thread-Topic: [PATCH] misra: add deviation for MISRA C Rule 11.3
Thread-Index: AQHcEaKMMDydbZiTjE+UNGKddouDNbRs1fAAgABSSoCAAAVDgIAABVUA
Date: Thu, 21 Aug 2025 14:51:16 +0000
Message-ID: <cf6dc9bc-443e-4b6a-a2a9-affce315e219@epam.com>
References:
 <d6a8682c98880d66ea99f882520b3defda0e3fe0.1755672275.git.dmytro_prokopchuk1@epam.com>
 <5199396a-685c-4839-b7cb-d32e3f4a0b48@suse.com>
 <159de776-d0bf-4f77-a6b6-670246eca85e@epam.com>
 <ad40448c-499a-4d85-920b-a95bdeb67d9d@suse.com>
In-Reply-To: <ad40448c-499a-4d85-920b-a95bdeb67d9d@suse.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV2PR03MB9572:EE_|PA6PR03MB10435:EE_
x-ms-office365-filtering-correlation-id: 9903597d-5b73-4c20-e48d-08dde0c22ea1
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|42112799006|366016|1800799024|7416014|376014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?MGtjSGdnMjYvdmlYT3pUelZtRUF4OSt0QW50THc4Y3RleVkwRE9rZUMvQUNz?=
 =?utf-8?B?OFRmOHNMakhUREZ2bDZDWGVWM0RNM2wrSldLQWpFOUpHcWNCR2V3dzF2NVZ4?=
 =?utf-8?B?MTdyU3N0cFFleENBMEozY3U4TjJNSnBMZU5rM2I3aUFvQVVSM1p6anpIQmhI?=
 =?utf-8?B?ZmhTcFg3Y3NtTXcwUDZNbTE4dVNvYnRZVzhwOFhIaWZCV1JsMnJQUVNYWU55?=
 =?utf-8?B?SC80eFB1cFNzNjlxbFRVR1RsSU9MTVM4NDZwTE02TFVMMUtnYklwdnNSWitP?=
 =?utf-8?B?ZEZwSmIyY252d2hWeFMzclprSE9NWUNEZ2paRVdoWDJZakZNN2NodFlJSlFH?=
 =?utf-8?B?UnE0ZlBtVDBDMnRtWWdXZG13NGsyTU1wRXoyQzYzaTFvRkdpWWc3Z0FvM2JK?=
 =?utf-8?B?Z0dhOFpla2ZiNmNXRlk4ZlI3OEh3ZVU4MlBjbFZEbkVXZDNFTEsvOGhRaWtS?=
 =?utf-8?B?Z3FncnZ5ajlydUd4TGVhUDNjYWMyc0poV2NzTm9QazBJZ1g4MkhwaXhQbVJW?=
 =?utf-8?B?R2pXK2g2WFdxZGlqZkVGV09wS0NaTm1ZeUc4TjhZWHdnUUJWNGpDNG1xR1RY?=
 =?utf-8?B?Y3Q5VkdXMW1jZVR0R3dsRlliL1Y2TkhkdzFYV3VaS0Q1T2s1WFJnVTk2TXZs?=
 =?utf-8?B?UG1SNk1kVDRLaGdoK0R4SmdJZ3loNlBJQm1oVDR6NE9BaTM5ZC9yblNlamxY?=
 =?utf-8?B?WElDNG5UeG5pYWp6d1RSK0FZT0IyeHRST0dYQ1F5T0x0bGpkYlkrWjRRUTho?=
 =?utf-8?B?NTZrUUo4UVlMa1RDZ2RIZjR2bGRFM1BLbjNmeGRCc050NG12b0M3cTF0Tm5R?=
 =?utf-8?B?bGZVaElCcDhtR3BDeFdZWUJHRC9mcVMxUVkrUXRFOU9rNGwwa29lbm5uak5p?=
 =?utf-8?B?eHZTSW1lQjgxQTRuWWVCaklhVGFMS2daY2VXS2F2eVI4TzVkU2lNU1c0djBM?=
 =?utf-8?B?VXZJYW9ORDAycG9EeklUUTBCRTdORm01MnF2UUJDQzI3L3dCTzQ4bWRYZFFY?=
 =?utf-8?B?NGJoeXBxV0lETHJiUHFHU1FoeDhCWGEySXRzUzRJdTRIaU9EakI4cFk2TTRL?=
 =?utf-8?B?TVBuN1VSZmlsMTU3SUtRMHZHdnJFdmdZYWE1SEt2b2NwWklkRjNiYXBEdndy?=
 =?utf-8?B?MjBpeFBaNG8yeFVKSDJyZnRiZmZHcXBFMm1yL29wbkV2Mm9YdWlWTWcrQW5V?=
 =?utf-8?B?R3FIb1lVRGNoWHJ0WlhyQStZY3krN1JKNWgzaTN6WDZ4Wk5tT2R0SW9ncG1x?=
 =?utf-8?B?dm5xaU9xOXVWK3l1VGlXYXJCNzlmRHZBZUtUdXFaR0xUbTNkdmVuZ3NrbnFS?=
 =?utf-8?B?OVhCQUF5ZHlZZjgyOHcrU3Rnc1NiQ0xFR3M4S2hwRWhOTFhJY2dMV0p3TkJ4?=
 =?utf-8?B?WFpEd1pPejZob1VzMnE1Yk1tSmFiaUZqL0JjWVBmSEUrUWM5cnNTNGVLVVox?=
 =?utf-8?B?cnRmWjlxaFh0bU5tSDlNS01ZOFpWQkRRWFlIMys5MXBVTndjV1VsUFp6SDJ0?=
 =?utf-8?B?U1dXQkF2Y0syT1pjZTg0NlVWSGxUMGM2VDJFVTFYOVpDOGkxNWJ6ellLMkQx?=
 =?utf-8?B?NndIUjA4MmVaNWJKY04yOFBpblVLcDBXQk9WVlhnbVg1eWc2RTJmb0RMdmkz?=
 =?utf-8?B?OU0vL3RtSnRucUlJMDBFa0V6aVFQaTd4RG9IejFqQ3hqa1VCT2F0ZU11dTBo?=
 =?utf-8?B?V3c0T0NVTTY3SGxhWkRja2JmT2RiMW5kZ1V6MVZMUFpnN09ZaU9SMi9zRmRV?=
 =?utf-8?B?cDhYN3NwMk4xaGJXc20wWXZHblFweVVrUFNmcHl4REUxNjB4ZUQrdE1jWnZ3?=
 =?utf-8?B?cWF3UzBCWWhVSGlWUzJPZXNvMnBDMC9EK0VCTklzOWRKME1rWmlTM0tmM3lw?=
 =?utf-8?B?YXdtOXlOZWs3ZmFoTDUyRDM1MmRUQ1V6dk52VzM4Y1NZVUZRSktjL21lUXRX?=
 =?utf-8?B?NFNQY1hEbStWNGlzSWgyNFZwSk9jREEzNmFLVW5BYmkyZkE3SldVeFpSeHlh?=
 =?utf-8?B?U2g4NzlNSVhBPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(42112799006)(366016)(1800799024)(7416014)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?WUdyUW1paGZwNFRiQmJnd3F0SlpuOHZCVEMwdzAxY3NyNW0zb2RHaHJkWjB0?=
 =?utf-8?B?K25Pc2M3VWk0aWdlMkZ3TzFXMUJkWWVzaWQ1b3l3WjRVQ0Rva3FMQjdlR3Nt?=
 =?utf-8?B?WDVFZ2JZZnRqTnl3OEtoNGlxQm16NFNBYVVncmVzZEtvNGJzaG5DTlBzL3Ez?=
 =?utf-8?B?R2NiOUEwVWduaHFwUW9YeGVxbWJoekRGa0dyWUJYN3E4WU1xblhmZXQ1bGFX?=
 =?utf-8?B?dDFJMW50SVlPQk10KzNXeWFxakszNHdhazZzaGdyR3FWWUkycTR0S2VuNEpq?=
 =?utf-8?B?TzkzcG4zbWNtVCtsSWhITUxRN09wSUtPQkhpd0JCOGNLbVNEZmlMRVFOWmtl?=
 =?utf-8?B?QmdvM1dFbzFybUsydk1yMXBGczRLdkVkaDY4cUtZQjllK0tMZEJMeHZHUzFa?=
 =?utf-8?B?S3M2bkZ1SHkrelNyV1AzSmk4am1OaW5BejdLaGJvK3R5QzFVc1Y1VElhdHlh?=
 =?utf-8?B?UnJOemdKb1VURjcwRTNncVloUGM2VmU0QVNNZVFxdllyR2NDcnNKTGtBRFlW?=
 =?utf-8?B?ZHMwdGZhV2g1enl2RVJmemticUYwYnl2QU1oWXZRSDZuemtoUmkzcDFZNE1p?=
 =?utf-8?B?MEJ1WnJDMkJnaktCNWZ4eGJTU1doVysxSXJHUWhrWEZwRUljOEdJYU9oTVpo?=
 =?utf-8?B?WU9XeEM2R1FGdC95N0hldGh1N2dYdDd1TENHb1Z2c096T0wxaWFDTTd0d3lu?=
 =?utf-8?B?dk1VVkplU0NET3dZMjlTS2x5L1dhbGJZOTg1OC82K01xMlJ4dzdHNTB2VlZr?=
 =?utf-8?B?UFBST1lqK0NDbVB5N2g0Q0lNenZXaGJodG03SVJDS0RGVU1kb1l1dlNKYTda?=
 =?utf-8?B?NjZIWEh4VVMzYVdzWkJuamZhMnZjV1Z6enV2bW9xenU2dkFnZTF1azM2TVps?=
 =?utf-8?B?dDFzSzV1TU95Z1FpRVZ1ZjJvUDZoSGlFaXorczV5amF5Q0VuMVhTajdLMDIy?=
 =?utf-8?B?eldsRTZpaWg0V0JYUkJrVExPdk1RYkNYcnZDVVM1b2poSkJzellIejNvVUZO?=
 =?utf-8?B?Q0lqdEVhakl5YjR0c08yTC8yekRKOUxOeElTM1hFNVpxaWtncll4LzB0cXlJ?=
 =?utf-8?B?Um1qVDgvOVlwZ3BtVnNBcCswOUtvd2dWV1I1ODJOSW9hajA3MmM0WE85dG40?=
 =?utf-8?B?d25HSFBTandsb3ZQaEZrMVM0TTN6eEJwbTNLZjRLQjZOQnZuWGUxZ25KM0s1?=
 =?utf-8?B?YTZUWk9TMkpTSFlhTFVyYmJwR1RGTXVqY1VZTEZyVVUxd2NNeEEzODdFNGdK?=
 =?utf-8?B?ZG5FVUV0MzhMN3dFR2tQMEY4QUVWV0pucmx5K3JHNFZMb1lxYktiakhnRmpQ?=
 =?utf-8?B?OVNEU09RaGdvd1FEY3l0b1RpY3J2R2FyTXBjMDVna1JEK25pQitLbjFIdk4z?=
 =?utf-8?B?cE5Db2F0QVYyYmYxU1d0NFpPK28veEpSRGR2SVNDN2wxYWZhNDJ4eDNqZkcw?=
 =?utf-8?B?c2J6Ui9Ia25pZHgrT1UzQUV6OXNGVG15YTYrV2VJUlRsNDRPalRBL01XejU4?=
 =?utf-8?B?OVhERVRBNjRISWFCNXJXRm5uWmppR00xT3lPNEo2K0wxK3ZLZ1UyV1hPZWs4?=
 =?utf-8?B?eE9ocVNKTDhsZG9RQkx1Y2VaM1Z1U3BOQktzNE1iR0V6enE1MmtFOGlRK1BL?=
 =?utf-8?B?YStaaVR4YlZUclpuTXpXQVhIRnB5NFJmV0VnYkhucGNBdCs0KzhtVHpvcVZQ?=
 =?utf-8?B?VUppM01QczFSUG8ybFM4aURYSzN0cm1UVU1kd3ZEV01ZaXlPbkpEb0J0M2Ix?=
 =?utf-8?B?SFVrcWJ2Y2o3VzNnVnZ2bk9yN25ySkZ0MEJLb1l4UmZNejdlbjRlSXRDcytw?=
 =?utf-8?B?MTNnRndaZWJGcVlEMXJ5RHVaR0QyWXFISGdZVkdJMldTVndoc1BtTlU2ak9W?=
 =?utf-8?B?MkJJdWQ0VXdUNmFEZE9WQUl2dFEzaUlYRGRJYVdTdjczNDZZNnJDcU9GWTRM?=
 =?utf-8?B?YkFlaWVuQnBZbzhrMnZTYmNyVGp4NUNPc1hySGpjR2E1bk5TRXcvV1RkOFJE?=
 =?utf-8?B?UmJXcmxtTHc4MnQ1Y2VQeUYxeW56WmozRlUzWi9raUFOY2NJUkpyNVBQaVor?=
 =?utf-8?B?MTU2OXAzaHQ4eXVFQmpDa3BaM0tiMk9JVHNrYVJJdHdmY2E0cmU5RUpUSjBX?=
 =?utf-8?B?WVVVZTNkbnNZRE5TRGVNTEVJWUNGTlVaVG5rQ24wYVBpZGRyMW1aYWoyaitl?=
 =?utf-8?B?ZUE9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <C6E754405C1B7C42A3ACD49207F46D0F@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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9903597d-5b73-4c20-e48d-08dde0c22ea1
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Aug 2025 14:51:16.6699
 (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: MSfvjeHetuAxlia8AajaAT+yAhKxp+0iqWz6xzaWbqIbG7n/+dDMOkKxFFlJEFZ1mClvUx0+ib10N5ZobG6G4Snc7MjkBFTS2I2SQ1ZdL2w=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA6PR03MB10435

DQoNCk9uIDgvMjEvMjUgMTc6MzIsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAyMS4wOC4yMDI1
IDE2OjEzLCBEbXl0cm8gUHJva29wY2h1azEgd3JvdGU6DQo+PiBPbiA4LzIxLzI1IDEyOjE4LCBK
YW4gQmV1bGljaCB3cm90ZToNCj4+PiBPbiAyMC4wOC4yMDI1IDA5OjE3LCBEbXl0cm8gUHJva29w
Y2h1azEgd3JvdGU6DQo+Pj4+IC0tLSBhL2F1dG9tYXRpb24vZWNsYWlyX2FuYWx5c2lzL0VDTEFJ
Ui9tb25pdG9yZWQuZWNsDQo+Pj4+ICsrKyBiL2F1dG9tYXRpb24vZWNsYWlyX2FuYWx5c2lzL0VD
TEFJUi9tb25pdG9yZWQuZWNsDQo+Pj4+IEBAIC00NSw2ICs0NSw3IEBADQo+Pj4+ICAgIC1lbmFi
bGU9TUMzQTIuUjEwLjINCj4+Pj4gICAgLWVuYWJsZT1NQzNBMi5SMTEuMQ0KPj4+PiAgICAtZW5h
YmxlPU1DM0EyLlIxMS4yDQo+Pj4+ICstZW5hYmxlPU1DM0EyLlIxMS4zDQo+Pj4NCj4+PiBXaGls
ZSB0aGUgZGVzY3JpcHRpb24gbWVudGlvbnMgdGhpcyBjaGFuZ2UsIGl0IGRvZXNuJ3Qgc2F5IHdo
eSAoZS5nLiAibm8NCj4+PiB2aW9sYXRpb25zIGxlZnQiIG9yICJvbmx5IHRoaXMgYW5kIHRoYXQg
dmlvbGF0aW9uIGxlZnQiIG9yIHNvbWUgc3VjaCkuDQo+PiBBUk06ICA4MTNWIC0+ICAgMTZWDQo+
PiBYODY6IDE0MjJWIC0+IDEwMzVWDQo+Pg0KPj4gTG9va3MgT0sgZm9yIEFSTSAodG8gYmUgYWRk
ZWQgaW4gdGhlIG1vbml0b3JpbmcgbGlzdCksIGJ1dCBYODYuLi4NCj4+IEFueXdheSB0aGUgbnVt
YmVyIG9mIHJlcG9ydGVkIGVycm9ycyBoYXMgbm8gc2lkZSBlZmZlY3QuDQo+IA0KPiBEb2VzIGl0
IG5vdCwgaS5lLiBub3QgZXZlbiBvbiB0aGUgdGltZSBpdCB0YWtlcyBFY2xhaXIgdG8gZG8gYSBm
dWxsIHJ1bj8NCg0KWWVzLCBzY2FuIHRpbWUgZGVwZW5kcyBvbiBudW1iZXIgb2YgZW5hYmxlZCBy
dWxlcy4NCkJ1dCBJIGRvbid0IGtub3cgdGhlIHRpbWUgdmFsdWVzLg0KDQpEbXl0cm8uDQoNCj4g
DQo+PiBKYW4sIGRlY2lzaW9uIHVwIHRvIHlvdSAoaW5jbHVkZSBpbnRvIG1vbml0b3JlZC5lY2wg
b3Igbm90KS4NCj4gDQo+IEZvciB4ODYgSSB0aGluayB0aGUgY291bnQgaXMgc3RpbGwgdG9vIGhp
Z2guIEFuZCBubywgaXQncyBub3Qgc29sZWx5IG15DQo+IGRlY2lzaW9uLg0KPiANCj4gSmFuDQo=


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 15:26:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 15:26:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088817.1446543 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up7As-0006AB-Oj; Thu, 21 Aug 2025 15:25:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088817.1446543; Thu, 21 Aug 2025 15:25: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 1up7As-00066t-Fc; Thu, 21 Aug 2025 15:25:58 +0000
Received: by outflank-mailman (input) for mailman id 1088817;
 Thu, 21 Aug 2025 15:25:57 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BQjA=3B=bounce.vates.tech=bounce-md_30504962.68a73a7e.v1-3f408629188242329ca2147b15758713@srs-se1.protection.inumbo.net>)
 id 1up7Ar-0005nU-CD
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 15:25:57 +0000
Received: from mail137-3.atl71.mandrillapp.com
 (mail137-3.atl71.mandrillapp.com [198.2.137.3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1eb23df8-7ea3-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 17:25:51 +0200 (CEST)
Received: from pmta07.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail137-3.atl71.mandrillapp.com (Mailchimp) with ESMTP id 4c76bL40mbzBsVD7B
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 15:25:50 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 3f408629188242329ca2147b15758713; Thu, 21 Aug 2025 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>
X-Inumbo-ID: 1eb23df8-7ea3-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1755789950; x=1756059950;
	bh=SbIlPsyNgTEwgIzXTJ1Jn4RTs8uee0L3+cFAML8sLR8=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=RrEDColLv3XLiy+Pvl2N0Rkll4OwKpU9CDzpuliBKDNj0dP/muYjABsxULNGI2PeH
	 Tw1PIIy0Evg6Og3RYWkVSnvOLZqBkz0BzD3v3ogYXZorZm/abMLKYsbnHmpRZu2Obn
	 VX5QApBlilJEm/9thqD0gmVW76Oar4QNjr8ukBruQjeqFw9oVlQWzVuO/aHeo2TDjU
	 uRUdGmBZzCI+xl/p3BogKOp0vH7OIn5BTYpo50IWfYqaJv0z+G/S2gqaSuJTzr58C5
	 ZoWL61+MplY/3PPkq76cQpfiT8y6jcS0mFD74aKCzDCab4jTgYgJWO8jQe4qzuEiWs
	 LDKFj4Ck04HcA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1755789950; x=1756050450; i=teddy.astie@vates.tech;
	bh=SbIlPsyNgTEwgIzXTJ1Jn4RTs8uee0L3+cFAML8sLR8=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=buf6aQGC7jf864Xe0EzUrya0YgB08xs1kCH9qIHZ3T9fuFJTI86NIGWDEHRjDQLhs
	 ppY8Qa88CBvW/CUVc/LgKw7mWjCih/AiHaLuTU4fe40FUxGzTc6vEn4Ms0KKat457X
	 yeFhTbXsYv6NGumt34ve8fAIHZHpV0VTPFrd9zOFUnKOtxvobXEP/wgMVt9WJdzmD1
	 xkNp+bTgvdxDJmLZ6aK7TUDRUWSlXv3kB2/Drg/TL1q1h8dtHrYEAOdem5bvx7tDIb
	 wGeA3ptW/YQvnx51n4peEl6ju1Zdu47X2IwnSYPMdnZor3OCLHzHS5oy0/ZhLT2Pka
	 KoQtTC5cUKJew==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20PATCH=201/9]=20x86/hvm:=20Use=20direct=20structures=20instead=20of=20guest=20handles?=
X-Mailer: git-send-email 2.50.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1755789949800
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>
Message-Id: <de595114d532e0fa6c885c47cf2b3551ad495525.1755785258.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1755785258.git.teddy.astie@vates.tech>
References: <cover.1755785258.git.teddy.astie@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.3f408629188242329ca2147b15758713?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250821:md
Date: Thu, 21 Aug 2025 15:25:50 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Make these functions work with hypervisor-owned pointer rather than
guest handles, so the function parameters don't have to live in guest memory.

No functional changes intended.

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
 xen/arch/x86/hvm/hvm.c | 126 +++++++++++++++++++++++------------------
 1 file changed, 70 insertions(+), 56 deletions(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 56c7de3977..8bf59c63fe 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -4142,19 +4142,14 @@ static int hvmop_flush_tlb_all(void)
     return paging_flush_tlb(NULL) ? 0 : -ERESTART;
 }
 
-static int hvmop_set_evtchn_upcall_vector(
-    XEN_GUEST_HANDLE_PARAM(xen_hvm_evtchn_upcall_vector_t) uop)
+static int hvmop_set_evtchn_upcall_vector(xen_hvm_evtchn_upcall_vector_t op)
 {
-    xen_hvm_evtchn_upcall_vector_t op;
     struct domain *d = current->domain;
     struct vcpu *v;
 
     if ( !is_hvm_domain(d) )
         return -EINVAL;
 
-    if ( copy_from_guest(&op, uop, 1) )
-        return -EFAULT;
-
     if ( op.vector < 0x10 )
         return -EINVAL;
 
@@ -4434,26 +4429,21 @@ static int hvm_set_param(struct domain *d, uint32_t index, uint64_t value)
     return rc;
 }
 
-static int hvmop_set_param(
-    XEN_GUEST_HANDLE_PARAM(xen_hvm_param_t) arg)
+static int hvmop_set_param(struct xen_hvm_param op)
 {
-    struct xen_hvm_param a;
     struct domain *d;
     int rc;
 
-    if ( copy_from_guest(&a, arg, 1) )
-        return -EFAULT;
-
-    if ( a.index >= HVM_NR_PARAMS )
+    if ( op.index >= HVM_NR_PARAMS )
         return -EINVAL;
 
-    d = rcu_lock_domain_by_any_id(a.domid);
+    d = rcu_lock_domain_by_any_id(op.domid);
     if ( d == NULL )
         return -ESRCH;
 
     rc = -EINVAL;
     if ( is_hvm_domain(d) )
-        rc = hvm_set_param(d, a.index, a.value);
+        rc = hvm_set_param(d, op.index, op.value);
 
     rcu_unlock_domain(d);
     return rc;
@@ -4544,31 +4534,21 @@ int hvm_get_param(struct domain *d, uint32_t index, uint64_t *value)
     return 0;
 };
 
-static int hvmop_get_param(
-    XEN_GUEST_HANDLE_PARAM(xen_hvm_param_t) arg)
+static int hvmop_get_param(struct xen_hvm_param *op)
 {
-    struct xen_hvm_param a;
     struct domain *d;
     int rc;
 
-    if ( copy_from_guest(&a, arg, 1) )
-        return -EFAULT;
-
-    if ( a.index >= HVM_NR_PARAMS )
+    if ( op->index >= HVM_NR_PARAMS )
         return -EINVAL;
 
-    d = rcu_lock_domain_by_any_id(a.domid);
+    d = rcu_lock_domain_by_any_id(op->domid);
     if ( d == NULL )
         return -ESRCH;
 
     rc = -EINVAL;
-    if ( is_hvm_domain(d) && !(rc = hvm_get_param(d, a.index, &a.value)) )
-    {
-        rc = __copy_to_guest(arg, &a, 1) ? -EFAULT : 0;
-
-        HVM_DBG_LOG(DBG_LEVEL_HCALL, "get param %u = %"PRIx64,
-                    a.index, a.value);
-    }
+    if ( is_hvm_domain(d) && !(rc = hvm_get_param(d, op->index, &op->value)) )
+        HVM_DBG_LOG(DBG_LEVEL_HCALL, "get param %u = %"PRIx64, a.index, a.value);
 
     rcu_unlock_domain(d);
     return rc;
@@ -5046,18 +5026,13 @@ static int compat_altp2m_op(
     return rc;
 }
 
-static int hvmop_get_mem_type(
-    XEN_GUEST_HANDLE_PARAM(xen_hvm_get_mem_type_t) arg)
+static int hvmop_get_mem_type(struct xen_hvm_get_mem_type *op)
 {
-    struct xen_hvm_get_mem_type a;
     struct domain *d;
     p2m_type_t t;
     int rc;
 
-    if ( copy_from_guest(&a, arg, 1) )
-        return -EFAULT;
-
-    d = rcu_lock_domain_by_any_id(a.domid);
+    d = rcu_lock_domain_by_any_id(op->domid);
     if ( d == NULL )
         return -ESRCH;
 
@@ -5074,25 +5049,22 @@ static int hvmop_get_mem_type(
      * type, not in allocating or unsharing. That'll happen
      * on access.
      */
-    get_gfn_query_unlocked(d, a.pfn, &t);
+    get_gfn_query_unlocked(d, op->pfn, &t);
     if ( p2m_is_mmio(t) )
-        a.mem_type =  HVMMEM_mmio_dm;
+        op->mem_type =  HVMMEM_mmio_dm;
     else if ( t == p2m_ioreq_server )
-        a.mem_type = HVMMEM_ioreq_server;
+        op->mem_type = HVMMEM_ioreq_server;
     else if ( p2m_is_readonly(t) )
-        a.mem_type =  HVMMEM_ram_ro;
+        op->mem_type =  HVMMEM_ram_ro;
     else if ( p2m_is_ram(t) )
-        a.mem_type =  HVMMEM_ram_rw;
+        op->mem_type =  HVMMEM_ram_rw;
     else if ( p2m_is_pod(t) )
-        a.mem_type =  HVMMEM_ram_rw;
+        op->mem_type =  HVMMEM_ram_rw;
     else if ( p2m_is_grant(t) )
-        a.mem_type =  HVMMEM_ram_rw;
+        op->mem_type =  HVMMEM_ram_rw;
     else
-        a.mem_type =  HVMMEM_mmio_dm;
+        op->mem_type =  HVMMEM_mmio_dm;
 
-    rc = -EFAULT;
-    if ( __copy_to_guest(arg, &a, 1) )
-        goto out;
     rc = 0;
 
  out:
@@ -5115,28 +5087,70 @@ long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) arg)
     switch ( op )
     {
     case HVMOP_set_evtchn_upcall_vector:
-        rc = hvmop_set_evtchn_upcall_vector(
-            guest_handle_cast(arg, xen_hvm_evtchn_upcall_vector_t));
+    {
+        struct xen_hvm_evtchn_upcall_vector op;
+
+        if ( copy_from_guest(&op, arg, 1) )
+        {
+            rc = -EFAULT;
+            break;
+        }
+
+        rc = hvmop_set_evtchn_upcall_vector(op);
         break;
+    }
     
     case HVMOP_set_param:
-        rc = hvmop_set_param(
-            guest_handle_cast(arg, xen_hvm_param_t));
+    {
+        struct xen_hvm_param op;
+        
+        if ( copy_from_guest(&op, arg, 1) )
+        {
+            rc = -EFAULT;
+            break;
+        }
+
+        rc = hvmop_set_param(op);
         break;
+    }
 
     case HVMOP_get_param:
-        rc = hvmop_get_param(
-            guest_handle_cast(arg, xen_hvm_param_t));
+    {
+        struct xen_hvm_param op;
+        
+        if ( copy_from_guest(&op, arg, 1) )
+        {
+            rc = -EFAULT;
+            break;
+        }
+
+        rc = hvmop_get_param(&op);
+
+        if ( !rc && copy_to_guest(arg, &op, 1) )
+            rc = -EFAULT;
         break;
+    }
 
     case HVMOP_flush_tlbs:
         rc = guest_handle_is_null(arg) ? hvmop_flush_tlb_all() : -EINVAL;
         break;
 
     case HVMOP_get_mem_type:
-        rc = hvmop_get_mem_type(
-            guest_handle_cast(arg, xen_hvm_get_mem_type_t));
+    {
+        struct xen_hvm_get_mem_type op;
+
+        if ( copy_from_guest(&op, arg, 1) )
+        {
+            rc = -EFAULT;
+            break;
+        }
+        
+        rc = hvmop_get_mem_type(&op);
+
+        if ( !rc && copy_to_guest(arg, &op, 1) )
+            rc = -EFAULT;
         break;
+    }
 
     case HVMOP_pagetable_dying:
     {
-- 
2.50.1



Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 15:26:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 15:26:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088821.1446578 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up7Av-00070x-FI; Thu, 21 Aug 2025 15:26:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088821.1446578; Thu, 21 Aug 2025 15:26:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up7Av-0006yV-9x; Thu, 21 Aug 2025 15:26:01 +0000
Received: by outflank-mailman (input) for mailman id 1088821;
 Thu, 21 Aug 2025 15:26:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=jKuh=3B=bounce.vates.tech=bounce-md_30504962.68a73a84.v1-a995d3371d0e467594b68952f829b548@srs-se1.protection.inumbo.net>)
 id 1up7At-0005nU-Q7
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 15:26:00 +0000
Received: from mail137-3.atl71.mandrillapp.com
 (mail137-3.atl71.mandrillapp.com [198.2.137.3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 23730422-7ea3-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 17:25:58 +0200 (CEST)
Received: from pmta07.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail137-3.atl71.mandrillapp.com (Mailchimp) with ESMTP id 4c76bS5vfQzBsVD7L
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 15:25:56 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 a995d3371d0e467594b68952f829b548; Thu, 21 Aug 2025 15:25: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>
X-Inumbo-ID: 23730422-7ea3-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1755789956; x=1756059956;
	bh=NmIuO1pdpbmW3k7cBEiWCdpAQ2G3SKKK5JzTVol4PfM=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=hefq1bT3PwkO2n1bV6dWVWcWp0BSnpsmV09jCqOOKrDIbrz96OGjcKPQtpZ5xehZp
	 KD6Dal0mWLu2ZYl4jOdgMEzkLKvodaCjcsMUmEaviXrqOqJnPBprwD4f7eWIsW1IGU
	 irz+0+U3iKwyEkyhBGBrdB7wBp9Kia3fAQ6DUWyJyQ3uj7jifkU9xNkkW657Pfi9ou
	 9zH9/rj4NgPHF0SYdeEjba/v1mr1mxUx+1MU8QQvBvf1qmMYq1S9TQAq+ikYtWajGR
	 hdY01G846+Cgtc3hOrmxIaqtyTjt+lBCMzHXxth9UAdGRXci0v+c8efoiMcGFK4iwW
	 VsUGrrTuBuBbQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1755789956; x=1756050456; i=teddy.astie@vates.tech;
	bh=NmIuO1pdpbmW3k7cBEiWCdpAQ2G3SKKK5JzTVol4PfM=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=eTE+uSD1oaYojVAl2HYVExe5iaYtwTw0MKMvtrrQ986jgBxuAylwEOaQwVzxwWHV/
	 q1MyAR2OLxTbne6nbB0dlyQ+oBucKDt1qbyH0+kbrFHwHJFWHFkZERtnjDsYNlfjks
	 vEdz8jD0ZcxD5446S2bzqgIWIzwY2zmvwN7POpACFCMqZ9cz9+b6CLCrjDTYyZEAU5
	 eNQi+ab0vkX5zilGG+Z0KxGMvIeSzuLgZp8jpTdmUP6T9fIsEUGLcPgctLznADJbno
	 dPXaZqW/ihoCHxsgHRTS4aVlbjNh+JiALCUGoG0Yuz8vgZX5rE7OHZ4+yw79bYMGRN
	 Vw+9aMaxjs/eQ==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20PATCH=207/9]=20x86/hvm:=20Introduce=20FastABI=20implementation?=
X-Mailer: git-send-email 2.50.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1755789955039
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Julien Grall" <julien@xen.org>, "Stefano Stabellini" <sstabellini@kernel.org>, "Dario Faggioli" <dfaggioli@suse.com>, "Juergen Gross" <jgross@suse.com>, "George Dunlap" <gwd@xenproject.org>, "Daniel P. Smith" <dpsmith@apertussolutions.com>
Message-Id: <9da7d600c7cb6c4334f3e01b7724ad106930bc6e.1755785258.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1755785258.git.teddy.astie@vates.tech>
References: <cover.1755785258.git.teddy.astie@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.a995d3371d0e467594b68952f829b548?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250821:md
Date: Thu, 21 Aug 2025 15:25:56 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Implement FastABI basing on docs/guest-guide/x86/fastabi.pandoc and defined ABI.

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
 xen/arch/x86/cpuid.c               |   3 +
 xen/arch/x86/domain.c              |  71 ++++++++++
 xen/arch/x86/hvm/hvm.c             |  81 +++++++++++-
 xen/arch/x86/hvm/hypercall.c       |  22 ++++
 xen/arch/x86/include/asm/fastabi.h |  17 +++
 xen/common/Kconfig                 |   6 +
 xen/common/Makefile                |   1 +
 xen/common/domain.c                | 179 ++++++++++++++++++++++++++
 xen/common/event_channel.c         | 199 +++++++++++++++++++++++++++++
 xen/common/fastabi.c               |  49 +++++++
 xen/common/grant_table.c           |  44 +++++++
 xen/common/kernel.c                |  33 +++++
 xen/common/memory.c                | 110 ++++++++++++++++
 xen/common/sched/core.c            | 109 +++++++++++++++-
 xen/include/public/event_channel.h |   7 +
 xen/include/public/fastabi.h       |  20 +++
 xen/include/xen/fastabi.h          |  21 +++
 17 files changed, 970 insertions(+), 2 deletions(-)
 create mode 100644 xen/arch/x86/include/asm/fastabi.h
 create mode 100644 xen/common/fastabi.c
 create mode 100644 xen/include/public/fastabi.h
 create mode 100644 xen/include/xen/fastabi.h

diff --git a/xen/arch/x86/cpuid.c b/xen/arch/x86/cpuid.c
index 8dc68945f7..b1f90c1d91 100644
--- a/xen/arch/x86/cpuid.c
+++ b/xen/arch/x86/cpuid.c
@@ -153,6 +153,9 @@ static void cpuid_hypervisor_leaves(const struct vcpu *v, uint32_t leaf,
          */
         res->a |= XEN_HVM_CPUID_UPCALL_VECTOR;
 
+        if ( IS_ENABLED(CONFIG_FASTABI) && is_hvm_vcpu(v) )
+            res->a |= XEN_HVM_CPUID_FASTABI;
+
         break;
 
     case 5: /* PV-specific parameters */
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 56c3816187..44416869a3 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -71,6 +71,10 @@
 #include <public/sysctl.h>
 #include <public/hvm/hvm_vcpu.h>
 
+#ifdef CONFIG_FASTABI
+#include <xen/fastabi.h>
+#endif
+
 #ifdef CONFIG_COMPAT
 #include <compat/vcpu.h>
 #endif
@@ -1695,6 +1699,73 @@ long do_vcpu_op(int cmd, unsigned int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg)
     return rc;
 }
 
+#ifdef CONFIG_FASTABI
+void do_vcpu_fast_op(struct cpu_user_regs *regs)
+{
+    long rc = 0;
+    struct domain *d = current->domain;
+    struct vcpu *v;
+
+    unsigned long cmd = fastabi_value_n(regs, 1);
+    unsigned long vcpuid = fastabi_value_n(regs, 2);
+
+    if ( (v = domain_vcpu(d, vcpuid)) == NULL )
+    {
+        fastabi_value_n(regs, 0) = -ENOENT;
+        return;
+    }
+
+    switch ( cmd )
+    {
+    case VCPUOP_send_nmi:
+        if ( !test_and_set_bool(v->arch.nmi_pending) )
+            vcpu_kick(v);
+        break;
+
+
+    case VCPUOP_register_vcpu_time_phys_area:
+    {
+        struct vcpu_register_time_memory_area area = {
+            .addr.p = fastabi_value_n(regs, 3)
+        };
+
+        rc = -ENOSYS;
+        if ( 0 /* TODO: Dom's XENFEAT_vcpu_time_phys_area setting */ )
+            break;
+
+        rc = map_guest_area(v, area.addr.p,
+                            sizeof(vcpu_time_info_t),
+                            &v->arch.time_guest_area,
+                            time_area_populate);
+        break;
+    }
+
+    case VCPUOP_get_physid:
+    {
+        rc = -EINVAL;
+        if ( !is_hwdom_pinned_vcpu(v) )
+            break;
+
+        fastabi_value_n(regs, 3) =
+            (uint64_t)x86_cpu_to_apicid[v->vcpu_id] |
+            ((uint64_t)acpi_get_processor_id(v->vcpu_id) << 32);
+
+        rc = 0;
+        break;
+    }
+
+    default:
+        rc = common_vcpu_fast_op(regs, cmd, v);
+        break;
+    }
+
+    if ( rc == -ERESTART )
+        fastabi_make_continuation();
+    else
+        fastabi_value_n(regs, 0) = rc;
+}
+#endif
+
 /*
  * Notes on PV segment handling:
  *  - 32bit: All data from the GDT/LDT.
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 8bf59c63fe..eca052e109 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -68,6 +68,10 @@
 
 #include <compat/hvm/hvm_op.h>
 
+#ifdef CONFIG_FASTABI
+#include <xen/fastabi.h>
+#endif
+
 bool __read_mostly hvm_enabled;
 
 #ifdef DBG_LEVEL_0
@@ -4548,7 +4552,7 @@ static int hvmop_get_param(struct xen_hvm_param *op)
 
     rc = -EINVAL;
     if ( is_hvm_domain(d) && !(rc = hvm_get_param(d, op->index, &op->value)) )
-        HVM_DBG_LOG(DBG_LEVEL_HCALL, "get param %u = %"PRIx64, a.index, a.value);
+        HVM_DBG_LOG(DBG_LEVEL_HCALL, "get param %u = %"PRIx64, op->index, op->value);
 
     rcu_unlock_domain(d);
     return rc;
@@ -5224,6 +5228,81 @@ long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) arg)
     return rc;
 }
 
+#ifdef CONFIG_FASTABI
+void do_hvm_fast_op(struct cpu_user_regs *regs)
+{
+    long rc = 0;
+    unsigned long op = fastabi_value_n(regs, 1);
+
+    switch ( op )
+    {
+    case HVMOP_set_evtchn_upcall_vector:
+    {
+        struct xen_hvm_evtchn_upcall_vector op = {
+            .vcpu = fastabi_value_n(regs, 2),
+            .vector = fastabi_value_n(regs, 3),
+        };
+
+        rc = hvmop_set_evtchn_upcall_vector(op);
+        break;
+    }
+
+    case HVMOP_set_param:
+    {
+        struct xen_hvm_param op = {
+            .domid = fastabi_value_n(regs, 2),
+            .index = fastabi_value_n(regs, 3),
+            .value = fastabi_value_n(regs, 4),
+        };
+
+        rc = hvmop_set_param(op);
+        break;
+    }
+
+    case HVMOP_get_param:
+    {
+        struct xen_hvm_param op = {
+            .domid = fastabi_value_n(regs, 2),
+            .index = fastabi_value_n(regs, 3),
+        };
+
+        rc = hvmop_get_param(&op);
+        if ( !rc )
+            fastabi_value_n(regs, 4) = op.value;
+        break;
+    }
+
+    case HVMOP_flush_tlbs:
+        rc = hvmop_flush_tlb_all();
+        break;
+
+    case HVMOP_get_time:
+        fastabi_value_n(regs, 2) = NOW();
+        break;
+    
+    case HVMOP_get_mem_type:
+    {
+        struct xen_hvm_get_mem_type op = {
+            .domid = fastabi_value_n(regs, 2),
+            .pfn = fastabi_value_n(regs, 3),
+        };
+
+        rc = hvmop_get_mem_type(&op);
+
+        if ( !rc )
+            fastabi_value_n(regs, 4) = op.mem_type;
+        break;
+    }
+
+    default:
+        rc = -ENOSYS;
+        break;
+    }
+
+    fastabi_value_n(regs, 0) = rc;
+}
+#endif
+
 int hvm_debug_op(struct vcpu *v, int32_t op)
 {
     int rc = 0;
diff --git a/xen/arch/x86/hvm/hypercall.c b/xen/arch/x86/hvm/hypercall.c
index 6f8dfdff4a..3759a1aa58 100644
--- a/xen/arch/x86/hvm/hypercall.c
+++ b/xen/arch/x86/hvm/hypercall.c
@@ -19,6 +19,10 @@
 #include <public/hvm/hvm_op.h>
 #include <public/hvm/params.h>
 
+#ifdef CONFIG_FASTABI
+#include <xen/fastabi.h>
+#endif
+
 long hvm_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
 {
     long rc;
@@ -155,6 +159,24 @@ int hvm_hypercall(struct cpu_user_regs *regs)
 
     curr->hcall_preempted = false;
 
+    #ifdef CONFIG_FASTABI
+    if ( eax & 0x40000000U && is_hvm_domain(currd) && mode == X86_MODE_64BIT )
+    {
+        unsigned long index = eax & ~0x40000000U;
+        HVM_DBG_LOG(DBG_LEVEL_HCALL,
+                    "fasthcall%lu(%lx, %lx, %lx, %lx, %lx, %lx, %lx)",
+                    index, fastabi_value_n(regs, 1), fastabi_value_n(regs, 2),
+                    fastabi_value_n(regs, 3), fastabi_value_n(regs, 4),
+                    fastabi_value_n(regs, 5), fastabi_value_n(regs, 6),
+                    fastabi_value_n(regs, 7));
+
+        fastabi_dispatch(index, regs);
+
+        hvmemul_cache_restore(curr, token);
+        return HVM_HCALL_completed;
+    }
+    #endif
+
     if ( mode == 8 )
     {
         HVM_DBG_LOG(DBG_LEVEL_HCALL, "hcall%lu(%lx, %lx, %lx, %lx, %lx)",
diff --git a/xen/arch/x86/include/asm/fastabi.h b/xen/arch/x86/include/asm/fastabi.h
new file mode 100644
index 0000000000..914504c63d
--- /dev/null
+++ b/xen/arch/x86/include/asm/fastabi.h
@@ -0,0 +1,17 @@
+#ifndef XEN_ASM_FASTABI_H
+#define XEN_ASM_FASTABI_H
+
+#include <asm/current.h>
+
+#define fastabi_param_reg0 rax
+#define fastabi_param_reg1 rdi
+#define fastabi_param_reg2 rsi
+#define fastabi_param_reg3 r8
+#define fastabi_param_reg4 r9
+#define fastabi_param_reg5 r10
+#define fastabi_param_reg6 r11
+#define fastabi_param_reg7 r12
+
+#define fastabi_value_n(regs, n) (regs)->fastabi_param_reg##n
+
+#endif /* XEN_ASM_FASTABI_H */
\ No newline at end of file
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 65f07289dd..71bb4e4f2d 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -636,4 +636,10 @@ config PM_STATS
 	  Enable collection of performance management statistics to aid in
 	  analyzing and tuning power/performance characteristics of the system
 
+config FASTABI
+	depends on X86 && HVM
+	bool "Fast HVM ABI (unsupported)"
+	help
+		Add support for a alternative fast HVM ABI.
+
 endmenu
diff --git a/xen/common/Makefile b/xen/common/Makefile
index 98f0873056..362e8f61d7 100644
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -62,6 +62,7 @@ obj-y += wait.o
 obj-bin-y += warning.init.o
 obj-$(CONFIG_XENOPROF) += xenoprof.o
 obj-y += xmalloc_tlsf.o
+obj-$(CONFIG_FASTABI) += fastabi.o
 
 obj-bin-$(CONFIG_X86) += $(foreach n,decompress bunzip2 unxz unlzma lzo unlzo unlz4 unzstd earlycpio,$(n).init.o)
 
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 303c338ef2..5a641403b9 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -45,6 +45,10 @@
 #include <xen/trace.h>
 #include <asm/setup.h>
 
+#ifdef CONFIG_FASTABI
+#include <xen/fastabi.h>
+#endif
+
 #ifdef CONFIG_X86
 #include <asm/guest.h>
 #endif
@@ -2266,6 +2270,181 @@ long common_vcpu_op(int cmd, struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void) arg)
     return rc;
 }
 
+#ifdef CONFIG_FASTABI
+long common_vcpu_fast_op(struct cpu_user_regs *regs, int cmd, struct vcpu *v)
+{
+    long rc = 0;
+    struct domain *d = v->domain;
+    unsigned int vcpuid = v->vcpu_id;
+
+    switch ( cmd )
+    {
+    case VCPUOP_initialise:
+        rc = arch_initialise_vcpu(v, (XEN_GUEST_HANDLE(void)) { 
+            (void *)fastabi_value_n(regs, 2) });
+        break;
+
+    case VCPUOP_up:
+    {
+        bool wake = false;
+
+        domain_lock(d);
+        if ( !v->is_initialised )
+            rc = -EINVAL;
+        else
+            wake = test_and_clear_bit(_VPF_down, &v->pause_flags);
+        domain_unlock(d);
+        if ( wake )
+            vcpu_wake(v);
+    }
+
+        break;
+
+    case VCPUOP_down:
+        for_each_vcpu ( d, v )
+            if ( !test_bit(_VPF_down, &v->pause_flags) )
+            {
+               rc = 1;
+               break;
+            }
+
+        if ( !rc ) /* Last vcpu going down? */
+        {
+            domain_shutdown(d, SHUTDOWN_poweroff);
+            break;
+        }
+
+        rc = 0;
+        v = d->vcpu[vcpuid];
+
+        if ( !test_and_set_bit(_VPF_down, &v->pause_flags) )
+            vcpu_sleep_nosync(v);
+
+        break;
+
+    case VCPUOP_is_up:
+        rc = !(v->pause_flags & VPF_down);
+        break;
+
+    case VCPUOP_get_runstate_info:
+    {
+        struct vcpu_runstate_info runstate;
+        vcpu_runstate_get(v, &runstate);
+
+        fastabi_value_n(regs, 2) = runstate.state;
+        fastabi_value_n(regs, 3) = runstate.state_entry_time;
+        fastabi_value_n(regs, 4) = runstate.time[0];
+        fastabi_value_n(regs, 5) = runstate.time[1];
+        fastabi_value_n(regs, 6) = runstate.time[2];
+        fastabi_value_n(regs, 7) = runstate.time[3];
+        break;
+    }
+
+    case VCPUOP_set_periodic_timer:
+    {
+        uint64_t period_ns = fastabi_value_n(regs, 3);
+
+        if ( period_ns < MILLISECS(1) )
+            return -EINVAL;
+
+        if ( period_ns > STIME_DELTA_MAX )
+            return -EINVAL;
+
+        vcpu_set_periodic_timer(v, period_ns);
+
+        break;
+    }
+
+    case VCPUOP_stop_periodic_timer:
+        vcpu_set_periodic_timer(v, 0);
+        break;
+
+    case VCPUOP_set_singleshot_timer:
+    {
+        struct vcpu_set_singleshot_timer set = {
+            .timeout_abs_ns = fastabi_value_n(regs, 3),
+            .flags = fastabi_value_n(regs, 4),
+        };
+
+        if ( v != current )
+            return -EINVAL;
+
+        if ( set.timeout_abs_ns < NOW() )
+        {
+            /*
+             * Simplify the logic if the timeout has already expired and just
+             * inject the event.
+             */
+            stop_timer(&v->singleshot_timer);
+            send_timer_event(v);
+            break;
+        }
+
+        migrate_timer(&v->singleshot_timer, smp_processor_id());
+        set_timer(&v->singleshot_timer, set.timeout_abs_ns);
+
+        break;
+    }
+
+    case VCPUOP_stop_singleshot_timer:
+        if ( v != current )
+            return -EINVAL;
+
+        stop_timer(&v->singleshot_timer);
+
+        break;
+
+    case VCPUOP_register_vcpu_info:
+    {
+        struct vcpu_register_vcpu_info info = {
+            .mfn = fastabi_value_n(regs, 3),
+            .offset = fastabi_value_n(regs, 4)
+        };
+        paddr_t gaddr;
+
+        rc = -EINVAL;
+        gaddr = gfn_to_gaddr(_gfn(info.mfn)) + info.offset;
+        if ( !~gaddr ||
+             gfn_x(gaddr_to_gfn(gaddr)) != info.mfn )
+            break;
+
+        /* Preliminary check only; see map_guest_area(). */
+        rc = -EBUSY;
+        if ( v->vcpu_info_area.pg )
+            break;
+
+        /* See the BUILD_BUG_ON() in vcpu_info_populate(). */
+        rc = map_guest_area(v, gaddr, sizeof(vcpu_info_t),
+                            &v->vcpu_info_area, vcpu_info_populate);
+        break;
+    }
+
+    case VCPUOP_register_runstate_phys_area:
+    {
+        struct vcpu_register_runstate_memory_area area = {
+            .addr.p = fastabi_value_n(regs, 3)
+        };
+
+        rc = -ENOSYS;
+        if ( 0 /* TODO: Dom's XENFEAT_runstate_phys_area setting */ )
+            break;
+
+        rc = map_guest_area(v, area.addr.p,
+                            sizeof(struct vcpu_runstate_info),
+                            &v->runstate_guest_area,
+                            runstate_area_populate);
+        break;
+    }
+
+    default:
+        rc = -ENOSYS;
+        break;
+    }
+
+    return rc;
+}
+#endif
+
 #ifdef arch_vm_assist_valid_mask
 long do_vm_assist(unsigned int cmd, unsigned int type)
 {
diff --git a/xen/common/event_channel.c b/xen/common/event_channel.c
index c8c1bfa615..9c8bc0f354 100644
--- a/xen/common/event_channel.c
+++ b/xen/common/event_channel.c
@@ -34,6 +34,10 @@
 #include <public/event_channel.h>
 #include <xsm/xsm.h>
 
+#ifdef CONFIG_FASTABI
+#include <xen/fastabi.h>
+#endif
+
 #ifdef CONFIG_PV_SHIM
 #include <asm/guest.h>
 #endif
@@ -1507,6 +1511,201 @@ long do_event_channel_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
     return rc;
 }
 
+#ifdef CONFIG_FASTABI
+void do_event_channel_fast_op(struct cpu_user_regs *regs)
+{
+    long rc;
+    uint64_t cmd = fastabi_value_n(regs, 1);
+
+    switch ( cmd )
+    {
+    case EVTCHNOP_alloc_unbound: {
+        struct evtchn_alloc_unbound alloc_unbound = {
+            .dom = fastabi_value_n(regs, 2),
+            .remote_dom = fastabi_value_n(regs, 3),
+            .port = 0,
+        };
+        rc = evtchn_alloc_unbound(&alloc_unbound, 0);
+
+        if ( !rc )
+            fastabi_value_n(regs, 4) = alloc_unbound.port;
+        break;
+    }
+
+    case EVTCHNOP_bind_interdomain: {
+        struct evtchn_bind_interdomain bind_interdomain = {
+            .remote_dom = fastabi_value_n(regs, 2),
+            .remote_port = fastabi_value_n(regs, 3),
+            .local_port = 0,
+        };
+        rc = evtchn_bind_interdomain(&bind_interdomain, current->domain, 0);
+
+        if ( !rc )
+            fastabi_value_n(regs, 4) = bind_interdomain.local_port;
+        break;
+    }
+
+    case EVTCHNOP_bind_virq: {
+        struct evtchn_bind_virq bind_virq = {
+            .virq = fastabi_value_n(regs, 2),
+            .vcpu = fastabi_value_n(regs, 3),
+            .port = 0,
+        };
+        rc = evtchn_bind_virq(&bind_virq, 0);
+
+        if ( !rc )
+            fastabi_value_n(regs, 4) = bind_virq.port;
+        break;
+    }
+
+    case EVTCHNOP_bind_ipi: {
+        struct evtchn_bind_ipi bind_ipi = {
+            .vcpu = fastabi_value_n(regs, 2),
+            .port = 0,
+        };
+        rc = evtchn_bind_ipi(&bind_ipi);
+
+        if ( !rc )
+            fastabi_value_n(regs, 4) = bind_ipi.port;
+        break;
+    }
+
+    case EVTCHNOP_bind_pirq: {
+        struct evtchn_bind_pirq bind_pirq = {
+            .pirq = fastabi_value_n(regs, 2),
+            .flags = fastabi_value_n(regs, 3),
+        };
+        rc = evtchn_bind_pirq(&bind_pirq);
+
+        if ( !rc )
+            fastabi_value_n(regs, 4) = bind_pirq.port;
+        break;
+    }
+
+    case EVTCHNOP_close: {
+        struct evtchn_close close = { .port = fastabi_value_n(regs, 2) };
+        rc = evtchn_close(current->domain, close.port, 1);
+        break;
+    }
+
+    case EVTCHNOP_send: {
+        struct evtchn_send send = { .port = fastabi_value_n(regs, 2) };
+        rc = evtchn_send(current->domain, send.port);
+        break;
+    }
+
+    case EVTCHNOP_status: {
+        struct evtchn_status status = {
+            .dom = fastabi_value_n(regs, 2),
+            .port = fastabi_value_n(regs, 3),
+        };
+        rc = evtchn_status(&status);
+
+        if ( !rc )
+        {
+            fastabi_value_n(regs, 4) = status.status;
+            fastabi_value_n(regs, 5) = status.vcpu;
+
+            switch (status.status)
+            {
+            case EVTCHNSTAT_unbound:
+                fastabi_value_n(regs, 6) = status.u.unbound.dom;
+                break;
+            case EVTCHNSTAT_interdomain:
+                fastabi_value_n(regs, 6) = status.u.interdomain.dom;
+                fastabi_value_n(regs, 7) = status.u.interdomain.port;
+                break;
+            case EVTCHNSTAT_pirq:
+                fastabi_value_n(regs, 6) = status.u.pirq;
+                break;
+            case EVTCHNSTAT_virq:
+                fastabi_value_n(regs, 6) = status.u.virq;
+                break;
+            default:
+                break;
+            }
+        }
+        break;
+    }
+
+    case EVTCHNOP_bind_vcpu: {
+        struct evtchn_bind_vcpu bind_vcpu = {
+            .vcpu = fastabi_value_n(regs, 2),
+            .port = fastabi_value_n(regs, 3)
+        };
+        rc = evtchn_bind_vcpu(bind_vcpu.port, bind_vcpu.vcpu);
+        break;
+    }
+
+    case EVTCHNOP_unmask: {
+        struct evtchn_unmask unmask = { .port = fastabi_value_n(regs, 2) };
+        rc = evtchn_unmask(unmask.port);
+        break;
+    }
+
+    case EVTCHNOP_reset:
+    case EVTCHNOP_reset_cont: {
+        struct evtchn_reset reset = { .dom = fastabi_value_n(regs, 2) };
+        struct domain *d;
+
+        d = rcu_lock_domain_by_any_id(reset.dom);
+        if ( d == NULL )
+        {
+            rc = -ESRCH;
+            break;
+        }
+
+        rc = xsm_evtchn_reset(XSM_TARGET, current->domain, d);
+        if ( !rc )
+            rc = evtchn_reset(d, cmd == EVTCHNOP_reset_cont);
+
+        rcu_unlock_domain(d);
+
+        if ( rc == -ERESTART )
+        {
+            fastabi_value_n(regs, 1) = EVTCHNOP_reset_cont;
+            fastabi_make_continuation();
+            return;
+        }
+        break;
+    }
+
+    case EVTCHNOP_init_control: {
+        struct evtchn_init_control init_control = {
+            .control_gfn = fastabi_value_n(regs, 2),
+            .offset = fastabi_value_n(regs, 3),
+            .vcpu = fastabi_value_n(regs, 4)
+        };
+        rc = evtchn_fifo_init_control(&init_control);
+
+        if ( !rc )
+            fastabi_value_n(regs, 5) = init_control.link_bits;
+        break;
+    }
+
+    case EVTCHNOP_expand_array: {
+        struct evtchn_expand_array expand_array = { .array_gfn = fastabi_value_n(regs, 2) };
+        rc = evtchn_fifo_expand_array(&expand_array);
+        break;
+    }
+
+    case EVTCHNOP_set_priority: {
+        struct evtchn_set_priority set_priority = {
+            .port = fastabi_value_n(regs, 2),
+            .priority = fastabi_value_n(regs, 3),
+        };
+        rc = evtchn_set_priority(&set_priority);
+        break;
+    }
+
+    default:
+        rc = -ENOSYS;
+        break;
+    }
+
+    fastabi_value_n(regs, 0) = rc;
+}
+#endif
 
 int alloc_unbound_xen_event_channel(
     struct domain *ld, unsigned int lvcpu, domid_t remote_domid,
diff --git a/xen/common/fastabi.c b/xen/common/fastabi.c
new file mode 100644
index 0000000000..96a3b05ee7
--- /dev/null
+++ b/xen/common/fastabi.c
@@ -0,0 +1,49 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/errno.h>
+#include <xen/fastabi.h>
+#include <xen/sched.h>
+
+#include <public/xen.h>
+
+void fastabi_make_continuation(void)
+{
+    current->hcall_preempted = true;
+}
+
+void fastabi_dispatch(unsigned long index, struct cpu_user_regs *regs)
+{
+    switch (index) {
+    case __HYPERVISOR_memory_op:
+        do_memory_fast_op(regs);
+        break;
+
+    case __HYPERVISOR_xen_version:
+        do_xen_version_fast_op(regs);
+        break;
+    
+    case __HYPERVISOR_grant_table_op:
+        do_grant_table_fast_op(regs);
+        break;
+
+    case __HYPERVISOR_vcpu_op:
+        do_vcpu_fast_op(regs);
+        break;
+
+    case __HYPERVISOR_sched_op:
+        do_sched_fast_op(regs);
+        break;
+
+    case __HYPERVISOR_event_channel_op:
+        do_event_channel_fast_op(regs);
+        break;
+
+    case __HYPERVISOR_hvm_op:
+        do_hvm_fast_op(regs);
+        break;
+
+    default:
+        fastabi_value_n(regs, 0) = -ENOSYS;
+        break;
+    }
+}
\ No newline at end of file
diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
index 3c3bbca2fc..1476e5e5ca 100644
--- a/xen/common/grant_table.c
+++ b/xen/common/grant_table.c
@@ -45,6 +45,10 @@
 #include <asm/flushtlb.h>
 #include <asm/guest_atomics.h>
 
+#ifdef CONFIG_FASTABI
+#include <xen/fastabi.h>
+#endif
+
 #ifdef CONFIG_PV_SHIM
 #include <asm/guest.h>
 #endif
@@ -3826,6 +3830,46 @@ long do_grant_table_op(
     return rc;
 }
 
+#ifdef CONFIG_FASTABI
+void do_grant_table_fast_op(struct cpu_user_regs *regs)
+{
+    long rc = 0;
+    unsigned int cmd = fastabi_value_n(regs, 1);
+
+    switch (cmd)
+    {
+    case GNTTABOP_query_size:
+    {
+        struct grant_table *gt = current->domain->grant_table;
+
+        grant_read_lock(gt);
+        fastabi_value_n(regs, 2) = nr_grant_frames(gt);
+        fastabi_value_n(regs, 3) = gt->max_grant_frames;
+        grant_read_unlock(gt);
+        break;
+    }
+    case GNTTABOP_get_version:
+    {
+        struct grant_table *gt = current->domain->grant_table;
+
+        fastabi_value_n(regs, 2) = gt->gt_version;
+        break;
+    }
+    case GNTTABOP_set_version:
+    {
+        gnttab_set_version_t op = { .version = fastabi_value_n(regs, 2) };
+        rc = gnttab_set_version(&op);
+        break;
+    }
+    default:
+        rc = -ENOSYS;
+        break;
+    }
+
+    fastabi_value_n(regs, 0) = rc;
+}
+#endif
+
 #ifdef CONFIG_COMPAT
 #include "compat/grant_table.c"
 #endif
diff --git a/xen/common/kernel.c b/xen/common/kernel.c
index eff6db6c8f..2230ccdcaf 100644
--- a/xen/common/kernel.c
+++ b/xen/common/kernel.c
@@ -18,6 +18,10 @@
 #include <asm/current.h>
 #include <public/version.h>
 
+#ifdef CONFIG_FASTABI
+#include <xen/fastabi.h>
+#endif
+
 #ifdef CONFIG_COMPAT
 #include <compat/version.h>
 
@@ -772,6 +776,35 @@ long do_xen_version(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
     return -ENOSYS;
 }
 
+#ifdef CONFIG_FASTABI
+void do_xen_version_fast_op(struct cpu_user_regs *regs)
+{
+    long cmd = fastabi_value_n(regs, 1);
+    long rc = 0;
+
+    switch ( cmd ) {
+    case XENVER_version:
+        rc = (xen_major_version() << 16) | xen_minor_version();
+        break;
+    case XENVER_get_features:
+    {
+        uint32_t submap = 0, submap_idx = fastabi_value_n(regs, 2);
+
+        rc = xenver_get_features(current->domain, submap_idx, &submap);
+
+        if ( !rc )
+            fastabi_value_n(regs, 3) = submap;
+        break;
+    }
+    default:
+        rc = -ENOSYS;
+        break;
+    }
+
+    fastabi_value_n(regs, 0) = rc;
+}
+#endif
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/common/memory.c b/xen/common/memory.c
index 3688e6dd50..689218390e 100644
--- a/xen/common/memory.c
+++ b/xen/common/memory.c
@@ -35,6 +35,10 @@
 #include <public/memory.h>
 #include <xsm/xsm.h>
 
+#ifdef CONFIG_FASTABI
+#include <xen/fastabi.h>
+#endif
+
 #ifdef CONFIG_X86
 #include <asm/guest.h>
 #endif
@@ -1864,6 +1868,112 @@ long do_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
     return rc;
 }
 
+#ifdef CONFIG_FASTABI
+void do_memory_fast_op(struct cpu_user_regs *regs)
+{
+    unsigned long cmd = fastabi_value_n(regs, 1);
+    unsigned long start_extent = cmd >> MEMOP_EXTENT_SHIFT;
+    long rc;
+    int op = cmd & MEMOP_CMD_MASK;
+
+    switch ( op ) {
+    case XENMEM_add_to_physmap:
+    {
+        struct xen_add_to_physmap xatp = {
+            .size = fastabi_value_n(regs, 2),
+            .space = fastabi_value_n(regs, 3),
+            .idx = fastabi_value_n(regs, 4),
+            .gpfn = fastabi_value_n(regs, 5)
+        };
+
+        BUILD_BUG_ON((typeof(xatp.size))-1 > (UINT_MAX >> MEMOP_EXTENT_SHIFT));
+
+        /* Check for malicious or buggy input. */
+        if ( start_extent != (typeof(xatp.size))start_extent )
+        {
+            rc = -EDOM;
+            break;
+        }
+
+        /* Foreign mapping is only possible via add_to_physmap_batch. */
+        if ( xatp.space == XENMAPSPACE_gmfn_foreign )
+        {
+            rc = -ENOSYS;
+            break;
+        }
+
+        rc = xatp_permission_check(current->domain, xatp.space);
+        if ( rc )
+            break;
+
+        rc = xenmem_add_to_physmap(current->domain, &xatp, start_extent);
+
+        if ( xatp.space == XENMAPSPACE_gmfn_range && rc > 0 )
+            panic("TODO");
+            //rc = hypercall_create_continuation(
+            //         __HYPERVISOR_memory_op, "lh",
+            //         op | (rc << MEMOP_EXTENT_SHIFT), arg);
+        break;
+    }
+    
+    case XENMEM_remove_from_physmap:
+    {
+        unsigned long gpfn = fastabi_value_n(regs, 5);
+        struct page_info *page;
+
+        if ( unlikely(start_extent) )
+        {
+            rc = -EINVAL;
+            break;
+        }
+
+        if ( !paging_mode_translate(current->domain) )
+        {
+            rc = -EACCES;
+            break;
+        }
+
+        page = get_page_from_gfn(current->domain, gpfn, NULL, P2M_ALLOC);
+        if ( page )
+        {
+            rc = guest_physmap_remove_page(current->domain, _gfn(gpfn),
+                                           page_to_mfn(page), 0);
+            put_page(page);
+        }
+        else
+            rc = -ENOENT;
+
+        break;
+    }
+    
+    case XENMEM_memory_map:
+    {
+        struct domain *d = current->domain;
+        unsigned long nr_entries = fastabi_value_n(regs, 2);
+        paddr_t buffer_addr = fastabi_value_n(regs, 3);
+
+        spin_lock(&d->arch.e820_lock);
+
+        if ( nr_entries > d->arch.nr_e820 )
+            nr_entries = d->arch.nr_e820;
+
+        if ( hvm_copy_to_guest_phys(buffer_addr, d->arch.e820,
+                                    nr_entries * sizeof(struct e820entry), current) )
+            rc = -EFAULT;
+
+        spin_unlock(&d->arch.e820_lock);
+        break;
+    }
+
+    default:
+        rc = -ENOSYS;
+        break;
+    }
+
+    fastabi_value_n(regs, 0) = rc;
+}
+#endif
+
 void clear_domain_page(mfn_t mfn)
 {
     void *ptr = map_domain_page(mfn);
diff --git a/xen/common/sched/core.c b/xen/common/sched/core.c
index b2c784c60e..51b2fbc00a 100644
--- a/xen/common/sched/core.c
+++ b/xen/common/sched/core.c
@@ -41,6 +41,10 @@
 
 #include "private.h"
 
+#ifdef CONFIG_FASTABI
+#include <xen/fastabi.h>
+#endif
+
 #ifdef CONFIG_XEN_GUEST
 #include <asm/guest.h>
 #else
@@ -1896,6 +1900,110 @@ void domain_update_node_aff(struct domain *d, struct affinity_masks *affinity)
 
 typedef long ret_t;
 
+#ifdef CONFIG_FASTABI
+void do_sched_fast_op(struct cpu_user_regs *regs)
+{
+    long ret = 0;
+    unsigned long cmd = fastabi_value_n(regs, 1);
+
+    switch ( cmd )
+    {
+    case SCHEDOP_yield:
+    {
+        ret = vcpu_yield();
+        break;
+    }
+
+    case SCHEDOP_block:
+    {
+        vcpu_block_enable_events();
+        break;
+    }
+
+    case SCHEDOP_shutdown:
+    {
+        struct sched_shutdown sched_shutdown = {
+            .reason = fastabi_value_n(regs, 2)
+        };
+
+        TRACE_TIME(TRC_SCHED_SHUTDOWN, current->domain->domain_id,
+                   current->vcpu_id, sched_shutdown.reason);
+        ret = domain_shutdown(current->domain, (u8)sched_shutdown.reason);
+
+        break;
+    }
+
+    case SCHEDOP_shutdown_code:
+    {
+        struct sched_shutdown sched_shutdown = {
+            .reason = fastabi_value_n(regs, 2)
+        };
+        struct domain *d = current->domain;
+
+        TRACE_TIME(TRC_SCHED_SHUTDOWN_CODE, d->domain_id, current->vcpu_id,
+                   sched_shutdown.reason);
+
+        spin_lock(&d->shutdown_lock);
+        if ( d->shutdown_code == SHUTDOWN_CODE_INVALID )
+            d->shutdown_code = (u8)sched_shutdown.reason;
+        spin_unlock(&d->shutdown_lock);
+
+        ret = 0;
+        break;
+    }
+
+    case SCHEDOP_poll:
+    {
+        uint64_t timeout = fastabi_value_n(regs, 2);
+        evtchn_port_t port = fastabi_value_n(regs, 3);
+
+        ret = vcpu_poll(1, timeout, &port);
+
+        break;
+    }
+
+    case SCHEDOP_watchdog:
+    {
+        struct sched_watchdog sched_watchdog = {
+            .id = fastabi_value_n(regs, 2),
+            .timeout = fastabi_value_n(regs, 3)
+        };
+
+        ret = domain_watchdog(
+            current->domain, sched_watchdog.id, sched_watchdog.timeout);
+        break;
+    }
+
+    case SCHEDOP_pin_override:
+    {
+        struct sched_pin_override sched_pin_override = {
+            .pcpu = fastabi_value_n(regs, 2),
+        };
+        unsigned int cpu;
+
+        ret = -EPERM;
+        if ( !is_hardware_domain(current->domain) )
+            break;
+
+        ret = -EINVAL;
+        if ( sched_pin_override.pcpu >= NR_CPUS )
+           break;
+
+        cpu = sched_pin_override.pcpu < 0 ? NR_CPUS : sched_pin_override.pcpu;
+        ret = vcpu_temporary_affinity(current, cpu, VCPU_AFFINITY_OVERRIDE);
+
+        break;
+    }
+
+    default:
+        ret = -ENOSYS;
+        break;
+    }
+
+    fastabi_value_n(regs, 0) = ret;
+}
+#endif
+
 #endif /* !COMPAT */
 
 ret_t do_sched_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
@@ -1961,7 +2069,6 @@ ret_t do_sched_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
             break;
 
         ret = do_poll(&sched_poll);
-
         break;
     }
 
diff --git a/xen/include/public/event_channel.h b/xen/include/public/event_channel.h
index c5548d206c..969c9ec264 100644
--- a/xen/include/public/event_channel.h
+++ b/xen/include/public/event_channel.h
@@ -208,10 +208,17 @@ struct evtchn_status {
         } unbound;                 /* EVTCHNSTAT_unbound */
         struct {
             domid_t dom;
+            uint16_t _pad;
             evtchn_port_t port;
         } interdomain;             /* EVTCHNSTAT_interdomain */
         uint32_t pirq;             /* EVTCHNSTAT_pirq        */
         uint32_t virq;             /* EVTCHNSTAT_virq        */
+#ifndef __XEN__
+        struct {
+            uint32_t _output1;
+            uint32_t _output2;
+        };
+#endif
     } u;
 };
 typedef struct evtchn_status evtchn_status_t;
diff --git a/xen/include/public/fastabi.h b/xen/include/public/fastabi.h
new file mode 100644
index 0000000000..51f5085ce6
--- /dev/null
+++ b/xen/include/public/fastabi.h
@@ -0,0 +1,20 @@
+/* SPDX-License-Identifier: MIT */
+#ifndef __XEN_PUBLIC_FASTABI_H__
+#define __XEN_PUBLIC_FASTABI_H__
+
+#if defined(__x86_64__)
+#define __HYPERVISOR_FASTABI_MASK 0x40000000U
+
+enum xen_hypercall_vendor {
+    Intel,
+    Amd
+};
+#else
+#define __HYPERVISOR_FASTABI_MASK 0
+
+enum xen_hypercall_vendor {
+    Native
+};
+#endif
+
+#endif
diff --git a/xen/include/xen/fastabi.h b/xen/include/xen/fastabi.h
new file mode 100644
index 0000000000..83ede943e0
--- /dev/null
+++ b/xen/include/xen/fastabi.h
@@ -0,0 +1,21 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef XEN_FASTABI_H
+#define XEN_FASTABI_H
+
+#include <asm/fastabi.h>
+
+void fastabi_dispatch(unsigned long index, struct cpu_user_regs *regs);
+void fastabi_make_continuation(void);
+
+void do_event_channel_fast_op(struct cpu_user_regs *regs);
+
+long common_vcpu_fast_op(struct cpu_user_regs *regs, int cmd, struct vcpu *v);
+void do_vcpu_fast_op(struct cpu_user_regs *regs);
+void do_hvm_fast_op(struct cpu_user_regs *regs);
+void do_memory_fast_op(struct cpu_user_regs *regs);
+void do_grant_table_fast_op(struct cpu_user_regs *regs);
+void do_sched_fast_op(struct cpu_user_regs *regs);
+void do_xen_version_fast_op(struct cpu_user_regs *regs);
+
+#endif /* XEN_FASTABI_H */
\ No newline at end of file
-- 
2.50.1



Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 15:26:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 15:26:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088815.1446532 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up7As-00061R-40; Thu, 21 Aug 2025 15:25:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088815.1446532; Thu, 21 Aug 2025 15:25: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 1up7Ar-00061K-VP; Thu, 21 Aug 2025 15:25:57 +0000
Received: by outflank-mailman (input) for mailman id 1088815;
 Thu, 21 Aug 2025 15:25:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oAtF=3B=bounce.vates.tech=bounce-md_30504962.68a73a7d.v1-8a92cbcbf28e4ec8835df8665a8d7231@srs-se1.protection.inumbo.net>)
 id 1up7Ap-0005na-SG
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 15:25:55 +0000
Received: from mail137-3.atl71.mandrillapp.com
 (mail137-3.atl71.mandrillapp.com [198.2.137.3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1dee1c3e-7ea3-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 17:25:50 +0200 (CEST)
Received: from pmta07.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail137-3.atl71.mandrillapp.com (Mailchimp) with ESMTP id 4c76bK0sgzzBsVBZ7
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 15:25:49 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 8a92cbcbf28e4ec8835df8665a8d7231; Thu, 21 Aug 2025 15:25:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1dee1c3e-7ea3-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1755789949; x=1756059949;
	bh=f+MVIfI7tSP+OiiCs9By3b93AN5lW1SGwr6uGwBsgGw=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=KL8ME3Ul070FOn29lID2q7aqwedYjff6Z2oAclj8NHWzxPMpvh64tv9jMbdph4+Ge
	 k5/NJwX7qMXhokz/LxDHv9/AIeG5WWZjVA9fernW9p+IZSI8vXx0n/RRxOc/ggJXPE
	 TyaQIvVLyW+xdhpS3Nts+ZNEsDbOFMiCD0jvMV6udTrTceDo0WgeBgNeJP2a5IOcQ9
	 FsuP0mhqsx2H25Bglo4RlMxZNUhrmO232jO6UfI5EnH77eR0+GEqXLe1OWJ1SnI6d8
	 hx6lprxwS8ZV68aJpeYmiJLp3IXRVf4iF4yaHZWhYcw8EbW8VKBJK3q8AK4c5X+KMT
	 vdXbA6vFGKHew==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1755789949; x=1756050449; i=teddy.astie@vates.tech;
	bh=f+MVIfI7tSP+OiiCs9By3b93AN5lW1SGwr6uGwBsgGw=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=ouVkk7UnfZgeqSDR7NSs0DaZKpQxyo8BfPoTlL/kFK0biayylxu9KjlQdYBEuD1Nw
	 h2/oZ3NbeOqgJEk4BukqpA5nLl73mmtx48zivEzf0HLCwE6d0HYZwx/aBLNMQuK581
	 jXk1BSuRhAnZSLXiogRidS0gPFZT/GltAcQhMpIeWp1spynPIrkrfRvVUQKjNKH+ez
	 55R3MDToc7rfaM1zA6Sqej/1nwtOa70G/Yb9z8nKEaAhHW2s3kuWKgGxK9OjEN0yki
	 X4MX3Y75gyfO2DCNIPNXZ5Fjj8NBe7Y7Xp9Bw6ZcLgA83HSQzx6/2xYO8o4bqFQRi+
	 p/ekELGyY/WeA==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20PATCH=200/9]=20x86/hvm:=20New=20Xen=20HVM=20ABI=20proposal=20("HVMv2"=20part=201)?=
X-Mailer: git-send-email 2.50.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1755789947659
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Julien Grall" <julien@xen.org>, "Stefano Stabellini" <sstabellini@kernel.org>, "Juergen Gross" <jgross@suse.com>, "Dario Faggioli" <dfaggioli@suse.com>, "George Dunlap" <gwd@xenproject.org>, "Daniel P. Smith" <dpsmith@apertussolutions.com>
Message-Id: <cover.1755785258.git.teddy.astie@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.8a92cbcbf28e4ec8835df8665a8d7231?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250821:md
Date: Thu, 21 Aug 2025 15:25:49 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Hello, this series introduce a new hypercall ABI proposal (x86 only for now).

The current Xen ABI has some shortcommings :

First, the hypercall parameters are usually pointers that point to a structure
in guest memory, this pointer is usually a virtual address. 
It causes various issues as :
 - you need to define a format for these structures which is currently C
   structures, but it complicates support with non LP64 platforms (e.g Windows)
   or other programming languages (e.g Rust, where solutions are hard to come with)
 - the translation from virtual address to machine physical address is very expensive
   as you need to translate the GVA to GPA, and then GPA to HPA each time you want to
   access a virtual address
 - such virtual addresses are not readable under confidential computing guests which
   makes such new ABI required.

Another issue is that all possible Xen hypercalls are exposed through this
single interface, it makes hardening the hypervisor more complicated as you
need to permission check on a per-hypercall basis (e.g through XSM) instead
of having a minimal strict safe-for-guest-use set of operations.

The current ABI allows the guest to modify its physmap; this is notably used for
mapping the shared info, grant table and ballooning. While we could make that work
for confidential guests. It comes with its own set of problems, and in order to
simplify the memory management, this series come with a proposal for mapping these
specific pages in advance and telling the guest the location. That helps reducing
the scope of this new ABI. Ballooning implementation hasn't been fully considered yet.

This series propose a new hypercall interface designed for use by guests kernels
with high performance (low hypercall overhead) and confidential computing environments
(notably AMD SEV) compatibility in mind. It currently only supports x86 long mode
(64-bits) due to specific register requirements.

It doesn't aim to entirely replace the current ABI, but to propose a alternative
one that could be used by guests as a fast-path ABI or for confidential computing
guests.

This new ABI maps into current many operations (with some limitations), a tool is
provided to generate C stubs using the yaml specification.
These C stubs reuse the existing hypercall structures to ease adding support
for this ABI in guests.

You can find some example generated headers in Linux SEV WIP branch [1].

[1] https://github.com/xcp-ng/linux/tree/xen-sev-6.14/include/xen/interface/fastabi

Teddy Astie (9):
  x86/hvm: Use direct structures instead of guest handles
  common: Isolate XENVER_get_features into a separate function
  common/grant_table: Use direct structures instead of guest handles
  hvm: Introduce "fixed memory layout" feature
  docs/x86: Introduce FastABI
  sched: Extract do_poll main logic into vcpu_poll
  x86/hvm: Introduce FastABI implementation
  hvm: Introduce XEN_HVM_MEMMAP_TYPE_HOTPLUG_ZONE
  tools: Introduce abi-tool

 docs/guest-guide/x86/fastabi.pandoc           |  50 +++++
 .../x86/fixed-memory-layout.pandoc            |  24 ++
 docs/guest-guide/x86/index.rst                |   2 +
 tools/include/xen-tools/common-macros.h       |   4 +
 tools/libs/guest/xg_dom_x86.c                 |  84 +++++++
 tools/libs/light/libxl_create.c               |   1 +
 tools/libs/light/libxl_types.idl              |   1 +
 tools/libs/light/libxl_x86.c                  |  71 ++++++
 tools/xl/xl_parse.c                           |   1 +
 xen/abi/event_channel.yml                     | 130 +++++++++++
 xen/abi/grant_table.yml                       |  46 ++++
 xen/abi/hvm.yml                               |  50 +++++
 xen/abi/memory.yml                            |  11 +
 xen/abi/sched.yml                             |  48 ++++
 xen/abi/vcpu.yml                              | 139 ++++++++++++
 xen/abi/version.yml                           |  15 ++
 xen/arch/x86/cpuid.c                          |   3 +
 xen/arch/x86/domain.c                         |  71 ++++++
 xen/arch/x86/hvm/hvm.c                        | 205 +++++++++++++-----
 xen/arch/x86/hvm/hypercall.c                  |  22 ++
 xen/arch/x86/include/asm/fastabi.h            |  17 ++
 xen/common/Kconfig                            |   6 +
 xen/common/Makefile                           |   1 +
 xen/common/domain.c                           | 179 +++++++++++++++
 xen/common/event_channel.c                    | 199 +++++++++++++++++
 xen/common/fastabi.c                          |  49 +++++
 xen/common/grant_table.c                      | 112 +++++++---
 xen/common/kernel.c                           | 117 ++++++----
 xen/common/memory.c                           | 110 ++++++++++
 xen/common/sched/core.c                       | 149 +++++++++++--
 xen/include/public/arch-x86/cpuid.h           |   4 +
 xen/include/public/arch-x86/hvm/start_info.h  |   8 +
 xen/include/public/event_channel.h            |   7 +
 xen/include/public/fastabi.h                  |  20 ++
 xen/include/xen/fastabi.h                     |  21 ++
 xen/tools/abi-tool/.gitignore                 |   1 +
 xen/tools/abi-tool/Cargo.lock                 | 145 +++++++++++++
 xen/tools/abi-tool/Cargo.toml                 |  11 +
 xen/tools/abi-tool/src/abi.rs                 |  23 ++
 xen/tools/abi-tool/src/c_lang.rs              | 173 +++++++++++++++
 xen/tools/abi-tool/src/main.rs                |  17 ++
 xen/tools/abi-tool/src/spec.rs                |  61 ++++++
 42 files changed, 2265 insertions(+), 143 deletions(-)
 create mode 100644 docs/guest-guide/x86/fastabi.pandoc
 create mode 100644 docs/guest-guide/x86/fixed-memory-layout.pandoc
 create mode 100644 xen/abi/event_channel.yml
 create mode 100644 xen/abi/grant_table.yml
 create mode 100644 xen/abi/hvm.yml
 create mode 100644 xen/abi/memory.yml
 create mode 100644 xen/abi/sched.yml
 create mode 100644 xen/abi/vcpu.yml
 create mode 100644 xen/abi/version.yml
 create mode 100644 xen/arch/x86/include/asm/fastabi.h
 create mode 100644 xen/common/fastabi.c
 create mode 100644 xen/include/public/fastabi.h
 create mode 100644 xen/include/xen/fastabi.h
 create mode 100644 xen/tools/abi-tool/.gitignore
 create mode 100644 xen/tools/abi-tool/Cargo.lock
 create mode 100644 xen/tools/abi-tool/Cargo.toml
 create mode 100644 xen/tools/abi-tool/src/abi.rs
 create mode 100644 xen/tools/abi-tool/src/c_lang.rs
 create mode 100644 xen/tools/abi-tool/src/main.rs
 create mode 100644 xen/tools/abi-tool/src/spec.rs

-- 
2.50.1



Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 15:26:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 15:26:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088822.1446588 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up7Aw-0007GW-BP; Thu, 21 Aug 2025 15:26:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088822.1446588; Thu, 21 Aug 2025 15:26:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up7Aw-0007FD-6i; Thu, 21 Aug 2025 15:26:02 +0000
Received: by outflank-mailman (input) for mailman id 1088822;
 Thu, 21 Aug 2025 15:26:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=b2XM=3B=bounce.vates.tech=bounce-md_30504962.68a73a84.v1-09385b970d0e483d97ba308b0c8ae6e4@srs-se1.protection.inumbo.net>)
 id 1up7Au-0005na-AR
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 15:26:00 +0000
Received: from mail137-3.atl71.mandrillapp.com
 (mail137-3.atl71.mandrillapp.com [198.2.137.3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2361d1ca-7ea3-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 17:25:58 +0200 (CEST)
Received: from pmta07.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail137-3.atl71.mandrillapp.com (Mailchimp) with ESMTP id 4c76bS5Gf0zBsVD72
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 15:25:56 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 09385b970d0e483d97ba308b0c8ae6e4; Thu, 21 Aug 2025 15:25: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>
X-Inumbo-ID: 2361d1ca-7ea3-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1755789956; x=1756059956;
	bh=kpYZUErpssBf7MVl+uYwZzjx0Pc3VDlf3LtSHI87KkE=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=k9m8+1lT+94o02Baj5dwFam7gQsXefZ4Cno1DloSS7IEaPKSvdziQmCMaAzczGg1P
	 r2lGwAYbIzvCSdi49ULpFR6f5OGLGijoMQC3yZdFx4j31gIEb2OZ0rVwA8NM1Xlm39
	 eMTX2kD4aO+iWAEqTX+jbi3CYD3zc5UVaCmJMeY25nM8aI4nejowkfH5PMA2POpaZP
	 6Qz91XClVcNrHhEeKdLEDLfNpTgx01QFQ1HxdbjRVlUOVRmDWByOcm6iZ7Wgs5Aucl
	 f+z5iHEyEFwo64PZl2uOw1LATpTpgly5X/oie2sRfC4P0kLmxQzkUXXDDYG5W9Af/w
	 syyY+5OhnPNDQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1755789956; x=1756050456; i=teddy.astie@vates.tech;
	bh=kpYZUErpssBf7MVl+uYwZzjx0Pc3VDlf3LtSHI87KkE=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=OukcuJumbdHVh6INJ4BV7MpQbZjpKa8Eb9p7GCaI3Jm5E7aHAoE66yvgT8Uv3GWhy
	 q3JbXbYyAamevASkCiKzVsPa8P4kS6OqNzMP40XFBTwHExH1WG2IitN6vfuSFzXrHG
	 MUp54ksRVUKTHg1kgfuMSjWiHRBqYNiLpxCM+ENBm2UedybKsMEE5mNVmFXd9xJNVr
	 TfFsdrRyVeYEcmYbUysZCx2R8thb1TWmCU+T9/omEEYRpmEv8ZiJqSUxNH6MydIgjQ
	 Yu/hdHSMlt6XxzJunIb2YFwehXxnKuWaKJLL/sLs2SYQT04dBzIkKlOWGyaXEVer3D
	 QdgmhINJQqWtg==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=208/9]=20RFC:=20hvm:=20Introduce=20XEN=5FHVM=5FMEMMAP=5FTYPE=5FHOTPLUG=5FZONE?=
X-Mailer: git-send-email 2.50.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1755789955848
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>
Message-Id: <460bd68d7f3b6fa732f364209a81d205be2ade34.1755619373.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1755619373.git.teddy.astie@vates.tech>
References: <cover.1755619373.git.teddy.astie@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.09385b970d0e483d97ba308b0c8ae6e4?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250821:md
Date: Thu, 21 Aug 2025 15:25:56 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Allow specifying in memory map a region which can be hotplugged.

This will be used by a future memory hotplug feature.

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
 xen/include/public/arch-x86/hvm/start_info.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/include/public/arch-x86/hvm/start_info.h b/xen/include/public/arch-x86/hvm/start_info.h
index 0b3dfe91af..bdae8371d6 100644
--- a/xen/include/public/arch-x86/hvm/start_info.h
+++ b/xen/include/public/arch-x86/hvm/start_info.h
@@ -105,6 +105,7 @@
 #define XEN_HVM_MEMMAP_TYPE_GNTTAB_STATUS 0xF0000003 /* Grant table status page (v2) */
 #define XEN_HVM_MEMMAP_TYPE_FOREIGN_REG   0xF0000004 /* Suitable region for grant mappings */
                                                      /* and foreign mappings */
+#define XEN_HVM_MEMMAP_TYPE_HOTPLUG_ZONE  0xF0000005 /* Memory hotpluggable zone */
 
 /*
  * C representation of the x86/HVM start info layout.
-- 
2.50.1



Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 15:26:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 15:26:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088820.1446572 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up7Au-0006qD-S2; Thu, 21 Aug 2025 15:26:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088820.1446572; Thu, 21 Aug 2025 15:26: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 1up7Au-0006o8-JM; Thu, 21 Aug 2025 15:26:00 +0000
Received: by outflank-mailman (input) for mailman id 1088820;
 Thu, 21 Aug 2025 15:25:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qver=3B=bounce.vates.tech=bounce-md_30504962.68a73a82.v1-bb370819b5b149d495099cb9f5ca2153@srs-se1.protection.inumbo.net>)
 id 1up7As-0005nU-Pv
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 15:25:58 +0000
Received: from mail137-3.atl71.mandrillapp.com
 (mail137-3.atl71.mandrillapp.com [198.2.137.3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 22aa5e85-7ea3-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 17:25:58 +0200 (CEST)
Received: from pmta07.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail137-3.atl71.mandrillapp.com (Mailchimp) with ESMTP id 4c76bQ578pzBsW3G6
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 15:25:54 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 bb370819b5b149d495099cb9f5ca2153; Thu, 21 Aug 2025 15:25: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>
X-Inumbo-ID: 22aa5e85-7ea3-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1755789954; x=1756059954;
	bh=/Czx8f0L7Yqqc5qG+Tcn2zb8zTijEnp/eSv/Biuz900=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=WTdQR4K5L6BWIfPcdAWHFo0zZvCS4cAGVXGqbSZRmQgmqt4mLDZ+qxvrQ//3XpzIL
	 j2pdIi5GDO4gEmn+YXMW1NGjeCAfVljMIHyQSXtM4acroEuDLA0p5sIIfYsg2X1uGd
	 9xqP35TTNZqteTbS+5orl0fedIpEnTWcbMPt/rMhDmd7oADFH5Iz446INNDovqrkS8
	 XTIFX+OXvRTe4jx79YVhRzI9JOZxrmdRBYqmGZ7WZrU3HZLJa9lCN5SraG7vMWSpdx
	 odlEYRurFBRA8M0lPVXZgcfm5fJIIuP4vpbrCOtQudGBTNoj4TQY6ZNIXuUX9qm1CM
	 AqbBYevNr4Nlw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1755789954; x=1756050454; i=teddy.astie@vates.tech;
	bh=/Czx8f0L7Yqqc5qG+Tcn2zb8zTijEnp/eSv/Biuz900=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=amLby1t3+xc6rNfVfowZdIU5xG+rg2l/Cq2si2st6wdmErRVoTUjuzzWzYqhINqg4
	 tuO/pScW/vzzwflpVCM8OR2rIBOtCtAz43RY/rJQiOR9OQ9EOyXxWm5TFMJPfwMQAC
	 dkt1j7vTF3UrXgIg3ic47eyuAM8c3Uve5hlDKJCZOmLm6GYydGKWU/en7KMnpl9ct3
	 Bki/KHKQeFv+S6zB5qSXF3Uh1bIFkRLVR/76t86CejQuFW/73ZnDUeBVt992S1OpiD
	 6bFTInLWMKlLpREFgJvnU6G8+nXoUDQg2qpt9Mwdnni1XT+r8TDNuTsfdp70Oo+IZg
	 sw2uxeWbfX+zA==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20PATCH=206/9]=20sched:=20Extract=20do=5Fpoll=20main=20logic=20into=20vcpu=5Fpoll?=
X-Mailer: git-send-email 2.50.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1755789954201
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Dario Faggioli" <dfaggioli@suse.com>, "Juergen Gross" <jgross@suse.com>, "George Dunlap" <gwd@xenproject.org>
Message-Id: <812a818e263cb8287634cea5241fe076beacc39f.1755785258.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1755785258.git.teddy.astie@vates.tech>
References: <cover.1755785258.git.teddy.astie@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.bb370819b5b149d495099cb9f5ca2153?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250821:md
Date: Thu, 21 Aug 2025 15:25:54 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

do_poll takes sched_poll* as parameter, but that's actually in guest memory
(so it's more a guest handle). Split its copy from/to guest logic from
the main logic, so that we have a separate vcpu_poll which takes the sched_poll
parameters directly.

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
 xen/common/sched/core.c | 40 +++++++++++++++++++++-------------------
 1 file changed, 21 insertions(+), 19 deletions(-)

diff --git a/xen/common/sched/core.c b/xen/common/sched/core.c
index 13fdf57e57..b2c784c60e 100644
--- a/xen/common/sched/core.c
+++ b/xen/common/sched/core.c
@@ -1437,21 +1437,13 @@ static void vcpu_block_enable_events(void)
     vcpu_block();
 }
 
-static long do_poll(const struct sched_poll *sched_poll)
+static long vcpu_poll(unsigned int nr_ports, uint64_t timeout, evtchn_port_t *ports)
 {
     struct vcpu   *v = current;
     struct domain *d = v->domain;
-    evtchn_port_t  port = 0;
     long           rc;
     unsigned int   i;
 
-    /* Fairly arbitrary limit. */
-    if ( sched_poll->nr_ports > 128 )
-        return -EINVAL;
-
-    if ( !guest_handle_okay(sched_poll->ports, sched_poll->nr_ports) )
-        return -EFAULT;
-
     set_bit(_VPF_blocked, &v->pause_flags);
     v->poll_evtchn = -1;
     set_bit(v->vcpu_id, d->poll_mask);
@@ -1478,13 +1470,9 @@ static long do_poll(const struct sched_poll *sched_poll)
     if ( local_events_need_delivery() )
         goto out;
 
-    for ( i = 0; i < sched_poll->nr_ports; i++ )
+    for ( i = 0; i < nr_ports; i++ )
     {
-        rc = -EFAULT;
-        if ( __copy_from_guest_offset(&port, sched_poll->ports, i, 1) )
-            goto out;
-
-        rc = evtchn_port_poll(d, port);
+        rc = evtchn_port_poll(d, ports[i]);
         if ( rc )
         {
             if ( rc > 0 )
@@ -1493,11 +1481,11 @@ static long do_poll(const struct sched_poll *sched_poll)
         }
     }
 
-    if ( sched_poll->nr_ports == 1 )
-        v->poll_evtchn = port;
+    if ( nr_ports == 1 )
+        v->poll_evtchn = ports[0];
 
-    if ( sched_poll->timeout != 0 )
-        set_timer(&v->poll_timer, sched_poll->timeout);
+    if ( timeout != 0 )
+        set_timer(&v->poll_timer, timeout);
 
     TRACE_TIME(TRC_SCHED_BLOCK, d->domain_id, v->vcpu_id);
     raise_softirq(SCHEDULE_SOFTIRQ);
@@ -1511,6 +1499,20 @@ static long do_poll(const struct sched_poll *sched_poll)
     return rc;
 }
 
+static long do_poll(struct sched_poll *sched_poll)
+{
+    evtchn_port_t ports[128];
+
+    /* Fairly arbitrary limit */
+    if ( sched_poll->nr_ports > 128 )
+        return -EINVAL;
+
+    if ( copy_from_guest(ports, sched_poll->ports, sched_poll->nr_ports) )
+        return -EFAULT;
+
+    return vcpu_poll(sched_poll->nr_ports, sched_poll->timeout, ports);
+}
+
 /* Voluntarily yield the processor for this allocation. */
 long vcpu_yield(void)
 {
-- 
2.50.1



Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 15:26:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 15:26:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088823.1446599 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up7Ax-0007OX-3D; Thu, 21 Aug 2025 15:26:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088823.1446599; Thu, 21 Aug 2025 15:26:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up7Aw-0007LS-JY; Thu, 21 Aug 2025 15:26:02 +0000
Received: by outflank-mailman (input) for mailman id 1088823;
 Thu, 21 Aug 2025 15:26:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Dq/S=3B=bounce.vates.tech=bounce-md_30504962.68a73a85.v1-47dc19ba76e54838851cc4cccb3d1af9@srs-se1.protection.inumbo.net>)
 id 1up7Au-0005nU-Cp
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 15:26:00 +0000
Received: from mail137-3.atl71.mandrillapp.com
 (mail137-3.atl71.mandrillapp.com [198.2.137.3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 240c6faf-7ea3-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 17:25:59 +0200 (CEST)
Received: from pmta07.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail137-3.atl71.mandrillapp.com (Mailchimp) with ESMTP id 4c76bT2FwSzBsVD77
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 15:25:57 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 47dc19ba76e54838851cc4cccb3d1af9; Thu, 21 Aug 2025 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>
X-Inumbo-ID: 240c6faf-7ea3-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1755789957; x=1756059957;
	bh=kpYZUErpssBf7MVl+uYwZzjx0Pc3VDlf3LtSHI87KkE=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=w/gsmN7H993Gmo656k5OzLLrDVxpNMErKjOux3xEWbglu0H+qrJLLYU2JTx6zvPqz
	 +lryNDur2KmTZN02Bmlk0M0P1OSc+ySINKtbNIUMX5bzxE4RxfnxVfbcUeOam6JFTt
	 wxao0H+1MplBWXu7Zvo5wRSNlZA6nsR3Y1coI6Ph/o3dwM2uuUUxscFtJQcX1Vyjyq
	 FS8UEYmEjzs6GOL4ZGvgpxuDkR7mDucy2L7itCk3+T0MOrASF+dp3LmowkJsLd6t+Y
	 nXNlvhA/PcATyCFho0eMK+o1SemtFruak6npkdB2GCyj7FWv6xAx3MZGdFQrr/0Haa
	 RfNSWCwaOvnJg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1755789957; x=1756050457; i=teddy.astie@vates.tech;
	bh=kpYZUErpssBf7MVl+uYwZzjx0Pc3VDlf3LtSHI87KkE=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=UU3kuTzMinmiWb+UF0dk+V+w7aWYJ+6OLeRf4bLis83sMgca93kkHOxp8hQConbxF
	 zR1j2rSyn+L9cw0dSr4ju19liheZ5GvlOdqet4ghW6hoq4oYjdr5MhmPkceV+8rz35
	 oqJYeyqMZ2XjhzaD26sfwfon9DH9XZlmX7eOCnCDaubCSuiy0pVRgYZitgp2OESQ6g
	 gyRcaf8CssOyZqGv6cqxSHpV8QADNW0YGJgX7IvSqkp77xkPNVQ2WibZKHn2zrqCDo
	 aiTQFE0ABcyAVDeBrCHnK9jt7U03Mt91T6TQdyR27g0THmW2a6Zbqo85VxfD5vsKNA
	 t1iNET+mbmDgg==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20PATCH=208/9]=20hvm:=20Introduce=20XEN=5FHVM=5FMEMMAP=5FTYPE=5FHOTPLUG=5FZONE?=
X-Mailer: git-send-email 2.50.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1755789956401
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>
Message-Id: <3fe81c78b95f60353a84b8394883ecfeee066732.1755785258.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1755785258.git.teddy.astie@vates.tech>
References: <cover.1755785258.git.teddy.astie@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.47dc19ba76e54838851cc4cccb3d1af9?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250821:md
Date: Thu, 21 Aug 2025 15:25:57 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Allow specifying in memory map a region which can be hotplugged.

This will be used by a future memory hotplug feature.

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
 xen/include/public/arch-x86/hvm/start_info.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/include/public/arch-x86/hvm/start_info.h b/xen/include/public/arch-x86/hvm/start_info.h
index 0b3dfe91af..bdae8371d6 100644
--- a/xen/include/public/arch-x86/hvm/start_info.h
+++ b/xen/include/public/arch-x86/hvm/start_info.h
@@ -105,6 +105,7 @@
 #define XEN_HVM_MEMMAP_TYPE_GNTTAB_STATUS 0xF0000003 /* Grant table status page (v2) */
 #define XEN_HVM_MEMMAP_TYPE_FOREIGN_REG   0xF0000004 /* Suitable region for grant mappings */
                                                      /* and foreign mappings */
+#define XEN_HVM_MEMMAP_TYPE_HOTPLUG_ZONE  0xF0000005 /* Memory hotpluggable zone */
 
 /*
  * C representation of the x86/HVM start info layout.
-- 
2.50.1



Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 15:26:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 15:26:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088819.1446566 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up7Au-0006jV-Cj; Thu, 21 Aug 2025 15:26:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088819.1446566; Thu, 21 Aug 2025 15:26: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 1up7Au-0006iw-6A; Thu, 21 Aug 2025 15:26:00 +0000
Received: by outflank-mailman (input) for mailman id 1088819;
 Thu, 21 Aug 2025 15:25:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=palF=3B=bounce.vates.tech=bounce-md_30504962.68a73a82.v1-5565b7a84c614179b7558ba46b71cf8f@srs-se1.protection.inumbo.net>)
 id 1up7As-0005na-HO
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 15:25:58 +0000
Received: from mail137-3.atl71.mandrillapp.com
 (mail137-3.atl71.mandrillapp.com [198.2.137.3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 21836de1-7ea3-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 17:25:56 +0200 (CEST)
Received: from pmta07.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail137-3.atl71.mandrillapp.com (Mailchimp) with ESMTP id 4c76bQ0wjWzBsVD76
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 15:25:54 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 5565b7a84c614179b7558ba46b71cf8f; Thu, 21 Aug 2025 15:25: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>
X-Inumbo-ID: 21836de1-7ea3-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1755789954; x=1756059954;
	bh=v9693aJ0tIn6PL/KSvi73SLKMBRME6s7Oodg2Swvg4k=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=iMHqtkLQWTccEKocnJ30gS94aO+FZnLgcKSPFIynoxhB5ye68HSCIWqqBgTI6648J
	 5PpdV7fXBTZ5+WY8MI7P6ZswZb8QT90Ou/S6fw7U349KlZIq+GnZRQbv24etXFW+8s
	 2TM3TEEsVgrPl3eBuyIBNBsrmqDZssHEKOOtpscJXc2oEbvXz4T9jY47Ntvos17siZ
	 J2lhV/AshFpx0f67qYVuCZbLWckervw1ZXrpZd5SXsfaxKcczchYJLUqwZJxCafYp5
	 yigRqUb+DExo0OMyo++ljNrnLznCo4sUKpcT6R9IetgxAS+cAxOLAM+xpjAogWxWjt
	 OS1RC6hNp1uDg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1755789954; x=1756050454; i=teddy.astie@vates.tech;
	bh=v9693aJ0tIn6PL/KSvi73SLKMBRME6s7Oodg2Swvg4k=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=iH0BcE+QR1Uaoadh/SSpJyDJOpz7rEZOK9PHZRIcQcd7FQSuoHHsEP9YxnK6YLBJF
	 V9CZB7oqLjRzXWdUlCzhIzsOKBiYhkRHsQeXqSYpzn66U8dQneGlzgvNiEWWaZQYe5
	 N9/BPKoE+PMlOavuOwQdJ3idbHJ6kFXgKdokA1kZNnaN659ikq3g0JQq8nK5NqIOd3
	 DpAwBE/G0BStKl4dcWA5I0oD2QN5jBF4XihFwXY3/4mTxKix0hgOdw4JGkhbzUAvsr
	 SaV2sx1/QWthMhj0M6D4qYJ2WSDhOInkIvEWLpdQSJbY1n4E5Y4jioWoJkEXqB8z7+
	 /IzqH+tX3xp0w==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20PATCH=204/9]=20hvm:=20Introduce=20"fixed=20memory=20layout"=20feature?=
X-Mailer: git-send-email 2.50.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1755789952853
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Jan Beulich" <jbeulich@suse.com>, "Julien Grall" <julien@xen.org>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Stefano Stabellini" <sstabellini@kernel.org>, "Juergen Gross" <jgross@suse.com>
Message-Id: <640223e5e7ee18a73f62152dd27883bf5978fbfe.1755785258.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1755785258.git.teddy.astie@vates.tech>
References: <cover.1755785258.git.teddy.astie@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.5565b7a84c614179b7558ba46b71cf8f?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250821:md
Date: Thu, 21 Aug 2025 15:25:54 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Currently, guests needs to explicitely map their shared info and
grant table through hypercalls. It has proved to be complicated
and had been traditionally placed in the Xen PCI Platform device
BAR, but has caused confusions regarding MTRR [1].

Introduce a optional feature to let the toolstack map these pages in
advance, and exposing their location through the memory map (i.e E820).

When this feature is active, guests are expected to not invalidate such
mappings (e.g by calling xen_remove_from_physmap); as they may be used
by the operating system or firmware (i.e OVMF).

Moreover, this feature is useful to allow having a working guest without
having to expose to it physmap manipulation.

[1] https://lore.kernel.org/xen-devel/20250610162930.89055-1-roger.pau@citrix.com/

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
 .../x86/fixed-memory-layout.pandoc            | 24 ++++++
 docs/guest-guide/x86/index.rst                |  1 +
 tools/include/xen-tools/common-macros.h       |  4 +
 tools/libs/guest/xg_dom_x86.c                 | 84 +++++++++++++++++++
 tools/libs/light/libxl_create.c               |  1 +
 tools/libs/light/libxl_types.idl              |  1 +
 tools/libs/light/libxl_x86.c                  | 71 ++++++++++++++++
 tools/xl/xl_parse.c                           |  1 +
 xen/include/public/arch-x86/hvm/start_info.h  |  7 ++
 9 files changed, 194 insertions(+)
 create mode 100644 docs/guest-guide/x86/fixed-memory-layout.pandoc

diff --git a/docs/guest-guide/x86/fixed-memory-layout.pandoc b/docs/guest-guide/x86/fixed-memory-layout.pandoc
new file mode 100644
index 0000000000..b394dc1cff
--- /dev/null
+++ b/docs/guest-guide/x86/fixed-memory-layout.pandoc
@@ -0,0 +1,24 @@
+# Fixed memory layout
+
+When creating a guest with "fixed_mem_layout", the guest has additional special
+pages mapped in advance. These mappings may be required in some cases due to FastABI
+not providing the ability for the guest to modify its physical memory layout (which is
+usually used to map the shared info page or the grant table).
+
+The guest is informed of such mappings and their location through the memory map using
+Xen specific memory map types (in the OEM range of ACPI specification).
+
+It's expected that these mappings stay stable, therefore, the guest shouldn't try to
+modify such mappings as it may be actively used by guest firmware or operating system.
+
+    /* Xen-specific types (OEM-specific range of the ACPI spec) */
+    #define XEN_HVM_MEMMAP_TYPE_SHARED_INFO   0xF0000001 /* Shared info page */
+    #define XEN_HVM_MEMMAP_TYPE_GRANT_TABLE   0xF0000002 /* Grant table pages */
+    #define XEN_HVM_MEMMAP_TYPE_GNTTAB_STATUS 0xF0000003 /* Grant table status page (v2) */
+    #define XEN_HVM_MEMMAP_TYPE_FOREIGN_REG   0xF0000004 /* Suitable region for grant mappings */
+                                                         /* and foreign mappings */
+
+These mappings are likely to be placed outside the 4G range.
+
+XEN_HVM_MEMMAP_TYPE_FOREIGN_REG is a special region which doesn't contain any mapping,
+but is safe to use for placing grant and foreign mappings.
diff --git a/docs/guest-guide/x86/index.rst b/docs/guest-guide/x86/index.rst
index 502968490d..6927271e53 100644
--- a/docs/guest-guide/x86/index.rst
+++ b/docs/guest-guide/x86/index.rst
@@ -7,3 +7,4 @@ x86
    :maxdepth: 2
 
    hypercall-abi
+   fixed-memory-layout
diff --git a/tools/include/xen-tools/common-macros.h b/tools/include/xen-tools/common-macros.h
index 0088208c2e..8b286b3da5 100644
--- a/tools/include/xen-tools/common-macros.h
+++ b/tools/include/xen-tools/common-macros.h
@@ -72,6 +72,10 @@
 #define ROUNDUP(_x,_w) (((unsigned long)(_x)+(1UL<<(_w))-1) & ~((1UL<<(_w))-1))
 #endif
 
+#ifndef DIV_ROUNDUP
+#define DIV_ROUNDUP(n, d) (((n) + (d) - 1) / (d))
+#endif
+
 #define MASK_EXTR(v, m) (((v) & (m)) / ((m) & -(m)))
 #define MASK_INSR(v, m) (((v) * ((m) & -(m))) & (m))
 
diff --git a/tools/libs/guest/xg_dom_x86.c b/tools/libs/guest/xg_dom_x86.c
index cba01384ae..ab1c5063a4 100644
--- a/tools/libs/guest/xg_dom_x86.c
+++ b/tools/libs/guest/xg_dom_x86.c
@@ -624,6 +624,82 @@ static void build_hvm_info(void *hvm_info_page, struct xc_dom_image *dom)
     hvm_info->checksum = -sum;
 }
 
+/* Prepare special (shared_info, grant table, ...) regions marked in E820. */
+static int prepare_fixed_special_regions(xc_interface *xch, struct xc_dom_image *dom)
+{
+    int rc = 0; unsigned int i;
+    uint32_t domid = dom->guest_domid;
+    gnttab_query_size_t gnttab_query;
+    size_t gnttab_frame_count, gnttab_status_frame_count;
+    
+    gnttab_query.dom = domid;
+    rc = xc_gnttab_query_size(xch, &gnttab_query);
+
+    if ( rc != 0 || gnttab_query.status != GNTST_okay )
+    {
+        DOMPRINTF("Unable to query grant table size.");
+        return rc;
+    }
+
+    gnttab_frame_count = gnttab_query.max_nr_frames;
+    gnttab_status_frame_count = DIV_ROUNDUP(
+        gnttab_frame_count * (XC_DOM_PAGE_SIZE(dom) / sizeof(grant_entry_v2_t)),
+        XC_DOM_PAGE_SIZE(dom) / sizeof(grant_status_t));
+
+    for ( i = 0; i < dom->e820_entries; i++ )
+    {
+        struct e820entry entry = dom->e820[i];
+        rc = 0;
+
+        switch ( entry.type ) {
+        case XEN_HVM_MEMMAP_TYPE_SHARED_INFO:
+            rc = xc_domain_add_to_physmap(xch, domid, XENMAPSPACE_shared_info,
+                                          0, entry.addr >> PAGE_SHIFT);
+            break;
+        case XEN_HVM_MEMMAP_TYPE_GRANT_TABLE:
+            if ( gnttab_frame_count != entry.size >> PAGE_SHIFT )
+            {
+                DOMPRINTF("Invalid grant table memmap region size");
+                return -EINVAL;
+            }
+
+            for ( i = 0; i < gnttab_frame_count; i++ )
+            {
+                rc = xc_domain_add_to_physmap(xch, domid, XENMAPSPACE_grant_table, i,
+                                              (entry.addr >> PAGE_SHIFT) + i);
+                
+                if ( rc !=  0 )
+                    break;
+            }
+            break;
+        case XEN_HVM_MEMMAP_TYPE_GNTTAB_STATUS:
+        {
+            if ( gnttab_status_frame_count != entry.size >> PAGE_SHIFT )
+            {
+                DOMPRINTF("Invalid grant table status memmap region size");
+                return -EINVAL;
+            }
+
+            for ( i = 0; i < gnttab_status_frame_count; i++ )
+            {
+                rc = xc_domain_add_to_physmap(xch, domid, XENMAPSPACE_grant_table,
+                                              i | XENMAPIDX_grant_table_status,
+                                              (entry.addr >> PAGE_SHIFT) + i);
+                
+                if ( rc !=  0 )
+                    break;
+            }
+            break;
+        }
+        }
+
+        if ( rc != 0 )
+            break;
+    }
+
+    return rc;
+}
+
 static int alloc_magic_pages_hvm(struct xc_dom_image *dom)
 {
     unsigned long i;
@@ -718,6 +794,14 @@ static int alloc_magic_pages_hvm(struct xc_dom_image *dom)
         goto out;
     }
 
+    rc = prepare_fixed_special_regions(xch, dom);
+
+    if ( rc != 0 )
+    {
+        DOMPRINTF("Unable to prepare fixed special regions");
+        goto out;
+    }
+
     /*
      * Identity-map page table is required for running with CR0.PG=0 when
      * using Intel EPT. Create a 32-bit non-PAE page directory of superpages.
diff --git a/tools/libs/light/libxl_create.c b/tools/libs/light/libxl_create.c
index 8a85fba1cf..5e23e122fc 100644
--- a/tools/libs/light/libxl_create.c
+++ b/tools/libs/light/libxl_create.c
@@ -2363,6 +2363,7 @@ int libxl_domain_create_restore(libxl_ctx *ctx, libxl_domain_config *d_config,
      * configuration.
      */
     libxl_defbool_setdefault(&d_config->b_info.arch_x86.msr_relaxed, true);
+    libxl_defbool_setdefault(&d_config->b_info.arch_x86.fixed_mem_layout, false);
     libxl_defbool_setdefault(&d_config->b_info.u.hvm.pirq, true);
 
     return do_domain_create(ctx, d_config, domid, restore_fd, send_back_fd,
diff --git a/tools/libs/light/libxl_types.idl b/tools/libs/light/libxl_types.idl
index a3a79d12b2..74edfdebc1 100644
--- a/tools/libs/light/libxl_types.idl
+++ b/tools/libs/light/libxl_types.idl
@@ -727,6 +727,7 @@ libxl_domain_build_info = Struct("domain_build_info",[
                                ("nr_spis", uint32, {'init_val': 'LIBXL_NR_SPIS_DEFAULT'}),
                               ])),
     ("arch_x86", Struct(None, [("msr_relaxed", libxl_defbool),
+                               ("fixed_mem_layout", libxl_defbool),
                               ])),
     # Alternate p2m is not bound to any architecture or guest type, as it is
     # supported by x86 HVM and ARM support is planned.
diff --git a/tools/libs/light/libxl_x86.c b/tools/libs/light/libxl_x86.c
index 60d4e8661c..de19f722ab 100644
--- a/tools/libs/light/libxl_x86.c
+++ b/tools/libs/light/libxl_x86.c
@@ -1,6 +1,7 @@
 #include "libxl_internal.h"
 #include "libxl_arch.h"
 #include <xen/arch-x86/cpuid.h>
+#include <xen/arch-x86/hvm/start_info.h>
 
 int libxl__arch_domain_prepare_config(libxl__gc *gc,
                                       libxl_domain_config *d_config,
@@ -50,6 +51,10 @@ static const char *e820_names(int type)
         case E820_ACPI: return "ACPI";
         case E820_NVS: return "ACPI NVS";
         case E820_UNUSABLE: return "Unusable";
+        case XEN_HVM_MEMMAP_TYPE_SHARED_INFO: return "HVM Shared Info";
+        case XEN_HVM_MEMMAP_TYPE_GRANT_TABLE: return "HVM Grant Table";
+        case XEN_HVM_MEMMAP_TYPE_GNTTAB_STATUS: return "HVM Grant Status";
+        case XEN_HVM_MEMMAP_TYPE_FOREIGN_REG: return "HVM Foreign mapping region";
         default: break;
     }
     return "Unknown";
@@ -686,10 +691,31 @@ static int domain_construct_memmap(libxl__gc *gc,
     /* We always own at least one lowmem entry. */
     unsigned int e820_entries = 1;
     struct e820entry *e820 = NULL;
+    uint64_t highmem_start = ((uint64_t)1 << 32);
     uint64_t highmem_size =
                     dom->highmem_end ? dom->highmem_end - (1ull << 32) : 0;
     uint32_t lowmem_start = dom->device_model ? GUEST_LOW_MEM_START_DEFAULT : 0;
     unsigned page_size = XC_DOM_PAGE_SIZE(dom);
+    /* Special region starts at the first 1G boundary after the highmem */
+    uint64_t special_region_start =
+        (highmem_start + highmem_size + GB(1) - 1) & ~(GB(1) - 1);
+    uint64_t special_region_offset = special_region_start;
+    size_t gnttab_frame_count, gnttab_status_frame_count;
+    gnttab_query_size_t gnttab_query;
+
+    gnttab_query.dom = domid;
+    rc = xc_gnttab_query_size(dom->xch, &gnttab_query);
+
+    if (rc != 0 || gnttab_query.status != GNTST_okay)
+    {
+        gnttab_frame_count = 0;
+        gnttab_status_frame_count = 0;
+    }
+
+    gnttab_frame_count = gnttab_query.max_nr_frames;
+    gnttab_status_frame_count = DIV_ROUNDUP(
+        gnttab_frame_count * (page_size / sizeof(grant_entry_v2_t)),
+        page_size / sizeof(grant_status_t));
 
     /* Add all rdm entries. */
     for (i = 0; i < d_config->num_rdms; i++)
@@ -703,6 +729,16 @@ static int domain_construct_memmap(libxl__gc *gc,
     /* If we should have a highmem range. */
     if (highmem_size)
         e820_entries++;
+    
+    if (libxl_defbool_val(d_config->b_info.arch_x86.fixed_mem_layout))
+    {
+        e820_entries++; /* XEN_HVM_MEMMAP_TYPE_SHARED_INFO */
+        if ( gnttab_frame_count )
+            e820_entries++; /* XEN_HVM_MEMMAP_TYPE_GRANT_TABLE */
+        if (d_config->b_info.max_grant_version >= 2 && gnttab_status_frame_count)
+            e820_entries++; /* XEN_HVM_MEMMAP_TYPE_GNTTAB_STATUS status */
+        e820_entries++; /* XEN_HVM_MEMMAP_TYPE_FOREIGN_REG */
+    }
 
     for (i = 0; i < MAX_ACPI_MODULES; i++)
         if (dom->acpi_modules[i].length)
@@ -769,6 +805,40 @@ static int domain_construct_memmap(libxl__gc *gc,
         e820[nr].type = E820_RAM;
     }
 
+    /* Special regions */
+    if (libxl_defbool_val(d_config->b_info.arch_x86.fixed_mem_layout))
+    {
+        e820[nr].type = XEN_HVM_MEMMAP_TYPE_SHARED_INFO;
+        e820[nr].addr = special_region_offset;
+        e820[nr].size = page_size;
+        special_region_offset += e820[nr].size;
+        nr++;
+
+        if ( gnttab_frame_count )
+        {
+            e820[nr].type = XEN_HVM_MEMMAP_TYPE_GRANT_TABLE;
+            e820[nr].addr = special_region_offset;
+            e820[nr].size = gnttab_frame_count * page_size;
+            special_region_offset += e820[nr].size;
+            nr++;
+        }
+
+        if (d_config->b_info.max_grant_version >= 2 && gnttab_status_frame_count)
+        {
+            e820[nr].type = XEN_HVM_MEMMAP_TYPE_GNTTAB_STATUS;
+            e820[nr].addr = special_region_offset;
+            e820[nr].size = gnttab_status_frame_count * page_size;
+            special_region_offset += e820[nr].size;
+            nr++;
+        }
+
+        e820[nr].type = XEN_HVM_MEMMAP_TYPE_FOREIGN_REG;
+        e820[nr].addr = special_region_offset;
+        e820[nr].size = MB(512);
+        special_region_offset += e820[nr].size;
+        nr++;
+    }
+
     if (xc_domain_set_memory_map(CTX->xch, domid, e820, e820_entries) != 0) {
         rc = ERROR_FAIL;
         goto out;
@@ -819,6 +889,7 @@ int libxl__arch_domain_build_info_setdefault(libxl__gc *gc,
     libxl_defbool_setdefault(&b_info->acpi, true);
     libxl_defbool_setdefault(&b_info->arch_x86.msr_relaxed, false);
     libxl_defbool_setdefault(&b_info->trap_unmapped_accesses, false);
+    libxl_defbool_setdefault(&b_info->arch_x86.fixed_mem_layout, false);
 
     if (b_info->type == LIBXL_DOMAIN_TYPE_HVM) {
         /*
diff --git a/tools/xl/xl_parse.c b/tools/xl/xl_parse.c
index 7e11c62ba0..a74cc577e9 100644
--- a/tools/xl/xl_parse.c
+++ b/tools/xl/xl_parse.c
@@ -2992,6 +2992,7 @@ skip_usbdev:
                     "WARNING: msr_relaxed will be removed in future versions.\n"
                     "If it fixes an issue you are having please report to "
                     "xen-devel@lists.xenproject.org.\n");
+    xlu_cfg_get_defbool(config, "fixed_mem_layout", &b_info->arch_x86.fixed_mem_layout, 0);
 
     xlu_cfg_get_defbool(config, "vpmu", &b_info->vpmu, 0);
 
diff --git a/xen/include/public/arch-x86/hvm/start_info.h b/xen/include/public/arch-x86/hvm/start_info.h
index e33557c0b4..0b3dfe91af 100644
--- a/xen/include/public/arch-x86/hvm/start_info.h
+++ b/xen/include/public/arch-x86/hvm/start_info.h
@@ -99,6 +99,13 @@
 #define XEN_HVM_MEMMAP_TYPE_DISABLED  6
 #define XEN_HVM_MEMMAP_TYPE_PMEM      7
 
+/* Xen-specific types (OEM-specific range of the ACPI spec) */
+#define XEN_HVM_MEMMAP_TYPE_SHARED_INFO   0xF0000001 /* Shared info page */
+#define XEN_HVM_MEMMAP_TYPE_GRANT_TABLE   0xF0000002 /* Grant table pages */
+#define XEN_HVM_MEMMAP_TYPE_GNTTAB_STATUS 0xF0000003 /* Grant table status page (v2) */
+#define XEN_HVM_MEMMAP_TYPE_FOREIGN_REG   0xF0000004 /* Suitable region for grant mappings */
+                                                     /* and foreign mappings */
+
 /*
  * C representation of the x86/HVM start info layout.
  *
-- 
2.50.1



Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 15:26:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 15:26:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088816.1446536 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up7As-00063o-CF; Thu, 21 Aug 2025 15:25:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088816.1446536; Thu, 21 Aug 2025 15:25: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 1up7As-00062c-6g; Thu, 21 Aug 2025 15:25:58 +0000
Received: by outflank-mailman (input) for mailman id 1088816;
 Thu, 21 Aug 2025 15:25:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=AMBP=3B=bounce.vates.tech=bounce-md_30504962.68a73a81.v1-9e97327b3e3448aa96280e39b2c50859@srs-se1.protection.inumbo.net>)
 id 1up7Aq-0005na-HL
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 15:25:56 +0000
Received: from mail179-29.suw41.mandrillapp.com
 (mail179-29.suw41.mandrillapp.com [198.2.179.29])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 203876e4-7ea3-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 17:25:54 +0200 (CEST)
Received: from pmta12.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail179-29.suw41.mandrillapp.com (Mailchimp) with ESMTP id
 4c76bP1Cbvz7lmVSh
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 15:25:53 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 9e97327b3e3448aa96280e39b2c50859; Thu, 21 Aug 2025 15:25: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>
X-Inumbo-ID: 203876e4-7ea3-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1755789953; x=1756059953;
	bh=MVrRTSIy9uYoaMBKkh7zoQoap19sAiJjJLjg5p6Ic0g=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=D2T/lPxz9m6iy5cumbLkrM2qX4+oJFF7v4EcytjbXPe9vYi4dexm4YDKMXy//M24w
	 V41VG0zhJRq8hmIguPTx3VWbGZoobthF2m9uEg0Hp3z3U4Sld1HKHTz2iCbsW9iLlF
	 dkiV6+OtrCfWRDZyBX/DOnamQZsZnPAsBLVu5RNAQjL1EQI+2gQDVYWGtgG1p5KYNk
	 PIAR8/lezfnc/GtR6YPOlezeyAA76/8GVp2se8CzcPmlrQUFXZS31uk0DehVsWvQdq
	 6ZVZu+IlRoAtmyHcCpbGvF4ZL7N9uLAd/49d9i8y9RsaRJKFi63waNCByTKUVto8s7
	 ala/oxN8trNCA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1755789953; x=1756050453; i=teddy.astie@vates.tech;
	bh=MVrRTSIy9uYoaMBKkh7zoQoap19sAiJjJLjg5p6Ic0g=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=ww6gqMX6PdulhC+7W88CP5mu1tt2Y/0gT5fgjGjY8kqYdRiCur0LurbE/nSLdimqf
	 56QPqjfAe8jxQCedo+NaZWg8QGKMJCkY4ug0XGiYJFN3/9daFQSilIjBEe0xTkmusi
	 ZBlZ0bUMcLrvrbIk3XllGIeZw2ZSWj2SWRs5J/RC7Pqg5kNBHsfRv/kKGIXbeTGmqC
	 HPKCHaLe0Afz4AcdRFge5eQCK7l2IFCX3fTJA8v1Da/XmOrNSedMoYOci00IIx0lTg
	 1kU3tuTNcD8zqLZKtnIObGu3+oDcM/d9u7ysc0/RXZykf6uoCc67Ed2Qy5UZxkUon8
	 tO8ETKr/KYO/A==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20PATCH=203/9]=20common/grant=5Ftable:=20Use=20direct=20structures=20instead=20of=20guest=20handles?=
X-Mailer: git-send-email 2.50.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1755789951955
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Jan Beulich" <jbeulich@suse.com>, "Julien Grall" <julien@xen.org>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Stefano Stabellini" <sstabellini@kernel.org>
Message-Id: <3443dc8528075ce8ed8dd89ee5d0b78515c81e8e.1755785258.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1755785258.git.teddy.astie@vates.tech>
References: <cover.1755785258.git.teddy.astie@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.9e97327b3e3448aa96280e39b2c50859?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250821:md
Date: Thu, 21 Aug 2025 15:25:53 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Make these functions work with hypervisor-owned pointer rather than
guest handles, so the function parameters don't have to live in guest memory.

No functional changes.

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
 xen/common/grant_table.c | 68 +++++++++++++++++++++++-----------------
 1 file changed, 39 insertions(+), 29 deletions(-)

diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
index cf131c43a1..3c3bbca2fc 100644
--- a/xen/common/grant_table.c
+++ b/xen/common/grant_table.c
@@ -3164,29 +3164,24 @@ static long gnttab_copy(
     return rc;
 }
 
-static long
-gnttab_set_version(XEN_GUEST_HANDLE_PARAM(gnttab_set_version_t) uop)
+static long gnttab_set_version(gnttab_set_version_t *op)
 {
-    gnttab_set_version_t op;
     struct domain *currd = current->domain;
     struct grant_table *gt = currd->grant_table;
     grant_entry_v1_t reserved_entries[GNTTAB_NR_RESERVED_ENTRIES];
     int res;
     unsigned int i, nr_ents;
 
-    if ( copy_from_guest(&op, uop, 1) )
-        return -EFAULT;
-
     res = -EINVAL;
-    if ( op.version != 1 && op.version != 2 )
+    if ( op->version != 1 && op->version != 2 )
         goto out;
 
     res = -ENOSYS;
-    if ( op.version == 2 && gt->max_version == 1 )
+    if ( op->version == 2 && gt->max_version == 1 )
         goto out; /* Behave as before set_version was introduced. */
 
     res = 0;
-    if ( gt->gt_version == op.version )
+    if ( gt->gt_version == op->version )
         goto out;
 
     grant_write_lock(gt);
@@ -3203,7 +3198,7 @@ gnttab_set_version(XEN_GUEST_HANDLE_PARAM(gnttab_set_version_t) uop)
         {
             gdprintk(XENLOG_WARNING,
                      "tried to change grant table version from %u to %u, but some grant entries still in use\n",
-                     gt->gt_version, op.version);
+                     gt->gt_version, op->version);
             res = -EBUSY;
             goto out_unlock;
         }
@@ -3268,7 +3263,7 @@ gnttab_set_version(XEN_GUEST_HANDLE_PARAM(gnttab_set_version_t) uop)
         break;
     }
 
-    if ( op.version < 2 && gt->gt_version == 2 &&
+    if ( op->version < 2 && gt->gt_version == 2 &&
          (res = gnttab_unpopulate_status_frames(currd, gt)) != 0 )
         goto out_unlock;
 
@@ -3279,7 +3274,7 @@ gnttab_set_version(XEN_GUEST_HANDLE_PARAM(gnttab_set_version_t) uop)
     /* Restore the first 8 entries (toolstack reserved grants). */
     if ( gt->gt_version )
     {
-        switch ( op.version )
+        switch ( op->version )
         {
         case 1:
             memcpy(&shared_entry_v1(gt, 0), reserved_entries, sizeof(reserved_entries));
@@ -3300,16 +3295,14 @@ gnttab_set_version(XEN_GUEST_HANDLE_PARAM(gnttab_set_version_t) uop)
         }
     }
 
-    gt->gt_version = op.version;
+    gt->gt_version = op->version;
 
  out_unlock:
     grant_write_unlock(gt);
 
  out:
-    op.version = gt->gt_version;
+    op->version = gt->gt_version;
 
-    if ( __copy_to_guest(uop, &op, 1) )
-        res = -EFAULT;
 
     return res;
 }
@@ -3387,17 +3380,12 @@ gnttab_get_status_frames(XEN_GUEST_HANDLE_PARAM(gnttab_get_status_frames_t) uop,
     return 0;
 }
 
-static long
-gnttab_get_version(XEN_GUEST_HANDLE_PARAM(gnttab_get_version_t) uop)
+static long gnttab_get_version(gnttab_get_version_t *op)
 {
-    gnttab_get_version_t op;
     struct domain *d;
     int rc;
 
-    if ( copy_from_guest(&op, uop, 1) )
-        return -EFAULT;
-
-    d = rcu_lock_domain_by_any_id(op.dom);
+    d = rcu_lock_domain_by_any_id(op->dom);
     if ( d == NULL )
         return -ESRCH;
 
@@ -3408,13 +3396,10 @@ gnttab_get_version(XEN_GUEST_HANDLE_PARAM(gnttab_get_version_t) uop)
         return rc;
     }
 
-    op.version = d->grant_table->gt_version;
+    op->version = d->grant_table->gt_version;
 
     rcu_unlock_domain(d);
 
-    if ( __copy_field_to_guest(uop, &op, version) )
-        return -EFAULT;
-
     return 0;
 }
 
@@ -3749,8 +3734,20 @@ long do_grant_table_op(
         break;
 
     case GNTTABOP_set_version:
-        rc = gnttab_set_version(guest_handle_cast(uop, gnttab_set_version_t));
+    {
+        gnttab_set_version_t op;
+        if ( copy_from_guest(&op, uop, 1) )
+        {
+            rc = -EFAULT;
+            break;
+        }
+
+        rc = gnttab_set_version(&op);
+
+        if ( copy_to_guest(uop, &op, 1) )
+            rc = -EFAULT;
         break;
+    }
 
     case GNTTABOP_get_status_frames:
         rc = gnttab_get_status_frames(
@@ -3758,8 +3755,21 @@ long do_grant_table_op(
         break;
 
     case GNTTABOP_get_version:
-        rc = gnttab_get_version(guest_handle_cast(uop, gnttab_get_version_t));
+    {
+        gnttab_get_version_t op;
+
+        if ( copy_from_guest(&op, uop, 1) )
+        {
+            rc = -EFAULT;
+            break;
+        }
+
+        rc = gnttab_get_version(&op);
+
+        if ( copy_to_guest(uop, &op, 1) )
+            rc = -EFAULT;
         break;
+    }
 
     case GNTTABOP_swap_grant_ref:
     {
-- 
2.50.1



Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 15:26:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 15:26:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088814.1446520 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up7Ap-0005ni-Q4; Thu, 21 Aug 2025 15:25:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088814.1446520; Thu, 21 Aug 2025 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 1up7Ap-0005nb-NX; Thu, 21 Aug 2025 15:25:55 +0000
Received: by outflank-mailman (input) for mailman id 1088814;
 Thu, 21 Aug 2025 15:25:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PRvz=3B=bounce.vates.tech=bounce-md_30504962.68a73a80.v1-b26388fab1ef4df0bf0d61632d7da11d@srs-se1.protection.inumbo.net>)
 id 1up7Ao-0005nU-Jn
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 15:25:54 +0000
Received: from mail179-29.suw41.mandrillapp.com
 (mail179-29.suw41.mandrillapp.com [198.2.179.29])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1fd633ea-7ea3-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 17:25:53 +0200 (CEST)
Received: from pmta12.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail179-29.suw41.mandrillapp.com (Mailchimp) with ESMTP id
 4c76bN13Kkz7lmV4q
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 15:25:52 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 b26388fab1ef4df0bf0d61632d7da11d; Thu, 21 Aug 2025 15:25: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>
X-Inumbo-ID: 1fd633ea-7ea3-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1755789952; x=1756059952;
	bh=Zc917Cb8fY8/yfL65ARqArQPpJf0Hd7vGTKynVOYYc4=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=o1zBDSwYzZiO6OuCjkC0875v8RXC7LUe4ElG2M6DfEazi4FPUk4dMorHf4xiABzCU
	 +XYveIkzr5LhdOv/Uon5qZUZxi5tjEldB3w9namWGMVyrOYxDlBb9DvsjiuOKbvadO
	 D4zI0GmGm6NT231gf+iUd0NCcI9d8nIJ0vTKinGgGfEvDQQitVSKDhUrJxTd7eXkCB
	 W5BYMzzCoue5Wo7/UlzBHcUoXVJmVlEfEy5edbZvNcjGcaM6lkvyZgPC5g7z9cPR9g
	 SwdeVfsJvUoJgXgeZmCBo2n7tt2wah/SyHMl0vhfdbye4H5jFf9AavRXFojNiT6oC4
	 am85Lz7NKMUvA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1755789952; x=1756050452; i=teddy.astie@vates.tech;
	bh=Zc917Cb8fY8/yfL65ARqArQPpJf0Hd7vGTKynVOYYc4=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=SEVzliy1lDGye0rRf2GGHE9/wTL/Ui6IU7qtxpG+8S7W3A3gkStrde3lccke58+29
	 ztdcxK1YwpAQW6xkhiGOQNNSmsS8cH1TAv294ask29gHaAqr4Ysa2BTRwHOOUrrQX0
	 7k1BwyMmM60IrcL8dbp31NVqjA4KXLBCO4TVp+VqD+IYuuczWzbnjJkagAJlT9ZqiP
	 YX8au1opTniiaFNBKVno7QoIVATFUZ4AzMcLXSp8k/F0bz5vV18SdQD2mJiRB54KjY
	 3Ikpvn+axZpkue6Dbyu95Zh0HeEcGFkteeV9YTL3M7DfT/GF+cbZ/0dRbb1gGo3KnJ
	 uNasdZu8zWpKA==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20PATCH=202/9]=20common:=20Isolate=20XENVER=5Fget=5Ffeatures=20into=20a=20separate=20function?=
X-Mailer: git-send-email 2.50.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1755789951011
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Jan Beulich" <jbeulich@suse.com>, "Julien Grall" <julien@xen.org>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Stefano Stabellini" <sstabellini@kernel.org>
Message-Id: <0bbc0f2df1853bb60f4e93c55d1a0953c6a72496.1755785258.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1755785258.git.teddy.astie@vates.tech>
References: <cover.1755785258.git.teddy.astie@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.b26388fab1ef4df0bf0d61632d7da11d?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250821:md
Date: Thu, 21 Aug 2025 15:25:52 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Make do_xen_version more readable by moving the main XENVER_get_features
into a separate function.

No functional changes intended.

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
 xen/common/kernel.c | 84 +++++++++++++++++++++++++--------------------
 1 file changed, 46 insertions(+), 38 deletions(-)

diff --git a/xen/common/kernel.c b/xen/common/kernel.c
index 5be668ba85..eff6db6c8f 100644
--- a/xen/common/kernel.c
+++ b/xen/common/kernel.c
@@ -569,6 +569,50 @@ static long xenver_varbuf_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
     return sz;
 }
 
+static long xenver_get_features(struct domain *d, uint32_t submap_idx, uint32_t *submap)
+{
+    switch ( submap_idx )
+    {
+    case 0:
+        *submap = (1U << XENFEAT_memory_op_vnode_supported) |
+#ifdef CONFIG_X86
+                  (1U << XENFEAT_vcpu_time_phys_area) |
+#endif
+                  (1U << XENFEAT_runstate_phys_area);
+        if ( VM_ASSIST(d, pae_extended_cr3) )
+            *submap |= (1U << XENFEAT_pae_pgdir_above_4gb);
+        if ( paging_mode_translate(d) )
+            *submap |=
+                (1U << XENFEAT_writable_page_tables) |
+                (1U << XENFEAT_auto_translated_physmap);
+        if ( is_hardware_domain(d) )
+            *submap |= 1U << XENFEAT_dom0;
+#ifdef CONFIG_ARM
+        *submap |= (1U << XENFEAT_ARM_SMCCC_supported);
+#endif
+#ifdef CONFIG_X86
+        if ( is_pv_domain(d) )
+            *submap |= (1U << XENFEAT_mmu_pt_update_preserve_ad) |
+                      (1U << XENFEAT_highmem_assist) |
+                      (1U << XENFEAT_gnttab_map_avail_bits);
+        else
+            *submap |= (1U << XENFEAT_hvm_safe_pvclock) |
+                       (1U << XENFEAT_hvm_callback_vector) |
+                       (has_pirq(d) ? (1U << XENFEAT_hvm_pirqs) : 0);
+        *submap |= (1U << XENFEAT_dm_msix_all_writes);
+#endif
+        if ( !paging_mode_translate(d) || is_domain_direct_mapped(d) )
+            *submap |= (1U << XENFEAT_direct_mapped);
+        else
+            *submap |= (1U << XENFEAT_not_direct_mapped);
+        break;
+    default:
+        return -EINVAL;
+    }
+
+    return 0;
+}
+
 long do_xen_version(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
 {
     bool deny = xsm_xen_version(XSM_OTHER, cmd);
@@ -675,45 +719,9 @@ long do_xen_version(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
         if ( copy_from_guest(&fi, arg, 1) )
             return -EFAULT;
 
-        switch ( fi.submap_idx )
-        {
-        case 0:
-            fi.submap = (1U << XENFEAT_memory_op_vnode_supported) |
-#ifdef CONFIG_X86
-                        (1U << XENFEAT_vcpu_time_phys_area) |
-#endif
-                        (1U << XENFEAT_runstate_phys_area);
-            if ( VM_ASSIST(d, pae_extended_cr3) )
-                fi.submap |= (1U << XENFEAT_pae_pgdir_above_4gb);
-            if ( paging_mode_translate(d) )
-                fi.submap |=
-                    (1U << XENFEAT_writable_page_tables) |
-                    (1U << XENFEAT_auto_translated_physmap);
-            if ( is_hardware_domain(d) )
-                fi.submap |= 1U << XENFEAT_dom0;
-#ifdef CONFIG_ARM
-            fi.submap |= (1U << XENFEAT_ARM_SMCCC_supported);
-#endif
-#ifdef CONFIG_X86
-            if ( is_pv_domain(d) )
-                fi.submap |= (1U << XENFEAT_mmu_pt_update_preserve_ad) |
-                             (1U << XENFEAT_highmem_assist) |
-                             (1U << XENFEAT_gnttab_map_avail_bits);
-            else
-                fi.submap |= (1U << XENFEAT_hvm_safe_pvclock) |
-                             (1U << XENFEAT_hvm_callback_vector) |
-                             (has_pirq(d) ? (1U << XENFEAT_hvm_pirqs) : 0);
-            fi.submap |= (1U << XENFEAT_dm_msix_all_writes);
-#endif
-            if ( !paging_mode_translate(d) || is_domain_direct_mapped(d) )
-                fi.submap |= (1U << XENFEAT_direct_mapped);
-            else
-                fi.submap |= (1U << XENFEAT_not_direct_mapped);
-            break;
-        default:
+        if ( xenver_get_features(d, fi.submap_idx, &fi.submap) )
             return -EINVAL;
-        }
-
+            
         if ( __copy_to_guest(arg, &fi, 1) )
             return -EFAULT;
         return 0;
-- 
2.50.1



Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 15:26:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 15:26:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088818.1446561 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up7Au-0006h2-2B; Thu, 21 Aug 2025 15:26:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088818.1446561; Thu, 21 Aug 2025 15:26: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 1up7At-0006fq-U1; Thu, 21 Aug 2025 15:25:59 +0000
Received: by outflank-mailman (input) for mailman id 1088818;
 Thu, 21 Aug 2025 15:25:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=PmEG=3B=bounce.vates.tech=bounce-md_30504962.68a73a82.v1-841c9db552804ee1bbcff90c2e96fb43@srs-se1.protection.inumbo.net>)
 id 1up7Ar-0005na-Ux
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 15:25:58 +0000
Received: from mail179-29.suw41.mandrillapp.com
 (mail179-29.suw41.mandrillapp.com [198.2.179.29])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 214c3140-7ea3-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 17:25:55 +0200 (CEST)
Received: from pmta12.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail179-29.suw41.mandrillapp.com (Mailchimp) with ESMTP id
 4c76bQ6yhPz7lmVSj
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 15:25:54 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 841c9db552804ee1bbcff90c2e96fb43; Thu, 21 Aug 2025 15:25: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>
X-Inumbo-ID: 214c3140-7ea3-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1755789955; x=1756059955;
	bh=h1vxOINHJNHHsgrwETVtPerz1HMSIPiyHjC13CAZ9ok=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=OSXUMs4TNk4CogPQwFVu5iA6nJRI0yKKWnJL39JE3+4vTgIDtDQ2p9zy3gAJzWIW8
	 enMIN2VM2zKr5zUPaPSTMNYL3d3faLqrN6eE/2EAjfc91fz4GuKEUqwMZa1UlFSitA
	 ki8/CDvG4RwRi0zECF6v9/sVMj1QgJcYdGuFzzeSy/+H2yUrKWYjonOLaDloxMPauQ
	 tZ8vsiiMVF9yh6y3YVf1ZjNJXOSVVOycUggDYGiJh4KZCC4Ikk6p8qOAq43S8cW+fp
	 xs2NPsz96X9mPQzONhTVkYKa+gS3+GDnqsVhlsKU1DbtxyVEo62+YtZGfOa4HmRcZH
	 WyT5tiqiM+flg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1755789955; x=1756050455; i=teddy.astie@vates.tech;
	bh=h1vxOINHJNHHsgrwETVtPerz1HMSIPiyHjC13CAZ9ok=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=p9YST2mu+RxKLaTz2ozkd1W5xi4S8wIQArxDjSZMqRaAgWnlCGhZoHIHlrViv1OqQ
	 jgHdyaWElM41OWv2dbf5V4l7eEG1rz+arFzs424qOYC2Rj/U/bKih7Feqg30bKUczu
	 1ssknsJAehUuzezhIyCIaC0RKczPXHA4fvnpVL7J8BB4GnpvKE/asjwU40SbWMc92J
	 MAVAgm9CjUZ0s/Bk2wvzPouiTO6j0srydk03Vdv5kusKNdbKXA58xkUTnyaV6DT7Vl
	 oMXZxPQOvGcDre41zeEzmarZp80NPb5B7Rro5rygdTMTUgKosZcJUsVingcKbcuUzq
	 CqqeA8JFYD5Gw==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20PATCH=205/9]=20docs/x86:=20Introduce=20FastABI?=
X-Mailer: git-send-email 2.50.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1755789953594
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Jan Beulich" <jbeulich@suse.com>, "Julien Grall" <julien@xen.org>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Stefano Stabellini" <sstabellini@kernel.org>
Message-Id: <64800d22220f31bf052713ce61ecedeaa8a36b6f.1755785258.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1755785258.git.teddy.astie@vates.tech>
References: <cover.1755785258.git.teddy.astie@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.841c9db552804ee1bbcff90c2e96fb43?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250821:md
Date: Thu, 21 Aug 2025 15:25:54 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

FastABI is a alternative ABI designed with performance and coco-enabled
guest in mind. It is register-oriented instead of refering to C structures
in the guest memory (through a virtual memory pointer).

It only focuses on kernel-side hypercalls, it doesn't aim to provide toolstack
operations.

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
 docs/guest-guide/x86/fastabi.pandoc |  50 ++++++++++
 docs/guest-guide/x86/index.rst      |   1 +
 xen/abi/event_channel.yml           | 130 ++++++++++++++++++++++++++
 xen/abi/grant_table.yml             |  46 +++++++++
 xen/abi/hvm.yml                     |  50 ++++++++++
 xen/abi/memory.yml                  |  11 +++
 xen/abi/sched.yml                   |  48 ++++++++++
 xen/abi/vcpu.yml                    | 139 ++++++++++++++++++++++++++++
 xen/abi/version.yml                 |  15 +++
 xen/include/public/arch-x86/cpuid.h |   4 +
 10 files changed, 494 insertions(+)
 create mode 100644 docs/guest-guide/x86/fastabi.pandoc
 create mode 100644 xen/abi/event_channel.yml
 create mode 100644 xen/abi/grant_table.yml
 create mode 100644 xen/abi/hvm.yml
 create mode 100644 xen/abi/memory.yml
 create mode 100644 xen/abi/sched.yml
 create mode 100644 xen/abi/vcpu.yml
 create mode 100644 xen/abi/version.yml

diff --git a/docs/guest-guide/x86/fastabi.pandoc b/docs/guest-guide/x86/fastabi.pandoc
new file mode 100644
index 0000000000..8ff8609f37
--- /dev/null
+++ b/docs/guest-guide/x86/fastabi.pandoc
@@ -0,0 +1,50 @@
+# x86 FastABI
+
+## Introduction
+
+FastABI is a alternative hypercall ABI designed with performance and confidential
+computing enabled guests (AMD SEV, Intel TDX, ...) in mind. It provides a minimal
+subset of the traditional ABI that is sufficient for having a working guest.
+
+This hypercall interface is designed around using registers for passing hypercall
+parameters and outputs rather than using pointer to C structures, thus it avoids
+potentially complicated or expensive memory copies from/to the guest.
+
+This ABI currently only supports HVM/PVH and x86 long mode.
+
+Each hypercall operation interface is described in a parsable yaml file, which
+defines each hypercall suboperation inputs and outputs and eventual metadata for
+code generation (e.g C stubs).
+
+## Support
+
+This interface is only supported if XEN_HVM_CPUID_FASTABI is set.
+
+## Semantics
+
+8 registers can be used as either input or output.
+
+Each hypercall operation (or sub-operation) defines its own set of used input and
+output registers. There is no implicit clobbering of unused registers, i.e input
+registers are not allowed to be modified by the hypervisor unless it is explicitely
+also marked as a output (or cloberred register).
+
+- reg0: `rax`: IN: hypercall operation index, OUT: error code
+- reg1: `rdi`: (if operation has sub-operations) IN: hypercall sub-operation index
+- reg2: `rsi`
+- reg3: `r8`
+- reg4: `r9`
+- reg5: `r10`
+- reg6: `r11`
+- reg7: `r12`
+
+`reg0` input is reserved for hypercall index.
+In order to distinguish FastABI with traditional hypercalls or viridian hypercalls,
+reg0 input needs to be OR-ed with 0x40000000 (__HYPERVISOR_FASTABI_MASK).
+
+`reg0` output is reserved for standard hypercall return code (errno) or returned value.
+
+`reg1` input can be used for identifying a sub-operation. output is available for use.
+
+The hypercall uses the native hypercall instruction, which is `vmcall` on Intel platforms
+and `vmmcall` on AMD platforms.
\ No newline at end of file
diff --git a/docs/guest-guide/x86/index.rst b/docs/guest-guide/x86/index.rst
index 6927271e53..aaae42da5a 100644
--- a/docs/guest-guide/x86/index.rst
+++ b/docs/guest-guide/x86/index.rst
@@ -7,4 +7,5 @@ x86
    :maxdepth: 2
 
    hypercall-abi
+   fastabi
    fixed-memory-layout
diff --git a/xen/abi/event_channel.yml b/xen/abi/event_channel.yml
new file mode 100644
index 0000000000..44a769cdbb
--- /dev/null
+++ b/xen/abi/event_channel.yml
@@ -0,0 +1,130 @@
+name: event_channel
+hypercall_index: 32
+
+subops:
+  alloc_unbound:
+    index: 6
+    input:
+      dom: 2
+      remote_dom: 3
+    output:
+      port: 4
+    c_lang:
+      struct: evtchn_alloc_unbound
+
+  bind_interdomain:
+    index: 0
+    input:
+      remote_dom: 2
+      remote_port: 3
+    output:
+      local_port: 4
+    c_lang:
+      struct: evtchn_bind_interdomain
+
+  bind_virq:
+    index: 1
+    input:
+      virq: 2
+      vcpu: 3
+    output:
+      port: 4
+    c_lang:
+      struct: evtchn_bind_virq
+
+  bind_ipi:
+    index: 7
+    input:
+      vcpu: 2
+    output:
+      port: 4
+    c_lang:
+      struct: evtchn_bind_ipi
+
+  bind_pirq:
+    index: 2
+    input:
+      pirq: 2
+      flags: 3
+    output:
+      port: 4
+    c_lang:
+      struct: evtchn_bind_pirq
+  
+  close:
+    index: 3
+    input:
+      port: 2
+    c_lang:
+      struct: evtchn_close
+  
+  send:
+    index: 4
+    input:
+      port: 2
+    c_lang:
+      struct: evtchn_send
+
+  status:
+    index: 5
+    input:
+      dom: 2
+      port: 3
+    output:
+      status: 4
+      vcpu: 5
+      output1: 6
+      output2: 7
+    c_lang:
+      struct: evtchn_status
+      mapping:
+        output1: u._output1
+        output2: u._output2
+  
+  bind_vcpu:
+    index: 8
+    input:
+      vcpu: 2
+      port: 3
+    c_lang:
+      struct: evtchn_bind_vcpu
+  
+  unmask:
+    index: 9
+    input:
+      port: 2
+    c_lang:
+      struct: evtchn_unmask
+  
+  reset:
+    index: 10
+    input:
+      dom: 2
+    c_lang:
+      struct: evtchn_reset
+
+  init_control:
+    index: 11
+    input:
+      control_gfn: 2
+      offset: 3
+      vcpu: 4
+    output:
+      link_bits: 5
+    c_lang:
+      struct: evtchn_init_control
+  
+  expand_array:
+    index: 12
+    input:
+      array_gfn: 2
+    c_lang:
+      struct: evtchn_expand_array
+
+  set_priority:
+    index: 13
+    input:
+      port: 2
+      priority: 3
+    c_lang:
+      struct: evtchn_set_priority
diff --git a/xen/abi/grant_table.yml b/xen/abi/grant_table.yml
new file mode 100644
index 0000000000..bcedaa966b
--- /dev/null
+++ b/xen/abi/grant_table.yml
@@ -0,0 +1,46 @@
+name: grant_table
+hypercall_index: 20
+
+subops:
+  map_grant_ref:
+    index: 0
+    input:
+      dom: 2
+      host_addr: 3
+      flags: 4
+      ref: 5
+    output:
+      handle: 6
+      status: 7
+    c_lang:
+      struct: gnttab_map_grant_ref
+  
+  unmap_grant_ref:
+    index: 1
+    input:
+      host_addr: 3
+      handle: 6
+    c_lang:
+      struct: gnttab_unmap_grant_ref
+  
+  query_size:
+    index: 6
+    output:
+      nr_frames: 2
+      max_nr_frames: 3
+    c_lang:
+      struct: gnttab_query_size
+
+  set_version:
+    index: 8
+    input:
+      version: 2
+    c_lang:
+      struct: gnttab_set_version
+
+  get_version:
+    index: 10
+    output:
+      version: 2
+    c_lang:
+      struct: gnttab_get_version
diff --git a/xen/abi/hvm.yml b/xen/abi/hvm.yml
new file mode 100644
index 0000000000..20c2421bdf
--- /dev/null
+++ b/xen/abi/hvm.yml
@@ -0,0 +1,50 @@
+name: hvm
+hypercall_index: 34
+
+subops:
+  set_param:
+    index: 0
+    input:
+      domid: 2
+      index: 3
+      value: 4
+    c_lang:
+      struct: xen_hvm_param
+
+  get_param:
+    index: 1
+    input:
+      domid: 2
+      index: 3
+    output:
+      value: 4
+    c_lang:
+      struct: xen_hvm_param
+
+  flush_tlbs:
+    index: 5
+
+  get_time:
+    index: 10
+    output:
+      now: 2
+    c_lang:
+      struct: xen_hvm_get_time
+
+  get_mem_type:
+    index: 15
+    input:
+      domid: 2
+      pfn: 3
+    output:
+      mem_type: 4
+    c_lang:
+      struct: xen_hvm_get_mem_type
+
+  set_evtchn_upcall_vector:
+    index: 23
+    input:
+      vcpu: 2
+      vector: 3
+    c_lang:
+      struct: xen_hvm_evtchn_upcall_vector
diff --git a/xen/abi/memory.yml b/xen/abi/memory.yml
new file mode 100644
index 0000000000..8b51490f8a
--- /dev/null
+++ b/xen/abi/memory.yml
@@ -0,0 +1,11 @@
+name: memory
+hypercall_index: 12
+
+subops:
+  memory_map:
+    index: 9
+    input:
+      nr_entries: 2
+      buffer: 3
+    c_lang:
+      struct: xen_memory_map
diff --git a/xen/abi/sched.yml b/xen/abi/sched.yml
new file mode 100644
index 0000000000..1b1ef50c7a
--- /dev/null
+++ b/xen/abi/sched.yml
@@ -0,0 +1,48 @@
+name: sched
+hypercall_index: 29
+
+subops:
+  yield:
+    index: 0
+
+  block:
+    index: 1
+
+  shutdown:
+    index: 2
+    input:
+      reason: 2
+    c_lang:
+      struct: sched_shutdown
+
+  poll:
+    index: 3
+    input:
+      timeout: 2
+      port: 3
+    c_lang:
+      params:
+        timeout: uint64_t
+        port: evtchn_port_t
+
+  shutdown_code:
+    index: 5
+    input:
+      reason: 2
+    c_lang:
+      struct: sched_shutdown
+
+  watchdog:
+    index: 6
+    input:
+      id: 2
+      timeout: 3
+    c_lang:
+      struct: sched_watchdog
+
+  pin_override:
+    index: 7
+    input:
+      pcpu: 2
+    c_lang:
+      struct: sched_pin_override
diff --git a/xen/abi/vcpu.yml b/xen/abi/vcpu.yml
new file mode 100644
index 0000000000..0b4fe4ea1f
--- /dev/null
+++ b/xen/abi/vcpu.yml
@@ -0,0 +1,139 @@
+name: vcpu
+hypercall_index: 24
+
+subops:
+  initialise:
+    index: 0
+    input:
+      vcpuid: 2
+      context_gfn: 3
+    c_lang:
+      params:
+        vcpuid: uint32_t
+        context_gfn: uint64_t
+
+  up:
+    index: 1
+    input:
+      vcpuid: 2
+    c_lang:
+      params:
+        vcpuid: uint32_t
+
+  down:
+    index: 2
+    input:
+      vcpuid: 2
+    c_lang:
+      params:
+        vcpuid: uint32_t
+
+  is_up:
+    index: 3
+    input:
+      vcpuid: 2
+    c_lang:
+      params:
+        vcpuid: uint32_t
+
+  get_runstate_info:
+    index: 4
+    input:
+      vcpuid: 2
+    output:
+      state: 2
+      state_entry_time: 3
+      time[0]: 4
+      time[1]: 5
+      time[2]: 6
+      time[3]: 7
+    c_lang:
+      struct: vcpu_runstate_info
+      params:
+        vcpuid: uint32_t
+
+  register_runstate_phys_area:
+    index: 14
+    input:
+      vcpuid: 2
+      addr.p: 3
+    c_lang:
+      struct: vcpu_register_time_memory_area
+      params:
+        vcpuid: uint32_t
+
+  set_periodic_timer:
+    index: 6
+    input:
+      vcpuid: 2
+      period_ns: 3
+    c_lang:
+      struct: vcpu_set_periodic_timer
+      params:
+        vcpuid: uint32_t
+
+  stop_periodic_timer:
+    index: 7
+    input:
+      vcpuid: 2
+    c_lang:
+      params:
+        vcpuid: uint32_t
+  
+  set_singleshot_timer:
+    index: 8
+    input:
+      vcpuid: 2
+      timeout_abs_ns: 3
+      flags: 4
+    c_lang:
+      struct: vcpu_set_singleshot_timer
+      params:
+        vcpuid: uint32_t
+
+  stop_singleshot_timer:
+    index: 9
+    input:
+      vcpuid: 2
+    c_lang:
+      params:
+        vcpuid: uint32_t
+
+  register_vcpu_info:
+    index: 10
+    input:
+      vcpuid: 2
+      mfn: 3
+      offset: 4
+    c_lang:
+      struct: vcpu_register_vcpu_info
+      params:
+        vcpuid: uint32_t
+
+  send_nmi:
+    index: 11
+    input:
+      vcpuid: 2
+    c_lang:
+      params:
+        vcpuid: uint32_t
+
+  get_physid:
+    index: 12
+    input:
+      vcpuid: 2
+      phys_id: 3
+    c_lang:
+      struct: vcpu_get_physid
+      params:
+        vcpuid: uint32_t
+
+  register_vcpu_time_phys_area:
+    index: 15
+    input:
+      vcpuid: 2
+      addr.p: 3
+    c_lang:
+      struct: vcpu_register_time_memory_area
+      params:
+        vcpuid: uint32_t
diff --git a/xen/abi/version.yml b/xen/abi/version.yml
new file mode 100644
index 0000000000..bce64a4d69
--- /dev/null
+++ b/xen/abi/version.yml
@@ -0,0 +1,15 @@
+name: version
+hypercall_index: 17
+
+subops:
+  version:
+    index: 0
+
+  get_features:
+    index: 6
+    input:
+      submap_idx: 2
+    output:
+      submap: 3
+    c_lang:
+      struct: xen_feature_info
diff --git a/xen/include/public/arch-x86/cpuid.h b/xen/include/public/arch-x86/cpuid.h
index 3bb0dd249f..ff44ce0e7b 100644
--- a/xen/include/public/arch-x86/cpuid.h
+++ b/xen/include/public/arch-x86/cpuid.h
@@ -106,6 +106,10 @@
  * bound to event channels.
  */
 #define XEN_HVM_CPUID_UPCALL_VECTOR    (1u << 6)
+/*
+ * Support for fast HVM ABI.
+ */
+#define XEN_HVM_CPUID_FASTABI          (1u << 7)
 
 /*
  * Leaf 6 (0x40000x05)
-- 
2.50.1



Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 15:26:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 15:26:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088824.1446615 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up7Ay-0007xV-Ij; Thu, 21 Aug 2025 15:26:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088824.1446615; Thu, 21 Aug 2025 15:26:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up7Ay-0007uv-6K; Thu, 21 Aug 2025 15:26:04 +0000
Received: by outflank-mailman (input) for mailman id 1088824;
 Thu, 21 Aug 2025 15:26:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=eVxf=3B=bounce.vates.tech=bounce-md_30504962.68a73a87.v1-d8fda27edc9d4cb49aff6b07b7f2a894@srs-se1.protection.inumbo.net>)
 id 1up7Aw-0005na-D0
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 15:26:02 +0000
Received: from mail137-3.atl71.mandrillapp.com
 (mail137-3.atl71.mandrillapp.com [198.2.137.3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 24540d96-7ea3-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 17:26:00 +0200 (CEST)
Received: from pmta07.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail137-3.atl71.mandrillapp.com (Mailchimp) with ESMTP id 4c76bW5MwRzBsW3G7
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 15:25:59 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 d8fda27edc9d4cb49aff6b07b7f2a894; Thu, 21 Aug 2025 15: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>
X-Inumbo-ID: 24540d96-7ea3-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1755789959; x=1756059959;
	bh=dB5KCjXLMLA/zGiXspyIEC0oMRY7D9rqpGbR0gjZJDU=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=MUdVl9RX3BPRg4F5DxnVIsZNFSEaQBbEEhIMPvXWcuHCWUnudTpppPOql4Yv5Cvs8
	 oNN5Ji2KNStP1l61idT5LzE88K4/ow2ivY4Pox1dv3pxjZlqGtY0epL7MrEJFqlLql
	 QK/Pt95Gr4llt7k/2uPBWqtB/F/0IZsTI0D8ExOjCDWCS+pTtbUsoMjPlzoDpHSLxG
	 QPCcw+Gy1/AZsvw5Fz18mN3SJebijS69n3yd5plGDzSX7Tu6R7ogAAwX91jMy4RcWa
	 5W68AXjUpeHb01IgvoNz6VngOJtAKB9grJh8JOSRrMWd4TWhRwOhK20xriSCoyQSZO
	 NEYgdYkuTZYyA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1755789959; x=1756050459; i=teddy.astie@vates.tech;
	bh=dB5KCjXLMLA/zGiXspyIEC0oMRY7D9rqpGbR0gjZJDU=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=q9vcWxZv40nZ467ibqaYzqkbfJSn49OCUiqGHAEBVRAgmua6N5qWjRb0LfzZj7yUH
	 gXPKxuKH0aeUHXBha+IES+04VmWhHVSaDSgjRCLwwrA55Ww40YShZVkvcA2ilhvQ0q
	 n/UbW5m4oDkFTlJxt6ZBtNL3GmGE1QNq2TKGj8kLx/unU1OaWtAc4hpAGPr4JMC0zn
	 9/qDXXs5eO3GdbLszazbU2ihy2GPxa4E7YvRdjQZlKf/1d1YmIVeTVXVAfy7W+PDrO
	 6Qz9S+W6ZsVgQcF/8V5evs02447CXg4Pu5RxMElfwQW1Hq8y6WEaSThULPZ3Jcd3Mx
	 LC/RZ5JBT5/ug==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20PATCH=209/9]=20tools:=20Introduce=20abi-tool?=
X-Mailer: git-send-email 2.50.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1755789958067
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Jan Beulich" <jbeulich@suse.com>, "Julien Grall" <julien@xen.org>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Stefano Stabellini" <sstabellini@kernel.org>
Message-Id: <20b01deb2f53351103fce2e36a586a6a996a841b.1755785258.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1755785258.git.teddy.astie@vates.tech>
References: <cover.1755785258.git.teddy.astie@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.d8fda27edc9d4cb49aff6b07b7f2a894?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250821:md
Date: Thu, 21 Aug 2025 15:25:59 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

abi-tool is a small Rust tool that is able to parse ABI yaml
files and generate C stubs for performing hypercalls.

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
Usage :
./abi-tool < abi.yaml  > abi.h
---
 xen/tools/abi-tool/.gitignore    |   1 +
 xen/tools/abi-tool/Cargo.lock    | 145 ++++++++++++++++++++++++++
 xen/tools/abi-tool/Cargo.toml    |  11 ++
 xen/tools/abi-tool/src/abi.rs    |  23 ++++
 xen/tools/abi-tool/src/c_lang.rs | 173 +++++++++++++++++++++++++++++++
 xen/tools/abi-tool/src/main.rs   |  17 +++
 xen/tools/abi-tool/src/spec.rs   |  61 +++++++++++
 7 files changed, 431 insertions(+)
 create mode 100644 xen/tools/abi-tool/.gitignore
 create mode 100644 xen/tools/abi-tool/Cargo.lock
 create mode 100644 xen/tools/abi-tool/Cargo.toml
 create mode 100644 xen/tools/abi-tool/src/abi.rs
 create mode 100644 xen/tools/abi-tool/src/c_lang.rs
 create mode 100644 xen/tools/abi-tool/src/main.rs
 create mode 100644 xen/tools/abi-tool/src/spec.rs

diff --git a/xen/tools/abi-tool/.gitignore b/xen/tools/abi-tool/.gitignore
new file mode 100644
index 0000000000..1de565933b
--- /dev/null
+++ b/xen/tools/abi-tool/.gitignore
@@ -0,0 +1 @@
+target
\ No newline at end of file
diff --git a/xen/tools/abi-tool/Cargo.lock b/xen/tools/abi-tool/Cargo.lock
new file mode 100644
index 0000000000..056a68f20f
--- /dev/null
+++ b/xen/tools/abi-tool/Cargo.lock
@@ -0,0 +1,145 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 4
+
+[[package]]
+name = "abi-tool"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "bimap",
+ "indexmap",
+ "serde",
+ "serde_yaml",
+]
+
+[[package]]
+name = "anyhow"
+version = "1.0.98"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487"
+
+[[package]]
+name = "arbitrary"
+version = "1.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223"
+
+[[package]]
+name = "bimap"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "230c5f1ca6a325a32553f8640d31ac9b49f2411e901e427570154868b46da4f7"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "equivalent"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
+
+[[package]]
+name = "hashbrown"
+version = "0.15.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5"
+
+[[package]]
+name = "indexmap"
+version = "2.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661"
+dependencies = [
+ "arbitrary",
+ "equivalent",
+ "hashbrown",
+ "serde",
+]
+
+[[package]]
+name = "itoa"
+version = "1.0.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.95"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "ryu"
+version = "1.0.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f"
+
+[[package]]
+name = "serde"
+version = "1.0.219"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.219"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "serde_yaml"
+version = "0.9.34+deprecated"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47"
+dependencies = [
+ "indexmap",
+ "itoa",
+ "ryu",
+ "serde",
+ "unsafe-libyaml",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.104"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512"
+
+[[package]]
+name = "unsafe-libyaml"
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861"
diff --git a/xen/tools/abi-tool/Cargo.toml b/xen/tools/abi-tool/Cargo.toml
new file mode 100644
index 0000000000..eee8ad18a9
--- /dev/null
+++ b/xen/tools/abi-tool/Cargo.toml
@@ -0,0 +1,11 @@
+[package]
+name = "abi-tool"
+version = "0.1.0"
+edition = "2024"
+
+[dependencies]
+anyhow = "1.0.98"
+bimap = { version = "0.6.3", features = ["serde"] }
+indexmap = { version = "2.10.0", features = ["arbitrary", "serde"] }
+serde = { version = "1.0.219", features = ["derive"] }
+serde_yaml = "0.9.34"
diff --git a/xen/tools/abi-tool/src/abi.rs b/xen/tools/abi-tool/src/abi.rs
new file mode 100644
index 0000000000..9ca427e821
--- /dev/null
+++ b/xen/tools/abi-tool/src/abi.rs
@@ -0,0 +1,23 @@
+pub trait XenABI {
+    fn get_register_name(id: u8) -> &'static str;
+}
+
+pub struct Amd64ABI;
+
+impl XenABI for Amd64ABI {
+    fn get_register_name(id: u8) -> &'static str {
+        match id {
+            0 => "rax",
+            1 => "rdi",
+            2 => "rsi",
+            3 => "r8",
+            4 => "r9",
+            5 => "r10",
+            6 => "r11",
+            7 => "r12",
+            8 => "r13",
+
+            _ => panic!("Unexpected register id: {id}"),
+        }
+    }
+}
diff --git a/xen/tools/abi-tool/src/c_lang.rs b/xen/tools/abi-tool/src/c_lang.rs
new file mode 100644
index 0000000000..20389d305d
--- /dev/null
+++ b/xen/tools/abi-tool/src/c_lang.rs
@@ -0,0 +1,173 @@
+use std::{collections::HashMap, fmt::Write};
+
+use crate::{
+    abi::{Amd64ABI, XenABI},
+    spec::{AbiSpec, CType, HypercallOp},
+};
+
+fn emit_register_variable<ABI: XenABI>(
+    w: &mut impl Write,
+    id: u8,
+    value: Option<&str>,
+) -> anyhow::Result<()> {
+    write!(
+        w,
+        "    register {ctype} reg{id} __asm__(\"{reg}\")",
+        ctype = if id == 0 { "long" } else { "uint64_t" },
+        reg = ABI::get_register_name(id)
+    )?;
+    if let Some(value) = value {
+        write!(w, " = {value}")?;
+    }
+    writeln!(w, ";")?;
+
+    Ok(())
+}
+
+fn emit_hypercall<ABI: XenABI>(
+    w: &mut impl Write,
+    op: &HypercallOp,
+    ident: usize,
+    instruction: &str,
+) -> anyhow::Result<()> {
+    let start = format!("{:ident$}__asm__ volatile (\"{instruction}\" ", "");
+    let pad = start.len();
+
+    /* All the exclusive inputs. */
+    let reg_input = op
+        .input
+        .right_values()
+        .filter(|&input| !op.output.contains_right(input))
+        .map(|input| format!("\"r\"(reg{input})"))
+        .collect::<Box<[_]>>()
+        .join(", ");
+
+    /* Outputs that are also inputs are transformed into +r, the rest is =r */
+    let reg_output = op
+        .output
+        .right_values()
+        .chain(&[0]) /* 0 is always a input/output */
+        .map(|output| {
+            if *output == 0 || op.input.contains_right(output) {
+                format!("\"+r\"(reg{output})")
+            } else {
+                format!("\"=r\"(reg{output})")
+            }
+        })
+        .collect::<Box<[_]>>()
+        .join(", ");
+
+    writeln!(w, "{:ident$}{start}: {reg_output}", "")?;
+    writeln!(w, "{:ident$}{:pad$}: {reg_input}", "", "")?;
+    writeln!(w, "{:ident$}{:pad$}: \"memory\");", "", "")?;
+
+    Ok(())
+}
+
+fn generate_hypercall_function(
+    w: &mut impl Write,
+    hypercall_name: &str,
+    op: &HypercallOp,
+    function_name: &str,
+    subop_index: Option<u32>,
+) -> anyhow::Result<()> {
+    writeln!(w, "static inline")?;
+
+    eprintln!("Processing {hypercall_name}.{function_name}");
+    let annotations = op.c_lang.clone().unwrap_or_default();
+
+    assert!(
+        annotations.cstruct.is_some() || op.output.is_empty(),
+        "struct-less wrappers doesn't allow outputs, please use a C structure"
+    );
+
+    // Match each input register with its C value.
+    let input_map: HashMap<u8, String> = op
+        .input
+        .iter()
+        .map(|(name, &id)| {
+            if annotations.params.contains_key(name) {
+                (id, name.clone())
+            } else {
+                // Struct may have a custom mapping
+                let field = annotations.mapping.get(name).unwrap_or(name);
+
+                (id, format!("param->{field}"))
+            }
+        })
+        .collect();
+
+    write!(w, "long {function_name}(enum xen_hypercall_vendor vendor")?;
+    let pad = 6 + function_name.len();
+
+    if let Some(cstruct) = &annotations.cstruct {
+        write!(w, ",\n{:pad$}struct {cstruct} *param", "",)?;
+    }
+
+    for (name, CType(ctype)) in &annotations.params {
+        write!(w, ",\n{:pad$}{ctype} {name}", "",)?;
+    }
+
+    writeln!(w, ")")?;
+
+    writeln!(w, "{{")?;
+
+    for id in op.used_registers() {
+        // If it is a input, we need to set it here.
+        let value = match (id, subop_index) {
+            /* Hypercall index */
+            (0, _) => Some(format!(
+                "__HYPERVISOR_FASTABI_MASK | __HYPERVISOR_{hypercall_name}_op"
+            )),
+            /* Sub-operation index */
+            (1, Some(subop_index)) => Some(format!("{subop_index}")),
+            /* Other input parameter */
+            (id, _) => input_map.get(&id).cloned(),
+        };
+
+        emit_register_variable::<Amd64ABI>(w, id, value.as_deref())?;
+    }
+    writeln!(w)?;
+
+    writeln!(w, "    if ( vendor == Intel )")?;
+    emit_hypercall::<Amd64ABI>(w, op, 4, "vmcall")?;
+    writeln!(w, "    else")?;
+    emit_hypercall::<Amd64ABI>(w, op, 4, "vmmcall")?;
+
+    writeln!(w, "")?;
+
+    for (field, output) in &op.output {
+        let field = annotations.mapping.get(field).unwrap_or(field);
+
+        writeln!(w, "    param->{field} = reg{output};")?;
+    }
+
+    writeln!(w, "    return reg0;")?;
+
+    writeln!(w, "}}")?;
+
+    Ok(())
+}
+
+pub fn generate_code(w: &mut impl Write, spec: AbiSpec) -> anyhow::Result<()> {
+    writeln!(w, "/* SPDX-License-Identifier: MIT */")?;
+    writeln!(w, "/* AUTOGENERATED. DO NOT MODIFY */")?;
+    writeln!(w)?;
+
+    if let Some(op) = spec.direct {
+        let function_name = ["xen_hypercall", &spec.name].join("_");
+
+        generate_hypercall_function(w, &spec.name, &op, &function_name, None)?;
+        writeln!(w)?;
+    }
+
+    for (name, mut subop) in spec.subops {
+        let function_name = ["xen_hypercall", &spec.name, &name].join("_");
+        subop.op.input.insert("subop_index".to_string(), 1);
+
+        generate_hypercall_function(w, &spec.name, &subop.op, &function_name, Some(subop.index))?;
+        writeln!(w)?;
+    }
+
+    Ok(())
+}
diff --git a/xen/tools/abi-tool/src/main.rs b/xen/tools/abi-tool/src/main.rs
new file mode 100644
index 0000000000..dda85c24d5
--- /dev/null
+++ b/xen/tools/abi-tool/src/main.rs
@@ -0,0 +1,17 @@
+use std::io::{Read, stdin};
+
+pub mod abi;
+pub mod c_lang;
+pub mod spec;
+
+fn main() {
+    let mut buffer = String::new();
+    stdin().read_to_string(&mut buffer).unwrap();
+
+    let abi_spec: spec::AbiSpec = serde_yaml::from_str(&buffer).unwrap();
+
+    let mut buffer = String::new();
+
+    c_lang::generate_code(&mut buffer, abi_spec).unwrap();
+    print!("{buffer}");
+}
diff --git a/xen/tools/abi-tool/src/spec.rs b/xen/tools/abi-tool/src/spec.rs
new file mode 100644
index 0000000000..e5fb2c85d2
--- /dev/null
+++ b/xen/tools/abi-tool/src/spec.rs
@@ -0,0 +1,61 @@
+use std::collections::{BTreeSet, HashMap};
+
+use bimap::BiBTreeMap;
+use indexmap::IndexMap; /* use indexmap to keep consistent ordering */
+use serde::Deserialize;
+
+fn default_ctype() -> String {
+    "uint64_t".into()
+}
+
+#[derive(Clone, Debug, Deserialize, PartialEq, Eq, Hash)]
+pub struct CType(#[serde(default = "default_ctype")] pub String);
+
+#[derive(Clone, Debug, Default, Deserialize)]
+pub struct CAnnotations {
+    #[serde(rename = "struct")]
+    pub cstruct: Option<String>,
+    #[serde(default)]
+    pub mapping: HashMap<String, String>,
+    #[serde(default)]
+    pub params: HashMap<String, CType>,
+}
+
+#[derive(Debug, Deserialize)]
+pub struct HypercallOp {
+    #[serde(default)]
+    pub input: BiBTreeMap<String, u8>,
+    #[serde(default)]
+    pub output: BiBTreeMap<String, u8>,
+
+    pub c_lang: Option<CAnnotations>,
+}
+
+impl HypercallOp {
+    pub fn used_registers(&self) -> BTreeSet<u8> {
+        self.input
+            .right_values()
+            .chain(self.output.right_values())
+            .chain(&[0])
+            .cloned()
+            .collect()
+    }
+}
+
+#[derive(Debug, Deserialize)]
+pub struct HypercallSubOp {
+    pub index: u32,
+    #[serde(flatten)]
+    pub op: HypercallOp,
+}
+
+#[derive(Debug, Deserialize)]
+pub struct AbiSpec {
+    pub hypercall_index: u32,
+    pub name: String,
+
+    pub direct: Option<HypercallOp>,
+
+    #[serde(default)]
+    pub subops: IndexMap<String, HypercallSubOp>,
+}
-- 
2.50.1



Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 15:39:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 15:39:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088929.1446631 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up7Nn-000524-Po; Thu, 21 Aug 2025 15:39:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088929.1446631; Thu, 21 Aug 2025 15:39: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 1up7Nn-00051x-N1; Thu, 21 Aug 2025 15:39:19 +0000
Received: by outflank-mailman (input) for mailman id 1088929;
 Thu, 21 Aug 2025 15:39:18 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6kfR=3B=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1up7Nl-00051o-Qy
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 15:39:17 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fec18277-7ea4-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 17:39:16 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by AM7PR03MB6388.eurprd03.prod.outlook.com
 (2603:10a6:20b:1bb::14) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.13; Thu, 21 Aug
 2025 15:39:14 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9052.013; Thu, 21 Aug 2025
 15:39: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>
X-Inumbo-ID: fec18277-7ea4-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=TghoyxL80ruRUhXRAMXyAwsJ3CecPf08NT5xxobhvGu4oBII3NfqaL2LXlGBfkKZd6l1OdA/B8tLFfFQWhwqs+YEukhX93UFWcDDqCXVZGWTpQogd37T8M8GWPygnnBVZ3B4M44z0am/BoIJ3DJIoOyYNyxRPnBin9lfR97V7ui4sz5lfr4blUxNLN42EhgXa0SWNbj/8mxVSxbPRplOA8aJoIcF3skZJGlWt1+Iisww4YEYnCjV2kILZJRgSGNwldVUOw7ZcE5x8eOOY86Wx0Ul4vKv46n4N71aa+jhbkieWPI2mUrh3ABnDUyDbRN+haGz+9WfcKby7bMfPpEbUg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=OatQn6DMrJkZl2qUDT5uXi2BRusKkpkoxdhyNtqTNtk=;
 b=KaEuxiFsP0vUt6cZfp/7E+lBV3zyFB6gQwsm80FoHd60BRU5Xod4rjgOX5GYum8OdFIbeoUh9eQuVYLxEAY1vKMmgcMwmM6DOyF6J0FI5yxOmxPl8nsoWK0MrFtOoZbmP5zAhdvsO0/cZiz0ehbBjuyNHqRpr/CwrQO9mf1H7rKOSvlD8F7B2VhWUSfd4EkzIf+lS7bPJjKJJhu9OJQ3gXgdDhM4ODqbyGY4IlMzDaSZt9scyKELe6Y1O37IIoQC3UXE6/SXMPM3Xbx2LUt9s+IgoIHwCwcPLQko/2LNjZqXxSIt6cYuP6hpJGTOFNmm+XYHua0vTCvhtmrnoYlA7Q==
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=OatQn6DMrJkZl2qUDT5uXi2BRusKkpkoxdhyNtqTNtk=;
 b=ZamSic4J/VOOJ1bZcKc1qHsYMFAfrgl20biiKNGQdByyxtNBHntOkGUZQAWv/l1NBgmr843E9r+OP69FPZArWCB2sCTAe/3K2LPRhrDXHOP+Vi/al1bb+o7irTuH9OizSrvUNOuhTck7UZogBSFLMipgagnlnDAAe9j9NfoFJkaOEMWGAQAYg/HVTX3YyDUKpMwmEYcaW6WqQSmBRxaEmJ7cM5BBhkpMIDR99fiR4zOIRKyikAHqUcr3qsLoG0f1GnzPwcL6Xb9pZ3vDJFC9KHB28cTL9WR7/ofWLJroWkZP1bzZR9ryL3eKrEf8asHNco0Q+2LfPjQIHTA/gzgbcQ==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v2 02/10] xen/arm: gic: implement helper functions for
 INTID checks
Thread-Topic: [PATCH v2 02/10] xen/arm: gic: implement helper functions for
 INTID checks
Thread-Index: AQHcB5d7oc7jtkgiGki3l7l8xwTnbg==
Date: Thu, 21 Aug 2025 15:39:13 +0000
Message-ID: <877bywfzvj.fsf@epam.com>
References:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
	<51a017aeab39af14ba40ab76b56f317270c7afaa.1754568795.git.leonid_komarianskyi@epam.com>
In-Reply-To:
 <51a017aeab39af14ba40ab76b56f317270c7afaa.1754568795.git.leonid_komarianskyi@epam.com>
	(Leonid Komarianskyi's message of "Thu, 7 Aug 2025 12:33:30 +0000")
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_|AM7PR03MB6388:EE_
x-ms-office365-filtering-correlation-id: 9e6aa30e-09d0-4249-fa13-08dde0c8e197
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|42112799006|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?OydozJiQgJccNa3wSg/5M3Xl6VOSs624FNBpyLwdxVYl2fhiq9B81bYwL7?=
 =?iso-8859-1?Q?AOtVhn7dHnOwWHsePmFomcXPn6QbP3CKdCc1LZffg72ILUYZalBXK+s0M8?=
 =?iso-8859-1?Q?GyntaEk5XzG3t60PBeLJoFZv5k3vE7vj/VbmtfAdA72NpJ2CNY9ii7j/q6?=
 =?iso-8859-1?Q?Od+U6e5kBwVxWZhB6ELWYEjePm/FbRMQL1FKCIdS2a6Ssfjzw6YpRk+cu9?=
 =?iso-8859-1?Q?6DEnZOTm3HVKke2AorOYP0ECCduCc55uG+38OItWIconj5L9zPGUEnePQW?=
 =?iso-8859-1?Q?TJrOQm78VWSArEq0gT63Ap2Nj3AyiXo/Hl2X99VXV9NFwdDVK2xUDRtcXp?=
 =?iso-8859-1?Q?HTyrKEytf9Cd97BbgLSbgVwsirXWdzs8Er/QA+bQYRLA+M+OFH/emoTcWV?=
 =?iso-8859-1?Q?aIltsMEGAabHTPGnjnIMwH7+9lZO5R1zz3RKfsa8+KJ2b8WetVAhU/TasT?=
 =?iso-8859-1?Q?wtypOPqD/mjLbDmBXIuJGGx5tRp424l4UddKpyblUGYlIilDgsr5rOPjrN?=
 =?iso-8859-1?Q?mZg8oRX5wr1G7ZWFmZO4GEzcA43cTagXjnYICiCfKAOsY19rt/ewUthIHG?=
 =?iso-8859-1?Q?EzTAwrZ4bmsdD62Q+ia4e6/i6Z66kZ8DnFpLLxpU5JNXVeKdn3zhPwZ6JC?=
 =?iso-8859-1?Q?0r1no9AUWYgrvvrqiiMb85PYl5ObZQuFpYy37hyO8JLE7sf9crdRXKsPhy?=
 =?iso-8859-1?Q?TEH1kLSLgWEiweB175j+foLCG71IKh0aI+xYUJZ9rB3uWlUOFCr5Blxk9v?=
 =?iso-8859-1?Q?1KZwlYTwkOhx9p7Saz1HzQF5l2hIJmv07PwxRwwSzdGCI79DixgMpfHkfv?=
 =?iso-8859-1?Q?aafClZ1iad6BzOl1FqQmSbaKlmiD27wVN36drqKUpQwOPXwUCXaz+OBCEY?=
 =?iso-8859-1?Q?uADJKgovwjMzObJlvijIRcvHhtxSMAf5zH9i5G5LKR7TK1GyAo32Fs5f7d?=
 =?iso-8859-1?Q?D7NlxD30svMnFnjzoLtikRyRcnZ9NLxCvIjs5ie0guakZO8a4/6kw5AGqc?=
 =?iso-8859-1?Q?umWZbnWZFx22xesMPqOY5ENQtKa3F7pSKHrNetziiS19D7BQ++ByaB0CfN?=
 =?iso-8859-1?Q?NSCFpmqedHn1fkNILAK+n4GyUSO9AJmq5GdGtpNR3CovsQE1VEeJnBROrH?=
 =?iso-8859-1?Q?Zim8mAgxG1ODgrHxeU9edIsYZs9pvPgcS6u7BOVQnckb27iGa+BSPh2Ckc?=
 =?iso-8859-1?Q?SravhgLRLYEIMX0TRUlDia8NFaJq/uVa1qBj/Xfqj2ZJvaCzLdcXDVd18B?=
 =?iso-8859-1?Q?Q046N1xppZ8OFXO8kEHZvDbL2plZ/PB9Mz8SjvB0lU1X9KjwWiMeIP4oG2?=
 =?iso-8859-1?Q?RJeNrtalnb6rEehsdRJsUeioat4CQuCbBAwX82ZmgIBxQkThWt/YvKYkWW?=
 =?iso-8859-1?Q?Y7+IgRsOoXudFjecWCwntDtjPDlTOTuvx37w0WncSk7W1dN6zGD8CHPS4K?=
 =?iso-8859-1?Q?rNIlPTKB/VAwqRueVQcOhSDpY6YpEm5pK9zbiJFxYQSCps3lVXYnBumDVD?=
 =?iso-8859-1?Q?uxJjIxW8Iy8J0Wo0qeBtTm76BED13hmYH0+Ey7+XYRog=3D=3D?=
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)(42112799006)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?UWc5KojatYNw/d8lLvmi4O7PElCEyuLx/RZoXJOBgFM0257lgU7+jDMZjK?=
 =?iso-8859-1?Q?D3MM8caUx1OG0BsCyWg9Z6d+AuNEK/RPwS7OWqPK3AjjTtOQH2pL8ofF3Q?=
 =?iso-8859-1?Q?jYwAVQMLGzC7CRSZR2nTSCAbIhQO8Y7ZFbwH0EkDz7MajsNblvlPt0DWuN?=
 =?iso-8859-1?Q?meUwUqAQ7JxoWU6H5t/B4wMQlaNLqPNTm6QSsyj6WnwenlIXp955zsG+xo?=
 =?iso-8859-1?Q?q0m4GwRA98vZW1dMhFMxV05GD4epxotWDGBFDMAak+ANI1DPV4DaI6Wp9x?=
 =?iso-8859-1?Q?fPXnc5bfOt7Xb8b2BZepC08wl1vrTveXU7x353I2gk4qwDNa1byYcR5pHJ?=
 =?iso-8859-1?Q?BbHQN2hsOunEnaEBvsaACcwLyh69T6rCjjuTfb7KkDgM5TTO/8OIbT6/nc?=
 =?iso-8859-1?Q?ac9OjF+vcUokrlNunQl0pgF2o87rhNKbE82hVH7qXyrMQCPMJNiHpPqI/3?=
 =?iso-8859-1?Q?ughCtQQqk36R/WY2prkoZs9/MhU7NqdsCezKCrpHFRq/iqdZDxPcZ3d2/B?=
 =?iso-8859-1?Q?7HwPMcRCApp3Wi0Ztiz9Dt8OUVIJCKdKqyssXJP352VHwz5Ea9L4XQ57ZH?=
 =?iso-8859-1?Q?/zucDSo+mlTC7rz93EnUsx5jyho+mmgpQ2j7Ud67cHCIUlYTBJDyf6xJju?=
 =?iso-8859-1?Q?AX08Vy1blYjXBUh+CsGpgqgERhEkVLPCLg7zZFuaWavAi+HQ2cP+Pj0dSG?=
 =?iso-8859-1?Q?NQD15h7VJB1InmxH0WCbiOD/NVoGLG+QujTOV86Ro9vDc3jYvyWmgfgFJH?=
 =?iso-8859-1?Q?oGQz/Ek0g10ypFyeQeo1Z4AiY+X9Kzc41WL1kuBhwPZI5dXMFhtJwidQrn?=
 =?iso-8859-1?Q?qSOOthbm8wzIE5TNpvNcXepF4vnKwrNY6fHQXcpgVU7g8iDdngSfqdXFkM?=
 =?iso-8859-1?Q?XZmXGZFWZRvQWJ6sjc80+YamQiTUZOXmS8eyNAgcKawwLIwfdtiEHJTjLX?=
 =?iso-8859-1?Q?ijWXIBJY9369FzIxtdH2u8fW2fW3v1VPg2WnbBeylZNIEZR3qpMCaSb+IQ?=
 =?iso-8859-1?Q?iT3Pdv7wCtPpSs2L3Yvsl1ocwiTA0kWmZvu88r5UHEheLQ3OCW2Ckdi3ZZ?=
 =?iso-8859-1?Q?uJKYe/iKAbOedQ/dnBv/CzU/M+ZHLSBmf1z6Y3kX2IpkXmD7gukpJAc3fM?=
 =?iso-8859-1?Q?bwwWOKg0TEimkIrXwbx7bGRWAFhGIwLbFCW5LXhetBXTwPOlp/aJiT73ef?=
 =?iso-8859-1?Q?bLJOlZqyRzF8CL4ebhrvckBi9uevSqKXNrQIPuz0fvkun40Bvse9Y0oAW7?=
 =?iso-8859-1?Q?ej1siBtsvPjCj65/ISLnOffKfOJYMDCHDVw549JNA4ZsAwEoAu5FZQbpNN?=
 =?iso-8859-1?Q?8ZTr916i8mFMDLiM+sVrraRrN8C8bKIqu/ENtDue10esiW1UQ9MjG9Qthm?=
 =?iso-8859-1?Q?vnV9RVrODOACSbALxzKvEIztdC2LJkyGHDSViIIZ5oo/IyDK7hrzFa+qlE?=
 =?iso-8859-1?Q?CGUMa1QgCu3G5SpP6rCVBToH8pfkJZSjcOyjPSHJDhLWTcbcDPIYJ5mjc/?=
 =?iso-8859-1?Q?mTx+PGBNtKrZ6+lDVMjEZ10ht3JcB6li+ZCTqICp0yV7kuaeGgoTwhevsU?=
 =?iso-8859-1?Q?4wmuXdCa/x3LIVF6J4qV3KGct2S7o3CsKeNUb7iz5EDmQ+ZpCw8OzLVz4I?=
 =?iso-8859-1?Q?r5Bh+O7O6422wh6LRuJghI/kTQ8RZh9MDjFVpm+LnijsYXMeuTTRwuXg?=
 =?iso-8859-1?Q?=3D=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: 9e6aa30e-09d0-4249-fa13-08dde0c8e197
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Aug 2025 15:39:13.9263
 (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: QNvBoVAaelmX8ZDMmBB0KAmurQPXb8yCcozfF+OuZMBdhM5LQqWR5mBG2jukdFex5pfo7jyacjxV7kNG0eoNaAg6A+otr09b2ilYPJrPREA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR03MB6388


Hi Leonid,

Leonid Komarianskyi <Leonid_Komarianskyi@epam.com> writes:

> Introduced two new helper functions: gic_is_valid_irq and
> gic_is_shared_irq. The first function helps determine whether an IRQ
> number is less than the number of lines supported by hardware. The
> second function additionally checks if the IRQ number falls within the
> SPI range. Also, updated the appropriate checks to use these new helper
> functions.
>
> The current checks for the real GIC are very similar to those for the
> vGIC but serve a different purpose. For GIC-related code, the interrupt
> numbers should be validated based on whether the hardware can operate
> with such interrupts. On the other hand, for the vGIC, the indexes must
> also be verified to ensure they are available for a specific domain. The
> first reason for introducing these helper functions is to avoid
> potential confusion with vGIC-related checks. The second reason is to
> consolidate similar code into separate functions, which can be more
> easily extended by additional conditions, e.g., when implementing
> extended SPI interrupts.
>
> The changes, which replace open-coded checks with the use of the new
> helper functions, do not introduce any functional changes, as the helper
> functions follow the current IRQ index verification logic.
>
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
>
> ---
> Changes in V2:
> - introduced this patch
> ---
>  xen/arch/arm/gic.c             | 2 +-
>  xen/arch/arm/include/asm/gic.h | 9 +++++++++
>  xen/arch/arm/irq.c             | 2 +-
>  3 files changed, 11 insertions(+), 2 deletions(-)
>
> diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
> index e80fe0ca24..eb0346a898 100644
> --- a/xen/arch/arm/gic.c
> +++ b/xen/arch/arm/gic.c
> @@ -111,7 +111,7 @@ static void gic_set_irq_priority(struct irq_desc *des=
c, unsigned int priority)
>  void gic_route_irq_to_xen(struct irq_desc *desc, unsigned int priority)
>  {
>      ASSERT(priority <=3D 0xff);     /* Only 8 bits of priority */
> -    ASSERT(desc->irq < gic_number_lines());/* Can't route interrupts tha=
t don't exist */
> +    ASSERT(gic_is_valid_irq(desc->irq));/* Can't route interrupts that d=
on't exist */
>      ASSERT(test_bit(_IRQ_DISABLED, &desc->status));
>      ASSERT(spin_is_locked(&desc->lock));
> =20
> diff --git a/xen/arch/arm/include/asm/gic.h b/xen/arch/arm/include/asm/gi=
c.h
> index 541f0eeb80..ac0b7b783e 100644
> --- a/xen/arch/arm/include/asm/gic.h
> +++ b/xen/arch/arm/include/asm/gic.h
> @@ -306,6 +306,15 @@ extern void gic_dump_vgic_info(struct vcpu *v);
> =20
>  /* Number of interrupt lines */
>  extern unsigned int gic_number_lines(void);
> +static inline bool gic_is_valid_irq(unsigned int irq)

We need to do something about naming, because this function completely
ignores presence of LPIs. What I mean, that it will return "false" for
any LPI, while you can't argue that LPI is a valid interrupt :)
I understand that this is expected behavior by current callers, but the
function name is misleading.

Name like "gic_is_valid_non_lpi()" seems to mouthful, but it is the best
I can come up with.

> +{
> +    return irq < gic_number_lines();
> +}
> +
> +static inline bool gic_is_shared_irq(unsigned int irq)
> +{
> +    return (irq >=3D NR_LOCAL_IRQS && gic_is_valid_irq(irq));

Again, because of misleading name of gic_is_valid_irq() it may seem that
this function will return "true" for LPIs as well...

> +}
> =20
>  /* IRQ translation function for the device tree */
>  int gic_irq_xlate(const u32 *intspec, unsigned int intsize,
> diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
> index 03fbb90c6c..12c70d02cc 100644
> --- a/xen/arch/arm/irq.c
> +++ b/xen/arch/arm/irq.c
> @@ -415,7 +415,7 @@ err:
>  bool is_assignable_irq(unsigned int irq)
>  {
>      /* For now, we can only route SPIs to the guest */
> -    return (irq >=3D NR_LOCAL_IRQS) && (irq < gic_number_lines());
> +    return gic_is_shared_irq(irq);
>  }
> =20
>  /*

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 15:46:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 15:46:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088945.1446640 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up7V0-0007Kw-Jo; Thu, 21 Aug 2025 15:46:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088945.1446640; Thu, 21 Aug 2025 15:46: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 1up7V0-0007Kp-HB; Thu, 21 Aug 2025 15:46:46 +0000
Received: by outflank-mailman (input) for mailman id 1088945;
 Thu, 21 Aug 2025 15:46:45 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6kfR=3B=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1up7Uz-0007Kj-Hw
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 15:46:45 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 09beaebc-7ea6-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 17:46:44 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by DB9PR03MB8797.eurprd03.prod.outlook.com
 (2603:10a6:10:3c6::6) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.13; Thu, 21 Aug
 2025 15:46:39 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9052.013; Thu, 21 Aug 2025
 15:46: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>
X-Inumbo-ID: 09beaebc-7ea6-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jH5LTkBJTy1K/y18zCF3culeMq9Oyd9Yidm78AVZf5oN5yHx/XJ0Eg1EThKF5dEfMjZHIxn/GJePtluGk0zm2dykr0hVDZTDTTnEwmtGpc2yA+/ubbC2zMsWGx4N9WAX6VT7+7K2PsbyuhvCJQdebiujMC2F5DybSKeGka1pltgA4xeKJjLeQTQAbjkdDNJdPyuCFpLJ9ELDdz/Mw7OGzipIdV+wEP0nqDv5cSpI1L/+4CbTZT+kXwkb9LA+Hz176BQSi3WoW9/knH59ei3WMkthb6lcXLmfxAr7jBAfagOJfRKFQ8jBCDHauNClioOEtfKGA15dzNaFviUlX0JeiA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=9/fKu14ZcR5d901d4vqrlEbELL+LJ4Mxf8Sn8hDYcTw=;
 b=vyVlIaQiOedYWGf2w7aSSrvXY8qVwnvN5JMC9Kh10eLueaaWrlqLH6BfNqHvSiYcvJiU12b2e/sW22hdqvnXRb15SqpRwXLJlfnSCy8SN3ltElUaSfQ2D+Bb58PRkXIlqBnTPx9PI4H6HXk/O5ifhW8OkMHnEETDq19t9tRV/2EbxL61NRKEjzxf9cSxmb/RJgK7c8P4LQUEeBRrMdzt0uVJ7etKQt8/u6JOkFes3fR5XWhS6yo7orGTa/1WzreP3UJD18HV41btzn7EQKrylJ8AxZbkX1tgKgvdCdw9LqGLyRLqTv4++1AsgJRKk9bLFsYln1hYHtk/4Rmx1nOHCA==
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=9/fKu14ZcR5d901d4vqrlEbELL+LJ4Mxf8Sn8hDYcTw=;
 b=TCns9YbHsb1SUR+XtsvoX99itb41sx6Ty+idX6HHgbN+bgP8kQc0CvTIbLK+g0HBsFlpYm/xte5pN7YyqGlymO/r/he4PGMv+lQTIuVe6fKFz4O1flYM+vLT5coeiyWMZ+CxAhD3A7Dk/Xwtgoe5WUo/RR90zghIdiobnjPL5ftXOrDXm8+0fo5E1/en1p8HSwCSGQ6R7voFm5KVnuJCA+W5rqo7fmta8aLi2TP8MFzkVMtCFvdOBAPLpPA9RVVsqiJVzzh8FMTxIJvrt7jR4AJbllnWnkdEvwlMpL1Ya0HQhleSCuZI02dLrDTxKX7D2c0LwT29v7gEN/kqheRrPg==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v2 03/10] xen/arm: vgic: implement helper functions for
 virq checks
Thread-Topic: [PATCH v2 03/10] xen/arm: vgic: implement helper functions for
 virq checks
Thread-Index: AQHcB5d76MRh/Swq2EGu624C+G/Fbw==
Date: Thu, 21 Aug 2025 15:46:39 +0000
Message-ID: <87y0rcekyo.fsf@epam.com>
References:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
	<f029f88411e816846d13aaf33d4ef703f95d1bb8.1754568795.git.leonid_komarianskyi@epam.com>
In-Reply-To:
 <f029f88411e816846d13aaf33d4ef703f95d1bb8.1754568795.git.leonid_komarianskyi@epam.com>
	(Leonid Komarianskyi's message of "Thu, 7 Aug 2025 12:33:30 +0000")
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_|DB9PR03MB8797:EE_
x-ms-office365-filtering-correlation-id: 59f5e9a6-dd39-4d20-d42b-08dde0c9eb5b
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|42112799006|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?GrHtaVFSZuRy/UVOxu5Y5lJ4r06Qcy8JQOGTalDb0n3q09/D2G55JQr/ZX?=
 =?iso-8859-1?Q?T6umrpYIBM6E6ZtmbumbSVDtD+3ECttN5+n7uAKVnU/6abX45zvszX51jU?=
 =?iso-8859-1?Q?PrL7pVB4dZ2Iu7R4ewoiqS1lDh/8190bb9zIBIVdJMfN9kmV3FrjJ69C/M?=
 =?iso-8859-1?Q?QXGSRGVP2zdCuH1NqTxs09KATPSVVA4bNfObRH89MPjshPH6VPf2Kc1yjW?=
 =?iso-8859-1?Q?nfLQF0yWs7l11vxk7Tikz07uyloWJ8WrV0xaUEnTqK240D8B737K1Qz4PM?=
 =?iso-8859-1?Q?WTSm0pEF/2KTK1ZCVQPOyzMrSwCJQKTgzni7n1grRBcvask3tC2sHpo/tq?=
 =?iso-8859-1?Q?u60BvmS5buCWGPRTXqM+f3DK/4jO78FqiUTA4IOBfc2L5wwwWJdg++UeC8?=
 =?iso-8859-1?Q?JtsSDd42MD3/DkExYtT0VOv1iU/WVt9YBwZj/WCGv4HYEgEI6zS/xRZue6?=
 =?iso-8859-1?Q?JP2frlRxzE5oWl+TgIEv5KA7x1n+6qjubDn56+ZQbxQg8Vd4QuO5wnySwI?=
 =?iso-8859-1?Q?UYnV8quR1JuksGHf9zq7TbCBsbnNxd/krVignInVKUe8XnoH4FrP7vDYZ2?=
 =?iso-8859-1?Q?9LE2Oh83Qq7Ntvovb2XdFuw2BCP+XxjYDuOnpRo5XHzRj2MSqtQKwuNbtQ?=
 =?iso-8859-1?Q?ETUme8tIzeODyh14OZBFpvV4mzZWnE9TlqroEfcCzOrfMU6BLWszALgEqy?=
 =?iso-8859-1?Q?Z4Vxbt0P7vldLOCfTFbKrNN1sCPOrSFHJV++b2mSLX4Q6zAreo+H8dFG+3?=
 =?iso-8859-1?Q?nOryspmangPwcEd6Tkg2EAwOWdUMo1BoDrNeafG1U9wW4Z7n0He3tJUSPr?=
 =?iso-8859-1?Q?gKgE6NsgeQwjI9Uq5IyA1ba+UuhRJGgFUohy8GnRXAeoYC7wbZdvBwPoV5?=
 =?iso-8859-1?Q?oKrEYb5ZWZR9R1NRLA357RbpxxwnXiY01kGOVFBbSN5XRUAJmTbP//aIWr?=
 =?iso-8859-1?Q?pRklpXArWZMsXSxOoJK8PMgfJZUVaulfHCWOjw0xf52x5r07yHchX71Tkd?=
 =?iso-8859-1?Q?SOfFYx+n99cRLJ5D29lG3rfKKhNdUGeLCCSptej+MINia4R0iRAfzbovwk?=
 =?iso-8859-1?Q?vxOVUinaoz5tzA+fKvPNh+zWpf1J0ATnKAsbSn7WIcDd1ol15+fpEvAXpk?=
 =?iso-8859-1?Q?l1TGW+epYPGBnLCg7C2czbiqYg5/G1hqCTxFdpvdbyiM9vn7i4utcBzGT1?=
 =?iso-8859-1?Q?Pdt3t6nxemFZigIlVa+gpVZaXjtOtsSBV4MsHOTW3k3oXUU60XS0TsyhnK?=
 =?iso-8859-1?Q?1gJqrki0KOJahyqHGjZfglRX4Pi1rjikSSyMR+3Bd0huFVQbZp0m5Y5Xs2?=
 =?iso-8859-1?Q?wsA8iXfeDL6mOTLMocbKKVS6BvBXZeivgZ3V523Brlwm75iYNIF42R/Ob9?=
 =?iso-8859-1?Q?uJjAzzMPaxfumWEIgtn9enqnUGAv9H4VyqeNdi4JgNEOLwEsBVraiRedV2?=
 =?iso-8859-1?Q?x7wQn3P8Bv73H/PITN/7HSOl4pghwEUIkhB3DiENvaA9B9Tdx6WwblMxcu?=
 =?iso-8859-1?Q?/fC9YSurcZdH1TiaRYisHItiO3vNEp5YVwITMO/RuhlQ=3D=3D?=
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)(42112799006)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?Ukr1cMRC4Bk9xznVLkkOo03eFo2Fp/pqsL4ndIUL73yZYLHSmmaNVrl13+?=
 =?iso-8859-1?Q?7arlKque6YYkFa6SJl3vx63lsRMdP/drWbBX2w+rGpcZeFfFFh7Ole7WfN?=
 =?iso-8859-1?Q?vSpZCihxoT0TsseNWS/7TGXtc0il3hhqDvR7Wpxr5PkZcs0WSIEotQt8Gw?=
 =?iso-8859-1?Q?BEsra7IQY7pXvyOndZjk/opilRnOhafyuZmY0KNvSteA+W2i3Pl/JFytqS?=
 =?iso-8859-1?Q?/A75Jm2LwekJ54ehgcv7u6mQf0I83GBYMB7Uv5+VCrJqxvHSsr363cIKIw?=
 =?iso-8859-1?Q?uA7tQkiQgwomlhCzYuslmpSjKp9TiPNj3B2fmDHB3TtPczzw0YBXpODOCm?=
 =?iso-8859-1?Q?ytUJNOoyvpZQWJyu2vuWlf9d2QNyCqHjlUP/nj/duJ1K39BjsOa2/vxRmD?=
 =?iso-8859-1?Q?FA55K4vaZhuECSri3RHDlZ8Fj7egwbYCqfJRKgXdobEIC73CbnAka9uIvl?=
 =?iso-8859-1?Q?+ujFUJ6OudrOVDh+36nANyQVqoCe5eqxENvjxJTZ/R7OxfV5t+2qmOVwG0?=
 =?iso-8859-1?Q?PQEBfaaBEo70/gy+sMfrH7X2FYhQMCid93un4TEHqFY4oMntLayxdE09XT?=
 =?iso-8859-1?Q?sGhGfV1gXaeIovy5SnvvNJmApsQY89WrVH7gv4GE9racJVW3CcEy0uFoRa?=
 =?iso-8859-1?Q?NqeVim5q/ooJUcg6TYBkpvVJ8EkxAnpXkpVVp63hEQjyL5HQHXRg88IBOd?=
 =?iso-8859-1?Q?a9Gg38855faqDQrtq+QVfPiUx8yAeeRhtdp66qHh8H/mgrzsWv8Iix+Gcm?=
 =?iso-8859-1?Q?UBnI0b+lgKvcc2VJSQ2Ea25zQV6L7OPCStc+lYHCbV3FAqSXan+DXrvIF8?=
 =?iso-8859-1?Q?WEqlbJr6SpD38OOLSLGB/sCJA9XSqgcYyf9jvBJt3Vz8wzzabcIZcflvXe?=
 =?iso-8859-1?Q?kOm1/BvdVALAF2O8Db6+x7rsH2s6Q2TINS3EyW7J6mfL8GOVsRbPOSIboL?=
 =?iso-8859-1?Q?EjCsH69EWQzdjeao67n54Il/oRYVKze8ivMmSGEefgu/pVAUtOtzE/iKsR?=
 =?iso-8859-1?Q?e6IewOoQBOPr2WR4YdM81m5L4cQTmes9gsBVx+m/uJuoQ72BMtqFWhtLSW?=
 =?iso-8859-1?Q?l7jD8Z2euUcXxAqRPMtcUKppHSXq7az0d2Cxmfx6hu0X3gBixdN/Ls+B9W?=
 =?iso-8859-1?Q?Z0uI/SAciVGsphCqiIqecojc5uXtz+jpchKirZWYixYV6XSWHj1LVS4CMa?=
 =?iso-8859-1?Q?P+FHBKYcqvv1YTiZkhTNHY3RwU0ozVnvArkZZ84PWJ+PfCisyTCn+mItEk?=
 =?iso-8859-1?Q?lWyirT1DqhkXjqs0IWa7U/6dA+Ac+BPcP8+qlmSp+RTa1+Nu5YgHfiH9mv?=
 =?iso-8859-1?Q?v5BpHMbsyUTyVbVCzGFxfk5C7lg8AdUPaf689v8Eko/au+euX0nDzyl+Dw?=
 =?iso-8859-1?Q?GTrwoy1PLtOVKZugt9JWywJiSSOOOl6cYbMehrQob/aDgWhplK2756VMnp?=
 =?iso-8859-1?Q?yhCtcuNgq82uX1i22lplg/FMIAl2jSHk+mMV7ZNXjgxtbR8QPTwgfYAO6z?=
 =?iso-8859-1?Q?AMzSExjXZnXTS47lE6ugpvT/5Ellhi3u+LOzMgDx1IOLB2sjfrdIyykJPy?=
 =?iso-8859-1?Q?2JukLAi6sORCjXVDMMz8bYuNHNdss6ivktLTPfHtzba9JZ+YvKYSQz/Mqd?=
 =?iso-8859-1?Q?HeqpuQWmW6x8N4bRPBaIDLHIztxuIDjvmsMbULvWGPLK/3H0/6zHr5Dg?=
 =?iso-8859-1?Q?=3D=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: 59f5e9a6-dd39-4d20-d42b-08dde0c9eb5b
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Aug 2025 15:46:39.7774
 (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: /x7GYeb1QSKJjoMTP5czr1Zar+aJP5kAaCYEmmEDAmBye+wFnsmXsCP9VLxQAW/SdtnmuJImWH+sDumm+fkedY5ydd13PoJG26mt4F8zKJQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB8797


Leonid Komarianskyi <Leonid_Komarianskyi@epam.com> writes:

> Introduced two new helper functions for vGIC: vgic_is_valid_irq and
> vgic_is_shared_irq. The functions are similar to the newly introduced
> gic_is_valid_irq and gic_is_shared_irq, but they verify whether a vIRQ
> is available for a specific domain, while GIC-specific functions
> validate INTIDs for the real GIC hardware. For example, the GIC may
> support all 992 SPI lines, but the domain may use only some part of them
> (e.g., 640), depending on the highest IRQ number defined in the domain
> configuration. Therefore, for vGIC-related code and checks, the
> appropriate functions should be used. Also, updated the appropriate
> checks to use these new helper functions.
>
> The purpose of introducing new helper functions for vGIC is essentially
> the same as for GIC: to avoid potential confusion with GIC-related
> checks and to consolidate similar code into separate functions, which
> can be more easily extended by additional conditions, e.g., when
> implementing extended SPI interrupts.
>
> Only the validation change in vgic_inject_irq may affect existing
> functionality, as it currently checks whether the vIRQ is less than or
> equal to vgic_num_irqs. Since IRQ indexes start from 0 (where 32 is the
> first SPI), the check should behave consistently with similar logic in
> other places and should check if the vIRQ number is less than
> vgic_num_irqs. The remaining changes, which replace open-coded checks
> with the use of these new helper functions, do not introduce any
> functional changes, as the helper functions follow the current vIRQ
> index verification logic.
>
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
>
> ---
> Changes in V2:
> - introduced this patch
> ---
>  xen/arch/arm/gic.c              |  3 +--
>  xen/arch/arm/include/asm/vgic.h |  7 +++++++
>  xen/arch/arm/irq.c              |  4 ++--
>  xen/arch/arm/vgic.c             | 10 ++++++++--
>  4 files changed, 18 insertions(+), 6 deletions(-)
>
> diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
> index eb0346a898..47fccf21d8 100644
> --- a/xen/arch/arm/gic.c
> +++ b/xen/arch/arm/gic.c
> @@ -133,8 +133,7 @@ int gic_route_irq_to_guest(struct domain *d, unsigned=
 int virq,
> =20
>      ASSERT(spin_is_locked(&desc->lock));
>      /* Caller has already checked that the IRQ is an SPI */
> -    ASSERT(virq >=3D 32);
> -    ASSERT(virq < vgic_num_irqs(d));
> +    ASSERT(vgic_is_shared_irq(d, virq));
>      ASSERT(!is_lpi(virq));
> =20
>      ret =3D vgic_connect_hw_irq(d, NULL, virq, desc, true);
> diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/v=
gic.h
> index 35c0c6a8b0..45201f4ca5 100644
> --- a/xen/arch/arm/include/asm/vgic.h
> +++ b/xen/arch/arm/include/asm/vgic.h
> @@ -335,6 +335,13 @@ extern void vgic_check_inflight_irqs_pending(struct =
vcpu *v,
>  /* Default number of vGIC SPIs. 32 are substracted to cover local IRQs. =
*/
>  #define VGIC_DEF_NR_SPIS (min(gic_number_lines(), VGIC_MAX_IRQS) - 32)
> =20
> +extern bool vgic_is_valid_irq(struct domain *d, unsigned int virq);
> +
> +static inline bool vgic_is_shared_irq(struct domain *d, unsigned int vir=
q)
> +{
> +    return (virq >=3D NR_LOCAL_IRQS && vgic_is_valid_irq(d, virq));
> +}
> +
>  /*
>   * Allocate a guest VIRQ
>   *  - spi =3D=3D 0 =3D> allocate a PPI. It will be the same on every vCP=
U
> diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
> index 12c70d02cc..50e57aaea7 100644
> --- a/xen/arch/arm/irq.c
> +++ b/xen/arch/arm/irq.c
> @@ -442,7 +442,7 @@ int route_irq_to_guest(struct domain *d, unsigned int=
 virq,
>      unsigned long flags;
>      int retval =3D 0;
> =20
> -    if ( virq >=3D vgic_num_irqs(d) )
> +    if ( !vgic_is_valid_irq(d, virq) )
>      {
>          printk(XENLOG_G_ERR
>                 "the vIRQ number %u is too high for domain %u (max =3D %u=
)\n",
> @@ -560,7 +560,7 @@ int release_guest_irq(struct domain *d, unsigned int =
virq)
>      int ret;
> =20
>      /* Only SPIs are supported */
> -    if ( virq < NR_LOCAL_IRQS || virq >=3D vgic_num_irqs(d) )
> +    if ( !vgic_is_shared_irq(d, virq) )
>          return -EINVAL;
> =20
>      desc =3D vgic_get_hw_irq_desc(d, NULL, virq);
> diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
> index c563ba93af..48fbaf56fb 100644
> --- a/xen/arch/arm/vgic.c
> +++ b/xen/arch/arm/vgic.c
> @@ -24,6 +24,12 @@
>  #include <asm/gic.h>
>  #include <asm/vgic.h>
> =20
> +
> +bool vgic_is_valid_irq(struct domain *d, unsigned int virq)

I have the same comment as for the previous patch. This function
completely ignores LPIs presence, while you can't argue that LPIs as
valid. Again, function callers are expecting this behavior, so this is
fine, but function name should better reflect its behavior.

[...]

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 15:48:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 15:48:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088953.1446651 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up7Wh-0007qL-Uf; Thu, 21 Aug 2025 15:48:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088953.1446651; Thu, 21 Aug 2025 15:48:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up7Wh-0007qE-Rk; Thu, 21 Aug 2025 15:48:31 +0000
Received: by outflank-mailman (input) for mailman id 1088953;
 Thu, 21 Aug 2025 15:48:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=O+vP=3B=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1up7Wg-0007q3-B8
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 15:48:30 +0000
Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com
 [2a00:1450:4864:20::32d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 47b478fe-7ea6-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 17:48:28 +0200 (CEST)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-45a1b05a49cso8893775e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 08:48:28 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b4e88bbe0sm14951355e9.4.2025.08.21.08.48.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 Aug 2025 08:48:27 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 47b478fe-7ea6-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755791307; x=1756396107; 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=ETf/shatqPffnXA6oAKTTU45GK4L5fVLbAuzpxIwIWU=;
        b=foCSx2SqzPSdswODgYZohANzxF+IN+7r8N8rwNHW99ofnTeV9pYx22UUp3m0iK9G6M
         QFwKGLMbstvCpRrhSzex5ffTP9qPkTnkH/E/mXth/bVUGJtAhBPIwBOmP0a53RuX1uqA
         hSa//ebh1/o436I/9W/jQZZcsVTQIwLUOxSl0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755791307; x=1756396107;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=ETf/shatqPffnXA6oAKTTU45GK4L5fVLbAuzpxIwIWU=;
        b=U5vihi6CK9S9DcNZ1ZNRQJwWln9M94RoIMVMVxGeeH2D0vDrHTTIFUvQ5nDkVTh18P
         j1cixHKUNbsNZNFGhj4U4mq9EXgjcjVqK2/ne4Xr3RweuXUUPLq36bArmfTGDxBfDWJm
         aB0yAKrTod33i09a/WqZbyiLpXzWRBjp4GyaHhfN+U3JfXbKALMzUU90YrO1oos8sT86
         cLM6LYp4J5WQmVrg1Vk5fgsyPt39WLNbLnLL3V1XE2stsWVI3A+2R7EuqrL650RuE8j+
         FAQO455//gLwGprxupFQ/x4PHIQx6RccnvkdEFvy4xivffO+5l1vuIoyb65jRuNkggoK
         c3sQ==
X-Gm-Message-State: AOJu0YxT3OO2X8SbGsX3+qU2owIng7jEKAVYJg/HqvHiOayZbgS1aT1/
	ZKDOr6wYxLukR8DSGIamTBMyUIVTNJeP7Nn24ATN5dXVj8fpeg9KBelFV98HjzZ8TQFUXhnnFhm
	3Jdw6
X-Gm-Gg: ASbGncu//AJoPfP70g8acdcKNjMO7Z19RlEeEdMksfSaNEH/1jjs4TkRAlJWD57YAzy
	4a2Hp/wCpFL0U0atkTfvRqxFpTnqLKyv59x2o07EqaZ1yeI31IVfP5f9ZearaTz+KDRwQkt0DPr
	/TJ+TdRvyMJCY9lrX5ykudt9rOHVce955K7mNjtcINCr0QHTMIQELMJZ4QkyQiL4ciLDvG10OjD
	PSGymtHSfIMPijKpVSrgI5H8qLEmWiko3eCbqaNhoAFaoQQEdEeFrKE267F9iKoNzOu0vx/4D5v
	DztcJd0xvKynFV/kQmCmOcsDrDulC2xy8HzIHj71+YNgu6+PrwTcQGUiebtiCA8xgg3hta6Bovx
	q8NjpWhAFqdDDAgjAfY66WSR93w7gJy6/zK1B5HXGGdx6rWzYt0HV9UGarkpdOWqG/WkBARWb8a
	+Y
X-Google-Smtp-Source: AGHT+IFtUl/yPDzugLgrYN/X46AMEEwh+C1QhhiOhUs4IqnQwcEpJPYKJ+PwMnFgWRwZItb+rR9CiA==
X-Received: by 2002:a05:600c:1f0e:b0:45b:47e1:ef76 with SMTP id 5b1f17b1804b1-45b4d86c5d6mr23213815e9.37.1755791307414;
        Thu, 21 Aug 2025 08:48: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>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 1/2] x86/mce: Sort headers
Date: Thu, 21 Aug 2025 16:48:24 +0100
Message-Id: <20250821154825.3968600-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

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/cpu/mcheck/mce_intel.c | 27 ++++++++++++++-------------
 1 file changed, 14 insertions(+), 13 deletions(-)

diff --git a/xen/arch/x86/cpu/mcheck/mce_intel.c b/xen/arch/x86/cpu/mcheck/mce_intel.c
index 1e52b1ac25a4..d1d61bc95069 100644
--- a/xen/arch/x86/cpu/mcheck/mce_intel.c
+++ b/xen/arch/x86/cpu/mcheck/mce_intel.c
@@ -1,29 +1,30 @@
+#include <xen/cpu.h>
+#include <xen/delay.h>
+#include <xen/event.h>
 #include <xen/init.h>
-#include <xen/types.h>
 #include <xen/irq.h>
-#include <xen/event.h>
 #include <xen/kernel.h>
-#include <xen/delay.h>
+#include <xen/mm.h>
 #include <xen/param.h>
 #include <xen/smp.h>
-#include <xen/mm.h>
-#include <xen/cpu.h>
-#include <asm/processor.h>
-#include <public/sysctl.h>
-#include <asm/system.h>
+
+#include <asm/apic.h>
+#include <asm/mce.h>
 #include <asm/msr.h>
 #include <asm/p2m.h>
-#include <asm/mce.h>
-#include <asm/apic.h>
+#include <asm/processor.h>
+#include <asm/system.h>
 
 #include <acpi/cpufreq/cpufreq.h>
 
-#include "mce.h"
-#include "x86_mca.h"
+#include <public/sysctl.h>
+
 #include "barrier.h"
+#include "mcaction.h"
+#include "mce.h"
 #include "util.h"
 #include "vmce.h"
-#include "mcaction.h"
+#include "x86_mca.h"
 
 static DEFINE_PER_CPU_READ_MOSTLY(struct mca_banks *, mce_banks_owned);
 static bool __read_mostly ser_support;
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 15:48:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 15:48:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088954.1446655 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up7Wi-0007t7-7T; Thu, 21 Aug 2025 15:48:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088954.1446655; Thu, 21 Aug 2025 15:48: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 1up7Wi-0007sT-1r; Thu, 21 Aug 2025 15:48:32 +0000
Received: by outflank-mailman (input) for mailman id 1088954;
 Thu, 21 Aug 2025 15:48:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=O+vP=3B=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1up7Wh-0007q3-AF
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 15:48:31 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 48896a80-7ea6-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 17:48:29 +0200 (CEST)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-45a1b05fe23so6365415e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 08:48:29 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b4e88bbe0sm14951355e9.4.2025.08.21.08.48.28
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 21 Aug 2025 08:48: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>
X-Inumbo-ID: 48896a80-7ea6-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755791309; x=1756396109; 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=r4cDNyT9In61YnUP3YDniJuU8T6PiiXEb0RoVY87zhs=;
        b=ELRU4df8DRkCTbEE32pmR3YqoWHoupZeYjY8UW+q7FGidfjbdp+iKvNgFJI6/GL/dr
         nExmSFwFlM9yKFY43+Oh8pwfmJ5JD89kQWgP7DFrzbCXV1i1lCtDAwIezEmHlwcm+k3U
         +rx2r5cnvv4Krur/q5mQ/WC71VfLYWSPvavgE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755791309; x=1756396109;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=r4cDNyT9In61YnUP3YDniJuU8T6PiiXEb0RoVY87zhs=;
        b=QTy0KKDiUQhMjyVtuYXmAz0gxjkywBjqoP85FLFZ+OJPwfu5goBuglXIK3HFjUTIOm
         qu1lWraxUECLmC7CUH9rxgQRhEDVf4XaDwyITghkP0YRcpgYRW1no8OWc+oket80+kY4
         M2/bjckNlIwgKl/n9VuPo18xoqwnYGwnhaVN3xVzU3WOw01OpiOvlZ2YWhGxatjMimbN
         dKHjG+7MCGjtjqQAG8Lv3CFxUyjSYzkf/DZ9VbbiPRYA9iez6EVxVooAYjAqG7XJ86w+
         wBP4HuuooWmTEbySilf4GwwJ3s8V/zORoVD+ZEGFDXn335ZpsfE5PlX3WoRLFhdfGB4D
         4XEw==
X-Gm-Message-State: AOJu0YxLPCufmNcxN0eEfvjIeNwb8M2lERrHAyNsW297rQna0iHjpTdh
	w5+k/mxgCOZkvywe4x5nL4ImyFQ394t8B38pOPJwR33WyI2/KN8daQF8QHO7ccMTRVERVv2nT7k
	wnCj2
X-Gm-Gg: ASbGnctapmemX7FtaFUAoRwAPnz2rvl55fuSTtgVCaQO6Sn562WVcenY6VCt0Z8ru9o
	aqEr1N1aXhg5SaZvWOILAIo6G1EP1mOOQ7+SEbR536cHLK2faIYu1503cEeFY+in4BVeOQwCJyE
	RrQpB9CFYNuZWthM6hLdoGDFNU6rEfqB/W3EqOe/VE8HzdANtOgKPK5JP5b8VlcBuaDVDABmxTs
	Xe0Ybti7zWnijrHArsIImUTpKNuxW3f5oPvlfz8VyMppng3Att9x5UWuCfgc3BlRA9XO/PruXX/
	DUlr+xZo+gFtOF74iOY0DxkL+R+XUP7fdSrQvisDtGuxxMWal9msKgI+u2bN1trJ72/ZE6E2gmg
	ED0CtEhzVlg3jRECaIc4iOORKncYrN7Rbp29nk8voYC3HQoe55pvw4efKzYfveY8SqlTJCrs8TN
	hq
X-Google-Smtp-Source: AGHT+IHpO4vviB/CRL+N0SLZZspE1jmJ5jXkAGG+ftG79ZIYFr0VlcXIuTE9kQbU0D0uHb8SMmaXcQ==
X-Received: by 2002:a05:600c:4fd3:b0:456:28f4:a576 with SMTP id 5b1f17b1804b1-45b4d8555c5mr23437185e9.27.1755791308804;
        Thu, 21 Aug 2025 08:48:28 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 2/2] x86/mce: Adjustments to intel_init_ppin()
Date: Thu, 21 Aug 2025 16:48:25 +0100
Message-Id: <20250821154825.3968600-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250821154825.3968600-1-andrew.cooper3@citrix.com>
References: <20250821154825.3968600-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

There's no family check gating intel_init_ppin(), making it incorrect to use
on non Fam6 CPUs.  Switch to using VFM.

Emerald Rapids is the final CPU to have PPIN but lack the the architectural
enumeration, so include it too.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/cpu/mcheck/mce_intel.c | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/xen/arch/x86/cpu/mcheck/mce_intel.c b/xen/arch/x86/cpu/mcheck/mce_intel.c
index d1d61bc95069..16f286566ce7 100644
--- a/xen/arch/x86/cpu/mcheck/mce_intel.c
+++ b/xen/arch/x86/cpu/mcheck/mce_intel.c
@@ -9,6 +9,7 @@
 #include <xen/smp.h>
 
 #include <asm/apic.h>
+#include <asm/intel-family.h>
 #include <asm/mce.h>
 #include <asm/msr.h>
 #include <asm/p2m.h>
@@ -859,7 +860,7 @@ static void intel_init_ppin(const struct cpuinfo_x86 *c)
      * other purposes.  Despite the late addition of a CPUID bit (rendering
      * the MSR architectural), keep using the same detection logic there.
      */
-    switch ( c->x86_model )
+    switch ( c->vfm )
     {
         uint64_t val;
 
@@ -870,14 +871,15 @@ static void intel_init_ppin(const struct cpuinfo_x86 *c)
             return;
         }
         fallthrough;
-    case 0x3e: /* IvyBridge X */
-    case 0x3f: /* Haswell X */
-    case 0x4f: /* Broadwell X */
-    case 0x55: /* Skylake X */
-    case 0x56: /* Broadwell Xeon D */
-    case 0x6a: /* Icelake X */
-    case 0x6c: /* Icelake D */
-    case 0x8f: /* Sapphire Rapids X */
+    case INTEL_IVYBRIDGE_X:
+    case INTEL_HASWELL_X:
+    case INTEL_BROADWELL_X:
+    case INTEL_BROADWELL_D:
+    case INTEL_SKYLAKE_X:
+    case INTEL_ICELAKE_X:
+    case INTEL_ICELAKE_D:
+    case INTEL_SAPPHIRERAPIDS_X:
+    case INTEL_EMERALDRAPIDS_X:
 
         if ( (c != &boot_cpu_data && !ppin_msr) ||
              rdmsr_safe(MSR_PPIN_CTL, val) )
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 15:59:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 15:59:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088973.1446671 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up7h4-0002Ag-2N; Thu, 21 Aug 2025 15:59:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088973.1446671; Thu, 21 Aug 2025 15:59: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 1up7h3-0002AZ-W3; Thu, 21 Aug 2025 15:59:13 +0000
Received: by outflank-mailman (input) for mailman id 1088973;
 Thu, 21 Aug 2025 15:59:12 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6kfR=3B=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1up7h2-0002AT-Fx
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 15:59:12 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c6639bf1-7ea7-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 17:59:10 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by DBBPR03MB7146.eurprd03.prod.outlook.com
 (2603:10a6:10:209::22) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.13; Thu, 21 Aug
 2025 15:59:07 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9052.013; Thu, 21 Aug 2025
 15:59: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>
X-Inumbo-ID: c6639bf1-7ea7-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ndP1wtsdpyWuIM8MHfIcjGYiT/gZ4rJQ4zezvX0FCo6fLLOYywxeAuTCqdIJJgfJvpxp+ePXmFTkZCma8hd4leAa63P7q1oAvQ0+kZtZb25JF+C17mYWW2nAmawFC5DV/LGoCN35m7FkklmKyrIfW8pWCaR4RpBk7CQPGu+IA7V/MZ1GB/1BNxO1dsRqB9U2IxiIZNQHFUSGVgXHpjEodpg4/aI8G8TBMLYNRqIwGrLOTdLvrLirSalo9WG2qqSWTZTnb5DnpVaCw0MzzvlPi393xQ4NL0JMrRK6oT9nWiYw78MLEXwo11l+miaNFCYwB6LbTbv/YEwl+CoW8q2RBw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=E5plupPCXInDySXXvgRmYFiudmRKlD/Q6oY72gAR7Lo=;
 b=X/z/5Q3QnuhstnZLfey+rurQT/bmOWqi/KG8u5zA+IjuvoVDnSowZjTCGw2cnOdgPWOje3jlR3Hi7IyDtGO91OeBHu2NUA+bA0ULNC6cbu4VZR8yUIVxVmzO5fUPOrrgmJpJgPgFT88jpmnccfjPB8Uc0vsXno/26vr+tqQjn+uc2mxEpUxaxpp3BOPO05/VgttcXKuNxag/hEsG6CPH6uLR0yeaJzCRAsK9R1A1t1UTACBCZHCKWdurd+Hoj4lLrDB66GugQbzokyu2sWzUfIwmYWvn/bwR/I7oBm6Xkjg+JeIr51xerHFdwRRodNozUp5Qnj0Lva7g0h2Nm4IeDQ==
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=E5plupPCXInDySXXvgRmYFiudmRKlD/Q6oY72gAR7Lo=;
 b=kQl4fLxq1PbBBPSdzpYr67oTigskQHMalwg93MpBzZWBVjwsXM7GdfReeliZ6ZGTr5kV3pfIza9gcxTeIkKDCwpz3hu8XIwQ0Cx/kRFVeUlYtTzRdNou/hdEKkzH6KujC/GpcM1fXQRiotsxqcYlWgeYU5Xn1/ITUKDbpRu8+oCtA+cyjP7zu3lx+C/Uq0efkdGv2idcA4+WmM0C3f1JgSURqMKU/xc58xHhESG3gBBmVdZoHbSTEK2N2zJyUwUWHUWRBm9HWkMR0mFGBceah4IhtIl2ggEoKpKvQQ90G/nZKIY4SeTdr9R51ozcow7lLWVjymjOcWEzNTYyI1yE9g==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v2 04/10] xen/arm/irq: add handling for IRQs in the eSPI
 range
Thread-Topic: [PATCH v2 04/10] xen/arm/irq: add handling for IRQs in the eSPI
 range
Thread-Index: AQHcB5d7kgaRrTB4eUK2JDUmO9y7Hw==
Date: Thu, 21 Aug 2025 15:59:07 +0000
Message-ID: <87ms7sekdx.fsf@epam.com>
References:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
	<418e7e8082fa8f7b6659ff8cae3beb773803ca47.1754568795.git.leonid_komarianskyi@epam.com>
In-Reply-To:
 <418e7e8082fa8f7b6659ff8cae3beb773803ca47.1754568795.git.leonid_komarianskyi@epam.com>
	(Leonid Komarianskyi's message of "Thu, 7 Aug 2025 12:33:31 +0000")
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_|DBBPR03MB7146:EE_
x-ms-office365-filtering-correlation-id: a0fe37d1-2a56-42db-4ada-08dde0cba8d7
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|42112799006|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?GyvR49fA/VK298L8DPGbBG0Jb6iPGkdPxV15qHNOOJB+HgXJqK8lyawKim?=
 =?iso-8859-1?Q?TLRGQZ1DBCQLJ167IFPjxlt4cP7WQCrsHX9t0wzLWypqZ07CEup/ic/urX?=
 =?iso-8859-1?Q?I3/jr/1PSNQySqErJKNdH4LumhEgo3OaNwhO1FUcJfMuSPJD4ESGvmxPNU?=
 =?iso-8859-1?Q?xHCGEAPbzfijA6IIkHU+YLREJEQDYamloTr8j7LbBJk3oo3bRsE0jr8oua?=
 =?iso-8859-1?Q?WWX4a9suTAAIDW4TgKQBxMk8QovpZjfXl+qmAUe6pqq/pjvUzJAWSl9UAd?=
 =?iso-8859-1?Q?fnpqOJ4bKLLJcKrcs1QbhnSbXo+k4oEVTdI8Lhtab2z1dBdmlxb1YBVOEo?=
 =?iso-8859-1?Q?iSTmv8quEmEVNdcq2rmzRASKupQKnuP9hv7j5u6HSjyH3fjXcaO/xxsJj+?=
 =?iso-8859-1?Q?Ooq4SU4rHn8S3BtKGzVGPNBJZP08CB/L6oY/+dmSvzm5liHTMadO9U2bBd?=
 =?iso-8859-1?Q?YFCRVU/1RJsd2ND9wgoa99K/8tYzXJOjagH2XxnmXs5sEE+hQAzljhg8wq?=
 =?iso-8859-1?Q?lLAK3z3wFtRCxza7LTa1duJr9b6CXBKaLNCwjNEaMDZIpuI2T2NSBPOuJT?=
 =?iso-8859-1?Q?Jxp8BVTmliyvCVQcJQHLEAFOkELGskH0+vDrqdHccJD0aXd5+Irt9ireuM?=
 =?iso-8859-1?Q?E0QeC6gbg+F1YuJYPImvwnJiZ1fT0QhvVa2f5dfgjsz7KY+KCo8uqZFAHO?=
 =?iso-8859-1?Q?rP7utjf3zufqEvx6YpxqDndfOymCv2JBfyfuhe/LoeUnyQxmqPY9+BtMpV?=
 =?iso-8859-1?Q?lb6NOUpItWjbmYd1JUNFP8UToeJDM3YYrETpDjth3yYX9G87T457FINcUf?=
 =?iso-8859-1?Q?LR+EY7Fk7ZgmoU9Klrt8SyaEHbc06euFe1ItHWJ398ccg9xJeWj2VeIM1F?=
 =?iso-8859-1?Q?l2jwsdvymAqoW10FpDzQuYrs49swAGdqaOh+JQGXxMng5gt8VSffJPaDzR?=
 =?iso-8859-1?Q?oycjcitfs4UO0TmiMXQcyFZbIYZX6lQlcu9EcNh01/BfsNElGS8Pvjm2UQ?=
 =?iso-8859-1?Q?5rvdD3jVtXCqZK8/e/p3Ml8lVoie7VFFhUrd0nGzPA8IfdxjfZFDbX1gEQ?=
 =?iso-8859-1?Q?f1eIgwkmkfVzysjcU0MtyHm+CTmboRIEFuN8CMTTP+FfYyhvzlIssTkCQG?=
 =?iso-8859-1?Q?q43DwEJlqHWgRSzLWvrbpb7BSOYkSwziPZpLeUqoqKdRn5wnP3VxZrTTZO?=
 =?iso-8859-1?Q?A4J9C+Z3i2XeSm2R1ad/E/Fm6q6FVg7Wdd4956/H8DRVGjnQ5NuJT7Q1rT?=
 =?iso-8859-1?Q?Qj2I4UobfLvjNHRbZGqnIJXW+t4AATToyFyze8bPB7vQ78Y+mFfvPzHc4k?=
 =?iso-8859-1?Q?7bdgAreYETGj7V15zd2AKNrTp0NyjtmWs6Wvemm1IrOhYHU7M8rpt/Ujln?=
 =?iso-8859-1?Q?UYY67d7aeOKlnhtE9IfDGh9uQjjl/bYJheAim6Xuc5jfd2fQBwR7T8NQsI?=
 =?iso-8859-1?Q?dqsLSNBMNunmk7xsM4IgM9MlEkWtcvJpVNKIzBfwWIvkdzybrG+25QxhRJ?=
 =?iso-8859-1?Q?UVt89+hRU5AuMzG5ngVoFGR0YcJ1NE2a/31UWyHtGEUw=3D=3D?=
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)(1800799024)(376014)(42112799006)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?lkmqQYxvsg9ZukCQveY9O2SpycA99OFR8QplaZUkJF+tWURcwiCzaYch3n?=
 =?iso-8859-1?Q?YglwpmQKqeQD2hxXD3NcFaan/lWRrRfJ14y0PlBwTdL2RRJ8wa4uBuQk+D?=
 =?iso-8859-1?Q?am9BqyUX4Uf2hmgo9MaSUIV2EdDL6V6eX1E1HOM2yW8gDvJwa1QoA0wX/4?=
 =?iso-8859-1?Q?Hw+LercQ1InrergKs4PSNSw9L1d9IBpIA6ho6VSyWnhg8ihRAlpSbQma2u?=
 =?iso-8859-1?Q?QRl3oYtz9ZD4IvH53Wh/oYCru6SHGBr9Ka0mpa+xFmnCPLu2pkA/zSVlnu?=
 =?iso-8859-1?Q?GMcKR+HscpKRrPj9M7NDQVP1fPUnB7yNOpFip4F8MZUOlKNsv799QNfnNt?=
 =?iso-8859-1?Q?WsKM/qgEz5rX98YJB1g8NPlTxUEqcCDACWJlmN6bBC9QjYyWxHL83OtVPc?=
 =?iso-8859-1?Q?l+9/Lrggk5xDIN3LAJ+156bfBF4IlzjI8ZI930Neaib9NhF4JCAdzvT90Q?=
 =?iso-8859-1?Q?YogTIoLonIsnnae8WKE7XzVsq1tvRyJ/7Zgf2jwy3uNLhV6mwTUmCI2ffH?=
 =?iso-8859-1?Q?vd2i86YzbY0955gVEbzyMp82Kt/9Ya6l74eGUidmeRdaqzwupAAWmpQsjQ?=
 =?iso-8859-1?Q?uSwfh97N1opbZCF8W1br51L8AWyxMYFdZHq39Jr9hzX4FfQumxXT7ljB7l?=
 =?iso-8859-1?Q?EO9E4bJFziH6EcZP0dddwipKyPvn3564Q7sIADn6dczHCJX+FlliQUQ+Tg?=
 =?iso-8859-1?Q?82HkizAOaCpdE3NOT5by8Rz2yrF1W4Oalr29eHkTcj9QwtOV5d40oDsGms?=
 =?iso-8859-1?Q?7pbToGuphohuwWnB0t4v226H+gWi4yoZQDOf5olsL9/NAM7ljufVhmiJQG?=
 =?iso-8859-1?Q?L515WMFEVvh1IaftpWysORo4+JcAXobksb2sivQEJFhkNr7+KSTi1VTHnP?=
 =?iso-8859-1?Q?x9yLRpYtB0c/t2AQIw0gV6RPB5L/o/N0aD/v+k2BF43fIM0TF//XFEDAV8?=
 =?iso-8859-1?Q?DKyB4u936gEFRM5Kpt61XsyBmc5Eq0mT9hbX7Qs4hCpxuNv7rNQDNqo7iS?=
 =?iso-8859-1?Q?Rwv0xW3BlPZWDEwWzEld7fGPEFBA70kxXoEqh01S6kOewTFseMeQ3BKikr?=
 =?iso-8859-1?Q?YSWhh3svwNViEsEgzM0LSPVXCkG9a8HUaWgFUNDc0n5Srifu1Pk4ITaIMO?=
 =?iso-8859-1?Q?Sau6LD7GHGuX45BtYlDtEJqQRA4tSznwSEDYfg5W7Ja2dWOu82RRNRjzTS?=
 =?iso-8859-1?Q?mZptkrSZMeZeKvOplS8MQlZv8q6cWOgZfZ8hlCnWK4tyvHFw8qqoYlazZk?=
 =?iso-8859-1?Q?X+Y3CP7VGH8diIHEXqas+yRXg9e1EpCdd5YxPP+GpMA06zhIm+d650mEzO?=
 =?iso-8859-1?Q?gAO2ByAmKxkENIM8SK3Il9A1nmVcqtj6mapHghfubFpaf/Cj7FVnyemBJv?=
 =?iso-8859-1?Q?13mQ4IdSTKCJmpIq5WGF3SUCgprMi6nhB1Lll8QQFo0bIv5FGNOxQBi1kO?=
 =?iso-8859-1?Q?kgIgO3z9M9PBbB8vHAoLPxb9M00G3WZAz0Af1h+VuWTqfN5b86sCiNzVE/?=
 =?iso-8859-1?Q?1NbT6Fckr3+VfFwMJA/p4dkEFz1474rHQHprjt5KM2LErz8E+FtCKXDG7k?=
 =?iso-8859-1?Q?lXWxPgOCUJjfZsLzYMSWf6ekmuC6MExQJ8saWU/3V4aftLiX/JkLe1Da1U?=
 =?iso-8859-1?Q?lnpGm3UEc0x2OGYTVbxCBeGaX1N83EsrtM7RQ8+KaL0VKEcsQXrCr/UQ?=
 =?iso-8859-1?Q?=3D=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: a0fe37d1-2a56-42db-4ada-08dde0cba8d7
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Aug 2025 15:59:07.1877
 (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: M1H5QXuStVs5TZEZLCAN2Qj4Vq0QNRJezCIDKWCjwLrOQUvSvPKpsXM03XBzPMnyR2xuuspgXKrkrS/EhgRTdNTiwET8cexpDVNDB7ZhMDo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR03MB7146

Leonid Komarianskyi <Leonid_Komarianskyi@epam.com> writes:

> Currently, Xen does not support eSPI interrupts, leading
> to a data abort when such interrupts are defined in the DTS.
>
> This patch introduces a separate array to initialize up to
> 1024 interrupt descriptors in the eSPI range and adds the
> necessary defines and helper function. These changes lay the
> groundwork for future implementation of full eSPI interrupt
> support. As this GICv3.1 feature is not required by all vendors,
> all changes are guarded by ifdefs, depending on the corresponding
> Kconfig option.

I don't think that it is a good idea to hide this feature under Kconfig
option, as this will increase number of different build variants.
I believe that runtime check for GICD_TYPER.ESPI should be sufficient,
but maintainers can correct me there.

>
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
>
> ---
> Changes in V2:
> - use (ESPI_MAX_INTID + 1) instead of (ESPI_BASE_INTID + NR_IRQS)
> - remove unnecessary comment for nr_irqs initialization
> ---
>  xen/arch/arm/Kconfig           |  9 +++++++++
>  xen/arch/arm/include/asm/irq.h | 25 +++++++++++++++++++++++++
>  xen/arch/arm/irq.c             | 26 ++++++++++++++++++++++++++
>  3 files changed, 60 insertions(+)
>
> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
> index 17df147b25..08073ece1f 100644
> --- a/xen/arch/arm/Kconfig
> +++ b/xen/arch/arm/Kconfig
> @@ -135,6 +135,15 @@ config GICV3
>  	  Driver for the ARM Generic Interrupt Controller v3.
>  	  If unsure, use the default setting.
> =20
> +config GICV3_ESPI
> +	bool "Extended SPI range support"
> +	depends on GICV3 && !NEW_VGIC
> +	default y
> +	help
> +	  Allow Xen and domains to use interrupt numbers from the extended SPI
> +	  range, from 4096 to 5119. This feature is introduced in GICv3.1
> +	  architecture.
> +
>  config HAS_ITS
>          bool "GICv3 ITS MSI controller support (UNSUPPORTED)" if UNSUPPO=
RTED
>          depends on GICV3 && !NEW_VGIC && !ARM_32
> diff --git a/xen/arch/arm/include/asm/irq.h b/xen/arch/arm/include/asm/ir=
q.h
> index 5bc6475eb4..acebc3d42f 100644
> --- a/xen/arch/arm/include/asm/irq.h
> +++ b/xen/arch/arm/include/asm/irq.h
> @@ -32,6 +32,14 @@ struct arch_irq_desc {
>  #define SPI_MAX_INTID   1019
>  #define LPI_OFFSET      8192
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +#define ESPI_BASE_INTID 4096
> +#define ESPI_MAX_INTID  5119
> +
> +#define ESPI_INTID2IDX(intid) ((intid) - ESPI_BASE_INTID)
> +#define ESPI_IDX2INTID(idx)   ((idx) + ESPI_BASE_INTID)
> +#endif
> +
>  /* LPIs are always numbered starting at 8192, so 0 is a good invalid cas=
e. */
>  #define INVALID_LPI     0
> =20
> @@ -39,7 +47,15 @@ struct arch_irq_desc {
>  #define INVALID_IRQ     1023
> =20
>  extern const unsigned int nr_irqs;
> +#ifdef CONFIG_GICV3_ESPI
> +/*
> + * This will also cover the eSPI range, as some critical devices
> + * for booting Xen (e.g., serial) may use this type of interrupts.
> + */
> +#define nr_static_irqs (ESPI_MAX_INTID + 1)
> +#else
>  #define nr_static_irqs NR_IRQS
> +#endif

Don't introduce defines that look like variables. I am sure that MISRA
team will be unhappy about that. But what you can really do is to
introduce variable nr_static_irqs, which value will depend on
GICD_TYPER.ESPI and GICD_TYPER.ESPI_range

> =20
>  struct irq_desc;
>  struct irqaction;
> @@ -55,6 +71,15 @@ static inline bool is_lpi(unsigned int irq)
>      return irq >=3D LPI_OFFSET;
>  }
> =20
> +static inline bool is_espi(unsigned int irq)
> +{
> +#ifdef CONFIG_GICV3_ESPI
> +    return (irq >=3D ESPI_BASE_INTID && irq <=3D ESPI_MAX_INTID);
> +#else
> +    return false;
> +#endif
> +}
> +
>  #define domain_pirq_to_irq(d, pirq) (pirq)
> =20
>  bool is_assignable_irq(unsigned int irq);
> diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
> index 50e57aaea7..9bc72fbbc9 100644
> --- a/xen/arch/arm/irq.c
> +++ b/xen/arch/arm/irq.c
> @@ -19,7 +19,11 @@
>  #include <asm/gic.h>
>  #include <asm/vgic.h>
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +const unsigned int nr_irqs =3D ESPI_MAX_INTID + 1;
> +#else
>  const unsigned int nr_irqs =3D NR_IRQS;
> +#endif
> =20
>  static unsigned int local_irqs_type[NR_LOCAL_IRQS];
>  static DEFINE_SPINLOCK(local_irqs_type_lock);
> @@ -46,6 +50,9 @@ void irq_end_none(struct irq_desc *irq)
>  }
> =20
>  static irq_desc_t irq_desc[NR_IRQS - NR_LOCAL_IRQS];
> +#ifdef CONFIG_GICV3_ESPI
> +static irq_desc_t espi_desc[NR_IRQS];

This is really confusing. Should it be something like espi_desc[NR_ESPI_IRQ=
S]?

> +#endif

>  static DEFINE_PER_CPU(irq_desc_t[NR_LOCAL_IRQS], local_irq_desc);
> =20
>  struct irq_desc *__irq_to_desc(unsigned int irq)
> @@ -53,6 +60,11 @@ struct irq_desc *__irq_to_desc(unsigned int irq)
>      if ( irq < NR_LOCAL_IRQS )
>          return &this_cpu(local_irq_desc)[irq];
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +    if ( is_espi(irq) )
> +        return &espi_desc[ESPI_INTID2IDX(irq)];
> +#endif
> +
>      return &irq_desc[irq-NR_LOCAL_IRQS];
>  }
> =20
> @@ -79,6 +91,20 @@ static int __init init_irq_data(void)
>          desc->action  =3D NULL;
>      }
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +    for ( irq =3D ESPI_BASE_INTID; irq <=3D ESPI_MAX_INTID; irq++ )
> +    {
> +        struct irq_desc *desc =3D irq_to_desc(irq);
> +        int rc =3D init_one_irq_desc(desc);
> +
> +        if ( rc )
> +            return rc;
> +
> +        desc->irq =3D irq;
> +        desc->action  =3D NULL;
> +    }
> +#endif
> +
>      return 0;
>  }

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 16:00:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 16:00:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088986.1446681 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up7iT-0004Fa-FG; Thu, 21 Aug 2025 16:00:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088986.1446681; Thu, 21 Aug 2025 16:00: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 1up7iT-0004F9-CB; Thu, 21 Aug 2025 16:00:41 +0000
Received: by outflank-mailman (input) for mailman id 1088986;
 Thu, 21 Aug 2025 16:00:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6kfR=3B=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1up7iS-0004Ew-2r
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 16:00:40 +0000
Received: from GVXPR05CU001.outbound.protection.outlook.com
 (mail-swedencentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c202::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id faa70681-7ea7-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 18:00:38 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by PAVPR03MB9164.eurprd03.prod.outlook.com
 (2603:10a6:102:325::11) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Thu, 21 Aug
 2025 16:00:35 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9052.013; Thu, 21 Aug 2025
 16:00: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>
X-Inumbo-ID: faa70681-7ea7-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QFup0kiVnFUPYRgyQo3J9GZ/bZ0kUJW9LY9l8ipTxPD6+ENCXC6MuwDIsmgp/fYtOfx2QDhgOEU9LZy7R/FHnCsF3RhDHV3eQMY7uS2KsAJZD8SORoiJg7dqX5fND9PnnWD1gv4GeCI8a29ISS50Yw9M5C8VpqgHy+j8CQM8f8JFf+Y6ZYaDToHDWyx4NHYO8Qszp0FE0bgbwJhT5ku4bXN6sFSJxWxRPlCvvJhZlOexEqGzSH4CXxZb5ndEsgP5+5bX3s/lCCtIyyKK+P9X0DnpdOSv37+JG3Z7TxElcEdBa7bejqEdiU0cWCdlnf/v2wqw/hQEhY6+rUJa/3U75Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Zz5iD+Y8p8a3dJpjNpWzIG+R5GejxyFRritCyx3tl04=;
 b=rt5Uoa0jTROzbPGK8bVMYuuclVPljUOOtjKieMjyBTRmJepa0NRlJZBgc2XnTO8lLR9GHCDCKtDjODw/2DkOf7qJ+G8R0O0RU4PJEn0MTSlyESA58eX9sNNk+Udyvik4IxRmIl5JyzBEya/ox6hw4FbL49F0rT1UvSzt+kdiQ6e5zXpM8DbaidKSrD8EL3Cf+hWVx4c7e9gTBN4MUJcT36Z1SpoDq9DwXdnE3oAUwq+iGnk6xFe/adJUGryjH8NR+mZW8gLeUqsktgyklaFKX9vLffyF3Tnwemf9MirYtY2MQsqB+wEnhykN42YkvobSgfV/dt29n1I/nycVJQkBuw==
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=Zz5iD+Y8p8a3dJpjNpWzIG+R5GejxyFRritCyx3tl04=;
 b=oBooyYfqVBZG6YLhj7aFVc1xl22QYY3BDqgnyD9xc5grC1ozE24nK/uRqjg2QRWv41IGXSfPq9YJmRxfcW4GLhk7H4e2eshThcfhPdxWfRUZaIKmS8ajSLZobaLpH8dvR1dHA1DdYeoqoSm/C5Iz6M1ocIHDqTtGWY29QoD1INk3fDOf/t6YCS5OzA+gEMDXQeZqnr2fj1R0ryyA+MndPGTr8F67GWG5YAsqqCw0+tnOKEM430uGKr0SPLtgaLH3PmKjNPUH0St1Y87tu8GxcM5vCrNyrbiPTJiA33At2i5vj3gyw7tNQY7RLN5udfCpRT3o99/ZhclixnbekgmPRQ==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v2 01/10] xen/arm: gicv3: refactor obtaining GIC addresses
 for common operations
Thread-Topic: [PATCH v2 01/10] xen/arm: gicv3: refactor obtaining GIC
 addresses for common operations
Thread-Index: AQHcB5d7cCAQRdJCgUKSzBGsZt4ytQ==
Date: Thu, 21 Aug 2025 16:00:34 +0000
Message-ID: <87h5y0ekbi.fsf@epam.com>
References: <cover.1754514206.git.leonid_komarianskyi@epam.com>
	<7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
In-Reply-To:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
	(Leonid Komarianskyi's message of "Thu, 7 Aug 2025 12:33:30 +0000")
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_|PAVPR03MB9164:EE_
x-ms-office365-filtering-correlation-id: d15c5df9-cd96-4733-254c-08dde0cbdd17
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|366016|42112799006|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?EXHCcb4WLDYbQajtal1d+mCSe/8wMxW5AI33J0Kd9MYBfj5gWgiG29EU5F?=
 =?iso-8859-1?Q?fKGnU9SA4ZzF3QWYNcENRdUVdiA7h5YuwAQury/4tKuXb4/NjcrNGXFfDj?=
 =?iso-8859-1?Q?6S/QpfYxTlwiwM5OEwP89uXEteH9DTxMMdJzOuB9CHDIXzxBY07eSBPK3J?=
 =?iso-8859-1?Q?bZy1Y2io4D+Kg9IvVdAl9Nn7SurIMUq89E8Wn4utxO/uiQoE4pJSG4Baoe?=
 =?iso-8859-1?Q?YbVLZPXfZrkRoBe02CEM5ZaBDgnwdSv1T9Cc9QZa0LvCUik3k04n3o9Czo?=
 =?iso-8859-1?Q?u5LvXicG2BdUIlQNQFmlmPDPawhYL8pe6ul7nRa8GO+H1Qi9CQfvbXvRbz?=
 =?iso-8859-1?Q?4/EctF++bxYpg/dnwtAsLmAuPBRk2t+xrGvmuiWWrEy7JlgOAfUkTTv+ol?=
 =?iso-8859-1?Q?7CF63Vr8+y2Uqf6ShxArTuHftZ8Qg60DrY4udnl424Af28l/rrxQiafZRM?=
 =?iso-8859-1?Q?RunZQw6Ug5+SYn0QFjtnOjEQxKb55Cd8tSnCrPyJxa5FVbXIhmpYs65wqA?=
 =?iso-8859-1?Q?9+ByW+2ohVY0C/3+G9hZZNBKmRiBjCbLTUICUoEXud9lYGaCKM/k0eaix5?=
 =?iso-8859-1?Q?RNLaFQJkdhArt6Q/U35KxXVAcsSyJa2ZGnRrLMD9MzjKVoDNpXRkHB2kkH?=
 =?iso-8859-1?Q?KYVElQHleEh3wW0Ly/DJf56ZgJQEPpe9I/FPIEdFTZPCzCydN1LqVlYaWt?=
 =?iso-8859-1?Q?px2c7btePvQx07OzT0+Ccgv+wzNrvWfykB7G7TstIXM7i1HYuvht6sBNhL?=
 =?iso-8859-1?Q?GzPrxq38oc44/LE0aNhFJg18C7B0MQ46ovsD+2AGN3yIfyZEoZ8GAPYOAW?=
 =?iso-8859-1?Q?ups7L4A7sSeT5xciF1gnKa2ykNO6nNvcW3lzF9Ek5pNBmvpfjjGFRhQzwe?=
 =?iso-8859-1?Q?xBJtR6Ntq9UgtXCaVsF9rjiCjJcsvXrnh0iVN1tPvPovBxVAzCMMtlytLj?=
 =?iso-8859-1?Q?J3rik5YTVlANw6gT8TRdNSIXUuGGhIEmyl4rPjSbzmNmv290S10IPEfRvZ?=
 =?iso-8859-1?Q?sOY/BuzeqGHOfG8SSkUIWi3mwFyWg2f+sZObnvGhbBg8VKOO+738teYtqn?=
 =?iso-8859-1?Q?ZfoVTEExulR69T48M/kYLGYd+J7CWtMd1GtnYuSHBqnRifUYW4aq7m7wAd?=
 =?iso-8859-1?Q?jGnGH8lVBkYgVBF1qZ7Zyj/F7/Z7BdrlUv4ihyaMizm8lcP4QSS4bVzHB8?=
 =?iso-8859-1?Q?qEOOli+OPcayeRpjvsAB3tIXu0PYVmWZbUPEfkYvsRo99o0IBDRC/nWdX6?=
 =?iso-8859-1?Q?VQaTtBlontsgVFK4suzaROx1jJ4XMAvoLJ6OFbtZLSZXN/nzmISroXltg0?=
 =?iso-8859-1?Q?V/LvMVlToShS73JU0NQSHkgUaWOYI+mYum5aXzmlWTX5fPTRaLCMbfO+vy?=
 =?iso-8859-1?Q?wTVfEqlermTSrc/b37ipewvRVfRY2I25eI5Sma0acPlI+Ablsrvx7/YxGL?=
 =?iso-8859-1?Q?L/9Ok6ugXUt6CsczUJZr2KvDmQaXdNJAAEfbethrsV5bBSFWaa8lQOkUOa?=
 =?iso-8859-1?Q?k+oOrzri90KXX20xhHJxTIUnKdRXu+CM+BmugYzaqHmA=3D=3D?=
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)(42112799006)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?M9lAFQPxTLOyfBU/qXBLJrdcYzleoK48qBFsKvHOsIeEYTivIW1TNwSlYJ?=
 =?iso-8859-1?Q?jXfnujGcoXuA1/IZ8ez6N2NzZ/BML8hm7EP1F7tQP3TjzJ+FgF7ZdVt/IU?=
 =?iso-8859-1?Q?P5Coh2uqwdnfLkDSHTTyXUYodKVBG+3ruh4NXCvbw/pqqnWvgh8OVS6w5d?=
 =?iso-8859-1?Q?cuD1gfldblxnLWN8HFCnEIj+uKgzj5QDOLivhb55M/KCIHN9fZjn93qvt9?=
 =?iso-8859-1?Q?d7xX14ItQStlzK1GQP9GBIEK7zJ2e0Dl+QzfJw6/MOb0jRncMk+K6aB6LN?=
 =?iso-8859-1?Q?ZOWRcjsfYvBJWdUIMKYDgSYwf3swDMEk5oIpZVv5CjTGkMGAdt4q88JKwN?=
 =?iso-8859-1?Q?vKs6pr2cpCclG3XhFP9z72guKRmqxKHXtmX9FYM4eTk6hE63XWRUAn1bmt?=
 =?iso-8859-1?Q?ygYqPejs39uA5iv1dtgwTr2IpLS+LxeD1gZ0Y8YrIoOf5LvacAmUhXOSig?=
 =?iso-8859-1?Q?x04DH7wg6hgf/EXtHpXgH7mB+bWkANWbzMv+tg5a9JA+K+gXvVvEMVw1MZ?=
 =?iso-8859-1?Q?ax5h2dHhun5Gw80awfp9z8zcIsI3+K6XYvpjkkK3NLXf5Wqn9R9M9j1AGc?=
 =?iso-8859-1?Q?xNgDdxJDh9/FH8ayGmAXQ/hZm2wKJoj5CKhckapXrWSyAuSgRBS/8SvC7T?=
 =?iso-8859-1?Q?HXHeC+weOyVPjH+8oZLIoUSupU5izEWxEoYVSglMFuOFKNDOuRYiviah9g?=
 =?iso-8859-1?Q?Ll7WYnp8/D3tovPl0mBMTDh5g/nowWqNb7PKEZXFHqQTEkoTOSTYvnuKcc?=
 =?iso-8859-1?Q?0mnC5Z90q09CX0leR/6ySUw0jtqCCKlXLFiy26ZyAUT10zQH3OrkglNZLk?=
 =?iso-8859-1?Q?hR7iy4fjIviYss37un3lKwrL/Or+hhEfi0NgZJtvA2UbXjw1SX9pOWh6+i?=
 =?iso-8859-1?Q?Otu1VHm1Q4HjogJXsilqfsElsAk88szrcg9AsrC66TP27YLE9aVJrEmSaQ?=
 =?iso-8859-1?Q?3cLa0qyZq8EElbGzMs3iqfnBN06ViMrYgOMHhh8ewshn8XkcgqsVUvo8gp?=
 =?iso-8859-1?Q?NQeW6XiZybO0satDYt+B1Xlt7+jNwqgPGoyXE46Vpj+71yoEvw0rDmaiP5?=
 =?iso-8859-1?Q?0ORBrE7qmXmR69LGxq2dpmW8zI95bxOARfXnnn9e/kJifJJSD7H0SCnw1v?=
 =?iso-8859-1?Q?TVISeIT5UQN6HFriE5PCWvcKRfy21Gzkh0pFWMnhkwX+BM95Jg4M69jTt/?=
 =?iso-8859-1?Q?dVh9IAQpZci5uY7NzjDk2kF2WSZQyyFoCuFqF7owrNrtwAHFpTkKixuRn8?=
 =?iso-8859-1?Q?HEzPTg3L0s/S5f9RwV7//D+xmqSJ+DhqRiouiAt+iYJ9Z9yGk+UMwq2+2h?=
 =?iso-8859-1?Q?PUOzteqqZgT34wqNocg22umQuLhDdt2HublKPWvR/PkwRWAxm6ND+OBdZw?=
 =?iso-8859-1?Q?w16tGLmugg3E7GtpwYMLWiPWp04/fJl6TwvV/UYkC09qggA+CtJhe40rLt?=
 =?iso-8859-1?Q?KBAyI4VyI777RVNpQGwKC47Fu9jV39cxpI2WBklrxM0bJbPTAZ4h6Xg/E8?=
 =?iso-8859-1?Q?LtS2zhXHMjJUtHWly6IilHkk6/YpAyIeZbzPkDsp5eYNOwGGfEtLoaquaI?=
 =?iso-8859-1?Q?Rr1nBcr3b6MZSWVZKU0c9+uGvp8akhzoVRcBO07R34TFFt1/vwxZknU2do?=
 =?iso-8859-1?Q?na5FuLPpIfsaWjZXi/o/MCKNgkLXDulQh87OCd1zLzFoLTUCIT2K+Dkw?=
 =?iso-8859-1?Q?=3D=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: d15c5df9-cd96-4733-254c-08dde0cbdd17
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Aug 2025 16:00:34.8505
 (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: dF2HXbAEEG14cP7J+1+3L01RqICtti57X1o2bO3Mmzwkk//UBLuBGHXeiLVMcZaj2he43JRR0GWP6oY0wMW4S6Oh23J3XKgDDuZfPVuht/c=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR03MB9164


Hi,

Leonid Komarianskyi <Leonid_Komarianskyi@epam.com> writes:

> Currently, many common functions perform the same operations to calculate
> GIC register addresses. This patch consolidates the similar code into
> a separate helper function to improve maintainability and reduce duplicat=
ion.
> This refactoring also simplifies the implementation of eSPI support in fu=
ture
> changes.
>
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>

Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

>
> ---
> Changes in V2:
> - no changes
> ---
>  xen/arch/arm/gic-v3.c          | 99 ++++++++++++++++++++++------------
>  xen/arch/arm/include/asm/irq.h |  1 +
>  2 files changed, 67 insertions(+), 33 deletions(-)
>
> diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
> index cd3e1acf79..8fd78aba44 100644
> --- a/xen/arch/arm/gic-v3.c
> +++ b/xen/arch/arm/gic-v3.c
> @@ -445,17 +445,62 @@ static void gicv3_dump_state(const struct vcpu *v)
>      }
>  }
> =20
> +static void __iomem *get_addr_by_offset(struct irq_desc *irqd, u32 offse=
t)
> +{
> +    switch ( irqd->irq )
> +    {
> +    case 0 ... (NR_GIC_LOCAL_IRQS - 1):
> +        switch ( offset )
> +        {
> +        case GICD_ISENABLER:
> +        case GICD_ICENABLER:
> +        case GICD_ISPENDR:
> +        case GICD_ICPENDR:
> +        case GICD_ISACTIVER:
> +        case GICD_ICACTIVER:
> +            return (GICD_RDIST_SGI_BASE + offset);
> +        case GICD_ICFGR:
> +            return (GICD_RDIST_SGI_BASE + GICR_ICFGR1);
> +        case GICD_IPRIORITYR:
> +            return (GICD_RDIST_SGI_BASE + GICR_IPRIORITYR0 + irqd->irq);
> +        default:
> +            break;
> +        }
> +    case NR_GIC_LOCAL_IRQS ... SPI_MAX_INTID:
> +        switch ( offset )
> +        {
> +        case GICD_ISENABLER:
> +        case GICD_ICENABLER:
> +        case GICD_ISPENDR:
> +        case GICD_ICPENDR:
> +        case GICD_ISACTIVER:
> +        case GICD_ICACTIVER:
> +            return (GICD + offset + (irqd->irq / 32) * 4);
> +        case GICD_ICFGR:
> +            return (GICD + GICD_ICFGR + (irqd->irq / 16) * 4);
> +        case GICD_IROUTER:
> +            return (GICD + GICD_IROUTER + irqd->irq * 8);
> +        case GICD_IPRIORITYR:
> +            return (GICD + GICD_IPRIORITYR + irqd->irq);
> +        default:
> +            break;
> +        }
> +    default:
> +        break;
> +    }
> +
> +    /* Something went wrong, we shouldn't be able to reach here */
> +    panic("Invalid offset 0x%x for IRQ#%d", offset, irqd->irq);
> +
> +    return NULL;
> +}
> +
>  static void gicv3_poke_irq(struct irq_desc *irqd, u32 offset, bool wait_=
for_rwp)
>  {
>      u32 mask =3D 1U << (irqd->irq % 32);
> -    void __iomem *base;
> -
> -    if ( irqd->irq < NR_GIC_LOCAL_IRQS )
> -        base =3D GICD_RDIST_SGI_BASE;
> -    else
> -        base =3D GICD;
> +    void __iomem *addr =3D get_addr_by_offset(irqd, offset);
> =20
> -    writel_relaxed(mask, base + offset + (irqd->irq / 32) * 4);
> +    writel_relaxed(mask, addr);
> =20
>      if ( wait_for_rwp )
>          gicv3_wait_for_rwp(irqd->irq);
> @@ -463,15 +508,9 @@ static void gicv3_poke_irq(struct irq_desc *irqd, u3=
2 offset, bool wait_for_rwp)
> =20
>  static bool gicv3_peek_irq(struct irq_desc *irqd, u32 offset)
>  {
> -    void __iomem *base;
> -    unsigned int irq =3D irqd->irq;
> -
> -    if ( irq >=3D NR_GIC_LOCAL_IRQS)
> -        base =3D GICD + (irq / 32) * 4;
> -    else
> -        base =3D GICD_RDIST_SGI_BASE;
> +    void __iomem *addr =3D get_addr_by_offset(irqd, offset);
> =20
> -    return !!(readl(base + offset) & (1U << (irq % 32)));
> +    return !!(readl(addr) & (1U << (irqd->irq % 32)));
>  }
> =20
>  static void gicv3_unmask_irq(struct irq_desc *irqd)
> @@ -558,30 +597,26 @@ static inline uint64_t gicv3_mpidr_to_affinity(int =
cpu)
>  static void gicv3_set_irq_type(struct irq_desc *desc, unsigned int type)
>  {
>      uint32_t cfg, actual, edgebit;
> -    void __iomem *base;
> -    unsigned int irq =3D desc->irq;
> +    void __iomem *addr;
> =20
>      /* SGI's are always edge-triggered not need to call GICD_ICFGR0 */
> -    ASSERT(irq >=3D NR_GIC_SGI);
> +    ASSERT(desc->irq >=3D NR_GIC_SGI);
> =20
>      spin_lock(&gicv3.lock);
> =20
> -    if ( irq >=3D NR_GIC_LOCAL_IRQS)
> -        base =3D GICD + GICD_ICFGR + (irq / 16) * 4;
> -    else
> -        base =3D GICD_RDIST_SGI_BASE + GICR_ICFGR1;
> +    addr =3D get_addr_by_offset(desc, GICD_ICFGR);
> =20
> -    cfg =3D readl_relaxed(base);
> +    cfg =3D readl_relaxed(addr);
> =20
> -    edgebit =3D 2u << (2 * (irq % 16));
> +    edgebit =3D 2u << (2 * (desc->irq % 16));
>      if ( type & IRQ_TYPE_LEVEL_MASK )
>          cfg &=3D ~edgebit;
>      else if ( type & IRQ_TYPE_EDGE_BOTH )
>          cfg |=3D edgebit;
> =20
> -    writel_relaxed(cfg, base);
> +    writel_relaxed(cfg, addr);
> =20
> -    actual =3D readl_relaxed(base);
> +    actual =3D readl_relaxed(addr);
>      if ( ( cfg & edgebit ) ^ ( actual & edgebit ) )
>      {
>          printk(XENLOG_WARNING "GICv3: WARNING: "
> @@ -600,15 +635,12 @@ static void gicv3_set_irq_type(struct irq_desc *des=
c, unsigned int type)
>  static void gicv3_set_irq_priority(struct irq_desc *desc,
>                                     unsigned int priority)
>  {
> -    unsigned int irq =3D desc->irq;
> +    void __iomem *addr;
> =20
>      spin_lock(&gicv3.lock);
> =20
> -    /* Set priority */
> -    if ( irq < NR_GIC_LOCAL_IRQS )
> -        writeb_relaxed(priority, GICD_RDIST_SGI_BASE + GICR_IPRIORITYR0 =
+ irq);
> -    else
> -        writeb_relaxed(priority, GICD + GICD_IPRIORITYR + irq);
> +    addr =3D get_addr_by_offset(desc, GICD_IPRIORITYR);
> +    writeb_relaxed(priority, addr);
> =20
>      spin_unlock(&gicv3.lock);
>  }
> @@ -1273,6 +1305,7 @@ static void gicv3_irq_set_affinity(struct irq_desc =
*desc, const cpumask_t *mask)
>  {
>      unsigned int cpu;
>      uint64_t affinity;
> +    void __iomem *addr =3D get_addr_by_offset(desc, GICD_IROUTER);
> =20
>      ASSERT(!cpumask_empty(mask));
> =20
> @@ -1284,7 +1317,7 @@ static void gicv3_irq_set_affinity(struct irq_desc =
*desc, const cpumask_t *mask)
>      affinity &=3D ~GICD_IROUTER_SPI_MODE_ANY;
> =20
>      if ( desc->irq >=3D NR_GIC_LOCAL_IRQS )
> -        writeq_relaxed_non_atomic(affinity, (GICD + GICD_IROUTER + desc-=
>irq * 8));
> +        writeq_relaxed_non_atomic(affinity, addr);
> =20
>      spin_unlock(&gicv3.lock);
>  }
> diff --git a/xen/arch/arm/include/asm/irq.h b/xen/arch/arm/include/asm/ir=
q.h
> index fce7e42a33..5bc6475eb4 100644
> --- a/xen/arch/arm/include/asm/irq.h
> +++ b/xen/arch/arm/include/asm/irq.h
> @@ -29,6 +29,7 @@ struct arch_irq_desc {
>   */
>  #define NR_IRQS		1024
> =20
> +#define SPI_MAX_INTID   1019
>  #define LPI_OFFSET      8192
> =20
>  /* LPIs are always numbered starting at 8192, so 0 is a good invalid cas=
e. */

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 16:14:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 16:14:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1088996.1446691 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up7ve-00074y-JB; Thu, 21 Aug 2025 16:14:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1088996.1446691; Thu, 21 Aug 2025 16: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 1up7ve-00074r-Fx; Thu, 21 Aug 2025 16:14:18 +0000
Received: by outflank-mailman (input) for mailman id 1088996;
 Thu, 21 Aug 2025 16:14:17 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1up7vd-00074l-N1
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 16:14:17 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1up7vc-00Gony-35;
 Thu, 21 Aug 2025 16:14:17 +0000
Received: from [15.248.3.91] (helo=[10.24.67.183])
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1up7vc-00Blg0-35;
 Thu, 21 Aug 2025 16:14: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=xT3/xcql+qm6XsMDqL3D2XdE5ABxLpvhWrulHmg82qQ=; b=huN2FnVyGB/PdirL3Mp1QAbAfE
	N4FnfcftFFpNq8Abe3XV59Thtd9mtIpImprU5bO4DTVb4LXNx5N7sewtVwpTSI36GoUzN/0DEIacu
	3ND2QQ1b2MdVOj/74NoEaNBmkml9yPMByDcb1Mg8qy+/1E+ztTsjcqBD9E0PUFedTkj0=;
Message-ID: <915641a6-8cc6-45bf-a1ee-d69b286e7d30@xen.org>
Date: Thu, 21 Aug 2025 17:14:15 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 01/10] xen/arm: gicv3: refactor obtaining GIC addresses
 for common operations
Content-Language: en-GB
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1754514206.git.leonid_komarianskyi@epam.com>
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Leonid,

On 07/08/2025 13:33, Leonid Komarianskyi wrote:
> Currently, many common functions perform the same operations to calculate
> GIC register addresses. This patch consolidates the similar code into
> a separate helper function to improve maintainability and reduce duplication.
> This refactoring also simplifies the implementation of eSPI support in future
> changes.
> 
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
> 
> ---
> Changes in V2:
> - no changes

I am a bit surprised this is just saying no changes given the discussion 
in v1. I feel you should have pinged on the v1 to close off the 
discussion before sending v2.

While I understand your point and could accept we consolidate the code...


> ---
>   xen/arch/arm/gic-v3.c          | 99 ++++++++++++++++++++++------------
>   xen/arch/arm/include/asm/irq.h |  1 +
>   2 files changed, 67 insertions(+), 33 deletions(-)
> 
> diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
> index cd3e1acf79..8fd78aba44 100644
> --- a/xen/arch/arm/gic-v3.c
> +++ b/xen/arch/arm/gic-v3.c
> @@ -445,17 +445,62 @@ static void gicv3_dump_state(const struct vcpu *v)
>       }
>   }
>   
> +static void __iomem *get_addr_by_offset(struct irq_desc *irqd, u32 offset)
> +{
> +    switch ( irqd->irq )
> +    {
> +    case 0 ... (NR_GIC_LOCAL_IRQS - 1):
> +        switch ( offset )
> +        {
> +        case GICD_ISENABLER:
> +        case GICD_ICENABLER:
> +        case GICD_ISPENDR:
> +        case GICD_ICPENDR:
> +        case GICD_ISACTIVER:
> +        case GICD_ICACTIVER:
> +            return (GICD_RDIST_SGI_BASE + offset);
> +        case GICD_ICFGR:
> +            return (GICD_RDIST_SGI_BASE + GICR_ICFGR1);
> +        case GICD_IPRIORITYR:
> +            return (GICD_RDIST_SGI_BASE + GICR_IPRIORITYR0 + irqd->irq);
> +        default:
> +            break;
> +        }
> +    case NR_GIC_LOCAL_IRQS ... SPI_MAX_INTID:
> +        switch ( offset )
> +        {
> +        case GICD_ISENABLER:
> +        case GICD_ICENABLER:
> +        case GICD_ISPENDR:
> +        case GICD_ICPENDR:
> +        case GICD_ISACTIVER:
> +        case GICD_ICACTIVER:
> +            return (GICD + offset + (irqd->irq / 32) * 4);
> +        case GICD_ICFGR:
> +            return (GICD + GICD_ICFGR + (irqd->irq / 16) * 4);
> +        case GICD_IROUTER:
> +            return (GICD + GICD_IROUTER + irqd->irq * 8);
> +        case GICD_IPRIORITYR:
> +            return (GICD + GICD_IPRIORITYR + irqd->irq);
> +        default:
> +            break;
> +        }
> +    default:
> +        break;
> +    }
> +
> +    /* Something went wrong, we shouldn't be able to reach here */
 > +    panic("Invalid offset 0x%x for IRQ#%d", offset, irqd->irq);

... I still quite concerned about using panic here. We need to try to 
handle the error more gracefully in production.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 16:16:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 16:16:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089005.1446700 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up7xt-0007dn-VH; Thu, 21 Aug 2025 16:16:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089005.1446700; Thu, 21 Aug 2025 16:16: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 1up7xt-0007dg-Rz; Thu, 21 Aug 2025 16:16:37 +0000
Received: by outflank-mailman (input) for mailman id 1089005;
 Thu, 21 Aug 2025 16:16:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6kfR=3B=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1up7xt-0007da-6c
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 16:16:37 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 35addf57-7eaa-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 18:16:36 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by AM9PR03MB6850.eurprd03.prod.outlook.com
 (2603:10a6:20b:2dd::12) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Thu, 21 Aug
 2025 16:16:34 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9052.013; Thu, 21 Aug 2025
 16:16: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>
X-Inumbo-ID: 35addf57-7eaa-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=T0uAgK9pG1SbuErXh6UUpTtDsj+l2AuWmMAmj8geADO8WuwQzI87r+eCxb3nqrPDp+irqFs3nh9giaXtYPGGHQzI8oXskILuVdKVcrb24/BO30dIpLskaDCA1TqiWCx4+jAbTOTAKR8V3FfKBFuQqiOUsELL1tkdK3hnkBdCc3d9wyBedo8VZEJLOcTO3aG3x6SPmBzGAzN7nQDS4mmCaZA8eDPeAQzCLzs7NY0SHc1SJ0PtZnCGtlKRHPYv39NMdyk+lBbd4e6NVcZ3Ce3QRmqHUWTgbwR6Wb46VKh+Gffhn0zjgeep0rmLpQLuNs0dCd8/TKoNL0vfqqtqygGWqA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=NvPqzz75D5k/uaF3f/ms0CIp42w16hYgaIseShsd/MU=;
 b=VM7OpNEwfAcZqHYdK+XmH3Eq3gOIsKnt/dQHLNzab7MP+0FTa/Y6c3HUkqpyUMTtU+JCYgjWIagMH7Syegw0dmxDeR5DAAIJz5GVisPvQQi7sKKxqp+27MebdQ2VRRXxbkxWtkE7o6mwIZK8GaPP/At8hUCkb6Y+RwYxnF+S6ZfbzvnywOQHkmHeTa7y8/MjrjBWumxKeokAx1HQSwy/EQwlk4+rDlSa/ssqQeOmY6AHJoYCyWlpqZixmq41pT+SEgV5G1zq5jC68yEuafEfVAwHmGTlmJVtPt2ASzUQaFmBujBX8DT+RiFy4UCtaABxYC3g+OpYEnCy2Kcak7Nwjg==
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=NvPqzz75D5k/uaF3f/ms0CIp42w16hYgaIseShsd/MU=;
 b=E6EUtrF7lw3HJw21gtl785F1AlkgAALHNhHsFdWeu+9PQqdoqAblch1IYvoN8cN65cVwXjxwksiL5hpukdAkGqffqakExcTQjs0t+uf3aigDoYSY8MaH7LrFTqjTpK1WbAR/gIWx3Ur65QgueJ10elLrz+j+nzDv0MdYcbzrXBxE+Hd/Ff/DBbQ9mmMNAEI9OwNeP7f9c6t/JVf3oYoBT0F4E3yw06d2yn2g147duLqNhuKtyBh1hy/EN0e6qBl3C+BguZw9OBy/7RgAs+yTJaRqAYLFHJwCxb8aT+TPU+L0XUvFOw4NFm4tTQHkkOTHuB4CVkIEXrMXjIg0PsacbQ==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v2 05/10] xen/arm: gicv3: implement handling of GICv3.1
 eSPI
Thread-Topic: [PATCH v2 05/10] xen/arm: gicv3: implement handling of GICv3.1
 eSPI
Thread-Index: AQHcB5d9H9bLPDmInkebrBgUpOnx8g==
Date: Thu, 21 Aug 2025 16:16:33 +0000
Message-ID: <878qjcejkv.fsf@epam.com>
References:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
	<2491bee7441f13a3c1a01fd77ece1749e7276352.1754568795.git.leonid_komarianskyi@epam.com>
In-Reply-To:
 <2491bee7441f13a3c1a01fd77ece1749e7276352.1754568795.git.leonid_komarianskyi@epam.com>
	(Leonid Komarianskyi's message of "Thu, 7 Aug 2025 12:33:31 +0000")
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_|AM9PR03MB6850:EE_
x-ms-office365-filtering-correlation-id: af411be5-9fbe-48d0-c523-08dde0ce188c
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|366016|42112799006|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?oOdR8LKd0pdTrcRmOrpRCaXSwvJ58+OZ856PPrGW2PufGNAiA41RLFmAZQ?=
 =?iso-8859-1?Q?RXTPAdVeBKYr/FVaev4QSivaeZcRErDTgbh4EUPYucydxsVNNnfqkXX6K5?=
 =?iso-8859-1?Q?FR37nXoB/krZyiGXdsTMAo5BtbrPA7BoZTK6o40m61mPumtCD0J5/40les?=
 =?iso-8859-1?Q?A5yQT3TpwWULJMPpAeMmJslFEPeB4ri4Xkd3SnWhSoRMLSnFWc0b+QHPA5?=
 =?iso-8859-1?Q?fmZCk8I+2dT1RT3qJhJKMHPTUQ7Xmkh9Vr9+Rasx62Hwd0FMcZQw+nqel9?=
 =?iso-8859-1?Q?8RfEPByBtmd/rXEG6NwdgQMWyzEbRsoA7B3rl5EXPZMCAw4mnNDHWu9LDu?=
 =?iso-8859-1?Q?QkRUZCM9Nh589h5lmXeXWKpATAI6h2ptivSRWvwAehbgpLlNL37deHSeNR?=
 =?iso-8859-1?Q?SimABgHjiRVQaAiWpCPePU8cAfAUTYjZVnhUDSvIbwENb52rSpnTeG9uWr?=
 =?iso-8859-1?Q?A2RMosQrQNx0USgYpTedzbJ47E69H9jDcUqQe1b0DohiWfqoehvno6eszC?=
 =?iso-8859-1?Q?TezrTIdenqRg1PhHy1koiB6PHKwXHbH2bRXTzbHK7IneSENeuOtLmfs8p9?=
 =?iso-8859-1?Q?9IDnRhQ/bo0iIYsA35vVIrB7awgZcpB+2rAKbyxQH75n0Qb7YoPeOBhamh?=
 =?iso-8859-1?Q?czuXOjFU6orgHlp8my1KnRg0YU87jbF1jZDakVPbYnS5ogN1ZSwqzh+lKu?=
 =?iso-8859-1?Q?TD2X8mx7gJkCgl6Cb4Lh9UbLG1mCcHXf/jEhtYfWnl5WuCU4PhZuQKJlgZ?=
 =?iso-8859-1?Q?DNTIV9I3AtSPKM26XalQz6ndDVAacLxtzfGxSeNcB3exARQHw/1wQ5HmTP?=
 =?iso-8859-1?Q?O/9DQ8JwZazP6qoQOtARA48mUKVmQnW51CpgxRhQpsBpZvuyP++SbpkJo0?=
 =?iso-8859-1?Q?Sr0KO1XtOOj7wdCdK5Ci/2IQSxtz4I6SNaVYxjWvOziifOTG1FcLZHTrKg?=
 =?iso-8859-1?Q?MllC9szd7Zz1VxwT0Q+leLzHT9WiljvMQ62+7+h33QC2t5/k3UtVqiZHlN?=
 =?iso-8859-1?Q?8wXtWacVXAY0bxJCpPr4tB3Th4CctrqhsybvYTGyMHCQZgkm8tNUdf05qK?=
 =?iso-8859-1?Q?fBYD/JhLHwIZR8X9cJLNxBupXrl45JtG497G8NSKQVj1+Jhd4LAgTO9Uae?=
 =?iso-8859-1?Q?z1RIJGvTp2wlnVNDJ1Du+bBFqySYVI8mY3SJADsexb8ga4/FrGR17us9dr?=
 =?iso-8859-1?Q?+jNUzFSqqGIyICf82RW/JJV3ljd/4urIQ223yKXsNFc2babZFj0Tnrevll?=
 =?iso-8859-1?Q?feo4Ohqt0MiB+UUheHVLi8iUdqZet8XcypuY7xf6bVVbfv8nWIZtvFme1u?=
 =?iso-8859-1?Q?l2ydbwMNB2yvh3szWqiQjii/j/JM6s7QrLIolzac6Eo0lJ7O4uC7gi+cOq?=
 =?iso-8859-1?Q?mZH9v2AVzEUv8mNIFqnZbn22Omjl1sOtYNjqYkGyqHIaLpob4rHSxzPSUy?=
 =?iso-8859-1?Q?gVFn8bxg6mToptPAluFJJdAGPcbQEE9ngZLFSY19FhBPbqJa5o3W0TRFyS?=
 =?iso-8859-1?Q?88g2ddD4v6NIiHwkf4IUh/JTgeiKlTVS7pLUTRH96eTA=3D=3D?=
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)(42112799006)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?+1vT+Hiwe/oB9kHGYKuHHfD4pNtQBLAfuHuo9E7/HkVHl9NySpKS+yBEQr?=
 =?iso-8859-1?Q?8EkSw/HBwT+UpDA9lJkZJtfKU1MnSSn0zsUaZ+S4fXsp7fNtY+vYHTkQbG?=
 =?iso-8859-1?Q?xihTAkhO2h4ZlxJRbmrO8gDZtjG6zEz+EtNn4GJ+T71PPAXxJacKz4EwGN?=
 =?iso-8859-1?Q?tf2TaXrSvDEaLtoaEbpQJ8dJ1lJ2hexkQomoDs0s3sS9A/DQGSl1CdHujQ?=
 =?iso-8859-1?Q?VAZdEEUc9SSVaNlmKaONq3NqrrZah8DgjexkEeKRsxpapxX3olUjY7Su2O?=
 =?iso-8859-1?Q?0LysCyV40UPbHwhjhhTsqb43dgdNWyraoQZ2vL23zXp5USvkcv3B2+uBe7?=
 =?iso-8859-1?Q?vzegfT8sR3SEA5AyOy/90wk0aTEE1Gv2AOiX2RXMsWZHk7b/Au7FHyq9t3?=
 =?iso-8859-1?Q?oTL2swMqqw01jZvKUXp4pe5nhHblH+XEds7PEYgbdzuwf5zTT4DRel576D?=
 =?iso-8859-1?Q?g6sD983c50gGClvETjG94bmJYV4ELajD+lZw47argdI4i2QN4r1/IXu/cF?=
 =?iso-8859-1?Q?aWj1mYD0uBPWz3sfnvWz7rsAxwgzfxQU78FmDW4uRbVxbHriIRYilPHDrD?=
 =?iso-8859-1?Q?xX2Xgo0olpqbDtOeEuZUauyx91kEHAlrmJ+H2Tcr8YemZIX1tPiycWrH2H?=
 =?iso-8859-1?Q?ZS6GgYrQM+m83lFxwvy4Y1DJQSUbRwyhJdxqB7tqZp5+H07QYpTzIseTR7?=
 =?iso-8859-1?Q?ZptOuko6/CC93Zx41UnUfUZhVkAKCUsBM6OWG1B7gCZCFXNdInshNw7SuA?=
 =?iso-8859-1?Q?is83d+tEnbPTy2saebc3Umzx0r+idRiO4vwWLvQRD/sZt7kyEPxqZrZsX8?=
 =?iso-8859-1?Q?PZt76mBv4xZQCpHn6nv9jxzb/xhMZeY3V/573a5QYYyyjAUSWNmN1oDZ+U?=
 =?iso-8859-1?Q?+wuYS+AOVbT2s85+Wh/4GmndkMejMMTRz0W7EdrRSDC5YOlBVr02wBoQrf?=
 =?iso-8859-1?Q?Pz4MQgjAeYOQcyjg62Lb89hPgxKTzNC2BjRoPvUOURS9wAf/kMz/nOCc6X?=
 =?iso-8859-1?Q?CYb/9emVOGB4TcChnwZZhQP5WcqM+qOb9Q9uZz5OLfQYaB2GJt7BxJGzA+?=
 =?iso-8859-1?Q?ZnoziSsU9y966er9Tqpb+JmF3aLR00GHB6o/AbXCC5OoOfcsTq2oJsjQ6g?=
 =?iso-8859-1?Q?0ShjEs7O2/+uowz6i8E3SXLu7+DbENy2BWRaXnXaddEs4wVtj1/gBqWXku?=
 =?iso-8859-1?Q?weVadvX8eVUy/UEj6qtTH3rNqsLXcDgAhf+tcsyxnUSFoOT+whwzH05LVI?=
 =?iso-8859-1?Q?umdZZdqNZoFyxAfj2PY/+2q6ysdY2lBcoYbAUzCD1BqifCK+335nsOOvID?=
 =?iso-8859-1?Q?9n/2WKsHQCm+fYfQMzsHsx56HOazODJR5lrxqLBSeKU7JX6Ra/2+GDGweR?=
 =?iso-8859-1?Q?zyzI0Odv/n+uqs72WSWRhlJimkKjbeor2zIG00fZ89Fkug58I39hzgSmzn?=
 =?iso-8859-1?Q?i0M3GPs9aAEy43Ibm5ev9OkWN7UtM1W0j508S/6uQSb6/wCZ7Z6Jyo+cZe?=
 =?iso-8859-1?Q?aGFdaQmdqFTMnRf+qTCAQIAeg63W3nfJLcUCufxpb9utaT7a7Ze2xNjYxA?=
 =?iso-8859-1?Q?riy6h3P59ragRXXaMrP6lID1vKSW7bLIGLhKMlCYEj7+T+Mh+yGdGh3Yu0?=
 =?iso-8859-1?Q?46SqjiFsCDf79d2LhNMraxdyogh/Po54LNaHqv9xw/5w1cR/miSV9m0A?=
 =?iso-8859-1?Q?=3D=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: af411be5-9fbe-48d0-c523-08dde0ce188c
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Aug 2025 16:16:33.5884
 (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: j/JKzdYr7kXO7dUrEbyd8mSYokY5IY8aQKxXtJc6TnkW+iU8oCO+ey6wbFKQEo2nrhpIaFoF/iZNJjCoYseAxFklRI6MHLoQpsCFtJFOF7s=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB6850


Hi,

Leonid Komarianskyi <Leonid_Komarianskyi@epam.com> writes:

> Introduced appropriate register definitions, helper macros,
> and initialization of required GICv3.1 distributor registers
> to support eSPI. This type of interrupt is handled in the
> same way as regular SPI interrupts, with the following
> differences:
>
> 1) eSPIs can have up to 1024 interrupts, starting from the
> beginning of the range, whereas regular SPIs use INTIDs from
> 32 to 1019, totaling 988 interrupts;
> 2) eSPIs start at INTID 4096, necessitating additional interrupt
> index conversion during register operations.
>
> In case if appropriate config is disabled, or GIC HW doesn't
> support eSPI, the existing functionality will remain the same.
>
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
>
> ---
> Changes in V2:
> - move gic_number_espis function from
>   [PATCH 08/10] xen/arm: vgic: add resource management for extended SPIs
>   to use it in the newly introduced gic_is_valid_espi
> - add gic_is_valid_espi which checks if IRQ number is in supported
>   by HW eSPI range
> - update gic_is_valid_irq conditions to allow operations with eSPIs
> ---
>  xen/arch/arm/gic-v3.c                  | 73 ++++++++++++++++++++++++++
>  xen/arch/arm/include/asm/gic.h         | 17 ++++++
>  xen/arch/arm/include/asm/gic_v3_defs.h | 33 ++++++++++++
>  3 files changed, 123 insertions(+)
>
> diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
> index 8fd78aba44..a0e8ee1a1e 100644
> --- a/xen/arch/arm/gic-v3.c
> +++ b/xen/arch/arm/gic-v3.c
> @@ -485,6 +485,36 @@ static void __iomem *get_addr_by_offset(struct irq_d=
esc *irqd, u32 offset)
>          default:
>              break;
>          }
> +#ifdef CONFIG_GICV3_ESPI
> +    case ESPI_BASE_INTID ... ESPI_MAX_INTID:
> +    {
> +        u32 irq_index =3D ESPI_INTID2IDX(irqd->irq);
> +
> +        switch ( offset )
> +        {
> +        case GICD_ISENABLER:
> +            return (GICD + GICD_ISENABLERnE + (irq_index / 32) * 4);
> +        case GICD_ICENABLER:
> +            return (GICD + GICD_ICENABLERnE + (irq_index / 32) * 4);
> +        case GICD_ISPENDR:
> +            return (GICD + GICD_ISPENDRnE + (irq_index / 32) * 4);
> +        case GICD_ICPENDR:
> +            return (GICD + GICD_ICPENDRnE + (irq_index / 32) * 4);
> +        case GICD_ISACTIVER:
> +            return (GICD + GICD_ISACTIVERnE + (irq_index / 32) * 4);
> +        case GICD_ICACTIVER:
> +            return (GICD + GICD_ICACTIVERnE + (irq_index / 32) * 4);
> +        case GICD_ICFGR:
> +            return (GICD + GICD_ICFGRnE + (irq_index / 16) * 4);
> +        case GICD_IROUTER:
> +            return (GICD + GICD_IROUTERnE + irq_index * 8);
> +        case GICD_IPRIORITYR:
> +            return (GICD + GICD_IPRIORITYRnE + irq_index);
> +        default:
> +            break;
> +        }
> +    }
> +#endif
>      default:
>          break;
>      }
> @@ -645,6 +675,40 @@ static void gicv3_set_irq_priority(struct irq_desc *=
desc,
>      spin_unlock(&gicv3.lock);
>  }
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +unsigned int gic_number_espis(void)
> +{
> +    return gic_hw_ops->info->nr_espi;
> +}
> +
> +static void gicv3_dist_espi_common_init(uint32_t type)
> +{
> +    unsigned int espi_nr;
> +    int i;
> +
> +    espi_nr =3D min(1024U, GICD_TYPER_ESPIS_NUM(type));
> +    gicv3_info.nr_espi =3D espi_nr;
> +    /* The GIC HW doesn't support eSPI, so we can leave from here */
> +    if ( gicv3_info.nr_espi =3D=3D 0 )
> +        return;
> +
> +    for ( i =3D 0; i < espi_nr; i +=3D 16 )
> +        writel_relaxed(0, GICD + GICD_ICFGRnE + (i / 16) * 4);
> +
> +    for ( i =3D 0; i < espi_nr; i +=3D 4 )
> +        writel_relaxed(GIC_PRI_IRQ_ALL, GICD + GICD_IPRIORITYRnE + (i / =
4) * 4);
> +
> +    for ( i =3D 0; i < espi_nr; i +=3D 32 )
> +    {
> +        writel_relaxed(0xffffffffU, GICD + GICD_ICENABLERnE + (i / 32) *=
 4);

Is there are particular reason why you use GENMASK(31,0) below, but
open-coded 0xffffffff here?

> +        writel_relaxed(0xffffffffU, GICD + GICD_ICACTIVERnE + (i / 32) *=
 4);

... and here?

> +    }
> +
> +    for ( i =3D 0; i < espi_nr; i +=3D 32 )
> +        writel_relaxed(GENMASK(31, 0), GICD + GICD_IGROUPRnE + (i / 32) =
* 4);
> +}
> +#endif
> +
>  static void __init gicv3_dist_init(void)
>  {
>      uint32_t type;
> @@ -690,6 +754,10 @@ static void __init gicv3_dist_init(void)
>      for ( i =3D NR_GIC_LOCAL_IRQS; i < nr_lines; i +=3D 32 )
>          writel_relaxed(GENMASK(31, 0), GICD + GICD_IGROUPR + (i / 32) * =
4);
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +    gicv3_dist_espi_common_init(type);
> +#endif
> +
>      gicv3_dist_wait_for_rwp();
> =20
>      /* Turn on the distributor */
> @@ -703,6 +771,11 @@ static void __init gicv3_dist_init(void)
> =20
>      for ( i =3D NR_GIC_LOCAL_IRQS; i < nr_lines; i++ )
>          writeq_relaxed_non_atomic(affinity, GICD + GICD_IROUTER + i * 8)=
;
> +
> +#ifdef CONFIG_GICV3_ESPI
> +    for ( i =3D 0; i < gicv3_info.nr_espi; i++ )
> +        writeq_relaxed_non_atomic(affinity, GICD + GICD_IROUTERnE + i * =
8);
> +#endif
>  }
> =20
>  static int gicv3_enable_redist(void)
> diff --git a/xen/arch/arm/include/asm/gic.h b/xen/arch/arm/include/asm/gi=
c.h
> index ac0b7b783e..2f570abf70 100644
> --- a/xen/arch/arm/include/asm/gic.h
> +++ b/xen/arch/arm/include/asm/gic.h
> @@ -306,8 +306,21 @@ extern void gic_dump_vgic_info(struct vcpu *v);
> =20
>  /* Number of interrupt lines */
>  extern unsigned int gic_number_lines(void);
> +#ifdef CONFIG_GICV3_ESPI
> +extern unsigned int gic_number_espis(void);
> +
> +static inline bool gic_is_valid_espi(unsigned int irq)
> +{
> +    return (irq >=3D ESPI_BASE_INTID && irq < ESPI_IDX2INTID(gic_number_=
espis()));
> +}
> +#endif
> +
>  static inline bool gic_is_valid_irq(unsigned int irq)
>  {
> +#ifdef CONFIG_GICV3_ESPI
> +    if ( gic_is_valid_espi(irq) )
> +        return true;
> +#endif
>      return irq < gic_number_lines();
>  }
> =20
> @@ -325,6 +338,10 @@ struct gic_info {
>      enum gic_version hw_version;
>      /* Number of GIC lines supported */
>      unsigned int nr_lines;
> +#ifdef CONFIG_GICV3_ESPI
> +    /* Number of GIC eSPI supported */
> +    unsigned int nr_espi;
> +#endif
>      /* Number of LR registers */
>      uint8_t nr_lrs;
>      /* Maintenance irq number */
> diff --git a/xen/arch/arm/include/asm/gic_v3_defs.h b/xen/arch/arm/includ=
e/asm/gic_v3_defs.h
> index 2af093e774..7f769b38e3 100644
> --- a/xen/arch/arm/include/asm/gic_v3_defs.h
> +++ b/xen/arch/arm/include/asm/gic_v3_defs.h
> @@ -37,6 +37,39 @@
>  #define GICD_IROUTER1019             (0x7FD8)
>  #define GICD_PIDR2                   (0xFFE8)
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +/* Additional registers for GICv3.1 */
> +#define GICD_IGROUPRnE               (0x1000)
> +#define GICD_IGROUPRnEN              (0x107C)
> +#define GICD_ISENABLERnE             (0x1200)
> +#define GICD_ISENABLERnEN            (0x127C)
> +#define GICD_ICENABLERnE             (0x1400)
> +#define GICD_ICENABLERnEN            (0x147C)
> +#define GICD_ISPENDRnE               (0x1600)
> +#define GICD_ISPENDRnEN              (0x167C)
> +#define GICD_ICPENDRnE               (0x1800)
> +#define GICD_ICPENDRnEN              (0x187C)
> +#define GICD_ISACTIVERnE             (0x1A00)
> +#define GICD_ISACTIVERnEN            (0x1A7C)
> +#define GICD_ICACTIVERnE             (0x1C00)
> +#define GICD_ICACTIVERnEN            (0x1C7C)
> +#define GICD_IPRIORITYRnE            (0x2000)
> +#define GICD_IPRIORITYRnEN           (0x23FC)
> +#define GICD_ICFGRnE                 (0x3000)
> +#define GICD_ICFGRnEN                (0x30FC)
> +#define GICD_IROUTERnE               (0x8000)
> +#define GICD_IROUTERnEN              (0x9FFC)
> +
> +#define GICD_TYPER_ESPI_SHIFT        8
> +#define GICD_TYPER_ESPI_RANGE_SHIFT  27
> +#define GICD_TYPER_ESPI_RANGE_MASK   (0x1F)
> +#define GICD_TYPER_ESPI              (1U << GICD_TYPER_ESPI_SHIFT)
> +#define GICD_TYPER_ESPI_RANGE(typer) ((((typer) & GICD_TYPER_ESPI_RANGE_=
MASK) + 1) * 32)

Isn't this line a bit long?

> +#define GICD_TYPER_ESPIS_NUM(typer)    \
> +        (((typer) & GICD_TYPER_ESPI) ? \
> +        GICD_TYPER_ESPI_RANGE((typer) >> GICD_TYPER_ESPI_RANGE_SHIFT) : =
0)

I am not sure that this is correct.

Probably you wanted to write
+        GICD_TYPER_ESPI_RANGE((typer >> GICD_TYPER_ESPI_RANGE_SHIFT)) : 0)


> +#endif
> +
>  /* Common between GICD_PIDR2 and GICR_PIDR2 */
>  #define GIC_PIDR2_ARCH_MASK         (0xf0)
>  #define GIC_PIDR2_ARCH_GICv3        (0x30)

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 16:17:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 16:17:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089017.1446710 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up7yk-0008Bz-D1; Thu, 21 Aug 2025 16:17:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089017.1446710; Thu, 21 Aug 2025 16:17:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up7yk-0008Bs-9o; Thu, 21 Aug 2025 16:17:30 +0000
Received: by outflank-mailman (input) for mailman id 1089017;
 Thu, 21 Aug 2025 16:17:28 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=D8p+=3B=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1up7yi-0007da-Ef
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 16:17:28 +0000
Received: from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com
 [2a00:1450:4864:20::12e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 54a1599d-7eaa-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 18:17:27 +0200 (CEST)
Received: by mail-lf1-x12e.google.com with SMTP id
 2adb3069b0e04-55ce4b9c904so1354112e87.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 09:17:27 -0700 (PDT)
Received: from [192.168.0.110] ([91.123.151.69])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-55e033fc2e8sm1170025e87.59.2025.08.21.09.17.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Aug 2025 09:17: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>
X-Inumbo-ID: 54a1599d-7eaa-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1755793047; x=1756397847; 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=89T6IqPfnv7RFWXCDNCBs5SoML2g4ic7Se5imZo4w08=;
        b=W70rwt1Bm6A5lkGZaNQSlkH0cAOPzd1oECm1XQQxObHOcJ9P9SzMZ3OBNllKJHD3dH
         ZZzAZ5ZCn4lXgGwU/oJztQcLHsrV20lWW51BYPaOXGyJX4DMXPZJOcxZIFEW1ezEc3JZ
         PIdyeGvOp3YalIDn2ECPksUlaAJKlsuV1/dkE+2x8xaWHiqzMv5ksFtit58XWxaf/Bwc
         F/paSZ50v+oV+fsFshljhB82ElPOORwPGVrdm7Dqodk5i9/FSW1Spo24PqvcsuXIwJcj
         KXlaPhhPIM/lgdhaAZe8jScfo4/Jhuv+7ivxLAorYl8y6SnxaxaEkF9PgijdX7rq5PQh
         vd4Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755793047; x=1756397847;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=89T6IqPfnv7RFWXCDNCBs5SoML2g4ic7Se5imZo4w08=;
        b=Hka9B8yGfxlhtSlZYHqsxnkIseBI1DT4jIrMs2aIHUd5bGDcVRCgnMyU5hr5fh6JHH
         tbxQlaVL0pUJyxSvF68jyGyQOBMBV7U/rNkUyKrFZyPPF7m6zenk5D8dnlKZ0ARNnWP1
         0ekF4zfx3c1prx36N1OONys0YAVEKV6wdMTQH7SisMKiw0eiY16LZusCEZrfUbNYFHPX
         Fv3t/Eb9k9bre97FUIfkLRTuby4dcOhj1BJ7p/A48ywqVND4J3bmAJOh1ElqpzE8Xlhz
         PfENn1V6z01/lu4GPVLrq0Jcy4bbnD/QduBQ5bnUTZzwBGVjRvhLnuRGcm/toxNc40+E
         Mr7Q==
X-Forwarded-Encrypted: i=1; AJvYcCXdjXo7Q080TXXFQDy5J+CUc3N1jyFHuZzpo7zP+mNJJ6P0xGxgxrfN+rVwcCqCEszRiS2pdRGykHk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyuAgUIxhC/jPoED+AdVNFUxPZg8bMBGgIwD3PrGtdN1Y6wEktR
	AanAUDuSUGnUtlSNvlTofytE4l8GhUZ8FbSxu70HL+/14yzMZ2gKwnJs
X-Gm-Gg: ASbGncsOnn4usVkM/OvlwXcjHaYdadP44jiXEJ2vAqXcR8lfBHYJVYn0rrZ2mI0DkY7
	xDKw7WK5/Vd4OVsdyh3GYX6WiZyO3ZrqWGYgJ0aSmV1nt006WHEMxvNubAJpna8bk0QZPHGSd9t
	xzBeHogbATDBDyDV7WarzBa23n+91X8sjBqulcfvUZYTiOslZqxrGq4oEVyyf4S/nWIGuRdu+eL
	r0/27sWOuAmBX+pw0LKFqj52/LM/71wAeHSWj07JN9xEQX7klWl6LeB6Cxcy+ThfzG7rK/77yp9
	xY1eeiS4VgQVqdE3qfjuxgupVZil/gPOBa7KHCvSHYdQSFmU/Em3ey9CPr99U4wb754P6FohQu+
	aFyRZmIC/uJkT+l06Kv44S4Ipag==
X-Google-Smtp-Source: AGHT+IFEaiXKRlNyU6o6fI8sIRDNGjGzT2luqN10miJgdQmJQjsEk0BoS9+Q6Ch4ob3Hc9Dn2CPLLQ==
X-Received: by 2002:a05:6512:1582:b0:550:e8b6:6996 with SMTP id 2adb3069b0e04-55e0da05dc5mr864674e87.2.1755793046690;
        Thu, 21 Aug 2025 09:17:26 -0700 (PDT)
Message-ID: <9b69298d-dda1-4996-a5f9-8a1b5db826b7@gmail.com>
Date: Thu, 21 Aug 2025 19:17:24 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 10/10] xen/arm: vgic-v3: add emulation of GICv3.1 eSPI
 registers
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
 <3ba2381b4c782a5187161f9418e5a35e7916c752.1754568795.git.leonid_komarianskyi@epam.com>
Content-Language: en-US
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
In-Reply-To: <3ba2381b4c782a5187161f9418e5a35e7916c752.1754568795.git.leonid_komarianskyi@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 07.08.25 15:33, Leonid Komarianskyi wrote:

Hello Leonid


> Implemented support for GICv3.1 extended SPI registers for vGICv3,
> allowing the emulation of eSPI-specific behavior for guest domains.
> The implementation includes read and write emulation for eSPI-related
> registers (e.g., GICD_ISENABLERnE, GICD_IROUTERnE, and others),
> following a similar approach to the handling of regular SPIs.
> 
> The eSPI registers, previously located in reserved address ranges,
> are now adjusted to support MMIO read and write operations correctly
> when CONFIG_GICV3_ESPI is enabled.
> 
> The availability of eSPIs and the number of emulated extended SPIs
> for guest domains is reported by setting the appropriate bits in the
> GICD_TYPER register, based on the number of eSPIs requested by the
> domain and supported by the hardware. In cases where the configuration
> option is disabled, the hardware does not support eSPIs, or the domain
> does not request such interrupts, the functionality remains unchanged.
> 
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
> 
> ---
> Changes in V2:
> - add missing rank index conversion for pending and inflight irqs
> ---
>   xen/arch/arm/vgic-v3.c | 248 ++++++++++++++++++++++++++++++++++++++++-
>   1 file changed, 245 insertions(+), 3 deletions(-)
> 
> diff --git a/xen/arch/arm/vgic-v3.c b/xen/arch/arm/vgic-v3.c
> index 4369c55177..1cacbb6e43 100644
> --- a/xen/arch/arm/vgic-v3.c
> +++ b/xen/arch/arm/vgic-v3.c
> @@ -111,7 +111,7 @@ static uint64_t vgic_fetch_irouter(struct vgic_irq_rank *rank,
>    * Note the offset will be aligned to the appropriate boundary.
>    */
>   static void vgic_store_irouter(struct domain *d, struct vgic_irq_rank *rank,
> -                               unsigned int offset, uint64_t irouter)
> +                               unsigned int offset, uint64_t irouter, bool espi)
>   {
>       struct vcpu *new_vcpu, *old_vcpu;
>       unsigned int virq;
> @@ -123,7 +123,8 @@ static void vgic_store_irouter(struct domain *d, struct vgic_irq_rank *rank,
>        * The IROUTER0-31, used for SGIs/PPIs, are reserved and should
>        * never call this function.
>        */
> -    ASSERT(virq >= 32);
> +    if ( !espi )
> +        ASSERT(virq >= 32);
>   
>       /* Get the index in the rank */
>       offset = virq & INTERRUPT_RANK_MASK;
> @@ -146,6 +147,11 @@ static void vgic_store_irouter(struct domain *d, struct vgic_irq_rank *rank,
>       /* Only migrate the IRQ if the target vCPU has changed */
>       if ( new_vcpu != old_vcpu )
>       {
> +#ifdef CONFIG_GICV3_ESPI
> +        /* Convert virq index to eSPI range */
> +        if ( espi )
> +            virq = ESPI_IDX2INTID(virq);
> +#endif
>           if ( vgic_migrate_irq(old_vcpu, new_vcpu, virq) )
>               write_atomic(&rank->vcpu[offset], new_vcpu->vcpu_id);
>       }
> @@ -685,6 +691,9 @@ static int __vgic_v3_distr_common_mmio_read(const char *name, struct vcpu *v,
>       {
>       case VRANGE32(GICD_IGROUPR, GICD_IGROUPRN):
>       case VRANGE32(GICD_IGRPMODR, GICD_IGRPMODRN):
> +#ifdef CONFIG_GICV3_ESPI
> +    case VRANGE32(GICD_IGROUPRnE, GICD_IGROUPRnEN):
> +#endif
>           /* We do not implement security extensions for guests, read zero */
>           if ( dabt.size != DABT_WORD ) goto bad_width;
>           goto read_as_zero;
> @@ -710,11 +719,19 @@ static int __vgic_v3_distr_common_mmio_read(const char *name, struct vcpu *v,
>       /* Read the pending status of an IRQ via GICD/GICR is not supported */
>       case VRANGE32(GICD_ISPENDR, GICD_ISPENDRN):
>       case VRANGE32(GICD_ICPENDR, GICD_ICPENDRN):
> +#ifdef CONFIG_GICV3_ESPI
> +    case VRANGE32(GICD_ISPENDRnE, GICD_ISPENDRnEN):
> +    case VRANGE32(GICD_ICPENDRnE, GICD_ICPENDRnEN):
> +#endif
>           goto read_as_zero;
>   
>       /* Read the active status of an IRQ via GICD/GICR is not supported */
>       case VRANGE32(GICD_ISACTIVER, GICD_ISACTIVERN):
>       case VRANGE32(GICD_ICACTIVER, GICD_ICACTIVERN):
> +#ifdef CONFIG_GICV3_ESPI
> +    case VRANGE32(GICD_ISACTIVERnE, GICD_ISACTIVERnEN):
> +    case VRANGE32(GICD_ICACTIVERnE, GICD_ICACTIVERnEN):
> +#endif
>           goto read_as_zero;
>   
>       case VRANGE32(GICD_IPRIORITYR, GICD_IPRIORITYRN):
> @@ -752,6 +769,61 @@ static int __vgic_v3_distr_common_mmio_read(const char *name, struct vcpu *v,
>           return 1;
>       }
>   
> +#ifdef CONFIG_GICV3_ESPI
> +    case VRANGE32(GICD_ISENABLERnE, GICD_ISENABLERnEN):
> +        if ( dabt.size != DABT_WORD ) goto bad_width;


NIT: If I am not mistaken, the goto should be on the next line (here and 
in similar places throughout the added code).

> +        rank = vgic_ext_rank_offset(v, 1, reg - GICD_ISENABLERnE, DABT_WORD);
> +        if ( rank == NULL ) goto read_as_zero;
> +        vgic_lock_rank(v, rank, flags);
> +        *r = vreg_reg32_extract(rank->ienable, info);
> +        vgic_unlock_rank(v, rank, flags);
> +        return 1;
> +
> +    case VRANGE32(GICD_ICENABLERnE, GICD_ICENABLERnEN):
> +        if ( dabt.size != DABT_WORD ) goto bad_width;
> +        rank = vgic_ext_rank_offset(v, 1, reg - GICD_ICENABLERnE, DABT_WORD);
> +        if ( rank == NULL ) goto read_as_zero;
> +        vgic_lock_rank(v, rank, flags);
> +        *r = vreg_reg32_extract(rank->ienable, info);
> +        vgic_unlock_rank(v, rank, flags);
> +        return 1;
> +
> +    case VRANGE32(GICD_IPRIORITYRnE, GICD_IPRIORITYRnEN):
> +    {
> +        uint32_t ipriorityr;
> +        uint8_t rank_index;
> +
> +        if ( dabt.size != DABT_BYTE && dabt.size != DABT_WORD ) goto bad_width;
> +        rank = vgic_ext_rank_offset(v, 8, reg - GICD_IPRIORITYRnE, DABT_WORD);
> +        if ( rank == NULL ) goto read_as_zero;
> +        rank_index = REG_RANK_INDEX(8, reg - GICD_IPRIORITYRnE, DABT_WORD);
> +
> +        vgic_lock_rank(v, rank, flags);
> +        ipriorityr = ACCESS_ONCE(rank->ipriorityr[rank_index]);
> +        vgic_unlock_rank(v, rank, flags);
> +
> +        *r = vreg_reg32_extract(ipriorityr, info);
> +
> +        return 1;
> +    }
> +
> +    case VRANGE32(GICD_ICFGRnE, GICD_ICFGRnEN):
> +    {
> +        uint32_t icfgr;
> +
> +        if ( dabt.size != DABT_WORD ) goto bad_width;
> +        rank = vgic_ext_rank_offset(v, 2, reg - GICD_ICFGRnE, DABT_WORD);
> +        if ( rank == NULL ) goto read_as_zero;
> +        vgic_lock_rank(v, rank, flags);
> +        icfgr = rank->icfg[REG_RANK_INDEX(2, reg - GICD_ICFGRnE, DABT_WORD)];
> +        vgic_unlock_rank(v, rank, flags);
> +
> +        *r = vreg_reg32_extract(icfgr, info);
> +
> +        return 1;
> +    }
> +#endif
> +
>       default:
>           printk(XENLOG_G_ERR
>                  "%pv: %s: unhandled read r%d offset %#08x\n",
> @@ -782,6 +854,9 @@ static int __vgic_v3_distr_common_mmio_write(const char *name, struct vcpu *v,
>       {
>       case VRANGE32(GICD_IGROUPR, GICD_IGROUPRN):
>       case VRANGE32(GICD_IGRPMODR, GICD_IGRPMODRN):
> +#ifdef CONFIG_GICV3_ESPI
> +    case VRANGE32(GICD_IGROUPRnE, GICD_IGROUPRnEN):
> +#endif
>           /* We do not implement security extensions for guests, write ignore */
>           goto write_ignore_32;
>   
> @@ -871,6 +946,87 @@ static int __vgic_v3_distr_common_mmio_write(const char *name, struct vcpu *v,
>           vgic_unlock_rank(v, rank, flags);
>           return 1;
>   
> +#ifdef CONFIG_GICV3_ESPI
> +    case VRANGE32(GICD_ISENABLERnE, GICD_ISENABLERnEN):
> +        if ( dabt.size != DABT_WORD ) goto bad_width;
> +        rank = vgic_ext_rank_offset(v, 1, reg - GICD_ISENABLERnE, DABT_WORD);
> +        if ( rank == NULL ) goto write_ignore;
> +        vgic_lock_rank(v, rank, flags);
> +        tr = rank->ienable;
> +        vreg_reg32_setbits(&rank->ienable, r, info);
> +        vgic_enable_irqs(v, (rank->ienable) & (~tr), EXT_RANK_IDX2NUM(rank->index));
> +        vgic_unlock_rank(v, rank, flags);
> +        return 1;
> +
> +    case VRANGE32(GICD_ICENABLERnE, GICD_ICENABLERnEN):
> +        if ( dabt.size != DABT_WORD ) goto bad_width;
> +        rank = vgic_ext_rank_offset(v, 1, reg - GICD_ICENABLERnE, DABT_WORD);
> +        if ( rank == NULL ) goto write_ignore;
> +        vgic_lock_rank(v, rank, flags);
> +        tr = rank->ienable;
> +        vreg_reg32_clearbits(&rank->ienable, r, info);
> +        vgic_disable_irqs(v, (~rank->ienable) & tr, EXT_RANK_IDX2NUM(rank->index));
> +        vgic_unlock_rank(v, rank, flags);
> +        return 1;
> +
> +    case VRANGE32(GICD_ISPENDRnE, GICD_ISPENDRnEN):
> +        if ( dabt.size != DABT_WORD ) goto bad_width;
> +        rank = vgic_ext_rank_offset(v, 1, reg - GICD_ISPENDRnE, DABT_WORD);
> +        if ( rank == NULL ) goto write_ignore;
> +
> +        vgic_set_irqs_pending(v, r, EXT_RANK_IDX2NUM(rank->index));
> +
> +        return 1;
> +
> +    case VRANGE32(GICD_ICPENDRnE, GICD_ICPENDRnEN):
> +        if ( dabt.size != DABT_WORD ) goto bad_width;
> +        rank = vgic_ext_rank_offset(v, 1, reg - GICD_ICPENDRnE, DABT_WORD);
> +        if ( rank == NULL ) goto write_ignore;
> +
> +        vgic_check_inflight_irqs_pending(v, EXT_RANK_IDX2NUM(rank->index), r);
> +
> +        goto write_ignore;
> +    case VRANGE32(GICD_ISACTIVERnE, GICD_ISACTIVERnEN):
> +        if ( dabt.size != DABT_WORD ) goto bad_width;
> +        printk(XENLOG_G_ERR
> +               "%pv: %s: unhandled word write %#"PRIregister" to ISACTIVER%d\n",

I would use ISACTIVER%dE in the printed message to distinguish between 
normal and "extended" registers (here and in similar places throughout 
the added code).

> +               v, name, r, reg - GICD_ISACTIVERnE);
> +        return 0;
> +
> +    case VRANGE32(GICD_ICACTIVERnE, GICD_ICACTIVERnEN):
> +        printk(XENLOG_G_ERR
> +               "%pv: %s: unhandled word write %#"PRIregister" to ICACTIVER%d\n",
> +               v, name, r, reg - GICD_ICACTIVER);

s/GICD_ICACTIVER/GICD_ICACTIVERnE


[snip]


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 16:20:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 16:20:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089029.1446721 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up81m-0001F3-Qg; Thu, 21 Aug 2025 16:20:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089029.1446721; Thu, 21 Aug 2025 16:20:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up81m-0001Ew-Nj; Thu, 21 Aug 2025 16:20:38 +0000
Received: by outflank-mailman (input) for mailman id 1089029;
 Thu, 21 Aug 2025 16:20:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=O+vP=3B=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1up81l-0001Eq-0W
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 16:20:37 +0000
Received: from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com
 [2a00:1450:4864:20::42e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c4c4ff4d-7eaa-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 18:20:36 +0200 (CEST)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-3b9e418ba08so549720f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 09:20:36 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b50e11ab8sm2684805e9.24.2025.08.21.09.20.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Aug 2025 09:20:34 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c4c4ff4d-7eaa-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755793235; x=1756398035; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=mwAjPGHgdmUho15Le/6JepBQP61dWPSteegC+7r5tFQ=;
        b=FDpUGEM/MQoHcVu/iMVHWZPNaS2WLTJmIxepx4DlVA4KiojCFzwXz8fByY5WB5exmf
         FDujAqz9AkbBI8IvZH+LdeB3n5KjQgkDn6iioub3lAWAzV2lBrE3H0GzdUftxM6+Wm2s
         FvDEgijoUmFBRYD3eP8a30YuQADIduJxawgQc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755793235; x=1756398035;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mwAjPGHgdmUho15Le/6JepBQP61dWPSteegC+7r5tFQ=;
        b=OtJCCsI1dhn5gn6Fl40vnnScsNFUvl48YtW2oRMj3gUAyJ7ogRz/cyWz2Hf/1o6wtl
         9SP/R6ZfFbz8l87PE5wGOYe7eXhy0/9X5dJ7bqYYhtJ5raV4UJZjv2NHoMPvX7SboAiy
         ttTA0amrVXSu34Du8fm3xoCO37BKWOAaprgTEelmy1Ad5lfYjYQjnd7eciCBytAAzhWj
         WLv8d4Ljqu/sOO5k+uIl+03LyAk/4h95nurHYVuKGriYrd09FMyvQwrzd47pyHE1ZGq9
         xGmsFz8WZSkzisQraGqFVxp7CzbliRFKcg9G/HsgEZhQEBaXYhPEgYpS7IjLTcLMAvYG
         5s0g==
X-Forwarded-Encrypted: i=1; AJvYcCXhpfdC8veRGNKZni0D3h+YJOBoA+pWDkRN1efwg1RA1+p6K9jR/QFlUWl3erxdwYcrEL6Vv/2p610=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwYZoYhWzXzZy2WUqtV07ppOy4/baWDUptd5qS/qGpoj65NZinU
	fO8w9J9bPd7T+e6mlxCB23a2hbjZLw+iLRf0PxIjtoPHfL0phVZigd+C6TOP6hSWNVw=
X-Gm-Gg: ASbGnctpA0loQjxBgLGVxOZdilX18vQi1sBZbSWZFJ78am4m08Qy7IKhsORPBXxpq+J
	CeIW92Wlflo5bf9v7PtwIkiSAjkZ0LNHytrN8kyKh4gmlVkF0YF2PwOQhc7E8YVzVp7FW6sIJlj
	M0c+3lSUKEjp3Ial7Oesj/FGebVENczSprqwhgkM76VsLADfUgV5qzP+mMB2+NJZ/Fv/pJVOve4
	/g6f5HSDZC97BkM7/lae2Y5cEhXquOnlA6XIPtDk8eTjN9l85V+upSrrxnICf5nHuYHpncSB+3n
	LcuqPJQM+sdeUnqqoIxd5YJdf9PhOqn0LQVuoHbZqykI1Ehcp4BF0ZlqdAzyptXPCwcrGgZrNLm
	1Qk/UNwh6ha26EIlrPsb/BmRqAuYkLZEnHkg1ChdVoM16S2JAt1PNg0rW3/phFQJn7IeY9ccx2s
	6YZ5w=
X-Google-Smtp-Source: AGHT+IEGOEk57coYBJDJtRycDLGWu6Sm4tEhRet+wp52N6YG6nycqQdfnNyOujvlNF6rRRU13N35aw==
X-Received: by 2002:adf:f4c4:0:b0:3c5:4844:4612 with SMTP id ffacd0b85a97d-3c548444c12mr1362229f8f.38.1755793235333;
        Thu, 21 Aug 2025 09:20:35 -0700 (PDT)
Message-ID: <885c3544-1a4b-492b-bd3c-dd2e818d7eff@citrix.com>
Date: Thu, 21 Aug 2025 17:20:34 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 02/16] x86/msr: Rework rdmsr_safe() using asm goto()
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
 <20250815204117.3312742-3-andrew.cooper3@citrix.com>
 <aa57cc7c-c659-4949-aaed-4484ead54ffc@suse.com>
 <7b836f06-74ab-4588-8aeb-d0105b54be91@citrix.com>
 <01ece885-1363-4aac-99ce-205354419400@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: <01ece885-1363-4aac-99ce-205354419400@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19/08/2025 5:23 pm, Jan Beulich wrote:
> On 19.08.2025 15:52, Andrew Cooper wrote:
>> On 18/08/2025 12:27 pm, Jan Beulich wrote:
>>> On 15.08.2025 22:41, Andrew Cooper wrote:
>>>> ... on capable toolchains.
>>>>
>>>> This avoids needing to hold rc in a register across the RDMSR, and in most
>>>> cases removes direct testing and branching based on rc, as the fault label can
>>>> be rearranged to directly land on the out-of-line block.
>>>>
>>>> There is a subtle difference in behaviour.  The old behaviour would, on fault,
>>>> still produce 0's and write to val.
>>>>
>>>> The new behaviour only writes val on success, and write_msr() is the only
>>>> place where this matters.  Move temp out of switch() scope and initialise it
>>>> to 0.
>>> But what's the motivation behind making this behavioral change? At least in
>>> the cases where the return value isn't checked, it would feel safer if we
>>> continued clearing the value. Even if in all cases where this could matter
>>> (besides the one you cover here) one can prove correctness by looking at
>>> surrounding code.
>> I didn't realise I'd made a change at first, but it's a consequence of
>> the compiler's ability to rearrange basic blocks.
>>
>> It can be fixed with ...
>>
>>>> --- a/xen/arch/x86/include/asm/msr.h
>>>> +++ b/xen/arch/x86/include/asm/msr.h
>>>> @@ -55,6 +55,24 @@ static inline void wrmsrns(uint32_t msr, uint64_t val)
>>>>  /* rdmsr with exception handling */
>>>>  static inline int rdmsr_safe(unsigned int msr, uint64_t *val)
>>>>  {
>>>> +#ifdef CONFIG_CC_HAS_ASM_GOTO_OUTPUT
>>>> +    uint64_t lo, hi;
>>>> +    asm_inline goto (
>>>> +        "1: rdmsr\n\t"
>>>> +        _ASM_EXTABLE(1b, %l[fault])
>>>> +        : "=a" (lo), "=d" (hi)
>>>> +        : "c" (msr)
>>>> +        :
>>>> +        : fault );
>>>> +
>>>> +    *val = lo | (hi << 32);
>>>> +
>>>> +    return 0;
>>>> +
>>>> + fault:
>> Â Â Â  *val = 0;
>>
>> here, but I don't want to do this.Â  Because val is by pointer and
>> generally spilled to the stack, the compiler can't optimise away the store.
> But the compiler is dealing with such indirection in inline functions just
> fine. I don't expect it would typically spill val to the stack. Is there
> anything specific here that you think would make this more likely?

Yes.Â  The design of the functions they're used in.Â  Adding this line
results in:

add/remove: 0/0 grow/shrink: 7/2 up/down: 109/-36 (73)
FunctionÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  oldÂ Â Â Â  newÂ Â  delta
read_msrÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  1243Â Â Â  1307Â Â Â Â  +64
resource_accessÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  326Â Â Â Â  341Â Â Â Â  +15
hwp_init_msrs.coldÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  297Â Â Â Â  308Â Â Â Â  +11
probe_cpuid_faultingÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  168Â Â Â Â  175Â Â Â Â Â  +7
svm_msr_read_interceptÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  1034Â Â Â  1039Â Â Â Â Â  +5
hwp_write_requestÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  113Â Â Â Â  117Â Â Â Â Â  +4
hwp_init_msrsÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  371Â Â Â Â  374Â Â Â Â Â  +3
amd_log_freqÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  844Â Â Â Â  828Â Â Â Â  -16
guest_rdmsrÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  2168Â Â Â  2148Â Â Â Â  -20

Taking read_msr() as a concrete example, this is because it's a store
into a parent functions variable, not into a local variable, and cannot
be elided.


>
>> I'd far rather get a real compiler error, than to have logic relying on
>> the result of a faulting MSR read.
> A compiler error? (Hmm, perhaps you think of uninitialized variable
> diagnostics. That may or may not trigger, depending on how else the
> caller's variable is used.)

Yes I was referring to the uninitialised variable diagnostic.Â  *_safe()
are fairly rare, and we've got plenty of coverage in CI.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 16:24:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 16:24:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089038.1446731 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up858-0002U8-8j; Thu, 21 Aug 2025 16:24:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089038.1446731; Thu, 21 Aug 2025 16:24: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 1up858-0002U1-5N; Thu, 21 Aug 2025 16:24:06 +0000
Received: by outflank-mailman (input) for mailman id 1089038;
 Thu, 21 Aug 2025 16:24:04 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1up856-0002Tt-Og
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 16:24:04 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1up855-00Gozu-32;
 Thu, 21 Aug 2025 16:24:04 +0000
Received: from [15.248.3.91] (helo=[10.24.67.183])
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1up855-00BmB6-2x;
 Thu, 21 Aug 2025 16:24:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=v/D8RDxiaZ23GgVgrMUBT5uRIp8ISvpRrzKezJufkNo=; b=RuB00EQO7LE8EFovIpoCaTj4aQ
	c16gYOb+WeAKUb8iixrT/PxPvcXQ/wjXrz9sm6WFUivwU1p4UfB/LAQDYuyHd2Gcu2XreLnp7hR/4
	HsLhZa1uMUyzHdnOc4mjuhvx+OUhqKybCqg+219rDuoSqEaeBh2ataOsMkHpt9p1iMlY=;
Message-ID: <3beba113-1f6a-4360-bf18-92bdef6ac8f8@xen.org>
Date: Thu, 21 Aug 2025 17:24:02 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 02/10] xen/arm: gic: implement helper functions for
 INTID checks
Content-Language: en-GB
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>
References: <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
 <51a017aeab39af14ba40ab76b56f317270c7afaa.1754568795.git.leonid_komarianskyi@epam.com>
 <877bywfzvj.fsf@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <877bywfzvj.fsf@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 21/08/2025 16:39, Volodymyr Babchuk wrote:
> Leonid Komarianskyi <Leonid_Komarianskyi@epam.com> writes:
> 
>> Introduced two new helper functions: gic_is_valid_irq and
>> gic_is_shared_irq. The first function helps determine whether an IRQ
>> number is less than the number of lines supported by hardware. The
>> second function additionally checks if the IRQ number falls within the
>> SPI range. Also, updated the appropriate checks to use these new helper
>> functions.
>>
>> The current checks for the real GIC are very similar to those for the
>> vGIC but serve a different purpose. For GIC-related code, the interrupt
>> numbers should be validated based on whether the hardware can operate
>> with such interrupts. On the other hand, for the vGIC, the indexes must
>> also be verified to ensure they are available for a specific domain. The
>> first reason for introducing these helper functions is to avoid
>> potential confusion with vGIC-related checks. The second reason is to
>> consolidate similar code into separate functions, which can be more
>> easily extended by additional conditions, e.g., when implementing
>> extended SPI interrupts.
>>
>> The changes, which replace open-coded checks with the use of the new
>> helper functions, do not introduce any functional changes, as the helper
>> functions follow the current IRQ index verification logic.
>>
>> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
>>
>> ---
>> Changes in V2:
>> - introduced this patch
>> ---
>>   xen/arch/arm/gic.c             | 2 +-
>>   xen/arch/arm/include/asm/gic.h | 9 +++++++++
>>   xen/arch/arm/irq.c             | 2 +-
>>   3 files changed, 11 insertions(+), 2 deletions(-)
>>
>> diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
>> index e80fe0ca24..eb0346a898 100644
>> --- a/xen/arch/arm/gic.c
>> +++ b/xen/arch/arm/gic.c
>> @@ -111,7 +111,7 @@ static void gic_set_irq_priority(struct irq_desc *desc, unsigned int priority)
>>   void gic_route_irq_to_xen(struct irq_desc *desc, unsigned int priority)
>>   {
>>       ASSERT(priority <= 0xff);     /* Only 8 bits of priority */
>> -    ASSERT(desc->irq < gic_number_lines());/* Can't route interrupts that don't exist */
>> +    ASSERT(gic_is_valid_irq(desc->irq));/* Can't route interrupts that don't exist */
>>       ASSERT(test_bit(_IRQ_DISABLED, &desc->status));
>>       ASSERT(spin_is_locked(&desc->lock));
>>   
>> diff --git a/xen/arch/arm/include/asm/gic.h b/xen/arch/arm/include/asm/gic.h
>> index 541f0eeb80..ac0b7b783e 100644
>> --- a/xen/arch/arm/include/asm/gic.h
>> +++ b/xen/arch/arm/include/asm/gic.h
>> @@ -306,6 +306,15 @@ extern void gic_dump_vgic_info(struct vcpu *v);
>>   
>>   /* Number of interrupt lines */
>>   extern unsigned int gic_number_lines(void);
>> +static inline bool gic_is_valid_irq(unsigned int irq)
> 
> We need to do something about naming, because this function completely
> ignores presence of LPIs. What I mean, that it will return "false" for
> any LPI, while you can't argue that LPI is a valid interrupt :)
> I understand that this is expected behavior by current callers, but the
> function name is misleading.
> 
> Name like "gic_is_valid_non_lpi()" seems to mouthful, but it is the best
> I can come up with.

AFAIU, there is no interrupt lines for LPIs. So what about 
gic_is_valid_line()?

> 
>> +{
>> +    return irq < gic_number_lines();
>> +}
>> +
>> +static inline bool gic_is_shared_irq(unsigned int irq)
>> +{
>> +    return (irq >= NR_LOCAL_IRQS && gic_is_valid_irq(irq));
> 
> Again, because of misleading name of gic_is_valid_irq() it may seem that
> this function will return "true" for LPIs as well...

Even if we rename gic_is_valid_irq(), the function name would be 
misleading because LPIs are shared. I think it would be better named
gic_is_spi(...);

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 16:24:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 16:24:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089050.1446741 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up85y-00033V-Mc; Thu, 21 Aug 2025 16:24:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089050.1446741; Thu, 21 Aug 2025 16:24: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 1up85y-00033O-JH; Thu, 21 Aug 2025 16:24:58 +0000
Received: by outflank-mailman (input) for mailman id 1089050;
 Thu, 21 Aug 2025 16:24:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fS9d=3B=arm.com=ada.coupriediaz@srs-se1.protection.inumbo.net>)
 id 1up85y-0002m3-0J
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 16:24:58 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 5dab4b95-7eab-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 18:24:53 +0200 (CEST)
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 C4A32152B;
 Thu, 21 Aug 2025 09:24:43 -0700 (PDT)
Received: from [10.57.1.220] (unknown [10.57.1.220])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 595D03F738;
 Thu, 21 Aug 2025 09:24: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>
X-Inumbo-ID: 5dab4b95-7eab-11f0-b898-0df219b8e170
Message-ID: <9974c597-cc03-42d2-ba3a-3dd05f1a782c@arm.com>
Date: Thu, 21 Aug 2025 17:24:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8 5/8] entry: Add arch_irqentry_exit_need_resched() for
 arm64
To: Jinjie Ruan <ruanjinjie@huawei.com>
References: <20250815030633.448613-1-ruanjinjie@huawei.com>
 <20250815030633.448613-6-ruanjinjie@huawei.com>
From: Ada Couprie Diaz <ada.coupriediaz@arm.com>
Cc: catalin.marinas@arm.com, will@kernel.org, oleg@redhat.com,
 sstabellini@kernel.org, mark.rutland@arm.com, mbenes@suse.cz,
 broonie@kernel.org, anshuman.khandual@arm.com, ryan.roberts@arm.com,
 chenl311@chinatelecom.cn, liaochang1@huawei.com, kristina.martsenko@arm.com,
 leitao@debian.org, ardb@kernel.org, linux-arm-kernel@lists.infradead.org,
 linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org,
 Ada Couprie Diaz <ada.coupriediaz@arm.com>
Content-Language: en-US
Organization: Arm Ltd.
In-Reply-To: <20250815030633.448613-6-ruanjinjie@huawei.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hello,

On 15/08/2025 04:06, Jinjie Ruan wrote:
> Compared to the generic entry code, ARM64 does additional checks
> when deciding to reschedule on return from interrupt. So introduce
> arch_irqentry_exit_need_resched() in the need_resched()
> condition of the generic raw_irqentry_exit_cond_resched(), with
> a NOP default. This will allow ARM64 to implement the architecture
> specific version for switching over to the generic entry code.
>
> Suggested-by: Ada Couprie Diaz <ada.coupriediaz@arm.com>
> Suggested-by: Mark Rutland <mark.rutland@arm.com>
> Suggested-by: Kevin Brodsky <kevin.brodsky@arm.com>
> Suggested-by: Thomas Gleixner <tglx@linutronix.de>
> Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
> ---
Looks good to me, thanks for the changes ! Reviewed-by: Ada Couprie Diaz 
<ada.coupriediaz@arm.com>


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 16:25:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 16:25:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089052.1446751 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up869-0003Ld-UW; Thu, 21 Aug 2025 16:25:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089052.1446751; Thu, 21 Aug 2025 16:25:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up869-0003LW-RD; Thu, 21 Aug 2025 16:25:09 +0000
Received: by outflank-mailman (input) for mailman id 1089052;
 Thu, 21 Aug 2025 16:25:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fS9d=3B=arm.com=ada.coupriediaz@srs-se1.protection.inumbo.net>)
 id 1up869-0002m3-0g
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 16:25:09 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 6674bc20-7eab-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 18:25:07 +0200 (CEST)
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 85839152B;
 Thu, 21 Aug 2025 09:24:58 -0700 (PDT)
Received: from [10.57.1.220] (unknown [10.57.1.220])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 4D68F3F738;
 Thu, 21 Aug 2025 09:25: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>
X-Inumbo-ID: 6674bc20-7eab-11f0-b898-0df219b8e170
Message-ID: <e412cd01-cf76-4486-a475-74b255aff4ab@arm.com>
Date: Thu, 21 Aug 2025 17:25:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8 6/8] arm64: entry: Refactor preempt_schedule_irq()
 check code
To: Jinjie Ruan <ruanjinjie@huawei.com>
References: <20250815030633.448613-1-ruanjinjie@huawei.com>
 <20250815030633.448613-7-ruanjinjie@huawei.com>
From: Ada Couprie Diaz <ada.coupriediaz@arm.com>
Cc: catalin.marinas@arm.com, will@kernel.org, oleg@redhat.com,
 sstabellini@kernel.org, mark.rutland@arm.com, mbenes@suse.cz,
 broonie@kernel.org, anshuman.khandual@arm.com, ryan.roberts@arm.com,
 chenl311@chinatelecom.cn, liaochang1@huawei.com, kristina.martsenko@arm.com,
 leitao@debian.org, ardb@kernel.org, linux-arm-kernel@lists.infradead.org,
 linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org,
 Ada Couprie Diaz <ada.coupriediaz@arm.com>
Content-Language: en-US
Organization: Arm Ltd.
In-Reply-To: <20250815030633.448613-7-ruanjinjie@huawei.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hello,

On 15/08/2025 04:06, Jinjie Ruan wrote:
> To align the structure of the code with irqentry_exit_cond_resched()
> from the generic entry code, hoist the need_irq_preemption()
> and IS_ENABLED() check earlier. And different preemption check functions
> are defined based on whether dynamic preemption is enabled.
>
> Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
> ---

That looks good to me as well, thanks for the changes !
Reviewed-by: Ada Couprie Diaz <ada.coupriediaz@arm.com>



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 16:27:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 16:27:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089071.1446761 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up88R-00048f-8y; Thu, 21 Aug 2025 16:27:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089071.1446761; Thu, 21 Aug 2025 16:27: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 1up88R-00048Y-60; Thu, 21 Aug 2025 16:27:31 +0000
Received: by outflank-mailman (input) for mailman id 1089071;
 Thu, 21 Aug 2025 16:27:29 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6kfR=3B=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1up88P-00047f-MR
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 16:27:29 +0000
Received: from AM0PR83CU005.outbound.protection.outlook.com
 (mail-westeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c201::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id baf8a0ad-7eab-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 18:27:29 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by DU4PR03MB10600.eurprd03.prod.outlook.com
 (2603:10a6:10:58e::12) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.24; Thu, 21 Aug
 2025 16:27:27 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9052.013; Thu, 21 Aug 2025
 16:27:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: baf8a0ad-7eab-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=khZScyQRrCmK1ggd5WuXyjDnVjol1AzbpIo6hMTdG7LHkUuq4cI0wIktjBgBKWFtkreDnbacHMhuW1SKXU2M2G1ItoD8b40Xh/P7DRyUcJl51Sd0oBCapB+fnXoa99RpGvJrDJsxBQX8r7f0bZkK/9TrQWBPt+QSKHXrbUvSkna+l4Z+/sIpZepo/doOj84fHZlZpOOpVFQFuzcMWzxYtaUOXv2M5JzlQ3Nup5Rk8Kthi5WmPbAREfbzg2l8os7eRY+nVXPqu+3NsdP+r7zXnTTFUOWpeqq8FeMOxYlg/R16Qy6uygbPO7JtU6sj/RmZnGqD65uYqe0PGnbxraA5Fg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Pi2g9RJJIRAJzly1Btetk3fZjJYNdeVEiwRaS/1xOfI=;
 b=KL3v25kVJ8qJU2/UX1KRIwPIvsglYX98Jj9yvtxESAp+IKfYaIX2GKjmDEaEZmDCq5luTwmXPZhe80DCXDnshF3oCFDfKy0OW9lNRNj0mc+ROQmwI4cjDLl/QZHxQGK1HC2QX8KSqjhKHJqNZKOlRwC3/G+qUOJ4OYjXumrtDm75veVGKPn0sB6OHTNIHYdQCRoPEZC4tEkF5DMerXyzOnfLyggEFzJGM8k9rq2HiwT73sok6bDW8xQvelK7AwZoacqkiLKgv+stT+LPI8eexm5DZ9/mpU/khie2oJV/QqFIC5vskdR1J0WDDGD4ruNagZ7B425Qz7EuGaZKxWsYjQ==
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=Pi2g9RJJIRAJzly1Btetk3fZjJYNdeVEiwRaS/1xOfI=;
 b=N65asH4jNN0HiKNx/nBTYhIJypxgfRvn750q2DaoBrr4hK0ZFfuTNp5IJ0rjOYqdz6aA9kZ2vH6fvaJzpN7wt+DgZFAGEvd3hCU23mn3zRUip5BJTNJPEIlFT7i2b8t90jYUX+LGKnQ1NbvLXGG20OtHuw8PDZOpDmjZxhE+Yr+vRTONmpHTdLilx3uzbhew641PYLA7ArA+PRb2mjUDgE0UJAGCb44gG2tcZUu8g9dJmDcU6uOyAphS4MhYdeCNEWK2rPQMMU0pH5wdDkZSOldxKHNdKriyhI8nQNlZSiHU21tYdxaUXc6Sylhgalx5adEpHhyIyLTjGMfABlFCqA==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v2 07/10] xen/arm: gicv3: modify ICH_LR_PHYSICAL_MASK to
 allow eSPI processing
Thread-Topic: [PATCH v2 07/10] xen/arm: gicv3: modify ICH_LR_PHYSICAL_MASK to
 allow eSPI processing
Thread-Index: AQHcB5d+mzEvAktxmEWCQ8jbw0fsdA==
Date: Thu, 21 Aug 2025 16:27:26 +0000
Message-ID: <87349kej2q.fsf@epam.com>
References:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
	<c712d9187bb0a19ded1a8b28d2f9ba93815708a9.1754568795.git.leonid_komarianskyi@epam.com>
In-Reply-To:
 <c712d9187bb0a19ded1a8b28d2f9ba93815708a9.1754568795.git.leonid_komarianskyi@epam.com>
	(Leonid Komarianskyi's message of "Thu, 7 Aug 2025 12:33:32 +0000")
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_|DU4PR03MB10600:EE_
x-ms-office365-filtering-correlation-id: 047d7178-15ef-4e8c-17f7-08dde0cf9dda
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|42112799006|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?8XeAKVytJVoOUXwoeeMp4mxRoW/9UwK+20KCZbNyVFFCodxfdT8mTTXPm6?=
 =?iso-8859-1?Q?xP+IY5QfZq0EO3yV+aEy4/+oCF7NBuASb5PzwGsUAwlAwdvmK3RVHVdxMC?=
 =?iso-8859-1?Q?b5b93QQfjDlouX5iF3tcX6g1Y51WE0UqO9O52Gw+gPElpBSOnNnze7S/S5?=
 =?iso-8859-1?Q?drIO2sjEdKvE/+C/x8XzJJQMHcpDxHKI9OgLEMUv+VTCydm85VrQiQo+DF?=
 =?iso-8859-1?Q?Me9FD+AYIXnQ25x1RC5jK7dQZ6yb0ll+gfmuhVtIO0q7NjVa4mbpxN0UYw?=
 =?iso-8859-1?Q?FgmMr7+YNidbCqgweCw7aYmFJB40UQGdJeGMVX5g9hYkhPEBeNZEJhq4RR?=
 =?iso-8859-1?Q?NXo0J4d2P0WOuzXr0ZGcbsL3G2d2e0f1ckqwb5X9ilfRPTM1TAtYB5HlPS?=
 =?iso-8859-1?Q?ncm0s49LN+YTrGRue1Bm+vA1snzUMPGTuW7uIH5uCNQkeRRFYqjnv1IRMs?=
 =?iso-8859-1?Q?+8Xrb7JAgLnGnrv8XLSoVjbhjexVa+y+5kzcSf1+pwoLW+xieQ9MaCxmk/?=
 =?iso-8859-1?Q?p9ZCkS8Oub9BWhzviITmVjem+eiN0rBwXRjgMsl+90X297goMRiJU6sRc9?=
 =?iso-8859-1?Q?zyG58tRUMFNiQbrplWK1o8YJsm0JlHw5aIZNH6D4gqrt0TReoiIGIlOZ83?=
 =?iso-8859-1?Q?EwfNpjRexK3oCRShUHtewDJ4PS4Eushd/iyZawxMKuWbLWTq9tN+0J3xbg?=
 =?iso-8859-1?Q?vlpajOHUBiAZwEdkHrkFcirVbw09zgmdIlty8avpx3jsmWw0UOMmmCgL4n?=
 =?iso-8859-1?Q?G8VopHn7dc5ceaozUwENNAojwQHVzWOWS6xuBUntH6MV6nvZQMKqQRHeRm?=
 =?iso-8859-1?Q?BLanA/ra4L2V4H8/GKQ9a3N2no2lsvrX6qC0YP/EhL5j+D5OH/9dvGBs8f?=
 =?iso-8859-1?Q?OlPMiHKhAXQ8diQZmu+UDoMXHPEHAny0mseBidgjwW38oYS0R7CL29ymx7?=
 =?iso-8859-1?Q?aOKOEFDSsCSg8XptcMX+uykA7So5kegvCWX69PUMltWU9kkSIqtCuZ8+9y?=
 =?iso-8859-1?Q?kVjL9zPtRkbhZUnYmqlrG/Q7YJLD9ySsDaaFIAYbVzStI56M8tBU8oP0p6?=
 =?iso-8859-1?Q?QN+3lN4uGnYls5Fb408kNmtWF7uq6I6noUeIZvxx0MohWCLvRD5YJyTmqo?=
 =?iso-8859-1?Q?X1xPlwJReDPSN5I3vn2xjjcACAzodAvvia/p2Zrq916tFtDAjtUOfSjdoo?=
 =?iso-8859-1?Q?YqkWEsa31GhcfAK80enS4sP6lgb+sF4zYoah/vqcHzaMsZM9Awzmw9mnar?=
 =?iso-8859-1?Q?JjRCm+EAjby6Y3jzgwVPi4eLowsWrTdlFW11+uB/iT5SJ0jP0iePHsb/qf?=
 =?iso-8859-1?Q?VHb3ap//tqbqXHrPZ/7tmkzzkZYmhsuM2/dsonKtr2ARPOfaOdx7V4AMXf?=
 =?iso-8859-1?Q?WQDOTkAh9CT/qyimoHnTwQRpLacBfe6wRPKhV5DEgHjjamD/2K7Fch0uq8?=
 =?iso-8859-1?Q?DqBcPogqdJAQCvZD/EUxXYRlHorK9rNwgb75HOckbVAGuGn7oP6ITR+6xV?=
 =?iso-8859-1?Q?i0JMVmMhz9tkXpxbczbXSXu9qIKRW6dkq0wMyba4AWVQ=3D=3D?=
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)(1800799024)(42112799006)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?jj2/ZDb4om8ANRI9haUvNxX6CpJHaMyhkWFs8E1wf/YdHfnqSfv2u9qUq8?=
 =?iso-8859-1?Q?7zxadxR+W4DWj71pqQUdlEzf5W4v6/sAK5zl78XiyIX425Hi5KygZT2AN7?=
 =?iso-8859-1?Q?EDP3UXKV+QVHPmSbyTReBbq4ZuZt6ehQ5MfJCjI70ApMa/fGYV7mhk0HXA?=
 =?iso-8859-1?Q?Ri4wDYFHCatgmdML8DVw90+yBxQVxx9p5JL8y26Ti/kH3DSIeYi7LZ7F4w?=
 =?iso-8859-1?Q?kVPsf7k9KUVw8dj7Dn83mJ/7KB69krBnJ4pZQkpFyG8Xw/SKx+VfOQxnqi?=
 =?iso-8859-1?Q?VUZxSB1BjW8mkSpu7pILWBHPhy8QrEeid7umk3aAw7Jn23saJZDGKYPG4I?=
 =?iso-8859-1?Q?ywzjcob+0kMDOdTZns5fgCe28EZv+gsAIRVa6yCfiX5NWc4NKRMWjwUGMc?=
 =?iso-8859-1?Q?olwVMLMXQDt+zp6merXPsLUfR+hhsAWUMhtXqFDWNMBH2MGs6fSjQpIkS4?=
 =?iso-8859-1?Q?C0/ylPvf//c9AuyV9vWXHFJOhin42HG95+s3Ayuti/2VFWF5ad1Xg5accB?=
 =?iso-8859-1?Q?PLU+WHFMUHK1iHFxxh7E5RDVG2NC14K8/7Lq95WSHF9yEkG1QRwZJ8stPY?=
 =?iso-8859-1?Q?65WoID7Wb2YeG7o3y0HJJOc38NJe29yQ45XSxY5ibUmJBoGzMAeDa6yFlN?=
 =?iso-8859-1?Q?o/hTSnI8Lq9CbbcAnT8ZWaVxs5uXVB9S2aTxnx09A4k4KMt5RPljDWIcHL?=
 =?iso-8859-1?Q?Mnp0bJWF57oP7se98I8bqZy6P7U/U4trDlCrcS81UXAbfUYdI5VOR7ydRD?=
 =?iso-8859-1?Q?7ud+Ml6EZIEUKHgtRrqyT5q+QiFLmPndsMKVFuJuPhRrSmUCBtUHiAfaOw?=
 =?iso-8859-1?Q?xdm9LMNRT4DNcGNbcbaPF/XETrPoF+ghLjRu7xxd1k24X/b8VAkecCtcSa?=
 =?iso-8859-1?Q?qHlTsQvHvu7R1Q1T1o0pVdy2P/pOHfzXero9t7loaJnxYGExV4OuGTK8bb?=
 =?iso-8859-1?Q?rd59uXCtx0MK1yMl3WDz5H9ubVQBsrpoRKD6T/jBDUuUGaXu5tq9KHvgU0?=
 =?iso-8859-1?Q?g+PNHBCNSpcTKcA1yLaWqJujX0Izd0R19zm1SgQcCuHBjNpYyN6wwD+qvL?=
 =?iso-8859-1?Q?NjQbxvTvZoxY3yfa6kZcKiWfKoeY5gfT8o/wghFv5K62ATkOatKmBykwRw?=
 =?iso-8859-1?Q?2TxjN+KkHokqtMGTVTPj4MmeebBdOLAWHVe5Ek1IZ/cq4qd/XAuzuqoa6h?=
 =?iso-8859-1?Q?+8K2lD7gUBP8zGS6LQM1asYW7caEdlbwZ14vBRERlG3d9Az8mbDiFEuMfT?=
 =?iso-8859-1?Q?DiRIYHJxRjrmeKQn+FFWPk4L0x3Awqp6W3btPLskKSn9NlCTffIB0lpMfs?=
 =?iso-8859-1?Q?LJXS/PGLY7bixHxJwS3Px1qNSuzm7pBXTxblnSAK/DwAD25mtgl9opjQ32?=
 =?iso-8859-1?Q?viAT6KLplxicf6hT7MHrMx0THrLpdvxwNZm9pojwrufDj9g1zn4GeTeBga?=
 =?iso-8859-1?Q?9xEHOdLZkKev0KNAUCAxJo87q12iqZV42FIMzEsqL2doK/ZUMfrlN0DbnH?=
 =?iso-8859-1?Q?VuLQ+7YrZXE1Z6JR+OrHNmW9T3lLADc1OTZKAP0WPI9P99IaBq6YdvPUxF?=
 =?iso-8859-1?Q?SoR0EMaJ2OkrkvuDZ204nnhvAFdB/WmHHirVDLbSuS24bSpEa5vrPvJpWO?=
 =?iso-8859-1?Q?kb+n+NxYrdRl2vhjkKlrtEV5QqcKCptQBNY/BUXvam6TP8GHLUYmnWcQ?=
 =?iso-8859-1?Q?=3D=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: 047d7178-15ef-4e8c-17f7-08dde0cf9dda
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Aug 2025 16:27:26.7606
 (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: O7iXew6lUfyPtSBfSjm1TvMtQ+wd9QZjNoAL4iGIPfCyk0o/ymAgnQUYQmdq2dzpe78S2BrY+RZKbrUYxOgY/x+1xihjR7DqlW1eDXP+P0s=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR03MB10600

Hi Leonid,


Leonid Komarianskyi <Leonid_Komarianskyi@epam.com> writes:

> To properly deactivate guest interrupts and allow them to be retriggered
> after the initial trigger, the LR needs to be updated. The current
> implementation ignores interrupts outside the range specified by the mask
> 0x3FF, which only covers IRQ numbers up to 1023. To enable processing of
> eSPI interrupts, this patch updates the mask to 0x13FF.

I am not sure how this supposed to work. According to the arch
specification, pINTID field in ICH_LR<n>_EL2 is only 12 bits wide.


--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 16:43:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 16:43:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089084.1446771 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up8O0-0007p9-IE; Thu, 21 Aug 2025 16:43:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089084.1446771; Thu, 21 Aug 2025 16:43:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up8O0-0007p2-FU; Thu, 21 Aug 2025 16:43:36 +0000
Received: by outflank-mailman (input) for mailman id 1089084;
 Thu, 21 Aug 2025 16:43:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6kfR=3B=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1up8Ny-0007ow-DP
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 16:43:34 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f6dd5761-7ead-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 18:43:28 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by DB4PR03MB9482.eurprd03.prod.outlook.com
 (2603:10a6:10:3f6::14) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Thu, 21 Aug
 2025 16:43:25 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9052.013; Thu, 21 Aug 2025
 16:43: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>
X-Inumbo-ID: f6dd5761-7ead-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gscr16RKOWdaw+R7KqRd7SlkU6c4RhCdfu6KJnrZkSSuB0zr4jQTvnRenELO59+V+xdChJIPpZwED4IKcnL+WxhAznb0AW61NfTdSkaZgWBjQKLxi8p9AN+EOqfERT7KpULm0DD9SYM0rfw+xjA0bhFtKoMYjFDdUS3gZI6CNks2HdMjHB6S+6pjb4yqUyq79SFHO9YB5W54omV8Ssw4/qpRJVo9uqgJ3AcHSZxZCcRsAe4Bm47hKrOmS0LTv1yBxxWM5fnlFx5/AOFNGx7JPpJ/FtZo4NAzjGVQdS+mp7skxDuA4GMPKmfjspw/pLGb5kvjP5s5B327+S88WxBmqA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IngtRkxpUzuFacG1UFAZOM9ie72jpivLBmjUl1mXvEg=;
 b=pSzVo7JaEoBGuzbZox2IVL2bbI2gZL547mpnHNgVisMUEhLEjRSB+yJkTkdI+iH5kbSgl/DOrtgt98z3ZWoNT2YaKEpZZJQS41A3eKbH7xr5uPhltJZGhSbLB7c0gA21y7ftt3Kl40kP4f86iFfBjKgyTKHCvBM9aYrYuWPVQBIVQtPtU8rBkNccOq3im0+gTT4P1JeAK3n3ESEy/gZfW/xGEv62W5IjikmybAOSi/2R/uC354b678vJTpZhdUieH5Nqog01J26jPtGfTwaMTc23s1PGd3dzoKAh62KAXeNc2V30zj75ukv5CX+Hp5GShCeHCpYNT27I/dWWGgrRXg==
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=IngtRkxpUzuFacG1UFAZOM9ie72jpivLBmjUl1mXvEg=;
 b=MBNkSps42ug30cQWNajvVHc3qupD0CFl7McVF+ctSlPGzFZq43XRWqEaoQCwLO9KJu9Kd/h1JQJKvrH7Z0YZRM/fHmyxCF3l0M/HVa3OkRe1YNNIM7Rzjzi6JS45nrBhmMwM5v+dIObxjEOdA2aSki497tNe17SYuur6do114RcNzXlxraJ15zFiJP5LAvHfjZfIuvKlKltSnaJI+AlPrNSY2BTiPL0hKUf3+sEDwRMslWZ5h9WQoNqguDfEpYz4diAk5BNXHB8ZBVTgZ+w6NxN6udGsrizIEgB5QZ4YCph+0jt/OeEpkM1DbXBxb8QeIyh1IZ89fCQoCww311Iggg==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v2 08/10] xen/arm: vgic: add resource management for
 extended SPIs
Thread-Topic: [PATCH v2 08/10] xen/arm: vgic: add resource management for
 extended SPIs
Thread-Index: AQHcB5d/ZFUghU0g3UyhcWfovVArTw==
Date: Thu, 21 Aug 2025 16:43:25 +0000
Message-ID: <87tt20d3rn.fsf@epam.com>
References:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
	<fde65754a60a8cc090bb212749ec2c10877c4943.1754568795.git.leonid_komarianskyi@epam.com>
In-Reply-To:
 <fde65754a60a8cc090bb212749ec2c10877c4943.1754568795.git.leonid_komarianskyi@epam.com>
	(Leonid Komarianskyi's message of "Thu, 7 Aug 2025 12:33:33 +0000")
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_|DB4PR03MB9482:EE_
x-ms-office365-filtering-correlation-id: e90cc2cf-586a-4bcf-2aae-08dde0d1d950
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|42112799006|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?EjVK3dJv8lUYDCAKlVA6GYe7mCLfkGcDh5AP+0FGSN/+NL+feQdbcDx7l7?=
 =?iso-8859-1?Q?VTKp0M0kRgGOyF0csmNHmocl6ey+L6hc3UiuRWdLsfuFNKWSSb8qawufFQ?=
 =?iso-8859-1?Q?aCnc6YnBr9rAqHqHoJZW3iNaWMi0+zTD3vtPQPDMuyU/tK9ATKQ1hJRQrz?=
 =?iso-8859-1?Q?1EALJTRe0h46rLBuyuzwqn6+D4DFNUyPMybiDCkVJ5IKaTnp7M4gEBtW8h?=
 =?iso-8859-1?Q?sQbKQw1eYRjauxLN4WoZLCroZmSyxAufVA9H8L1G/ZmFmQWdsPG4a0hR3x?=
 =?iso-8859-1?Q?duogxx0Lmk3eCdEgc2+Zx1g53Us/cVBTHJ+qNSFBOYYHLTm/mPwnlHRb+J?=
 =?iso-8859-1?Q?aeenTZQBpXHKFQGYdTNkpbHbVysrwI+32EAu6v3wlcriGV56Y6ciNGkyDb?=
 =?iso-8859-1?Q?xY1vaEAsVv3mEq0uADgJQx/ciPMqrQSa1XOlWqjxNrsSF6zxl5InMH5u5J?=
 =?iso-8859-1?Q?Np6fKXC4iCpHN/rB/n02g70mJdzYWPZbQWZGpVQNrSTrL2+t+EUl3mXvVE?=
 =?iso-8859-1?Q?sCHTfV6t1tsI2SqcBI+F48a1urt3VJrSY6d5SzoXhkXfPdkHDX5HQweOvE?=
 =?iso-8859-1?Q?FknpuFQGZyT9vPd1UdtpZUYkGwPsjsgkNUG3G8Udl7z23+tOPXKhF4zLfC?=
 =?iso-8859-1?Q?U1mzS/Utv84ui15jCp8m7VYcXce+uTavhTOhGuqFOT67ePISLJzkzfU8I4?=
 =?iso-8859-1?Q?OTcKkTOvQrXsco54N3LgnLewkMniIo6sG26aZyPcVHIkZlKaiGygN30w9V?=
 =?iso-8859-1?Q?/SdC/RJ+EFAqvCEBCkS2mMes7l8ic48QB31OgiOdQXxhiKOGZYY/40D+dt?=
 =?iso-8859-1?Q?gANLMHedavA7tPv7lkH8jGI5Sf1QNXPiKxnOzsLuZd7jAPh/T/H2fp58P4?=
 =?iso-8859-1?Q?Cz/IrkxXYDufnniTq9PctRiWTNDmbaUN5oXb7YSdjAris7Z8AR+sltxQhP?=
 =?iso-8859-1?Q?yxLc/WB//ugnomc3gWeEajuTPCDFH34O9w6Z89xAlfSJCUfuggVlXv7RU5?=
 =?iso-8859-1?Q?0/z1dlzFMIBrO+yDbH5Rd9HLbr6fGzihIFEUBbTfFFnQBbQwfMaX31c1QY?=
 =?iso-8859-1?Q?r7yI96HGxvtzLrp1gyxH1Veq47dishLse3BkaNaXvLqdSAOIG4qiZhqocj?=
 =?iso-8859-1?Q?cuKnMUmOYpzXTPAczTn0NzuyrHryBvZtvuv+MbBY8E2JcQniM4TWad1ph6?=
 =?iso-8859-1?Q?IbK87U/ErxqzqTFzmsV4YCT2t9ZCHiNjWAJO9hjotrRIyxwJPbk8sPEjWa?=
 =?iso-8859-1?Q?S0Sg9xVdJP6M9b0zmU+7z5uzUigH4B3qdVWBa6p4KVDvjIJCowNaUJ1oDx?=
 =?iso-8859-1?Q?mNJHFtvqbIbzQHBfz6bdHGtFKVoqL20hBc5LjgYjEvUYc7IZz5b9UqWEPm?=
 =?iso-8859-1?Q?19iqN10izNt1rPPagbYD6Z/9b3EUpcE1+1SwVroCP4GOaxPcgPJ4O3OhA6?=
 =?iso-8859-1?Q?LXRWZDx/Ij3tGtFjOFtOEBEDAe1jiWgIIQqIatF4hDqwh896EQ6hgq3x5t?=
 =?iso-8859-1?Q?0vxkaYKAi7uPClQsYJrQofpZQABMu+gZ8fd/T1ESFnxw=3D=3D?=
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)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?5c7lVq/lg9xz8wMSLT2YK+hYsnUXULsyjdtKV5RzDRezZC3ZWza/6wQWtX?=
 =?iso-8859-1?Q?7bq3nYfMMEJVu/SRq/QZN6ZOtgFzUWTXR/klzXKO40gxZaYpBNGkzmu00f?=
 =?iso-8859-1?Q?l8vzkDP9WWG6muGOVDcW+6IhQtURKzmzUI3l0Mz6pVuE4UEiBXxyjOfijz?=
 =?iso-8859-1?Q?3IChYWOb2q3P0iP91PPtujd4ozQqRfNUDH1X3zttl2xij0uTvQfhYizLDq?=
 =?iso-8859-1?Q?RgL8ZGzcG1URXSHpQdQDqUUgYmhGXJ35G3fpL7kJF73bVVfkgGHfEIMVTz?=
 =?iso-8859-1?Q?ppTYy08yo0Zf/1JEKm4iiRLsV5qEK9KQrbl/6Fm0ErgLYe8X8KsTh7UTns?=
 =?iso-8859-1?Q?p16+oaQwIRjQ6GmpdT/PJOQSbpKokdrwatLBcMWQTV318QaWM21tILD+8O?=
 =?iso-8859-1?Q?KgiRmtE29LbAIqHCH3AO/Xl3azxNO+Dz7RDkpfG5XWT445Ffo5luHvuM+f?=
 =?iso-8859-1?Q?30/E3kZ5IRCP2WBqmqk5bL4bcQM98WIe4/ufPV4c2//ozUwYVnlAxVr4I+?=
 =?iso-8859-1?Q?VfF5MGzJaPHr/RghPCgRricBs4r/DULQax9ftdLb1odTxo3Jy6ifakYsUN?=
 =?iso-8859-1?Q?9g/SA4tVW8FkYeahqj0ksXf6fl5nfCI1D7gExNM8HCahxGkymKVL68iegT?=
 =?iso-8859-1?Q?3KTl5ZZEmK1dbFBIyayZr/mVL7r6Blxk+mWQOrV7Jq+hke0Yuxsc6ny670?=
 =?iso-8859-1?Q?LcwhiyeLwW1LIJmqXyr+X62jnopZgjmme1jgVpCkAaXjGlGE1YRFe8VZ97?=
 =?iso-8859-1?Q?PO0DbWSU4Ud5fYYxl+7bnQNUfc/JJVw7pKCRuQ78ZPmJnPLTx/qsZOWszL?=
 =?iso-8859-1?Q?mXUPl3A6diZAknCnyaXZIK6JDKWskwCOuM+liEVxITUNv7QIinyFI4NavV?=
 =?iso-8859-1?Q?VSb/xcvfnkQo1ciPq+hwuMJTHZ+P93PDM8ObAV1+53WnSZtZ4EEvTeUkX/?=
 =?iso-8859-1?Q?Elh7YiJvLvGfDfMs3pNQBoet8icWzcMMJ7CkNBNwvXU863/XOx+Q6mhBKB?=
 =?iso-8859-1?Q?PPI0nimi+o0AZZeozDbwg/87Xlthxy8OnWm5N8JrHL0pcqNYVmuA5PAjmr?=
 =?iso-8859-1?Q?ztW3MN9RVUCpRlehPR7EIUf9vTsfClobITB4GmiOZKXRqIGu4EubMClQcA?=
 =?iso-8859-1?Q?s67BX3WF6bPnYRFjUH5PxQi1flLGJgDhUUkpTUW1nu0JtgHxe3hLukUOXV?=
 =?iso-8859-1?Q?ynCBhH0SMMoah+iedIAdggIXl+OlyGJWQcKmpmoytzWpzrIQb6jXLWK5tc?=
 =?iso-8859-1?Q?r9xARwSD9XAA/mW3Wtn/ptVDBvEMDYgy6lOU6lRR6IFOY+xPw4kBFz8RUq?=
 =?iso-8859-1?Q?V+0wj1ymwfm6YAlYFvQPYLaWXIPOaK0EAeeyv8ezMO+fzNko0i35KiqsTg?=
 =?iso-8859-1?Q?NAI3/Z1Z8myL3pDoBERLUiVPHZqyG2m/MNfERM+FMtnC5GpLnmg+ON/3Zr?=
 =?iso-8859-1?Q?JKwEJ+OGakgA3PS24W/1ABA/JzBNRelOpZuxZBY1FY5dESPGX7mcDZEGJB?=
 =?iso-8859-1?Q?OEvblh0inWi61tF+xut4Ati/3lr88KUx1ieSi7zyXC0wuO2cwmUbyUFtwo?=
 =?iso-8859-1?Q?IBpoHaSnArws3Qkwzx/Mc0A0fkPkO7NP4GYs4WhJ+A7FI1Rxdj6fLNGgBU?=
 =?iso-8859-1?Q?dNvvYA8OMDPNHRXgRuNMqzlm4VANWtk4BG/YZBpvXlZTfU7328NbCOEQ?=
 =?iso-8859-1?Q?=3D=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: e90cc2cf-586a-4bcf-2aae-08dde0d1d950
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Aug 2025 16:43:25.4628
 (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: xXbCqeGp99jX6edLJdzwKeC6OX0UGwoWVQEEzkQSAzUGotNV4dts7zIwaUvNzlDD+XWP3L7iuE3oWOoYo4Td2E7OJ1SoE/QIVaA+vliv9ZE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR03MB9482


Leonid Komarianskyi <Leonid_Komarianskyi@epam.com> writes:

> This change introduces resource management in the VGIC to handle
> extended SPIs introduced in GICv3.1. The pending_irqs and
> allocated_irqs arrays are resized to support the required
> number of eSPIs, based on what is supported by the hardware and
> requested by the guest. A new field, ext_shared_irqs, is added
> to the VGIC structure to store information about eSPIs, similar
> to how shared_irqs is used for regular SPIs.
>
> Since the eSPI range starts at INTID 4096 and INTIDs between 1025
> and 4095 are reserved, helper macros are introduced to simplify the
> transformation of indices and to enable easier access to eSPI-specific
> resources. These changes prepare the VGIC for processing eSPIs as
> required by future functionality.
>
> The initialization and deinitialization paths for vgic have been updated
> to allocate and free these resources appropriately. Additionally,
> updated handling of INTIDs greater than 1024, passed from the toolstack
> during domain creation, and verification logic ensures only valid SPI or
> eSPI INTIDs are used.
>
> The existing SPI behavior remains unaffected when guests do not request
> eSPIs, GIC hardware does not support them, or the CONFIG_GICV3_ESPI
> option is disabled.
>
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
>
> ---
> Changes in V2:
> - change is_espi_rank to is_valid_espi_rank to verify whether the array
>   element ext_shared_irqs exists. The previous version, is_espi_rank,
>   only checked if the rank index was less than the maximum possible eSPI
>   rank index, but this could potentially result in accessing a
>   non-existing array element. To address this, is_valid_espi_rank was
>   introduced, which ensures that the required eSPI rank exists
> - move gic_number_espis to
>   xen/arm: gicv3: implement handling of GICv3.1 eSPI
> - update vgic_is_valid_irq checks to allow operating with eSPIs
> - remove redundant newline in vgic_allocate_virq
> ---
>  xen/arch/arm/include/asm/vgic.h |  18 ++++
>  xen/arch/arm/vgic.c             | 145 ++++++++++++++++++++++++++++++++
>  2 files changed, 163 insertions(+)
>
> diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/v=
gic.h
> index 45201f4ca5..9fa4523018 100644
> --- a/xen/arch/arm/include/asm/vgic.h
> +++ b/xen/arch/arm/include/asm/vgic.h
> @@ -146,6 +146,10 @@ struct vgic_dist {
>      int nr_spis; /* Number of SPIs */
>      unsigned long *allocated_irqs; /* bitmap of IRQs allocated */
>      struct vgic_irq_rank *shared_irqs;
> +#ifdef CONFIG_GICV3_ESPI
> +    struct vgic_irq_rank *ext_shared_irqs;
> +    int nr_espis; /* Number of extended SPIs */
> +#endif
>      /*
>       * SPIs are domain global, SGIs and PPIs are per-VCPU and stored in
>       * struct arch_vcpu.
> @@ -243,6 +247,14 @@ struct vgic_ops {
>  /* Number of ranks of interrupt registers for a domain */
>  #define DOMAIN_NR_RANKS(d) (((d)->arch.vgic.nr_spis+31)/32)
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +#define DOMAIN_NR_EXT_RANKS(d) (((d)->arch.vgic.nr_espis+31)/32)
> +#define EXT_RANK_MIN (ESPI_BASE_INTID/32)
> +#define EXT_RANK_MAX ((ESPI_MAX_INTID+31)/32)
> +#define EXT_RANK_NUM2IDX(num) ((num)-EXT_RANK_MIN)
> +#define EXT_RANK_IDX2NUM(idx) ((idx)+EXT_RANK_MIN)
> +#endif
> +
>  #define vgic_lock(v)   spin_lock_irq(&(v)->domain->arch.vgic.lock)
>  #define vgic_unlock(v) spin_unlock_irq(&(v)->domain->arch.vgic.lock)
> =20
> @@ -302,6 +314,12 @@ extern struct vgic_irq_rank *vgic_rank_offset(struct=
 vcpu *v,
>                                                unsigned int b,
>                                                unsigned int n,
>                                                unsigned int s);
> +#ifdef CONFIG_GICV3_ESPI
> +extern struct vgic_irq_rank *vgic_ext_rank_offset(struct vcpu *v,
> +                                                  unsigned int b,
> +                                                  unsigned int n,
> +                                                  unsigned int s);
> +#endif
>  extern struct vgic_irq_rank *vgic_rank_irq(struct vcpu *v, unsigned int =
irq);
>  extern void vgic_disable_irqs(struct vcpu *v, uint32_t r, unsigned int n=
);
>  extern void vgic_enable_irqs(struct vcpu *v, uint32_t r, unsigned int n)=
;
> diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
> index 48fbaf56fb..1a6c765af9 100644
> --- a/xen/arch/arm/vgic.c
> +++ b/xen/arch/arm/vgic.c
> @@ -27,9 +27,26 @@
> =20
>  bool vgic_is_valid_irq(struct domain *d, unsigned int virq)
>  {
> +#ifdef CONFIG_GICV3_ESPI
> +    if ( virq >=3D ESPI_BASE_INTID && virq < ESPI_IDX2INTID(d->arch.vgic=
.nr_espis) )
> +        return true;
> +#endif
> +
>      return virq < vgic_num_irqs(d);
>  }
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +/*
> + * Since eSPI indexes start from 4096 and numbers from 1024 to
> + * 4095 are forbidden, we need to check both lower and upper
> + * limits for ranks.
> + */
> +static inline bool is_valid_espi_rank(struct domain *d, unsigned int ran=
k)
> +{
> +    return ( rank >=3D EXT_RANK_MIN && EXT_RANK_NUM2IDX(rank) < DOMAIN_N=
R_EXT_RANKS(d) );

I am pretty sure that max line length in 80 symbols, and here you have
more. As well in couple of other places below.

> +}
> +#endif
> +
>  static inline struct vgic_irq_rank *vgic_get_rank(struct vcpu *v,
>                                                    unsigned int rank)
>  {
> @@ -37,6 +54,10 @@ static inline struct vgic_irq_rank *vgic_get_rank(stru=
ct vcpu *v,
>          return v->arch.vgic.private_irqs;
>      else if ( rank <=3D DOMAIN_NR_RANKS(v->domain) )
>          return &v->domain->arch.vgic.shared_irqs[rank - 1];
> +#ifdef CONFIG_GICV3_ESPI
> +    else if ( is_valid_espi_rank(v->domain, rank) )
> +        return &v->domain->arch.vgic.ext_shared_irqs[EXT_RANK_NUM2IDX(ra=
nk)];
> +#endif
>      else
>          return NULL;
>  }
> @@ -53,6 +74,16 @@ struct vgic_irq_rank *vgic_rank_offset(struct vcpu *v,=
 unsigned int b,
>      return vgic_get_rank(v, rank);
>  }
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +struct vgic_irq_rank *vgic_ext_rank_offset(struct vcpu *v, unsigned int =
b,
> +                                           unsigned int n, unsigned int =
s)
> +{
> +    unsigned int rank =3D REG_RANK_NR(b, (n >> s));
> +
> +    return vgic_get_rank(v, rank + EXT_RANK_MIN);
> +}
> +#endif
> +
>  struct vgic_irq_rank *vgic_rank_irq(struct vcpu *v, unsigned int irq)
>  {
>      unsigned int rank =3D irq / 32;
> @@ -117,6 +148,29 @@ int domain_vgic_register(struct domain *d, unsigned =
int *mmio_count)
>      return 0;
>  }
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +static int init_vgic_espi(struct domain *d)
> +{
> +    int i;
> +
> +    if ( d->arch.vgic.nr_espis =3D=3D 0 )
> +        return 0;
> +
> +    d->arch.vgic.ext_shared_irqs =3D
> +        xzalloc_array(struct vgic_irq_rank, DOMAIN_NR_EXT_RANKS(d));
> +    if ( d->arch.vgic.ext_shared_irqs =3D=3D NULL )
> +        return -ENOMEM;
> +
> +    for ( i =3D 0; i < d->arch.vgic.nr_espis; i++ )
> +        vgic_init_pending_irq(&d->arch.vgic.pending_irqs[i + d->arch.vgi=
c.nr_spis], ESPI_IDX2INTID(i));
> +
> +    for ( i =3D 0; i < DOMAIN_NR_EXT_RANKS(d); i++ )
> +        vgic_rank_init(&d->arch.vgic.ext_shared_irqs[i], i, 0);
> +
> +    return 0;
> +}
> +#endif
> +
>  int domain_vgic_init(struct domain *d, unsigned int nr_spis)
>  {
>      int i;
> @@ -131,6 +185,30 @@ int domain_vgic_init(struct domain *d, unsigned int =
nr_spis)
>       */
>      nr_spis =3D ROUNDUP(nr_spis, 32);
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +    if ( nr_spis > ESPI_MAX_INTID )
> +        return -EINVAL;
> +
> +    if ( is_espi(nr_spis) )
> +    {
> +        /*
> +         * During domain creation, the toolstack specifies the maximum I=
NTID,
> +         * which is defined in the domain config subtracted by 32. To co=
mpute the
> +         * actual number of eSPI that will be usable for, add back 32.

I think, according to this, your if ( is_espi() ) check is wrong. Should
you add 32 here as well?

> +         */
> +        d->arch.vgic.nr_espis =3D min(nr_spis - ESPI_BASE_INTID + 32, 10=
24U);
> +        /* Verify if GIC HW can handle provided INTID */
> +        if ( d->arch.vgic.nr_espis > gic_number_espis() )
> +            return -EINVAL;
> +        /* Set the maximum available number for defult SPI to pass the n=
ext check */
> +        nr_spis =3D VGIC_DEF_NR_SPIS;
> +    } else
> +    {
> +        /* Domain will use the regular SPI range */
> +        d->arch.vgic.nr_espis =3D 0;
> +    }
> +#endif
> +
>      /* Limit the number of virtual SPIs supported to (1020 - 32) =3D 988=
  */
>      if ( nr_spis > (1020 - NR_LOCAL_IRQS) )
>          return -EINVAL;
> @@ -145,7 +223,12 @@ int domain_vgic_init(struct domain *d, unsigned int =
nr_spis)
>          return -ENOMEM;
> =20
>      d->arch.vgic.pending_irqs =3D
> +#ifdef CONFIG_GICV3_ESPI
> +        xzalloc_array(struct pending_irq, d->arch.vgic.nr_spis +
> +                      d->arch.vgic.nr_espis);
> +#else
>          xzalloc_array(struct pending_irq, d->arch.vgic.nr_spis);
> +#endif
>      if ( d->arch.vgic.pending_irqs =3D=3D NULL )
>          return -ENOMEM;
> =20
> @@ -156,12 +239,23 @@ int domain_vgic_init(struct domain *d, unsigned int=
 nr_spis)
>      for ( i =3D 0; i < DOMAIN_NR_RANKS(d); i++ )
>          vgic_rank_init(&d->arch.vgic.shared_irqs[i], i + 1, 0);
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +    ret =3D init_vgic_espi(d);
> +    if ( ret )
> +        return ret;
> +#endif
> +
>      ret =3D d->arch.vgic.handler->domain_init(d);
>      if ( ret )
>          return ret;
> =20
>      d->arch.vgic.allocated_irqs =3D
> +#ifdef CONFIG_GICV3_ESPI
> +        xzalloc_array(unsigned long, BITS_TO_LONGS(vgic_num_irqs(d) +
> +                      d->arch.vgic.nr_espis));
> +#else
>          xzalloc_array(unsigned long, BITS_TO_LONGS(vgic_num_irqs(d)));
> +#endif
>      if ( !d->arch.vgic.allocated_irqs )
>          return -ENOMEM;
> =20
> @@ -195,9 +289,27 @@ void domain_vgic_free(struct domain *d)
>          }
>      }
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +    for ( i =3D 0; i < (d->arch.vgic.nr_espis); i++ )
> +    {
> +        struct pending_irq *p =3D spi_to_pending(d, ESPI_IDX2INTID(i));
> +
> +        if ( p->desc )
> +        {
> +            ret =3D release_guest_irq(d, p->irq);
> +            if ( ret )
> +                dprintk(XENLOG_G_WARNING, "d%u: Failed to release virq %=
u ret =3D %d\n",
> +                        d->domain_id, p->irq, ret);
> +        }
> +    }
> +#endif
> +
>      if ( d->arch.vgic.handler )
>          d->arch.vgic.handler->domain_free(d);
>      xfree(d->arch.vgic.shared_irqs);
> +#ifdef CONFIG_GICV3_ESPI
> +    xfree(d->arch.vgic.ext_shared_irqs);
> +#endif
>      xfree(d->arch.vgic.pending_irqs);
>      xfree(d->arch.vgic.allocated_irqs);
>  }
> @@ -331,6 +443,17 @@ void arch_move_irqs(struct vcpu *v)
>          if ( v_target =3D=3D v && !test_bit(GIC_IRQ_GUEST_MIGRATING, &p-=
>status) )
>              irq_set_affinity(p->desc, cpu_mask);
>      }
> +
> +#ifdef CONFIG_GICV3_ESPI
> +    for ( i =3D ESPI_BASE_INTID; i < (d)->arch.vgic.nr_espis; i++ )
> +    {
> +        v_target =3D vgic_get_target_vcpu(v, i);
> +        p =3D irq_to_pending(v_target, i);
> +
> +        if ( v_target =3D=3D v && !test_bit(GIC_IRQ_GUEST_MIGRATING, &p-=
>status) )
> +            irq_set_affinity(p->desc, cpu_mask);
> +    }
> +#endif
>  }
> =20
>  void vgic_disable_irqs(struct vcpu *v, uint32_t r, unsigned int n)
> @@ -538,6 +661,10 @@ struct pending_irq *irq_to_pending(struct vcpu *v, u=
nsigned int irq)
>          n =3D &v->arch.vgic.pending_irqs[irq];
>      else if ( is_lpi(irq) )
>          n =3D v->domain->arch.vgic.handler->lpi_to_pending(v->domain, ir=
q);
> +#ifdef CONFIG_GICV3_ESPI
> +    else if ( is_espi(irq) )
> +        n =3D &v->domain->arch.vgic.pending_irqs[ESPI_INTID2IDX(irq) + v=
->domain->arch.vgic.nr_spis];
> +#endif
>      else
>          n =3D &v->domain->arch.vgic.pending_irqs[irq - 32];
>      return n;
> @@ -547,6 +674,14 @@ struct pending_irq *spi_to_pending(struct domain *d,=
 unsigned int irq)
>  {
>      ASSERT(irq >=3D NR_LOCAL_IRQS);
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +    if ( is_espi(irq) )
> +    {
> +        irq =3D ESPI_INTID2IDX(irq) + d->arch.vgic.nr_spis;
> +        return &d->arch.vgic.pending_irqs[irq];
> +    }
> +#endif
> +
>      return &d->arch.vgic.pending_irqs[irq - 32];
>  }
> =20
> @@ -668,6 +803,11 @@ bool vgic_reserve_virq(struct domain *d, unsigned in=
t virq)
>      if ( !vgic_is_valid_irq(d, virq) )
>          return false;
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +    if ( is_espi(virq) )
> +        return !test_and_set_bit(ESPI_INTID2IDX(virq) + vgic_num_irqs(d)=
, d->arch.vgic.allocated_irqs);
> +#endif
> +
>      return !test_and_set_bit(virq, d->arch.vgic.allocated_irqs);
>  }
> =20
> @@ -686,6 +826,11 @@ int vgic_allocate_virq(struct domain *d, bool spi)
>      {
>          first =3D 32;
>          end =3D vgic_num_irqs(d);
> +#ifdef CONFIG_GICV3_ESPI
> +        /* Take into account extended SPI range */
> +        end +=3D d->arch.vgic.nr_espis;
> +#endif
> +
>      }
> =20
>      /*

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 16:46:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 16:46:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089095.1446780 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up8Qs-0008R6-3v; Thu, 21 Aug 2025 16:46:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089095.1446780; Thu, 21 Aug 2025 16:46: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 1up8Qs-0008Qz-1F; Thu, 21 Aug 2025 16:46:34 +0000
Received: by outflank-mailman (input) for mailman id 1089095;
 Thu, 21 Aug 2025 16:46:33 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1up8Qr-0008Qt-Na
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 16:46:33 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1up8Qq-00GpQY-2w;
 Thu, 21 Aug 2025 16:46:33 +0000
Received: from [15.248.3.91] (helo=[10.24.67.183])
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1up8Qq-00Bnqg-2l;
 Thu, 21 Aug 2025 16:46: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=+0lkCV090rIFSFmfhqeOvyqRDN9AzFMzd5/VecMNCds=; b=6cZS7SnsRwsnH95xiibQqm4+vq
	OPTOTopUuw/oF2sIdpC+ResOqCRGiVOxM8VHzc+XnNvM+g0f+IbW5y6r0Aq2hWrRAYnOfFYNCeMtK
	Pm6RwFfua3zbPzRhusYgg7XjY/l2d4KRoaveb7fsRUcibTLxE9OxXCqB5nwAsR4T0pRo=;
Message-ID: <9922f7f1-7249-424e-9bab-3aee2ce3b813@xen.org>
Date: Thu, 21 Aug 2025 17:46:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 04/10] xen/arm/irq: add handling for IRQs in the eSPI
 range
Content-Language: en-GB
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>
References: <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
 <418e7e8082fa8f7b6659ff8cae3beb773803ca47.1754568795.git.leonid_komarianskyi@epam.com>
 <87ms7sekdx.fsf@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <87ms7sekdx.fsf@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 21/08/2025 16:59, Volodymyr Babchuk wrote:
> Leonid Komarianskyi <Leonid_Komarianskyi@epam.com> writes:
> 
>> Currently, Xen does not support eSPI interrupts, leading
>> to a data abort when such interrupts are defined in the DTS.
>>
>> This patch introduces a separate array to initialize up to
>> 1024 interrupt descriptors in the eSPI range and adds the
>> necessary defines and helper function. These changes lay the
>> groundwork for future implementation of full eSPI interrupt
>> support. As this GICv3.1 feature is not required by all vendors,
>> all changes are guarded by ifdefs, depending on the corresponding
>> Kconfig option.
> 
> I don't think that it is a good idea to hide this feature under Kconfig
> option, as this will increase number of different build variants.
 > I believe that runtime check for GICD_TYPER.ESPI should be 
sufficient,> but maintainers can correct me there.

I haven't seen many board with ESPI available. So I think it would be 
better if this is under a Kconfig because not everyone may want to have 
the code.

[...]

>>   struct irq_desc;
>>   struct irqaction;
>> @@ -55,6 +71,15 @@ static inline bool is_lpi(unsigned int irq)
>>       return irq >= LPI_OFFSET;
>>   }
>>   
>> +static inline bool is_espi(unsigned int irq)
>> +{
>> +#ifdef CONFIG_GICV3_ESPI
>> +    return (irq >= ESPI_BASE_INTID && irq <= ESPI_MAX_INTID);
>> +#else
>> +    return false;
>> +#endif
>> +}
>> +
>>   #define domain_pirq_to_irq(d, pirq) (pirq)
>>   
>>   bool is_assignable_irq(unsigned int irq);
>> diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
>> index 50e57aaea7..9bc72fbbc9 100644
>> --- a/xen/arch/arm/irq.c
>> +++ b/xen/arch/arm/irq.c
>> @@ -19,7 +19,11 @@
>>   #include <asm/gic.h>
>>   #include <asm/vgic.h>
>>   
>> +#ifdef CONFIG_GICV3_ESPI
>> +const unsigned int nr_irqs = ESPI_MAX_INTID + 1;
>> +#else
>>   const unsigned int nr_irqs = NR_IRQS;
>> +#endif
>>   
>>   static unsigned int local_irqs_type[NR_LOCAL_IRQS];
>>   static DEFINE_SPINLOCK(local_irqs_type_lock);
>> @@ -46,6 +50,9 @@ void irq_end_none(struct irq_desc *irq)
>>   }
>>   
>>   static irq_desc_t irq_desc[NR_IRQS - NR_LOCAL_IRQS];
>> +#ifdef CONFIG_GICV3_ESPI
>> +static irq_desc_t espi_desc[NR_IRQS];

By how much will this increase the Xen binary?

> 
> This is really confusing. Should it be something like espi_desc[NR_ESPI_IRQS]?

+1.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 16:46:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 16:46:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089098.1446791 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up8R9-0000MU-DB; Thu, 21 Aug 2025 16:46:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089098.1446791; Thu, 21 Aug 2025 16:46: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 1up8R9-0000MB-8q; Thu, 21 Aug 2025 16:46:51 +0000
Received: by outflank-mailman (input) for mailman id 1089098;
 Thu, 21 Aug 2025 16:46:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6kfR=3B=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1up8R8-0000Iq-MZ
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 16:46:50 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c201::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6eea6d8d-7eae-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 18:46:50 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by DB4PR03MB9482.eurprd03.prod.outlook.com
 (2603:10a6:10:3f6::14) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Thu, 21 Aug
 2025 16:46:47 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9052.013; Thu, 21 Aug 2025
 16: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>
X-Inumbo-ID: 6eea6d8d-7eae-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yyOO4oCghPgRH49fLBXI5cIMlLNUNV8wHVtiqD8xVPyNKQF95nOTIz7MKMyYrKb/jFLG2fC3Oy25Dl8BImkrd4ejALM5UBceSzpij3H/nAtZ46MVmG3ANpczAE2qzoYPCfQL16g4UrGRRH8n8aecahoydWy/3FwZBpt+xDMTJNmKk38X2uwl27Z/Io4xt1HuTCz59TQIn4jNUNaDMSm3XlsJtt8Xk+C5f1lJdYcQ7bIGjl7etx01MFMPbbsSR+EmwquXwtFm06iFPPqSMnVP8mw/lbWQSya0rT+/9cJSL1j7wZGvudX0r8kYRAM6V5g+CC6R0x9YxfAT7unwkMlAvQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=rPzJv5BJ0T7G0j36da1Mrvc1hscTXiem2aNhdKiK+NI=;
 b=dbrop0lUuw/B0LX4qfXMdk7Gq3hQmeHjEhajAN3gDXw9m6nT4H0NP/gQg+kR8OrpWXVFKKau61lxpGrfyOkHSkkZpTsrE1xGWYLl4SybUH4p5gVr8hp+QsWfEfb0E3o+xLOpU+zdqYrupTZgALjQBA5rMPNHUbqQTvPJaOAe7QyhOziy8tZbBZ84MWpqomNFc3VlT2zarvTKLun3ba+2N8WjHyXx80CDCjz87CNAQ2WUsm6XHzjtfhEc9U6Nbr+lFRXGDvFUhACtrjv3/kZR5/0v3SM1exjtziSn+a+5XDkHqjzXgre3QFOzoPQmcMReT0szqMcrWm44GfjT3OOCfA==
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=rPzJv5BJ0T7G0j36da1Mrvc1hscTXiem2aNhdKiK+NI=;
 b=JnUbRaIfziAO7eezuuSN/a3CNjO7kxwxy+Q7GFwvTsUUanPGhq+ekV3YISg2jOtYnvulw230bzDSvuO9D8C+GsAjntzPbYegIuQCRRezxmA+s77MpGz9RgDTVXMT6dURLKjLoL9ivn4xhQZ63+rZHOWr0dfQPXQTUrjD3dFs4FHj+y4pA78aet0bM2NqFDPWSsFmGt9ly6cGAIizIN+xGSnYKUGA4Uq1ZLILfMHXDHLrEYhxX6W0iGl12W1Ah9iG+mVTu8nJNaSHK2521qzT7q4yXEpx0eFuwjpa6pYMiJrVR4fAGQYvYYYUeKekCBmXXsKbX7PAFAWm8FXHNl8jLQ==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v2 09/10] xen/arm: domain_build: adjust Dom0 IRQ handling
 to support eSPIs
Thread-Topic: [PATCH v2 09/10] xen/arm: domain_build: adjust Dom0 IRQ handling
 to support eSPIs
Thread-Index: AQHcB5d/fLeRBY0aQE6DC46DWY0Ygw==
Date: Thu, 21 Aug 2025 16:46:47 +0000
Message-ID: <87o6s8d3m1.fsf@epam.com>
References:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
	<abba685916e6637eedbd831352bed2e968eeb7dc.1754568795.git.leonid_komarianskyi@epam.com>
In-Reply-To:
 <abba685916e6637eedbd831352bed2e968eeb7dc.1754568795.git.leonid_komarianskyi@epam.com>
	(Leonid Komarianskyi's message of "Thu, 7 Aug 2025 12:33:34 +0000")
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_|DB4PR03MB9482:EE_
x-ms-office365-filtering-correlation-id: 6547d4e2-0236-4c0a-04fd-08dde0d251d5
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|42112799006|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?cGkB2013VCvO/6pqIv3hMXJOdtyq81y49U46prHpG4TEXdT24PS/xgrxmd?=
 =?iso-8859-1?Q?nJVvTBpe1kttaqpa5Jw6S3Wu6FVrBiVmwyGsMtVSI914MPnZDIxK3dErRn?=
 =?iso-8859-1?Q?QHYAWipzfCS41lubeXiu9Shg4lrkmys19I3dX+bBxZ46nERZr7YK4qAE5I?=
 =?iso-8859-1?Q?AacGxPyHLU49cECkmtjhC8gc8B8CZ0jLAL5XRvpqkCd8/28S5INL1Viv/G?=
 =?iso-8859-1?Q?t+EzVt7jX8bkyeDq24V1bJk+wZNko+xF1lIh08uu6F0JBut0V2OMi5aHzx?=
 =?iso-8859-1?Q?pWFu0CXnGX97cT+dZ2YlwvsEgtDO7WXWa//UV8/jgfS+gmoaJdqd2VLLE4?=
 =?iso-8859-1?Q?E6DDm2gT7UcdQsAkwpxEIvHXW1k/tnuudPt8XV8Px5LSaEHH8zKhwCJ3PU?=
 =?iso-8859-1?Q?dPWUG+AUuzob4gFFKXxqZ7H8VySKKVSLUtmNeCz502lVKIx2woEz89GRfX?=
 =?iso-8859-1?Q?1JmJBd/Am5dChz9x0HbLDJ70OcdCUPE05qT/BDJjhHk3RfEJlT3feN36N/?=
 =?iso-8859-1?Q?Uc0uZHe/g6bZANBKAAN6o4UKoOrLua7rwVXarb01Yflh4SdbQ5C9p30zIN?=
 =?iso-8859-1?Q?fxTYzfV0TxOqhMtLgoX4aI5XwyliuqTJoyAGisOHxxUPKmd0i751trIf65?=
 =?iso-8859-1?Q?PqkUPFroO0vuPouFQujLOWHk4WYI8hlDLVojHmIIryEgTzsoRxZVhvqgEQ?=
 =?iso-8859-1?Q?+xPJslZWf42Xqr4kqStTSnhIpe38UZMny8utzg+myAjVYKaN81Z33mLcPs?=
 =?iso-8859-1?Q?VfqiRd1jhjjpe8vEj6Qr4WDu+IQoukmMHRvDpLa19qMKb5pFPdpfvIxEKn?=
 =?iso-8859-1?Q?9y/QpApuyN50lY3lHjVGE5qORtCJuA2lXXDfb3Ynm3ireBFuUBBlX6sL2E?=
 =?iso-8859-1?Q?Xxv22PVfzx6ZdfOI5gHmJ5X/cYyy9Pg47t2g6m+EGYBdODek0J87is0JYj?=
 =?iso-8859-1?Q?1mA3CuKWkUV5KNZxwBvntbJYBlhZ5Gud6aB8OYaHhqKI30A9uW5MlURvNe?=
 =?iso-8859-1?Q?uWllL6jMaXDTBP5WhRCBEXkXpeekN6mZqBgSD2hhBS0g5WUM/9kB5eNMYb?=
 =?iso-8859-1?Q?p/uBJD1OujOp/xZsKmW/+hidHdEpPxY6s9CNObwB7UMFURW/vIIx7eENpK?=
 =?iso-8859-1?Q?OqCrbOVq3ZYwLcoBlIA1Oj/efVCvWOppTOKuNIiSG/h8WY99ruRr2anTcW?=
 =?iso-8859-1?Q?vbx7jy/NLv5SrhkGtvLvIhkt8cAKTrwFQhriFclZfYN5QVGyY+Ug9mBWSq?=
 =?iso-8859-1?Q?gZfmmrRIZdDkqeUQls9/CFB/pxDBZQA3NJ4FdxFyjUUEekqAotlr96rFrJ?=
 =?iso-8859-1?Q?ufVhSVEvSyZn7ftnI0jeeLukZwmVTBndkGJiDqQ8TXfJFzFmizixoZSqHD?=
 =?iso-8859-1?Q?MxIG0PVy8wsJHnayJtb35AhrP2bLlzUU/P2PV3xbXi9nnpfqxjHsdLoBy3?=
 =?iso-8859-1?Q?EcSsM1mwfXw09WdSfzjtfxfIjG9P3YuFHPgMRjSUXLS4Zb0gNICDaK723F?=
 =?iso-8859-1?Q?TTEEBOpH/op6kwfBUwWVIXwUQcju6UQYBWltzeilrQkg=3D=3D?=
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)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?J3M8ecLhzNyqPXYD1G+e2udEY7UlbJT5xI2nGcPk7N+RIWQ8POCWeYOV60?=
 =?iso-8859-1?Q?ZCWxZ4XPGG0tBghDZXdSDS9Z1wNQw/AAehcW+tDp+5ZIT4dp6ccPUjyJx9?=
 =?iso-8859-1?Q?2XA5opNPVDUqSzwnFpIfhATB4d7ZFSu78B8vrD+42opsCoGkNvvdjZxHlD?=
 =?iso-8859-1?Q?JMXcvDmeO74BBez6VFI5YdkFzG11ZkFX+TIdP5EnMLrvLH3Gwrw2yytU5I?=
 =?iso-8859-1?Q?PPiG1DnztJSPe56fHiMFchpL4g3vg9+w/GQElkKqxX0K7GBSSNjpjqsmsW?=
 =?iso-8859-1?Q?pL/8ZkC28w+pIBqoiFz4z18aEXPIAP5X27zn1hHEt5c8iPQOIp9qjlTsHC?=
 =?iso-8859-1?Q?H0uu4FgmrPotOhofdCpMUi89S9vHf9EA/1M474vajXW+BTSjVDSIlYL9QY?=
 =?iso-8859-1?Q?KyVzV31qQ0MAGBkfMVjPjw1SXGkZVyBCMgsAvC3NU+Eejbdj8RWvJ1TbYc?=
 =?iso-8859-1?Q?0aUdBskhfjCaMX0TsEuQ4Mq+9EBUGMLUD673QJC+yRhrsMWsTIeF++rwaC?=
 =?iso-8859-1?Q?v5+bUtJMayNHAzhS1EERNyKzNjpNDJxq2Y1U6rNh8r3X7LpmyIe5nZcCA1?=
 =?iso-8859-1?Q?CASI2SXr6KD607j2k0ZkKPzJ+54xMtFybbBlBRc9FAg0kiFPBrvsr5UzDT?=
 =?iso-8859-1?Q?iCz0Q/2h1NY0zcgs0If1ruNS24xTEvS6szNA9zODXh9I5U+sKQ1F0pBBTO?=
 =?iso-8859-1?Q?IbDd+6cVvHH72KyT/+6KyHKYK2aJ3HvI3Vx80eDotasLZuCS5VGDEYueoT?=
 =?iso-8859-1?Q?HLnancpqao1FnaJrcYpuahlx+lL7axWDiZJbKCedf4MJFW84bSebdxcwdU?=
 =?iso-8859-1?Q?bjhdlu0KTdM6RXWy8Yx83p9QH2XMslIo4MSnjC8ZlzXwoPsbTIV92J8gDr?=
 =?iso-8859-1?Q?yaf63u7DC3H6Q25tsHVMYivaMtjvL1Y59IwhAtnlY6l98ejJXEqdzMwB4I?=
 =?iso-8859-1?Q?Az58JDBm+h/mRIjxt76uOGjZ7pAI/LgKAbYXV3ypq4gWhH8Fda9Ne6ZEBW?=
 =?iso-8859-1?Q?x4mZvRt4np7eTLy8YNFU5I4jV9WoDbJu980h/f1Ecyk8Go7HiEB3RCBZrW?=
 =?iso-8859-1?Q?CpCzNVGonHbusX/ItoJgLs9vU/cvlXYVvQt9Qhxc4z5bZyQk//D2auKAnj?=
 =?iso-8859-1?Q?dz7hFWgojxYMNG41KMs1dTzSy7XtT6gT+rM2mIgKNRhmGm9P6uuBzXlnAn?=
 =?iso-8859-1?Q?ayrwqVF84Z0DUyme1pXFix/nl3SAul0FQOrV+qlEC3UX8Lj7McA8S2jeOD?=
 =?iso-8859-1?Q?vO3MvALA+n4gXpoVD244wRC4cP3xqfFERPRnfIBkgBbVFLXmaeS/HCCIc8?=
 =?iso-8859-1?Q?/eCHhs3tpam6pS4mF1u1LQ8fMcwcEqwZ/+7DK8Viwd4hQAhI4nX1Zk9432?=
 =?iso-8859-1?Q?70olceg3f524Ppgq7JsmVeo2v01vnEzET33u4P9KYf0ninHR0OlPbQ7CTq?=
 =?iso-8859-1?Q?+SzymGC0cpYZadoLQYaOFoANToR5QdPQLyhJTCihxyyo4BAHTWmuy1cIVL?=
 =?iso-8859-1?Q?QuC8lTY4HY3ucTs/4zg9SiBNvNd/BDWqcb+QcV0iaBG+wNYwd+jM2FDPiq?=
 =?iso-8859-1?Q?gRiiAk3A7znB9wOOfAR7q0KZ/Sds7ygeQZVadn0RblRdgVoxhMuR5m5YGr?=
 =?iso-8859-1?Q?beHrSEtiKQDAZhy3dC2iBWhOhwKP8LNtreibHAmI3VyO9Lpf3hC6H1pw?=
 =?iso-8859-1?Q?=3D=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: 6547d4e2-0236-4c0a-04fd-08dde0d251d5
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Aug 2025 16:46:47.6687
 (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: C+mnxWcPTyz/8X3WcxL3JPDX3EHvRfQh1bG0KoF52FRwdyI9j2bmkEwvODwOuacqsJvuUgnsyYd3yogQZcUw6rSDQIZwRrN57iT9EtZ3i8Y=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR03MB9482




Leonid Komarianskyi <Leonid_Komarianskyi@epam.com> writes:

> The Dom0 configuration logic in create_dom0() has been updated
> to account for extended SPIs when supported by the hardware and
> enabled with CONFIG_GICV3_ESPI. These changes ensure the proper
> calculation of the maximum number of SPIs and eSPIs available for Dom0.
>
> When eSPIs are supported by the hardware and CONFIG_GICV3_ESPI is
> enabled, the maximum number of eSPI interrupts is calculated using
> the ESPI_BASE_INTID offset (4096) and limited at 1024, with 32 IRQs
> subtracted. To ensure compatibility with non-Dom0 domains, this
> adjustment is applied by the toolstack during domain creation, while
> for Dom0 it is handled directly during VGIC initialization. If eSPIs
> are not supported, the calculation defaults to using the standard SPI
> range, with a maximum value of 992 interrupt lines as it works now.
>
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
>
> ---
> Changes in V2:
> - no changes
> ---
>  xen/arch/arm/domain_build.c     | 10 ++++++++++
>  xen/arch/arm/include/asm/vgic.h | 11 +++++++++++
>  2 files changed, 21 insertions(+)
>
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index d91a71acfd..fa5abf2dfb 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -2055,6 +2055,16 @@ void __init create_dom0(void)
>      /* The vGIC for DOM0 is exactly emulating the hardware GIC */
>      dom0_cfg.arch.gic_version =3D XEN_DOMCTL_CONFIG_GIC_NATIVE;
>      dom0_cfg.arch.nr_spis =3D VGIC_DEF_NR_SPIS;
> +#ifdef CONFIG_GICV3_ESPI
> +    /*
> +     * Check if the hardware supports extended SPIs (even if the appropr=
iate config is set).
> +     * If not, the common SPI range will be used. Otherwise overwrite th=
e nr_spis with the
> +     * maximum available INTID from eSPI range. In that case, the number=
 of regular SPIs will
> +     * be adjusted to the maximum value during vGIC initialization.
> +     */
> +    if ( gic_number_espis() > 0 )
> +        dom0_cfg.arch.nr_spis =3D VGIC_DEF_NR_ESPIS;
> +#endif
>      dom0_cfg.arch.tee_type =3D tee_get_type();
>      dom0_cfg.max_vcpus =3D dom0_max_vcpus();
> =20
> diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/v=
gic.h
> index 9fa4523018..117b3aa92c 100644
> --- a/xen/arch/arm/include/asm/vgic.h
> +++ b/xen/arch/arm/include/asm/vgic.h
> @@ -353,6 +353,17 @@ extern void vgic_check_inflight_irqs_pending(struct =
vcpu *v,
>  /* Default number of vGIC SPIs. 32 are substracted to cover local IRQs. =
*/
>  #define VGIC_DEF_NR_SPIS (min(gic_number_lines(), VGIC_MAX_IRQS) - 32)
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +/*
> + * Returns the maximum eSPI INTID subtracted by 32. For non-Dom0 domains=
, the
> + * toolstack applies the same adjustment to cover local IRQs. We will ad=
d back
> + * this value during VGIC initialization. This ensures consistent handli=
ng for Dom0
> + * and other domains. For the regular SPI range interrupts in this case,=
 the maximum
> + * value of VGIC_DEF_NR_SPIS will be used.
> + */
> +#define VGIC_DEF_NR_ESPIS (ESPI_BASE_INTID + min(gic_number_espis(), 102=
4U) - 32)
Name of the define is wrong, as it is not number of eSPIs. Actually, this i=
s
maximum SPI (including eSPIs) number.

> +#endif
> +
>  extern bool vgic_is_valid_irq(struct domain *d, unsigned int virq);
> =20
>  static inline bool vgic_is_shared_irq(struct domain *d, unsigned int vir=
q)

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 16:59:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 16:59:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089124.1446802 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up8d5-0002cH-F5; Thu, 21 Aug 2025 16:59:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089124.1446802; Thu, 21 Aug 2025 16: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 1up8d5-0002cA-B5; Thu, 21 Aug 2025 16:59:11 +0000
Received: by outflank-mailman (input) for mailman id 1089124;
 Thu, 21 Aug 2025 16:59:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6kfR=3B=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1up8d3-0002c4-RS
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 16:59:09 +0000
Received: from GVXPR05CU001.outbound.protection.outlook.com
 (mail-swedencentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c202::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 24e56b5e-7eb0-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 18:59:04 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by DU0PR03MB9176.eurprd03.prod.outlook.com
 (2603:10a6:10:474::15) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Thu, 21 Aug
 2025 16:59:02 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9052.013; Thu, 21 Aug 2025
 16:59: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>
X-Inumbo-ID: 24e56b5e-7eb0-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=POPaQ9b/498+iwpdKPBBTCd9HN1f2MOAsu8CufCkMzqe5h9G9KdMuDkFSyVS7UJNPPDaJalW+hCWe8aI/Nz29zwz6wJbK0a8ZD7tYMJSMUP3u7YK7c6jl211H1H30I35cS7FHHOTx4qaJT6D7ZTFV+pX4ByrA9BVnAT1/vDDBpwcmkvhqvvH8zr3Rkf5pNjQnkUhSjTNSrdtXHWELy+0r047WloX8i2x/MDIGPkNo2tDTQn3eRfFz/2Wb+f0Drvo3dPXJd7cURaNRwzSrBpOtjksn3g2DOHlZOK98DnyAPapD3pcDzNaPNsp5Yjq2A4sudtU9aiTZW2X52/NLCkP1w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=5BBJG93VLQXbjKcMFc6Nv4CZA9G5STOfdO/GzUXahCY=;
 b=lhhWyJIl2Y9FvdPFJ01eOBOf/Nanorp3k6z5RdSQd7JRk0LvPnVHDMzXH6PIOJp6v/DRvw/eWSFCGOul7T+p273kK504/msrWhU4bzu8fTihjyyCP34zjKJa70fL3VUkvN7KC6uN4zNtDpJa4ewjzSP7j9g4o1KHoVgL1Pq5CEJD0U8uhIwEaFDaeD//X+EFvLN7W5qE4LnA/hcoGfSwlg5HuCrhF9/nloJJVPhflxpYv5mpcmaCSmj0KSRy6x1ZwwS96IkpiNL4cTAIJ6tsuPoj1sQMEGcjP2GNewxMOpFFKPuMxrRKUL35cfv8eunajbqrPmVxVriDlkqnH0JXvg==
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=5BBJG93VLQXbjKcMFc6Nv4CZA9G5STOfdO/GzUXahCY=;
 b=QU7CwFLkwsU8r3M2jSrPmO4af7A9gAiUEB2EkX6KUw8GF1yyT6obRK3rNONyoXyJbq96ePDWGaqekfY8Ns/yv0sUqcGEfSOpHwBoqnYdQm9p8xyw1w4xN8GM6DHTqvPu2hV4baTr7pGZbDmuntVjFIFTqeWos8BtyPKcDbMZ/LB3Av3FYjCJAHYZ9fqQ+zf2ywRMWEnC+or5B9rMLk9UelFy61VthxuMTuRO197NTJgvVxCN9RQ9yo+DnxByTdHD4TKMUTBsUXzdcPNEqbKBY5whMMqN+ZdNfsSCW5IQ+VES9jvLvhy3u0pU+q9dnC9UMq4/0VIqI9FYKs9R/GoS0A==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Julien Grall <julien@xen.org>
CC: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v2 04/10] xen/arm/irq: add handling for IRQs in the eSPI
 range
Thread-Topic: [PATCH v2 04/10] xen/arm/irq: add handling for IRQs in the eSPI
 range
Thread-Index: AQHcB5d7kgaRrTB4eUK2JDUmO9y7Hw==
Date: Thu, 21 Aug 2025 16:59:01 +0000
Message-ID: <87frdkd31m.fsf@epam.com>
References:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
	<418e7e8082fa8f7b6659ff8cae3beb773803ca47.1754568795.git.leonid_komarianskyi@epam.com>
	<87ms7sekdx.fsf@epam.com>	<9922f7f1-7249-424e-9bab-3aee2ce3b813@xen.org>
In-Reply-To: <9922f7f1-7249-424e-9bab-3aee2ce3b813@xen.org> (Julien Grall's
	message of "Thu, 21 Aug 2025 17:46:31 +0100")
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_|DU0PR03MB9176:EE_
x-ms-office365-filtering-correlation-id: dd4d73fa-80e5-4a44-3024-08dde0d4077b
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|366016|42112799006|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?tz7gpA7S8f079iwO4zYsNjeiAhcEmJOPGzyJo6TRLhVmcyJOJ+/EiZ3u4T?=
 =?iso-8859-1?Q?DfPAC/kbPowhn0g0smZArbv5wRXNYkiPnLY9dTK+TNvHRvGMGrfS+yUF3o?=
 =?iso-8859-1?Q?Cljd2/ktp5ZFTBBMDQOripI1OiUKKxA27FJOYAXzBL2LOFF4L9Lz/D5AFZ?=
 =?iso-8859-1?Q?AKnN4YAfO2I2EUiFmheqsUIeJXEIKx9TyrVwzaQxtOJzVj9rmuYIRjqH3M?=
 =?iso-8859-1?Q?hYT/VpUaOwRkAR5+yrJLw9+gS9KZECqUyM+XchAQ0a9Q43KzMRHlhdn13S?=
 =?iso-8859-1?Q?DzNKpsUXp/jFhsZLWuAB89Ursq7+Tb2AYbS1jzE0YaM8Sk2vT4vTw7+EYi?=
 =?iso-8859-1?Q?jEAbm3kTbu5vbvqEYYByn6OcpyNGA8fUYKk307fzjIcOr8KxShEaOxWHvU?=
 =?iso-8859-1?Q?s0QvLgastWf4oOZgXdODLiw0pLd7CP2gvzJIc41cgiMHgfMvNT+8AIIWIA?=
 =?iso-8859-1?Q?0uTPRDfosA2n1JcH8v0QgrNe6BAfqOtXZckrfDDfQX4KoH8dWmiy7OJHhW?=
 =?iso-8859-1?Q?mHorWhbiSrVBk6+Q5wr45mOyhZ0FPyPvbToRk0MtEVJqN/zpYqmN6AZloy?=
 =?iso-8859-1?Q?KdBAFyr7JBS5ZQlm8XYA/8Auuu+OYfjWXE5uruC4CFgoOALlwky5l09qNC?=
 =?iso-8859-1?Q?p3hjLQnnLWOFaaTMusaKUq9iILo48uLlDI/cdTEk7EuUOmf7r/DOrfNGYe?=
 =?iso-8859-1?Q?YbW4xgZhgjcF/rCOJ86u5xRAojWPHZk1iRTpri5TegXqFBs6E8b1f19H7I?=
 =?iso-8859-1?Q?AiQH3i9KNtRItceDJEvU9CyktCTOPX1DowE32l/tCoeJHj81QOciahoonI?=
 =?iso-8859-1?Q?djbS2ASoyr+tY8H5CXI/Nr0vbtFNMPFMXbUrYw5NG2g0rSl1tTTeIU8X9e?=
 =?iso-8859-1?Q?NBuwl099HzWu704hyuD9vnHbo9s1HlL+MBe8+oTawyJTrV6HIsIrLGUX/w?=
 =?iso-8859-1?Q?I9w470UH1s8fzC20QZstVFUW1193m1BDJFKl9oZo4TqMmqTD8YHx2ZZBXN?=
 =?iso-8859-1?Q?IGTMOpdY4nsMt42gzRsf+d/70bBeeruo2/COEHna6Hppwieod5Nfe4k9KP?=
 =?iso-8859-1?Q?32hjwT/NVEXHgwBF4R6ws3D6eLrIj8/tPe4AWvKNyhe5z75va1jl2ICBN9?=
 =?iso-8859-1?Q?kLyYKrxr52evOT8dXY2sP8uhGH+aXgyWMZmciar3b5ItI8pcnq1w+84ysT?=
 =?iso-8859-1?Q?SMcieqg++pv8lwMTQ04BOzHsMpfxb9dNPcTAcPNb+ZEe/30prUuGns0HHf?=
 =?iso-8859-1?Q?gaZC0Ycwls4vzx7khfh+2gtdt6AJJxV3EOg79zZsdN4cIGWXB7MUCNC4r0?=
 =?iso-8859-1?Q?QmXkPTB1F7R/Ct6k8QpDINLryePKqliTS7oIjCFrHK7ifFq/4VWA7EFvq0?=
 =?iso-8859-1?Q?nWx5YKmk8mZq8QZItaC1VusoYvUi6kKsGri/mwlBZHJDiIJ6OSieH3mtyX?=
 =?iso-8859-1?Q?7awdSWaNy7XpxjdsrSEJgz3OUUbpYmA3VPHAi9oben1Nuvox/Ne8YBJpT7?=
 =?iso-8859-1?Q?EBJ7TzkZ2kr030xx3BaE3yMJlPKWomPRGmePQe/9bs+g=3D=3D?=
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)(42112799006)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?MFRbxUOuttEa6UEsjVnH8w6ig1pHbQr+UDyx/pg4osxGJZofYY38is7amx?=
 =?iso-8859-1?Q?RHnvWc9gkamDiXIAqCtxgE3VAcdtGAe4oRFGvGO8U4fKo8NF/T6EJzywVT?=
 =?iso-8859-1?Q?zuAL/zDB58QTyk9ivR8NM/JNEVJ8bfjYIeoVVTmPsoBBObwakdxhWiNuMd?=
 =?iso-8859-1?Q?PZI2IOQ69vgMnpJm36GJaqDDUhUzsM8EbP6gil8va02rBazfF0d74RHKDk?=
 =?iso-8859-1?Q?EsBHXJ0ieKzq/9GYDyidrNZ57PEEvOtsFjc1fSbji0a7jV6fFN/s96slDb?=
 =?iso-8859-1?Q?mQoS3ew7mepcLiw3TerWFprKJxnTPlhkgBZShfLkugrfSbvadpyKm3T8i/?=
 =?iso-8859-1?Q?yTCl9cP9yL4N0Ui+dI09bLfnTNeD8a2YoFPseMuyDbMXVrkVasJTR1FG9A?=
 =?iso-8859-1?Q?tpFmPSrL4aBZqkESV+y6BHPR3NK9dKGO69YMtAZNa5DyaF2iEpMX6KD0qG?=
 =?iso-8859-1?Q?yKyOWIYz9eMm5AqnrmP0ida46t8G1UL0G1hyuwXtymevSw0LQatQnnTzbv?=
 =?iso-8859-1?Q?SmGU6NKKkG++Qa1fat5x0rFxAlcbGEIkJkytzmvH8UJ68KFL21zn1ZPIpN?=
 =?iso-8859-1?Q?pBAJbMzbGga7EL+fvLN/JEfoZRpX5mlb9ZXWtqxYzJWmLA3kGU/fPwvCZL?=
 =?iso-8859-1?Q?gOpWQZynp1UQc0FGdvPUOkB3/X6yl/pFlJPXXwtjF1olf3LHXUDDfrvJHK?=
 =?iso-8859-1?Q?oTT4gB90YUaMfEnODgE3aVUQo44kYCO2HHy9GknxCEqRNxStoc3FL7zfUR?=
 =?iso-8859-1?Q?6M8/vrtKM8DsIc1XdV2Ko1CynqskeXV1nAQlx4xF7Vnm0cZbwX5cIJszBp?=
 =?iso-8859-1?Q?l+hpNXIM8krVB1wTYcBbOnFNseqN1+fhTv0OHkfocb7xiGx2qA7GTH3DRU?=
 =?iso-8859-1?Q?nJJO7jWe82Ihv7bZBdPF4ID3DtwCuG7MnVAsmNaJGZAcEh4z5mV7tyGNhx?=
 =?iso-8859-1?Q?DMZpeMd8ITxo4F0egYdD1eFVhgB3PtNJTzVcH/UNKvam5p/ZJWrxnH+NtS?=
 =?iso-8859-1?Q?oM0FfFgY/lxzi408sIsiGB0hlBS3bXOoBws39/WzoC/r+oAAbhXB4kW+Oa?=
 =?iso-8859-1?Q?wyVwJ1YrJhnLtN+gSFWoOzW4JhHFXMSU0PS+f3S/I/VHwXZ50Cf5trcdce?=
 =?iso-8859-1?Q?COKuUF1zMnie4CnE8ERq1EX4BWVec+dK6ZXsizvOLY3yziOW4t8aJGRBPM?=
 =?iso-8859-1?Q?AMU875VbxvSYOLi8M/2DO6KDHt4z6/CUnY5fw7JqSAX4/tg1bHhwqWS8FC?=
 =?iso-8859-1?Q?3evZdBlnNDKQrww2UveNHT9uqWsNmHo6Na1tTHEWrAnChwNa0KkBF08ZDS?=
 =?iso-8859-1?Q?q2NUiKDHVA8L0vAfdYINVWlbS8DN8QIprowGyGjLYEER7vg7X3iBBvfad9?=
 =?iso-8859-1?Q?aAdbIzv9CEp4n9Ruf5n2w0xwPinY0ENeRdYqPbxdJEBjDHIVd4rSn+a8Dw?=
 =?iso-8859-1?Q?+f3B2XedC8w2KirtE+32OxvSm/w8uxaBnFyh5CYVldXOa+nPth6nUxwV54?=
 =?iso-8859-1?Q?Ga5mfejMievoNw3FWDcfIegLGsgRdtwGOeKaqpVdfBxauwt2gEpPM9909U?=
 =?iso-8859-1?Q?ekUelIMprkiOKfXClGLsmSNZ5+p7WY33ZQW1LMsudE446PMBMTfHOxTSe2?=
 =?iso-8859-1?Q?bfrpWZQnjsLn4S2VOp3pOdl7tXW8YWvTOeH+e6LwPxzsTKIDX8uXqCPw?=
 =?iso-8859-1?Q?=3D=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: dd4d73fa-80e5-4a44-3024-08dde0d4077b
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Aug 2025 16:59:01.9422
 (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: /CExO/mu/2M0asC4t+QjeagOH1y+cemLpdXo7H/egLqh8W0Pz7xdFC1G/nqDpn015exkH8di5cv6IyuL3riPRC/d/FpIhKH6q7V/yGAu8eg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB9176


Hi Julien,

Julien Grall <julien@xen.org> writes:

> Hi,
>
> On 21/08/2025 16:59, Volodymyr Babchuk wrote:
>> Leonid Komarianskyi <Leonid_Komarianskyi@epam.com> writes:
>>=20
>>> Currently, Xen does not support eSPI interrupts, leading
>>> to a data abort when such interrupts are defined in the DTS.
>>>
>>> This patch introduces a separate array to initialize up to
>>> 1024 interrupt descriptors in the eSPI range and adds the
>>> necessary defines and helper function. These changes lay the
>>> groundwork for future implementation of full eSPI interrupt
>>> support. As this GICv3.1 feature is not required by all vendors,
>>> all changes are guarded by ifdefs, depending on the corresponding
>>> Kconfig option.
>> I don't think that it is a good idea to hide this feature under
>> Kconfig
>> option, as this will increase number of different build variants.
>> I believe that runtime check for GICD_TYPER.ESPI should be
>   sufficient,> but maintainers can correct me there.
>
> I haven't seen many board with ESPI available. So I think it would be
> better if this is under a Kconfig because not everyone may want to
> have the code.

Probably, we can expect more in the future... Anyways, after reviewing
all patches in the series, I can see that code will be littered with
#ifdef CONFIG_GICV3_ESPI, which, probably, not a good thing.

>
> [...]
>
>>>   struct irq_desc;
>>>   struct irqaction;
>>> @@ -55,6 +71,15 @@ static inline bool is_lpi(unsigned int irq)
>>>       return irq >=3D LPI_OFFSET;
>>>   }
>>>   +static inline bool is_espi(unsigned int irq)
>>> +{
>>> +#ifdef CONFIG_GICV3_ESPI
>>> +    return (irq >=3D ESPI_BASE_INTID && irq <=3D ESPI_MAX_INTID);
>>> +#else
>>> +    return false;
>>> +#endif
>>> +}
>>> +
>>>   #define domain_pirq_to_irq(d, pirq) (pirq)
>>>     bool is_assignable_irq(unsigned int irq);
>>> diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
>>> index 50e57aaea7..9bc72fbbc9 100644
>>> --- a/xen/arch/arm/irq.c
>>> +++ b/xen/arch/arm/irq.c
>>> @@ -19,7 +19,11 @@
>>>   #include <asm/gic.h>
>>>   #include <asm/vgic.h>
>>>   +#ifdef CONFIG_GICV3_ESPI
>>> +const unsigned int nr_irqs =3D ESPI_MAX_INTID + 1;
>>> +#else
>>>   const unsigned int nr_irqs =3D NR_IRQS;
>>> +#endif
>>>     static unsigned int local_irqs_type[NR_LOCAL_IRQS];
>>>   static DEFINE_SPINLOCK(local_irqs_type_lock);
>>> @@ -46,6 +50,9 @@ void irq_end_none(struct irq_desc *irq)
>>>   }
>>>     static irq_desc_t irq_desc[NR_IRQS - NR_LOCAL_IRQS];
>>> +#ifdef CONFIG_GICV3_ESPI
>>> +static irq_desc_t espi_desc[NR_IRQS];
>
> By how much will this increase the Xen binary?

I am wondering this also. The struct is cache aligned, so it will take
at least 128 bytes. The whole array will take at least 128kb. Not
great, not terrible. As this should go to .bss, it should not increase
the binary itself.

Maybe it is better to allocate this dynamically? I do understand that we
want to get rid of as many dynamic allocs as possible, but maybe in this
case it will be okay. As a bonus point, we can't leave this pointer
present even if CONFIG_GICV3_ESPI=3Dn, which will simplify some code in
latter patches.

[...]

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 17:13:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 17:13:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089138.1446811 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up8rB-00068u-N3; Thu, 21 Aug 2025 17:13:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089138.1446811; Thu, 21 Aug 2025 17:13: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 1up8rB-00068n-KC; Thu, 21 Aug 2025 17:13:45 +0000
Received: by outflank-mailman (input) for mailman id 1089138;
 Thu, 21 Aug 2025 17:13:44 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1up8rA-00068h-Ee
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 17:13:44 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1up8r9-00Gpvi-2X;
 Thu, 21 Aug 2025 17:13:43 +0000
Received: from [15.248.3.91] (helo=[10.24.67.183])
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1up8r9-00BuxJ-2Z;
 Thu, 21 Aug 2025 17:13: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=lw8lv5aup/iNhiS78j3Zz11bdRXwzlz069IIS+SQ16A=; b=qYUi3FiH6Inji9xfrnVjLalI8l
	PJo3RmyVcDWKcZDXGwi1jUj2kcl6A/vBrWsIvGtrmdfBGOnzJ3n1Wqn+6cfFtOb7TSUxghzpRVrYC
	h1gmxVOtmbDFcP/SFtfa7g9zZSkexx/4RXsPBcvEcIKdsqwvjYSAj8owhrQFFQveWu5k=;
Message-ID: <20328499-772c-4b32-815e-7527aa6b2cc7@xen.org>
Date: Thu, 21 Aug 2025 18:13:41 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 04/10] xen/arm/irq: add handling for IRQs in the eSPI
 range
Content-Language: en-GB
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>
References: <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
 <418e7e8082fa8f7b6659ff8cae3beb773803ca47.1754568795.git.leonid_komarianskyi@epam.com>
 <87ms7sekdx.fsf@epam.com> <9922f7f1-7249-424e-9bab-3aee2ce3b813@xen.org>
 <87frdkd31m.fsf@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <87frdkd31m.fsf@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 21/08/2025 17:59, Volodymyr Babchuk wrote:
> Julien Grall <julien@xen.org> writes:
> 
>> Hi,
>>
>> On 21/08/2025 16:59, Volodymyr Babchuk wrote:
>>> Leonid Komarianskyi <Leonid_Komarianskyi@epam.com> writes:
>>>
>>>> Currently, Xen does not support eSPI interrupts, leading
>>>> to a data abort when such interrupts are defined in the DTS.
>>>>
>>>> This patch introduces a separate array to initialize up to
>>>> 1024 interrupt descriptors in the eSPI range and adds the
>>>> necessary defines and helper function. These changes lay the
>>>> groundwork for future implementation of full eSPI interrupt
>>>> support. As this GICv3.1 feature is not required by all vendors,
>>>> all changes are guarded by ifdefs, depending on the corresponding
>>>> Kconfig option.
>>> I don't think that it is a good idea to hide this feature under
>>> Kconfig
>>> option, as this will increase number of different build variants.
>>> I believe that runtime check for GICD_TYPER.ESPI should be
>>    sufficient,> but maintainers can correct me there.
>>
>> I haven't seen many board with ESPI available. So I think it would be
>> better if this is under a Kconfig because not everyone may want to
>> have the code.
> 
> Probably, we can expect more in the future...

Well yes. But I was under the impression this the preferred approach. 
See the discussion about disabling 32-bit support on 64-bit:

20250723075835.3993182-1-grygorii_strashko@epam.com

  Anyways, after reviewing
> all patches in the series, I can see that code will be littered with
> #ifdef CONFIG_GICV3_ESPI, which, probably, not a good thing.

The solution is to provide wrappers to reduce the number of #ifdef. I 
haven't checked all the places.
> 
>>
>> [...]
>>
>>>>    struct irq_desc;
>>>>    struct irqaction;
>>>> @@ -55,6 +71,15 @@ static inline bool is_lpi(unsigned int irq)
>>>>        return irq >= LPI_OFFSET;
>>>>    }
>>>>    +static inline bool is_espi(unsigned int irq)
>>>> +{
>>>> +#ifdef CONFIG_GICV3_ESPI
>>>> +    return (irq >= ESPI_BASE_INTID && irq <= ESPI_MAX_INTID);
>>>> +#else
>>>> +    return false;
>>>> +#endif
>>>> +}
>>>> +
>>>>    #define domain_pirq_to_irq(d, pirq) (pirq)
>>>>      bool is_assignable_irq(unsigned int irq);
>>>> diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
>>>> index 50e57aaea7..9bc72fbbc9 100644
>>>> --- a/xen/arch/arm/irq.c
>>>> +++ b/xen/arch/arm/irq.c
>>>> @@ -19,7 +19,11 @@
>>>>    #include <asm/gic.h>
>>>>    #include <asm/vgic.h>
>>>>    +#ifdef CONFIG_GICV3_ESPI
>>>> +const unsigned int nr_irqs = ESPI_MAX_INTID + 1;
>>>> +#else
>>>>    const unsigned int nr_irqs = NR_IRQS;
>>>> +#endif
>>>>      static unsigned int local_irqs_type[NR_LOCAL_IRQS];
>>>>    static DEFINE_SPINLOCK(local_irqs_type_lock);
>>>> @@ -46,6 +50,9 @@ void irq_end_none(struct irq_desc *irq)
>>>>    }
>>>>      static irq_desc_t irq_desc[NR_IRQS - NR_LOCAL_IRQS];
>>>> +#ifdef CONFIG_GICV3_ESPI
>>>> +static irq_desc_t espi_desc[NR_IRQS];
>>
>> By how much will this increase the Xen binary?
> 
> I am wondering this also. The struct is cache aligned, so it will take
> at least 128 bytes. The whole array will take at least 128kb. Not
> great, not terrible. As this should go to .bss, it should not increase
> the binary itself.

I guess "binary" was the wrong word. I was referring to the size of the 
Xen in memory. On my setup Xen is 1448kb. Here you would increase ~9% of 
resident size. This seems quite steep for a feature that is not often used.

> 
> Maybe it is better to allocate this dynamically? I do understand that we
> want to get rid of as many dynamic allocs as possible, but maybe in this
> case it will be okay.

This is up to Leonid. I don't think this is strictly necessary in order 
to get the eSPI support. However, until this is solved CONFIG_GICV3_EPSI 
*must not* be on by default as this is done in this patch.

> As a bonus point, we can't leave this pointer
> present even if CONFIG_GICV3_ESPI=n, which will simplify some code in
> latter patches.

Did you intend to say "We can leave" rather than "we can't leave"?

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Thu Aug 21 17:26:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 17:26:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089153.1446821 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up93b-00089b-Ok; Thu, 21 Aug 2025 17:26:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089153.1446821; Thu, 21 Aug 2025 17:26: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 1up93b-00089U-M5; Thu, 21 Aug 2025 17:26:35 +0000
Received: by outflank-mailman (input) for mailman id 1089153;
 Thu, 21 Aug 2025 17:26:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6kfR=3B=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1up93Z-000895-Jd
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 17:26:33 +0000
Received: from GVXPR05CU001.outbound.protection.outlook.com
 (mail-swedencentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c202::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fa19e556-7eb3-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 19:26:31 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by VI2PR03MB10859.eurprd03.prod.outlook.com
 (2603:10a6:800:270::9) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.15; Thu, 21 Aug
 2025 17:26:26 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9052.013; Thu, 21 Aug 2025
 17:26:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fa19e556-7eb3-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tlYJtm37QBKt78bKKYqkg4DHccbVEhdPiW0XUYOcRrodG2B+jODNBjE45xXhY+4/W88bez0wGTnaAuiUm+Japfg59zXmmalLqQ9I8HPGiaiwFuWJypfKbwLm0iQNeNUddzs7qe2mH7xhMxHMWYVnYThov6gY+WQ6usdtrYqmNlcLQ17o9h5fRE9P+FJGQNcmcM3uzW518Da5ZkjoiaM5VlFpe650Dd6uur9oIimpYS4tdnQLHhZcU2Cl4j5DnZGsfS2vGaR3Jq0eUd0dXybg8x2gVQKX4srBCp4I+QtHFaQgJtpy3u5O5QORTYEyf0NRlqVlxwDQX0DZehRqqXYVKw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=uwT6Or/ZChDDRcLKK/ZsrIZFOMZmKSc31jdaXdvaFa4=;
 b=qgjC5LrAgvv8tAYT8aVTIUMTZumQa9RsyKlePe95xVzUT/zXozpo9DVUOfJvOhKRHxKhEJDupXsYW+plffoevg6lNdg8pqlo1NGMznGDXlzoDfcg3S0vDSvIBtjGs73lchJ5Z5SfGQHHpaxS0SpqoQuQp+WvJ0zwb1w/KTFwXEDT/pWgDTTaqs2L7E6w3tYE3nbaqwS7yM5U8DgwzAlsta948I9u4HRUxAlmMNCL+2KUwKL7T/iGSPAL4HnbO9dayWh01uBSnMegiQAwGrcDuNkRKNlZ/uKZDYLpRG3b47BD6D+dXQbi39EGGqxhAL7DksTpvFaGU7Et7LjOev130Q==
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=uwT6Or/ZChDDRcLKK/ZsrIZFOMZmKSc31jdaXdvaFa4=;
 b=PvfGuKXqAzT3o4mNI1Lt8IVI5XE+YUdoUX1UHK4O1twTAC1I3up7yBM4s0+WFoio3dlji8nmbewnuVxq5JgB5jHOiEI7KeWxinGEhqh05jJrGN9apxYjzZ6ZlhCJ+PCBptdQ11AwVGfNxDGhMhJ9lvDbNKlg4qoGh320OXAP/t698w0gq7QcKba7w35x+Tzv7xmCGWlXNe7wqNFzfK4U4yb0YFGsws9sHvRb87R/Gv4O3VKGyQ4LmMe8E7P/S7oRiB3Ih5pXVM1+vPYBz9zQmPkyPxh24LHB0HZp5XZqB8KAcaRZzS0pNUf23qMjI05+sotNQ5VIh7DfF4wpblUSEg==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v2 10/10] xen/arm: vgic-v3: add emulation of GICv3.1 eSPI
 registers
Thread-Topic: [PATCH v2 10/10] xen/arm: vgic-v3: add emulation of GICv3.1 eSPI
 registers
Thread-Index: AQHcB5d/vX6zkEc6YU++KKhW5OV9og==
Date: Thu, 21 Aug 2025 17:26:26 +0000
Message-ID: <87a53sd1ry.fsf@epam.com>
References:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
	<3ba2381b4c782a5187161f9418e5a35e7916c752.1754568795.git.leonid_komarianskyi@epam.com>
In-Reply-To:
 <3ba2381b4c782a5187161f9418e5a35e7916c752.1754568795.git.leonid_komarianskyi@epam.com>
	(Leonid Komarianskyi's message of "Thu, 7 Aug 2025 12:33:34 +0000")
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_|VI2PR03MB10859:EE_
x-ms-office365-filtering-correlation-id: 265aa165-a7a4-45c7-ab8b-08dde0d7dbd1
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|366016|42112799006|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?RUUqy2sA69jX3Rowtgj5V32LRq/1dNfdb+n8hxCQ2T7TL2Lr10qO6adIWm?=
 =?iso-8859-1?Q?vSFYZjDwwmLwXqEZSHiaFpQNufU3hYJx6fPnWe7cadcsAsHfl1Ra/NYQpk?=
 =?iso-8859-1?Q?wINtLQjZNaa2vCMyPd617WZlR/fg1EGOa2DskV3EqKniitm+dwu9JqCnB8?=
 =?iso-8859-1?Q?QnlHHzJv7qwIk1Ktw6bh9ThExh+zPXpe9yIaLOSUse4qYvMrSWUgm2A1p1?=
 =?iso-8859-1?Q?uv11pS2Khy2JmQ41RwVEW0amXDzKaA2uJWkKfMQ/cYmlYaPtd9mqMbm0Dw?=
 =?iso-8859-1?Q?wL7QZX0ZU3up9bnQK5EWP6P/8z7N5IrlRKO1eKg9MqqWYm4M6dC3wVOTd6?=
 =?iso-8859-1?Q?VLEI3y9vD1rUXDNanjDcCtiIgff4FMvNc20RDy6VyMCvzSpVtfHO83V0F1?=
 =?iso-8859-1?Q?j7H7rP9J2vOnjWWOiqCsf4Wv6oeLvx2iUnemfTHv6vKX74/165GThxE+ww?=
 =?iso-8859-1?Q?iYu8pm3W7ONhRsqkDfVecbhWiomjUMIJh5P/pO30XkqPQwEpSBzTJvhXFc?=
 =?iso-8859-1?Q?ZNASVpBGwjnA0PyQ0BoQj0pZZLYGuVKMRQ0HQoi+SIozpWeN8ySrQEDxhR?=
 =?iso-8859-1?Q?2B9l5NZTL524ST83e24Jc/u+X6lyXKR/te0duGJ0cjHx/2AoGaqUKkzG3p?=
 =?iso-8859-1?Q?xSqdFRocjwUUe7LbRjl1rfF6AD8zjwWRg9/rl472qyl264U5q5HumSXKmT?=
 =?iso-8859-1?Q?60Jissyy5x/zBLqOAI1s5RJcEOr1DY4LRYBOYoh0LiU2ae75msNzZ7L4lK?=
 =?iso-8859-1?Q?nCSg5w77beROg0xp9H5dQk2sIvSsuuLdLA1tfo07EN9cezjcfrbogFyiCO?=
 =?iso-8859-1?Q?Rmo44uWhw7jx7ZNygauMCYK1HHBGyVTQ28loppOykCsjqlAR8zCsNOGHIs?=
 =?iso-8859-1?Q?6jiLhh72qX+5BAZXwLf+gU9lVqH477dMUtdN+Xwo5MIgo780BsbqvmZ7wX?=
 =?iso-8859-1?Q?hyEHhykW9yA2eopv+9AJlBl2SPGjCD2P9CIu2CtuZMg0/MynH6qslyFRSy?=
 =?iso-8859-1?Q?JmT3HVdwORYddb4hUny1d+D/l4tCNsC1CH2CjGMmwV95ProBtCJiKRHegL?=
 =?iso-8859-1?Q?/5z5FTQ35XC8QZL2qbh1L+EuNF6KM5sAiq31v/jrwR+E3H8hX4JUbtBwLc?=
 =?iso-8859-1?Q?AS0AO/JD772hAF29QNiDaX0kN4FL99n9SSqtn7NwDkt4TWoa4RR6ouapmk?=
 =?iso-8859-1?Q?sidVawKTh+E/iR4jrvFexECo8tazuJEYbyQLUrb1gNSYyOktWPfa0lXj9E?=
 =?iso-8859-1?Q?JD4IVdtLyVBW+o+3PpaFWGM3WPYlbHc52Gr99s+reQikP0sCDFM7aOe5b3?=
 =?iso-8859-1?Q?ZOkiFYJJ7ro8MQTdX2nb8s6yUHWb7yuYFNV8fdk8eJMLB0RS3wdyjo0FMz?=
 =?iso-8859-1?Q?fcDC7GPK6+/8AYX526dZtXkz8EyaI2jPJ9n7JPzWIvNGDNx6zGxpNAKJtg?=
 =?iso-8859-1?Q?Fs2dFcZT5N1QOJ0enbm5uoDBYP7YB482BsT9FbVD7vPq66t7s8Y2KBgmec?=
 =?iso-8859-1?Q?VY3GI1fJAe0HlL1LyoefaPFWvc7hZZHMQE7ZihKKHb3w=3D=3D?=
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)(42112799006)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?8uyDrZhj39sVK87V2qIYUuBDMuAFMTjdKbtkrN3ja66KXVfsJX0dgM9tZt?=
 =?iso-8859-1?Q?tFhI4RN1kqShBsXDTbaWwvMolJEL1DXg9AtGwMllxUb+GP1NC2tbvMTq0e?=
 =?iso-8859-1?Q?/A6GeJJXjVfnsxMOTc7OwHiFe8AplLzigEAkuinqi+FqmDqPvDH6cPe2He?=
 =?iso-8859-1?Q?bJZ2EYr3mfCSOwF81qFWPN/7iJFXLK85mzFlwAxSLCUqZoip8ljGzWGy+G?=
 =?iso-8859-1?Q?fqQnfdAj7V/Jw11FQyJXAYWk+LuWlxqChMm2EGgv+BNU7slvzAWfYVnUNK?=
 =?iso-8859-1?Q?JkI+yuw4IufullXXH9uER6nfr0gHjfVrMxjBjNxnHkdQKtw+y9ab6DCGIL?=
 =?iso-8859-1?Q?a05GEp8995PGQmS5LA1PWOaLtzSsCqftO3f6zc1zpSCCzcsCBTjZOeh1yU?=
 =?iso-8859-1?Q?RLTUMziEg02y0sfXrlyW/bgNFDOuN3rsiSBeDLu0+qzf92RTydawwpIX5R?=
 =?iso-8859-1?Q?0zcAoOEHesL86Uun2oVO6vkwM+47wJBFkvyOLjfomwrClDMC/XV2mbAQpc?=
 =?iso-8859-1?Q?JSMGXw8OkeLZXAYYlzpavV+BaqjG7Zs1VR3juMxkSudXWA2/TkX7uEBEWW?=
 =?iso-8859-1?Q?XqunDmtDj2cb37BNrMUh/HCZ4OwG02sFdtZNr3qsSIVSffM1mlK39N+D6U?=
 =?iso-8859-1?Q?/pckUbOcLY2A30A/ssKhEDPDdT0XoDYk0CVoehWoZtGhu6wgoX+jabxeE8?=
 =?iso-8859-1?Q?ytPTG5OwZiMcmLONOYdveCoWJzofIJT4j1hBchnEPs/Kza8aC/KfXOBYsO?=
 =?iso-8859-1?Q?+2gMyTFXaPdVuCW0Q/PuMsZOrrfr9+SvbX8Xzroro3VEt7gVo2t5NEjrD3?=
 =?iso-8859-1?Q?kL7O4+HCu9ulXHE6nsq2tbO8h0m5Gesu5+f/tqe6jw/JrRWeNr6yFAUAiV?=
 =?iso-8859-1?Q?Zr9KkS9D6Y3X8GmR02LBIuivn/e4a0Gsdkszu88g8eJNRdmlLX6IEJG7J7?=
 =?iso-8859-1?Q?npnNUDyjTwogiTj6VHPIesaYNLQttaAW+IuEAm7r6X3kdt2/9IJwJKo2pE?=
 =?iso-8859-1?Q?S+hmJWCicTQFm+HTmR8trXJEJo9kaYnao2vL1noIRsfF48GSkFxYIaTF5q?=
 =?iso-8859-1?Q?p3C/+j0qbv4ijeydwWN2cXh882odZy0OJ4vh1dxjdAbQDs9GU4Q2SKo6Lt?=
 =?iso-8859-1?Q?83+KzKOyq54otOXCpymo0Y2KeJFzqT9qsYyCjTKFgrfRsumE4jch8cXy63?=
 =?iso-8859-1?Q?8S+cR+t+1w9T+Ib4LrBnhk2Wt9Kdc9ZPn9TK/kTMGaPZQXePExWWSuR9E+?=
 =?iso-8859-1?Q?8Sv0JDYbPRQ/7eHTk1HAMPPkmsXvoIW32+f4mPkNyBFpfDDNhSJbX1nXkR?=
 =?iso-8859-1?Q?vDJOfxR8iH1osh35ywIMvO07z6dBFoq5gLuv79wyIFhOVbN8ACrrpuNwuO?=
 =?iso-8859-1?Q?HXLuzfWobvg8OVErsee1UFa95EInioBUx4G7UjuS6Sd8+gDBSaRER4JZDz?=
 =?iso-8859-1?Q?6KFUK0KrH+CHYrgLDwyGSAePbmM00g/Ph7XZX9ad7hDKdokpuSqMd5o+SZ?=
 =?iso-8859-1?Q?+A8hrOPhUPM9Qwe/xDn4devm0Slr02QK3mVomGRHvKfCPAZB37m3gw0VNk?=
 =?iso-8859-1?Q?z0HhAU5LRv7dxC4woJ3ZlW1Dqmyp/Li9Ljcv/Aj3kCBcADnKFyME1O/uMz?=
 =?iso-8859-1?Q?/rNJbbOgpzpUMT/kqCBXwDiWVSLD+j4qfgI/F0MRpzbcbq6xiBO7lkwQ?=
 =?iso-8859-1?Q?=3D=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: 265aa165-a7a4-45c7-ab8b-08dde0d7dbd1
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Aug 2025 17:26:26.6930
 (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: oHK5UrH8lH/Tj+xLfuZpxRqHri/hjJTelu8Uvtp7yCieURO9d6G5Sfxqf+rMLV4nKCL9CMBFlMZbKzP0uhZNxbdnhszIyHjcEg8do+4tw3c=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI2PR03MB10859


Hi Leonid,

Leonid Komarianskyi <Leonid_Komarianskyi@epam.com> writes:

> Implemented support for GICv3.1 extended SPI registers for vGICv3,
> allowing the emulation of eSPI-specific behavior for guest domains.
> The implementation includes read and write emulation for eSPI-related
> registers (e.g., GICD_ISENABLERnE, GICD_IROUTERnE, and others),
> following a similar approach to the handling of regular SPIs.
>
> The eSPI registers, previously located in reserved address ranges,
> are now adjusted to support MMIO read and write operations correctly
> when CONFIG_GICV3_ESPI is enabled.
>
> The availability of eSPIs and the number of emulated extended SPIs
> for guest domains is reported by setting the appropriate bits in the
> GICD_TYPER register, based on the number of eSPIs requested by the
> domain and supported by the hardware. In cases where the configuration
> option is disabled, the hardware does not support eSPIs, or the domain
> does not request such interrupts, the functionality remains unchanged.
>
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
>
> ---
> Changes in V2:
> - add missing rank index conversion for pending and inflight irqs
> ---
>  xen/arch/arm/vgic-v3.c | 248 ++++++++++++++++++++++++++++++++++++++++-
>  1 file changed, 245 insertions(+), 3 deletions(-)
>
> diff --git a/xen/arch/arm/vgic-v3.c b/xen/arch/arm/vgic-v3.c
> index 4369c55177..1cacbb6e43 100644
> --- a/xen/arch/arm/vgic-v3.c
> +++ b/xen/arch/arm/vgic-v3.c
> @@ -111,7 +111,7 @@ static uint64_t vgic_fetch_irouter(struct vgic_irq_ra=
nk *rank,
>   * Note the offset will be aligned to the appropriate boundary.
>   */
>  static void vgic_store_irouter(struct domain *d, struct vgic_irq_rank *r=
ank,
> -                               unsigned int offset, uint64_t irouter)
> +                               unsigned int offset, uint64_t irouter, bo=
ol espi)

I am wondering: maybe it is better to pass virq instead of offset into
this function? In that case you can get rid of espi parameter.

>  {
>      struct vcpu *new_vcpu, *old_vcpu;
>      unsigned int virq;
> @@ -123,7 +123,8 @@ static void vgic_store_irouter(struct domain *d, stru=
ct vgic_irq_rank *rank,
>       * The IROUTER0-31, used for SGIs/PPIs, are reserved and should
>       * never call this function.
>       */
> -    ASSERT(virq >=3D 32);
> +    if ( !espi )
> +        ASSERT(virq >=3D 32);

better to write
ASSERT (!espi & (virq>=3D32))

and probably you need symmetrical ASSERT for espi =3D=3D true

>      /* Get the index in the rank */
>      offset =3D virq & INTERRUPT_RANK_MASK;
> @@ -146,6 +147,11 @@ static void vgic_store_irouter(struct domain *d, str=
uct vgic_irq_rank *rank,
>      /* Only migrate the IRQ if the target vCPU has changed */
>      if ( new_vcpu !=3D old_vcpu )
>      {
> +#ifdef CONFIG_GICV3_ESPI
> +        /* Convert virq index to eSPI range */
> +        if ( espi )
> +            virq =3D ESPI_IDX2INTID(virq);
> +#endif

If you define ESPI_IDX2INTID() uncoditionally, you can get rid of #ifdef
CONFIG_GICV3_ESPI here

>          if ( vgic_migrate_irq(old_vcpu, new_vcpu, virq) )
>              write_atomic(&rank->vcpu[offset], new_vcpu->vcpu_id);
>      }
> @@ -685,6 +691,9 @@ static int __vgic_v3_distr_common_mmio_read(const cha=
r *name, struct vcpu *v,
>      {
>      case VRANGE32(GICD_IGROUPR, GICD_IGROUPRN):
>      case VRANGE32(GICD_IGRPMODR, GICD_IGRPMODRN):
> +#ifdef CONFIG_GICV3_ESPI

Do you really need ifdef here?

> +    case VRANGE32(GICD_IGROUPRnE, GICD_IGROUPRnEN):
> +#endif


>          /* We do not implement security extensions for guests, read zero=
 */
>          if ( dabt.size !=3D DABT_WORD ) goto bad_width;
>          goto read_as_zero;
> @@ -710,11 +719,19 @@ static int __vgic_v3_distr_common_mmio_read(const c=
har *name, struct vcpu *v,
>      /* Read the pending status of an IRQ via GICD/GICR is not supported =
*/
>      case VRANGE32(GICD_ISPENDR, GICD_ISPENDRN):
>      case VRANGE32(GICD_ICPENDR, GICD_ICPENDRN):
> +#ifdef CONFIG_GICV3_ESPI

Same as here

> +    case VRANGE32(GICD_ISPENDRnE, GICD_ISPENDRnEN):
> +    case VRANGE32(GICD_ICPENDRnE, GICD_ICPENDRnEN):
> +#endif
>          goto read_as_zero;
> =20
>      /* Read the active status of an IRQ via GICD/GICR is not supported *=
/
>      case VRANGE32(GICD_ISACTIVER, GICD_ISACTIVERN):
>      case VRANGE32(GICD_ICACTIVER, GICD_ICACTIVERN):
> +#ifdef CONFIG_GICV3_ESPI

... and here and in all other places

> +    case VRANGE32(GICD_ISACTIVERnE, GICD_ISACTIVERnEN):
> +    case VRANGE32(GICD_ICACTIVERnE, GICD_ICACTIVERnEN):
> +#endif
>          goto read_as_zero;
> =20
>      case VRANGE32(GICD_IPRIORITYR, GICD_IPRIORITYRN):
> @@ -752,6 +769,61 @@ static int __vgic_v3_distr_common_mmio_read(const ch=
ar *name, struct vcpu *v,
>          return 1;
>      }
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +    case VRANGE32(GICD_ISENABLERnE, GICD_ISENABLERnEN):
> +        if ( dabt.size !=3D DABT_WORD ) goto bad_width;
> +        rank =3D vgic_ext_rank_offset(v, 1, reg - GICD_ISENABLERnE, DABT=
_WORD);
> +        if ( rank =3D=3D NULL ) goto read_as_zero;
> +        vgic_lock_rank(v, rank, flags);
> +        *r =3D vreg_reg32_extract(rank->ienable, info);
> +        vgic_unlock_rank(v, rank, flags);
> +        return 1;
> +
> +    case VRANGE32(GICD_ICENABLERnE, GICD_ICENABLERnEN):
> +        if ( dabt.size !=3D DABT_WORD ) goto bad_width;
> +        rank =3D vgic_ext_rank_offset(v, 1, reg - GICD_ICENABLERnE, DABT=
_WORD);
> +        if ( rank =3D=3D NULL ) goto read_as_zero;
> +        vgic_lock_rank(v, rank, flags);
> +        *r =3D vreg_reg32_extract(rank->ienable, info);
> +        vgic_unlock_rank(v, rank, flags);
> +        return 1;
> +
> +    case VRANGE32(GICD_IPRIORITYRnE, GICD_IPRIORITYRnEN):
> +    {
> +        uint32_t ipriorityr;
> +        uint8_t rank_index;
> +
> +        if ( dabt.size !=3D DABT_BYTE && dabt.size !=3D DABT_WORD ) goto=
 bad_width;
> +        rank =3D vgic_ext_rank_offset(v, 8, reg - GICD_IPRIORITYRnE, DAB=
T_WORD);
> +        if ( rank =3D=3D NULL ) goto read_as_zero;
> +        rank_index =3D REG_RANK_INDEX(8, reg - GICD_IPRIORITYRnE, DABT_W=
ORD);
> +
> +        vgic_lock_rank(v, rank, flags);
> +        ipriorityr =3D ACCESS_ONCE(rank->ipriorityr[rank_index]);
> +        vgic_unlock_rank(v, rank, flags);
> +
> +        *r =3D vreg_reg32_extract(ipriorityr, info);
> +
> +        return 1;
> +    }
> +
> +    case VRANGE32(GICD_ICFGRnE, GICD_ICFGRnEN):
> +    {
> +        uint32_t icfgr;
> +
> +        if ( dabt.size !=3D DABT_WORD ) goto bad_width;
> +        rank =3D vgic_ext_rank_offset(v, 2, reg - GICD_ICFGRnE, DABT_WOR=
D);
> +        if ( rank =3D=3D NULL ) goto read_as_zero;
> +        vgic_lock_rank(v, rank, flags);
> +        icfgr =3D rank->icfg[REG_RANK_INDEX(2, reg - GICD_ICFGRnE, DABT_=
WORD)];
> +        vgic_unlock_rank(v, rank, flags);
> +
> +        *r =3D vreg_reg32_extract(icfgr, info);
> +
> +        return 1;
> +    }
> +#endif
> +
>      default:
>          printk(XENLOG_G_ERR
>                 "%pv: %s: unhandled read r%d offset %#08x\n",
> @@ -782,6 +854,9 @@ static int __vgic_v3_distr_common_mmio_write(const ch=
ar *name, struct vcpu *v,
>      {
>      case VRANGE32(GICD_IGROUPR, GICD_IGROUPRN):
>      case VRANGE32(GICD_IGRPMODR, GICD_IGRPMODRN):
> +#ifdef CONFIG_GICV3_ESPI
> +    case VRANGE32(GICD_IGROUPRnE, GICD_IGROUPRnEN):
> +#endif
>          /* We do not implement security extensions for guests, write ign=
ore */
>          goto write_ignore_32;
> =20
> @@ -871,6 +946,87 @@ static int __vgic_v3_distr_common_mmio_write(const c=
har *name, struct vcpu *v,
>          vgic_unlock_rank(v, rank, flags);
>          return 1;
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +    case VRANGE32(GICD_ISENABLERnE, GICD_ISENABLERnEN):
> +        if ( dabt.size !=3D DABT_WORD ) goto bad_width;
> +        rank =3D vgic_ext_rank_offset(v, 1, reg - GICD_ISENABLERnE, DABT=
_WORD);
> +        if ( rank =3D=3D NULL ) goto write_ignore;
> +        vgic_lock_rank(v, rank, flags);
> +        tr =3D rank->ienable;
> +        vreg_reg32_setbits(&rank->ienable, r, info);
> +        vgic_enable_irqs(v, (rank->ienable) & (~tr), EXT_RANK_IDX2NUM(ra=
nk->index));
> +        vgic_unlock_rank(v, rank, flags);
> +        return 1;
> +
> +    case VRANGE32(GICD_ICENABLERnE, GICD_ICENABLERnEN):
> +        if ( dabt.size !=3D DABT_WORD ) goto bad_width;
> +        rank =3D vgic_ext_rank_offset(v, 1, reg - GICD_ICENABLERnE, DABT=
_WORD);
> +        if ( rank =3D=3D NULL ) goto write_ignore;
> +        vgic_lock_rank(v, rank, flags);
> +        tr =3D rank->ienable;
> +        vreg_reg32_clearbits(&rank->ienable, r, info);
> +        vgic_disable_irqs(v, (~rank->ienable) & tr, EXT_RANK_IDX2NUM(ran=
k->index));
> +        vgic_unlock_rank(v, rank, flags);
> +        return 1;
> +
> +    case VRANGE32(GICD_ISPENDRnE, GICD_ISPENDRnEN):
> +        if ( dabt.size !=3D DABT_WORD ) goto bad_width;
> +        rank =3D vgic_ext_rank_offset(v, 1, reg - GICD_ISPENDRnE, DABT_W=
ORD);
> +        if ( rank =3D=3D NULL ) goto write_ignore;
> +
> +        vgic_set_irqs_pending(v, r, EXT_RANK_IDX2NUM(rank->index));
> +
> +        return 1;
> +
> +    case VRANGE32(GICD_ICPENDRnE, GICD_ICPENDRnEN):
> +        if ( dabt.size !=3D DABT_WORD ) goto bad_width;
> +        rank =3D vgic_ext_rank_offset(v, 1, reg - GICD_ICPENDRnE, DABT_W=
ORD);
> +        if ( rank =3D=3D NULL ) goto write_ignore;
> +
> +        vgic_check_inflight_irqs_pending(v, EXT_RANK_IDX2NUM(rank->index=
), r);
> +
> +        goto write_ignore;
> +    case VRANGE32(GICD_ISACTIVERnE, GICD_ISACTIVERnEN):
> +        if ( dabt.size !=3D DABT_WORD ) goto bad_width;
> +        printk(XENLOG_G_ERR
> +               "%pv: %s: unhandled word write %#"PRIregister" to ISACTIV=
ER%d\n",
> +               v, name, r, reg - GICD_ISACTIVERnE);
> +        return 0;
> +
> +    case VRANGE32(GICD_ICACTIVERnE, GICD_ICACTIVERnEN):
> +        printk(XENLOG_G_ERR
> +               "%pv: %s: unhandled word write %#"PRIregister" to ICACTIV=
ER%d\n",
> +               v, name, r, reg - GICD_ICACTIVER);
> +        goto write_ignore_32;
> +
> +    case VRANGE32(GICD_IPRIORITYRnE, GICD_IPRIORITYRnEN):
> +    {
> +        uint32_t *ipriorityr, priority;
> +
> +        if ( dabt.size !=3D DABT_BYTE && dabt.size !=3D DABT_WORD ) goto=
 bad_width;
> +        rank =3D vgic_ext_rank_offset(v, 8, reg - GICD_IPRIORITYRnE, DAB=
T_WORD);
> +        if ( rank =3D=3D NULL ) goto write_ignore;
> +        vgic_lock_rank(v, rank, flags);
> +        ipriorityr =3D &rank->ipriorityr[REG_RANK_INDEX(8, reg - GICD_IP=
RIORITYRnE,
> +                                                      DABT_WORD)];
> +        priority =3D ACCESS_ONCE(*ipriorityr);
> +        vreg_reg32_update(&priority, r, info);
> +        ACCESS_ONCE(*ipriorityr) =3D priority;
> +        vgic_unlock_rank(v, rank, flags);
> +        return 1;
> +    }
> +    case VRANGE32(GICD_ICFGRnE, GICD_ICFGRnEN):
> +        if ( dabt.size !=3D DABT_WORD ) goto bad_width;
> +        rank =3D vgic_ext_rank_offset(v, 2, reg - GICD_ICFGRnE, DABT_WOR=
D);
> +        if ( rank =3D=3D NULL ) goto write_ignore;
> +        vgic_lock_rank(v, rank, flags);
> +        vreg_reg32_update(&rank->icfg[REG_RANK_INDEX(2, reg - GICD_ICFGR=
nE,
> +                                                     DABT_WORD)],
> +                          r, info);
> +        vgic_unlock_rank(v, rank, flags);
> +        return 1;
> +#endif
> +
>      default:
>          printk(XENLOG_G_ERR
>                 "%pv: %s: unhandled write r%d=3D%"PRIregister" offset %#0=
8x\n",
> @@ -1129,6 +1285,16 @@ static int vgic_v3_distr_mmio_read(struct vcpu *v,=
 mmio_info_t *info,
>              typer |=3D GICD_TYPE_LPIS;
> =20
>          typer |=3D (v->domain->arch.vgic.intid_bits - 1) << GICD_TYPE_ID=
_BITS_SHIFT;
> +#ifdef CONFIG_GICV3_ESPI
> +        if ( v->domain->arch.vgic.nr_espis > 0 )
> +        {
> +            /* Set eSPI support bit for the domain */
> +            typer |=3D GICD_TYPER_ESPI;
> +            /* Set ESPI range bits */
> +            typer |=3D (DIV_ROUND_UP(v->domain->arch.vgic.nr_espis, 32) =
- 1)
> +                       << GICD_TYPER_ESPI_RANGE_SHIFT;
> +        }
> +#endif
> =20
>          *r =3D vreg_reg32_extract(typer, info);
> =20
> @@ -1194,6 +1360,18 @@ static int vgic_v3_distr_mmio_read(struct vcpu *v,=
 mmio_info_t *info,
>      case VRANGE32(GICD_IPRIORITYR, GICD_IPRIORITYRN):
>      case VRANGE32(GICD_ICFGR, GICD_ICFGRN):
>      case VRANGE32(GICD_IGRPMODR, GICD_IGRPMODRN):
> +
> +#ifdef CONFIG_GICV3_ESPI
> +    case VRANGE32(GICD_IGROUPRnE, GICD_IGROUPRnEN):
> +    case VRANGE32(GICD_ISENABLERnE, GICD_ISENABLERnEN):
> +    case VRANGE32(GICD_ICENABLERnE, GICD_ICENABLERnEN):
> +    case VRANGE32(GICD_ISPENDRnE, GICD_ISPENDRnEN):
> +    case VRANGE32(GICD_ICPENDRnE, GICD_ICPENDRnEN):
> +    case VRANGE32(GICD_ISACTIVERnE, GICD_ISACTIVERnEN):
> +    case VRANGE32(GICD_ICACTIVERnE, GICD_ICACTIVERnEN):
> +    case VRANGE32(GICD_IPRIORITYRnE, GICD_IPRIORITYRnEN):
> +    case VRANGE32(GICD_ICFGRnE, GICD_ICFGRnEN):
> +#endif
>          /*
>           * Above all register are common with GICR and GICD
>           * Manage in common
> @@ -1216,7 +1394,11 @@ static int vgic_v3_distr_mmio_read(struct vcpu *v,=
 mmio_info_t *info,
>          /* Replaced with GICR_ISPENDR0. So ignore write */
>          goto read_as_zero_32;
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +    case VRANGE32(0x3100, 0x60FC):
> +#else
>      case VRANGE32(0x0F30, 0x60FC):
> +#endif
>          goto read_reserved;
> =20
>      case VRANGE64(GICD_IROUTER32, GICD_IROUTER1019):
> @@ -1235,8 +1417,30 @@ static int vgic_v3_distr_mmio_read(struct vcpu *v,=
 mmio_info_t *info,
> =20
>          return 1;
>      }
> +#ifdef CONFIG_GICV3_ESPI
> +    case VRANGE64(GICD_IROUTERnE, GICD_IROUTERnEN):
> +    {
> +        uint64_t irouter;
> +
> +        if ( !vgic_reg64_check_access(dabt) ) goto bad_width;
> +        rank =3D vgic_ext_rank_offset(v, 64, gicd_reg - GICD_IROUTERnE,
> +                                DABT_DOUBLE_WORD);
> +        if ( rank =3D=3D NULL ) goto read_as_zero;
> +        vgic_lock_rank(v, rank, flags);
> +        irouter =3D vgic_fetch_irouter(rank, gicd_reg - GICD_IROUTERnE);
> +        vgic_unlock_rank(v, rank, flags);
> +
> +        *r =3D vreg_reg64_extract(irouter, info);
> +
> +        return 1;
> +    }
> +#endif
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +    case VRANGE32(0xA004, 0xBFFC):
> +#else
>      case VRANGE32(0x7FE0, 0xBFFC):
> +#endif
>          goto read_reserved;
> =20
>      case VRANGE32(0xC000, 0xFFCC):
> @@ -1382,6 +1586,18 @@ static int vgic_v3_distr_mmio_write(struct vcpu *v=
, mmio_info_t *info,
>      case VRANGE32(GICD_IPRIORITYR, GICD_IPRIORITYRN):
>      case VRANGE32(GICD_ICFGR, GICD_ICFGRN):
>      case VRANGE32(GICD_IGRPMODR, GICD_IGRPMODRN):
> +
> +#ifdef CONFIG_GICV3_ESPI
> +    case VRANGE32(GICD_IGROUPRnE, GICD_IGROUPRnEN):
> +    case VRANGE32(GICD_ISENABLERnE, GICD_ISENABLERnEN):
> +    case VRANGE32(GICD_ICENABLERnE, GICD_ICENABLERnEN):
> +    case VRANGE32(GICD_ISPENDRnE, GICD_ISPENDRnEN):
> +    case VRANGE32(GICD_ICPENDRnE, GICD_ICPENDRnEN):
> +    case VRANGE32(GICD_ISACTIVERnE, GICD_ISACTIVERnEN):
> +    case VRANGE32(GICD_ICACTIVERnE, GICD_ICACTIVERnEN):
> +    case VRANGE32(GICD_IPRIORITYRnE, GICD_IPRIORITYRnEN):
> +    case VRANGE32(GICD_ICFGRnE, GICD_ICFGRnEN):
> +#endif
>          /* Above registers are common with GICR and GICD
>           * Manage in common */
>          return __vgic_v3_distr_common_mmio_write("vGICD", v, info,
> @@ -1405,7 +1621,11 @@ static int vgic_v3_distr_mmio_write(struct vcpu *v=
, mmio_info_t *info,
>          if ( dabt.size !=3D DABT_WORD ) goto bad_width;
>          return 0;
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +    case VRANGE32(0x3100, 0x60FC):
> +#else
>      case VRANGE32(0x0F30, 0x60FC):
> +#endif
>          goto write_reserved;
> =20
>      case VRANGE64(GICD_IROUTER32, GICD_IROUTER1019):
> @@ -1419,12 +1639,34 @@ static int vgic_v3_distr_mmio_write(struct vcpu *=
v, mmio_info_t *info,
>          vgic_lock_rank(v, rank, flags);
>          irouter =3D vgic_fetch_irouter(rank, gicd_reg - GICD_IROUTER);
>          vreg_reg64_update(&irouter, r, info);
> -        vgic_store_irouter(v->domain, rank, gicd_reg - GICD_IROUTER, iro=
uter);
> +        vgic_store_irouter(v->domain, rank, gicd_reg - GICD_IROUTER, iro=
uter, false);
> +        vgic_unlock_rank(v, rank, flags);
> +        return 1;
> +    }
> +
> +#ifdef CONFIG_GICV3_ESPI
> +    case VRANGE64(GICD_IROUTERnE, GICD_IROUTERnEN):
> +    {
> +        uint64_t irouter;
> +
> +        if ( !vgic_reg64_check_access(dabt) ) goto bad_width;
> +        rank =3D vgic_ext_rank_offset(v, 64, gicd_reg - GICD_IROUTERnE,
> +                                DABT_DOUBLE_WORD);
> +        if ( rank =3D=3D NULL ) goto write_ignore;
> +        vgic_lock_rank(v, rank, flags);
> +        irouter =3D vgic_fetch_irouter(rank, gicd_reg - GICD_IROUTERnE);
> +        vreg_reg64_update(&irouter, r, info);
> +        vgic_store_irouter(v->domain, rank, gicd_reg - GICD_IROUTERnE, i=
router, true);
>          vgic_unlock_rank(v, rank, flags);
>          return 1;
>      }
> +#endif
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +    case VRANGE32(0xA004, 0xBFFC):
> +#else
>      case VRANGE32(0x7FE0, 0xBFFC):
> +#endif
>          goto write_reserved;
> =20
>      case VRANGE32(0xC000, 0xFFCC):

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 17:39:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 17:39:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089167.1446831 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1up9Fa-0001jR-Vu; Thu, 21 Aug 2025 17:38:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089167.1446831; Thu, 21 Aug 2025 17:38: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 1up9Fa-0001jK-SH; Thu, 21 Aug 2025 17:38:58 +0000
Received: by outflank-mailman (input) for mailman id 1089167;
 Thu, 21 Aug 2025 17:38:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6kfR=3B=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1up9FZ-0001jE-EI
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 17:38:57 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b593e51d-7eb5-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 19:38:55 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by DBAPR03MB6520.eurprd03.prod.outlook.com
 (2603:10a6:10:19d::17) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Thu, 21 Aug
 2025 17:38:52 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9052.013; Thu, 21 Aug 2025
 17:38: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>
X-Inumbo-ID: b593e51d-7eb5-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Dbd31zp35xCg9Ug88iyFhI2oAW70ZllAIjWWRmQgwmx8tXMU0gZiwEn+faQu4og9KKqOQUN0XFFQneikK6voRcws0wyW4pLXGPMLRXvuNJl1+p8mgAURDurg42D707N9wfvLU3t3fTMQOnMt2iBeeacIg8k61tqseJ6OoFP5D3LaR7rskU7nxZ0Q7WbGjemg8sJzNTeUTP0WXXBtshPJXMUDTYEjovoINEG/fErhaChMiHqOUj0pA3jtUZXtVFCGTTpJc9UvEgP78x1BmG1rQKcSNrBx49V7Mw8au7lZO5BnqzreidNTDY/+rcAqRYpvvGDYEIX1/PP4sih0el0SYA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=r291w6cZSx3+Y2+OZFA+Fj/rb2a2dooD1U0z0Tajzqw=;
 b=egEevF+Z8qhOYhMr9iIdaUVOL46b9aFc6iEk+v7iWAEz8c75hxZJu0ocx2nJrOVtRH1lgtiI3+RegkZmAEL2uVvbouOZRp+y6BYLiMpuRMbvDWMktmUX2H0DvbFcEtaYcQ2b/L5lZscK/3aLpE5iGCogMZrmW/QxRBrf7i2ECWc8SsSdasP8VqSk5BYbW/e2qKol9FcfMFBQHMaQ56bTHE1u9xx9TfAViwYq0XT9KK5c0Z31muWtaKNsSfCfrDjaHjPJ70Ih8rMPDjXgJZmEKjMie0pNnmtASVpU+iD2O7+G+67JdgeqMDcTaGhI2cXGDk63GGaT3FEPVsBaRebQIQ==
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=r291w6cZSx3+Y2+OZFA+Fj/rb2a2dooD1U0z0Tajzqw=;
 b=TywGKvQ7/WAraZizmf+AIB8lmrq9uiGQJTLkTMZTONLnNhGW7HQ7bq87Od1e+6CbZaWpd7k0aNpAP06pEhfbLjD5Vj7SKiAFbRlpZcuPuiVymr6Gh1nqjX+NLOuvLq/njUqqjcigpeeoJI9vP4IDCYjNaR+ubGRBFjGKiZCPRC66upce9cOktxtxyP4fzTKtpasj16M3qa/6Gt5ndtAUffYRVcFsLtUUxPiCUcGYb//vKkkwkonKiCOSl/6UxW65dxQVO+3Z5XZzTM5wrgoOwZzKvBphfJP8MFacUU28Cpx671xdLQ/WoWFynYrDxcrYBZxMx1dtCO98UbGDtaJylQ==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Julien Grall <julien@xen.org>
CC: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v2 04/10] xen/arm/irq: add handling for IRQs in the eSPI
 range
Thread-Topic: [PATCH v2 04/10] xen/arm/irq: add handling for IRQs in the eSPI
 range
Thread-Index: AQHcB5d7kgaRrTB4eUK2JDUmO9y7Hw==
Date: Thu, 21 Aug 2025 17:38:52 +0000
Message-ID: <874iu0d178.fsf@epam.com>
References:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
	<418e7e8082fa8f7b6659ff8cae3beb773803ca47.1754568795.git.leonid_komarianskyi@epam.com>
	<87ms7sekdx.fsf@epam.com>	<9922f7f1-7249-424e-9bab-3aee2ce3b813@xen.org>
	<87frdkd31m.fsf@epam.com>	<20328499-772c-4b32-815e-7527aa6b2cc7@xen.org>
In-Reply-To: <20328499-772c-4b32-815e-7527aa6b2cc7@xen.org> (Julien Grall's
	message of "Thu, 21 Aug 2025 18:13:41 +0100")
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_|DBAPR03MB6520:EE_
x-ms-office365-filtering-correlation-id: f4dca9ea-a797-453b-d8be-08dde0d99846
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|42112799006|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?6qXvKKG9pyzvbnn0xa0J8BtV4xAdlOK6mLG6odwh/0ugk+OWSfrahIerWa?=
 =?iso-8859-1?Q?XHH6ZtKBEJ+1qZHaZ2sOGtqcOlp8Ysdl8zvXMTYH/4zJsZNSL8pxAfS2fS?=
 =?iso-8859-1?Q?iOhOnYOq8QScXmO01L8tHyYi01qpvxx3wGf9UMoAzMAKbdgmL5W08Msr//?=
 =?iso-8859-1?Q?8UkYezgYdIy1LRWFPCC9iax3Osjvl8KTA2pHFD1xjQ4tMdWyIVqXsH44sf?=
 =?iso-8859-1?Q?0RqhDk2vFxP+S22kGxqk98wgBn+puHAcL+67qCQ7We/9QK/m5RZypI7Z5J?=
 =?iso-8859-1?Q?Y/oqD5E5C7PO9YgjWYo6HmwMZXU89GkoVllP0AxikrujyQvU+4E12qFp1/?=
 =?iso-8859-1?Q?4XnM/cr2z0MdWNP1NcpAGtP0roDIo3q4ydVjujUTuW78bXiW4freB027gl?=
 =?iso-8859-1?Q?/pFtq4n/9fnvCcvJRuA8952lyep9rSdh8CMJhXwlE/3ZDyWZD7/F7dTdpr?=
 =?iso-8859-1?Q?mkTywJe15xs5LXlzcZb30kt7E4uglLR2fMog1NvH1PS/76nhA7xqG6HVI4?=
 =?iso-8859-1?Q?0Tq0j0a/hQM6tsqJSWvuzcHm5MRaHzNhjFTaUzmB6PeJWA+5sd+DP0bN0E?=
 =?iso-8859-1?Q?RToXW4noTIKxIhimxXIkObAntYXhQtkz1Vyxp75J+fWhmdZIxIvvPktpEs?=
 =?iso-8859-1?Q?zQC8jF3YDn1El00pndfUD3x6lAE/YRGgd43BUWHEQ9aSS3JeovGUxoFhuF?=
 =?iso-8859-1?Q?CmR+hMx8SOvtgxjqjp8W41r43kn+W3buSN05+9rTFNZUx5vBbheos3dnM3?=
 =?iso-8859-1?Q?yw0GdtAxdLooyATsrmP044lObtYAtDXLaQNpH8X1u26nhCVoxxE79EN4Lk?=
 =?iso-8859-1?Q?JMpMTrDu0awQh1JjhEx0rOINsGJ7k0aD6unBGSObzwoGU1gL2jGC1h34oI?=
 =?iso-8859-1?Q?KLG2w0TXYfm9N8BR4Hx+4d0s54NFUZJ+XdClsNJUWcr3UgYuFaK+OAXAQ7?=
 =?iso-8859-1?Q?Y8qNMgh6W79Yd9UNQ+VcxpruAB/Tc9J+BJ2Ed8INM3x2cnryJOJaREe9gL?=
 =?iso-8859-1?Q?M9eEFA3b8VVvP+DEcn4w+CK63JqIcYHxp7f0Z5dOGyyHs9EyX2WVlZMbjp?=
 =?iso-8859-1?Q?lHzEhMZ2xlScTWaVCbOMr9UDn+6fUC2/B22iC/0A77ep0bra2blro10fxZ?=
 =?iso-8859-1?Q?dA+ECMOoU66GqLbaOwOGwWS+cxVCRXlngH0+6z95oHNIe1yjtJDsR5L8Pd?=
 =?iso-8859-1?Q?vYeebKklzCYjxZGnl/brWqYyW6kqT61wUeY6MwWiYoLJTh4sSCvmFwBean?=
 =?iso-8859-1?Q?TU5CzTakPH7nCefkiAVEOi5M7aJ8/Jeg5SIh21IUFSmDj9FsNetzk9xPK5?=
 =?iso-8859-1?Q?7Xzw1JnZ7ggKfbB95jJtdZ0WILUx9BEmywDH5yMbi6JeZtEpe68LirpkgP?=
 =?iso-8859-1?Q?GACCsHMKy0k1pxfBupra+5ajJ2WcD+GqZn9xBfhPDfJwMYUJx+I43WQiHt?=
 =?iso-8859-1?Q?Fz5NNpQKcUqgE9P9St4nsQtdNMMXXNfHG3o5//xiAvouyXX1CCoQvp88DS?=
 =?iso-8859-1?Q?cW2DIQ2wqzndoqopZItsneA9G39kGdfJS1Bou4n05SnQ=3D=3D?=
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)(42112799006)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?LuWfTXtYdQWSRSqb2amPncg0B2t+htekAYQOyPyhwbLcvPVjgYwWUHVVmk?=
 =?iso-8859-1?Q?9rGImgXTqDa343jxIZXf6/1wJGZS21ZZJxYXly9TSkflAmwDPxXn70im5I?=
 =?iso-8859-1?Q?rlnYgNy5pjr/OQoeC+RoQ1GKbaGsDjR1mgb/FJ0+FRRgg2ILFGY0841iaE?=
 =?iso-8859-1?Q?oaM7CfIRkzSYnMQPtHV8HXyG+TLsnPolPpxi4mZTZIpcZgJfkg9yulHm2u?=
 =?iso-8859-1?Q?NSMPq4hIl20cKKbjGRenF83iGkYK/+flzzRRS1vHBX7+rx+O4kirrPohYk?=
 =?iso-8859-1?Q?xu2LekGRk/RRWQkueoSs4wVMDA20cbflsqu+1jphNGl2YXYi4rnaTxb8MR?=
 =?iso-8859-1?Q?l9fNHxXk3Ux6M1DFykMGRSk6yJy2MCErB5AySg13zwKUWb8idsd4/5GZUl?=
 =?iso-8859-1?Q?K352nByRJdeYYm3dhUU16qQhhAciBmy8hJR9ettm9dS1q6HLK2VLavRpq+?=
 =?iso-8859-1?Q?0F81FvSt5iDz2VXiM/EFOyymV0KdKdvufAWLhVNLQVocV0IHEezFLkFaS2?=
 =?iso-8859-1?Q?FfdZIF8gJVC2k9Xt2HmyVKcfJAuyGLzA6omYLme5tFejcNfvWqcYLqOHJa?=
 =?iso-8859-1?Q?2Q4JeW2ggfzHYyhg7EJXPS7L8UPcOKupcAcm+pPyoDxp94i/4qOedxU0w+?=
 =?iso-8859-1?Q?Ys/Qm1G0lxwlPOh5WJHmOZvcitd/ENwkfTUw1KSPTm03DQXfo9lpDl/aMe?=
 =?iso-8859-1?Q?Cjgu4GCC/hXaxTi6mU4wdC+JpsLsIiY+3f7lKkPIXHbl3RTmSUnWLZMIN9?=
 =?iso-8859-1?Q?nMu5S7oVbilmnKzrM/NgsUL5ZuYE6p48TKKHA6hCril07DF7SrI240ajed?=
 =?iso-8859-1?Q?FFCHJTwRW15ZPUkEinkJBXHESIFDNHfSQC9eKO5/0xH8njgeZ4jLZKsbDL?=
 =?iso-8859-1?Q?yEFeSQk96QajXGaLOSgkgM6URpIIeTm0pY2S9vlzBwzAmd06fMRrCSEnGZ?=
 =?iso-8859-1?Q?KGKrv/Acng4Aw910akdqswU6YJPOqYmCmktCWCNw76ujOTBn3HrUhSrkos?=
 =?iso-8859-1?Q?OC0XNTlBcqETVXbUIAXGbNXSejDI9EkxQySUemvGqRQh3KWa8kI8xqD2WR?=
 =?iso-8859-1?Q?wyr7lbi6P9gRJHs+QEiEyjbiAGzCWtWsFW89a+amXCm6kqJ/ljkPozRtPV?=
 =?iso-8859-1?Q?7n0bJMh7+rJezR7bZiW+o2mVmzyfTsJM9Pu54W6LP/UAqiap0U/agqRuv7?=
 =?iso-8859-1?Q?TEaCxGNRJpCVgxVDtpZp7125hnp3UyU9OuGf8xqlyGRHOpfD7OFgo71TzQ?=
 =?iso-8859-1?Q?te62H8XkSS3SWu2rLBS50HhP+wCSPl/iOVlvRYYbrG5mzImKBqZgW1Konq?=
 =?iso-8859-1?Q?wrmmB/79k1aby6GIQwfwDOXhjwEJyIgduSxEPX+LuIVz30KWXOV+dGSvRL?=
 =?iso-8859-1?Q?s+HzPjLXwJHgfEVutN3d+DF2smFi/Uj4liFW4L8dtZRi/I1tbJ9lrrK2dl?=
 =?iso-8859-1?Q?SarHY7cJlEIqDJcA1bI/Q6pNbS0wFMmjfCQhHhpBrT5p5ULFxmg07Fkf8x?=
 =?iso-8859-1?Q?IuST48cWS8liyKeI0qV/GqusYMwoYJPW5xVq22Xij3+E30Vdwiaip/lHcO?=
 =?iso-8859-1?Q?CsEfaNI0mcSBe5ZmWSgVFGtdQBElNHfvlvPr2LXhnBf0icyr8lhjsGKxUd?=
 =?iso-8859-1?Q?tZ+DXgyMtAt3zKc/Ju4QpOYHGza50ml3cwKhPg3s7DV/HTTZNgkrcTUw?=
 =?iso-8859-1?Q?=3D=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: f4dca9ea-a797-453b-d8be-08dde0d99846
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Aug 2025 17:38:52.3634
 (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: 5K5C6V+otkzGOI2TuCK7EtKzQYzlFBpL1DGmEEmqKlPVRO6F7YDXXTia/Akzdw91SSsRQIeEO+wLjdnGX4jVctlfOodO4bkuw6PnGAI8TRc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR03MB6520


Julien Grall <julien@xen.org> writes:

> On 21/08/2025 17:59, Volodymyr Babchuk wrote:
>> Julien Grall <julien@xen.org> writes:
>>=20
>>> Hi,
>>>
>>> On 21/08/2025 16:59, Volodymyr Babchuk wrote:
>>>> Leonid Komarianskyi <Leonid_Komarianskyi@epam.com> writes:
>>>>
>>>>> Currently, Xen does not support eSPI interrupts, leading
>>>>> to a data abort when such interrupts are defined in the DTS.
>>>>>
>>>>> This patch introduces a separate array to initialize up to
>>>>> 1024 interrupt descriptors in the eSPI range and adds the
>>>>> necessary defines and helper function. These changes lay the
>>>>> groundwork for future implementation of full eSPI interrupt
>>>>> support. As this GICv3.1 feature is not required by all vendors,
>>>>> all changes are guarded by ifdefs, depending on the corresponding
>>>>> Kconfig option.
>>>> I don't think that it is a good idea to hide this feature under
>>>> Kconfig
>>>> option, as this will increase number of different build variants.
>>>> I believe that runtime check for GICD_TYPER.ESPI should be
>>>    sufficient,> but maintainers can correct me there.
>>>
>>> I haven't seen many board with ESPI available. So I think it would be
>>> better if this is under a Kconfig because not everyone may want to
>>> have the code.
>> Probably, we can expect more in the future...
>
> Well yes. But I was under the impression this the preferred
> approach. See the discussion about disabling 32-bit support on 64-bit:
>
> 20250723075835.3993182-1-grygorii_strashko@epam.com

Ah yes, safety certification. Welp, can't argue with that.

>
>>  Anyways, after reviewing
>> all patches in the series, I can see that code will be littered with
>> #ifdef CONFIG_GICV3_ESPI, which, probably, not a good thing.
>
> The solution is to provide wrappers to reduce the number of #ifdef. I
> haven't checked all the places.

Yes, I was also thinking about that, but I got an impression, that in
many cases it will be hard to provide such wrappers. Anyways, something
is needs to be done here.

[...]


>
>> As a bonus point, we can't leave this pointer
>> present even if CONFIG_GICV3_ESPI=3Dn, which will simplify some code in
>> latter patches.
>
> Did you intend to say "We can leave" rather than "we can't leave"?

Correct

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 18:47:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 18:47:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089186.1446840 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upAJu-00033h-QN; Thu, 21 Aug 2025 18:47:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089186.1446840; Thu, 21 Aug 2025 18:47: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 1upAJu-00033a-Nm; Thu, 21 Aug 2025 18:47:30 +0000
Received: by outflank-mailman (input) for mailman id 1089186;
 Thu, 21 Aug 2025 18:47:29 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=O+vP=3B=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1upAJt-00033U-S1
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 18:47:29 +0000
Received: from mail-wr1-x432.google.com (mail-wr1-x432.google.com
 [2a00:1450:4864:20::432])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 495011d0-7ebf-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 20:47:28 +0200 (CEST)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-3c4e9efb88aso655854f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 11:47:28 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3c074d43ba5sm12686851f8f.22.2025.08.21.11.47.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Aug 2025 11:47: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>
X-Inumbo-ID: 495011d0-7ebf-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755802048; x=1756406848; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=XK6bQI4sv2e8rUB/d9Y+5ny0SLwm0w22NW2DONNrLsM=;
        b=dtnbe22YN94J8hx2BcHa7Vf1tku/rhlU+rKM28CZmya6dKaKDAlJz+CcPcvdiAdmh5
         O+tBC2ZT8wzsCerohsRa6idhttS7rD9TRGTDVrrgcR6GeSy6Q9O8XeqA+zRg9Pk25tFt
         GRswsudXrqE0hd3c3i9UDwwMIybmdRVdsVjyA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755802048; x=1756406848;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XK6bQI4sv2e8rUB/d9Y+5ny0SLwm0w22NW2DONNrLsM=;
        b=oc2reVrd0deVaczxCziqv3FMbrQ1caMZNz5Wf0Kg3uVbby6XDw1L74z8+pZrOs8Z/q
         MIFWx24hxu/XYffEGOINtqP+VLTwsQvtdwG152t5pyEnJ7+uHpAtRdu8IC82fjV8/oCg
         T5KoBST7jqu9eTMViWKujY0yebP8rPUadwaAMOv9nLMCTb5gL3recD0jtRsJVX9ZadcS
         nXTtNv16nz90496vuqGbvhyOb4cjkTFU7moC58kLGs7Ry9rAntXUXJvaZsF9jcR3O4Fb
         NDKZf4ks4S7yOKYIng0oHgq8dCAw06zotgGIb6KZYbbRtZhzvht15ibt72A0vF87XXC5
         8qAw==
X-Forwarded-Encrypted: i=1; AJvYcCWrQY18tOvLwM1FoWH3Qw1Xq7CIjaa05Y7PLVV7o5/4TDOKu31Aoy5QSJtDmg1Kc9LNI2DachLtbJY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyrywlpoFAPRodxE+wElL+EXpA0KwEjM+aulSz40bdRPC+TeYwt
	+auZ07paVORuPGdykv2VFbzZkkTjGCid4FDbQ+g+qUINdhWqA4ghFOAX7M53D98ztGM=
X-Gm-Gg: ASbGnctfvBP9aNaeG8cOLKBi/HNcMrJdwcQjftR81IhQAWLn1OZlKF89AkLwmtYbY/E
	2CV+o5NxL5SR0DqNXKhY+Jyo+K2YYbdod8fp/i9vhXAGZvTqCTLUT8oRQEiseV5HYp9fq7Qenfe
	VjiZ5XXm53F+TVy25YHU7c7ZUPhgUmaMexMSHhlW/fNJqSx0SJzb177eT5JjHAD4dtwjy+JGldh
	+hqkRosn2krMzik5I4Tud7J7VuBayN7yixx3oVk7dn5rmNs0ZmGFctDmtELwmYRgqhTdYRLJEXK
	3CQVkeg0g9epFVvtWueAxdAT0qGZKX9SNmQFJXvpUOFHL4sWBNX6jhQRx6nOGXByMTdGBDAkhrw
	14p1YKqVFi9bwW1IeKpi8HFIqvpoVo6RIdm+SkQIAb4Py5sBFXspr/r++eOUJICbIdw2u
X-Google-Smtp-Source: AGHT+IFYvEc0+60yrN62majQkv8aBoQi9VXYa0A2BnS2Uypl3rBgC3m+t9hh13pAUjG68ZWDCREXGw==
X-Received: by 2002:a05:6000:400e:b0:3b7:9c79:32ac with SMTP id ffacd0b85a97d-3c5ddd7f89amr32416f8f.52.1755802047724;
        Thu, 21 Aug 2025 11:47:27 -0700 (PDT)
Message-ID: <ee126e0c-4381-40a8-bbec-544e3286498f@citrix.com>
Date: Thu, 21 Aug 2025 19:47:26 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 12/16] x86/msr: Change wrmsr() to take a single
 parameter
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
 <20250815204117.3312742-13-andrew.cooper3@citrix.com>
 <3511e3dc-0c9b-412b-9cb3-e4b726088297@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: <3511e3dc-0c9b-412b-9cb3-e4b726088297@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19/08/2025 1:38 pm, Jan Beulich wrote:
> On 15.08.2025 22:41, Andrew Cooper wrote:
>> --- a/xen/arch/x86/nmi.c
>> +++ b/xen/arch/x86/nmi.c
>> @@ -218,16 +218,16 @@ void disable_lapic_nmi_watchdog(void)
>>          return;
>>      switch (boot_cpu_data.x86_vendor) {
>>      case X86_VENDOR_AMD:
>> -        wrmsr(MSR_K7_EVNTSEL0, 0, 0);
>> +        wrmsrns(MSR_K7_EVNTSEL0, 0);
> Since you switch to non-serializing here, ...
>
>> @@ -308,11 +308,11 @@ static void setup_k7_watchdog(void)
>>          | K7_EVNTSEL_USR
>>          | K7_NMI_EVENT;
>>  
>> -    wrmsr(MSR_K7_EVNTSEL0, evntsel, 0);
>> +    wrmsr(MSR_K7_EVNTSEL0, evntsel);
>>      write_watchdog_counter("K7_PERFCTR0");
>>      apic_write(APIC_LVTPC, APIC_DM_NMI);
>>      evntsel |= K7_EVNTSEL_ENABLE;
>> -    wrmsr(MSR_K7_EVNTSEL0, evntsel, 0);
>> +    wrmsr(MSR_K7_EVNTSEL0, evntsel);
>>  }
> ... why not also here?

An oversight.Â  Fixed.

>
>> --- a/xen/arch/x86/oprofile/op_model_athlon.c
>> +++ b/xen/arch/x86/oprofile/op_model_athlon.c
>> @@ -34,7 +34,7 @@
>>  #define MAX_COUNTERS FAM15H_NUM_COUNTERS
>>  
>>  #define CTR_READ(msr_content,msrs,c) do {rdmsrl(msrs->counters[(c)].addr, (msr_content));} while (0)
>> -#define CTR_WRITE(l,msrs,c) do {wrmsr(msrs->counters[(c)].addr, -(unsigned int)(l), -1);} while (0)
>> +#define CTR_WRITE(l,msrs,c) do { wrmsr(msrs->counters[(c)].addr, -l); } while (0)
> This isn't obviously correct (as in: no functional change): The macro is,
> for example, passed reset_value[] contents, which is of type unsigned long.
> Quite possible that the original code was wrong, though.

I'm pretty sure the change is correct.

Perf counters get programmed to -(count), as they generate an interrupt
when they overflow.Â  The K8 is the oldest BKDG I can easily access, and
the counters are 48 bits wide.Â  The same is true of Intel systems of of
the same age.

Interestingly, it is the singular omission from b5103d692aa7 which
converts everything including the Intel version of CTR_WRITE() of this
to use wrmsrl().

While looking at the mail list archives for b5103d692aa7, I found
https://lists.xenproject.org/archives/html/xen-devel/2010-06/msg01660.html
which shows that it was Christoph's attempt to turn rdmsr() and wrmsr()
into a real C functions, so I'm pretty certain that CTR_WRITE() was an
omission in b5103d692aa7.

Only 15 years late on that todo...

> In any event l wants parenthesizing.

Oh, so it does.Â  Fixed.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 18:59:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 18:59:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089203.1446851 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upAVK-0004u3-Pu; Thu, 21 Aug 2025 18:59:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089203.1446851; Thu, 21 Aug 2025 18: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 1upAVK-0004tt-Mu; Thu, 21 Aug 2025 18:59:18 +0000
Received: by outflank-mailman (input) for mailman id 1089203;
 Thu, 21 Aug 2025 18:59:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=O+vP=3B=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1upAVJ-0004tg-QR
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 18:59:17 +0000
Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com
 [2a00:1450:4864:20::42d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ef070a53-7ec0-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 20:59:15 +0200 (CEST)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-3b9e411c820so875168f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 11:59:15 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3c0771c1a12sm12330607f8f.34.2025.08.21.11.59.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Aug 2025 11: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>
X-Inumbo-ID: ef070a53-7ec0-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755802755; x=1756407555; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=3tuiRnKSy2Dzo7kRbhkh8BsaXVSlMYN8qP+iZe3KkTQ=;
        b=SZ5VPjtRgA0/W0GsMLy9UA1fkgqZT9e3HzxV85iFoQ9BegnVEqvubyS8rn3/i7MRVc
         jrD0AqimDduXrJLevChx4yoxQTTNyZmsu2HaNAyCnhQoldNbji3Wx3yqlXUazlWPMYml
         fadEKtMAc2p+02hloXjA0NColmhfYLuN4n6+c=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755802755; x=1756407555;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3tuiRnKSy2Dzo7kRbhkh8BsaXVSlMYN8qP+iZe3KkTQ=;
        b=Aq6BSFzlpqteGesutCFlwPKSE1hTwIIFGpH2xFMTXjfZRkMJB4DaG5NWQNF4Q1GtRn
         vd4uCGK+jybDGtR59u11PeEXTuRlqYEVXDr5kSZXwGKiUQr8p7cvRqqlD0BkVXxwvz42
         JxRE7gKOvlkRwQ3HjItaeVswjLndrfpe59DiNQ5eFPWeVks63vXL/CO2q9Lop6of4Nph
         v8vQd459fW8g/JZzNoiOfv9Krts5M0N10JLb/wpfsAXx1fiYn8Tez+7Dn+050s2hlOhC
         JKpJnGpZH4QpoZ6Fcey2k1JHyqQdQOn/BwUpsIK9P3Rl0M/ChNzoBt3i6X+EQOuqrvX7
         Rdnw==
X-Forwarded-Encrypted: i=1; AJvYcCW6Feku2bu+w1t31wLHMstsD8oJmaaxF4CRrCk0gXPfYDTICcCwea82J45l27q+VKO42KthGC1u/1g=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyLvdMwWf6zz7mhG215phXt7gn7jH2HUm7Sos497GxGb/4G1lRT
	WFXVJ4X3ShZYB3vUG9Ek6egpyAL/9b5mcwlsp85j70JSQPC9yg+zkJUo7Z3wUeG8oV4=
X-Gm-Gg: ASbGnctlrqNyNPW8RnjH2QHioGYe/BRrgxQsMKKbIT50rW7YeWYen8droixSC/sNWWg
	yHOhhpEQLrRpfK4KEA9vI2qRsF1lRWjHmj6Qjpz71TR7PiU8hk/xKDDiWVOtSyk3MsNbqRtxQFC
	B76D8jetvUsUiXxmv6v+MUnAy4hLvbb8Xc1CfMU8OokoM4aiePjk+t/5cj9wp+DkVm9O3O+lAPu
	+tVaSd+UCpncN4prvKfddGSk+71Ld2FiLuNZ2uFNFs72PwuzofuSFq3KCU2dKVsCVMWQ3vjw/7w
	Pdac/FGIb6NvWkycZMgbwmOnU7hRSC2HT0Go36iPu74hkLiaamntrlphLi6afMBkiQiqasuhepP
	Y7r+6X9F3C0+WuY9HkA9iAIafcyRV4ZTiG6TK/aB3Y0pCnEOYO1Zni6xqIf/S9fK7Pw4zT2xpZc
	epW48=
X-Google-Smtp-Source: AGHT+IHtcwMCORvJOVGr6ksPewwPcvE740ftCSMTgZbIh+/nAGCtuyqUNYHlgV4CgYUDexwRQSQajA==
X-Received: by 2002:a05:6000:2384:b0:3b7:942c:5450 with SMTP id ffacd0b85a97d-3c5db8ab0a2mr62198f8f.9.1755802755031;
        Thu, 21 Aug 2025 11:59:15 -0700 (PDT)
Message-ID: <92abee8e-108a-4d2f-8f05-fb9397b64fca@citrix.com>
Date: Thu, 21 Aug 2025 19:59:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 13/16] x86/msr: Use MSR_IMM when available
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
 <20250815204117.3312742-14-andrew.cooper3@citrix.com>
 <3b367c39-4c4a-4bdd-91cd-7cb8ba18c2c9@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: <3b367c39-4c4a-4bdd-91cd-7cb8ba18c2c9@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19/08/2025 1:55 pm, Jan Beulich wrote:
> On 15.08.2025 22:41, Andrew Cooper wrote:
>> Most MSR accesses have compile time constant indexes.  By using the immediate
>> form when available, the decoder can start issuing uops directly for the
>> relevant MSR, rather than having to issue uops to implement "switch (%ecx)".
>> Modern CPUs have tens of thousands of MSRs, so that's quite an if/else chain.
>>
>> Create __{rdmsr,wrmsrns}_imm() helpers and use them from {rdmsr,wrmsrns}()
>> when the compiler can determine that the msr index is known at compile time.
>>
>> At the instruction level, the combined ABI is awkward.  Explain our choices in
>> detail.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> ---
>> CC: Jan Beulich <JBeulich@suse.com>
>> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
>>
>> The expression wrmsrns(MSR_STAR, rdmsr(MSR_STAR)) now yields:
>>
>>   <test_star>:
>>       b9 81 00 00 c0          mov    $0xc0000081,%ecx
>>       0f 32                   rdmsr
>>       48 c1 e2 20             shl    $0x20,%rdx
>>       48 09 d0                or     %rdx,%rax
>>       48 89 c2                mov    %rax,%rdx
>>       48 c1 ea 20             shr    $0x20,%rdx
>>       2e 0f 30                cs wrmsr
>>       e9 a3 84 e8 ff          jmp    ffff82d040204260 <__x86_return_thunk>
>>
>> which is as good as we can manage.  The alternative form of this looks like:
>>
>>   <test_star>:
>>       b9 81 00 00 c0          mov    $0xc0000081,%ecx
>>       c4 e7 7b f6 c0 81 00    rdmsr  $0xc0000081,%rax
>>       00 c0
>>       2e c4 e7 7a f6 c0 81    cs wrmsrns %rax,$0xc0000081
>>       00 00 c0
>>       e9 xx xx xx xx          jmp    ffff82d040204260 <__x86_return_thunk>
>>
>> Still TBD.  We ought to update the *_safe() forms too.  rdmsr_safe() is easier
>> because the potential #GP locations line up, but there need to be two variants
>> because of
> Because of ...?

Oh.Â  I guess I didn't finish that.Â  Because of asm goto with outputs.

The WRMSR side is harder because there are two different fault locations.

>
>> --- a/xen/arch/x86/include/asm/alternative.h
>> +++ b/xen/arch/x86/include/asm/alternative.h
>> @@ -151,6 +151,13 @@ extern void alternative_instructions(void);
>>          ALTERNATIVE(oldinstr, newinstr, feature)                        \
>>          :: input )
>>  
>> +#define alternative_input_2(oldinstr, newinstr1, feature1,              \
>> +                            newinstr2, feature2, input...)              \
>> +    asm_inline volatile (                                               \
>> +        ALTERNATIVE_2(oldinstr, newinstr1, feature1,                    \
>> +                      newinstr2, feature2)                              \
>> +        :: input )
>> +
>>  /* Like alternative_input, but with a single output argument */
>>  #define alternative_io(oldinstr, newinstr, feature, output, input...)   \
>>      asm_inline volatile (                                               \
>> diff --git a/xen/arch/x86/include/asm/msr.h b/xen/arch/x86/include/asm/msr.h
>> index 1bd27b989a4d..2ceff6cca8bb 100644
>> --- a/xen/arch/x86/include/asm/msr.h
>> +++ b/xen/arch/x86/include/asm/msr.h
>> @@ -29,10 +29,52 @@
>>   *  wrmsrl(MSR_FOO, val);
>>   */
>>  
>> -static inline uint64_t rdmsr(unsigned int msr)
>> +/*
>> + * RDMSR with a compile-time constant index, when available.  Falls back to
>> + * plain RDMSR.
>> + */
>> +static always_inline uint64_t __rdmsr_imm(uint32_t msr)
>> +{
>> +    uint64_t val;
>> +
>> +    /*
>> +     * For best performance, RDMSR $msr, %r64 is recommended.  For
>> +     * compatibility, we need to fall back to plain RDMSR.
>> +     *
>> +     * The combined ABI is awkward, because RDMSR $imm produces an r64,
>> +     * whereas WRMSR{,NS} produces a split edx:eax pair.
>> +     *
>> +     * Always use RDMSR $imm, %rax, because it has the most in common with the
>> +     * legacy form.  When MSR_IMM isn't available, emit logic to fold %edx
>> +     * back into %rax.
>> +     *
>> +     * Let the compiler do %ecx setup.  This does mean there's a useless `mov
>> +     * $imm, %ecx` in the instruction stream in the MSR_IMM case, but it means
>> +     * the compiler can de-duplicate the setup in the common case of reading
>> +     * and writing the same MSR.
>> +     */
>> +    alternative_io(
>> +        "rdmsr\n\t"
>> +        "shl $32, %%rdx\n\t"
>> +        "or %%rdx, %%rax\n\t",
>> +
>> +        /* RDMSR $msr, %rax */
>> +        ".byte 0xc4,0xe7,0x7b,0xf6,0xc0; .long %c[msr]", X86_FEATURE_MSR_IMM,
>> +
>> +        "=a" (val),
> Strictly speaking "=&a". Not that it matters much here; just to not
> set a bad precedent.

Why?Â  A is not written to until after all inputs are consumed.

I don't see how it can qualify for being early-clobber.

>
>> @@ -55,11 +97,51 @@ static inline void wrmsr(unsigned int msr, uint64_t val)
>>  }
>>  #define wrmsrl(msr, val) wrmsr(msr, val)
>>  
>> +/*
>> + * Non-serialising WRMSR with a compile-time constant index, when available.
>> + * Falls back to plain WRMSRNS, or to a serialising WRMSR.
>> + */
>> +static always_inline void __wrmsrns_imm(uint32_t msr, uint64_t val)
>> +{
>> +    /*
>> +     * For best performance, WRMSRNS %r64, $msr is recommended.  For
>> +     * compatibility, we need to fall back to plain WRMSRNS, or to WRMSR.
>> +     *
>> +     * The combined ABI is awkward, because WRMSRNS $imm takes a single r64,
>> +     * whereas WRMSR{,NS} takes a split edx:eax pair.
>> +     *
>> +     * Always use WRMSRNS %rax, $imm, because it has the most in common with
>> +     * the legacy forms.  When MSR_IMM isn't available, emit setup logic for
>> +     * %edx.
>> +     *
>> +     * Let the compiler do %ecx setup.  This does mean there's a useless `mov
>> +     * $imm, %ecx` in the instruction stream in the MSR_IMM case, but it means
>> +     * the compiler can de-duplicate the setup in the common case of reading
>> +     * and writing the same MSR.
>> +     */
>> +    alternative_input_2(
>> +        "mov %%rax, %%rdx\n\t"
>> +        "shr $32, %%rdx\n\t"
>> +        ".byte 0x2e; wrmsr",
>> +
>> +        /* CS WRMSRNS %rax, $msr */
>> +        ".byte 0x2e,0xc4,0xe7,0x7a,0xf6,0xc0; .long %c[msr]", X86_FEATURE_MSR_IMM,
>> +
>> +        "mov %%rax, %%rdx\n\t"
>> +        "shr $32, %%rdx\n\t"
>> +        ".byte 0x0f,0x01,0xc6", X86_FEATURE_WRMSRNS,
> Isn't this the wrong way round for hardware which has both features? The
> last active alternative wins, iirc.

Bah - fooled once again by the nop optimisation.Â  I'll reorder.

But, we really should swap the order.Â  Especially now that you've
inserted serialisation, it's an expensive waste of time patching the
same site multiple times.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 19:34:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 19:34:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089222.1446860 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upB3D-0002Ie-FB; Thu, 21 Aug 2025 19:34:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089222.1446860; Thu, 21 Aug 2025 19:34: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 1upB3D-0002IX-CT; Thu, 21 Aug 2025 19:34:19 +0000
Received: by outflank-mailman (input) for mailman id 1089222;
 Thu, 21 Aug 2025 19:34:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ZwFA=3B=intel.com=sohil.mehta@srs-se1.protection.inumbo.net>)
 id 1upB3A-0002IN-PT
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 19:34:17 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.21])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cfeb0c36-7ec5-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 21:34:13 +0200 (CEST)
Received: from orviesa003.jf.intel.com ([10.64.159.143])
 by orvoesa113.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 21 Aug 2025 12:34:10 -0700
Received: from orsmsx901.amr.corp.intel.com ([10.22.229.23])
 by orviesa003.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 21 Aug 2025 12:34:10 -0700
Received: from ORSMSX902.amr.corp.intel.com (10.22.229.24) by
 ORSMSX901.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Thu, 21 Aug 2025 12:34:09 -0700
Received: from ORSEDG902.ED.cps.intel.com (10.7.248.12) 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.17 via Frontend Transport; Thu, 21 Aug 2025 12:34:09 -0700
Received: from NAM10-BN7-obe.outbound.protection.outlook.com (40.107.92.45) by
 edgegateway.intel.com (134.134.137.112) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Thu, 21 Aug 2025 12:34:09 -0700
Received: from DS0PR11MB7997.namprd11.prod.outlook.com (2603:10b6:8:125::14)
 by SJ2PR11MB7575.namprd11.prod.outlook.com (2603:10b6:a03:4ce::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Thu, 21 Aug
 2025 19:34:05 +0000
Received: from DS0PR11MB7997.namprd11.prod.outlook.com
 ([fe80::9105:2b7c:b256:7a6c]) by DS0PR11MB7997.namprd11.prod.outlook.com
 ([fe80::9105:2b7c:b256:7a6c%6]) with mapi id 15.20.9052.012; Thu, 21 Aug 2025
 19:34: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>
X-Inumbo-ID: cfeb0c36-7ec5-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1755804854; x=1787340854;
  h=message-id:date:subject:to:cc:references:from:
   in-reply-to:content-transfer-encoding:mime-version;
  bh=yRg9LpYrjKZbM34HCtFrRl8J7IMCEwl6TBruPu1lvKA=;
  b=QyzFseErPlsRAmMta4IwrDJJDh1OD3eorQz1VTbclbDinQ69+FBW7KAO
   4wmGzR+TfFj0mOIKRuxFdKSoBgrCrIWfebvmtAzqejW3E9gbuEME7G7zm
   5bdMwWU/xuTCQ7peNDx8aSIzIvt12JihLXIqU7mPQjFbeZoqmJ1WRScPR
   tq1Buv7Rz2SgSk/xXm3IE/a4PnexIWdDabhxLmTZ8VHARpDPFpXfMDiMt
   bHacsHyip01wAb2YVT9CUO8x8VM/+IO+vAvQZOWhsqMhYN/8tDXQ73Yn2
   jq6AjPLQ3KfVxwylVclBUlJNVC8lAgipXmzojXK6Ni4t6u7/cgvIipBXQ
   A==;
X-CSE-ConnectionGUID: 26VK+jW6S6GfWWSEBGzRJA==
X-CSE-MsgGUID: 3kWoi46lSveK6enl8ZzpjQ==
X-IronPort-AV: E=McAfee;i="6800,10657,11529"; a="58032321"
X-IronPort-AV: E=Sophos;i="6.17,309,1747724400"; 
   d="scan'208";a="58032321"
X-CSE-ConnectionGUID: VOZOI1m1Q/aInIPsIkOjKQ==
X-CSE-MsgGUID: g8JEIWcRQGudHI3yvor55w==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.17,309,1747724400"; 
   d="scan'208";a="172709187"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Ty8XmjKdBKpz+/GAsB0bJz+dg8b5GYuLMQo2+pDbk3+FyR81vwUV2OZZLmtFcGNIo4uDl62Qd6V1dXuX5PNC4yuth50UKge+DaHczjJ/BVUHJpUV6+kQgltKK5SsL+yeWAwPd4ab42WOHFE45G8immnHUPZwr+7S2U1WWp708C6lTofZVNxRfas2ieihUFKRvbR7U8dgkMEVUq1vaazpjkr61RS+d4eyy5HMr4DWuOTMHhcq3dyrEZpmbEaG8z1RMNofBMtxorUjUj3JDri+TXhaAidTl2ez4El2vUlXEh+rX24AKav6ocr/J7bOc9+dsH8vXV4DaDz9k1NHpq0Bjg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=g4XN3AovvR0H2OmCvTRcqrch2e6ZTY9StMlmWKNg2J4=;
 b=sKD7SSwM1xJuFilu4isKKtt3+f1TBt1CssRg/vXL1svWbr9V9wni+3U18Cghb2NEGAVB1iaehnbHe015ueg8k/JBSECQItwJ1kMiR9d4CznCUhC+yj38j0IbRQlLIBLs08PZCGHcTTWD66YLd4d0OotwHPCx1VWHeOJ+ko4Pf972jMFxaCswfDuHyDwzNEZVStJFGEp5pHcarwkkE8vrmHbadk/04GGqr+HmxsZg9yKqoKJQSzeHJuqiMm8QF90vNiAHbraQc4e3PDoG5FXZhzs3tfHuAr1PfeKNXDS629hh9Oy59UMxqU3q+lMN7gl03HfyfWxcY86MgK/soHLmcg==
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
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=intel.com;
Message-ID: <968a179f-3da7-4c69-b798-357ea8d759eb@intel.com>
Date: Thu, 21 Aug 2025 12:34:01 -0700
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 13/15] x86/cpu/intel: Bound the non-architectural
 constant_tsc model checks
To: David Woodhouse <dwmw2@infradead.org>, <x86@kernel.org>, Dave Hansen
	<dave.hansen@linux.intel.com>, Tony Luck <tony.luck@intel.com>,
	=?UTF-8?Q?J=C3=BCrgen_Gross?= <jgross@suse.com>, Boris Ostrovsky
	<boris.ostrovsky@oracle.com>, xen-devel <xen-devel@lists.xenproject.org>
CC: Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com>,
	Arnaldo Carvalho de Melo <acme@kernel.org>, Namhyung Kim
	<namhyung@kernel.org>, Mark Rutland <mark.rutland@arm.com>, "Alexander
 Shishkin" <alexander.shishkin@linux.intel.com>, Jiri Olsa <jolsa@kernel.org>,
	Ian Rogers <irogers@google.com>, Adrian Hunter <adrian.hunter@intel.com>,
	"Kan Liang" <kan.liang@linux.intel.com>, Thomas Gleixner
	<tglx@linutronix.de>, Borislav Petkov <bp@alien8.de>, "H . Peter Anvin"
	<hpa@zytor.com>, "Rafael J . Wysocki" <rafael@kernel.org>, Len Brown
	<lenb@kernel.org>, Andy Lutomirski <luto@kernel.org>, Viresh Kumar
	<viresh.kumar@linaro.org>, Jean Delvare <jdelvare@suse.com>, Guenter Roeck
	<linux@roeck-us.net>, Zhang Rui <rui.zhang@intel.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, "David Laight" <david.laight.linux@gmail.com>,
	Dapeng Mi <dapeng1.mi@linux.intel.com>, <linux-perf-users@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <linux-acpi@vger.kernel.org>,
	<linux-pm@vger.kernel.org>, <kvm@vger.kernel.org>, <xiaoyao.li@intel.com>,
	Xin Li <xin@zytor.com>
References: <20250219184133.816753-1-sohil.mehta@intel.com>
 <20250219184133.816753-14-sohil.mehta@intel.com>
 <6f05a6849fb7b22db35216dcf12bf537f8a43a92.camel@infradead.org>
Content-Language: en-US
From: Sohil Mehta <sohil.mehta@intel.com>
In-Reply-To: <6f05a6849fb7b22db35216dcf12bf537f8a43a92.camel@infradead.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: SJ0PR03CA0340.namprd03.prod.outlook.com
 (2603:10b6:a03:39c::15) To DS0PR11MB7997.namprd11.prod.outlook.com
 (2603:10b6:8:125::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS0PR11MB7997:EE_|SJ2PR11MB7575:EE_
X-MS-Office365-Filtering-Correlation-Id: 7b8f1f03-90c9-4c2d-9b8d-08dde0e9b08d
X-LD-Processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|366016;
X-Microsoft-Antispam-Message-Info: =?utf-8?B?bEpZNVNqRFlKelQ4ekRGNkFjclg4cThvaHV1Um9WaFhEWm1FWnpMaVU1YTNV?=
 =?utf-8?B?M0lKMUtXemhPY3V3MVlOaTFEbjhNTzFHaEc0eUxJSFo5c0Rqdzc4YnB3aEM5?=
 =?utf-8?B?Y05lc3JZZE5tWktSVXZFVFF5a0ZEdGtBYXhhUVNUL0FITDZrdHV4ay95SGlH?=
 =?utf-8?B?aWJUZGQrSkM4VmtHVkVMN09MSkpvbEF6Rkxjc2QrYit6T0k4N25jNkkyTFl0?=
 =?utf-8?B?MkNJWTdUWTlYTlNOYUFEUUM4UUhUZGRQRkNFVlRpMXBHM2VidVBLL0pySDhn?=
 =?utf-8?B?em05L0lldjduVHdzNnB0dFh6ek53ODVKbTRwK1I4dHJLVFZZK1RSYUxVRkN5?=
 =?utf-8?B?QjlKN2NtTUp2OGF1dmtGVVpEUnljTk0xQzQ3dzcwSnBiaVoxQzJFcVZwOC9L?=
 =?utf-8?B?WGVCbE4xLzV5Q2VhRGxNR2FvOEtHL0oxRWdWMytSZjNWQjdYWFhtSXd2QVpz?=
 =?utf-8?B?K1I4ZitJV0c0V1pnd3BFeDM1K3lDbE5IVnpyQmYvam56dDI1MmNNYm1qUU5m?=
 =?utf-8?B?UHJoRXM4RXpZeWFkZDlQc3MvS0gxa2tIQlVhOStsRFJyZTJTaURRcXNHNjky?=
 =?utf-8?B?QVN3aWpWWkd2YVdibklIQ1NOSTFEUG9kZkNvT3VlMjBDRHlxOUI5ZU9wd3h2?=
 =?utf-8?B?emxuQlYvNVk4OXc2Q1E3dDU5TVIxUElod05TeGJUYlUwV0txQkpmZktKNUxJ?=
 =?utf-8?B?NDZEU1Z5bUFTaXk0UWp5VHlWcVVTanNpZlZjZXJ1ZCtOdVN2OUVyWG9YTXFC?=
 =?utf-8?B?T21LMjJ4cUlZSi96bVpTd2FBNm9WVUNZWlA5RnQ1SjBtOVlWV1liL0t2MFQ4?=
 =?utf-8?B?dXNCeFVqbTE4Nk92SDkyNGRvTEg5WU1IVS9idTVmYlQzVFM3RS8rUDQ1TThS?=
 =?utf-8?B?Q0tWbXkrQjZLcDZhK2NaZkJSSWU3TFJmSVRVb0tvVk45Uy9MZmJKUVAreENI?=
 =?utf-8?B?bXR5OWlOSWN1Tzk4ZXZON25lbURMZW8yaVBGQW9Bc3R0UitkUDYxRnNaaUJ3?=
 =?utf-8?B?SEtEMHZRUXFDVGNpeUljaTIyQ2p3WGZ4ZmlSd2ZQbzRsdHo3cXJ6UEhBQzIz?=
 =?utf-8?B?Lzh4dG9CNXM4VzR5SXA3STVqRUtrQnJlTkxoWEJ0cnVsUzFzMXpVRTh4MEVE?=
 =?utf-8?B?RUlxZUN4WnJMZGpjK28xZXBGanVYWE9CdHdGZnQrb3NZUnBPZmhZQ3ZRRW1k?=
 =?utf-8?B?WXVvNFRjWGJMZThrYWNmbGZzMGlMUElycUVNTDJ1WVJEWG12OFBkMjZMRks3?=
 =?utf-8?B?aFA3ZDB5L0s0QU9ZUjJpcEtPVFk3VjVBZUZGN2tseWtRYy9FOHJzVk5HR1dx?=
 =?utf-8?B?Z1hBSUkyKzVld1gwWC9wYzdyeklTUFlaaFc3SzdWdml2L2V0VmFBWGp2ZmF5?=
 =?utf-8?B?YkFoRUVhNVo2TFpWV0VjQW9SaFFUb0daODR0dGZSRzdrbko3MTJoMnFvRGtG?=
 =?utf-8?B?SzNhWkFVckhBTzdXcndjQ1ZXUEJPSW5rSlBST0lHMldiNWRyRzRtQXpnajND?=
 =?utf-8?B?RGhUQk02RlhzM0NseE95UHZ1VjFkeCtYWUdFSVYrbEZtbVA1UDlseEcxbW8y?=
 =?utf-8?B?NndnbDZrczl5MVNlYm9BVURPaENhUTBaWmJmbytpRFBZUXJsZUpHVEhUN01j?=
 =?utf-8?B?Sm5MS08zMW9XMnBBRWU0dE9aUk1OalViV2pzSTdOcmsvU0tJRUlubjNuZjZa?=
 =?utf-8?B?VGZUSHhXVmpRUDJrdW93Ylh5aXpKUExKbC83a1NRYVpHdVcxWVVTYWZ0cEZz?=
 =?utf-8?B?bXkrL2JSaktMd0Q0eHlGMmJYMG5MaEpBNnBDamhHWEJMeEQyNzBGWHRGbEpm?=
 =?utf-8?B?MFpYRE1WbnpldU5wNGtZZGxkN0J4bER5T0hHSldsL1NQazdWTlFJbzYzUTlO?=
 =?utf-8?B?dzdlSjU1bVFWY0x4VTJ0RXVvWWFMWmxSbWgyTkVBLzVoREE9PQ==?=
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR11MB7997.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?eXo4NmJYZ3h1dEkzc3Fpd1JlRXVGaWMvV1FTRmlySXBxWjhyOVlEMGFqZzJq?=
 =?utf-8?B?SXdMUFl5U3VJVFpTamZNY0RrVER5MTRaTmRqRG9TYWozVmlBWjhlN1ZQR2dO?=
 =?utf-8?B?ZGVGQkFsVEFrRkdwWnM5cWNQZXVSaUxhdzRNZXVuTEhISVVsV2lQSXdHR0Za?=
 =?utf-8?B?TWg1Y0drWDVmZG5oelVDVngzZTdMbEwvbzlyaHZuMWRuSHEzdm5VWCsrRzht?=
 =?utf-8?B?U0RJKzRWRGtma0tCOE51RkFxME0wNDZzMnZqTGRONHp6dklCdGhPdEhMQ2Qz?=
 =?utf-8?B?WU1ZUldGd2l5c2NkQWwxKysrRFFhanBjTTZkbXczZGF6NE51ZlFJT0QvdCtJ?=
 =?utf-8?B?YUh4enFwVDZFM2RLNUhHVHBHaHIyemRtTkNLRW9BMUVqT092MUZ0aEQ5VjJC?=
 =?utf-8?B?VEwwZC9UNElOMGdqekxrUjBXeWMyV09yS3BFb1ducm5tNWlxUXpzbFhLTXFq?=
 =?utf-8?B?OFlIOW9RS043c2tCdkxzNU4wejZyY0E0TXVoV3RtZVJ3TldVcGZqTTlBRVFm?=
 =?utf-8?B?bXRrZjUzZnBoREpHNkk0RHRlcm9KWUVCNXlKVFpsZWg1RllINVBOVERvSTBn?=
 =?utf-8?B?SGNkNEkyODVZYnpFMkpvdTM4aVBLZ3Y1MStXaFZDcm1XRjRpcTZBRlVrOGhr?=
 =?utf-8?B?Y2ZtUnFudm9GeWhJdE1FMTVFR1FKZllsKzVnTEkvcWx6OERmQWU1N0VNb2x6?=
 =?utf-8?B?MHFqMXBaV3FLQlhhT1h2RkhuamdrUWxiRlJwZHVoK29CSWRwWmdFeDJwd0VS?=
 =?utf-8?B?OFNBS0laTkFEOW9UTS81Q3kzSDE4c1orRlQ2Q1NrVEZMVHFqTlBXMmx3eWFo?=
 =?utf-8?B?bzVQUTVrMC9Pc3V6U2twWlIxTnNNOGtCU3NGQldkdWpKNUFHZkhrcC9ucStU?=
 =?utf-8?B?Vy96OCtiSXpnVXFxeUZlRTZUWmZFY29HZWdVdE02c0ZUWktFbndTUGhiajRr?=
 =?utf-8?B?d1hMVU1rZXZhZE5ZVHA2eXY3MHdTTVpiMGlxZEk2VXdVQ1h1elZ2N0J1WVNO?=
 =?utf-8?B?L3hVNFhFS3diOFdZanRmWWY5VFdZREluZXBTVnN5WGU4eXgwRHNGazg4OXgx?=
 =?utf-8?B?THZHZXhzNFExVTh5V001S0FUQmNmclBCZUdKU3JOU0ZmeGpTQzVVU2ZNTkRy?=
 =?utf-8?B?RmYxUFFZWFFsSk1JSGtZRDdKQ01BSUhkN0NnVkhHTFBTU2lHOWV1cGhWRUpW?=
 =?utf-8?B?cnZMaVd3bFY4R0NtSXRUK0tqVE9aOWJPbUJjdFBYNEZOZjBhV0FvbDY4VElN?=
 =?utf-8?B?ZzNzM3RPN1plS0x1OEJUQU1NcUxlQWR3YzBvOUtjSmd1aUQvVmhYWUlpL2F3?=
 =?utf-8?B?dlUvakFuMTg3NE82THJDTUR4THRMSXcwam1ZdTlkaDErZVdud2F1c21UUVlV?=
 =?utf-8?B?cTI4TTJWMC9Xbk5IN0lra3NDbFA4R21BVG1zbzBNeUE5U0ZhQ1pFaUErZVFp?=
 =?utf-8?B?UWY2b2lPL29SZ01PSm9uSklKNWdpb3R0R2NGRkFTMjFsVlR2SVV1TTFNWkhu?=
 =?utf-8?B?WmlnWi9uQnUvdjhINTFDSEJCN2pMMk9Rbng3RjZ4RkRZNVJTN25mMjFTL2Zt?=
 =?utf-8?B?KzFxcnNwYlV4M2UxNlRCU1RlK0FDdjdNUEtHdjBKd1k5MWRkWk85S1JsUWdX?=
 =?utf-8?B?RTZCV09NaU1OS2JVRE4vSVpXaktLcVlKbnRWYVZCSEJNMkxodWoxUTVBSU43?=
 =?utf-8?B?N3F5dmhCWHBTZUhjV0M1Qys1Q0hJZHZKWkdXWTRwRDRLVnVsUVFuYkpxMUEv?=
 =?utf-8?B?eldpNndZZXUxdk1Ob2luMUpkNTdqNHBQMkZxa0VWUkY5VElQZ3NoZFd5bDFo?=
 =?utf-8?B?QU85c0JLOFVaRjRweXp3MHRnbi9qc0ZUdDloaTZBYzdIVHljVVM1VzB0SkIz?=
 =?utf-8?B?NnpwYzJ6cTU2UHVNRE1ER2Jxbi8xNnM4VXJ6cGVaWmZqdmRnRit1ZnhwWWc5?=
 =?utf-8?B?azZPejBWR3BSWHdtMDQrU3E2SDByb0ZsZzJhOU5OVzltZjlwV05lRTcvVStB?=
 =?utf-8?B?NGxUcDdMaXBxb0Vmc2R2ZXQ2SEVpT254U0lGZFJXYzRDRGRTb0ROdWl0RkxX?=
 =?utf-8?B?NUp1T01HSHhmRUNRRUtiNXlZOUFudUJVWFNSVkkvc016VVdYMWVya1Z4WTIr?=
 =?utf-8?Q?qhL6myZcjpZBot35jop5r7LSH?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 7b8f1f03-90c9-4c2d-9b8d-08dde0e9b08d
X-MS-Exchange-CrossTenant-AuthSource: DS0PR11MB7997.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Aug 2025 19:34:05.2696
 (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: H59O1WMrs/4YHel4d2gIFWipF2XGi3Eo8YVCelDNPdjdQwL1aUmr/ucaZnN7/bsBzxWAMgnf4adJ24FVDrkQLA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR11MB7575
X-OriginatorOrg: intel.com

On 8/21/2025 6:15 AM, David Woodhouse wrote:

> Hm. My test host is INTEL_HASWELL_X (0x63f). For reasons which are
> unclear to me, QEMU doesn't set bit 8 of 0x80000007 EDX unless I
> explicitly append ',+invtsc' to the existing '-cpu host' on its command
> line. So now my guest doesn't think it has X86_FEATURE_CONSTANT_TSC.
> 

Haswell should have X86_FEATURE_CONSTANT_TSC, so I would have expected
the guest bit to be set. Until now, X86_FEATURE_CONSTANT_TSC was set
based on the Family-model instead of the CPUID enumeration which may
have hid the issue.

>From my initial look at the QEMU implementation, this seems intentional.

QEMU considers Invariant TSC as un-migratable which prevents it from
being exposed to migratable guests (default).
target/i386/cpu.c:
[FEAT_8000_0007_EDX]
         .unmigratable_flags = CPUID_APM_INVTSC,

Can you please try '-cpu host,migratable=off'?


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 19:43:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 19:43:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089231.1446870 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upBCC-00049x-9s; Thu, 21 Aug 2025 19:43:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089231.1446870; Thu, 21 Aug 2025 19:43:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upBCC-00049q-79; Thu, 21 Aug 2025 19:43:36 +0000
Received: by outflank-mailman (input) for mailman id 1089231;
 Thu, 21 Aug 2025 19:43:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ZwFA=3B=intel.com=sohil.mehta@srs-se1.protection.inumbo.net>)
 id 1upBCB-00049k-O9
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 19:43:35 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.9])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1dd330ed-7ec7-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 21:43:32 +0200 (CEST)
Received: from fmviesa005.fm.intel.com ([10.60.135.145])
 by orvoesa101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 21 Aug 2025 12:43:31 -0700
Received: from fmsmsx902.amr.corp.intel.com ([10.18.126.91])
 by fmviesa005.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 21 Aug 2025 12:43:30 -0700
Received: from FMSMSX902.amr.corp.intel.com (10.18.126.91) by
 fmsmsx902.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Thu, 21 Aug 2025 12:43:29 -0700
Received: from fmsedg901.ED.cps.intel.com (10.1.192.143) by
 FMSMSX902.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17 via Frontend Transport; Thu, 21 Aug 2025 12:43:29 -0700
Received: from NAM12-BN8-obe.outbound.protection.outlook.com (40.107.237.56)
 by edgegateway.intel.com (192.55.55.81) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17; Thu, 21 Aug 2025 12:43:29 -0700
Received: from DS0PR11MB7997.namprd11.prod.outlook.com (2603:10b6:8:125::14)
 by PH8PR11MB7144.namprd11.prod.outlook.com (2603:10b6:510:22c::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.24; Thu, 21 Aug
 2025 19:43:26 +0000
Received: from DS0PR11MB7997.namprd11.prod.outlook.com
 ([fe80::9105:2b7c:b256:7a6c]) by DS0PR11MB7997.namprd11.prod.outlook.com
 ([fe80::9105:2b7c:b256:7a6c%6]) with mapi id 15.20.9052.012; Thu, 21 Aug 2025
 19:43:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1dd330ed-7ec7-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1755805413; x=1787341413;
  h=message-id:date:subject:from:to:cc:references:
   in-reply-to:content-transfer-encoding:mime-version;
  bh=UezUvJD77DHHUtbqSHXmgIfV6qphTLEb2ZVO2HkrmhQ=;
  b=UDfxGK9Vo/yKoMt7SiRpdxOZhFfc5umoV3PiFhSgsyDAhcksMYh5bwDO
   vPmruBoTS9/kfzfkVwhNjL/JwMm5lLybE6OA9KdoPZWi5O6fABpmGyVsz
   9IrX/bNX80F8aQmi86QuZ2ilSy0Gh2AL6Ner+Rzv+JGkeLeRb7OcHlJZ3
   Ipo6i7MLov5M1aWGH3T+ZS0d+HmkxRVbPekKfdAwsRafj7+2Ssi2kRorC
   WUluV6QZdVR4y7CG9aBKmdkkkncioOkXe5k2cmJa6eAwDf76oV75wPcIj
   3j5Id5EamJbR52hw1iFn6NbwfrAxoM8Fe0/8xAn1p3zKNQnFwxjiPxtbF
   w==;
X-CSE-ConnectionGUID: 36ZheUruSWmzq3ppKMQgew==
X-CSE-MsgGUID: rbbSPIliR5WKDOO2K4p7Cg==
X-IronPort-AV: E=McAfee;i="6800,10657,11529"; a="80705543"
X-IronPort-AV: E=Sophos;i="6.17,309,1747724400"; 
   d="scan'208";a="80705543"
X-CSE-ConnectionGUID: Gb2FbW09Q6ypg3XzdyPvlA==
X-CSE-MsgGUID: BIoRPSQ2R4K/3QvVASyMqg==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.17,309,1747724400"; 
   d="scan'208";a="172758982"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jrhG0DEOz5r+JbXrizzuogo9/yVE29CVk2kmMmUha9inyy8UqKTxd2NpRyKxmRhOd2uBYMAHSt/79RwuC4hJc7MypTplgjrSNAvdIKAUpuTlomcTcviDZ2C65H7q6+T5orr+MNGrCQpNKPTq0EofcYLLUoPg54EmP5us3vpJ6V5BSSA64rOmjlEVNDHlH21GGYAjs4lpS9rbxo0oxs+RH5sSJN61OGvSIMF4g5JQRDc8/rmthMRvwgjXBBGlILqVYWsBsck9SxW5MausQZxLppXcfSUNBToJRNJGEBolNiklK8Vvm9kw5jUFRA0EdPBpSC3rzd3G7YKk1jPFbz/T5Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Nr05bLjlWJosBkfTQyCNa3sUKJzs707uKsuVP3upeSw=;
 b=uyWqSnaoiloeCxu+2uEcX7RtDlPHnC0axbKl84gYeM5qgCOCntQ9JHgFbG4h6dIx5oIiiKU8ujAGGYxm03R+8GPK9w0EllUmqEGZeY/SV4Ko8DW0oeC/NkJdoZu+Iq98Few65F5stf3tpYZIJ4MzZRKz9MZacB9U2kjIeU5QFQwUtl8zEOeqOf2uE0RZkUcp5DNMw/tKT5STGNenYlLBh2cK1Uh9P8Q+99mYzPxCwQexP2RmJpzb0CspuoWvS0YSy4VOA0oka4xNKrGYZuIDhslg26wfRIgdjBfeg6MqOx5Uqw+o62XA4MBvWCeS/fPKGCIiJZIroniLfcmYNCu/ZA==
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
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=intel.com;
Message-ID: <5f5f1230-f373-469c-b0d9-abc80199886e@intel.com>
Date: Thu, 21 Aug 2025 12:43:21 -0700
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 13/15] x86/cpu/intel: Bound the non-architectural
 constant_tsc model checks
Content-Language: en-US
From: Sohil Mehta <sohil.mehta@intel.com>
To: David Woodhouse <dwmw2@infradead.org>, <x86@kernel.org>, Dave Hansen
	<dave.hansen@linux.intel.com>, Tony Luck <tony.luck@intel.com>,
	=?UTF-8?Q?J=C3=BCrgen_Gross?= <jgross@suse.com>, Boris Ostrovsky
	<boris.ostrovsky@oracle.com>, xen-devel <xen-devel@lists.xenproject.org>
CC: Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com>,
	Arnaldo Carvalho de Melo <acme@kernel.org>, Namhyung Kim
	<namhyung@kernel.org>, Mark Rutland <mark.rutland@arm.com>, "Alexander
 Shishkin" <alexander.shishkin@linux.intel.com>, Jiri Olsa <jolsa@kernel.org>,
	Ian Rogers <irogers@google.com>, Adrian Hunter <adrian.hunter@intel.com>,
	"Kan Liang" <kan.liang@linux.intel.com>, Thomas Gleixner
	<tglx@linutronix.de>, Borislav Petkov <bp@alien8.de>, "H . Peter Anvin"
	<hpa@zytor.com>, "Rafael J . Wysocki" <rafael@kernel.org>, Len Brown
	<lenb@kernel.org>, Andy Lutomirski <luto@kernel.org>, Viresh Kumar
	<viresh.kumar@linaro.org>, Jean Delvare <jdelvare@suse.com>, Guenter Roeck
	<linux@roeck-us.net>, Zhang Rui <rui.zhang@intel.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, "David Laight" <david.laight.linux@gmail.com>,
	Dapeng Mi <dapeng1.mi@linux.intel.com>, <linux-perf-users@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <linux-acpi@vger.kernel.org>,
	<linux-pm@vger.kernel.org>, <kvm@vger.kernel.org>, <xiaoyao.li@intel.com>,
	Xin Li <xin@zytor.com>
References: <20250219184133.816753-1-sohil.mehta@intel.com>
 <20250219184133.816753-14-sohil.mehta@intel.com>
 <6f05a6849fb7b22db35216dcf12bf537f8a43a92.camel@infradead.org>
 <968a179f-3da7-4c69-b798-357ea8d759eb@intel.com>
In-Reply-To: <968a179f-3da7-4c69-b798-357ea8d759eb@intel.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: SJ0PR05CA0168.namprd05.prod.outlook.com
 (2603:10b6:a03:339::23) To DS0PR11MB7997.namprd11.prod.outlook.com
 (2603:10b6:8:125::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS0PR11MB7997:EE_|PH8PR11MB7144:EE_
X-MS-Office365-Filtering-Correlation-Id: b1e5e17a-ef84-40f3-b5a1-08dde0eafec5
X-LD-Processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|1800799024;
X-Microsoft-Antispam-Message-Info: =?utf-8?B?dlI3MmgvTWg4aDBJY0JSa21EZWxPM083M004WU1id0dmZVRoeENpTktnN1lq?=
 =?utf-8?B?TERXNmhFd3RBQXhYTE5KQTA3cmlSb0NFMnNNY2RCaDVhZTFnb3RJL3U5aTYv?=
 =?utf-8?B?N2VWdzdJdE9VT2xLaEUvRVVVTVN1UURuaDhhY2l1V0prQjlTOUhSUXpoRDVG?=
 =?utf-8?B?VTdmRHVJLzRCejljZjJoZVE3dFZ0aE1vcjJKanlnWE1qZVpOcm5IU3h4WkQ1?=
 =?utf-8?B?ZkJ0R0lqVUVNdkFEUGdRUUg5a0N3NTVDYVNyVXhjS3RKUW0wR2hzcUI2Y01P?=
 =?utf-8?B?eTVrN0dLditVbkhQdWRwL2xBWmlBM2tzK3FCeW5saFhidFlTV21IRDgxWUJY?=
 =?utf-8?B?MmpSWER2bWNXelRESE1ubmx4ZkR5Nm1YdmpkZzZEY0NBSWRKVEhoMWxCMFls?=
 =?utf-8?B?T0QxT2NoOERxdjFscjJ3ck9SYzA3VzN6YzJwa1REMld5SXQ2ZU9FWTZ3dnNH?=
 =?utf-8?B?a2pDU1Z3Mk92T0FvcGx6SnVldkxnQ0o0b2dLblZxNTJpZEJpakNtSHNXTnhm?=
 =?utf-8?B?ZVV1RGhwdktick4yQlBCNzVGamM1bkVaRFlUOExydXYySG93V2d2Z2p5TlUz?=
 =?utf-8?B?UVJqMW9RUE0yemRZOWNBUTdDOTVmMlFMSVlRSWFKazAwZmFjM2p6T2JXSm5k?=
 =?utf-8?B?NlM4dzlKUGkrNHZZMHE1TDZrcjNEd3lGVWJIWERXdmpGUVpSdHBlWEhtNGhq?=
 =?utf-8?B?ZVNwL25JTHZMOGtDSHFTSzU5T3o5d213VUt2a0JsSWEybHVPSDhJQ054elBy?=
 =?utf-8?B?L3B3blcybXFqOUpZbjJCRGIvZ3I3NDhmU1RNcjh4M0wzQlBXRmtkbDZ4dWpP?=
 =?utf-8?B?YU5sNTQ4OFJDQStGT1ZqU2tvRy9nbkhKK2pzaHdiU0hQSDJCelZ1RXlLQXBj?=
 =?utf-8?B?N1VDTkFhOVJ0TjJKbDQ1d1Z6OU9FdnNCMTNBTVJEZFVlaFVSbnI1cGNkQjNl?=
 =?utf-8?B?bXpuV21mMGlYVW95SW1wNmh4NGNkL3gwS3FNd2RxQVRZTy9uZzlyQ1NSQmk1?=
 =?utf-8?B?eWg4NUs3eW5lSnRKZHB5TEFURjYxbzA5Tmo1ek52b1dtWHhFT1p3WTZSTUto?=
 =?utf-8?B?Wmt4NVA2Ym82SGJZTjB5R09VMzlDb2dQckp6SVcxbHZRbG4vbitYZlpaVDFM?=
 =?utf-8?B?b3ZxTC84Mnk3YzhtK2RBb01CT2xtOERnQnhibkpLU2dZWVlmOC9JTFF0UHhz?=
 =?utf-8?B?dklDKytqMm5wQzFHTDJDM1hETjV4Zm9ockxNOXFOVnpmYnBSRWtLTm0yWnkw?=
 =?utf-8?B?OStrQzhDSmdEVGMzYkNCcE55RDlNcWoyRXhBZkZKQzdSNUxIU0JtL2pLRk1W?=
 =?utf-8?B?dWI0V25lSDZkWEVHeFNQckJldWpaR1lsYUlwUnF0Snh0QTV3YVFDcVBiZlhn?=
 =?utf-8?B?KzQ1cjJ3VnZpTjhPYlkzVTJVTHR4alBwc3dsTlFwcmxhanVzNVBOblIraUZW?=
 =?utf-8?B?WXplZExDMXhwYjhQSFNrTXFNbWRPeEc1QUlka0l4UGI3SW0ybkthbnBBbmJW?=
 =?utf-8?B?UEh5TlErTUEzaENBNDZLdmpOcm1DaGw2QnVGNWhQSkxSSEZjZGUyY2xUYW5F?=
 =?utf-8?B?TzA0ekc3STc3aWpycFJqeGRkaDBNTUhyRFo1THpSUmFrdzNyUmZmK1hqVmpO?=
 =?utf-8?B?ZHl5Y01SR0ZMV3FRL0RCSmRrUEF5UTQxV0RBa2ZjRTZiUlFLRnBNNkZ0RjFJ?=
 =?utf-8?B?WWxxdGtyb2NKekhlc0xlL0piVDAvWUlTZ1oyZ3pHRWZ1bCtEL2VrSHYvdnc5?=
 =?utf-8?B?VTlCNGgzOW0zRUkyY29mMS91YWJMcHZqWUdOSGF5V2phdXQ0ODljRTljd3Vv?=
 =?utf-8?B?eks0OEU2NUdKK05TTnpkNkQycmRGc2VOSS9GVHowWFFocGpnd3RhNEdES0Y4?=
 =?utf-8?B?ajhUYzlSVVdDQlE3ejJvODNMZW45U0VNVHRCZ1JGRXBNV0E9PQ==?=
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR11MB7997.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dGlLTUZrTlM0ZGdPSnY1RGFRdmI5YXJwWnd5M3Nsc2loN0xEWGpMS0pMMTVn?=
 =?utf-8?B?Z2s1Qm1OMWcvbGRJcTBiaUs5SVNicFBSamllYm00QVhrK053andCeVNjSGpZ?=
 =?utf-8?B?TGNXQUROZXcwZE5DUzl1YXVKWllwdXo3NkFlWG81SXdYTU5tcXUzOHR1WGNo?=
 =?utf-8?B?VEZIdHVpaTFkcG9zSTgrTzNKSTFPUFhPaDV0dW9OYmorbUNsUG9UOU1EV3E3?=
 =?utf-8?B?UzFHMDg2ek8wSkdHK3ZrdWtjRmZlRU1XS1dYd2Fmd2t0TnBwT043RmI5YkF3?=
 =?utf-8?B?aC80cHExVS9EdzdPa01wbU0rLzFsZGlPZnpDcVp6RzVKdjhHS05tWWVNSDRn?=
 =?utf-8?B?U2FOdVBWbEZvZ01VMlBONG9lSjRxc1BFTUxwRG5vai90NXQxWXoyU0R1MUov?=
 =?utf-8?B?WmdSQkgvREYrTzdVdzNsbms2OTJSYXNjQU5tK3Qrb1QwNjd1VFR3WDhkdWRn?=
 =?utf-8?B?YXdEOU5CQ2NQWUZBRmoyblNzM3BWT3RpZE11TFVNc3ZZK1MxS0ZaZGkwcUty?=
 =?utf-8?B?T0lQcXhCbEFGdXJwbDVTRVNTcEJkcWF5MFFuMEh3Wk1mTGVrYXA2T0VBVFRF?=
 =?utf-8?B?OVFiODRreEFzQ013Qnp0RWs0OVpRWTlWd1BlOWZWMWZvUUlmak9WKzJUOWFE?=
 =?utf-8?B?c1A0YUFyczVLYVhwZk5LVUtoYkVqakYxQmNZUFBDWkZya2ltcVl4dXRidWow?=
 =?utf-8?B?aWNvYmsrMVJBaU5ldmdHTlYrWHZEYWJtQTZYSWNGb2o0MXhqdlNWN093Ujhl?=
 =?utf-8?B?YStqRVJRZEZqS0JwbXFxZWNGaFBQeStweUFOOTZwUTFRWnFuOUpCbVVQL1FV?=
 =?utf-8?B?Y1prS3ZLcmpac1NneGUvNUVESkg3OWdja2E3NEtjbFRqK0crR09xUEM0ZDVC?=
 =?utf-8?B?UFVZQlRCS3NrMit3ZHVZbmtuNmJENFM1b3dJd2VBMi9yS21RVTlDMHc2clZV?=
 =?utf-8?B?bUxqWkc2NGY1clhDWkUzcDl1TUppSmRYOWZmZy9WKzRoSVRzVUhTaEMvV2ZQ?=
 =?utf-8?B?cFpwY0FOU2U3RjBrbEJUK2V5MEJCcWdNT0FkdzVMd1BIVndELzFOQ3owMU9r?=
 =?utf-8?B?R0lsRzZZTjhEd3RFalV3SG9ZVlJnbDJMcENVQlZOZllqaVk4ZFZKTEZOQ1Fi?=
 =?utf-8?B?dW9DRmVlL1k5dW1TaUxlTmZadmdNQmpzZE9wZ00xK21WbWhiNUFYKzAwK1lQ?=
 =?utf-8?B?QUluN0JrbzRFeTB4VFlnNmlsSCtVSUN3UldmTG5zcTJnSGsvcHJGcmJkY2wz?=
 =?utf-8?B?b3V0V1U4c1VnWThOaitydEY5cGRCdDJKSWRFWExGZUFuYm96OFp5aUw1QlMv?=
 =?utf-8?B?Mm1CYmJVR2c5Zk9DQ09hakd3YS9kVHkwY1J6ZVl6cmZkeW1paGpQc2VmRi9v?=
 =?utf-8?B?UUJ0UnErT0svcnRzL0IxcUg5SkxENUJMVFVqZUxFNnc4MzhOSzgxNlpVa0da?=
 =?utf-8?B?WmhFMzJrK0tPOWJkK21ibE9heUdCTVpjdFlaTXZDZHRzcTdpVnRSVTN4ampv?=
 =?utf-8?B?cExYV2JhK3haN292V3JOam9xTDlJRjMxOTU3Wk1MT3RXeEhnSjI1MU9iUTFH?=
 =?utf-8?B?Nmo1aVUxazhMU3ZaS0hDbVZmNHl0WTh6dzRYVHB3M3kxL3NhcndyajkrdUFh?=
 =?utf-8?B?U1ArT2YzaVpZYzNlLytqZjZpWXl5VGVoZ1FJOHhhN0lOYXNqVWFGUDQyemdn?=
 =?utf-8?B?clJEQ3dOU0s4bktGNWd1c1JrK0kzTW9uVHZKNE5XUFpwZ3NyZVl3TmxmU2Mw?=
 =?utf-8?B?SkFvaENmOWsza016cXZVR2pUK051MDBrVzU5eEtua2hlTy9wektTU2hmalZJ?=
 =?utf-8?B?Mi9iVjl5TU9iVDhTV2hjQnp6eHdDeWNqN1pPRlBrbnpZcVFGTmxJa3prbzEw?=
 =?utf-8?B?RU1ENkpqWnN1YVMybHoxU0RvVnpEZTVRRktyZ3RQWndpNTY4akU0aGVYcDZF?=
 =?utf-8?B?MlZ6Z05rL2JWMEM2dytpbGtqcElGTWRIZE5tcEVxa0dqaEdmMVZWVTg2YmZm?=
 =?utf-8?B?WlIrUmZuOWorT21PaEtJNlFCc2hSSkVHS3RSOVBaTWN1cWxOYmFZQnlJMkV2?=
 =?utf-8?B?RnB0SXNaZDA0VFd5Z25GYUd0M0xETGZ3SStEcnFEbkp4eXNlUnpGcDQvZVBy?=
 =?utf-8?Q?UKQ86GIGM4QR/1N5iZnosuhaf?=
X-MS-Exchange-CrossTenant-Network-Message-Id: b1e5e17a-ef84-40f3-b5a1-08dde0eafec5
X-MS-Exchange-CrossTenant-AuthSource: DS0PR11MB7997.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Aug 2025 19:43:25.9099
 (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: QOxDB1R5ZlkFuAaMst16OrsKaIUoLQTxPCG7I/NWPH5VAPo7snEPJMgAIZ27mDD3MnAkM8UtBUSAVYwIB0z3IA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR11MB7144
X-OriginatorOrg: intel.com

On 8/21/2025 12:34 PM, Sohil Mehta wrote:
> On 8/21/2025 6:15 AM, David Woodhouse wrote:
> 
>> Hm. My test host is INTEL_HASWELL_X (0x63f). For reasons which are
>> unclear to me, QEMU doesn't set bit 8 of 0x80000007 EDX unless I
>> explicitly append ',+invtsc' to the existing '-cpu host' on its command
>> line. So now my guest doesn't think it has X86_FEATURE_CONSTANT_TSC.
>>
> 
> Haswell should have X86_FEATURE_CONSTANT_TSC, so I would have expected
> the guest bit to be set. Until now, X86_FEATURE_CONSTANT_TSC was set
> based on the Family-model instead of the CPUID enumeration which may
> have hid the issue.
> 

Correction:
s/instead/as well as

> From my initial look at the QEMU implementation, this seems intentional.
> 
> QEMU considers Invariant TSC as un-migratable which prevents it from
> being exposed to migratable guests (default).
> target/i386/cpu.c:
> [FEAT_8000_0007_EDX]
>          .unmigratable_flags = CPUID_APM_INVTSC,
> 
> Can you please try '-cpu host,migratable=off'?

This is mainly to verify. If confirmed, I am not sure what the long term
solution should be.


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 20:09:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 20:09:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089243.1446888 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upBbJ-0007ZW-97; Thu, 21 Aug 2025 20:09:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089243.1446888; Thu, 21 Aug 2025 20:09: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 1upBbJ-0007ZP-5w; Thu, 21 Aug 2025 20:09:33 +0000
Received: by outflank-mailman (input) for mailman id 1089243;
 Thu, 21 Aug 2025 20:09:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SZDk=3B=casper.srs.infradead.org=BATV+dd657eb3d837cdb05fc0+8033+infradead.org+dwmw2@srs-se1.protection.inumbo.net>)
 id 1upBbH-0007ZJ-1q
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 20:09:32 +0000
Received: from casper.infradead.org (casper.infradead.org
 [2001:8b0:10b:1236::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bde4461d-7eca-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 22:09:29 +0200 (CEST)
Received: from 54-240-197-233.amazon.com ([54.240.197.233]
 helo=freeip.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.98.2 #2 (Red Hat Linux))
 id 1upBb4-0000000D3Ny-06yh; Thu, 21 Aug 2025 20:09: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>
X-Inumbo-ID: bde4461d-7eca-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References:
	In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To:
	Content-Transfer-Encoding:Content-ID:Content-Description;
	bh=CgsKh6PQ2X7sbamc7uSGEeb01yrHIxNuVCtONrzWHJ4=; b=SBUt5/3fPfGOxjDH2W0WkNNlty
	lG5n7wiKp3WNjkgfokRxgNzX2PaVFggPxkUrCZ++JwrzldPBu8i8bgV3uKCyNTD5NnjahLz5/qp0c
	mO0Ax0VwMDeW9jNE/N5mZO4wHkWVmpH/DkBFZgSpJFB2rFAYCoT++BmvZ2aCuGHAU8c3XJVfwUnFb
	P/P3dtD7Ow26SexGKkPXbR7LvMGf96N8kkqfx6qvCGKhigdat8o1wWbNrNKpvYjjiA9OnjMBS6FqV
	/H8lfLguR7VVfAqVvKR16nBwEEQELBmpP+nsgUMUp5HHtxTZ9VfLD/7WDO4Wc7CUIDllJFCCLh4Bu
	ML5NPnhA==;
Message-ID: <5b905902c99e13d65ea0810b0885fca97cffc74d.camel@infradead.org>
Subject: Re: [PATCH v3 13/15] x86/cpu/intel: Bound the non-architectural
 constant_tsc model checks
From: David Woodhouse <dwmw2@infradead.org>
To: Sohil Mehta <sohil.mehta@intel.com>, x86@kernel.org, Dave Hansen
	 <dave.hansen@linux.intel.com>, Tony Luck <tony.luck@intel.com>, 
 =?ISO-8859-1?Q?J=FCrgen?= Gross
	 <jgross@suse.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>, xen-devel
	 <xen-devel@lists.xenproject.org>
Cc: Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com>, 
 Arnaldo Carvalho de Melo <acme@kernel.org>, Namhyung Kim
 <namhyung@kernel.org>, Mark Rutland <mark.rutland@arm.com>, Alexander
 Shishkin <alexander.shishkin@linux.intel.com>,  Jiri Olsa
 <jolsa@kernel.org>, Ian Rogers <irogers@google.com>, Adrian Hunter
 <adrian.hunter@intel.com>,  Kan Liang <kan.liang@linux.intel.com>, Thomas
 Gleixner <tglx@linutronix.de>, Borislav Petkov <bp@alien8.de>, "H . Peter
 Anvin" <hpa@zytor.com>, "Rafael J . Wysocki" <rafael@kernel.org>, Len Brown
 <lenb@kernel.org>, Andy Lutomirski <luto@kernel.org>, Viresh Kumar
 <viresh.kumar@linaro.org>, Jean Delvare <jdelvare@suse.com>, Guenter Roeck
 <linux@roeck-us.net>, Zhang Rui <rui.zhang@intel.com>, Andrew Cooper
 <andrew.cooper3@citrix.com>, David Laight <david.laight.linux@gmail.com>,
 Dapeng Mi <dapeng1.mi@linux.intel.com>,  linux-perf-users@vger.kernel.org,
 linux-kernel@vger.kernel.org,  linux-acpi@vger.kernel.org,
 linux-pm@vger.kernel.org, kvm@vger.kernel.org,  xiaoyao.li@intel.com, Xin
 Li <xin@zytor.com>
Date: Thu, 21 Aug 2025 21:09:16 +0100
In-Reply-To: <5f5f1230-f373-469c-b0d9-abc80199886e@intel.com>
References: <20250219184133.816753-1-sohil.mehta@intel.com>
	 <20250219184133.816753-14-sohil.mehta@intel.com>
	 <6f05a6849fb7b22db35216dcf12bf537f8a43a92.camel@infradead.org>
	 <968a179f-3da7-4c69-b798-357ea8d759eb@intel.com>
	 <5f5f1230-f373-469c-b0d9-abc80199886e@intel.com>
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-OQYT5kBmShxkyhQquOGw"
User-Agent: Evolution 3.52.3-0ubuntu1 
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


--=-OQYT5kBmShxkyhQquOGw
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, 2025-08-21 at 12:43 -0700, Sohil Mehta wrote:
> On 8/21/2025 12:34 PM, Sohil Mehta wrote:
> > On 8/21/2025 6:15 AM, David Woodhouse wrote:
> >=20
> > > Hm. My test host is INTEL_HASWELL_X (0x63f). For reasons which are
> > > unclear to me, QEMU doesn't set bit 8 of 0x80000007 EDX unless I
> > > explicitly append ',+invtsc' to the existing '-cpu host' on its comma=
nd
> > > line. So now my guest doesn't think it has X86_FEATURE_CONSTANT_TSC.
> > >=20
> >=20
> > Haswell should have X86_FEATURE_CONSTANT_TSC, so I would have expected
> > the guest bit to be set. Until now, X86_FEATURE_CONSTANT_TSC was set
> > based on the Family-model instead of the CPUID enumeration which may
> > have hid the issue.
> >=20
>=20
> Correction:
> s/instead/as well as
>=20
> > From my initial look at the QEMU implementation, this seems intentional=
.
> >=20
> > QEMU considers Invariant TSC as un-migratable which prevents it from
> > being exposed to migratable guests (default).
> > target/i386/cpu.c:
> > [FEAT_8000_0007_EDX]
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 .unmigratable_flags =
=3D CPUID_APM_INVTSC,
> >=20
> > Can you please try '-cpu host,migratable=3Doff'?
>=20
> This is mainly to verify. If confirmed, I am not sure what the long term
> solution should be.

Yes, explicitly turning it on with -cpu host,+invtsc does work.

I've been looking into why it takes a Xen guest four seconds per vCPU
in this case, but not a KVM guest.

When running as a KVM guest, Linux will infer the TSC frequency from
the KVM clock =E2=80=94 or better still, from CPUID; see
https://lore.kernel.org/all/20250816101308.2594298-1-dwmw2@infradead.org
and/or
https://lore.kernel.org/all/20250227021855.3257188-36-seanjc@google.com

As a Xen guest though, Linux doesn't do that. This patch in the guest
should make it work without recalibrating the TSC for each vCPU...

--- a/arch/x86/xen/time.c
+++ b/arch/x86/xen/time.c
@@ -489,7 +489,15 @@ static void xen_setup_vsyscall_time_info(void)
  */
 static int __init xen_tsc_safe_clocksource(void)
 {
-       u32 eax, ebx, ecx, edx;
+       u32 eax, ebx, ecx, edx;
+       u64 lpj;
+
+       /* Leaf 4, sub-leaf 0 (0x40000x03) */
+       cpuid_count(xen_cpuid_base() + 3, 0, &eax, &ebx, &ecx, &edx);
+
+       lpj =3D ((u64)ecx * 1000);
+       do_div(lpj, HZ);
+       preset_lpj =3D lpj;
=20
        if (!(boot_cpu_has(X86_FEATURE_CONSTANT_TSC)))
                return 0;
@@ -500,9 +508,6 @@ static int __init xen_tsc_safe_clocksource(void)
        if (check_tsc_unstable())
                return 0;
=20
-       /* Leaf 4, sub-leaf 0 (0x40000x03) */
-       cpuid_count(xen_cpuid_base() + 3, 0, &eax, &ebx, &ecx, &edx);
-
        return ebx =3D=3D XEN_CPUID_TSC_MODE_NEVER_EMULATE;
 }
=20

... but then I got slightly distracted by the question of why I was
getting *nonsense* in those values, and why KVM is 'correcting' EAX in
subleaf 2 which is supposed to be the *host* TSC, not ECX in subleaf
zero...

Under the Fedora 6.13.8-200 kernel I'm fairly sure the guest was seeing
values in subleaf 0 ECX/EDX that *should* have been in subleaf 1
ECX/EDX, and that problem went away when I rebooted the host into a
mainline kernel. Will have to go back and retest that part...

--=-OQYT5kBmShxkyhQquOGw
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
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI1MDgyMTIwMDkx
NlowLwYJKoZIhvcNAQkEMSIEIAG0b8QSR+4yVgfKGJpqXbAWAJsAGD9WcicVj0v2UrnXMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAYAQXjfrRF6Aw
wkpiAGwlYVrJMDq3pZmKkRo2O2oX9KsV+UEaSYYYl0R2Jh6oFZQuOc/MA/jL9S2L178LxZyr4D/b
XAoE5piPTdNFJs3zLrDWEjk40yIQLu7LGcPxTyH1FLGT6pzu9CVr9YEqwEJX8Mbp+fBI4dVWmMg7
ATVf6QBOkkHcXdYcd+jhU8nva6romlpgY8xuFJlkEogy1C+r7N8U4VP+eHNwGkDBVI7iszM68kq/
u8+Hj3FkpUconyKWZVCbcPC3W4XFM1cPkIbvUjoeZw4P/yIOwXWtOWR6gi6Q4iedRHdjR7GiPaaP
ob7gMTqMzyrC/Xtp9xypLdtnIgUQDnfjNrAft1c7QYuOtnWFgceL67Ag2vWOebxhfZCOblCzRwLN
jnDc5c0Zo6/RvoGu0SPhTnrxHkw4EjWES3V+3f7FNBZJPY8HrTjuLNJYl3+hI/cutjqR04UyDRHZ
4jGwFpXkjWq28MCWPVCdxzvU9CeJPlnzkqfR3C3WHSWu6r78l2jd/es3WAnbbuI44vVwpG2y/Eeb
+zLdmD1NXD1tPkx4CiYLXu3MvjLWQzYI17pFDNF+a7hJvfKA7g0urkca2QSa9E6Pq/B3bI/sGAaf
X4ZZUqqwCd8TRHVBgXrxXWfniABNpl6s7rUDTfMy0SQcUnMvw7miAmnGEqFkSVwAAAAAAAA=


--=-OQYT5kBmShxkyhQquOGw--


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 20:20:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 20:20:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089256.1446898 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upBls-0001vy-9O; Thu, 21 Aug 2025 20:20:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089256.1446898; Thu, 21 Aug 2025 20:20: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 1upBls-0001vr-6q; Thu, 21 Aug 2025 20:20:28 +0000
Received: by outflank-mailman (input) for mailman id 1089256;
 Thu, 21 Aug 2025 20:20:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=O+vP=3B=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1upBlq-0001vl-IR
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 20:20:26 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 455266a4-7ecc-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 22:20:25 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-45a1b0c52f3so8801875e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 13:20:25 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b4e2ba619sm19626135e9.4.2025.08.21.13.20.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Aug 2025 13:20: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>
X-Inumbo-ID: 455266a4-7ecc-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755807624; x=1756412424; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=cZmlsXXr7MMKjZkwN+neQ4WEGzqzDzNyCksWjHidiDk=;
        b=XSoce/E1CZ3Ybl+hzsaYjZdBEGb7LLDtYova/0TXj0Di8q1N3Dkd6G+9D8UXTUq9pQ
         uEfDjOHu+u6n6KQ8uFI0lYMhUtSXOIEtfOAQcPy8m2PTRiWiaLvwusLRpIIX19vsszLx
         y43EXnBSgLqCs0RfzDsz8wECyjr2NNvTQnoPU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755807624; x=1756412424;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=cZmlsXXr7MMKjZkwN+neQ4WEGzqzDzNyCksWjHidiDk=;
        b=A/6I8q0sGipBBfl+qjRaUheIkwrDXYfhQHKrWcjVK0PtxTB2X0mlzdiI+hEMFkf6pR
         2QLyMnFuFrqAQbPw6XCOZ142Cp7vxuSqqiCbrvsT4VH13YCKuqMGf17V3OkKFya6RMFK
         grH1cUFSWyXaYErigoepaF18jnkNo3xwt3H6ToCMtdksczY3GQx5Uy0FKqv8H+7QtwrH
         Cp+fxXx2eJrB+4WkTl7mjOZdjDGHkls9fFDNJ2YpmqpYAIaGWNqOdrxJUsdfPiu8gWh0
         GPxJXP9dAV9ea1qLYXYdWs9/TjqFa0SCXo3XAxFT16lgHDgM8cGonjGg+iTtIEUPesGD
         QeSw==
X-Forwarded-Encrypted: i=1; AJvYcCXJBieC/6zEEcQ5qm5ujgck00S42npn5QP+Ao+5i+a771cTNl8J6oIXscKiszUYfo/ux0jGUTKSibY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxM/hrPx/uQEAmgtgiQjlvG2/BL+qOde6xfq/Fesw404h+H0lkv
	C7+hoDdvaQl5j/0CuYx/R6w5iIv2POmuJkMjuOIWSXMau89fO93peWWCf95zX8A12rxKuRRyMFt
	BixKs
X-Gm-Gg: ASbGncsQIUaUVjihE9AhRUspUegQNvTH3DCqxPinmYeOqs36VACvnLUT07JJzvo1gFF
	eTNOBt2+TyL0T09AM5ziqjuX57meEev1KMxXa9VMSEyUUiFIqt2QVzQJG4XatDeEohtMMcY+uIr
	HfKP3A2i5+tHoAP56fxzi80sVNeXLjdNm20vZlBl61UR24N8EtSHJsLHopmtRycjeZ3lGX3I8Ea
	JsDIRd91W/33mvxzspYXQXR17GBWDMQjRZjsnAfmffAWJlM9ob0ALl/JZT79kCxbfSoWlZlEMYa
	1EhfortaUrXBGd77kESrRjoLcfCSxWvjelYXGhBHKg7FfbNmLY/zW36g8fhQSFj/Zc/o+ya6c5Z
	qvt9PowfzEnNw80oCdycQtqOer+9MoVha3qITXO6/2e2Y0qLvAan/GPxummFqGxf83h0TDJhKzZ
	0OBCI=
X-Google-Smtp-Source: AGHT+IENnqootj7VGAvKt+n4syzu92a45LYVrJltE6hUAvO/C4YSUPo+Pe/6OJu8QzKyPEJUvEyzJA==
X-Received: by 2002:a05:6000:2211:b0:3b8:f318:dc61 with SMTP id ffacd0b85a97d-3c5dc73523bmr191389f8f.40.1755807624452;
        Thu, 21 Aug 2025 13:20:24 -0700 (PDT)
Message-ID: <4d07f29b-006a-46ea-845a-3f21ce246f44@citrix.com>
Date: Thu, 21 Aug 2025 21:20:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 14/16] x86/fsgsbase: Split out __{rd,wr}gskern()
 helpers
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
 <20250815204117.3312742-15-andrew.cooper3@citrix.com>
 <740ce507-de96-41e0-a5ae-999b5b6d8726@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: <740ce507-de96-41e0-a5ae-999b5b6d8726@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19/08/2025 2:01 pm, Jan Beulich wrote:
> On 15.08.2025 22:41, Andrew Cooper wrote:
>> Right now they're inline in {read,write}_gs_shadow(), but we're going to need
>> to use these elsewhere to support FRED.
> But why "kern"? We're not dealing with GS in kernel / user terms, but in
> real / shadow ones.

Because it's a common name that also has the property of aligning nicely
when used beside GS_BASE.

But fine, I'll rename it.

>  I'm also not quite happy with the double leading
> underscores, fwiw.

Consistency with the similar logic.

>
>> --- a/xen/arch/x86/include/asm/fsgsbase.h
>> +++ b/xen/arch/x86/include/asm/fsgsbase.h
>> @@ -32,6 +32,17 @@ static inline unsigned long __rdgsbase(void)
>>      return base;
>>  }
>>  
>> +static inline unsigned long __rdgskern(void)
>> +{
>> +    unsigned long base;
>> +
>> +    asm_inline volatile ( "swapgs\n\t"
>> +                          "rdgsbase %0\n\t"
>> +                          "swapgs" : "=r" (base) );
> Again strictly speaking "=&r", if already you open-code rdgsbase() now.

As before, why?Â Â  There are no inputs to be clobbered, early or otherwise.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 20:49:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 20:49:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089277.1446908 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upCDh-0005Oi-FN; Thu, 21 Aug 2025 20:49:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089277.1446908; Thu, 21 Aug 2025 20:49: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 1upCDh-0005Ob-Cm; Thu, 21 Aug 2025 20:49:13 +0000
Received: by outflank-mailman (input) for mailman id 1089277;
 Thu, 21 Aug 2025 20:49:11 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=O+vP=3B=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1upCDf-0005OV-H2
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 20:49:11 +0000
Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com
 [2a00:1450:4864:20::433])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 493963dc-7ed0-11f0-a32b-13f23c93f187;
 Thu, 21 Aug 2025 22:49:09 +0200 (CEST)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-3b9dc5c2f0eso784275f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 13:49:09 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3c5510a646asm2143868f8f.15.2025.08.21.13.49.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Aug 2025 13:49: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>
X-Inumbo-ID: 493963dc-7ed0-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755809349; x=1756414149; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=PO9AKecNQMNkQyfvwWq/zSIuH0pCd7e9grdA9gdNzfI=;
        b=faeq//rqFVAfPtm9B41S5JwfsFvJSfniTiL+S4n9RKHoTENzBCs8xkmvtER9tVwXhG
         sqjkQAOvnwGx4tBz82fbZ5t0gZrY468b4BR9+DVyHdF7QTIzt20grIhyaLh2eK5ctAI7
         EkDpwcesEk2BD5eXu6CzoWK4HwY896MQ4AOoI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755809349; x=1756414149;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=PO9AKecNQMNkQyfvwWq/zSIuH0pCd7e9grdA9gdNzfI=;
        b=OKt7LRAcvSIsp2wrApG1S8UOS3kXourrQM0wiYo3zPAYVtggHRuxWv8Ti5ml9beT+A
         HN1pmfjshHgA0sIXip7cq7o1ndiKQTKOEVlqjgSpQTWUd7vbDDH9tAyd47mD5neUzr5M
         fQHU+2S6q1yteFRY+OxFA4m4Ze0P0jxjnAp3elggIBomoD+t/dlj6cpwCsm4L4sorjXo
         BY0LLr/tNFBAnTWGHlPQw27DgoSOgGjCHJ/hCYXQtIocyQXh6TGzjuWOsQVUizEyRQXo
         Xic4Mf23nAoOEGIkeW1Ka70wtRo1vqHC0XZeLjILWoWUFivLNmKHiJ182gIATPFA3z/q
         VJbA==
X-Forwarded-Encrypted: i=1; AJvYcCXxHmYVQw573FypALK0YX+jHfYp6YSAoM6n8XGL++NCUcJKbjAi/GqRueIuhBxnrBVALss9HFTH5sA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw8AiorRtY7zz8vyoQJR8L7i/Z0KZSDAOdkRr+6sZkRiR01nVLg
	wNohObIbNe4DooeORf4kJ1+reYH9xuQSKpRav6BGpWQLqnmyb04vIU+S4Nh9qUM6BwA=
X-Gm-Gg: ASbGncv4kxVYh7cKxwDJxpaqIsuoNdHr9XRTolQeWyEAjsqqRGo9QHOcH22ajeMYKzR
	0e5GWZwp7UGP66ACG7LBnIXO8b8Wk09H6jhU6dnKgV7c8H7bI2F1m5Q3Ci1U5WTy72aTwPuoGxk
	JEq8CW4iTLV0xFSKw3udzu/g/o3nkeF2WMwc3zfbKN7mKZD8PYVGebOOH9EcnlDNRCTzUUoBGFr
	OmkwXeEzWUaGm68ek5xsPtlyH1fs7b8ZoTnUDo/effQwFLHgb5d7r+MFRvGc7+DRjQuQt038MVD
	Eu/n+xJA4Bet46pTSzns3Cpmuuj1SNVKIRHeKUvBW3DyuFqsYobwXTOMEd8pMonNJL4zZwEFd67
	NRuyqfSYsoG/G6bC68XZ3tfPZNFa98NfcQcxw3EmoQgLauD2iKTJTUCl5fFrwD8Squi+pDjq6A+
	5hD24=
X-Google-Smtp-Source: AGHT+IGeqz6h7cPIydMTISrflRk73Ip/39WUuy4eO1mRXPfROdIUqDYKJ3Nd9/HHhwywv9iRhspSLw==
X-Received: by 2002:a05:6000:420f:b0:3b9:53c:24a4 with SMTP id ffacd0b85a97d-3c5dc734905mr232908f8f.39.1755809349038;
        Thu, 21 Aug 2025 13:49:09 -0700 (PDT)
Message-ID: <3a980515-564a-4fb2-85e8-9ee9afd93375@citrix.com>
Date: Thu, 21 Aug 2025 21:49:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 15/16] x86/fsgsbase: Update fs/gs helpers to use
 wrmsrns()
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
 <20250815204117.3312742-16-andrew.cooper3@citrix.com>
 <ae2e8b69-8251-4f60-a5ae-f6bfe413aafb@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: <ae2e8b69-8251-4f60-a5ae-f6bfe413aafb@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19/08/2025 2:09 pm, Jan Beulich wrote:
> On 15.08.2025 22:41, Andrew Cooper wrote:
>> --- a/xen/arch/x86/hvm/vmx/vmx.c
>> +++ b/xen/arch/x86/hvm/vmx/vmx.c
>> @@ -2733,8 +2733,8 @@ static uint64_t cf_check vmx_get_reg(struct vcpu *v, unsigned int reg)
>>      case MSR_SHADOW_GS_BASE:
>>          if ( v != curr )
>>              return v->arch.hvm.vmx.shadow_gs;
>> -        rdmsrl(MSR_SHADOW_GS_BASE, val);
>> -        return val;
>> +        else
>> +            return rdmsr(MSR_SHADOW_GS_BASE);
>>      }
> Here and below, can we please do without the pointless "else"? Strictly
> speaking in Misra's terms that's "dead code" (things working identically
> without), and I'm quite happy that I can now use this argument to
> support my personal antipathy to this style of coding. Or else use the
> conditional operator in such cases (where applicable).

No.Â  I have always, and will always prioritise readability first and
foremost.

I do not agree with your interpretation of MISRA in this case.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 20:52:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 20:52:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089286.1446919 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upCGh-00077U-SH; Thu, 21 Aug 2025 20:52:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089286.1446919; Thu, 21 Aug 2025 20: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 1upCGh-00077N-PS; Thu, 21 Aug 2025 20:52:19 +0000
Received: by outflank-mailman (input) for mailman id 1089286;
 Thu, 21 Aug 2025 20:52:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=O+vP=3B=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1upCGf-00077H-T8
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 20:52:17 +0000
Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com
 [2a00:1450:4864:20::430])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b643054f-7ed0-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 22:52:12 +0200 (CEST)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-3b9e41669d6so1144818f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 13:52:12 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3c3c89cd4d4sm6904347f8f.42.2025.08.21.13.52.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Aug 2025 13:52: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>
X-Inumbo-ID: b643054f-7ed0-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755809532; x=1756414332; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=/SlwLCuysd86Ktk85QZiI0MeHEe6YeUt9ZZDPbTT98s=;
        b=FRqceFJr+3n3L3Zj5a7wenwyu1q3aDq41tCYBznPIhWNUuL41g0wnZFGx0aW4LHqIs
         ZaBJDuFLedtyPQIKYhJTDkVuA6A4utEYR2Q2fDwZx+L+XKhcmxsBWnJKSRXqWD3MHFBi
         TZ0eCNDRTIKSy7hhvigUcPB12VQWuf36bxu/8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755809532; x=1756414332;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/SlwLCuysd86Ktk85QZiI0MeHEe6YeUt9ZZDPbTT98s=;
        b=xUSLP1IZKL3hGekuIbhovXmMDm/VOaTfb+cpO2SkAIO8kAPEY0qgrjZgyj8sXRm999
         bFnJbuvi8gLJeZjTtDVpXR5xwHM6cpgcdh65HUYIt96FBPwgWfpSmxLgAvRzLO0jPlfx
         CWaBOCRwHSQY0ERMEjFR6sU3AUnDMmZPGXkldiEqAycQoGmeN0rESDu0958nWclXqFWM
         eG37occj7JRCQbVYqBMEEeOqX74+8B+lSW0qXTUhSohZF8VERwnfMPIrMsCkw8OhSIaN
         6IbDJ/QA+mL5t9P5R9RlA0APUcrGuq6yGlR4GfuGNVzvLNsIgmWYZoak+YnsFrzPM5LG
         W1PA==
X-Forwarded-Encrypted: i=1; AJvYcCVAM9FnVhgtEgr//m/quMUIfP06Jdzr0c0oJ6D/U6L43iYUEMq72v9L9g5L15DqT876aMCQo/+VM9A=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyvAuRw5s0vgwU3teA52NEL3oyMCsYKdiQRsTWf3xkWZHHLe+at
	vp9LCqZqkhAOTKVyU613E55d3X1r9ybdJGEpWo/NTxbYJLj6/hg4B8wkMDtJJDaShkiktKPbUbv
	tToYf
X-Gm-Gg: ASbGncsT1OTBYY/ho+xJAyc4Euw5JRtbH+PlpLBc54e4HN9n06/0qoUe/SyZn6TQmfZ
	jOOmQSRr8tO/HrzhYoO5WVY8+elPbpSjskVBww2LA3CHP19ZWUgqoCUSLTNcP6WMMdJ+WkEOfbj
	+aYRq6xhbeIW33LHzg5nBjidFXWEppymyJzmDTwgNx39e80HUvzPOkbCBB+C4/JH91hhautjowB
	VWGuG7A/emjSC7q8ysohOYDzsT+Q71Gcw3qmA2yfAbaNAYZ9YN9WxlUX9Q7ljIU1plm3VxvE+1l
	o/B+1dI1EchrRWWfIfN0zkUEZUgg06mXdlAZNUtqRMCVVsRfAxmLT9Yx+R0eKNnpEjYHvL2nz/3
	TeRj9J9Pohw1oN0S0cHcW5d86NQUOOQN1Mn3vdkkhVdpfS/kc3BQGE/Gmcmo36eZWVzS4
X-Google-Smtp-Source: AGHT+IHsHZxIvSy9dlkMzILRdbOAXfRwqhhg2VrfYFFIYT2F/fgyBQtUrYUdgpPPynCX1ou+rOiMcQ==
X-Received: by 2002:a05:6000:3110:b0:3b9:10c5:b321 with SMTP id ffacd0b85a97d-3c5dcc07eb4mr291633f8f.44.1755809532013;
        Thu, 21 Aug 2025 13:52:12 -0700 (PDT)
Message-ID: <da892c2b-272d-4aa0-8eea-9e57f414bb5e@citrix.com>
Date: Thu, 21 Aug 2025 21:52:10 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 16/16] x86/fsgsbase: Improve code generation in
 read_registers()
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
 <20250815204117.3312742-17-andrew.cooper3@citrix.com>
 <e1444bbf-89b8-4685-ada6-3092d65fb9c6@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: <e1444bbf-89b8-4685-ada6-3092d65fb9c6@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19/08/2025 2:19 pm, Jan Beulich wrote:
> On 15.08.2025 22:41, Andrew Cooper wrote:
>> It turns out that using the higher level helpers adjacent like this leads to
>> terrible code generation.  Due to -fno-strict-alising, the store into state->
>> invalidates the read_cr4() address calculation (which is really cpu_info->cr4
>> under the hood), meaning that it can't be hoisted.
>>
>> As a result we get "locate the top of stack block, get cr4, and see if
>> FSGSBASE is set" repeated 3 times, and an unreasoanble number of basic blocks.
>>
>> Hoist the calculation manually, which results in two basic blocks.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Otoh the function here isn't really performance or size critical. I'm undecided
> whether the undesirable open-coding or the bad code gen are the lesser evil.

This function no, but every other place touching FS and GS is
performance critical.Â  They're all messy to start with, and get worse
under FRED.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 21:23:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 21:23:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089309.1446929 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upCl5-000361-46; Thu, 21 Aug 2025 21:23:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089309.1446929; Thu, 21 Aug 2025 21:23: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 1upCl5-00035u-1L; Thu, 21 Aug 2025 21:23:43 +0000
Received: by outflank-mailman (input) for mailman id 1089309;
 Thu, 21 Aug 2025 21:23:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=O+vP=3B=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1upCl4-00035o-JM
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 21:23:42 +0000
Received: from mail-wr1-x42b.google.com (mail-wr1-x42b.google.com
 [2a00:1450:4864:20::42b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1b7dac8a-7ed5-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 23:23:40 +0200 (CEST)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-3b9d41c1963so882188f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 14:23:40 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b50d5dd4asm11348105e9.0.2025.08.21.14.23.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Aug 2025 14:23: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>
X-Inumbo-ID: 1b7dac8a-7ed5-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755811420; x=1756416220; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=01vrXnuz+3OKzmvzM69/VLqtpRQ7SJTpeIbl//QMCME=;
        b=ejvLO/Zu8bg7FUcRTXAx7zZEPiGYgg0c6rQAmLUqOrwX3mLvYAQvLkffLILBjaj72/
         SlL+tXXGEOEsp+w4MR/Y/WDW38VuzWT8HQLR8P0InZQdyKC9MzHySRYwJQPbZoLGTDiP
         wpUfAzxsb3APBKcExjtcxBW/3ITl1nQu23o3g=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755811420; x=1756416220;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=01vrXnuz+3OKzmvzM69/VLqtpRQ7SJTpeIbl//QMCME=;
        b=bLX4VrAyLqEnMlduS2rdTTTETUCGcAvtpteJr62OWizY44Pm0Ab286bFg+bw2zoIdM
         NKpca+xk0mlsPLZbrjKchHFgOrVHV3Y9AeAgXTSIQPT2hj2qcR+bX0XtuLMiIzSyvUv3
         zgw7hYvf6yecBR+AP90vf2R585BypVsIj/bUvYylI0Jb/oLg2FuS2Kx7oIZkXbmx/7m0
         e/jiCSlnM1eLkitCl/rmHOPSPCtWUG0mEVMkDDJ21wjB6xzduc9A4wcLsx+rwjkYMDKi
         nUE/FwSkLBhgLMhxBMeC2BruJMPGEcQ4/hSIgHnXvBnnSWrc9+I4C5uoKSQ3S1I+GkV0
         KfhA==
X-Forwarded-Encrypted: i=1; AJvYcCWEHLeeOze2X7YQGP/9PENkJouaO3Qax7yn5dMV+ZelWfkhzM0lNQxaCRQGAoYQ55uJAIUAx+3vFdc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxRATarutavPdOrLRAt+09tgi5kyyuI+GgPNqdogumyuK+jkdfr
	eQeED6v6C3c4KQFeU10nUXhswRm83HvM9XH4wqxpfNPUJgRjlEbNjuZFsw2GAzn/8o0=
X-Gm-Gg: ASbGncvwo9ccXjEmPgMwsa0pqrkXE1dkFFvHMo9oC8oiP8KsmyvJj8MmLgwa1OLXm34
	H/ASzN3TDLrNl5SWMVjjcDwY2nMsvL/Jpodni79cfPZUz4ycaZghYDJkPBrJ1QddhaSI2jDk0mU
	VK4LOz7nUeB2Q1KlTBwEE6Ux+4P393oZpot9LbZeaIABahAEAIevE0uoMY0DLPlsyoIH+InAOZV
	MKG/goMUGsTDD94O4oMiIIQf0gbvY765Yk86INQC5Md9X1O/+LknOQ7hwYg/C3xyL2rhn9OcasU
	fjB0MkP/EuHC6CXPDImAe80VrrszaG+vD0/6rBCHqXuWny4qyCHmQe1nV+36jb+GkqhdMKrOM2c
	qQvshh0Ut7dhb4YTQy0zOQZigGGE3YcbOkJsxjnvq9jW9jTF9rSRd74SfbMbzv3WDw8luz/jd59
	cjM18=
X-Google-Smtp-Source: AGHT+IFFdAfLefFX2Nqc4L6GZrpLASQW8/dBKR9MB3h0W4MQ466jdrE9Whs7ExF2pcKH95FL37OMNQ==
X-Received: by 2002:a05:6000:240c:b0:3bd:148e:22d with SMTP id ffacd0b85a97d-3c5d808ff01mr343954f8f.0.1755811419696;
        Thu, 21 Aug 2025 14:23:39 -0700 (PDT)
Message-ID: <3a0820be-a4cb-4c23-b478-7f453bed92da@citrix.com>
Date: Thu, 21 Aug 2025 22:23:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 13/22] x86: FRED enumerations
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-14-andrew.cooper3@citrix.com>
 <9b4da5b3-dd68-4052-92cc-fe322164eaa5@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: <9b4da5b3-dd68-4052-92cc-fe322164eaa5@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14/08/2025 12:20 pm, Jan Beulich wrote:
> On 08.08.2025 22:23, Andrew Cooper wrote:
>> Of note, CR4.FRED is bit 32 and cannot enabled outside of 64bit mode.
>>
>> Most supported toolchains don't understand the FRED instructions yet.  ERETU
>> and ERETS are easy to wrap (they encoded as REPZ/REPNE CLAC), while LKGS is
>> more complicated and deferred for now.
>>
>> I have intentionally named the FRED MSRs differently to the spec.  In the
>> spec, the stack pointer names alias the TSS fields of the same name, despite
>> very different semantics.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>
> with ...
>
>> --- a/xen/arch/x86/Kconfig
>> +++ b/xen/arch/x86/Kconfig
>> @@ -57,6 +57,10 @@ config HAS_CC_CET_IBT
>>  	# Retpoline check to work around https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93654
>>  	def_bool $(cc-option,-fcf-protection=branch -mmanual-endbr -mindirect-branch=thunk-extern) && $(as-instr,endbr64)
>>  
>> +config HAS_AS_FRED
>> +	# binutils >= 2.41 or LLVM >= 19
>> +	def_bool $(as-instr,eretu;lkgs %ax)
> ..., as per your reply, this preferably dropped

Having now got the PV side complete (I think), I can indeed drop this,
but I need

diff --git a/xen/arch/x86/include/asm/cpufeatures.h b/xen/arch/x86/include/asm/cpufeatures.h
index 71308d9dafc8..0a98676c1604 100644
--- a/xen/arch/x86/include/asm/cpufeatures.h
+++ b/xen/arch/x86/include/asm/cpufeatures.h
@@ -18,7 +18,7 @@ XEN_CPUFEATURE(ARCH_PERFMON,Â Â Â Â Â  X86_SYNTH( 3)) /* Intel Architectural PerfMon
Â XEN_CPUFEATURE(TSC_RELIABLE,Â Â Â Â Â  X86_SYNTH( 4)) /* TSC is known to be reliable */
Â XEN_CPUFEATURE(XTOPOLOGY,Â Â Â Â Â Â Â Â  X86_SYNTH( 5)) /* cpu topology enum extensions */
Â XEN_CPUFEATURE(CPUID_FAULTING,Â Â Â  X86_SYNTH( 6)) /* cpuid faulting */
-/* Bit 7 unused */
+XEN_CPUFEATURE(XEN_FRED,Â Â Â Â Â Â Â Â Â  X86_SYNTH( 7)) /* Xen uses FRED */
Â XEN_CPUFEATURE(APERFMPERF,Â Â Â Â Â Â Â  X86_SYNTH( 8)) /* APERFMPERF */
Â XEN_CPUFEATURE(MFENCE_RDTSC,Â Â Â Â Â  X86_SYNTH( 9)) /* MFENCE synchronizes RDTSC */
Â XEN_CPUFEATURE(XEN_SMEP,Â Â Â Â Â Â Â Â Â  X86_SYNTH(10)) /* SMEP gets used by Xen itself */


too for a fastpath in assembly.Â  I've folded it into this patch.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 21:46:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 21:46:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089324.1446938 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upD6f-0006ET-UL; Thu, 21 Aug 2025 21:46:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089324.1446938; Thu, 21 Aug 2025 21: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 1upD6f-0006EM-RG; Thu, 21 Aug 2025 21:46:01 +0000
Received: by outflank-mailman (input) for mailman id 1089324;
 Thu, 21 Aug 2025 21:46:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JTf3=3B=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1upD6e-0006EG-MV
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 21:46:00 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org
 [2604:1380:4641:c500::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 36706552-7ed8-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 23:45:55 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 7FBF35C5996;
 Thu, 21 Aug 2025 21:45:53 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 17748C4CEEB;
 Thu, 21 Aug 2025 21:45:51 +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>
X-Inumbo-ID: 36706552-7ed8-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755812753;
	bh=DCt+YiCT7MrQ67lU9VJhpbKpOpsnR8Pl7ZSoi/ZciPc=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=kvwWffXKgcfd1Ms+BFlbGfArlQxpKR0jqvOPRYoL5GqFguyGT+Bz9ysLyF/kjvn4J
	 k6SI103Pe6VC8s9NTiAzlERGk0d3PXOdVJGXN8XhPFbfT/NB2yc1XM8AD4ZtFLYrxD
	 J+URFUPLle9p4GT5gWi3+T5SMAe2wapRX8JkLFfhFg6gYhTYUz27yJvTbwliQszWYg
	 L5/gLDq3Wa0yVidJ8BKC6i3SZvFihb7xueM9dZ89/V3AFedV68Negmq6cNRVO/04gZ
	 3VAPvr3+rg2SP8hGUuV3+A0avySYkQC0foImlwVUM8bTPLLxNwkEva7Vxm/Ir3Hd7K
	 29O1qNQRqYP+A==
Date: Thu, 21 Aug 2025 14:45:51 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Mykyta Poturai <Mykyta_Poturai@epam.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Michal Orzel <michal.orzel@amd.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v2] iommu/ipmmu-vmsa: Fix build with HAS_PCI=n
In-Reply-To: <267bd33a-70d4-417f-b26f-32de863f1d2d@suse.com>
Message-ID: <alpine.DEB.2.22.394.2508211445370.2743087@ubuntu-linux-20-04-desktop>
References: <5ecb3da69ba1581971197388c6b9062b46900cff.1755775255.git.mykyta_poturai@epam.com> <267bd33a-70d4-417f-b26f-32de863f1d2d@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 21 Aug 2025, Jan Beulich wrote:
> On 21.08.2025 13:23, Mykyta Poturai wrote:
> > With PCI disabled the build fails due to undefined struct
> > pci_host_bridge.
> > 
> > Add ifdef guard to pci-host-rcar4.h to not require the stuct being
> > defined when PCI support is disabled. All call sites are already covered
> > by HAS_PCI check, so no dummy implementations are needed.
> > 
> > Also move includes under the header guard to not break MISRA rules.
> > 
> > Reported-by: Jan Beulich <jbeulich@suse.com>
> > Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> 
> Along with the Reported-by I thought a Fixes: tag would go without saying.
> Can likely be added while committing.

I added Fixes and my Reviewed-by


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 21:53:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 21:53:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089332.1446949 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upDDW-0007yt-Ks; Thu, 21 Aug 2025 21:53:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089332.1446949; Thu, 21 Aug 2025 21: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 1upDDW-0007ym-HZ; Thu, 21 Aug 2025 21:53:06 +0000
Received: by outflank-mailman (input) for mailman id 1089332;
 Thu, 21 Aug 2025 21:53:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=O+vP=3B=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1upDDU-0007yf-Rp
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 21:53:04 +0000
Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com
 [2a00:1450:4864:20::331])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 33ff9a5d-7ed9-11f0-b898-0df219b8e170;
 Thu, 21 Aug 2025 23:52:59 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-45b4d8921f2so8333775e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 14:52:59 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b50e4241dsm12239985e9.24.2025.08.21.14.52.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Aug 2025 14:52: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>
X-Inumbo-ID: 33ff9a5d-7ed9-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755813179; x=1756417979; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=cFwY+Eepr69i0ymn9QSccPsvsxkR0EDL71EjIPU9EGs=;
        b=c2G1lJmndwCbvcU9EKWg1RKv0ogrD2UkhSPSGhM3v73JgCTvFJHYQgVBTeowVq5B1l
         mb5d25wButir/0YfzSaKlJpuhZt3YZCl7Dz68TjVFji8xlXKLsV5YX6YgfHiEGKCPgR4
         7mJxWyG325InqeRQKXCG2oCB9wHb9RLKbfuIs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755813179; x=1756417979;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=cFwY+Eepr69i0ymn9QSccPsvsxkR0EDL71EjIPU9EGs=;
        b=T5RLmnNLB1L+iAI5a4YOjOi0Yq/XclqMuxLDiRFXUaq8DQsObGn18TIaI5YTx4QLSr
         ovnZbsvyjyv2p0j679NIXyxc4MjaVvTWPuvFzyPtUA1gSifBcS7Gf9oIwkN14KzT1vCw
         /4E8yuZlsZ+Pt+f06bbGcVaH1NqcsZJgJ8P3yQmID/q1cGpHYZXUNLKYa1PsMiKPPm0K
         GDIv7nN+gMCXYcl2lYpmXde3UCdHIHvsnZlbN1nWzXmaGCvUeQbVKWHPpALFhWHgyVHy
         fhdQ64Zb0IGkK2z+bmzXnwjvuy1sItTbH7DH3CQ8yWnjtXbBRHMcBrTqG1sZNrrj2JOV
         XD5g==
X-Gm-Message-State: AOJu0YwWRPEZ8juKPzOVTl9Re19bvSQvuZxti0RM6xnQVdfyzAWLR/Yu
	N0n38GoGh97X5nw0Lu3nuFK4Usx+Sxclck1e6jvKKjpDQCwHb0qV4zs167+Rhkin33wNYptYo4Y
	V7hQ+
X-Gm-Gg: ASbGncso7eSsY3jTGO8kX0p0nPw/rkqNeBlUFuK5B8ndwtNDroOA44GDGPPd+YaelsY
	e2P6K6wey69lMJYu4ohH92MxBt/apCMQ7GZpv8t6VfciKxvOz33KGWD1XKUIX+tMRL4zaE7rQSG
	OrWT0+g1t2OK7gPYJhkMgJywzMzds2HbvU8+bX/vBLzI9zBOdman7k6IeYU5NpKwLY/vm9fkGKZ
	B4NTODVvU0qOJQffrP5vs9RD+0UWlgt/K6jkOn3CBNCamknplQDZOMXQVelNK07IMbUgICqSjx9
	dWaFHWSf3syL5sqJATTM1HSx4/EX3nq+XOVbN7SjO6nYso9JwpG708OpbisQwM0UCKR5iCoGMs5
	0V2EqsuyeflkRIL/otfqD0VZ+aNRnZjK1Ml/pkysNebMrTTgrK2Nybwq0C/CC4on/GuDISisG2l
	Pzb7U=
X-Google-Smtp-Source: AGHT+IEZTHurz+DydVVRAjMfG9xVYm0rI9QMKceOXJe7SyLIpj6wFfHxtVcjdVJ3T+4wmiaqXVm3Zw==
X-Received: by 2002:a05:600c:458a:b0:459:da76:d7aa with SMTP id 5b1f17b1804b1-45b517dc897mr4230315e9.25.1755813178837;
        Thu, 21 Aug 2025 14:52:58 -0700 (PDT)
Message-ID: <56532672-d28e-4c3c-9b4b-e038c9a5e341@citrix.com>
Date: Thu, 21 Aug 2025 22:52:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 15/22] x86/traps: Introduce opt_fred
To: Jan Beulich <jbeulich@suse.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-16-andrew.cooper3@citrix.com>
 <0a6b6fce-2cc8-4933-8703-399e4a4fdad6@suse.com>
 <8adbd032-9da2-481d-8d98-30c9a605ec46@citrix.com>
 <5c608ebc-e9c2-47ea-a98f-246f7a3d4c30@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: <5c608ebc-e9c2-47ea-a98f-246f7a3d4c30@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15/08/2025 9:37 am, Jan Beulich wrote:
> On 14.08.2025 21:16, Andrew Cooper wrote:
>> On 14/08/2025 2:30 pm, Jan Beulich wrote:
>>> On 08.08.2025 22:23, Andrew Cooper wrote:
>>>> ... disabled by default.  There is a lot of work before FRED can be enabled by
>>>> default.
>>>>
>>>> One part of FRED, the LKGS (Load Kernel GS) instruction, is enumerated
>>>> separately but is mandatory as FRED disallows the SWAPGS instruction.
>>>> Therefore, both CPUID bits must be checked.
>>> See my (further) reply to patch 13 - I think FRED simply ought to depend on
>>> LKGS.
>>>
>>>> @@ -20,6 +22,9 @@ unsigned int __ro_after_init ler_msr;
>>>>  static bool __initdata opt_ler;
>>>>  boolean_param("ler", opt_ler);
>>>>  
>>>> +int8_t __ro_after_init opt_fred = 0; /* -1 when supported. */
>>> I'm a little puzzled by the comment? DYM "once default-enabled"?
>> Well, I have this temporary patch
>> https://gitlab.com/xen-project/hardware/xen-staging/-/commit/70ef6a1178a411a29b7b1745a1112e267ffb6245
>> that will turn into a real patch when we enable FRED by default.
>>
>> As much as anything else, it was just a TODO.
>>
>>
>>>  Then ...
>>>
>>>> @@ -305,6 +310,32 @@ void __init traps_init(void)
>>>>      /* Replace early pagefault with real pagefault handler. */
>>>>      _update_gate_addr_lower(&bsp_idt[X86_EXC_PF], entry_PF);
>>>>  
>>>> +    if ( !cpu_has_fred || !cpu_has_lkgs )
>>>> +    {
>>>> +        if ( opt_fred )
>>> ... this won't work anymore once the initializer is changed.
>> Hmm yes.Â  That wants to be an == 1 check.Â  Fixed.
>>
>>>> +            printk(XENLOG_WARNING "FRED not available, ignoring\n");
>>>> +        opt_fred = false;
>>> Better use 0 here?
>>>
>>>> +    }
>>>> +
>>>> +    if ( opt_fred == -1 )
>>>> +        opt_fred = !pv_shim;
>>> Imo it would be better to have the initializer be -1 right away, and comment
>>> out the "!pv_shim" here, until we mean it to be default-enabled.
>> It cannot be -1, or Xen will fail spectacularly on any FRED capable
>> hardware.Â  Setting to -1 is the point at which FRED becomes security
>> supported.
> I guess I'm not following: If it was -1, and if the code here was
>
>     if ( opt_fred < 0 )
>         opt_fred = 0 /* !pv_shim */;
>
> why would things "fail spectacularly" unless someone passed "fred" on
> the command line?

Oh, that would work, but why bother?Â  It's simply a less readable form
of mine, and if we're going to nitpick, it's commented out code.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 22:09:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 22:09:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089345.1446966 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upDTI-0001Yl-VO; Thu, 21 Aug 2025 22:09:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089345.1446966; Thu, 21 Aug 2025 22:09:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upDTI-0001Ye-SN; Thu, 21 Aug 2025 22:09:24 +0000
Received: by outflank-mailman (input) for mailman id 1089345;
 Thu, 21 Aug 2025 22:09:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=O+vP=3B=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1upDTH-0001YY-C9
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 22:09:23 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7d12c18b-7edb-11f0-b898-0df219b8e170;
 Fri, 22 Aug 2025 00:09:21 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-45a1b0d224dso7251395e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 15:09:21 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b506bdd9csm10473625e9.3.2025.08.21.15.09.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Aug 2025 15:09: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>
X-Inumbo-ID: 7d12c18b-7edb-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755814160; x=1756418960; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=F13gbUi7lwhM91iCKsCE7081tAwOWe8eZS1YXYamcE0=;
        b=DUP7C4Ipk9TRfzcGdcnqRgdKTFqDs1usuM+gv17KB8W/0QvWuweu96B/xNHvDlIKOq
         ikPRUOZOeWyUn8A6pgG2FDR7MmeOretk3AjnMlzWFeopIVeCpEe0lUr6TW/91cnmoF0I
         QCj0EXbVRfAmddrT+zpkQ0ZWLkxrnTTEotS9s=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755814160; x=1756418960;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=F13gbUi7lwhM91iCKsCE7081tAwOWe8eZS1YXYamcE0=;
        b=Hw/O31gXKYCm0oHl3An6KDqeedAIY/xXKDaNidLkd0CxS6pwwW3+WLhpEEytPid7r9
         jZFy+GT2W86M3MDM4zhUnMoVOqwbYKGzBznw0t9isf/qzJUOeRR04lt6dfpNQgLEkccX
         Vt5ln4JPG0Y1FRq4QLRRGLvY2Kg5newf50Wnh3WdeUq79dRd1I5GYbw1s+4ji1AcT573
         DrFOIG/fPVHu3HW+VhTA3xv1/aW7wnxGPfKSJpO10E6bY5KcHUjdRJQHDc54cCZjLo4b
         JZQOy0GSr19LybMgRB1OfYl+lbSwcCD8LWxNIqOlF5jLkP0grcaMtebQGiiNEJmXN3Sm
         XtEg==
X-Forwarded-Encrypted: i=1; AJvYcCUv2FP/pzvcNpSgHlT6YpXsPE/LGOQAmYdfZn8lvsEr5QF+iFHrC0wR0RbR/rh9pPZidWOHn7GBFlY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzKc87wdfb77Mq14x4/YhuTc6t4bvl8dggooDeXd4Yq2tXflptC
	8eSHPXPQjnPMsW8AXV6aVEjhAwS+bVcAw3GE0KzZl23nfUGHLGTsIySlj3ltx8fUh7g=
X-Gm-Gg: ASbGnctdXO7nWs8k8K4TcbXS7VKFe1/DVCYFTlujbyTiBiuanC8Ztp1OC4Mj2lNzccz
	cBTJPc0mYuaet6OZf6WIq46AzF7w5iTfH70Bvua9ZCT0H7VuUgMHo5NbSXwQEk/caj48RRdTM89
	m04ofM1hmVyN4PcCyk+PWhR33LTdUHuASM+ZPCrRk96kwSBxt2MfvTtWx5on/+plrBFhzi5MKON
	g6efGhg/cVgsY46UUij4AD6nCJsSjLuXs//2CI7U7O50BLggvUc5oAxHm/khgzlF79tFwHTjTHb
	DYrvHfK5WbZTu0YZbfPVORRkqlAyk3KG31+2C8R5JiIad1nMf3cgCVS18/oTqsSEm1j44l5n1cL
	oPg4YNDyTPlrC2M1aH/4Ym3rvmr5OiyGAtvxP/xUeXUKOcor9qJ4fK1mJXlde8x6Uw5SZKWzJ4F
	9cGbA=
X-Google-Smtp-Source: AGHT+IHezUj68i85eCk26DoVLXNNGANV/m4SLthUCjmaSJrfI6d+ZwL9dE5BfRf1Kxo5sZDOA7MUGw==
X-Received: by 2002:a05:600c:b8d:b0:456:496:2100 with SMTP id 5b1f17b1804b1-45b517c2e4emr5519655e9.31.1755814160484;
        Thu, 21 Aug 2025 15:09:20 -0700 (PDT)
Message-ID: <536cce8a-46f2-4a90-837b-09ed8f1a9ef2@citrix.com>
Date: Thu, 21 Aug 2025 23:09:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 19/22] x86/boot: Use RSTORSSP to establish SSP
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-20-andrew.cooper3@citrix.com>
 <5ad64534-514c-412a-b2a2-23adaf835f60@suse.com>
 <757e3b87-bb4f-410a-84b7-cf3607bf3eb3@citrix.com>
 <1576d28d-bdd9-488e-a374-29695fca4ca5@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: <1576d28d-bdd9-488e-a374-29695fca4ca5@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15/08/2025 10:03 am, Jan Beulich wrote:
> On 14.08.2025 22:09, Andrew Cooper wrote:
>> On 14/08/2025 4:11 pm, Jan Beulich wrote:
>>> On 08.08.2025 22:23, Andrew Cooper wrote:
>>>> Under FRED, SETSSBSY is unavailable, and we want to be setting up FRED prior
>>>> to setting up shadow stacks.  As we still need Supervisor Tokens in IDT mode,
>>>> we need mode-specific logic to establish SSP.
>>>>
>>>> In FRED mode, write a Restore Token, RSTORSSP it, and discard the resulting
>>>> Previous-SSP token.
>>>>
>>>> No change outside of FRED mode.
>>>>
>>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>> Why is it that in patch 17 you could use identical code, but here you can't?
>> This caught me out at first too.
>>
>> For S3, we're going from "no shadow stack" to "back to where we were on
>> an active shadow stack".Â  All we need to do is get saved_ssp back into
>> the SSP register.
>>
>> Here, we're going from "no shadow stack" to "on a good, empty, shadow
>> stack".Â  For FRED we only need to load a value into SSP, but in IDT mode
>> we must also arrange to create a busy Supervisor Token on the base of
>> the stack.
>>
>> We could in principle conditionally write a busy supervisor token, then
>> unconditionally RSTORSSP, but that's even more complicated to follow IMO.
> Why would the write need to be conditional?

Because the tokens are different.Â  One has the value &addr, and one has
&addr + 9.

The Supervisor Shadow Stack Token for IDT needs to survive for the
lifetime of Xen, while the Restore Token for FRED is temporary and
discarded by the logic added in this patch.

>  Can't we write what effectively
> is already there? Or is it more a safety measure to avoid the write when
> it's supposed to be unnecessary, to avoid papering over bugs?

I genuinely don't understand what you're trying to suggest here.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Aug 21 22:56:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 21 Aug 2025 22:56:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089363.1446977 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upECi-00007g-95; Thu, 21 Aug 2025 22:56:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089363.1446977; Thu, 21 Aug 2025 22:56: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 1upECi-00007X-5x; Thu, 21 Aug 2025 22:56:20 +0000
Received: by outflank-mailman (input) for mailman id 1089363;
 Thu, 21 Aug 2025 22:56:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=O+vP=3B=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1upECg-00007R-72
 for xen-devel@lists.xenproject.org; Thu, 21 Aug 2025 22:56:18 +0000
Received: from mail-wr1-x42a.google.com (mail-wr1-x42a.google.com
 [2a00:1450:4864:20::42a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0799b442-7ee2-11f0-b898-0df219b8e170;
 Fri, 22 Aug 2025 00:56:10 +0200 (CEST)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-3b9d41c1149so950347f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 15:56:10 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3c4f77e968esm3279948f8f.21.2025.08.21.15.56.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Aug 2025 15:56: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>
X-Inumbo-ID: 0799b442-7ee2-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1755816970; x=1756421770; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Q02/zmpwsUw8xCB2GgkIAiyaB0TLWxVPmQ27ujjnWRU=;
        b=R8msdzIxNAA8DirYplIbZoBXgbcHn6TXrLocv0rVJGuIK8DaefWbwHT1bFOHVjioG7
         q+DruLgtFenbJ28eEuZfE13FuOnw2EfBU3F2SwXPWMcecayc/nqIFY2BdtmK25QyZEvM
         z+MDFYKxhvi92TgQPyNdxid+dsPE1LvV7Wvh4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755816970; x=1756421770;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Q02/zmpwsUw8xCB2GgkIAiyaB0TLWxVPmQ27ujjnWRU=;
        b=xKuojkZkShPF8RZ6gTOnbwGuOhjs3CW162iMWGMdyMt2zNx02EATO9US8gMtXBxToc
         TxrcFzgX6nyN/Y1dVkk2YcP0Mf0FOCbpEN4UBOMZt8GyaQhIu+wWVKX+6p52aFuj0yff
         AHA/DrMHeMZG4S8Yndsj86TxV3euyeAglu4ynTxEWHWyTkFdXdNxotkepz2Pa9y0Iuxw
         tmQrogbchUzYZS0ibq9jSlDHO7hOtV2MNl3YgTBFXj4Pcx9mqmeqH9co+N05aAW0iG/h
         ulmRiwNdcpElqVWfvLED9F4fga7PHaS9XnnAw7F6jtQK8JTqgg5TsUSn1fe31McAbZFj
         0hzg==
X-Forwarded-Encrypted: i=1; AJvYcCXHYWznWH05eUc+MrWvqh7Tj5MvYPA48Rc9uLTfrfFfq0zR4zjHToiyG6QHFS3J9bGyyL+ZXPEgsHA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxqLhUOr+cdy5xZfWcHCBgniknHqMSTiRXY2itR6poUIN171apC
	oDABkQm04qPUV/JRfmehFjr2Dn/XT3oIErPKI/+TI/y5cLjovcSExZ/xZcPOnsQcXgQ=
X-Gm-Gg: ASbGncsNhK9i1/R4eq+tijWCs9Jm81mfEHYA9CjldHPLEAkrjii7HX4cmdh66KfJ+k2
	PR+JOMxDo0CGL4ywtD3z2iPvlc82Ut8yAYGhhms9uzUTcuZ0UxKT/HuDkadRnNp+Q5Y5zQuOcVz
	z6/XavHalUOupKwRHbyFGvbpyChJFeRlyrtnli2+SuEr957mXtAYxAqqQ7zMksXhsxHD5+9n/cV
	voIdJvn0zN+wikDYaV0reUhwQMDbzs6cWX59Mi1mR1LD4DhQeB3u/6ci4+C9dsEYWrjvnifrbR9
	rAKVDq9spTreYeK7M0ZHgbjF1WP1eEAOLqig/GIu1bdRbQlAeMwncEYC4t6pUB/QCxxDNbtaIlS
	mWT7XBxUzsFfs7ob+Mr0tu6U5EM1rJ537bsY11pUDB22b+vBXm8OiRW3pBVOnYyr+gEd4xrDbGL
	34UIk=
X-Google-Smtp-Source: AGHT+IGPuisHrENc4eWwCCVEqXB/BWGAGjrwxLAuVPgxhlpnmHvYj9b/D11HS0CizRoQUZoYTlW7Tw==
X-Received: by 2002:a05:6000:2c12:b0:3b7:9929:871c with SMTP id ffacd0b85a97d-3c5dc5408c9mr356630f8f.37.1755816969818;
        Thu, 21 Aug 2025 15:56:09 -0700 (PDT)
Message-ID: <8229c4f7-e1ca-4d79-9131-df5d74e464bc@citrix.com>
Date: Thu, 21 Aug 2025 23:56:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 20/22] x86/traps: Alter switch_stack_and_jump() for FRED
 mode
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-21-andrew.cooper3@citrix.com>
 <7b46de92-d7b6-462f-8469-0f334d9e70bb@suse.com>
 <17498f02-0603-489c-bbc9-2207ffef8029@citrix.com>
 <0fdea579-7100-43d8-b5ec-0c9d34476aea@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: <0fdea579-7100-43d8-b5ec-0c9d34476aea@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 15/08/2025 10:10 am, Jan Beulich wrote:
> On 14.08.2025 22:55, Andrew Cooper wrote:
>> On 14/08/2025 4:35 pm, Jan Beulich wrote:
>>> On 08.08.2025 22:23, Andrew Cooper wrote:
>>>> FRED and IDT differ by a Supervisor Token on the base of the shstk.  This
>>>> means that switch_stack_and_jump() needs to discard one extra word when FRED
>>>> is active.
>>>>
>>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>>> ---
>>>> CC: Jan Beulich <JBeulich@suse.com>
>>>> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
>>>>
>>>> RFC.  I don't like this, but it does work.
>>>>
>>>> This emits opt_fred logic outside of CONFIG_XEN_SHSTK.
>>> opt_fred and XEN_SHSTK are orthogonal, so that's fine anyway. What I guess
>>> you may mean is that you now have a shstk-related calculation outside of
>>> a respective #ifdef.
>> I really mean "outside of the path where shadow stacks are known to be
>> active", i.e. inside the middle of SHADOW_STACK_WORK
>>
>>>  Given the simplicity of the calculation, ...
>>>
>>>>  But frankly, the
>>>> construct is already too unweildly, and all options I can think of make it
>>>> moreso.
>>> ... I agree having it like this is okay.
>> Yes, but it is a read of a global even when it's not used.
>>
>> And as a tangent, we probably want __ro_after_init_read_mostly too.Â  The
>> read mostly is about cache locality, and is applicable even to the
>> __ro_after_init section.
> Not really: __read_mostly is to keep stuff rarely written apart from stuff
> more frequently written (cache locality, yes). There's not going to be any
> frequently written data next to a __ro_after_init item; it's all r/o post-
> boot. And I don't think we care much during boot.

It's not about boot, but hot variables do need grouping.Â  opt_fred is
read on fastpaths, whereas trampoline_phys is not.

>
>>>> @@ -154,7 +155,6 @@ unsigned long get_stack_dump_bottom (unsigned long sp);
>>>>      "rdsspd %[ssp];"                                            \
>>>>      "cmp $1, %[ssp];"                                           \
>>>>      "je .L_shstk_done.%=;" /* CET not active?  Skip. */         \
>>>> -    "mov $%c[skstk_base], %[val];"                              \
>>>>      "and $%c[stack_mask], %[ssp];"                              \
>>>>      "sub %[ssp], %[val];"                                       \
>>>>      "shr $3, %[val];"                                           \
>>> With the latter two insns here, ...
>>>
>>>> @@ -177,6 +177,8 @@ unsigned long get_stack_dump_bottom (unsigned long sp);
>>>>  
>>>>  #define switch_stack_and_jump(fn, instr, constr)                        \
>>>>      ({                                                                  \
>>>> +        unsigned int token_offset =                                     \
>>>> +            (PRIMARY_SHSTK_SLOT + 1) * PAGE_SIZE - (opt_fred ? 0 : 8);  \
>>>>          unsigned int tmp;                                               \
>>>>          BUILD_BUG_ON(!ssaj_has_attr_noreturn(fn));                      \
>>>>          __asm__ __volatile__ (                                          \
>>>> @@ -184,12 +186,11 @@ unsigned long get_stack_dump_bottom (unsigned long sp);
>>>>              "mov %[stk], %%rsp;"                                        \
>>>>              CHECK_FOR_LIVEPATCH_WORK                                    \
>>>>              instr "[fun]"                                               \
>>>> -            : [val] "=&r" (tmp),                                        \
>>>> +            : [val] "=r" (tmp),                                         \
>>> ... I don't think you can legitimately drop the & from here? With it
>>> retained:
>>> Reviewed-by: Jan Beulich <jbeulich@suse.com>
>> You chopped the bit which has an explicit input for "[val]", making the
>> earlyclobber incorrect.
> I was wondering whether there was a connection there, but ...
>
>> IIRC, one version of Clang complained.
> ... that's not good. Without the early-clobber the asm() isn't quite
> correct imo. If the same value appeared as another input, the compiler
> may validly tie both together, assuming the register stays intact until
> the very last insn (and hence even that last insn could still use the
> register as an input). IOW if there's a Clang issue here, I think it
> may need working around explicitly.

Given that I need an alternative anyway, this becomes much easier, and
shrinks to this single hunk:

diff --git a/xen/arch/x86/include/asm/current.h b/xen/arch/x86/include/asm/current.h
index c1eb27b1c4c2..35cc61fa88e7 100644
--- a/xen/arch/x86/include/asm/current.h
+++ b/xen/arch/x86/include/asm/current.h
@@ -154,7 +154,9 @@ unsigned long get_stack_dump_bottom (unsigned long sp);
Â Â Â Â  "rdsspd %[ssp];"Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
Â Â Â Â  "cmp $1, %[ssp];"Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
Â Â Â Â  "je .L_shstk_done.%=;" /* CET not active?Â  Skip. */Â Â Â Â Â Â Â Â  \
-Â Â Â  "mov $%c[skstk_base], %[val];"Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
+Â Â Â  ALTERNATIVE("mov $%c[skstk_base], %[val];",Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
+Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "mov $%c[skstk_base] + 8, %[val];",Â Â Â Â Â Â Â Â Â Â Â Â  \
+Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  X86_FEATURE_XEN_FRED)Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
Â Â Â Â  "and $%c[stack_mask], %[ssp];"Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
Â Â Â Â  "sub %[ssp], %[val];"Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
Â Â Â Â  "shr $3, %[val];"Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \



~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 00:09:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 00:09:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089390.1446986 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upFLo-00021D-3n; Fri, 22 Aug 2025 00:09:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089390.1446986; Fri, 22 Aug 2025 00:09:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upFLo-000216-15; Fri, 22 Aug 2025 00:09:48 +0000
Received: by outflank-mailman (input) for mailman id 1089390;
 Fri, 22 Aug 2025 00:09:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=aMUB=3C=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1upFLm-000210-Bj
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 00:09:46 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4cf9c983-7eec-11f0-a32b-13f23c93f187;
 Fri, 22 Aug 2025 02:09:44 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id E7D3B6020A;
 Fri, 22 Aug 2025 00:09:40 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1FEFFC4CEEB;
 Fri, 22 Aug 2025 00:09:39 +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>
X-Inumbo-ID: 4cf9c983-7eec-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755821380;
	bh=qkR/4vvHzWcJvGddiFZAZtqkv8jjSXlDiu/axZp1pqQ=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=LeSC4mtpp25cSU5Nn8U8LHxwEYfewmasuf2wZUfqeds87S6ae/T10FC6c9x7hV26I
	 Q61SEd6MKfKp/71G/373MppkqvtG5s8uX+zZjxwhULPdDMSEcbsoRNGv9qpizjKOsH
	 BmXb5bpHXIcjdjTzMia3mqMHUA2m2XtgeEKo1YXj8tGN+x4szn7b4AHh9jAqwUeoiw
	 mLCaBa9xn2DtnXU1X8eiFH4zHcN/WkQdIliOIGg9MyDrPROhKJjoTA1RX13ZfwAvCN
	 A8x38NqK4zp5LX7wPThD9oRQSQ6HXrBrusXe0nCDucg7xZsCbKWlMdY3oef0sn3Xc1
	 4+uvP8cKfG0og==
Date: Thu, 21 Aug 2025 17:09:38 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: =?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>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Jan Beulich <JBeulich@suse.com>, Michal Orzel <michal.orzel@amd.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] CI: Use 'watchdog' for x86 hardware
In-Reply-To: <aKcPVSFVxKJJFHrF@mail-itl>
Message-ID: <alpine.DEB.2.22.394.2508211709270.2743087@ubuntu-linux-20-04-desktop>
References: <20250821120652.3910926-1-andrew.cooper3@citrix.com> <aKcPVSFVxKJJFHrF@mail-itl>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-1136081158-1755821381=:2743087"

  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-1136081158-1755821381=:2743087
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Thu, 21 Aug 2025, Marek Marczykowski-GÃ³recki wrote:
> On Thu, Aug 21, 2025 at 01:06:52PM +0100, Andrew Cooper wrote:
> > This detects various hangs and turns them into a crash with backtrace.
> > 
> > Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> 
> Should it also apply to in-QEMU tests?
> 
> Anyway:
> 
> Reviewed-by: Marek Marczykowski-GÃ³recki <marmarek@invisiblethingslab.com>

Acked-by: Stefano Stabellini <sstabellini@kernel.org>
--8323329-1136081158-1755821381=:2743087--


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 00:10:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 00:10:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089398.1446997 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upFMc-0003Pn-DA; Fri, 22 Aug 2025 00:10:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089398.1446997; Fri, 22 Aug 2025 00: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 1upFMc-0003Pg-9x; Fri, 22 Aug 2025 00:10:38 +0000
Received: by outflank-mailman (input) for mailman id 1089398;
 Fri, 22 Aug 2025 00:10:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=aMUB=3C=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1upFMb-000210-MQ
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 00:10:37 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6d73c10e-7eec-11f0-a32b-13f23c93f187;
 Fri, 22 Aug 2025 02:10:36 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id 99623A58715;
 Fri, 22 Aug 2025 00:10:35 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id C3958C4CEEB;
 Fri, 22 Aug 2025 00:10:33 +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>
X-Inumbo-ID: 6d73c10e-7eec-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755821435;
	bh=V6JCB3oV/8KCa8AYl3yNLWg0+7UcCAJmrI6hHA4t4/w=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=gjPBhnMsPFOo/HDMyKgXCxfBWgulbyZKqbNVA5z/a939kQ7QUpmF0Dwg+p3ggvYYm
	 V5zeaOM5eBPpVfpin+XiYUG779AtJOLteoad3G+PJAJr/mV6ujYB+WPKVi2nvvdSq3
	 BetXxLz+VJi9Bp9PSTHPTQV/DYabwFybHWVmSZLo6IwNSaj2L+zideX0zTi8G57x5g
	 1pS8nwUf1rsLA9ryLCV4lC6yLAIUOfDDMTa8JeFRfQ2w6phCeBnlliMGtBsQhm+6X6
	 +gfORDjnfe55wBItpHuEBzzT5/0wKzZoddg1E40/xEOqP667DNNPtOdD1sq288MMCH
	 yjBW4Y9DGN0Gg==
Date: Thu, 21 Aug 2025 17:10:33 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: "Penny, Zheng" <penny.zheng@amd.com>, "Huang, Ray" <Ray.Huang@amd.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    "Orzel, Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH] xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE
In-Reply-To: <43f0c9a6-a4f3-44e0-959f-a021ae3b0466@suse.com>
Message-ID: <alpine.DEB.2.22.394.2508211710060.2743087@ubuntu-linux-20-04-desktop>
References: <20250815102728.1340505-1-Penny.Zheng@amd.com> <fb6f559a-b2aa-4b25-a6d3-401ecc4b4bd5@suse.com> <DM4PR12MB84519FE74D66604440827EA9E133A@DM4PR12MB8451.namprd12.prod.outlook.com> <43f0c9a6-a4f3-44e0-959f-a021ae3b0466@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="8323329-1263261650-1755821435=:2743087"

  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-1263261650-1755821435=:2743087
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8BIT

On Thu, 21 Aug 2025, Jan Beulich wrote:
> On 20.08.2025 05:12, Penny, Zheng wrote:
> > [Public]
> > 
> >> -----Original Message-----
> >> From: Jan Beulich <jbeulich@suse.com>
> >> Sent: Monday, August 18, 2025 4:31 PM
> >> To: Penny, Zheng <penny.zheng@amd.com>; Oleksii Kurochko
> >> <oleksii.kurochko@gmail.com>
> >> Cc: Huang, Ray <Ray.Huang@amd.com>; Andrew Cooper
> >> <andrew.cooper3@citrix.com>; Roger Pau MonnÃ© <roger.pau@citrix.com>;
> >> Anthony PERARD <anthony.perard@vates.tech>; Orzel, Michal
> >> <Michal.Orzel@amd.com>; Julien Grall <julien@xen.org>; Stefano Stabellini
> >> <sstabellini@kernel.org>; xen-devel@lists.xenproject.org
> >> Subject: Re: [PATCH] xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE
> >>
> >> On 15.08.2025 12:27, Penny Zheng wrote:
> >>> In order to fix CI error of a randconfig picking both
> >>> PV_SHIM_EXCLUSIVE=y and HVM=y results in hvm.c being built, but
> >>> domctl.c not being built, which leaves a few functions, like
> >>> domctl_lock_acquire/release() undefined, causing linking to fail.
> >>> To fix that, we intend to move domctl.o out of the PV_SHIM_EXCLUSIVE
> >>> Makefile /hypercall-defs section, with this adjustment, we also need
> >>> to release redundant vnuma_destroy() stub definition from
> >>> PV_SHIM_EXCLUSIVE guardian, to not break compilation Above change will
> >>> leave dead code in the shim binary temporarily and will be fixed with
> >>> the introduction of domctl-op wrapping.
> >>
> >> Well, "temporarily" is now getting interesting. While v1 of "Introduce
> >> CONFIG_DOMCTL" was submitted in time to still be eligible for taking into 4.21,
> >> that - as indicated elsewhere - is moving us further in an unwanted direction. Hence
> >> I'm not sure this can even be counted as an in-time submission. Plus it looks to be
> >> pretty extensive re-work in some areas.
> >> Hence I'm somewhat weary as to 4.21 here. IOW question, mainly to Oleksii, is
> >> whether to
> >> 1) strive to complete that work in time (and hence take the patch here),
> >> 2) take the patch here, accepting the size regression for the shim, or
> >> 3) revert what has caused the randconfig issues, and retry the effort in
> >>    4.22.
> >>
> >>> Fixes: 568f806cba4c ("xen/x86: remove "depends on
> >>> !PV_SHIM_EXCLUSIVE"")
> >>> Reported-by: Jan Beulich <jbeulich@suse.com>
> >>> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
> >>
> >> My earlier question (when the patch still was part of a series) sadly has remained
> >> unanswered: You've run this through a full round of testing this time?
> > 
> > Sorry, missed that, yes, it has been tested with both default defconfig and allyesconfig.
> 
> I'm sorry if my request was unclear, but with "full round of testing" I in particular
> meant a full CI pipeline, plus (given the issue that's being fixed) some extra
> randconfig testing.

https://gitlab.com/xen-project/people/sstabellini/xen/-/pipelines/1997431361

I ran a few tests myself changing config options on purpose trying to
break it, and so far they were all successful.
--8323329-1263261650-1755821435=:2743087--


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 00:53:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 00:53:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089417.1447007 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upG2R-00011S-Ct; Fri, 22 Aug 2025 00:53:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089417.1447007; Fri, 22 Aug 2025 00:53: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 1upG2R-00011L-9K; Fri, 22 Aug 2025 00:53:51 +0000
Received: by outflank-mailman (input) for mailman id 1089417;
 Fri, 22 Aug 2025 00:53:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RLTp=3C=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1upG2Q-00011F-A8
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 00:53:50 +0000
Received: from fout-a7-smtp.messagingengine.com
 (fout-a7-smtp.messagingengine.com [103.168.172.150])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 75cb0c8c-7ef2-11f0-a32b-13f23c93f187;
 Fri, 22 Aug 2025 02:53:48 +0200 (CEST)
Received: from phl-compute-03.internal (phl-compute-03.internal [10.202.2.43])
 by mailfout.phl.internal (Postfix) with ESMTP id 9D44FEC085D;
 Thu, 21 Aug 2025 20:53:46 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-03.internal (MEProxy); Thu, 21 Aug 2025 20:53:46 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 21 Aug 2025 20:53: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>
X-Inumbo-ID: 75cb0c8c-7ef2-11f0-a32b-13f23c93f187
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=1755824026;
	 x=1755910426; bh=xiR7dnO12e//LZ6ciVJEt7B13MyFzf4nwxTto02TC5E=; b=
	gEIKn3zWO+4a8GmjG6zWCWv1XjfI1kxDizUDC8KQxcdOiME8oJQPJcGFAzeU/TBY
	K24lLKulgnQHVlZkMUzPdbgbymzX2CrQwHCbHuAQeso0On53+8CLVUvA3Wp9ddG3
	EcDFmPy7DTSNBwlBwwtQ0KhBzg7lgZE3jhZktJt4z837rWg0dHMoo7SQhfwHH+Jx
	ESUkXcWzPnjba9uRYhOZT3EqUQ8VcO/c2kg6ARdWyl8DedLQ+2KDnCvHXaxxa/Aa
	dSxVofT+ufTB/qPMxuUHHpzyp/T+Jzw7UuEznS9hzGe/NTl62YId1K8ICMbk7dk1
	/hCYZ2S69dUUIceixIGN8g==
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=
	1755824026; x=1755910426; bh=xiR7dnO12e//LZ6ciVJEt7B13MyFzf4nwxT
	to02TC5E=; b=kSZRpcbUcn3WQNsropDDfe2tjZkKnQVtiWP8SEROEPZ0d+Kekca
	mRZBq/T1UGAxegr8Qo7gZIaszxHMoteNHrSkiyfU3HcJ+39BurcMdz5ctdDHcmNA
	t5dw8Or2AFkU04KyiKnfU+vz7bKrMdVTwU1BJkG0sv++mGkVL1q6zzn9bRm0YqlQ
	CnryZZ2UC1s8Rrk+9GhmF9OqeRqBQevvBjpbTBize5fS3FedEdwYZdVxsgoyZQnv
	/jeHfWgMenRns+pFZMJvsHXcyfe+c2InNZnDpiWNlb7PJKFKlrMwgajf6gmQAou9
	0i4A609q4OLAEtSy+mQg6iLb5IUh+RSqnWA==
X-ME-Sender: <xms:mr-naPEkEe0HCFuX_Uud5XND9xItEDEE6v3BY-YY70kxIhFZk-sDZg>
    <xme:mr-naG5Ok9GHaPQG-VUH3u5-E6E6e8y-hM5ZE_fanzzqe-B6k21JKN1R5u4JVyyfd
    pLAr8iKpcjuMA>
X-ME-Received: <xmr:mr-naNtGtx4_0lHBgTM9xWXorGw1RewbKLXgmn6w23sRWNcJtda0U_aGjcvfgmfnnDhjQ7vlP_BGe5PNTfydAFfhPkRYGzwtoso>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgdduiedvheduucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepueekteet
    gefggfekudehteegieeljeejieeihfejgeevhfetgffgteeuteetueetnecuffhomhgrih
    hnpehgihhthhhusgdrtghomhenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhep
    mhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrg
    gsrdgtohhmpdhnsggprhgtphhtthhopeegpdhmohguvgepshhmthhpohhuthdprhgtphht
    thhopehrohhgvghrrdhprghusegtihhtrhhigidrtghomhdprhgtphhtthhopegrnhgurh
    gvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhrtghpthhtohepjhgsvghulhhi
    tghhsehsuhhsvgdrtghomhdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrd
    igvghnphhrohhjvggtthdrohhrgh
X-ME-Proxy: <xmx:mr-naP4i16ZU6Y5OZ5X_5yyW0SICgZKg460Qsr5kzWB2XsUMptKZRg>
    <xmx:mr-naAVoyCd91m23-BfqDgWueqLQEf6Q0SBpPorPqq5rWqL2UsAZuA>
    <xmx:mr-naJ_bT8DJ_C-ZbrCXEkxv87J_iglyCTdBv56MWuFbjWn5YXyGbQ>
    <xmx:mr-naElDEhXYJTlGiT2kMPwD1yjUCaOZ0S4TipxsZDudcM5Fhv9CDg>
    <xmx:mr-naCIWEQEQoM-uRFSvykt7PAK7rhKmpKCU0ykKcz87WwOPfMjeD0wA>
Feedback-ID: i1568416f:Fastmail
Date: Fri, 22 Aug 2025 02:53:33 +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: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: S3 regression related to XSA-471 patches
Message-ID: <aKe_jgWBiwqPqt7i@mail-itl>
References: <aJMtPLNqQFbGg5cs@mail-itl>
 <f971f8a8-487e-4b9f-8c75-80ebfe70c3b6@suse.com>
 <aJMyjYfeTL5uPRtk@mail-itl>
 <aJTilUXpchmRq2Ng@mail-itl>
 <4fb544d7-fede-46b8-950e-f9c4af1cb04f@citrix.com>
 <B667172D-84FA-488D-98F9-0D7D34402EF7@invisiblethingslab.com>
 <aJw98srxJKZ2msct@macbook.local>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="+YUKd5AKKhh94ji1"
Content-Disposition: inline
In-Reply-To: <aJw98srxJKZ2msct@macbook.local>


--+YUKd5AKKhh94ji1
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Fri, 22 Aug 2025 02:53:33 +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: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: S3 regression related to XSA-471 patches

On Wed, Aug 13, 2025 at 09:26:09AM +0200, Roger Pau Monn=C3=A9 wrote:
> On Wed, Aug 13, 2025 at 04:53:53AM +0200, Marek Marczykowski-G=C3=B3recki=
 wrote:
> >=20
> >=20
> > On August 11, 2025 3:16:46 PM GMT+02:00, Andrew Cooper <andrew.cooper3@=
citrix.com> wrote:
> > >On 07/08/2025 6:29 pm, Marek Marczykowski-G=C3=B3recki wrote:
> > >> On Wed, Aug 06, 2025 at 12:46:36PM +0200, Marek Marczykowski-G=C3=B3=
recki wrote:
> > >>> On Wed, Aug 06, 2025 at 12:36:56PM +0200, Jan Beulich wrote:
> > >>>> On 06.08.2025 12:23, Marek Marczykowski-G=C3=B3recki wrote:
> > >>>>> We've got several reports that S3 reliability recently regressed.=
 We
> > >>>>> identified it's definitely related to XSA-471 patches, and bisect=
ion
> > >>>>> points at "x86/idle: Remove broken MWAIT implementation". I don't=
 have
> > >>>>> reliable reproduction steps, so I'm not 100% sure if it's really =
this
> > >>>>> patch, or maybe an earlier one - but it's definitely already brok=
en at
> > >>>>> this point in the series. Most reports are about Xen 4.17 (as tha=
t's
> > >>>>> what stable Qubes OS version currently use), but I think I've seen
> > >>>>> somebody reporting the issue on 4.19 too (but I don't have clear
> > >>>>> evidence, especially if it's the same issue).
> > >>>> At the time we've been discussing the explicit raising of TIMER_SO=
FTIRQ
> > >>>> in mwait_idle_with_hints() a lot. If it was now truly missing, tha=
t imo
> > >>>> shouldn't cause problems only after resume, but then it may have c=
overed
> > >>>> for some omission during resume. As a far-fetched experiment, coul=
d you
> > >>>> try putting that back (including the calculation of the "expires" =
local
> > >>>> variable)?
> > >>> Sure, I'll try.
> > >> It appears this fixes the issue, at least in ~10 attempts so far
> > >> (usually I could reproduce the issue after 2-3 attempts).
> > >>
> > >
> > >Can you show the exact code which seems to have made this stable?
> >=20
> > This patch: https://github.com/marmarek/qubes-vmm-xen/blob/7c9e9e312948=
c772d9a68090109964121c1d16fe/0001-DEBUG-S3.patch
>=20
> Hello,
>=20
> Can you test if the patch below in isolation makes any difference?

Seems to help too. At least a test similar as before did not hit the
issue anymore.

> Thanks, Roger.
> ---
> diff --git a/xen/arch/x86/acpi/power.c b/xen/arch/x86/acpi/power.c
> index 2ac162c997fe..27d672ad5dbb 100644
> --- a/xen/arch/x86/acpi/power.c
> +++ b/xen/arch/x86/acpi/power.c
> @@ -19,6 +19,7 @@
>  #include <xen/iommu.h>
>  #include <xen/param.h>
>  #include <xen/sched.h>
> +#include <xen/softirq.h>
>  #include <xen/spinlock.h>
>  #include <xen/watchdog.h>
> =20
> @@ -310,6 +311,7 @@ static int enter_state(u32 state)
>      thaw_domains();
>      system_state =3D SYS_STATE_active;
>      spin_unlock(&pm_lock);
> +    raise_softirq(TIMER_SOFTIRQ);
>      return error;
>  }
> =20
> diff --git a/xen/arch/x86/apic.c b/xen/arch/x86/apic.c
> index 0fd8bdba7067..9d66db861b74 100644
> --- a/xen/arch/x86/apic.c
> +++ b/xen/arch/x86/apic.c
> @@ -65,7 +65,6 @@ static struct {
>      unsigned int apic_lvt0;
>      unsigned int apic_lvt1;
>      unsigned int apic_lvterr;
> -    unsigned int apic_tmict;
>      unsigned int apic_tdcr;
>      unsigned int apic_thmr;
>  } apic_pm_state;
> @@ -658,7 +657,6 @@ int lapic_suspend(void)
>      apic_pm_state.apic_lvt0 =3D apic_read(APIC_LVT0);
>      apic_pm_state.apic_lvt1 =3D apic_read(APIC_LVT1);
>      apic_pm_state.apic_lvterr =3D apic_read(APIC_LVTERR);
> -    apic_pm_state.apic_tmict =3D apic_read(APIC_TMICT);
>      apic_pm_state.apic_tdcr =3D apic_read(APIC_TDCR);
>      if (maxlvt >=3D 5)
>          apic_pm_state.apic_thmr =3D apic_read(APIC_LVTTHMR);
> @@ -718,7 +716,7 @@ int lapic_resume(void)
>          apic_write(APIC_LVTPC, apic_pm_state.apic_lvtpc);
>      apic_write(APIC_LVTT, apic_pm_state.apic_lvtt);
>      apic_write(APIC_TDCR, apic_pm_state.apic_tdcr);
> -    apic_write(APIC_TMICT, apic_pm_state.apic_tmict);
> +    apic_write(APIC_TMICT, 0);
>      apic_write(APIC_ESR, 0);
>      apic_read(APIC_ESR);
>      apic_write(APIC_LVTERR, apic_pm_state.apic_lvterr);
>=20

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAminv44ACgkQ24/THMrX
1yyseQf9HRRygCMKb1QbMpEg9cCdBsgdMqPc+tedaVvTNfIJa7HrtqNZnBVFf3X5
l250+Cp37M+frqbgw2FVNxUSC31Xb5EivFjath5+d5l1BDKEXRa13kYRNxz4t3Ze
t65Ft0ENoWiA1+pgOEm6dnO5tUH8uJ8XwvUP7/sXhPxfO/ekJGTMULEri9MjJj5f
ZFvinVwXRyJ/C2vHDVjHhSVcau12Mw+UOBoJBw+aRUdkNDgmsYMDZiiLuiJGzyhV
gAWkUtXjoPgTQ4d5Ut8hba48r3Yv0VoDvu9V+3vOqNbcgMi9eVjb9SkOg/3wIssi
hRa4qNCBGQC7MxKRf1C3ILuBHoaM8Q==
=PgF0
-----END PGP SIGNATURE-----

--+YUKd5AKKhh94ji1--


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 01:47:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 01:47:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089441.1447016 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upGs2-0007cY-5p; Fri, 22 Aug 2025 01:47:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089441.1447016; Fri, 22 Aug 2025 01:47: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 1upGs2-0007cR-2t; Fri, 22 Aug 2025 01:47:10 +0000
Received: by outflank-mailman (input) for mailman id 1089441;
 Fri, 22 Aug 2025 01:47:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=l7VN=3C=intel.com=xiaoyao.li@srs-se1.protection.inumbo.net>)
 id 1upGs0-0007cL-JY
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 01:47:08 +0000
Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.14])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e4ca0861-7ef9-11f0-b898-0df219b8e170;
 Fri, 22 Aug 2025 03:47:01 +0200 (CEST)
Received: from fmviesa004.fm.intel.com ([10.60.135.144])
 by fmvoesa108.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 21 Aug 2025 18:46:59 -0700
Received: from xiaoyaol-hp-g830.ccr.corp.intel.com (HELO [10.124.238.14])
 ([10.124.238.14])
 by fmviesa004-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 21 Aug 2025 18:46:51 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e4ca0861-7ef9-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1755827221; x=1787363221;
  h=message-id:date:mime-version:subject:to:cc:references:
   from:in-reply-to:content-transfer-encoding;
  bh=dlNqS8GuyaD0jRtHmWGKX6D3RkxY5DYdizCYX+dXy5s=;
  b=VbfN1LETeItv2KlzF6kuX3Dl1CORmhA3BEWxOX4P4cWbhSdSMcHRvJf+
   Kgu4H+a5sZyapIaNzSBwcPtEQjWk0QoBGlGwIRkuzlej7xxjwhYvZNRxu
   FiysVlB4GUzCMvI4wpx8gEUuabNotwPY9fTYjH0T03gavDqiJhi6JqR4B
   QQdHevPtahCHcSqWWBp+BBW6exgoM23+SmeC1AG+y+LGv9dCt87m0bOJG
   Mt0+QGL3lp/nMlnxYXlPoLn66StCVSExglcRvrqE17h1/gH3Rx1VBNGDP
   gNIv/4KQBv/QtmB9fV2qffqWSLxlBplh2AktUcGJDKRvgoQzp7Nb9o6MO
   g==;
X-CSE-ConnectionGUID: LNuXx2NuTHeAxLebtQG40g==
X-CSE-MsgGUID: Kwqm8b8ITE6gTLn+PZstfA==
X-IronPort-AV: E=McAfee;i="6800,10657,11529"; a="58199905"
X-IronPort-AV: E=Sophos;i="6.17,309,1747724400"; 
   d="scan'208";a="58199905"
X-CSE-ConnectionGUID: AZFJ9i6pRCaPCV9OGTd+yQ==
X-CSE-MsgGUID: COxnV628RZWhh4q30kM6AA==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.17,309,1747724400"; 
   d="scan'208";a="173843816"
Message-ID: <03ac8bac-c8d1-4a3b-a07f-2bbf04e726b6@intel.com>
Date: Fri, 22 Aug 2025 09:46:48 +0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 13/15] x86/cpu/intel: Bound the non-architectural
 constant_tsc model checks
To: Sohil Mehta <sohil.mehta@intel.com>, David Woodhouse
 <dwmw2@infradead.org>, x86@kernel.org,
 Dave Hansen <dave.hansen@linux.intel.com>, Tony Luck <tony.luck@intel.com>,
 =?UTF-8?Q?J=C3=BCrgen_Gross?= <jgross@suse.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 xen-devel <xen-devel@lists.xenproject.org>
Cc: Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com>,
 Arnaldo Carvalho de Melo <acme@kernel.org>,
 Namhyung Kim <namhyung@kernel.org>, Mark Rutland <mark.rutland@arm.com>,
 Alexander Shishkin <alexander.shishkin@linux.intel.com>,
 Jiri Olsa <jolsa@kernel.org>, Ian Rogers <irogers@google.com>,
 Adrian Hunter <adrian.hunter@intel.com>,
 Kan Liang <kan.liang@linux.intel.com>, Thomas Gleixner <tglx@linutronix.de>,
 Borislav Petkov <bp@alien8.de>, "H . Peter Anvin" <hpa@zytor.com>,
 "Rafael J . Wysocki" <rafael@kernel.org>, Len Brown <lenb@kernel.org>,
 Andy Lutomirski <luto@kernel.org>, Viresh Kumar <viresh.kumar@linaro.org>,
 Jean Delvare <jdelvare@suse.com>, Guenter Roeck <linux@roeck-us.net>,
 Zhang Rui <rui.zhang@intel.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 David Laight <david.laight.linux@gmail.com>,
 Dapeng Mi <dapeng1.mi@linux.intel.com>, linux-perf-users@vger.kernel.org,
 linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org,
 linux-pm@vger.kernel.org, kvm@vger.kernel.org, Xin Li <xin@zytor.com>
References: <20250219184133.816753-1-sohil.mehta@intel.com>
 <20250219184133.816753-14-sohil.mehta@intel.com>
 <6f05a6849fb7b22db35216dcf12bf537f8a43a92.camel@infradead.org>
 <968a179f-3da7-4c69-b798-357ea8d759eb@intel.com>
 <5f5f1230-f373-469c-b0d9-abc80199886e@intel.com>
Content-Language: en-US
From: Xiaoyao Li <xiaoyao.li@intel.com>
In-Reply-To: <5f5f1230-f373-469c-b0d9-abc80199886e@intel.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 8/22/2025 3:43 AM, Sohil Mehta wrote:
> On 8/21/2025 12:34 PM, Sohil Mehta wrote:
>> On 8/21/2025 6:15 AM, David Woodhouse wrote:
>>
>>> Hm. My test host is INTEL_HASWELL_X (0x63f). For reasons which are
>>> unclear to me, QEMU doesn't set bit 8 of 0x80000007 EDX unless I
>>> explicitly append ',+invtsc' to the existing '-cpu host' on its command
>>> line. So now my guest doesn't think it has X86_FEATURE_CONSTANT_TSC.
>>>
>>
>> Haswell should have X86_FEATURE_CONSTANT_TSC, so I would have expected
>> the guest bit to be set. Until now, X86_FEATURE_CONSTANT_TSC was set
>> based on the Family-model instead of the CPUID enumeration which may
>> have hid the issue.
>>
> 
> Correction:
> s/instead/as well as
> 
>>  From my initial look at the QEMU implementation, this seems intentional.
>>
>> QEMU considers Invariant TSC as un-migratable which prevents it from
>> being exposed to migratable guests (default).
>> target/i386/cpu.c:
>> [FEAT_8000_0007_EDX]
>>           .unmigratable_flags = CPUID_APM_INVTSC,
>>
>> Can you please try '-cpu host,migratable=off'?
> 
> This is mainly to verify. If confirmed, I am not sure what the long term
> solution should be.

yeah. It's the intentional behavior of QEMU.

Invariant TSC is ummigratable unless users explicitly configures the TSC 
frequency, e.g., "-cpu host,tsc-frequency=xxx". Because the TSC 
frequency is by default the host's frequency if no "tsc-frequency" 
specified, and it will change when the VM is migrated to a host with a 
different TSC frequency.

It's the specific behavior/rule of QEMU. We just need to keep it in 
mind. If we want to expose invariant TSC to the guest with QEMU's "-cpu 
host", we can either:
1) explicitly configure the "tsc-frequency", or
2) explicitly turn off "migratable"


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 05:31:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 05:31:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089483.1447028 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upKN2-0004M2-65; Fri, 22 Aug 2025 05:31:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089483.1447028; Fri, 22 Aug 2025 05: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 1upKN2-0004Lu-0L; Fri, 22 Aug 2025 05:31:24 +0000
Received: by outflank-mailman (input) for mailman id 1089483;
 Fri, 22 Aug 2025 05:31:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=O20d=3C=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1upKN1-0004Ie-LE
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 05:31:23 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3d3fff6b-7f19-11f0-a32b-13f23c93f187;
 Fri, 22 Aug 2025 07:31:22 +0200 (CEST)
Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 038D721E3E;
 Fri, 22 Aug 2025 05:31:21 +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 B95B8139B3;
 Fri, 22 Aug 2025 05:31:20 +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 3fotK6gAqGgxaAAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 22 Aug 2025 05:31: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>
X-Inumbo-ID: 3d3fff6b-7f19-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1755840682; 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=t4yhiDG7pnnHGOYG9tLhM3AjIpjpSUErxIas3N0XuJI=;
	b=SMnpxR49bglg7Ftr94YtzbFpS+ikumwhs8a31QVXR9JNF0o0koOLWKPifkHIovXu2muxnY
	IaIaIQikXW8gDqlbMzMgJLEu6jcEvmBVzW1oF+m7YCsztmraHc4RRkyFRgbYZB7tsxPcWS
	i2SXhnfgqnz+55uUigQJuNaReR79JJE=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1755840681; 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=t4yhiDG7pnnHGOYG9tLhM3AjIpjpSUErxIas3N0XuJI=;
	b=Yest83Kc32HjMHUx6dp+KZogufXEiwF3G+PR8Hh+5SvZuTqH2O98QPzmTzGqpJ/8IemS5O
	yZKgNNY2EQMoF+70QSHoIJBMzZj0sXykTlRHBFoknDndIRz4/DYYAadRJCYgqsWp/bMv48
	s+egS5cNKgcEpPjkxKxHRge+DlSZ8jM=
From: Juergen Gross <jgross@suse.com>
To: torvalds@linux-foundation.org
Cc: linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	sstabellini@kernel.org
Subject: [GIT PULL] xen: branch for v6.17-rc3
Date: Fri, 22 Aug 2025 07:31:20 +0200
Message-ID: <20250822053120.31771-1-jgross@suse.com>
X-Mailer: git-send-email 2.43.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)[-0.999];
	MIME_GOOD(-0.10)[text/plain];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	MIME_TRACE(0.00)[0:+];
	ARC_NA(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	RCPT_COUNT_THREE(0.00)[4];
	RCVD_COUNT_TWO(0.00)[2];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	TO_DN_NONE(0.00)[];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO
X-Spam-Score: -2.80

Linus,

Please git pull the following tag:

 git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-6.17-rc3-tag

xen: branch for v6.17-rc3

It contains 2 small cleanups which are both relevant only when running as
a Xen guest.


Thanks.

Juergen

 arch/x86/include/asm/xen/hypercall.h |  5 +++--
 drivers/xen/xenbus/xenbus_xs.c       | 23 -----------------------
 include/linux/compiler.h             |  8 --------
 3 files changed, 3 insertions(+), 33 deletions(-)

Jan Beulich (1):
      compiler: remove __ADDRESSABLE_ASM{_STR,}() again

Juergen Gross (1):
      drivers/xen/xenbus: remove quirk for Xen 3.x


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 05:51:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 05:51:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089511.1447037 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upKgE-0007LK-No; Fri, 22 Aug 2025 05:51:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089511.1447037; Fri, 22 Aug 2025 05: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 1upKgE-0007LD-LK; Fri, 22 Aug 2025 05:51:14 +0000
Received: by outflank-mailman (input) for mailman id 1089511;
 Fri, 22 Aug 2025 05:51:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=RDWw=3C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1upKgE-0007L7-1W
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 05:51:14 +0000
Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com
 [2a00:1450:4864:20::634])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fd1da2d2-7f1b-11f0-b898-0df219b8e170;
 Fri, 22 Aug 2025 07:51:03 +0200 (CEST)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-afdf4c4a2beso368023566b.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 22:51: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
 a640c23a62f3a-afded309f55sm532730966b.47.2025.08.21.22.51.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Aug 2025 22:51: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>
X-Inumbo-ID: fd1da2d2-7f1b-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755841863; x=1756446663; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=X15MvuFxe7jtC3+HifH+voBQAhtHjBn3jbdHgH3CiZU=;
        b=VHzcKfnKNZ3O9ZKq6OhmsezRM3Z1c3EGIwVeg4r31TpMvA7cM853tTIZ+Sc0cudaNT
         w3kLIX/crRyDKg5Zp+NgsWa+hX9dQBZsJNIXY9V52g+jLeVm+Xfx6+182uD5Eyr7LqDw
         v8/yKWuLlepBX+9+QZLSM59GEpv5mPOL3r4PTu8goEIQZmMnds0QS4Y4qKgzthTTXhqB
         KP/uVTTUQ/Rf60CuDM5CAVaS5QldJJYQGpD2Rq5unjZn85giqIjzhMeAV1BK+OLHmDrw
         X1dQaS3D0NkIYsmydjxASHeZeb9HXJy/SjI/7ib4PeY0isxqwgJdjMfjHkjAJDj6gyDY
         3eUw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755841863; x=1756446663;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=X15MvuFxe7jtC3+HifH+voBQAhtHjBn3jbdHgH3CiZU=;
        b=No5GSt0Tsbr6D9FVBzA3dHbq7Vw9F6nmnNI7k5vMZb5qf/wRE5Cy2eH/ausScWhRxT
         gUin74GZ7NGt6vD2HEkMl9UWgf67dH29Dwp5d03nm30NneJapd2QjdITHIkEc9tcM3GD
         ip7wH3G1Xx+2omHSzBxlsEyXXBpJkDBLUgJxbfn5+7wA7QVlUt66W8Qohpixohnj5iyk
         EevPdQFWzX6Ciyi4VxWkgnmtEdf7a8/W/09vUrROU45LncK9t9k71PicdEy3/rqEJW+6
         Tm7l1pDygY+GfP4PeBo4uSsWSiCcST0ltqh6lYjqYmHf9vmYJyTxBL0FA6pz1ahL54hN
         3S4Q==
X-Forwarded-Encrypted: i=1; AJvYcCXrtGWPakh8doWj7crq8PAXmHOXWJW4CTtL8oUhQ/cyPUc78xdrXJfx5Aqs8IF1D4FWOpIErJO4R7M=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwWv1WMa2kpdL41qATE69HWCFHYcJSg0LsMm53uIWUYQ+tDZ1A6
	OCfazj8gCF0aZ/Y37ZYl8D7mf54i5JlrrezR1X7lbQr9l4FiV1Z4PAfEHtD0tK3pGg==
X-Gm-Gg: ASbGncsrA0d2DcrXcpEKbSHoag3OcxPyKwk0xDaPgEFugYAFH3ys7yEv9+AhReGiFeC
	G63RwLiQeukTLFMTKFQhzm3CN3Ia1JpP+64GBAmI6e6OXpDR/7MvWv/hMmOJX4H+CemrJoNvbUG
	KQhA5/8DtuhR5930rkY0dxDWIXIxT3suZLnmg6RQTsZCQfnahYYkbX36RuaYGkI1dDvGLJl5WMt
	M9ClB3g39auJY0WcbrX3SrVir03qs4zAQQghsh1Hy1qIHo4xvqhhrl9lEB3BiUHOdAtV/hJeDXl
	7fZpvQwzmLnhMha9lu1sMm6htKBuBh4o2yIJkauYQGhXmbP0oXp9fjWotY0C5cmkm1+IIvZtPLE
	ooFU1pfQWCLhnAANyOMDigGsbidyhu2+OxsdZg67+jr01+GyuW/xMHGup2+vDxBaZSH4/EOgSsD
	6i4TsTMjI=
X-Google-Smtp-Source: AGHT+IEPfR0/n/G1Xf0/7G9WphMob771Zrkm2xjWm84DgidBBFt5Ey/HVdS1NuOqBjvVYYx+ub+yvQ==
X-Received: by 2002:a17:907:7e8d:b0:ae1:a69c:ea76 with SMTP id a640c23a62f3a-afe0b458e51mr424454766b.23.1755841863027;
        Thu, 21 Aug 2025 22:51:03 -0700 (PDT)
Message-ID: <e93eab09-0467-4fff-875b-c6cf2cf754a6@suse.com>
Date: Fri, 22 Aug 2025 07:51:01 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: "Penny, Zheng" <penny.zheng@amd.com>, "Huang, Ray" <Ray.Huang@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 "Orzel, Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <20250815102728.1340505-1-Penny.Zheng@amd.com>
 <fb6f559a-b2aa-4b25-a6d3-401ecc4b4bd5@suse.com>
 <DM4PR12MB84519FE74D66604440827EA9E133A@DM4PR12MB8451.namprd12.prod.outlook.com>
 <43f0c9a6-a4f3-44e0-959f-a021ae3b0466@suse.com>
 <alpine.DEB.2.22.394.2508211710060.2743087@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.2508211710060.2743087@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 22.08.2025 02:10, Stefano Stabellini wrote:
> On Thu, 21 Aug 2025, Jan Beulich wrote:
>> On 20.08.2025 05:12, Penny, Zheng wrote:
>>> [Public]
>>>
>>>> -----Original Message-----
>>>> From: Jan Beulich <jbeulich@suse.com>
>>>> Sent: Monday, August 18, 2025 4:31 PM
>>>> To: Penny, Zheng <penny.zheng@amd.com>; Oleksii Kurochko
>>>> <oleksii.kurochko@gmail.com>
>>>> Cc: Huang, Ray <Ray.Huang@amd.com>; Andrew Cooper
>>>> <andrew.cooper3@citrix.com>; Roger Pau MonnÃ© <roger.pau@citrix.com>;
>>>> Anthony PERARD <anthony.perard@vates.tech>; Orzel, Michal
>>>> <Michal.Orzel@amd.com>; Julien Grall <julien@xen.org>; Stefano Stabellini
>>>> <sstabellini@kernel.org>; xen-devel@lists.xenproject.org
>>>> Subject: Re: [PATCH] xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE
>>>>
>>>> On 15.08.2025 12:27, Penny Zheng wrote:
>>>>> In order to fix CI error of a randconfig picking both
>>>>> PV_SHIM_EXCLUSIVE=y and HVM=y results in hvm.c being built, but
>>>>> domctl.c not being built, which leaves a few functions, like
>>>>> domctl_lock_acquire/release() undefined, causing linking to fail.
>>>>> To fix that, we intend to move domctl.o out of the PV_SHIM_EXCLUSIVE
>>>>> Makefile /hypercall-defs section, with this adjustment, we also need
>>>>> to release redundant vnuma_destroy() stub definition from
>>>>> PV_SHIM_EXCLUSIVE guardian, to not break compilation Above change will
>>>>> leave dead code in the shim binary temporarily and will be fixed with
>>>>> the introduction of domctl-op wrapping.
>>>>
>>>> Well, "temporarily" is now getting interesting. While v1 of "Introduce
>>>> CONFIG_DOMCTL" was submitted in time to still be eligible for taking into 4.21,
>>>> that - as indicated elsewhere - is moving us further in an unwanted direction. Hence
>>>> I'm not sure this can even be counted as an in-time submission. Plus it looks to be
>>>> pretty extensive re-work in some areas.
>>>> Hence I'm somewhat weary as to 4.21 here. IOW question, mainly to Oleksii, is
>>>> whether to
>>>> 1) strive to complete that work in time (and hence take the patch here),
>>>> 2) take the patch here, accepting the size regression for the shim, or
>>>> 3) revert what has caused the randconfig issues, and retry the effort in
>>>>    4.22.
>>>>
>>>>> Fixes: 568f806cba4c ("xen/x86: remove "depends on
>>>>> !PV_SHIM_EXCLUSIVE"")
>>>>> Reported-by: Jan Beulich <jbeulich@suse.com>
>>>>> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
>>>>
>>>> My earlier question (when the patch still was part of a series) sadly has remained
>>>> unanswered: You've run this through a full round of testing this time?
>>>
>>> Sorry, missed that, yes, it has been tested with both default defconfig and allyesconfig.
>>
>> I'm sorry if my request was unclear, but with "full round of testing" I in particular
>> meant a full CI pipeline, plus (given the issue that's being fixed) some extra
>> randconfig testing.
> 
> https://gitlab.com/xen-project/people/sstabellini/xen/-/pipelines/1997431361
> 
> I ran a few tests myself changing config options on purpose trying to
> break it, and so far they were all successful.

Should I translate this to Tested-by: then?

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 06:11:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 06:11:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089520.1447047 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upKzO-0001lT-82; Fri, 22 Aug 2025 06:11:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089520.1447047; Fri, 22 Aug 2025 06:11: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 1upKzO-0001lM-5D; Fri, 22 Aug 2025 06:11:02 +0000
Received: by outflank-mailman (input) for mailman id 1089520;
 Fri, 22 Aug 2025 06:11:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=RDWw=3C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1upKzM-0001lG-IF
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 06:11:00 +0000
Received: from mail-ej1-x62e.google.com (mail-ej1-x62e.google.com
 [2a00:1450:4864:20::62e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c5a00b3d-7f1e-11f0-a32b-13f23c93f187;
 Fri, 22 Aug 2025 08:10:59 +0200 (CEST)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-afcb732eee6so284028266b.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 23:10: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
 a640c23a62f3a-afdf63c85efsm452003366b.10.2025.08.21.23.10.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Aug 2025 23:10: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>
X-Inumbo-ID: c5a00b3d-7f1e-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755843058; x=1756447858; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=NxhrtaM48Eha+8pwXYiw+DRlJmG2Xq8UwkyvehuSeIw=;
        b=hCSGbOKd9sSXtNZ7C/miMODGrH3dHPAMeq0gY6VsfNoimOX6GLzKYJQcGPSJDPvd5O
         VEZypL+19XOGVNqpQyLtw8/xjF1yiO0DfzGOXCp+5C0v+aEWCwGdJsN4odAMvieR0t+x
         98PVQbesf0crgLLWLYfzdCDzlkUYJR5F/c62aTdfh5A6HaKjk2VeLXFQZYziTfd0/lJM
         2iNOlJGJI4z1ZBu5HIka/B3WPyMjT29rmQ0zTDwX1pAXTdLxsqmJDQySmB6zGR6X/qCi
         +Xa6gtQ8p818Qv3M1dKWjXZS7Z2GGS+XZQ/tBcciABXrr2FpSuAtsPCPRy563q1EZDAd
         ECDw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755843058; x=1756447858;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NxhrtaM48Eha+8pwXYiw+DRlJmG2Xq8UwkyvehuSeIw=;
        b=B1Jsnj3GZPESYHCS7Wa2aw68QO1wR/H4PmEFYHWQDdMUEZKSgMLIoqgRJE1o7ztdKl
         I67NFod5GshyogrW535Ygtki9QfUTvhnmuYOBn9W/oIF/SueCpelLRf83AbBPqjR+ufI
         deAkVBia0DWImQoqEqSsQYVWBWHAkmm5+U+fignttHr/Ok+8SNF+2nvrhjJB6/a8Pr9Q
         cOKk71BT1R+ZJ5YXpjNh3xRkxzxJ0NSLSzFOGuBOOwQsawrxduTexnb3g94SfpB5w8sA
         AF6VmIHELGXAyM9Xtki6TCeVvMnX3D4k2zrV0HzJCZYJXEsNAkJemYMW4ErfCkjP0ykz
         a9gA==
X-Forwarded-Encrypted: i=1; AJvYcCWWUrROejE4mp5hX2q+N7N7deFgTbGH5s7C4JoMl6PCrs/3ifALK7nrKikXvooLgj+RHcUzDA1lrCE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxmzRa5SDkq7NpbDagK/kIoDG1T95g+EmtZa7YINkVZbiBLjUnt
	88E+SPl46SW9a4TMF2EsLvYfyxnWmwtMbk80dLx5DVsdVIsFsz3/aIFkd23CjjVCHw==
X-Gm-Gg: ASbGncu9Si6KwdCbozJjmkE4u/lHXw2PiIvkWWzgKIse/GnOVGfvwCAoq8PHmt6RkkB
	0M7EQHvY1OGsVU0BINpUndDRbtk8N/0TsyYAn/NYOEA1NCpBt8POq2gaYZp+Ex2paTB+19KpLYW
	aFKLrlp4H0PEmUrWNVXwZPHiUXlF0G4cctSeUGjdwFUN96ZKKOvIM7mf1t5/mg9C38vjfLWtFJk
	TTLUHGctTTRPbB54F76TCMh2thPGNLZK/kwXIPsbEkLQd/fKdhW9oYSL3H+cfxWfUoS43zECpQ1
	rHUbJ8rrg++UB7I1j3KwZxj2AGvsfECSzji2fdf4Orj0gnqQsmSUHYltNwaZuSUxWUMmbmyK6Jy
	nkdy18DuNBdBq/4kQLNMudepWUgmsxuoCt9GAXJaKZ79838sBGeQrgIAVJPjR0YovYEOxdLI5k0
	3H/2/OmrMpLnKpRT+bZQ==
X-Google-Smtp-Source: AGHT+IECGevi2FLPt+tT2fMOicBYwOG2rftt9rfArE9IpPLdOgsOLPsyMZIeL65giqgHMTlBIiFsog==
X-Received: by 2002:a17:906:3c4c:b0:af9:7b49:c0 with SMTP id a640c23a62f3a-afe29527227mr117818966b.29.1755843058499;
        Thu, 21 Aug 2025 23:10:58 -0700 (PDT)
Message-ID: <9983e3e2-1436-43ca-9e98-57fa23d31885@suse.com>
Date: Fri, 22 Aug 2025 08:10:57 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 02/16] x86/msr: Rework rdmsr_safe() using asm goto()
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
 <20250815204117.3312742-3-andrew.cooper3@citrix.com>
 <aa57cc7c-c659-4949-aaed-4484ead54ffc@suse.com>
 <7b836f06-74ab-4588-8aeb-d0105b54be91@citrix.com>
 <01ece885-1363-4aac-99ce-205354419400@suse.com>
 <885c3544-1a4b-492b-bd3c-dd2e818d7eff@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: <885c3544-1a4b-492b-bd3c-dd2e818d7eff@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 21.08.2025 18:20, Andrew Cooper wrote:
> On 19/08/2025 5:23 pm, Jan Beulich wrote:
>> On 19.08.2025 15:52, Andrew Cooper wrote:
>>> On 18/08/2025 12:27 pm, Jan Beulich wrote:
>>>> On 15.08.2025 22:41, Andrew Cooper wrote:
>>>>> ... on capable toolchains.
>>>>>
>>>>> This avoids needing to hold rc in a register across the RDMSR, and in most
>>>>> cases removes direct testing and branching based on rc, as the fault label can
>>>>> be rearranged to directly land on the out-of-line block.
>>>>>
>>>>> There is a subtle difference in behaviour.  The old behaviour would, on fault,
>>>>> still produce 0's and write to val.
>>>>>
>>>>> The new behaviour only writes val on success, and write_msr() is the only
>>>>> place where this matters.  Move temp out of switch() scope and initialise it
>>>>> to 0.
>>>> But what's the motivation behind making this behavioral change? At least in
>>>> the cases where the return value isn't checked, it would feel safer if we
>>>> continued clearing the value. Even if in all cases where this could matter
>>>> (besides the one you cover here) one can prove correctness by looking at
>>>> surrounding code.
>>> I didn't realise I'd made a change at first, but it's a consequence of
>>> the compiler's ability to rearrange basic blocks.
>>>
>>> It can be fixed with ...
>>>
>>>>> --- a/xen/arch/x86/include/asm/msr.h
>>>>> +++ b/xen/arch/x86/include/asm/msr.h
>>>>> @@ -55,6 +55,24 @@ static inline void wrmsrns(uint32_t msr, uint64_t val)
>>>>>  /* rdmsr with exception handling */
>>>>>  static inline int rdmsr_safe(unsigned int msr, uint64_t *val)
>>>>>  {
>>>>> +#ifdef CONFIG_CC_HAS_ASM_GOTO_OUTPUT
>>>>> +    uint64_t lo, hi;
>>>>> +    asm_inline goto (
>>>>> +        "1: rdmsr\n\t"
>>>>> +        _ASM_EXTABLE(1b, %l[fault])
>>>>> +        : "=a" (lo), "=d" (hi)
>>>>> +        : "c" (msr)
>>>>> +        :
>>>>> +        : fault );
>>>>> +
>>>>> +    *val = lo | (hi << 32);
>>>>> +
>>>>> +    return 0;
>>>>> +
>>>>> + fault:
>>> Â Â Â  *val = 0;
>>>
>>> here, but I don't want to do this.Â  Because val is by pointer and
>>> generally spilled to the stack, the compiler can't optimise away the store.
>> But the compiler is dealing with such indirection in inline functions just
>> fine. I don't expect it would typically spill val to the stack. Is there
>> anything specific here that you think would make this more likely?
> 
> Yes.Â  The design of the functions they're used in.Â  Adding this line
> results in:
> 
> add/remove: 0/0 grow/shrink: 7/2 up/down: 109/-36 (73)
> FunctionÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  oldÂ Â Â Â  newÂ Â  delta
> read_msrÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  1243Â Â Â  1307Â Â Â Â  +64
> resource_accessÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  326Â Â Â Â  341Â Â Â Â  +15
> hwp_init_msrs.coldÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  297Â Â Â Â  308Â Â Â Â  +11
> probe_cpuid_faultingÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  168Â Â Â Â  175Â Â Â Â Â  +7
> svm_msr_read_interceptÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  1034Â Â Â  1039Â Â Â Â Â  +5
> hwp_write_requestÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  113Â Â Â Â  117Â Â Â Â Â  +4
> hwp_init_msrsÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  371Â Â Â Â  374Â Â Â Â Â  +3
> amd_log_freqÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  844Â Â Â Â  828Â Â Â Â  -16
> guest_rdmsrÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  2168Â Â Â  2148Â Â Â Â  -20
> 
> Taking read_msr() as a concrete example, this is because it's a store
> into a parent functions variable, not into a local variable, and cannot
> be elided.
> 
> 
>>
>>> I'd far rather get a real compiler error, than to have logic relying on
>>> the result of a faulting MSR read.
>> A compiler error? (Hmm, perhaps you think of uninitialized variable
>> diagnostics. That may or may not trigger, depending on how else the
>> caller's variable is used.)
> 
> Yes I was referring to the uninitialised variable diagnostic.Â  *_safe()
> are fairly rare, and we've got plenty of coverage in CI.

Well, okay, slightly hesitantly
Reviewed-by: Jan Beulich <jbeulich@suse.com>
preferably with the paragraph in the description that I commented on
slightly expanded to cover the "why" aspect.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 06:13:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 06:13:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089529.1447058 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upL21-0002Jc-Jq; Fri, 22 Aug 2025 06:13:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089529.1447058; Fri, 22 Aug 2025 06:13: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 1upL21-0002JV-Ff; Fri, 22 Aug 2025 06:13:45 +0000
Received: by outflank-mailman (input) for mailman id 1089529;
 Fri, 22 Aug 2025 06:13:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=RDWw=3C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1upL20-0002JP-1z
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 06:13:44 +0000
Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com
 [2a00:1450:4864:20::52f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2771c4ed-7f1f-11f0-a32b-13f23c93f187;
 Fri, 22 Aug 2025 08:13:43 +0200 (CEST)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-6197efa570eso3382865a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 23:13: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
 4fb4d7f45d1cf-61a757742c4sm6688935a12.37.2025.08.21.23.13.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Aug 2025 23:13: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>
X-Inumbo-ID: 2771c4ed-7f1f-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755843223; x=1756448023; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Fw1Gr0d5r5QKop3lweP4odpmosKxUuggeOvzpuKAU7s=;
        b=SToDiGrwL0CRAY7T8khEGNZE6ECAYYByMAzRhF6X1zOit78SI8hujVUpRotZHO+aoG
         ygfGduX8wuTaaJoqNq3uZz2oQDYjsv05Tizaq9B9DsPXpjFzM9QD5xVIJLPgzc8pesKC
         I4HMJ8kkdJJfJzB6tScYy1oNNM5hWSFS4cqVDDH9hG9r/qkqjFfqtnwUo7WkKTF7Sht4
         txodepx0yO1Xwe3KULzDqqZhKRHqrv4RtHlCwfufW9oExjFa9Ogv/SMaHfq9pbVWDQOC
         2fdyf1WU8t6k8AUJDX6bNB5lNyJMdfD5jbgZZPhktMcxHyFdWTjVR5NIAVS5bcMhrwdv
         ndCQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755843223; x=1756448023;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Fw1Gr0d5r5QKop3lweP4odpmosKxUuggeOvzpuKAU7s=;
        b=CYMG6vyRPQ/6UljFjhNgoT8RHuUOWdqqf6evyfstRDHkD5mM0BOFJUX+6AhH27vCyt
         gzMBSxvEJQKcsIHGWX3qf+x5kN8C+P4uBp5VZfGhoDZ6abdOPB0jXfpXdb4h4eMSXKCT
         YNEXueDMiAJfWfBzvbeNjzLlZTc+y2VMzR1BKWHzv+jkhnD5McyDzfyAeyrGe0qqlk1a
         Nq3i+nw15dtj0UD2tHjkZInIcuk5dDvxNQShk4iMYGDpx+L5z9rG12HFEkKrlk6nKUB6
         mvGaNMZBEe1fbEhiEyE/4+2v4NdeHEfub5ojg6z5gAO/3J4LfXXFjENBenAojMeJlGBA
         9ZXA==
X-Forwarded-Encrypted: i=1; AJvYcCVPi+3lro2weeqoQUu69auG701HbGwlEwzNaw+jbpmOkdKPRlVcKtFWGEWsSU2CDKu3J615o3IZz5o=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxzZ6RDZ6j/Ldg+ejUMbXmtJ9pC1t1bofwH1K2jOktM12hJYUG5
	yZbXx/x8URLPbBw3FKO/MQfNJ+/ourpLeJZVJwqCcVVgREp+pLmdgGinIw+ZsZgfeAMcRjxpkZB
	FbZU=
X-Gm-Gg: ASbGncvGBGFDNfA/CQD8xC4aQfCJxhqLhyaY1wZa1bcXVoyb8Vwd/qD3fh2SMAzMbvU
	aKyXxWG3W42KMXjIiz14ySJ5t4l4eeroGiREFAhFHifpIkEy6MEciSuimdnQnnnKfkPb2CHfxdB
	ez9l7hjXPret+Ya64ICi4nMMDpac8/Jgp6yGE90uZMS+R5EINr5wQ201Cqc0pP0ZyQ2gCYsjKzv
	yQCfNPu6KzEjyTWdiKtrb+/c4/ZKOEpI9YoSjlvxqq94cNVkfWJPHIyH11DLixJezH5jHwrftqK
	TxxvZ8p0o6QU8Srzh83UiQ9YTrwcBVirQ8PZ11VLEvbK3nftdpF0rOsII6JMlytaj+MQJutjISz
	lAmlSfsA2MJW7eoktTWkUIrP7HNm7IbSiMQy+BnimRZavgmX93H9x2bdf1AjqxPyiYwzrEAt2wB
	1AlZ/T27k=
X-Google-Smtp-Source: AGHT+IE2c+XmHVZotdz24cRySKR05ZSxNS7iLdwIUCXmdqhBPxKnuTVdM0e6IrRvHJydUMe8jLcz1Q==
X-Received: by 2002:a05:6402:51ce:b0:606:ebd9:c58b with SMTP id 4fb4d7f45d1cf-61c1b45c30emr1368763a12.1.1755843222652;
        Thu, 21 Aug 2025 23:13:42 -0700 (PDT)
Message-ID: <19009a27-9d7f-43c0-b33e-52969ec12a59@suse.com>
Date: Fri, 22 Aug 2025 08:13:41 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 12/16] x86/msr: Change wrmsr() to take a single
 parameter
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
 <20250815204117.3312742-13-andrew.cooper3@citrix.com>
 <3511e3dc-0c9b-412b-9cb3-e4b726088297@suse.com>
 <ee126e0c-4381-40a8-bbec-544e3286498f@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: <ee126e0c-4381-40a8-bbec-544e3286498f@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 21.08.2025 20:47, Andrew Cooper wrote:
> On 19/08/2025 1:38 pm, Jan Beulich wrote:
>> On 15.08.2025 22:41, Andrew Cooper wrote:
>>> --- a/xen/arch/x86/nmi.c
>>> +++ b/xen/arch/x86/nmi.c
>>> @@ -218,16 +218,16 @@ void disable_lapic_nmi_watchdog(void)
>>>          return;
>>>      switch (boot_cpu_data.x86_vendor) {
>>>      case X86_VENDOR_AMD:
>>> -        wrmsr(MSR_K7_EVNTSEL0, 0, 0);
>>> +        wrmsrns(MSR_K7_EVNTSEL0, 0);
>> Since you switch to non-serializing here, ...
>>
>>> @@ -308,11 +308,11 @@ static void setup_k7_watchdog(void)
>>>          | K7_EVNTSEL_USR
>>>          | K7_NMI_EVENT;
>>>  
>>> -    wrmsr(MSR_K7_EVNTSEL0, evntsel, 0);
>>> +    wrmsr(MSR_K7_EVNTSEL0, evntsel);
>>>      write_watchdog_counter("K7_PERFCTR0");
>>>      apic_write(APIC_LVTPC, APIC_DM_NMI);
>>>      evntsel |= K7_EVNTSEL_ENABLE;
>>> -    wrmsr(MSR_K7_EVNTSEL0, evntsel, 0);
>>> +    wrmsr(MSR_K7_EVNTSEL0, evntsel);
>>>  }
>> ... why not also here?
> 
> An oversight.Â  Fixed.
> 
>>
>>> --- a/xen/arch/x86/oprofile/op_model_athlon.c
>>> +++ b/xen/arch/x86/oprofile/op_model_athlon.c
>>> @@ -34,7 +34,7 @@
>>>  #define MAX_COUNTERS FAM15H_NUM_COUNTERS
>>>  
>>>  #define CTR_READ(msr_content,msrs,c) do {rdmsrl(msrs->counters[(c)].addr, (msr_content));} while (0)
>>> -#define CTR_WRITE(l,msrs,c) do {wrmsr(msrs->counters[(c)].addr, -(unsigned int)(l), -1);} while (0)
>>> +#define CTR_WRITE(l,msrs,c) do { wrmsr(msrs->counters[(c)].addr, -l); } while (0)
>> This isn't obviously correct (as in: no functional change): The macro is,
>> for example, passed reset_value[] contents, which is of type unsigned long.
>> Quite possible that the original code was wrong, though.
> 
> I'm pretty sure the change is correct.
> 
> Perf counters get programmed to -(count), as they generate an interrupt
> when they overflow.Â  The K8 is the oldest BKDG I can easily access, and
> the counters are 48 bits wide.Â  The same is true of Intel systems of of
> the same age.
> 
> Interestingly, it is the singular omission from b5103d692aa7 which
> converts everything including the Intel version of CTR_WRITE() of this
> to use wrmsrl().
> 
> While looking at the mail list archives for b5103d692aa7, I found
> https://lists.xenproject.org/archives/html/xen-devel/2010-06/msg01660.html
> which shows that it was Christoph's attempt to turn rdmsr() and wrmsr()
> into a real C functions, so I'm pretty certain that CTR_WRITE() was an
> omission in b5103d692aa7.

Okay, so mainly in need of having the description point out there is actually
a correction of something in here. Then:
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 06:20:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 06:20:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089542.1447066 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upL82-0002xa-AH; Fri, 22 Aug 2025 06:19:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089542.1447066; Fri, 22 Aug 2025 06: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 1upL82-0002xT-7h; Fri, 22 Aug 2025 06:19:58 +0000
Received: by outflank-mailman (input) for mailman id 1089542;
 Fri, 22 Aug 2025 06:19:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=RDWw=3C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1upL80-0002xM-Jb
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 06:19:56 +0000
Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com
 [2a00:1450:4864:20::632])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 04aec2f3-7f20-11f0-b898-0df219b8e170;
 Fri, 22 Aug 2025 08:19:54 +0200 (CEST)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-afcb78c77ebso260215466b.1
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 23:19: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
 a640c23a62f3a-afded2bad79sm541219266b.9.2025.08.21.23.19.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Aug 2025 23: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>
X-Inumbo-ID: 04aec2f3-7f20-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755843594; x=1756448394; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=3qp+yowN7UUJbeLF0dMoyMNCvnvIjXlaYP3G8IQbdIw=;
        b=IikRmlNomdUr+rEDgGyEvx6YGPi9hBUDctcTTv1ihcFj3QrxRzG6DwkuQhxXJyPhjN
         lAIWQKe8SWwH+bi1y8UrXx8gP6Hob9M+x/5jrAlWO+8LNa3KUGOgQoku8yOFCom5W922
         S3ANcke1ZNUjIvMF9iSxve0rYuw/RB9tBasondFIr47mqdquqF8iX64UoRdQqVDip+pS
         pC9IzUfYwOsYMJjBPVHKshGPJF4fVjycwvwBHNuAg7RcyVx4Z3YyQCyi3dOB94aipjRv
         sCohvpdstoFkwLUJdJE/lfbcw/W2fjuXqpdS+6A+pMCjwDqJeY1GI0LHXonS2OHSzlQ/
         ClMg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755843594; x=1756448394;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3qp+yowN7UUJbeLF0dMoyMNCvnvIjXlaYP3G8IQbdIw=;
        b=Rtppzk4b0C/dy3i2pCJcD5P6qRjJm21JrvJcJQKXaeylvgLRDlNRdTiIxSLV+8aq3W
         2nrhbNdhtgnpXJpFS4KX53r4CnyoK2j5j+Bs1Eu2Ixp+2+KHhbGzIqgXkllu+CRd40bD
         9QHBksVJxN4RJlufiQM+vxTutvKC+iKmrBp93FJ2JPXNkqj1ds1DuI2cNfwTQj61587p
         Ll27rubvPCwUEJtUU1Y0PmGe3e55lfCcyoov98vJMunWSLowCoZzpHAj7+VBeJ468JMU
         y+hHw/Ie71l1tnhG7Y37j5BnZ65r0J6vnh5xtXyC3liBqti7REdbiWZIZJQSi731v4Ud
         +KnQ==
X-Forwarded-Encrypted: i=1; AJvYcCUlfZ6JcTYnyHWGax/to30BNYRQCpyrSXojvnmv0ssH4J3P4+M3gyng2/2/V7cyrQz7A7JbO6P/9t0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzFydCvQovwln/4UUiYtFXQ0L/8IdIzaAYHS6rbI01H/i+fU5CM
	JK5eHAUpmZanI7D1D3hIuUdrTDKqqVjNLkGBNEKIdTHp/x2eXs+DN9dgvUZ6fG+1Jw==
X-Gm-Gg: ASbGncuBGtIOtbKoWTbRI8XghKwarymcnM+54K9NkveBceyq7/yUwvubMhLGX3Oip8M
	h+eNGYABtK3EHAkaagg17CQQM2Wbjy7RO/sKT2Qp6icsty2R7xYrq7Ei8j0uUfffo2IDDBKtjcN
	VlCmGvd98TB/TGdd555Q7MqRTCUBb2LaWYcQVbX+mMQqImwVa7d1B2KtqbmnB02cF3RjIA0g962
	AJFnb7YQzN7a5P/4rNtr/GiBfwy4rykuOb2HxVxrUZ8SX7xNNIo16V+WqugU9FrBPR80MDnQDZS
	RmtKFbmITXpDLnxi7X6bIRT5lLSuzR1qT24xg5i/Bh/Sjtebp1LAuo+/fkyQktNiRaVy2F19GOI
	wpmChfo2GIutZdSThmQR0E4/PqYOX3wJCpGMNk1QpUklPX7JIExewH2zPwDSYmaoEdC5BMUoYW7
	0sUppdsADdvfyP13gqOA==
X-Google-Smtp-Source: AGHT+IFGvJGL62mR/o4NIwwOWQoFeCpb3hC7ykXQ6qQcPB5K6dUsPJY97pXiphbZY52v3yOU6V5Lfg==
X-Received: by 2002:a17:907:968c:b0:afd:d9e4:51e7 with SMTP id a640c23a62f3a-afe296bceabmr151924066b.63.1755843593817;
        Thu, 21 Aug 2025 23:19:53 -0700 (PDT)
Message-ID: <f07741bb-ffb1-4c97-8d85-4afdcf9cc182@suse.com>
Date: Fri, 22 Aug 2025 08:19:52 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 13/16] x86/msr: Use MSR_IMM when available
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
 <20250815204117.3312742-14-andrew.cooper3@citrix.com>
 <3b367c39-4c4a-4bdd-91cd-7cb8ba18c2c9@suse.com>
 <92abee8e-108a-4d2f-8f05-fb9397b64fca@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: <92abee8e-108a-4d2f-8f05-fb9397b64fca@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 21.08.2025 20:59, Andrew Cooper wrote:
> On 19/08/2025 1:55 pm, Jan Beulich wrote:
>> On 15.08.2025 22:41, Andrew Cooper wrote:
>>> --- a/xen/arch/x86/include/asm/msr.h
>>> +++ b/xen/arch/x86/include/asm/msr.h
>>> @@ -29,10 +29,52 @@
>>>   *  wrmsrl(MSR_FOO, val);
>>>   */
>>>  
>>> -static inline uint64_t rdmsr(unsigned int msr)
>>> +/*
>>> + * RDMSR with a compile-time constant index, when available.  Falls back to
>>> + * plain RDMSR.
>>> + */
>>> +static always_inline uint64_t __rdmsr_imm(uint32_t msr)
>>> +{
>>> +    uint64_t val;
>>> +
>>> +    /*
>>> +     * For best performance, RDMSR $msr, %r64 is recommended.  For
>>> +     * compatibility, we need to fall back to plain RDMSR.
>>> +     *
>>> +     * The combined ABI is awkward, because RDMSR $imm produces an r64,
>>> +     * whereas WRMSR{,NS} produces a split edx:eax pair.
>>> +     *
>>> +     * Always use RDMSR $imm, %rax, because it has the most in common with the
>>> +     * legacy form.  When MSR_IMM isn't available, emit logic to fold %edx
>>> +     * back into %rax.
>>> +     *
>>> +     * Let the compiler do %ecx setup.  This does mean there's a useless `mov
>>> +     * $imm, %ecx` in the instruction stream in the MSR_IMM case, but it means
>>> +     * the compiler can de-duplicate the setup in the common case of reading
>>> +     * and writing the same MSR.
>>> +     */
>>> +    alternative_io(
>>> +        "rdmsr\n\t"
>>> +        "shl $32, %%rdx\n\t"
>>> +        "or %%rdx, %%rax\n\t",
>>> +
>>> +        /* RDMSR $msr, %rax */
>>> +        ".byte 0xc4,0xe7,0x7b,0xf6,0xc0; .long %c[msr]", X86_FEATURE_MSR_IMM,
>>> +
>>> +        "=a" (val),
>> Strictly speaking "=&a". Not that it matters much here; just to not
>> set a bad precedent.
> 
> Why?Â  A is not written to until after all inputs are consumed.
> 
> I don't see how it can qualify for being early-clobber.

Because the very first insn already writes to the register.

>>> @@ -55,11 +97,51 @@ static inline void wrmsr(unsigned int msr, uint64_t val)
>>>  }
>>>  #define wrmsrl(msr, val) wrmsr(msr, val)
>>>  
>>> +/*
>>> + * Non-serialising WRMSR with a compile-time constant index, when available.
>>> + * Falls back to plain WRMSRNS, or to a serialising WRMSR.
>>> + */
>>> +static always_inline void __wrmsrns_imm(uint32_t msr, uint64_t val)
>>> +{
>>> +    /*
>>> +     * For best performance, WRMSRNS %r64, $msr is recommended.  For
>>> +     * compatibility, we need to fall back to plain WRMSRNS, or to WRMSR.
>>> +     *
>>> +     * The combined ABI is awkward, because WRMSRNS $imm takes a single r64,
>>> +     * whereas WRMSR{,NS} takes a split edx:eax pair.
>>> +     *
>>> +     * Always use WRMSRNS %rax, $imm, because it has the most in common with
>>> +     * the legacy forms.  When MSR_IMM isn't available, emit setup logic for
>>> +     * %edx.
>>> +     *
>>> +     * Let the compiler do %ecx setup.  This does mean there's a useless `mov
>>> +     * $imm, %ecx` in the instruction stream in the MSR_IMM case, but it means
>>> +     * the compiler can de-duplicate the setup in the common case of reading
>>> +     * and writing the same MSR.
>>> +     */
>>> +    alternative_input_2(
>>> +        "mov %%rax, %%rdx\n\t"
>>> +        "shr $32, %%rdx\n\t"
>>> +        ".byte 0x2e; wrmsr",
>>> +
>>> +        /* CS WRMSRNS %rax, $msr */
>>> +        ".byte 0x2e,0xc4,0xe7,0x7a,0xf6,0xc0; .long %c[msr]", X86_FEATURE_MSR_IMM,
>>> +
>>> +        "mov %%rax, %%rdx\n\t"
>>> +        "shr $32, %%rdx\n\t"
>>> +        ".byte 0x0f,0x01,0xc6", X86_FEATURE_WRMSRNS,
>> Isn't this the wrong way round for hardware which has both features? The
>> last active alternative wins, iirc.
> 
> Bah - fooled once again by the nop optimisation.Â  I'll reorder.
> 
> But, we really should swap the order.Â  Especially now that you've
> inserted serialisation, it's an expensive waste of time patching the
> same site multiple times.

I'm not convinced swapping the order would be a good thing. Nor do I
see how it would (easily) help here: When both features are present,
we always patch twice. To avoid that, while patching one location we
would need to peek ahead into the next table entry to see whether
that's going to patch the same location, same (or bigger) size.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 06:25:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 06:25:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089552.1447076 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upLDW-0004dl-Sv; Fri, 22 Aug 2025 06:25:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089552.1447076; Fri, 22 Aug 2025 06:25: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 1upLDW-0004de-QR; Fri, 22 Aug 2025 06:25:38 +0000
Received: by outflank-mailman (input) for mailman id 1089552;
 Fri, 22 Aug 2025 06:25:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=RDWw=3C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1upLDW-0004dY-E9
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 06:25:38 +0000
Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com
 [2a00:1450:4864:20::52f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ce77076d-7f20-11f0-b898-0df219b8e170;
 Fri, 22 Aug 2025 08:25:32 +0200 (CEST)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-618b62dba1aso2477643a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 23:25: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
 a640c23a62f3a-afded3582basm554420666b.52.2025.08.21.23.25.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Aug 2025 23:25: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>
X-Inumbo-ID: ce77076d-7f20-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755843932; x=1756448732; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=bXfgOZNsIf6Epfc2/bUBmtlBrDI2ZbKRjFkx8Vz4YK0=;
        b=KEYrLbYTMV0y8a5ZGSZQkOxzrnt0FX5WPzbGqc4Vw/0rM5EIFZ8Bs6EKATWv0VKKIe
         lExbjiVO2IXHVFw6ZN5cowVD3HlEwMUthMwCXB2n4Q16mBsFqzr3JlVGYIGVuxsWWlun
         NwbfiE7ecqPlCydRXS7wRfavmFzEcwp67Qu6P3Gyf9dlyCome+eRl41j7SpvVAy3uhuc
         bNifxamlzMp6wt8BZzn5QuHJJRsGY4OWX0p7Om3b3IdSGc5EmD2qeU1+C8+JtgylhH5R
         5apB0i0HLSyENISk9COi/9XAMRoDw/qukc+x5+Neluw50xYaYHYyWi5cWFRAfCdk2bWB
         sq1g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755843932; x=1756448732;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bXfgOZNsIf6Epfc2/bUBmtlBrDI2ZbKRjFkx8Vz4YK0=;
        b=IMaQcI23zMZlW47GY2d7IumTNK/+pakXo8DV9+dJSpADxcLcf/eKtiWy+mj0AfPjqK
         zhdUny7oQqxeA8rRWd6GB340YaWWQ68iBOrAV6sVfB5E1V5x4dWJmHZ+dO0/rPA/cSnC
         cNqhe4r14eyQepn0NxXs+xDpY4mMLhEh1EJnNQKG/ssbwxoiTi3N3M+/dvrEcjruFTaJ
         kLdSGPV9CrkGGbYPHrGWxBxmyeVEQInZrTQKV2NxaHfNcHdrpzC4AYuO3ylvnzfk/7o/
         Qm1PR5AhwvL2HNLzCMBhJB6H66uoitu73xLLDFFiweXbEXG4ToFcnPjNSRDBGuEfNt9B
         Xuhg==
X-Forwarded-Encrypted: i=1; AJvYcCVSvgmrfBRpzNWQ1/7m39qg/HiWDIGYL4DSywbApSQkUQ51bYAXsz6EhtprllQ4tPxLCIVMZEKVUxY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy6Z919XnGGr3pZBNjSxaVf6DZSjTpc/ANsJHQKGQNEMgaxrrnz
	TsCbfUYA19LsVpHyjP4puU9ODtkwe2Nyj74A+lzrZdr8K74p7BoAVaFsPUpw+D+Xdw==
X-Gm-Gg: ASbGncvsl/pNtXCtEfrlnbXb0Tcr9XRqK2VAJc3+rem1cmh1CUeXyrPDGX7pVofIwdT
	QKINeIFPSXDZwyDVC98gWUaNkn6yfyQ6z2ky8US6b47M5AgoWnDnheruxPMHFTZr0qqJ4YV+EP7
	XynTyaDApkrv1fjQxkqTDCkdDuykaRohRG9qFsYrYpVAt/MaYehkPlVDLpMo67RjA6RqUZ8Eirj
	E3XsKv8gNmNniXJon9p/M1dvpgmZrDhTIezee1wd8iLRpK48ah0IUJwEwvoXqST2Si3XlkT+loM
	NVROhT4kBNvRjK3/r0oZLKVcQ8l4gYTm+CsxXSfn4UpTk9eSpAkCIDzwJ/+5aoWZhHNOYQMOxFA
	H4EjvsLxHwt9KEmQCOqUVetdMZi+tCvkcjUekyVpjTBX9b5/2LDSly8U31Bx3mB+7IHC7PilWqP
	Gb2xIM01o=
X-Google-Smtp-Source: AGHT+IE42nFypcpW2scHmDblU3fv+B5UAVjwtCbhYPyjQ4EHDDDnjnVdswVk7TFDhrfIa+jPWW2UCg==
X-Received: by 2002:a17:907:1c99:b0:afd:d994:7d1b with SMTP id a640c23a62f3a-afe29749978mr144111866b.64.1755843932322;
        Thu, 21 Aug 2025 23:25:32 -0700 (PDT)
Message-ID: <98e30ce6-92a9-46f5-8f36-5f4946b4691a@suse.com>
Date: Fri, 22 Aug 2025 08:25:31 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 14/16] x86/fsgsbase: Split out __{rd,wr}gskern()
 helpers
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
 <20250815204117.3312742-15-andrew.cooper3@citrix.com>
 <740ce507-de96-41e0-a5ae-999b5b6d8726@suse.com>
 <4d07f29b-006a-46ea-845a-3f21ce246f44@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: <4d07f29b-006a-46ea-845a-3f21ce246f44@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 21.08.2025 22:20, Andrew Cooper wrote:
> On 19/08/2025 2:01 pm, Jan Beulich wrote:
>> On 15.08.2025 22:41, Andrew Cooper wrote:
>>> Right now they're inline in {read,write}_gs_shadow(), but we're going to need
>>> to use these elsewhere to support FRED.
>> But why "kern"? We're not dealing with GS in kernel / user terms, but in
>> real / shadow ones.
> 
> Because it's a common name that also has the property of aligning nicely
> when used beside GS_BASE.
> 
> But fine, I'll rename it.
> 
>>  I'm also not quite happy with the double leading
>> underscores, fwiw.
> 
> Consistency with the similar logic.

Yet making for more changes later, once we mean to strictly follow the
respective Misra rule.

>>> --- a/xen/arch/x86/include/asm/fsgsbase.h
>>> +++ b/xen/arch/x86/include/asm/fsgsbase.h
>>> @@ -32,6 +32,17 @@ static inline unsigned long __rdgsbase(void)
>>>      return base;
>>>  }
>>>  
>>> +static inline unsigned long __rdgskern(void)
>>> +{
>>> +    unsigned long base;
>>> +
>>> +    asm_inline volatile ( "swapgs\n\t"
>>> +                          "rdgsbase %0\n\t"
>>> +                          "swapgs" : "=r" (base) );
>> Again strictly speaking "=&r", if already you open-code rdgsbase() now.
> 
> As before, why?Â Â  There are no inputs to be clobbered, early or otherwise.

Hence why I said "strictly speaking". Inputs or not imo doesn't matter in
such a decision; that merely makes using the early-clobber form benign.
The sole criteria by which I think one ought to go is whether a register
is altered solely by the last (often: only) insn. IOW it's again more to
prevent setting a bad precedent. Here things are easy to see, so a
hypothetical future change isn't at much of a risk of breaking things. The
more complex asm()-s get, the easier it is to overlook a missing early-
clobber when making some change.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 06:28:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 06:28:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089560.1447086 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upLGM-0005Bw-9f; Fri, 22 Aug 2025 06:28:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089560.1447086; Fri, 22 Aug 2025 06:28: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 1upLGM-0005Bp-77; Fri, 22 Aug 2025 06:28:34 +0000
Received: by outflank-mailman (input) for mailman id 1089560;
 Fri, 22 Aug 2025 06:28:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=RDWw=3C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1upLGK-0005Bj-UP
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 06:28:32 +0000
Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com
 [2a00:1450:4864:20::635])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 38d1a5be-7f21-11f0-a32b-13f23c93f187;
 Fri, 22 Aug 2025 08:28:31 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-afcb7347e09so291035866b.0
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 23:28: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
 a640c23a62f3a-afded4c90c8sm548283366b.79.2025.08.21.23.28.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Aug 2025 23:28: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>
X-Inumbo-ID: 38d1a5be-7f21-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755844111; x=1756448911; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=rx1LD1Ve98xpG5ENa3YojPpGg7PhKM87yn+Tz69EtDQ=;
        b=Gao1LhLBhy0qAkmPXclcx7beBrmwLJFPsrzYKgOtmthjJ/wQyVDIX3QP1X1La9iTS2
         d2BR+RQQCpO0pqn3kNcHhWTk4woi338idiOUL6HM1o2YGPl2cFCpw5eNjCfHWxmZnzIL
         HjtoDDvowWaj+KEX9EOANF9pseJAfYPkb6hOt536rKh4vfyYlE2Q9r432O5/L+gAlquQ
         egwuBgCu2VelR89SFE8fH7aEtTJym11/oknSHXK+nqDD+sVGkJX7dN9Ns5zrhg16SMJW
         bFhKy8U0+L4bHmjyDlGcQOej5NJu3HjB551PZsERH385pRHV9Xb7kJW9WSxDG+uHFz0J
         R6nA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755844111; x=1756448911;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rx1LD1Ve98xpG5ENa3YojPpGg7PhKM87yn+Tz69EtDQ=;
        b=Iio62LMxvYV3P6R2VaxKXnz5vDr0lK/ZFZhub8De8GMA+j0drIQs1mUjRO0KN18yyi
         Uhm8QUT4+7m2UF6lXQPnE9SCjG/X9l3CSQHA9uXIz9RCTHgTTlkm5yr+Wq0R44hPcmfp
         VnLazO6SDO7lNQ8o8Mq6pQuAZDBPc5T1ZYAzE1SLShJzLOIPTe6a3aDXvrD2FVs2EL/f
         Ky0fttvaaKfknHuEBFiK4e9fjxH4NLNaF92mXALa7OqegESriUqy5HRYVu26wm7Xawao
         fKBALi+CVR9JwSwQDEIUZ0Ud0IIXtqfwwXa7Q1bjzkDg+RKTffPJTXLrSKhV++K1rk5T
         7qfQ==
X-Forwarded-Encrypted: i=1; AJvYcCVOc3VlBxOtBX0q3Zo6H+LPFd47FfUictLeFhDlBie2AkaBjdStXfyiq82jy5N3RRklnbvSQj45jiU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyx6vSKxKGYYzOVoAFYPofvpIXZjf6FCR7RdzsiN2bK+n4luE1a
	HEhUQaMYUEeS1+VI6vCGXwEDeHsejKdPtrgDN1i0fNcsnKiRHssglqrkKJF7MYxf5w==
X-Gm-Gg: ASbGncsHFcqT5Ry299VLIU7imy4ejRTKkxG2xh0Y93qc9a94SFtaIOSnMtTdndoQiVJ
	iUFvdH5fGuTNQLjZ4C9TZVgCa2rqSJjJLSYCGQgVtbG/wIhxToGRssMzdqMkTiboHfQ8JJEQu0V
	3H8o3xJ4Nz6Gw2VE8362F34JOj6hPwxKMqaLyPtH1j/7/3XChTD84Cg02aMJ8QUUhTfFBKLNJur
	f8x6fVP+h2+pMH8ikw5NcyxW7830xnJyPJGgMSixz8E9i24PmvShc3lHUw1boaSti/0vnw8RGf1
	M8epKuxsNn84mX1PZ0rTL5MhyPSQLDV6dOxWnTOLKJfcYn1osBUSxmyLrKZj+g55fDiDvODoWCO
	WhhdmPnwx9Sd3likqQ+QOq0e3kcAzW6t5OzkKJ+z3FuYWXUScJFF+PcY0JnJVEkaa8xPTf8kRO+
	le7MEu78+3MgBYhXgGKA==
X-Google-Smtp-Source: AGHT+IHAgu4kTQlt7J3KNPI/XBAaVMJqapBJRxt9I1yVCuaC9Qtwj3nKzgZBeRe8tQL2mN5xedTN1A==
X-Received: by 2002:a17:907:868d:b0:af9:7a90:6750 with SMTP id a640c23a62f3a-afe28f8369fmr174051966b.3.1755844110781;
        Thu, 21 Aug 2025 23:28:30 -0700 (PDT)
Message-ID: <d82e4e73-0a01-4c43-be6f-aefc3655ea6b@suse.com>
Date: Fri, 22 Aug 2025 08:28:29 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 15/16] x86/fsgsbase: Update fs/gs helpers to use
 wrmsrns()
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
 <20250815204117.3312742-16-andrew.cooper3@citrix.com>
 <ae2e8b69-8251-4f60-a5ae-f6bfe413aafb@suse.com>
 <3a980515-564a-4fb2-85e8-9ee9afd93375@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: <3a980515-564a-4fb2-85e8-9ee9afd93375@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 21.08.2025 22:49, Andrew Cooper wrote:
> On 19/08/2025 2:09 pm, Jan Beulich wrote:
>> On 15.08.2025 22:41, Andrew Cooper wrote:
>>> --- a/xen/arch/x86/hvm/vmx/vmx.c
>>> +++ b/xen/arch/x86/hvm/vmx/vmx.c
>>> @@ -2733,8 +2733,8 @@ static uint64_t cf_check vmx_get_reg(struct vcpu *v, unsigned int reg)
>>>      case MSR_SHADOW_GS_BASE:
>>>          if ( v != curr )
>>>              return v->arch.hvm.vmx.shadow_gs;
>>> -        rdmsrl(MSR_SHADOW_GS_BASE, val);
>>> -        return val;
>>> +        else
>>> +            return rdmsr(MSR_SHADOW_GS_BASE);
>>>      }
>> Here and below, can we please do without the pointless "else"? Strictly
>> speaking in Misra's terms that's "dead code" (things working identically
>> without), and I'm quite happy that I can now use this argument to
>> support my personal antipathy to this style of coding. Or else use the
>> conditional operator in such cases (where applicable).
> 
> No.Â  I have always, and will always prioritise readability first and
> foremost.

But my preference is precisely because of readability. The excess "else"
gives a wrong impression to the reader, when not looking closely enough.
(And I [now] expect you might say the opposite.)

> I do not agree with your interpretation of MISRA in this case.

Something to discuss in a broader group then, I suppose.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 06:32:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 06:32:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089569.1447097 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upLKC-0006vW-Oz; Fri, 22 Aug 2025 06:32:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089569.1447097; Fri, 22 Aug 2025 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 1upLKC-0006vP-MG; Fri, 22 Aug 2025 06:32:32 +0000
Received: by outflank-mailman (input) for mailman id 1089569;
 Fri, 22 Aug 2025 06:32:31 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=RDWw=3C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1upLKB-0006vJ-Hl
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 06:32:31 +0000
Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com
 [2a00:1450:4864:20::62a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c6f69fec-7f21-11f0-a32b-13f23c93f187;
 Fri, 22 Aug 2025 08:32:29 +0200 (CEST)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-afcb7a8dd3dso257265566b.3
 for <xen-devel@lists.xenproject.org>; Thu, 21 Aug 2025 23:32: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
 a640c23a62f3a-afded35547esm540832166b.50.2025.08.21.23.32.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 21 Aug 2025 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>
X-Inumbo-ID: c6f69fec-7f21-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755844349; x=1756449149; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=sbWtywPyRVbOYriWTI/NOHCQnU/KatYA0nzQ5cWfK5k=;
        b=Mg4qUKmzQNYHMqvQdzt7Em71Xps8B7gV2PZb3IjEg+a7kh/Z2syWecmAiYxNwVuJdT
         uhZeUv9u1EFnU6wtqMK1ge1brWzdXpxNPU/zzdVNF6xtldgKQjVL6MqOOuWvbZhl+2oS
         5ygmNaLodBVuSME1usiYydzQZ58cuiVR9uqvccw4NyAQY63TI4zA0NIRvYnDXfrAXgzI
         xKGGHBTTmdcGKg+LwoFN530bkxo1BoawCZO78M5mUnpQ4xYDOibDZL0PyhNE2npSTkmW
         4SobiNmshtnCJRyprnQkkCI2y+WL9u1UE00bRpK9lmlIwu/fnZWVnsv5qsSE8+B63oBl
         aHig==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755844349; x=1756449149;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sbWtywPyRVbOYriWTI/NOHCQnU/KatYA0nzQ5cWfK5k=;
        b=U6elQyRP1KfujmnjZX11HCs2wG8PNPyo/AbIuZRdgsGVFItRMRDSEjfODj5kj/cHii
         4drU1DAx5sfRQN7IrbDnlHUS2xzO/CoLdRdmwj2sHX2oM3a8LtDLJ4QFMiu3/wWS3AoR
         WUOiMiCewlBnY+kGnc+EGECWdbNPIAVDTZ/9DQJtHikplUAZJAebH6hxF4XkhT6s/d4g
         V1F0sfwdxgniJMFW5Dkg6SRAQKO92xLQI71Yu9aBOZ5II2gWa/vWRu8O9eexS85M36Aq
         UYJU3CuxGSy8dbAtaFUjaCTMWxUbek2oeCQKNUscoZw03i9/jbsXquV2X3pxi2GIZhwZ
         ZXZg==
X-Forwarded-Encrypted: i=1; AJvYcCUSAUT0YLe+TIT0LsNODg+HOoXeZkr3S6ufCY/wdCj+zR/bmI8w26zUAAcr2f0yIHueXmWea/wgH0o=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywzj3Z3DFaeti9vCwLJyMz7unk5NYeNdZ0LM1uACBQXohEduG/Q
	AzjlC7CX0K99pTxNC1nPqUZxbChsRqL3bTduNF1kn7LpxOXba0Gwg2vp7Rt3BtKS9awH4cjiTvs
	2ZVo=
X-Gm-Gg: ASbGncvIBeNazwIjA5glFDOJrp5Z0CTlnOymVM0UXzcQG/O3/fqeamWTgp8sr/jF7yV
	eRZK2EqP9cvMDNoXB5WtPCAmNfSbuUCbRYjvDqeCTUeYcOzQZNiEPVpBRvwDzWdvZpZVUvnGg4X
	ndr/dElbB6JtSZIzP43OyuqYA4BhC9i4MHrJ0kYykjmnfRr+hALEuPyH9avxLXkdysuICNaTsHL
	Y97wUpirNb8NDjIm1xvERdGDpvC/JVmlmWmjFlFKUTpT/TRqFQjtC2+guFMKa08OTWNwpP9P30j
	ET1c5XvnzVzridzANGxTt5jl1niMTAHXyo0pOApnXjldolt19ImSDQD725Zl+b6HBNN+6pHZUNx
	12Jz5GP89c36fUb+t75mEfx4TR8aEWuafZtE8SZK/1H+m7awHyPzVQjV7Qf9l29/ffYV7HMeLuX
	SXN01WKE0=
X-Google-Smtp-Source: AGHT+IFk9mT8zSxhTt9GoAIHBV4FYmVKc542Sby8cZ1gju+k1IZ1i+qcgw0ywMr5QxfKoKeoB/D2HQ==
X-Received: by 2002:a17:907:2688:b0:afd:d9e4:51e9 with SMTP id a640c23a62f3a-afe297078bbmr137576266b.65.1755844349206;
        Thu, 21 Aug 2025 23:32:29 -0700 (PDT)
Message-ID: <2228c2cf-1cf3-48e3-bf53-b182e34b1a04@suse.com>
Date: Fri, 22 Aug 2025 08:32:27 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 16/16] x86/fsgsbase: Improve code generation in
 read_registers()
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250815204117.3312742-1-andrew.cooper3@citrix.com>
 <20250815204117.3312742-17-andrew.cooper3@citrix.com>
 <e1444bbf-89b8-4685-ada6-3092d65fb9c6@suse.com>
 <da892c2b-272d-4aa0-8eea-9e57f414bb5e@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: <da892c2b-272d-4aa0-8eea-9e57f414bb5e@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 21.08.2025 22:52, Andrew Cooper wrote:
> On 19/08/2025 2:19 pm, Jan Beulich wrote:
>> On 15.08.2025 22:41, Andrew Cooper wrote:
>>> It turns out that using the higher level helpers adjacent like this leads to
>>> terrible code generation.  Due to -fno-strict-alising, the store into state->
>>> invalidates the read_cr4() address calculation (which is really cpu_info->cr4
>>> under the hood), meaning that it can't be hoisted.
>>>
>>> As a result we get "locate the top of stack block, get cr4, and see if
>>> FSGSBASE is set" repeated 3 times, and an unreasoanble number of basic blocks.
>>>
>>> Hoist the calculation manually, which results in two basic blocks.
>>>
>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> Otoh the function here isn't really performance or size critical. I'm undecided
>> whether the undesirable open-coding or the bad code gen are the lesser evil.
> 
> This function no, but every other place touching FS and GS is
> performance critical.Â  They're all messy to start with, and get worse
> under FRED.

Is there any (further) bad effect to the function here by the time all of the
FRED bits are in?

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 06:56:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 06:56:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089583.1447106 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upLh9-0001hp-M2; Fri, 22 Aug 2025 06:56:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089583.1447106; Fri, 22 Aug 2025 06:56: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 1upLh9-0001hi-J8; Fri, 22 Aug 2025 06:56:15 +0000
Received: by outflank-mailman (input) for mailman id 1089583;
 Fri, 22 Aug 2025 06:56:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1jNg=3C=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1upLh7-0001ha-Gv
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 06:56:13 +0000
Received: from DB3PR0202CU003.outbound.protection.outlook.com
 (mail-northeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c200::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1625d22b-7f25-11f0-b898-0df219b8e170;
 Fri, 22 Aug 2025 08:56:11 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by DU0PR03MB9519.eurprd03.prod.outlook.com (2603:10a6:10:41e::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.15; Fri, 22 Aug
 2025 06:56:08 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Fri, 22 Aug 2025
 06:56: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>
X-Inumbo-ID: 1625d22b-7f25-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iVB+Y5m27PHEL2jC/E42yrmJ666Nqwj3VWz/gjXc4RB7Am8ldCHRJFHXWRk38FKSGf2FJPw65TTGEDKMC21C3ax16yuYV4mBH8K+MYLDWJi43W3v9Ap1JmK23wQPQ1MgH7//W8kfzmmaiai9yTxw/gxb6XeNt7Om20IMt439XcQ6hUjTzeyjzJW9MfUJEsVT8F2wIXVoW4FBH0Wdz8hs/ExZXYQ1oXbHRpGIKjfOMesd124Z5B55nuVfgViraMEuF/wzwSuR71RE0s0+0PQb6U28BfhrGrbYNwuUv+8hskryJwHkYQYH8V0tuUhZR9uNP9hBTu+OiB5kzUHA7DL1kg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=GJvaEhy8OZK3zjM1vTaA54SCiIfDWQoXnxotudIq/As=;
 b=ZBlZLLjDVrmu7iDdeyJdDxRUqjtyd4h0xxdfAcEj36rLmetWOeVB3SsI3oRufK3MAvApCRqk650FP38grjB2e9Rs6robRB6LYDzko/ZIoYzI2gPs4aACc8UUTrCFHQnbb7RHeL/0UZJwp2bfrfgFF/s8dSqFKpTaeJrjMqlnQMRPIbwtvXH4vohs7/BY9nVDOSMr3MoOs7qUVp8a6qlcc+xy+mOhmkzr/fawAQZRUjnaRzE4CskzLEqrhpuMDpaOpgZTT0R+ho2vV1CLcQ2+YvrLznwToIUe1lqNpuRgYOcPoVeQM2/wMoLnX3sSdEAGWw4/Au3OlELf0vyJtqLduw==
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=GJvaEhy8OZK3zjM1vTaA54SCiIfDWQoXnxotudIq/As=;
 b=TqwgJNaRxw4+lCm/PBCakIOiUqbdNHJI5305FuJdwXnGN0tKA+/r+dL0NBhKwqV5FjCTKdmSqOOCeiwR9SWewcM13TSlU7V9wN/bSmxtcmUpNRoazp1dFOrwZ9pdYqOWVgx5hZZAETSCJFQgP2xh3/9+VhIVDIb5teSMEDtGTFXO8ok7xQtFCeFug/BNZU70zNtjVV95OCNz3GMsDOoXJ33YjFmuvi8ifQ/XrXNMe+WcfQ0yIsKtz/haVx7EifOt7H+OGNnyIVVynGFsPF6KGZda0x4c4eZWAptKnj6xX4lXLF87JIM6Hh1XP7uo+Vyrq9OXi5oO6vLKN91xkNBy8g==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v2 07/10] xen/arm: gicv3: modify ICH_LR_PHYSICAL_MASK to
 allow eSPI processing
Thread-Topic: [PATCH v2 07/10] xen/arm: gicv3: modify ICH_LR_PHYSICAL_MASK to
 allow eSPI processing
Thread-Index: AQHcB5d8lU0HcDjyxEOVNNx+lAhf97RuVHuA
Date: Fri, 22 Aug 2025 06:56:08 +0000
Message-ID: <6290a4b0-104a-4119-8d56-7b6b3e9daf89@epam.com>
References:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
 <c712d9187bb0a19ded1a8b28d2f9ba93815708a9.1754568795.git.leonid_komarianskyi@epam.com>
 <87349kej2q.fsf@epam.com>
In-Reply-To: <87349kej2q.fsf@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: GV2PR03MB8678:EE_|DU0PR03MB9519:EE_
x-ms-office365-filtering-correlation-id: fdedb841-d81b-40df-7f4d-08dde148f8af
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?dm1ibjByZ25GR0ZKU2RRcnpxVG1hS1IvQVdEU1FKUFBNeVEwbjlzaysvNm9C?=
 =?utf-8?B?OFBOejhieEFzQlp0MEZvRmM0NEhhcE5pdHJXQnRWODIzbzkrQUNxUlNyTlNk?=
 =?utf-8?B?cGR2bnM2aXUvUkhRZUxURWc5WTUvMmpVd2tiQnl5b3dIMWJtcnEvUWJiRHN2?=
 =?utf-8?B?ekRqMmZ5L2pJdk43dGdITkFUOGwrS3FzTTVJOTVkeUpremVWUUFUNkhEaVpT?=
 =?utf-8?B?Wk9WNGVaZ1ZYNytMVGFRZXphY0QxeWVUNjRPUjc0a3hnT3pDTHk2RzJHNTRX?=
 =?utf-8?B?dk5ISUhLbHNzUzk2OVBiL2lsU2RzdVpnYVdEWnVxMWpWdmJSKzBUeWcrd1RC?=
 =?utf-8?B?NUdnQmtnYkZjSG40aUgvL3NOaUxMdzRUcERyNTM1TGdvT2FxaFFCNlZFSzk2?=
 =?utf-8?B?cmJhVStzMTlUNWdOSkY3VE9aekFqMUNVd1JOYmVseHdXTytaL1JpdzNUWHls?=
 =?utf-8?B?Tk56RW9hZjNoNjB1ZnFXT04wa1l0YkJNTWZpQmNHRGlCZHBETDJNdno2LzI1?=
 =?utf-8?B?L1R1bENwTVh0THhGeUVDaURxVGpXYkpjYXRqOFUrQnQyK1VCSXhiY1lYSTFw?=
 =?utf-8?B?dm10bC93SndLN0htUmROUi83bG45RHRzWktTam85aUFkN01MWjdTaGJWZlV1?=
 =?utf-8?B?djAxcjYrR0thcEZWcnVrL2FVRW1yNFpPSGRpTlBvSVVKYmREa0FEbllNc2Na?=
 =?utf-8?B?OFdwWlRzRUl2Mmc0QTJuZGpJS0dGYmN5eFVQK0lkZFNvOEF4Lzd5Um8wd240?=
 =?utf-8?B?K3lXUTRzK1N6VVBUNVh4MVpnV1ppanVBNllVTG5zYm9na0NVamxmNTk4ZHJo?=
 =?utf-8?B?WTBYaHkyelB0ZjJneTJqMGp0WDV2TGg5eGxzWFN0MXRNNFpsbGFpRk5wU2J5?=
 =?utf-8?B?WmRvTWFFMktQemJMK2gzZWV5c1BVMWJEQWVuYWJFaHlWV05SeXNmWitpNXhB?=
 =?utf-8?B?QWVZUEVkeXUzNGtGRGxyY2RjLytNbWJTQVd6UXNDQWJsVDYvTHRvMDZGK0hI?=
 =?utf-8?B?a1JOZUtBUk1kWXhIZ0VHMjZzeElMOTdQREZHdVZMbTU1c1YxZ3BmaERzbEFB?=
 =?utf-8?B?T1lsL2drR3plSE55S2JtRHJaNjUwaUU2WTc5WTYzaks5QXcrVCtrTWkxVVhm?=
 =?utf-8?B?dkRUNWJ1bmdxWlpHRWt4Y1RtVHErZGRidnIrQjdacG1OMEtTNkZFdk1DaThV?=
 =?utf-8?B?YU5UREtkZW1FNjNhN0pHbTRVczFodXY5UUJJK0NUMjlzbi91Y3MzeE1KTTVB?=
 =?utf-8?B?VmZqamhwYmpyYVpFZ3A2NjJkK1dweUM0bTcwVmpIS0JCUW1CeldBbW5WRXhn?=
 =?utf-8?B?ZUJwTEp1blBnTXQ5RzFKbndCQ040RUhVcVBWUHljSE1rMnpNRkc1WTBoTXla?=
 =?utf-8?B?WVh2V1ZON09rV1BBM1A5T2hxVWloSllINy84S25OajJYNStSdHZDeFBkMEZp?=
 =?utf-8?B?Mnp4TVdJeXdZUktiNTBwNjFWS3FlWVJkK2MrM2VnR1NleFVEVG1RSkFiekdO?=
 =?utf-8?B?Z3VLUU80Y0haeithOHd2a3BQMnVKOVhCNVc1SGk0WEhzcFRCZTZiWllraTVw?=
 =?utf-8?B?UkRwNSs2c1hEWmxtYU5NWFZ2anVEVkJXR3NMOWJnNnA5ZGdLbkVnMWZYckgr?=
 =?utf-8?B?Uy8vL1ZMdVduTzJqdlplTm5wYjdQZExJMGF5Y3c1QU9nMUUwaG90L3JMcUVw?=
 =?utf-8?B?RnIyYlZMSXNVMUNVSnJpRmo2dVFnVFFYUlVwNTE5NWgwQ2ZrWTBsWDdrQzNT?=
 =?utf-8?B?TjFBSGJmVVYzTjZoSkVTMHpxT0R0QVZ6VEk3MmZKVGs3RE1vN1VXS3FCNGx2?=
 =?utf-8?B?T295SkVMbEFIRVk1MnhjZ0RLRCtsd2Zma05zVEhoTDJLRy9jeXRxT3dmdWIz?=
 =?utf-8?B?RCtRQkZFUnIwYk9hRytQYnFWZkVmYmQ0SlBldGh5cGlvZ1JEUkJ4eDZBU2pQ?=
 =?utf-8?B?QStXcGlIcFhhbnllMHhkdHhGeVFpMlhqTEtMWjMraWo2azdEdG5aUGc4R0g5?=
 =?utf-8?B?U25xbTh5djNnPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?UjdVZjl2L1RvanlEN0I0SnJZQWJCbTJaKzNTZXFSd2FmaHlqaG1YUkZ3bm5S?=
 =?utf-8?B?cW9sUHBMSzYwUlNCcXRvWmZ1MTd0aFNzamkwNG9iRkxNbjBGdW5leWphbDZP?=
 =?utf-8?B?ZyszOWVyQkxrekMvMndZQnBJN0JObXVDOGVPWjdQd0xVY3FoRmhTbCtLNWE3?=
 =?utf-8?B?UDliaHF4Ti9BWHVsQldUbmNKaXVvOFdZK21KTUZTSFlLdTJqemhxU1FUcUti?=
 =?utf-8?B?cHFsVDZsM2pyeERzUEtnSWI5akRNdGM3dlRLOWY1QTFvdXh5RHdqc3dFdFNh?=
 =?utf-8?B?MVpiK1pJQlUwR1lFNU5pWUhWa2o4MExzNWpCU05vc1BlNWVCYzArOEljWEM4?=
 =?utf-8?B?ekUxMmNxRTVQeE5KWnVnKzRNY21WU1JvZG5QOWVEaXg2S3hPSG1Rd1Y3WmpD?=
 =?utf-8?B?UlR5dWw4TEp1MFJ6OXptdGtwVWplYnhGMTNqZWpqTnI5ME1NNUEydVhWeEhD?=
 =?utf-8?B?WGo3dk9DV2J1azgwWDhKM04rWUFFSlRxblZ1YWJFaVdqNUpqenVadFJFK1d0?=
 =?utf-8?B?NkxHdk9FU1ZhYmkwdzNBTUFURTNvdm1WSjkrejU4OXRua3hOckpuV0V5Tnpj?=
 =?utf-8?B?T3UwK3V5V20wcVJpd21KcUN2ZmYzK3JiY1dTMGRYVWhxWHJuenEraHp4Ymxq?=
 =?utf-8?B?M1ZZQ0U1YjdzUVlMREZEeTd2T0ZnVEVQL2I0NDN5WVVmM2gxZ0k5UkhkOVZB?=
 =?utf-8?B?enluRmJvN3ZULzVQeTNOTCtielJGRTVBZ3NoVUlyOTFkMU9GcmVBUjgxZU82?=
 =?utf-8?B?dzJ2YVd0Y3RRNE5JNk5ZOUpqMzYvZm9vR3V6WGpTdHJ1b0lwTWQrbDkzMnps?=
 =?utf-8?B?cFVaMFJXM05Ockg0YlY3aVpPaXNQbGlKTzBZOU9ENkNaRTJjNE0yTkZIL3NF?=
 =?utf-8?B?YTVSTURKd092eTk0ZllmckhkeW56S0FRQ1ZZbXFvMUkwQ3d5ckkwbjNrUm9Q?=
 =?utf-8?B?NVR0WHliZGx3czJVM056Qm1DSE9PMHVhYkJrelhvZWpxTDBEcDFsZjlpakln?=
 =?utf-8?B?L1FvWk1iMDYxL1gvRE5rMThXd0dmekxXNDF6QjZzMkhSUEI2UXAxVXdIdURE?=
 =?utf-8?B?aG4weDZiUlhhOHFnZzk1N3AwclZmdUZLWUlXbGkvRVpTbUpKdGo1SzAzQ2d5?=
 =?utf-8?B?MTlpYS9PZllFTWV0cDUrUk40TmdRR01ZWXRvUUR1L1dpTWh2R0xnNGVWY0F2?=
 =?utf-8?B?M0tWckFXMm1wYjBOK2MraHI3aTV0L3NBTUdISnBZRTVPVU5JWmFONCtRWW1F?=
 =?utf-8?B?WDcyTm5oWDJxN3V0MDFOL0lRcnhDVGJsWnJTRnYwdUhPQisvZWVJcHJqc0ox?=
 =?utf-8?B?S1RiQ3VhbHMwQ3dnV1JGZmNoUWRpTkZ0bGxodURvTzl5WHprSTZaTlhDWGVs?=
 =?utf-8?B?NU5iUzNXNGw5bkQ1Sk5sRHpMbSs2ZWVOU1Uyd3ZORGFIWHIzOHpUZk8xc3k4?=
 =?utf-8?B?KzhFT0g1QlZFOE1NU1RrZ1RuU1Zpc0NvM0lJWUc5QkR0ZHhUS0hlSUt0MUVR?=
 =?utf-8?B?M1dGZHJwM2UxbHQwM3ZJNHBWczJSTXVRNjVNMFNyVXRoemIyNVNPUjV0YTVT?=
 =?utf-8?B?U3Z2ZWZZZG1zcjVpOVZ4VjI0R25Ua3ppcTR5eHhiMmI0UkZRZ3E3NU0xdURQ?=
 =?utf-8?B?ZjFtVS9LNUt2RWFEbTJySXVwSEs5YlpPSG9JRjJhTXZjTnlHN3hCQVlFTlhy?=
 =?utf-8?B?SWx6Ykk4aWZXNkpvbXNSSytoM09pY1BwR1I4WE0zSCtRS3VpWWZwc2NwdGlq?=
 =?utf-8?B?elBpblBLeU9DYzFrc1pXekZmWkl0dC8yNWdOMmdJcGZEaXFVNC9vdmdOcGJS?=
 =?utf-8?B?VHl3eWQ2bTB1R0VxNllSVEl3S0ZjL1loMXYwc1BjV0V4eDd6T012S1hPTnYr?=
 =?utf-8?B?YXkwckZqZTFuMzkwWnJxQVlteWdidnVKcHlnbWlPRW4wMlZBZVBCaVE3T1hr?=
 =?utf-8?B?RklQdllURUZhNnlDNW9wVmFSTlFZM3ZRUkVBcExFSkJLRkRzTXU2Y3FUYWhD?=
 =?utf-8?B?V3ZBNkJaTDhkR2RzSmZ4OFhLVngxRXU2SzBYRUhxWUFtcWlzZ1pSUkhWcWNz?=
 =?utf-8?B?Z01mWTVVVkppRjhBVk42Z2JBZ1ZoZUlVd2lXVGhXZldIZ29zcHp3eGR4MUUv?=
 =?utf-8?B?UmhLUDViOHhXS0NOZTNmR1RXdFh6S0kxcWhIYy9jSEsrMndKTzRLNGxqU1kr?=
 =?utf-8?B?NUE9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <5FB56F983357AD47B31437F17C631D27@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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fdedb841-d81b-40df-7f4d-08dde148f8af
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Aug 2025 06:56:08.2223
 (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: lKFNg11aB3InIH4htv77tlka3PvCdHJ7IymN6lCBsygSGFrnxP35FS3uvtzsqDxaWUn4zF5Wsa8IF6Mnjn00lPKOplpn8NcSrkDw35c2CwU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB9519

SGkgVm9sb2R5bXlyLA0KDQpPbiAyMS4wOC4yNSAxOToyNywgVm9sb2R5bXlyIEJhYmNodWsgd3Jv
dGU6DQo+IEhpIExlb25pZCwNCj4gDQo+IA0KPiBMZW9uaWQgS29tYXJpYW5za3lpIDxMZW9uaWRf
S29tYXJpYW5za3lpQGVwYW0uY29tPiB3cml0ZXM6DQo+IA0KPj4gVG8gcHJvcGVybHkgZGVhY3Rp
dmF0ZSBndWVzdCBpbnRlcnJ1cHRzIGFuZCBhbGxvdyB0aGVtIHRvIGJlIHJldHJpZ2dlcmVkDQo+
PiBhZnRlciB0aGUgaW5pdGlhbCB0cmlnZ2VyLCB0aGUgTFIgbmVlZHMgdG8gYmUgdXBkYXRlZC4g
VGhlIGN1cnJlbnQNCj4+IGltcGxlbWVudGF0aW9uIGlnbm9yZXMgaW50ZXJydXB0cyBvdXRzaWRl
IHRoZSByYW5nZSBzcGVjaWZpZWQgYnkgdGhlIG1hc2sNCj4+IDB4M0ZGLCB3aGljaCBvbmx5IGNv
dmVycyBJUlEgbnVtYmVycyB1cCB0byAxMDIzLiBUbyBlbmFibGUgcHJvY2Vzc2luZyBvZg0KPj4g
ZVNQSSBpbnRlcnJ1cHRzLCB0aGlzIHBhdGNoIHVwZGF0ZXMgdGhlIG1hc2sgdG8gMHgxM0ZGLg0K
PiANCj4gSSBhbSBub3Qgc3VyZSBob3cgdGhpcyBzdXBwb3NlZCB0byB3b3JrLiBBY2NvcmRpbmcg
dG8gdGhlIGFyY2gNCj4gc3BlY2lmaWNhdGlvbiwgcElOVElEIGZpZWxkIGluIElDSF9MUjxuPl9F
TDIgaXMgb25seSAxMiBiaXRzIHdpZGUuDQo+IA0KPiANCg0KVGhhbmsgeW91IGZvciB5b3VyIHJl
dmlldy4NCkFjY29yZGluZyB0byB0aGUgc3BlY2lmaWNhdGlvbiwgdGhlIHBJTlRJRCBmaWVsZCBp
biBJQ0hfTFI8bj5fRUwyIGlzIDEzIA0KYml0cyB3aWRlIChbNDQ6MzJdIGJpdHMpOg0KDQogPiBB
IGhhcmR3YXJlIHBoeXNpY2FsIGlkZW50aWZpZXIgaXMgb25seSByZXF1aXJlZCBpbiBMaXN0IFJl
Z2lzdGVycyBmb3INCiA+IGludGVycnVwdHMgdGhhdCByZXF1aXJlIGRlYWN0aXZhdGlvbi4gVGhp
cyBtZWFucyBvbmx5IDEzIGJpdHMgb2YNCiA+IFBoeXNpY2FsIElOVElEIGFyZSByZXF1aXJlZCwg
cmVnYXJkbGVzcyBvZiB0aGUgbnVtYmVyIHNwZWNpZmllZCBieQ0KID4gSUNDX0NUTFJfRUwxLklE
Yml0cy4NCg0KMHgxM0ZGIGlzIGEgMTMtYml0IG51bWJlciB0aGF0IGZpdHMgaW50byB0aGUgY29y
cmVzcG9uZGluZyByZWdpc3RlciANCmZpZWxkIGFuZCBjb3ZlcnMgdGhlIG1heGltdW0gZVNQSSBJ
TlRJRCB2YWx1ZSAtIDUxMTkuDQoNCkJlc3QgcmVnYXJkcywNCkxlb25pZA0K


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 07:09:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 07:09:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089594.1447117 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upLtQ-0003aq-LF; Fri, 22 Aug 2025 07:08:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089594.1447117; Fri, 22 Aug 2025 07:08: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 1upLtQ-0003aj-I1; Fri, 22 Aug 2025 07:08:56 +0000
Received: by outflank-mailman (input) for mailman id 1089594;
 Fri, 22 Aug 2025 07:08:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1jNg=3C=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1upLtP-0003ad-8p
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 07:08:55 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c201::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dc289575-7f26-11f0-b898-0df219b8e170;
 Fri, 22 Aug 2025 09:08:53 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by DU0PR03MB9104.eurprd03.prod.outlook.com (2603:10a6:10:467::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.17; Fri, 22 Aug
 2025 07:08:50 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Fri, 22 Aug 2025
 07:08: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>
X-Inumbo-ID: dc289575-7f26-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Y4JpGX0+ox4NfQoy6srFMm+cr9a2t3mAB4OnJl9hlqHceC6H5Q9i2RQUWjH0zEcHvddw6JsKVpU4ZHil61A2xmYu5xMfTbdPA3fGCM7B7yJxyVtuu2TjCSDuPLKwuwY/vh6tzJ/s/JCHsdvFqEyVIiJ5najUuRzpj2GbsZN+lZDGjPWl/ZYX6JPVqeT2uM8TF9Bu9yUtZ0HpDCKqImxXkIkzVZxxnIlX1yY+VHo3jsjGtchXabWr8al+mkOASQ+/IyTQHrfyB+M5bIwkthspiA+KdYqo6mCJTiOf2hL+eXB6Xla4X3/eoq3FEbroofHXQMnFl3CgbdO5/Y2DFjPTKw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=72fKAUjmvNlRtc/KOPe3i3cFF2lgU3oNZ/4aH5s44QE=;
 b=i7+/UiFNiv2zcaVKomJgTMrNX4Xp9ti6qxj09XrRQzvvkV/NhHjJW60Jhra57swwvN/kRgMMQ/FNH6xv1spJGw6oN8N4ynl2vyehEFmjQdYsJIDv4XBwxQRFlQ5jBcdJSUlrY94RSicC1L4zk6oOnwFeDYnKTKWjgz6xHDj2YNEqYGwG/k8zWdjycQ/EaXatLR/FDvJVPmLZbGah+WeFN+wvND/2nWYzFZ7rKpR6X4PgPLCSdlIFcEw8Mq0e9TQlN1LCuROEJg4aMuFauF2Hs1Qj7Xep9EdxVHOoWO4f7rtZUy0dYSOzdiCBfgBp79fkRxtMIAX/a9X3w6nVZmEWTQ==
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=72fKAUjmvNlRtc/KOPe3i3cFF2lgU3oNZ/4aH5s44QE=;
 b=klXHMtezBeoudNyrc4pD/OdhkuQgoQvGHWZmdThJlg5qB9gPDJT6I41fyailFzhEc9uNaPmSS6zQ/lCjUwyq2BlL9TlhqAGbQRu8ba5gHBmcevASHS4AD3B6tlGehjAoqDpHJ/Qshkn7RYn6GvcKj9y1O4smBfbylN+MfqWP5e1xs105KAjYhnSYPivUdF2EjbexRvl6OON1ClkBL7HGQix7zsot/CDmMyRySIM5Ijhs28eKe0YmmaHZJhsNfaFPcgcfvd3NZ4/b2AKvXnnSiGaVRpdh65Ybn94MgZbvqbwgwgKD4Bh5N8IgqdcHxDnPAGTZ/ZumTBE6RnRqdE5jfw==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v2 09/10] xen/arm: domain_build: adjust Dom0 IRQ handling
 to support eSPIs
Thread-Topic: [PATCH v2 09/10] xen/arm: domain_build: adjust Dom0 IRQ handling
 to support eSPIs
Thread-Index: AQHcB5d9D2bB2ytT+0KvuTkMlpIiH7RuWAiA
Date: Fri, 22 Aug 2025 07:08:50 +0000
Message-ID: <93cd9406-030c-4915-b180-1cc90109b7d3@epam.com>
References:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
 <abba685916e6637eedbd831352bed2e968eeb7dc.1754568795.git.leonid_komarianskyi@epam.com>
 <87o6s8d3m1.fsf@epam.com>
In-Reply-To: <87o6s8d3m1.fsf@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: GV2PR03MB8678:EE_|DU0PR03MB9104:EE_
x-ms-office365-filtering-correlation-id: 70f0838d-1120-41f2-dfa9-08dde14abee4
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?WERSVnNSNktpSkwxelJhejcxcGxENVdiOE9IM2NaUmQ3cUFvWTZzaEExL1k1?=
 =?utf-8?B?eWhKYTBRNUFNNGZudUQ2K2ZORjhOcHVKR3drdmYyQWZQQlFjVmkySU9qWmVL?=
 =?utf-8?B?OHBLaGd4NSs2cjlVOXduWHZUQnJxRW4vR1JuNjhkTENjNVkxcnVJSXlMWW41?=
 =?utf-8?B?K1V5QnhPVUZCZkZIdWZjL1NaMEVOcy9CSDA4SHZuMzBTMzJzc0k5TGNjOWtw?=
 =?utf-8?B?dkZtMVJYdHltb2p6QjlCY3hTbUFYV3d5cG5MUm1pUkVJdDYxRDdaL0xOZVRF?=
 =?utf-8?B?VWFyc2RVZ3hnV0FUQmRuSlpuR3lZTTllRkZuK3FhOW1mMUJQK2NtM05aSlM4?=
 =?utf-8?B?WW83UWpaUkRXYjhlWlVjTDJvZ081QnFYenpHSTI0NTd2cXoyVHJtTGdNTGZn?=
 =?utf-8?B?dHZ2VFBXN2ZRanhvcjZpaWFWZFFMaDhjOHpPWENoUTd2NUxldjFyelRjOHNl?=
 =?utf-8?B?cnlmQ2kyaDFPRDBIUW9QYVZRUkxva1VFYjNMUDJUUW1xNWdRT3pGVDFrQ09O?=
 =?utf-8?B?Wmx0UVhCVUlRNFNRc0tiN29ETStSYktLa2dsUkRzZDg3ODZwZFhNT2JYY0I4?=
 =?utf-8?B?T1RRRUZKV2ZSQnpORWxZTnl3WExIdENENGgyY3NsR2NraHJrS21idnAyOHdk?=
 =?utf-8?B?c3MvZ1NUU21nVEh0Z3hOOFBvZngyZ28zTG1XTkRENXdiT28zN0JsS0RCVFZ3?=
 =?utf-8?B?TUtSMnB1Tkk1ZnhXMnZNZXRLN044Ulcyc05pV2F1SC9xM3JNL1BPdVRFTnlW?=
 =?utf-8?B?WGhhUktYc01BTHVham9LVGMwSFZ4SmJ3cFBMOWRuaXZLWHQ3UitLL1M0MHRQ?=
 =?utf-8?B?ZmVBV29EQVpoVnBJVnhEREpPeEJ3cnp5a2RtVmlQT2NzQmx4QlEyL3NOTWpI?=
 =?utf-8?B?ZkNPa09LRGthejBjWWFEbHdKdUhkTm90Qi8vaXU4U2ZZYkN0bXNVT2owTzls?=
 =?utf-8?B?aTFnMHFYV3F2T0s2Rkd5VG5QWGhyN3lZYXFrUExoWmJVTWFvQXhieXNHNG9p?=
 =?utf-8?B?bU5GRHFxNDZoUzVmRU95TTZISkF1T1pNRnJNTTk5MmkzRlAxSkE5aHY2MVJ2?=
 =?utf-8?B?Kzl2Z3EyblBDLzVuWVVzZE95VUp0S2M5aXJJaHBHS1A5NVBqOHhsQjVxSTgr?=
 =?utf-8?B?TlpJNXJiejEzWFBXKzA2cmlpeE85WlgrS3QxSnBheksyZFhOdlRTTitBMHkw?=
 =?utf-8?B?QXQ5VDdMQlJIckNyYWJucTcrbFBmdDJPdUZnSkdHbHFSY1lvNTJNMENaYWhQ?=
 =?utf-8?B?VWtUMlNCeFBvQldVSHV2NGJHdFkzVGRKeEViSE5CaUxqKy9ORnlvL0FmMXFp?=
 =?utf-8?B?OVZ6MnAzMEQ1WTQyaXhyVmthaUNIZ1BSOG9ucC9UN0tXOFFvVVJ0NC9XUm45?=
 =?utf-8?B?Z1BNSG5xMysxaW5KWTRJZ3pIOTFEYXQzRWlubTVQTDEvWEhvWFJaNWdETGxO?=
 =?utf-8?B?VGRqUzRoZUd2WGVzU1k2M0hER2EzRXU3RVEzdkNkVkJCT1plQzRoSjFJc0Qz?=
 =?utf-8?B?TjFTOHYxVDRkNXIrMmhzeGhFRHYxYStTQ2ZwWUUzTHJWelNQRnQxUDlOeWtx?=
 =?utf-8?B?K2N3Y3lEWXJKa2FkeTVUYWZZbWl4Qm1OWnhOaU92c3ErdXl2ays0WWRrY3RR?=
 =?utf-8?B?U3BlUFV5eElQbVpPN3F5QWMxVHVJTnZsdUxHTUVKaDBLcC9UQ1N1eWFHb3ds?=
 =?utf-8?B?dmlZLzExT3dkQTRqeDdSajJuNHlQelVHTy9sLzZ4Vk5kQXlTUlFxdWVnc0lO?=
 =?utf-8?B?bXVVUEN0YTJvVTVRczdWamQ0VDFrVXJxckZlSTA2a0dJVWRlNisvbWRKaE9x?=
 =?utf-8?B?OW5oamZkM3NzcGJMTDU2eVNQRG5LNWxPeVlxQWJ0ejlLWFp4NG03b3RZQjRx?=
 =?utf-8?B?c0VoZndrYzN4cHVLSGVKUTFJVXN4MTZwSnBwc2FveHkwZ0xneUhxM0NLYnNJ?=
 =?utf-8?B?QVl4Vk0vcDFJU0xKWmg2SG1iL3BOT3dweEVvQTdRdGRYUnlwUXltTEhqNEov?=
 =?utf-8?B?c3RpUlczL0pnPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?VHhwY1FVYXgyMzhFSmJLZTVoUjZ4QS9BQmNzLzBrOG9ucFZPZFV4UzZPTGln?=
 =?utf-8?B?SlJwNTlDaFo0cEpCMURpN0lESm0ySUhpVGdaeHhOTUo3NzBuc0FRODBCbVI4?=
 =?utf-8?B?THR5K0hTMHVSRjFoL244M1ZVQjJOdXVzVVlCeXBUN3A4amtZRnY5OWFqNlJB?=
 =?utf-8?B?UDMrbXRpbTV1V1BRNFVTRXJLekY2emFMeTZrZDJZTndIR25mVnVBU1ljQzBS?=
 =?utf-8?B?ME9FcTY0Ym9FTDdHV2NUTC90VXUrTFZrWU5jSHhKQlc0enlKckhwK1hyS2ZY?=
 =?utf-8?B?YkE3aGlQWnF1T1NpNUlmMzErM29MWTc1UkRMYnVpMnBob1Q2aHZDQTIwL2dx?=
 =?utf-8?B?KzhhdVY1WTlIZTFkcVFINThUMld2YVhJVmhBRUlBWk5pUWhrRFlZTVh4cXpl?=
 =?utf-8?B?L1QzK2ZwTkJwaDdyY3prN2tqZlZHRERmK1h6czBKVnF3REZDbk4yNkt6M1ly?=
 =?utf-8?B?d0hYaThRZHU2czFVanZ2YUV3andsb0tVbUMrOVcvRlNrbmZYTVBjQjVDTW5S?=
 =?utf-8?B?RjFnbjFydkE3ODRXV3pyaTNpZVhsMGNvbk4rQXhLYnBDNVlnZjhkTnVxWFFT?=
 =?utf-8?B?MmE4SXBqTjZ2QzlHZmdDUlN6UnVSei9RVjBwTHozMWduR092WWQwdFRHUldN?=
 =?utf-8?B?dXpzcFNZQXZjdTJwTFUvRlU2OHVQM3lpSGp6Z1RORVkwT1VrZ0ZVaGdDVkNK?=
 =?utf-8?B?dXRhWUZYU3hqc1BESytaeXU4L2QyUHdBV1dxVlpsMk1KSjZnZS9DcWxjY0lr?=
 =?utf-8?B?bXp2NytJcDdyeGt6dzFaTHZXLzBXM0RqUVZZZEtFOEthaEo4Ly9rMjIvZ3dk?=
 =?utf-8?B?enRoZGhuZnZXVFB6YlVXeS9HM2grYzd2bVVhSmFhU3RTdnJFL09qSE92U1FZ?=
 =?utf-8?B?K2owd1lHQk1qOW9KazRscG9wa3RRelVRNTdvV3FnWlBNMUVyQ095ZUNvVzFF?=
 =?utf-8?B?RkMxMlhCSjVPMzh2eFpJd21OUjZKVmp2aFd6aitQUU40N1JycUg3Y3ZMQTB1?=
 =?utf-8?B?MUM2Wkx3KzBwbE5CMkFWaFZPQ2dRL2ZoWkQ4blRNVmcrSGlUQ3JicVpnVFZL?=
 =?utf-8?B?NEZHZjQrRlFTTE42aWw0NFdJRHhtUTliY09kM1l3cEpKbnJ1SmhZYVlheTVz?=
 =?utf-8?B?b2pLMFdhVmdsRitvMTF6WDdzN0JNbFhGWUN2VnpzY2lncUo1SEQ0K045bEh6?=
 =?utf-8?B?UEl5VzVyWThNQldoOUZJZWM2OEFnaGNrQ0IrNGt5ckswaG5LclBETEE5QnFI?=
 =?utf-8?B?cnZEZXQvMUpDZXgwRW9sUm1wN3o5STZZaSsyUlJQTmZQZFBTMU1UQlVTTzJB?=
 =?utf-8?B?NEc3QWFKVHo2d20weHhMWU02TzQ1aUNvQ1J6MkNqRndWb29pODVCWDl6eENI?=
 =?utf-8?B?NzdheUYyTW9EZVdpd3JLODQyYzNyZWFKaENnYzJIUDhsL1VZaG0xdUVXVktr?=
 =?utf-8?B?bWZPNmdkMzg4WmxvY0hSVW53ejNZVFd5L3Z5MjIwd3psWGpCMU1zQzZOMldu?=
 =?utf-8?B?VEZoejE3cVI2Z3Q0NlBvNHJBK2V3cjdPUytjTmNrSjBpSzN4a0lVdUx3MmtG?=
 =?utf-8?B?clNBQzU3RWYxQmFwY1dkZTJRMndRZXVjZ0NPZG5NT2hJZVkxdWVWamJTTjlP?=
 =?utf-8?B?R29TSEp3VDhzL1lOYTBFb21NSmlvM2dmbFRvVkdmWk5jNHFLZlRYMlNWL2Vt?=
 =?utf-8?B?bC9BSnZtSGI3dVJCQjI1VEtUSEc0TXpWQS9iMFkyckJPZkhIQWRMaUd4MVpP?=
 =?utf-8?B?R1V3YisxVGJ4OWRIZEQ0UlNERDBjaUdVdnYwWHJRejF6MHFMVmRpMVlyWCtw?=
 =?utf-8?B?cGdDVXU4UFMxREVZV3RsWnl1bVFHMWdXV054RXliTTFGTHVoRllhQWRrSW1G?=
 =?utf-8?B?V2gzN1FzSDM5bG10TnpSOEJIWmgvTHdWYUhUZ2hXUnRoUklMcXhUa2JsUEp2?=
 =?utf-8?B?Y1ZPeCtUWDBUYm0vaUJNNHpmK3ZRN2pKMkNvM0RPWjEzV3Q4Q1lhQU9TdTk5?=
 =?utf-8?B?cW5SQitLRFZxdlpXV2s1T09MbDZndXBQYUx5UzZhNzRrV0F3RXVZMEpLQnQ1?=
 =?utf-8?B?VEJTSFlCblQvZTJNeWVpdytBenh3KzlhenB5TjJTVHdaOE5UWUJ5NDNpaWw0?=
 =?utf-8?B?N3JqU3VOcFhmTlppVTRyd21MTGtoQW12NHYzbEpIVmpQRXo0Nis0VGJKTkQx?=
 =?utf-8?Q?sdRyYt7xXSyJYO4E0MQljcQ=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <6FDCA9C1FF439B4691F3A5D80570519E@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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 70f0838d-1120-41f2-dfa9-08dde14abee4
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Aug 2025 07:08:50.2492
 (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: qjJ4/qvGgo/H/NcpIw/eMK/CBeePiyTc1GZfcKkAw3Ur/1TUxhBkOpQZFKIWnMqXaLGvT5+Zu0gArvl0QfUAq+tKObRUKcdhyfLh065Syxw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB9104

SGkgVm9sb2R5bXlyLA0KDQpPbiAyMS4wOC4yNSAxOTo0NiwgVm9sb2R5bXlyIEJhYmNodWsgd3Jv
dGU6DQo+IA0KPiANCj4gDQo+IExlb25pZCBLb21hcmlhbnNreWkgPExlb25pZF9Lb21hcmlhbnNr
eWlAZXBhbS5jb20+IHdyaXRlczoNCj4gDQo+PiBUaGUgRG9tMCBjb25maWd1cmF0aW9uIGxvZ2lj
IGluIGNyZWF0ZV9kb20wKCkgaGFzIGJlZW4gdXBkYXRlZA0KPj4gdG8gYWNjb3VudCBmb3IgZXh0
ZW5kZWQgU1BJcyB3aGVuIHN1cHBvcnRlZCBieSB0aGUgaGFyZHdhcmUgYW5kDQo+PiBlbmFibGVk
IHdpdGggQ09ORklHX0dJQ1YzX0VTUEkuIFRoZXNlIGNoYW5nZXMgZW5zdXJlIHRoZSBwcm9wZXIN
Cj4+IGNhbGN1bGF0aW9uIG9mIHRoZSBtYXhpbXVtIG51bWJlciBvZiBTUElzIGFuZCBlU1BJcyBh
dmFpbGFibGUgZm9yIERvbTAuDQo+Pg0KPj4gV2hlbiBlU1BJcyBhcmUgc3VwcG9ydGVkIGJ5IHRo
ZSBoYXJkd2FyZSBhbmQgQ09ORklHX0dJQ1YzX0VTUEkgaXMNCj4+IGVuYWJsZWQsIHRoZSBtYXhp
bXVtIG51bWJlciBvZiBlU1BJIGludGVycnVwdHMgaXMgY2FsY3VsYXRlZCB1c2luZw0KPj4gdGhl
IEVTUElfQkFTRV9JTlRJRCBvZmZzZXQgKDQwOTYpIGFuZCBsaW1pdGVkIGF0IDEwMjQsIHdpdGgg
MzIgSVJRcw0KPj4gc3VidHJhY3RlZC4gVG8gZW5zdXJlIGNvbXBhdGliaWxpdHkgd2l0aCBub24t
RG9tMCBkb21haW5zLCB0aGlzDQo+PiBhZGp1c3RtZW50IGlzIGFwcGxpZWQgYnkgdGhlIHRvb2xz
dGFjayBkdXJpbmcgZG9tYWluIGNyZWF0aW9uLCB3aGlsZQ0KPj4gZm9yIERvbTAgaXQgaXMgaGFu
ZGxlZCBkaXJlY3RseSBkdXJpbmcgVkdJQyBpbml0aWFsaXphdGlvbi4gSWYgZVNQSXMNCj4+IGFy
ZSBub3Qgc3VwcG9ydGVkLCB0aGUgY2FsY3VsYXRpb24gZGVmYXVsdHMgdG8gdXNpbmcgdGhlIHN0
YW5kYXJkIFNQSQ0KPj4gcmFuZ2UsIHdpdGggYSBtYXhpbXVtIHZhbHVlIG9mIDk5MiBpbnRlcnJ1
cHQgbGluZXMgYXMgaXQgd29ya3Mgbm93Lg0KPj4NCj4+IFNpZ25lZC1vZmYtYnk6IExlb25pZCBL
b21hcmlhbnNreWkgPGxlb25pZF9rb21hcmlhbnNreWlAZXBhbS5jb20+DQo+Pg0KPj4gLS0tDQo+
PiBDaGFuZ2VzIGluIFYyOg0KPj4gLSBubyBjaGFuZ2VzDQo+PiAtLS0NCj4+ICAgeGVuL2FyY2gv
YXJtL2RvbWFpbl9idWlsZC5jICAgICB8IDEwICsrKysrKysrKysNCj4+ICAgeGVuL2FyY2gvYXJt
L2luY2x1ZGUvYXNtL3ZnaWMuaCB8IDExICsrKysrKysrKysrDQo+PiAgIDIgZmlsZXMgY2hhbmdl
ZCwgMjEgaW5zZXJ0aW9ucygrKQ0KPj4NCj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZG9t
YWluX2J1aWxkLmMgYi94ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMNCj4+IGluZGV4IGQ5MWE3
MWFjZmQuLmZhNWFiZjJkZmIgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vYXJjaC9hcm0vZG9tYWluX2J1
aWxkLmMNCj4+ICsrKyBiL3hlbi9hcmNoL2FybS9kb21haW5fYnVpbGQuYw0KPj4gQEAgLTIwNTUs
NiArMjA1NSwxNiBAQCB2b2lkIF9faW5pdCBjcmVhdGVfZG9tMCh2b2lkKQ0KPj4gICAgICAgLyog
VGhlIHZHSUMgZm9yIERPTTAgaXMgZXhhY3RseSBlbXVsYXRpbmcgdGhlIGhhcmR3YXJlIEdJQyAq
Lw0KPj4gICAgICAgZG9tMF9jZmcuYXJjaC5naWNfdmVyc2lvbiA9IFhFTl9ET01DVExfQ09ORklH
X0dJQ19OQVRJVkU7DQo+PiAgICAgICBkb20wX2NmZy5hcmNoLm5yX3NwaXMgPSBWR0lDX0RFRl9O
Ul9TUElTOw0KPj4gKyNpZmRlZiBDT05GSUdfR0lDVjNfRVNQSQ0KPj4gKyAgICAvKg0KPj4gKyAg
ICAgKiBDaGVjayBpZiB0aGUgaGFyZHdhcmUgc3VwcG9ydHMgZXh0ZW5kZWQgU1BJcyAoZXZlbiBp
ZiB0aGUgYXBwcm9wcmlhdGUgY29uZmlnIGlzIHNldCkuDQo+PiArICAgICAqIElmIG5vdCwgdGhl
IGNvbW1vbiBTUEkgcmFuZ2Ugd2lsbCBiZSB1c2VkLiBPdGhlcndpc2Ugb3ZlcndyaXRlIHRoZSBu
cl9zcGlzIHdpdGggdGhlDQo+PiArICAgICAqIG1heGltdW0gYXZhaWxhYmxlIElOVElEIGZyb20g
ZVNQSSByYW5nZS4gSW4gdGhhdCBjYXNlLCB0aGUgbnVtYmVyIG9mIHJlZ3VsYXIgU1BJcyB3aWxs
DQo+PiArICAgICAqIGJlIGFkanVzdGVkIHRvIHRoZSBtYXhpbXVtIHZhbHVlIGR1cmluZyB2R0lD
IGluaXRpYWxpemF0aW9uLg0KPj4gKyAgICAgKi8NCj4+ICsgICAgaWYgKCBnaWNfbnVtYmVyX2Vz
cGlzKCkgPiAwICkNCj4+ICsgICAgICAgIGRvbTBfY2ZnLmFyY2gubnJfc3BpcyA9IFZHSUNfREVG
X05SX0VTUElTOw0KPj4gKyNlbmRpZg0KPj4gICAgICAgZG9tMF9jZmcuYXJjaC50ZWVfdHlwZSA9
IHRlZV9nZXRfdHlwZSgpOw0KPj4gICAgICAgZG9tMF9jZmcubWF4X3ZjcHVzID0gZG9tMF9tYXhf
dmNwdXMoKTsNCj4+ICAgDQo+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNt
L3ZnaWMuaCBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS92Z2ljLmgNCj4+IGluZGV4IDlmYTQ1
MjMwMTguLjExN2IzYWE5MmMgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9h
c20vdmdpYy5oDQo+PiArKysgYi94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vdmdpYy5oDQo+PiBA
QCAtMzUzLDYgKzM1MywxNyBAQCBleHRlcm4gdm9pZCB2Z2ljX2NoZWNrX2luZmxpZ2h0X2lycXNf
cGVuZGluZyhzdHJ1Y3QgdmNwdSAqdiwNCj4+ICAgLyogRGVmYXVsdCBudW1iZXIgb2YgdkdJQyBT
UElzLiAzMiBhcmUgc3Vic3RyYWN0ZWQgdG8gY292ZXIgbG9jYWwgSVJRcy4gKi8NCj4+ICAgI2Rl
ZmluZSBWR0lDX0RFRl9OUl9TUElTIChtaW4oZ2ljX251bWJlcl9saW5lcygpLCBWR0lDX01BWF9J
UlFTKSAtIDMyKQ0KPj4gICANCj4+ICsjaWZkZWYgQ09ORklHX0dJQ1YzX0VTUEkNCj4+ICsvKg0K
Pj4gKyAqIFJldHVybnMgdGhlIG1heGltdW0gZVNQSSBJTlRJRCBzdWJ0cmFjdGVkIGJ5IDMyLiBG
b3Igbm9uLURvbTAgZG9tYWlucywgdGhlDQo+PiArICogdG9vbHN0YWNrIGFwcGxpZXMgdGhlIHNh
bWUgYWRqdXN0bWVudCB0byBjb3ZlciBsb2NhbCBJUlFzLiBXZSB3aWxsIGFkZCBiYWNrDQo+PiAr
ICogdGhpcyB2YWx1ZSBkdXJpbmcgVkdJQyBpbml0aWFsaXphdGlvbi4gVGhpcyBlbnN1cmVzIGNv
bnNpc3RlbnQgaGFuZGxpbmcgZm9yIERvbTANCj4+ICsgKiBhbmQgb3RoZXIgZG9tYWlucy4gRm9y
IHRoZSByZWd1bGFyIFNQSSByYW5nZSBpbnRlcnJ1cHRzIGluIHRoaXMgY2FzZSwgdGhlIG1heGlt
dW0NCj4+ICsgKiB2YWx1ZSBvZiBWR0lDX0RFRl9OUl9TUElTIHdpbGwgYmUgdXNlZC4NCj4+ICsg
Ki8NCj4+ICsjZGVmaW5lIFZHSUNfREVGX05SX0VTUElTIChFU1BJX0JBU0VfSU5USUQgKyBtaW4o
Z2ljX251bWJlcl9lc3BpcygpLCAxMDI0VSkgLSAzMikNCj4gTmFtZSBvZiB0aGUgZGVmaW5lIGlz
IHdyb25nLCBhcyBpdCBpcyBub3QgbnVtYmVyIG9mIGVTUElzLiBBY3R1YWxseSwgdGhpcyBpcw0K
PiBtYXhpbXVtIFNQSSAoaW5jbHVkaW5nIGVTUElzKSBudW1iZXIuDQoNCg0KVGhhbmsgeW91IGZv
ciB5b3VyIHJldmlldy4NCldvdWxkIGl0IGJlIG9rYXkgaWYgSSByZW5hbWUgdGhpcyBtYWNybyB0
byBWR0lDX0RFRl9NQVhfU1BJPw0KDQo+IA0KPj4gKyNlbmRpZg0KPj4gKw0KPj4gICBleHRlcm4g
Ym9vbCB2Z2ljX2lzX3ZhbGlkX2lycShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgdmly
cSk7DQo+PiAgIA0KPj4gICBzdGF0aWMgaW5saW5lIGJvb2wgdmdpY19pc19zaGFyZWRfaXJxKHN0
cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCB2aXJxKQ0KPiANCg0KQmVzdCByZWdhcmRzLA0K
TGVvbmlkDQo=


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 07:30:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 07:30:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089603.1447127 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upMEW-0007cy-8A; Fri, 22 Aug 2025 07:30:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089603.1447127; Fri, 22 Aug 2025 07:30:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upMEW-0007cr-5R; Fri, 22 Aug 2025 07:30:44 +0000
Received: by outflank-mailman (input) for mailman id 1089603;
 Fri, 22 Aug 2025 07:30:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1jNg=3C=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1upMEV-0007cl-Kd
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 07:30:43 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e7ede8f3-7f29-11f0-b898-0df219b8e170;
 Fri, 22 Aug 2025 09:30:41 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by VI2PR03MB10858.eurprd03.prod.outlook.com (2603:10a6:800:27c::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.15; Fri, 22 Aug
 2025 07:30:37 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Fri, 22 Aug 2025
 07:30:37 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e7ede8f3-7f29-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=c6Dck9uH4SY9ldD5fe8kHplIeg58OJPFqs9kU6sbWEKTl9QC8NYB5NU4HHDi6vH8Z3LvMV2r7mcWMm4sLC0ypnZCdCJzneNmwjYWgK2jaiiWVxzJtK9o1T46JcGQMNfYiBbuiFMQjOSNv1OnJQ++6F/GK2HBOc4aOMaX0dvZMe8pW+GOpXHG7W49v8utSrsIaMXXFgdBGPvI3g7qs/niAxnVnWca+E7+tx5N6c2kM0A2l+7gehJjWvrg4uZD+sd8HdqMdUbBWn/GeuhGM/fEJk34/zAF427k94Nm6Jmrcj0XB1pIkmURfyFh7nmg61Xjtq5e1YLhD5BiW9XuDIabaA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=5IhlJKhx/lzWqMjST45ZAuxbty6q6lVa4pjL30h4xLI=;
 b=IktEJCh+LHyuuPJWR2x1RaHq7M3SIvlxU7nKZGcGv1axWDO1/t5DWAbpPo63AOJraeVYopvtIzqIL3tXUhnBkDenfzb1FQhxvmiUbgjPUrGOli3mVpv+o2xRvc+ZV72hebWTFSdEfrU4kCPC1tDwJNaiR1zZk2/lpX2nfHSOHOys8YeLu/fgaWmKLc2SeDMAInIPfl7A2UXZGxh05PKB8Gk6sSfAzQNq0nzHLxZNs5KfPoXKJIQDk0wm4Xpo4DuAFgy10m4nsa20r3ArHAzySy1El1AzhmNLY/FVEvdcTyLHEXLXqmY3Ssr68aFWtYhUrT1uJ9YfDy1DeUl9TS1sBg==
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=5IhlJKhx/lzWqMjST45ZAuxbty6q6lVa4pjL30h4xLI=;
 b=jYrcuCV/XGQQEuiDnKluhGZr05bwTM7Sdp8RTLMyBnVZlWINT0XdXYe27B39Qxmm8KAGQM0bERc3C7Sk6G/uGqPVtw2EtMP/RZ0/3EdzGkR65hEDHrnYzSN3Z2AgCkVYw53EFwqG9OBX8yqZfcrSNl8dE8KC0CvNK0Hf0bpV9Qa7L0u1885VTpa7pHzfUQJeydB7SS/dW2OuzZmWawr/32OSu07hQ3JQ3uFSmMrBm326umbZRempbvH1UT1GJrTWJh5HWbkFSNjihLwbaJ5/Ts61pr5HPPSH06pDBX0upvabUWXRD+zksOKxN9X193/+MfELgRGaBb9Wq0m/Ew4bjQ==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: Julien Grall <julien@xen.org>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v2 02/10] xen/arm: gic: implement helper functions for
 INTID checks
Thread-Topic: [PATCH v2 02/10] xen/arm: gic: implement helper functions for
 INTID checks
Thread-Index: AQHcB5d7oc7jtkgiGki3l7l8xwTnbrRtYNMAgAD9SwA=
Date: Fri, 22 Aug 2025 07:30:37 +0000
Message-ID: <b962a6d6-fc68-49a2-a868-058adb98a6a2@epam.com>
References:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
 <51a017aeab39af14ba40ab76b56f317270c7afaa.1754568795.git.leonid_komarianskyi@epam.com>
 <877bywfzvj.fsf@epam.com> <3beba113-1f6a-4360-bf18-92bdef6ac8f8@xen.org>
In-Reply-To: <3beba113-1f6a-4360-bf18-92bdef6ac8f8@xen.org>
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: GV2PR03MB8678:EE_|VI2PR03MB10858:EE_
x-ms-office365-filtering-correlation-id: f4612e10-5ee5-49c0-c6bb-08dde14dc9da
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?RU8zUVhMTGVHZGNnNERaZG94SWloNjEyLzhTMTREUlhaa0JVc1IrcjdlYm0z?=
 =?utf-8?B?d0dlanZJR0JDaytQZnRBdnVxbXEwS2NpR0l0a0l6QXZmbmdEWjFsV2ZVWFgx?=
 =?utf-8?B?K0lNenpLUjJKQlpBOXNmQUE4VUtGZ0pUbExvRHVSTXgyUVVEK0RmNjFpTUI4?=
 =?utf-8?B?NEJhVHdrbnFYUHduNDUrUzFMUDhMNDd4OVpzczBzNktFWWFzQVFYZER4dTBF?=
 =?utf-8?B?Q1pBaHBtbkI4cEtTT2RkeTZvWSthOHozdTI2YndBdnltZkg3TnF5NWdab2Rv?=
 =?utf-8?B?Y2hESktKOGU5ZzZUV2VKWVV3ZUQ0bHZWUUtYd2Z6TkdjaERDcGI2eUVYSzFV?=
 =?utf-8?B?MmdVWm1UT2FKNHRpeVUvaUdDSXpFRmkyZ0QvU1kvNUw2enNNUDFTTllMZ3l6?=
 =?utf-8?B?Qm1NaS9oUko3YUtyeUVHT2EvdUM5V2lzc2g0MTczeVYrcktDM0MzQUlPVHg2?=
 =?utf-8?B?c2dpWmFGVzJ0ZmpNd0pZV0VjSkNJZVQxMEVzOUNVWXVZSlI4elJLd1BnRHZr?=
 =?utf-8?B?TTcxSHRLR2hJY3NlbGdiTkhEei9XTzdDako3L0k1MGlwbXdPYm44ZmNyTHp5?=
 =?utf-8?B?R0tNcGV3bXpXNk9sRkV5blNNL1pyeE1RWDgwWnc4b0cwUi91UUJITEw3SUN5?=
 =?utf-8?B?V2lrdmZjZ2lDeFZVSXY3ZFJOWTA3N2FYcEVCY3FRUjRFTnFEV1NsTjRVMjMv?=
 =?utf-8?B?eVRLdlVlN1FENWp3T1piZGczc1VLZ21hWnpXaUdJa1d5bmFzT1RCODdneDla?=
 =?utf-8?B?eGZ4OXd6TStabkV0ZFN0RkpsQUl2NlRWR3htVHNuQ2hnbEdGMU5SVDVJaTZK?=
 =?utf-8?B?RitZdS95emFGWDVnZDY1YmM1bG5RemdYbTNLSjhXRHBRWE9VUXVNY0k4NzFO?=
 =?utf-8?B?ckxBbHk1blh1WEN4cWZ1Qk1icGVzOE9TUHFHUzVNVFZsSTU3a2RvbXpxOHhp?=
 =?utf-8?B?R3RHQitiTm5ONnloTkRJZzI0RWxTN1c5VVNZc0pnSnlQM3ZuWHllWGdpcjIw?=
 =?utf-8?B?RkJDYk1OcmdsR2xCbXBzV285ZklQODBUTEJyZ2VSZWdCYkFqWFFGZm1LbWI0?=
 =?utf-8?B?UEMxYTBrZ3h6Q0Fidzg3ZGhmVzU4NUE0OGZ3bW1CallXdW16S2RSMmdRMXRW?=
 =?utf-8?B?Tm1LUnJISmh4cllyRTRENVdFRTZIU2hmWXFnQVNTaTRibDN4TzMyREczbUVr?=
 =?utf-8?B?QWNlZkdQWStBQ2x0TnZjQjhna2FVU01xZXRlM3BOTzQzNmM4aG5GWGc0dUR2?=
 =?utf-8?B?TEpXeHQxY2xWNnFzNzFBZERaTURkWGxweWorQ0x4NlVib25NYTVzTnVGVlpD?=
 =?utf-8?B?NWZnVTVoY2VOdTN5VTM5UmlhWGJvK201U1NKYWFDaXdHV0pycjBNTzUra2hv?=
 =?utf-8?B?Z1hTQ3kyRGM2TzBHY21renJXcFErb2dZaGhlRGZGVUhHN1M5bjFhNHNEbjFm?=
 =?utf-8?B?dXFHdnhBN1FVN05QVHFsM0NUeW1pU0s1bHUxb1d2WWp5T2NlSmZnaGNQcHE4?=
 =?utf-8?B?Q0VveTl0cFIvSzlYRnpvdVdNSTk1NmU5ZEhpWFRFQzRGdVVXbzhCempqTEtq?=
 =?utf-8?B?aW4rcWV1b3RGd1lCQ2VkZ2RSTTdYUys3ZjFJbk9tNU5PeWZiUEJhK09wM2ln?=
 =?utf-8?B?eHJTakI4c0xhMWJpeTROUFVRb2lUVW9OQmltbXRLa0RUaUN3L1pMV0tWMnZp?=
 =?utf-8?B?RVA5S2hmSzZnUE9wcFRSTFQ2ZU1OM0E4cUVrN3E4VkMwakJrYkEzUEVsUkYv?=
 =?utf-8?B?R3o4djRadkx2WWhhZWxSaS9qSWVLUStjb2pESmg4N0xsbjNXeVE5RHZrbG1w?=
 =?utf-8?B?Y2tpZHc4WlRjbDV6cnVTL3F3ZmtkbkhFM2FaWmw1dk1Sb3BhNE91V2V6Z3Jw?=
 =?utf-8?B?cDRGb0xGR1JNQytTOHJzWDlUaVlCTDZsbGdaRkl5eEN0YnlGelpqMmp6Q2Rn?=
 =?utf-8?B?Rjk0UTI0Y3ZoQXUvMit1OWFjU0VjRzZUY0pzalFUMDZhcUs3TTY3alJJdGRO?=
 =?utf-8?B?TTJnWW9pVlhRPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?RG9IdWFQdlBhN29qbFpIQ2FmSE9xdlZnWkMrdllZNFQwN3FBamx0ZDhMSGNk?=
 =?utf-8?B?Y1cxL0Rnd0Uvd3dvK015djllSVdIMHFNQy9sdGhjZHJiaXgrNVZzaXk4STdz?=
 =?utf-8?B?OVVmRDVtRlNRY05wUnFKV3VCeGEyUVhMY2lwaElGeDQyTklYcExMbERhSm0v?=
 =?utf-8?B?MzdtWWpUTnBYZ0xxSWU4TWFOT3p3b0VvWHBWL0dkc1cvQzB5TXNUTThSRmYz?=
 =?utf-8?B?SS9SM0tnYVJwdHRqMDNGVmZ1MGNtS3VmeGxaQUZUUkhvMGQ4VnNkejhjaUlG?=
 =?utf-8?B?Kzg3NXJvc2JENjYvOXJiemZ1SUNZVlNTZm5JOFZubytZME9NWXdGYUpGZ2pW?=
 =?utf-8?B?dE85eTNOMzJtaFN3TmZTZ2lxb21wMXoyMm1RbG5hQ1pWdUhmTHh2RmZ0Wk5X?=
 =?utf-8?B?UEpUbTNYZlZNc2I2b0FJOHhaSzFid3A3bW1kY1pIUnFDMXE2K0xabGI3Qld4?=
 =?utf-8?B?dG5lRmNyTzAyMHpZQjRmYmhxcnNTQzNqcHVVU1lvR1ozd2JpKzJ4T1RqRVRW?=
 =?utf-8?B?dU9vWm9pbG1EcUFOZHBlTXRHM3U4elMrUFVGR0c3T0pXSXN5NU5QbTVYVDd5?=
 =?utf-8?B?YWl5QVRoU3M1WmxQOW9mbS9HdWhlYmxDR2pRdis1b2c0c2pkN0NzRytoTjUw?=
 =?utf-8?B?NUo5cjRmRkNDQzkyaTlyaml0OGNZU2xQZ3JmTWdpV1FZM2hKdFVYRlZMVjdT?=
 =?utf-8?B?MCtpWE1obERYY1IyQy94NzlMUEgyd0hRZ3dSSXIrd2M3bGJwbXVkZHV1azBl?=
 =?utf-8?B?SnZldTEzZkZpWGNCTEJHZ1RWbmZEMVpjSm12NFNTMFc3Nlp4N3pnUnNJTS9T?=
 =?utf-8?B?UzFSNHU3RitITEtyb3FkK21wbnFCT2M4ZndqckR3Z2NhMUdHZ0piNnF6Q2ts?=
 =?utf-8?B?NTlvUkp1V3dxeC9VNStMdWZCZEtBWGlIaXZyNFFCUTBIUFhsczk0NEtJZ2x1?=
 =?utf-8?B?WnZUSmh2SzdaWHVtd2lGUWsvZnJ0VHRsV3dIRjZERU5ZVy9yYjR3QTRDTk16?=
 =?utf-8?B?MXZ1ZHA2bmZOb0NZWUt5TWpEYVkxSm1oUHJ1T2s3VTZOVWIvRTJmU25odDUx?=
 =?utf-8?B?R3lnOTYyZm1TdGhYSUo4THdRUFNDQUM0VVN3b3pWdTBqeXhMNkdSNm5zOW1W?=
 =?utf-8?B?VE9YVGZCRWhPaVlxQldrNFFTVER2enhQSUovRndJZHcrL1J3TVRHZ3Jtd2I2?=
 =?utf-8?B?ZU4wTEMrOEQzdit6RmFwQXYrQnZ2OEdXOUNPM1pJVVNxSmlyZVp5M1RUU1o1?=
 =?utf-8?B?UUF3OU16a1pOS2Z6K2ZIeE9vOEFDV2lVbjNtYmtzQWNxcXMvdDhnTHNPL1gy?=
 =?utf-8?B?N3ZmTTErT0hEbUV3L2w2bTFDWWJqUVlaL2E2bTFueXp2UmdldmpIT1hKdkF6?=
 =?utf-8?B?dTFzV3UxUERZRTJITkdzY3lWdUdUTDl1M1VnRmkrdmxsa0JEd0dFT05DT3A4?=
 =?utf-8?B?aWV1WVZ0aEI2Zk05QzI1WDkza2JZTzZuRmVLcmdWZzN2T2lCK2dWMEJxTE1a?=
 =?utf-8?B?eW8veXFyek40N05sckVNYk1nSXI0b0RDS2d3SGh3akhTbXRUaUJ6YTJ2U2Ev?=
 =?utf-8?B?QXVqQnd3Ujl4eSswRG51NG9TSkhqbmFtaGZLZVRMMHZ0VUxEN0FVVFpWNVJG?=
 =?utf-8?B?MElEUzFLVG55ek5IcUs0VGpBWWpFNFVkRjFocXZEN3pGUTU1ZnhFQ2dqOUJM?=
 =?utf-8?B?UlVSbmwzMGpGR3htbUZ0SXRDbER4UlRWSzhCWGduemJ4UjlFWGtYVmpyeVpy?=
 =?utf-8?B?b1N6a1UwVHNiaUQ2TzY3eExBKytTdXlJYmFRNk1RV2QwdjBETnRYM0hxM3E1?=
 =?utf-8?B?bU95NjFpejZUbGhmYjE5Zy9HQUFxKzROY2VieU00ckF0L0hiRE1MTFEvZVJz?=
 =?utf-8?B?bFpWTjJIbURMb1RCV2h0NGQvR3cyVmRYanJwV3BGSHVrcjlwcWdIMktuYjR3?=
 =?utf-8?B?WHF4dW9TV3ZqdEp4cU5aYXhnU2tTS2tEUXpHZjVRT2lPZVczSlVSV1YxOWdw?=
 =?utf-8?B?TEJXVFJ4dGR2OS8rd1BxSEpKU2VkTkpNTm9FcGdiSDRxZzZFZFRQcE9pSjNF?=
 =?utf-8?B?ZzZiQUFQYjBBQitPd0tGNGJjZW14K2I0YUpoTWVQWTdQMTBwc2t4c0QzZHE2?=
 =?utf-8?B?eWVWTW80WFNURkloUEx2TDNSTTlxSHU2YmYxd053bjR0S0ZCdHhDNDV5dXRi?=
 =?utf-8?Q?EcTN05QO3uuee9J/6gBI2nc=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <B4370CA032CF7043952879E06B17B3F4@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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f4612e10-5ee5-49c0-c6bb-08dde14dc9da
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Aug 2025 07:30:37.1339
 (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: wIn4bMuF2a1aM9+Zv4hqTw5bc3Z0jbVigbnDHV5E8o6x+7YLJm93Du97Lb9lkYbMZSczVJsCdqJ3IhhbeBn2mlE4RjJsBhaxH7ikJaMEs0o=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI2PR03MB10858

SGkgVm9sb2R5bXlyIGFuZCBKdWxpZW4sDQoNClRoYW5rIHlvdSBmb3IgeW91ciBjb21tZW50cyBh
bmQgZm9yIHlvdXIgdGltZS4NCg0KT24gMjEuMDguMjUgMTk6MjQsIEp1bGllbiBHcmFsbCB3cm90
ZToNCj4gSGksDQo+IA0KPiBPbiAyMS8wOC8yMDI1IDE2OjM5LCBWb2xvZHlteXIgQmFiY2h1ayB3
cm90ZToNCj4+IExlb25pZCBLb21hcmlhbnNreWkgPExlb25pZF9Lb21hcmlhbnNreWlAZXBhbS5j
b20+IHdyaXRlczoNCj4+DQo+Pj4gSW50cm9kdWNlZCB0d28gbmV3IGhlbHBlciBmdW5jdGlvbnM6
IGdpY19pc192YWxpZF9pcnEgYW5kDQo+Pj4gZ2ljX2lzX3NoYXJlZF9pcnEuIFRoZSBmaXJzdCBm
dW5jdGlvbiBoZWxwcyBkZXRlcm1pbmUgd2hldGhlciBhbiBJUlENCj4+PiBudW1iZXIgaXMgbGVz
cyB0aGFuIHRoZSBudW1iZXIgb2YgbGluZXMgc3VwcG9ydGVkIGJ5IGhhcmR3YXJlLiBUaGUNCj4+
PiBzZWNvbmQgZnVuY3Rpb24gYWRkaXRpb25hbGx5IGNoZWNrcyBpZiB0aGUgSVJRIG51bWJlciBm
YWxscyB3aXRoaW4gdGhlDQo+Pj4gU1BJIHJhbmdlLiBBbHNvLCB1cGRhdGVkIHRoZSBhcHByb3By
aWF0ZSBjaGVja3MgdG8gdXNlIHRoZXNlIG5ldyBoZWxwZXINCj4+PiBmdW5jdGlvbnMuDQo+Pj4N
Cj4+PiBUaGUgY3VycmVudCBjaGVja3MgZm9yIHRoZSByZWFsIEdJQyBhcmUgdmVyeSBzaW1pbGFy
IHRvIHRob3NlIGZvciB0aGUNCj4+PiB2R0lDIGJ1dCBzZXJ2ZSBhIGRpZmZlcmVudCBwdXJwb3Nl
LiBGb3IgR0lDLXJlbGF0ZWQgY29kZSwgdGhlIGludGVycnVwdA0KPj4+IG51bWJlcnMgc2hvdWxk
IGJlIHZhbGlkYXRlZCBiYXNlZCBvbiB3aGV0aGVyIHRoZSBoYXJkd2FyZSBjYW4gb3BlcmF0ZQ0K
Pj4+IHdpdGggc3VjaCBpbnRlcnJ1cHRzLiBPbiB0aGUgb3RoZXIgaGFuZCwgZm9yIHRoZSB2R0lD
LCB0aGUgaW5kZXhlcyBtdXN0DQo+Pj4gYWxzbyBiZSB2ZXJpZmllZCB0byBlbnN1cmUgdGhleSBh
cmUgYXZhaWxhYmxlIGZvciBhIHNwZWNpZmljIGRvbWFpbi4gVGhlDQo+Pj4gZmlyc3QgcmVhc29u
IGZvciBpbnRyb2R1Y2luZyB0aGVzZSBoZWxwZXIgZnVuY3Rpb25zIGlzIHRvIGF2b2lkDQo+Pj4g
cG90ZW50aWFsIGNvbmZ1c2lvbiB3aXRoIHZHSUMtcmVsYXRlZCBjaGVja3MuIFRoZSBzZWNvbmQg
cmVhc29uIGlzIHRvDQo+Pj4gY29uc29saWRhdGUgc2ltaWxhciBjb2RlIGludG8gc2VwYXJhdGUg
ZnVuY3Rpb25zLCB3aGljaCBjYW4gYmUgbW9yZQ0KPj4+IGVhc2lseSBleHRlbmRlZCBieSBhZGRp
dGlvbmFsIGNvbmRpdGlvbnMsIGUuZy4sIHdoZW4gaW1wbGVtZW50aW5nDQo+Pj4gZXh0ZW5kZWQg
U1BJIGludGVycnVwdHMuDQo+Pj4NCj4+PiBUaGUgY2hhbmdlcywgd2hpY2ggcmVwbGFjZSBvcGVu
LWNvZGVkIGNoZWNrcyB3aXRoIHRoZSB1c2Ugb2YgdGhlIG5ldw0KPj4+IGhlbHBlciBmdW5jdGlv
bnMsIGRvIG5vdCBpbnRyb2R1Y2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcywgYXMgdGhlIGhlbHBl
cg0KPj4+IGZ1bmN0aW9ucyBmb2xsb3cgdGhlIGN1cnJlbnQgSVJRIGluZGV4IHZlcmlmaWNhdGlv
biBsb2dpYy4NCj4+Pg0KPj4+IFNpZ25lZC1vZmYtYnk6IExlb25pZCBLb21hcmlhbnNreWkgPGxl
b25pZF9rb21hcmlhbnNreWlAZXBhbS5jb20+DQo+Pj4NCj4+PiAtLS0NCj4+PiBDaGFuZ2VzIGlu
IFYyOg0KPj4+IC0gaW50cm9kdWNlZCB0aGlzIHBhdGNoDQo+Pj4gLS0tDQo+Pj4gwqAgeGVuL2Fy
Y2gvYXJtL2dpYy5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwgMiArLQ0KPj4+IMKgIHhlbi9h
cmNoL2FybS9pbmNsdWRlL2FzbS9naWMuaCB8IDkgKysrKysrKysrDQo+Pj4gwqAgeGVuL2FyY2gv
YXJtL2lycS5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwgMiArLQ0KPj4+IMKgIDMgZmlsZXMg
Y2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkNCj4+Pg0KPj4+IGRpZmYg
LS1naXQgYS94ZW4vYXJjaC9hcm0vZ2ljLmMgYi94ZW4vYXJjaC9hcm0vZ2ljLmMNCj4+PiBpbmRl
eCBlODBmZTBjYTI0Li5lYjAzNDZhODk4IDEwMDY0NA0KPj4+IC0tLSBhL3hlbi9hcmNoL2FybS9n
aWMuYw0KPj4+ICsrKyBiL3hlbi9hcmNoL2FybS9naWMuYw0KPj4+IEBAIC0xMTEsNyArMTExLDcg
QEAgc3RhdGljIHZvaWQgZ2ljX3NldF9pcnFfcHJpb3JpdHkoc3RydWN0IGlycV9kZXNjIA0KPj4+
ICpkZXNjLCB1bnNpZ25lZCBpbnQgcHJpb3JpdHkpDQo+Pj4gwqAgdm9pZCBnaWNfcm91dGVfaXJx
X3RvX3hlbihzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2MsIHVuc2lnbmVkIGludCANCj4+PiBwcmlvcml0
eSkNCj4+PiDCoCB7DQo+Pj4gwqDCoMKgwqDCoCBBU1NFUlQocHJpb3JpdHkgPD0gMHhmZik7wqDC
oMKgwqAgLyogT25seSA4IGJpdHMgb2YgcHJpb3JpdHkgKi8NCj4+PiAtwqDCoMKgIEFTU0VSVChk
ZXNjLT5pcnEgPCBnaWNfbnVtYmVyX2xpbmVzKCkpOy8qIENhbid0IHJvdXRlIGludGVycnVwdHMg
DQo+Pj4gdGhhdCBkb24ndCBleGlzdCAqLw0KPj4+ICvCoMKgwqAgQVNTRVJUKGdpY19pc192YWxp
ZF9pcnEoZGVzYy0+aXJxKSk7LyogQ2FuJ3Qgcm91dGUgaW50ZXJydXB0cyANCj4+PiB0aGF0IGRv
bid0IGV4aXN0ICovDQo+Pj4gwqDCoMKgwqDCoCBBU1NFUlQodGVzdF9iaXQoX0lSUV9ESVNBQkxF
RCwgJmRlc2MtPnN0YXR1cykpOw0KPj4+IMKgwqDCoMKgwqAgQVNTRVJUKHNwaW5faXNfbG9ja2Vk
KCZkZXNjLT5sb2NrKSk7DQo+Pj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2Fz
bS9naWMuaCBiL3hlbi9hcmNoL2FybS9pbmNsdWRlLyANCj4+PiBhc20vZ2ljLmgNCj4+PiBpbmRl
eCA1NDFmMGVlYjgwLi5hYzBiN2I3ODNlIDEwMDY0NA0KPj4+IC0tLSBhL3hlbi9hcmNoL2FybS9p
bmNsdWRlL2FzbS9naWMuaA0KPj4+ICsrKyBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9naWMu
aA0KPj4+IEBAIC0zMDYsNiArMzA2LDE1IEBAIGV4dGVybiB2b2lkIGdpY19kdW1wX3ZnaWNfaW5m
byhzdHJ1Y3QgdmNwdSAqdik7DQo+Pj4gwqAgLyogTnVtYmVyIG9mIGludGVycnVwdCBsaW5lcyAq
Lw0KPj4+IMKgIGV4dGVybiB1bnNpZ25lZCBpbnQgZ2ljX251bWJlcl9saW5lcyh2b2lkKTsNCj4+
PiArc3RhdGljIGlubGluZSBib29sIGdpY19pc192YWxpZF9pcnEodW5zaWduZWQgaW50IGlycSkN
Cj4+DQo+PiBXZSBuZWVkIHRvIGRvIHNvbWV0aGluZyBhYm91dCBuYW1pbmcsIGJlY2F1c2UgdGhp
cyBmdW5jdGlvbiBjb21wbGV0ZWx5DQo+PiBpZ25vcmVzIHByZXNlbmNlIG9mIExQSXMuIFdoYXQg
SSBtZWFuLCB0aGF0IGl0IHdpbGwgcmV0dXJuICJmYWxzZSIgZm9yDQo+PiBhbnkgTFBJLCB3aGls
ZSB5b3UgY2FuJ3QgYXJndWUgdGhhdCBMUEkgaXMgYSB2YWxpZCBpbnRlcnJ1cHQgOikNCj4+IEkg
dW5kZXJzdGFuZCB0aGF0IHRoaXMgaXMgZXhwZWN0ZWQgYmVoYXZpb3IgYnkgY3VycmVudCBjYWxs
ZXJzLCBidXQgdGhlDQo+PiBmdW5jdGlvbiBuYW1lIGlzIG1pc2xlYWRpbmcuDQo+Pg0KPj4gTmFt
ZSBsaWtlICJnaWNfaXNfdmFsaWRfbm9uX2xwaSgpIiBzZWVtcyB0byBtb3V0aGZ1bCwgYnV0IGl0
IGlzIHRoZSBiZXN0DQo+PiBJIGNhbiBjb21lIHVwIHdpdGguDQo+IA0KPiBBRkFJVSwgdGhlcmUg
aXMgbm8gaW50ZXJydXB0IGxpbmVzIGZvciBMUElzLiBTbyB3aGF0IGFib3V0IA0KPiBnaWNfaXNf
dmFsaWRfbGluZSgpPw0KDQpPaCwgdGhhbmsgeW91LiBJdCB3b3VsZCBiZSBtdWNoIGJldHRlciB0
byBuYW1lIHRoZSBmdW5jdGlvbiANCmdpY19pc192YWxpZF9saW5lKCksIHNvIEkgd2lsbCByZW5h
bWUgaXQgaW4gVjMuDQoNCj4+DQo+Pj4gK3sNCj4+PiArwqDCoMKgIHJldHVybiBpcnEgPCBnaWNf
bnVtYmVyX2xpbmVzKCk7DQo+Pj4gK30NCj4+PiArDQo+Pj4gK3N0YXRpYyBpbmxpbmUgYm9vbCBn
aWNfaXNfc2hhcmVkX2lycSh1bnNpZ25lZCBpbnQgaXJxKQ0KPj4+ICt7DQo+Pj4gK8KgwqDCoCBy
ZXR1cm4gKGlycSA+PSBOUl9MT0NBTF9JUlFTICYmIGdpY19pc192YWxpZF9pcnEoaXJxKSk7DQo+
Pg0KPj4gQWdhaW4sIGJlY2F1c2Ugb2YgbWlzbGVhZGluZyBuYW1lIG9mIGdpY19pc192YWxpZF9p
cnEoKSBpdCBtYXkgc2VlbSB0aGF0DQo+PiB0aGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuICJ0cnVl
IiBmb3IgTFBJcyBhcyB3ZWxsLi4uDQo+IA0KPiBFdmVuIGlmIHdlIHJlbmFtZSBnaWNfaXNfdmFs
aWRfaXJxKCksIHRoZSBmdW5jdGlvbiBuYW1lIHdvdWxkIGJlIA0KPiBtaXNsZWFkaW5nIGJlY2F1
c2UgTFBJcyBhcmUgc2hhcmVkLiBJIHRoaW5rIGl0IHdvdWxkIGJlIGJldHRlciBuYW1lZA0KPiBn
aWNfaXNfc3BpKC4uLik7DQo+IA0KPiBDaGVlcnMsDQo+IA0KDQpPa2F5LCBJIHdpbGwgcmVuYW1l
IGdpY19pc19zaGFyZWRfaXJxIHRvIGdpY19pc19zcGkgaW4gVjMuDQoNCkJlc3QgcmVnYXJkcywN
Ckxlb25pZA0KDQoNCg0K


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 07:47:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 07:47:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089630.1447136 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upMUr-0001FI-Jz; Fri, 22 Aug 2025 07:47:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089630.1447136; Fri, 22 Aug 2025 07:47: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 1upMUr-0001FB-HH; Fri, 22 Aug 2025 07:47:37 +0000
Received: by outflank-mailman (input) for mailman id 1089630;
 Fri, 22 Aug 2025 07:47:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Cd3U=3C=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1upMUq-0001F5-Kv
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 07:47:36 +0000
Received: from NAM04-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam04on2062b.outbound.protection.outlook.com
 [2a01:111:f403:2408::62b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 445786d5-7f2c-11f0-a32b-13f23c93f187;
 Fri, 22 Aug 2025 09:47:35 +0200 (CEST)
Received: from DS7P220CA0047.NAMP220.PROD.OUTLOOK.COM (2603:10b6:8:224::15) by
 CY8PR12MB8066.namprd12.prod.outlook.com (2603:10b6:930:70::5) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9052.16; Fri, 22 Aug 2025 07:47:32 +0000
Received: from DS1PEPF00017095.namprd03.prod.outlook.com
 (2603:10b6:8:224:cafe::f1) by DS7P220CA0047.outlook.office365.com
 (2603:10b6:8:224::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.17 via Frontend Transport; Fri,
 22 Aug 2025 07:47:31 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 DS1PEPF00017095.mail.protection.outlook.com (10.167.17.138) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Fri, 22 Aug 2025 07:47:31 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) 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; Fri, 22 Aug
 2025 02:47:31 -0500
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.10; Fri, 22 Aug
 2025 00:47:58 -0700
Received: from [10.252.147.171] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Fri, 22 Aug 2025 02:47: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>
X-Inumbo-ID: 445786d5-7f2c-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=RGKfeidWxaZJfXzX75eBtp+cIuEjfDr8Rfdd8633AfTfMTsYq6J4c4MaEa60XJuRDVi6IUsAABc0zf+oww5485xwbLD8WFNejMWxu/ftvFM7lxQkPGYhd1Qelk62XE0uzGli6JvPyzEOUVG8gigps9guH74H+Cx+h99iMfuGNTGN+VANcSfwwc/unPlfhK67cptmNUuCJo4BP2myTzVAf1LSnN4ytxE6v6oEv+qgIOvb38i2CZ8G1wAuL96P2NUScly8NUUKV3pWPJj3mRxDR8mPz+9kWInGZGXYZ2ppap1we+QIwm42mExV0wcILzudJxGxCvXTYmF+JQkz2rs4Fg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=aaGsodyd+rPnzhpCwn8BggOXWRB4D29uFUSSXKjobT8=;
 b=VwHksSdXudnHTeNJP18WGxCTOndWxcxglIukMPxtfrqblv/6iDQ2kbadOagphaXBr1i47to8a2SOTZ6/U1Ih9m4TzhMNzPheu7p3MXFNduBTzzbWQk0x6s0b2EX0vWJRVClRyb4HLG6eCBLjgQowdepXIxlZrZyDS3bjpNq772Vl6HFcUVnpCMT+o4y8xMRt6OY+uI79NwEtn/2ULSVMvIx2kQSNM4nN3/9B9P+6HxhG2Gw1DdaFun3/8/V+lUbOeqp/M/j4fabrYfc+Z40n/7Nzh3Gl0mV/xIWNic/7D8YQoFKASDn4hZtBgDaifz3bBSMo7/sh3IVGrMDBeND/hQ==
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=aaGsodyd+rPnzhpCwn8BggOXWRB4D29uFUSSXKjobT8=;
 b=A9Ab1MDRhmGeIF/Z1M18GiiaFwX5Jo8w41XSR3uRIEBa2+I/k5D7UR6OahSXcTtvOuo5LdMveT6bxuWEzI4zRu1uickHmDfgTiaTo/+CbypGJ7b/2MDrPQBIv2R+6y7ArqIRkJmtVGRuz/8wEE12skFLa+SI3hx8Dgmlk4iEBVI=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <7b0d40b6-667b-4bce-89b9-397a647b48f2@amd.com>
Date: Fri, 22 Aug 2025 09:47:29 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/5] arm/mpu: Implement ioremap_attr for MPU
To: Hari Limaye <hari.limaye@arm.com>, <xen-devel@lists.xenproject.org>
CC: <luca.fancellu@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: <cover.1753864612.git.hari.limaye@arm.com>
 <ad8cc76fb027efa52e0eb51f6ba7a918fad0ae52.1753864612.git.hari.limaye@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <ad8cc76fb027efa52e0eb51f6ba7a918fad0ae52.1753864612.git.hari.limaye@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS1PEPF00017095:EE_|CY8PR12MB8066:EE_
X-MS-Office365-Filtering-Correlation-Id: 12b8189a-0fff-4829-afb4-08dde150269c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|82310400026|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?V200TThRNWxuMVVQM01qLzhBRVdYbVhydWtYTmUrdVRDeCtaaktXVWdLdkd0?=
 =?utf-8?B?TUgvY0hLU3RYc3RlZk5GcWJHT3h5aVhLSzhWOS9vUTEvSGFpNS95V3RxTTJU?=
 =?utf-8?B?Y09uajRxeDUyVmhkREJQUGRpSWVZN2pYeTNxRzBFbGt2MTlNem4rSVFYaThP?=
 =?utf-8?B?VFhhZTVxOEpHV0N0VUJnSlhhOEQ1MHVjUjlzMXhza2VsQ0tjS2hOOHZwL0Rq?=
 =?utf-8?B?ZE5HakQ5RW5ldWNsTVFDamJkNEdaZGpDdmlRSnY3SDNMT1p2Y3JaUDJWdE5o?=
 =?utf-8?B?THlGaW4xak00L09uYzVLeDhUdVhLWlA3UERlcVptaXdVVUErLzUrSXk2UWla?=
 =?utf-8?B?am9Yelk2ME82d3RwdkZ3UmJtbzdvcnJIVmRxOG91UDdOR1RjQkxnQy9GRFFp?=
 =?utf-8?B?OXRUYzlzZ0xPcnY1d0VhNFBHeWJQdnlVbVVBc0xqSzVCRGZMcVo4SzBnRnlJ?=
 =?utf-8?B?Tk1iNjBQMENSK2VHc2RiaU9LMDVVd3NuUGZaVjBpNUgzODczcGZVQ25xekxK?=
 =?utf-8?B?aXp2eFUwb3d1UC93LytQdm9Fb3VHZ0RKdkpKU1UvM2ZodnVWSC9DRDduRTN6?=
 =?utf-8?B?OXpZSkRlY2p5ejNMbXJ6MXhONFYwS3NHcG1JdVVUMHlmdG1lNFhzT0M5cWRT?=
 =?utf-8?B?OFhYZ1QycTlQNUtKeGM1SEdUclh0UEV3U0tWcjg1bjlxQWFzekhRclhQdC9W?=
 =?utf-8?B?bUdlTkQ0dU1vMW9FYSsrUnFRZEpERThTODNDWDVpTUV3dy9BK01iaTVPWDYv?=
 =?utf-8?B?UVpTVGY3c1lZUzIyazdhM2oyL0xiL2swUEhiMWpmZHNjaG9vOEd6YzVSMjBp?=
 =?utf-8?B?N0RlZ1BvSEdJNWo2R0trQ0ZySldOanFyVEg2N0U0KzlaazBlak5iNFlaMlNJ?=
 =?utf-8?B?amg2MHNSRTQwL05OMnQxMGx0ZTFBNDhIZ2hlMVZuSzRlbVl5dEd1VUZvVHMz?=
 =?utf-8?B?V1o2ZGdjVGYxd1JLRHhoeVNyc01VR3FlU2pZNittSEh3TS91SVFwN05ZN3Jk?=
 =?utf-8?B?WCtMTjJhM0M2bUc3N3ptT3NTSmVlQnpJV0t3Qi82NTBFZHBab1pvMlpHN2Ey?=
 =?utf-8?B?amEvbFV3dlhPdFNhSjdoVTNzU0g1MUEwcFlnK1dDSGxpdVhFL3llUXcxSkk0?=
 =?utf-8?B?WnlBbWxSanVBbEhFZkpsK3lZRWJtY29lbi9KeDUyOGF5enlCVVBqNlZBZHdz?=
 =?utf-8?B?aUljWEk2OVFZeTlPSlJYdy9CaDhKVDAxMlBNKzhGZTdKeWxGdE5maWU4M1VN?=
 =?utf-8?B?THo4UTZNa1M3dXRUQ3hNYmw5eFBoNjc2Z2RsNFRNTHJRWUUyNXhZSEZZbTZL?=
 =?utf-8?B?VWxJNG5Ocjk1Mzl0dksxVjc1RldpN1FhMGxYdmRYdUtVMXU1MFJsWWlodTV5?=
 =?utf-8?B?R0dUZGFhdlF2cXFlRE82NWxJbkd2WEdxZU9hSWdHZndISzYvNUp6TG1UNndI?=
 =?utf-8?B?ZVIxZDBOSlFUQmdJTzlDQ256b2VEeSt5TzFaZWxxNGpNL2F3a1NidUcxeERO?=
 =?utf-8?B?TUFpM2pjTkEzdjdiemJGN3FoZlZhS2t1M1dKSEYwRk1BdWpIUVFuRDVNVzMx?=
 =?utf-8?B?c09sc1pDcnpWdkduUG53NnBVeUtNTnVtNXlxbHVWODBVdnpoazVyU2pkUWNt?=
 =?utf-8?B?NnhKNHJuQnFVbFB3MS9LMXlQT2gxdTFLaWFWWmdxR05RNTU3bVM4Um1nL3ZI?=
 =?utf-8?B?SnVrNlNJdHR1RWs5NjVIZWJwVnVDamRFbFZOeEJ4SVZZM1lRQThCZStuRlVF?=
 =?utf-8?B?a3FjZUN3R0pxNlROR1dnZTNRL0FxcHhjWi8zTlJxcjh5bTBLUkVtMDcvdDdV?=
 =?utf-8?B?WE1kendOeTZua2xKVi94UkhjQTFEZTNGbFc4eThPNVlVTVpzcFQvWXpLRU5C?=
 =?utf-8?B?VytBMmh1a3FhOTFHV1B4bHREYmM2ZXQ3ZitJVmIyYXBxY3pkcHJYbm50dnhV?=
 =?utf-8?B?ZTc4bGZ4MmtXQ29pWGxZdlhTVENXS2k1MFh6d01pRVFKdXlSMGtMRVl1cWRh?=
 =?utf-8?B?NXlNS2wvWWkzempsbmY2aTczMmZZcEptNGtpSzN5WW16aEIwaVBVd3h4VkY5?=
 =?utf-8?Q?j1wh8l?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(82310400026)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Aug 2025 07:47:31.7111
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 12b8189a-0fff-4829-afb4-08dde150269c
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS1PEPF00017095.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB8066



On 30/07/2025 10:45, Hari Limaye wrote:
> From: Luca Fancellu <luca.fancellu@arm.com>
> 
> Introduce helpers (un)map_mm_range() in order to allow the temporary
> mapping of a range of memory, and use these to implement the function
> `ioremap_attr` for MPU systems.
> 
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> Signed-off-by: Hari Limaye <hari.limaye@arm.com>
> ---
>  xen/arch/arm/include/asm/mpu/mm.h |  22 +++++
>  xen/arch/arm/mpu/mm.c             | 150 ++++++++++++++++++++++++++++--
>  2 files changed, 163 insertions(+), 9 deletions(-)
> 
> diff --git a/xen/arch/arm/include/asm/mpu/mm.h b/xen/arch/arm/include/asm/mpu/mm.h
> index 56ca411af4..177550f5bd 100644
> --- a/xen/arch/arm/include/asm/mpu/mm.h
> +++ b/xen/arch/arm/include/asm/mpu/mm.h
> @@ -106,6 +106,28 @@ int xen_mpumap_update(paddr_t base, paddr_t limit, unsigned int flags,
>   */
>  pr_t pr_of_addr(paddr_t base, paddr_t limit, unsigned int flags);
>  
> +/*
> + * Maps a temporary range of memory with attributes `flags`; if the range is
Why do you always mention 'temporary' in the context of these functions? What
prevents us from using them to map a region for a longer period of time?
Also, temporary range is a bit confusing term and should better be replaced with
'Maps temporarily a range of memory ...'

> + * already mapped with the same attributes, including an inclusive match, the
> + * existing mapping is returned. This API is intended for mappings that exist
What are the use cases you want to cover to try to map the same range with the
same attributes more than once (without unmapping in the meantime)?

> + * transiently for a short period between calls to this function and
> + * `unmap_mm_range`.
> + *
> + * @param start     Base address of the range to map (inclusive).
> + * @param end       Limit address of the range to map (exclusive).
> + * @param flags     Flags for the memory range to map.
> + * @return          Pointer to start of region on success, NULL on error.
> + */
> +void *map_mm_range(paddr_t start, paddr_t end, unsigned int flags);
So far, all the MPU related functions use [base, limit) instead of [start, end).
Do we see the benefit of diverging here?

~Michal




From xen-devel-bounces@lists.xenproject.org Fri Aug 22 07:50:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 07:50:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089645.1447146 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upMXk-0002i8-10; Fri, 22 Aug 2025 07:50:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089645.1447146; Fri, 22 Aug 2025 07:50: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 1upMXj-0002i1-US; Fri, 22 Aug 2025 07:50:35 +0000
Received: by outflank-mailman (input) for mailman id 1089645;
 Fri, 22 Aug 2025 07:50:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Cd3U=3C=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1upMXi-0002ht-BU
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 07:50:34 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on2062c.outbound.protection.outlook.com
 [2a01:111:f403:2417::62c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ae5fc460-7f2c-11f0-a32b-13f23c93f187;
 Fri, 22 Aug 2025 09:50:33 +0200 (CEST)
Received: from CH0PR04CA0115.namprd04.prod.outlook.com (2603:10b6:610:75::30)
 by SA1PR12MB5614.namprd12.prod.outlook.com (2603:10b6:806:228::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.16; Fri, 22 Aug
 2025 07:50:28 +0000
Received: from CH1PEPF0000AD75.namprd04.prod.outlook.com
 (2603:10b6:610:75:cafe::24) by CH0PR04CA0115.outlook.office365.com
 (2603:10b6:610:75::30) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.19 via Frontend Transport; Fri,
 22 Aug 2025 07:50:28 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH1PEPF0000AD75.mail.protection.outlook.com (10.167.244.54) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Fri, 22 Aug 2025 07:50:28 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) 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; Fri, 22 Aug
 2025 02:50:27 -0500
Received: from [10.252.147.171] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Fri, 22 Aug 2025 02:50:25 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ae5fc460-7f2c-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UPZZPSltBICy62F9+36ywCvnQKx29aIDZaoG92auvNYOdXFRmttXMWE3MyAAQnPjUt107CEF2IudA2XVg9qtUsqRm7l2nphhyp6fk6Exg1+A5oB+Oo37xeWaTrO048mg63SOg1T2eWoAWjoTjS62Cwaq4cH+gtGBzqfAsKmBmo1yNwyc8He3kv6e5rsbcuJU7FVo6d3iGAoDi52u9Cj8r/kPqqprcqTx9lZdldC6u32PrbUGZTsuxCxEwGIktAE2mZZuC0rYUjqHztX6iVzgtZq7eJI24049ABjRIB1lJ4wqkHAlg70d8gWTWLN9h3u6svlQPHzcLa/IrOyppN9Azg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=YcSlBYGaeo1+EAeQK6fGxxF/HO2wobmy7Ikal3h2dgk=;
 b=LR+XyP40Wi5EUW/CbHRAK641EnOLUSpdX0NmGXtggdqAkpmcZCvAZixxwg3h8R+mPZQ6E2OOKI4BVFu3alr/3z8yOYdkshm+pYjTV20EC5dX9XuIwb1rXnFJDOs6NKtRP/lAgKM/x4ncDCnYPTzvc3o2twLOklZoHDY4mhgGh2umSyi5p0k7sHVw7Wph/CRmc/kKZMwlPOQ2N24AVvnyNorbMxDHIRJCUbwiesyXrhmqW9Uq2OHfBz3Ss5VVNs8oIvO8Nxu7I4oALa4qRBWoN9YbcViyBf1Tmk4cSmfjHm1DHyYov1w3Apqq0TStAyEqgIvNX4wta5isgm51BTR4GQ==
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=YcSlBYGaeo1+EAeQK6fGxxF/HO2wobmy7Ikal3h2dgk=;
 b=wvA3r3bAzG8lKMGFtKN8dxQQlAXsrIQ3f0WVqkRPIYNW9+9anoVdybO5M6Tk3yrKjwWWsVB/XoEor3XhN67wVDI8jSPUt/xgCJekXFMsvTQIS00WUbHifEAqu27hG1ROUOWVT/yhTpmTxYaLkn9rpxQ39j79VHbt5QcZ0yFUAVg=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <b12b9c9c-069c-4c45-adc6-5b7026f812f7@amd.com>
Date: Fri, 22 Aug 2025 09:50:24 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 5/5] xen/arm: map static memory on demand
To: Hari Limaye <hari.limaye@arm.com>, <xen-devel@lists.xenproject.org>
CC: <luca.fancellu@arm.com>, Penny Zheng <Penny.Zheng@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>, Wei Chen
	<wei.chen@arm.com>
References: <cover.1753864612.git.hari.limaye@arm.com>
 <c85ac9d6da3c13dabd26627faac90ea95feb3f95.1753864612.git.hari.limaye@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <c85ac9d6da3c13dabd26627faac90ea95feb3f95.1753864612.git.hari.limaye@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: CH1PEPF0000AD75:EE_|SA1PR12MB5614:EE_
X-MS-Office365-Filtering-Correlation-Id: bb452a54-8911-42e2-1bdc-08dde1508fb4
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|36860700013|7416014|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?eU9lZk9oNlJwQVVCR3huSDJMcXE4akNjcUQ5Tk1LNG9lajF1ZVIwUGk0cjhi?=
 =?utf-8?B?R25vZmU2S2J0V0xlVUZ1djBFc3VvMzNMaUxrdHdXTjVBc0orQm9Hazc4UzVX?=
 =?utf-8?B?M2tZd1RENXFPcDU0NVBVTEx6d3BONnloek8rZ29ocG1iMkZKOUY4Z3RobjJk?=
 =?utf-8?B?czd0QjFua0ZocGh3cytndkl5OXBxYWlkb1UzN3lPRkh4V1E3U2JHZm04OHZs?=
 =?utf-8?B?VzN6bGhESHRId0tvZ2xuZVNyS2pwWXF1V2xXd0JXUTd6TnF0Qzd3dGYrVERO?=
 =?utf-8?B?MU9LSUtXMVhRdkhBbm9SejQrOHYraXB3OFJUWWx1L3JrMU1WeVlXUlM0clNi?=
 =?utf-8?B?bTJtNVdNRHpNQmw2U01BZ214MWpSNDBuQSt5WGcwVlBGTGRYNXNHcmpORFp3?=
 =?utf-8?B?UVRQSjJaRjJKVG8xa3B4SENYQzBDbDVvU2RzVmhvWENkU1NPa1IvRVdGSU50?=
 =?utf-8?B?eGFHcHR5a2x3VXJvTyttOWl3bkVMdi9KUzN6VTlxVHBRcWdHcVV1Q2YwOS9T?=
 =?utf-8?B?RFZBMm5uK2dMYjg4bFZibnZNYXNGZlFuMlhKNHQ1OVRBUjZmb2NTYXI5ZERM?=
 =?utf-8?B?Z0ZyVWR3MUZVcWowUVJFL1RycjU0M2xTcVBhZnNlUVlSTW9UcjNyVFpCeEhS?=
 =?utf-8?B?Ym5USWlwMU5tRGxvVEprdEdUem5VVVB5cHpBR2FOOGFOVnd0VHNoTVpUNHla?=
 =?utf-8?B?Yzl6Ykk5YTI0YWpCeS9XUEMvVWEyeXZPQzErZERZbHZMZTBLaFdnb3FrMVht?=
 =?utf-8?B?blNMaFAzKytuQ1FTR2RTNzBUazJQdE5XbkJNVWhsTWtXM3pFMHBqb2p6NlZC?=
 =?utf-8?B?YndlQlM0QWpiQzNVQy9reVJGb0oxQTRrNGZSVzlpbjNsdktqL2RDUWNIdy91?=
 =?utf-8?B?YURWUHFJcTlYL2tSaUxRajNlTk1DRUpXUzZjNEhBUXdBN25DTmxHbWhLYVhs?=
 =?utf-8?B?emhHb0h0Vk0yRTZyVkVnRGpkSUpsS3dWNi9vT0NGb1FYQzhXMTZHTmUzMkcr?=
 =?utf-8?B?REhhS0IyUy91OHVhb0pvNGtxMjlzKzR3SnN3SExCR2Vwc0gxL0dEeWVJUXdK?=
 =?utf-8?B?NjkxQXF6MWxxWFU2WUJWcGZzRXhIbTI2d3pkK0lYYWlyNmNEZlFucE5CZjZI?=
 =?utf-8?B?NlovQUtqTFBaR01haDhxZUt4cmZDclRYM3lFQVRCVmZ3SVYyRkZaQlpZdnFP?=
 =?utf-8?B?YnAraDltTlVYY2pldDIrMXR4QTRWeUV0UmVMTDVMbFlBYitZa0YvOG1Vbjh1?=
 =?utf-8?B?RXZVSWFqdGFieXpIZUpSbnFBRStZQWxUa0x0cXZDeEo5MmRWc2RLUEl6dG12?=
 =?utf-8?B?Qm5KQW1XaU1uZ1ZvZThjdzA0QlVEdE1mQzRYejdZdWZweTA3SUQzbndHT05B?=
 =?utf-8?B?bVRTVXRmU2JrTlZCYzNKU2ZxQkxjWVV4Ylo2TlVkbURWc3RJcTI3cmVPNnZG?=
 =?utf-8?B?V3VxM0R4WTZjK1NjelNkMkMrR08rTkxvWEYxNDdJQ2pkZTFZSmVVeXcydHho?=
 =?utf-8?B?QjIwNXRHVXk5N3RpSkcwUnNTY0lXcjdkOUJGcjY4ZEw2RUJnbWs5MC90QWJo?=
 =?utf-8?B?VW9oa3JTVGJ2MVRoKzV5aUFVemZsVXNqMHBMNWxMVEc0SXZIY2ROU3o1akpZ?=
 =?utf-8?B?cFQ5ejdtRUVvSU1Qbzl6SVM2bCtENEpkUVJMcDZNYjVxTW9RbTN2QkloT3BS?=
 =?utf-8?B?azBjQVZaekhyNG8rTUtBV1JzU3ZQbU9IZlhMSlJJdUVLV3VDMzVUaklYcnhm?=
 =?utf-8?B?eGtVMGxaRjA3QXo0RERlL3ovTWQ2MUxDaVpmZ2JPS24venkvYnlMc3Z1bjhU?=
 =?utf-8?B?ek9JTDA2THhkc0s3UEpyemwxNStLZDFFTWFpOEZVRjY4L2JRZVQyS09ZVEww?=
 =?utf-8?B?SER1YW1YOWMxRjI1bnk0cWEwOUlKRnZYYXRXYkZCTW1BSHBqdExDekc5ak8z?=
 =?utf-8?B?S1RFZk54L2paMjQ3cDR6ajBRai9JRkRjcklTVzFNZEhNUTRyeHAzZWNZTXU4?=
 =?utf-8?B?cjFyY2orRHNSem9tV3E2b3dKWEJEM05QemdyWloxcmdUay84bDVtL2ZRcFVz?=
 =?utf-8?Q?841dR9?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700013)(7416014)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Aug 2025 07:50:28.0513
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: bb452a54-8911-42e2-1bdc-08dde1508fb4
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH1PEPF0000AD75.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB5614



On 30/07/2025 10:45, Hari Limaye wrote:
> From: Penny Zheng <Penny.Zheng@arm.com>
> 
> In the function `init_staticmem_pages` we need to have mapped static
> memory banks for initialization. Unlike on an MMU system, we cannot map
> the entire RAM on an MPU system as we have a limited number of MPU
> memory regions. To solve this, transiently map the static memory banks
> for initialization.
How does this correspond to Arm32 MPU (R52), where all of the RAM will be
covered? I don't think 'transient' mappings will be needed there but all of your
work targets common (i.e. not only Arm64) MPU code.

~Michal



From xen-devel-bounces@lists.xenproject.org Fri Aug 22 07:52:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 07:52:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089654.1447157 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upMZY-0003Pr-Bj; Fri, 22 Aug 2025 07:52:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089654.1447157; Fri, 22 Aug 2025 07:52: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 1upMZY-0003Pk-8j; Fri, 22 Aug 2025 07:52:28 +0000
Received: by outflank-mailman (input) for mailman id 1089654;
 Fri, 22 Aug 2025 07:52:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Cd3U=3C=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1upMZX-0003Pc-By
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 07:52:27 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20619.outbound.protection.outlook.com
 [2a01:111:f403:2416::619])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f02c0677-7f2c-11f0-b898-0df219b8e170;
 Fri, 22 Aug 2025 09:52:25 +0200 (CEST)
Received: from CH2PR07CA0054.namprd07.prod.outlook.com (2603:10b6:610:5b::28)
 by PH7PR12MB5902.namprd12.prod.outlook.com (2603:10b6:510:1d6::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Fri, 22 Aug
 2025 07:52:17 +0000
Received: from CH1PEPF0000AD77.namprd04.prod.outlook.com
 (2603:10b6:610:5b:cafe::2f) by CH2PR07CA0054.outlook.office365.com
 (2603:10b6:610:5b::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.16 via Frontend Transport; Fri,
 22 Aug 2025 07:52:17 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH1PEPF0000AD77.mail.protection.outlook.com (10.167.244.55) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Fri, 22 Aug 2025 07:52:17 +0000
Received: from satlexmb10.amd.com (10.181.42.219) 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; Fri, 22 Aug
 2025 02:52:17 -0500
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.10; Fri, 22 Aug
 2025 00:52:44 -0700
Received: from [10.252.147.171] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Fri, 22 Aug 2025 02:52: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>
X-Inumbo-ID: f02c0677-7f2c-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=g9xJ5aQEoey/QxBSPiGcK2NxKUDI5o+WGbDATl9SPRT7dpP7znTVohlvHNNxN+nR7eKeYtBIFK4CpI/JcHjaGZplkrklKA23tYO+lJtblrYXjU/Qint9lI2SJ6kl5gqQBDoytzFa46wgLDIWEwaQvps3YxxnirGLXW4ZeM+X+7CkJO2GtcDFXTdbC3NqKb0dI8Mwer5Bz00X+lMYgp1idbK78ok8wTE0SZpnQ2s/Hwse5kXoLUcDSX2MkLELMQdszyCVvw1w3+TRzrt9gcH65JDkkqFi5hG/qP6fnTPy4BJQlX0nfB12RfV+FuIMJdgTOKLlqBip7Btkcj6MxLS4eQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4dyz+2dJLLEK7VT/rka9F6BTDMzAyogpVUj2I7btkww=;
 b=sRKdK/lu+ZCMsjWnIecY2G4umTCj9tbp5mXYnjrWPRjiRN+c0RTWb7D1TSWzqN8veoNfYii1H/QAZ25s4gsCW643G7fLyByUbqjnF1oP+5/tNNq7vcc/3pJ2lW6dYHYUhAGVyhl3bOHiuX2ninxpNydHjirmMNcnT+KFf6aGpIm4bNqo1ms94dkGk4kMXNw7BFP1Rqa28imn/MSHTit//op9Y9KOt0SHtRKVyPPJrvCqXBFSEx044pw4hKhRe55QO2iUk9sNpa+c579b8QnjhJDNolpvCFQ8GDnF0NrJWCeTA0ka2OCe6Umfbx7y6Y2y9l9g0Zy7MBcTbgAPKPyZMw==
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=4dyz+2dJLLEK7VT/rka9F6BTDMzAyogpVUj2I7btkww=;
 b=SRWEbqBwH5YPszTBzq+Gg4XzwRXwVtNUgBf60aTvr367VJKZn2ym+lYqaAXsVT54kkj78hZmYnoBhp2176x+bY4tp9z/1m0feDqxvn5xbjvk/gNpOdsJGrpMDXDvkUzB6qxSbJDBRpuuIBS50ppXS5l89+BGwaSOAInOPIp3DX8=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <fecda1a7-5a10-41fe-9722-b83b3c66f61e@amd.com>
Date: Fri, 22 Aug 2025 09:52:14 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/dom0less: Clear xenstore page
To: Jason Andryuk <jason.andryuk@amd.com>, <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>
References: <20250820211242.116868-1-jason.andryuk@amd.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20250820211242.116868-1-jason.andryuk@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH1PEPF0000AD77:EE_|PH7PR12MB5902:EE_
X-MS-Office365-Filtering-Correlation-Id: dd882d76-f773-44be-d88c-08dde150d0d1
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|36860700013|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?YlUwL1FSVHU4QkNrNEtrU1Y1TFRoUU9hc3Q1cExtQ2JJZGVlS3RTc3I2aWFH?=
 =?utf-8?B?L1FvbnF2RzBRc01sRGtIR0o3U3B3QnBOa0kvSkYzQzdlWkFhdWFyRmM3bnFT?=
 =?utf-8?B?eTJxbUlGMHgvQ1RjK2YrVHloVVk4ZDdqTE5MZXBSclkwdndCbnZEbHlXejMy?=
 =?utf-8?B?Mit4TnI5NjZObHVTbUc2d3crNDh4RStZQTdxU0dMU0p2b0x6NzZ4RmkyanFU?=
 =?utf-8?B?WE9zVXlQQVJDS3lKUkJrSjBuZU5RSjZIaU5LS2I3OC90Z3BlRHBVaXB5ZXNz?=
 =?utf-8?B?aGZyQlFIUEFjdFEvaStSTEVZTFVQMG0raWZEaHR2UVJ4cHRHdG5ESFZKam5j?=
 =?utf-8?B?R0hQQVFCZHpIcWlMV0h5V0V4RGpySkNIWHh0UUh3ZklvMmpZbXJSL0JTUnlD?=
 =?utf-8?B?NFdYWU5IenJPNFhNQWllY1U2Y1hYZ2JnL2t4Zy8wcGhtZ29ZMWZPYitpV0lE?=
 =?utf-8?B?bnVCZ0l6WlBobzMyZFY1em9QeUVyZEhITGlBVVpRQmlWbDZkNmg3NUgwTEIy?=
 =?utf-8?B?V1kxMDM1TUtFTkszOUxDeDZtT1pZYlNMdmdWSlJPa2MwZStJT3czQy9RdmMx?=
 =?utf-8?B?bXFySWxJUEpLakZMMlVGRkQ0R0wwVnJ5NG93bmFXdGZzeGloV2t4a2U1V1NO?=
 =?utf-8?B?NUoxakEvS21ZamlSdS9YbExFVkh5bkVpM0d0R0JGcWNSVGJMNFlXbTV1UUw2?=
 =?utf-8?B?RWlBbG1aYnNGUkFkVkpGRmJ4YlhEa2QxbmpnQ0lRSWNTbW9wZ0kvZ2ZWODg1?=
 =?utf-8?B?ZFIyQUJlclE2eFZJMkxaZkMybi9aZUJWSTFUQVJtTzdMYmpXbzNoVEplbGZh?=
 =?utf-8?B?RC95N1ZTZjJadUUzemRwQnVGV1pVWnNVYjRKQ09MdzNEdmo2L1dNdjJZKy9w?=
 =?utf-8?B?VkR2dmpBbDg1ZHQ5ekFJaVd5Uy9hQ2RKZXpEZWRFT1F6R1JuNXErV2RhSkhO?=
 =?utf-8?B?UEpLZTZhcUI5NDM2Sk1ZNlA5VlY3Q0NmM1N5bXIzVzZZOVZDQVVvZ3VOT3h3?=
 =?utf-8?B?eTZNQ3dLd2RKelBJNGprc2JKa3hZSk1OWEcvUzcvbWFPanEzZE1DVzRIQkt3?=
 =?utf-8?B?bzJERmVycXFNbTExL0Vqd3I5M3g5NE1YU042SC9UWVBxUHhvN1JvcXV0M3kv?=
 =?utf-8?B?Q1MxQmNBUVpoSHF2WXhzKzgyajlIdEtpbkNQbEdyTVVaa1F4RWx6bzUvSmI5?=
 =?utf-8?B?QXVrOUl2bXVWUnFxNnJoZ1AwNjdHWHlLQk54OWpaVVRNbjlYeEwzc012WUdq?=
 =?utf-8?B?Z0JlNlQ4V2NGSnlRSmhqYk5LNURWTlpOa2NhK3ZIY1A1V25tSUVXT1BRVG1O?=
 =?utf-8?B?blVyemt4OEVqdEdVY3ZpaElkTG9FTnNqWWR6M1NsK3VjQU9GZlFaZVhPQmx6?=
 =?utf-8?B?YU5PS1ExQ2o4R0gyREgzOG85djN0ZlNWaVlIR1pxc3EzMHl0M2F1M3BCMW5k?=
 =?utf-8?B?dUVScUh5TTlIQVd3bzFLMzZtRzFpcmloUDBpY0E3b0hxOUpGRkJpZWR3N2Mz?=
 =?utf-8?B?N0lOVkYxeThxOXNrNU5adFVTOXdCRkRPeExsa0I3c1BwRHc4SThPOGE4Y3R2?=
 =?utf-8?B?a3JyamdQYjRwbGJxN2FXMkY2Vit6bnRjKzZxZFZQVUVhOHdhdnJ4U0hDWm5G?=
 =?utf-8?B?cHIybm0vazhOMEhEbGRIUHByRmt0SDNkZHJLWEJlQVdOQnFkYUxtUWRjT1lL?=
 =?utf-8?B?QXIzV2lHbU9raTAyNFhZQzJpZWw4Uk16Z1dxZGZFOEhDSE1SdkdIVGpQeVk4?=
 =?utf-8?B?bGRnRzcxbzNWS0k1UmpnbGduc2p0SE5zV3Myekw2dmpqaUc4WUFLUjR4Rzcy?=
 =?utf-8?B?TUs4L2xpZElKSlBpdEJXSndQN2JQM0RRMnVCSkowdXRRblltdm5NYk40ZmJX?=
 =?utf-8?B?T2tVZWRzTEVXaGwrcFdVN1NtZU5Ob292OFJFUUJRbjdGSWMwZm5kbUMyM2ZV?=
 =?utf-8?B?RTlKclNpcXJkRU8yMUpLeEpJR05pUjVPbXMyNlBOb3VnZCtTZG96OHdKaDhB?=
 =?utf-8?B?cEdFQlAvcWlIcm15L2FPa2xvS2sxT0Yrc29ZTlRickVIRndnYnI0VGo1V0lN?=
 =?utf-8?Q?p7bQrP?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Aug 2025 07:52:17.2965
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: dd882d76-f773-44be-d88c-08dde150d0d1
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH1PEPF0000AD77.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB5902



On 20/08/2025 23:12, Jason Andryuk wrote:
> C Xenstored was seen failing to map a domU's event channel.  Enhancing
> Xen's error messages shows:
> common/event_channel.c:427:d0v0 EVTCHNOP failure: d1, port 3267543746 error -22
> 
> Port 3267543746 is 0xc2c2c2c2 - SCRUB_PATTERN.
> 
> Xenstore expects a non-zero evtchn_port to be valid.  Explicitly zero
> the page to avoid this.
> 
> Fixes: f78895ad78c9 ("tools/xenstored: Read event channel from xenstored page")
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Acked-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Fri Aug 22 07:55:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 07:55:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089666.1447166 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upMcC-00040W-QW; Fri, 22 Aug 2025 07:55:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089666.1447166; Fri, 22 Aug 2025 07:55:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upMcC-00040P-Nu; Fri, 22 Aug 2025 07:55:12 +0000
Received: by outflank-mailman (input) for mailman id 1089666;
 Fri, 22 Aug 2025 07:55:11 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1jNg=3C=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1upMcB-00040I-9J
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 07:55:11 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 538e3a6c-7f2d-11f0-a32b-13f23c93f187;
 Fri, 22 Aug 2025 09:55:10 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by VI1PR03MB6383.eurprd03.prod.outlook.com (2603:10a6:800:197::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.19; Fri, 22 Aug
 2025 07:55:08 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Fri, 22 Aug 2025
 07:55: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>
X-Inumbo-ID: 538e3a6c-7f2d-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yQ6GbQzTM6+MpcQ78cMwH8szAVinW4sfhhYh71ZV4bQurr5SU8c4wjzoq6CfPqy7RsKvjU1RBIWa7gN9Z8wS53+J0TeYyQvGUqeqer6993HSS6LslHG/g2zoGKcByeXDulRqgsRj6A5s/v0YlyLA8ruv+jpSKm/o+ntpEU/0Blh2HpfJQOyRLykv+JSAEy/OsYkrx6UXITXDkAaRQZ9Kg+16dvJLkux44YV6K2U8n+i7hh0kg+XG99kwT3Ae+8VsjmfTEDJS9cpOf53FRlceoTtqPT4DXxNaz/HyHlM2lVmrp5Tik0pa25u8DGmWwqQuFw+YGjNgY351+JpMqs3TKg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=bfPfKE1Do8QEcjNohC4uY7VDSFVY3mXWjU1bt1Ku0P4=;
 b=v5IjjvrovVFLSDa236gOazo6NiDpLZ2GC6okFLt+3e+K7K1DXEKRGDfEeOfFHsmLLaIFBhd4YZBNSTaeohpvNqypx9PijkUV6lzPYp/n3oGgMqYj249uk+2YdgJnh181H01vkFo9TGFYUVXrt4a/DUzDhdzTurmyhdgOR/r5px/ivO7ew3XSsL3dLl0ziTVz2lN+SB6FSAYtqrC8/QLxLHLqXLqIG9pilJr3wcjcbcHUYAR4VxXjflRLHPtOMjZTia8xLNNCRpHHzNTxZJE0adRA3P/p3sZZ8/lM7cFNuqoIK09OeTitCiCzSCODyGRtOGR8xYSD3Xt57GE+Pe4JQg==
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=bfPfKE1Do8QEcjNohC4uY7VDSFVY3mXWjU1bt1Ku0P4=;
 b=nUk90AkJRgv8piWlWAH5Jx8h4en8l1INJWLmlVu4c8aeoF4VMXMkksO1sr2BFbTOUN4EizjkD9ehu0aVNHutxah2OhhZ95iQKWkxYHclyVKpPvgf52CAeE6PY5XhtE1qkjKTRgZcz/mMFFn9biPYPRBvugnkpAJehsoKEoA4AralFpAsodn9JkA81bWc5efQt7ZDFzy+7BNIQXWZFJX9GpgW0YX94wH3pJtCgBb3TuHbgMXbXJVvMwIxAgnL2HFzmNLaeSQf1pQf7l4w4NnFCg52WXYS/4CE9NfWYF2UijFPAslyRLVQXu3kLG6zPVrA0IoCAihbKIzYbTHTS4i6CA==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v2 03/10] xen/arm: vgic: implement helper functions for
 virq checks
Thread-Topic: [PATCH v2 03/10] xen/arm: vgic: implement helper functions for
 virq checks
Thread-Index: AQHcB5d76MRh/Swq2EGu624C+G/Fb7RuZPeA
Date: Fri, 22 Aug 2025 07:55:07 +0000
Message-ID: <7360fa14-2c55-4aa8-bbba-e355a47d2928@epam.com>
References:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
 <f029f88411e816846d13aaf33d4ef703f95d1bb8.1754568795.git.leonid_komarianskyi@epam.com>
 <87y0rcekyo.fsf@epam.com>
In-Reply-To: <87y0rcekyo.fsf@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: GV2PR03MB8678:EE_|VI1PR03MB6383:EE_
x-ms-office365-filtering-correlation-id: e8667e52-a779-4f3e-466f-08dde1513676
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?SkJaejRvSEw3M2JEaDdadDNnQ1RRRjZVS1o2VmY5Nk9lREd6Y2VJWjRnYjVz?=
 =?utf-8?B?STcxNjIycjludHZrTkFNVjN4YlNhdTV5M3FKVkxSM3VPOXBpRnpSSzlIajdy?=
 =?utf-8?B?MWVOUU1rQ3VDWDZTdUdjcnlrVHhoNXJNcXlvK3hScmNDa2tJdnE2aWJtU2Vx?=
 =?utf-8?B?YjNQZFhST0RodEk4VG9aUDJROHdCTGFVakFCTVdZM1ZjZ1Y2djFUVnIyejZk?=
 =?utf-8?B?bjBYbnZyWEFzMUo3d0kyYkhLRUMyN1Q2U2IyeWVYU2x5YnNObm9qYkhEeGRW?=
 =?utf-8?B?OEEzM3g3VFd5N1JWLytwVmxXRlVtQlFnNEtLa08xUDlvY0pXa3hBNnQ5VGlK?=
 =?utf-8?B?T2xQRnZtNVU3Ry83SDh3cDAzY0NoSGh5S0k5eGNLek1xSDdHYmhnaHFxWWY4?=
 =?utf-8?B?amMrTzU0QlI0eXhDa2c4aFBuQWFxblBtcmtNZEtoNU1STG1ldkZqK0JqMytP?=
 =?utf-8?B?TVNmMVFjT0c4U2NGYm1ZdFhjaGMyZ2o0Rk55bFQxQTZTNDY2RUExMGRha2xh?=
 =?utf-8?B?SmsxSzBkbGpWMDFheHpzeVZjdTc4cTRhL0xYNXAvZi9pZmRudk9ZWXlHNUpL?=
 =?utf-8?B?ZGdXZkQzdTZHaytKN3BhQXhOTytZVHZROG9DTm5WYmxFbVhoTW9XK0VCbTFP?=
 =?utf-8?B?Ri83TTBmWGRIc291UzNVK2R3N1VSd0ZPT0JBTHVBd0R5MlJMR2E0WTdhMnRM?=
 =?utf-8?B?MWJQaHQrWlBrQkppT09nc0NrRnBqUG1aNzFWZFRML3BFYVcvclBMaWlBdlhz?=
 =?utf-8?B?UU5HZWNiNHZSaEVDbnJmQTVtQjZRbEdnTUU2Vm9ZUWpRMXhJTjdZYjVWZWlP?=
 =?utf-8?B?WWtXc2tHWUZkSTdMRnl1bG9LcVNQVWlJUjZUYjRBTEQrMUNWMTdINjROSURX?=
 =?utf-8?B?dGxXUGxQeHlUU1praW1qTUtwcEl4eTdFdXVGUW9ONldjU3NGTlloQ0p5WThi?=
 =?utf-8?B?clFYOUVDQTlWbHIwRHFtdnAxU25qdHpqTEJjWWVlOVJuT3JrNFZZSC9ITWhY?=
 =?utf-8?B?eFh6Q2FVeXRzODR0Z3RDKzNSQVlkZWcrNkFha1g3OGJsSjhMNTVlU2FNdlV1?=
 =?utf-8?B?cS9abTgyOVFPazNTbnNzRFZGUlB1c0liNTUxRU1EaDZEbjRXeThSTFB1M1Rk?=
 =?utf-8?B?RnFhUW9HNHA4Qnl1TXNkd0NwMzI4VmdQM3FKQkVsY1FNNDZuZG5Oa3F0Ymxq?=
 =?utf-8?B?bXhlaHV4WmdRM2UxbVM5dWtHTjUxbVZLRzRjR3BWVVR6WVBaQ2YvWDZ5U0tQ?=
 =?utf-8?B?N211YlBhTnErSEVSV3NLS3gzc0UxM3VxS3doVkNlcGFsengwamg0cUFiMlE3?=
 =?utf-8?B?VDI5NGptMlZGb2hHQU52OHhlZHI2dWEzQytIeFo5T1h5VlZzNUhncXJaNG5C?=
 =?utf-8?B?TlJCaFNES21JUzJTRmdZVnljSzl1SENKbFBDcStpVUpXcTNkM0J4WjBTSCsr?=
 =?utf-8?B?UHJUMC9MMG4wOVUxN2Z3bTMrOXl4MmpUc0ZVczhuTEdDOGZiZTA4VVJwRVV3?=
 =?utf-8?B?MllLSzJ0eUFCa3FaREtzUkhkVmh2MkNsVG9tVU9ZbHIwNEQ0SUNwTjdUcEpE?=
 =?utf-8?B?a0kwcjBWalhWMmY2d3FLRzhWNkVlM2lBYk00L1VzQ0RmajQ3d2ZRSFdkWHJl?=
 =?utf-8?B?Z09YcGJHc1VOOTRCR3VPVllzeHllOGhIdW4wZlF0QU5mL1p6bFEzWXVrS2Mz?=
 =?utf-8?B?NUZiaE15NTVmQTJLMFBEanNUazV6U0RydGswd1BnUHh0MU5Eb1JhekZ5Z2Uw?=
 =?utf-8?B?VUZ3R0lia24vWXgyc3VXbTZ5SFpvRVFkYmlzcVhFb0haVEpwSVNGRGlBSW0y?=
 =?utf-8?B?NjhHcXpBMmlZQ0o1RHlhZXpiOWZBd09VSG41R2h1RGUyMFcvU1IweGhXTnN5?=
 =?utf-8?B?R3dDejJlaWh1MXFoQ3JsaEVWcDh3bXYzMXp4bTUwcnlqUFBraElYRnFKS3E3?=
 =?utf-8?B?NmphVnNkU2NQdkpDaS8rdkp0OUZ4WWpXVXNKQmd0QnRYcG9Vbm9jK0UrTzFV?=
 =?utf-8?B?TmZIczBuSllRPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?d29lanBGOENCN1BhQVdwTmJKQWU0QW5oVStYM2gwMzcvSHVQYWVybU40bWtq?=
 =?utf-8?B?WmNvUFpOMXpveUlrT2YwWU4zMG5PR1FPaW0yT2Q2cWxSdlk4ajl4YlNyUWJZ?=
 =?utf-8?B?SG8wc1FCaUlqVmJSUGo0Vk9yRmtBcWNGWk1oR2t2MUxtUks5aUtTNGdFeXpE?=
 =?utf-8?B?SHpHY3FqME5hRzR4OUNzcmJyWkpQZzlFQzJWb2NDeTlFNmtaaVBvRGlpUVJk?=
 =?utf-8?B?RGcyYzR3T1pTTHdCdTh4WkNWakZXQlJENXArQUVzOUlRT0pMQ25hYjdlazNj?=
 =?utf-8?B?WkthMjJlT2lGZ0NXS1FEeURUTzlyR0ZGaUVUdTlWbXd5dDNvNGlOcFNHbkNW?=
 =?utf-8?B?Z2lQaFRCejJWQnFtejE1VkNlUDY1K0Y0bGhta0FoVzR6RmJJOTI2eUt5bXdZ?=
 =?utf-8?B?cW1lTWdUTVNpRGtXNWpEdFJrM21mbzY2akpveWw0M1IzQWRQVVdPeGQzdmds?=
 =?utf-8?B?LzN2SmZocXNubWlFV3lrOTZPa0Y4dVZhVnNxV0FNUjhwMjVxYnoxNUxveE5p?=
 =?utf-8?B?WUsyUmpVWVJMdUFWSTBOeWNWT2srcmpyM0drbExhYWNpeUxhNUxHMGxkUGNW?=
 =?utf-8?B?ZXhDdzhXTUZrQWlnV0U0OG9XdTkwb2ZSRXhPazVnaFM1bXREU1lNY3I2U1Bk?=
 =?utf-8?B?TlJRQi9paWR1ZzZmNWtDMWZHVlFPRWhMU0cza29JUU9FYkczOVVZZ3hXUWV0?=
 =?utf-8?B?VmovckI3eGRpSzc3bHQ4MjNDQ1ZDSmp2N1h5bU5FNWNzT1I2c1g2aE9iTnE3?=
 =?utf-8?B?S09ERE9DUW1ScldNSTlBUjJoMnNvbXQxUS8wRWxmTERwck5LT2p5Z2dncDZ2?=
 =?utf-8?B?VlAwMVlxWkFoNE8vOFE3M1JzZVBPWWpXQlp1WU9HWXpaMXRUcXZPU3ZUZmhJ?=
 =?utf-8?B?ZGJGK1RoWFMwK2xiSGZiTWxUcHp0bHVJRGhIQk5WMitDN092YzV4T3BIcHcx?=
 =?utf-8?B?WWhNeDVBWG9xaFhIV3FZV0JJaDdmLzRmMlNuNEJraEQzazZXYnUxUThEbEo5?=
 =?utf-8?B?Z2VTWS85ZjUzRjBqSDl6NzBnVXN0QVcwa2pPdTRBLzNpTUhkQnQ2c3JFbHN0?=
 =?utf-8?B?Zkh5a2FjbDBBY3RsbVZVb0xqajV5Vm5Ybmtxd0hLZ1NFYzNjbEFOV25GZ0dC?=
 =?utf-8?B?QTBWZ1RkOUdPZ01oVExJZ0UwRWRYWmg0V0JnRVZsU0VNVmxHNWNMM3B5NWtu?=
 =?utf-8?B?ME1FaGRiNEgvR1lpVXNMYUdLazhqUG5KNElwQzUzTS9VZ3lBUUQ0OFB4cXpO?=
 =?utf-8?B?cGh5blBzVkVRcW5VazVEVmI1WGZBbWpYR2FKUi9Bd25MaDh5akZPM25aR29C?=
 =?utf-8?B?L3Q3ckpKVjMza3VSN2JyQ0FqNTNyWmVkUXplanRMSW1kNDBQODhzSUV4aUlI?=
 =?utf-8?B?eUtqMTN4ZjNiaFVYU1RLeHllK1RlTlRUYXA0RUhUcFM0OEQ3RXV3ZG9YcldN?=
 =?utf-8?B?NmhFdERtQkdaYkR5bDBPdDNoMllaWHdqZXhPdFdZVEg1RlFzb1BscGdwVVd0?=
 =?utf-8?B?L0FvN0NzUzk2cmFocG1aQkw2M2RuTVVuSEFGOE45aHh1ZlBheDUvbmJxc2J6?=
 =?utf-8?B?MmpGU1ZTeE15STVJbVk0eS80dCswdlJUTU5yNXp0MWxuYkxaUDN1ZkdlWkZD?=
 =?utf-8?B?bTVnd01MTDVOUXVHdlNRSVhhVmlYTXE4NE9nVnlEdHFSWHZaZEZZRlp4Wk01?=
 =?utf-8?B?TzhOb1pjWlhDRkZaT1UvQXZqZXJqdlhkMDFjelQzQmg1am9iejNYeDJpWlZs?=
 =?utf-8?B?ZHo2c1A1ckJ3RWdJUHBMZkFVTmhFSVVta0xjNU1EMHZRUjVXVi9qbWF3Tldh?=
 =?utf-8?B?OFFPMHdCbHJUVVVPTHhrc3lrRnNoWEhITHI4M0R3YWNJRWlFWmNPc25JblJ4?=
 =?utf-8?B?REh0MDFiMHYyQWJENmNQaFVtVk9ManVaUkFKQlpNeG12cHMzNHNBRkNtTkhG?=
 =?utf-8?B?M1I3N3R0bXZiYjdGa1Q4VU12R3dNL1VhU2tla0F2Mmt3YUh1ZTFmQlhEUHMx?=
 =?utf-8?B?bUo4VjlPZ1dKMUN4RkpULzlnbDBGWHc4OGhVeXFhTXFHQ2pvdnl5NnFpUStB?=
 =?utf-8?B?Rm43aFU1TVY5K0hpUGxxZVkxM3h0dmVYZnVrVkdPZjd4VWpDRldHdVFLWkF1?=
 =?utf-8?B?ZXhtRHF4alZjYW9ma3dxZWFnd3lwUmxqQlFyTU1DRWdtQ1ZqTUFIdVVDcEZs?=
 =?utf-8?Q?liGBhbRkO49GVvr/q1m1T+s=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <ABDCDC33229EF44DBC75DE2FB019BDDB@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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e8667e52-a779-4f3e-466f-08dde1513676
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Aug 2025 07:55:07.8772
 (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: j+cv9IWmsQdXAZzpw7RA11qtxRpMi0wYRFK91/z2oN5dYfl5un3luquwTtN22PXAOLBn1BAG3YKmCERTHkkb6XYBt0hoV6cLcguB5V4/tm8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR03MB6383

SGkgVm9sb2R5bXlyLA0KDQpUaGFuayB5b3UgZm9yIHlvdSBjb21tZW50Lg0KDQpPbiAyMS4wOC4y
NSAxODo0NiwgVm9sb2R5bXlyIEJhYmNodWsgd3JvdGU6DQo+IA0KPiBMZW9uaWQgS29tYXJpYW5z
a3lpIDxMZW9uaWRfS29tYXJpYW5za3lpQGVwYW0uY29tPiB3cml0ZXM6DQo+IA0KPj4gSW50cm9k
dWNlZCB0d28gbmV3IGhlbHBlciBmdW5jdGlvbnMgZm9yIHZHSUM6IHZnaWNfaXNfdmFsaWRfaXJx
IGFuZA0KPj4gdmdpY19pc19zaGFyZWRfaXJxLiBUaGUgZnVuY3Rpb25zIGFyZSBzaW1pbGFyIHRv
IHRoZSBuZXdseSBpbnRyb2R1Y2VkDQo+PiBnaWNfaXNfdmFsaWRfaXJxIGFuZCBnaWNfaXNfc2hh
cmVkX2lycSwgYnV0IHRoZXkgdmVyaWZ5IHdoZXRoZXIgYSB2SVJRDQo+PiBpcyBhdmFpbGFibGUg
Zm9yIGEgc3BlY2lmaWMgZG9tYWluLCB3aGlsZSBHSUMtc3BlY2lmaWMgZnVuY3Rpb25zDQo+PiB2
YWxpZGF0ZSBJTlRJRHMgZm9yIHRoZSByZWFsIEdJQyBoYXJkd2FyZS4gRm9yIGV4YW1wbGUsIHRo
ZSBHSUMgbWF5DQo+PiBzdXBwb3J0IGFsbCA5OTIgU1BJIGxpbmVzLCBidXQgdGhlIGRvbWFpbiBt
YXkgdXNlIG9ubHkgc29tZSBwYXJ0IG9mIHRoZW0NCj4+IChlLmcuLCA2NDApLCBkZXBlbmRpbmcg
b24gdGhlIGhpZ2hlc3QgSVJRIG51bWJlciBkZWZpbmVkIGluIHRoZSBkb21haW4NCj4+IGNvbmZp
Z3VyYXRpb24uIFRoZXJlZm9yZSwgZm9yIHZHSUMtcmVsYXRlZCBjb2RlIGFuZCBjaGVja3MsIHRo
ZQ0KPj4gYXBwcm9wcmlhdGUgZnVuY3Rpb25zIHNob3VsZCBiZSB1c2VkLiBBbHNvLCB1cGRhdGVk
IHRoZSBhcHByb3ByaWF0ZQ0KPj4gY2hlY2tzIHRvIHVzZSB0aGVzZSBuZXcgaGVscGVyIGZ1bmN0
aW9ucy4NCj4+DQo+PiBUaGUgcHVycG9zZSBvZiBpbnRyb2R1Y2luZyBuZXcgaGVscGVyIGZ1bmN0
aW9ucyBmb3IgdkdJQyBpcyBlc3NlbnRpYWxseQ0KPj4gdGhlIHNhbWUgYXMgZm9yIEdJQzogdG8g
YXZvaWQgcG90ZW50aWFsIGNvbmZ1c2lvbiB3aXRoIEdJQy1yZWxhdGVkDQo+PiBjaGVja3MgYW5k
IHRvIGNvbnNvbGlkYXRlIHNpbWlsYXIgY29kZSBpbnRvIHNlcGFyYXRlIGZ1bmN0aW9ucywgd2hp
Y2gNCj4+IGNhbiBiZSBtb3JlIGVhc2lseSBleHRlbmRlZCBieSBhZGRpdGlvbmFsIGNvbmRpdGlv
bnMsIGUuZy4sIHdoZW4NCj4+IGltcGxlbWVudGluZyBleHRlbmRlZCBTUEkgaW50ZXJydXB0cy4N
Cj4+DQo+PiBPbmx5IHRoZSB2YWxpZGF0aW9uIGNoYW5nZSBpbiB2Z2ljX2luamVjdF9pcnEgbWF5
IGFmZmVjdCBleGlzdGluZw0KPj4gZnVuY3Rpb25hbGl0eSwgYXMgaXQgY3VycmVudGx5IGNoZWNr
cyB3aGV0aGVyIHRoZSB2SVJRIGlzIGxlc3MgdGhhbiBvcg0KPj4gZXF1YWwgdG8gdmdpY19udW1f
aXJxcy4gU2luY2UgSVJRIGluZGV4ZXMgc3RhcnQgZnJvbSAwICh3aGVyZSAzMiBpcyB0aGUNCj4+
IGZpcnN0IFNQSSksIHRoZSBjaGVjayBzaG91bGQgYmVoYXZlIGNvbnNpc3RlbnRseSB3aXRoIHNp
bWlsYXIgbG9naWMgaW4NCj4+IG90aGVyIHBsYWNlcyBhbmQgc2hvdWxkIGNoZWNrIGlmIHRoZSB2
SVJRIG51bWJlciBpcyBsZXNzIHRoYW4NCj4+IHZnaWNfbnVtX2lycXMuIFRoZSByZW1haW5pbmcg
Y2hhbmdlcywgd2hpY2ggcmVwbGFjZSBvcGVuLWNvZGVkIGNoZWNrcw0KPj4gd2l0aCB0aGUgdXNl
IG9mIHRoZXNlIG5ldyBoZWxwZXIgZnVuY3Rpb25zLCBkbyBub3QgaW50cm9kdWNlIGFueQ0KPj4g
ZnVuY3Rpb25hbCBjaGFuZ2VzLCBhcyB0aGUgaGVscGVyIGZ1bmN0aW9ucyBmb2xsb3cgdGhlIGN1
cnJlbnQgdklSUQ0KPj4gaW5kZXggdmVyaWZpY2F0aW9uIGxvZ2ljLg0KPj4NCj4+IFNpZ25lZC1v
ZmYtYnk6IExlb25pZCBLb21hcmlhbnNreWkgPGxlb25pZF9rb21hcmlhbnNreWlAZXBhbS5jb20+
DQo+Pg0KPj4gLS0tDQo+PiBDaGFuZ2VzIGluIFYyOg0KPj4gLSBpbnRyb2R1Y2VkIHRoaXMgcGF0
Y2gNCj4+IC0tLQ0KPj4gICB4ZW4vYXJjaC9hcm0vZ2ljLmMgICAgICAgICAgICAgIHwgIDMgKy0t
DQo+PiAgIHhlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS92Z2ljLmggfCAgNyArKysrKysrDQo+PiAg
IHhlbi9hcmNoL2FybS9pcnEuYyAgICAgICAgICAgICAgfCAgNCArKy0tDQo+PiAgIHhlbi9hcmNo
L2FybS92Z2ljLmMgICAgICAgICAgICAgfCAxMCArKysrKysrKy0tDQo+PiAgIDQgZmlsZXMgY2hh
bmdlZCwgMTggaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkNCj4+DQo+PiBkaWZmIC0tZ2l0
IGEveGVuL2FyY2gvYXJtL2dpYy5jIGIveGVuL2FyY2gvYXJtL2dpYy5jDQo+PiBpbmRleCBlYjAz
NDZhODk4Li40N2ZjY2YyMWQ4IDEwMDY0NA0KPj4gLS0tIGEveGVuL2FyY2gvYXJtL2dpYy5jDQo+
PiArKysgYi94ZW4vYXJjaC9hcm0vZ2ljLmMNCj4+IEBAIC0xMzMsOCArMTMzLDcgQEAgaW50IGdp
Y19yb3V0ZV9pcnFfdG9fZ3Vlc3Qoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IHZpcnEs
DQo+PiAgIA0KPj4gICAgICAgQVNTRVJUKHNwaW5faXNfbG9ja2VkKCZkZXNjLT5sb2NrKSk7DQo+
PiAgICAgICAvKiBDYWxsZXIgaGFzIGFscmVhZHkgY2hlY2tlZCB0aGF0IHRoZSBJUlEgaXMgYW4g
U1BJICovDQo+PiAtICAgIEFTU0VSVCh2aXJxID49IDMyKTsNCj4+IC0gICAgQVNTRVJUKHZpcnEg
PCB2Z2ljX251bV9pcnFzKGQpKTsNCj4+ICsgICAgQVNTRVJUKHZnaWNfaXNfc2hhcmVkX2lycShk
LCB2aXJxKSk7DQo+PiAgICAgICBBU1NFUlQoIWlzX2xwaSh2aXJxKSk7DQo+PiAgIA0KPj4gICAg
ICAgcmV0ID0gdmdpY19jb25uZWN0X2h3X2lycShkLCBOVUxMLCB2aXJxLCBkZXNjLCB0cnVlKTsN
Cj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vdmdpYy5oIGIveGVuL2Fy
Y2gvYXJtL2luY2x1ZGUvYXNtL3ZnaWMuaA0KPj4gaW5kZXggMzVjMGM2YThiMC4uNDUyMDFmNGNh
NSAxMDA2NDQNCj4+IC0tLSBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS92Z2ljLmgNCj4+ICsr
KyBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS92Z2ljLmgNCj4+IEBAIC0zMzUsNiArMzM1LDEz
IEBAIGV4dGVybiB2b2lkIHZnaWNfY2hlY2tfaW5mbGlnaHRfaXJxc19wZW5kaW5nKHN0cnVjdCB2
Y3B1ICp2LA0KPj4gICAvKiBEZWZhdWx0IG51bWJlciBvZiB2R0lDIFNQSXMuIDMyIGFyZSBzdWJz
dHJhY3RlZCB0byBjb3ZlciBsb2NhbCBJUlFzLiAqLw0KPj4gICAjZGVmaW5lIFZHSUNfREVGX05S
X1NQSVMgKG1pbihnaWNfbnVtYmVyX2xpbmVzKCksIFZHSUNfTUFYX0lSUVMpIC0gMzIpDQo+PiAg
IA0KPj4gK2V4dGVybiBib29sIHZnaWNfaXNfdmFsaWRfaXJxKHN0cnVjdCBkb21haW4gKmQsIHVu
c2lnbmVkIGludCB2aXJxKTsNCj4+ICsNCj4+ICtzdGF0aWMgaW5saW5lIGJvb2wgdmdpY19pc19z
aGFyZWRfaXJxKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCB2aXJxKQ0KPj4gK3sNCj4+
ICsgICAgcmV0dXJuICh2aXJxID49IE5SX0xPQ0FMX0lSUVMgJiYgdmdpY19pc192YWxpZF9pcnEo
ZCwgdmlycSkpOw0KPj4gK30NCj4+ICsNCj4+ICAgLyoNCj4+ICAgICogQWxsb2NhdGUgYSBndWVz
dCBWSVJRDQo+PiAgICAqICAtIHNwaSA9PSAwID0+IGFsbG9jYXRlIGEgUFBJLiBJdCB3aWxsIGJl
IHRoZSBzYW1lIG9uIGV2ZXJ5IHZDUFUNCj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vaXJx
LmMgYi94ZW4vYXJjaC9hcm0vaXJxLmMNCj4+IGluZGV4IDEyYzcwZDAyY2MuLjUwZTU3YWFlYTcg
MTAwNjQ0DQo+PiAtLS0gYS94ZW4vYXJjaC9hcm0vaXJxLmMNCj4+ICsrKyBiL3hlbi9hcmNoL2Fy
bS9pcnEuYw0KPj4gQEAgLTQ0Miw3ICs0NDIsNyBAQCBpbnQgcm91dGVfaXJxX3RvX2d1ZXN0KHN0
cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCB2aXJxLA0KPj4gICAgICAgdW5zaWduZWQgbG9u
ZyBmbGFnczsNCj4+ICAgICAgIGludCByZXR2YWwgPSAwOw0KPj4gICANCj4+IC0gICAgaWYgKCB2
aXJxID49IHZnaWNfbnVtX2lycXMoZCkgKQ0KPj4gKyAgICBpZiAoICF2Z2ljX2lzX3ZhbGlkX2ly
cShkLCB2aXJxKSApDQo+PiAgICAgICB7DQo+PiAgICAgICAgICAgcHJpbnRrKFhFTkxPR19HX0VS
Ug0KPj4gICAgICAgICAgICAgICAgICAidGhlIHZJUlEgbnVtYmVyICV1IGlzIHRvbyBoaWdoIGZv
ciBkb21haW4gJXUgKG1heCA9ICV1KVxuIiwNCj4+IEBAIC01NjAsNyArNTYwLDcgQEAgaW50IHJl
bGVhc2VfZ3Vlc3RfaXJxKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCB2aXJxKQ0KPj4g
ICAgICAgaW50IHJldDsNCj4+ICAgDQo+PiAgICAgICAvKiBPbmx5IFNQSXMgYXJlIHN1cHBvcnRl
ZCAqLw0KPj4gLSAgICBpZiAoIHZpcnEgPCBOUl9MT0NBTF9JUlFTIHx8IHZpcnEgPj0gdmdpY19u
dW1faXJxcyhkKSApDQo+PiArICAgIGlmICggIXZnaWNfaXNfc2hhcmVkX2lycShkLCB2aXJxKSAp
DQo+PiAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+PiAgIA0KPj4gICAgICAgZGVzYyA9IHZn
aWNfZ2V0X2h3X2lycV9kZXNjKGQsIE5VTEwsIHZpcnEpOw0KPj4gZGlmZiAtLWdpdCBhL3hlbi9h
cmNoL2FybS92Z2ljLmMgYi94ZW4vYXJjaC9hcm0vdmdpYy5jDQo+PiBpbmRleCBjNTYzYmE5M2Fm
Li40OGZiYWY1NmZiIDEwMDY0NA0KPj4gLS0tIGEveGVuL2FyY2gvYXJtL3ZnaWMuYw0KPj4gKysr
IGIveGVuL2FyY2gvYXJtL3ZnaWMuYw0KPj4gQEAgLTI0LDYgKzI0LDEyIEBADQo+PiAgICNpbmNs
dWRlIDxhc20vZ2ljLmg+DQo+PiAgICNpbmNsdWRlIDxhc20vdmdpYy5oPg0KPj4gICANCj4+ICsN
Cj4+ICtib29sIHZnaWNfaXNfdmFsaWRfaXJxKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGlu
dCB2aXJxKQ0KPiANCj4gSSBoYXZlIHRoZSBzYW1lIGNvbW1lbnQgYXMgZm9yIHRoZSBwcmV2aW91
cyBwYXRjaC4gVGhpcyBmdW5jdGlvbg0KPiBjb21wbGV0ZWx5IGlnbm9yZXMgTFBJcyBwcmVzZW5j
ZSwgd2hpbGUgeW91IGNhbid0IGFyZ3VlIHRoYXQgTFBJcyBhcw0KPiB2YWxpZC4gQWdhaW4sIGZ1
bmN0aW9uIGNhbGxlcnMgYXJlIGV4cGVjdGluZyB0aGlzIGJlaGF2aW9yLCBzbyB0aGlzIGlzDQo+
IGZpbmUsIGJ1dCBmdW5jdGlvbiBuYW1lIHNob3VsZCBiZXR0ZXIgcmVmbGVjdCBpdHMgYmVoYXZp
b3IuDQo+IA0KPiBbLi4uXQ0KPiANCg0KV291bGQgaXQgYmUgb2theSB0byByZW5hbWUgdGhlc2Ug
ZnVuY3Rpb25zIGFzIHByb3Bvc2VkIGluIHRoZSBwcmV2aW91cyANCnBhdGNoIGRpc2N1c3Npb246
DQp2Z2ljX2lzX3ZhbGlkX2lycSAtPiB2Z2ljX2lzX3ZhbGlkX2xpbmUNCnZnaWNfaXNfc2hhcmVk
X2lycSAtPiB2Z2ljX2lzX3NwaT8NCg0KT3IsIGluIHRoZSBjYXNlIG9mIHZnaWMsIGlzIGl0IG5v
dCBhIGdvb2QgaWRlYSB0byB1c2UgdGhlICJsaW5lIiBzdWZmaXggDQpiZWNhdXNlIHZnaWMgZG9l
cyBub3QgaGF2ZSBwaHlzaWNhbCBpbnRlcnJ1cHQgbGluZXM/IFdvdWxkIGl0IGJlIGJldHRlciAN
CnRvIHJlbmFtZSBpdCB0byB2Z2ljX2lzX3ZhbGlkX25vbl9scGkgaW5zdGVhZD8NCg0KQmVzdCBy
ZWdhcmRzLA0KTGVvbmlk


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 08:04:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 08:04:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089679.1447180 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upMka-0006Qn-O1; Fri, 22 Aug 2025 08:03:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089679.1447180; Fri, 22 Aug 2025 08:03: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 1upMka-0006Qg-LJ; Fri, 22 Aug 2025 08:03:52 +0000
Received: by outflank-mailman (input) for mailman id 1089679;
 Fri, 22 Aug 2025 08:03:52 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=3vR7=3C=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1upMkW-0006Qa-9U
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 08:03:52 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 87d9f350-7f2e-11f0-a32b-13f23c93f187;
 Fri, 22 Aug 2025 10:03:47 +0200 (CEST)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by DB9PR03MB7565.eurprd03.prod.outlook.com
 (2603:10a6:10:2c1::5) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.16; Fri, 22 Aug
 2025 08:03:44 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%4]) with mapi id 15.20.9052.014; Fri, 22 Aug 2025
 08:03: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>
X-Inumbo-ID: 87d9f350-7f2e-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=sdbddw1yvqvbRec0kJdg+RPt6RPu55ytABd5RjEU1W52d3olHc7nadf+0e/YpzLO6SnGKh/AykWv66+eCwXxbtCCMIKK7WcXpT3HSGrOop4OmfYdH0kul6yZMGJX5mR8pL95kDrnSzpqGyR/FmMmrHB1zUVnNMcRK1aZB+bfGYNsMjiU6f38tgWZ0SKh6Q4EHVQ3T/TZ01INM9VIyOCdPKncGUjGb682ZrU3/uoQX/KxbCbm1ZzGAM9TkUVUN1ictnsblRKRVf4tScpfuIm67Rr6XFkuJ/+U8SUOFjhDSAToolGCs7h0hWJOA+NfX+M/J4dJG5/iZ7EeZE4WjX548Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=NNowHo/RDLQ8SBwcreAsJpQx+L5ucmWWOrnyLUe/zak=;
 b=LQnLGDWN/6idOH5r2tZVE+27c31qyIJiMXTf7YCIZfzRMidrgRy0wtmkaknlYv+OEWutLfbfpXoGBL3y7Elc4Fu+mb6V1ORgjNYzSXfYIsP+fYhhakzqBLFJSXK+NpIFOOOaQJXlxCrcU1lyI1/AmAuUzZiYx5xDoV+Wz2j8oMFDbLb9LYR/Nzs4hrodmXP9760DIfO68hI/OeWVY0uFjNYuwZghHpuYL+6y7AWcQfeF8IoTUm81Hsceps1Vr8copGpeDsxuFxpKr3I8MjGt9vnaHz3FuWV3eBvtkc8bt8jLd07f+5IFgmb9+VoTnxDPTWV4qP+OLQOJ7JZJi9Ge7A==
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=NNowHo/RDLQ8SBwcreAsJpQx+L5ucmWWOrnyLUe/zak=;
 b=fAAQUqBzJx3fdPE7WbXI9LFs9EF4KqRqGar3yBQiWJp+A8XjhfHjaSl84vTq6BBIk2cA+m5WelIH8+1pdBnEriC7f/jfYva8siWEGlBerTZtGDPvbXllUNBOsekj9QBXn/DIx6yEfUZoacQFcVb+rReUXvKzqembVthLHb3ju2DIYlRG+iodWojnGyi45Ad7yoGvEXo81cgN154UG+olrBHQrIP7FFWjbn2BpZ0rAQQK0WC69h6ti1tJ0bRzroOxRAxpEx0o5yU4ip3b3TwEt0OgJqeiXRy66H8YI/63oa+wX6Z9RNSjcyEzfWjYKo2gK8uXvPy8dEKeDrtrs0sp3Q==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Luca Fancellu <luca.fancellu@arm.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, "Daniel P.
 Smith" <dpsmith@apertussolutions.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v2 3/3] xen/pci: add discovered PCI device at boot
Thread-Topic: [PATCH v2 3/3] xen/pci: add discovered PCI device at boot
Thread-Index: AQHcEc3mKXITpUZcl0ea3L2+fX5U/bRs0pmAgAGAWAA=
Date: Fri, 22 Aug 2025 08:03:43 +0000
Message-ID: <df2d1f6a-23bc-4451-a91f-a484b448c467@epam.com>
References: <cover.1755683961.git.mykyta_poturai@epam.com>
 <bb2589996131b0e7e645c0af281b9862e2e0f4cb.1755683961.git.mykyta_poturai@epam.com>
 <26bad9fb-3c4b-4423-a443-3406d07d56e0@suse.com>
In-Reply-To: <26bad9fb-3c4b-4423-a443-3406d07d56e0@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_|DB9PR03MB7565:EE_
x-ms-office365-filtering-correlation-id: 5c82a4e2-bd8b-437b-1760-08dde15269d1
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|376014|7416014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?d3BSaTdHYzdwcWg5dXIybkVTcERZRHg5cnJXcWxVU0p5Q0VrbDdSQlFjekY0?=
 =?utf-8?B?T3luL214YWJtRWtNSU5RRTZpREUyQ3Q2bEpsNE53am1DdzhoM1g3YkdxcHE0?=
 =?utf-8?B?QzhHNjc2UGpPUC9NRXpUQmNrNUg1a0V3QnlJWVRQeHR6a3hBRkpBRzNrcFFl?=
 =?utf-8?B?Q1NEemV1S2c3N1FvUHJEL2o3cmxVL0V2Yk9zcm15YnRPOWFkRTNNcHNzRkVv?=
 =?utf-8?B?Vm1HZjlBKzhvVURpRXZsZEUrWVdJNTFxbitqTEUyV1V2cE4yWGhidFpvYnhm?=
 =?utf-8?B?bFlmZU9GaW1ZRmhKSmtha3pNU1laV2psUHJkd3c0UGVwTjgzQngrMmcrMDdt?=
 =?utf-8?B?UWppb1VjMHdQdWpxVjhIbHkzQWU5aGhkSVN4MXkrYzJ5T1Y1UThUMnM3SVJv?=
 =?utf-8?B?cWoxbXVvNFpoNUhSYUVhYXpmVnZRM2pPeUlEYkVOVFFVSm41cUZtMHFDSlFR?=
 =?utf-8?B?TDJKWmlBeExQSUxnVVBxUnVUYTAxWjU2dXl5Vmh1WWdLeEd1K0NVeWZ5T1hG?=
 =?utf-8?B?eWx0RmdTM3lFL1lHVkVNbjF1RzVlcUhDT3hkS3pXYzh3OWwwM0ZSdWlpMG5s?=
 =?utf-8?B?MDRhMHppY1dIOGlBcWppbmdsSFRlVFJJV1pONTNpQjhrWkNJV2lkRFBaK1ZB?=
 =?utf-8?B?YWsrcXg2clpwaFI4aGVUV2xZUVdLVEEvaFFwaHFQOXNnTVpqZjhHclJMNVdU?=
 =?utf-8?B?T3FkZTg4bUtNazdodDViZHVzMXJqTm5FNWZDOVR3ME4veGtiZlFrT2tCQlVo?=
 =?utf-8?B?TmYwY0lMNWR2V0VERVQ0VThNRmhkVG1aMXJuczA0cmhVYWIwa3NibUZGK3JZ?=
 =?utf-8?B?TmtsTEswaHZrZEh2K3NUMFVHakVXWC9DaDB2SmRIYU8wT1BpUytEUWFBU2lL?=
 =?utf-8?B?a1VXcmpjQmZoc01yaGxhWUNsdktOb1h3eVZCWWRjOSt3d3puS1NPUlB5KzdQ?=
 =?utf-8?B?S1J5OEJiY1FyUERlN2o1YWc4K2tobEpzOThqK3pncVJLUzhQb2ZEUWF1ZDNI?=
 =?utf-8?B?Ym9WMmlzMHFuaCtRTnlJNnlZL1FOQmJDWEFNYURGMzdqbFVQY1RyYm4zZEZ3?=
 =?utf-8?B?dUtYTlpCU3JZeStXbkhxWmlCQ0pEbGJaQ3lrSGZtd211TEdTdTJqOXpyZTZl?=
 =?utf-8?B?ek1kTW1lRmlmSDJnV3RIYzhGNmZqbXNNS0hadXlPNmxWemtWMEZtMFFyMmI5?=
 =?utf-8?B?Y3JGa1NGL0xqOHdydkFQQ0t2SkttU2xnYkx5Mmg4K1M5ci9peG52UlNRditU?=
 =?utf-8?B?MkVQb01Vemp0akZEejF3bG52Qm9GVkMxKzF2elIvM25LOUxXenUyd3dsQTNt?=
 =?utf-8?B?WEZRRk1wckxINjl3dlpxczF2VTgzZHl5bGNoWVVaRW9ENlZCUWtpR2hkc1dN?=
 =?utf-8?B?RWt6b1RtekYvUzFzU0duVDBrOXRBU1hYanBZajJTd2lFNENoWEhNRWJWNzRz?=
 =?utf-8?B?bUs3ZWhZS2lrbjRNQTk5YTRJeERaRko0RWlOZXNETUVFaWdjbVYyNW90OU1q?=
 =?utf-8?B?L2VIUG9weXFPWitRWDZQVG1QWFFYM2grMHo2VmNJL3AwTk1pc0JRRmVSTlgz?=
 =?utf-8?B?YTVyQzNFNkFFTzJWdHFtNi9lQ0pIblZvOWh4a2JsN2J4cHUwcWxTQUFjN3JV?=
 =?utf-8?B?ei9EbmpidkVFVnk1ODVvTjkwVE9sMm1tQ2xzV1NSNHpNMDRMV0wxS1RKYU1n?=
 =?utf-8?B?MWtZVXNLbnYxdDFKdEpTOVpEZ2M1RU44RmF1cHJuZG9YbHRVVlorbHlGTUdJ?=
 =?utf-8?B?VXVLUDI2WHU3TGg3Ym5seVV6SmJXMDlGZGFaY2lNRFlBdmNEcTk0aGRPY1Z5?=
 =?utf-8?B?amNDZW9XQUR0UTl6TEluR2Y2L3EwRGxydEx2a3pLcmg0MUR3b0NQazE3YXhy?=
 =?utf-8?B?L0UzaHdubGlzSlQwelVGdUdiS05ZWDdZNGU5YjZtRlZ4cmtvVnFjemRvdzll?=
 =?utf-8?B?NU80eTY4RzdOU3AranNEUnpYNEt5YVQyclQxTmtHdkg0VktTd2RaRUpFQnJY?=
 =?utf-8?Q?pEa7J9cFxZAyQAKnAERdJ6fcA7SWQ8=3D?=
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)(376014)(7416014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?TUtUU2Jybk1jN0RXSExBZEhtVU1GTWdzWC93OHJPK0FmRVg4NTI1NDFGS2Zv?=
 =?utf-8?B?ZmgySDM0SlIxT1pPRktqenRNWnNuZ3lkTmFGZnlVS2pxazlxT1h6TEFaZEwr?=
 =?utf-8?B?UUNxNkhVRm1BWWdOWDRkcUFINDk1ZmxseS9aSnc4MmJqRmtyQ25lT01vUFVO?=
 =?utf-8?B?UTlPekxOOHpGMUVZd2NycC9rRFFRMkxieEdEVElSdEYyUHVJdW41V01sMnU5?=
 =?utf-8?B?dUwrWitoM0hoMW8zOUtwcHlkYUZrT1BUVWxlVCtYU1kvMWVmOTVWRDNLbXAr?=
 =?utf-8?B?Ty82TUhGcDVuNllPckVBbDdES05DVHVVZDFtTjRNME5JV0Y2L1FVcDNpdkxR?=
 =?utf-8?B?SU95WGd2cTJTM2dFVnpnQ2RnOTdoR0pZSEhwbFdBSHdaMTRRTTZ6bEY0cFRO?=
 =?utf-8?B?ZjdiSC84bFFBa01aT1BIL1Nmc3FaRGlzQ3o0K2VzanRKZXhod2RJYzZjMkFi?=
 =?utf-8?B?MTVURXFBRmF0RmJNTXFFY2VVZE1NZ1h4WW5iUXRuNWpVUlVHbmh1Qk1leGhI?=
 =?utf-8?B?c2xQeGNuaWRJTVB0SllDQzJjaTdWVFlqMGhJa3BPeDRjdFprUHhxSTdJb3Yr?=
 =?utf-8?B?N1RrRGlMZW9wKzdKVFcvOVVBZ0sza0paV2U4UDFZUlB4a2c5ZVpTbDZLdmhp?=
 =?utf-8?B?ZlY0ZVBmTTZtTDRWbDIwTTlpL05ucmtPbkJ1bGVzaHpTaUptSTdISE9GbmNX?=
 =?utf-8?B?UFI4WjRYd1hwQjFxeVdvalVwdWh5WDEzaUxRKy9Hd25DZW9kNWhBeEN2SGtw?=
 =?utf-8?B?Q3RaZnBoSDRVSzVxeGt1QXZpR2tCZEJiZnFBTk9SRnZEZVpJOEhOMnZWUDR3?=
 =?utf-8?B?Uko5Q3ppRjZsbmE3YjIvcktzOU5rY1hiY085d2Z6cTRBbEFDQm5WYTNpYW1Q?=
 =?utf-8?B?cU03Sm5aSzh6M0N1SDBJOGhZanZOby9lUHhRTjJYck5QNHMzb3FUd2FKWkdk?=
 =?utf-8?B?T3hKU2FaZzl1T0JxMCtHaFhrVG9wTXkrZ3pXUmozMk12RittTTUzWjF6dTF2?=
 =?utf-8?B?b292Rkd2Rm16ell6Und2bWdGeWdob1RBdkFxQmhGQVU5KzF0MDV0OGNFWjRB?=
 =?utf-8?B?Q21xT00xSStqYjc5TGk5VjZDbzZycXo3MXlYTUdwSzcyUEc3dFBMOEowcndF?=
 =?utf-8?B?NXRXcC8wTHJKMFdXQnY5YkEzanNWNmkyR0NCS2pqMncwclNZc0hBWkNySWZl?=
 =?utf-8?B?SkZTdzlTTlN3ZFdBK3h5aXhIcTdnckJaaUd2NFpVN0ZtMkRvNTdDa1lPMzUy?=
 =?utf-8?B?TEdOVTNTTTlaWDVFQjBYT25Ec3NpaWhqYitXbjZnaUhuNWNwYTdvbXlMOWh2?=
 =?utf-8?B?M3FIWXVhUHl6cWttcTF4clZCZk1DSk1HQ2t0VklHcWFJaUFObmFEdlpSZldZ?=
 =?utf-8?B?NWFTcG5UN2VsSHBFVEk0SlN2Z2xvM3poMFZ3WEU0ZDh2WTduWTVmN3FTbHZv?=
 =?utf-8?B?ejB2Qnh1YmQxRFR1ekJyOFp1WFhlSUhBN0dNaHpNT0pGdENvMkIwem5oeStn?=
 =?utf-8?B?L3RBcHBXSVJ1MEx6SHM0d1plVzcrQ0JMZWh1S0o4cGJhVlc0Q3FXQkloQ0lG?=
 =?utf-8?B?SVRpczY2TTNXZ0VhbjE4OWhnUFRYdXVIbUIyaGpQZjBJMGhybGdwSVVLTnBj?=
 =?utf-8?B?cUlrS2J2TTk4S3B2QnRqOTJmSWJlb1hhQVlSc1hVQUdib2FqamR4NzlFQTdT?=
 =?utf-8?B?a2toQmNON2IzbFlnQ3JJNngvajcwTHFqWDRDM1Q5WS91S0lxYzlnMjl0RXVC?=
 =?utf-8?B?WHNJNkhPUzVsMXVyR1NIazRGSXBVQVZqSVZseFZGdkNqeWNCZHUxZ2tGMTlJ?=
 =?utf-8?B?S3ZvMFIwQjd0bUxLNElKdHJ5UjNCK0hKR3NtMU10cGovbGhCQ3lNTzFod1I2?=
 =?utf-8?B?d2FoaDRMOTJpdHMvSm1XaVBqREhmM0NkOExzR3BaNHhIcWlRRkI4TzluNUpq?=
 =?utf-8?B?V0ZkMldmWWdxN3ZzODNaOUVBSDlMWHZxTm40V0Zjd2ZGYXJBWloxc0M1dTFt?=
 =?utf-8?B?MjcxUEpmVGFEdFVwZ1VjenNhUHdZanlvakhFMU85OU5McThvazZ3cnFmS2N3?=
 =?utf-8?B?Nlc0TlY3eFhpbW9nUUpHN2JRSkhxYnQ1MnNQMGM1WHNXRlprTVh5S0xqVEhN?=
 =?utf-8?B?am9DdGV3L1N0UGM5d3YzVnNOcENEL3h3REptZEZ1NEpzYmhZQ2hGSGUwWVZL?=
 =?utf-8?B?elE9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <3E041FD04093CA4D9C7C50A05D6336DF@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: 5c82a4e2-bd8b-437b-1760-08dde15269d1
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Aug 2025 08:03:43.4601
 (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: E1+bTxEisQklCNwW/r/lCTmt8O8y5gEgqHoNJH35IQEu0RAR9RKT1YvJSI46GyujskrQTTr4HMoqaGSgx9ZV+g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB7565

T24gMjEuMDguMjUgMTI6MDgsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAyMC4wOC4yMDI1IDE0
OjI4LCBNeWt5dGEgUG90dXJhaSB3cm90ZToNCj4+IEZyb206IEx1Y2EgRmFuY2VsbHUgPGx1Y2Eu
ZmFuY2VsbHVAYXJtLmNvbT4NCj4+DQo+PiBJbiBkb20wbGVzcyBtb2RlLCB0aGVyZSBpcyBubyBk
b20wIHRoYXQgY2FuIGNhbGwgUENJIHBoeXNkZXYgb3BzIHRvDQo+PiByZWdpc3RlciBQQ0kgZGV2
aWNlcyB0byBpb21tdSwgc28gaXQgbmVlZHMgdG8gYmUgZG9uZSBieSBYZW4uDQo+PiBwY2lfYWRk
X2RldmljZSByZXF1aXJlcyBzb21lIGRlZmF1bHQgZG9tYWluLCB3ZSBkb24ndCBoYXZlIGh3ZG9t
LCBhbmQNCj4+IHRoZSBndWVzdHMgYXJlIG5vdCB5ZXQgY3JlYXRlZCBkdXJpbmcgdGhlIFBDSSBp
bml0IHBoYXNlLCBzbyB1c2UgZG9tX2lvDQo+PiBhcyBhIHRlbXBvcmFyeSBzZW50aW5lbCBiZWZv
cmUgZGV2aWNlcyBhcmUgYXNzaWduZWQgdG8gdGhlaXIgdGFyZ2V0DQo+PiBkb21haW5zLg0KPj4N
Cj4+IFJlbmFtZSBzZXR1cF9od2RvbV9wY2lfZGV2aWNlcyB0byBzZXR1cF9wY2lfZGV2aWNlcyBh
bmQgYWRkIGRvbTBsZXNzDQo+PiBoYW5kbGluZyB0byBpdC4NCj4+DQo+PiBJbiBwY2lfYWRkX2Rl
dmljZSB0aGVyZSBpcyBhIGNhbGwgdG8geHNtIHRoYXQgZG9lc24ndCBjb25zaWRlciB0aGUNCj4+
IHJlcXVlc3RlciBvZiB0aGUgZnVuY3Rpb24gdG8gYmUgWGVuIGl0c2VsZiwgc28gYWRkIGEgY2hl
Y2sgdG8gc2tpcA0KPj4gdGhlIGNhbGwgaWYgdGhlIG93bmVyIGRvbWFpbiBpcyBkb21faW8sIHNp
bmNlIGl0IG1lYW5zIHRoZSBjYWxsIGlzDQo+PiBjb21pbmcgZGlyZWN0bHkgZnJvbSBYZW4uDQo+
Pg0KPj4gU2lnbmVkLW9mZi1ieTogTHVjYSBGYW5jZWxsdSA8bHVjYS5mYW5jZWxsdUBhcm0uY29t
Pg0KPj4gU2lnbmVkLW9mZi1ieTogTXlreXRhIFBvdHVyYWkgPG15a3l0YV9wb3R1cmFpQGVwYW0u
Y29tPg0KPj4gLS0tDQo+PiAoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBlZmY1MWU1MDAyMWI3
NWY1YTUwNTMzZjdkZTY4MWIyY2UwNDRmNWJkIGZyb20NCj4+ICAgdGhlIGRvd25zdHJlYW0gYnJh
bmNoIHBvYy9wY2ktcGFzc3Rocm91Z2ggZnJvbQ0KPj4gICBodHRwczovL2dpdGxhYi5jb20veGVu
LXByb2plY3QvcGVvcGxlL2JtYXJxdWlzL3hlbi1hcm0tcG9jLmdpdA0KPj4NCj4+IHYxLT52MjoN
Cj4+ICogaW50ZWdyYXRlIGFkZF9kaXNjb3ZlcmVkX3BjaV9kZXZpY2VzIGludG8gZXhpc3Rpbmcg
cm91dGluZXMNCj4+ICogYmV0dGVyIGV4cGxhaW4gdGhlIG5lZWQgZm9yIGRvbV9pbw0KPiANCj4g
V2hhdCBJIGNvbnRpbnVlIHRvIG1pc3MgaXMgYW4gZXhwbGFuYXRpb24gb2Ygd2h5IGRldmljZXMg
Y2FuJ3QgZ28gdG8gdGhlaXINCj4gdWx0aW1hdGUgImRlc3RpbmF0aW9uIiBkb21haW4gcmlnaHQg
YXdheSAob25jZSB0aG9zZSBoYXZlIGJlZW4gY3JlYXRlZCksDQo+IGkuZS4gd2h5IHRoZSBkb21f
aW8gaW50ZXJtZWRpYXJ5IGlzIG5lY2Vzc2FyeSBpbiB0aGUgZmlyc3QgcGxhY2UuDQo+IA0KPiBK
YW4NCg0KSSd2ZSBkb25lIHNvbWUgdGVzdGluZyBhbmQgaW5kZWVkIGV2ZXJ5dGhpbmcgc2VlbXMg
dG8gd29yayBpZiB3ZSBjYWxsIA0KcGNpX2FkZF9kZXZpY2UgZGlyZWN0bHkgZHVyaW5nIGRvbWFp
biBjb25zdHJ1Y3Rpb24gaW5zdGVhZCBvZiANCnJlYXNzaWduaW5nIHRoZW0uIERvIHlvdSB0aGlu
ayB0aGlzIHdvdWxkIGJlIGEgYmV0dGVyIGFwcHJvYWNoPyBJZiBzbyANCnRoZW4gSSBndWVzcyB0
aGlzIHNlcmllcyBuZWVkcyB0byBiZSBkcm9wcGVkLCBhbmQgSSB3aWxsIHByZXBhcmUgYSBuZXcg
DQpvbmUgd2l0aCBkaXJlY3QgZGV2aWNlIGFzc2lnbm1lbnQgdG8gRG9tVXMuDQoNCi0tIA0KTXlr
eXRh


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 08:12:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 08:12:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089692.1447191 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upMsz-0008IU-L1; Fri, 22 Aug 2025 08:12:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089692.1447191; Fri, 22 Aug 2025 08:12:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upMsz-0008IN-I9; Fri, 22 Aug 2025 08:12:33 +0000
Received: by outflank-mailman (input) for mailman id 1089692;
 Fri, 22 Aug 2025 08:12:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Cd3U=3C=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1upMsy-0008IH-Ow
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 08:12:32 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20605.outbound.protection.outlook.com
 [2a01:111:f403:2413::605])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id be137579-7f2f-11f0-a32b-13f23c93f187;
 Fri, 22 Aug 2025 10:12:28 +0200 (CEST)
Received: from MW4PR04CA0173.namprd04.prod.outlook.com (2603:10b6:303:85::28)
 by DS0PR12MB7925.namprd12.prod.outlook.com (2603:10b6:8:14b::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.15; Fri, 22 Aug
 2025 08:12:23 +0000
Received: from MWH0EPF000971E5.namprd02.prod.outlook.com
 (2603:10b6:303:85:cafe::ea) by MW4PR04CA0173.outlook.office365.com
 (2603:10b6:303:85::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.18 via Frontend Transport; Fri,
 22 Aug 2025 08:12:23 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 MWH0EPF000971E5.mail.protection.outlook.com (10.167.243.73) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Fri, 22 Aug 2025 08:12:23 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) 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; Fri, 22 Aug
 2025 03:12:22 -0500
Received: from [10.252.147.171] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Fri, 22 Aug 2025 03:12:20 -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>
X-Inumbo-ID: be137579-7f2f-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ga7xeHUAPX/4KOox0LimwoxCJZ8N2TbxZj2lpQZ7ytry020wdHqxcXN7A6JBomEAwseRpasI+60AYmrygeEdAHJ+Cc197JOpN0KKl4ozh1ZPjaaokhkYHp0zA2hLbm1Z98Lp+PAB0oV952joYnYCKFsWk4mMsuF2Hrs1ij/rvJksU3rng2EJVmB4VPD8WZLJK2SLpwJuP5oPRmfWmfHRpYb1EJWpuEwavW6i8d9qX4ArvdRh4H2tSQxD1lO5YA8h0EnQg743OS2WcQnxOZ4Lic08pEN676dan3vFUrYHQjoE2IKeqExOxo0fUqghSZqfaKUnMKtz5unWySrWod/gNw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=BQw5ZiP/6KXo+yB5VlhXRjgkmQYBUqSOxz+sZjqK76s=;
 b=uYNFFKSPEe6XeFMYn9bipWvbu7Uj+WgN8wCjtjBLK94DSCeNn77T4hjMuCagfmJmKffNnVhgCnug8K0M3JCan2rMqYcITgG3y22jGTN5ZQKfjTi4UBCnnOeen5fdJ5YyD1YsU1zjW+2c2Owf2Moo3T/kgSXNOcDil/tg7llSko8iGl/W/dvAjakt1yNfE4BwKHcDPbCDOhdUozcILN7l1fMwMh3kprCzNsrx76N3OXOmHJRx7VcXFC9awxe9NP0vFW/pSZpF8HduJEwoOCsNRvado3GnPX8mXz8zfe0beWz+2SNAa2xb2d/AGGqnAPfZxthp6HUYsGPxtX/YjZFl7g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=epam.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=BQw5ZiP/6KXo+yB5VlhXRjgkmQYBUqSOxz+sZjqK76s=;
 b=eBm6HWCZLk2rsXABucUDJVvs9uenJbdCDQY4QuKOLz9kDZvyQNhmGmbPHq0sG8sQTs2OO8Z4nUIS/BZ9wDIU8SW5mOpUg/pCbmXmnpY5K9M5KOfzKF7/h6i7lBoO1m4I9siF+Frnj0w7IjDwuYp+KYYfT3qb2dC9BmjtkGsQPrU=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <cff3e94c-4476-4103-ae7e-19656703e755@amd.com>
Date: Fri, 22 Aug 2025 10:12:20 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: smmuv3: Add cache maintenance for non-coherent
 SMMU queues
To: Dmytro Firsov <Dmytro_Firsov@epam.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: Bertrand Marquis <bertrand.marquis@arm.com>, Rahul Singh
	<rahul.singh@arm.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien
 Grall <julien@xen.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <24567cc1630b1577c33939ff71d67fb2ebe5572f.1754491424.git.dmytro_firsov@epam.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <24567cc1630b1577c33939ff71d67fb2ebe5572f.1754491424.git.dmytro_firsov@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB04.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MWH0EPF000971E5:EE_|DS0PR12MB7925:EE_
X-MS-Office365-Filtering-Correlation-Id: 0f8e10de-93b9-4b42-2c8a-08dde1539f8d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|82310400026|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?ZUhHVW1kRE9yZE1rMUtQcDU1VGZ1Vk5lY2dXbEZiQ2hzV1ZhZU1WZ2JKazNN?=
 =?utf-8?B?ZzM1dzQ3MUh0L21uU0NXYkF4U2o0QnA2bThJUXJBTXgzK2hGaXpjQ3ZQWG9X?=
 =?utf-8?B?N3daUVVsMEtGbzd5Sit3azN4OVF3aWV4MUdzMnhOVFpGeXBkTGx1NXJneEgx?=
 =?utf-8?B?Z1dDelNRTWkrU3h2eWNsVHhPQkx5ZE5lV2xVRHdsaTRJNE5jRXZ3R1ludWNs?=
 =?utf-8?B?NDVKUi8zODZpMUFpY1ZjWGhhL0tKVGw5VDNORFo4UEY1NU5hdjlRdHJJWlBD?=
 =?utf-8?B?ZFozbkhFeGFnOE1hYWtEUGNac3ozSzlMa3NZSmt4MDNWWjhKbStFRUpKekc0?=
 =?utf-8?B?NTFxOTVxK2IveWp6NThGZUNRdTNMMDdGOFNkWnI0YUVBemE5Y1FVMmlleFE1?=
 =?utf-8?B?dDNoTHhsTGNKRGIzeFBSY3Z6a2I1WDBFeHJwVWorbUV0eWsveDdEVFZSM2dp?=
 =?utf-8?B?Nmd5Q1gxTWduNDVud3AyenJNeUdsOEdSMGFMeUpPVWJUQ1BuR0ZUMDF0RzZk?=
 =?utf-8?B?WnZSWGMzTjJJZUlGK2tjOXZTbUhCbzRmVWFVaXhPbTNRb01PWnB1eHhBWHNS?=
 =?utf-8?B?dkJmNTYwTVpucEIvVzFpV0paSjFXUUxXUGQwMDljRm5jVWRYUHJKcFpsb29Z?=
 =?utf-8?B?K3lmVWlZTUprUTZ3UzFkb3JPQkNxYlRxL01JY09LSlVwMHlMZnd0aTZzRTFS?=
 =?utf-8?B?ZFNhczVUcU9oK0d4Rmkra3g5SnphQ1dEUTRsUjF1NjkvSUtiYWhxQzdyUlgy?=
 =?utf-8?B?ejFzbnZNOExrTDlkdGJFYVhwUFhUdnRLeGNXKzJPWFQrLzVndlRmNndNMjNt?=
 =?utf-8?B?aDdTS0ttQXYvY1lsM09ZUWZnWm1KNitxUDZ0VllhRWJKbFVRb1NvY2w0eHNh?=
 =?utf-8?B?TGQrUUF2MllSR2NXNEM3ZmR2RTNudkMrdnpwSS95YzE5SkYvZ0FnRkdMLzZ0?=
 =?utf-8?B?aXFocnJpdVNRR1JXNTc5SUdBN2d5Y08vRHdsS0RScGl5TFBMbXZxTkhOYzYv?=
 =?utf-8?B?dDhiK3ZUazBXN0wvT1IvNHQ5eDVtT0x4TDhubThacHB1ZEVvajJ3TS9Ydmg5?=
 =?utf-8?B?WUtjejkwZkdBM1N5cDY0R1oyZ2JWcjlKM2ZQWisyZ3BEK1d2aU4yRUU2Y3VT?=
 =?utf-8?B?WG1obFAvRnZYYkoyQXgrUGMvNUtuZW05WXdnZ3JMY3B0eFhrVE5kbnB2bjAx?=
 =?utf-8?B?RzE5aTIzTjdmNzhaMXk3clRSMHVjcDZCd1NtM2VwUDFmaXJOL3JGbjRMeENV?=
 =?utf-8?B?TVM0VVJGU2p1cGdYMlhWTGVKaGtGVVFua2M3SWgrTm1nc090Q29jZGloSnEx?=
 =?utf-8?B?S3c0VGxyR1RRUGNYYlk0M0Vtc3ZOd2V0eEVzVCtWYlJJMHBDQjlpeks2ZnZU?=
 =?utf-8?B?NDlZZmVHN21zZlRtQThlTGp1QzJGWU45Mm53VytnL0J2eTNsbWlKTnBuQWR6?=
 =?utf-8?B?T1p6VkN4VTY2MlVJcjlZaTNPMlY3QU02em9QREszRVI2UVZTV3RqMkJqeGZU?=
 =?utf-8?B?Q3FuanpURzZXLzhVM2hNWTV1bk1ta1prUUxuSTJtVW1QMUNVYzVVVDNNN0pU?=
 =?utf-8?B?TXhpNnNqZmx3Tm44emtFeEFReWpoSm1xMXg0QzBJNVU3NTh4ZUJFL3hMdm4z?=
 =?utf-8?B?dWE3alU4MlpmYUxnTUQ4enhPTnhNWVUwY0QvWlVseGVKblRSYVpEbWFoRTY0?=
 =?utf-8?B?ei9mMk9hbWpJUlYxNk5OZVRIN3FBRWtvMmtiNk4vZmNyc3NhYWtLNERMTTNi?=
 =?utf-8?B?QnFSYXRIMUJHbFB2QjVZYSsvMHUyUVJuWERSNTE5QmJjMU5BcjJGSnFVQU53?=
 =?utf-8?B?dWVNcHN5NG1mMGNiWW1SZzNLTUx5U1JhSlg1MnRzOERLQlUydm80TWJvNjVw?=
 =?utf-8?B?am5Ob0lRWTUwTmNLY1FOT3dGdVpvU2xEK0IyY2NNRVVXY0dTRHV3aDQ2TFdO?=
 =?utf-8?B?WWRTM2pKSk9UalNFTml3a2hlTDMzOTdrc0VnMlcvSmE3Ti9MYk5JVEVTUXBE?=
 =?utf-8?B?SitPbmNKYm5jWFNYeDNQeUZsSTNGa1N5T0E5bU5MZVoyanp2WVdTVzAyc2dt?=
 =?utf-8?Q?z9Bk4S?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Aug 2025 08:12:23.0502
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0f8e10de-93b9-4b42-2c8a-08dde1539f8d
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000971E5.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7925



On 06/08/2025 16:58, Dmytro Firsov wrote:
> According to the Arm SMMUv3 spec (ARM IHI 0070), a system may have
> SMMU(s) that is/are non-coherent to the PE (processing element). In such
> cases, memory accesses from the PE should be either non-cached or be
> augmented with manual cache maintenance. SMMU cache coherency is reported
> by bit 4 (COHACC) of the SMMU_IDR0 register and is already present in the
> Xen driver. However, the current implementation is not aware of cache
> maintenance for memory that is shared between the PE and non-coherent
> SMMUs. It contains dmam_alloc_coherent() function, that is added during
> Linux driver porting. But it is actually a wrapper for _xzalloc(), that
> returns normal writeback memory (which is OK for coherent SMMUs).
> 
> During Xen bring-up on a system with non-coherent SMMUs, the driver did
> not work properly - the SMMU was not functional and halted initialization
> at the very beginning due to a timeout while waiting for CMD_SYNC
> completion:
> 
>   (XEN) SMMUv3: /soc/iommu@fa000000: CMD_SYNC timeout
>   (XEN) SMMUv3: /soc/iommu@fa000000: CMD_SYNC timeout
> 
> To properly handle such scenarios, add the non_coherent flag to the
> arm_smmu_queue struct. It is initialized using features reported by the
> SMMU HW and will be used for triggering cache clean/invalidate operations.
> This flag is not queue-specific (it is applicable to the whole SMMU), but
> adding it to arm_smmu_queue allows us to not change function signatures
> and simplify the patch (smmu->features, which contains the required flag,
> are not available in code parts that require cache maintenance).
There are already a few places advertising the SMMU coherency:
1) smmu->features
2) d->iommu->features
3) platform_features

All of them are better places than queue struct (that as you pointed out is not
specific to coherency). I'd suggest maybe to use 3) and removing ro_after_init
if you don't have access to 1) and 2). All in all, providing yet another place
for coherency flag seems a bit too much.

> 
> Signed-off-by: Dmytro Firsov <dmytro_firsov@epam.com>
> ---
>  xen/drivers/passthrough/arm/smmu-v3.c | 27 +++++++++++++++++++++++----
>  xen/drivers/passthrough/arm/smmu-v3.h |  7 +++++++
>  2 files changed, 30 insertions(+), 4 deletions(-)
> 
> diff --git a/xen/drivers/passthrough/arm/smmu-v3.c b/xen/drivers/passthrough/arm/smmu-v3.c
> index 5e9e3e048e..bf153227db 100644
> --- a/xen/drivers/passthrough/arm/smmu-v3.c
> +++ b/xen/drivers/passthrough/arm/smmu-v3.c
> @@ -346,10 +346,14 @@ static void queue_write(__le64 *dst, u64 *src, size_t n_dwords)
>  
>  static int queue_insert_raw(struct arm_smmu_queue *q, u64 *ent)
>  {
> +	__le64 *q_addr = Q_ENT(q, q->llq.prod);
> +
>  	if (queue_full(&q->llq))
>  		return -ENOSPC;
>  
> -	queue_write(Q_ENT(q, q->llq.prod), ent, q->ent_dwords);
> +	queue_write(q_addr, ent, q->ent_dwords);
> +	if (q->non_coherent)
> +		clean_dcache_va_range(q_addr, q->ent_dwords * sizeof(*q_addr));
I think it would be better to move the cache operation to queue_{write,read} to
avoid having to repeat them at each occurence of the helpers.

~Michal



From xen-devel-bounces@lists.xenproject.org Fri Aug 22 08:19:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 08:19:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089701.1447201 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upMzp-0000Sm-8g; Fri, 22 Aug 2025 08:19:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089701.1447201; Fri, 22 Aug 2025 08:19: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 1upMzp-0000Sf-5R; Fri, 22 Aug 2025 08:19:37 +0000
Received: by outflank-mailman (input) for mailman id 1089701;
 Fri, 22 Aug 2025 08:19:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=RDWw=3C=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1upMzo-0000SZ-2Y
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 08:19:36 +0000
Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com
 [2a00:1450:4864:20::633])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bc9fa00d-7f30-11f0-a32b-13f23c93f187;
 Fri, 22 Aug 2025 10:19:34 +0200 (CEST)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-afcb6856dfbso330724166b.1
 for <xen-devel@lists.xenproject.org>; Fri, 22 Aug 2025 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
 a640c23a62f3a-afded2ba3a4sm560433866b.13.2025.08.22.01.19.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 22 Aug 2025 01:19: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>
X-Inumbo-ID: bc9fa00d-7f30-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755850774; x=1756455574; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4dcUSGcxU6eotDtJDY8oRYnaaw4k3P7G0g7uUvfOK7U=;
        b=T/wlyyrJs2ySZyqvfqwQxw1wUt1wW5A67LERRcUby1O1t303L1sEGZ+s3uxH/sTWGz
         QCXAFOgSnQKtJGysvWEOXmSd50oAccamYpgh5Im4ZPSKdwjqL9gIZbNdaxlgUn//w619
         zwrA04G+s9VvlF9pY7ZlS6Ex34FhQXODVnEe2Hh6opXgKW77TnxSWXvWRNUXbbaAwmeZ
         BVFvGJGH+4LYsDiriE2zhaiMaloU8ZWfw+SHeuEBmh7yehq5QDwBtMNhDGEXYH3y4LGt
         ytkqvqCKxgKovJtvcSkXxUY8ePMXBESZrE6z40KGpA0MZDfuxtk3JSHfZWiXDui4lUKX
         wBqQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755850774; x=1756455574;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4dcUSGcxU6eotDtJDY8oRYnaaw4k3P7G0g7uUvfOK7U=;
        b=H6u4JJ5Gy1Lxvbo2ZvDgLTKI5oHeStvEHxjTuUBX9UuXnFcgAklsr0Ol43bILr2M3C
         za31HWTdjP/eNF4up3G+CCqu3PmG4n1Vx3ymW97oKDxD9A2COYAgNAH7DDfAtyGxuQcn
         DiCUIuVXhmDSiH5SVorzhL/5iQmNFNOLpKaviAFz8TRl56+ReBHWe1D/WULg+WdWgS59
         qYnUzh/HENkgdimXCC4T9zzibjmqCRapNMH6lPU0Z/T3iTvMqY8IVmoVoRHa8y+vcR5+
         hTETK7pdF9dd7moDOTZpccQBRfxLGuELkMCdc09gMveZyLP0f+qsWQXcw2WOFI6oj+yK
         eUmA==
X-Forwarded-Encrypted: i=1; AJvYcCVt73tzuUNlAtigozXRLDiA8j4zLSw/sv4VxRkPKlPZ1U5Bq8BblOasBdZ7U2Jr+Rkr+dBKUCB+RsM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwYZBYaMnttiRuuLmGgdM3PC468PRsSqnAxaQxWi/tIfadTOr2k
	fy+LHA5tnjsK4JW0jBHi5fulLWWWF7ZTDF5FoAmWKgnoLdx4LSVvxYtH5WzogNjtgQ==
X-Gm-Gg: ASbGnctUN/4o6xouadYa5XJpLJMmXoXruwyxfE8xK1Lqo+1LrtUXYP9wWB1LHub8eJF
	gnoWY+27GJaGFC0Bc9PGh8yAoGOD0DwmAoNM4JuXGOTOW0YGe3xF8HcQFViW4TMVxCgyKUpug0k
	rrZM8yMW0tqgHrBY2PiZRhaVOHQ+ZEf464IEIJkO+ndYKr37JLyhzBXZgVf1+GrY4mJZmrfOybT
	32Lfn5F2zYY368i5XMlRnmBKtLUN+pZgkVHxlFep4rcqVim/xinwUf8keFtvG1bdYtmDHIxEBtY
	V6uKdoQe6r2W7+vhJpUoe/GS16bhDNTiki8WIBunmpHb0LxhBRERaJuwOtiFeI1Malia5zxDMYj
	Q3kjzm09eYKEtuSCNyg6ozJeEa4p41A8Qf3Gg2nEIO9TfnEY4FcDvdIEDfHtVex46fx8mYKvbHZ
	zAhJipssk=
X-Google-Smtp-Source: AGHT+IGhcfam/c5psyVUGAgc8ruBu+isM94kjmoSiTpBewOQo+UiDxKnPnX9GTqU596uxHtMwZSSMA==
X-Received: by 2002:a17:907:3f2a:b0:afa:1d2c:bbd1 with SMTP id a640c23a62f3a-afe296e71f2mr206274566b.30.1755850769409;
        Fri, 22 Aug 2025 01:19:29 -0700 (PDT)
Message-ID: <2ba28d38-3251-492e-b7d8-a626dcaa1035@suse.com>
Date: Fri, 22 Aug 2025 10:19:27 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/3] xen/pci: add discovered PCI device at boot
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: Luca Fancellu <luca.fancellu@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?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>
References: <cover.1755683961.git.mykyta_poturai@epam.com>
 <bb2589996131b0e7e645c0af281b9862e2e0f4cb.1755683961.git.mykyta_poturai@epam.com>
 <26bad9fb-3c4b-4423-a443-3406d07d56e0@suse.com>
 <df2d1f6a-23bc-4451-a91f-a484b448c467@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: <df2d1f6a-23bc-4451-a91f-a484b448c467@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.08.2025 10:03, Mykyta Poturai wrote:
> On 21.08.25 12:08, Jan Beulich wrote:
>> On 20.08.2025 14:28, Mykyta Poturai wrote:
>>> From: Luca Fancellu <luca.fancellu@arm.com>
>>>
>>> In dom0less mode, there is no dom0 that can call PCI physdev ops to
>>> register PCI devices to iommu, so it needs to be done by Xen.
>>> pci_add_device requires some default domain, we don't have hwdom, and
>>> the guests are not yet created during the PCI init phase, so use dom_io
>>> as a temporary sentinel before devices are assigned to their target
>>> domains.
>>>
>>> Rename setup_hwdom_pci_devices to setup_pci_devices and add dom0less
>>> handling to it.
>>>
>>> In pci_add_device there is a call to xsm that doesn't consider the
>>> requester of the function to be Xen itself, so add a check to skip
>>> the call if the owner domain is dom_io, since it means the call is
>>> coming directly from Xen.
>>>
>>> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
>>> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
>>> ---
>>> (cherry picked from commit eff51e50021b75f5a50533f7de681b2ce044f5bd from
>>>   the downstream branch poc/pci-passthrough from
>>>   https://gitlab.com/xen-project/people/bmarquis/xen-arm-poc.git
>>>
>>> v1->v2:
>>> * integrate add_discovered_pci_devices into existing routines
>>> * better explain the need for dom_io
>>
>> What I continue to miss is an explanation of why devices can't go to their
>> ultimate "destination" domain right away (once those have been created),
>> i.e. why the dom_io intermediary is necessary in the first place.
> 
> I've done some testing and indeed everything seems to work if we call 
> pci_add_device directly during domain construction instead of 
> reassigning them. Do you think this would be a better approach?

I think so, yes, but first and foremost you'll need Arm maintainer buyoff
on either approach (or yet another one).

Jan

> If so 
> then I guess this series needs to be dropped, and I will prepare a new 
> one with direct device assignment to DomUs.




From xen-devel-bounces@lists.xenproject.org Fri Aug 22 08:28:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 08:28:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089716.1447211 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upN7q-0002GV-07; Fri, 22 Aug 2025 08:27:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089716.1447211; Fri, 22 Aug 2025 08:27: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 1upN7p-0002GO-Tg; Fri, 22 Aug 2025 08:27:53 +0000
Received: by outflank-mailman (input) for mailman id 1089716;
 Fri, 22 Aug 2025 08:27:52 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1jNg=3C=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1upN7o-0002GI-L7
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 08:27:52 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id df367fa1-7f31-11f0-b898-0df219b8e170;
 Fri, 22 Aug 2025 10:27:42 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by PAVPR03MB9725.eurprd03.prod.outlook.com (2603:10a6:102:315::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.15; Fri, 22 Aug
 2025 08:27:38 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Fri, 22 Aug 2025
 08:27: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>
X-Inumbo-ID: df367fa1-7f31-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=i32nEOUcgjs0lqSJCEbOapmFw7juNSfBARbn2M8wVqMdSKIRLsGps9F+qP+qlc1TFmcM9DZLxks/0E1dYvqDfXc/v73MfYmmK2NOfG2bS1cIUQXuu0KoFS1UnXcOcDjEM2yelkQDZLJsq8uBWf2Vi3GzgSXBjwZMtKC2AXx6Do/YGJnCkefT7SJtHdkd1iIgvYHljRQC0R80/krDsHQZR8+CWyIaj6wW5JVIFOnj2hnmEv+nA0zNzOu7rxXLU116lrFhIm6RXSd+1zLE4sMKPn2/q32KObGaHOO4Z5lLu85o8s1JlY26gyGHJAHjkWxBfeX35wAeddh1u8bn1uNIwQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4gBkG1G/5PDhPvKFUevAYiYhdAxYopxKWDhjD91nqRI=;
 b=hDl0ZAa6w01Ud8YutFmdtoAHTudS2Apmx+MLHh8R6717hW/bDiV08EHcx5AdbzWqPX/CRHJ5ojL0ROE1EmwrX6CLQDod1EQGAGFVbifiNh5P08+ICGXlTaQGQ7Y93cjq3zqs9X7xaBJLQ3zCUxt83+jsdItG9chxCViGhUOZ/K4OrdhfhLaknEIUWu5M5iKd/4wb1Kf6KL7NNTBbDEmaczrXqRZCC88wagKjacIVQ2ClcfVk0g79VYB38v2pT8bH182YLzz/CCDSXhiHeXpRFdqpLucHp8QPvzphI1BDk9Tij8ai47IgfgSNhX3DzFU/tMLDQ4VPfMc2t4aMvwE+hw==
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=4gBkG1G/5PDhPvKFUevAYiYhdAxYopxKWDhjD91nqRI=;
 b=QJ7XU2UhqEr9tvLr2qkx71Qnz9rQZR5WDvxRJI1hz4kZ8XwdfdBTVOuF3F1/ediasvUXrFqzHtusZQLlloNzvYm3RcDFNRouq6tC5iGXmqrzncleP5JaIxMmNZSgjgutpNIVmaUoCNsRJzF82ex1L1YCaopCJMDpzjCEO/RRh7hIb19FybXxSEuoOwTDdh4q+RR8Rzk8b50BfidQSwTvYg75poWAzB949Ox2/4UwG7Rpf+BEgu6ayPThRFvHKdkjUspmI6PjjqjjwMPiHJRnKF5a+SKOYQLTVVlz8eX9cahEuPq9fuOWZpEZcreUWLCYKcxLT6Jj0CaOEhoOmw/Mhg==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v2 08/10] xen/arm: vgic: add resource management for
 extended SPIs
Thread-Topic: [PATCH v2 08/10] xen/arm: vgic: add resource management for
 extended SPIs
Thread-Index: AQHcB5d8BuZ0dq8rx0Owht+h5hVtIrRubgyA
Date: Fri, 22 Aug 2025 08:27:37 +0000
Message-ID: <5e74b95a-9a22-43b0-ba49-e07df4b0c90c@epam.com>
References:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
 <fde65754a60a8cc090bb212749ec2c10877c4943.1754568795.git.leonid_komarianskyi@epam.com>
 <87tt20d3rn.fsf@epam.com>
In-Reply-To: <87tt20d3rn.fsf@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: GV2PR03MB8678:EE_|PAVPR03MB9725:EE_
x-ms-office365-filtering-correlation-id: 62b8f224-de12-427d-3665-08dde155c0b3
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?WWgwaURIVnJrRXpPa1FybTJlTzdtYUMwQlRwQldpRlZRS2VhdjV5aUF6dC8y?=
 =?utf-8?B?ek5pMmlTY2lSQlhDRmp2eFBxSTZjUUdHSVlPZ0szM1RZSFVMdWx2TDI0ZlVm?=
 =?utf-8?B?N2thU3pqM3A2WThQQ01sUlBLdEZYWDBqK3VLRmNnUWtxRWp1dEdnY2haYWE0?=
 =?utf-8?B?MEJMdkF6anZ5K3AxWXB3TFdUVU5tSU1ja24zNS9jNmRsaThrMlkwKzhkN2kw?=
 =?utf-8?B?cThoeUdpWWhKTGRqY3IxWVhMSjhYb21RZ3hYdVB4MFUyODYySlhSMFFTTTJ4?=
 =?utf-8?B?eUpFUXgxK00xekVoYzlRbFhVdTdaMTRrTVdWT3Y0V3NKS0lCekx4YzYzZ05m?=
 =?utf-8?B?QXpWclc1ZStpM1B4dWFXZU1Va2JyM3V6Y2xod21ya1hhbFYxcGR0aDZyRUFF?=
 =?utf-8?B?TjNMS2FScHRGcnB6UnhtZnZXZFpqeXBhZlliWTNvaUxXSTFvMTJBTTlNWVZq?=
 =?utf-8?B?Z2sxdCt5ZmxzaGN0ZUgzRXluZmFIRHl6TjdOQ2E0MWZmY29ramZ5cEliYis3?=
 =?utf-8?B?Y0tWNEZTL1E1S3FtTUduK21SMUtITWgrTDNxTy9uY3pXUzVlMllSR1ltSHRz?=
 =?utf-8?B?Qjk0WWRXeDQ5ek13Z0tXbG5pWFpnUWV2QUFxWnpDbGF2MTdpWVI0RlowWUE1?=
 =?utf-8?B?VVMrclp5SUNYbTh1SFBUZU1PcFlWQjh6SzJpTUZhQVFKdnMyM0pNVDdQS3dm?=
 =?utf-8?B?VzNZbTVoNnJVUXFKNWhoNXBFTWk4U25VeVR5RVMvNFlUOGFUTDRMRSt2cjBv?=
 =?utf-8?B?cHJ1NGVaeHM3Z2pPdnRna2Y4bzdaUWtUekZ3YnM2SjNZeVdPNDNYRUZSZmQ1?=
 =?utf-8?B?R09nTXUzOWJTODI0LzRjNW5SRGdvT3IwMHVtMnpKVC9RYUxDeTh2eDFQclhL?=
 =?utf-8?B?eTk0TUhhSG0vNWRTbGFKTzRBVmZZU2tydHhlblFjN3Boc2pTVldVaDVBcWUw?=
 =?utf-8?B?V3ZGRjdyZG5DbG5mZ3diUE9tdWFNeFRXMktSTDM5bitJaXpQdmZyczl2ck1n?=
 =?utf-8?B?SHdCSFRNTmRGV3I1amsrK0VKYUJtUVE3VS9nU0lrZ1JhcmZkUUgzc2JGeFBZ?=
 =?utf-8?B?dXR4ZklUMnZKd2I0RXBGQjZONUx3L0lmOGZKUWptQkNlMDJJNnQ0b3hjQlhI?=
 =?utf-8?B?TEErQkpFUmxSMXk2a1JBMXo1WWxCS0g4dVJuUmJPZGxyaHF1dEIrd3V0b3I1?=
 =?utf-8?B?TEl5R1hXeFFjWWhLb2RyUVZoVVFMQklwOHFjQ3NGa0ZPb3V4Q1h4dHhtcUJ1?=
 =?utf-8?B?RWJ2VjdhL290YythS1JWUzQzTjBSS0dEWnEwR2JLYmVCVFlVYXBERmRQU1dI?=
 =?utf-8?B?cmk2VDExMkRoMUV1UTJpK2JvTTRhZDFKTnp0emFxMDBtbTJhWVBEUk90TkRo?=
 =?utf-8?B?VDY2V21Nby9JVnVOempSMTFoZERyV1F0U0Fxa3djMm8xZnYyMWwvZmFkUEh3?=
 =?utf-8?B?YlJyNS9iQmNUUmpFVysyVS8xUjFjUFYyZklFM2t1dExnM0pueW9qdG1peEJs?=
 =?utf-8?B?R1Vra0NVUmhhL2N0eGxUZno5VUxaVzlieUJUMm8yYk1OUjYyYkwzK0dTTlQ0?=
 =?utf-8?B?U21FMFpZcmQyNkdqYlhHVWJZbDRMNU4walA2aXdOOXcyRXp3RUN6eXkrV042?=
 =?utf-8?B?R2c4UmhoaFJPbjhCMTFrNXhabU5MTXdxbm9zYU54RGtHVDFucVM1ODg5Ynln?=
 =?utf-8?B?YitjVXhyd1ZhZGp5a0VBRjdxNGpwQnpsTUNQd3N2d1EzRUIvT1pjLzJjUkJR?=
 =?utf-8?B?VjUwZktHdWVLR093SjNUaWFaTVh2MVZvbzhzQThhOXh6U0xIbzFQcVYvRDlo?=
 =?utf-8?B?SWhaNytncVN2a2NLM0ljQ2I2S3laellLY3dMSUp4T0luVXpmVHpCYlE2TjBR?=
 =?utf-8?B?V1ZFS09PenAvc3Y2WGNNaWtmeDIyRmFMWnFuSHEyVURoOWFKdVZlMmRBUHVH?=
 =?utf-8?B?d3hoa3E4WUYxQm1ZMWdpcmp0RVd0Tm4vNk56ZXRWc01qNzNmMldmSGdWbElV?=
 =?utf-8?B?ZUVNd2V6RzV3PT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?QWp6N3dSNExhc0wvOHdYMlVvb1p1ZXB6dVZOUTN3RDNjR3VDamFHR0VGVHkw?=
 =?utf-8?B?cDFWSllaVnl2bzZjbVlqaGZYTDN5OXhPRG1vNGNjRlF1elQzMkVFVEdqNytP?=
 =?utf-8?B?dFp5TW9zMldrbkVrNGh2K1pOdk5JNTh0eURaRnZEN0M1ZUNyckk0Z3RubTY3?=
 =?utf-8?B?SEFZTUlsVXpaeU1GM3MwWFBXRUZ1TGdHTm11UWNaT3R6VmU1dG5rQTVVdUYy?=
 =?utf-8?B?eGQrakxtM0lIdy9WT3pReGE2YTNCeVVDaXlZVXJGZkZvb1pTSStDcVY0Vllp?=
 =?utf-8?B?UFhrbDZMc1VES2h3UUxZVnNsQlpPYzdOY1NWZG1iNkg2d0RIK05vejZFcUd4?=
 =?utf-8?B?SmM4eHJiMllzbEtHeW04MzJURE81WWZ3YXRtNCsvY1BPTHZCTUhCdTJCOS8w?=
 =?utf-8?B?V1YwVFpsTjNDWnZqSjNPdHRkSmFOb0wrSXpCUmRwbFZXa1JHMUVwYjUvZnBa?=
 =?utf-8?B?d3JFaHkwaWxpT3pETDRaMEdGZVNEbkhDcVBHWVpSWTVlN2JuL3N6Rm4zSzN0?=
 =?utf-8?B?aEp6UGJlQ1lkanlxaVFGMWY0SGpab2V4ZzJsMG03U3c3OHRYVWptdjI0bkZS?=
 =?utf-8?B?L0VkL3VQUXVwSXcrdEFmK2F2dG9UUVlKbHk4UEFjcHcwSGtKRkUzbUlta1Ja?=
 =?utf-8?B?VS9QallaOW50b0ViTnVhb29hVFoyRG85ZTNSQkk5VGJZTjFSaFFaYUwrUEEz?=
 =?utf-8?B?NXpSdytyMUU0ZE9scDRsazVLY3pkTW84NzZkTTYwbWV1d0VvS3dnYTkzK3Fu?=
 =?utf-8?B?anpPZVB3Y3puQlFKdVNPdFZxdTBJVk84YUU5RExOR1V2R0VqQUdKRWx5ZVJC?=
 =?utf-8?B?Y3JMVEh0VzRWdEtjMnVkT2liNVp4L01UNHNFTFhyaWtRUmhkRTI5NjhsdUZo?=
 =?utf-8?B?VWhwR2hFOEhKT1lrcEQ3RDRmK2ZDNGlZK0E3UURDcUtCRjIzWnlNTUluRnpT?=
 =?utf-8?B?aCtqMkxYUDIxZFJxMEcrUFRxb0RzMmg0SCtiYk5tc2xWTnc0blg0ZyszSGZO?=
 =?utf-8?B?aWQ1T2FTdEpjMWtyVUF6R0svZVNPa01Fd2tqa2l3ZzJyWVoxb05oNVJMYmJL?=
 =?utf-8?B?cEo1dVY5a3pmeVo2eEc1ZTZwWUdyWUdlZjVraXl1MGRYSUJZY0Y0Z3prMStQ?=
 =?utf-8?B?Q3pIa1h5MHJULzVpZGZXV3ZBSjk5NGkzcGFocWZ5R0RsQktSVU1zeUVNczJ6?=
 =?utf-8?B?K3FLS3ZFVUVzUjRxQ0VwcGpzR3ZRa1Z2SzlVQnNuRUUveU9OanRWY0lnVS80?=
 =?utf-8?B?bjAwN3hDRVY5SG82c0M3MGxnbzlUbkJqSldHRFBGTFRHZUl5VnQvNDBxb2xm?=
 =?utf-8?B?Z3o2cDlZN3k3c3Q1aks1N0JIWHJVaHFVWC9mOWtKRTNnajVYRHpBdHZNQWFI?=
 =?utf-8?B?a2hkbDhpbTZWdU0wTW1uNEp2NVlSK29RM0dXVnJoSU9qUHBhZ3BweG9ONEt2?=
 =?utf-8?B?b2FaRGNFRGdKTGRvWG9IQ2JvWnBHWjZiMlhWRnZRQ3dqUFBsS1Z1UWpKUmJu?=
 =?utf-8?B?U1YyMzZyUEdJWE05RlFqT1FJMExudlI1K09uSmNmd3k3WHlSRm1HbHhiaFJH?=
 =?utf-8?B?cnlXSkVjdFpHMldYajc0SE9nQzdOZWJaZFlqQ081SElNdUlJV0RKRUcxUzRv?=
 =?utf-8?B?dmg3bjNDWDJ1M0t6bWRvS1IwNlBLdWFEZlJ0b2k1bk91cTR6bzkrbVJzd0dn?=
 =?utf-8?B?QnFJajhWRkdXS0xtTzBJNkR0alhoVVFoRlpKR3N4LzNyM3hudUQ4Y28yU0Zk?=
 =?utf-8?B?RmFUQ1R0MHlSOVE2SVIxOUt1cVFmOTJuRUVMeVJxaXZ6QUhaWnpLcDNML3ow?=
 =?utf-8?B?WXk5M0tBZGpTblk0L3dma1E1Qmk0L25LNXRoZGE5R29kMFh0VXZQcm9IQ2Iy?=
 =?utf-8?B?SEJKOHdiWmxxMDZQcTlYREpDeWVxNFFWR2tzc2hNNlJrK0ttREZrL3JoZ2Zz?=
 =?utf-8?B?MVlsdi9RNlhZMDJhN1ptSVBnenp0VXdzSU5yT1owcUNZOFZqSkp5MnpHZ3Jm?=
 =?utf-8?B?ZFlCL2gybTByWHU2T3VpZTE3bkZJZW55YytHbk9DTVMxQWttK2RjeVNRdHhh?=
 =?utf-8?B?S01VczA4Z0ZlUnVaUkFueUtwV1BiR1ZxVDkzZmVEbDJSbVNKSzhETWVnT0xV?=
 =?utf-8?B?RUpOOHZINVV5ZnR4enZyZEYxWXJZTHR3VUZpV3lUMGUzbXpWZU8xa1FROEpN?=
 =?utf-8?Q?q6apBlH4g1gTDbIdJxS+3rs=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <14F4732DA1FFCB408A6A83278F1B759B@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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 62b8f224-de12-427d-3665-08dde155c0b3
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Aug 2025 08:27:37.7407
 (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: 6u3bri7uoedPKMOKmN5yuwNRfOfygPek9bb3s6CSdxa6nn0V62y0qoVaJKMWdyN66RGH5o3Dy6He3SVDZ/2coGgDsLGvJPX/HvE+940ODB0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR03MB9725

SGkgVm9sb2R5bXlyLA0KDQpUaGFuayB5b3UgZm9yIHlvdXIgcmV2aWV3IGNvbW1lbnRzLg0KDQpP
biAyMS4wOC4yNSAxOTo0MywgVm9sb2R5bXlyIEJhYmNodWsgd3JvdGU6DQo+IA0KPiBMZW9uaWQg
S29tYXJpYW5za3lpIDxMZW9uaWRfS29tYXJpYW5za3lpQGVwYW0uY29tPiB3cml0ZXM6DQo+IA0K
Pj4gVGhpcyBjaGFuZ2UgaW50cm9kdWNlcyByZXNvdXJjZSBtYW5hZ2VtZW50IGluIHRoZSBWR0lD
IHRvIGhhbmRsZQ0KPj4gZXh0ZW5kZWQgU1BJcyBpbnRyb2R1Y2VkIGluIEdJQ3YzLjEuIFRoZSBw
ZW5kaW5nX2lycXMgYW5kDQo+PiBhbGxvY2F0ZWRfaXJxcyBhcnJheXMgYXJlIHJlc2l6ZWQgdG8g
c3VwcG9ydCB0aGUgcmVxdWlyZWQNCj4+IG51bWJlciBvZiBlU1BJcywgYmFzZWQgb24gd2hhdCBp
cyBzdXBwb3J0ZWQgYnkgdGhlIGhhcmR3YXJlIGFuZA0KPj4gcmVxdWVzdGVkIGJ5IHRoZSBndWVz
dC4gQSBuZXcgZmllbGQsIGV4dF9zaGFyZWRfaXJxcywgaXMgYWRkZWQNCj4+IHRvIHRoZSBWR0lD
IHN0cnVjdHVyZSB0byBzdG9yZSBpbmZvcm1hdGlvbiBhYm91dCBlU1BJcywgc2ltaWxhcg0KPj4g
dG8gaG93IHNoYXJlZF9pcnFzIGlzIHVzZWQgZm9yIHJlZ3VsYXIgU1BJcy4NCj4+DQo+PiBTaW5j
ZSB0aGUgZVNQSSByYW5nZSBzdGFydHMgYXQgSU5USUQgNDA5NiBhbmQgSU5USURzIGJldHdlZW4g
MTAyNQ0KPj4gYW5kIDQwOTUgYXJlIHJlc2VydmVkLCBoZWxwZXIgbWFjcm9zIGFyZSBpbnRyb2R1
Y2VkIHRvIHNpbXBsaWZ5IHRoZQ0KPj4gdHJhbnNmb3JtYXRpb24gb2YgaW5kaWNlcyBhbmQgdG8g
ZW5hYmxlIGVhc2llciBhY2Nlc3MgdG8gZVNQSS1zcGVjaWZpYw0KPj4gcmVzb3VyY2VzLiBUaGVz
ZSBjaGFuZ2VzIHByZXBhcmUgdGhlIFZHSUMgZm9yIHByb2Nlc3NpbmcgZVNQSXMgYXMNCj4+IHJl
cXVpcmVkIGJ5IGZ1dHVyZSBmdW5jdGlvbmFsaXR5Lg0KPj4NCj4+IFRoZSBpbml0aWFsaXphdGlv
biBhbmQgZGVpbml0aWFsaXphdGlvbiBwYXRocyBmb3IgdmdpYyBoYXZlIGJlZW4gdXBkYXRlZA0K
Pj4gdG8gYWxsb2NhdGUgYW5kIGZyZWUgdGhlc2UgcmVzb3VyY2VzIGFwcHJvcHJpYXRlbHkuIEFk
ZGl0aW9uYWxseSwNCj4+IHVwZGF0ZWQgaGFuZGxpbmcgb2YgSU5USURzIGdyZWF0ZXIgdGhhbiAx
MDI0LCBwYXNzZWQgZnJvbSB0aGUgdG9vbHN0YWNrDQo+PiBkdXJpbmcgZG9tYWluIGNyZWF0aW9u
LCBhbmQgdmVyaWZpY2F0aW9uIGxvZ2ljIGVuc3VyZXMgb25seSB2YWxpZCBTUEkgb3INCj4+IGVT
UEkgSU5USURzIGFyZSB1c2VkLg0KPj4NCj4+IFRoZSBleGlzdGluZyBTUEkgYmVoYXZpb3IgcmVt
YWlucyB1bmFmZmVjdGVkIHdoZW4gZ3Vlc3RzIGRvIG5vdCByZXF1ZXN0DQo+PiBlU1BJcywgR0lD
IGhhcmR3YXJlIGRvZXMgbm90IHN1cHBvcnQgdGhlbSwgb3IgdGhlIENPTkZJR19HSUNWM19FU1BJ
DQo+PiBvcHRpb24gaXMgZGlzYWJsZWQuDQo+Pg0KPj4gU2lnbmVkLW9mZi1ieTogTGVvbmlkIEtv
bWFyaWFuc2t5aSA8bGVvbmlkX2tvbWFyaWFuc2t5aUBlcGFtLmNvbT4NCj4+DQo+PiAtLS0NCj4+
IENoYW5nZXMgaW4gVjI6DQo+PiAtIGNoYW5nZSBpc19lc3BpX3JhbmsgdG8gaXNfdmFsaWRfZXNw
aV9yYW5rIHRvIHZlcmlmeSB3aGV0aGVyIHRoZSBhcnJheQ0KPj4gICAgZWxlbWVudCBleHRfc2hh
cmVkX2lycXMgZXhpc3RzLiBUaGUgcHJldmlvdXMgdmVyc2lvbiwgaXNfZXNwaV9yYW5rLA0KPj4g
ICAgb25seSBjaGVja2VkIGlmIHRoZSByYW5rIGluZGV4IHdhcyBsZXNzIHRoYW4gdGhlIG1heGlt
dW0gcG9zc2libGUgZVNQSQ0KPj4gICAgcmFuayBpbmRleCwgYnV0IHRoaXMgY291bGQgcG90ZW50
aWFsbHkgcmVzdWx0IGluIGFjY2Vzc2luZyBhDQo+PiAgICBub24tZXhpc3RpbmcgYXJyYXkgZWxl
bWVudC4gVG8gYWRkcmVzcyB0aGlzLCBpc192YWxpZF9lc3BpX3Jhbmsgd2FzDQo+PiAgICBpbnRy
b2R1Y2VkLCB3aGljaCBlbnN1cmVzIHRoYXQgdGhlIHJlcXVpcmVkIGVTUEkgcmFuayBleGlzdHMN
Cj4+IC0gbW92ZSBnaWNfbnVtYmVyX2VzcGlzIHRvDQo+PiAgICB4ZW4vYXJtOiBnaWN2MzogaW1w
bGVtZW50IGhhbmRsaW5nIG9mIEdJQ3YzLjEgZVNQSQ0KPj4gLSB1cGRhdGUgdmdpY19pc192YWxp
ZF9pcnEgY2hlY2tzIHRvIGFsbG93IG9wZXJhdGluZyB3aXRoIGVTUElzDQo+PiAtIHJlbW92ZSBy
ZWR1bmRhbnQgbmV3bGluZSBpbiB2Z2ljX2FsbG9jYXRlX3ZpcnENCj4+IC0tLQ0KPj4gICB4ZW4v
YXJjaC9hcm0vaW5jbHVkZS9hc20vdmdpYy5oIHwgIDE4ICsrKysNCj4+ICAgeGVuL2FyY2gvYXJt
L3ZnaWMuYyAgICAgICAgICAgICB8IDE0NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
Kw0KPj4gICAyIGZpbGVzIGNoYW5nZWQsIDE2MyBpbnNlcnRpb25zKCspDQo+Pg0KPj4gZGlmZiAt
LWdpdCBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS92Z2ljLmggYi94ZW4vYXJjaC9hcm0vaW5j
bHVkZS9hc20vdmdpYy5oDQo+PiBpbmRleCA0NTIwMWY0Y2E1Li45ZmE0NTIzMDE4IDEwMDY0NA0K
Pj4gLS0tIGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3ZnaWMuaA0KPj4gKysrIGIveGVuL2Fy
Y2gvYXJtL2luY2x1ZGUvYXNtL3ZnaWMuaA0KPj4gQEAgLTE0Niw2ICsxNDYsMTAgQEAgc3RydWN0
IHZnaWNfZGlzdCB7DQo+PiAgICAgICBpbnQgbnJfc3BpczsgLyogTnVtYmVyIG9mIFNQSXMgKi8N
Cj4+ICAgICAgIHVuc2lnbmVkIGxvbmcgKmFsbG9jYXRlZF9pcnFzOyAvKiBiaXRtYXAgb2YgSVJR
cyBhbGxvY2F0ZWQgKi8NCj4+ICAgICAgIHN0cnVjdCB2Z2ljX2lycV9yYW5rICpzaGFyZWRfaXJx
czsNCj4+ICsjaWZkZWYgQ09ORklHX0dJQ1YzX0VTUEkNCj4+ICsgICAgc3RydWN0IHZnaWNfaXJx
X3JhbmsgKmV4dF9zaGFyZWRfaXJxczsNCj4+ICsgICAgaW50IG5yX2VzcGlzOyAvKiBOdW1iZXIg
b2YgZXh0ZW5kZWQgU1BJcyAqLw0KPj4gKyNlbmRpZg0KPj4gICAgICAgLyoNCj4+ICAgICAgICAq
IFNQSXMgYXJlIGRvbWFpbiBnbG9iYWwsIFNHSXMgYW5kIFBQSXMgYXJlIHBlci1WQ1BVIGFuZCBz
dG9yZWQgaW4NCj4+ICAgICAgICAqIHN0cnVjdCBhcmNoX3ZjcHUuDQo+PiBAQCAtMjQzLDYgKzI0
NywxNCBAQCBzdHJ1Y3QgdmdpY19vcHMgew0KPj4gICAvKiBOdW1iZXIgb2YgcmFua3Mgb2YgaW50
ZXJydXB0IHJlZ2lzdGVycyBmb3IgYSBkb21haW4gKi8NCj4+ICAgI2RlZmluZSBET01BSU5fTlJf
UkFOS1MoZCkgKCgoZCktPmFyY2gudmdpYy5ucl9zcGlzKzMxKS8zMikNCj4+ICAgDQo+PiArI2lm
ZGVmIENPTkZJR19HSUNWM19FU1BJDQo+PiArI2RlZmluZSBET01BSU5fTlJfRVhUX1JBTktTKGQp
ICgoKGQpLT5hcmNoLnZnaWMubnJfZXNwaXMrMzEpLzMyKQ0KPj4gKyNkZWZpbmUgRVhUX1JBTktf
TUlOIChFU1BJX0JBU0VfSU5USUQvMzIpDQo+PiArI2RlZmluZSBFWFRfUkFOS19NQVggKChFU1BJ
X01BWF9JTlRJRCszMSkvMzIpDQo+PiArI2RlZmluZSBFWFRfUkFOS19OVU0ySURYKG51bSkgKChu
dW0pLUVYVF9SQU5LX01JTikNCj4+ICsjZGVmaW5lIEVYVF9SQU5LX0lEWDJOVU0oaWR4KSAoKGlk
eCkrRVhUX1JBTktfTUlOKQ0KPj4gKyNlbmRpZg0KPj4gKw0KPj4gICAjZGVmaW5lIHZnaWNfbG9j
ayh2KSAgIHNwaW5fbG9ja19pcnEoJih2KS0+ZG9tYWluLT5hcmNoLnZnaWMubG9jaykNCj4+ICAg
I2RlZmluZSB2Z2ljX3VubG9jayh2KSBzcGluX3VubG9ja19pcnEoJih2KS0+ZG9tYWluLT5hcmNo
LnZnaWMubG9jaykNCj4+ICAgDQo+PiBAQCAtMzAyLDYgKzMxNCwxMiBAQCBleHRlcm4gc3RydWN0
IHZnaWNfaXJxX3JhbmsgKnZnaWNfcmFua19vZmZzZXQoc3RydWN0IHZjcHUgKnYsDQo+PiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQg
YiwNCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu
c2lnbmVkIGludCBuLA0KPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdW5zaWduZWQgaW50IHMpOw0KPj4gKyNpZmRlZiBDT05GSUdfR0lDVjNfRVNQSQ0K
Pj4gK2V4dGVybiBzdHJ1Y3QgdmdpY19pcnFfcmFuayAqdmdpY19leHRfcmFua19vZmZzZXQoc3Ry
dWN0IHZjcHUgKnYsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB1bnNpZ25lZCBpbnQgYiwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBuLA0KPj4gKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHMpOw0K
Pj4gKyNlbmRpZg0KPj4gICBleHRlcm4gc3RydWN0IHZnaWNfaXJxX3JhbmsgKnZnaWNfcmFua19p
cnEoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCBpcnEpOw0KPj4gICBleHRlcm4gdm9pZCB2
Z2ljX2Rpc2FibGVfaXJxcyhzdHJ1Y3QgdmNwdSAqdiwgdWludDMyX3QgciwgdW5zaWduZWQgaW50
IG4pOw0KPj4gICBleHRlcm4gdm9pZCB2Z2ljX2VuYWJsZV9pcnFzKHN0cnVjdCB2Y3B1ICp2LCB1
aW50MzJfdCByLCB1bnNpZ25lZCBpbnQgbik7DQo+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJt
L3ZnaWMuYyBiL3hlbi9hcmNoL2FybS92Z2ljLmMNCj4+IGluZGV4IDQ4ZmJhZjU2ZmIuLjFhNmM3
NjVhZjkgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vYXJjaC9hcm0vdmdpYy5jDQo+PiArKysgYi94ZW4v
YXJjaC9hcm0vdmdpYy5jDQo+PiBAQCAtMjcsOSArMjcsMjYgQEANCj4+ICAgDQo+PiAgIGJvb2wg
dmdpY19pc192YWxpZF9pcnEoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IHZpcnEpDQo+
PiAgIHsNCj4+ICsjaWZkZWYgQ09ORklHX0dJQ1YzX0VTUEkNCj4+ICsgICAgaWYgKCB2aXJxID49
IEVTUElfQkFTRV9JTlRJRCAmJiB2aXJxIDwgRVNQSV9JRFgySU5USUQoZC0+YXJjaC52Z2ljLm5y
X2VzcGlzKSApDQo+PiArICAgICAgICByZXR1cm4gdHJ1ZTsNCj4+ICsjZW5kaWYNCj4+ICsNCj4+
ICAgICAgIHJldHVybiB2aXJxIDwgdmdpY19udW1faXJxcyhkKTsNCj4+ICAgfQ0KPj4gICANCj4+
ICsjaWZkZWYgQ09ORklHX0dJQ1YzX0VTUEkNCj4+ICsvKg0KPj4gKyAqIFNpbmNlIGVTUEkgaW5k
ZXhlcyBzdGFydCBmcm9tIDQwOTYgYW5kIG51bWJlcnMgZnJvbSAxMDI0IHRvDQo+PiArICogNDA5
NSBhcmUgZm9yYmlkZGVuLCB3ZSBuZWVkIHRvIGNoZWNrIGJvdGggbG93ZXIgYW5kIHVwcGVyDQo+
PiArICogbGltaXRzIGZvciByYW5rcy4NCj4+ICsgKi8NCj4+ICtzdGF0aWMgaW5saW5lIGJvb2wg
aXNfdmFsaWRfZXNwaV9yYW5rKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCByYW5rKQ0K
Pj4gK3sNCj4+ICsgICAgcmV0dXJuICggcmFuayA+PSBFWFRfUkFOS19NSU4gJiYgRVhUX1JBTktf
TlVNMklEWChyYW5rKSA8IERPTUFJTl9OUl9FWFRfUkFOS1MoZCkgKTsNCj4gDQo+IEkgYW0gcHJl
dHR5IHN1cmUgdGhhdCBtYXggbGluZSBsZW5ndGggaW4gODAgc3ltYm9scywgYW5kIGhlcmUgeW91
IGhhdmUNCj4gbW9yZS4gQXMgd2VsbCBpbiBjb3VwbGUgb2Ygb3RoZXIgcGxhY2VzIGJlbG93Lg0K
PiANCg0KUHJldmlvdXNseSwgSSBoYWQgc2VlbiBjb2RlIGluIHRoZSBtYWlubGluZSB3aXRoIGxp
bmVzIGxvbmdlciB0aGFuIDgwIA0KY2hhcmFjdGVycywgc28gSSB0aG91Z2h0IHRoZSBtYXhpbXVt
IGxlbmd0aCB3YXMgMTAwLi4gSG93ZXZlciwgSSANCnJlY2hlY2tlZCB0aGUgQ09ESU5HX1NUWUxF
IGZpbGUgaW4gWGVuIGFuZCBpdCBpbmRlZWQgY29udGFpbnMgdGhlIGZvbGxvd2luZzoNCg0KID4g
TGluZXMgc2hvdWxkIGJlIGxlc3MgdGhhbiA4MCBjaGFyYWN0ZXJzIGluIGxlbmd0aC4gIExvbmcg
bGluZXMgc2hvdWxkDQogPiBiZSBzcGxpdCBhdCBzZW5zaWJsZSBwbGFjZXMgYW5kIHRoZSB0cmFp
bGluZyBwb3J0aW9ucyBpbmRlbnRlZC4NCg0KU28sIHllcywgbXkgbWlzdGFrZS4gSSB3aWxsIHJl
dmlzZSB0aGUgY29kZSBpbiB0aGUgcGF0Y2ggc2VyaWVzIGFuZCBmaXggDQp0aGUgcGxhY2VzIHdo
ZXJlIHRoZSBsaW5lIGxlbmd0aCBleGNlZWRzIDgwIGNoYXJhY3RlcnMuDQoNCj4+ICt9DQo+PiAr
I2VuZGlmDQo+PiArDQo+PiAgIHN0YXRpYyBpbmxpbmUgc3RydWN0IHZnaWNfaXJxX3JhbmsgKnZn
aWNfZ2V0X3Jhbmsoc3RydWN0IHZjcHUgKnYsDQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHJhbmspDQo+PiAgIHsNCj4+
IEBAIC0zNyw2ICs1NCwxMCBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCB2Z2ljX2lycV9yYW5rICp2
Z2ljX2dldF9yYW5rKHN0cnVjdCB2Y3B1ICp2LA0KPj4gICAgICAgICAgIHJldHVybiB2LT5hcmNo
LnZnaWMucHJpdmF0ZV9pcnFzOw0KPj4gICAgICAgZWxzZSBpZiAoIHJhbmsgPD0gRE9NQUlOX05S
X1JBTktTKHYtPmRvbWFpbikgKQ0KPj4gICAgICAgICAgIHJldHVybiAmdi0+ZG9tYWluLT5hcmNo
LnZnaWMuc2hhcmVkX2lycXNbcmFuayAtIDFdOw0KPj4gKyNpZmRlZiBDT05GSUdfR0lDVjNfRVNQ
SQ0KPj4gKyAgICBlbHNlIGlmICggaXNfdmFsaWRfZXNwaV9yYW5rKHYtPmRvbWFpbiwgcmFuaykg
KQ0KPj4gKyAgICAgICAgcmV0dXJuICZ2LT5kb21haW4tPmFyY2gudmdpYy5leHRfc2hhcmVkX2ly
cXNbRVhUX1JBTktfTlVNMklEWChyYW5rKV07DQo+PiArI2VuZGlmDQo+PiAgICAgICBlbHNlDQo+
PiAgICAgICAgICAgcmV0dXJuIE5VTEw7DQo+PiAgIH0NCj4+IEBAIC01Myw2ICs3NCwxNiBAQCBz
dHJ1Y3QgdmdpY19pcnFfcmFuayAqdmdpY19yYW5rX29mZnNldChzdHJ1Y3QgdmNwdSAqdiwgdW5z
aWduZWQgaW50IGIsDQo+PiAgICAgICByZXR1cm4gdmdpY19nZXRfcmFuayh2LCByYW5rKTsNCj4+
ICAgfQ0KPj4gICANCj4+ICsjaWZkZWYgQ09ORklHX0dJQ1YzX0VTUEkNCj4+ICtzdHJ1Y3Qgdmdp
Y19pcnFfcmFuayAqdmdpY19leHRfcmFua19vZmZzZXQoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVk
IGludCBiLA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
bnNpZ25lZCBpbnQgbiwgdW5zaWduZWQgaW50IHMpDQo+PiArew0KPj4gKyAgICB1bnNpZ25lZCBp
bnQgcmFuayA9IFJFR19SQU5LX05SKGIsIChuID4+IHMpKTsNCj4+ICsNCj4+ICsgICAgcmV0dXJu
IHZnaWNfZ2V0X3JhbmsodiwgcmFuayArIEVYVF9SQU5LX01JTik7DQo+PiArfQ0KPj4gKyNlbmRp
Zg0KPj4gKw0KPj4gICBzdHJ1Y3QgdmdpY19pcnFfcmFuayAqdmdpY19yYW5rX2lycShzdHJ1Y3Qg
dmNwdSAqdiwgdW5zaWduZWQgaW50IGlycSkNCj4+ICAgew0KPj4gICAgICAgdW5zaWduZWQgaW50
IHJhbmsgPSBpcnEgLyAzMjsNCj4+IEBAIC0xMTcsNiArMTQ4LDI5IEBAIGludCBkb21haW5fdmdp
Y19yZWdpc3RlcihzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgKm1taW9fY291bnQpDQo+
PiAgICAgICByZXR1cm4gMDsNCj4+ICAgfQ0KPj4gICANCj4+ICsjaWZkZWYgQ09ORklHX0dJQ1Yz
X0VTUEkNCj4+ICtzdGF0aWMgaW50IGluaXRfdmdpY19lc3BpKHN0cnVjdCBkb21haW4gKmQpDQo+
PiArew0KPj4gKyAgICBpbnQgaTsNCj4+ICsNCj4+ICsgICAgaWYgKCBkLT5hcmNoLnZnaWMubnJf
ZXNwaXMgPT0gMCApDQo+PiArICAgICAgICByZXR1cm4gMDsNCj4+ICsNCj4+ICsgICAgZC0+YXJj
aC52Z2ljLmV4dF9zaGFyZWRfaXJxcyA9DQo+PiArICAgICAgICB4emFsbG9jX2FycmF5KHN0cnVj
dCB2Z2ljX2lycV9yYW5rLCBET01BSU5fTlJfRVhUX1JBTktTKGQpKTsNCj4+ICsgICAgaWYgKCBk
LT5hcmNoLnZnaWMuZXh0X3NoYXJlZF9pcnFzID09IE5VTEwgKQ0KPj4gKyAgICAgICAgcmV0dXJu
IC1FTk9NRU07DQo+PiArDQo+PiArICAgIGZvciAoIGkgPSAwOyBpIDwgZC0+YXJjaC52Z2ljLm5y
X2VzcGlzOyBpKysgKQ0KPj4gKyAgICAgICAgdmdpY19pbml0X3BlbmRpbmdfaXJxKCZkLT5hcmNo
LnZnaWMucGVuZGluZ19pcnFzW2kgKyBkLT5hcmNoLnZnaWMubnJfc3Bpc10sIEVTUElfSURYMklO
VElEKGkpKTsNCj4+ICsNCj4+ICsgICAgZm9yICggaSA9IDA7IGkgPCBET01BSU5fTlJfRVhUX1JB
TktTKGQpOyBpKysgKQ0KPj4gKyAgICAgICAgdmdpY19yYW5rX2luaXQoJmQtPmFyY2gudmdpYy5l
eHRfc2hhcmVkX2lycXNbaV0sIGksIDApOw0KPj4gKw0KPj4gKyAgICByZXR1cm4gMDsNCj4+ICt9
DQo+PiArI2VuZGlmDQo+PiArDQo+PiAgIGludCBkb21haW5fdmdpY19pbml0KHN0cnVjdCBkb21h
aW4gKmQsIHVuc2lnbmVkIGludCBucl9zcGlzKQ0KPj4gICB7DQo+PiAgICAgICBpbnQgaTsNCj4+
IEBAIC0xMzEsNiArMTg1LDMwIEBAIGludCBkb21haW5fdmdpY19pbml0KHN0cnVjdCBkb21haW4g
KmQsIHVuc2lnbmVkIGludCBucl9zcGlzKQ0KPj4gICAgICAgICovDQo+PiAgICAgICBucl9zcGlz
ID0gUk9VTkRVUChucl9zcGlzLCAzMik7DQo+PiAgIA0KPj4gKyNpZmRlZiBDT05GSUdfR0lDVjNf
RVNQSQ0KPj4gKyAgICBpZiAoIG5yX3NwaXMgPiBFU1BJX01BWF9JTlRJRCApDQo+PiArICAgICAg
ICByZXR1cm4gLUVJTlZBTDsNCj4+ICsNCj4+ICsgICAgaWYgKCBpc19lc3BpKG5yX3NwaXMpICkN
Cj4+ICsgICAgew0KPj4gKyAgICAgICAgLyoNCj4+ICsgICAgICAgICAqIER1cmluZyBkb21haW4g
Y3JlYXRpb24sIHRoZSB0b29sc3RhY2sgc3BlY2lmaWVzIHRoZSBtYXhpbXVtIElOVElELA0KPj4g
KyAgICAgICAgICogd2hpY2ggaXMgZGVmaW5lZCBpbiB0aGUgZG9tYWluIGNvbmZpZyBzdWJ0cmFj
dGVkIGJ5IDMyLiBUbyBjb21wdXRlIHRoZQ0KPj4gKyAgICAgICAgICogYWN0dWFsIG51bWJlciBv
ZiBlU1BJIHRoYXQgd2lsbCBiZSB1c2FibGUgZm9yLCBhZGQgYmFjayAzMi4NCj4gDQo+IEkgdGhp
bmssIGFjY29yZGluZyB0byB0aGlzLCB5b3VyIGlmICggaXNfZXNwaSgpICkgY2hlY2sgaXMgd3Jv
bmcuIFNob3VsZA0KPiB5b3UgYWRkIDMyIGhlcmUgYXMgd2VsbD8NCg0KT2gsIHllcywgdGhlIHZl
cmlmaWNhdGlvbnMgYWJvdmUgZG8gbm90IHRha2UgaW50byBhY2NvdW50IHRoaXMgDQpzdWJ0cmFj
dGlvbiBvZiAzMiwgc28gdGhleSB3aWxsIGZhaWwgZm9yIHRoZSBmaXJzdCAzMiBlU1BJIElOVElE
cyBhbmQgDQptaXN0YWtlbmx5IGFsbG93IHByb2Nlc3NpbmcgSU5USURzIGdyZWF0ZXIgdGhhbiA1
MTE5LiBJIHdpbGwgZml4IHRoYXQgaW4gDQpWMyBieSBhZGRpbmcgMzIgdG8gbnJfc3BpcyBpZiBj
aGVja3MgYW5kIG1vdmluZyB0aGlzIGNvbW1lbnQgYWJvdmUgdGhlIA0KaWYgY2hlY2tzLg0KDQo+
IA0KPj4gKyAgICAgICAgICovDQo+PiArICAgICAgICBkLT5hcmNoLnZnaWMubnJfZXNwaXMgPSBt
aW4obnJfc3BpcyAtIEVTUElfQkFTRV9JTlRJRCArIDMyLCAxMDI0VSk7DQo+PiArICAgICAgICAv
KiBWZXJpZnkgaWYgR0lDIEhXIGNhbiBoYW5kbGUgcHJvdmlkZWQgSU5USUQgKi8NCj4+ICsgICAg
ICAgIGlmICggZC0+YXJjaC52Z2ljLm5yX2VzcGlzID4gZ2ljX251bWJlcl9lc3BpcygpICkNCj4+
ICsgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4+ICsgICAgICAgIC8qIFNldCB0aGUgbWF4
aW11bSBhdmFpbGFibGUgbnVtYmVyIGZvciBkZWZ1bHQgU1BJIHRvIHBhc3MgdGhlIG5leHQgY2hl
Y2sgKi8NCj4+ICsgICAgICAgIG5yX3NwaXMgPSBWR0lDX0RFRl9OUl9TUElTOw0KPj4gKyAgICB9
IGVsc2UNCj4+ICsgICAgew0KPj4gKyAgICAgICAgLyogRG9tYWluIHdpbGwgdXNlIHRoZSByZWd1
bGFyIFNQSSByYW5nZSAqLw0KPj4gKyAgICAgICAgZC0+YXJjaC52Z2ljLm5yX2VzcGlzID0gMDsN
Cj4+ICsgICAgfQ0KPj4gKyNlbmRpZg0KPj4gKw0KPj4gICAgICAgLyogTGltaXQgdGhlIG51bWJl
ciBvZiB2aXJ0dWFsIFNQSXMgc3VwcG9ydGVkIHRvICgxMDIwIC0gMzIpID0gOTg4ICAqLw0KPj4g
ICAgICAgaWYgKCBucl9zcGlzID4gKDEwMjAgLSBOUl9MT0NBTF9JUlFTKSApDQo+PiAgICAgICAg
ICAgcmV0dXJuIC1FSU5WQUw7DQo+PiBAQCAtMTQ1LDcgKzIyMywxMiBAQCBpbnQgZG9tYWluX3Zn
aWNfaW5pdChzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgbnJfc3BpcykNCj4+ICAgICAg
ICAgICByZXR1cm4gLUVOT01FTTsNCj4+ICAgDQo+PiAgICAgICBkLT5hcmNoLnZnaWMucGVuZGlu
Z19pcnFzID0NCj4+ICsjaWZkZWYgQ09ORklHX0dJQ1YzX0VTUEkNCj4+ICsgICAgICAgIHh6YWxs
b2NfYXJyYXkoc3RydWN0IHBlbmRpbmdfaXJxLCBkLT5hcmNoLnZnaWMubnJfc3BpcyArDQo+PiAr
ICAgICAgICAgICAgICAgICAgICAgIGQtPmFyY2gudmdpYy5ucl9lc3Bpcyk7DQo+PiArI2Vsc2UN
Cj4+ICAgICAgICAgICB4emFsbG9jX2FycmF5KHN0cnVjdCBwZW5kaW5nX2lycSwgZC0+YXJjaC52
Z2ljLm5yX3NwaXMpOw0KPj4gKyNlbmRpZg0KPj4gICAgICAgaWYgKCBkLT5hcmNoLnZnaWMucGVu
ZGluZ19pcnFzID09IE5VTEwgKQ0KPj4gICAgICAgICAgIHJldHVybiAtRU5PTUVNOw0KPj4gICAN
Cj4+IEBAIC0xNTYsMTIgKzIzOSwyMyBAQCBpbnQgZG9tYWluX3ZnaWNfaW5pdChzdHJ1Y3QgZG9t
YWluICpkLCB1bnNpZ25lZCBpbnQgbnJfc3BpcykNCj4+ICAgICAgIGZvciAoIGkgPSAwOyBpIDwg
RE9NQUlOX05SX1JBTktTKGQpOyBpKysgKQ0KPj4gICAgICAgICAgIHZnaWNfcmFua19pbml0KCZk
LT5hcmNoLnZnaWMuc2hhcmVkX2lycXNbaV0sIGkgKyAxLCAwKTsNCj4+ICAgDQo+PiArI2lmZGVm
IENPTkZJR19HSUNWM19FU1BJDQo+PiArICAgIHJldCA9IGluaXRfdmdpY19lc3BpKGQpOw0KPj4g
KyAgICBpZiAoIHJldCApDQo+PiArICAgICAgICByZXR1cm4gcmV0Ow0KPj4gKyNlbmRpZg0KPj4g
Kw0KPj4gICAgICAgcmV0ID0gZC0+YXJjaC52Z2ljLmhhbmRsZXItPmRvbWFpbl9pbml0KGQpOw0K
Pj4gICAgICAgaWYgKCByZXQgKQ0KPj4gICAgICAgICAgIHJldHVybiByZXQ7DQo+PiAgIA0KPj4g
ICAgICAgZC0+YXJjaC52Z2ljLmFsbG9jYXRlZF9pcnFzID0NCj4+ICsjaWZkZWYgQ09ORklHX0dJ
Q1YzX0VTUEkNCj4+ICsgICAgICAgIHh6YWxsb2NfYXJyYXkodW5zaWduZWQgbG9uZywgQklUU19U
T19MT05HUyh2Z2ljX251bV9pcnFzKGQpICsNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgZC0+
YXJjaC52Z2ljLm5yX2VzcGlzKSk7DQo+PiArI2Vsc2UNCj4+ICAgICAgICAgICB4emFsbG9jX2Fy
cmF5KHVuc2lnbmVkIGxvbmcsIEJJVFNfVE9fTE9OR1ModmdpY19udW1faXJxcyhkKSkpOw0KPj4g
KyNlbmRpZg0KPj4gICAgICAgaWYgKCAhZC0+YXJjaC52Z2ljLmFsbG9jYXRlZF9pcnFzICkNCj4+
ICAgICAgICAgICByZXR1cm4gLUVOT01FTTsNCj4+ICAgDQo+PiBAQCAtMTk1LDkgKzI4OSwyNyBA
QCB2b2lkIGRvbWFpbl92Z2ljX2ZyZWUoc3RydWN0IGRvbWFpbiAqZCkNCj4+ICAgICAgICAgICB9
DQo+PiAgICAgICB9DQo+PiAgIA0KPj4gKyNpZmRlZiBDT05GSUdfR0lDVjNfRVNQSQ0KPj4gKyAg
ICBmb3IgKCBpID0gMDsgaSA8IChkLT5hcmNoLnZnaWMubnJfZXNwaXMpOyBpKysgKQ0KPj4gKyAg
ICB7DQo+PiArICAgICAgICBzdHJ1Y3QgcGVuZGluZ19pcnEgKnAgPSBzcGlfdG9fcGVuZGluZyhk
LCBFU1BJX0lEWDJJTlRJRChpKSk7DQo+PiArDQo+PiArICAgICAgICBpZiAoIHAtPmRlc2MgKQ0K
Pj4gKyAgICAgICAgew0KPj4gKyAgICAgICAgICAgIHJldCA9IHJlbGVhc2VfZ3Vlc3RfaXJxKGQs
IHAtPmlycSk7DQo+PiArICAgICAgICAgICAgaWYgKCByZXQgKQ0KPj4gKyAgICAgICAgICAgICAg
ICBkcHJpbnRrKFhFTkxPR19HX1dBUk5JTkcsICJkJXU6IEZhaWxlZCB0byByZWxlYXNlIHZpcnEg
JXUgcmV0ID0gJWRcbiIsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgZC0+ZG9tYWluX2lk
LCBwLT5pcnEsIHJldCk7DQo+PiArICAgICAgICB9DQo+PiArICAgIH0NCj4+ICsjZW5kaWYNCj4+
ICsNCj4+ICAgICAgIGlmICggZC0+YXJjaC52Z2ljLmhhbmRsZXIgKQ0KPj4gICAgICAgICAgIGQt
PmFyY2gudmdpYy5oYW5kbGVyLT5kb21haW5fZnJlZShkKTsNCj4+ICAgICAgIHhmcmVlKGQtPmFy
Y2gudmdpYy5zaGFyZWRfaXJxcyk7DQo+PiArI2lmZGVmIENPTkZJR19HSUNWM19FU1BJDQo+PiAr
ICAgIHhmcmVlKGQtPmFyY2gudmdpYy5leHRfc2hhcmVkX2lycXMpOw0KPj4gKyNlbmRpZg0KPj4g
ICAgICAgeGZyZWUoZC0+YXJjaC52Z2ljLnBlbmRpbmdfaXJxcyk7DQo+PiAgICAgICB4ZnJlZShk
LT5hcmNoLnZnaWMuYWxsb2NhdGVkX2lycXMpOw0KPj4gICB9DQo+PiBAQCAtMzMxLDYgKzQ0Mywx
NyBAQCB2b2lkIGFyY2hfbW92ZV9pcnFzKHN0cnVjdCB2Y3B1ICp2KQ0KPj4gICAgICAgICAgIGlm
ICggdl90YXJnZXQgPT0gdiAmJiAhdGVzdF9iaXQoR0lDX0lSUV9HVUVTVF9NSUdSQVRJTkcsICZw
LT5zdGF0dXMpICkNCj4+ICAgICAgICAgICAgICAgaXJxX3NldF9hZmZpbml0eShwLT5kZXNjLCBj
cHVfbWFzayk7DQo+PiAgICAgICB9DQo+PiArDQo+PiArI2lmZGVmIENPTkZJR19HSUNWM19FU1BJ
DQo+PiArICAgIGZvciAoIGkgPSBFU1BJX0JBU0VfSU5USUQ7IGkgPCAoZCktPmFyY2gudmdpYy5u
cl9lc3BpczsgaSsrICkNCj4+ICsgICAgew0KPj4gKyAgICAgICAgdl90YXJnZXQgPSB2Z2ljX2dl
dF90YXJnZXRfdmNwdSh2LCBpKTsNCj4+ICsgICAgICAgIHAgPSBpcnFfdG9fcGVuZGluZyh2X3Rh
cmdldCwgaSk7DQo+PiArDQo+PiArICAgICAgICBpZiAoIHZfdGFyZ2V0ID09IHYgJiYgIXRlc3Rf
Yml0KEdJQ19JUlFfR1VFU1RfTUlHUkFUSU5HLCAmcC0+c3RhdHVzKSApDQo+PiArICAgICAgICAg
ICAgaXJxX3NldF9hZmZpbml0eShwLT5kZXNjLCBjcHVfbWFzayk7DQo+PiArICAgIH0NCj4+ICsj
ZW5kaWYNCj4+ICAgfQ0KPj4gICANCj4+ICAgdm9pZCB2Z2ljX2Rpc2FibGVfaXJxcyhzdHJ1Y3Qg
dmNwdSAqdiwgdWludDMyX3QgciwgdW5zaWduZWQgaW50IG4pDQo+PiBAQCAtNTM4LDYgKzY2MSwx
MCBAQCBzdHJ1Y3QgcGVuZGluZ19pcnEgKmlycV90b19wZW5kaW5nKHN0cnVjdCB2Y3B1ICp2LCB1
bnNpZ25lZCBpbnQgaXJxKQ0KPj4gICAgICAgICAgIG4gPSAmdi0+YXJjaC52Z2ljLnBlbmRpbmdf
aXJxc1tpcnFdOw0KPj4gICAgICAgZWxzZSBpZiAoIGlzX2xwaShpcnEpICkNCj4+ICAgICAgICAg
ICBuID0gdi0+ZG9tYWluLT5hcmNoLnZnaWMuaGFuZGxlci0+bHBpX3RvX3BlbmRpbmcodi0+ZG9t
YWluLCBpcnEpOw0KPj4gKyNpZmRlZiBDT05GSUdfR0lDVjNfRVNQSQ0KPj4gKyAgICBlbHNlIGlm
ICggaXNfZXNwaShpcnEpICkNCj4+ICsgICAgICAgIG4gPSAmdi0+ZG9tYWluLT5hcmNoLnZnaWMu
cGVuZGluZ19pcnFzW0VTUElfSU5USUQySURYKGlycSkgKyB2LT5kb21haW4tPmFyY2gudmdpYy5u
cl9zcGlzXTsNCj4+ICsjZW5kaWYNCj4+ICAgICAgIGVsc2UNCj4+ICAgICAgICAgICBuID0gJnYt
PmRvbWFpbi0+YXJjaC52Z2ljLnBlbmRpbmdfaXJxc1tpcnEgLSAzMl07DQo+PiAgICAgICByZXR1
cm4gbjsNCj4+IEBAIC01NDcsNiArNjc0LDE0IEBAIHN0cnVjdCBwZW5kaW5nX2lycSAqc3BpX3Rv
X3BlbmRpbmcoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IGlycSkNCj4+ICAgew0KPj4g
ICAgICAgQVNTRVJUKGlycSA+PSBOUl9MT0NBTF9JUlFTKTsNCj4+ICAgDQo+PiArI2lmZGVmIENP
TkZJR19HSUNWM19FU1BJDQo+PiArICAgIGlmICggaXNfZXNwaShpcnEpICkNCj4+ICsgICAgew0K
Pj4gKyAgICAgICAgaXJxID0gRVNQSV9JTlRJRDJJRFgoaXJxKSArIGQtPmFyY2gudmdpYy5ucl9z
cGlzOw0KPj4gKyAgICAgICAgcmV0dXJuICZkLT5hcmNoLnZnaWMucGVuZGluZ19pcnFzW2lycV07
DQo+PiArICAgIH0NCj4+ICsjZW5kaWYNCj4+ICsNCj4+ICAgICAgIHJldHVybiAmZC0+YXJjaC52
Z2ljLnBlbmRpbmdfaXJxc1tpcnEgLSAzMl07DQo+PiAgIH0NCj4+ICAgDQo+PiBAQCAtNjY4LDYg
KzgwMywxMSBAQCBib29sIHZnaWNfcmVzZXJ2ZV92aXJxKHN0cnVjdCBkb21haW4gKmQsIHVuc2ln
bmVkIGludCB2aXJxKQ0KPj4gICAgICAgaWYgKCAhdmdpY19pc192YWxpZF9pcnEoZCwgdmlycSkg
KQ0KPj4gICAgICAgICAgIHJldHVybiBmYWxzZTsNCj4+ICAgDQo+PiArI2lmZGVmIENPTkZJR19H
SUNWM19FU1BJDQo+PiArICAgIGlmICggaXNfZXNwaSh2aXJxKSApDQo+PiArICAgICAgICByZXR1
cm4gIXRlc3RfYW5kX3NldF9iaXQoRVNQSV9JTlRJRDJJRFgodmlycSkgKyB2Z2ljX251bV9pcnFz
KGQpLCBkLT5hcmNoLnZnaWMuYWxsb2NhdGVkX2lycXMpOw0KPj4gKyNlbmRpZg0KPj4gKw0KPj4g
ICAgICAgcmV0dXJuICF0ZXN0X2FuZF9zZXRfYml0KHZpcnEsIGQtPmFyY2gudmdpYy5hbGxvY2F0
ZWRfaXJxcyk7DQo+PiAgIH0NCj4+ICAgDQo+PiBAQCAtNjg2LDYgKzgyNiwxMSBAQCBpbnQgdmdp
Y19hbGxvY2F0ZV92aXJxKHN0cnVjdCBkb21haW4gKmQsIGJvb2wgc3BpKQ0KPj4gICAgICAgew0K
Pj4gICAgICAgICAgIGZpcnN0ID0gMzI7DQo+PiAgICAgICAgICAgZW5kID0gdmdpY19udW1faXJx
cyhkKTsNCj4+ICsjaWZkZWYgQ09ORklHX0dJQ1YzX0VTUEkNCj4+ICsgICAgICAgIC8qIFRha2Ug
aW50byBhY2NvdW50IGV4dGVuZGVkIFNQSSByYW5nZSAqLw0KPj4gKyAgICAgICAgZW5kICs9IGQt
PmFyY2gudmdpYy5ucl9lc3BpczsNCj4+ICsjZW5kaWYNCj4+ICsNCj4+ICAgICAgIH0NCj4+ICAg
DQo+PiAgICAgICAvKg0KPiANCg0KQmVzdCByZWdhcmRzLA0KTGVvbmlkDQo=


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 08:40:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 08:40:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089732.1447233 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upNJX-0004H3-9E; Fri, 22 Aug 2025 08:39:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089732.1447233; Fri, 22 Aug 2025 08:39: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 1upNJX-0004Gw-6P; Fri, 22 Aug 2025 08:39:59 +0000
Received: by outflank-mailman (input) for mailman id 1089732;
 Fri, 22 Aug 2025 08:39:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=wRuK=3C=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1upNJV-0004Gq-PW
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 08:39:57 +0000
Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com
 [2a00:1450:4864:20::62d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 941ca271-7f33-11f0-b898-0df219b8e170;
 Fri, 22 Aug 2025 10:39:55 +0200 (CEST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-afcb73621fcso250133266b.0
 for <xen-devel@lists.xenproject.org>; Fri, 22 Aug 2025 01:39:55 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afe018f1943sm376739466b.87.2025.08.22.01.39.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 22 Aug 2025 01:39: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>
X-Inumbo-ID: 941ca271-7f33-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1755851995; x=1756456795; darn=lists.xenproject.org;
        h=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=k8Bd09Tl0Ukd71FV0oXY4dST+KAj0jn7h4UW55YIQUI=;
        b=mP3CDuY1epN/BMkLF2ndWL3cb3gcW3XVL3y0gWc+B5eNmYz9FRD3w2YaFmLt4UTMre
         kNK5NSdpt/BtkpOxdTYAkb9/Wc8mBWGeJhd2h8v9ZL7w98PngwZIrO5isz8zqESMiXFM
         Oa1Uo8zR17tBJJiw/n5iFVaptz6klMPJPukwTw4/soZdk9ajQBlfQapgRDU3b3JjcwZ3
         2crH3m39twI6GzjYtdhjWmObL5PKn4FSDI13HWCbJuHKuhmyv0WL+lJbfNmlsPHWRU4f
         Zuj0KxHLjjrIdTkaJGaQd3EXbJxUNa5FjYybh8MWM85b5k3UsmoEBwwGvzmbnLJXFcrJ
         BMMA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755851995; x=1756456795;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=k8Bd09Tl0Ukd71FV0oXY4dST+KAj0jn7h4UW55YIQUI=;
        b=WPOmOjSAiE3qAxwm6eH1pRXMFenu8c1Qxn6U++sQ1dkgN+DGNBEODVLDYj+XXmTwKw
         F/Z9GWgM2+OAyNRPJ3gk/UQeNP28B3MNL/ohQmLhd/PBheS4Fb/AGki8ssEJiQlrrQVB
         JfFmXsqXQvpeUEcGBw+e3HxWpgbaM/iP5+iFWKPR6r/o28Q1YrzaHf+lUNuiskO3u1Nu
         RWY1wBnAS1/zMYr+d7gW1btQ6dRYnvGAyMZj+iXFdr10CGh6cQK0dXvd11uHRYKWyrpZ
         owh9sVe6hnmQsD6Yt7cClstt5k3PlPH/cSmIKfbZYzrKNpdweVV1ER58LQaCIHFtVUmh
         b31w==
X-Forwarded-Encrypted: i=1; AJvYcCWWeJRAx1f8JDPua7GseeaGOgpfLUoiICdPqtKdemjx53kXkpuFtKUQ85+VvCimTiD6la+jiioXgY8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxDdJs5Q/XhFewLW0Y0OHOLv7Z05jxQ6BZ9cjjPixGJohEOUvqR
	YRraq+BSt9v4ZZgTnOWce7AABMcCt9F+6u3V83WDPDu1I9e2BEUd+EnM
X-Gm-Gg: ASbGncvbNASOiYqA21DoIqCGZMTKYOPNhKHK3ntiI25LxtszR0U793nACRiC5fNpepQ
	8euDGOb7vtpOZ7gsCMYpuKOxSN+UGznMQQoAR1iu7woFner80vJBcv0ufIsXsbDyvs1wk1I454V
	nDFEvz8TE/Ac4xaS1a0mENLGbDNEyO3Owg2MvgR+BqMkvMwpyB250/UTh6yUe1kPfGrKIoeBkjF
	1/PlbGbadD6yTtKE3OwX6LbeKV+ZOot54fYyaN4M6A/vdZzcF3eYYG/ne+S/+HJTSd44Xcdgsta
	3mkKUWv6D421WWeDnUjQUb0w9sPuS0lLeHt9uVSYxJMA7qwSptb1JwW9/SCkcXoZueNF6Rp9+qK
	ByqH0CbAhj/38cv8AED8AfpIae36my/Wfjl3++5PgZnQKISwXC91lcyUdDIlHtey8fpVV3+vabO
	Cb8ggSyQ==
X-Google-Smtp-Source: AGHT+IFE9Mx5Y81bn2hab/fXG36Bf3dRpOhiv0pYRX0PJxo969ou1ejSKaptOJ0Lcq5pezT7Kb/eiA==
X-Received: by 2002:a17:907:6e91:b0:afd:eb4f:d5cf with SMTP id a640c23a62f3a-afe29743b8fmr196742266b.63.1755851994625;
        Fri, 22 Aug 2025 01:39:54 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------LP3v1KWXJU2q3MxAZtuUzQJ3"
Message-ID: <205d50ff-5a7c-41b2-a72f-932f0a7cb4e1@gmail.com>
Date: Fri, 22 Aug 2025 10:39:53 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 19/20] xen/riscv: add support of page lookup by GFN
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.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.1753973161.git.oleksii.kurochko@gmail.com>
 <24bb8ca6ad9d325f48d0c64b0fa461db5f0d0cc5.1753973161.git.oleksii.kurochko@gmail.com>
 <f7f81e65-5c85-4e30-a68b-01cdcf51dc07@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <f7f81e65-5c85-4e30-a68b-01cdcf51dc07@suse.com>

This is a multi-part message in MIME format.
--------------LP3v1KWXJU2q3MxAZtuUzQJ3
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 8/11/25 3:25 PM, Jan Beulich wrote:
>> + * The page_order will correspond to the order of the mapping in the page
>> + * table (i.e it could be a superpage).
>> + *
>> + * If the entry is not present, INVALID_MFN will be returned and the
>> + * page_order will be set according to the order of the invalid range.
>> + *
>> + * valid will contain the value of bit[0] (e.g valid bit) of the
>> + * entry.
>> + */
>> +static mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn,
>> +                           p2m_type_t *t,
>> +                           unsigned int *page_order,
>> +                           bool *valid)
>> +{
>> +    unsigned int level = 0;
>> +    pte_t entry, *table;
>> +    int rc;
>> +    mfn_t mfn = INVALID_MFN;
>> +    DECLARE_OFFSETS(offsets, gfn_to_gaddr(gfn));
>> +
>> +    ASSERT(p2m_is_locked(p2m));
>> +    BUILD_BUG_ON(XEN_PT_LEVEL_MAP_MASK(0) != PAGE_MASK);
> What function-wide property is this check about? Even when moved ...
>
>> +    if ( valid )
>> +        *valid = false;
>> +
>> +    /* XXX: Check if the mapping is lower than the mapped gfn */
> (Nested: What is this about?)
>
>> +    /* This gfn is higher than the highest the p2m map currently holds */
>> +    if ( gfn_x(gfn) > gfn_x(p2m->max_mapped_gfn) )
>> +    {
>> +        for ( level = P2M_ROOT_LEVEL; level; level-- )
>> +            if ( (gfn_x(gfn) & (XEN_PT_LEVEL_MASK(level) >> PAGE_SHIFT)) >
> ... into the more narrow scope where another XEN_PT_LEVEL_MASK() exists I
> can't really spot what the check is to guard against.

Missed to answer in my prev. reply to this and noticed that only during
start of reworking it.

I think it makes sense to update the comment above if condition, this is needed
to find the highest possible order by checking the base of the block mapping
is greater than the max mapped gfn as it is mentioned in the description of the
function, if the entry is not present, the function will return the order of
the invalid range.

I expect that probably it makes sense to do something similar for ->lowest_mapped_gfn
and it is a reason why /* XXX: ... */ comment exist.

~ Oleksii

>
>> +                 gfn_x(p2m->max_mapped_gfn) )
>> +                break;
>> +
>> +        goto out;
>> +    }
--------------LP3v1KWXJU2q3MxAZtuUzQJ3
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/11/25 3:25 PM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:f7f81e65-5c85-4e30-a68b-01cdcf51dc07@suse.com">
      <pre class="moz-quote-pre" wrap=""><blockquote type="cite"
      style="color: #007cff;"><pre wrap="" class="moz-quote-pre">+ * The page_order will correspond to the order of the mapping in the page
+ * table (i.e it could be a superpage).
+ *
+ * If the entry is not present, INVALID_MFN will be returned and the
+ * page_order will be set according to the order of the invalid range.
+ *
+ * valid will contain the value of bit[0] (e.g valid bit) of the
+ * entry.
+ */
+static mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn,
+                           p2m_type_t *t,
+                           unsigned int *page_order,
+                           bool *valid)
+{
+    unsigned int level = 0;
+    pte_t entry, *table;
+    int rc;
+    mfn_t mfn = INVALID_MFN;
+    DECLARE_OFFSETS(offsets, gfn_to_gaddr(gfn));
+
+    ASSERT(p2m_is_locked(p2m));
+    BUILD_BUG_ON(XEN_PT_LEVEL_MAP_MASK(0) != PAGE_MASK);
</pre></blockquote><pre wrap="" class="moz-quote-pre">What function-wide property is this check about? Even when moved ...

</pre><blockquote type="cite" style="color: #007cff;"><pre wrap=""
      class="moz-quote-pre">+    if ( valid )
+        *valid = false;
+
+    /* XXX: Check if the mapping is lower than the mapped gfn */
</pre></blockquote><pre wrap="" class="moz-quote-pre">(Nested: What is this about?)

</pre><blockquote type="cite" style="color: #007cff;"><pre wrap=""
      class="moz-quote-pre">+    /* This gfn is higher than the highest the p2m map currently holds */
+    if ( gfn_x(gfn) &gt; gfn_x(p2m-&gt;max_mapped_gfn) )
+    {
+        for ( level = P2M_ROOT_LEVEL; level; level-- )
+            if ( (gfn_x(gfn) &amp; (XEN_PT_LEVEL_MASK(level) &gt;&gt; PAGE_SHIFT)) &gt;
</pre></blockquote><pre wrap="" class="moz-quote-pre">... into the more narrow scope where another XEN_PT_LEVEL_MASK() exists I
can't really spot what the check is to guard against.</pre></pre>
    </blockquote>
    <pre>Missed to answer in my prev. reply to this and noticed that only during
start of reworking it.

I think it makes sense to update the comment above if condition, this is needed
to find the highest possible order by checking the base of the block mapping
is greater than the max mapped gfn as it is mentioned in the description of the
function, if the entry is not present, the function will return the order of
the invalid range.

I expect that probably it makes sense to do something similar for -&gt;lowest_mapped_gfn
and it is a reason why /* XXX: ... */ comment exist.

~ Oleksii
</pre>
    <blockquote type="cite"
      cite="mid:f7f81e65-5c85-4e30-a68b-01cdcf51dc07@suse.com">
      <pre class="moz-quote-pre" wrap=""><pre wrap=""
      class="moz-quote-pre">

</pre><blockquote type="cite" style="color: #007cff;"><pre wrap=""
      class="moz-quote-pre">+                 gfn_x(p2m-&gt;max_mapped_gfn) )
+                break;
+
+        goto out;
+    }</pre></blockquote></pre>
    </blockquote>
  </body>
</html>

--------------LP3v1KWXJU2q3MxAZtuUzQJ3--


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 09:09:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 09:09:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089751.1447244 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upNlq-00009T-HA; Fri, 22 Aug 2025 09:09:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089751.1447244; Fri, 22 Aug 2025 09:09: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 1upNlq-00009M-Co; Fri, 22 Aug 2025 09:09:14 +0000
Received: by outflank-mailman (input) for mailman id 1089751;
 Fri, 22 Aug 2025 09:09:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1jNg=3C=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1upNlp-00009G-HM
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 09:09:13 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id aab11df0-7f37-11f0-b898-0df219b8e170;
 Fri, 22 Aug 2025 11:09:11 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by AS8PR03MB7207.eurprd03.prod.outlook.com (2603:10a6:20b:2ed::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.17; Fri, 22 Aug
 2025 09:09:08 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Fri, 22 Aug 2025
 09:09: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>
X-Inumbo-ID: aab11df0-7f37-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QShMiQIFdz24LIxAj36cT9YNmlPZkBR01sq8Z+hn125XbMMvRLXoY2asXoQ9Dzc+PIDImZSHD98RXAktOFZEDD50LiuZy3yp8CGExuU4TawUR3K+w5M2tdhFxnhyvHnhL1yv7XqPLOQzumTNUfogke8PC6Ljrm5zqPACmTLmUJ5lzBSMkOwN4LbOuJL4wsvDozX/GuNvUjn3BlatNRWLtfc0bwyMfj58j+lVHMmGdq/06UpCc5WAhBdIasDRtMwFJ+maQi5spKz91q4mG7hZc2HPKO8AcWb/x8ethtkBbgaFr1B/CXxvRzI7cS2azLQfwb0EgqJ/ChBDhkcLDB/4lw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0WTz+QN61rsmkvkidLnVpAe5TYYAQkwIINgDu6Vw00Y=;
 b=wCM4ssN/pwV0K3OuftW/Cf9vCHSOVcki9y7pTivG7PYu9Q73rv06B4yo8QU5FzeBAMS6TIHW6NGUIdBZ2zkt5hkOm10ywDTZ8Gu1KQlwYooEhVHSKsH5sHwvNaUjkRfFzFO9L4OjV4W3rp5UxhzDX7HF8an5xiAFEQgzC5X7OIuXS4l7uCv3fNg4BUUPi1ynV38wTB01BFHRFcGaFIlgOH6KQff6tfXfpmcqHCKe98UomItuTY0vt8EDUWfpc7ekxWKXnH5uJvITMISe7431iwD5Q5oBmEMZa7FRK0G4lqIeNJTee8y8gLZ6JFCM5OWI/X7rxM4Gi1ivITtu+2yl7A==
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=0WTz+QN61rsmkvkidLnVpAe5TYYAQkwIINgDu6Vw00Y=;
 b=d24TO5PNIqGab4rzgwz96tpkDBXI8zo+PdChKXE3TqOy4CVWUTeJYJgLeA7ffGPc3nskvid5fD51vnCeNMXiUYibuDc30MfJR6pPt5QAEW++KLlnVXkv1qbt9UdLJsBmX0dsPBKDslxJjaEJXQkuH7XdJ23kugM4wkxTFD8kmFSYhLVBKr6cQIKjg3xCCIkk4NLusaZ2lfHsWx8OneVF7IOa4P3Q3BZaOU0K/EkclUxeoMpnLn4vPhFz6/oOVKW/gcZR3si+h3WehyWq9Q0l8Ha/Y8PGAuxOPlXg2TRqL6LPuAFfyIbN/N+q3t57HdjS5D7n2y8IBwYt0+C6atfFSQ==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: Julien Grall <julien@xen.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v2 01/10] xen/arm: gicv3: refactor obtaining GIC addresses
 for common operations
Thread-Topic: [PATCH v2 01/10] xen/arm: gicv3: refactor obtaining GIC
 addresses for common operations
Thread-Index: AQHcB5d7cCAQRdJCgUKSzBGsZt4ytbRtXheAgAEbjYA=
Date: Fri, 22 Aug 2025 09:09:07 +0000
Message-ID: <b2b7906c-d810-4162-b700-7f1dc2153f4b@epam.com>
References: <cover.1754514206.git.leonid_komarianskyi@epam.com>
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
 <915641a6-8cc6-45bf-a1ee-d69b286e7d30@xen.org>
In-Reply-To: <915641a6-8cc6-45bf-a1ee-d69b286e7d30@xen.org>
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: GV2PR03MB8678:EE_|AS8PR03MB7207:EE_
x-ms-office365-filtering-correlation-id: 4f77e7bc-952f-4072-dbb7-08dde15b8cf2
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?WWFZRGxzZTRwclpVc3RQY1BQK25qcTcwZUZSRzZiTE9ZYjdSLzVTdHYzMkZx?=
 =?utf-8?B?SG04ZzZyRktMM2k3aGRJdlB1cFVRMUdSajVhNEc5aFkxZVhHNE12QkM4NEIy?=
 =?utf-8?B?SDVpYTh3QlZKQ0E1YXhKS2lCeWc4cjhJUEV4RS9NV0thb3N4TlhTRFBPMHBH?=
 =?utf-8?B?TGFZVmYzMEcvNzdmc3FRSXN5RnI5NUZnZjJjN3FkclMydjhOM1pqRDUxT2RT?=
 =?utf-8?B?bzFvWlI0a29qYk5yV0tFSG9tbmdmWkRhMnJYbG9nWHFjU0wxd25KMmdweWpx?=
 =?utf-8?B?TWg3NmptZWo4UmNZYWlzN3B6U2cvbTNtRUVmZm5mU1kyT29nWnJWQkdYaGd1?=
 =?utf-8?B?NnJLNS95by94TWcyeXlabFcvend3NmY2d0tlSXVNN1o4ZTVuWjhNYkxyeHow?=
 =?utf-8?B?SzVONjhIMWZSdEU0ZXBPWlZkajZNNG5YMmJ4UnF0VlBFS2hKWmppaGFpMjU4?=
 =?utf-8?B?bFhZVmdzVWVBMk80Z0VpbS9ySk00U2dZL3RFZWNzTmtiOEJ2LzdockljTlp3?=
 =?utf-8?B?VzRINFBTSjVkd2s4WlplRjU5WXpkT0FQL3ZSTERYcmIyMTZlWDRoNU5VSUI5?=
 =?utf-8?B?U2pXSnBOMXJjMDZORnNEMysyL2pIMzdjQ3NaV3JKaTBBYW9scThkakpEMjJY?=
 =?utf-8?B?dTJBT3dDd0JxUGMxUXl2RktJKzduazR0QWE2OUpVM0R6cnlWSTBKVUZUNWhn?=
 =?utf-8?B?STdvYnREQzM5N2wwQ3BSd2pvVW9VWEJJYmR3VzN6dm1lUkttMldUSW91MVpp?=
 =?utf-8?B?TzhoVGt1VTdVTnVsbStRVWNBekExNWRLMmIvU1NZQ2NZc0NKS2tDTWxuZDQr?=
 =?utf-8?B?azMvSEtaWndIU3JGcFBVaVpBQWJuNXp3NWJtNk0rZ0hXcytTbjZSc2wwYyto?=
 =?utf-8?B?blJJQVNEODhkdUI5dmNsTEFscHk0VWJwUlRWSy9xek8yRjNDT2k5S25ZNnpJ?=
 =?utf-8?B?SDl4Q0lBSFYrVE9aUHZNVzNqNVdvMmM2eFVYbUVhUzM1WUpsZFJreTVDanhM?=
 =?utf-8?B?ekU5NEhKeEoraTRFakZUZG9BVlYxa1hyMUNiazZqQmJFNzQxb2svRlMvc2cv?=
 =?utf-8?B?dnIxb1pXazhQWEcyT3diMjYvTVB6VUZ5aXoybmNCcmljSWlEd0p5b09SOFZC?=
 =?utf-8?B?Zk9BMFJKaHNkQVJQUFdNNnhEekdPd2lESnFiME1PTEh5RWJsUXQyeVJTVDNK?=
 =?utf-8?B?ZjdVdkxCU3g3b294MEZVYVEyc0R0eWVORzAraFlkemh4UzdZaWZteitXbWIx?=
 =?utf-8?B?SlpQOTY4OXVJY0oxS201R0dRME53ODNJV1ptR2x6ZlhaYVlSOXYxNm9xczVF?=
 =?utf-8?B?Rm14S0UxU2JuUmVOZjBsRVV5NWZ2ZDdZN1AvWTVlYXpWRXF4R1RoKy9sRzRL?=
 =?utf-8?B?Yit2LzdZeFUzQVRWZWlQanpsSkRoVXFmeERQZVpRKzE5emxURnJFU20rdmF0?=
 =?utf-8?B?eGd4cFlOdjVqR3dNcDdDeFJPM1A1a2xwTXlVcGgxNUUrRlQ5c1pIanhXYnF1?=
 =?utf-8?B?ZnlyWno2WUZlZ3QzR3gyRTM4b3FKNkdLaEMxMkJZYlZhbTk0Vjl4c1BWRGVz?=
 =?utf-8?B?U09ZMXc2b25mVms3SGdmRGhDbXhoSHVlNGZkTFl4dHZDN25xVXBobjZkQmtT?=
 =?utf-8?B?K3pmNVR2dVA0OWNISGd6dmxFZG9zaXdMTkpteVJGeVp2SEZrRHVzVHRRQnI2?=
 =?utf-8?B?RzZ2M3o2bTJIb0E4STF1aXB5aFAwMlNDU3U5NGNjSGxUQXZQL0xCb01xdVZS?=
 =?utf-8?B?RE1xVTNFdzFuZDdpYm92MXRpaCtKNkMyYTJBQStzbVM5NDZWa1BrdGliSmRo?=
 =?utf-8?B?WmdyNWo2NlBYWkQrbExFU0ZGSXNzNFA1SlVGZ3hEOUo1V05KUHE0K3hSMCtQ?=
 =?utf-8?B?YzB4MnhEMTVzSFA1LzVCSitVS21xR21kZ29FMUYwVDZ5OWtybS83NGJ2Vlg4?=
 =?utf-8?B?OXozaTJxbGZBWkpzczBpUjdnYVQ2eW52VFpaSDNQdnN1WXU0WmlnMzQ0WHNm?=
 =?utf-8?B?YlozQ3NOdFVnPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?VGlkd3ZCOWdSbFJhTW5ScVVjMHBlRG1JQVJxWDNGNzQzM3IwQmZzK29TVVM2?=
 =?utf-8?B?MGQ2YTdBTUpQUXVDY1JrTjF4N1czdUNKRTBuNDdLZ0RvWXFDTEUrS1krTVR0?=
 =?utf-8?B?NTUyVTRaWVlmQVZPYUl5amtlM0pSYzFUU3FRWmszZXRWc3BpVjFWODJwdFpj?=
 =?utf-8?B?dVFQUWEwTWptbWdEY2w5cGZJOWpuTk9GVUZnRGt5bWZQWm02blJHa1pkby9R?=
 =?utf-8?B?eUdEbVl6UW1PSDBiT09MVG04Si9semJxRGNmMWlFT3VFT2loSTltcjROYUpl?=
 =?utf-8?B?L3JBNGdycktWVWU3K2NTdUM3M0Njd0ROMFUzQUxtMnlaMzNucG04WmJSMHB2?=
 =?utf-8?B?Qm5CVVRxajNYNlZjcUE2TGtUbTVwRFJmQi9rUm5OV0RVbjdVNU8zRjMvL1Jo?=
 =?utf-8?B?OTlqQmZQTEZVR1N2dUIyNzZrTkxQc25GOVhCWmQzQndGSXg0SnFXSk5pTlp5?=
 =?utf-8?B?czZWS0FFZkcwRkg1dk9iWHZoMmxObWZzWWVNYmNvODIrbnhVa2xsUEF2YTQv?=
 =?utf-8?B?WnBFaW02Smh4cFltVTVRYS9VN3htcW5aSEFTUndwRWRJT1ZaenZSQW1HNlFl?=
 =?utf-8?B?V1FSblk4VzVTdzRvYXRFVWZoQ1N3QnBWVGE1c1prcVhVSkdBbGhQYU80Z0xD?=
 =?utf-8?B?TTc1bEVPK095WkJ4alZPNkcwNXhLdkFaMUgyMVFqeVIvZDFlb1VzNzVFTGsr?=
 =?utf-8?B?c3pOcktWdnRvcGxGZmZBN3F1eUQ4TEpQWC9pWi9XdHVEUHdENlBKeGFWbERC?=
 =?utf-8?B?bGkwelJMK3o2VHhEQVhTTnRLcGNHZHNFVVBJMVpNTHhOSmd1ZGRxbFRrekJz?=
 =?utf-8?B?U2VhMGxFMHdzZFEvN1NLS0JDV3M0N0kwMUV3a0gxSTRKK3ZUb0FaRzExY3FY?=
 =?utf-8?B?cmFad2xtdk5ybmRKb2YrQnNsaGFOVDUyL0wwelRjUUtxNitxaDVxSWRTK29W?=
 =?utf-8?B?SEN2VEFXdVQwUGZjZk10V2VIK1NueEszWXlRWXBqckdhSmN2ek9HK0k0TGtl?=
 =?utf-8?B?Q0RHUGx2UUVKRzZXcU1kZWs4empUbCtXL0dERjJ0UldzaUZPUmtGRHF3NVpF?=
 =?utf-8?B?bXNxVkRNVEprOElQUk1pdGkwWlhZREhvREg1RTRHL2xvcHQ4WGZKYUV0b09t?=
 =?utf-8?B?RFZKdGdUWEFkVlBZVUVGMnVJeTUrNWw3M01heUE5MEpHaW0vaW1XVnlEK0xT?=
 =?utf-8?B?Mzlvb1R3MkJwQW12d2NZZ3RqaG1UU0xBMm5CN2s3TEhKT1lDQ1pRTTg3QkpU?=
 =?utf-8?B?V0MzRDFzQlpzWko3Sng5UE9STHFpMUlWeCtVMEkwa1JQVDRJNHdDdnJHMkNI?=
 =?utf-8?B?UHFaWElkSHhDZ1lPSzhwcmxkWEdDemNkY2txS0VhNGZqcmpKWm9XcnYraEVY?=
 =?utf-8?B?L2tPMWxCWFczKzFoUkcxaTd2dnl5bFlPcTlzU1MxK2dQVWduUTUvMkFHNkgy?=
 =?utf-8?B?TTdzQ2ZBRHFzMUx4RDlySXpIeDRUM3BzeFBqa3g4S0ZKQXFEbnNxMnNmQ1Vz?=
 =?utf-8?B?bXFNSkJkTktYMU1yaGZGMDBwOUd0T1VZS0VlWEtJQ3A3TDcweEZSVXFFU3ZG?=
 =?utf-8?B?NFV6TWpBWHdHcFErOXN2aHQybjdPeVBOb0pTUXJ0TmNMbVgxV0VkSStWRnZv?=
 =?utf-8?B?NkdDYnplTG1RYXlHaER6eEEvZnovV2EvNThVaENzTStBZlZPUWtyaktJbGkw?=
 =?utf-8?B?emRnMkNva1dzZktxU0kxSE8wNzQ4Z2I1T2I0VGpWVExnVXQwTm8zRm45MmNn?=
 =?utf-8?B?UjZsSmxkNTVadVZkajc4dUgwN3E0ejBjZkh5b1pjdWxDK3NJaHFhRjZVQTR3?=
 =?utf-8?B?M2VSdUhBcktlQkFrdkpRSHJQZlc0VGx0dFI3dXpCZThzNDRxZWtwc3RsY3Zp?=
 =?utf-8?B?VTZFVWxjbloraEZENkxmYnVPcVA5T24rL2c5a0VVeTY0NSs1ZVJENUpsT3Ft?=
 =?utf-8?B?b1Jlazh5MERHeXg4aUxSU1NjYkNrekhLRE9ocWJ6MzA2dFkvNkhna0l3THov?=
 =?utf-8?B?TXh5V3lUSzlxQlZhQThhaXNhaHlQcjlSR0U5MHI1ZVFicXlTZk1lUklzVTZi?=
 =?utf-8?B?TW5kdVMvd2FjOFVsZCszSHNMMFNFbFJXTUl6RkI0cDZjUGh5Z09CWHdNbkN5?=
 =?utf-8?B?ZWVWVVlWcDd6MGdTeUVmaU1LSW9LVnNrQUQvNHM4K2ovMHQ1R0p4bUNST0NO?=
 =?utf-8?Q?4A4KjN8xsKo0sb2xGyN22S0=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <897E0769ED134D4A9BF3C0A17F879B1A@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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4f77e7bc-952f-4072-dbb7-08dde15b8cf2
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Aug 2025 09:09:07.9332
 (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: lAZ/SuafqwZhUnm4uQR1DOt+YnbEt9Tu/dxMRjlkPP1nfnVwEe+JeqYEf1jj4mriq852nVQbOWbEabrPt8onFVAprq5Hya7ZbZWWCUMNrLE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7207

SGkgSnVsaWVuLA0KDQpUaGFuayB5b3UgZm9yIHlvdXIgY2xvc2UgcmV2aWV3Lg0KDQpPbiAyMS4w
OC4yNSAxOToxNCwgSnVsaWVuIEdyYWxsIHdyb3RlOg0KPiBIaSBMZW9uaWQsDQo+IA0KPiBPbiAw
Ny8wOC8yMDI1IDEzOjMzLCBMZW9uaWQgS29tYXJpYW5za3lpIHdyb3RlOg0KPj4gQ3VycmVudGx5
LCBtYW55IGNvbW1vbiBmdW5jdGlvbnMgcGVyZm9ybSB0aGUgc2FtZSBvcGVyYXRpb25zIHRvIGNh
bGN1bGF0ZQ0KPj4gR0lDIHJlZ2lzdGVyIGFkZHJlc3Nlcy4gVGhpcyBwYXRjaCBjb25zb2xpZGF0
ZXMgdGhlIHNpbWlsYXIgY29kZSBpbnRvDQo+PiBhIHNlcGFyYXRlIGhlbHBlciBmdW5jdGlvbiB0
byBpbXByb3ZlIG1haW50YWluYWJpbGl0eSBhbmQgcmVkdWNlIA0KPj4gZHVwbGljYXRpb24uDQo+
PiBUaGlzIHJlZmFjdG9yaW5nIGFsc28gc2ltcGxpZmllcyB0aGUgaW1wbGVtZW50YXRpb24gb2Yg
ZVNQSSBzdXBwb3J0IGluIA0KPj4gZnV0dXJlDQo+PiBjaGFuZ2VzLg0KPj4NCj4+IFNpZ25lZC1v
ZmYtYnk6IExlb25pZCBLb21hcmlhbnNreWkgPGxlb25pZF9rb21hcmlhbnNreWlAZXBhbS5jb20+
DQo+Pg0KPj4gLS0tDQo+PiBDaGFuZ2VzIGluIFYyOg0KPj4gLSBubyBjaGFuZ2VzDQo+IA0KPiBJ
IGFtIGEgYml0IHN1cnByaXNlZCB0aGlzIGlzIGp1c3Qgc2F5aW5nIG5vIGNoYW5nZXMgZ2l2ZW4g
dGhlIGRpc2N1c3Npb24gDQo+IGluIHYxLiBJIGZlZWwgeW91IHNob3VsZCBoYXZlIHBpbmdlZCBv
biB0aGUgdjEgdG8gY2xvc2Ugb2ZmIHRoZSANCj4gZGlzY3Vzc2lvbiBiZWZvcmUgc2VuZGluZyB2
Mi4NCj4gDQoNClNvcnJ5LCBteSBiYWQuIEkgc2hvdWxkIGhhdmUgcmVhY2hlZCBvdXQgdG8geW91
IGFuZCBjbGFyaWZpZWQgdGhlIA0KdW5maW5pc2hlZCBkaXNjdXNzaW9uIGluIFYxLiBJIGp1c3Qg
d2FudGVkIHRvIHB1Ymxpc2ggdGhlIGNoYW5nZXMgaW4gVjIgDQp0aGF0IHdlcmUgYWdyZWVkIHVw
b24gaW4gVjEuIEJ1dCB5ZXMsIEkgdW5kZXJzdGFuZCAtIGl0IHdhcyBhIGJhZCBpZGVhIA0KdG8g
cHVzaCBWMiB3aXRob3V0IGNvbXBsZXRpbmcgdGhlIGRpc2N1c3Npb24gaW4gVjEuIEkgYXBvbG9n
aXplIGZvciB0aGF0Lg0KDQo+IFdoaWxlIEkgdW5kZXJzdGFuZCB5b3VyIHBvaW50IGFuZCBjb3Vs
ZCBhY2NlcHQgd2UgY29uc29saWRhdGUgdGhlIGNvZGUuLi4NCj4gDQo+IA0KDQpUaGFuayB5b3Ug
Zm9yIHlvdXIgdW5kZXJzdGFuZGluZyBhbmQgYWNjZXB0YW5jZSA6KSBJdCByZWFsbHkgc2ltcGxp
ZmllcyANCnRoZSBjaGFuZ2VzIGluIHRoZSBuZXh0IHBhdGNoZXMuDQo+PiAtLS0NCj4+IMKgIHhl
bi9hcmNoL2FybS9naWMtdjMuY8KgwqDCoMKgwqDCoMKgwqDCoCB8IDk5ICsrKysrKysrKysrKysr
KysrKysrKystLS0tLS0tLS0tLS0NCj4+IMKgIHhlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9pcnEu
aCB8wqAgMSArDQo+PiDCoCAyIGZpbGVzIGNoYW5nZWQsIDY3IGluc2VydGlvbnMoKyksIDMzIGRl
bGV0aW9ucygtKQ0KPj4NCj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZ2ljLXYzLmMgYi94
ZW4vYXJjaC9hcm0vZ2ljLXYzLmMNCj4+IGluZGV4IGNkM2UxYWNmNzkuLjhmZDc4YWJhNDQgMTAw
NjQ0DQo+PiAtLS0gYS94ZW4vYXJjaC9hcm0vZ2ljLXYzLmMNCj4+ICsrKyBiL3hlbi9hcmNoL2Fy
bS9naWMtdjMuYw0KPj4gQEAgLTQ0NSwxNyArNDQ1LDYyIEBAIHN0YXRpYyB2b2lkIGdpY3YzX2R1
bXBfc3RhdGUoY29uc3Qgc3RydWN0IHZjcHUgKnYpDQo+PiDCoMKgwqDCoMKgIH0NCj4+IMKgIH0N
Cj4+ICtzdGF0aWMgdm9pZCBfX2lvbWVtICpnZXRfYWRkcl9ieV9vZmZzZXQoc3RydWN0IGlycV9k
ZXNjICppcnFkLCB1MzIgDQo+PiBvZmZzZXQpDQo+PiArew0KPj4gK8KgwqDCoCBzd2l0Y2ggKCBp
cnFkLT5pcnEgKQ0KPj4gK8KgwqDCoCB7DQo+PiArwqDCoMKgIGNhc2UgMCAuLi4gKE5SX0dJQ19M
T0NBTF9JUlFTIC0gMSk6DQo+PiArwqDCoMKgwqDCoMKgwqAgc3dpdGNoICggb2Zmc2V0ICkNCj4+
ICvCoMKgwqDCoMKgwqDCoCB7DQo+PiArwqDCoMKgwqDCoMKgwqAgY2FzZSBHSUNEX0lTRU5BQkxF
UjoNCj4+ICvCoMKgwqDCoMKgwqDCoCBjYXNlIEdJQ0RfSUNFTkFCTEVSOg0KPj4gK8KgwqDCoMKg
wqDCoMKgIGNhc2UgR0lDRF9JU1BFTkRSOg0KPj4gK8KgwqDCoMKgwqDCoMKgIGNhc2UgR0lDRF9J
Q1BFTkRSOg0KPj4gK8KgwqDCoMKgwqDCoMKgIGNhc2UgR0lDRF9JU0FDVElWRVI6DQo+PiArwqDC
oMKgwqDCoMKgwqAgY2FzZSBHSUNEX0lDQUNUSVZFUjoNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgIHJldHVybiAoR0lDRF9SRElTVF9TR0lfQkFTRSArIG9mZnNldCk7DQo+PiArwqDCoMKgwqDC
oMKgwqAgY2FzZSBHSUNEX0lDRkdSOg0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJu
IChHSUNEX1JESVNUX1NHSV9CQVNFICsgR0lDUl9JQ0ZHUjEpOw0KPj4gK8KgwqDCoMKgwqDCoMKg
IGNhc2UgR0lDRF9JUFJJT1JJVFlSOg0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJu
IChHSUNEX1JESVNUX1NHSV9CQVNFICsgR0lDUl9JUFJJT1JJVFlSMCArIGlycWQtPmlycSk7DQo+
PiArwqDCoMKgwqDCoMKgwqAgZGVmYXVsdDoNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJy
ZWFrOw0KPj4gK8KgwqDCoMKgwqDCoMKgIH0NCj4+ICvCoMKgwqAgY2FzZSBOUl9HSUNfTE9DQUxf
SVJRUyAuLi4gU1BJX01BWF9JTlRJRDoNCj4+ICvCoMKgwqDCoMKgwqDCoCBzd2l0Y2ggKCBvZmZz
ZXQgKQ0KPj4gK8KgwqDCoMKgwqDCoMKgIHsNCj4+ICvCoMKgwqDCoMKgwqDCoCBjYXNlIEdJQ0Rf
SVNFTkFCTEVSOg0KPj4gK8KgwqDCoMKgwqDCoMKgIGNhc2UgR0lDRF9JQ0VOQUJMRVI6DQo+PiAr
wqDCoMKgwqDCoMKgwqAgY2FzZSBHSUNEX0lTUEVORFI6DQo+PiArwqDCoMKgwqDCoMKgwqAgY2Fz
ZSBHSUNEX0lDUEVORFI6DQo+PiArwqDCoMKgwqDCoMKgwqAgY2FzZSBHSUNEX0lTQUNUSVZFUjoN
Cj4+ICvCoMKgwqDCoMKgwqDCoCBjYXNlIEdJQ0RfSUNBQ1RJVkVSOg0KPj4gK8KgwqDCoMKgwqDC
oMKgwqDCoMKgwqAgcmV0dXJuIChHSUNEICsgb2Zmc2V0ICsgKGlycWQtPmlycSAvIDMyKSAqIDQp
Ow0KPj4gK8KgwqDCoMKgwqDCoMKgIGNhc2UgR0lDRF9JQ0ZHUjoNCj4+ICvCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgIHJldHVybiAoR0lDRCArIEdJQ0RfSUNGR1IgKyAoaXJxZC0+aXJxIC8gMTYpICog
NCk7DQo+PiArwqDCoMKgwqDCoMKgwqAgY2FzZSBHSUNEX0lST1VURVI6DQo+PiArwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoCByZXR1cm4gKEdJQ0QgKyBHSUNEX0lST1VURVIgKyBpcnFkLT5pcnEgKiA4
KTsNCj4+ICvCoMKgwqDCoMKgwqDCoCBjYXNlIEdJQ0RfSVBSSU9SSVRZUjoNCj4+ICvCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgIHJldHVybiAoR0lDRCArIEdJQ0RfSVBSSU9SSVRZUiArIGlycWQtPmly
cSk7DQo+PiArwqDCoMKgwqDCoMKgwqAgZGVmYXVsdDoNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgIGJyZWFrOw0KPj4gK8KgwqDCoMKgwqDCoMKgIH0NCj4+ICvCoMKgwqAgZGVmYXVsdDoNCj4+
ICvCoMKgwqDCoMKgwqDCoCBicmVhazsNCj4+ICvCoMKgwqAgfQ0KPj4gKw0KPj4gK8KgwqDCoCAv
KiBTb21ldGhpbmcgd2VudCB3cm9uZywgd2Ugc2hvdWxkbid0IGJlIGFibGUgdG8gcmVhY2ggaGVy
ZSAqLw0KPiAgPiArwqDCoMKgIHBhbmljKCJJbnZhbGlkIG9mZnNldCAweCV4IGZvciBJUlEjJWQi
LCBvZmZzZXQsIGlycWQtPmlycSk7DQo+IA0KPiAuLi4gSSBzdGlsbCBxdWl0ZSBjb25jZXJuZWQg
YWJvdXQgdXNpbmcgcGFuaWMgaGVyZS4gV2UgbmVlZCB0byB0cnkgdG8gDQo+IGhhbmRsZSB0aGUg
ZXJyb3IgbW9yZSBncmFjZWZ1bGx5IGluIHByb2R1Y3Rpb24uDQo+IA0KPiBDaGVlcnMsDQo+IA0K
DQpJIHdhcyB0aGlua2luZyBhYm91dCB0aGlzIGFnYWluLCBhbmQgbWF5YmUgaXQgd291bGQgYmUg
YmV0dGVyIHRvIGNoYW5nZSANCnRoZSBwYW5pYyBpbnRvIHNpbXBseSBwcmludGluZyBhbiBlcnJv
ciB1c2luZyBwcmludGsoWEVOTE9HX0dfRVJSIC4uLikgDQphbmQgYWRkaW5nIHByb3BlciBjaGVj
a3MgdG8gZW5zdXJlIHRoZSByZXR1cm4gdmFsdWUgaXMgbm90IE5VTEwgaW4gdGhlIA0KY2FsbGVy
cy4NCkFsc28sIGluIHRoZSBjYXNlIG9mIGdpY3YzX3BlZWtfaXJxLCB3aGljaCBtdXN0IHJldHVy
biBhIGJvb2xlYW4gdmFsdWUgDQooZHVlIHRvIHRoZSBnZW5lcmljIEFQSSBmb3IgZ2ljdjNfcmVh
ZF9wZW5kaW5nX3N0YXRlKSwgd2UgY291bGQgcmV0dXJuIA0KZmFsc2Ugd2l0aCBhbiBhZGRpdGlv
bmFsIHdhcm5pbmcgbWVzc2FnZSB0aGF0IHdlIGFyZSB1bmFibGUgdG8gcmVhZCB0aGUgDQphY3R1
YWwgdmFsdWUgZHVlIHRvIGluY29ycmVjdCBwYXJhbWV0ZXJzOyB0aGVyZWZvcmUsIHdlIHJldHVy
biBmYWxzZS4NCldoYXQgZG8geW91IHRoaW5rIGFib3V0IHRoaXMgYXBwcm9hY2g/DQoNCkJlc3Qg
cmVnYXJkcywNCkxlb25pZA0K


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 09:39:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 09:39:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089769.1447266 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upOEZ-0004HR-OA; Fri, 22 Aug 2025 09:38:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089769.1447266; Fri, 22 Aug 2025 09:38: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 1upOEZ-0004HK-Jz; Fri, 22 Aug 2025 09:38:55 +0000
Received: by outflank-mailman (input) for mailman id 1089769;
 Fri, 22 Aug 2025 09:38:54 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1upOEY-0004HE-5i
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 09:38:54 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1upOEX-000lQ9-0i;
 Fri, 22 Aug 2025 09:38:53 +0000
Received: from [2a02:8012:3a1:0:25b0:6b73:1ad:6d5d]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1upOEX-00CuwE-0J;
 Fri, 22 Aug 2025 09:38: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=Pvez49rUvGvlQz7rTJ2K17IkfnF54blBpbjKcPNQw/0=; b=IA0eYOI6pWG6bj2GkwpX3ZfB/x
	zMUadFtYa7g+kR+4mGwn30lCImvM8b4TMrF7Qo2BISdrKHoFrxIeo4u21arTEVD0qg3SLD3ToOW81
	nhFM5Et2JhRM8V0GdoNwxkONGxXFEId8YHY6awMUx+QS5tirkJUXG4a08KEjZqKA1RTU=;
Message-ID: <26a5f2dc-0eaa-49b0-b15f-482a47808051@xen.org>
Date: Fri, 22 Aug 2025 10:38:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 01/10] xen/arm: gicv3: refactor obtaining GIC addresses
 for common operations
Content-Language: en-GB
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1754514206.git.leonid_komarianskyi@epam.com>
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
 <915641a6-8cc6-45bf-a1ee-d69b286e7d30@xen.org>
 <b2b7906c-d810-4162-b700-7f1dc2153f4b@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <b2b7906c-d810-4162-b700-7f1dc2153f4b@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hi Leonid,

On 22/08/2025 10:09, Leonid Komarianskyi wrote:
 > Thank you for your close review.>>> ---
>>>  Â  xen/arch/arm/gic-v3.cÂ Â Â Â Â Â Â Â Â  | 99 ++++++++++++++++++++++------------
>>>  Â  xen/arch/arm/include/asm/irq.h |Â  1 +
>>>  Â  2 files changed, 67 insertions(+), 33 deletions(-)
>>>
>>> diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
>>> index cd3e1acf79..8fd78aba44 100644
>>> --- a/xen/arch/arm/gic-v3.c
>>> +++ b/xen/arch/arm/gic-v3.c
>>> @@ -445,17 +445,62 @@ static void gicv3_dump_state(const struct vcpu *v)
>>>  Â Â Â Â Â  }
>>>  Â  }
>>> +static void __iomem *get_addr_by_offset(struct irq_desc *irqd, u32
>>> offset)
>>> +{
>>> +Â Â Â  switch ( irqd->irq )
>>> +Â Â Â  {
>>> +Â Â Â  case 0 ... (NR_GIC_LOCAL_IRQS - 1):
>>> +Â Â Â Â Â Â Â  switch ( offset )
>>> +Â Â Â Â Â Â Â  {
>>> +Â Â Â Â Â Â Â  case GICD_ISENABLER:
>>> +Â Â Â Â Â Â Â  case GICD_ICENABLER:
>>> +Â Â Â Â Â Â Â  case GICD_ISPENDR:
>>> +Â Â Â Â Â Â Â  case GICD_ICPENDR:
>>> +Â Â Â Â Â Â Â  case GICD_ISACTIVER:
>>> +Â Â Â Â Â Â Â  case GICD_ICACTIVER:
>>> +Â Â Â Â Â Â Â Â Â Â Â  return (GICD_RDIST_SGI_BASE + offset);
>>> +Â Â Â Â Â Â Â  case GICD_ICFGR:
>>> +Â Â Â Â Â Â Â Â Â Â Â  return (GICD_RDIST_SGI_BASE + GICR_ICFGR1);
>>> +Â Â Â Â Â Â Â  case GICD_IPRIORITYR:
>>> +Â Â Â Â Â Â Â Â Â Â Â  return (GICD_RDIST_SGI_BASE + GICR_IPRIORITYR0 + irqd->irq);
>>> +Â Â Â Â Â Â Â  default:
>>> +Â Â Â Â Â Â Â Â Â Â Â  break;
>>> +Â Â Â Â Â Â Â  }
>>> +Â Â Â  case NR_GIC_LOCAL_IRQS ... SPI_MAX_INTID:
>>> +Â Â Â Â Â Â Â  switch ( offset )
>>> +Â Â Â Â Â Â Â  {
>>> +Â Â Â Â Â Â Â  case GICD_ISENABLER:
>>> +Â Â Â Â Â Â Â  case GICD_ICENABLER:
>>> +Â Â Â Â Â Â Â  case GICD_ISPENDR:
>>> +Â Â Â Â Â Â Â  case GICD_ICPENDR:
>>> +Â Â Â Â Â Â Â  case GICD_ISACTIVER:
>>> +Â Â Â Â Â Â Â  case GICD_ICACTIVER:
>>> +Â Â Â Â Â Â Â Â Â Â Â  return (GICD + offset + (irqd->irq / 32) * 4);
>>> +Â Â Â Â Â Â Â  case GICD_ICFGR:
>>> +Â Â Â Â Â Â Â Â Â Â Â  return (GICD + GICD_ICFGR + (irqd->irq / 16) * 4);
>>> +Â Â Â Â Â Â Â  case GICD_IROUTER:
>>> +Â Â Â Â Â Â Â Â Â Â Â  return (GICD + GICD_IROUTER + irqd->irq * 8);
>>> +Â Â Â Â Â Â Â  case GICD_IPRIORITYR:
>>> +Â Â Â Â Â Â Â Â Â Â Â  return (GICD + GICD_IPRIORITYR + irqd->irq);
>>> +Â Â Â Â Â Â Â  default:
>>> +Â Â Â Â Â Â Â Â Â Â Â  break;
>>> +Â Â Â Â Â Â Â  }
>>> +Â Â Â  default:
>>> +Â Â Â Â Â Â Â  break;
>>> +Â Â Â  }
>>> +
>>> +Â Â Â  /* Something went wrong, we shouldn't be able to reach here */
>>   > +Â Â Â  panic("Invalid offset 0x%x for IRQ#%d", offset, irqd->irq);
>>
>> ... I still quite concerned about using panic here. We need to try to
>> handle the error more gracefully in production.
>>
>> Cheers,
>>
> 
> I was thinking about this again, and maybe it would be better to change
> the panic into simply printing an error using printk(XENLOG_G_ERR ...)
> and adding proper checks to ensure the return value is not NULL in the
> callers.

Given the error is not meant to happen, after the printk() I would add 
an ASSERT_UNREACHABLE() so we can catch issue in DEBUG build more easily.

> Also, in the case of gicv3_peek_irq, which must return a boolean value
> (due to the generic API for gicv3_read_pending_state), we could return
> false with an additional warning message that we are unable to read the
> actual value due to incorrect parameters; therefore, we return false.
> What do you think about this approach?

It makes sense to read false as the interrupt technically doesn't exist. 
But I don't think we should add an extra warning. The one in 
get_addr_by_offset() should be sufficient.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Fri Aug 22 09:51:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 09:51:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089807.1447275 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upOQm-00079V-QY; Fri, 22 Aug 2025 09:51:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089807.1447275; Fri, 22 Aug 2025 09:51: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 1upOQm-00079O-Nn; Fri, 22 Aug 2025 09:51:32 +0000
Received: by outflank-mailman (input) for mailman id 1089807;
 Fri, 22 Aug 2025 09:51:31 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JUr3=3C=darkstar.site=sakib@srs-se1.protection.inumbo.net>)
 id 1upOQk-00070p-SK
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 09:51:30 +0000
Received: from fforwardh-a3-smtp.messagingengine.com
 (fforwardh-a3-smtp.messagingengine.com [103.168.172.198])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 931f0cc2-7f3d-11f0-a32b-13f23c93f187;
 Fri, 22 Aug 2025 11:51:30 +0200 (CEST)
Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44])
 by mailfforwardh.phl.internal (Postfix) with ESMTP id 387EE8019F;
 Fri, 22 Aug 2025 05:51:28 -0400 (EDT)
Received: from phl-frontend-02 ([10.202.2.161])
 by phl-compute-04.internal (MEProxy); Fri, 22 Aug 2025 05:51:28 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 22 Aug 2025 05:51:26 -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>
X-Inumbo-ID: 931f0cc2-7f3d-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:cc:content-transfer-encoding
	: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=
	1755856288; x=1755942688; bh=In0StexMoh8GPjq3jgjnpvyNh6TTCqQYG3/
	BfZ4QI3o=; b=I0HgdpE0kEreuhAM2jou0V+PD7AF25RxXLRKgojP/t7EYW5VFvR
	uwP2NfuwRLkgaKjppcEaWKdYnSh/OkFd1mWzyjg11K4P4cog1XHRkM9T43KZ1Fum
	dG3QwodbfQ/XpNuYthBJEESqUeBeEcU/keyviJ0Meih+XYRqhg4PuoLKfSYsYilU
	0AJL3JNPlsxuCxepN9VcSdxkZaA4O8VB6uMsmxBh3kIlX7KK4VkDuAhVokm6w6Ff
	eN+wTJLH4J20L/qNDcSZuKMxQUESGZ3D5SUuFF/pIu8JcNMK8Z3F/Gd7a5ZOBOk9
	UW3VJ7YIyPL//ISqRLGsOFz03CMc/8RNrmQ==
X-ME-Sender: <xms:nz2oaONNPayV-lAZ1dNrnDdYsUfTHSgKPdVoRyBoMSEvRctAVzPpRA>
    <xme:nz2oaIpU_oQVlv4ZrocyvNANsTCLORHHrn-VDDKR1AVJtuVH-E6dSWzOHNU3EYfQC
    Cb1IzSST23PcemdbyQ>
X-ME-Received: <xmr:nz2oaBv86uumGcqYM5lTApxDeKaBHrtVVJ0cqb_heRbvvF-gOjq8sw9M3IQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgdduieefgeegucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhephffvvefufffkofgggfestdekredtredttdenucfhrhhomhepufgvrhhgihihucfm
    ihgsrhhikhcuoefuvghrghhihigpmfhisghrihhksegvphgrmhdrtghomheqnecuggftrf
    grthhtvghrnhepgedvfeefhfduvdetkeegleeggfelheekveeiuddufeehtdehleelhfek
    iedvvedvnecuffhomhgrihhnpehkvghrnhgvlhdrohhrghenucevlhhushhtvghrufhiii
    gvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehsrghkihgssegurghrkhhsthgrrhdr
    shhithgvpdhnsggprhgtphhtthhopedutddpmhhouggvpehsmhhtphhouhhtpdhrtghpth
    htohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdhr
    tghpthhtohepshgvrhhgihihpghkihgsrhhikhesvghprghmrdgtohhmpdhrtghpthhtoh
    eprghnughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphhtthhopegr
    nhhthhhonhihrdhpvghrrghrugesvhgrthgvshdrthgvtghhpdhrtghpthhtohepmhhitg
    hhrghlrdhorhiivghlsegrmhgurdgtohhmpdhrtghpthhtohepjhhulhhivghnseigvghn
    rdhorhhgpdhrtghpthhtoheprhhoghgvrhdrphgruhestghithhrihigrdgtohhmpdhrtg
    hpthhtohepughpshhmihhthhesrghpvghrthhushhsohhluhhtihhonhhsrdgtohhmpdhr
    tghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhnvghlrdhorhhg
X-ME-Proxy: <xmx:nz2oaH1xj8CVC7Rbjg81PwHnxHZE_NHbcxYL77j1t61WzLHj5bWHnQ>
    <xmx:nz2oaMEXSLsdY7fuQlEpfNqFO2wCC2t8nz8cfcnMS5cEiuZ33e-A8Q>
    <xmx:nz2oaCvstVptAqvDpbHqhP1ZPjxGIAEiGNAUKTSvGrhOyP9VaznCmw>
    <xmx:nz2oaPpAutVsWE750zZKjZAuCtGVlPTQ6CDq2aJIRL6XOeZPi26sPw>
    <xmx:nz2oaJUIoZKrhnT3NwOEpP5llAW_6cwciwLGwd5l1LmUwKBjvVFdiA>
    <xmx:oD2oaLCySOp6A6mmukWYcxJgvB7lUzD5ekkR1YEG1sbZO0TBXTjzZzJZpK5U>
Feedback-ID: i5de959fc:Fastmail
From: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
To: xen-devel@lists.xenproject.org
Cc: Sergiy Kibrik <Sergiy_Kibrik@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Jan Beulich <jbeulich@suse.com>
Subject: [XEN PATCH v1] xen/flask: limit sidtable size
Date: Fri, 22 Aug 2025 12:51:23 +0300
Message-Id: <20250822095123.998313-1-Sergiy_Kibrik@epam.com>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Currently Xen lacks a defined largest number of security IDs it can potentially
use. The number of SIDs are naturally limited by number of security contexts
provided by a given security policy, i.e. how many combination of user, role
and type there can be, and is dependant on the policy being used.
Since the policy is generally not known in advance the size of sidtable in Xen
has a rather high limit of UINT_MAX entries.

However in the embedded environment configured for safety it is desirable to
avoid guest-triggered dynamic memory allocations at runtime, or at least limit
them to some decent and predictable amounts. This patch provides a configuration
option to impose such a limit.

Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
CC: Jan Beulich <jbeulich@suse.com>
---
After RFC patch discussion it's been suggested to use Kconfig option
instead of estimation of sidtable size at build time:

   https://lore.kernel.org/xen-devel/20250630085559.554334-1-Sergiy_Kibrik@epam.com/

 -Sergiy
---
 xen/common/Kconfig        | 19 +++++++++++++++++++
 xen/xsm/flask/ss/sidtab.c |  8 +++++++-
 2 files changed, 26 insertions(+), 1 deletion(-)

diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 76f9ce705f..f956a93fb3 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -418,6 +418,25 @@ config XSM_FLASK_AVC_STATS
 
 	  If unsure, say Y.
 
+config XSM_FLASK_SIDTABLE_LIMIT
+	def_bool n
+	prompt "Limit the size of SID table" if EXPERT
+	depends on XSM_FLASK
+	---help---
+	  Limit the number of security identifiers allocated and operated by Xen.
+	  This will limit the number of security contexts and heap memory
+	  allocated for SID table entries.
+
+	  If unsure, say N.
+
+config XSM_FLASK_MAX_SID
+	int "Max SID table size" if XSM_FLASK_SIDTABLE_LIMIT
+	default 512
+	help
+	  The maximum amount of SIDs allocated by Xen. Default value is
+	  approximately double the size of contexts that default Xen policy can
+	  potentially have.
+
 config XSM_FLASK_POLICY
 	bool "Compile Xen with a built-in FLASK security policy"
 	default y if "$(XEN_HAS_CHECKPOLICY)" = "y"
diff --git a/xen/xsm/flask/ss/sidtab.c b/xen/xsm/flask/ss/sidtab.c
index 69fc3389b3..1dd0700b8c 100644
--- a/xen/xsm/flask/ss/sidtab.c
+++ b/xen/xsm/flask/ss/sidtab.c
@@ -14,6 +14,12 @@
 #include "security.h"
 #include "sidtab.h"
 
+#ifdef CONFIG_XSM_FLASK_SIDTABLE_LIMIT
+#define SID_LIMIT CONFIG_XSM_FLASK_MAX_SID
+#else
+#define SID_LIMIT UINT_MAX
+#endif
+
 #define SIDTAB_HASH(sid) ((sid) & SIDTAB_HASH_MASK)
 
 #define INIT_SIDTAB_LOCK(s) spin_lock_init(&(s)->lock)
@@ -228,7 +234,7 @@ int sidtab_context_to_sid(struct sidtab *s, struct context *context,
         if ( sid )
             goto unlock_out;
         /* No SID exists for the context.  Allocate a new one. */
-        if ( s->next_sid == UINT_MAX || s->shutdown )
+        if ( s->next_sid == SID_LIMIT || s->shutdown )
         {
             ret = -ENOMEM;
             goto unlock_out;
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 22 10:00:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 10:00:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089816.1447285 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upOZW-0000Ms-Mh; Fri, 22 Aug 2025 10:00:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089816.1447285; Fri, 22 Aug 2025 10:00: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 1upOZW-0000Ml-J4; Fri, 22 Aug 2025 10:00:34 +0000
Received: by outflank-mailman (input) for mailman id 1089816;
 Fri, 22 Aug 2025 10:00:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1jNg=3C=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1upOZU-0000Mf-Ep
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 10:00:32 +0000
Received: from DB3PR0202CU003.outbound.protection.outlook.com
 (mail-northeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c200::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d459ed4b-7f3e-11f0-b898-0df219b8e170;
 Fri, 22 Aug 2025 12:00:27 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by VI2PR03MB10619.eurprd03.prod.outlook.com (2603:10a6:800:27b::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.21; Fri, 22 Aug
 2025 10:00:25 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Fri, 22 Aug 2025
 10:00: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>
X-Inumbo-ID: d459ed4b-7f3e-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=h9WCGdS/eIWHIRxFnc8PbxtwwxcnStT5HO9psDucP5c88X3kR4peVVBYKnhuH14G7XSSs85ZEy6TDhWwSqmvrPzz89QpiweGWyDLUkK42hL707Say3jMNyOFnCbbATIM/6wU4++SREATHQeq14fvQC7/3fxuA0KWBHYq3uBCjsizfRA2X8Xm82hh+/MQtuq3WTU/j1r+a977w0gcI8EPc/9CiuyNP8kljt2ec1xHLrzWaJcR8W0pVSUnYct2DSmcuxeL4D+Ts48MYqNW6SqqnDcMJQYxMWzNS9DwOgNrm+YeCEBbf5oTFEK3VmtWV1OgAak1xcJzkS0YADYDn0T0Fg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=YO3dNsDeu5Cz+i3/tjLoxZMpt6P+NAXrBw1O7aTvSF8=;
 b=MavUXC8uaqhbuPnJD3SGg1L+WnZMoVwOAJASyszhn1KrCeh+21z+s+aG440hAOJmKnWhStJr1epJmNx4YoDP+2IwlGMtCf9knrNlxe4Ng0yDlNY384kfw1liAWcceTlxJaLZ6lJYwhPBGtRMkK0X0OC0EL2vbObTf2K0OD2a5obj42sZaZ0x6C7p8pkV8qLPm9jsI0TDG2sudYLZtg5HtqvhiA/ORaYbjJ6RLFY+W5z8V34Zvtvl6xzEXdEx0RFNu8rms3CJs4LMnto6br2vI4FdhqwnGO6gvNwmQ31CjI9D1N+jzrmQ8iNXcpTrdhxzsOjYIMdmRi45OMKucMtnaA==
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=YO3dNsDeu5Cz+i3/tjLoxZMpt6P+NAXrBw1O7aTvSF8=;
 b=U/O9MkpDpdPEoVFkR7Sd3FE6hsXNOVwGjgrA3iv3n6eDmGshHcBaur9kNre9Qq9CD+Vdj6aWkgkhrMo0WMxUZx0RoTCVqD+TaSfv4aUWZuPt+lyLLTXirooLtIsgk/0p0nozbQxyKeWJ+bC14ByltwiBzNYG6mXxV5i2xXph2cwESiJo3gwVz0W1066mASTbAoMTOndQjBD2w95uB3UEbm7WZ5kiEcpgPafMeZBzIggi6jWJKKIY7doW1kxH3pJJzum+K01Sc08IMVHcE7oKfJ5VR3cS5GLEh9DDlg3ZdZwhA7G8PYnPjZHxPkzfhrNySJrgaef3J0Radoxerh2xvQ==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v2 10/10] xen/arm: vgic-v3: add emulation of GICv3.1 eSPI
 registers
Thread-Topic: [PATCH v2 10/10] xen/arm: vgic-v3: add emulation of GICv3.1 eSPI
 registers
Thread-Index: AQHcB5d9o2YugLH3UUKTUBQVCD+iyrRuh/gA
Date: Fri, 22 Aug 2025 10:00:25 +0000
Message-ID: <554da5a0-2c36-4f52-ae9d-9e39cb07165d@epam.com>
References:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
 <3ba2381b4c782a5187161f9418e5a35e7916c752.1754568795.git.leonid_komarianskyi@epam.com>
 <87a53sd1ry.fsf@epam.com>
In-Reply-To: <87a53sd1ry.fsf@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: GV2PR03MB8678:EE_|VI2PR03MB10619:EE_
x-ms-office365-filtering-correlation-id: 114ddf18-f7b5-4838-fdae-08dde162b710
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|376014|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?ZzlXSWZSUXJXQWRTeW8rVTRlOGQwb3hYcElxY3Q2bTV1Z1ZjcDhaazZDUEtU?=
 =?utf-8?B?QXVjNDYrVjFBd2lkeDJCVk8xTk9NSHozamJpcWl4Q0ZpdWloZ2l4SFpjaEpw?=
 =?utf-8?B?M1BkM2VsRVpqM0FXNmtheE4va01EMlo3NHBaZkRVaW9ETm10RU5RTUhGZWpE?=
 =?utf-8?B?U21BMHUraDNPL3Q3R1NUOTdYejRlTG1FRU1waHgyR28xRExkRVJJUU1CV3p5?=
 =?utf-8?B?U1lwNjlBanNCb0hqelNpWXBObzMwOGZxRG4xeGZhMDEvWU1MNDA5ZVQxN2Zz?=
 =?utf-8?B?blFRdXBqQkVVSVVhSkQ1cjRsbWc2cG5aK3lTZlk2azBYc1kzODFBcm1BMStp?=
 =?utf-8?B?WEx3U2JjYkxnblprcnA1VkFsRnNWaGJHMnhQcjE5VkFhL0Yydjl5Wi9EYTVu?=
 =?utf-8?B?YW5OQlRYU29aMmduVy9BeGxNRmUyUlQvZVZ6aDFaMTRCTFFUWFpDNzhqRWo3?=
 =?utf-8?B?TU5BekFBWmdIeUJuMkdvWklVOUd6Nzh6YXQvL3lZWW5pM0d4aE4yVjRPbEJa?=
 =?utf-8?B?OHYxaUZwVk5uN1owSkt4UUhKNUNOeWlNTURCdGtVNzYzRVpRdkFIWHN2VmlE?=
 =?utf-8?B?Vm5ybllQVGthd01TTnNmZlRNVXVWdjF3Y2NLUE5YVHA3ZWNkbGJJMWw5U1pE?=
 =?utf-8?B?dGM2UFJYbGdWcEQycDVibnpVVm1mTlBKaXlPWThqQkJPcndHNEhkaWc1V1Bo?=
 =?utf-8?B?MTJPTjl1RHN5ZWxPWk5EMmMyMmRRSjdXelpIT2FpRlhSempDVGVQSkduMFRo?=
 =?utf-8?B?RGU5dEVoMU90TkpNR25qeHJ3QXlBem9TTEU4VGwwbFZCS2RSUkVrbUptV0Ur?=
 =?utf-8?B?YU85ZTkwTXg3UWtpQzRNM2tGaUlXeUlqRExaV3dPUG1OK1JuWGxiVnRKcmFJ?=
 =?utf-8?B?Z011aHJyZWZxT0hqMlIvUHJaeFpWbEVtSC8xT2VoSlFUcTg2KzdaZDNZUXJP?=
 =?utf-8?B?K1NBN1ZkQTVKZTd3MlltZ054R0oyRUhxU3JkbS8wbzRIdEE2UXh2M3JaOTFC?=
 =?utf-8?B?dnFEZkpkQURrbHY1ZVJuNTVtcWFaNUVmSHlEMXRUVnA1MHM4Znd6bStIR3pW?=
 =?utf-8?B?MUN2TzNQWWhaaUloMWl0blNTRkcrN090QWxLTWY0U2dYYnVEYTZSUTRlaVJQ?=
 =?utf-8?B?QlNuMUdWaE1RTGtoN0o5TVEzaGtkbngrUUQwc1NmVnQwYm5vNURKcEthaUEx?=
 =?utf-8?B?d2Q5SHQ4Z0lLV2JQNnZWZzM2TGgrelROVWtmRWErVnRNSzdPZmplV29ma1lM?=
 =?utf-8?B?b2JNbHgrVzdaTlpWYVNuTXhnc1NZanliZDFzWXlrdFZhS2Rwb0FFNXBYZEhH?=
 =?utf-8?B?WXN2QzlSZTlCVHZTOFljb24zRXM4RktTazZWRzI4SEpuZW5rNUp6aU1JWVJC?=
 =?utf-8?B?dTQ4OVNkQld4Y2VOcGYwZldsZFZPdjZORjVHamx0R2k5Uk1QRmx4UUdDZStQ?=
 =?utf-8?B?WXp5aExROVl0cWk2RXorM2JyV2pTaHloTVphUWpLUGVkNnNPOHZwdEZ1TFJi?=
 =?utf-8?B?cnh3WW1WNmtqL1VTSG4rcWU5cTc0R0FtQXhnMVNZM3ozRUtReFdkaHUyRktn?=
 =?utf-8?B?dmtVcFZ5dDhMd2I3V29FY2FmazBoMWpJcDg4bENCcFJJTURWT0ZsODNhUzdN?=
 =?utf-8?B?blI4VzhZSUM3RmRvdXMrenR5SlJTdzZPc2V3RERsSkp1cUVBZW44Y00rcitT?=
 =?utf-8?B?MFBnWkZIRDIyVE5MVlpxQUwvNUpIVnV0OXBLeUlWTVJBb1ZYN3UxQVBHdUxL?=
 =?utf-8?B?YkJSYWZENE9ydHFRZm5nbjI4SGJyS3VJVUJhYk1zUlNjd0pzSFpmbmNKbW80?=
 =?utf-8?B?TmZRT2ZPN25rYmx0bUNBeTZnUTZGNHdIR1E3dUZzWmxRLzc0SDQ2ZGdDVi9v?=
 =?utf-8?B?cnBKQUJhdzVWbFZUYzl4NmRHWWlmdXJDNDVpRFlYOGR6QlRrcTNYSnVXNkFV?=
 =?utf-8?B?aUtkSklkYWZleURXUFkzUjJ3c0NpYVAzajVtQTFmaDZwdGE2UzlWZ2k4VTh2?=
 =?utf-8?B?RUR5aTdGc2p3PT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?cVgzeXJ2TWVER042ZldkbkhoYWkyZUQ3cmRoRVloNmU3cEZxMkpqZ2hkdlR3?=
 =?utf-8?B?M3ZxSlVmTDZMSDErQ252UU1BbitLMFpjTlV2SnVab0Vpdit5c1Ntd1ByL2tr?=
 =?utf-8?B?SEwyQzJQV1ZyUXZQbHBzcDBPMVFJampqS3REa21UNVdiT1RWL253akRrV1FW?=
 =?utf-8?B?Qkd6bXQxTk5XTU5WaUJ1WDFQQ1BVMXk4MEprQ3ZMYzJtWEhVU3FOdUd5YUhs?=
 =?utf-8?B?WWUrekd6aThtaEgwbm9EUW1EU0hjbXlmbVRzazJGTTNiNktYdnpCS0ZVSFZV?=
 =?utf-8?B?Z21CMzJmOWhRMFgzS0FyM2w2NDZYMkRHRENYbUhIR2tZeDBaYnVsMEJoSkhI?=
 =?utf-8?B?aHdJZVNNNDlzMSsvZ2VJNU0wM2JXYjVwdFRBOHh6dmFYNC93aW9SZXZMeVVO?=
 =?utf-8?B?cUx1eTVESys3RGhlNU5XTXNiNi8rUjVKZ2xNTlpnakpBUytFYlN2T2pNZ05J?=
 =?utf-8?B?YkZBTXFBbjRIRjJ3bTNNVTZsRzl5amx3TWIrd2hrVFBPZEF2S25CUVhzYUIv?=
 =?utf-8?B?cGVuYnVVYTc3YUdXWlhkUjQwaUwrOTlQMnA3U204NFBUY1BYdERBeDBsMFFM?=
 =?utf-8?B?aXk5MjdRSEN3Ny85V2xXUmFzN0kzYW83bUFodW01d081VEtHTnNjbUphbGZq?=
 =?utf-8?B?MkwrV0tURDlLZGFYc3NsQSt2MUFsS0dQTXQ2WXBtZ2t6bGZnWkx6a2JUeEpz?=
 =?utf-8?B?cE5UbXNHN2NkWHZJNnJEa203c3dmcEtackVhL24xSDdGdEtjWUZaRmttaUJv?=
 =?utf-8?B?a1NsdlY1b3lpZzhHSGg4d2s5cTRJMDRMd1hoSy9qbXV4N29KQ3BCOUNjeWl4?=
 =?utf-8?B?bWd2TDloUFBuaGNLcUx2REFQRFdEdm1FLzVGblV6R0czdXhTRkVhbEd3QU95?=
 =?utf-8?B?SGE5ZTJlTlZZaDFDQ0hlVWlBWDM2d0JEUDUrQW1tMnhpWlR2dG54QmRCbUVT?=
 =?utf-8?B?clVCWDUvTUZpZksxeHF2dDJlUmRoNWc1TWNSOEFmbVA3SVNLNjduUlQ4anJa?=
 =?utf-8?B?WEdTM1pwM25CdnN1V2hzdEFxQ1ovaUcxUlNoZ0YweDRSbk1OOVcrR1BzcFN5?=
 =?utf-8?B?clMwTWZwakVLN2tWZ2FFQVovV1EvVDZPUHJ0MXIwNVpTdEx6MDdPYm1vRDNo?=
 =?utf-8?B?SVhTS2RRSkVmWGovWGdnUGExcitBNnFvZUpneGZEczNLUi9XMlBZaEZ0cjYx?=
 =?utf-8?B?S1lkZldsai9IUGRKdThucEFnRVdlYWEwU3EyUlVlS003bGwxVUxNa0RWNW5V?=
 =?utf-8?B?NTk0S3IwZ295MlFSUmdiT3FPT1NJZFo1Wk9lYnNNamJNdlVpdldldDNPRHRI?=
 =?utf-8?B?cURpR1N6L0NkQTBDa2xqN0tYcmhCNTBwOHVWVlVReWhJTnh3RjkrT2Y2V3Zp?=
 =?utf-8?B?K3Nac0RnbUxMaEdzaGhZQTdCYm8rVFlnTGZhbE1vV2lkd1o4ZC9RVlpGcG1F?=
 =?utf-8?B?VXdUbEsyTGZvRmsrRnRETG1ENXhWOXZaYTZpM08zWEtnKzZYbFgyS0xGbUxM?=
 =?utf-8?B?dXN2RWJWVkIrRDNvMTN5UnpPRzZ6NGxHRUxtcFFVMWNuUGdYTnhMWGJ2MC9z?=
 =?utf-8?B?RnlmY0x3UDdkUXRwTkJUb3pPeUlOKzZiSHFha1FaT3RnSFkwdHV0Qk9YbkRt?=
 =?utf-8?B?S1RYVms0bHcwUTdoc2N4QzBtOHB3Q0Fpc0dkaDhmSHpHUkpJUllEWldRY0FW?=
 =?utf-8?B?RHpkVFM3SDhmblcvczBqdEJBQ05VTE9XRXVKVzBPK1QxL3hBK1BhUXNBa0o3?=
 =?utf-8?B?bURvZjh5TC9hQWdxUjltemU3RUhwYi9aMXEzd1hKcmU0YU1TNWxrdlVMM3BH?=
 =?utf-8?B?SnRYNTdRUGJCcG5Wa2p1bjNmOFM4NjlnRy8zcnAvMGl0MWZTVjd0TFJYU3B0?=
 =?utf-8?B?VlFQSllaN1BwSDJiWnVxRXpzUHJ4c1FZcEpuV0JQYVFpMTVRZ1hnUmUwZjRh?=
 =?utf-8?B?aG5DdDJWc09VRkFJRXhTYUtwcnMwR3hMQWJpWkpMNDFpMTJvNlFRUnFSYi8v?=
 =?utf-8?B?VzZVNW5jM21qTXk3MEhndWQ5YjErM0xZSktMUUZadXZwcklwTzBUT1R5bk5w?=
 =?utf-8?B?WG4wUm93c2RnTm5CNUt0Kzh6RFAwSXJEclhWdHZrZlc3MjZjYUlkQjVTclVm?=
 =?utf-8?B?dDV2ZTN3eHk1QTJ4UGN0d1A5OUlsZGF3N2VYcFdZU05mb21Qb3RzWXhwU0Ez?=
 =?utf-8?Q?GUnjawxpD+vxoLKy2vMDblE=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <B0D7FDE3F5B3F0418068F23E98838B63@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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 114ddf18-f7b5-4838-fdae-08dde162b710
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Aug 2025 10:00:25.0533
 (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: fH3e+TeazMnDq8XQ4y5DexnvYeHrUuH5y72Wa7AH4cWPeZpX9HSOIL30S9cbdtkk3qdaWIt9sJACuHesmOtvQ+w4jjEouNrvWuXvj0yV11Y=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI2PR03MB10619

SGkgVm9sb2R5bXlyLA0KDQpUaGFuayB5b3UgZm9yIHlvdXIgY2xvc2UgcmV2aWV3Lg0KDQpPbiAy
MS4wOC4yNSAyMDoyNiwgVm9sb2R5bXlyIEJhYmNodWsgd3JvdGU6DQo+IA0KPiBIaSBMZW9uaWQs
DQo+IA0KPiBMZW9uaWQgS29tYXJpYW5za3lpIDxMZW9uaWRfS29tYXJpYW5za3lpQGVwYW0uY29t
PiB3cml0ZXM6DQo+IA0KPj4gSW1wbGVtZW50ZWQgc3VwcG9ydCBmb3IgR0lDdjMuMSBleHRlbmRl
ZCBTUEkgcmVnaXN0ZXJzIGZvciB2R0lDdjMsDQo+PiBhbGxvd2luZyB0aGUgZW11bGF0aW9uIG9m
IGVTUEktc3BlY2lmaWMgYmVoYXZpb3IgZm9yIGd1ZXN0IGRvbWFpbnMuDQo+PiBUaGUgaW1wbGVt
ZW50YXRpb24gaW5jbHVkZXMgcmVhZCBhbmQgd3JpdGUgZW11bGF0aW9uIGZvciBlU1BJLXJlbGF0
ZWQNCj4+IHJlZ2lzdGVycyAoZS5nLiwgR0lDRF9JU0VOQUJMRVJuRSwgR0lDRF9JUk9VVEVSbkUs
IGFuZCBvdGhlcnMpLA0KPj4gZm9sbG93aW5nIGEgc2ltaWxhciBhcHByb2FjaCB0byB0aGUgaGFu
ZGxpbmcgb2YgcmVndWxhciBTUElzLg0KPj4NCj4+IFRoZSBlU1BJIHJlZ2lzdGVycywgcHJldmlv
dXNseSBsb2NhdGVkIGluIHJlc2VydmVkIGFkZHJlc3MgcmFuZ2VzLA0KPj4gYXJlIG5vdyBhZGp1
c3RlZCB0byBzdXBwb3J0IE1NSU8gcmVhZCBhbmQgd3JpdGUgb3BlcmF0aW9ucyBjb3JyZWN0bHkN
Cj4+IHdoZW4gQ09ORklHX0dJQ1YzX0VTUEkgaXMgZW5hYmxlZC4NCj4+DQo+PiBUaGUgYXZhaWxh
YmlsaXR5IG9mIGVTUElzIGFuZCB0aGUgbnVtYmVyIG9mIGVtdWxhdGVkIGV4dGVuZGVkIFNQSXMN
Cj4+IGZvciBndWVzdCBkb21haW5zIGlzIHJlcG9ydGVkIGJ5IHNldHRpbmcgdGhlIGFwcHJvcHJp
YXRlIGJpdHMgaW4gdGhlDQo+PiBHSUNEX1RZUEVSIHJlZ2lzdGVyLCBiYXNlZCBvbiB0aGUgbnVt
YmVyIG9mIGVTUElzIHJlcXVlc3RlZCBieSB0aGUNCj4+IGRvbWFpbiBhbmQgc3VwcG9ydGVkIGJ5
IHRoZSBoYXJkd2FyZS4gSW4gY2FzZXMgd2hlcmUgdGhlIGNvbmZpZ3VyYXRpb24NCj4+IG9wdGlv
biBpcyBkaXNhYmxlZCwgdGhlIGhhcmR3YXJlIGRvZXMgbm90IHN1cHBvcnQgZVNQSXMsIG9yIHRo
ZSBkb21haW4NCj4+IGRvZXMgbm90IHJlcXVlc3Qgc3VjaCBpbnRlcnJ1cHRzLCB0aGUgZnVuY3Rp
b25hbGl0eSByZW1haW5zIHVuY2hhbmdlZC4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBMZW9uaWQg
S29tYXJpYW5za3lpIDxsZW9uaWRfa29tYXJpYW5za3lpQGVwYW0uY29tPg0KPj4NCj4+IC0tLQ0K
Pj4gQ2hhbmdlcyBpbiBWMjoNCj4+IC0gYWRkIG1pc3NpbmcgcmFuayBpbmRleCBjb252ZXJzaW9u
IGZvciBwZW5kaW5nIGFuZCBpbmZsaWdodCBpcnFzDQo+PiAtLS0NCj4+ICAgeGVuL2FyY2gvYXJt
L3ZnaWMtdjMuYyB8IDI0OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
LQ0KPj4gICAxIGZpbGUgY2hhbmdlZCwgMjQ1IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0p
DQo+Pg0KPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS92Z2ljLXYzLmMgYi94ZW4vYXJjaC9h
cm0vdmdpYy12My5jDQo+PiBpbmRleCA0MzY5YzU1MTc3Li4xY2FjYmI2ZTQzIDEwMDY0NA0KPj4g
LS0tIGEveGVuL2FyY2gvYXJtL3ZnaWMtdjMuYw0KPj4gKysrIGIveGVuL2FyY2gvYXJtL3ZnaWMt
djMuYw0KPj4gQEAgLTExMSw3ICsxMTEsNyBAQCBzdGF0aWMgdWludDY0X3QgdmdpY19mZXRjaF9p
cm91dGVyKHN0cnVjdCB2Z2ljX2lycV9yYW5rICpyYW5rLA0KPj4gICAgKiBOb3RlIHRoZSBvZmZz
ZXQgd2lsbCBiZSBhbGlnbmVkIHRvIHRoZSBhcHByb3ByaWF0ZSBib3VuZGFyeS4NCj4+ICAgICov
DQo+PiAgIHN0YXRpYyB2b2lkIHZnaWNfc3RvcmVfaXJvdXRlcihzdHJ1Y3QgZG9tYWluICpkLCBz
dHJ1Y3QgdmdpY19pcnFfcmFuayAqcmFuaywNCj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdW5zaWduZWQgaW50IG9mZnNldCwgdWludDY0X3QgaXJvdXRlcikNCj4+ICsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG9mZnNldCwgdWludDY0X3QgaXJv
dXRlciwgYm9vbCBlc3BpKQ0KPiANCj4gSSBhbSB3b25kZXJpbmc6IG1heWJlIGl0IGlzIGJldHRl
ciB0byBwYXNzIHZpcnEgaW5zdGVhZCBvZiBvZmZzZXQgaW50bw0KPiB0aGlzIGZ1bmN0aW9uPyBJ
biB0aGF0IGNhc2UgeW91IGNhbiBnZXQgcmlkIG9mIGVzcGkgcGFyYW1ldGVyLg0KPiANClllcywg
aXQgbWFrZXMgc2Vuc2UsIGJlY2F1c2UgaW4gYW55IGNhc2Ugd2UgcmVjYWxjdWxhdGUgdGhlIG9m
ZnNldCANCmxhdGVyLCBhZnRlciBnZXR0aW5nIHRoZSB2aXJxOg0KID4gICAgLyogR2V0IHRoZSBp
bmRleCBpbiB0aGUgcmFuayAqLw0KID4gICAgb2Zmc2V0ID0gdmlycSAmIElOVEVSUlVQVF9SQU5L
X01BU0s7DQoNCkFuZCBhcyBhIGJvbnVzLCBJIGNhbiBnZXQgcmlkIG9mIHRoZSBlc3BpIHBhcmFt
ZXRlci4gSG93ZXZlciwgaXQgDQpyZXF1aXJlcyB0aGUgY2FsbGVyIHRvIGNhbGN1bGF0ZSB0aGUg
dmlycSBieSBpdHNlbGYuDQpJZiBhcHBsaWNhYmxlLCBJIGNhbiBhZGQgb25lIG1vcmUgcHJlcGFy
YXRpb24gcGF0Y2ggaW4gVjMgYmVmb3JlIA0KYWN0dWFsbHkgaW1wbGVtZW50aW5nIGVTUEkgd2l0
aCBzdWNoIGNoYW5nZXMuIFdvdWxkIHRoYXQgYmUgYmV0dGVyPw0KDQo+PiAgIHsNCj4+ICAgICAg
IHN0cnVjdCB2Y3B1ICpuZXdfdmNwdSwgKm9sZF92Y3B1Ow0KPj4gICAgICAgdW5zaWduZWQgaW50
IHZpcnE7DQo+PiBAQCAtMTIzLDcgKzEyMyw4IEBAIHN0YXRpYyB2b2lkIHZnaWNfc3RvcmVfaXJv
dXRlcihzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgdmdpY19pcnFfcmFuayAqcmFuaywNCj4+ICAg
ICAgICAqIFRoZSBJUk9VVEVSMC0zMSwgdXNlZCBmb3IgU0dJcy9QUElzLCBhcmUgcmVzZXJ2ZWQg
YW5kIHNob3VsZA0KPj4gICAgICAgICogbmV2ZXIgY2FsbCB0aGlzIGZ1bmN0aW9uLg0KPj4gICAg
ICAgICovDQo+PiAtICAgIEFTU0VSVCh2aXJxID49IDMyKTsNCj4+ICsgICAgaWYgKCAhZXNwaSAp
DQo+PiArICAgICAgICBBU1NFUlQodmlycSA+PSAzMik7DQo+IA0KPiBiZXR0ZXIgdG8gd3JpdGUN
Cj4gQVNTRVJUICghZXNwaSAmICh2aXJxPj0zMikpDQo+IA0KSSBhZ3JlZSB3aXRoIHRoYXQsIGl0
IGxvb2tzIG11Y2ggYmV0dGVyLiBJIHdpbGwgY2hhbmdlIGl0IGluIFYzIG9yIGRyb3AgDQphdCBh
bGwgaWYgaXQgd291bGQgYmUgb2theSB0byB1c2UgdmlycSBhcyBhIHBhcmFtZXRlci4NCg0KPiBh
bmQgcHJvYmFibHkgeW91IG5lZWQgc3ltbWV0cmljYWwgQVNTRVJUIGZvciBlc3BpID09IHRydWUN
ClRoaXMgaXMgbm90IG5lZWRlZCBmb3IgZVNQSSBiZWNhdXNlLCB1bmxpa2UgcmVndWxhciBTUElz
IHRoYXQgaGF2ZSANCmluZGV4ZXMgc3RhcnRpbmcgZnJvbSAzMiwgZVNQSSBJTlRJRHMgc3RhcnQg
ZnJvbSA0MDk2IGFuZCBjb3ZlciBhbGwgMTAyNCANCklSUSBsaW5lcy4NCg0KPiANCj4+ICAgICAg
IC8qIEdldCB0aGUgaW5kZXggaW4gdGhlIHJhbmsgKi8NCj4+ICAgICAgIG9mZnNldCA9IHZpcnEg
JiBJTlRFUlJVUFRfUkFOS19NQVNLOw0KPj4gQEAgLTE0Niw2ICsxNDcsMTEgQEAgc3RhdGljIHZv
aWQgdmdpY19zdG9yZV9pcm91dGVyKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCB2Z2ljX2lycV9y
YW5rICpyYW5rLA0KPj4gICAgICAgLyogT25seSBtaWdyYXRlIHRoZSBJUlEgaWYgdGhlIHRhcmdl
dCB2Q1BVIGhhcyBjaGFuZ2VkICovDQo+PiAgICAgICBpZiAoIG5ld192Y3B1ICE9IG9sZF92Y3B1
ICkNCj4+ICAgICAgIHsNCj4+ICsjaWZkZWYgQ09ORklHX0dJQ1YzX0VTUEkNCj4+ICsgICAgICAg
IC8qIENvbnZlcnQgdmlycSBpbmRleCB0byBlU1BJIHJhbmdlICovDQo+PiArICAgICAgICBpZiAo
IGVzcGkgKQ0KPj4gKyAgICAgICAgICAgIHZpcnEgPSBFU1BJX0lEWDJJTlRJRCh2aXJxKTsNCj4+
ICsjZW5kaWYNCj4gDQo+IElmIHlvdSBkZWZpbmUgRVNQSV9JRFgySU5USUQoKSB1bmNvZGl0aW9u
YWxseSwgeW91IGNhbiBnZXQgcmlkIG9mICNpZmRlZg0KPiBDT05GSUdfR0lDVjNfRVNQSSBoZXJl
DQo+DQpBY3R1YWxseSwgRVNQSV9JRFgySU5USUQgaXMgZGVmaW5lZCB1bmRlciBpZmRlZiBjb25k
aXRpb246DQoNCiA+ICNpZmRlZiBDT05GSUdfR0lDVjNfRVNQSQ0KID4gI2RlZmluZSBFU1BJX0JB
U0VfSU5USUQgNDA5Ng0KID4gI2RlZmluZSBFU1BJX01BWF9JTlRJRCAgNTExOQ0KDQogPiAjZGVm
aW5lIEVTUElfSU5USUQySURYKGludGlkKSAoKGludGlkKSAtIEVTUElfQkFTRV9JTlRJRCkNCiA+
ICNkZWZpbmUgRVNQSV9JRFgySU5USUQoaWR4KSAgICgoaWR4KSArIEVTUElfQkFTRV9JTlRJRCkN
CiA+ICNlbmRpZg0KDQpTbyBpdCBzaG91bGQgYmUgdXNlZCB1bmRlciBDT05GSUdfR0lDVjNfRVNQ
SSwgbGlrZSBpbiBvdGhlciBwbGFjZXMuDQoNCj4+ICAgICAgICAgICBpZiAoIHZnaWNfbWlncmF0
ZV9pcnEob2xkX3ZjcHUsIG5ld192Y3B1LCB2aXJxKSApDQo+PiAgICAgICAgICAgICAgIHdyaXRl
X2F0b21pYygmcmFuay0+dmNwdVtvZmZzZXRdLCBuZXdfdmNwdS0+dmNwdV9pZCk7DQo+PiAgICAg
ICB9DQo+PiBAQCAtNjg1LDYgKzY5MSw5IEBAIHN0YXRpYyBpbnQgX192Z2ljX3YzX2Rpc3RyX2Nv
bW1vbl9tbWlvX3JlYWQoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IHZjcHUgKnYsDQo+PiAgICAg
ICB7DQo+PiAgICAgICBjYXNlIFZSQU5HRTMyKEdJQ0RfSUdST1VQUiwgR0lDRF9JR1JPVVBSTik6
DQo+PiAgICAgICBjYXNlIFZSQU5HRTMyKEdJQ0RfSUdSUE1PRFIsIEdJQ0RfSUdSUE1PRFJOKToN
Cj4+ICsjaWZkZWYgQ09ORklHX0dJQ1YzX0VTUEkNCj4gDQo+IERvIHlvdSByZWFsbHkgbmVlZCBp
ZmRlZiBoZXJlPw0KPiANCg0KT2gsIHllcywgdGhpcyBpZmRlZiBpcyByZWR1bmRhbnQgYmVjYXVz
ZSwgd2l0aG91dCBDT05GSUdfR0lDVjNfRVNQSSANCmVuYWJsZWQsIHdlIGNhbm5vdCByZWFjaCB0
aGlzIGZ1bmN0aW9uIHdpdGggZVNQSS1zcGVjaWZpYyBvZmZzZXRzIGZyb20gDQp0aGUgY2FsbGVy
Lg0KU28sIHllcywgSSB3aWxsIHJlbW92ZSB0aGlzIGlmZGVmIGluIFYzLg0KPj4gKyAgICBjYXNl
IFZSQU5HRTMyKEdJQ0RfSUdST1VQUm5FLCBHSUNEX0lHUk9VUFJuRU4pOg0KPj4gKyNlbmRpZg0K
PiANCj4gDQo+PiAgICAgICAgICAgLyogV2UgZG8gbm90IGltcGxlbWVudCBzZWN1cml0eSBleHRl
bnNpb25zIGZvciBndWVzdHMsIHJlYWQgemVybyAqLw0KPj4gICAgICAgICAgIGlmICggZGFidC5z
aXplICE9IERBQlRfV09SRCApIGdvdG8gYmFkX3dpZHRoOw0KPj4gICAgICAgICAgIGdvdG8gcmVh
ZF9hc196ZXJvOw0KPj4gQEAgLTcxMCwxMSArNzE5LDE5IEBAIHN0YXRpYyBpbnQgX192Z2ljX3Yz
X2Rpc3RyX2NvbW1vbl9tbWlvX3JlYWQoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IHZjcHUgKnYs
DQo+PiAgICAgICAvKiBSZWFkIHRoZSBwZW5kaW5nIHN0YXR1cyBvZiBhbiBJUlEgdmlhIEdJQ0Qv
R0lDUiBpcyBub3Qgc3VwcG9ydGVkICovDQo+PiAgICAgICBjYXNlIFZSQU5HRTMyKEdJQ0RfSVNQ
RU5EUiwgR0lDRF9JU1BFTkRSTik6DQo+PiAgICAgICBjYXNlIFZSQU5HRTMyKEdJQ0RfSUNQRU5E
UiwgR0lDRF9JQ1BFTkRSTik6DQo+PiArI2lmZGVmIENPTkZJR19HSUNWM19FU1BJDQo+IA0KPiBT
YW1lIGFzIGhlcmUNCg0KSSB3aWxsIHJlbW92ZSBpdCBpbiBWMy4NCj4gDQo+PiArICAgIGNhc2Ug
VlJBTkdFMzIoR0lDRF9JU1BFTkRSbkUsIEdJQ0RfSVNQRU5EUm5FTik6DQo+PiArICAgIGNhc2Ug
VlJBTkdFMzIoR0lDRF9JQ1BFTkRSbkUsIEdJQ0RfSUNQRU5EUm5FTik6DQo+PiArI2VuZGlmDQo+
PiAgICAgICAgICAgZ290byByZWFkX2FzX3plcm87DQo+PiAgIA0KPj4gICAgICAgLyogUmVhZCB0
aGUgYWN0aXZlIHN0YXR1cyBvZiBhbiBJUlEgdmlhIEdJQ0QvR0lDUiBpcyBub3Qgc3VwcG9ydGVk
ICovDQo+PiAgICAgICBjYXNlIFZSQU5HRTMyKEdJQ0RfSVNBQ1RJVkVSLCBHSUNEX0lTQUNUSVZF
Uk4pOg0KPj4gICAgICAgY2FzZSBWUkFOR0UzMihHSUNEX0lDQUNUSVZFUiwgR0lDRF9JQ0FDVElW
RVJOKToNCj4+ICsjaWZkZWYgQ09ORklHX0dJQ1YzX0VTUEkNCj4gDQo+IC4uLiBhbmQgaGVyZSBh
bmQgaW4gYWxsIG90aGVyIHBsYWNlcw0KPiANCg0KVGhhbmsgeW91LCB0aGF0J3MgYSByZWFsbHkg
Z29vZCBwb2ludC4gSSB3aWxsIHJldmlzZSBhbGwgdGhlIHBsYWNlcyB3aXRoIA0KaWZkZWZzIGlu
IHRoaXMgcGF0Y2ggYW5kIGZpeCB0aGVtIGluIFYzLg0KDQpCZXN0IHJlZ2FyZHMsDQpMZW9uaWQN
Cg==


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 10:09:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 10:09:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089825.1447294 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upOi5-00018Q-Fu; Fri, 22 Aug 2025 10:09:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089825.1447294; Fri, 22 Aug 2025 10:09: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 1upOi5-00018J-D1; Fri, 22 Aug 2025 10:09:25 +0000
Received: by outflank-mailman (input) for mailman id 1089825;
 Fri, 22 Aug 2025 10:09:24 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1jNg=3C=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1upOi4-00018D-K2
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 10:09:24 +0000
Received: from DB3PR0202CU003.outbound.protection.outlook.com
 (mail-northeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c200::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 131af707-7f40-11f0-b898-0df219b8e170;
 Fri, 22 Aug 2025 12:09:22 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by DBBPR03MB10344.eurprd03.prod.outlook.com (2603:10a6:10:531::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Fri, 22 Aug
 2025 10:09:20 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Fri, 22 Aug 2025
 10:09: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>
X-Inumbo-ID: 131af707-7f40-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lMnKUbEgVqSDpy08fsb+iqpCMHKA0hv8pwWSVwhPSBd7bTgq+kNaBikR2+jfvzVY8H8YO+8Qgav8pGdyb10eraXU0K4nvplPHWd86iqSuyYX7xEmuUpc66yXcOQ0dII2OQ69nQDJCCuey3F1juxYxpNpOs7wfkd2LdlUH7mUdItNRa8zRhM6ypotWgqXMhUVzr0XfvsrNiFTnP6HrlSLHnw6Sm/3eDM3dlJU5ecbIOHzyICERuK4hIzIbcEgneTSQvxJlAnX1XUHD903qEHwRZE/NCh+gdtEml1kIMIhsVsCyQC85pGvRPgFHSnmHcZfBvFF56KV5Eus9Hl9+ERdyg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Dr429g1Sn1INzynHm9pWT2y0tCDebL6oWyiqr1pmEyY=;
 b=PldXlCedKJSEvDEQlTDbkJ810OvOPQc8e0e1Mvbhy8wbNufvWCooM265nm1Wx7UAoDd3FJON2u0lzPvQbk33vujeWsfyjH3rHbbKFDpeOOdSzfb5Fi6KD/Sl/MaLvcXMdPLOAk0oKOsJxk7sknGiSXyOWdmCGcCFjmcvVZk2brNoKhHgSRCCqXS+mZCzt+zuD9Naj3imfsD71Ai8kX1NHenZRJ4HWZlhA5WXR/Qa4TIKJW+phhySgSkiw8IOG4eCuhW4LKik0tFeFrkj/yHRrj82k5VsHp9umvU5w0RNlXBCGTvtN+daZW7/yf9cHjn1Cx88+AWwd+AyR+M+EBMo3g==
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=Dr429g1Sn1INzynHm9pWT2y0tCDebL6oWyiqr1pmEyY=;
 b=WICrbqqAZ7cKD9rUVvrVv3TPwhWqxO3ZSFM/CbOXQZXOy7N8vRFtqor5al9PYnBxIFN/Z44KQiXU+ik/vpUbFFrMKDzdWpgC4hPCRJatUJBAyI8QN2oYSxkfSFflQYY+IU360X8KjYq4rxtxvIPf8UYquyFyJZ7zvW2GycxLEP5LMOhtJgFif3cn2N16NUBGXjdyqN087d3Hu/zf3t89uUeYVb7qmz1IiT7IcWuwAttKFQK5bBHnfjhzHx1xibOGvG7PEsUM1qM4CNeo5Ge8t9uk9FR6pHunirmVI9mHJQFKkx6xgATszRxDUKBfcFxPmQvZnSK7rHywz7k+9TYDDg==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: Julien Grall <julien@xen.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v2 01/10] xen/arm: gicv3: refactor obtaining GIC addresses
 for common operations
Thread-Topic: [PATCH v2 01/10] xen/arm: gicv3: refactor obtaining GIC
 addresses for common operations
Thread-Index: AQHcB5d7cCAQRdJCgUKSzBGsZt4ytbRtXheAgAEbjYCAAAhPgIAACIOA
Date: Fri, 22 Aug 2025 10:09:20 +0000
Message-ID: <213ff54d-02c7-4423-b35f-f3a98dff80dc@epam.com>
References: <cover.1754514206.git.leonid_komarianskyi@epam.com>
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
 <915641a6-8cc6-45bf-a1ee-d69b286e7d30@xen.org>
 <b2b7906c-d810-4162-b700-7f1dc2153f4b@epam.com>
 <26a5f2dc-0eaa-49b0-b15f-482a47808051@xen.org>
In-Reply-To: <26a5f2dc-0eaa-49b0-b15f-482a47808051@xen.org>
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: GV2PR03MB8678:EE_|DBBPR03MB10344:EE_
x-ms-office365-filtering-correlation-id: 0c8f4e59-6887-4dbd-afef-08dde163f61d
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?QU12ZnJ4MENabjZUNUpNcU5PZTRicjlpeXhuWEVwaG80STNqbHNjUHFUS0k1?=
 =?utf-8?B?WjEybzdVNTZMbTloU09FYXpnbmw4YTZSRlhLY3pHb0I1VTZLWGZ2NjEvbEpu?=
 =?utf-8?B?QzF4VlFBV0kzZWp3Q3VmeHJpcDVWVWFwK2tCUzFmVTNYNDlRMnNSdmF3WTNW?=
 =?utf-8?B?VE10MHpGa0krYmRnaGppRkx4bURwUEY4Ti9uenZNQXFpNkE4VXY1VmpiWlMw?=
 =?utf-8?B?aS8xTjhTL0o1R0ZNUVNSTDF6bDNtZUU0WFpyaTh0dVYxK29HQ0FtUmZna0Jp?=
 =?utf-8?B?UHpHa1VVaW13SnByaWxzbTlrc21LTnA4ZnQrZW8zTGt0K2VvSlRWRnVTRm5v?=
 =?utf-8?B?V0pyZ0pSOUdRLzlTQnpNNG5sWWRIWEtkc2RaMWNCSkZzNFBTWDZwU2lSaUpH?=
 =?utf-8?B?MEpCZ0xFZi85QVUxVXZHa0Z4ejA4ZkVHcno0encrTTEyOS9sYW5ydFhBQWNL?=
 =?utf-8?B?cVhYeEZJSzlOcHVBc1V5TFV0cllJWldRTVBEeU1XS1RPL2FEeDhJa0JqZDZB?=
 =?utf-8?B?OVF6ckZMekN2d3hJRFRSNGVZVnRPNHAzV1lrcFA1eFFTYmFQR3B4RnVyaU1O?=
 =?utf-8?B?OUF1bi9lSXpNS05GMFdiQUVKdkEwOGVwRkRqamttZE5HUFR1MUhPcnpyYXl3?=
 =?utf-8?B?Q3hRcHd1WGlpZHU2QXVKbWh6ajAvbnZlY2lMT1pKNG5ueDlJY29SUWk2OTBM?=
 =?utf-8?B?MkkzS0pTUCs5MUVhK1V2dldEV1FpNUs5Qlg3Vm1pS1I3ZE5OQldVN2pSMUhD?=
 =?utf-8?B?VkVDUU02clk0TUUwK0lUa25QZHlveThEWE9SUWszLzF3RXptOGRZeWlXWHBH?=
 =?utf-8?B?L3RrSExrVnZwQ3N0NHZhOVNRZzFJd3IzWVZYc3BUOFhMU01iTjdzZStIYmo4?=
 =?utf-8?B?T2pGVmJLMk50OXN6MFpRcGFvUjltQ1RKZzE3VGMrNDZXYzF4WSt4MnRsSU0x?=
 =?utf-8?B?anQyWWp5cjc5WmtlR1l2YVkyckN5cFR2dExBTzBiMjRydGlLK3dGMjZZSFFh?=
 =?utf-8?B?S1g0NTJPNXBRekNDQVhWaDhPUThjbE1YaSt2MVYrWm51UlVnWEhkdnpVc3J1?=
 =?utf-8?B?VUE4TDBuRDdkcUdsWXNHN0l0TThxU1ZUendyRnhrZ0R1RVN6MjExZnQ4bnNQ?=
 =?utf-8?B?anpTZms3bGlmUC9mczhWbVFFa1c1YUt4M2lEelJ5aktQeEoxZnZFUXFuZUti?=
 =?utf-8?B?ZTdHTmJyclgzRmNVSkxTUEZ1NlYxSDJDdlJHL1lXeFNQNWs3TW5TbzRpbjNM?=
 =?utf-8?B?MStCUHo0SnYzejZQQTRTMnF0akE1ZUViemV3bERlYXhLTmdVZWdVbkx5U3RC?=
 =?utf-8?B?V3JBb09BOFFxTU9NVnAwemF0RVdqQmFuTVBiaEVQdW85bXBnc1A4NFQvSkFy?=
 =?utf-8?B?SVU5T2lhelcva1JodXp4THhabFpSbXQ5cU5FdVRibUdVcDN0L2hpaDY1M3pq?=
 =?utf-8?B?WVh4YjlCME16TTl1NWNJanBDRnhMNjNud09SWC9peXR3c3dzbk1aZUtraEND?=
 =?utf-8?B?ajlaOWQrQnNtYkJQQzlGbFF1R2N1UWdQQUpkeGdWeW1ITDFFbTBGSStQR0FL?=
 =?utf-8?B?clZBM082SEg5SzhqU1lKV09PMFVBVXZGaXZXUWdvYktQQUt4eW9RSWNyRWJm?=
 =?utf-8?B?L1prOE91TUF6UXNjLzhES3VLR0hURkIxd25VU0R5NDFGanI5ZTMrcSs2eHBj?=
 =?utf-8?B?aEg4OTJlWlQ2Z0Mzd0wzT01OUldqaWx0RWlmUnNjR0lNeU50eEp2V1ptN2RC?=
 =?utf-8?B?SFl2Y3cyNjVoa2tkTFE5dEtLdHFHdjVRTFN1Uk5rOUFBZlR4bm42bnlUUnI3?=
 =?utf-8?B?QXI0MUc5UFVJamplSGRHQmVYTWV5Nnl3TmxvajZZek1iWVBLZGszb2VSUVBH?=
 =?utf-8?B?bDZ6WXc1S2I3MDY5L0ZhUGRkelFqb3dkWHlWVXM1VnlKb3NMNURKVzA3dFgw?=
 =?utf-8?B?QW5ab2JldFZ5NXd1eC9pbDNyWG5lYk1XNnFmRkhGNUtrZTlOVmVhNkNwN2wy?=
 =?utf-8?B?Ym1LeDlUcHRnPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?T3VZaDVQQnpmMUg0czVtaVdPbXNhWEtxb1VGYk41bDJyUE9XQkJPcjNxNm43?=
 =?utf-8?B?Y0YwNTBXalRuS2VUTXJneW03aWdJMVV0TkxiT21kNGF2MUorakx5S3hNdGVM?=
 =?utf-8?B?bE0yNkN3dXRpSEhNbDRRYVp5Z1Ryd005RVY0RUh1VnBmaU11V3cwQ1FlZmFu?=
 =?utf-8?B?Q2ZkZEFwbjNqOW01dHRrSEl2OVlYUEpNQjV0NE9VYkJQZE40U25kMkNhbm5n?=
 =?utf-8?B?MHkwOC9oa2JkYjZXNmRNU1hSOFFNQTgzS2tzMWxZcjZRckVmRU9QanMwUjJL?=
 =?utf-8?B?NHJiZ3FjOTNnbDBET25NZ0txVFZ6Tlo0STM1VWZPM2pEekpmVVRhY0JhVFl5?=
 =?utf-8?B?OUhrRTNvcENUVk5XR2VzMnpsN0J6ckZBdnRYT3dMcWtMeDFyQmxCNGg5Vmxk?=
 =?utf-8?B?YUxPZlBTd2VRU3NRVW5YbjYxTTJVUjFWQ3FQNFpGRmtjR0p3TkYyMU0zdTZr?=
 =?utf-8?B?R01CY0dxSkdXWHgvS2E4NkdXMFZNN2pxdDNqZWsyWTRleHdYd1FnRHNNU053?=
 =?utf-8?B?RnNmSmRVNlFhdGtSQ2I0NDkzUFgzbFlVYVhhTHpBaHdpZ2lFbmVHTjNoMVJh?=
 =?utf-8?B?dGJSd0F0ODBkNjMyV3ZVa0ZUS1hIQ0MzUnJNQ3RMQ0YyVTJCOTBwUHRUUEpv?=
 =?utf-8?B?VDhidzJmRW96blJoYzFqZThhOTZ1cVBXK0xLVEJMOFVsMlZCOU5uU1Rjdnd5?=
 =?utf-8?B?alZoRHBrcS9sNmNQbU95S1h3OVNCQy9CWTFLWm4rcmw5c3N1OTdvQU1PMmNB?=
 =?utf-8?B?NlJBRU4xSmZxL0p4VWVQL1lZSnBydVdSM3EzcmZUUWhUSkZsREptZ3lRVDBE?=
 =?utf-8?B?WUVGeVNNQjFhZzRRa0VqUU02M04wV2QvajlrczhRckc2UndxbUJKRmpZYmtF?=
 =?utf-8?B?VEZkS0pRSm5OZlVjako3elZxa2trb2lWS0lmSjUwY0x6Uk41VUM3em1nWk83?=
 =?utf-8?B?UmNlNlI1dTlkL2lVS2w4MUpRVVliSnorQzBNUEpNVk9xZ2taWVlNMFBTd1l3?=
 =?utf-8?B?d25ZVnJCL29LeEZDclRHZWRlSlBPL0tEa3U5M28wZlIyMWsxRDJRZU9tRnhH?=
 =?utf-8?B?UzdYS291VFNxc2x1NHJ6dnNtU2VyTEFoaGhleVdjNzY1aXJ0UXJTakRBVWR6?=
 =?utf-8?B?OG1UYWtKckk0T1RxRW9jWWVFS3AveExGYjBTU1N5ajJ4M1hFbGJOK0x4aVpC?=
 =?utf-8?B?aEVuS21SOGZEZEorbnE3bEYvM0tWazFsMGhxeGJicHNxUk10UEZuUGtmUmE5?=
 =?utf-8?B?d21vVjBoSUM2OGs1YmJkWCtXaFJFTCszbitJd2pEdlN0SmpwMUtqU3BORGEr?=
 =?utf-8?B?RXV0OXlHWVAyL3hEVTBVdFIwWXFKZFExa1dPRTFKOEJxQnkvODFPVTJqOHRU?=
 =?utf-8?B?Wkl5UGJpK1U4NFpsZEJqeVJaVnNOWHVvek80NkZpaVM0dnR6cW5XL0ZtWDVm?=
 =?utf-8?B?TWlhQWVsaUtMa1BZQ0U4QXF5cGNIdkl1T2k5TDVRMkFzaEdyZTFvUEFXcTdT?=
 =?utf-8?B?TTl3ZkN4YWZ6cHJBZEJEV2pBd2tNQjQ0S0JFNFZLODdkVjlReE1WbE5XQ2NR?=
 =?utf-8?B?MS95VzhCNFRFR0pTemNzeDZtamF6NUxLdHNsYmJPSkpnN0RaSjZpRXhnVTcz?=
 =?utf-8?B?bkdLa2YvV2ExYkJDYTVKaWpTYjd2V3BvUTNIaWttOHREQjB2RUI5QjRWQ09j?=
 =?utf-8?B?dDlYOHpMNFN4QU9SaUovZmNFcWdTOHVCNjZVNEZ3ZVZ4cmVTQitFbTd4d3N6?=
 =?utf-8?B?dkMwa25RRThxcGZHaWtKWHZPVHNXRnloNzdlQ1MyM0plcjFCVUl0S3BoTGlN?=
 =?utf-8?B?RFA4YmthQkdwMUNYZjVaMUV0OUgrL1dsTnlYb3o5Tk1VZVc5UHNuNHEwemth?=
 =?utf-8?B?UmdwTWNLZGM2MkVZM0VkY1JmaUl3Z3NrU1NBeHlNT2NpSnZNWUhlYno5cnlM?=
 =?utf-8?B?MFFwaXo0R0JrK0JFRHY3OE41Q3JwTG9BUlBmYzJzRlFMUXlRcHdlYVNRUWs4?=
 =?utf-8?B?T1o4VEVuK2JJTUQzSXhrTm5kR3U3MzIxcHFYUDhhWGs2Z1ZPQ2lKZytUN25i?=
 =?utf-8?B?czNtdmtRMEFDZTB3cVJIaFBJVG5rQUU5Y3RQZkFiVDhuUXBXSndocDR3RmQv?=
 =?utf-8?B?dFRvVndRVUJVbGIwOXpmbGUwbWZkVkV4MXUrWnpFYXErUnZUZit0UzBWdzVS?=
 =?utf-8?Q?XAdfvQ5ZyUy6kyxGOmnFbLw=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <09C768CCB17EAA459802AC39A40ADA6D@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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0c8f4e59-6887-4dbd-afef-08dde163f61d
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Aug 2025 10:09:20.2997
 (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: 4DQff0jw2ExBJ4YKme92Yf4qMeOwomOyBu+O2jKoWvsEw/7Nnot0+EYtBA/OY/BYAdJKcxpWp5cKsKfuIvBwNrCJrvgW5j3mX3MxmAAcNiA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR03MB10344

SGkgSnVsaWVuLA0KDQpPbiAyMi4wOC4yNSAxMjozOCwgSnVsaWVuIEdyYWxsIHdyb3RlOg0KPiBI
aSBMZW9uaWQsDQo+IA0KPiBPbiAyMi8wOC8yMDI1IDEwOjA5LCBMZW9uaWQgS29tYXJpYW5za3lp
IHdyb3RlOg0KPiAgPiBUaGFuayB5b3UgZm9yIHlvdXIgY2xvc2UgcmV2aWV3Lj4+PiAtLS0NCj4+
Pj4gwqDCoCB4ZW4vYXJjaC9hcm0vZ2ljLXYzLmPCoMKgwqDCoMKgwqDCoMKgwqAgfCA5OSArKysr
KysrKysrKysrKysrKysrKysgDQo+Pj4+ICstLS0tLS0tLS0tLS0NCj4+Pj4gwqDCoCB4ZW4vYXJj
aC9hcm0vaW5jbHVkZS9hc20vaXJxLmggfMKgIDEgKw0KPj4+PiDCoMKgIDIgZmlsZXMgY2hhbmdl
ZCwgNjcgaW5zZXJ0aW9ucygrKSwgMzMgZGVsZXRpb25zKC0pDQo+Pj4+DQo+Pj4+IGRpZmYgLS1n
aXQgYS94ZW4vYXJjaC9hcm0vZ2ljLXYzLmMgYi94ZW4vYXJjaC9hcm0vZ2ljLXYzLmMNCj4+Pj4g
aW5kZXggY2QzZTFhY2Y3OS4uOGZkNzhhYmE0NCAxMDA2NDQNCj4+Pj4gLS0tIGEveGVuL2FyY2gv
YXJtL2dpYy12My5jDQo+Pj4+ICsrKyBiL3hlbi9hcmNoL2FybS9naWMtdjMuYw0KPj4+PiBAQCAt
NDQ1LDE3ICs0NDUsNjIgQEAgc3RhdGljIHZvaWQgZ2ljdjNfZHVtcF9zdGF0ZShjb25zdCBzdHJ1
Y3QgdmNwdSANCj4+Pj4gKnYpDQo+Pj4+IMKgwqDCoMKgwqDCoCB9DQo+Pj4+IMKgwqAgfQ0KPj4+
PiArc3RhdGljIHZvaWQgX19pb21lbSAqZ2V0X2FkZHJfYnlfb2Zmc2V0KHN0cnVjdCBpcnFfZGVz
YyAqaXJxZCwgdTMyDQo+Pj4+IG9mZnNldCkNCj4+Pj4gK3sNCj4+Pj4gK8KgwqDCoCBzd2l0Y2gg
KCBpcnFkLT5pcnEgKQ0KPj4+PiArwqDCoMKgIHsNCj4+Pj4gK8KgwqDCoCBjYXNlIDAgLi4uIChO
Ul9HSUNfTE9DQUxfSVJRUyAtIDEpOg0KPj4+PiArwqDCoMKgwqDCoMKgwqAgc3dpdGNoICggb2Zm
c2V0ICkNCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHsNCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIGNhc2Ug
R0lDRF9JU0VOQUJMRVI6DQo+Pj4+ICvCoMKgwqDCoMKgwqDCoCBjYXNlIEdJQ0RfSUNFTkFCTEVS
Og0KPj4+PiArwqDCoMKgwqDCoMKgwqAgY2FzZSBHSUNEX0lTUEVORFI6DQo+Pj4+ICvCoMKgwqDC
oMKgwqDCoCBjYXNlIEdJQ0RfSUNQRU5EUjoNCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIGNhc2UgR0lD
RF9JU0FDVElWRVI6DQo+Pj4+ICvCoMKgwqDCoMKgwqDCoCBjYXNlIEdJQ0RfSUNBQ1RJVkVSOg0K
Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gKEdJQ0RfUkRJU1RfU0dJX0JBU0Ug
KyBvZmZzZXQpOw0KPj4+PiArwqDCoMKgwqDCoMKgwqAgY2FzZSBHSUNEX0lDRkdSOg0KPj4+PiAr
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gKEdJQ0RfUkRJU1RfU0dJX0JBU0UgKyBHSUNS
X0lDRkdSMSk7DQo+Pj4+ICvCoMKgwqDCoMKgwqDCoCBjYXNlIEdJQ0RfSVBSSU9SSVRZUjoNCj4+
Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIChHSUNEX1JESVNUX1NHSV9CQVNFICsg
R0lDUl9JUFJJT1JJVFlSMCArIGlycWQtIA0KPj4+PiA+aXJxKTsNCj4+Pj4gK8KgwqDCoMKgwqDC
oMKgIGRlZmF1bHQ6DQo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJyZWFrOw0KPj4+PiAr
wqDCoMKgwqDCoMKgwqAgfQ0KPj4+PiArwqDCoMKgIGNhc2UgTlJfR0lDX0xPQ0FMX0lSUVMgLi4u
IFNQSV9NQVhfSU5USUQ6DQo+Pj4+ICvCoMKgwqDCoMKgwqDCoCBzd2l0Y2ggKCBvZmZzZXQgKQ0K
Pj4+PiArwqDCoMKgwqDCoMKgwqAgew0KPj4+PiArwqDCoMKgwqDCoMKgwqAgY2FzZSBHSUNEX0lT
RU5BQkxFUjoNCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIGNhc2UgR0lDRF9JQ0VOQUJMRVI6DQo+Pj4+
ICvCoMKgwqDCoMKgwqDCoCBjYXNlIEdJQ0RfSVNQRU5EUjoNCj4+Pj4gK8KgwqDCoMKgwqDCoMKg
IGNhc2UgR0lDRF9JQ1BFTkRSOg0KPj4+PiArwqDCoMKgwqDCoMKgwqAgY2FzZSBHSUNEX0lTQUNU
SVZFUjoNCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIGNhc2UgR0lDRF9JQ0FDVElWRVI6DQo+Pj4+ICvC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiAoR0lDRCArIG9mZnNldCArIChpcnFkLT5pcnEg
LyAzMikgKiA0KTsNCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIGNhc2UgR0lDRF9JQ0ZHUjoNCj4+Pj4g
K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIChHSUNEICsgR0lDRF9JQ0ZHUiArIChpcnFk
LT5pcnEgLyAxNikgKiA0KTsNCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIGNhc2UgR0lDRF9JUk9VVEVS
Og0KPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gKEdJQ0QgKyBHSUNEX0lST1VU
RVIgKyBpcnFkLT5pcnEgKiA4KTsNCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIGNhc2UgR0lDRF9JUFJJ
T1JJVFlSOg0KPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gKEdJQ0QgKyBHSUNE
X0lQUklPUklUWVIgKyBpcnFkLT5pcnEpOw0KPj4+PiArwqDCoMKgwqDCoMKgwqAgZGVmYXVsdDoN
Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYnJlYWs7DQo+Pj4+ICvCoMKgwqDCoMKgwqDC
oCB9DQo+Pj4+ICvCoMKgwqAgZGVmYXVsdDoNCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIGJyZWFrOw0K
Pj4+PiArwqDCoMKgIH0NCj4+Pj4gKw0KPj4+PiArwqDCoMKgIC8qIFNvbWV0aGluZyB3ZW50IHdy
b25nLCB3ZSBzaG91bGRuJ3QgYmUgYWJsZSB0byByZWFjaCBoZXJlICovDQo+Pj4gwqAgPiArwqDC
oMKgIHBhbmljKCJJbnZhbGlkIG9mZnNldCAweCV4IGZvciBJUlEjJWQiLCBvZmZzZXQsIGlycWQt
PmlycSk7DQo+Pj4NCj4+PiAuLi4gSSBzdGlsbCBxdWl0ZSBjb25jZXJuZWQgYWJvdXQgdXNpbmcg
cGFuaWMgaGVyZS4gV2UgbmVlZCB0byB0cnkgdG8NCj4+PiBoYW5kbGUgdGhlIGVycm9yIG1vcmUg
Z3JhY2VmdWxseSBpbiBwcm9kdWN0aW9uLg0KPj4+DQo+Pj4gQ2hlZXJzLA0KPj4+DQo+Pg0KPj4g
SSB3YXMgdGhpbmtpbmcgYWJvdXQgdGhpcyBhZ2FpbiwgYW5kIG1heWJlIGl0IHdvdWxkIGJlIGJl
dHRlciB0byBjaGFuZ2UNCj4+IHRoZSBwYW5pYyBpbnRvIHNpbXBseSBwcmludGluZyBhbiBlcnJv
ciB1c2luZyBwcmludGsoWEVOTE9HX0dfRVJSIC4uLikNCj4+IGFuZCBhZGRpbmcgcHJvcGVyIGNo
ZWNrcyB0byBlbnN1cmUgdGhlIHJldHVybiB2YWx1ZSBpcyBub3QgTlVMTCBpbiB0aGUNCj4+IGNh
bGxlcnMuDQo+IA0KPiBHaXZlbiB0aGUgZXJyb3IgaXMgbm90IG1lYW50IHRvIGhhcHBlbiwgYWZ0
ZXIgdGhlIHByaW50aygpIEkgd291bGQgYWRkIA0KPiBhbiBBU1NFUlRfVU5SRUFDSEFCTEUoKSBz
byB3ZSBjYW4gY2F0Y2ggaXNzdWUgaW4gREVCVUcgYnVpbGQgbW9yZSBlYXNpbHkuDQo+IA0KDQpP
a2F5LCBzbyBJIHdpbGwgY2hhbmdlIHRoZSBwYW5pYyB0byBwcmludGsgKyBBU1NFUlRfVU5SRUFD
SEFCTEUoKSBpbiBWMy4gDQpUaGFuayB5b3UuDQoNCj4+IEFsc28sIGluIHRoZSBjYXNlIG9mIGdp
Y3YzX3BlZWtfaXJxLCB3aGljaCBtdXN0IHJldHVybiBhIGJvb2xlYW4gdmFsdWUNCj4+IChkdWUg
dG8gdGhlIGdlbmVyaWMgQVBJIGZvciBnaWN2M19yZWFkX3BlbmRpbmdfc3RhdGUpLCB3ZSBjb3Vs
ZCByZXR1cm4NCj4+IGZhbHNlIHdpdGggYW4gYWRkaXRpb25hbCB3YXJuaW5nIG1lc3NhZ2UgdGhh
dCB3ZSBhcmUgdW5hYmxlIHRvIHJlYWQgdGhlDQo+PiBhY3R1YWwgdmFsdWUgZHVlIHRvIGluY29y
cmVjdCBwYXJhbWV0ZXJzOyB0aGVyZWZvcmUsIHdlIHJldHVybiBmYWxzZS4NCj4+IFdoYXQgZG8g
eW91IHRoaW5rIGFib3V0IHRoaXMgYXBwcm9hY2g/DQo+IA0KPiBJdCBtYWtlcyBzZW5zZSB0byBy
ZWFkIGZhbHNlIGFzIHRoZSBpbnRlcnJ1cHQgdGVjaG5pY2FsbHkgZG9lc24ndCBleGlzdC4gDQo+
IEJ1dCBJIGRvbid0IHRoaW5rIHdlIHNob3VsZCBhZGQgYW4gZXh0cmEgd2FybmluZy4gVGhlIG9u
ZSBpbiANCj4gZ2V0X2FkZHJfYnlfb2Zmc2V0KCkgc2hvdWxkIGJlIHN1ZmZpY2llbnQuDQo+IA0K
PiBDaGVlcnMsDQo+IA0KDQpVbmRlcnN0b29kLCB0aGFuayB5b3UgYWdhaW4uDQoNCkJlc3QgcmVn
YXJkcywNCkxlb25pZA0K


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 10:47:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 10:47:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089841.1447305 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upPIc-0006QR-CO; Fri, 22 Aug 2025 10:47:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089841.1447305; Fri, 22 Aug 2025 10:47: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 1upPIc-0006QK-9T; Fri, 22 Aug 2025 10:47:10 +0000
Received: by outflank-mailman (input) for mailman id 1089841;
 Fri, 22 Aug 2025 10:47:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1jNg=3C=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1upPIa-0006QE-IC
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 10:47:08 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c201::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 585e8bde-7f45-11f0-b898-0df219b8e170;
 Fri, 22 Aug 2025 12:47:06 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by DB9PR03MB7273.eurprd03.prod.outlook.com (2603:10a6:10:22f::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.17; Fri, 22 Aug
 2025 10:47:03 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Fri, 22 Aug 2025
 10:47:03 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 585e8bde-7f45-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BfETyqFkRWcedJYJAJE4hFY/fBlKFUqob45ROc6KOOlgHXxWqU/gF4Mgv4oCsvg27vvRXjZw9UJq73rzJAMOpcF19zloP1Bn+7c+V54anlJ5v47iDjsL5MEPb9ulAtCuTsubnSH4yv/QKWlaYWTmTbbBW0xNRMJLSDDRthVHlXk7nLa1ZWK8x9j74uMBymhe1sIf6e9PwRwjI6wxkngnDR5BpD7af3PZwojW14YWcb0DT9NBTwpgJpj1xBN70+6mbwlb7rygMKzPQSutiDHbXJlzdAyvc3cowTKs+uI9RGY9PWQMlNNGjzksgMowNOSwUVH+AgPp1tNZj53mrN5csA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=qxcwbJwdkT/LjK97GkvGA8Z3DqX9BZ+/SfiaoWwDaHg=;
 b=avLj6K7AgLwnlWXvwVl9sgGZdkBevQeBmp75OM5mWszjeIpbQIuQ2BZNwDotOIupADyAsJf8WqihbtY1aw8MHsxVBezeqorYhwGvz5LaD0X6xqPvO9+bJmzdi884Vgapa6i4M0lPbbZGSHNM2GK2vbPuQLd7lyjaBx/gls9LbdH1/d3TFddPadLrnmFHAHehxWdjKSpHgzN2bOVxYRYLVS6IMxcVRekXNI172hGX3icBL4+ph2adyfU+TsC4iZ1FE5LnUvLH/2yuOkO7UmRoJMBRoHvdiGkM+ZbQ1UYPFbR/bArT050qYi354sUfMoIlkwgsl/C+x3NiZ9aYSLaypQ==
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=qxcwbJwdkT/LjK97GkvGA8Z3DqX9BZ+/SfiaoWwDaHg=;
 b=TK8VhNdj76sS4htvjYQSLurX59nJ3Qp2J1dmYIfP4OP/l7vZXz5RuwT1hZ1URA3qPAmM1VWdYuf1Np6vHqAhMUnc8RfDEeX0kdgJJPm5v0g4x4RbrJ0wWEzd9/EcO7fO2MyPCs6kMWy55dnuSW4aDfmuRB90X+H5pw609qk2HAJ58dc5J/AA8g9P9jWzNZtmL9olSQ1DoUDD/afbS88m9/oVeAKU23N24KVbAuqAFv5Cj7nHvOpd7FilaSDCQmhrc7kg2VOKJRehezrlRnpg1BN8S0C5djM8XWwuYBlBVXdpX2Gb3jQZIiErZyluAelbD28+MXuTsiIyQEY7DH0TrA==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: Oleksandr Tyshchenko <olekstysh@gmail.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel
	<michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v2 10/10] xen/arm: vgic-v3: add emulation of GICv3.1 eSPI
 registers
Thread-Topic: [PATCH v2 10/10] xen/arm: vgic-v3: add emulation of GICv3.1 eSPI
 registers
Thread-Index: AQHcB5d9o2YugLH3UUKTUBQVCD+iyrRtXvkAgAE2CIA=
Date: Fri, 22 Aug 2025 10:47:03 +0000
Message-ID: <349076e9-3424-46ac-9047-3d8ec83d1b7f@epam.com>
References:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
 <3ba2381b4c782a5187161f9418e5a35e7916c752.1754568795.git.leonid_komarianskyi@epam.com>
 <9b69298d-dda1-4996-a5f9-8a1b5db826b7@gmail.com>
In-Reply-To: <9b69298d-dda1-4996-a5f9-8a1b5db826b7@gmail.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: GV2PR03MB8678:EE_|DB9PR03MB7273:EE_
x-ms-office365-filtering-correlation-id: c13d0428-b927-428e-7f87-08dde1693b32
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?d0dtMi9waTJFMWdDT2lsOU5EUDNtUVpjR2ZwRUZPNVJ2MHV1N0k0MC9IdXcr?=
 =?utf-8?B?dXZLL21jWWNhMlBWa3lYdGhTUHJYbnRjcjNac0dBTWJqNU5MVFJTa2VHYVAr?=
 =?utf-8?B?N0N4aVNzZ29hK0xuM3pNNVhWTHkzeS9vZEJWaFJQL0xPd0tIeG45aDByejNU?=
 =?utf-8?B?OGIrWkc5OVdaU1J4c0Vtd0lxR0pRWXF1T3k4Wmk5dTZ5TmJvWWpmbHo4cDB3?=
 =?utf-8?B?ZHJUR2RIa0owSm52T1BxUjZ0a0lKZUNEcllWUUR2dFJrMnk5NEhEdGR1TEhy?=
 =?utf-8?B?bnBiQWx5bXN1SU8vcXlEZ3p6ZThPZzdnTUlFVUFEMzBUZitudmx0Q254L2c5?=
 =?utf-8?B?dGVxUFpzVmFrV2RobmdZbHFUSkZwQjJqeWI3aUF0eG1UOHZ3a2tIQU9qUXFX?=
 =?utf-8?B?NytZWlAyUXEyTDgweVFjUTF3citsV1pNcHlnRVY1WFJMR2Y4ZWlINDZ4L1Rt?=
 =?utf-8?B?OTBtaEtOVUxydktpOVRqQ21xVStMcHlmRlpCb0t6UE8rYXgrMnRIS3NMR3pT?=
 =?utf-8?B?R2NkUEFBRUFjb2NDeENaRWlxNUdROHN0QTZHUE9qaWoybE5pZ3MvUHN3ejBk?=
 =?utf-8?B?WHdZZmoyQkNXUHJEV1lqS0dOVEJIWDVwdDJsUWVqUnJTTjRzMWhwWE9kVlNV?=
 =?utf-8?B?WXNkZzZPMm5lTzJVRlA3UzFtM0gxLzY1aGJHWlRFNitkcXhwYnpHR2R1RTl3?=
 =?utf-8?B?YVlSY1ArVnlkZUZXd1grNUZLS0VsQWtSQVpaQmRkTUV4MjBKMnBZTGlGRzRy?=
 =?utf-8?B?QTlvV0lXNWVFV0NXa1dyMVVTcUZlVDBGeThzbVdXZlpoZG42OEJMZmpoWGxj?=
 =?utf-8?B?SkRGVFphYkFMaUM4ZUNacnFIVkl3cUgxaHZPejYwZzZacS9ydGl4Z1FVYmJy?=
 =?utf-8?B?WWd6d2JtczlpWEZCcWFJeFN4M3ZKcUZIcWR2K2NhSnlBckNiNkVMUkMvVVl5?=
 =?utf-8?B?QythNjFWUmlwdERWZGxCK1JjdERhekZtVWE0L091b0JCQlB4bFU2T0JxaHNh?=
 =?utf-8?B?UUZHQkRUVTNzYnBaSEM5Q1FWa0FnS0srLzZoU2h4MG1xSUdtUkljZFZYOUk1?=
 =?utf-8?B?TmsrcXY5dzNVOGhpVUM3bzdzUWFnZDkxSzJQM2ZJWktWSkxzWG1BeWxxaDFj?=
 =?utf-8?B?VStuZWlwSFFXQ04zOC9kQ21RZEFOclg3SFZLYUhXSGJRcThEaFFDSVZKOGF0?=
 =?utf-8?B?KzcxM2NGOHpzTHdmNlk0dXU5RTFIN2htVUlTMDZSVjVJbGFCRXlmck0rVVRE?=
 =?utf-8?B?WWlVNmFoazhZT2tLb2MyNkdxanBKU2FjRTljM1ZNL0h1OHF4MVFYQkNjZUd3?=
 =?utf-8?B?RjJyMzJnUzFJQml3ZStmMnpmaHhUbUZCZU5Oa2ZnZWtQZkNjeXdOK0ZwY2xx?=
 =?utf-8?B?WjdNNnVSTTJjaXZOQWJJT3JIdVJlclZ3ZHdGNnZ2aVJEaklHUkM4VG1ET2Jk?=
 =?utf-8?B?SnNuUUdPQVlMb2RDNFBWZm4zOWtkdWhVZVpIWEtQaG1ZM2NMU215VU5YWjl5?=
 =?utf-8?B?R0R1YjdQWnl0RlpLOWUzY1ZINm1xc1ljeW5nbTJkQkNkQnBEK1JJRW1uMHU2?=
 =?utf-8?B?RkpjSDRCNkQ4N2xLd2hCWTNkN2dRQ3FILzBHbStMWTVQeDBsSVFPdzM2SXZV?=
 =?utf-8?B?ejl0NDB6QVlSYVRUVGtNQjc4VE1UZlVKL3RBR0RMWlBROW4rbDFpcjAvNTlt?=
 =?utf-8?B?b2xYdVFxQ2NBakJRVnpiRFplWG5qdUpLMUtFZy9YMHBsVWl5UVZvNmFxSTlY?=
 =?utf-8?B?QlJmWmU5UWM3akNueVRVdDdYMjRGcm56WEdYRnhaWWlucjlVeUYrdGRjYzhu?=
 =?utf-8?B?bHcydXV2MFRoNjVaenBVM0d0dXNnME9QSnZwNDQrSk0yMVZ5UHgxOXVhSXdI?=
 =?utf-8?B?N0JteTdGcWMwWHFIYldQanMyWnNJeUJPTkxGQkFXcE45SzQ2T3ZWYmFXSEhG?=
 =?utf-8?B?aURyWWNnaExkMkhLTjdOV3ZyU1ZSV1JXN1NSY3krWEdLcm8vaGZ6VlhaSGJw?=
 =?utf-8?B?R0I0Vk1pUitnPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?OUdsYmkxVUxIZGl4bXJkS2JCU0owN3NqWjBLMlZvb3ltcHdXT2lvV0kxTTI3?=
 =?utf-8?B?QVNDTksrYnFEaHZDTGpyazJxM0hQWFYzNmJPTFR6M2YyNjJqV2lJaHA5TmVl?=
 =?utf-8?B?Qm1Ca3FEYUxLZXdDN1dvR0VMNzRXSEVUekJhaVdSQjBwTDlTLzRiVE53Mm9i?=
 =?utf-8?B?WGdwWFdoRkMwdndJOS83V1pxNitLRDFRVGc5aEswem0rQzNJdjVTY2xJUlRl?=
 =?utf-8?B?OEZkcVdwb0ZXMlBTZlRxMERaY0l1TWd1VnlEdjhWRDRpdE1QYlR2WnE1dGFv?=
 =?utf-8?B?N3IzV3hUekdFa0Qxb3dHcHRYZE9LV0hBb1REdXdhZmU1M2M1VW9XcDN4dld0?=
 =?utf-8?B?bGZOeGxKODE4MlF4WEtZVy9mR0xwOU5oYlVaSndTU0FDeHBBeEF2TGYwOThi?=
 =?utf-8?B?WVQ2Mk9DUzdiK1hzZDl2SWpuV0lNK0tDaUJ6bnVMNFZMc1hqZW9rTlo5Rk0y?=
 =?utf-8?B?U2NPdjRuTXNuNEYweG5iNHREdnJLQVdHWDEzcjdtTm5nczIycC9BSWRSbkZj?=
 =?utf-8?B?TnEzb3lLcnNncE5sdjAwcWQwMWl6ektVZE5HTjNmamMza1cwb28vOEFkTUI4?=
 =?utf-8?B?RlQwK2N0ZHc1TDJGSkFyTWtjUURMaEltajE2M1lkanJ1eHZlS1ZGNVVlNm9W?=
 =?utf-8?B?dVJzUmpMSTd0QWFrSUV0RnhBMlN4UG1Ib1M0a1FDMWp5bEN1TlB6WFVtQkl1?=
 =?utf-8?B?WkdmdVZpMWJndXdGbktYdkd6VVg0WXFOVWZNWmhmRnZXdmVUVXVLSzZTUVVG?=
 =?utf-8?B?ckFkelpBSWZxSVp3YTROSE5BWnVJSUt3Y1ljYVMzN3VTa1ZCUlVoUTdwRWZ1?=
 =?utf-8?B?QUVXSDVBM2tNUm1zVVY0YlJxY21VM0xmc1ZGWW1WVDNyU2ZIQjB6aTZVaTkw?=
 =?utf-8?B?UTRvWW1rVDZYaUZncmN1cWpHbDlYNUIxdCtvLy85RXU3SjdkbnFjVWF0U3Vv?=
 =?utf-8?B?akg1R21hQU55OG9KS3lGZzRBaTZsL1llOXFrdE5VbTdpQ0tObytvK09zM3pK?=
 =?utf-8?B?Z0tHcGZLVWNjcUhnVVRCdmhsd0dwRlJMVis5YlhkQ3VsbHJoU2c3S2d3cEd1?=
 =?utf-8?B?YTR2ckJKRTRXZlBvN25FSW4ra1ZoL2hXTFNlMndBSHpkOUgzSU9FNFpxVkxM?=
 =?utf-8?B?RzFMbDZLVENIdHAwa2w0QUVPTHNocXg0eXZQM1V2YytqYlV6dG9FNFg1YnZp?=
 =?utf-8?B?ZTUyaXVWc1RxbFYrOVZjYThJNVBiMWhOVWhoRFN0Ulc3YnFQK2RsK1JBU200?=
 =?utf-8?B?dkFkTDlMQlFCM2x3Q3JZRC8yN0tNRTN3S3dWbkx5c2pIcXVKcHZoVXJUSmZr?=
 =?utf-8?B?dTFYWlJUMzBkMWIvRWQwQWpHREp6MEZ1YmdYU1pNVXFHRW5YTElkTDl0SDNW?=
 =?utf-8?B?RUpWK2M3MUNWeWNzS3RTa2lQNldvNVNmSHFsNmMrWGxNSEMra3dFSTh5dzE5?=
 =?utf-8?B?Nnd3NkFJdkxDUHF2NTBXWnJ5eVBFUDNrRkYyWEZEeUgzanZhNUY1TUJCWSt5?=
 =?utf-8?B?VHlCajFOOVYwcGhmZGhFQmZOK0FBTzdoWjhRL1NRYTFpUElHU3VmY3lMN1Jn?=
 =?utf-8?B?UkdqcVRDQmNRMFVnN1RYendaZGRDYUNvakFsNzhsZW1mKzVMM1JzZTNZMVZ4?=
 =?utf-8?B?eU40a2RCdVF1NEluRjhYam8ycytKMGoxQjAzemEzL016VkdwSE9FNFBzRTZr?=
 =?utf-8?B?ZVNyU2R5THNISFZXUFA5eFVSVngyN2lnSUo1U3hCSDdCVkZOaWlHTWc5dlBC?=
 =?utf-8?B?SjEzbEprcmVvQ280OHphaDN0b01IUjd4bjhVeW4vR2JiYjNxaUFYc2huQkxC?=
 =?utf-8?B?M0lkN2NrOG83d0tHTDBaL3kvcXJka2NHdXBQelBrWTU2SUk4WmREQ0R0NTBq?=
 =?utf-8?B?c0dManlIV0hyRzVOMEE0b1ozMmdCTUlONzNmeDdsQldjOXliK1lUWmxHYlpK?=
 =?utf-8?B?U3NPa0dGeGt5MGw0MUpEN1VJV3hRa1ZPWVJLcmF2NXkzcE5TSzhHUS9XM3ZC?=
 =?utf-8?B?MWQxVG94Q3NXV2JHa3JldjNQa2g1L3lUOFM3VWRTZUE0MDBPVG5FMVhFZjRw?=
 =?utf-8?B?cXU1bmpUc0pxSEN0VFpGM3VKOXpZeVJJWFIraDgxSk52QkM1ZkFHeUhCUjZo?=
 =?utf-8?B?cEt4T1VKZTB0Y29uMGZlRk04V1hReERGTk5HSEdNd2MrMGhmK1JoR3phVits?=
 =?utf-8?Q?CFkCbKHHcfNWqz0uuZ4xhI8=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <503F523C1970B74488FD96F1F8EEF10F@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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c13d0428-b927-428e-7f87-08dde1693b32
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Aug 2025 10:47:03.7196
 (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: swmJWMdBFnTGDZBCfo2t1DnDmS7n/FkdsZUFS/6JAxdgk8b2/XBBHZ9NWEKBhtLO6eHjx5bAfyUzlJKIR+EChf9/h2vyF0DLA9fGjWlB1ZQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB7273

SGVsbG8gT2xla3NhbmRyLA0KDQpUaGFuayB5b3UgZm9yIHlvdXIgcmV2aWV3IGNvbW1lbnRzLg0K
DQpPbiAyMS4wOC4yNSAxOToxNywgT2xla3NhbmRyIFR5c2hjaGVua28gd3JvdGU6DQo+IA0KPiAN
Cj4gT24gMDcuMDguMjUgMTU6MzMsIExlb25pZCBLb21hcmlhbnNreWkgd3JvdGU6DQo+IA0KPiBI
ZWxsbyBMZW9uaWQNCj4gDQo+IA0KPj4gSW1wbGVtZW50ZWQgc3VwcG9ydCBmb3IgR0lDdjMuMSBl
eHRlbmRlZCBTUEkgcmVnaXN0ZXJzIGZvciB2R0lDdjMsDQo+PiBhbGxvd2luZyB0aGUgZW11bGF0
aW9uIG9mIGVTUEktc3BlY2lmaWMgYmVoYXZpb3IgZm9yIGd1ZXN0IGRvbWFpbnMuDQo+PiBUaGUg
aW1wbGVtZW50YXRpb24gaW5jbHVkZXMgcmVhZCBhbmQgd3JpdGUgZW11bGF0aW9uIGZvciBlU1BJ
LXJlbGF0ZWQNCj4+IHJlZ2lzdGVycyAoZS5nLiwgR0lDRF9JU0VOQUJMRVJuRSwgR0lDRF9JUk9V
VEVSbkUsIGFuZCBvdGhlcnMpLA0KPj4gZm9sbG93aW5nIGEgc2ltaWxhciBhcHByb2FjaCB0byB0
aGUgaGFuZGxpbmcgb2YgcmVndWxhciBTUElzLg0KPj4NCj4+IFRoZSBlU1BJIHJlZ2lzdGVycywg
cHJldmlvdXNseSBsb2NhdGVkIGluIHJlc2VydmVkIGFkZHJlc3MgcmFuZ2VzLA0KPj4gYXJlIG5v
dyBhZGp1c3RlZCB0byBzdXBwb3J0IE1NSU8gcmVhZCBhbmQgd3JpdGUgb3BlcmF0aW9ucyBjb3Jy
ZWN0bHkNCj4+IHdoZW4gQ09ORklHX0dJQ1YzX0VTUEkgaXMgZW5hYmxlZC4NCj4+DQo+PiBUaGUg
YXZhaWxhYmlsaXR5IG9mIGVTUElzIGFuZCB0aGUgbnVtYmVyIG9mIGVtdWxhdGVkIGV4dGVuZGVk
IFNQSXMNCj4+IGZvciBndWVzdCBkb21haW5zIGlzIHJlcG9ydGVkIGJ5IHNldHRpbmcgdGhlIGFw
cHJvcHJpYXRlIGJpdHMgaW4gdGhlDQo+PiBHSUNEX1RZUEVSIHJlZ2lzdGVyLCBiYXNlZCBvbiB0
aGUgbnVtYmVyIG9mIGVTUElzIHJlcXVlc3RlZCBieSB0aGUNCj4+IGRvbWFpbiBhbmQgc3VwcG9y
dGVkIGJ5IHRoZSBoYXJkd2FyZS4gSW4gY2FzZXMgd2hlcmUgdGhlIGNvbmZpZ3VyYXRpb24NCj4+
IG9wdGlvbiBpcyBkaXNhYmxlZCwgdGhlIGhhcmR3YXJlIGRvZXMgbm90IHN1cHBvcnQgZVNQSXMs
IG9yIHRoZSBkb21haW4NCj4+IGRvZXMgbm90IHJlcXVlc3Qgc3VjaCBpbnRlcnJ1cHRzLCB0aGUg
ZnVuY3Rpb25hbGl0eSByZW1haW5zIHVuY2hhbmdlZC4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBM
ZW9uaWQgS29tYXJpYW5za3lpIDxsZW9uaWRfa29tYXJpYW5za3lpQGVwYW0uY29tPg0KPj4NCj4+
IC0tLQ0KPj4gQ2hhbmdlcyBpbiBWMjoNCj4+IC0gYWRkIG1pc3NpbmcgcmFuayBpbmRleCBjb252
ZXJzaW9uIGZvciBwZW5kaW5nIGFuZCBpbmZsaWdodCBpcnFzDQo+PiAtLS0NCj4+IMKgIHhlbi9h
cmNoL2FybS92Z2ljLXYzLmMgfCAyNDggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKy0NCj4+IMKgIDEgZmlsZSBjaGFuZ2VkLCAyNDUgaW5zZXJ0aW9ucygrKSwgMyBkZWxl
dGlvbnMoLSkNCj4+DQo+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3ZnaWMtdjMuYyBiL3hl
bi9hcmNoL2FybS92Z2ljLXYzLmMNCj4+IGluZGV4IDQzNjljNTUxNzcuLjFjYWNiYjZlNDMgMTAw
NjQ0DQo+PiAtLS0gYS94ZW4vYXJjaC9hcm0vdmdpYy12My5jDQo+PiArKysgYi94ZW4vYXJjaC9h
cm0vdmdpYy12My5jDQo+PiBAQCAtMTExLDcgKzExMSw3IEBAIHN0YXRpYyB1aW50NjRfdCB2Z2lj
X2ZldGNoX2lyb3V0ZXIoc3RydWN0IA0KPj4gdmdpY19pcnFfcmFuayAqcmFuaywNCj4+IMKgwqAg
KiBOb3RlIHRoZSBvZmZzZXQgd2lsbCBiZSBhbGlnbmVkIHRvIHRoZSBhcHByb3ByaWF0ZSBib3Vu
ZGFyeS4NCj4+IMKgwqAgKi8NCj4+IMKgIHN0YXRpYyB2b2lkIHZnaWNfc3RvcmVfaXJvdXRlcihz
dHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgDQo+PiB2Z2ljX2lycV9yYW5rICpyYW5rLA0KPj4gLcKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oCB1bnNpZ25lZCBpbnQgb2Zmc2V0LCB1aW50NjRfdCBpcm91dGVyKQ0KPj4gK8KgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1bnNpZ25l
ZCBpbnQgb2Zmc2V0LCB1aW50NjRfdCBpcm91dGVyLCANCj4+IGJvb2wgZXNwaSkNCj4+IMKgIHsN
Cj4+IMKgwqDCoMKgwqAgc3RydWN0IHZjcHUgKm5ld192Y3B1LCAqb2xkX3ZjcHU7DQo+PiDCoMKg
wqDCoMKgIHVuc2lnbmVkIGludCB2aXJxOw0KPj4gQEAgLTEyMyw3ICsxMjMsOCBAQCBzdGF0aWMg
dm9pZCB2Z2ljX3N0b3JlX2lyb3V0ZXIoc3RydWN0IGRvbWFpbiAqZCwgDQo+PiBzdHJ1Y3Qgdmdp
Y19pcnFfcmFuayAqcmFuaywNCj4+IMKgwqDCoMKgwqDCoCAqIFRoZSBJUk9VVEVSMC0zMSwgdXNl
ZCBmb3IgU0dJcy9QUElzLCBhcmUgcmVzZXJ2ZWQgYW5kIHNob3VsZA0KPj4gwqDCoMKgwqDCoMKg
ICogbmV2ZXIgY2FsbCB0aGlzIGZ1bmN0aW9uLg0KPj4gwqDCoMKgwqDCoMKgICovDQo+PiAtwqDC
oMKgIEFTU0VSVCh2aXJxID49IDMyKTsNCj4+ICvCoMKgwqAgaWYgKCAhZXNwaSApDQo+PiArwqDC
oMKgwqDCoMKgwqAgQVNTRVJUKHZpcnEgPj0gMzIpOw0KPj4gwqDCoMKgwqDCoCAvKiBHZXQgdGhl
IGluZGV4IGluIHRoZSByYW5rICovDQo+PiDCoMKgwqDCoMKgIG9mZnNldCA9IHZpcnEgJiBJTlRF
UlJVUFRfUkFOS19NQVNLOw0KPj4gQEAgLTE0Niw2ICsxNDcsMTEgQEAgc3RhdGljIHZvaWQgdmdp
Y19zdG9yZV9pcm91dGVyKHN0cnVjdCBkb21haW4gKmQsIA0KPj4gc3RydWN0IHZnaWNfaXJxX3Jh
bmsgKnJhbmssDQo+PiDCoMKgwqDCoMKgIC8qIE9ubHkgbWlncmF0ZSB0aGUgSVJRIGlmIHRoZSB0
YXJnZXQgdkNQVSBoYXMgY2hhbmdlZCAqLw0KPj4gwqDCoMKgwqDCoCBpZiAoIG5ld192Y3B1ICE9
IG9sZF92Y3B1ICkNCj4+IMKgwqDCoMKgwqAgew0KPj4gKyNpZmRlZiBDT05GSUdfR0lDVjNfRVNQ
SQ0KPj4gK8KgwqDCoMKgwqDCoMKgIC8qIENvbnZlcnQgdmlycSBpbmRleCB0byBlU1BJIHJhbmdl
ICovDQo+PiArwqDCoMKgwqDCoMKgwqAgaWYgKCBlc3BpICkNCj4+ICvCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgIHZpcnEgPSBFU1BJX0lEWDJJTlRJRCh2aXJxKTsNCj4+ICsjZW5kaWYNCj4+IMKgwqDC
oMKgwqDCoMKgwqDCoCBpZiAoIHZnaWNfbWlncmF0ZV9pcnEob2xkX3ZjcHUsIG5ld192Y3B1LCB2
aXJxKSApDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB3cml0ZV9hdG9taWMoJnJhbmst
PnZjcHVbb2Zmc2V0XSwgbmV3X3ZjcHUtPnZjcHVfaWQpOw0KPj4gwqDCoMKgwqDCoCB9DQo+PiBA
QCAtNjg1LDYgKzY5MSw5IEBAIHN0YXRpYyBpbnQgX192Z2ljX3YzX2Rpc3RyX2NvbW1vbl9tbWlv
X3JlYWQoY29uc3QgDQo+PiBjaGFyICpuYW1lLCBzdHJ1Y3QgdmNwdSAqdiwNCj4+IMKgwqDCoMKg
wqAgew0KPj4gwqDCoMKgwqDCoCBjYXNlIFZSQU5HRTMyKEdJQ0RfSUdST1VQUiwgR0lDRF9JR1JP
VVBSTik6DQo+PiDCoMKgwqDCoMKgIGNhc2UgVlJBTkdFMzIoR0lDRF9JR1JQTU9EUiwgR0lDRF9J
R1JQTU9EUk4pOg0KPj4gKyNpZmRlZiBDT05GSUdfR0lDVjNfRVNQSQ0KPj4gK8KgwqDCoCBjYXNl
IFZSQU5HRTMyKEdJQ0RfSUdST1VQUm5FLCBHSUNEX0lHUk9VUFJuRU4pOg0KPj4gKyNlbmRpZg0K
Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIC8qIFdlIGRvIG5vdCBpbXBsZW1lbnQgc2VjdXJpdHkgZXh0
ZW5zaW9ucyBmb3IgZ3Vlc3RzLCByZWFkIA0KPj4gemVybyAqLw0KPj4gwqDCoMKgwqDCoMKgwqDC
oMKgIGlmICggZGFidC5zaXplICE9IERBQlRfV09SRCApIGdvdG8gYmFkX3dpZHRoOw0KPj4gwqDC
oMKgwqDCoMKgwqDCoMKgIGdvdG8gcmVhZF9hc196ZXJvOw0KPj4gQEAgLTcxMCwxMSArNzE5LDE5
IEBAIHN0YXRpYyBpbnQgDQo+PiBfX3ZnaWNfdjNfZGlzdHJfY29tbW9uX21taW9fcmVhZChjb25z
dCBjaGFyICpuYW1lLCBzdHJ1Y3QgdmNwdSAqdiwNCj4+IMKgwqDCoMKgwqAgLyogUmVhZCB0aGUg
cGVuZGluZyBzdGF0dXMgb2YgYW4gSVJRIHZpYSBHSUNEL0dJQ1IgaXMgbm90IA0KPj4gc3VwcG9y
dGVkICovDQo+PiDCoMKgwqDCoMKgIGNhc2UgVlJBTkdFMzIoR0lDRF9JU1BFTkRSLCBHSUNEX0lT
UEVORFJOKToNCj4+IMKgwqDCoMKgwqAgY2FzZSBWUkFOR0UzMihHSUNEX0lDUEVORFIsIEdJQ0Rf
SUNQRU5EUk4pOg0KPj4gKyNpZmRlZiBDT05GSUdfR0lDVjNfRVNQSQ0KPj4gK8KgwqDCoCBjYXNl
IFZSQU5HRTMyKEdJQ0RfSVNQRU5EUm5FLCBHSUNEX0lTUEVORFJuRU4pOg0KPj4gK8KgwqDCoCBj
YXNlIFZSQU5HRTMyKEdJQ0RfSUNQRU5EUm5FLCBHSUNEX0lDUEVORFJuRU4pOg0KPj4gKyNlbmRp
Zg0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGdvdG8gcmVhZF9hc196ZXJvOw0KPj4gwqDCoMKgwqDC
oCAvKiBSZWFkIHRoZSBhY3RpdmUgc3RhdHVzIG9mIGFuIElSUSB2aWEgR0lDRC9HSUNSIGlzIG5v
dCANCj4+IHN1cHBvcnRlZCAqLw0KPj4gwqDCoMKgwqDCoCBjYXNlIFZSQU5HRTMyKEdJQ0RfSVNB
Q1RJVkVSLCBHSUNEX0lTQUNUSVZFUk4pOg0KPj4gwqDCoMKgwqDCoCBjYXNlIFZSQU5HRTMyKEdJ
Q0RfSUNBQ1RJVkVSLCBHSUNEX0lDQUNUSVZFUk4pOg0KPj4gKyNpZmRlZiBDT05GSUdfR0lDVjNf
RVNQSQ0KPj4gK8KgwqDCoCBjYXNlIFZSQU5HRTMyKEdJQ0RfSVNBQ1RJVkVSbkUsIEdJQ0RfSVNB
Q1RJVkVSbkVOKToNCj4+ICvCoMKgwqAgY2FzZSBWUkFOR0UzMihHSUNEX0lDQUNUSVZFUm5FLCBH
SUNEX0lDQUNUSVZFUm5FTik6DQo+PiArI2VuZGlmDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgZ290
byByZWFkX2FzX3plcm87DQo+PiDCoMKgwqDCoMKgIGNhc2UgVlJBTkdFMzIoR0lDRF9JUFJJT1JJ
VFlSLCBHSUNEX0lQUklPUklUWVJOKToNCj4+IEBAIC03NTIsNiArNzY5LDYxIEBAIHN0YXRpYyBp
bnQgX192Z2ljX3YzX2Rpc3RyX2NvbW1vbl9tbWlvX3JlYWQoY29uc3QgDQo+PiBjaGFyICpuYW1l
LCBzdHJ1Y3QgdmNwdSAqdiwNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gMTsNCj4+IMKg
wqDCoMKgwqAgfQ0KPj4gKyNpZmRlZiBDT05GSUdfR0lDVjNfRVNQSQ0KPj4gK8KgwqDCoCBjYXNl
IFZSQU5HRTMyKEdJQ0RfSVNFTkFCTEVSbkUsIEdJQ0RfSVNFTkFCTEVSbkVOKToNCj4+ICvCoMKg
wqDCoMKgwqDCoCBpZiAoIGRhYnQuc2l6ZSAhPSBEQUJUX1dPUkQgKSBnb3RvIGJhZF93aWR0aDsN
Cj4gDQo+IA0KPiBOSVQ6IElmIEkgYW0gbm90IG1pc3Rha2VuLCB0aGUgZ290byBzaG91bGQgYmUg
b24gdGhlIG5leHQgbGluZSAoaGVyZSBhbmQgDQo+IGluIHNpbWlsYXIgcGxhY2VzIHRocm91Z2hv
dXQgdGhlIGFkZGVkIGNvZGUpLg0KPg0KDQpJIGp1c3QgcmVwbGljYXRlZCBzb21lIGV4aXN0aW5n
IGNvZGUgd2l0aCBmb3JtYXR0aW5nIGZvciByZWd1bGFyIFNQSXMgaW4gDQplU1BJLiBBY2NvcmRp
bmcgdG8gQ09ESU5HX1NUWUxFLCB0aGVyZSBpcyBubyBleHBsaWNpdCBydWxlIGFnYWluc3QgDQpw
dXR0aW5nIHN1Y2ggY29kZSBvbiBvbmUgbGluZSAob3IgSSBtaXNzZWQgdGhpcyBwb2ludCkuIEhv
d2V2ZXIsIGluIA0KZXhhbXBsZXMgZm9yIGEgc2luZ2xlLXN0YXRlbWVudCBibG9jayBhZnRlciBh
biBpZjoNCg0KID4gQnJhY2VzIHNob3VsZCBiZSBvbWl0dGVkIGZvciBibG9ja3Mgd2l0aCBhIHNp
bmdsZSBzdGF0ZW1lbnQuIGUuZy4sDQogPg0KID4gaWYgKCBjb25kaXRpb24gKQ0KID4gICAgc2lu
Z2xlX3N0YXRlbWVudCgpOw0KID4NCg0KVGhlIHNpbmdsZSBzdGF0ZW1lbnQgaXMgcGxhY2VkIG9u
IGEgbmV3IGxpbmUuIFNvLCBJIHdvdWxkIHByZWZlciB0byANCmFkZHJlc3MgeW91ciBuaXQgYW5k
IGFkZCBuZXdsaW5lcyBoZXJlIGFuZCBpbiBzaW1pbGFyIHBsYWNlcyBpbiBWMy4NCg0KPj4gK8Kg
wqDCoMKgwqDCoMKgIHJhbmsgPSB2Z2ljX2V4dF9yYW5rX29mZnNldCh2LCAxLCByZWcgLSBHSUNE
X0lTRU5BQkxFUm5FLCANCj4+IERBQlRfV09SRCk7DQo+PiArwqDCoMKgwqDCoMKgwqAgaWYgKCBy
YW5rID09IE5VTEwgKSBnb3RvIHJlYWRfYXNfemVybzsNCj4+ICvCoMKgwqDCoMKgwqDCoCB2Z2lj
X2xvY2tfcmFuayh2LCByYW5rLCBmbGFncyk7DQo+PiArwqDCoMKgwqDCoMKgwqAgKnIgPSB2cmVn
X3JlZzMyX2V4dHJhY3QocmFuay0+aWVuYWJsZSwgaW5mbyk7DQo+PiArwqDCoMKgwqDCoMKgwqAg
dmdpY191bmxvY2tfcmFuayh2LCByYW5rLCBmbGFncyk7DQo+PiArwqDCoMKgwqDCoMKgwqAgcmV0
dXJuIDE7DQo+PiArDQo+PiArwqDCoMKgIGNhc2UgVlJBTkdFMzIoR0lDRF9JQ0VOQUJMRVJuRSwg
R0lDRF9JQ0VOQUJMRVJuRU4pOg0KPj4gK8KgwqDCoMKgwqDCoMKgIGlmICggZGFidC5zaXplICE9
IERBQlRfV09SRCApIGdvdG8gYmFkX3dpZHRoOw0KPj4gK8KgwqDCoMKgwqDCoMKgIHJhbmsgPSB2
Z2ljX2V4dF9yYW5rX29mZnNldCh2LCAxLCByZWcgLSBHSUNEX0lDRU5BQkxFUm5FLCANCj4+IERB
QlRfV09SRCk7DQo+PiArwqDCoMKgwqDCoMKgwqAgaWYgKCByYW5rID09IE5VTEwgKSBnb3RvIHJl
YWRfYXNfemVybzsNCj4+ICvCoMKgwqDCoMKgwqDCoCB2Z2ljX2xvY2tfcmFuayh2LCByYW5rLCBm
bGFncyk7DQo+PiArwqDCoMKgwqDCoMKgwqAgKnIgPSB2cmVnX3JlZzMyX2V4dHJhY3QocmFuay0+
aWVuYWJsZSwgaW5mbyk7DQo+PiArwqDCoMKgwqDCoMKgwqAgdmdpY191bmxvY2tfcmFuayh2LCBy
YW5rLCBmbGFncyk7DQo+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIDE7DQo+PiArDQo+PiArwqDC
oMKgIGNhc2UgVlJBTkdFMzIoR0lDRF9JUFJJT1JJVFlSbkUsIEdJQ0RfSVBSSU9SSVRZUm5FTik6
DQo+PiArwqDCoMKgIHsNCj4+ICvCoMKgwqDCoMKgwqDCoCB1aW50MzJfdCBpcHJpb3JpdHlyOw0K
Pj4gK8KgwqDCoMKgwqDCoMKgIHVpbnQ4X3QgcmFua19pbmRleDsNCj4+ICsNCj4+ICvCoMKgwqDC
oMKgwqDCoCBpZiAoIGRhYnQuc2l6ZSAhPSBEQUJUX0JZVEUgJiYgZGFidC5zaXplICE9IERBQlRf
V09SRCApIGdvdG8gDQo+PiBiYWRfd2lkdGg7DQo+PiArwqDCoMKgwqDCoMKgwqAgcmFuayA9IHZn
aWNfZXh0X3Jhbmtfb2Zmc2V0KHYsIDgsIHJlZyAtIEdJQ0RfSVBSSU9SSVRZUm5FLCANCj4+IERB
QlRfV09SRCk7DQo+PiArwqDCoMKgwqDCoMKgwqAgaWYgKCByYW5rID09IE5VTEwgKSBnb3RvIHJl
YWRfYXNfemVybzsNCj4+ICvCoMKgwqDCoMKgwqDCoCByYW5rX2luZGV4ID0gUkVHX1JBTktfSU5E
RVgoOCwgcmVnIC0gR0lDRF9JUFJJT1JJVFlSbkUsIA0KPj4gREFCVF9XT1JEKTsNCj4+ICsNCj4+
ICvCoMKgwqDCoMKgwqDCoCB2Z2ljX2xvY2tfcmFuayh2LCByYW5rLCBmbGFncyk7DQo+PiArwqDC
oMKgwqDCoMKgwqAgaXByaW9yaXR5ciA9IEFDQ0VTU19PTkNFKHJhbmstPmlwcmlvcml0eXJbcmFu
a19pbmRleF0pOw0KPj4gK8KgwqDCoMKgwqDCoMKgIHZnaWNfdW5sb2NrX3JhbmsodiwgcmFuaywg
ZmxhZ3MpOw0KPj4gKw0KPj4gK8KgwqDCoMKgwqDCoMKgICpyID0gdnJlZ19yZWczMl9leHRyYWN0
KGlwcmlvcml0eXIsIGluZm8pOw0KPj4gKw0KPj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiAxOw0K
Pj4gK8KgwqDCoCB9DQo+PiArDQo+PiArwqDCoMKgIGNhc2UgVlJBTkdFMzIoR0lDRF9JQ0ZHUm5F
LCBHSUNEX0lDRkdSbkVOKToNCj4+ICvCoMKgwqAgew0KPj4gK8KgwqDCoMKgwqDCoMKgIHVpbnQz
Ml90IGljZmdyOw0KPj4gKw0KPj4gK8KgwqDCoMKgwqDCoMKgIGlmICggZGFidC5zaXplICE9IERB
QlRfV09SRCApIGdvdG8gYmFkX3dpZHRoOw0KPj4gK8KgwqDCoMKgwqDCoMKgIHJhbmsgPSB2Z2lj
X2V4dF9yYW5rX29mZnNldCh2LCAyLCByZWcgLSBHSUNEX0lDRkdSbkUsIA0KPj4gREFCVF9XT1JE
KTsNCj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAoIHJhbmsgPT0gTlVMTCApIGdvdG8gcmVhZF9hc196
ZXJvOw0KPj4gK8KgwqDCoMKgwqDCoMKgIHZnaWNfbG9ja19yYW5rKHYsIHJhbmssIGZsYWdzKTsN
Cj4+ICvCoMKgwqDCoMKgwqDCoCBpY2ZnciA9IHJhbmstPmljZmdbUkVHX1JBTktfSU5ERVgoMiwg
cmVnIC0gR0lDRF9JQ0ZHUm5FLCANCj4+IERBQlRfV09SRCldOw0KPj4gK8KgwqDCoMKgwqDCoMKg
IHZnaWNfdW5sb2NrX3JhbmsodiwgcmFuaywgZmxhZ3MpOw0KPj4gKw0KPj4gK8KgwqDCoMKgwqDC
oMKgICpyID0gdnJlZ19yZWczMl9leHRyYWN0KGljZmdyLCBpbmZvKTsNCj4+ICsNCj4+ICvCoMKg
wqDCoMKgwqDCoCByZXR1cm4gMTsNCj4+ICvCoMKgwqAgfQ0KPj4gKyNlbmRpZg0KPj4gKw0KPj4g
wqDCoMKgwqDCoCBkZWZhdWx0Og0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHByaW50ayhYRU5MT0df
R19FUlINCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICIlcHY6ICVzOiB1bmhh
bmRsZWQgcmVhZCByJWQgb2Zmc2V0ICUjMDh4XG4iLA0KPj4gQEAgLTc4Miw2ICs4NTQsOSBAQCBz
dGF0aWMgaW50IF9fdmdpY192M19kaXN0cl9jb21tb25fbW1pb193cml0ZShjb25zdCANCj4+IGNo
YXIgKm5hbWUsIHN0cnVjdCB2Y3B1ICp2LA0KPj4gwqDCoMKgwqDCoCB7DQo+PiDCoMKgwqDCoMKg
IGNhc2UgVlJBTkdFMzIoR0lDRF9JR1JPVVBSLCBHSUNEX0lHUk9VUFJOKToNCj4+IMKgwqDCoMKg
wqAgY2FzZSBWUkFOR0UzMihHSUNEX0lHUlBNT0RSLCBHSUNEX0lHUlBNT0RSTik6DQo+PiArI2lm
ZGVmIENPTkZJR19HSUNWM19FU1BJDQo+PiArwqDCoMKgIGNhc2UgVlJBTkdFMzIoR0lDRF9JR1JP
VVBSbkUsIEdJQ0RfSUdST1VQUm5FTik6DQo+PiArI2VuZGlmDQo+PiDCoMKgwqDCoMKgwqDCoMKg
wqAgLyogV2UgZG8gbm90IGltcGxlbWVudCBzZWN1cml0eSBleHRlbnNpb25zIGZvciBndWVzdHMs
IHdyaXRlIA0KPj4gaWdub3JlICovDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgZ290byB3cml0ZV9p
Z25vcmVfMzI7DQo+PiBAQCAtODcxLDYgKzk0Niw4NyBAQCBzdGF0aWMgaW50IA0KPj4gX192Z2lj
X3YzX2Rpc3RyX2NvbW1vbl9tbWlvX3dyaXRlKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCB2Y3B1
ICp2LA0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHZnaWNfdW5sb2NrX3JhbmsodiwgcmFuaywgZmxh
Z3MpOw0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiAxOw0KPj4gKyNpZmRlZiBDT05GSUdf
R0lDVjNfRVNQSQ0KPj4gK8KgwqDCoCBjYXNlIFZSQU5HRTMyKEdJQ0RfSVNFTkFCTEVSbkUsIEdJ
Q0RfSVNFTkFCTEVSbkVOKToNCj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAoIGRhYnQuc2l6ZSAhPSBE
QUJUX1dPUkQgKSBnb3RvIGJhZF93aWR0aDsNCj4+ICvCoMKgwqDCoMKgwqDCoCByYW5rID0gdmdp
Y19leHRfcmFua19vZmZzZXQodiwgMSwgcmVnIC0gR0lDRF9JU0VOQUJMRVJuRSwgDQo+PiBEQUJU
X1dPUkQpOw0KPj4gK8KgwqDCoMKgwqDCoMKgIGlmICggcmFuayA9PSBOVUxMICkgZ290byB3cml0
ZV9pZ25vcmU7DQo+PiArwqDCoMKgwqDCoMKgwqAgdmdpY19sb2NrX3JhbmsodiwgcmFuaywgZmxh
Z3MpOw0KPj4gK8KgwqDCoMKgwqDCoMKgIHRyID0gcmFuay0+aWVuYWJsZTsNCj4+ICvCoMKgwqDC
oMKgwqDCoCB2cmVnX3JlZzMyX3NldGJpdHMoJnJhbmstPmllbmFibGUsIHIsIGluZm8pOw0KPj4g
K8KgwqDCoMKgwqDCoMKgIHZnaWNfZW5hYmxlX2lycXModiwgKHJhbmstPmllbmFibGUpICYgKH50
ciksIA0KPj4gRVhUX1JBTktfSURYMk5VTShyYW5rLT5pbmRleCkpOw0KPj4gK8KgwqDCoMKgwqDC
oMKgIHZnaWNfdW5sb2NrX3JhbmsodiwgcmFuaywgZmxhZ3MpOw0KPj4gK8KgwqDCoMKgwqDCoMKg
IHJldHVybiAxOw0KPj4gKw0KPj4gK8KgwqDCoCBjYXNlIFZSQU5HRTMyKEdJQ0RfSUNFTkFCTEVS
bkUsIEdJQ0RfSUNFTkFCTEVSbkVOKToNCj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAoIGRhYnQuc2l6
ZSAhPSBEQUJUX1dPUkQgKSBnb3RvIGJhZF93aWR0aDsNCj4+ICvCoMKgwqDCoMKgwqDCoCByYW5r
ID0gdmdpY19leHRfcmFua19vZmZzZXQodiwgMSwgcmVnIC0gR0lDRF9JQ0VOQUJMRVJuRSwgDQo+
PiBEQUJUX1dPUkQpOw0KPj4gK8KgwqDCoMKgwqDCoMKgIGlmICggcmFuayA9PSBOVUxMICkgZ290
byB3cml0ZV9pZ25vcmU7DQo+PiArwqDCoMKgwqDCoMKgwqAgdmdpY19sb2NrX3JhbmsodiwgcmFu
aywgZmxhZ3MpOw0KPj4gK8KgwqDCoMKgwqDCoMKgIHRyID0gcmFuay0+aWVuYWJsZTsNCj4+ICvC
oMKgwqDCoMKgwqDCoCB2cmVnX3JlZzMyX2NsZWFyYml0cygmcmFuay0+aWVuYWJsZSwgciwgaW5m
byk7DQo+PiArwqDCoMKgwqDCoMKgwqAgdmdpY19kaXNhYmxlX2lycXModiwgKH5yYW5rLT5pZW5h
YmxlKSAmIHRyLCANCj4+IEVYVF9SQU5LX0lEWDJOVU0ocmFuay0+aW5kZXgpKTsNCj4+ICvCoMKg
wqDCoMKgwqDCoCB2Z2ljX3VubG9ja19yYW5rKHYsIHJhbmssIGZsYWdzKTsNCj4+ICvCoMKgwqDC
oMKgwqDCoCByZXR1cm4gMTsNCj4+ICsNCj4+ICvCoMKgwqAgY2FzZSBWUkFOR0UzMihHSUNEX0lT
UEVORFJuRSwgR0lDRF9JU1BFTkRSbkVOKToNCj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAoIGRhYnQu
c2l6ZSAhPSBEQUJUX1dPUkQgKSBnb3RvIGJhZF93aWR0aDsNCj4+ICvCoMKgwqDCoMKgwqDCoCBy
YW5rID0gdmdpY19leHRfcmFua19vZmZzZXQodiwgMSwgcmVnIC0gR0lDRF9JU1BFTkRSbkUsIA0K
Pj4gREFCVF9XT1JEKTsNCj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAoIHJhbmsgPT0gTlVMTCApIGdv
dG8gd3JpdGVfaWdub3JlOw0KPj4gKw0KPj4gK8KgwqDCoMKgwqDCoMKgIHZnaWNfc2V0X2lycXNf
cGVuZGluZyh2LCByLCBFWFRfUkFOS19JRFgyTlVNKHJhbmstPmluZGV4KSk7DQo+PiArDQo+PiAr
wqDCoMKgwqDCoMKgwqAgcmV0dXJuIDE7DQo+PiArDQo+PiArwqDCoMKgIGNhc2UgVlJBTkdFMzIo
R0lDRF9JQ1BFTkRSbkUsIEdJQ0RfSUNQRU5EUm5FTik6DQo+PiArwqDCoMKgwqDCoMKgwqAgaWYg
KCBkYWJ0LnNpemUgIT0gREFCVF9XT1JEICkgZ290byBiYWRfd2lkdGg7DQo+PiArwqDCoMKgwqDC
oMKgwqAgcmFuayA9IHZnaWNfZXh0X3Jhbmtfb2Zmc2V0KHYsIDEsIHJlZyAtIEdJQ0RfSUNQRU5E
Um5FLCANCj4+IERBQlRfV09SRCk7DQo+PiArwqDCoMKgwqDCoMKgwqAgaWYgKCByYW5rID09IE5V
TEwgKSBnb3RvIHdyaXRlX2lnbm9yZTsNCj4+ICsNCj4+ICvCoMKgwqDCoMKgwqDCoCB2Z2ljX2No
ZWNrX2luZmxpZ2h0X2lycXNfcGVuZGluZyh2LCBFWFRfUkFOS19JRFgyTlVNKHJhbmstIA0KPj4g
PmluZGV4KSwgcik7DQo+PiArDQo+PiArwqDCoMKgwqDCoMKgwqAgZ290byB3cml0ZV9pZ25vcmU7
DQo+PiArwqDCoMKgIGNhc2UgVlJBTkdFMzIoR0lDRF9JU0FDVElWRVJuRSwgR0lDRF9JU0FDVElW
RVJuRU4pOg0KPj4gK8KgwqDCoMKgwqDCoMKgIGlmICggZGFidC5zaXplICE9IERBQlRfV09SRCAp
IGdvdG8gYmFkX3dpZHRoOw0KPj4gK8KgwqDCoMKgwqDCoMKgIHByaW50ayhYRU5MT0dfR19FUlIN
Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICIlcHY6ICVzOiB1bmhhbmRsZWQgd29y
ZCB3cml0ZSAlIyJQUklyZWdpc3RlciIgdG8gDQo+PiBJU0FDVElWRVIlZFxuIiwNCj4gDQo+IEkg
d291bGQgdXNlIElTQUNUSVZFUiVkRSBpbiB0aGUgcHJpbnRlZCBtZXNzYWdlIHRvIGRpc3Rpbmd1
aXNoIGJldHdlZW4gDQo+IG5vcm1hbCBhbmQgImV4dGVuZGVkIiByZWdpc3RlcnMgKGhlcmUgYW5k
IGluIHNpbWlsYXIgcGxhY2VzIHRocm91Z2hvdXQgDQo+IHRoZSBhZGRlZCBjb2RlKS4NCj4gDQo+
PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB2LCBuYW1lLCByLCByZWcgLSBHSUNEX0lT
QUNUSVZFUm5FKTsNCj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gMDsNCj4+ICsNCj4+ICvCoMKg
wqAgY2FzZSBWUkFOR0UzMihHSUNEX0lDQUNUSVZFUm5FLCBHSUNEX0lDQUNUSVZFUm5FTik6DQo+
PiArwqDCoMKgwqDCoMKgwqAgcHJpbnRrKFhFTkxPR19HX0VSUg0KPj4gK8KgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqAgIiVwdjogJXM6IHVuaGFuZGxlZCB3b3JkIHdyaXRlICUjIlBSSXJlZ2lz
dGVyIiB0byANCj4+IElDQUNUSVZFUiVkXG4iLA0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqAgdiwgbmFtZSwgciwgcmVnIC0gR0lDRF9JQ0FDVElWRVIpOw0KPiANCj4gcy9HSUNEX0lD
QUNUSVZFUi9HSUNEX0lDQUNUSVZFUm5FDQo+IA0KPiANCj4gW3NuaXBdDQpPaCwgSSBtaXNzZWQg
dGhpcy4gSSB3aWxsIGZpeCBpdCBpbiBWMy4gVGhhbmsgeW91Lg0KDQpCZXN0IHJlZ2FyZHMsDQpM
ZW9uaWQNCg0K


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 10:52:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 10:52:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089853.1447331 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upPO5-0008Lj-LH; Fri, 22 Aug 2025 10:52:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089853.1447331; Fri, 22 Aug 2025 10: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 1upPO5-0008KF-Dt; Fri, 22 Aug 2025 10:52:49 +0000
Received: by outflank-mailman (input) for mailman id 1089853;
 Fri, 22 Aug 2025 10:52:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JeQb=3C=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1upPO4-0008I9-GW
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 10:52:48 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on2062b.outbound.protection.outlook.com
 [2a01:111:f403:2418::62b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 23551f44-7f46-11f0-a32b-13f23c93f187;
 Fri, 22 Aug 2025 12:52:47 +0200 (CEST)
Received: from BN0PR07CA0025.namprd07.prod.outlook.com (2603:10b6:408:141::28)
 by DS7PR12MB5982.namprd12.prod.outlook.com (2603:10b6:8:7d::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.19; Fri, 22 Aug
 2025 10:52:41 +0000
Received: from BN1PEPF00004686.namprd03.prod.outlook.com
 (2603:10b6:408:141:cafe::81) by BN0PR07CA0025.outlook.office365.com
 (2603:10b6:408:141::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.17 via Frontend Transport; Fri,
 22 Aug 2025 10:52:40 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN1PEPF00004686.mail.protection.outlook.com (10.167.243.91) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Fri, 22 Aug 2025 10:52:40 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) 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; Fri, 22 Aug 2025 05:52: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>
X-Inumbo-ID: 23551f44-7f46-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=JGYnH9iRJJJqSAAe5QHL5Bi5IR3prLO2BLaJzgN5gx2CHcFIDvVCdqfcH1dTPtFC+9qaUzlSry646lA0JA485hqryyN6am/KL3Jh8p4Jhjxxugizup6hTa0OtYAfqX/rJCI1GJwhBl73cUcZCE7q3gmz9Ssp6c30mZVaKGeQn3iXenrDcGAv2zKYOOPOkTK2YlYOJy5kAWAHe6LQRLruLR05rKCNal8VSuVZ7VM5dxskI1xnyENra54MMCCmfdE0zqYKk2zlPWg7LPv6eiQ4W9SFuxsRhOMzIonaEEuuTnvq7sTgmDEqmQP9f7z5kxTf7F2qDKUY5apaw4Jmm7KYxg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0xYv/Uz23PS+DveGlKjctHnqXJdmBqFpCRHDX8qCCZ8=;
 b=NL7OZoDuWh2a2NS1F31GNK2ZIS0Ys8WkhtV8naiZKWA+jQNEFrJz3r+UB0Xtz7SSi2qy9nI8ircv+2YokVOn9QT1wVBfODzrhUDx8jWzRwyHJNUhsnhE+6VzYyjrbqekZf+OdRWJZiOXbkOErnVWgIf4wCXlY43hVfUspyKm8CAyWB/ZtA7kwIXHKCYbr+vj+FKoLz/N9UV0qcL6B625Hyo7Ydg5Wf3xiM1Utgs3nj4p9Ry+vwjf82h5I/eRHwFJeOKTyp7v3SI2fb0zlV+D/WyiDJQbSWM9NoTPwqm9qsp4iWNvPz5Vqnn167zM+JdAD1kPkGjVmaqQyn7pO/GzDA==
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=0xYv/Uz23PS+DveGlKjctHnqXJdmBqFpCRHDX8qCCZ8=;
 b=lY0Ri9x2bstTeY5zJs673VGYPR00n76/aAIOSU1wm+ThIkXRw3KnL9Lhy5JbwDSHtzT2sFw6HxeLc/DZbk5nBE4BamunIQzIy+u65/Dp2GTDbbYe7RiXG7ZaV0lQ8V/bnVxtjKFrgQrTsqLlPSbvuEij5zNpyClodxsyYCGmQb8=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.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>
Subject: [PATCH v7 02/13] cpufreq: rename "xen_cppc_para" to "xen_get_cppc_para"
Date: Fri, 22 Aug 2025 18:52:07 +0800
Message-ID: <20250822105218.3601273-3-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250822105218.3601273-1-Penny.Zheng@amd.com>
References: <20250822105218.3601273-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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN1PEPF00004686:EE_|DS7PR12MB5982:EE_
X-MS-Office365-Filtering-Correlation-Id: b6ca2818-0844-4e88-3c4d-08dde16a0400
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|36860700013|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?XT6yUCX9qEiRs52SzoNWCZ37xrO0Bdti6RhN0cgmfu8hTVAO0NdU3SWn7K3m?=
 =?us-ascii?Q?o2xcd71cwheYKfDdMNsNYb8lDFcT3H8IgDtG/q9b1B4LDMUt2uRm+9IGObcb?=
 =?us-ascii?Q?AK6y5dWtKBu7JCzBncISHlkMGHoUuYslepzhD4hKBZLEzQx7PkpPJtZOQvv4?=
 =?us-ascii?Q?3iTehY/pykJZ/BwFAJbVq3o4sR56COShMucxeZKEmPclmxpENVOnT2U0/ORz?=
 =?us-ascii?Q?G7U4fiqRErP4U4Chmue+yDXDLsoTF92unkjvzj93+G2DL1Pyc1YwXAxzxTbV?=
 =?us-ascii?Q?PAdwzkwIc3KNGHacnL2CmSli4qujKHezwWvk1Sz8/FuSO8Sb6rtMJGe1z7z1?=
 =?us-ascii?Q?HRyesplCy9Klk+U0O7XGEd+0Mj5TI5GJoY+hdcJspP6YbIlIy8xjpz5DUXK/?=
 =?us-ascii?Q?ALudKXWmlhJBR91itqXZaeApe7YrGhKHnTP8+Qaa/UbATPKwUeFeyzJ2ahpR?=
 =?us-ascii?Q?FSE2dNZCEP+Pb0fYS5FFdFGLKISXYQXlHCTFHxPCrDSJ8AaCPRk+B/nn5K8z?=
 =?us-ascii?Q?GsbCepqmhdDDYADCn7yucExLgoxr6MlEDK7M0Xp/17M/Wv/ZTiVwGo6mL57/?=
 =?us-ascii?Q?nJoIpHa3upyMLO31aZasg3tp66DZrfUD41zX0bM1FZ2597P5me4xQhffWkC3?=
 =?us-ascii?Q?6yjuEWDEeP94TDGK5E2LDc8AuZkmYB/mzJ99l92ogQoEaFHsF6XifaTtRBkm?=
 =?us-ascii?Q?XcWHeJ6TFeLe5q5vxW75LHN+H0lkCw16ITY3PIqWVXrCclS65lvcDSczGteg?=
 =?us-ascii?Q?FH0lrd/296RgisZvmvz5zfRegbQuV8g6xb4GktClwWqhqo2e3a9cwmpKWsgl?=
 =?us-ascii?Q?Vg519Z+x50OuqY9HlMsR+t+AiT9NIAnLIr8nxebhZbDt7koeiyV3pnutLKaK?=
 =?us-ascii?Q?Yqm17GxbmJp6sYiMl11rvjLW9dfbp22+NDRnnzcF6dfDItuCbvMKqMiQUb5A?=
 =?us-ascii?Q?DurEv4EdExnhX+x7xLu5RTr+p5RP4fKICRCCEZA7cX5iwHURFkWwUvByewNG?=
 =?us-ascii?Q?y0FdPriZY8UBd6QBLp7BXjuj78TvN4VEdJnEdi2QVvkiNmXGj9VWYH+vrrMj?=
 =?us-ascii?Q?BO93y9zCYdFxnU4Y+7kQ54KeL610nMTPlZX5C0AOLYMMVqXK2mLASz9m5dU+?=
 =?us-ascii?Q?PEVHYdaRd2TKk2L/xAHEpZ6AS1K7zFxhikcuviYKFDzREqwib+tP1RNVVqdZ?=
 =?us-ascii?Q?fhByzLKpjMsdDQoeUXxGDSGvUErapi/JlL47rcyoAQRWzEX/knFc+SGdM9/Y?=
 =?us-ascii?Q?S5m80rvtt0A9NzOIUtDe1kcRXiKlkS1Vy/HtKoiu9qxtMaTbEzj/rQfTZyT7?=
 =?us-ascii?Q?O5WxjRn2Mn6oh3/PZZc/Xm4l5CLIXRXsqUGrcx0aWNQF6yJIvzYx4Duxdiyl?=
 =?us-ascii?Q?1L49MHaWVNZLl/xCc1rHosRkiTABPw4i5EOJrBtuJNiJZsG50NXOeBh8vCNd?=
 =?us-ascii?Q?N+iL7XEa02WxFouVjpL2cub8gWcoir9CQcHiKTFn36fWsQWzYVMBd0ePaus/?=
 =?us-ascii?Q?Vz197nX4wa57U7AC/SE241/ZVj/nb0ilXerF?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(36860700013)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Aug 2025 10:52:40.5947
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b6ca2818-0844-4e88-3c4d-08dde16a0400
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF00004686.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB5982

As we are going to add "struct xen_cppc_para" in "struct xen_sysctl_pm_op" as
a new xenpm sub-op later to specifically dealing with CPPC-info, we need to
follow the naming pattern, to change the struct name to "xen_get_cppc_para",
which is more suitable than "xen_cppc_para".

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Anthony PERARD <anthony.perard@vates.tech>
---
v5 -> v6:
- new commit
---
 tools/include/xenctrl.h            | 2 +-
 xen/arch/x86/acpi/cpufreq/hwp.c    | 2 +-
 xen/include/acpi/cpufreq/cpufreq.h | 2 +-
 xen/include/public/sysctl.h        | 6 +++---
 4 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/tools/include/xenctrl.h b/tools/include/xenctrl.h
index 4955981231..965d3b585a 100644
--- a/tools/include/xenctrl.h
+++ b/tools/include/xenctrl.h
@@ -1906,7 +1906,7 @@ int xc_smt_disable(xc_interface *xch);
  */
 typedef struct xen_userspace xc_userspace_t;
 typedef struct xen_ondemand xc_ondemand_t;
-typedef struct xen_cppc_para xc_cppc_para_t;
+typedef struct xen_get_cppc_para xc_cppc_para_t;
 
 struct xc_get_cpufreq_para {
     /* IN/OUT variable */
diff --git a/xen/arch/x86/acpi/cpufreq/hwp.c b/xen/arch/x86/acpi/cpufreq/hwp.c
index 36ecb0ed9d..7d14a4abd5 100644
--- a/xen/arch/x86/acpi/cpufreq/hwp.c
+++ b/xen/arch/x86/acpi/cpufreq/hwp.c
@@ -529,7 +529,7 @@ hwp_cpufreq_driver = {
 
 #ifdef CONFIG_PM_OP
 int get_hwp_para(unsigned int cpu,
-                 struct xen_cppc_para *cppc_para)
+                 struct xen_get_cppc_para *cppc_para)
 {
     const struct hwp_drv_data *data = per_cpu(hwp_drv_data, cpu);
 
diff --git a/xen/include/acpi/cpufreq/cpufreq.h b/xen/include/acpi/cpufreq/cpufreq.h
index 0742aa9f44..fd530632b4 100644
--- a/xen/include/acpi/cpufreq/cpufreq.h
+++ b/xen/include/acpi/cpufreq/cpufreq.h
@@ -266,7 +266,7 @@ static inline bool hwp_active(void) { return false; }
 #endif
 
 int get_hwp_para(unsigned int cpu,
-                 struct xen_cppc_para *cppc_para);
+                 struct xen_get_cppc_para *cppc_para);
 int set_hwp_para(struct cpufreq_policy *policy,
                  struct xen_set_cppc_para *set_cppc);
 
diff --git a/xen/include/public/sysctl.h b/xen/include/public/sysctl.h
index b7325b0f72..aafa7fcf2b 100644
--- a/xen/include/public/sysctl.h
+++ b/xen/include/public/sysctl.h
@@ -336,7 +336,7 @@ struct xen_ondemand {
     uint32_t up_threshold;
 };
 
-struct xen_cppc_para {
+struct xen_get_cppc_para {
     /* OUT */
     /* activity_window supported if set */
 #define XEN_SYSCTL_CPPC_FEAT_ACT_WINDOW  (1 << 0)
@@ -442,7 +442,7 @@ struct xen_set_cppc_para {
          XEN_SYSCTL_CPPC_SET_ACT_WINDOW  )
     /* IN/OUT */
     uint32_t set_params; /* bitflags for valid values */
-    /* See comments in struct xen_cppc_para. */
+    /* See comments in struct xen_get_cppc_para. */
     /* IN */
     uint32_t minimum;
     uint32_t maximum;
@@ -490,7 +490,7 @@ struct xen_get_cpufreq_para {
                 struct  xen_ondemand ondemand;
             } u;
         } s;
-        struct xen_cppc_para cppc_para;
+        struct xen_get_cppc_para cppc_para;
     } u;
 
     int32_t turbo_enabled;
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 22 10:52:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 10:52:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089852.1447325 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upPO5-0008Iz-9l; Fri, 22 Aug 2025 10:52:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089852.1447325; Fri, 22 Aug 2025 10: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 1upPO5-0008Iq-6L; Fri, 22 Aug 2025 10:52:49 +0000
Received: by outflank-mailman (input) for mailman id 1089852;
 Fri, 22 Aug 2025 10:52:47 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JeQb=3C=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1upPO3-0008I9-RT
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 10:52:47 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20608.outbound.protection.outlook.com
 [2a01:111:f403:2416::608])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 23649005-7f46-11f0-a32b-13f23c93f187;
 Fri, 22 Aug 2025 12:52:46 +0200 (CEST)
Received: from BN0PR07CA0002.namprd07.prod.outlook.com (2603:10b6:408:141::17)
 by SA0PR12MB4367.namprd12.prod.outlook.com (2603:10b6:806:94::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Fri, 22 Aug
 2025 10:52:42 +0000
Received: from BN1PEPF00004686.namprd03.prod.outlook.com
 (2603:10b6:408:141:cafe::7b) by BN0PR07CA0002.outlook.office365.com
 (2603:10b6:408:141::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.17 via Frontend Transport; Fri,
 22 Aug 2025 10:52:42 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN1PEPF00004686.mail.protection.outlook.com (10.167.243.91) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Fri, 22 Aug 2025 10:52:42 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) 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; Fri, 22 Aug 2025 05:52: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>
X-Inumbo-ID: 23649005-7f46-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uFl2CKCd2RMsm6zLQ39Nm33dfiqGqrkB9ZB5pV0ED6toXltL9y6M03a/KaPIPezL5yBxb3VwR+8HF8YATfFBbYzjda+sxG2ebzUM5vx6X6JGt1YB/hSYhLoux1+Oat0aqyq1iV+vH2CDZtDm8W6uwbvggwxq7NZczNXHwYFhe6CvHL/q4YigB2+ZyLl2burOIB6jeNfDoBdgG42Z/DABBDveMO5inVwTUYLwioYkT4XWiTfzAtyoFPRuaJYCNN2IDn3uhLFUneSpD4NxaeByKK7XxzYHZC+VYpyLfZgNYevfURy/mGWz8eLq25Tv7VOxI2XbhZdTKEOcsdv/xGgXIA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Ea65rT/DwyBU36yPgoQNYnqUqzGgkzRL5+oGvZ7QCIY=;
 b=B3FBw0spx9jMavEfkRg0NO+Q/4/i4K3IW3F3wGrofwUmKJ6GmQcZw/FK4PNdlepAswc5om0++X4qy5eT/xwBdts8bjMSx4d2UMbUx8C0SCPGXzP0/8zFf5wfOVeGIbly4Yl55Lx818zlnTU4+tIKAcypr2LzhAq7lhInww9tNA2YbU3FTpCLDB4iUcAPD7N1wIyo5vb8Za54SwO2exAWxpgjEfT8f8TpG7JO2qOfIBVM+a+0DVZB732m5rUpCBnrZW5bU3wrWdL91QWEDWmngIQswl0SYQCOJI/P9HOdGCQsyFWMAHjjPmyROGtCF2Y7b4L2qwP9hxfVe+SuIqdZIg==
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=Ea65rT/DwyBU36yPgoQNYnqUqzGgkzRL5+oGvZ7QCIY=;
 b=eGhtFjTCOd7tXIpjmedFFyp8wBuCxzQK8Z6wj15ROM6JNF+7wbqoBfmHmnxqbsc4NG62D2NGcPuc9qDyELphcjOnVaz/AUfzUgkBubPPZ6vfdu6mWKaOtaN47VJk3PRMrXf/rik4b9Q3v/mxnCrGzgfW0uo3xxecpOZmiqzvwuQ=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Anthony PERARD
	<anthony.perard@vates.tech>
Subject: [PATCH v7 03/13] tools: fix help info for "xenpm set-cpufreq-cppc"
Date: Fri, 22 Aug 2025 18:52:08 +0800
Message-ID: <20250822105218.3601273-4-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250822105218.3601273-1-Penny.Zheng@amd.com>
References: <20250822105218.3601273-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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN1PEPF00004686:EE_|SA0PR12MB4367:EE_
X-MS-Office365-Filtering-Correlation-Id: a82ab959-c026-42ba-d53e-08dde16a0511
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|82310400026|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?/YB2P3MrvBTOBCcRy+2YE2SCamW8bStiXuxhBTuHEXQIjDV3EFpv5B3OkaZJ?=
 =?us-ascii?Q?cFdecT/yJAnFmaZvJzqlqxCD2ERg+wd7IO6a9uAa7g8ieRfnDBrKfeXEhy1N?=
 =?us-ascii?Q?ee0gQ/7K3MdxqKMibRLeLw6qEkSIpjuElNwwzVd9TJfZ6JxJDyonoE2+iqoR?=
 =?us-ascii?Q?PxjDFWQVWNpivpZ3TogJDOWX1Mqq1eiP08HPIxkJNB2OjM3KK+CC8PmioNXb?=
 =?us-ascii?Q?WclqTS5axM43sx/WJrhFEP1xlZRiiW6P9srcScwqsFV7QkUQQVc8qb5Kon2L?=
 =?us-ascii?Q?hwzeXFu2BxwEOd9DRlbkc7Y4BfZFICE8uB4AF9VcUsvk8UZmLTakBmfK6HpX?=
 =?us-ascii?Q?Z+aGiaiFHfY8xJyPy1GGFZVCyrl75cx1AAmHsrvgL7Efj4+Ahq9eDA8KalMi?=
 =?us-ascii?Q?IFeX8xBYPRPw34RZQ4wxZSh1adR5DNem1sXmHGiL2sBsSXqkVj3mIURZgIhQ?=
 =?us-ascii?Q?0SAkA85kSdabJLDXoRKFmaXgYFr3G9o5AKm+pD6+s/QuzE5RYuwpR1Cuuw4i?=
 =?us-ascii?Q?xv2gpOvey5BQ59XIOpXOmzQLYVWThAuPBucV4Y8ZRkR7mJRfAfwPCvqzAGYK?=
 =?us-ascii?Q?xkB6rcfNCvEkqFt4rbx8v+GUb3O7WGKnkQNqH0pc1dcAuiZfhcVqqdBgF35O?=
 =?us-ascii?Q?AmIWG265HCOMAhAme8+y1tyK4G6g/XWdWHYf9nhntArMEAv8qIxJzZxQr5u8?=
 =?us-ascii?Q?3Zl8BACPjdsWKb5CNxt2ux79by7DXlSc1aqeCYsXywPsn3pP8rxF8eAi3XPN?=
 =?us-ascii?Q?aC9MigTmoQhDGZ7exomgcSL19mFYZf5DQHN62G5sY+dPWVCYd/tvlDxellKq?=
 =?us-ascii?Q?j+/AIy1nN6+m1akf5zcY2Mg2wLz/MczreoqXzxVm7q88Wvxu74NL9zuoHTpO?=
 =?us-ascii?Q?TgA/xo1C8cRl/0McJUufJn1CnBgAVLit45CvbIg3tZxxEwypWYMavd7Uv/1B?=
 =?us-ascii?Q?4Mb6xZ6HxJN6TaKYU06Vm4rXtU+uOzn7Bv4SkxpLdeo8tkmutAAsm1DW4e7I?=
 =?us-ascii?Q?UG2snuHRtYDtmwpjI7DjkL0b3eRVchcoY3caEb2RusfIzaTLXdn4JO5axSNL?=
 =?us-ascii?Q?ZhPpP0jM61fQdk79NRcWyX2ebOLZSnW4yqsuPmbfUlQvjf9oZTs5PoD7IFG5?=
 =?us-ascii?Q?qSndqQT+XlMkcukrBFLrSJz7VpYGntfq6boAKykd6gfD6M1tX2027nHJ3w6l?=
 =?us-ascii?Q?agtD5lEuaHBSB85EoZo2dKrPGTkMhoa62INN9lTcAM1hBq65pLe2WFiGbEmY?=
 =?us-ascii?Q?cbzPMrSG7gOL87naY0gyJpf1Dfe0HjIknLDMbrasACf3M5LugHX08+zQd8C2?=
 =?us-ascii?Q?2wrYvW0lmubehJOKj7r2/mZBQpW25WghewJl4Pt/xb9zkQZr3CcAR9BWZ+LI?=
 =?us-ascii?Q?PEtkzE3mrhfcWKIT14j0QlOoWVSOVjYG/K5HOsl0sSZUQ6g2TS2bqxr1wvmo?=
 =?us-ascii?Q?tZVkmdFC5ZmNf16khdZ3Hyhq04ETgE+0aSAZHgDYTVXwN57hGYsLZ6LCzZBc?=
 =?us-ascii?Q?pa3xOiy43Wo2SG8kFE8ICfeao3wDYfkuUwzP?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Aug 2025 10:52:42.3883
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a82ab959-c026-42ba-d53e-08dde16a0511
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF00004686.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB4367

Change "balance" to "ondemand" in help info for "xenpm set-cpufreq-cppc"

Fixes: 81ce87fc5e36 (xen/cpufreq: rename cppc preset name to "XEN_SYSCTL_CPPC_SET_PRESET_ONDEMAND")
Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v6 -> v7:
- new commit
---
 tools/misc/xenpm.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/misc/xenpm.c b/tools/misc/xenpm.c
index 6ba7cb2302..6b054b10a4 100644
--- a/tools/misc/xenpm.c
+++ b/tools/misc/xenpm.c
@@ -69,7 +69,7 @@ void show_help(void)
             " set-max-cstate        <num>|'unlimited' [<num2>|'unlimited']\n"
             "                                     set the C-State limitation (<num> >= 0) and\n"
             "                                     optionally the C-sub-state limitation (<num2> >= 0)\n"
-            " set-cpufreq-cppc      [cpuid] [balance|performance|powersave] <param:val>*\n"
+            " set-cpufreq-cppc      [cpuid] [ondemand|performance|powersave] <param:val>*\n"
             "                                     set Hardware P-State (HWP) parameters\n"
             "                                     on CPU <cpuid> or all if omitted.\n"
             "                                     optionally a preset of one of:\n"
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 22 10:52:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 10:52:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089854.1447345 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upPO6-0000Ko-Rb; Fri, 22 Aug 2025 10:52:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089854.1447345; Fri, 22 Aug 2025 10: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 1upPO6-0000Kf-OJ; Fri, 22 Aug 2025 10:52:50 +0000
Received: by outflank-mailman (input) for mailman id 1089854;
 Fri, 22 Aug 2025 10:52:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JeQb=3C=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1upPO5-00083s-7S
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 10:52:49 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on2060f.outbound.protection.outlook.com
 [2a01:111:f403:2009::60f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2076029d-7f46-11f0-b898-0df219b8e170;
 Fri, 22 Aug 2025 12:52:41 +0200 (CEST)
Received: from BN0PR07CA0001.namprd07.prod.outlook.com (2603:10b6:408:141::12)
 by LV2PR12MB5967.namprd12.prod.outlook.com (2603:10b6:408:170::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.15; Fri, 22 Aug
 2025 10:52:36 +0000
Received: from BN1PEPF00004686.namprd03.prod.outlook.com
 (2603:10b6:408:141:cafe::b0) by BN0PR07CA0001.outlook.office365.com
 (2603:10b6:408:141::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.19 via Frontend Transport; Fri,
 22 Aug 2025 10:52:36 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN1PEPF00004686.mail.protection.outlook.com (10.167.243.91) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Fri, 22 Aug 2025 10:52:35 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) 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; Fri, 22 Aug 2025 05:52: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>
X-Inumbo-ID: 2076029d-7f46-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xc4E941inJJ7JuW1HQFc3F0dlBAw/g7spJiphxo4gOy9p7IiC/UAgUcZnDxLBUti9hfreUBDMuK1UeLDEchz82xPAoqrmWTNL06/psnJzDMBzlF5Kyl7b+X+tm/MF5MDbFAG4nZzqVNetFKaRby7RV6s0IPfn7C0rCozPO23m2P6Tt//7KDOrxVtMdrpRKDa2ULBltBOaSWz8+x7B/dSU3UklFQJUxffb7b2CGpEq3e28LmyOijdTx4w7dkucgGxxwx75huL8Erolx2nh4TEQNYZQq7FIeiBMoG/mz4Nfe6/IwUknz/RYBHzmsGghnh0fYr99pr4kUQp3hwkd7a8Ng==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=DyTRsXa1nxvOvIAAQRzY/8n0PjB7nBviO5KjvKKii8A=;
 b=Y8KgQ34cKWW1czYC/kK0aJtM7c7SOnS+6sfqOthi0JmVGqI17w9mv6urzK//WAodp2Th7QDkq5iQ2TbTfRZQEyJOJWgNbTklQvOABG5uPhY3e6juyZkoGKDzP8mHgI3nTP9segwXCuxrP9yuDEyqlohEXMaLoEuIxue80IJwGUtw2kKt5shEaVMpwikDfsNNRtrPqKuKAWZxbJB376d7163t8SbnpgsuhbGJ6asnzBlRfK67IgyXNh0yevuB7xw4islIONiCm+JlvzSl/9RD9qLgyPZ2ZbnEx8QrYBxRavaNmDYG4yIFWdrOWN163Osfy02B8GpmprS1Zpc11iwjQQ==
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=DyTRsXa1nxvOvIAAQRzY/8n0PjB7nBviO5KjvKKii8A=;
 b=BpqrKkc4LbkyuwSswOrRsmrjHHjW42HYD01oXT3fmkHY3fOPSTgjmGDs8An2uX336aogIFLROggd0hM1ncAFGaedBWuPeEsu491pcdgGWFF0zzwSnW/AWZhoMK6fIaKa4lHIsXH/3UMJnNtVEJr9okFT1quS4Zsc/N/ONCqzWwU=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.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>
Subject: [PATCH v7 00/13] amd-cppc CPU Performance Scaling Driver
Date: Fri, 22 Aug 2025 18:52:05 +0800
Message-ID: <20250822105218.3601273-1-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN1PEPF00004686:EE_|LV2PR12MB5967:EE_
X-MS-Office365-Filtering-Correlation-Id: 03362aec-0e30-4955-6df4-08dde16a0119
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|82310400026|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?S65i81kCs/B9pDVhArpO931Ctc1iNwQTPq36HgPppXQzARERNmyEoJq6YMS3?=
 =?us-ascii?Q?7Ba2Fr7QPw6vIx55X8unHCjQP/Y4WiRSRnJpm62rbMKAZ9OHtCGDZJZi1L6N?=
 =?us-ascii?Q?OlQyKF49zI3I9miRCbIb9snYXb5T696fKCmk4pzlqMj4MfmjMJD2eaxyG3/F?=
 =?us-ascii?Q?wR0CfU6SkeG7xcBGLPcSde+ifgcFfC8OCDvQMR13Q5kgbuT0laBuPKe+bcT5?=
 =?us-ascii?Q?jzFaa0gM9EfAGWt65xVj2J9u6DtlwI1P0F5DoP5++Snu4/HwLCKd6CGcAvk4?=
 =?us-ascii?Q?yheNcc+msLP82hRs9xgil/VO82Oka5sreMBc/BcuPEjdgkirB/CzNPatTpcz?=
 =?us-ascii?Q?HU75Vvria55mgcH3dGNHd+rQqijSxf/b6asgAYP1RvzUSkj3h581QaFV+M+6?=
 =?us-ascii?Q?ittEzuOYuR5hFS422IONjpfVNmm+rBuUG9Tmoe4WEpT1dFz95JHiUmte3L1i?=
 =?us-ascii?Q?+yxWqiDB0sJpQPi+t0Ex9XCuzlP5E+nLTwR48/og9pfkn1YY0m/Nb6Xzs7eo?=
 =?us-ascii?Q?A06bK3wxMeGH1UGEim1otnuVKhrtCrVr6jc6N4RLZaXiyzFHejj3Pw8H2ipI?=
 =?us-ascii?Q?4N6uAbhG8uzD/H/rsvRWS2YFmtXhrwZ6qsrVDUCaJwdvXKUA/aN7sf4tthzO?=
 =?us-ascii?Q?jyjrDNbj8X0Z5iQUlgqaPuQkwqvFu9l6jpSDyS3r7xFD9hQ/QJXIv6mjBbne?=
 =?us-ascii?Q?5Sk0WN4YuvR9+Ral1HasCD+inug/RbLVNdL0YR6LSt/mZthHLy/AFpZr6X4Z?=
 =?us-ascii?Q?h+HaPbGuwqyqF7ksYs0Dse8dj3aFmu8yhexF14AlVemqOhtBd5lITiOchnoL?=
 =?us-ascii?Q?FqctNwXXAYcJtQ5hpps7/L+CvFf7BWR/124IoEMcJCFrd+51onQOgl750q06?=
 =?us-ascii?Q?voJAPO0der/b1BPkGIkSti113zVbJ4wjdg7RWn1Ttst+Crp46+Xgd+vKtgis?=
 =?us-ascii?Q?Uk0kcDoTRrbp2mwl400JwdYgrYZlZHMSMGMcxWxQ01eg/qUHGcfr7RA/uELv?=
 =?us-ascii?Q?FdoHUSngtqnZddD0pTR7iwZJZYMEMu29Lky00WEGz3V3NOCrSXUaNdWwVxvi?=
 =?us-ascii?Q?Bj85yS/9nwcmizYJtID6CFklDggSTd/lwpHeernMDzL8cPGz1UZCAdLith0D?=
 =?us-ascii?Q?tVHlmmhDBGrDaeCwCZxbHjLAfmdEUJPDcR3HNH9m5CdG7mEeOnpsuIysa0/g?=
 =?us-ascii?Q?/5M3obT4fSqMMQ42pLxpa9jmiuSyqY1MCynBOz/diLkNUmc/SUnS51XWMm2r?=
 =?us-ascii?Q?MKhdVLXv8PyTqO1F1Ev/X2awCpjQXDH7aEwcD71gp+1mx0K2ZiNOlkkSsgY1?=
 =?us-ascii?Q?j6w1BXwfBUVrNBulq+mkUBhGYjnceR0bfHN7RTTGQ2dYQhxCaSEy2KA4z/yF?=
 =?us-ascii?Q?302V4RmGOJ5hrXwirRIlPDQOc0R+l7Iy+lKIRMGuBhLW8gazomB492HsuBQ+?=
 =?us-ascii?Q?p1rpa1POYSfDg1J+t7Ft0NP+/CyCsUdUXof7gXMNL2Ktwrom87GCD6YtTVfl?=
 =?us-ascii?Q?D6EgxzdvtWoNBTF9h0Y5ye668k7nqbwxbhDE?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Aug 2025 10:52:35.7226
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 03362aec-0e30-4955-6df4-08dde16a0119
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF00004686.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV2PR12MB5967

amd-cppc is the AMD CPU performance scaling driver that introduces a
new CPU frequency control mechanism on modern AMD APU and CPU series in
Xen. The new mechanism is based on Collaborative Processor Performance
Control (CPPC) which provides finer grain frequency management than
legacy ACPI hardware P-States. Current AMD CPU/APU platforms are using
the ACPI P-states driver to manage CPU frequency and clocks with
switching only in 3 P-states. CPPC replaces the ACPI P-states controls
and allows a flexible, low-latency interface for Xen to directly
communicate the performance hints to hardware.

amd_cppc driver has 2 operation modes: autonomous (active) mode,
and non-autonomous (passive) mode. We register different CPUFreq driver
for different modes, "amd-cppc" for passive mode and "amd-cppc-epp"
for active mode.

The passive mode leverages common governors such as *ondemand*,
*performance*, etc, to manage the performance tuning. While the active mode
uses epp to provides a hint to the hardware if software wants to bias
toward performance (0x0) or energy efficiency (0xff). CPPC power algorithm
in hardware will automatically calculate the runtime workload and adjust the
realtime cpu cores frequency according to the power supply and thermal, core
voltage and some other hardware conditions.

amd-cppc is enabled on passive mode with a top-level `cpufreq=amd-cppc` option,
while users add extra `active` flag to select active mode.

With `cpufreq=amd-cppc,active`, we did a 60s sampling test to see the CPU
frequency change, through tweaking the energy_perf preference from
`xenpm set-cpufreq-cppc powersave` to `xenpm set-cpufreq-cppc performance`.
The outputs are as follows:
```
Setting CPU in powersave mode
Sampling and Outputs:
  Avg freq      580000 KHz
  Avg freq      580000 KHz
  Avg freq      580000 KHz
Setting CPU in performance mode
Sampling and Outputs:
  Avg freq      4640000 KHz
  Avg freq      4220000 KHz
  Avg freq      4640000 KHz

Penny Zheng (13):
  tools: drop "has_num" condition check for cppc mode
  cpufreq: rename "xen_cppc_para" to "xen_get_cppc_para"
  tools: fix help info for "xenpm set-cpufreq-cppc"
  xen/cpufreq: add missing default: case for x86 vendor
  xen/cpufreq: refactor cmdline "cpufreq=xxx"
  xen/cpufreq: introduce new sub-hypercall to propagate CPPC data
  xen/cpufreq: introduce "cpufreq=amd-cppc" xen cmdline and amd-cppc
    driver
  xen/cpufreq: implement amd-cppc driver for CPPC in passive mode
  xen/cpufreq: implement amd-cppc-epp driver for CPPC in active mode
  xen/cpufreq: get performance policy from governor set via xenpm
  tools/cpufreq: extract CPPC para from cpufreq para
  xen/cpufreq: bypass governor-related para for amd-cppc-epp
  xen/cpufreq: Adapt SET/GET_CPUFREQ_CPPC xen_sysctl_pm_op for amd-cppc
    driver

 docs/misc/xen-command-line.pandoc         |  14 +-
 tools/include/xenctrl.h                   |   5 +-
 tools/libs/ctrl/xc_pm.c                   |  69 +-
 tools/misc/xenpm.c                        | 104 ++-
 xen/arch/x86/acpi/cpufreq/Makefile        |   1 +
 xen/arch/x86/acpi/cpufreq/amd-cppc.c      | 774 ++++++++++++++++++++++
 xen/arch/x86/acpi/cpufreq/cpufreq.c       |  76 ++-
 xen/arch/x86/acpi/cpufreq/hwp.c           |   2 +-
 xen/arch/x86/cpu/amd.c                    |   8 +-
 xen/arch/x86/include/asm/amd.h            |   2 +
 xen/arch/x86/include/asm/msr-index.h      |   6 +
 xen/arch/x86/platform_hypercall.c         |  19 +
 xen/arch/x86/x86_64/cpufreq.c             |  19 +
 xen/arch/x86/x86_64/platform_hypercall.c  |   3 +
 xen/drivers/acpi/pm-op.c                  |  48 +-
 xen/drivers/acpi/pmstat.c                 |   4 +
 xen/drivers/cpufreq/cpufreq.c             | 204 +++++-
 xen/drivers/cpufreq/utility.c             |  15 +
 xen/include/acpi/cpufreq/cpufreq.h        |  28 +-
 xen/include/acpi/cpufreq/processor_perf.h |  14 +-
 xen/include/public/platform.h             |  26 +
 xen/include/public/sysctl.h               |  15 +-
 xen/include/xen/pmstat.h                  |   5 +
 xen/include/xlat.lst                      |   1 +
 24 files changed, 1368 insertions(+), 94 deletions(-)
 create mode 100644 xen/arch/x86/acpi/cpufreq/amd-cppc.c

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 22 10:52:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 10:52:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089851.1447316 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upPO2-00084O-1E; Fri, 22 Aug 2025 10:52:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089851.1447316; Fri, 22 Aug 2025 10:52:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upPO1-00084H-SZ; Fri, 22 Aug 2025 10:52:45 +0000
Received: by outflank-mailman (input) for mailman id 1089851;
 Fri, 22 Aug 2025 10:52:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JeQb=3C=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1upPO0-00083s-Iw
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 10:52:44 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20626.outbound.protection.outlook.com
 [2a01:111:f403:2415::626])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 20ca5261-7f46-11f0-b898-0df219b8e170;
 Fri, 22 Aug 2025 12:52:42 +0200 (CEST)
Received: from BN9P221CA0027.NAMP221.PROD.OUTLOOK.COM (2603:10b6:408:10a::21)
 by IA1PR12MB6577.namprd12.prod.outlook.com (2603:10b6:208:3a3::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.21; Fri, 22 Aug
 2025 10:52:38 +0000
Received: from BN1PEPF00004685.namprd03.prod.outlook.com
 (2603:10b6:408:10a:cafe::70) by BN9P221CA0027.outlook.office365.com
 (2603:10b6:408:10a::21) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.18 via Frontend Transport; Fri,
 22 Aug 2025 10:52:38 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN1PEPF00004685.mail.protection.outlook.com (10.167.243.86) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Fri, 22 Aug 2025 10:52:37 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) 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; Fri, 22 Aug 2025 05:52:35 -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>
X-Inumbo-ID: 20ca5261-7f46-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bOM+OK6mTv3YVYdNvU5TI3zGg2YGNtQLXJE/zH0dz5hI7LmUq3miRHewJdtFuUYJzdsP0WONL6aybHDHEkBchqZLwrvnQdz2thuRg8RrqkCURCiC0nhHuszPAQQ9CfnetyKbWQaMtDTV3MnrBdli7Uaq0noX6NfZQ3Y7/5JVyiT1rb6ckPNN+xbgJrM/TvgqQMCsAFMg9/HEhA2srhgu5Z2YdBA23D+kKpsZwUU5RmHfRtmVfDGBBhgIivh5cmtH4ksNnwM+PIMTAnzQzJay/i400xZNaITvutD7gMPdPpR8JYLU+y4WG0QokvYJyYEJeWAZEURc4G74AZZrPhzvHg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7eH/jkTHsefwa7S1Y7DsPs08pvFQTnoxyzgg34DHQ+4=;
 b=wJJBs+AxdsKnlmDCJ5wyxDUGjhTvEApmsQucKhVRLxY/Ce62f9z1NzAi7pBPeqzmpLxzWVo9Twaubqe2mQRHYkT/2xQSv03yG43Nj9aMroek+40UlmN4yzPCseBs2fmG87rTO69D7BxYxKmGKk0HzEPtG+uam8ppyvvSho+rdrXvNGy4oPH8A6Q8shUPsmwHkcJQrBQBeO4jpL/YrkAq6aEHjZLtuIio0xZmSQBjPR1RKqeUUWFrux7wVY31ijXXkqmbgWlA0Ag6iw1bs15fc4uV/wtkzTvFAEUiXE/rXVLBX4ZiC2L9WCO0g6SLDdk2TRD4QU8w6N5ITxQhOu5LdQ==
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=7eH/jkTHsefwa7S1Y7DsPs08pvFQTnoxyzgg34DHQ+4=;
 b=4VoouHyXeOx8cVUzbZDjGzIeeDnD1ncxicjQsNAJJuoADvM7T1aqXi3nxS8eYZH5hJHDDS7h+BJt1lsf/vBpgtyz7aVYZbsH0AhjaSf8vo9xnFndquoVTGzRIkMzjwk8LHj7b3ux17z8C5k51MauWPJ6BvMZaEhNES92ZiE6K7c=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, Jan Beulich
	<jbeulich@suse.com>
Subject: [PATCH v7 01/13] tools: drop "has_num" condition check for cppc mode
Date: Fri, 22 Aug 2025 18:52:06 +0800
Message-ID: <20250822105218.3601273-2-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250822105218.3601273-1-Penny.Zheng@amd.com>
References: <20250822105218.3601273-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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN1PEPF00004685:EE_|IA1PR12MB6577:EE_
X-MS-Office365-Filtering-Correlation-Id: f60bc6de-b8c5-4987-36d2-08dde16a0242
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|82310400026|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?BnhvUBKhViLYt1S2TpRf0DeUOfVnkJPKd1GXlC17La1YcJ+4Wknl5IUBBRL5?=
 =?us-ascii?Q?sNdp0tnbZx1Dkl/o6FXwm9HSa8D5yrIjzra8OyecqBmpH348uSpXW0ZJLSGL?=
 =?us-ascii?Q?OrKaC8cKDP9eNoLQvgd6pBrj/KYC/94qhJy+0T4s4w/IHOSo537r2LYcNODj?=
 =?us-ascii?Q?OTvhagu3FCL8VDtWPy7yP2AgA07nrFc/sF5lKslHlmRtatrX3e172uPJb5lX?=
 =?us-ascii?Q?jeqLEAFU/AJhKg0ChR+xZjaADXmiiUF5T7/G1XPRocW5rzDv1v3HHCEUxzEu?=
 =?us-ascii?Q?tAS9b8/yr+Pr80P59JM/YfmWd2eKiJ/dyGJyaiJsUH23VY8tHXxBfa89qIae?=
 =?us-ascii?Q?+xYlyE1E5FGrmSVDp1Iyz9ejSZZArmS8nA0EbcBFD1OYRVTxD4cY0a0ctRtp?=
 =?us-ascii?Q?4zQSyB4BWHivlc/jRTeg0rnqmgf+nwrv4S7K6amPRXMraCSSq6YnIdEwT+WS?=
 =?us-ascii?Q?9qxM3Ifc0uxRPwwNeE6ywquaFWueKvv753eISDSfN6Y6B7wiDuTxYzGUbeAI?=
 =?us-ascii?Q?Cp+uf1NuXsJvcyZo3XyMLlib8+pJRd+1KFb5x94QhWA9gy1XT+5p3jOegrCC?=
 =?us-ascii?Q?CyYNvTiF1Tta6BySKR5avBtaOt3dXc31oA9VzEY46ocJJkA2Benz+QHibG0t?=
 =?us-ascii?Q?PqYxECqZIkQYjchnM26nwIACdyB6pUZNLvZTUpWhRYjOyuG5n+sZMQq/sKQB?=
 =?us-ascii?Q?cvVi45FAcPj/737CCqSx8RkqELDgngJv7mEdstun9AFG3sv54nfsFs4Zm3xD?=
 =?us-ascii?Q?T5KP+/AuLqvLFSFbEyL7Z95OnCemgcIWoiHo21dOBMKPd5zkr+vnJIZvEB5z?=
 =?us-ascii?Q?jIsor9cjahS+Ba6iNmFiTUreIgKb7dVuJn5dvAz/xLV6atnBvpBBYAjB0c6C?=
 =?us-ascii?Q?//u1YPh5VozwapAHN1hFyeqUHeLOZom4UgH/N8+YEy8Wof50u3SHA885CrRG?=
 =?us-ascii?Q?32L9OmPModgdWRs8JoqLZTJ9Fiqq9EsmeZ73ZCuTGRNUFjilsheqJQqyj9LT?=
 =?us-ascii?Q?S9cECiFQHeMYxpldunjLXZlOoH5hVHjnvZ2wzIQITFRJWjCSRMq8z+XcMpGk?=
 =?us-ascii?Q?qKkvdKPiLbXbuuQpyUWkDNO0DnslriCbtHFSigU6EJFOjjFT6/JpiUAp13Jf?=
 =?us-ascii?Q?AjHSlkA8iih6vv7OoB+wKCLxOysoNNyj5z/ArRWvyemH5VbjBIhvBl5rjnsk?=
 =?us-ascii?Q?qpuLdt+p6GGnreJih9zd1lf12TkqL8bSlmV3c5N1Vu8yDGhi8l4bnq2ZuPMD?=
 =?us-ascii?Q?lf6kAQw5UMK4zsIfij3Gmw7ty5yOkWYwfubc6NZ87M5f+UXeiuoM2OqWYSG5?=
 =?us-ascii?Q?K+dPxxGzOpl5ry+bgD3NRkCooq0BpKe44wVSEd7SZNX21Sg/65cYUBxHQrDT?=
 =?us-ascii?Q?G6UZWB7pedSsvcxr7SwubwBJXDvbo5IdnpNdBC3EQoxwA4OSRWQRhMzmrzdn?=
 =?us-ascii?Q?MvQk147vpeGsUAByYUriqYXb/nzrLGi+8iqQWNu55bnUOFq5iUCdNU0xtk4z?=
 =?us-ascii?Q?PTqKlz5/f1YdSji0KCcV/ScIdqpQ3frLmpyQ?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Aug 2025 10:52:37.6729
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f60bc6de-b8c5-4987-36d2-08dde16a0242
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF00004685.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6577

In `xenpm get-cpufreq-para <cpuid>`, ->freq_num and ->cpu_num checking are
tied together via variable "has_num", while ->freq_num only has non-zero value
when cpufreq driver in legacy P-states mode.

So we drop the "has_num" condition check, and mirror the ->gov_num check for
both ->freq_num and ->cpu_num in xc_get_cpufreq_para().

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>
---
v3 -> v4:
- drop the "has_num" condition check
---
v4 -> v5:
- refactor title and commit
- make all three pieces (xc_hypercall_bounce_pre()) be as similar as possible
---
v5 -> v6:
- move set_xen_guest_handle() up to the bottom of the identical conditional
---
 tools/libs/ctrl/xc_pm.c | 41 +++++++++++++++++++++--------------------
 1 file changed, 21 insertions(+), 20 deletions(-)

diff --git a/tools/libs/ctrl/xc_pm.c b/tools/libs/ctrl/xc_pm.c
index 1f2430cac2..6fda973f1f 100644
--- a/tools/libs/ctrl/xc_pm.c
+++ b/tools/libs/ctrl/xc_pm.c
@@ -210,33 +210,36 @@ int xc_get_cpufreq_para(xc_interface *xch, int cpuid,
     DECLARE_NAMED_HYPERCALL_BOUNCE(scaling_available_governors,
 			 user_para->scaling_available_governors,
 			 user_para->gov_num * CPUFREQ_NAME_LEN * sizeof(char), XC_HYPERCALL_BUFFER_BOUNCE_BOTH);
-    bool has_num = user_para->cpu_num && user_para->freq_num;
 
-    if ( has_num )
+    if ( (user_para->cpu_num && !user_para->affected_cpus) ||
+         (user_para->freq_num && !user_para->scaling_available_frequencies) ||
+         (user_para->gov_num && !user_para->scaling_available_governors) )
+    {
+        errno = EINVAL;
+        return -1;
+    }
+    if ( user_para->cpu_num )
     {
-        if ( (!user_para->affected_cpus)                    ||
-             (!user_para->scaling_available_frequencies)    ||
-             (user_para->gov_num && !user_para->scaling_available_governors) )
-        {
-            errno = EINVAL;
-            return -1;
-        }
         ret = xc_hypercall_bounce_pre(xch, affected_cpus);
         if ( ret )
             return ret;
+        set_xen_guest_handle(sys_para->affected_cpus, affected_cpus);
+    }
+    if ( user_para->freq_num )
+    {
         ret = xc_hypercall_bounce_pre(xch, scaling_available_frequencies);
         if ( ret )
             goto unlock_2;
-        if ( user_para->gov_num )
-            ret = xc_hypercall_bounce_pre(xch, scaling_available_governors);
+        set_xen_guest_handle(sys_para->scaling_available_frequencies,
+                             scaling_available_frequencies);
+    }
+    if ( user_para->gov_num )
+    {
+        ret = xc_hypercall_bounce_pre(xch, scaling_available_governors);
         if ( ret )
             goto unlock_3;
-
-        set_xen_guest_handle(sys_para->affected_cpus, affected_cpus);
-        set_xen_guest_handle(sys_para->scaling_available_frequencies, scaling_available_frequencies);
-        if ( user_para->gov_num )
-            set_xen_guest_handle(sys_para->scaling_available_governors,
-                                 scaling_available_governors);
+        set_xen_guest_handle(sys_para->scaling_available_governors,
+                             scaling_available_governors);
     }
 
     sysctl.cmd = XEN_SYSCTL_pm_op;
@@ -256,9 +259,7 @@ int xc_get_cpufreq_para(xc_interface *xch, int cpuid,
             user_para->gov_num  = sys_para->gov_num;
         }
 
-        if ( has_num )
-            goto unlock_4;
-        return ret;
+        goto unlock_4;
     }
     else
     {
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 22 10:52:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 10:52:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089855.1447355 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upPOA-0000eD-9G; Fri, 22 Aug 2025 10:52:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089855.1447355; Fri, 22 Aug 2025 10:52:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upPOA-0000e0-5O; Fri, 22 Aug 2025 10:52:54 +0000
Received: by outflank-mailman (input) for mailman id 1089855;
 Fri, 22 Aug 2025 10:52:52 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JeQb=3C=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1upPO8-00083s-Fn
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 10:52:52 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on2062a.outbound.protection.outlook.com
 [2a01:111:f403:200a::62a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 25b228d7-7f46-11f0-b898-0df219b8e170;
 Fri, 22 Aug 2025 12:52:50 +0200 (CEST)
Received: from BN0PR07CA0022.namprd07.prod.outlook.com (2603:10b6:408:141::14)
 by BN5PR12MB9510.namprd12.prod.outlook.com (2603:10b6:408:2ac::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.17; Fri, 22 Aug
 2025 10:52:46 +0000
Received: from BN1PEPF00004686.namprd03.prod.outlook.com
 (2603:10b6:408:141:cafe::ae) by BN0PR07CA0022.outlook.office365.com
 (2603:10b6:408:141::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.18 via Frontend Transport; Fri,
 22 Aug 2025 10:52:46 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN1PEPF00004686.mail.protection.outlook.com (10.167.243.91) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Fri, 22 Aug 2025 10:52:46 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) 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; Fri, 22 Aug 2025 05:52:44 -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>
X-Inumbo-ID: 25b228d7-7f46-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nLCkSb2lujBBME2a0xHV/vMaovh0k496xZQGdS4Jy1kwbkqrL0T/KndqpjQm8EKnQZKTw4qonw1rdIa09W7le+G5O40OgsnBUuflFlgihp+zoBlN5baci4lWFkv4pBA9tBybjiPr/W7JD6fGsODE8fual3yYksg4E+zJGMHtH/goeSmpsMvCdhbBJmnvKxSVljyTZLbegT/9v+SyhERmT8ZpXWqMcfPiPgihoW33PZZs9lZOC/wx3GSKYLgXEWNCCqy6L1/smUY1UgxJp+d0xZNrYMTU5lS5WvnQGEP3SOy/TPPqLM6XJXjMiFQJP3+znkuM4RNabVKXgFbh/8Wkew==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=D2XK2lTZ2SBex3RziRQL8HeksHeSo3yOclpXyhaZDEU=;
 b=x08bx9z73OwhAwkmYu4CE5j9CZPX+SRU5bN/Q4WYoRCEiqWW28HEmrfo9pGaB9Fq0Ztuz7qMpfDvY3SyBvb0BXvVga/xUxW9wOiUhnnWiZ5PP2DUdJ8X4LrlNTc7EtLLVA39s9V8BK2tP58xFs+gmCgFVH4ij5+JWUqYzk2uMrBIbCnBO3D0wtSAZj182HMLMhVhSdpZYOcyUCbn12V0hdrHpwORF9iIK5eA9CUjeWigY6XaxMqWsgndlnyLbtZqw/aHj2wH+3mQ6J4zLmf2l4N9TSjdWLJvIzv6arombk9vxTIBKzBlRsZzUBTdzN+F/24lN0/o4QIvUE8TpS2RmQ==
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=D2XK2lTZ2SBex3RziRQL8HeksHeSo3yOclpXyhaZDEU=;
 b=HU+yZi8klrOUFy9TmiJMhvX+tX1U0WgisgcJMdDg9ZRdbOOh4kgh9IKGLIbfaTIbLfDXOu0EIVYfRAzOIn03LXOMcUpJLlcJYD8QRLK7tU2SnzYA04YD8xd67JyycVHi5yRpJ0h7fHpX/pnOQZJ6AqXjz9kK0C2OxATW/kIC+/I=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Jan Beulich
	<jbeulich@suse.com>
Subject: [PATCH v7 05/13] xen/cpufreq: refactor cmdline "cpufreq=xxx"
Date: Fri, 22 Aug 2025 18:52:10 +0800
Message-ID: <20250822105218.3601273-6-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250822105218.3601273-1-Penny.Zheng@amd.com>
References: <20250822105218.3601273-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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN1PEPF00004686:EE_|BN5PR12MB9510:EE_
X-MS-Office365-Filtering-Correlation-Id: dd32c5e6-0779-4709-5739-08dde16a0773
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|82310400026|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?mQu4Z371crSqK/+0ZkgpBKGVTX2tkTzqkNwoQoWurI4pDC9JOCnzizvNSz78?=
 =?us-ascii?Q?bXI18/+onbRKTBiPghdVlfu41CgYu56jTv5M9B6lnCjKTn66w/DrI0uYVRGX?=
 =?us-ascii?Q?jzQXvA0COd5ijFmScaa7HfKEKXToKR0bdy+LIzjXOXHlkpSPZJmX69ie37QW?=
 =?us-ascii?Q?n8i/MjrOkiy5KV/pdFp/6bTqsziCvIxeHrlrsMl0wz7GPJJ7T6rPYuNTtn9q?=
 =?us-ascii?Q?GQNNx525+lAqQ901vB0wjdPw2Nc02KPQitSQK4p1Nyc7gwabJ+6lCKdRk3/D?=
 =?us-ascii?Q?xMFkdpnhG/0dYeKMre30mqVrTFOnZCwqUX+jZaeHBCMlvJIgJVd7f8NBRxTb?=
 =?us-ascii?Q?dWmHbKynJIaSWd368IzzENpYTcmgwPYeMwE1ST9IzFVa/kyamP6pqaXOCwpe?=
 =?us-ascii?Q?Fhtk1u6C93T4XnsxxZgwJ9dKn+C5Gpe2jc7Tzlrl3MFnKhEG+BAjVLEsbHbH?=
 =?us-ascii?Q?vTLgTgskZj2XGjeJurfjZant8oyexB7CbJ5sQouiskzUZ1Uvrabw/7GCQNlj?=
 =?us-ascii?Q?QDh03SvS9+WJoH4CKWLAGlrpkYv85qWqbiqA9EjKbnVgpsPniYjNzMkxdk4B?=
 =?us-ascii?Q?YCT2O4e0OwmbBzR6GdBLrUh1LTpXDXzRNdYTKIPYIKxVkiNhLkvklCdEtB4P?=
 =?us-ascii?Q?V28clFX8/IWkIPCm3WYDsX/EuQBim4L8Z1LiXFhA7S1VevsJmFzzV5AvZuqG?=
 =?us-ascii?Q?AIseUNoIaePlbFRwb2rbyhzr41MnRk4hppFkunnG4T+wU4mJnkCqbcMxvomD?=
 =?us-ascii?Q?4OUgvHb0tVXefK5xAsf/u6P+Lwrd/oC+7BX79woumbxH74fQBbOJvhyz7fUF?=
 =?us-ascii?Q?CalCtiIAjQW+mP1M/dd0hTVEndz94K9j+Nz1wY9khIxzrqNTShrtM9xaAS0I?=
 =?us-ascii?Q?nyiSTmKXEYvPRxPsVjagP+h0hxxL6+bCKMR9/VmtBvZNmrvpefC/Fch/L29V?=
 =?us-ascii?Q?M8QYhjzXgjdALD3an3ccqrgbf9jrcCqxikQWlkUDjTtZvTQgQuV6tVKbLuY6?=
 =?us-ascii?Q?HnEfGB2rxJdeFQZQCedF+EqttkFeVcHZkWDr1+9Xssillz3mWrfNRQorqIaA?=
 =?us-ascii?Q?wVzCYnv8JpsKHVXImi60n4wMWSct8Hv75TQdOf6z6zK1HoNLvlTIh73MNJVt?=
 =?us-ascii?Q?EcAOdScUyltQDPTG22Qff4KrEWKci8FtbDR0bGpWC2LjO4ze0c1Zg9796Sei?=
 =?us-ascii?Q?xi3+ro4N4ffJFFmtBIVBLC/fzW022fM2EX5i7goJsAJac9oO82jMIPAMZFv6?=
 =?us-ascii?Q?Khgz/RyDyLZec2Pc83I3S815fbmQSVp9Tp3Ry3RcdQSLNk6lg7iPM9VbEH4u?=
 =?us-ascii?Q?is24ulsHjhGF3ksAwrhuszMAjEDUHJ8cPTlYEkd3BZb5oq7Q14ySy5WXhXXY?=
 =?us-ascii?Q?mAUyIW5WRTIQeuBzWx6BwnObUdctiOJl7gHJ5ePPMjb/+IJWAYu2kg0I3grv?=
 =?us-ascii?Q?CQ5wvNORy2cUqTScutQROs565kNO+1oEK0Ha6Gc711774GVKgKsx88JkP6Bh?=
 =?us-ascii?Q?PGD/A+id/H4lqhHPWIS2DEGb2bBegIte1O/9?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Aug 2025 10:52:46.3841
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: dd32c5e6-0779-4709-5739-08dde16a0773
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF00004686.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN5PR12MB9510

A helper function handle_cpufreq_cmdline() is introduced to tidy different
handling pathes.
We also add a new helper cpufreq_opts_contain() to ignore redundant setting,
like "cpufreq=hwp;hwp;xen"
As only slot 0 of cpufreq_xen_opts[] needs explicit initializing with
non-zero CPUFREQ_xen, dropping full array initializer could avoid touching
initializer every time it grows

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v2 -> v3:
- new commit
---
v3 -> v4:
- add one single helper to do the tidy work
- ignore and warn user redundant setting
---
v4 -> v5:
- make "cpufreq_opts_str" static and the string literals end up in
  .init.rodata.
- use "CPUFREQ_xxx" as array slot index
- blank line between non-fall-through case blocks
---
v5 -> v6:
- change to "while ( count-- )"
- remove unnecessary warning
- add an assertion to ensure not overruning the array
- add ASSERT_UNREACHABLE()
- check ret of handle_cpufreq_cmdline() and error out
---
v6 -> v7:
- remove overrun assertion as we already have check in setup_cpufreq_option()
- drop full array initializer
---
 xen/drivers/cpufreq/cpufreq.c | 55 +++++++++++++++++++++++++++--------
 1 file changed, 43 insertions(+), 12 deletions(-)

diff --git a/xen/drivers/cpufreq/cpufreq.c b/xen/drivers/cpufreq/cpufreq.c
index efba141418..de17e53708 100644
--- a/xen/drivers/cpufreq/cpufreq.c
+++ b/xen/drivers/cpufreq/cpufreq.c
@@ -64,12 +64,49 @@ LIST_HEAD_READ_MOSTLY(cpufreq_governor_list);
 /* set xen as default cpufreq */
 enum cpufreq_controller cpufreq_controller = FREQCTL_xen;
 
-enum cpufreq_xen_opt __initdata cpufreq_xen_opts[2] = { CPUFREQ_xen,
-                                                        CPUFREQ_none };
+enum cpufreq_xen_opt __initdata cpufreq_xen_opts[2] = { CPUFREQ_xen };
 unsigned int __initdata cpufreq_xen_cnt = 1;
 
 static int __init cpufreq_cmdline_parse(const char *s, const char *e);
 
+static bool __init cpufreq_opts_contain(enum cpufreq_xen_opt option)
+{
+    unsigned int count = cpufreq_xen_cnt;
+
+    while ( count-- )
+    {
+        if ( cpufreq_xen_opts[count] == option )
+            return true;
+    }
+
+    return false;
+}
+
+static int __init handle_cpufreq_cmdline(enum cpufreq_xen_opt option)
+{
+    int ret = 0;
+
+    if ( cpufreq_opts_contain(option) )
+        return 0;
+
+    cpufreq_controller = FREQCTL_xen;
+    cpufreq_xen_opts[cpufreq_xen_cnt++] = option;
+    switch ( option )
+    {
+    case CPUFREQ_hwp:
+    case CPUFREQ_xen:
+        xen_processor_pmbits |= XEN_PROCESSOR_PM_PX;
+        break;
+
+    default:
+        ASSERT_UNREACHABLE();
+        ret = -EINVAL;
+        break;
+    }
+
+    return ret;
+}
+
 static int __init cf_check setup_cpufreq_option(const char *str)
 {
     const char *arg = strpbrk(str, ",:;");
@@ -113,21 +150,15 @@ static int __init cf_check setup_cpufreq_option(const char *str)
 
         if ( choice > 0 || !cmdline_strcmp(str, "xen") )
         {
-            xen_processor_pmbits |= XEN_PROCESSOR_PM_PX;
-            cpufreq_controller = FREQCTL_xen;
-            cpufreq_xen_opts[cpufreq_xen_cnt++] = CPUFREQ_xen;
-            ret = 0;
-            if ( arg[0] && arg[1] )
+            ret = handle_cpufreq_cmdline(CPUFREQ_xen);
+            if ( !ret && arg[0] && arg[1] )
                 ret = cpufreq_cmdline_parse(arg + 1, end);
         }
         else if ( IS_ENABLED(CONFIG_INTEL) && choice < 0 &&
                   !cmdline_strcmp(str, "hwp") )
         {
-            xen_processor_pmbits |= XEN_PROCESSOR_PM_PX;
-            cpufreq_controller = FREQCTL_xen;
-            cpufreq_xen_opts[cpufreq_xen_cnt++] = CPUFREQ_hwp;
-            ret = 0;
-            if ( arg[0] && arg[1] )
+            ret = handle_cpufreq_cmdline(CPUFREQ_hwp);
+            if ( !ret && arg[0] && arg[1] )
                 ret = hwp_cmdline_parse(arg + 1, end);
         }
         else
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 22 10:52:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 10:52:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089856.1447360 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upPOA-0000gi-L4; Fri, 22 Aug 2025 10:52:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089856.1447360; Fri, 22 Aug 2025 10:52:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upPOA-0000fh-EI; Fri, 22 Aug 2025 10:52:54 +0000
Received: by outflank-mailman (input) for mailman id 1089856;
 Fri, 22 Aug 2025 10:52:52 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JeQb=3C=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1upPO8-0008I9-Lk
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 10:52:52 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20600.outbound.protection.outlook.com
 [2a01:111:f403:2413::600])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 25d96aa6-7f46-11f0-a32b-13f23c93f187;
 Fri, 22 Aug 2025 12:52:52 +0200 (CEST)
Received: from BN0PR07CA0027.namprd07.prod.outlook.com (2603:10b6:408:141::29)
 by MN0PR12MB5739.namprd12.prod.outlook.com (2603:10b6:208:372::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Fri, 22 Aug
 2025 10:52:44 +0000
Received: from BN1PEPF00004686.namprd03.prod.outlook.com
 (2603:10b6:408:141:cafe::87) by BN0PR07CA0027.outlook.office365.com
 (2603:10b6:408:141::29) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.18 via Frontend Transport; Fri,
 22 Aug 2025 10:52:44 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN1PEPF00004686.mail.protection.outlook.com (10.167.243.91) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Fri, 22 Aug 2025 10:52:44 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) 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; Fri, 22 Aug 2025 05:52:42 -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>
X-Inumbo-ID: 25d96aa6-7f46-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=SqdlgndB8GcEaVBOQb4lqxvmhxRmI1InBSbX3y0A27DYwgnCPVwz6TIqEia94i49TTevHHA8n6vhyb1hiZa0JbI4wk30o00/mvDmPfXcXCD245z0M9+TA44vezEIdWCEvRPBChq4E7WBeVmfU/kRq/fpjIvkiwNNd6wVU7Hn65Ylw4SrGZ2NwozxyAvHUTYV1h2LgM/ia7PBhCAX7Qm0M/6MskNnzs5lF3GmALwWYWn3Y/Z7fFWzPiFP3UKNwM7WetThr88B/P6dQYhpDMP9A5wRd6A4cyQXjye3zKiT+Sde4QdIlAdQg8IDBXvoe9CxHlnzGSmRjgUOfgDBNHqg/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=F93un5lAfvv0KNInBafr37fvQ4Y29SHKknyVE0PvlwA=;
 b=x71/hnKhv8jck8cSVMlI+a9wBmJyI+Igzas9oLTVBPXi4CrhmBeKWVZPhMgQgW3CLVDGJEWdeTIrjcvlOUHJol83UQPD0QgiKyl/yZ6Hm4lyN1jVOuAU06+Jnf0XSe8tXD4OTP8+65VjUv9uhn19Xr7sAK0T7gtgnaKkoqXI3SWT2kFqne1wJVI9O59f0rMxw8g5fLztOsvXPmgwkMYpAzaedA46Q5NSNCKAKTtSUAIsJ5cPmzhySU0bBRrseEZXlAPBuzAwl8mOKpWAZf8/oIXN9y3gF+3xDjruwhczTYSxm5/1pgXxFEjrfEMP4EN5xY9/XtB1Pfsd68slIYiILA==
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=F93un5lAfvv0KNInBafr37fvQ4Y29SHKknyVE0PvlwA=;
 b=NaeYPtGDAkWsMUIlLb+3JKfVQfKfRJIhuhXK0OC0aBw1abFyq3wpRYs7Z7mt3wG5THnZClcZkuk4S8oI60gqvo97WlmgQK7WMNUQdk8QT5fTeDOspPFyTVkZE0pkRN6jLYuGY1+DBn/LrNBNHXvNxlFzlrc0OjiI1SSj9o2lCvs=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v7 04/13] xen/cpufreq: add missing default: case for x86 vendor
Date: Fri, 22 Aug 2025 18:52:09 +0800
Message-ID: <20250822105218.3601273-5-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250822105218.3601273-1-Penny.Zheng@amd.com>
References: <20250822105218.3601273-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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN1PEPF00004686:EE_|MN0PR12MB5739:EE_
X-MS-Office365-Filtering-Correlation-Id: a53edcfd-c854-4e60-925b-08dde16a063d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?JRTnxfHxibu4pP22JqfoY2WxV+g7GHL74fuq5yTVHzKV31sfR6Ligu8Ssvuk?=
 =?us-ascii?Q?OIBiu0wSx9iSgq5dPk6uZKaNfulteeZmqfGDJlouBGBNT5XbCIxI3b77G9qA?=
 =?us-ascii?Q?lmxB/df6MXfQ8/t9Y5Po4saOIPX9DdmKx+2eMWaAtbC7W5O1uCN2WXErit4A?=
 =?us-ascii?Q?pvtac02mT0YqBxn0dr38ASwEU2K+9YvDIoy8mFceOqUCJYGUhcTKk9bd65pC?=
 =?us-ascii?Q?2KapTcd8RfOhs7ilDo+Ul7Sd91x6hfq1C3YWct+ggd8fW8jyYYiWLPPySkp1?=
 =?us-ascii?Q?7SdINda2pl88onP+PQPWOtouaokSJlLTlJv8zyDceUKHRTMmeOj3OWVequhf?=
 =?us-ascii?Q?AoRIgqNrrRkdv23Nvi88tmXEHqpXepHwu23OmIG8CyIB21S6oB5t6yfTr2Vg?=
 =?us-ascii?Q?sAAmy5LmbgTEUJ7gC6yxsSpOMVdH9SEQrrEgnp9pocT/XnPNENc7S5H5Qgnc?=
 =?us-ascii?Q?1vUW0qRWC89KbGsrWDFiAn6nNZqQXb5cIRkjDg1HH+2iMdjp4ieY0LpOuz6y?=
 =?us-ascii?Q?mh7w2iraVUyPUJeFQDdEk/PCDFvsvhKlU0gbaBzcwcPAlOczh326XetfmwP0?=
 =?us-ascii?Q?U+1qjs7fM0oEam6cz4cW1e8XZTbNbGbh+3K1fvwNkbM9gcPGyN9PMMh61psm?=
 =?us-ascii?Q?JbFISUufAUhsQsmUCZWoLXmNT2x+ofDOkvS1neoBs/upJE2T68lHpJ8wh5Rk?=
 =?us-ascii?Q?WKNzYfdKBhAP5aQgOn671lVgsE2XfvkMf/5zqmPvf9Ghsjoy1afMV8F58Wce?=
 =?us-ascii?Q?2r/DwWBkqE3qJfH+OiUGaVW/aMIlfL4NhOVEVKmZNuszaWqh9mB4+jYhQ5Cl?=
 =?us-ascii?Q?H0U+5B0J/EA6CL9gRrUIsYyxuYG82IAAMSYQkYj5MPaeiAK5FUD/AkxIbONn?=
 =?us-ascii?Q?hxthgsS+UwGDBJECOBWPo9FGix7mQdb/XXhVcLlKfOo0ggFfYTgXD32WGmmC?=
 =?us-ascii?Q?9siTkeNCoFiTSrQNlq83XxTuPwOF7NWZBN+QqP5lEQQapc5g/AVqmenjCEMu?=
 =?us-ascii?Q?gAKeP7CvbREqKibfqs5xqqlRhb+JuHajC/0fei/kvYldY6lCFsbDoWbtbN+v?=
 =?us-ascii?Q?lEf1U1hfN5ASg4UfjNJgOyKycmML+HMHii1U1glaG6Viem65R2SgT4L3xYQ2?=
 =?us-ascii?Q?dVkGCxrT3Xt9piWNs2r8MhIF3xgm/3q/Wc/yqp3BKV2sXJBgqSI4Z6Gzv577?=
 =?us-ascii?Q?ULVjAa0pJN2uzZFRdxbiO6/tugRQ/ZO/epb1H7LW9R4g8ceN65EFFRai52Fz?=
 =?us-ascii?Q?rDqpZ3izMf5uHCtS3itp8sLYejRmC5ond0WlUSk+mjqtWfkmXRLT2mdKDOrb?=
 =?us-ascii?Q?u5Xqrc4KKtSdp8rhOOeZVMHITtmLddQr5Z74hUrPg2QIyyNyvsFgUv4k3PGr?=
 =?us-ascii?Q?bLMb5BvWLNoywDIqc07QDecQ5j1rgYTyvP9JQCcEhQAtAwzQ0yNlTLh4kLex?=
 =?us-ascii?Q?+D1vYPhzHG50H6JptefpqnVDITkaXTJIsGYAT8DCzv5TrINHSb+M8yE2FO8c?=
 =?us-ascii?Q?LKIyXOWstovdPhE/sviV9iSD6aopr/C3aLs2?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(376014)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Aug 2025 10:52:44.3520
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a53edcfd-c854-4e60-925b-08dde16a063d
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF00004686.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB5739

Since we are missing default case for x86 vendor, there is possibility (i.e.
new vendor introduced) that we will return successfully while missing the
whole cpufreq driver initialization process.
Move "ret = -ENOENTRY" forward to cover default case for x86 vendor, and
add error log

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v6 -> v7:
- new commit
---
 xen/arch/x86/acpi/cpufreq/cpufreq.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/acpi/cpufreq/cpufreq.c b/xen/arch/x86/acpi/cpufreq/cpufreq.c
index d18735c7ae..e227376bab 100644
--- a/xen/arch/x86/acpi/cpufreq/cpufreq.c
+++ b/xen/arch/x86/acpi/cpufreq/cpufreq.c
@@ -131,11 +131,11 @@ static int __init cf_check cpufreq_driver_init(void)
 
     if ( cpufreq_controller == FREQCTL_xen )
     {
+        ret = -ENOENT;
+
         switch ( boot_cpu_data.x86_vendor )
         {
         case X86_VENDOR_INTEL:
-            ret = -ENOENT;
-
             for ( unsigned int i = 0; i < cpufreq_xen_cnt; i++ )
             {
                 switch ( cpufreq_xen_opts[i] )
@@ -162,6 +162,10 @@ static int __init cf_check cpufreq_driver_init(void)
         case X86_VENDOR_HYGON:
             ret = IS_ENABLED(CONFIG_AMD) ? powernow_register_driver() : -ENODEV;
             break;
+
+        default:
+            printk(XENLOG_ERR "Cpufreq: unsupported x86 vendor\n");
+            break;
         }
     }
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 22 10:53:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 10:53:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089860.1447375 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upPOG-0001Nj-Qg; Fri, 22 Aug 2025 10:53:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089860.1447375; Fri, 22 Aug 2025 10:53:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upPOG-0001NU-Mv; Fri, 22 Aug 2025 10:53:00 +0000
Received: by outflank-mailman (input) for mailman id 1089860;
 Fri, 22 Aug 2025 10:52:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JeQb=3C=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1upPOF-0008I9-Jo
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 10:52:59 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on20616.outbound.protection.outlook.com
 [2a01:111:f403:2406::616])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2a04f125-7f46-11f0-a32b-13f23c93f187;
 Fri, 22 Aug 2025 12:52:58 +0200 (CEST)
Received: from BN0PR07CA0024.namprd07.prod.outlook.com (2603:10b6:408:141::33)
 by IA0PR12MB7700.namprd12.prod.outlook.com (2603:10b6:208:430::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.24; Fri, 22 Aug
 2025 10:52:53 +0000
Received: from BN1PEPF00004686.namprd03.prod.outlook.com
 (2603:10b6:408:141:cafe::57) by BN0PR07CA0024.outlook.office365.com
 (2603:10b6:408:141::33) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.17 via Frontend Transport; Fri,
 22 Aug 2025 10:52:51 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN1PEPF00004686.mail.protection.outlook.com (10.167.243.91) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Fri, 22 Aug 2025 10:52:51 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) 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; Fri, 22 Aug 2025 05: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>
X-Inumbo-ID: 2a04f125-7f46-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Tik8i0nUC+sMUnIYEo6chHcI7PMrVqF5T2nf/2amxvWFhHg+VwTROa3xp3HUmQK6dtTLiUXL7Qi7V+GyZJOSENq7engynaqTnjXAWY/WdXQuY4N+jqonexSyHYrOc4tHz7l285UufN1CxWfXE7l8QUgQGLd4kxwQkKFYa/glPRhaQDKSoOV46JbiDXyBd6PW6x/MYNzwLnscZTAWi8HykO9bIPLnUsYmObPXxG8Ozz0AhO/M6ANHNbbXJFvVDwWKJQt6YcBMv+U3hsC+aL0TT52b7mhdgYr3p2ql7rg5PenFVkDPle6Llp3OA0lbkdoXtT2J6Xx5FYVbmaPgGdQRfA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=190o5OmGcQYaLrmukojhXZJDrFTxn37XH043ILxzkr0=;
 b=t0HaPH+WJgCazlhghoBmIWluguKzMH9Tbg34cKwjNsJz0Svs4vJELAih4p0jcJ+zHvRhgd4kSQ9+1sikLi2G5YO+z/IB2CR+iplpTD3H58fpAsNSfAoggKSAwqCjM0DfX7F4hea1TJI6KaOwWvJQa0LeQay0viqEsCWU0NLgPUy4wdAISiZYEK1PXlS05wZPm6Pvv5zECUfXgD43w0oyFpQ0sZoi3BabmTImHkCchvxZ+t+/vbULeWevexb6YTQ5A6cOuhoiwdAJbO2MAsVa8ReZQsuwMV5/xED49DyZ2JUpumTiZXC3E3kpQKwq2/9dF90P8CVrcoG3tGS+/J9NWg==
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=190o5OmGcQYaLrmukojhXZJDrFTxn37XH043ILxzkr0=;
 b=IiSaNVl1+fawzK/91+3M4O9Lt05T03QkCfl5REfZoOc0XXUDzZRR9+i1c/wd2Im+6iHoIlKuLC0K98s/11BCOQxdi8EUjzRIZa1tjPALRYS5HK7DRDGo0bPZleTg/2UYxQzfqE6ySeukRh1c4Gx4i0BCj8Gws9KDwOuz4F6vxuc=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v7 07/13] xen/cpufreq: introduce "cpufreq=amd-cppc" xen cmdline and amd-cppc driver
Date: Fri, 22 Aug 2025 18:52:12 +0800
Message-ID: <20250822105218.3601273-8-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250822105218.3601273-1-Penny.Zheng@amd.com>
References: <20250822105218.3601273-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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN1PEPF00004686:EE_|IA0PR12MB7700:EE_
X-MS-Office365-Filtering-Correlation-Id: ff19e44d-2bcf-4f33-e1e6-08dde16a0a8e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|376014|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?0dDWzfAcciWUWNZn/8T0p/3OMftXL1Qg7k4xfQoO99A7g+F7Mz0wdknEDBjv?=
 =?us-ascii?Q?lKJ1OMNHk/TM1I+4WSAK/uEgGqHQK7YjW8qq0De3xra62JehWcO1pFe7LcFQ?=
 =?us-ascii?Q?IH7N5s8wiJuSy1cTSnvEthkyBLFsKeO9AzKccjxYjeeOVLBL3NMwD74FJuQ7?=
 =?us-ascii?Q?gA6DygOXYSeIxfN5T8pd1jh85qBdOXPeZyVWdiyZnVBKLo/OIU6qfYd6EiN0?=
 =?us-ascii?Q?sxjugRqFjJlNXx95xWBQGlJfLQauVgpQfud6krkA16lEJXFcEObGx0oUpJ76?=
 =?us-ascii?Q?9HZYCCmbVVgpaqXa4JmX32sobmEI5ypk6LiSpf3j2jHXW22zJp9F6jzh36f5?=
 =?us-ascii?Q?qjGxHNyitNbPGiqTVOitOZnr9xn7qP5WWFVCo/TO243kGOwGb4q2dHs20DKm?=
 =?us-ascii?Q?Jd+gyePDZcMzFC2VF22aMwEDKNSKNPCGlLhH1dWrjL+2jexUw5S27tkL+uPV?=
 =?us-ascii?Q?/3IippnKrFO8xTEEZdw7/8Nx/sl5BdlEcfyEhxSvuzANRuN9tWsloX+iNe/X?=
 =?us-ascii?Q?zhNqenIB0ZjIdI24Ws6Zp4YJP/RRD6O8qEhpwVI8u8VL8D1HIGCcQ0A9ji9Q?=
 =?us-ascii?Q?RD70wd/ApWaudd+DXN0IC8zXyk9rTdz6m4SkhmEcy0SOFBtppeIqXplm0f+1?=
 =?us-ascii?Q?wwajUIcNXPSRF36YXvfm/5FuOLPiP1smE7c9EBxL32bumoNWeRRloNCSjFUC?=
 =?us-ascii?Q?hjh2mgcHL+Dg0mM2PTVJrXegqfSYnEte8KS1SwfkpN05hAu1cI7kIj/J+b04?=
 =?us-ascii?Q?zpVetcrb9IFXjkXPszLD57bGFVrLiPd1dXAV70strjEakn/OUo+nTIs+pl6n?=
 =?us-ascii?Q?2kaNw64nA22slDV88n8GSBMNvVda0AIA8Fffc/J6dHmhGIpve3OGjtxC7NdC?=
 =?us-ascii?Q?wtp5NYHUrGiasazjkJy7HTYjs0+Ti02Nkv9pxcdCEZpVsI7Huhro0hYcRMk/?=
 =?us-ascii?Q?lmMk2L3oXts4cEs78b4w5mAo/jZ/ge3ZNl28xGNcuuw2BwN6hkP7fis2WRGC?=
 =?us-ascii?Q?78QRGMlEAiGs2+a3Wvi4gjvswKjtpZ2v3A39jFdQsNZLMvZhseeyxxPh6H2Y?=
 =?us-ascii?Q?0vcXt5oMpt4rohMm5CJwhs3RsjWiSIfZSz4BOnVcEwSCuxy6VSxM6sO9ZH1P?=
 =?us-ascii?Q?kZjLR3VRNttInEknwikZ2C2xDLETS8L/CJjnbOxpnYPVAyVR9TnSOdThDLuA?=
 =?us-ascii?Q?j3SRZZ9qaS2PzzKdccuZad7LlJzVRzOlBCoOsjsaGDcBG3iyLTejHoDkS3ln?=
 =?us-ascii?Q?iWrDpDvmpFBPYxG+EpbEnMRRNVjq3F/6avr2N5boCjxf4KSqQD7OMo+1EBVA?=
 =?us-ascii?Q?4/K5LUVDuHIlvVmWb5W3WCS+c043TbI9rAMr34dH946QSfMUIn60mJkn1tST?=
 =?us-ascii?Q?mLhNof0rCyCOLizuzeUFcuUcKoHMFqfNbRTn+e5Kn9HvfFZtS/SYYMkwtR4e?=
 =?us-ascii?Q?pj0Tqp1IdqESwXl5Yz/BxOi7piZb1Wbtzb84M6IGJ2IL6I8+iHYw7oQdzZC8?=
 =?us-ascii?Q?0CM98jAhHflwp/BW1kH1WddNMAc+JXXDP+ZA?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Aug 2025 10:52:51.5975
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ff19e44d-2bcf-4f33-e1e6-08dde16a0a8e
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF00004686.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB7700

Users need to set "cpufreq=amd-cppc" in xen cmdline to enable amd-cppc driver,
which selects ACPI Collaborative Performance and Power Control (CPPC) on
supported AMD hardware to provide a finer grained frequency control mechanism.
`verbose` option can also be included to support verbose print.

When users setting "cpufreq=amd-cppc", a new amd-cppc driver
shall be registered and used. All hooks for amd-cppc driver are transiently
missing, and we temporarily make registration fail with -EOPNOTSUPP here. It
will be fixed along with the implementation.

New xen-pm internal flag XEN_PROCESSOR_PM_CPPC is introduced, to stand for
cpufreq driver in CPPC mode. We define XEN_PROCESSOR_PM_CPPC 0x100, as it is
the next value to use after 8-bits wide public xen-pm options. We also add
sanity check on compile time. All XEN_PROCESSOR_PM_xxx checking shall be
updated to consider "XEN_PROCESSOR_PM_CPPC" too.

XEN_PROCESSOR_PM_CPPC and XEN_PROCESSOR_PM_PX are firstly set when Xen parsed
relative driver signature from xen cmdline, and will become exclusive after
cpufreq driver registration. It is because that platform could not support
both or mixed mode (CPPC & legacy Px) operations, and only one cpufreq driver
could be registerd in Xen at one time, such as on AMD, it is either amd-cppc
or legacy P-states driver.
Xen rely on XEN_PROCESSOR_PM_CPPC flag to tell current cpufreq driver is in
CPPC mode, and accepts relative hypercall. It will neglect Px request and
yields success.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v1 -> v2:
- Obey to alphabetic sorting and also strict it with CONFIG_AMD
- Remove unnecessary empty comment line
- Use __initconst_cf_clobber for pre-filled structure cpufreq_driver
- Make new switch-case code apply to Hygon CPUs too
- Change ENOSYS with EOPNOTSUPP
- Blanks around binary operator
- Change all amd_/-pstate defined values to amd_/-cppc
---
v2 -> v3
- refactor too long lines
- Make sure XEN_PROCESSOR_PM_PX and XEN_PROCESSOR_PM_CPPC incompatible flags
after cpufreq register registrantion
---
v3 -> v4:
- introduce XEN_PROCESSOR_PM_CPPC in xen internal header
- complement "Hygon" in log message
- remove unnecessary if()
- grow cpufreq_xen_opts[] array
---
v4 -> v5:
- remove XEN_PROCESSOR_PM_xxx flag sanitization from individual driver
- prefer ! over "== 0" in purely boolean contexts
- Blank line between non-fall-through case blocks
- add build-time checking between internal and public XEN_PROCESSOR_PM_*
values
- define XEN_PROCESSOR_PM_CPPC with 0x100, as it is the next value to use
after public interface, and public mask SIF_PM_MASK is 8 bits wide.
- as Dom0 will send the CPPC/Px data whenever it could, the return value shall
be 0 instead of -ENOSYS/EOPNOTSUP when platform doesn't require these data.
---
v5 -> v6:
- do not register the driver when all hooks are NULL
- refactor the subject and commit message
- move pruning of xen_processor_pmbits into generic space
- add comment and build-time check for XEN_PROCESSOR_PM_CPPC
---
v6 -> v7:
- reomove pointless initializer for "unsigned int i"
- move closing brace into its own line
- insertion always at the bottom
- change to use #ifdef CONFIG_AMD code wrapping
---
 docs/misc/xen-command-line.pandoc         |  7 ++-
 xen/arch/x86/acpi/cpufreq/Makefile        |  1 +
 xen/arch/x86/acpi/cpufreq/amd-cppc.c      | 59 ++++++++++++++++++++
 xen/arch/x86/acpi/cpufreq/cpufreq.c       | 68 ++++++++++++++++++++++-
 xen/arch/x86/platform_hypercall.c         | 14 +++++
 xen/drivers/acpi/pm-op.c                  |  3 +-
 xen/drivers/cpufreq/cpufreq.c             | 13 ++++-
 xen/include/acpi/cpufreq/cpufreq.h        |  6 +-
 xen/include/acpi/cpufreq/processor_perf.h | 10 ++++
 9 files changed, 174 insertions(+), 7 deletions(-)
 create mode 100644 xen/arch/x86/acpi/cpufreq/amd-cppc.c

diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
index a75b6c9301..3916cc81f6 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -515,7 +515,7 @@ If set, force use of the performance counters for oprofile, rather than detectin
 available support.
 
 ### cpufreq
-> `= none | {{ <boolean> | xen } { [:[powersave|performance|ondemand|userspace][,[<maxfreq>]][,[<minfreq>]]] } [,verbose]} | dom0-kernel | hwp[:[<hdc>][,verbose]]`
+> `= none | {{ <boolean> | xen } { [:[powersave|performance|ondemand|userspace][,[<maxfreq>]][,[<minfreq>]]] } [,verbose]} | dom0-kernel | hwp[:[<hdc>][,verbose]] | amd-cppc[:[verbose]]`
 
 > Default: `xen`
 
@@ -526,7 +526,7 @@ choice of `dom0-kernel` is deprecated and not supported by all Dom0 kernels.
 * `<maxfreq>` and `<minfreq>` are integers which represent max and min processor frequencies
   respectively.
 * `verbose` option can be included as a string or also as `verbose=<integer>`
-  for `xen`.  It is a boolean for `hwp`.
+  for `xen`.  It is a boolean for `hwp` and `amd-cppc`.
 * `hwp` selects Hardware-Controlled Performance States (HWP) on supported Intel
   hardware.  HWP is a Skylake+ feature which provides better CPU power
   management.  The default is disabled.  If `hwp` is selected, but hardware
@@ -534,6 +534,9 @@ choice of `dom0-kernel` is deprecated and not supported by all Dom0 kernels.
 * `<hdc>` is a boolean to enable Hardware Duty Cycling (HDC).  HDC enables the
   processor to autonomously force physical package components into idle state.
   The default is enabled, but the option only applies when `hwp` is enabled.
+* `amd-cppc` selects ACPI Collaborative Performance and Power Control (CPPC)
+  on supported AMD hardware to provide finer grained frequency control
+  mechanism. The default is disabled.
 
 There is also support for `;`-separated fallback options:
 `cpufreq=hwp;xen,verbose`.  This first tries `hwp` and falls back to `xen` if
diff --git a/xen/arch/x86/acpi/cpufreq/Makefile b/xen/arch/x86/acpi/cpufreq/Makefile
index e7dbe434a8..a2ba34bda0 100644
--- a/xen/arch/x86/acpi/cpufreq/Makefile
+++ b/xen/arch/x86/acpi/cpufreq/Makefile
@@ -1,4 +1,5 @@
 obj-$(CONFIG_INTEL) += acpi.o
+obj-$(CONFIG_AMD) += amd-cppc.o
 obj-y += cpufreq.o
 obj-$(CONFIG_INTEL) += hwp.o
 obj-$(CONFIG_AMD) += powernow.o
diff --git a/xen/arch/x86/acpi/cpufreq/amd-cppc.c b/xen/arch/x86/acpi/cpufreq/amd-cppc.c
new file mode 100644
index 0000000000..3377783f7e
--- /dev/null
+++ b/xen/arch/x86/acpi/cpufreq/amd-cppc.c
@@ -0,0 +1,59 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * amd-cppc.c - AMD Processor CPPC Frequency Driver
+ *
+ * Copyright (C) 2025 Advanced Micro Devices, Inc. All Rights Reserved.
+ *
+ * Author: Penny Zheng <penny.zheng@amd.com>
+ *
+ * AMD CPPC cpufreq driver introduces a new CPU performance scaling design
+ * for AMD processors using the ACPI Collaborative Performance and Power
+ * Control (CPPC) feature which provides finer grained frequency control range.
+ */
+
+#include <xen/domain.h>
+#include <xen/init.h>
+#include <xen/param.h>
+#include <acpi/cpufreq/cpufreq.h>
+
+static bool __init amd_cppc_handle_option(const char *s, const char *end)
+{
+    int ret;
+
+    ret = parse_boolean("verbose", s, end);
+    if ( ret >= 0 )
+    {
+        cpufreq_verbose = ret;
+        return true;
+    }
+
+    return false;
+}
+
+int __init amd_cppc_cmdline_parse(const char *s, const char *e)
+{
+    do {
+        const char *end = strpbrk(s, ",;");
+
+        if ( !amd_cppc_handle_option(s, end) )
+        {
+            printk(XENLOG_WARNING
+                   "cpufreq/amd-cppc: option '%.*s' not recognized\n",
+                   (int)((end ?: e) - s), s);
+
+            return -EINVAL;
+        }
+
+        s = end ? end + 1 : NULL;
+    } while ( s && s < e );
+
+    return 0;
+}
+
+int __init amd_cppc_register_driver(void)
+{
+    if ( !cpu_has_cppc )
+        return -ENODEV;
+
+    return -EOPNOTSUPP;
+}
diff --git a/xen/arch/x86/acpi/cpufreq/cpufreq.c b/xen/arch/x86/acpi/cpufreq/cpufreq.c
index e227376bab..6a0d9b1092 100644
--- a/xen/arch/x86/acpi/cpufreq/cpufreq.c
+++ b/xen/arch/x86/acpi/cpufreq/cpufreq.c
@@ -131,12 +131,13 @@ static int __init cf_check cpufreq_driver_init(void)
 
     if ( cpufreq_controller == FREQCTL_xen )
     {
+        unsigned int i;
         ret = -ENOENT;
 
         switch ( boot_cpu_data.x86_vendor )
         {
         case X86_VENDOR_INTEL:
-            for ( unsigned int i = 0; i < cpufreq_xen_cnt; i++ )
+            for ( i = 0; i < cpufreq_xen_cnt; i++ )
             {
                 switch ( cpufreq_xen_opts[i] )
                 {
@@ -151,6 +152,11 @@ static int __init cf_check cpufreq_driver_init(void)
                 case CPUFREQ_none:
                     ret = 0;
                     break;
+
+                default:
+                    printk(XENLOG_WARNING
+                           "Unsupported cpufreq driver for vendor Intel\n");
+                    break;
                 }
 
                 if ( !ret || ret == -EBUSY )
@@ -160,13 +166,71 @@ static int __init cf_check cpufreq_driver_init(void)
 
         case X86_VENDOR_AMD:
         case X86_VENDOR_HYGON:
-            ret = IS_ENABLED(CONFIG_AMD) ? powernow_register_driver() : -ENODEV;
+#ifdef CONFIG_AMD
+            for ( i = 0; i < cpufreq_xen_cnt; i++ )
+            {
+                switch ( cpufreq_xen_opts[i] )
+                {
+                case CPUFREQ_xen:
+                    ret = powernow_register_driver();
+                    break;
+
+                case CPUFREQ_amd_cppc:
+                    ret = amd_cppc_register_driver();
+                    break;
+
+                case CPUFREQ_none:
+                    ret = 0;
+                    break;
+
+                default:
+                    printk(XENLOG_WARNING
+                           "Unsupported cpufreq driver for vendor AMD or Hygon\n");
+                    break;
+                }
+
+                if ( !ret || ret == -EBUSY )
+                    break;
+            }
+#else
+            ret = -ENODEV;
+#endif /* CONFIG_AMD */
             break;
 
         default:
             printk(XENLOG_ERR "Cpufreq: unsupported x86 vendor\n");
             break;
         }
+
+        /*
+         * After successful cpufreq driver registeration, XEN_PROCESSOR_PM_CPPC
+         * and XEN_PROCESSOR_PM_PX shall become exclusive flags.
+         */
+        if ( !ret )
+        {
+            ASSERT(i < cpufreq_xen_cnt);
+            switch ( cpufreq_xen_opts[i] )
+            {
+            case CPUFREQ_amd_cppc:
+                xen_processor_pmbits &= ~XEN_PROCESSOR_PM_PX;
+                break;
+
+            case CPUFREQ_hwp:
+            case CPUFREQ_xen:
+                xen_processor_pmbits &= ~XEN_PROCESSOR_PM_CPPC;
+                break;
+
+            default:
+                break;
+            }
+        }
+        else if ( ret != -EBUSY )
+            /*
+             * No cpufreq driver gets registered, clear both
+             * XEN_PROCESSOR_PM_CPPC and XEN_PROCESSOR_PM_PX
+             */
+             xen_processor_pmbits &= ~(XEN_PROCESSOR_PM_CPPC |
+                                       XEN_PROCESSOR_PM_PX);
     }
 
     return ret;
diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hypercall.c
index 42b3b8b95a..cf64b8a622 100644
--- a/xen/arch/x86/platform_hypercall.c
+++ b/xen/arch/x86/platform_hypercall.c
@@ -546,6 +546,8 @@ ret_t do_platform_op(
                 ret = 0;
                 break;
             }
+            /* Xen doesn't support mixed mode */
+            ASSERT(!(xen_processor_pmbits & XEN_PROCESSOR_PM_CPPC));
 
             ret = set_px_pminfo(op->u.set_pminfo.id, &op->u.set_pminfo.u.perf);
             break;
@@ -578,6 +580,18 @@ ret_t do_platform_op(
         }
 
         case XEN_PM_CPPC:
+            if ( !(xen_processor_pmbits & XEN_PROCESSOR_PM_CPPC) )
+            {
+                /*
+                 * Neglect CPPC-info when registered cpufreq driver
+                 * isn't in CPPC mode
+                 */
+                ret = 0;
+                break;
+            }
+            /* Xen doesn't support mixed mode */
+            ASSERT(!(xen_processor_pmbits & XEN_PROCESSOR_PM_PX));
+
             ret = set_cppc_pminfo(op->u.set_pminfo.id,
                                   &op->u.set_pminfo.u.cppc_data);
             break;
diff --git a/xen/drivers/acpi/pm-op.c b/xen/drivers/acpi/pm-op.c
index eab64bb46e..427656c48c 100644
--- a/xen/drivers/acpi/pm-op.c
+++ b/xen/drivers/acpi/pm-op.c
@@ -351,7 +351,8 @@ int do_pm_op(struct xen_sysctl_pm_op *op)
     switch ( op->cmd & PM_PARA_CATEGORY_MASK )
     {
     case CPUFREQ_PARA:
-        if ( !(xen_processor_pmbits & XEN_PROCESSOR_PM_PX) )
+        if ( !(xen_processor_pmbits & (XEN_PROCESSOR_PM_PX |
+                                       XEN_PROCESSOR_PM_CPPC)) )
             return -ENODEV;
         if ( !pmpt || !(pmpt->init & (XEN_PX_INIT | XEN_CPPC_INIT)) )
             return -EINVAL;
diff --git a/xen/drivers/cpufreq/cpufreq.c b/xen/drivers/cpufreq/cpufreq.c
index 046a366d7f..41e0da3b77 100644
--- a/xen/drivers/cpufreq/cpufreq.c
+++ b/xen/drivers/cpufreq/cpufreq.c
@@ -65,7 +65,7 @@ LIST_HEAD_READ_MOSTLY(cpufreq_governor_list);
 /* set xen as default cpufreq */
 enum cpufreq_controller cpufreq_controller = FREQCTL_xen;
 
-enum cpufreq_xen_opt __initdata cpufreq_xen_opts[2] = { CPUFREQ_xen };
+enum cpufreq_xen_opt __initdata cpufreq_xen_opts[3] = { CPUFREQ_xen };
 unsigned int __initdata cpufreq_xen_cnt = 1;
 
 static int __init cpufreq_cmdline_parse(const char *s, const char *e);
@@ -99,6 +99,10 @@ static int __init handle_cpufreq_cmdline(enum cpufreq_xen_opt option)
         xen_processor_pmbits |= XEN_PROCESSOR_PM_PX;
         break;
 
+    case CPUFREQ_amd_cppc:
+        xen_processor_pmbits |= XEN_PROCESSOR_PM_CPPC;
+        break;
+
     default:
         ASSERT_UNREACHABLE();
         ret = -EINVAL;
@@ -162,6 +166,13 @@ static int __init cf_check setup_cpufreq_option(const char *str)
             if ( !ret && arg[0] && arg[1] )
                 ret = hwp_cmdline_parse(arg + 1, end);
         }
+        else if ( IS_ENABLED(CONFIG_AMD) && choice < 0 &&
+                  !cmdline_strcmp(str, "amd-cppc") )
+        {
+            ret = handle_cpufreq_cmdline(CPUFREQ_amd_cppc);
+            if ( !ret && arg[0] && arg[1] )
+                ret = amd_cppc_cmdline_parse(arg + 1, end);
+        }
         else
             ret = -EINVAL;
 
diff --git a/xen/include/acpi/cpufreq/cpufreq.h b/xen/include/acpi/cpufreq/cpufreq.h
index fd530632b4..5d4881eea8 100644
--- a/xen/include/acpi/cpufreq/cpufreq.h
+++ b/xen/include/acpi/cpufreq/cpufreq.h
@@ -26,8 +26,9 @@ enum cpufreq_xen_opt {
     CPUFREQ_none,
     CPUFREQ_xen,
     CPUFREQ_hwp,
+    CPUFREQ_amd_cppc,
 };
-extern enum cpufreq_xen_opt cpufreq_xen_opts[2];
+extern enum cpufreq_xen_opt cpufreq_xen_opts[3];
 extern unsigned int cpufreq_xen_cnt;
 struct cpufreq_governor;
 
@@ -272,4 +273,7 @@ int set_hwp_para(struct cpufreq_policy *policy,
 
 int acpi_cpufreq_register(void);
 
+int amd_cppc_cmdline_parse(const char *s, const char *e);
+int amd_cppc_register_driver(void);
+
 #endif /* __XEN_CPUFREQ_PM_H__ */
diff --git a/xen/include/acpi/cpufreq/processor_perf.h b/xen/include/acpi/cpufreq/processor_perf.h
index e6576314f0..0a87bc0384 100644
--- a/xen/include/acpi/cpufreq/processor_perf.h
+++ b/xen/include/acpi/cpufreq/processor_perf.h
@@ -5,6 +5,16 @@
 #include <public/sysctl.h>
 #include <xen/acpi.h>
 
+/*
+ * Internal xen-pm options
+ * They are extension to public xen-pm options (XEN_PROCESSOR_PM_xxx) defined
+ * in public/platform.h, guarded by SIF_PM_MASK
+ */
+#define XEN_PROCESSOR_PM_CPPC   0x100
+#if XEN_PROCESSOR_PM_CPPC & MASK_EXTR(~0, SIF_PM_MASK)
+# error "XEN_PROCESSOR_PM_CPPC shall not occupy bits reserved for public xen-pm options"
+#endif
+
 #define XEN_CPPC_INIT 0x40000000U
 #define XEN_PX_INIT   0x80000000U
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 22 10:53:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 10:53:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089864.1447385 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upPOJ-0001m3-Cj; Fri, 22 Aug 2025 10:53:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089864.1447385; Fri, 22 Aug 2025 10: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 1upPOJ-0001lf-7P; Fri, 22 Aug 2025 10:53:03 +0000
Received: by outflank-mailman (input) for mailman id 1089864;
 Fri, 22 Aug 2025 10:53:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JeQb=3C=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1upPOI-00083s-29
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 10:53:02 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20603.outbound.protection.outlook.com
 [2a01:111:f403:2412::603])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2a5d4397-7f46-11f0-b898-0df219b8e170;
 Fri, 22 Aug 2025 12:52:59 +0200 (CEST)
Received: from BN9PR03CA0437.namprd03.prod.outlook.com (2603:10b6:408:113::22)
 by DM3PR12MB9434.namprd12.prod.outlook.com (2603:10b6:0:4b::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.13; Fri, 22 Aug
 2025 10:52:49 +0000
Received: from BN1PEPF00004683.namprd03.prod.outlook.com
 (2603:10b6:408:113:cafe::5d) by BN9PR03CA0437.outlook.office365.com
 (2603:10b6:408:113::22) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.16 via Frontend Transport; Fri,
 22 Aug 2025 10:52:49 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN1PEPF00004683.mail.protection.outlook.com (10.167.243.89) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Fri, 22 Aug 2025 10:52:48 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) 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; Fri, 22 Aug 2025 05:52: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>
X-Inumbo-ID: 2a5d4397-7f46-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=m0KD0XKFlg2OXsDpWNocuumakrIo7BgBUnz0YuqO6c3fCQ97wcZpPJTzUEBA0c1mJrKIXY2b6VG4ahTED6aXxpBxpjdZvXb9swiecjrPF4djvIRyS4AHYrg/F3qYN45NdR1x8MlijgXjETSVLfnN6axFTfilIFOPvpNLShZJwjTpGTkZBh6ixfgZO5EtNBxdxorgejYJ8Cl+GDJQFcKC5OawZpEDMNuctPE5e5kLCoUKytGm6SoNcQePzyAj65wKGGyj3azjraBdLfwZ0EO83HqOpRWW2LHs5089cJexS1BkzNsi1OyCf2rDyQjJw44RR2E7bOil0Aja/sapVZhubQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/B8BqNvjAGDpplakgisDYdWHFKpcog4kWUU6hGhOmR0=;
 b=us9w5un2V3uZq7dbpF4viuk+bfEC4+5pq1BAUxEV4dl0nXsF67K+hmpz8BfwsQQHrdZQLAhM69S6yg1v9J/FrCygRcm3ZKZ/kv64gfbwa9zT1mIbj53yB68RNJf8r20JTnL+VW0FzbduviVmKzevGUyVggOe05uQ1iXZ+kAeHhKPCNgnl8OI5yMkRdDkNZveEB+LWxBh25XF3gnZYElbOfXgyrqQtZ5+vKbalnTuw92Itn1EsTJDuEoHa2QnjETIMHMX9DtqYXKqz7QdRy3FWIOdXIW+I/c08+mm6s69Mh5d7VnZV3XqlxUpk4J51Q0Ai7IG4uJ+ChM5fgu74FZaUA==
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=/B8BqNvjAGDpplakgisDYdWHFKpcog4kWUU6hGhOmR0=;
 b=IUL2hqTw/AHwzS8+CMBNB97Bh6E6k6VsCRt9vREmqHOW3n31OShVOFJG0s14HFHk3xYDTzvVzlvxvU+OfYhEPklVgPrHm8VOqeuD+Up3oLWyJ2gP2ti5MvnQyFhFDNbo8zBIhiPQNLCc3lgikmkVTBlvicBP0/psDFvfsk5e9R4=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v7 06/13] xen/cpufreq: introduce new sub-hypercall to propagate CPPC data
Date: Fri, 22 Aug 2025 18:52:11 +0800
Message-ID: <20250822105218.3601273-7-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250822105218.3601273-1-Penny.Zheng@amd.com>
References: <20250822105218.3601273-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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN1PEPF00004683:EE_|DM3PR12MB9434:EE_
X-MS-Office365-Filtering-Correlation-Id: df9c4147-db5e-493a-2b91-08dde16a08d1
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|82310400026|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?1EDWIt68J43r1gLjAkbGBLx62QxI2xJkuFq0hI7T8uBpldLI5E4iZ5w9bB2I?=
 =?us-ascii?Q?vopa3a/xvmnVugSIQIeN2OKdXdEF/i4FCuAQ4oCga72cuqUve+4kEo0eIc2w?=
 =?us-ascii?Q?ygkwZZXYaErULPKPwL9wFioC9+bRNk7gMazB8u09zpGUdVr+UssFfOJqNFJz?=
 =?us-ascii?Q?LYOSY6dkNFeWsVtSJNbv3fFgbsgUOxgvxEvaJ4zBG+qNkaYwI9OrtlybQWVf?=
 =?us-ascii?Q?WqCUxtsNF0LaLplq0KwrkCrxo5T5VHljmcyzphvhH2u64tA7UdHD4HhGF7mX?=
 =?us-ascii?Q?cMJdMhDrvpTNY4fuRZGhzRueKhEeqTK3OlAclnZMh5DGwwN1/Hi52iVoSqrx?=
 =?us-ascii?Q?KX+jmCBBPHsBjDvLW9Eztc4K6+W+AzehMQYhQF4cORl0lJDdKWzSGi1cewg9?=
 =?us-ascii?Q?q/ISOnpRyvQ9jQhvUfpRat6V8LRw+I9ZyWhhhvsvTltpyd85y50WgLROaZgr?=
 =?us-ascii?Q?UE3eiNVm+Z33ekx0W3tC7AR9fKSo7ppTRUAIWYnOWCF4eFzedaKecpYwU+e4?=
 =?us-ascii?Q?YQiT+eux6ijzZeJOoPQXdP75PQAaFPNOblJK4YDy3ujNORcdGuVdAi/Im9kz?=
 =?us-ascii?Q?1B0CJJ0VY4g3LIxhnruRaHwJf3+xQro9RNCMVHTzpp8U2fwupsBULj3VP1jG?=
 =?us-ascii?Q?8ikYED3Qe88marOB+6uPJOGQMzBsjYtaez1Es9ul1DaipXwVlET+KqggdW88?=
 =?us-ascii?Q?IEN3BzlXmYrPZbZmUfpLe48BIfmO3DcFr80AMAMk1vXD7+ZiWcagZMf3e3Du?=
 =?us-ascii?Q?zKJfwQ0Ca3/rHfckahbdA29ltFFLWt3P27icIDSAa2/P4xGeghZjbtDYdGLz?=
 =?us-ascii?Q?a6v9qTF+PmiBhGKH2KjbOsmzG6IxyXQnoUXfqz68wBjpDhnGVlCvy9f7LL/V?=
 =?us-ascii?Q?rnNfyxhNrcLSK1fOfHArg3xfhwSktwPzrSDKC/FB5rdD9czijhCrcmu2HVPQ?=
 =?us-ascii?Q?irq2BJbkRZEesXhnHtwoCZ2wZBOTdal7lbxidn6FbfyXGBeLFdcO+E1l9DAJ?=
 =?us-ascii?Q?u+/o13PLaEcxpyklJQ4EhqrEWu2RYyAwNcJ1oCg4E0oK7BPZIkIGeAH0MAQE?=
 =?us-ascii?Q?Ouxt5JHBU410Sgt9u7kS5QtYZw2uAj5hhGQ5686aqAAmqoMRn9Aj/3fqTwml?=
 =?us-ascii?Q?2HvQtRfrmUcgnqsJq2ZdksIfsKiSdT+5axEKyO7EFASHIlmS4HPLJxL2W40B?=
 =?us-ascii?Q?rlubMRDIMsW2N9yd1tXqrrJFAhtFpzU8ugEzlOIa8v/SpUcflI/Gkayw8a+t?=
 =?us-ascii?Q?pEexGxZl2YRwzcAqR9vKFZr54feTNtkh3aP/Fn0PqovAbFDc57dwTdy5pr4p?=
 =?us-ascii?Q?NJNWNr7hySn3Jd3w6jV9jDw874N2Xx6bgSHZv9P5SHlHWMkUwq2LFkB+dHLl?=
 =?us-ascii?Q?iPavk5XzvN43p7f8IReLdudnU9zJNcHqL/f0nSoddfLtWzJSlZyBF4uYb78q?=
 =?us-ascii?Q?2Y7YQejRrY+8UW3oYf9gm7EBCXPb/ctRwrd5I1IQE0Fe+jm6Q86tofHsOzUQ?=
 =?us-ascii?Q?d6N/0KnKvkMWpE0bSWS8WIB4jhcje05wV379?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Aug 2025 10:52:48.6758
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: df9c4147-db5e-493a-2b91-08dde16a08d1
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF00004683.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM3PR12MB9434

In order to provide backward compatibility with existing governors
that represent performance as frequency, like ondemand, the _CPC
table can optionally provide processor frequency range values, Lowest
frequency and Nominal frequency, to let OS use Lowest Frequency/
Performance and Nominal Frequency/Performance as anchor points to
create linear mapping of CPPC performance to CPU frequency.

As Xen is uncapable of parsing the ACPI dynamic table, we'd like to
introduce a new sub-hypercall "XEN_PM_CPPC" to propagate required CPPC
data from dom0 kernel to Xen.
In the according handler set_cppc_pminfo(), we do _CPC and _PSD
sanitization check, as both _PSD and _CPC info are necessary for correctly
initializing cpufreq cores in CPPC mode.
Users shall be warned that if we failed at this point,
no fallback scheme, like legacy P-state could be switched to.

A new flag "XEN_CPPC_INIT" is also introduced for cpufreq core initialised in
CPPC mode. Then all .init flag checking shall be updated to
consider "XEN_CPPC_INIT" too.

We want to bypass construction of px statistic info in cpufreq_statistic_init()
for CPPC mode, while not bypassing cpufreq_statistic_lock initialization for a
good reason. The same check is unnecessary for cpufreq_statistic_exit(),
since it has already been covered by px statistic variable
"cpufreq_statistic_data" check

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v1 -> v2:
- Remove unnecessary figure braces
- Pointer-to-const for print_CPPC and set_cppc_pminfo
- Structure allocation shall use xvzalloc()
- Unnecessary memcpy(), and change it to a (type safe) structure assignment
- Add comment for struct xen_processor_cppc, and keep the chosen fields
in the order _CPC has them
- Obey to alphabetic sorting, and prefix compat structures with ? instead
of !
---
v2 -> v3:
- Trim too long line
- Re-place set_cppc_pminfo() past set_px_pminfo()
- Fix Misra violations: Declaration and definition ought to agree
in parameter names
- Introduce a new flag XEN_PM_CPPC to reflect processor initialised in CPPC
mode
---
v3 -> v4:
- Refactor commit message
- make "acpi_id" unsigned int
- Add warning message when cpufreq_cpu_init() failed only under debug mode
- Expand "struct xen_processor_cppc" to include _PSD and shared type
- add sanity check for ACPI CPPC data
---
v4 -> v5:
- remove the ordering check between lowest_nonlinear_perf and lowest_perf
- use printk_once() for cppc perf value warning
- complement comment for cppc perf value check
- remove redundant check and pointless parenthesizing
- use dprintk() for warning under #ifndef NDEBUG
- refactor warning message when having non-zero ret of cpufreq_cpu_init()
- With introduction of "struct xen_psd_package" in "struct xen_processor_cppc",
use ! and the respective XLAT_* macro(s) to wrap.
---
v5 -> v6:
- remove unnecessary input parameter check
- use print_once() instead of dprintk() and reword the log message
- adhere to designated comment style
- relative ordering shall be consistent between different declaration groups
- add alphabetically in xlat.lst
- in get_cpufreq_para(), add must-zero check for ->perf.state_count in CPPC mode
---
v6 -> v7:
- move XEN_PX_INIT to its own line to be neater
- change to "Set CPU%d (ACPI ID %u) CPPC state info:\n"
- convert two-if()s into a single one
- make the extra indentation a proper level (i.e. 4 blanks)
- only both lowest_mhz and nominal_mhz provided, the check is meaningful
- as cpuid is int, so print with %d
- only need to make sure the maximum value highest_perf is smaller than
UINT8_MAX
- make XEN_CPPC_* definition show how it works
- add code comment
---
 xen/arch/x86/platform_hypercall.c         |   5 +
 xen/arch/x86/x86_64/cpufreq.c             |  19 ++++
 xen/arch/x86/x86_64/platform_hypercall.c  |   3 +
 xen/drivers/acpi/pm-op.c                  |   6 +-
 xen/drivers/acpi/pmstat.c                 |   4 +
 xen/drivers/cpufreq/cpufreq.c             | 124 +++++++++++++++++++++-
 xen/include/acpi/cpufreq/processor_perf.h |   4 +-
 xen/include/public/platform.h             |  26 +++++
 xen/include/xen/pmstat.h                  |   5 +
 xen/include/xlat.lst                      |   1 +
 10 files changed, 192 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hypercall.c
index 3eba791889..42b3b8b95a 100644
--- a/xen/arch/x86/platform_hypercall.c
+++ b/xen/arch/x86/platform_hypercall.c
@@ -577,6 +577,11 @@ ret_t do_platform_op(
             break;
         }
 
+        case XEN_PM_CPPC:
+            ret = set_cppc_pminfo(op->u.set_pminfo.id,
+                                  &op->u.set_pminfo.u.cppc_data);
+            break;
+
         default:
             ret = -EINVAL;
             break;
diff --git a/xen/arch/x86/x86_64/cpufreq.c b/xen/arch/x86/x86_64/cpufreq.c
index e4f3d5b436..8d57f67c2e 100644
--- a/xen/arch/x86/x86_64/cpufreq.c
+++ b/xen/arch/x86/x86_64/cpufreq.c
@@ -54,3 +54,22 @@ int compat_set_px_pminfo(uint32_t acpi_id,
 
     return set_px_pminfo(acpi_id, xen_perf);
 }
+
+int compat_set_cppc_pminfo(unsigned int acpi_id,
+                           const struct compat_processor_cppc *cppc_data)
+
+{
+    struct xen_processor_cppc *xen_cppc;
+    unsigned long xlat_page_current;
+
+    xlat_malloc_init(xlat_page_current);
+
+    xen_cppc = xlat_malloc_array(xlat_page_current,
+                                 struct xen_processor_cppc, 1);
+    if ( unlikely(xen_cppc == NULL) )
+        return -EFAULT;
+
+    XLAT_processor_cppc(xen_cppc, cppc_data);
+
+    return set_cppc_pminfo(acpi_id, xen_cppc);
+}
diff --git a/xen/arch/x86/x86_64/platform_hypercall.c b/xen/arch/x86/x86_64/platform_hypercall.c
index 9ab631c17f..0288f68df9 100644
--- a/xen/arch/x86/x86_64/platform_hypercall.c
+++ b/xen/arch/x86/x86_64/platform_hypercall.c
@@ -14,6 +14,9 @@ EMIT_FILE;
 #define efi_get_info        efi_compat_get_info
 #define efi_runtime_call(x) efi_compat_runtime_call(x)
 
+#define xen_processor_cppc  compat_processor_cppc
+#define set_cppc_pminfo     compat_set_cppc_pminfo
+
 #define xen_processor_performance compat_processor_performance
 #define set_px_pminfo       compat_set_px_pminfo
 
diff --git a/xen/drivers/acpi/pm-op.c b/xen/drivers/acpi/pm-op.c
index 9a1970df34..eab64bb46e 100644
--- a/xen/drivers/acpi/pm-op.c
+++ b/xen/drivers/acpi/pm-op.c
@@ -91,7 +91,9 @@ static int get_cpufreq_para(struct xen_sysctl_pm_op *op)
     pmpt = processor_pminfo[op->cpuid];
     policy = per_cpu(cpufreq_cpu_policy, op->cpuid);
 
-    if ( !pmpt || !pmpt->perf.states ||
+    if ( !pmpt ||
+         ((pmpt->init & XEN_PX_INIT) && !pmpt->perf.states) ||
+         ((pmpt->init & XEN_CPPC_INIT) && pmpt->perf.state_count) ||
          !policy || !policy->governor )
         return -EINVAL;
 
@@ -351,7 +353,7 @@ int do_pm_op(struct xen_sysctl_pm_op *op)
     case CPUFREQ_PARA:
         if ( !(xen_processor_pmbits & XEN_PROCESSOR_PM_PX) )
             return -ENODEV;
-        if ( !pmpt || !(pmpt->init & XEN_PX_INIT) )
+        if ( !pmpt || !(pmpt->init & (XEN_PX_INIT | XEN_CPPC_INIT)) )
             return -EINVAL;
         break;
     }
diff --git a/xen/drivers/acpi/pmstat.c b/xen/drivers/acpi/pmstat.c
index 4fae0c14af..0f31736df2 100644
--- a/xen/drivers/acpi/pmstat.c
+++ b/xen/drivers/acpi/pmstat.c
@@ -108,6 +108,10 @@ int cpufreq_statistic_init(unsigned int cpu)
     if ( !pmpt )
         return -EINVAL;
 
+    /* Only need to initialize in Px mode */
+    if ( !(pmpt->init & XEN_PX_INIT) )
+        return 0;
+
     spin_lock(cpufreq_statistic_lock);
 
     pxpt = per_cpu(cpufreq_statistic_data, cpu);
diff --git a/xen/drivers/cpufreq/cpufreq.c b/xen/drivers/cpufreq/cpufreq.c
index de17e53708..046a366d7f 100644
--- a/xen/drivers/cpufreq/cpufreq.c
+++ b/xen/drivers/cpufreq/cpufreq.c
@@ -40,6 +40,7 @@
 #include <xen/domain.h>
 #include <xen/cpu.h>
 #include <xen/pmstat.h>
+#include <xen/xvmalloc.h>
 #include <asm/io.h>
 #include <asm/processor.h>
 
@@ -234,6 +235,11 @@ static int get_psd_info(unsigned int cpu, unsigned int *shared_type,
         *domain_info = &processor_pminfo[cpu]->perf.domain_info;
         break;
 
+    case XEN_CPPC_INIT:
+        *shared_type = processor_pminfo[cpu]->cppc_data.shared_type;
+        *domain_info = &processor_pminfo[cpu]->cppc_data.domain_info;
+        break;
+
     default:
         ret = -EINVAL;
         break;
@@ -259,7 +265,7 @@ int cpufreq_add_cpu(unsigned int cpu)
     if ( !processor_pminfo[cpu] || !cpu_online(cpu) )
         return -EINVAL;
 
-    if ( !(processor_pminfo[cpu]->init & XEN_PX_INIT) )
+    if ( !(processor_pminfo[cpu]->init & (XEN_PX_INIT | XEN_CPPC_INIT)) )
         return -EINVAL;
 
     if (!cpufreq_driver.init)
@@ -434,7 +440,7 @@ int cpufreq_del_cpu(unsigned int cpu)
     if ( !processor_pminfo[cpu] || !cpu_online(cpu) )
         return -EINVAL;
 
-    if ( !(processor_pminfo[cpu]->init & XEN_PX_INIT) )
+    if ( !(processor_pminfo[cpu]->init & (XEN_PX_INIT | XEN_CPPC_INIT)) )
         return -EINVAL;
 
     if (!per_cpu(cpufreq_cpu_policy, cpu))
@@ -693,6 +699,120 @@ int acpi_set_pdc_bits(unsigned int acpi_id, XEN_GUEST_HANDLE(uint32) pdc)
     return ret;
 }
 
+static void print_CPPC(const struct xen_processor_cppc *cppc_data)
+{
+    printk("\t_CPC: highest_perf=%u, lowest_perf=%u, "
+           "nominal_perf=%u, lowest_nonlinear_perf=%u, "
+           "nominal_mhz=%uMHz, lowest_mhz=%uMHz\n",
+           cppc_data->cpc.highest_perf, cppc_data->cpc.lowest_perf,
+           cppc_data->cpc.nominal_perf, cppc_data->cpc.lowest_nonlinear_perf,
+           cppc_data->cpc.nominal_mhz, cppc_data->cpc.lowest_mhz);
+}
+
+int set_cppc_pminfo(unsigned int acpi_id,
+                    const struct xen_processor_cppc *cppc_data)
+{
+    int ret = 0, cpuid;
+    struct processor_pminfo *pm_info;
+
+    cpuid = get_cpu_id(acpi_id);
+    if ( cpuid < 0 )
+    {
+        ret = -EINVAL;
+        goto out;
+    }
+
+    if ( cppc_data->pad[0] || cppc_data->pad[1] || cppc_data->pad[2] )
+    {
+        ret = -EINVAL;
+        goto out;
+    }
+
+    if ( cpufreq_verbose )
+        printk("Set CPU%d (ACPI ID %u) CPPC state info:\n",
+               cpuid, acpi_id);
+
+    pm_info = processor_pminfo[cpuid];
+    if ( !pm_info )
+    {
+        pm_info = xvzalloc(struct processor_pminfo);
+        if ( !pm_info )
+        {
+            ret = -ENOMEM;
+            goto out;
+        }
+        processor_pminfo[cpuid] = pm_info;
+    }
+    pm_info->acpi_id = acpi_id;
+    pm_info->id = cpuid;
+    pm_info->cppc_data = *cppc_data;
+
+    if ( (cppc_data->flags & XEN_CPPC_PSD) &&
+         !check_psd_pminfo(cppc_data->shared_type) )
+    {
+            ret = -EINVAL;
+            goto out;
+    }
+
+    if ( cppc_data->flags & XEN_CPPC_CPC )
+    {
+        if ( cppc_data->cpc.highest_perf == 0 ||
+             cppc_data->cpc.highest_perf > UINT8_MAX ||
+             cppc_data->cpc.nominal_perf == 0 ||
+             cppc_data->cpc.lowest_nonlinear_perf == 0 ||
+             cppc_data->cpc.lowest_perf == 0 ||
+             cppc_data->cpc.lowest_perf >
+                 cppc_data->cpc.lowest_nonlinear_perf ||
+             cppc_data->cpc.lowest_nonlinear_perf >
+                 cppc_data->cpc.nominal_perf ||
+             cppc_data->cpc.nominal_perf > cppc_data->cpc.highest_perf )
+            /*
+             * Right now, Xen doesn't actually use highest_perf/nominal_perf/
+             * lowest_nonlinear_perf/lowest_perf values read from ACPI _CPC
+             * table. Xen reads CPPC capability MSR to get these four values.
+             * So warning is enough.
+             */
+            printk_once(XENLOG_WARNING
+                        "Broken CPPC perf values: lowest(%u), nonlinear_lowest(%u), nominal(%u), highest(%u)\n",
+                        cppc_data->cpc.lowest_perf,
+                        cppc_data->cpc.lowest_nonlinear_perf,
+                        cppc_data->cpc.nominal_perf,
+                        cppc_data->cpc.highest_perf);
+
+        /* lowest_mhz and nominal_mhz are optional value */
+        if ( cppc_data->cpc.nominal_mhz &&
+             cppc_data->cpc.lowest_mhz > cppc_data->cpc.nominal_mhz )
+        {
+            printk_once(XENLOG_WARNING
+                        "Broken CPPC freq values: lowest(%u), nominal(%u)\n",
+                        cppc_data->cpc.lowest_mhz,
+                        cppc_data->cpc.nominal_mhz);
+            /* Re-set with zero values, instead of keeping invalid values */
+            pm_info->cppc_data.cpc.nominal_mhz = 0;
+            pm_info->cppc_data.cpc.lowest_mhz = 0;
+        }
+    }
+
+    if ( cppc_data->flags == (XEN_CPPC_PSD | XEN_CPPC_CPC) )
+    {
+        if ( cpufreq_verbose )
+        {
+            print_PSD(&pm_info->cppc_data.domain_info);
+            print_CPPC(&pm_info->cppc_data);
+        }
+
+        pm_info->init = XEN_CPPC_INIT;
+        ret = cpufreq_cpu_init(cpuid);
+        if ( ret )
+            printk_once(XENLOG_WARNING
+                        "CPU%d failed amd-cppc mode init; use \"cpufreq=xen\" instead",
+                        cpuid);
+    }
+
+ out:
+    return ret;
+}
+
 static void cpufreq_cmdline_common_para(struct cpufreq_policy *new_policy)
 {
     if (usr_max_freq)
diff --git a/xen/include/acpi/cpufreq/processor_perf.h b/xen/include/acpi/cpufreq/processor_perf.h
index 4e045da983..e6576314f0 100644
--- a/xen/include/acpi/cpufreq/processor_perf.h
+++ b/xen/include/acpi/cpufreq/processor_perf.h
@@ -5,7 +5,8 @@
 #include <public/sysctl.h>
 #include <xen/acpi.h>
 
-#define XEN_PX_INIT 0x80000000U
+#define XEN_CPPC_INIT 0x40000000U
+#define XEN_PX_INIT   0x80000000U
 
 unsigned int powernow_register_driver(void);
 unsigned int get_measured_perf(unsigned int cpu, unsigned int flag);
@@ -43,6 +44,7 @@ struct processor_pminfo {
     uint32_t acpi_id;
     uint32_t id;
     struct processor_performance    perf;
+    struct xen_processor_cppc cppc_data;
 
     uint32_t init;
 };
diff --git a/xen/include/public/platform.h b/xen/include/public/platform.h
index 2725b8d104..94349fc5f5 100644
--- a/xen/include/public/platform.h
+++ b/xen/include/public/platform.h
@@ -363,6 +363,7 @@ DEFINE_XEN_GUEST_HANDLE(xenpf_getidletime_t);
 #define XEN_PM_PX   1
 #define XEN_PM_TX   2
 #define XEN_PM_PDC  3
+#define XEN_PM_CPPC 4
 
 /* Px sub info type */
 #define XEN_PX_PCT   1
@@ -370,6 +371,10 @@ DEFINE_XEN_GUEST_HANDLE(xenpf_getidletime_t);
 #define XEN_PX_PPC   4
 #define XEN_PX_PSD   8
 
+/* CPPC sub info type */
+#define XEN_CPPC_PSD   (1U << 0)
+#define XEN_CPPC_CPC   (1U << 1)
+
 struct xen_power_register {
     uint32_t     space_id;
     uint32_t     bit_width;
@@ -457,6 +462,26 @@ struct xen_processor_performance {
 typedef struct xen_processor_performance xen_processor_performance_t;
 DEFINE_XEN_GUEST_HANDLE(xen_processor_performance_t);
 
+struct xen_processor_cppc {
+    uint8_t flags; /* IN: XEN_CPPC_xxx */
+    uint8_t pad[3];
+    /*
+     * IN: Subset _CPC fields useful for CPPC-compatible cpufreq
+     * driver's initialization
+     */
+    struct {
+        uint32_t highest_perf;
+        uint32_t nominal_perf;
+        uint32_t lowest_nonlinear_perf;
+        uint32_t lowest_perf;
+        uint32_t lowest_mhz;
+        uint32_t nominal_mhz;
+    } cpc;
+    uint32_t shared_type; /* IN: XEN_CPUPERF_SHARED_TYPE_xxx */
+    struct xen_psd_package domain_info; /* IN: _PSD */
+};
+typedef struct xen_processor_cppc xen_processor_cppc_t;
+
 struct xenpf_set_processor_pminfo {
     /* IN variables */
     uint32_t id;    /* ACPI CPU ID */
@@ -465,6 +490,7 @@ struct xenpf_set_processor_pminfo {
         struct xen_processor_power          power;/* Cx: _CST/_CSD */
         struct xen_processor_performance    perf; /* Px: _PPC/_PCT/_PSS/_PSD */
         XEN_GUEST_HANDLE(uint32)            pdc;  /* _PDC */
+        xen_processor_cppc_t                cppc_data; /* CPPC: _CPC and _PSD */
     } u;
 };
 typedef struct xenpf_set_processor_pminfo xenpf_set_processor_pminfo_t;
diff --git a/xen/include/xen/pmstat.h b/xen/include/xen/pmstat.h
index 8350403e95..6096560d3c 100644
--- a/xen/include/xen/pmstat.h
+++ b/xen/include/xen/pmstat.h
@@ -7,12 +7,17 @@
 
 int set_px_pminfo(uint32_t acpi_id, struct xen_processor_performance *perf);
 long set_cx_pminfo(uint32_t acpi_id, struct xen_processor_power *power);
+int set_cppc_pminfo(unsigned int acpi_id,
+                    const struct xen_processor_cppc *cppc_data);
 
 #ifdef CONFIG_COMPAT
 struct compat_processor_performance;
 int compat_set_px_pminfo(uint32_t acpi_id, struct compat_processor_performance *perf);
 struct compat_processor_power;
 long compat_set_cx_pminfo(uint32_t acpi_id, struct compat_processor_power *power);
+struct compat_processor_cppc;
+int compat_set_cppc_pminfo(unsigned int acpi_id,
+                           const struct compat_processor_cppc *cppc_data);
 #endif
 
 uint32_t pmstat_get_cx_nr(unsigned int cpu);
diff --git a/xen/include/xlat.lst b/xen/include/xlat.lst
index 6d6c6cfab2..9d08dcc4bb 100644
--- a/xen/include/xlat.lst
+++ b/xen/include/xlat.lst
@@ -160,6 +160,7 @@
 
 !	pct_register			platform.h
 !	power_register			platform.h
+!	processor_cppc			platform.h
 ?	processor_csd			platform.h
 !	processor_cx			platform.h
 !	processor_flags			platform.h
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 22 10:53:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 10:53:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089866.1447394 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upPOK-00022v-Kn; Fri, 22 Aug 2025 10:53:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089866.1447394; Fri, 22 Aug 2025 10: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 1upPOK-00022L-G5; Fri, 22 Aug 2025 10:53:04 +0000
Received: by outflank-mailman (input) for mailman id 1089866;
 Fri, 22 Aug 2025 10:53:02 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JeQb=3C=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1upPOI-0008I9-P9
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 10:53:02 +0000
Received: from NAM02-BN1-obe.outbound.protection.outlook.com
 (mail-bn1nam02on2062c.outbound.protection.outlook.com
 [2a01:111:f403:2407::62c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2c3bbd82-7f46-11f0-a32b-13f23c93f187;
 Fri, 22 Aug 2025 12:53:01 +0200 (CEST)
Received: from MN2PR22CA0021.namprd22.prod.outlook.com (2603:10b6:208:238::26)
 by MW4PR12MB7358.namprd12.prod.outlook.com (2603:10b6:303:22b::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.19; Fri, 22 Aug
 2025 10:52:55 +0000
Received: from BN1PEPF00004681.namprd03.prod.outlook.com
 (2603:10b6:208:238:cafe::d9) by MN2PR22CA0021.outlook.office365.com
 (2603:10b6:208:238::26) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.18 via Frontend Transport; Fri,
 22 Aug 2025 10:52:55 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN1PEPF00004681.mail.protection.outlook.com (10.167.243.87) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Fri, 22 Aug 2025 10:52:54 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) 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; Fri, 22 Aug 2025 05:52:51 -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>
X-Inumbo-ID: 2c3bbd82-7f46-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BzR3o9FQwJsQmcSyFYflFQNPtxyszjiJTg1kz9BjqUWP6Wo4Ushb/hxcD34dOqWYZRVLR0EQ+bdR2wAWgAu4KGwIkX8Ty5hkfkC+oEggOK31V/Gy+cjqI8v2I7M5A113MWjoTMHEQ8ADR1TG6sgO45XNdSLuZvBiyDcM8TcPEl6GXCw3ToMs8zDLDLWNt6XRx8wLBAmApguYVPOki6ikN+gte+74t95xKUMCZfss6R42HsZ+TPOg5cDrg82Vm27W91D2FGuK8Ulqh0Z4FnQmPOX5yb1YtIhx8HxrciTZcBHykcrypWLu0WbHFw9la98m09k2zrJzcMqM1IAltQtwtQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=9l+ycugT8XjeiILvRVuwMwpeenBc3KdGsGxdOYVDEQk=;
 b=sjCcHbyTVBWGpFCq0JA6r6U4YOtEaTvC9PTCvRJa0EepC9thl7NSYonsndVWBMdDHj0aiUeP+Gg5W8V+QeE5zyPKKAg3XyQpl350u12GHFdP5nF7M4OLAU68Wre38A3Ve9NOm6q4lwVLmZI2NmD2YbD7X8ykBZZVA0OjkXAqZ/5WZcEJiT5Trb84gMSmP6kvTK2cd9r4tSNO8TltqDoAa8UOfbMgjlW9ADPq23/vD5O+RNKiG3sjBofigFyyd06ZXmSNKvPikZvA6YJ8e3t9N9S781wNA6q3E5lSBPABc8WWOieRzfTeMB8cJqEOZFP9iiJj6QdJ2LbqsOh7qazd5A==
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=9l+ycugT8XjeiILvRVuwMwpeenBc3KdGsGxdOYVDEQk=;
 b=jeJkACqU4hyo8emEm7hVMIj3F/B+KexPCslPhr0JvAVtQ1t2+3n5pedeNKjA6qED+1U53GhTRT2rjebWEdLn8AwPp3hn4zdUOjclV/O8NR46b+BhaeN8X21M/nXuoUqCMZKkmq/S3CJQxFAi1rZlqDLUYJfR6S7RE6o4dwsiojA=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v7 08/13] xen/cpufreq: implement amd-cppc driver for CPPC in passive mode
Date: Fri, 22 Aug 2025 18:52:13 +0800
Message-ID: <20250822105218.3601273-9-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250822105218.3601273-1-Penny.Zheng@amd.com>
References: <20250822105218.3601273-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="a"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN1PEPF00004681:EE_|MW4PR12MB7358:EE_
X-MS-Office365-Filtering-Correlation-Id: 87e8eb8b-8f34-40eb-fd78-08dde16a0c70
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|36860700013|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?vOM2SMSCL17/Ad/fDszBgA4Giz2JlDWyXnTY0H3p4tu25eAmKAtvMJgYtMH9?=
 =?us-ascii?Q?9pgT7PeJveEzgRuLP8NIfBbiQCoBrS5M55PsVUBpCQkwPQkcPhpdnFXM73Yx?=
 =?us-ascii?Q?S3i+owI1AohxQyKh3fXomR4fRDv6S4a4lL76PL2xCTR8ePcMyBPR43cG550e?=
 =?us-ascii?Q?0T64/Izgr0nPBV01gtDJ3o/pzhPn0vgVAf4NIYqcLeB3BavffqiskoocWqXR?=
 =?us-ascii?Q?UsregsybV6QLgYWnc83Szf0/iHKuTBBwtlsUXs7dccGA3y4fdpdgpwVcJni5?=
 =?us-ascii?Q?Cdr+so1+viW5HNm+fXh1OfsHtQymglvhYMhxodf24rDqypWnx3C0yC6v3SxQ?=
 =?us-ascii?Q?DX1HWdEQn/omBuf6Tx1xFM5wZS+ET97VNvgObSdex6RDg2IN4oAoSEiwsiLc?=
 =?us-ascii?Q?cJHDtLgVGyDm2fTBCZu3BEHGDGE6CMrHrJiBXaIRjXz3GIxXMk5gM9Kgz8sv?=
 =?us-ascii?Q?EwXWPYeAKaZ+B7Acxm4GC+xznCAFu5UaJWFUe8FEaHa1XUkR3KghzN4eRpUK?=
 =?us-ascii?Q?dys+kP0dROR90ubi2eEZRx17SabndbxL62/3pcFXqbGcwzKrHBGmR3qwxiVU?=
 =?us-ascii?Q?gM9GboKmu56dqZh6SxVraq7CTB/cah6ustkY+2mM975xnBuEMp7A7XF6Tm2o?=
 =?us-ascii?Q?jkEepwJJheAtWcrIdOH9AFfvSuUxEw5aNAaKITyr1VV9bVUtN1fPUVwW1SBv?=
 =?us-ascii?Q?jg5c/i4LAPDf5uo9V0jOIRuzo/Y9WdhFakD/ZjkORdCNpc2u9xUqwSrp49Fq?=
 =?us-ascii?Q?Ui4oiDollbJ/c+HKwSoWpq3TaYIjA8BFygFJHmdnuD8meogUrDsLPPJvYcE5?=
 =?us-ascii?Q?coV9hNda+9Qbzw7Yl++Qg9qfvCK1aKZE6yzYYVdMHr/s0Iyt+h5MXQyuEcCq?=
 =?us-ascii?Q?H0Mt+YcXb//xF880Z7Qgb3hhpK5TFGUm6SereDMe2aQxMRXr4N6XsrSjfTxu?=
 =?us-ascii?Q?qhPFZSI4rO3OAZovgAsjk1968hj6SnVkM2dLvBGHsVMUjq+NAMV8U1e4VWUW?=
 =?us-ascii?Q?d4IEFw7hf+XAoHdPaasNA59NYHyRAOSU5I0hnq9CefWoEqhHLrXnWbXq92tO?=
 =?us-ascii?Q?0FClKs+imW3pXl6H6Lx/2riMmgMBP/lGtJHj2wLxdwPv88zQ98+3uexm5nUe?=
 =?us-ascii?Q?pJO+++bZf3cRUxgmFMW2q3Nmw8amkMSaznludUvJB8hGNiDO7RXhg+HJNIwP?=
 =?us-ascii?Q?K3hKhWJ7vJeX0k+vBKI71krDdfBTxqTi8rk4ShB8gye1BSkIMVRhiTTszmk4?=
 =?us-ascii?Q?/51p57ZIOx39EI2n4D4X+w2uDJXFoyBDFKmXwoo+fy9EhKpQAmzIB+f6Fcry?=
 =?us-ascii?Q?oLtIG2T0DzH50hRVAUGCxKSWjW1GgN/RbkI4LoihHuNej0TYDVnU+uTMKXSN?=
 =?us-ascii?Q?OS2ojv3od0daFG0DY9EfPZpi4K/GFiOFNqgg49hZip2fgJK386TL5mAz41Bz?=
 =?us-ascii?Q?CxzYIAa0r/FoZqksDplDby1cEcXV/28uyYJa8IhbTZNRF4bsOW1FTSFc4Ayy?=
 =?us-ascii?Q?HWThQQHpggVHc+NN/GdHhqS7kEExQOrg6yIY?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700013)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Aug 2025 10:52:54.7565
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 87e8eb8b-8f34-40eb-fd78-08dde16a0c70
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF00004681.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7358

amd-cppc is the AMD CPU performance scaling driver that introduces a
new CPU frequency control mechanism. The new mechanism is based on
Collaborative Processor Performance Control (CPPC) which is a finer grain
frequency management than legacy ACPI hardware P-States.
Current AMD CPU platforms are using the ACPI P-states driver to
manage CPU frequency and clocks with switching only in 3 P-states, while the
new amd-cppc allows a more flexible, low-latency interface for Xen
to directly communicate the performance hints to hardware.

"amd-cppc" driver is responsible for implementing CPPC in passive mode, which
still leverages Xen governors such as *ondemand*, *performance*, etc, to
calculate the performance hints. In the future, we will introduce an advanced
active mode to enable autonomous performence level selection.

Field epp, energy performance preference, which only has meaning when active
mode is enabled and will be introduced later in details, so we read
pre-defined BIOS value for it in passive mode.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v1 -> v2:
- re-construct union caps and req to have anonymous struct instead
- avoid "else" when the earlier if() ends in an unconditional control flow statement
- Add check to avoid chopping off set bits from cast
- make pointers pointer-to-const wherever possible
- remove noisy log
- exclude families before 0x17 before CPPC-feature MSR op
- remove useless variable helpers
- use xvzalloc and XVFREE
- refactor error handling as ENABLE bit can only be cleared by reset
---
v2 -> v3:
- Move all MSR-definations to msr-index.h and follow the required style
- Refactor opening figure braces for struct/union
- Sort overlong lines throughout the series
- Make offset/res int covering underflow scenario
- Error out when amd_max_freq_mhz isn't set
- Introduce amd_get_freq(name) macro to decrease redundancy
- Supported CPU family checked ahead of smp-function
- Nominal freq shall be checked between the [min, max]
- Use APERF/MPREF to calculate current frequency
- Use amd_cppc_cpufreq_cpu_exit() to tidy error path
---
v3 -> v4:
- verbose print shall come with a CPU number
- deal with res <= 0 in amd_cppc_khz_to_perf()
- introduce a single helper amd_get_lowest_or_nominal_freq() to cover both
lowest and nominal scenario
- reduce abuse of wrmsr_safe()/rdmsr_safe() with wrmsrl()/rdmsrl()
- move cf_check from amd_cppc_write_request() to amd_cppc_write_request_msrs()
- add comment to explain why setting non_linear_lowest in passive mode
- add check to ensure perf values in
lowest <= non_linear_lowest <= nominal <= highset
- refactor comment for "data->err != 0" scenario
- use "data->err" instead of -ENODEV
- add U suffixes for all msr macro
---
v4 -> v5:
- all freq-values shall be unsigned int type
- remove shortcuts as it is rarely taken
- checking cpc.nominal_mhz and cpc.lowest_mhz are non-zero values is enough
- drop the explicit type cast
- null pointer check is in no need for internal functions
- change amd_get_lowest_or_nominal_freq() to amd_get_cpc_freq()
- clarifying function-wide that the calculated frequency result is to be in kHz
- use array notation
- with cpu_has_cppc check, no need to do cpu family check
---
v5 -> v6
- replace "AMD_CPPC" with "AMD-CPPC" in message
- add equation(mul,div) non-zero check
- replace -EINVAL with -EOPNOTSUPP
- refactor comment
---
v6 -> v7
- used > in place of !=, to not only serve a doc aspect, but also allow to
drop one part
- unify with UINT8_MAX
- return -ERANGE as we reject perf values of 0 as invalid
- replace uint32_t with unsigned int
- Move some epp introduction here, otherwise we will mis-handle this field here
by always clearing it
---
 xen/arch/x86/acpi/cpufreq/amd-cppc.c | 418 ++++++++++++++++++++++++++-
 xen/arch/x86/cpu/amd.c               |   8 +-
 xen/arch/x86/include/asm/amd.h       |   2 +
 xen/arch/x86/include/asm/msr-index.h |   6 +
 xen/include/public/sysctl.h          |   1 +
 5 files changed, 430 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/acpi/cpufreq/amd-cppc.c b/xen/arch/x86/acpi/cpufreq/amd-cppc.c
index 3377783f7e..df9ed52237 100644
--- a/xen/arch/x86/acpi/cpufreq/amd-cppc.c
+++ b/xen/arch/x86/acpi/cpufreq/amd-cppc.c
@@ -14,7 +14,98 @@
 #include <xen/domain.h>
 #include <xen/init.h>
 #include <xen/param.h>
+#include <xen/percpu.h>
+#include <xen/xvmalloc.h>
 #include <acpi/cpufreq/cpufreq.h>
+#include <asm/amd.h>
+#include <asm/msr.h>
+
+#define amd_cppc_err(cpu, fmt, args...)                             \
+    printk(XENLOG_ERR "AMD-CPPC: CPU%u error: " fmt, cpu, ## args)
+#define amd_cppc_warn(cpu, fmt, args...)                            \
+    printk(XENLOG_WARNING "AMD-CPPC: CPU%u warning: " fmt, cpu, ## args)
+#define amd_cppc_verbose(cpu, fmt, args...)                         \
+({                                                                  \
+    if ( cpufreq_verbose )                                          \
+        printk(XENLOG_DEBUG "AMD-CPPC: CPU%u " fmt, cpu, ## args);  \
+})
+
+/*
+ * Field highest_perf, nominal_perf, lowest_nonlinear_perf, and lowest_perf
+ * contain the values read from CPPC capability MSR. They represent the limits
+ * of managed performance range as well as the dynamic capability, which may
+ * change during processor operation
+ * Field highest_perf represents highest performance, which is the absolute
+ * maximum performance an individual processor may reach, assuming ideal
+ * conditions. This performance level may not be sustainable for long
+ * durations and may only be achievable if other platform components
+ * are in a specific state; for example, it may require other processors be
+ * in an idle state. This would be equivalent to the highest frequencies
+ * supported by the processor.
+ * Field nominal_perf represents maximum sustained performance level of the
+ * processor, assuming ideal operating conditions. All cores/processors are
+ * expected to be able to sustain their nominal performance state
+ * simultaneously.
+ * Field lowest_nonlinear_perf represents Lowest Nonlinear Performance, which
+ * is the lowest performance level at which nonlinear power savings are
+ * achieved. Above this threshold, lower performance levels should be
+ * generally more energy efficient than higher performance levels. So in
+ * traditional terms, this represents the P-state range of performance levels.
+ * Field lowest_perf represents the absolute lowest performance level of the
+ * platform. Selecting it may cause an efficiency penalty but should reduce
+ * the instantaneous power consumption of the processor. So in traditional
+ * terms, this represents the T-state range of performance levels.
+ *
+ * Field max_perf, min_perf, des_perf store the values for CPPC request MSR.
+ * Software passes performance goals through these fields.
+ * Field max_perf conveys the maximum performance level at which the platform
+ * may run. And it may be set to any performance value in the range
+ * [lowest_perf, highest_perf], inclusive.
+ * Field min_perf conveys the minimum performance level at which the platform
+ * may run. And it may be set to any performance value in the range
+ * [lowest_perf, highest_perf], inclusive but must be less than or equal to
+ * max_perf.
+ * Field des_perf conveys performance level Xen governor is requesting. And it
+ * may be set to any performance value in the range [min_perf, max_perf],
+ * inclusive.
+ * Field epp represents energy performance preference, which only has meaning
+ * when active mode is enabled.
+ */
+struct amd_cppc_drv_data
+{
+    const struct xen_processor_cppc *cppc_data;
+    union {
+        uint64_t raw;
+        struct {
+            unsigned int lowest_perf:8;
+            unsigned int lowest_nonlinear_perf:8;
+            unsigned int nominal_perf:8;
+            unsigned int highest_perf:8;
+            unsigned int :32;
+        };
+    } caps;
+    union {
+        uint64_t raw;
+        struct {
+            unsigned int max_perf:8;
+            unsigned int min_perf:8;
+            unsigned int des_perf:8;
+            unsigned int epp:8;
+            unsigned int :32;
+        };
+    } req;
+
+    int err;
+};
+
+static DEFINE_PER_CPU_READ_MOSTLY(struct amd_cppc_drv_data *,
+                                  amd_cppc_drv_data);
+/*
+ * Core max frequency read from PstateDef as anchor point
+ * for freq-to-perf transition
+ */
+static DEFINE_PER_CPU_READ_MOSTLY(unsigned int, pxfreq_mhz);
+static DEFINE_PER_CPU_READ_MOSTLY(uint8_t, epp_init);
 
 static bool __init amd_cppc_handle_option(const char *s, const char *end)
 {
@@ -50,10 +141,335 @@ int __init amd_cppc_cmdline_parse(const char *s, const char *e)
     return 0;
 }
 
+/*
+ * If CPPC lowest_freq and nominal_freq registers are exposed then we can
+ * use them to convert perf to freq and vice versa. The conversion is
+ * extrapolated as an linear function passing by the 2 points:
+ *  - (Low perf, Low freq)
+ *  - (Nominal perf, Nominal freq)
+ * Parameter freq is always in kHz.
+ */
+static int amd_cppc_khz_to_perf(const struct amd_cppc_drv_data *data,
+                                unsigned int freq, uint8_t *perf)
+{
+    const struct xen_processor_cppc *cppc_data = data->cppc_data;
+    unsigned int mul, div;
+    int offset = 0, res;
+
+    if ( cppc_data->cpc.lowest_mhz &&
+         data->caps.nominal_perf > data->caps.lowest_perf &&
+         cppc_data->cpc.nominal_mhz > cppc_data->cpc.lowest_mhz )
+    {
+        mul = data->caps.nominal_perf - data->caps.lowest_perf;
+        div = cppc_data->cpc.nominal_mhz - cppc_data->cpc.lowest_mhz;
+
+        /*
+         * We don't need to convert to kHz for computing offset and can
+         * directly use nominal_mhz and lowest_mhz as the division
+         * will remove the frequency unit.
+         */
+        offset = data->caps.nominal_perf -
+                 (mul * cppc_data->cpc.nominal_mhz) / div;
+    }
+    else
+    {
+        /* Read Processor Max Speed(MHz) as anchor point */
+        mul = data->caps.highest_perf;
+        div = this_cpu(pxfreq_mhz);
+        if ( !div )
+            return -EOPNOTSUPP;
+    }
+
+    res = offset + (mul * freq) / (div * 1000);
+    if ( res > UINT8_MAX )
+    {
+        printk_once(XENLOG_WARNING
+                    "Perf value exceeds maximum value 255: %d\n", res);
+        *perf = UINT8_MAX;
+        return 0;
+    }
+    if ( res <= 0 )
+    {
+        printk_once(XENLOG_WARNING
+                    "Perf value smaller than minimum value 0: %d\n", res);
+        return -ERANGE;
+    }
+    *perf = res;
+
+    return 0;
+}
+
+/*
+ * _CPC may define nominal frequecy and lowest frequency, if not, use
+ * Processor Max Speed as anchor point to calculate.
+ * Output freq stores cpc frequency in kHz
+ */
+static int amd_get_cpc_freq(const struct amd_cppc_drv_data *data,
+                            unsigned int cpc_mhz, uint8_t perf,
+                            unsigned int *freq)
+{
+    unsigned int mul, div, res;
+
+    if ( cpc_mhz )
+    {
+        /* Switch to kHz */
+        *freq = cpc_mhz * 1000;
+        return 0;
+    }
+
+    /* Read Processor Max Speed(MHz) as anchor point */
+    mul = this_cpu(pxfreq_mhz);
+    if ( !mul )
+        return -EOPNOTSUPP;
+    div = data->caps.highest_perf;
+    res = (mul * perf * 1000) / div;
+    if ( unlikely(!res) )
+        return -EOPNOTSUPP;
+
+    return 0;
+}
+
+/* Output max_freq stores calculated maximum frequency in kHz */
+static int amd_get_max_freq(const struct amd_cppc_drv_data *data,
+                            unsigned int *max_freq)
+{
+    unsigned int nom_freq = 0;
+    int res;
+
+    res = amd_get_cpc_freq(data, data->cppc_data->cpc.nominal_mhz,
+                           data->caps.nominal_perf, &nom_freq);
+    if ( res )
+        return res;
+
+    *max_freq = (data->caps.highest_perf * nom_freq) / data->caps.nominal_perf;
+
+    return 0;
+}
+
+static int cf_check amd_cppc_cpufreq_verify(struct cpufreq_policy *policy)
+{
+    cpufreq_verify_within_limits(policy, policy->cpuinfo.min_freq,
+                                 policy->cpuinfo.max_freq);
+
+    return 0;
+}
+
+static void cf_check amd_cppc_write_request_msrs(void *info)
+{
+    const struct amd_cppc_drv_data *data = info;
+
+    wrmsrl(MSR_AMD_CPPC_REQ, data->req.raw);
+}
+
+static void amd_cppc_write_request(unsigned int cpu, uint8_t min_perf,
+                                   uint8_t des_perf, uint8_t max_perf,
+                                   uint8_t epp)
+{
+    struct amd_cppc_drv_data *data = per_cpu(amd_cppc_drv_data, cpu);
+    uint64_t prev = data->req.raw;
+
+    data->req.min_perf = min_perf;
+    data->req.max_perf = max_perf;
+    data->req.des_perf = des_perf;
+    data->req.epp = epp;
+
+    if ( prev == data->req.raw )
+        return;
+
+    on_selected_cpus(cpumask_of(cpu), amd_cppc_write_request_msrs, data, 1);
+}
+
+static int cf_check amd_cppc_cpufreq_target(struct cpufreq_policy *policy,
+                                            unsigned int target_freq,
+                                            unsigned int relation)
+{
+    unsigned int cpu = policy->cpu;
+    const struct amd_cppc_drv_data *data = per_cpu(amd_cppc_drv_data, cpu);
+    uint8_t des_perf;
+    int res;
+
+    if ( unlikely(!target_freq) )
+        return 0;
+
+    res = amd_cppc_khz_to_perf(data, target_freq, &des_perf);
+    if ( res )
+        return res;
+
+    /*
+     * Having a performance level lower than the lowest nonlinear
+     * performance level, such as, lowest_perf <= perf <= lowest_nonliner_perf,
+     * may actually cause an efficiency penalty, So when deciding the min_perf
+     * value, we prefer lowest nonlinear performance over lowest performance.
+     */
+    amd_cppc_write_request(policy->cpu, data->caps.lowest_nonlinear_perf,
+                           des_perf, data->caps.highest_perf,
+                           /* Pre-defined BIOS value for passive mode */
+                           per_cpu(epp_init, policy->cpu));
+    return 0;
+}
+
+static void cf_check amd_cppc_init_msrs(void *info)
+{
+    struct cpufreq_policy *policy = info;
+    struct amd_cppc_drv_data *data = this_cpu(amd_cppc_drv_data);
+    uint64_t val;
+    unsigned int min_freq = 0, nominal_freq = 0, max_freq;
+
+    /* Package level MSR */
+    rdmsrl(MSR_AMD_CPPC_ENABLE, val);
+    /*
+     * Only when Enable bit is on, the hardware will calculate the processorâ€™s
+     * performance capabilities and initialize the performance level fields in
+     * the CPPC capability registers.
+     */
+    if ( !(val & AMD_CPPC_ENABLE) )
+    {
+        val |= AMD_CPPC_ENABLE;
+        wrmsrl(MSR_AMD_CPPC_ENABLE, val);
+    }
+
+    rdmsrl(MSR_AMD_CPPC_CAP1, data->caps.raw);
+
+    if ( data->caps.highest_perf == 0 || data->caps.lowest_perf == 0 ||
+         data->caps.nominal_perf == 0 || data->caps.lowest_nonlinear_perf == 0 ||
+         data->caps.lowest_perf > data->caps.lowest_nonlinear_perf ||
+         data->caps.lowest_nonlinear_perf > data->caps.nominal_perf ||
+         data->caps.nominal_perf > data->caps.highest_perf )
+    {
+        amd_cppc_err(policy->cpu,
+                     "Out of range values: highest(%u), lowest(%u), nominal(%u), lowest_nonlinear(%u)\n",
+                     data->caps.highest_perf, data->caps.lowest_perf,
+                     data->caps.nominal_perf, data->caps.lowest_nonlinear_perf);
+        goto err;
+    }
+
+    amd_process_freq(&cpu_data[policy->cpu],
+                     NULL, NULL, &this_cpu(pxfreq_mhz));
+
+    data->err = amd_get_cpc_freq(data, data->cppc_data->cpc.lowest_mhz,
+                                 data->caps.lowest_perf, &min_freq);
+    if ( data->err )
+        return;
+
+    data->err = amd_get_cpc_freq(data, data->cppc_data->cpc.nominal_mhz,
+                                 data->caps.nominal_perf, &nominal_freq);
+    if ( data->err )
+        return;
+
+    data->err = amd_get_max_freq(data, &max_freq);
+    if ( data->err )
+        return;
+
+    if ( min_freq > nominal_freq || nominal_freq > max_freq )
+    {
+        amd_cppc_err(policy->cpu,
+                     "min(%u), or max(%u), or nominal(%u) freq value is incorrect\n",
+                     min_freq, max_freq, nominal_freq);
+        goto err;
+    }
+
+    policy->min = min_freq;
+    policy->max = max_freq;
+
+    policy->cpuinfo.min_freq = min_freq;
+    policy->cpuinfo.max_freq = max_freq;
+    policy->cpuinfo.perf_freq = nominal_freq;
+    /*
+     * Set after policy->cpuinfo.perf_freq, as we are taking
+     * APERF/MPERF average frequency as current frequency.
+     */
+    policy->cur = cpufreq_driver_getavg(policy->cpu, GOV_GETAVG);
+
+    /* Store pre-defined BIOS value for passive mode */
+    rdmsrl(MSR_AMD_CPPC_REQ, val);
+    this_cpu(epp_init) = MASK_EXTR(val, AMD_CPPC_EPP_MASK);
+
+    return;
+
+ err:
+    /*
+     * No fallback shceme is available here, see more explanation at call
+     * site in amd_cppc_cpufreq_cpu_init().
+     */
+    data->err = -EINVAL;
+}
+
+/*
+ * AMD CPPC driver is different than legacy ACPI hardware P-State,
+ * which has a finer grain frequency range between the highest and lowest
+ * frequency. And boost frequency is actually the frequency which is mapped on
+ * highest performance ratio. The legacy P0 frequency is actually mapped on
+ * nominal performance ratio.
+ */
+static void amd_cppc_boost_init(struct cpufreq_policy *policy,
+                                const struct amd_cppc_drv_data *data)
+{
+    if ( data->caps.highest_perf <= data->caps.nominal_perf )
+        return;
+
+    policy->turbo = CPUFREQ_TURBO_ENABLED;
+}
+
+static int cf_check amd_cppc_cpufreq_cpu_exit(struct cpufreq_policy *policy)
+{
+    XVFREE(per_cpu(amd_cppc_drv_data, policy->cpu));
+
+    return 0;
+}
+
+static int cf_check amd_cppc_cpufreq_cpu_init(struct cpufreq_policy *policy)
+{
+    unsigned int cpu = policy->cpu;
+    struct amd_cppc_drv_data *data;
+
+    data = xvzalloc(struct amd_cppc_drv_data);
+    if ( !data )
+        return -ENOMEM;
+
+    data->cppc_data = &processor_pminfo[cpu]->cppc_data;
+
+    per_cpu(amd_cppc_drv_data, cpu) = data;
+
+    on_selected_cpus(cpumask_of(cpu), amd_cppc_init_msrs, policy, 1);
+
+    /*
+     * The enable bit is sticky, as we need to enable it at the very first
+     * begining, before CPPC capability values sanity check.
+     * If error path is taken effective, not only amd-cppc cpufreq core fails
+     * to initialize, but also we could not fall back to legacy P-states
+     * driver, irrespective of the command line specifying a fallback option.
+     */
+    if ( data->err )
+    {
+        amd_cppc_err(cpu, "Could not initialize cpufreq core in CPPC mode\n");
+        amd_cppc_cpufreq_cpu_exit(policy);
+        return data->err;
+    }
+
+    policy->governor = cpufreq_opt_governor ? : CPUFREQ_DEFAULT_GOVERNOR;
+
+    amd_cppc_boost_init(policy, data);
+
+    amd_cppc_verbose(policy->cpu,
+                     "CPU initialized with amd-cppc passive mode\n");
+
+    return 0;
+}
+
+static const struct cpufreq_driver __initconst_cf_clobber
+amd_cppc_cpufreq_driver =
+{
+    .name   = XEN_AMD_CPPC_DRIVER_NAME,
+    .verify = amd_cppc_cpufreq_verify,
+    .target = amd_cppc_cpufreq_target,
+    .init   = amd_cppc_cpufreq_cpu_init,
+    .exit   = amd_cppc_cpufreq_cpu_exit,
+};
+
 int __init amd_cppc_register_driver(void)
 {
     if ( !cpu_has_cppc )
         return -ENODEV;
 
-    return -EOPNOTSUPP;
+    return cpufreq_register_driver(&amd_cppc_cpufreq_driver);
 }
diff --git a/xen/arch/x86/cpu/amd.c b/xen/arch/x86/cpu/amd.c
index eb428f284e..1b9af1270c 100644
--- a/xen/arch/x86/cpu/amd.c
+++ b/xen/arch/x86/cpu/amd.c
@@ -613,10 +613,10 @@ static unsigned int attr_const amd_parse_freq(unsigned int family,
 	return freq;
 }
 
-static void amd_process_freq(const struct cpuinfo_x86 *c,
-			     unsigned int *low_mhz,
-			     unsigned int *nom_mhz,
-			     unsigned int *hi_mhz)
+void amd_process_freq(const struct cpuinfo_x86 *c,
+		      unsigned int *low_mhz,
+		      unsigned int *nom_mhz,
+		      unsigned int *hi_mhz)
 {
 	unsigned int idx = 0, h;
 	uint64_t hi, lo, val;
diff --git a/xen/arch/x86/include/asm/amd.h b/xen/arch/x86/include/asm/amd.h
index 9c9599a622..72df42a6f6 100644
--- a/xen/arch/x86/include/asm/amd.h
+++ b/xen/arch/x86/include/asm/amd.h
@@ -173,5 +173,7 @@ extern bool amd_virt_spec_ctrl;
 bool amd_setup_legacy_ssbd(void);
 void amd_set_legacy_ssbd(bool enable);
 void amd_set_cpuid_user_dis(bool enable);
+void amd_process_freq(const struct cpuinfo_x86 *c, unsigned int *low_mhz,
+                      unsigned int *nom_mhz, unsigned int *hi_mhz);
 
 #endif /* __AMD_H__ */
diff --git a/xen/arch/x86/include/asm/msr-index.h b/xen/arch/x86/include/asm/msr-index.h
index 428d993ee8..6abf154887 100644
--- a/xen/arch/x86/include/asm/msr-index.h
+++ b/xen/arch/x86/include/asm/msr-index.h
@@ -241,6 +241,12 @@
 
 #define MSR_AMD_CSTATE_CFG                  0xc0010296U
 
+#define MSR_AMD_CPPC_CAP1                   0xc00102b0U
+#define MSR_AMD_CPPC_ENABLE                 0xc00102b1U
+#define  AMD_CPPC_ENABLE                    (_AC(1, ULL) << 0)
+#define MSR_AMD_CPPC_REQ                    0xc00102b3U
+#define  AMD_CPPC_EPP_MASK                  (_AC(0xff, ULL) << 24)
+
 /*
  * Legacy MSR constants in need of cleanup.  No new MSRs below this comment.
  */
diff --git a/xen/include/public/sysctl.h b/xen/include/public/sysctl.h
index aafa7fcf2b..aa29a5401c 100644
--- a/xen/include/public/sysctl.h
+++ b/xen/include/public/sysctl.h
@@ -453,6 +453,7 @@ struct xen_set_cppc_para {
     uint32_t activity_window;
 };
 
+#define XEN_AMD_CPPC_DRIVER_NAME "amd-cppc"
 #define XEN_HWP_DRIVER_NAME "hwp"
 
 /*
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 22 10:53:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 10:53:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089868.1447405 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upPOM-0002Ps-9I; Fri, 22 Aug 2025 10:53:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089868.1447405; Fri, 22 Aug 2025 10: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 1upPOM-0002Oo-0u; Fri, 22 Aug 2025 10:53:06 +0000
Received: by outflank-mailman (input) for mailman id 1089868;
 Fri, 22 Aug 2025 10:53:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JeQb=3C=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1upPOK-00083s-TS
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 10:53:04 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20611.outbound.protection.outlook.com
 [2a01:111:f403:2417::611])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2d344f37-7f46-11f0-b898-0df219b8e170;
 Fri, 22 Aug 2025 12:53:03 +0200 (CEST)
Received: from BN9PR03CA0542.namprd03.prod.outlook.com (2603:10b6:408:138::7)
 by CY5PR12MB6177.namprd12.prod.outlook.com (2603:10b6:930:26::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.19; Fri, 22 Aug
 2025 10:52:59 +0000
Received: from BN1PEPF0000467F.namprd03.prod.outlook.com
 (2603:10b6:408:138:cafe::94) by BN9PR03CA0542.outlook.office365.com
 (2603:10b6:408:138::7) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.16 via Frontend Transport; Fri,
 22 Aug 2025 10:52:59 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN1PEPF0000467F.mail.protection.outlook.com (10.167.243.84) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Fri, 22 Aug 2025 10:52:58 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) 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; Fri, 22 Aug 2025 05:52:57 -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>
X-Inumbo-ID: 2d344f37-7f46-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=o93tv/iZkBAB/LD1lXmxm58CvE3bkuDJl/OzKKNRuxeiIOP0coFKgpoDl+TKfWm9n0TSwGmGnAANHFRAcz7saPdPuW7kaAbU0Cm4M8U/sxE5MraCm1AyS4nNXLadWcBXppITMHkLJMmOgxKO+0/6huDk8+RaCTGV9qbl/2kAGXoV2ZjVE4m9+IqIrPX7SY/2YwGtSDkmBwe9wiw30A1qXD2f4D2TN/ZrfS6yj8Fgz44XbZblyScQf0dxFE56HtCZCmtvWbVG5TaenPOGmKS0beEUmR4l3Fx88kMiB112s+28lDujnUOT4h6m113GdQzNk96Pmblc1kSMkNYkm8e+oA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=SLTbYK1njhhPAZqsErsutbiJeSbgNEMnbaN3ecpHBeU=;
 b=XSs/pRnEB1ZplZHrUxN90x0k+dNwwkPc2XbQo7L1R3x7QpfQxA/7zUO+f040weV5ZK4aaTJo6LGZ5t5lG/mMBK3B9MaJvFid2ij2wEvKTjo8Y2lrQhy8clNncFBftt4Ezued8cO/t2cIWKY1Q1nKhShaFnq+EPniMLmMQ6ztVQZdw1hj5KmtiybnBzqIiJKEHnpC86CceXuzPIS9Z3T7UJI8B43nAhnBF6rqueLoT1CrRRWqXMZzEFuvgGOFlv/l21zk/eGCF/iJrW8drp55MBOrqE5puJEVa0nlV7V9IDrGy6cl5zplTWJDWk2z1WGAZbXl4KaLEzJ1gw/4q4LtXw==
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=SLTbYK1njhhPAZqsErsutbiJeSbgNEMnbaN3ecpHBeU=;
 b=RXgjVKt57B7EZhZ2a25ScE5Ib53PDZwOCuropO7p630WLdE1tBf4xI9keal4Avmdt35wn9AMZ69rTguHQkZiAeUWzzdUKphAjtoqhlwTpq3RYH89X6y4oEisMicgpd1gj2DGKH9ApSByz6T2wuNxebg/1EKqZCInJh1jo0c3Y3Q=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Jan Beulich
	<jbeulich@suse.com>
Subject: [PATCH v7 10/13] xen/cpufreq: get performance policy from governor set via xenpm
Date: Fri, 22 Aug 2025 18:52:15 +0800
Message-ID: <20250822105218.3601273-11-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250822105218.3601273-1-Penny.Zheng@amd.com>
References: <20250822105218.3601273-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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN1PEPF0000467F:EE_|CY5PR12MB6177:EE_
X-MS-Office365-Filtering-Correlation-Id: 117d4c25-a778-4d9b-de7b-08dde16a0ec1
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|36860700013|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?for70UCzxhOhHO5z+o6Av19OWlp13enNA9Vt9a3xm0bVFLtRt/8sAiodfTaY?=
 =?us-ascii?Q?AUA2xtSIUor+qgjnRbksKM3YQBcjmEJT4+mg4eb/rtDTXSkYWUuOUUOxxW1y?=
 =?us-ascii?Q?b1uEVPGms26gqRqaeVjlrxwyrRWGROBw4BYZiQ2BV5iA/oQCUZW5bAfaeJeO?=
 =?us-ascii?Q?HfPEqoQ9kTXTH5zvsD7RqpSTaJC0sTR9tDWyxN6y4CF8+Jz8BnD7YIWunLoY?=
 =?us-ascii?Q?ATUucuvfvBu0AmG+9jzr2OOA+qOJr55DvMFCJT3UB+1FSIYQldF98b51P2vx?=
 =?us-ascii?Q?fper8tlrrrsQfIsPbF3DPDxu1iSvZPMCsxwCw/dm/6eWWxI+T0s9v96K9whF?=
 =?us-ascii?Q?mBPdP6E1DzgH/T5gAp999GefkHPNsnQN/aqF2s9REyQzT8g4LIUZi4w99uEB?=
 =?us-ascii?Q?cKw1d1Is96ivi8XkroT0SDpfJAyFSY9+l0oqtTi6V0sY2TtgyObcADNRYAG1?=
 =?us-ascii?Q?FKIptXA5ijoyWv4N7wKlfsgCEJiPQtC+44YqQWNlIEzDN6e+jwQgQnBAuH4q?=
 =?us-ascii?Q?KB8WuqLehv9+JyOomPk0pTvzOGBtMObIiB6oE3tXTLufSa85Scv2ZoltIdKb?=
 =?us-ascii?Q?eP8cT7AnK/0pJcSK5TlomjaCHAfd6N43t5kBQb03tQ25N1H0HDQimfQ/ETaB?=
 =?us-ascii?Q?cRWxmQhtV2a7yyuddvNjQ/KeExtzem58gG60II+pSSuk1iAtaRlm7PMPhb+C?=
 =?us-ascii?Q?KmVXAO3hdYQmcBwiJqold7a2gU3BoiMZWqb0to4OP+nBH9Rd0T+sce0GFSwi?=
 =?us-ascii?Q?YArBUIGzFT56otfHNwQ7UfP74FqL1zCTVglsF8hnzBNTMV8tptXAnBUaN+eQ?=
 =?us-ascii?Q?AbO553M+/mJtBxiSmqH0pAS2LJxBNbjdpB6d2D6vflf3gxNlbg0h29VF8SFa?=
 =?us-ascii?Q?nIRnW3SUg+nGumsOM6LHwSQtxND3bJyYDb2bGMl1OLU4Pu+QUA+MlZ8QWBDv?=
 =?us-ascii?Q?trhFziIcayVrtwAkEPv6gdShPTd40FpNn9vtINHYe0qiuwnUqaXHv6aWQUmV?=
 =?us-ascii?Q?o4AYMu7FYJlsE2ZnuNedaJM3Z4S+EB+Oi4oPQasLyxZnyZ5uqlYARCNXdf7W?=
 =?us-ascii?Q?3n2AnFzB+4Mqj0SMnzKz+Iko3ag1/4C7nP+qrQQVxsP72fCZFs4kfaTipwFn?=
 =?us-ascii?Q?05vCh1E6RvpEqdu5fzSAjBSd9WfxgOMd47tv7QpfEhLlb5BMijBcRxfcPgK5?=
 =?us-ascii?Q?DpB+VIkHQp3LtJOhqD/6f0RCL3x5oAh+FWWZtXZ5b+4Y7qCz1/jq/gs1krMg?=
 =?us-ascii?Q?+peK2qfg+Kvn1Ne5mjuifPeznWpUU7912LcItdv4XY/zzIVXWdqV9ryqZbU5?=
 =?us-ascii?Q?kYgZPbsrC36MfpSEU2uJiCMjH/oy/i0M+zkPa5nI9Q3zVJJ39jeHxh71+aL1?=
 =?us-ascii?Q?7j/oUhgR4j6ME0fOIzzkiIx2L84WjQofSwD+58Sy1q6gTaVfk87AueOkia02?=
 =?us-ascii?Q?zx5Izxs5YDjSLWnyCzxo/mLC0dJ4bNDQ8ny4PkF8S2ks9hMseLiB+bWQIv+Q?=
 =?us-ascii?Q?3VrHNWZORF5sGPm6qe18j52V3nU6lNWnDSap?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Aug 2025 10:52:58.6415
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 117d4c25-a778-4d9b-de7b-08dde16a0ec1
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF0000467F.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6177

Even if Xen governor is not used in amd-cppc active mode, we could
somehow deduce which performance policy (CPUFREQ_POLICY_xxx) user wants to
apply through which governor they choose, such as:
If user chooses performance governor, they want maximum performance, then
the policy shall be CPUFREQ_POLICY_PERFORMANCE
If user chooses powersave governor, they want the least power consumption,
then the policy shall be CPUFREQ_POLICY_POWERSAVE
Function cpufreq_policy_from_governor() is responsible for above transition,
and it shall be also effective when users setting new governor through xenpm.

userspace are forbidden choices, and if users specify such options, we shall
not only give warning message to suggest using "xenpm set-cpufreq-cppc", but
also error out.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v4 -> v5:
- new commit
---
v5 -> v6:
- refactor warning message
---
v6 -> v7:
- move policy->policy set where it firstly gets introduced
- refactor commit message
---
 xen/drivers/acpi/pm-op.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/xen/drivers/acpi/pm-op.c b/xen/drivers/acpi/pm-op.c
index 427656c48c..6991616c1d 100644
--- a/xen/drivers/acpi/pm-op.c
+++ b/xen/drivers/acpi/pm-op.c
@@ -206,6 +206,14 @@ static int set_cpufreq_gov(struct xen_sysctl_pm_op *op)
     if ( new_policy.governor == NULL )
         return -EINVAL;
 
+    new_policy.policy = cpufreq_policy_from_governor(new_policy.governor);
+    if ( new_policy.policy == CPUFREQ_POLICY_UNKNOWN )
+    {
+        printk("Failed to get performance policy from %s, Try \"xenpm set-cpufreq-cppc\"\n",
+               new_policy.governor->name);
+        return -EINVAL;
+    }
+
     return __cpufreq_set_policy(old_policy, &new_policy);
 }
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 22 11:01:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 11:01:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089940.1447421 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upPWA-0006Lo-6E; Fri, 22 Aug 2025 11:01:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089940.1447421; Fri, 22 Aug 2025 11:01: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 1upPWA-0006Kp-05; Fri, 22 Aug 2025 11:01:10 +0000
Received: by outflank-mailman (input) for mailman id 1089940;
 Fri, 22 Aug 2025 11:01:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JeQb=3C=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1upPOW-00083s-Al
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 10:53:16 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on2060f.outbound.protection.outlook.com
 [2a01:111:f403:2413::60f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3157e0b9-7f46-11f0-b898-0df219b8e170;
 Fri, 22 Aug 2025 12:53:11 +0200 (CEST)
Received: from BN9PR03CA0085.namprd03.prod.outlook.com (2603:10b6:408:fc::30)
 by LV3PR12MB9356.namprd12.prod.outlook.com (2603:10b6:408:20c::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.15; Fri, 22 Aug
 2025 10:53:03 +0000
Received: from BN1PEPF00005FFC.namprd05.prod.outlook.com
 (2603:10b6:408:fc:cafe::be) by BN9PR03CA0085.outlook.office365.com
 (2603:10b6:408:fc::30) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.18 via Frontend Transport; Fri,
 22 Aug 2025 10:53:03 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN1PEPF00005FFC.mail.protection.outlook.com (10.167.243.228) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Fri, 22 Aug 2025 10:53:03 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) 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; Fri, 22 Aug 2025 05:52:58 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3157e0b9-7f46-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tyjZe7qMs0m+XKVryrv2uWD7t0o/ooenefI2R1r1ayGwMEuOreuwuYOTn8vKFgRPyYhXlrbR1T2Mg6atWjExJJKY+6/QpCwCdzlKiUlGl3zlGnO35PfufcofH6AGkrxJdIeS1jqOVmX/xCL/rJ/3OvjTpQeqG+ulSwl+4SVDLXjfXZtIFwLrm4vfEWFvF65IRSjWvx6Bq/+mlLbQHlOpruVyt/Ztt/SGiHT173d+4WTnlX8KSvjnznC/pSWE4bq5QC4bcYUkFh2dLY865SgLfCTPOrMeajEEK33TYcFZ1tUHN+diL71rg3ULI4ZKg1UmDuMzpFd6JcvV/3d6pHPGkA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xDAGWRtenbTe+kY1SMfwJ8G/4UAXKyN7dLr6a70sMqg=;
 b=xJYoFGq762yqgP3wv0JTyr8ogHRsrxVPb6NCYF/VstiupQLk/M22fl2RrRix2jrkbaZeTYXmCaP+tYwDHWEDFc0dWgiKMVaAxrJ/enMdvurnC9dqnzXBGsJbLk+4djLIgnW/YFnyhGkwd0VPOGzFUImZd+GE03OJESGVyRgCMjzR0m8srOcF2Q+yRc6qtYFW0iK2j9YtWZi4N5XYbilq7rDIG2lpC48pkkxp1WBkWtrp0wDNWfAFSIAmQoXG5Pp6xxiEuwKUVsm0koa/4+2dE9A54F80oSEhRxB7g1B802QAsPTTGptQEC4l+/yTi2nxvh8gVf6s8zML0mAWpchpjg==
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=xDAGWRtenbTe+kY1SMfwJ8G/4UAXKyN7dLr6a70sMqg=;
 b=EXHtlMPAyGbX8py1lf6snf8QJcvaOnGmL8R4hQcpDgoUBf/zIlaef7Vmeyf54ap1rQ485wNwDrOXQMOjw/stnazeUbYXJ4TFpDeNHC+n9fZ01C/FFGct2ZQzNnVFgV6v+SmzCXUwZCHJBZO7EOm8EVIw7tYURnEUNv5vQlb/F/s=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.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>
Subject: [PATCH v7 11/13] tools/cpufreq: extract CPPC para from cpufreq para
Date: Fri, 22 Aug 2025 18:52:16 +0800
Message-ID: <20250822105218.3601273-12-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250822105218.3601273-1-Penny.Zheng@amd.com>
References: <20250822105218.3601273-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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN1PEPF00005FFC:EE_|LV3PR12MB9356:EE_
X-MS-Office365-Filtering-Correlation-Id: fde8d80c-b819-4069-1ff0-08dde16a1189
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|82310400026|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?xoe4wS1Uxa+8dNf7T20Qw0vSEju1VM3Yi/dfMR885JutJwuby+aB4rffhQ5R?=
 =?us-ascii?Q?OafQ9CUCTSkTAlqVYKC2YAVy7FTztSq+nLyOw9vuh/j3v8zI538S0DfmoI/b?=
 =?us-ascii?Q?XSSCASS7824BHEju6+HVXhI5k7TM8jR3aSYReOXWY6ISE1y5krM6K7gkFnQ3?=
 =?us-ascii?Q?wUalHnqeyr0jMgsfo1MA0Pjfrc2LP4fEXHL2GBKI5NEuea+OzRA5cURTPC5P?=
 =?us-ascii?Q?S2sZhcSMa0yo1OLTDOlNImF4Rz4Zv/9uI/Ke73/IXpe5TAFJ9+ZZ54bEu72l?=
 =?us-ascii?Q?I7AvMVkJsVwqOXYJjWkmjxZY+g0pdNS1HNDMGKe41EX3slmeRxTHKzgdFGXP?=
 =?us-ascii?Q?xvU+KMaUfbh3Yy15eDnFXxukg96INf+5Sfaskb4kxv762XTxv5blK5jIxt3n?=
 =?us-ascii?Q?K3UulvjQSsWsK0SgI+NXdB45DeyzStWqSD8/vksfJVs8W/qFqiv1mdxZUlXO?=
 =?us-ascii?Q?AROUuBkRTgTe2OgjjTFv98TiUmwywKhfXCTGIBqMJNGHDgxQhH87Sla3vlm9?=
 =?us-ascii?Q?N7mNbbf//mIFDaiaKVzNg/VjfOrPXhfTqfZ4VeDKqbZN+sCAVlnYFMjrAkCU?=
 =?us-ascii?Q?Lal7E4JDjGUGZHbwlrm+871tGlPihNjUmHU2TDX3MJvvP+JIHkp384+T+XNu?=
 =?us-ascii?Q?ylS7x/FI4QtKSEGA9voXDzZyxc61BID5eTf+goCkvjoIXqUvXP8ouhgmlpE7?=
 =?us-ascii?Q?XePLewMut3Y8xmcAEHIbOHAa+xwHuSIvJSX34Jn/F1eUtm/48Kj6Row2tN73?=
 =?us-ascii?Q?SGD7/6Y87CLXouET7AYEFnE550dJYCbIfBNgjBj2vmvnBqeP8Qlx54u/bWQS?=
 =?us-ascii?Q?kVnWYbLyUuLlAx7DXNBrUcxZSTtYaWIkWzD+GXwSSya8qS+iZ7wGh/XZrCUo?=
 =?us-ascii?Q?u2+n2StOnZRIBQEZ03V3QQZfsaY4PZVeqfTzhu3lOuChumzYQwLJfdY///m3?=
 =?us-ascii?Q?9j/8SnhGVbqex2wBrSNJYfDX+2Jdud0MKfhsH5/7N7dAe84HYB0Hi7NXO3On?=
 =?us-ascii?Q?EtARG9q99ymlGMYy/W+1UIi8K3m/TgbmxtYJFLu4SgQi3zjHMvPL7Yqtt8pc?=
 =?us-ascii?Q?+ccPG8skPXQbkkYFap6mMaICIpmUrrtG2hJBeTRA5HnBHfdOtbvb4yK2UXPf?=
 =?us-ascii?Q?OBqBNQHY9/p8gYXorBSLQshWkfCFYjy+T3kbrXlO9HQDgvge9zRzsNSt596v?=
 =?us-ascii?Q?sjD0QtWejC9RyGd7F/09FLnTo4mxnSomRFiG36b7lb+NdXrU0cJYwCkwSewJ?=
 =?us-ascii?Q?cGaiLMcLjT2pdNNxTaKO2N2k7JJf4UtnCC7pMYUt3p/UAbcjlDLphVB1v4ER?=
 =?us-ascii?Q?eFCJCoH74vejKXH2GwFR+u0KMJkhqCp/MOtRoJNCSJyhynLp1Ls1c9dNfHrL?=
 =?us-ascii?Q?DqVvpyDqAg65Ac32JF3wxlfsapUYedQcY5YH2Qhx6hkwc7EeDsY/MlTWyryQ?=
 =?us-ascii?Q?Ca4KgV5ZM2a1+j3UhesJvKzM7/IwYNE0R0fv7jO0obf+kUN8QOhalKaxxBtW?=
 =?us-ascii?Q?FOY8Z+z68Nh2i3jS90xvY5OgJyKL409Y5yV4?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(82310400026)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Aug 2025 10:53:03.3038
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: fde8d80c-b819-4069-1ff0-08dde16a1189
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF00005FFC.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR12MB9356

We extract cppc info from "struct xen_get_cpufreq_para", where it acts as
a member of union, and share the space with governor info.
However, it may fail in amd-cppc passive mode, in which governor info and
CPPC info could co-exist, and both need to be printed together via xenpm tool.
If we tried to still put it in "struct xen_get_cpufreq_para" (e.g. just move
out of union), "struct xen_get_cpufreq_para" will enlarge too much to further
make xen_sysctl.u exceed 128 bytes.

So we introduce a new sub-field GET_CPUFREQ_CPPC to dedicatedly acquire
CPPC-related para, and make get-cpufreq-para invoke GET_CPUFREQ_CPPC
if available.
New helpers print_cppc_para() and get_cpufreq_cppc() are introduced to
extract CPPC-related parameters process from cpufreq para.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v4 -> v5:
- new commit
---
v5 -> v6:
- remove the changes for get-cpufreq-para
---
v6 -> v7:
- make get-cpufreq-para invoke GET_CPUFREQ_CPPC
---
 tools/include/xenctrl.h     |  3 +-
 tools/libs/ctrl/xc_pm.c     | 28 ++++++++++++-
 tools/misc/xenpm.c          | 78 ++++++++++++++++++++++++-------------
 xen/drivers/acpi/pm-op.c    | 19 +++++++--
 xen/include/public/sysctl.h |  3 +-
 5 files changed, 98 insertions(+), 33 deletions(-)

diff --git a/tools/include/xenctrl.h b/tools/include/xenctrl.h
index 965d3b585a..e5103453a9 100644
--- a/tools/include/xenctrl.h
+++ b/tools/include/xenctrl.h
@@ -1938,7 +1938,6 @@ struct xc_get_cpufreq_para {
                 xc_ondemand_t ondemand;
             } u;
         } s;
-        xc_cppc_para_t cppc_para;
     } u;
 
     int32_t turbo_enabled;
@@ -1953,6 +1952,8 @@ int xc_set_cpufreq_para(xc_interface *xch, int cpuid,
                         int ctrl_type, int ctrl_value);
 int xc_set_cpufreq_cppc(xc_interface *xch, int cpuid,
                         xc_set_cppc_para_t *set_cppc);
+int xc_get_cppc_para(xc_interface *xch, unsigned int cpuid,
+                     xc_cppc_para_t *cppc_para);
 int xc_get_cpufreq_avgfreq(xc_interface *xch, int cpuid, int *avg_freq);
 
 int xc_set_sched_opt_smt(xc_interface *xch, uint32_t value);
diff --git a/tools/libs/ctrl/xc_pm.c b/tools/libs/ctrl/xc_pm.c
index 6fda973f1f..446ac0b911 100644
--- a/tools/libs/ctrl/xc_pm.c
+++ b/tools/libs/ctrl/xc_pm.c
@@ -288,7 +288,6 @@ int xc_get_cpufreq_para(xc_interface *xch, int cpuid,
         CHK_FIELD(s.scaling_min_freq);
         CHK_FIELD(s.u.userspace);
         CHK_FIELD(s.u.ondemand);
-        CHK_FIELD(cppc_para);
 
 #undef CHK_FIELD
 
@@ -366,6 +365,33 @@ int xc_set_cpufreq_cppc(xc_interface *xch, int cpuid,
     return ret;
 }
 
+int xc_get_cppc_para(xc_interface *xch, unsigned int cpuid,
+                     xc_cppc_para_t *cppc_para)
+{
+    int ret;
+    struct xen_sysctl sysctl = {};
+    struct xen_get_cppc_para *sys_cppc_para = &sysctl.u.pm_op.u.get_cppc;
+
+    if ( !xch  || !cppc_para )
+    {
+        errno = EINVAL;
+        return -1;
+    }
+
+    sysctl.cmd = XEN_SYSCTL_pm_op;
+    sysctl.u.pm_op.cmd = GET_CPUFREQ_CPPC;
+    sysctl.u.pm_op.cpuid = cpuid;
+
+    ret = xc_sysctl(xch, &sysctl);
+    if ( ret )
+        return ret;
+
+    BUILD_BUG_ON(sizeof(*cppc_para) != sizeof(*sys_cppc_para));
+    memcpy(cppc_para, sys_cppc_para, sizeof(*sys_cppc_para));
+
+    return ret;
+}
+
 int xc_get_cpufreq_avgfreq(xc_interface *xch, int cpuid, int *avg_freq)
 {
     int ret = 0;
diff --git a/tools/misc/xenpm.c b/tools/misc/xenpm.c
index 6b054b10a4..8fc1d7cc65 100644
--- a/tools/misc/xenpm.c
+++ b/tools/misc/xenpm.c
@@ -801,6 +801,34 @@ static unsigned int calculate_activity_window(const xc_cppc_para_t *cppc,
     return mantissa * multiplier;
 }
 
+/* print out parameters about cpu cppc */
+static void print_cppc_para(unsigned int cpuid,
+                            const xc_cppc_para_t *cppc)
+{
+    printf("cppc variables       :\n");
+    printf("  hardware limits    : lowest [%"PRIu32"] lowest nonlinear [%"PRIu32"]\n",
+           cppc->lowest, cppc->lowest_nonlinear);
+    printf("                     : nominal [%"PRIu32"] highest [%"PRIu32"]\n",
+           cppc->nominal, cppc->highest);
+    printf("  configured limits  : min [%"PRIu32"] max [%"PRIu32"] energy perf [%"PRIu32"]\n",
+           cppc->minimum, cppc->maximum, cppc->energy_perf);
+
+    if ( cppc->features & XEN_SYSCTL_CPPC_FEAT_ACT_WINDOW )
+    {
+        unsigned int activity_window;
+        const char *units;
+
+        activity_window = calculate_activity_window(cppc, &units);
+        printf("                     : activity_window [%"PRIu32" %s]\n",
+               activity_window, units);
+    }
+
+    printf("                     : desired [%"PRIu32"%s]\n",
+           cppc->desired,
+           cppc->desired ? "" : " hw autonomous");
+    printf("\n");
+}
+
 /* print out parameters about cpu frequency */
 static void print_cpufreq_para(int cpuid, struct xc_get_cpufreq_para *p_cpufreq)
 {
@@ -826,33 +854,7 @@ static void print_cpufreq_para(int cpuid, struct xc_get_cpufreq_para *p_cpufreq)
 
     printf("scaling_driver       : %s\n", p_cpufreq->scaling_driver);
 
-    if ( hwp )
-    {
-        const xc_cppc_para_t *cppc = &p_cpufreq->u.cppc_para;
-
-        printf("cppc variables       :\n");
-        printf("  hardware limits    : lowest [%"PRIu32"] lowest nonlinear [%"PRIu32"]\n",
-               cppc->lowest, cppc->lowest_nonlinear);
-        printf("                     : nominal [%"PRIu32"] highest [%"PRIu32"]\n",
-               cppc->nominal, cppc->highest);
-        printf("  configured limits  : min [%"PRIu32"] max [%"PRIu32"] energy perf [%"PRIu32"]\n",
-               cppc->minimum, cppc->maximum, cppc->energy_perf);
-
-        if ( cppc->features & XEN_SYSCTL_CPPC_FEAT_ACT_WINDOW )
-        {
-            unsigned int activity_window;
-            const char *units;
-
-            activity_window = calculate_activity_window(cppc, &units);
-            printf("                     : activity_window [%"PRIu32" %s]\n",
-                   activity_window, units);
-        }
-
-        printf("                     : desired [%"PRIu32"%s]\n",
-               cppc->desired,
-               cppc->desired ? "" : " hw autonomous");
-    }
-    else
+    if ( !hwp )
     {
         if ( p_cpufreq->gov_num )
             printf("scaling_avail_gov    : %s\n",
@@ -898,6 +900,23 @@ static void print_cpufreq_para(int cpuid, struct xc_get_cpufreq_para *p_cpufreq)
     printf("\n");
 }
 
+/* show cpu cppc parameters information on CPU cpuid */
+static int show_cppc_para_by_cpuid(xc_interface *xc_handle, unsigned int cpuid)
+{
+    int ret;
+    xc_cppc_para_t cppc_para;
+
+    ret = xc_get_cppc_para(xc_handle, cpuid, &cppc_para);
+    if ( !ret )
+        print_cppc_para(cpuid, &cppc_para);
+    else if ( errno == ENODEV )
+        ret = 0; /* Ignore unsupported platform */
+    else
+        fprintf(stderr, "[CPU%u] failed to get cppc parameter\n", cpuid);
+
+    return ret;
+}
+
 /* show cpu frequency parameters information on CPU cpuid */
 static int show_cpufreq_para_by_cpuid(xc_interface *xc_handle, int cpuid)
 {
@@ -957,7 +976,12 @@ static int show_cpufreq_para_by_cpuid(xc_interface *xc_handle, int cpuid)
     } while ( ret && errno == EAGAIN );
 
     if ( ret == 0 )
+    {
         print_cpufreq_para(cpuid, p_cpufreq);
+
+        /* Show CPPC parameters if available */
+        ret = show_cppc_para_by_cpuid(xc_handle, cpuid);
+    }
     else if ( errno == ENODEV )
     {
         ret = -ENODEV;
diff --git a/xen/drivers/acpi/pm-op.c b/xen/drivers/acpi/pm-op.c
index 6991616c1d..bf4638927f 100644
--- a/xen/drivers/acpi/pm-op.c
+++ b/xen/drivers/acpi/pm-op.c
@@ -77,6 +77,17 @@ static int read_scaling_available_governors(char *scaling_available_governors,
     return 0;
 }
 
+static int get_cpufreq_cppc(unsigned int cpu,
+                            struct xen_get_cppc_para *cppc_para)
+{
+    int ret = -ENODEV;
+
+    if ( hwp_active() )
+        ret = get_hwp_para(cpu, cppc_para);
+
+    return ret;
+}
+
 static int get_cpufreq_para(struct xen_sysctl_pm_op *op)
 {
     uint32_t ret = 0;
@@ -142,9 +153,7 @@ static int get_cpufreq_para(struct xen_sysctl_pm_op *op)
     else
         strlcpy(op->u.get_para.scaling_driver, "Unknown", CPUFREQ_NAME_LEN);
 
-    if ( hwp_active() )
-        ret = get_hwp_para(policy->cpu, &op->u.get_para.u.cppc_para);
-    else
+    if ( !hwp_active() )
     {
         if ( !(scaling_available_governors =
                xzalloc_array(char, gov_num * CPUFREQ_NAME_LEN)) )
@@ -381,6 +390,10 @@ int do_pm_op(struct xen_sysctl_pm_op *op)
         ret = set_cpufreq_para(op);
         break;
 
+    case GET_CPUFREQ_CPPC:
+        ret = get_cpufreq_cppc(op->cpuid, &op->u.get_cppc);
+        break;
+
     case SET_CPUFREQ_CPPC:
         ret = set_cpufreq_cppc(op);
         break;
diff --git a/xen/include/public/sysctl.h b/xen/include/public/sysctl.h
index eb3a23b038..3f654f98ab 100644
--- a/xen/include/public/sysctl.h
+++ b/xen/include/public/sysctl.h
@@ -492,7 +492,6 @@ struct xen_get_cpufreq_para {
                 struct  xen_ondemand ondemand;
             } u;
         } s;
-        struct xen_get_cppc_para cppc_para;
     } u;
 
     int32_t turbo_enabled;
@@ -523,6 +522,7 @@ struct xen_sysctl_pm_op {
     #define SET_CPUFREQ_PARA           (CPUFREQ_PARA | 0x03)
     #define GET_CPUFREQ_AVGFREQ        (CPUFREQ_PARA | 0x04)
     #define SET_CPUFREQ_CPPC           (CPUFREQ_PARA | 0x05)
+    #define GET_CPUFREQ_CPPC           (CPUFREQ_PARA | 0x06)
 
     /* set/reset scheduler power saving option */
     #define XEN_SYSCTL_pm_op_set_sched_opt_smt    0x21
@@ -547,6 +547,7 @@ struct xen_sysctl_pm_op {
     uint32_t cpuid;
     union {
         struct xen_get_cpufreq_para get_para;
+        struct xen_get_cppc_para    get_cppc;
         struct xen_set_cpufreq_gov  set_gov;
         struct xen_set_cpufreq_para set_para;
         struct xen_set_cppc_para    set_cppc;
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 22 11:01:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 11:01:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089939.1447415 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upPW9-0006Iq-TU; Fri, 22 Aug 2025 11:01:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089939.1447415; Fri, 22 Aug 2025 11:01: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 1upPW9-0006Ij-Pt; Fri, 22 Aug 2025 11:01:09 +0000
Received: by outflank-mailman (input) for mailman id 1089939;
 Fri, 22 Aug 2025 11:01:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JeQb=3C=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1upPOK-0008I9-PW
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 10:53:04 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on2061b.outbound.protection.outlook.com
 [2a01:111:f403:2413::61b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2c5714ed-7f46-11f0-a32b-13f23c93f187;
 Fri, 22 Aug 2025 12:53:02 +0200 (CEST)
Received: from BN0PR07CA0024.namprd07.prod.outlook.com (2603:10b6:408:141::33)
 by IA0PR12MB8375.namprd12.prod.outlook.com (2603:10b6:208:3dd::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.24; Fri, 22 Aug
 2025 10:52:57 +0000
Received: from BN1PEPF00004686.namprd03.prod.outlook.com
 (2603:10b6:408:141:cafe::8b) by BN0PR07CA0024.outlook.office365.com
 (2603:10b6:408:141::33) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.17 via Frontend Transport; Fri,
 22 Aug 2025 10:52:56 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN1PEPF00004686.mail.protection.outlook.com (10.167.243.91) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Fri, 22 Aug 2025 10:52:56 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) 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; Fri, 22 Aug 2025 05:52: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>
X-Inumbo-ID: 2c5714ed-7f46-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=g8TNQG/p2q4SEXuvTUypFuy9oBm23jueC8yuPKSQx2Ul81JHvIQ3bD3nQFjc2M0fD1soZrtal78qUxjDPtoRb+74l5/R/K6qttuFQjDJDz+3kSLWJO7HeeUDqUBnqmspBqQvLnDs4F3Om+YyCvK2AXcvHzca/kkMpdia9kkjpNoQsuwaER2FQi/gUx/vdIsbxPe8sHGyRR3OJ58sY97BrQ+TsbgIWnyDMdFpXWAo6p37IYDoD0htjDBTL2w4yYkQwqfLlED7hf7OWFCZbAug6gjH3Ko/lGWffy3DI6a9in7dXejj5ZFixbGRkcRzl5l4+MpxPywL5DnuObZ2G9M6Zw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7P2WcIeJ7VosYCvbsoFTVDQ9vBdDyzazPvXhfoBule4=;
 b=csZG/6epOTCcOlIAsJWMO2vUoABz4CUiyOezwYs50s6VA3I8Nw5nzcHMrU8BWcTHg3AcCD8zF4jvA2R5Ne92d0kLSsMXCmpP0/Dmk8wqG0qlMs4SltU2rJgxT6nnaguMlJh65AlSdAjF33NYxc+Yum6TGyM+Qw5iwNqWvw8PYuacMyYhv6pP6L2msPstsULCOWF1Gy4S8Kaa1n56SqDLM9thPXS8V1r4TIC1NUDbtkjiUKWwbt/ycskVWl41NotS274qJ2C6EKUT9mlu5QCUk82Y5nnLUcgSdtdi9AIe1WP3o1tx8CK71NzQG9SW4oJCSi15z/1yHly6tUPewf6o9w==
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=7P2WcIeJ7VosYCvbsoFTVDQ9vBdDyzazPvXhfoBule4=;
 b=zyKbiUlPdKKFyoZXHcstUAsNkiH0G1X1eg5TJ3SLzQi+sl4X6HDyD/iLmcgTuAFpoFgx1id9LNMY+TWiiSN946VUkvX/dNn71p2kIj5dn7FsGPdf3h0wvKYpSQVdiX1XoaPEzdKPI+FhGWjZ+ynYf4POBPIzuQT9F6fTd5IbwxE=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v7 09/13] xen/cpufreq: implement amd-cppc-epp driver for CPPC in active mode
Date: Fri, 22 Aug 2025 18:52:14 +0800
Message-ID: <20250822105218.3601273-10-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250822105218.3601273-1-Penny.Zheng@amd.com>
References: <20250822105218.3601273-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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN1PEPF00004686:EE_|IA0PR12MB8375:EE_
X-MS-Office365-Filtering-Correlation-Id: be3e5e78-84f4-4db3-4869-08dde16a0dbd
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|82310400026|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?cJICcprckuOlRRjUBGJ8QrVLzMx/0yq/ROWbdGm33JqxzFZYyXAcyrO8azXF?=
 =?us-ascii?Q?HRFrNpTmak+35H4QKCnbSSo9Tmw9EMNH6uF0gldwBFvt1tMaauemg7wT7LwS?=
 =?us-ascii?Q?pWs7xd2NEa8ZVtrlp6PKB1qqymLLlKCzfPtN92hrflckTO/l7UzHyU1WvanQ?=
 =?us-ascii?Q?uY1RJAgV1nxVkPtGquKp83nX4/2yusCe+q7HGZjn+5GANiOlIOPdUiJrZGby?=
 =?us-ascii?Q?ls3paDcTqoJFqVO0raoZDWRS4Z0PyJalz3HfjA5RdTF1f12ineagMXFrHrfD?=
 =?us-ascii?Q?VO+RhDS4NJzWgDngOO50UBAt9bKOMS+oEd5py9ij5ok4HwmAPl2Qe5sBel7U?=
 =?us-ascii?Q?JoAxThLLH+MMaz3UCF3Cqp79FJIXZbtEjQYB199psxYMjV4eeVe7emxeqXLZ?=
 =?us-ascii?Q?GIYco/fNn+eXPIdNodoM1fJfkPLLYQ5FqdOLFAatmQPFRvGhcJU5HKrbNN2F?=
 =?us-ascii?Q?NPA0/LIoRG579MhEgs6bCMi4NEYRVABgha9uL6G3VzX9rc5zs/VDM1yEDxp5?=
 =?us-ascii?Q?SOxZSojXGvWRPtOoh4uUSDvZ43D7OquNXtE3Nju/lL+oc0y52otOJrJClIze?=
 =?us-ascii?Q?qeShAtS+d5dCA2r+sztXTwMJH9+MreW8Pwo+PsHbK+3+V+pL+NNhE+sPJDDt?=
 =?us-ascii?Q?2sT8g0Z9IXHVxtdPNfNVVkhKzz7D+Pr9Qrao5VdUUbkluo1sOGdJYzkFs+5o?=
 =?us-ascii?Q?2k9jhQZVGLcYMYdeL1n89m4BwfPZmR77694NMqwhLK57m1K3VuWlc+I6tpeV?=
 =?us-ascii?Q?BHaNOOca6WQW9hegLZ8NEf36CpAWFKk/z467Ff6cta2jR/Cdn3oPumUP3ikN?=
 =?us-ascii?Q?y9MbK/u3oRGAu0TtN9kEwyi1iauTwBzO3qA0FdMS90mV0txmLt5poKeAKiA6?=
 =?us-ascii?Q?Z43XAujRH1S6zT/e6QjS8JaRNuXgpsAnZdEXHhWkfSWQsU1uxO2Rd+0jIMrV?=
 =?us-ascii?Q?AkLrAz9VdQBY5HIw51Hc+OCY6tBMJQT8eX/VjLD5N8o19aerS+8CN9GTBun5?=
 =?us-ascii?Q?nojJI2rjSFW/L8LBg3MS7PFI4x/fG9AMAPWAX260wmd7+RVxyT6o/sIuRDaT?=
 =?us-ascii?Q?WBA6+qA776zTKIDsBz2YEJl1dKk6bziqYphyGN/osBrd/ydvVrg0qm9Xn05R?=
 =?us-ascii?Q?eCbgsUxlr40rVUWWa1gb/4hP3Yfs0kjIUj/ncxHH6K4QoHqa9Z0m7TAIVg5u?=
 =?us-ascii?Q?MsN8MCQn46X7hRIVgKTGsY3Nw6FEoY/5PWcls8Ao5PkIqlED1jb7B2Cwsuyc?=
 =?us-ascii?Q?iGcV/sbeUVwRkAOFVMAEZf9U7/IwnMY2FYw2j77JSc9uehgvrUiw7kKB+Ica?=
 =?us-ascii?Q?Ox8Jj84iM9CEw2YrKzQvtcBGb6dGLzt7QQfmaoq5C0i+uhl5a6EO5o5IUh6U?=
 =?us-ascii?Q?vm/vT/20pGkAllx3I5K998fbL5wOm5iz8KwQOXdFl9o1pSj0WFhTKTYNdApf?=
 =?us-ascii?Q?BeH3ESaly9Y67GDgFNviZ+SXZ+ZHYYXsYCzNr3uH56OqU34DVyQJkCSpAQNo?=
 =?us-ascii?Q?2IFWF10hzB9h+Whg6/YwRxwoNcP20jKlZx/d?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Aug 2025 10:52:56.9352
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: be3e5e78-84f4-4db3-4869-08dde16a0dbd
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF00004686.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB8375

amd-cppc has 2 operation modes: autonomous (active) mode and
non-autonomous (passive) mode.
In active mode, we don't need Xen governor to calculate and tune the cpu
frequency, while hardware built-in CPPC power algorithm will calculate the
runtime workload and adjust cores frequency automatically according to the
power supply, thermal, core voltage and some other hardware conditions.
In active mode, CPPC ignores requests done in the desired performance field,
and takes into account only the values set to the minimum performance, maximum
performance, and energy performance preference registers.

A new field EPP (energy performance preference), in CPPC request register, is
introduced. It will be used in the CCLK DPM controller to drive the frequency
that a core is going to operate during short periods of activity, called
minimum active frequency, It could contatin a range of values from 0 to 0xff.
An EPP of zero sets the min active frequency to maximum frequency, while
an EPP of 0xff sets the min active frequency to approxiately Idle frequency.

We implement a new AMD CPU frequency driver `amd-cppc-epp` for active mode.
It requires `active` tag in Xen cmdline for users to explicitly select active
mode.
In driver `active-cppc-epp`, ->setpolicy() is hooked, not the ->target(), as
it does not depend on xen governor to do performance tuning.

We also introduce a new field "policy" (CPUFREQ_POLICY_xxx) to represent
performance policy. Right now, it supports three values:
CPUFREQ_POLICY_PERFORMANCE as maximum performance, CPUFREQ_POLICY_POWERSAVE
as the least power consumption, and CPUFREQ_POLICY_ONDEMAND as no preference,
just corresponding to "performance", "powersave" and "ondemand" Xen governor,
which benefit users from re-using "governor" in Xen cmdline to deliver
which performance policy they want to apply.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v1 -> v2:
- Remove redundant epp_mode
- Remove pointless initializer
- Define sole caller read_epp_init_once and epp_init value to read
pre-defined BIOS epp value only once
- Combine the commit "xen/cpufreq: introduce policy type when
cpufreq_driver->setpolicy exists"
---
v2 -> v3:
- Combined with commit "x86/cpufreq: add "cpufreq=amd-cppc,active" para"
- Refactor doc about "active mode"
- Change opt_cpufreq_active to opt_active_mode
- Let caller pass epp_init when unspecified to allow the function parameter
to be of uint8_t
- Make epp_init per-cpu value
---
v3 -> v4:
- doc refinement
- use MASK_EXTR() to get epp value
- fix indentation
- replace if-else() with switch()
- combine successive comments and do refinement
- no need to introduce amd_cppc_epp_update_limit() as a wrapper
- rename cpufreq_parse_policy() with cpufreq_policy_from_governor()
- no need to use case-insensitive comparison
---
v4 -> v5:
- refine doc to state what the default is for "active" sub-option and it's of
boolean nature
- excess blank after << for AMD_CPPC_EPP_MASK
- set max_perf with lowest_perf to get utmost powersave
- refine commit message to include description about relation between "policy"
and "governor"
---
v5 -> v6:
- expand comment for "epp" field
- let min_perf set with lowest_nonliner_perf, not lowest_perf, to constrain
  performance tuning in P-states range
- refactor doc and comments
- blank lines between non-fall-through case blocks
- introduce and add entry for "CPUFREQ_POLICY_ONDEMAND"
---
v6 -> v7
- make opt_active_mode __initdata when NDEBUG=y
- add assertion check for must-zero des_perf in active mode
- use the local variable max_perf and min_perf
- read_epp_init() doesn't worth a separate function
---
 docs/misc/xen-command-line.pandoc    |   9 +-
 xen/arch/x86/acpi/cpufreq/amd-cppc.c | 126 ++++++++++++++++++++++++++-
 xen/drivers/cpufreq/utility.c        |  15 ++++
 xen/include/acpi/cpufreq/cpufreq.h   |  18 ++++
 xen/include/public/sysctl.h          |   1 +
 5 files changed, 164 insertions(+), 5 deletions(-)

diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
index 3916cc81f6..c029a6e053 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -515,7 +515,7 @@ If set, force use of the performance counters for oprofile, rather than detectin
 available support.
 
 ### cpufreq
-> `= none | {{ <boolean> | xen } { [:[powersave|performance|ondemand|userspace][,[<maxfreq>]][,[<minfreq>]]] } [,verbose]} | dom0-kernel | hwp[:[<hdc>][,verbose]] | amd-cppc[:[verbose]]`
+> `= none | {{ <boolean> | xen } { [:[powersave|performance|ondemand|userspace][,[<maxfreq>]][,[<minfreq>]]] } [,verbose]} | dom0-kernel | hwp[:[<hdc>][,verbose]] | amd-cppc[:[active][,verbose]]`
 
 > Default: `xen`
 
@@ -537,6 +537,13 @@ choice of `dom0-kernel` is deprecated and not supported by all Dom0 kernels.
 * `amd-cppc` selects ACPI Collaborative Performance and Power Control (CPPC)
   on supported AMD hardware to provide finer grained frequency control
   mechanism. The default is disabled.
+* `active` is a boolean to enable amd-cppc driver in active(autonomous) mode.
+  In this mode, users don't rely on Xen governor to do performance monitoring
+  and tuning. Hardware built-in CPPC power algorithm will calculate the runtime
+  workload and adjust cores frequency automatically according to the power
+  supply, thermal, core voltage and some other hardware conditions.
+  The default is disabled, and the option only applies when `amd-cppc` is
+  enabled.
 
 There is also support for `;`-separated fallback options:
 `cpufreq=hwp;xen,verbose`.  This first tries `hwp` and falls back to `xen` if
diff --git a/xen/arch/x86/acpi/cpufreq/amd-cppc.c b/xen/arch/x86/acpi/cpufreq/amd-cppc.c
index df9ed52237..1b4753a062 100644
--- a/xen/arch/x86/acpi/cpufreq/amd-cppc.c
+++ b/xen/arch/x86/acpi/cpufreq/amd-cppc.c
@@ -67,9 +67,14 @@
  * max_perf.
  * Field des_perf conveys performance level Xen governor is requesting. And it
  * may be set to any performance value in the range [min_perf, max_perf],
- * inclusive.
+ * inclusive. In active mode, des_perf must be zero.
  * Field epp represents energy performance preference, which only has meaning
- * when active mode is enabled.
+ * when active mode is enabled. The EPP is used in the CCLK DPM controller
+ * to drive the frequency that a core is going to operate during short periods
+ * of activity, called minimum active frequency, It could contatin a range of
+ * values from 0 to 0xff. An EPP of zero sets the min active frequency to
+ * maximum frequency, while an EPP of 0xff sets the min active frequency to
+ * approxiately Idle frequency.
  */
 struct amd_cppc_drv_data
 {
@@ -106,6 +111,12 @@ static DEFINE_PER_CPU_READ_MOSTLY(struct amd_cppc_drv_data *,
  */
 static DEFINE_PER_CPU_READ_MOSTLY(unsigned int, pxfreq_mhz);
 static DEFINE_PER_CPU_READ_MOSTLY(uint8_t, epp_init);
+#ifndef NDEBUG
+static bool __ro_after_init opt_active_mode;
+#else
+static bool __initdata opt_active_mode;
+#endif
+
 
 static bool __init amd_cppc_handle_option(const char *s, const char *end)
 {
@@ -118,6 +129,13 @@ static bool __init amd_cppc_handle_option(const char *s, const char *end)
         return true;
     }
 
+    ret = parse_boolean("active", s, end);
+    if ( ret >= 0 )
+    {
+        opt_active_mode = ret;
+        return true;
+    }
+
     return false;
 }
 
@@ -270,6 +288,10 @@ static void amd_cppc_write_request(unsigned int cpu, uint8_t min_perf,
 
     data->req.min_perf = min_perf;
     data->req.max_perf = max_perf;
+#ifndef NDEBUG
+    if ( opt_active_mode )
+        ASSERT(!des_perf);
+#endif
     data->req.des_perf = des_perf;
     data->req.epp = epp;
 
@@ -417,7 +439,7 @@ static int cf_check amd_cppc_cpufreq_cpu_exit(struct cpufreq_policy *policy)
     return 0;
 }
 
-static int cf_check amd_cppc_cpufreq_cpu_init(struct cpufreq_policy *policy)
+static int amd_cppc_cpufreq_init_perf(struct cpufreq_policy *policy)
 {
     unsigned int cpu = policy->cpu;
     struct amd_cppc_drv_data *data;
@@ -450,12 +472,91 @@ static int cf_check amd_cppc_cpufreq_cpu_init(struct cpufreq_policy *policy)
 
     amd_cppc_boost_init(policy, data);
 
+    return 0;
+}
+
+static int cf_check amd_cppc_cpufreq_cpu_init(struct cpufreq_policy *policy)
+{
+    int ret;
+
+    ret = amd_cppc_cpufreq_init_perf(policy);
+    if ( ret )
+        return ret;
+
     amd_cppc_verbose(policy->cpu,
                      "CPU initialized with amd-cppc passive mode\n");
 
     return 0;
 }
 
+static int cf_check amd_cppc_epp_cpu_init(struct cpufreq_policy *policy)
+{
+    int ret;
+
+    ret = amd_cppc_cpufreq_init_perf(policy);
+    if ( ret )
+        return ret;
+
+    policy->policy = cpufreq_policy_from_governor(policy->governor);
+
+    amd_cppc_verbose(policy->cpu,
+                     "CPU initialized with amd-cppc active mode\n");
+
+    return 0;
+}
+
+static int cf_check amd_cppc_epp_set_policy(struct cpufreq_policy *policy)
+{
+    const struct amd_cppc_drv_data *data = per_cpu(amd_cppc_drv_data,
+                                                   policy->cpu);
+    uint8_t max_perf, min_perf, epp;
+
+    /*
+     * On default, set min_perf with lowest_nonlinear_perf, and max_perf
+     * with the highest, to ensure performance scaling in P-states range.
+     */
+    max_perf = data->caps.highest_perf;
+    min_perf = data->caps.lowest_nonlinear_perf;
+
+    /*
+     * In policy CPUFREQ_POLICY_PERFORMANCE, increase min_perf to
+     * highest_perf to achieve ultmost performance.
+     * In policy CPUFREQ_POLICY_POWERSAVE, decrease max_perf to
+     * lowest_nonlinear_perf to achieve ultmost power saving.
+     */
+    switch ( policy->policy )
+    {
+    case CPUFREQ_POLICY_PERFORMANCE:
+        /* Force the epp value to be zero for performance policy */
+        epp = CPPC_ENERGY_PERF_MAX_PERFORMANCE;
+        min_perf = max_perf;
+        break;
+
+    case CPUFREQ_POLICY_POWERSAVE:
+        /* Force the epp value to be 0xff for powersave policy */
+        epp = CPPC_ENERGY_PERF_MAX_POWERSAVE;
+        max_perf = min_perf;
+        break;
+
+    case CPUFREQ_POLICY_ONDEMAND:
+        /*
+         * Set epp with medium value to show no preference over performance
+         * or powersave
+         */
+        epp = CPPC_ENERGY_PERF_BALANCE;
+        break;
+
+    default:
+        epp = per_cpu(epp_init, policy->cpu);
+        break;
+    }
+
+    amd_cppc_write_request(policy->cpu, min_perf,
+                           0 /* no des_perf in active mode */,
+                           max_perf, epp);
+    return 0;
+}
+
 static const struct cpufreq_driver __initconst_cf_clobber
 amd_cppc_cpufreq_driver =
 {
@@ -466,10 +567,27 @@ amd_cppc_cpufreq_driver =
     .exit   = amd_cppc_cpufreq_cpu_exit,
 };
 
+static const struct cpufreq_driver __initconst_cf_clobber
+amd_cppc_epp_driver =
+{
+    .name       = XEN_AMD_CPPC_EPP_DRIVER_NAME,
+    .verify     = amd_cppc_cpufreq_verify,
+    .setpolicy  = amd_cppc_epp_set_policy,
+    .init       = amd_cppc_epp_cpu_init,
+    .exit       = amd_cppc_cpufreq_cpu_exit,
+};
+
 int __init amd_cppc_register_driver(void)
 {
+    int ret;
+
     if ( !cpu_has_cppc )
         return -ENODEV;
 
-    return cpufreq_register_driver(&amd_cppc_cpufreq_driver);
+    if ( opt_active_mode )
+        ret = cpufreq_register_driver(&amd_cppc_epp_driver);
+    else
+        ret = cpufreq_register_driver(&amd_cppc_cpufreq_driver);
+
+    return ret;
 }
diff --git a/xen/drivers/cpufreq/utility.c b/xen/drivers/cpufreq/utility.c
index 987c3b5929..e2cc9ff2af 100644
--- a/xen/drivers/cpufreq/utility.c
+++ b/xen/drivers/cpufreq/utility.c
@@ -250,6 +250,7 @@ int __cpufreq_set_policy(struct cpufreq_policy *data,
     data->min = policy->min;
     data->max = policy->max;
     data->limits = policy->limits;
+    data->policy = policy->policy;
     if (cpufreq_driver.setpolicy)
         return alternative_call(cpufreq_driver.setpolicy, data);
 
@@ -281,3 +282,17 @@ int __cpufreq_set_policy(struct cpufreq_policy *data,
 
     return __cpufreq_governor(data, CPUFREQ_GOV_LIMITS);
 }
+
+unsigned int cpufreq_policy_from_governor(const struct cpufreq_governor *gov)
+{
+    if ( !strncmp(gov->name, "performance", CPUFREQ_NAME_LEN) )
+        return CPUFREQ_POLICY_PERFORMANCE;
+
+    if ( !strncmp(gov->name, "powersave", CPUFREQ_NAME_LEN) )
+        return CPUFREQ_POLICY_POWERSAVE;
+
+    if ( !strncmp(gov->name, "ondemand", CPUFREQ_NAME_LEN) )
+        return CPUFREQ_POLICY_ONDEMAND;
+
+    return CPUFREQ_POLICY_UNKNOWN;
+}
diff --git a/xen/include/acpi/cpufreq/cpufreq.h b/xen/include/acpi/cpufreq/cpufreq.h
index 5d4881eea8..9ef7c4683a 100644
--- a/xen/include/acpi/cpufreq/cpufreq.h
+++ b/xen/include/acpi/cpufreq/cpufreq.h
@@ -81,6 +81,7 @@ struct cpufreq_policy {
     int8_t              turbo;  /* tristate flag: 0 for unsupported
                                  * -1 for disable, 1 for enabled
                                  * See CPUFREQ_TURBO_* below for defines */
+    unsigned int        policy; /* CPUFREQ_POLICY_* */
 };
 DECLARE_PER_CPU(struct cpufreq_policy *, cpufreq_cpu_policy);
 
@@ -131,6 +132,23 @@ extern int cpufreq_register_governor(struct cpufreq_governor *governor);
 extern struct cpufreq_governor *__find_governor(const char *governor);
 #define CPUFREQ_DEFAULT_GOVERNOR &cpufreq_gov_dbs
 
+/*
+ * Performance Policy
+ * If cpufreq_driver->target() exists, the ->governor decides what frequency
+ * within the limits is used. If cpufreq_driver->setpolicy() exists, these
+ * following policies are available:
+ * CPUFREQ_POLICY_PERFORMANCE represents maximum performance
+ * CPUFREQ_POLICY_POWERSAVE represents least power consumption
+ * CPUFREQ_POLICY_ONDEMAND represents no preference over performance or
+ * powersave
+ */
+#define CPUFREQ_POLICY_UNKNOWN      0
+#define CPUFREQ_POLICY_POWERSAVE    1
+#define CPUFREQ_POLICY_PERFORMANCE  2
+#define CPUFREQ_POLICY_ONDEMAND     3
+
+unsigned int cpufreq_policy_from_governor(const struct cpufreq_governor *gov);
+
 /* pass a target to the cpufreq driver */
 extern int __cpufreq_driver_target(struct cpufreq_policy *policy,
                                    unsigned int target_freq,
diff --git a/xen/include/public/sysctl.h b/xen/include/public/sysctl.h
index aa29a5401c..eb3a23b038 100644
--- a/xen/include/public/sysctl.h
+++ b/xen/include/public/sysctl.h
@@ -454,6 +454,7 @@ struct xen_set_cppc_para {
 };
 
 #define XEN_AMD_CPPC_DRIVER_NAME "amd-cppc"
+#define XEN_AMD_CPPC_EPP_DRIVER_NAME "amd-cppc-epp"
 #define XEN_HWP_DRIVER_NAME "hwp"
 
 /*
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 22 11:01:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 11:01:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089952.1447435 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upPWN-00070U-Fd; Fri, 22 Aug 2025 11:01:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089952.1447435; Fri, 22 Aug 2025 11:01: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 1upPWN-00070N-BQ; Fri, 22 Aug 2025 11:01:23 +0000
Received: by outflank-mailman (input) for mailman id 1089952;
 Fri, 22 Aug 2025 11:01:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JeQb=3C=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1upPOU-0008I9-Rc
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 10:53:14 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on2060e.outbound.protection.outlook.com
 [2a01:111:f403:2412::60e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 32b556b1-7f46-11f0-a32b-13f23c93f187;
 Fri, 22 Aug 2025 12:53:13 +0200 (CEST)
Received: from BN9PR03CA0068.namprd03.prod.outlook.com (2603:10b6:408:fc::13)
 by PH0PR12MB7930.namprd12.prod.outlook.com (2603:10b6:510:283::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.18; Fri, 22 Aug
 2025 10:53:07 +0000
Received: from BN1PEPF00005FFC.namprd05.prod.outlook.com
 (2603:10b6:408:fc:cafe::ad) by BN9PR03CA0068.outlook.office365.com
 (2603:10b6:408:fc::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.16 via Frontend Transport; Fri,
 22 Aug 2025 10:53:07 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN1PEPF00005FFC.mail.protection.outlook.com (10.167.243.228) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Fri, 22 Aug 2025 10:53:06 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) 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; Fri, 22 Aug 2025 05:53:01 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 32b556b1-7f46-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=t/Kq0BIOh3bFOoEjS0YP80rhr9n2r6dnp0M7HkDiQMAR+XV+ZQ04XriwDULseOg+dDjOkeQXLSrn/YLkO8XxgozP3eaeBipMO0ytz+fYvM5X7hh0++tf1FDCg14HMYPObpzRjab+eKCow3kjr6S6y2DlZci+mIpYHlNhMxJYAoqgQxxo43QWUFJf6fHdUaX4etbCdhTYE/++BTeqanntLybDCDyQhTh/rLf1zNUz9dfao4c4SAfbw7gdxWuY9nNcxFsqxFFmoM+zJFl2SqV2c9ZyBifOKs0SxOQL5c6BnFZt0iu41EQyLV7OVjQPogp0jhl1nm3OBFWuYx1NuEQ39A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=dTlZDSs77RAc8eyO6/n/oa9e2ajwpZRnfhyHi6uhQhY=;
 b=mINira9xBTjVRDFJPtJ6wzP7S0C6QHIuRpqgAormujkr3f/jwTCOCMAcvQwUbGtC/MVYb4pDJvy6/LN7+jNstr9IIMOpgNHbRAlnsNQEhvVJVtwbpBT+tPCKJYGdQGaZQI0jZ6kLtedIExkENH69qVpqWTdXzQRed7iGXfigqezeEBdfJRkMzu42CaYgRLMXZr/6uNp5MhQRLa49K9Wh3wyLzrM5HZkP4lVMx1teGjB/GlHutkugpxcT6HLl98TIZkqfhwfUvJZ/dO+pztitpnkXLjae3FsqjNKEyPQfBX6IbKalJDjkTQ63AQzIMPDgvGeiUUadE9HqSnn10CJR+g==
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=dTlZDSs77RAc8eyO6/n/oa9e2ajwpZRnfhyHi6uhQhY=;
 b=PhXfjZSlIIsVQqSWGrJTVhKLHjvSHhtUoiHhDdFw2n/KLKV0vUUGMoWRMJFMaTEEYRAR4EE4NqmxZUWgyBoflzERfWj8ADMf6Twt/pfSfBTwihnqywJauxzCoNjXPdiF+eQPmZSWo1HE4/gjtBF+knVJLF/yt0Qm//vcT/To8SM=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v7 12/13] xen/cpufreq: bypass governor-related para for amd-cppc-epp
Date: Fri, 22 Aug 2025 18:52:17 +0800
Message-ID: <20250822105218.3601273-13-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250822105218.3601273-1-Penny.Zheng@amd.com>
References: <20250822105218.3601273-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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN1PEPF00005FFC:EE_|PH0PR12MB7930:EE_
X-MS-Office365-Filtering-Correlation-Id: fa1b0ff8-e793-4b0d-4ef1-08dde16a13bc
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|36860700013|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?exJ8WdRXwSZDWE0QI3uyDJpeNSm/+0u9UUY2CsmKTxjepYpMSJLZTSvIhv2C?=
 =?us-ascii?Q?9NKlUCpBM3d2ILYx3flclnQvHjLoqXKfS/gplsW6zuElH7/kfX7e/H/xtDNi?=
 =?us-ascii?Q?4q4FQBggoOBrWsYpS7aPkhH0bzIOn1IQ78Amo1tFktgkgh4Vu6WUXneJcQOW?=
 =?us-ascii?Q?jHbLqbPb1dzsojAM4ZTAv96yLNkeWAMc5EoZo+pttEUp3tB6+nwDCv+hj6G1?=
 =?us-ascii?Q?S30Rx+sdbG2nLij0EN2tf9obOocGjenOZqW9ARklIeE0YaVM5wj395p88Uel?=
 =?us-ascii?Q?HtuYtTrxEr6DBzM4Nhpv+2SJLKA09WGlf/JJalNgwf9zzOMdivivLPTz1NXW?=
 =?us-ascii?Q?106tyc3Y40eswydSVG8m49X86r74zqOEbJ2AbU8liP9sulktvOmmUHxnJmLE?=
 =?us-ascii?Q?WsN28b+T8cQeaBokZGnt3gO75rft5/LvoazmCoTFQcKS3F1WGeEn3iwP7Tan?=
 =?us-ascii?Q?AeSS0fWouOpUl4Xl05eLG1l8ps3F8n4HFPbnu2/D7NHAiCNrKoey5UspDwur?=
 =?us-ascii?Q?z3WvXbDw6fyN2dMGdee0XM1LtFfEANF6QYEgFWz1PD5luTl/Vd3V6OLuX8FK?=
 =?us-ascii?Q?nJ7d4gqlPsJg8vt+LMa7YvWF1JIHr2kvni73GGH/7Rn+wBqBhTMGTYBfmufR?=
 =?us-ascii?Q?G/iqTS5RPej0pV9CNKzrrRC1wB/YJCENlCFdRF8fNsleiyHRE07ZuSvm5jKv?=
 =?us-ascii?Q?Ilp/LD8ouVVio1hZ58S22RXmB7eEpKWMqtW6S8AWOiZeLq/7ELJegFMXEgbd?=
 =?us-ascii?Q?f30WS3zIV6ocsrSlmm4ZzFtDy+MiSs3/q91Z54HdnI1tGhAQUJADpBim9SGE?=
 =?us-ascii?Q?zVW4ovbR5tbXaJ8OiBNxmBYxwM27PZoQ2BjCZtitm4i+jzBSSY5xqKbNCQFu?=
 =?us-ascii?Q?igI9KRs5srWdqJwIjN2qE/oLtSySXE+x5Pk4lzFLDiNypMi8cYkWbiu0Qphb?=
 =?us-ascii?Q?CsvtJWl6gkU0WudoYRbwSAjr/c1u/22Vi9OrpX73+QeSon79C+p+C81wBJ5U?=
 =?us-ascii?Q?eL33K8X+FuVtLa7W6A/h/dpgx+H/lSlw57sit7WLv5wBXL35ciMQOkvESvKk?=
 =?us-ascii?Q?Brp9By4P3YB5dpxfJGNooopsd+rHgNtwLk2O3oC2YqcwJCVfpVIHT+1VgQ77?=
 =?us-ascii?Q?+UeKMwtIh9EhnWB3SJAef8q6fS0Mj1EjHFB/8ec2/JpoKnYnKSGGxTpPuPTx?=
 =?us-ascii?Q?cBQAdZ5WVFGstQIWMNU2w/ADPuvmWLbNYNVHwB2puPzFfz2IPNH6mJoAITCQ?=
 =?us-ascii?Q?rgh3UH1zqtxau/ez0DKikm1uPdrZF6q4P6UczfMgGPvLnG/P99KV07F8UmHX?=
 =?us-ascii?Q?E05/pkEVZFTz2NdDd9dMvCtnMsxWKjoLurBrWSESTp/gEl5mErbOpMp9llJ5?=
 =?us-ascii?Q?ZXkFAKPJKPGm9K+CtOd1CcG8vEjRfLqRPbfn47LNXDJcqduhNHnZhif3rHzK?=
 =?us-ascii?Q?+ueL9VTsKRekzRx3cEvG9FPhRscyaZj91ZCAE3Qu7VF6aEXiPeviNHtYCx+x?=
 =?us-ascii?Q?hDo0FLl40DTkOm5K/mKG84dYfHLjAuGZNUHT?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Aug 2025 10:53:06.9962
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: fa1b0ff8-e793-4b0d-4ef1-08dde16a13bc
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF00005FFC.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB7930

HWP and amd-cppc-epp are both governor-less driver, so we introduce
"is_goverless" flag and cpufreq_is_governorless() to help bypass
governor-related info on dealing with cpufreq para.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v3 -> v4:
- Include validation check fix here
---
v4 -> v5:
- validation check has beem moved to where XEN_PROCESSOR_PM_CPPC and
XEN_CPPC_INIT have been firstly introduced
- adding "cpufreq_driver.setpolicy == NULL" check to exclude governor-related
para for amd-cppc-epp driver in get/set_cpufreq_para()
---
v5 -> v6:
- add helper cpufreq_is_governorless() to tell whether cpufreq driver is
governor-less
---
v6 -> v7:
- change "hw_auto" to "is_goverless"
- complement comment
- wrap around with PM_OP to avoid violating Misra rule 2.1
---
 tools/misc/xenpm.c                 | 10 +++++++---
 xen/drivers/acpi/pm-op.c           |  4 ++--
 xen/drivers/cpufreq/cpufreq.c      | 14 ++++++++++++++
 xen/include/acpi/cpufreq/cpufreq.h |  2 ++
 4 files changed, 25 insertions(+), 5 deletions(-)

diff --git a/tools/misc/xenpm.c b/tools/misc/xenpm.c
index 8fc1d7cc65..02981c4583 100644
--- a/tools/misc/xenpm.c
+++ b/tools/misc/xenpm.c
@@ -832,9 +832,13 @@ static void print_cppc_para(unsigned int cpuid,
 /* print out parameters about cpu frequency */
 static void print_cpufreq_para(int cpuid, struct xc_get_cpufreq_para *p_cpufreq)
 {
-    bool hwp = strcmp(p_cpufreq->scaling_driver, XEN_HWP_DRIVER_NAME) == 0;
+    bool is_goverless = false;
     int i;
 
+    if ( !strcmp(p_cpufreq->scaling_driver, XEN_HWP_DRIVER_NAME) ||
+         !strcmp(p_cpufreq->scaling_driver, XEN_AMD_CPPC_EPP_DRIVER_NAME) )
+        is_goverless = true;
+
     printf("cpu id               : %d\n", cpuid);
 
     printf("affected_cpus        :");
@@ -842,7 +846,7 @@ static void print_cpufreq_para(int cpuid, struct xc_get_cpufreq_para *p_cpufreq)
         printf(" %d", p_cpufreq->affected_cpus[i]);
     printf("\n");
 
-    if ( hwp )
+    if ( is_goverless )
         printf("cpuinfo frequency    : base [%"PRIu32"] max [%"PRIu32"]\n",
                p_cpufreq->cpuinfo_min_freq,
                p_cpufreq->cpuinfo_max_freq);
@@ -854,7 +858,7 @@ static void print_cpufreq_para(int cpuid, struct xc_get_cpufreq_para *p_cpufreq)
 
     printf("scaling_driver       : %s\n", p_cpufreq->scaling_driver);
 
-    if ( !hwp )
+    if ( !is_goverless )
     {
         if ( p_cpufreq->gov_num )
             printf("scaling_avail_gov    : %s\n",
diff --git a/xen/drivers/acpi/pm-op.c b/xen/drivers/acpi/pm-op.c
index bf4638927f..2b4c8070aa 100644
--- a/xen/drivers/acpi/pm-op.c
+++ b/xen/drivers/acpi/pm-op.c
@@ -153,7 +153,7 @@ static int get_cpufreq_para(struct xen_sysctl_pm_op *op)
     else
         strlcpy(op->u.get_para.scaling_driver, "Unknown", CPUFREQ_NAME_LEN);
 
-    if ( !hwp_active() )
+    if ( !cpufreq_is_governorless(op->cpuid) )
     {
         if ( !(scaling_available_governors =
                xzalloc_array(char, gov_num * CPUFREQ_NAME_LEN)) )
@@ -236,7 +236,7 @@ static int set_cpufreq_para(struct xen_sysctl_pm_op *op)
     if ( !policy || !policy->governor )
         return -EINVAL;
 
-    if ( hwp_active() )
+    if ( cpufreq_is_governorless(op->cpuid) )
         return -EOPNOTSUPP;
 
     switch( op->u.set_para.ctrl_type )
diff --git a/xen/drivers/cpufreq/cpufreq.c b/xen/drivers/cpufreq/cpufreq.c
index 41e0da3b77..871fe33681 100644
--- a/xen/drivers/cpufreq/cpufreq.c
+++ b/xen/drivers/cpufreq/cpufreq.c
@@ -956,3 +956,17 @@ int __init cpufreq_register_driver(const struct cpufreq_driver *driver_data)
 
     return 0;
 }
+
+#ifdef CONFIG_PM_OP
+/*
+ * Governor-less cpufreq driver indicates the driver doesn't rely on Xen
+ * governor to do performance tuning, mostly it has hardware built-in
+ * algorithm to calculate runtime workload and adjust cores frequency
+ * automatically. like Intel HWP, or CPPC in AMD.
+ */
+bool cpufreq_is_governorless(unsigned int cpuid)
+{
+    return processor_pminfo[cpuid]->init && (hwp_active() ||
+                                             cpufreq_driver.setpolicy);
+}
+#endif /* CONFIG_PM_OP */
diff --git a/xen/include/acpi/cpufreq/cpufreq.h b/xen/include/acpi/cpufreq/cpufreq.h
index 9ef7c4683a..babc4a1a2c 100644
--- a/xen/include/acpi/cpufreq/cpufreq.h
+++ b/xen/include/acpi/cpufreq/cpufreq.h
@@ -294,4 +294,6 @@ int acpi_cpufreq_register(void);
 int amd_cppc_cmdline_parse(const char *s, const char *e);
 int amd_cppc_register_driver(void);
 
+bool cpufreq_is_governorless(unsigned int cpuid);
+
 #endif /* __XEN_CPUFREQ_PM_H__ */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 22 11:01:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 11:01:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1089953.1447443 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upPWO-00078K-48; Fri, 22 Aug 2025 11:01:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1089953.1447443; Fri, 22 Aug 2025 11:01: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 1upPWN-00076M-Qu; Fri, 22 Aug 2025 11:01:23 +0000
Received: by outflank-mailman (input) for mailman id 1089953;
 Fri, 22 Aug 2025 11:01:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=JeQb=3C=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1upPOa-00083s-Bn
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 10:53:20 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on2060c.outbound.protection.outlook.com
 [2a01:111:f403:2009::60c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 32fb4ed4-7f46-11f0-b898-0df219b8e170;
 Fri, 22 Aug 2025 12:53:14 +0200 (CEST)
Received: from BN9PR03CA0073.namprd03.prod.outlook.com (2603:10b6:408:fc::18)
 by SJ1PR12MB6243.namprd12.prod.outlook.com (2603:10b6:a03:456::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.16; Fri, 22 Aug
 2025 10:53:07 +0000
Received: from BN1PEPF00005FFC.namprd05.prod.outlook.com
 (2603:10b6:408:fc:cafe::16) by BN9PR03CA0073.outlook.office365.com
 (2603:10b6:408:fc::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.16 via Frontend Transport; Fri,
 22 Aug 2025 10:53:07 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN1PEPF00005FFC.mail.protection.outlook.com (10.167.243.228) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Fri, 22 Aug 2025 10:53:07 +0000
Received: from penny-System-Product-Name.amd.com (10.180.168.240) 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; Fri, 22 Aug 2025 05:53:03 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 32fb4ed4-7f46-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Gu6CAUO/e/SorWE6FETFoJ+ADbPmfc3Vg9S3nlA3/NYeefTecVHTsYhkZiNZeYgK9/nmNxkScnamr9DQ/Hh77uNOUAUv+3wEOXkn2CWQzMQFWHztVudEeeEohNsb4k4KQYLH0QQ+sJBVVKV57kTWmniHaOhM07oah4sK0yFWtM0LOw5gH/bWmWo2dt5E7czlg1bjooTUs94WAbCMRGxCuKowFwvk0xs1YyworqjgS3MQ6XhaonnC0OuHscqLEGdOX9FkmknLOpPuKqHLz7fy7dJxDeHHzx8PhN+nWh7ARQM1Fl3wRcNpv7TiPZQLyejoydDaVHK2aXTB1Bs6CSwplg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=VNCaXKUF7+hinSzQyjxfgg7C/DAI0Sf6Bnbv0WLNBN4=;
 b=nmpbos4aVZk5OV2+TqNkCKsN3GHNoZK94kbB22bqY0YqEeAdHXWJmxcJ+qy+CDrCo6TXfIGfxxF6Tm0RD5zBGT6H5CBJx/b1XuB47xDjEhoU7ow9OAjiQ1REMdZVm+p8LnIu/TAgIeFlleGj1L+Nff7gB0TK/yeaP7UGD0hdTTHkI9vRd3+elfRId5EGaGppNr/Eg8QNKSdT5vnRts8b9H65Ecns20ZqbDFr1YHRxSCgRKC2J79GWWsJEX64IZSxkS3ZnGJVVffLFzU6E6E9xXRJMCL3rfXdU0jhNMClxLlYap3ROD2KAAcFMxaD8DwX7ekpTZUE2czgZO7dTLh79Q==
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=VNCaXKUF7+hinSzQyjxfgg7C/DAI0Sf6Bnbv0WLNBN4=;
 b=OKpw6hH2l438jkRLPYn5Y03fFBTbqcuE/3aVjJGkHj4VJuZDipov1O21/T8/X6aA8Hz4tGdjXPcTQcRGgmNkaIwYozEKLnH25eMUAN33pgd1mB4NnIoK6Yy9EX/jBcjLCDfkKRpBV5OERajt2lpL3wMlwR9AmWJHtvq1+FmZsWk=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Andrew Cooper <andrew.cooper3@citrix.com>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v7 13/13] xen/cpufreq: Adapt SET/GET_CPUFREQ_CPPC xen_sysctl_pm_op for amd-cppc driver
Date: Fri, 22 Aug 2025 18:52:18 +0800
Message-ID: <20250822105218.3601273-14-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250822105218.3601273-1-Penny.Zheng@amd.com>
References: <20250822105218.3601273-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: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com
 (10.181.40.145)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN1PEPF00005FFC:EE_|SJ1PR12MB6243:EE_
X-MS-Office365-Filtering-Correlation-Id: b78ac3d9-8393-4fd2-2bcd-08dde16a13cb
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|36860700013|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?ZtcuIZ1qA1bu+lCYYL1ytXjtyZz23baao7FJ2Vrbe3yuDmFTwqm9davwKwgO?=
 =?us-ascii?Q?7+yDL4ETq2mNGIMrrrKf068s09MsU+O2Iim+RABo0Veb51BOV0xfvi7xQ1kp?=
 =?us-ascii?Q?D+QiYKxfCmUJe6k4U5Rwe3gO5h+1x8n9i9xPNOdrXTTV1gRQGxlCplQGy2MV?=
 =?us-ascii?Q?p7oZd0fwN3G+qoFcPu53AOdB+MxApS/PUZRhc5acj3xbpfgQ7ehnztKxVVhn?=
 =?us-ascii?Q?gz2O9yd6OH4rEvuDhob5grA6hi2KsKD1m81l2g3D1hsBxa7n3PYP5VFnIkgz?=
 =?us-ascii?Q?K7NizGTykRz9+k25FqPwvKaLOU3imYzlcEBdtdFKYTazAYpdecfIqtxdsJ40?=
 =?us-ascii?Q?qtwifCEwz7C73aQCX273D9GK6hWqATDi/XL5QTo4kCJn9qt5VVT2AqoT6sXN?=
 =?us-ascii?Q?l9NTIpsC/8wK7kkl/ytDKSOmP4Plwz8iabSDzpcdSzj00QvN67cJZyO6nwVb?=
 =?us-ascii?Q?xDXM9z1YypFBiOGbysXjWz9KvytzMqNUQLrRl3Elk+CD3qnIIZ7KAaUeSy+y?=
 =?us-ascii?Q?9j55lgsu4yIo75nqG0iQ+IztmQHmjHn8XvuVEGLy/r4hK5Ls7mhltWKcxV0B?=
 =?us-ascii?Q?zR66fu5ZRH61qgnVzR3tPhO91/5+imQ+gB+6+l8ciquD40W6q9/YeXaz5CvI?=
 =?us-ascii?Q?f6PhFmRelYKmieu4GUiaJMfqGJsaw35Jm5W87SWbXnPqIyX42XeSIhXbEmqj?=
 =?us-ascii?Q?Pql+8q+8etaiNreUzsp/uASLJbrVpuVFGEPMGIBBx95WxQ/QYQCClOe6BoPn?=
 =?us-ascii?Q?NzyT9lwvOo0HIpNWMcp5OVRvWseKYEdAkoYBNa/fJsKdnTh/maE73ffCH98M?=
 =?us-ascii?Q?im0AjU69hFBr/Nb5qScD3QoEJ6b0c+BFiCMplFE3VeDsTMIMVIAnZfG8dY2Y?=
 =?us-ascii?Q?8voAQlo0DR9ALnlAWvDo/Bg4rNYAFZh9zRG9kG7KuEOYn/N9xAtKoWybFwYJ?=
 =?us-ascii?Q?pBhau4QmSvSM+EqFtfxE9YOugFrjBfXhCPuK2bZxTTuqHEg1mjxQRmDr9r/E?=
 =?us-ascii?Q?9rbjIuxQ9R+dToETb3cO/keZUV/7bBgQkvxfpWeOCJx76vYzp/WzMxUlcp7+?=
 =?us-ascii?Q?Ks1Ywc7g8OkLdlKOTKmjbvhgIzHp5hiA1soR0M/nrwu3NiiipG+JrDpgS1NZ?=
 =?us-ascii?Q?+2TKneVp222JxSgH0Nglo7I43K9IuxDk50AqInVzpOEUi4JcBc03gpyEJ3om?=
 =?us-ascii?Q?wksnyLLkDjy+2LN24yuyqJZ95jm9v7cC4ufQUCF+ZK36+MXbVL33YurPSS+0?=
 =?us-ascii?Q?Z7rbu1xE0QVxX4h10SJuOCoqCuRmPmAjS12HABWzIb4++NobaUgvf0aoOxFa?=
 =?us-ascii?Q?MoDl8pdu/NeoCwVfm0E7gshIiJ6ZRMobEJXz8TSX/OMeAm31mYKrV6Z9dE6L?=
 =?us-ascii?Q?zqRqPdhSMUis3OuzrIm1T/JT8TJe+nqnw2Zq3qyXz4QjljmuXcnm2GUGhGSp?=
 =?us-ascii?Q?LcSoFfRd0/89JTj51SWnRUUUHfePUlyPrgPYfLG8zHHNClN0WvhqesbWzd7h?=
 =?us-ascii?Q?1a88ILPMzlM56twiRYtUZYDJfLHWJe0l35wP?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(36860700013)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Aug 2025 10:53:07.0916
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b78ac3d9-8393-4fd2-2bcd-08dde16a13cb
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF00005FFC.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ1PR12MB6243

Introduce helper set_amd_cppc_para() and get_amd_cppc_para() to
SET/GET CPPC-related para for amd-cppc/amd-cppc-epp driver.

In get_cpufreq_cppc()/set_cpufreq_cppc(), we include
"processor_pminfo[cpuid]->init & XEN_CPPC_INIT" condition check to deal with
cpufreq driver in amd-cppc.

Also, a new field "policy" has also been added in "struct xen_get_cppc_para"
to describe performance policy in active mode. It gets printed with other
cppc paras. Move manifest constants "XEN_CPUFREQ_POLICY_xxx" to public header
to let it be used in user space tools.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v1 -> v2:
- Give the variable des_perf an initializer of 0
- Use the strncmp()s directly in the if()
---
v3 -> v4
- refactor comments
- remove double blank lines
- replace amd_cppc_in_use flag with XEN_PROCESSOR_PM_CPPC
---
v4 -> v5:
- add new field "policy" in "struct xen_cppc_para"
- add new performamce policy XEN_CPUFREQ_POLICY_BALANCE
- drop string comparisons with "processor_pminfo[cpuid]->init & XEN_CPPC_INIT"
and "cpufreq.setpolicy == NULL"
- Blank line ahead of the main "return" of a function
- refactor comments, commit message and title
---
v5 -> v6:
- remove duplicated manifest constants, and just move it to public header
- use "else if" to avoid confusion that it looks as if both paths could be taken
- add check for legitimate perf values
- use "unknown" instead of "none"
- introduce "CPUFREQ_POLICY_END" for array overrun check in user space tools
---
v6 -> v7:
- use ARRAY_SIZE() instead
- ->policy print is avoided in passive mode and print "unknown" in invalid
cases
- let cpufreq_is_governorless() being the variable's initializer
- refactor with the conditional operator to increase readability
- move duplicated defination ahead and use local variable
- avoid using "else-condition" to bring "dead code" in Misra's nomeclature
- move the comment out of public header and into the respective internal
struct field
- wrap set{,get}_amd_cppc_para() with CONFIG_PM_OP
- add symmetry scenario for maximum check
---
 tools/misc/xenpm.c                   |  16 +++
 xen/arch/x86/acpi/cpufreq/amd-cppc.c | 181 +++++++++++++++++++++++++++
 xen/drivers/acpi/pm-op.c             |  10 +-
 xen/include/acpi/cpufreq/cpufreq.h   |  32 ++---
 xen/include/public/sysctl.h          |   6 +
 5 files changed, 226 insertions(+), 19 deletions(-)

diff --git a/tools/misc/xenpm.c b/tools/misc/xenpm.c
index 02981c4583..eedb745a46 100644
--- a/tools/misc/xenpm.c
+++ b/tools/misc/xenpm.c
@@ -38,6 +38,13 @@
 static xc_interface *xc_handle;
 static unsigned int max_cpu_nr;
 
+static const char cpufreq_policy_str[][12] = {
+    [CPUFREQ_POLICY_UNKNOWN] = "unknown",
+    [CPUFREQ_POLICY_POWERSAVE] = "powersave",
+    [CPUFREQ_POLICY_PERFORMANCE] = "performance",
+    [CPUFREQ_POLICY_ONDEMAND] = "ondemand",
+};
+
 /* help message */
 void show_help(void)
 {
@@ -826,6 +833,15 @@ static void print_cppc_para(unsigned int cpuid,
     printf("                     : desired [%"PRIu32"%s]\n",
            cppc->desired,
            cppc->desired ? "" : " hw autonomous");
+
+    if ( !cppc->desired )
+    {
+        if ( cppc->policy < ARRAY_SIZE(cpufreq_policy_str) )
+            printf("  performance policy : %s\n",
+                   cpufreq_policy_str[cppc->policy]);
+        else
+            printf("  performance policy : unknown\n");
+    }
     printf("\n");
 }
 
diff --git a/xen/arch/x86/acpi/cpufreq/amd-cppc.c b/xen/arch/x86/acpi/cpufreq/amd-cppc.c
index 1b4753a062..493550bbb3 100644
--- a/xen/arch/x86/acpi/cpufreq/amd-cppc.c
+++ b/xen/arch/x86/acpi/cpufreq/amd-cppc.c
@@ -557,6 +557,187 @@ static int cf_check amd_cppc_epp_set_policy(struct cpufreq_policy *policy)
     return 0;
 }
 
+#ifdef CONFIG_PM_OP
+int get_amd_cppc_para(const struct cpufreq_policy *policy,
+                      struct xen_get_cppc_para *cppc_para)
+{
+    const struct amd_cppc_drv_data *data = per_cpu(amd_cppc_drv_data,
+                                                   policy->cpu);
+
+    if ( data == NULL )
+        return -ENODATA;
+
+    cppc_para->policy           = policy->policy;
+    cppc_para->lowest           = data->caps.lowest_perf;
+    cppc_para->lowest_nonlinear = data->caps.lowest_nonlinear_perf;
+    cppc_para->nominal          = data->caps.nominal_perf;
+    cppc_para->highest          = data->caps.highest_perf;
+    cppc_para->minimum          = data->req.min_perf;
+    cppc_para->maximum          = data->req.max_perf;
+    cppc_para->desired          = data->req.des_perf;
+    cppc_para->energy_perf      = data->req.epp;
+
+    return 0;
+}
+
+int set_amd_cppc_para(struct cpufreq_policy *policy,
+                      const struct xen_set_cppc_para *set_cppc)
+{
+    unsigned int cpu = policy->cpu;
+    struct amd_cppc_drv_data *data = per_cpu(amd_cppc_drv_data, cpu);
+    uint8_t max_perf, min_perf, des_perf, epp;
+    bool active_mode = cpufreq_is_governorless(cpu);
+
+    if ( data == NULL )
+        return -ENOENT;
+
+    /* Return if there is nothing to do. */
+    if ( set_cppc->set_params == 0 )
+        return 0;
+
+    /* Only allow values if params bit is set. */
+    if ( (!(set_cppc->set_params & XEN_SYSCTL_CPPC_SET_DESIRED) &&
+          set_cppc->desired) ||
+         (!(set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MINIMUM) &&
+          set_cppc->minimum) ||
+         (!(set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MAXIMUM) &&
+          set_cppc->maximum) ||
+         (!(set_cppc->set_params & XEN_SYSCTL_CPPC_SET_ENERGY_PERF) &&
+          set_cppc->energy_perf) )
+        return -EINVAL;
+
+    /*
+     * Validate all parameters
+     * Maximum performance may be set to any performance value in the range
+     * [Nonlinear Lowest Performance, Highest Performance], inclusive but must
+     * be set to a value that is larger than or equal to minimum Performance.
+     */
+    if ( (set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MAXIMUM) &&
+         (set_cppc->maximum > data->caps.highest_perf ||
+          set_cppc->maximum <
+                        (set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MINIMUM
+                         ? set_cppc->minimum
+                         : data->req.min_perf)) )
+        return -EINVAL;
+    /*
+     * Minimum performance may be set to any performance value in the range
+     * [Nonlinear Lowest Performance, Highest Performance], inclusive but must
+     * be set to a value that is less than or equal to Maximum Performance.
+     */
+    if ( (set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MINIMUM) &&
+         (set_cppc->minimum < data->caps.lowest_nonlinear_perf ||
+          (set_cppc->minimum >
+                        (set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MAXIMUM
+                         ? set_cppc->maximum
+                         : data->req.max_perf))) )
+        return -EINVAL;
+    /*
+     * Desired performance may be set to any performance value in the range
+     * [Minimum Performance, Maximum Performance], inclusive.
+     */
+    if ( set_cppc->set_params & XEN_SYSCTL_CPPC_SET_DESIRED )
+    {
+        if ( active_mode )
+            return -EOPNOTSUPP;
+
+        if ( (set_cppc->desired >
+                        (set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MAXIMUM
+                         ? set_cppc->maximum
+                         : data->req.max_perf)) ||
+             (set_cppc->desired <
+                        (set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MINIMUM
+                         ? set_cppc->minimum
+                         : data->req.min_perf)) )
+            return -EINVAL;
+    }
+    /*
+     * Energy Performance Preference may be set with a range of values
+     * from 0 to 0xFF
+     */
+    if ( set_cppc->set_params & XEN_SYSCTL_CPPC_SET_ENERGY_PERF )
+    {
+        if ( !active_mode )
+            return -EOPNOTSUPP;
+
+        if ( set_cppc->energy_perf > UINT8_MAX )
+            return -EINVAL;
+    }
+
+    /* Activity window not supported in MSR */
+    if ( set_cppc->set_params & XEN_SYSCTL_CPPC_SET_ACT_WINDOW )
+        return -EOPNOTSUPP;
+
+    epp = per_cpu(epp_init, cpu);
+    min_perf = data->caps.lowest_nonlinear_perf;
+    max_perf = data->caps.highest_perf;
+    des_perf = data->req.des_perf;
+    /*
+     * Apply presets:
+     * XEN_SYSCTL_CPPC_SET_PRESET_POWERSAVE/PERFORMANCE/ONDEMAND are
+     * only available when CPPC in active mode
+     */
+    switch ( set_cppc->set_params & XEN_SYSCTL_CPPC_SET_PRESET_MASK )
+    {
+    case XEN_SYSCTL_CPPC_SET_PRESET_POWERSAVE:
+        if ( !active_mode )
+            return -EINVAL;
+        policy->policy = CPUFREQ_POLICY_POWERSAVE;
+        /*
+         * Lower max_perf to nonlinear_lowest to achieve
+         * ultmost power saviongs
+         */
+        max_perf = min_perf;
+        epp = CPPC_ENERGY_PERF_MAX_POWERSAVE;
+        break;
+
+    case XEN_SYSCTL_CPPC_SET_PRESET_PERFORMANCE:
+        if ( !active_mode )
+            return -EINVAL;
+        policy->policy = CPUFREQ_POLICY_PERFORMANCE;
+        /* Increase min_perf to highest to achieve ultmost performance */
+        min_perf = max_perf;
+        epp = CPPC_ENERGY_PERF_MAX_PERFORMANCE;
+        break;
+
+    case XEN_SYSCTL_CPPC_SET_PRESET_ONDEMAND:
+        if ( !active_mode )
+            return -EINVAL;
+        policy->policy = CPUFREQ_POLICY_ONDEMAND;
+        /*
+         * Take medium value to show no preference over
+         * performance or powersave
+         */
+        epp = CPPC_ENERGY_PERF_BALANCE;
+        break;
+
+    case XEN_SYSCTL_CPPC_SET_PRESET_NONE:
+        if ( active_mode )
+            policy->policy = CPUFREQ_POLICY_UNKNOWN;
+        break;
+
+    default:
+        return -EINVAL;
+    }
+
+    /* Further customize presets if needed */
+    if ( set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MINIMUM )
+        min_perf = set_cppc->minimum;
+
+    if ( set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MAXIMUM )
+        max_perf = set_cppc->maximum;
+
+    if ( set_cppc->set_params & XEN_SYSCTL_CPPC_SET_ENERGY_PERF )
+        epp = set_cppc->energy_perf;
+
+    if ( set_cppc->set_params & XEN_SYSCTL_CPPC_SET_DESIRED )
+        des_perf = set_cppc->desired;
+
+    amd_cppc_write_request(cpu, min_perf, des_perf, max_perf, epp);
+
+    return 0;
+}
+#endif /* CONFIG_PM_OP */
+
 static const struct cpufreq_driver __initconst_cf_clobber
 amd_cppc_cpufreq_driver =
 {
diff --git a/xen/drivers/acpi/pm-op.c b/xen/drivers/acpi/pm-op.c
index 2b4c8070aa..195dcb88b5 100644
--- a/xen/drivers/acpi/pm-op.c
+++ b/xen/drivers/acpi/pm-op.c
@@ -84,6 +84,8 @@ static int get_cpufreq_cppc(unsigned int cpu,
 
     if ( hwp_active() )
         ret = get_hwp_para(cpu, cppc_para);
+    else if ( processor_pminfo[cpu]->init & XEN_CPPC_INIT )
+        ret = get_amd_cppc_para(per_cpu(cpufreq_cpu_policy, cpu), cppc_para);
 
     return ret;
 }
@@ -317,10 +319,12 @@ static int set_cpufreq_cppc(struct xen_sysctl_pm_op *op)
     if ( !policy || !policy->governor )
         return -ENOENT;
 
-    if ( !hwp_active() )
-        return -EOPNOTSUPP;
+    if ( hwp_active() )
+        return set_hwp_para(policy, &op->u.set_cppc);
+    if ( processor_pminfo[op->cpuid]->init & XEN_CPPC_INIT )
+        return set_amd_cppc_para(policy, &op->u.set_cppc);
 
-    return set_hwp_para(policy, &op->u.set_cppc);
+    return -EOPNOTSUPP;
 }
 
 int do_pm_op(struct xen_sysctl_pm_op *op)
diff --git a/xen/include/acpi/cpufreq/cpufreq.h b/xen/include/acpi/cpufreq/cpufreq.h
index babc4a1a2c..6ca686c4b2 100644
--- a/xen/include/acpi/cpufreq/cpufreq.h
+++ b/xen/include/acpi/cpufreq/cpufreq.h
@@ -81,7 +81,18 @@ struct cpufreq_policy {
     int8_t              turbo;  /* tristate flag: 0 for unsupported
                                  * -1 for disable, 1 for enabled
                                  * See CPUFREQ_TURBO_* below for defines */
-    unsigned int        policy; /* CPUFREQ_POLICY_* */
+    unsigned int        policy; /* Performance Policy
+                                 * If cpufreq_driver->target() exists,
+                                 * the ->governor decides what frequency
+                                 * within the limits is used.
+                                 * If cpufreq_driver->setpolicy() exists, these
+                                 * following policies are available:
+                                 * CPUFREQ_POLICY_PERFORMANCE represents
+                                 * maximum performance
+                                 * CPUFREQ_POLICY_POWERSAVE represents least
+                                 * power consumption
+                                 * CPUFREQ_POLICY_ONDEMAND represents no
+                                 * preference over performance or powersave */
 };
 DECLARE_PER_CPU(struct cpufreq_policy *, cpufreq_cpu_policy);
 
@@ -132,21 +143,6 @@ extern int cpufreq_register_governor(struct cpufreq_governor *governor);
 extern struct cpufreq_governor *__find_governor(const char *governor);
 #define CPUFREQ_DEFAULT_GOVERNOR &cpufreq_gov_dbs
 
-/*
- * Performance Policy
- * If cpufreq_driver->target() exists, the ->governor decides what frequency
- * within the limits is used. If cpufreq_driver->setpolicy() exists, these
- * following policies are available:
- * CPUFREQ_POLICY_PERFORMANCE represents maximum performance
- * CPUFREQ_POLICY_POWERSAVE represents least power consumption
- * CPUFREQ_POLICY_ONDEMAND represents no preference over performance or
- * powersave
- */
-#define CPUFREQ_POLICY_UNKNOWN      0
-#define CPUFREQ_POLICY_POWERSAVE    1
-#define CPUFREQ_POLICY_PERFORMANCE  2
-#define CPUFREQ_POLICY_ONDEMAND     3
-
 unsigned int cpufreq_policy_from_governor(const struct cpufreq_governor *gov);
 
 /* pass a target to the cpufreq driver */
@@ -293,6 +289,10 @@ int acpi_cpufreq_register(void);
 
 int amd_cppc_cmdline_parse(const char *s, const char *e);
 int amd_cppc_register_driver(void);
+int get_amd_cppc_para(const struct cpufreq_policy *policy,
+                      struct xen_get_cppc_para *cppc_para);
+int set_amd_cppc_para(struct cpufreq_policy *policy,
+                      const struct xen_set_cppc_para *set_cppc);
 
 bool cpufreq_is_governorless(unsigned int cpuid);
 
diff --git a/xen/include/public/sysctl.h b/xen/include/public/sysctl.h
index 3f654f98ab..c50fa7bb3c 100644
--- a/xen/include/public/sysctl.h
+++ b/xen/include/public/sysctl.h
@@ -336,8 +336,14 @@ struct xen_ondemand {
     uint32_t up_threshold;
 };
 
+#define CPUFREQ_POLICY_UNKNOWN      0
+#define CPUFREQ_POLICY_POWERSAVE    1
+#define CPUFREQ_POLICY_PERFORMANCE  2
+#define CPUFREQ_POLICY_ONDEMAND     3
+
 struct xen_get_cppc_para {
     /* OUT */
+    uint32_t policy; /* CPUFREQ_POLICY_xxx */
     /* activity_window supported if set */
 #define XEN_SYSCTL_CPPC_FEAT_ACT_WINDOW  (1 << 0)
     uint32_t features; /* bit flags for features */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 22 12:22:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 12:22:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090066.1447455 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upQmb-0002r1-NU; Fri, 22 Aug 2025 12:22:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090066.1447455; Fri, 22 Aug 2025 12:22: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 1upQmb-0002qu-Kj; Fri, 22 Aug 2025 12:22:13 +0000
Received: by outflank-mailman (input) for mailman id 1090066;
 Fri, 22 Aug 2025 12:22:12 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1upQma-0002qo-LG
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 12:22:12 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1upQmZ-000oxu-1N;
 Fri, 22 Aug 2025 12:22:11 +0000
Received: from [2a01:e0a:1da:8420:b77:bd5:6e45:7633] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1upQmZ-00D6JL-0v;
 Fri, 22 Aug 2025 12:22: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Transfer-Encoding:
	Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date;
	bh=8wuPx5Qw/cyIUtaM2qPZB2MB2LgK3trRCo6qorCBDQ8=; b=eNy+Ukj7yfIxy/NIh74/I5NaD9
	KSeXhphkfT0xHCN/A2tpoK5zjJoTkJUOIJiKanSly7iagsbygpMhWRiKW2TED/+FlIPGcb4WIZ4C5
	7qcY5M4S0Q/h6i5CQ9HfRD19/FbK7W652ctzQtFd8+WJN0E9vbib1FsoNEyjZC1PuZ7Q=;
Date: Fri, 22 Aug 2025 14:22:09 +0200
From: Anthony PERARD <anthony@xenproject.org>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?iso-8859-1?Q?J=FCrgen_Gro=DF?= <jgross@suse.com>,
	xen-devel@lists.xenproject.org,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH] tools/xl: hide xenstore-features behind option
Message-ID: <aKhg8YASgyFQS9g5@l14>
References: <20250815143236.27641-1-jgross@suse.com>
 <3ef1fc73-601c-4de0-b94e-bbf9cc27d081@citrix.com>
 <1704c30a-49fc-49fd-bb2f-a90f7f834761@suse.com>
 <70779bfb-f65e-41c3-abe3-09ef7b13d758@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <70779bfb-f65e-41c3-abe3-09ef7b13d758@citrix.com>

On Fri, Aug 15, 2025 at 03:40:28PM +0100, Andrew Cooper wrote:
> On 15/08/2025 3:39 pm, Jürgen Groß wrote:
> > On 15.08.25 16:36, Andrew Cooper wrote:
> >> On 15/08/2025 3:32 pm, Juergen Gross wrote:
> >>> In order to be able to use "xl info" before Xenstore has been started
> >>> or after it has crashed, hide obtaining the available Xenstore features
> >>> behind the new option "-x".
> >>>
> >>> Fixes: ecce7970cfe7 ("tools/xl: add available Xenstore features to
> >>> xl info output")
> >>> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> >>> Signed-off-by: Juergen Gross <jgross@suse.com>
> >>
> >> Probably ought to be Reported-by Ross Lagerwall.  He did all the hard
> >> work debugging this; I just insisted that the conversation move onto
> >> Matrix.
> >>
> >> For the change itself, Reviewed-by: Andrew Cooper
> >> <andrew.cooper3@citrix.com>
> >
> > Thanks.
> >
> > Should I send V2 with the "Reported-by" corrected, or can this be done
> > when committing?
> 
> Happy to fix on commit.

Acked-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 12:26:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 12:26:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090075.1447464 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upQqa-0003Nx-5d; Fri, 22 Aug 2025 12:26:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090075.1447464; Fri, 22 Aug 2025 12:26:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upQqa-0003Nq-2t; Fri, 22 Aug 2025 12:26:20 +0000
Received: by outflank-mailman (input) for mailman id 1090075;
 Fri, 22 Aug 2025 12:26:18 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=HljN=3C=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1upQqY-0003Ni-Ig
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 12:26:18 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 33a5c3fa-7f53-11f0-a32b-13f23c93f187;
 Fri, 22 Aug 2025 14:26:17 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by PA4PR03MB7165.eurprd03.prod.outlook.com
 (2603:10a6:102:101::5) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.17; Fri, 22 Aug
 2025 12:26:15 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9052.014; Fri, 22 Aug 2025
 12:26:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 33a5c3fa-7f53-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=sgEra1dfrSTYaJ7OqnnSBuoMbHZcSZcf3m06fpK9ugTG+zttYvHXgO1YDdzuQAXkt8dGAV7HA5dW2PYx1LkPXIoXZXalkGlhQSSRvzMig4Tjc0+VwWuFYy3mryAxGbai6qbWwrKIvMBJUDsnLG7sQo2kBAqjhaR/bV9DoXZ1BrRjnk8SrG26oYBdAsLClimrYKEwIj/BSOybaJ5z5TAzq2dpRS/5nhg+mokjqfTksLzfyo9lDdKp0XYs1OZcgjA1qHi7fwRxZ4R4iMlzaz0ZdKzK84Lv0xOOmE+ewP49tQyIY7JxjrDdvGQcWSlN99rixeRKXzaBHlWLzdg0kuWDCw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=6Z11hu3hGIlIs2PrP9Pi+5fr4zO9riQloNKV1v9b2Aw=;
 b=eVkLdi5cb+8zrwrj9ZjpqzbiErrCAiL3XkNCUIReKs6B7FHFhCByXvI08m5abfTGq0i1k8WcnswZfLkHtBD6deKzLKecYy/rS/l/aoWJ0z0lyYi1oA0va1BiJcB8ZfFif8K6iiL9qszbZ/vRhuz2MXuXzp5HJ17CJjFC/jLYPAbNzmzHAWuQdFDEMj0vIVEZQleUi62FFopgQoZtGkHnIgiX8bWaN9nq9gkxUcUfMXnPKiLtvQJGXC0/Z2mmEQM1B1TX9JTjX1xy02E0i85JElYa8Us9nj1ARQ2KPu/F8txaQx1GJshwFSsJ8kh0axygwBTw0nYQW2b3lDMs1iGqig==
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=6Z11hu3hGIlIs2PrP9Pi+5fr4zO9riQloNKV1v9b2Aw=;
 b=k/CJzM4ZgzXGuaE6nFQe6a/mLdS579IgA/wJBBPfokfa3sv8d5pP9DOaIpYnbrqTKskzm/E6n9AkBnTHho4cxCZxZksYlUQpRqudGEtlPE+gxftZhrJWuRDqoNCqjmBuciZEhClqbzQ6AEHhwrzoWIoIyablfuLww4zap5mXiKcnWhh8LAIXQ4JHPhdklCom5/V6Qv1ZORyTh/alkDowvaUDkdK36YKH4m504UjRtzsKYccePxnQ/+h7A2ncndCZBal7USjpFWVRN8yB9p+kmgHNDN1lqODPn1zMJ+S6rAukfgCG3hzOADbgdRHfR5NfKdGmgWlKWg07u4AAKSG75g==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v2 09/10] xen/arm: domain_build: adjust Dom0 IRQ handling
 to support eSPIs
Thread-Topic: [PATCH v2 09/10] xen/arm: domain_build: adjust Dom0 IRQ handling
 to support eSPIs
Thread-Index: AQHcB5d/fLeRBY0aQE6DC46DWY0Ygw==
Date: Fri, 22 Aug 2025 12:26:15 +0000
Message-ID: <87y0rbbl0a.fsf@epam.com>
References:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
	<abba685916e6637eedbd831352bed2e968eeb7dc.1754568795.git.leonid_komarianskyi@epam.com>
	<87o6s8d3m1.fsf@epam.com>	<93cd9406-030c-4915-b180-1cc90109b7d3@epam.com>
In-Reply-To: <93cd9406-030c-4915-b180-1cc90109b7d3@epam.com> (Leonid
	Komarianskyi's message of "Fri, 22 Aug 2025 07:08:50 +0000")
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_|PA4PR03MB7165:EE_
x-ms-office365-filtering-correlation-id: 79395254-7794-44da-694a-08dde177168c
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|42112799006|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?KpHZUVR8mCGBfE3auVyH5A5vmPZlBRwmXKHLs5UOjl31/2a1ddOT5q1OM5?=
 =?iso-8859-1?Q?BQ5d8lFK8vEvUzC4npd6oFDYjZx/deaIXubhp+e25Hn8y4jGT9VRg5l2NG?=
 =?iso-8859-1?Q?h2yR8+DeSBlyNSe/VSS6QlRdicKQU8yB52NXauUq5OLxkM6jMDxOdC6jhC?=
 =?iso-8859-1?Q?KTnu1PnMK2CQDDaEz6BDY9zfJRwifVMxLgFHP2ZggZQDYVEioBhY2V+X99?=
 =?iso-8859-1?Q?1ZQzX+xrI++xlkexL0cfdCOQOq3jrdQf64Cku5oxoMz+IJApIJoIg5Rqep?=
 =?iso-8859-1?Q?yyrPivAFidcL93qhOs6erLHkPfJU5OwK01CDYhtFui4Sm9DBtthsbmzmIQ?=
 =?iso-8859-1?Q?AHP8AQ0UanUr/cPLnrl7RrC/Bzx8awxSn/O6oGF7uCvqLiHEr2ElY9GF9Q?=
 =?iso-8859-1?Q?gZhz7al7Z05uehuTgBVNswXvXo3+Ra7WtkHkxTnoF9rLYzCO8xZvUaJSQe?=
 =?iso-8859-1?Q?rYd/db2VrINGyOWhoE1TGmq1lwIvXwE0kQq9RFhCITF6w1ka7YOzq8xry9?=
 =?iso-8859-1?Q?OsySYVNN3xAKANfd9MEtSnIyBL5KOScHlVl7b/sCncqab55zRZh+CMtTKm?=
 =?iso-8859-1?Q?5T8iswb6M2ScZMFTf4UqG3rl5nHgwqv3dYa2lm3xoN3YuzVxuN9eJOKSjI?=
 =?iso-8859-1?Q?maeWlQFpX0kWRC0GKMiHMA6xyZZrjhx+OSjnF+d0L5xgM2VeyxhhcMRP05?=
 =?iso-8859-1?Q?TAZwca6dDD34I4layeOpmjDWg9vgGxoJS6I4YzmGq8aEcUWvC4GmVN90Ma?=
 =?iso-8859-1?Q?yyjG60GKe7aMeYyU/aFfYo59mOLr9VPvQvS3mMrTlRA+O6mu/ARZ4Z9pNG?=
 =?iso-8859-1?Q?5p6onywocVpH/7P8ydReDj1uE/2f7cg1NSQt8S712Xz+AyBvgUvjWs/R3V?=
 =?iso-8859-1?Q?iP4oJLKPaGixu7hjPMfZHerHC65ZG+oBlvcKSmFSuP2CjQ0e+EruLAi62Y?=
 =?iso-8859-1?Q?U2/IyNzud5Y6O8EsNLYc6SZi8pzD2AucYwyzOaah9UF96gcP5qn3RCCNIG?=
 =?iso-8859-1?Q?B+N/01uU/MzKkwYn2lYUSqPerLYQrVYvHOxvB3a1MsyUbYd+8UzPxvikAq?=
 =?iso-8859-1?Q?ooFkjJhH1FeByu2NMHSFDwQvZwhKZkf1ipgHKxEshGkEpCXgMSSYx1hgaD?=
 =?iso-8859-1?Q?CTNAD/aKet0Ex7L/yMyL6QZ2i7H5OAM8jitspQw1Cj+bEXFVGFDgZqKa+m?=
 =?iso-8859-1?Q?zj6SrrT2zgJijOrW31J0wkUydhJ7f1nDGXhgvvnfL4h2d7wfRBYktstfLN?=
 =?iso-8859-1?Q?ybrnKZubeVfnpgyLyH2SqtpyhkRs+XewsQvWnMGzqa2vbmljbn1D3JkXcA?=
 =?iso-8859-1?Q?SEFK7YcfXoOukYmO1jtPRmnbAOWGKu0VBUuPq6Uk5qTNC04CTWL0mnS0IO?=
 =?iso-8859-1?Q?4+m5ezGlgFKpTdd84u0aoxOBygGSCyp5ExscKBRSE6saDqiA07dVD5eF0a?=
 =?iso-8859-1?Q?F3snf+2qTNtllv0+0sVlKKhdAvOuSnWUvP1p4doZr00sPCEc4FcWNTOmsZ?=
 =?iso-8859-1?Q?tjGiFC9mXt20XN3gJADxHBONlNoT73GMNYruAiKbG0dvOSSqhO/hpCb4I8?=
 =?iso-8859-1?Q?Gg/0VkA=3D?=
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)(1800799024)(376014)(42112799006)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?qZtdZoJ07xwcPCXydAS9mme1MHAzshGwB41Q58wbfE9482ydNGjKYoZIe8?=
 =?iso-8859-1?Q?j7pO56z57JnONcpd5KHeKN5UCOJu04eSEehhc7NP4MWsobpYZBchyIlHjX?=
 =?iso-8859-1?Q?cwPJhw9otrG5alCHon09OtPy6daipP+ZGak5gucjJ4qtuXqnV3lTCBz022?=
 =?iso-8859-1?Q?Ngqp7z0xykFckrQjh8iZWyasa10tOCFKSsIrJezh6smVjr+HAqkZCWvwqu?=
 =?iso-8859-1?Q?M+tca66IRn3Y6trlwBBTgUlLPQm2PqF+1vFZlVvYisLDtWfGoIjix5KrcG?=
 =?iso-8859-1?Q?Eral6K5Drmex9fPunj2/Hc+78goBFhONDWb//HpnX8a2h6+BfSd1B37piP?=
 =?iso-8859-1?Q?XzYtt7YzCWqXp1WbatNBcN4VoqtVpDoGpvFArB//b5KObCImgjo7ckLKLq?=
 =?iso-8859-1?Q?zNZ+xe36+eHXNuiO0Yx1/nuKujOz/QZh3HVKHASYyFbbjfiffrvzNLvdOF?=
 =?iso-8859-1?Q?QBkfRtmu4dz+dlERj2AqF2GmPGWpOr983T2BX7urLTVvOlF2n6LtJP7/sx?=
 =?iso-8859-1?Q?tb7qUWTW5rJS1D2h5eF7wQ92FLStGymBoVfw/7ryTBB0Ok9SxguV/zCpry?=
 =?iso-8859-1?Q?9KzcTWBf6iXQ7+/F01oeiJmlXy7qhn/Ebph+XANYek89ub4NOG9Q96S5ig?=
 =?iso-8859-1?Q?ZXz6xbf5DY2GqFk1vXeEOX1cYR4BrIkT9spTp0VLebKnpdf/uoVulH23TX?=
 =?iso-8859-1?Q?Bmv16UTkCv4hTHSwmW2fp1EI/cOqd+Dzv7c+tFnqgg+qaOn2RzFy7Ph6kn?=
 =?iso-8859-1?Q?Lcv3Pjwzk0KAH5+Jwp6/O6Rmbw4XVB9jN0RgmXImm6ENtA8iI2uJOQv0Vc?=
 =?iso-8859-1?Q?ZicieyS6ubQBqqJRaEnHz7DdZfrI2KwMoppN6GaM2MOkWPGx8a14pJE6zy?=
 =?iso-8859-1?Q?qDBbLmLib3QCuA4KUjKTbOfytyUW6/dVJmMWLqkSGR8PBdefTGqrJEpp0A?=
 =?iso-8859-1?Q?nir7+dgwGQyqTAgsZoo38Q5bOivDJh1glP80ucR7Kz9xpfo0ygOUxHRZ4P?=
 =?iso-8859-1?Q?GghBO13FfDLd4U0s37ElARqt3+q7B3O4q5peq55AR63xg/Gz23LwSZpJYw?=
 =?iso-8859-1?Q?ZPHuDy+Sxqwm12Hc5O3HFL7DWcHV/QRBmxTIzzuG6Gbpe2RJXZyghRLXQS?=
 =?iso-8859-1?Q?RNzWnBxE0m8LM9sOSuxhtHYLCVM53/UwLEz3cHVO94jRBF0usHa1DR5a7s?=
 =?iso-8859-1?Q?DZ2rwovKtGtkUOBbU6uTOATqbMZyDugJBdkP00R/GpvJ8bqOLrPZv+CBwS?=
 =?iso-8859-1?Q?VsiGxaBKM4x5MQG3sXhrYI5B1MHsRXpfXKMwYMKDL2qr0VIBWHLO4s9YEm?=
 =?iso-8859-1?Q?QysVkk/rQ6xIUOj8DKAXFGw50hO33QKTyQZmZlRsgqTTpJIYTYnosR1qBA?=
 =?iso-8859-1?Q?RRaChF5feyaML+2ypDYOVNMWgNAIJhLAdSvb0uZRTZDyEhvPDG4b+JtL80?=
 =?iso-8859-1?Q?WFUsPuxG6zur/rlPepBjVlM5CxqQ0KMTn0ezlfbSzAMkUVjK32O6OYmMsQ?=
 =?iso-8859-1?Q?/tOr9jrr5QEyizPBALwvz/EgHbkRFb3r8LEHkuYxVYxyinX8OTSXiSAlne?=
 =?iso-8859-1?Q?u0Slh0uNMxPR0pgXiwHxtRJhD3cE+jecYR3OMUAqk0zt9PW5kc0o58Y/To?=
 =?iso-8859-1?Q?k/SVwHRi7OtCMb7Mc982ggArDRaOrRRrimzxpWGOpF0Yyq1zPRDQmaOA?=
 =?iso-8859-1?Q?=3D=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: 79395254-7794-44da-694a-08dde177168c
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Aug 2025 12:26:15.2101
 (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: 3e5HjebRLhVj5LsSsPHunZ3DcA48t1GrMRofLMaxkECV0RjPXnaG1+aJlU5DHFhUA1lAyGKc+Mm8/Sd5ucxIKWkWlCrNATAGw9BujWB8B5c=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR03MB7165


Hi Leonid,

Leonid Komarianskyi <Leonid_Komarianskyi@epam.com> writes:

> Hi Volodymyr,
>
> On 21.08.25 19:46, Volodymyr Babchuk wrote:
>>=20
>>=20
>>=20
>> Leonid Komarianskyi <Leonid_Komarianskyi@epam.com> writes:
>>=20
>>> The Dom0 configuration logic in create_dom0() has been updated
>>> to account for extended SPIs when supported by the hardware and
>>> enabled with CONFIG_GICV3_ESPI. These changes ensure the proper
>>> calculation of the maximum number of SPIs and eSPIs available for Dom0.
>>>
>>> When eSPIs are supported by the hardware and CONFIG_GICV3_ESPI is
>>> enabled, the maximum number of eSPI interrupts is calculated using
>>> the ESPI_BASE_INTID offset (4096) and limited at 1024, with 32 IRQs
>>> subtracted. To ensure compatibility with non-Dom0 domains, this
>>> adjustment is applied by the toolstack during domain creation, while
>>> for Dom0 it is handled directly during VGIC initialization. If eSPIs
>>> are not supported, the calculation defaults to using the standard SPI
>>> range, with a maximum value of 992 interrupt lines as it works now.
>>>
>>> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
>>>
>>> ---
>>> Changes in V2:
>>> - no changes
>>> ---
>>>   xen/arch/arm/domain_build.c     | 10 ++++++++++
>>>   xen/arch/arm/include/asm/vgic.h | 11 +++++++++++
>>>   2 files changed, 21 insertions(+)
>>>
>>> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
>>> index d91a71acfd..fa5abf2dfb 100644
>>> --- a/xen/arch/arm/domain_build.c
>>> +++ b/xen/arch/arm/domain_build.c
>>> @@ -2055,6 +2055,16 @@ void __init create_dom0(void)
>>>       /* The vGIC for DOM0 is exactly emulating the hardware GIC */
>>>       dom0_cfg.arch.gic_version =3D XEN_DOMCTL_CONFIG_GIC_NATIVE;
>>>       dom0_cfg.arch.nr_spis =3D VGIC_DEF_NR_SPIS;
>>> +#ifdef CONFIG_GICV3_ESPI
>>> +    /*
>>> +     * Check if the hardware supports extended SPIs (even if the appro=
priate config is set).
>>> +     * If not, the common SPI range will be used. Otherwise overwrite =
the nr_spis with the
>>> +     * maximum available INTID from eSPI range. In that case, the numb=
er of regular SPIs will
>>> +     * be adjusted to the maximum value during vGIC initialization.
>>> +     */
>>> +    if ( gic_number_espis() > 0 )
>>> +        dom0_cfg.arch.nr_spis =3D VGIC_DEF_NR_ESPIS;
>>> +#endif
>>>       dom0_cfg.arch.tee_type =3D tee_get_type();
>>>       dom0_cfg.max_vcpus =3D dom0_max_vcpus();
>>>  =20
>>> diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm=
/vgic.h
>>> index 9fa4523018..117b3aa92c 100644
>>> --- a/xen/arch/arm/include/asm/vgic.h
>>> +++ b/xen/arch/arm/include/asm/vgic.h
>>> @@ -353,6 +353,17 @@ extern void vgic_check_inflight_irqs_pending(struc=
t vcpu *v,
>>>   /* Default number of vGIC SPIs. 32 are substracted to cover local IRQ=
s. */
>>>   #define VGIC_DEF_NR_SPIS (min(gic_number_lines(), VGIC_MAX_IRQS) - 32=
)
>>>  =20
>>> +#ifdef CONFIG_GICV3_ESPI
>>> +/*
>>> + * Returns the maximum eSPI INTID subtracted by 32. For non-Dom0 domai=
ns, the
>>> + * toolstack applies the same adjustment to cover local IRQs. We will =
add back
>>> + * this value during VGIC initialization. This ensures consistent hand=
ling for Dom0
>>> + * and other domains. For the regular SPI range interrupts in this cas=
e, the maximum
>>> + * value of VGIC_DEF_NR_SPIS will be used.
>>> + */
>>> +#define VGIC_DEF_NR_ESPIS (ESPI_BASE_INTID + min(gic_number_espis(), 1=
024U) - 32)
>> Name of the define is wrong, as it is not number of eSPIs. Actually, thi=
s is
>> maximum SPI (including eSPIs) number.
>
>
> Thank you for your review.
> Would it be okay if I rename this macro to VGIC_DEF_MAX_SPI?

Yes, I think this is better name.

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 12:28:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 12:28:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090085.1447475 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upQsS-0003vL-En; Fri, 22 Aug 2025 12:28:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090085.1447475; Fri, 22 Aug 2025 12:28:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upQsS-0003vE-BR; Fri, 22 Aug 2025 12:28:16 +0000
Received: by outflank-mailman (input) for mailman id 1090085;
 Fri, 22 Aug 2025 12:28:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=HljN=3C=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1upQsQ-0003v8-Hd
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 12:28:14 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 773231a3-7f53-11f0-b898-0df219b8e170;
 Fri, 22 Aug 2025 14:28:12 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by PA6PR03MB10379.eurprd03.prod.outlook.com
 (2603:10a6:102:3cb::7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Fri, 22 Aug
 2025 12:28:08 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9052.014; Fri, 22 Aug 2025
 12:28: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>
X-Inumbo-ID: 773231a3-7f53-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=sMLo619H6ijpew7Y9b7LkpOg8Cltpl6kizSKPP6S3r6B0l0y6m4hLFv3HcjwtfL0/BHXWLNI+oU/HnwGdLywVLGnfbCKMWPQX88nKLRx76qXmpBOrkQ14whEoQlH2xcmOPDYR2BRkGlXiBeE9Sg5gQ+cf29fD1GtStZQJSm/7acerf+StfeMrNpQHjSmv6Z1xy7tfTh49UI8auQ1G3Xpd1fI5rmcx0qRdU2gmUsYicMP9yZ4UnWuftzdDzBMlgWElh1lVfbE++fCTHmBxJm9VuRQvgnqK/0cZHziye4wd5jF9wErs5F5et3T6nUi6EQNm8IwjZIVXUJKzaARJDVCxg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=I2wkmUmfW0AfLVRZuI9COp7Uzg+eWyGpSfwnLtnUgEg=;
 b=gU1ku1md5uHjC+vGI50MFy9wmgFO/nX3kj2Uddspn58FD8RY/NEYdaxsK89A1wJIWNlO/r7sxjBYeht2INFv9s15UvzBi6lnVTW+dzKm5YsF8Cjw/MzPapPDI6+kO84PUADBx7UQZVnOjr6Yy8dNtn0cBmYmK6os0CQG3En+Sre5wG2w9m0F6oZGpcI+WD/9Fbk5C+JweJVWc5/b0L5B8okeQ7yy5nKtNlH4JEzJ5vZaYGp9QdMTIM9UMDuDqjyI97RRUr3IyUerpNfhwNyANWvrEgZDygiH8je2Nx/zOQy1KN/YiRluIi/uf16K2VTri3ch8hfQPEuCT7QD8AyFLg==
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=I2wkmUmfW0AfLVRZuI9COp7Uzg+eWyGpSfwnLtnUgEg=;
 b=WSbp9xsnXq4pCxLv1jZd6AqBmTwtFXChHcf43RhvVStbUUpKGuNjolXiNS6YgtGTrmsOHo+fyo9GGY9UG78i+PTSC+l4d3jE0iXUyMhUox9HtOOgr8MnwFa05cKh3U0Cfnny3BE01JqIdie5aFnmEdzWkBixONUYQuT72d7yL8HovXDFPBysOCWLJHqBhRh52ZpUeV2Iu/tGaN+6ecflhoo5/zIeMHpGHsUYp3pTrupkLOITgO15rcI3ODd5xPTbyk/IJHE/R5Bdkx3JQ3gEVPJPHxf3e9KxNXRv445nRlt3cneSF1tJg+I84GODRw4rXGMIPFYKZrcAUx3GXoTtWQ==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v2 03/10] xen/arm: vgic: implement helper functions for
 virq checks
Thread-Topic: [PATCH v2 03/10] xen/arm: vgic: implement helper functions for
 virq checks
Thread-Index: AQHcB5d76MRh/Swq2EGu624C+G/Fbw==
Date: Fri, 22 Aug 2025 12:28:08 +0000
Message-ID: <87sehjbkx4.fsf@epam.com>
References:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
	<f029f88411e816846d13aaf33d4ef703f95d1bb8.1754568795.git.leonid_komarianskyi@epam.com>
	<87y0rcekyo.fsf@epam.com>	<7360fa14-2c55-4aa8-bbba-e355a47d2928@epam.com>
In-Reply-To: <7360fa14-2c55-4aa8-bbba-e355a47d2928@epam.com> (Leonid
	Komarianskyi's message of "Fri, 22 Aug 2025 07:55:07 +0000")
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_|PA6PR03MB10379:EE_
x-ms-office365-filtering-correlation-id: d37d5ec7-e18d-42a9-a021-08dde1775a25
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|366016|42112799006|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?P/pWNSjP0gB4IxeNXgKwimoREHQrbtZ4pLw86fNZeMu5NUcNrCYuEG/6tF?=
 =?iso-8859-1?Q?czDk3dnreetVLc97pZmJRhW88u189TObpDj4wIWwMp6QS/EFR3TtOtPMfK?=
 =?iso-8859-1?Q?NhJdcr+kf7cCs6zaX1LbRHbwNHLeQQCqxu+5Y5qdv0xpg4EILweXNVASRu?=
 =?iso-8859-1?Q?H4X+uRKNmPHhBoufKZK5nTakVsi4O3PhCaviGWXePa7PQty9N9oERgwQ7x?=
 =?iso-8859-1?Q?k2FxLO11OJAcgLQRjkEbxnASECMeLCCzjiq4tXO4BiECzTkmGue8g7z2Y/?=
 =?iso-8859-1?Q?/B/oMBu7oOpghqQD8Xh+9dox4G2Ys15nM/R4jLhb7q9P6FEbMyBgNk5WSR?=
 =?iso-8859-1?Q?TRugqjxH/tzws4pw1XANLwipd5JHI4x3H41TaIXW6qtA/ZX07UXpcRvcss?=
 =?iso-8859-1?Q?J6iFhSQggGxjDPkk8uYo9eBBhodXqm5D8sOpo55zqxx3LOmK6iYslcVd3f?=
 =?iso-8859-1?Q?rqzQWEiAHjakTqPSEDALIvYkMI3N0F7Vr2aUDGs/vk39rpj8QQ65l9Us3c?=
 =?iso-8859-1?Q?H/iL+rVbXljDuBPgdhq/mq/RAhMacDZBfudpMMeG/nbCWac4z4vlaj15lq?=
 =?iso-8859-1?Q?qmkuxPJs3NpXwK4TRDBd+xqqUJs9ZznJkPeysTdRtkWjCiZ5GfyViYMasd?=
 =?iso-8859-1?Q?+u/brjtOP+WGEo3iwasBUH+9TE5OWEXSORZXIs8+ihjTmfPjDvLG/Law7g?=
 =?iso-8859-1?Q?wbvR8YN1WDQo3zNPPEer6lSBX9TJIY8MYwhtWO4iZ0vWoQqXmkTv7Krvx4?=
 =?iso-8859-1?Q?vJdMrg2JV3sL1ttLSBeoXP7bNZqNt7FgCWUfd4UWLx++cj3lC/hf6Lp0b7?=
 =?iso-8859-1?Q?pwz76MDYLB+22m0C84EsEmNSrb5pz7aNmt9UiuxhyfBBRpAUpCaeRJAnZq?=
 =?iso-8859-1?Q?DbmBX6k9HCAC8Eda4oo9EzcVVYleBI9V3x1h7UyaEJygVD/VF9GClgzUpt?=
 =?iso-8859-1?Q?obo8f35+LDGtGP/fdIVb8C6/Y21yIah1kSjYge6csnTbhDm1ZU1QVPX/sr?=
 =?iso-8859-1?Q?biVQGiyLTeOl7s+JxElX3epWZ7srTTnwVxaIxV/7zSxqDkuGSjrsqYCi6p?=
 =?iso-8859-1?Q?zd1FzDggNTFrB7KQulgmpoWq0WsfUaIMDJ/c+EN4VgPRHKYNoto74AKgVL?=
 =?iso-8859-1?Q?KuHTAM8popSnjS5raSJkGpcwkMnUdPHChc110by7W49URA9Cppiquc5jot?=
 =?iso-8859-1?Q?qbY7oWRtsyYRtglnRuniWWCoaR/w8rnr2/XZbafPCsCgCqNM5AoGsGWpBt?=
 =?iso-8859-1?Q?7XFdfrpuJgwY+uPNON2cJId0i9k4aMMVOy8xfMZC5VjOJe6NXsDzqTr6o3?=
 =?iso-8859-1?Q?GUYDFzwc2vbZwXKf5y/YnZdCNLZKQqhPskhw8A7QyiAfrfjFVy03KRZy8h?=
 =?iso-8859-1?Q?XdrAcZyrclEdnyEaCfj3lLFDaRQoWB+nGe94a9DzXp1Iru2GWHDhrHEwhx?=
 =?iso-8859-1?Q?11VfdivTc/YUtZvxguFl9HCBEg5cnFlox3RMFsalQ+sIWVOXRCJC8LbxXs?=
 =?iso-8859-1?Q?3/nFDiOXPHhUKL9AsP/ntXTzzSnhdV+1LyLZ56pOMigA=3D=3D?=
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)(42112799006)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?iYr3yPpXTWDwrBGdbthFE4Q4bGtC2VicmXCagEdvwLITRclP5koFC38W22?=
 =?iso-8859-1?Q?j0Ntlb1PyjVq3xSqNZAWzx32l7zq9WdpwKx/mVvIBe83kgZf1fhHrS5NUO?=
 =?iso-8859-1?Q?rFQxZC/GhlMJ+u+MUOGxKGD2BijaEH1zpIq10AYmcQ0Ti9/HZcxa6ZpozD?=
 =?iso-8859-1?Q?PG9A8q62lROX6S24aNPitT6Qy/BFhZAARvq4P3jDKzsPCiIyRwJdv2hJ8e?=
 =?iso-8859-1?Q?N1JQZyqQSv7FI7BSWvyVl5xGJ+k4X72V2lFc0RZUPwMKX9+kuF/88KB0ml?=
 =?iso-8859-1?Q?lwvoyhkqK4ZMZfFjXFw/AUiwbD0HHEnCwAIAdit462AwOTafCS91YRUveB?=
 =?iso-8859-1?Q?e+1+TeQ7pLCPIuhswKy7tvjty7Vq8LNLZ+mEWjOBFp/qkjBXTzn98ps+T7?=
 =?iso-8859-1?Q?ZZMgYtxMNqWbtp8o1XOvnezzifkl81aN7KRvZY9cfAMsGYOoieCF6LeJ6F?=
 =?iso-8859-1?Q?r9XIHqk/OlOPoeA6D9X6/nMk839sJuLeL83JnQ0uNaiQsmO+0gnI04BpNl?=
 =?iso-8859-1?Q?4plogOndJa6T0Mz1Ewk2Da0vvyYr5WchqXiGvn0qLpeUYhhD46dYa5bWvv?=
 =?iso-8859-1?Q?tI8InzN+do7KsE69ZkfJx3uLLgoLGWjEPDvygQZ+37nQwvVfvRy28WaDAy?=
 =?iso-8859-1?Q?Cp2/tAtfvvNKpstPky0/aVZNw//5DgF9lMMyIMiaj/sfaGNKXMKA/sgobd?=
 =?iso-8859-1?Q?38sNfvQSSUQvhbwKR16XonV6wLg/ft2uEjoPyA5HtRg2w4h9I/nu46DYDI?=
 =?iso-8859-1?Q?AfIX0M3Nefj6afglItIwOHlmLZFAkwtqhc47QNbeC8opsyd5J1OuTrANmO?=
 =?iso-8859-1?Q?dYKOBCKUAtIPJiNjlVd/5kFP0jF+R2MGEEEjoR9KAmxseQDSFdJvHuaqV6?=
 =?iso-8859-1?Q?F5wTpp/HQCNdkyKxDryoO347GYm/sIFoV6A5IAztATJrvhLIe/vb0R+xZ1?=
 =?iso-8859-1?Q?Exdp+Z7XYBTJm28YLz3Hx0eyt/ZmydO85gDuRbtGoq1joKmE3Txg/HLsaG?=
 =?iso-8859-1?Q?TUhSukwsXmSEaToUSMFwxYhBFoAhxrrUzDXr8h/NQBhSUTHg/M6GAvswp5?=
 =?iso-8859-1?Q?TM9npgc4pjIS2rNcGC7s4P7j92bncJqzb3Fpk17l8c/aH93syfE31mdy6w?=
 =?iso-8859-1?Q?cmQj98Irbyqvuzf50riTecvADtxWj++UWTC9yHLt/NNHrRD8TXJ8/w5wJs?=
 =?iso-8859-1?Q?lXF5HpwodpjFc5kVg4LkzvNIel9RRly3BQ7ZgmzjilIXlfpROHwRrEU4lf?=
 =?iso-8859-1?Q?etUn7i9fOBqbxcYYTa6EBfiBeBWYYQOCg8uXP00LO5UpjOTKZukCD+d80o?=
 =?iso-8859-1?Q?L1QnQtyb8jGhipAF9U0Lu4QV67xj1Aq/r6L/zR3GTMkxjSLGFZn9ug7XBm?=
 =?iso-8859-1?Q?VyAt+f7ClZdoXxyVOxq+5bSRQWoRaLgRIJDuuxKshfInoooLEDX50VgMZu?=
 =?iso-8859-1?Q?rU6Rc/6rovdJryCamkdmqG9dA1LBNMwkfKebcWxVuUfjsKskG7xrVGVUmm?=
 =?iso-8859-1?Q?oNQH+i0cLe9m8jxduorw8V/uh+eZ9bT5p1r/Zjao29E/5rK0aWrztnGTDS?=
 =?iso-8859-1?Q?FAbVH3BvNh/VBR1IMnXXPjE0bxdlcIL1LJy/vjpOMUUT/d0QHizyhNGfs6?=
 =?iso-8859-1?Q?A0hABpswxffZemkIM3rk8f4d+AztFD3Lu+c/JLeZ+WWybLaDEmOyk72g?=
 =?iso-8859-1?Q?=3D=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: d37d5ec7-e18d-42a9-a021-08dde1775a25
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Aug 2025 12:28:08.5714
 (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: 1rRt9NPj+icGvgvrzx6p82w5VQe8WXXnh47T9yIicBb5VLhg/NtOOB5bRAUu6X/JJM4aYRnrTt8hu/eU0Vr9GeLLkec4i2vbnZ9RFray4p0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA6PR03MB10379


Leonid,

Leonid Komarianskyi <Leonid_Komarianskyi@epam.com> writes:

> Hi Volodymyr,
>
> Thank you for you comment.
>
> On 21.08.25 18:46, Volodymyr Babchuk wrote:
>>=20
>> Leonid Komarianskyi <Leonid_Komarianskyi@epam.com> writes:
>>=20
>>> Introduced two new helper functions for vGIC: vgic_is_valid_irq and
>>> vgic_is_shared_irq. The functions are similar to the newly introduced
>>> gic_is_valid_irq and gic_is_shared_irq, but they verify whether a vIRQ
>>> is available for a specific domain, while GIC-specific functions
>>> validate INTIDs for the real GIC hardware. For example, the GIC may
>>> support all 992 SPI lines, but the domain may use only some part of the=
m
>>> (e.g., 640), depending on the highest IRQ number defined in the domain
>>> configuration. Therefore, for vGIC-related code and checks, the
>>> appropriate functions should be used. Also, updated the appropriate
>>> checks to use these new helper functions.
>>>
>>> The purpose of introducing new helper functions for vGIC is essentially
>>> the same as for GIC: to avoid potential confusion with GIC-related
>>> checks and to consolidate similar code into separate functions, which
>>> can be more easily extended by additional conditions, e.g., when
>>> implementing extended SPI interrupts.
>>>
>>> Only the validation change in vgic_inject_irq may affect existing
>>> functionality, as it currently checks whether the vIRQ is less than or
>>> equal to vgic_num_irqs. Since IRQ indexes start from 0 (where 32 is the
>>> first SPI), the check should behave consistently with similar logic in
>>> other places and should check if the vIRQ number is less than
>>> vgic_num_irqs. The remaining changes, which replace open-coded checks
>>> with the use of these new helper functions, do not introduce any
>>> functional changes, as the helper functions follow the current vIRQ
>>> index verification logic.
>>>
>>> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
>>>
>>> ---
>>> Changes in V2:
>>> - introduced this patch
>>> ---
>>>   xen/arch/arm/gic.c              |  3 +--
>>>   xen/arch/arm/include/asm/vgic.h |  7 +++++++
>>>   xen/arch/arm/irq.c              |  4 ++--
>>>   xen/arch/arm/vgic.c             | 10 ++++++++--
>>>   4 files changed, 18 insertions(+), 6 deletions(-)
>>>
>>> diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
>>> index eb0346a898..47fccf21d8 100644
>>> --- a/xen/arch/arm/gic.c
>>> +++ b/xen/arch/arm/gic.c
>>> @@ -133,8 +133,7 @@ int gic_route_irq_to_guest(struct domain *d, unsign=
ed int virq,
>>>  =20
>>>       ASSERT(spin_is_locked(&desc->lock));
>>>       /* Caller has already checked that the IRQ is an SPI */
>>> -    ASSERT(virq >=3D 32);
>>> -    ASSERT(virq < vgic_num_irqs(d));
>>> +    ASSERT(vgic_is_shared_irq(d, virq));
>>>       ASSERT(!is_lpi(virq));
>>>  =20
>>>       ret =3D vgic_connect_hw_irq(d, NULL, virq, desc, true);
>>> diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm=
/vgic.h
>>> index 35c0c6a8b0..45201f4ca5 100644
>>> --- a/xen/arch/arm/include/asm/vgic.h
>>> +++ b/xen/arch/arm/include/asm/vgic.h
>>> @@ -335,6 +335,13 @@ extern void vgic_check_inflight_irqs_pending(struc=
t vcpu *v,
>>>   /* Default number of vGIC SPIs. 32 are substracted to cover local IRQ=
s. */
>>>   #define VGIC_DEF_NR_SPIS (min(gic_number_lines(), VGIC_MAX_IRQS) - 32=
)
>>>  =20
>>> +extern bool vgic_is_valid_irq(struct domain *d, unsigned int virq);
>>> +
>>> +static inline bool vgic_is_shared_irq(struct domain *d, unsigned int v=
irq)
>>> +{
>>> +    return (virq >=3D NR_LOCAL_IRQS && vgic_is_valid_irq(d, virq));
>>> +}
>>> +
>>>   /*
>>>    * Allocate a guest VIRQ
>>>    *  - spi =3D=3D 0 =3D> allocate a PPI. It will be the same on every =
vCPU
>>> diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
>>> index 12c70d02cc..50e57aaea7 100644
>>> --- a/xen/arch/arm/irq.c
>>> +++ b/xen/arch/arm/irq.c
>>> @@ -442,7 +442,7 @@ int route_irq_to_guest(struct domain *d, unsigned i=
nt virq,
>>>       unsigned long flags;
>>>       int retval =3D 0;
>>>  =20
>>> -    if ( virq >=3D vgic_num_irqs(d) )
>>> +    if ( !vgic_is_valid_irq(d, virq) )
>>>       {
>>>           printk(XENLOG_G_ERR
>>>                  "the vIRQ number %u is too high for domain %u (max =3D=
 %u)\n",
>>> @@ -560,7 +560,7 @@ int release_guest_irq(struct domain *d, unsigned in=
t virq)
>>>       int ret;
>>>  =20
>>>       /* Only SPIs are supported */
>>> -    if ( virq < NR_LOCAL_IRQS || virq >=3D vgic_num_irqs(d) )
>>> +    if ( !vgic_is_shared_irq(d, virq) )
>>>           return -EINVAL;
>>>  =20
>>>       desc =3D vgic_get_hw_irq_desc(d, NULL, virq);
>>> diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
>>> index c563ba93af..48fbaf56fb 100644
>>> --- a/xen/arch/arm/vgic.c
>>> +++ b/xen/arch/arm/vgic.c
>>> @@ -24,6 +24,12 @@
>>>   #include <asm/gic.h>
>>>   #include <asm/vgic.h>
>>>  =20
>>> +
>>> +bool vgic_is_valid_irq(struct domain *d, unsigned int virq)
>>=20
>> I have the same comment as for the previous patch. This function
>> completely ignores LPIs presence, while you can't argue that LPIs as
>> valid. Again, function callers are expecting this behavior, so this is
>> fine, but function name should better reflect its behavior.
>>=20
>> [...]
>>=20
>
> Would it be okay to rename these functions as proposed in the previous=20
> patch discussion:
> vgic_is_valid_irq -> vgic_is_valid_line
> vgic_is_shared_irq -> vgic_is_spi?
>
> Or, in the case of vgic, is it not a good idea to use the "line" suffix=20
> because vgic does not have physical interrupt lines? Would it be better=20
> to rename it to vgic_is_valid_non_lpi instead?

I think it is better to follow the pGIC naming convention. While there
is no physical IRQ lines in vGIC, it emulates real GIC anyways.

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 12:41:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 12:41:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090100.1447485 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upR54-0006ox-LG; Fri, 22 Aug 2025 12:41:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090100.1447485; Fri, 22 Aug 2025 12:41: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 1upR54-0006oq-IF; Fri, 22 Aug 2025 12:41:18 +0000
Received: by outflank-mailman (input) for mailman id 1090100;
 Fri, 22 Aug 2025 12:41:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1jNg=3C=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1upR53-0006ok-CO
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 12:41:17 +0000
Received: from AM0PR83CU005.outbound.protection.outlook.com
 (mail-westeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c201::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4b734f5d-7f55-11f0-a32b-13f23c93f187;
 Fri, 22 Aug 2025 14:41:16 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by AS8PR03MB8042.eurprd03.prod.outlook.com (2603:10a6:20b:346::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.15; Fri, 22 Aug
 2025 12:41:14 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Fri, 22 Aug 2025
 12:41:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4b734f5d-7f55-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=cKtURbNZWlv7xaD6PrIZiytozFPcGLX4Bp/y/Ly3aHoFeuFnkwc5tmTt1u5kF2I/jxsclQYg6Rq0Q7c0gi9gSzthkfgdziv+eqTn9zz/FKU7+jqkEnUQ7zeXUz3jMet+rwIYCdRxpXXHnAoEu1yy4nKdeWCqSylKE8jQo+qv6lRaoFtO04gFfz4kpazcXfGznukJaikmz7Wg/dZ7Cu7/F5Zs+W372C/1qoycZb262r9iIubZ9wEX+ypExjbobyKLuN8xiIKbhv6My/WueHSRzMuZzr5YdIsDYzZk/gY6hBZb3C03KJk4yJ3haFc378vKd4uuO6KCm/chtrwDaOEdYg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=RCdyXthG6RAW3y6I88QnzFURi9gk/BfMeaPG1HRcPlE=;
 b=jRZ5BZcnyjB8/Yj9bjSoqxXsxnhT+pDDG1beYd1P5t+/AQUFpNK9sctRf8KLqSAAj9urzWx3yIw6MttIQ5Ir+3VnSf45BgpL2P6SVderDxutFHpKm1S+EnV1UeE/V+m1SRxeJzFtE5L+g51OYNefVWyp4M+yJcxX9thvfJP9i5s+lcjo/beL5IkjVHwHxXhr1nUWRKAYD5U6RYDoDxJbZCnjFRPdQfiCOWHmZbU5IK7EKDaTmjg7Pyji/9Y6G1iRtpb9QN+W0FHHjKx84ukNzhVZTJE1voN42OZ7LM06v6V+/7/DC/bWdt1ROaT5AY+xDxm1CFaaEk9iHTZfiUWwzw==
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=RCdyXthG6RAW3y6I88QnzFURi9gk/BfMeaPG1HRcPlE=;
 b=oxMn5gSsvC4QjYvPcTD9m1ltiA13xyr+qdIBVi3tyiS7Xx0FWlAtG8CEcG5U8nJ1NsBrP+oh1eUhR9K0s3ePWL57OqbXuSwspEZy7muTfNS5cNs/ME3K6S6tpYqbQNF6v2rRT/7ZMcRBLlGdUAdlvgSE7lBnf/wALoSaX95tHJ1psADj2yS6W9QfpBGef+S9L8gwIIYoYARstOJpKGDKI7APCjJjoFuOL+U6gBtq4yHhiAxOxCvlQ7PE3Ued0X1AevoDCYVOEYEtuL4Rxhjvlubf+Q9mlchctwzVmZ90BFhYPw3VM40GEgeoIIpp5LGWQ0X89t3EGDNc7w0x+Zz8fQ==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: Julien Grall <julien@xen.org>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v2 04/10] xen/arm/irq: add handling for IRQs in the eSPI
 range
Thread-Topic: [PATCH v2 04/10] xen/arm/irq: add handling for IRQs in the eSPI
 range
Thread-Index: AQHcB5d7kgaRrTB4eUK2JDUmO9y7H7RtbrKAgAFGNYA=
Date: Fri, 22 Aug 2025 12:41:14 +0000
Message-ID: <4b42f52a-86fb-4cbd-b3f1-ce7662a24c7b@epam.com>
References:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
 <418e7e8082fa8f7b6659ff8cae3beb773803ca47.1754568795.git.leonid_komarianskyi@epam.com>
 <87ms7sekdx.fsf@epam.com> <9922f7f1-7249-424e-9bab-3aee2ce3b813@xen.org>
 <87frdkd31m.fsf@epam.com> <20328499-772c-4b32-815e-7527aa6b2cc7@xen.org>
In-Reply-To: <20328499-772c-4b32-815e-7527aa6b2cc7@xen.org>
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: GV2PR03MB8678:EE_|AS8PR03MB8042:EE_
x-ms-office365-filtering-correlation-id: 577ddc39-08ef-4ac3-8846-08dde1792e67
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?Uk02eFh4ZTdNRkoxanJKVDB2M1VMbzF5bjJUU0plM04randTOWFFZDZRYmox?=
 =?utf-8?B?QncwaUVvYkxtd1hpRVFVZlFKNjBNbEt2enc5V05TT1hCeUo2QVIwTlZXSW92?=
 =?utf-8?B?VER6R1BWMUZlYzhPeGo0WnN4Q1lmYVpURGcxaGZsRm1ic0JtcmpkNG80bWNa?=
 =?utf-8?B?VHRKNWJZcGNXUUZQc1F4eTF6aGIvNjVGazVaSnE5UW9pMjF1QWR0aDFCUVhH?=
 =?utf-8?B?cENyWnFTY0JmZmswbGt5bkh6MUdubXhLWUcvT2NxMVd1dzF5YlQ2a3ZqVWMr?=
 =?utf-8?B?Q2FjZk5vT0JKSG1selJnWUF4ZENDSllLdG5TV0V3UFlIdHJPVmMrMWVmVWRT?=
 =?utf-8?B?MW96eEViMFdCSS9JV0kvUkw4aXN6QmF3YWVmNWsxM1FaU2lZZS9BdEo3R1NB?=
 =?utf-8?B?bXY2emQzZDBsOTRHVWdQY2hpS0FQa01iUWJyQnIzQjdPbWYwZmhHMDdiV3Jn?=
 =?utf-8?B?YnZsblVkRlYwUGl0cEtHcEpDeWVWbFludGRTc1lnRmFnUnc0QU5BTWNsanR0?=
 =?utf-8?B?TUJyUlNNdkFHNW5Hbk5nM3R3eVUvZjNjd1FBZVlBUGwwMFhMaVpuVHFOcHZK?=
 =?utf-8?B?Q2RHYUR5RGFFYWk5T2NJY2RjWkRUdUtXRXlvSlk5OXdJYnFOTXkvbmdjWHNJ?=
 =?utf-8?B?ZzVlZlplL0szQUtpY3JzQUQyVU9USFduekkrMkI5NzAwMkZRQTI1OGxBVnBi?=
 =?utf-8?B?QmJ0Z3J6emZ3YVpLTlNOK3g1MUd4ZjFWc2EzN2o1OUk2VWVUeFZORFhZbzNn?=
 =?utf-8?B?YktGY3YwbEZidjIrOVhpdnVJZXdneFkyNlJGNGFLa2VDS2JocEtLMDVJRzdq?=
 =?utf-8?B?TkQzbjBTSERTc0dUeGtMK3hCUmFHaElSNENrWkoyVzUvR09NOER5MFAzalYr?=
 =?utf-8?B?Q01HUk95QmlaZ2tOZVBDM2NxNkxUUFhNcmc3elNHQ25JYzQ2L0ZicTY0b0M0?=
 =?utf-8?B?Z1g3NnBOenZORnlUTVRCOXZxUE54NTY0U1ZralVieFFJTFdvaEl5K3VYTk14?=
 =?utf-8?B?VTNRL1p6Y2kwelQ3b1NuTkl2dGdJaHZyV0d1VEVFajY3Q0dNaUkrRmRYY25N?=
 =?utf-8?B?WE9nOGUvMHJLcUlrM2haTUFWN0cvNFMydjloeWlFOWcxcUtwZ0xqK0w0WjZj?=
 =?utf-8?B?M0t3OUZWTTh1SEtDL0M4Z3dSN0lQRG5QM2wra2Q1a20xUk9YajVMSHVKTUtp?=
 =?utf-8?B?UXlleWxJV1dRQ0NvSWI2d1FmSEFIaXRnZGdtYitxMUhnamJQKzBXUWNFYy93?=
 =?utf-8?B?dHlGVVZJdWRWTDVjcTlFRWxEMVNZdDR1a04vTTJ6TzVjUmR0cGlmMjRVZWI5?=
 =?utf-8?B?eXdKOG1mMkF5bmk5eUo3bVFtbUZSZ1BTeEN3TStJNWZ6KzdzM1NlVDFJQm4w?=
 =?utf-8?B?QmFBSmwzNnd2eTUxenQvaG4xZmVJTzZ0c3dLdUlKUmNKQmMvNFZNcWtVMU1y?=
 =?utf-8?B?ZC9RTVFla3liSWgzZ3FSMmNUMFVsQVhpSnlpU0tjeFVGOFdEYnZldUNEOXVy?=
 =?utf-8?B?ZnBzcTRqdGFTU3hteXNZNjNwcXovVEVCYlZ2WXorQUd3ZnVpVmN4OG5ERFJx?=
 =?utf-8?B?U1UzQmdCNkN0TllFQ3ZXU3NQczFuN3pZUXJqSjVuUUJOMW4yMzNMRzNuVHZX?=
 =?utf-8?B?cDBmZlpLd3FiK0Y1Y0Q2WHhzZ3BLVkNaWU5SZDVjWW54SW9xRVROaTFqc1d6?=
 =?utf-8?B?U3VYVFZ4ZEpwK3ZXaVY2MnhyWHRnRFNVd0FEN044OWpvMkRUU1FNYWlHYTRn?=
 =?utf-8?B?Qmh5SjdKVTV3UENneUJjTmJXcldqek5WUW80bFdZdG4yZExtNzl4cy9jR1Ey?=
 =?utf-8?B?TmJwZXo2QWFpanN0d3RWSVRzQ0dMVWs0WmRscjFHQWlacW5ZTW9EeUVYN0ZM?=
 =?utf-8?B?TmxWWXRrYnZ2WW8wSW5hYktxaGJZaCtDQU9hZG8ydzFTYXpCYzNaRE9EN002?=
 =?utf-8?B?Tk96NUpDUWxJTzRTMTR2bnQxVEhvNmJlaFp4c1hYNnNLVmlaVm9xeXRnWnpt?=
 =?utf-8?B?QjhFRXZkK1dBPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?b3BnTUJvUlFtdit4dzgrSmdlNDdTTVd5cWNQY3c3cHhDR2luWE01SWQyZHNI?=
 =?utf-8?B?UnlFVG5RNURuSFQxemZTZlh1RFVPNnFHdGtBSGYxVjFSdlZHdEdNNWhCaHNZ?=
 =?utf-8?B?WjFYdWg5cDMyaWtFMHJLQ2dYVUlEaURnM2RiSlRqRldZSlZCTDh3OTRFQlV5?=
 =?utf-8?B?bHFPcDg2RmVLSFlyeDJ1MVExd0x4dEE2WCtwRmpnR0lpbjN6MTlGNzMrMDZa?=
 =?utf-8?B?Z1laOXpRWnpUOVR2Ui9HWnErRzhlSnczUEJTUW1nYlJwRlZDakg3K0I1RTkw?=
 =?utf-8?B?OVlHRFZINkdtelE4UE1wc0VvcUpIb1pDZjJncVlrYk9CK21pYTNDZEthdnZB?=
 =?utf-8?B?b3Fwb2NrNGpkSUFsL2ovOS91NWVpcm5zSWNrczl2dXc4Mk8xbDFiaVQ3bC9R?=
 =?utf-8?B?NEdrUHFabldRWmZrbjUwbk1sNFpCZEExMmFNb2VGMGxzVEhqM2psTzJma0pM?=
 =?utf-8?B?cmVONGcrZE54ejJHdERLeFU2eXRrZysxUmZRNkMyTTc0VFBSTW1XSVNyaEZn?=
 =?utf-8?B?M3BGckhjRDVuQTEySlhuUHYxL2NCVEpWeTM4UXVNZkVvc1FlMjFBTDUvUlE1?=
 =?utf-8?B?cE1POVVuWkEreFhvUVJSMXZEd1FIb05TZEFvbjUxQnZscDNpeTVCdWVlVmUv?=
 =?utf-8?B?R0VENWNMZG5FYXVKRElSUkgzODhHalFZMHdnWGVQeVhCTVFVbnZQQy9MN3Yx?=
 =?utf-8?B?c2hYRDlCN1lCZlRvTWJhWFErN1crV2FNL3Y3MlRkcTM0VVR4emQ5OEZTUE9X?=
 =?utf-8?B?cHFGZ3BHbHhQWTFvZmdEM2l5UkVnQkViWDJwQVhLNU9sZWpQTG16TW5SQTNQ?=
 =?utf-8?B?MUhFZmFwc1hXRmcyMmFjWFJXRGk4ZE51cUZrZ1ZxVXoyR3VPNEcrV3JmV2pD?=
 =?utf-8?B?OGljdFpCWnc4WU5rSGIvSWkwMHJMUDlITW5kMnhZcnV3RCszZWZxSjA1azJL?=
 =?utf-8?B?QVNrZG9iN2Yyb21VeXN3REJnSWhPUVFDNGxPVE5sUmd3eGRYYzF3WUJudGt5?=
 =?utf-8?B?QTJUSnhpQXhDMzZYUGhNMFBaanhKVDhGcnpFV25YMVN1MS9nM2h3dVFaQkR4?=
 =?utf-8?B?UkF3Nm9rRnlTL2wydVZLVUxRMFVEYlg2eVZEaVBqVGlVYzVnSjVUbDk2dTVM?=
 =?utf-8?B?S3pZeUxFMWpMTVF1WllMNFNUSWdySExjcVdObFh4L3BhQ1Mrc0kvcjVKVDdk?=
 =?utf-8?B?MmZDM2ZVNi85SGpwZ0VzbHBOSlM5cm9NMS9XZC9uME9CbURyUXBaM20yYk9r?=
 =?utf-8?B?ak44S3pVbTRRd2JhTFpiald4L0pJTFNCOEVZcDdtQUN0MnpYVFowaTIzbTc1?=
 =?utf-8?B?cTRYQnFEZTRDeEFWOUMvelJwb2llWXdBNUdwSDNMaXNFQTRMV2VlQzgwTEJl?=
 =?utf-8?B?aldnWVRiZ0c2VGVGNnlDVDB0RGhQTG9EL1FLdFE2NUlaaHRydk1RcTB5RStp?=
 =?utf-8?B?RWhLTHdKMVBpQjAvdzRDaTBUc1hxT3pnQWdFalNvaXk3a2UxZ0o3RUZFQjMr?=
 =?utf-8?B?bVBDbnNkUkt6Z3d4bXFWS3BIMlNDWWRsOUtFZjlyOUNTZUdqMVB4ZW5HWXll?=
 =?utf-8?B?UmM1YWh4VVI1N0YwWkgyL1JacVV0a0k2dUlFSitOQWxSaHFKTUhSZnh6S0M4?=
 =?utf-8?B?K1E0dHhXcThycmsyNUJtTHFaaDVzaWRlQXlESTNIY0J4WXJFamtKd050WGl1?=
 =?utf-8?B?b1daMkR1VUpVVVZPbXdRSFFFbXFvM3hod3lnTUh3V1F5TlBIQ1FNVk44Z0Qr?=
 =?utf-8?B?SWxveTFQNjIxODBqbjloeVUvVk1lVldRODZKWlZiMEVNNzZRMk8zdjRVdkNQ?=
 =?utf-8?B?eTE0VmVKK3phNWFMRGZ2NVJjQ1E0NS9XRU4rZEpDanE4OEdCaFV2TkJVT0tV?=
 =?utf-8?B?NTU4SGdLblZOWm5qRm1qdFhXd1AyVFNjUG1RL0MzVkZFWSthQmQ3TTdmNVRk?=
 =?utf-8?B?ZjFUUmlwY2dRbjBzSGZ5cUpkbWRtK29sU1E0Y0RNU1lpbnhhOXBqbHR3V2lQ?=
 =?utf-8?B?dXlpWHpEN1ZzRlhwY3JJQVdzQi90SjZHS2hYYWRRZ0JDRWlvb2pKeldHUHZH?=
 =?utf-8?B?Z3BkbWZ5UmxxYi9IUXpOMGw4OUpVZHc3Qno5VFRRSWYvSEhMSXA4Uy9aZitD?=
 =?utf-8?B?WVBzNEo4RXVzMGNIa3ArZk5GTWllNGJ1blk0M3hpMk9jTnlNVVh3Y3lobEpH?=
 =?utf-8?Q?tsYumAEQi2FuZeMZ1k5qiAQ=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <1707AFDC2E4E1446A93F630F27F2510C@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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 577ddc39-08ef-4ac3-8846-08dde1792e67
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Aug 2025 12:41:14.1959
 (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: C9HwvoGa+WFxDJqzDf0TAtk2u6NHq7ciSUfc4RlWe4lP/GZf+RsT0aW/pCl8y3n/XAAxe60GNM4cUmTfYLmmyjs9Wvh1oDWhHTYqa+TLumo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB8042

SGkgVm9sb2R5bXlyIGFuZCBKdWxpZW4sDQoNClRoYW5rIHlvdSBmb3IgeW91ciByZXZpZXcgY29t
bWVudHMgYW5kIGZvciByYWlzaW5nIGFuIGltcG9ydGFudCANCmRpc2N1c3Npb24gcmVnYXJkaW5n
IG1lbW9yeSB1c2FnZSBhbmQgd3JhcHBlcnMuDQoNCk9uIDIxLjA4LjI1IDIwOjEzLCBKdWxpZW4g
R3JhbGwgd3JvdGU6DQo+IA0KPiANCj4gT24gMjEvMDgvMjAyNSAxNzo1OSwgVm9sb2R5bXlyIEJh
YmNodWsgd3JvdGU6DQo+PiBKdWxpZW4gR3JhbGwgPGp1bGllbkB4ZW4ub3JnPiB3cml0ZXM6DQo+
Pg0KPj4+IEhpLA0KPj4+DQo+Pj4gT24gMjEvMDgvMjAyNSAxNjo1OSwgVm9sb2R5bXlyIEJhYmNo
dWsgd3JvdGU6DQo+Pj4+IExlb25pZCBLb21hcmlhbnNreWkgPExlb25pZF9Lb21hcmlhbnNreWlA
ZXBhbS5jb20+IHdyaXRlczoNCj4+Pj4NCj4+Pj4+IEN1cnJlbnRseSwgWGVuIGRvZXMgbm90IHN1
cHBvcnQgZVNQSSBpbnRlcnJ1cHRzLCBsZWFkaW5nDQo+Pj4+PiB0byBhIGRhdGEgYWJvcnQgd2hl
biBzdWNoIGludGVycnVwdHMgYXJlIGRlZmluZWQgaW4gdGhlIERUUy4NCj4+Pj4+DQo+Pj4+PiBU
aGlzIHBhdGNoIGludHJvZHVjZXMgYSBzZXBhcmF0ZSBhcnJheSB0byBpbml0aWFsaXplIHVwIHRv
DQo+Pj4+PiAxMDI0IGludGVycnVwdCBkZXNjcmlwdG9ycyBpbiB0aGUgZVNQSSByYW5nZSBhbmQg
YWRkcyB0aGUNCj4+Pj4+IG5lY2Vzc2FyeSBkZWZpbmVzIGFuZCBoZWxwZXIgZnVuY3Rpb24uIFRo
ZXNlIGNoYW5nZXMgbGF5IHRoZQ0KPj4+Pj4gZ3JvdW5kd29yayBmb3IgZnV0dXJlIGltcGxlbWVu
dGF0aW9uIG9mIGZ1bGwgZVNQSSBpbnRlcnJ1cHQNCj4+Pj4+IHN1cHBvcnQuIEFzIHRoaXMgR0lD
djMuMSBmZWF0dXJlIGlzIG5vdCByZXF1aXJlZCBieSBhbGwgdmVuZG9ycywNCj4+Pj4+IGFsbCBj
aGFuZ2VzIGFyZSBndWFyZGVkIGJ5IGlmZGVmcywgZGVwZW5kaW5nIG9uIHRoZSBjb3JyZXNwb25k
aW5nDQo+Pj4+PiBLY29uZmlnIG9wdGlvbi4NCj4+Pj4gSSBkb24ndCB0aGluayB0aGF0IGl0IGlz
IGEgZ29vZCBpZGVhIHRvIGhpZGUgdGhpcyBmZWF0dXJlIHVuZGVyDQo+Pj4+IEtjb25maWcNCj4+
Pj4gb3B0aW9uLCBhcyB0aGlzIHdpbGwgaW5jcmVhc2UgbnVtYmVyIG9mIGRpZmZlcmVudCBidWls
ZCB2YXJpYW50cy4NCj4+Pj4gSSBiZWxpZXZlIHRoYXQgcnVudGltZSBjaGVjayBmb3IgR0lDRF9U
WVBFUi5FU1BJIHNob3VsZCBiZQ0KPj4+IMKgwqAgc3VmZmljaWVudCw+IGJ1dCBtYWludGFpbmVy
cyBjYW4gY29ycmVjdCBtZSB0aGVyZS4NCj4+Pg0KPj4+IEkgaGF2ZW4ndCBzZWVuIG1hbnkgYm9h
cmQgd2l0aCBFU1BJIGF2YWlsYWJsZS4gU28gSSB0aGluayBpdCB3b3VsZCBiZQ0KPj4+IGJldHRl
ciBpZiB0aGlzIGlzIHVuZGVyIGEgS2NvbmZpZyBiZWNhdXNlIG5vdCBldmVyeW9uZSBtYXkgd2Fu
dCB0bw0KPj4+IGhhdmUgdGhlIGNvZGUuDQo+Pg0KPj4gUHJvYmFibHksIHdlIGNhbiBleHBlY3Qg
bW9yZSBpbiB0aGUgZnV0dXJlLi4uDQo+IA0KPiBXZWxsIHllcy4gQnV0IEkgd2FzIHVuZGVyIHRo
ZSBpbXByZXNzaW9uIHRoaXMgdGhlIHByZWZlcnJlZCBhcHByb2FjaC4gDQo+IFNlZSB0aGUgZGlz
Y3Vzc2lvbiBhYm91dCBkaXNhYmxpbmcgMzItYml0IHN1cHBvcnQgb24gNjQtYml0Og0KPiANCj4g
MjAyNTA3MjMwNzU4MzUuMzk5MzE4Mi0xLWdyeWdvcmlpX3N0cmFzaGtvQGVwYW0uY29tDQo+IA0K
PiAgwqBBbnl3YXlzLCBhZnRlciByZXZpZXdpbmcNCj4+IGFsbCBwYXRjaGVzIGluIHRoZSBzZXJp
ZXMsIEkgY2FuIHNlZSB0aGF0IGNvZGUgd2lsbCBiZSBsaXR0ZXJlZCB3aXRoDQo+PiAjaWZkZWYg
Q09ORklHX0dJQ1YzX0VTUEksIHdoaWNoLCBwcm9iYWJseSwgbm90IGEgZ29vZCB0aGluZy4NCj4g
DQo+IFRoZSBzb2x1dGlvbiBpcyB0byBwcm92aWRlIHdyYXBwZXJzIHRvIHJlZHVjZSB0aGUgbnVt
YmVyIG9mICNpZmRlZi4gSSANCj4gaGF2ZW4ndCBjaGVja2VkIGFsbCB0aGUgcGxhY2VzLg0KDQpJ
IGFncmVlIHdpdGggeW91LCBpdCdzIGEgZ29vZCBwb2ludCB0byB1c2Ugd3JhcHBlcnMgd2hlcmUg
cG9zc2libGUuIEkgDQp3aWxsIHJldmlzZSBhbGwgcGF0Y2hlcyBpbiB0aGUgc2VyaWVzIGFuZCB0
cnkgdG8gdXNlIHdyYXBwZXJzIHdoZXJlIA0KcG9zc2libGUgdG8gcmVkdWNlICNpZmRlZnMuDQoN
Cj4+DQo+Pj4NCj4+PiBbLi4uXQ0KPj4+DQo+Pj4+PiDCoMKgIHN0cnVjdCBpcnFfZGVzYzsNCj4+
Pj4+IMKgwqAgc3RydWN0IGlycWFjdGlvbjsNCj4+Pj4+IEBAIC01NSw2ICs3MSwxNSBAQCBzdGF0
aWMgaW5saW5lIGJvb2wgaXNfbHBpKHVuc2lnbmVkIGludCBpcnEpDQo+Pj4+PiDCoMKgwqDCoMKg
wqAgcmV0dXJuIGlycSA+PSBMUElfT0ZGU0VUOw0KPj4+Pj4gwqDCoCB9DQo+Pj4+PiDCoMKgICtz
dGF0aWMgaW5saW5lIGJvb2wgaXNfZXNwaSh1bnNpZ25lZCBpbnQgaXJxKQ0KPj4+Pj4gK3sNCj4+
Pj4+ICsjaWZkZWYgQ09ORklHX0dJQ1YzX0VTUEkNCj4+Pj4+ICvCoMKgwqAgcmV0dXJuIChpcnEg
Pj0gRVNQSV9CQVNFX0lOVElEICYmIGlycSA8PSBFU1BJX01BWF9JTlRJRCk7DQo+Pj4+PiArI2Vs
c2UNCj4+Pj4+ICvCoMKgwqAgcmV0dXJuIGZhbHNlOw0KPj4+Pj4gKyNlbmRpZg0KPj4+Pj4gK30N
Cj4+Pj4+ICsNCj4+Pj4+IMKgwqAgI2RlZmluZSBkb21haW5fcGlycV90b19pcnEoZCwgcGlycSkg
KHBpcnEpDQo+Pj4+PiDCoMKgwqDCoCBib29sIGlzX2Fzc2lnbmFibGVfaXJxKHVuc2lnbmVkIGlu
dCBpcnEpOw0KPj4+Pj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9pcnEuYyBiL3hlbi9hcmNo
L2FybS9pcnEuYw0KPj4+Pj4gaW5kZXggNTBlNTdhYWVhNy4uOWJjNzJmYmJjOSAxMDA2NDQNCj4+
Pj4+IC0tLSBhL3hlbi9hcmNoL2FybS9pcnEuYw0KPj4+Pj4gKysrIGIveGVuL2FyY2gvYXJtL2ly
cS5jDQo+Pj4+PiBAQCAtMTksNyArMTksMTEgQEANCj4+Pj4+IMKgwqAgI2luY2x1ZGUgPGFzbS9n
aWMuaD4NCj4+Pj4+IMKgwqAgI2luY2x1ZGUgPGFzbS92Z2ljLmg+DQo+Pj4+PiDCoMKgICsjaWZk
ZWYgQ09ORklHX0dJQ1YzX0VTUEkNCj4+Pj4+ICtjb25zdCB1bnNpZ25lZCBpbnQgbnJfaXJxcyA9
IEVTUElfTUFYX0lOVElEICsgMTsNCj4+Pj4+ICsjZWxzZQ0KPj4+Pj4gwqDCoCBjb25zdCB1bnNp
Z25lZCBpbnQgbnJfaXJxcyA9IE5SX0lSUVM7DQo+Pj4+PiArI2VuZGlmDQo+Pj4+PiDCoMKgwqDC
oCBzdGF0aWMgdW5zaWduZWQgaW50IGxvY2FsX2lycXNfdHlwZVtOUl9MT0NBTF9JUlFTXTsNCj4+
Pj4+IMKgwqAgc3RhdGljIERFRklORV9TUElOTE9DSyhsb2NhbF9pcnFzX3R5cGVfbG9jayk7DQo+
Pj4+PiBAQCAtNDYsNiArNTAsOSBAQCB2b2lkIGlycV9lbmRfbm9uZShzdHJ1Y3QgaXJxX2Rlc2Mg
KmlycSkNCj4+Pj4+IMKgwqAgfQ0KPj4+Pj4gwqDCoMKgwqAgc3RhdGljIGlycV9kZXNjX3QgaXJx
X2Rlc2NbTlJfSVJRUyAtIE5SX0xPQ0FMX0lSUVNdOw0KPj4+Pj4gKyNpZmRlZiBDT05GSUdfR0lD
VjNfRVNQSQ0KPj4+Pj4gK3N0YXRpYyBpcnFfZGVzY190IGVzcGlfZGVzY1tOUl9JUlFTXTsNCj4+
Pg0KPj4+IEJ5IGhvdyBtdWNoIHdpbGwgdGhpcyBpbmNyZWFzZSB0aGUgWGVuIGJpbmFyeT8NCj4+
DQo+PiBJIGFtIHdvbmRlcmluZyB0aGlzIGFsc28uIFRoZSBzdHJ1Y3QgaXMgY2FjaGUgYWxpZ25l
ZCwgc28gaXQgd2lsbCB0YWtlDQo+PiBhdCBsZWFzdCAxMjggYnl0ZXMuIFRoZSB3aG9sZSBhcnJh
eSB3aWxsIHRha2UgYXQgbGVhc3QgMTI4a2IuIE5vdA0KPj4gZ3JlYXQsIG5vdCB0ZXJyaWJsZS4g
QXMgdGhpcyBzaG91bGQgZ28gdG8gLmJzcywgaXQgc2hvdWxkIG5vdCBpbmNyZWFzZQ0KPj4gdGhl
IGJpbmFyeSBpdHNlbGYuDQo+IA0KPiBJIGd1ZXNzICJiaW5hcnkiIHdhcyB0aGUgd3Jvbmcgd29y
ZC4gSSB3YXMgcmVmZXJyaW5nIHRvIHRoZSBzaXplIG9mIHRoZSANCj4gWGVuIGluIG1lbW9yeS4g
T24gbXkgc2V0dXAgWGVuIGlzIDE0NDhrYi4gSGVyZSB5b3Ugd291bGQgaW5jcmVhc2UgfjklIG9m
IA0KPiByZXNpZGVudCBzaXplLiBUaGlzIHNlZW1zIHF1aXRlIHN0ZWVwIGZvciBhIGZlYXR1cmUg
dGhhdCBpcyBub3Qgb2Z0ZW4gdXNlZC4NCj4gDQo+Pg0KPj4gTWF5YmUgaXQgaXMgYmV0dGVyIHRv
IGFsbG9jYXRlIHRoaXMgZHluYW1pY2FsbHk/IEkgZG8gdW5kZXJzdGFuZCB0aGF0IHdlDQo+PiB3
YW50IHRvIGdldCByaWQgb2YgYXMgbWFueSBkeW5hbWljIGFsbG9jcyBhcyBwb3NzaWJsZSwgYnV0
IG1heWJlIGluIHRoaXMNCj4+IGNhc2UgaXQgd2lsbCBiZSBva2F5Lg0KPiANCj4gVGhpcyBpcyB1
cCB0byBMZW9uaWQuIEkgZG9uJ3QgdGhpbmsgdGhpcyBpcyBzdHJpY3RseSBuZWNlc3NhcnkgaW4g
b3JkZXIgDQo+IHRvIGdldCB0aGUgZVNQSSBzdXBwb3J0LiBIb3dldmVyLCB1bnRpbCB0aGlzIGlz
IHNvbHZlZCBDT05GSUdfR0lDVjNfRVBTSSANCj4gKm11c3Qgbm90KiBiZSBvbiBieSBkZWZhdWx0
IGFzIHRoaXMgaXMgZG9uZSBpbiB0aGlzIHBhdGNoLg0KPiANCg0KSSB3aWxsIGNoZWNrIGhvdyBt
dWNoIHRpbWUgYW5kIGVmZm9ydCBhcmUgcmVxdWlyZWQgdG8gc3dpdGNoIHRvIGR5bmFtaWMgDQph
bGxvY2F0aW9uLiBJZiBpdCBkb2VzIG5vdCB0YWtlIG11Y2ggdGltZSBhbmQgZG9lcyBub3QgcmVx
dWlyZSBtYW55IA0KY2hhbmdlcywgSSB3aWxsIHByZXBhcmUgYW4gYWRkaXRpb25hbCBwcmVwYXJh
dGlvbiBwYXRjaCBpbiBWMy4gDQpPdGhlcndpc2UsIEkgd2lsbCBkaXNhYmxlIHRoZSBjb25maWcg
YnkgZGVmYXVsdCBpbiBWMy4NCg0KPj4gQXMgYSBib251cyBwb2ludCwgd2UgY2FuJ3QgbGVhdmUg
dGhpcyBwb2ludGVyDQo+PiBwcmVzZW50IGV2ZW4gaWYgQ09ORklHX0dJQ1YzX0VTUEk9biwgd2hp
Y2ggd2lsbCBzaW1wbGlmeSBzb21lIGNvZGUgaW4NCj4+IGxhdHRlciBwYXRjaGVzLg0KPiANCj4g
RGlkIHlvdSBpbnRlbmQgdG8gc2F5ICJXZSBjYW4gbGVhdmUiIHJhdGhlciB0aGFuICJ3ZSBjYW4n
dCBsZWF2ZSI/DQo+IA0KPiBDaGVlcnMsDQo+IA0KDQpCZXN0IHJlZ2FyZHMsDQpMZW9uaWQNCg==


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 12:59:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 12:59:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090111.1447495 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upRMI-0000Fs-1F; Fri, 22 Aug 2025 12:59:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090111.1447495; Fri, 22 Aug 2025 12: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 1upRMH-0000Fl-UU; Fri, 22 Aug 2025 12:59:05 +0000
Received: by outflank-mailman (input) for mailman id 1090111;
 Fri, 22 Aug 2025 12:59:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1jNg=3C=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1upRMG-0000Ff-PL
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 12:59:04 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c78e22d5-7f57-11f0-a32b-13f23c93f187;
 Fri, 22 Aug 2025 14:59:03 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by DB9PR03MB7568.eurprd03.prod.outlook.com (2603:10a6:10:2c5::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.16; Fri, 22 Aug
 2025 12:59:01 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Fri, 22 Aug 2025
 12:59:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c78e22d5-7f57-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=l/JQUN0w0OXe8zaN/GrZ48gHLFq4M4D708tL7L+shMavLbM8yylN0BdVL+EdyCIaPv8qcbrRFDYju2dSbBm0Tkf6umL2vYUIsYGRmGYMJm27x/bYqSSL03NNWDvGp9q/UwgiqnBO646ecOlYa4raL3h9QE8N3FftC46tY8hSiQxml5uvFekZxkIxjcedqT1sE5fI7spYAtpeDCmoMSsnVxyDon7LczNspqfWJduq35CvDXIvwW3N8enQpJBqoOCOQGzEACmLsD4my5/5VBrYaCsKPHR14EJsh5+8Bu9zrZg++r9g50b09U5xeRSaSfdeymh0opHk7vesyoV14pbLCg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cHedGuKS2bhUMtFBahuGk9BLOG5XpLi9acD4fL166p8=;
 b=oeSSVW1F7lEfRuNZr3VZwheViQ3hyYPN1SA8WkZQngq8XbjBPaQQyxohQykD3fYbRdb48dAyoulbpNSxMozbfacafU0q/GwG3ksqOahoZC1zTQjP2QckKbS9wle3cfjqLuCxYSy3+F93rQNEj5AeSoranGvS/1p5qKdht1Oh7LEYQxFb9/IRH+2h/J+Lt/ZyfOGXitoFjADJjaG5z4+SPkVY9X/Yi0ZECz0TuiAA6/IUdtWJt4L3EZiB0yKrStFh/avp3kmxBDS0aq/qkdz8F3lp0PVYMdZULB5ojq/CGLGwcX+25Hk2L3j6vJp6U5pinsQ6M+nmxQwHnAfr9p80Ng==
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=cHedGuKS2bhUMtFBahuGk9BLOG5XpLi9acD4fL166p8=;
 b=EwhTTWWv9qwrYo09nVjr5PwPrTzFKxWIGjcw66QaL/r0Gd7jsg5EZNpHES2yBVADWsfUFeLscQM+pzbEc3bm8iACHuu/5LqFeFZRe4Rn03lzaMBEqAojmnyFyiKyF72x6Csk0YON9F0/svPTveUACJzNENKoS7fVsBHtHFhgUVdMXUk+s1ssGp7PYNM0maQ2ICFdum9hmwroCLEwMRiuHNYmGGG+56vKpnaoCX0EKAmnuCSa3P+fx5Gh9wUpOE9LjOFRqmSgFc9Hzf/PXWH6BACxEsusstq1GaAO4elAKdU7JZezuhS5lpudIECcdOjNgZrdX2/PALWFVMbDH/vojQ==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v2 04/10] xen/arm/irq: add handling for IRQs in the eSPI
 range
Thread-Topic: [PATCH v2 04/10] xen/arm/irq: add handling for IRQs in the eSPI
 range
Thread-Index: AQHcB5d7kgaRrTB4eUK2JDUmO9y7H7Ruud8A
Date: Fri, 22 Aug 2025 12:59:00 +0000
Message-ID: <839b9c79-1a5d-4e08-ab09-3be95f2f943e@epam.com>
References:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
 <418e7e8082fa8f7b6659ff8cae3beb773803ca47.1754568795.git.leonid_komarianskyi@epam.com>
 <87ms7sekdx.fsf@epam.com>
In-Reply-To: <87ms7sekdx.fsf@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: GV2PR03MB8678:EE_|DB9PR03MB7568:EE_
x-ms-office365-filtering-correlation-id: 0f146568-7eca-4528-9a37-08dde17baa32
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?TjArTzRwL1JoaVp5bUYzYVRUSkdNa0ZVMm9wTHlYanBBMXZGR3pNWCt5U1dv?=
 =?utf-8?B?Tm91T1ovNWp5VlBOQUw2QXU5eFpZcTU3RG1xc2o1dHhYaE9JQTZXUEpOcndB?=
 =?utf-8?B?a281Q2dIVWtXTEJoaDNTUFJ0S3J1V29NNUZqQlVuQi93ODQyRnZ3ckdDSmVD?=
 =?utf-8?B?d0VSWnVNclBCaGhjYTdBY0ovdXpWSGswcEFtU1p4YWI0L2hZUGpHYjBNUEpD?=
 =?utf-8?B?UHByZE1nT3RRVTNURDZkM0VsWDlCcjZvaDFZYkhXQ2pKU3dvRHViL3hDcXYx?=
 =?utf-8?B?cUhFQnU1WlZLSEFJL0Fvd3lWZGVydXQrWHY3SFVYZTVtSUNkbkg4SEM0Ukcw?=
 =?utf-8?B?WWliUWtid2hHb2FWS1hkWlU1b2kra2xKZDhlZk5LMFdwWGM5V2VKOCtFSEZI?=
 =?utf-8?B?d0tzTWZ3OUlBR05vNnlkRmR6NDU5dmFPeU9NZHVkVmdWZ0dkWmw1OHp0NWhx?=
 =?utf-8?B?SFQvcUthd1R4RS9SMUs2R1FncHorTmJBV2oyaVNheXpXY0VPam95eXFSSXly?=
 =?utf-8?B?a1ZTVm9vL0JsUk0yOWpVTStPRklDQVIzOGRTQ2NZUk5LeWFXQ3lOQzdZTUcy?=
 =?utf-8?B?Ti85bzFFYk14RVZCbkgzZmxkTExWaFFQS1pyeThXRERIbEREWnN1NE0xOUdG?=
 =?utf-8?B?ek01UnppQXZvcUF0UStjNVhxZXRjMStQUFFpc2l6clU3NGNFbTR5NWpZMXdT?=
 =?utf-8?B?WDFCRnFueENDTE1HWVF6YUYxZWNVcVdOaWNrVFlpeGZ0SEZya29ZNnNlbkpP?=
 =?utf-8?B?NW9IOC82Nks4a3I2SmduaXR1UGpIWjBoelRVcEZiaGxDOXpnUFdBRm85ampq?=
 =?utf-8?B?NWM3dEU0VmN1Z0RUSDZEdmhwUVd2RXU0bHRDc0huNDFaenBaWnZCRzFlU3lK?=
 =?utf-8?B?V3VBMGpYR1Q3ZVFVMkY1QVc3MnNYMmpXK0x1M0JycmF0dHBjdU9VWUJUK0Fk?=
 =?utf-8?B?NExvaUNvWDR5SXd4L2l1VmMzVEUrczBsc0RJMGk4Uk5XQnAvMzlOVUtDV0ht?=
 =?utf-8?B?OU9Ia2hLRlVzb2pXU1VzNjFIOEU3TTVWQXkyY3k4UXhQVExnN1J2YjFvTTJR?=
 =?utf-8?B?dWVwblQxQU83dkVjYmtSaEpDaVh4VXM0R1RXV2dwa0ZBTnBGR0IxUGM0d2pH?=
 =?utf-8?B?dkR2aERaUEc2NTlJOG1vN1RvU0pJaTU1bEUxNUdQRDZ0aGYwT1NZQXBiK3Fq?=
 =?utf-8?B?bjAvZE5zVC9sWGhLWmEyRVlCSVpwTFlLNzQ1NGRLRXRZTzFvSVM2NnY4Z2pn?=
 =?utf-8?B?Q252bEdZTUsrUWNTNDFDOVYyQm9QaW1lc2YwWFVNOEZkR1VuZzhLMTBtNzAy?=
 =?utf-8?B?aSs1KzE4akVxTjFVcDhvSHl0bWtuVmQyOWZQNHJzZ0N4NWlSYVpEWExCV2s2?=
 =?utf-8?B?TUo0bU5kNXh0MkdBUnJ2THVCSXRTcFFGdjM4OFhpS0RTdHpJUGV0dnA2Yko2?=
 =?utf-8?B?Z1kvTGtYVk1sL3dxZEkvb2NTRHJ0TmFvUklZaXBUVnBWOHdmU0NwOCt3N3F0?=
 =?utf-8?B?Zlp0WnF3VXVNQVplSXVldzdDb0h1a1VrUjl1WVJVVmczTUJBMWI4cUlwSGRn?=
 =?utf-8?B?bVB6bzU1SnVzZWRPYmZFYnpEZUh6L25YV1oyejVPNGlYWWMwZFZMakNtdkYr?=
 =?utf-8?B?N1g5RW1nOXgxb29aenh6SSt3b2JxTFBIa25WVi9SSVFSeFVSRzNRNEVmdjlw?=
 =?utf-8?B?ODRQNDFSeFJ3TGV4czBDaWpCWkRESjZPT0tXSDF6cTJiWFFkdXdlOWRxYldU?=
 =?utf-8?B?UXhGYllQS1hNSERNWDc3aUJDRC9DaGNtMjQwU3FHTzZjODBnTU9PS0R1OXdi?=
 =?utf-8?B?OG9pVkRvc0JZRzFPSWJqVVI5ekVqcDd5QUlySTZaRUhPS0poSnhHR0ZVQUp4?=
 =?utf-8?B?ZGI2T0MrSkVickpYKzVVZVNJejNZVzdzajhRTU44THp6R1U1bDdtSno3VmpZ?=
 =?utf-8?B?a1hFdis0Qm1nMzU3enJtdU1nR1JIbHZpZG9uWm9XcW0vaDZ5ZjZxeDlpc1F1?=
 =?utf-8?B?WXA2TkRNNTVBPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?UzUreFl5YTBYMG5RUFRmYk8wQ0JqSGVyb0JvOHRjTVBMR3lUL0NJTkhYcEdC?=
 =?utf-8?B?bGFVMFE4anpuWWVJcHZGMFNBOHlHNi9Ta1pNZFZ3K1lwMDRyYXNpNHB6eTR3?=
 =?utf-8?B?TytWZmF6VEZzN3J0R2dHL1ZEcFA1UGM5WDVFcnptQnBmZjhUQjlyU294ZjN2?=
 =?utf-8?B?K0QwazFQNEFjcGlCMTdPTG1sNWNhNENFeUpGMFFEamJjcVNrTy96Y2NvMkQv?=
 =?utf-8?B?SFZNMDBjeHIrdWdReUZ1SGpMR1NsUDVrcm5sYVk5OTRWZWZ2Y0MrU2kwWUxC?=
 =?utf-8?B?VGVqc1FNcS9GOHJ3ZFduc2NudGQyME11R0M4bWYxUnkzbXdqZmlaSWcrRTBJ?=
 =?utf-8?B?U0xlYkdNRTRZOHpqdnM0akpMMVFDNyswVzJYUjl3QnRTQTZyWFY5aTJJbnB0?=
 =?utf-8?B?aVRsb3NCdkN6eWtvNFZrdFNyd2VFVUhPODEwQzBpei9BRVc1cHYrMlkzVzlJ?=
 =?utf-8?B?RHFzNkN6WTVLaG9JSHFMQjBoKytsWkRLQ1lmYmFxYXNiR2R0RjZCbDB6S2p3?=
 =?utf-8?B?NTQ1MGk3eWQ4YmVtK0xxb2Nkd016L3pmdFJBZks0eTFaVXQzeHY3cDZMa0xj?=
 =?utf-8?B?VUEwTnhEMzk1NEtwdFBuNzBsVUpSZ1B4bDJaVkxwTzh1WVRIK0V5eUtZa09t?=
 =?utf-8?B?Q3FTejVYUVNENDVOSHlhSEJmaDlhaENEa09jbTNMQWtyRFZKbzRyZVFqZDV0?=
 =?utf-8?B?ek9hUTNHM0NLZDd5ZHdIcSs4bC84VjVDbHNFSjVNMWozVzIxVmRlMUZoSDNh?=
 =?utf-8?B?WnJsMXNGK1MyNDNMRC95K2NYSnA4TFgvN0N3emNNVmRYUy8zeTdYc29VSjg5?=
 =?utf-8?B?MDRvN05hOWEybzJaZ0ZqS0lsNnVqd2M1WnpRQmhNNlBOSS90dFBXRHlqbmZN?=
 =?utf-8?B?MWwzSzdYSDNDSU4zbkRNWUdxdVNuZTdEai9CbDE0TCtrLzNpUThiMmxhQU9X?=
 =?utf-8?B?a1pTbS9IS0lsME5oWjZyb0hENDJvcjNiQW8xNGxXYmJ5NHU5akwrUzNuVDkr?=
 =?utf-8?B?NFNiN3EyQXRXQ2g2UmpHbnBHbS9jN0o4Z0MxckZwY0VXNGxrSHAwSHFjK3pE?=
 =?utf-8?B?WGg3Y2ZKclU3WXZYWVNqU1VDeWtFc3NyOWh0RU1TODhyc1JENVhML1R2aElu?=
 =?utf-8?B?OTEzWVgyWG5vaDlGcnZNTlpXTTVnbi9YWCtTN25KY25VaFBNRUZaeG5sWERH?=
 =?utf-8?B?WE9CZTh1RGdINkhBRGU0REJ0T21LMS9xWHhDZDNxSFBQR1pBaXE5ZWhPVlc2?=
 =?utf-8?B?Z0hNcjRxMWhScDF0WEZxSkpXTlZ3YlMyc09zUUlSME9TM1l5em1PQStWOUlV?=
 =?utf-8?B?TXc2NmdrYXlHNmtLOUlxWmV1L0MxZFBLSDIxczkxZmlNM3R5WFowY0N4dnF2?=
 =?utf-8?B?dTNrMDRZOGtEcVQ1d2pNcnovOUgyajZKWEJWVW1WUlhiTzU3MG5TUDFnQVZG?=
 =?utf-8?B?K3piQTRjOGpXdDF3YjN3cWxxYk8vc1hISTNXSzNpVnFzeFJHWHprQ3pwdnFR?=
 =?utf-8?B?eXJ6RXZUUExHQkhwL1pFcTZyZGJwaFV0VE9BdmVMSXdDRktlS0ViNjhJcjdm?=
 =?utf-8?B?b0dVQ2ZwdkVBcGZIdUhqbkdObjlWOHJ0N2ZYNVVPSlVtMW5RRGxBMGRmZ09V?=
 =?utf-8?B?S3FKeU9ubWtidTJBY0VNRXJ4MUlFS2Z4QnlkKzZpQm1Kb05mditiczFISHRu?=
 =?utf-8?B?cW5DNGdJZEVHSmRPRkc2cFE5ZXJOWkxUNUZEK2J3Vno4RkVWTlhrbjNOcGNt?=
 =?utf-8?B?dHFTY2VHMHIwczBVdkxSVVc1ZWNSYXdCSjE1Z3RUK014QlVkK0xXeVJIczBi?=
 =?utf-8?B?bFV3RHU0Qm12Qnl1WE1RVkJ1M24xRTBKbHdpNmhmQ0RwRFRIbFVFaWZ5RGh5?=
 =?utf-8?B?YjQrZlZmT1VjUWZLOHlZRytnYTVCQnhiK3FNbklOUi9WUFowTFNvTTJJSDgr?=
 =?utf-8?B?eXZJYVpSTDV6K0hpZmd3ZlhTRXFmVHg0RFgzcTFlS21KTDZlamw4eTZIMmNj?=
 =?utf-8?B?aUk4YUgvZVd0NE0rYjVYeEFDMWNwT3J1SDZHZ1FaSUlSM01VYVFudkdpRmxM?=
 =?utf-8?B?S2lwb081VWc4Zmd5UUx1RnhSNHg1dTlHWUFXMUdrWWRNZzk3aVRyTU83eGRu?=
 =?utf-8?B?SWpNZ0p5VEdSSWtsZzIrakluWnpOV2pndmZQaXFBRUJzMFNOTTQ3VndZek1y?=
 =?utf-8?Q?g+eS9BjK0xtz89wyuZh/KME=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <2D218479FAF5D749A292875E18CBAFE0@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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0f146568-7eca-4528-9a37-08dde17baa32
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Aug 2025 12:59:00.8768
 (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: aQe7iCyPkjjQuy3gpP1tI184nZ0HnoSfwCbQuJHfAVbJoFJfhKcRKSFojdxpGaEkNDntFFPzKmX0P/fut5h5a/3gW9cXVIcA7I3Yk6X1qm0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB7568

SGkgVm9sb2R5bXlyLA0KDQpUaGFuayB5b3UgZm9yIHlvdXIgcmV2aWV3Lg0KDQpPbiAyMS4wOC4y
NSAxODo1OSwgVm9sb2R5bXlyIEJhYmNodWsgd3JvdGU6DQo+IExlb25pZCBLb21hcmlhbnNreWkg
PExlb25pZF9Lb21hcmlhbnNreWlAZXBhbS5jb20+IHdyaXRlczoNCj4gDQo+PiBDdXJyZW50bHks
IFhlbiBkb2VzIG5vdCBzdXBwb3J0IGVTUEkgaW50ZXJydXB0cywgbGVhZGluZw0KPj4gdG8gYSBk
YXRhIGFib3J0IHdoZW4gc3VjaCBpbnRlcnJ1cHRzIGFyZSBkZWZpbmVkIGluIHRoZSBEVFMuDQo+
Pg0KPj4gVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgc2VwYXJhdGUgYXJyYXkgdG8gaW5pdGlhbGl6
ZSB1cCB0bw0KPj4gMTAyNCBpbnRlcnJ1cHQgZGVzY3JpcHRvcnMgaW4gdGhlIGVTUEkgcmFuZ2Ug
YW5kIGFkZHMgdGhlDQo+PiBuZWNlc3NhcnkgZGVmaW5lcyBhbmQgaGVscGVyIGZ1bmN0aW9uLiBU
aGVzZSBjaGFuZ2VzIGxheSB0aGUNCj4+IGdyb3VuZHdvcmsgZm9yIGZ1dHVyZSBpbXBsZW1lbnRh
dGlvbiBvZiBmdWxsIGVTUEkgaW50ZXJydXB0DQo+PiBzdXBwb3J0LiBBcyB0aGlzIEdJQ3YzLjEg
ZmVhdHVyZSBpcyBub3QgcmVxdWlyZWQgYnkgYWxsIHZlbmRvcnMsDQo+PiBhbGwgY2hhbmdlcyBh
cmUgZ3VhcmRlZCBieSBpZmRlZnMsIGRlcGVuZGluZyBvbiB0aGUgY29ycmVzcG9uZGluZw0KPj4g
S2NvbmZpZyBvcHRpb24uDQo+IA0KPiBJIGRvbid0IHRoaW5rIHRoYXQgaXQgaXMgYSBnb29kIGlk
ZWEgdG8gaGlkZSB0aGlzIGZlYXR1cmUgdW5kZXIgS2NvbmZpZw0KPiBvcHRpb24sIGFzIHRoaXMg
d2lsbCBpbmNyZWFzZSBudW1iZXIgb2YgZGlmZmVyZW50IGJ1aWxkIHZhcmlhbnRzLg0KPiBJIGJl
bGlldmUgdGhhdCBydW50aW1lIGNoZWNrIGZvciBHSUNEX1RZUEVSLkVTUEkgc2hvdWxkIGJlIHN1
ZmZpY2llbnQsDQo+IGJ1dCBtYWludGFpbmVycyBjYW4gY29ycmVjdCBtZSB0aGVyZS4NCj4gDQo+
Pg0KPj4gU2lnbmVkLW9mZi1ieTogTGVvbmlkIEtvbWFyaWFuc2t5aSA8bGVvbmlkX2tvbWFyaWFu
c2t5aUBlcGFtLmNvbT4NCj4+DQo+PiAtLS0NCj4+IENoYW5nZXMgaW4gVjI6DQo+PiAtIHVzZSAo
RVNQSV9NQVhfSU5USUQgKyAxKSBpbnN0ZWFkIG9mIChFU1BJX0JBU0VfSU5USUQgKyBOUl9JUlFT
KQ0KPj4gLSByZW1vdmUgdW5uZWNlc3NhcnkgY29tbWVudCBmb3IgbnJfaXJxcyBpbml0aWFsaXph
dGlvbg0KPj4gLS0tDQo+PiAgIHhlbi9hcmNoL2FybS9LY29uZmlnICAgICAgICAgICB8ICA5ICsr
KysrKysrKw0KPj4gICB4ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vaXJxLmggfCAyNSArKysrKysr
KysrKysrKysrKysrKysrKysrDQo+PiAgIHhlbi9hcmNoL2FybS9pcnEuYyAgICAgICAgICAgICB8
IDI2ICsrKysrKysrKysrKysrKysrKysrKysrKysrDQo+PiAgIDMgZmlsZXMgY2hhbmdlZCwgNjAg
aW5zZXJ0aW9ucygrKQ0KPj4NCj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vS2NvbmZpZyBi
L3hlbi9hcmNoL2FybS9LY29uZmlnDQo+PiBpbmRleCAxN2RmMTQ3YjI1Li4wODA3M2VjZTFmIDEw
MDY0NA0KPj4gLS0tIGEveGVuL2FyY2gvYXJtL0tjb25maWcNCj4+ICsrKyBiL3hlbi9hcmNoL2Fy
bS9LY29uZmlnDQo+PiBAQCAtMTM1LDYgKzEzNSwxNSBAQCBjb25maWcgR0lDVjMNCj4+ICAgCSAg
RHJpdmVyIGZvciB0aGUgQVJNIEdlbmVyaWMgSW50ZXJydXB0IENvbnRyb2xsZXIgdjMuDQo+PiAg
IAkgIElmIHVuc3VyZSwgdXNlIHRoZSBkZWZhdWx0IHNldHRpbmcuDQo+PiAgIA0KPj4gK2NvbmZp
ZyBHSUNWM19FU1BJDQo+PiArCWJvb2wgIkV4dGVuZGVkIFNQSSByYW5nZSBzdXBwb3J0Ig0KPj4g
KwlkZXBlbmRzIG9uIEdJQ1YzICYmICFORVdfVkdJQw0KPj4gKwlkZWZhdWx0IHkNCj4+ICsJaGVs
cA0KPj4gKwkgIEFsbG93IFhlbiBhbmQgZG9tYWlucyB0byB1c2UgaW50ZXJydXB0IG51bWJlcnMg
ZnJvbSB0aGUgZXh0ZW5kZWQgU1BJDQo+PiArCSAgcmFuZ2UsIGZyb20gNDA5NiB0byA1MTE5LiBU
aGlzIGZlYXR1cmUgaXMgaW50cm9kdWNlZCBpbiBHSUN2My4xDQo+PiArCSAgYXJjaGl0ZWN0dXJl
Lg0KPj4gKw0KPj4gICBjb25maWcgSEFTX0lUUw0KPj4gICAgICAgICAgIGJvb2wgIkdJQ3YzIElU
UyBNU0kgY29udHJvbGxlciBzdXBwb3J0IChVTlNVUFBPUlRFRCkiIGlmIFVOU1VQUE9SVEVEDQo+
PiAgICAgICAgICAgZGVwZW5kcyBvbiBHSUNWMyAmJiAhTkVXX1ZHSUMgJiYgIUFSTV8zMg0KPj4g
ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9pcnEuaCBiL3hlbi9hcmNoL2Fy
bS9pbmNsdWRlL2FzbS9pcnEuaA0KPj4gaW5kZXggNWJjNjQ3NWViNC4uYWNlYmMzZDQyZiAxMDA2
NDQNCj4+IC0tLSBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9pcnEuaA0KPj4gKysrIGIveGVu
L2FyY2gvYXJtL2luY2x1ZGUvYXNtL2lycS5oDQo+PiBAQCAtMzIsNiArMzIsMTQgQEAgc3RydWN0
IGFyY2hfaXJxX2Rlc2Mgew0KPj4gICAjZGVmaW5lIFNQSV9NQVhfSU5USUQgICAxMDE5DQo+PiAg
ICNkZWZpbmUgTFBJX09GRlNFVCAgICAgIDgxOTINCj4+ICAgDQo+PiArI2lmZGVmIENPTkZJR19H
SUNWM19FU1BJDQo+PiArI2RlZmluZSBFU1BJX0JBU0VfSU5USUQgNDA5Ng0KPj4gKyNkZWZpbmUg
RVNQSV9NQVhfSU5USUQgIDUxMTkNCj4+ICsNCj4+ICsjZGVmaW5lIEVTUElfSU5USUQySURYKGlu
dGlkKSAoKGludGlkKSAtIEVTUElfQkFTRV9JTlRJRCkNCj4+ICsjZGVmaW5lIEVTUElfSURYMklO
VElEKGlkeCkgICAoKGlkeCkgKyBFU1BJX0JBU0VfSU5USUQpDQo+PiArI2VuZGlmDQo+PiArDQo+
PiAgIC8qIExQSXMgYXJlIGFsd2F5cyBudW1iZXJlZCBzdGFydGluZyBhdCA4MTkyLCBzbyAwIGlz
IGEgZ29vZCBpbnZhbGlkIGNhc2UuICovDQo+PiAgICNkZWZpbmUgSU5WQUxJRF9MUEkgICAgIDAN
Cj4+ICAgDQo+PiBAQCAtMzksNyArNDcsMTUgQEAgc3RydWN0IGFyY2hfaXJxX2Rlc2Mgew0KPj4g
ICAjZGVmaW5lIElOVkFMSURfSVJRICAgICAxMDIzDQo+PiAgIA0KPj4gICBleHRlcm4gY29uc3Qg
dW5zaWduZWQgaW50IG5yX2lycXM7DQo+PiArI2lmZGVmIENPTkZJR19HSUNWM19FU1BJDQo+PiAr
LyoNCj4+ICsgKiBUaGlzIHdpbGwgYWxzbyBjb3ZlciB0aGUgZVNQSSByYW5nZSwgYXMgc29tZSBj
cml0aWNhbCBkZXZpY2VzDQo+PiArICogZm9yIGJvb3RpbmcgWGVuIChlLmcuLCBzZXJpYWwpIG1h
eSB1c2UgdGhpcyB0eXBlIG9mIGludGVycnVwdHMuDQo+PiArICovDQo+PiArI2RlZmluZSBucl9z
dGF0aWNfaXJxcyAoRVNQSV9NQVhfSU5USUQgKyAxKQ0KPj4gKyNlbHNlDQo+PiAgICNkZWZpbmUg
bnJfc3RhdGljX2lycXMgTlJfSVJRUw0KPj4gKyNlbmRpZg0KPiANCj4gRG9uJ3QgaW50cm9kdWNl
IGRlZmluZXMgdGhhdCBsb29rIGxpa2UgdmFyaWFibGVzLiBJIGFtIHN1cmUgdGhhdCBNSVNSQQ0K
PiB0ZWFtIHdpbGwgYmUgdW5oYXBweSBhYm91dCB0aGF0LiBCdXQgd2hhdCB5b3UgY2FuIHJlYWxs
eSBkbyBpcyB0bw0KPiBpbnRyb2R1Y2UgdmFyaWFibGUgbnJfc3RhdGljX2lycXMsIHdoaWNoIHZh
bHVlIHdpbGwgZGVwZW5kIG9uDQo+IEdJQ0RfVFlQRVIuRVNQSSBhbmQgR0lDRF9UWVBFUi5FU1BJ
X3JhbmdlDQo+IA0KDQpUaGlzIGlzIGEgZ2VuZXJpYyBkZWZpbmUsIHdoaWNoIGlzIHByZXNlbnQg
aW4gYWxsIGFyY2gtc3BlY2lmaWMgaXJxIA0KaGVhZGVycyAoeDg2LCBQUEMsIFJJU0MtViwgQVJN
KS4gSSB0aGluayBpdCBpcyBub3QgYSBnb29kIGlkZWEgdG8gbWFrZSANCnRoaXMgYSBjb25zdCB2
YXJpYWJsZSBvbmx5IHdoZW4gQ09ORklHX0dJQ1YzX0VTUEkgaXMgZW5hYmxlZCwgd2hpbGUgaW4g
DQpvdGhlciBwbGFjZXMgaXQgaXMgYSBkZWZpbmUuIE1vcmVvdmVyLCBJIGNsYXJpZmllZCB3aXRo
IG9uZSBvZiBvdXIgDQp0ZWFtbWF0ZXMsIHdobyBpcyBlbmdhZ2VkIGluIE1JU1JBIGZpeGVzIGZv
ciBYZW4sIGFuZCBoZSBjb25maXJtZWQgdGhhdCANCnRoZXJlIGlzIG5vIHZpb2xhdGlvbiBvZiB0
aGUgTUlTUkEgcnVsZSBoZXJlLiBUbyBzdW1tYXJpemUgYWxsIG9mIHRoYXQsIA0Kd291bGQgaXQg
YmUgb2theSB0byBsZWF2ZSB0aGlzIHBsYWNlIHVuY2hhbmdlZD8NCg0KPj4gICANCj4+ICAgc3Ry
dWN0IGlycV9kZXNjOw0KPj4gICBzdHJ1Y3QgaXJxYWN0aW9uOw0KPj4gQEAgLTU1LDYgKzcxLDE1
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc19scGkodW5zaWduZWQgaW50IGlycSkNCj4+ICAgICAg
IHJldHVybiBpcnEgPj0gTFBJX09GRlNFVDsNCj4+ICAgfQ0KPj4gICANCj4+ICtzdGF0aWMgaW5s
aW5lIGJvb2wgaXNfZXNwaSh1bnNpZ25lZCBpbnQgaXJxKQ0KPj4gK3sNCj4+ICsjaWZkZWYgQ09O
RklHX0dJQ1YzX0VTUEkNCj4+ICsgICAgcmV0dXJuIChpcnEgPj0gRVNQSV9CQVNFX0lOVElEICYm
IGlycSA8PSBFU1BJX01BWF9JTlRJRCk7DQo+PiArI2Vsc2UNCj4+ICsgICAgcmV0dXJuIGZhbHNl
Ow0KPj4gKyNlbmRpZg0KPj4gK30NCj4+ICsNCj4+ICAgI2RlZmluZSBkb21haW5fcGlycV90b19p
cnEoZCwgcGlycSkgKHBpcnEpDQo+PiAgIA0KPj4gICBib29sIGlzX2Fzc2lnbmFibGVfaXJxKHVu
c2lnbmVkIGludCBpcnEpOw0KPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9pcnEuYyBiL3hl
bi9hcmNoL2FybS9pcnEuYw0KPj4gaW5kZXggNTBlNTdhYWVhNy4uOWJjNzJmYmJjOSAxMDA2NDQN
Cj4+IC0tLSBhL3hlbi9hcmNoL2FybS9pcnEuYw0KPj4gKysrIGIveGVuL2FyY2gvYXJtL2lycS5j
DQo+PiBAQCAtMTksNyArMTksMTEgQEANCj4+ICAgI2luY2x1ZGUgPGFzbS9naWMuaD4NCj4+ICAg
I2luY2x1ZGUgPGFzbS92Z2ljLmg+DQo+PiAgIA0KPj4gKyNpZmRlZiBDT05GSUdfR0lDVjNfRVNQ
SQ0KPj4gK2NvbnN0IHVuc2lnbmVkIGludCBucl9pcnFzID0gRVNQSV9NQVhfSU5USUQgKyAxOw0K
Pj4gKyNlbHNlDQo+PiAgIGNvbnN0IHVuc2lnbmVkIGludCBucl9pcnFzID0gTlJfSVJRUzsNCj4+
ICsjZW5kaWYNCj4+ICAgDQo+PiAgIHN0YXRpYyB1bnNpZ25lZCBpbnQgbG9jYWxfaXJxc190eXBl
W05SX0xPQ0FMX0lSUVNdOw0KPj4gICBzdGF0aWMgREVGSU5FX1NQSU5MT0NLKGxvY2FsX2lycXNf
dHlwZV9sb2NrKTsNCj4+IEBAIC00Niw2ICs1MCw5IEBAIHZvaWQgaXJxX2VuZF9ub25lKHN0cnVj
dCBpcnFfZGVzYyAqaXJxKQ0KPj4gICB9DQo+PiAgIA0KPj4gICBzdGF0aWMgaXJxX2Rlc2NfdCBp
cnFfZGVzY1tOUl9JUlFTIC0gTlJfTE9DQUxfSVJRU107DQo+PiArI2lmZGVmIENPTkZJR19HSUNW
M19FU1BJDQo+PiArc3RhdGljIGlycV9kZXNjX3QgZXNwaV9kZXNjW05SX0lSUVNdOw0KPiANCj4g
VGhpcyBpcyByZWFsbHkgY29uZnVzaW5nLiBTaG91bGQgaXQgYmUgc29tZXRoaW5nIGxpa2UgZXNw
aV9kZXNjW05SX0VTUElfSVJRU10/DQo+IA0KDQpTdXJlLCB0aGF0IHdvdWxkIGJlIGJldHRlci4g
U28sIEkgd2lsbCBhZGQgdGhlIE5SX0VTUElfSVJRUyBkZWZpbmUgaW4gDQpWMy4gT2YgY291cnNl
LCBpZiBJIGFtIG5vdCBhYmxlIHRvIG1ha2UgYSBkeW5hbWljIGFsbG9jYXRpb24sIHdoaWNoIGlz
IA0KYmVpbmcgZGlzY3Vzc2VkIGluIHRoZSBzdWItdGhyZWFkIGZvciB0aGlzIHBhdGNoLiA6KQ0K
DQo+PiArI2VuZGlmDQo+IA0KPj4gICBzdGF0aWMgREVGSU5FX1BFUl9DUFUoaXJxX2Rlc2NfdFtO
Ul9MT0NBTF9JUlFTXSwgbG9jYWxfaXJxX2Rlc2MpOw0KPj4gICANCj4+ICAgc3RydWN0IGlycV9k
ZXNjICpfX2lycV90b19kZXNjKHVuc2lnbmVkIGludCBpcnEpDQo+PiBAQCAtNTMsNiArNjAsMTEg
QEAgc3RydWN0IGlycV9kZXNjICpfX2lycV90b19kZXNjKHVuc2lnbmVkIGludCBpcnEpDQo+PiAg
ICAgICBpZiAoIGlycSA8IE5SX0xPQ0FMX0lSUVMgKQ0KPj4gICAgICAgICAgIHJldHVybiAmdGhp
c19jcHUobG9jYWxfaXJxX2Rlc2MpW2lycV07DQo+PiAgIA0KPj4gKyNpZmRlZiBDT05GSUdfR0lD
VjNfRVNQSQ0KPj4gKyAgICBpZiAoIGlzX2VzcGkoaXJxKSApDQo+PiArICAgICAgICByZXR1cm4g
JmVzcGlfZGVzY1tFU1BJX0lOVElEMklEWChpcnEpXTsNCj4+ICsjZW5kaWYNCj4+ICsNCj4+ICAg
ICAgIHJldHVybiAmaXJxX2Rlc2NbaXJxLU5SX0xPQ0FMX0lSUVNdOw0KPj4gICB9DQo+PiAgIA0K
Pj4gQEAgLTc5LDYgKzkxLDIwIEBAIHN0YXRpYyBpbnQgX19pbml0IGluaXRfaXJxX2RhdGEodm9p
ZCkNCj4+ICAgICAgICAgICBkZXNjLT5hY3Rpb24gID0gTlVMTDsNCj4+ICAgICAgIH0NCj4+ICAg
DQo+PiArI2lmZGVmIENPTkZJR19HSUNWM19FU1BJDQo+PiArICAgIGZvciAoIGlycSA9IEVTUElf
QkFTRV9JTlRJRDsgaXJxIDw9IEVTUElfTUFYX0lOVElEOyBpcnErKyApDQo+PiArICAgIHsNCj4+
ICsgICAgICAgIHN0cnVjdCBpcnFfZGVzYyAqZGVzYyA9IGlycV90b19kZXNjKGlycSk7DQo+PiAr
ICAgICAgICBpbnQgcmMgPSBpbml0X29uZV9pcnFfZGVzYyhkZXNjKTsNCj4+ICsNCj4+ICsgICAg
ICAgIGlmICggcmMgKQ0KPj4gKyAgICAgICAgICAgIHJldHVybiByYzsNCj4+ICsNCj4+ICsgICAg
ICAgIGRlc2MtPmlycSA9IGlycTsNCj4+ICsgICAgICAgIGRlc2MtPmFjdGlvbiAgPSBOVUxMOw0K
Pj4gKyAgICB9DQo+PiArI2VuZGlmDQo+PiArDQo+PiAgICAgICByZXR1cm4gMDsNCj4+ICAgfQ0K
PiANCg0KQmVzdCByZWdhcmRzLA0KTGVvbmlkDQo=


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 13:14:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 13:14:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090139.1447509 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upRbI-0003Eu-EM; Fri, 22 Aug 2025 13:14:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090139.1447509; Fri, 22 Aug 2025 13:14: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 1upRbI-0003Em-B7; Fri, 22 Aug 2025 13:14:36 +0000
Received: by outflank-mailman (input) for mailman id 1090139;
 Fri, 22 Aug 2025 13:14:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kk10=3C=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1upRbG-0003Ef-IE
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 13:14:34 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ee672d05-7f59-11f0-b898-0df219b8e170;
 Fri, 22 Aug 2025 15:14:28 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by AS8PR03MB7477.eurprd03.prod.outlook.com (2603:10a6:20b:2b7::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.13; Fri, 22 Aug
 2025 13:14:25 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9052.013; Fri, 22 Aug 2025
 13:14: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>
X-Inumbo-ID: ee672d05-7f59-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BI0LFQuX/1WrpIf1NP8y9I/hSbDE7QKk6oucDS9Z7Tx9E4LZtx+pKng9HIZna57oY46yXDOX73KIyPn0D48juXJ4zcV08QoO6L7Lg2Am3hL867yO7PRmEyi97HaD2URZfK6vYkfoEy8OeeMg9M0YdvYJKMs9k4bQ98Fib/YgTmKgz5ZRIi31zpfZsOkfqQ3ThfrhJ+qUJrdN8i4cP0TXL0lGewPecgo2/p/nhqiXu0UuPuCTwMDCudTx0IO5K2g9RsB2dXBkU2Z7Ritn8M40qHHobTLr+LTIjTuA7cjyS9CR6yn8mEzDA1DAuoWxlPtzBBNUAa9r4Ov+ukkSCxyhgw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=a/KZF6fd8DRc90/vc1J4ox92l7UdFjA3RVd/50nTEe4=;
 b=vrR7bbsBkQpSwPhpuHUTwVq3xaRVyoBifSvCEI++tBSHlRDUXRGiF/T6H7BU9G6olXd5Bzx7VxKKB1IEyYDyun0N0istUZD+zcHRJo7NNgBpQnoTGwQY0ALalPcCDzIckm9r/GZgsPy3ZlayAgv2FEarqIUYqE0A5CLXc8IE+5RGNgbUWQ4zFya9aAvnsynLcaBdgSqB/PL4+ZUNDmgmvR3Oq2WlYqQuaO+Q1soP8FBAVVFhPRUgL9xqkHHRjrKeNNSy2GGi2w0D3SF5LDxqIy3e4hd8/BFrLdnP66ZDcdf2ZMGA2J0o7jBL3uNpf0YAaa2W8jGFuum1gQHmIkTXKQ==
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=a/KZF6fd8DRc90/vc1J4ox92l7UdFjA3RVd/50nTEe4=;
 b=TIp3eeNFQSmcdVyvjYNj3pOIMNucTbSmghPqhw6vQwXtUa4bIdVxKq6N7Zh0nvWPvwIk5OkW1ZXz4lavNSWGe57X0O0gGMPJX7vIsh+m0tZoF9U43NWK8WjAHmKfIwep6nASZLTHxhB5nUriKbvj5BZV/OrSFDuNs/ZMBJSwfIgr2mlsFTcVQYC7A36l7uUdDtDg7wlOJSRDN6rgPyKJ3nqz0Eizh8bQ5cp7FGgH/4TPArCb53nvJLYcdZEoWrSiEDbFRczc7fkgHdOsk3apLa/kS5Yx1SjngmylU/qJOJKY/7EDVVAh8kyki6T1YO7eFhz+uXYND4fszM69xtTawg==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Jan Beulich <jbeulich@suse.com>,
	=?utf-8?B?TWFyZWsgTWFyY3p5a293c2tpLUfDs3JlY2tp?=
	<marmarek@invisiblethingslab.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, "Daniel
 P. Smith" <dpsmith@apertussolutions.com>
Subject: Re: [PATCH v3] common/efi: fix Rule 2.1 violation in read_file()
Thread-Topic: [PATCH v3] common/efi: fix Rule 2.1 violation in read_file()
Thread-Index: AQHcEqNkBxL+JigLCU+o9uoHNz/rIbRtKXaAgAAAfQCAAX4ggA==
Date: Fri, 22 Aug 2025 13:14:24 +0000
Message-ID: <47a787e0-a4fe-42f5-b7ec-7751383fe2b8@epam.com>
References:
 <4a1a4a3406d227348afa1ad2ce90dc5264fdb44a.1755783750.git.dmytro_prokopchuk1@epam.com>
 <aKcsObV9UssO8ckZ@mail-itl> <cf9f121b-347b-4406-9b93-63375c3bdab7@suse.com>
In-Reply-To: <cf9f121b-347b-4406-9b93-63375c3bdab7@suse.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV2PR03MB9572:EE_|AS8PR03MB7477:EE_
x-ms-office365-filtering-correlation-id: 7aa8fb79-8e74-4a7e-c5f9-08dde17dd0db
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|42112799006|366016|376014|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?T1NEZFdqZFpwcUhPeEMzd21iZGRoR3JRdXU1U3ZWUW4xOHpGSmJXZ1ZWd3lY?=
 =?utf-8?B?Vk83ak1lc3FvbHFqNWRUUUFKTS91bktJdjRWTGVPVC9XdnBTeG8xTitGTEJ5?=
 =?utf-8?B?TVI1WlQ0emxXaVVwanVDYWQ5NGdGT08wL3lqelE1VWwyV09FZnkrYkFNV21G?=
 =?utf-8?B?d0dreHlKMFIxUWdncHZZYlRsS2NWRTJJbk1qSHBnc2tkSnBCdzJxQVZBaDEw?=
 =?utf-8?B?TjJZUExlK0Nma1VocnlsTUYyZHVBSXVhSWpPSGlvTnF1R0dVK2lxbzI0bDkw?=
 =?utf-8?B?REE2R1A1YjNFaDA5OGhQTDlDbWZ3N3lHN0NhazJ4TlZkVkJDbERvSlZQWm9x?=
 =?utf-8?B?OWtrb3dYRkV5ZFR5Y2RoU3pnZEdnLzN0ckJpVHY5bkI5ZUVDN0hSTkZVSlJY?=
 =?utf-8?B?MFNhNElLbEliVmN6OEFMeFhwOE5QMkdJVTZBMEJTUzRQTmpLbUFYZGFPQTlW?=
 =?utf-8?B?QXFqU255RWZsQTlDelhwSGhpYjBZUzgrZWJpK3BaVE95UGsyWmZCTDAxdWE4?=
 =?utf-8?B?QW9LL2xYTEhmS1U2WEFRK2JnS1ZtWWhtOHpBQW9uUE9wVDQwOHJmejFwNDRq?=
 =?utf-8?B?RWN5bWhrTytYaEt1bHVYaWZhV1JOZXhuc2oyUmFLeTQ1M2Z0U0tBVTVGNFcz?=
 =?utf-8?B?UzVuenN3Y1pqMVk3UTJFcWVob2YwaDdjQUNrT0gxSVBZTlFtVEorNlJhOW5v?=
 =?utf-8?B?U09OeWFuczlCbVJHRDlKT1pneGZSdFArOHYvRmRGa3R0UTFyM1RDdGFwSDF3?=
 =?utf-8?B?V3NwWm9OaVN6eFk4ckVkY1Q4blBTdWp0anpweS80NEN4UkNpbXd1M2orc0Zz?=
 =?utf-8?B?c2ZXZjFaeW5ZVkRlTytzMTVGSWZNQXRYRWxKcS9FT3lFczNJVUNZNTRRMVZz?=
 =?utf-8?B?TU40TkxxaS9wTEsrcFNWZDRtNVRLSlBzZTcyTHhKOXdqRTd5Mm9zOWNidG8v?=
 =?utf-8?B?UE9qdmV2V2Q2d3ZKTitybHVUUm1aRmVTZ3V0blhSWEpJOFF2S3pIV1FvUnhM?=
 =?utf-8?B?algwTGsvOE0rZ0twNHhVNDE0dDRhcjBVdFYraW1vZXdnTndVU0dOUmM2SkZl?=
 =?utf-8?B?MnFzRWNrdUFrN283RkFTRXI5K2tHWWNKMkliUFBUNlFZVk4zTDVhR1ROaXhk?=
 =?utf-8?B?UHR3elliV3VrODJPSzFBSitBaWJIdFFCWldXOERESW9xS215V012SUU3aThs?=
 =?utf-8?B?VHNHYWF3MnlOdHd6dkpUT0FCS1FBbk9icDhTRDhNSTBibVM3N1V0bFhIUHpj?=
 =?utf-8?B?b1A1WEdkaWczKzA3STJFVkh1L0xkK29wcHlJSlZIYkZCbm03MUZuOS90UUhv?=
 =?utf-8?B?UjFWUUN5NGlCN1FMQjF0R01zR24wNFJtMTE2QktBSWhnZlBUOUVpMzE0M2VG?=
 =?utf-8?B?V09Ub3VBaDZvT2RVUVFHTGNjcUcxeVAyVE5pK0dwTXBOaTluLytQNkd6anl0?=
 =?utf-8?B?ZmlsaTJUTmRRdHJoejZMc0czcEhCamRiMGhzSkJlRFVBNE55OG9hSUVZQTA2?=
 =?utf-8?B?dU96b3VKMnJncjR5bjk5S0VCQVVnVmNZdENTd2tyd2YvRExBcGhuT1JFRlJm?=
 =?utf-8?B?dUVNSDZXY3VBZmFqSE9vcythSk1vTTJRMFhORS9ENzFYdnRIMVBQUG4vUXQ1?=
 =?utf-8?B?a2E2TXRQK1I1R2hsVjhBYnk1eXVJOERNSmZmK29OSHJndTJXcW4vWkhXTFFp?=
 =?utf-8?B?dnBsSmxKSG9RRVVqYXk4ZWkvUDR0V08yQ1VnYnNvSEdHYW5lRGdPcEdZVkZH?=
 =?utf-8?B?OVYyRVJUcEVZNCtBYzI0M01jMVd6cCtNUmZTNzhCNGdFQ1dsaGl4VXVkWVNG?=
 =?utf-8?B?OXFLSkdEcnN3TklBNFZ1bElwcENQRmZqYTV6Q0RZeUpWd21UTHBjcGpvOTcw?=
 =?utf-8?B?Q1pSN3g4ZXBYcXM2akRpaXI4Z09yVlBuN3hGV3BKbmc1RnZjNGNCeFV6Z3Uv?=
 =?utf-8?Q?RVt0Fwn377s=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(42112799006)(366016)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?U0xpSVhSNmUyN0hwdHlZYkRmTzBwQjR6RERXSjhKR1lLanNWR211MW1uSHNH?=
 =?utf-8?B?UE1hNllZRFF3NHM5VUdzSDNqeXZINm1NS2lNeVVBQmR6RDNyaW15cEF1YkYz?=
 =?utf-8?B?YUFJekFrRExPRGNIQkxzNFRYV0FMTTRDcDBvQlZNL0hMWkR5eUhPZithNlI1?=
 =?utf-8?B?VnBvNG9KdjFtRjhZNFBaNFI2Y1ZqcVdpNDNydkZIM1ZpbWFHTU40WnQxcjJu?=
 =?utf-8?B?UjZ4cG81S2w0SDBrb2NrK2NxUFlyTTdOeWFBZ2VubElSVnF2Nk95OW5YbjM2?=
 =?utf-8?B?T0lxT21CdWNQempQMkJUMGQ5ZU5FaVplR21vcFYxWSs5ZzNCVmVsc09NWUxy?=
 =?utf-8?B?MHF4U0pLbkZPdmZ2SXJaQUFXN0NLZFpxcjVKUTUwbnRSNDBIVHdMVE5NUDBN?=
 =?utf-8?B?NnJranptVXN2S21ELzJ4cjJxV3lBNUd3ZlBQWHNxRk5YaEdadGswNHZhSlNF?=
 =?utf-8?B?cXVBeGZBU2svNm5LOFNpTHJJV2Y4T3JyTFFEcExpUFN4WnpNTWU4NzVMYWJh?=
 =?utf-8?B?bHVTa0ZieXlkSCt2MjRib0pLbjR1U1JmbmxGbjFOUXVxeEV4QzRqbFZleFRS?=
 =?utf-8?B?UVBMMVExdTJPMndDRGZmcmFZRlowNXhqOVZOdXVYU0pEcUMwdkNuMEMvVTZR?=
 =?utf-8?B?S2wwQm5heXl5cmg2Q1Y0RkkxWUxPaDRWTnpjcXFhWTR5VUhPUTQ0Q094OHN3?=
 =?utf-8?B?YmQ2L1lGQnIySlFiWE5LUFhhNlE4Z1hkWGFSbzNKWVBncnJQRldVNGdxTlph?=
 =?utf-8?B?L3BMWk9FYkszc3d3Uzc1dGsvYmtxNlU4YlN2b1Z3Sk9hU1NFeTJmcS8veXRN?=
 =?utf-8?B?VkE4dnZ1SGhUOWU3anA5aUg0bmJWUU90Z1ZFNGdSdTNUK0J3cWRnTkNnbENB?=
 =?utf-8?B?dkI3RktkbG9HYXBVYmtpRWEzTVVGUlhMZC84bHpaMU1CSmlMUjBBNE9GSE05?=
 =?utf-8?B?QXNWWitaaUpvNVUvaDU4Zm1rWG5CL2FUc1ZRdjRiWDV4YjBmUy9lNlJUdExW?=
 =?utf-8?B?VlRibGxRMTVsUGFtK3BZTmNwR3Jna0tXL0M3U3JwM2d2QzBPUzB3NFlySFd1?=
 =?utf-8?B?UXJQUi91RkloK1N2cGJMNndHa1FuUXZZL1JvSGxoMFFkWEdrbldJdXo5RXMx?=
 =?utf-8?B?RGRLV1UrZ2FLb01ZUHl1KzczV013RmlyRytQUHVsZjIrb0YzVk1rUUZOTU81?=
 =?utf-8?B?bGI5SEM5eUEzdzRGR3NJaTRQcGFmZ3FvTWRkcW5tbGVVMGo0dnFERWdCbmRV?=
 =?utf-8?B?QjRrTVJEMnA2eERqKytwdTVIeUpra3U0NCtrWlRoaUZSbE1aMUVpV21JUkZP?=
 =?utf-8?B?b0cwVkxMSmYzNW5LdDNsbEZQSjM3aHNuQkZucHJwSXAxQllYYnhUcDQvWEhn?=
 =?utf-8?B?YnZ1bHNSSVhZUUVEOVp1MTIwOTdqaXVjc3c3Y0RwY09xNEpXY2czU2RIV2ti?=
 =?utf-8?B?VnFqMmh2bHd5U3JDWlJONlVBTkVaUWN1SzQzZEJvQjlHUkJJM0U2eDlZWWhj?=
 =?utf-8?B?QjdnUmRFSmhVYlJTb0l3azJyOTA3T09ZZW4wMmpnRW1FK0J6VG8ybzYzUFpP?=
 =?utf-8?B?R1QwTUNkL3hLMzBNeU1zNlVYRHFjcWhBK0VhUlMwd1dNZWU1aTJsTEFsK0s1?=
 =?utf-8?B?ZTNNRkpSKzFqODNOaG1EZ2tCQzRxMnh1cUUwVUxISXRxZC9VWnA1VXROS2Yz?=
 =?utf-8?B?c3l6L0w2Mzh4TFN6TDRWV0VhdnUyMm1uWk5RTmFzVEMwUWVLNks1Y1ZFNWlG?=
 =?utf-8?B?NnlVV0RhcG9kVHVKZy9lU29pZzFjbllhaHcvMGNYblJaTUIxVUQ0akJqZWda?=
 =?utf-8?B?UnpDZ1BFaFhyVTkzOGJBUStSZVJReDFkV1U5dkc2QlBQZEZWaWUrUC9wK0du?=
 =?utf-8?B?ZXdRaXhCVHJkbFNJQmc1UlhoTVJmWjU5RkRnMG1XTyt1dS9PSncrUXV4a1Z4?=
 =?utf-8?B?TjVybFBVb3dzd29nTitqWURBM01qL0M4TFBmK3gzU2hLQVpxOG5JOGtYaDJh?=
 =?utf-8?B?ZzY3TGx2a2hhUlhwYTNXckI3Qyt3aUtWUFFOTkVpUjU5eDdmcUhrNlFScjdo?=
 =?utf-8?B?UVhMWFdLWWNXTXV2RlNUUURZcWFJNFFKUnNDVC9iclpUL2Z6VFJQTXlCZHZ3?=
 =?utf-8?B?djY5NXZIVWcyRXdFZUV0S0JBY2RKR0hYZTYwK3RnTXdRQzVNdEJxbmU5Rk9t?=
 =?utf-8?B?Vmc9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <5FF3D43E34280546B1DE5CDFB46DD55C@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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7aa8fb79-8e74-4a7e-c5f9-08dde17dd0db
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Aug 2025 13:14:24.7615
 (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: +IVESJniQkHgSJbWuxgvv9Mx+vPo+rMUXPLL0kjn7hbH+FIzV2/6vYpAokeAuLLhYdW/QHGwnPSXc9Jwu7zQayfbxhiAb6T2lbS3l07QCwU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7477

DQoNCk9uIDgvMjEvMjUgMTc6MjYsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAyMS4wOC4yMDI1
IDE2OjI0LCBNYXJlayBNYXJjenlrb3dza2ktR8OzcmVja2kgd3JvdGU6DQo+PiBPbiBUaHUsIEF1
ZyAyMSwgMjAyNSBhdCAwMTo1NjoyOFBNICswMDAwLCBEbXl0cm8gUHJva29wY2h1azEgd3JvdGU6
DQo+Pj4gTUlTUkEgQyBSdWxlIDIuMSBzdGF0ZXM6ICJBIHByb2plY3Qgc2hhbGwgbm90IGNvbnRh
aW4gdW5yZWFjaGFibGUgY29kZS4iDQo+Pj4NCj4+PiBUaGUgcmV0dXJuIHN0YXRlbWVudHMgaW4g
dGhlICdyZWFkX2ZpbGUoKScgZnVuY3Rpb24gaXMgdW5yZWFjaGFibGUgZHVlDQo+Pj4gdG8gZnVu
Y3Rpb24gJ1ByaW50RXJyTWVzZygpJyB3aGljaCBoYXMgJ25vcmV0dXJuJyBhdHRyaWJ1dGU6DQo+
Pj4gICAgICAgICAgUHJpbnRFcnJNZXNnKG5hbWUsIHJldCk7DQo+Pj4gICAgICAgICAgLyogbm90
IHJlYWNoZWQgKi8NCj4+PiAgICAgICAgICByZXR1cm4gZmFsc2U7DQo+Pj4gICAgICB9DQo+Pj4N
Cj4+PiBObyBleHBsaWNpdCByZXR1cm4gc3RhdGVtZW50IGlzIG5lZWRlZCBoZXJlLiBSZW1vdmUg
dGhlIHN0YXRlbWVudCBhbmQNCj4+PiB3cml0ZSBhIGp1c3RpZmljYXRpb24gY29tbWVudCBpbnN0
ZWFkLiBObyBmdW5jdGlvbmFsIGNoYW5nZXMuDQo+Pj4NCj4+PiBTaWduZWQtb2ZmLWJ5OiBEbXl0
cm8gUHJva29wY2h1ayA8ZG15dHJvX3Byb2tvcGNodWsxQGVwYW0uY29tPg0KPj4+IC0tLQ0KPj4+
IExpbmsgdG8gdjI6DQo+Pj4gaHR0cHM6Ly9wYXRjaGV3Lm9yZy9YZW4vYzIwYTU4ZjI0ODc1ODA2
YWRmYWY0OTFmOWM2ZWVmMmNhODY4MmQxOC4xNzU1NzExNTk0LmdpdC5kbXl0cm8uXzVGcHJva29w
Y2h1azFAZXBhbS5jb20vDQo+Pj4NCj4+PiBDaGFuZ2VzIGluIHYzOg0KPj4+IC0gcmVtb3ZlZCB1
bnJlYWNoYWJsZSBjb2RlIGluc3RlYWQgb2YgZGV2aWF0aW9uDQo+Pj4gLSB1cGRhdGVkIGNvbW1p
dCBzdWJqZWN0IGFuZCBtZXNzYWdlDQo+Pj4NCj4+PiBUZXN0IENJIHBpcGVsaW5lOg0KPj4+IGh0
dHBzOi8vZ2l0bGFiLmNvbS94ZW4tcHJvamVjdC9wZW9wbGUvZGltYXBya3A0ay94ZW4vLS9waXBl
bGluZXMvMTk5NjQzOTQ0NA0KPj4+IC0tLQ0KPj4+ICAgeGVuL2NvbW1vbi9lZmkvYm9vdC5jIHwg
MTAgKysrKysrKy0tLQ0KPj4+ICAgMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgMyBk
ZWxldGlvbnMoLSkNCj4+Pg0KPj4+IGRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2VmaS9ib290LmMg
Yi94ZW4vY29tbW9uL2VmaS9ib290LmMNCj4+PiBpbmRleCA1MGZmMWQxYmQyLi4zMjVkZTA1YjE4
IDEwMDY0NA0KPj4+IC0tLSBhL3hlbi9jb21tb24vZWZpL2Jvb3QuYw0KPj4+ICsrKyBiL3hlbi9j
b21tb24vZWZpL2Jvb3QuYw0KPj4+IEBAIC04NTEsOSArODUxLDEzIEBAIHN0YXRpYyBib29sIF9f
aW5pdCByZWFkX2ZpbGUoRUZJX0ZJTEVfSEFORExFIGRpcl9oYW5kbGUsIENIQVIxNiAqbmFtZSwN
Cj4+PiAgICAgICBQcmludEVycih3aGF0KTsNCj4+PiAgICAgICBQcmludEVycihMIiBmYWlsZWQg
Zm9yICIpOw0KPj4+ICAgICAgIFByaW50RXJyTWVzZyhuYW1lLCByZXQpOw0KPj4+IC0NCj4+PiAt
ICAgIC8qIG5vdCByZWFjaGVkICovDQo+Pj4gLSAgICByZXR1cm4gZmFsc2U7DQo+Pj4gKyAgICAv
Kg0KPj4+ICsgICAgICogTm8gZXhwbGljaXQgcmV0dXJuIHN0YXRlbWVudCBpcyBuZWVkZWQgaGVy
ZSBiZWNhdXNlICdQcmludEVyck1lc2coKScgaXMNCj4+PiArICAgICAqIG1hcmtlZCBhcyAnbm9y
ZXR1cm4nLCB3aGljaCBndWFyYW50ZWVzIHRoYXQgaXQgbmV2ZXIgcmV0dXJucyBjb250cm9sIHRv
DQo+Pj4gKyAgICAgKiB0aGUgY2FsbGVyLiBJZiB0aGUgJ25vcmV0dXJuJyBhdHRyaWJ1dGUgb2Yg
J1ByaW50RXJyTWVzZygpJyBpcyByZW1vdmVkDQo+Pj4gKyAgICAgKiBpbiB0aGUgZnV0dXJlLCBj
b21waWxlciB3aWxsIGVtaXQgYW4gZXJyb3IgYWJvdXQgdGhlIG1pc3NpbmcgcmV0dXJuDQo+Pj4g
KyAgICAgKiBzdGF0ZW1lbnQgKGJ1aWxkLXRpbWUgc2FmZWd1YXJkKS4NCj4+PiArICAgICAqLw0K
Pj4NCj4+IEkgZG9uJ3QgdGhpbmsgdGhpcyB2ZXJib3NlIGNvZGUgY29tbWVudCBpcyBuZWVkZWQg
aGVyZS4gT3RoZXIgc2ltaWxhciBwbGFjZXMNCj4+IHVzZSBzaW1wbHkgIkRvZXNuJ3QgcmV0dXJu
LiIgbmV4dCB0byB0aGUgZnVuY3Rpb24gY2FsbCwgb3Igbm90aGluZyBhdA0KPj4gYWxsIGlmIHRo
ZSBmdW5jdGlvbiBuYW1lIGFscmVhZHkgc3VnZ2VzdHMgaXQgKHdoaWNoIElNTyBpcyBub3QgdGhl
IGNhc2UNCj4+IGhlcmUpLg0KPg0KPiBPciBzaW1wbHkga2VlcCB0aGUgY29tbWVudCB0aGF0IHdh
cyBhbHJlYWR5IHRoZXJlPw0KPg0KPiBKYW4NCg0KQW55d2F5LCBjb21tZW50cyAiRG9lc24ndCBy
ZXR1cm4uIiBhbmQgIm5vdCByZWFjaGVkIiBhcmUgYWxtb3N0IHRoZSBzYW1lLg0KVG8gc2ltcGxp
ZnkgcGF0Y2gsIEknbSBnb2luZyB0byBsZWF2ZSBvbGQgY29tbWVudCAibm90IHJlYWNoZWQiIGFu
ZCBtb3ZlDQpkZXNjcmlwdGlvbiBpbnRvIGNvbW1pdCBtZXNzYWdlLg0KDQpEbXl0cm8uDQoNCj4N
Cj4+IFRoZSBsb25nZXIgZXhwbGFuYXRpb24gbWF5IGJlIHB1dCBpbiB0aGUgY29tbWl0IG1lc3Nh
Z2UuDQo+Pg0KPj4gV2l0aCB0aGF0IGFkZHJlc3NlZDoNCj4+DQo+PiBSZXZpZXdlZC1ieTogTWFy
ZWsgTWFyY3p5a293c2tpLUfDs3JlY2tpIDxtYXJtYXJla0BpbnZpc2libGV0aGluZ3NsYWIuY29t
Pg0KPj4NCj4NCg==


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 13:30:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 13:30:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090150.1447519 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upRpz-0004z3-LT; Fri, 22 Aug 2025 13:29:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090150.1447519; Fri, 22 Aug 2025 13:29: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 1upRpz-0004yw-Hg; Fri, 22 Aug 2025 13:29:47 +0000
Received: by outflank-mailman (input) for mailman id 1090150;
 Fri, 22 Aug 2025 13:29:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kk10=3C=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1upRpy-0004ya-5y
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 13:29:46 +0000
Received: from GVXPR05CU001.outbound.protection.outlook.com
 (mail-swedencentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c202::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 10b85894-7f5c-11f0-b898-0df219b8e170;
 Fri, 22 Aug 2025 15:29:44 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by GV2PR03MB9425.eurprd03.prod.outlook.com (2603:10a6:150:e3::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.18; Fri, 22 Aug
 2025 13:29:40 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9052.013; Fri, 22 Aug 2025
 13:29: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>
X-Inumbo-ID: 10b85894-7f5c-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=oRAbOMRlFPZ/0TpqG4fBKiCeJFHm+gKs6Cbs8Fp8O6y3zNJWht8AZx2t4H4wZU3pwePTK7ph9vEX+eWsEHMczzHMhmah8j2JaxvPf1EpnqR5Q5Rw0yB16mFBY9/UBzsDQhPQGh0xfZw6mSLL2orWo62Wf3WNh+hzGEfieUdMPb5bdTp8/0LG2NNW+F/PxBWESeB9KVt3WMPBypwCxMVkaMn960jiqgj0BoOC5HxP02M0u6tRXUj8j4V/aEmczoXDP8xSjlpU6Ycc8Su1VS+S2ADg4WW9OFzRnqS94ldTfih6nUatl9r0cvtBxanWdC+caZYgfHVlCqj6AHbWBfnupQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=tfvnJewfW0iD06SEd1Fx9eRySUqTLCrVpsrNlqTHbJ4=;
 b=MfI+W7IMUEy32H2zLvR2Sqzjx8G/RBnnJD+WLRgbKXUc5ig/SxreA9g51FEOQiMDwOFaDCDwKAWjsLXD8dIaxzOEuY/uBbzvTOgLNOcfAXNv5SdOkSCxzAQcQmLR1HG9ORQlfraBFDV3K/VnXB7c4B82euFeJm8bla79x/Xbh55pd2pvV7YWNEKA8aRXCq3x2v2TvJZKsOGeEtd666VdCUXgM4S+La7JtnK5eOG0ixx2AvWtTr140wisVLzv3iYImamUpNJjjEsNwcEcGlwGa5m8c1URycM0uyOkw3F1HWwspXOuvJW8+t72f4usoaJ6PAc1MTjfUMcBZKUm9JRKig==
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=tfvnJewfW0iD06SEd1Fx9eRySUqTLCrVpsrNlqTHbJ4=;
 b=hTo4wpphwkQucBtkpqv5UL0KM3cn1wfbsgVfv8c/1tA5iWXSBiRHh0vk/uWZuKx1UCLGd9Saot3bt12ug32pB1D9UUFRFQfsfLvs1Fs+Un0aO2xDpcc+cA8roRzDtB4iHdocdW/j28+1Zqw+ZRoeYJRXl9nEoR2Rn1MCaBX0qg/jacQFyoOMAjZUEoGBWUIRYgRtvZydfAEAOfSmA89RSP0XFG1xJpvvtZ6mPWIrZXSpfJfpRNuuIcF/i+IxhsFK5Sm9QwIuW+MLb1oyHZw7OON/h+i1UgknYgAYh4+iy7/lFQM9rb/1xYGN1r/R5V/0fQrFUj/psWBmVjDuMWmsdg==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Jan Beulich <jbeulich@suse.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>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] misra: fix Rule 11.3 violation in
 'vcpu_mark_events_pending'
Thread-Topic: [PATCH] misra: fix Rule 11.3 violation in
 'vcpu_mark_events_pending'
Thread-Index: AQHcEahzo6Ns4M/vpkyFl3Gc8+EN0rRs2qIAgAHTq4A=
Date: Fri, 22 Aug 2025 13:29:39 +0000
Message-ID: <633be715-c9e3-4021-9ca3-a39e2a2f1186@epam.com>
References:
 <7210337994620b60ed123ec6fc73e469c287adf6.1755676142.git.dmytro_prokopchuk1@epam.com>
 <79663681-466b-43d9-9845-3f16f8a33cb5@suse.com>
In-Reply-To: <79663681-466b-43d9-9845-3f16f8a33cb5@suse.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV2PR03MB9572:EE_|GV2PR03MB9425:EE_
x-ms-office365-filtering-correlation-id: b3e68850-c6fd-4ccb-4d6b-08dde17ff231
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|376014|42112799006|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?aVdhc2tUbFI3ZGxQMG5iZU1YanN4anlhN0l1UDFVQnlhVTdjTVN5QUN3T3ZI?=
 =?utf-8?B?MTBOUDlORm8zTndsU3BGTmt3SytQZUN1ZmtKY3o1SUhSNE1QWmY2ZGMyczc5?=
 =?utf-8?B?bmxaR2g2bit2eWpNM1pFTW1yWUxXTEJtUFQ2bFh5emozczZJUW10SjZ4cS9I?=
 =?utf-8?B?MGJCemtkMGY5YjUvdlFWV2xKaVZZYVBjV0E5Q0dVc2dTQWVLK2dIaDd5bmJB?=
 =?utf-8?B?SVRRdVg1MmJJYWxOVWwzSFJXbWxTVkltcks3Y3pVNDdnZHVUdFVLV1MzMTJu?=
 =?utf-8?B?V1VBNlhZRFVvUWNtNXdsR0Rnd1lpUENYNmJEb2swV0djSFp4dyt0UzdhQndO?=
 =?utf-8?B?c05tTWYxbXdOaFFIZ2kvMFR0RHpSbHJmSGFPVVFidGNEYk45TG9waWlPUld1?=
 =?utf-8?B?RHRzSWFwV3VDZFR6Y0tUcm8xaFN1R1dTVnB3Ujg5T0VIbmw5VVZtN1BzbGt0?=
 =?utf-8?B?V3BFeCs3R0JkbXNEVFgwQXNNbkhSL0wxWmRnbEZmdlF6cGJ2d3hGWE4zLzNx?=
 =?utf-8?B?anRTcXpqNFVnRnBPMGhyZW1YZnExMVU0eVBRbnJnWll5K1VtVXBlVmkwaHdr?=
 =?utf-8?B?Ums2eDhqU1ZvRklkYWpvd1ZZUlhWNWNVTGN0L3pzVzh0QXpwbDZqcnVFUU1r?=
 =?utf-8?B?ME1KMnpDSTV1akswRFYyMXB2cnlmc3ZrTTFUSWZXM2lHaWM3UHAyd1Y2U3do?=
 =?utf-8?B?dmU3OVR1aU85aWJIYWl0VFNSaDVhdjNSUU55R29OemQ5Si8yT3A2MnlsN1pI?=
 =?utf-8?B?SkU2N3NLaTZUd1NVWCt4YW5KdnZDL2pZbVhuNTFBWWNNNkpsUVJvUmsvR05r?=
 =?utf-8?B?SkFRcW5waG0yMTZ0K3owc3FadFRta0Q5bkpOTDRvMklSajhseDBzSG9tcW9o?=
 =?utf-8?B?ZWRkb1pUTTZ2OTV2MkFtUzJ1UVdRNTZWRFl0THJPRXJKb01kM0ZWeTlUL2Rj?=
 =?utf-8?B?WEdQeXRMVjY3SExETG5FQkkvN1U0cXVkY1YrSW1yMkE1OEExa0dwVmkxc1Q0?=
 =?utf-8?B?ZmVBUk1GcUZiOTI0U2JWMjk4V08xRGFncml6dzRsSWpzQjhGMFd5bkRpaUh5?=
 =?utf-8?B?Rzh4QVh0RzFaYnN5cG4vbFBFN2orRW9Ha0dJYnc5MjdXTjg2akdCL05ZS2Y3?=
 =?utf-8?B?T2xaZmNDRmNDOHJyMm9remhWK2Y1OGNDL2w3WmEwWEFhS1EvUFd1Z0ozRnRl?=
 =?utf-8?B?ZjJYYmZJS2JpRTlXME5ZUURnSTdkZXRWa1Jia1Y3ZWxqWGwxSm1MMmt2NGxH?=
 =?utf-8?B?S2NhNUxudit3ckVsL3l4TmhVSnhGeTFLM2Y5ZDBXNHlCWDVCK2JYTjh4QTBB?=
 =?utf-8?B?dGs5VGtPSXlpU2NHMWxwemlaU0hmWDZaSXltRm1VLzZZaGNYM0VSYyszbmhP?=
 =?utf-8?B?bWJWVnA1S1BnRDg5Q0ZmallkR2c1ekVhNkd5dG81WUhVSGI1bHJrV2dEVFdX?=
 =?utf-8?B?WGRDelc2Mzg2Y1JjK0VZYmxobkxyRFo0a2Q5UWtRUS9iUEs5aXlIRVpHWjVV?=
 =?utf-8?B?VlJEblNqbkl3dUhwMXZySFlXTm9YV0FPTkhGYlkxcUsyaithV3A2KzZNb1JM?=
 =?utf-8?B?N3pQMzdrQ3Z3cFdnU0h3bmdjVGVFKzJZV1lSQnl6RlFSMXNSRFpzSnoxeXNm?=
 =?utf-8?B?c2Z5ODk1YU00MEtBbEJsU2NYN0prZnExOGdRVEF0eDArUUJueUIydjRHajd1?=
 =?utf-8?B?R1FzS0lzRFRiNit5c3VrY21LRHQxdzJWcE9jSEN3YmVPeXNTTml5d1hDVXU2?=
 =?utf-8?B?T21GQVRvaThtNm5MamlyY2FMYm1LSzF5cWx0WTRFSmJxMVQzSXE5VXdWOEZr?=
 =?utf-8?B?K3dvSExoZEF6Wm5rSkFiTkI2aW45MjYrbVlLMzZRLzJXQ1RRcmFiV245dHlo?=
 =?utf-8?B?NzFraC9BYUhxZ1N1Z3djRHBydFN1QitzempzN09UdjNUNEdkbHprcFhjMUxR?=
 =?utf-8?B?TkJKbEx2bnZ6Y0U1djZnUlp5ajc3VGU3REhFKy9EWm1MZ2JnNFlQcmV3R25C?=
 =?utf-8?Q?yyCqJoalFRi/bC0mae1gAuXWGnuBUU=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(42112799006)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?R1ErRldiTndDcnd4SFR5Wm0xVmVLNnY1WW1BcGpCOHIvVkNIL292aGFnejNm?=
 =?utf-8?B?bXplaVg3dk5XYlZjL3dvaGVSSTlmQUNGd3hYRGh2cFhaZFdsUlh2TTlubWdL?=
 =?utf-8?B?MVlqYWN0ZVZIUzI3TjRlakUzSUVIazhuWk5lcmVEQ2FGeFhPSVBKNmpNU2J1?=
 =?utf-8?B?UFd3WHNGcW1LUE01YVdwZmplVU1RK0lmWnR5ODI3eWx0cnlpZEhqak9rVG1K?=
 =?utf-8?B?eFV2N1l2L1dybFAvOHNsTWM0ZU5ESzk5WXp5WXJVTHVLa0VKaEtMWHpuYlRH?=
 =?utf-8?B?MnZuaGpYT29PUTgyQjIzOW9jMkJ2Z0Y4b3U4VWhVZG94cGFQbURBMmJXdlVy?=
 =?utf-8?B?cWpNNzRTOXBGSFJ1Wkl2L21QMHVkWDQwYkw1Rmx6cks0TTVkdXpFdVRSTDBh?=
 =?utf-8?B?eUZLOElhQVJUcEhaclVFRys0Ri9iL3lnRXdwcjBTMWVybG9jK0dSQWJReUpl?=
 =?utf-8?B?TVVXY2tBcWFnRXZ6U29QTVNVbDlMWW43bWprWDdSalBtZHQ2NHlUSVpIMVZU?=
 =?utf-8?B?dSt1MGZjVWJxK1NlZnVjdytydDdLbmx1ajloY05pbFFJVncrc1pVMjQxK3Fs?=
 =?utf-8?B?a3FJNHp0dDh0TE9JRVdGZCtLQVp5Ykpvem5ndTRRd3RSZlpxNEJMREtKdFZa?=
 =?utf-8?B?Tmg5YXdsR3JwOE5wZHhGZjJEdkU3RU1iRC83NThCeHpxR2M2emN3N1JzVEkr?=
 =?utf-8?B?QmhSTDE4Q1dwMklocXJwQmxldGFGYURuN3pKVm5FQ1p5NTVqUEFZdmRxQVVl?=
 =?utf-8?B?bHJaVFBjQmh2VDlwRUZLM1BkaUF1THMzQnpmOHhrY3VmeVhTcFR4NmFycXpk?=
 =?utf-8?B?b3FPcldmWUNhVnQyZVAwVkNrc0NVckw5SGZRRXB2UjBJUTBpWStqMml6a1g3?=
 =?utf-8?B?bWNtanYxS0hpSkUrM2p4K0Q5QzRWYlQwdzRHa3lvWGxCeDNFNjMycnl3V0ZS?=
 =?utf-8?B?ZjBmQTUyRHVUL0gybWM4VGtUS2luWEhJZlJxZW85ekJCb0U4dng1R0krVW1L?=
 =?utf-8?B?WTdKUXdyenhEUXJEWnBDTVF4U0pvdzF4N1hXVzQwMkl5S3FheGVES0dGOENH?=
 =?utf-8?B?cnRscllsdzBKbEphSkNEN2xLUU5qZ0FRS0JyVlBsUTgvcit1bWFrYWVwY20x?=
 =?utf-8?B?N0szUmZIL1BQSjZnYVZJOFJucGtQdk0xdWdEQnRZOEJCaDVKdHBqMUN3NHpU?=
 =?utf-8?B?SzdiM0JiYjdZKzVYSVlJTlJzSXBOaVpYdGw2V1QrU3hhMTl3VGM2aUVWa1l1?=
 =?utf-8?B?RHd4ajFwbDVvSWhKYkJxZVErWGM5SnVDL05ZWThRMGZSb1dDN3Z0azJLOTNH?=
 =?utf-8?B?cUZxVkFjUzVlVzVNWTBON3pXZWNPR3JxQWRCTExwOWMvdzdCcTMzdXY3a2pu?=
 =?utf-8?B?WHZsS0piT1FuWUxjV0R2QXlYNGVuVnhYdFBSeHJzRTV0M0x1cG5hRVc4ejB6?=
 =?utf-8?B?THJTMkhva3ZPRmVrSGxOS2RROEZ6UXNBRFA1UmcxOEpkRmx4bWhhd21qYTFQ?=
 =?utf-8?B?M3Y5cU5UenlqVHZXaDcxdWFpR2xMcm0yVjN2NU5YQ1NpMnlWSUF4RWVjSXpr?=
 =?utf-8?B?N0J2ais2RmVxNThlditwODdDUDJFOGwwa0hzeE5mVytYVmtHc0FFaXFrTUVy?=
 =?utf-8?B?M3h0eUNKSVMxK1Y5azg5amZVR1R2cXl2a3Vyd2ZXMWJReVJSa01XWFVoVDFC?=
 =?utf-8?B?RHp1Z0RiWUV4SFkydEM2Z21OREFybWxSZ3V0cEJtMzR5QUJzUjYwWVd4V212?=
 =?utf-8?B?elRNM29jbEF3WnQ4cW9iK3pYRWpERWVnNFQwZWVtZDUydXM0ZHZ6bno0NzJZ?=
 =?utf-8?B?TjdXTmZJelZyckkvWWVCcXNiSllmLzJyRHRYdVdibHVNNnFTbnZHTWtzUUlu?=
 =?utf-8?B?d0QzZUpkTVBHdzdVQ2x3c2ZWVzNKblBzTUJ6WVFLQVp0eklqbW1QQUwyR0Nx?=
 =?utf-8?B?QjA4cmRKVTFZSi90SmlkNnhuYkNSWWoreEdaVlY3dEhlQUsvTTJNSGlIR3Yy?=
 =?utf-8?B?RUNtSTlJdHh6bnJKc1NWM1IzdTNweVpNSzhuMDAxbTZPWWNGdVEvdndRR1Zp?=
 =?utf-8?B?NmsxbFN2YTRXZW9HcFo2aVE4bTFhWUFTaXNaSysrSlFST0dvRXlUVVVvZDlN?=
 =?utf-8?B?VWxiVTdWV0NZK21Rb1A1KzJvRHNqUTI3bG9sbnhrV3c4djV6SUZXamJDNzNt?=
 =?utf-8?B?Wnc9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <F1B0E381D437B14189D819661EF27D99@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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b3e68850-c6fd-4ccb-4d6b-08dde17ff231
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Aug 2025 13:29:39.6386
 (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: XsXDyuTW+6l6SfTgv5NKBEGmvUBPYVY0EtLz+kv16T57Lvu9jvQnvxW23dYcXy9FgfXEhjDltnLI/8/wgBZ5za4L23ocE2ar8e2UP7G/g5U=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR03MB9425

DQoNCk9uIDgvMjEvMjUgMTI6MzUsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAyMC4wOC4yMDI1
IDEwOjAwLCBEbXl0cm8gUHJva29wY2h1azEgd3JvdGU6DQo+PiBNSVNSQSBDOjIwMTIgUnVsZSAx
MS4zIHN0YXRlczogIkEgY2FzdCBzaGFsbCBub3QgYmUgcGVyZm9ybWVkIGJldHdlZW4NCj4+IGEg
cG9pbnRlciB0byBvYmplY3QgdHlwZSBhbmQgYSBwb2ludGVyIHRvIGEgZGlmZmVyZW50IG9iamVj
dCB0eXBlLiINCj4+DQo+PiBUaGUgZnVuY3Rpb24gJ3ZjcHVfbWFya19ldmVudHNfcGVuZGluZycg
Y29udGFpbnMgYSBub24tY29tcGxpYW50IGNhc3QNCj4+IHRvICh1bnNpZ25lZCBsb25nKikuIFJl
bW92ZSB0aGUgZXhwbGljaXQgY2FzdCBhbmQgcGFzcyB0aGUgY29tcGF0aWJsZQ0KPj4gcG9pbnRl
ciB0eXBlIHRvIHRoZSAnZ3Vlc3RfdGVzdF9hbmRfc2V0X2JpdCcgbWFjcm8uDQo+DQo+IE5vLXdo
ZXJlIHVwIHRvIGhlcmUgKGluY2wgdGhlIHN1YmplY3QpIGl0IGlzIHNhaWQgdGhhdCB0aGlzIGlz
IGFuIEFybS0NCj4gb25seSBpc3N1ZS4gSGVuY2Ugd2h5IEkgZW5kZWQgdXAgbG9va2luZyBpbiB0
aGUgZmlyc3QgcGxhY2UuDQo+DQo+PiBGaXhlczogYzYyNmFhMWE1YSAoYXJtOiBpbXBsZW1lbnQg
ZXZlbnQgaW5qZWN0aW9uLCAyMDEyLTA2LTAxKQ0KPj4gU2lnbmVkLW9mZi1ieTogRG15dHJvIFBy
b2tvcGNodWsgPGRteXRyb19wcm9rb3BjaHVrMUBlcGFtLmNvbT4NCj4+IC0tLQ0KPj4gVGVzdCBD
SSBwaXBlbGluZToNCj4+IGh0dHBzOi8vZ2l0bGFiLmNvbS94ZW4tcHJvamVjdC9wZW9wbGUvZGlt
YXBya3A0ay94ZW4vLS9waXBlbGluZXMvMTk5MzA1NDIwMw0KPj4gLS0tDQo+PiAgIHhlbi9hcmNo
L2FybS9kb21haW4uYyB8IDIgKy0NCj4+ICAgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCsp
LCAxIGRlbGV0aW9uKC0pDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9kb21haW4u
YyBiL3hlbi9hcmNoL2FybS9kb21haW4uYw0KPj4gaW5kZXggMzEwYzU3ODkwOS4uNjM3MWU2OGNj
NyAxMDA2NDQNCj4+IC0tLSBhL3hlbi9hcmNoL2FybS9kb21haW4uYw0KPj4gKysrIGIveGVuL2Fy
Y2gvYXJtL2RvbWFpbi5jDQo+PiBAQCAtMTE2Niw3ICsxMTY2LDcgQEAgdm9pZCBhcmNoX2R1bXBf
dmNwdV9pbmZvKHN0cnVjdCB2Y3B1ICp2KQ0KPj4gICB2b2lkIHZjcHVfbWFya19ldmVudHNfcGVu
ZGluZyhzdHJ1Y3QgdmNwdSAqdikNCj4+ICAgew0KPj4gICAgICAgYm9vbCBhbHJlYWR5X3BlbmRp
bmcgPSBndWVzdF90ZXN0X2FuZF9zZXRfYml0KHYtPmRvbWFpbiwNCj4+IC0gICAgICAgIDAsICh1
bnNpZ25lZCBsb25nICopJnZjcHVfaW5mbyh2LCBldnRjaG5fdXBjYWxsX3BlbmRpbmcpKTsNCj4+
ICsgICAgICAgIDAsICZ2Y3B1X2luZm8odiwgZXZ0Y2huX3VwY2FsbF9wZW5kaW5nKSk7DQo+DQo+
IEl0J2xsIGJlIEFybSBtYWludGFpbmVycyB0byBqdWRnZSwgYnV0IG15IHRha2UgaXMgdGhhdCB0
aGUgcHJldmlvdXNseQ0KPiBxdWVzdGlvbmFibGUgY29uc3RydWN0IGJldHRlciB3b3VsZG4ndCBi
ZSBtYWRlIHlldCBtb3JlIHF1ZXN0aW9uYWJsZS4NCj4gV2hhdCdzIG1pc3NpbmcsIGF0IGxlYXN0
IGZvciBBcm0zMiBhaXVpLCBpcyBhIChidWlsZC10aW1lKSBjaGVjayB0aGF0DQo+IHRoZSBmaWVs
ZCBhY3R1YWxseSBsaXZlcyBhdCBhIDMyLWJpdCBib3VuZGFyeSBhbmQgdGhhdCByZWFkLW1vZGlm
eS0NCj4gd3JpdGUgb3BlcmF0aW9ucyBjYXJyaWVkIG91dCBvbiBpdCBhdCAzMi1iaXQgd2lkdGgg
KHRoaXMgaXMgdHJ1ZSBldmVuDQo+IGZvciBBcm02NCkgd29uJ3QgaGF2ZSBhbiBpbXBhY3Qgb24g
d2hhdCBmb2xsb3dzICh0aGlzIG1heSBiZSBwb3NzaWJsZQ0KPiB0byBjb3ZlciBieSBqdXN0IGEg
Y29tbWVudCwgYXMgeW91IGNhbid0IHJlYWxseSBjaGVjayBmb3IgdGhlIGFic2VuY2UNCj4gb2Yg
c3RydWN0IGZpZWxkcykuDQo+DQo+IEphbg0KDQpUaGUgYnVpbGQtdGltZSBhc3NlcnQgY291bGQg
YmUgcGxhY2VkIHRoZXJlOg0KDQpCVUlMRF9CVUdfT04ob2Zmc2V0b2Yoc3RydWN0IHZjcHVfaW5m
bywgZXZ0Y2huX3VwY2FsbF9wZW5kaW5nKSAlIDQgIT0gMCk7DQoNCmJ1dCBtZW1iZXIgJ2V2dGNo
bl91cGNhbGxfcGVuZGluZycgaXMgdGhlIGZpcnN0IGluIHRoZSBzdHJ1Y3QNCid2Y3B1X2luZm8n
LCBhbmQgb2Zmc2V0b2YoKSB3aWxsIGFsd2F5cyByZXR1cm4gemVyby4NCkN1cnJlbnRseSB0aGlz
IGFzc2VydCBpcyB1c2VsZXNzLiBQcm9iYWJseSBpdCBjYW4gcHJvdGVjdCB1cyBpbiB0aGUNCmZ1
dHVyZSB3aGVuIHNvbWVib2R5IHdpbGwgZGVjaWRlIHRvIG1vdmUgJ2V2dGNobl91cGNhbGxfcGVu
ZGluZycgb3IgYWRkDQpuZXcgbWVtYmVyIGluIGZyb250IG9mIGl0Lg0KDQpEbXl0cm8uDQo=


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 13:48:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 13:48:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090160.1447529 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upS7d-0007rG-3Z; Fri, 22 Aug 2025 13:48:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090160.1447529; Fri, 22 Aug 2025 13:48: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 1upS7c-0007r9-WD; Fri, 22 Aug 2025 13:48:01 +0000
Received: by outflank-mailman (input) for mailman id 1090160;
 Fri, 22 Aug 2025 13:47:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=OzNX=3C=bounce.vates.tech=bounce-md_30504962.68a8750a.v1-5b37ed1022e84a30a8896c5e2e05a47c@srs-se1.protection.inumbo.net>)
 id 1upS7a-0007r3-Om
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 13:47:58 +0000
Received: from mail137-3.atl71.mandrillapp.com
 (mail137-3.atl71.mandrillapp.com [198.2.137.3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9afeac70-7f5e-11f0-b898-0df219b8e170;
 Fri, 22 Aug 2025 15:47:56 +0200 (CEST)
Received: from pmta07.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail137-3.atl71.mandrillapp.com (Mailchimp) with ESMTP id 4c7hMt2BmWzBsTpGV
 for <xen-devel@lists.xenproject.org>; Fri, 22 Aug 2025 13:47:54 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 5b37ed1022e84a30a8896c5e2e05a47c; Fri, 22 Aug 2025 13:47: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>
X-Inumbo-ID: 9afeac70-7f5e-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1755870474; x=1756140474;
	bh=c5OS5QfxagAVStqr0nZdnCF+x0ODYhCsWNPi1ffj+Is=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=tr2UTFzTOLWezURzk98M+VMWIRhvDQdVpad2yYYO86pVtpLYpm8n9h0fpBwVFVYim
	 BDfpa3m1FerjO79A2jCW/IpYO5XEawe/bABGMaF0c/S5/EyNNsnGtW28e31DlhK8fo
	 /Y0JSOz+c6k02POsKMp6k3OCmvnUIbjapNVoGwwPxPgLW7yu0urA0dSTcf2O3ZQqXT
	 Zph/fkxnxB6yibYypIiSwzcsm8hfFEa0fxEegtlQqzm92Dl7qusv/IwvDf/rkMmMCj
	 SqUEEBXgEAzcP6TVzn8TzwkDWlTgad9h7yTiTtFB3qHtczxgdirq0i8iWQsdGjMg1g
	 48EA5YjNLGtqA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1755870474; x=1756130974; i=teddy.astie@vates.tech;
	bh=c5OS5QfxagAVStqr0nZdnCF+x0ODYhCsWNPi1ffj+Is=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=JzmlAM4pSpa/3Q0hJ7oTycPdEllPvdp9wc+nOTLPPYuAWe4SCXrZDeP2UM6RzH9Fy
	 JbF8jLDyVsPmJdq8/rnNEsM2/jvTfCZ6NEEJ5WvwLKCyiErX0/UmGoKZTHIoZ/5PQY
	 l9N4yyxaq1gdsewFh4WwUT/S7bGDu/NjAwA2M1lwWyqeVUPRGI82X+uzKA1k6CffLY
	 LCj4NwT3au6/6937E1zkLu+Z3JC548wzDhyxCp+xB4IewenMlG4YIQD9GVm9JqShK2
	 UsWm/lprfBkSamTqDrTcdAYhVaL8LSJuO9Y+1vx20JCDcgsDReqbGK46MqLsCfqTkO
	 XJ6rov1rVCKXg==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH]=20hvmloader:=20Update=20to=20SMBIOS=202.6?=
X-Mailer: git-send-email 2.50.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1755870473308
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>
Message-Id: <b569a298a6270ae04eaf433f7de9ce1f3e248e5f.1755870287.git.teddy.astie@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.5b37ed1022e84a30a8896c5e2e05a47c?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250822:md
Date: Fri, 22 Aug 2025 13:47:54 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Currently, hvmloader uses SMBIOS 2.4, however, when using OVMF, the
SMBIOS is patched to 2.8, which has clarified the UUID format (as GUID).

In Linux, if the SMBIOS version is >= 2.6, the GUID format is used, else
(undefined as per SMBIOS spec), big endian is used (used by Xen). Therefore,
you have a endian mismatch causing the UUIDs to mismatch in the guest.

$ cat /sys/hypervisor/uuid
e865e63f-3d30-4f0b-83e0-8fdfc1e30eb7
$ cat /sys/devices/virtual/dmi/id/product_uuid
3fe665e8-303d-0b4f-83e0-8fdfc1e30eb7
$ cat /sys/devices/virtual/dmi/id/product_serial
e865e63f-3d30-4f0b-83e0-8fdfc1e30eb7

This patch updates the SMBIOS version from 2.4 to 2.6 and fixup the UUID
written in the table; which effectively fix this endianness mismatch with
OVMF; while the UUID displayed by Linux is still the same for SeaBIOS.

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
This effectively changes the UUID seen with UEFI guests as it was
actually inconsistent with SeaBIOS and SMBIOS expectations.
---
 tools/firmware/hvmloader/smbios.c | 20 ++++++++++++++++++--
 1 file changed, 18 insertions(+), 2 deletions(-)

diff --git a/tools/firmware/hvmloader/smbios.c b/tools/firmware/hvmloader/smbios.c
index 6bcdcc233a..f4822ae6f8 100644
--- a/tools/firmware/hvmloader/smbios.c
+++ b/tools/firmware/hvmloader/smbios.c
@@ -352,7 +352,7 @@ smbios_entry_point_init(void *start,
     memcpy(ep->anchor_string, "_SM_", 4);
     ep->length = 0x1f;
     ep->smbios_major_version = 2;
-    ep->smbios_minor_version = 4;
+    ep->smbios_minor_version = 6;
     ep->max_structure_size = max_structure_size;
     ep->entry_point_revision = 0;
     memcpy(ep->intermediate_anchor_string, "_DMI_", 5);
@@ -462,7 +462,23 @@ smbios_type_1_init(void *start, const char *xen_version,
     p->version_str = 3;
     p->serial_number_str = 4;
 
-    memcpy(p->uuid, uuid, 16);
+    /*
+     * Xen uses OSF DCE UUIDs which is fully big endian, however,
+     * GUIDs (which requirement is clarified by SMBIOS >= 2.6) has the
+     * first 3 components appearing as being little endian and the rest
+     * as still being big endian.
+     */
+    /* First component */
+    for ( unsigned int i = 0; i < 4; i++ )
+        p->uuid[i] = uuid[4 - i - 1];
+    /* Second component */
+    p->uuid[4] = uuid[5];
+    p->uuid[5] = uuid[4];
+    /* Third component */
+    p->uuid[6] = uuid[7];
+    p->uuid[7] = uuid[6];
+    /* Rest */
+    memcpy(p->uuid + 8, uuid + 8, 8);
 
     p->wake_up_type = 0x06; /* power switch */
     p->sku_str = 0;
-- 
2.50.1



 | Vates

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Aug 22 14:07:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 14:07:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090194.1447538 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upSQe-0002Uv-MU; Fri, 22 Aug 2025 14:07:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090194.1447538; Fri, 22 Aug 2025 14:07: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 1upSQe-0002Uo-Jr; Fri, 22 Aug 2025 14:07:40 +0000
Received: by outflank-mailman (input) for mailman id 1090194;
 Fri, 22 Aug 2025 14:07:39 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1upSQd-0002Ui-Po
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 14:07:39 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1upSQc-000r5h-30;
 Fri, 22 Aug 2025 14:07:39 +0000
Received: from [2a01:e0a:1da:8420:b77:bd5:6e45:7633] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1upSQc-00DFP7-2e;
 Fri, 22 Aug 2025 14:07: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date;
	bh=X5jqs7i4pFGkAg49w7ID/6UA+4MdKV1xYmY0oFNv5s0=; b=g6S0w+pCcJBFdXBfuuir1obDTw
	yQhmOTObRixVVMhYfVz3lUMTjH48Xk4kFGqciErpV8mAXKB7ahsGdk5ZydWbaJaxaB01HgF/El2QF
	kBIUpnwg/oa3Uib6Srwg1gHd88y6DIYjpzZ/wYhRrZiA2RtdLQ1OnABy+2CMm0fAC7kg=;
Date: Fri, 22 Aug 2025 16:07:37 +0200
From: Anthony PERARD <anthony@xenproject.org>
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: xen-devel@lists.xenproject.org, ray.huang@amd.com,
	Edgar.Iglesias@amd.com, Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: Re: [PATCH v1] tools: make "opengl" generic
Message-ID: <aKh5qUEk6ft9q5MQ@l14>
References: <20250728044007.4026420-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250728044007.4026420-1-Penny.Zheng@amd.com>

On Mon, Jul 28, 2025 at 12:40:07PM +0800, Penny Zheng wrote:
> Display option, like vnc, sdl, etc, will be checked against in latest QEMU
> whether it is compatile with opengl context. And vnc is incompatible with GL
> context.
> Now, when running hvm domain with gl context on, such as
> "device_model_args_hvm = ["-display", "sdl,gl=on"]", we will fail with
> the error of "qemu-system-i386: -vnc 127.0.0.1:0,to=99: Display vnc is
> incompatible with the GL context", as vnc is set enabled on default
> for HVM domain.
> 
> We shall move "opengl" option out of specifc sdl display, to make it

Unfurtunatly, we can't remove field from a struct in the public API of
libxl. You'll find some explanation about the "libxl API compatibility"
in "libxl.h". It's not well explain but "libxl_types.idl" is part of the
public API.

> generic. Then when users explicitly set "opengl = 1", default values for
> vnc shall be changed to disabled and libxl__dm_vnc() needs to return NULL
> indicating vnc being disabled.

> If users select both vnc and opengl in xl configuration, creation
> will fail and error out incompatible info.
> To keep consistency, we also make "opengl" generic for vfb[] options
> 
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>

This patch description is a bit confusing to read to me. Right now, there's no
mention of "opengl" in the docs, or in `man xl.cfg`, even if "opengl=1"
seems to be a thing for `xl`.

In libxl code, it seems "opengl" is only an option for the PV display
interface, or VFB. So what I'm guessing is you want to add support to
HVM guest to have the opengl option working.

The patch description mention "-display sdl,gl=on", yet the patch itself
doesn't modify "-display sdl" to enable the gl context. Why?

The xl.cfg man page isn't forthcoming about it but the use of
"device_model_args*" is mainly useful for debugging, to allow to add
extra option without having to change libxl. If an option added there is
incompatible with the command line generated by libxl, then it would be
better to teach libxl to generate that option.


> diff --git a/tools/xl/xl_parse.c b/tools/xl/xl_parse.c
> index 28cdbf07c2..9e9adcec77 100644
> --- a/tools/xl/xl_parse.c
> +++ b/tools/xl/xl_parse.c
> @@ -2791,14 +2790,16 @@ skip_usbdev:
>  
>  #undef parse_extra_args
>  
> +    if (!xlu_cfg_get_long (config, "vnc", &l, 0))
> +        vnc_enabled = l;
> +    xlu_cfg_get_defbool(config, "opengl", &b_info->u.hvm.opengl, 0);
> +    if (vnc_enabled && libxl_defbool_val(b_info->u.hvm.opengl)) {
> +        fprintf(stderr, "vnc is incompatible with opengl\n");
> +        exit(1);

This sort of incompatibility need to at least live in libxl
(tools/libs/light). `xl` is only one of several users of `libxl`.


Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 14:18:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 14:18:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090211.1447548 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upSbI-00048N-Jr; Fri, 22 Aug 2025 14:18:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090211.1447548; Fri, 22 Aug 2025 14:18:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upSbI-00048G-Gt; Fri, 22 Aug 2025 14:18:40 +0000
Received: by outflank-mailman (input) for mailman id 1090211;
 Fri, 22 Aug 2025 14:18:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kLgn=3C=kernel.org=pr-tracker-bot@srs-se1.protection.inumbo.net>)
 id 1upSbH-00048A-QR
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 14:18:39 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id deccebfc-7f62-11f0-b898-0df219b8e170;
 Fri, 22 Aug 2025 16:18:27 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 24B9D60206;
 Fri, 22 Aug 2025 14:18:26 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id CD717C4CEED;
 Fri, 22 Aug 2025 14:18:25 +0000 (UTC)
Received: from [10.30.226.235] (localhost [IPv6:::1])
 by aws-us-west-2-korg-oddjob-rhel9-1.codeaurora.org (Postfix) with ESMTP id
 EB8FB383BF6A; Fri, 22 Aug 2025 14:18:35 +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>
X-Inumbo-ID: deccebfc-7f62-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755872305;
	bh=51H1/jHD1FhvKptbLUJ+brGLjZRcIz43JeCgl1rlEeQ=;
	h=Subject:From:In-Reply-To:References:Date:To:Cc:From;
	b=ExVPncOwhxOl3C8OmTjywTbB9OyfoO3Zx0auZcR7jFgIKSpWZMaLpzhNqKG+DX7q/
	 +KRJ70Oo2dcE0fwzlfDepei8m+IUtdBcJf+LeXfhZOEA6LmmDTP0PaG/JfoSGukZfe
	 IWAQyBN6oyhaeFqoCPYKXiRwQMpFTDPZ3TUUgxn/PGtOGf1CTi080ZiCxvOetY8z8H
	 u3lCxOvH1BR9e17s5/PqeDUcCJOFJnuWS09aTo4xoDRBjehe+SiQa9xWHTxyOuz7jf
	 +Q1hXpkMYv08Hf1HHHTFupDA6Mrbp8h9hTrgC6oEpOck4lAniDLwzDqt2459plbHeF
	 qyX6Pu+02S2ig==
Subject: Re: [GIT PULL] xen: branch for v6.17-rc3
From: pr-tracker-bot@kernel.org
In-Reply-To: <20250822053120.31771-1-jgross@suse.com>
References: <20250822053120.31771-1-jgross@suse.com>
X-PR-Tracked-List-Id: <linux-kernel.vger.kernel.org>
X-PR-Tracked-Message-Id: <20250822053120.31771-1-jgross@suse.com>
X-PR-Tracked-Remote: git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-6.17-rc3-tag
X-PR-Tracked-Commit-Id: efdaa61d73a1deb066ccc3b4d56257cc63ab5be9
X-PR-Merge-Tree: torvalds/linux.git
X-PR-Merge-Refname: refs/heads/master
X-PR-Merge-Commit-Id: b3d80535e213ad6584577b0f20d9d49ccf233206
Message-Id: <175587231445.1847242.18002459943633296858.pr-tracker-bot@kernel.org>
Date: Fri, 22 Aug 2025 14:18:34 +0000
To: Juergen Gross <jgross@suse.com>
Cc: torvalds@linux-foundation.org, linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org, sstabellini@kernel.org

The pull request you sent on Fri, 22 Aug 2025 07:31:20 +0200:

> git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-6.17-rc3-tag

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/b3d80535e213ad6584577b0f20d9d49ccf233206

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 14:39:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 14:39:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090221.1447559 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upSve-0006yj-87; Fri, 22 Aug 2025 14:39:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090221.1447559; Fri, 22 Aug 2025 14:39:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upSve-0006yc-4m; Fri, 22 Aug 2025 14:39:42 +0000
Received: by outflank-mailman (input) for mailman id 1090221;
 Fri, 22 Aug 2025 14:39:40 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RLTp=3C=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1upSvc-0006yQ-Bl
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 14:39:40 +0000
Received: from fhigh-b3-smtp.messagingengine.com
 (fhigh-b3-smtp.messagingengine.com [202.12.124.154])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d3fdc7a4-7f65-11f0-a32b-13f23c93f187;
 Fri, 22 Aug 2025 16:39:38 +0200 (CEST)
Received: from phl-compute-11.internal (phl-compute-11.internal [10.202.2.51])
 by mailfhigh.stl.internal (Postfix) with ESMTP id B8F7A7A0257;
 Fri, 22 Aug 2025 10:39:36 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-11.internal (MEProxy); Fri, 22 Aug 2025 10:39:36 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 22 Aug 2025 10:39:35 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d3fdc7a4-7f65-11f0-a32b-13f23c93f187
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:message-id:mime-version:reply-to
	:subject:subject:to:to; s=fm3; t=1755873576; x=1755959976; bh=kd
	Xg7r5TeKLnxqQDTga7nMcsb3wgYffRcJfOgxqZuHI=; b=l0pzjSbnIg83PHap8/
	mUVFTGIpapYWMWdN2qdEzlsAoHrnNErXGYjwQsW6qEgekUTuNL9P6z5qiZuXYiac
	bAFKO1XRny7H4d5qx20XGkaFnLF19ljru/QliFSRMwHctnuFU3a6LpxhbYcbR7HG
	s6IbxIY1jAG6CH7YnAkMIW2qErkMPHA4FD71FmIhna7kB3YyYNr7yPq1en3x3yMv
	HgvE06KNA9U5KFtaewPdcEKUSd1gnXNlF8bwiCWzQo51wFq8wxKroZczCf3NmAnd
	OmQRWIF4iusgiFzvLfKvWgqQWUAT0cZCKoZsim2RkDYQc8EFauGFYlQDgv9cJV0E
	1OCA==
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: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=1755873576; x=
	1755959976; bh=kdXg7r5TeKLnxqQDTga7nMcsb3wgYffRcJfOgxqZuHI=; b=f
	oBKvsahrK3g1+hNcAuJdGgBv/UgMyY0j3YhG3foxxRf/C0G5IsDaGd1C2YVr8PpR
	fYqN3AqP+hoVMbI6gY+2ge0TjmFN5YjxOElNANyASjNIw3hjPLxbBZhATCOJ0nYA
	aUz9ccDaZQdfAr6pjIvcoslxqQp+BCaQaQnOJ4ngTpJOQDirykevE8hFKxVQEa3H
	GnxP130X1T3/ii66nqki7umD/8TlVVEV5iO+8svp35zvwORZ8cZG9pe00EQIo08G
	08M5eRXoeT7KGya/KRurOLY0b/FP4aoB/lY3LIwFDZQ5AMfk3Up+nJZlr59Sn7Ux
	EO9VG1442zcMzPHYBVeNQ==
X-ME-Sender: <xms:KIGoaCZ7wm0p5lUeVvTeAqL4t2r5p0TWOJ_Jp_6_1mCFKPyuKda2zA>
    <xme:KIGoaA4mjZSqEL3vtGZvgphT6Mmec0hSafziNLUl8vy8Ftgy3AK2LxPSuLE4MwbEv
    dli-RQOjgYB7A>
X-ME-Received: <xmr:KIGoaDby0s6SBszHiR0BFLnFfFXaoRVJzkxw5iYuHfXS3DgJdASCWePeeUcofdF6GttC95tlFeIKf_2dVrdHiSr8-nSw8760B8c>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgdduieegtddvucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkgggtugesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcuofgr
    rhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvihhsih
    gslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepudfggfeileeu
    ueektdfhffelvdfhjeeffeehueeikefhleduleejjeelgeejudffnecuvehluhhsthgvrh
    fuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehinhhv
    ihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohephedpmhhoug
    gvpehsmhhtphhouhhtpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigv
    nhhprhhojhgvtghtrdhorhhgpdhrtghpthhtohepjhhgrhhoshhssehsuhhsvgdrtghomh
    dprhgtphhtthhopehsshhtrggsvghllhhinhhisehkvghrnhgvlhdrohhrghdprhgtphht
    thhopeholhgvkhhsrghnughrpghthihshhgthhgvnhhkohesvghprghmrdgtohhmpdhrtg
    hpthhtohepsghorhhishdrohhsthhrohhvshhkhiesohhrrggtlhgvrdgtohhm
X-ME-Proxy: <xmx:KIGoaPhhS-iFbnvewVDdWGGgpzwlPuSWLwM0Uk5XhvQkmbJ7iYLsGg>
    <xmx:KIGoaE_guQZFKaIodMmI2oYuN8lIHV4-E83GBj_lAYnI-BsoBkzX3w>
    <xmx:KIGoaKrDuH2OoXPp2jYdrSU4MMSWcIvP-AChxOLUz3UWKS63vDqt7A>
    <xmx:KIGoaMVMn0v_sFZYb2Oq1sXi6D1ydw7qJxKyOYaF8piW9ZO4gDqp7w>
    <xmx:KIGoaFN_oIjEvQTwJdi-WMTvpmgxDZcI_vK8JF_irBi5-lrk7XPAWG6U>
Feedback-ID: i1568416f:Fastmail
Date: Fri, 22 Aug 2025 16:39:33 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel <xen-devel@lists.xenproject.org>
Cc: Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>
Subject: domU suspend issue - freeze processes failed - Linux 6.16
Message-ID: <aKiBJeqsYx_4Top5@mail-itl>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="7NZxyHlq/zTlJ7mI"
Content-Disposition: inline


--7NZxyHlq/zTlJ7mI
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Fri, 22 Aug 2025 16:39:33 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel <xen-devel@lists.xenproject.org>
Cc: Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>
Subject: domU suspend issue - freeze processes failed - Linux 6.16

Hi,

When suspending domU I get the following issue:

    Freezing user space processes
    Freezing user space processes failed after 20.004 seconds (1 tasks refu=
sing to freeze, wq_busy=3D0):
    task:xl              state:D stack:0     pid:466   tgid:466   ppid:1   =
   task_flags:0x400040 flags:0x00004006
    Call Trace:
     <TASK>
     __schedule+0x2f3/0x780
     schedule+0x27/0x80
     schedule_preempt_disabled+0x15/0x30
     __mutex_lock.constprop.0+0x49f/0x880
     unregister_xenbus_watch+0x216/0x230
     xenbus_write_watch+0xb9/0x220
     xenbus_file_write+0x131/0x1b0
     vfs_writev+0x26c/0x3d0
     ? do_writev+0xeb/0x110
     do_writev+0xeb/0x110
     do_syscall_64+0x84/0x2c0
     ? do_syscall_64+0x200/0x2c0
     ? generic_handle_irq+0x3f/0x60
     ? syscall_exit_work+0x108/0x140
     ? do_syscall_64+0x200/0x2c0
     ? __irq_exit_rcu+0x4c/0xe0
     entry_SYSCALL_64_after_hwframe+0x76/0x7e
    RIP: 0033:0x79b618138642
    RSP: 002b:00007fff9a192fc8 EFLAGS: 00000246 ORIG_RAX: 0000000000000014
    RAX: ffffffffffffffda RBX: 00000000024fd490 RCX: 000079b618138642
    RDX: 0000000000000003 RSI: 00007fff9a193120 RDI: 0000000000000014
    RBP: 00007fff9a193000 R08: 0000000000000000 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000014
    R13: 00007fff9a193120 R14: 0000000000000003 R15: 0000000000000000
     </TASK>
    OOM killer enabled.
    Restarting tasks: Starting
    Restarting tasks: Done
    xen:manage: do_suspend: freeze processes failed -16

The process in question is `xl devd` daemon. It's a domU serving a
xenvif backend.

I noticed it on 6.16.1, but looking at earlier test logs I see it with
6.16-rc6 already (but interestingly, not 6.16-rc2 yet? feels weird given
seemingly no relevant changes between rc2 and rc6).

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

--7NZxyHlq/zTlJ7mI
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmiogSUACgkQ24/THMrX
1yyBDQf/a5uCBB5JXsHfHfYq0z1m6pUmrF55CQ2lBlOnXJb+FDWAjfUL/1zpQRvM
0vHSZkqcPfm4RykqyPbEgShp7uUNlC9ioByTAZY0Sp+5I1S2n2Fp16QSqAxidQH/
LSx27zN5aShYdGRwd8uD1D+0fowN177q4U+Y0fievDx6EyTi98vPtYoGYxpfIp8b
Pr44Ei2HiudMgZ/aii9Z0Wey5LbttFAklvsMuwpmgAt+8ftwwCuPKalPVSzt0EWr
s+TRtLNzJLs4JwYYiFyax6UxsW2Ca66P4MLQHLL/9MjkF65BxvbuX9qjzZjKH5Ba
k1gnNgfQRo4WfdmEqQ9/WOEZ9xDzAg==
=z1Hm
-----END PGP SIGNATURE-----

--7NZxyHlq/zTlJ7mI--


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 14:39:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 14:39:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090222.1447569 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upSvr-0007Eu-FZ; Fri, 22 Aug 2025 14:39:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090222.1447569; Fri, 22 Aug 2025 14:39: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 1upSvr-0007En-Ch; Fri, 22 Aug 2025 14:39:55 +0000
Received: by outflank-mailman (input) for mailman id 1090222;
 Fri, 22 Aug 2025 14:39:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1jNg=3C=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1upSvp-0007EE-VB
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 14:39:54 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dca22887-7f65-11f0-b898-0df219b8e170;
 Fri, 22 Aug 2025 16:39:52 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by GV1PR03MB10332.eurprd03.prod.outlook.com (2603:10a6:150:160::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Fri, 22 Aug
 2025 14:39:46 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Fri, 22 Aug 2025
 14:39: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>
X-Inumbo-ID: dca22887-7f65-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AhGdWd9ugy6cQz5VsSkHPfD9jg32GWja0KV+AF22vCz2bfsy53ypOCpZN8XKxlyd8GcbCunjgLY/QVnSO+G/nAbvH1mQIA3YaDxRq6v5ji8V8qK2V+laXHGMtgnlwKQGwEAgURhTegqo22J2eEaBWQHo/GCOswjWU2RrJ9iVyyvwn9zM3KAYtpSEBS65/HMpvAnE5QSjnuUza7aKVmVOVt9saEt8rhC4tpaA0PTZ7aZ6wgF9PbtWx9h+0ga52oCIbPPVFs4ORUCAdVD824HaK6KdRKWsbakxbhaOKjV3VBpmcv/fUNQ0Rj+yfn1TOrTU2f8HZKz4G9Slntxl+3A/0g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8dPHhcA+Yib2poo9chr7+GYda73ueVNMQzsWDtnKJ1s=;
 b=tW28yxk4bGcBOoB+ZKitVVlFN4DuTqv8lZ5DJoRBSBVaURE9qEK3iENq6ofx/+LvUJbzDRfEGlA2WHLnzjlXrTywvtng3udJOSxMcK8KcpG9MCM6JwjxrTFRPqBqU/XwBP2ymk12UidMnO2Xl+f3ifaQkcjsZnA7Zdw2mu6IIdVbbmnaywibdyBMxxfRgfI5XEnG+foP83xTjSZgzndvG+CMLHDbZ4c4u26rzw3ciXp+wtVl+5EMaZ0hhzaogC2aHJTmmOUIUS+Fbher8Y6JqwsCgmXw78otxM0V64CSTEa5EtowOvZOjUGvfcUNZrIvW/3qn4VtuqwbWr7lYpf2XQ==
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=8dPHhcA+Yib2poo9chr7+GYda73ueVNMQzsWDtnKJ1s=;
 b=tkE0GEYTG7VZY71rVgUPsJR4dmiMsJnL6iKfnqKP/+J/Xx2yVxwqjluryE6ZaRS95F2hYrclRFNVKSDrB3R8lCIBkRIjj1HIAsgUHfvH8aG1FgAqdfAogrCGCkZnC4mqOZ1cfPD20RPtGeUWdqEl0RcKLIMYr573cWtxNiwa13iI5/akiiBbnawzU6PerDbhV+yZaVeZ/SIscBQKQxuzgt+pS12L1n8Fd9EZRsSjXXf6MQrNm4h8y4r6LLsH3exTdxrmVr9DBynxMdj3ZojDSHdxH1kfxT04ORQKmoQiXC9+IQjNAT/2fL0Q0Di7A+vU5Ur4PAYh0WfNnAxV4QcLBw==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v2 05/10] xen/arm: gicv3: implement handling of GICv3.1
 eSPI
Thread-Topic: [PATCH v2 05/10] xen/arm: gicv3: implement handling of GICv3.1
 eSPI
Thread-Index: AQHcB5d8tjpgMfEXfkClUacVz54EpbRu1gWA
Date: Fri, 22 Aug 2025 14:39:45 +0000
Message-ID: <3fffaa8e-3a4b-45d1-8d09-e0261322a8ab@epam.com>
References:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
 <2491bee7441f13a3c1a01fd77ece1749e7276352.1754568795.git.leonid_komarianskyi@epam.com>
 <878qjcejkv.fsf@epam.com>
In-Reply-To: <878qjcejkv.fsf@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: GV2PR03MB8678:EE_|GV1PR03MB10332:EE_
x-ms-office365-filtering-correlation-id: cebe603c-d9c8-4d73-4130-08dde189bd63
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?MVozUjdGdVJXUHpSOFJhL2k1M3JSditCREZnZ2pobGNIMnJkeHpCS3RRUkd1?=
 =?utf-8?B?WkVMUGtwc1VSdTBsK2ZCS3ViUncrTTRnQVdrVVR6RHVTeE9yeTFrZ0lkRTZR?=
 =?utf-8?B?M0cydWp0L3k4Z0pOUTFxWWU5emRMM1FQSWNxUHIzUmQvZ3VvUmh6LzNlTnlr?=
 =?utf-8?B?SUV4ZEJIQlV4elR2dXp4QTBnaHJ5LzdOaVZ4UHZNTkt5UjdkT29JZnpNWWYw?=
 =?utf-8?B?OGppQlpxQVp1ek40YzRmZXM2cGgxNWhGQkRjNWxqY3E1TGxrbk8wT3hvWUw1?=
 =?utf-8?B?WGhqa2hhSXdNZFJmTG5icUhsZi93RVh2UTBNZ2p5Z2xucmtlblBQSWR4SGdv?=
 =?utf-8?B?bXJWK3hsS2tQMnh6R3loenJoa2lSY3hqazFuRnVUS0I5aUJDbXJiVlpFTHdG?=
 =?utf-8?B?Sk1OaGlORVhqVnBGcUlNaEFxaVNMQlFrY1Z6ODhnTWl4NEYycjk2KytkMkMx?=
 =?utf-8?B?RzZCSGZBOFhDdDJiTlFxUzRhOW8zQmNEN005OUJmb0cxWU1BVXZBRkthSEJt?=
 =?utf-8?B?SGFWK2NTV01RbFFLUGtXZXd1WkhEck5MVnk4Ny9ITWJTenFQdnJtSm5RSGRP?=
 =?utf-8?B?RG1hVTlJY1N6em9KR2NZeE5ydzVKQUZhMjZ2bjRJS3llTVRWNitKMkttdUha?=
 =?utf-8?B?cHRpWFZUdi8vQmxHVXV1bHEzcVE0R0l0TW9VVGNRMUxBR3BnZ042ZzJXVXF3?=
 =?utf-8?B?aldyRCtrT3E4OElnc1ROZHNBaWczMW1qTjUwYy9CREE4aDRmQ1pzQ1V5bVQ5?=
 =?utf-8?B?SEVjMTBVMVRsNVpUMm9CM0d1QkwyMGFBcVRhc3pjWDRqK1A0WFJBTElrMkhV?=
 =?utf-8?B?aGVOazBwV2tJWHh3QXFiMUZpUVlYL0NHUVI3SjRHeitUdEJTbHFGUlk0VVVp?=
 =?utf-8?B?ZktXU1lTTC8yeW1nUkxBUlkvcUxNSmJKZml6TVd5NmI5S2FLcnUvK0p0ajV0?=
 =?utf-8?B?azg1VnB6NjJVOWszT0lUeDg4TitCY3kxOWczMTZLYUFLL0NqZHo3VVB3RTdm?=
 =?utf-8?B?bjVTeVU3dzI4QVdOMzNBQWIzYTMwNWlWbEt1MkNzZUpZQks2YUJZOXVjU2Z2?=
 =?utf-8?B?WXRVVDZiMGhESlYrRGoxVzRuSTVuV3ZNTVFncFZ5OHRSV1VLS3d6K3Mvcldn?=
 =?utf-8?B?UklWV0ladVZlMkV3a3R5S0JBWkdrUk1sOXZoRnE4WHA1bTF6RFJwVzBMaVE2?=
 =?utf-8?B?d3MyRkc1NExtZjhtU0dXUEhVQ21tekorTUx3blZSb2YxWEhCTGNpaWtvNFM3?=
 =?utf-8?B?MkJHbjR6OUhLMVo2WlBJc0ZoYWxQNTRNTG1nanA4SlpFVWVTUkRHaXNYNjZR?=
 =?utf-8?B?a243czFLQ2JPckZSdEtHWGRsUkNMOEJjWUdCeXd2YXpYalNycXBSeUVKcHJW?=
 =?utf-8?B?ajJsSjU1b1hFWDErR2IzNmRaTE9Dc1FPOXREc3EyNXJ4NE51ZzRHVW9aNzhl?=
 =?utf-8?B?UzczZGI3UEx6MUt1aWwyR1A5OVlHZFFhU3JhTko2cUtFSCtFdHdFeHN0c25T?=
 =?utf-8?B?MnE5VHA2bXRHRjYyUkQ0MjdKQUNWblcyT2VIZHVCNzMxeTVKWkp4TkNCYVV1?=
 =?utf-8?B?bTNTQU81WnlQM202UUh3N25YWjkwWTVmMWIxa3ZvUEY3M1hDeXFMejBPbHVW?=
 =?utf-8?B?M2lwYjFCVVdpaWlXbWtHZUZpVlMzVHl4UTRFRXMyRWIwM3BVSzhKcVpvRDFh?=
 =?utf-8?B?bExoRUY0cWh5NGR2NXg2Z0Vrcmk4UHVDQ1NSaVF4TkJybUVIMGE1d0FkZW5G?=
 =?utf-8?B?aGdpR3ZUWnZndlRCaG1LTDRtcHVBazY2UUk3NHFaYkliYnA2TXU4S1lWOG54?=
 =?utf-8?B?RmxyTGFWQk9USjlCUmVkSDFMUFFuejlGcmFqWnk2NFBtYWVlOWJuZUh0bk03?=
 =?utf-8?B?eks3RFQ4NXpJL0czaDVmT2h4Ry9rdXhpTlo3ODJxVndjRG96YUlHQXYvRFNU?=
 =?utf-8?B?ZzlnT1hYN3dlNmFoYmZSREExTDZvVDNySUI3c1hnMHNhTWU2cG9lMkJKWFBq?=
 =?utf-8?B?aVJYZnZ3TVN3PT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?ZFlBY05PUkl2emV4N0ovMWNhai9IR1owQk1PSGNZcXZWd2VQVWVua1JCSnZS?=
 =?utf-8?B?UWxUS2x2T3pQM294b0FXMDIvaTEwSk9zakpVS3pjT0hwWXBra1FPWGorODVs?=
 =?utf-8?B?ZFJBQTB4dXZOdDAxWW9icnpFOUhyMzVXMzlkZDBUVEYwYlNPZkxGVmYzaWdi?=
 =?utf-8?B?K1RVWmk4QytCODFQYStIc2plYVpaTXA5bFNIZ1hWbXFkdTl0emt4RU9Vblpz?=
 =?utf-8?B?aUZqREtBciszczRjNzg1UU1zaEF5QlFKQnlpR3ZPaFN3SE5hcnpxM1RmTGtI?=
 =?utf-8?B?TUZrc2VpYzkxUWhiYnJuWVNWU2MzQllEc3hQUG5vbUJSQWNhWnQzRkEvb0ZD?=
 =?utf-8?B?VEIyZDRmTTlxd2FTNllvQmRnSC9KeC9RbGc1OXdTQXoyL1dWZXdNdnRaQy8w?=
 =?utf-8?B?Wm9FV2VzSEswVnpNaTRXZlZqU0hOejdwa3RoTFRiT1l2SFY3bjdCMEpUdUph?=
 =?utf-8?B?L082ZFR4NkxmRHZweGpKL2FKQnNlU1NEc2dPZ2ZxRnFFTng1YjFOKzdteUw0?=
 =?utf-8?B?Q3NNZEp0amFsbzRZY3hOYlQwL0I3KzJrZFdxRmZWUStwYStERTFYSnBGWW05?=
 =?utf-8?B?elNNV2lsZFVGQUp5MGlZNDdhMGgvUmtENmcrUmNOaG5DdmNiaERJaDVEeGZP?=
 =?utf-8?B?eXpjNTY1Q2lWUEp6VVFkQVpYMGprSjdKRUdRbUVxUzlEQ01Cdk10MWxkZkpE?=
 =?utf-8?B?blBRU2crMzQ1eXVhQi9DcWRWUTdIVFkxL28vZmNGb2xlRUN4VFFvV1R5Ly8w?=
 =?utf-8?B?VmxKWlltWEVGMUZDSEZiUy9ObkkramM5cGtNUGwzdit6d1p6cEg0RzdBb0Vp?=
 =?utf-8?B?MktOV2NpcEhPbDdpTGdvQStsbGdSRkFxSkFIUkpPeEVEWVU0c3J0aUlCWk93?=
 =?utf-8?B?UllDd2l1TU1aMDIwU0EwSU5JMUxjUnJUdG40eHlyQUdrdjdpODhCTm1hdWhx?=
 =?utf-8?B?MWc1Zi95L1B4OTB3bFhhTEJ1M0xISyttRTA5dkpKS3FKWEMrdHovUDRhbE5o?=
 =?utf-8?B?aExxMDVqOVF2Rmd6UmlBdkI4YXJjQVNZbVBsRGNBSWljWVZnbUdVeG9NR2pU?=
 =?utf-8?B?WlJrVlpJUGltWlgxbjdQcDR4Qkx2d2kxS1R5dXRMQW9IK1RGNlRQQ0taa0Zm?=
 =?utf-8?B?N291NUlmbHRJL2FZcmNCdVhwbGIvM05FNFh3SG9KcmdYTzRodGZBR1NtMUd5?=
 =?utf-8?B?NVdhUE82TW8xQkJOL3RYM2RKQ2ZQQWFMTTl4dWFXOVpNTzBWZ3BNVGNhRXd6?=
 =?utf-8?B?VUhkekgzZkJPZ2VJTWJKeWwwbFNNQTVmUHJJZVBHM3NBRmgwT0dsR05sUjRV?=
 =?utf-8?B?eHRqTmM3dkxYbDRLWTZzbXNTVERZVnJDclhpUjZuUHhyWmRSTGNHOWpKendl?=
 =?utf-8?B?enVPYjQ1UEVuMitHUHhnTXFtaXNMVnJGY3ZkUVo0SXJUcEZmZHA0Y05pYkFa?=
 =?utf-8?B?MjV1NzhDK1hHTi9Ja09wSjdqZmRiblhNdXhSdDdFeXlIMjFDeWdxaExERUhu?=
 =?utf-8?B?NWpzRW9mOVNzL0sreGIweUR2djB5WnJDV0lzeTZLVFY4TFVqSWxLS0kvN2FU?=
 =?utf-8?B?NmU0NHJ3NXVFZGZJS1dGMW9KK253QU5KNFRWT0F5S3VoRmtaRnIvSTFVVERL?=
 =?utf-8?B?Z3J1U1pSQm00a3ZaUERCT1ZDRG5aa3ZYaFQ2VXd4ZmJicmQwdEhPZmV2SFNZ?=
 =?utf-8?B?QWxzUVh3SENmbXdtTGN4aEJaV1MyTUFoQWVWMXlRRlFEM2dxYzJjZmEveFRq?=
 =?utf-8?B?YkZuWkJBY3FXL3MxSFBzVktCdW5OV3BJNHk1eWh5ZFRqSUtRbXJWREJ6YS8r?=
 =?utf-8?B?OUp3VE1ySmgycE10eE9zSzFzTW1VNVFkS3VqU2lZZExnZGpIajRmeDNHeG81?=
 =?utf-8?B?d2dtNnU5MHl1Ry9KWDRXdTdrdk1FU3NyMnVxK05FcmpiMkoxMW5Wc2hzNG5x?=
 =?utf-8?B?Rm1NY0ZZSzA0dy9CSHdUS1BwUStrMW9RTUJJNVR4S1dadHB5b3R0SVVURks3?=
 =?utf-8?B?YWh3bi9BRlNkbHhmcStHUDdXRVRvdlc0YUNGTXdWY2lQQWdId2szTzFKeXRV?=
 =?utf-8?B?QklvRjl1N3BRSStqT3ZiWi9XOG1UTUp1UURDeE1sRzN2anNuTm4rOWJMZm5Y?=
 =?utf-8?B?RFB4NVY5cnBzZ1dsbW1jTVcxSUoycWJ3WEMydVM5dElhbThyY0lNK1R1b2V0?=
 =?utf-8?Q?g5YPeyjfqTnxJwAbiUmED2g=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <DBBF06C17A1A5E41804AD0A762E920C5@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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: cebe603c-d9c8-4d73-4130-08dde189bd63
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Aug 2025 14:39:46.0022
 (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: XHVJK5zyyHzo1MrLK4JzheE4/WTMe8iIlSsBxMsLoc4ghnP9qIe/Hi95hbyYbD1smS7J7J8vqYWt5/yjVemagqftA7qJM6rBG2lfnYgpAZ0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR03MB10332

SGkgVm9sb2R5bXlyLA0KDQpUaGFuayB5b3UgZm9yIHlvdXIgY2xvc2UgcmV2aWV3Lg0KDQpPbiAy
MS4wOC4yNSAxOToxNiwgVm9sb2R5bXlyIEJhYmNodWsgd3JvdGU6DQo+IA0KPiBIaSwNCj4gDQo+
IExlb25pZCBLb21hcmlhbnNreWkgPExlb25pZF9Lb21hcmlhbnNreWlAZXBhbS5jb20+IHdyaXRl
czoNCj4gDQo+PiBJbnRyb2R1Y2VkIGFwcHJvcHJpYXRlIHJlZ2lzdGVyIGRlZmluaXRpb25zLCBo
ZWxwZXIgbWFjcm9zLA0KPj4gYW5kIGluaXRpYWxpemF0aW9uIG9mIHJlcXVpcmVkIEdJQ3YzLjEg
ZGlzdHJpYnV0b3IgcmVnaXN0ZXJzDQo+PiB0byBzdXBwb3J0IGVTUEkuIFRoaXMgdHlwZSBvZiBp
bnRlcnJ1cHQgaXMgaGFuZGxlZCBpbiB0aGUNCj4+IHNhbWUgd2F5IGFzIHJlZ3VsYXIgU1BJIGlu
dGVycnVwdHMsIHdpdGggdGhlIGZvbGxvd2luZw0KPj4gZGlmZmVyZW5jZXM6DQo+Pg0KPj4gMSkg
ZVNQSXMgY2FuIGhhdmUgdXAgdG8gMTAyNCBpbnRlcnJ1cHRzLCBzdGFydGluZyBmcm9tIHRoZQ0K
Pj4gYmVnaW5uaW5nIG9mIHRoZSByYW5nZSwgd2hlcmVhcyByZWd1bGFyIFNQSXMgdXNlIElOVElE
cyBmcm9tDQo+PiAzMiB0byAxMDE5LCB0b3RhbGluZyA5ODggaW50ZXJydXB0czsNCj4+IDIpIGVT
UElzIHN0YXJ0IGF0IElOVElEIDQwOTYsIG5lY2Vzc2l0YXRpbmcgYWRkaXRpb25hbCBpbnRlcnJ1
cHQNCj4+IGluZGV4IGNvbnZlcnNpb24gZHVyaW5nIHJlZ2lzdGVyIG9wZXJhdGlvbnMuDQo+Pg0K
Pj4gSW4gY2FzZSBpZiBhcHByb3ByaWF0ZSBjb25maWcgaXMgZGlzYWJsZWQsIG9yIEdJQyBIVyBk
b2Vzbid0DQo+PiBzdXBwb3J0IGVTUEksIHRoZSBleGlzdGluZyBmdW5jdGlvbmFsaXR5IHdpbGwg
cmVtYWluIHRoZSBzYW1lLg0KPj4NCj4+IFNpZ25lZC1vZmYtYnk6IExlb25pZCBLb21hcmlhbnNr
eWkgPGxlb25pZF9rb21hcmlhbnNreWlAZXBhbS5jb20+DQo+Pg0KPj4gLS0tDQo+PiBDaGFuZ2Vz
IGluIFYyOg0KPj4gLSBtb3ZlIGdpY19udW1iZXJfZXNwaXMgZnVuY3Rpb24gZnJvbQ0KPj4gICAg
W1BBVENIIDA4LzEwXSB4ZW4vYXJtOiB2Z2ljOiBhZGQgcmVzb3VyY2UgbWFuYWdlbWVudCBmb3Ig
ZXh0ZW5kZWQgU1BJcw0KPj4gICAgdG8gdXNlIGl0IGluIHRoZSBuZXdseSBpbnRyb2R1Y2VkIGdp
Y19pc192YWxpZF9lc3BpDQo+PiAtIGFkZCBnaWNfaXNfdmFsaWRfZXNwaSB3aGljaCBjaGVja3Mg
aWYgSVJRIG51bWJlciBpcyBpbiBzdXBwb3J0ZWQNCj4+ICAgIGJ5IEhXIGVTUEkgcmFuZ2UNCj4+
IC0gdXBkYXRlIGdpY19pc192YWxpZF9pcnEgY29uZGl0aW9ucyB0byBhbGxvdyBvcGVyYXRpb25z
IHdpdGggZVNQSXMNCj4+IC0tLQ0KPj4gICB4ZW4vYXJjaC9hcm0vZ2ljLXYzLmMgICAgICAgICAg
ICAgICAgICB8IDczICsrKysrKysrKysrKysrKysrKysrKysrKysrDQo+PiAgIHhlbi9hcmNoL2Fy
bS9pbmNsdWRlL2FzbS9naWMuaCAgICAgICAgIHwgMTcgKysrKysrDQo+PiAgIHhlbi9hcmNoL2Fy
bS9pbmNsdWRlL2FzbS9naWNfdjNfZGVmcy5oIHwgMzMgKysrKysrKysrKysrDQo+PiAgIDMgZmls
ZXMgY2hhbmdlZCwgMTIzIGluc2VydGlvbnMoKykNCj4+DQo+PiBkaWZmIC0tZ2l0IGEveGVuL2Fy
Y2gvYXJtL2dpYy12My5jIGIveGVuL2FyY2gvYXJtL2dpYy12My5jDQo+PiBpbmRleCA4ZmQ3OGFi
YTQ0Li5hMGU4ZWUxYTFlIDEwMDY0NA0KPj4gLS0tIGEveGVuL2FyY2gvYXJtL2dpYy12My5jDQo+
PiArKysgYi94ZW4vYXJjaC9hcm0vZ2ljLXYzLmMNCj4+IEBAIC00ODUsNiArNDg1LDM2IEBAIHN0
YXRpYyB2b2lkIF9faW9tZW0gKmdldF9hZGRyX2J5X29mZnNldChzdHJ1Y3QgaXJxX2Rlc2MgKmly
cWQsIHUzMiBvZmZzZXQpDQo+PiAgICAgICAgICAgZGVmYXVsdDoNCj4+ICAgICAgICAgICAgICAg
YnJlYWs7DQo+PiAgICAgICAgICAgfQ0KPj4gKyNpZmRlZiBDT05GSUdfR0lDVjNfRVNQSQ0KPj4g
KyAgICBjYXNlIEVTUElfQkFTRV9JTlRJRCAuLi4gRVNQSV9NQVhfSU5USUQ6DQo+PiArICAgIHsN
Cj4+ICsgICAgICAgIHUzMiBpcnFfaW5kZXggPSBFU1BJX0lOVElEMklEWChpcnFkLT5pcnEpOw0K
Pj4gKw0KPj4gKyAgICAgICAgc3dpdGNoICggb2Zmc2V0ICkNCj4+ICsgICAgICAgIHsNCj4+ICsg
ICAgICAgIGNhc2UgR0lDRF9JU0VOQUJMRVI6DQo+PiArICAgICAgICAgICAgcmV0dXJuIChHSUNE
ICsgR0lDRF9JU0VOQUJMRVJuRSArIChpcnFfaW5kZXggLyAzMikgKiA0KTsNCj4+ICsgICAgICAg
IGNhc2UgR0lDRF9JQ0VOQUJMRVI6DQo+PiArICAgICAgICAgICAgcmV0dXJuIChHSUNEICsgR0lD
RF9JQ0VOQUJMRVJuRSArIChpcnFfaW5kZXggLyAzMikgKiA0KTsNCj4+ICsgICAgICAgIGNhc2Ug
R0lDRF9JU1BFTkRSOg0KPj4gKyAgICAgICAgICAgIHJldHVybiAoR0lDRCArIEdJQ0RfSVNQRU5E
Um5FICsgKGlycV9pbmRleCAvIDMyKSAqIDQpOw0KPj4gKyAgICAgICAgY2FzZSBHSUNEX0lDUEVO
RFI6DQo+PiArICAgICAgICAgICAgcmV0dXJuIChHSUNEICsgR0lDRF9JQ1BFTkRSbkUgKyAoaXJx
X2luZGV4IC8gMzIpICogNCk7DQo+PiArICAgICAgICBjYXNlIEdJQ0RfSVNBQ1RJVkVSOg0KPj4g
KyAgICAgICAgICAgIHJldHVybiAoR0lDRCArIEdJQ0RfSVNBQ1RJVkVSbkUgKyAoaXJxX2luZGV4
IC8gMzIpICogNCk7DQo+PiArICAgICAgICBjYXNlIEdJQ0RfSUNBQ1RJVkVSOg0KPj4gKyAgICAg
ICAgICAgIHJldHVybiAoR0lDRCArIEdJQ0RfSUNBQ1RJVkVSbkUgKyAoaXJxX2luZGV4IC8gMzIp
ICogNCk7DQo+PiArICAgICAgICBjYXNlIEdJQ0RfSUNGR1I6DQo+PiArICAgICAgICAgICAgcmV0
dXJuIChHSUNEICsgR0lDRF9JQ0ZHUm5FICsgKGlycV9pbmRleCAvIDE2KSAqIDQpOw0KPj4gKyAg
ICAgICAgY2FzZSBHSUNEX0lST1VURVI6DQo+PiArICAgICAgICAgICAgcmV0dXJuIChHSUNEICsg
R0lDRF9JUk9VVEVSbkUgKyBpcnFfaW5kZXggKiA4KTsNCj4+ICsgICAgICAgIGNhc2UgR0lDRF9J
UFJJT1JJVFlSOg0KPj4gKyAgICAgICAgICAgIHJldHVybiAoR0lDRCArIEdJQ0RfSVBSSU9SSVRZ
Um5FICsgaXJxX2luZGV4KTsNCj4+ICsgICAgICAgIGRlZmF1bHQ6DQo+PiArICAgICAgICAgICAg
YnJlYWs7DQo+PiArICAgICAgICB9DQo+PiArICAgIH0NCj4+ICsjZW5kaWYNCj4+ICAgICAgIGRl
ZmF1bHQ6DQo+PiAgICAgICAgICAgYnJlYWs7DQo+PiAgICAgICB9DQo+PiBAQCAtNjQ1LDYgKzY3
NSw0MCBAQCBzdGF0aWMgdm9pZCBnaWN2M19zZXRfaXJxX3ByaW9yaXR5KHN0cnVjdCBpcnFfZGVz
YyAqZGVzYywNCj4+ICAgICAgIHNwaW5fdW5sb2NrKCZnaWN2My5sb2NrKTsNCj4+ICAgfQ0KPj4g
ICANCj4+ICsjaWZkZWYgQ09ORklHX0dJQ1YzX0VTUEkNCj4+ICt1bnNpZ25lZCBpbnQgZ2ljX251
bWJlcl9lc3Bpcyh2b2lkKQ0KPj4gK3sNCj4+ICsgICAgcmV0dXJuIGdpY19od19vcHMtPmluZm8t
Pm5yX2VzcGk7DQo+PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyB2b2lkIGdpY3YzX2Rpc3RfZXNwaV9j
b21tb25faW5pdCh1aW50MzJfdCB0eXBlKQ0KPj4gK3sNCj4+ICsgICAgdW5zaWduZWQgaW50IGVz
cGlfbnI7DQo+PiArICAgIGludCBpOw0KPj4gKw0KPj4gKyAgICBlc3BpX25yID0gbWluKDEwMjRV
LCBHSUNEX1RZUEVSX0VTUElTX05VTSh0eXBlKSk7DQo+PiArICAgIGdpY3YzX2luZm8ubnJfZXNw
aSA9IGVzcGlfbnI7DQo+PiArICAgIC8qIFRoZSBHSUMgSFcgZG9lc24ndCBzdXBwb3J0IGVTUEks
IHNvIHdlIGNhbiBsZWF2ZSBmcm9tIGhlcmUgKi8NCj4+ICsgICAgaWYgKCBnaWN2M19pbmZvLm5y
X2VzcGkgPT0gMCApDQo+PiArICAgICAgICByZXR1cm47DQo+PiArDQo+PiArICAgIGZvciAoIGkg
PSAwOyBpIDwgZXNwaV9ucjsgaSArPSAxNiApDQo+PiArICAgICAgICB3cml0ZWxfcmVsYXhlZCgw
LCBHSUNEICsgR0lDRF9JQ0ZHUm5FICsgKGkgLyAxNikgKiA0KTsNCj4+ICsNCj4+ICsgICAgZm9y
ICggaSA9IDA7IGkgPCBlc3BpX25yOyBpICs9IDQgKQ0KPj4gKyAgICAgICAgd3JpdGVsX3JlbGF4
ZWQoR0lDX1BSSV9JUlFfQUxMLCBHSUNEICsgR0lDRF9JUFJJT1JJVFlSbkUgKyAoaSAvIDQpICog
NCk7DQo+PiArDQo+PiArICAgIGZvciAoIGkgPSAwOyBpIDwgZXNwaV9ucjsgaSArPSAzMiApDQo+
PiArICAgIHsNCj4+ICsgICAgICAgIHdyaXRlbF9yZWxheGVkKDB4ZmZmZmZmZmZVLCBHSUNEICsg
R0lDRF9JQ0VOQUJMRVJuRSArIChpIC8gMzIpICogNCk7DQo+IA0KPiBJcyB0aGVyZSBhcmUgcGFy
dGljdWxhciByZWFzb24gd2h5IHlvdSB1c2UgR0VOTUFTSygzMSwwKSBiZWxvdywgYnV0DQo+IG9w
ZW4tY29kZWQgMHhmZmZmZmZmZiBoZXJlPw0KPiANCj4+ICsgICAgICAgIHdyaXRlbF9yZWxheGVk
KDB4ZmZmZmZmZmZVLCBHSUNEICsgR0lDRF9JQ0FDVElWRVJuRSArIChpIC8gMzIpICogNCk7DQo+
IA0KPiAuLi4gYW5kIGhlcmU/DQo+IA0KDQpObywgdGhlcmUgaXMgbm8gcGFydGljdWxhciByZWFz
b24gdG8gdXNlIG9wZW4tY29kZSBoZXJlLiBJdCBpcyBqdXN0IGEgDQpjb3B5LXBhc3RlIGZyb20g
dGhlIGNvZGUgZm9yIHJlZ3VsYXIgU1BJIGluaXRpYWxpemF0aW9uLiBUaHVzLCBJIGFncmVlIA0K
aXQgaXMgbXVjaCBiZXR0ZXIgdG8gdXNlIEdFTk1BU0soMzEsIDApLiBJIHdpbGwgY2hhbmdlIHRo
aXMgaW4gVjMuDQoNCj4+ICsgICAgfQ0KPj4gKw0KPj4gKyAgICBmb3IgKCBpID0gMDsgaSA8IGVz
cGlfbnI7IGkgKz0gMzIgKQ0KPj4gKyAgICAgICAgd3JpdGVsX3JlbGF4ZWQoR0VOTUFTSygzMSwg
MCksIEdJQ0QgKyBHSUNEX0lHUk9VUFJuRSArIChpIC8gMzIpICogNCk7DQo+PiArfQ0KPj4gKyNl
bmRpZg0KPj4gKw0KPj4gICBzdGF0aWMgdm9pZCBfX2luaXQgZ2ljdjNfZGlzdF9pbml0KHZvaWQp
DQo+PiAgIHsNCj4+ICAgICAgIHVpbnQzMl90IHR5cGU7DQo+PiBAQCAtNjkwLDYgKzc1NCwxMCBA
QCBzdGF0aWMgdm9pZCBfX2luaXQgZ2ljdjNfZGlzdF9pbml0KHZvaWQpDQo+PiAgICAgICBmb3Ig
KCBpID0gTlJfR0lDX0xPQ0FMX0lSUVM7IGkgPCBucl9saW5lczsgaSArPSAzMiApDQo+PiAgICAg
ICAgICAgd3JpdGVsX3JlbGF4ZWQoR0VOTUFTSygzMSwgMCksIEdJQ0QgKyBHSUNEX0lHUk9VUFIg
KyAoaSAvIDMyKSAqIDQpOw0KPj4gICANCj4+ICsjaWZkZWYgQ09ORklHX0dJQ1YzX0VTUEkNCj4+
ICsgICAgZ2ljdjNfZGlzdF9lc3BpX2NvbW1vbl9pbml0KHR5cGUpOw0KPj4gKyNlbmRpZg0KPj4g
Kw0KPj4gICAgICAgZ2ljdjNfZGlzdF93YWl0X2Zvcl9yd3AoKTsNCj4+ICAgDQo+PiAgICAgICAv
KiBUdXJuIG9uIHRoZSBkaXN0cmlidXRvciAqLw0KPj4gQEAgLTcwMyw2ICs3NzEsMTEgQEAgc3Rh
dGljIHZvaWQgX19pbml0IGdpY3YzX2Rpc3RfaW5pdCh2b2lkKQ0KPj4gICANCj4+ICAgICAgIGZv
ciAoIGkgPSBOUl9HSUNfTE9DQUxfSVJRUzsgaSA8IG5yX2xpbmVzOyBpKysgKQ0KPj4gICAgICAg
ICAgIHdyaXRlcV9yZWxheGVkX25vbl9hdG9taWMoYWZmaW5pdHksIEdJQ0QgKyBHSUNEX0lST1VU
RVIgKyBpICogOCk7DQo+PiArDQo+PiArI2lmZGVmIENPTkZJR19HSUNWM19FU1BJDQo+PiArICAg
IGZvciAoIGkgPSAwOyBpIDwgZ2ljdjNfaW5mby5ucl9lc3BpOyBpKysgKQ0KPj4gKyAgICAgICAg
d3JpdGVxX3JlbGF4ZWRfbm9uX2F0b21pYyhhZmZpbml0eSwgR0lDRCArIEdJQ0RfSVJPVVRFUm5F
ICsgaSAqIDgpOw0KPj4gKyNlbmRpZg0KPj4gICB9DQo+PiAgIA0KPj4gICBzdGF0aWMgaW50IGdp
Y3YzX2VuYWJsZV9yZWRpc3Qodm9pZCkNCj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vaW5j
bHVkZS9hc20vZ2ljLmggYi94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vZ2ljLmgNCj4+IGluZGV4
IGFjMGI3Yjc4M2UuLjJmNTcwYWJmNzAgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vYXJjaC9hcm0vaW5j
bHVkZS9hc20vZ2ljLmgNCj4+ICsrKyBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9naWMuaA0K
Pj4gQEAgLTMwNiw4ICszMDYsMjEgQEAgZXh0ZXJuIHZvaWQgZ2ljX2R1bXBfdmdpY19pbmZvKHN0
cnVjdCB2Y3B1ICp2KTsNCj4+ICAgDQo+PiAgIC8qIE51bWJlciBvZiBpbnRlcnJ1cHQgbGluZXMg
Ki8NCj4+ICAgZXh0ZXJuIHVuc2lnbmVkIGludCBnaWNfbnVtYmVyX2xpbmVzKHZvaWQpOw0KPj4g
KyNpZmRlZiBDT05GSUdfR0lDVjNfRVNQSQ0KPj4gK2V4dGVybiB1bnNpZ25lZCBpbnQgZ2ljX251
bWJlcl9lc3Bpcyh2b2lkKTsNCj4+ICsNCj4+ICtzdGF0aWMgaW5saW5lIGJvb2wgZ2ljX2lzX3Zh
bGlkX2VzcGkodW5zaWduZWQgaW50IGlycSkNCj4+ICt7DQo+PiArICAgIHJldHVybiAoaXJxID49
IEVTUElfQkFTRV9JTlRJRCAmJiBpcnEgPCBFU1BJX0lEWDJJTlRJRChnaWNfbnVtYmVyX2VzcGlz
KCkpKTsNCj4+ICt9DQo+PiArI2VuZGlmDQo+PiArDQo+PiAgIHN0YXRpYyBpbmxpbmUgYm9vbCBn
aWNfaXNfdmFsaWRfaXJxKHVuc2lnbmVkIGludCBpcnEpDQo+PiAgIHsNCj4+ICsjaWZkZWYgQ09O
RklHX0dJQ1YzX0VTUEkNCj4+ICsgICAgaWYgKCBnaWNfaXNfdmFsaWRfZXNwaShpcnEpICkNCj4+
ICsgICAgICAgIHJldHVybiB0cnVlOw0KPj4gKyNlbmRpZg0KPj4gICAgICAgcmV0dXJuIGlycSA8
IGdpY19udW1iZXJfbGluZXMoKTsNCj4+ICAgfQ0KPj4gICANCj4+IEBAIC0zMjUsNiArMzM4LDEw
IEBAIHN0cnVjdCBnaWNfaW5mbyB7DQo+PiAgICAgICBlbnVtIGdpY192ZXJzaW9uIGh3X3ZlcnNp
b247DQo+PiAgICAgICAvKiBOdW1iZXIgb2YgR0lDIGxpbmVzIHN1cHBvcnRlZCAqLw0KPj4gICAg
ICAgdW5zaWduZWQgaW50IG5yX2xpbmVzOw0KPj4gKyNpZmRlZiBDT05GSUdfR0lDVjNfRVNQSQ0K
Pj4gKyAgICAvKiBOdW1iZXIgb2YgR0lDIGVTUEkgc3VwcG9ydGVkICovDQo+PiArICAgIHVuc2ln
bmVkIGludCBucl9lc3BpOw0KPj4gKyNlbmRpZg0KPj4gICAgICAgLyogTnVtYmVyIG9mIExSIHJl
Z2lzdGVycyAqLw0KPj4gICAgICAgdWludDhfdCBucl9scnM7DQo+PiAgICAgICAvKiBNYWludGVu
YW5jZSBpcnEgbnVtYmVyICovDQo+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2luY2x1ZGUv
YXNtL2dpY192M19kZWZzLmggYi94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vZ2ljX3YzX2RlZnMu
aA0KPj4gaW5kZXggMmFmMDkzZTc3NC4uN2Y3NjliMzhlMyAxMDA2NDQNCj4+IC0tLSBhL3hlbi9h
cmNoL2FybS9pbmNsdWRlL2FzbS9naWNfdjNfZGVmcy5oDQo+PiArKysgYi94ZW4vYXJjaC9hcm0v
aW5jbHVkZS9hc20vZ2ljX3YzX2RlZnMuaA0KPj4gQEAgLTM3LDYgKzM3LDM5IEBADQo+PiAgICNk
ZWZpbmUgR0lDRF9JUk9VVEVSMTAxOSAgICAgICAgICAgICAoMHg3RkQ4KQ0KPj4gICAjZGVmaW5l
IEdJQ0RfUElEUjIgICAgICAgICAgICAgICAgICAgKDB4RkZFOCkNCj4+ICAgDQo+PiArI2lmZGVm
IENPTkZJR19HSUNWM19FU1BJDQo+PiArLyogQWRkaXRpb25hbCByZWdpc3RlcnMgZm9yIEdJQ3Yz
LjEgKi8NCj4+ICsjZGVmaW5lIEdJQ0RfSUdST1VQUm5FICAgICAgICAgICAgICAgKDB4MTAwMCkN
Cj4+ICsjZGVmaW5lIEdJQ0RfSUdST1VQUm5FTiAgICAgICAgICAgICAgKDB4MTA3QykNCj4+ICsj
ZGVmaW5lIEdJQ0RfSVNFTkFCTEVSbkUgICAgICAgICAgICAgKDB4MTIwMCkNCj4+ICsjZGVmaW5l
IEdJQ0RfSVNFTkFCTEVSbkVOICAgICAgICAgICAgKDB4MTI3QykNCj4+ICsjZGVmaW5lIEdJQ0Rf
SUNFTkFCTEVSbkUgICAgICAgICAgICAgKDB4MTQwMCkNCj4+ICsjZGVmaW5lIEdJQ0RfSUNFTkFC
TEVSbkVOICAgICAgICAgICAgKDB4MTQ3QykNCj4+ICsjZGVmaW5lIEdJQ0RfSVNQRU5EUm5FICAg
ICAgICAgICAgICAgKDB4MTYwMCkNCj4+ICsjZGVmaW5lIEdJQ0RfSVNQRU5EUm5FTiAgICAgICAg
ICAgICAgKDB4MTY3QykNCj4+ICsjZGVmaW5lIEdJQ0RfSUNQRU5EUm5FICAgICAgICAgICAgICAg
KDB4MTgwMCkNCj4+ICsjZGVmaW5lIEdJQ0RfSUNQRU5EUm5FTiAgICAgICAgICAgICAgKDB4MTg3
QykNCj4+ICsjZGVmaW5lIEdJQ0RfSVNBQ1RJVkVSbkUgICAgICAgICAgICAgKDB4MUEwMCkNCj4+
ICsjZGVmaW5lIEdJQ0RfSVNBQ1RJVkVSbkVOICAgICAgICAgICAgKDB4MUE3QykNCj4+ICsjZGVm
aW5lIEdJQ0RfSUNBQ1RJVkVSbkUgICAgICAgICAgICAgKDB4MUMwMCkNCj4+ICsjZGVmaW5lIEdJ
Q0RfSUNBQ1RJVkVSbkVOICAgICAgICAgICAgKDB4MUM3QykNCj4+ICsjZGVmaW5lIEdJQ0RfSVBS
SU9SSVRZUm5FICAgICAgICAgICAgKDB4MjAwMCkNCj4+ICsjZGVmaW5lIEdJQ0RfSVBSSU9SSVRZ
Um5FTiAgICAgICAgICAgKDB4MjNGQykNCj4+ICsjZGVmaW5lIEdJQ0RfSUNGR1JuRSAgICAgICAg
ICAgICAgICAgKDB4MzAwMCkNCj4+ICsjZGVmaW5lIEdJQ0RfSUNGR1JuRU4gICAgICAgICAgICAg
ICAgKDB4MzBGQykNCj4+ICsjZGVmaW5lIEdJQ0RfSVJPVVRFUm5FICAgICAgICAgICAgICAgKDB4
ODAwMCkNCj4+ICsjZGVmaW5lIEdJQ0RfSVJPVVRFUm5FTiAgICAgICAgICAgICAgKDB4OUZGQykN
Cj4+ICsNCj4+ICsjZGVmaW5lIEdJQ0RfVFlQRVJfRVNQSV9TSElGVCAgICAgICAgOA0KPj4gKyNk
ZWZpbmUgR0lDRF9UWVBFUl9FU1BJX1JBTkdFX1NISUZUICAyNw0KPj4gKyNkZWZpbmUgR0lDRF9U
WVBFUl9FU1BJX1JBTkdFX01BU0sgICAoMHgxRikNCj4+ICsjZGVmaW5lIEdJQ0RfVFlQRVJfRVNQ
SSAgICAgICAgICAgICAgKDFVIDw8IEdJQ0RfVFlQRVJfRVNQSV9TSElGVCkNCj4+ICsjZGVmaW5l
IEdJQ0RfVFlQRVJfRVNQSV9SQU5HRSh0eXBlcikgKCgoKHR5cGVyKSAmIEdJQ0RfVFlQRVJfRVNQ
SV9SQU5HRV9NQVNLKSArIDEpICogMzIpDQo+IA0KPiBJc24ndCB0aGlzIGxpbmUgYSBiaXQgbG9u
Zz8NCj4gDQoNClllcywgSSB3aWxsIHJldmlzZSBhbGwgcGF0Y2hlcyBpbiB0aGUgc2VyaWVzIHdp
dGggc3VjaCBsb25nIGxpbmVzIGFuZCANCmZpeCB0aGVtIGluIFYzLg0KDQo+PiArI2RlZmluZSBH
SUNEX1RZUEVSX0VTUElTX05VTSh0eXBlcikgICAgXA0KPj4gKyAgICAgICAgKCgodHlwZXIpICYg
R0lDRF9UWVBFUl9FU1BJKSA/IFwNCj4+ICsgICAgICAgIEdJQ0RfVFlQRVJfRVNQSV9SQU5HRSgo
dHlwZXIpID4+IEdJQ0RfVFlQRVJfRVNQSV9SQU5HRV9TSElGVCkgOiAwKQ0KPiANCj4gSSBhbSBu
b3Qgc3VyZSB0aGF0IHRoaXMgaXMgY29ycmVjdC4NCj4gDQo+IFByb2JhYmx5IHlvdSB3YW50ZWQg
dG8gd3JpdGUNCj4gKyAgICAgICAgR0lDRF9UWVBFUl9FU1BJX1JBTkdFKCh0eXBlciA+PiBHSUNE
X1RZUEVSX0VTUElfUkFOR0VfU0hJRlQpKSA6IDApDQo+IA0KPiANCg0KSSBkb3VibGUgY2hlY2tl
ZCAtIGl0IHNlZW1zIGxpa2UgZXZlcnl0aGluZyBpcyBjb3JyZWN0IC0gdGhlIHR5cGVyIA0KcGFy
YW1ldGVyIHNob3VsZCBiZSBzdXJyb3VuZGVkIGJ5IHBhcmVudGhlc2VzLCBhbmQgR0lDRF9UWVBF
Ul9FU1BJX1JBTkdFIA0Kc2hvdWxkIG9wZXJhdGUgd2l0aCB0aGUgYWxyZWFkeSBzaGlmdGVkIHZh
bHVlLiBIb3dldmVyLCBJIHdyb3RlIGEgDQpzbGlnaHRseSBjb25mdXNpbmcgbWFjcm8uIEF0IHRo
ZSB2ZXJ5IGxlYXN0LCBpdCB3b3VsZCBiZSBiZXR0ZXIgdG8gDQpyZW5hbWUgaW4gVjMgdGhlIHR5
cGVyIHBhcmFtZXRlciBpbiBHSUNEX1RZUEVSX0VTUElfUkFOR0UsIGJlY2F1c2UgaXQgDQp0YWtl
cyB0aGUgdmFsdWUgb2YgR0lDRF9UWVBFUiB0aGF0IGlzIGFscmVhZHkgc2hpZnRlZCBieSAyNywg
aW5zdGVhZCBvZiANCnRoZSByYXcgcmVnaXN0ZXIgdmFsdWUuIFdvdWxkIHRoYXQgYmUgYWNjZXB0
YWJsZT8NCg0KPj4gKyNlbmRpZg0KPj4gKw0KPj4gICAvKiBDb21tb24gYmV0d2VlbiBHSUNEX1BJ
RFIyIGFuZCBHSUNSX1BJRFIyICovDQo+PiAgICNkZWZpbmUgR0lDX1BJRFIyX0FSQ0hfTUFTSyAg
ICAgICAgICgweGYwKQ0KPj4gICAjZGVmaW5lIEdJQ19QSURSMl9BUkNIX0dJQ3YzICAgICAgICAo
MHgzMCkNCj4gDQoNCkJlc3QgcmVnYXJkcywNCkxlb25pZA0K


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 14:41:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 14:41:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090244.1447582 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upSxn-0000kP-14; Fri, 22 Aug 2025 14:41:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090244.1447582; Fri, 22 Aug 2025 14:41: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 1upSxm-0000kG-UY; Fri, 22 Aug 2025 14:41:54 +0000
Received: by outflank-mailman (input) for mailman id 1090244;
 Fri, 22 Aug 2025 14:41:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=R3KH=3C=bounce.vates.tech=bounce-md_30504962.68a881ae.v1-30e51eda28ee45148822aae41c14ec7b@srs-se1.protection.inumbo.net>)
 id 1upSxm-0000k8-8F
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 14:41:54 +0000
Received: from mail179-29.suw41.mandrillapp.com
 (mail179-29.suw41.mandrillapp.com [198.2.179.29])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 24039d68-7f66-11f0-a32b-13f23c93f187;
 Fri, 22 Aug 2025 16:41:52 +0200 (CEST)
Received: from pmta12.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail179-29.suw41.mandrillapp.com (Mailchimp) with ESMTP id
 4c7jZ66hf9z7lmQ7b
 for <xen-devel@lists.xenproject.org>; Fri, 22 Aug 2025 14:41:50 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 30e51eda28ee45148822aae41c14ec7b; Fri, 22 Aug 2025 14: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>
X-Inumbo-ID: 24039d68-7f66-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1755873710; x=1756143710;
	bh=NRYzlEOPNrDb3NoHUCe7/NvFmhhJoEj/CrGc45K0Xug=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=YP+EcQY5aNce3WRkVFsI8/rOa7etVx/oquwvVfo0s67jDp6/C7a1VUhvhx6pTSxMC
	 vV1rAkPXkAbc5LDTkQIQCeHm/CL1bvk3Ug3/L0s4OHgenGBkUcivoxp/zIVvb4boVa
	 xq6QIhpVaNzojwRxiITaBDwe/ClxmXyPOjD2sT5FureizSnqeBYmxqs21Sjkr/WzaW
	 lx1hmc0l8O5J1nWgJBFH/aZ+2TIKy94vTrxnAUkK4WH8MtFUb8chc17WVQ/n7NLNGH
	 7b3fwwkD/ab2nAgIMrU5F2f1LowtgzSji2xHI+7QYvdZxP4OAAlhh/+B0vqFgNWq1U
	 LnVs/Lfh0e3QA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1755873710; x=1756134210; i=teddy.astie@vates.tech;
	bh=NRYzlEOPNrDb3NoHUCe7/NvFmhhJoEj/CrGc45K0Xug=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=SEkWMFFTb1QZ6Id8uaaAElsVlqXhImMp4dCFwgpQ/4jLMopuEZPfU9rOlw1cc938+
	 mmn1NMkZaMZ0kBOgfc3CIjGJIvVibV5T+GKEZdAs/5xDFI8pDinCTCPHJDicc6zHdM
	 LTZqroW99c9miLOXIlLv/eLl2Z+QiJmmde6tZ1I2Nhkomfm9/Ocyl9R1jprg5KohOt
	 fCZWEqYN5GBph/8Ygv//TcwAwg62Fu2YUFc9Y5ddLdFMSRylirk6t3F+2ghXm7wWRs
	 iQbb2IMsnCA+rNda6J2Y0PhW9YT2poZgutYI/Vm5Kg9TS3lA/KSZh32z4iJKeUOBi3
	 FJTlhCnyroM2g==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v1]=20tools:=20make=20"opengl"=20generic?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1755873708081
Message-Id: <e95fff95-c0f6-4c7b-94ef-dc6a13f21453@vates.tech>
To: "Penny Zheng" <Penny.Zheng@amd.com>, xen-devel@lists.xenproject.org
Cc: ray.huang@amd.com, Edgar.Iglesias@amd.com, "Anthony PERARD" <anthony.perard@vates.tech>, "Juergen Gross" <jgross@suse.com>
References: <20250728044007.4026420-1-Penny.Zheng@amd.com>
In-Reply-To: <20250728044007.4026420-1-Penny.Zheng@amd.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.30e51eda28ee45148822aae41c14ec7b?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250822:md
Date: Fri, 22 Aug 2025 14:41:50 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hello,

Le 28/07/2025 =C3=A0 06:45, Penny Zheng a =C3=A9crit=C2=A0:
> Display option, like vnc, sdl, etc, will be checked against in latest QEM=
U
> whether it is compatile with opengl context. And vnc is incompatible with=
 GL
> context.
> Now, when running hvm domain with gl context on, such as
> "device_model_args_hvm =3D ["-display", "sdl,gl=3Don"]", we will fail wit=
h
> the error of "qemu-system-i386: -vnc 127.0.0.1:0,to=3D99: Display vnc is
> incompatible with the GL context", as vnc is set enabled on default
> for HVM domain.
> 
> We shall move "opengl" option out of specifc sdl display, to make it
> generic. Then when users explicitly set "opengl =3D 1", default values fo=
r
> vnc shall be changed to disabled and libxl__dm_vnc() needs to return NULL
> indicating vnc being disabled.
> 
> If users select both vnc and opengl in xl configuration, creation
> will fail and error out incompatible info.
> To keep consistency, we also make "opengl" generic for vfb[] options
> 
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>

There is a way to make vnc work with opengl by using the egl-headless 
display (-display egl-headless,gl=3Don), which can coexist along vnc. So 
that we could avoid having "opengl" as a sdl-specific option.

> ---
>   tools/libs/light/libxl_console.c |  4 ++--
>   tools/libs/light/libxl_create.c  | 10 ++++++----
>   tools/libs/light/libxl_dm.c      |  7 ++++++-
>   tools/libs/light/libxl_types.idl |  3 ++-
>   tools/xl/xl_parse.c              | 17 +++++++++--------
>   tools/xl/xl_sxp.c                |  6 +++---
>   6 files changed, 28 insertions(+), 19 deletions(-)
> 
> diff --git a/tools/libs/light/libxl_console.c b/tools/libs/light/libxl_co=
nsole.c
> index 044ca64676..fc3dfddc4d 100644
> --- a/tools/libs/light/libxl_console.c
> +++ b/tools/libs/light/libxl_console.c
> @@ -694,7 +694,7 @@ static int libxl__device_vfb_setdefault(libxl__gc *gc=
, uint32_t domid,
>       }
>   
>       libxl_defbool_setdefault(&vfb->sdl.enable, false);
> -    libxl_defbool_setdefault(&vfb->sdl.opengl, false);
> +    libxl_defbool_setdefault(&vfb->opengl, false);
>   
>       rc =3D libxl__resolve_domid(gc, vfb->backend_domname, &vfb->backend=
_domid);
>       return rc;
> @@ -733,7 +733,7 @@ static int libxl__set_xenstore_vfb(libxl__gc *gc, uin=
t32_t domid,
>       flexarray_append_pair(back, "sdl",
>                             libxl_defbool_val(vfb->sdl.enable) ? "1" : "0=
");
>       flexarray_append_pair(back, "opengl",
> -                          libxl_defbool_val(vfb->sdl.opengl) ? "1" : "0"=
);
> +                          libxl_defbool_val(vfb->opengl) ? "1" : "0");
>       if (vfb->sdl.xauthority) {
>           flexarray_append_pair(back, "xauthority", vfb->sdl.xauthority);
>       }
> diff --git a/tools/libs/light/libxl_create.c b/tools/libs/light/libxl_cre=
ate.c
> index 4301f17f90..7bbd1ff9b4 100644
> --- a/tools/libs/light/libxl_create.c
> +++ b/tools/libs/light/libxl_create.c
> @@ -339,7 +339,12 @@ int libxl__domain_build_info_setdefault(libxl__gc *g=
c,
>           if (!b_info->u.hvm.boot)
>               b_info->u.hvm.boot =3D libxl__strdup(NOGC, "cda");
>   
> -        libxl_defbool_setdefault(&b_info->u.hvm.vnc.enable, true);
> +        libxl_defbool_setdefault(&b_info->u.hvm.opengl, false);
> +
> +        if (libxl_defbool_val(b_info->u.hvm.opengl))
> +            libxl_defbool_setdefault(&b_info->u.hvm.vnc.enable, false);
> +        else
> +            libxl_defbool_setdefault(&b_info->u.hvm.vnc.enable, true);
>           if (libxl_defbool_val(b_info->u.hvm.vnc.enable)) {
>               libxl_defbool_setdefault(&b_info->u.hvm.vnc.findunused, tru=
e);
>               if (!b_info->u.hvm.vnc.listen)
> @@ -347,9 +352,6 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc=
,
>           }
>   
>           libxl_defbool_setdefault(&b_info->u.hvm.sdl.enable, false);
> -        if (libxl_defbool_val(b_info->u.hvm.sdl.enable)) {
> -            libxl_defbool_setdefault(&b_info->u.hvm.sdl.opengl, false);
> -        }
>   
>           if (libxl_defbool_val(b_info->u.hvm.spice.enable)) {
>               libxl_defbool_setdefault(&b_info->u.hvm.spice.disable_ticke=
ting,
> diff --git a/tools/libs/light/libxl_dm.c b/tools/libs/light/libxl_dm.c
> index 511ec76a65..7adf473c81 100644
> --- a/tools/libs/light/libxl_dm.c
> +++ b/tools/libs/light/libxl_dm.c
> @@ -672,6 +672,10 @@ int libxl__domain_device_construct_rdm(libxl__gc *gc=
,
>   const libxl_vnc_info *libxl__dm_vnc(const libxl_domain_config *guest_co=
nfig)
>   {
>       const libxl_vnc_info *vnc =3D NULL;
> +
> +    if (libxl_defbool_val(guest_config->b_info.u.hvm.opengl))
> +        return NULL;
> +
>       if (guest_config->b_info.type =3D=3D LIBXL_DOMAIN_TYPE_HVM) {
>           vnc =3D &guest_config->b_info.u.hvm.vnc;
>       } else if (guest_config->num_vfbs > 0) {
> @@ -955,6 +959,7 @@ static int libxl__build_device_model_args_new(libxl__=
gc *gc,
>       const char *path, *chardev;
>       bool is_stubdom =3D libxl_defbool_val(b_info->device_model_stubdoma=
in);
>       int rc;
> +    bool has_opengl =3D libxl_defbool_val(b_info->u.hvm.opengl);
>   
>       dm_args =3D flexarray_make(gc, 16, 1);
>       dm_envs =3D flexarray_make(gc, 16, 1);
> @@ -1084,7 +1089,7 @@ static int libxl__build_device_model_args_new(libxl=
__gc *gc,
>           }
>   
>           flexarray_append(dm_args, vncarg);
> -    } else if (!is_stubdom) {
> +    } else if (!is_stubdom && !has_opengl) {
>           /*
>            * Ensure that by default no vnc server is created.
>            */
> diff --git a/tools/libs/light/libxl_types.idl b/tools/libs/light/libxl_ty=
pes.idl
> index fe251649f3..ab768381ce 100644
> --- a/tools/libs/light/libxl_types.idl
> +++ b/tools/libs/light/libxl_types.idl
> @@ -349,7 +349,6 @@ libxl_spice_info =3D Struct("spice_info", [
>   
>   libxl_sdl_info =3D Struct("sdl_info", [
>       ("enable",        libxl_defbool),
> -    ("opengl",        libxl_defbool),
>       ("display",       string),
>       ("xauthority",    string),
>       ])
> @@ -670,6 +669,7 @@ libxl_domain_build_info =3D Struct("domain_build_info=
",[
>                                          ("acpi_firmware",    string),
>                                          ("hdtype",           libxl_hdtyp=
e),
>                                          ("nographic",        libxl_defbo=
ol),
> +                                       ("opengl",           libxl_defboo=
l),
>                                          ("vga",              libxl_vga_i=
nterface_info),
>                                          ("vnc",              libxl_vnc_i=
nfo),
>                                          # keyboard layout, default is en=
-us keyboard
> @@ -748,6 +748,7 @@ libxl_device_vfb =3D Struct("device_vfb", [
>       ("backend_domid", libxl_domid),
>       ("backend_domname",string),
>       ("devid",         libxl_devid),
> +    ("opengl",        libxl_defbool),
>       ("vnc",           libxl_vnc_info),
>       ("sdl",           libxl_sdl_info),
>       # set keyboard layout, default is en-us keyboard
> diff --git a/tools/xl/xl_parse.c b/tools/xl/xl_parse.c
> index 28cdbf07c2..9e9adcec77 100644
> --- a/tools/xl/xl_parse.c
> +++ b/tools/xl/xl_parse.c
> @@ -272,7 +272,6 @@ static void parse_top_level_sdl_options(XLU_Config *c=
onfig,
>                                           libxl_sdl_info *sdl)
>   {
>       xlu_cfg_get_defbool(config, "sdl", &sdl->enable, 0);
> -    xlu_cfg_get_defbool(config, "opengl", &sdl->opengl, 0);
>       xlu_cfg_replace_string (config, "display", &sdl->display, 0);
>       xlu_cfg_replace_string (config, "xauthority", &sdl->xauthority, 0);
>   }
> @@ -1291,7 +1290,7 @@ void parse_config_data(const char *config_source,
>   {
>       libxl_physinfo physinfo;
>       const char *buf;
> -    long l, vcpus =3D 0;
> +    long l, vcpus =3D 0, vnc_enabled =3D 0;
>       XLU_Config *config;
>       XLU_ConfigList *cpus, *vbds, *nics, *pcis, *cvfbs, *cpuids, *vtpms,
>                      *usbctrls, *usbdevs, *p9devs, *vdispls, *pvcallsifs_=
devs;
> @@ -2572,7 +2571,7 @@ skip_nic:
>                   } else if (!strcmp(p, "sdl")) {
>                       libxl_defbool_set(&vfb->sdl.enable, atoi(p2 + 1));
>                   } else if (!strcmp(p, "opengl")) {
> -                    libxl_defbool_set(&vfb->sdl.opengl, atoi(p2 + 1));
> +                    libxl_defbool_set(&vfb->opengl, atoi(p2 + 1));
>                   } else if (!strcmp(p, "display")) {
>                       free(vfb->sdl.display);
>                       vfb->sdl.display =3D strdup(p2 + 1);
> @@ -2791,14 +2790,16 @@ skip_usbdev:
>   
>   #undef parse_extra_args
>   
> +    if (!xlu_cfg_get_long (config, "vnc", &l, 0))
> +        vnc_enabled =3D l;
> +    xlu_cfg_get_defbool(config, "opengl", &b_info->u.hvm.opengl, 0);
> +    if (vnc_enabled && libxl_defbool_val(b_info->u.hvm.opengl)) {
> +        fprintf(stderr, "vnc is incompatible with opengl\n");
> +        exit(1);
> +    }
>       /* If we've already got vfb=3D[] for PV guest then ignore top level
>        * VNC config. */
>       if (c_info->type =3D=3D LIBXL_DOMAIN_TYPE_PV && !d_config->num_vfbs=
) {
> -        long vnc_enabled =3D 0;
> -
> -        if (!xlu_cfg_get_long (config, "vnc", &l, 0))
> -            vnc_enabled =3D l;
> -
>           if (vnc_enabled) {
>               libxl_device_vfb *vfb;
>               libxl_device_vkb *vkb;
> diff --git a/tools/xl/xl_sxp.c b/tools/xl/xl_sxp.c
> index 4383ad177a..62a1d012c6 100644
> --- a/tools/xl/xl_sxp.c
> +++ b/tools/xl/xl_sxp.c
> @@ -120,7 +120,7 @@ void printf_info_sexp(int domid, libxl_domain_config =
*d_config, FILE *fh)
>           fprintf(fh, "\t\t\t(sdl %s)\n",
>                  libxl_defbool_to_string(b_info->u.hvm.sdl.enable));
>           fprintf(fh, "\t\t\t(opengl %s)\n",
> -               libxl_defbool_to_string(b_info->u.hvm.sdl.opengl));
> +               libxl_defbool_to_string(b_info->u.hvm.opengl));
>           fprintf(fh, "\t\t\t(nographic %s)\n",
>                  libxl_defbool_to_string(b_info->u.hvm.nographic));
>           fprintf(fh, "\t\t\t(spice %s)\n",
> @@ -219,10 +219,10 @@ void printf_info_sexp(int domid, libxl_domain_confi=
g *d_config, FILE *fh)
>           fprintf(fh, "\t\t\t(vncunused %s)\n",
>                  libxl_defbool_to_string(d_config->vfbs[i].vnc.findunused=
));
>           fprintf(fh, "\t\t\t(keymap %s)\n", d_config->vfbs[i].keymap);
> +        fprintf(fh, "\t\t\t(opengl %s)\n",
> +               libxl_defbool_to_string(d_config->vfbs[i].opengl));
>           fprintf(fh, "\t\t\t(sdl %s)\n",
>                  libxl_defbool_to_string(d_config->vfbs[i].sdl.enable));
> -        fprintf(fh, "\t\t\t(opengl %s)\n",
> -               libxl_defbool_to_string(d_config->vfbs[i].sdl.opengl));
>           fprintf(fh, "\t\t\t(display %s)\n", d_config->vfbs[i].sdl.displ=
ay);
>           fprintf(fh, "\t\t\t(xauthority %s)\n", d_config->vfbs[i].sdl.xa=
uthority);
>           fprintf(fh, "\t\t)\n");



Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Fri Aug 22 14:42:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 14:42:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090249.1447593 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upSy6-00019E-AE; Fri, 22 Aug 2025 14:42:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090249.1447593; Fri, 22 Aug 2025 14:42:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upSy6-00018f-5M; Fri, 22 Aug 2025 14:42:14 +0000
Received: by outflank-mailman (input) for mailman id 1090249;
 Fri, 22 Aug 2025 14:42:13 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RLTp=3C=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1upSy5-0000k8-6S
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 14:42:13 +0000
Received: from fout-b7-smtp.messagingengine.com
 (fout-b7-smtp.messagingengine.com [202.12.124.150])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2fcdb944-7f66-11f0-a32b-13f23c93f187;
 Fri, 22 Aug 2025 16:42:12 +0200 (CEST)
Received: from phl-compute-06.internal (phl-compute-06.internal [10.202.2.46])
 by mailfout.stl.internal (Postfix) with ESMTP id 0A8F11D0022E;
 Fri, 22 Aug 2025 10:42:11 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-06.internal (MEProxy); Fri, 22 Aug 2025 10:42:11 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 22 Aug 2025 10:42:09 -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>
X-Inumbo-ID: 2fcdb944-7f66-11f0-a32b-13f23c93f187
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=1755873730;
	 x=1755960130; bh=jYHN8OO0m+mwe/TF93sSSPHNfUHgf4leS3FzqTm3H2o=; b=
	PesU9phwOvGOrgq7WtuZaT+r3cB+LyA2zeVW9iz05o5aG3HGbr7qqHG52zuFuYWh
	a6hSpCwHCIInrQnTKMushZlMYUOC9lru+pnsDe/hk9tIhOX4zulSOsKWS5VAlcmy
	Hl/wfIYrsajjO78glHksB2s+bcGdHV1Jt7DMzlWXZEVCpKKN3+7IY1uth/XVBopF
	RIxYMsXBo4z7D26WsBy0tiZiQuih2S1IfubAajRaN+xTEOjl4UaJrA8WxpKd8+gq
	No+gSwm0k+k9wNqKDzaFvzq8m2/P5h7vUgErdWf+hrjpZ6hpsm3cZ4MmzDPQCvBx
	SAwUtsDPCtKMMOuQVb4OUA==
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=
	1755873730; x=1755960130; bh=jYHN8OO0m+mwe/TF93sSSPHNfUHgf4leS3F
	zqTm3H2o=; b=F0w/PLozxPyhVA+28oBzdZn4gStbIjfydFEykLP0XP+z5OS1g3t
	+swPKtmoFVr2+0s8UUoyrcA9ZKhXWfhs2M+UwWzm+33lgZXY8SWAMkBkMKjqxlMC
	05amULMYsQcaTkz7Yc7UVCXWScor8h6GCOaGInGcO1gRmkcYFF66NqF/Ev0muCKs
	sIG/o29ayiNqKwcWfvhlvo18c7gq6nJv2qh+M0Vu0vsOlFi0EFwC9CEwiA4KCLf/
	mVOX1TT/d1ja2G5pMmd4lohMWUDAiYHP3wptB2JJcd2DIwvoYSRblMJpWNWEPSyL
	AAGCXt27rGIW9DR292e2yKb0q6itZ68vG5g==
X-ME-Sender: <xms:woGoaH7s0IFEiOBuks5KCT_Ve_ZFJ3m6z3MSdum0Xoi6pJsSzs8qBQ>
    <xme:woGoaOYPN8hjE5Sp3x8A79J9GwLodw6Q3SJDEKafHa8iiyXF-vrtgMn52CXVABd7D
    od2GuSxmAl1-w>
X-ME-Received: <xmr:woGoaOgl2AhtFYPk8pzL_Xa3M2Z-rpbNc2-U8-3oZ8Zt5ePDdnMErwmopnC9PIjMj8lfP-GR0opj7Os17DJ_Pqyn43TZeppEOHE>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgdduieegtddvucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepueekteet
    gefggfekudehteegieeljeejieeihfejgeevhfetgffgteeuteetueetnecuffhomhgrih
    hnpehgihhthhhusgdrtghomhenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhep
    mhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrg
    gsrdgtohhmpdhnsggprhgtphhtthhopeehpdhmohguvgepshhmthhpohhuthdprhgtphht
    thhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprh
    gtphhtthhopehjghhrohhsshesshhushgvrdgtohhmpdhrtghpthhtohepshhsthgrsggv
    lhhlihhniheskhgvrhhnvghlrdhorhhgpdhrtghpthhtohepohhlvghkshgrnhgurhgpth
    ihshhhtghhvghnkhhosegvphgrmhdrtghomhdprhgtphhtthhopegsohhrihhsrdhoshht
    rhhovhhskhihsehorhgrtghlvgdrtghomh
X-ME-Proxy: <xmx:woGoaH_t8hvKo-zBtbGjc57L0qV-3seOHIHSO-Mm9z0KwFngdOv9qQ>
    <xmx:woGoaBqBHJFoDuy7M1-CfWvr6Pkcxq4jFasWqAO-yvrp7putDHy0KA>
    <xmx:woGoaHWViewGl6abm7LYUk56oFUOThk2sXKMrmpydhC8tjib4BIzpA>
    <xmx:woGoaIAbe9nBNnsecffW1nL1gTarZFf_gnpOj4HvmpB0ViWe_zrX5Q>
    <xmx:woGoaH2KVBz29jqvOkEWI7aHrMoNK4BUFzsy724dWAFEPFmGv6KZeE89>
Feedback-ID: i1568416f:Fastmail
Date: Fri, 22 Aug 2025 16:42:08 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel <xen-devel@lists.xenproject.org>
Cc: Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>
Subject: Re: domU suspend issue - freeze processes failed - Linux 6.16
Message-ID: <aKiBwEsogK420kwo@mail-itl>
References: <aKiBJeqsYx_4Top5@mail-itl>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="clAqg1t6X9s2sdLz"
Content-Disposition: inline
In-Reply-To: <aKiBJeqsYx_4Top5@mail-itl>


--clAqg1t6X9s2sdLz
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Fri, 22 Aug 2025 16:42:08 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel <xen-devel@lists.xenproject.org>
Cc: Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>
Subject: Re: domU suspend issue - freeze processes failed - Linux 6.16

On Fri, Aug 22, 2025 at 04:39:33PM +0200, Marek Marczykowski-G=C3=B3recki w=
rote:
> Hi,
>=20
> When suspending domU I get the following issue:
>=20
>     Freezing user space processes
>     Freezing user space processes failed after 20.004 seconds (1 tasks re=
fusing to freeze, wq_busy=3D0):
>     task:xl              state:D stack:0     pid:466   tgid:466   ppid:1 =
     task_flags:0x400040 flags:0x00004006
>     Call Trace:
>      <TASK>
>      __schedule+0x2f3/0x780
>      schedule+0x27/0x80
>      schedule_preempt_disabled+0x15/0x30
>      __mutex_lock.constprop.0+0x49f/0x880
>      unregister_xenbus_watch+0x216/0x230
>      xenbus_write_watch+0xb9/0x220
>      xenbus_file_write+0x131/0x1b0
>      vfs_writev+0x26c/0x3d0
>      ? do_writev+0xeb/0x110
>      do_writev+0xeb/0x110
>      do_syscall_64+0x84/0x2c0
>      ? do_syscall_64+0x200/0x2c0
>      ? generic_handle_irq+0x3f/0x60
>      ? syscall_exit_work+0x108/0x140
>      ? do_syscall_64+0x200/0x2c0
>      ? __irq_exit_rcu+0x4c/0xe0
>      entry_SYSCALL_64_after_hwframe+0x76/0x7e
>     RIP: 0033:0x79b618138642
>     RSP: 002b:00007fff9a192fc8 EFLAGS: 00000246 ORIG_RAX: 0000000000000014
>     RAX: ffffffffffffffda RBX: 00000000024fd490 RCX: 000079b618138642
>     RDX: 0000000000000003 RSI: 00007fff9a193120 RDI: 0000000000000014
>     RBP: 00007fff9a193000 R08: 0000000000000000 R09: 0000000000000000
>     R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000014
>     R13: 00007fff9a193120 R14: 0000000000000003 R15: 0000000000000000
>      </TASK>
>     OOM killer enabled.
>     Restarting tasks: Starting
>     Restarting tasks: Done
>     xen:manage: do_suspend: freeze processes failed -16
>=20
> The process in question is `xl devd` daemon. It's a domU serving a
> xenvif backend.
>=20
> I noticed it on 6.16.1, but looking at earlier test logs I see it with
> 6.16-rc6 already (but interestingly, not 6.16-rc2 yet? feels weird given
> seemingly no relevant changes between rc2 and rc6).

I forgot to include link for (a little) more details:
https://github.com/QubesOS/qubes-linux-kernel/pull/1157

Especially, there is another call trace with panic_on_warn enabled -
slightly different, but looks related.

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmiogcAACgkQ24/THMrX
1ywkGwgAghYvaKickGgpl6GwVjbZnYATV9BBbgLx1Pf0uZUFjrh8E1lQMyF0cWPq
EwkIDeJFP7lP5WThSxziHqwYVFuvoE1KvAe9Lt6Zu99dKPKK+0+dt/1uJSWCN5vK
6VilS9BT5+ykZAXg6W+l0n1I0Xkh6tH+APvmLKONo5CLRr9kpIbluOv+8uXcvntN
5VL+MPxJoPFd5tfzeJxVrptBpvh9YY79ttVgCxUvy1AzPblVorReGGbP5/NedDJW
J0AhQ1XNFHOv4ohmh07H66kIvK+Wub+SFZ4ejpW2WUGqOBSVM2dKzVWwOCxEEEgZ
4WIkFjDK/R1W7KyLt145NH+dF1oLOA==
=SaV5
-----END PGP SIGNATURE-----

--clAqg1t6X9s2sdLz--


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 14:54:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 14:54:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090270.1447602 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upT9b-00037F-8v; Fri, 22 Aug 2025 14:54:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090270.1447602; Fri, 22 Aug 2025 14:54: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 1upT9b-000378-5q; Fri, 22 Aug 2025 14:54:07 +0000
Received: by outflank-mailman (input) for mailman id 1090270;
 Fri, 22 Aug 2025 14:54:05 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=aMUB=3C=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1upT9Z-000372-LR
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 14:54:05 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org
 [2604:1380:4641:c500::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d82dda1c-7f67-11f0-a32b-13f23c93f187;
 Fri, 22 Aug 2025 16:54:04 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 9B46D5C6AB0;
 Fri, 22 Aug 2025 14:54:02 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9C352C4CEED;
 Fri, 22 Aug 2025 14:54:00 +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>
X-Inumbo-ID: d82dda1c-7f67-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755874442;
	bh=PGUtv7joyI3NcEGG7DwKAzX2OlG/Z4dlVaDk/uPYiuQ=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Tpr6ICPkpdFXRhvJyuT9ON7sRIiMiwwPI5TeRKAhUc7td3Kvve8wRi3nITf/ddF3Y
	 fUzNJafUblNb4oC4vxrscX22WjQlOQO1QQjYKO5rl6b3kwsCKHbX8rFLBjYIY1urMs
	 2bKoNfApadCXo/mDrhp2v0w6gQN3jHNDvnntHGY1um+ZqcDCMfstD1UqB/IMCVkNuh
	 CvwjrXtYN2U3KfCzA0J3gDLFmGU8kBA1+YkEtoTYT/xJfEuw3vDQ7YeRRAMCAwmuCd
	 g3OmeSN4OdoVLX/2uyfEeT67UXzYb7PtPSm5iksP51OAxGUvyhO5CohS6qQbrREFIZ
	 wEzLCHC2s7YtA==
Date: Fri, 22 Aug 2025 07:53:59 -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>, 
    "Penny, Zheng" <penny.zheng@amd.com>, "Huang, Ray" <Ray.Huang@amd.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    "Orzel, Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH] xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE
In-Reply-To: <e93eab09-0467-4fff-875b-c6cf2cf754a6@suse.com>
Message-ID: <alpine.DEB.2.22.394.2508220753540.2743087@ubuntu-linux-20-04-desktop>
References: <20250815102728.1340505-1-Penny.Zheng@amd.com> <fb6f559a-b2aa-4b25-a6d3-401ecc4b4bd5@suse.com> <DM4PR12MB84519FE74D66604440827EA9E133A@DM4PR12MB8451.namprd12.prod.outlook.com> <43f0c9a6-a4f3-44e0-959f-a021ae3b0466@suse.com>
 <alpine.DEB.2.22.394.2508211710060.2743087@ubuntu-linux-20-04-desktop> <e93eab09-0467-4fff-875b-c6cf2cf754a6@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Fri, 22 Aug 2025, Jan Beulich wrote:
> >> I'm sorry if my request was unclear, but with "full round of testing" I in particular
> >> meant a full CI pipeline, plus (given the issue that's being fixed) some extra
> >> randconfig testing.
> > 
> > https://gitlab.com/xen-project/people/sstabellini/xen/-/pipelines/1997431361
> > 
> > I ran a few tests myself changing config options on purpose trying to
> > break it, and so far they were all successful.
> 
> Should I translate this to Tested-by: then?

Yes


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 15:03:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 15:03:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090285.1447612 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upTIi-0004uM-2S; Fri, 22 Aug 2025 15:03:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090285.1447612; Fri, 22 Aug 2025 15:03: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 1upTIh-0004uF-WC; Fri, 22 Aug 2025 15:03:32 +0000
Received: by outflank-mailman (input) for mailman id 1090285;
 Fri, 22 Aug 2025 15:03:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1jNg=3C=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1upTIg-0004u9-Ae
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 15:03:30 +0000
Received: from GVXPR05CU001.outbound.protection.outlook.com
 (mail-swedencentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c202::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 295a57a8-7f69-11f0-a32b-13f23c93f187;
 Fri, 22 Aug 2025 17:03:29 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by PA6PR03MB10363.eurprd03.prod.outlook.com (2603:10a6:102:3ce::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.15; Fri, 22 Aug
 2025 15:03:25 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Fri, 22 Aug 2025
 15:03: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>
X-Inumbo-ID: 295a57a8-7f69-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lKGqGOOOa1l2QSDbQh2n+DtbLylmv+bM9fp/J4xkWkVUG/itQ7a2JUYdQp7tdgEbxuC4YERgPl3hpxCmuJvpwA4V9mJ4pvkonEvPVHE6iGwYCDcul0fhdwDfl/XrMOdnjTg63x2LUJQCwxgLZ7pGs/LgxtcxgicofK7jHYiQaqTVbs3AB+nzd/+FAOnPubBEOJZRiXplEJnXhDeHDRHLAis3zuYUiArwiFJxineehn9dOOfDoc77ndxDheJBvfqF8nNhedVpeXtdTHpz3KkRXZFAeseu9Ls/zmWbHiuDrZ1SOzgsW/jmK/ubsSQJQo03QGrWw5Z08bj+FBa0DowrRA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=CQvBzg3KaseQzRTl5bbcFE8j1E3oa6vkrog6gLboq3A=;
 b=l6roW/6y8EyvOMU5HO6rkxw9++XOJy7ntugVTgn6aZkSIcQ2Q1bfVdF21ajzwllm1KKIMmn0Xnm3ie5Vnno+yaT0ASyOZ7zH7okh3t4Oyi+Q2193SKCilfL9ByYTAl9YqFCVHHci9wz6SeQFBtomqALaAg6O1qyVz4kxgZHksw1mfE+aVMVa28h8DzQBYPq9s2gZPSlqL5a+FWenEt78H81q6qZfp4ROksuG5GY0jg8gEWHwxXfugj7iygMp0zc/AoEs2EtLLyhG+DNzTvHrs4Ursb9K9BXqQ7Z2hwgOCydA0I+L8ywoddkfGJS2Qsj48U6KE0TT+LzYSMLzBN1Jkw==
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=CQvBzg3KaseQzRTl5bbcFE8j1E3oa6vkrog6gLboq3A=;
 b=XZvx2iAZJvt7OUjvLvS+3tcEUfmrvfY/3FFaHEDLGVgVb/zPSVgqJLpmUxQKzsmUVhB5K7DfsU/3AnumyjG1jT72juyrWe2aaOYNwiESzk5lh6XLpMu7+WNNUnUPpz+46g03wYbsGA5EI3KZzk9wqGkE+0nAYT9WN6AP6NdxVgoLsoucUkMMAbFCIUCT2LYCohG3Wxo8SMgSDcMIwsTAjwP6nb5ewpa7mYqJ7jLNrpFRKKa+Kp/IDfCz1Idqkln2MdKL0NrQaxEsrifRf+ZlVKueIrgDyDkCKXV2RaaCbJ66VRWOMdWX/F2BMIYtNY6liy18cjgKrNXK9pTH+56stA==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v2 09/10] xen/arm: domain_build: adjust Dom0 IRQ handling
 to support eSPIs
Thread-Topic: [PATCH v2 09/10] xen/arm: domain_build: adjust Dom0 IRQ handling
 to support eSPIs
Thread-Index: AQHcB5d9D2bB2ytT+0KvuTkMlpIiH7Ru3KEA
Date: Fri, 22 Aug 2025 15:03:25 +0000
Message-ID: <f7e1abab-f493-4eda-b119-7be561ef7421@epam.com>
References:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
 <abba685916e6637eedbd831352bed2e968eeb7dc.1754568795.git.leonid_komarianskyi@epam.com>
 <87o6s8d3m1.fsf@epam.com> <93cd9406-030c-4915-b180-1cc90109b7d3@epam.com>
 <87y0rbbl0a.fsf@epam.com>
In-Reply-To: <87y0rbbl0a.fsf@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: GV2PR03MB8678:EE_|PA6PR03MB10363:EE_
x-ms-office365-filtering-correlation-id: d06f5d5c-e803-4203-25a6-08dde18d0b5f
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?dysyWXlMMkFOa01wT0cySVVxcXpmWXJ6alpKSVJoWktjNFFudkNPVkNjdlFQ?=
 =?utf-8?B?MDBVcmxKcFN1T3IyMU5VNjVpb2Y0anNFam5DUkQxaHduenZSSnRjYUhYa3k1?=
 =?utf-8?B?bEhEWjEyWTducUZDeVN5OWt6WDZTRVoybTRHOXhuL0hqSnJkWVdkLzhyWEVW?=
 =?utf-8?B?Vk5XVXptMkdKU1loY2w0ZHBOb0xOdFZGTC8yQU5wZkNBVEFiaktXRjBNbVRW?=
 =?utf-8?B?aE9OTGlUYkEwck5SMlJuUGlCSkZpK0xDNXBEbStIdE9HV0dFRTZ4ZC8vVDMr?=
 =?utf-8?B?OTcrWXNtd3NmQlNrSlpCN094RFVHNFBlVlZVR2RpT3lmMWFnQnFkMFB6cGEx?=
 =?utf-8?B?MitDOHdqQkhLTzI2ZTJkV2tFQ0tlVnZnQ0o5cGg5NGJWTkZWWERCNnU2SmhT?=
 =?utf-8?B?TEsvS1dzY21OQ1VCVEQ5TS9GcU1mSEp0T3ZsUTFoK2I0a0NUQ1lWM2xET2Y2?=
 =?utf-8?B?MlJ2UXh3eHk1dlJRUXVHcHJjMmpkRkIySFhSMm1ZMCtTbXBrYVZhT0tTS0I2?=
 =?utf-8?B?cXJmVG4rdDhZdlpIcVZQZnlqZUtBaHNrRWNhZnNjWjdHekpsWmdabDMvUGJU?=
 =?utf-8?B?ZnhxUzV2S2VSbmxES1AzTkpTTDBXOFhPdWh2K0pZL2lpbTVkaUhlbGdSSERH?=
 =?utf-8?B?U0JhQjg5VEYyaVRHRktoemEvd0tNT2tqZW45V1l2dG44MUExMldKY1pYUSs0?=
 =?utf-8?B?RDVycnN2bHRtRkdrZUFQc3NpSEg2L0tnNDFSTlVWYTVtZkI5aVg2a1FQTU1N?=
 =?utf-8?B?TDh5ZEFObzVnc2lTenpWNFJEaFBWc3RLWStBbGltNkhuc2IzUW5Vdm0yaGJh?=
 =?utf-8?B?Q05aV1BtVVoyTUU2YW9ldjdoMzVWeElFSEdaNW9raHBCR2RMSEFCN1dBVGNz?=
 =?utf-8?B?ejdmWGJsMlNPSnJJb2hCOFlwdVM0aStGZnhQcFhQNjU3K3pIejRSRU9QSjBW?=
 =?utf-8?B?WFRxcGRjSnM1TFZpRGxpcUZNT0xLN1NnVkR6ZkMzU0JGZG9KWk5weFlrWWph?=
 =?utf-8?B?SVovaGM2N3dUNVhzUjMrdnlSeVNybGI5SHY5M0Q0NVFuSXcvQmlkcEhWVm1j?=
 =?utf-8?B?M0VMYUN3MFZLN3doa3dJenhWcy9EaTNiTFJ3ZGYyL3RNdUp4WFlyemE4bExo?=
 =?utf-8?B?cHlqVDJlSDFjU1JEaU54MGkxbFhsNm92cDVwZXpaQUlvT3JwS1hINnpkc1RF?=
 =?utf-8?B?Y0RucUlwVEFIZ1B5U1VBZmlTTm1EQkFUY2JLOGtaTTUvRW9leWF3VmYwOUxn?=
 =?utf-8?B?Yno3U0xucCsxVWVWdlVTQnovUWZPYmxpbmpmNEk2bXl5Rmh2WmRDalVCVWdW?=
 =?utf-8?B?R1Fud0t1YnN2ZmZOdkpmOEh5Y3JkZ0dUUW0yS2F0T2dGMjRsQU5DQkFpV1lp?=
 =?utf-8?B?YWVTTTBCTEtzNjdBRXVaOFlqRy9sWDRlNmYvMUIvZGI0QmVNd3NPdmRLVlBG?=
 =?utf-8?B?bS8rY1d2NTdFTDBDUWg2V1BwZHk2VnYxUmw3ekdLT0trS3FIaWkzbGFBNUx3?=
 =?utf-8?B?U3Q5Z2dBNlZLYnR0dy9qendKZHMvc2g2ckh3TnlkRThRN3lsZXFCVTQzTHhx?=
 =?utf-8?B?cGdyY2RCSVplTW9RZ3dGWVN1aE1QbFRQNjk1OUNsS0NhNXB6YzdyUlp3VG53?=
 =?utf-8?B?M3ZCK3lYdW5nekpjaStSMEdkOWpiZzduKzI0dE9UMHN5bzZoWmdVMHRWaU5h?=
 =?utf-8?B?eC8vTTcxME5rUklPRTRBQ0ZZSm9NM1ZEeHZ6dkM3eFVEcmtkb3N5QStid3lS?=
 =?utf-8?B?ZjRBb045Q1lHZTh4bGtxYU1nNDhJYVo2bHBpWGE2RjFsNUpYQndIRFRMZlMv?=
 =?utf-8?B?aGhSQ3lqa3dVTTlhOEpFVTZRU3ZHSWE4emVBUFVuVnUwYVBnZ0xRVDFCeXJF?=
 =?utf-8?B?UFV3MWdEVGZDZi9uWDlleUpjbEpqSmN1QlZialFCQXl6TTRiVmx0MnI0amx5?=
 =?utf-8?B?TDM0Wno2c3NKMzc5b1NOKytyU25xNjJtelF4cDJWNkFjZjZiaFZ1QjE4K0Q1?=
 =?utf-8?B?ZVVZek5XU3FRPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?ME8vdkNkbGd3UXpkTnZWdGNrVU0wTHJ1NHVDVVZ3eGtFR2d4QUsrV0hnZ1lG?=
 =?utf-8?B?VXVzajg5QlZvWTExQm0zWUFMQmZtNXhLYnZTNk1mYzk2WkkrenQyaWpYbnhZ?=
 =?utf-8?B?OUNzSlRLckxyMk4wTjVzL3lLSGF6RkJOR0xOL1RiK25EUXJ1dk85amxUejBM?=
 =?utf-8?B?RWFEdFlZOEtqMEs4MEVLNzh0Z3YydER4UjExeG9nN1JBS0hQRURvbkZ6VkxW?=
 =?utf-8?B?cko1SUFkWGNPUjVqMDdGelBnRGVmeG5KWEl0Q1lsMGNhN21sd1BYNzJvSUtZ?=
 =?utf-8?B?b2FMdGhzYXgwVFRYRVZqWnJxWkl5eXZrdnlSVFpwMEtldjg2LzFmWU51RitQ?=
 =?utf-8?B?emtCL0tYYnF0TUdGODFmVm9pQ091WnVlZWovQUIzK2V2Y2VjaXdDMHQ2L0Zl?=
 =?utf-8?B?SkxhanpkUUtqMkdlWW90cE9Ba1VXOHNhS0tVREZLTnZndnJnMkJQOVpwdUZW?=
 =?utf-8?B?UDBoM2ZCU3RLWkJQOTllcGIyY1hMbldtMFU5aDIxakxYQUNKRVk0WmtZRkxi?=
 =?utf-8?B?dkFnMWdOS1V2YTBpcHJNL3EzR2srRGFoVUY4cno3VHlEd1pubGdQdzF0eTVB?=
 =?utf-8?B?RVFzMUticW1ySEVWOGsrbW40OHo4bWNmMWo2UGlBK0Z3cFJpakdQVFhCb1Qx?=
 =?utf-8?B?Vmw2SXNKcEZJSHpzVzdrK2l3eVZVZlJTSitVRktObWV3djhhQnF6NzFqNTFH?=
 =?utf-8?B?TlVuLzZYOWptNE9oMGx4QVB1NjV5OXN4VU1YNGYwUHd2bCszQzFMd25CZjJ1?=
 =?utf-8?B?U2NsY3EwZFdqdjB0Vnp3V3pnTmd2Q0RNZGZXSGt1TGRJUkZIQ1BmUkZsaEgy?=
 =?utf-8?B?cDZyWDZkaWJBdkNIVndWVmZxQ0RaTDV4T1laTE1CRUlLM0ZjMlNhdGwvV0gw?=
 =?utf-8?B?YW5RbmVyS2JiNjJhVzkva3Q4dElKdGszWU9iQzZwS05HWUd4R2xNUHh4L1c4?=
 =?utf-8?B?S0NtVFhsaHFkQTd5WDRYSjQyTTZHN2JwL0g3bURhc2x1YVpMM1JkQ0krQVpi?=
 =?utf-8?B?ajZvQm5KckhXOHNXVUx6VVVrWFFYalVxeUxhMkdKdjhFTVhydFl3NmhiY3Fo?=
 =?utf-8?B?WUpoc29jelRxa1Eza1lwOWVnaVkvV2tGVDdpSGRJRDRMdVRpS2M3WXdKL1ZV?=
 =?utf-8?B?TERCTmFRdUwrSk5IVjN5NDFWcmN3OFFHdnpPdEx0MlF4cjgzeDdSaVpKZmV3?=
 =?utf-8?B?TnNGSlRoMVNFTzB6RlFaTGNXRU1BcXVOQ0lqTDdGZ3RObkFrODhnQ2hzZVpE?=
 =?utf-8?B?N1FDQ3A4bVYzWnorWThYNXFJb3ErQk9LbkliWVhvZE9SamZzemtzTWpKcVZh?=
 =?utf-8?B?TmRVb1pKMXBBbkxRRkF3SXE2Y1pyVmtiREF5N1BDVWlzVUNOVi9rU01vVk95?=
 =?utf-8?B?YmFlb0kvcGYreHFEdm5EdGkyazZ5UDRQVi9Kd2hGOVJrbm9KSERrenBob3hr?=
 =?utf-8?B?OXVZS2xBZThUTllsR2dPT2s5aXFhVXpIMUJ4ZWVmdXdQdUZFM0ozeGEwZkli?=
 =?utf-8?B?YzN3c0xsQ1NVemhHeWp2LzBZbTlnZm02U0ovb2kzSUpPeHNGRElpbjRTK0d1?=
 =?utf-8?B?eDdyUHNXUWtlditlc1VpQjQxTXV2TFM3Rzl2SXdsM1plOG1SNGowREJyKzB2?=
 =?utf-8?B?SytLZWQ2MWJSeDhNTUtBcFFwTklRT0NnS0MxRC9ZekQ3L2FSMUFYb21Vay9B?=
 =?utf-8?B?SzVla1BiTDBKRFFGOTRlU0EweDBVZ3c5b1BlenU0bzFJK3pFT0JxRUhxakpm?=
 =?utf-8?B?Y2ZOVTQrOTcrQjVicTJMbzhHZ2NsRGRKVXlqcTFGaWptVXZ3eSt2QW9xc3J4?=
 =?utf-8?B?bnJqZjJIbjNlYTdoazRCZW5SeUVtZ0VnMVNKd3dJVG0yQjdBeC93aGlWVGJ3?=
 =?utf-8?B?cUp5UWsvTWhJNnlTT2M3Znp2RElBZUR4a2VKVE5hNmc5ekxYQWRpK2F1ZEVY?=
 =?utf-8?B?OWV2Um5iRGpLaWl5TGJ0eVRSYTJnRkV0eDUzdzFUMGJKb3E2R2tFZUIxakJ5?=
 =?utf-8?B?REhGWHQwaDgrc0M0L09rTWZMUjgyMjIyMEdCcVY0WFNZdFAyL2JLcGZoNGl1?=
 =?utf-8?B?UVJ6TVJ0a0tTTnZvenk3NlZzNW1Kc3JOL0E0Z25ObVRmbUJ2WVhHVTUvUTNw?=
 =?utf-8?B?VmYzakVYTUNVekN5QnM0akR3dm5uQmNEblBLQThRY2FXTnpzdjB1M0Z3eGo2?=
 =?utf-8?Q?Dc29ww2mpWKoniEm4LI1v7c=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <8E406B4218D6644D9CC2A5534AC42FF9@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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d06f5d5c-e803-4203-25a6-08dde18d0b5f
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Aug 2025 15:03:25.3807
 (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: QKIHdaJ1DVX/vfl7f/kTUNnjRONU14cPbO56vKk/VLWELMw06up9pYx6pkIgKx2jKfCIoytoqhKl5qjabneqN+/Z4N3OrdBrGT9Uqe6PEJc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA6PR03MB10363

SGkgVm9sb2R5bXlyLA0KDQpPbiAyMi4wOC4yNSAxNToyNiwgVm9sb2R5bXlyIEJhYmNodWsgd3Jv
dGU6DQo+IA0KPiBIaSBMZW9uaWQsDQo+IA0KPiBMZW9uaWQgS29tYXJpYW5za3lpIDxMZW9uaWRf
S29tYXJpYW5za3lpQGVwYW0uY29tPiB3cml0ZXM6DQo+IA0KPj4gSGkgVm9sb2R5bXlyLA0KPj4N
Cj4+IE9uIDIxLjA4LjI1IDE5OjQ2LCBWb2xvZHlteXIgQmFiY2h1ayB3cm90ZToNCj4+Pg0KPj4+
DQo+Pj4NCj4+PiBMZW9uaWQgS29tYXJpYW5za3lpIDxMZW9uaWRfS29tYXJpYW5za3lpQGVwYW0u
Y29tPiB3cml0ZXM6DQo+Pj4NCj4+Pj4gVGhlIERvbTAgY29uZmlndXJhdGlvbiBsb2dpYyBpbiBj
cmVhdGVfZG9tMCgpIGhhcyBiZWVuIHVwZGF0ZWQNCj4+Pj4gdG8gYWNjb3VudCBmb3IgZXh0ZW5k
ZWQgU1BJcyB3aGVuIHN1cHBvcnRlZCBieSB0aGUgaGFyZHdhcmUgYW5kDQo+Pj4+IGVuYWJsZWQg
d2l0aCBDT05GSUdfR0lDVjNfRVNQSS4gVGhlc2UgY2hhbmdlcyBlbnN1cmUgdGhlIHByb3Blcg0K
Pj4+PiBjYWxjdWxhdGlvbiBvZiB0aGUgbWF4aW11bSBudW1iZXIgb2YgU1BJcyBhbmQgZVNQSXMg
YXZhaWxhYmxlIGZvciBEb20wLg0KPj4+Pg0KPj4+PiBXaGVuIGVTUElzIGFyZSBzdXBwb3J0ZWQg
YnkgdGhlIGhhcmR3YXJlIGFuZCBDT05GSUdfR0lDVjNfRVNQSSBpcw0KPj4+PiBlbmFibGVkLCB0
aGUgbWF4aW11bSBudW1iZXIgb2YgZVNQSSBpbnRlcnJ1cHRzIGlzIGNhbGN1bGF0ZWQgdXNpbmcN
Cj4+Pj4gdGhlIEVTUElfQkFTRV9JTlRJRCBvZmZzZXQgKDQwOTYpIGFuZCBsaW1pdGVkIGF0IDEw
MjQsIHdpdGggMzIgSVJRcw0KPj4+PiBzdWJ0cmFjdGVkLiBUbyBlbnN1cmUgY29tcGF0aWJpbGl0
eSB3aXRoIG5vbi1Eb20wIGRvbWFpbnMsIHRoaXMNCj4+Pj4gYWRqdXN0bWVudCBpcyBhcHBsaWVk
IGJ5IHRoZSB0b29sc3RhY2sgZHVyaW5nIGRvbWFpbiBjcmVhdGlvbiwgd2hpbGUNCj4+Pj4gZm9y
IERvbTAgaXQgaXMgaGFuZGxlZCBkaXJlY3RseSBkdXJpbmcgVkdJQyBpbml0aWFsaXphdGlvbi4g
SWYgZVNQSXMNCj4+Pj4gYXJlIG5vdCBzdXBwb3J0ZWQsIHRoZSBjYWxjdWxhdGlvbiBkZWZhdWx0
cyB0byB1c2luZyB0aGUgc3RhbmRhcmQgU1BJDQo+Pj4+IHJhbmdlLCB3aXRoIGEgbWF4aW11bSB2
YWx1ZSBvZiA5OTIgaW50ZXJydXB0IGxpbmVzIGFzIGl0IHdvcmtzIG5vdy4NCj4+Pj4NCj4+Pj4g
U2lnbmVkLW9mZi1ieTogTGVvbmlkIEtvbWFyaWFuc2t5aSA8bGVvbmlkX2tvbWFyaWFuc2t5aUBl
cGFtLmNvbT4NCj4+Pj4NCj4+Pj4gLS0tDQo+Pj4+IENoYW5nZXMgaW4gVjI6DQo+Pj4+IC0gbm8g
Y2hhbmdlcw0KPj4+PiAtLS0NCj4+Pj4gICAgeGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jICAg
ICB8IDEwICsrKysrKysrKysNCj4+Pj4gICAgeGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3ZnaWMu
aCB8IDExICsrKysrKysrKysrDQo+Pj4+ICAgIDIgZmlsZXMgY2hhbmdlZCwgMjEgaW5zZXJ0aW9u
cygrKQ0KPj4+Pg0KPj4+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5j
IGIveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jDQo+Pj4+IGluZGV4IGQ5MWE3MWFjZmQuLmZh
NWFiZjJkZmIgMTAwNjQ0DQo+Pj4+IC0tLSBhL3hlbi9hcmNoL2FybS9kb21haW5fYnVpbGQuYw0K
Pj4+PiArKysgYi94ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMNCj4+Pj4gQEAgLTIwNTUsNiAr
MjA1NSwxNiBAQCB2b2lkIF9faW5pdCBjcmVhdGVfZG9tMCh2b2lkKQ0KPj4+PiAgICAgICAgLyog
VGhlIHZHSUMgZm9yIERPTTAgaXMgZXhhY3RseSBlbXVsYXRpbmcgdGhlIGhhcmR3YXJlIEdJQyAq
Lw0KPj4+PiAgICAgICAgZG9tMF9jZmcuYXJjaC5naWNfdmVyc2lvbiA9IFhFTl9ET01DVExfQ09O
RklHX0dJQ19OQVRJVkU7DQo+Pj4+ICAgICAgICBkb20wX2NmZy5hcmNoLm5yX3NwaXMgPSBWR0lD
X0RFRl9OUl9TUElTOw0KPj4+PiArI2lmZGVmIENPTkZJR19HSUNWM19FU1BJDQo+Pj4+ICsgICAg
LyoNCj4+Pj4gKyAgICAgKiBDaGVjayBpZiB0aGUgaGFyZHdhcmUgc3VwcG9ydHMgZXh0ZW5kZWQg
U1BJcyAoZXZlbiBpZiB0aGUgYXBwcm9wcmlhdGUgY29uZmlnIGlzIHNldCkuDQo+Pj4+ICsgICAg
ICogSWYgbm90LCB0aGUgY29tbW9uIFNQSSByYW5nZSB3aWxsIGJlIHVzZWQuIE90aGVyd2lzZSBv
dmVyd3JpdGUgdGhlIG5yX3NwaXMgd2l0aCB0aGUNCj4+Pj4gKyAgICAgKiBtYXhpbXVtIGF2YWls
YWJsZSBJTlRJRCBmcm9tIGVTUEkgcmFuZ2UuIEluIHRoYXQgY2FzZSwgdGhlIG51bWJlciBvZiBy
ZWd1bGFyIFNQSXMgd2lsbA0KPj4+PiArICAgICAqIGJlIGFkanVzdGVkIHRvIHRoZSBtYXhpbXVt
IHZhbHVlIGR1cmluZyB2R0lDIGluaXRpYWxpemF0aW9uLg0KPj4+PiArICAgICAqLw0KPj4+PiAr
ICAgIGlmICggZ2ljX251bWJlcl9lc3BpcygpID4gMCApDQo+Pj4+ICsgICAgICAgIGRvbTBfY2Zn
LmFyY2gubnJfc3BpcyA9IFZHSUNfREVGX05SX0VTUElTOw0KPj4+PiArI2VuZGlmDQo+Pj4+ICAg
ICAgICBkb20wX2NmZy5hcmNoLnRlZV90eXBlID0gdGVlX2dldF90eXBlKCk7DQo+Pj4+ICAgICAg
ICBkb20wX2NmZy5tYXhfdmNwdXMgPSBkb20wX21heF92Y3B1cygpOw0KPj4+PiAgICANCj4+Pj4g
ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS92Z2ljLmggYi94ZW4vYXJjaC9h
cm0vaW5jbHVkZS9hc20vdmdpYy5oDQo+Pj4+IGluZGV4IDlmYTQ1MjMwMTguLjExN2IzYWE5MmMg
MTAwNjQ0DQo+Pj4+IC0tLSBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS92Z2ljLmgNCj4+Pj4g
KysrIGIveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3ZnaWMuaA0KPj4+PiBAQCAtMzUzLDYgKzM1
MywxNyBAQCBleHRlcm4gdm9pZCB2Z2ljX2NoZWNrX2luZmxpZ2h0X2lycXNfcGVuZGluZyhzdHJ1
Y3QgdmNwdSAqdiwNCj4+Pj4gICAgLyogRGVmYXVsdCBudW1iZXIgb2YgdkdJQyBTUElzLiAzMiBh
cmUgc3Vic3RyYWN0ZWQgdG8gY292ZXIgbG9jYWwgSVJRcy4gKi8NCj4+Pj4gICAgI2RlZmluZSBW
R0lDX0RFRl9OUl9TUElTIChtaW4oZ2ljX251bWJlcl9saW5lcygpLCBWR0lDX01BWF9JUlFTKSAt
IDMyKQ0KPj4+PiAgICANCj4+Pj4gKyNpZmRlZiBDT05GSUdfR0lDVjNfRVNQSQ0KPj4+PiArLyoN
Cj4+Pj4gKyAqIFJldHVybnMgdGhlIG1heGltdW0gZVNQSSBJTlRJRCBzdWJ0cmFjdGVkIGJ5IDMy
LiBGb3Igbm9uLURvbTAgZG9tYWlucywgdGhlDQo+Pj4+ICsgKiB0b29sc3RhY2sgYXBwbGllcyB0
aGUgc2FtZSBhZGp1c3RtZW50IHRvIGNvdmVyIGxvY2FsIElSUXMuIFdlIHdpbGwgYWRkIGJhY2sN
Cj4+Pj4gKyAqIHRoaXMgdmFsdWUgZHVyaW5nIFZHSUMgaW5pdGlhbGl6YXRpb24uIFRoaXMgZW5z
dXJlcyBjb25zaXN0ZW50IGhhbmRsaW5nIGZvciBEb20wDQo+Pj4+ICsgKiBhbmQgb3RoZXIgZG9t
YWlucy4gRm9yIHRoZSByZWd1bGFyIFNQSSByYW5nZSBpbnRlcnJ1cHRzIGluIHRoaXMgY2FzZSwg
dGhlIG1heGltdW0NCj4+Pj4gKyAqIHZhbHVlIG9mIFZHSUNfREVGX05SX1NQSVMgd2lsbCBiZSB1
c2VkLg0KPj4+PiArICovDQo+Pj4+ICsjZGVmaW5lIFZHSUNfREVGX05SX0VTUElTIChFU1BJX0JB
U0VfSU5USUQgKyBtaW4oZ2ljX251bWJlcl9lc3BpcygpLCAxMDI0VSkgLSAzMikNCj4+PiBOYW1l
IG9mIHRoZSBkZWZpbmUgaXMgd3JvbmcsIGFzIGl0IGlzIG5vdCBudW1iZXIgb2YgZVNQSXMuIEFj
dHVhbGx5LCB0aGlzIGlzDQo+Pj4gbWF4aW11bSBTUEkgKGluY2x1ZGluZyBlU1BJcykgbnVtYmVy
Lg0KPj4NCj4+DQo+PiBUaGFuayB5b3UgZm9yIHlvdXIgcmV2aWV3Lg0KPj4gV291bGQgaXQgYmUg
b2theSBpZiBJIHJlbmFtZSB0aGlzIG1hY3JvIHRvIFZHSUNfREVGX01BWF9TUEk/DQo+IA0KPiBZ
ZXMsIEkgdGhpbmsgdGhpcyBpcyBiZXR0ZXIgbmFtZS4NCj4gDQoNClRoYW5rIHlvdSBmb3IgeW91
ciBjb25maXJtYXRpb24uIEkgd2lsbCByZW5hbWUgdGhpcyBtYWNybyB0byANClZHSUNfREVGX01B
WF9TUEkgaW4gVjMuDQoNCkJlc3QgcmVnYXJkcywNCkxlb25pZA0K


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 15:08:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 15:08:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090301.1447622 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upTNb-0005Xu-Np; Fri, 22 Aug 2025 15:08:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090301.1447622; Fri, 22 Aug 2025 15:08: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 1upTNb-0005Xn-L8; Fri, 22 Aug 2025 15:08:35 +0000
Received: by outflank-mailman (input) for mailman id 1090301;
 Fri, 22 Aug 2025 15:08:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1jNg=3C=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1upTNa-0005XU-46
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 15:08:34 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id deca5678-7f69-11f0-a32b-13f23c93f187;
 Fri, 22 Aug 2025 17:08:33 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by GV2PR03MB10975.eurprd03.prod.outlook.com (2603:10a6:150:279::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Fri, 22 Aug
 2025 15:08:30 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Fri, 22 Aug 2025
 15:08:30 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: deca5678-7f69-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AMjptNbq3wDbfWN36aHU1UlSbcwKJ5iyAO7kUEoV0w5EWCbXaNM9s6Y+D1/eb78mYkG9B2Yl+0yT6/XjIYXUnc+yMPTHPAwBihgVmplXkCr4prP7N37fiN4O3XmgYbJR1585yjppq7fpNzf7sxQTMIH5K7AgxUXMU/UeS5OrlNQVV9CtbTGeOx0xhbsJz9MHPtVis8m6Q+O1JStWuheVv6c+f98R8S+Az5Hbwa1QaRI0n0sa5EMnq0GMnmmgU8GMwM8CKeUIZ1QDtIAHHlJET6ghgTTFqtxbkKfaxfj6fS1s+gAofcGvgVG5oeZMqAWW30wcEslPC4cDLoIMJlY72Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+6R7SmnxpZFERvOiZnG6EyWV1ADtMZ/7svn7kgc9XOg=;
 b=MNyVPzydQBxcY0vrfgqXEmx+y9VM560xNS2S6mlSZTVqCOxIz2BNSTYbdbtXPZ0yPkz9Xtf8z9AkUcfk0jRE2anr9SnSS7tF//v0Hw0rCNUsYUs3vmBpIVtfyhqKNruLaVSAMxjSaPAicvJ0+zQMpkC679aDstgWEQsx7m0meMOLhGTxqZN6KCdV38TAGkWV7TIMsJhp/fd7gMjIipwFnB6k5RqsW8q/TiuPmn/OPjS1tI6kZtd0wlejRg9FGa+t7eyO5vZBQNm4aE0Av8ln+nnrJKliQTpP6tUXA5iVmh2sgeJLiVyub+hHOVljUOHhExqRcH8M9Ve2/CXds9Z6UA==
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=+6R7SmnxpZFERvOiZnG6EyWV1ADtMZ/7svn7kgc9XOg=;
 b=gqVdUhplg4h0RBhwHokRYqjcQuy/kRXULJK7+ULCQDJyxZePz1k4HgObuRyr1FCDbBD1LjSFG5f925ErnGrv5MUVSQJIwhil4vG/f51DV1IxK0NzN3QV05D2vO34lWiY+ZrpLV6M4pv5I8FItMxkLwoCeFHS7brGrf2BrP3qaMgemyvCeQksY2PlfuOirnRAO8LC9bLqbUf8HKtit4knYqYw+fobclyDc46IwQo+dqx16Tb9LXrslDrSbvAF/JasTiqGrCj2sc2qorNQifmJ/AcYugXhv0aAWSGftX5Cajg1XtB62y4kGTCeePyJyPR86wxb4KAq9HpdnjizvsJoqA==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v2 03/10] xen/arm: vgic: implement helper functions for
 virq checks
Thread-Topic: [PATCH v2 03/10] xen/arm: vgic: implement helper functions for
 virq checks
Thread-Index: AQHcB5d76MRh/Swq2EGu624C+G/Fb7Ru3gyA
Date: Fri, 22 Aug 2025 15:08:30 +0000
Message-ID: <8c111099-df9f-412f-b7be-d1c519875600@epam.com>
References:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
 <f029f88411e816846d13aaf33d4ef703f95d1bb8.1754568795.git.leonid_komarianskyi@epam.com>
 <87y0rcekyo.fsf@epam.com> <7360fa14-2c55-4aa8-bbba-e355a47d2928@epam.com>
 <87sehjbkx4.fsf@epam.com>
In-Reply-To: <87sehjbkx4.fsf@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: GV2PR03MB8678:EE_|GV2PR03MB10975:EE_
x-ms-office365-filtering-correlation-id: 507c8178-d9e3-47e8-0923-08dde18dc15b
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|376014|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?TndMVnJkV1A0QWxhTG9KU1gyeERRbGpPdkQvd1lWb3ZlOTE3Q2pra2ZzMVZu?=
 =?utf-8?B?T0tzV3hqbmVlVDRRV3o3UzY2azA1ZFkrMVJBNjYrMDRmZ1NaSzIxdFhQaXFp?=
 =?utf-8?B?cWRVTmp1Mkhwa1dkK1NzeTdZMHRYc1RCTk9RZEwvNVpvV0d6RXM1b3U3Wjhw?=
 =?utf-8?B?V2dsRS9QZmhKRmJzSVZENGdDVEdTdXIzYmhyOGNiaWFMcEtiT0JoczNHN2Zn?=
 =?utf-8?B?QVZxOHMzRzdtZGE5dEkrc3ozaTFiVEpXZmh4U042eHkzWnQyWUk2dmw1clFJ?=
 =?utf-8?B?MnMyWkE1M0hBZHJQeWNwOUNDRWw2MUMvTzdRZ21Fd2NYbExWRWxaZE12c0hz?=
 =?utf-8?B?ZTBoU1ZaMk9nMkRPczExVCtzc25aSlE2NVVuTzI4SXFhTjIvcXdwV2ZBck5C?=
 =?utf-8?B?L0JIVnVXQ0grWExUSVN5SUx2VDduMjB6MVRwYmdFUmpYNnZ3cGR6WEo1UGdr?=
 =?utf-8?B?Q3k0SmpGK1hYeUg0TlNVNUZETllSN2VNaXFzYVFNdUNmaStyYXA2dHVmbUs4?=
 =?utf-8?B?NmZyRHVicDBTTzQ3T04zcmdOcHQxVjJucnpwSVpBbHJBb0VlTUJsZ0NuUEpV?=
 =?utf-8?B?WG44dXYvTnVBSllZWkd6cXc4WnRodVdsbjA3dnFnYmR2bVdrZk1Vd25ZYUg1?=
 =?utf-8?B?Z3pna2VYZ2FwM1lMc2ZDbDcwUFhuOWlxVUs0MG5ra1dyRnIzZ2J1OUZvRWw5?=
 =?utf-8?B?eldVVm1qd3d6ZWMvMHBWeFREY1l3RUZweVR5NWFwNWJibnpnaTcrUkNPd3Vm?=
 =?utf-8?B?bms3Nk5zRmlienZGREJ4WXV1NG1EQmJRdHRLbHVPMEpLMTYwQkN4M0lnUUZE?=
 =?utf-8?B?VEV3Mkx6c3piUkt0cForcVA2a0lERm82WE5VeVpQelNXV01EaUdlNWppd3VW?=
 =?utf-8?B?ZG9HQXhvTXhkZUFTYUlSMkpTOEhkdEoyYWFoVFpmYktYMUExdUEvR0NwUTRz?=
 =?utf-8?B?bXJwYnBrbEVhWEVXQU9NTWNiNnhjeW55MjluMEVQT0JmTk9aQ3oxK1FmcU5Y?=
 =?utf-8?B?YUJEeXgza1Zjcko0bDRyeFJ1S1lIT0VoS3JjRkdDTEpxZUVqREFBWG1GWXAw?=
 =?utf-8?B?TnMyQTJtN2phRlY0c2Ixekd4Q1VMVEtoNEJOMjZSTXdqVW5SeFBEV25FOStv?=
 =?utf-8?B?eGZoQ1lUekdPeTRsZ1Z2Vm1FOW9MN01Uc1pWelpValJLQ1l6YVpNTGlrQytZ?=
 =?utf-8?B?S1Y3VENwSiszS2lSRVVrNGhiTExHRnR6MTB3Q2RQaXlaTUdxRzdCKzA3RGor?=
 =?utf-8?B?UTJLdk5ITjdWYUU5ZWxuWU1objEwSlB4U01kZ3N3NHZtR2g5RllkWjl6VCt2?=
 =?utf-8?B?YmJPb2lzcEExQUxtMDNZdnV3S2x3MDR3VjZvdmV1eVJOSGl3c21uaHBYdTVH?=
 =?utf-8?B?c1h1QjB5L2ZMak5iNUJkQk5rWVhtUi9WVm11WVIrK1h6ZHUyRXF0SHdyRUNV?=
 =?utf-8?B?UmIwckRqemF5VHAxYm1raUJGNlhPTTd0VjJrTTgrbUZWdTJ0OHM0Y1N2aVA3?=
 =?utf-8?B?Z1ExOFQ3a01TR1NGRXBjeENWYTZsb1NyR2luZm1Ia3JGOUkwYXE1eVpxYlBz?=
 =?utf-8?B?UDBjN3ZLYzB4emkyRi9vc1FGQ1h3eGtKNWhEUUR4SW5UMWhCNE1kc3ZMOVRm?=
 =?utf-8?B?Q0pFMzdGcHFDQ2NRTzZYbU1sZjBEbHQ0aUZXcVN1dG1iOVh1clZwM1ZEeDhB?=
 =?utf-8?B?ZHNRNExDUlJOWlpxZytySGNSdnRueDFOYzBRME1mT3VUN0V0emJJSGNIaXIz?=
 =?utf-8?B?MmI5V0c4cVlKL2h1OFVNeVlyb1dDSzFYQzZaYzQ2ZzVrWCt5Zzc4UkZNQW1C?=
 =?utf-8?B?dWgzNngyK3djeHlMaGJxTnNPMGE0bEhKbVBMb2FnNVRiek5McnRrVlh4cnNV?=
 =?utf-8?B?Z3pwUEFhWVQ4WmFKbVdLazhYR2ZJWmRycjhUeXR6ZFhoeXdSeUdkVWV1Ukl6?=
 =?utf-8?B?ZVRqUHZhOGhCRGNWWVFVamVLSXFRRmNmbEhVSHE1TWF1WEN6bk1YYmcyU1Ir?=
 =?utf-8?B?NlA0MWFrOHJBPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?TTlkb3RMUytoZ2hWQiszUTlFWTA1N1QxY0JMcC93Q2Z4U05vclYwYWUvRytu?=
 =?utf-8?B?QVFocFFlOUg5VFFlUlgybHBsMjZrcVZWbEVKTUNoekVUejQrM0EwOWQyV2c5?=
 =?utf-8?B?a3FySXNwSE8wYTdXd0tpalhSY1FFVEhNYVkxRUl5ckNTVVkzT05ST0tYVVlv?=
 =?utf-8?B?S2Vpb1NTUFFzeERyK0tSR01hMmY4QllPZHd5TlJBQmpaQUhYMEQ0TXZGNkxD?=
 =?utf-8?B?RDAxczk5aXY4V2E3elljZzdCWm9EMGNkb3hieFNocXMzdlZwZElueUVITjNx?=
 =?utf-8?B?THAxMGt5VGVUc3JRcnBHNFZ3UkR6K1ZTVzA5VDNCSElUOFhBWHR2WmR5NnVX?=
 =?utf-8?B?Sm4wWGNXNCtVOXNXeUZzdjYzTmNJRDUwYlY1WFJqeEV4Nzd0Nnh4QWlyQXVa?=
 =?utf-8?B?SVlrUDZ3ZUxxM1BIUGdtOXBOVFRDWVdWOWk4QmpaZW9obExoWGJqNmgyOWtG?=
 =?utf-8?B?WEdpWU9xM3R5WTNwbENKK0dPSFpKNzVYVGR4L3F3YUlsRjA5aVlFMCtOajBL?=
 =?utf-8?B?STFqaWNnNStub3c4V08xNFl0NVVna2xaRU4rTG1jSkNlNDUxOVBkcU5UajZY?=
 =?utf-8?B?c0RmY1pzN29QZTlXeXZBdEEvZXY3SUF3eVJDeVlrekVRMUFnWVpQeU9JUzRP?=
 =?utf-8?B?RWVGSGVNTkN1MGtWamhPZm5lUFZIbTcyRmtCS2hNNENhbExld0k3VFFkNjN2?=
 =?utf-8?B?Ykd0WFVYU0toTUl4NkQvYXJRRG10UmJRVTAyK2VMVWZJaHlPOTRrK0dUM2xl?=
 =?utf-8?B?aEw1TUk3ekhYVnVVdlA4ZXRRUkNUWHVKWGQyci9pS2JwY2UrTUlQd203Slhs?=
 =?utf-8?B?OWpNenhMUUFxL1ArbVpnRkZERGpBaml1TGJRQWp4QnZ1V3puTFBYK3VkMGxa?=
 =?utf-8?B?N09sS1RNUUIvWlA1MGpCd0ZTNTN2ZEV1b2VnVXdwVDBFamtMcWNwSmhMNHo3?=
 =?utf-8?B?eEJnSkdaQW13c1ZVREpMUENiWGhIMFZkRVdOa3pNZUpiZU45dXo3VFkvMno0?=
 =?utf-8?B?aTdsWnBxWnVrZW9pM3NOaDdQbHkvSHU3RXNKd1laSWVEYVdKM2dMdnJvN29U?=
 =?utf-8?B?ZXNoRkpKQVBrRjhJNHpLRU52RjY2TFpuUm03bW1DMkdkeGdmUlRkc2hYNVJU?=
 =?utf-8?B?OS9WWUdEL0RBMzN1UGF4N2ZBMXc2RmUxZjBjZkIzSTFzNHBKa21hV2ZOOEpy?=
 =?utf-8?B?ZVA1Z1E0MTFJTXFZSXFUVUlKZy9mTEZReVNXYkFKQ0diWmYyN1h1T1hpMFhH?=
 =?utf-8?B?RjFJQy9RbENJWE1IUzFHY3pSL3RNMzhUSE1rbGVITG40d0ZiTis4Vy84aXVH?=
 =?utf-8?B?dEFUdnBLVk01ZTMyQ3p1YWY5S2ZobDFFQW1DYTJua0duNi84UVlxY0VQaTVJ?=
 =?utf-8?B?cHBMbmRaQ3lKcmJ2SVVPSnA0UXlMb1BHMFdpL0cyM09qZkxLVTBrNjNEZHY0?=
 =?utf-8?B?RmxsaklVTUFyUjZEcWViWkk5TUhYQjB6M2s0aWdjNTkrVVg4TUxyTEpoY2Nj?=
 =?utf-8?B?SVE5ZDE5dzFhL3Evc1J1YU1ZNzIrQldoWXhlb0Q2bzFnOXZmcG5TUG5MWHZ1?=
 =?utf-8?B?WnRWc280TE40Z0NhWSt5bS96cENIVWhIYXh6MFIrSHd1RVhMbmozRG5pMXBD?=
 =?utf-8?B?NUx0Ly9iMGl2eGh1WUkyNkJOcWFaMFVtNzllMWRJSFl4b0UyQ08rZytsOGU1?=
 =?utf-8?B?Y3BWdXRvREhqZ2lIeWlaWU1vVDV2bjRZSFZGdTVVUk1hK1crL3pIMXlFZUFp?=
 =?utf-8?B?Y3luSW9nY0czcmlKS3lXMFlRYWdCR1JKU1NKNXU0U2lRS1c1ZzJNTUxyRnRG?=
 =?utf-8?B?aDVnM0dmcGkwaUlTZnVjdmpEV0J5UmRnSFlyakVlRVorUU8zdnN5ZVgxL2RM?=
 =?utf-8?B?Q3pRMmZ4dWJ4WFBUY1d5b0FrUkpzeitYNHMxa0JmUW5TS0JWQmNrcTBwVmtx?=
 =?utf-8?B?eUZEbS9yanhoTWZMeG5PUHk2cVpIbWNPVE1naEVzTnlXbjZNRldvZ1JBVnE2?=
 =?utf-8?B?Q1BTMVl5SFg4ZmhjL3YrUUZvU0Q1NEYzMThYQ3E2UlBqd2ZjUlc3N2dBSGJV?=
 =?utf-8?B?WFpycXMwTHNrZHN5WXVZR0hZMVlMZHgxanpxci90L05EMHlQaEcxamhOQTB1?=
 =?utf-8?B?TDl3ZlJIeHZpWDE5Y0RoQkhGQzBnSjBUWGlEcmlLbjhIQzhnMHhyUS9lbHpT?=
 =?utf-8?Q?xuo9+lk1+dnIAHvVpPPIEFg=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <695BF816C05A1A41A136636D02E4BF5F@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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 507c8178-d9e3-47e8-0923-08dde18dc15b
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Aug 2025 15:08:30.6542
 (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: BfGpQA8vKqcg1wHuUbk25jagxv6OZ04xFS8Fy9BnFYdcZLDCkBfYG9TmNA5Brseun1qhhyhwJNrJ3y9Ri7sjKQV1lTEhSYWmw3rW813FKsM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR03MB10975

SGkgVm9sb2R5bXlyLA0KDQpPbiAyMi4wOC4yNSAxNToyOCwgVm9sb2R5bXlyIEJhYmNodWsgd3Jv
dGU6DQo+IA0KPiBMZW9uaWQsDQo+IA0KPiBMZW9uaWQgS29tYXJpYW5za3lpIDxMZW9uaWRfS29t
YXJpYW5za3lpQGVwYW0uY29tPiB3cml0ZXM6DQo+IA0KPj4gSGkgVm9sb2R5bXlyLA0KPj4NCj4+
IFRoYW5rIHlvdSBmb3IgeW91IGNvbW1lbnQuDQo+Pg0KPj4gT24gMjEuMDguMjUgMTg6NDYsIFZv
bG9keW15ciBCYWJjaHVrIHdyb3RlOg0KPj4+DQo+Pj4gTGVvbmlkIEtvbWFyaWFuc2t5aSA8TGVv
bmlkX0tvbWFyaWFuc2t5aUBlcGFtLmNvbT4gd3JpdGVzOg0KPj4+DQo+Pj4+IEludHJvZHVjZWQg
dHdvIG5ldyBoZWxwZXIgZnVuY3Rpb25zIGZvciB2R0lDOiB2Z2ljX2lzX3ZhbGlkX2lycSBhbmQN
Cj4+Pj4gdmdpY19pc19zaGFyZWRfaXJxLiBUaGUgZnVuY3Rpb25zIGFyZSBzaW1pbGFyIHRvIHRo
ZSBuZXdseSBpbnRyb2R1Y2VkDQo+Pj4+IGdpY19pc192YWxpZF9pcnEgYW5kIGdpY19pc19zaGFy
ZWRfaXJxLCBidXQgdGhleSB2ZXJpZnkgd2hldGhlciBhIHZJUlENCj4+Pj4gaXMgYXZhaWxhYmxl
IGZvciBhIHNwZWNpZmljIGRvbWFpbiwgd2hpbGUgR0lDLXNwZWNpZmljIGZ1bmN0aW9ucw0KPj4+
PiB2YWxpZGF0ZSBJTlRJRHMgZm9yIHRoZSByZWFsIEdJQyBoYXJkd2FyZS4gRm9yIGV4YW1wbGUs
IHRoZSBHSUMgbWF5DQo+Pj4+IHN1cHBvcnQgYWxsIDk5MiBTUEkgbGluZXMsIGJ1dCB0aGUgZG9t
YWluIG1heSB1c2Ugb25seSBzb21lIHBhcnQgb2YgdGhlbQ0KPj4+PiAoZS5nLiwgNjQwKSwgZGVw
ZW5kaW5nIG9uIHRoZSBoaWdoZXN0IElSUSBudW1iZXIgZGVmaW5lZCBpbiB0aGUgZG9tYWluDQo+
Pj4+IGNvbmZpZ3VyYXRpb24uIFRoZXJlZm9yZSwgZm9yIHZHSUMtcmVsYXRlZCBjb2RlIGFuZCBj
aGVja3MsIHRoZQ0KPj4+PiBhcHByb3ByaWF0ZSBmdW5jdGlvbnMgc2hvdWxkIGJlIHVzZWQuIEFs
c28sIHVwZGF0ZWQgdGhlIGFwcHJvcHJpYXRlDQo+Pj4+IGNoZWNrcyB0byB1c2UgdGhlc2UgbmV3
IGhlbHBlciBmdW5jdGlvbnMuDQo+Pj4+DQo+Pj4+IFRoZSBwdXJwb3NlIG9mIGludHJvZHVjaW5n
IG5ldyBoZWxwZXIgZnVuY3Rpb25zIGZvciB2R0lDIGlzIGVzc2VudGlhbGx5DQo+Pj4+IHRoZSBz
YW1lIGFzIGZvciBHSUM6IHRvIGF2b2lkIHBvdGVudGlhbCBjb25mdXNpb24gd2l0aCBHSUMtcmVs
YXRlZA0KPj4+PiBjaGVja3MgYW5kIHRvIGNvbnNvbGlkYXRlIHNpbWlsYXIgY29kZSBpbnRvIHNl
cGFyYXRlIGZ1bmN0aW9ucywgd2hpY2gNCj4+Pj4gY2FuIGJlIG1vcmUgZWFzaWx5IGV4dGVuZGVk
IGJ5IGFkZGl0aW9uYWwgY29uZGl0aW9ucywgZS5nLiwgd2hlbg0KPj4+PiBpbXBsZW1lbnRpbmcg
ZXh0ZW5kZWQgU1BJIGludGVycnVwdHMuDQo+Pj4+DQo+Pj4+IE9ubHkgdGhlIHZhbGlkYXRpb24g
Y2hhbmdlIGluIHZnaWNfaW5qZWN0X2lycSBtYXkgYWZmZWN0IGV4aXN0aW5nDQo+Pj4+IGZ1bmN0
aW9uYWxpdHksIGFzIGl0IGN1cnJlbnRseSBjaGVja3Mgd2hldGhlciB0aGUgdklSUSBpcyBsZXNz
IHRoYW4gb3INCj4+Pj4gZXF1YWwgdG8gdmdpY19udW1faXJxcy4gU2luY2UgSVJRIGluZGV4ZXMg
c3RhcnQgZnJvbSAwICh3aGVyZSAzMiBpcyB0aGUNCj4+Pj4gZmlyc3QgU1BJKSwgdGhlIGNoZWNr
IHNob3VsZCBiZWhhdmUgY29uc2lzdGVudGx5IHdpdGggc2ltaWxhciBsb2dpYyBpbg0KPj4+PiBv
dGhlciBwbGFjZXMgYW5kIHNob3VsZCBjaGVjayBpZiB0aGUgdklSUSBudW1iZXIgaXMgbGVzcyB0
aGFuDQo+Pj4+IHZnaWNfbnVtX2lycXMuIFRoZSByZW1haW5pbmcgY2hhbmdlcywgd2hpY2ggcmVw
bGFjZSBvcGVuLWNvZGVkIGNoZWNrcw0KPj4+PiB3aXRoIHRoZSB1c2Ugb2YgdGhlc2UgbmV3IGhl
bHBlciBmdW5jdGlvbnMsIGRvIG5vdCBpbnRyb2R1Y2UgYW55DQo+Pj4+IGZ1bmN0aW9uYWwgY2hh
bmdlcywgYXMgdGhlIGhlbHBlciBmdW5jdGlvbnMgZm9sbG93IHRoZSBjdXJyZW50IHZJUlENCj4+
Pj4gaW5kZXggdmVyaWZpY2F0aW9uIGxvZ2ljLg0KPj4+Pg0KPj4+PiBTaWduZWQtb2ZmLWJ5OiBM
ZW9uaWQgS29tYXJpYW5za3lpIDxsZW9uaWRfa29tYXJpYW5za3lpQGVwYW0uY29tPg0KPj4+Pg0K
Pj4+PiAtLS0NCj4+Pj4gQ2hhbmdlcyBpbiBWMjoNCj4+Pj4gLSBpbnRyb2R1Y2VkIHRoaXMgcGF0
Y2gNCj4+Pj4gLS0tDQo+Pj4+ICAgIHhlbi9hcmNoL2FybS9naWMuYyAgICAgICAgICAgICAgfCAg
MyArLS0NCj4+Pj4gICAgeGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3ZnaWMuaCB8ICA3ICsrKysr
KysNCj4+Pj4gICAgeGVuL2FyY2gvYXJtL2lycS5jICAgICAgICAgICAgICB8ICA0ICsrLS0NCj4+
Pj4gICAgeGVuL2FyY2gvYXJtL3ZnaWMuYyAgICAgICAgICAgICB8IDEwICsrKysrKysrLS0NCj4+
Pj4gICAgNCBmaWxlcyBjaGFuZ2VkLCAxOCBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQ0K
Pj4+Pg0KPj4+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2dpYy5jIGIveGVuL2FyY2gvYXJt
L2dpYy5jDQo+Pj4+IGluZGV4IGViMDM0NmE4OTguLjQ3ZmNjZjIxZDggMTAwNjQ0DQo+Pj4+IC0t
LSBhL3hlbi9hcmNoL2FybS9naWMuYw0KPj4+PiArKysgYi94ZW4vYXJjaC9hcm0vZ2ljLmMNCj4+
Pj4gQEAgLTEzMyw4ICsxMzMsNyBAQCBpbnQgZ2ljX3JvdXRlX2lycV90b19ndWVzdChzdHJ1Y3Qg
ZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgdmlycSwNCj4+Pj4gICAgDQo+Pj4+ICAgICAgICBBU1NF
UlQoc3Bpbl9pc19sb2NrZWQoJmRlc2MtPmxvY2spKTsNCj4+Pj4gICAgICAgIC8qIENhbGxlciBo
YXMgYWxyZWFkeSBjaGVja2VkIHRoYXQgdGhlIElSUSBpcyBhbiBTUEkgKi8NCj4+Pj4gLSAgICBB
U1NFUlQodmlycSA+PSAzMik7DQo+Pj4+IC0gICAgQVNTRVJUKHZpcnEgPCB2Z2ljX251bV9pcnFz
KGQpKTsNCj4+Pj4gKyAgICBBU1NFUlQodmdpY19pc19zaGFyZWRfaXJxKGQsIHZpcnEpKTsNCj4+
Pj4gICAgICAgIEFTU0VSVCghaXNfbHBpKHZpcnEpKTsNCj4+Pj4gICAgDQo+Pj4+ICAgICAgICBy
ZXQgPSB2Z2ljX2Nvbm5lY3RfaHdfaXJxKGQsIE5VTEwsIHZpcnEsIGRlc2MsIHRydWUpOw0KPj4+
PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3ZnaWMuaCBiL3hlbi9hcmNo
L2FybS9pbmNsdWRlL2FzbS92Z2ljLmgNCj4+Pj4gaW5kZXggMzVjMGM2YThiMC4uNDUyMDFmNGNh
NSAxMDA2NDQNCj4+Pj4gLS0tIGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3ZnaWMuaA0KPj4+
PiArKysgYi94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vdmdpYy5oDQo+Pj4+IEBAIC0zMzUsNiAr
MzM1LDEzIEBAIGV4dGVybiB2b2lkIHZnaWNfY2hlY2tfaW5mbGlnaHRfaXJxc19wZW5kaW5nKHN0
cnVjdCB2Y3B1ICp2LA0KPj4+PiAgICAvKiBEZWZhdWx0IG51bWJlciBvZiB2R0lDIFNQSXMuIDMy
IGFyZSBzdWJzdHJhY3RlZCB0byBjb3ZlciBsb2NhbCBJUlFzLiAqLw0KPj4+PiAgICAjZGVmaW5l
IFZHSUNfREVGX05SX1NQSVMgKG1pbihnaWNfbnVtYmVyX2xpbmVzKCksIFZHSUNfTUFYX0lSUVMp
IC0gMzIpDQo+Pj4+ICAgIA0KPj4+PiArZXh0ZXJuIGJvb2wgdmdpY19pc192YWxpZF9pcnEoc3Ry
dWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IHZpcnEpOw0KPj4+PiArDQo+Pj4+ICtzdGF0aWMg
aW5saW5lIGJvb2wgdmdpY19pc19zaGFyZWRfaXJxKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVk
IGludCB2aXJxKQ0KPj4+PiArew0KPj4+PiArICAgIHJldHVybiAodmlycSA+PSBOUl9MT0NBTF9J
UlFTICYmIHZnaWNfaXNfdmFsaWRfaXJxKGQsIHZpcnEpKTsNCj4+Pj4gK30NCj4+Pj4gKw0KPj4+
PiAgICAvKg0KPj4+PiAgICAgKiBBbGxvY2F0ZSBhIGd1ZXN0IFZJUlENCj4+Pj4gICAgICogIC0g
c3BpID09IDAgPT4gYWxsb2NhdGUgYSBQUEkuIEl0IHdpbGwgYmUgdGhlIHNhbWUgb24gZXZlcnkg
dkNQVQ0KPj4+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2lycS5jIGIveGVuL2FyY2gvYXJt
L2lycS5jDQo+Pj4+IGluZGV4IDEyYzcwZDAyY2MuLjUwZTU3YWFlYTcgMTAwNjQ0DQo+Pj4+IC0t
LSBhL3hlbi9hcmNoL2FybS9pcnEuYw0KPj4+PiArKysgYi94ZW4vYXJjaC9hcm0vaXJxLmMNCj4+
Pj4gQEAgLTQ0Miw3ICs0NDIsNyBAQCBpbnQgcm91dGVfaXJxX3RvX2d1ZXN0KHN0cnVjdCBkb21h
aW4gKmQsIHVuc2lnbmVkIGludCB2aXJxLA0KPj4+PiAgICAgICAgdW5zaWduZWQgbG9uZyBmbGFn
czsNCj4+Pj4gICAgICAgIGludCByZXR2YWwgPSAwOw0KPj4+PiAgICANCj4+Pj4gLSAgICBpZiAo
IHZpcnEgPj0gdmdpY19udW1faXJxcyhkKSApDQo+Pj4+ICsgICAgaWYgKCAhdmdpY19pc192YWxp
ZF9pcnEoZCwgdmlycSkgKQ0KPj4+PiAgICAgICAgew0KPj4+PiAgICAgICAgICAgIHByaW50ayhY
RU5MT0dfR19FUlINCj4+Pj4gICAgICAgICAgICAgICAgICAgInRoZSB2SVJRIG51bWJlciAldSBp
cyB0b28gaGlnaCBmb3IgZG9tYWluICV1IChtYXggPSAldSlcbiIsDQo+Pj4+IEBAIC01NjAsNyAr
NTYwLDcgQEAgaW50IHJlbGVhc2VfZ3Vlc3RfaXJxKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVk
IGludCB2aXJxKQ0KPj4+PiAgICAgICAgaW50IHJldDsNCj4+Pj4gICAgDQo+Pj4+ICAgICAgICAv
KiBPbmx5IFNQSXMgYXJlIHN1cHBvcnRlZCAqLw0KPj4+PiAtICAgIGlmICggdmlycSA8IE5SX0xP
Q0FMX0lSUVMgfHwgdmlycSA+PSB2Z2ljX251bV9pcnFzKGQpICkNCj4+Pj4gKyAgICBpZiAoICF2
Z2ljX2lzX3NoYXJlZF9pcnEoZCwgdmlycSkgKQ0KPj4+PiAgICAgICAgICAgIHJldHVybiAtRUlO
VkFMOw0KPj4+PiAgICANCj4+Pj4gICAgICAgIGRlc2MgPSB2Z2ljX2dldF9od19pcnFfZGVzYyhk
LCBOVUxMLCB2aXJxKTsNCj4+Pj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS92Z2ljLmMgYi94
ZW4vYXJjaC9hcm0vdmdpYy5jDQo+Pj4+IGluZGV4IGM1NjNiYTkzYWYuLjQ4ZmJhZjU2ZmIgMTAw
NjQ0DQo+Pj4+IC0tLSBhL3hlbi9hcmNoL2FybS92Z2ljLmMNCj4+Pj4gKysrIGIveGVuL2FyY2gv
YXJtL3ZnaWMuYw0KPj4+PiBAQCAtMjQsNiArMjQsMTIgQEANCj4+Pj4gICAgI2luY2x1ZGUgPGFz
bS9naWMuaD4NCj4+Pj4gICAgI2luY2x1ZGUgPGFzbS92Z2ljLmg+DQo+Pj4+ICAgIA0KPj4+PiAr
DQo+Pj4+ICtib29sIHZnaWNfaXNfdmFsaWRfaXJxKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVk
IGludCB2aXJxKQ0KPj4+DQo+Pj4gSSBoYXZlIHRoZSBzYW1lIGNvbW1lbnQgYXMgZm9yIHRoZSBw
cmV2aW91cyBwYXRjaC4gVGhpcyBmdW5jdGlvbg0KPj4+IGNvbXBsZXRlbHkgaWdub3JlcyBMUElz
IHByZXNlbmNlLCB3aGlsZSB5b3UgY2FuJ3QgYXJndWUgdGhhdCBMUElzIGFzDQo+Pj4gdmFsaWQu
IEFnYWluLCBmdW5jdGlvbiBjYWxsZXJzIGFyZSBleHBlY3RpbmcgdGhpcyBiZWhhdmlvciwgc28g
dGhpcyBpcw0KPj4+IGZpbmUsIGJ1dCBmdW5jdGlvbiBuYW1lIHNob3VsZCBiZXR0ZXIgcmVmbGVj
dCBpdHMgYmVoYXZpb3IuDQo+Pj4NCj4+PiBbLi4uXQ0KPj4+DQo+Pg0KPj4gV291bGQgaXQgYmUg
b2theSB0byByZW5hbWUgdGhlc2UgZnVuY3Rpb25zIGFzIHByb3Bvc2VkIGluIHRoZSBwcmV2aW91
cw0KPj4gcGF0Y2ggZGlzY3Vzc2lvbjoNCj4+IHZnaWNfaXNfdmFsaWRfaXJxIC0+IHZnaWNfaXNf
dmFsaWRfbGluZQ0KPj4gdmdpY19pc19zaGFyZWRfaXJxIC0+IHZnaWNfaXNfc3BpPw0KPj4NCj4+
IE9yLCBpbiB0aGUgY2FzZSBvZiB2Z2ljLCBpcyBpdCBub3QgYSBnb29kIGlkZWEgdG8gdXNlIHRo
ZSAibGluZSIgc3VmZml4DQo+PiBiZWNhdXNlIHZnaWMgZG9lcyBub3QgaGF2ZSBwaHlzaWNhbCBp
bnRlcnJ1cHQgbGluZXM/IFdvdWxkIGl0IGJlIGJldHRlcg0KPj4gdG8gcmVuYW1lIGl0IHRvIHZn
aWNfaXNfdmFsaWRfbm9uX2xwaSBpbnN0ZWFkPw0KPiANCj4gSSB0aGluayBpdCBpcyBiZXR0ZXIg
dG8gZm9sbG93IHRoZSBwR0lDIG5hbWluZyBjb252ZW50aW9uLiBXaGlsZSB0aGVyZQ0KPiBpcyBu
byBwaHlzaWNhbCBJUlEgbGluZXMgaW4gdkdJQywgaXQgZW11bGF0ZXMgcmVhbCBHSUMgYW55d2F5
cy4NCj4gDQoNCk9rYXksIGdvb2QgcG9pbnQuIEkgd2lsbCByZW5hbWUgdGhlIHZHSUMtcmVsYXRl
ZCBmdW5jdGlvbnMgaW4gdGhlIHBHSUMgDQptYW5uZXIgaW4gVjMuDQoNCkJlc3QgcmVnYXJkcywN
Ckxlb25pZA0K


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 15:27:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 15:27:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090323.1447633 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upTfu-0000Dc-8O; Fri, 22 Aug 2025 15:27:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090323.1447633; Fri, 22 Aug 2025 15:27: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 1upTfu-0000DV-5f; Fri, 22 Aug 2025 15:27:30 +0000
Received: by outflank-mailman (input) for mailman id 1090323;
 Fri, 22 Aug 2025 15:27:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=O20d=3C=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1upTfs-0000DP-So
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 15:27:29 +0000
Received: from mail-ed1-x541.google.com (mail-ed1-x541.google.com
 [2a00:1450:4864:20::541])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7faf4753-7f6c-11f0-b898-0df219b8e170;
 Fri, 22 Aug 2025 17:27:22 +0200 (CEST)
Received: by mail-ed1-x541.google.com with SMTP id
 4fb4d7f45d1cf-61c26f3cf0dso789483a12.1
 for <xen-devel@lists.xenproject.org>; Fri, 22 Aug 2025 08:27:22 -0700 (PDT)
Received: from ?IPV6:2003:e5:872d:6400:8c05:37ee:9cf6:6840?
 (p200300e5872d64008c0537ee9cf66840.dip0.t-ipconnect.de.
 [2003:e5:872d:6400:8c05:37ee:9cf6:6840])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-61c3172ef02sm70612a12.39.2025.08.22.08.27.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 22 Aug 2025 08:27:21 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7faf4753-7f6c-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1755876442; x=1756481242; 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=hq11fDoaP+ZGkHm5tsQSVdohfEvuIXTVot9Y7gJQV98=;
        b=J8kZV68VAmB/6SqsxibUmdsKzLdtiKaxMwxlXXC1/OA4TxzSfDzgImKdjByd3sW3ME
         dpjLItf0hWkeW9NUag6kref/H0It7tFZxL99E2oHPeP5tOb8CfV2jyo4sHW4oo7fp36U
         5UrE8PuKt1ym9PpW6Pv1mIpVpjg78a3Ds1ViXX5dfywixY5EZIzB1jEgTmOWXsE5CD9k
         M5Zey/mZzx/dO2P4thH9TtpU1782qZUpp/y7Oze+h9w79oWXYHH1cKQjLKVTWdAw9VAk
         3RHgvHfVxtFdvSVLJdJBsn9tvnCUby1lDrhySUNCjfQUVGcQidQI81LImP6MfYblr52g
         O+xw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755876442; x=1756481242;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=hq11fDoaP+ZGkHm5tsQSVdohfEvuIXTVot9Y7gJQV98=;
        b=coGrQi4sKmyRkEi/FPAJ4cCOuxtGSH/fWotqVlCmHYSBGsysv2ghzCvNa++ZefJP1u
         /htbMdT4/HpKoWkvN7o2jbt7swBs3AdnvDt5jpZPgDn2EIcjxrp+bHTgqRbmO+/zmSst
         x2tVrqOKeIzVobpfervkvHIdIbAMdPuLM2nVp3pER/jF++dEcQImA3A0Vx3neOt7U5us
         3kdOOk2rj2smSN/mkLQmDTY3modOKYgmOK3WiTIumc1fM4KUF3uy56uJhNRJEWsmVAir
         +5Q/Be+0neL/Va3ih0mvo0qcLpWN+J7dhzCtYQYE9wxFk3ScPxdxo6PWl8Hnevniwvcu
         KuJQ==
X-Forwarded-Encrypted: i=1; AJvYcCWoVruh59cRVB30Wa1Lw4LoD2XKLeORKMGsUXzla6STmvDxglj5/zpUX8noIFYV7mG2adCS6/jmxNI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyDVOA0k91QXcWKNuO947lw/nBvK+Ayc3d16W8ROn3Pcjx5cDo6
	YNPJQ24yn77TqolWPmK7DMFyV+0dCHz1LR0mPAGbw0ROAEY5qF+opI28IYW9QOFlP52Z77sUTMj
	iQkw4jgsd9A==
X-Gm-Gg: ASbGncuL2KyakQwcZ1ridbv5hGUFfG834pFx3Wl7c5lOXHXeI0Uz10uL4iUTtM+kOJV
	pzsGW/S2hEqCcvii5ovHphccH1YC4v1oYzSIvXtXN1619rSB2sWj3LnLck3iNR1v4YxAkN8fit+
	Oxs79thur5xYUQjr5UuHuJGhuBUUNMf3M3h960NTVcXmREFDQ682FjIHIjI2nnJzOEGMns+Z5nX
	hJYh5rArlfTwBshz7idWrE8JzwtuB0cSD0rG9NzyvG/fAptKjMDqyA0Oz85EcVexRRL+4AuGahB
	pP9v9yu7cinEDyh5rQ3+1MkR9Kv1hz+Us+Q5VHnTAE0P6B+6D1YK0VydTLDxh0Td/zeTWlISeQI
	nQmHFTHyAK2vhDQjcv7GClVxSdG7HZ07qBKY05THoxJyk+iug/r50VmUalPvEJoG5KhsE0MbL1J
	CGGapSeWeOqNLoAeydnpNglQTuvr+Hgx9GpChyqMjcD2kz74n3BXZknREvnw==
X-Google-Smtp-Source: AGHT+IFcNynsMq4JhxIQkMtvKfuxCcmUa7TIQYSFBqMFgZAGs3NMI5yDArivmzFXVTEfm+uv20rm/g==
X-Received: by 2002:a05:6402:52c4:b0:607:28c9:c3c9 with SMTP id 4fb4d7f45d1cf-61c1b453182mr3058169a12.6.1755876441637;
        Fri, 22 Aug 2025 08:27:21 -0700 (PDT)
Message-ID: <05e9628d-83e5-4feb-881d-5854b72bd560@suse.com>
Date: Fri, 22 Aug 2025 17:27:20 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: domU suspend issue - freeze processes failed - Linux 6.16
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>
References: <aKiBJeqsYx_4Top5@mail-itl> <aKiBwEsogK420kwo@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: <aKiBwEsogK420kwo@mail-itl>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------CZ01TGMC3WuCaE2IVYmdW09F"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------CZ01TGMC3WuCaE2IVYmdW09F
Content-Type: multipart/mixed; boundary="------------6ECTXRhl4o2T2sNieLvXwlU0";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>
Message-ID: <05e9628d-83e5-4feb-881d-5854b72bd560@suse.com>
Subject: Re: domU suspend issue - freeze processes failed - Linux 6.16
References: <aKiBJeqsYx_4Top5@mail-itl> <aKiBwEsogK420kwo@mail-itl>
In-Reply-To: <aKiBwEsogK420kwo@mail-itl>

--------------6ECTXRhl4o2T2sNieLvXwlU0
Content-Type: multipart/mixed; boundary="------------CU0YtSF0cMOmiBmW2MJ0McbB"

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

T24gMjIuMDguMjUgMTY6NDIsIE1hcmVrIE1hcmN6eWtvd3NraS1Hw7NyZWNraSB3cm90ZToN
Cj4gT24gRnJpLCBBdWcgMjIsIDIwMjUgYXQgMDQ6Mzk6MzNQTSArMDIwMCwgTWFyZWsgTWFy
Y3p5a293c2tpLUfDs3JlY2tpIHdyb3RlOg0KPj4gSGksDQo+Pg0KPj4gV2hlbiBzdXNwZW5k
aW5nIGRvbVUgSSBnZXQgdGhlIGZvbGxvd2luZyBpc3N1ZToNCj4+DQo+PiAgICAgIEZyZWV6
aW5nIHVzZXIgc3BhY2UgcHJvY2Vzc2VzDQo+PiAgICAgIEZyZWV6aW5nIHVzZXIgc3BhY2Ug
cHJvY2Vzc2VzIGZhaWxlZCBhZnRlciAyMC4wMDQgc2Vjb25kcyAoMSB0YXNrcyByZWZ1c2lu
ZyB0byBmcmVlemUsIHdxX2J1c3k9MCk6DQo+PiAgICAgIHRhc2s6eGwgICAgICAgICAgICAg
IHN0YXRlOkQgc3RhY2s6MCAgICAgcGlkOjQ2NiAgIHRnaWQ6NDY2ICAgcHBpZDoxICAgICAg
dGFza19mbGFnczoweDQwMDA0MCBmbGFnczoweDAwMDA0MDA2DQo+PiAgICAgIENhbGwgVHJh
Y2U6DQo+PiAgICAgICA8VEFTSz4NCj4+ICAgICAgIF9fc2NoZWR1bGUrMHgyZjMvMHg3ODAN
Cj4+ICAgICAgIHNjaGVkdWxlKzB4MjcvMHg4MA0KPj4gICAgICAgc2NoZWR1bGVfcHJlZW1w
dF9kaXNhYmxlZCsweDE1LzB4MzANCj4+ICAgICAgIF9fbXV0ZXhfbG9jay5jb25zdHByb3Au
MCsweDQ5Zi8weDg4MA0KPj4gICAgICAgdW5yZWdpc3Rlcl94ZW5idXNfd2F0Y2grMHgyMTYv
MHgyMzANCj4+ICAgICAgIHhlbmJ1c193cml0ZV93YXRjaCsweGI5LzB4MjIwDQo+PiAgICAg
ICB4ZW5idXNfZmlsZV93cml0ZSsweDEzMS8weDFiMA0KPj4gICAgICAgdmZzX3dyaXRldisw
eDI2Yy8weDNkMA0KPj4gICAgICAgPyBkb193cml0ZXYrMHhlYi8weDExMA0KPj4gICAgICAg
ZG9fd3JpdGV2KzB4ZWIvMHgxMTANCj4+ICAgICAgIGRvX3N5c2NhbGxfNjQrMHg4NC8weDJj
MA0KPj4gICAgICAgPyBkb19zeXNjYWxsXzY0KzB4MjAwLzB4MmMwDQo+PiAgICAgICA/IGdl
bmVyaWNfaGFuZGxlX2lycSsweDNmLzB4NjANCj4+ICAgICAgID8gc3lzY2FsbF9leGl0X3dv
cmsrMHgxMDgvMHgxNDANCj4+ICAgICAgID8gZG9fc3lzY2FsbF82NCsweDIwMC8weDJjMA0K
Pj4gICAgICAgPyBfX2lycV9leGl0X3JjdSsweDRjLzB4ZTANCj4+ICAgICAgIGVudHJ5X1NZ
U0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsweDc2LzB4N2UNCj4+ICAgICAgUklQOiAwMDMzOjB4
NzliNjE4MTM4NjQyDQo+PiAgICAgIFJTUDogMDAyYjowMDAwN2ZmZjlhMTkyZmM4IEVGTEFH
UzogMDAwMDAyNDYgT1JJR19SQVg6IDAwMDAwMDAwMDAwMDAwMTQNCj4+ICAgICAgUkFYOiBm
ZmZmZmZmZmZmZmZmZmRhIFJCWDogMDAwMDAwMDAwMjRmZDQ5MCBSQ1g6IDAwMDA3OWI2MTgx
Mzg2NDINCj4+ICAgICAgUkRYOiAwMDAwMDAwMDAwMDAwMDAzIFJTSTogMDAwMDdmZmY5YTE5
MzEyMCBSREk6IDAwMDAwMDAwMDAwMDAwMTQNCj4+ICAgICAgUkJQOiAwMDAwN2ZmZjlhMTkz
MDAwIFIwODogMDAwMDAwMDAwMDAwMDAwMCBSMDk6IDAwMDAwMDAwMDAwMDAwMDANCj4+ICAg
ICAgUjEwOiAwMDAwMDAwMDAwMDAwMDAwIFIxMTogMDAwMDAwMDAwMDAwMDI0NiBSMTI6IDAw
MDAwMDAwMDAwMDAwMTQNCj4+ICAgICAgUjEzOiAwMDAwN2ZmZjlhMTkzMTIwIFIxNDogMDAw
MDAwMDAwMDAwMDAwMyBSMTU6IDAwMDAwMDAwMDAwMDAwMDANCj4+ICAgICAgIDwvVEFTSz4N
Cj4+ICAgICAgT09NIGtpbGxlciBlbmFibGVkLg0KPj4gICAgICBSZXN0YXJ0aW5nIHRhc2tz
OiBTdGFydGluZw0KPj4gICAgICBSZXN0YXJ0aW5nIHRhc2tzOiBEb25lDQo+PiAgICAgIHhl
bjptYW5hZ2U6IGRvX3N1c3BlbmQ6IGZyZWV6ZSBwcm9jZXNzZXMgZmFpbGVkIC0xNg0KPj4N
Cj4+IFRoZSBwcm9jZXNzIGluIHF1ZXN0aW9uIGlzIGB4bCBkZXZkYCBkYWVtb24uIEl0J3Mg
YSBkb21VIHNlcnZpbmcgYQ0KPj4geGVudmlmIGJhY2tlbmQuDQo+Pg0KPj4gSSBub3RpY2Vk
IGl0IG9uIDYuMTYuMSwgYnV0IGxvb2tpbmcgYXQgZWFybGllciB0ZXN0IGxvZ3MgSSBzZWUg
aXQgd2l0aA0KPj4gNi4xNi1yYzYgYWxyZWFkeSAoYnV0IGludGVyZXN0aW5nbHksIG5vdCA2
LjE2LXJjMiB5ZXQ/IGZlZWxzIHdlaXJkIGdpdmVuDQo+PiBzZWVtaW5nbHkgbm8gcmVsZXZh
bnQgY2hhbmdlcyBiZXR3ZWVuIHJjMiBhbmQgcmM2KS4NCj4gDQo+IEkgZm9yZ290IHRvIGlu
Y2x1ZGUgbGluayBmb3IgKGEgbGl0dGxlKSBtb3JlIGRldGFpbHM6DQo+IGh0dHBzOi8vZ2l0
aHViLmNvbS9RdWJlc09TL3F1YmVzLWxpbnV4LWtlcm5lbC9wdWxsLzExNTcNCj4gDQo+IEVz
cGVjaWFsbHksIHRoZXJlIGlzIGFub3RoZXIgY2FsbCB0cmFjZSB3aXRoIHBhbmljX29uX3dh
cm4gZW5hYmxlZCAtDQo+IHNsaWdodGx5IGRpZmZlcmVudCwgYnV0IGxvb2tzIHJlbGF0ZWQu
DQo+IA0KDQpJJ20gcHJldHR5IHN1cmUgdGhlIFBWIHZhcmlhbnQgZm9yIHN1c3BlbmRpbmcg
aXMganVzdCB3cm9uZzogaXQgaXMgY2FsbGluZw0KZHBtX3N1c3BlbmRfc3RhcnQoKSBmcm9t
IGRvX3N1c3BlbmQoKSB3aXRob3V0IHRha2luZyB0aGUgcmVxdWlyZWQNCnN5c3RlbV90cmFu
c2l0aW9uX211dGV4LCByZXN1bHRpbmcgaW4gdGhlIFdBUk4oKSBpbiBwbV9yZXN0cmljdF9n
ZnBfbWFzaygpLg0KDQpJdCBtaWdodCBiZSBhcyBlYXN5IGFzIGp1c3QgYWRkaW5nIHRoZSBt
dXRleCgpIGNhbGwgdG8gZG9fc3VzcGVuZCgpLCBidXQgSSdtDQpyZWFsbHkgbm90IHN1cmUg
dGhhdCB3aWxsIGJlIGEgcHJvcGVyIGZpeC4NCg0KDQpKdWVyZ2VuDQo=
--------------CU0YtSF0cMOmiBmW2MJ0McbB
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-----

--------------CU0YtSF0cMOmiBmW2MJ0McbB--

--------------6ECTXRhl4o2T2sNieLvXwlU0--

--------------CZ01TGMC3WuCaE2IVYmdW09F
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/Ey8FAmiojFgFAwAAAAAACgkQsN6d1ii/Ey+g
UQf/ZF1mLCUtBfsj2zMidGd4qZIRW2hH4ZTHtTXw7r9rdYeUGpMuyDmdb6A2y/zJZWtCwTW8ZKsh
tk27ftZHcSYbhoy38x+uAPC2DUvu8UPfk9x7qWOaEU8rsVScYLJMU9o9p7ep82dNWTR9hV0CgIV3
4rPvy2Uffz5Y67k1aMfLY2nC1+xvDMay0wHRul29HBMyxIlNz/6hrToBDqtgXAXnfKO8J9tLxoHF
WwTts9nRl/sPnOOfK4G+Lhk3yuT5lQOilA5uvnlWOb1kwWe69uzLaipQsVmJjMTTOy3lBK9NDG2D
PZmofGe4eDzxL1R213/fDj6UgCWl6W1ZtRafq+ipSQ==
=a4tu
-----END PGP SIGNATURE-----

--------------CZ01TGMC3WuCaE2IVYmdW09F--


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 16:34:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 16:34:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090369.1447647 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upUiT-00016N-2z; Fri, 22 Aug 2025 16:34:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090369.1447647; Fri, 22 Aug 2025 16:34: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 1upUiT-00016G-0P; Fri, 22 Aug 2025 16:34:13 +0000
Received: by outflank-mailman (input) for mailman id 1090369;
 Fri, 22 Aug 2025 16:34:11 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kk10=3C=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1upUiR-00016A-0L
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 16:34:11 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d22431ec-7f75-11f0-b898-0df219b8e170;
 Fri, 22 Aug 2025 18:34:06 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by DB3PR0302MB8920.eurprd03.prod.outlook.com (2603:10a6:10:432::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.17; Fri, 22 Aug
 2025 16:34:03 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9052.013; Fri, 22 Aug 2025
 16:34: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>
X-Inumbo-ID: d22431ec-7f75-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BpvLyL3zxS3OS1R7egnx690x8zFIa7bbfR2mPylTpVpJnwoa3D1/2qSe1N9qLGOAd4sl3jwnJKuX85qHTBEJX3D/bElApZxQRH+7Tm6CGxfDrait7nsRe1BEFyhNj+I48cF213qe8yEofwaE0UTeKwStaOSuUKf4i8MRpEKQ1A+KcCG+1L3IAjApAD8CVPLNgH2dM1/0Gn7Af510Dz0EOlggiHhzbCGvj4aILqo+ace9K/qwpgrDPlMwMLpEiYo2piigaAuR+o/xwC2n1fx1xfqWpUITvUFvGqBAh5UnCwqpid/CjK2BEYsFrfN5JZX9SwufDpwJ2v3czTN9JVcwTQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4Y6ODFH/756JWMtgUFfh4CRHPL1Hulj7MsTRf+uwGHg=;
 b=XJUEWwEHaUrAUxCz/sOprfHFnYJkLDUxLh+siOYGQwxhWMQXxcCoA2VBzKHqSsriI0+Ud3Jz5xF0DxfTAhiy8x/0aThXvB2NdgfLb+UXLDTs8RXEp91ul7y29N2WuuY7NqccX4PR0ZOYpFQpWjwzW641tSIw8ixr+4wIwTGmKVoYszF2dXfmEdwiar80tI1OMwFBnnSy+PdpVuYk0TxuwPG7Y44otHNo+kIneYMzsYDToV5hRkXH1VgKKNxndmWEFBcxraPl6kmyWLF1K1hpANuuqEIOaZJogPIR7p9wkuCuczzpckPwOo5TvglQJOfvZA1mwUQ1XESZB312gFA5+Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4Y6ODFH/756JWMtgUFfh4CRHPL1Hulj7MsTRf+uwGHg=;
 b=ET4kBQZ7u18oJjzq8nhhz7AL1pl/O4jFucO3uvh7ubiafB8ICuA98KTvOLF1nmMsX6UanIGx60hYCGOzp32LQrz5UVHC05cjmjxZ9+WHN+NaP1yTbn8frj92YmdzJS13tvJP3X6xIMRL0ofvDXjyYFDtsw7N+6dJ6Sw5ZEpLNtcH14wuq053gwUoYjzY7NauasNwcAm3x3CP0/o5mBLlNsgnQWYdOdq8zW6gBEHcHHU5Fg1BsHBJhCfQH5j/4N6An8RHEix7G+rDU/NoGV571hsLdVb1uBaqF0Lf5zEg3jW39oabo8Ep7CLC0FrAsiNxXG2n9b1NXuENDruPKwMusw==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Nicola Vetrini <nicola.vetrini@bugseng.com>, Jan Beulich
	<jbeulich@suse.com>
CC: Doug Goldstein <cardoe@cardoe.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Andrew Cooper <andrew.cooper3@citrix.com>, Anthony
 PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] misra: consider conversion from UL or (void*) to function
 pointer as safe
Thread-Topic: [PATCH] misra: consider conversion from UL or (void*) to
 function pointer as safe
Thread-Index: AQHcETrg9Y9S2hDXvUqVfYmm522krbRswSIAgAAGvACAAhrPAA==
Date: Fri, 22 Aug 2025 16:34:02 +0000
Message-ID: <6b912698-b871-4819-ac30-14325d0be146@epam.com>
References:
 <9e5e4ff2c7ba0a90a6ac403e2de9318e18949274.1755628705.git.dmytro_prokopchuk1@epam.com>
 <90fb95a3-4b32-4785-a77c-373e5b9da6ed@suse.com>
 <e1e2abdf0ef8708097aa78440eeb7147@bugseng.com>
In-Reply-To: <e1e2abdf0ef8708097aa78440eeb7147@bugseng.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV2PR03MB9572:EE_|DB3PR0302MB8920:EE_
x-ms-office365-filtering-correlation-id: d4cc2f8e-ab47-4d26-38be-08dde199b463
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|376014|42112799006|7416014|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?VVFra0phUnBBcHY0SnZ2L2oxa3ZSeU1ydldQVTBVVWZuTVlHSHo2ZGpGZXJ1?=
 =?utf-8?B?eGhVVk5qTEhNanJ1YnAwUWtaTlB6bWVWaWxjdFJhN041RzgyVndvd0pzVExY?=
 =?utf-8?B?WHZHYUJ3dkNqRXgzS0FoaVJrZzZ1eFpoSWxMays3bkk0UFNMVXBIa0lTMmQ2?=
 =?utf-8?B?TG5OTG03OTF3Q1ZUU1RQVmN5TEZoUDJ6cDZiMWwyd1JJT3VzVVQ0M052ZjFt?=
 =?utf-8?B?UkgyRjN0L0ttTnFlQ3lObEM3L3BiR2Q2VExhQW9FMFpvVnY5eXFibEVCUW9p?=
 =?utf-8?B?VlVGVmMvcVFad0tjMWw1UWh6TkMvNFlxbEpvK0d2VkNINXh6L3VwRU02K1E3?=
 =?utf-8?B?QXU2UUZicEV5R0JCOGZuaTVqSjNZRGtwZkdrY1RqeGh3SUpKY0FxYjFiTnVu?=
 =?utf-8?B?VU4yYTdkaHhWQkIxV1lJakp1cXhZcU5IL01yVWJEckFQS1ZYakx2ZXR4aStK?=
 =?utf-8?B?Q0JSSGxZcDY4Y21NcDhXcVh6ZFFKb1JaamxDSlpoLzA4eFRLWnRHd053N1JC?=
 =?utf-8?B?NVk4Q3h3Sm0vV0I5eXU5aURMeFh3UW9FOHJVSGtMT0V0VG1Gb2czUk9BQ2M1?=
 =?utf-8?B?TytLR3VHaG9IY1FOTE1qYmxxaVdFYk1zWjNZQ1dpZE54Zyt1eWpkZm1DL2Ju?=
 =?utf-8?B?RHIyTXRRQkFYWWU0T3h2VVRucmU0OEYrbGprTnVtY3hlZVJ0U2FLd09QQWFJ?=
 =?utf-8?B?V0crUVkxbjZUdnEyelpieDYveE5XWUJRMGEzd1pxdXB0NXBKODRCNGdZRFhE?=
 =?utf-8?B?RVllK21UbktKR3BUaDNkUzAyeUJ1YUo1NWtBRGJlaE9kTUkwKzdWd1pHVGRV?=
 =?utf-8?B?M3dSVm1xckt5U0lBODFCZHRFcmtac1JEbHpzQUxOU1JqQjN3ZDF0alBpRDlI?=
 =?utf-8?B?SXBtbG1CN2c5cnJrcFluTGp2bGRoUHlYM3plVmpMNG44QUFwYjF3WkNaN0dG?=
 =?utf-8?B?SG0yaFBGaFMxM050UTFpVlFSTUVVNnFhVjJ5ZzJhUEhZOXJnd00xZkY5ZGZ0?=
 =?utf-8?B?R1kvZFF6MmVFWEhvTWhKNklpZXpoMWUwUm5vcTNUL1pDaHdlUTdzNk1hQUZF?=
 =?utf-8?B?aUZNYjdLVGV1WWFJTTlrOUp2VGJJbEdQcEVwZ3ZkRW43dE43eURtSW43Q2Er?=
 =?utf-8?B?THVGWW0xMEVyODQzSS8vN3VDWEh5NzlzaElQdlFLNkozRFdXRXFQYndjRHdB?=
 =?utf-8?B?SmtUV0ZSVWQyVXVyRFJoNmZsZ3NNZ2M4aWJhOWFCcUYzRXp2RjRsYmdvbzhT?=
 =?utf-8?B?NUtRS1pQOHh2MmlIRHNQRllNVnNsYWh1QWl0L09idlFWa01xL2dhUGdrbGR5?=
 =?utf-8?B?T3FaY0xHcnFTTEVWUlBRLzBwRzE1UXBJNVZPcWZ0bzZXLzhDNGFKVG9rZnQz?=
 =?utf-8?B?a0VHQTh4NFczTi8xVmJTVmRHeVU1NkVyZk1CRjNDVFNNM0dLQXlZVUlYWERo?=
 =?utf-8?B?RmphV29IOG8wbU9uZG91SFQxU3JaMG4rNVZHcTlhc0hMclFGT0VwbDVDL2Vr?=
 =?utf-8?B?dkNkMndsSnBkcXBZRGpXYTl6M3pQVkZ6YjJRQUhuM1l3djlwTWhMTmJjbVFV?=
 =?utf-8?B?dzR1WXpLMVMzK0lCQWVHaHhzbTJJK2EzMTRPTFlWRGdvaENkZk5IbHM1aFZo?=
 =?utf-8?B?UTUxRGozMGJsVnpvcjdHc3gvTGhGWVg0TkpxOElUMk1Pc0xMUzVnd3dGZElK?=
 =?utf-8?B?RWxqb0hiSk1OQ1pWajhyd0NmdFJUUi9LQ1Z4bTNlQkw0NGdHNGZac3l5SzI0?=
 =?utf-8?B?eHVibkJ3b1U0blBFWVFaN0ltNE9sanR0eGwrNzkrSEdqaE9SeHd6UDZDRTA0?=
 =?utf-8?B?ZFQ4V2RIcUovaHBrcVRmaVlFRkh0NTdEWnhrTHNVVXk3U0VvTGI3amFyL1Nz?=
 =?utf-8?B?MjI5eXRhdjN2SWYySW1KQkRJK1ZWVjFDS2tvMWwxZTVUSWRza0JBYmtOVzdE?=
 =?utf-8?B?OWYrNEJlVkZmTGd5OUhDbzZNQ3FROGowbFNnOUlLTWxRWXRjU25tTUtXT3lF?=
 =?utf-8?B?R1hEQ0hYSjJBPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(42112799006)(7416014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?NkgyWktPUmVUQkVLcXMxTjkrc2J5Q25UNFkrYk95RnNuTUszcUdGTmxzYkwr?=
 =?utf-8?B?ZkEyTDViMXk4K3Y2RGdvVDlQSkk5QzlPSmZzdG00eHphaEdoVm5Ic0Rjdjd6?=
 =?utf-8?B?S3RMcHpncVVKUnl4VjU4N3pVRkkwTTc0T3VvUHorMmhrWEFuZ3dMV2VtTS90?=
 =?utf-8?B?dXdwSEg2RG5GOUdUOUhmVGMwcFNrZW9wZVJNdE1jOTJiMVhZTXl0eWd1am8w?=
 =?utf-8?B?SkU3QUU2b3NRWFpCUFhmeUZ1ek5VMExrR2h6bVNGKzNsamloR3VBZjdrbXZj?=
 =?utf-8?B?Z09nTG1TUDZnaVg0UFdENkZUNXFCajhLdWtoU0JXQVdZYTRoUUNQUWMxQ3hw?=
 =?utf-8?B?M1N6aG1pZWpWemVmSEE4N0F4M2VXc0s5RVhzRDA2YzZZbW5xN21iRmRlRHNE?=
 =?utf-8?B?QjFlMzNSL1V5UVBEQVpVQUIzMG1hZGNUYjVocDNzT3ZaNDQ1RTJOcE05dnZD?=
 =?utf-8?B?Mmg1eStXM3VOWU1jTWV0NWljQzBETU9XKy9IOWtLMjM2K0dreWFCUDEzdFlu?=
 =?utf-8?B?MnpVVlVCZkZHeGJqbFpLblhkMUZOcGVyZFgrZHErY2dhL2hiNWxoLzlBZ0NK?=
 =?utf-8?B?cmNrN3hSUXg4aGtDWFlPbDdlbTJtbGtEbGF6RXRMOXhXeWkrdUdQbElOSzVN?=
 =?utf-8?B?a0FjWEY1L2ZuRCtSYUYyVVlTTTZuUDdZSzE0U3dPK1p5YWVkQ2k5NXB3aTla?=
 =?utf-8?B?blpza1VNVkptWmcrRTQ2MkJXeDNqSUMvRENnM1RKcXN3L2ZaMVJhd2p4OGx6?=
 =?utf-8?B?ZDM3TjVLa1FGZ1kvS0hpQ0xFZndPWkZGcGRYVXltZnIxOUphVEt4Q3Y2YkVi?=
 =?utf-8?B?WjNBOGkwVXN1cGxaTUpaeFFzWFExQ3pjSFg2T3dVUXd1THlXMnQ0QUpXOFhx?=
 =?utf-8?B?UXZyTTVuUW84UGwzY3pHVkF0UmNoZ0RDQ3c5M1QxUmRFVjVST3g5dm53bEZV?=
 =?utf-8?B?RG4vMTZZMVNINksxUzdKSWFrbGVtSkV0dElTL2tzd0Z6a0NyREF6MGlUZ2s2?=
 =?utf-8?B?MkhPRjE5eW9UajdiaHpxNjA1dUZidmZaWldUUnFtamVxcU54enluVjJ6ZDh3?=
 =?utf-8?B?bXRLcnAydVM5MVhkdGNIMlFyVGsrM0RXcTFpME45ODBPNE9sblBVRnRnV1No?=
 =?utf-8?B?VjZLejRQY281eDRISU5UVmRackt6YlZDS0NYeVg0eTd1K0VQYUxRSHBmb0Rk?=
 =?utf-8?B?WXNJaTBwNFUvcVQ4aU1xaVo5UWFYWm9NZWJhRVcrZnEya2NLRURRdFFtWW5Z?=
 =?utf-8?B?K1NqdE1YS2c2a0M2Vy9UcElJRVZhSGpSTitUbVVCYlBVWFBMazk4dXpaZDNR?=
 =?utf-8?B?T3FzNkdtTGU0ZlNxSW1IakJnaE0vd2lCQmdYRjBoZHIwUjlVeSs0V3NzT294?=
 =?utf-8?B?U0VGRDFKemRhZ3FjRkoxMmxha21XYkpnaEZjT3JHMXNIdzRSdVF0UWdtOXRG?=
 =?utf-8?B?K3lveGdyMC9URXNsWlZqejBEWFc1UlhhV1RjbDNYMjNINUMwekxkSmdWeFlO?=
 =?utf-8?B?bDk0QmQ4OUUwb2YxWWhPWUtabjBjeEVNNU5nQmpQWGVTajFOd2R1ZktUYjdr?=
 =?utf-8?B?bDR5bzlGT2FJZ0xkaHhvTHZ4MW1vT29BekNWcFVYR05VUW5PcW0wajNzNG00?=
 =?utf-8?B?dE9NM0p6MWJ4cHN2WEpuZGQyTkNkUFJCaTRhajBTUTRWQ2lkazJlUnBZWDhw?=
 =?utf-8?B?UmhBOS9oSkJnNlU3NWRBWjV4NzdlTnBaS3pEY2dybXFxTTIwRDMxaS9BZFlX?=
 =?utf-8?B?Z1AxTXJidjRRQ3FkV2RLZzlNeXByTUFXNmNIREpBTjFlWEEyZ1lQamJEQkQ1?=
 =?utf-8?B?UkkveVNPUHFYYUhTTS80UlpuVTBWRmRNU2k1Yzl4UlhJOXNvd2ZKTFc3UnlS?=
 =?utf-8?B?Ui95QVZhM1dkVjVDMTBuVXI2Tk4zN3hwSE5ObUtyVU1JMEQ1Rm9DOC8vTTlr?=
 =?utf-8?B?YlE1ek5GNjNpOGRjcTF0MWlCWmpWMENHc2xoQ3pGKzh5MWZDZ2UrNnJKRlVR?=
 =?utf-8?B?dkx3eklFaTVXcWlNWHRIaTc3dmU1NENvQWc0WGtsbU52OHNib0ZIQURWVCsw?=
 =?utf-8?B?THdKaFl2NTdsdEx5ei9HMVpqVlBJZXBtd2VPUzlYNmRNRll4S1pibXhXQkVK?=
 =?utf-8?B?OWlFR0pDUjBBc3ZaaTlERTFpQ2NiMEQxMDh1T2x0c3JBR25HamxBSnJFV0Na?=
 =?utf-8?B?aGc9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <E7CBFDEA83DA9E4F949DC0A91D30549D@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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d4cc2f8e-ab47-4d26-38be-08dde199b463
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Aug 2025 16:34:02.8788
 (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: MTyogdczAtVaGYwB00dIaJlXjjiSzZdovhyPtO37/fHKyvI0+4pqBeRXIEst7AtBfi9EO8OUNK2fUxVwJJFhOqBlhbfst1u/Bu7Bbu7j6hU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR0302MB8920

DQoNCk9uIDgvMjEvMjUgMTE6MjUsIE5pY29sYSBWZXRyaW5pIHdyb3RlOg0KPiBPbiAyMDI1LTA4
LTIxIDEwOjAxLCBKYW4gQmV1bGljaCB3cm90ZToNCj4+IE9uIDE5LjA4LjIwMjUgMjA6NTUsIERt
eXRybyBQcm9rb3BjaHVrMSB3cm90ZToNCj4+PiBSdWxlIDExLjEgc3RhdGVzIGFzIGZvbGxvd2lu
ZzogIkNvbnZlcnNpb25zIHNoYWxsIG5vdCBiZSBwZXJmb3JtZWQNCj4+PiBiZXR3ZWVuIGEgcG9p
bnRlciB0byBhIGZ1bmN0aW9uIGFuZCBhbnkgb3RoZXIgdHlwZS4iDQo+Pj4NCj4+PiBUaGUgY29u
dmVyc2lvbiBmcm9tIHVuc2lnbmVkIGxvbmcgb3IgKHZvaWQgKikgdG8gYSBmdW5jdGlvbiBwb2lu
dGVyDQo+Pj4gaXMgc2FmZSBpbiBYZW4gYmVjYXVzZSB0aGUgYXJjaGl0ZWN0dXJlcyBpdCBzdXBw
b3J0cyAoZS5nLiwgeDg2IGFuZA0KPj4+IEFSTSkgZ3VhcmFudGVlIGNvbXBhdGlibGUgcmVwcmVz
ZW50YXRpb25zIGJldHdlZW4gdGhlc2UgdHlwZXMuDQo+Pg0KPj4gSSB0aGluayB3ZSBuZWVkIHRv
IGJlIGFzIHByZWNpc2UgYXMgcG9zc2libGUgaGVyZS4gVGhlIGFyY2hpdGVjdHVyZXMNCj4+IGd1
YXJhbnRlZSBub3RoaW5nLCB0aGV5IG9ubHkgb2ZmZXIgbmVjZXNzYXJ5IGZ1bmRhbWVudGFscy4g
SW4gdGhlDQo+PiBXaW5kb3dzIHg4NiBBQkksIGZvciBleGFtcGxlLCB5b3UgY2FuJ3QgY29udmVy
dCBwb2ludGVycyB0by9mcm9tIGxvbmdzDQo+PiB3aXRob3V0IGxvc2luZyBkYXRhLiBXaGF0IHdl
IGJ1aWxkIHVwb24gaXMgd2hhdCByZXNwZWN0aXZlIEFCSXMgc2F5LA0KPj4gcG9zc2libHkgaW4g
Y29tYmluYXRpb24gb2YgaW1wbGVtZW50YXRpb24gc3BlY2lmaWNzIGxlZnQgdG8gY29tcGlsZXJz
Lg0KPj4NCj4gDQo+ICsxLCBhIG1lbnRpb24gb2YgdGhlIGNvbXBpbGVycyBhbmQgdGFyZ2V0cyB0
aGlzIGRldmlhdGlvbiByZWxpZXMgdXBvbiBpcyANCj4gbmVlZGVkLg0KDQpNYXliZSB3aXRoIHRo
aXMgd29yZGluZzoNCg0KVGhpcyBkZXZpYXRpb24gaXMgYmFzZWQgb24gdGhlIGd1YXJhbnRlZXMg
cHJvdmlkZWQgYnkgdGhlIHNwZWNpZmljIEFCSXMNCihlLmcuLCBBUk0gQUFQQ1MpIGFuZCBjb21w
aWxlcnMgKGUuZy4sIEdDQykgc3VwcG9ydGVkIGluIFhlbi4gVGhlc2UgQUJJcw0KZ3VhcmFudGVl
IGNvbXBhdGlibGUgcmVwcmVzZW50YXRpb25zIGZvciAndm9pZCAqJywgJ3Vuc2lnbmVkIGxvbmcn
IGFuZA0KZnVuY3Rpb24gcG9pbnRlcnMgZm9yIHRoZSBzdXBwb3J0ZWQgdGFyZ2V0IHBsYXRmb3Jt
cy4gVGhpcyBiZWhhdmlvciBpcw0KYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGFuZCBtYXkgbm90IGJl
IHBvcnRhYmxlIG91dHNpZGUgb2Ygc3VwcG9ydGVkDQplbnZpcm9ubWVudHMuDQoNCj4gDQo+Pj4g
LS0tIGEvZG9jcy9taXNyYS9kZXZpYXRpb25zLnJzdA0KPj4+ICsrKyBiL2RvY3MvbWlzcmEvZGV2
aWF0aW9ucy5yc3QNCj4+PiBAQCAtMzcwLDYgKzM3MCwxNiBAQCBEZXZpYXRpb25zIHJlbGF0ZWQg
dG8gTUlTUkEgQzoyMDEyIFJ1bGVzOg0KPj4+IMKgwqDCoMKgwqDCoMKgIHRvIHN0b3JlIGl0Lg0K
Pj4+IMKgwqDCoMKgwqAgLSBUYWdnZWQgYXMgYHNhZmVgIGZvciBFQ0xBSVIuDQo+Pj4NCj4+PiAr
wqDCoCAqIC0gUjExLjENCj4+PiArwqDCoMKgwqAgLSBUaGUgY29udmVyc2lvbiBmcm9tIHVuc2ln
bmVkIGxvbmcgb3IgKHZvaWQgXCopIHRvIGEgZnVuY3Rpb24gDQo+Pj4gcG9pbnRlciBkb2VzDQo+
Pj4gK8KgwqDCoMKgwqDCoCBub3QgbG9zZSBhbnkgaW5mb3JtYXRpb24gb3IgdmlvbGF0ZSB0eXBl
IHNhZmV0eSBhc3N1bXB0aW9ucyANCj4+PiBpZiB1bnNpZ25lZA0KPj4+ICvCoMKgwqDCoMKgwqAg
bG9uZyBvciAodm9pZCBcKikgdHlwZSBpcyBndWFyYW50ZWVkIHRvIGJlIHRoZSBzYW1lIGJpdCBz
aXplIA0KPj4+IGFzIGENCj4+PiArwqDCoMKgwqDCoMKgIGZ1bmN0aW9uIHBvaW50ZXIuIFRoaXMg
ZW5zdXJlcyB0aGF0IHRoZSBmdW5jdGlvbiBwb2ludGVyIGNhbiANCj4+PiBiZSBmdWxseQ0KPj4+
ICvCoMKgwqDCoMKgwqAgcmVwcmVzZW50ZWQgd2l0aG91dCB0cnVuY2F0aW9uIG9yIGNvcnJ1cHRp
b24uIFRoZSBtYWNybyANCj4+PiBCVUlMRF9CVUdfT04gaXMNCj4+PiArwqDCoMKgwqDCoMKgIGlu
dGVncmF0ZWQgaW50byB4ZW4vY29tbW9uL3ZlcnNpb24uYyB0byBjb25maXJtIGNvbnZlcnNpb24g
DQo+Pj4gY29tcGF0aWJpbGl0eQ0KPj4+ICvCoMKgwqDCoMKgwqAgYWNyb3NzIGFsbCB0YXJnZXQg
cGxhdGZvcm1zLg0KPj4+ICvCoMKgwqDCoCAtIFRhZ2dlZCBhcyBgc2FmZWAgZm9yIEVDTEFJUi4N
Cj4+DQo+PiBXaHkgdGhlIGVzY2FwaW5nIG9mICogaGVyZSwgd2hlbiAuLi4NCj4+DQo+Pj4gLS0t
IGEvZG9jcy9taXNyYS9ydWxlcy5yc3QNCj4+PiArKysgYi9kb2NzL21pc3JhL3J1bGVzLnJzdA0K
Pj4+IEBAIC00MzEsNyArNDMxLDEzIEBAIG1haW50YWluZXJzIGlmIHlvdSB3YW50IHRvIHN1Z2dl
c3QgYSBjaGFuZ2UuDQo+Pj4gwqDCoMKgwqDCoCAtIEFsbCBjb252ZXJzaW9ucyB0byBpbnRlZ2Vy
IHR5cGVzIGFyZSBwZXJtaXR0ZWQgaWYgdGhlIA0KPj4+IGRlc3RpbmF0aW9uDQo+Pj4gwqDCoMKg
wqDCoMKgwqAgdHlwZSBoYXMgZW5vdWdoIGJpdHMgdG8gaG9sZCB0aGUgZW50aXJlIHZhbHVlLiBD
b252ZXJzaW9ucyB0byANCj4+PiBib29sDQo+Pj4gwqDCoMKgwqDCoMKgwqAgYW5kIHZvaWQqIGFy
ZSBwZXJtaXR0ZWQuIENvbnZlcnNpb25zIGZyb20gJ3ZvaWQgbm9yZXR1cm4gKCopIA0KPj4+ICgu
Li4pJw0KPj4+IC3CoMKgwqDCoMKgwqAgdG8gJ3ZvaWQgKCopKC4uLiknIGFyZSBwZXJtaXR0ZWQu
DQo+Pj4gK8KgwqDCoMKgwqDCoCB0byAndm9pZCAoKikoLi4uKScgYXJlIHBlcm1pdHRlZC4gQ29u
dmVyc2lvbnMgZnJvbSB1bnNpZ25lZCANCj4+PiBsb25nIG9yDQo+Pj4gK8KgwqDCoMKgwqDCoCAo
dm9pZCBcKikgdG8gYSBmdW5jdGlvbiBwb2ludGVyIGFyZSBwZXJtaXR0ZWQgaWYgdGhlIHNvdXJj
ZSANCj4+PiB0eXBlIGhhcw0KPj4+ICvCoMKgwqDCoMKgwqAgZW5vdWdoIGJpdHMgdG8gcmVzdG9y
ZSBmdW5jdGlvbiBwb2ludGVyIHdpdGhvdXQgdHJ1bmNhdGlvbiBvciANCj4+PiBjb3JydXB0aW9u
Lg0KPj4+ICvCoMKgwqDCoMKgwqAgRXhhbXBsZTo6DQo+Pj4gKw0KPj4+ICvCoMKgwqDCoMKgwqDC
oMKgwqDCoCB1bnNpZ25lZCBsb25nIGZ1bmNfYWRkciA9ICh1bnNpZ25lZCBsb25nKSZzb21lX2Z1
bmN0aW9uOw0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCB2b2lkICgqcmVzdG9yZWRfZnVuYyko
dm9pZCkgPSAodm9pZCAoKikodm9pZCkpZnVuY19hZGRyOw0KPj4NCj4+IC4uLiBjb250ZXh0IGhl
cmUgc3VnZ2VzdHMgdGhleSB3b3JrIGZpbmUgdW4tZXNjYXBlZCwgYW5kIHlvdSBldmVuIGFkZCAN
Cj4+IHNvbWUgdW4tDQo+PiBlc2NhcGVkIGluc3RhbmNlcyBhcyB3ZWxsLiBQZXJoYXBzIEknbSBz
aW1wbHkgdW5hd2FyZSBvZiBzb21lIA0KPj4gcGVjdWxpYXJpdHk/DQo+Pg0KPiANCj4gVGhpcyBp
cyBhIGxpdGVyYWwgcnN0IGJsb2NrLCB3aGlsZSB0aGUgb3RoZXIgaXMgbm90ICgqIGFjdHMgYXMg
YSBidWxsZXQgDQo+IHBvaW50IGluIHJzdCBpaXJjKQ0KDQpUaGlzIGlzIGhvdyAic3BoaW54LWJ1
aWxkIiB0b29sIGludGVycHJldHMgdGhpcy4NCjEuICogaW5zaWRlIHNpbmdsZSBxdW90ZXMgJycg
LT4gbG9va3Mgbm9ybWFsLCBlLmcuIOKAmHZvaWQgKCopKOKApinigJkNCjIuICogd2l0aG91dCBx
dW90ZXMgLT4gd2FybmluZw0KZGV2aWF0aW9ucy5yc3Q6MzY5OiBXQVJOSU5HOiBJbmxpbmUgZW1w
aGFzaXMgc3RhcnQtc3RyaW5nIHdpdGhvdXQgDQplbmQtc3RyaW5nLiBbZG9jdXRpbHNdDQozLiBc
KiAtPiBsb29rcyBub3JtYWwsIGUuZy4gKHZvaWQgKikNCg0KQmVjYXVzZSB0aGF0IHdlIG5lZWQg
c3VjaCBmb3JtYXQ6IFwqDQoNCkRteXRyby4NCg0KPiANCj4+IEphbg0KPiANCg==


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 18:42:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 18:42:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090428.1447657 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upWio-0007tL-Jh; Fri, 22 Aug 2025 18:42:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090428.1447657; Fri, 22 Aug 2025 18:42: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 1upWio-0007tE-Gp; Fri, 22 Aug 2025 18:42:42 +0000
Received: by outflank-mailman (input) for mailman id 1090428;
 Fri, 22 Aug 2025 18:42:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RLTp=3C=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1upWin-0007t8-8n
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 18:42:41 +0000
Received: from fout-b1-smtp.messagingengine.com
 (fout-b1-smtp.messagingengine.com [202.12.124.144])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c451909e-7f87-11f0-b898-0df219b8e170;
 Fri, 22 Aug 2025 20:42:34 +0200 (CEST)
Received: from phl-compute-05.internal (phl-compute-05.internal [10.202.2.45])
 by mailfout.stl.internal (Postfix) with ESMTP id 591DA1D0015B;
 Fri, 22 Aug 2025 14:42:33 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-05.internal (MEProxy); Fri, 22 Aug 2025 14:42:33 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 22 Aug 2025 14:42:31 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c451909e-7f87-11f0-b898-0df219b8e170
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=1755888153;
	 x=1755974553; bh=VVGrmRlRJJSa4oJiuTW1lYsVWBBaILvOMPtNofRG1JM=; b=
	rwfoBOr0AWQxEybwJZfDflhEgufm9hQGxbOG203JTQnwS6egygcn27doVbXqCBRN
	owvrS4h1tvXcliT06GFI67yWXamPgmt1oQIEkJIozncUXYkpyccebuul5htv3Q4y
	pqkdFf67O6GdQrYFK8RefwF1lOxuf1/mgQbhO2AxLw/BMWRx6zPTu/Lr2kSo6VY2
	0y3WRTqkRnOH/TsBsqRxkWBx8F1FtOM5VtQZikzebkWE+lME0N6vul7CrOqt1phj
	cm3aQR3I+zpJlWv/zE6/7z5cQ61pHVJfoH6KpN17QVs7eUO2NZbKqDZmjwJHF7j5
	jzSqbPHKBqYFPLjAP6WJKg==
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=
	1755888153; x=1755974553; bh=VVGrmRlRJJSa4oJiuTW1lYsVWBBaILvOMPt
	NofRG1JM=; b=jRBp4lsHTw8YjPvDThFY6aonifNYT4p4mKkNzsxauzsgxU6Ii0O
	wNRTmyC6WBRIFAHiq6cxCl+oVeI8rfr9Cn2a2kdMoVfluu8UcVy7p+3MYafef/3B
	BYLmAsZwj0fiJC2f5sghNwGVEmzJymWMq0OcABIlWwytgeP+c9rGlgrk1RFM6l+w
	d8G3+vSm2LydSgDg1xo4e5EkPnHM+NHbOB6UGRUZh8M1wl3XaO4UhQ/j/LVv+8Ke
	kOTtiVoiZGGnVA3J3ZsxBMPW3l2W1kxZQx35Wj9PQcR1KZ8BExDQddPUKk0eDyEa
	ssN8L6hFME7L16CjkOxf1gOfjfYOxzmkz8Q==
X-ME-Sender: <xms:GLqoaOnYdLY5rER0dSr34Nngb9azj-I-hXKNqWaSPnds3aGm4kd29w>
    <xme:GLqoaBVEgFIPgSqr05FFoTXscPFzVSGPdubyvPNDciLZFjrr7OXshx2b6tmZWe4mv
    aJGwf6zrx6Ppw>
X-ME-Received: <xmr:GLqoaDEFxdz3IOIwpmDnfc2G_NqO_TUePBkTYkDuZiAGfdpOZQzhlDPlPAu-8PAosARx9FRacENBkhMJh0kXKOwn3OrzdNOls48>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgdduieeghedtucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepueekteet
    gefggfekudehteegieeljeejieeihfejgeevhfetgffgteeuteetueetnecuffhomhgrih
    hnpehgihhthhhusgdrtghomhenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhep
    mhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrg
    gsrdgtohhmpdhnsggprhgtphhtthhopeehpdhmohguvgepshhmthhpohhuthdprhgtphht
    thhopehjghhrohhsshesshhushgvrdgtohhmpdhrtghpthhtohepgigvnhdquggvvhgvlh
    eslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhgpdhrtghpthhtohepshhsthgrsggv
    lhhlihhniheskhgvrhhnvghlrdhorhhgpdhrtghpthhtohepohhlvghkshgrnhgurhgpth
    ihshhhtghhvghnkhhosegvphgrmhdrtghomhdprhgtphhtthhopegsohhrihhsrdhoshht
    rhhovhhskhihsehorhgrtghlvgdrtghomh
X-ME-Proxy: <xmx:GLqoaNf4zn5YbX0ybIKZ0caBEciDEkbJ_YHzL6J3rEm19gYBoZgUkA>
    <xmx:GLqoaEJ34c0Vo9hU4rjeQDlmxzsNjJmKzg7UjqrHJPxoZqADcfIBVQ>
    <xmx:GLqoaCFbNr1Qx6EDM8aVtPS9UjtGckMBWVOhcV5LVI8JAlAnhSwu1g>
    <xmx:GLqoaHC04f1Vpekpgt7IRSTC1CcaOnH8sTSwayEOpDMkdolBqD0vVg>
    <xmx:GbqoaGrhAz2s27RHxNiESRMmL9sMGkWpERilaJ_ivYOnV_ziQ6IpwrMo>
Feedback-ID: i1568416f:Fastmail
Date: Fri, 22 Aug 2025 20:42:30 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: =?utf-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>
Subject: Re: domU suspend issue - freeze processes failed - Linux 6.16
Message-ID: <aKi6Foj-Lx_n0L6l@mail-itl>
References: <aKiBJeqsYx_4Top5@mail-itl>
 <aKiBwEsogK420kwo@mail-itl>
 <05e9628d-83e5-4feb-881d-5854b72bd560@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="awCzYWA5QtUvFfQA"
Content-Disposition: inline
In-Reply-To: <05e9628d-83e5-4feb-881d-5854b72bd560@suse.com>


--awCzYWA5QtUvFfQA
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Fri, 22 Aug 2025 20:42:30 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: =?utf-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>
Subject: Re: domU suspend issue - freeze processes failed - Linux 6.16

On Fri, Aug 22, 2025 at 05:27:20PM +0200, J=C3=BCrgen Gro=C3=9F wrote:
> On 22.08.25 16:42, Marek Marczykowski-G=C3=B3recki wrote:
> > On Fri, Aug 22, 2025 at 04:39:33PM +0200, Marek Marczykowski-G=C3=B3rec=
ki wrote:
> > > Hi,
> > >=20
> > > When suspending domU I get the following issue:
> > >=20
> > >      Freezing user space processes
> > >      Freezing user space processes failed after 20.004 seconds (1 tas=
ks refusing to freeze, wq_busy=3D0):
> > >      task:xl              state:D stack:0     pid:466   tgid:466   pp=
id:1      task_flags:0x400040 flags:0x00004006
> > >      Call Trace:
> > >       <TASK>
> > >       __schedule+0x2f3/0x780
> > >       schedule+0x27/0x80
> > >       schedule_preempt_disabled+0x15/0x30
> > >       __mutex_lock.constprop.0+0x49f/0x880
> > >       unregister_xenbus_watch+0x216/0x230
> > >       xenbus_write_watch+0xb9/0x220
> > >       xenbus_file_write+0x131/0x1b0
> > >       vfs_writev+0x26c/0x3d0
> > >       ? do_writev+0xeb/0x110
> > >       do_writev+0xeb/0x110
> > >       do_syscall_64+0x84/0x2c0
> > >       ? do_syscall_64+0x200/0x2c0
> > >       ? generic_handle_irq+0x3f/0x60
> > >       ? syscall_exit_work+0x108/0x140
> > >       ? do_syscall_64+0x200/0x2c0
> > >       ? __irq_exit_rcu+0x4c/0xe0
> > >       entry_SYSCALL_64_after_hwframe+0x76/0x7e
> > >      RIP: 0033:0x79b618138642
> > >      RSP: 002b:00007fff9a192fc8 EFLAGS: 00000246 ORIG_RAX: 0000000000=
000014
> > >      RAX: ffffffffffffffda RBX: 00000000024fd490 RCX: 000079b618138642
> > >      RDX: 0000000000000003 RSI: 00007fff9a193120 RDI: 0000000000000014
> > >      RBP: 00007fff9a193000 R08: 0000000000000000 R09: 0000000000000000
> > >      R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000014
> > >      R13: 00007fff9a193120 R14: 0000000000000003 R15: 0000000000000000
> > >       </TASK>
> > >      OOM killer enabled.
> > >      Restarting tasks: Starting
> > >      Restarting tasks: Done
> > >      xen:manage: do_suspend: freeze processes failed -16
> > >=20
> > > The process in question is `xl devd` daemon. It's a domU serving a
> > > xenvif backend.
> > >=20
> > > I noticed it on 6.16.1, but looking at earlier test logs I see it with
> > > 6.16-rc6 already (but interestingly, not 6.16-rc2 yet? feels weird gi=
ven
> > > seemingly no relevant changes between rc2 and rc6).
> >=20
> > I forgot to include link for (a little) more details:
> > https://github.com/QubesOS/qubes-linux-kernel/pull/1157
> >=20
> > Especially, there is another call trace with panic_on_warn enabled -
> > slightly different, but looks related.
> >=20
>=20
> I'm pretty sure the PV variant for suspending is just wrong: it is calling
> dpm_suspend_start() from do_suspend() without taking the required
> system_transition_mutex, resulting in the WARN() in pm_restrict_gfp_mask(=
).
>=20
> It might be as easy as just adding the mutex() call to do_suspend(), but =
I'm
> really not sure that will be a proper fix.

Hm, this might explain the second call trace, but not the freeze failure
quoted here above, I think?


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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmiouhYACgkQ24/THMrX
1yyeOAf8DlxDU2rLWlfovE1aW5/bXNrm4vvUF8OAZt65c21d+InnZgyS6SPuFFiz
zV+4qh6MBcZM2l3VUjZ+vBUwmIB2lu7hagCaCkGhGs+3aDKqKy4atXQ7D22kicsr
4aFI09BjhD0tlLLBb1cPS+EyTesWNT6YqBFWTQ6TLI6LDfH8pK/UaHCFMLVpY8jx
VQQCoVmMJ7R+Hg/JlRWZsUqJyDu8stsvKoekGd3kTEY2KLL1p1Mt+DOBecdsMmdl
WLUObRG4Fom7jJdot9IgoPk7MljHH1Rq38w/3Yhg/mIutAMDyaAww9zdu946kmcp
fe3x+YnsI2YXpIXbOyUN7UbxPT/96g==
=xw0a
-----END PGP SIGNATURE-----

--awCzYWA5QtUvFfQA--


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 20:10:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 20:10:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090468.1447666 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upY5A-0000bX-N8; Fri, 22 Aug 2025 20:09:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090468.1447666; Fri, 22 Aug 2025 20: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 1upY5A-0000bQ-KK; Fri, 22 Aug 2025 20:09:52 +0000
Received: by outflank-mailman (input) for mailman id 1090468;
 Fri, 22 Aug 2025 20:09:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=4vUW=3C=m5p.com=ehem@srs-se1.protection.inumbo.net>)
 id 1upY59-0000at-2Y
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 20:09:51 +0000
Received: from mailhost.m5p.com (mailhost.m5p.com [74.104.188.4])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f1f8be6f-7f93-11f0-a32b-13f23c93f187;
 Fri, 22 Aug 2025 22:09:48 +0200 (CEST)
Received: from m5p.com (mailhost.m5p.com [IPv6:2001:470:8ac4:0:0:0:0:f7])
 by mailhost.m5p.com (8.18.1/8.17.1) with ESMTPS id 57MK9EEh068393
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Fri, 22 Aug 2025 16:09:19 -0400 (EDT) (envelope-from ehem@m5p.com)
Received: (from ehem@localhost)
 by m5p.com (8.18.1/8.15.2/Submit) id 57MK9DMg068392;
 Fri, 22 Aug 2025 13:09:13 -0700 (PDT) (envelope-from ehem)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f1f8be6f-7f93-11f0-a32b-13f23c93f187
Date: Fri, 22 Aug 2025 13:09:13 -0700
From: Elliott Mitchell <ehem+xen@m5p.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Demi Marie Obenour <demiobenour@gmail.com>, xen-users@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>,
        Paul Leiber <paul@onlineschubla.de>
Subject: Re: Consider changing CONFIG_ACPI default on ARM?
Message-ID: <aKjOaT-P74Yh4-bi@mattapan.m5p.com>
References: <CAO_48GG1Tg0d3ATnNAYNr0cg7Ty_zsnzT29=dpkk99DxyTWcmg@mail.gmail.com>
 <fceb5df8-d628-479d-acb3-d1d26409fbac@onlineschubla.de>
 <aJLae1Nl0pyOZgyh@mattapan.m5p.com>
 <1b96f2f3-55a2-4b33-84b1-a7c18d38d10c@suse.com>
 <6e9b5265-7a3b-4fd5-b14e-0e60a8b49833@gmail.com>
 <a3092ae1-d836-4403-8fb5-30593fcd2fb8@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <a3092ae1-d836-4403-8fb5-30593fcd2fb8@suse.com>
X-Spam-Status: No, score=0.4 required=10.0 tests=KHOP_HELO_FCRDNS autolearn=no
	autolearn_force=no version=4.0.1
X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on mattapan.m5p.com

On Fri, Aug 15, 2025 at 10:14:42AM +0200, Jan Beulich wrote:
> On 14.08.2025 23:27, Demi Marie Obenour wrote:
> > On 8/14/25 02:55, Jan Beulich wrote:
> >> On 06.08.2025 06:30, Elliott Mitchell wrote:
> >>> On Tue, Jul 01, 2025 at 10:01:13PM +0200, Paul Leiber wrote:
> >>>>
> >>>> Unfortunately, I don't have a direct answer to the question (as is so often
> >>>> the case, due to my limited knowledge and experience). However, I am
> >>>> successfully running Xen on a RPi 4 (mostly, except for some VLAN related
> >>>> networking issues).
> >>>>
> >>>> I used instructions in [1] to install vanilla Debian on the RPi, including
> >>>> UEFI boot and grub. I then compiled Xen with expert options and ACPI
> >>>> enabled.
> >>>>
> >>>> I don't know if there are better solutions. For example, I suffer from the
> >>>> fact that I2C doesn't work when using UEFI boot on a RPi. Nowadays, Debian
> >>>> provides their own vanilla Debian images for RPi and with working I2C, but
> >>>> these images are using a different boot method that I didn't know how to use
> >>>> with Xen.  So far, the procedure described above seems to be the easiest
> >>>> solution for me.
> >>>
> >>>
> >>>> [1] https://forums.raspberrypi.com/viewtopic.php?t=282839
> >>>>
> >>>> Am 30.06.2025 um 12:35 schrieb Sumit Semwal:
> >>>>>
> >>>>> I've just begun to experiment with the Raspberry Pi 5, trying to run a
> >>>>> simple xen + Dom0 setup, using uBoot, and the bookworm based Rpi
> >>>>> distro.
> >>>>>
> >>>>> I've tried combinations of the following setup:
> >>>>>
> >>>>> 1. prebuilt Rpi5 kernel + dtbs, and have also tried to build them from
> >>>>> source [1]
> >>>>> 2. Xen from upstream [2] and xen-troops [3]
> >>>>> 3. upstream uBoot from [4]
> >>>>>
> >>>>> but with the same result: [short log below; I can provide a fuller log
> >>>>> if needed]
> >>>>>
> >>>>> (XEN) DT: ** translation for device /axi/msi-controller@1000130000 **
> >>>>> (XEN) DT: bus is default (na=2, ns=2) on /axi
> >>>>> (XEN) DT: translating address:<3> 000000ff<3> fffff000<3>
> >>>>> (XEN) DT: parent bus is default (na=2, ns=1) on /
> >>>>> (XEN) DT: walking ranges...
> >>>>> (XEN) DT: default map, cp=0, s=1000000000, da=fffffff000
> >>>>> (XEN) DT: default map, cp=1000000000, s=100000000, da=fffffff000
> >>>>> (XEN) DT: default map, cp=1400000000, s=400000000, da=fffffff000
> >>>>> (XEN) DT: default map, cp=1800000000, s=400000000, da=fffffff000
> >>>>> (XEN) DT: default map, cp=1c00000000, s=400000000, da=fffffff000
> >>>>> (XEN) DT: not found !
> >>>>> (XEN) Unable to retrieve address 1 for /axi/msi-controller@1000130000
> >>>>> (XEN) Device tree generation failed (-22).
> >>>>> (XEN) debugtrace_dump() global buffer starting
> >>>>> 1 cpupool_create(pool=0,sched=6)
> >>>>> 2 Created cpupool 0 with scheduler SMP Credit Scheduler rev2 (credit2)
> >>>>> 3 cpupool_add_domain(dom=0,pool=0) n_dom 1 rc 0
> >>>>> (XEN) wrap: 0
> >>>>> (XEN) debugtrace_dump() global buffer finished
> >>>>> (XEN)
> >>>>> (XEN) ****************************************
> >>>>> (XEN) Panic on CPU 0:
> >>>>> (XEN) Could not set up DOM0 guest OS (rc = -22)
> >>>>> (XEN) ****************************************
> >>>>>
> >>>>>
> >>>>> I'm certain I'm missing something, but before I delve deeper, I just
> >>>>> wanted to ask if this is a known issue, and if so, are there any
> >>>>> workarounds or solutions available for this?
> >>>>>
> >>>>> Any help about this is highly appreciated!
> >>>>>
> >>>>> Thanks and Best regards,
> >>>>> Sumit.
> >>>>>
> >>>>> [1]:  https://github.com/raspberrypi/linux rpi-6.12.y branch
> >>>>> [2]: git://xenbits.xen.org/xen.git - main branch
> >>>>> [3] xen-troops https://github.com/xen-troops/xen - rpi5_dev branch
> >>>>> [4]: https://github.com/u-boot/u-boot.git master branch
> >>>
> >>> Ultimately Debian is choosing to leave most defaults alone.  So far the
> >>> Xen developers have left CONFIG_ACPI defaulting to off on ARM*.  The
> >>> Debian project doesn't have paid people to support Raspberry PI hardware,
> >>> despite being rather common.  As a result there aren't any official
> >>> Raspberry PI images, but people associated with Tianocore have gotten
> >>> generic images to boot on Raspberry PI hardware.
> >>>
> >>> I'm unsure of the likelihood of getting the Debian maintainers to
> >>> override the default.  Yet due being by far the simplest way to install
> >>> Debian and Xen on a very common ARM64 platform, perhaps the Xen
> >>> developers should consider changing?
> >>
> >> In an open source project everyone is a developer. There is a
> >> significant amount of work someone needs to pick up to change this
> >> SUPPORT.md entry:
> >>
> >> ### Host ACPI (via Domain 0)
> >>
> >>     Status, x86 PV: Supported
> >>     Status, ARM: Experimental
> >>
> >> Parties interested in changing the support status of any component are the
> >> primary candidates to actually carry out the necessary work.
> > 
> > What is that work?
> 
> To determine what exactly needs doing is part of the exercise. I, for one, am
> unaware of a concrete written down set of things which need doing.

Since you're not pointing to anything definite, could it be everything
has been resolved?  We've got at least two people for whom ACPI on ARM
works pretty well.  There may be many more using it.  Perhaps this
should even be done on the 4.20 branch given how long this has been
working?

The one remaining major issue was the state of EFI-FB support.  There
was a patch which had that working for Linux kernel 5.10, but that might
need more work for a proper solution.


-- 
(\___(\___(\______          --=> 8-) EHM <=--          ______/)___/)___/)
 \BS (    |         ehem+sigmsg@m5p.com  PGP 87145445         |    )   /
  \_CS\   |  _____  -O #include <stddisclaimer.h> O-   _____  |   /  _/
8A19\___\_|_/58D2 7E3D DDF4 7BA6 <-PGP-> 41D1 B375 37D0 8714\_|_/___/5445




From xen-devel-bounces@lists.xenproject.org Fri Aug 22 21:43:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 21:43:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090519.1447697 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upZXJ-00046o-Gu; Fri, 22 Aug 2025 21:43:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090519.1447697; Fri, 22 Aug 2025 21:43:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upZXJ-00046f-Db; Fri, 22 Aug 2025 21:43:01 +0000
Received: by outflank-mailman (input) for mailman id 1090519;
 Fri, 22 Aug 2025 21:42:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=21kD=3C=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1upZXH-0003pV-OH
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 21:42:59 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20614.outbound.protection.outlook.com
 [2a01:111:f403:2414::614])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f81de50b-7fa0-11f0-a32b-13f23c93f187;
 Fri, 22 Aug 2025 23:42:59 +0200 (CEST)
Received: from SJ0PR13CA0070.namprd13.prod.outlook.com (2603:10b6:a03:2c4::15)
 by SN7PR12MB6691.namprd12.prod.outlook.com (2603:10b6:806:271::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.24; Fri, 22 Aug
 2025 21:42:54 +0000
Received: from SJ5PEPF0000020A.namprd05.prod.outlook.com
 (2603:10b6:a03:2c4:cafe::37) by SJ0PR13CA0070.outlook.office365.com
 (2603:10b6:a03:2c4::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.9 via Frontend Transport; Fri,
 22 Aug 2025 21:42:54 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SJ5PEPF0000020A.mail.protection.outlook.com (10.167.244.43) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Fri, 22 Aug 2025 21:42:53 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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; Fri, 22 Aug
 2025 16:42:52 -0500
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Fri, 22 Aug
 2025 16:42:52 -0500
Received: from fedora.mshome.net (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Fri, 22 Aug 2025 16:42:51 -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>
X-Inumbo-ID: f81de50b-7fa0-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fhgahcquxdTqeD5tJY+KeJ8qP9ZqpUGkz0j8uOArbGKhGYrgkNUtJW6g8rVfRTCbj/4Sx+uzsn8jS6W996VdM6wsOCPoX3J4pB2uEVqSUQEFT9RfolW7W75kBwQxnhO2BIAqfNrSYSlABoFTVmIDeCfydfflj3MOIG2CwWZ1s2DhLMNHja+BvyCSx9TdpQt+fuLsJaDCE19DtcFuXudIy6S9va9+nF+FHVyMKbiPyLAaWCbIGe6kdWEKmuEc/PoXYrLpOEBSADai5w7Er4hYH57XKYcNYwRI3hUbXUQj07pUO/rmHn/AdMlexaJ/KxykKrn0S3YE7YbseMTj+X73PQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8Ldt6U+CdRnhS1CaOFYVo0mX9S23oHqk3KpaQzP5sPo=;
 b=WGj6dfGEgg3B8vFKati9KocTMeb/X8o6tilVBoapSkid8zqwnS2hXD5/xDQ9ptA0SWad+WWIw6kNekhDEC9PXD+YlWdF3XC1ipCueNoYmNsPF3x3l2nFctRkzaVZWIIrMy5YIUlIgpW8pcVaO/TxCTgBXTtJSxCJvpsJBTp2ckcXdkAO9yT/BENujhjwJtm0gwV4MteOU1itugno05h7QeFwFdQBGfbVx5s81cMkzKhHljaazLA/dOG3fuRtw/q8fC72vjfZWyl03uViYzRnnPBW/ggMlecf5QUPtygWbQoLrO0ZMTgvQjWra/2EQV/pSBHk10/50jv+tUwbTxmWaw==
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=8Ldt6U+CdRnhS1CaOFYVo0mX9S23oHqk3KpaQzP5sPo=;
 b=ZLdg7ACXZFTAHx45Wqb7xuZYjhjBP/P7XwNhrHtxS4zdv+hhyscJLZCUY4mPuC7acnWYxoC9Z3qsjwA03/OPvx1R00UtdZKh1QOsVDTwvOb2jhBOmxi9GOvs2+LSv8NA+cfeVNOtv49zYuw7dGpB/7L1gwJQUiHVtRJQy1uqQic=
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=SATLEXMB03.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Anthony PERARD <anthony.perard@vates.tech>, "Juergen
 Gross" <jgross@suse.com>
Subject: [PATCH v2 2/3] libs/guest: Set console page to disconnected
Date: Fri, 22 Aug 2025 17:39:44 -0400
Message-ID: <20250822213946.245307-3-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250822213946.245307-1-jason.andryuk@amd.com>
References: <20250822213946.245307-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB05.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ5PEPF0000020A:EE_|SN7PR12MB6691:EE_
X-MS-Office365-Filtering-Correlation-Id: 480c2053-16a9-4525-1925-08dde1c4d96b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|36860700013|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?5SHUpzRCU4kjklgua8Sv9M72OhQzSgQ3UYzhB41K2syzmfTGFr0hGrsRrVV/?=
 =?us-ascii?Q?fXd79xyNOadTtdSHnb0h8PbeCl5mP2YHCRgnBJsMdVoWsJeQTAt+lG/Gn4u2?=
 =?us-ascii?Q?KOl5vOBNTZe6Nh/ncCsAqdW6iF/8xUJ3WpWFGRfZRjlZ5LQQ/pFBgEkOeh01?=
 =?us-ascii?Q?JqimrH3TcEp1oaCO+Y85pTLcIk4F20Pmun9iXC22re2Lo3AgQlzXmGLJGNnJ?=
 =?us-ascii?Q?UfG/VjokegisyPwWRVgzSMV918cWlFixfhBlDBygq3XzFgrYk4K2i2E50xSR?=
 =?us-ascii?Q?kCzedPVyZ7+eJmhkmGyUzNXNHT1fUi56Q1atYNZ21l3HXhccA87BU4KhmCXO?=
 =?us-ascii?Q?yR9JDsLwidD/XshFmABOS3/RwxfwBKFr/4PjmIq/irhm3j1KM9WQ7L3QSE6/?=
 =?us-ascii?Q?4tUsfKfRoI6tKUCI4099x3Tm8qjIfmDYRoBxT+eRDT81SQJu9hMH0+sEItDh?=
 =?us-ascii?Q?WpmjgK/MnN5OkzBZKgIH26I+giYvOEkV6oLKEtPWSWR/EkNLdgtqjjywDvto?=
 =?us-ascii?Q?bdfwFo7FNQzYXuK7D3j2dXJzLDDMeONSAs4opeNsIjRICl3pybMTlaUCFuqH?=
 =?us-ascii?Q?FfX7vYvinKGdrel9J4Po5FaLhJrMkEt4w0cvdfbbhpqEWRnn9qO0gnJQvQbU?=
 =?us-ascii?Q?oY1zil1rcxClvvy5jDHQhAoZIGqt5XoScydUjqYnWZuZYl1Gj098N48r+6U6?=
 =?us-ascii?Q?J6YYoviY0byLPGGFns2FMNyf3UpFRklbFklIOWiWnXHCKYc5b39MVITBHkPA?=
 =?us-ascii?Q?CCE/hfAkIFlhUbCaaKZbfS0q2Ql9hGbzdl1igX689C6fv1hlUyKtmnZU2nF/?=
 =?us-ascii?Q?Mp0Eyc1BT42guS1mz1IFe8QY5IgQiCIqGRQBKTnCVo+8xqzJ/n/HKzhub6D5?=
 =?us-ascii?Q?cCOpTe795nGxHOy0SdkPGR3y+zGtJU/JeI/xgHAR3d+4OA/lffWTOXA/urfk?=
 =?us-ascii?Q?KqThxMsUFEjioFmLRidqBLNSMYGuaxrQhMqDZ3mnO24LKpDF6C7OqzJGy59G?=
 =?us-ascii?Q?qX61UebiBpCXuIzpqvNSz39VX/ct/XhIWA46UDQZ+/V1aZvD9f/ptCaSDNFb?=
 =?us-ascii?Q?/PYtr/Wz1dNiKBPONkjQ6imxaKmukYN4gbxLCX7uX5lipxNrNGnNnKsgdOS2?=
 =?us-ascii?Q?aSIhjrgN7/k40n/1UBmdDHN1hjFG0pA9yLbq4R9/r0k+uYEWPbqRr5da/9Il?=
 =?us-ascii?Q?28I2DH4pCnX+g4HWuOn2KQZ6OIFd3eVeaFaQTdMeJED7GlYbBpMHaLJn7WQY?=
 =?us-ascii?Q?QSKOPNK3e2e6VtFMDFDn4rOwZ8cE0yiitNf+W6zpeZuOe+BHnzd94O9oT88J?=
 =?us-ascii?Q?h6hX+77UvGUR+HX2If9wmhtuB3GeRDZdWvnHcK3IFKIhXjCNEUdpXf+0CMeu?=
 =?us-ascii?Q?fDjX54TL3XbQwXmEoJNvyMKv4qJc4zsc6bnxxBQJvImVagWoITe6ZliuVBTP?=
 =?us-ascii?Q?C4eHDWyKge6clmEsCTBgzlOWYcQF62dY8rM29mVSF/Zw1wXxSh2Z9ZDyJUZj?=
 =?us-ascii?Q?r/gXBHNveTUM9s/EnGvRV/r7FHnBkXQxFHSp?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700013)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Aug 2025 21:42:53.2655
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 480c2053-16a9-4525-1925-08dde1c4d96b
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ5PEPF0000020A.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB6691

Initialize xencons_interface's connection field to
XENCONSOLE_DISCONNECTED.  xenconsoled will mark the page as connected
when it establishes the connection.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
xc_dom_console_init() seems closer to the functionality of the gnttab
functions, so I put it in xg_dom_boot.c.  It can't take a struct
xc_dom_image pointer when used with save/restore.

v2:
New
---
 tools/include/xenguest.h       |  2 ++
 tools/libs/guest/xg_dom_arm.c  |  2 +-
 tools/libs/guest/xg_dom_boot.c | 20 ++++++++++++++++++++
 tools/libs/guest/xg_dom_x86.c  |  6 +++---
 4 files changed, 26 insertions(+), 4 deletions(-)

diff --git a/tools/include/xenguest.h b/tools/include/xenguest.h
index e01f494b77..1d5a6d3509 100644
--- a/tools/include/xenguest.h
+++ b/tools/include/xenguest.h
@@ -335,6 +335,8 @@ void *xc_dom_boot_domU_map(struct xc_dom_image *dom, xen_pfn_t pfn,
                            xen_pfn_t count);
 int xc_dom_boot_image(struct xc_dom_image *dom);
 int xc_dom_compat_check(struct xc_dom_image *dom);
+int xc_dom_console_init(xc_interface *xch, uint32_t guest_domid,
+                        xen_pfn_t console_gfn);
 int xc_dom_gnttab_init(struct xc_dom_image *dom);
 int xc_dom_gnttab_seed(xc_interface *xch, uint32_t guest_domid,
                        bool is_hvm,
diff --git a/tools/libs/guest/xg_dom_arm.c b/tools/libs/guest/xg_dom_arm.c
index 2fd8ee7ad4..c8d0918506 100644
--- a/tools/libs/guest/xg_dom_arm.c
+++ b/tools/libs/guest/xg_dom_arm.c
@@ -70,7 +70,7 @@ static int alloc_magic_pages(struct xc_dom_image *dom)
     dom->xenstore_pfn = base + XENSTORE_PFN_OFFSET;
     dom->vuart_gfn = base + VUART_PFN_OFFSET;
 
-    xc_clear_domain_page(dom->xch, dom->guest_domid, dom->console_pfn);
+    xc_dom_console_init(dom->xch, dom->guest_domid, dom->console_pfn);
     xc_clear_domain_page(dom->xch, dom->guest_domid, dom->xenstore_pfn);
     xc_clear_domain_page(dom->xch, dom->guest_domid, base + MEMACCESS_PFN_OFFSET);
     xc_clear_domain_page(dom->xch, dom->guest_domid, dom->vuart_gfn);
diff --git a/tools/libs/guest/xg_dom_boot.c b/tools/libs/guest/xg_dom_boot.c
index 5c7e12221d..b5f248e642 100644
--- a/tools/libs/guest/xg_dom_boot.c
+++ b/tools/libs/guest/xg_dom_boot.c
@@ -34,6 +34,7 @@
 #include "xg_core.h"
 #include <xen/hvm/params.h>
 #include <xen/grant_table.h>
+#include <xen/io/console.h>
 
 /* ------------------------------------------------------------------------ */
 
@@ -427,6 +428,25 @@ int xc_dom_gnttab_init(struct xc_dom_image *dom)
                               dom->console_domid, dom->xenstore_domid);
 }
 
+int xc_dom_console_init(xc_interface *xch,
+                        uint32_t domid,
+                        unsigned long dst_pfn)
+{
+    const size_t size = PAGE_SIZE;
+    struct xencons_interface *xencons = xc_map_foreign_range(
+        xch, domid, size, PROT_WRITE, dst_pfn);
+
+    if ( xencons == NULL )
+        return -1;
+
+    memset(xencons, 0, size);
+    xencons->connection = XENCONSOLE_DISCONNECTED;
+
+    munmap(xencons, size);
+    xc_domain_cacheflush(xch, domid, dst_pfn, 1);
+    return 0;
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/tools/libs/guest/xg_dom_x86.c b/tools/libs/guest/xg_dom_x86.c
index cba01384ae..a82b481a12 100644
--- a/tools/libs/guest/xg_dom_x86.c
+++ b/tools/libs/guest/xg_dom_x86.c
@@ -587,8 +587,8 @@ static int alloc_magic_pages_pv(struct xc_dom_image *dom)
     dom->console_pfn = xc_dom_alloc_page(dom, "console");
     if ( dom->console_pfn == INVALID_PFN )
         return -1;
-    xc_clear_domain_page(dom->xch, dom->guest_domid,
-                         xc_dom_p2m(dom, dom->console_pfn));
+    xc_dom_console_init(dom->xch, dom->guest_domid,
+                        xc_dom_p2m(dom, dom->console_pfn));
 
     dom->alloc_bootstack = 1;
 
@@ -734,7 +734,7 @@ static int alloc_magic_pages_hvm(struct xc_dom_image *dom)
                      special_pfn(SPECIALPAGE_IDENT_PT) << PAGE_SHIFT);
 
     dom->console_pfn = special_pfn(SPECIALPAGE_CONSOLE);
-    xc_clear_domain_page(dom->xch, dom->guest_domid, dom->console_pfn);
+    xc_dom_console_init(dom->xch, dom->guest_domid, dom->console_pfn);
 
     dom->xenstore_pfn = special_pfn(SPECIALPAGE_XENSTORE);
     xc_clear_domain_page(dom->xch, dom->guest_domid, dom->xenstore_pfn);
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 22 21:43:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 21:43:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090520.1447706 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upZXL-0004ML-UA; Fri, 22 Aug 2025 21:43:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090520.1447706; Fri, 22 Aug 2025 21:43:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upZXL-0004MB-QT; Fri, 22 Aug 2025 21:43:03 +0000
Received: by outflank-mailman (input) for mailman id 1090520;
 Fri, 22 Aug 2025 21:43:02 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=21kD=3C=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1upZXJ-0003pV-W2
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 21:43:01 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20612.outbound.protection.outlook.com
 [2a01:111:f403:2415::612])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f93d803d-7fa0-11f0-a32b-13f23c93f187;
 Fri, 22 Aug 2025 23:43:01 +0200 (CEST)
Received: from BN8PR16CA0033.namprd16.prod.outlook.com (2603:10b6:408:4c::46)
 by MN2PR12MB4423.namprd12.prod.outlook.com (2603:10b6:208:24f::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.16; Fri, 22 Aug
 2025 21:42:56 +0000
Received: from MN1PEPF0000ECD9.namprd02.prod.outlook.com
 (2603:10b6:408:4c:cafe::d) by BN8PR16CA0033.outlook.office365.com
 (2603:10b6:408:4c::46) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.16 via Frontend Transport; Fri,
 22 Aug 2025 21:42:56 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 MN1PEPF0000ECD9.mail.protection.outlook.com (10.167.242.138) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Fri, 22 Aug 2025 21:42:55 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) 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; Fri, 22 Aug
 2025 16:42:55 -0500
Received: from fedora.mshome.net (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Fri, 22 Aug 2025 16:42: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>
X-Inumbo-ID: f93d803d-7fa0-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HDyctpuzeIiqxU5e4vZT4iJRtYNAAgi6RtgxYibmke2uCxMP3qVXlBIamKE4Or4N8Ip/sX9QloUQt1bNFeffOPLmg0lFlWHHms+qi0bMIMHT+rcwBkk000pxlD+c00Rc3QBNdWwz5CnR2DV1pvGs2qbpwt+FIEzw2GMSjpkOygowE3I4Jt271cIN+7caguek4RQcuWw+A8ly+qE+V6243cSk7BMClNX/aX+Ks4XE6SEi4vfbHgJzTRzQiK5dwkGcHZjNVQKf4S46UbiJl7u06jpHBjKj6PzFRwvVIppSM12v3V095frR67eBlDkUaVc0cyd45b/uPVowiv0ZnDmfHQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=19cplcKMnFgiawUGNbnlhakIWSLzp3vbDklKXu2XH0Y=;
 b=Nxi9H3XZ4MTZyVLy3bI2C57ewHkxFmmtik7hGhNf5jNq2En/6aXbJEXulomP1DHEl2gsbM2StAd3uBx0ARbqlnh1kLdAvw6NRMukYRP3qRRCg3FrlCTC6IxzW8guNLJe84aZlRLCj4A1aT/oK71aABlJIgBiKcuJm/aLM5q7PaLLHqawupkYE70dT+BiQbtUnCHEkfkjX/6lmltcJQ8VVL43FwGDcjJAUj5xtwcOawFq0V9mo81eBuGt4MWZTUW6SydLyV2EdgINjXhEuWcGOPD6pad0hbcpilcVmpcxaYpLQN/empTx+euw7TxyY0igks60hiJbjQCnVoLP4bfk2A==
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=19cplcKMnFgiawUGNbnlhakIWSLzp3vbDklKXu2XH0Y=;
 b=zCSZVj/aTGHR7T001loCiG4E3WTF4FhaXlm4q1V3dXq90tHKE+axQhuVTL5ZLkmHjvg3UlEvcgrviQG00eh9sIdjqrcD5+LiM6pBdmEe/mbgDjty8SZXdeimEqB4SQhT5ge3g03psFr79oR+CSy0PAA8nkvlxMoeKFn0th64xfY=
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=SATLEXMB04.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Anthony PERARD <anthony.perard@vates.tech>, "Juergen
 Gross" <jgross@suse.com>
Subject: [PATCH v2 3/3] libs/guest: Set console as disconnected on resume
Date: Fri, 22 Aug 2025 17:39:45 -0400
Message-ID: <20250822213946.245307-4-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250822213946.245307-1-jason.andryuk@amd.com>
References: <20250822213946.245307-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB04.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MN1PEPF0000ECD9:EE_|MN2PR12MB4423:EE_
X-MS-Office365-Filtering-Correlation-Id: 33f82a79-9729-4bd1-6c77-08dde1c4daed
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|82310400026|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?WpnTmZq8+bC9CVnfcmk8u1EdI6pZGvFOMWv1ZAhTKsZMKnG+C2c32rGnjuYb?=
 =?us-ascii?Q?nVffjGs+A2BkR2HCfc16BTAEiSKbTmuLtdofIgn8BgY7xNH78hIgZnbad9jt?=
 =?us-ascii?Q?JsQbAlFsKtoD+oLo0YAJ0ROZdc9eCYaJWH2SPep+81wwF6RMC1H/SxPv1o3V?=
 =?us-ascii?Q?TsmwEdmsJ0j4pz7wd0FVf25vK+Rn9V/JRN8A/63FP6kPWtanZ4/1FoQkH4Ja?=
 =?us-ascii?Q?5lqgoyUq24BMjR9PTDf+ZVFZGCEYZAMSfe4UUmPA844LSYoUK1raSNUDl6i9?=
 =?us-ascii?Q?/IRlD9WkOf7jKDC6wUVpjgLBb5Azf6BZVUXD/S+ETPJg4qQvcEnwV/XPj5Km?=
 =?us-ascii?Q?PBjNa8wMheTkrx0ZvsVYgCAWxQWr8DYDz1JRVeipXBu9n1jxKeDv4j+FjjxC?=
 =?us-ascii?Q?P6xnj36aZOc/zMN8s4RoFl6WvW4AXtFiaaxolkbhwbcjdzLF5dmRA1UxhY+4?=
 =?us-ascii?Q?zyZlWNMpqOaDj/Q91Yj+/RDK9X+P+oAzWYimlKoZDTB6Ps+2R3Pcr30+OED4?=
 =?us-ascii?Q?XisbuFEIFfszaroJH1t5jT0zGAcdOBVyTbBtKFUTWh2Q38F6ulFDW7b3xahG?=
 =?us-ascii?Q?UTHzMTFHBqNbY+CouR5DTbi81HUoWUH+DQBuNbNaqqgmae9V7Xcl6D+yBtiW?=
 =?us-ascii?Q?9KvOPRjy3vbmm2tApXAByO6duJBdtqRzGi0BMUi89IQN166sesYeb1BYRWps?=
 =?us-ascii?Q?9jTXFGQ9ojdTlyWywrP7J1PSNZ7X3MvVMMHdvsCB85zjRF2/yAGeVIOT9Jz2?=
 =?us-ascii?Q?YXhlSsBBs9MdOKy/w8JChwb5TiCcGFk5iBKHH/FR/znaJYeF9WFhrduikMia?=
 =?us-ascii?Q?KVz3bPNVFU5URWkm7H5aYsHlhz6c5cwBnlTdpTxfcU/bAzLz1CXsglAadPCU?=
 =?us-ascii?Q?3S4MHYTZK0Q79ut1gWLjr9xIceYVJo4yBjzWJQH2JQbJUmehhN73hIgounsV?=
 =?us-ascii?Q?FR9Yjg9FwnqGrnnmuNiVYYgYqLDi7Z9ShOXBdl+Bm/izJgy9yHstSWDYragW?=
 =?us-ascii?Q?j6H+xcn9FkH7lATUbwmd/jJYoXos/3srqe/A+hIN+2onasj0TVipxVkr3Q1I?=
 =?us-ascii?Q?c9kUQ5A9s4HHg6qOugtI2A/M8zVhAI2aykhpL8W0V5K/XC9zTenNyZmu/uBc?=
 =?us-ascii?Q?XkROmrYbKUfLSChOkTcDvMiXgqE+2GxQUTl5uODjMnWyCKbnVv/xuppYomNI?=
 =?us-ascii?Q?U0QRFR40KSnzXAxjdutZiKuWvkeVAEUhDRSL12Y8HsNgvkE4XNKqLihvW66f?=
 =?us-ascii?Q?+f6gKExespGy7IWaTBQWYZaEQ6EFEz46dFSPs5eNbL6df7gO5Tx54h2WKaaE?=
 =?us-ascii?Q?e1tW5gEhKZZ3owbExu5AcCfdUy8lETNdMEv37PY1dVP4rcVOLN9RQJhPYt9H?=
 =?us-ascii?Q?+Ds7OM0AjyzTUhSx/GZpyqHmtBLnkaoCLnRT9uimgofWx9qm26AwBHSGu5FP?=
 =?us-ascii?Q?A5x1h2EbNYJu4MCY5R1W4pREWWZyzAtAFieJflE9jxs2nQWyFYLaoe8zoa2w?=
 =?us-ascii?Q?2XkPIomE+DJbjSnebcA1/Q3Zo5U8B8POVAbq?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Aug 2025 21:42:55.8874
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 33f82a79-9729-4bd1-6c77-08dde1c4daed
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MN1PEPF0000ECD9.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4423

There is currently an asymmetry between HVM where the page is cleared
and PV where the contents are restored.

Add xc_dom_console_set_disconnected() to only set the connection flag
for PV guests.

xenconsoled is responsible for setting the console connected when it
attaches.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
v2:
New
---
 tools/include/xenguest.h                 |  2 ++
 tools/libs/guest/xg_dom_boot.c           | 24 ++++++++++++++++++++----
 tools/libs/guest/xg_sr_restore_x86_hvm.c |  2 +-
 tools/libs/guest/xg_sr_restore_x86_pv.c  |  1 +
 4 files changed, 24 insertions(+), 5 deletions(-)

diff --git a/tools/include/xenguest.h b/tools/include/xenguest.h
index 1d5a6d3509..c88958faa9 100644
--- a/tools/include/xenguest.h
+++ b/tools/include/xenguest.h
@@ -337,6 +337,8 @@ int xc_dom_boot_image(struct xc_dom_image *dom);
 int xc_dom_compat_check(struct xc_dom_image *dom);
 int xc_dom_console_init(xc_interface *xch, uint32_t guest_domid,
                         xen_pfn_t console_gfn);
+int xc_dom_console_set_disconnected(xc_interface *xch, uint32_t guest_domid,
+                                    xen_pfn_t console_gfn);
 int xc_dom_gnttab_init(struct xc_dom_image *dom);
 int xc_dom_gnttab_seed(xc_interface *xch, uint32_t guest_domid,
                        bool is_hvm,
diff --git a/tools/libs/guest/xg_dom_boot.c b/tools/libs/guest/xg_dom_boot.c
index b5f248e642..f51b6a78c8 100644
--- a/tools/libs/guest/xg_dom_boot.c
+++ b/tools/libs/guest/xg_dom_boot.c
@@ -428,9 +428,10 @@ int xc_dom_gnttab_init(struct xc_dom_image *dom)
                               dom->console_domid, dom->xenstore_domid);
 }
 
-int xc_dom_console_init(xc_interface *xch,
-                        uint32_t domid,
-                        unsigned long dst_pfn)
+static int dom_console_init(xc_interface *xch,
+                            uint32_t domid,
+                            unsigned long dst_pfn,
+                            bool clear)
 {
     const size_t size = PAGE_SIZE;
     struct xencons_interface *xencons = xc_map_foreign_range(
@@ -439,7 +440,8 @@ int xc_dom_console_init(xc_interface *xch,
     if ( xencons == NULL )
         return -1;
 
-    memset(xencons, 0, size);
+    if (clear)
+        memset(xencons, 0, size);
     xencons->connection = XENCONSOLE_DISCONNECTED;
 
     munmap(xencons, size);
@@ -447,6 +449,20 @@ int xc_dom_console_init(xc_interface *xch,
     return 0;
 }
 
+int xc_dom_console_init(xc_interface *xch,
+                        uint32_t domid,
+                        unsigned long dst_pfn)
+{
+    return dom_console_init(xch, domid, dst_pfn, true);
+}
+
+int xc_dom_console_set_disconnected(xc_interface *xch,
+                                    uint32_t domid,
+                                    unsigned long dst_pfn)
+{
+    return dom_console_init(xch, domid, dst_pfn, false);
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/tools/libs/guest/xg_sr_restore_x86_hvm.c b/tools/libs/guest/xg_sr_restore_x86_hvm.c
index d6ea6f3012..a5d1511fde 100644
--- a/tools/libs/guest/xg_sr_restore_x86_hvm.c
+++ b/tools/libs/guest/xg_sr_restore_x86_hvm.c
@@ -62,7 +62,7 @@ static int handle_hvm_params(struct xc_sr_context *ctx,
         {
         case HVM_PARAM_CONSOLE_PFN:
             ctx->restore.console_gfn = entry->value;
-            xc_clear_domain_page(xch, ctx->domid, entry->value);
+            xc_dom_console_init(xch, ctx->domid, entry->value);
             break;
         case HVM_PARAM_STORE_PFN:
             ctx->restore.xenstore_gfn = entry->value;
diff --git a/tools/libs/guest/xg_sr_restore_x86_pv.c b/tools/libs/guest/xg_sr_restore_x86_pv.c
index 9cd6a88022..876748c11e 100644
--- a/tools/libs/guest/xg_sr_restore_x86_pv.c
+++ b/tools/libs/guest/xg_sr_restore_x86_pv.c
@@ -208,6 +208,7 @@ static int process_start_info(struct xc_sr_context *ctx,
         goto err;
     }
 
+    xc_dom_console_set_disconnected(xch, ctx->domid, mfn);
     ctx->restore.console_gfn = mfn;
     SET_FIELD(guest_start_info, console.domU.mfn, mfn, ctx->x86.pv.width);
     SET_FIELD(guest_start_info, console.domU.evtchn,
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 22 21:43:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 21:43:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090517.1447677 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upZXG-0003fS-2b; Fri, 22 Aug 2025 21:42:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090517.1447677; Fri, 22 Aug 2025 21: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 1upZXF-0003fL-Va; Fri, 22 Aug 2025 21:42:57 +0000
Received: by outflank-mailman (input) for mailman id 1090517;
 Fri, 22 Aug 2025 21:42:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=21kD=3C=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1upZXE-0003fE-K0
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 21:42:56 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on2060f.outbound.protection.outlook.com
 [2a01:111:f403:2406::60f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f4be28f6-7fa0-11f0-b898-0df219b8e170;
 Fri, 22 Aug 2025 23:42:53 +0200 (CEST)
Received: from BN9PR03CA0238.namprd03.prod.outlook.com (2603:10b6:408:f8::33)
 by PH7PR12MB6539.namprd12.prod.outlook.com (2603:10b6:510:1f0::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.15; Fri, 22 Aug
 2025 21:42:49 +0000
Received: from MN1PEPF0000ECD8.namprd02.prod.outlook.com
 (2603:10b6:408:f8:cafe::a4) by BN9PR03CA0238.outlook.office365.com
 (2603:10b6:408:f8::33) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.19 via Frontend Transport; Fri,
 22 Aug 2025 21:42:48 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 MN1PEPF0000ECD8.mail.protection.outlook.com (10.167.242.137) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Fri, 22 Aug 2025 21:42:47 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) 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; Fri, 22 Aug
 2025 16:42:47 -0500
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.10; Fri, 22 Aug
 2025 14:42:47 -0700
Received: from fedora.mshome.net (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Fri, 22 Aug 2025 16:42:46 -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>
X-Inumbo-ID: f4be28f6-7fa0-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=y/niGyqR16MjsluXufgZdJ0m48OUap3sWQzqZ4d+QK/rWPrRv+/VaJDQZFTWAjyZxYVnLBgWPBYwx7KECChh609n9Ds+4hYb8vJyHA5orPn89OTv6IcmVhBr0kdiSjgfx66a9h1rIzTS89WNMXnu4rZ/tCnaU3UzovgPaIFOsGf/m/VE2leIERuosram0eW7Rcx7xBhxXtwpDWpeTB+otW1qagPJcAf0JpytFKwgAL8G219dDiNPwxN38c/eXT1//HBsy+VVP6xvPpDg+IXrgWJRdf5qPLY4uhatjBrty6wNti/mgR8NG6bQlSWgL/rHgL9FKfpQH74Z5TaPH7PNfg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=rbu73Ej5KNKqR0pfX9Z8GFKRQCNCPPS1IS5IJ85PqyI=;
 b=elEQ+ZgCSHe4GwCbXmfqCxuWE3OaBJUexAlRVtCt5ToebhsmySjTUbw1KseGXR4hfLsrvWUYoYAqa8gUK10bQJWEbnILmG+aONDlXMQ4+Ym4ckLDvtrt2awwQzCV0Q264Cd+GqKU0MCdsHQUXR82ss1C9+cFmQu4RV1uK5sTnQfPItHco3oGo+yX8rjwlD6SxjldP2jthgKamV/N56HF2724qIs0QX+Cy2IDvqqd+4UWeJXvrNkpEeWYGXBsASFa+5PcI4x1qc7jiGQ3Moe0GuFO32UTqxkuIIQDcEOG0/Rs1tPyl23zprTeSs/33JCY9rDmUniYKx9vif3LwWT1qg==
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=rbu73Ej5KNKqR0pfX9Z8GFKRQCNCPPS1IS5IJ85PqyI=;
 b=zL3uc3d46h6iYO93fk0b7m9Xmf8g7fXaflrz3shnFIH05N0hCS54imlR7SZFOI8+iKJq/4Nses61ytHnaKsnEB9i9EsIQyj/B6hK7TnOkll7+rxIvfpM02Y9fLQJ/h1BAxdoljjFLxsu1Bqa66SEmfnuOGkT/RhRSkHaTzRzJKw=
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=SATLEXMB04.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Anthony PERARD <anthony.perard@vates.tech>, "Juergen
 Gross" <jgross@suse.com>
Subject: [PATCH v2 0/3] xenconsole: Add connection flag
Date: Fri, 22 Aug 2025 17:39:42 -0400
Message-ID: <20250822213946.245307-1-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.50.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MN1PEPF0000ECD8:EE_|PH7PR12MB6539:EE_
X-MS-Office365-Filtering-Correlation-Id: a237f625-be7d-402a-9bf8-08dde1c4d635
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?CZxzREXod1wiql8ocNt7+c54aC4qmZqLFTpV+ZpLrgAZK2Cxdq4XNh832O44?=
 =?us-ascii?Q?9zmF2VjQ83b0YeUFE4DWXJ20kGwhSjj2FAMY4FaQGWkMYdL63DIu+sPKaOgg?=
 =?us-ascii?Q?Qe4wteKKIt3t4n2z+nxSXf+wIXvDSR1a9MneU2za0LD6HRGTooLJeX2zvthf?=
 =?us-ascii?Q?YsguoTye9Ygtq21J3cPwAnbcwIF4koBHwqTDZy1a7aux5IT+LWkdi+pCZN4U?=
 =?us-ascii?Q?PhLBTCFtLy/fhrnawRhK7Gar+D4xlvD8T8fCQZ4shp3OqShZ0lqmSUd7t3J5?=
 =?us-ascii?Q?6V55olTdmQkgBi/l+M+4swbkrqeoiWh2MPYZbv9cOkYZie8pnu/+vu9eupo6?=
 =?us-ascii?Q?Rv0peBMKZRxoLid6akqRgcxUTIb1FncujYNEjqlzmW2FajZGml2HfJHo2rkl?=
 =?us-ascii?Q?I0BKfHp3fELQyrUoKmuPSk2ifKqjXiYQXszd0lY6PlHmE4O/rRswJvV1oamL?=
 =?us-ascii?Q?JtwVf/a2GUaywgK+Krqb81JOE5T1swG9m4ipm+5nq4ipmBEFXB7uT/SXugPx?=
 =?us-ascii?Q?HKZxl2dqrn2iU4hAri0U1NS3m7M3nOSVc9A8RCMdhMA9rgP68KH/JRv3fPOh?=
 =?us-ascii?Q?CL+20WM0W4TVKwD5Cq6C6wn5M47IbMJ7QYWYP778FhDmroCElInls3i217N5?=
 =?us-ascii?Q?JFvS9DYGUyGuqspdmo1ROyksIVN8aOm2eIGwDCymVFiT3ew2yA7gNYwa4Non?=
 =?us-ascii?Q?k3csa5hTBTjvvD9AIWFenf0FNVI/rOsa+hiecSiQpa3IHPB57cEwhMM86fFV?=
 =?us-ascii?Q?W7oRXcJ4lD92kwKhkAyBu4PLdiJB48AjMPzKXzg3+ElVQVpbd61fLTe3uxrz?=
 =?us-ascii?Q?yvJMT10TBCIWh/gzgENySz9XHXxcYBK/m+ikhDOfftTckDqc0JOiQxR1PxKC?=
 =?us-ascii?Q?JPpSFxscSistrM8/3VFsRRleBuOTXKfK04APZB9Qi+eOb6TMLf6Tn7OEMOTq?=
 =?us-ascii?Q?CMG+FZu5yMoEJZAhVG6zcK1frd03o2bttOLvHNTQ/NfA2IJP7MsnSSLcwb2T?=
 =?us-ascii?Q?uMw0yO5g1o4kM4WK2DukrCqKCmD7bdGdx9Cr4MjVrUXg52lHuliQhSftO2qL?=
 =?us-ascii?Q?zmipKGyTFzNChFc6A0n6iEBgyMfxhrjOzwjKFNz5tzbozqs6OTXLTkVS6U84?=
 =?us-ascii?Q?2GLRz2vZn2NjTPg1TIsiWKFHRCg7ijPNsWZCz1PEH+m7WMl5Bdn8I5ZJr7hu?=
 =?us-ascii?Q?SmUwLXElBRyuZeAnC7mkiy9hKJrS2QoFav+XBa7E9c+OaU6Cl0yNZIqF9rZ5?=
 =?us-ascii?Q?wYV8BKfQSnTyqGtVbQNOpccaiXxCZxwA2+3MevJPP1jaw2OT7/f9xSq5t8UU?=
 =?us-ascii?Q?79KeaRy9tEHfbLH9STUH0fP6WDkF0453negKlIK/UVBQzAb08nGCqJ2T5ElD?=
 =?us-ascii?Q?mYCd1Fn7Aqy1UfIv4+7jD/92oG97bRUH8abAlUB6Ki/MZDQwoJTh/Y3MCxqb?=
 =?us-ascii?Q?XH0ctCJkmhkSmcjKjGYXeLSM9rfZ1DzzgdG9g7IFiX6VFLdWcYz2+ie7JePW?=
 =?us-ascii?Q?TW95UR7WsBRRhoM/yCBEWjnNXbtlkJJMdXlU?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(1800799024)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Aug 2025 21:42:47.9712
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a237f625-be7d-402a-9bf8-08dde1c4d635
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MN1PEPF0000ECD8.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB6539

Add a connection flag to the console interface page so a domain can tell
if it is connected or not.  This became a series in v2 to add flag
setting to libxenguest.

Jason Andryuk (3):
  xenconsole: Add connection flag
  libs/guest: Set console page to disconnected
  libs/guest: Set console as disconnected on resume

 tools/console/daemon/io.c                |  4 +++
 tools/include/xenguest.h                 |  4 +++
 tools/libs/guest/xg_dom_arm.c            |  2 +-
 tools/libs/guest/xg_dom_boot.c           | 36 ++++++++++++++++++++++++
 tools/libs/guest/xg_dom_x86.c            |  6 ++--
 tools/libs/guest/xg_sr_restore_x86_hvm.c |  2 +-
 tools/libs/guest/xg_sr_restore_x86_pv.c  |  1 +
 xen/include/public/io/console.h          | 13 +++++++++
 8 files changed, 63 insertions(+), 5 deletions(-)

-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 22 21:43:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 21:43:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090518.1447687 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upZXI-0003t9-9Y; Fri, 22 Aug 2025 21:43:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090518.1447687; Fri, 22 Aug 2025 21:43: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 1upZXI-0003t0-67; Fri, 22 Aug 2025 21:43:00 +0000
Received: by outflank-mailman (input) for mailman id 1090518;
 Fri, 22 Aug 2025 21:42:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=21kD=3C=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1upZXG-0003pV-U3
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 21:42:58 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on2061b.outbound.protection.outlook.com
 [2a01:111:f403:2417::61b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f699ef56-7fa0-11f0-a32b-13f23c93f187;
 Fri, 22 Aug 2025 23:42:56 +0200 (CEST)
Received: from BYAPR08CA0057.namprd08.prod.outlook.com (2603:10b6:a03:117::34)
 by DM4PR12MB6181.namprd12.prod.outlook.com (2603:10b6:8:a9::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.15; Fri, 22 Aug
 2025 21:42:51 +0000
Received: from SJ5PEPF00000206.namprd05.prod.outlook.com
 (2603:10b6:a03:117:cafe::3e) by BYAPR08CA0057.outlook.office365.com
 (2603:10b6:a03:117::34) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.18 via Frontend Transport; Fri,
 22 Aug 2025 21:42:51 +0000
Received: from SATLEXMB03.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_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Fri, 22 Aug 2025 21:42:50 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) 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; Fri, 22 Aug
 2025 16:42:49 -0500
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.10; Fri, 22 Aug
 2025 14:42:49 -0700
Received: from fedora.mshome.net (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Fri, 22 Aug 2025 16:42:49 -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>
X-Inumbo-ID: f699ef56-7fa0-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nb/7RLwVwqO6YBNUJ5zwAwEVm89SVXtNijqxNy9K0jA1pxvI5f7T9ZpjU2DHcCu2MRQrteS6ajgj/P917mJ4RNPKggrfnF6BHEKevvY+Am5O08VkKLJqW7Oo1LG8HfMaMn3LW1D7SUyEJ4s3fd+j0J87azWgH3x4MFkcWVmd/ejuVM7q+U0cc2qf6uxg1uLGe4HfdfoeF41dztBTPC77DeakFoJM6WXD54/ehUpQ7PKykcxW+9b2KGM8rTk/e2yXZ1YUrMnYripRb7ChGgAzAYIq8wI/LMPKdnmGIn527bwp4CszLnVfExpt12Dc0BiNYGui8Bbhcb0X/mvcMX3R4Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-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/N6nFU6nO7Za+gT5fLChF8mvH6ExfkAwTdc63kbBaU=;
 b=sfOrAugjxVTkBifNNNTMxYHlZ4ZStZBrlPxIQTudwKfvoqTlCHa+K/qWE4mqcJNK/5D7pVVmg5zhhWnVkyaMV6QTQyIkdLYupqfRgNx+EmtAOR0mVbPiiJfN7X+v2OIdRYgn55si+Kh05+Vxmr+NYJww7s0/hbxut9NjrGuwg01GMYrlI5hd5ZVngHNp0l8m/7wE9iqU3whMBPBYKzXTj7N/JXfDVCkjKtxMFv/sYtgXSveS8v8sS20Siu0eMptRmTtJuOO7JUDtmLLA1CsMbD/l5kwENCFF9YXwQ+DJt4b03ypSz/pcDWf6qJyIu+O86MG14lRpmsa/UU4EqGD1dA==
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=b/N6nFU6nO7Za+gT5fLChF8mvH6ExfkAwTdc63kbBaU=;
 b=3YF51P2sxyt37/CM/ypUXyKJm/y49M/HmKB+FdhkMB2FKIc9sgWAiT/WWWL430t4c7fYX7Rk4l20XNBgC1yL5E+ILkBcCnfVryOgfFf5hLLznJNSweg9qZKrSQ6D7Dxzdmv5ouih8JKOAlVC7AQwzl9Tu3at3QzyEoBtCGTpS7E=
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=SATLEXMB03.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Anthony PERARD <anthony.perard@vates.tech>, "Juergen
 Gross" <jgross@suse.com>
Subject: [PATCH v2 1/3] xenconsole: Add connection flag
Date: Fri, 22 Aug 2025 17:39:43 -0400
Message-ID: <20250822213946.245307-2-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250822213946.245307-1-jason.andryuk@amd.com>
References: <20250822213946.245307-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ5PEPF00000206:EE_|DM4PR12MB6181:EE_
X-MS-Office365-Filtering-Correlation-Id: 8dc0d4bb-f572-4067-020c-08dde1c4d7cc
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|82310400026|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?KBsnoz4eL6xv1gKeeJgs14HklczMCdmqq97vealbXmWxFGZorKUBTwXWj7Yt?=
 =?us-ascii?Q?2wL+nWX78bFNpAYa/qAncmq1Ti0O80IUPtj8pVTdNF6uC19V7jnHQJZfqqY6?=
 =?us-ascii?Q?Zk1eufr2sK/wdD/YdIz3HXitrk6p6YOdSQavQfvbcEBCLDUq8HeWytdTBR0F?=
 =?us-ascii?Q?UnSPlw/x76cknqXRkZOKvj8mCqJhBNl/6aHTJY4OAZUB8fS+jywjbLSqFpY+?=
 =?us-ascii?Q?qwueghwtIe6XnLFvc5rGgVsspTKJZrSABvNiRVCSfUJSwO00la2gz6tL9X3f?=
 =?us-ascii?Q?TYUfZrJsrw5mz+w/UAP2VrC6cNQ8aZwO1R6cXbWJcJD73CDPquxjK19q6MOw?=
 =?us-ascii?Q?cKguH5UYHPHDSVZaR4NtbbMTmsw9763SD6vHsA1s7LaHPEsHvosjjmniNqsd?=
 =?us-ascii?Q?aVwf79qb0Bw2FF72TuL7+7EImN0eZ1pq6NDXZ0p/QDqwGhbleOze5O7zMZ4u?=
 =?us-ascii?Q?mKWbQHQCeO/DYW9u0++PUXqROkwhO9cMQvMg135pb1ijWYrGL3oCkJ6traq9?=
 =?us-ascii?Q?ZZjvHW4Yy44uJTAZ/UauWhalDnMnaenMaO/Y2zwhDcyDYssr50MGy/0sfJ+q?=
 =?us-ascii?Q?ouaw6j/anMn+XJRsHRVjqy4ERe9hxIANKEvxfaLDkq+mT3Qgz5c236UW30M9?=
 =?us-ascii?Q?D5el7YjjFBvdtj1TBJHpLeAEocfskReEZsWJrvW7Q/zr7rFZ4XJwcv2ks6Yk?=
 =?us-ascii?Q?pqc3+zL5iUZXmtFMXzTguP1qqVO4tZSH5MmRuSK4gXZV7uJuWAydMkyL3E6m?=
 =?us-ascii?Q?wFGLwUWJ3naP/DrI6OxeDyRPAmrC4v7OuAhyLf9Dz8SaImLi+Ff570z287A0?=
 =?us-ascii?Q?f6RGyPXTyvv++owL1+OUStID8BQ/n0AlA0ZmGu/MjSsLkbhG+xT23peXMte9?=
 =?us-ascii?Q?zeFLdV3ZFPpcVIB8UEe6cfCxQZN/TW8hgU5jUObbYy7xNYoQzfYXpx8PULpR?=
 =?us-ascii?Q?YiNGfodYTfGn/agS7usMIl5CTrrfCxhGKLtFwpEKl+gmPteJS1ELjE9zH2Pm?=
 =?us-ascii?Q?2jLuliLJxxLhzj6Y67tAMKKGQpKZjRoN7HAYSOiAiIVBU2zpq1B33b1+ATmO?=
 =?us-ascii?Q?kQQR1zI9jRzTk+Uvj1UipfxYfZEyoCdJltTF6eTGtXKhhvC7P8AGezhPvfDa?=
 =?us-ascii?Q?Rc25QfVaim7B/mKgW7fkSyxTxrMJ/Cfo4iExbk18QRWUNu9pOfWBIQ8hIqXM?=
 =?us-ascii?Q?h//iqk5PF483L6mIIy/hh4udltf1nwoZo1hghLFsg4isnHqdEztdKwkPJypC?=
 =?us-ascii?Q?Dad9ZZUWFlHUfvLCa/uaxlHbsfeXUas5tVeCIfaei8s6jE+3VWzTy6ms5SFP?=
 =?us-ascii?Q?nx3ZaIm6P1hHdwhK69bi/D1iHjpHHaWh/vQO9oGzW0FgZOxXB35HM1V3AsaW?=
 =?us-ascii?Q?WXVfNdMhGS0+DBLwRzqq1cHBvNcShYGC+W3AVbU1c73I6cCOPMMOFCHuHOkx?=
 =?us-ascii?Q?SubdaF8pu8V0gbT7Giauu3Fha99EYZTVQfCtJkuwxOXX/Tman2gne0GQX/lP?=
 =?us-ascii?Q?NeCqc+kPHa99jqLN8ldg3bgAumP5Hy52JagR?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Aug 2025 21:42:50.5527
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8dc0d4bb-f572-4067-020c-08dde1c4d7cc
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=[SATLEXMB03.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: DM4PR12MB6181

With hyperlaunch, a domU can start before its console ring is connected
by xenconsoled.  With nothing emptying the ring, it can quickly fill
during boot.  In domU_write_console(), __write_console() returns 0 when
the ring is full.  This loops spins until xenconsoled starts emptying
the ring:

        while (len) {
                ssize_t sent = __write_console(cons, data, len);

                if (sent < 0)
                        return sent;

                data += sent;
                len -= sent;

                if (unlikely(len))
                        HYPERVISOR_sched_op(SCHEDOP_yield, NULL);
        }

The goal of this patch is to add a way for the frontend to know when a
console is connected.  This patch adds a new flag to the end of the
console ring structure.  It is used for the backend to indicate that it
has connected and started servicing the page.

The two values are
XENCONSOLE_DISCONNECTED 1
XENCONSOLE_CONNECTED    0

XENCONSOLE_DISCONNECTED indicates to the guest that ring is
disconnected, so it will not be serviced.  The guest can avoid writing
into it in that case.  A domU can use console hypercalls and only
transition to the ring when it is connected and won't fill and block.

Once the backend (xenconsoled) maps and starts servicing the
console, the flag will be set to XENCONSOLE_CONNECTED (0) to indicate
the backend state to the frontend.

The connected value as 0 will be match the default of a zero-ed console
page.  Hyperlaunch can set the flag to XENCONSOLE_DISCONNECTED and let
xenconsoled set to XENCONSOLE_CONNECTED.

Old domU hvc_xen drivers won't check the flag.
New domU hvc_xen running on a new xen/xenconsoled will work properly.
New domU hvc_xen on old xen/xenconsoled should only see a 0 for the flag
and behave as if connected.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
v2:
Rename "connection"
Use uint8_t

v1:
Remove evtchn notify call
Set connected later when there is no error

RFC v3:
Flip flag values so 0 is connected.

The other option would be to add:
uint32_t features
uint32_t connected

New domUs would check features for a magic value and/or flag to know
they can rely on connected transitioning.

I think making XENCONSOLE_CONNECTED == 0 side steps the need for
an additional features field.  As long as assuming zero-ed memory is
acceptable.  However, this only matters for a hyperlaunched guest -
xenconsoled will normally readily connect the console and set the value.

This assumes that existing frontends are not using the flag space for
some other use.
---
 tools/console/daemon/io.c       |  4 ++++
 xen/include/public/io/console.h | 13 +++++++++++++
 2 files changed, 17 insertions(+)

diff --git a/tools/console/daemon/io.c b/tools/console/daemon/io.c
index bb739bdb8c..43d4973c24 100644
--- a/tools/console/daemon/io.c
+++ b/tools/console/daemon/io.c
@@ -781,6 +781,10 @@ static int console_create_ring(struct console *con)
 		con->log_fd = create_console_log(con);
 
  out:
+	/* Mark the console connected. */
+	if (!err && con->interface)
+		con->interface->connection = XENCONSOLE_CONNECTED;
+
 	return err;
 }
 
diff --git a/xen/include/public/io/console.h b/xen/include/public/io/console.h
index 4509b4b689..b9ebfaff3f 100644
--- a/xen/include/public/io/console.h
+++ b/xen/include/public/io/console.h
@@ -19,6 +19,19 @@ struct xencons_interface {
     char out[2048];
     XENCONS_RING_IDX in_cons, in_prod;
     XENCONS_RING_IDX out_cons, out_prod;
+/*
+ * Flag values signaling from backend to frontend whether the console is
+ * connected.  i.e. Whether it will be serviced and emptied.
+ *
+ * The flag starts as disconnected.
+ */
+#define XENCONSOLE_DISCONNECTED 1
+/*
+ * The flag is set to connected when the backend connects and the console
+ * will be serviced.
+ */
+#define XENCONSOLE_CONNECTED    0
+    uint8_t connection;
 };
 
 #ifdef XEN_WANT_FLEX_CONSOLE_RING
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 22 23:02:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 23:02:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090596.1447737 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upam5-0006uh-EW; Fri, 22 Aug 2025 23:02:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090596.1447737; Fri, 22 Aug 2025 23:02: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 1upam5-0006ua-Bk; Fri, 22 Aug 2025 23:02:21 +0000
Received: by outflank-mailman (input) for mailman id 1090596;
 Fri, 22 Aug 2025 23:02:20 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=b3U+=3C=tklengyel.com=tamas@srs-se1.protection.inumbo.net>)
 id 1upam4-0006uU-MQ
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 23:02:20 +0000
Received: from sender4-op-o16.zoho.com (sender4-op-o16.zoho.com
 [136.143.188.16]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0b9772bd-7fac-11f0-a32b-13f23c93f187;
 Sat, 23 Aug 2025 01:02:17 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1755903732182430.24189239395855;
 Fri, 22 Aug 2025 16:02:12 -0700 (PDT)
Received: by mail-oi1-f175.google.com with SMTP id
 5614622812f47-43601c9fb61so1553768b6e.1
 for <xen-devel@lists.xenproject.org>; Fri, 22 Aug 2025 16:02: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>
X-Inumbo-ID: 0b9772bd-7fac-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; t=1755903733; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=bj3TBd5SHvdzTWrRtNiuo9dKCWMaJ1HSVaZYROx9DBCjG0qd+RGf2l8mGL5e1ooGxnzh3D7ZUSsuxN/ys6pnbx+zngXFc/XNZ1c8k7NAkVkT7da9L7WvAkM/3j/rnhxXsiyMk9M0gu4BpDIQwzAnY5E0kcG0TheO50RTalnpzsM=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1755903733; 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=Cvwk5vsCAJavQOCGfAxBnQH0MMNtw9Z4c5BKExmtyrw=; 
	b=lkAUVi7hh39k9KWmhrjO807DSguYM72Bnresz4QydOHUNHqN5lzVzP9Z9UqytxLP8+oVxDO3iGUCWq2sL2rW82FN/1SRHQkwZF/o3IHUrP0qLP2I8+aaO94Bx2gWfMfjWCY/8QPkMQX65T9qsT50C7uYm+Kpu3b/BntSCReUQUU=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=tklengyel.com;
	spf=pass  smtp.mailfrom=tamas@tklengyel.com;
	dmarc=pass header.from=<tamas@tklengyel.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1755903733;
	s=zmail; d=tklengyel.com; i=tamas@tklengyel.com;
	h=MIME-Version:References:In-Reply-To:From:From:Date:Date:Message-ID:Subject:Subject:To:To:Cc:Cc:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=Cvwk5vsCAJavQOCGfAxBnQH0MMNtw9Z4c5BKExmtyrw=;
	b=QM6uiM1u5s3GkykAFCxBsgXSqwhryLp/fcqHgbqazyHf0iUVciw/eQB7NqZ1oRnk
	RLrVXS1ki0Fnzdk1W5l+zA59nHrbXh+Osxv20cMDbciGFjUtOMz7ft+/hunnkWaU7k8
	rvOQBi584E0MxgB8fi9+CuWaJD1hOqDmKjdzgfYw=
X-Gm-Message-State: AOJu0Yx+ke+gbh2H63hQnv3XDJwV7pLz9W7nQZNZ7T6rWwX+910RS7he
	/BGwvX77ijRXoUH+BhadasEl2AX61qg4WJ+of3rSj0u4TfdLDlTmdxRDaCqdX0lTe8Eaenx55Dn
	uceZytAV8LOZ2Pzai1fyHDnCoM7bmfFI=
X-Google-Smtp-Source: AGHT+IEPAUIUh9j1paz4AjewQCxcbIFBQjfHBQDJbW2WTe2F5tzuIz388iZFXnp4hpOpbIutrmk0I7oYbi5ERLqkFGI=
X-Received: by 2002:a05:6808:180c:b0:41c:7cb1:fb47 with SMTP id
 5614622812f47-43785182210mr2124516b6e.8.1755903731366; Fri, 22 Aug 2025
 16:02:11 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1753953832.git.w1benny@gmail.com> <44b4b60854cd7db6d529ff23bb228e9ac19a2a75.1753953832.git.w1benny@gmail.com>
In-Reply-To: <44b4b60854cd7db6d529ff23bb228e9ac19a2a75.1753953832.git.w1benny@gmail.com>
From: Tamas K Lengyel <tamas@tklengyel.com>
Date: Fri, 22 Aug 2025 19:01:35 -0400
X-Gmail-Original-Message-ID: <CABfawhkYYwfnp7nVC4D1G8bmbaJZ7pDKpeT-hpYGEfq=BtteSw@mail.gmail.com>
X-Gm-Features: Ac12FXyGtsJ_porJ4vRgCLbF2l1dDWQ-BZ504vkHuSSdU2GvbDj8mrn68ZSmttA
Message-ID: <CABfawhkYYwfnp7nVC4D1G8bmbaJZ7pDKpeT-hpYGEfq=BtteSw@mail.gmail.com>
Subject: Re: [PATCH v12 1/6] altp2m: Drop p2m_altp2m_check() stubs on non-x86,
 move prototype, and guard uses
To: =?UTF-8?Q?Petr_Bene=C5=A1?= <w1benny@gmail.com>
Cc: xen-devel@lists.xenproject.org, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 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>, 
	Shawn Anastasio <sanastasio@raptorengineering.com>, 
	Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman <bobbyeshleman@gmail.com>, 
	Connor Davis <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>, 
	Alexandru Isaila <aisaila@bitdefender.com>, Petre Pircalabu <ppircalabu@bitdefender.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, Jul 31, 2025 at 5:28=E2=80=AFAM Petr Bene=C5=A1 <w1benny@gmail.com>=
 wrote:
>
> From: Petr Bene=C5=A1 <w1benny@gmail.com>
>
> Remove the no=E2=80=91op stubs from the ARM, PPC, and RISC=E2=80=91V p2m =
headers and stop
> providing a stub in arch/x86/include/asm/p2m.h.
>
> Declare p2m_altp2m_check() in xen/include/xen/p2m-common.h and gate all
> call sites with CONFIG_ALTP2M:
>  - wrap the fast_single_step block in hvm/monitor.c with #ifdef CONFIG_AL=
TP2M
>    (IS_ENABLED(CONFIG_ALTP2M) is not used here, because in the subsequent=
 commit
>    hvm_vcpu::fast_single_step will be guarded by CONFIG_ALTP2M)
>  - make the vm_event.c path conditional via IS_ENABLED(CONFIG_ALTP2M)
>
> No functional change intended: on builds without ALTP2M the calls are
> compiled out; on builds with ALTP2M behavior is unchanged.
>
> Signed-off-by: Petr Bene=C5=A1 <w1benny@gmail.com>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

vm_event/monitor bits:
Acked-by: Tamas K Lengyel <tamas@tklengyel.com>


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 23:03:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 23:03:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090606.1447747 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upanQ-0007Ou-Ns; Fri, 22 Aug 2025 23:03:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090606.1447747; Fri, 22 Aug 2025 23:03: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 1upanQ-0007On-LJ; Fri, 22 Aug 2025 23:03:44 +0000
Received: by outflank-mailman (input) for mailman id 1090606;
 Fri, 22 Aug 2025 23:03:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=b3U+=3C=tklengyel.com=tamas@srs-se1.protection.inumbo.net>)
 id 1upanP-0007Oe-8z
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 23:03:43 +0000
Received: from sender4-op-o16.zoho.com (sender4-op-o16.zoho.com
 [136.143.188.16]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3d7112b0-7fac-11f0-a32b-13f23c93f187;
 Sat, 23 Aug 2025 01:03:40 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1755903813534238.83015038587212;
 Fri, 22 Aug 2025 16:03:33 -0700 (PDT)
Received: by mail-oi1-f170.google.com with SMTP id
 5614622812f47-435de818a74so1442093b6e.2
 for <xen-devel@lists.xenproject.org>; Fri, 22 Aug 2025 16:03: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>
X-Inumbo-ID: 3d7112b0-7fac-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; t=1755903815; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=YJIn2fKfHpW+zjVrIYX3Hb6yQoAUWbK6klmC+W5w1K+PIWiAlFQLOFa63g1IM9N5yEaQJlU6GF/cvBaKdY//4dqMNvAx2AO8iLUYGVmwP/dsqTOxGCygfs+FMJ4cHpQY35R7sck4kpLPQvbDsQmM07OlOqlMfqyFQEd5NvPu2q4=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1755903815; 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=JOk0Em5lTEW68Sb47GPCJPnPCmD+WNvM3mJaDwujsHE=; 
	b=Vsza1Rgkay7On/xJ+HPeKrc/vgTxN+KUpEA6YyZNjEkgsIN/5Qnggu/tisAvqAUIAGIg+9OYEcw5sd+SvpnYiwvEB9OvIYR6Y2iZAC/uh4BZtlGfsW0ZPMtMRm7JOLWmjESsLPPIsGvlN21cRY+ERIRCl0YciFiPHfrVAfuuDQM=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=tklengyel.com;
	spf=pass  smtp.mailfrom=tamas@tklengyel.com;
	dmarc=pass header.from=<tamas@tklengyel.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1755903815;
	s=zmail; d=tklengyel.com; i=tamas@tklengyel.com;
	h=MIME-Version:References:In-Reply-To:From:From:Date:Date:Message-ID:Subject:Subject:To:To:Cc:Cc:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=JOk0Em5lTEW68Sb47GPCJPnPCmD+WNvM3mJaDwujsHE=;
	b=WCyCj00+7QLYIZTLLSCEcDu8MVBaETkvTPMShwoHwigm+MCS8KMIdq9V9SqNuQod
	i+s47rII+AYaHoW+gCG/U/CQwb5uFY4ogWdpre5cSX7BHG2s79QQ5u75Ms4ZcMvHX7d
	XmecRnfsRVDBNZseH7AIUg3LOsVKBP00kicIgv00=
X-Forwarded-Encrypted: i=1; AJvYcCWqhlAjusxocLRqweCwSncg2kMLE8/76/VZv8rpKQLW9KsraXkM0qzCAm9S2unVMaxctz6TcQq5yEQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzU3VUXnNctqH73E4AQOnwWE88WJxhSBhdnIetDNmZyOjYnPNrz
	9WSaZYZiYY35ADfJhYJnNnsTJuJqoWX8EbX0KL5dG2VatyQ2hS7fN9veHuGTea+f7jotY019CWM
	kMgQkCxwEAgaZIyo+UGUGt2vtkRAMUvs=
X-Google-Smtp-Source: AGHT+IEuKjBzWDiuU0Ds+F+Bz+18A+eirMdHei2WIbGpyp9ffdJkIF9y6/6bdoL8T1uEl/QPUUPE9XGqsOBlQNd8xgU=
X-Received: by 2002:a05:6808:1446:b0:437:75ea:6c65 with SMTP id
 5614622812f47-4378527bb90mr2207071b6e.40.1755903812751; Fri, 22 Aug 2025
 16:03:32 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1753953832.git.w1benny@gmail.com> <2fc138bf8f1100b6347b965e16691b9d6e3272fe.1753953832.git.w1benny@gmail.com>
 <dcbd4381-50e0-4d20-b627-7719bf31fe20@suse.com>
In-Reply-To: <dcbd4381-50e0-4d20-b627-7719bf31fe20@suse.com>
From: Tamas K Lengyel <tamas@tklengyel.com>
Date: Fri, 22 Aug 2025 19:02:56 -0400
X-Gmail-Original-Message-ID: <CABfawh=pkasx4XVg8jHunHVeUQvSovHg0iT+JQWhJRDjnEyMnQ@mail.gmail.com>
X-Gm-Features: Ac12FXyhivlMO_jqstzAn4wlSpyvAXSasN22RMt7DpR7l_K49aTnwEsWLYLXxwE
Message-ID: <CABfawh=pkasx4XVg8jHunHVeUQvSovHg0iT+JQWhJRDjnEyMnQ@mail.gmail.com>
Subject: Re: [PATCH v12 2/6] x86/altp2m: Wrap altp2m-specific code in #ifdef CONFIG_ALTP2M
To: Jan Beulich <jbeulich@suse.com>
Cc: =?UTF-8?Q?Petr_Bene=C5=A1?= <w1benny@gmail.com>, 
	Andrew Cooper <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Alexandru Isaila <aisaila@bitdefender.com>, Petre Pircalabu <ppircalabu@bitdefender.com>, 
	xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, Jul 31, 2025 at 5:33=E2=80=AFAM Jan Beulich <jbeulich@suse.com> wro=
te:
>
> On 31.07.2025 11:27, Petr Bene=C5=A1 wrote:
> > From: Petr Bene=C5=A1 <w1benny@gmail.com>
> >
> > This change consistently guards all altp2m-related functionality
> > behind #ifdef CONFIG_ALTP2M, so that code and data structures related
> > to alternate p2m views are only included when the feature is enabled.
> >
> > Apart from that:
> > - hvmemul_vmfunc() returns X86EMUL_UNHANDLEABLE when altp2m is disabled=
.
> > - do_altp2m_op() returns EOPNOTSUPP when altp2m is disabled.
> > - struct hvm_vcpu, arch_domain, and hvm_function_table only define altp=
2m
> >   fields when the feature is enabled.
> > - Moved several declarations under #ifdef CONFIG_ALTP2M in p2m.h to avo=
id
> >   polluting builds that don't require the feature.
> >
> > Signed-off-by: Petr Bene=C5=A1 <w1benny@gmail.com>
>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
>

For mem_access bits:
Acked-by: Tamas K Lengyel <tamas@tklengyel.com>


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 23:06:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 23:06:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090616.1447757 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upaqN-00080e-66; Fri, 22 Aug 2025 23:06:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090616.1447757; Fri, 22 Aug 2025 23:06: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 1upaqN-00080X-2x; Fri, 22 Aug 2025 23:06:47 +0000
Received: by outflank-mailman (input) for mailman id 1090616;
 Fri, 22 Aug 2025 23:06:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=b3U+=3C=tklengyel.com=tamas@srs-se1.protection.inumbo.net>)
 id 1upaqM-00080R-2x
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 23:06:46 +0000
Received: from sender4-op-o16.zoho.com (sender4-op-o16.zoho.com
 [136.143.188.16]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ab42d0d1-7fac-11f0-a32b-13f23c93f187;
 Sat, 23 Aug 2025 01:06:44 +0200 (CEST)
Received: by mx.zohomail.com with SMTPS id 1755903999077818.1726663685837;
 Fri, 22 Aug 2025 16:06:39 -0700 (PDT)
Received: by mail-oi1-f177.google.com with SMTP id
 5614622812f47-436011e8ed1so1115657b6e.2
 for <xen-devel@lists.xenproject.org>; Fri, 22 Aug 2025 16:06: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>
X-Inumbo-ID: ab42d0d1-7fac-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; t=1755904000; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=ixnjS06Bxtu1OpGBeCRjCJnIbAyS3aOCnYITgHjZe4Fcj4R0XN4x1nU2wJfu6GwbNZO795Yj72ZEt0gP+Hjgx/FVY3Am5xJQyDz7a9GHMgrbJsUxuEaevyeaN27c2LoqX/iuCCYoT2b1QzVued0S8CMrJp1PTaoZ2o+Xy7XiMhA=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1755904000; 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=J2Ji5lGRAzUoK2OAwuMMtI9KxXLcyZx4cb8Jjcb3MhM=; 
	b=SUDyaoWPVISwtTP8p2Kaa9RZFu33oTZoesMa6PrSdd4dyF+zJIAjy2pPCNdBgHEXU2kkrkq5MCF164xJGP/Z/6Z1nFemRhfByvLssfRz6IDZ+UsDcVEtOhkifkahsAH00C4Fay7DhUF0JcLOA3KmWgL+unLpLAF5WJXvyRu3jPg=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass  header.i=tklengyel.com;
	spf=pass  smtp.mailfrom=tamas@tklengyel.com;
	dmarc=pass header.from=<tamas@tklengyel.com>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1755904000;
	s=zmail; d=tklengyel.com; i=tamas@tklengyel.com;
	h=MIME-Version:References:In-Reply-To:From:From:Date:Date:Message-ID:Subject:Subject:To:To:Cc:Cc:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To;
	bh=J2Ji5lGRAzUoK2OAwuMMtI9KxXLcyZx4cb8Jjcb3MhM=;
	b=fGXt8+d7FOENb8qj6HCQCoIysUXxSJBzWJ0AYCc8BmciqoRSZy/cPeNB5DYzL6Pb
	bFxaLyCZo1c7hMO751urDgOxTdbzvgpXaKiOY6/LyVqdAlKOi7hmjuQswT9SsefKZtP
	Po8EdmXMf5sIM+hSVRT3RlFqmyZXSyyG3CXDzGdk=
X-Gm-Message-State: AOJu0Ywgvm2p7NMW1HH2m3iL0DGbdW+lZ2EQehb7XqJCjnfeuFs8UWgS
	i4hgG7SwGhDxDFAeDscab3nrEIpaf3hloKDhX3eQuD/WWH+7XacnS9bt36H0dOEgeBH6wWKDUin
	hc+vWToqtzhuaouQ03FaU5V+LG1Orrn4=
X-Google-Smtp-Source: AGHT+IHvxb8IZ7sYFMcAm514eZl48NwfjJ2u4rlXwVl8AedzaliXlDWyTAlrhTttScPTi/285qa1YyrZSu7wBZh4gtU=
X-Received: by 2002:a05:6808:17a7:b0:435:6c2e:15fa with SMTP id
 5614622812f47-4378518e0e9mr2696062b6e.1.1755903998343; Fri, 22 Aug 2025
 16:06:38 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1753953832.git.w1benny@gmail.com> <d8ce4bd614e240aebc2dd09930af0c2c474acf50.1753953832.git.w1benny@gmail.com>
In-Reply-To: <d8ce4bd614e240aebc2dd09930af0c2c474acf50.1753953832.git.w1benny@gmail.com>
From: Tamas K Lengyel <tamas@tklengyel.com>
Date: Fri, 22 Aug 2025 19:06:02 -0400
X-Gmail-Original-Message-ID: <CABfawhmyuwZp63EC5z-2a76BL7hvKr2bJre=gGJPe_271v=Eyw@mail.gmail.com>
X-Gm-Features: Ac12FXziltVR79H5cNo7GiR3JiZn0irfcFaFALk02AJk9hbTgt6-hGUmhAPxgIw
Message-ID: <CABfawhmyuwZp63EC5z-2a76BL7hvKr2bJre=gGJPe_271v=Eyw@mail.gmail.com>
Subject: Re: [PATCH v12 3/6] xen: Make the maximum number of altp2m views
 configurable for x86
To: =?UTF-8?Q?Petr_Bene=C5=A1?= <w1benny@gmail.com>
Cc: xen-devel@lists.xenproject.org, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 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>, 
	Alexandru Isaila <aisaila@bitdefender.com>, Petre Pircalabu <ppircalabu@bitdefender.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, Jul 31, 2025 at 5:28=E2=80=AFAM Petr Bene=C5=A1 <w1benny@gmail.com>=
 wrote:
>
> From: Petr Bene=C5=A1 <w1benny@gmail.com>
>
> This commit introduces the ability to configure the maximum number of alt=
p2m
> views for the domain during its creation. Previously, the limits were har=
dcoded
> to a maximum of 10. This change allows for greater flexibility in environ=
ments
> that require more or fewer altp2m views.
>
> The maximum configurable limit for nr_altp2m on x86 is now set to
> MAX_NR_ALTP2M (which currently holds the MAX_EPTP value - 512). This cap =
is
> linked to the architectural limit of the EPTP-switching VMFUNC, which sup=
ports
> up to 512 entries. Despite there being no inherent need for limiting nr_a=
ltp2m
> in scenarios not utilizing VMFUNC, decoupling these components would nece=
ssitate
> substantial code changes.
>
> xen_domctl_createdomain::altp2m is extended for a new field `nr`, that wi=
ll
> configure this limit for a domain. Additionally, previous altp2m.opts val=
ue
> has been reduced from uint32_t to uint16_t so that both of these fields o=
ccupy
> as little space as possible.
>
> Accesses to the altp2m_p2m array are modified to respect the new nr_altp2=
m
> value. Accesses to the altp2m_(visible_)eptp arrays are unmodified, since
> these arrays always have fixed size of MAX_EPTP.
>
> Additional sanitization is introduced in the x86/arch_sanitise_domain_con=
fig
> to fix the altp2m.nr value to 10 if it is previously set to 0. This behav=
ior
> is only temporary and immediately removed in the upcoming commit (which w=
ill
> disallow creating a domain with enabled altp2m with zero nr_altp2m).
>
> The reason for this temporary workaround is to retain the legacy behavior
> until the feature is fully activated in libxl.
>
> Also, arm/arch_sanitise_domain_config is extended to not allow requesting
> non-zero altp2ms.
>
> Signed-off-by: Petr Bene=C5=A1 <w1benny@gmail.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>

For mem_access/mem_sharing bits:
Acked-by: Tamas K Lengyel <tamas@tklengyel.com>


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 23:30:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 23:30:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090644.1447767 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upbDH-0003aL-4D; Fri, 22 Aug 2025 23:30:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090644.1447767; Fri, 22 Aug 2025 23:30:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upbDH-0003aE-1N; Fri, 22 Aug 2025 23:30:27 +0000
Received: by outflank-mailman (input) for mailman id 1090644;
 Fri, 22 Aug 2025 23:30:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=HljN=3C=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1upbDF-0003a8-0k
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 23:30:25 +0000
Received: from AM0PR83CU005.outbound.protection.outlook.com
 (mail-westeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c201::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f90026ae-7faf-11f0-b898-0df219b8e170;
 Sat, 23 Aug 2025 01:30:22 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by AM0PR03MB6129.eurprd03.prod.outlook.com
 (2603:10a6:20b:146::8) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.17; Fri, 22 Aug
 2025 23:30:20 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9052.014; Fri, 22 Aug 2025
 23:30: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>
X-Inumbo-ID: f90026ae-7faf-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=n1f870HlgQEupDOQiJcKWUdeG6J80k8FUbbVeE8TCI3RpmqClH6CxEcC+Y3f8ZXPgL1vee4G6JmKGhB2WflZ1owiN65NK4IhROIKxoYqLhH2XOZL7V9stpplyt84fk+fkpI+ZQMTP1NF1CWK3JwUSIcY/mr2az10L5ClTENdVeCs6Y5aIQJnAqLthxo/ysVsb5Mg2SE+d4i7O7rf/WyMNi5uQRED49k+STlnrbXZnwQIUbshpxj5TLE3k1NOaVKVt3rf0Q+u1DVmrTSXGfmkz/bqNlHQ4JM8Q0YlQY2vvyb8YDD19rfXnirzXmvCdOfXMlM+AUujOLL6t8Ri0M8gUQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=KW6zq0HoRO2VR0slwjiAA/4SectRuzoph2OzBWr1A98=;
 b=bY2BDuyXdRVno1vOZgVaWtocDEGw4wtSeUh7+MyVb1uu3uHjGk4DIAyGRwXJYsWc75lXNXr76QbEzGMHfZZsGrU6D9CI4AJ30XUxwgmNm/IvRyb7pFW8gwcM3YAZLOIAqUIFmyYr4T6hxTitZwaTkjcE+9MRDxQg3c2ZWFYjJEdn6v8tHDzDB6D4LIEzUNymV/jqjsVAi+b8qE1vrZYou+/VWtyOVmJr/C90cEBI3WiVPq2Y9A8TIr5WkqJfDMU7PgQn61MAN0qUd1uk7C1xslkIAtuXyzIt5bZu3nIltlJ2qd+2t73f0HbG44XsKvTz6xs7CpXnOviNXIomKI3zqA==
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=KW6zq0HoRO2VR0slwjiAA/4SectRuzoph2OzBWr1A98=;
 b=GMGexbr3ypONzh8ELmH1DuIPxqMJgbhZv4Y3Doo/lNT/TojMBo/urIGWX3HH/DjvoD1dC9q/Pti8b4/+HlNvgXrCFnA0ed22rkQXlSshxHWxOkJOzwQ67bOUniaCFEmxCM4VAM7nXs0LFk9ZH0ZdHUqoJt2kvrKZlS0Jhs40ExCTeFG8Kzw6zFR2vWp8Le4l7paN3OhKFbY+BO2suobxZ0DJL1zyD9qeHNhBwgtHMVeXA7vsR2rh2C2iZpO0eX4VCENcHcHH0N1+duWGo7mOpbiWzoxeRybQc1UWVf/pwHoTuHMdZjxCKnHpsQPT5zPYLK6+BgPdlyAN4axh0RAkiQ==
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>, 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 v9 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for
 guests
Thread-Topic: [PATCH v9 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for
 guests
Thread-Index: AQHcEB0Xn+shUJCmLkyEBRYwomJTeg==
Date: Fri, 22 Aug 2025 23:30:19 +0000
Message-ID: <87jz2vaq9h.fsf@epam.com>
References: <cover.1755506449.git.mykola_kvach@epam.com>
	<205b2b354ff1d34d0e9ec4777ca3c94492f6d9d1.1755506449.git.mykola_kvach@epam.com>
In-Reply-To:
 <205b2b354ff1d34d0e9ec4777ca3c94492f6d9d1.1755506449.git.mykola_kvach@epam.com>
	(Mykola Kvach's message of "Mon, 18 Aug 2025 11:49:24 +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_|AM0PR03MB6129:EE_
x-ms-office365-filtering-correlation-id: 44682305-eb99-4ea6-324f-08dde1d3dbcc
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|7416014|376014|42112799006|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?ePFUtMprjiwhvmIMcrctnDLI7tNNgr9+M+H0vgV0OESj9z1pku59RcpOMG?=
 =?iso-8859-1?Q?APDIqb9d14Kv9VAHWzKLwxtStnmGQpAKLGpYUVM/SmFJxcrH4kV6BVA9BL?=
 =?iso-8859-1?Q?yplCvJTrc95nfiTEikYQcPugmOp2nPlQKB7iM5Rd9XWQJCsExNPkw814B5?=
 =?iso-8859-1?Q?JbB0OmpQLN+uwtqfub/YTjY7A/xJLI0c/QB6ToihmEE7L2yLujrOtc+xAH?=
 =?iso-8859-1?Q?8pvO6sekLkaRY/fjvdtKplt+aqGBD7EiIuUwUBk7W9O8joy6Y86/VnQP1G?=
 =?iso-8859-1?Q?3heV9AYrM9kVJ40Xa4V154dXAvLsttfhOf0bc8pjDk5U4OQAEnMtaFE3gy?=
 =?iso-8859-1?Q?MYD7yTxTQt1qRevf/A48A1AnA4DYDtnsHtpDlAg09oLo8lq1YVLeRnso6Q?=
 =?iso-8859-1?Q?QcFJmC48wSgXkGERg54DI7oCaW4lP6iQ+IRwWGZhCLbebkEk2raKlpus1s?=
 =?iso-8859-1?Q?HfGtGqq6wlsXrij4Cs65hfvjjLkWgr9PQtzJSTogu+m+V+hCSQ3o3+S4F3?=
 =?iso-8859-1?Q?Mq/Tv4ojCtUIyzQaMnJRs1zWEdSLl+BZrhbhM1Nq6J4TIM7UV31kPEWwKm?=
 =?iso-8859-1?Q?c8idgGLHFZanKs2Cpu6PcLOa1Ty7qSa5CT8qdwu991lATcRKB3TA9nAklf?=
 =?iso-8859-1?Q?qlDS6xtgmjxuUaKq0cIrwFeslxOoNnA1P40bWGxLDMC3JF8T7B9cVFycRj?=
 =?iso-8859-1?Q?86WDrtY1VgDj8pgqslaN/l1V1RJ+jMr2kijQyT3UqB7oj6T2dwGnbsgmmu?=
 =?iso-8859-1?Q?D1NJ2iTppecBGJE6MRAWxQ09lzan+QGLL2F1tkL7iSbDQdyum+rSNmFXAS?=
 =?iso-8859-1?Q?W47SRqFLBa2emyjI7UO8jT+CYEisupg8bqgEQS9YhM+ZkRIFFNz0+nQ65l?=
 =?iso-8859-1?Q?/SRwddMg+KCdf+aP8UIgOxvNgoMBnJxPumABRfztavu1MsZivXgl6PJgKa?=
 =?iso-8859-1?Q?OGjK0sl3I0IxGnS/3yKDP3j0aCfsVQGL6bEuvyOp1gt4BurM3jnZ3Iwwc0?=
 =?iso-8859-1?Q?g2hWNk+1PHdD+wjLIENQQeoGuSQ/HPT0vjVDr16PhfAbEbWgCzz4BwtAfi?=
 =?iso-8859-1?Q?qSNza2On/YT3Cledf9n9wHgSxAsVK9ldfQR+ISpIVPvh8ptsREqEIhTfRx?=
 =?iso-8859-1?Q?6eWjpDozZs8v2XtV6tFDxanWmn3/wSqysivu4Z3Akd2248J1am8owakg9h?=
 =?iso-8859-1?Q?tAsdVFT+Wv9gPfh9Ls+U3//rpQp/1Fs1KqfODtBf0STTbDTF/RYaGOtVMR?=
 =?iso-8859-1?Q?r87r29XjncIVcWZ2x9QYoNput0Ee9bqzodZ97T8Ysa5gfyU+rU0srUwumc?=
 =?iso-8859-1?Q?oAV5CNU4CrPFIS0zWcf4/79gSry5QtgFp+jddyzmE2+0EI1hcaJTfL5sS1?=
 =?iso-8859-1?Q?+hhLiBmrQTWXvx9nCj/rZrdunzmUawn7RSUDKOjyhGSBHGbYTIi0AkuS/Z?=
 =?iso-8859-1?Q?puxe0yGc3x49Fl5sbrSGt5QAf5insP0NKSV2f2t9I+JtPyMfEQbbKxKDgB?=
 =?iso-8859-1?Q?BxEObIbogPZMDeUeabGDZB3h6y+1gzH7Q7ysGlYeokWA=3D=3D?=
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)(1800799024)(7416014)(376014)(42112799006)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?IWifQ2gxDLO5RLuiRLtJIGVg1K+BfNIaY4oHQqtI8OT/Yw/FhwKcVJiNHx?=
 =?iso-8859-1?Q?yO4SbljmfOwZG67/1wUpPDNA325NhBCr1od1Ui4kUapEmhQfIbm1xxFrST?=
 =?iso-8859-1?Q?6SeXy3k6NWdL/rodfdotWowSprfS9XrEv/piiVtnLegrUDR0RgjZKbw1ss?=
 =?iso-8859-1?Q?05s8wUrwKvQrWUzxkSK/qKsQINa9lvoYsb+u8KIqJTPqiHv6CGWmRAk5Ab?=
 =?iso-8859-1?Q?OzKXCrM2wcCU6LZEue1iFeI49ZmA47O2T6gYbLdTOCNVab2nqMuvDp14kb?=
 =?iso-8859-1?Q?jx17WKMhLNORE87WfZXQgD5tPErfU4mwhClvf8gHCG+no0R0+2h6vy7PWz?=
 =?iso-8859-1?Q?R+jMhXhai+BHwRl0wu3ncoEmClJ6zmFmKWSIGAc1UxuEl0d1VkD3QlHiFP?=
 =?iso-8859-1?Q?GcZtuA/50ehWy4V1AOm3/L3dMFD7NHjzKEhlmyj7YSGfLYk8DKyT8oy9F2?=
 =?iso-8859-1?Q?RW4gnnvYgLzNNtEijRAvN2eI+GdUq5RvoDXl7aobDnDYyvYQ/ijgySpUm9?=
 =?iso-8859-1?Q?Jio/6sZ0l6pZOEXa5H9OUkoemHe5ieYB7j+poi2yuXKUthtC5U7JCQBRLI?=
 =?iso-8859-1?Q?Hr8LdRVNZCiVz+x1WsubxVA3vUjsTQMoNfYffwxT8CdkS7OgJwUKp5OAwd?=
 =?iso-8859-1?Q?WFoeVxc6Xh2IN5v9YzR5kMycVjoZjQjEQDCJrdWmbhVRYdGdUf1rmjrUVM?=
 =?iso-8859-1?Q?g3Z0QsQLAjhJgLEIrr+yTSMSUW/t5fjlpXx9H4Tn2B7+8n88soXDENri/r?=
 =?iso-8859-1?Q?s4MnnZYHxajCWAtVwsOa63XSFnU/O2TWmtIJpb6ZMjOIb+F4NsfZfNQPnw?=
 =?iso-8859-1?Q?Kx2xhiQJ05tXjAqZz/KkdHlWHvcv65Z06E7ip0fQ0BTbxzHN3vkLXjf33y?=
 =?iso-8859-1?Q?d4VwJlujdMNi+1azxh9/bkGc2JiyFqe8wYAJIcKc6Z4Pv/EU3FEf6nnNIW?=
 =?iso-8859-1?Q?27WcriZPVOZRe+DoZSW9sVgFyOuWkls/rDyxN/3Uy8A2lvzWzF06M0eLvd?=
 =?iso-8859-1?Q?s1O6uelS0N5o2SbNYH72h+DBUoC9xSdHshTU4T7yEfUOE6/RmOSJWB6q/p?=
 =?iso-8859-1?Q?aCz3QUuZSqFdMQH75RVp/3yIBuT+AxNT6/e2S/lyIFi4c90WIsJPNmJw8J?=
 =?iso-8859-1?Q?cB9F4DA7Is3ooc6TYgLKp0cAy4xbOHWbR7SUV8zFjtuCvAOcDe84uTZg4a?=
 =?iso-8859-1?Q?sa3Urz0Y+qBBlCVeOlBc4ratERGSfWvAoHADIfn5nnuJvoLRQ5UgKj0Tlh?=
 =?iso-8859-1?Q?vM+sb9pv1yXlUzoQPNlRFlbTZE94saycZrKzFAusVDLXyZJchurK+u/ynp?=
 =?iso-8859-1?Q?qMKARz+57sexldjjS574Bw6ZCjgN3lL74FdThOkrsEgXDi9ynryBOuqQd+?=
 =?iso-8859-1?Q?nL9OC1QX6KxG6nHoC4OIJnUVqkiuejRhwMxjbPmomIVCTbq/htqCj4qF9P?=
 =?iso-8859-1?Q?ME1wmBrgIsHN6f/nBiKt8UYEr6Olkni/q7YHwBUjoaM/FIl5PkAMuhkG4p?=
 =?iso-8859-1?Q?KljmV1eU5ZUTyUzNW48lKYUcHC2dnFClBcQ4a7izCbjhQgYqtuLXfpCrEt?=
 =?iso-8859-1?Q?5JYbhFNiAx8xCk8abw2puI/T/Ej4DdCGmoSvPeLOR8d7fimy/WP1D1YUP8?=
 =?iso-8859-1?Q?0MAMvxMUbqDpfFEn/oDRn64EIQbN1FhPJMNZJVmrB+o4INn1WNWQ9WNw?=
 =?iso-8859-1?Q?=3D=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: 44682305-eb99-4ea6-324f-08dde1d3dbcc
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Aug 2025 23:30:19.8143
 (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: SJgFGzOXVK0772hFPE09b6jMrQ1jU3d/72KVh8sAF9xkhZwMRlzAPgWPobu17eDuRmU2fP4p6NxSIw4e0NK/on4VOkcE+9vvyUiM5BCMXKI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB6129


Hi Mykola,

Mykola Kvach <xakep.amatop@gmail.com> writes:

> From: Mykola Kvach <mykola_kvach@epam.com>
>
> This patch adds support for the PSCI SYSTEM_SUSPEND function in the vPSCI
> (virtual PSCI) interface, allowing guests to request suspend via the PSCI
> v1.0 SYSTEM_SUSPEND call (both 32-bit and 64-bit variants).
>
> The implementation:
> - Adds SYSTEM_SUSPEND function IDs to PSCI definitions
> - Implements trapping and handling of SYSTEM_SUSPEND in vPSCI
> - Allows only non-hardware domains to invoke SYSTEM_SUSPEND; for the
>   hardware domain, PSCI_NOT_SUPPORTED is returned to avoid halting the
>   system in hwdom_shutdown() called from domain_shutdown
> - Ensures all secondary VCPUs of the calling domain are offline before
>   allowing suspend due to PSCI spec
>
> GIC and virtual timer context must be saved when the domain suspends.
> This is done by moving the respective code in ctxt_switch_from
> before the return that happens if the domain suspended.
>
> domain_resume_nopause() is introduced to allow resuming a domain from
> SYSTEM_SUSPEND without pausing it first. This avoids problematic
> domain_pause() calls when resuming from suspend on Arm, particularly
> in error paths. The function is only used on Arm; other architectures
> continue to use the original domain_resume().
>
> Usage:
>
> For Linux-based guests, suspend can be initiated with:
>     echo mem > /sys/power/state
> or via:
>     systemctl suspend
>
> Resuming the guest is performed from control domain using:
>       xl resume <domain>
>
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> ---
> Changes in V9:
> - no functional changes
> - cosmetic chnages after review
> - enhance commit message and add extra comment to the code after review
>
> Changes in V8:
> - GIC and virtual timer context must be saved when the domain suspends
> - rework locking
> - minor changes after code review
>
> Changes in V7:
> - add proper locking
> - minor changes after code review
>
> Changes in V6:
> - skip execution of ctxt_switch_from for vcpu that is in paused domain
> - add implementation of domain_resume without domain_pause
> - add helper function to determine if vcpu is suspended or not
> - ignore upper 32 bits of argument values when the domain is 64-bit
>   and calls the SMC32 SYSTEM_SUSPEND function
> - cosmetic changes after review
>
> Changes in V5:
> - don't use standby mode, restore execution in a provided by guest point
> - move checking that all CPUs, except current one, are offline to after
>   pausing the vCPUs
> - provide ret status from arch_domain_shutdown and handle it in
>   domain_shutdown
> - adjust VPSCI_NR_FUNCS to reflect the number of newly added PSCI functio=
ns
>
> Changes in V4:
> Dropped all changes related to watchdog, domain is marked as shutting
> down in domain_shutdown and watchdog timeout handler won't trigger
> because of it.
>
> Previous versions included code to manage Xen watchdog timers during susp=
end,
> but this was removed. When a guest OS starts the Xen watchdog (either via=
 the
> kernel driver or xenwatchdogd), it is responsible for managing that state
> across suspend/resume. On Linux, the Xen kernel driver properly stops the
> watchdog during suspend. However, when xenwatchdogd is used instead, susp=
end
> handling is incomplete, potentially leading to watchdog-triggered resets =
on
> resume. Xen leaves watchdog handling to the guest OS and its services.
>
> Dropped all changes related to VCPU context, because instead domain_shutd=
own
> is used, so we don't need any extra changes for suspending domain.
>
> Changes in V3:
> Dropped all domain flags and related code (which touched common functions=
 like
> vcpu_unblock), keeping only the necessary changes for Xen suspend/resume,=
 i.e.
> suspend/resume is now fully supported only for the hardware domain.
> Proper support for domU suspend/resume will be added in a future patch.
> This patch does not yet include VCPU context reset or domain context
> restoration in VCPU.
> ---
>  xen/arch/arm/domain.c                 |  17 +++--
>  xen/arch/arm/include/asm/perfc_defn.h |   1 +
>  xen/arch/arm/include/asm/psci.h       |   2 +
>  xen/arch/arm/include/asm/vpsci.h      |   2 +-
>  xen/arch/arm/vpsci.c                  | 101 ++++++++++++++++++++++----
>  xen/common/domain.c                   |  31 ++++++--
>  xen/include/xen/sched.h               |   6 ++
>  7 files changed, 131 insertions(+), 29 deletions(-)
>
> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
> index 310c578909..9e9649c4e2 100644
> --- a/xen/arch/arm/domain.c
> +++ b/xen/arch/arm/domain.c
> @@ -90,6 +90,16 @@ static void ctxt_switch_from(struct vcpu *p)
>      if ( is_idle_vcpu(p) )
>          return;
> =20
> +    /* Arch timer */
> +    p->arch.cntkctl =3D READ_SYSREG(CNTKCTL_EL1);
> +    virt_timer_save(p);
> +
> +    /* VGIC */
> +    gic_save_state(p);
> +

I'd like to see comment here on why we don't need to do rest of the
ctx save code. I saw that this is described in the commit message, but
comment there will be very helpful for future contributors.

> +    if ( test_bit(_VPF_suspended, &p->pause_flags) )
> +        return;
> +
>      p2m_save_state(p);
> =20
>      /* CP 15 */
> @@ -106,10 +116,6 @@ static void ctxt_switch_from(struct vcpu *p)
>      p->arch.tpidrro_el0 =3D READ_SYSREG(TPIDRRO_EL0);
>      p->arch.tpidr_el1 =3D READ_SYSREG(TPIDR_EL1);
> =20
> -    /* Arch timer */
> -    p->arch.cntkctl =3D READ_SYSREG(CNTKCTL_EL1);
> -    virt_timer_save(p);
> -
>      if ( is_32bit_domain(p->domain) && cpu_has_thumbee )
>      {
>          p->arch.teecr =3D READ_SYSREG(TEECR32_EL1);
> @@ -158,9 +164,6 @@ static void ctxt_switch_from(struct vcpu *p)
> =20
>      /* XXX MPU */
> =20
> -    /* VGIC */
> -    gic_save_state(p);
> -
>      isb();
>  }
> =20
> diff --git a/xen/arch/arm/include/asm/perfc_defn.h b/xen/arch/arm/include=
/asm/perfc_defn.h
> index effd25b69e..8dfcac7e3b 100644
> --- a/xen/arch/arm/include/asm/perfc_defn.h
> +++ b/xen/arch/arm/include/asm/perfc_defn.h
> @@ -33,6 +33,7 @@ PERFCOUNTER(vpsci_system_reset,        "vpsci: system_r=
eset")
>  PERFCOUNTER(vpsci_cpu_suspend,         "vpsci: cpu_suspend")
>  PERFCOUNTER(vpsci_cpu_affinity_info,   "vpsci: cpu_affinity_info")
>  PERFCOUNTER(vpsci_features,            "vpsci: features")
> +PERFCOUNTER(vpsci_system_suspend,      "vpsci: system_suspend")
> =20
>  PERFCOUNTER(vcpu_kick,                 "vcpu: notify other vcpu")
> =20
> diff --git a/xen/arch/arm/include/asm/psci.h b/xen/arch/arm/include/asm/p=
sci.h
> index 4780972621..48a93e6b79 100644
> --- a/xen/arch/arm/include/asm/psci.h
> +++ b/xen/arch/arm/include/asm/psci.h
> @@ -47,10 +47,12 @@ void call_psci_system_reset(void);
>  #define PSCI_0_2_FN32_SYSTEM_OFF          PSCI_0_2_FN32(8)
>  #define PSCI_0_2_FN32_SYSTEM_RESET        PSCI_0_2_FN32(9)
>  #define PSCI_1_0_FN32_PSCI_FEATURES       PSCI_0_2_FN32(10)
> +#define PSCI_1_0_FN32_SYSTEM_SUSPEND      PSCI_0_2_FN32(14)
> =20
>  #define PSCI_0_2_FN64_CPU_SUSPEND         PSCI_0_2_FN64(1)
>  #define PSCI_0_2_FN64_CPU_ON              PSCI_0_2_FN64(3)
>  #define PSCI_0_2_FN64_AFFINITY_INFO       PSCI_0_2_FN64(4)
> +#define PSCI_1_0_FN64_SYSTEM_SUSPEND      PSCI_0_2_FN64(14)
> =20
>  /* PSCI v0.2 affinity level state returned by AFFINITY_INFO */
>  #define PSCI_0_2_AFFINITY_LEVEL_ON      0
> diff --git a/xen/arch/arm/include/asm/vpsci.h b/xen/arch/arm/include/asm/=
vpsci.h
> index 0cca5e6830..69d40f9d7f 100644
> --- a/xen/arch/arm/include/asm/vpsci.h
> +++ b/xen/arch/arm/include/asm/vpsci.h
> @@ -23,7 +23,7 @@
>  #include <asm/psci.h>
> =20
>  /* Number of function implemented by virtual PSCI (only 0.2 or later) */
> -#define VPSCI_NR_FUNCS  12
> +#define VPSCI_NR_FUNCS  14
> =20
>  /* Functions handle PSCI calls from the guests */
>  bool do_vpsci_0_1_call(struct cpu_user_regs *regs, uint32_t fid);
> diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
> index 7ba9ccd94b..67d369a8a2 100644
> --- a/xen/arch/arm/vpsci.c
> +++ b/xen/arch/arm/vpsci.c
> @@ -10,28 +10,18 @@
> =20
>  #include <public/sched.h>
> =20
> -static int do_common_cpu_on(register_t target_cpu, register_t entry_poin=
t,
> -                            register_t context_id)
> +static int do_setup_vcpu_ctx(struct vcpu *v, register_t entry_point,
> +                      register_t context_id)
>  {
> -    struct vcpu *v;
>      struct domain *d =3D current->domain;
>      struct vcpu_guest_context *ctxt;
>      int rc;
>      bool is_thumb =3D entry_point & 1;
> -    register_t vcpuid;
> -
> -    vcpuid =3D vaffinity_to_vcpuid(target_cpu);
> -
> -    if ( (v =3D domain_vcpu(d, vcpuid)) =3D=3D NULL )
> -        return PSCI_INVALID_PARAMETERS;
> =20
>      /* THUMB set is not allowed with 64-bit domain */
>      if ( is_64bit_domain(d) && is_thumb )
>          return PSCI_INVALID_ADDRESS;
> =20
> -    if ( !test_bit(_VPF_down, &v->pause_flags) )
> -        return PSCI_ALREADY_ON;
> -
>      if ( (ctxt =3D alloc_vcpu_guest_context()) =3D=3D NULL )
>          return PSCI_DENIED;
> =20
> @@ -78,11 +68,32 @@ static int do_common_cpu_on(register_t target_cpu, re=
gister_t entry_point,
>      if ( rc < 0 )
>          return PSCI_DENIED;
> =20
> -    vcpu_wake(v);
> -
>      return PSCI_SUCCESS;
>  }
> =20
> +static int do_common_cpu_on(register_t target_cpu, register_t entry_poin=
t,
> +                            register_t context_id)
> +{
> +    int rc;
> +    struct vcpu *v;
> +    struct domain *d =3D current->domain;
> +    register_t vcpuid;
> +
> +    vcpuid =3D vaffinity_to_vcpuid(target_cpu);
> +
> +    if ( (v =3D domain_vcpu(d, vcpuid)) =3D=3D NULL )
> +        return PSCI_INVALID_PARAMETERS;
> +
> +    if ( !test_bit(_VPF_down, &v->pause_flags) )
> +        return PSCI_ALREADY_ON;
> +
> +    rc =3D do_setup_vcpu_ctx(v, entry_point, context_id);
> +    if ( rc =3D=3D PSCI_SUCCESS )
> +        vcpu_wake(v);
> +
> +    return rc;
> +}
> +
>  static int32_t do_psci_cpu_on(uint32_t vcpuid, register_t entry_point)
>  {
>      int32_t ret;
> @@ -197,6 +208,48 @@ static void do_psci_0_2_system_reset(void)
>      domain_shutdown(d,SHUTDOWN_reboot);
>  }
> =20
> +static int32_t do_psci_1_0_system_suspend(register_t epoint, register_t =
cid)
> +{
> +    int32_t rc;
> +    struct vcpu *v;
> +    struct domain *d =3D current->domain;
> +
> +    /* 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 )
> +    {
> +        if ( v !=3D current && is_vcpu_online(v) )
> +        {
> +            domain_unlock(d);
> +            return PSCI_DENIED;
> +        }
> +    }
> +    domain_unlock(d);
> +
> +    rc =3D domain_shutdown(d, SHUTDOWN_suspend);
> +    if ( rc )
> +        return PSCI_DENIED;
> +
> +    rc =3D do_setup_vcpu_ctx(current, epoint, cid);
> +    if ( rc !=3D PSCI_SUCCESS )
> +    {
> +        domain_resume_nopause(d);
> +        return rc;
> +    }
> +
> +    set_bit(_VPF_suspended, &current->pause_flags);
> +
> +    dprintk(XENLOG_DEBUG,
> +            "Dom %u: SYSTEM_SUSPEND requested, epoint=3D%#lx, cid=3D%#lx=
\n",
> +            d->domain_id, epoint, cid);
> +
> +    return rc;
> +}
> +
>  static int32_t do_psci_1_0_features(uint32_t psci_func_id)
>  {
>      /* /!\ Ordered by function ID and not name */
> @@ -214,6 +267,8 @@ static int32_t do_psci_1_0_features(uint32_t psci_fun=
c_id)
>      case PSCI_0_2_FN32_SYSTEM_OFF:
>      case PSCI_0_2_FN32_SYSTEM_RESET:
>      case PSCI_1_0_FN32_PSCI_FEATURES:
> +    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
> +    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
>      case ARM_SMCCC_VERSION_FID:
>          return 0;
>      default:
> @@ -344,6 +399,24 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *regs, u=
int32_t fid)
>          return true;
>      }
> =20
> +    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 ( is_64bit_domain(current->domain) &&
> +             fid =3D=3D PSCI_1_0_FN32_SYSTEM_SUSPEND )
> +        {
> +            epoint &=3D GENMASK(31, 0);
> +            cid &=3D GENMASK(31, 0);
> +        }
> +
> +        perfc_incr(vpsci_system_suspend);
> +        PSCI_SET_RESULT(regs, do_psci_1_0_system_suspend(epoint, cid));
> +        return true;
> +    }
> +
>      default:
>          return false;
>      }
> diff --git a/xen/common/domain.c b/xen/common/domain.c
> index 5241a1629e..624c3e2c27 100644
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -1343,16 +1343,13 @@ int domain_shutdown(struct domain *d, u8 reason)
>      return 0;
>  }
> =20
> -void domain_resume(struct domain *d)
> +#ifndef CONFIG_ARM
> +static
> +#endif
> +void domain_resume_nopause(struct domain *d)

It took me some time to understand that this function makes assumption
that domain is already paused. As it behaves like *_unlocked()
functions, maybe it is better to call it something like domain_resume_pause=
d() ?

>  {
>      struct vcpu *v;
> =20
> -    /*
> -     * Some code paths assume that shutdown status does not get reset un=
der
> -     * their feet (e.g., some assertions make this assumption).
> -     */
> -    domain_pause(d);
> -
>      spin_lock(&d->shutdown_lock);
> =20
>      d->is_shutting_down =3D d->is_shut_down =3D 0;
> @@ -1360,13 +1357,33 @@ void domain_resume(struct domain *d)
> =20
>      for_each_vcpu ( d, v )
>      {
> +        /*
> +         * No need to conditionally clear _VPF_suspended here:
> +         * - This bit is only set on Arm64, and only after a successful =
suspend.
> +         * - domain_resume_nopause() may also be called from paths other=
 than
> +         *   the suspend/resume flow, such as "soft-reset" actions (e.g.=
,
> +         *   on_poweroff), as part of the Xenstore control/shutdown prot=
ocol.
> +         *   These require guest acknowledgement to complete the operati=
on.
> +         * So clearing the bit unconditionally is safe.
> +         */
> +        clear_bit(_VPF_suspended, &v->pause_flags);
> +
>          if ( v->paused_for_shutdown )
>              vcpu_unpause(v);
>          v->paused_for_shutdown =3D 0;
>      }
> =20
>      spin_unlock(&d->shutdown_lock);
> +}
> =20
> +void domain_resume(struct domain *d)
> +{
> +    /*
> +     * Some code paths assume that shutdown status does not get reset un=
der
> +     * their feet (e.g., some assertions make this assumption).
> +     */
> +    domain_pause(d);
> +    domain_resume_nopause(d);
>      domain_unpause(d);
>  }
> =20
> diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
> index fd5c9f9333..c1848d8ea6 100644
> --- a/xen/include/xen/sched.h
> +++ b/xen/include/xen/sched.h
> @@ -814,6 +814,9 @@ void domain_destroy(struct domain *d);
>  int domain_kill(struct domain *d);
>  int domain_shutdown(struct domain *d, u8 reason);
>  void domain_resume(struct domain *d);
> +#ifdef CONFIG_ARM
> +void domain_resume_nopause(struct domain *d);
> +#endif

Probably I need comment from other reviewers here. Do we really need to
make this ARM-specific? I understand that right now it will be used only
by ARM, but still... Also, I am not big fan of that

> +#ifndef CONFIG_ARM
> +static
> +#endif

in the function definition.


--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Fri Aug 22 23:31:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 22 Aug 2025 23:31:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090654.1447777 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upbEW-0004EB-DZ; Fri, 22 Aug 2025 23:31:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090654.1447777; Fri, 22 Aug 2025 23: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 1upbEW-0004E3-Aw; Fri, 22 Aug 2025 23:31:44 +0000
Received: by outflank-mailman (input) for mailman id 1090654;
 Fri, 22 Aug 2025 23:31:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=aMUB=3C=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1upbEV-0004Dv-Rh
 for xen-devel@lists.xenproject.org; Fri, 22 Aug 2025 23:31:43 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org
 [2600:3c0a:e001:78e:0:1991:8:25])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 28005572-7fb0-11f0-a32b-13f23c93f187;
 Sat, 23 Aug 2025 01:31:42 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 3174940344;
 Fri, 22 Aug 2025 23:31:40 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 77C4DC4CEED;
 Fri, 22 Aug 2025 23:31:38 +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>
X-Inumbo-ID: 28005572-7fb0-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755905500;
	bh=WXYTLZyn5y5h85M7KdvUs3vMxFksdlg6DFWWMLgMVVQ=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=TL4JoOULfdwBOdgH1iCNLIXgcrhzPrfz8I9M0zr91OKUsDceN4fQTA+2HN9Q3FMkQ
	 1Gt5wzyvQ6D8GQI829+eJHCGilPloDg/TQj9xg47G811cpI2Is5I8OQbiNj+JsX1PL
	 K4AOX8ybpuoisSEjC9Ys5BKBEUN3wgX1+nxPP29fkIXXNiL3knI8IUkxtu3GtPkSO3
	 YYi+MhSKzLygqK9x11wfJIvmKNzChMZdnSdgLCOaCXgrYdWtFh20+EYc6hpSKr2+7R
	 sjud4SN1D570x/V1NFL2EYW+7spArZtgoXCnK/QVHQ/S23Uu3AqDULncpDVMYBcgpC
	 QzhfNFJ/enaeg==
Date: Fri, 22 Aug 2025 16:31:37 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Mykyta Poturai <Mykyta_Poturai@epam.com>, 
    Luca Fancellu <luca.fancellu@arm.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Michal Orzel <michal.orzel@amd.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    =?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>
Subject: Re: [PATCH v2 3/3] xen/pci: add discovered PCI device at boot
In-Reply-To: <2ba28d38-3251-492e-b7d8-a626dcaa1035@suse.com>
Message-ID: <alpine.DEB.2.22.394.2508221631310.2743087@ubuntu-linux-20-04-desktop>
References: <cover.1755683961.git.mykyta_poturai@epam.com> <bb2589996131b0e7e645c0af281b9862e2e0f4cb.1755683961.git.mykyta_poturai@epam.com> <26bad9fb-3c4b-4423-a443-3406d07d56e0@suse.com> <df2d1f6a-23bc-4451-a91f-a484b448c467@epam.com>
 <2ba28d38-3251-492e-b7d8-a626dcaa1035@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Fri, 22 Aug 2025, Jan Beulich wrote:
> On 22.08.2025 10:03, Mykyta Poturai wrote:
> > On 21.08.25 12:08, Jan Beulich wrote:
> >> On 20.08.2025 14:28, Mykyta Poturai wrote:
> >>> From: Luca Fancellu <luca.fancellu@arm.com>
> >>>
> >>> In dom0less mode, there is no dom0 that can call PCI physdev ops to
> >>> register PCI devices to iommu, so it needs to be done by Xen.
> >>> pci_add_device requires some default domain, we don't have hwdom, and
> >>> the guests are not yet created during the PCI init phase, so use dom_io
> >>> as a temporary sentinel before devices are assigned to their target
> >>> domains.
> >>>
> >>> Rename setup_hwdom_pci_devices to setup_pci_devices and add dom0less
> >>> handling to it.
> >>>
> >>> In pci_add_device there is a call to xsm that doesn't consider the
> >>> requester of the function to be Xen itself, so add a check to skip
> >>> the call if the owner domain is dom_io, since it means the call is
> >>> coming directly from Xen.
> >>>
> >>> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> >>> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> >>> ---
> >>> (cherry picked from commit eff51e50021b75f5a50533f7de681b2ce044f5bd from
> >>>   the downstream branch poc/pci-passthrough from
> >>>   https://gitlab.com/xen-project/people/bmarquis/xen-arm-poc.git
> >>>
> >>> v1->v2:
> >>> * integrate add_discovered_pci_devices into existing routines
> >>> * better explain the need for dom_io
> >>
> >> What I continue to miss is an explanation of why devices can't go to their
> >> ultimate "destination" domain right away (once those have been created),
> >> i.e. why the dom_io intermediary is necessary in the first place.
> > 
> > I've done some testing and indeed everything seems to work if we call 
> > pci_add_device directly during domain construction instead of 
> > reassigning them. Do you think this would be a better approach?
> 
> I think so, yes, but first and foremost you'll need Arm maintainer buyoff
> on either approach (or yet another one).

I am OK with that in principle


From xen-devel-bounces@lists.xenproject.org Sat Aug 23 00:01:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Aug 2025 00:01:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090674.1447806 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upbhJ-0000nd-Mh; Sat, 23 Aug 2025 00:01:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090674.1447806; Sat, 23 Aug 2025 00:01: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 1upbhJ-0000nW-K5; Sat, 23 Aug 2025 00:01:29 +0000
Received: by outflank-mailman (input) for mailman id 1090674;
 Sat, 23 Aug 2025 00:01:28 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Yyzx=3D=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1upbhH-0000nQ-VH
 for xen-devel@lists.xenproject.org; Sat, 23 Aug 2025 00:01:28 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4cbdeaee-7fb4-11f0-a32b-13f23c93f187;
 Sat, 23 Aug 2025 02:01:20 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by AS8PR03MB10082.eurprd03.prod.outlook.com
 (2603:10a6:20b:63f::10) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.18; Sat, 23 Aug
 2025 00:01:17 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9052.014; Sat, 23 Aug 2025
 00:01:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4cbdeaee-7fb4-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AA9p6ZIEaJkWD0mTt7hqkTYODAzcWMYjNt9zxOPMrkuWlcysnyiatU5ufS/nre6siw1jLXw+gVe37Q8xCV+xP02qeV//Nx7rJZwRKjXA5QfgNl0mEdMw71bB78LnS26XANtntjmYDLCMxbe34nBtY+zje+1HofbfL4yPahQuXwPR1i2zZGjog33SyFkrglgCp6VuIeAUTsQYQSKgUYev+CZgZo1umoiXu7OiJSwc+sRPZOxZdvH4hzLcCzlJusJhoRjpm7QXRuuy3n58KtaAPVwzVRwqqiNwka8VZRqt6jZncD8Pe/OjtebFmJD+085PrgC2NOl+TN+KI96ceL9+2A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wn1Ki+Q2cZqYku2XlKAVffWg8+hN/QUuWGn4EDap33s=;
 b=XAnv8s4ecVnIwpM9LrsF5Hn/iaae/XwCxw0L4EcKUA343/6UR0alfR3Y4ZPwzjBl1m46UJxghHJkvEBOxHAxspgI388IxdFPe2RgGaDJPgtBRIY9iYB3zvytL+yY683AnkITcawPiYBC8Xy4czW3/LEVMbpkKO0kNblTmWOEwr75gLAOwYuc3TXDXt6uj+ysZG/FMRF2wDDAAGZoMEkKqRxiik3P33rw9KXTrcFVGyQk0n9+plt3Mvy+dGxdE3kb7qWYgjTGTHYFmcNqlbYVrUIjh3IqMHugz4Dt6T+TCrLqGvoQ3LAVA1MRnvWZ3bfrNedHJtIiM743E8UwzDBVRw==
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=wn1Ki+Q2cZqYku2XlKAVffWg8+hN/QUuWGn4EDap33s=;
 b=ZfMzXMIN7MFqslwsgAuJT6S2dDh5fIyfaPOdNbeh8FNaSJTLXoxp6k1ocfSfVp9VeaEbvmj7jujg1hXS+ixS03oqWIGuL38v13FWMi7hYTWO9BGwHr2ZK24cRv0kz4yRb0XDbuhftSQW/VBrn8oT3Xwg7/z/ljroPe+khFRBdRmmNShNYLQa29ZDjTHR04TJjYa0PTgPKSddbHJ63cKf3+uYE/POMdirMldPAIfZLUv89ManQE/LQbk/4whFm+6eK9L9M4aWDjeaKAVT1wpgxKD/qyOkQY3GWMxxbaQHL7njm7j2lubED5KSvwzQQ4dAIfG4ykcBagR7kW29cWJUmw==
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>, Mirela
 Simonovic <mirela.simonovic@aggios.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Saeed
 Nowshadi <saeed.nowshadi@xilinx.com>, Mykyta Poturai
	<Mykyta_Poturai@epam.com>, Mykola Kvach <Mykola_Kvach@epam.com>
Subject: Re: [PATCH v5 02/12] xen/arm: gic-v2: Implement GIC suspend/resume
 functions
Thread-Topic: [PATCH v5 02/12] xen/arm: gic-v2: Implement GIC suspend/resume
 functions
Thread-Index: AQHcCwFbbjjfZY2kcU62fZWRWGuXGg==
Date: Sat, 23 Aug 2025 00:01:16 +0000
Message-ID: <878qjac3ec.fsf@epam.com>
References: <cover.1754943874.git.mykola_kvach@epam.com>
	<db677462d1b5b698db417182c05c3a6c3a17c0d0.1754943874.git.mykola_kvach@epam.com>
In-Reply-To:
 <db677462d1b5b698db417182c05c3a6c3a17c0d0.1754943874.git.mykola_kvach@epam.com>
	(Mykola Kvach's message of "Mon, 11 Aug 2025 23:47:58 +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_|AS8PR03MB10082:EE_
x-ms-office365-filtering-correlation-id: ed1a012d-0400-4064-d076-08dde1d82e4e
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|42112799006|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?/Hv3tjvk3RdQIbtsAQP7Bo9FKuA/cGhaPi9UNJ6Zu4LL3J+fM75tDKRgYk?=
 =?iso-8859-1?Q?maDAQZTjINxbNpls9TTfcy4Sxs9E6ygTvTRzA3M6gIP+o4PkBfKkvIAusT?=
 =?iso-8859-1?Q?LBXbUZV12IVvD56WaiYHO2t6DC3f6WuTgTTskM5H/AppmYbg+erZzr7qGy?=
 =?iso-8859-1?Q?5xQFWiaX4IamHo21qNIk024IOqWjqyDx99R3AjtFv8YsaNeiYIDfUfojHS?=
 =?iso-8859-1?Q?EqTI4g4Z2F7qXKNCwz2zgoaFexkGXd6Bk2izSpm/g2GO6clFPDAGvA3zNX?=
 =?iso-8859-1?Q?PLZPiyOF8sitYkAVkje/ic9T+2MmyfMtF71xUzBS3QX/ZpRa+yzP1W7SBz?=
 =?iso-8859-1?Q?VgZ5I/+CsMh7W5FWiPp95JGBwE4XbVaOZlvjE0mIwsdhaXY0bgJFD+qd94?=
 =?iso-8859-1?Q?jrkvozm9MAghsY1PGlfL56i2nzs82pSmWUHx29UoJjfkrYMzP8N2dzIltJ?=
 =?iso-8859-1?Q?OkV9zqdKEuxITrFV5dlBXqMQnoCU7MU1Xj1KAcQ9CD6NPepJsfSItG5znm?=
 =?iso-8859-1?Q?2KOT0FPlrsDoiH6kx0mdnXKy25IQrcrZ7NYm5Zaou+m/yL0U9RUACES3QY?=
 =?iso-8859-1?Q?DV1E3tcMiUgOFG4g0caiHIVlKcsR/GATDO+iHV13Yhjugve5C96gxKUg0W?=
 =?iso-8859-1?Q?z80b5Nl5pAlIKGO/OCNFF5OlRJ5FW5/amK1sscwemEl/cj9zrud1MM5GZ5?=
 =?iso-8859-1?Q?kRfqjwsImkIzVW12hfqM6u26jGViEvy+eUI2DGBtgwrnzcR2y5FjFxjr4h?=
 =?iso-8859-1?Q?jjTdjGn6xRnTFdPXK1IqLSNo/60qGh5YFC6rX+uwPWHAFijPzMfUfFdNsa?=
 =?iso-8859-1?Q?BtVy36A5Nd/5xUVF1VjhPLAFTb1F+F+tAmd74fqbKr110XrI0sospmujer?=
 =?iso-8859-1?Q?PxMzs+NVekSlIwFgoBJjUJ3IOmjrBzPRUqgxhczAzhJvMR+ez0TzrUTCq6?=
 =?iso-8859-1?Q?1ncRjjCYtrDGRfZ7g+vZ3JaJaAIhxXLqoR8g1+w+jKB65o5RCcohsW4d0y?=
 =?iso-8859-1?Q?yfyxCL1jwbmH1saBVqM8p4S2mHthArxsKPUcqG4HtIm/oO5BMJ+Qnmn8ZT?=
 =?iso-8859-1?Q?bbwodUxg1aq41HqoJY3YY7gY4AITIwbS/kTVURiaBHIO0kJe75NQJKJlD7?=
 =?iso-8859-1?Q?tmS6tkXZ0oJFhsiK4LXl9YJeJtZ5NrpwGjXOL8tnuJO7cIpNEedeAYuzd9?=
 =?iso-8859-1?Q?bRoJ2ZVWkcM9GGjtjjJ0dSAx9X4GdogpVIdBoVdW6grZJdZ4a0eM3EoeSU?=
 =?iso-8859-1?Q?uwnXlseLZSPF53pQPanSRlLkCy6Ryb/J7Qxz8ukn9tix5Nc9KngaO8fCW/?=
 =?iso-8859-1?Q?4L2gNDpsyB2V7GUqo4oQgK+VAxKlrBnoSuCKsrUAgEdK3iknXkkX5inUbs?=
 =?iso-8859-1?Q?KZhFcQbWeA+gfyGEzj0QMo2/4eaFT+wx9/+sdvxb7nIdDT3iVYefzazPd1?=
 =?iso-8859-1?Q?Y2cDvfpFPCES0NroQilmYIjFI1IletuuC2VvwQOTIIySTMcWsC7wntTfuT?=
 =?iso-8859-1?Q?A+doOQWuoxKsfufz3Ea6ExD25PsncWllREz6MZSbQ0YA=3D=3D?=
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)(1800799024)(376014)(42112799006)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?d/nDdbFxDV1P5gSm2O2Nv/ka3VgoDNBCjWOzyIeIVS8z0mOXIGWLM666du?=
 =?iso-8859-1?Q?vdfYwD3Htj7qVyRNbZ+j9NRpok9eBaqXvzQdukK6FONp9pac1ECXx7oCc3?=
 =?iso-8859-1?Q?rFS2F0zYSyVloizrlYzBMNJecaubDYGL/Yja6hDNRlSTnQO1EXZZ6AgpIC?=
 =?iso-8859-1?Q?eiN1+ovfHvpWmwirHg4yKm9kpp21XPAc81ly8i+pbpFkv8Dqp84EggTm15?=
 =?iso-8859-1?Q?kF9vJf0z2fwOXytpnv+clyMP1e7zWjHsPFerWGobYJQ2WpILtksRSPuusK?=
 =?iso-8859-1?Q?v+1Vr6Cr0z7xPFNH2CIZITNzKvL0GEXUxRFy7p3/cOpv8/ASKFUjHrRvoq?=
 =?iso-8859-1?Q?+NGEqs9EfaZ2tEyskeMrL1lPIkX15TCUw7ZwdFWcRQ/HV8tECfEmOwQtuV?=
 =?iso-8859-1?Q?Dhu3N/LKc1D2b2n5wONGVfrMBS3lDN3nluWmzQEotTqps5Z84jCBH21kIt?=
 =?iso-8859-1?Q?jTZwYXJVTrFQj6k2YZyXpprtHcnh7byiPNwBRQ+bLa4fBiER99zOB/1G1/?=
 =?iso-8859-1?Q?RdRUgy1iFJ9JtY1r1eTMB/F/myFsW/cxVOVY6NIQyPMk4JkANktxmYYh6N?=
 =?iso-8859-1?Q?xo4PE+PDc41MEfl1ECWmElayqMG2L7MK3jMq5yj7rHp1tJf33Cz+qk7xt1?=
 =?iso-8859-1?Q?P8fDfrO16hFy0PKV2XRGtGdqwCoMIVB7BgIgwuQYlKhhigZVV3PrbOopjJ?=
 =?iso-8859-1?Q?6zIaELbUzoPmsviHj+m28lqLuygzX96CKpTpTsMKc7ak/XsV4x5TJ+xfPb?=
 =?iso-8859-1?Q?VmVBM0Q8L5bgp30sRaDVPVu5sO2C+vpQ7DFG7yXUeBHeXSpdeSviZwDYg/?=
 =?iso-8859-1?Q?6UKGTkk6VILLuojjTUxdBRXbShP11LcY9uzE9UeqcPRuCYxJAC5ovnKJ8/?=
 =?iso-8859-1?Q?E/ynTngdwfmxh5Tzcj0yE0eGRxor14TVcVD4LeD1yQq8ICshMrvVYXBd5U?=
 =?iso-8859-1?Q?LoDXItzJhEoRid6RHEYRnZkaN2O/vkhM0ELL1LzuDnxOh6jp/pesUb1rb8?=
 =?iso-8859-1?Q?2iuVafCLtJT8mqOE6JbRJeY3jQ+hmcpA3GKDd2aWwGEPDqYsT0fTVa/GeZ?=
 =?iso-8859-1?Q?8PEhsXNPAy/1SGVKtE1Ffc6/OHn1/ux2hPLVTBetzBqe0i2YgqQKPfKgfS?=
 =?iso-8859-1?Q?N+AdEXYzqt29sfxqcwvNNlqy7qEkATZOpE6moc+WcmjKrqP/3tYt70Vt5F?=
 =?iso-8859-1?Q?0QxsQEDl/PUBXUBPkb5q9E3OCJlJwWcskEzFDdpCdvT6y5Sngj9Sy5xTte?=
 =?iso-8859-1?Q?iFfTw8tacuG5wdSkEABiIRoeJq+MEU1+4zc25DVapeB1uXLS91Ip96E985?=
 =?iso-8859-1?Q?dCA9usmzg6xBiP3nnWt8cjV81G4rzxn/N73JXiP51ayUIg+qqKIGUfE7Yq?=
 =?iso-8859-1?Q?qwa5Ey2717oEVEY7gs3svATqhMEZe+a+J9l3S8RmzJYnypzWHKCS9qPV51?=
 =?iso-8859-1?Q?duOu4YIte6Wh69Hp2hSUWvthM1OJUBKH3ucK2VLTrsvi0A9UGLzh5Th/3J?=
 =?iso-8859-1?Q?0rBHzEmMH8P6qLVYJ2DujexqoTOJ4A9AHLQNQ2fLKPa8aOn7heP5fLCjqG?=
 =?iso-8859-1?Q?1c7CEwSMRDaezIYdibP4xUL+/M+PPjJ+AiDId0cbsdiponBpkt8o+TXQk9?=
 =?iso-8859-1?Q?cG/OPqJy6ONGXyYeXMrohv/MLEFXDatyTA6d19sMys8vZunol7u4w2bQ?=
 =?iso-8859-1?Q?=3D=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: ed1a012d-0400-4064-d076-08dde1d82e4e
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Aug 2025 00:01:16.2002
 (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: egpSz6WCuEvaeCWLAnkuagJMWMW+406qYf9z37TxDdZIZnNM20Zvp7R2dMNDXSFVQ9Y65Mn2MmEK35jVrnTGktx+sMsRvfVJ1yK0gi6ks8o=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB10082

Hi Mykola,

Mykola Kvach <xakep.amatop@gmail.com> writes:

> 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.
>
> Tested on Xilinx Ultrascale+ MPSoC with (and without) powering down
> the GIC.

I think you can drop this sentence, as I am pretty sure this patch
wasn't tested on Ultrascale+ for last five(?) years..

>
> 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 v4:
>   - Add error logging for allocation failures
>
> Changes in v3:
>   - Drop asserts and return error codes instead.
>   - Wrap code with CONFIG_SYSTEM_SUSPEND.
>
> Changes in v2:
>   - Minor fixes after review.
> ---
>  xen/arch/arm/gic-v2.c          | 154 +++++++++++++++++++++++++++++++++
>  xen/arch/arm/gic.c             |  29 +++++++
>  xen/arch/arm/include/asm/gic.h |  12 +++
>  3 files changed, 195 insertions(+)
>
> diff --git a/xen/arch/arm/gic-v2.c b/xen/arch/arm/gic-v2.c
> index b23e72a3d0..dce8f5e924 100644
> --- a/xen/arch/arm/gic-v2.c
> +++ b/xen/arch/arm/gic-v2.c
> @@ -1098,6 +1098,151 @@ static int gicv2_iomem_deny_access(struct domain =
*d)
>      return iomem_deny_access(d, mfn, mfn + nr);
>  }
> =20
> +#ifdef CONFIG_SYSTEM_SUSPEND
> +
> +/* GICv2 registers to be saved/restored on system suspend/resume */
> +struct gicv2_context {
> +    /* GICC context */
> +    uint32_t gicc_ctlr;
> +    uint32_t gicc_pmr;
> +    uint32_t gicc_bpr;
> +    /* GICD context */
> +    uint32_t gicd_ctlr;
> +    uint32_t *gicd_isenabler;
> +    uint32_t *gicd_isactiver;
> +    uint32_t *gicd_ipriorityr;
> +    uint32_t *gicd_itargetsr;
> +    uint32_t *gicd_icfgr;
> +};
> +
> +static struct gicv2_context gicv2_context;
> +
> +static int gicv2_suspend(void)
> +{
> +    unsigned int i;
> +
> +    if ( !gicv2_context.gicd_isenabler )
> +    {
> +        dprintk(XENLOG_WARNING, "%s:%d: GICv2 suspend context not alloca=
ted!\n",
> +            __func__, __LINE__);

Should this be ASSERT(gicv2_context.gicd_isenabler) ? Or do we expect
that this can happen during normal runtime?

Also, you don't need to print __func__ and __LINE__ as dprintk does this
for you already:

#define dprintk(lvl, fmt, args...) \
    printk(lvl "%s:%d: " fmt, __FILE__, __LINE__, ## args)



> +        return -ENOMEM;
> +    }
> +
> +    /* Save GICC configuration */
> +    gicv2_context.gicc_ctlr =3D readl_gicc(GICC_CTLR);
> +    gicv2_context.gicc_pmr =3D readl_gicc(GICC_PMR);
> +    gicv2_context.gicc_bpr =3D readl_gicc(GICC_BPR);
> +
> +    /* Save GICD configuration */
> +    gicv2_context.gicd_ctlr =3D readl_gicd(GICD_CTLR);
> +
> +    for ( i =3D 0; i < DIV_ROUND_UP(gicv2_info.nr_lines, 32); i++ )
> +        gicv2_context.gicd_isenabler[i] =3D readl_gicd(GICD_ISENABLER + =
i * 4);
> +
> +    for ( i =3D 0; i < DIV_ROUND_UP(gicv2_info.nr_lines, 32); i++ )
> +        gicv2_context.gicd_isactiver[i] =3D readl_gicd(GICD_ISACTIVER + =
i * 4);
> +

I think you can merge this two loops

> +    for ( i =3D 0; i < DIV_ROUND_UP(gicv2_info.nr_lines, 4); i++ )
> +        gicv2_context.gicd_ipriorityr[i] =3D readl_gicd(GICD_IPRIORITYR =
+ i * 4);
> +
> +    for ( i =3D 0; i < DIV_ROUND_UP(gicv2_info.nr_lines, 4); i++ )
> +        gicv2_context.gicd_itargetsr[i] =3D readl_gicd(GICD_ITARGETSR + =
i * 4);
> +

And this two as well

> +    for ( i =3D 0; i < DIV_ROUND_UP(gicv2_info.nr_lines, 16); i++ )
> +        gicv2_context.gicd_icfgr[i] =3D readl_gicd(GICD_ICFGR + i * 4);
> +
> +    return 0;
> +}
> +
> +static void gicv2_resume(void)
> +{
> +    unsigned int i;
> +
> +    if ( !gicv2_context.gicd_isenabler )
> +    {
> +        dprintk(XENLOG_WARNING, "%s:%d: GICv2 suspend context not alloca=
ted!\n",
> +            __func__, __LINE__);

the same comment as for gicv2_suspend(). Actually, we should not reach
here in any case.

> +        return;
> +    }
> +
> +    gicv2_cpu_disable();
> +    /* Disable distributor */
> +    writel_gicd(0, GICD_CTLR);
> +
> +    /* Restore GICD configuration */
> +    for ( i =3D 0; i < DIV_ROUND_UP(gicv2_info.nr_lines, 32); i++ ) {
> +        writel_gicd(0xffffffff, GICD_ICENABLER + i * 4);
> +        writel_gicd(gicv2_context.gicd_isenabler[i], GICD_ISENABLER + i =
* 4);
> +    }
> +
> +    for ( i =3D 0; i < DIV_ROUND_UP(gicv2_info.nr_lines, 32); i++ ) {
> +        writel_gicd(0xffffffff, GICD_ICACTIVER + i * 4);
> +        writel_gicd(gicv2_context.gicd_isactiver[i], GICD_ISACTIVER + i =
* 4);
> +    }
> +
> +    for ( i =3D 0; i < DIV_ROUND_UP(gicv2_info.nr_lines, 4); i++ )
> +        writel_gicd(gicv2_context.gicd_ipriorityr[i], GICD_IPRIORITYR + =
i * 4);
> +
> +    for ( i =3D 0; i < DIV_ROUND_UP(gicv2_info.nr_lines, 4); i++ )
> +        writel_gicd(gicv2_context.gicd_itargetsr[i], GICD_ITARGETSR + i =
* 4);
> +
> +    for ( i =3D 0; i < DIV_ROUND_UP(gicv2_info.nr_lines, 16); i++ )
> +        writel_gicd(gicv2_context.gicd_icfgr[i], GICD_ICFGR + i * 4);
> +
> +    /* Make sure all registers are restored and enable distributor */
> +    writel_gicd(gicv2_context.gicd_ctlr | GICD_CTL_ENABLE, GICD_CTLR);
> +
> +    /* Restore GIC CPU interface configuration */
> +    writel_gicc(gicv2_context.gicc_pmr, GICC_PMR);
> +    writel_gicc(gicv2_context.gicc_bpr, GICC_BPR);
> +
> +    /* Enable GIC CPU interface */
> +    writel_gicc(gicv2_context.gicc_ctlr | GICC_CTL_ENABLE | GICC_CTL_EOI=
,
> +                GICC_CTLR);
> +}
> +
> +static void gicv2_alloc_context(struct gicv2_context *gc)
> +{
> +    uint32_t n =3D gicv2_info.nr_lines;
> +
> +    gc->gicd_isenabler =3D xzalloc_array(uint32_t, DIV_ROUND_UP(n, 32));
> +    if ( !gc->gicd_isenabler )
> +        goto err_free;
> +
> +    gc->gicd_isactiver =3D xzalloc_array(uint32_t, DIV_ROUND_UP(n, 32));
> +    if ( !gc->gicd_isactiver )
> +        goto err_free;
> +
> +    gc->gicd_itargetsr =3D xzalloc_array(uint32_t, DIV_ROUND_UP(n, 4));
> +    if ( !gc->gicd_itargetsr )
> +        goto err_free;
> +
> +    gc->gicd_ipriorityr =3D xzalloc_array(uint32_t, DIV_ROUND_UP(n, 4));
> +    if ( !gc->gicd_ipriorityr )
> +        goto err_free;
> +
> +    gc->gicd_icfgr =3D xzalloc_array(uint32_t, DIV_ROUND_UP(n, 16));
> +    if ( !gc->gicd_icfgr )
> +        goto err_free;
> +
> +    return;
> +
> + err_free:
> +    dprintk(XENLOG_ERR,
> +            "%s:%d: failed to allocate memory for GICv2 suspend context\=
n",
> +            __func__, __LINE__);

Okay, this partially answers to my previous question about memory
allocation. So it is possible to have active system without space for
GIC context... But this basically renders system un-suspendable. I think
this warrants non-debug print to warn user that suspend will be not
available.=20

[...]

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Sat Aug 23 00:21:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Aug 2025 00:21:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090697.1447816 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upc0D-0003hk-7G; Sat, 23 Aug 2025 00:21:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090697.1447816; Sat, 23 Aug 2025 00:21:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upc0D-0003hd-4a; Sat, 23 Aug 2025 00:21:01 +0000
Received: by outflank-mailman (input) for mailman id 1090697;
 Sat, 23 Aug 2025 00:21:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Yyzx=3D=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1upc0B-0003hX-R5
 for xen-devel@lists.xenproject.org; Sat, 23 Aug 2025 00:21:00 +0000
Received: from AM0PR83CU005.outbound.protection.outlook.com
 (mail-westeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c201::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0a429c1b-7fb7-11f0-b898-0df219b8e170;
 Sat, 23 Aug 2025 02:20:57 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by AS2PR03MB10195.eurprd03.prod.outlook.com
 (2603:10a6:20b:5fe::14) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.13; Sat, 23 Aug
 2025 00:20:55 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9052.014; Sat, 23 Aug 2025
 00:20: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>
X-Inumbo-ID: 0a429c1b-7fb7-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=DBdnGm5V8PnitTekWgtZ2WNDm37NMiV+ba1lKZg8h8/ZfuyrzfB7UvEaa6oqH0M/t6XJUn+nHXwUvDkmKSAXS3bios1zSCGlptFFjnxNtx8ctGjj5m6o4zv84yPS+8lrisc9eYCGAoBgvevgCNDtcS4dtFwDZFwAPkpMrAb5qjvxtstC719Ibi2WXJobJ1AoykDxy/WQHWkJBQpoLUroCwGMT7hmA4SsnpnOMrhc+7RVfN2LkMA0hHHgcNqX5ZJ4cXeInjluF3ho5jB+M9TWd9yVjQ77m179pwwOOzsORQCPTp5qZob6wdpKXPo4FHWW56qIgWzqKYpbH0o4G40Pug==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=XJBOhOFbGYC+mYGet7s4uMY6errCH1Eqn22pXucZRvA=;
 b=K9E0qBp1hWtKzowAAL7KdsTz6Obu5zI9WrE6azJkgvS0ffDY+EJxGNvqDIyXMn398F89NSyfK/0RE/gUnlsSVTTVFdQXCq7sij9LTJb6Nd7QaW2lpxr8NCXCDJ1HQAas1SYmDz3yLAz8IHiU2E70uvNr4Dfc/T0GceV9HQEGt5FCGgbhN2/FCo8zKDGbNDe8WnuH0Q2xLPhiKRR9bupkv7rEt/Z6+CYRUxAzIIXAlUgDtWbT6+22zwVweWMo7eHTirjxYFOOmLB865K0l5ij0pV5K4aTI4hru9blPRX/u93d1yVENaUUVLy/uGW9qoLmd6xoRj78GdkB/XBdnGV1bA==
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=XJBOhOFbGYC+mYGet7s4uMY6errCH1Eqn22pXucZRvA=;
 b=TKJut9v3+MUr8gDoZZ+xfktKeq3wu52vGnLwkwmgbnDo0jIcLpaXWR96UYZrf68PUizAbLaM46JkTSATypKsbHgwxX5xkCbm8Mi3fqCIuhmtV5NGWikNrhzNuzxGvRiJpMD40qRJBUg3VrdEePGBYXi20jdKn8vkwzMFmZpVJJI3esNgceECVJAi7lCfq6zxY9vb5xD5nDHMc717t7JCJREv94S5IISnmfAaVRSNIQrvOfxPbo+/7VvBVZFGK3wxAPdpe6fmFAuquoQSp5VSpuP0vf3veO2z3c9cUqKgkh4JKy4UChbuB3LrOTmMaOhiHP/zaFTLoN38BIxGUFgLZw==
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 v5 03/12] xen/arm: gic-v3: Implement GICv3 suspend/resume
 functions
Thread-Topic: [PATCH v5 03/12] xen/arm: gic-v3: Implement GICv3 suspend/resume
 functions
Thread-Index: AQHcCwFbPuGIvhJksU2gYmOTRYiYRQ==
Date: Sat, 23 Aug 2025 00:20:55 +0000
Message-ID: <87zfbqanx5.fsf@epam.com>
References: <cover.1754943874.git.mykola_kvach@epam.com>
	<451b8a0527a6193b6687e1c85bd254b4dfda142d.1754943874.git.mykola_kvach@epam.com>
In-Reply-To:
 <451b8a0527a6193b6687e1c85bd254b4dfda142d.1754943874.git.mykola_kvach@epam.com>
	(Mykola Kvach's message of "Mon, 11 Aug 2025 23:47:59 +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_|AS2PR03MB10195:EE_
x-ms-office365-filtering-correlation-id: 73c28470-ff9d-478e-3ccf-08dde1daed2c
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|42112799006|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?OCxkoDoWEt0RWdaW8VaBrIvSwqbd+VZIzmBTh0eJ2fG1U8F5TL7HU2TQci?=
 =?iso-8859-1?Q?ZzRzannQJfbIXaTJxgyUTIgOWjfkQKg66BBYzOT6soaWuCvxY2Xw8PDRoW?=
 =?iso-8859-1?Q?9Xgr4YYrL498pKu4ffxm46WWz9qtyJCHGGqTFuhcglmamOJ9pMHr/nBxyO?=
 =?iso-8859-1?Q?h52BuFum4b3KYoR9cDBVT42PbyP+elkOBH4XQpP3MpiqEtoPgv+xi9W6Wp?=
 =?iso-8859-1?Q?+Ozavli0YD4otc4/adUg1yaWkMw0XDd8bxXm1Lm4Vi38o/h2NbT8XhVS8R?=
 =?iso-8859-1?Q?Bu2SZt5+36nmiQwuSfaTP77ayLEiO16K+KFhlOljfroHCRo2sFTSm+iV7z?=
 =?iso-8859-1?Q?DBS9gDJOtWcCqs90GjF/1XnSyp7A0P9CAPFq2ln08bo5b3GuDiwN0Riuxa?=
 =?iso-8859-1?Q?kZxP3NzeupfRhLyi2YgMjr8uVAcDRI5/dfJ0sS6FS5fIK4g0czOD3i3Uq4?=
 =?iso-8859-1?Q?rCNs8EMZq6WKa60EwFs3REa3uCVk6tYlZfw0bAJe2QaagHf0MWwZ2ccPUt?=
 =?iso-8859-1?Q?EfTXN76VRfM/jIiOXp2Ps1gc9XDZhqNEJ+sUMfwkjMwMHDBFgg7o9VoEXX?=
 =?iso-8859-1?Q?541pmw3F+rOsNt0ZgVO/8c/EH7AmKZmZnEuNzC/WxqjGmz1TrKp1VchXKm?=
 =?iso-8859-1?Q?C/WBP1JPdguVGciqODaSNMFx4hkN8o/mcvuWHfBCAxrczMSqdDbiNSgBFw?=
 =?iso-8859-1?Q?KM1YOYIrGhGxHaJKzyQEHIEBWTC/YRWaZQhsm1gsqakg5GAxipmTmuw0iw?=
 =?iso-8859-1?Q?ej+U/A9t7ZemdjYSU0RwG3EGdsqM89vCDlTuDhIBZTjluwB+OQLn0di0TT?=
 =?iso-8859-1?Q?qnsIaGgooWf8AHnxMrdEDsMizF1fK8EsmKG95BD8L+HPzvooMJ+PKRUnFt?=
 =?iso-8859-1?Q?N+F3pMANgKjaoH7qXwix184VcdYeUZqBpC4awmcXvdrETZreVl+5qn6Syf?=
 =?iso-8859-1?Q?6R3sRWLlVpLhBpNBctBJQDr8SYYW9cS7QxuIR2t0+JHD+LqTOgHa6hMc9j?=
 =?iso-8859-1?Q?WwR+I+P32b/Uvw6qixNaOO0HIDhu4cMRRTAPOojv/CjRj2qsw0H7lsg/Xi?=
 =?iso-8859-1?Q?PegtmxOLuGC8qLtyuLVy+3K4K0pH7wlJkW8wHMwKejKweClXPpYKw/PrOk?=
 =?iso-8859-1?Q?FhF8xXqElcTviEvW+L9Ybv0QP2UBMrdj0ozuk5FkbcOy1ouGCcS7MDiQsQ?=
 =?iso-8859-1?Q?NE7PQQYVJViOKeBKMArcNIfJvVPEoAVjsMhgixX+2iJnq7MhThxB4ig272?=
 =?iso-8859-1?Q?la/r5TDpTXnCKE+ps1ON9PtiQUjRc71cXEvwpjb0F4OGW3hjxGFyG6r5OC?=
 =?iso-8859-1?Q?XBvBTX8RRrBVTsnro1qFOvVCTwZMIAgUAI5F21lU9hzUhP4Jd95XAfkXSN?=
 =?iso-8859-1?Q?de+NYeN7dRhk9SjMerGbjMgSP/TpbbCJsMgCxGBfscF3Ra9XP7jhTBtBev?=
 =?iso-8859-1?Q?svHGOLI3qySCxI8gzi1fQGD3NG1VOd0ItBsRy02HCvziqbld2wIhkMbfX2?=
 =?iso-8859-1?Q?Oku6ObwxRsI+Y+RYYGjXAzfG03PnjIIHyvoXkIajaYbg=3D=3D?=
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)(366016)(42112799006)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?hHK5+OEGJJlu0VYl7XUVu5aYLjM2KENL58ElaoS3OkbVH+SBXdoLxCH7ff?=
 =?iso-8859-1?Q?eQbGUgiSpU6ytcGOHREMtFWfQNSOE/XtDqKjq63KwHRhCFRfhhNgF0nMef?=
 =?iso-8859-1?Q?mRBC1Akyi4xqH8T0sEVPBFroowo19GYpPlMLftDN8HWRlIY1tflFhwQOHb?=
 =?iso-8859-1?Q?J8NWBwRsgn6jUKlOIFoeEW5Y2gKbikMKHqhALYT1uA8yLYHFlTQN/eCJsw?=
 =?iso-8859-1?Q?wppE3xiFAGTq0vjZEriP2/2SLJMk1mKcm3/mr/Ip5vf27rs3wRycQFObsz?=
 =?iso-8859-1?Q?LBgEWMAsLFn6eDjVTrakp9SzSJqpry7/87IVSynuOhb8OjEYeCH+VwkQwa?=
 =?iso-8859-1?Q?81hlA5kSflnGPW3eP3tkY7t5Ibieho7YGs0XO6+oU+UETX21znpMxAhOqQ?=
 =?iso-8859-1?Q?f0CKigIC16VpT+Rlw2ga3ma7ndPJi8xr3/TayO2k8PwfmRJViRQ99/SCsi?=
 =?iso-8859-1?Q?99eF7HJH7ff+IVr+f1JKO4MsfWrdSHSI979tWi4Y4gWY32b1bWN8NOCdB4?=
 =?iso-8859-1?Q?ypohbdAbOG5AyuL1elwA3/o5ibbhkU+GRD8jwKUXkxK6w7C4vBuVjQlQ/H?=
 =?iso-8859-1?Q?hVvJMQ+FyLS1doL0INSVtIG1/cHGgnRNudTdgHBcgpdHTTmF3skxopT8gP?=
 =?iso-8859-1?Q?98qHtusrXzRejMLhhjYzcCmEu6LQg14BbxrD3UZfIMNx+l2vGMYBYHXGd8?=
 =?iso-8859-1?Q?+B0J9p6NKWWfqIXeGmDjUyPQaC9wQw3Zw32v6Tf6YTpM+fh0jeX2XLnxKE?=
 =?iso-8859-1?Q?gURdK69VAg0KPVM8qrShYU0pyuXLM/uZeBQbIKGeTsmUBtqLg8++ydVcn1?=
 =?iso-8859-1?Q?c7eYoN30hrX4pwmmiCqYmWe71TJEYmvvJsTzo4JQYj40YX0Zjqixo/Mfr3?=
 =?iso-8859-1?Q?KbnQMZlaJwdJZ4mk7XaYXjSEU0p4kCCqVLy8CiCtqm3mzHU0SCxY1JzECm?=
 =?iso-8859-1?Q?5c2OS4QeTi5iqeZ1BJblrU+wU354vbnO4UV8S9udJB79iMM/hhRisc16sf?=
 =?iso-8859-1?Q?o+usiB/+ju8EvrtXuPCcAsLSunI4ILaiaTNGHUZai4vujVdtJD0wc6bM6H?=
 =?iso-8859-1?Q?67Qi5uUjMlcORUpb5ekJK7lpzZXwSK3clGd1hkk7y+me1J9HZVReuBL4gO?=
 =?iso-8859-1?Q?+R4czi418BmsdDWUAf/tYCDCVEVN9e1/k+Ondx2j8YxUneNZEADBmvN3aB?=
 =?iso-8859-1?Q?IgY68RwkIOAcvyqNhvAvGsZjFP9sADNs/hcz3Y9BRXH5Vw2MeycGMjh2LH?=
 =?iso-8859-1?Q?+MVM43vbdrmWbtbUJ4O2w5NlN8yDs+fB9BAs+auAbZkUtT0SZiUyR1tN/u?=
 =?iso-8859-1?Q?it4ScuWEmBc619NoWvV3jKH29f4O5OGWX/gWwxHzHivO09WQ4MmOawCZ6/?=
 =?iso-8859-1?Q?pOgIlW8rudGOyPNURVOi276tR9ZmArL2DD39Eh7FgPRB9ksO2WsoxFfXVK?=
 =?iso-8859-1?Q?Gi8o7vDkw9ixYu9F3DCuidjWol81eRfKPcQQII9vchMUlE7hOcb4M7pIJv?=
 =?iso-8859-1?Q?AHpMxoB0PmwmJBDbdiPuvtxblQcPoXBfT7iS+7xoTgFuicbLvrf2ix0139?=
 =?iso-8859-1?Q?Y9BOjoWBYH89MfKJoWe++kcC8DCVtKlM7c3NTz5xUyMvUWz4WIbDl9VRr1?=
 =?iso-8859-1?Q?KjsfLsnfDc3j9hyKWR+2PEzz1j52mh/J1+MAeIq3rqWcOkxzJ3+CFl4g?=
 =?iso-8859-1?Q?=3D=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: 73c28470-ff9d-478e-3ccf-08dde1daed2c
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Aug 2025 00:20:55.4519
 (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: fjLsuaQ1JGK6tZgGSY56krdTT6s8gFQmFjNqpHzBg+apolq4aRAknk2tLFHbkOesKON226Nffe+caOV9/CTyMXLfUCFn7tKJJ0wqsNsSKws=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB10195


Hi,

Mykola Kvach <xakep.amatop@gmail.com> writes:

> 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>
> ---
>  xen/arch/arm/gic-v3.c | 233 ++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 233 insertions(+)
>
> diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
> index cd3e1acf79..a9b65ff5d4 100644
> --- a/xen/arch/arm/gic-v3.c
> +++ b/xen/arch/arm/gic-v3.c
> @@ -1776,6 +1776,231 @@ static bool gic_dist_supports_lpis(void)
>      return (readl_relaxed(GICD + GICD_TYPER) & GICD_TYPE_LPIS);
>  }
> =20
> +#ifdef CONFIG_SYSTEM_SUSPEND
> +
> +/* GICv3 registers to be saved/restored on system suspend/resume */
> +struct gicv3_ctx {
> +    struct dist_ctx {
> +        uint32_t ctlr;
> +        /*
> +         * This struct represent block of 32 IRQs
> +         * TODO: store extended SPI configuration (GICv3.1+)
> +         */
> +        struct irq_regs {
> +            uint32_t icfgr[2];
> +            uint32_t ipriorityr[8];
> +            uint64_t irouter[32];
> +            uint32_t isactiver;
> +            uint32_t isenabler;
> +        } *irqs;
> +    } dist;
> +
> +    /* have only one rdist structure for last running CPU during suspend=
 */
> +    struct redist_ctx {
> +        uint32_t ctlr;
> +        /* TODO: handle case when we have more than 16 PPIs (GICv3.1+) *=
/
> +        uint32_t icfgr[2];
> +        uint32_t igroupr;
> +        uint32_t ipriorityr[8];
> +        uint32_t isactiver;
> +        uint32_t isenabler;
> +    } 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);
> +
> +    if ( gicv3_its_host_has_its() )
> +        return;

I think this needs a comment at least. And/or printk() message. Because
for it is unclear why we are doing nothing if host has ITS

> +
> +    /* according to spec it is possible don't have SPIs */
> +    if ( blocks =3D=3D 1 )
> +        return;
> +
> +    gicv3_ctx.dist.irqs =3D xzalloc_array(typeof(*gicv3_ctx.dist.irqs), =
blocks - 1);
> +    if ( !gicv3_ctx.dist.irqs )
> +        dprintk(XENLOG_ERR,
> +                "%s:%d: failed to allocate memory for GICv3 suspend cont=
ext\n",
> +                __func__, __LINE__);

dprintk() already prints function and line. Here and everywhere in this
patch.

> +}
> +
> +static void gicv3_disable_redist(void)
> +{
> +    void __iomem* waker =3D GICD_RDIST_BASE + GICR_WAKER;
> +
> +    writel_relaxed(readl_relaxed(waker) | GICR_WAKER_ProcessorSleep, wak=
er);
> +    while ( (readl_relaxed(waker) & GICR_WAKER_ChildrenAsleep) =3D=3D 0 =
);
> +}
> +
> +static int gicv3_suspend(void)
> +{
> +    unsigned int i;
> +    void __iomem *base;
> +    typeof(gicv3_ctx.rdist)* rdist =3D &gicv3_ctx.rdist;
> +
> +    /* TODO: implement support for ITS */
> +    if ( gicv3_its_host_has_its() )
> +        return -EOPNOTSUPP;
> +
> +    if ( !gicv3_ctx.dist.irqs && gicv3_info.nr_lines > NR_GIC_LOCAL_IRQS=
 )
> +    {
> +        dprintk(XENLOG_WARNING,
> +                "%s:%d: GICv3 suspend context is not allocated!\n",
> +                __func__, __LINE__);
> +        return -ENOMEM;
> +    }
> +
> +    gicv3_save_state(current);
> +
> +    /* 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();
> +    gicv3_disable_redist();
> +
> +    /* Save GICR configuration */
> +    gicv3_redist_wait_for_rwp();
> +
> +    base =3D GICD_RDIST_SGI_BASE;
> +
> +    rdist->ctlr =3D readl_relaxed(base + GICR_CTLR);
> +
> +    /* Set priority on PPI and SGI interrupts */

Probably you wanted to say "Save priority..."

> +    for (i =3D 0; i < NR_GIC_LOCAL_IRQS / 4; i +=3D 4)
> +        rdist->ipriorityr[i] =3D readl_relaxed(base + GICR_IPRIORITYR0 +=
 4 * i);

Is this correct? You are writing to every 4th rdist->ipriorityr and
reading every 4th GICR_IPRIORITYR<n>

> +
> +    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[0]  =3D readl_relaxed(base + GICR_ICFGR0);
> +    rdist->icfgr[1]  =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++ )
> +    {
> +        typeof(gicv3_ctx.dist.irqs) irqs =3D gicv3_ctx.dist.irqs + i - 1=
;
> +        unsigned int irq;
> +
> +        base =3D GICD + GICD_ICFGR + 8 * i;
> +        irqs->icfgr[0] =3D readl_relaxed(base);
> +        irqs->icfgr[1] =3D readl_relaxed(base + 4);
> +
> +        base =3D GICD + GICD_IPRIORITYR + 32 * i;
> +        for ( irq =3D 0; irq < 8; irq++ )
> +            irqs->ipriorityr[irq] =3D readl_relaxed(base + 4 * irq);
> +
> +        base =3D GICD + GICD_IROUTER + 32 * i;
> +        for ( irq =3D 0; irq < 32; irq++ )
> +            irqs->irouter[irq] =3D readq_relaxed_non_atomic(base + 8 * i=
rq);
> +
> +        irqs->isactiver =3D readl_relaxed(GICD + GICD_ISACTIVER + 4 * i)=
;
> +        irqs->isenabler =3D readl_relaxed(GICD + GICD_ISENABLER + 4 * i)=
;
> +    }
> +
> +    return 0;
> +}
> +
> +static void gicv3_resume(void)
> +{
> +    unsigned int i;
> +    void __iomem *base;
> +    typeof(gicv3_ctx.rdist)* rdist =3D &gicv3_ctx.rdist;
> +
> +    if ( !gicv3_ctx.dist.irqs && gicv3_info.nr_lines > NR_GIC_LOCAL_IRQS=
 )
> +    {
> +        dprintk(XENLOG_WARNING, "%s:%d: GICv3 suspend context not alloca=
ted!\n",
> +            __func__, __LINE__);
> +        return;
> +    }
> +
> +    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++ )
> +    {
> +        typeof(gicv3_ctx.dist.irqs) irqs =3D gicv3_ctx.dist.irqs + i - 1=
;
> +        unsigned int irq;
> +
> +        base =3D GICD + GICD_ICFGR + 8 * i;
> +        writel_relaxed(irqs->icfgr[0], base);
> +        writel_relaxed(irqs->icfgr[1], base + 4);
> +
> +        base =3D GICD + GICD_IPRIORITYR + 32 * i;
> +        for ( irq =3D 0; irq < 8; irq++ )
> +            writel_relaxed(irqs->ipriorityr[irq], base + 4 * irq );

style: space before )

> +
> +        base =3D GICD + GICD_IROUTER + 32 * i;
> +        for ( irq =3D 0; irq < 32; irq++ )
> +            writeq_relaxed_non_atomic(irqs->irouter[irq], base + 8 * irq=
);
> +
> +        writel_relaxed(irqs->isenabler, GICD + GICD_ISENABLER + i * 4);
> +        writel_relaxed(irqs->isactiver, GICD + GICD_ISACTIVER + i * 4);
> +    }
> +
> +    writel_relaxed(gicv3_ctx.dist.ctlr, GICD + GICD_CTLR);
> +    gicv3_dist_wait_for_rwp();
> +
> +    /* Restore GICR (Redistributor) configuration */
> +    gicv3_enable_redist();
> +
> +    base =3D GICD_RDIST_SGI_BASE;
> +
> +    writel_relaxed(0xffffffff, base + GICR_ICENABLER0);
> +    gicv3_redist_wait_for_rwp();
> +
> +    for (i =3D 0; i < NR_GIC_LOCAL_IRQS / 4; i +=3D 4)
> +        writel_relaxed(rdist->ipriorityr[i], base + GICR_IPRIORITYR0 + i=
 * 4);

Is this correct? You are writing to every 4th GICR_IPRIORITYR<n>

> +
> +    writel_relaxed(rdist->isactiver, base + GICR_ISACTIVER0);
> +
> +    writel_relaxed(rdist->igroupr,  base + GICR_IGROUPR0);
> +    writel_relaxed(rdist->icfgr[0], base + GICR_ICFGR0);
> +    writel_relaxed(rdist->icfgr[1], 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();
> +
> +    gicv3_restore_state(current);
> +}
> +
> +#endif /* CONFIG_SYSTEM_SUSPEND */
> +
>  /* Set up the GIC */
>  static int __init gicv3_init(void)
>  {
> @@ -1850,6 +2075,10 @@ static int __init gicv3_init(void)
> =20
>      gicv3_hyp_init();
> =20
> +#ifdef CONFIG_SYSTEM_SUSPEND
> +    gicv3_alloc_context();
> +#endif
> +
>  out:
>      spin_unlock(&gicv3.lock);
> =20
> @@ -1889,6 +2118,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
>  };
> =20
>  static int __init gicv3_dt_preinit(struct dt_device_node *node, const vo=
id *data)

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Sat Aug 23 00:22:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Aug 2025 00:22:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090711.1447828 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upc1Z-0004Ht-M2; Sat, 23 Aug 2025 00:22:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090711.1447828; Sat, 23 Aug 2025 00:22: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 1upc1Z-0004Hm-HJ; Sat, 23 Aug 2025 00:22:25 +0000
Received: by outflank-mailman (input) for mailman id 1090711;
 Sat, 23 Aug 2025 00:22:24 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=MmA+=3D=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1upc1Y-0004HH-Sa
 for xen-devel@lists.xenproject.org; Sat, 23 Aug 2025 00:22:24 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3af42c5f-7fb7-11f0-b898-0df219b8e170;
 Sat, 23 Aug 2025 02:22:20 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 7CEC360242;
 Sat, 23 Aug 2025 00:22:18 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9DEF1C4CEED;
 Sat, 23 Aug 2025 00:22:16 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3af42c5f-7fb7-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755908538;
	bh=cvjGvenOwhI9b6/HQCET2aj7y2m73JvkTz9jW1WwMYk=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=VLofcYQ8RdoLoXOBnQqTU/RFBesmWHztyA7EcaA625wWOfECb+1hcZs42FuvpO7Rf
	 MO41HtHXyspkArF29Ag+Rvx1au1lkMJbEWDx5jKQ9VoJgkjFGXKtv+KhmGkSxOqp0m
	 +F6qyOEwdGVaIB3OLezHty54VELGHKoE1yihnkgNi2kQ1w5JysXP9e0k1OEJshkx5b
	 /mYo5VpTpo/gVQt86Kgw6G9BgP8MsBEfztxTpQGmjenReWuNoLkf1Fym9G0AdkV7Nh
	 Ebdg2m7m+tQTnIRXIIyveFG5qWGp4ygb506gydQQO72WJ0iHO8J8d1idrT2lvlrW02
	 dKsIiUu4Bd/DA==
Date: Fri, 22 Aug 2025 17:22:15 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Jan Beulich <jbeulich@suse.com>, Juergen Gross <jgross@suse.com>, 
    Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Grygorii Strashko <grygorii_strashko@epam.com>
Subject: Re: [RFC PATCH v5 03/10] xen/arm: scmi-smc: passthrough SCMI SMC to
 domain, single agent
In-Reply-To: <3c8b292b345d81cd20ce260d45d3d7aac6d98702.1753184487.git.oleksii_moisieiev@epam.com>
Message-ID: <alpine.DEB.2.22.394.2508221715260.2743087@ubuntu-linux-20-04-desktop>
References: <cover.1753184487.git.oleksii_moisieiev@epam.com> <3c8b292b345d81cd20ce260d45d3d7aac6d98702.1753184487.git.oleksii_moisieiev@epam.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 22 Jul 2025, Oleksii Moisieiev wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> The commit 3e322bef8bc0 ("xen/arm: firmware: Add SCMI over SMC calls
> handling layer") introduces simple driver which forwards SCMI over SMC
> calls from hwdom/dom0 to EL3 firmware (TF-A) with a single SCMI OSPM agent
> support. While it is working gracefully for hwdom/dom0 use case it doesn't
> cover "thin Dom0 with guest domain, which serves as Driver domain"
> use-case. In this case HW need to be enable in Driver domain and dom0 is
> performing only control functions.
> 
> The EL3 SCMI firmware (TF-A) with a single SCMI OSPM agent support is
> pretty generic case for the default vendors SDK and new platforms.
> 
> This patch enables passthrough of SCMI SMC single agent interface to the
> one guest domain serving as Driver domain.
> 
> Configure Dom0 to enable SCMI passthrough:
> 
>  - dom0: add scmi_smc_passthrough to the Xen Command Line
> 
> Enabled SCMI passthrough for guest using toolstack in the following way:
> 
>  - domD: xl.cfg add "arm_sci" option as below
> 
>    arm_sci = "type=scmi_smc"
> 
>  - domD: xl.cfg enable access to the "arm,scmi-shmem"
> 
> iomem = [
>     "47ff0,1@22001",
> ]
> 
>  - domD: add SCMI nodes to the Driver domain partial device tree as in the
>  below example:
> 
> passthrough {
>    scmi_shm_0: sram@22001000 {
>        compatible = "arm,scmi-shmem";
>        reg = <0x0 0x22001000 0x0 0x1000>;
>    };
> 
>    firmware {
>         compatible = "simple-bus";
>             scmi: scmi {
>                 compatible = "arm,scmi-smc";
>                 shmem = <&scmi_shm_0>;
>                 ...
>             }
>     }
> }
> 
> dom0less case configuration:
> 
> - add "xen,sci_type" property for required DomU ("xen,domain") node
> 
>    xen,sci_type="scmi_smc"
> 
> - add scmi nodes to the Driver domain partial device tree the same way
> as above and enable access to the "arm,scmi-shmem" according to
> dom0less documentation. For example:
> 
>   scmi_shm_0: sram@22001000 {
>         compatible = "arm,scmi-shmem";
>         reg = <0x00 0x22001000 0x00 0x1000>;
> ->        xen,reg = <0x0 0x47ff0000 0x0 0x1000 0x0 0x22001000>;
> ->        xen,force-assign-without-iommu;
>   };
> 
> The SCMI SMC single agent interface can be enabled for one and only one
> domain. In general, the configuration is similar to any other HW
> passthrough, except explicitly enabling SCMI with "arm_sci" xl.cfg option.
> 
> Note that "arm,scmi-smc" and "arm,scmi-shmem" nodes will be removed from
> dom0/hwdom DT in case of

This patch needs to be rebased, other than that, it is OK



From xen-devel-bounces@lists.xenproject.org Sat Aug 23 00:26:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Aug 2025 00:26:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090729.1447837 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upc5L-0004rV-4N; Sat, 23 Aug 2025 00:26:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090729.1447837; Sat, 23 Aug 2025 00:26:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upc5L-0004rO-1O; Sat, 23 Aug 2025 00:26:19 +0000
Received: by outflank-mailman (input) for mailman id 1090729;
 Sat, 23 Aug 2025 00:26:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=MmA+=3D=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1upc5J-0004rH-52
 for xen-devel@lists.xenproject.org; Sat, 23 Aug 2025 00:26:17 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c6c94d01-7fb7-11f0-b898-0df219b8e170;
 Sat, 23 Aug 2025 02:26:14 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 8079360242;
 Sat, 23 Aug 2025 00:26:13 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6FBC9C4CEED;
 Sat, 23 Aug 2025 00:26:11 +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>
X-Inumbo-ID: c6c94d01-7fb7-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755908773;
	bh=NcPy7Cch2tzWRCbUWDrFAH3SrTAvEb0RbhVUjDJtYRo=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=mXgY1PXN1ausn2UhDOoKP7aRM3+3bLGLptlN5O9wummIdyYGUkPDb7a4wV0C5vd9C
	 qq3j93sY5OH7kcGcYC5XZfSFurMr9m8ZoHXGCafCWkSUfATKxsQE+o/GUSv+4X5Awm
	 /AC42casKiKuMZwASbKKXuO2pBWR5MJjK9JLlqckB/q1FRNRnaUWPLeca+gWHzPNjs
	 c6hG9vPXCJamVm3WDkka4vWaYqCAzCHWwFuMPfERjQAbO9NMDGcc6SWTjCf+ClJwEv
	 jO4tz2dSY6xc70y+xDznFtgbK9NAKzNF4lmtYNVfDoI4cNf/RCq2whgu5IYw8NmneC
	 dL3S6X21YW2kQ==
Date: Fri, 22 Aug 2025 17:26:10 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Jan Beulich <jbeulich@suse.com>, Juergen Gross <jgross@suse.com>, 
    Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Grygorii Strashko <grygorii_strashko@epam.com>
Subject: Re: [RFC PATCH v5 01/10] xen/arm: add generic SCI subsystem
In-Reply-To: <a690ea9c64ca224a8fb1b0771de220f594824151.1753184487.git.oleksii_moisieiev@epam.com>
Message-ID: <alpine.DEB.2.22.394.2508221643200.2743087@ubuntu-linux-20-04-desktop>
References: <cover.1753184487.git.oleksii_moisieiev@epam.com> <a690ea9c64ca224a8fb1b0771de220f594824151.1753184487.git.oleksii_moisieiev@epam.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 22 Jul 2025, Oleksii Moisieiev wrote:
> This patch adds the basic framework for ARM SCI mediator. SCI is System
> Control Interface, which is designed to redirect requests from the Domains
> to ARM specific Firmware (for example SCMI). This will allow the devices,
> passed-through to the different Domains, to access to the System resources
> (such as clocks/resets etc) by sending requests to the firmware.
> 
> ARM SCI subsystem allows to implement different SCI drivers to handle
> specific ARM firmware interfaces (like ARM SCMI) and mediate requests
> -between the Domains and the Firmware. Also it allows SCI drivers to perform
> proper action during Domain creation/destruction which is vital for
> handling use cases like Domain reboot.
> 
> This patch introduces new DEVICE_FIRMWARE device subclass for probing SCI
> drivers basing on device tree, SCI drivers register itself with
> DT_DEVICE_START/END macro. On init - the SCI drivers should register its
> SCI ops with sci_register(). Only one SCI driver can be supported.
> 
> At run-time, the following SCI API calls are introduced:
> 
> - sci_domain_sanitise_config() called from arch_sanitise_domain_config()
> - sci_domain_init() called from arch_domain_create()
> - sci_relinquish_resources() called from domain_relinquish_resources()
> - sci_domain_destroy() called from arch_domain_destroy()
> - sci_handle_call() called from vsmccc_handle_call()
> - sci_dt_handle_node()
> - sci_dt_finalize() called from handle_node() (Dom0 DT)
> 
> Signed-off-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>

The patch needs rebasing


> ---
> 
> Changes in v5:
> - update Maintainers file. Set role as a Reviewer
> - rebased on the latest master branch
> - Introduce arch_handle_passthrough_prop call to handle arm specific nodes
> 
> Changes in v4:
> - fix SPDX-License
> - rename DEVICE_ARM_SCI DT device class to FIRMWARE_DEVICE
> - move XEN_DOMCTL_assign_device code in separate patch
> - Add documentation for SCI SCMI drivers
> 
>  MAINTAINERS                              |   6 +
>  xen/arch/arm/device.c                    |   5 +
>  xen/arch/arm/dom0less-build.c            |   8 +
>  xen/arch/arm/domain.c                    |  12 +-
>  xen/arch/arm/domain_build.c              |   8 +
>  xen/arch/arm/firmware/Kconfig            |   8 +
>  xen/arch/arm/firmware/Makefile           |   1 +
>  xen/arch/arm/firmware/sci.c              | 154 +++++++++++++++++
>  xen/arch/arm/include/asm/domain.h        |   5 +
>  xen/arch/arm/include/asm/firmware/sci.h  | 200 +++++++++++++++++++++++
>  xen/arch/arm/vsmc.c                      |   3 +
>  xen/common/device-tree/dom0less-build.c  |   4 +
>  xen/include/asm-generic/device.h         |   1 +
>  xen/include/asm-generic/dom0less-build.h |   9 +
>  xen/include/public/arch-arm.h            |   4 +
>  15 files changed, 427 insertions(+), 1 deletion(-)
>  create mode 100644 xen/arch/arm/firmware/sci.c
>  create mode 100644 xen/arch/arm/include/asm/firmware/sci.h
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index c4886c1159..31dbba54bb 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -509,6 +509,12 @@ R:	George Dunlap <gwd@xenproject.org>
>  S:	Supported
>  F:	xen/common/sched/
>  
> +SCI MEDIATORS
> +R:	Oleksii Moisieiev <oleksii_moisieiev@epam.com>
> +S:	Supported
> +F:	xen/arch/arm/firmware/sci.c
> +F:	xen/arch/arm/include/asm/firmware/sci.h
> +
>  SEABIOS UPSTREAM
>  M:	Wei Liu <wl@xen.org>
>  S:	Supported
> diff --git a/xen/arch/arm/device.c b/xen/arch/arm/device.c
> index 11523750ae..74b54cad34 100644
> --- a/xen/arch/arm/device.c
> +++ b/xen/arch/arm/device.c
> @@ -13,6 +13,7 @@
>  #include <xen/iocap.h>
>  #include <xen/lib.h>
>  
> +#include <asm/firmware/sci.h>
>  #include <asm/setup.h>
>  
>  int map_irq_to_domain(struct domain *d, unsigned int irq,
> @@ -303,6 +304,10 @@ int handle_device(struct domain *d, struct dt_device_node *dev, p2m_type_t p2mt,
>                  return res;
>              }
>          }
> +
> +        res = sci_assign_dt_device(d, dev);
> +        if ( res )
> +            return res;
>      }
>  
>      res = map_device_irqs_to_domain(d, dev, own_device, irq_ranges);
> diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
> index 4b285cff5e..2a0bf817ba 100644
> --- a/xen/arch/arm/dom0less-build.c
> +++ b/xen/arch/arm/dom0less-build.c
> @@ -22,6 +22,7 @@
>  #include <asm/arm64/sve.h>
>  #include <asm/dom0less-build.h>
>  #include <asm/domain_build.h>
> +#include <asm/firmware/sci.h>
>  #include <asm/grant_table.h>
>  #include <asm/setup.h>
>  
> @@ -272,6 +273,12 @@ int __init init_vuart(struct domain *d, struct kernel_info *kinfo,
>      return rc;
>  }
>  
> +int __init arch_handle_passthrough_prop(struct kernel_info *kinfo,
> +                                        struct dt_device_node *node)
> +{
> +    return sci_assign_dt_device(kinfo->d, node);
> +}
> +
>  void __init arch_create_domUs(struct dt_device_node *node,
>                         struct xen_domctl_createdomain *d_cfg,
>                         unsigned int flags)
> @@ -280,6 +287,7 @@ void __init arch_create_domUs(struct dt_device_node *node,
>  
>      d_cfg->arch.gic_version = XEN_DOMCTL_CONFIG_GIC_NATIVE;
>      d_cfg->flags |= XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap;
> +    d_cfg->arch.arm_sci_type = XEN_DOMCTL_CONFIG_ARM_SCI_NONE;
>  
>      if ( !dt_property_read_u32(node, "nr_spis", &d_cfg->arch.nr_spis) )
>      {
> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
> index 79a144e61b..d0146da5da 100644
> --- a/xen/arch/arm/domain.c
> +++ b/xen/arch/arm/domain.c
> @@ -24,6 +24,7 @@
>  #include <asm/platform.h>
>  #include <asm/procinfo.h>
>  #include <asm/regs.h>
> +#include <asm/firmware/sci.h>
>  #include <asm/tee/tee.h>
>  #include <asm/vfp.h>
>  #include <asm/vgic.h>
> @@ -699,7 +700,7 @@ int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
>          return -EINVAL;
>      }
>  
> -    return 0;
> +    return sci_domain_sanitise_config(config);
>  }
>  
>  int arch_domain_create(struct domain *d,
> @@ -791,6 +792,9 @@ int arch_domain_create(struct domain *d,
>      d->arch.sve_vl = config->arch.sve_vl;
>  #endif
>  
> +    if ( (rc = sci_domain_init(d, config)) != 0 )
> +        goto fail;
> +
>      return 0;
>  
>  fail:
> @@ -851,6 +855,7 @@ void arch_domain_destroy(struct domain *d)
>      domain_vgic_free(d);
>      domain_vuart_free(d);
>      free_xenheap_page(d->shared_info);
> +    sci_domain_destroy(d);
>  #ifdef CONFIG_ACPI
>      free_xenheap_pages(d->arch.efi_acpi_table,
>                         get_order_from_bytes(d->arch.efi_acpi_len));
> @@ -1044,6 +1049,7 @@ enum {
>      PROG_p2m_root,
>      PROG_p2m,
>      PROG_p2m_pool,
> +    PROG_sci,
>      PROG_done,
>  };
>  
> @@ -1103,6 +1109,10 @@ int domain_relinquish_resources(struct domain *d)
>          ret = relinquish_p2m_mapping(d);
>          if ( ret )
>              return ret;
> +    PROGRESS(sci):
> +        ret = sci_relinquish_resources(d);
> +        if ( ret )
> +            return ret;
>  
>      PROGRESS(p2m_root):
>          /*
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index ed668bd61c..92039cf213 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -26,6 +26,7 @@
>  #include <asm/setup.h>
>  #include <asm/tee/tee.h>
>  #include <asm/pci.h>
> +#include <asm/firmware/sci.h>
>  #include <asm/platform.h>
>  #include <asm/psci.h>
>  #include <asm/setup.h>
> @@ -1639,6 +1640,9 @@ static int __init handle_node(struct domain *d, struct kernel_info *kinfo,
>          return 0;
>      }
>  
> +    if ( sci_dt_handle_node(d, node) )
> +        return 0;
> +
>      /*
>       * The vGIC does not support routing hardware PPIs to guest. So
>       * we need to skip any node using PPIs.
> @@ -1739,6 +1743,10 @@ static int __init handle_node(struct domain *d, struct kernel_info *kinfo,
>          if ( res )
>              return res;
>  
> +        res = sci_dt_finalize(d, kinfo->fdt);
> +        if ( res )
> +            return res;
> +
>          /*
>           * Create a second memory node to store the ranges covering
>           * reserved-memory regions.
> diff --git a/xen/arch/arm/firmware/Kconfig b/xen/arch/arm/firmware/Kconfig
> index 817da745fd..fc7918c7fc 100644
> --- a/xen/arch/arm/firmware/Kconfig
> +++ b/xen/arch/arm/firmware/Kconfig
> @@ -1,3 +1,11 @@
> +config ARM_SCI
> +	bool
> +	depends on ARM
> +	help
> +	  This option enables generic Arm SCI (System Control Interface) mediators
> +	  support. It allows domains to control system resources via one of
> +	  Arm SCI mediators drivers implemented in XEN, like SCMI.
> +
>  menu "Firmware Drivers"
>  
>  config SCMI_SMC
> diff --git a/xen/arch/arm/firmware/Makefile b/xen/arch/arm/firmware/Makefile
> index a5e4542666..71bdefc24a 100644
> --- a/xen/arch/arm/firmware/Makefile
> +++ b/xen/arch/arm/firmware/Makefile
> @@ -1 +1,2 @@
> +obj-$(CONFIG_ARM_SCI) += sci.o
>  obj-$(CONFIG_SCMI_SMC) += scmi-smc.o
> diff --git a/xen/arch/arm/firmware/sci.c b/xen/arch/arm/firmware/sci.c
> new file mode 100644
> index 0000000000..e1522e10e2
> --- /dev/null
> +++ b/xen/arch/arm/firmware/sci.c
> @@ -0,0 +1,154 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Generic part of the SCI (System Control Interface) subsystem.
> + *
> + * Oleksii Moisieiev <oleksii_moisieiev@epam.com>
> + * Copyright (c) 2025 EPAM Systems
> + */
> +
> +#include <xen/acpi.h>
> +#include <xen/errno.h>
> +#include <xen/init.h>
> +#include <xen/sched.h>
> +#include <xen/types.h>
> +
> +#include <asm/firmware/sci.h>
> +
> +static const struct sci_mediator_ops __read_mostly *cur_mediator;
> +
> +int sci_register(const struct sci_mediator_ops *ops)
> +{
> +    if ( cur_mediator )
> +        return -EEXIST;
> +
> +    if ( !ops->domain_init || !ops->domain_destroy || !ops->handle_call )
> +        return -EINVAL;
> +
> +    cur_mediator = ops;
> +
> +    return 0;
> +};
> +
> +bool sci_handle_call(struct cpu_user_regs *args)
> +{
> +    if ( unlikely(!cur_mediator) )
> +        return false;

should we check that sci_domain_is_enabled ?


> +    return cur_mediator->handle_call(args);
> +}
> +
> +int sci_domain_init(struct domain *d, struct xen_domctl_createdomain *config)
> +{
> +    if ( !cur_mediator )
> +        return 0;
> +
> +    return cur_mediator->domain_init(d, config);
> +}
> +
> +int sci_domain_sanitise_config(struct xen_domctl_createdomain *config)
> +{
> +    if ( !cur_mediator )
> +        return 0;
> +
> +    if ( !cur_mediator->domain_sanitise_config )
> +        return 0;
> +
> +    return cur_mediator->domain_sanitise_config(config);
> +}
> +
> +void sci_domain_destroy(struct domain *d)
> +{
> +    if ( !cur_mediator )
> +        return;
> +
> +    cur_mediator->domain_destroy(d);
> +}
> +
> +int sci_relinquish_resources(struct domain *d)
> +{
> +    if ( !cur_mediator )
> +        return 0;
> +
> +    if ( !cur_mediator->relinquish_resources )
> +        return 0;
> +
> +    return cur_mediator->relinquish_resources(d);
> +}
> +
> +bool sci_dt_handle_node(struct domain *d, struct dt_device_node *node)
> +{
> +    if ( !cur_mediator )
> +        return 0;
> +
> +    if ( !cur_mediator->dom0_dt_handle_node )
> +        return 0;
> +
> +    return cur_mediator->dom0_dt_handle_node(d, node);
> +}
> +
> +int sci_dt_finalize(struct domain *d, void *fdt)
> +{
> +    if ( !cur_mediator )
> +        return 0;
> +
> +    if ( !cur_mediator->dom0_dt_finalize )
> +        return 0;
> +
> +    return cur_mediator->dom0_dt_finalize(d, fdt);
> +}
> +
> +int sci_assign_dt_device(struct domain *d, struct dt_device_node *dev)
> +{
> +    struct dt_phandle_args ac_spec;
> +    int index = 0;
> +    int ret;
> +
> +    if ( !cur_mediator )
> +        return 0;
> +
> +    if ( !cur_mediator->assign_dt_device )
> +        return 0;
> +
> +    while ( !dt_parse_phandle_with_args(dev, "access-controllers",
> +                                        "#access-controller-cells", index,
> +                                        &ac_spec) )
> +    {
> +        printk(XENLOG_DEBUG "sci: assign device %s to %pd\n",
> +               dt_node_full_name(dev), d);
> +
> +        ret = cur_mediator->assign_dt_device(d, &ac_spec);
> +        if ( ret )
> +            return ret;
> +
> +        index++;
> +    }
> +
> +    return 0;
> +}
> +
> +static int __init sci_init(void)
> +{
> +    struct dt_device_node *np;
> +    unsigned int num_sci = 0;
> +    int rc;
> +
> +    dt_for_each_device_node(dt_host, np)
> +    {
> +        rc = device_init(np, DEVICE_FIRMWARE, NULL);
> +        if ( !rc && num_sci )
> +        {
> +            printk(XENLOG_ERR
> +                   "SCMI: Only one SCI controller is supported. found second %s\n",
> +                   np->name);
> +            return -EOPNOTSUPP;
> +        }
> +        else if ( !rc )
> +            num_sci++;
> +        else if ( rc != -EBADF && rc != -ENODEV )
> +            return rc;
> +    }
> +
> +    return 0;
> +}
> +
> +__initcall(sci_init);
> diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/domain.h
> index a3487ca713..af3e168374 100644
> --- a/xen/arch/arm/include/asm/domain.h
> +++ b/xen/arch/arm/include/asm/domain.h
> @@ -120,6 +120,11 @@ struct arch_domain
>  #ifdef CONFIG_TEE
>      void *tee;
>  #endif
> +#ifdef CONFIG_ARM_SCI
> +    bool sci_enabled;
> +    /* ARM SCI driver's specific data */
> +    void *sci_data;
> +#endif
>  
>  }  __cacheline_aligned;
>  
> diff --git a/xen/arch/arm/include/asm/firmware/sci.h b/xen/arch/arm/include/asm/firmware/sci.h
> new file mode 100644
> index 0000000000..71fb54852e
> --- /dev/null
> +++ b/xen/arch/arm/include/asm/firmware/sci.h
> @@ -0,0 +1,200 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Generic ARM SCI (System Control Interface) subsystem.
> + *
> + * Oleksii Moisieiev <oleksii_moisieiev@epam.com>
> + * Copyright (c) 2025 EPAM Systems
> + */
> +
> +#ifndef __ASM_ARM_SCI_H
> +#define __ASM_ARM_SCI_H
> +
> +#include <xen/lib.h>
> +#include <xen/types.h>
> +#include <xen/device_tree.h>
> +#include <xen/errno.h>
> +#include <xen/sched.h>
> +
> +#ifdef CONFIG_ARM_SCI
> +
> +struct sci_mediator_ops {
> +    /*
> +     * Called during domain construction. If it is requested to enable
> +     * SCI support, so SCI driver can create own structures for the new domain
> +     * and inform firmware about new domain (if required).
> +     * Mandatory.
> +     */
> +    int (*domain_init)(struct domain *d,
> +                       struct xen_domctl_createdomain *config);
> +
> +    /*
> +     * Called during domain construction. The SCI driver uses
> +     * it to sanitize domain SCI configuration parameters.
> +     * Optional.
> +     */
> +    int (*domain_sanitise_config)(struct xen_domctl_createdomain *config);
> +
> +    /*
> +     * Called during domain destruction, releases all resources, that
> +     * were allocated for domain.
> +     * Mandatory.
> +     */
> +    void (*domain_destroy)(struct domain *d);
> +
> +    /*
> +     * Called during domain destruction to relinquish resources used
> +     * by SCI driver itself and request resources releasing from firmware.
> +     * Optional.
> +     */
> +    int (*relinquish_resources)(struct domain *d);
> +
> +    /* SMC/HVC Handle callback */
> +    bool (*handle_call)(struct cpu_user_regs *regs);
> +
> +    /*
> +     * Dom0 DT nodes handling callback so SCI driver can detect DT nodes it
> +     * need to handle and decide if those nodes need to be provided to Dom0.
> +     * Optional.
> +     */
> +    bool (*dom0_dt_handle_node)(struct domain *d, struct dt_device_node *node);
> +
> +    /*
> +     * SCI driver callback called at the end of Dom0 DT generation, so
> +     * it can perform steps to modify DT to enable/disable SCI
> +     * functionality for Dom0.
> +     */
> +    int (*dom0_dt_finalize)(struct domain *d, void *fdt);
> +
> +    /*
> +     * SCI driver callback called when DT device is passed through to guest,
> +     * so SCI driver can enable device access to the domain if SCI FW provides
> +     * Device specific access control functionality.
> +     * Optional.
> +     */
> +    int (*assign_dt_device)(struct domain *d, struct dt_phandle_args *ac_spec);
> +};
> +
> +
> +static inline bool sci_domain_is_enabled(struct domain *d)
> +{
> +    return d->arch.sci_enabled;
> +}
> +
> +/*
> + * Register SCI subsystem ops.
> + *
> + * Register SCI drivers operation and so enable SCI functionality.
> + * Only one SCI driver is supported.
> + */
> +int sci_register(const struct sci_mediator_ops *ops);
> +
> +/*
> + * Initialize SCI functionality for domain if configured.
> + *
> + * Initialization routine to enable SCI functionality for the domain.
> + * The SCI configuration data and decision about enabling SCI functionality
> + * for the domain is SCI driver specific.
> + */
> +int sci_domain_init(struct domain *d, struct xen_domctl_createdomain *config);
> +
> +/*
> + * Sanitise domain configuration parameters.
> + *
> + */
> +int sci_domain_sanitise_config(struct xen_domctl_createdomain *config);
> +
> +/*
> + * Destroy SCI domain instance.
> + */
> +void sci_domain_destroy(struct domain *d);
> +
> +/*
> + * Free resources assigned to the certain domain.
> + */
> +int sci_relinquish_resources(struct domain *d);
> +
> +/*
> + * SMC/HVC Handle callback.
> + *
> + * SCI driver acts as SMC/HVC server for the registered domains and
> + * does redirection of the domain calls to the SCI firmware,
> + * such as ARM TF-A or similar.
> + */
> +bool sci_handle_call(struct cpu_user_regs *regs);
> +
> +/*
> + * Dom0 DT nodes handling function.
> + *
> + * Allows SCI driver to detect DT nodes it need to handle and decide if
> + * those nodes need to be provided to Dom0.
> + */
> +bool sci_dt_handle_node(struct domain *d, struct dt_device_node *node);
> +
> +/*
> + * Dom0 DT generation finalize.
> + *
> + * Called at the end of Dom0 DT generation, so SCI driver can perform steps
> + * to modify DT to enable/disable SCI functionality for Dom0.
> + */
> +int sci_dt_finalize(struct domain *d, void *fdt);
> +
> +/*
> + * Assign DT device to domain.
> + *
> + * Called when DT device is passed through to guest, so SCI driver can enable
> + * device access to the domain if SCI FW provides "Device specific access
> + * control" functionality.
> + */
> +int sci_assign_dt_device(struct domain *d, struct dt_device_node *dev);
> +#else
> +
> +static inline bool sci_domain_is_enabled(struct domain *d)
> +{
> +    return false;
> +}
> +
> +static inline int sci_domain_init(struct domain *d,
> +                                  struct xen_domctl_createdomain *config)
> +{
> +    return 0;
> +}
> +
> +static inline int
> +sci_domain_sanitise_config(struct xen_domctl_createdomain *config)
> +{
> +    return 0;
> +}
> +
> +static inline void sci_domain_destroy(struct domain *d)
> +{}
> +
> +static inline int sci_relinquish_resources(struct domain *d)
> +{
> +    return 0;
> +}
> +
> +static inline bool sci_handle_call(struct cpu_user_regs *args)
> +{
> +    return false;
> +}
> +
> +static inline bool sci_dt_handle_node(struct domain *d,
> +                                      struct dt_device_node *node)
> +{
> +    return false;
> +}
> +
> +static inline int sci_dt_finalize(struct domain *d, void *fdt)
> +{
> +    return false;

should return int, not bool


> +}
> +
> +static inline int sci_assign_dt_device(struct domain *d,
> +                                       struct dt_device_node *dev)
> +{
> +    return 0;
> +}
> +
> +#endif /* CONFIG_ARM_SCI */
> +
> +#endif /* __ASM_ARM_SCI_H */
> diff --git a/xen/arch/arm/vsmc.c b/xen/arch/arm/vsmc.c
> index 6081f14ed0..2469738fcc 100644
> --- a/xen/arch/arm/vsmc.c
> +++ b/xen/arch/arm/vsmc.c
> @@ -12,6 +12,7 @@
>  #include <public/arch-arm/smccc.h>
>  #include <asm/cpuerrata.h>
>  #include <asm/cpufeature.h>
> +#include <asm/firmware/sci.h>
>  #include <asm/monitor.h>
>  #include <asm/regs.h>
>  #include <asm/smccc.h>
> @@ -300,6 +301,8 @@ static bool vsmccc_handle_call(struct cpu_user_regs *regs)
>              break;
>          case ARM_SMCCC_OWNER_SIP:
>              handled = handle_sip(regs);
> +            if ( !handled )
> +                handled = sci_handle_call(regs);
>              break;
>          case ARM_SMCCC_OWNER_TRUSTED_APP ... ARM_SMCCC_OWNER_TRUSTED_APP_END:
>          case ARM_SMCCC_OWNER_TRUSTED_OS ... ARM_SMCCC_OWNER_TRUSTED_OS_END:
> diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tree/dom0less-build.c
> index 0012046574..f29656a27e 100644
> --- a/xen/common/device-tree/dom0less-build.c
> +++ b/xen/common/device-tree/dom0less-build.c
> @@ -228,6 +228,10 @@ static int __init handle_passthrough_prop(struct kernel_info *kinfo,
>      if ( res < 0 )
>          return res;
>  
> +    res = arch_handle_passthrough_prop(kinfo, node);
> +    if ( res )
> +        return res;
> +
>      /* If xen_force, we allow assignment of devices without IOMMU protection. */
>      if ( xen_force && !dt_device_is_protected(node) )
>          return 0;
> diff --git a/xen/include/asm-generic/device.h b/xen/include/asm-generic/device.h
> index 1acd1ba1d8..e96c5558c2 100644
> --- a/xen/include/asm-generic/device.h
> +++ b/xen/include/asm-generic/device.h
> @@ -18,6 +18,7 @@ enum device_class
>      DEVICE_IOMMU,
>      DEVICE_INTERRUPT_CONTROLLER,
>      DEVICE_PCI_HOSTBRIDGE,
> +    DEVICE_FIRMWARE,
>      /* Use for error */
>      DEVICE_UNKNOWN,
>  };
> diff --git a/xen/include/asm-generic/dom0less-build.h b/xen/include/asm-generic/dom0less-build.h
> index e0ad0429ec..1c56441c33 100644
> --- a/xen/include/asm-generic/dom0less-build.h
> +++ b/xen/include/asm-generic/dom0less-build.h
> @@ -61,6 +61,9 @@ 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);
>  
> +int arch_handle_passthrough_prop(struct kernel_info *kinfo,
> +                                 struct dt_device_node *node);
> +
>  #else /* !CONFIG_DOM0LESS_BOOT */
>  
>  static inline void create_domUs(void) {}
> @@ -70,6 +73,12 @@ static inline bool is_dom0less_mode(void)
>  }
>  static inline void set_xs_domain(struct domain *d) {}
>  
> +static inline int arch_handle_passthrough_prop(struct kernel_info *kinfo,
> +                                               struct dt_device_node *node)
> +{
> +    return 0;
> +}
> +
>  #endif /* CONFIG_DOM0LESS_BOOT */
>  
>  #endif /* __ASM_GENERIC_DOM0LESS_BUILD_H__ */
> diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
> index 24840eeaa6..55eed9992c 100644
> --- a/xen/include/public/arch-arm.h
> +++ b/xen/include/public/arch-arm.h
> @@ -327,6 +327,8 @@ DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t);
>  #define XEN_DOMCTL_CONFIG_TEE_OPTEE     1
>  #define XEN_DOMCTL_CONFIG_TEE_FFA       2
>  
> +#define XEN_DOMCTL_CONFIG_ARM_SCI_NONE      0
> +
>  struct xen_arch_domainconfig {
>      /* IN/OUT */
>      uint8_t gic_version;
> @@ -350,6 +352,8 @@ struct xen_arch_domainconfig {
>       *
>       */
>      uint32_t clock_frequency;
> +    /* IN */
> +    uint8_t arm_sci_type;
>  };
>  #endif /* __XEN__ || __XEN_TOOLS__ */
>  
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Sat Aug 23 00:26:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Aug 2025 00:26:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090730.1447847 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upc5Q-00057L-Ff; Sat, 23 Aug 2025 00:26:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090730.1447847; Sat, 23 Aug 2025 00:26:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upc5Q-00057E-Bx; Sat, 23 Aug 2025 00:26:24 +0000
Received: by outflank-mailman (input) for mailman id 1090730;
 Sat, 23 Aug 2025 00:26:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=MmA+=3D=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1upc5O-0004rH-Ls
 for xen-devel@lists.xenproject.org; Sat, 23 Aug 2025 00:26:22 +0000
Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ca4e7751-7fb7-11f0-b898-0df219b8e170;
 Sat, 23 Aug 2025 02:26:20 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by dfw.source.kernel.org (Postfix) with ESMTP id 21C555C5C71;
 Sat, 23 Aug 2025 00:26:19 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 31724C4CEED;
 Sat, 23 Aug 2025 00:26: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>
X-Inumbo-ID: ca4e7751-7fb7-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755908778;
	bh=UKLX8p7a8VjWy8GYnwmNBW3zXoJTxQawbU+76nkqUOM=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=CJ32+c9oLGp/2jw+ZBvhnBMLhEmDAWwV6vb9qwZUvSsL2peXODpn/o/tBgg3juW75
	 xUyRB9UJVoL6eNtYcv19W5d1k0UT5m8DqdC44WC9xLZEw3Frwow9Vl5sieXPJB1DUo
	 FGsOU0EEWWJwIP58GN2hkrPJ637j9GJTNUlDmbJ1LLxnbzZ6PDmpG/99eG+eqW3Yz7
	 WsikNn7eCNLuzscAN3rj78920541mMwH4j6tKqU8teuODPrgmueCbJ0u8a1aBcKWyn
	 dgQ3kaQ3VLogKi7DMAj5F+zukqMQIjnRABEbJoHu3lx1IBg40XrrNrQu8RajBKpP3W
	 BYtMbDqwxtSOg==
Date: Fri, 22 Aug 2025 17:26:16 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Jan Beulich <jbeulich@suse.com>, Juergen Gross <jgross@suse.com>, 
    Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Grygorii Strashko <grygorii_strashko@epam.com>
Subject: Re: [RFC PATCH v5 02/10] xen/arm: scmi-smc: update to be used under
 sci subsystem
In-Reply-To: <a6a538ca4c02483e745f18db4f74504dad525fe6.1753184487.git.oleksii_moisieiev@epam.com>
Message-ID: <alpine.DEB.2.22.394.2508221709020.2743087@ubuntu-linux-20-04-desktop>
References: <cover.1753184487.git.oleksii_moisieiev@epam.com> <a6a538ca4c02483e745f18db4f74504dad525fe6.1753184487.git.oleksii_moisieiev@epam.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 22 Jul 2025, Oleksii Moisieiev wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> The introduced SCI (System Control Interface) subsystem provides unified
> interface to integrate in Xen SCI drivers which adds support for ARM
> firmware (EL3, SCP) based software interfaces (like SCMI) that are used in
> system management. The SCI subsystem allows to add drivers for different FW
> interfaces or have different drivers for the same FW interface (for example,
> SCMI with different transports).
> 
> This patch updates SCMI over SMC calls handling layer, introduced by
> commit 3e322bef8bc0 ("xen/arm: firmware: Add SCMI over SMC calls handling
> layer"), to be SCI driver:
> - convert to DT device;
> - convert to SCI Xen interface.
> 
> There are no functional changes in general, the driver is just adopted
> to the SCI interface.
> 
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> Signed-off-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
> ---
> 
> 
> 
>  xen/arch/arm/firmware/Kconfig                | 13 ++-
>  xen/arch/arm/firmware/scmi-smc.c             | 93 +++++++++++---------
>  xen/arch/arm/include/asm/firmware/scmi-smc.h | 41 ---------
>  xen/arch/arm/vsmc.c                          |  5 +-
>  xen/include/public/arch-arm.h                |  1 +
>  5 files changed, 64 insertions(+), 89 deletions(-)
>  delete mode 100644 xen/arch/arm/include/asm/firmware/scmi-smc.h
> 
> diff --git a/xen/arch/arm/firmware/Kconfig b/xen/arch/arm/firmware/Kconfig
> index fc7918c7fc..bbf88fbb9a 100644
> --- a/xen/arch/arm/firmware/Kconfig
> +++ b/xen/arch/arm/firmware/Kconfig
> @@ -8,9 +8,18 @@ config ARM_SCI
>  
>  menu "Firmware Drivers"
>  
> +choice
> +	prompt "ARM SCI driver type"
> +	default SCMI_SMC
> +	help
> +	Choose which ARM SCI driver to enable.
> +
> +config ARM_SCI_NONE
> +	bool "none"
> +
>  config SCMI_SMC
>  	bool "Forward SCMI over SMC calls from hwdom to EL3 firmware"
> -	default y
> +	select ARM_SCI
>  	help
>  	  This option enables basic awareness for SCMI calls using SMC as
>  	  doorbell mechanism and Shared Memory for transport ("arm,scmi-smc"
> @@ -18,4 +27,6 @@ config SCMI_SMC
>  	  firmware node is used to trap and forward corresponding SCMI SMCs
>  	  to firmware running at EL3, for calls coming from the hardware domain.
>  
> +endchoice
> +
>  endmenu
> diff --git a/xen/arch/arm/firmware/scmi-smc.c b/xen/arch/arm/firmware/scmi-smc.c
> index 33473c04b1..13d1137592 100644
> --- a/xen/arch/arm/firmware/scmi-smc.c
> +++ b/xen/arch/arm/firmware/scmi-smc.c
> @@ -9,6 +9,7 @@
>   * Copyright 2024 NXP
>   */
>  
> +#include <asm/device.h>
>  #include <xen/acpi.h>
>  #include <xen/device_tree.h>
>  #include <xen/errno.h>
> @@ -16,12 +17,11 @@
>  #include <xen/sched.h>
>  #include <xen/types.h>
>  
> +#include <asm/firmware/sci.h>
>  #include <asm/smccc.h>
> -#include <asm/firmware/scmi-smc.h>
>  
>  #define SCMI_SMC_ID_PROP   "arm,smc-id"
>  
> -static bool __ro_after_init scmi_enabled;
>  static uint32_t __ro_after_init scmi_smc_id;
>  
>  /*
> @@ -41,14 +41,11 @@ static bool scmi_is_valid_smc_id(uint32_t fid)
>   *
>   * Returns true if SMC was handled (regardless of response), false otherwise.
>   */
> -bool scmi_handle_smc(struct cpu_user_regs *regs)
> +static bool scmi_handle_smc(struct cpu_user_regs *regs)
>  {
>      uint32_t fid = (uint32_t)get_user_reg(regs, 0);
>      struct arm_smccc_res res;
>  
> -    if ( !scmi_enabled )
> -        return false;
> -
>      if ( !scmi_is_valid_smc_id(fid) )
>          return false;
>  
> @@ -78,49 +75,45 @@ bool scmi_handle_smc(struct cpu_user_regs *regs)
>      return true;
>  }
>  
> -static int __init scmi_check_smccc_ver(void)
> +static int scmi_smc_domain_init(struct domain *d,
> +                                struct xen_domctl_createdomain *config)
>  {
> -    if ( smccc_ver < ARM_SMCCC_VERSION_1_1 )
> -    {
> -        printk(XENLOG_WARNING
> -               "SCMI: No SMCCC 1.1 support, SCMI calls forwarding disabled\n");
> -        return -ENOSYS;
> -    }
> +    if ( !is_hardware_domain(d) )
> +        return 0;

Should we also check for config->arch.sci_type ==
XEN_DOMCTL_CONFIG_ARM_SCI_SCMI_SMC ?


> +    d->arch.sci_enabled = true;
> +    printk(XENLOG_DEBUG "SCMI: %pd init\n", d);
>      return 0;
>  }



From xen-devel-bounces@lists.xenproject.org Sat Aug 23 00:30:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Aug 2025 00:30:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090752.1447856 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upc9B-0006vG-Uq; Sat, 23 Aug 2025 00:30:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090752.1447856; Sat, 23 Aug 2025 00: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 1upc9B-0006v9-RZ; Sat, 23 Aug 2025 00:30:17 +0000
Received: by outflank-mailman (input) for mailman id 1090752;
 Sat, 23 Aug 2025 00:30:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=MmA+=3D=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1upc9B-0006v3-G4
 for xen-devel@lists.xenproject.org; Sat, 23 Aug 2025 00:30:17 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 55803221-7fb8-11f0-a32b-13f23c93f187;
 Sat, 23 Aug 2025 02:30:15 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id EBD38A58C37;
 Sat, 23 Aug 2025 00:30:12 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id DF397C4CEED;
 Sat, 23 Aug 2025 00:30:10 +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>
X-Inumbo-ID: 55803221-7fb8-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755909012;
	bh=nxDb3/lxwFXee89Pkah4dOh/6MR/uZtN8I2KlwzTX9E=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=kZBMkPMwAxwDr0Bvyum5ZT5gAitwuFj77kHyYNlFneay6TI6RAvQcfGV3HOJw9cRK
	 ji5cjJIJyJAHpb5OhyzkA9lgBjjZ47nSYUexSqa86UrRMmDUGmiVcz41CFL7BxCUSX
	 leNme3EiG5Bn5oSbcLG/7iP/tlOvE4ieidrQhVqU0s/0TgogQyMmjpbbrNB2FnUKmt
	 UjKKUci0EHvcfyyc91IGf3B+v8bm5PF7NyNNyCUb4Y6lf8PMoXfpk6nBlHaxVHN7Jh
	 BOxR77GnG4AaHAl/gUyMSPUwZ4NO5hkle4bwOBJGsX7/HfH1hzZ7IXILEUmF+3/rHO
	 5TNOkDHa0feDw==
Date: Fri, 22 Aug 2025 17:30:10 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Jan Beulich <jbeulich@suse.com>, Juergen Gross <jgross@suse.com>, 
    Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Grygorii Strashko <grygorii_strashko@epam.com>
Subject: Re: [RFC PATCH v5 04/10] docs: arm: add docs for SCMI over SMC calls
 forwarding driver
In-Reply-To: <dcce8830102110e2edba022b0909d6fd85110880.1753184487.git.oleksii_moisieiev@epam.com>
Message-ID: <alpine.DEB.2.22.394.2508221726220.2743087@ubuntu-linux-20-04-desktop>
References: <cover.1753184487.git.oleksii_moisieiev@epam.com> <dcce8830102110e2edba022b0909d6fd85110880.1753184487.git.oleksii_moisieiev@epam.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 22 Jul 2025, Oleksii Moisieiev wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> Add documentation section for Simple Arm SCMI over SMC/HVC calls forwarding
> driver (EL3).
> 
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> Signed-off-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com>

This doc looks good, a couple of minor suggestions:
- briefly document the bindings expected as input (e.g. compatible
  "arm,scmi-smc" and "arm,scmi-shmem") or simply provide links to official docs
- it says "SCMI over SMC/HVC" but I am not sure if HVC would actually
  work


> ---
> 
> Changes in v5:
> - rename dom0_scmi_smc_passthrough in documentation
> 
>  .../arm/firmware/arm-scmi.rst                 | 177 ++++++++++++++++++
>  docs/hypervisor-guide/arm/index.rst           |   9 +
>  docs/hypervisor-guide/index.rst               |   1 +
>  3 files changed, 187 insertions(+)
>  create mode 100644 docs/hypervisor-guide/arm/firmware/arm-scmi.rst
>  create mode 100644 docs/hypervisor-guide/arm/index.rst
> 
> diff --git a/docs/hypervisor-guide/arm/firmware/arm-scmi.rst b/docs/hypervisor-guide/arm/firmware/arm-scmi.rst
> new file mode 100644
> index 0000000000..a084c0caa3
> --- /dev/null
> +++ b/docs/hypervisor-guide/arm/firmware/arm-scmi.rst
> @@ -0,0 +1,177 @@
> +.. SPDX-License-Identifier: CC-BY-4.0
> +
> +ARM System Control and Management Interface (SCMI)
> +==================================================
> +
> +The System Control and Management Interface (SCMI) [1], which is a set of operating
> +system-independent software interfaces that are used in system management. SCMI currently
> +provides interfaces for:
> +
> +- Discovery and self-description of the interfaces it supports
> +- Power domain management
> +- Clock management
> +- Reset domain management
> +- Voltage domain management
> +- Sensor management
> +- Performance management
> +- Power capping and monitoring
> +- Pin control protocol.
> +
> +The SCMI compliant firmware could run:
> +
> +- as part of EL3 secure world software (like Trusted Firmware-A) with
> +  ARM SMC/HVC shared-memory transport;
> +- on dedicated System Control Processor (SCP) with HW mailbox shared-memory transport
> +
> +The major purpose of enabling SCMI support in Xen is to enable guest domains access to the SCMI
> +interfaces for performing management actions on passed-through devices (such as clocks/resets etc)
> +without accessing directly to the System control HW (like clock controllers) which in most cases
> +can't shared/split between domains. Or, at minimum, allow SCMI access for dom0/hwdom (or guest
> +domain serving as Driver domain).
> +
> +The below sections describe SCMI support options available for Xen.
> +
> +[1] `Arm SCMI <https://developer.arm.com/documentation/den0056/latest/>`_
> +
> +Simple SCMI over SMC/HVC calls forwarding driver (EL3)
> +------------------------------------------------------
> +
> +The EL3 SCMI firmware (TF-A) with a single SCMI OSPM agent support is pretty generic case for
> +the default vendors SDK and new platforms with SCMI support. Such EL3 SCMI firmware supports only
> +single SCMI OSPM transport (agent) with Shared memory based transport and SMC/HVC calls as doorbell.
> +
> +The SCMI over SMC/HVC calls forwarding driver solves major problem for this case by allowing
> +SMC/HVC calls to be forwarded form guest to the EL3 SCMI firmware.
> +
> +By default, the SCMI over SMC/HVC calls forwarding is enabled for Dom0/hwdom.
> +
> +::
> +
> +    +--------------------------+
> +    |                          |
> +    | EL3 SCMI FW (TF-A)       |
> +    ++-------+--^--------------+
> +     |shmem  |  | smc-id
> +     +----^--+  |
> +          |     |
> +     +----|-+---+---+----------+
> +     |    | |  FWD  |      Xen |
> +     |    | +---^---+          |
> +     +----|-----|--------------+
> +          |     | smc-id
> +     +----v-----+--+ +---------+
> +     |             | |         |
> +     | Dom0/hwdom  | | DomU    |
> +     |             | |         |
> +     |             | |         |
> +     +-------------+ +---------+
> +
> +
> +The SCMI messages are passed directly through SCMI shared-memory (zero-copy) and driver only
> +forwards SMC/HVC calls.
> +
> +Compiling
> +^^^^^^^^^
> +
> +To build with the SCMI over SMC/HVC calls forwarding enabled support, enable Kconfig option
> +
> +::
> +
> +    CONFIG_SCMI_SMC
> +
> +The ``CONFIG_SCMI_SMC`` is enabled by default.
> +
> +Pass-through SCMI SMC to domain which serves as Driver domain
> +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> +
> +This section describes how to configure the SCMI over SMC/HVC calls forwarding driver to handle use
> +case "thin Dom0 with guest domain, which serves as Driver domain". In this case HW need to be
> +enabled in Driver domain and dom0 is performing only control functions (without accessing FW) and so,
> +the SCMI need to be enabled in Driver domain.
> +
> +::
> +
> +     +--------------------------+
> +     |EL3 SCMI FW (TF-A)        |
> +     |                          |
> +     +-------------^--+-------+-+
> +             smc-id|  |shmem0 |
> +                   |  +----^--+
> +    +-------------++------+|----+
> +    |Xen          |  FWD  ||    |
> +    |             +--^----+|    |
> +    +----------------|-----|----+
> +              smc-id |     |
> +    +-----------+ +--+-----v-----+
> +    |           | |              |
> +    | Dom0      | |    Driver    |
> +    | Control   | |    domain    |
> +    |           | |              |
> +    +-----------+ +--------------+
> +
> +The SCMI can be enabled for one and only one guest domain.
> +
> +First. configure Dom0 to enable SCMI pass-through using Xen Command Line
> +**"scmi_smc_passthrough"** option. This will disable SCMI for Dom0/hwdom and SCMI nodes will
> +be removed from Dom0/hwdom device tree.
> +
> +**Configure SCMI pass-through for guest domain with toolstack**
> +
> +* In domain's xl.cfg file add **"arm_sci"** option as below
> +
> +::
> +
> +    arm_sci = "type=scmi_smc"
> +
> +* In domain's xl.cfg file enable access to the "arm,scmi-shmem"
> +
> +::
> +
> +    iomem = [
> +        "47ff0,1@22001",
> +    ]
> +
> +.. note:: It's up to the user to select guest IPA for mapping SCMI shared-memory.
> +
> +* Add SCMI nodes to the Driver domain partial device tree as in the below example:
> +
> +.. code::
> +
> +    passthrough {
> +       scmi_shm_0: sram@22001000 {
> +           compatible = "arm,scmi-shmem";
> +           reg = <0x0 0x22001000 0x0 0x1000>;
> +       };
> +
> +       firmware {
> +            compatible = "simple-bus";
> +                scmi: scmi {
> +                    compatible = "arm,scmi-smc";
> +                    shmem = <&scmi_shm_0>;
> +                    ...
> +                }
> +        }
> +    }
> +
> +In general, the configuration is similar to any other HW pass-through, except explicitly
> +enabling SCMI with "arm_sci" xl.cfg option.
> +
> +**Configure SCMI pass-through for predefined domain (dom0less)**
> +
> +* add "xen,sci_type" property for required DomU ("xen,domain") node
> +
> +::
> +
> +       xen,sci_type="scmi_smc"
> +
> +* add scmi nodes to the Driver domain partial device tree the same way as above and enable access
> +  to the "arm,scmi-shmem" according to  dom0less documentation. For example:
> +
> +.. code::
> +
> +      scmi_shm_0: sram@22001000 {
> +            compatible = "arm,scmi-shmem";
> +            reg = <0x00 0x22001000 0x00 0x1000>;
> +    ->        xen,reg = <0x0 0x47ff0000 0x0 0x1000 0x0 0x22001000>;
> +    ->        xen,force-assign-without-iommu;
> +      };
> diff --git a/docs/hypervisor-guide/arm/index.rst b/docs/hypervisor-guide/arm/index.rst
> new file mode 100644
> index 0000000000..7aae4a0a03
> --- /dev/null
> +++ b/docs/hypervisor-guide/arm/index.rst
> @@ -0,0 +1,9 @@
> +.. SPDX-License-Identifier: CC-BY-4.0
> +
> +ARM
> +===
> +
> +.. toctree::
> +   :maxdepth: 2
> +
> +   firmware/arm-scmi
> diff --git a/docs/hypervisor-guide/index.rst b/docs/hypervisor-guide/index.rst
> index e4393b0697..520fe01554 100644
> --- a/docs/hypervisor-guide/index.rst
> +++ b/docs/hypervisor-guide/index.rst
> @@ -9,3 +9,4 @@ Hypervisor documentation
>     code-coverage
>  
>     x86/index
> +   arm/index
> \ No newline at end of file
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Sat Aug 23 00:33:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Aug 2025 00:33:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090764.1447867 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upcC6-0007hg-Aq; Sat, 23 Aug 2025 00:33:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090764.1447867; Sat, 23 Aug 2025 00:33: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 1upcC6-0007hZ-85; Sat, 23 Aug 2025 00:33:18 +0000
Received: by outflank-mailman (input) for mailman id 1090764;
 Sat, 23 Aug 2025 00:33:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=MmA+=3D=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1upcC4-0007hT-TT
 for xen-devel@lists.xenproject.org; Sat, 23 Aug 2025 00:33:16 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c133e1b5-7fb8-11f0-a32b-13f23c93f187;
 Sat, 23 Aug 2025 02:33:15 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 958714505E;
 Sat, 23 Aug 2025 00:33:13 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id C4693C116B1;
 Sat, 23 Aug 2025 00:33:11 +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>
X-Inumbo-ID: c133e1b5-7fb8-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755909193;
	bh=Et7pM4ONrIna1yXquXcmW2exth2Ygi8i25y+inXVp3E=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=FdmBjXhYBTWJQwn4QlSsgZorLLJ3An+gdMSNCmuMx+paP9HFPKH2BgLTy/V699qAk
	 JO+rdpqrrWDdNZIE18FELT9lbaOr1ROVTwxsFZ9SCaIijBtTRzjt5zSfqul5BAF8vq
	 cFYZ+oWptpnFSQ99Lb1X3Yy6F6VDicLZWlDlxPGmKWfivek7nJSzGTeUiPWOO1U2sm
	 WEMjzysercLt9B3zSQnIi6fXzT4/ALmMq3JDWZKRV5FMcaN+BNmnlAz/sGfsXGS8/H
	 rwy6CcDhLiizA/7p3vX8TEzw6yXTcH85hGv/W1Phg+yu7tUnCe/EaKdU0s4b01DhJk
	 oVaEoVaXTGsMQ==
Date: Fri, 22 Aug 2025 17:33:10 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Jan Beulich <jbeulich@suse.com>, Juergen Gross <jgross@suse.com>, 
    Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Grygorii Strashko <grygorii_strashko@epam.com>
Subject: Re: [RFC PATCH v5 07/10] xen: arm: smccc: add INVALID_PARAMETER
 error code
In-Reply-To: <f763b85857c7b97c427c1bb4f80e66b45eebbac3.1753184487.git.oleksii_moisieiev@epam.com>
Message-ID: <alpine.DEB.2.22.394.2508221733030.2743087@ubuntu-linux-20-04-desktop>
References: <cover.1753184487.git.oleksii_moisieiev@epam.com> <f763b85857c7b97c427c1bb4f80e66b45eebbac3.1753184487.git.oleksii_moisieiev@epam.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 22 Jul 2025, Oleksii Moisieiev wrote:
> According to the "7.1 Return Codes" section of DEN0028 [1]
> INVALID_PARAMETER code (-3) is returned when one of the call
> parameters has a non-supported value.
> Adding this error code to the common smccc header file.
> 
> [1]: https://documentation-service.arm.com/static/5f8edaeff86e16515cdbe4c6
> 
> Signed-off-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com>

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

> ---
> 
> 
> 
>  xen/arch/arm/include/asm/smccc.h | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/xen/arch/arm/include/asm/smccc.h b/xen/arch/arm/include/asm/smccc.h
> index a289c48b7f..dc6af94db1 100644
> --- a/xen/arch/arm/include/asm/smccc.h
> +++ b/xen/arch/arm/include/asm/smccc.h
> @@ -381,6 +381,7 @@ void arm_smccc_1_2_smc(const struct arm_smccc_1_2_regs *args,
>                         0x3FFF)
>  
>  /* SMCCC error codes */
> +#define ARM_SMCCC_INVALID_PARAMETER     (-3)
>  #define ARM_SMCCC_NOT_REQUIRED          (-2)
>  #define ARM_SMCCC_ERR_UNKNOWN_FUNCTION  (-1)
>  #define ARM_SMCCC_NOT_SUPPORTED         (-1)
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Sat Aug 23 00:34:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Aug 2025 00:34:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090773.1447878 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upcD0-0008Bl-Ll; Sat, 23 Aug 2025 00:34:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090773.1447878; Sat, 23 Aug 2025 00:34: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 1upcD0-0008Be-GV; Sat, 23 Aug 2025 00:34:14 +0000
Received: by outflank-mailman (input) for mailman id 1090773;
 Sat, 23 Aug 2025 00:34:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=MmA+=3D=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1upcCz-00083M-Gk
 for xen-devel@lists.xenproject.org; Sat, 23 Aug 2025 00:34:13 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org
 [2600:3c0a:e001:78e:0:1991:8:25])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e2bdc436-7fb8-11f0-b898-0df219b8e170;
 Sat, 23 Aug 2025 02:34:11 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 1406F44566;
 Sat, 23 Aug 2025 00:34:10 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4F5FBC4CEED;
 Sat, 23 Aug 2025 00:34:08 +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>
X-Inumbo-ID: e2bdc436-7fb8-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755909249;
	bh=qBBMwyef0ei4xFgNsKtCM8osAJywscMe6758OtKS7po=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=dth8v993rHTSpUVC8nCpUR3otVSb/BcGhQZowPNp8h7B+hxBOhn/XqSRa65S3kES9
	 WH6nV7IJBdNCzoznQn0wzmCeQ/FsJPyf1PKQjuH8n2ktBav1NXbaJHitraVyq/nNEi
	 8Isx6LoqIAgESu9CBDTtdhUs7Pgf8ZiucB+DQtwqmLeRD/btbe55bQWkq/QwXfqipc
	 t+9NwpLxhfjCV2Y5QMewHiGG1gMpZFWDdVgwPUz71sodwXNewy/J04MtciebtBEqXS
	 9zMtYymFsZe0oG4BkDKx1KGsCyjw4oa39BcKwdVwqXjEZh+83+mNN+lSx6ejI3G98k
	 kFOld6pV84V8w==
Date: Fri, 22 Aug 2025 17:34:07 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Jan Beulich <jbeulich@suse.com>, Juergen Gross <jgross@suse.com>, 
    Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Grygorii Strashko <grygorii_strashko@epam.com>
Subject: Re: [RFC PATCH v5 00/10] xen/arm: scmi: introduce SCI SCMI SMC
 multi-agent support
In-Reply-To: <cover.1753184487.git.oleksii_moisieiev@epam.com>
Message-ID: <alpine.DEB.2.22.394.2508221733410.2743087@ubuntu-linux-20-04-desktop>
References: <cover.1753184487.git.oleksii_moisieiev@epam.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

I think it should be feasible to commit at least patches 1-4 in time for
the release

On Tue, 22 Jul 2025, Oleksii Moisieiev wrote:
> Inroducing V4 RFC patch series  on top of the Xen version 4.20-rc2
> which includes implementation of the SCI SCMI SMC multi-agent support.
> 
> Patch 1 "xen/arm: add generic SCI subsystem"
> - rebased and refactored
> - introduced DEVICE_ARM_SCI DT device class and used for SCI drivers probing
> instead of custom,
>   linker sections based implementation.
> - added SCI API for Dom0 DT handling, instead of manipulating with ARM arch
> dom0 code directly.
> - RFC changes in XEN_DOMCTL_assign_device OP processing
> - Introduce arch_handle_passthrough_prop call to handle arm specific
> nodes
> 
> Patch 2 "xen/arm: scmi-smc: update to be used under sci subsystem"
> - update driver introduced by commit 3e322bef8bc0 ("xen/arm: firmware: Add SCMI
> over SMC calls
> handling layer") be used under sci subsystem.
> - no functional changes in general
> 
> Patch 3 "xen/arm: scmi-smc: passthrough SCMI SMC to guest domain
> This is new change which allows passthrough SCMI SMC, single agent interface to
> guest domain
> cover use case "thin Dom0 with guest domain, which serves as Driver domain".
> See patch commit message for full description.
> 
> Patch 4 - docs: arm: add docs for SCMI over SMC calls forwarding
> driver
> - add documentation section for Simple Arm SCMI over SMC/HVC calls
> forwarding driver.
> 
> Patch 6 - xen/domctl: extend XEN_DOMCTL_assign_device to handle not
> only iommu
> - add chainged handling of assigned DT devices to support
> access-controller functionality through SCI framework.
> Change was done in two parts:
>  - update iommu_do_dt_domctl() to check for dt_device_is_protected()
>  and not fail if DT device is not protected by IOMMU
>  -add chained call to sci_do_domctl() to do_domctl()
> 
> Patch 9 - xen/arm: scmi: introduce SCI SCMI SMC multi-agent driver
> - added "scmi-secondary-agents" and "#scmi-secondary-agent-cells"
>   property to "xen,config" node in "chosen" to inform SCI SCMI
>   multi-agent driver about available agents and their
>   configuration. It defines <agent_id> to <smc-id,scmi_shm> map.
>   This option is Xen specific as Xen is the only one entry in the
>   system which need to know about SCMI multi-agent support and configuration.
> - each guest using SCMI should be configured with SCMI agent_id, so SCMI
>   FW can implement Agent-specific permission policy.
>   -- dom0: dom0_scmi_agent_id=<agent_id> in Xen command line option
>   -- toolstack: arm_sci = "type=scmi_smc_multiagent,agent_id=<agent_id>"
>   -- dom0less: "xen,sci_type", "xen,sci_agent_id" properties in
> "xen,domain" nodes.
> - factored out SCMI generic definitions (re-usable)
> - factored out SCMI shmem code (re-usable)
> - the SCMI passthrough configuration for guest domains is similar to any other
> HW passthrough cfg.
> 
> Patch 10 - docs: arm: add SCI SCMI SMC multi-agent driver docs
> - add SCI SCMI SMC multi-agent driver documentation.
> 
> Add separate SCMI DT node for Xen management agent under "xen,config"
> node under chosen.
> 
> All Xen-specific configuration provided under "/chosen" node. This
> approach allows to isolate modifications to Host DT only under
> "/chosen" node.
> 
> This approach provides the following device tree (DT)
> parameters (placed under xen,config node):
> 
> - "scmi-secondary-agents": A Xen-specific parameter under the
>   "/chosen" node, which describes the SCMI agent configuration for
>   the domains.
> - the SCMI configuration for Xen (privileged agent) and the shared
>   memory configuration for all agents are provided under the "/chosen"
>   node and are used strictly by Xen for its initial configuration.
> - the scmi_shm and SCMI configuration for Dom0 are placed in the
>   "/firmware/scmi" node so that they can be moved to Dom0 without
>   any changes.
> 
> This configuration allows the use of Xen-specific nodes to provide
> information strictly needed by Xen while using the default SCMI
> configuration for Dom0 and other domains. As a result, no additional
> bindings need to be introduced to the device tree.
> This simplifies the Xen SCMI multi-agent configuration and utilizes
> generic device tree bindings for the domains.
> 
> NOTE: Haven't added RB tags for patch 1 and 2 because rebase and some
> minor changes were done.
> 
> Code can be found at:
> https://github.com/oleksiimoisieiev/xen/tree/scmi_upstrv5
> 
> [1] RFC v2:
> http://patchwork.kernel.org/project/xen-devel/cover/cover.1644341635.git.oleksii_moisieiev@epam.com/
> [2] RFC v3:
> https://patchwork.kernel.org/project/xen-devel/patch/20250311111618.1850927-1-grygorii_strashko@epam.com
> SCMI spec:
> https://developer.arm.com/documentation/den0056/e/?lang=en
> 
> SCMI bindings:
> https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/firmware/arm,scmi.yaml
> https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/access-controllers/access-controllers.yaml
> 
> Reference EL3 FW:
> RPI5: https://github.com/xen-troops/arm-trusted-firmware/commits/rpi5_dev/
> Renesas v4h:
> https://github.com/GrygiriiS/arm-trusted-firmware/commits/rcar_gen4_v2.7_v4x-scmi_upd/
> 
> base-commit: dbe60f244c (Update Xen to 4.21, 2025-02-21)
> 
> Changes in v5:
> - update Maintainers file. Set role as a Reviewer
> - rebased on the latest master branch
> - Introduce arch_handle_passthrough_prop call to handle arm specific nodes
> - rename dom0_scmi_smc_passthrough to scmi_smc_passthrough
> - rename dom0_scmi_smc_passthrough in documentation
> - set error code to -ENXIO when iommu is disabled
> - return -EINVAL if mediator without assign_dt_device was provided
> - invert return code check for iommu_do_domctl in
> XEN_DOMCTL_assign_device domctl processing to make cleaner code
> - change -ENOTSUPP error code to -ENXIO in sci_do_domctl
> - handle -ENXIO return comde of iommu_do_domctl
> - leave !dt_device_is_protected check in iommu_do_dt_domctl to make
> code work the same way it's done in "handle_device" call while
> creating hwdom(dom0) and "handle_passthrough_prop" call for dom0less
> creation
> - drop return check from sci_assign_dt_device call as not needed
> - do not return EINVAL when addign_dt_device is not set. That is
> because this callback is optional and not implemented in single-agent driver
> - move memcpy_toio/fromio to the generic place
> - fix device-tree example format in booting.txt, added ";" after "}".
> - update define in scmi-proto.h
> - update define in scmi-shmem.h file
> - scmi_assign_device - do not ignore -EOPNOTSUPP return
> code of the do_smc_xfer
> - remove overwriting agent_channel->agent_id after
> SCMI_BASE_DISCOVER_AGENT call
> - add multi-agent files to the MAINTAINERS
> - add SCMI multi-agent description to the SUPPORT.md
> - handle ARM_SMCCC_INVALID_PARAMETER return code and return -EINVAL
> for smc call
> - updated collect_agents function. Set agent_id parameter as optional
> in scmi-secondary-agents device-tree property
> - introduce "#scmi-secondary-agents-cells" parameter to set if
> agent_id was provided
> - reanme xen,scmi-secondary-agents property to scmi-secondary-agents
> - move memcpu_toio/fromio for the generic place
> - update Xen to get management channel from /chosen/xen,config node
> - get hypervisor channnel from node instead of using hardcoded
> - update handling scmi and shmem nodes for the domain
> - Set multi-agent driver to support only Arm64
> - rework multi-agent driver to leave Host Device-tree unmodified
> 
> Changes in v4:
> - fix SPDX-License
> - rename DEVICE_ARM_SCI DT device class to FIRMWARE_DEVICE
> - move XEN_DOMCTL_assign_device code in separate patch
> - Add documentation for SCI SCMI drivers
> - xl.cfg doc
> - fix comments from Stefano Stabellini
> - fix toolstack code as sugested by Anthony PERARD
>   - use MATCH_OPTION()
>   - move arm_sci struct and cfg params in "arch_arm"
> - add SCMI passthrough for dom0less case
> - toolstack comments from Anthony PERARD
> - added dom0less support
> - added doc for "xen,scmi-secondary-agents"
> 
> Grygorii Strashko (5):
>   xen/arm: scmi-smc: update to be used under sci subsystem
>   xen/arm: scmi-smc: passthrough SCMI SMC to domain, single agent
>   docs: arm: add docs for SCMI over SMC calls forwarding driver
>   xen/domctl: extend XEN_DOMCTL_assign_device to handle not only iommu
>   docs: arm: add SCI SCMI SMC multi-agent driver docs
> 
> Oleksii Moisieiev (5):
>   xen/arm: add generic SCI subsystem
>   drivers: iommu: change error code when iommu is disabled
>   xen: arm: smccc: add INVALID_PARAMETER error code
>   lib/arm: Add I/O memory copy helpers
>   xen/arm: scmi: introduce SCI SCMI SMC multi-agent driver
> 
>  MAINTAINERS                                   |  10 +
>  SUPPORT.md                                    |  11 +
>  .../arm/firmware/arm-scmi.rst                 | 516 +++++++++++
>  docs/hypervisor-guide/arm/index.rst           |   9 +
>  docs/hypervisor-guide/index.rst               |   1 +
>  docs/man/xl.cfg.5.pod.in                      |  47 +
>  docs/misc/arm/device-tree/booting.txt         | 103 +++
>  docs/misc/xen-command-line.pandoc             |  18 +
>  tools/include/libxl.h                         |   5 +
>  tools/libs/light/libxl_arm.c                  |  18 +
>  tools/libs/light/libxl_types.idl              |  12 +
>  tools/xl/xl_parse.c                           |  48 ++
>  xen/arch/arm/device.c                         |   5 +
>  xen/arch/arm/dom0less-build.c                 |  51 ++
>  xen/arch/arm/domain.c                         |  12 +-
>  xen/arch/arm/domain_build.c                   |  11 +-
>  xen/arch/arm/firmware/Kconfig                 |  37 +-
>  xen/arch/arm/firmware/Makefile                |   2 +
>  xen/arch/arm/firmware/sci.c                   | 189 +++++
>  xen/arch/arm/firmware/scmi-proto.h            | 164 ++++
>  xen/arch/arm/firmware/scmi-shmem.c            | 112 +++
>  xen/arch/arm/firmware/scmi-shmem.h            |  45 +
>  xen/arch/arm/firmware/scmi-smc-multiagent.c   | 803 ++++++++++++++++++
>  xen/arch/arm/firmware/scmi-smc.c              | 191 ++++-
>  xen/arch/arm/include/asm/domain.h             |   5 +
>  xen/arch/arm/include/asm/firmware/sci.h       | 214 +++++
>  xen/arch/arm/include/asm/firmware/scmi-smc.h  |  41 -
>  xen/arch/arm/include/asm/smccc.h              |   1 +
>  xen/arch/arm/vsmc.c                           |   4 +-
>  xen/common/device-tree/dom0less-build.c       |   4 +
>  xen/common/domctl.c                           |  19 +
>  xen/drivers/passthrough/device_tree.c         |   6 +
>  xen/drivers/passthrough/iommu.c               |   2 +-
>  xen/include/asm-generic/device.h              |   1 +
>  xen/include/asm-generic/dom0less-build.h      |   9 +
>  xen/include/public/arch-arm.h                 |   8 +
>  xen/include/xen/lib/arm/io.h                  |  15 +
>  xen/lib/Makefile                              |   1 +
>  xen/lib/arm/Makefile                          |   1 +
>  xen/lib/arm/io.c                              |  80 ++
>  40 files changed, 2744 insertions(+), 87 deletions(-)
>  create mode 100644 docs/hypervisor-guide/arm/firmware/arm-scmi.rst
>  create mode 100644 docs/hypervisor-guide/arm/index.rst
>  create mode 100644 xen/arch/arm/firmware/sci.c
>  create mode 100644 xen/arch/arm/firmware/scmi-proto.h
>  create mode 100644 xen/arch/arm/firmware/scmi-shmem.c
>  create mode 100644 xen/arch/arm/firmware/scmi-shmem.h
>  create mode 100644 xen/arch/arm/firmware/scmi-smc-multiagent.c
>  create mode 100644 xen/arch/arm/include/asm/firmware/sci.h
>  delete mode 100644 xen/arch/arm/include/asm/firmware/scmi-smc.h
>  create mode 100644 xen/include/xen/lib/arm/io.h
>  create mode 100644 xen/lib/arm/Makefile
>  create mode 100644 xen/lib/arm/io.c
> 
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Sat Aug 23 00:36:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Aug 2025 00:36:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090788.1447887 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upcFe-0000PB-40; Sat, 23 Aug 2025 00:36:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090788.1447887; Sat, 23 Aug 2025 00:36: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 1upcFe-0000P4-0J; Sat, 23 Aug 2025 00:36:58 +0000
Received: by outflank-mailman (input) for mailman id 1090788;
 Sat, 23 Aug 2025 00:36:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Yyzx=3D=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1upcFc-0000Oy-IN
 for xen-devel@lists.xenproject.org; Sat, 23 Aug 2025 00:36:56 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c201::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 44a27fe4-7fb9-11f0-a32b-13f23c93f187;
 Sat, 23 Aug 2025 02:36:54 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by AM9PR03MB8011.eurprd03.prod.outlook.com
 (2603:10a6:20b:43e::7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.19; Sat, 23 Aug
 2025 00:36:52 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9052.014; Sat, 23 Aug 2025
 00:36: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>
X-Inumbo-ID: 44a27fe4-7fb9-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=F3vLtHpM3Flzry/4+33du2B2EzxDC4fyu/P/uKcjabrXKETVW9pdXwNjmB4W/d8m47vTHXxElUzGkx0Aqtw8afxfZKc/d/mtjxIdsRdYqWWlR1GbdcdBC+Zkgo09RVAS0GPc71nE1FDt9hBeaYyuW9HGP+NaJr8eTk6kwJmJfBY/gM1+A3zI3q4Oar/nmBut0LGNVOrbd7H8SFJquDRHIPELr0xFIRoIZz9vijaXw+p2PpHGbXBWaoKWKX5BAQjYFXsNyOplcg3W6mco9iWKgvayddRqhmIiut5a1SdU40UbtojX7dg3N0O8pcn6NYHDjd5ctUi1+UhRpY8R6ICFyg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=AzOYsrfC8+EllYNwzzxcH1YW8G0O1MA7x46OJNns/no=;
 b=gm+9BVnHgNd32rjVSzuy3mh/KnAJBrME2ZYwzsQ/OTsRTcTSBXqFsmdMfLo5y7ai7dW2PpCEOw3Ns870TakU1Ufo9k4mGAb37fSydwYDGKpRvu1mYtnIisi+K0dsewsqXKfcr89tG2tfVOsC627GqG3fKyYU5/ZaHoTi2psWQw9T0KUO6q/riw3VstVAQizn77EPvKoen/UYc2qIo3RQblh6frbCpUzjlBJp5Ql04NmFJb8fR7R3VyKLrSetkizfSlKA19HE73CaopxX7Mee0WTy1UTeMDOEWzDgaX1F9MFhSxou2d+xurLvh/KVPfnfqwPwrn+HvYGqUW+kJnzSeA==
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=AzOYsrfC8+EllYNwzzxcH1YW8G0O1MA7x46OJNns/no=;
 b=l3t2NhYB+n4cqZKy63MwgZYrjbO2TRwEsO5YVRwUYQG5JfRhdFzOGLfEYGZMvSu5i3SbCznXJmmTIvJX+UeFJorkLHarQN2x4IohzZceFGNhfQd/fBrEeMtToXas1IVWKaHN9oZWHPS0BHc3CM10LSP7GDdtkLkPtfNRXr8KeGA7M57cDJsc9h9c+Fwt7hwzLTlHb7bKB4sX5eGZGTsHNdfIXS0l1w8jO3QsajlIXFixjkb15tnLxutIa0m6X5UnJInhXaQSzFFJexGb4zkPaU8/q1jaAffBGOuU4db0IvP1vkPH/sY4izwrPbR81Og1UuWXD1D0KTc1ux5BZqkgag==
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 v5 04/12] xen/arm: Prevent crash during
 disable_nonboot_cpus on suspend
Thread-Topic: [PATCH v5 04/12] xen/arm: Prevent crash during
 disable_nonboot_cpus on suspend
Thread-Index: AQHcCwFbWICkeXmBzU6Bv3/6IpnNyw==
Date: Sat, 23 Aug 2025 00:36:52 +0000
Message-ID: <87qzx2an6k.fsf@epam.com>
References: <cover.1754943874.git.mykola_kvach@epam.com>
	<98957da5c5068ae8340a21a9aa15a962905a8a22.1754943874.git.mykola_kvach@epam.com>
In-Reply-To:
 <98957da5c5068ae8340a21a9aa15a962905a8a22.1754943874.git.mykola_kvach@epam.com>
	(Mykola Kvach's message of "Mon, 11 Aug 2025 23:48:00 +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_|AM9PR03MB8011:EE_
x-ms-office365-filtering-correlation-id: 8a39ed81-67ae-4399-50a1-08dde1dd277a
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|376014|366016|42112799006|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?AErdYK/K/Ql28pbKlfjs6/VFjePjfvZG2VngZQQk4W7boG3TYgNNW8MBZL?=
 =?iso-8859-1?Q?szC1Lq6AKPFakru/43SZQozQsVydGCIM1di9zllNflxXtE/7FE8irEQU7m?=
 =?iso-8859-1?Q?CplWPqVBGHd1g1spHN+TfFhkwNLL6KAUNOBgNdPyiQGixvtI5xJgtS/ORA?=
 =?iso-8859-1?Q?r8vFvwISems3aKlVjeMlJvJUxUTG0PeH6uBm52ZvKjToNEc28neXGohR0y?=
 =?iso-8859-1?Q?o/+h0kYnv8/m01YpjpLHYcMfawYFaetfn2P3Kx/0F0Ucdo72NS5+G48IwP?=
 =?iso-8859-1?Q?gWACyaa4HcFpYM3Hfqib036F8jbaMnn3ClghFi8qL4r+wYchLC0IRfXpn5?=
 =?iso-8859-1?Q?j+DKUvkGmS1JZz+2njU1VRegiJxumlbZoz3RoYEcWYl2L+MKHj8bmeEX4Z?=
 =?iso-8859-1?Q?T2AUsp1Gc/LKHj67ffxUr6MZ8etkb+OR99zGxuBATYMTs6uhkFcXICBaF0?=
 =?iso-8859-1?Q?QhVglw2O8BpE8x2T8SkqogM5mWRUfDUmxCVOvzp6on+ljn6KtbQT4maOem?=
 =?iso-8859-1?Q?lqE3kq+8ccIWVTY75sWwaEbrS6NwnB6DNUOTT81Qf/7eEACy5vh7ikbn1B?=
 =?iso-8859-1?Q?i+7GAgIAdZMleAH5DutpBniM+8M3DyWKgGYA6rLXc2RKh+hgPVd4nn0bqS?=
 =?iso-8859-1?Q?H7irKJIifksxQzoaZzVrf1J48fqzMHOuxkqaeqINwEAGL/rlpwHyTynHGD?=
 =?iso-8859-1?Q?An3OLjJcHnWFoFweP9GlMDijis0gi07kvAmDU+Qf88ADVQKQJKp2Veax1+?=
 =?iso-8859-1?Q?BImkStAinvCd/NmfWjmaXzEE0GuRRwlU05eRTnEJ6xIPN0hH/wiFGsQvdM?=
 =?iso-8859-1?Q?wFVkypz+OnSyTFuaAsmqGYdLSeTtZZFTKgXO9J/SbxyKHZxltZOUFfcIcs?=
 =?iso-8859-1?Q?qaIIFUgFEkEWIDmbyrsIFJJVo1W5IT77FcrFBmgiYd83ZIAJctJoWWdatW?=
 =?iso-8859-1?Q?IfnXLmruxmyubTWcOUz5O4RaHiQvgvoB3a4Viwl4X2QSfyIoLNBg4+LDHJ?=
 =?iso-8859-1?Q?ilSvjDxBfZuGJBXA/YoB2rfQcCXM1RbZdcVLBb8SGO8V/qaOnkV0/kvDpC?=
 =?iso-8859-1?Q?uNJqvaOZAHVlQ7nflhFfTW41qsylMEhcXBXUrqmUQk6o6djZy0ir/BAZq+?=
 =?iso-8859-1?Q?uJko8QNLXskISvoN6TzDgvhYNcXoiR5cof+BN0/SdOiHp6VQXRz4FgfdMN?=
 =?iso-8859-1?Q?2RnpSpIjPt+9wxufKt7YGusIo0u6hf5Ntkwr9OLlqjin+haciJOIcL8F4+?=
 =?iso-8859-1?Q?N98RBFmTon6Auqahm9De8f21EM+VWEkTvtwAi51RHAaR/FfOX7cGtE6qxY?=
 =?iso-8859-1?Q?gkTf8mfiOMsm4b4DYbMlj7x8zjRGHRWPtBY4B7zLU3H/2DSzG89ch/e2rp?=
 =?iso-8859-1?Q?xUKYXKdWHMmjltIRl+xjJsVyKgB6P/rrmlW5LP4PviElw5ZilLeNurnzY1?=
 =?iso-8859-1?Q?xIIYuK4AMv1HHSzmJ68XHluws+W3YO9akyzL3yUVCcT/AXBwNTyWOWxiz4?=
 =?iso-8859-1?Q?80qqcR1AlfrvXxApv/Q8N8dEmdA9aBHzg8cU6MIoJ9HfnILM5VQXmjPWbt?=
 =?iso-8859-1?Q?5a8Rbms=3D?=
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)(376014)(366016)(42112799006)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?idyyaZNLjg4sf6yvQ+3ZDtIQIoP4E34Of0SNJTXKBlj7OgIVQ+wG+vUZpj?=
 =?iso-8859-1?Q?oKhUwsB8yZWFEhuER0wt/rLpjjLVYWmuskhD/Ccr6cWDf1lGxK3tcB0pw5?=
 =?iso-8859-1?Q?K6qRCmQux2Zqdw7OAjPfcSwNm75iGWZXLYNgWcsKGhf2/2Caip/S7XylW5?=
 =?iso-8859-1?Q?hp7BiFuP55VMwD6MIObOmpwkbK3l/XJ8gXszliVPpZAEgyCqBwo6rSGmBa?=
 =?iso-8859-1?Q?wAe9wxXKqXXRFa4M+8IC5CSMuE5lqohiiwJ6ZPToNN4sdA2oFZWHCpMAp2?=
 =?iso-8859-1?Q?8I4biOFKNbJ6qex2irBezjO5rHB9qwfhqQ0uvC+3tsb9tkQp5CNLHfOyW9?=
 =?iso-8859-1?Q?gJgyzEfK86nU9TYpOqFZg+tD7HlO/3sADVGZDFartX29bK7f6tF04G/VL/?=
 =?iso-8859-1?Q?XwwoHPGMmmJy+oyoyj17wsk0y9i7l0hyJMauOKco2eJBoyRAAhoL4KPsSM?=
 =?iso-8859-1?Q?XO991k7ZKWueZvNGhP4wxJLekYRHs9U81B5ut/wcJwqAnE4wIO3770tPUm?=
 =?iso-8859-1?Q?Nibo1Iy4C/YtgO/Rm47rHFRyKTsI7Sqy8VEFAN3JpkphcwxjfnbSrriNwB?=
 =?iso-8859-1?Q?mqNhLOp+bM+Gh9EfrGekgDxS9xlKdvq9rpbWWtaS6tNIxlfvIK0lAhH/cJ?=
 =?iso-8859-1?Q?IdmWNAG2H7DRblXL5kcQEkgZ3GzXWZr5Ua+dSqGeT4WXdyX9JxlsQLrRck?=
 =?iso-8859-1?Q?ezmU4XEmj6J5d2Uu1p8eeM49IweoFgbUTN47/i6PtcbCa102QQGhHVR3tn?=
 =?iso-8859-1?Q?scb0oXoIfxJUmt7B06fcH7EXviLngU64gVQ4YwCpmZUVrrZNkfjWKt76tR?=
 =?iso-8859-1?Q?JLidhbl3MMbIbXcdS/kOi/Nh9E9FeDkMI7ygwHYevarcgH785KDm/g5yEu?=
 =?iso-8859-1?Q?l4nAOH6BQN5hcfJZMG6EUNoJq1CnkNPp9tTVWMUFNPuQ6suK4dBzDDYhxN?=
 =?iso-8859-1?Q?qGzuVKdCMSak+bIryTB2jx6jJkblxwlGb2rfzwn/sBj+X/zlmHRmfaHVr4?=
 =?iso-8859-1?Q?GP3bJI7InQkkdtBaSvNrjocqdImH/6vQ31zRiO/iaZAyXLRDUIB4rav9QY?=
 =?iso-8859-1?Q?XLeML0hlRZezidSVvFJWmAtVlsmIxgqLzLwP60R6Cbxg3YTt+E6aaU20aS?=
 =?iso-8859-1?Q?uVXEvlfaI06wHUxb4NeZfeDeMFpSqC4pslxc5TopWOzoBZa3PqNnNZkEY+?=
 =?iso-8859-1?Q?uEFhww1D0AqpFsDl7H1w8moduG+FLwY+QVENek2AveR+TDh1Yy4fTzlAnR?=
 =?iso-8859-1?Q?6KiStC4mHk2qmRhqF34YpFOaH4Tg2j+klcm30K8RcqpbSKq4E9ti3AJJJ7?=
 =?iso-8859-1?Q?RDJPXbv3tTQhnWBKpmcOIyxJhcYnlxBWS7gaXlEPbb3XbVC95kfH0y+myf?=
 =?iso-8859-1?Q?s1HsV5kmiFILgiRs6G16/1XFTA5gSNe9FoT2EKJLp2/OAN7RdsxOI5h+t1?=
 =?iso-8859-1?Q?9MKh+TsZBeReJboCL6thPEYBpxmUwU7GNDeqV6+AiMPUi5HG3p7jNDTEih?=
 =?iso-8859-1?Q?rrFzmydhWcREz54KpaWX2UhQ5/U91aq26BfX7OQikDTt5M5QxfJV+ylZqy?=
 =?iso-8859-1?Q?zJM491GAm6CifI19xxl9/2nKwgfXMQnBbkZhXHSJoNNfwPzI1Kw8c9YWO4?=
 =?iso-8859-1?Q?Ua2mKSBO/jVL3ZY/COjZuTPam5P7TTnoA8fOa+0eo1ErZQkor/ovkLjA?=
 =?iso-8859-1?Q?=3D=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: 8a39ed81-67ae-4399-50a1-08dde1dd277a
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Aug 2025 00:36:52.2520
 (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: ZpTodp4sblzGlR4FXEN/PuZDY+6QE8ZlnXRi8/wkodWuRBv2DgWJaoSYdIjimTWfpeA5kp1DwMZcvEhliN/Z/u4Yi/ocFlrbVQHQCR1NA0A=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB8011


Hi Mykola,

Mykola Kvach <xakep.amatop@gmail.com> writes:

While I approve the change, the commit message is somewhat
unclear. Maybe "Don't release IRQs on suspend" will be better?

> From: Mykola Kvach <mykola_kvach@epam.com>
>
> If we call disable_nonboot_cpus on ARM64 with system_state set
> to SYS_STATE_suspend, the following assertion will be triggered:
>
> ```
> (XEN) [   25.582712] Disabling non-boot CPUs ...
> (XEN) [   25.587032] Assertion '!in_irq() && (local_irq_is_enabled() || n=
um_online_cpus() <=3D 1)' failed at common/xmalloc_tlsf.c:714
> [...]
> (XEN) [   25.975069] Xen call trace:
> (XEN) [   25.978353]    [<00000a000022e098>] xfree+0x130/0x1a4 (PC)
> (XEN) [   25.984314]    [<00000a000022e08c>] xfree+0x124/0x1a4 (LR)
> (XEN) [   25.990276]    [<00000a00002747d4>] release_irq+0xe4/0xe8
> (XEN) [   25.996152]    [<00000a0000278588>] time.c#cpu_time_callback+0x4=
4/0x60
> (XEN) [   26.003150]    [<00000a000021d678>] notifier_call_chain+0x7c/0xa=
0
> (XEN) [   26.009717]    [<00000a00002018e0>] cpu.c#cpu_notifier_call_chai=
n+0x24/0x48
> (XEN) [   26.017148]    [<00000a000020192c>] cpu.c#_take_cpu_down+0x28/0x=
34
> (XEN) [   26.023801]    [<00000a0000201944>] cpu.c#take_cpu_down+0xc/0x18
> (XEN) [   26.030281]    [<00000a0000225c5c>] stop_machine.c#stopmachine_a=
ction+0xbc/0xe4
> (XEN) [   26.038057]    [<00000a00002264bc>] tasklet.c#do_tasklet_work+0x=
b8/0x100
> (XEN) [   26.045229]    [<00000a00002268a4>] do_tasklet+0x68/0xb0
> (XEN) [   26.051018]    [<00000a000026e120>] domain.c#idle_loop+0x7c/0x19=
4
> (XEN) [   26.057585]    [<00000a0000277e30>] start_secondary+0x21c/0x220
> (XEN) [   26.063978]    [<00000a0000361258>] 00000a0000361258
> ```
>
> This happens because before invoking take_cpu_down via the stop_machine_r=
un
> function on the target CPU, stop_machine_run requests
> the STOPMACHINE_DISABLE_IRQ state on that CPU. Releasing memory in
> the release_irq function then triggers the assertion:
>
> /*
>  * Heap allocations may need TLB flushes which may require IRQs to be
>  * enabled (except when only 1 PCPU is online).
>  */
>
> This patch adds system state checks to guard calls to request_irq
> and release_irq. These calls are now skipped when system_state is
> SYS_STATE_{resume,suspend}, preventing unsafe operations during
> suspend/resume handling.

If any call to release_irq() during suspend will trigger ASSERT, and it
is fine to leave IRQs as is during suspend, maybe it will be easier to
put

+        if ( system_state =3D=3D SYS_STATE_suspend )
+            return;

straight into release_irq() code? This will be easier than playing
whack-a-mole when some other patch will add another release_irq() call
somewhere.


>
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> ---
> Changes in V4:
>   - removed the prior tasklet-based workaround in favor of a more
>     straightforward and safer solution
>   - reworked the approach by adding explicit system state checks around
>     request_irq and release_irq calls, skips these calls during suspend
>     and resume states to avoid unsafe memory operations when IRQs are
>     disabled
> ---
>  xen/arch/arm/gic.c           |  6 ++++++
>  xen/arch/arm/tee/ffa_notif.c |  2 +-
>  xen/arch/arm/time.c          | 18 ++++++++++++------
>  3 files changed, 19 insertions(+), 7 deletions(-)
>
> diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
> index a018bd7715..9856cb1592 100644
> --- a/xen/arch/arm/gic.c
> +++ b/xen/arch/arm/gic.c
> @@ -388,6 +388,9 @@ void gic_dump_info(struct vcpu *v)
> =20
>  void init_maintenance_interrupt(void)
>  {
> +    if ( system_state =3D=3D SYS_STATE_resume )
> +        return;
> +
>      request_irq(gic_hw_ops->info->maintenance_irq, 0, maintenance_interr=
upt,
>                  "irq-maintenance", NULL);
>  }
> @@ -461,6 +464,9 @@ static int cpu_gic_callback(struct notifier_block *nf=
b,
>      switch ( action )
>      {
>      case CPU_DYING:
> +        if ( system_state =3D=3D SYS_STATE_suspend )
> +            break;
> +
>          /* This is reverting the work done in init_maintenance_interrupt=
 */
>          release_irq(gic_hw_ops->info->maintenance_irq, NULL);
>          break;
> diff --git a/xen/arch/arm/tee/ffa_notif.c b/xen/arch/arm/tee/ffa_notif.c
> index 00efaf8f73..06f715a82b 100644
> --- a/xen/arch/arm/tee/ffa_notif.c
> +++ b/xen/arch/arm/tee/ffa_notif.c
> @@ -347,7 +347,7 @@ void ffa_notif_init_interrupt(void)
>  {
>      int ret;
> =20
> -    if ( notif_enabled && notif_sri_irq < NR_GIC_SGI )
> +    if ( notif_enabled && notif_sri_irq < NR_GIC_SGI && system_state !=
=3D SYS_STATE_resume )
>      {
>          /*
>           * An error here is unlikely since the primary CPU has already
> diff --git a/xen/arch/arm/time.c b/xen/arch/arm/time.c
> index ad984fdfdd..b2e07ade43 100644
> --- a/xen/arch/arm/time.c
> +++ b/xen/arch/arm/time.c
> @@ -320,10 +320,13 @@ void init_timer_interrupt(void)
>      WRITE_SYSREG(CNTHCTL_EL2_EL1PCTEN, CNTHCTL_EL2);
>      disable_physical_timers();
> =20
> -    request_irq(timer_irq[TIMER_HYP_PPI], 0, htimer_interrupt,
> -                "hyptimer", NULL);
> -    request_irq(timer_irq[TIMER_VIRT_PPI], 0, vtimer_interrupt,
> -                   "virtimer", NULL);
> +    if ( system_state !=3D SYS_STATE_resume )
> +    {
> +        request_irq(timer_irq[TIMER_HYP_PPI], 0, htimer_interrupt,
> +                    "hyptimer", NULL);
> +        request_irq(timer_irq[TIMER_VIRT_PPI], 0, vtimer_interrupt,
> +                    "virtimer", NULL);
> +    }
> =20
>      check_timer_irq_cfg(timer_irq[TIMER_HYP_PPI], "hypervisor");
>      check_timer_irq_cfg(timer_irq[TIMER_VIRT_PPI], "virtual");
> @@ -338,8 +341,11 @@ static void deinit_timer_interrupt(void)
>  {
>      disable_physical_timers();
> =20
> -    release_irq(timer_irq[TIMER_HYP_PPI], NULL);
> -    release_irq(timer_irq[TIMER_VIRT_PPI], NULL);
> +    if ( system_state !=3D SYS_STATE_suspend )
> +    {
> +        release_irq(timer_irq[TIMER_HYP_PPI], NULL);
> +        release_irq(timer_irq[TIMER_VIRT_PPI], NULL);
> +    }
>  }
> =20
>  /* Wait a set number of microseconds */

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Sat Aug 23 00:37:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Aug 2025 00:37:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090799.1447898 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upcGU-0000uX-CT; Sat, 23 Aug 2025 00:37:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090799.1447898; Sat, 23 Aug 2025 00:37: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 1upcGU-0000uQ-8f; Sat, 23 Aug 2025 00:37:50 +0000
Received: by outflank-mailman (input) for mailman id 1090799;
 Sat, 23 Aug 2025 00:37:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Yyzx=3D=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1upcGS-0000Oy-Kg
 for xen-devel@lists.xenproject.org; Sat, 23 Aug 2025 00:37:48 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6470c1ff-7fb9-11f0-a32b-13f23c93f187;
 Sat, 23 Aug 2025 02:37:48 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by AM9PR03MB8011.eurprd03.prod.outlook.com
 (2603:10a6:20b:43e::7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.19; Sat, 23 Aug
 2025 00:37:46 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9052.014; Sat, 23 Aug 2025
 00:37: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>
X-Inumbo-ID: 6470c1ff-7fb9-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OzK0To7kSFpbXj0ywD3WPt/tF1ylWa2Uv7KzHOgjvgZTKZAjHsmCCEoPKaCiKpM2xz2brhviiojCxwE253qpj9x7fyH+YrHabjP0rWipIrfDBclpU8nuE2MJTgQWU9nJGcEBSFWI6b36Sp4sR9b0AxviCfr4LFfpNuHFQ7sYGp8fogqZvTdu5L/QOTxtkGBvQVKWZRDJnA7lGXKv0qdhY7l8xa/SO4q1tr2E/eXIwyc6vXRzpmfLOg/hm7lT6gGtj3bLfdJVfiAy6pOVqyRC9ZqYv2Nhl2LcjBT83bz3BcmcqE87i5U4aRFhlMkMwiZlcmMEv78G3AO3Qup409+Vkw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=womvZsi6s+cPhoOGbJBAc28EKuYZM8Qf0KAVc4HOkI4=;
 b=lEKOOM57kE2cxueopiP/FOdXFZ0/Zx2nACEtggLx/999JN7Q2Hkzv2rXYPnNOAdLM0Nc62jUeU5JWVKKMZPfHX78Hy+yanNz5XPj3BSAkTTcGtSS6nUgZOQADqRShNjmdoPsbv0qV10aYBAuh/lHn115Kcz9QWEdQSTlvsEeuBRhPkaYcWMVzy5PtQKAKS0WJUVVq/TBnkGJ6KU2V2c0CGNIA7IAwTjTdaz/VNfTJDlz6n1F+bdmP+5M6Je5YI20qHIjoJwaW160WG2HuiB8eoqrEbcJ4LFtivlmOEbg8Sl67F5eJYUE1cqClT+rpfJE1WL4PIAmYaJi30nE/mHB+w==
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=womvZsi6s+cPhoOGbJBAc28EKuYZM8Qf0KAVc4HOkI4=;
 b=m2yvsPHslItYo31QlE7v9mZylHG9kBHPlSTJPcUn1JUAdSPVTyqh2hNhuzWQBmFyKIgeDfz8RX4ryVrVzlI5iKmgzZPTE2RMjEdNxQWQu77OkIhUTZYxPQRcaF/koUTcqFsZUAOQKL4HYTU7CFbLpCF6DaggvMDfiFct7eFlU5INJHbEuX7dthND6lFByzMBocXc+LG/72G7x0TjM1xEl2KDvVXLnee1lMGyTrHmnupjIT/rs+y4f7r5uhQsLUG3+CflVljJ7PvjVVuBJ3Wccr3xKHBOxuauy3+y9+oBsIl7zsnTYUC6+SoWRpJA7qL87wLxbV4+9vCkdQak94eYLA==
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 v5 05/12] xen/arm: irq: avoid local IRQ descriptors reinit
 on system resume
Thread-Topic: [PATCH v5 05/12] xen/arm: irq: avoid local IRQ descriptors
 reinit on system resume
Thread-Index: AQHcCwFcU6YHlfOU1EaGDcY/uk86oQ==
Date: Sat, 23 Aug 2025 00:37:45 +0000
Message-ID: <87ldnaan52.fsf@epam.com>
References: <cover.1754943874.git.mykola_kvach@epam.com>
	<7686bc019f0c0eff94720e4ca16e00f895819087.1754943874.git.mykola_kvach@epam.com>
In-Reply-To:
 <7686bc019f0c0eff94720e4ca16e00f895819087.1754943874.git.mykola_kvach@epam.com>
	(Mykola Kvach's message of "Mon, 11 Aug 2025 23:48:01 +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_|AM9PR03MB8011:EE_
x-ms-office365-filtering-correlation-id: 0f107cee-d007-46bc-b33e-08dde1dd4784
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|376014|366016|42112799006|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?GpHfr4Qsme8XcYzheCJpqg+TIxiLHiiOBl38CQ2aYPfdbJfW+Onu9ZNK82?=
 =?iso-8859-1?Q?17+8YIoPuCJOk5Nh1/iOWnrm2cF/ZHLdf1mZ89C7p6AC+E8KVpBeAD5uMY?=
 =?iso-8859-1?Q?ZfeREaUIGZXYcFBqn1xug45qL+DCLcgPIAKmHpAK5dnmNWMz+fBN23a31q?=
 =?iso-8859-1?Q?Oq/YpnZ4SflscaC0e/X2RE5eb0Okfqzv8IXVbtXO3xjTfrayxBX2icGDf1?=
 =?iso-8859-1?Q?FgFVWFXVmcux1vzyU9gkWl0+RoEgOpJtgz0Q+oOdPPj8hBbxEDc9Xoaf5F?=
 =?iso-8859-1?Q?Rij+8LqVbE+Ge2Prciz3ZXw7MWDHNAbep2TMfouAB24phO/kZ2MqHkyYNM?=
 =?iso-8859-1?Q?JLOKKajiOf7dkkIWmSbAPrh2CLqocBRHy6+rvH1XLMfEgIXWRCl6tiHpjA?=
 =?iso-8859-1?Q?DfCw6FynslmTCQJmlLUZ0Xrzr2qeq/FE7DYIuL+JSTnivvS7HhWlx2K6h8?=
 =?iso-8859-1?Q?Lvc4RA6I4ei64fqRax4gYBcXphXa7RVgK5TydpowSHbpZs9FYvDTa9n2MP?=
 =?iso-8859-1?Q?RshidLpSykzNWBs/G1ZBh3O5dpFYWwHfhubhSOlycUPi7BlVB77yWqIfVO?=
 =?iso-8859-1?Q?0LRpheXHKlORWeqVX2mJzA7M/XMtcKarIjNmU/MiZW+uyg6tIUDT+1dgN2?=
 =?iso-8859-1?Q?uVOnJd7cEa/ByruXgfDYFaGCSsJH6aIOmH3g1mUgJbEGUjcY2r27dpnqmz?=
 =?iso-8859-1?Q?1YECDUHuV6ffYHZSVyU+qNAwEPhrzXTGrux2OJ+wg21M2rROgjmR1QsVhq?=
 =?iso-8859-1?Q?KArfJL2OP7APhLsDFqCq9Po1H8P0XoYqcoH4Ekar/ePA8SuA/2XYtMbZzP?=
 =?iso-8859-1?Q?NEUyK42fmjypybZgOibPgxQ2UDoqfq+BN4M/grZ8ma4ApR5GG+63e+vm8K?=
 =?iso-8859-1?Q?vxnbpzZ8peHyjcxPAt/JuY7oCMK5BGyRNDlpYW/LbwNYTRcaJQ2Tyb6Ypa?=
 =?iso-8859-1?Q?pRzX2LBso9rqjlw67kZD6vz+W2UobWIS6wNjggFpQ69P4YnQB+l4t2mpNe?=
 =?iso-8859-1?Q?6sUA57c+Ad8/IhrmuKMEsLJYl6QGfyXPGxROYGgAhKZ7YFNk/VbwFyVjT3?=
 =?iso-8859-1?Q?pWzumORCjoHazvBzjswZ7MWqqGZmArRqFrYe2S9VNd3+09i7qxZTL9JF6M?=
 =?iso-8859-1?Q?9utwVpmuaGLOsaeUTHkieuX8+chM5yxo29tY20rwj/UkzQ2I1pAtr10SzP?=
 =?iso-8859-1?Q?+SxL5lf3RLdewaDyYwOEc5bt7vI6KU8qlZLTYkxlwiT9XYGl00Gn+6GjH2?=
 =?iso-8859-1?Q?oBv6t6KjwUL5geW8TJ63I3ssNPto52c5d0/XYTykQbvVdOOA1MiEotHlBo?=
 =?iso-8859-1?Q?Myc3emFiUBkFDajFfWnk0vSq+777YkiRWskP/jRv1RhyWtQL2g3qVlP9Ts?=
 =?iso-8859-1?Q?rn5p1ALIS/vHSUl0UjsCN1N+8LJD2OcmoJD7/A2RtHLsRikiXYmu5UI8+f?=
 =?iso-8859-1?Q?AiMIyo4KdAt/NSghkaxLfRvNEVP8JJ0tztgx6nWTmLWWnKZ3PaISIM19kh?=
 =?iso-8859-1?Q?fDJD8ZI91hOc7aev7we0R/2n58X8JzrdAQsRtHba28EA=3D=3D?=
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)(376014)(366016)(42112799006)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?DZxJ9hmGsOi+5OUizlKP6wwuvq1peiymby7wEFa0ik32O+nzh1rCceSiAW?=
 =?iso-8859-1?Q?t711e9DmNf75yV2Y0Ys3oR9NORIRLo4FnxXIxZP6xV1NWUqn13/G/ut4xh?=
 =?iso-8859-1?Q?WGlqON5uklc3scxaxnPMQqv+tCz+Ng1rNb6HBzObNtTGsm5RbDq+Il+C9R?=
 =?iso-8859-1?Q?M/FgkKuop8Vi30S20sPJfbwilyTay1+j7QoYs1Zd7XxPaWCD9WYz4ABMu6?=
 =?iso-8859-1?Q?1zzV6HNidJT1RcwOmRf0bIygQOqWSRc0rx4/irrmWOUIgBWdePbTuNh9TU?=
 =?iso-8859-1?Q?k6oEkJN9BjTOOPSmxsGEkPXIzCCf1rB3XQ8LQBtNlG6W7JsELKLfCPSJUg?=
 =?iso-8859-1?Q?yILEnXaO2uvmw8NL76OA/SgK6M2ORVaXpiEqtKtP7kJXAOyrvWxSK9IYID?=
 =?iso-8859-1?Q?SUX9cI8QU2jLM/pCZxwmD+n3JwfFI9s2xi4Yfz/MeSlKDYofdi2BowABFB?=
 =?iso-8859-1?Q?5G9YauCmMNj6T0OkmlJ5FHwY4TISYPngo4mNsXg7BJNFBhezN1LLxCmPGw?=
 =?iso-8859-1?Q?FMVt8SrzdVAbulK751cwsrT5qQFBsVGpgN2PFYYeoYe0mDjm0akpWnD33a?=
 =?iso-8859-1?Q?qaydCYR6d589PIy70kGUzwH70EGiBy9VaT72ICF7l18vp7qBjr5oF5QWd0?=
 =?iso-8859-1?Q?AlLZzIddqJGHelkQfAeWlenRt8fWiNgoMae8zGqEakKNC5hE22+PjjGdX6?=
 =?iso-8859-1?Q?Y6eD5VOJMQ4As+1VSfY+c1iN9O5M8TeWK3B9m/PRlgTLkCegx7pec5kO4K?=
 =?iso-8859-1?Q?ILvzerTBo/RCzcSP8CeZT/BUNM4JzcH5VPOtw+aBkPsQNggCOdOjNkSpMY?=
 =?iso-8859-1?Q?QGek6jwhTo5QGyXg2HLCrnE0Mo4WqvDPaYVPxijSjdophm+IrsTC3UJZHq?=
 =?iso-8859-1?Q?sQ7uAQTXQmMpGVXWy8DqLZsvnrq0zdh+FRNAV7aHa1BPujx1TrAj4f2c2p?=
 =?iso-8859-1?Q?0cnys1PrmRAdf5wJ5pk3DKuV4NTGFnprsRl00qrVd+/k52/nC6jwlM6A2n?=
 =?iso-8859-1?Q?N19cl3VQpqH3qNfC3xhza/ov6knAnIKib375yOl+iyM8fX0Bxa0HThxJkc?=
 =?iso-8859-1?Q?LYtbW0HDC7b/1xOa28CSaoYtmj0BfSNOGbc4+WW4Jhigk+wUT8EdUdLWQx?=
 =?iso-8859-1?Q?4JFaS8LBsKbB5FIslFyq0/ONgihs2CudPYF7JJg7X5h9bOwv45rDY6PCc7?=
 =?iso-8859-1?Q?mHmGVbbMwgRXsL4IZtlOeuzhrBME05JkH34FFBH/hmX4IG3YEuAMXYqL2G?=
 =?iso-8859-1?Q?zLDcU3Ojwq4xnwmJPwWv4wunC0JyRDET5STXhx+agNfH9ZN8fhVd52mO4O?=
 =?iso-8859-1?Q?SGJsQM5bDE6nFKm++Z7mKvtLXmsIELoLjaD40WnlN6+wY5FLp5BjeAlswp?=
 =?iso-8859-1?Q?k3YpHgITgWepR0UJhy5klawRoHJNNVwDvhyqgxB573bsFSZeyNI8S2gzTr?=
 =?iso-8859-1?Q?cA+6eBtqjmexRAErurPt6Oq5Gcpw/3ysx0d0NjfnsFZvF0Jt9JTHeA6S2F?=
 =?iso-8859-1?Q?FwCTMh+q4LVwjYzz/MxktVFuTUnurO00CPuTj3rSA56ZFjSHhV5MgtOQTh?=
 =?iso-8859-1?Q?eZklQrIvuERgbyqaAI8mbUk3V6Fr0XrbsXhRQAcQfPNlhzeHZJikswd1LV?=
 =?iso-8859-1?Q?MDCmycVNA8YIP1LMi1UrbchMUmh/ccixwpeLIMh0oR/QXtJFCrZ1XPLw?=
 =?iso-8859-1?Q?=3D=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: 0f107cee-d007-46bc-b33e-08dde1dd4784
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Aug 2025 00:37:45.9934
 (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: 99RbeVG/MrEftXq03UIYrfsBKifFo+lre+JeJVG/b5Yyztd3QAwwK78AfbVrrQ49O8wdE4/xuSOQ5WZJlpzRxlsfwAWn75wg4dS7nHrl46g=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR03MB8011

Mykola Kvach <xakep.amatop@gmail.com> writes:

> From: Mykola Kvach <mykola_kvach@epam.com>
>
> On ARM, during system resume, CPUs are brought online again. This normall=
y
> triggers init_local_irq_data, which reinitializes IRQ descriptors for
> banked interrupts (SGIs and PPIs).
>
> These descriptors are statically allocated per CPU and retain valid
> state across suspend/resume cycles. Re-initializing them on resume is
> unnecessary and may result in loss of interrupt configuration or
> restored state.
>
> This patch skips init_local_irq_data when system_state is set to
> SYS_STATE_resume to preserve banked IRQ descs state during resume.
>
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>

Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

> ---
>  xen/arch/arm/irq.c | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
> index 4bbf0b0664..148f184f8b 100644
> --- a/xen/arch/arm/irq.c
> +++ b/xen/arch/arm/irq.c
> @@ -122,6 +122,10 @@ static int cpu_callback(struct notifier_block *nfb, =
unsigned long action,
>      switch ( action )
>      {
>      case CPU_UP_PREPARE:
> +        /* Skip local IRQ cleanup on resume */
> +        if ( system_state =3D=3D SYS_STATE_resume )
> +            break;
> +
>          rc =3D init_local_irq_data(cpu);
>          if ( rc )
>              printk(XENLOG_ERR "Unable to allocate local IRQ for CPU%u\n"=
,

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Sat Aug 23 00:40:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Aug 2025 00:40:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090809.1447908 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upcIg-0002J5-R2; Sat, 23 Aug 2025 00:40:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090809.1447908; Sat, 23 Aug 2025 00:40: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 1upcIg-0002Iy-LV; Sat, 23 Aug 2025 00:40:06 +0000
Received: by outflank-mailman (input) for mailman id 1090809;
 Sat, 23 Aug 2025 00:40:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=MmA+=3D=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1upcIg-0002DR-5q
 for xen-devel@lists.xenproject.org; Sat, 23 Aug 2025 00:40:06 +0000
Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b5b6c059-7fb9-11f0-a32b-13f23c93f187;
 Sat, 23 Aug 2025 02:40:04 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by nyc.source.kernel.org (Postfix) with ESMTP id B432CA58C37;
 Sat, 23 Aug 2025 00:40:03 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 611B3C4CEED;
 Sat, 23 Aug 2025 00:40:01 +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>
X-Inumbo-ID: b5b6c059-7fb9-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1755909603;
	bh=X4y6vvrVwVP8d2R/v3Z6dA/bg/Ea2gAFz5FT8FIkSC0=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=p6reIiWsFZIGQfimiimqj2On6JCDc3xlVbmUNhm/7ibIh8Y39DeocsJuED8v0vAQ3
	 OJRWri+QaqCuMroaVx2dzst3q+SF9QAxs/lZjWyBCbZaBMkPDYmNWh+NVxGcYkOgd+
	 MugcbSH6DtJzspzPR+g7J1WAKsQ63CyvfmvQujGWUgULkE/ksMYNJyCBJGh5+psZ3+
	 z5HdikGHFIQUkSWf0nqQ++eUNSpu6Em5Ru+IxbERYw+U4Warvk4VcG4W28vAcyR1Pn
	 7mF5CoQEMdb5g37mztKx41m2IPEAoKYErFzdOxbHF6W0O9Rc6R/PCHjbzzXXFDxOiD
	 fMbrNaFO8rJxg==
Date: Fri, 22 Aug 2025 17:40:00 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Jan Beulich <jbeulich@suse.com>, Juergen Gross <jgross@suse.com>, 
    Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Grygorii Strashko <grygorii_strashko@epam.com>
Subject: Re: [RFC PATCH v5 08/10] lib/arm: Add I/O memory copy helpers
In-Reply-To: <6df9b5bbeae12a74397d72d53c530313f0778025.1753184487.git.oleksii_moisieiev@epam.com>
Message-ID: <alpine.DEB.2.22.394.2508221738030.2743087@ubuntu-linux-20-04-desktop>
References: <cover.1753184487.git.oleksii_moisieiev@epam.com> <6df9b5bbeae12a74397d72d53c530313f0778025.1753184487.git.oleksii_moisieiev@epam.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 22 Jul 2025, Oleksii Moisieiev wrote:
> This commit introduces two helper functions, `__memcpy_fromio` and
> `__memcpy_toio`, to provide a robust mechanism for copying data between
> standard memory and memory-mapped I/O (MMIO) space for the ARM
> architecture.
> 
> These functions are designed to handle memory transfers safely,
> accounting for potential address alignment issues to ensure correctness
> and improve performance where possible. The implementation is specific
> to ARM and uses relaxed I/O accessors.
> 
> __memcpy_fromio:
> Copies a block of data from an I/O memory source to a destination in
> standard ("real") memory. The implementation first handles any unaligned
> bytes at the beginning of the source buffer individually using byte-wise
> reads. It then copies the bulk of the data using 32-bit reads for
> efficiency, and finally processes any remaining bytes at the end of the
> buffer.
> 
> __memcpy_toio:
> Copies a block of data from standard memory to a destination in I/O
> memory space. It follows a similar strategy, handling any initial
> unaligned portion of the destination buffer byte-by-byte before using
> more efficient 32-bit writes for the main, aligned part of the transfer.
> Any trailing bytes are also handled individually.
> xen/include/xen/lib/arm/io.h
> 
> Signed-off-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
> ---
> 
> Changes in v5:
> - move memcpy_toio/fromio to the generic place
> 
>  xen/include/xen/lib/arm/io.h | 15 +++++++
>  xen/lib/Makefile             |  1 +
>  xen/lib/arm/Makefile         |  1 +
>  xen/lib/arm/io.c             | 80 ++++++++++++++++++++++++++++++++++++
>  4 files changed, 97 insertions(+)
>  create mode 100644 xen/include/xen/lib/arm/io.h
>  create mode 100644 xen/lib/arm/Makefile
>  create mode 100644 xen/lib/arm/io.c
> 
> diff --git a/xen/include/xen/lib/arm/io.h b/xen/include/xen/lib/arm/io.h
> new file mode 100644
> index 0000000000..86973660ba
> --- /dev/null
> +++ b/xen/include/xen/lib/arm/io.h
> @@ -0,0 +1,15 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +#ifndef _XEN_LIB_ARM_IO_H
> +#define _XEN_LIB_ARM_IO_H
> +
> +#include <xen/types.h>
> +
> +/*
> + * Prototypes for I/O memory access functions.
> + */
> +extern void __memcpy_fromio(void *to, const volatile void __iomem *from,
> +                     size_t count);
> +extern void __memcpy_toio(volatile void __iomem *to, const void *from,
> +                   size_t count);
> +
> +#endif /* _XEN_LIB_ARM_IO_H */
> diff --git a/xen/lib/Makefile b/xen/lib/Makefile
> index 5ccb1e5241..efa8157a72 100644
> --- a/xen/lib/Makefile
> +++ b/xen/lib/Makefile
> @@ -1,4 +1,5 @@
>  obj-$(CONFIG_X86) += x86/
> +obj-$(CONFIG_ARM) += arm/
>  
>  lib-y += bsearch.o
>  lib-y += ctors.o
> diff --git a/xen/lib/arm/Makefile b/xen/lib/arm/Makefile
> new file mode 100644
> index 0000000000..87250b3822
> --- /dev/null
> +++ b/xen/lib/arm/Makefile
> @@ -0,0 +1 @@
> +obj-y += io.o
> \ No newline at end of file
> diff --git a/xen/lib/arm/io.c b/xen/lib/arm/io.c
> new file mode 100644
> index 0000000000..d267bd28e4
> --- /dev/null
> +++ b/xen/lib/arm/io.c
> @@ -0,0 +1,80 @@
> +#include <asm/io.h>
> +#include <xen/lib/arm/io.h>

Please add the SPDX tag


> +/*
> + * memcpy_fromio - Copy data from IO memory space to "real" memory space.
> + * @to: Where to copy to
> + * @from: Where to copy from
> + * @count: The size of the area.
> + */
> +void __memcpy_fromio(void *to, const volatile void __iomem *from,
> +                     size_t count)
> +{
> +    while ( count && !IS_ALIGNED((unsigned long)from, 4) )
> +    {
> +        *(u8 *)to = readb_relaxed(from);
> +        from++;
> +        to++;
> +        count--;
> +    }
> +
> +    while ( count >= 4 )
> +    {
> +        *(u32 *)to = readl_relaxed(from);
> +        from += 4;
> +        to += 4;
> +        count -= 4;
> +    }
> +
> +    while ( count )
> +    {
> +        *(u8 *)to = readb_relaxed(from);
> +        from++;
> +        to++;
> +        count--;
> +    }
> +}
> +
> +/*
> + * memcpy_toio - Copy data from "real" memory space to IO memory space.
> + * @to: Where to copy to
> + * @from: Where to copy from
> + * @count: The size of the area.
> + */
> +void __memcpy_toio(volatile void __iomem *to, const void *from,
> +                   size_t count)
> +{
> +    while ( count && !IS_ALIGNED((unsigned long)to, 4) )
> +    {
> +        writeb_relaxed(*(u8 *)from, to);
> +        from++;
> +        to++;
> +        count--;
> +    }
> +
> +    while ( count >= 4 )
> +    {
> +        writel_relaxed(*(u32 *)from, to);
> +        from += 4;
> +        to += 4;
> +        count -= 4;
> +    }
> +
> +    while ( count )
> +    {
> +        writeb_relaxed(*(u8 *)from, to);
> +        from++;
> +        to++;
> +        count--;
> +    }
> +}
> +
> +/*
> + * Local variables:
> + * mode: C
> + * c-file-style: "BSD"
> + * c-basic-offset: 8
> + * tab-width: 8
> + * indent-tabs-mode: t
> + * End:
> + */
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Sat Aug 23 00:46:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Aug 2025 00:46:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090830.1447916 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upcON-0003Ps-GU; Sat, 23 Aug 2025 00:45:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090830.1447916; Sat, 23 Aug 2025 00:45: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 1upcON-0003Pl-Dv; Sat, 23 Aug 2025 00:45:59 +0000
Received: by outflank-mailman (input) for mailman id 1090830;
 Sat, 23 Aug 2025 00:45:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Yyzx=3D=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1upcOM-0003Pf-5y
 for xen-devel@lists.xenproject.org; Sat, 23 Aug 2025 00:45:58 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 87c97fee-7fba-11f0-a32b-13f23c93f187;
 Sat, 23 Aug 2025 02:45:57 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by GV2PR03MB9378.eurprd03.prod.outlook.com
 (2603:10a6:150:d5::7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.15; Sat, 23 Aug
 2025 00:45:51 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9052.014; Sat, 23 Aug 2025
 00:45:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 87c97fee-7fba-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=XEVQ/Xuj9OlwhETjqyVeyEsNKLC68nSMcJtoP8DVxNecwQMrt/gB2C40EGZmi9k8RVyaIF8pbPM9HlxxDSqNU2Fa8QUchg78pkiid0JT8fo7aZv25iPrrsLzfJ/frcajsYY/gpP+lQp0TMUI7CCd39cZogBUmFi/JnBsCcDJhzwQwMq8FirVInuTjjnnTWlPFUkars8Nc8nV22Hr8U0k8Q1/Dd8Q9wBqgs+l0ef+5kgANmgNxghXuzygoIyv2++rXadnYHMDM28119gBIy9vP7qYnIohIkgnFUu9gHlEEok8z3nTikmAia7X5J/wnoX4N8oVVWwEhYZAKFE1UChQHQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=NpXgTHJXf4p5A4doAGZO36GRIMWXH9t2oGMcnNUWRd4=;
 b=H/YzxCngIQlPRNAZHkdXIh/tle9unXToSnSulhnEBgYJisTGzjWc85yycro05Oa8KHXsvxFXRjgrdO813hWN++hhZwUeu0gJf28wXfOtaMuQZZ7+7j7ye8YwW1oJSjEOfsq9y3llQZI98hj2cEpyUm59qZqz4Coy1krtESD3m4TGBI04g3ZMhrKB+NwwwZ+GaakN8Kk5XbXaRLw3o3rE4BiTcm+PCckf/sLrQDSg5vcjXPUOB36KcA5emjFSfUql9loiTbPxvLNZiKyUPVjIUXvTW178H5oAx9zQdd48XQEfT51mfzqvxiDsrTpttWpUL/UFcIV06OJKolkHwECnvw==
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=NpXgTHJXf4p5A4doAGZO36GRIMWXH9t2oGMcnNUWRd4=;
 b=Xorlkd4QtDxdC0lApUwOZpLxi6JtehdOLGpEqhe5Qx/UrLyFPTjBUfpEU8U3Jtj3d1zPsnc0+kr5KrqEEv4VTToy2lHuRC4nIeOrx7RfquTYk0PIyLZn6qlsZuxJAnYWgYfVz4uZwhbTlp7b8luMpTuFPUgdFmFq63f+/wKdK7SE9xzRkwvOqAg2OaHiOKNLw+QvqmWxmMDLQhhX8wfg1n/tV/yxiSDbUDHr9PnZ5WBfdI28Jotj/+hyz0Erwtg/d1yfxiDrotGjSenwCpihQmGcfI2cbjFqJa+W9kiSWT31rsVWTWY4qlqwxCw6m8+jDUujbWrjC9/ldnIk+mKmnQ==
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 v5 06/12] xen/arm: irq: Restore state of local IRQs during
 system resume
Thread-Topic: [PATCH v5 06/12] xen/arm: irq: Restore state of local IRQs
 during system resume
Thread-Index: AQHcCwFdbnxcOkUsNEeOVZH7G9fkwg==
Date: Sat, 23 Aug 2025 00:45:50 +0000
Message-ID: <877byuamrm.fsf@epam.com>
References: <cover.1754943874.git.mykola_kvach@epam.com>
	<779a90853f249f8d8c4973874baeee1f787e92e0.1754943875.git.mykola_kvach@epam.com>
In-Reply-To:
 <779a90853f249f8d8c4973874baeee1f787e92e0.1754943875.git.mykola_kvach@epam.com>
	(Mykola Kvach's message of "Mon, 11 Aug 2025 23:48:02 +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_|GV2PR03MB9378:EE_
x-ms-office365-filtering-correlation-id: b98138c6-a89a-472a-98d5-08dde1de6896
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|42112799006|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?AKvs6uV2tvOVyInPk2Ts/SVL79gS8Q7hLbEn6u50qkzJPRikboLWVzcMRo?=
 =?iso-8859-1?Q?BF/yCf5p7m+uRzrH23/Zb3y/b9G73rMO5ilWr+GGrklm+b7eeNRtjTZPbq?=
 =?iso-8859-1?Q?AxEaWbgWjvHsZbH1QI0/9owmBtWVtthZcj/oEM1KqlDNzlzkEYhE+gQpgm?=
 =?iso-8859-1?Q?q60w+VAmcXpA6zH6SqK5DUaWE/7bpRUf0dEt2QSQHJ17KoUH+f3zBhSMzE?=
 =?iso-8859-1?Q?QjOYc/TaivHT9P+2/YR4eU+csi1cPuYjsGz+7m2Ub7UFLeMIhnSTLlG6pl?=
 =?iso-8859-1?Q?DO1mN6CN0b3MGwUh9K6qfT6oTQQRbhsz1fm56f51u0O1iZJZAiLe2hZkMo?=
 =?iso-8859-1?Q?2TlOQ/JGUysrM/4yNzVY3f/tPcvnf9fFl46W25RjumPy9f1fLAoeL1tXWa?=
 =?iso-8859-1?Q?ahsGo4RtFi4a5YpasXjxPjs4O5Izmy7331O1H4czKAa68rnHjHEZKuCCHK?=
 =?iso-8859-1?Q?l40Z9pwQ++exiI//BqwaJZ+DmXp/Efj/J45da7G2hgOJXLt4DuGv+jylpD?=
 =?iso-8859-1?Q?lBZ9I0wUoOHTaYbOawGN5W6M27mvHEZuaoqgL80Ch+QDJw2lQKjEjIpjP9?=
 =?iso-8859-1?Q?LHZFD6zYbb57pmOiZruB3J59mbA50K585kiYEsq/4elzxHGRFrxGXDFTWx?=
 =?iso-8859-1?Q?gkOOnxxXjtBR8wg9JFWAMbbh8cnbcGdecRaEHkzbK3SWrICK4m3IRqilje?=
 =?iso-8859-1?Q?2QyKtDt1mEABWx7nQTuCojXyjVpqrc38ZRvI0bSXrYMrRWPIpZOpAOrSkk?=
 =?iso-8859-1?Q?OB9YZGEIza9h7ZMzP5OQw+oG2+/0tcCPnDjfocUoP28Uo/KZRtdJnlCiKJ?=
 =?iso-8859-1?Q?U4FZ0XcSrxc8tPIHHrQR8m1JdWZBVzbgAMr25z5TnWa60N6cnQbdfUf9VZ?=
 =?iso-8859-1?Q?iFGEShFcCn7Vo2DpElQX8C2Ku9A0a7HmWtly6DrejeXSGqr04xhknb1JW0?=
 =?iso-8859-1?Q?G2kGEShspmQlXxOfcWVNJlmRNHRRuG8cKfHXeJJ3FAnGcw1Ym+++ELCtt3?=
 =?iso-8859-1?Q?Ou1gho6y5u1Svp8WmOjfRkJBygzrWQ74dH3ifTUfEPBs2i6LQAi//eGrd0?=
 =?iso-8859-1?Q?uFL3Uch8Md+PluyQ6B4cWiBdngmLOWsu4Dar8Fm7cEzD/7OnUJujC/pXri?=
 =?iso-8859-1?Q?LCPpYkVC3MyI9NsoRHBpKM7wdKi+/BfGOVzpD7DOUFRFtHNXzsrUhNRvGO?=
 =?iso-8859-1?Q?9uE/U8I5Wy9kJ5c0mssW4dURDLc8Or0a9O8UCFfJxaag3+vNwPafh75ppa?=
 =?iso-8859-1?Q?zh7T4od6GMD7TjvLm0AIBAbghaRSZ1h0Rfj1tdhrICK0NcV11L2JEY0msB?=
 =?iso-8859-1?Q?i5LX/6RVZ2fnRDAQTnBp0KKKCBDbtOC5qxRfk1EvnB06m8cPvcoRuDSw6x?=
 =?iso-8859-1?Q?8kjUEQRiQqSHbBLQJO+WygWswB0oAu/jthKdrBVL51Rc4qa0qpRN0f7zRD?=
 =?iso-8859-1?Q?Rt74xOTAjScTPQ7P/dqtE4YGWmQpjiO5aU+hHcZ2vcxTM3jOd++C54QYox?=
 =?iso-8859-1?Q?T1MT2ew6zgS3jQoJ7p8SGf4G+38SUPdvMjgpZUMVpXCA=3D=3D?=
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)(42112799006)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?1mKd93aIh5tz46o34KwoVP7aWnmEVDNs4hT67/bd/Cs29ers8Hu3mdxjnB?=
 =?iso-8859-1?Q?nywH71nPG4nwmT8Mw9sBjmIxM3BS44yLmpncok7kigvZq8V6mVpRvamgIJ?=
 =?iso-8859-1?Q?QBlJfA8IzJigvm6CAkV6ytQGhaBeb31Q6l65vGrRpiArXSBHadz68reY4S?=
 =?iso-8859-1?Q?cADBR+tGkAH8rcjTKlakNM3SMY2rSMVa2uBkvla82jXbGRAZuK0MDROOGg?=
 =?iso-8859-1?Q?y/kIFb8Vawg9E76L1xUPlxvKTKxO9SwMrzZpAw+2g/PkQk8mpZlM8RXnqJ?=
 =?iso-8859-1?Q?nmNisXuvNKE4jHssMtt/nBw5k/Ds9NjarwNu1WWqccrv60WvoHKEDYQzjh?=
 =?iso-8859-1?Q?ZClqul1P5VuLDEsoz2BjBrArQYfgMQg5vMwkbtw/KozA2OG1kDhoTaEshT?=
 =?iso-8859-1?Q?QeeutMJUoYDkRu//ehrERICoeit7g0somOTd9kU3uEbd++9KjjolCROI4u?=
 =?iso-8859-1?Q?1eHy/tH3DPjdFdOsFRa1EFs9IQVd2FNg7MTMsgaitW9FaOiPHi/L88y9t3?=
 =?iso-8859-1?Q?JRfLmBoe7ItYqRX1I2rKyM/VuI/yAcccmo2FIQ7g1IT2MT6qLbgU++NAKO?=
 =?iso-8859-1?Q?WLcFeybkh+13GqqbVv2t3PvVRr4NQIa8guz5LyWykiWaE0nh9sbumWKhvf?=
 =?iso-8859-1?Q?u1HEI1qArZz6FafGwejHPa2A/t+rWHQLLCzBonIv65Gfta/M5jmoFjz6od?=
 =?iso-8859-1?Q?72Axvd0xgL9C7eKIpWDIEVMLDecD4sk3iHEt/SMyaQAzsc6I5GsLB6RF/P?=
 =?iso-8859-1?Q?i4I9ORpVP53dLuIyWAo8XqDPFshTMcqmHkgOOzvVLQlHaWpLA2N1lzmrGC?=
 =?iso-8859-1?Q?WuVjKB22Iy9xed2ZU1exEzu2rGtw5FUf6Hiu3H95EI/rncD2K7CdcTCtVq?=
 =?iso-8859-1?Q?M0gRosaI4GbWemWgfW4fscNNxtP9g6GKmstPLTqsNStumt1CAVrT9KR3zj?=
 =?iso-8859-1?Q?avGyeC/YnXJG6rL87R62cWikm7ej6RlyhSdqhnNF7XwOxUyCwtzpF/W0lu?=
 =?iso-8859-1?Q?DNstjoR0dHw+afNSijd8ai02WJZTt5fLjizjGIaMcrhaGohSmAc0EHvjR4?=
 =?iso-8859-1?Q?DH6dPYPNUZ5B+iSM5eMmjaRkgUbECeOu7eNQO5nO/hcazI4Kll5aEbxjxd?=
 =?iso-8859-1?Q?kNoLIkFufp56iWwWjSLe/AfXXTBUPPKN9wvNUfEFF28svO1fKEcx2FLvK8?=
 =?iso-8859-1?Q?f+jsYRL2WW3E4UhG1UYAwyviGEiW1B7bTTjtGgHYZtKBkyQoIjOuSI5KAH?=
 =?iso-8859-1?Q?oNWklaywFIi3eqMoVRfRT7bdjOBWwTnz3T6NJUadNGjmKyZcq03rctPxr8?=
 =?iso-8859-1?Q?RwIsgU1nlNMyr+3sZFtPTSttt/ECxeJkY96UYF7zh8OtJwSnNXGCGacdwK?=
 =?iso-8859-1?Q?SALS2Xb/UOddaJ1zh/rw9PcRfX4cqLMIa3uCAi1mt11nncBW1i01+OM+Us?=
 =?iso-8859-1?Q?rCB+urk6OW7hwst9qCw5oYAJFLdtYV+7/qdxroxHf4zcuODK/AZVbZ8/3X?=
 =?iso-8859-1?Q?I7rwyJN/HHfSUzd/4jchWKb6vZapqdmyQnlTPAhMqSMnmN4GM/57XJ43CA?=
 =?iso-8859-1?Q?pdc6ukHE1i3Pk5msPf0yOHSWydFXqv0E/nyO2S8e5S998qYV7OTgLG44Rm?=
 =?iso-8859-1?Q?kEjH9/0nFVZwK5815v2vEwTcom8OjbNJXsVpCJJByqzxF74iGkGk8QSg?=
 =?iso-8859-1?Q?=3D=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: b98138c6-a89a-472a-98d5-08dde1de6896
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Aug 2025 00:45:51.0109
 (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: Z6RfQ5H0vdEyundt6/iMXmGUEzyUG85p8nE3yhfi2Lrj8PmxXH/jJW5HKhEpZl951FSgTUMsgG6jZPzLrEfq5h30nvVPZqvIsQNvyIzvUIo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR03MB9378

Hi Mykola,

Mykola Kvach <xakep.amatop@gmail.com> writes:

> From: Mykola Kvach <mykola_kvach@epam.com>
>
> On ARM, the first 32 interrupts (SGIs and PPIs) are banked per-CPU
> and not restored by gic_resume (for secondary cpus).
>
> This patch introduces restore_local_irqs_on_resume, a function that
> restores the state of local interrupts on the target CPU during
> system resume.
>
> It iterates over all local IRQs and re-enables those that were not
> disabled, reprogramming their routing and affinity accordingly.
>
> The function is invoked from start_secondary, ensuring that local IRQ
> state is restored early during CPU bring-up after suspend.
>
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> ---
>  xen/arch/arm/irq.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 44 insertions(+)
>
> diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
> index 148f184f8b..b3ff38dc27 100644
> --- a/xen/arch/arm/irq.c
> +++ b/xen/arch/arm/irq.c
> @@ -113,6 +113,47 @@ static int init_local_irq_data(unsigned int cpu)
>      return 0;
>  }
> =20
> +/*
> + * The first 32 interrupts (PPIs and SGIs) are per-CPU,
> + * so call this function on the target CPU to restore them.
> + *
> + * SPIs are restored via gic_resume.
> + */
> +static void restore_local_irqs_on_resume(void)
> +{
> +    int irq;
> +
> +    if ( system_state !=3D SYS_STATE_resume )
> +        return;

Maybe it is better to move this check to restore_local_irqs_on_resume()
caller? You can put ASSERT(system_state =3D=3D SYS_STATE_resume) there
instead.

I am saying this because name of restore_local_irqs_on_resume() implies tha=
t it
should be called only on resume.

> +
> +    spin_lock(&local_irqs_type_lock);
> +
> +    for ( irq =3D 0; irq < NR_LOCAL_IRQS; irq++ )
> +    {
> +        struct irq_desc *desc =3D irq_to_desc(irq);
> +
> +        spin_lock(&desc->lock);
> +
> +        if ( test_bit(_IRQ_DISABLED, &desc->status) )
> +        {
> +            spin_unlock(&desc->lock);
> +            continue;
> +        }
> +
> +        /* it is needed to avoid asserts in below calls */
> +        set_bit(_IRQ_DISABLED, &desc->status);

Assert in the call below isn't just because. You need to either call
desc->handler->disable() to properly disable the IRQ or justify why it
is fine to just set the bit.

> +
> +        gic_route_irq_to_xen(desc, GIC_PRI_IRQ);
> +
> +        /* _IRQ_DISABLED is cleared by below call */
> +        desc->handler->startup(desc);
> +
> +        spin_unlock(&desc->lock);
> +    }
> +
> +    spin_unlock(&local_irqs_type_lock);
> +}
> +
>  static int cpu_callback(struct notifier_block *nfb, unsigned long action=
,
>                          void *hcpu)
>  {
> @@ -131,6 +172,9 @@ static int cpu_callback(struct notifier_block *nfb, u=
nsigned long action,
>              printk(XENLOG_ERR "Unable to allocate local IRQ for CPU%u\n"=
,
>                     cpu);
>          break;
> +    case CPU_STARTING:
> +        restore_local_irqs_on_resume();
> +        break;
>      }
> =20
>      return notifier_from_errno(rc);

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Sat Aug 23 00:53:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Aug 2025 00:53:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090840.1447926 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upcVT-0005Ld-71; Sat, 23 Aug 2025 00:53:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090840.1447926; Sat, 23 Aug 2025 00:53: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 1upcVT-0005LW-4P; Sat, 23 Aug 2025 00:53:19 +0000
Received: by outflank-mailman (input) for mailman id 1090840;
 Sat, 23 Aug 2025 00:53:18 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Yyzx=3D=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1upcVS-0005LQ-70
 for xen-devel@lists.xenproject.org; Sat, 23 Aug 2025 00:53:18 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c201::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8e345d37-7fbb-11f0-a32b-13f23c93f187;
 Sat, 23 Aug 2025 02:53:17 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by DU0PR03MB8957.eurprd03.prod.outlook.com
 (2603:10a6:10:475::11) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.19; Sat, 23 Aug
 2025 00:53:14 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9052.014; Sat, 23 Aug 2025
 00:53:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8e345d37-7fbb-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lNqgC6dnPLlP2Ctb0IWiRbam6zqHAVzr4DnOcpz+rz+zCcF54n9m+TDhvV9bX68/dcvByqJg48V7OijoRDl1ZXR4YH8Zefl2oiW0peVLM2u7b8YZGTCKpD0MS2Xy1E5XSGSFQh7paJRNXUJ9omZdRdmt1yWVduQfZIHnEl9rPcO90CKSSgjaZzLgxJ7T1RlD8WwV5la9wWwT32K9xZMhhgb1H21Nsn1oRPLbwvaXJTXRIaGqmLIMNx5UG3UzEGfFCk36kE66yRfEXzwX/ShKQiQHW40VbQsQD590qbR8nAKAxYIvZesj4oJAPqu9Kdncezrw4sHo2bOFxrcjs2iofA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wmcakKGRpCSdV7gwQtcfrfgco6UwLTgQ20Q02v1oV3w=;
 b=G3+pdu5WJRY/y+m2lw9ROqlLTD/dziFhkD9CzR1R9XGZCbAx1si04GRMEWJKd9+VaIW9s9Ngr9etTzq91CjvnrjQECgyIuQ+9+cJuVR375b3NNatktjV8UPwMuSJvnnKQh7f6vaoAUx4RYCr9bXm0lijq7/bXVxdNKamzPc0mPXnkmyDJSjwN45PttmPW19RZiqVl19mFGqyephGgI/RH7lHuS/G46ke9edF8vlp9bf2spx8L9MQXs5had5G+o7BU9tIpzoBs50+BX+dkApZ0HYUETvwC5ds/EwzpFr4FPv6mqQxx7OXftJI+eyO6v99FMyBbX686em3X7VHxko+qQ==
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=wmcakKGRpCSdV7gwQtcfrfgco6UwLTgQ20Q02v1oV3w=;
 b=Z+oZAd18BEDPMS3Ao5V1BySlyAfVodi7VwEufRI2o0VOL1oJY6eXl62IXI5fcoko67kXD5nlbYTZgd1o4p0WBTu7BU0DVs1S065XsOUtRG3cpZv5C6CdAXJyG3rJ41Un5IYDkS5dAzQ0Jj8w5aM8ir9CdaMMbntj9xdQDoLUmbV5sJDkM2BCYDZavg/7y/xojVrAohgkYEyoz/4M0paYCq/Sp57/N5bxwPKywToWFzozFc9JKGNwmVRW6pK64M9SABlWFnCUaztrxjEpgkoGmBbf3Ahk6oQca7UAvcpjvXubBF8MQ1Dbw7GPyuU1PCCjhOrPL8M0D8U9akbX4dKgrQ==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Mykola Kvach <xakep.amatop@gmail.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Mirela Simonovic <mirela.simonovic@aggios.com>,
	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>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Saeed Nowshadi
	<saeed.nowshadi@xilinx.com>, Mykyta Poturai <Mykyta_Poturai@epam.com>, Mykola
 Kvach <Mykola_Kvach@epam.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v5 07/12] xen/arm: Add support for system suspend
 triggered by hardware domain
Thread-Topic: [PATCH v5 07/12] xen/arm: Add support for system suspend
 triggered by hardware domain
Thread-Index: AQHcCwFfU+9GQNRu4k2nrD5uWqCz7A==
Date: Sat, 23 Aug 2025 00:53:14 +0000
Message-ID: <87sehi97uu.fsf@epam.com>
References: <cover.1754943874.git.mykola_kvach@epam.com>
	<c995126a9a61aecff7cb9a7c6fd28f091a332443.1754943875.git.mykola_kvach@epam.com>
	<67216d88-9296-43d1-aa46-54cefb53ea5d@suse.com>
In-Reply-To: <67216d88-9296-43d1-aa46-54cefb53ea5d@suse.com> (Jan Beulich's
	message of "Tue, 12 Aug 2025 09:18:17 +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_|DU0PR03MB8957:EE_
x-ms-office365-filtering-correlation-id: 1d0136b2-e461-4f19-d097-08dde1df70b8
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|42112799006|376014|7416014|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?MjrsY4FsIMtSNNOe/3RDmeKkr+HrpFDk/H6+tIPgPEHNL8vzewDk2yB152?=
 =?iso-8859-1?Q?ivr6+ZRox08aGzIjjw/cgCHhoPQo/IpEBLd6GgoGOajRjagCItkT9D4P6N?=
 =?iso-8859-1?Q?9YwzAopCYj2Iy968Cp9ELvJS629iGaAVAIUnSgVGgcmfYmzaUMKw4KFgmX?=
 =?iso-8859-1?Q?3gFs5uqE/1z61CF3mBsfHDPj4K1awN7awGixdlM4qP9/WmKTExHQBgViFX?=
 =?iso-8859-1?Q?juKutug1ZUPgsqpcP5hqKT+e1C1KUsZUQm7tnALS1AErTfDz38qpFyD82k?=
 =?iso-8859-1?Q?ya15kw8JmKNhhQpnTbqybDA08SdLRRtMQpK8FvPHVRpqJWVVDPJy+lbhJP?=
 =?iso-8859-1?Q?cuITD7ZrdMvNGkVE0vVX4atvJ553J0KVb+c42t8dwi8Fn3NKuwzn4VtGg7?=
 =?iso-8859-1?Q?yczY1CUHC5slrvwcji3k4g7QuVQCNHbEiPQHgfIPB/U8GzPaPG2J2ovtFA?=
 =?iso-8859-1?Q?xjj2Bk2+Wn3+V8dk5dblVkGLD0VKCtvgbvlFUWEcUfBhdvcgUgOQXIz4hY?=
 =?iso-8859-1?Q?2mccBmbSWct2tkhqWTb8KgOW91p/pAqxtuxT0YfgKWfkNVt5rCSZEMvYM9?=
 =?iso-8859-1?Q?ihQHgjBnvHhFZRdLyf1pJ1jXkCUNcfmBbBcRkAAWNp+VDwET+pJMlcvU1z?=
 =?iso-8859-1?Q?JgQBvH/ebarq5NWxOQr5afZjXcuZAjU9D28tQHv9yU0fjPlgePFYZlizMD?=
 =?iso-8859-1?Q?AdJQ3X0WpTXwMWDVq4WAOIlcQ9EZWvWPi1Bqq1iB/pjkhzHXAKgFm0awB/?=
 =?iso-8859-1?Q?AwMQM6dAu005Uebgyllj5tCj8xSp5TZRLscmtufvqEhcmp8glyvh2NaprW?=
 =?iso-8859-1?Q?99H9RqgxaFTt9B2Ln4FZ/mmBU/OkHmx72oY1BLlYfgZZksakTr/pMxmL51?=
 =?iso-8859-1?Q?Bsj/tq/cvTuv08auQkfD5jTzSTnn5OUhUHivJOuHDaH/9If8Zs0zF29nB3?=
 =?iso-8859-1?Q?o11yrJqoW+fZ+IloWtHEjlc6YrKKgQJgcK93b/kqTtJ5v4P8gv4ThnXaJZ?=
 =?iso-8859-1?Q?8Dc78zkA8pO0R5tfo9qwsBzgO6+whSGZc0Df2AnFpC2Y1sqxjiJNbTLfLH?=
 =?iso-8859-1?Q?2Mcq82bRUGhEdlAeK8vzZl1b3LzJdJCkYIwlbygci4Vv4Jp+XR5/VApKl3?=
 =?iso-8859-1?Q?RckD374Tut8z64+VgylknMPtjyM5TI2wmZEE9ibO8pS30JYMx6zzVZotg6?=
 =?iso-8859-1?Q?0HteN21olD7rW+Oi/9AxfxdvsQafGv1fHriGMB9CGZMftm0mIZmgVO7/+S?=
 =?iso-8859-1?Q?EhhuOcqntbRzWNzarWS2mJRhmlqe+Ebl3mxSg+wYze6EMF/+njpmxnLmNn?=
 =?iso-8859-1?Q?CvDxEw6YeY9IzxkwfGIFDRL3j9Pk2yYaazMfGaozE+y1OriveHyiV4cX18?=
 =?iso-8859-1?Q?UuD15DKRTWBEKjpz06gM6+llENi1Mt4OD2I6k3xrF4cCeiEO8zVe8xC/Q/?=
 =?iso-8859-1?Q?S7LGuxpX/xYsXI96hhOsvuViDMJHdNkD2IGgC5CATnjZjAa+SEnQQz7zHJ?=
 =?iso-8859-1?Q?dtpmYdwdtZsNKK01XPGKM2ohEtpFJap60H/kMRtJba9g=3D=3D?=
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)(42112799006)(376014)(7416014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?T/ZyZntNhEOm1tYHiHrrETN/wmL/+lc02rL3/R6y7WyOTHuAX5ESJBwn/7?=
 =?iso-8859-1?Q?K4LWIgYcR1hNjvstlHQlTnEtf+JnqyRnoRlouvwbibFJ75ToWzv57vnchC?=
 =?iso-8859-1?Q?ndz+4wu4nojQHdB+kavclGpHWRMMyZruKa/0Y+5qoi8WehgPzT5YpWjpdk?=
 =?iso-8859-1?Q?3duPJkEjX/1cmtn27qkjMHyiCXWpdOSZ9yEni4nsnQltug5H7NAZmOwgm7?=
 =?iso-8859-1?Q?LWB5EbjAWCFyV5e6rVC6UAVuuo3QL/DM+dB3zEy2DrLriM9yuowMgZqRrp?=
 =?iso-8859-1?Q?wHqpLSBsry9rcRal7jCsAy4CTC4l5bjBVkxp1dzNmewnBBYaWY8H6uADZL?=
 =?iso-8859-1?Q?MGtbPgYdSgzQBmqZgrAThGkPGaX2Y80Mk3kgF94jdTsnqoRK13FA3SswqM?=
 =?iso-8859-1?Q?A51Mouo99Yt5OD2QVKBwpUK1DjYzN+96MwnMjnkaUf5QeOk35Z4oMB2trn?=
 =?iso-8859-1?Q?b0hmfSpsRwudqGGwx3fC/VJAfNNehGg0HzyKGtmQTUy+RPSDBNiCrroDzV?=
 =?iso-8859-1?Q?piCVoH43WEsjkdMT1HXyBqfXlQGgXabR5CHM7fvdBYPohNHq0W1F5zgiOe?=
 =?iso-8859-1?Q?y06GutTRgIooP4u12k9eTl9+38ehXJ2kM4rCju0z+y2+mTnsuc4A6pgzaH?=
 =?iso-8859-1?Q?XlQyrFHJCasyDUiNMF2nZ7Hg+d1ub/1ReVWzFZMSkj9UeoL6ey153VR2q6?=
 =?iso-8859-1?Q?qMNsplaVzi4SHDZVUL5P2KdVHhK6i2+v4GK4+tT6Do7uXc04Yuxcgy8Xtx?=
 =?iso-8859-1?Q?g2anaCQSoegcU0/NEcIf8hs4HHHcs2Wqxu5SG3ZH+T6shF6K1x9U2AauLo?=
 =?iso-8859-1?Q?mWc1vvTPzKnYFyyZMSBh8yvnCuMPqiH5EkQ0KPBdpOtnY2pnnqNNpf9w99?=
 =?iso-8859-1?Q?8q8CBut1PRhxXg5F+ak+BT2chhjPA9Stl8W05ZDBTR/91tum0d/33RkMUq?=
 =?iso-8859-1?Q?Bx4hSnGD2ZQAKvz6hv2xEDs9MuCu7crV3YEqgk5gwi9gCnkNij6qoohcno?=
 =?iso-8859-1?Q?ZqQDAp21eECV7l4hMK3SsDYYH5QcDZvwyFK8S1xBMU7TQdMeFmVhnFagtV?=
 =?iso-8859-1?Q?v6i8K5Ruf5fSP+QocLbOjuhCJtZLLtx/cu52ACZZy0BDIpVBE376B2YtPo?=
 =?iso-8859-1?Q?ukRSdXGI4poo6L3Ayfd+DJoxH1EJgHcIrL6JFvOTO9Ye8M4UrXAV6YO36m?=
 =?iso-8859-1?Q?l0XE8URRQ+Vjmk/yrYGowWo9UOiCLQKWhEejmPY3nn416fgeYDx3lMm93t?=
 =?iso-8859-1?Q?9uyQBCMYnVkNQAy975Z4yptOVdHWjpWVC4/yMKGMNwQagFen5pM6LpANis?=
 =?iso-8859-1?Q?hPgdLNX2Tt+3p5iggqZIZL/rVfdJL1AMNmb+qQU40eSwGF8GHuBJByThiZ?=
 =?iso-8859-1?Q?Zbcjo+2OvVDlvirFN5vpAH4E5Q365v4s/7ItatICHmwGUCvgrDDckob0wt?=
 =?iso-8859-1?Q?v/rPDO3wcaXeIPD1bBVdq7Gq/UwSfyVxLlsaUcA6yUnBG4cF4HiRJtekpL?=
 =?iso-8859-1?Q?j9EPbtnVHhB6pStvZPfPdgLirxNTDR8fIwaBQWsBdCPpVnPO151lMl4Vye?=
 =?iso-8859-1?Q?EkLhMd03bkEtRcAtFS3CE0MM501IJUqODZXSUcK2ZRFMggnz/FTSigLVLe?=
 =?iso-8859-1?Q?2PGiHjGcjDgEDBByAndVisCDectQwDa+1k5gQLjUTsWs0IA4sCY3wWfg?=
 =?iso-8859-1?Q?=3D=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: 1d0136b2-e461-4f19-d097-08dde1df70b8
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Aug 2025 00:53:14.1485
 (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: YxRiXwc2/PnwUjn3t5pZEEsbv5h7S1jtUPkZFvg37o5sOaXSJ45VSAUGKd/K3coJeWWSNbIAP19AWCfSWNgCyN1p+f7PsPMaRYveRVy/S8Q=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB8957

Hi Jan,

Jan Beulich <jbeulich@suse.com> writes:

> On 11.08.2025 22:48, Mykola Kvach wrote:
>> --- a/xen/common/domain.c
>> +++ b/xen/common/domain.c
>> @@ -1311,7 +1311,11 @@ int domain_shutdown(struct domain *d, u8 reason)
>>          d->shutdown_code =3D reason;
>>      reason =3D d->shutdown_code;
>> =20
>> +#if defined(CONFIG_SYSTEM_SUSPEND) && defined(CONFIG_ARM)
>> +    if ( reason !=3D SHUTDOWN_suspend && is_hardware_domain(d) )
>> +#else
>>      if ( is_hardware_domain(d) )
>> +#endif
>>          hwdom_shutdown(reason);
>
> There better wouldn't be any #ifdef here. Afaict you can easily use
> IS_ENABLED(CONFIG_SYSTEM_SUSPEND). For CONFIG_ARM, though, I think some
> new abstraction will need adding. E.g. HAS_HWDOM_SUSPEND (with want for
> a better, yet not overly long name).
>
> With the hwdom / ctldom separation work in mind I wonder though if it's
> really hwdom to be in charge of initiating system suspend. Imo
> conceptually that rather would want to be ctldom. Stefano?

I am not Stefano, but IMO, this should be ctldom. But only after hwdom
is already suspended, otherwise we'll have problems with devices.

It is unclear which entity should check if hwdom is already suspended,
though. Should be it be ctldom or Xen itself?

And if we already speaking of devices... There can be domains with
passed-through devices. Those domains should be suspended properly, not
just freezed. I think this requires another TODO.

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Sat Aug 23 01:00:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Aug 2025 01:00:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090851.1447937 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upccD-0003to-Rc; Sat, 23 Aug 2025 01:00:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090851.1447937; Sat, 23 Aug 2025 01:00:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upccD-0003tB-OZ; Sat, 23 Aug 2025 01:00:17 +0000
Received: by outflank-mailman (input) for mailman id 1090851;
 Sat, 23 Aug 2025 01:00:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Yyzx=3D=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1upccC-0003G2-8e
 for xen-devel@lists.xenproject.org; Sat, 23 Aug 2025 01:00:16 +0000
Received: from GVXPR05CU001.outbound.protection.outlook.com
 (mail-swedencentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c202::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8716e7e5-7fbc-11f0-a32b-13f23c93f187;
 Sat, 23 Aug 2025 03:00:14 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by DU0PR03MB8957.eurprd03.prod.outlook.com
 (2603:10a6:10:475::11) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.19; Sat, 23 Aug
 2025 01:00:11 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9052.014; Sat, 23 Aug 2025
 01:00: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>
X-Inumbo-ID: 8716e7e5-7fbc-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Mn7LFo3at0OFVLimTKq6naFziCiNUX4AMdSZpk9/GsHqAwMWLZjTDlCHH2/QOaZZsOr/s/akr2XHm1sF4qGbktW5S/4lyRY0DtHuBN44Z8jfNZmO87Uod16ccZZ6kPrmw3gkhTJezFYabyXgqDADwIB7seJXXPOsyqvF77aAA+eHukMs6HoHMxfF1eSSz7odDc4Oyp2hpF6RpW9pcZFrL4Gr1l9djiUvV5kgdpNi2q8uPepH1ALfMFjc1PVUa832ElqLogDv4YyDgj+K2pr7QkF0z8Al7CBx4cGfpWRWMRSYq9nK721JEEolkdc2LyAegTv4Hunefv9sPYkCYAdCyQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=FP2iG+XGnhGxacDewf6AQm7kuoYd8AZ/cXhmz0W95h4=;
 b=MKKIuR2e2ePDB9tfdgspoqaL0sAuKqv5xvP8sTJPCB5b5RKvAUIAr9JL69z35xgbs4HiYwLxig3GTm6cE7FbgwFdAO7Prc+XvvBLVEsWm0Oh7VqYw0hca2v6TuZhak3jW1qmc4pAKAmqbCHk1eavwoqBcJhJnLmZkC2Qs1zPMPDpJ31795ypNQ2yJXh5kJbjPUcUtLjFXW2btPSWxDMzSKTd4mthh1J49Y9gqX7FwRB0lXSmaU83K2M29jD4Qei+EUFIfLrvcCkpcbczklr1nyI24oz1Jap+yRJap5/AZ7fenFT4h8F4ZWB3x9+utvJiMkUMRls2EJJ0vQbcqwSeNw==
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=FP2iG+XGnhGxacDewf6AQm7kuoYd8AZ/cXhmz0W95h4=;
 b=FJn3OWJf5xBv6ZZ5fFS3K4Qi5V19eTy0zb7ZEmjOW7pmarRC5oXwsVFPYqeVyA0H0sjVOk11PYHOjfNsGek/88E6iNWMZ54PnMtelxWNvdbiB2D1C5WwhuXUovuDaYeAJfTsmN2GBNQZ9GCTlxBiVq8Mfyi862H6JZ7O3deZQsJKlNrjH0W0FD4xxDl3x3W2Ps+6efYlZCHkz3ULvQGzsTWkMtzFZjW73VdA7d35niExZuQDdOszOXYxrhK/84SVuRDDeQpeSGexSFoXoP3FAVSa+74OotPXlpkQZhKIZmMAmQgG3+irMx/+xpMqcN2HhgiiOE5AAAgRi2paSIO50w==
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>, Mirela
 Simonovic <mirela.simonovic@aggios.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>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Saeed Nowshadi
	<saeed.nowshadi@xilinx.com>, Mykyta Poturai <Mykyta_Poturai@epam.com>, Mykola
 Kvach <Mykola_Kvach@epam.com>
Subject: Re: [PATCH v5 07/12] xen/arm: Add support for system suspend
 triggered by hardware domain
Thread-Topic: [PATCH v5 07/12] xen/arm: Add support for system suspend
 triggered by hardware domain
Thread-Index: AQHcCwFfU+9GQNRu4k2nrD5uWqCz7A==
Date: Sat, 23 Aug 2025 01:00:11 +0000
Message-ID: <87ms7q97j9.fsf@epam.com>
References: <cover.1754943874.git.mykola_kvach@epam.com>
	<c995126a9a61aecff7cb9a7c6fd28f091a332443.1754943875.git.mykola_kvach@epam.com>
In-Reply-To:
 <c995126a9a61aecff7cb9a7c6fd28f091a332443.1754943875.git.mykola_kvach@epam.com>
	(Mykola Kvach's message of "Mon, 11 Aug 2025 23:48:03 +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_|DU0PR03MB8957:EE_
x-ms-office365-filtering-correlation-id: 4c781c50-62da-440e-32cd-08dde1e069a1
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|42112799006|376014|7416014|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?/6BL1+xZ2s3JwWO3mJZzePVW8a3Ek6i6h8FrtOcbj/dPMJXWI145M/JLKy?=
 =?iso-8859-1?Q?R16mB3GvV3NqMGh7l6HHbgEdJ8gcosFFHJ9ogHebrxmf85op2Qaxsddbzi?=
 =?iso-8859-1?Q?2FrhbaHG+hVZirYYt+N6JBKJI35ZuMrhu/48JtuZ055RBPqidzPWx3pRih?=
 =?iso-8859-1?Q?UC5eW8xzKxdDH1GyGVQvsT1dKI0giwRd0DqRKKkRKom667O7qv7I/6Y/Ng?=
 =?iso-8859-1?Q?5JktwaKzopVo4D7txXs6sGsVW2zQ/kryMBmywDTqNeNcxlkZGUOzi3Em2o?=
 =?iso-8859-1?Q?yLtMo0mhNwKHvV4foKYMx7/SOnxl4LwjiCwaUpIUl+LnpLaZdcXeAsdP1t?=
 =?iso-8859-1?Q?j/bT3apcWqKj1VvFdtIbE8AthTudTzwOEtZzo6Q1SqdgUhqRYbaahct0xa?=
 =?iso-8859-1?Q?rV3fhayrAzrfuP0S7I6S/VegVMMNhnm0D+BMMow0PFGn14k6nMX7VxH5sh?=
 =?iso-8859-1?Q?sLLpb3QGDZTQNox5KHjfq5bpm08a2DFE0kFnNbjS/A5sixFPdkhnTMVRpz?=
 =?iso-8859-1?Q?DjtyHPrRO5xWHt7opwWVwz3tTQS+Tj4E0yKD9cIWpZVjgvr5mlazpuPrFH?=
 =?iso-8859-1?Q?R8RLGuGiHE2VY17483sBKPBZCQReZg2iYlzcvEhJeci/pVbpDWtqTPJVoa?=
 =?iso-8859-1?Q?/JJ8K05pnoj02i6BIflVi5duvDXp9j+coNcGYqBC24bkutKsU6ZrXXaErp?=
 =?iso-8859-1?Q?PI85pTxDcIse+p/AwZJxYd29URcz4K6CX7dgRQHQHeH+w6nNn1Qk8cl9Gd?=
 =?iso-8859-1?Q?g10EiTVvB8yEepSg4gsQqskmtLnUdusrq5I8ZPmJiNUW7fpCbIzv8ir+kf?=
 =?iso-8859-1?Q?6nzx/kB/teUrM52pfzJbGWaQ0ml3+IaQQ36wUhUN9y6iA4VWH75sPthlYM?=
 =?iso-8859-1?Q?pLaCLkdwOwE+c1MiBQ7iNcABLFwuCY2/mcHuhtdsRq4RfczXX3neLQ3bPb?=
 =?iso-8859-1?Q?eQnqYuuNf5rxTXkDaAiLz0HM0XRjugYiQHWqj/2HLd2OC6cwu236u0zlan?=
 =?iso-8859-1?Q?YLvr0LOVrHIFxbpv1HmWGWLS1l4Iu+0SLgIY6NTAtvTAzmYwXTdC4kyzMQ?=
 =?iso-8859-1?Q?EOPoYoJvV0MM4HgualWlK6vWKhsKICOkTfOfQLJ1VvgYFtJeV0CrVq2YfW?=
 =?iso-8859-1?Q?TtgXhfh6XfcnJ9bCsRi2AEtJQxRJpzlr7zD9u2CeWF5T1aQCh7/tt35AjQ?=
 =?iso-8859-1?Q?kT5ma53zmR2eyfeqKeJ8vMa7FGVOxP51JzFVdbUHJ6y5qnsNt8Fn3da7+z?=
 =?iso-8859-1?Q?o8N5uCYbQOnf78YQcgbsosiOOAwl+OmdNHZsjGPdqkxpD17dyzqI254jgM?=
 =?iso-8859-1?Q?SpQoKH8KzLtm5QzKENa74w5QUabWo1BF7QnPrMNZejThdoCv3z4y7uNeuW?=
 =?iso-8859-1?Q?yrlYe0AOJTPVCeiJiQoMyCac/KSIv1sdn1T/DS8bolJm2+56crA1BhK4Kr?=
 =?iso-8859-1?Q?9XIGCwSKpTXNMfp0gFsHn5pPTd6eRn86q6qSuaJN0uJUAZr2zkoPzsMjJZ?=
 =?iso-8859-1?Q?ygFdVpiCraLY1xgvOuOwhZQTVJryY711JrOLYY9Q8hbg=3D=3D?=
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)(42112799006)(376014)(7416014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?BQnJOv0m9f3v0Z5T1E8WF8n5eLyMLAoHF0pKo13ba5icCo+YFU0Wsri6u8?=
 =?iso-8859-1?Q?3Greg7RiMcQhXWhAeqNQYazV89o91qZH3/gJh5PzQMblXOjsy/af4HZOU1?=
 =?iso-8859-1?Q?k7idxk7vbu9ylifPqQrQiOSaFyu+5DunZK4KmY58FEfklLjugNpeFIeSIv?=
 =?iso-8859-1?Q?PVwWC4xj1hMa37/5Iv7bbasFDU3jPrnCTbZKUoGS8D4fE2z4hyqRzv4Z7f?=
 =?iso-8859-1?Q?yW3YiUg6Q47qwynyoQJkHxA6kg3eTZFPvGC24Nc/+gpktZ97yunLNgjMsv?=
 =?iso-8859-1?Q?pGV23AbhiHu9u0HQ+b6aANi40Eccw6J/FvgnAtMUt7Ac3LVBL+yEZGiW+w?=
 =?iso-8859-1?Q?ynGQE65phsmBiAyzheZ8KWx1OCM9grwBXF+MrUH+iGuuhzAZhV2acZtbkc?=
 =?iso-8859-1?Q?GUukjVe492c7vDlYXthzVxpdezRfbg/hJvXemsZg4VlfYeL/8Je/zKBhqS?=
 =?iso-8859-1?Q?xbYYtgV54p3WvsN0MaOEzcH7C4BnDByHEZtb4YhN8E7fLd3RplBBZcpcoO?=
 =?iso-8859-1?Q?NAwZZteT5szFtFu+PkW2gG+SJf63dZ4npFDRCR3+rCEyOmTaUiQdvLGW94?=
 =?iso-8859-1?Q?pbaVnkZXQ9D5UkW8088mNJsgdoKOYCBQWmOYkMSm2ThM7sr35CbmX68ZlI?=
 =?iso-8859-1?Q?ppxySYrwZDYugrLw+DCfPA0eqTKwABxF4pWpincKKEi9pWiH1jCqkyEo6a?=
 =?iso-8859-1?Q?lh8vK6rsAfIr/6iTw3/SSqVmnnS7NaMtZV8Oh3xmV5rOstzGgG0riZl91M?=
 =?iso-8859-1?Q?OjDThHhJEmufp+ed1AS04JKAUdiBiBtQEj1GdQQf8nTjgnhf7K16jrknSJ?=
 =?iso-8859-1?Q?6ko4632VAobruxfOd6La9S1CgD+r8BorgJfV1P6/zBce8P5k2DKrzxNP8b?=
 =?iso-8859-1?Q?oWodI2zwDMeZQedGwJDstoT2JLQ7lgPy9UO/C/xRvKl4QsAn4EUIok80af?=
 =?iso-8859-1?Q?u7yQnlODPhh+Alre0zuWKo1mFmyciHGxDE/a3dVUoGTBgTsB3fDAFPJSBu?=
 =?iso-8859-1?Q?gq8jrliDH8KWNGNmDZZlXdUG5wLGavAtzCco3uSbIyrUxhpIcuKDvwfB7r?=
 =?iso-8859-1?Q?zCS0tL6efIeTWKmAhLrb228bys5lsX+x9ZBDR7DXs8902Pc0ZWJCp77RZa?=
 =?iso-8859-1?Q?9B+SwfrFjlVbXIVViRXT5IJjDgKaASoLw3df0sr62EIvHb+pgmcartDyj6?=
 =?iso-8859-1?Q?FkMva9Esv+injSk7oHBsyM3zyJDeeeckRiRDHi9fNdpR5ZKflYjHc3GKLQ?=
 =?iso-8859-1?Q?rt+E1g9gao8Iru+n6I0FMiOsTHTWmS2zh8enJd/P21/yK1y26OLyE8i4s4?=
 =?iso-8859-1?Q?x4igWHf6FA1WBX8rWXo9JfN5zVKE2PXEig4n522t4geFCnN9BIzmHfKEQO?=
 =?iso-8859-1?Q?ZvXdjayR0GPYkCv2Zsb3dYLmA85OIygf6oMBSgzBwssItxPa1SU5u8RoDZ?=
 =?iso-8859-1?Q?6LQrBXyTQjh3Em4S0AO8l3fy5nx/X/hLz/a7t6RUSOEOt5J9ZB/GdqrU4j?=
 =?iso-8859-1?Q?Y7y6K1W974AZfg69kW07OD0XBfBMNlBoIvxRqJDmzBI64xHc56VnrH1r6H?=
 =?iso-8859-1?Q?qlDxyhqFXhWDDREYypGqE/nj+RlU5BitPSUYdzRL8bOVeuI4Kg14Gm7+tm?=
 =?iso-8859-1?Q?AqhC6tMXtCg+sINjd/58/F+JQLxmKrtVPXYDfjUHv3kANlbkbDZlAc3Q?=
 =?iso-8859-1?Q?=3D=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: 4c781c50-62da-440e-32cd-08dde1e069a1
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Aug 2025 01:00:11.7482
 (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: mJy9d4YentVwA/Jp3e81HTiE1HWT528V77R1/es+D8CmvYD6MVu9i/fOgwVhUeS2R0/plHeot3FlrlqYMnnQIlw0sdpNaX3h6dvL/608C7s=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB8957

Hi Mykola,

Mykola Kvach <xakep.amatop@gmail.com> writes:

> From: Mirela Simonovic <mirela.simonovic@aggios.com>
>
> Trigger Xen suspend when the hardware domain initiates suspend via
> SHUTDOWN_suspend. Redirect system suspend to CPU#0 to ensure the
> suspend logic runs on the boot CPU, as required.
>
> Introduce full suspend/resume infrastructure gated by CONFIG_SYSTEM_SUSPE=
ND,
> including logic to:
>  - disable and enable non-boot physical CPUs
>  - freeze and thaw domains
>  - suspend and resume the GIC, timer and console
>  - maintain system state before and after suspend
>
> Remove the restriction in the PSCI interface preventing suspend from the
> hardware domain.
>
> Select HAS_SYSTEM_SUSPEND for ARM_64.
>
> 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 v5:
> - select HAS_SYSTEM_SUSPEND in ARM_64 instead of ARM
> - check llc_coloring_enabled instead of LLC_COLORING during the selection
>   of HAS_SYSTEM_SUSPEND config
> - call host_system_suspend from guest PSCI system suspend instead of
>   arch_domain_shutdown, reducing the complexity of the new code
> - update some comments
>
> Changes introduced in V4:
>   - drop code for saving and restoring VCPU context (for more information
>     refer part 1 of patch series)
>   - remove IOMMU suspend and resume calls until they will be implemented
>   - move system suspend logic to arch_domain_shutdown, invoked from
>     domain_shutdown
>   - apply minor fixes such as renaming functions, updating comments, and
>     modifying the commit message to reflect these changes
>   - add console_end_sync to resume path after system suspend
>
> Changes introduced in V3:
>   - merge changes from other commits into this patch (previously stashed)=
:
>     1) disable/enable non-boot physical CPUs and freeze/thaw domains duri=
ng
>        suspend/resume
>     2) suspend/resume the timer, GIC, console, IOMMU, and hardware domain
> ---
>  xen/arch/arm/Kconfig               |   1 +
>  xen/arch/arm/Makefile              |   1 +
>  xen/arch/arm/include/asm/suspend.h |  22 +++++
>  xen/arch/arm/suspend.c             | 151 +++++++++++++++++++++++++++++
>  xen/arch/arm/vpsci.c               |  12 ++-
>  xen/common/domain.c                |   4 +
>  6 files changed, 190 insertions(+), 1 deletion(-)
>  create mode 100644 xen/arch/arm/include/asm/suspend.h
>  create mode 100644 xen/arch/arm/suspend.c
>
> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
> index a0c8160474..ccdbaa5bc3 100644
> --- a/xen/arch/arm/Kconfig
> +++ b/xen/arch/arm/Kconfig
> @@ -8,6 +8,7 @@ config ARM_64
>  	depends on !ARM_32
>  	select 64BIT
>  	select HAS_FAST_MULTIPLY
> +	select HAS_SYSTEM_SUSPEND if UNSUPPORTED
>  	select HAS_VPCI_GUEST_SUPPORT if PCI_PASSTHROUGH
> =20
>  config ARM
> diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
> index f833cdf207..3f6247adee 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/include/asm/suspend.h b/xen/arch/arm/include/as=
m/suspend.h
> new file mode 100644
> index 0000000000..78d0e2383b
> --- /dev/null
> +++ b/xen/arch/arm/include/asm/suspend.h
> @@ -0,0 +1,22 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#ifndef __ASM_ARM_SUSPEND_H__
> +#define __ASM_ARM_SUSPEND_H__
> +
> +#ifdef CONFIG_SYSTEM_SUSPEND
> +
> +int host_system_suspend(void);
> +
> +#endif /* CONFIG_SYSTEM_SUSPEND */
> +
> +#endif /* __ASM_ARM_SUSPEND_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/arm/suspend.c b/xen/arch/arm/suspend.c
> new file mode 100644
> index 0000000000..abf4b928ce
> --- /dev/null
> +++ b/xen/arch/arm/suspend.c
> @@ -0,0 +1,151 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#include <xen/console.h>
> +#include <xen/cpu.h>
> +#include <xen/llc-coloring.h>
> +#include <xen/sched.h>
> +
> +/*
> + * TODO list:
> + *  - Test system suspend with LLC_COLORING enabled and verify functiona=
lity
> + *  - Implement IOMMU suspend/resume handlers and integrate them
> + *    into the suspend/resume path (IPMMU and SMMU)
> + *  - Enable "xl suspend" support on ARM architecture
> + *  - Properly disable Xen timer watchdog from relevant services
> + *  - Add suspend/resume CI test for ARM (QEMU if feasible)
> + *  - Investigate feasibility and need for implementing system suspend o=
n ARM32
> + */
> +
> +/* Xen suspend. Note: data is not used (suspend is the suspend to RAM) *=
/
> +static long system_suspend(void *data)
> +{
> +    int status;
> +    unsigned long flags;
> +
> +    BUG_ON(system_state !=3D SYS_STATE_active);
> +
> +    system_state =3D SYS_STATE_suspend;
> +    freeze_domains();
> +    scheduler_disable();
> +
> +    /*
> +     * Non-boot CPUs have to be disabled on suspend and enabled on resum=
e
> +     * (hotplug-based mechanism). Disabling non-boot CPUs will lead to P=
SCI
> +     * CPU_OFF to be called by each non-boot CPU. Depending on the under=
lying
> +     * platform capabilities, this may lead to the physical powering dow=
n of
> +     * CPUs. Tested on Xilinx Zynq Ultrascale+ MPSoC (including power do=
wn of
> +     * each non-boot CPU).

I don't think that the last part of the comment is relevant in upstream.

> +     */
> +    status =3D disable_nonboot_cpus();
> +    if ( status )
> +    {
> +        system_state =3D SYS_STATE_resume;
> +        goto resume_nonboot_cpus;
> +    }
> +
> +    time_suspend();
> +
> +    local_irq_save(flags);
> +    status =3D gic_suspend();
> +    if ( status )
> +    {
> +        system_state =3D SYS_STATE_resume;
> +        goto resume_irqs;
> +    }
> +
> +    printk("Xen suspending...\n");
> +
> +    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_console;
> +    }
> +
> +    /*
> +     * Enable identity mapping before entering suspend to simplify
> +     * the resume path
> +     */
> +    update_boot_mapping(true);
> +

This puzzles me. I expected actually PSCI suspend call here.

> +    system_state =3D SYS_STATE_resume;
> +    update_boot_mapping(false);
> +
> + resume_console:
> +    console_resume();
> +    console_end_sync();
> +
> +    gic_resume();
> +
> + resume_irqs:
> +    local_irq_restore(flags);
> +    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_percpu_=
area()
> +     * has to be called before the init_percpu_area()). This scenario oc=
curs
> +     * when non-boot CPUs are hot-unplugged on suspend and hotplugged on=
 resume.
> +     */
> +    rcu_barrier();
> +    enable_nonboot_cpus();
> +    scheduler_enable();
> +    thaw_domains();
> +
> +    system_state =3D SYS_STATE_active;
> +
> +    /* The resume of hardware domain should always follow Xen's resume. =
*/
> +    domain_resume(hardware_domain);
> +
> +    printk("Resume (status %d)\n", status);
> +    return status;
> +}
> +
> +int host_system_suspend(void)
> +{
> +    int status;
> +
> +    /* TODO: drop check after verification that features can work togeth=
er */
> +    if ( llc_coloring_enabled )
> +    {
> +        dprintk(XENLOG_ERR,
> +                "System suspend is not supported with LLC_COLORING enabl=
ed\n");
> +        return -ENOSYS;
> +    }
> +
> +    /*
> +     * system_suspend should be called when Dom0 finalizes the suspend
> +     * procedure from its boot core (VCPU#0). However, Dom0's VCPU#0 cou=
ld
> +     * be mapped to any PCPU (this function could be executed by any PCP=
U).
> +     * The suspend procedure has to be finalized by the PCPU#0 (non-boot
> +     * PCPUs will be disabled during the suspend).
> +     */
> +    status =3D continue_hypercall_on_cpu(0, system_suspend, NULL);
> +
> +    /*
> +     * If an error happened, there is nothing that needs to be done here
> +     * because the system_suspend always returns in fully functional sta=
te
> +     * no matter what the outcome of suspend procedure is. If the system
> +     * suspended successfully the function will return 0 after the resum=
e.
> +     * Otherwise, if an error is returned it means Xen did not suspended=
,
> +     * but it is still in the same state as if the system_suspend was ne=
ver
> +     * called. We dump a debug message in case of an error for debugging=
/
> +     * logging purpose.
> +     */
> +    if ( status )
> +        dprintk(XENLOG_ERR, "Failed to suspend, errno=3D%d\n", status);
> +
> +    return status;
> +}
> +
> +/*
> + * Local variables:
> + * mode: C
> + * c-file-style: "BSD"
> + * c-basic-offset: 4
> + * indent-tabs-mode: nil
> + * End:
> + */
> diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
> index 67d369a8a2..757e719ea7 100644
> --- a/xen/arch/arm/vpsci.c
> +++ b/xen/arch/arm/vpsci.c
> @@ -4,6 +4,7 @@
>  #include <xen/types.h>
> =20
>  #include <asm/current.h>
> +#include <asm/suspend.h>
>  #include <asm/vgic.h>
>  #include <asm/vpsci.h>
>  #include <asm/event.h>
> @@ -214,9 +215,10 @@ static int32_t do_psci_1_0_system_suspend(register_t=
 epoint, register_t cid)
>      struct vcpu *v;
>      struct domain *d =3D current->domain;
> =20
> -    /* SYSTEM_SUSPEND is not supported for the hardware domain yet */
> +#ifndef CONFIG_SYSTEM_SUSPEND
>      if ( is_hardware_domain(d) )
>          return PSCI_NOT_SUPPORTED;
> +#endif
> =20
>      /* Ensure that all CPUs other than the calling one are offline */
>      domain_lock(d);
> @@ -234,6 +236,14 @@ static int32_t do_psci_1_0_system_suspend(register_t=
 epoint, register_t cid)
>      if ( rc )
>          return PSCI_DENIED;
> =20
> +#ifdef CONFIG_SYSTEM_SUSPEND
> +    if ( is_hardware_domain(d) && host_system_suspend() )
> +    {
> +        domain_resume_nopause(d);
> +        return PSCI_DENIED;
> +    }
> +#endif
> +
>      rc =3D do_setup_vcpu_ctx(current, epoint, cid);
>      if ( rc !=3D PSCI_SUCCESS )
>      {
> diff --git a/xen/common/domain.c b/xen/common/domain.c
> index c3609b0cb0..414a691242 100644
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -1311,7 +1311,11 @@ int domain_shutdown(struct domain *d, u8 reason)
>          d->shutdown_code =3D reason;
>      reason =3D d->shutdown_code;
> =20
> +#if defined(CONFIG_SYSTEM_SUSPEND) && defined(CONFIG_ARM)
> +    if ( reason !=3D SHUTDOWN_suspend && is_hardware_domain(d) )
> +#else
>      if ( is_hardware_domain(d) )
> +#endif
>          hwdom_shutdown(reason);
> =20
>      if ( d->is_shutting_down )

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Sat Aug 23 01:06:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Aug 2025 01:06:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1090865.1447947 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upciW-0007Es-KG; Sat, 23 Aug 2025 01:06:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1090865.1447947; Sat, 23 Aug 2025 01: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 1upciW-0007El-HV; Sat, 23 Aug 2025 01:06:48 +0000
Received: by outflank-mailman (input) for mailman id 1090865;
 Sat, 23 Aug 2025 01:06:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Yyzx=3D=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1upciV-0007Ef-VD
 for xen-devel@lists.xenproject.org; Sat, 23 Aug 2025 01:06:48 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6db7e384-7fbd-11f0-b898-0df219b8e170;
 Sat, 23 Aug 2025 03:06:41 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by DB5PR03MB10169.eurprd03.prod.outlook.com
 (2603:10a6:10:4a0::19) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Sat, 23 Aug
 2025 01:06:38 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9052.014; Sat, 23 Aug 2025
 01:06: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>
X-Inumbo-ID: 6db7e384-7fbd-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BY2fDkfhFTCzcbdFUYrPkC6et5NTPTVUnWBZgMi85IkUsWTxkCjjtH57o5FQXGp9XQ4hKmvtKCHLf3tYr8D3NOCeeKXev/2QJ3SoXDfEGL4A/0F0E4wg2gYZZASlyEJVKr+WBro0xuZsZ0py42SPTMjgcEUiRzXartrrn0lXQyE9bTnf/vftwiN+UEZEI5B2eMIr9KXAxZEbK1WIT94yEwDypjtOOfeqwltSThqzdBxWZ5NZTm3unMynDHCGWg/fhiUWOK08A7phc3AdX4nnb78t325T7wPm+5Vko5iAiwBehcr+GV3xuyhaisUDS/bHAQ+Ym4e3WU1gAIPO+q7JpA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+WnY7nwzPUXSXT0HkrIPAgazxZI2a5s0kkVzluMqLBk=;
 b=iwig7cA95faGHZqO6IU/YbiSI0OJfv9rpRADdw74phi35o50uTEkn/TR8HdDzH0m+q/MKX6e1eSzdSo70ezg0UrUuJ+xh09IatM2YbaHwrk+sdLDDbJ+kUMAWdPtFKoaRfn29vqg5eUmc2/vi+1ybM243htjgapizo1F2TMbzdo0Eu+6cujwU3Mcz79Yxl/ay4+dD0LaVikpYKOxsW+TcqFewkQUTAcZQip56G0hj4z4TlAbMB7AGK9+GtaxJr+i1ywIPmSjypMjqKRc4RUq+W3QYcCQp1CBYwATsBPMzdWZRADq0oXUi7OuyLQPVx9hpD2wlKbxutZzDTeDZ1q6eQ==
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=+WnY7nwzPUXSXT0HkrIPAgazxZI2a5s0kkVzluMqLBk=;
 b=HkevO7YtywJ+62Gl10E21hyzEDnVxL3rTczdrjv9yui8WPfA61uw/5S3bkruNPRkkTN3r1OyPdfxKsdhoBdkhJhLN1dOmmNnKhCrt0w0c4l3AZS0cU0G04Xbj2duDzUI/4Bl47YpoMiH3SvwDOQ1kzXt4Pkd9LNf1j9KMyTAEa3F+NIzx+KccbxN1tzdvJnUXmBN8GZ6OBCKOHHBNCdCRQbkQf5AFAs1ttHUmS3A1vnB38jxKM5KY6WzZLGhOLfu2fG6V0WKGAoUNY26MO6ts4+TDRQ3UY8bPxUvEq3k5+pKdYEnqKUbPFMQWncHSfQvWPNHzWDskzhQRD0e2WiEfA==
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>, Mirela
 Simonovic <mirela.simonovic@aggios.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Saeed
 Nowshadi <saeed.nowshadi@xilinx.com>, Mykyta Poturai
	<Mykyta_Poturai@epam.com>, Mykola Kvach <Mykola_Kvach@epam.com>
Subject: Re: [PATCH v5 08/12] xen/arm: Implement PSCI SYSTEM_SUSPEND call
 (host interface)
Thread-Topic: [PATCH v5 08/12] xen/arm: Implement PSCI SYSTEM_SUSPEND call
 (host interface)
Thread-Index: AQHcCwFjs9ljm00LWEeeve/MOeNYjg==
Date: Sat, 23 Aug 2025 01:06:38 +0000
Message-ID: <875xee978i.fsf@epam.com>
References: <cover.1754943874.git.mykola_kvach@epam.com>
	<c5d6e20ff49fd9367c46e63b96e8a9aa687ffbd3.1754943875.git.mykola_kvach@epam.com>
In-Reply-To:
 <c5d6e20ff49fd9367c46e63b96e8a9aa687ffbd3.1754943875.git.mykola_kvach@epam.com>
	(Mykola Kvach's message of "Mon, 11 Aug 2025 23:48:04 +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_|DB5PR03MB10169:EE_
x-ms-office365-filtering-correlation-id: d6abc485-7153-4bff-1929-08dde1e14ff0
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|376014|1800799024|42112799006|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?WxQpYcbHk8xnEPlD6wvMzSj3A0T/XbEn+cx1zGk+DcTHkejH/ED/baZdtp?=
 =?iso-8859-1?Q?JmI/uBfVFAw7HvUuNUM3/y7zazoyoG1tBUiZcd08MHsqldfQU1HeTi6fr6?=
 =?iso-8859-1?Q?IaquOqQnMB2thbBTYhoPsKSMvQ9fKzoHYUZC0elSyb6dUUlieaplJJkZt1?=
 =?iso-8859-1?Q?tB4ZvZ03XDwEgcz6gN/zRpA6Y0dBtLtY0mr5Cl3qxga+Aqn0exqcLyp/cl?=
 =?iso-8859-1?Q?Actli2tHGZqrnQXQWZMqCby3KsO0VVCq+imI4GnTeCV/Z1cMEn4Nf6VoKf?=
 =?iso-8859-1?Q?filwvilPJTAZvM/eU+hDCtN6WkCfOTMyRD+CFXI0jA+pEHB/Tpv36pKFLC?=
 =?iso-8859-1?Q?382UAdQTtxXNlW/H6Pq+6pecQD2W0jtdPeJkJAFX8nOH1kWbXERRTgCHKq?=
 =?iso-8859-1?Q?lN0zgfNb4qOHtzsiPK0akVAHRCQH+KY4yNBX9cIb1YzLDLFvBQJ/dO0rJO?=
 =?iso-8859-1?Q?l+CSpgqbtti6w4Efi7U6WHpH/kwstWSYGXmmJqn1lm9jci5f6Mz98Sticb?=
 =?iso-8859-1?Q?cOi5tryGdIcrYJvKDPLTTd5YiZJd66ZwrOvhDHzDmC3Ubm0MlcK/+CbqY+?=
 =?iso-8859-1?Q?wtlGnCYe/2MztPeZmYi7wdP+PWXnQceY0tzV4Ws0GtonxyMqYaVhpgX/V8?=
 =?iso-8859-1?Q?rRapzDNOG2Pj5kAGNBAvChuF6t4P0bq3Pu23eubsXw98Ng62Up6o0jA927?=
 =?iso-8859-1?Q?3gRyo9q/8IZRwkZFVJP5LV3HGAyQwquj0fIGv2MMNlORgsms1i7K0fTnRA?=
 =?iso-8859-1?Q?GmvtZtGJvgXKNktm88WLoZoqC/nCVbO3CukXsrKZrKA2W4QM7D6XNIoo5X?=
 =?iso-8859-1?Q?5+S161FCjQbClcQVw56VCPGN3kw6/XbjATtBKvz8bUriG6IAcK6+7VIlPo?=
 =?iso-8859-1?Q?iz9dTUYt4loo38TseJbMhYRnU1A+FRJ5eAEHUpol5nS/8KxtfikQ0F7hU+?=
 =?iso-8859-1?Q?/c2B7PWFjxTNKjfMTNXKhiWrXQfLbZGTW3OYv00+kD56FGEhvdv7H+Pvse?=
 =?iso-8859-1?Q?Z+R67e9a8hp+rqzV2JB5p8ZIq1qK0I45saZ55FPxWujtRFkrfAfJRZRpzf?=
 =?iso-8859-1?Q?j3FVJ+R3xPp/V+aMQE1sjwRV/2ISwCdH1/iRTl9J2vdCFru3zy6+0dgIit?=
 =?iso-8859-1?Q?mXafLbiBcnvcrjx/iaNaM8aLMOSQGQOwko1XRd5cMQfvryLjGKbud3wTWs?=
 =?iso-8859-1?Q?cFqGFg087/Bs9aGBENM/qONsqjPaVmXVrLbnK4AAipAJVC/D11z6eoDCcp?=
 =?iso-8859-1?Q?GyIZJ/gUmdPSlWz4+OpdoZVjRkNSPcd8/IW6u2wyu3wgmg+ChE+PysMnQz?=
 =?iso-8859-1?Q?Oyz8iFtbz+T8nbVXsxgbHxidvXvcKN9lsV6qwHgpsuFv8CQAPuUDiuy4lj?=
 =?iso-8859-1?Q?fXX1celfh4WMGfrVS8eC6eUWij6ze2/kff5JbtTp45DxNljRjq+trlrT9v?=
 =?iso-8859-1?Q?WGTOiHK1jtN3UAQ8RhKyCOxExForC8ZCaslWVzpsGc0STsvJmk+86ChNQe?=
 =?iso-8859-1?Q?CuCZEpWNo2EZZ0nWxwSWRkuEg2x5b+89HNPKAAL6Msyw=3D=3D?=
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)(1800799024)(42112799006)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?qNvVTenASeHsgpUS65xgAmW5gJ4S9YY3lGqSVnRYWUWfEh6Fp+7QP0em+U?=
 =?iso-8859-1?Q?tYk5skQPfngN4zp3jpDA/KkjN1+B1mX+t/MYbCDYCs5dYu2Nq5wkVYrCTl?=
 =?iso-8859-1?Q?UPgSF+N9a8+uc7Gk9F25VjOS4QsAjbpBylLiv7yZjL5b1ikNESmKSIqcD/?=
 =?iso-8859-1?Q?7OMsAlNPCvrL3T8kr0XxITI5PfIwaKape/2M+LV73StJrDoVlA56BcReeQ?=
 =?iso-8859-1?Q?4IdUhyoEMSx42kF8zLGrCTmtokq+y/SWV4b6ki24ZpGKsX6AEIucf0lr+3?=
 =?iso-8859-1?Q?hsOpWbgcCDReK2YtRQtelldvCfxOfpKkzsiaNqGW7BmoECjLaj/uOfYHMN?=
 =?iso-8859-1?Q?5YvOT8A/q0FFvmUNz0h4O4/6WdICKCeCTYlLQfmkd6CCtnOJUiAhyJ+LgD?=
 =?iso-8859-1?Q?0CgC6M6MEI6Pihi5CpLzQmrXr+JrMc08SwF6VaXt3A+c3mFYcLr2sYOj4Z?=
 =?iso-8859-1?Q?u8wFhXHjFOThUYGtEpMVsy4qBpAsXlJ6ReNflxBA6UTiN4kWJUq9xf2qyv?=
 =?iso-8859-1?Q?wpdX38xJmt0DKakvzhoVywUEQh5g9H2knQbwsnaosFyHyIkuWPIaOOTS2h?=
 =?iso-8859-1?Q?vNaj6Dn7SOe0uK0dj4Pa480clOPJDR461TWGm4WGXx5CvBK/nsg60Dqo4k?=
 =?iso-8859-1?Q?AHfxee/tvEVU0/tSUZ9X7XQbUFZWeTFDlUtbsKOdBHfLQptyxz4hLySjjQ?=
 =?iso-8859-1?Q?zPp+U7BoiY8DMsqwNf/fQuzsvEOFGaao9zJKWJmraIr66SdeU0Lx4YywGg?=
 =?iso-8859-1?Q?y/VLJihnwOvzIuk0CZyWqfhBV4vWKik8TVHHUtNKHUkwFYzK0Atd3fyKUN?=
 =?iso-8859-1?Q?E87TdTRfDwEf/aZQu5K+EgRx2uZ4Iz1lyYg8cO6xBAB4avVGVu1f1j9a4a?=
 =?iso-8859-1?Q?ZTJOmKxEpufM1ZvXndXDM87W/F0jk4/Yc63pZwRkkqlAzJGp0vpL35XJII?=
 =?iso-8859-1?Q?TSOkB7ua9dj8mTcNaxd6FMbNqJ03r7Z3LjLETDIEBE+KwR21hRrlkvoAro?=
 =?iso-8859-1?Q?Uz3FV+Si0XXMLQHtGYqs8roPAS+35xWa0LD34EvVLCAOaF2aqwvXRZydZH?=
 =?iso-8859-1?Q?GCPervT/2ee7LCO7p6bd2EMciusl9v3diL01p/VqLajbi6uh36iLfSKU1C?=
 =?iso-8859-1?Q?SCcPTJ8rrjbBM8hkU12yLvdKwS4zWRUGqGhkrlONkGHH8gCKkiF8wdEkt5?=
 =?iso-8859-1?Q?KbhplFIk0y8igerjfQ4/64s/hm51hEvtOmuV1BJ7xhwvPZy5THtz7lI2mn?=
 =?iso-8859-1?Q?PsAkZqAU2V8mr0CJzmOxy3wfkROzfbXsd0v5UL9nY0MyBDeLuiZe6xIteq?=
 =?iso-8859-1?Q?yCeSjN9cgqvHDwyl/KG5/QbxfLb8/9Ja3vQ81y2rnAeEjSgCC/c0Yx7+Ap?=
 =?iso-8859-1?Q?6ZIsTqnDfA04E22ajzOjTMt89TIhB/gE8QVRdI9wOdgFjkpUZIBZRsAviK?=
 =?iso-8859-1?Q?6EYk44JossjH1qnLIU8ICTaZk6ZLzAR7gcAo6T4N0ujTnv234frXwxlanl?=
 =?iso-8859-1?Q?bAYZl6dwoHKxrMJhZ3zPeHueKcT7rF0riPrMVyU6PbwK0U9x2Jj9IhBK0F?=
 =?iso-8859-1?Q?oGb6qUfAHrWpySIv3aZmnaiRAMEITOBS+Ts1URDOpEsnxuNOr+nBM3nYmZ?=
 =?iso-8859-1?Q?h0dDByWx997Mv3p3xseIbdOgbwjxlMtPqm2FFVdNTgORg1eNSEIsc7xg?=
 =?iso-8859-1?Q?=3D=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: d6abc485-7153-4bff-1929-08dde1e14ff0
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Aug 2025 01:06:38.1219
 (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: BEEVtsbLXH/4fV4oVpTKWL1SMGmJZTZ55AzGb0xiLJhTNB4NaBpeB4u7fQXVe+smvsOchfdangDEhgAbzoBbzbJHJSuMbvo4El73WtBjzyg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR03MB10169


Hi Mykola,

Sequence of next 3 patches (and previous one) really puzzles me. Can you
first implement hyp_resume() function, then add PSCI_SYSTEM_SUSPEND call
and only then implement system_suspend() function? Why do this backwards?

Mykola Kvach <xakep.amatop@gmail.com> writes:

> From: Mirela Simonovic <mirela.simonovic@aggios.com>
>
> Invoke PSCI SYSTEM_SUSPEND to finalize Xen's suspend sequence on ARM64 pl=
atforms.
> Pass the resume entry point (hyp_resume) as the first argument to EL3. Th=
e resume
> handler is currently a stub and will be implemented later in assembly. Ig=
nore 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 v4:
>   - select the appropriate PSCI SYSTEM_SUSPEND function ID based on platf=
orm
>   - update comments and commit message to reflect recent changes
>
> Changes in v3:
>   - return PSCI_NOT_SUPPORTED instead of a hardcoded 1 on ARM32
>   - check PSCI version before invoking SYSTEM_SUSPEND in call_psci_system=
_suspend
> ---
>  xen/arch/arm/arm64/head.S          |  8 ++++++++
>  xen/arch/arm/include/asm/psci.h    |  1 +
>  xen/arch/arm/include/asm/suspend.h |  2 ++
>  xen/arch/arm/psci.c                | 23 ++++++++++++++++++++++-
>  xen/arch/arm/suspend.c             |  5 +++++
>  5 files changed, 38 insertions(+), 1 deletion(-)
>
> diff --git a/xen/arch/arm/arm64/head.S b/xen/arch/arm/arm64/head.S
> index 72c7b24498..3522c497c5 100644
> --- a/xen/arch/arm/arm64/head.S
> +++ b/xen/arch/arm/arm64/head.S
> @@ -561,6 +561,14 @@ END(efi_xen_start)
> =20
>  #endif /* CONFIG_ARM_EFI */
> =20
> +#ifdef CONFIG_SYSTEM_SUSPEND
> +
> +FUNC(hyp_resume)
> +        b .
> +END(hyp_resume)
> +
> +#endif /* CONFIG_SYSTEM_SUSPEND */
> +
>  /*
>   * Local variables:
>   * mode: ASM
> diff --git a/xen/arch/arm/include/asm/psci.h b/xen/arch/arm/include/asm/p=
sci.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);
> =20
>  /* 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/as=
m/suspend.h
> index 78d0e2383b..55041a5d06 100644
> --- a/xen/arch/arm/include/asm/suspend.h
> +++ b/xen/arch/arm/include/asm/suspend.h
> @@ -7,6 +7,8 @@
> =20
>  int host_system_suspend(void);
> =20
> +void hyp_resume(void);
> +
>  #endif /* CONFIG_SYSTEM_SUSPEND */
> =20
>  #endif /* __ASM_ARM_SUSPEND_H__ */
> 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>
> =20
>  /*
>   * 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 valu=
es.
> - * 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
> =20
>  uint32_t psci_ver;
> @@ -60,6 +63,24 @@ void call_psci_cpu_off(void)
>      }
>  }
> =20
> +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);
> +    return PSCI_RET(res);
> +#else
> +    dprintk(XENLOG_WARNING,
> +            "SYSTEM_SUSPEND not supported (CONFIG_SYSTEM_SUSPEND disable=
d)\n");
> +    return PSCI_NOT_SUPPORTED;
> +#endif
> +}
> +
>  void call_psci_system_off(void)
>  {
>      if ( psci_ver > PSCI_VERSION(0, 1) )
> diff --git a/xen/arch/arm/suspend.c b/xen/arch/arm/suspend.c
> index abf4b928ce..11e86b7f51 100644
> --- a/xen/arch/arm/suspend.c
> +++ b/xen/arch/arm/suspend.c
> @@ -1,5 +1,6 @@
>  /* SPDX-License-Identifier: GPL-2.0-only */
> =20
> +#include <asm/psci.h>
>  #include <xen/console.h>
>  #include <xen/cpu.h>
>  #include <xen/llc-coloring.h>
> @@ -70,6 +71,10 @@ static long system_suspend(void *data)
>       */
>      update_boot_mapping(true);
> =20
> +    status =3D call_psci_system_suspend();
> +    if ( status )
> +        dprintk(XENLOG_WARNING, "PSCI system suspend failed, err=3D%d\n"=
, status);

So this is where missing call to PSCI_SYSTEM_SUSPEND is...=20

> +
>      system_state =3D SYS_STATE_resume;
>      update_boot_mapping(false);

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Sat Aug 23 07:59:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Aug 2025 07:59:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1091011.1447957 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upj9i-0003se-S3; Sat, 23 Aug 2025 07:59:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1091011.1447957; Sat, 23 Aug 2025 07: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 1upj9i-0003sX-OG; Sat, 23 Aug 2025 07:59:18 +0000
Received: by outflank-mailman (input) for mailman id 1091011;
 Sat, 23 Aug 2025 07:59:18 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>)
 id 1upj9i-0003sK-27; Sat, 23 Aug 2025 07:59:18 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1upj9f-002OaF-1B;
 Sat, 23 Aug 2025 07:59:15 +0000
Received: from [2a02:8012:3a1:0:7444:6df7:db1a:3c76]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1upj9f-00EMdN-0z;
 Sat, 23 Aug 2025 07:59:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=UkPgs6bE6QfgDaM8sbWFjKUvjpYPya6Nvd7QeYLMKkI=; b=sWdumOKOZv/GaZJ3+JY1Vid8YU
	60MByZieTPIyn1trrwn28mDi1m8/W1lDhW2AxqvrJ3WyxbekrCBA1tpEvLozGAIz83G2bY0Lb+EXg
	WKLd70yU+T0YvQE5c1aPJsJHfCaWj/iXDoy8M0itKLu5HX+tMKHTfzZDJcDDpI9/HemM=;
Message-ID: <2f11b8ea-a386-4c2a-afe6-c7e57d1d7f75@xen.org>
Date: Sat, 23 Aug 2025 08:59:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Consider changing CONFIG_ACPI default on ARM?
Content-Language: en-GB
To: Elliott Mitchell <ehem+xen@m5p.com>, Jan Beulich <jbeulich@suse.com>
Cc: Demi Marie Obenour <demiobenour@gmail.com>,
 xen-users@lists.xenproject.org, xen-devel@lists.xenproject.org,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Paul Leiber <paul@onlineschubla.de>
References: <CAO_48GG1Tg0d3ATnNAYNr0cg7Ty_zsnzT29=dpkk99DxyTWcmg@mail.gmail.com>
 <fceb5df8-d628-479d-acb3-d1d26409fbac@onlineschubla.de>
 <aJLae1Nl0pyOZgyh@mattapan.m5p.com>
 <1b96f2f3-55a2-4b33-84b1-a7c18d38d10c@suse.com>
 <6e9b5265-7a3b-4fd5-b14e-0e60a8b49833@gmail.com>
 <a3092ae1-d836-4403-8fb5-30593fcd2fb8@suse.com>
 <aKjOaT-P74Yh4-bi@mattapan.m5p.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <aKjOaT-P74Yh4-bi@mattapan.m5p.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Elliott,

On 22/08/2025 21:09, Elliott Mitchell wrote:
> Since you're not pointing to anything definite, could it be everything
> has been resolved?

Unfortunately, the situation has not changed since your last thread 
about enabling CONFIG_ACPI=y a couple of years ago. The main feature we 
are lacking is the parsing the IORT (used to discover SMMUs and MSI 
controllers). Without this...

>  We've got at least two people for whom ACPI on ARM
> works pretty well.

... Xen will only properly boot on "simple" case like the Raspberry PI. 
Also, IIRC Xen would use ACPI rather than Device-Tree by default.

> There may be many more using it.  Perhaps this
> should even be done on the 4.20 branch given how long this has been
> working?

I am guessing you mean 4.21 which will be released in a couple of months 
time, correct?

We have been discussing among the committers on whether we are ok to 
enable ACPI despite the fact it is still not feature complete (see 
above). The discussion is not fully finalized but if we were to enable 
CONFIG_ACPI=y by default then I think we would need the following:

  * Select device-tree by default rather than ACPI
  * Go through SUPPORT.MD and check what features we marked as 
SUPPORTED.md but doesn't work on ACPI.

Maybe you can help with that?

Out of interest, sorry if this was already mentioned before, is there 
any reason ACPI is used on the Raspberry PI over Device-Tree? Is there 
any issue with the latter on Xen?

> 
> The one remaining major issue was the state of EFI-FB support.  There
> was a patch which had that working for Linux kernel 5.10, but that might
> need more work for a proper solution.

Yes. And there was no interest from the other members to fix it 
properly. So I gave up that on that work as I don't have a particular 
interest of using FrameBuffer on the raspberry PI. Feel free to revive 
it and I would be happy to review them.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Sat Aug 23 12:30:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Aug 2025 12:30:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1091202.1447983 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upnNq-0004Sp-Eq; Sat, 23 Aug 2025 12:30:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1091202.1447983; Sat, 23 Aug 2025 12:30:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upnNq-0004Sh-9a; Sat, 23 Aug 2025 12:30:10 +0000
Received: by outflank-mailman (input) for mailman id 1091202;
 Sat, 23 Aug 2025 12:30:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=LOa+=3D=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1upnNp-0004Sb-0s
 for xen-devel@lists.xenproject.org; Sat, 23 Aug 2025 12:30:09 +0000
Received: from mail-lf1-x131.google.com (mail-lf1-x131.google.com
 [2a00:1450:4864:20::131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e44c75de-801c-11f0-b898-0df219b8e170;
 Sat, 23 Aug 2025 14:30:03 +0200 (CEST)
Received: by mail-lf1-x131.google.com with SMTP id
 2adb3069b0e04-55ce52b01caso3081403e87.3
 for <xen-devel@lists.xenproject.org>; Sat, 23 Aug 2025 05:30:02 -0700 (PDT)
Received: from [192.168.0.110] ([91.123.151.69])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-55f35c8bc67sm494109e87.80.2025.08.23.05.29.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sat, 23 Aug 2025 05:29: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>
X-Inumbo-ID: e44c75de-801c-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1755952202; x=1756557002; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:to:subject:user-agent:mime-version:date:message-id:from
         :to:cc:subject:date:message-id:reply-to;
        bh=6DFCyfN/Wm0CNWe+vsagMdd5V//03/sTzPpoKrQ6J/Q=;
        b=d5KzvdLOlZor6gUaaoMy9yxQvZ8E1AOnllKR6/Y0zNnOYj7aQ0YM5+l6KtFKQ6uPtg
         7woR52B0VZjydEY0IuPjy/SQAvG0EsibaA+MeNfHddWwKiLj0y3sIjUzfLRvPLQYPvR2
         q4gZHXhqSrAP4WADqI/X0/6wb60Cxbz91WPsHJceJq/UIzxdSyKPwmIQ/Jd/XJCjtkHP
         JA7BduaURLGZdF9UuxceNJ2lomDA2tx2qHlsnbhfd80Q1vxwQK23OO4VZEbKXGh/YiuQ
         R8Cqpv0GYQWhUAxUY9c9RqiHV8FTHlMpYhPztT+2quGoZeQunfNC5U4gaJ8/A5U8C0Q3
         b4pw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755952202; x=1756557002;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:to:subject:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=6DFCyfN/Wm0CNWe+vsagMdd5V//03/sTzPpoKrQ6J/Q=;
        b=XK8jhBprfqUXY+x4o96eK3IV8GF6GwYrxjfikUOrVK39aZ6VpH6hS1zXPXSX5fwTiz
         7okS2L80SPbmxMVixmVOHn98Vyt0uDvxDkq3oxqEmTh7FpBw00f6pFQXBXLlPYRMiV7O
         iRhplIgHsGoH3AcCPMG57iaWhItq/ma8SFWOKu6ka4hdjYUcOL7lt8FOe/7KyhnlpPcq
         XlF8Rr68L2E60jDJ4UpsJH3K7+61Nw+FomAIFK+T7y9KhufAVgFtLvGN2rZMQiSr9W8f
         Mxib0Qi06CIyE+pAhnfAyVRrEEKRsFNsdwHswn4i4jg59v7AJ+ijdw0M4tn3ydYr8HOZ
         gesg==
X-Gm-Message-State: AOJu0Ywz6JNbpesBYnkI4e9YxJ8FNykq2fZ4MROk8sf9sjicOT3uQZhT
	rfvd4J02kAWpNl7pUaZDtSpnrgvBnJs5Rcanq/Yw2uFo10ulx7ZKLoftOiBEyA==
X-Gm-Gg: ASbGncvYX/egcMoK5elHivKMtX4wY3+5nVHwHAn/1Jr8YZoSXUNDsdDCDwO53Zh6Wz0
	1rQ46hF8JN8hnUngdSmox2ZIB1KIRMoevmje0nkltf/d0LzoRXmf86lASVa2kTqD8C11MDaCtNE
	ko/RbbnGYucOQpMeoteo8lHT+bqGomuJZaKLjK7RhAXZVl8cNWq0q6D7tQDKdgMVs8i8m6nXu9k
	OLZIDIB0+zX3WDJqhPDVN0GSq8z9IGPD5IK65y+EF8JxJvbbghfW2FY0cNKpvfoCUSnbHxm0Q4R
	aPz3HhvrjULrnroBTDRg5qfnRL5Ij5RngTebqZFHP46wuTO8EVPrhblOppB/VmLNwmcO5NKbKtB
	+N2fJ+5ShgRPaYjqG+eg4yw+5ew==
X-Google-Smtp-Source: AGHT+IHlFAKA4Ghw/3NVgWqFZ5Zw9Cx+YBDGBkznSW6w/xSCiAZg45vtgza2Zz66CxYxhjVfa61X+Q==
X-Received: by 2002:a05:6512:6284:b0:55b:8a07:7917 with SMTP id 2adb3069b0e04-55f0d370fa7mr2067891e87.30.1755952201271;
        Sat, 23 Aug 2025 05:30:01 -0700 (PDT)
Message-ID: <29d0e5ed-78b3-45ad-9543-e47731c41c3f@gmail.com>
Date: Sat, 23 Aug 2025 15:29:57 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 03/10] xen/arm: vgic: implement helper functions for
 virq checks
To: xen-devel@lists.xenproject.org,
 Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
References: <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
 <f029f88411e816846d13aaf33d4ef703f95d1bb8.1754568795.git.leonid_komarianskyi@epam.com>
Content-Language: en-US
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
In-Reply-To: <f029f88411e816846d13aaf33d4ef703f95d1bb8.1754568795.git.leonid_komarianskyi@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 07.08.25 15:33, Leonid Komarianskyi wrote:

Hello Leonid


> Introduced two new helper functions for vGIC: vgic_is_valid_irq and
> vgic_is_shared_irq. The functions are similar to the newly introduced
> gic_is_valid_irq and gic_is_shared_irq, but they verify whether a vIRQ
> is available for a specific domain, while GIC-specific functions
> validate INTIDs for the real GIC hardware. For example, the GIC may
> support all 992 SPI lines, but the domain may use only some part of them
> (e.g., 640), depending on the highest IRQ number defined in the domain
> configuration. Therefore, for vGIC-related code and checks, the
> appropriate functions should be used. Also, updated the appropriate
> checks to use these new helper functions.
> 
> The purpose of introducing new helper functions for vGIC is essentially
> the same as for GIC: to avoid potential confusion with GIC-related
> checks and to consolidate similar code into separate functions, which
> can be more easily extended by additional conditions, e.g., when
> implementing extended SPI interrupts.
> 
> Only the validation change in vgic_inject_irq may affect existing
> functionality, as it currently checks whether the vIRQ is less than or
> equal to vgic_num_irqs. Since IRQ indexes start from 0 (where 32 is the
> first SPI), the check should behave consistently with similar logic in
> other places and should check if the vIRQ number is less than
> vgic_num_irqs. The remaining changes, which replace open-coded checks
> with the use of these new helper functions, do not introduce any
> functional changes, as the helper functions follow the current vIRQ
> index verification logic.
> 
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
> 
> ---
> Changes in V2:
> - introduced this patch
> ---
>   xen/arch/arm/gic.c              |  3 +--
>   xen/arch/arm/include/asm/vgic.h |  7 +++++++
>   xen/arch/arm/irq.c              |  4 ++--
>   xen/arch/arm/vgic.c             | 10 ++++++++--
>   4 files changed, 18 insertions(+), 6 deletions(-)
> 
> diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
> index eb0346a898..47fccf21d8 100644
> --- a/xen/arch/arm/gic.c
> +++ b/xen/arch/arm/gic.c
> @@ -133,8 +133,7 @@ int gic_route_irq_to_guest(struct domain *d, unsigned int virq,
>   
>       ASSERT(spin_is_locked(&desc->lock));
>       /* Caller has already checked that the IRQ is an SPI */
> -    ASSERT(virq >= 32);
> -    ASSERT(virq < vgic_num_irqs(d));
> +    ASSERT(vgic_is_shared_irq(d, virq));
>       ASSERT(!is_lpi(virq));
>   
>       ret = vgic_connect_hw_irq(d, NULL, virq, desc, true);
> diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/vgic.h
> index 35c0c6a8b0..45201f4ca5 100644
> --- a/xen/arch/arm/include/asm/vgic.h
> +++ b/xen/arch/arm/include/asm/vgic.h
> @@ -335,6 +335,13 @@ extern void vgic_check_inflight_irqs_pending(struct vcpu *v,
>   /* Default number of vGIC SPIs. 32 are substracted to cover local IRQs. */
>   #define VGIC_DEF_NR_SPIS (min(gic_number_lines(), VGIC_MAX_IRQS) - 32)
>   
> +extern bool vgic_is_valid_irq(struct domain *d, unsigned int virq);
> +
> +static inline bool vgic_is_shared_irq(struct domain *d, unsigned int virq)
> +{
> +    return (virq >= NR_LOCAL_IRQS && vgic_is_valid_irq(d, virq));
> +}
> +
>   /*
>    * Allocate a guest VIRQ
>    *  - spi == 0 => allocate a PPI. It will be the same on every vCPU
> diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
> index 12c70d02cc..50e57aaea7 100644
> --- a/xen/arch/arm/irq.c
> +++ b/xen/arch/arm/irq.c
> @@ -442,7 +442,7 @@ int route_irq_to_guest(struct domain *d, unsigned int virq,
>       unsigned long flags;
>       int retval = 0;
>   
> -    if ( virq >= vgic_num_irqs(d) )
> +    if ( !vgic_is_valid_irq(d, virq) )


This file is common for all VGIC implementations, so 
route_irq_to_guest() is used with CONFIG_NEW_VGIC=y as well.

If your series is built with CONFIG_NEW_VGIC=y (I know, that NEW_VGIC 
does not support GICV3 HW) I have got the following error:


aarch64-poky-linux-ld: prelink.o: in function `route_irq_to_guest':
/usr/src/debug/xen/4.18.0+gitAUTOINC+ce58f56108-r0/git/xen/arch/arm/irq.c:445: 
undefined reference to `vgic_is_valid_irq'
/usr/src/debug/xen/4.18.0+gitAUTOINC+ce58f56108-r0/git/xen/arch/arm/irq.c:445:(.text+0x5e2f8): 
relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol 
`vgic_is_valid_irq'
...

 From the quick look, vgic_is_valid_irq() needs a stub (or NEW_VGIC's 
counterpart).

[snip]


From xen-devel-bounces@lists.xenproject.org Sat Aug 23 13:02:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Aug 2025 13:02:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1091231.1447992 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upnsw-00008N-GT; Sat, 23 Aug 2025 13:02:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1091231.1447992; Sat, 23 Aug 2025 13:02: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 1upnsw-00008G-Dr; Sat, 23 Aug 2025 13:02:18 +0000
Received: by outflank-mailman (input) for mailman id 1091231;
 Sat, 23 Aug 2025 13:02:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=LOa+=3D=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1upnsu-00008A-Tu
 for xen-devel@lists.xenproject.org; Sat, 23 Aug 2025 13:02:16 +0000
Received: from mail-lf1-x136.google.com (mail-lf1-x136.google.com
 [2a00:1450:4864:20::136])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 643ff131-8021-11f0-a32b-13f23c93f187;
 Sat, 23 Aug 2025 15:02:15 +0200 (CEST)
Received: by mail-lf1-x136.google.com with SMTP id
 2adb3069b0e04-55ce5097493so2684258e87.0
 for <xen-devel@lists.xenproject.org>; Sat, 23 Aug 2025 06:02:15 -0700 (PDT)
Received: from [192.168.0.110] ([91.123.151.69])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-55f35bffab4sm502267e87.9.2025.08.23.06.02.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sat, 23 Aug 2025 06:02: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>
X-Inumbo-ID: 643ff131-8021-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1755954134; x=1756558934; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:to:subject:user-agent:mime-version:date:message-id:from
         :to:cc:subject:date:message-id:reply-to;
        bh=IoU26xKHPeY9hUXQ9gUpNVV7cWVumIngLl3l0tskYZI=;
        b=GjoAIlSSRsOlNSWQMY7rW1VYRK+mIxW8fgNubuhiWDe94GVw1vuu2aN+AnLdzoALf4
         wDjzCkYL1YFxIS2h/ZvtAXQvUBmzzpn6DAdmlZJDzIQUOJxujEgbP3e993QdJYZUqZXy
         zQbEc3OqzHWceL32XSEtT0GBz79tb4rbfgi8dFP9jcrd188XAO7iIMIgabmeFIFc3b/E
         fWc7y+tMyXQSv78ka5RV+vsMBbtTOVkUbHdanoREnpnIF4vV39+wId8wjHroFaHqWGW2
         23AMBbK2CjjfMqhvl8HCID3ehQBseMcAv3WP5E34n5p/mmbtfDC8LlvOlVAWCo2Ci6O6
         pxFw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755954134; x=1756558934;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:to:subject:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=IoU26xKHPeY9hUXQ9gUpNVV7cWVumIngLl3l0tskYZI=;
        b=VS0ngXJ942i/6xmT/zrAxlOuDmf1ZveYWUY74f/teQ6DmcTSZ1XCdvGQr41imOIkQa
         v3cfNDjjhlG2xsIlhhAxxdk/lDgv0fAW+3FAc3n3CuT6OZ0u+Xit8kpqbbkMvvlmiou4
         YY6hOSfhCl5PlRqzFEYHz9MmvJkKF67Yke7Xj1BLY+hI+B68NJJSS95mwqrLurOv0HmQ
         wwXBI53EiVcz6FujpvXxirSScJ1u/c+MA84tthw6q9sx2r2StpK/rVaisBTFIC5vD2r7
         MXsxTdTv2RXmEaAlhda76XrBqDphoy8JEVO0zuzrnEh+dpGURQw9oC4KGXHNxPnAVNGp
         B6hQ==
X-Gm-Message-State: AOJu0YywVeiwVl15ytMMmmjFeS3i0//JB8rYciOAo9gRVa7mJX0Kxboe
	eNezQGbY2/1RPv6RYCRWpdLZzhlD0jSL5R6wik/cQLw5+ZFL9dIIOOx3JOFR7A==
X-Gm-Gg: ASbGnctUygfmqF87fgX2p6KWfjFAK0l0HE48+kQgl5Ynnc8XL0mN7DyoIVskT0VDiyN
	IAVLBNzxBJ7svLvnrXS09pG2VGvuHAXe/iaKOhmM8aZEh0fwLWRSUf/vAIbrpZz8bm4JfHfyCGP
	bl6PeXZvcS7DNvAp4gI8vNDp+RDbmD9cfecsTdBawyY8t26xtssfb5ZTHhYpWY9GFmQBlGT1SgP
	q3lDKhBr7q0EQnel6aW3Vlppo+XkJ5t+ug5MN/PllqXs5RcRLuIBOj3SUwDvQuuIW35DrC7pr7Z
	87BsnPWyXCy2I1jmHk118FfXdf1j1YWFEae+RVQTMfBVgDWCxq9DNOvu5EjS2oOO+PCFnep9sMr
	Qu1X0YpQbgja3GATtsQdCkaMP2w==
X-Google-Smtp-Source: AGHT+IGjA4bJH2rb+EZDxueiE5sFViqUJr7b3umUOK40C1VLW2vX0j0umeQXrY7s63HWWTPYipgB/w==
X-Received: by 2002:a05:6512:3b86:b0:55b:922b:f626 with SMTP id 2adb3069b0e04-55f0d396a5amr1898859e87.45.1755954133846;
        Sat, 23 Aug 2025 06:02:13 -0700 (PDT)
Message-ID: <543c8010-bc73-4da8-be9a-f1774ec8b963@gmail.com>
Date: Sat, 23 Aug 2025 16:02:11 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 09/10] xen/arm: domain_build: adjust Dom0 IRQ handling
 to support eSPIs
To: xen-devel@lists.xenproject.org,
 Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
References: <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
 <abba685916e6637eedbd831352bed2e968eeb7dc.1754568795.git.leonid_komarianskyi@epam.com>
Content-Language: en-US
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
In-Reply-To: <abba685916e6637eedbd831352bed2e968eeb7dc.1754568795.git.leonid_komarianskyi@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 07.08.25 15:33, Leonid Komarianskyi wrote:

Hello Leonid

> The Dom0 configuration logic in create_dom0() has been updated
> to account for extended SPIs when supported by the hardware and
> enabled with CONFIG_GICV3_ESPI. These changes ensure the proper
> calculation of the maximum number of SPIs and eSPIs available for Dom0.
> 
> When eSPIs are supported by the hardware and CONFIG_GICV3_ESPI is
> enabled, the maximum number of eSPI interrupts is calculated using
> the ESPI_BASE_INTID offset (4096) and limited at 1024, with 32 IRQs
> subtracted. To ensure compatibility with non-Dom0 domains, this
> adjustment is applied by the toolstack during domain creation, while
> for Dom0 it is handled directly during VGIC initialization. If eSPIs
> are not supported, the calculation defaults to using the standard SPI
> range, with a maximum value of 992 interrupt lines as it works now.
> 
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
> 
> ---
> Changes in V2:
> - no changes
> ---
>   xen/arch/arm/domain_build.c     | 10 ++++++++++
>   xen/arch/arm/include/asm/vgic.h | 11 +++++++++++
>   2 files changed, 21 insertions(+)
> 
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index d91a71acfd..fa5abf2dfb 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -2055,6 +2055,16 @@ void __init create_dom0(void)
>       /* The vGIC for DOM0 is exactly emulating the hardware GIC */
>       dom0_cfg.arch.gic_version = XEN_DOMCTL_CONFIG_GIC_NATIVE;
>       dom0_cfg.arch.nr_spis = VGIC_DEF_NR_SPIS;
> +#ifdef CONFIG_GICV3_ESPI
> +    /*
> +     * Check if the hardware supports extended SPIs (even if the appropriate config is set).
> +     * If not, the common SPI range will be used. Otherwise overwrite the nr_spis with the
> +     * maximum available INTID from eSPI range. In that case, the number of regular SPIs will
> +     * be adjusted to the maximum value during vGIC initialization.
> +     */
> +    if ( gic_number_espis() > 0 )
> +        dom0_cfg.arch.nr_spis = VGIC_DEF_NR_ESPIS;
> +#endif

I might miss something, but within the whole series, you seem not to 
update "nr_spis" field for dom0less DomUs (in dom0less-build.c). Please 
clarify the reason?

>       dom0_cfg.arch.tee_type = tee_get_type();
>       dom0_cfg.max_vcpus = dom0_max_vcpus();
>   

[snip]


From xen-devel-bounces@lists.xenproject.org Sat Aug 23 14:23:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Aug 2025 14:23:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1091274.1448002 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upp9a-0001Iv-2a; Sat, 23 Aug 2025 14:23:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1091274.1448002; Sat, 23 Aug 2025 14:23: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 1upp9Z-0001Ir-Vf; Sat, 23 Aug 2025 14:23:33 +0000
Received: by outflank-mailman (input) for mailman id 1091274;
 Sat, 23 Aug 2025 14:23:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=LOa+=3D=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1upp9Y-0001Ic-Ct
 for xen-devel@lists.xenproject.org; Sat, 23 Aug 2025 14:23:32 +0000
Received: from mail-lf1-x129.google.com (mail-lf1-x129.google.com
 [2a00:1450:4864:20::129])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id be45201b-802c-11f0-b898-0df219b8e170;
 Sat, 23 Aug 2025 16:23:30 +0200 (CEST)
Received: by mail-lf1-x129.google.com with SMTP id
 2adb3069b0e04-55ce5253adcso3122933e87.2
 for <xen-devel@lists.xenproject.org>; Sat, 23 Aug 2025 07:23:30 -0700 (PDT)
Received: from [192.168.0.110] ([91.123.151.69])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-55f3db23af2sm230150e87.55.2025.08.23.07.23.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sat, 23 Aug 2025 07:23: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>
X-Inumbo-ID: be45201b-802c-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1755959010; x=1756563810; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:to:subject:user-agent:mime-version:date:message-id:from
         :to:cc:subject:date:message-id:reply-to;
        bh=jxafceqXQ3sqq5LJ9WvUErToiUGz649vQj9CWWcV1Gs=;
        b=K+7le6PPCofAbzj1rAyidFeX5Pkn0arB7db+KVi5RseVymH/NojoIu3kjXavaNCyW9
         6IIN5PooF0MoAaLhPAOd7noMstLcIT9GEWd7ovDA151X/241nARPyKh9SsKcDV6s7u/9
         eJOaftXp5zwDpkJJ/bQSOoXlTPjvT82gnNibN7yXeCP01tOH7U5WPshbI42sLJGfPxxq
         6sHEWlNfBOaXsHE22RAGBVp7VNgu8oRiVNn6JKQSrKU7KXjfDRgHiKq1ibF5OB2aRDbH
         Vl1GkTUTCJgqg+yBG7S63UMueFXUB90SlnUT/EqCCbDVVgouiPIOOXW5hz3y8Q8LAuiH
         IDlw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755959010; x=1756563810;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:to:subject:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=jxafceqXQ3sqq5LJ9WvUErToiUGz649vQj9CWWcV1Gs=;
        b=HF+6nWnsV+qSFKOmz+FmO1oLHeUBha4c8ExM4tyC4y4Tb+6iEQv0xTYtAkD0ARPWCM
         +bfev86K/wLPge2ttpaD05ZQycWZamoch9NwhSuDh4GXxLS3zxMN5D7ESlaycrWv3v+f
         3WEWbxc+Kod0hXM+tNDXMSkvKpkGM9fdYVBng7EfsE7CGSGDAdykjISKRDRYJNdYyrv/
         oZDfSRtUxzP9cLG5nz1nGSVmyR3AFyO/WSf6zdPakAz+VWM5H5C5wIJL/7vr8XgRENXc
         ZWgtTFswBvGooFkB76SkN6yQdo17OlmGY9r3m+Dwb5aB5g1H0w/3UNUKP1UF6g+ysK7E
         EfOQ==
X-Gm-Message-State: AOJu0YxLDwFqIO1eaoDCbrvpA7gyku2csG90tjdy00Dpv+CbVBX0J0qg
	28vT/Vu1TJImD6rYHNm6lQgd+/N8agiRA4BQo+mNUIafl6x3krfMnhXVO4kZyg==
X-Gm-Gg: ASbGncuc0vc6F60FxjpF2rH2e/aULXioRYA5HbTxtUBO2b/riEJ5wPKw4548FIIey1M
	obHys+murLuWAHFsdxFMOMYo+8R7HRhqWeJv6cIb6pe2KXNah2/EHCPeLjQ71Dd41wWWH2Xn5th
	wTr75RNxMaOZFQybm2WofhN0QAUEaAEePF9dwIauHZItdd25uXNH0lCfSWIGMnWDMMDRqS80YSL
	zGCiI7EdRxElrQXlTpviktW65jchqfcM6gevvJB6unfiy6VFarqYBxipWJqvCWX8tlSM9Oe3vMf
	a0Z32qOVHLFexn716mxt5g41DaGQ1jfCC6CaaD3JS/dfZ2GZNwOiGgpKLdic1ykYafUEM3zctZT
	qVuehqs+S6nfUZuXwmLh6IykO87/8Jl7BWydU
X-Google-Smtp-Source: AGHT+IFhmZSZx4Ywb0a8sPkfBHESkTu7fIfcdajDPDV5q/89NoI5rC/4wxS1iG4UcNwK5ZMbiK4EQg==
X-Received: by 2002:a05:6512:6095:b0:55c:e752:e9c3 with SMTP id 2adb3069b0e04-55f0cce11ffmr2010149e87.8.1755959009454;
        Sat, 23 Aug 2025 07:23:29 -0700 (PDT)
Message-ID: <b2870d5f-cf54-41f4-9cfe-b83161c157df@gmail.com>
Date: Sat, 23 Aug 2025 17:23:27 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 05/10] xen/arm: gicv3: implement handling of GICv3.1
 eSPI
To: xen-devel@lists.xenproject.org,
 Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
References: <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
 <2491bee7441f13a3c1a01fd77ece1749e7276352.1754568795.git.leonid_komarianskyi@epam.com>
Content-Language: en-US
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
In-Reply-To: <2491bee7441f13a3c1a01fd77ece1749e7276352.1754568795.git.leonid_komarianskyi@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 07.08.25 15:33, Leonid Komarianskyi wrote:

Hello Leonid


> Introduced appropriate register definitions, helper macros,
> and initialization of required GICv3.1 distributor registers
> to support eSPI. This type of interrupt is handled in the
> same way as regular SPI interrupts, with the following
> differences:
> 
> 1) eSPIs can have up to 1024 interrupts, starting from the
> beginning of the range, whereas regular SPIs use INTIDs from
> 32 to 1019, totaling 988 interrupts;
> 2) eSPIs start at INTID 4096, necessitating additional interrupt
> index conversion during register operations.
> 
> In case if appropriate config is disabled, or GIC HW doesn't
> support eSPI, the existing functionality will remain the same.
> 
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
> 
> ---
> Changes in V2:
> - move gic_number_espis function from
>    [PATCH 08/10] xen/arm: vgic: add resource management for extended SPIs
>    to use it in the newly introduced gic_is_valid_espi
> - add gic_is_valid_espi which checks if IRQ number is in supported
>    by HW eSPI range
> - update gic_is_valid_irq conditions to allow operations with eSPIs
> ---
>   xen/arch/arm/gic-v3.c                  | 73 ++++++++++++++++++++++++++
>   xen/arch/arm/include/asm/gic.h         | 17 ++++++
>   xen/arch/arm/include/asm/gic_v3_defs.h | 33 ++++++++++++
>   3 files changed, 123 insertions(+)
> 
> diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
> index 8fd78aba44..a0e8ee1a1e 100644
> --- a/xen/arch/arm/gic-v3.c
> +++ b/xen/arch/arm/gic-v3.c
> @@ -485,6 +485,36 @@ static void __iomem *get_addr_by_offset(struct irq_desc *irqd, u32 offset)
>           default:
>               break;
>           }
> +#ifdef CONFIG_GICV3_ESPI
> +    case ESPI_BASE_INTID ... ESPI_MAX_INTID:
> +    {
> +        u32 irq_index = ESPI_INTID2IDX(irqd->irq);
> +
> +        switch ( offset )
> +        {
> +        case GICD_ISENABLER:
> +            return (GICD + GICD_ISENABLERnE + (irq_index / 32) * 4);
> +        case GICD_ICENABLER:
> +            return (GICD + GICD_ICENABLERnE + (irq_index / 32) * 4);
> +        case GICD_ISPENDR:
> +            return (GICD + GICD_ISPENDRnE + (irq_index / 32) * 4);
> +        case GICD_ICPENDR:
> +            return (GICD + GICD_ICPENDRnE + (irq_index / 32) * 4);
> +        case GICD_ISACTIVER:
> +            return (GICD + GICD_ISACTIVERnE + (irq_index / 32) * 4);
> +        case GICD_ICACTIVER:
> +            return (GICD + GICD_ICACTIVERnE + (irq_index / 32) * 4);
> +        case GICD_ICFGR:
> +            return (GICD + GICD_ICFGRnE + (irq_index / 16) * 4);
> +        case GICD_IROUTER:
> +            return (GICD + GICD_IROUTERnE + irq_index * 8);
> +        case GICD_IPRIORITYR:
> +            return (GICD + GICD_IPRIORITYRnE + irq_index);
> +        default:
> +            break;
> +        }
> +    }
> +#endif
>       default:
>           break;
>       }
> @@ -645,6 +675,40 @@ static void gicv3_set_irq_priority(struct irq_desc *desc,
>       spin_unlock(&gicv3.lock);
>   }
>   
> +#ifdef CONFIG_GICV3_ESPI
> +unsigned int gic_number_espis(void)
> +{
> +    return gic_hw_ops->info->nr_espi;
> +}
> +
> +static void gicv3_dist_espi_common_init(uint32_t type)

missing __init ?

> +{
> +    unsigned int espi_nr;
> +    int i;

please use unsigned int if "i" cannot be negative

> +
> +    espi_nr = min(1024U, GICD_TYPER_ESPIS_NUM(type));
> +    gicv3_info.nr_espi = espi_nr;
> +    /* The GIC HW doesn't support eSPI, so we can leave from here */
> +    if ( gicv3_info.nr_espi == 0 )
> +        return;
> +
> +    for ( i = 0; i < espi_nr; i += 16 )
> +        writel_relaxed(0, GICD + GICD_ICFGRnE + (i / 16) * 4);
> +
> +    for ( i = 0; i < espi_nr; i += 4 )
> +        writel_relaxed(GIC_PRI_IRQ_ALL, GICD + GICD_IPRIORITYRnE + (i / 4) * 4);
> +
> +    for ( i = 0; i < espi_nr; i += 32 )
> +    {
> +        writel_relaxed(0xffffffffU, GICD + GICD_ICENABLERnE + (i / 32) * 4);
> +        writel_relaxed(0xffffffffU, GICD + GICD_ICACTIVERnE + (i / 32) * 4);
> +    }
> +
> +    for ( i = 0; i < espi_nr; i += 32 )
> +        writel_relaxed(GENMASK(31, 0), GICD + GICD_IGROUPRnE + (i / 32) * 4);
> +}
> +#endif
> +
>   static void __init gicv3_dist_init(void)
>   {
>       uint32_t type;
> @@ -690,6 +754,10 @@ static void __init gicv3_dist_init(void)
>       for ( i = NR_GIC_LOCAL_IRQS; i < nr_lines; i += 32 )
>           writel_relaxed(GENMASK(31, 0), GICD + GICD_IGROUPR + (i / 32) * 4);
>   
> +#ifdef CONFIG_GICV3_ESPI
> +    gicv3_dist_espi_common_init(type);
> +#endif
> +
>       gicv3_dist_wait_for_rwp();
>   
>       /* Turn on the distributor */
> @@ -703,6 +771,11 @@ static void __init gicv3_dist_init(void)
>   
>       for ( i = NR_GIC_LOCAL_IRQS; i < nr_lines; i++ )
>           writeq_relaxed_non_atomic(affinity, GICD + GICD_IROUTER + i * 8);
> +
> +#ifdef CONFIG_GICV3_ESPI
> +    for ( i = 0; i < gicv3_info.nr_espi; i++ )
> +        writeq_relaxed_non_atomic(affinity, GICD + GICD_IROUTERnE + i * 8);
> +#endif
>   }
>   
>   static int gicv3_enable_redist(void)


[snip]



From xen-devel-bounces@lists.xenproject.org Sat Aug 23 14:39:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Aug 2025 14:39:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1091289.1448013 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uppPA-00031R-DQ; Sat, 23 Aug 2025 14:39:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1091289.1448013; Sat, 23 Aug 2025 14:39:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uppPA-00031L-8E; Sat, 23 Aug 2025 14:39:40 +0000
Received: by outflank-mailman (input) for mailman id 1091289;
 Sat, 23 Aug 2025 14:39:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=LOa+=3D=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1uppP9-00031F-AV
 for xen-devel@lists.xenproject.org; Sat, 23 Aug 2025 14:39:39 +0000
Received: from mail-lj1-x231.google.com (mail-lj1-x231.google.com
 [2a00:1450:4864:20::231])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fed54db1-802e-11f0-a32b-13f23c93f187;
 Sat, 23 Aug 2025 16:39:38 +0200 (CEST)
Received: by mail-lj1-x231.google.com with SMTP id
 38308e7fff4ca-333f7ebc44dso28671201fa.0
 for <xen-devel@lists.xenproject.org>; Sat, 23 Aug 2025 07:39:38 -0700 (PDT)
Received: from [192.168.0.110] ([91.123.151.69])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-3365e24af34sm5339131fa.26.2025.08.23.07.39.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sat, 23 Aug 2025 07:39: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>
X-Inumbo-ID: fed54db1-802e-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1755959977; x=1756564777; 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=SlPo5dA2LWSRyv6b9RW7EwZzMJEpeFA8zVCVMoCQBN4=;
        b=luNUNWFM99N7+ISMrr4stF2BwrKkGBV3I5lKEAUYCU5rwZPeCu+YCBmw4lep60i4+b
         aEGA13jvxspUBM8f/NlB5TugByUeMTLoZUdANOSL8Ce1kaq0SpaIB+ogGdHuDARbAuvu
         MWHs8xJKvjma7Ei8UTrPtR1wkEfRl6YZR3BUp18zazTki0/8rluFn8yTnB2lPmdd66zB
         QgHWBZXbsKcAZBSZFDSkkqdZTqNM9JZ9bQDCxAagkk84uycl9x6pq636NKSVRvosFuAJ
         8eYZ7pQSJMbb5tzhva7DBIrb7ZqrIVvnFk8eMHWdXgMZw08kEZk9zFrH2KGUIH2FMW06
         yDSA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755959977; x=1756564777;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=SlPo5dA2LWSRyv6b9RW7EwZzMJEpeFA8zVCVMoCQBN4=;
        b=QE04Ae7vN9NcGovByspUeXcBo3YKl/Y6Mr79gE0WHRtg78+6mW5Fe/mwGFLKddNsuZ
         4aZnn/7LqSASldQc6AbUZDxf/1lt8QVIlNTkYaqm0DY/xXMnW0fsGwW+7Gd5v3b0sKZo
         pTlk0ZLfflPswXsAicNaHCzSX1HcnBpx9CE5al/Owf3Y1tGDWR83nhOlzb9yfHO/QcjI
         TI902mVeV75Z1bHIL1WHtoW95m9FcAjNYObpniYMYkdCTLDdScu00fBuiTYLQmFOXe0k
         uMamMlBHHpyAi5ZDD4GrMhq4y8Og+aO4j1w04ts78Mpr12rmf/mSohDF2GPOdh+T7eeL
         WypQ==
X-Forwarded-Encrypted: i=1; AJvYcCU0NUUkSeA3tdb2brIlfSbBdVBUc+lwLPDWqBjoY3UttCoaw6IiVbd6qpdZwdvjwOBOR5f8MkUwOro=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy363zA6NEKVNHRAFhRi0Zjvd7ka4O5kJ+7sAJ2hcnuwofovuhR
	ojuvnXeBm44qGz+jUDI3oIVzCfqiOAc1nnIpP15L5jBlxwV/m7tgIFnW
X-Gm-Gg: ASbGncspKodj0TXMHf927/Vm5VB9K+lHrdBDY9zNqcKU9uZfNfmlMZP5uEwta0WU2Tx
	4I0dhuy4sV8K2dJp2RGbOx/P1vdQ24ZbEZuwOE/fY7pheWNwo4KNCB3gv5zzVee99X36YbQY4l6
	gTORCsBoTQ19gk/sGiaiCK5QIy/tMfi1ZZp+aT0ybAtNOcOImad3E9FdfmJUZ6+mYvDRKL4gQch
	CkqMW7iSmPDRKaJ2uEQ+/su3Kthok7Tu7TEzYroQcf3KNdX6735KPOY0Dsm+DyBlFfMGEY9K8vM
	yZ84hOc7yElv+gQB8vWO8J7bFancQUBFBklEnZc7sBMOi4RSJ7vWC+b6RuwIhcBicWG851eYyav
	6xhxCiVVvwiC/G7A2h43Oltz1tOnWuL6DkKlA
X-Google-Smtp-Source: AGHT+IFnvQAtqKSua9pdDhvOp+IqSlBOY+F4uwX4FWD1p7R18ubVgvmIDROqjGat54ljzkAjf9mKQw==
X-Received: by 2002:a05:651c:2141:b0:336:5d7d:f034 with SMTP id 38308e7fff4ca-3365d7df730mr6865171fa.1.1755959977301;
        Sat, 23 Aug 2025 07:39:37 -0700 (PDT)
Message-ID: <d22b3f56-1a2b-44b4-88b1-b70c7607c24d@gmail.com>
Date: Sat, 23 Aug 2025 17:39:35 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 08/10] xen/arm: vgic: add resource management for
 extended SPIs
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
 <fde65754a60a8cc090bb212749ec2c10877c4943.1754568795.git.leonid_komarianskyi@epam.com>
Content-Language: en-US
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
In-Reply-To: <fde65754a60a8cc090bb212749ec2c10877c4943.1754568795.git.leonid_komarianskyi@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 07.08.25 15:33, Leonid Komarianskyi wrote:


Hello Leonid

> This change introduces resource management in the VGIC to handle
> extended SPIs introduced in GICv3.1. The pending_irqs and
> allocated_irqs arrays are resized to support the required
> number of eSPIs, based on what is supported by the hardware and
> requested by the guest. A new field, ext_shared_irqs, is added
> to the VGIC structure to store information about eSPIs, similar
> to how shared_irqs is used for regular SPIs.
> 
> Since the eSPI range starts at INTID 4096 and INTIDs between 1025
> and 4095 are reserved, helper macros are introduced to simplify the
> transformation of indices and to enable easier access to eSPI-specific
> resources. These changes prepare the VGIC for processing eSPIs as
> required by future functionality.
> 
> The initialization and deinitialization paths for vgic have been updated
> to allocate and free these resources appropriately. Additionally,
> updated handling of INTIDs greater than 1024, passed from the toolstack
> during domain creation, and verification logic ensures only valid SPI or
> eSPI INTIDs are used.
> 
> The existing SPI behavior remains unaffected when guests do not request
> eSPIs, GIC hardware does not support them, or the CONFIG_GICV3_ESPI
> option is disabled.
> 
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
> 
> ---
> Changes in V2:
> - change is_espi_rank to is_valid_espi_rank to verify whether the array
>    element ext_shared_irqs exists. The previous version, is_espi_rank,
>    only checked if the rank index was less than the maximum possible eSPI
>    rank index, but this could potentially result in accessing a
>    non-existing array element. To address this, is_valid_espi_rank was
>    introduced, which ensures that the required eSPI rank exists
> - move gic_number_espis to
>    xen/arm: gicv3: implement handling of GICv3.1 eSPI
> - update vgic_is_valid_irq checks to allow operating with eSPIs
> - remove redundant newline in vgic_allocate_virq
> ---
>   xen/arch/arm/include/asm/vgic.h |  18 ++++
>   xen/arch/arm/vgic.c             | 145 ++++++++++++++++++++++++++++++++
>   2 files changed, 163 insertions(+)
> 
> diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/vgic.h
> index 45201f4ca5..9fa4523018 100644
> --- a/xen/arch/arm/include/asm/vgic.h
> +++ b/xen/arch/arm/include/asm/vgic.h
> @@ -146,6 +146,10 @@ struct vgic_dist {
>       int nr_spis; /* Number of SPIs */
>       unsigned long *allocated_irqs; /* bitmap of IRQs allocated */
>       struct vgic_irq_rank *shared_irqs;
> +#ifdef CONFIG_GICV3_ESPI
> +    struct vgic_irq_rank *ext_shared_irqs;
> +    int nr_espis; /* Number of extended SPIs */
> +#endif
>       /*
>        * SPIs are domain global, SGIs and PPIs are per-VCPU and stored in
>        * struct arch_vcpu.
> @@ -243,6 +247,14 @@ struct vgic_ops {
>   /* Number of ranks of interrupt registers for a domain */
>   #define DOMAIN_NR_RANKS(d) (((d)->arch.vgic.nr_spis+31)/32)
>   
> +#ifdef CONFIG_GICV3_ESPI
> +#define DOMAIN_NR_EXT_RANKS(d) (((d)->arch.vgic.nr_espis+31)/32)
> +#define EXT_RANK_MIN (ESPI_BASE_INTID/32)
> +#define EXT_RANK_MAX ((ESPI_MAX_INTID+31)/32)
> +#define EXT_RANK_NUM2IDX(num) ((num)-EXT_RANK_MIN)
> +#define EXT_RANK_IDX2NUM(idx) ((idx)+EXT_RANK_MIN)
> +#endif
> +
>   #define vgic_lock(v)   spin_lock_irq(&(v)->domain->arch.vgic.lock)
>   #define vgic_unlock(v) spin_unlock_irq(&(v)->domain->arch.vgic.lock)
>   
> @@ -302,6 +314,12 @@ extern struct vgic_irq_rank *vgic_rank_offset(struct vcpu *v,
>                                                 unsigned int b,
>                                                 unsigned int n,
>                                                 unsigned int s);
> +#ifdef CONFIG_GICV3_ESPI
> +extern struct vgic_irq_rank *vgic_ext_rank_offset(struct vcpu *v,
> +                                                  unsigned int b,
> +                                                  unsigned int n,
> +                                                  unsigned int s);
> +#endif
>   extern struct vgic_irq_rank *vgic_rank_irq(struct vcpu *v, unsigned int irq);
>   extern void vgic_disable_irqs(struct vcpu *v, uint32_t r, unsigned int n);
>   extern void vgic_enable_irqs(struct vcpu *v, uint32_t r, unsigned int n);
> diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
> index 48fbaf56fb..1a6c765af9 100644
> --- a/xen/arch/arm/vgic.c
> +++ b/xen/arch/arm/vgic.c
> @@ -27,9 +27,26 @@
>   
>   bool vgic_is_valid_irq(struct domain *d, unsigned int virq)
>   {
> +#ifdef CONFIG_GICV3_ESPI
> +    if ( virq >= ESPI_BASE_INTID && virq < ESPI_IDX2INTID(d->arch.vgic.nr_espis) )
> +        return true;
> +#endif
> +
>       return virq < vgic_num_irqs(d);
>   }
>   
> +#ifdef CONFIG_GICV3_ESPI
> +/*
> + * Since eSPI indexes start from 4096 and numbers from 1024 to
> + * 4095 are forbidden, we need to check both lower and upper
> + * limits for ranks.
> + */
> +static inline bool is_valid_espi_rank(struct domain *d, unsigned int rank)
> +{
> +    return ( rank >= EXT_RANK_MIN && EXT_RANK_NUM2IDX(rank) < DOMAIN_NR_EXT_RANKS(d) );
> +}
> +#endif
> +
>   static inline struct vgic_irq_rank *vgic_get_rank(struct vcpu *v,
>                                                     unsigned int rank)
>   {
> @@ -37,6 +54,10 @@ static inline struct vgic_irq_rank *vgic_get_rank(struct vcpu *v,
>           return v->arch.vgic.private_irqs;
>       else if ( rank <= DOMAIN_NR_RANKS(v->domain) )
>           return &v->domain->arch.vgic.shared_irqs[rank - 1];
> +#ifdef CONFIG_GICV3_ESPI
> +    else if ( is_valid_espi_rank(v->domain, rank) )
> +        return &v->domain->arch.vgic.ext_shared_irqs[EXT_RANK_NUM2IDX(rank)];
> +#endif
>       else
>           return NULL;
>   }
> @@ -53,6 +74,16 @@ struct vgic_irq_rank *vgic_rank_offset(struct vcpu *v, unsigned int b,
>       return vgic_get_rank(v, rank);
>   }
>   
> +#ifdef CONFIG_GICV3_ESPI
> +struct vgic_irq_rank *vgic_ext_rank_offset(struct vcpu *v, unsigned int b,
> +                                           unsigned int n, unsigned int s)
> +{
> +    unsigned int rank = REG_RANK_NR(b, (n >> s));
> +
> +    return vgic_get_rank(v, rank + EXT_RANK_MIN);
> +}
> +#endif
> +
>   struct vgic_irq_rank *vgic_rank_irq(struct vcpu *v, unsigned int irq)
>   {
>       unsigned int rank = irq / 32;
> @@ -117,6 +148,29 @@ int domain_vgic_register(struct domain *d, unsigned int *mmio_count)
>       return 0;
>   }
>   
> +#ifdef CONFIG_GICV3_ESPI
> +static int init_vgic_espi(struct domain *d)
> +{
> +    int i;

please use unsigned int if "i" cannot be negative

> +
> +    if ( d->arch.vgic.nr_espis == 0 )
> +        return 0;
> +
> +    d->arch.vgic.ext_shared_irqs =
> +        xzalloc_array(struct vgic_irq_rank, DOMAIN_NR_EXT_RANKS(d));
> +    if ( d->arch.vgic.ext_shared_irqs == NULL )
> +        return -ENOMEM;
> +
> +    for ( i = 0; i < d->arch.vgic.nr_espis; i++ )
> +        vgic_init_pending_irq(&d->arch.vgic.pending_irqs[i + d->arch.vgic.nr_spis], ESPI_IDX2INTID(i));
> +
> +    for ( i = 0; i < DOMAIN_NR_EXT_RANKS(d); i++ )
> +        vgic_rank_init(&d->arch.vgic.ext_shared_irqs[i], i, 0);
> +
> +    return 0;
> +}
> +#endif
> +
>   int domain_vgic_init(struct domain *d, unsigned int nr_spis)
>   {
>       int i;
> @@ -131,6 +185,30 @@ int domain_vgic_init(struct domain *d, unsigned int nr_spis)
>        */
>       nr_spis = ROUNDUP(nr_spis, 32);
>   
> +#ifdef CONFIG_GICV3_ESPI
> +    if ( nr_spis > ESPI_MAX_INTID )
> +        return -EINVAL;
> +
> +    if ( is_espi(nr_spis) )
> +    {
> +        /*
> +         * During domain creation, the toolstack specifies the maximum INTID,

domain_vgic_init() is also called for dom0less DomUs (if present), which 
are created at Xen boot. So the toolstack might even be absent on the 
target system.

> +         * which is defined in the domain config subtracted by 32. To compute the
> +         * actual number of eSPI that will be usable for, add back 32.
> +         */
> +        d->arch.vgic.nr_espis = min(nr_spis - ESPI_BASE_INTID + 32, 1024U);
> +        /* Verify if GIC HW can handle provided INTID */
> +        if ( d->arch.vgic.nr_espis > gic_number_espis() )
> +            return -EINVAL;
> +        /* Set the maximum available number for defult SPI to pass the next check */
> +        nr_spis = VGIC_DEF_NR_SPIS;
> +    } else
> +    {
> +        /* Domain will use the regular SPI range */
> +        d->arch.vgic.nr_espis = 0;
> +    }
> +#endif
> +
>       /* Limit the number of virtual SPIs supported to (1020 - 32) = 988  */
>       if ( nr_spis > (1020 - NR_LOCAL_IRQS) )
>           return -EINVAL;
> @@ -145,7 +223,12 @@ int domain_vgic_init(struct domain *d, unsigned int nr_spis)
>           return -ENOMEM;
>   
>       d->arch.vgic.pending_irqs =
> +#ifdef CONFIG_GICV3_ESPI
> +        xzalloc_array(struct pending_irq, d->arch.vgic.nr_spis +
> +                      d->arch.vgic.nr_espis);
> +#else
>           xzalloc_array(struct pending_irq, d->arch.vgic.nr_spis);
> +#endif
>       if ( d->arch.vgic.pending_irqs == NULL )
>           return -ENOMEM;
>   
> @@ -156,12 +239,23 @@ int domain_vgic_init(struct domain *d, unsigned int nr_spis)
>       for ( i = 0; i < DOMAIN_NR_RANKS(d); i++ )
>           vgic_rank_init(&d->arch.vgic.shared_irqs[i], i + 1, 0);
>   
> +#ifdef CONFIG_GICV3_ESPI
> +    ret = init_vgic_espi(d);
> +    if ( ret )
> +        return ret;
> +#endif
> +
>       ret = d->arch.vgic.handler->domain_init(d);
>       if ( ret )
>           return ret;
>   
>       d->arch.vgic.allocated_irqs =
> +#ifdef CONFIG_GICV3_ESPI
> +        xzalloc_array(unsigned long, BITS_TO_LONGS(vgic_num_irqs(d) +
> +                      d->arch.vgic.nr_espis));
> +#else
>           xzalloc_array(unsigned long, BITS_TO_LONGS(vgic_num_irqs(d)));
> +#endif
>       if ( !d->arch.vgic.allocated_irqs )
>           return -ENOMEM;
>   
> @@ -195,9 +289,27 @@ void domain_vgic_free(struct domain *d)
>           }
>       }
>   
> +#ifdef CONFIG_GICV3_ESPI
> +    for ( i = 0; i < (d->arch.vgic.nr_espis); i++ )

NIT: no need for () around d->arch.vgic.nr_espis

> +    {
> +        struct pending_irq *p = spi_to_pending(d, ESPI_IDX2INTID(i));
> +
> +        if ( p->desc )
> +        {
> +            ret = release_guest_irq(d, p->irq);
> +            if ( ret )
> +                dprintk(XENLOG_G_WARNING, "d%u: Failed to release virq %u ret = %d\n",
> +                        d->domain_id, p->irq, ret);
> +        }
> +    }
> +#endif
> +
>       if ( d->arch.vgic.handler )
>           d->arch.vgic.handler->domain_free(d);
>       xfree(d->arch.vgic.shared_irqs);
> +#ifdef CONFIG_GICV3_ESPI
> +    xfree(d->arch.vgic.ext_shared_irqs);
> +#endif
>       xfree(d->arch.vgic.pending_irqs);
>       xfree(d->arch.vgic.allocated_irqs);
>   }
> @@ -331,6 +443,17 @@ void arch_move_irqs(struct vcpu *v)
>           if ( v_target == v && !test_bit(GIC_IRQ_GUEST_MIGRATING, &p->status) )
>               irq_set_affinity(p->desc, cpu_mask);
>       }
> +
> +#ifdef CONFIG_GICV3_ESPI
> +    for ( i = ESPI_BASE_INTID; i < (d)->arch.vgic.nr_espis; i++ )

NIT: no need for () around d

[snip]


From xen-devel-bounces@lists.xenproject.org Sat Aug 23 17:34:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Aug 2025 17:34:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1091380.1448023 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ups8E-00079A-9K; Sat, 23 Aug 2025 17:34:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1091380.1448023; Sat, 23 Aug 2025 17:34: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 1ups8E-000793-60; Sat, 23 Aug 2025 17:34:22 +0000
Received: by outflank-mailman (input) for mailman id 1091380;
 Sat, 23 Aug 2025 17:34:21 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Yyzx=3D=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1ups8C-00078x-TK
 for xen-devel@lists.xenproject.org; Sat, 23 Aug 2025 17:34:21 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 65abe7a4-8047-11f0-a32b-13f23c93f187;
 Sat, 23 Aug 2025 19:34:18 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by GV2PR03MB8605.eurprd03.prod.outlook.com
 (2603:10a6:150:ad::6) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Sat, 23 Aug
 2025 17:34:13 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9052.019; Sat, 23 Aug 2025
 17:34: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>
X-Inumbo-ID: 65abe7a4-8047-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HOmlnX8Hp1U4D4czyKHMXeiknadyEGKlbBd9Mwx1t3DLAsDYP9EbSLVZymEAU2EElRCD2GGgj7MtlAv8nh54KRWY4FzT1T8+eaOsl5eN56UfPK+4F03R1KHkky607Fi6stkqknapsYQCF+tqfdg8+RErKsNUf4qCsMRdkEczY6zlmpiQZf/8zCZ+iFG348EeS6zWtfYiAhA+Onb6gUbrn1WGjUO31MwVN751ZG34kIbHvLqoCCqTGiy0n1RloXywFbGQkzW+VQvoKC3EUKAWrE+vxoLoVkliGDB3Il50l4Mw/6X9JyYL9ToQ/6qvS/OQlQnO86sfCaH/0K/xeava0g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=VwsWOhsC+gxCsWU0PUNp89pst7olmKW0oRN3XgmCnpw=;
 b=qgdurob77aPzWbk8FOllX+W/T5NRuNtCDhuu7zvTwJH1yHGktfX23WM9xXPzomLdbSX+vT2OO4/ipYOB/ICB2zczsa7lDShqZYBQH4+DoiZA3gwaVr9HgsgamZqEhi9+VGru4rlTMBXKX/wN1wEMk7jgP/wTa5Xj2L0+zC9Jbx0eFzQ3uZ7yOnQvLiobjjuhzZXBrNOXPrZUyRxOhrxrekBwnCeXj2ilL3cotHvxpdQK4xicUgGyZ+XJbWDVWwkYVz76drK6D8rCZvZRs/2X+uhMw/Svfxo+wv0d20N+2vr5GFU1s7/ag9QyixWJjWvbSaeKY6DcT+ctUk4IrS46VA==
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=VwsWOhsC+gxCsWU0PUNp89pst7olmKW0oRN3XgmCnpw=;
 b=u6EKNSB1liEb+B9greahSXmMaR37LnFIAlBdO0UcH1okjtrCRZqDQj0C0GtYUxdwXyCuL4seeHqcJ1AMhvRoC/GcPp4D7GGiqzoMd7+aajM7/o2zVP9gzHWVMFr8sFFt9V2/jQZ0RaCkasKdlky0oOYciAtyI5g8k3FTrDJ5734j64srG4jmRuTABUzQesSLoTbhgDMc01Vc8+MR7fmcNspxhHCtNr6cLvx6H79RjEALi4xUsnEcytiMEGOZ7/YUR3E9WV4tXLMG8YKhpFEId6i0Ao/kSB/29OGBBAM+hHVfjBWJYqjcvyIGJWgkA2auaApVGnOko2XBNBg2dOU/SQ==
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>, Mirela
 Simonovic <mirela.simonovic@aggios.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Saeed
 Nowshadi <saeed.nowshadi@xilinx.com>, Mykyta Poturai
	<Mykyta_Poturai@epam.com>, Mykola Kvach <Mykola_Kvach@epam.com>
Subject: Re: [PATCH v5 10/12] xen/arm: Save/restore context on suspend/resume
Thread-Topic: [PATCH v5 10/12] xen/arm: Save/restore context on suspend/resume
Thread-Index: AQHcCwFhwpLsP6pw2kWs0ShQW6gF5Q==
Date: Sat, 23 Aug 2025 17:34:12 +0000
Message-ID: <87zfbq6iy5.fsf@epam.com>
References: <cover.1754943874.git.mykola_kvach@epam.com>
	<5441d6712a4ca0e61fd066606b9a96414123aaad.1754943875.git.mykola_kvach@epam.com>
In-Reply-To:
 <5441d6712a4ca0e61fd066606b9a96414123aaad.1754943875.git.mykola_kvach@epam.com>
	(Mykola Kvach's message of "Mon, 11 Aug 2025 23:48:06 +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_|GV2PR03MB8605:EE_
x-ms-office365-filtering-correlation-id: 3a98f562-60a4-49f9-5f29-08dde26b465c
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|366016|1800799024|42112799006|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?s7NKwtATN4rqvRL4ViLK2ApciCDAXi+gZumLOC07O7taAOiD7X0qUfpvPs?=
 =?iso-8859-1?Q?+GRNIM6ltDgQmOdVc6MM7/Q/RArBDt3WkggyLSlRqYRDL8Zt22OD9oVOsZ?=
 =?iso-8859-1?Q?3Smme1VYF/6I2CNrZsxv7wU1bNqU/zYpEsEaDivo6R8rBMvPfsTsRXQ3eO?=
 =?iso-8859-1?Q?EMV6rrggQcKHTIJTGBPdoVI5xwqLKNGoSNGIsCrwTAl02QwFR8WfqWc6oT?=
 =?iso-8859-1?Q?JnXVVkdbcM4/DgdZEIyb62WEosrnmr4D1LdepgtnN/JYM+7Au4OSJUHGkJ?=
 =?iso-8859-1?Q?tYlXEBk/IgIydA1mwwOeOMlauJV31YCEUIM/T99YaN9C5jUWdjoMoOqkUu?=
 =?iso-8859-1?Q?bGKEsPmxGlhc2RCGGmhyfVHMPmUg+LkrZOFNujAUVcQ/eplABCMATap93L?=
 =?iso-8859-1?Q?6/2JxS9rQjynNdycEb7Ve5QJjHV+d0qGZBHFPrRoeosoiRijzdR5rkxwB8?=
 =?iso-8859-1?Q?a30tJ2/zcYwTA53FkvE9btPWSmm7Q7Z+uVtYtHFzz1lXHqMwfhVyEMhYab?=
 =?iso-8859-1?Q?oi434Pz690U+pZ6jwKjq7wRERCqDAD3WMojJd0sODcgbfhIFs3+rf+vIax?=
 =?iso-8859-1?Q?Lb/9j8UgYvRf3sZIPsxPMw2P14BGHh9oC02i5kvgHngVbqSwkMd1aoo0hE?=
 =?iso-8859-1?Q?bWmm5n44bg7dfjT9T8hqT2p3zJPqLtVNCejXpTN2hLnjzTYgxWEYJ84Zz2?=
 =?iso-8859-1?Q?poHMQiC6J+Dqopzu0/qjpLK8ULCmbv2JCQTELrLoQ1sjdEFd2Zd/1McfAm?=
 =?iso-8859-1?Q?+T/SsXPAV9gX3wYaq/P73eia4kVDBflaxdc2FwGBNfrkmkEKP70wf2NFvo?=
 =?iso-8859-1?Q?9SP6opGOrzXJ+rOvqr9cQNVedwe6U/4I2MNiy+Gks2u5QpnTgvyYvOqrZo?=
 =?iso-8859-1?Q?C2+aIY64H7J5us/yLnfKl/8IBwb609B6n0eDVIigqRRlXGx9VKPizzOrtd?=
 =?iso-8859-1?Q?q/qXvj5vkplOU+KbJN+hjf6/9TgCZnuYhEUBKZ9cCERB6Z3FhX+pGgIefc?=
 =?iso-8859-1?Q?z9/zKqiOAAvUlT/+qye3KdBX9oY7yiG+8Y9w+jqP3BF5Ue1oKAh0sys61V?=
 =?iso-8859-1?Q?GJ70MQPLbmrgyHI0rZtStrqm0He2dj+JHyhSjHwHbu3RkBTB1UXyITnK4i?=
 =?iso-8859-1?Q?r+1CcqFhj2bbVC4t4wHpCASEZc8k9mwa4Oos8N6perDGoDs6C8C8FhcKP7?=
 =?iso-8859-1?Q?iyLpjIyUg0hPYsEMMHyHHXyMIc5ZwmMY7QYHMaawqwaVh55wDUeggT3Ham?=
 =?iso-8859-1?Q?SNiAdo1O5LRD0B0q0tvNI3IyXVaHdIBGbn3D+K83ldxgA+CRofT7qyXo+N?=
 =?iso-8859-1?Q?gAjsLjl1ex/ryoZSf36Vf78MHATPnuSS1RoJ+3tq2Ui5K4RIRl1XHOEzK2?=
 =?iso-8859-1?Q?PzcUNFgv+9/lphTKQN/S+PTtiyxXewZzYZbo3SQ9Y+vfktEYeKSfSbrN2O?=
 =?iso-8859-1?Q?l+mo7NzT8xge8kEA3H+mYJoY9InMO4SjmB464yO/0d2TsNC8S673DYbfVQ?=
 =?iso-8859-1?Q?p6MvKwpCnRX9ZxnZmbTF0euHXHI+Qt1qMXOFDsxirAgQnDtMAw7137tzzm?=
 =?iso-8859-1?Q?wRv4Phc=3D?=
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)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?1WvmluZKfX8Sqv89W0C3QwnipfHmXXC7mWGeb93oJ9GMQZCBYLRuqy3pwI?=
 =?iso-8859-1?Q?39afX/8fWdwQoaO+B+lLaoUcpGSK3aQ7rXzzGkz1VXckuzukh5ry7W8G90?=
 =?iso-8859-1?Q?zPhWcnIOzXfKOuc/dvwP01aWoya5i4xNCYVbo5kaufIpDhHtavmvqClK29?=
 =?iso-8859-1?Q?IQe7jsnoDA/1CRiPs6C5QcJ89Feqj4oGsBAwPJhP4dtDwlLKri5cpj+RF8?=
 =?iso-8859-1?Q?CKfAhshRhmdb9r6ePg6fcqrFeB5P/xEia6dgX15xsle2RzmTc9ShO7kh09?=
 =?iso-8859-1?Q?9UfLxDVQmU3SZoRLbp8x08PrjdIRVYfRCYZ/SI1hH0OhsC9u8YJ5SCc6gb?=
 =?iso-8859-1?Q?DZ91gWmUQK1HSDNmwV3Sc+qgTvvtvuIbrU4zkBqnBKIoYVYYozvRdK+VfB?=
 =?iso-8859-1?Q?DoR5RWzuC9tyFxY8zkC0IibdjU0PSKWFs8i0FhNxf35IXMfFE9Ne2CwG2H?=
 =?iso-8859-1?Q?wT8uGvs+wR3fHkNemLnng0iZ1RVuOHdXAx7TMFdC+yNfkAznvd1LGahiQz?=
 =?iso-8859-1?Q?4xy3YxJaxrv49j1QXnYcrIm7WbbrvfeK4LY+nQd5ry0frwCqFYRGckvQCH?=
 =?iso-8859-1?Q?5niaKe0FnenQxZ8gBAzzELhahTzGjjjk7WUUGfhznPoRChmBqz3a9XQ8qL?=
 =?iso-8859-1?Q?RUtZ90h3XSK4Y4i9gIabFqoC7FjRGAaU6A3YG4u3p04uNVvQ8G4IUHTuLa?=
 =?iso-8859-1?Q?+eC9Ui7AEJp5XlP99iQJfJ2WQU7iSL6cxqwu92QZU52wJza1jwhPPns0Kz?=
 =?iso-8859-1?Q?8whyWEcqubQU0B028ijlS1z6YpwPmQdSlzEl9z3sKiSieS7xxb7qThuECN?=
 =?iso-8859-1?Q?xBZ7QydBX2JoIhKnm9TpBZRCyVt6vljEC1gYXxh3p6qlxOXwb81WQREbeO?=
 =?iso-8859-1?Q?E7lrMsw3KqAYXtpU+h2tQZOpT2WjjaIM26xezSnHToEuRZv0SqGAri9jmN?=
 =?iso-8859-1?Q?ui9a+i+QtV1iCG3hC+7bImwZSAdYayGSqCgrxQ7uUWsORMjyq33+JV/YCT?=
 =?iso-8859-1?Q?vJ4xUBBstIzHD7O5h5BW6dDZH8nHkyQd9mhm5v7ibQt9IUK+lQc64CU3v9?=
 =?iso-8859-1?Q?J5U+oVMIzlHKKkttCh/cilGbT6m2eqWwtRvl1mOlLoE5Uuf0BnrCkeLy9w?=
 =?iso-8859-1?Q?oh5bruEB5NXhk05UEBPVuXZZLwZMUYltE9U2Q4kqQQ1UefemAfIlx0x9fN?=
 =?iso-8859-1?Q?PjD1KL4lqziKTaGJXMF9lN51PiHTsp98HdOPuu6hlW79Avb5iJ0h/ayd+S?=
 =?iso-8859-1?Q?WXeLZPMxQH9lrceQ09IgsUWDgFV2RONxLhGrcr7kaJ68Ga5o4ihERQGQ7k?=
 =?iso-8859-1?Q?8vQR+3xeRxwgX1g9xoHrpClszOhZIoeXpfWPhPS2+A0tHuNnPju+RTjfHS?=
 =?iso-8859-1?Q?TBhwZWyz5i37krPrvDD0ZxhBpKmQfSUGnPyuJRc5uSq8juJb9mp5ttqaNB?=
 =?iso-8859-1?Q?g26T+qa6Y0juRIDs/NnAR1gAunKxtUBTJakp7MeZH9ZnwbGkSEgByljWe3?=
 =?iso-8859-1?Q?vk6K+6JFQkq4l4xpM22+k/JVXf++HkFTPf8qFYUYVBtLN7+PSJG/sxKk6k?=
 =?iso-8859-1?Q?dIHx4HaeQmxpUuJgg98Dcxj/tfdTqim6QWEIiboqavBGnsnyYvbDVrgKPj?=
 =?iso-8859-1?Q?Ciy/QwKgmXmc2+VL4BrPXuyYSyTGFc1iCziP4bYPHVJeSreFM+lwOojQ?=
 =?iso-8859-1?Q?=3D=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: 3a98f562-60a4-49f9-5f29-08dde26b465c
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Aug 2025 17:34:12.5874
 (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: BoL8A33mW1ogvZ3lVf7ws2vZ70moJC2K34SnNjQrJmAWEsy7z3GZAHaLYeoZYXNifji+vtPrapB3+jvXMvqjnznFl5ZIONXGh9ZNvOzpkMI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR03MB8605


Hi Mykola,

Mykola Kvach <xakep.amatop@gmail.com> writes:

> From: Mirela Simonovic <mirela.simonovic@aggios.com>
>
> The context of CPU general purpose and system control registers
> has to be saved on suspend and restored on resume. This is
> implemented in hyp_suspend and before the return from hyp_resume
> function. The hyp_suspend is invoked just before the PSCI system
> suspend call is issued to the ATF. The hyp_suspend has to return a
> non-zero value so that the calling 'if' statement evaluates to true,
> causing the system suspend to be invoked. Upon the resume, 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 by the saved link register, which
> is the place from which the hyp_suspend was called. To ensure
> that the calling 'if' statement doesn't again evaluate to true
> and initiate system suspend, hyp_resume has to return a zero value
> after restoring the context.
>
> Note that the order of saving register context into cpu_context
> structure has to 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 v4:
> - produce build-time error for ARM32 when CONFIG_SYSTEM_SUSPEND is enable=
d
> - use register_t instead of uint64_t in cpu_context structure
> ---
>  xen/arch/arm/arm64/head.S          | 91 +++++++++++++++++++++++++++++-
>  xen/arch/arm/include/asm/suspend.h | 20 +++++++
>  xen/arch/arm/suspend.c             | 23 +++++++-
>  3 files changed, 130 insertions(+), 4 deletions(-)
>
> diff --git a/xen/arch/arm/arm64/head.S b/xen/arch/arm/arm64/head.S
> index 596e960152..ad8b48de3a 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 hyp_suspend(struct cpu_context *ptr)
> + *
> + * 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.
> + * hyp_suspend shall return a non-zero value. Upon restoring context
> + * hyp_resume shall return value zero instead. From C code that invokes
> + * hyp_suspend, the return value is interpreted to determine whether the=
 context
> + * is saved (hyp_suspend) or restored (hyp_resume).
> + */
> +FUNC(hyp_suspend)

I don't think that hyp_suspend is the correct name, as this function in
fact suspend_nothing. Maybe "prepare_resume_ctx" will be better?

> +        /* Store callee-saved registers */
> +        stp     x19, x20, [x0], #16

If you have struct cpu_context defined, then you probably should use
define provided by <asm-offsets.h> to access struct fields. Otherwise,
it will be really easy to get desync between struct definition and this
asm code.

> +        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
> +
> +        /* hyp_suspend must return a non-zero value */
> +        mov     x0, #1
> +        ret
> +END(hyp_suspend)
> =20
>  FUNC(hyp_resume)
>          /* Initialize the UART if earlyprintk has been enabled. */
> @@ -580,7 +626,50 @@ 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
> +         * TODO: can we reuse __context_switch and saved_context struct =
here ?
> +         */

This is a great idea and I like it very much, but sadly saved_context
struct has no fields for system _EL2 registers.

> +        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 hyp_suspend. To distinguish a return from hyp_sus=
pend
> +         * which is called upon finalizing the suspend, as opposed to re=
turn
> +         * from this function which executes on resume, we need to retur=
n 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 55041a5d06..ae71ccb87b 100644
> --- a/xen/arch/arm/include/asm/suspend.h
> +++ b/xen/arch/arm/include/asm/suspend.h
> @@ -5,9 +5,29 @@
> =20
>  #ifdef CONFIG_SYSTEM_SUSPEND
> =20
> +#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 host_system_suspend(void);
> =20
>  void hyp_resume(void);
> +int hyp_suspend(struct cpu_context *ptr);
> =20
>  #endif /* CONFIG_SYSTEM_SUSPEND */
> =20
> diff --git a/xen/arch/arm/suspend.c b/xen/arch/arm/suspend.c
> index 08b6acaede..b5398e5ca6 100644
> --- a/xen/arch/arm/suspend.c
> +++ b/xen/arch/arm/suspend.c
> @@ -1,6 +1,7 @@
>  /* SPDX-License-Identifier: GPL-2.0-only */
> =20
>  #include <asm/psci.h>
> +#include <asm/suspend.h>
>  #include <xen/console.h>
>  #include <xen/cpu.h>
>  #include <xen/llc-coloring.h>
> @@ -17,6 +18,8 @@
>   *  - Investigate feasibility and need for implementing system suspend o=
n ARM32
>   */
> =20
> +struct cpu_context cpu_context;
> +
>  /* Xen suspend. Note: data is not used (suspend is the suspend to RAM) *=
/
>  static long system_suspend(void *data)
>  {
> @@ -73,9 +76,23 @@ static long system_suspend(void *data)
>       */
>      update_boot_mapping(true);
> =20
> -    status =3D call_psci_system_suspend();
> -    if ( status )
> -        dprintk(XENLOG_WARNING, "PSCI system suspend failed, err=3D%d\n"=
, status);
> +    if ( hyp_suspend(&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. Execut=
ion
> +         * will continue from hyp_resume which is the hypervisor's resum=
e point.
> +         * In hyp_resume CPU context will be restored and since link-reg=
ister is
> +         * restored as well, it will appear to return from hyp_suspend. =
The
> +         * difference in returning from hyp_suspend on system suspend ve=
rsus
> +         * 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 contr=
ol flow
> +         * will not re-enter this 'if' branch on resume.
> +         */

Looks like this comment is misplaced. It should be before "if (
hyp_suspend() )", right?

> +        if ( status )
> +            dprintk(XENLOG_WARNING, "PSCI system suspend failed, err=3D%=
d\n", status);
> +    }
> =20
>      system_state =3D SYS_STATE_resume;
>      update_boot_mapping(false);

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Sat Aug 23 17:48:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Aug 2025 17:48:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1091399.1448032 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upsM2-0000SA-EX; Sat, 23 Aug 2025 17:48:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1091399.1448032; Sat, 23 Aug 2025 17:48: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 1upsM2-0000S3-BT; Sat, 23 Aug 2025 17:48:38 +0000
Received: by outflank-mailman (input) for mailman id 1091399;
 Sat, 23 Aug 2025 17:48:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Yyzx=3D=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1upsM0-0000Rx-PI
 for xen-devel@lists.xenproject.org; Sat, 23 Aug 2025 17:48:36 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c201::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 64698c1e-8049-11f0-a32b-13f23c93f187;
 Sat, 23 Aug 2025 19:48:35 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by DU5PR03MB10472.eurprd03.prod.outlook.com
 (2603:10a6:10:526::5) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Sat, 23 Aug
 2025 17:48:32 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9052.019; Sat, 23 Aug 2025
 17:48: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>
X-Inumbo-ID: 64698c1e-8049-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uP72VS07U9Psaa8Cgf2O8CnI5Lh5kdwy0kR9tP2kljIAACkY1MjouRzle07wdK7Ck7c6cT3cqbVbJgCYKcBjcP8lqfTp6v5jhrk53iI9ETv5RfsMy/2+HVLSbcZq5eeggYe3Doo6fRaYpt6T6fBlM87mtSZQ1Vk/4a0bHDbTEHSqLNk4KpK3rM+jk2On500tnTrmv5O8tGURs7SBqfrZXxI5aeABnveUe2a4V+erKTY/YuNiP5GlxjcF7JlgMl/vdJzNolU5X2V1DOdjpsehKi4NHeQNNqY0Gs+geJIAJkKD2gHmTAM22VGCPz6PkoggINelqNrHzV2Jrfa7f3WnsA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=byq5LKwoiIkTRZ5imbGlcqxqp6QNf2lEqPGd2vliNl8=;
 b=sIC3Y1+/nP+sWxXfYDozXsFFhPw87qM37DWQhiJwoEe5FXHZWAGvy4f/ikDs2SqVh+NV92YfUveFYjGUHI7kK+eEdjt0DkzMcYq3bbbmvY+aEPnV2bW1cKqZTPYuTiUfshiga0ew9UeQIZFuSvC2hpsbA7lO9646VzkWaMSNVm6EZVaG17XJ3k3fJggfKan+z1b7TzA/7+dsOP+XHOcbf91HWbI4HEa79HlNnyqqhgXZcG01M1l6+vWwFvHI3gDbsaJDHGB2NXazNsz9S9iX2JTk/rbI41oS1IodRTorJJRhtz0q0z7YeiVdj0LQCVNUFeK2C5o9OXItpJ7hpQmo6Q==
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=byq5LKwoiIkTRZ5imbGlcqxqp6QNf2lEqPGd2vliNl8=;
 b=hsnT0TjqGjRYMBrijOtWqtWd9vtMEASsBmQiLXVj41t1TbuD1jBgzqqT4PBsVmaquP+ka3iqPyyiLVHAiQTbLmkKF2es5Of0nMQGwKGZBqUOpyx0zZCRte1y+E/qktO8e2qbIfwPVFAtpgmEzPneyrutR0Mg3z/4ZYeQwrVFMJXSZb9gJihdFNnNCLrSO2zSWGYZ0aNq1c5y4fdl0Qvhpdu0vRB/Drum8bltlG2p9dfX6oEtu1qUuTT4yxhHtP1kHbKi0yVkiooiYLuTpmJuwBuIpGMFOeoZeaC0Xe1qHRyeihxck3b8ROhLVNYBFB/9gsNUBsKmQsRWdQmHv5fJiA==
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>,
	Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Mykola Kvach
	<Mykola_Kvach@epam.com>
Subject: Re: [PATCH v5 11/12] iommu/ipmmu-vmsa: Implement suspend/resume
 callbacks
Thread-Topic: [PATCH v5 11/12] iommu/ipmmu-vmsa: Implement suspend/resume
 callbacks
Thread-Index: AQHcCwFkX4gJFYauN0Oe6YQWa2GY2g==
Date: Sat, 23 Aug 2025 17:48:32 +0000
Message-ID: <87ldna6ia8.fsf@epam.com>
References: <cover.1754943874.git.mykola_kvach@epam.com>
	<1689d707b930b1ea4f63cc150810e548962cda81.1754943875.git.mykola_kvach@epam.com>
In-Reply-To:
 <1689d707b930b1ea4f63cc150810e548962cda81.1754943875.git.mykola_kvach@epam.com>
	(Mykola Kvach's message of "Mon, 11 Aug 2025 23:48: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_|DU5PR03MB10472:EE_
x-ms-office365-filtering-correlation-id: 9f7dfd8f-7d0f-45f0-bf4e-08dde26d4705
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|366016|1800799024|42112799006|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?1Cj6M2wroFh8YtD9k/Idb1dTvnZoMDox/koniKFeoFuNIPycIOftelglqL?=
 =?iso-8859-1?Q?hGLOJSIW6F6P4s479U0H1zIaIV7BHMWp5lUlRbvVpYmDGJVcpsoTGNFJAT?=
 =?iso-8859-1?Q?oxtk5OSYT/l1+N5+WnyGtiKWsCdn4sMc+XMdIQVcMJzUUZTbFv7z9KZS2w?=
 =?iso-8859-1?Q?Al7KQuR6s1clpYAzq2vqjfq/LIDKaBNULBHIkLpAxYfwLmuTsKpphHeHin?=
 =?iso-8859-1?Q?2Ib7mVgqUvlQsc75dUk7z+MA5vqY9I+P6wydw2Sv6J2MfjgPxwI4zSVcy0?=
 =?iso-8859-1?Q?P39go3lmk8/f5WqtKVrSHkU7b4pcpUBIcBYl6ta+XjLa7LO7nd1uJNZ8am?=
 =?iso-8859-1?Q?LpIpCJh3owe5qMBRIFvW35hFyY6vShYMyIb8AhLeDlS7WUmiABRK9J4Z98?=
 =?iso-8859-1?Q?IuI+N+6ehkILkCjOYe9x5zjgTgK3RwFcGEiR/npIxF9Qv1xdfZHZDVzuaJ?=
 =?iso-8859-1?Q?qzYHS20r66i9zRmQoPo1P0JcK2ejfr1zo3opgs01IZjZe8hzIH7oy5r0IG?=
 =?iso-8859-1?Q?VLWJNJcBzDurKoXX4dpcSXEuvmyerU7sfSrZzgcLS9O5KFiYM9f0sOH9YV?=
 =?iso-8859-1?Q?Ffoyk+dvdU4WWtBlHQitArFidvrw8PtXeNUproJdZYf0Hrlrce0pNyf1Bk?=
 =?iso-8859-1?Q?6969glRn5FWm9H8z81O10kv+2hsw/IE5AnGGnTAAuUZsS0elkT/cFmAdJ2?=
 =?iso-8859-1?Q?azhSUQu7pSLFYHsD2ng6og85TairPePCNIujz65EkuClc6IbKMulfOHH2+?=
 =?iso-8859-1?Q?LglBTuHpiI6vU/Ek7nu8udV4Z1Mg/U/9u/6NC8NXpPtwyqnQmlypffa85U?=
 =?iso-8859-1?Q?rnVQpLXE6PYCb0ajWjJxLqj5mwXlt1+v8yRexfUoTvG6wLhwLiBd7N50ZI?=
 =?iso-8859-1?Q?tt+AQ5A4goXx0e5KYOjbDjHigQHKb5ugVkT3yCwRANQieK3p2C7fyosX7W?=
 =?iso-8859-1?Q?CyRRhENrr310gYCJJawoi3+YOQJSixXusAd/oToGL35/ASj1aaM3Wfil3t?=
 =?iso-8859-1?Q?sQbb9aaiz5ZRa3Y+M48XVMNFViLhFX/7GyEquCyffwOabdYfuoeomfUh/P?=
 =?iso-8859-1?Q?5FIp93OYZ6SdvD9ObLK0IcEUZ9YQ66EqygTFTGS+RJ1n661/3C+RBctfRR?=
 =?iso-8859-1?Q?8oKvWoUxkO3UGx0w5wrqR5IbdoczJAtF1N9xeiXkEspAL0za+5LJvmAQFc?=
 =?iso-8859-1?Q?gSh1H5g5wqC/sWVWStM4u1LQ2+iyqaABbdDZCjwB9DeHbDPvbmvtoV6nMq?=
 =?iso-8859-1?Q?ormUPd2RJebj69tMxNff9bsBf3CwTDQQ8QwlSjf/NeUHUcdBU51nWjNilF?=
 =?iso-8859-1?Q?ls+JZCqnpwNRnsn6xrBl0QQGqDVciCModvaX9RpXmElZF4qi1LeKZ1hMOd?=
 =?iso-8859-1?Q?iMbCp9mJofdVjOkglHlX+REfeuP4Ha6yYd6ZGbJ2L+g2pfSB7nqTNI2Xo9?=
 =?iso-8859-1?Q?Gregs68wO/6rNVFY+gbUWOqPyg9mmLCvW6REY3Nbui78qJd0djFg6SBaEe?=
 =?iso-8859-1?Q?cTOFxg9SNQK9Ge3Jg3cUK91HZyO9HIfJV2chry4Er+FVCA5exiHMVImwF5?=
 =?iso-8859-1?Q?7iR18R4=3D?=
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)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?EiYyLkU2bv7WisGBlhLlqXdoMb7M9mz5XqAa/Z44HrRQt5LTqazS1jm5Vp?=
 =?iso-8859-1?Q?DWwEtoFS2iKYKlDZYWrosy6WNxYa0j0Cq7CSbno8wDDEdUwzz8mPKkDCf2?=
 =?iso-8859-1?Q?vS6n7xXvnydy5H2xidHvsPra4PuXsn/a7WmGOLyiAcqUc/IiLfCRmoNMA4?=
 =?iso-8859-1?Q?4bdrBIJ9KjMniDI9crZDQhS3Ynbefa0RBMRLAm0+GVDWsQ3HTkl4Y+lnuz?=
 =?iso-8859-1?Q?TVey6TlsnieV3k2jArP+Z9qNX9xpGtyKSEx5xigmZgkN5EqzsT7JtOW2P7?=
 =?iso-8859-1?Q?y0stK6Y292dREX1TmlRJdSdshS4EFtjTSrYSUglcig74+frWMNo4aBuaBi?=
 =?iso-8859-1?Q?pJ+UMhXlQAFFukgQg0iihzPpIb8fHbuPI0D6XiviTa7K7rMq2GuiK7S7cz?=
 =?iso-8859-1?Q?k1VXtuV6ufLjSJURGTGIxfvCf+m7MXOXZC0/tItvuye4OumIEewEYz7JjD?=
 =?iso-8859-1?Q?Jd9RSuafqW5IdARZmy88iyQibc8B+17gZOQe+D8g0Wa+kWIEe2sGS9pEeQ?=
 =?iso-8859-1?Q?lvM6tpGlVE+eFM0SLkUYMye23Klh+uiF5omOwtnfTLGh7OpJ/h9jb1NzNA?=
 =?iso-8859-1?Q?MQg7/dUOiYny47Rl/F4H4z/I39NHBYAWNfTBS3DomZGrgggEvaryiqJBnv?=
 =?iso-8859-1?Q?KETgo/E+j40cH3HSrToZInnB1ZhNyanl1OY0RUh1h9VkFDaZKXD7yYwh2R?=
 =?iso-8859-1?Q?ZRH5IzMkvBaYXSu/smupW4gqujqa2wHos3BcNuDzQBsrojB4KyW5U6dpae?=
 =?iso-8859-1?Q?IrJA2FiJ908KA9xxQzZV6yZhRU+er63OVPrbJ79ptw9/0PvyTKKbHRi6sf?=
 =?iso-8859-1?Q?5vq6NnLQvCNZY2dXRrt6dG0xMYMa7EXYYEMh7rRpUt6W1sqMStqv11FmZ/?=
 =?iso-8859-1?Q?IOgRnYMERS0P3Xk8n3S7RW+oiiOxI1lvLES40AB0qE4jMfyumhZMWeZ0v4?=
 =?iso-8859-1?Q?WUpqfHK2/oWBjbG358pLKiYYSc59yyaqw+OluWkZM1v2859vb7VLmXesiw?=
 =?iso-8859-1?Q?+iNm06AYtyC+u/zcaTvau4rUNUBEGBhVRPK55Qhb4Cr5HZYRp6oNx/I2D1?=
 =?iso-8859-1?Q?79TqxwY5YnyQ5ReMEhgwWfWKxn1YZPVhq06ufZ4+bu3bDJHtl/L4CZDY/H?=
 =?iso-8859-1?Q?rm//gIPgoZOJUusKqAUqH3Mkhxymlq8nznPy4Ju4xm4MIoBYl20VmHif+O?=
 =?iso-8859-1?Q?77DTP5JaAULgkJ0F2iaz9Y4XY0Vw1ClP0phBODuMOGHZAsBBlYTqflnG10?=
 =?iso-8859-1?Q?pLvz5ln/vxMiC4sqYEu5xugqcnQbGiu+BHy+s8tzPTE8k5EtvXmdWgJUrc?=
 =?iso-8859-1?Q?f51SH78iEqMy/ja9pFMiWUCFhDdu7zAyfekaF4IzwxRrkmqkMHyn0fR+rf?=
 =?iso-8859-1?Q?7zSZkc7Yszwn4+n69fHcfkPdw3M4bkyD1kQThw4UaDXyJe7/S1fTPry1CD?=
 =?iso-8859-1?Q?e4YPXlfKgISQGBcrNnawYhdadkVjuqcx7gAO7a4oYY4qU+6y/UHAP9bNSp?=
 =?iso-8859-1?Q?LyV7VgJYQDlehGR0CtSPbJDdNb7JbwCnLNxZ4Tx150uT6woBEB2abQVcmL?=
 =?iso-8859-1?Q?BpDutQ/QXmmVzoFOJcrNkxifcthGgTD9tlxsdu0phiSqFojUW+gEKg9T+U?=
 =?iso-8859-1?Q?Vru1uQap4kWdLfL52ztepRFekDvJcIvDXyxmVHKGWaJ8WSE2ggn7Yd/A?=
 =?iso-8859-1?Q?=3D=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: 9f7dfd8f-7d0f-45f0-bf4e-08dde26d4705
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Aug 2025 17:48:32.6935
 (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: /YMzoJoEAhK8WKjIMxwntNQ9q5wyLV/+q+ETLIH9Qfo2KAJID7rX4FA4drjpc/yiaXGYo7kuJkQGacGz+GQw+MBvImi1dO3O/KhZlnBSv1c=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU5PR03MB10472


Hi Mykola,

Mykola Kvach <xakep.amatop@gmail.com> writes:

> 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>
> ---
>  xen/drivers/passthrough/arm/ipmmu-vmsa.c | 269 +++++++++++++++++++++++
>  1 file changed, 269 insertions(+)
>
> diff --git a/xen/drivers/passthrough/arm/ipmmu-vmsa.c b/xen/drivers/passt=
hrough/arm/ipmmu-vmsa.c
> index dac0dd6d46..ced762657a 100644
> --- a/xen/drivers/passthrough/arm/ipmmu-vmsa.c
> +++ b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
> @@ -58,6 +58,8 @@
>  #define dev_print(dev, lvl, fmt, ...)    \
>      printk(lvl "ipmmu: %s: " fmt, dev_name(dev), ## __VA_ARGS__)
> =20
> +#define dev_dbg(dev, fmt, ...)    \
> +    dev_print(dev, XENLOG_DEBUG, fmt, ## __VA_ARGS__)
>  #define dev_info(dev, fmt, ...)    \
>      dev_print(dev, XENLOG_INFO, fmt, ## __VA_ARGS__)
>  #define dev_warn(dev, fmt, ...)    \
> @@ -117,6 +119,23 @@ struct ipmmu_features {
>      unsigned int imuctr_ttsel_mask;
>  };
> =20
> +#ifdef CONFIG_SYSTEM_SUSPEND
> +
> +struct hw_register {
> +    const char *reg_name;

Do you really need to store register name? It is not used anywhere.

> +    unsigned int reg_offset;
> +    unsigned int reg_data;
> +};
> +
> +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;
> @@ -129,6 +148,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 hw_register *reg_backup[IPMMU_CTX_MAX];
> +#endif
>  };
> =20
>  /*
> @@ -534,6 +556,235 @@ static void ipmmu_domain_free_context(struct ipmmu_=
vmsa_device *mmu,
>      spin_unlock_irqrestore(&mmu->lock, flags);
>  }
> =20
> +#ifdef CONFIG_SYSTEM_SUSPEND
> +
> +static DEFINE_SPINLOCK(ipmmu_devices_backup_lock);
> +static LIST_HEAD(ipmmu_devices_backup);
> +
> +#define HW_REGISTER_BACKUP_SIZE 4
> +
> +static struct hw_register root_pgtable[IPMMU_CTX_MAX][HW_REGISTER_BACKUP=
_SIZE] =3D {
> +    [0 ... (IPMMU_CTX_MAX - 1)] =3D {
> +        {"IMTTLBR0", IMTTLBR0, 0},
> +        {"IMTTUBR0", IMTTUBR0, 0},
> +        {"IMTTBCR",  IMTTBCR,  0},
> +        {"IMCTR",    IMCTR,    0},

Taking into account that only 4 registers needs to be saved, will it be
easier and more efficient to have a hardcoded struct like this?

struct ipmmu_reg_ctx {
    unsigned int imttlbr0;
    unsigned int imttubr0;
    unsigned int imttbcr;
    unsigned int imctr;
}

instead of hw_register[] ?

Especially taking into account that struct ipmmu_vmsa_backup{} does
exactly this.


> +    }
> +};
> +
> +static uint32_t ipmmu_imuasid_read(struct ipmmu_vmsa_device *mmu,
> +                                   unsigned int utlb)
> +{
> +    return ipmmu_read(mmu, ipmmu_utlb_reg(mmu, IMUASID(utlb)));
> +}
> +
> +static void ipmmu_utlbs_backup(struct ipmmu_vmsa_device *mmu)
> +{
> +    struct ipmmu_vmsa_backup *backup_data;
> +
> +    dev_dbg(mmu->dev, "Handle micro-TLBs backup\n");
> +
> +    spin_lock(&ipmmu_devices_backup_lock);
> +
> +    list_for_each_entry( backup_data, &ipmmu_devices_backup, list )
> +    {
> +        struct iommu_fwspec *fwspec =3D dev_iommu_fwspec_get(backup_data=
->dev);
> +        unsigned int i;
> +
> +        if ( to_ipmmu(backup_data->dev) !=3D mmu )
> +            continue;
> +
> +        for ( i =3D 0; i < fwspec->num_ids; i++ )
> +        {
> +            unsigned int utlb =3D fwspec->ids[i];
> +
> +            backup_data->asids_val[i] =3D ipmmu_imuasid_read(mmu, utlb);
> +            backup_data->utlbs_val[i] =3D ipmmu_imuctr_read(mmu, utlb);
> +        }
> +    }
> +
> +    spin_unlock(&ipmmu_devices_backup_lock);
> +}
> +
> +static void ipmmu_utlbs_restore(struct ipmmu_vmsa_device *mmu)
> +{
> +    struct ipmmu_vmsa_backup *backup_data;
> +
> +    dev_dbg(mmu->dev, "Handle micro-TLBs restore\n");
> +
> +    spin_lock(&ipmmu_devices_backup_lock);
> +
> +    list_for_each_entry( backup_data, &ipmmu_devices_backup, list )
> +    {
> +        struct iommu_fwspec *fwspec =3D dev_iommu_fwspec_get(backup_data=
->dev);
> +        unsigned int i;
> +
> +        if ( to_ipmmu(backup_data->dev) !=3D mmu )
> +            continue;
> +
> +        for ( i =3D 0; i < fwspec->num_ids; i++ )
> +        {
> +            unsigned int utlb =3D fwspec->ids[i];
> +
> +            ipmmu_imuasid_write(mmu, utlb, backup_data->asids_val[i]);
> +            ipmmu_imuctr_write(mmu, utlb, backup_data->utlbs_val[i]);
> +        }
> +    }
> +
> +    spin_unlock(&ipmmu_devices_backup_lock);
> +}
> +
> +static void ipmmu_domain_backup_context(struct ipmmu_vmsa_domain *domain=
)
> +{
> +    struct ipmmu_vmsa_device *mmu =3D domain->mmu->root;
> +    struct hw_register *reg =3D mmu->reg_backup[domain->context_id];
> +    unsigned int i;
> +
> +    dev_dbg(mmu->dev, "Handle domain context %u backup\n", domain->conte=
xt_id);
> +
> +    for ( i =3D 0; i < HW_REGISTER_BACKUP_SIZE; i++ )
> +        reg[i].reg_data =3D ipmmu_ctx_read_root(domain, reg[i].reg_offse=
t);
> +}
> +
> +static void ipmmu_domain_restore_context(struct ipmmu_vmsa_domain *domai=
n)
> +{
> +    struct ipmmu_vmsa_device *mmu =3D domain->mmu->root;
> +    struct hw_register *reg =3D mmu->reg_backup[domain->context_id];
> +    unsigned int i;
> +
> +    dev_dbg(mmu->dev, "Handle domain context %u restore\n", domain->cont=
ext_id);
> +
> +    for ( i =3D 0; i < HW_REGISTER_BACKUP_SIZE; i++ )
> +    {
> +        if ( reg[i].reg_offset !=3D IMCTR )
> +            ipmmu_ctx_write_root(domain, reg[i].reg_offset, reg[i].reg_d=
ata);
> +        else
> +            ipmmu_ctx_write_all(domain, reg[i].reg_offset,
> +                                reg[i].reg_data | IMCTR_FLUSH);
> +    }
> +}
> +
> +/*
> + * Xen: Unlike Linux implementation, Xen uses a single driver instance
> + * for handling all IPMMUs. There is no framework for ipmmu_suspend/resu=
me
> + * callbacks to be invoked for each IPMMU device. So, we need to iterate
> + * through all registered IPMMUs performing required actions.
> + *
> + * Also take care of restoring special settings, such as translation
> + * table format, etc.
> + */
> +static int __must_check ipmmu_suspend(void)
> +{
> +    struct ipmmu_vmsa_device *mmu;
> +
> +    if ( !iommu_enabled )
> +        return 0;
> +
> +    printk(XENLOG_DEBUG "ipmmu: Suspending ...\n");
> +
> +    spin_lock(&ipmmu_devices_lock);
> +
> +    list_for_each_entry( mmu, &ipmmu_devices, list )
> +    {
> +        if ( ipmmu_is_root(mmu) )
> +        {
> +            unsigned int i;
> +
> +            for ( i =3D 0; i < mmu->num_ctx; i++ )
> +            {
> +                if ( !mmu->domains[i] )
> +                    continue;
> +                ipmmu_domain_backup_context(mmu->domains[i]);
> +            }
> +        }
> +        else
> +            ipmmu_utlbs_backup(mmu);
> +    }
> +
> +    spin_unlock(&ipmmu_devices_lock);
> +
> +    return 0;
> +}
> +
> +static void ipmmu_resume(void)
> +{
> +    struct ipmmu_vmsa_device *mmu;
> +
> +    if ( !iommu_enabled )
> +        return;
> +
> +    printk(XENLOG_DEBUG "ipmmu: Resuming ...\n");
> +
> +    spin_lock(&ipmmu_devices_lock);
> +
> +    list_for_each_entry( mmu, &ipmmu_devices, list )
> +    {
> +        uint32_t reg;
> +
> +        /* Do not use security group function */
> +        reg =3D 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 =3D IMSAUXCTLR + mmu->features->control_offset_base;
> +            ipmmu_write(mmu, reg, ipmmu_read(mmu, reg) | IMSAUXCTLR_S2PT=
E);
> +
> +            for ( i =3D 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 =3D dev_iommu_fwspec_get(dev);
> +
> +    utlbs_val =3D xzalloc_array(unsigned int, fwspec->num_ids);
> +    if ( !utlbs_val )
> +        return -ENOMEM;
> +
> +    asids_val =3D xzalloc_array(unsigned int, fwspec->num_ids);
> +    if ( !asids_val )
> +    {
> +        xfree(utlbs_val);
> +        return -ENOMEM;
> +    }
> +
> +    backup_data =3D xzalloc(struct ipmmu_vmsa_backup);
> +    if ( !backup_data )
> +    {
> +        xfree(utlbs_val);
> +        xfree(asids_val);
> +        return -ENOMEM;
> +    }
> +
> +    backup_data->dev =3D dev;
> +    backup_data->utlbs_val =3D utlbs_val;
> +    backup_data->asids_val =3D asids_val;
> +
> +    spin_lock(&ipmmu_devices_backup_lock);
> +    list_add(&backup_data->list, &ipmmu_devices_backup);
> +    spin_unlock(&ipmmu_devices_backup_lock);
> +
> +    return 0;
> +}
> +
> +#endif /* CONFIG_SYSTEM_SUSPEND */
> +
>  static int ipmmu_domain_init_context(struct ipmmu_vmsa_domain *domain)
>  {
>      uint64_t ttbr;
> @@ -546,6 +797,9 @@ static int ipmmu_domain_init_context(struct ipmmu_vms=
a_domain *domain)
>          return ret;
> =20
>      domain->context_id =3D ret;
> +#ifdef CONFIG_SYSTEM_SUSPEND
> +    domain->mmu->root->reg_backup[ret] =3D root_pgtable[ret];
> +#endif
> =20
>      /*
>       * TTBR0
> @@ -602,6 +856,9 @@ static void ipmmu_domain_destroy_context(struct ipmmu=
_vmsa_domain *domain)
>      ipmmu_ctx_write_root(domain, IMCTR, IMCTR_FLUSH);
>      ipmmu_tlb_sync(domain);
> =20
> +#ifdef CONFIG_SYSTEM_SUSPEND
> +    domain->mmu->root->reg_backup[domain->context_id] =3D NULL;
> +#endif
>      ipmmu_domain_free_context(domain->mmu->root, domain->context_id);
>  }
> =20
> @@ -1307,6 +1564,14 @@ static int ipmmu_add_device(u8 devfn, struct devic=
e *dev)
>      /* Let Xen know that the master device is protected by an IOMMU. */
>      dt_device_set_protected(dev_to_dt(dev));
> =20
> +#ifdef CONFIG_SYSTEM_SUSPEND
> +    if ( ipmmu_alloc_ctx_suspend(dev) )
> +    {
> +        dev_err(dev, "Failed to allocate context for suspend\n");
> +        return -ENOMEM;
> +    }
> +#endif
> +
>      dev_info(dev, "Added master device (IPMMU %s micro-TLBs %u)\n",
>               dev_name(fwspec->iommu_dev), fwspec->num_ids);
> =20
> @@ -1372,6 +1637,10 @@ static const struct iommu_ops ipmmu_iommu_ops =3D
>      .unmap_page      =3D arm_iommu_unmap_page,
>      .dt_xlate        =3D ipmmu_dt_xlate,
>      .add_device      =3D ipmmu_add_device,
> +#ifdef CONFIG_SYSTEM_SUSPEND
> +    .suspend         =3D ipmmu_suspend,
> +    .resume          =3D ipmmu_resume,
> +#endif
>  };
> =20
>  static __init int ipmmu_init(struct dt_device_node *node, const void *da=
ta)

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Sat Aug 23 17:55:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Aug 2025 17:55:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1091413.1448043 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upsSF-00028u-70; Sat, 23 Aug 2025 17:55:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1091413.1448043; Sat, 23 Aug 2025 17:55:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upsSF-00028n-4A; Sat, 23 Aug 2025 17:55:03 +0000
Received: by outflank-mailman (input) for mailman id 1091413;
 Sat, 23 Aug 2025 17:55:01 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Yyzx=3D=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1upsSD-00028h-Jf
 for xen-devel@lists.xenproject.org; Sat, 23 Aug 2025 17:55:01 +0000
Received: from DB3PR0202CU003.outbound.protection.outlook.com
 (mail-northeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c200::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 49bc8abe-804a-11f0-a32b-13f23c93f187;
 Sat, 23 Aug 2025 19:55:00 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by DU5PR03MB10472.eurprd03.prod.outlook.com
 (2603:10a6:10:526::5) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Sat, 23 Aug
 2025 17:54:57 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9052.019; Sat, 23 Aug 2025
 17:54:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 49bc8abe-804a-11f0-a32b-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FTMsOC16xWTSYcAxciXZvwX2oQGnsnrXZswe6B6KTdP/7RbN/+XCYF/WZPABlB5hFmEB537orgjhSLBRnnNCdZc9OAJuY1H4Acu0asKEaq/OAaT+nOGiSs1y/NH0UBafPXkq82bOWRPlx58ccspHVtibOE32qGiQbyTw8efSoCTJkJc+/LDFu3BuOkdb9fnk4RF4X8He6y5cQbzLvrXFp4fVWvO8wr5KlK9kA5zrBWk962rcCK49VuZtgYZ1UefoTukEEQW0fMwB3ieRhuFZI6a949h1MQuHDyrlcmv4NG2VvJRK7EgNi8Afu/xbp1BeBuuaCsOaFfiQpHkKzm0Lsg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=9fcxaXrq0SZlNy8eHiChW4oOS6ZDWiGhY9bGKbcpiu4=;
 b=SLv6mg9i41bFL2cIK8wBmenOUAL8enIfunnMsSwPW7Eywkorpk4nGSg/eT41qTPHdh7QNpfVRQEde/Iemo31sqIxbtwDKVaAQwKUImzTisb7jDuu170symdxXSCkk6EJAzUjK0JPrgmsIGYxO+AJMaQKEvyDSSLN1Dfj16Sbid+v4pQ9CFK23nuDIk2uHLRNgxyHkUq7htjVG9XGuny72br9IXHKr9AtO3MLE7/8krJz1wSmOHV9XWDptOPY2GPmwXsbA+lZcW99T0PK9d754klinkW2NkTl1MUbdNFr4eqt30oeqLtSjJYrdW9w4q17ylpcA+HBwo57Ec3CFClv4g==
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=9fcxaXrq0SZlNy8eHiChW4oOS6ZDWiGhY9bGKbcpiu4=;
 b=Fd79Oeu21vuIGiyeLPE9wLBcF7I09ZhONhjkfNnhI8O5phum3zGNAMLaF054zay8/1B62g9AYXhDftzRGoP3ycnz4gTfe+AiCdfEv/JK1SCHVF85/EvjDzlIgWjXeZSg0p9LESHMfOtNqHaJrbuvfp6a9kDUNm2I6+b6LTpV0LuFArmasgTK2BnBEswyUKkMKxWot3Kd+K6AvCNFL+gO++3HQ7Qiu/Z7dnmZPwFIWLdl+1rvh+vPjkS7RQrD8qYy0NXHoFNtG54lHmI5Bpt0rCL2eN9smf5MGKkdtFYkC2laotqMq1SlTdfYP6CF612VVhhly84GIbOkQ8tyPudpSg==
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>,
	Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, Mykola Kvach
	<Mykola_Kvach@epam.com>, Oleksandr Andrushchenko
	<Oleksandr_Andrushchenko@epam.com>
Subject: Re: [PATCH v5 12/12] xen/arm: Suspend/resume IOMMU on Xen
 suspend/resume
Thread-Topic: [PATCH v5 12/12] xen/arm: Suspend/resume IOMMU on Xen
 suspend/resume
Thread-Index: AQHcCwFkkQdjEXTsbESLorqeX+r1kg==
Date: Sat, 23 Aug 2025 17:54:56 +0000
Message-ID: <87frdh7wk0.fsf@epam.com>
References: <cover.1754943874.git.mykola_kvach@epam.com>
	<821e0762f64c8b33260a59c672eabf1da5fb4dd4.1754943875.git.mykola_kvach@epam.com>
In-Reply-To:
 <821e0762f64c8b33260a59c672eabf1da5fb4dd4.1754943875.git.mykola_kvach@epam.com>
	(Mykola Kvach's message of "Mon, 11 Aug 2025 23:48:08 +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_|DU5PR03MB10472:EE_
x-ms-office365-filtering-correlation-id: a3358d29-bb3c-4027-f6d7-08dde26e2c1e
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|366016|1800799024|42112799006|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?tOg6xn1j0XuKtGCxgFs/NJxuggLmjnXJIeqXe27tR5pIz/RvuMT/Qr6988?=
 =?iso-8859-1?Q?lFnSv7s19S17RbV8Pjxhygd+usQs4VJMgk4ZgoeDEOB4fjSCk7kTnRtQmh?=
 =?iso-8859-1?Q?dIoLbjWPVLRv5oRxwfFmUEAFtr9POSaSMm63I0R9zzOf1UchdziKGAxiSD?=
 =?iso-8859-1?Q?1A1lztbbL65ivucfCVeHATYJ0Jh66YzqMH+vqsDQaH0TGS75iMdSGOakTt?=
 =?iso-8859-1?Q?JLEfkX8ddziTmhnVfelj6zgyLwKndgEf39Vi0w15vAzy4Ikyl/Pql+CwjD?=
 =?iso-8859-1?Q?64aZ6j72G+rNTLO8Z+QCvREYphxsY/gSVhWxJSSVzetWSKkHV4P5RVP5Cg?=
 =?iso-8859-1?Q?1B4a6nXrdgz6ANZ4fQAqZZZ/8m8GL0Q/V3M4n0TQd88XAgF1rDfAqxvRvW?=
 =?iso-8859-1?Q?OA3KpBec67l64sbhtT+7p5bRjQXFiQslWliWg/TKc34ENr/gmrdmwhrYy7?=
 =?iso-8859-1?Q?N4PoInDPLXVV3WOFQK2jnin4LOSpWaq/YiYxEMlpTqa0b7jeUqGti3Eob5?=
 =?iso-8859-1?Q?ioTBiv3YAa3PL2s8aZB30KJ29iKDsoYrArIIptZMayHZ7qFXjSdK6GUU3L?=
 =?iso-8859-1?Q?1XMYi6NPwN77uMgXyWsZrx8LUWZKx1emB5UDW4kC/iV6phqhk1Si7uL1UL?=
 =?iso-8859-1?Q?g6OGVCx90InP2VQHabxVnOaa3hTb+KEKv9Mjvn6RrX9yWg19u0rJCCGfOB?=
 =?iso-8859-1?Q?xzp3/vdRw9AWpmRGZZnw/SGtbzZ/WZ/6Qb9okckTlxWjJteeFm47XvFk+Q?=
 =?iso-8859-1?Q?PJsw7ykqWY7u4JXkVPfm8K59kUdstKmcLTiqRy0MXaoB3RtSlkTYjeHccS?=
 =?iso-8859-1?Q?9vViXhHQqEWLa4WH2StyqklVT4wXB8/voJ/k+3FuMxeHlgmMrzYtwSLWHZ?=
 =?iso-8859-1?Q?nHKd3RG2D9aMJN4VMPs+bwKLFKd06kgKFhbRUZiCz1FBcm5G/YeDkgwJHD?=
 =?iso-8859-1?Q?BAyP0B31d0Sgeo61Anz4IqREeAxyfw8b13YOiju2RmgDOoptzMZE3wg/7C?=
 =?iso-8859-1?Q?99B6VbcpH96Eaq3TJKaPGfdIjnh7weZ4nhyA1OMr5edfuqnJ9Ukn6Vr1bB?=
 =?iso-8859-1?Q?BplANcIjTNsGdu7FZIC1O615ajDAlEC19iqSriy0awhxpa8z39v04Wkxil?=
 =?iso-8859-1?Q?KP4K1M74uroVrhuDWtXS1HDs4qF9ibIX/oyb/afQ49Uwqp9t52zaqBfsCx?=
 =?iso-8859-1?Q?5IewGkXvyk/HJ+sjCn53xNj74bJQ1jUEJH/QDQPOfSQtcprvX+ugaTmTT3?=
 =?iso-8859-1?Q?znEh8NXp+K+s+nP+PBvFfV37pTD88u1KLkI3JaUEI4kLUIJ9pBWg8pvGuA?=
 =?iso-8859-1?Q?u9GOOs+5B2+niZkOAh8jGlMsIYbE3PE29HMxDupofBdOL5D8GN/txw6n0H?=
 =?iso-8859-1?Q?ILpRLyaY6LdJQsZnhItSnK07QpQeFIXkvsfOD1KhIfkrJN5l4Yur9ThLA3?=
 =?iso-8859-1?Q?78AqjUXijKGOLIm6h3Qfh2EAGSILlzOK+oMhLYW1e/2+26zhFXlGVSLb1N?=
 =?iso-8859-1?Q?XT07JaYE6nhFoKk7lMa6H6ZoeGMMMPfwgL6Kxw4Wfk+w=3D=3D?=
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)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?XRKRQfyzKsf0llwrLcuTZInL1f6IQjXk40kN7ELqLbZQjdiUc2RVQs/9S9?=
 =?iso-8859-1?Q?RaGN07EcQICXXWXHlQCTqZ+GRPEJ70kjUlpQ+Az0L8YIdcG6M3Uc1LePJA?=
 =?iso-8859-1?Q?sWWwOhVEzOlJtbDpSH18DBwKAc4Cies8sNHgRZ74IPOjyf1QPO/p6/D0rr?=
 =?iso-8859-1?Q?l0In2zeTYvUI9SnnqJ0Fcw1IKN8VITVtwMPaOya1l20qqgom7dYVdbHzC1?=
 =?iso-8859-1?Q?EcxlDlQcpQeYu75GARTr6e7HE0bOM97MF8NSsh6JbbsSYDZBmsZRLfRPRz?=
 =?iso-8859-1?Q?/PRlqTJdU/lSxL5zluaCquKPp4Jhc8X8/VquAofkPbCSE1TWh2NYcKDsON?=
 =?iso-8859-1?Q?s6Vk/dC0h7oLtaizPspJC/tP2ZSN2vSyx2Z0VWuBzI11V7kCWG3bGjZCqC?=
 =?iso-8859-1?Q?ylSqJqWorHXDBxFDJzXjbM/BkJolblPjLhe2Q0B4HOxOUVw/0BcfXeFqzO?=
 =?iso-8859-1?Q?OGYG04g3js9YTGN328tSrLWKoQuNP1sZEY/1VSy60LCGBJ2NAEf6zJaQxS?=
 =?iso-8859-1?Q?49+dUqyweKvImkH5/UrFo8tw7/Q1BqdN08zKEDRNM9s6a+1ighdjSuPMO3?=
 =?iso-8859-1?Q?ty0WExlXkG1rzB9oRH7ecgGD+P3IjXWxWsIPZmHO1EsdF74ygIZcugRwQw?=
 =?iso-8859-1?Q?ipCT8XsYGppq7omlyYim+kdCSEx8CacWIeSHv3Mq9TUt8Xbq55JhSTLVIM?=
 =?iso-8859-1?Q?Am7BJMtA4NoHCRDQKufNHEg234/bT2jWNQmnT9T0RKw7URAtyT3W4gNuQC?=
 =?iso-8859-1?Q?B/x6/fCGmKxYYGRM5+9JUMu41mUGwiX0mTPBoyXOfMdNhtEaN98pDxIKDW?=
 =?iso-8859-1?Q?vaBr0z76giM78/gYaaR6qyQkN2H0PFjQz92c2MY39tv9xcMiHyZd2B7hLY?=
 =?iso-8859-1?Q?vJ0BSoK9TcLcOZ9YnqdCCfF2pmlSus5SULSyT+IEgarEObWIa2zGNVpSIc?=
 =?iso-8859-1?Q?y2+hxmL9NFmVnGv8VmTp3vSS0FAA/Dvgm+AXPOryt5t7P+fFKN2inSz7Nl?=
 =?iso-8859-1?Q?eE0dndrZcSY0vMXxGNB/lHOkghLSO0sQ3cn+NNtFMuibpqkttyXOPHWB6q?=
 =?iso-8859-1?Q?Cqxr6dlta9o3vlqDS55PaYchURSozbF5njKcyN3SLXR3uaeyJOLk6lMCsx?=
 =?iso-8859-1?Q?v1ounNQLe+fhvJod6xG+8Khcx3uYm9BTywJgRdQCi2nkTUKHF6HMHYXMNC?=
 =?iso-8859-1?Q?IdUgTr2VWTwmk8KF7qMtiFKCqFGt1xaZHtwc+CDkPm26Nnjbwa8vXq28sr?=
 =?iso-8859-1?Q?CuEtguzy4TiTubdV6QVsNvSavaA5lHVW83gML+AzSWiA5UvRfxpXo6OACK?=
 =?iso-8859-1?Q?3C/S21bnVIw2oL3ZgCcQ7oLhiwAnljtwL7I4Ip72cdGQ+ubyr4rTIGvTBl?=
 =?iso-8859-1?Q?Wvn6GEKDWxO4d2w5broi2/Xmd3mxhqCY1f5EPQ4/78jkTHeoDus5hAQ68N?=
 =?iso-8859-1?Q?/CNYZMXFmvUJB4FB/diZwGFUelJQ4JJ99rdLUQn5V5C+R7/bLAaLA8eSrU?=
 =?iso-8859-1?Q?v5eWgC3Ee2t2rrOfWeH3n8eLRumaD2eFun6T3XZ+w77n511e4Ao1kXKXLP?=
 =?iso-8859-1?Q?+29podo/u8oIllpaEmq85yuhaHq7mRxfAdPAQGX79sfyRbjcyuxjoblsOx?=
 =?iso-8859-1?Q?aALwsEwWRrjjvVDvlNDMz7Kra91s/BiZ101th13RFnMOMbxAAwbpM5zQ?=
 =?iso-8859-1?Q?=3D=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: a3358d29-bb3c-4027-f6d7-08dde26e2c1e
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Aug 2025 17:54:57.0457
 (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: IgKFyDk1ZdgPCgn4jvYb9iJPq2j6E4/R6yWNRrS2f/cuJmo/s7ZOcSK+cz192R87pkXayocpV3zuwX/KuBsiiIAH2vIqy/96PF5OZXaAZMw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU5PR03MB10472

Hi,

Mykola Kvach <xakep.amatop@gmail.com> writes:

> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>
> This is done using generic iommu_suspend/resume functions that cause
> IOMMU driver specific suspend/resume handlers to be called for enabled
> IOMMU (if one has suspend/resume driver handlers implemented).
>
> These handlers work only when IPMMU-VMSA is used; otherwise,
> we return an error during system suspend requests.
>
> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> Tested-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> ---
>  xen/arch/arm/suspend.c | 21 +++++++++++++++++++++
>  1 file changed, 21 insertions(+)
>
> diff --git a/xen/arch/arm/suspend.c b/xen/arch/arm/suspend.c
> index b5398e5ca6..cb86426ebd 100644
> --- a/xen/arch/arm/suspend.c
> +++ b/xen/arch/arm/suspend.c
> @@ -4,6 +4,7 @@
>  #include <asm/suspend.h>
>  #include <xen/console.h>
>  #include <xen/cpu.h>
> +#include <xen/iommu.h>
>  #include <xen/llc-coloring.h>
>  #include <xen/sched.h>
> =20
> @@ -49,6 +50,13 @@ static long system_suspend(void *data)
> =20
>      time_suspend();
> =20
> +    status =3D iommu_suspend();
> +    if ( status )
> +    {
> +        system_state =3D SYS_STATE_resume;
> +        goto resume_time;
> +    }
> +
>      local_irq_save(flags);
>      status =3D gic_suspend();
>      if ( status )
> @@ -105,6 +113,10 @@ static long system_suspend(void *data)
> =20
>   resume_irqs:
>      local_irq_restore(flags);
> +
> +    iommu_resume();
> +
> + resume_time:
>      time_resume();
> =20
>   resume_nonboot_cpus:
> @@ -140,6 +152,15 @@ int host_system_suspend(void)
>          return -ENOSYS;
>      }
> =20
> +    /* TODO: drop check once suspend/resume support for SMMU is implemen=
ted */
> +#ifndef CONFIG_IPMMU_VMSA

This check is meaningless, as you can have CONFIG_IPMMU_VMSA enabled
along with CONFIG_ARM_SMMU on a system with SMMU. I think it is enough
that iommu_suspend() will fail during system_suspend(), isn't it?


> +    if ( iommu_enabled )
> +    {
> +        dprintk(XENLOG_ERR, "IOMMU is enabled, suspend not supported yet=
\n");
> +        return -ENOSYS;
> +    }
> +#endif
> +
>      /*
>       * system_suspend should be called when Dom0 finalizes the suspend
>       * procedure from its boot core (VCPU#0). However, Dom0's VCPU#0 cou=
ld

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Sat Aug 23 21:26:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Aug 2025 21:26:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1091510.1448053 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upvl3-0001qJ-C3; Sat, 23 Aug 2025 21:26:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1091510.1448053; Sat, 23 Aug 2025 21:26: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 1upvl3-0001q2-6A; Sat, 23 Aug 2025 21:26:41 +0000
Received: by outflank-mailman (input) for mailman id 1091510;
 Sat, 23 Aug 2025 21:26:39 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1upvl1-0001pw-Nv
 for xen-devel@lists.xenproject.org; Sat, 23 Aug 2025 21:26:39 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1upvl0-002foq-1O;
 Sat, 23 Aug 2025 21:26:38 +0000
Received: from [2a02:8012:3a1:0:7444:6df7:db1a:3c76]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1upvl0-00FOPB-14;
 Sat, 23 Aug 2025 21:26: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=z12BoBzrEOWnAG4SLZxw2+JDuJwgr4WGrZplPWd6FQ0=; b=k78fUBnLENqC8gZafS7Ly7mHUi
	AWyHvXFv09wuqCS3UpTwnm1/y3U/7nSwH4KY+3B+MzcpmnDyFBpsQOlcHlHmgNzogORfgri6xFdeH
	qAnl6zKicnJ0dPR5kI9nF7+sOBYH2vrxsHTPORs8A6V031Mszv3D6A/gvTIv8IMfkbMc=;
Message-ID: <9ab99307-9594-4cbc-9c7a-b1221575d41c@xen.org>
Date: Sat, 23 Aug 2025 22:26:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for
 guests
Content-Language: en-GB
To: Mykola Kvach <xakep.amatop@gmail.com>, xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.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.1755506449.git.mykola_kvach@epam.com>
 <205b2b354ff1d34d0e9ec4777ca3c94492f6d9d1.1755506449.git.mykola_kvach@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <205b2b354ff1d34d0e9ec4777ca3c94492f6d9d1.1755506449.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Mykola,

On 18/08/2025 09:49, Mykola Kvach wrote:
> From: Mykola Kvach <mykola_kvach@epam.com>
> 
> This patch adds support for the PSCI SYSTEM_SUSPEND function in the vPSCI
> (virtual PSCI) interface, allowing guests to request suspend via the PSCI
> v1.0 SYSTEM_SUSPEND call (both 32-bit and 64-bit variants).
> 
> The implementation:
> - Adds SYSTEM_SUSPEND function IDs to PSCI definitions
> - Implements trapping and handling of SYSTEM_SUSPEND in vPSCI
> - Allows only non-hardware domains to invoke SYSTEM_SUSPEND; for the
>    hardware domain, PSCI_NOT_SUPPORTED is returned to avoid halting the
>    system in hwdom_shutdown() called from domain_shutdown
> - Ensures all secondary VCPUs of the calling domain are offline before
>    allowing suspend due to PSCI spec
> 
> GIC and virtual timer context must be saved when the domain suspends.

Can you expand a bit more on this? Is this a requirement from the Arm 
Arm? If so, please specify the specification so we can easily check.

> This is done by moving the respective code in ctxt_switch_from
> before the return that happens if the domain suspended.

 From the commit message, it is unclear why we want to skip the save part.

[...]

> ---
>   xen/arch/arm/domain.c                 |  17 +++--
>   xen/arch/arm/include/asm/perfc_defn.h |   1 +
>   xen/arch/arm/include/asm/psci.h       |   2 +
>   xen/arch/arm/include/asm/vpsci.h      |   2 +-
>   xen/arch/arm/vpsci.c                  | 101 ++++++++++++++++++++++----
>   xen/common/domain.c                   |  31 ++++++--
>   xen/include/xen/sched.h               |   6 ++
>   7 files changed, 131 insertions(+), 29 deletions(-)
> 
> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
> index 310c578909..9e9649c4e2 100644
> --- a/xen/arch/arm/domain.c
> +++ b/xen/arch/arm/domain.c
> @@ -90,6 +90,16 @@ static void ctxt_switch_from(struct vcpu *p)
>       if ( is_idle_vcpu(p) )
>           return;
>   

It would be good to have a comment explaining what (and why) we need to 
save only partially the state while the VCPU is suspended.

> +    /* Arch timer */
> +    p->arch.cntkctl = READ_SYSREG(CNTKCTL_EL1);
> +    virt_timer_save(p);
> +
> +    /* VGIC */
> +    gic_save_state(p);
> +
> +    if ( test_bit(_VPF_suspended, &p->pause_flags) )
> +        return;

Can you explain why we don't need an isb()?

> +
>       p2m_save_state(p);
At least part of p2m_save_state() can't be skipped because it is 
applying a workaround on platform where AT mistakenly speculate.

[...]

>   
> +static int32_t do_psci_1_0_system_suspend(register_t epoint, register_t cid)
> +{
> +    int32_t rc;
> +    struct vcpu *v;
> +    struct domain *d = current->domain;
> +
> +    /* 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 )
> +    {
> +        if ( v != current && is_vcpu_online(v) )
> +        {
> +            domain_unlock(d);
> +            return PSCI_DENIED;
> +        }
> +    }
> +    domain_unlock(d);
> +
> +    rc = domain_shutdown(d, SHUTDOWN_suspend);
> +    if ( rc )
> +        return PSCI_DENIED;
> +
> +    rc = do_setup_vcpu_ctx(current, epoint, cid);
> +    if ( rc != PSCI_SUCCESS )
> +    {
> +        domain_resume_nopause(d);
> +        return rc;
> +    }
> +
> +    set_bit(_VPF_suspended, &current->pause_flags);
> +
> +    dprintk(XENLOG_DEBUG,

I think you should use gdprintk() which will print the domain for you as 
well as appropriately ratelimit the message.

That said, I would consider using gprintk() so the message can also be 
printed in a debug build.

> +            "Dom %u: SYSTEM_SUSPEND requested, epoint=%#lx, cid=%#lx\n",

For both of them you technically want to use PRIregister rather than lx.

Lastly, we prefer to use %pd when printing a domain. The argument is 
'd'. But this should not be necessary if you use gprintk().


> +            d->domain_id, epoint, cid);
> +
> +    return rc;
> +}
> +
>   static int32_t do_psci_1_0_features(uint32_t psci_func_id)
>   {
>       /* /!\ Ordered by function ID and not name */
> @@ -214,6 +267,8 @@ static int32_t do_psci_1_0_features(uint32_t psci_func_id)
>       case PSCI_0_2_FN32_SYSTEM_OFF:
>       case PSCI_0_2_FN32_SYSTEM_RESET:
>       case PSCI_1_0_FN32_PSCI_FEATURES:
> +    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
> +    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
>       case ARM_SMCCC_VERSION_FID:
>           return 0;
>       default:
> @@ -344,6 +399,24 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid)
>           return true;
>       }
>   
> +    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
> +    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
> +    {
> +        register_t epoint = PSCI_ARG(regs, 1);
> +        register_t cid = PSCI_ARG(regs, 2);
> +
> +        if ( is_64bit_domain(current->domain) &&

Shouldn't this be removed so the check also apply for 32-bit domain on 
64-bit system?

> +             fid == PSCI_1_0_FN32_SYSTEM_SUSPEND )
 > +        {> +            epoint &= GENMASK(31, 0);
> +            cid &= GENMASK(31, 0);
> +        }
> +
> +        perfc_incr(vpsci_system_suspend);
> +        PSCI_SET_RESULT(regs, do_psci_1_0_system_suspend(epoint, cid));
> +        return true;
> +    }
> +
>       default:
>           return false;
>       }
> diff --git a/xen/common/domain.c b/xen/common/domain.c
> index 5241a1629e..624c3e2c27 100644
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -1343,16 +1343,13 @@ int domain_shutdown(struct domain *d, u8 reason)
>       return 0;
>   }
>   
> -void domain_resume(struct domain *d)
> +#ifndef CONFIG_ARM
> +static
> +#endif

I am not sure who suggests this but personally, I dislike using 
CONFIG_<ARCH> in common code. I also think this is worse for hiding the 
"static" keyword.

For the latter, I think it would be better to provide a separate helper 
that can be #ifdef.

[...]

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Sat Aug 23 21:31:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Aug 2025 21:31:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1091520.1448063 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upvpM-0003Ld-Pw; Sat, 23 Aug 2025 21:31:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1091520.1448063; Sat, 23 Aug 2025 21:31: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 1upvpM-0003LW-MW; Sat, 23 Aug 2025 21:31:08 +0000
Received: by outflank-mailman (input) for mailman id 1091520;
 Sat, 23 Aug 2025 21:31:08 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1upvpL-0003LM-V4
 for xen-devel@lists.xenproject.org; Sat, 23 Aug 2025 21:31:07 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1upvpL-002fvC-0l;
 Sat, 23 Aug 2025 21:31:07 +0000
Received: from [2a02:8012:3a1:0:7444:6df7:db1a:3c76]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1upvpL-00FOkv-0P;
 Sat, 23 Aug 2025 21:31: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=82oJZ5W4F4Leqc8Mat3K9J1rJ1u/BuhD55uGQasyTGw=; b=QuOtg90rhwXFSoNoGGgTL97VCY
	6VlKelepfGlj87dkV8rqdyd9wHOiisgdQu7JqzQ58fQZbDXORhKWCF85BzRRiGNEaVSYGmjTgwFjh
	Cz+CW5euN6nY5iTg9JI6wIXvz0xqEC0Xnsza8kJ+O0nLdROxE1h4c7eMeXcKLjxqA3ps=;
Message-ID: <d11c1224-99c0-4254-b593-c8a7f405b079@xen.org>
Date: Sat, 23 Aug 2025 22:31:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 3/4] SUPPORT.md: Document PSCI SYSTEM_SUSPEND support
 for guests
Content-Language: en-GB
To: Mykola Kvach <xakep.amatop@gmail.com>, xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1755506449.git.mykola_kvach@epam.com>
 <433d74567cabf33c2a672afc0f96e58efec75c54.1755506449.git.mykola_kvach@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <433d74567cabf33c2a672afc0f96e58efec75c54.1755506449.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Mykola,

On 18/08/2025 09:49, Mykola Kvach wrote:
> From: Mykola Kvach <mykola_kvach@epam.com>
> 
> Add a new entry under the "Virtual Hardware, QEMU" section documenting
> support for the optional PSCI SYSTEM_SUSPEND function exposed to guests.
> 
> This function is available via the virtual PSCI (vPSCI) interface and
> allows guest domains (domUs) to initiate system suspend operations.
> 
> The feature is currently marked as Experimental.
> 
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> ---
> Changes in v6:
> - Dropped the generic guest PSCI support entry (merged in a separate patch)
> - This patch now documents only the SYSTEM_SUSPEND optional function
> - Reworded commit message to match the final form after rebase
> 
> Changes in v5:
> - Dropped ARM/PSCI entry: this refers to internal use of PSCI SMC calls,
>    which is not relevant for SUPPORT.md
> - Added a dedicated entry for PSCI SYSTEM_SUSPEND instead of generic guest
>    PSCI info; guest PSCI support was documented in a separate patch
> ---
>   SUPPORT.md | 5 +++--
>   1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/SUPPORT.md b/SUPPORT.md
> index 6a82a92189..b5ab049b52 100644
> --- a/SUPPORT.md
> +++ b/SUPPORT.md
> @@ -962,8 +962,9 @@ Emulated PSCI interface exposed to guests. We support all mandatory
>   functions of PSCI 1.1. See below for the list of optional PSCI call
>   implemented and their status.
>   
> -   Status, Mandatory: Supported
> -   Status, MIGRATE_INFO_TYPE: Supported
> +    Status, Mandatory: Supported
> +    Status, MIGRATE_INFO_TYPE: Supported
> +    Status, SYSTEM_SUSPEND: Experimental

Experimental implies the feature is not complete. But it is unclear to 
me what is missing (or I probably forgotten). Can this be clarified in 
the commit message?

If there is nothing, then I think it can be a tech preview.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Sat Aug 23 22:27:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Aug 2025 22:27:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1091560.1448080 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upwhQ-0001QG-1k; Sat, 23 Aug 2025 22:27:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1091560.1448080; Sat, 23 Aug 2025 22:27:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upwhP-0001PK-Ri; Sat, 23 Aug 2025 22:26:59 +0000
Received: by outflank-mailman (input) for mailman id 1091560;
 Sat, 23 Aug 2025 22:26:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=rFF/=3D=gmail.com=w1benny@srs-se1.protection.inumbo.net>)
 id 1upwhO-0001Mm-R9
 for xen-devel@lists.xenproject.org; Sat, 23 Aug 2025 22:26:58 +0000
Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com
 [2a00:1450:4864:20::52d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 47d4fabd-8070-11f0-a32b-13f23c93f187;
 Sun, 24 Aug 2025 00:26:58 +0200 (CEST)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-6188b72d690so450913a12.2
 for <xen-devel@lists.xenproject.org>; Sat, 23 Aug 2025 15:26:58 -0700 (PDT)
Received: from lab.home
 (dynamic-2a00-1028-83a4-4bca-c0bb-96ff-feed-9d50.ipv6.o2.cz.
 [2a00:1028:83a4:4bca:c0bb:96ff:feed:9d50])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afe48fd37fbsm252045166b.47.2025.08.23.15.26.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sat, 23 Aug 2025 15:26: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>
X-Inumbo-ID: 47d4fabd-8070-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1755988017; x=1756592817; 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=hxbSUIBsw0EVkmhIu0DrRsRTOlPMr0YznFiwwKR8I0U=;
        b=Sr7Ud6jS6eRSf0GZDtOwnKjqsPOJCNk45Eub2ilnAjRR2u2p3mU2W1cMQSIoUXVHlO
         tX4RNhNZ6uMYdvEzDyjUfPO7P5oSmcfSin4WuvvINJSQda/EKKXJNo8cG2CG0X77T8BL
         nMj4yfJtAQkJxg+EFogCwMFmYK8oE2TjgVPoLJYtNdK5VtCXNxoDH9rcGpMPmL3aE4+A
         vl8p/r9A2bjTEveeiCNrk4OOqtiZ0ffp4P1kpaSjqxPSelNksR0POTYnmLU118Rj7oPU
         viXqlyihiQj7BLixjle35J+EdMjGoucyxwapWRu9euJksDV8cj/gwr5FVUpu7dkCTAEg
         MeCw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755988017; x=1756592817;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=hxbSUIBsw0EVkmhIu0DrRsRTOlPMr0YznFiwwKR8I0U=;
        b=dqBM2JYk60PBOATgethxl1vTOLd+HiRThSH78o5dwXVyKRJDUCodWqUpfqS280zLKF
         xEoJP24+qFpxaIRLmX8TMijAYK0kIMAcvcgFrxKuAuwBFRgrB7WFgxx6B1fy+H7079rv
         7dlvwWtTWPVb+NsDAEIQ1wcDtNDGOebzM/qKnGFGpfGNvM6puCqU5qku18UdZbNzo9oI
         39zMevDOK+czNoFTrj+gBeG1SS9NbkgwRqGwaJ8xjjz/tnGVyhcq37RDhtXTI5nMo63+
         0wj/Nd7IwPodZwfWYH7csxZ1q5+g5hLhlxrzc0JDuUjr+HO3Q7nSxPIHO33T7O2LN4LX
         tzUA==
X-Gm-Message-State: AOJu0Yyp123CJKcmiSOrxGgMVfkU50bNwrD82ToYRFh89dk2+WyOWHd8
	vDEg2+kbeWYNFRyOaWYCRhnujd6AOLZ18D6NMmxCLsjcvXnEumSEySXRy+6LcQ==
X-Gm-Gg: ASbGncsghcISAjGTmwj5lgne+JMLrHWsOZZaUvhvM7NqFaVNZx2ZCKqI7IDeDwhIiyh
	6qRl1cRkQLzXKpUUnKNXd8NbOwZG1cFjLzHaYwSBIt7CvKEFT4Jz+A4A4p7cq6brPtVwwVgqBh3
	Rngr4W/eNb3Pb37jQHo0XBqb5MqKpqO1xnjS87ECJf1otDAkRqsARIl/8nR8BY4iSQ21kLN/lsa
	0TW/pSHZiGTPJD9AzuG5W9L9Bbnt9X2N18aGcsH+FNypo6CFJRSi0XN8zoZmR14gFBDdJTZKlob
	HZveEJOe2g06yg8QS8z848Pi7GZu/CVUMqGe3rNHnMeR+T72VmUhOcTdk0WYx8veVEE3XPT2uZ7
	y0vUI4hnp4wqIQyIPqdkPa8ctcDGy1yX7BxInWRBNCdiLZYslKHhPYMRb5py+GDRf8R7amiSNZ6
	+lCNdq70ARPWkJSxMG3vPfhA==
X-Google-Smtp-Source: AGHT+IGiF52LgoFc0dxwElU/Bxjwb+i8FifOsoea3FMdnNUewjH/+n9bU2JS++tq+h0gcEicTZJ7Cg==
X-Received: by 2002:a17:906:4794:b0:af8:fd22:6e28 with SMTP id a640c23a62f3a-afe2903168dmr384184466b.7.1755988016979;
        Sat, 23 Aug 2025 15:26:56 -0700 (PDT)
From: "=?UTF-8?q?Petr=20Bene=C5=A1?=" <w1benny@gmail.com>
X-Google-Original-From: =?UTF-8?q?Petr=20Bene=C5=A1?= <petr.benes@gendigital.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Petr=20Bene=C5=A1?= <w1benny@gmail.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v5 1/4] tools: add sizeof_field and endof_field macros
Date: Sat, 23 Aug 2025 22:26:49 +0000
Message-Id: <8dd6b217fbde427407113fedabb70f54d12aed61.1755987697.git.w1benny@gmail.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1755987697.git.w1benny@gmail.com>
References: <cover.1755987697.git.w1benny@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Petr BeneÅ¡ <w1benny@gmail.com>

* `sizeof_field` returns the size of a specific struct member
* `endof_field` returns the offset to the end of the member within the struct

It will be useful in upcoming layout checks of SMBIOS structs.

Signed-off-by: Petr BeneÅ¡ <w1benny@gmail.com>
---
 tools/include/xen-tools/common-macros.h | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/tools/include/xen-tools/common-macros.h b/tools/include/xen-tools/common-macros.h
index 0088208c2e..9838a108aa 100644
--- a/tools/include/xen-tools/common-macros.h
+++ b/tools/include/xen-tools/common-macros.h
@@ -83,6 +83,11 @@
 #define __packed __attribute__((__packed__))
 #endif
 
+#define sizeof_field(type, member) sizeof(((type *)NULL)->member)
+
+#define endof_field(type, member) \
+    (offsetof(type, member) + sizeof_field(type, member))
+
 #define container_of(ptr, type, member) ({              \
     typeof(((type *)0)->member) *mptr__ = (ptr);        \
     (type *)((char *)mptr__ - offsetof(type, member));  \
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sat Aug 23 22:27:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Aug 2025 22:27:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1091559.1448072 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upwhP-0001N4-Ne; Sat, 23 Aug 2025 22:26:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1091559.1448072; Sat, 23 Aug 2025 22:26: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 1upwhP-0001Mx-Kr; Sat, 23 Aug 2025 22:26:59 +0000
Received: by outflank-mailman (input) for mailman id 1091559;
 Sat, 23 Aug 2025 22:26:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=rFF/=3D=gmail.com=w1benny@srs-se1.protection.inumbo.net>)
 id 1upwhO-0001Mm-8e
 for xen-devel@lists.xenproject.org; Sat, 23 Aug 2025 22:26:58 +0000
Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com
 [2a00:1450:4864:20::62b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 474c3ff9-8070-11f0-a32b-13f23c93f187;
 Sun, 24 Aug 2025 00:26:57 +0200 (CEST)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-afe72d68b88so27166b.3
 for <xen-devel@lists.xenproject.org>; Sat, 23 Aug 2025 15:26:57 -0700 (PDT)
Received: from lab.home
 (dynamic-2a00-1028-83a4-4bca-c0bb-96ff-feed-9d50.ipv6.o2.cz.
 [2a00:1028:83a4:4bca:c0bb:96ff:feed:9d50])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afe48fd37fbsm252045166b.47.2025.08.23.15.26.54
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sat, 23 Aug 2025 15:26:55 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 474c3ff9-8070-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1755988016; x=1756592816; 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=KWAQYC29GuHHgHDgQr6y7j5EKyvy8UjM5c+HdF6B8X8=;
        b=JTs7KXRtpm2PghiOSg0EgbIp0ZdUxBCn5qbeu4UjoDBxVbCR26fXQBA4QXCJQlD5DU
         xx8nphbbpLlA7iINJR9VEAQ1Fksi06KGdhZ5jZA/rtBqvV3cbpUNZklR0LSt58PMggDJ
         m73GWY4UbRzAp38uMui1BUqmwfyQZhBRL57smoddUq9jHPXZjE2VrFZvY68cPLfPnVdB
         APNI4mMTqJMxmnfYNmAGYBqZfXyPMzAAERNbSPguB4NtIL37ywTlU/n5570vAuLvibjN
         fwsNFJxjApAbWSsLHQ89C/Dnme/HrmlybKCOihGapZiexA8hKXoGHxUhoIGmV0JDTeQN
         RmAw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755988016; x=1756592816;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=KWAQYC29GuHHgHDgQr6y7j5EKyvy8UjM5c+HdF6B8X8=;
        b=LrsHvj/DJgRZWRrxkxolFupEqxpazQ9HM9Y5nSTWKvSq8Z3an5oGBoaoQTfVZqHS4+
         tIi5/A+prCn6EuD1nPaFYt5zHTaYlCd+OEOQ68E69EF3s6WQXWhQbDqpOGh4HmB3bQ2s
         aGshIlkfAdgEZowixq1zEXrinnqLebJdEb7jI3DlcDTRDFw1o/sBNB8KGEUYlDpvVvjS
         v3V6aBu4Coyvgzlg0WQNzETDrrQBPJ7Ig87J4hyN3Lk/IR4WRI2D20ei77zuxlQqyWgN
         +BeeFzHFi6mj+DK9x8JlHL/zsocIRaiy6O9CXANtLMzDcjHDhQyAksRnMQClG9hvrOUw
         oezg==
X-Gm-Message-State: AOJu0YwrkkmW8VuAxmiyTdkj5aVNy2j8l7oATu0aD/ylkKlZ5f+Zykep
	p4SRTcuESegrjo1oQsxqOEXAx83PoNu7JOrQZKUIrDuEgIEUSMavRIYE+vDJFQ==
X-Gm-Gg: ASbGncsQqV/8hhvf5qjHbhAv6EFFnA7OujWjdBulRb3cu5JiC+NIhPeSEzsTwpJibfc
	eamdSRE16Mwl/tFSzyeDnO/0SnJcrHjVfsB+NkeNtkAiNky1G8RZHudi9wNGpPUWi7tPmPb6k0R
	QuXpuUWvmF4qer6YI2Nqp41Pu7RNnP1QZQRcV7+4pgMlI+bhB5fghIkVLJ+r+VfgVoVA9VB7PQ7
	TqqYeyvP8uk8RrWYXonVksVzqeXsrHY8Ia2cMtWTW6tro6FpiCNPSKSdgwoOwvCs8Ev8c6hp+D8
	GhFPTyuTrlgaATBWlJUeLhwXbgKRe2gozwBjRZiwg0K2Op8Mq/vE3RuIi1Eu7OydXgal94RYF70
	IzL/1N9WqKIH5u89b1pWg/3+RsxhyIhIlmgHx8v5q+LB37liNdfqMczbt74NmKO+0wfHmCyPH9Z
	cDMHAa5xjOCckJUDjjw/X18g==
X-Google-Smtp-Source: AGHT+IFNw91vjPbc0/vvlrWP6Bpqv6jy9sGlC/GDq/2jFHqc8E+81XvcNEqXVAL4mPKsSEXB95IqYQ==
X-Received: by 2002:a17:907:7f29:b0:af9:8a71:e090 with SMTP id a640c23a62f3a-afe294d9993mr335235266b.9.1755988016041;
        Sat, 23 Aug 2025 15:26:56 -0700 (PDT)
From: "=?UTF-8?q?Petr=20Bene=C5=A1?=" <w1benny@gmail.com>
X-Google-Original-From: =?UTF-8?q?Petr=20Bene=C5=A1?= <petr.benes@gendigital.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Petr=20Bene=C5=A1?= <w1benny@gmail.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Community Manager <community.manager@xenproject.org>
Subject: [PATCH v5 0/4] hvmloader: add new SMBIOS tables (7,8,9,26,27,28)
Date: Sat, 23 Aug 2025 22:26:48 +0000
Message-Id: <cover.1755987697.git.w1benny@gmail.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Petr BeneÅ¡ <w1benny@gmail.com>

Changes since v4:
- Renamed offsetof_end macro to endof_field.
- Added mention in CHANGELOG.md.

- hvmloader: fix SMBIOS table length checks
  - Changed `table_size` parameter name to `min_size` in the `smbios_pt_copy`
    function.
  - Fixed typo in `smbios_type_2_init` function where `smbios_type_3` was
    mistyped.

Changes since v3:
- Renamed offsetofend macro to offsetof_end.

Changes since v2:
- Added sizeof_field and offsetofend macros to common-macros.h.
- Used offsetofend macro everywhere to make semantically sense.
- Added BUILD_BUG_ON to ensure offsets are correct based on the SMBIOS
  specification (with explanation in the comments).
- Fixed commit message of the second patch to mention the new smbios_pt_copy
  function.
- Fixed nits (empty lines, misplaced *).
- Retained the original comment "Only present when passed in" + added it to
  the new tables where applicable.
- Replaced hardcoded offset for chassis_handle in smbios_type_2_init.

Changes since v1:
- Swapped the order of S-o-b in the last commit message.

Resubmitting patch from Anton Belousov and addressing review comments
from Jan: https://old-list-archives.xen.org/archives/html/xen-devel/2022-01/msg00725.html

Original message:
> SMBIOS tables like 7,8,9,26,27,28 are neccessary to prevent sandbox detection
> by malware using WMI-queries. New tables can be mapped to memory from binary
> file specified in "smbios_firmware" parameter of domain configuration.
> If particular table is absent in binary file, then it will not be mapped to
> memory. This method works for Windows domains as tables 7,8,9,26,27,28 are not
> critical for OS boot and runtime. Also if "smbios_firmware" parameter is not
> provided, these tables will be skipped in write_smbios_tables function.

Further explanation:
Some malware samples are known to check presence of various hardware components
(like CPU fan, CPU temperature sensor, etc.) by WMI queries. If these components
are not present, then malware can assume that it is running in a sandbox and
will not execute its payload.

This patch will allow security researchers to create a custom SMBIOS
firmware binary file that contains these tables.

Petr BeneÅ¡ (4):
  tools: add sizeof_field and endof_field macros
  hvmloader: fix SMBIOS table length checks
  hvmloader: add new SMBIOS tables (7, 8, 9, 26, 27, 28)
  CHANGELOG.md: add new SMBIOS tables (7, 8, 9, 26, 27, 28)

 CHANGELOG.md                            |   1 +
 tools/firmware/hvmloader/smbios.c       | 289 ++++++++++++++++++------
 tools/firmware/hvmloader/smbios_types.h | 109 +++++++--
 tools/include/xen-tools/common-macros.h |   5 +
 4 files changed, 317 insertions(+), 87 deletions(-)

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sat Aug 23 22:27:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Aug 2025 22:27:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1091561.1448093 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upwhR-0001oP-C9; Sat, 23 Aug 2025 22:27:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1091561.1448093; Sat, 23 Aug 2025 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 1upwhR-0001oI-8H; Sat, 23 Aug 2025 22:27:01 +0000
Received: by outflank-mailman (input) for mailman id 1091561;
 Sat, 23 Aug 2025 22:27:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=rFF/=3D=gmail.com=w1benny@srs-se1.protection.inumbo.net>)
 id 1upwhP-0001Mm-RR
 for xen-devel@lists.xenproject.org; Sat, 23 Aug 2025 22:26:59 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 487543ec-8070-11f0-a32b-13f23c93f187;
 Sun, 24 Aug 2025 00:26:59 +0200 (CEST)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-afe72d68b88so27266b.3
 for <xen-devel@lists.xenproject.org>; Sat, 23 Aug 2025 15:26:59 -0700 (PDT)
Received: from lab.home
 (dynamic-2a00-1028-83a4-4bca-c0bb-96ff-feed-9d50.ipv6.o2.cz.
 [2a00:1028:83a4:4bca:c0bb:96ff:feed:9d50])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afe48fd37fbsm252045166b.47.2025.08.23.15.26.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sat, 23 Aug 2025 15:26: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>
X-Inumbo-ID: 487543ec-8070-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1755988018; x=1756592818; 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=r1lhEkTlVqxto/yaeiFL6OuJ5JEHWn2qkZQk+y0ltKI=;
        b=MBRUxl1I1MRp4dPu/QIm03q5bmD8be2p0IxzJjLZK0dF4mh1VjJkUvI2RIxAXo7mav
         Ob2kaSCxVfWDxXFYzysktlgenX7QFG1SljaW4n4ngV4R4K93x5eVllKQlJUT41PRdBYy
         /lo8usI+5VDk6ScqzyQeUS1ABghKc0wZcgEWLZRziBLX8NzrISmNm67X4bW3dApJj4bd
         HJVrkQ0Oa2gawuPnPg3h/wXPBFcQFB+XBjK/jUBgdn2IYm13RXAT6NULY+uo/eTpT+kk
         f/VV+Ds2c0ENyAYrtS+6wSx/9fpNLuzYZ1DmqsxwwWdvdYkMseLGBgggyf23YIgp9AUT
         gmeA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755988018; x=1756592818;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=r1lhEkTlVqxto/yaeiFL6OuJ5JEHWn2qkZQk+y0ltKI=;
        b=lzBmk29X456GPl9kA/L8fGKGQwKfYS4pjD/JmUStnYWyMVqa73WO0hK49EfsrdKyMl
         eai+2PmvW/tyhygzbPk4ljZb4XGq4Bsg3QngiskBCG8amOI12NgbJ2BD8iz1eKjLUoCk
         jeltHLzW6xt93nm294X82BVp8PHlb8yOmi9/4202V/P9Gjdl6PPoegUn5A4ns8akEBfN
         nzWhqn7PxmEp0/08E7uI+k60YI9xVCJFTHuYaBp7Eh++vN0QMHoyHlX8sC0jUneiE31u
         5BG5mlqJyss4bnXjhpWZyzThiqK9QJgrML2Me7MQwWXyl9K4894Wi1Xkqk66VPHzOpJU
         fT+w==
X-Gm-Message-State: AOJu0YyT5g5pFWAdEGW9kNfP/TDMLNBr8dBssv/2SxQObck6JtTLB9VU
	t79p1snE815L89pHZbnhnj4JRnouIneSHJpUba+m5fmspGJJx708hGyliOpzpQ==
X-Gm-Gg: ASbGncsGwulia+arNPRBvMIeDmrqUpcpR2S1mS9DJTVBX7tNvdE5B4C7Fht81CYebPi
	ngGjjspRzfmN1l39ZzA2SgF4Uq1rKaRoIhGn3xT4eCArHKF0EztbSTSbbkJ/qep+jeOTNCr3QRf
	ybeJ7RA0p5BfZiRXamYo8bolpTTMsCsxjl6Nab3GxClezLxpdkPcW9JNPV7k1qAWIwQX3VMdXSH
	Xu5XA6zF0zigX+sOeU68KJuMFUNQj5f4zPWATm1y0JVpqZHxZUOB/M8GDh9xUkA+HfM28oF1TKV
	PiIHjVlRQZ9pSoUoFUmAyEBMcZR+BuyDraSMIWdZYYc/TDEySoX/53PVbbfWgPNW2N+IXtUFdPJ
	zoJ4kaPKMtgxPib2o6fE26EO1oJQUpg1e9iae7TgrrfVdwyMk+OqmY8upXHVFg0aWMclUGltn6L
	A/jg7msgwCZIj4eQWNnfFgCEcJ3gR2Vv9D
X-Google-Smtp-Source: AGHT+IFtprpwCtSr1ovoEKFv+twEsizD65Cfe20l2rSDjhgySffZKWxK9zvF4nJog5uPA3IngZJE8A==
X-Received: by 2002:a17:907:6d19:b0:ae0:cff8:5717 with SMTP id a640c23a62f3a-afe28f275d5mr381817766b.4.1755988018037;
        Sat, 23 Aug 2025 15:26:58 -0700 (PDT)
From: "=?UTF-8?q?Petr=20Bene=C5=A1?=" <w1benny@gmail.com>
X-Google-Original-From: =?UTF-8?q?Petr=20Bene=C5=A1?= <petr.benes@gendigital.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Petr=20Bene=C5=A1?= <w1benny@gmail.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v5 2/4] hvmloader: fix SMBIOS table length checks
Date: Sat, 23 Aug 2025 22:26:50 +0000
Message-Id: <58f42aaaf460c33d9d0935d670aab9f54eb184b8.1755987697.git.w1benny@gmail.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1755987697.git.w1benny@gmail.com>
References: <cover.1755987697.git.w1benny@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Petr BeneÅ¡ <w1benny@gmail.com>

SMBIOS specification dictates that tables should have a minimal length.
This commit introduces further validation for user-input SMBIOS tables.

As per SMBIOS Reference Specification:
* Type 0: For version 2.3 and later implementations, the length is at least 14h
* Type 1: 1Bh for 2.4 and later
* Type 2: at least 08h
* Type 3: 0Dh for version 2.1 and later
* Type 11: 5h (+ strings)
* Type 22: 1Ah (+ strings)
* Type 39: a minimum of 10h

Notably, this also fixes previously incorrect check for chassis handle in
smbios_type_2_init. Chassis handle is a WORD, therefore, the condition now
correctly checks for >= 13 instead of > 13.

hvmloader currently implements version 2.4

Furthermore, this commit introduces smbios_pt_copy helper function to substitute
previously repeating pattern of locating the struct in physical memory (via
get_smbios_pt_struct), checking the length and copying it into SMBIOS region.

Signed-off-by: Petr BeneÅ¡ <w1benny@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
 tools/firmware/hvmloader/smbios.c       | 178 ++++++++++++++----------
 tools/firmware/hvmloader/smbios_types.h |  32 ++---
 2 files changed, 123 insertions(+), 87 deletions(-)

diff --git a/tools/firmware/hvmloader/smbios.c b/tools/firmware/hvmloader/smbios.c
index 6bcdcc233a..de3ba78e87 100644
--- a/tools/firmware/hvmloader/smbios.c
+++ b/tools/firmware/hvmloader/smbios.c
@@ -47,6 +47,8 @@ static void
 smbios_pt_init(void);
 static void*
 get_smbios_pt_struct(uint8_t type, uint32_t *length_out);
+static void *
+smbios_pt_copy(void *start, uint8_t type, uint16_t handle, size_t table_size);
 static void
 get_cpu_manufacturer(char *buf, int len);
 static int
@@ -154,6 +156,24 @@ get_smbios_pt_struct(uint8_t type, uint32_t *length_out)
     return NULL;
 }
 
+static void *
+smbios_pt_copy(void *start, uint8_t type, uint16_t handle, size_t min_size)
+{
+    struct smbios_structure_header *header = start;
+    void *pts;
+    uint32_t length;
+
+    pts = get_smbios_pt_struct(type, &length);
+    if ( pts != NULL && length >= min_size )
+    {
+        memcpy(start, pts, length);
+        header->handle = handle;
+        return start + length;
+    }
+
+    return start;
+}
+
 static void
 get_cpu_manufacturer(char *buf, int len)
 {
@@ -381,16 +401,17 @@ smbios_type_0_init(void *start, const char *xen_version,
     struct smbios_type_0 *p = start;
     static const char *smbios_release_date = __SMBIOS_DATE__;
     const char *s;
-    void *pts;
-    uint32_t length;
+    void *next;
 
-    pts = get_smbios_pt_struct(0, &length);
-    if ( pts != NULL && length > 0 )
-    {
-        memcpy(start, pts, length);
-        p->header.handle = SMBIOS_HANDLE_TYPE0;
-        return start + length;
-    }
+    /*
+     * Specification says Type 0 table has length of at least 18h for v2.4-3.0.
+     */
+
+    BUILD_BUG_ON(sizeof(*p) != 24);
+
+    next = smbios_pt_copy(start, 0, SMBIOS_HANDLE_TYPE0, sizeof(*p));
+    if ( next != start )
+        return next;
 
     memset(p, 0, sizeof(*p));
 
@@ -440,16 +461,14 @@ smbios_type_1_init(void *start, const char *xen_version,
     char uuid_str[37];
     struct smbios_type_1 *p = start;
     const char *s;
-    void *pts;
-    uint32_t length;
+    void *next;
 
-    pts = get_smbios_pt_struct(1, &length);
-    if ( pts != NULL && length > 0 )
-    {
-        memcpy(start, pts, length);
-        p->header.handle = SMBIOS_HANDLE_TYPE1;
-        return start + length;
-    }
+    /* Specification says Type 1 table has length of 1Bh for v2.4 and later. */
+    BUILD_BUG_ON(sizeof(*p) != 27);
+
+    next = smbios_pt_copy(start, 1, SMBIOS_HANDLE_TYPE1, sizeof(*p));
+    if ( next != start )
+        return next;
 
     memset(p, 0, sizeof(*p));
 
@@ -498,26 +517,29 @@ smbios_type_2_init(void *start)
 {
     struct smbios_type_2 *p = start;
     const char *s;
-    uint8_t *ptr;
-    void *pts;
-    uint32_t length;
+    void *next;
     unsigned int counter = 0;
 
-    pts = get_smbios_pt_struct(2, &length);
-    if ( pts != NULL && length > 0 )
-    {
-        memcpy(start, pts, length);
-        p->header.handle = SMBIOS_HANDLE_TYPE2;
+    /*
+     * Specification says Type 2 table has length of at least 08h,
+     * which corresponds with the end of the "Serial Number" field.
+     */
+
+    BUILD_BUG_ON(endof_field(struct smbios_type_2, serial_number_str) != 8);
 
+    next = smbios_pt_copy(start, 2, SMBIOS_HANDLE_TYPE2,
+                          endof_field(struct smbios_type_2, serial_number_str));
+    if ( next != start )
+    {
         /* Set current chassis handle if present */
-        if ( p->header.length > 13 )
+        if ( p->header.length >= endof_field(struct smbios_type_2,
+                                             chassis_handle) )
         {
-            ptr = ((uint8_t*)start) + 11;            
-            if ( *((uint16_t*)ptr) != 0 )
-                *((uint16_t*)ptr) = SMBIOS_HANDLE_TYPE3;
+            if ( p->chassis_handle != 0 )
+                p->chassis_handle = SMBIOS_HANDLE_TYPE3;
         }
 
-        return start + length;
+        return next;
     }
 
     memset(p, 0, sizeof(*p));
@@ -593,18 +615,21 @@ smbios_type_3_init(void *start)
 {
     struct smbios_type_3 *p = start;
     const char *s;
-    void *pts;
-    uint32_t length;
+    void *next;
     uint32_t counter = 0;
 
-    pts = get_smbios_pt_struct(3, &length);
-    if ( pts != NULL && length > 0 )
-    {
-        memcpy(start, pts, length);
-        p->header.handle = SMBIOS_HANDLE_TYPE3;
-        return start + length;
-    }
-    
+    /*
+     * Specification says Type 3 table has length of at least 0Dh (for v2.1+),
+     * which corresponds with the end of the "Security Status" field.
+     */
+
+    BUILD_BUG_ON(endof_field(struct smbios_type_3, security_status) != 13);
+
+    next = smbios_pt_copy(start, 3, SMBIOS_HANDLE_TYPE3,
+                          offsetof(struct smbios_type_3, security_status));
+    if ( next != start )
+        return next;
+
     memset(p, 0, sizeof(*p));
 
     p->header.type = 3;
@@ -656,6 +681,9 @@ smbios_type_4_init(
     struct smbios_type_4 *p = start;
     uint32_t eax, ebx, ecx, edx;
 
+    /* Specification says Type 4 table has length of 23h for v2.3+. */
+    BUILD_BUG_ON(sizeof(*p) != 35);
+
     memset(p, 0, sizeof(*p));
 
     p->header.type = 4;
@@ -707,17 +735,15 @@ smbios_type_11_init(void *start)
     struct smbios_type_11 *p = start;
     char path[20];
     const char *s;
+    void *next;
     int i;
-    void *pts;
-    uint32_t length;
 
-    pts = get_smbios_pt_struct(11, &length);
-    if ( pts != NULL && length > 0 )
-    {
-        memcpy(start, pts, length);
-        p->header.handle = SMBIOS_HANDLE_TYPE11;
-        return start + length;
-    }
+    /* Specification says Type 11 table has length of 05h. */
+    BUILD_BUG_ON(sizeof(*p) != 5);
+    
+    next = smbios_pt_copy(start, 11, SMBIOS_HANDLE_TYPE11, sizeof(*p));
+    if ( next != start )
+        return next;
 
     p->header.type = 11;
     p->header.length = sizeof(*p);
@@ -756,6 +782,9 @@ smbios_type_16_init(void *start, uint32_t memsize, int nr_mem_devs)
 {
     struct smbios_type_16 *p = start;
 
+    /* Specification says Type 16 table has length of 0Fh for v2.1-2.7. */
+    BUILD_BUG_ON(sizeof(*p) != 15);
+
     memset(p, 0, sizeof(*p));
 
     p->header.type = 16;
@@ -781,6 +810,9 @@ smbios_type_17_init(void *start, uint32_t memory_size_mb, int instance)
     char buf[16];
     struct smbios_type_17 *p = start;
 
+    /* Specification says Type 17 table has length of 1Bh for v2.3-2.6. */
+    BUILD_BUG_ON(sizeof(*p) != 27);
+
     memset(p, 0, sizeof(*p));
 
     p->header.type = 17;
@@ -816,6 +848,9 @@ smbios_type_19_init(void *start, uint32_t memory_size_mb, int instance)
 {
     struct smbios_type_19 *p = start;
 
+    /* Specification says Type 19 table has length of 0Fh for v2.1-2.7. */
+    BUILD_BUG_ON(sizeof(*p) != 15);
+
     memset(p, 0, sizeof(*p));
 
     p->header.type = 19;
@@ -838,6 +873,9 @@ smbios_type_20_init(void *start, uint32_t memory_size_mb, int instance)
 {
     struct smbios_type_20 *p = start;
 
+    /* Specification says Type 20 table has length of 13h for v2.1-2.7. */
+    BUILD_BUG_ON(sizeof(*p) != 19);
+
     memset(p, 0, sizeof(*p));
 
     p->header.type = 20;
@@ -865,16 +903,14 @@ smbios_type_22_init(void *start)
     struct smbios_type_22 *p = start;
     static const char *smbios_release_date = __SMBIOS_DATE__;
     const char *s;
-    void *pts;
-    uint32_t length;
+    void *next;
 
-    pts = get_smbios_pt_struct(22, &length);
-    if ( pts != NULL && length > 0 )
-    {
-        memcpy(start, pts, length);
-        p->header.handle = SMBIOS_HANDLE_TYPE22;
-        return start + length;
-    }
+    /* Specification says Type 22 table has length of 1Ah. */
+    BUILD_BUG_ON(sizeof(*p) != 26);
+
+    next = smbios_pt_copy(start, 22, SMBIOS_HANDLE_TYPE22, sizeof(*p));
+    if ( next != start )
+        return next;
 
     s = xenstore_read(HVM_XS_SMBIOS_DEFAULT_BATTERY, "0");
     if ( strncmp(s, "1", 1) != 0 )
@@ -929,6 +965,9 @@ smbios_type_32_init(void *start)
 {
     struct smbios_type_32 *p = start;
 
+    /* Specification says Type 32 table has length of at least 0Bh. */
+    BUILD_BUG_ON(sizeof(*p) != 11);
+
     memset(p, 0, sizeof(*p));
 
     p->header.type = 32;
@@ -946,20 +985,17 @@ smbios_type_32_init(void *start)
 static void *
 smbios_type_39_init(void *start)
 {
-    struct smbios_type_39 *p = start;
-    void *pts;
-    uint32_t length;
+    /*
+     * Specification says Type 39 table has length of at least 10h,
+     * which corresponds with the end of the "Characteristics" field.
+     *
+     * Only present when passed in.
+     */
 
-    pts = get_smbios_pt_struct(39, &length);
-    if ( pts != NULL && length > 0 )
-    {
-        memcpy(start, pts, length);
-        p->header.handle = SMBIOS_HANDLE_TYPE39;
-        return start + length;
-    }
+    BUILD_BUG_ON(endof_field(struct smbios_type_39, characteristics) != 16);
 
-    /* Only present when passed in */
-    return start;
+    return smbios_pt_copy(start, 39, SMBIOS_HANDLE_TYPE39,
+                          endof_field(struct smbios_type_39, characteristics));
 }
 
 static void *
diff --git a/tools/firmware/hvmloader/smbios_types.h b/tools/firmware/hvmloader/smbios_types.h
index 7c648ece71..a04d194975 100644
--- a/tools/firmware/hvmloader/smbios_types.h
+++ b/tools/firmware/hvmloader/smbios_types.h
@@ -90,13 +90,13 @@ struct smbios_type_2 {
     uint8_t product_name_str;
     uint8_t version_str;
     uint8_t serial_number_str;
-    uint8_t asset_tag_str;
-    uint8_t feature_flags;
-    uint8_t location_in_chassis_str;
-    uint16_t chassis_handle;
-    uint8_t board_type;
-    uint8_t contained_handle_count;
-    uint16_t contained_handles[];
+    uint8_t asset_tag_str;                  /* Optional */
+    uint8_t feature_flags;                  /* Optional */
+    uint8_t location_in_chassis_str;        /* Optional */
+    uint16_t chassis_handle;                /* Optional */
+    uint8_t board_type;                     /* Optional */
+    uint8_t contained_handle_count;         /* Optional */
+    uint16_t contained_handles[];           /* Optional */
 } __attribute__ ((packed));
 
 /* System Enclosure - Contained Elements */
@@ -118,12 +118,12 @@ struct smbios_type_3 {
     uint8_t power_supply_state;
     uint8_t thermal_state;
     uint8_t security_status;
-    uint32_t oem_specific;
-    uint8_t height;
-    uint8_t number_of_power_cords;
-    uint8_t contained_element_count;
-    uint8_t contained_element_length;
-    struct smbios_contained_element contained_elements[];
+    uint32_t oem_specific;                  /* Optional */
+    uint8_t height;                         /* Optional */
+    uint8_t number_of_power_cords;          /* Optional */
+    uint8_t contained_element_count;        /* Optional */
+    uint8_t contained_element_length;       /* Optional */
+    struct smbios_contained_element contained_elements[]; /* Optional */
 } __attribute__ ((packed));
 
 /* SMBIOS type 4 - Processor Information */
@@ -252,9 +252,9 @@ struct smbios_type_39 {
     uint8_t revision_level_str;
     uint16_t max_capacity;
     uint16_t characteristics;
-    uint16_t input_voltage_probe_handle;
-    uint16_t cooling_device_handle;
-    uint16_t input_current_probe_handle;
+    uint16_t input_voltage_probe_handle;    /* Optional */
+    uint16_t cooling_device_handle;         /* Optional */
+    uint16_t input_current_probe_handle;    /* Optional */
 } __attribute__ ((packed));
 
 /* SMBIOS type 127 -- End-of-table */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sat Aug 23 22:27:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Aug 2025 22:27:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1091562.1448103 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upwhS-00022Y-Ia; Sat, 23 Aug 2025 22:27:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1091562.1448103; Sat, 23 Aug 2025 22:27: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 1upwhS-00022P-FN; Sat, 23 Aug 2025 22:27:02 +0000
Received: by outflank-mailman (input) for mailman id 1091562;
 Sat, 23 Aug 2025 22:27:01 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=rFF/=3D=gmail.com=w1benny@srs-se1.protection.inumbo.net>)
 id 1upwhR-0001Mm-EN
 for xen-devel@lists.xenproject.org; Sat, 23 Aug 2025 22:27:01 +0000
Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com
 [2a00:1450:4864:20::52e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 49a4005f-8070-11f0-a32b-13f23c93f187;
 Sun, 24 Aug 2025 00:27:01 +0200 (CEST)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-6188b72d690so450916a12.2
 for <xen-devel@lists.xenproject.org>; Sat, 23 Aug 2025 15:27:01 -0700 (PDT)
Received: from lab.home
 (dynamic-2a00-1028-83a4-4bca-c0bb-96ff-feed-9d50.ipv6.o2.cz.
 [2a00:1028:83a4:4bca:c0bb:96ff:feed:9d50])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afe48fd37fbsm252045166b.47.2025.08.23.15.26.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sat, 23 Aug 2025 15:26: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>
X-Inumbo-ID: 49a4005f-8070-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1755988020; x=1756592820; 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=G/s2AGi+UpKxEGtbj5W5HX0hMz+DM0tpmm0fVHROyTA=;
        b=b+Onh4/v7Czx4MZUbL/tynr4SGNKiwpmMA4KeYYS00AvvNq3maK7ibBUV07rfEHsNb
         GrNOKAVOg3iifyQ/sGWOokYyL0h0QQQA9bgN2jNJnmtPxw2CfeKTZbLaUhOMTGV/SMW1
         FaVCNrYrm1hpNseIJq2IX9GNorQfby+bNY8WwVT+eL/GEJxiSIh3ZRNrkh9pngF+JYeW
         V/oNGcCVXMfzYHc1Ou/tzQR1IintYuH3Xwgx917ixwYsFqjDO8jBjuunpn75gtu0h7A+
         lneJ3pcYsV/KKFil31q7mZnsPG9ZIn/KXXVakC/+gdeKO77AKl90naLdC0Somnban2od
         iwZw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755988020; x=1756592820;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=G/s2AGi+UpKxEGtbj5W5HX0hMz+DM0tpmm0fVHROyTA=;
        b=oV8AhGsu8JiAW47DFLw5HsHfTXLnkt/4IWmPp0aZJlphpyo7RXcES3hkU3SU+h0MqP
         5djvUk1QAYLMtGTwt8HpZYiIWCtcuya0t7DZfk+SAPQMjmP3O6CPQwfo/deLyLrK5AQv
         j0PlXqiJdeZU9ULfxUzFw3z4hER06JB3H9AQX7YU9wy7xlMqzaTj/gTnAjkgW7YkWgU3
         bzHSsRNVOzBof55pRGmMLNa6HEKFXgX4aZpoNtGIBxYYJVm8qo9XKFb08BN7vdJD+5k2
         HReuHRZ1KYplhFcb5i4J9pgM8nOJoFw0ajw5O+tgawzxtYnRGLjHUp59Nw60GBPfstXg
         pghA==
X-Gm-Message-State: AOJu0YxuHw2zViZ6vDCxL2rXQodTQNGinyhSV5xUhQ2xTaI683RREZKg
	vYAXLbDyBCDYT0QJeDuZaWFFI50PVETLwNWM8pE/SUlvadWyOCt6xPs9c+ZE3A==
X-Gm-Gg: ASbGncuZg5JLmH5Lni9/Ylk9Guk5LMmqqjFOLIBMmHNSwUzNGModF+NYaf4rEZKcp6z
	bG4hC/zlDv4qkp81iQzDJdL7de3zyoPS4qZndPI+CUw98hook3FCjTTXLApVnNZtdZVHTd5+Ydd
	eAh0nSYV9jQ6IotljNJCfwKV0IjI+YTO1xelrqLS51Jfgjkh5xlTrab3eixq/hF7Zo62AT+f55C
	bQdn/VxpH3qzIyldt7p6481DJGH9fSva7PzPHKFXCJHk/BF6m7yhYeAoW+UuuMMQLrlvqrZj7EX
	ewWA9iSsCjfHEIlW5D2lnyDp3l1TwzFT7MHsRCW/lPmC8YoLy7DqlE4byIPwQQzdwbgP7+IPMJb
	oO085OqJZ6k+iFLxovjW7Z9t02jQYDpMNouHtAVPka5itPDaYiZRAhWZIwJ+/epV8JowXfA4cJi
	Dfuafm7Q/CSZuz17hrvp8eMoUx9qTk/P36
X-Google-Smtp-Source: AGHT+IGf/E2dGFpEjsjyXWOodYnyuATtTqSt72S5E1ty0jq77FE+VHvH7pCTBwOFHmb0tQdnI7aqKQ==
X-Received: by 2002:a17:907:3da1:b0:af9:67ef:96d2 with SMTP id a640c23a62f3a-afe294b0f6emr365696466b.11.1755988020097;
        Sat, 23 Aug 2025 15:27:00 -0700 (PDT)
From: "=?UTF-8?q?Petr=20Bene=C5=A1?=" <w1benny@gmail.com>
X-Google-Original-From: =?UTF-8?q?Petr=20Bene=C5=A1?= <petr.benes@gendigital.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Petr=20Bene=C5=A1?= <w1benny@gmail.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Community Manager <community.manager@xenproject.org>
Subject: [PATCH v5 4/4] CHANGELOG.md: add new SMBIOS tables (7, 8, 9, 26, 27, 28)
Date: Sat, 23 Aug 2025 22:26:52 +0000
Message-Id: <3c9c7c48c9d8633b4c36bb0bb91fab88c03ae279.1755987697.git.w1benny@gmail.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1755987697.git.w1benny@gmail.com>
References: <cover.1755987697.git.w1benny@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Petr BeneÅ¡ <w1benny@gmail.com>

Signed-off-by: Petr BeneÅ¡ <w1benny@gmail.com>
---
 CHANGELOG.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 271ac73a0a..2fd65b90a9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -32,6 +32,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
      capability usage is not yet supported on PVH dom0).
    - Smoke tests for the FreeBSD Xen builds in Cirrus CI.
    - PVH xenstore-stubdom now supports Live Update.
+   - Support for new SMBIOS tables: 7, 8, 9, 26, 27, 28.
 
  - On Arm:
     - Ability to enable stack protector
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sat Aug 23 22:27:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 23 Aug 2025 22:27:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1091563.1448113 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upwhX-0002N0-Rb; Sat, 23 Aug 2025 22:27:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1091563.1448113; Sat, 23 Aug 2025 22:27: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 1upwhX-0002Mo-OL; Sat, 23 Aug 2025 22:27:07 +0000
Received: by outflank-mailman (input) for mailman id 1091563;
 Sat, 23 Aug 2025 22:27:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=rFF/=3D=gmail.com=w1benny@srs-se1.protection.inumbo.net>)
 id 1upwhW-0001yi-PO
 for xen-devel@lists.xenproject.org; Sat, 23 Aug 2025 22:27:06 +0000
Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com
 [2a00:1450:4864:20::633])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4919ed61-8070-11f0-b898-0df219b8e170;
 Sun, 24 Aug 2025 00:27:00 +0200 (CEST)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-afcb7a5cff3so52655666b.3
 for <xen-devel@lists.xenproject.org>; Sat, 23 Aug 2025 15:27:00 -0700 (PDT)
Received: from lab.home
 (dynamic-2a00-1028-83a4-4bca-c0bb-96ff-feed-9d50.ipv6.o2.cz.
 [2a00:1028:83a4:4bca:c0bb:96ff:feed:9d50])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afe48fd37fbsm252045166b.47.2025.08.23.15.26.58
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sat, 23 Aug 2025 15:26: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>
X-Inumbo-ID: 4919ed61-8070-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1755988019; x=1756592819; 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=qG4paJjVmzt2WmtR78TFt5pLQN6+xUIKpx/Ojl25OE0=;
        b=YlwuJQFsLDZslDVPiUPLsKE9dY0GWAg1Fjj3sDkfXQxdaV4GTxWqYsXvzJFFXZBQ/j
         /oUL6uCKEx1y2GnOIcWTexhszMTKWCsW0GuOcVSvXTU1GMrhBZoBFFVVLuBifO2psnf2
         1G9JuD8mDe2t+0d3xM62gRpTNcpi6z9nhp/UcVzyL7P2dQayA4ehpIZhPYTSuzSeXC9O
         6H3uitaGuDgkt1H0UXaOB3PR2ZnLgaKjNn0OPeRApTS2y3GdRVaZ/IJCbNNN02TC/FVM
         Ys4olNTgGrt75rf+9ICf7gpAw9IWmIZ5s8kPrQeLEhgPzpE5WSioNe8L2hFb2a1dIeAK
         Bb1Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1755988019; x=1756592819;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=qG4paJjVmzt2WmtR78TFt5pLQN6+xUIKpx/Ojl25OE0=;
        b=Qx7JyV6IXK6IUGY2WBeIxuJ2kwz1m6aTWyeqeoS2hjUNFZm3Wh4Y2TiJLD8iUJvt8e
         pqPrSr884LJGLlL2WyR7O4D+RhpHPy7p9ooaLaf492U0dvAZVWJz9gEYisW8XCOt2rNz
         7t08sjdEJkQ+rrBYd0M2UiWmNZwF6N+DnIwrAur05NoN6+ovIqc2VxwIdLY6mhYSWM3D
         DzwYnNzm07IHCcf+7sSPvUuPjd6CYGuB0NAgh7nhliA28/K6FcZ8uI/g+Jps2U7iUfYL
         dB6Yj9i5wsWZ06nRnCgrR97dMJ1aSrB3XTiUWaXPpgqXNfg18XR64LnznBCOICwPhxLE
         Kpjg==
X-Gm-Message-State: AOJu0YwrsRiisjZrQys3pc64qdWJEBnBi+RxyllMjIfUKZv9zHUA6ir1
	uVSmYxBjZzlirDBO9luHGPpvsjKC3DXqbkRfTEFCOVW4PhSDbjVjcLUgUwVsUQ==
X-Gm-Gg: ASbGncsLPosoInPUFotwiC2KTiQAwLbIZmA0EwaB6g/wQT9cdQbcu7+PRYVBzdDqW1q
	ncYGMSlszZUOPJZUMX/Glmem8KH6oGXW3atsHUvyhsCh0I0Jt4T+qaQOTz7AmF7+zxMZrqT1Omb
	hQSkt+ohSzIK5lWVOfqpMfMppt3hr/FVzBci9qYlWWpD8Wr0d0Ki33Qi0eoc9eLjGvMtgwyw0PC
	TzK1vLSwMTuYeCwYXvoNaPFq5945jBRfkn5i9Pw9Tmdlt8NFRCCtVjPbL4HfTz804A5tunyuMed
	JuSXfL+VAlSyGH3qsaQMJmTobn65WTTXo8Gk8RUtx+sOUeTgIe6gDjmHE4nQvLwCLtX86EFaeKm
	mTcHHqKKnm4mDl+hbTBTC6Nzzgfwi7LTU/8b53NJLzpu9mLEUpr4u4oBOtrVoX/cmXkV4ZWRlSp
	fGyxVflWDWg+NTo9X2bwVbd0Eew9cz8CGe
X-Google-Smtp-Source: AGHT+IFRpio/VEsHjfPDgitsBpViUeoq+NQACVyobSIWuzWw6zfVLpQQeYRT8ev7MjvL/Xz00K6wNw==
X-Received: by 2002:a17:907:94c9:b0:ad8:8e05:e5e9 with SMTP id a640c23a62f3a-afe28f0797amr344817666b.2.1755988019128;
        Sat, 23 Aug 2025 15:26:59 -0700 (PDT)
From: "=?UTF-8?q?Petr=20Bene=C5=A1?=" <w1benny@gmail.com>
X-Google-Original-From: =?UTF-8?q?Petr=20Bene=C5=A1?= <petr.benes@gendigital.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Petr=20Bene=C5=A1?= <w1benny@gmail.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v5 3/4] hvmloader: add new SMBIOS tables (7, 8, 9, 26, 27, 28)
Date: Sat, 23 Aug 2025 22:26:51 +0000
Message-Id: <4ecd33acd8bdf629e9103e97ff271150541e7415.1755987697.git.w1benny@gmail.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <cover.1755987697.git.w1benny@gmail.com>
References: <cover.1755987697.git.w1benny@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Petr BeneÅ¡ <w1benny@gmail.com>

Some SMBIOS tables are used by certain malware families to detect virtualized
environments via WMI queries.

To improve stealth for sandboxing purposes, this patch adds support
for populating these SMBIOS tables from an external binary specified
via the "smbios_firmware" domain config option:

* 7 - Cache Info
* 8 - Port Connector
* 9 - System Slots
* 26 - Voltage Probe
* 27 - Cooling Device
* 28 - Temperature Probe

If particular table is absent in binary file, then it will not be mapped to
memory. This method works for Windows domains as tables 7,8,9,26,27,28 are not
critical for OS boot and runtime. Also if "smbios_firmware" parameter is not
provided, these tables will be skipped in write_smbios_tables function.

From: Anton Belousov <blsvntn@outlook.com>
Signed-off-by: Petr BeneÅ¡ <w1benny@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
 tools/firmware/hvmloader/smbios.c       | 111 ++++++++++++++++++++++++
 tools/firmware/hvmloader/smbios_types.h |  77 ++++++++++++++++
 2 files changed, 188 insertions(+)

diff --git a/tools/firmware/hvmloader/smbios.c b/tools/firmware/hvmloader/smbios.c
index de3ba78e87..76c7090d16 100644
--- a/tools/firmware/hvmloader/smbios.c
+++ b/tools/firmware/hvmloader/smbios.c
@@ -33,12 +33,18 @@
 #define SMBIOS_HANDLE_TYPE2   0x0200
 #define SMBIOS_HANDLE_TYPE3   0x0300
 #define SMBIOS_HANDLE_TYPE4   0x0400
+#define SMBIOS_HANDLE_TYPE7   0x0700
+#define SMBIOS_HANDLE_TYPE8   0x0800
+#define SMBIOS_HANDLE_TYPE9   0x0900
 #define SMBIOS_HANDLE_TYPE11  0x0B00
 #define SMBIOS_HANDLE_TYPE16  0x1000
 #define SMBIOS_HANDLE_TYPE17  0x1100
 #define SMBIOS_HANDLE_TYPE19  0x1300
 #define SMBIOS_HANDLE_TYPE20  0x1400
 #define SMBIOS_HANDLE_TYPE22  0x1600
+#define SMBIOS_HANDLE_TYPE26  0x1A00
+#define SMBIOS_HANDLE_TYPE27  0x1B00
+#define SMBIOS_HANDLE_TYPE28  0x1C00
 #define SMBIOS_HANDLE_TYPE32  0x2000
 #define SMBIOS_HANDLE_TYPE39  0x2700
 #define SMBIOS_HANDLE_TYPE127 0x7f00
@@ -79,6 +85,12 @@ static void *
 smbios_type_4_init(void *start, unsigned int cpu_number,
                    char *cpu_manufacturer);
 static void *
+smbios_type_7_init(void *start);
+static void *
+smbios_type_8_init(void *start);
+static void *
+smbios_type_9_init(void *start);
+static void *
 smbios_type_11_init(void *start);
 static void *
 smbios_type_16_init(void *start, uint32_t memory_size_mb, int nr_mem_devs);
@@ -91,6 +103,12 @@ smbios_type_20_init(void *start, uint32_t memory_size_mb, int instance);
 static void *
 smbios_type_22_init(void *start);
 static void *
+smbios_type_26_init(void *start);
+static void *
+smbios_type_27_init(void *start);
+static void *
+smbios_type_28_init(void *start);
+static void *
 smbios_type_32_init(void *start);
 static void *
 smbios_type_39_init(void *start);
@@ -225,6 +243,9 @@ write_smbios_tables(void *ep, void *start,
     do_struct(smbios_type_3_init(p));
     for ( cpu_num = 1; cpu_num <= vcpus; cpu_num++ )
         do_struct(smbios_type_4_init(p, cpu_num, cpu_manufacturer));
+    do_struct(smbios_type_7_init(p));
+    do_struct(smbios_type_8_init(p));
+    do_struct(smbios_type_9_init(p));
     do_struct(smbios_type_11_init(p));
 
     /* Each 'memory device' covers up to 16GB of address space. */
@@ -241,6 +262,9 @@ write_smbios_tables(void *ep, void *start,
     }
 
     do_struct(smbios_type_22_init(p));
+    do_struct(smbios_type_26_init(p));
+    do_struct(smbios_type_27_init(p));
+    do_struct(smbios_type_28_init(p));
     do_struct(smbios_type_32_init(p));
     do_struct(smbios_type_39_init(p));
     do_struct(smbios_type_vendor_oem_init(p));
@@ -728,6 +752,42 @@ smbios_type_4_init(
     return start+1;
 }
 
+/* Type 7 -- Cache Information */
+static void *
+smbios_type_7_init(void *start)
+{
+    /* Specification says Type 7 table has length of 13h for v2.1+. */
+    BUILD_BUG_ON(sizeof(struct smbios_type_7) != 19);
+
+    /* Only present when passed in. */
+    return smbios_pt_copy(start, 7, SMBIOS_HANDLE_TYPE7,
+                          sizeof(struct smbios_type_7));
+}
+
+/* Type 8 -- Port Connector Information */
+static void *
+smbios_type_8_init(void *start)
+{
+    /* Specification says Type 8 table has length of 09h. */
+    BUILD_BUG_ON(sizeof(struct smbios_type_8) != 9);
+
+    /* Only present when passed in. */
+    return smbios_pt_copy(start, 8, SMBIOS_HANDLE_TYPE8,
+                          sizeof(struct smbios_type_8));
+}
+
+/* Type 9 -- System Slots */
+static void *
+smbios_type_9_init(void *start)
+{
+    /* Specification says Type 9 table has length of 0Dh for v2.1-2.5. */
+    BUILD_BUG_ON(sizeof(struct smbios_type_9) != 13);
+
+    /* Only present when passed in. */
+    return smbios_pt_copy(start, 9, SMBIOS_HANDLE_TYPE9,
+                          sizeof(struct smbios_type_9));
+}
+
 /* Type 11 -- OEM Strings */
 static void *
 smbios_type_11_init(void *start)
@@ -959,6 +1019,57 @@ smbios_type_22_init(void *start)
     return start + 1;
 }
 
+/* Type 26 -- Voltage Probe */
+static void *
+smbios_type_26_init(void *start)
+{
+    /*
+     * Specification says Type 26 table has length of at least 14h,
+     * which corresponds with the end of the "OEM-defined" field.
+     *
+     * Only present when passed in.
+     */
+
+    BUILD_BUG_ON(endof_field(struct smbios_type_26, oem_defined) != 20);
+
+    return smbios_pt_copy(start, 26, SMBIOS_HANDLE_TYPE26,
+                          endof_field(struct smbios_type_26, oem_defined));
+}
+
+/* Type 27 -- Cooling Device */
+static void *
+smbios_type_27_init(void *start)
+{
+    /*
+     * Specification says Type 27 table has length of at least 0Ch,
+     * which corresponds with the end of the "OEM-defined" field.
+     *
+     * Only present when passed in.
+     */
+
+    BUILD_BUG_ON(endof_field(struct smbios_type_27, oem_defined) != 12);
+ 
+    return smbios_pt_copy(start, 27, SMBIOS_HANDLE_TYPE27,
+                          endof_field(struct smbios_type_27, oem_defined));
+}
+
+/* Type 28 -- Temperature Probe */
+static void *
+smbios_type_28_init(void *start)
+{
+    /*
+     * Specification says Type 28 table has length of at least 14h,
+     * which corresponds with the end of the "OEM-defined" field.
+     *
+     * Only present when passed in.
+     */
+
+    BUILD_BUG_ON(endof_field(struct smbios_type_28, oem_defined) != 20);
+
+    return smbios_pt_copy(start, 28, SMBIOS_HANDLE_TYPE28,
+                          endof_field(struct smbios_type_28, oem_defined));
+}
+
 /* Type 32 -- System Boot Information */
 static void *
 smbios_type_32_init(void *start)
diff --git a/tools/firmware/hvmloader/smbios_types.h b/tools/firmware/hvmloader/smbios_types.h
index a04d194975..c04b435d31 100644
--- a/tools/firmware/hvmloader/smbios_types.h
+++ b/tools/firmware/hvmloader/smbios_types.h
@@ -149,6 +149,44 @@ struct smbios_type_4 {
     uint8_t part_number_str;
 } __attribute__ ((packed));
 
+/* SMBIOS type 7 - Cache Information */
+struct smbios_type_7 {
+    struct smbios_structure_header header;
+    uint8_t socket_designation_str;
+    uint16_t cache_configuration;
+    uint16_t maximum_cache_size;
+    uint16_t installed_size;
+    uint16_t supported_SRAM_type;
+    uint16_t current_SRAM_type;
+    uint8_t cache_speed;
+    uint8_t error_connection_type;
+    uint8_t system_cache_type;
+    uint8_t associativity;
+} __attribute__ ((packed));
+
+/* SMBIOS type 8 - Port Connector Information */
+struct smbios_type_8 {
+    struct smbios_structure_header header;
+    uint8_t internal_reference_designator_str;
+    uint8_t internal_connector_type;
+    uint8_t external_reference_designator_str;
+    uint8_t external_connector_type;
+    uint8_t port_type;
+} __attribute__ ((packed));
+
+/* SMBIOS type 9 - System Slots */
+struct smbios_type_9 {
+    struct smbios_structure_header header;
+    uint8_t slot_designation_str;
+    uint8_t slot_type;
+    uint8_t slot_data_bus_width;
+    uint8_t current_usage;
+    uint8_t slot_length;
+    uint16_t slot_id;
+    uint8_t slot_characteristics_1;
+    uint8_t slot_characteristics_2;
+} __attribute__ ((packed));
+
 /* SMBIOS type 11 - OEM Strings */
 struct smbios_type_11 {
     struct smbios_structure_header header;
@@ -232,6 +270,45 @@ struct smbios_type_22 {
     uint32_t oem_specific;
 } __attribute__ ((packed));
 
+/* SMBIOS type 26 - Voltage Probe */
+struct smbios_type_26 {
+    struct smbios_structure_header header;
+    uint8_t description_str;
+    uint8_t location_and_status;
+    uint16_t maximum_value;
+    uint16_t minimum_value;
+    uint16_t resolution;
+    uint16_t tolerance;
+    uint16_t accuracy;
+    uint32_t oem_defined;
+    uint16_t nominal_value;                 /* Optional */
+} __attribute__ ((packed));
+
+/* SMBIOS type 27 - Cooling Device */
+struct smbios_type_27 {
+    struct smbios_structure_header header;
+    uint16_t temperature_probe_handle;
+    uint8_t device_type_and_status;
+    uint8_t cooling_unit_group;
+    uint32_t oem_defined;
+    uint16_t nominal_speed;                 /* Optional */
+    uint8_t description_str;                /* Optional */
+} __attribute__ ((packed));
+
+/* SMBIOS type 28 - Temperature Probe */
+struct smbios_type_28 {
+    struct smbios_structure_header header;
+    uint8_t description_str;
+    uint8_t location_and_status;
+    uint16_t maximum_value;
+    uint16_t minimum_value;
+    uint16_t resolution;
+    uint16_t tolerance;
+    uint16_t accuracy;
+    uint32_t oem_defined;
+    uint16_t nominal_value;                 /* Optional */
+} __attribute__ ((packed));
+
 /* SMBIOS type 32 - System Boot Information */
 struct smbios_type_32 {
     struct smbios_structure_header header;
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Sun Aug 24 01:19:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 Aug 2025 01:19:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1091711.1448123 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1upzNe-0007QK-6p; Sun, 24 Aug 2025 01:18:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1091711.1448123; Sun, 24 Aug 2025 01:18: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 1upzNe-0007QC-1r; Sun, 24 Aug 2025 01:18:46 +0000
Received: by outflank-mailman (input) for mailman id 1091711;
 Sun, 24 Aug 2025 01:18:45 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=pini=3E=bounce.vates.tech=bounce-md_30504962.68aa685b.v1-71f59c0c0b55456abfcd840399f443e5@srs-se1.protection.inumbo.net>)
 id 1upzNd-0007Q6-9d
 for xen-devel@lists.xenproject.org; Sun, 24 Aug 2025 01:18:45 +0000
Received: from mail137-3.atl71.mandrillapp.com
 (mail137-3.atl71.mandrillapp.com [198.2.137.3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 38c9b23d-8088-11f0-a32b-13f23c93f187;
 Sun, 24 Aug 2025 03:18:23 +0200 (CEST)
Received: from pmta07.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail137-3.atl71.mandrillapp.com (Mailchimp) with ESMTP id 4c8bf33GT8zBsTmHK
 for <xen-devel@lists.xenproject.org>; Sun, 24 Aug 2025 01:18:19 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 71f59c0c0b55456abfcd840399f443e5; Sun, 24 Aug 2025 01:18: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>
X-Inumbo-ID: 38c9b23d-8088-11f0-a32b-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1755998299; x=1756268299;
	bh=2xQK+CBaTpLDCc7cqmkNerb4/0mzd3gotenYnAi0YJg=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=TFBATdDw3Wu+phJnN530JzherDfUUXn0hpLkN9MloPMZWpMuA+Y1DU5SRvjkI5NzA
	 +jfHKvmKBK7h3mvoVMLzAdvxQed2dCpfsiuhnBeI6gKEl4ZXUXjlqnXUHWhb0fD1hW
	 y6/qFASuCqCodDKDdsxThv8IOLPHmXeAOlB5AEzN/NmTH4GCliZOk6lEU3kC2Z6Nnt
	 vFGOPuqZdqV2Xvtx5q+uut3isqENO5W8ipZL6f0NXrFtP0sEVZgghdCTvwFIdxQcLS
	 YT1LJYrC2NUSuNjISjXueX8b+LKsTnVSQIOlAJv56jVz955Z7AWUP9HVwb4lrt/UQP
	 OYaGeqH6pa0gQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1755998299; x=1756258799; i=teddy.astie@vates.tech;
	bh=2xQK+CBaTpLDCc7cqmkNerb4/0mzd3gotenYnAi0YJg=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=JeEoRVbQjioYG+YyLPQrzyGX898AFtVZmyFJ2kLqRDo7gPzM6+hmQHC+gUo1WZMvS
	 9q6EPpwqkfhXpdnNZfnfHpeCwVH56Jm9OGjbyIUdffxG3X6sH2A8Xe9YU8YcQXysEI
	 uVNuDLHL3iTONYf6PU1Raw4qmGOEMyiyK84plsBvn6J58yWHpzy6PaROv0mBkYd1fX
	 y2gmnYk8Vsw2NVy0UivaXHoBKGr8H9B0/Bwwg75BUdPmUh3wDbiZOK0tU8vnRL2zBG
	 6MvxyMLGP9mSGPHDizNDwEzjiro3j1ifbBtHMaqO6ukmCFxasT01fuaOTN90NfqCPR
	 nbV353CzyW2lw==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v5=202/4]=20hvmloader:=20fix=20SMBIOS=20table=20length=20checks?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1755998298209
Message-Id: <84ee441e-4255-4f2f-b9b4-8b1aa5a9b43f@vates.tech>
To: "=?utf-8?Q?Petr=20Bene=C5=A1?=" <w1benny@gmail.com>, xen-devel@lists.xenproject.org
Cc: "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>
References: <cover.1755987697.git.w1benny@gmail.com> <58f42aaaf460c33d9d0935d670aab9f54eb184b8.1755987697.git.w1benny@gmail.com>
In-Reply-To: <58f42aaaf460c33d9d0935d670aab9f54eb184b8.1755987697.git.w1benny@gmail.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.71f59c0c0b55456abfcd840399f443e5?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250824:md
Date: Sun, 24 Aug 2025 01:18:19 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hello,

Le 24/08/2025 =C3=A0 00:29, Petr Bene=C5=A1 a =C3=A9crit=C2=A0:
> From: Petr Bene=C5=A1 <w1benny@gmail.com>
> 
> SMBIOS specification dictates that tables should have a minimal length.
> This commit introduces further validation for user-input SMBIOS tables.
> 
> As per SMBIOS Reference Specification:
> * Type 0: For version 2.3 and later implementations, the length is at lea=
st 14h
> * Type 1: 1Bh for 2.4 and later
> * Type 2: at least 08h
> * Type 3: 0Dh for version 2.1 and later
> * Type 11: 5h (+ strings)
> * Type 22: 1Ah (+ strings)
> * Type 39: a minimum of 10h
> 
> Notably, this also fixes previously incorrect check for chassis handle in
> smbios_type_2_init. Chassis handle is a WORD, therefore, the condition no=
w
> correctly checks for >=3D 13 instead of > 13.
> 
> hvmloader currently implements version 2.4
> 
> Furthermore, this commit introduces smbios_pt_copy helper function to sub=
stitute
> previously repeating pattern of locating the struct in physical memory (v=
ia
> get_smbios_pt_struct), checking the length and copying it into SMBIOS reg=
ion.
> 
> Signed-off-by: Petr Bene=C5=A1 <w1benny@gmail.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>
> ---
>   tools/firmware/hvmloader/smbios.c       | 178 ++++++++++++++----------
>   tools/firmware/hvmloader/smbios_types.h |  32 ++---
>   2 files changed, 123 insertions(+), 87 deletions(-)
> 
> diff --git a/tools/firmware/hvmloader/smbios.c b/tools/firmware/hvmloader=
/smbios.c
> index 6bcdcc233a..de3ba78e87 100644
> --- a/tools/firmware/hvmloader/smbios.c
> +++ b/tools/firmware/hvmloader/smbios.c
> @@ -47,6 +47,8 @@ static void
>   smbios_pt_init(void);
>   static void*
>   get_smbios_pt_struct(uint8_t type, uint32_t *length_out);
> +static void *
> +smbios_pt_copy(void *start, uint8_t type, uint16_t handle, size_t table_=
size);
>   static void
>   get_cpu_manufacturer(char *buf, int len);
>   static int
> @@ -154,6 +156,24 @@ get_smbios_pt_struct(uint8_t type, uint32_t *length_=
out)
>       return NULL;
>   }
>   
> +static void *
> +smbios_pt_copy(void *start, uint8_t type, uint16_t handle, size_t min_si=
ze)
> +{
> +    struct smbios_structure_header *header =3D start;
> +    void *pts;
> +    uint32_t length;
> +
> +    pts =3D get_smbios_pt_struct(type, &length);
> +    if ( pts !=3D NULL && length >=3D min_size )
> +    {
> +        memcpy(start, pts, length);
> +        header->handle =3D handle;
> +        return start + length;
> +    }
> +
> +    return start;
> +}
> +
>   static void
>   get_cpu_manufacturer(char *buf, int len)
>   {
> @@ -381,16 +401,17 @@ smbios_type_0_init(void *start, const char *xen_ver=
sion,
>       struct smbios_type_0 *p =3D start;
>       static const char *smbios_release_date =3D __SMBIOS_DATE__;
>       const char *s;
> -    void *pts;
> -    uint32_t length;
> +    void *next;
>   
> -    pts =3D get_smbios_pt_struct(0, &length);
> -    if ( pts !=3D NULL && length > 0 )
> -    {
> -        memcpy(start, pts, length);
> -        p->header.handle =3D SMBIOS_HANDLE_TYPE0;
> -        return start + length;
> -    }
> +    /*
> +     * Specification says Type 0 table has length of at least 18h for v2=
.4-3.0.
> +     */
> +
> +    BUILD_BUG_ON(sizeof(*p) !=3D 24);
> +
> +    next =3D smbios_pt_copy(start, 0, SMBIOS_HANDLE_TYPE0, sizeof(*p));
> +    if ( next !=3D start )
> +        return next;
>   
>       memset(p, 0, sizeof(*p));
>   
> @@ -440,16 +461,14 @@ smbios_type_1_init(void *start, const char *xen_ver=
sion,
>       char uuid_str[37];
>       struct smbios_type_1 *p =3D start;
>       const char *s;
> -    void *pts;
> -    uint32_t length;
> +    void *next;
>   
> -    pts =3D get_smbios_pt_struct(1, &length);
> -    if ( pts !=3D NULL && length > 0 )
> -    {
> -        memcpy(start, pts, length);
> -        p->header.handle =3D SMBIOS_HANDLE_TYPE1;
> -        return start + length;
> -    }
> +    /* Specification says Type 1 table has length of 1Bh for v2.4 and la=
ter. */
> +    BUILD_BUG_ON(sizeof(*p) !=3D 27);
> +
> +    next =3D smbios_pt_copy(start, 1, SMBIOS_HANDLE_TYPE1, sizeof(*p));
> +    if ( next !=3D start )
> +        return next;
>   
>       memset(p, 0, sizeof(*p));
>   
> @@ -498,26 +517,29 @@ smbios_type_2_init(void *start)
>   {
>       struct smbios_type_2 *p =3D start;
>       const char *s;
> -    uint8_t *ptr;
> -    void *pts;
> -    uint32_t length;
> +    void *next;
>       unsigned int counter =3D 0;
>   
> -    pts =3D get_smbios_pt_struct(2, &length);
> -    if ( pts !=3D NULL && length > 0 )
> -    {
> -        memcpy(start, pts, length);
> -        p->header.handle =3D SMBIOS_HANDLE_TYPE2;
> +    /*
> +     * Specification says Type 2 table has length of at least 08h,
> +     * which corresponds with the end of the "Serial Number" field.
> +     */
> +
> +    BUILD_BUG_ON(endof_field(struct smbios_type_2, serial_number_str) !=
=3D 8);
>   
> +    next =3D smbios_pt_copy(start, 2, SMBIOS_HANDLE_TYPE2,
> +                          endof_field(struct smbios_type_2, serial_numbe=
r_str));
> +    if ( next !=3D start )
> +    {
>           /* Set current chassis handle if present */
> -        if ( p->header.length > 13 )
> +        if ( p->header.length >=3D endof_field(struct smbios_type_2,
> +                                             chassis_handle) )
>           {
> -            ptr =3D ((uint8_t*)start) + 11;
> -            if ( *((uint16_t*)ptr) !=3D 0 )
> -                *((uint16_t*)ptr) =3D SMBIOS_HANDLE_TYPE3;
> +            if ( p->chassis_handle !=3D 0 )
> +                p->chassis_handle =3D SMBIOS_HANDLE_TYPE3;
>           }
>   
> -        return start + length;
> +        return next;
>       }
>   
>       memset(p, 0, sizeof(*p));
> @@ -593,18 +615,21 @@ smbios_type_3_init(void *start)
>   {
>       struct smbios_type_3 *p =3D start;
>       const char *s;
> -    void *pts;
> -    uint32_t length;
> +    void *next;
>       uint32_t counter =3D 0;
>   
> -    pts =3D get_smbios_pt_struct(3, &length);
> -    if ( pts !=3D NULL && length > 0 )
> -    {
> -        memcpy(start, pts, length);
> -        p->header.handle =3D SMBIOS_HANDLE_TYPE3;
> -        return start + length;
> -    }
> -
> +    /*
> +     * Specification says Type 3 table has length of at least 0Dh (for v=
2.1+),
> +     * which corresponds with the end of the "Security Status" field.
> +     */
> +
> +    BUILD_BUG_ON(endof_field(struct smbios_type_3, security_status) !=3D=
 13);
> +
> +    next =3D smbios_pt_copy(start, 3, SMBIOS_HANDLE_TYPE3,
> +                          offsetof(struct smbios_type_3, security_status=
));
> +    if ( next !=3D start )
> +        return next;
> +
>       memset(p, 0, sizeof(*p));
>   
>       p->header.type =3D 3;
> @@ -656,6 +681,9 @@ smbios_type_4_init(
>       struct smbios_type_4 *p =3D start;
>       uint32_t eax, ebx, ecx, edx;
>   
> +    /* Specification says Type 4 table has length of 23h for v2.3+. */
> +    BUILD_BUG_ON(sizeof(*p) !=3D 35);
> +
>       memset(p, 0, sizeof(*p));
>   
>       p->header.type =3D 4;
> @@ -707,17 +735,15 @@ smbios_type_11_init(void *start)
>       struct smbios_type_11 *p =3D start;
>       char path[20];
>       const char *s;
> +    void *next;
>       int i;
> -    void *pts;
> -    uint32_t length;
>   
> -    pts =3D get_smbios_pt_struct(11, &length);
> -    if ( pts !=3D NULL && length > 0 )
> -    {
> -        memcpy(start, pts, length);
> -        p->header.handle =3D SMBIOS_HANDLE_TYPE11;
> -        return start + length;
> -    }
> +    /* Specification says Type 11 table has length of 05h. */
> +    BUILD_BUG_ON(sizeof(*p) !=3D 5);
> +
> +    next =3D smbios_pt_copy(start, 11, SMBIOS_HANDLE_TYPE11, sizeof(*p))=
;
> +    if ( next !=3D start )
> +        return next;
>   
>       p->header.type =3D 11;
>       p->header.length =3D sizeof(*p);
> @@ -756,6 +782,9 @@ smbios_type_16_init(void *start, uint32_t memsize, in=
t nr_mem_devs)
>   {
>       struct smbios_type_16 *p =3D start;
>   
> +    /* Specification says Type 16 table has length of 0Fh for v2.1-2.7. =
*/
> +    BUILD_BUG_ON(sizeof(*p) !=3D 15);
> +
>       memset(p, 0, sizeof(*p));
>   
>       p->header.type =3D 16;
> @@ -781,6 +810,9 @@ smbios_type_17_init(void *start, uint32_t memory_size=
_mb, int instance)
>       char buf[16];
>       struct smbios_type_17 *p =3D start;
>   
> +    /* Specification says Type 17 table has length of 1Bh for v2.3-2.6. =
*/
> +    BUILD_BUG_ON(sizeof(*p) !=3D 27);
> +
>       memset(p, 0, sizeof(*p));
>   
>       p->header.type =3D 17;
> @@ -816,6 +848,9 @@ smbios_type_19_init(void *start, uint32_t memory_size=
_mb, int instance)
>   {
>       struct smbios_type_19 *p =3D start;
>   
> +    /* Specification says Type 19 table has length of 0Fh for v2.1-2.7. =
*/
> +    BUILD_BUG_ON(sizeof(*p) !=3D 15);
> +
>       memset(p, 0, sizeof(*p));
>   
>       p->header.type =3D 19;
> @@ -838,6 +873,9 @@ smbios_type_20_init(void *start, uint32_t memory_size=
_mb, int instance)
>   {
>       struct smbios_type_20 *p =3D start;
>   
> +    /* Specification says Type 20 table has length of 13h for v2.1-2.7. =
*/
> +    BUILD_BUG_ON(sizeof(*p) !=3D 19);

Note that OVMF does replace the SMBIOS version to 2.8 which may 
eventually invalidate what you expect (assuming the length only holds 
for the versions you give in your comments).

I don't know enough SMBIOS and OVMF to know if it can be a problem (OVMF 
may do some conversions in these cases).

> +
>       memset(p, 0, sizeof(*p));
>   
>       p->header.type =3D 20;
> @@ -865,16 +903,14 @@ smbios_type_22_init(void *start)
>       struct smbios_type_22 *p =3D start;
>       static const char *smbios_release_date =3D __SMBIOS_DATE__;
>       const char *s;
> -    void *pts;
> -    uint32_t length;
> +    void *next;
>   
> -    pts =3D get_smbios_pt_struct(22, &length);
> -    if ( pts !=3D NULL && length > 0 )
> -    {
> -        memcpy(start, pts, length);
> -        p->header.handle =3D SMBIOS_HANDLE_TYPE22;
> -        return start + length;
> -    }
> +    /* Specification says Type 22 table has length of 1Ah. */
> +    BUILD_BUG_ON(sizeof(*p) !=3D 26);
> +
> +    next =3D smbios_pt_copy(start, 22, SMBIOS_HANDLE_TYPE22, sizeof(*p))=
;
> +    if ( next !=3D start )
> +        return next;
>   
>       s =3D xenstore_read(HVM_XS_SMBIOS_DEFAULT_BATTERY, "0");
>       if ( strncmp(s, "1", 1) !=3D 0 )
> @@ -929,6 +965,9 @@ smbios_type_32_init(void *start)
>   {
>       struct smbios_type_32 *p =3D start;
>   
> +    /* Specification says Type 32 table has length of at least 0Bh. */
> +    BUILD_BUG_ON(sizeof(*p) !=3D 11);
> +
>       memset(p, 0, sizeof(*p));
>   
>       p->header.type =3D 32;
> @@ -946,20 +985,17 @@ smbios_type_32_init(void *start)
>   static void *
>   smbios_type_39_init(void *start)
>   {
> -    struct smbios_type_39 *p =3D start;
> -    void *pts;
> -    uint32_t length;
> +    /*
> +     * Specification says Type 39 table has length of at least 10h,
> +     * which corresponds with the end of the "Characteristics" field.
> +     *
> +     * Only present when passed in.
> +     */
>   
> -    pts =3D get_smbios_pt_struct(39, &length);
> -    if ( pts !=3D NULL && length > 0 )
> -    {
> -        memcpy(start, pts, length);
> -        p->header.handle =3D SMBIOS_HANDLE_TYPE39;
> -        return start + length;
> -    }
> +    BUILD_BUG_ON(endof_field(struct smbios_type_39, characteristics) !=
=3D 16);
>   
> -    /* Only present when passed in */
> -    return start;
> +    return smbios_pt_copy(start, 39, SMBIOS_HANDLE_TYPE39,
> +                          endof_field(struct smbios_type_39, characteris=
tics));
>   }
>   
>   static void *
> diff --git a/tools/firmware/hvmloader/smbios_types.h b/tools/firmware/hvm=
loader/smbios_types.h
> index 7c648ece71..a04d194975 100644
> --- a/tools/firmware/hvmloader/smbios_types.h
> +++ b/tools/firmware/hvmloader/smbios_types.h
> @@ -90,13 +90,13 @@ struct smbios_type_2 {
>       uint8_t product_name_str;
>       uint8_t version_str;
>       uint8_t serial_number_str;
> -    uint8_t asset_tag_str;
> -    uint8_t feature_flags;
> -    uint8_t location_in_chassis_str;
> -    uint16_t chassis_handle;
> -    uint8_t board_type;
> -    uint8_t contained_handle_count;
> -    uint16_t contained_handles[];
> +    uint8_t asset_tag_str;                  /* Optional */
> +    uint8_t feature_flags;                  /* Optional */
> +    uint8_t location_in_chassis_str;        /* Optional */
> +    uint16_t chassis_handle;                /* Optional */
> +    uint8_t board_type;                     /* Optional */
> +    uint8_t contained_handle_count;         /* Optional */
> +    uint16_t contained_handles[];           /* Optional */
>   } __attribute__ ((packed));
>   
>   /* System Enclosure - Contained Elements */
> @@ -118,12 +118,12 @@ struct smbios_type_3 {
>       uint8_t power_supply_state;
>       uint8_t thermal_state;
>       uint8_t security_status;
> -    uint32_t oem_specific;
> -    uint8_t height;
> -    uint8_t number_of_power_cords;
> -    uint8_t contained_element_count;
> -    uint8_t contained_element_length;
> -    struct smbios_contained_element contained_elements[];
> +    uint32_t oem_specific;                  /* Optional */
> +    uint8_t height;                         /* Optional */
> +    uint8_t number_of_power_cords;          /* Optional */
> +    uint8_t contained_element_count;        /* Optional */
> +    uint8_t contained_element_length;       /* Optional */
> +    struct smbios_contained_element contained_elements[]; /* Optional */
>   } __attribute__ ((packed));
>   
>   /* SMBIOS type 4 - Processor Information */
> @@ -252,9 +252,9 @@ struct smbios_type_39 {
>       uint8_t revision_level_str;
>       uint16_t max_capacity;
>       uint16_t characteristics;
> -    uint16_t input_voltage_probe_handle;
> -    uint16_t cooling_device_handle;
> -    uint16_t input_current_probe_handle;
> +    uint16_t input_voltage_probe_handle;    /* Optional */
> +    uint16_t cooling_device_handle;         /* Optional */
> +    uint16_t input_current_probe_handle;    /* Optional */
>   } __attribute__ ((packed));
>   
>   /* SMBIOS type 127 -- End-of-table */



Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Sun Aug 24 02:06:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 Aug 2025 02:06:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1091744.1448133 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uq085-0005RU-Ak; Sun, 24 Aug 2025 02:06:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1091744.1448133; Sun, 24 Aug 2025 02:06: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 1uq085-0005RM-6q; Sun, 24 Aug 2025 02:06:45 +0000
Received: by outflank-mailman (input) for mailman id 1091744;
 Sun, 24 Aug 2025 02:06:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=K0KA=3E=m5p.com=ehem@srs-se1.protection.inumbo.net>)
 id 1uq083-0005R8-Sa
 for xen-devel@lists.xenproject.org; Sun, 24 Aug 2025 02:06:43 +0000
Received: from mailhost.m5p.com (mailhost.m5p.com [74.104.188.4])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f533a404-808e-11f0-b898-0df219b8e170;
 Sun, 24 Aug 2025 04:06:35 +0200 (CEST)
Received: from m5p.com (mailhost.m5p.com [IPv6:2001:470:8ac4:0:0:0:0:f7])
 by mailhost.m5p.com (8.18.1/8.17.1) with ESMTPS id 57O265lc073989
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Sat, 23 Aug 2025 22:06:11 -0400 (EDT) (envelope-from ehem@m5p.com)
Received: (from ehem@localhost)
 by m5p.com (8.18.1/8.15.2/Submit) id 57O264A3073988;
 Sat, 23 Aug 2025 19:06:04 -0700 (PDT) (envelope-from ehem)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f533a404-808e-11f0-b898-0df219b8e170
Date: Sat, 23 Aug 2025 19:06:04 -0700
From: Elliott Mitchell <ehem+xen@m5p.com>
To: Julien Grall <julien@xen.org>
Cc: Jan Beulich <jbeulich@suse.com>,
        Demi Marie Obenour <demiobenour@gmail.com>,
        xen-users@lists.xenproject.org, xen-devel@lists.xenproject.org,
        Stefano Stabellini <sstabellini@kernel.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Michal Orzel <michal.orzel@amd.com>,
        Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
        Paul Leiber <paul@onlineschubla.de>
Subject: Re: Consider changing CONFIG_ACPI default on ARM?
Message-ID: <aKpzjMnNzxJCoIXb@mattapan.m5p.com>
References: <CAO_48GG1Tg0d3ATnNAYNr0cg7Ty_zsnzT29=dpkk99DxyTWcmg@mail.gmail.com>
 <fceb5df8-d628-479d-acb3-d1d26409fbac@onlineschubla.de>
 <aJLae1Nl0pyOZgyh@mattapan.m5p.com>
 <1b96f2f3-55a2-4b33-84b1-a7c18d38d10c@suse.com>
 <6e9b5265-7a3b-4fd5-b14e-0e60a8b49833@gmail.com>
 <a3092ae1-d836-4403-8fb5-30593fcd2fb8@suse.com>
 <aKjOaT-P74Yh4-bi@mattapan.m5p.com>
 <2f11b8ea-a386-4c2a-afe6-c7e57d1d7f75@xen.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <2f11b8ea-a386-4c2a-afe6-c7e57d1d7f75@xen.org>
X-Spam-Status: No, score=0.4 required=10.0 tests=KHOP_HELO_FCRDNS autolearn=no
	autolearn_force=no version=4.0.1
X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on mattapan.m5p.com

On Sat, Aug 23, 2025 at 08:59:13AM +0100, Julien Grall wrote:
> 
> On 22/08/2025 21:09, Elliott Mitchell wrote:
> > Since you're not pointing to anything definite, could it be everything
> > has been resolved?
> 
> Unfortunately, the situation has not changed since your last thread about
> enabling CONFIG_ACPI=y a couple of years ago. The main feature we are
> lacking is the parsing the IORT (used to discover SMMUs and MSI
> controllers). Without this...

No one to sponsor this work?  Disappointing with how far ACPI support had
gotten.  Surprising the funding ended here.

> >  We've got at least two people for whom ACPI on ARM
> > works pretty well.
> 
> ... Xen will only properly boot on "simple" case like the Raspberry PI.
> Also, IIRC Xen would use ACPI rather than Device-Tree by default.

What is the "improper" booting on non-simple cases like?  panic()?
Domain 0 boots, but the system isn't properly protected by the SMMU?
Ideally it would be runtime configurable with the former being the
default, but the panic message indicating how to override to produce the
latter.  Perhaps even accompanied by an invitation for sponsorship.

Yet handling those simple cases would help many people.  For a long time
IO-MMUs were rare, yet the world did not end.

> > There may be many more using it.  Perhaps this
> > should even be done on the 4.20 branch given how long this has been
> > working?
> 
> I am guessing you mean 4.21 which will be released in a couple of months
> time, correct?

As it is very simple to flip the default, I was thinking it might be
worthwhile to change it on earlier versions too.  After all it has
actually been known to work for kind of a long time.

> We have been discussing among the committers on whether we are ok to enable
> ACPI despite the fact it is still not feature complete (see above). The
> discussion is not fully finalized but if we were to enable CONFIG_ACPI=y by
> default then I think we would need the following:
> 
>  * Select device-tree by default rather than ACPI
>  * Go through SUPPORT.MD and check what features we marked as SUPPORTED.md
> but doesn't work on ACPI.
> 
> Maybe you can help with that?

I'm not sure this is a good role for me.  I suppose I could do a first
pass marking everything as non-ACPI.  Problem is most recently I've been
focussing on another aspect and I would mostly be guessing about things.

> Out of interest, sorry if this was already mentioned before, is there any
> reason ACPI is used on the Raspberry PI over Device-Tree? Is there any issue
> with the latter on Xen?

Issue is various Linux distributions have differing levels of support for
various targets.  Nearly everyone has some degree of support for
Raspberry PI (even Tianocore!), but the quality does vary from
distribution to distribution.

My favored distribution is rather limited in what it does for !x86.
Everything gets built for !x86, but things such as booting hasn't been
heavily looked at.  There is agreement using U-Boot/UEFI => GRUB would
likely be a Good Thing, but there is a shortage of people with the right
expertise to get that working.  As a result booting Xen is troublesome.

Whereas copying the Tianocore firmware into place and getting it booting
is *extremely* simple.  Further this has very few restrictions (GPT and
a ~200MB FAT filesystem).  Better yet once in place this is extremely
robust.

The only argument in favor of device-trees I've seen is that they're easy
to deal with.  Certainly they need little runtime processing.  Yet they
come with a major weakness that they're really part of the kernel.  When
the Linux kernel is replaced (even patch-level differences) you pretty
well always need to replace the device-trees.  Once you've done that it
is quite difficult to go back to the earlier kernel.

New device-trees often cause older kernels to panic or malfunction.  If
storage is on USB you can unplug and adjust on a nearby desktop, but this
means you need to keep another system handy.  Whereas due to being well
isolated from the OS, the same set of ACPI tables works for many OSes and
nearly all versions of Linux.

The instances of ACPI tables which worked with Windows, but failed for
other operating systems are quite famous.  The instances where a given
set of device-trees work with Linux, but then fail with other OSes
(or even merely different version of Linux) are not notable.  In fact
instances where device-trees *don't* change drastically between kernel
minor versions are newsworthy.


> > The one remaining major issue was the state of EFI-FB support.  There
> > was a patch which had that working for Linux kernel 5.10, but that might
> > need more work for a proper solution.
> 
> Yes. And there was no interest from the other members to fix it properly. So
> I gave up that on that work as I don't have a particular interest of using
> FrameBuffer on the raspberry PI. Feel free to revive it and I would be happy
> to review them.

Uhm, I thought I had expressed a strong desire to have it operational.
My knowledge of ACPI is rather limited, but I am well-setup for debugging
ARM (unlike x86 which is intended for serious work).

As mentioned by others it is kind of a popular platform.  I dislike the
thought of giving it special status merely due to that, but it is rather
readily available.


-- 
(\___(\___(\______          --=> 8-) EHM <=--          ______/)___/)___/)
 \BS (    |         ehem+sigmsg@m5p.com  PGP 87145445         |    )   /
  \_CS\   |  _____  -O #include <stddisclaimer.h> O-   _____  |   /  _/
8A19\___\_|_/58D2 7E3D DDF4 7BA6 <-PGP-> 41D1 B375 37D0 8714\_|_/___/5445




From xen-devel-bounces@lists.xenproject.org Sun Aug 24 14:56:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 Aug 2025 14:56:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1092080.1448143 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqC8p-0007px-JG; Sun, 24 Aug 2025 14:56:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1092080.1448143; Sun, 24 Aug 2025 14:56: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 1uqC8p-0007po-ED; Sun, 24 Aug 2025 14:56:19 +0000
Received: by outflank-mailman (input) for mailman id 1092080;
 Sun, 24 Aug 2025 14:56:18 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=epLo=3E=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1uqC8n-0007pR-Qq
 for xen-devel@lists.xenproject.org; Sun, 24 Aug 2025 14:56:18 +0000
Received: from GVXPR05CU001.outbound.protection.outlook.com
 (mail-swedencentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c202::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7c830f54-80fa-11f0-a32c-13f23c93f187;
 Sun, 24 Aug 2025 16:56:16 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by DBBPR03MB7129.eurprd03.prod.outlook.com (2603:10a6:10:206::24) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Sun, 24 Aug
 2025 14:56:13 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9052.019; Sun, 24 Aug 2025
 14:56: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>
X-Inumbo-ID: 7c830f54-80fa-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=grUTdrHuHkQJM7MkLbLw0vof8x4GxzM9K813KtknkkgRng/tBNOB+wb2dTT51jL0bR//WwlZso3p6151gSfkrbUP5b2jcIJAJr5CEQoPc6bVPm1m1Q4gP2bZvc/ekTn6jaa3SX4OJ6Mpn1QccK7xv7N0R5wBz0OUD8wtU1x+6J8yGT4U/lT4ljsOv+eWkqXMhT++LxvUurdhU0mTUEb7tGcBr7iWX7TaMETgCG/phV/jPpBktww5rw6Xuc2OtwbV/BmKdOvMcQu4V+UeBvr0i87J1pcmICTMvIrRDFKgf/Z8XnKGY5Glz9nQiYaolS2kkOJ8+7cq6fZFxjbLhOOuzw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=RYqMlulOmq2nt5G3ZsDWgSowqxIvFczl7k3DFX8P8Ao=;
 b=EOACfc8mWc8Ax3WikVeuGRQ7wuw8YOdG2nCmICNuSg6C7uax+5etfXcusJXLP2xuz/lAtxZ6t/FQuxYNqlv0wsix2xIeRpP5Qv+QvTP5fNb2sfI0AzD25aGsPBCo+2Ns3wm2m9oUk9oAjqS1rChTKJbVdVQtZHwY9XoGb+fKchigS3UYRhRsCoyhEMNV39YlpXaLErEDyqiHvF2mkHmwy1s0xYwb9Q2T8cWN5aR4YzorqJRuK/3+G9VdWYz+bRkmD9VVdGuFhltRkYhm8beFmt90dK2iIzWL0YLG4NKs3pIXthaTgQw1obZGFTIcUYBsFtTYyumXZlYQp6IFApbsbQ==
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=RYqMlulOmq2nt5G3ZsDWgSowqxIvFczl7k3DFX8P8Ao=;
 b=dggjMZ0XhNIiOWZaR0M86tDLDWXRU1Qx1YmNDEqNne1Dw8uZ7P0Hhhsyov3oOf4PnFC8emXd2HSlF7bqmxDU79jV9iANR5UAKKRddo0lcyyxzGids6dEbZAtM//xcnJJb1QPm45qdO83t7T66Ic9Z2aHr7YOrflKZ7ySvfhhMLeuh9KmgYnzaNYSAhrwbnJgYTYtfvNolpefPiNWT8WBUmawSWDdeeBfWbDWcAuNSjMQieMEBxUXO6Gr25UyNkIPAw5d4Z+bOGLs9wrvf907q8wgPrHytffqXAsqm64K04aZnV/J0BdtkvAQMUPqvoO3zu+uev1odvd5FKdV+c1szQ==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, Nicola Vetrini
	<nicola.vetrini@bugseng.com>, Doug Goldstein <cardoe@cardoe.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>
Subject: [PATCH] misra: add deviation of Rule 2.1 for BUG() macro
Thread-Topic: [PATCH] misra: add deviation of Rule 2.1 for BUG() macro
Thread-Index: AQHcFQc77bBOPokbA0m9oV6J6fEgkA==
Date: Sun, 24 Aug 2025 14:56:12 +0000
Message-ID:
 <f7b4112aad84162c25f96a9d6db43a0c2ba85daa.1756046023.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: GV2PR03MB9572:EE_|DBBPR03MB7129:EE_
x-ms-office365-filtering-correlation-id: 3d42f09e-ad68-4ddd-6b3b-08dde31e5e89
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|7416014|376014|366016|42112799006|13003099007|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?0h95LBYrk08Jxjuq6NKXKEaCP9R3c/16Q7hK+P5O8/AhLNc8/R9fsmsfCF?=
 =?iso-8859-1?Q?ilEU4a9vEG8zHTxtsQhubd66mzGpT96eNMJoz5ujqhFExzjUR9PVPiaaZr?=
 =?iso-8859-1?Q?jBxKz4j1Nb1FV06VRW1q1lhOVoAvfFjXEZPhcUUOwo4AVNOVGgJK3TrbEu?=
 =?iso-8859-1?Q?SKvMUcobFJHgxF0YYa991DEIUZx3LytZjUYYXyvur3FqSKLZ4eSkhUf70/?=
 =?iso-8859-1?Q?ubU+sUsNtaUsMSkYxHKJYhJGDG904BLVDRAFgb/vN30H0d9rRNEDXcTI0N?=
 =?iso-8859-1?Q?HiV3+dj/rZHKbHXjNK7qLAOics+CEbAeR2PXxGpv48ZCfwRWifNLxLyjk1?=
 =?iso-8859-1?Q?cTHD+rm0LnkW4Q2SuQNgZGczNW1YGKA3S8UWjexESbDgxq4hFUVbFVAd7T?=
 =?iso-8859-1?Q?aR0awm1s3V8Vh5O5izwP7LsBzrhAi/i0sYYa3J9RB7tjzyzu1HF2FjmHJ/?=
 =?iso-8859-1?Q?MVSe25hsKsqf+i/+Bus+ZeXNcYHtsyAOsMeZqKXEXt0oEPbHf7uXNGfuQt?=
 =?iso-8859-1?Q?O1iSGLHt9ehfPeK8CjhZkET/NWW+bKIIA8CJm74XAAmB6LJ2SeEx0RHyJg?=
 =?iso-8859-1?Q?SyS8LCJNW8hHgde3aaIcX9Nu6xCR1cAik2MC/CStriK0NfHvH4iOqAAKOw?=
 =?iso-8859-1?Q?6rXoB1GvugMiJ0TrRHaX778FvOkg6nsGs0OWu1/d7o1Pga1RfXzS4ryrGV?=
 =?iso-8859-1?Q?mhwwoCQCRKIhJooaL3c2SMvuSQCtDmnrOzr0RX2qutiZmM8pDcGd1Xu1iI?=
 =?iso-8859-1?Q?DayzwRxV7vHa99mSPeN6IBq/iH4DCxJvjkeAGFh9ZsfJ9hznYEu8Zwiaz7?=
 =?iso-8859-1?Q?an4XXaPG62DZoIqKxpURdfoB8i6PoOXAEpEJ8CzTQD5AwU93VqYK4A/uP2?=
 =?iso-8859-1?Q?IAGcObvKMNRv1rcNxh0sQZoyUrj1CEaCw26Qez0f9MyBYcKKVWU+zMpPFS?=
 =?iso-8859-1?Q?ncHqj+4kBUjNLPECQ0uazW0HB92SDMvR9M839CrGrnflQ9CJsdme9cN07V?=
 =?iso-8859-1?Q?dz7Yz5+TZxPF62MHDk1a7UF81HWOdN9M5NHyWHOdNbvHbPfM3IgsNoFQaV?=
 =?iso-8859-1?Q?AZ/94eySTH7HAgxbdQObhqtmQ7UVSc7q0EcGRhfVaAv8U5cQJeoyomMQ+Q?=
 =?iso-8859-1?Q?js0PAtnIiiWUla3qoqK48IbLJpJVUdpaU4eDvaXBPa3T5jY4wg70u0wH0F?=
 =?iso-8859-1?Q?0ShNV1YizEu11AxEt0xWr8AYQvcuGQrt86mmXGAvUWDR4legBb1nNu7Ycw?=
 =?iso-8859-1?Q?LyNJ0/sVCxKE3HiCa536GcKlxcPzRhqnDjnj2bp/rAc0heGk1HTgZIhP7H?=
 =?iso-8859-1?Q?vtkBZkynMsrTWFCo6m0P10Jro/jgqM2Wh2mrqpgFcAjp5ELjeH1Vjk4HNp?=
 =?iso-8859-1?Q?tdEbIxAcK8ZeklqUXaFdv36od3ztm8NS3Qn64kLC96C71U4kfU4RKC/BH3?=
 =?iso-8859-1?Q?+PzeeQOcnMrw46ztENRDiT3F1PMZYVyl/mSA2WjQqcYKs4ZMg6UboqsTB3?=
 =?iso-8859-1?Q?chTuCLl0Aqpw/WyynRrEpFLY4Tg6b4BO4t/WpjXYWsvht718F5eUDEICNY?=
 =?iso-8859-1?Q?BUYgEQM=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(42112799006)(13003099007)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?51cEqJ0qCbHgLEWBSwDbSml7YuEiStQQyBl9j2Xugab8WVT9aq/JKhvPi6?=
 =?iso-8859-1?Q?Zf4JkOc4L3rP/yEZLMig4fV6Zr3hz3Cye14p8LbkAvAJjpjWLjTobJ11SL?=
 =?iso-8859-1?Q?hQzuH2nd/nIM3y/bPaTK1obfXNeNWA0V7U6IBfLwExgb1aauiW1mXV/QVs?=
 =?iso-8859-1?Q?zzZt+YESVa/Hu+/jGgzI8+hJoZHOpf6c/k7OyNy30/HMsxmNjtTvDk5K09?=
 =?iso-8859-1?Q?2/NRg53jVbKZK8TGvvVCodL0IICe69xGnELk06GBC2zAcKL33mLberPBov?=
 =?iso-8859-1?Q?TFeMcTodoT7wBfiDXvusDF6R8RgbAVhRfftmnFChJm6svc5NFhJW6EsoaI?=
 =?iso-8859-1?Q?fCijmzMSGnwdPAcp3OW2JF+dd0pspyGIW/++hd8sveiElE84X5YOOtq1WG?=
 =?iso-8859-1?Q?Sw67Fi8/Bz7+J1U7cBfwFi+h1h0o+ohHDJRIlH45soCLmSCeRQHrxYcl/y?=
 =?iso-8859-1?Q?yOqFZ2FJU9u36lq3Cf4AN/L4aXncGLbnB9D+gGPzsiJsWJH32tgEuyPbdl?=
 =?iso-8859-1?Q?nBo3pt/q7MaJiot6RkG8ndRXTf3ENdQ3pXT4AeMSur/dFYHsOjNUZIr5iB?=
 =?iso-8859-1?Q?DpeTWn59HBXxzJugSOcxxRnr3o0RUtlhEi5ZND47WJv9iduMPT80x41/su?=
 =?iso-8859-1?Q?n0Vnpb0PYAJ/PldZCu7QGZuQxTHzcDvDunbQV0uKwSBqiJyEIj3ZZGIGZW?=
 =?iso-8859-1?Q?sY5NxXJ1I/yJR4MDeuG8c9ZT2/dSb3DSK6k9lnkzfOJBAfpJHo8c90ACre?=
 =?iso-8859-1?Q?YWvO33vZUq+vjr1TGOeQFkZESM9SFHrYLkAXr9YoTVp+nX8/fchfSUmro/?=
 =?iso-8859-1?Q?EA7e0gz7naTZM0t2M3fTBQOEft2V6SDhX/+OVZMwILfCAzR6xDYjUhR7NK?=
 =?iso-8859-1?Q?kUwNLO08yUSsL+Oxk4FnAff/dddg59WrEPqHkXXGFycb6SVVyYyXUNMFkx?=
 =?iso-8859-1?Q?STGje1+iY8K9RZJRrgrhvbHV26bp0UilifI3RoXWbQSMCeyAdVrQSO2+9l?=
 =?iso-8859-1?Q?Zu/0JenYRg0pOJR5lcNySU2WJ0rsbOyR+RR2R/lv5EMLrDaEu1hpFZHYx3?=
 =?iso-8859-1?Q?PMXC9hXD1QR4CPAHydymPpy8vLy0jYx2QVg/FCNtDnGA3OatxunkO78zWT?=
 =?iso-8859-1?Q?3CoY1WDS+AmENFdtYioaB/MYFGKKl4zcJn5/FgCWXzAfxg94KzXV4Gc0bR?=
 =?iso-8859-1?Q?P7ts4EbZs9am4nMrAKLcjQrtWZnGNR7UgpXtmhFyhVk6+O6SVQLXHIJoIX?=
 =?iso-8859-1?Q?vwQ5/PuzV3G8q/Q5coXf0TKGzi2cpymmE1efTR0lh8QMaGGYzCuxWcA/Lm?=
 =?iso-8859-1?Q?Lhcet+nw1Gge+ndFjQHksGUH3FeByY4YplnOT4L9ywS/DM/ODAQMafUxPT?=
 =?iso-8859-1?Q?NPkOHGeh4lHw/k5s7nU1nJXcDoC3AYyzP+W4wBgZNF/dQCGagaDUEQ5hJF?=
 =?iso-8859-1?Q?occtesqxOHkzOWU4Wq8T2ClbNQK0JFgzeMGyT4Spaout4S3AqyezTIyTiK?=
 =?iso-8859-1?Q?71DkNwCh4fwT+odLvvW00WZo0NVNHA9Cs/7yNU86ySdElhCtwx+hkGsi+A?=
 =?iso-8859-1?Q?yWvgeXOb8eVKeFUHwrckEU8JhBwaot1BDiac4y6CXuEusQmZbD3uJ4vaLc?=
 =?iso-8859-1?Q?gHGfZYOX8wYu4MfkiEKgv6tjlImxOLq4SIBN2qjXwsAfigSp5qDoYFow?=
 =?iso-8859-1?Q?=3D=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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3d42f09e-ad68-4ddd-6b3b-08dde31e5e89
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Aug 2025 14:56:13.0736
 (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: xaAoO/nwNVmkOtixn4IjHZsOxwcOSxHnzd0MrULJ2jcvofpm18Mz0Cmely8EBXsivnuoHU3++OaQa5QHU/qQhdDRTIY7FH5ZhErvXtvhyMc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR03MB7129

MISRA C Rule 2.1 states: "A project shall not contain unreachable code".
Functions that are non-returning and are not explicitly annotated with
the 'noreturn' attribute are considered a violation of this rule.

In certain cases, some functions might be non-returning in specific build
configurations due to call to '__builtin_unreachable()' in the expansion
of the macro 'BUG()':
 - functions 'gicv3_do_LPI()' and 'gicv3_its_setup_collection()' when the
config CONFIG_HAS_ITS is not defined, it is intentionally used to catch
and prevent any unintended execution of code that should only run when
ITS is available;
 - function 'prepare_acpi()' when the config CONFIG_ACPI is not defined,
to trigger an error if ACPI-related features are used incorrectly.

To account for that in specific builds, update the ECLAIR configuration
to deviate these violations. Update deviations.rst file accordingly.
No functional changes.

Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
Test CI pipeline:
https://gitlab.com/xen-project/people/dimaprkp4k/xen/-/pipelines/2000738682
---
 automation/eclair_analysis/ECLAIR/deviations.ecl | 11 +++++++++++
 docs/misra/deviations.rst                        | 13 +++++++++++++
 2 files changed, 24 insertions(+)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/=
eclair_analysis/ECLAIR/deviations.ecl
index 7f3fd35a33..336aec58c2 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -41,6 +41,17 @@ not executable, and therefore it is safe for them to be =
unreachable."
 -call_properties+=3D{"name(__builtin_unreachable)&&stmt(begin(any_exp(macr=
o(name(ASSERT_UNREACHABLE)))))", {"noreturn(false)"}}
 -doc_end
=20
+-doc_begin=3D"The 'BUG()' macro is intentionally used in the 'prepare_acpi=
()' function in specific build configuration
+(when the config CONFIG_ACPI is not defined) to trigger an error if ACPI-r=
elated features are used incorrectly."
+-config=3DMC3A2.R2.1,reports+=3D{deliberate, "any_area(any_loc(file(^xen/a=
rch/arm/include/asm/domain_build\\.h$))&&context(name(prepare_acpi)))"}
+-doc_end
+
+-doc_begin=3D"The 'BUG()' macro is intentionally used in 'gicv3_do_LPI'() =
and 'gicv3_its_setup_collection()' functions
+in specific build configuration (when the config CONFIG_HAS_ITS is not def=
ined) to catch and prevent any unintended
+execution of code that should only run when ITS is available."
+-config=3DMC3A2.R2.1,reports+=3D{deliberate, "any_area(any_loc(file(^xen/a=
rch/arm/include/asm/gic_v3_its\\.h$))&&context(name(gicv3_do_LPI||gicv3_its=
_setup_collection)))"}
+-doc_end
+
 -doc_begin=3D"Proving compliance with respect to Rule 2.2 is generally imp=
ossible:
 see https://arxiv.org/abs/2212.13933 for details. Moreover, peer review gi=
ves us
 confidence that no evidence of errors in the program's logic has been miss=
ed due
diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
index 2119066531..96eb202502 100644
--- a/docs/misra/deviations.rst
+++ b/docs/misra/deviations.rst
@@ -97,6 +97,19 @@ Deviations related to MISRA C:2012 Rules:
        Xen expects developers to ensure code remains safe and reliable in =
builds,
        even when debug-only assertions like `ASSERT_UNREACHABLE() are remo=
ved.
=20
+   * - R2.1
+     - The 'BUG()' macro is intentionally used in the 'prepare_acpi()' fun=
ction
+       in specific build configuration (when the config CONFIG_ACPI is not
+       defined) to trigger an error if ACPI-related features are used inco=
rrectly.
+     - Tagged as `deliberate` for ECLAIR.
+
+   * - R2.1
+     - The 'BUG()' macro is intentionally used in 'gicv3_do_LPI'() and
+       'gicv3_its_setup_collection()' functions in specific build configur=
ation
+       (when the config CONFIG_HAS_ITS is not defined) to catch and preven=
t any
+       unintended execution of code that should only run when ITS is avail=
able.
+     - Tagged as `deliberate` for ECLAIR.
+
    * - R2.2
      - Proving compliance with respect to Rule 2.2 is generally impossible=
:
        see `<https://arxiv.org/abs/2212.13933>`_ for details. Moreover, pe=
er
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Sun Aug 24 15:11:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 Aug 2025 15:11:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1092091.1448153 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqCMy-0002NV-NJ; Sun, 24 Aug 2025 15:10:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1092091.1448153; Sun, 24 Aug 2025 15:10:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqCMy-0002NO-Jh; Sun, 24 Aug 2025 15:10:56 +0000
Received: by outflank-mailman (input) for mailman id 1092091;
 Sun, 24 Aug 2025 15:10:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=epLo=3E=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1uqCMx-0002NI-Bt
 for xen-devel@lists.xenproject.org; Sun, 24 Aug 2025 15:10:55 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 84e76660-80fc-11f0-b898-0df219b8e170;
 Sun, 24 Aug 2025 17:10:50 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by PA4PR03MB7517.eurprd03.prod.outlook.com (2603:10a6:102:bc::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Sun, 24 Aug
 2025 15:10:47 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9052.019; Sun, 24 Aug 2025
 15:10: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>
X-Inumbo-ID: 84e76660-80fc-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=vZrAtPdFH7eaJLOq02+gRx7xkcaJEonLzyLMkO2lgHJHr3nng1v4wr4BIInLC+md0+v2Tn6UWG55DVbLMr6qcOzpV6TFJ+MyqHiWK3zpylXXbLG+9a5tNAR9HBL+FS8V830MoV1MpKKwlRqWe/WU3KVhZm22djq+UZr+eAlaUG3xxAMSamrkY2AuoHRsksU2PA/1rQiN61/K/jPV/5qI8ObDJZlhks2jYrgPA19KLXIPsvZ309dekfqzYJW3nQKq9CLeWxEVUWkqi75BP+Gblcw4kyrm3bwN94JxVRct4eCtyHQ4odGta8cDcJk53hGWeUjoWq/kMJyd0dtmZhib4g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LI0sw4VQoV6ivAmxst3keUXn201q9YNHqSmgOpeMvFM=;
 b=kRs8x04ktGA/59AYs26UP2hN5Rj06v0z+d8QdW0f9OQA6TTH+ljbFHET3w3Rw27Y2BhWxCWMMlNl6cofMFGe5KBCIMpzFRHSZRwYr4hOfBINzO0NvEUWS72gRXGN2vpaUfvxCPgZS867Lh8+W4OQxc/7cF3U8o+dheeokPAAWQGMTHswVawxYjrJspYFZ/B+cWhxU5hby1373MCAwr5Z4+AlXE8K1tlYZEI+uTPDHk9qEIQasuQTn0yf9bXspx5+eyY65X6YJvqXEqYdOEfhpWcbg3XyQWs2INDuetvhlWQ/rQio1daQj9CGRyA2N+a+CrITfwzBmCscbYISXrVU2Q==
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=LI0sw4VQoV6ivAmxst3keUXn201q9YNHqSmgOpeMvFM=;
 b=L5JkCZynQXRx4uQZfcD854PVANys++sFnR13D1V9H4UFXGEec2CMYnO+C1gl0ZBMwDv5baxXfJyZwrHZoC8qxPP4pLr5b3rt7ccooZw1vkoXYckFo30QmRXfp/IcWrVIqVjpQiIFKP+vJ2OeujcBUqtsa1Mhtw4ZCLXBlILjccaGxu1wWi8LmCmSrU/RrlA8v41Zil4SfvxkEQ4v6QIDDOixhH4Cu9dOkRE96OUCBEeO+B1+2BqeFwPxXs4mure1vHomqm4VfZJaDCvF8FvtiwSe6F4f6p2IwzxcGn64rlUbAYw1HBXjrGke+MxMpjlESqNBdrhG0WQy3fJ96xcLuA==
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>,
	=?utf-8?B?TWFyZWsgTWFyY3p5a293c2tpLUfDs3JlY2tp?=
	<marmarek@invisiblethingslab.com>, Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v4] common/efi: fix Rule 2.1 violation in read_file()
Thread-Topic: [PATCH v4] common/efi: fix Rule 2.1 violation in read_file()
Thread-Index: AQHcFQlF20ah2tP5uUOdXQ1Ea/l40w==
Date: Sun, 24 Aug 2025 15:10:47 +0000
Message-ID:
 <1e5a31fe588f58bd2b5c7835773fdf7899ff5511.1756047981.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: GV2PR03MB9572:EE_|PA4PR03MB7517:EE_
x-ms-office365-filtering-correlation-id: f2098cd1-aae3-426a-7540-08dde3206792
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|376014|366016|42112799006|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?MEJjcndBYzdiMldBMllaOUVLWk1CRHMyQ1ZXRUxpM282MDJFcUVKaVZOeUZP?=
 =?utf-8?B?dnlxbjFoVnVkR2U4Rzh0bmlDL0orMlBpUjh0V3E3SjF0bHdZT01JdThpdG1L?=
 =?utf-8?B?Z3JwQUliem9vTExTdG01ZFA1R2RXVGJ4dmprTkQvL1YyeEdpVitwbjdCWmxi?=
 =?utf-8?B?NXlUeUUza1VIcHJHRTNUNmM1dkV3b1k2OVRpSUlQZE90WjZJWEZxd3VVbHhV?=
 =?utf-8?B?eTRackRxejBtcnNQRW5sWHY2TWlVeWxjbU5DazUzdHpvb0NhaFZIdUJOMzVa?=
 =?utf-8?B?YTM3aWdSWE9ZUVpOWVNNMmhOTkxNak5mK2RhNFl5RjhZMlB4ZUFZT3ZGVnEr?=
 =?utf-8?B?ekNBWm9aK2FHaU1iTjVXYU9PRnU4TjFOZWgxR1Y4N3p0TkJ2anpMM3VwN2R5?=
 =?utf-8?B?YnZMZFl3U1ppcEtUTXlOT2k0M0JXQkNTQzdYM1VQaW1SMlZNcEFDVk9MVFRs?=
 =?utf-8?B?anVxNklTZXNIeHgzYVFqR3BZaWkzUm5oOFJDTGp4RDgyRlo0Vm0zR1NCeVpJ?=
 =?utf-8?B?cSs5UnIrSXlTODBNVzc3M2tycEw2REd5WGVUR2lLKzdRUlJlUEFsN1ZaVUtk?=
 =?utf-8?B?VlZISit4TmIzRStaejBGTGdHU3hWeWNiaEZHaEZrR0VscFl4dmI0bU1yQlY1?=
 =?utf-8?B?Y3JhZGovbVhIbExEQTBlbDBUQUVaTExIaWpVR2pUN1pTYVZTVGR3ZlkwZnBw?=
 =?utf-8?B?S0R4T3pUclMydFRPK3EybkNjb1hyR2FDczFnMi9PTVpzVXJ5MU1vcDh6bTZ5?=
 =?utf-8?B?dUVZdXRHVVhOVUFEQTI0Q3kwbEhDSENpWEJ2c2tGMzM0dkFrMW1md3RVRGdw?=
 =?utf-8?B?UWVnU0NnS1VxdGJzTTdibEZIcTlYeW43ZDF3eUVQSXNHYjdBVEIzenR5N2o1?=
 =?utf-8?B?bE80YWE0K2FicmxraGZVYUhOUERDOEZ3cDZxVDlyaTkxTFY2RDBDanN6RDR1?=
 =?utf-8?B?WXJjUnN6UWJpTlh5aGtiRlpZTkQ2NkN5cVhQWXIxajV0WllpaUYreW83Z2I3?=
 =?utf-8?B?eG5wMTc1SVNQZkc0d1gxMjNVaUw4VkhKYkhzeWhQTHRvQmRLUWt5MkZaZzFG?=
 =?utf-8?B?cEZTN2hxN1MrSXpmMGRITWJ5dndUZisvdlhIT2ptUUxrdW1mS3NicFhhTThz?=
 =?utf-8?B?K1JTK0E0dTBOdXgrNEptSG5vbG5RQnljd25TRFJwMGovd0hCam5wRDlxeUpm?=
 =?utf-8?B?Vjl5ejladGg4T3FZQjVnS0hvdHYvSVkrMFBrWkZkdFlpRHMrQkpjSFpwTDVn?=
 =?utf-8?B?WUlnY2FHSzBQQ2hqdEJLM2FZakl6MEIyRW15ajlVUXBZeW1GNVJQakFMZjV6?=
 =?utf-8?B?dE1pbFNxRm5rWDQ1SGlKMGtjbUlwc29LQm9ES2lKaFZpMGgwWTJ1SFA2aTJM?=
 =?utf-8?B?dE9NWk1lQmIyZGxRdnA4QzNudGhCZXdxN2J4OUJEUkF5ZUdidmlvMlVBNWY1?=
 =?utf-8?B?bTlDRENBTGNLcU12ZnEzUmNwMkdVT3ZNdnlWdGsrVkk0eDErQk13WkhmQUVJ?=
 =?utf-8?B?VWJyNkFKVjREcXFhVGlIdGVCSnp0TTVGSXgwUEx2SVZXTExrRjJvVmNLaVFZ?=
 =?utf-8?B?MThuUDBjWExjaW45MGVUR21FSGVrYTBQTDQ5dlMreE84M2huZnBsNjJIbHA4?=
 =?utf-8?B?T01Lc1hrQzQ3UldQa2RnU2hDQ25TWTBtS3VJK2REaTFwczd2TTFQTnpMei9E?=
 =?utf-8?B?Z0xRRnM2VjJQVTIrRWFxUlp4cjAzcnlTTmN6dmFnRkMzd3ZBMjVRWUxiY2Jl?=
 =?utf-8?B?Y2FmMkl1QkY4bXFHSE5SdUFvUUNjWEE2NTdRaU1ycGcyZ1VhU0tWM05oUG8w?=
 =?utf-8?B?UjdxNHZRSHFoMkFiRzVZcXpmb0Nyb01YWTJ3MkNESHVOTXhkWnU5S3VKZXVL?=
 =?utf-8?B?NklGa2RjRzVNa0J4WEU0OCt3amx3ZWlzS01NTEhsTXkra1VocCs3SWhMTlk4?=
 =?utf-8?Q?3p5hH1moaS4=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(42112799006)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?dVdUeWNUQnhISlkxRXBwZTNSM0Z3R0tOZDA2WFcveUd6MWUrdnpyV1p3a2dj?=
 =?utf-8?B?SWFHU25nckgvNllwcHVYYnZySkdETjJHNGZYeWYrWGppY3phaklmR05xQmhy?=
 =?utf-8?B?M1d2RWY3cHJVNUFYNEY5UkJKVDRZMmMwanBQSXcyZ1IyRFRVdWlSN29QbUo2?=
 =?utf-8?B?MDd5OG9WNEwxRmRFNG9nY1pROTdSdHh2dnd3M0wraEhSbXdRT1BXaVoyNDU3?=
 =?utf-8?B?dXBGNGloZUN5RGV6TWl2bmY2cUlMMm9zd2QwdzBnVkdIMHNKSEp3bkFTYzE2?=
 =?utf-8?B?cHpTejVtaFdPL0JwWFhKVmViRU5RMlJVeUpBdjhyZHBrdFJMZ0NsK25zUXNy?=
 =?utf-8?B?UWEvTHBLSitKbStCelUzSG4vL3NJVU9DTnhab2NRS0pyajJTTG5FOGpCb2lv?=
 =?utf-8?B?M21KNVljQk5xRCtZQUs5c1NQTmMvZ1M3ZEU2KytmeUdzd2gzeGQwZEZXR2NK?=
 =?utf-8?B?ZVJCd0p5bGVteU9KU2NJNHNld0VBUkdmV2I5MzJZNGpvM2NYekVEOENQalBu?=
 =?utf-8?B?VlU4TUJsTFFHa1JzU05FaUhLeTRsbGlaT2NXOERTTml5eUFuWHg2b0NOL25P?=
 =?utf-8?B?RFlkM0pteU1PMi9OODJ6Q3N1MmJoeDJsSjZMY1EvNlZzTWUrcTVQREwxZDFD?=
 =?utf-8?B?Zy9SelNNRWl3VGNEVncwckpjREpkL3NvR2ZsOFdlckpWa2w3cDk4K3d5eFFS?=
 =?utf-8?B?bW1vVlZCQzNtN1Y1R3FST3Uza3IzcjdtTDBGRnA0OHV6VWxNd1RGWmpHd2dr?=
 =?utf-8?B?bXdzMHljVk9PRjZ5L1Y1TkN3M21hWS9LTG9JazkvNHZwcmVQUHNoaG8ydHdk?=
 =?utf-8?B?dXhsTjFTc0pzY2ZEc2RHMkFFMVpudzdWL1VpWm9kOFpLTmRyYnhVRVJGM2Jw?=
 =?utf-8?B?dk9vZGQ5K3hMQnNKa1hYNVBXZVMzUktMdjlzVnQwQ0F5Y0VLNkdHcTdyd0JV?=
 =?utf-8?B?WU5zL3BUSW43dmhvQkRQRlJjYVZITVQwZmYxVzZBM1ZMeDk3UE1iV0Z1a3F3?=
 =?utf-8?B?YThJV0Fvelg0RG05VUZ1aXdiQW9xT1krZytBMmFLMU9maHZ6Sm1reVBrTUFv?=
 =?utf-8?B?VDRRTG1HM0hBeHFaUWVJYmgwVEFGK29ENGZVNVcxVzVaWDZ3VjVNY0RVRENW?=
 =?utf-8?B?KzFSVVN4aGZnTnRpUmtSNENOaWUxQ2dPMmErM1ZZQWVIT2s1a3Nsbm5IVGRo?=
 =?utf-8?B?c0xkbW4xdFRmQi9qY3Yxb1ZjZWx6aWNNMTlzKzl0OUI1QnJ5OG9SQ3lXVDZL?=
 =?utf-8?B?RFFDWnpVKy95ejFxZWl4WUtuSmE1Q3UwbFJzUlRUeHFoSzRkQU9Ga1NBN0tO?=
 =?utf-8?B?ZzF2YkVzNVcxK2VTdnRZWTFMc2tBK1lsYnNrY2ZHeGhONDJuaGdJSVE0Rmhk?=
 =?utf-8?B?S0dKKzd4emZLK3dlTk5lN0hJWUhETHBWN3VUdjh3eExYOGNLM1JjelQ3SitQ?=
 =?utf-8?B?TnBrT1Z5a3A3bFJHZ1dyODFDUHlHdnIxZ0xqUnJyTWtoc0p3U0hmcGg4S2pN?=
 =?utf-8?B?bStRUXhwYkV3akpmaFpPcXNVM0FKbVdOOVUvL0ZaTU82WkszdklxUTN3U0Zz?=
 =?utf-8?B?MDlxU0hEQ0l6cWQzTHAxeFV2WFNEVmVRQWhOQ2pHOWVoak9nY3dIZW1ldGlE?=
 =?utf-8?B?dEdSaU5uamkrNEx0ZVdPTXlEbWJpNFljdlRqcWprTUVZNzJVNWhJZkxwZDlz?=
 =?utf-8?B?RXVseEcwSXRkeE5TTDJ1c3IxL095VXBrQklsQnBhVXdkN2dMdjlqWmN4Y0s4?=
 =?utf-8?B?Q1lLYTRubXZsaS8wY0hpQlloR3NqcHYrVFo2d0ZRYXErRHRJT3BZdVV2MHZq?=
 =?utf-8?B?QllVZ3lNQ1liZ3pPbzNPTUJ0NXM0ZTEvZlNGd21pMDF2L2JjbHpYK2prUE5s?=
 =?utf-8?B?V3ZmRWh6UCs5Nk5SMFlZd0hUbVZueG9jNFdrbnR1aWdzM3BqaDhSTGJkOHp1?=
 =?utf-8?B?WTkvNTJ6c1dSU05YMlhIN3NQdlhrSC9zUmlIaUo5b1B4Qm9DMGtYbTdqaTJG?=
 =?utf-8?B?Q2lHR2NTWUlLUENUZVJBc1d3TGNhdW5MaVpVd2YrMTFSS002MUg5dWs1bnFZ?=
 =?utf-8?B?MHRJNVExY3FlYUN1VHlPVTdLWE5DMHF5bjlWRmNCRUErM2QxYU53MVlwd0lz?=
 =?utf-8?B?TmxaNXNSVTRKL3MvNzA5OUtsRzJ1NFJtb2x0K3dWN3hmdjM4RjdBY0h2VElw?=
 =?utf-8?B?dHc9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <1F7DBBDAAFA87348B21D2E1E3BFD3F9F@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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f2098cd1-aae3-426a-7540-08dde3206792
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Aug 2025 15:10:47.2273
 (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: fcDWBt5ILedOlSscnqaky1PxFScbBDkZDsclqFF5foAtgCl+KvHt6UAwpLAdBzPHoWWNq5v8HpJaEC6opwbro/tLhOLG3FZF2z14haESLXY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR03MB7517

TUlTUkEgQyBSdWxlIDIuMSBzdGF0ZXM6ICJBIHByb2plY3Qgc2hhbGwgbm90IGNvbnRhaW4gdW5y
ZWFjaGFibGUgY29kZS4iDQoNClRoZSByZXR1cm4gc3RhdGVtZW50cyBpbiB0aGUgJ3JlYWRfZmls
ZSgpJyBmdW5jdGlvbiBpcyB1bnJlYWNoYWJsZSBkdWUNCnRvIGZ1bmN0aW9uICdQcmludEVyck1l
c2coKScgd2hpY2ggaGFzICdub3JldHVybicgYXR0cmlidXRlOg0KICAgICAgICBQcmludEVyck1l
c2cobmFtZSwgcmV0KTsNCiAgICAgICAgLyogbm90IHJlYWNoZWQgKi8NCiAgICAgICAgcmV0dXJu
IGZhbHNlOw0KICAgIH0NCg0KTm8gZXhwbGljaXQgcmV0dXJuIHN0YXRlbWVudCBpcyBuZWVkZWQg
aGVyZSBiZWNhdXNlICdQcmludEVyck1lc2coKScgaXMNCm1hcmtlZCBhcyAnbm9yZXR1cm4nLCB3
aGljaCBndWFyYW50ZWVzIHRoYXQgaXQgbmV2ZXIgcmV0dXJucyBjb250cm9sIHRvDQp0aGUgY2Fs
bGVyLiBJZiB0aGUgJ25vcmV0dXJuJyBhdHRyaWJ1dGUgb2YgJ1ByaW50RXJyTWVzZygpJyBpcyBy
ZW1vdmVkDQppbiB0aGUgZnV0dXJlLCBjb21waWxlciB3aWxsIGVtaXQgYW4gZXJyb3IgYWJvdXQg
dGhlIG1pc3NpbmcgcmV0dXJuDQpzdGF0ZW1lbnQgKGJ1aWxkLXRpbWUgc2FmZWd1YXJkKS4NCk5v
IGZ1bmN0aW9uYWwgY2hhbmdlcy4NCg0KU2lnbmVkLW9mZi1ieTogRG15dHJvIFByb2tvcGNodWsg
PGRteXRyb19wcm9rb3BjaHVrMUBlcGFtLmNvbT4NClJldmlld2VkLWJ5OiBNYXJlayBNYXJjenlr
b3dza2ktR8OzcmVja2kgPG1hcm1hcmVrQGludmlzaWJsZXRoaW5nc2xhYi5jb20+DQotLS0NCkNo
YW5nZXMgaW4gdjQ6DQotIHZlcmJvc2UgY29kZSBjb21tZW50IHdhcyBtb3ZlZCBpbnRvIGNvbW1p
dCBtZXNzYWdlDQotIGtlcHQgdGhlIG9sZCBjb21tZW50IHRoYXQgd2FzIGFscmVhZHkgdGhlcmUg
aW4gcmVhZF9maWxlKCkNCi0gYWRkZWQgTWFyZWsncyB0YWcNCg0KTGluayB0byB2MzoNCmh0dHBz
Oi8vcGF0Y2hldy5vcmcvWGVuLzRhMWE0YTM0MDZkMjI3MzQ4YWZhMWFkMmNlOTBkYzUyNjRmZGI0
NGEuMTc1NTc4Mzc1MC5naXQuZG15dHJvLl81RnByb2tvcGNodWsxQGVwYW0uY29tLw0KLS0tDQog
eGVuL2NvbW1vbi9lZmkvYm9vdC5jIHwgMSAtDQogMSBmaWxlIGNoYW5nZWQsIDEgZGVsZXRpb24o
LSkNCg0KZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vZWZpL2Jvb3QuYyBiL3hlbi9jb21tb24vZWZp
L2Jvb3QuYw0KaW5kZXggNTBmZjFkMWJkMi4uYjdmZGIwMzFkMCAxMDA2NDQNCi0tLSBhL3hlbi9j
b21tb24vZWZpL2Jvb3QuYw0KKysrIGIveGVuL2NvbW1vbi9lZmkvYm9vdC5jDQpAQCAtODUzLDcg
Kzg1Myw2IEBAIHN0YXRpYyBib29sIF9faW5pdCByZWFkX2ZpbGUoRUZJX0ZJTEVfSEFORExFIGRp
cl9oYW5kbGUsIENIQVIxNiAqbmFtZSwNCiAgICAgUHJpbnRFcnJNZXNnKG5hbWUsIHJldCk7DQog
DQogICAgIC8qIG5vdCByZWFjaGVkICovDQotICAgIHJldHVybiBmYWxzZTsNCiB9DQogDQogc3Rh
dGljIGJvb2wgX19pbml0IHJlYWRfc2VjdGlvbihjb25zdCBFRklfTE9BREVEX0lNQUdFICppbWFn
ZSwNCi0tIA0KMi40My4wDQo=


From xen-devel-bounces@lists.xenproject.org Sun Aug 24 15:30:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 Aug 2025 15:30:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1092106.1448164 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqCfV-0004tg-Uh; Sun, 24 Aug 2025 15:30:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1092106.1448164; Sun, 24 Aug 2025 15:30: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 1uqCfV-0004tG-Qu; Sun, 24 Aug 2025 15:30:05 +0000
Received: by outflank-mailman (input) for mailman id 1092106;
 Sun, 24 Aug 2025 15:30:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SGsQ=3E=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1uqCfT-0004DC-Py
 for xen-devel@lists.xenproject.org; Sun, 24 Aug 2025 15:30:04 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 321f84fa-80ff-11f0-b898-0df219b8e170;
 Sun, 24 Aug 2025 17:29:59 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 66EC04EEBC47;
 Sun, 24 Aug 2025 17:29: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>
X-Inumbo-ID: 321f84fa-80ff-11f0-b898-0df219b8e170
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=1756049398;
	b=jIHdqR5OL8zAv2Fp6Etv+nWszJbm/9WFiYMLtc6plGN42Lbi1dO00+3UOQNeWzdEYEJO
	 MqZmWRuVnXoX6CLhn1tKqnfRgexrlsA90cQecBqquJmSekXYxOdrNyRgCIjRdGlENy7Nq
	 RCIsSTYpSpbq7gz0L+xESfir9nEEBvQolk5ED92h1AI5Xhjg3Qrx4QBwBJFJabzfAxJMD
	 Qf1YYt8oRMmmXQpP4Bbb9pyccRj7fFYB/JkSEKMzxz/JjLBrnF0MQowLe0mXu9hI2yuQA
	 Q6PwxXCYw7OwzTAiqcyX91+MFt3eT1S1ITSS49NPzcVtoQeVlS58Vw1WQlJV3F9gqM48r
	 PxboSKUAB/WGC74txyAhOCTADh3C61uQw11LyWYHy24xwHIf1v3GLtRGP8p1vuMRolKkf
	 S9ZIEpf+4ACJIXQ6rqxBTy9e/44TPU154ABtEy4TOq8WX0LUWWW+Ezyeu2k/6jctYHCs1
	 07g+NKuAeCg9VDhl1RVi97Ot+cSXq3wHt0ck8OXjmdDz8nxU+xTwCvBqssiQXy9u/u4qt
	 iJNZvUVGLwAxXWSsHbB26wFg+4bPxh9RvIV5ujZTmRxZjyzuZcw34JjhdAE+gxBZIr6ua
	 joEOmixlBJ4teQa1C+a2eP9fToOTEObfPdOf6d7QHTuBC2SUEqtAJFIPX7epU9g=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1756049398;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=MCUvX3B9Iwr6vQD5jsAgjLmG5aHcQyONWJ4sz99hIrw=;
	b=zVRFwvHjIbZY/f66wxCjW+RQtQOv0wCorKJ+Z9tcBwMqtgR1YdPg9ocpAQntTUG7+B2e
	 lxkZ1BUeyVrdRrbnEwsb6KzUwWPb4umoxgzws62qIRKuTkqcXgfFUDuRTP0EYoWdPW4h+
	 +mY4Dpo3bIrsVfV4YaUoRt5pi5LniJKCUmvseV8TVOrmF8CBMES7/nPdUO91AmjMQ9ZY3
	 S4EcIRjikpuC2TnFoMe3Fjm3vKvtv8+mNHo96Njmf4bH8fbvm9YVSy9ii1cc25lk94bWe
	 v9SKfSmZ5bGW6UF2AVaUhPtrkCcX6lUg27iDUcM1ZOaSwZQKwMkmCvqRbM8zY+QmAslg8
	 GLzpt9kJC10QQIYzTj0cF8nUkdaupOYBvg7boHaQqunzjaupmxLZjKJxCDOUrvoIpD34F
	 XPYfjayAZElJYm7NXUJ1TIGer4WD/5O0+hcEuU071CfRsf6DlUSXA1blQ4qw/iOixo5ml
	 Ea4PYD/TToYq323JnQbEQyMO9gwmDYQ+uGGRU3LJ+/9RsWTyGAxxOlEbKqzWj+ySw2Q9W
	 TqFo7vsLqqDt5HGcrkJm6S35ucUJjOw+hXlKojDqFBQ7eSurK/UXhamcX+9+2Zm1E9rJK
	 FbXiCq2hzgTLCvCD6eRggBrt8DebrI0XOdnMEx/niBTsQ79cwi0H4OI3JEknS28=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1756049398; bh=32dFdYTe6uUbBcPVrCiUiezIqb/pSSllr9qtHMAQ6xo=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=YdRDriJBMWCzeId5s+ro4j4yhjsnKPgsQBV7FPNo3lT578S5JI+N3IShTT7v3NHom
	 7YjnbRUGIP+BgOrt3rL1SiK6aS53k9rU/6BcMg3AExGSS9qotrQ8c4UkcMArmpY9xx
	 aXf/jtwH1EvNHMfoRkz5rwgoR/NBRwq/z5MlTbk8zyk1LuSaDed7yXD3Pce2othCy6
	 5bpTrPeQTqKhywGEoVtBwcu63qII8h0bZoXF8fYyNskFUHIoAjR4o/Ct2mwCpN6R+g
	 5qI6WYnrbz3XOGpPNwJ0pLrnY0V5oazVaVevxQA6afpmB8C9f/+I/2erng5/JyXoFe
	 +Ro/UjJN5mGBw==
MIME-Version: 1.0
Date: Sun, 24 Aug 2025 17:29:58 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: xen-devel@lists.xenproject.org, Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>, 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>
Subject: Re: [PATCH] misra: add deviation of Rule 2.1 for BUG() macro
In-Reply-To: <f7b4112aad84162c25f96a9d6db43a0c2ba85daa.1756046023.git.dmytro_prokopchuk1@epam.com>
References: <f7b4112aad84162c25f96a9d6db43a0c2ba85daa.1756046023.git.dmytro_prokopchuk1@epam.com>
Message-ID: <7d0b9e8e296ea07b966832b9a047baa7@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

On 2025-08-24 16:56, Dmytro Prokopchuk1 wrote:
> MISRA C Rule 2.1 states: "A project shall not contain unreachable 
> code".
> Functions that are non-returning and are not explicitly annotated with
> the 'noreturn' attribute are considered a violation of this rule.
> 
> In certain cases, some functions might be non-returning in specific 
> build
> configurations due to call to '__builtin_unreachable()' in the 
> expansion
> of the macro 'BUG()':
>  - functions 'gicv3_do_LPI()' and 'gicv3_its_setup_collection()' when 
> the
> config CONFIG_HAS_ITS is not defined, it is intentionally used to catch
> and prevent any unintended execution of code that should only run when
> ITS is available;
>  - function 'prepare_acpi()' when the config CONFIG_ACPI is not 
> defined,
> to trigger an error if ACPI-related features are used incorrectly.
> 
> To account for that in specific builds, update the ECLAIR configuration
> to deviate these violations. Update deviations.rst file accordingly.
> No functional changes.
> 
> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
> ---
> Test CI pipeline:
> https://gitlab.com/xen-project/people/dimaprkp4k/xen/-/pipelines/2000738682
> ---

https://gitlab.com/xen-project/people/dimaprkp4k/xen/-/jobs/11119212994

Build failure here

>  automation/eclair_analysis/ECLAIR/deviations.ecl | 11 +++++++++++
>  docs/misra/deviations.rst                        | 13 +++++++++++++
>  2 files changed, 24 insertions(+)
> 
> diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl 
> b/automation/eclair_analysis/ECLAIR/deviations.ecl
> index 7f3fd35a33..336aec58c2 100644
> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
> @@ -41,6 +41,17 @@ not executable, and therefore it is safe for them to 
> be unreachable."
>  
> -call_properties+={"name(__builtin_unreachable)&&stmt(begin(any_exp(macro(name(ASSERT_UNREACHABLE)))))", 
> {"noreturn(false)"}}
>  -doc_end
> 
> +-doc_begin="The 'BUG()' macro is intentionally used in the 
> 'prepare_acpi()' function in specific build configuration
> +(when the config CONFIG_ACPI is not defined) to trigger an error if 
> ACPI-related features are used incorrectly."
> +-config=MC3A2.R2.1,reports+={deliberate, 
> "any_area(any_loc(file(^xen/arch/arm/include/asm/domain_build\\.h$))&&context(name(prepare_acpi)))"}
> +-doc_end
> +
> +-doc_begin="The 'BUG()' macro is intentionally used in 
> 'gicv3_do_LPI'() and 'gicv3_its_setup_collection()' functions
> +in specific build configuration (when the config CONFIG_HAS_ITS is not 
> defined) to catch and prevent any unintended
> +execution of code that should only run when ITS is available."
> +-config=MC3A2.R2.1,reports+={deliberate, 
> "any_area(any_loc(file(^xen/arch/arm/include/asm/gic_v3_its\\.h$))&&context(name(gicv3_do_LPI||gicv3_its_setup_collection)))"}
> +-doc_end
> +
>  -doc_begin="Proving compliance with respect to Rule 2.2 is generally 
> impossible:
>  see https://arxiv.org/abs/2212.13933 for details. Moreover, peer 
> review gives us
>  confidence that no evidence of errors in the program's logic has been 
> missed due
> diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
> index 2119066531..96eb202502 100644
> --- a/docs/misra/deviations.rst
> +++ b/docs/misra/deviations.rst
> @@ -97,6 +97,19 @@ Deviations related to MISRA C:2012 Rules:
>         Xen expects developers to ensure code remains safe and reliable 
> in builds,
>         even when debug-only assertions like `ASSERT_UNREACHABLE() are 
> removed.
> 
> +   * - R2.1
> +     - The 'BUG()' macro is intentionally used in the 'prepare_acpi()' 
> function
> +       in specific build configuration (when the config CONFIG_ACPI is 
> not
> +       defined) to trigger an error if ACPI-related features are used 
> incorrectly.
> +     - Tagged as `deliberate` for ECLAIR.
> +
> +   * - R2.1
> +     - The 'BUG()' macro is intentionally used in 'gicv3_do_LPI'() and
> +       'gicv3_its_setup_collection()' functions in specific build 
> configuration
> +       (when the config CONFIG_HAS_ITS is not defined) to catch and 
> prevent any
> +       unintended execution of code that should only run when ITS is 
> available.
> +     - Tagged as `deliberate` for ECLAIR.
> +
>     * - R2.2
>       - Proving compliance with respect to Rule 2.2 is generally 
> impossible:
>         see `<https://arxiv.org/abs/2212.13933>`_ for details. 
> Moreover, peer

-- 
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 Sun Aug 24 17:21:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 Aug 2025 17:21:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1092154.1448173 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqEPC-0002z2-MN; Sun, 24 Aug 2025 17:21:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1092154.1448173; Sun, 24 Aug 2025 17:21: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 1uqEPC-0002yv-JN; Sun, 24 Aug 2025 17:21:22 +0000
Received: by outflank-mailman (input) for mailman id 1092154;
 Sun, 24 Aug 2025 17:21:21 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=He09=3E=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1uqEPA-0002yW-MD
 for xen-devel@lists.xenproject.org; Sun, 24 Aug 2025 17:21:20 +0000
Received: from mail-lj1-x233.google.com (mail-lj1-x233.google.com
 [2a00:1450:4864:20::233])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id baef83ae-810e-11f0-a32c-13f23c93f187;
 Sun, 24 Aug 2025 19:21:11 +0200 (CEST)
Received: by mail-lj1-x233.google.com with SMTP id
 38308e7fff4ca-333f92d60ddso25805861fa.3
 for <xen-devel@lists.xenproject.org>; Sun, 24 Aug 2025 10:21:11 -0700 (PDT)
Received: from [192.168.0.110] ([91.123.151.69])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-3365e609f72sm11356591fa.71.2025.08.24.10.21.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 24 Aug 2025 10:21:09 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: baef83ae-810e-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756056071; x=1756660871; 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=tstixrJ1U30zPuZdAIq5lv7yMqCb01iOnxoT5R4mL8A=;
        b=RyoIe/YsZPHCYo3MxvkI0El01v1GdqSvGjOaX72+BL+eZRdz6mVXjkzxlWMKdMWof3
         STEl/vZo2iqcWgmAAUkbfREyh3CF82fEzGanXp5jibJT8DYrPhNUQhzqvnFIDLDiTCBc
         RpnHf6esmkQy9EBPr/PJ79UKOE6nOQDULa3l+SBMRIAFEplH9bpIdRfr8/opLXqowEBd
         YFY3BfHA7UDONomtK1mRHtYDhnLFokqV7Qgx+eYRiNtNhUh5RzuWKNLHhbL+wFLnqD7o
         dYqFRYnk/hk96GWRmtRMR1DN5SC1C6Jz9HrJSUMU6Y8XmbnuZp1BB4DS7LII75EfjNx1
         ckmw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756056071; x=1756660871;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=tstixrJ1U30zPuZdAIq5lv7yMqCb01iOnxoT5R4mL8A=;
        b=iEOaTTYJVUk7i5/7I5SdorSGxjYpnXhb6w8wVRq3997z+/na5CXqE4LxImfSbKBWj6
         qZ5FJrqf13HFGSdZPWy+89PPzv9F/MZNVMazlHtyQFsHpSahd3vuC4ROOKeeDR42Zxhr
         fb+/Cl05fAXTrlxGUxw0+WrAPYwIZxPlo7K9R5qKo5Lu/ixXPuNr5OfhvZCao4wi0YHq
         nqXuiaUtNBn312zY5u/xLKqAcltFHq1DZ5ldmtigKV2FHrLJNOfj0caQ5cybeunOO/C6
         XKPJQhDsQAGvEjmwnXa4SIbz2yO4+QvpyhcCscGCBgJSXx751IDNLh3+S1gdx3x5Yb0k
         FFdw==
X-Forwarded-Encrypted: i=1; AJvYcCWMBjeA04b/INUHynXZE2Mblnr7H9J5R66Djy9faP/+lAqOqs82YY9b8dAog1HPRP3AIXuNXse2024=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy+Qk6zicPi2zRYq8xZ/vkO4nFPhWzH2CB+XRRKKsGTtvjxplqf
	ioweFdEFz3OSR+1KYfN0yekdzWxlmu6m7nwyMhnZ8pnzu9O8/FmW6dS5
X-Gm-Gg: ASbGncviVkngy7pqTyo5rxzOJtiDn20IIuh/xHF3OSmM8aeBvOEwOEw+OS8rj7+s1/z
	zSo379kK4bR1EXC+v3hN48PgY5rBNKOmTnUc3wqvQLyHniO9UjNR8BsMbKyZxEXOoeUxN3+Nq9Y
	t4j7xZn3GU//zFk9XHI5gbENOXijr1qe4Xl67NsZs6JCz+o3StKwMH7frg+QCLMNPEI+y6tAIMH
	W3BFstbZ+O37UDuF0R2E5LOEfOuA2BkAWw+QYw/EIlA7trbJ5vr6eVsRDcogMgeBW6WhJ7b6kvS
	wKP7VX7dsU8y0MtYQ1a9DuyDtVHFDnk+x5nT+Ve1QCj2ag72ygpNXi7bntT8ZIx9d+pQ8FoSRh2
	lm7u14eDaJ2OotBUgq/a20mhaTA==
X-Google-Smtp-Source: AGHT+IHjrQoV7r1oWl7d4bTxtZOzqQ48jEm3crXIcz+Yc7tJKBgczRhlPVRg+AigCw/wTzfMeoBanQ==
X-Received: by 2002:a05:651c:1107:10b0:336:7747:723 with SMTP id 38308e7fff4ca-33677470a6dmr1499131fa.12.1756056070498;
        Sun, 24 Aug 2025 10:21:10 -0700 (PDT)
Message-ID: <9009233a-69b6-4b6d-b8c5-02550035aac3@gmail.com>
Date: Sun, 24 Aug 2025 20:21:08 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 00/10] Introduce eSPI support
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 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.1754514206.git.leonid_komarianskyi@epam.com>
Content-Language: en-US
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
In-Reply-To: <cover.1754514206.git.leonid_komarianskyi@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 07.08.25 15:33, Leonid Komarianskyi wrote:
> Hello everyone!

Hello Leonid,

> 
> ### Background
> Unlike the Linux kernel, which has supported extended shared peripheral
> interrupts (eSPIs) since 2019 [1], Xen currently lacks support for this
> interrupt range. For SoCs with GICv3.1+, this feature may be essential
> because critical devices, such as consoles required for booting Xen
> itself, may rely on eSPIs. Additionally, these platforms require eSPI
> support for fully functional domains, as any device using eSPIs cannot
> currently be used with Xen setups. Without eSPI support, Xen cannot run
> properly on these platforms, significantly limiting its usability on
> modern ARM hardware.
> 
> This patch series adds support for the extended shared peripheral
> interrupt (eSPI) range (INTIDs 4096-5119 [2](ranges of INTIDs)) for Xen
> and guest domains. The implementation uses a generic approach to handle
> eSPIs, similar to regular SPIs, while maintaining compatibility with the
> existing SPI range. Functionality remains unchanged for setups that do
> not require eSPIs.


I have lightly re-checked the simple Arm64 Xen environment (dom0less 
DomU under QEMU) with your series applied. To be clear, I did not really 
test the eSPI support (the underlying GICv3 HW does support it); I just 
wanted to ensure that your series would not break anything. So, in both 
cases (CONFIG_GICV3_ESPI=y and CONFIG_GICV3_ESPI=n), I did not notice 
any issues (at least obvious) related to GICv3 emulation and SPI 
injection for the passed-through device.

Also, I think you want to describe the eSPI feature in the CHANGELOG.md.


[snip]


From xen-devel-bounces@lists.xenproject.org Sun Aug 24 17:27:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 Aug 2025 17:27:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1092163.1448182 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqEVS-0003a9-Bg; Sun, 24 Aug 2025 17:27:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1092163.1448182; Sun, 24 Aug 2025 17:27: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 1uqEVS-0003a2-8k; Sun, 24 Aug 2025 17:27:50 +0000
Received: by outflank-mailman (input) for mailman id 1092163;
 Sun, 24 Aug 2025 17:27:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=epLo=3E=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1uqEVQ-0003Zw-UV
 for xen-devel@lists.xenproject.org; Sun, 24 Aug 2025 17:27:49 +0000
Received: from GVXPR05CU001.outbound.protection.outlook.com
 (mail-swedencentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c202::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a4b04cb3-810f-11f0-b898-0df219b8e170;
 Sun, 24 Aug 2025 19:27:43 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by DU4PR03MB11037.eurprd03.prod.outlook.com (2603:10a6:10:5f3::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Sun, 24 Aug
 2025 17:27:41 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9052.019; Sun, 24 Aug 2025
 17:27: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>
X-Inumbo-ID: a4b04cb3-810f-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Zlsk3+prIwpYlpH4Zk6nh3np/0qCPAdeb+DtgmS7+ITL/TFX2fbpxvMS2BXrQoywdZXytOn7bdobXdaHnEZmxZPoZSAxnpKahBHslsyvtZ3JyZl3lGNmIfYOKRD3f6H0WHeISKyQAfe3fO2T7PwBuqKUPh9hU525uGghniwf58oSl3RzaB1aEYEiVeJTZGXrBVDv3D/TkzqIalYuQ51Mh2SHU2PUBfBhFmYkH0QMKbnElvEWhRPoKcXFHJ2zF3DJs8SqWZ38mpqRd/b32tQCEutiEcWSrjV2j/M7wHVN2BMaBaDvpIwvGwgdOaHADUDBBwvAcTeCe2ZJJ/+EV8fAOA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Ta1fZvw0Prwed4zFLSHqjbQtXhX+eSxrwrowmHnYric=;
 b=U5J8wOslolQdgtYSdiR752fl9ZsimZImRr4AYPsK97eUMVhTrlKVdopG3gKYFbvmlESYbAPez7RHBPAZgdrux3ighPTKZu9RCCEBcuBu4AadnaVXQwX6vs5MXt7PSFiuO4dTut0zop8B/q5xNGqmLfQm0IK9NLJyB1jZzWokamCGhP06nA2bJR0LFB2JQaNDZptKsByYQzGfGAXUHIqLgOZdR28q5jCHAyKzux0l/f3XpOhWDLL4H5ck2k56+E4NPiXPMprl3SGFrFasa4PxOSCKUEz37qaxDpu2Oof37pzttqEMdgzQQoGc0Eh/vB9cj/fsSQuXHkoc+G/ltWZ24w==
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=Ta1fZvw0Prwed4zFLSHqjbQtXhX+eSxrwrowmHnYric=;
 b=lY1DPmPW1gX6ZX+jK6PNkeD7GPoSAK/laG522kAz2QT93/7jfC1bJndhCowmO2U+PWGcmi0gWwP2Wr45WO2/QkYqWOH23eXw3IdQyrfZDEzuGUhgBfJ5SakKuUj1Zo/qMJsXtEPt/RLcqCifxm39BrL6WbFwxVnTV0Hia2hRVMi3fU5pFu2gvTqJjSCoJDWROsDrxta8fCglYpRz2hU4oMiD8VuFkddqf0Otm/NzMlN4D4Embrc8kWOwpjsArB+bt68AXgTIrdkuy4vFCvEj6lMOmY/jtYBq9DKj9aGd1cWZibpHSadPjK/1Ni0xfF9nWdCjEGPRa4N/s8lW/iYYnQ==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, Nicola Vetrini
	<nicola.vetrini@bugseng.com>, Doug Goldstein <cardoe@cardoe.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>
Subject: [PATCH v2] misra: add deviation for MISRA C Rule 11.3
Thread-Topic: [PATCH v2] misra: add deviation for MISRA C Rule 11.3
Thread-Index: AQHcFRxkNZTwf+a94EKUOod0hf+3zw==
Date: Sun, 24 Aug 2025 17:27:40 +0000
Message-ID:
 <859503540c6b7447f13365c2b70b386c2975edd0.1756056144.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: GV2PR03MB9572:EE_|DU4PR03MB11037:EE_
x-ms-office365-filtering-correlation-id: d15c57d6-4c1e-4cde-04d0-08dde3338754
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|7416014|376014|366016|42112799006|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?oo684HmTG4gQ4j8KkNZgEMzDaCO45aH3A9L4/U/MzyCxYgDMg4InoEJxlL?=
 =?iso-8859-1?Q?ezs90am0b7M+jz2ayyHDlvU1P8CmxH0hKY4NLieXCx3x9ZRoEkuSItH0DQ?=
 =?iso-8859-1?Q?9srMpaMjLr8gv/GlJp7ykDDJAKMtU6rtNA6P6La/1wsRkUhBPCvtv2HVbh?=
 =?iso-8859-1?Q?2zggiBFUtkVKbrndfkiLKqjda/JjwOjdRCgmjUABi+mlO3HSVRmATxNEzK?=
 =?iso-8859-1?Q?HDNB/LH4S5ai3SQPpL7SLeL+DVoMemRAB1IhU7mQOWnU28wYlWGG45vq9U?=
 =?iso-8859-1?Q?VknPS4yYoHKkwkNmd6ducK95UzV0B1shm/HoJbsRlI8dKg/NWhMIuDIJS4?=
 =?iso-8859-1?Q?XfIzVAJ5yQbLT7cuGWyAsEbeJ4FsC1kPvHX+mty80ftNC7dhDEk1TXoCSJ?=
 =?iso-8859-1?Q?xCcjsURM0d8j47Bzwd8HVwYrKQ4zl/CyZuUX6cZ6oJjGFnvLm1bA8RaZdO?=
 =?iso-8859-1?Q?lVmRN2g9nb7gEknZ+WNkzgQAAvKGzpm0ZgwRU4ZMNy0LIyVrto5xFjZLAZ?=
 =?iso-8859-1?Q?GMcvLLOxb6FZDLJh3bX/9p9LGoSpousvOo/zUwOQbbRBJ5c1Ja0wTQYkBT?=
 =?iso-8859-1?Q?IwwFL/EOnYWiN5CuQCW12eRMTlHT2vno+i4CljWe/hMnbWvbas3XXVHPWE?=
 =?iso-8859-1?Q?diwBeOdgdgEUXqC8n7BhRgSxxTzYwHQ/iZsTZLhb1BiNRF1bpdFvj0Xcad?=
 =?iso-8859-1?Q?5qEzJEd9hHyJTkjbRhOLWIk0++PYYGoJgLa+ZCgOC3QoGcMF93zCn1E/gJ?=
 =?iso-8859-1?Q?sAhgqkSqg1lqA6GkoGq6mETi8X/N1DEL/pvl+6zUebbuWG5C3MljyN+5/n?=
 =?iso-8859-1?Q?4ugb9ijDdNbbvUmOzaHeKQeBlTSerbZ9g94FliE4sKm/B4EoSZUuNoTt7a?=
 =?iso-8859-1?Q?pTFUlxbFbylRg7ds+6P/QN+LLhUVr07cJZYPOUMJ8oydfshmMOlj34wcUk?=
 =?iso-8859-1?Q?UX3KxlqYhuFRly75X1i9CUXl8F+OvieOmZLihXdQPrLuc6WcAYLokL6Ykt?=
 =?iso-8859-1?Q?QOiY4esTs3rtBFcNMs6zWprx3dwP9eITk25i1qoosplRo/8mLU5JpJHtY6?=
 =?iso-8859-1?Q?/q5kFYNY889RZIC8+veDY3kuETXvEB2d7XmUycB125Q5mpcWtbaO3w6Lc4?=
 =?iso-8859-1?Q?mrwzNroToYn1RaQJjyKRW2nYRbRcyDJ98bBprS2YIpqXTv9f0xMs3SyGhe?=
 =?iso-8859-1?Q?SWQ7qhqmSclGK1QQRE2kSrSkVPG6ucch1HGDOamNOpLbPZa1oa4esWE5Vy?=
 =?iso-8859-1?Q?GydOrxIWmGZiH+6RI0tWXqtZUTPIXUgyoDnsWUFgisZ+YUeAS98e1agXTM?=
 =?iso-8859-1?Q?9ZYQEGcy+odBIqLNL1xaRkLONg2L/aKGpt4AMI7zWZt5PeR8dEFkSv3hjF?=
 =?iso-8859-1?Q?msJ3yRm44u8g7LU8PbMT/c7ulqZDeEW9W8LyfUBGU8sMfjNirG2kIvAQAy?=
 =?iso-8859-1?Q?aGST/zdFy9e49VP4ds57fKKfBy9vr8y0O67m1rnmlkZdYQpgbiRkrHbEht?=
 =?iso-8859-1?Q?E=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(42112799006)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?6wWDDEEsrvBeeKL0IXUkjVkHIC6vy4IpJOH+uf9J8tQQLfSjKaukBoEgPl?=
 =?iso-8859-1?Q?zleux4YLYUWbT2HaSsga1KTfpPTCHCcyamC/NJc9+PxcAhATqdjaHV7JpM?=
 =?iso-8859-1?Q?r3LuO6y5DR2UwPA918DFGC1aecXueSdFWAQOXTAfiwqMh72qrqaFbZqR7p?=
 =?iso-8859-1?Q?p2SvqU1PlpRM42KUJRkyVBDZmqjJx/wq8C98DT3k4o4pbjtu+x18IRBV4l?=
 =?iso-8859-1?Q?3pr/6HZ7Tv/eunrHTdyx4ZhwNps49evOO69jTuZDHlsm5TGBy8DgMFD4Tz?=
 =?iso-8859-1?Q?MUHQAp3uKUhD4zg1JACvLlrqiIF0J6z9AhOtu1MYTsIHEQMmHx5kSHAnIo?=
 =?iso-8859-1?Q?c3ACiZVoDoUHZzDqotLj1CyWLkHRq1L84WmjOoYK9F7e9u89vkdCHjklBN?=
 =?iso-8859-1?Q?1JXbemgDP4ZE/oNBxBJoAVFdgkdiigvWRAcGA/N6Moir26b9a3hTEkBx90?=
 =?iso-8859-1?Q?moC2sqkAkMFAcecf6zrTHvpszuVVRzl0wIxKIn8dwIRQaJZfXxoZ/yGhcG?=
 =?iso-8859-1?Q?y+dFKkHCH31TP6sRWM3dS/jwwIWtqQr3ZjXvhcxMilrxYWXn9iOn77zNUG?=
 =?iso-8859-1?Q?F3ObsgXsXQ/Z6MSHHxRkjhe5j5D5nkzJxbxIhAiGkDYbDHAR982KFljN1A?=
 =?iso-8859-1?Q?YonjJUPwFZStPJqF31W75/mFW5/5YW4AJWQ+5oLlKNmXrBwd/umcWIO40Z?=
 =?iso-8859-1?Q?4jVfo7Mtr3wRI0F5iEMkUZGq8RzFCa+zlsvACfCPAYyEUT0XXQriYGH6MH?=
 =?iso-8859-1?Q?n7BHLQRc0+CFsMQl2xtb8+TnTwkIvAt02Ode1ARsI00GKXFOxsPIB1y8mV?=
 =?iso-8859-1?Q?zTGfYSh6Ixby82TYcPscZRttBf+g5/bu8ROq/TkWw4Bj37TwN9AVcDqlOp?=
 =?iso-8859-1?Q?baBoUFIST1T3XEPtMDlRRaI2tgA53ahN5vRs9+W2O4Cc+LL/IWrFSBl/dV?=
 =?iso-8859-1?Q?gV684RFH8X2GVKazd11wRXteR5lHNSb5ULq9RORHZVueiE0F+vRHWh5mRX?=
 =?iso-8859-1?Q?WIWb9Es5RxZa2UYs2wytHX6zWeKf1yeEbpMDp1otORPC4NaOkdT7S2ezVc?=
 =?iso-8859-1?Q?5P0FIIzn9OWuQAgDKahN0O4f7VvX359SfsfaUyVGWbPpmJwUL4YmE0CcNj?=
 =?iso-8859-1?Q?k9KZG2YUOaFQC8bGYpmM0tLlLFYpdkSP9VveFg1yM/2V1iMEehkjdUwoAF?=
 =?iso-8859-1?Q?FYDZFM9RNynMd31gaVK/OnnkIE/B/9ctU098Yc8zRgsznfzooIp1PKDa0M?=
 =?iso-8859-1?Q?fRmrVQX6oYChD8Sw0BiLKIwo3vWIi1r6Ny9W2x2TtC6LWcU/hpJvMKmt5w?=
 =?iso-8859-1?Q?4Tsu6d5y0Mv3SRn/IbIol9Dhov/nJsdCDYFAhqSGODaNrumG4SI+XNDiwh?=
 =?iso-8859-1?Q?zGoA7MkIFypirSQsUCphuUfhII1yNtz+dgfLWf5e/LmsuzeQm8mfC3ra5Q?=
 =?iso-8859-1?Q?YUESi+nCa98KYYC9T1Ri7rQBwWuvsTViPIeyHZh08I5CG7OcfLQST5WBHx?=
 =?iso-8859-1?Q?ysXqHSD+6rYhSiKQybWpXR6rYU9Ik+ZRVh+2jC1645jAmQwYCNvZ6lM6Qx?=
 =?iso-8859-1?Q?My0e5rkCt6TU/rkFRJ1wCTjbz2YDwyv9t3PCUhXpo7sEtSsJegWVLBjke6?=
 =?iso-8859-1?Q?87XvWhcAAh+Pw63yoG5hGbIEliKqEmN1Kgrm2/IIULB89aAjoCm13Kfw?=
 =?iso-8859-1?Q?=3D=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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d15c57d6-4c1e-4cde-04d0-08dde3338754
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Aug 2025 17:27:40.9351
 (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: DKu5DczvDm6VqZy+u6EWCKYrqsFqAbDnHhRcy8VyoOCzXC7S5bf8G9kfOwnjsfEQMbs+xdUnL9ns8517OgcQbwLkOuK5br/aqDcDEUTOhJc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR03MB11037

MISRA C Rule 11.3 states: "A cast shall not be performed between a pointer
to object type and a pointer to a different object type."

Violations of this rule arise due to the 'container_of()' macro, which cast=
s
a member of a structure to its containing structure:
    container_of(ptr, type, member) ({                             \
           typeof_field(type, member) *__mptr =3D (ptr);             \
           (type *)( (char *)__mptr - offsetof(type,member) );})

The 'container_of()' macro is safe because it relies on the standardized an=
d
well-defined 'offsetof()' macro to calculate the memory address of the
containing structure, while assuming proper alignment and ensuring no
undefined behavior, provided that the input pointer is valid and points to
the specified member.

Configure Eclair to suppress violation reports related to 'container_of()'
macro. Update 'deviations.rst' file accordingly.
No functional changes.

Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
Changes in v2:
- removed '-enable=3DMC3A2.R11.3' from the monitored.ecl file
- fixed typo: "Convesions" -> "Conversions"
- added parentheses for macros container_of() and offsetof()

Link to v1:
https://patchew.org/Xen/d6a8682c98880d66ea99f882520b3defda0e3fe0.1755672275=
.git.dmytro._5Fprokopchuk1@epam.com/
---
 automation/eclair_analysis/ECLAIR/deviations.ecl | 8 ++++++++
 docs/misra/deviations.rst                        | 8 ++++++++
 2 files changed, 16 insertions(+)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/=
eclair_analysis/ECLAIR/deviations.ecl
index 7f3fd35a33..42b84429f0 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -403,6 +403,14 @@ because the semantics of the 'noreturn' attribute do n=
ot alter the calling conve
 }
 -doc_end
=20
+-doc_begin=3D"Conversions in the 'container_of()' macro are safe because i=
t relies on
+the standardized and well-defined 'offsetof()' macro to calculate the memo=
ry address
+of the containing structure, while assuming proper alignment and ensuring =
no
+undefined behavior, provided that the input pointer is valid and points to=
 the
+specified member."
+-config=3DMC3A2.R11.3,reports+=3D{safe,"any_area(any_loc(any_exp(macro(^co=
ntainer_of$))))"}
+-doc_end
+
 -doc_begin=3D"Conversions from and to integral types are safe, in the assu=
mption that the target type has enough bits to store the value.
 See also Section \"4.7 Arrays and Pointers\" of \"GCC_MANUAL\""
 -config=3DMC3A2.R11.6,casts+=3D{safe,
diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
index 2119066531..db9e09c3cb 100644
--- a/docs/misra/deviations.rst
+++ b/docs/misra/deviations.rst
@@ -393,6 +393,14 @@ Deviations related to MISRA C:2012 Rules:
        (i.e., less strict) alignment requirement are safe.
      - Tagged as `safe` for ECLAIR.
=20
+   * - R11.3
+     - Conversions in the 'container_of()' macro are safe because it relie=
s on
+       the standardized and well-defined 'offsetof()' macro to calculate t=
he
+       memory address of the containing structure, while assuming proper
+       alignment and ensuring no undefined behavior, provided that the inp=
ut
+       pointer is valid and points to the specified member.
+     - Tagged as `safe` for ECLAIR.
+
    * - R11.6
      - Conversions from and to integral types are safe, in the assumption =
that
        the target type has enough bits to store the value.
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Sun Aug 24 17:53:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 Aug 2025 17:53:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1092175.1448193 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqEuG-0007aM-8a; Sun, 24 Aug 2025 17:53:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1092175.1448193; Sun, 24 Aug 2025 17:53:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqEuG-0007aF-5B; Sun, 24 Aug 2025 17:53:28 +0000
Received: by outflank-mailman (input) for mailman id 1092175;
 Sun, 24 Aug 2025 17:53:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=epLo=3E=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1uqEuE-0007a9-DX
 for xen-devel@lists.xenproject.org; Sun, 24 Aug 2025 17:53:26 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c201::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3a9d8a5d-8113-11f0-a32c-13f23c93f187;
 Sun, 24 Aug 2025 19:53:23 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by DBBPR03MB7132.eurprd03.prod.outlook.com (2603:10a6:10:20f::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Sun, 24 Aug
 2025 17:53:20 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9052.019; Sun, 24 Aug 2025
 17:53: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>
X-Inumbo-ID: 3a9d8a5d-8113-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Fag1xTe0juXWjODeB8SbTUDqmsb5cTPq/J1sp/4mBsNMQL9OdkgBCPZFW1FwxcV6UrMFMBdPBeW2507YXxmWWnvRpuPRq4rznyNLQ7lyn90AH8Cqc+tHvtxNxuAEyiNeRzPlU0+ntL2czJCU4ItpFD6pqFc1OESgeuovNuACMaerUX6gRWYjdr6KHXq+ehybWrrBQXLjHzgk87DRRnR/VDeUmu621T61nZFAxL+pWxi11FdOZkIUrwxjc6pow+HzQvUAEIYfQAqC71/iMC7uMCILA3uf0mI4P6CQcxjDWRzqe/vrXX1p93wo0WL6O0e9f0zmvrYGqqRIO/eYeZY5xA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LGFWGOFhoclq3cZCxDPviK6AXxSaMGJkGxTF99FsKGo=;
 b=WOvTI1zxYbiEhdZ9QybysApqiwgUs/XeddsM4PfLNNd+gjNG+M9boyevLdTzePGeTITlgC+qMqqyhrcmUlb+I1FcJzhXAVsqAZa6WxG0mMFjQV/3BaKBjbTsqc5/TuRW/Ab9b5iv3uW7Xl7ucIN4GJa9Ds71pCFwTQGdzKpMSVhOUWnvnXmHy1VWQp7U2JeY/Tn+Ng/IJ70tsnfQIo4H2IcFBbGungJYeT75TShr2Qqo1QY/81YKPb4T7wbVjKn/Qae1FZED7cOdTrqAN3xcZPtKonkPyOtYjePcDjwC9VErT6HSamhj2aNbuDJOrDbVnQMvbSGYLuz/2MDNUzwYUQ==
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=LGFWGOFhoclq3cZCxDPviK6AXxSaMGJkGxTF99FsKGo=;
 b=Wgk98XYWXL4hKPxM83Atme5QlBgOAQmssfhKGZGmrqqrxv+KnbmTa7N4s4ZYkBKxLPL/iCkfRbI9ACYjNDnHVX+nxbhs4SNIaVfD/z/5EZJI4MoUsq8gD6MrUBsLsrg+ZoIzw/4rlRUakc8nlIbdisIvNMC/weQ0ANCRkqclxYgZ6bnpF1DyeJaoYvsTuu+0IfSKzJRXBRHZhg+2tLHmU7dVEOOKvckM2QoGBj6c6IhJTw0fZJlivolVHlvOoiKUubXuEEXDNj89wWzPS/NOr2FtOddKlbgRNt7Qh55w+mVAE45ZfVSWxISbFJ1CB4jm5E/Qws8NKxE8g2ZpE7aScA==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, Nicola
 Vetrini <nicola.vetrini@bugseng.com>
Subject: [PATCH v3] docs/misra: fix sphinx-build issues
Thread-Topic: [PATCH v3] docs/misra: fix sphinx-build issues
Thread-Index: AQHcFR/6qKs/+WblEk+6G3rdASWMgg==
Date: Sun, 24 Aug 2025 17:53:20 +0000
Message-ID:
 <7d72a561ddd0a7410cc0c73a7182b4a3e56a61ef.1756057748.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: GV2PR03MB9572:EE_|DBBPR03MB7132:EE_
x-ms-office365-filtering-correlation-id: 5261e6d9-d41c-4e47-2f2a-08dde3371cf4
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|366016|1800799024|42112799006|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?8lZCLCRGGVmZMFCldfHpWQ8qoGB8fRlqFGR+XRwdI3O1tNzqPpNjPoxhme?=
 =?iso-8859-1?Q?7lEHqTTOm0ZbxY9BRUrNcobiOE7rWBi6IbWWDY2VR3ZKf9HFsz3J3pQqM3?=
 =?iso-8859-1?Q?cjNooZ4JEGWh3bD1U0BYq1mcNRDWRvDIQbueYRF6h9aTKIdLFqcQBGyV/B?=
 =?iso-8859-1?Q?gLPWI5trScANVwgc8DW2aj8Ee38kaVLO04i5q2fFbusuf9R1jpHsTC6WSJ?=
 =?iso-8859-1?Q?SeSN7GBRmxG2cH7sijjpwLNEikt3WTOCgxysZCjKcMUSzrJVey/6gdjfXi?=
 =?iso-8859-1?Q?cPmUkKXXBp05ZLL7RmQmOozp9QVya3BgiQi/VbXBJeq9W4hWf35DdE5VAd?=
 =?iso-8859-1?Q?Y+S+Wy0l4wZmiIZ0xlmxmKiWa4KnBgHFC238O0d0RbqCOk50Q3g31oX4b2?=
 =?iso-8859-1?Q?qDDvob8nBsxeAQLUC5+T1r8XpYPxDA4gLV8vyDKJJlD8BUQR0r6QKz/qLc?=
 =?iso-8859-1?Q?7Ff36UTP/DHsDU+Z+ILelM8Nt4cSVV9rbJ/m8xqLu2uPTnICqjayBInqt6?=
 =?iso-8859-1?Q?0/rG1pF/01KtebEC8xnr2nUidoq/dX0f1tjfZCmAbWNrPXW6oldaKFwlDc?=
 =?iso-8859-1?Q?iCu3tRlSF+Ml6qv2fk6QK58V0eQ05YBRygQZ0NNBiyToN7CzZ6GEOuusx9?=
 =?iso-8859-1?Q?dJVDMoRb4St9a2M/N6WS6DVK6smLt5F4GJ07uPgbnEhbLUVcBbDXbyV3yF?=
 =?iso-8859-1?Q?17/BqWEvIW0HoRNuPCFgMH7zp3476JT86t9oj71gWmsEZUCqqaZpcqIKmr?=
 =?iso-8859-1?Q?byDZJWKyeks7ztqbOJARh9dYheER0q+O2Jla/7qLsSkLW1+tj8riALrIGW?=
 =?iso-8859-1?Q?XZTA6eLo1WIiLSFZMnKf2F43y7kI7FZlh8W+COXoNR16nmGgo4QJeX4HA5?=
 =?iso-8859-1?Q?2HXI86rRRmLmWbjMCOs8h7glG6P2bX5hXFWqg2+RR/XrzdXg0tCsj14yKl?=
 =?iso-8859-1?Q?bw1wrpYDdFmIQqv2FG1sxwawyfWTJjOOVFUtbHQvPu2pn5XRInXRi3GAt+?=
 =?iso-8859-1?Q?gUakm6gOEPqT0szIA36AAh43bsJeTzj9f6AKfwOt8HRjyHy1oM0tVntyG/?=
 =?iso-8859-1?Q?Cy1wlL+PjOk7yj73bJ+TVYr4KT0cOJMNS2/5LvRjMhGs6ttCZsmgt4geYd?=
 =?iso-8859-1?Q?rlC6teF8OqLPcMAxwQSyvnBmgRxo8Zm0A02CnHxB/RonPh1YD7EbcuiE0z?=
 =?iso-8859-1?Q?ooQULBWaRVAdU9+qNDANsTgpUcTI4iWlNy0lHTq1i/Szwpe/z3ABjFsy5u?=
 =?iso-8859-1?Q?ggh5HzHJKExV6b3YeKWnVpAyjftLx29RspwU7QJoLU6kgHroLsl2MFf4yS?=
 =?iso-8859-1?Q?lbFnaoG8s3EO+Bvfev1XptWXLCztac1rRcwUMcQ/5KBZXEATHGNQJ0EyMu?=
 =?iso-8859-1?Q?bkWEhlYePDVTF1GnGcE081JVX5+Aj5STrnUw0rv4a64YBCZqr7NT0MWzcl?=
 =?iso-8859-1?Q?2Bmuo983NtfdtgMnlMT2OCfFbwDhKYLmwyRUddBnzLcdkS5aQEZAcPhEFw?=
 =?iso-8859-1?Q?E=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(42112799006)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?7SyKiKToqq0MWIEbL8bbzB3JSEmiXDmeAVpBoyrUwzjmteH1xex/J4a0y4?=
 =?iso-8859-1?Q?MYNnYyR8oxzJ/vK9MDWYmbOSC8IeWiSrf919ywNKHmt4OAkKUgaLf9QtSY?=
 =?iso-8859-1?Q?iZqiYf7mViEJmnQk6Jj4VfpdWd8uT9bg/S0FAonEcbln2gTPin7bpFwJw+?=
 =?iso-8859-1?Q?d2tlwz4I/ba9NoqlznNAEX2aakY3a0A4ENJ+jWgMjgIYT8x5RHqUwtNGtL?=
 =?iso-8859-1?Q?3uGVYNeH/hfDuoutol6IaZIu7bJwc3JMUVBL0W5b0dOhkgGN/0FPHrMug7?=
 =?iso-8859-1?Q?slMrg1z0G4LL73xM41Ow89XH5CbzbuY3dJboT82G+dCmVgYYCCw1nI7x4w?=
 =?iso-8859-1?Q?XaT8mrQ2BRbLLktGPTVZSEqmnbgJ3dTnGMf/5x+g6nGClAFwV+2L4opC3x?=
 =?iso-8859-1?Q?L1Na9ITPWncIW8zuAAhhtT0L3qqVObnHYiIGiKvuGp0xjmPm91aL87/RNs?=
 =?iso-8859-1?Q?bIvdEXW6bYxrHUBd3ZKkj5yyjrms1IgfTW5kuvq8+VpEE/t3kVFrSNOqQY?=
 =?iso-8859-1?Q?Kbs08T9R4UTtNE/8zKlzJyfkiKiLUhlDypSM/VQUKpU6YtN2HTJrUlr7pa?=
 =?iso-8859-1?Q?uCu9e8BB8GQQmJQN9OBgHaPPvf2TLekXxsQUOgQakso4Isvx9pYWU1LqR0?=
 =?iso-8859-1?Q?BSzdpJncsCdbA87PlaCKBFqd1izABRAYuaWt3ZAC/1le2H8DetjAAFrL7b?=
 =?iso-8859-1?Q?MncamG634j+j2y/GNmmSTOqb4EP7zZyRQtcudVXfI9bLSmdAe3d/LCHPNp?=
 =?iso-8859-1?Q?oq3YG76yvznQTNG/bXNX63HUb/MWNUouLaZ44mDty25Hh9Dy5j+rFLvq4l?=
 =?iso-8859-1?Q?7duNPxZ/8/P178i10TrdXHM+aw46AA+ts+KJApLEGoaseDSDnMHKpRgkFg?=
 =?iso-8859-1?Q?vV7nQJuruI5IAyKRIaLoZcai4/mFrQxrg+8Od7N1ePyumLrljMN9DXOhSN?=
 =?iso-8859-1?Q?95zwQOI1xq6Yivfn6XYejf+6V9oc3ArMNMUkjWOKHljGLmNPx1kKCuVKL5?=
 =?iso-8859-1?Q?qlquLMEkba6eUoqZendjUa0su0U0wOaqTNMLTIF4XV19p8Y0egdlsUXPWJ?=
 =?iso-8859-1?Q?wBhuvSnvIlM6nf+ZALOh43sEC2Ju2PvWZY/o7yhEe5fi9pgnKvThySYh1w?=
 =?iso-8859-1?Q?YqN4mYCI5BEGS2ghrCv6sqYQGVHREYsKs8wIFvux9bgu6EgSi3D/p7zo19?=
 =?iso-8859-1?Q?nB+1PrZboBYvu5D5L0JRDAQA0pxgvqieAje3BE0a6vEJgVgXNh2nMiAmN4?=
 =?iso-8859-1?Q?jtT2XgpaW3PzusfHgqy8cso/+vnOoMbBFqHgmYMSf2Ma2W3XEI0SctmhTO?=
 =?iso-8859-1?Q?YGBxlndKiENATEnjgH6sW0CBqaAvHrerxwxFaxuZaIW0LPHJGUu7hR5ZZA?=
 =?iso-8859-1?Q?htwLz/wscpZgGuj0it7MVDgR9nMaHCfCAT7oG09g8wGWLEP3maE6kPXpOV?=
 =?iso-8859-1?Q?m4Amy6vEjdsjKlUin0jd61VJWH0/XiM50LzXxlR4bJ5oz0JI/3rWfji3MI?=
 =?iso-8859-1?Q?SYgwbFc/70e0nc7SCVuYO+ztNEciJkhzA02R3GqXNADZZPLY1JlhBXXgDa?=
 =?iso-8859-1?Q?WXHzcUvgQklF64mHt9OfSVK4t2/UwHeDLOzcWxb/421D07Ws+hFHEJFPVQ?=
 =?iso-8859-1?Q?t+Pjg+niWM/vZJr3886Qgxkd8E/tA8O3NySWk3sSnw1RPUbx6WYHqvFA?=
 =?iso-8859-1?Q?=3D=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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5261e6d9-d41c-4e47-2f2a-08dde3371cf4
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Aug 2025 17:53:20.4765
 (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: yd2ZFuvoHnKw1Fbb9JT7J3ly7ICIHVVG2QIznOyn+rwpR5Rdfdkzp3lyilblskbj3b4Xa2fH//2P1w90CaTMkbYP6AnmjEhczrVMYdfOPiA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR03MB7132

From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>

Fix the following issues:
1. xen/docs/misra/deviations.rst:90: WARNING: Inline interpreted text or
phrase reference start-string without end-string. [docutils]
2. xen/docs/misra/deviations.rst:54: ERROR: Error parsing content block
for the "list-table" directive: uniform two-level bullet list expected,
but row 6 does not contain the same number of items as row 1 (2 vs 3).
* - R2.1
  - Calls to the `__builtin_unreachable()` function inside the expansion of
    the `ASSERT_UNREACHABLE()` macro may cause a function to be marked as
    non-returning. This behavior occurs only in configurations where
    assertions are enabled. To address this, the `noreturn` property for
    `__builtin_unreachable()` is overridden in these contexts, resulting in
    the absence of reports that do not have an impact on safety, despite
    being true positives.
    Xen expects developers to ensure code remains safe and reliable in buil=
ds,
    even when debug-only assertions like `ASSERT_UNREACHABLE() are removed.
3. xen/docs/misra/rules.rst:127: WARNING: Inline interpreted text or phrase
reference start-string without end-string. [docutils]

Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
Changes in v3:
- removed item #4 from commit message
- set backticks for macro ASSERT_UNREACHABLE() in deviations.rst and rules.=
rst

Link to v2:
https://patchew.org/Xen/f31b8d62f16bd272114276f53db842101cd53e52.1755266805=
.git.dmytro._5Fprokopchuk1@epam.com/
---
 docs/misra/deviations.rst | 3 ++-
 docs/misra/rules.rst      | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
index 2119066531..3271317206 100644
--- a/docs/misra/deviations.rst
+++ b/docs/misra/deviations.rst
@@ -95,7 +95,8 @@ Deviations related to MISRA C:2012 Rules:
        the absence of reports that do not have an impact on safety, despit=
e
        being true positives.
        Xen expects developers to ensure code remains safe and reliable in =
builds,
-       even when debug-only assertions like `ASSERT_UNREACHABLE() are remo=
ved.
+       even when debug-only assertions like `ASSERT_UNREACHABLE()` are rem=
oved.
+     - ECLAIR has been configured to ignore those statements.
=20
    * - R2.2
      - Proving compliance with respect to Rule 2.2 is generally impossible=
:
diff --git a/docs/misra/rules.rst b/docs/misra/rules.rst
index a2e4e9f4ff..4388010ec9 100644
--- a/docs/misra/rules.rst
+++ b/docs/misra/rules.rst
@@ -124,7 +124,7 @@ maintainers if you want to suggest a change.
            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_UNREAC=
HABLE()'
+         - Functions that are no-return due to calls to the `ASSERT_UNREAC=
HABLE()`
            macro in debug build configurations are not considered violatio=
ns::
=20
               static inline bool
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Sun Aug 24 18:09:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 Aug 2025 18:09:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1092190.1448202 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqF9I-0001a2-Jk; Sun, 24 Aug 2025 18:09:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1092190.1448202; Sun, 24 Aug 2025 18:09: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 1uqF9I-0001Zv-Gr; Sun, 24 Aug 2025 18:09:00 +0000
Received: by outflank-mailman (input) for mailman id 1092190;
 Sun, 24 Aug 2025 18:08:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9Bk9=3E=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1uqF9H-0001Zp-7z
 for xen-devel@lists.xenproject.org; Sun, 24 Aug 2025 18:08:59 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 66c01144-8115-11f0-b898-0df219b8e170;
 Sun, 24 Aug 2025 20:08:57 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by GV1PR03MB8094.eurprd03.prod.outlook.com (2603:10a6:150:1d::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.17; Sun, 24 Aug
 2025 18:08:50 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Sun, 24 Aug 2025
 18:08: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>
X-Inumbo-ID: 66c01144-8115-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=F+vWnWWjjxsBhXXVf1odbtL27Aaqp9/h5nSoFrkEn/3d7rh0HpgIMEmjKqEJV3h6f3KFCgKrgE8lM8+hWR66YozR1Ab8T9smqKsyO4fM3qCw7JkDuOHpia821Bi0Z14O40auJgtWHN1D04KUCmYtSU3QEfYfML1XvD9BLYEl5b9/1X8iuNZp0l3cHBKVKgsBZddcg6slCqhk8DnKg4XcRrNc5ieaQOs32wbDdKKvTV+RXHIcx7xlWcbzyHXsxwPdCGCi3E/G585QAHQpg/bOI6QWZlSdIPytuTTvEpazsLrEDeh8OfJ3SWxLPEFfuo++jc0f9cipS/OL8sW/S8JPUA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4imJ6dvURYjQYR/dZwnaWRCobQTX2Deyj3iYav320gM=;
 b=eFHkLwtt+v6toZZiHBoQM6Go2U1BgGPbNW694gMuRiQ0rX1zinZ5EQl9NKrHNqGclrWTsGu5StTrPVVGZ5RIicu7DfZQxcsj4mjZMSLm2EYfyiAWJqOIqoBgx9oMn22u4XiaxIlLbGRzJzgSTnPwxh8FUavR+Sw8FKHqO1+hDKrGVnHbo15TCT/y9YcXTHDha7JbrYHmtVf3ZXtYLfM+CKQwM/ni+jvTcHZ7RhIbUZmHT0K7Hc8SSAnWzd+encpR30D7gxUVHlQNBCAYWqEBiLEZbBcPhctzUK8ufmw0zQOlwr4HNZWWHS1hccouFDus+vfsEMxFXSyLeC/Oe3zS2g==
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=4imJ6dvURYjQYR/dZwnaWRCobQTX2Deyj3iYav320gM=;
 b=o1FjAHwQX9lbbJb3EuxPqX+OMaOlY+WlcGAE5i9HqHlJzLde5QjxMkjILWpXnwkRy1K9GGy0hQBSVUtmfS+w/LLcMbgGBDZT26PFxuCt8lb+9eQ8Q2UpcysenV82nb1Aql7+MbWioeOyto5h7+jJZURX1dIiMAQdCQbFFO+D5LdbD6QNBfPx95C4lD5TjyEBZShOOTWocW3gr//m7BBp8GSZ0qEkUS3bv/eLiRSJ+M5XlLMYjbZOrkm3lyyASNYMrMbPCSm5tgglWT5nhvjtkEIz6u8yMUrrRvAVvlCjhXP6EKzWdVke2rkaECodjurl55ZUiNAOtoYQ1OTcpo8+9w==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: Oleksandr Tyshchenko <olekstysh@gmail.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v2 03/10] xen/arm: vgic: implement helper functions for
 virq checks
Thread-Topic: [PATCH v2 03/10] xen/arm: vgic: implement helper functions for
 virq checks
Thread-Index: AQHcB5d76MRh/Swq2EGu624C+G/Fb7RwRBaAgAHxAoA=
Date: Sun, 24 Aug 2025 18:08:49 +0000
Message-ID: <70eb1b7a-2882-40f8-8ebb-c82fbaaba411@epam.com>
References:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
 <f029f88411e816846d13aaf33d4ef703f95d1bb8.1754568795.git.leonid_komarianskyi@epam.com>
 <29d0e5ed-78b3-45ad-9543-e47731c41c3f@gmail.com>
In-Reply-To: <29d0e5ed-78b3-45ad-9543-e47731c41c3f@gmail.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: GV2PR03MB8678:EE_|GV1PR03MB8094:EE_
x-ms-office365-filtering-correlation-id: 24b7de65-89f6-4d05-804a-08dde3394701
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|376014|38070700018|7053199007;
x-microsoft-antispam-message-info:
 =?utf-8?B?cElEZ0pncFJCd2gvWStpdEVLV3Z2ZG9GdThhK01EYUdZWktHTGdHMUd5N2dZ?=
 =?utf-8?B?WFp2S2dCQzVxdmVXVmRTVkdWMWpoTi9KVDhQOGtTOEkrSkxiNDUwVzgzbHhj?=
 =?utf-8?B?bHFKbzJMZjYxSjdka2RFL201eWh0SU52KzNnS1pqbFpkL29QelpNdjVyVmdz?=
 =?utf-8?B?ZkpJQVlSTEowUmVxOGdZUzl3czlZZmtsTEhyWkdkaDlPaXNnQUFtL1hSZ3hS?=
 =?utf-8?B?WjJwWjBJN1lDR2NnWjUvNEVTSTV5c2NxalVoNHpjTjcvblM0ektjbGo4UktX?=
 =?utf-8?B?ZUhvKzhUbVR3OVBqZ3dsc2p0S1pwWVg2V3Rkc2EvaXBvc0JtVk5POVoxbG1H?=
 =?utf-8?B?MWpuRHlvWTBiR2RlMko4L0JYcFBEOVhtdGozbW5aZktWdlUrU2UyVnBORElX?=
 =?utf-8?B?VEhETWVHdWFsaGVINDV5NlVidGF6Z3dCRVg1UW9SM040Q3lXckcvTEg4QUF4?=
 =?utf-8?B?ZVBsRS9OSExWejB4R2lkY2tKTXVVUllSTVlhcHk5OUNwZllRNUJreUxCV0Vs?=
 =?utf-8?B?SlRkQjM2djZVMVZ2Yk5pdWtGejczTEV0UUR1b1ZWSnE4SVBVeWdqcVpKMGJI?=
 =?utf-8?B?YzJRWmlmSnBobnc2cGU3RmlINjdWZUt2Rmk2cVBzdS9KejhUMzhXWldBSERp?=
 =?utf-8?B?Zk1mRTdma0ROMnY0aVN6NmhLMXRpVmJtbzY5cktkbE9TQzJGdS93VU1jZjFx?=
 =?utf-8?B?Sm1VbVcvN0FjOHQ3ZGRoaXozMmNrQWpBLzliZWpGeDlRVDd2R09uc2t2Qy9q?=
 =?utf-8?B?bE1YRVlVRXZwZDVYSkxlWEdoTmZEYURwRHkwc0doM3JmaHRSK0ljejhqVzI3?=
 =?utf-8?B?bGoxajNSdHJRWkZvU1QrYUVMS1dGdm9UaU14NXNSMzcwSW1adVZEZDJvOVds?=
 =?utf-8?B?ak90ckpDckx4SmN6NDk4WWpmaU0wUVM5N2cxSjJnZHVCZGcvbHkxWVVMRDND?=
 =?utf-8?B?eUJmblhBWEFOTUU3WEpkOGZRWkNTK3pGL2NSYm44cEJpbFA4aDZqclQ4aTh3?=
 =?utf-8?B?TmpOclJnU1l1d1ZlNTJGU0EwbS9tYURCdE9RcGdlc1RveXI4LzZ2M1VMRkxT?=
 =?utf-8?B?QmtKelN2TW5UQ2Z6TGdsejUrRmxFbjVEQlFIQ1Jkb3BRWkVEZ1l2WXNQaExS?=
 =?utf-8?B?cUk2YmdZQWg0N1pUcWx1ZVRqc2FkR0xrQ1FQd0J6alBnZUU5Qk53c1R2TVVO?=
 =?utf-8?B?aDM4MGJlUWVrT3lOclhya3NPQ0M5bUFrclNKanBlcDdKUEdJWnZSV0ptUjVw?=
 =?utf-8?B?RDAvb1dWazYrUStaWk5NV3pQamZONDh5NUtxRHBDV2RtM0VaT1RicVlaSVJ4?=
 =?utf-8?B?YzZuY1hKZ0kzQmpVd1ExMUFPZHh3Y3lsZVpIMDJydmpSV3hzL2NXNHhkQVMy?=
 =?utf-8?B?VE9rTzlhdUxxZEZxMjVvdnNwZkFnbjNTOWFjL0dEdTVQU05DanZ2VnBPOWRt?=
 =?utf-8?B?djdZQmdKOC91ZTM5YVVZV085MUJidGZucFBZYnRuT1crbXBva01ORFRWdno2?=
 =?utf-8?B?M21BeGJteG1QNm82bFRTNEtXelJGcHNzYWxJa3RrZUw4Q21kOFNvRmRBR0ZD?=
 =?utf-8?B?OHQ1WitxRFRnUXVtLzJyS1Q5emRoUmo2RDdYTGdSVW05dHZnN1IyL0dDZEtF?=
 =?utf-8?B?WWx5a2lERS9ZcDdWQ08rMHNzZXMraXhMQjZVSGNIY0dOa01pK3VFL1Z0VFNL?=
 =?utf-8?B?b05DaVFzVGF2cjJiQ2V0T2pEU1orRkxOdGJ4eitoOHB5RmxQMi9WaHhCeUcr?=
 =?utf-8?B?YitlV0F2MmV2bzFNODFlTlZGSldta0ZkT0ZYQ2ZmODBPUVFPNUMvUUZnOHQ4?=
 =?utf-8?B?MkhNTktIS2o0TVJyaFdsbDdHZWlZR3VOQXBPOEZPWS9wTjgwZnRqRll1M1Nu?=
 =?utf-8?B?SXdSTGpkR01wRXdwMDhhdU9aMC9sS1VKdnRrOGpFNTZyZmh4elNnTlpYU3BO?=
 =?utf-8?B?MFFMSjl1b25pRDgzSnZuU3Nra0RiVnN5R0pqUzFJL2pSZWdZeEozR2U5QVNk?=
 =?utf-8?B?am0ybFFjdUd3PT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018)(7053199007);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?cmdhay9IVVpkNnIrTVhZR1A1cFlRd2Y5QXZzK3Y0cTlIalE1UHdDWFlMb2Rk?=
 =?utf-8?B?MmRRSUlEQjNmemNjMmoyUE1nOHcyVnRDQ2RZdmNkc1IydktDVWtrMUZKVElV?=
 =?utf-8?B?eEZLcHh3ckpnREE0amd1MFJRMmdoQ3hwSUJ3V2tJelZvT1B2TktBL2Z6dWQ1?=
 =?utf-8?B?UHN5eFZRMmN1eDErODQ1M2RxcmxVWjNBMDJFb1NrSGtoNlZuU0FWWUxvY2VZ?=
 =?utf-8?B?ZG9OYVdvMEZyMHdTQ0V1b1p5VlZmUUhNdko0T1NKRHRtZllvTE02QXBKZ1dH?=
 =?utf-8?B?MzJQVWJGU0ppdWFEMVZVWVZxNWc4NVdEbHY3bUtKL25OYmhkelgrYXBrNUFD?=
 =?utf-8?B?ZGJEVXlvUnpucnVkV1JJWmJoVko1UXl4M01ueUQwa2pvdDlEYUY4RFJQRGZO?=
 =?utf-8?B?M0JCVDlUY1g5cXhzb1U3OHhESEU1Ymw3aXp1Nk5zWTJ1SFlIbnBOaGthMkh2?=
 =?utf-8?B?a2xSd0VYWVFTb25PN0ZMSVJvYUpvUnVnZVF4ZkZJYi9wRDIrMDJ0Y2dtMllu?=
 =?utf-8?B?b3h3ODVFMFJOd3FqUkw0Mzkxd3VQalBPblpLbENQOGFlT2pNOTBxUDFaMFZC?=
 =?utf-8?B?OFJzdWhzS0RWM0dDcEl4VTRYR2l3Z1BXT2k2ZElmQVdIeHlqUlFCS2ZTaTd1?=
 =?utf-8?B?UC8vVXdVQVN4WEhGa3JQdjVES3k2RDBzb3hPZkhFMDNrUzM5a3NFYzQzTW9w?=
 =?utf-8?B?SlkvRVB4WmhzdXYrbjZpZThBU2dIRGNpUUk0MnhZWExhTngzaVZxS3FyRG5s?=
 =?utf-8?B?em1Rb2Y4TlNNbGgzZ3luWWxSbEhuZW5oNGVtRVRpYk8zdlFzaUhuZTFFbnRM?=
 =?utf-8?B?alhkUGpxMzlhQ21BTm1lME1LYTNpVGwxVWFPbFo4NWpndzhydTZrOERkQXBO?=
 =?utf-8?B?dEVEOTJ1ZG4zZG1xbENBYjhyQThHa0NzcFczeG1DNUJNaVhjbTNIUUpPQ0k2?=
 =?utf-8?B?UC95c0Z1eTJQUmJXSGZmWHhsMTNxVEwwRVlNUmd0TG1iUTEwejVVSHlIM2s2?=
 =?utf-8?B?RWl2RStNcERkUXJRUkFHc3E0aVJ4Z3FNZWpzcTdDRk93U0h3WUZheFhjMVJ0?=
 =?utf-8?B?MkNuUy9CYUVFVkRBSmc0QWswLysxMXo1MlVoRDRYeHFaeW1qSDBicHFlVGY0?=
 =?utf-8?B?NEFBZW50WUQ3VHZ5ZWNkNjNPMXNRcG5mcUM4YW5CWlRUMnFWMU1FTld2Rml2?=
 =?utf-8?B?QnQxVnpUdGc3ajFJcjFKS3lwdE01V0ozdDhLSWJUckIzL3JZWjYwNnBSZUVp?=
 =?utf-8?B?MG9EelJkSmFVU0FtdlR3Ly92QlV6dzlJdVphaFlTdmwya3RHa2VqYmZiU0lx?=
 =?utf-8?B?Z0EzV0gwNzRSa3RnZlhTQ2kvZVltRUxTS3VPazlQQXdOQXRLRjl4a2MxZm1s?=
 =?utf-8?B?Mk8vemcweDR0TnA4UU93L1hnZHhraHJhU20rMVRvL2RBNEMxUnk4Tm9OYU5N?=
 =?utf-8?B?Wkk1ZjFvdy81bWNKL3g5anhzblJYNEs4d2kvYzA2b2xISCtGbUJsS1I4emxp?=
 =?utf-8?B?NnRGZzlBSFVsSUw4RjBTa2lhWERSdVhKcm84MTFsQUI0dWkyK3RPQ3M3TnlQ?=
 =?utf-8?B?dFZjb3FaeFFteHUrWVF2aTZNbHNlMVdEdFE4bks1Tnp5N2xxbXdDU3Y5TG1k?=
 =?utf-8?B?elVHSTlUZzFZNTBsVDRSU2o5OFErSHN2NnNSYnRiSk8yTUhYRXVOeStTaWxR?=
 =?utf-8?B?WU1rZGRnbXRzNlhxYzlNQ2ErSG45a3dUNE1nd3cyaDhZYXAvWERvWkFzb0NY?=
 =?utf-8?B?UG8wRGMzaDlORXJyZGthNWhTT0sxVy9vMmFVU005MzFzV01ka2QvakoxSEdB?=
 =?utf-8?B?cDdqcmhqSEhWaTRuYzE0S1JhZEVuMWRNWkFRUnE1eU1tUTdpNE04Ui9mRDU1?=
 =?utf-8?B?OUZBakFpQVQ0SkxueWg4VGFYS0FmSWNCSmJqd2tEZjdLNU9LOWNwVFJNaGNJ?=
 =?utf-8?B?d3lYQmN6ZTFqNUlBTDBneS8vendQcC83cERlZkViR0lMVmxCUW9KMlR4Rkdx?=
 =?utf-8?B?VGY0WHJxZHNJRTEyL1pNMHd1dTNDamp0ci9UYld6SThVZEpuVko5OEVsa2Nm?=
 =?utf-8?B?eC9oYnl4bEMzTEFZOGZiNlptRUhBMTljcW1oRE9iNUYrTnVaZkFsdDNDTE0v?=
 =?utf-8?B?cFAzY3piV0cvZGlDRWVTTW5qSWpETkxKOVhDeXRDbldrK1NVSEllUjRiSXd6?=
 =?utf-8?Q?M4Ya+sfGNo7JYNn9lK3sOAM=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <FAE6F2F9724C5B41AC383E3DA4F99AC6@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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 24b7de65-89f6-4d05-804a-08dde3394701
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Aug 2025 18:08:49.9778
 (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: 1lVoE9QWq0QWgPtce2apzbCz4NKWho5w5esXa16ozWhgo42YLeb72aypbJoJ/eMBk65Xj8mF+oA0GehG/ItWNAdRk5ZlNgj5jqnrEsBzMgc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR03MB8094

SGVsbG8gT2xla3NhbmRyLA0KDQpPbiAyMy4wOC4yNSAxNToyOSwgT2xla3NhbmRyIFR5c2hjaGVu
a28gd3JvdGU6DQo+IFtZb3UgZG9uJ3Qgb2Z0ZW4gZ2V0IGVtYWlsIGZyb20gb2xla3N0eXNoQGdt
YWlsLmNvbS4gTGVhcm4gd2h5IHRoaXMgaXMgDQo+IGltcG9ydGFudCBhdCBodHRwczovL2FrYS5t
cy9MZWFybkFib3V0U2VuZGVySWRlbnRpZmljYXRpb24gXQ0KPiANCj4gT24gMDcuMDguMjUgMTU6
MzMsIExlb25pZCBLb21hcmlhbnNreWkgd3JvdGU6DQo+IA0KPiBIZWxsbyBMZW9uaWQNCj4gDQo+
IA0KPj4gSW50cm9kdWNlZCB0d28gbmV3IGhlbHBlciBmdW5jdGlvbnMgZm9yIHZHSUM6IHZnaWNf
aXNfdmFsaWRfaXJxIGFuZA0KPj4gdmdpY19pc19zaGFyZWRfaXJxLiBUaGUgZnVuY3Rpb25zIGFy
ZSBzaW1pbGFyIHRvIHRoZSBuZXdseSBpbnRyb2R1Y2VkDQo+PiBnaWNfaXNfdmFsaWRfaXJxIGFu
ZCBnaWNfaXNfc2hhcmVkX2lycSwgYnV0IHRoZXkgdmVyaWZ5IHdoZXRoZXIgYSB2SVJRDQo+PiBp
cyBhdmFpbGFibGUgZm9yIGEgc3BlY2lmaWMgZG9tYWluLCB3aGlsZSBHSUMtc3BlY2lmaWMgZnVu
Y3Rpb25zDQo+PiB2YWxpZGF0ZSBJTlRJRHMgZm9yIHRoZSByZWFsIEdJQyBoYXJkd2FyZS4gRm9y
IGV4YW1wbGUsIHRoZSBHSUMgbWF5DQo+PiBzdXBwb3J0IGFsbCA5OTIgU1BJIGxpbmVzLCBidXQg
dGhlIGRvbWFpbiBtYXkgdXNlIG9ubHkgc29tZSBwYXJ0IG9mIHRoZW0NCj4+IChlLmcuLCA2NDAp
LCBkZXBlbmRpbmcgb24gdGhlIGhpZ2hlc3QgSVJRIG51bWJlciBkZWZpbmVkIGluIHRoZSBkb21h
aW4NCj4+IGNvbmZpZ3VyYXRpb24uIFRoZXJlZm9yZSwgZm9yIHZHSUMtcmVsYXRlZCBjb2RlIGFu
ZCBjaGVja3MsIHRoZQ0KPj4gYXBwcm9wcmlhdGUgZnVuY3Rpb25zIHNob3VsZCBiZSB1c2VkLiBB
bHNvLCB1cGRhdGVkIHRoZSBhcHByb3ByaWF0ZQ0KPj4gY2hlY2tzIHRvIHVzZSB0aGVzZSBuZXcg
aGVscGVyIGZ1bmN0aW9ucy4NCj4+DQo+PiBUaGUgcHVycG9zZSBvZiBpbnRyb2R1Y2luZyBuZXcg
aGVscGVyIGZ1bmN0aW9ucyBmb3IgdkdJQyBpcyBlc3NlbnRpYWxseQ0KPj4gdGhlIHNhbWUgYXMg
Zm9yIEdJQzogdG8gYXZvaWQgcG90ZW50aWFsIGNvbmZ1c2lvbiB3aXRoIEdJQy1yZWxhdGVkDQo+
PiBjaGVja3MgYW5kIHRvIGNvbnNvbGlkYXRlIHNpbWlsYXIgY29kZSBpbnRvIHNlcGFyYXRlIGZ1
bmN0aW9ucywgd2hpY2gNCj4+IGNhbiBiZSBtb3JlIGVhc2lseSBleHRlbmRlZCBieSBhZGRpdGlv
bmFsIGNvbmRpdGlvbnMsIGUuZy4sIHdoZW4NCj4+IGltcGxlbWVudGluZyBleHRlbmRlZCBTUEkg
aW50ZXJydXB0cy4NCj4+DQo+PiBPbmx5IHRoZSB2YWxpZGF0aW9uIGNoYW5nZSBpbiB2Z2ljX2lu
amVjdF9pcnEgbWF5IGFmZmVjdCBleGlzdGluZw0KPj4gZnVuY3Rpb25hbGl0eSwgYXMgaXQgY3Vy
cmVudGx5IGNoZWNrcyB3aGV0aGVyIHRoZSB2SVJRIGlzIGxlc3MgdGhhbiBvcg0KPj4gZXF1YWwg
dG8gdmdpY19udW1faXJxcy4gU2luY2UgSVJRIGluZGV4ZXMgc3RhcnQgZnJvbSAwICh3aGVyZSAz
MiBpcyB0aGUNCj4+IGZpcnN0IFNQSSksIHRoZSBjaGVjayBzaG91bGQgYmVoYXZlIGNvbnNpc3Rl
bnRseSB3aXRoIHNpbWlsYXIgbG9naWMgaW4NCj4+IG90aGVyIHBsYWNlcyBhbmQgc2hvdWxkIGNo
ZWNrIGlmIHRoZSB2SVJRIG51bWJlciBpcyBsZXNzIHRoYW4NCj4+IHZnaWNfbnVtX2lycXMuIFRo
ZSByZW1haW5pbmcgY2hhbmdlcywgd2hpY2ggcmVwbGFjZSBvcGVuLWNvZGVkIGNoZWNrcw0KPj4g
d2l0aCB0aGUgdXNlIG9mIHRoZXNlIG5ldyBoZWxwZXIgZnVuY3Rpb25zLCBkbyBub3QgaW50cm9k
dWNlIGFueQ0KPj4gZnVuY3Rpb25hbCBjaGFuZ2VzLCBhcyB0aGUgaGVscGVyIGZ1bmN0aW9ucyBm
b2xsb3cgdGhlIGN1cnJlbnQgdklSUQ0KPj4gaW5kZXggdmVyaWZpY2F0aW9uIGxvZ2ljLg0KPj4N
Cj4+IFNpZ25lZC1vZmYtYnk6IExlb25pZCBLb21hcmlhbnNreWkgPGxlb25pZF9rb21hcmlhbnNr
eWlAZXBhbS5jb20+DQo+Pg0KPj4gLS0tDQo+PiBDaGFuZ2VzIGluIFYyOg0KPj4gLSBpbnRyb2R1
Y2VkIHRoaXMgcGF0Y2gNCj4+IC0tLQ0KPj4gwqAgeGVuL2FyY2gvYXJtL2dpYy5jwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqAgfMKgIDMgKy0tDQo+PiDCoCB4ZW4vYXJjaC9hcm0vaW5jbHVkZS9h
c20vdmdpYy5oIHzCoCA3ICsrKysrKysNCj4+IMKgIHhlbi9hcmNoL2FybS9pcnEuY8KgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgIHzCoCA0ICsrLS0NCj4+IMKgIHhlbi9hcmNoL2FybS92Z2ljLmPC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCAxMCArKysrKysrKy0tDQo+PiDCoCA0IGZpbGVzIGNo
YW5nZWQsIDE4IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pDQo+Pg0KPj4gZGlmZiAtLWdp
dCBhL3hlbi9hcmNoL2FybS9naWMuYyBiL3hlbi9hcmNoL2FybS9naWMuYw0KPj4gaW5kZXggZWIw
MzQ2YTg5OC4uNDdmY2NmMjFkOCAxMDA2NDQNCj4+IC0tLSBhL3hlbi9hcmNoL2FybS9naWMuYw0K
Pj4gKysrIGIveGVuL2FyY2gvYXJtL2dpYy5jDQo+PiBAQCAtMTMzLDggKzEzMyw3IEBAIGludCBn
aWNfcm91dGVfaXJxX3RvX2d1ZXN0KHN0cnVjdCBkb21haW4gKmQsIA0KPj4gdW5zaWduZWQgaW50
IHZpcnEsDQo+Pg0KPj4gwqDCoMKgwqDCoCBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoJmRlc2MtPmxv
Y2spKTsNCj4+IMKgwqDCoMKgwqAgLyogQ2FsbGVyIGhhcyBhbHJlYWR5IGNoZWNrZWQgdGhhdCB0
aGUgSVJRIGlzIGFuIFNQSSAqLw0KPj4gLcKgwqDCoCBBU1NFUlQodmlycSA+PSAzMik7DQo+PiAt
wqDCoMKgIEFTU0VSVCh2aXJxIDwgdmdpY19udW1faXJxcyhkKSk7DQo+PiArwqDCoMKgIEFTU0VS
VCh2Z2ljX2lzX3NoYXJlZF9pcnEoZCwgdmlycSkpOw0KPj4gwqDCoMKgwqDCoCBBU1NFUlQoIWlz
X2xwaSh2aXJxKSk7DQo+Pg0KPj4gwqDCoMKgwqDCoCByZXQgPSB2Z2ljX2Nvbm5lY3RfaHdfaXJx
KGQsIE5VTEwsIHZpcnEsIGRlc2MsIHRydWUpOw0KPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2Fy
bS9pbmNsdWRlL2FzbS92Z2ljLmggYi94ZW4vYXJjaC9hcm0vaW5jbHVkZS8gDQo+PiBhc20vdmdp
Yy5oDQo+PiBpbmRleCAzNWMwYzZhOGIwLi40NTIwMWY0Y2E1IDEwMDY0NA0KPj4gLS0tIGEveGVu
L2FyY2gvYXJtL2luY2x1ZGUvYXNtL3ZnaWMuaA0KPj4gKysrIGIveGVuL2FyY2gvYXJtL2luY2x1
ZGUvYXNtL3ZnaWMuaA0KPj4gQEAgLTMzNSw2ICszMzUsMTMgQEAgZXh0ZXJuIHZvaWQgDQo+PiB2
Z2ljX2NoZWNrX2luZmxpZ2h0X2lycXNfcGVuZGluZyhzdHJ1Y3QgdmNwdSAqdiwNCj4+IMKgIC8q
IERlZmF1bHQgbnVtYmVyIG9mIHZHSUMgU1BJcy4gMzIgYXJlIHN1YnN0cmFjdGVkIHRvIGNvdmVy
IGxvY2FsIA0KPj4gSVJRcy4gKi8NCj4+IMKgICNkZWZpbmUgVkdJQ19ERUZfTlJfU1BJUyAobWlu
KGdpY19udW1iZXJfbGluZXMoKSwgVkdJQ19NQVhfSVJRUykgLSAzMikNCj4+DQo+PiArZXh0ZXJu
IGJvb2wgdmdpY19pc192YWxpZF9pcnEoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IHZp
cnEpOw0KPj4gKw0KPj4gK3N0YXRpYyBpbmxpbmUgYm9vbCB2Z2ljX2lzX3NoYXJlZF9pcnEoc3Ry
dWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IA0KPj4gdmlycSkNCj4+ICt7DQo+PiArwqDCoMKg
IHJldHVybiAodmlycSA+PSBOUl9MT0NBTF9JUlFTICYmIHZnaWNfaXNfdmFsaWRfaXJxKGQsIHZp
cnEpKTsNCj4+ICt9DQo+PiArDQo+PiDCoCAvKg0KPj4gwqDCoCAqIEFsbG9jYXRlIGEgZ3Vlc3Qg
VklSUQ0KPj4gwqDCoCAqwqAgLSBzcGkgPT0gMCA9PiBhbGxvY2F0ZSBhIFBQSS4gSXQgd2lsbCBi
ZSB0aGUgc2FtZSBvbiBldmVyeSB2Q1BVDQo+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2ly
cS5jIGIveGVuL2FyY2gvYXJtL2lycS5jDQo+PiBpbmRleCAxMmM3MGQwMmNjLi41MGU1N2FhZWE3
IDEwMDY0NA0KPj4gLS0tIGEveGVuL2FyY2gvYXJtL2lycS5jDQo+PiArKysgYi94ZW4vYXJjaC9h
cm0vaXJxLmMNCj4+IEBAIC00NDIsNyArNDQyLDcgQEAgaW50IHJvdXRlX2lycV90b19ndWVzdChz
dHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCANCj4+IGludCB2aXJxLA0KPj4gwqDCoMKgwqDCoCB1
bnNpZ25lZCBsb25nIGZsYWdzOw0KPj4gwqDCoMKgwqDCoCBpbnQgcmV0dmFsID0gMDsNCj4+DQo+
PiAtwqDCoMKgIGlmICggdmlycSA+PSB2Z2ljX251bV9pcnFzKGQpICkNCj4+ICvCoMKgwqAgaWYg
KCAhdmdpY19pc192YWxpZF9pcnEoZCwgdmlycSkgKQ0KPiANCj4gDQo+IFRoaXMgZmlsZSBpcyBj
b21tb24gZm9yIGFsbCBWR0lDIGltcGxlbWVudGF0aW9ucywgc28NCj4gcm91dGVfaXJxX3RvX2d1
ZXN0KCkgaXMgdXNlZCB3aXRoIENPTkZJR19ORVdfVkdJQz15IGFzIHdlbGwuDQo+IA0KPiBJZiB5
b3VyIHNlcmllcyBpcyBidWlsdCB3aXRoIENPTkZJR19ORVdfVkdJQz15IChJIGtub3csIHRoYXQg
TkVXX1ZHSUMNCj4gZG9lcyBub3Qgc3VwcG9ydCBHSUNWMyBIVykgSSBoYXZlIGdvdCB0aGUgZm9s
bG93aW5nIGVycm9yOg0KPiANCj4gDQo+IGFhcmNoNjQtcG9reS1saW51eC1sZDogcHJlbGluay5v
OiBpbiBmdW5jdGlvbiBgcm91dGVfaXJxX3RvX2d1ZXN0JzoNCj4gL3Vzci9zcmMvZGVidWcveGVu
LzQuMTguMCtnaXRBVVRPSU5DK2NlNThmNTYxMDgtcjAvZ2l0L3hlbi9hcmNoL2FybS8gDQo+IGly
cS5jOjQ0NToNCj4gdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgdmdpY19pc192YWxpZF9pcnEnDQo+
IC91c3Ivc3JjL2RlYnVnL3hlbi80LjE4LjArZ2l0QVVUT0lOQytjZTU4ZjU2MTA4LXIwL2dpdC94
ZW4vYXJjaC9hcm0vIA0KPiBpcnEuYzo0NDU6KC50ZXh0KzB4NWUyZjgpOg0KPiByZWxvY2F0aW9u
IHRydW5jYXRlZCB0byBmaXQ6IFJfQUFSQ0g2NF9DQUxMMjYgYWdhaW5zdCB1bmRlZmluZWQgc3lt
Ym9sDQo+IGB2Z2ljX2lzX3ZhbGlkX2lycScNCj4gLi4uDQo+IA0KPiAgRnJvbSB0aGUgcXVpY2sg
bG9vaywgdmdpY19pc192YWxpZF9pcnEoKSBuZWVkcyBhIHN0dWIgKG9yIE5FV19WR0lDJ3MNCj4g
Y291bnRlcnBhcnQpLg0KPiANCj4gW3NuaXBdDQoNClRoYW5rIHlvdSBmb3IgeW91ciByZXZpZXcg
YW5kIGZvciB0ZXN0aW5nIHRoZSBwYXRjaCBzZXJpZXMgd2l0aCANCmRpZmZlcmVudCBjb25maWcg
b3B0aW9ucy4gSSB3aWxsIGFkZCB0aGUgdmdpY19pc192YWxpZF9pcnEgY291bnRlcnBhcnQgDQoo
YWZ0ZXIgZGlzY3Vzc2lvbiwgd2UgZGVjaWRlZCB0byByZW5hbWUgdGhlIGZ1bmN0aW9uIHRvIA0K
dmdpY19pc192YWxpZF9saW5lKSBmb3IgTkVXX1ZHSUMgYW5kIHJlY2hlY2sgdGhlIGJ1aWxkIHdp
dGggTkVXX1ZHSUMgY29uZmlnLg0KDQpCZXN0IHJlZ2FyZHMsDQpMZW9uaWQuDQo=


From xen-devel-bounces@lists.xenproject.org Sun Aug 24 18:17:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 Aug 2025 18:17:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1092201.1448213 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqFHn-0003Ra-Dz; Sun, 24 Aug 2025 18:17:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1092201.1448213; Sun, 24 Aug 2025 18:17: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 1uqFHn-0003RT-B6; Sun, 24 Aug 2025 18:17:47 +0000
Received: by outflank-mailman (input) for mailman id 1092201;
 Sun, 24 Aug 2025 18:17:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9Bk9=3E=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1uqFHl-0003RL-TE
 for xen-devel@lists.xenproject.org; Sun, 24 Aug 2025 18:17:46 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a15fdeda-8116-11f0-a32c-13f23c93f187;
 Sun, 24 Aug 2025 20:17:44 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by GV1PR03MB8094.eurprd03.prod.outlook.com (2603:10a6:150:1d::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.17; Sun, 24 Aug
 2025 18:17:40 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Sun, 24 Aug 2025
 18:17: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>
X-Inumbo-ID: a15fdeda-8116-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mu90A8++mA7xFImcPiJplT2rJZPNuSrALNM7+xvN1AWPKih+HcMHIRgHiG1JlNWoebPHzgns+2xQIHskW97IhtB8jFQpo3+9iI+xuNpxePGQqooSn7tuvroyY19g2a0y+BRjNf6CubPPNA9rVVFga68aSQf2ftPyjTqo6JnuyDVjUGb+KIuZi4m6gXKceIciZz316f5OEBeO+dtT7qwsv3DIzEdsgHWATGFc49LWwlcxUaiQuQUgYMCZ/hhKZVHx3oZEUciKauIltddCSFU8akspVBYdHtcRfAr+h6eY+/SlIqIsOSuaIUya8sVz+uwQyvDT5u2jBs5oH1kc3juiRQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=YS+WNH9gGznC3QrojdQKbZOX/kso/dtGnxzGBlfxXlY=;
 b=jZDGyRQMwYjNBppxj+5i3MLfP6kav/YEoxMw7nWuTSK0/fbhUruApqOU7CdJ+cfOg0Icq8uku5UrLymo9dV7RznJoY1d1qNBApaqAIkSIKT5ywu5VoX7ZkYCeyP1tsGodIMMe/87ql2Qwjj92vD1VeR4XFm5ZL7PFWNiGGZ6uxqUeWUBGQok5YDPMwPk0ZQEVYvDFA6pezZVH9IcpFM7ACe3T074BzUEGoHrStOVCSfZnyoH2W7TKQy2HK0g00TorG0JZE7di94/ev8QUC7fOU4n+leNKMl4ZFXMlHjqH9APSzLm3LMSfnOQsL+xbqGdMsXRL0Ti6cMu3SBcSPtWqw==
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=YS+WNH9gGznC3QrojdQKbZOX/kso/dtGnxzGBlfxXlY=;
 b=uW9F2D3TIsuQuy6919rFrrNM6/qFOipHCTj2kp90ZpQynu+Trp84ZUNZwc4DavGQ18xj0POBpN4SBdBmJRf+nak7y2zxIN063u8R+M8a6jtEoz1nLQTXGzgh94DcqjJgH3Bqo+JTW28SkdFqsV7f9n5/ISzyfWUib/5Xlv2UFdy9o/X+xn1F7l9FR/X+UfSw4GOJn/YcdawkgK1pT9VzGQZhHwCs2XSNQMparfBS4dSLEion+HMgWFMk4h8eY/hJ9UKOAixFjn/9SC3rAoAaR64vB58TqULAPn/iBhZBRtKtEWm8THz5RxAJlxQkDcTeKt7PaQmgE25wH3VM7aSvpA==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: Oleksandr Tyshchenko <olekstysh@gmail.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v2 05/10] xen/arm: gicv3: implement handling of GICv3.1
 eSPI
Thread-Topic: [PATCH v2 05/10] xen/arm: gicv3: implement handling of GICv3.1
 eSPI
Thread-Index: AQHcB5d8tjpgMfEXfkClUacVz54EpbRwY8yAgAHTxIA=
Date: Sun, 24 Aug 2025 18:17:39 +0000
Message-ID: <17c94c5c-3052-4cce-8978-b9b2ef6781a0@epam.com>
References:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
 <2491bee7441f13a3c1a01fd77ece1749e7276352.1754568795.git.leonid_komarianskyi@epam.com>
 <b2870d5f-cf54-41f4-9cfe-b83161c157df@gmail.com>
In-Reply-To: <b2870d5f-cf54-41f4-9cfe-b83161c157df@gmail.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: GV2PR03MB8678:EE_|GV1PR03MB8094:EE_
x-ms-office365-filtering-correlation-id: 878e5625-245e-464b-7cce-08dde33a82d4
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|376014|38070700018|7053199007;
x-microsoft-antispam-message-info:
 =?utf-8?B?Y2FjWVI0amU2Q1ZRcWRGVHg2MTZLa3ovdTY5OCsranNnVGw4ckRFQ1RFV1hV?=
 =?utf-8?B?ZlQyc3F1U2ttcFZYSmltZU5tUEp4am8vY1pqdldZK2pTclFxMEh2eklHelJi?=
 =?utf-8?B?Umt5THJRMzdvVUN0MmRncVN3aE91ZndSUytZK1oxak4xdnRnSDZPMXpXWEpK?=
 =?utf-8?B?RXZzZ1RwOEN3WmNrQ29RU3VZd2ljWXhXTXp5WXR5dDd3aTlLR3NHUnRRNzd6?=
 =?utf-8?B?SGZaT0dlT290YkRHTnZkRkVZVVZ4UHY3cXFhRlc2V0VTQm5QTnlqYko0dGRU?=
 =?utf-8?B?ZWU2eWFrdExIRko0NkEvdDFPVGtuVGlGMVZmTFl5eEsxdWMwSmMyYUUxVTdh?=
 =?utf-8?B?cG9BYmRUZ21JQ0p1bnNMVHN5d01jT2E2d3gyTFlwNzcxMW5KWG1NaXZPbUpS?=
 =?utf-8?B?ZTZTYU9KYmorS1JUQWJCdFRUK2ljRVQ5RTdzNGdLKzE3Y2RZWWxjeHMvR0JD?=
 =?utf-8?B?L2NiMGVlMWdab3A4Tm13Ykk0d3F1OEFJeGZYZmVYdDVseEE4SzltYzRvUmtL?=
 =?utf-8?B?bkJCLyt3ZXJHWk1VM1QwK2RETUxaRGFZUTQrUGhCNVgrWWNsQ0JDRmxxZmR0?=
 =?utf-8?B?MWlxOHZRNVpraEZ4YVBQUHpad0g5andoNHExVjl6cWhYSUVMb3RKUGVSVnV1?=
 =?utf-8?B?ZFhQSTBzbThEVm5jMW11SHN6ZktuUFRESGZ6MjJlalBxUUNBYlhBblhYSVhi?=
 =?utf-8?B?em1XZ1l6UHI5L0diZG0yUEpmUWRPWVJzcW42R3hCb0ZabGxna3N2U2JPZkFz?=
 =?utf-8?B?dUJ1a3RhOSs1UkdSYUVjWWI0cmhveXl0aTFLbnRlbjRUeXFDZ3FRNVVadi85?=
 =?utf-8?B?SkJLcittOXlJSjVUN1NyWmRvZHRyck4rNWtRN1UxRUhyNXdoYXo3SGVmMjQz?=
 =?utf-8?B?UHRkRVR2ZEpFdGJSWVNnVkszcHltMVdkVTBpMDhMRC85TjZBRVUxL3VZM29W?=
 =?utf-8?B?dytlRXdUKzh6WHJtbjAwajlwZnFQUG43RGlCOEFqUWdmd1pFazBreVVZandm?=
 =?utf-8?B?aitidDVzdm9LaFFlOE90dDQ1VGozYVBTMldoODUxbWVRODJueTF1TllXS1Vj?=
 =?utf-8?B?ZW5sWW5KZ1NHTUd0YXhxRko5a0lBYXdLTi9sQlZ2MDBadXlzdXpYUnY4cERT?=
 =?utf-8?B?K0VJbWN1MU9XZ1VMdkhSeXp0cld3OUUzd21kb2E0ZHZhemxyY1FqUEdkdndU?=
 =?utf-8?B?THFoamVLTVU2a0dIcjZma1Nab0pIM2Jtencwa2xTZ2kzeUVOcU5qZEdRVUc2?=
 =?utf-8?B?Rk9zMUVYSzJGRGFGY2FNMnc5WFhQdW1sb3FWeXlmenFXTVoxZzgrcW1xdXRx?=
 =?utf-8?B?bURZcG5uZmY0VFdnNmROSmttWEVZMDcxbERkNmNHUHpXYjIxcndBZThQMTNT?=
 =?utf-8?B?M2ZxWDVwVGF3M0hmQnNoRUIyM2tIRURzVGRxei9OK0laaGM1L0IxRW9qRGFQ?=
 =?utf-8?B?VUc4OG5Ebkk1WWRHVnJ4aiszOWNZYkdDU1o4Q3c2eWRaREN0RURwVlNzZERH?=
 =?utf-8?B?dXE2R01va3V3T25vS1NKMzBjaVQ0cEZHS0xqU0RHaFFhbjVhUk1yaS9qWmFr?=
 =?utf-8?B?eWYzenlEY3JycTdwbVBRbERmOVUwd0dGMFBpOEdVRklIaVdRbk9DUEpaZGI0?=
 =?utf-8?B?NXdsU0p0ZHltS01qUnd5TWJjT29wUnFSYzZmdEc1V3Jtc3hqUFRjWkNMRDRB?=
 =?utf-8?B?ZzIrNkJXNzNOd2tFUldFdVZ4ZmVxZ3dYK1NSQlVrc255Z3lxdEh5dU5rTmNZ?=
 =?utf-8?B?ME8rc21OMU1zRWdqeDhwZGJxTlliY3BSNkVkdmVrRFJxd085VE5QT0haSDJn?=
 =?utf-8?B?VC9FalpoZGtqMkh1TGtoY0JZdExyWWxwNDBXS3g5TFRsUmlpaFhzWWovOTAw?=
 =?utf-8?B?RElrZVpGRE5TYUFYS0RSTW9BTFFMeU41TzdSNXhKQ3pQRnA1TmJ3U2NaK01S?=
 =?utf-8?B?WmgxejJlZFpzL01EdTVMSlRYcGUraFFPb2JUcHVWNUdmSStpQ1IyMUQrZWtG?=
 =?utf-8?B?TUVLZzFET2tnPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018)(7053199007);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?RE1OVkU1Uk1RRjBCQ1lhMkRkZmNhZGNWWG02eTJPdGova0RMZTJXWkNEejZh?=
 =?utf-8?B?clhoQ3NKYkZ2YTVOTUE2Q21WeExEeWN5b20vNnZNR3NvR1pGM2ZOd2pFczRU?=
 =?utf-8?B?ZjJSempaQ2k0RS9BM09idDY4WVV0c1JrZkZsVGEzbGRERGRSTlFzUS91RFJJ?=
 =?utf-8?B?bklNMll1Wmlzd2VLYW1qT01GOE44WEMwZ09EbWdEU1JlZ3JXd291WUpJMTBk?=
 =?utf-8?B?WG1ydzVEYlRNQitEYzB1WmtxNGxpYTM1MGJsUGExQ2F1b3lIWlpoQTJhemJh?=
 =?utf-8?B?cjV6Nk15Mmgzb3dBaWZwTU92VUM0YlJPRVFjSGJZQWswcGtBa1ArQTB0cnRT?=
 =?utf-8?B?R3VEOElxZXVKaDE4VDVJOUhacVowYnJCbzBOTWdzM2JUU01ST2IyWU5EQVlW?=
 =?utf-8?B?Q0E5R2hrOUt1RDVRNlJsNFY1cXdPRGlJUlFadklJV3VjSkJjaENsSGFHT0RI?=
 =?utf-8?B?WlV3aDVpR0hQb2t1ZkZjMGFNRHNleW1WMWNsNmE1YzNhZEQyazFCMm80SlFF?=
 =?utf-8?B?MTJVSGloWk9XWGVXQktVa0MvN0ZwNzVXSFlYL2lFdWhtWjZpZDVwR1JRaDVt?=
 =?utf-8?B?Q0dhYUljWm9IQWQ1M2U1T1Vqamd0UGljMi82UmlNWlZDd0NDVmJBVGcrNDll?=
 =?utf-8?B?b2xQVzdhSEtPUWJtV1hZT3Q0VVNZRTUwbWxHaFhJdVJ6SEgwL215OFg0eUt4?=
 =?utf-8?B?cXBNbSt2UDg5OWZNSEVmUUVwZkhYZGNidXFJTlZFUktrOUwrbnlqTm1KM2Fy?=
 =?utf-8?B?Rzd6b1oxVXd4SSt5K1YyVUw2bWxTUkdWYmpaN2ZYRXVwVHJDaWtXNEp1RFZD?=
 =?utf-8?B?MW4yQVlnVnhDUFZNL3N0ZEVjSnY0bENBQzQvZGhmdUFSMGJwYStCRHRHVWNC?=
 =?utf-8?B?a0syYkJ3d000amNoRmo0dlpWZkJzM1c2UXhvRUEydWc2Y2cxK3hpV2paVHlu?=
 =?utf-8?B?Ti9xYlY5cGE4dFZHTkFtM2FEenJqeU9hdHZkUnl6aFduUW1hN3ZvNDVRdXRC?=
 =?utf-8?B?Sy9EckYxU1p4K3pKZVFaUXNxOEF5cy9JRU1PZVRlKy9CRlIwc2ZtQyt0c1Rn?=
 =?utf-8?B?YXhMOXpubS83RU9oUk9vZ3dtS0tYZy9lQkVvL2gzcG5ySkhQSFpCMWRHejhG?=
 =?utf-8?B?NlA0UTFEYXk2aHY3dVdHZ2R6ekFEbFNqNHVHV2FFOUp6SngyVmJTcitUc08x?=
 =?utf-8?B?UVcyZWdsNkRRMStNRG5wcUFBQzhqU0N2WmtRTm94ejZsWS8rMEY1V2puemlh?=
 =?utf-8?B?MkhZYXNtWkx3OGFUYVU5RFh4dEo5NEJwbmlTTklmUnF0Q00wckl6SjR6UDdK?=
 =?utf-8?B?M1NIclI4MDU5QzhKVDl0MkxlcHN6QmhYeVpabE5wQy9VSzV2OXVrbkM3TkpC?=
 =?utf-8?B?RnF3TzN5N1AwQS9yRllscHhxclZjd3JvZVdGR1ZVZzVINThPSGY0T1RtYU5L?=
 =?utf-8?B?UnhhaEZTelZZdXlRMFQrcXVGYzhYZzJqOFB3QVJxWmVIbWlLWUw3bVZlNFdO?=
 =?utf-8?B?VE9FbVlBbjA5ZnBiNUJNcU5ZSnhyVkNKN2FJd2hBSElvUCtXSytuNE4ycW9m?=
 =?utf-8?B?bnlWemN4M2ZsbTNjZW15a3dHWlc5UlpHUUdXRkhGMlhGZVdNT2ZIWjNVTDky?=
 =?utf-8?B?dHdvUmcvOVVERXVSYzZSNEFPOXhzY1NCM25mYzVlOFlCMDdGWlRIakZyc2RJ?=
 =?utf-8?B?NTVaV1d5WWJjcWRlNENRQXRFRUpyUXFxMUdwVmJLWXNzUCtsMUZXVjQrNnZy?=
 =?utf-8?B?aVVMdjVBdkZqa1hOT0Q2aVlIa09MR1hRZ3JWbWhGcFdYUDJ6eE8zcFpsbUpu?=
 =?utf-8?B?R2NDZDFPeXFDSDQ2eURFaGwyVGl4Y1VPa0dkZ0c3OG1kTEdVYW9oc0dCZjlo?=
 =?utf-8?B?aHpKa0hUVkYybjJhYkpGUU9LYWI2Q1p6SzdCNU1ab2VrUlhCQWsrY1ptVWgv?=
 =?utf-8?B?QVkrYk1VZ0RwS0hHeVBWNUF3YjNCeFBtd3Q3RFJTNVRyVW1vZ0FuOFhRS0NE?=
 =?utf-8?B?ODFoZ1dScGJQREFxbTlwd1ZzNHl0VmpKZEdzZityRWJTV1ppWWl1am14ODll?=
 =?utf-8?B?ZTdReGk5VTlFMldYL052MGU4YXlzWTR6S0ZTeGtGT1llV2k2S0lKMXZ0UnZD?=
 =?utf-8?B?UmRFMmFSc0dOY3dJTmNoK1l4emUyS25CeVk0WlhwTWFQR0pYNlNxWGc5Kys3?=
 =?utf-8?Q?LjpjHGmQTes84MWKWjvUD6o=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <AE7B8177124BC34CB31E54F46B26611A@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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 878e5625-245e-464b-7cce-08dde33a82d4
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Aug 2025 18:17:39.9001
 (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: u80jpn/Vpd3aHi0cgskn+w8RjZ+bXMljvls0RFRe8imjDoPAc07/aKWgDWv7cVMSHm0vdRUx6RVetTuHWNDcb1WdhPiiTmHAXymIbmC6q7c=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR03MB8094

DQpIaSBPbGVrc2FuZHIsDQoNClRoYW5rIHlvdSBmb3IgeW91ciByZXZpZXcgY29tbWVudHMuDQoN
Ck9uIDIzLjA4LjI1IDE3OjIzLCBPbGVrc2FuZHIgVHlzaGNoZW5rbyB3cm90ZToNCj4gW1lvdSBk
b24ndCBvZnRlbiBnZXQgZW1haWwgZnJvbSBvbGVrc3R5c2hAZ21haWwuY29tLiBMZWFybiB3aHkg
dGhpcyBpcyANCj4gaW1wb3J0YW50IGF0IGh0dHBzOi8vYWthLm1zL0xlYXJuQWJvdXRTZW5kZXJJ
ZGVudGlmaWNhdGlvbiBdDQo+IA0KPiBPbiAwNy4wOC4yNSAxNTozMywgTGVvbmlkIEtvbWFyaWFu
c2t5aSB3cm90ZToNCj4gDQo+IEhlbGxvIExlb25pZA0KPiANCj4gDQo+PiBJbnRyb2R1Y2VkIGFw
cHJvcHJpYXRlIHJlZ2lzdGVyIGRlZmluaXRpb25zLCBoZWxwZXIgbWFjcm9zLA0KPj4gYW5kIGlu
aXRpYWxpemF0aW9uIG9mIHJlcXVpcmVkIEdJQ3YzLjEgZGlzdHJpYnV0b3IgcmVnaXN0ZXJzDQo+
PiB0byBzdXBwb3J0IGVTUEkuIFRoaXMgdHlwZSBvZiBpbnRlcnJ1cHQgaXMgaGFuZGxlZCBpbiB0
aGUNCj4+IHNhbWUgd2F5IGFzIHJlZ3VsYXIgU1BJIGludGVycnVwdHMsIHdpdGggdGhlIGZvbGxv
d2luZw0KPj4gZGlmZmVyZW5jZXM6DQo+Pg0KPj4gMSkgZVNQSXMgY2FuIGhhdmUgdXAgdG8gMTAy
NCBpbnRlcnJ1cHRzLCBzdGFydGluZyBmcm9tIHRoZQ0KPj4gYmVnaW5uaW5nIG9mIHRoZSByYW5n
ZSwgd2hlcmVhcyByZWd1bGFyIFNQSXMgdXNlIElOVElEcyBmcm9tDQo+PiAzMiB0byAxMDE5LCB0
b3RhbGluZyA5ODggaW50ZXJydXB0czsNCj4+IDIpIGVTUElzIHN0YXJ0IGF0IElOVElEIDQwOTYs
IG5lY2Vzc2l0YXRpbmcgYWRkaXRpb25hbCBpbnRlcnJ1cHQNCj4+IGluZGV4IGNvbnZlcnNpb24g
ZHVyaW5nIHJlZ2lzdGVyIG9wZXJhdGlvbnMuDQo+Pg0KPj4gSW4gY2FzZSBpZiBhcHByb3ByaWF0
ZSBjb25maWcgaXMgZGlzYWJsZWQsIG9yIEdJQyBIVyBkb2Vzbid0DQo+PiBzdXBwb3J0IGVTUEks
IHRoZSBleGlzdGluZyBmdW5jdGlvbmFsaXR5IHdpbGwgcmVtYWluIHRoZSBzYW1lLg0KPj4NCj4+
IFNpZ25lZC1vZmYtYnk6IExlb25pZCBLb21hcmlhbnNreWkgPGxlb25pZF9rb21hcmlhbnNreWlA
ZXBhbS5jb20+DQo+Pg0KPj4gLS0tDQo+PiBDaGFuZ2VzIGluIFYyOg0KPj4gLSBtb3ZlIGdpY19u
dW1iZXJfZXNwaXMgZnVuY3Rpb24gZnJvbQ0KPj4gwqDCoCBbUEFUQ0ggMDgvMTBdIHhlbi9hcm06
IHZnaWM6IGFkZCByZXNvdXJjZSBtYW5hZ2VtZW50IGZvciBleHRlbmRlZCBTUElzDQo+PiDCoMKg
IHRvIHVzZSBpdCBpbiB0aGUgbmV3bHkgaW50cm9kdWNlZCBnaWNfaXNfdmFsaWRfZXNwaQ0KPj4g
LSBhZGQgZ2ljX2lzX3ZhbGlkX2VzcGkgd2hpY2ggY2hlY2tzIGlmIElSUSBudW1iZXIgaXMgaW4g
c3VwcG9ydGVkDQo+PiDCoMKgIGJ5IEhXIGVTUEkgcmFuZ2UNCj4+IC0gdXBkYXRlIGdpY19pc192
YWxpZF9pcnEgY29uZGl0aW9ucyB0byBhbGxvdyBvcGVyYXRpb25zIHdpdGggZVNQSXMNCj4+IC0t
LQ0KPj4gwqAgeGVuL2FyY2gvYXJtL2dpYy12My5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoCB8IDczICsrKysrKysrKysrKysrKysrKysrKysrKysrDQo+PiDCoCB4ZW4vYXJjaC9h
cm0vaW5jbHVkZS9hc20vZ2ljLmjCoMKgwqDCoMKgwqDCoMKgIHwgMTcgKysrKysrDQo+PiDCoCB4
ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vZ2ljX3YzX2RlZnMuaCB8IDMzICsrKysrKysrKysrKw0K
Pj4gwqAgMyBmaWxlcyBjaGFuZ2VkLCAxMjMgaW5zZXJ0aW9ucygrKQ0KPj4NCj4+IGRpZmYgLS1n
aXQgYS94ZW4vYXJjaC9hcm0vZ2ljLXYzLmMgYi94ZW4vYXJjaC9hcm0vZ2ljLXYzLmMNCj4+IGlu
ZGV4IDhmZDc4YWJhNDQuLmEwZThlZTFhMWUgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vYXJjaC9hcm0v
Z2ljLXYzLmMNCj4+ICsrKyBiL3hlbi9hcmNoL2FybS9naWMtdjMuYw0KPj4gQEAgLTQ4NSw2ICs0
ODUsMzYgQEAgc3RhdGljIHZvaWQgX19pb21lbSAqZ2V0X2FkZHJfYnlfb2Zmc2V0KHN0cnVjdCAN
Cj4+IGlycV9kZXNjICppcnFkLCB1MzIgb2Zmc2V0KQ0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGRl
ZmF1bHQ6DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBicmVhazsNCj4+IMKgwqDCoMKg
wqDCoMKgwqDCoCB9DQo+PiArI2lmZGVmIENPTkZJR19HSUNWM19FU1BJDQo+PiArwqDCoMKgIGNh
c2UgRVNQSV9CQVNFX0lOVElEIC4uLiBFU1BJX01BWF9JTlRJRDoNCj4+ICvCoMKgwqAgew0KPj4g
K8KgwqDCoMKgwqDCoMKgIHUzMiBpcnFfaW5kZXggPSBFU1BJX0lOVElEMklEWChpcnFkLT5pcnEp
Ow0KPj4gKw0KPj4gK8KgwqDCoMKgwqDCoMKgIHN3aXRjaCAoIG9mZnNldCApDQo+PiArwqDCoMKg
wqDCoMKgwqAgew0KPj4gK8KgwqDCoMKgwqDCoMKgIGNhc2UgR0lDRF9JU0VOQUJMRVI6DQo+PiAr
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gKEdJQ0QgKyBHSUNEX0lTRU5BQkxFUm5FICsg
KGlycV9pbmRleCAvIDMyKSAqIDQpOw0KPj4gK8KgwqDCoMKgwqDCoMKgIGNhc2UgR0lDRF9JQ0VO
QUJMRVI6DQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gKEdJQ0QgKyBHSUNEX0lD
RU5BQkxFUm5FICsgKGlycV9pbmRleCAvIDMyKSAqIDQpOw0KPj4gK8KgwqDCoMKgwqDCoMKgIGNh
c2UgR0lDRF9JU1BFTkRSOg0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIChHSUNE
ICsgR0lDRF9JU1BFTkRSbkUgKyAoaXJxX2luZGV4IC8gMzIpICogNCk7DQo+PiArwqDCoMKgwqDC
oMKgwqAgY2FzZSBHSUNEX0lDUEVORFI6DQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1
cm4gKEdJQ0QgKyBHSUNEX0lDUEVORFJuRSArIChpcnFfaW5kZXggLyAzMikgKiA0KTsNCj4+ICvC
oMKgwqDCoMKgwqDCoCBjYXNlIEdJQ0RfSVNBQ1RJVkVSOg0KPj4gK8KgwqDCoMKgwqDCoMKgwqDC
oMKgwqAgcmV0dXJuIChHSUNEICsgR0lDRF9JU0FDVElWRVJuRSArIChpcnFfaW5kZXggLyAzMikg
KiA0KTsNCj4+ICvCoMKgwqDCoMKgwqDCoCBjYXNlIEdJQ0RfSUNBQ1RJVkVSOg0KPj4gK8KgwqDC
oMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIChHSUNEICsgR0lDRF9JQ0FDVElWRVJuRSArIChpcnFf
aW5kZXggLyAzMikgKiA0KTsNCj4+ICvCoMKgwqDCoMKgwqDCoCBjYXNlIEdJQ0RfSUNGR1I6DQo+
PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gKEdJQ0QgKyBHSUNEX0lDRkdSbkUgKyAo
aXJxX2luZGV4IC8gMTYpICogNCk7DQo+PiArwqDCoMKgwqDCoMKgwqAgY2FzZSBHSUNEX0lST1VU
RVI6DQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gKEdJQ0QgKyBHSUNEX0lST1VU
RVJuRSArIGlycV9pbmRleCAqIDgpOw0KPj4gK8KgwqDCoMKgwqDCoMKgIGNhc2UgR0lDRF9JUFJJ
T1JJVFlSOg0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIChHSUNEICsgR0lDRF9J
UFJJT1JJVFlSbkUgKyBpcnFfaW5kZXgpOw0KPj4gK8KgwqDCoMKgwqDCoMKgIGRlZmF1bHQ6DQo+
PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBicmVhazsNCj4+ICvCoMKgwqDCoMKgwqDCoCB9DQo+
PiArwqDCoMKgIH0NCj4+ICsjZW5kaWYNCj4+IMKgwqDCoMKgwqAgZGVmYXVsdDoNCj4+IMKgwqDC
oMKgwqDCoMKgwqDCoCBicmVhazsNCj4+IMKgwqDCoMKgwqAgfQ0KPj4gQEAgLTY0NSw2ICs2NzUs
NDAgQEAgc3RhdGljIHZvaWQgZ2ljdjNfc2V0X2lycV9wcmlvcml0eShzdHJ1Y3QgDQo+PiBpcnFf
ZGVzYyAqZGVzYywNCj4+IMKgwqDCoMKgwqAgc3Bpbl91bmxvY2soJmdpY3YzLmxvY2spOw0KPj4g
wqAgfQ0KPj4NCj4+ICsjaWZkZWYgQ09ORklHX0dJQ1YzX0VTUEkNCj4+ICt1bnNpZ25lZCBpbnQg
Z2ljX251bWJlcl9lc3Bpcyh2b2lkKQ0KPj4gK3sNCj4+ICvCoMKgwqAgcmV0dXJuIGdpY19od19v
cHMtPmluZm8tPm5yX2VzcGk7DQo+PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyB2b2lkIGdpY3YzX2Rp
c3RfZXNwaV9jb21tb25faW5pdCh1aW50MzJfdCB0eXBlKQ0KPiANCj4gbWlzc2luZyBfX2luaXQg
Pw0KPiANCg0KWWVzLCBJIG1pc3NlZCB0aGlzLiBJIHdpbGwgYWRkIGl0IGluIFYzLg0KDQo+PiAr
ew0KPj4gK8KgwqDCoCB1bnNpZ25lZCBpbnQgZXNwaV9ucjsNCj4+ICvCoMKgwqAgaW50IGk7DQo+
IA0KPiBwbGVhc2UgdXNlIHVuc2lnbmVkIGludCBpZiAiaSIgY2Fubm90IGJlIG5lZ2F0aXZlDQo+
IA0KDQpTdXJlLCBJIHdpbGwgY2hhbmdlIGludCB0byB1bnNpZ25lZCBpbnQsIGJlY2F1c2UgaXQg
cmVhbGx5IGNhbm5vdCBiZSANCm5lZ2F0aXZlLg0KDQo+PiArDQo+PiArwqDCoMKgIGVzcGlfbnIg
PSBtaW4oMTAyNFUsIEdJQ0RfVFlQRVJfRVNQSVNfTlVNKHR5cGUpKTsNCj4+ICvCoMKgwqAgZ2lj
djNfaW5mby5ucl9lc3BpID0gZXNwaV9ucjsNCj4+ICvCoMKgwqAgLyogVGhlIEdJQyBIVyBkb2Vz
bid0IHN1cHBvcnQgZVNQSSwgc28gd2UgY2FuIGxlYXZlIGZyb20gaGVyZSAqLw0KPj4gK8KgwqDC
oCBpZiAoIGdpY3YzX2luZm8ubnJfZXNwaSA9PSAwICkNCj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1
cm47DQo+PiArDQo+PiArwqDCoMKgIGZvciAoIGkgPSAwOyBpIDwgZXNwaV9ucjsgaSArPSAxNiAp
DQo+PiArwqDCoMKgwqDCoMKgwqAgd3JpdGVsX3JlbGF4ZWQoMCwgR0lDRCArIEdJQ0RfSUNGR1Ju
RSArIChpIC8gMTYpICogNCk7DQo+PiArDQo+PiArwqDCoMKgIGZvciAoIGkgPSAwOyBpIDwgZXNw
aV9ucjsgaSArPSA0ICkNCj4+ICvCoMKgwqDCoMKgwqDCoCB3cml0ZWxfcmVsYXhlZChHSUNfUFJJ
X0lSUV9BTEwsIEdJQ0QgKyBHSUNEX0lQUklPUklUWVJuRSArIA0KPj4gKGkgLyA0KSAqIDQpOw0K
Pj4gKw0KPj4gK8KgwqDCoCBmb3IgKCBpID0gMDsgaSA8IGVzcGlfbnI7IGkgKz0gMzIgKQ0KPj4g
K8KgwqDCoCB7DQo+PiArwqDCoMKgwqDCoMKgwqAgd3JpdGVsX3JlbGF4ZWQoMHhmZmZmZmZmZlUs
IEdJQ0QgKyBHSUNEX0lDRU5BQkxFUm5FICsgKGkgLyANCj4+IDMyKSAqIDQpOw0KPj4gK8KgwqDC
oMKgwqDCoMKgIHdyaXRlbF9yZWxheGVkKDB4ZmZmZmZmZmZVLCBHSUNEICsgR0lDRF9JQ0FDVElW
RVJuRSArIChpIC8gDQo+PiAzMikgKiA0KTsNCj4+ICvCoMKgwqAgfQ0KPj4gKw0KPj4gK8KgwqDC
oCBmb3IgKCBpID0gMDsgaSA8IGVzcGlfbnI7IGkgKz0gMzIgKQ0KPj4gK8KgwqDCoMKgwqDCoMKg
IHdyaXRlbF9yZWxheGVkKEdFTk1BU0soMzEsIDApLCBHSUNEICsgR0lDRF9JR1JPVVBSbkUgKyAo
aSAvIA0KPj4gMzIpICogNCk7DQo+PiArfQ0KPj4gKyNlbmRpZg0KPj4gKw0KPj4gwqAgc3RhdGlj
IHZvaWQgX19pbml0IGdpY3YzX2Rpc3RfaW5pdCh2b2lkKQ0KPj4gwqAgew0KPj4gwqDCoMKgwqDC
oCB1aW50MzJfdCB0eXBlOw0KPj4gQEAgLTY5MCw2ICs3NTQsMTAgQEAgc3RhdGljIHZvaWQgX19p
bml0IGdpY3YzX2Rpc3RfaW5pdCh2b2lkKQ0KPj4gwqDCoMKgwqDCoCBmb3IgKCBpID0gTlJfR0lD
X0xPQ0FMX0lSUVM7IGkgPCBucl9saW5lczsgaSArPSAzMiApDQo+PiDCoMKgwqDCoMKgwqDCoMKg
wqAgd3JpdGVsX3JlbGF4ZWQoR0VOTUFTSygzMSwgMCksIEdJQ0QgKyBHSUNEX0lHUk9VUFIgKyAo
aSAvIA0KPj4gMzIpICogNCk7DQo+Pg0KPj4gKyNpZmRlZiBDT05GSUdfR0lDVjNfRVNQSQ0KPj4g
K8KgwqDCoCBnaWN2M19kaXN0X2VzcGlfY29tbW9uX2luaXQodHlwZSk7DQo+PiArI2VuZGlmDQo+
PiArDQo+PiDCoMKgwqDCoMKgIGdpY3YzX2Rpc3Rfd2FpdF9mb3JfcndwKCk7DQo+Pg0KPj4gwqDC
oMKgwqDCoCAvKiBUdXJuIG9uIHRoZSBkaXN0cmlidXRvciAqLw0KPj4gQEAgLTcwMyw2ICs3NzEs
MTEgQEAgc3RhdGljIHZvaWQgX19pbml0IGdpY3YzX2Rpc3RfaW5pdCh2b2lkKQ0KPj4NCj4+IMKg
wqDCoMKgwqAgZm9yICggaSA9IE5SX0dJQ19MT0NBTF9JUlFTOyBpIDwgbnJfbGluZXM7IGkrKyAp
DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgd3JpdGVxX3JlbGF4ZWRfbm9uX2F0b21pYyhhZmZpbml0
eSwgR0lDRCArIEdJQ0RfSVJPVVRFUiArIGkgDQo+PiAqIDgpOw0KPj4gKw0KPj4gKyNpZmRlZiBD
T05GSUdfR0lDVjNfRVNQSQ0KPj4gK8KgwqDCoCBmb3IgKCBpID0gMDsgaSA8IGdpY3YzX2luZm8u
bnJfZXNwaTsgaSsrICkNCj4+ICvCoMKgwqDCoMKgwqDCoCB3cml0ZXFfcmVsYXhlZF9ub25fYXRv
bWljKGFmZmluaXR5LCBHSUNEICsgR0lDRF9JUk9VVEVSbkUgKyBpIA0KPj4gKiA4KTsNCj4+ICsj
ZW5kaWYNCj4+IMKgIH0NCj4+DQo+PiDCoCBzdGF0aWMgaW50IGdpY3YzX2VuYWJsZV9yZWRpc3Qo
dm9pZCkNCj4gDQo+IA0KPiBbc25pcF0NCj4gDQoNCkJlc3QgcmVnYXJkcywNCkxlb25pZA==


From xen-devel-bounces@lists.xenproject.org Sun Aug 24 18:29:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 Aug 2025 18:29:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1092225.1448223 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqFSf-0005Vk-GL; Sun, 24 Aug 2025 18:29:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1092225.1448223; Sun, 24 Aug 2025 18: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 1uqFSf-0005Vd-DV; Sun, 24 Aug 2025 18:29:01 +0000
Received: by outflank-mailman (input) for mailman id 1092225;
 Sun, 24 Aug 2025 18:29:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9Bk9=3E=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1uqFSe-0005VX-Dj
 for xen-devel@lists.xenproject.org; Sun, 24 Aug 2025 18:29:00 +0000
Received: from GVXPR05CU001.outbound.protection.outlook.com
 (mail-swedencentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c202::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 32e1e1e4-8118-11f0-b898-0df219b8e170;
 Sun, 24 Aug 2025 20:28:58 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by PAVPR03MB8993.eurprd03.prod.outlook.com (2603:10a6:102:2fc::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Sun, 24 Aug
 2025 18:28:55 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Sun, 24 Aug 2025
 18:28: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>
X-Inumbo-ID: 32e1e1e4-8118-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=LQaEY4RLRNjtos1zOY7exWpQ4kxBM0LANpbbNgY5UxPDqD/oqPg8DE1OtyN60yXw5i8IkFD9UTcoRU9ypUGvZhfop0Ep66fzqn3GqVMRPUyb5mM7yfWZkR2k1wfpm4q7LbfsCWCYM+6WVVRVtNUUhDOjB2J+CEtyqR8FXZcPEqZTMSKjSsy9eXazz/bx/O9v4ZeZdXWqHuCGCWKV+XOZqpoid+7vnY42guxlol/j6ritLwo6rV+qKP465Z5FZM0rxUe/0/Eow0FsFUE8rt9wcTtn1VphSUGPaX1XZuYbaYFLlaR5uNS8djoupScEqjbc+XeruHtgFMWkRe20HZleJw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=sLDwJt0ZBCE6qBaSWX0tkQRed9HJqvvKr4oXt9HnMR4=;
 b=uv8NbhGP3YGPkiR0xM9JXlkVcs1nce8S/zNb46uJ9H1xc6MajE0ANkZ7uGSLCu2Vh4PBbaCiqN7lcN2ysUA6iHnB1XWJxSYWK9eK27Hu+Yqt8u9Huc/BL3cgxWfw8E73czF7dOngvvGhBtZfI+RQVcbRkrqwD7j2WthSE8KVMkASMLmRLW2jIlxLhxGSVatdzgrTQ5WeY7sP2eSppwNhI0BI/N9joG/gTLZOZX5IS+GVYm75vW5yDWXHuJgaMQLUT9Mv/E0rPzUZXhIDfw542JpLX3R3s5KpdtIm7fjc5bctolnM9/nPV+EUPPUAkxmZawuwZFiGN10u99Zg25IPGw==
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=sLDwJt0ZBCE6qBaSWX0tkQRed9HJqvvKr4oXt9HnMR4=;
 b=j8/WfziXSZridTr1LKYSc8sV/KWKR7PZkOgGQIFGrQHvtXvFdjdCwZXiq2BtnJRf/XdfOdKJUYXrxyR3FbtZqG8PMigZY/0ygo/V/K06QromRhFam4y+l+z77+eQCKxZs50AGU8YKVWZ9yKfkglE9Gd6VEQ4Sj4Tydst0a431myvdEuaMIvX0ObL+vpvh8KzIM5VGZb/GGaQJFKgSRA6YNk3l5z90HlRYMhZrvolfwUqk92WaJQmtOdD50vchKumDpHW2sJMeQpD22va1jC4QX9G+2SriBkdLYh5gpv+FrjRxq5kfkIROcLkkbCKc1PuKAgsZVhmH8VQsKceipgj+g==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: Oleksandr Tyshchenko <olekstysh@gmail.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel
	<michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v2 08/10] xen/arm: vgic: add resource management for
 extended SPIs
Thread-Topic: [PATCH v2 08/10] xen/arm: vgic: add resource management for
 extended SPIs
Thread-Index: AQHcB5d8BuZ0dq8rx0Owht+h5hVtIrRwaE6AgAHSZwA=
Date: Sun, 24 Aug 2025 18:28:55 +0000
Message-ID: <b1825ae5-4840-46ef-98f2-0d524f3ea672@epam.com>
References:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
 <fde65754a60a8cc090bb212749ec2c10877c4943.1754568795.git.leonid_komarianskyi@epam.com>
 <d22b3f56-1a2b-44b4-88b1-b70c7607c24d@gmail.com>
In-Reply-To: <d22b3f56-1a2b-44b4-88b1-b70c7607c24d@gmail.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: GV2PR03MB8678:EE_|PAVPR03MB8993:EE_
x-ms-office365-filtering-correlation-id: 613bb69f-53c9-4f7f-b754-08dde33c1557
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?UVI1UWxNMzhhcS9VOWY4dXpyU2wzY2M0ZGhmNVYwbmYvb3hHUXQyTUQxbjlK?=
 =?utf-8?B?NUNURUtlOHltZE1SZmJpaWtJTDFMQVVUYUxXU3lzdWs4Tm14eGJGOEtTZW1K?=
 =?utf-8?B?S2E0NUkzRk9TWDR1V0l6RGdwMm5veFpVczZXVTExRERhMGtpbmYzVlhLZGhN?=
 =?utf-8?B?MTV2ZXhmb3ArTlhiTXgwRUwzVDZ3VnZVU2hsZ2liVTNYV3pDRHF0NVlQUUY0?=
 =?utf-8?B?N3VTYzFLbDdhd3hMOUd6VlBsUlVDSE1PR1Fkc1VwTXQyWUlNQjVZN1RkS1VM?=
 =?utf-8?B?ZWg0WndBR3UyMFZDZCtMYzJBRlVQL1RETy9ZUDlrVW15dzFtbGgxai9vZVpQ?=
 =?utf-8?B?Ung3VHREWHFZOVJCRWxvRkt5VWw5L282emZpdFFpUmZEZklHODM2YmZGZWFw?=
 =?utf-8?B?dmZLK0ljN3E0SFI2R0JYOS9VWElFTmVVNEhCb29lY1BuUGRQVTJ4VXd0QU5k?=
 =?utf-8?B?UW9iZDJCcVh1UVk0Y2o4WkFaVUthQzVQZ3h4VFRoT2dWbFVrbXRscTlDUE5x?=
 =?utf-8?B?M0NWUVFCNnJBV0M0NFN6Slppa1B2N3FQSk5vQ1lYNUtUejZPS0pwbWNCQm9M?=
 =?utf-8?B?YnRTZ2dEWS83SXR2NGlmSUtOa1BBVU81UVFNSGVtK3Y4L28ybVRjTFlFbG1M?=
 =?utf-8?B?OFZLd2ZGV1RhcHRONzFTVHJISFpGOEdZYXNrN05XcGRpY25jUzY0QzFHencw?=
 =?utf-8?B?d2pJMFlKdEYxbDI3WTNCSVV2TUYwS2xKenVKOUhQdU9ob3hSbVdHdWJHV2xw?=
 =?utf-8?B?ODUxWTR4Um1uWGEvTHhOdHo3MU9JOVJmcEMrNGVrSXI2QjNQckM0eXJ4RkdY?=
 =?utf-8?B?YXdSR2ZqSTg5N3VQL04waTB6N0NPNjdCUDFiUDdqTzRoUjJFWnc3RUhEeldr?=
 =?utf-8?B?dVZESWdZemR6RTdqeGFvSUxuaVpyVmFGd1dBME5PNlc2WFROdTdla01oWS9R?=
 =?utf-8?B?b285VEplVzdNZStIWnU0aHlBS0VieTRnVWZhbms1T2k3S1VFbncyWWtla0lp?=
 =?utf-8?B?NHRCU3p3c2FPTkJTMVl4TnpxMzI2VVdkMUJBbEcydVk4cVlMelNDTnlNdzdF?=
 =?utf-8?B?MGlUZTJ5YnRNWWpjZnorNmdZQkw3STNYZ2hkMDhkTFRrR0tZd0o4ZWwwTk1J?=
 =?utf-8?B?TWZidXRjOVR4RDdpTDdrMTBmSU5qcDdlZUdSUTk1blJwclhHV2tpcUM0SWdz?=
 =?utf-8?B?WGRwNFVMMTVuN3NvNittT0Z1c2NpRlc0ZDJYZGpZcjR2RkZ3T0dkdnJrQkNy?=
 =?utf-8?B?NElraE40VTJPTE95L3QrZzZRMlNVUG80eDZMWDFyTFJjYnlrNXpveFVBRFB2?=
 =?utf-8?B?YXVnVjZrVVhaRFY2WlpsSEY5OFEyVS9ObVY4ZC9FWWsvaWk2eEJGQkRSQmZq?=
 =?utf-8?B?dkkrOG5zSmVTRkhibEhIQjJ2cWwvbGJERUIvYmRCcjRUUkVJS3JtYmZVblFp?=
 =?utf-8?B?VmUvR3ZHTHQyN3ExMnp4UEd0UzlWY2xHb0txWVV3eVh4eGwvNDQ0WFl0cFh6?=
 =?utf-8?B?YWJZK0lYUGV4dkFiL1VHVHVMdm9nbTNZYVhidXV4a2tzUmplM2VGYk1OV2U2?=
 =?utf-8?B?amVjZW91K3ZiTVl3VnVSRWc4SlpXUDA0dlZyU1hkdVhmR1JpamNUTFFySkls?=
 =?utf-8?B?QmQ1eEJHaUl3ZmlqeFpYalhqdGFMa21vTWFVVEtXZHYxcUg1aGc3eVFKSnFX?=
 =?utf-8?B?U2luL2RCNDl6ZjRoaXVuL0cvK3VXa0pDMkg0YVJXVWZjN0F3anhRaUE5M0dG?=
 =?utf-8?B?TlhLaXVOQnpzMHhpbE1xcnFmb0k4N1czS1RhMWQvQ1crV0JyRUloYTcxcEFn?=
 =?utf-8?B?dGhwSXFtZDhYZWN0NUZJK2lsWXRyUkIxUkg3L0V6UlovNTBYZEhucXM1UnBi?=
 =?utf-8?B?aTJGSEMzTXBaQ0Irc21mRG9xamRPY3lVRUo5WnRRSmFQd0d3QzBXTCtLRng0?=
 =?utf-8?B?OWJzN1RDbWRDdkdiZTh3STFDTUZxZE40Nk1jMU9qNi9IdzAveHB6MzdoWWFv?=
 =?utf-8?B?YkdrbTBrTkRnPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?QVorU2UrUmlGMFU4anVjSVZkK3RPNUVlRks1bUNoOGxCaUtlN0ozY1NUbkhQ?=
 =?utf-8?B?TmJ4U1d3cm5HeFVuRHp1YTc5ck5GNWlqV0tSWHFOYlZjUzlKeVJBRDFjODc5?=
 =?utf-8?B?OG5QdkM4eGdjdWIxNkJPamdrNE9IcmhnMFNBY0xmdXl1azl0NkZJTDBWbGV6?=
 =?utf-8?B?SGV1THY0OE9NMUtkRDNKa2VnNkZXamZLKzlZblVBTlkrT2ZSejB3WFVWbVlE?=
 =?utf-8?B?ZVJBUjMzdWZLS1dnS2VwZk5hUDFsU2o2a3NMT2g0WnZaRlU4QzBkZ1dwWUsw?=
 =?utf-8?B?R0hhVDBnZWkwbG5yelczSnYyb0ZGZ1lpV3BPU3hPRDNoek5wc0ErbmtXY1Nj?=
 =?utf-8?B?Q1BJVG1wYnM2R1Rvb05rL1ZzSkxabG84aUVMa1U2UWp3TzM2WTFsY2lNdTN3?=
 =?utf-8?B?b0JLdGFWV2dFV0wxSFZza1lxY2hqVkZwMzNFcVlOQkdzU2wyMVkwQlZzUU4y?=
 =?utf-8?B?emR2Z1hCV042OW1MZnUyWkw3UDNZWnFIcUFxVWRORUlDVytFbC9NR2s2bTVT?=
 =?utf-8?B?bVg5akk4b0U2V05NR0EvWXlHclh5V00wbHhkcWR2WFhVWVdET1Y3TkJDQVFy?=
 =?utf-8?B?RzdSYlZObDgzT2RJSEoxWGk0YnZnaUlwQlgwbWYwTU5lbHdKWHRMQzdTd0hx?=
 =?utf-8?B?UmVoK3VzRi9XMndWaE1xdEhWNk5GTXBQTzFEM3pHaUZhMDNjMGlVdENIYlNR?=
 =?utf-8?B?dEJWMUtod2VYMm00WVZDdFhGZlNxamhMZ1hyeHM0U2Z5R0tVUWZQVFF3WFVn?=
 =?utf-8?B?c28rSk9KRmM4dCtqQjZzNFkzRll5UjgwN1hwcnZLcm56NjJ0d3R6QnRxVlQ1?=
 =?utf-8?B?VXFZdnhNWXhaOTBWNGhSOWJSME53OEVLRi9wMFZCT21tMkZaN3Q5ZzNTeUNH?=
 =?utf-8?B?WUxrUXBQQis1dG9xeC90NXFBTzJBYlk1U3ZQT3NXbEFETG1FOVZOb09HTDQw?=
 =?utf-8?B?TmpZb2Z5eGJFWG9yeG1PZzhqamNiZnpJOTNkYnlkbFFVT0JCV0VuN1pXWHpO?=
 =?utf-8?B?Qmo5WHVpVC9CVWNIYnZTMlU5bVA3RkZMbkZlNTRRRGpTcVIxMmdOV3NwSG9n?=
 =?utf-8?B?SzVuUW42alVBZm9QQndjTHN2c3FRZEc2L0ZxZ1pPT0l4Z01lZXpkV211WC9F?=
 =?utf-8?B?Qld4cTdKUzVYY0x2eTNWNEVLYmQ0UlRqdjRyUWNBM0U3ZHNaSTQxekpQRHNT?=
 =?utf-8?B?OFJIZDFSek8rMEFZQ3lUanN3MmJQS2xDWTVJOGNpWHBEbXhVOGpONXk3aWdS?=
 =?utf-8?B?NnByL1Mvb294Ly9NNzZyUVVzdnYwSExtYk41Z3UyZE0xbm5FMW1mUldKUXdW?=
 =?utf-8?B?QWZQNWg0QUx5TUlBdlZSYTdqeE42WGhTL1FVRjVSRHRpcXowVEIvSnpvaXFU?=
 =?utf-8?B?cngxaEs0MWhKRS8zVXVYbnpQSGhUeWpJY00vNUQ4SHM2MWlsN1lPekdKVkli?=
 =?utf-8?B?QlVRMTU1MkR1dWpNdzNoUllDQkwxRXNidS8rK296MlAySFVrVmJsM3BoU000?=
 =?utf-8?B?dnZTUlFTeHhDaWtRQ2RoT1B6dm9qdUtYb3l0NVFWTTc2eU5RY2pNWER3aU9X?=
 =?utf-8?B?S3RqZUhHZ1doSVRjMVY0ckpkM1RUVFBaZ2NRbFRQa1BXdGhUNFdkRzh3Qmdq?=
 =?utf-8?B?WDJJRmMyZU84ZCsrcXZDQ3RtazRDU0VSWE90cEdCVHdDRDVXRGszOGpoWEZX?=
 =?utf-8?B?VzllNFdLSGpOdFhHOVkwdlpiSjJiMXVwT2psY2prdWlCVnNRNWVUUVJNd1ZH?=
 =?utf-8?B?dUdNYTBKWDM0QXFxSTVlRkdKNmptOWxyalZPcm1mdnNldmVnZnJwNDhkem1p?=
 =?utf-8?B?VDNZWFV6cWVzWUpRQ2s4LzBoRy9pWjhzRXhGUGFCN004d052TmlOMGJXdUsy?=
 =?utf-8?B?TGRCTzV6ejgybDlyT0VXamZYeVZOb3VOcVNlZGRNVUk4b3hFVGNmQjFpY1JS?=
 =?utf-8?B?TXpteFhhVlV3a2JhUVEyeDcrK0Y0VVhnVDNsWWw0R05rRy9XdEszT0tJZ0ps?=
 =?utf-8?B?SklEQnc2UTV6eUgxZW8rZUxVNVhHMVhXbk1CN3UvNmk0MUlzMFdwNGxlRW4r?=
 =?utf-8?B?UlBQbzl1S3NOV0ZyQStSSFdGR0hsYXVWNDJEekFiVGM5VXo2RHFuRCs0amFE?=
 =?utf-8?B?dXQvZUVORjdqcm9yUGZGeHdpRHRWNjJhTGlVK2s5QWtCSDlFUkFEMmJWT0lC?=
 =?utf-8?Q?nNePdMuuFpDoajVoEVr/OfM=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <EC1A4F6B2D207846B56272BF57F6DD66@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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 613bb69f-53c9-4f7f-b754-08dde33c1557
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Aug 2025 18:28:55.1973
 (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: JvTWmrrlSCGxB91DJtL1xcokth2qbp+MZfrr7TcgK8+DnKoabwVnc3vi1mNFYBTj1AG30+TLF7mAjyXJ6H19ImsPlYQgsE5TU/cVlx3jsLk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR03MB8993

SGVsbG8gT2xla3NhbmRyLA0KDQpUaGFuayB5b3UgZm9yIHlvdXIgY2xvc2UgcmV2aWV3Lg0KDQpP
biAyMy4wOC4yNSAxNzozOSwgT2xla3NhbmRyIFR5c2hjaGVua28gd3JvdGU6DQo+IA0KPiANCj4g
T24gMDcuMDguMjUgMTU6MzMsIExlb25pZCBLb21hcmlhbnNreWkgd3JvdGU6DQo+IA0KPiANCj4g
SGVsbG8gTGVvbmlkDQo+IA0KPj4gVGhpcyBjaGFuZ2UgaW50cm9kdWNlcyByZXNvdXJjZSBtYW5h
Z2VtZW50IGluIHRoZSBWR0lDIHRvIGhhbmRsZQ0KPj4gZXh0ZW5kZWQgU1BJcyBpbnRyb2R1Y2Vk
IGluIEdJQ3YzLjEuIFRoZSBwZW5kaW5nX2lycXMgYW5kDQo+PiBhbGxvY2F0ZWRfaXJxcyBhcnJh
eXMgYXJlIHJlc2l6ZWQgdG8gc3VwcG9ydCB0aGUgcmVxdWlyZWQNCj4+IG51bWJlciBvZiBlU1BJ
cywgYmFzZWQgb24gd2hhdCBpcyBzdXBwb3J0ZWQgYnkgdGhlIGhhcmR3YXJlIGFuZA0KPj4gcmVx
dWVzdGVkIGJ5IHRoZSBndWVzdC4gQSBuZXcgZmllbGQsIGV4dF9zaGFyZWRfaXJxcywgaXMgYWRk
ZWQNCj4+IHRvIHRoZSBWR0lDIHN0cnVjdHVyZSB0byBzdG9yZSBpbmZvcm1hdGlvbiBhYm91dCBl
U1BJcywgc2ltaWxhcg0KPj4gdG8gaG93IHNoYXJlZF9pcnFzIGlzIHVzZWQgZm9yIHJlZ3VsYXIg
U1BJcy4NCj4+DQo+PiBTaW5jZSB0aGUgZVNQSSByYW5nZSBzdGFydHMgYXQgSU5USUQgNDA5NiBh
bmQgSU5USURzIGJldHdlZW4gMTAyNQ0KPj4gYW5kIDQwOTUgYXJlIHJlc2VydmVkLCBoZWxwZXIg
bWFjcm9zIGFyZSBpbnRyb2R1Y2VkIHRvIHNpbXBsaWZ5IHRoZQ0KPj4gdHJhbnNmb3JtYXRpb24g
b2YgaW5kaWNlcyBhbmQgdG8gZW5hYmxlIGVhc2llciBhY2Nlc3MgdG8gZVNQSS1zcGVjaWZpYw0K
Pj4gcmVzb3VyY2VzLiBUaGVzZSBjaGFuZ2VzIHByZXBhcmUgdGhlIFZHSUMgZm9yIHByb2Nlc3Np
bmcgZVNQSXMgYXMNCj4+IHJlcXVpcmVkIGJ5IGZ1dHVyZSBmdW5jdGlvbmFsaXR5Lg0KPj4NCj4+
IFRoZSBpbml0aWFsaXphdGlvbiBhbmQgZGVpbml0aWFsaXphdGlvbiBwYXRocyBmb3IgdmdpYyBo
YXZlIGJlZW4gdXBkYXRlZA0KPj4gdG8gYWxsb2NhdGUgYW5kIGZyZWUgdGhlc2UgcmVzb3VyY2Vz
IGFwcHJvcHJpYXRlbHkuIEFkZGl0aW9uYWxseSwNCj4+IHVwZGF0ZWQgaGFuZGxpbmcgb2YgSU5U
SURzIGdyZWF0ZXIgdGhhbiAxMDI0LCBwYXNzZWQgZnJvbSB0aGUgdG9vbHN0YWNrDQo+PiBkdXJp
bmcgZG9tYWluIGNyZWF0aW9uLCBhbmQgdmVyaWZpY2F0aW9uIGxvZ2ljIGVuc3VyZXMgb25seSB2
YWxpZCBTUEkgb3INCj4+IGVTUEkgSU5USURzIGFyZSB1c2VkLg0KPj4NCj4+IFRoZSBleGlzdGlu
ZyBTUEkgYmVoYXZpb3IgcmVtYWlucyB1bmFmZmVjdGVkIHdoZW4gZ3Vlc3RzIGRvIG5vdCByZXF1
ZXN0DQo+PiBlU1BJcywgR0lDIGhhcmR3YXJlIGRvZXMgbm90IHN1cHBvcnQgdGhlbSwgb3IgdGhl
IENPTkZJR19HSUNWM19FU1BJDQo+PiBvcHRpb24gaXMgZGlzYWJsZWQuDQo+Pg0KPj4gU2lnbmVk
LW9mZi1ieTogTGVvbmlkIEtvbWFyaWFuc2t5aSA8bGVvbmlkX2tvbWFyaWFuc2t5aUBlcGFtLmNv
bT4NCj4+DQo+PiAtLS0NCj4+IENoYW5nZXMgaW4gVjI6DQo+PiAtIGNoYW5nZSBpc19lc3BpX3Jh
bmsgdG8gaXNfdmFsaWRfZXNwaV9yYW5rIHRvIHZlcmlmeSB3aGV0aGVyIHRoZSBhcnJheQ0KPj4g
wqDCoCBlbGVtZW50IGV4dF9zaGFyZWRfaXJxcyBleGlzdHMuIFRoZSBwcmV2aW91cyB2ZXJzaW9u
LCBpc19lc3BpX3JhbmssDQo+PiDCoMKgIG9ubHkgY2hlY2tlZCBpZiB0aGUgcmFuayBpbmRleCB3
YXMgbGVzcyB0aGFuIHRoZSBtYXhpbXVtIHBvc3NpYmxlIGVTUEkNCj4+IMKgwqAgcmFuayBpbmRl
eCwgYnV0IHRoaXMgY291bGQgcG90ZW50aWFsbHkgcmVzdWx0IGluIGFjY2Vzc2luZyBhDQo+PiDC
oMKgIG5vbi1leGlzdGluZyBhcnJheSBlbGVtZW50LiBUbyBhZGRyZXNzIHRoaXMsIGlzX3ZhbGlk
X2VzcGlfcmFuayB3YXMNCj4+IMKgwqAgaW50cm9kdWNlZCwgd2hpY2ggZW5zdXJlcyB0aGF0IHRo
ZSByZXF1aXJlZCBlU1BJIHJhbmsgZXhpc3RzDQo+PiAtIG1vdmUgZ2ljX251bWJlcl9lc3BpcyB0
bw0KPj4gwqDCoCB4ZW4vYXJtOiBnaWN2MzogaW1wbGVtZW50IGhhbmRsaW5nIG9mIEdJQ3YzLjEg
ZVNQSQ0KPj4gLSB1cGRhdGUgdmdpY19pc192YWxpZF9pcnEgY2hlY2tzIHRvIGFsbG93IG9wZXJh
dGluZyB3aXRoIGVTUElzDQo+PiAtIHJlbW92ZSByZWR1bmRhbnQgbmV3bGluZSBpbiB2Z2ljX2Fs
bG9jYXRlX3ZpcnENCj4+IC0tLQ0KPj4gwqAgeGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3ZnaWMu
aCB8wqAgMTggKysrKw0KPj4gwqAgeGVuL2FyY2gvYXJtL3ZnaWMuY8KgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoCB8IDE0NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPj4gwqAgMiBm
aWxlcyBjaGFuZ2VkLCAxNjMgaW5zZXJ0aW9ucygrKQ0KPj4NCj4+IGRpZmYgLS1naXQgYS94ZW4v
YXJjaC9hcm0vaW5jbHVkZS9hc20vdmdpYy5oIGIveGVuL2FyY2gvYXJtL2luY2x1ZGUvIA0KPj4g
YXNtL3ZnaWMuaA0KPj4gaW5kZXggNDUyMDFmNGNhNS4uOWZhNDUyMzAxOCAxMDA2NDQNCj4+IC0t
LSBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS92Z2ljLmgNCj4+ICsrKyBiL3hlbi9hcmNoL2Fy
bS9pbmNsdWRlL2FzbS92Z2ljLmgNCj4+IEBAIC0xNDYsNiArMTQ2LDEwIEBAIHN0cnVjdCB2Z2lj
X2Rpc3Qgew0KPj4gwqDCoMKgwqDCoCBpbnQgbnJfc3BpczsgLyogTnVtYmVyIG9mIFNQSXMgKi8N
Cj4+IMKgwqDCoMKgwqAgdW5zaWduZWQgbG9uZyAqYWxsb2NhdGVkX2lycXM7IC8qIGJpdG1hcCBv
ZiBJUlFzIGFsbG9jYXRlZCAqLw0KPj4gwqDCoMKgwqDCoCBzdHJ1Y3QgdmdpY19pcnFfcmFuayAq
c2hhcmVkX2lycXM7DQo+PiArI2lmZGVmIENPTkZJR19HSUNWM19FU1BJDQo+PiArwqDCoMKgIHN0
cnVjdCB2Z2ljX2lycV9yYW5rICpleHRfc2hhcmVkX2lycXM7DQo+PiArwqDCoMKgIGludCBucl9l
c3BpczsgLyogTnVtYmVyIG9mIGV4dGVuZGVkIFNQSXMgKi8NCj4+ICsjZW5kaWYNCj4+IMKgwqDC
oMKgwqAgLyoNCj4+IMKgwqDCoMKgwqDCoCAqIFNQSXMgYXJlIGRvbWFpbiBnbG9iYWwsIFNHSXMg
YW5kIFBQSXMgYXJlIHBlci1WQ1BVIGFuZCBzdG9yZWQgaW4NCj4+IMKgwqDCoMKgwqDCoCAqIHN0
cnVjdCBhcmNoX3ZjcHUuDQo+PiBAQCAtMjQzLDYgKzI0NywxNCBAQCBzdHJ1Y3QgdmdpY19vcHMg
ew0KPj4gwqAgLyogTnVtYmVyIG9mIHJhbmtzIG9mIGludGVycnVwdCByZWdpc3RlcnMgZm9yIGEg
ZG9tYWluICovDQo+PiDCoCAjZGVmaW5lIERPTUFJTl9OUl9SQU5LUyhkKSAoKChkKS0+YXJjaC52
Z2ljLm5yX3NwaXMrMzEpLzMyKQ0KPj4gKyNpZmRlZiBDT05GSUdfR0lDVjNfRVNQSQ0KPj4gKyNk
ZWZpbmUgRE9NQUlOX05SX0VYVF9SQU5LUyhkKSAoKChkKS0+YXJjaC52Z2ljLm5yX2VzcGlzKzMx
KS8zMikNCj4+ICsjZGVmaW5lIEVYVF9SQU5LX01JTiAoRVNQSV9CQVNFX0lOVElELzMyKQ0KPj4g
KyNkZWZpbmUgRVhUX1JBTktfTUFYICgoRVNQSV9NQVhfSU5USUQrMzEpLzMyKQ0KPj4gKyNkZWZp
bmUgRVhUX1JBTktfTlVNMklEWChudW0pICgobnVtKS1FWFRfUkFOS19NSU4pDQo+PiArI2RlZmlu
ZSBFWFRfUkFOS19JRFgyTlVNKGlkeCkgKChpZHgpK0VYVF9SQU5LX01JTikNCj4+ICsjZW5kaWYN
Cj4+ICsNCj4+IMKgICNkZWZpbmUgdmdpY19sb2NrKHYpwqDCoCBzcGluX2xvY2tfaXJxKCYodikt
PmRvbWFpbi0+YXJjaC52Z2ljLmxvY2spDQo+PiDCoCAjZGVmaW5lIHZnaWNfdW5sb2NrKHYpIHNw
aW5fdW5sb2NrX2lycSgmKHYpLT5kb21haW4tPmFyY2gudmdpYy5sb2NrKQ0KPj4gQEAgLTMwMiw2
ICszMTQsMTIgQEAgZXh0ZXJuIHN0cnVjdCB2Z2ljX2lycV9yYW5rIA0KPj4gKnZnaWNfcmFua19v
ZmZzZXQoc3RydWN0IHZjcHUgKnYsDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgIHVuc2lnbmVkIGludCBiLA0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoCB1bnNpZ25lZCBpbnQgbiwNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqAgdW5zaWduZWQgaW50IHMpOw0KPj4gKyNpZmRlZiBDT05GSUdfR0lDVjNfRVNQSQ0K
Pj4gK2V4dGVybiBzdHJ1Y3QgdmdpY19pcnFfcmFuayAqdmdpY19leHRfcmFua19vZmZzZXQoc3Ry
dWN0IHZjcHUgKnYsDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqAgdW5zaWduZWQgaW50IGIsDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqAgdW5zaWduZWQgaW50IG4sDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqAgdW5zaWduZWQgaW50IHMpOw0KPj4gKyNlbmRpZg0KPj4gwqAgZXh0ZXJu
IHN0cnVjdCB2Z2ljX2lycV9yYW5rICp2Z2ljX3JhbmtfaXJxKHN0cnVjdCB2Y3B1ICp2LCB1bnNp
Z25lZCANCj4+IGludCBpcnEpOw0KPj4gwqAgZXh0ZXJuIHZvaWQgdmdpY19kaXNhYmxlX2lycXMo
c3RydWN0IHZjcHUgKnYsIHVpbnQzMl90IHIsIHVuc2lnbmVkIA0KPj4gaW50IG4pOw0KPj4gwqAg
ZXh0ZXJuIHZvaWQgdmdpY19lbmFibGVfaXJxcyhzdHJ1Y3QgdmNwdSAqdiwgdWludDMyX3Qgciwg
dW5zaWduZWQgDQo+PiBpbnQgbik7DQo+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3ZnaWMu
YyBiL3hlbi9hcmNoL2FybS92Z2ljLmMNCj4+IGluZGV4IDQ4ZmJhZjU2ZmIuLjFhNmM3NjVhZjkg
MTAwNjQ0DQo+PiAtLS0gYS94ZW4vYXJjaC9hcm0vdmdpYy5jDQo+PiArKysgYi94ZW4vYXJjaC9h
cm0vdmdpYy5jDQo+PiBAQCAtMjcsOSArMjcsMjYgQEANCj4+IMKgIGJvb2wgdmdpY19pc192YWxp
ZF9pcnEoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IHZpcnEpDQo+PiDCoCB7DQo+PiAr
I2lmZGVmIENPTkZJR19HSUNWM19FU1BJDQo+PiArwqDCoMKgIGlmICggdmlycSA+PSBFU1BJX0JB
U0VfSU5USUQgJiYgdmlycSA8IEVTUElfSURYMklOVElEKGQtIA0KPj4gPmFyY2gudmdpYy5ucl9l
c3BpcykgKQ0KPj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiB0cnVlOw0KPj4gKyNlbmRpZg0KPj4g
Kw0KPj4gwqDCoMKgwqDCoCByZXR1cm4gdmlycSA8IHZnaWNfbnVtX2lycXMoZCk7DQo+PiDCoCB9
DQo+PiArI2lmZGVmIENPTkZJR19HSUNWM19FU1BJDQo+PiArLyoNCj4+ICsgKiBTaW5jZSBlU1BJ
IGluZGV4ZXMgc3RhcnQgZnJvbSA0MDk2IGFuZCBudW1iZXJzIGZyb20gMTAyNCB0bw0KPj4gKyAq
IDQwOTUgYXJlIGZvcmJpZGRlbiwgd2UgbmVlZCB0byBjaGVjayBib3RoIGxvd2VyIGFuZCB1cHBl
cg0KPj4gKyAqIGxpbWl0cyBmb3IgcmFua3MuDQo+PiArICovDQo+PiArc3RhdGljIGlubGluZSBi
b29sIGlzX3ZhbGlkX2VzcGlfcmFuayhzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgDQo+
PiByYW5rKQ0KPj4gK3sNCj4+ICvCoMKgwqAgcmV0dXJuICggcmFuayA+PSBFWFRfUkFOS19NSU4g
JiYgRVhUX1JBTktfTlVNMklEWChyYW5rKSA8IA0KPj4gRE9NQUlOX05SX0VYVF9SQU5LUyhkKSAp
Ow0KPj4gK30NCj4+ICsjZW5kaWYNCj4+ICsNCj4+IMKgIHN0YXRpYyBpbmxpbmUgc3RydWN0IHZn
aWNfaXJxX3JhbmsgKnZnaWNfZ2V0X3Jhbmsoc3RydWN0IHZjcHUgKnYsDQo+PiDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdW5zaWduZWQgaW50IHJhbmspDQo+
PiDCoCB7DQo+PiBAQCAtMzcsNiArNTQsMTAgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgdmdpY19p
cnFfcmFuayANCj4+ICp2Z2ljX2dldF9yYW5rKHN0cnVjdCB2Y3B1ICp2LA0KPj4gwqDCoMKgwqDC
oMKgwqDCoMKgIHJldHVybiB2LT5hcmNoLnZnaWMucHJpdmF0ZV9pcnFzOw0KPj4gwqDCoMKgwqDC
oCBlbHNlIGlmICggcmFuayA8PSBET01BSU5fTlJfUkFOS1Modi0+ZG9tYWluKSApDQo+PiDCoMKg
wqDCoMKgwqDCoMKgwqAgcmV0dXJuICZ2LT5kb21haW4tPmFyY2gudmdpYy5zaGFyZWRfaXJxc1ty
YW5rIC0gMV07DQo+PiArI2lmZGVmIENPTkZJR19HSUNWM19FU1BJDQo+PiArwqDCoMKgIGVsc2Ug
aWYgKCBpc192YWxpZF9lc3BpX3Jhbmsodi0+ZG9tYWluLCByYW5rKSApDQo+PiArwqDCoMKgwqDC
oMKgwqAgcmV0dXJuICZ2LT5kb21haW4tIA0KPj4gPmFyY2gudmdpYy5leHRfc2hhcmVkX2lycXNb
RVhUX1JBTktfTlVNMklEWChyYW5rKV07DQo+PiArI2VuZGlmDQo+PiDCoMKgwqDCoMKgIGVsc2UN
Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gTlVMTDsNCj4+IMKgIH0NCj4+IEBAIC01Myw2
ICs3NCwxNiBAQCBzdHJ1Y3QgdmdpY19pcnFfcmFuayAqdmdpY19yYW5rX29mZnNldChzdHJ1Y3Qg
dmNwdSANCj4+ICp2LCB1bnNpZ25lZCBpbnQgYiwNCj4+IMKgwqDCoMKgwqAgcmV0dXJuIHZnaWNf
Z2V0X3JhbmsodiwgcmFuayk7DQo+PiDCoCB9DQo+PiArI2lmZGVmIENPTkZJR19HSUNWM19FU1BJ
DQo+PiArc3RydWN0IHZnaWNfaXJxX3JhbmsgKnZnaWNfZXh0X3Jhbmtfb2Zmc2V0KHN0cnVjdCB2
Y3B1ICp2LCB1bnNpZ25lZCANCj4+IGludCBiLA0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoCB1bnNpZ25lZCBpbnQgbiwgdW5zaWduZWQgDQo+PiBpbnQgcykNCj4+ICt7DQo+PiArwqDC
oMKgIHVuc2lnbmVkIGludCByYW5rID0gUkVHX1JBTktfTlIoYiwgKG4gPj4gcykpOw0KPj4gKw0K
Pj4gK8KgwqDCoCByZXR1cm4gdmdpY19nZXRfcmFuayh2LCByYW5rICsgRVhUX1JBTktfTUlOKTsN
Cj4+ICt9DQo+PiArI2VuZGlmDQo+PiArDQo+PiDCoCBzdHJ1Y3QgdmdpY19pcnFfcmFuayAqdmdp
Y19yYW5rX2lycShzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgaW50IGlycSkNCj4+IMKgIHsNCj4+
IMKgwqDCoMKgwqAgdW5zaWduZWQgaW50IHJhbmsgPSBpcnEgLyAzMjsNCj4+IEBAIC0xMTcsNiAr
MTQ4LDI5IEBAIGludCBkb21haW5fdmdpY19yZWdpc3RlcihzdHJ1Y3QgZG9tYWluICpkLCANCj4+
IHVuc2lnbmVkIGludCAqbW1pb19jb3VudCkNCj4+IMKgwqDCoMKgwqAgcmV0dXJuIDA7DQo+PiDC
oCB9DQo+PiArI2lmZGVmIENPTkZJR19HSUNWM19FU1BJDQo+PiArc3RhdGljIGludCBpbml0X3Zn
aWNfZXNwaShzdHJ1Y3QgZG9tYWluICpkKQ0KPj4gK3sNCj4+ICvCoMKgwqAgaW50IGk7DQo+IA0K
PiBwbGVhc2UgdXNlIHVuc2lnbmVkIGludCBpZiAiaSIgY2Fubm90IGJlIG5lZ2F0aXZlDQo+IA0K
DQpTdXJlLCBJIHdpbGwgY2hhbmdlIHRoZSB0eXBlIHRvIHVuc2lnbmVkIGludCBpbiBWMy4NCg0K
Pj4gKw0KPj4gK8KgwqDCoCBpZiAoIGQtPmFyY2gudmdpYy5ucl9lc3BpcyA9PSAwICkNCj4+ICvC
oMKgwqDCoMKgwqDCoCByZXR1cm4gMDsNCj4+ICsNCj4+ICvCoMKgwqAgZC0+YXJjaC52Z2ljLmV4
dF9zaGFyZWRfaXJxcyA9DQo+PiArwqDCoMKgwqDCoMKgwqAgeHphbGxvY19hcnJheShzdHJ1Y3Qg
dmdpY19pcnFfcmFuaywgRE9NQUlOX05SX0VYVF9SQU5LUyhkKSk7DQo+PiArwqDCoMKgIGlmICgg
ZC0+YXJjaC52Z2ljLmV4dF9zaGFyZWRfaXJxcyA9PSBOVUxMICkNCj4+ICvCoMKgwqDCoMKgwqDC
oCByZXR1cm4gLUVOT01FTTsNCj4+ICsNCj4+ICvCoMKgwqAgZm9yICggaSA9IDA7IGkgPCBkLT5h
cmNoLnZnaWMubnJfZXNwaXM7IGkrKyApDQo+PiArwqDCoMKgwqDCoMKgwqAgdmdpY19pbml0X3Bl
bmRpbmdfaXJxKCZkLT5hcmNoLnZnaWMucGVuZGluZ19pcnFzW2kgKyBkLSANCj4+ID5hcmNoLnZn
aWMubnJfc3Bpc10sIEVTUElfSURYMklOVElEKGkpKTsNCj4+ICsNCj4+ICvCoMKgwqAgZm9yICgg
aSA9IDA7IGkgPCBET01BSU5fTlJfRVhUX1JBTktTKGQpOyBpKysgKQ0KPj4gK8KgwqDCoMKgwqDC
oMKgIHZnaWNfcmFua19pbml0KCZkLT5hcmNoLnZnaWMuZXh0X3NoYXJlZF9pcnFzW2ldLCBpLCAw
KTsNCj4+ICsNCj4+ICvCoMKgwqAgcmV0dXJuIDA7DQo+PiArfQ0KPj4gKyNlbmRpZg0KPj4gKw0K
Pj4gwqAgaW50IGRvbWFpbl92Z2ljX2luaXQoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50
IG5yX3NwaXMpDQo+PiDCoCB7DQo+PiDCoMKgwqDCoMKgIGludCBpOw0KPj4gQEAgLTEzMSw2ICsx
ODUsMzAgQEAgaW50IGRvbWFpbl92Z2ljX2luaXQoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQg
DQo+PiBpbnQgbnJfc3BpcykNCj4+IMKgwqDCoMKgwqDCoCAqLw0KPj4gwqDCoMKgwqDCoCBucl9z
cGlzID0gUk9VTkRVUChucl9zcGlzLCAzMik7DQo+PiArI2lmZGVmIENPTkZJR19HSUNWM19FU1BJ
DQo+PiArwqDCoMKgIGlmICggbnJfc3BpcyA+IEVTUElfTUFYX0lOVElEICkNCj4+ICvCoMKgwqDC
oMKgwqDCoCByZXR1cm4gLUVJTlZBTDsNCj4+ICsNCj4+ICvCoMKgwqAgaWYgKCBpc19lc3BpKG5y
X3NwaXMpICkNCj4+ICvCoMKgwqAgew0KPj4gK8KgwqDCoMKgwqDCoMKgIC8qDQo+PiArwqDCoMKg
wqDCoMKgwqDCoCAqIER1cmluZyBkb21haW4gY3JlYXRpb24sIHRoZSB0b29sc3RhY2sgc3BlY2lm
aWVzIHRoZSANCj4+IG1heGltdW0gSU5USUQsDQo+IA0KPiBkb21haW5fdmdpY19pbml0KCkgaXMg
YWxzbyBjYWxsZWQgZm9yIGRvbTBsZXNzIERvbVVzIChpZiBwcmVzZW50KSwgd2hpY2ggDQo+IGFy
ZSBjcmVhdGVkIGF0IFhlbiBib290LiBTbyB0aGUgdG9vbHN0YWNrIG1pZ2h0IGV2ZW4gYmUgYWJz
ZW50IG9uIHRoZSANCj4gdGFyZ2V0IHN5c3RlbS4NCj4gDQoNClRoYW5rIHlvdSBmb3IgcG9pbnRp
bmcgdGhpcyBvdXQuIEkgcmV2aXNlZCB0aGUgcGF0Y2ggc2VyaWVzIGFuZCBmb3VuZCANCnRoYXQg
SSBkaWQgbm90IGNoYW5nZSB0aGUgYmVoYXZpb3IgZm9yIGRvbTBsZXNzIGJ1aWxkcy4gSSB3aWxs
IGZpeCBpdCBpbiANClYzIGFuZCB1cGRhdGUgdGhlIGNvbW1lbnQuDQoNCj4+ICvCoMKgwqDCoMKg
wqDCoMKgICogd2hpY2ggaXMgZGVmaW5lZCBpbiB0aGUgZG9tYWluIGNvbmZpZyBzdWJ0cmFjdGVk
IGJ5IDMyLiBUbyANCj4+IGNvbXB1dGUgdGhlDQo+PiArwqDCoMKgwqDCoMKgwqDCoCAqIGFjdHVh
bCBudW1iZXIgb2YgZVNQSSB0aGF0IHdpbGwgYmUgdXNhYmxlIGZvciwgYWRkIGJhY2sgMzIuDQo+
PiArwqDCoMKgwqDCoMKgwqDCoCAqLw0KPj4gK8KgwqDCoMKgwqDCoMKgIGQtPmFyY2gudmdpYy5u
cl9lc3BpcyA9IG1pbihucl9zcGlzIC0gRVNQSV9CQVNFX0lOVElEICsgMzIsIA0KPj4gMTAyNFUp
Ow0KPj4gK8KgwqDCoMKgwqDCoMKgIC8qIFZlcmlmeSBpZiBHSUMgSFcgY2FuIGhhbmRsZSBwcm92
aWRlZCBJTlRJRCAqLw0KPj4gK8KgwqDCoMKgwqDCoMKgIGlmICggZC0+YXJjaC52Z2ljLm5yX2Vz
cGlzID4gZ2ljX251bWJlcl9lc3BpcygpICkNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJl
dHVybiAtRUlOVkFMOw0KPj4gK8KgwqDCoMKgwqDCoMKgIC8qIFNldCB0aGUgbWF4aW11bSBhdmFp
bGFibGUgbnVtYmVyIGZvciBkZWZ1bHQgU1BJIHRvIHBhc3MgDQo+PiB0aGUgbmV4dCBjaGVjayAq
Lw0KPj4gK8KgwqDCoMKgwqDCoMKgIG5yX3NwaXMgPSBWR0lDX0RFRl9OUl9TUElTOw0KPj4gK8Kg
wqDCoCB9IGVsc2UNCj4+ICvCoMKgwqAgew0KPj4gK8KgwqDCoMKgwqDCoMKgIC8qIERvbWFpbiB3
aWxsIHVzZSB0aGUgcmVndWxhciBTUEkgcmFuZ2UgKi8NCj4+ICvCoMKgwqDCoMKgwqDCoCBkLT5h
cmNoLnZnaWMubnJfZXNwaXMgPSAwOw0KPj4gK8KgwqDCoCB9DQo+PiArI2VuZGlmDQo+PiArDQo+
PiDCoMKgwqDCoMKgIC8qIExpbWl0IHRoZSBudW1iZXIgb2YgdmlydHVhbCBTUElzIHN1cHBvcnRl
ZCB0byAoMTAyMCAtIDMyKSA9IA0KPj4gOTg4wqAgKi8NCj4+IMKgwqDCoMKgwqAgaWYgKCBucl9z
cGlzID4gKDEwMjAgLSBOUl9MT0NBTF9JUlFTKSApDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0
dXJuIC1FSU5WQUw7DQo+PiBAQCAtMTQ1LDcgKzIyMywxMiBAQCBpbnQgZG9tYWluX3ZnaWNfaW5p
dChzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCANCj4+IGludCBucl9zcGlzKQ0KPj4gwqDCoMKg
wqDCoMKgwqDCoMKgIHJldHVybiAtRU5PTUVNOw0KPj4gwqDCoMKgwqDCoCBkLT5hcmNoLnZnaWMu
cGVuZGluZ19pcnFzID0NCj4+ICsjaWZkZWYgQ09ORklHX0dJQ1YzX0VTUEkNCj4+ICvCoMKgwqDC
oMKgwqDCoCB4emFsbG9jX2FycmF5KHN0cnVjdCBwZW5kaW5nX2lycSwgZC0+YXJjaC52Z2ljLm5y
X3NwaXMgKw0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBk
LT5hcmNoLnZnaWMubnJfZXNwaXMpOw0KPj4gKyNlbHNlDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAg
eHphbGxvY19hcnJheShzdHJ1Y3QgcGVuZGluZ19pcnEsIGQtPmFyY2gudmdpYy5ucl9zcGlzKTsN
Cj4+ICsjZW5kaWYNCj4+IMKgwqDCoMKgwqAgaWYgKCBkLT5hcmNoLnZnaWMucGVuZGluZ19pcnFz
ID09IE5VTEwgKQ0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiAtRU5PTUVNOw0KPj4gQEAg
LTE1NiwxMiArMjM5LDIzIEBAIGludCBkb21haW5fdmdpY19pbml0KHN0cnVjdCBkb21haW4gKmQs
IHVuc2lnbmVkIA0KPj4gaW50IG5yX3NwaXMpDQo+PiDCoMKgwqDCoMKgIGZvciAoIGkgPSAwOyBp
IDwgRE9NQUlOX05SX1JBTktTKGQpOyBpKysgKQ0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHZnaWNf
cmFua19pbml0KCZkLT5hcmNoLnZnaWMuc2hhcmVkX2lycXNbaV0sIGkgKyAxLCAwKTsNCj4+ICsj
aWZkZWYgQ09ORklHX0dJQ1YzX0VTUEkNCj4+ICvCoMKgwqAgcmV0ID0gaW5pdF92Z2ljX2VzcGko
ZCk7DQo+PiArwqDCoMKgIGlmICggcmV0ICkNCj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gcmV0
Ow0KPj4gKyNlbmRpZg0KPj4gKw0KPj4gwqDCoMKgwqDCoCByZXQgPSBkLT5hcmNoLnZnaWMuaGFu
ZGxlci0+ZG9tYWluX2luaXQoZCk7DQo+PiDCoMKgwqDCoMKgIGlmICggcmV0ICkNCj4+IMKgwqDC
oMKgwqDCoMKgwqDCoCByZXR1cm4gcmV0Ow0KPj4gwqDCoMKgwqDCoCBkLT5hcmNoLnZnaWMuYWxs
b2NhdGVkX2lycXMgPQ0KPj4gKyNpZmRlZiBDT05GSUdfR0lDVjNfRVNQSQ0KPj4gK8KgwqDCoMKg
wqDCoMKgIHh6YWxsb2NfYXJyYXkodW5zaWduZWQgbG9uZywgQklUU19UT19MT05HUyh2Z2ljX251
bV9pcnFzKGQpICsNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqAgZC0+YXJjaC52Z2ljLm5yX2VzcGlzKSk7DQo+PiArI2Vsc2UNCj4+IMKgwqDCoMKgwqDCoMKg
wqDCoCB4emFsbG9jX2FycmF5KHVuc2lnbmVkIGxvbmcsIEJJVFNfVE9fTE9OR1ModmdpY19udW1f
aXJxcyhkKSkpOw0KPj4gKyNlbmRpZg0KPj4gwqDCoMKgwqDCoCBpZiAoICFkLT5hcmNoLnZnaWMu
YWxsb2NhdGVkX2lycXMgKQ0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiAtRU5PTUVNOw0K
Pj4gQEAgLTE5NSw5ICsyODksMjcgQEAgdm9pZCBkb21haW5fdmdpY19mcmVlKHN0cnVjdCBkb21h
aW4gKmQpDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgfQ0KPj4gwqDCoMKgwqDCoCB9DQo+PiArI2lm
ZGVmIENPTkZJR19HSUNWM19FU1BJDQo+PiArwqDCoMKgIGZvciAoIGkgPSAwOyBpIDwgKGQtPmFy
Y2gudmdpYy5ucl9lc3Bpcyk7IGkrKyApDQo+IA0KPiBOSVQ6IG5vIG5lZWQgZm9yICgpIGFyb3Vu
ZCBkLT5hcmNoLnZnaWMubnJfZXNwaXMNCj4gDQoNCkkgd2lsbCByZW1vdmUgdGhlbSBpbiBWMy4N
Cg0KPj4gK8KgwqDCoCB7DQo+PiArwqDCoMKgwqDCoMKgwqAgc3RydWN0IHBlbmRpbmdfaXJxICpw
ID0gc3BpX3RvX3BlbmRpbmcoZCwgRVNQSV9JRFgySU5USUQoaSkpOw0KPj4gKw0KPj4gK8KgwqDC
oMKgwqDCoMKgIGlmICggcC0+ZGVzYyApDQo+PiArwqDCoMKgwqDCoMKgwqAgew0KPj4gK8KgwqDC
oMKgwqDCoMKgwqDCoMKgwqAgcmV0ID0gcmVsZWFzZV9ndWVzdF9pcnEoZCwgcC0+aXJxKTsNCj4+
ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmICggcmV0ICkNCj4+ICvCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqAgZHByaW50ayhYRU5MT0dfR19XQVJOSU5HLCAiZCV1OiBGYWlsZWQgdG8g
cmVsZWFzZSANCj4+IHZpcnEgJXUgcmV0ID0gJWRcbiIsDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBkLT5kb21haW5faWQsIHAtPmlycSwgcmV0KTsN
Cj4+ICvCoMKgwqDCoMKgwqDCoCB9DQo+PiArwqDCoMKgIH0NCj4+ICsjZW5kaWYNCj4+ICsNCj4+
IMKgwqDCoMKgwqAgaWYgKCBkLT5hcmNoLnZnaWMuaGFuZGxlciApDQo+PiDCoMKgwqDCoMKgwqDC
oMKgwqAgZC0+YXJjaC52Z2ljLmhhbmRsZXItPmRvbWFpbl9mcmVlKGQpOw0KPj4gwqDCoMKgwqDC
oCB4ZnJlZShkLT5hcmNoLnZnaWMuc2hhcmVkX2lycXMpOw0KPj4gKyNpZmRlZiBDT05GSUdfR0lD
VjNfRVNQSQ0KPj4gK8KgwqDCoCB4ZnJlZShkLT5hcmNoLnZnaWMuZXh0X3NoYXJlZF9pcnFzKTsN
Cj4+ICsjZW5kaWYNCj4+IMKgwqDCoMKgwqAgeGZyZWUoZC0+YXJjaC52Z2ljLnBlbmRpbmdfaXJx
cyk7DQo+PiDCoMKgwqDCoMKgIHhmcmVlKGQtPmFyY2gudmdpYy5hbGxvY2F0ZWRfaXJxcyk7DQo+
PiDCoCB9DQo+PiBAQCAtMzMxLDYgKzQ0MywxNyBAQCB2b2lkIGFyY2hfbW92ZV9pcnFzKHN0cnVj
dCB2Y3B1ICp2KQ0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGlmICggdl90YXJnZXQgPT0gdiAmJiAh
dGVzdF9iaXQoR0lDX0lSUV9HVUVTVF9NSUdSQVRJTkcsICZwLSANCj4+ID5zdGF0dXMpICkNCj4+
IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlycV9zZXRfYWZmaW5pdHkocC0+ZGVzYywgY3B1
X21hc2spOw0KPj4gwqDCoMKgwqDCoCB9DQo+PiArDQo+PiArI2lmZGVmIENPTkZJR19HSUNWM19F
U1BJDQo+PiArwqDCoMKgIGZvciAoIGkgPSBFU1BJX0JBU0VfSU5USUQ7IGkgPCAoZCktPmFyY2gu
dmdpYy5ucl9lc3BpczsgaSsrICkNCj4gDQo+IE5JVDogbm8gbmVlZCBmb3IgKCkgYXJvdW5kIGQN
Cg0KSSB3aWxsIHJlbW92ZSB0aGVtIGluIFYzLg0KDQo+IA0KPiBbc25pcF0NCg0KQmVzdCByZWdh
cmRzLA0KTGVvbmlkDQo=


From xen-devel-bounces@lists.xenproject.org Sun Aug 24 18:47:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 Aug 2025 18:47:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1092254.1448233 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqFkh-0000V6-0C; Sun, 24 Aug 2025 18:47:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1092254.1448233; Sun, 24 Aug 2025 18:47:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqFkg-0000Uz-Sb; Sun, 24 Aug 2025 18:47:38 +0000
Received: by outflank-mailman (input) for mailman id 1092254;
 Sun, 24 Aug 2025 18:47:38 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9Bk9=3E=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1uqFkf-0000Ut-SP
 for xen-devel@lists.xenproject.org; Sun, 24 Aug 2025 18:47:38 +0000
Received: from GVXPR05CU001.outbound.protection.outlook.com
 (mail-swedencentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c202::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cd794777-811a-11f0-a32c-13f23c93f187;
 Sun, 24 Aug 2025 20:47:36 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by AS8PR03MB7303.eurprd03.prod.outlook.com (2603:10a6:20b:2ea::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Sun, 24 Aug
 2025 18:47:33 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Sun, 24 Aug 2025
 18:47: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>
X-Inumbo-ID: cd794777-811a-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lY6WRTHUH2ukmQgKtR604Ab+u+PEX+iMSkAElh+sA+5tuNWq99e9QJTUVcMX8X5rU1roIWxfktNUxHxxuzw88Ns0mFrPGeNfJHcurEKEOzoHHMYdJB83MZlSV9Ovu5QhhViZCK2SlEUMdvpNgdvoryMcdtde94EPahy0OpC69GGAbmSKEueLDj1TKA+Nxau9qieXlmFBT6rYuEIjMOOdGuuSzFFOxur7jaamop8LWWgxLsggblBJjNxoAxeU3+Qyho2GCdTx3elTaxFQ/2fo+wEfC26HbGUtQqkRaDNgNn6kNVYE78SlIihbIdOnvAWa95p0164uyS4UZRVSShniNA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=MDfnx9kmCEvzJ4OYVjtCKr+h8z+Kbd3+sJ7+w+Jbum8=;
 b=qpnoTcNpn7BWLs4GPHD20ddtNvlkLFAMLGRoo4G7/IQYQqL9o1T9PwEp5a17x7CxqMlYZFqR7zXEAq9eLq5KNgL2fEvJfYc5cqmowFFsIpEe1mMvsFKeKub1v2oA7FdYiaDJ08GcB6D84oYBv4tajdn51TSUb9iJL4d+aDtYR8fQOVlzaUuV8d/4btdbAZf8/j6Wk9tjM7YNYzdwSFeLaj2snPOpVwbDBY70M1sZxizAk+3n6ki5g3Ls6QSTuKeKcexcKk02S2D9VU4U4RR9ecOaVolxG1z7RJmGriKt+N/Fg5XdKb3Cw6SfUpE7079Zlf32duk41FiQ79xUbW2qfA==
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=MDfnx9kmCEvzJ4OYVjtCKr+h8z+Kbd3+sJ7+w+Jbum8=;
 b=shweaEt+ib/Kf44sTZfGP0TGbA3ZDEEEmASoL1LlSWl39Yw76j5A+Igv09fNuHwb4Wn82T08+bdofbhGQge/dLjMaGrZe2xLun1WqeI+RayWc9XjNPQZh1o6CI7IPVmZDlR0Clj2vuGVCZdGnuYkDaidM37cNo+x6YxqxwqV4VM5o6P1JtfD5vs7bNuScV6unO9f+8PxZGBrXWCoawQfolJ4cgjI/5tqvd05Eav979ml4C9OAbP1KEv8cHvotY7Ap2Y/KPZ/wi4suyfj7ZKbmCn4w+ZW1bKVmv9WcHUeCOd1hFoOvrn/8yEbQWA/KYlBL7cOlFAGGqAZvT+dmoP6Vg==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: Oleksandr Tyshchenko <olekstysh@gmail.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v2 09/10] xen/arm: domain_build: adjust Dom0 IRQ handling
 to support eSPIs
Thread-Topic: [PATCH v2 09/10] xen/arm: domain_build: adjust Dom0 IRQ handling
 to support eSPIs
Thread-Index: AQHcB5d9D2bB2ytT+0KvuTkMlpIiH7RwTReAgAHy1IA=
Date: Sun, 24 Aug 2025 18:47:33 +0000
Message-ID: <b54a5a96-4e81-4550-9cd3-ba0c22871385@epam.com>
References:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
 <abba685916e6637eedbd831352bed2e968eeb7dc.1754568795.git.leonid_komarianskyi@epam.com>
 <543c8010-bc73-4da8-be9a-f1774ec8b963@gmail.com>
In-Reply-To: <543c8010-bc73-4da8-be9a-f1774ec8b963@gmail.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: GV2PR03MB8678:EE_|AS8PR03MB7303:EE_
x-ms-office365-filtering-correlation-id: c70de905-e4b1-46d4-60ab-08dde33eafea
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|366016|1800799024|7053199007|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?VUZjZE44K0pPQjlVSGJHYUVGYU5QWmRPS3I0YWlENWh3eWNKUm9WRXJMM0lD?=
 =?utf-8?B?QytOUnNjcml6NmpWVkg2RjZtbEJTc2JaR0dMWkVLa05uV21lRFdXb0pFY3ds?=
 =?utf-8?B?UWJ1UHJFUEJWQUV0WjQzN3Jvc3pUSi9WbEs5cTZpeFFHb256bTVSTHh5alY0?=
 =?utf-8?B?bG5DY00yUHJkbDVlSmJqamppYlZJQlhLbnVCNGo5dVpsdDJhQ2NIdTdZUXNt?=
 =?utf-8?B?NS83UDlmbHk2T2NacGV6aEE1b3p6N1ZhZzFjbjFMaEZhV3VlaFhyM2xWZUNQ?=
 =?utf-8?B?Wm9oeFY0OTIvVWl4T3NnZE5NQlFIa1pVRkpwcDYwVC96b2xNQ1lLbVdkUVg4?=
 =?utf-8?B?RWU4b3V3Ym4zbGNyS3pGYzZqMnhrUndNWXEvS3dqeHMwSUdnNlI1ZDh2TTI0?=
 =?utf-8?B?YThLSm5oRnh1Wm8xTFlYdE1DYkxYZUEycGVSWnBZOHczTnp5SUsrRElFdWJa?=
 =?utf-8?B?TFN5TWh3Q0d0ZkdmaTZpN2hDQVdwdFBoUTZwcnp4WGI1d1JOR3VKRXNkc2Z6?=
 =?utf-8?B?S25XT1pXN3VFekk2NDhZN1pDMWJMcVZPY09ONnJWMmlKQUl4aDdiK3J2U3BJ?=
 =?utf-8?B?ckxaUlplZ3hTWUZ2RU9TeHBFbUdxVlRzeWQra3lyU1JGcXp6QWRNamIxYU01?=
 =?utf-8?B?SVlVZWk5YThoSVVXdkdBWTVlOFNwV2Vla1pCNVl5cFlGYkdHTjRYYlNWZi91?=
 =?utf-8?B?YjRYR21VUTdudkoxZHVVZnFvZlRNWjZpWUdnVWs2cUJZNXI5Tlp5WVZUTjdC?=
 =?utf-8?B?YlpGYi9rZUVvc0lNaUZiUlFzSDk5UVBVMEFic2g5dkJSazA0ZHlycmxQaCt2?=
 =?utf-8?B?TzRjWlVqVTBwclM4bG1FUUZPWGlzRTVhclBic2lHWDdCOEd0bk5EV0ZWRFhW?=
 =?utf-8?B?WlBhTUdndXU0Z1FJY3FxWUlVV1E0NDFyN2VVcGU4TVNyR1NVT0ZQcm44TnVW?=
 =?utf-8?B?TTRNSzNiZWNMNExoa1ZzSXVXTGEvTURNaFMxL01JekxTbzM2c3RZSXBMOVZS?=
 =?utf-8?B?K2xWTVhkTVZmSFlIS0l3UkMyVmNrYU9wM21jeDByRTZjY2lIYXpPTVlRZVY5?=
 =?utf-8?B?L0t6cjRVOTMxVUNIeTJxd2JaS0xGZ3NEa1BpekhiUHUvSzhndGFCMnFtRGZH?=
 =?utf-8?B?MWFGOHQxL3dEVDBhVkRFa1dKWjFlcXp3UGpDUmozN0NSTHlHWklWbUNENnRQ?=
 =?utf-8?B?K0l0TXFDa1MyODc1Y0R6RlJmeC9jZWMrZmtjV3RBSEh1WDBuTzh1dVlueWlo?=
 =?utf-8?B?eU5YTlNtZkhnZGk3blRhQWwyNnFWYUpzcC84aWtCRDNqZ09JazE5RUZqeERx?=
 =?utf-8?B?ZUl2S2dTM0dQc1dlUzlFenpEWU8zeWRpMWw2b2dLS3hMT0FVcENkNFp4NTdB?=
 =?utf-8?B?eEJKZmxpbW5vQmttL1VoMTNBRXBmeXhwOEIzRGVCOXVRUDhkWC9SSERaNDVj?=
 =?utf-8?B?SlFhdEpJbndhcXRkVTFFMEFQRVo1ZUMrNlllMDEreWZCRDNVM2FEMFVhNGFQ?=
 =?utf-8?B?UXM3eFQwdkcxQTdpVGtOTStJWDlqM0lsYnVsdnZTbzZaM01QTGFGZGV4WlJL?=
 =?utf-8?B?eUYveWd5UWhTakxSa1ZtdHpROE1mNHM3Rkh4aHU5R0VmeEhWc2dDK1Q0TDJ2?=
 =?utf-8?B?NkxIMk5tSUFFaUhzNVRSK09VK3htTlRZS3JkWE9RQUwvZnVmK0ZvSDFSYlVL?=
 =?utf-8?B?QVJkME5QcVNsb0NlZkh0SlVHTEI5MjBaR1d6Mndycm1wdUFZYnhpa2xFY2oz?=
 =?utf-8?B?YkpNQ01XOWV6aG5EZUZvczBRVjAvVE9nOVU3dFhPUEd5ZkNUekk2MEZHSTQr?=
 =?utf-8?B?M2dBR25Cano2UnFXNDI1eU1ENUYyTGdKVmtJR0Z6emRSNXNJcEkxekNtKzV5?=
 =?utf-8?B?TXVNcmUzNzdQM1FlTDJ5UUNPR24yRWZ4cmFsVlZ2M1dJSVpSdGdoQ2MvQTVW?=
 =?utf-8?B?c0tUb0pVL2sxd3lIalpTTDNSLzZLeXVqMUtoQVBvc0huVkYxYW44elV5c3c2?=
 =?utf-8?B?U1NBRFluc1VRPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7053199007)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?eVgxTmROb1R6dlF5Y00zNE1wL2VrREY0b0M2ZVhVTjR6YXRpTkEvQUZlOEtW?=
 =?utf-8?B?bHRwTUl3T3RZaUNIZHFqVnFzdzR1OG5hODJINlkwa3RLSDlDdjFuVHNaMnFB?=
 =?utf-8?B?aUJWMDUyWnN5L25udzV6eVRRUnFaY09SaEk4eDRnMklqQ3Bhb2JjYzhxU0xG?=
 =?utf-8?B?ejd4VFcrbmFIck15ZERCM2hLU2lpaUVoczBUSmN6N3hlUy9BZGxnd01DOUhE?=
 =?utf-8?B?eVhWdE9KQjIvYmpwb0hxUHNIWXdRQVlZdnpqWFJobFdXcm1YZUZPNUliZnRu?=
 =?utf-8?B?UTZiL1E0b2dCb0lVa2xlWGk0QW5wOXNFMTRrazNNcWIvVy8zc1k5NVJ2aU5I?=
 =?utf-8?B?QmhmaXlzNDdycFMvSjV0b04xTTYxZEVJSXVUckpIWjZURTVjbFZxZlFtQ3N1?=
 =?utf-8?B?eXR4OGQyWXZCT3grSEZxNjU5MmN5MHJ2Qlh5S0p3eklwN3hTOElOdHJsdWtp?=
 =?utf-8?B?WVJ0cGxYVjVSRWNGZUp0QS9uNStXK21NbU05MmNXcnBvOHYvMUZ2RGZBV1g1?=
 =?utf-8?B?VGtwT0ZtZVoydFlDSE9ZWm80S1hpVEVsL3pWdUtXV2Jzem9WeVRmOURyTkQ5?=
 =?utf-8?B?cFZNanpkOXFLR29jeFhSNmNlTDc0UTJOeU80T0tlWjYvOXo4Rm9iWmN3WHVi?=
 =?utf-8?B?QTVscmY3N0FHdWFvWjc5aVppaGxzYy9WVlY1NUtTdUFkU3NBdUFqMVgzUkp4?=
 =?utf-8?B?cFFRZFdyQ2hjblZkd0V6d0tzbHY5eXQzUUNOcGd6TmV1REFDc3hzU2FOQ1lK?=
 =?utf-8?B?RzRPY2FYUGtCT0VtNzlUSFgyeXdoMHBCRHB0UU9Hekg3NmM0emFLTHkxaWtj?=
 =?utf-8?B?c0hwN3hCT2lJOHU5cDZBT0dxZW9pMEFPUVI2SzZoYVk2R0V2WUN5V0dVL2lz?=
 =?utf-8?B?cUxMTU9qUjFEOWRPemtCMGNXdWNQTEZTOEx3REFUMi8wbXJoNGYyQzh1aUtE?=
 =?utf-8?B?bC9hb1hTc0pqRFhMY2RCYmtIcW1IKzhyeXBvOE1XamdUYkJGdXNNRzJzR1dx?=
 =?utf-8?B?NXdMYk43bWNVVkxzOEZxWDdmSHB1eC9EcW1IQk1SV2NwVmQybFJXUEh3QXRX?=
 =?utf-8?B?WXRDeDBqZUt4TUxlbklWWjN4cmpEZkhMN29YU0tTaU1zUWVWcWpMSW0wOE8x?=
 =?utf-8?B?RGVBQ2hVby9aS0ZaR0V1cE1LNzRTWllpWG9DYjQ5T0lYa2gvTzk3S1RPalZ0?=
 =?utf-8?B?dFVZZE5tMk9ZRTh0Y1lLVlhaaU1qdDhPOW55SGJrVUs5MVVZQ3NKTVUreW5U?=
 =?utf-8?B?WmY3THAvZWxGWncvaVltRGNEa3ZHQVVabkRZaEVjbWErMCtGVDNKRE5PTzlu?=
 =?utf-8?B?Z0JFM2FDUGk5UGoyNytTQVE3V05NUTBuQkVRYzdSY0hLVWRhRHphbVFQUWl1?=
 =?utf-8?B?TFk3dkx1djQ1WGp1QXV2cGJLdWxCNEE2bUgwbVljQTl0OGU0TlREczdnRGwy?=
 =?utf-8?B?R0RlOG1vRUMzNTI5U1NqOEpiTVhZVE54akcyL2IzdVAyb1dCQXQvNyt0V3BI?=
 =?utf-8?B?dmh6NXhuTW5aS1J3YnVBNm5BT0o1YzNrUHQ0bnl1dkVtYXFjRXhsMlFhZXJO?=
 =?utf-8?B?SCttdzRiRG9BZTIreW4xUWpnRnNuMjZ4ek8wS0RqZ1YyckIwQ1E0dFFNWWhX?=
 =?utf-8?B?WjhsUWVNbjNkUktHVERraHFQN0Y2QmI3OEVqdjlXNFJCNUJXMEkxMEU4aGFI?=
 =?utf-8?B?Y3A4Qk9uekVvZXNaK2tYM2VDcmFCQ0FJY3l0U211b0xGNGI0VUN3Y3dJb1c4?=
 =?utf-8?B?MVZjT3NlOCthN2s0SlpYWDdBQ09OSXpqZm80R2E3MVFZdlFqcVlLcDNSN096?=
 =?utf-8?B?Vzg3UEhyejdXUmhNSGhpVGxLVG5SdDhGQXRmTUk2NHBNR2NENG54QWxDVktw?=
 =?utf-8?B?NDRaaCtGaXdzLzFWTVBvMjU5TkdqQzBsNVpEK3dLUjFDcThOUjhpYVNxNDRr?=
 =?utf-8?B?cExhQUdnVjg3Uzlhc0Rmb2pOem5Kc1pEYzM5UENhMTNQSjl1aWszTk5sV0tU?=
 =?utf-8?B?bU5TOU1kSTVnNENlMGVGL1d0VUhwcmMxNnZ2Mml5TDRXdTdhdkRmeExNTjM0?=
 =?utf-8?B?cWJYSE1mbXdWQ2Npem9xSXBRUERudldXckVPNXdqTDdvbjZFWWs4WjZVRUY4?=
 =?utf-8?B?b2lDY0diNE9XL2l4N08xTnplUW9QVktRQzlEZUVReHNNT0VtRkZ2d2htVk12?=
 =?utf-8?Q?P4K6BTqkSuKf5B1ys0tB8BE=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <3A3A46EF11D31F4CA82B248AEA92E3B6@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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c70de905-e4b1-46d4-60ab-08dde33eafea
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Aug 2025 18:47:33.5199
 (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: qNo3MuAiGb0mAIZyloBQd343azJl1er5H1Vb9KTAa3E8UabgtNJzEArAUmTzXypVAHR1bD0Oj7b3cY8Ei11DZsXdinuBs/szUZ1a5/L72eI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7303

SGVsbG8gT2xla3NhbmRyLA0KDQpUaGFuayB5b3UgZm9yIHlvdXIgcXVlc3Rpb24uDQoNCk9uIDIz
LjA4LjI1IDE2OjAyLCBPbGVrc2FuZHIgVHlzaGNoZW5rbyB3cm90ZToNCj4gW1lvdSBkb24ndCBv
ZnRlbiBnZXQgZW1haWwgZnJvbSBvbGVrc3R5c2hAZ21haWwuY29tLiBMZWFybiB3aHkgdGhpcyBp
cyANCj4gaW1wb3J0YW50IGF0IGh0dHBzOi8vYWthLm1zL0xlYXJuQWJvdXRTZW5kZXJJZGVudGlm
aWNhdGlvbiBdDQo+IA0KPiBPbiAwNy4wOC4yNSAxNTozMywgTGVvbmlkIEtvbWFyaWFuc2t5aSB3
cm90ZToNCj4gDQo+IEhlbGxvIExlb25pZA0KPiANCj4+IFRoZSBEb20wIGNvbmZpZ3VyYXRpb24g
bG9naWMgaW4gY3JlYXRlX2RvbTAoKSBoYXMgYmVlbiB1cGRhdGVkDQo+PiB0byBhY2NvdW50IGZv
ciBleHRlbmRlZCBTUElzIHdoZW4gc3VwcG9ydGVkIGJ5IHRoZSBoYXJkd2FyZSBhbmQNCj4+IGVu
YWJsZWQgd2l0aCBDT05GSUdfR0lDVjNfRVNQSS4gVGhlc2UgY2hhbmdlcyBlbnN1cmUgdGhlIHBy
b3Blcg0KPj4gY2FsY3VsYXRpb24gb2YgdGhlIG1heGltdW0gbnVtYmVyIG9mIFNQSXMgYW5kIGVT
UElzIGF2YWlsYWJsZSBmb3IgRG9tMC4NCj4+DQo+PiBXaGVuIGVTUElzIGFyZSBzdXBwb3J0ZWQg
YnkgdGhlIGhhcmR3YXJlIGFuZCBDT05GSUdfR0lDVjNfRVNQSSBpcw0KPj4gZW5hYmxlZCwgdGhl
IG1heGltdW0gbnVtYmVyIG9mIGVTUEkgaW50ZXJydXB0cyBpcyBjYWxjdWxhdGVkIHVzaW5nDQo+
PiB0aGUgRVNQSV9CQVNFX0lOVElEIG9mZnNldCAoNDA5NikgYW5kIGxpbWl0ZWQgYXQgMTAyNCwg
d2l0aCAzMiBJUlFzDQo+PiBzdWJ0cmFjdGVkLiBUbyBlbnN1cmUgY29tcGF0aWJpbGl0eSB3aXRo
IG5vbi1Eb20wIGRvbWFpbnMsIHRoaXMNCj4+IGFkanVzdG1lbnQgaXMgYXBwbGllZCBieSB0aGUg
dG9vbHN0YWNrIGR1cmluZyBkb21haW4gY3JlYXRpb24sIHdoaWxlDQo+PiBmb3IgRG9tMCBpdCBp
cyBoYW5kbGVkIGRpcmVjdGx5IGR1cmluZyBWR0lDIGluaXRpYWxpemF0aW9uLiBJZiBlU1BJcw0K
Pj4gYXJlIG5vdCBzdXBwb3J0ZWQsIHRoZSBjYWxjdWxhdGlvbiBkZWZhdWx0cyB0byB1c2luZyB0
aGUgc3RhbmRhcmQgU1BJDQo+PiByYW5nZSwgd2l0aCBhIG1heGltdW0gdmFsdWUgb2YgOTkyIGlu
dGVycnVwdCBsaW5lcyBhcyBpdCB3b3JrcyBub3cuDQo+Pg0KPj4gU2lnbmVkLW9mZi1ieTogTGVv
bmlkIEtvbWFyaWFuc2t5aSA8bGVvbmlkX2tvbWFyaWFuc2t5aUBlcGFtLmNvbT4NCj4+DQo+PiAt
LS0NCj4+IENoYW5nZXMgaW4gVjI6DQo+PiAtIG5vIGNoYW5nZXMNCj4+IC0tLQ0KPj4gwqAgeGVu
L2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jwqDCoMKgwqAgfCAxMCArKysrKysrKysrDQo+PiDCoCB4
ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vdmdpYy5oIHwgMTEgKysrKysrKysrKysNCj4+IMKgIDIg
ZmlsZXMgY2hhbmdlZCwgMjEgaW5zZXJ0aW9ucygrKQ0KPj4NCj4+IGRpZmYgLS1naXQgYS94ZW4v
YXJjaC9hcm0vZG9tYWluX2J1aWxkLmMgYi94ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMNCj4+
IGluZGV4IGQ5MWE3MWFjZmQuLmZhNWFiZjJkZmIgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vYXJjaC9h
cm0vZG9tYWluX2J1aWxkLmMNCj4+ICsrKyBiL3hlbi9hcmNoL2FybS9kb21haW5fYnVpbGQuYw0K
Pj4gQEAgLTIwNTUsNiArMjA1NSwxNiBAQCB2b2lkIF9faW5pdCBjcmVhdGVfZG9tMCh2b2lkKQ0K
Pj4gwqDCoMKgwqDCoCAvKiBUaGUgdkdJQyBmb3IgRE9NMCBpcyBleGFjdGx5IGVtdWxhdGluZyB0
aGUgaGFyZHdhcmUgR0lDICovDQo+PiDCoMKgwqDCoMKgIGRvbTBfY2ZnLmFyY2guZ2ljX3ZlcnNp
b24gPSBYRU5fRE9NQ1RMX0NPTkZJR19HSUNfTkFUSVZFOw0KPj4gwqDCoMKgwqDCoCBkb20wX2Nm
Zy5hcmNoLm5yX3NwaXMgPSBWR0lDX0RFRl9OUl9TUElTOw0KPj4gKyNpZmRlZiBDT05GSUdfR0lD
VjNfRVNQSQ0KPj4gK8KgwqDCoCAvKg0KPj4gK8KgwqDCoMKgICogQ2hlY2sgaWYgdGhlIGhhcmR3
YXJlIHN1cHBvcnRzIGV4dGVuZGVkIFNQSXMgKGV2ZW4gaWYgdGhlIA0KPj4gYXBwcm9wcmlhdGUg
Y29uZmlnIGlzIHNldCkuDQo+PiArwqDCoMKgwqAgKiBJZiBub3QsIHRoZSBjb21tb24gU1BJIHJh
bmdlIHdpbGwgYmUgdXNlZC4gT3RoZXJ3aXNlIG92ZXJ3cml0ZSANCj4+IHRoZSBucl9zcGlzIHdp
dGggdGhlDQo+PiArwqDCoMKgwqAgKiBtYXhpbXVtIGF2YWlsYWJsZSBJTlRJRCBmcm9tIGVTUEkg
cmFuZ2UuIEluIHRoYXQgY2FzZSwgdGhlIA0KPj4gbnVtYmVyIG9mIHJlZ3VsYXIgU1BJcyB3aWxs
DQo+PiArwqDCoMKgwqAgKiBiZSBhZGp1c3RlZCB0byB0aGUgbWF4aW11bSB2YWx1ZSBkdXJpbmcg
dkdJQyBpbml0aWFsaXphdGlvbi4NCj4+ICvCoMKgwqDCoCAqLw0KPj4gK8KgwqDCoCBpZiAoIGdp
Y19udW1iZXJfZXNwaXMoKSA+IDAgKQ0KPj4gK8KgwqDCoMKgwqDCoMKgIGRvbTBfY2ZnLmFyY2gu
bnJfc3BpcyA9IFZHSUNfREVGX05SX0VTUElTOw0KPj4gKyNlbmRpZg0KPiANCj4gSSBtaWdodCBt
aXNzIHNvbWV0aGluZywgYnV0IHdpdGhpbiB0aGUgd2hvbGUgc2VyaWVzLCB5b3Ugc2VlbSBub3Qg
dG8NCj4gdXBkYXRlICJucl9zcGlzIiBmaWVsZCBmb3IgZG9tMGxlc3MgRG9tVXMgKGluIGRvbTBs
ZXNzLWJ1aWxkLmMpLiBQbGVhc2UNCj4gY2xhcmlmeSB0aGUgcmVhc29uPw0KPiANCg0KWWVzLCBJ
IG1pc3NlZCB0aGlzIGJlY2F1c2UgSSB3YXMgbW9zdGx5IGZvY3VzZWQgb24gdGhlIGJ1aWxkICh3
aXRoIERvbTApIA0KdGhhdCBJIGN1cnJlbnRseSBoYXZlIG9uIHRoZSBwbGF0Zm9ybSB3aXRoIGVT
UEkuIEkgcmVjaGVja2VkIHRoZSBjb2RlLCANCmFuZCB0aGUgZG9tMGxlc3MgY29kZSBoYXMgdGhl
IHNhbWUgYmVoYXZpb3IsIHNvIEkgYmVsaWV2ZSBpdCBzaG91bGQgd29yayANCnNpbWlsYXJseSB3
aXRoIHRoZSBzYW1lIGNoYW5nZXMgaW4gYXJjaF9jcmVhdGVfZG9tVXMuIEkgd2lsbCB1cGRhdGUg
aXQgDQppbiBWMy4NCg0KPj4gwqDCoMKgwqDCoCBkb20wX2NmZy5hcmNoLnRlZV90eXBlID0gdGVl
X2dldF90eXBlKCk7DQo+PiDCoMKgwqDCoMKgIGRvbTBfY2ZnLm1heF92Y3B1cyA9IGRvbTBfbWF4
X3ZjcHVzKCk7DQo+Pg0KPiANCj4gW3NuaXBdDQoNCkJlc3QgcmVnYXJkcywNCkxlb25pZA0K


From xen-devel-bounces@lists.xenproject.org Sun Aug 24 18:59:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 Aug 2025 18:59:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1092279.1448243 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqFvl-0002RI-3a; Sun, 24 Aug 2025 18:59:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1092279.1448243; Sun, 24 Aug 2025 18: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 1uqFvk-0002RB-W7; Sun, 24 Aug 2025 18:59:04 +0000
Received: by outflank-mailman (input) for mailman id 1092279;
 Sun, 24 Aug 2025 18:59:03 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9Bk9=3E=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1uqFvj-0002R5-Nc
 for xen-devel@lists.xenproject.org; Sun, 24 Aug 2025 18:59:03 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 65cf8936-811c-11f0-a32c-13f23c93f187;
 Sun, 24 Aug 2025 20:59:01 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by PA3PR03MB10986.eurprd03.prod.outlook.com (2603:10a6:102:4b1::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.19; Sun, 24 Aug
 2025 18:58:59 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Sun, 24 Aug 2025
 18: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>
X-Inumbo-ID: 65cf8936-811c-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NVrjZvp2y2vGce7LCB7Ym809uDripcYpbWIHfFGfGAwxjsQg9dNBjcRJVojO/BzcEABL/ASy4NKyw8cf7ijqolg4adRk/g/ijeRoeQVK8WKoJn0xc9zXQeb0OcPMWKEFv4uV5bVLnqxxKXJlnka+3qo2kvDseerzLtFBsWqAWTQe9o8evFiVd9gjjwiuhz9Gc4Cg/DGrb7GJkuVMh5cQ8KT8YWt5Pq6sH27BeVZmZIKL+yi+mu7zZaC3e4nQ/s0lNZZKbLl3dXPYPU1iovTdmg3waub5Amkk5c9KxHsbIigmSsMYM6f2bJY0RmC44rlzAh60alb6K3fNCaLDnOLIBw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=m1hoL/+ctGGKIGAtorReJ2xI0e59MKaEmobUEgGH668=;
 b=BwyzWI0OcIn6k+2bFE7JkxAFeE1fcs3LhGNJ+SLi0Msm7R7JVRW1TOuWQNexQH+e7iVSbwNfMkabJ91ysOVl8vQjue5VobXDRro2XF7eoi9r9EK/sH9KbHT1m3oKSBTLicI7Fr1LOKejgb1kqiMdvuxcHAVHwt5oZjR+tMtIX0qAQqW9ilQinbpe6y+AHoXxsYb/Y33EwJcie3c2cDTBivBAUIzZ31mn8NrnBZhWRmUTMdzW9r6GgBzKMCh5ZBXWAZ4LbYwq8fgkYYrhzS36jL5mPelGmIRjKie1jSdHVVow9HeZCzI3FmEKEzp7cHQyNOptp3h2ZhVjxyLsD/mPgw==
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=m1hoL/+ctGGKIGAtorReJ2xI0e59MKaEmobUEgGH668=;
 b=dFjjY7DmOrZURJmGx7PYUqcpC9YljrldWcor4BJ8xE/2tC+yNasdi/F52O7FKGyySsylEpayjKcuaXTJQM7TslR8JeVcPqt8M8sXOSFbSq5pomC35MDakClZgW1sT9J6R7WvzHDjJBPl/UDQmqat7qOR/bLz5c6pzCJBMJCUivG4rO6dibftBdbJhCCMAcDyZjdv17gM712IZbfXUT3MuVJAOQeUTCpluAKc0DahplccYUZC3gbW7MoippamyMMPtFmOXB+wYNhsVNqmQ+EsZXaiV0Gi64FEa7uM+bqK32a+9jDl4vMHNkRI7Hz5WWFbUVr6IEd6uIho2fEdNctOmw==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: Oleksandr Tyshchenko <olekstysh@gmail.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel
	<michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	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 v2 00/10] Introduce eSPI support
Thread-Topic: [PATCH v2 00/10] Introduce eSPI support
Thread-Index: AQHcB5d6CNAyJbck6EKQNoQgtljZhrRyJ8YAgAAbVQA=
Date: Sun, 24 Aug 2025 18:58:58 +0000
Message-ID: <ee73916c-1680-499e-ab30-3ec49ae4e48a@epam.com>
References: <cover.1754514206.git.leonid_komarianskyi@epam.com>
 <9009233a-69b6-4b6d-b8c5-02550035aac3@gmail.com>
In-Reply-To: <9009233a-69b6-4b6d-b8c5-02550035aac3@gmail.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: GV2PR03MB8678:EE_|PA3PR03MB10986:EE_
x-ms-office365-filtering-correlation-id: 2cab072e-245d-40a4-30ac-08dde3404861
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|376014|7416014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?alMxUk5iK2hFNnNuYWE1R0ZjQ0JDWXYyalFrR2dSMGU1dkV5V29IL2NoMmUx?=
 =?utf-8?B?MTNqQlVqZDJEamFGNEEzTTkyTFdDRVFkQWdiZC94cjR6dlRZaGtoWTRrTmQy?=
 =?utf-8?B?M2xiMFVaa21DR2E0SVhpQURTWGRzbGhNTDVsWWVHcUtiSlFSTEVCaHVJZjNi?=
 =?utf-8?B?ajVwMDZGMDZzbmNRMUMxeTJlLzFKTWIrYy9NUWxRSVk2VU5vTkFYRXVoY2pW?=
 =?utf-8?B?OHhQcGgzUDlqMVNUdk9JS1pwdU5pTVFyZFEzeXd6R1RqS1gySko5R3h6UDBB?=
 =?utf-8?B?a1NUc20wKy9jVCt2SHI3dGdNMDVRbzYzZDdkTkRpY092Wk5iVFdnOHF0b25p?=
 =?utf-8?B?TnF2ODhtYWNMY3RTZWErS3U3TTZnS2FnWHZtU0d0cVJqMmFxbFNLZldGK3ZU?=
 =?utf-8?B?TmNCZEcvMFY0ZHRvZFUrUGdMWFNqUkc3RDFaZitnNGpoaTFORld0Q2ZQT2J4?=
 =?utf-8?B?cXloMjNSa05Hb1ZNcVRJTlZYV3ZnY3dlOWkrMGhTSEYyNC96TXB5RDBpUVFS?=
 =?utf-8?B?dVkxZFBXQ3FTbWlON083WUkwR3FuRFpFWGRpdWlKNFlqMEZyOGtlV0FRRzdn?=
 =?utf-8?B?bWJ5cU9JOEpVWE5IOEZyRzZBNGNpUVd3RDV6aG5JN2lqSW1MaTVXWXNWTFA4?=
 =?utf-8?B?b0ZHY21nMDB3REFwbFhTanlITlBYSmFDUlpFTDhneU1pa0NzVlE2NzFJVm1M?=
 =?utf-8?B?U3dKMkNkMFZXS0VLczQxT0VwTHQ2R3Q5REhZOVZ0R3owRDZQbVJacFFCdjZT?=
 =?utf-8?B?K3lpWGNNVEZ4aXZ0T05XK203SUQvYUtrMlk0Witia1RBUHJUcU5KaUJLc285?=
 =?utf-8?B?SkVvM2w1OWZnMGdVaTAwOHlNQkF0a2E4UDFuTmRHZUhDU2VOcThrU2VUN0Zi?=
 =?utf-8?B?S0Zla1NRNWg0NEQ2MmFocFpBT1ozN3RSdEVUVzlxWXBwOVAzV3pOdHJCdWF3?=
 =?utf-8?B?cXgrUTRZNlZYbnNvRGIyMktwQldYeHVGeXBYMTAvbG9EQzhtRm5hN0tRb2JV?=
 =?utf-8?B?Y1Z4SUdVaWh4M2NIYjNlSXFqSFlNaE14NVYxbTNUVDlJQ2NZc3Y1enN5TWw5?=
 =?utf-8?B?TGk4ZFlub1V3cmV4dHZ5SGZPa01GZkl2Qkp5K1NEbkFvWC9wTkJTbm12Zm02?=
 =?utf-8?B?cVN1UTJRbzl2ZklVT3pFaEwvRUVjZGtDOUViNk9aR2tWSGNweW9FNUd1T2d1?=
 =?utf-8?B?U2pyVXhDZ2treTlpVFozVjBTQXpmMjV0eE4zVzhPNGp1V05MMzRFSC9ITTh0?=
 =?utf-8?B?UmlBbG9tOUpaZFF3UFoyamVPSDdoN1RLOXR5cEQ4akViNHkxNWRPOWRVY0NO?=
 =?utf-8?B?MHhUS3JMR214QndwNU1ad2FvTlo4L21KMzRJMGNEV3ZwOTZvVmM5UmZXRFF3?=
 =?utf-8?B?SmI5QU5qUWhkdXBHUExSbDlTZlRVL2ZkVXVvYktEMzYwMnRzSG9WQ2syWlJO?=
 =?utf-8?B?TWVmREc3b2xFN3pKN2VGWTZzQWlSZ2JHTTk1N1UxSm9rT3Jqb2tockIzKzhv?=
 =?utf-8?B?Szl1ZFprODRjZkRCeVRIT2pKTGZGcUVtTG9KL3B4eHBtSDZiQUlOaUVrQm5P?=
 =?utf-8?B?ZzhPUkFoWlI5d1pCV0hJeldMTkQ5Z2htSTR3QVR6WWU1MmtzL3hGV2lIU0Vr?=
 =?utf-8?B?bGI2TlpMZEJhbVZTRnNlZ1NkTlhtbXVyQUozU1d5NUlwKzZ1UHJYMUpPWlBn?=
 =?utf-8?B?bzlVV01ZaHVXNTN6WkNod281MFBVSUJJcFdHMnBRWEpFRWFSQW5zTGZXRThH?=
 =?utf-8?B?cW5WNmF5OWpUb2dlNk10S1B3YlovVnQ2czZ5TjY0eThFY05mNmpNSlNZKzRN?=
 =?utf-8?B?YUxkZDJ0UVBERkpNNWxiRFRjZmdEYm5GK1p5SEJUTXJZNThvejR1aXFOdDFa?=
 =?utf-8?B?RXBKY3BmVU96ZmJsdlVxb0d1K0Z0NzBlWHZwT3FYOEJMMTM2ZHRuRFZIL2tU?=
 =?utf-8?B?MXZrVHlDMW9pR1gyM0pnL2NIUWlFdWNVeUEvVVptVkpNSldlWjdlcVZRNVpU?=
 =?utf-8?B?bXZKNm1vQ1V3PT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?YlhSVEhZajZIQkc5eVcwOEtsditGNE5OM0hvVXk4dFV4RHR0RDFsa0w0ZElD?=
 =?utf-8?B?eStyWnJ5SEdsZHlBOGRHaXRJbjMwVndMd0lheFpLUjdxNEErMFd3NVR3c0V6?=
 =?utf-8?B?VzZDbEdhZVhtbkY0NlZ6MmdDR0JFdjdEZW9CakdLMGNwZXBNN0JmMkc4Y2Jq?=
 =?utf-8?B?RmhtNWhmcUNhTnNycFVnUVJpWEYzNnpjazNlR2FRL3VkRGg3d2dDOHc3MlBr?=
 =?utf-8?B?VmdudFcvS0lrRmdydG5ZNmkyRmZwKzV0TE1rbG40UnZZNi9WUUFMYUI5ZEtw?=
 =?utf-8?B?Y1BoL2RHNUNtOW5LUEtZUENHOUtUVGI0MXg5NmFLRHJnU1RTb2E5N0xRdWNZ?=
 =?utf-8?B?a0xXeXptVEV1RktCWWtEaGlPQkpLU1ZCeDBYcHB1N0ZoL0k3cHpMQnl6OHFz?=
 =?utf-8?B?V1pZc0xmTzVRSmd3YWhsc0ZFeTdtemNTS1V4ZkMxUmV6SUZZYitUY1plVCsw?=
 =?utf-8?B?d1ZiUUNzNWVLYSt4U3lQdU5XK05tNDVyTVYzN2U5ekNwaElRTFY3eGtlc0hn?=
 =?utf-8?B?QjRKYTFtSG1pQ3dqemlGR0pueTZFckRLbFkveHAraHVqYUZ3MEVTOHYweEY5?=
 =?utf-8?B?ZG5sM2h0VjVCQlNFZENmQ0ZNUFB4dG05Mmw1dUdOWEc4TkpkQ0RDb0NTbmcr?=
 =?utf-8?B?d3lGU3d1U3FubDcvb3h0ZFR4YXNaM0tVb2NNUStqWUxCWmJpdUpkWXk4SURv?=
 =?utf-8?B?N0xGTnVRWXRXL1lLb3NqTFUxRHgvcURGMyswUzdNdGliUXFQZ0loSnR3NGh3?=
 =?utf-8?B?aUZrdGgrNzZTY05KL3ZUYzMxRktLYThlejRsdlN3NVNRMndsSjBkN2srWTZO?=
 =?utf-8?B?djFKMFBYQUU1dDVCRTdLZEN3QTBVQkVnVUk1SjdacVJKbGo3NkNiWHI3ODVV?=
 =?utf-8?B?NWlQUnhlSUt3ZEpIUE50OXFaK3ZDcTRIbko1bFlsb1RENDhSK0tJMHYwb3hG?=
 =?utf-8?B?QkJaaERnUENDcFZuOGVMR01MamlNMDNIVzdTUmJUa2hBdU1SeFVzYXE4VXBl?=
 =?utf-8?B?UFpJblpDZU02WVVydWFKcVJHZGk1N0RwZ2hYWWN3cTcrc3NZaWZqK1pzdDhj?=
 =?utf-8?B?ZGlCd3lsMkpNOFJ5ZWRjd3BGQzRpZVpDWmhQZmxpSllUNFBjeW12NHpINjZK?=
 =?utf-8?B?VTVnSTltVFNUVTMvZGllOWFmZm1ZV0trVjhpenBjWTZqNEFvbi9aQk1Iak5K?=
 =?utf-8?B?UU1JbXR2eERPR1hCdXkwSHM2R3lKREVrZkVVZ05EUWlnSzQwdDQrbUhEWktn?=
 =?utf-8?B?YTBUb1RibUhMOEJRaitQdVZOUExYdzR5VWd4K21SQkIxcklPZ3M0a2NSUzA5?=
 =?utf-8?B?OGVrL1NCYVliYy8rUSt1MEhzWjlkLzBrcDVicXczS0Z2ZUQ2dk0rQzNrOCtx?=
 =?utf-8?B?c2FNTUh5cTJ3d1dHTzdVTmNjdnpyelJtM2dhQUt5VlJoeEVoRXVoOFIzc3lO?=
 =?utf-8?B?cS9DU1lZSk42OGE3SmdSbVVSdWRSUE85eWxtYkxNUndIaWpTR0JGNk93SURR?=
 =?utf-8?B?SVo5KzgxQUl6RWZIVTBsZ01WYVhQeHQ2WWlTcGF1MllsQklkMllVbXVuR1FG?=
 =?utf-8?B?eVRQeXY2czltUTE5Q08rcGVCODFqa3RMZHJ2UzI4dCtXeG5xQTZzVXIvaklS?=
 =?utf-8?B?MFRoOUZXRHhwSnVweWNSNUM0UUhMKzB1Nmx6eXNWdHBUWHRuc1I2Vml2QjVm?=
 =?utf-8?B?dVhQVGFWNzRaeHdEWlJPV0d3QlR1VURaMGxVZm0rcEE3S1V4SUxZcDhPVWwz?=
 =?utf-8?B?d2ZpU2thd3czSTh5dmg1MkVYVEZzWTB4ZUNqanZNZTNaVmdRVjY3MkxwUUk3?=
 =?utf-8?B?R0FnZ2hlWEFnRWhXVm9scm8wcGd2dHBzdjhjdm50eXk2ZlhyajB1V1JseE9Q?=
 =?utf-8?B?YWpWdGlieHBSYk4rejVYY1RDbUpFbm5VamFPclYzbGlXb29ONmp3NDZ6Qi9w?=
 =?utf-8?B?OHlVK01qYzk3VVlPTUpkN1c0TUk2STZWb29wSlRZOFpqdk9OdkhLYUlUKzFE?=
 =?utf-8?B?SHpIOXJKeGZxbUpuNEFnUVRmUzB0U0R6ak0rdkVQbmNnUC93TWhTc0hXRnJp?=
 =?utf-8?B?YlB1S2xHeVFTNks0dmkzem51Ri8wQUN1UnY3a1lCOWNXVU9TWEd6WUd5dzNy?=
 =?utf-8?B?bTN5UWNNandZRFVFbnM0K2NVcndlUE1jd1QveXVTa2xhV3k3bE9wVFUwelJ5?=
 =?utf-8?Q?Py09IqIv7zJCQo7A2jqy0R8=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <8EAD88EC9442E9429FC3A47F9CB1B2CC@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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2cab072e-245d-40a4-30ac-08dde3404861
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Aug 2025 18:58:58.7866
 (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: gbJsztLqL1/4rMBlEoUYAVM7Pp4+Q30XEkFj4eHQbbmDi6QgF5O21vezHTm0oFSMMbqZ1cPuL61tO53HPzvUG4YVHI33U1CVmmMDIZyaTzw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA3PR03MB10986

SGVsbG8gT2xla3NhbmRyLA0KDQpPbiAyNC4wOC4yNSAyMDoyMSwgT2xla3NhbmRyIFR5c2hjaGVu
a28gd3JvdGU6DQo+IA0KPiANCj4gT24gMDcuMDguMjUgMTU6MzMsIExlb25pZCBLb21hcmlhbnNr
eWkgd3JvdGU6DQo+PiBIZWxsbyBldmVyeW9uZSENCj4gDQo+IEhlbGxvIExlb25pZCwNCj4gDQo+
Pg0KPj4gIyMjIEJhY2tncm91bmQNCj4+IFVubGlrZSB0aGUgTGludXgga2VybmVsLCB3aGljaCBo
YXMgc3VwcG9ydGVkIGV4dGVuZGVkIHNoYXJlZCBwZXJpcGhlcmFsDQo+PiBpbnRlcnJ1cHRzIChl
U1BJcykgc2luY2UgMjAxOSBbMV0sIFhlbiBjdXJyZW50bHkgbGFja3Mgc3VwcG9ydCBmb3IgdGhp
cw0KPj4gaW50ZXJydXB0IHJhbmdlLiBGb3IgU29DcyB3aXRoIEdJQ3YzLjErLCB0aGlzIGZlYXR1
cmUgbWF5IGJlIGVzc2VudGlhbA0KPj4gYmVjYXVzZSBjcml0aWNhbCBkZXZpY2VzLCBzdWNoIGFz
IGNvbnNvbGVzIHJlcXVpcmVkIGZvciBib290aW5nIFhlbg0KPj4gaXRzZWxmLCBtYXkgcmVseSBv
biBlU1BJcy4gQWRkaXRpb25hbGx5LCB0aGVzZSBwbGF0Zm9ybXMgcmVxdWlyZSBlU1BJDQo+PiBz
dXBwb3J0IGZvciBmdWxseSBmdW5jdGlvbmFsIGRvbWFpbnMsIGFzIGFueSBkZXZpY2UgdXNpbmcg
ZVNQSXMgY2Fubm90DQo+PiBjdXJyZW50bHkgYmUgdXNlZCB3aXRoIFhlbiBzZXR1cHMuIFdpdGhv
dXQgZVNQSSBzdXBwb3J0LCBYZW4gY2Fubm90IHJ1bg0KPj4gcHJvcGVybHkgb24gdGhlc2UgcGxh
dGZvcm1zLCBzaWduaWZpY2FudGx5IGxpbWl0aW5nIGl0cyB1c2FiaWxpdHkgb24NCj4+IG1vZGVy
biBBUk0gaGFyZHdhcmUuDQo+Pg0KPj4gVGhpcyBwYXRjaCBzZXJpZXMgYWRkcyBzdXBwb3J0IGZv
ciB0aGUgZXh0ZW5kZWQgc2hhcmVkIHBlcmlwaGVyYWwNCj4+IGludGVycnVwdCAoZVNQSSkgcmFu
Z2UgKElOVElEcyA0MDk2LTUxMTkgWzJdKHJhbmdlcyBvZiBJTlRJRHMpKSBmb3IgWGVuDQo+PiBh
bmQgZ3Vlc3QgZG9tYWlucy4gVGhlIGltcGxlbWVudGF0aW9uIHVzZXMgYSBnZW5lcmljIGFwcHJv
YWNoIHRvIGhhbmRsZQ0KPj4gZVNQSXMsIHNpbWlsYXIgdG8gcmVndWxhciBTUElzLCB3aGlsZSBt
YWludGFpbmluZyBjb21wYXRpYmlsaXR5IHdpdGggdGhlDQo+PiBleGlzdGluZyBTUEkgcmFuZ2Uu
IEZ1bmN0aW9uYWxpdHkgcmVtYWlucyB1bmNoYW5nZWQgZm9yIHNldHVwcyB0aGF0IGRvDQo+PiBu
b3QgcmVxdWlyZSBlU1BJcy4NCj4gDQo+IA0KPiBJIGhhdmUgbGlnaHRseSByZS1jaGVja2VkIHRo
ZSBzaW1wbGUgQXJtNjQgWGVuIGVudmlyb25tZW50IChkb20wbGVzcyANCj4gRG9tVSB1bmRlciBR
RU1VKSB3aXRoIHlvdXIgc2VyaWVzIGFwcGxpZWQuIFRvIGJlIGNsZWFyLCBJIGRpZCBub3QgcmVh
bGx5IA0KPiB0ZXN0IHRoZSBlU1BJIHN1cHBvcnQgKHRoZSB1bmRlcmx5aW5nIEdJQ3YzIEhXIGRv
ZXMgc3VwcG9ydCBpdCk7IEkganVzdCANCj4gd2FudGVkIHRvIGVuc3VyZSB0aGF0IHlvdXIgc2Vy
aWVzIHdvdWxkIG5vdCBicmVhayBhbnl0aGluZy4gU28sIGluIGJvdGggDQo+IGNhc2VzIChDT05G
SUdfR0lDVjNfRVNQST15IGFuZCBDT05GSUdfR0lDVjNfRVNQST1uKSwgSSBkaWQgbm90IG5vdGlj
ZSANCj4gYW55IGlzc3VlcyAoYXQgbGVhc3Qgb2J2aW91cykgcmVsYXRlZCB0byBHSUN2MyBlbXVs
YXRpb24gYW5kIFNQSSANCj4gaW5qZWN0aW9uIGZvciB0aGUgcGFzc2VkLXRocm91Z2ggZGV2aWNl
Lg0KPiANCg0KVGhhbmsgeW91IGZvciB5b3VyIHZlcmlmaWNhdGlvbiBhbmQgcHJvdmluZyB0aGF0
IGFsbCB3b3JrcyBhcyBleHBlY3RlZCANCm9uIHNldHVwIHdpdGhvdXQgSFcgZVNQSSBzdXBwb3J0
OikNCg0KPiBBbHNvLCBJIHRoaW5rIHlvdSB3YW50IHRvIGRlc2NyaWJlIHRoZSBlU1BJIGZlYXR1
cmUgaW4gdGhlIENIQU5HRUxPRy5tZC4NCj4gDQo+IA0KPiBbc25pcF0NCg0KT2theSwgSSB3aWxs
IGFkZCBvbmUgbW9yZSBwYXRjaCBpbiBWMyB0byB1cGRhdGUgdGhlIENIQU5HRUxPRy5tZCBmaWxl
Lg0KDQpCZXN0IHJlZ2FyZHMsDQpMZW9uaWQNCg==


From xen-devel-bounces@lists.xenproject.org Sun Aug 24 22:37:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 Aug 2025 22:37:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1092338.1448253 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqJKW-0005IV-Ud; Sun, 24 Aug 2025 22:36:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1092338.1448253; Sun, 24 Aug 2025 22:36: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 1uqJKW-0005IC-O6; Sun, 24 Aug 2025 22:36:52 +0000
Received: by outflank-mailman (input) for mailman id 1092338;
 Sun, 24 Aug 2025 22:36:52 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/oRm=3E=gmail.com=demiobenour@srs-se1.protection.inumbo.net>)
 id 1uqJKW-0005I6-15
 for xen-devel@lists.xenproject.org; Sun, 24 Aug 2025 22:36:52 +0000
Received: from mail-yw1-x112d.google.com (mail-yw1-x112d.google.com
 [2607:f8b0:4864:20::112d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d2912152-813a-11f0-b898-0df219b8e170;
 Mon, 25 Aug 2025 00:36:49 +0200 (CEST)
Received: by mail-yw1-x112d.google.com with SMTP id
 00721157ae682-71d603b62adso31936417b3.1
 for <xen-devel@lists.xenproject.org>; Sun, 24 Aug 2025 15:36:49 -0700 (PDT)
Received: from [10.138.34.110]
 (h96-60-249-169.cncrtn.broadband.dynamic.tds.net. [96.60.249.169])
 by smtp.gmail.com with ESMTPSA id
 956f58d0204a3-5f65afbae8fsm1503531d50.8.2025.08.24.15.36.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 24 Aug 2025 15:36: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>
X-Inumbo-ID: d2912152-813a-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756075008; x=1756679808; 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=E5lr/AQtLAqZq3v1ZR7nVSiFDCC1+Q5yhcPqfaLEw/U=;
        b=fQ5jhilcEbpnFkSXNhVt5J+5igdjuMcp8WugGftTgvgUYS47VOUYEaaTDuzkSm4Rfx
         /vQo7pecH0EjgR0+oHGgVwlNdGXLy1tI5LXg7S4dhVHCloxDea56OXdzfSi0+G1m5ma+
         NHwagcodWPZ6uvUK8mIt3SxNjj389W22IQxxQLeEjqOH8UqZfP6x+C7R8nWIulsJFfEO
         3XN7faDt2xTNVVAdeweTGbmPfX5cevcB5LwcFH7DN43OyJKMOMSqUI7C3W9aqphc38mm
         /tUM1Vp+tlWhnmV1Dwqwip88SSiilEp0MmijjNDZR0hkEard8y03xn1CWIJjnxTN9skm
         4VNw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756075008; x=1756679808;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=E5lr/AQtLAqZq3v1ZR7nVSiFDCC1+Q5yhcPqfaLEw/U=;
        b=Pw1rj0ltXG5uEIlXFSL4MRLWnU7efBTDSoc0uo7kBjwgDFhCaTshg2tgvmPn/5n4QG
         RqW+q1yyc717P9Zu1s1AOxAe07EdPekCBgvr6uLbS+sILGSVri265+OiWsQLF4X+Fz0u
         uJuKHPIljg8DHie2dWG5CqyEs9gfhALgQTz4ClSBTeUKPwq5TKhOHcRVE7rdzJMDIlmz
         vqAuthIyXWVCXUFg2GuPjubdx6GOv9jPOt+p0LDkjQUzceY/1VEQGO2Lu7cmD91wt5C4
         uuDaACf8lmeLv3KEAQUGwu1+0uK389H1j2QuKeVfP4NbisdaFYgb+vlmDwEXgr5pttfh
         0d9w==
X-Forwarded-Encrypted: i=1; AJvYcCWwAgf90wrzK4TfvC7AP4AWZtt8aShrS8xvSEzyCTkNhjJNPR6iFFuAMwyUzIaSjDLQ03yXZb03e94=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz1XnRFs6Si/9U0/gumg87S7b6Fsxkb5Ee3/VgjGgB5+zZmr9Jn
	9S7ZaSq6nVxblJDs0+KTem/ZF6TNw0fvPFuacf8NtFBBF5Ho2Zs6mUJ9
X-Gm-Gg: ASbGncsUSzX8W2JeziIR7Og36Xc4YU7zNRI0C7bdOJNYECfKvP35acNedw6SS3R2Ztb
	8SMgu3fl9es2s9L7YDidirGL7QJxbZv9FZW0tG3uAo2dSM1DtIEaabuD2+jw9J3oDqhLHuyslF2
	/ej0gXIS7gTzeglmcrN3MZqeSjMlaYGau/CWkXSyBuUL55jrpX3AnJ2ntuMki2GdI0WMN5ST44d
	AmvW9T5eR4uJy29vMlXIdyCprOdDD0vDXGDHCsy5FV8L9+/iO+kOiaUO0OcVAnl0apQ5Wj1xuGX
	V16tg7DgNklB5uF1odwassTvzD75LkzpvdxrGFsyZeqPmTE9uUFM6Hbc5lZU8hJVdwHeDjOKydD
	g41HhsZ3F5OGr11u11fEdHgn9XYVWCHcwVltALU6IT64dbUJtbehHkwWW7WWTGMnkT/5IIp0IB+
	Fuy11wZZOioLgy3wxlUnqD2vN1zmoFxnzgzkQ=
X-Google-Smtp-Source: AGHT+IHH6NXbX8d7p4iZNKBtg0n11VzeNNNTAANQiMVQwJVuZjMiSifjk0XJsUKxU8lbT4J30p1UNQ==
X-Received: by 2002:a05:690c:4983:b0:71c:b49:4886 with SMTP id 00721157ae682-71fdc3e8e88mr115308897b3.29.1756075008559;
        Sun, 24 Aug 2025 15:36:48 -0700 (PDT)
Message-ID: <66e689fd-53b1-4f8a-bd1c-2c91738f8d74@gmail.com>
Date: Sun, 24 Aug 2025 18:36:33 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 9/9] tools: Introduce abi-tool
To: Teddy Astie <teddy.astie@vates.tech>, 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: <cover.1755785258.git.teddy.astie@vates.tech>
 <20b01deb2f53351103fce2e36a586a6a996a841b.1755785258.git.teddy.astie@vates.tech>
Content-Language: en-US
From: Demi Marie Obenour <demiobenour@gmail.com>
Autocrypt: addr=demiobenour@gmail.com; keydata=
 xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49yB+l2nipd
 aq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYfbWpr/si88QKgyGSV
 Z7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/UorR+FaSuVwT7rqzGrTlscnT
 DlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7MMPCJwI8JpPlBedRpe9tfVyfu3euTPLPx
 wcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9Hzx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR
 6h3nBc3eyuZ+q62HS1pJ5EvUT1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl
 5FMWo8TCniHynNXsBtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2
 Bkg1b//r6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
 9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nSm9BBff0N
 m0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQABzTxEZW1pIE1hcmll
 IE9iZW5vdXIgKGxvdmVyIG9mIGNvZGluZykgPGRlbWlvYmVub3VyQGdtYWlsLmNvbT7CwXgE
 EwECACIFAlp+A0oCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJELKItV//nCLBhr8Q
 AK/xrb4wyi71xII2hkFBpT59ObLN+32FQT7R3lbZRjVFjc6yMUjOb1H/hJVxx+yo5gsSj5LS
 9AwggioUSrcUKldfA/PKKai2mzTlUDxTcF3vKx6iMXKA6AqwAw4B57ZEJoMM6egm57TV19kz
 PMc879NV2nc6+elaKl+/kbVeD3qvBuEwsTe2Do3HAAdrfUG/j9erwIk6gha/Hp9yZlCnPTX+
 VK+xifQqt8RtMqS5R/S8z0msJMI/ajNU03kFjOpqrYziv6OZLJ5cuKb3bZU5aoaRQRDzkFIR
 6aqtFLTohTo20QywXwRa39uFaOT/0YMpNyel0kdOszFOykTEGI2u+kja35g9TkH90kkBTG+a
 EWttIht0Hy6YFmwjcAxisSakBuHnHuMSOiyRQLu43ej2+mDWgItLZ48Mu0C3IG1seeQDjEYP
 tqvyZ6bGkf2Vj+L6wLoLLIhRZxQOedqArIk/Sb2SzQYuxN44IDRt+3ZcDqsPppoKcxSyd1Ny
 2tpvjYJXlfKmOYLhTWs8nwlAlSHX/c/jz/ywwf7eSvGknToo1Y0VpRtoxMaKW1nvH0OeCSVJ
 itfRP7YbiRVc2aNqWPCSgtqHAuVraBRbAFLKh9d2rKFB3BmynTUpc1BQLJP8+D5oNyb8Ts4x
 Xd3iV/uD8JLGJfYZIR7oGWFLP4uZ3tkneDfYzsFNBFp+A0oBEAC9ynZI9LU+uJkMeEJeJyQ/
 8VFkCJQPQZEsIGzOTlPnwvVna0AS86n2Z+rK7R/usYs5iJCZ55/JISWd8xD57ue0eB47bcJv
 VqGlObI2DEG8TwaW0O0duRhDgzMEL4t1KdRAepIESBEA/iPpI4gfUbVEIEQuqdqQyO4GAe+M
 kD0Hy5JH/0qgFmbaSegNTdQg5iqYjRZ3ttiswalql1/iSyv1WYeC1OAs+2BLOAT2NEggSiVO
 txEfgewsQtCWi8H1SoirakIfo45Hz0tk/Ad9ZWh2PvOGt97Ka85o4TLJxgJJqGEnqcFUZnJJ
 riwoaRIS8N2C8/nEM53jb1sH0gYddMU3QxY7dYNLIUrRKQeNkF30dK7V6JRH7pleRlf+wQcN
 fRAIUrNlatj9TxwivQrKnC9aIFFHEy/0mAgtrQShcMRmMgVlRoOA5B8RTulRLCmkafvwuhs6
 dCxN0GNAORIVVFxjx9Vn7OqYPgwiofZ6SbEl0hgPyWBQvE85klFLZLoj7p+joDY1XNQztmfA
 rnJ9x+YV4igjWImINAZSlmEcYtd+xy3Li/8oeYDAqrsnrOjb+WvGhCykJk4urBog2LNtcyCj
 kTs7F+WeXGUo0NDhbd3Z6AyFfqeF7uJ3D5hlpX2nI9no/ugPrrTVoVZAgrrnNz0iZG2DVx46
 x913pVKHl5mlYQARAQABwsFfBBgBAgAJBQJafgNKAhsMAAoJELKItV//nCLBwNIP/AiIHE8b
 oIqReFQyaMzxq6lE4YZCZNj65B/nkDOvodSiwfwjjVVE2V3iEzxMHbgyTCGA67+Bo/d5aQGj
 gn0TPtsGzelyQHipaUzEyrsceUGWYoKXYyVWKEfyh0cDfnd9diAm3VeNqchtcMpoehETH8fr
 RHnJdBcjf112PzQSdKC6kqU0Q196c4Vp5HDOQfNiDnTf7gZSj0BraHOByy9LEDCLhQiCmr+2
 E0rW4tBtDAn2HkT9uf32ZGqJCn1O+2uVfFhGu6vPE5qkqrbSE8TG+03H8ecU2q50zgHWPdHM
 OBvy3EhzfAh2VmOSTcRK+tSUe/u3wdLRDPwv/DTzGI36Kgky9MsDC5gpIwNbOJP2G/q1wT1o
 Gkw4IXfWv2ufWiXqJ+k7HEi2N1sree7Dy9KBCqb+ca1vFhYPDJfhP75I/VnzHVssZ/rYZ9+5
 1yDoUABoNdJNSGUYl+Yh9Pw9pE3Kt4EFzUlFZWbE4xKL/NPno+z4J9aWemLLszcYz/u3XnbO
 vUSQHSrmfOzX3cV4yfmjM5lewgSstoxGyTx2M8enslgdXhPthZlDnTnOT+C+OTsh8+m5tos8
 HQjaPM01MKBiAqdPgksm1wu2DrrwUi6ChRVTUBcj6+/9IJ81H2P2gJk3Ls3AVIxIffLoY34E
 +MYSfkEjBz0E8CLOcAw7JIwAaeBT
In-Reply-To: <20b01deb2f53351103fce2e36a586a6a996a841b.1755785258.git.teddy.astie@vates.tech>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------feW2SFrGnDVdMdAm5bboP9Jf"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------feW2SFrGnDVdMdAm5bboP9Jf
Content-Type: multipart/mixed; boundary="------------V3O1bMKqyTNGzFAPn771Phe0";
 protected-headers="v1"
From: Demi Marie Obenour <demiobenour@gmail.com>
To: Teddy Astie <teddy.astie@vates.tech>, 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: <66e689fd-53b1-4f8a-bd1c-2c91738f8d74@gmail.com>
Subject: Re: [RFC PATCH 9/9] tools: Introduce abi-tool
References: <cover.1755785258.git.teddy.astie@vates.tech>
 <20b01deb2f53351103fce2e36a586a6a996a841b.1755785258.git.teddy.astie@vates.tech>
In-Reply-To: <20b01deb2f53351103fce2e36a586a6a996a841b.1755785258.git.teddy.astie@vates.tech>

--------------V3O1bMKqyTNGzFAPn771Phe0
Content-Type: multipart/mixed; boundary="------------Vb0IvtBjAfR9Q6kISq8xoBoE"

--------------Vb0IvtBjAfR9Q6kISq8xoBoE
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On 8/21/25 11:25, Teddy Astie wrote:
> abi-tool is a small Rust tool that is able to parse ABI yaml
> files and generate C stubs for performing hypercalls.
>=20
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
Would it make sense to generate the hypervisor side of the
interface in this way as well?
--=20
Sincerely,
Demi Marie Obenour (she/her/hers)
--------------Vb0IvtBjAfR9Q6kISq8xoBoE
Content-Type: application/pgp-keys; name="OpenPGP_0xB288B55FFF9C22C1.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB288B55FFF9C22C1.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

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

xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49y
B+l2nipdaq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYf
bWpr/si88QKgyGSVZ7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/
UorR+FaSuVwT7rqzGrTlscnTDlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7M
MPCJwI8JpPlBedRpe9tfVyfu3euTPLPxwcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9H
zx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR6h3nBc3eyuZ+q62HS1pJ5EvU
T1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl5FMWo8TCniHynNXs
BtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2Bkg1b//r
6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nS
m9BBff0Nm0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQAB
zTxEZW1pIE9iZW5vdXIgKElUTCBFbWFpbCBLZXkpIDxhdGhlbmFAaW52aXNpYmxl
dGhpbmdzbGFiLmNvbT7CwY4EEwEIADgWIQR2h02fEza6IlkHHHGyiLVf/5wiwQUC
X6YJvQIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRCyiLVf/5wiwWRhD/0Y
R+YYC5Kduv/2LBgQJIygMsFiRHbR4+tWXuTFqgrxxFSlMktZ6gQrQCWe38WnOXkB
oY6n/5lSJdfnuGd2UagZ/9dkaGMUkqt+5WshLFly4BnP7pSsWReKgMP7etRTwn3S
zk1OwFx2lzY1EnnconPLfPBc6rWG2moA6l0WX+3WNR1B1ndqpl2hPSjT2jUCBWDV
rGOUSX7r5f1WgtBeNYnEXPBCUUM51pFGESmfHIXQrqFDA7nBNiIVFDJTmQzuEqIy
Jl67pKNgooij5mKzRhFKHfjLRAH4mmWZlB9UjDStAfFBAoDFHwd1HL5VQCNQdqEc
/9lZDApqWuCPadZN+pGouqLysesIYsNxUhJ7dtWOWHl0vs7/3qkWmWun/2uOJMQh
ra2u8nA9g91FbOobWqjrDd6x3ZJoGQf4zLqjmn/P514gb697788e573WN/MpQ5XI
Fl7aM2d6/GJiq6LC9T2gSUW4rbPBiqOCeiUx7Kd/sVm41p9TOA7fEG4bYddCfDsN
xaQJH6VRK3NOuBUGeL+iQEVF5Xs6Yp+U+jwvv2M5Lel3EqAYo5xXTx4ls0xaxDCu
fudcAh8CMMqx3fguSb7Mi31WlnZpk0fDuWQVNKyDP7lYpwc4nCCGNKCj622ZSocH
AcQmX28L8pJdLYacv9pU3jPy4fHcQYvmTavTqowGnM08RGVtaSBNYXJpZSBPYmVu
b3VyIChsb3ZlciBvZiBjb2RpbmcpIDxkZW1pb2Jlbm91ckBnbWFpbC5jb20+wsF4
BBMBAgAiBQJafgNKAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRCyiLVf
/5wiwYa/EACv8a2+MMou9cSCNoZBQaU+fTmyzft9hUE+0d5W2UY1RY3OsjFIzm9R
/4SVccfsqOYLEo+S0vQMIIIqFEq3FCpXXwPzyimotps05VA8U3Bd7yseojFygOgK
sAMOAee2RCaDDOnoJue01dfZMzzHPO/TVdp3OvnpWipfv5G1Xg96rwbhMLE3tg6N
xwAHa31Bv4/Xq8CJOoIWvx6fcmZQpz01/lSvsYn0KrfEbTKkuUf0vM9JrCTCP2oz
VNN5BYzqaq2M4r+jmSyeXLim922VOWqGkUEQ85BSEemqrRS06IU6NtEMsF8EWt/b
hWjk/9GDKTcnpdJHTrMxTspExBiNrvpI2t+YPU5B/dJJAUxvmhFrbSIbdB8umBZs
I3AMYrEmpAbh5x7jEjoskUC7uN3o9vpg1oCLS2ePDLtAtyBtbHnkA4xGD7ar8mem
xpH9lY/i+sC6CyyIUWcUDnnagKyJP0m9ks0GLsTeOCA0bft2XA6rD6aaCnMUsndT
ctrab42CV5XypjmC4U1rPJ8JQJUh1/3P48/8sMH+3krxpJ06KNWNFaUbaMTGiltZ
7x9DngklSYrX0T+2G4kVXNmjaljwkoLahwLla2gUWwBSyofXdqyhQdwZsp01KXNQ
UCyT/Pg+aDcm/E7OMV3d4lf7g/CSxiX2GSEe6BlhSz+Lmd7ZJ3g32M1ARGVtaSBN
YXJpZSBPYmVub3VyIChJVEwgRW1haWwgS2V5KSA8ZGVtaUBpbnZpc2libGV0aGlu
Z3NsYWIuY29tPsLBjgQTAQgAOBYhBHaHTZ8TNroiWQcccbKItV//nCLBBQJgOEV+
AhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJELKItV//nCLBKwoP/1WSnFdv
SAD0g7fD0WlF+oi7ISFT7oqJnchFLOwVHK4Jg0e4hGn1ekWsF3Ha5tFLh4V/7UUu
obYJpTfBAA2CckspYBqLtKGjFxcaqjjpO1I2W/jeNELVtSYuCOZICjdNGw2Hl9yH
KRZiBkqc9u8lQcHDZKq4LIpVJj6ZQV/nxttDX90ax2No1nLLQXFbr5wb465LAPpU
lXwunYDij7xJGye+VUASQh9datye6orZYuJvNo8Tr3mAQxxkfR46LzWgxFCPEAZJ
5P56Nc0IMHdJZj0Uc9+1jxERhOGppp5jlLgYGK7faGB/jTV6LaRQ4Ad+xiqokDWp
mUOZsmA+bMbtPfYjDZBz5mlyHcIRKIFpE1l3Y8F7PhJuzzMUKkJi90CYakCV4x/a
Zs4pzk5E96c2VQx01RIEJ7fzHF7lwFdtfTS4YsLtAbQFsKayqwkGcVv2B1AHeqdo
TMX+cgDvjd1ZganGlWA8Sv9RkNSMchn1hMuTwERTyFTr2dKPnQdA1F480+jUap41
ClXgn227WkCIMrNhQGNyJsnwyzi5wS8rBVRQ3BOTMyvGM07j3axUOYaejEpg7wKi
wTPZGLGH1sz5GljD/916v5+v2xLbOo5606j9dWf5/tAhbPuqrQgWv41wuKDi+dDD
EKkODF7DHes8No+QcHTDyETMn1RYm7t0RKR4zsFNBFp+A0oBEAC9ynZI9LU+uJkM
eEJeJyQ/8VFkCJQPQZEsIGzOTlPnwvVna0AS86n2Z+rK7R/usYs5iJCZ55/JISWd
8xD57ue0eB47bcJvVqGlObI2DEG8TwaW0O0duRhDgzMEL4t1KdRAepIESBEA/iPp
I4gfUbVEIEQuqdqQyO4GAe+MkD0Hy5JH/0qgFmbaSegNTdQg5iqYjRZ3ttiswalq
l1/iSyv1WYeC1OAs+2BLOAT2NEggSiVOtxEfgewsQtCWi8H1SoirakIfo45Hz0tk
/Ad9ZWh2PvOGt97Ka85o4TLJxgJJqGEnqcFUZnJJriwoaRIS8N2C8/nEM53jb1sH
0gYddMU3QxY7dYNLIUrRKQeNkF30dK7V6JRH7pleRlf+wQcNfRAIUrNlatj9Txwi
vQrKnC9aIFFHEy/0mAgtrQShcMRmMgVlRoOA5B8RTulRLCmkafvwuhs6dCxN0GNA
ORIVVFxjx9Vn7OqYPgwiofZ6SbEl0hgPyWBQvE85klFLZLoj7p+joDY1XNQztmfA
rnJ9x+YV4igjWImINAZSlmEcYtd+xy3Li/8oeYDAqrsnrOjb+WvGhCykJk4urBog
2LNtcyCjkTs7F+WeXGUo0NDhbd3Z6AyFfqeF7uJ3D5hlpX2nI9no/ugPrrTVoVZA
grrnNz0iZG2DVx46x913pVKHl5mlYQARAQABwsFfBBgBAgAJBQJafgNKAhsMAAoJ
ELKItV//nCLBwNIP/AiIHE8boIqReFQyaMzxq6lE4YZCZNj65B/nkDOvodSiwfwj
jVVE2V3iEzxMHbgyTCGA67+Bo/d5aQGjgn0TPtsGzelyQHipaUzEyrsceUGWYoKX
YyVWKEfyh0cDfnd9diAm3VeNqchtcMpoehETH8frRHnJdBcjf112PzQSdKC6kqU0
Q196c4Vp5HDOQfNiDnTf7gZSj0BraHOByy9LEDCLhQiCmr+2E0rW4tBtDAn2HkT9
uf32ZGqJCn1O+2uVfFhGu6vPE5qkqrbSE8TG+03H8ecU2q50zgHWPdHMOBvy3Ehz
fAh2VmOSTcRK+tSUe/u3wdLRDPwv/DTzGI36Kgky9MsDC5gpIwNbOJP2G/q1wT1o
Gkw4IXfWv2ufWiXqJ+k7HEi2N1sree7Dy9KBCqb+ca1vFhYPDJfhP75I/VnzHVss
Z/rYZ9+51yDoUABoNdJNSGUYl+Yh9Pw9pE3Kt4EFzUlFZWbE4xKL/NPno+z4J9aW
emLLszcYz/u3XnbOvUSQHSrmfOzX3cV4yfmjM5lewgSstoxGyTx2M8enslgdXhPt
hZlDnTnOT+C+OTsh8+m5tos8HQjaPM01MKBiAqdPgksm1wu2DrrwUi6ChRVTUBcj
6+/9IJ81H2P2gJk3Ls3AVIxIffLoY34E+MYSfkEjBz0E8CLOcAw7JIwAaeBTzsFN
BGbyLVgBEACqClxh50hmBepTSVlan6EBq3OAoxhrAhWZYEwN78k+ENhK68KhqC5R
IsHzlL7QHW1gmfVBQZ63GnWiraM6wOJqFTL4ZWvRslga9u28FJ5XyK860mZLgYhK
9BzoUk4s+dat9jVUbq6LpQ1Ot5I9vrdzo2p1jtQ8h9WCIiFxSYy8s8pZ3hHh5T64
GIj1m/kY7lG3VIdUgoNiREGf/iOMjUFjwwE9ZoJ26j9p7p1U+TkKeF6wgswEB1T3
J8KCAtvmRtqJDq558IU5jhg5fgN+xHB8cgvUWulgK9FIF9oFxcuxtaf/juhHWKMO
RtL0bHfNdXoBdpUDZE+mLBUAxF6KSsRrvx6AQyJs7VjgXJDtQVWvH0PUmTrEswgb
49nNU+dLLZQAZagxqnZ9Dp5l6GqaGZCHERJcLmdY/EmMzSf5YazJ6c0vO8rdW27M
kn73qcWAplQn5mOXaqbfzWkAUPyUXppuRHfrjxTDz3GyJJVOeMmMrTxH4uCaGpOX
Z8tN6829J1roGw4oKDRUQsaBAeEDqizXMPRc+6U9vI5FXzbAsb+8lKW65G7JWHym
YPOGUt2hK4DdTA1PmVo0DxH00eWWeKxqvmGyX+Dhcg+5e191rPsMRGsDlH6KihI6
+3JIuc0y6ngdjcp6aalbuvPIGFrCRx3tnRtNc7He6cBWQoH9RPwluwARAQABwsOs
BBgBCgAgFiEEdodNnxM2uiJZBxxxsoi1X/+cIsEFAmbyLVgCGwICQAkQsoi1X/+c
IsHBdCAEGQEKAB0WIQSilC2pUlbVp66j3+yzNoc6synyUwUCZvItWAAKCRCzNoc6
synyU85gD/0T1QDtPhovkGwoqv4jUbEMMvpeYQf+oWgm/TjWPeLwdjl7AtY0G9Ml
ZoyGniYkoHi37Gnn/ShLT3B5vtyI58ap2+SSa8SnGftdAKRLiWFWCiAEklm9FRk8
N3hwxhmSFF1KR/AIDS4g+HIsZn7YEMubBSgLlZZ9zHl4O4vwuXlREBEW97iL/FSt
VownU2V39t7PtFvGZNk+DJH7eLO3jmNRYB0PL4JOyyda3NH/J92iwrFmjFWWmmWb
/Xz8l9DIs+Z59pRCVTTwbBEZhcUc7rVMCcIYL+q1WxBG2e6lMn15OQJ5WfiE6E0I
sGirAEDnXWx92JNGx5l+mMpdpsWhBZ5iGTtttZesibNkQfd48/eCgFi4cxJUC4PT
UQwfD9AMgzwSTGJrkI5XGy+XqxwOjL8UA0iIrtTpMh49zw46uV6kwFQCgkf32jZM
OLwLTNSzclbnA7GRd8tKwezQ/XqeK3dal2n+cOr+o+Eka7yGmGWNUqFbIe8cjj9T
JeF3mgOCmZOwMI+wIcQYRSf+e5VTMO6TNWH5BI3vqeHSt7HkYuPlHT0pGum88d4a
pWqhulH4rUhEMtirX1hYx8Q4HlUOQqLtxzmwOYWkhl1C+yPObAvUDNiHCLf9w28n
uihgEkzHt9J4VKYulyJM9fe3ENcyU6rpXD7iANQqcr87ogKXFxknZ97uEACvSucc
RbnnAgRqZ7GDzgoBerJ2zrmhLkeREZ08iz1zze1JgyW3HEwdr2UbyAuqvSADCSUU
GN0vtQHsPzWl8onRc7lOPqPDF8OO+UfN9NAfA4wl3QyChD1GXl9rwKQOkbvdlYFV
UFx9u86LNi4ssTmU8p9NtHIGpz1SYMVYNoYy9NU7EVqypGMguDCL7gJt6GUmA0sw
p+YCroXiwL2BJ7RwRqTpgQuFL1gShkA17D5jK4mDPEetq1d8kz9rQYvAR/sTKBsR
ImC3xSfn8zpWoNTTB6lnwyP5Ng1bu6esS7+SpYprFTe7ZqGZF6xhvBPf1Ldi9UAm
U2xPN1/eeWxEa2kusidmFKPmN8lcT4miiAvwGxEnY7Oww9CgZlUB+LP4dl5VPjEt
sFeAhrgxLdpVTjPRRwTd9VQF3/XYl83j5wySIQKIPXgT3sG3ngAhDhC8I8GpM36r
8WJJ3x2yVzyJUbBPO0GBhWE2xPNIfhxVoU4cGGhpFqz7dPKSTRDGq++MrFgKKGpI
ZwT3CPTSSKc7ySndEXWkOYArDIdtyxdE1p5/c3aoz4utzUU7NDHQ+vVIwlnZSMiZ
jek2IJP3SZ+COOIHCVxpUaZ4lnzWT4eDqABhMLpIzw6NmGfg+kLBJhouqz81WITr
EtJuZYM5blWncBOJCoWMnBEcTEo/viU3GgcVRw=3D=3D
=3Dx94R
-----END PGP PUBLIC KEY BLOCK-----

--------------Vb0IvtBjAfR9Q6kISq8xoBoE--

--------------V3O1bMKqyTNGzFAPn771Phe0--

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

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

iQIzBAEBCgAdFiEEopQtqVJW1aeuo9/sszaHOrMp8lMFAmirk/oACgkQszaHOrMp
8lPsTQ/+MvgRtn7mrHOpnHO86kSRT/Soov35QnwIFN5MzHlPzH4J5z0gsKvD7BiG
sCGd6UiWvZ2kTByDgaRglOHlgtjSVL4ta7H3wpjzZpK/UtjywE3uwi0Cad9aGRUM
/qcyA4tVRqhzpYQnTVifV2/Hx8JkX7R3WORAG/9Hx6u3YKSYT5SahGqs3WDWK0vK
7WkTq7Xfy05G81tsCqkX7oywsKh9XcRnxi52PBI1xAT8R+NJP4T4rY5Uswi5AeMm
zESovWe5MY9j8FSQkud3lWXCkMr0OqJ+nwQOgFr4BA7ni4t5MeVPk12ZyK6OX2HU
kUkilUh1w2qqcsO3tY0B/IRiIMIDvETARgnrbvzCGbaDj9TuHLIP7xU3qFdG+Lim
aVhlQudQ9OfzN3aW8ZkE1YleNLZTb/6pECGTOm/C60uAWtKaEeFDBxV+Vf/JT2xn
dNs7CkpScJCt0QWpwB0gVARZUNpz3MHS7fEkyEkX3J7E8QvBbqSjXje0+sJLv25v
gZEd30pqQxQEM48Q+6RnBVnH6Hf3F4atd53HrDHDj96KW5xXOjqvx4ZBZ3A29hRV
vjJvspUgM/Wp3rumCQVEogmo4B0z4fck5VlpmLqJt6LpI9JFqm7VULxW+2jyDk+c
neIQ5zLkzCtfdFAQ7pwZAdRbqFrkCsXNnNb1NBBpFFkWENSVs1M=
=FJoK
-----END PGP SIGNATURE-----

--------------feW2SFrGnDVdMdAm5bboP9Jf--


From xen-devel-bounces@lists.xenproject.org Sun Aug 24 22:39:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 Aug 2025 22:39:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1092351.1448263 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqJNF-0005sj-Be; Sun, 24 Aug 2025 22:39:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1092351.1448263; Sun, 24 Aug 2025 22:39:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqJNF-0005sc-8n; Sun, 24 Aug 2025 22:39:41 +0000
Received: by outflank-mailman (input) for mailman id 1092351;
 Sun, 24 Aug 2025 22:39:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/oRm=3E=gmail.com=demiobenour@srs-se1.protection.inumbo.net>)
 id 1uqJND-0005sW-QQ
 for xen-devel@lists.xenproject.org; Sun, 24 Aug 2025 22:39:39 +0000
Received: from mail-yw1-x112f.google.com (mail-yw1-x112f.google.com
 [2607:f8b0:4864:20::112f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 347a5f23-813b-11f0-b898-0df219b8e170;
 Mon, 25 Aug 2025 00:39:33 +0200 (CEST)
Received: by mail-yw1-x112f.google.com with SMTP id
 00721157ae682-71d6059f490so32363307b3.3
 for <xen-devel@lists.xenproject.org>; Sun, 24 Aug 2025 15:39:34 -0700 (PDT)
Received: from [10.138.34.110]
 (h96-60-249-169.cncrtn.broadband.dynamic.tds.net. [96.60.249.169])
 by smtp.gmail.com with ESMTPSA id
 956f58d0204a3-5f65afbaf1esm1451633d50.9.2025.08.24.15.39.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 24 Aug 2025 15:39: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>
X-Inumbo-ID: 347a5f23-813b-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756075173; x=1756679973; 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=oMbQIfJKYSoGc/NO7VkeX8r0AyWhrg2eAd5PQBDEokc=;
        b=GYIMMwFOXmvF98xqfXNGYN+M+iJqeERxQN/RO/XX3TXnkVdL1lTzql5wwDo2TPSO4M
         yZ6PwU9eWk1IC5MqeAHylQyPsyeiHuAoZYWqKZ81obSgXfjR8Dz+uvh3sZLXnjAeiL2W
         tIcaVoSUuDou2OQGw58Oaqq6PRPJI4U2P045nkIJR1Y1a1sWCJw7ft3hsOitgJE8bpi7
         3ako7sPxy8n7xsuB6MbvmaCiFNJC+rGLT1R/eMWSWSRbj/j8cVGAg7y1sJ+lgp49Y4qC
         dfPBKc+5d5mKLp78muspP5Xggls/17dIuAK9+9FMDYBwXXRH9+VVT0fyb4MKndpiXSsi
         y00g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756075173; x=1756679973;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=oMbQIfJKYSoGc/NO7VkeX8r0AyWhrg2eAd5PQBDEokc=;
        b=Zm4Xk9rGjZ98d+QtG9lR+vzadoDMATEIhTV7nvSZl6tZclLSiooMTblFQk7iNhBVUj
         qQ+8A1oRX9MV+mfl0PNAQkCVETZq/LjyyvQqF/wTS0K/T9wbynAdIQ8tZmvSTswmNXFk
         m4Z/rMw1NNQMye52xtqmTadub2LTXLk0qIhVuNMHBUTMvIMX1cM6A/mNcKLJlwHwgmiZ
         g65uSdKrvYMqL6IzX1zqCHCX4CuHdT6JOXQmGvyANmh07EwVEeu0RTw8SYIaipvZ2j1G
         jRPcEe6bPBhYzFjvJLGDSxEWPrSuLU4zn0fJggQiG/Oamb9cdnJsQ+rU/zJBqcekrTVU
         1Z8w==
X-Forwarded-Encrypted: i=1; AJvYcCWhgTkI1D4npTbEEEhU8AcWz46QPz6dAjPgouBK13l7uPzbnhASdMdYLluTD2HFprDIfOz+sK9xLE8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwGEDM4d2PJDy/2Dy/gao0OpRvwouGkLD8lap6yGhZZoM1r0BxK
	vH70SaBKGyfidMjf1GMq0knx5u9hhidaYBI+mM1ctP9OTv12Giuonn9F
X-Gm-Gg: ASbGncu9PzT0qVq2hVK8Ps4znKXhmWCdC3f7Rs4ChukEU6JvDhBFn3WNo1Qzm8alqRj
	r2rEuUHUf+w7gV2ErCaCKbQiaqe3xO3MeCaKAoq+bAlSZWicP7REiJ4j92sxWbi5DKFt5fP1MT6
	ZLUtWJTdKbxXc2f2xRtYIll5LKbOONbD3IHJjr1SgeGQjxfTYmmYg1taoPGfSRmEaO/b/zagONZ
	3Y+z4udwVtXYeySgoNY+u5N5XyijSv9X1jBGiJAPR8PU1Pmlp6gycfMxdy8h9AKZTZUYRsaAwns
	8JPxBKVRfjHFlHkhE8Ha42t2KaW5YUZ2e+J2AJ6V+XQdRmIOVAIOTuUGZwikN3J3BZgg/TaF15v
	hvXUbMT6TTbElZkS5GLD+buEbWtdHcwaIgxXB1VYsUO++0SFxUWOIUbQ9JrJJz5qE1B9hkoz6k8
	6DTmEdwdb4AUNOWeAFn9Ht02TNB6Fc/bGsw4s=
X-Google-Smtp-Source: AGHT+IF7L7t9iyFo8PEEPeNTxggSKoAmMAPwEJL/hRdK18Dwa4nmvojL7aEh4438B6cIi5yWkr83tQ==
X-Received: by 2002:a05:690c:8693:10b0:71f:e5c5:514d with SMTP id 00721157ae682-71fe5c5816amr76450967b3.26.1756075172781;
        Sun, 24 Aug 2025 15:39:32 -0700 (PDT)
Message-ID: <a57a9878-893c-41ab-8380-a0ac9e736752@gmail.com>
Date: Sun, 24 Aug 2025 18:39:05 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 13/15] x86/cpu/intel: Bound the non-architectural
 constant_tsc model checks
To: Xiaoyao Li <xiaoyao.li@intel.com>, Sohil Mehta <sohil.mehta@intel.com>,
 David Woodhouse <dwmw2@infradead.org>, x86@kernel.org,
 Dave Hansen <dave.hansen@linux.intel.com>, Tony Luck <tony.luck@intel.com>,
 =?UTF-8?Q?J=C3=BCrgen_Gross?= <jgross@suse.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 xen-devel <xen-devel@lists.xenproject.org>
Cc: Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com>,
 Arnaldo Carvalho de Melo <acme@kernel.org>,
 Namhyung Kim <namhyung@kernel.org>, Mark Rutland <mark.rutland@arm.com>,
 Alexander Shishkin <alexander.shishkin@linux.intel.com>,
 Jiri Olsa <jolsa@kernel.org>, Ian Rogers <irogers@google.com>,
 Adrian Hunter <adrian.hunter@intel.com>,
 Kan Liang <kan.liang@linux.intel.com>, Thomas Gleixner <tglx@linutronix.de>,
 Borislav Petkov <bp@alien8.de>, "H . Peter Anvin" <hpa@zytor.com>,
 "Rafael J . Wysocki" <rafael@kernel.org>, Len Brown <lenb@kernel.org>,
 Andy Lutomirski <luto@kernel.org>, Viresh Kumar <viresh.kumar@linaro.org>,
 Jean Delvare <jdelvare@suse.com>, Guenter Roeck <linux@roeck-us.net>,
 Zhang Rui <rui.zhang@intel.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 David Laight <david.laight.linux@gmail.com>,
 Dapeng Mi <dapeng1.mi@linux.intel.com>, linux-perf-users@vger.kernel.org,
 linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org,
 linux-pm@vger.kernel.org, kvm@vger.kernel.org, Xin Li <xin@zytor.com>
References: <20250219184133.816753-1-sohil.mehta@intel.com>
 <20250219184133.816753-14-sohil.mehta@intel.com>
 <6f05a6849fb7b22db35216dcf12bf537f8a43a92.camel@infradead.org>
 <968a179f-3da7-4c69-b798-357ea8d759eb@intel.com>
 <5f5f1230-f373-469c-b0d9-abc80199886e@intel.com>
 <03ac8bac-c8d1-4a3b-a07f-2bbf04e726b6@intel.com>
Content-Language: en-US
From: Demi Marie Obenour <demiobenour@gmail.com>
Autocrypt: addr=demiobenour@gmail.com; keydata=
 xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49yB+l2nipd
 aq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYfbWpr/si88QKgyGSV
 Z7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/UorR+FaSuVwT7rqzGrTlscnT
 DlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7MMPCJwI8JpPlBedRpe9tfVyfu3euTPLPx
 wcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9Hzx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR
 6h3nBc3eyuZ+q62HS1pJ5EvUT1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl
 5FMWo8TCniHynNXsBtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2
 Bkg1b//r6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
 9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nSm9BBff0N
 m0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQABzTxEZW1pIE1hcmll
 IE9iZW5vdXIgKGxvdmVyIG9mIGNvZGluZykgPGRlbWlvYmVub3VyQGdtYWlsLmNvbT7CwXgE
 EwECACIFAlp+A0oCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJELKItV//nCLBhr8Q
 AK/xrb4wyi71xII2hkFBpT59ObLN+32FQT7R3lbZRjVFjc6yMUjOb1H/hJVxx+yo5gsSj5LS
 9AwggioUSrcUKldfA/PKKai2mzTlUDxTcF3vKx6iMXKA6AqwAw4B57ZEJoMM6egm57TV19kz
 PMc879NV2nc6+elaKl+/kbVeD3qvBuEwsTe2Do3HAAdrfUG/j9erwIk6gha/Hp9yZlCnPTX+
 VK+xifQqt8RtMqS5R/S8z0msJMI/ajNU03kFjOpqrYziv6OZLJ5cuKb3bZU5aoaRQRDzkFIR
 6aqtFLTohTo20QywXwRa39uFaOT/0YMpNyel0kdOszFOykTEGI2u+kja35g9TkH90kkBTG+a
 EWttIht0Hy6YFmwjcAxisSakBuHnHuMSOiyRQLu43ej2+mDWgItLZ48Mu0C3IG1seeQDjEYP
 tqvyZ6bGkf2Vj+L6wLoLLIhRZxQOedqArIk/Sb2SzQYuxN44IDRt+3ZcDqsPppoKcxSyd1Ny
 2tpvjYJXlfKmOYLhTWs8nwlAlSHX/c/jz/ywwf7eSvGknToo1Y0VpRtoxMaKW1nvH0OeCSVJ
 itfRP7YbiRVc2aNqWPCSgtqHAuVraBRbAFLKh9d2rKFB3BmynTUpc1BQLJP8+D5oNyb8Ts4x
 Xd3iV/uD8JLGJfYZIR7oGWFLP4uZ3tkneDfYzsFNBFp+A0oBEAC9ynZI9LU+uJkMeEJeJyQ/
 8VFkCJQPQZEsIGzOTlPnwvVna0AS86n2Z+rK7R/usYs5iJCZ55/JISWd8xD57ue0eB47bcJv
 VqGlObI2DEG8TwaW0O0duRhDgzMEL4t1KdRAepIESBEA/iPpI4gfUbVEIEQuqdqQyO4GAe+M
 kD0Hy5JH/0qgFmbaSegNTdQg5iqYjRZ3ttiswalql1/iSyv1WYeC1OAs+2BLOAT2NEggSiVO
 txEfgewsQtCWi8H1SoirakIfo45Hz0tk/Ad9ZWh2PvOGt97Ka85o4TLJxgJJqGEnqcFUZnJJ
 riwoaRIS8N2C8/nEM53jb1sH0gYddMU3QxY7dYNLIUrRKQeNkF30dK7V6JRH7pleRlf+wQcN
 fRAIUrNlatj9TxwivQrKnC9aIFFHEy/0mAgtrQShcMRmMgVlRoOA5B8RTulRLCmkafvwuhs6
 dCxN0GNAORIVVFxjx9Vn7OqYPgwiofZ6SbEl0hgPyWBQvE85klFLZLoj7p+joDY1XNQztmfA
 rnJ9x+YV4igjWImINAZSlmEcYtd+xy3Li/8oeYDAqrsnrOjb+WvGhCykJk4urBog2LNtcyCj
 kTs7F+WeXGUo0NDhbd3Z6AyFfqeF7uJ3D5hlpX2nI9no/ugPrrTVoVZAgrrnNz0iZG2DVx46
 x913pVKHl5mlYQARAQABwsFfBBgBAgAJBQJafgNKAhsMAAoJELKItV//nCLBwNIP/AiIHE8b
 oIqReFQyaMzxq6lE4YZCZNj65B/nkDOvodSiwfwjjVVE2V3iEzxMHbgyTCGA67+Bo/d5aQGj
 gn0TPtsGzelyQHipaUzEyrsceUGWYoKXYyVWKEfyh0cDfnd9diAm3VeNqchtcMpoehETH8fr
 RHnJdBcjf112PzQSdKC6kqU0Q196c4Vp5HDOQfNiDnTf7gZSj0BraHOByy9LEDCLhQiCmr+2
 E0rW4tBtDAn2HkT9uf32ZGqJCn1O+2uVfFhGu6vPE5qkqrbSE8TG+03H8ecU2q50zgHWPdHM
 OBvy3EhzfAh2VmOSTcRK+tSUe/u3wdLRDPwv/DTzGI36Kgky9MsDC5gpIwNbOJP2G/q1wT1o
 Gkw4IXfWv2ufWiXqJ+k7HEi2N1sree7Dy9KBCqb+ca1vFhYPDJfhP75I/VnzHVssZ/rYZ9+5
 1yDoUABoNdJNSGUYl+Yh9Pw9pE3Kt4EFzUlFZWbE4xKL/NPno+z4J9aWemLLszcYz/u3XnbO
 vUSQHSrmfOzX3cV4yfmjM5lewgSstoxGyTx2M8enslgdXhPthZlDnTnOT+C+OTsh8+m5tos8
 HQjaPM01MKBiAqdPgksm1wu2DrrwUi6ChRVTUBcj6+/9IJ81H2P2gJk3Ls3AVIxIffLoY34E
 +MYSfkEjBz0E8CLOcAw7JIwAaeBT
In-Reply-To: <03ac8bac-c8d1-4a3b-a07f-2bbf04e726b6@intel.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------nzm2Wxf46MXXnMPF7VllXzs2"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------nzm2Wxf46MXXnMPF7VllXzs2
Content-Type: multipart/mixed; boundary="------------4aUnYrlTs60uvM0eqrIjZiJR";
 protected-headers="v1"
From: Demi Marie Obenour <demiobenour@gmail.com>
To: Xiaoyao Li <xiaoyao.li@intel.com>, Sohil Mehta <sohil.mehta@intel.com>,
 David Woodhouse <dwmw2@infradead.org>, x86@kernel.org,
 Dave Hansen <dave.hansen@linux.intel.com>, Tony Luck <tony.luck@intel.com>,
 =?UTF-8?Q?J=C3=BCrgen_Gross?= <jgross@suse.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 xen-devel <xen-devel@lists.xenproject.org>
Cc: Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com>,
 Arnaldo Carvalho de Melo <acme@kernel.org>,
 Namhyung Kim <namhyung@kernel.org>, Mark Rutland <mark.rutland@arm.com>,
 Alexander Shishkin <alexander.shishkin@linux.intel.com>,
 Jiri Olsa <jolsa@kernel.org>, Ian Rogers <irogers@google.com>,
 Adrian Hunter <adrian.hunter@intel.com>,
 Kan Liang <kan.liang@linux.intel.com>, Thomas Gleixner <tglx@linutronix.de>,
 Borislav Petkov <bp@alien8.de>, "H . Peter Anvin" <hpa@zytor.com>,
 "Rafael J . Wysocki" <rafael@kernel.org>, Len Brown <lenb@kernel.org>,
 Andy Lutomirski <luto@kernel.org>, Viresh Kumar <viresh.kumar@linaro.org>,
 Jean Delvare <jdelvare@suse.com>, Guenter Roeck <linux@roeck-us.net>,
 Zhang Rui <rui.zhang@intel.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
 David Laight <david.laight.linux@gmail.com>,
 Dapeng Mi <dapeng1.mi@linux.intel.com>, linux-perf-users@vger.kernel.org,
 linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org,
 linux-pm@vger.kernel.org, kvm@vger.kernel.org, Xin Li <xin@zytor.com>
Message-ID: <a57a9878-893c-41ab-8380-a0ac9e736752@gmail.com>
Subject: Re: [PATCH v3 13/15] x86/cpu/intel: Bound the non-architectural
 constant_tsc model checks
References: <20250219184133.816753-1-sohil.mehta@intel.com>
 <20250219184133.816753-14-sohil.mehta@intel.com>
 <6f05a6849fb7b22db35216dcf12bf537f8a43a92.camel@infradead.org>
 <968a179f-3da7-4c69-b798-357ea8d759eb@intel.com>
 <5f5f1230-f373-469c-b0d9-abc80199886e@intel.com>
 <03ac8bac-c8d1-4a3b-a07f-2bbf04e726b6@intel.com>
In-Reply-To: <03ac8bac-c8d1-4a3b-a07f-2bbf04e726b6@intel.com>
Autocrypt-Gossip: 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==

--------------4aUnYrlTs60uvM0eqrIjZiJR
Content-Type: multipart/mixed; boundary="------------Q0RD0CwTExGqdyoNDz8Egccl"

--------------Q0RD0CwTExGqdyoNDz8Egccl
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On 8/21/25 21:46, Xiaoyao Li wrote:
> On 8/22/2025 3:43 AM, Sohil Mehta wrote:
>> On 8/21/2025 12:34 PM, Sohil Mehta wrote:
>>> On 8/21/2025 6:15 AM, David Woodhouse wrote:
>>>
>>>> Hm. My test host is INTEL_HASWELL_X (0x63f). For reasons which are
>>>> unclear to me, QEMU doesn't set bit 8 of 0x80000007 EDX unless I
>>>> explicitly append ',+invtsc' to the existing '-cpu host' on its comm=
and
>>>> line. So now my guest doesn't think it has X86_FEATURE_CONSTANT_TSC.=

>>>>
>>>
>>> Haswell should have X86_FEATURE_CONSTANT_TSC, so I would have expecte=
d
>>> the guest bit to be set. Until now, X86_FEATURE_CONSTANT_TSC was set
>>> based on the Family-model instead of the CPUID enumeration which may
>>> have hid the issue.
>>>
>>
>> Correction:
>> s/instead/as well as
>>
>>>  From my initial look at the QEMU implementation, this seems intentio=
nal.
>>>
>>> QEMU considers Invariant TSC as un-migratable which prevents it from
>>> being exposed to migratable guests (default).
>>> target/i386/cpu.c:
>>> [FEAT_8000_0007_EDX]
>>>           .unmigratable_flags =3D CPUID_APM_INVTSC,
>>>
>>> Can you please try '-cpu host,migratable=3Doff'?
>>
>> This is mainly to verify. If confirmed, I am not sure what the long te=
rm
>> solution should be.
>=20
> yeah. It's the intentional behavior of QEMU.
>=20
> Invariant TSC is ummigratable unless users explicitly configures the TS=
C=20
> frequency, e.g., "-cpu host,tsc-frequency=3Dxxx". Because the TSC=20
> frequency is by default the host's frequency if no "tsc-frequency"=20
> specified, and it will change when the VM is migrated to a host with a =

> different TSC frequency.
>=20
> It's the specific behavior/rule of QEMU. We just need to keep it in=20
> mind. If we want to expose invariant TSC to the guest with QEMU's "-cpu=
=20
> host", we can either:
> 1) explicitly configure the "tsc-frequency", or
> 2) explicitly turn off "migratable"

Could the TSC frequency be included in the migration stream?
--=20
Sincerely,
Demi Marie Obenour (she/her/hers)
--------------Q0RD0CwTExGqdyoNDz8Egccl
Content-Type: application/pgp-keys; name="OpenPGP_0xB288B55FFF9C22C1.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB288B55FFF9C22C1.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

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

xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49y
B+l2nipdaq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYf
bWpr/si88QKgyGSVZ7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/
UorR+FaSuVwT7rqzGrTlscnTDlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7M
MPCJwI8JpPlBedRpe9tfVyfu3euTPLPxwcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9H
zx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR6h3nBc3eyuZ+q62HS1pJ5EvU
T1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl5FMWo8TCniHynNXs
BtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2Bkg1b//r
6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nS
m9BBff0Nm0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQAB
zTxEZW1pIE9iZW5vdXIgKElUTCBFbWFpbCBLZXkpIDxhdGhlbmFAaW52aXNpYmxl
dGhpbmdzbGFiLmNvbT7CwY4EEwEIADgWIQR2h02fEza6IlkHHHGyiLVf/5wiwQUC
X6YJvQIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRCyiLVf/5wiwWRhD/0Y
R+YYC5Kduv/2LBgQJIygMsFiRHbR4+tWXuTFqgrxxFSlMktZ6gQrQCWe38WnOXkB
oY6n/5lSJdfnuGd2UagZ/9dkaGMUkqt+5WshLFly4BnP7pSsWReKgMP7etRTwn3S
zk1OwFx2lzY1EnnconPLfPBc6rWG2moA6l0WX+3WNR1B1ndqpl2hPSjT2jUCBWDV
rGOUSX7r5f1WgtBeNYnEXPBCUUM51pFGESmfHIXQrqFDA7nBNiIVFDJTmQzuEqIy
Jl67pKNgooij5mKzRhFKHfjLRAH4mmWZlB9UjDStAfFBAoDFHwd1HL5VQCNQdqEc
/9lZDApqWuCPadZN+pGouqLysesIYsNxUhJ7dtWOWHl0vs7/3qkWmWun/2uOJMQh
ra2u8nA9g91FbOobWqjrDd6x3ZJoGQf4zLqjmn/P514gb697788e573WN/MpQ5XI
Fl7aM2d6/GJiq6LC9T2gSUW4rbPBiqOCeiUx7Kd/sVm41p9TOA7fEG4bYddCfDsN
xaQJH6VRK3NOuBUGeL+iQEVF5Xs6Yp+U+jwvv2M5Lel3EqAYo5xXTx4ls0xaxDCu
fudcAh8CMMqx3fguSb7Mi31WlnZpk0fDuWQVNKyDP7lYpwc4nCCGNKCj622ZSocH
AcQmX28L8pJdLYacv9pU3jPy4fHcQYvmTavTqowGnM08RGVtaSBNYXJpZSBPYmVu
b3VyIChsb3ZlciBvZiBjb2RpbmcpIDxkZW1pb2Jlbm91ckBnbWFpbC5jb20+wsF4
BBMBAgAiBQJafgNKAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRCyiLVf
/5wiwYa/EACv8a2+MMou9cSCNoZBQaU+fTmyzft9hUE+0d5W2UY1RY3OsjFIzm9R
/4SVccfsqOYLEo+S0vQMIIIqFEq3FCpXXwPzyimotps05VA8U3Bd7yseojFygOgK
sAMOAee2RCaDDOnoJue01dfZMzzHPO/TVdp3OvnpWipfv5G1Xg96rwbhMLE3tg6N
xwAHa31Bv4/Xq8CJOoIWvx6fcmZQpz01/lSvsYn0KrfEbTKkuUf0vM9JrCTCP2oz
VNN5BYzqaq2M4r+jmSyeXLim922VOWqGkUEQ85BSEemqrRS06IU6NtEMsF8EWt/b
hWjk/9GDKTcnpdJHTrMxTspExBiNrvpI2t+YPU5B/dJJAUxvmhFrbSIbdB8umBZs
I3AMYrEmpAbh5x7jEjoskUC7uN3o9vpg1oCLS2ePDLtAtyBtbHnkA4xGD7ar8mem
xpH9lY/i+sC6CyyIUWcUDnnagKyJP0m9ks0GLsTeOCA0bft2XA6rD6aaCnMUsndT
ctrab42CV5XypjmC4U1rPJ8JQJUh1/3P48/8sMH+3krxpJ06KNWNFaUbaMTGiltZ
7x9DngklSYrX0T+2G4kVXNmjaljwkoLahwLla2gUWwBSyofXdqyhQdwZsp01KXNQ
UCyT/Pg+aDcm/E7OMV3d4lf7g/CSxiX2GSEe6BlhSz+Lmd7ZJ3g32M1ARGVtaSBN
YXJpZSBPYmVub3VyIChJVEwgRW1haWwgS2V5KSA8ZGVtaUBpbnZpc2libGV0aGlu
Z3NsYWIuY29tPsLBjgQTAQgAOBYhBHaHTZ8TNroiWQcccbKItV//nCLBBQJgOEV+
AhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJELKItV//nCLBKwoP/1WSnFdv
SAD0g7fD0WlF+oi7ISFT7oqJnchFLOwVHK4Jg0e4hGn1ekWsF3Ha5tFLh4V/7UUu
obYJpTfBAA2CckspYBqLtKGjFxcaqjjpO1I2W/jeNELVtSYuCOZICjdNGw2Hl9yH
KRZiBkqc9u8lQcHDZKq4LIpVJj6ZQV/nxttDX90ax2No1nLLQXFbr5wb465LAPpU
lXwunYDij7xJGye+VUASQh9datye6orZYuJvNo8Tr3mAQxxkfR46LzWgxFCPEAZJ
5P56Nc0IMHdJZj0Uc9+1jxERhOGppp5jlLgYGK7faGB/jTV6LaRQ4Ad+xiqokDWp
mUOZsmA+bMbtPfYjDZBz5mlyHcIRKIFpE1l3Y8F7PhJuzzMUKkJi90CYakCV4x/a
Zs4pzk5E96c2VQx01RIEJ7fzHF7lwFdtfTS4YsLtAbQFsKayqwkGcVv2B1AHeqdo
TMX+cgDvjd1ZganGlWA8Sv9RkNSMchn1hMuTwERTyFTr2dKPnQdA1F480+jUap41
ClXgn227WkCIMrNhQGNyJsnwyzi5wS8rBVRQ3BOTMyvGM07j3axUOYaejEpg7wKi
wTPZGLGH1sz5GljD/916v5+v2xLbOo5606j9dWf5/tAhbPuqrQgWv41wuKDi+dDD
EKkODF7DHes8No+QcHTDyETMn1RYm7t0RKR4zsFNBFp+A0oBEAC9ynZI9LU+uJkM
eEJeJyQ/8VFkCJQPQZEsIGzOTlPnwvVna0AS86n2Z+rK7R/usYs5iJCZ55/JISWd
8xD57ue0eB47bcJvVqGlObI2DEG8TwaW0O0duRhDgzMEL4t1KdRAepIESBEA/iPp
I4gfUbVEIEQuqdqQyO4GAe+MkD0Hy5JH/0qgFmbaSegNTdQg5iqYjRZ3ttiswalq
l1/iSyv1WYeC1OAs+2BLOAT2NEggSiVOtxEfgewsQtCWi8H1SoirakIfo45Hz0tk
/Ad9ZWh2PvOGt97Ka85o4TLJxgJJqGEnqcFUZnJJriwoaRIS8N2C8/nEM53jb1sH
0gYddMU3QxY7dYNLIUrRKQeNkF30dK7V6JRH7pleRlf+wQcNfRAIUrNlatj9Txwi
vQrKnC9aIFFHEy/0mAgtrQShcMRmMgVlRoOA5B8RTulRLCmkafvwuhs6dCxN0GNA
ORIVVFxjx9Vn7OqYPgwiofZ6SbEl0hgPyWBQvE85klFLZLoj7p+joDY1XNQztmfA
rnJ9x+YV4igjWImINAZSlmEcYtd+xy3Li/8oeYDAqrsnrOjb+WvGhCykJk4urBog
2LNtcyCjkTs7F+WeXGUo0NDhbd3Z6AyFfqeF7uJ3D5hlpX2nI9no/ugPrrTVoVZA
grrnNz0iZG2DVx46x913pVKHl5mlYQARAQABwsFfBBgBAgAJBQJafgNKAhsMAAoJ
ELKItV//nCLBwNIP/AiIHE8boIqReFQyaMzxq6lE4YZCZNj65B/nkDOvodSiwfwj
jVVE2V3iEzxMHbgyTCGA67+Bo/d5aQGjgn0TPtsGzelyQHipaUzEyrsceUGWYoKX
YyVWKEfyh0cDfnd9diAm3VeNqchtcMpoehETH8frRHnJdBcjf112PzQSdKC6kqU0
Q196c4Vp5HDOQfNiDnTf7gZSj0BraHOByy9LEDCLhQiCmr+2E0rW4tBtDAn2HkT9
uf32ZGqJCn1O+2uVfFhGu6vPE5qkqrbSE8TG+03H8ecU2q50zgHWPdHMOBvy3Ehz
fAh2VmOSTcRK+tSUe/u3wdLRDPwv/DTzGI36Kgky9MsDC5gpIwNbOJP2G/q1wT1o
Gkw4IXfWv2ufWiXqJ+k7HEi2N1sree7Dy9KBCqb+ca1vFhYPDJfhP75I/VnzHVss
Z/rYZ9+51yDoUABoNdJNSGUYl+Yh9Pw9pE3Kt4EFzUlFZWbE4xKL/NPno+z4J9aW
emLLszcYz/u3XnbOvUSQHSrmfOzX3cV4yfmjM5lewgSstoxGyTx2M8enslgdXhPt
hZlDnTnOT+C+OTsh8+m5tos8HQjaPM01MKBiAqdPgksm1wu2DrrwUi6ChRVTUBcj
6+/9IJ81H2P2gJk3Ls3AVIxIffLoY34E+MYSfkEjBz0E8CLOcAw7JIwAaeBTzsFN
BGbyLVgBEACqClxh50hmBepTSVlan6EBq3OAoxhrAhWZYEwN78k+ENhK68KhqC5R
IsHzlL7QHW1gmfVBQZ63GnWiraM6wOJqFTL4ZWvRslga9u28FJ5XyK860mZLgYhK
9BzoUk4s+dat9jVUbq6LpQ1Ot5I9vrdzo2p1jtQ8h9WCIiFxSYy8s8pZ3hHh5T64
GIj1m/kY7lG3VIdUgoNiREGf/iOMjUFjwwE9ZoJ26j9p7p1U+TkKeF6wgswEB1T3
J8KCAtvmRtqJDq558IU5jhg5fgN+xHB8cgvUWulgK9FIF9oFxcuxtaf/juhHWKMO
RtL0bHfNdXoBdpUDZE+mLBUAxF6KSsRrvx6AQyJs7VjgXJDtQVWvH0PUmTrEswgb
49nNU+dLLZQAZagxqnZ9Dp5l6GqaGZCHERJcLmdY/EmMzSf5YazJ6c0vO8rdW27M
kn73qcWAplQn5mOXaqbfzWkAUPyUXppuRHfrjxTDz3GyJJVOeMmMrTxH4uCaGpOX
Z8tN6829J1roGw4oKDRUQsaBAeEDqizXMPRc+6U9vI5FXzbAsb+8lKW65G7JWHym
YPOGUt2hK4DdTA1PmVo0DxH00eWWeKxqvmGyX+Dhcg+5e191rPsMRGsDlH6KihI6
+3JIuc0y6ngdjcp6aalbuvPIGFrCRx3tnRtNc7He6cBWQoH9RPwluwARAQABwsOs
BBgBCgAgFiEEdodNnxM2uiJZBxxxsoi1X/+cIsEFAmbyLVgCGwICQAkQsoi1X/+c
IsHBdCAEGQEKAB0WIQSilC2pUlbVp66j3+yzNoc6synyUwUCZvItWAAKCRCzNoc6
synyU85gD/0T1QDtPhovkGwoqv4jUbEMMvpeYQf+oWgm/TjWPeLwdjl7AtY0G9Ml
ZoyGniYkoHi37Gnn/ShLT3B5vtyI58ap2+SSa8SnGftdAKRLiWFWCiAEklm9FRk8
N3hwxhmSFF1KR/AIDS4g+HIsZn7YEMubBSgLlZZ9zHl4O4vwuXlREBEW97iL/FSt
VownU2V39t7PtFvGZNk+DJH7eLO3jmNRYB0PL4JOyyda3NH/J92iwrFmjFWWmmWb
/Xz8l9DIs+Z59pRCVTTwbBEZhcUc7rVMCcIYL+q1WxBG2e6lMn15OQJ5WfiE6E0I
sGirAEDnXWx92JNGx5l+mMpdpsWhBZ5iGTtttZesibNkQfd48/eCgFi4cxJUC4PT
UQwfD9AMgzwSTGJrkI5XGy+XqxwOjL8UA0iIrtTpMh49zw46uV6kwFQCgkf32jZM
OLwLTNSzclbnA7GRd8tKwezQ/XqeK3dal2n+cOr+o+Eka7yGmGWNUqFbIe8cjj9T
JeF3mgOCmZOwMI+wIcQYRSf+e5VTMO6TNWH5BI3vqeHSt7HkYuPlHT0pGum88d4a
pWqhulH4rUhEMtirX1hYx8Q4HlUOQqLtxzmwOYWkhl1C+yPObAvUDNiHCLf9w28n
uihgEkzHt9J4VKYulyJM9fe3ENcyU6rpXD7iANQqcr87ogKXFxknZ97uEACvSucc
RbnnAgRqZ7GDzgoBerJ2zrmhLkeREZ08iz1zze1JgyW3HEwdr2UbyAuqvSADCSUU
GN0vtQHsPzWl8onRc7lOPqPDF8OO+UfN9NAfA4wl3QyChD1GXl9rwKQOkbvdlYFV
UFx9u86LNi4ssTmU8p9NtHIGpz1SYMVYNoYy9NU7EVqypGMguDCL7gJt6GUmA0sw
p+YCroXiwL2BJ7RwRqTpgQuFL1gShkA17D5jK4mDPEetq1d8kz9rQYvAR/sTKBsR
ImC3xSfn8zpWoNTTB6lnwyP5Ng1bu6esS7+SpYprFTe7ZqGZF6xhvBPf1Ldi9UAm
U2xPN1/eeWxEa2kusidmFKPmN8lcT4miiAvwGxEnY7Oww9CgZlUB+LP4dl5VPjEt
sFeAhrgxLdpVTjPRRwTd9VQF3/XYl83j5wySIQKIPXgT3sG3ngAhDhC8I8GpM36r
8WJJ3x2yVzyJUbBPO0GBhWE2xPNIfhxVoU4cGGhpFqz7dPKSTRDGq++MrFgKKGpI
ZwT3CPTSSKc7ySndEXWkOYArDIdtyxdE1p5/c3aoz4utzUU7NDHQ+vVIwlnZSMiZ
jek2IJP3SZ+COOIHCVxpUaZ4lnzWT4eDqABhMLpIzw6NmGfg+kLBJhouqz81WITr
EtJuZYM5blWncBOJCoWMnBEcTEo/viU3GgcVRw=3D=3D
=3Dx94R
-----END PGP PUBLIC KEY BLOCK-----

--------------Q0RD0CwTExGqdyoNDz8Egccl--

--------------4aUnYrlTs60uvM0eqrIjZiJR--

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

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

iQIzBAEBCgAdFiEEopQtqVJW1aeuo9/sszaHOrMp8lMFAmirlIoACgkQszaHOrMp
8lMb0g/+KmGmAPmoyTf/mJVQH7z6gf9zteNQQMetxE+LvXjJ1Q1Dxs195jCCsbRd
JEVRWwp7ti2a4GT3GEO+c0xMOsd4exoVnyXKxEGxEOTuiOk/8ZW0MKAC5puKyK4D
OZiJsPzKbBR0LtVsaW7fNCP7LUDIoFuATK0rdjDINtca3QirHE5Uqhgc20lf80jw
XojTnfql4iUeHqcotD7t6nyWEOy+/53+a3bNnZ1G50YwIR1FAFIRsmKfhh3S4xLH
Ao3RT9N1gJOgFgX1StUWJ/qbtX5gSG9kaDaeThpBUJQIaDIX6lZrYS6bZ3i3gX4v
5HIhozbHQgKgurp7FYklqMpXgmxfTptK2fLXraUMbLh5BHYz/1e95q2SQ+u+bifo
7z0FtiaulZU5I1FqkNdcg2lbInb6pcSj7UsHi9bsGKzvnSmLcJBrTLq6Njm1wNQO
YMNWmR4HPJf2oJodH1iqyIpymy4ohhUCeq4Xta5Dc/9doKVtj7jKHUvShPtmVTp9
jgT/yOSKNvreGJXb1JlkcV/pdYrDvLK+kGVazXNrxKC0UHmxBh1reha/VQ4bTg+p
yY0IdpQ6f4Hq/cEwjIf6d9w1O6/6uF0jrVjBqd5eF2wlIeG4buTqYltqYqszekS5
zbVi8J/bCavtiIg6uthEt5R4fSihQDy3N636ApzmNup2/4+jXRo=
=8231
-----END PGP SIGNATURE-----

--------------nzm2Wxf46MXXnMPF7VllXzs2--


From xen-devel-bounces@lists.xenproject.org Sun Aug 24 22:45:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 24 Aug 2025 22:45:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1092361.1448272 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqJTG-0007ZV-Vk; Sun, 24 Aug 2025 22:45:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1092361.1448272; Sun, 24 Aug 2025 22: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 1uqJTG-0007ZO-Sn; Sun, 24 Aug 2025 22:45:54 +0000
Received: by outflank-mailman (input) for mailman id 1092361;
 Sun, 24 Aug 2025 22:45:53 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/oRm=3E=gmail.com=demiobenour@srs-se1.protection.inumbo.net>)
 id 1uqJTF-0007ZD-63
 for xen-devel@lists.xenproject.org; Sun, 24 Aug 2025 22:45:53 +0000
Received: from mail-yw1-x1134.google.com (mail-yw1-x1134.google.com
 [2607:f8b0:4864:20::1134])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 15b21bb9-813c-11f0-a32c-13f23c93f187;
 Mon, 25 Aug 2025 00:45:52 +0200 (CEST)
Received: by mail-yw1-x1134.google.com with SMTP id
 00721157ae682-71d6083cc69so30131637b3.2; 
 Sun, 24 Aug 2025 15:45:51 -0700 (PDT)
Received: from [10.138.34.110]
 (h96-60-249-169.cncrtn.broadband.dynamic.tds.net. [96.60.249.169])
 by smtp.gmail.com with ESMTPSA id
 00721157ae682-71ffd8ef450sm9964177b3.71.2025.08.24.15.45.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 24 Aug 2025 15: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>
X-Inumbo-ID: 15b21bb9-813c-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756075550; x=1756680350; 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=7GrOiQ5LBRM2OG2jXjSf3cnG6Dj9j4mlYfmhqpWrcR4=;
        b=huxUcIV4DZWJx7OsW4UgzPey+qlKzq6l2Po2ABIvtHeLxMVvofDxGv0GSizhLquiNL
         LI3E09W8KoMS3hWGK60zBGy57kQNNDXakJSJjdgqq1sqHzXt8OFPzQZcvrmidJLefFxa
         ilodKhbxWshUTPChgcoG1NlLVRaPac/e3qJW3cESCsGfa7yCRhNF0zuevWXIeW97GWi6
         1P5tT7p9L6BqKMPfbpTu5XpY1ECmRt/y/IJxBJ72o5Y0Iz9r4Om5GWjoyJ8LQRERQmWA
         ZlDzZLq0Bv9dEGp065d6tAxAJLfvwmyuD8WjNFybWkWO1+8e68vOOc+fB0h96WSAOy4W
         Qdxg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756075550; x=1756680350;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=7GrOiQ5LBRM2OG2jXjSf3cnG6Dj9j4mlYfmhqpWrcR4=;
        b=oJHUs/ETjW66ZfPZBDn2XFmAUvbPPyHDPQqRCS2n0Z/mD06v5znkw3bZUtnMgNaljo
         umAEAWq/7nBCdfLtOXAadZq5lFHet1rWbTr4KVd/6WtmrW4gwagB/CJp+AYxmbf6TTVg
         YYHszswnECvUo2PfZQGSyVtiISfLtPZpV2WNSaCi9Ta8EGuxGECH1KpYXdB1xmbwwMLX
         UeGtZWoAUiws8UB9C8+DoYFR39YlpB0MtTArLAW4VXorRcR43ZYXwJrjeNcdltPQmUid
         1KwO7jExI5is2yPVJwfX5qQmB4zVKY56Z/Vr6+CPMNcKWPtAhhBKuzOpUeHeTnKs2I+P
         oS0g==
X-Forwarded-Encrypted: i=1; AJvYcCVG53MtYhmJcc4ydW2F240XGPxrDLFpf0nOL4CLssUNTWz6DmRqO1MjJAYv59tHEVoptXprFSLnpyI=@lists.xenproject.org, AJvYcCVtWofK1DtiSqDOKEdyFGCNh9AThpuEhqO0TouXthOBhH8wfw3JlYXdvvjyTQiOZRwUzQejnZTz15Ai@lists.xenproject.org
X-Gm-Message-State: AOJu0YzIJra3yJdOdTqww4XLM+D7CXKZoZKrCPHD3MW242vCaDBzJ2ZJ
	Hy9IlUcz1o9qBaR55OwVY9+hM4zBlf2HyCRccau0wmUu9Grm79b5DiYo
X-Gm-Gg: ASbGnctYqpzYPfWBzzTlIlE2NO9BPs2IOBrSyZNwN7DemY93t72g5BwBpsvzlg7Emmi
	7tem15xBaHbn/BAusirbJdhvAyL54vgBrkg/8K5lVji1jWB2zWRBAh6Xmj1x5z7taSe3t23lS5a
	DAQcivB4UEFpAX/8Cj6yH01ceKBb9bne0tNzOFzJGA2zJjni0p6L8y+/vBvO/pJN88ekIMt3L/8
	1G2OFzD/wHR4xE5hEY23yIvUccPS3z8JvZfoIi14tEafGeQJ/kwv6AZZHP/pPv7rphMLl12iQp0
	wzViTX7V+UBvES/FQKMBeZOksZvDNv45Dagm12ve5zHAW5+yiRu2mMwGuTWW0eOAdL5+wDrVaG5
	MNrqfKa6oCptPCJoqkjHpX7BBOw/ZqRAXnT7kyCzJ6gb/t6hREThyDR+1UpKETOZ8W501P9XtIF
	iRwPRNQKIOIoA/CXgDLaqy1NBqYnmtSm5JlbI=
X-Google-Smtp-Source: AGHT+IEmm9hUbRUU2Ka+sHCYKyK7tq5N2YOR27oYD2DFXNHrIm5emOr33ovCbpW7VcJuGbYLrCh/Dg==
X-Received: by 2002:a05:690c:4c90:b0:720:79a:b09b with SMTP id 00721157ae682-720079ab767mr32347697b3.12.1756075550274;
        Sun, 24 Aug 2025 15:45:50 -0700 (PDT)
Message-ID: <15024e7a-f5e2-43df-8de8-e4da200e7ee6@gmail.com>
Date: Sun, 24 Aug 2025 18:45:45 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Consider changing CONFIG_ACPI default on ARM?
To: Elliott Mitchell <ehem+xen@m5p.com>, Julien Grall <julien@xen.org>
Cc: Jan Beulich <jbeulich@suse.com>, xen-users@lists.xenproject.org,
 xen-devel@lists.xenproject.org, Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Paul Leiber <paul@onlineschubla.de>
References: <CAO_48GG1Tg0d3ATnNAYNr0cg7Ty_zsnzT29=dpkk99DxyTWcmg@mail.gmail.com>
 <fceb5df8-d628-479d-acb3-d1d26409fbac@onlineschubla.de>
 <aJLae1Nl0pyOZgyh@mattapan.m5p.com>
 <1b96f2f3-55a2-4b33-84b1-a7c18d38d10c@suse.com>
 <6e9b5265-7a3b-4fd5-b14e-0e60a8b49833@gmail.com>
 <a3092ae1-d836-4403-8fb5-30593fcd2fb8@suse.com>
 <aKjOaT-P74Yh4-bi@mattapan.m5p.com>
 <2f11b8ea-a386-4c2a-afe6-c7e57d1d7f75@xen.org>
 <aKpzjMnNzxJCoIXb@mattapan.m5p.com>
Content-Language: en-US
From: Demi Marie Obenour <demiobenour@gmail.com>
Autocrypt: addr=demiobenour@gmail.com; keydata=
 xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49yB+l2nipd
 aq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYfbWpr/si88QKgyGSV
 Z7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/UorR+FaSuVwT7rqzGrTlscnT
 DlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7MMPCJwI8JpPlBedRpe9tfVyfu3euTPLPx
 wcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9Hzx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR
 6h3nBc3eyuZ+q62HS1pJ5EvUT1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl
 5FMWo8TCniHynNXsBtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2
 Bkg1b//r6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
 9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nSm9BBff0N
 m0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQABzTxEZW1pIE1hcmll
 IE9iZW5vdXIgKGxvdmVyIG9mIGNvZGluZykgPGRlbWlvYmVub3VyQGdtYWlsLmNvbT7CwXgE
 EwECACIFAlp+A0oCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJELKItV//nCLBhr8Q
 AK/xrb4wyi71xII2hkFBpT59ObLN+32FQT7R3lbZRjVFjc6yMUjOb1H/hJVxx+yo5gsSj5LS
 9AwggioUSrcUKldfA/PKKai2mzTlUDxTcF3vKx6iMXKA6AqwAw4B57ZEJoMM6egm57TV19kz
 PMc879NV2nc6+elaKl+/kbVeD3qvBuEwsTe2Do3HAAdrfUG/j9erwIk6gha/Hp9yZlCnPTX+
 VK+xifQqt8RtMqS5R/S8z0msJMI/ajNU03kFjOpqrYziv6OZLJ5cuKb3bZU5aoaRQRDzkFIR
 6aqtFLTohTo20QywXwRa39uFaOT/0YMpNyel0kdOszFOykTEGI2u+kja35g9TkH90kkBTG+a
 EWttIht0Hy6YFmwjcAxisSakBuHnHuMSOiyRQLu43ej2+mDWgItLZ48Mu0C3IG1seeQDjEYP
 tqvyZ6bGkf2Vj+L6wLoLLIhRZxQOedqArIk/Sb2SzQYuxN44IDRt+3ZcDqsPppoKcxSyd1Ny
 2tpvjYJXlfKmOYLhTWs8nwlAlSHX/c/jz/ywwf7eSvGknToo1Y0VpRtoxMaKW1nvH0OeCSVJ
 itfRP7YbiRVc2aNqWPCSgtqHAuVraBRbAFLKh9d2rKFB3BmynTUpc1BQLJP8+D5oNyb8Ts4x
 Xd3iV/uD8JLGJfYZIR7oGWFLP4uZ3tkneDfYzsFNBFp+A0oBEAC9ynZI9LU+uJkMeEJeJyQ/
 8VFkCJQPQZEsIGzOTlPnwvVna0AS86n2Z+rK7R/usYs5iJCZ55/JISWd8xD57ue0eB47bcJv
 VqGlObI2DEG8TwaW0O0duRhDgzMEL4t1KdRAepIESBEA/iPpI4gfUbVEIEQuqdqQyO4GAe+M
 kD0Hy5JH/0qgFmbaSegNTdQg5iqYjRZ3ttiswalql1/iSyv1WYeC1OAs+2BLOAT2NEggSiVO
 txEfgewsQtCWi8H1SoirakIfo45Hz0tk/Ad9ZWh2PvOGt97Ka85o4TLJxgJJqGEnqcFUZnJJ
 riwoaRIS8N2C8/nEM53jb1sH0gYddMU3QxY7dYNLIUrRKQeNkF30dK7V6JRH7pleRlf+wQcN
 fRAIUrNlatj9TxwivQrKnC9aIFFHEy/0mAgtrQShcMRmMgVlRoOA5B8RTulRLCmkafvwuhs6
 dCxN0GNAORIVVFxjx9Vn7OqYPgwiofZ6SbEl0hgPyWBQvE85klFLZLoj7p+joDY1XNQztmfA
 rnJ9x+YV4igjWImINAZSlmEcYtd+xy3Li/8oeYDAqrsnrOjb+WvGhCykJk4urBog2LNtcyCj
 kTs7F+WeXGUo0NDhbd3Z6AyFfqeF7uJ3D5hlpX2nI9no/ugPrrTVoVZAgrrnNz0iZG2DVx46
 x913pVKHl5mlYQARAQABwsFfBBgBAgAJBQJafgNKAhsMAAoJELKItV//nCLBwNIP/AiIHE8b
 oIqReFQyaMzxq6lE4YZCZNj65B/nkDOvodSiwfwjjVVE2V3iEzxMHbgyTCGA67+Bo/d5aQGj
 gn0TPtsGzelyQHipaUzEyrsceUGWYoKXYyVWKEfyh0cDfnd9diAm3VeNqchtcMpoehETH8fr
 RHnJdBcjf112PzQSdKC6kqU0Q196c4Vp5HDOQfNiDnTf7gZSj0BraHOByy9LEDCLhQiCmr+2
 E0rW4tBtDAn2HkT9uf32ZGqJCn1O+2uVfFhGu6vPE5qkqrbSE8TG+03H8ecU2q50zgHWPdHM
 OBvy3EhzfAh2VmOSTcRK+tSUe/u3wdLRDPwv/DTzGI36Kgky9MsDC5gpIwNbOJP2G/q1wT1o
 Gkw4IXfWv2ufWiXqJ+k7HEi2N1sree7Dy9KBCqb+ca1vFhYPDJfhP75I/VnzHVssZ/rYZ9+5
 1yDoUABoNdJNSGUYl+Yh9Pw9pE3Kt4EFzUlFZWbE4xKL/NPno+z4J9aWemLLszcYz/u3XnbO
 vUSQHSrmfOzX3cV4yfmjM5lewgSstoxGyTx2M8enslgdXhPthZlDnTnOT+C+OTsh8+m5tos8
 HQjaPM01MKBiAqdPgksm1wu2DrrwUi6ChRVTUBcj6+/9IJ81H2P2gJk3Ls3AVIxIffLoY34E
 +MYSfkEjBz0E8CLOcAw7JIwAaeBT
In-Reply-To: <aKpzjMnNzxJCoIXb@mattapan.m5p.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------bhY5DSzf495VIr8O8A6zutvS"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------bhY5DSzf495VIr8O8A6zutvS
Content-Type: multipart/mixed; boundary="------------t00hXkO0rFL9WCPjRbNmoM76";
 protected-headers="v1"
From: Demi Marie Obenour <demiobenour@gmail.com>
To: Elliott Mitchell <ehem+xen@m5p.com>, Julien Grall <julien@xen.org>
Cc: Jan Beulich <jbeulich@suse.com>, xen-users@lists.xenproject.org,
 xen-devel@lists.xenproject.org, Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Paul Leiber <paul@onlineschubla.de>
Message-ID: <15024e7a-f5e2-43df-8de8-e4da200e7ee6@gmail.com>
Subject: Re: Consider changing CONFIG_ACPI default on ARM?
References: <CAO_48GG1Tg0d3ATnNAYNr0cg7Ty_zsnzT29=dpkk99DxyTWcmg@mail.gmail.com>
 <fceb5df8-d628-479d-acb3-d1d26409fbac@onlineschubla.de>
 <aJLae1Nl0pyOZgyh@mattapan.m5p.com>
 <1b96f2f3-55a2-4b33-84b1-a7c18d38d10c@suse.com>
 <6e9b5265-7a3b-4fd5-b14e-0e60a8b49833@gmail.com>
 <a3092ae1-d836-4403-8fb5-30593fcd2fb8@suse.com>
 <aKjOaT-P74Yh4-bi@mattapan.m5p.com>
 <2f11b8ea-a386-4c2a-afe6-c7e57d1d7f75@xen.org>
 <aKpzjMnNzxJCoIXb@mattapan.m5p.com>
In-Reply-To: <aKpzjMnNzxJCoIXb@mattapan.m5p.com>

--------------t00hXkO0rFL9WCPjRbNmoM76
Content-Type: multipart/mixed; boundary="------------7dN8ZYe6aEr0MI5TuvZc0AMK"

--------------7dN8ZYe6aEr0MI5TuvZc0AMK
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On 8/23/25 22:06, Elliott Mitchell wrote:
> On Sat, Aug 23, 2025 at 08:59:13AM +0100, Julien Grall wrote:
>>
>> On 22/08/2025 21:09, Elliott Mitchell wrote:
>>> Since you're not pointing to anything definite, could it be everythin=
g
>>> has been resolved?
>>
>> Unfortunately, the situation has not changed since your last thread ab=
out
>> enabling CONFIG_ACPI=3Dy a couple of years ago. The main feature we ar=
e
>> lacking is the parsing the IORT (used to discover SMMUs and MSI
>> controllers). Without this...
>=20
> No one to sponsor this work?  Disappointing with how far ACPI support h=
ad
> gotten.  Surprising the funding ended here.
>=20
>>>  We've got at least two people for whom ACPI on ARM
>>> works pretty well.
>>
>> ... Xen will only properly boot on "simple" case like the Raspberry PI=
=2E
>> Also, IIRC Xen would use ACPI rather than Device-Tree by default.
>=20
> What is the "improper" booting on non-simple cases like?  panic()?
> Domain 0 boots, but the system isn't properly protected by the SMMU?
> Ideally it would be runtime configurable with the former being the
> default, but the panic message indicating how to override to produce th=
e
> latter.  Perhaps even accompanied by an invitation for sponsorship.
>=20
> Yet handling those simple cases would help many people.  For a long tim=
e
> IO-MMUs were rare, yet the world did not end.
>=20
>>> There may be many more using it.  Perhaps this
>>> should even be done on the 4.20 branch given how long this has been
>>> working?
>>
>> I am guessing you mean 4.21 which will be released in a couple of mont=
hs
>> time, correct?
>=20
> As it is very simple to flip the default, I was thinking it might be
> worthwhile to change it on earlier versions too.  After all it has
> actually been known to work for kind of a long time.
>=20
>> We have been discussing among the committers on whether we are ok to e=
nable
>> ACPI despite the fact it is still not feature complete (see above). Th=
e
>> discussion is not fully finalized but if we were to enable CONFIG_ACPI=
=3Dy by
>> default then I think we would need the following:
>>
>>  * Select device-tree by default rather than ACPI
>>  * Go through SUPPORT.MD and check what features we marked as SUPPORTE=
D.md
>> but doesn't work on ACPI.
>>
>> Maybe you can help with that?
>=20
> I'm not sure this is a good role for me.  I suppose I could do a first
> pass marking everything as non-ACPI.  Problem is most recently I've bee=
n
> focussing on another aspect and I would mostly be guessing about things=
=2E
>=20
>> Out of interest, sorry if this was already mentioned before, is there =
any
>> reason ACPI is used on the Raspberry PI over Device-Tree? Is there any=
 issue
>> with the latter on Xen?
>=20
> Issue is various Linux distributions have differing levels of support f=
or
> various targets.  Nearly everyone has some degree of support for
> Raspberry PI (even Tianocore!), but the quality does vary from
> distribution to distribution.
>=20
> My favored distribution is rather limited in what it does for !x86.
> Everything gets built for !x86, but things such as booting hasn't been
> heavily looked at.  There is agreement using U-Boot/UEFI =3D> GRUB woul=
d
> likely be a Good Thing, but there is a shortage of people with the righ=
t
> expertise to get that working.  As a result booting Xen is troublesome.=

>=20
> Whereas copying the Tianocore firmware into place and getting it bootin=
g
> is *extremely* simple.  Further this has very few restrictions (GPT and=

> a ~200MB FAT filesystem).  Better yet once in place this is extremely
> robust.
>=20
> The only argument in favor of device-trees I've seen is that they're ea=
sy
> to deal with.  Certainly they need little runtime processing.  Yet they=

> come with a major weakness that they're really part of the kernel.  Whe=
n
> the Linux kernel is replaced (even patch-level differences) you pretty
> well always need to replace the device-trees.  Once you've done that it=

> is quite difficult to go back to the earlier kernel.
>=20
> New device-trees often cause older kernels to panic or malfunction.  If=

> storage is on USB you can unplug and adjust on a nearby desktop, but th=
is
> means you need to keep another system handy.  Whereas due to being well=

> isolated from the OS, the same set of ACPI tables works for many OSes a=
nd
> nearly all versions of Linux.
>=20
> The instances of ACPI tables which worked with Windows, but failed for
> other operating systems are quite famous.  The instances where a given
> set of device-trees work with Linux, but then fail with other OSes
> (or even merely different version of Linux) are not notable.  In fact
> instances where device-trees *don't* change drastically between kernel
> minor versions are newsworthy.

I think one proper answer is to bundle the device trees with the kernel,
and to make sure Xen uses the same code to handle it as Linux does.
Both are GPLv2 so it is fine to move code back and forth between them.
--=20
Sincerely,
Demi Marie Obenour (she/her/hers)
--------------7dN8ZYe6aEr0MI5TuvZc0AMK
Content-Type: application/pgp-keys; name="OpenPGP_0xB288B55FFF9C22C1.asc"
Content-Disposition: attachment; filename="OpenPGP_0xB288B55FFF9C22C1.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

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

xsFNBFp+A0oBEADffj6anl9/BHhUSxGTICeVl2tob7hPDdhHNgPR4C8xlYt5q49y
B+l2nipdaq+4Gk6FZfqC825TKl7eRpUjMriwle4r3R0ydSIGcy4M6eb0IcxmuPYf
bWpr/si88QKgyGSVZ7GeNW1UnzTdhYHuFlk8dBSmB1fzhEYEk0RcJqg4AKoq6/3/
UorR+FaSuVwT7rqzGrTlscnTDlPWgRzrQ3jssesI7sZLm82E3pJSgaUoCdCOlL7M
MPCJwI8JpPlBedRpe9tfVyfu3euTPLPxwcV3L/cfWPGSL4PofBtB8NUU6QwYiQ9H
zx4xOyn67zW73/G0Q2vPPRst8LBDqlxLjbtx/WLR6h3nBc3eyuZ+q62HS1pJ5EvU
T1vjyJ1ySrqtUXWQ4XlZyoEFUfpJxJoN0A9HCxmHGVckzTRl5FMWo8TCniHynNXs
BtDQbabt7aNEOaAJdE7to0AH3T/Bvwzcp0ZJtBk0EM6YeMLtotUut7h2Bkg1b//r
6bTBswMBXVJ5H44Qf0+eKeUg7whSC9qpYOzzrm7+0r9F5u3qF8ZTx55TJc2g656C
9a1P1MYVysLvkLvS4H+crmxA/i08Tc1h+x9RRvqba4lSzZ6/Tmt60DPM5Sc4R0nS
m9BBff0Nm0bSNRS8InXdO1Aq3362QKX2NOwcL5YaStwODNyZUqF7izjK4QARAQAB
zTxEZW1pIE9iZW5vdXIgKElUTCBFbWFpbCBLZXkpIDxhdGhlbmFAaW52aXNpYmxl
dGhpbmdzbGFiLmNvbT7CwY4EEwEIADgWIQR2h02fEza6IlkHHHGyiLVf/5wiwQUC
X6YJvQIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRCyiLVf/5wiwWRhD/0Y
R+YYC5Kduv/2LBgQJIygMsFiRHbR4+tWXuTFqgrxxFSlMktZ6gQrQCWe38WnOXkB
oY6n/5lSJdfnuGd2UagZ/9dkaGMUkqt+5WshLFly4BnP7pSsWReKgMP7etRTwn3S
zk1OwFx2lzY1EnnconPLfPBc6rWG2moA6l0WX+3WNR1B1ndqpl2hPSjT2jUCBWDV
rGOUSX7r5f1WgtBeNYnEXPBCUUM51pFGESmfHIXQrqFDA7nBNiIVFDJTmQzuEqIy
Jl67pKNgooij5mKzRhFKHfjLRAH4mmWZlB9UjDStAfFBAoDFHwd1HL5VQCNQdqEc
/9lZDApqWuCPadZN+pGouqLysesIYsNxUhJ7dtWOWHl0vs7/3qkWmWun/2uOJMQh
ra2u8nA9g91FbOobWqjrDd6x3ZJoGQf4zLqjmn/P514gb697788e573WN/MpQ5XI
Fl7aM2d6/GJiq6LC9T2gSUW4rbPBiqOCeiUx7Kd/sVm41p9TOA7fEG4bYddCfDsN
xaQJH6VRK3NOuBUGeL+iQEVF5Xs6Yp+U+jwvv2M5Lel3EqAYo5xXTx4ls0xaxDCu
fudcAh8CMMqx3fguSb7Mi31WlnZpk0fDuWQVNKyDP7lYpwc4nCCGNKCj622ZSocH
AcQmX28L8pJdLYacv9pU3jPy4fHcQYvmTavTqowGnM08RGVtaSBNYXJpZSBPYmVu
b3VyIChsb3ZlciBvZiBjb2RpbmcpIDxkZW1pb2Jlbm91ckBnbWFpbC5jb20+wsF4
BBMBAgAiBQJafgNKAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRCyiLVf
/5wiwYa/EACv8a2+MMou9cSCNoZBQaU+fTmyzft9hUE+0d5W2UY1RY3OsjFIzm9R
/4SVccfsqOYLEo+S0vQMIIIqFEq3FCpXXwPzyimotps05VA8U3Bd7yseojFygOgK
sAMOAee2RCaDDOnoJue01dfZMzzHPO/TVdp3OvnpWipfv5G1Xg96rwbhMLE3tg6N
xwAHa31Bv4/Xq8CJOoIWvx6fcmZQpz01/lSvsYn0KrfEbTKkuUf0vM9JrCTCP2oz
VNN5BYzqaq2M4r+jmSyeXLim922VOWqGkUEQ85BSEemqrRS06IU6NtEMsF8EWt/b
hWjk/9GDKTcnpdJHTrMxTspExBiNrvpI2t+YPU5B/dJJAUxvmhFrbSIbdB8umBZs
I3AMYrEmpAbh5x7jEjoskUC7uN3o9vpg1oCLS2ePDLtAtyBtbHnkA4xGD7ar8mem
xpH9lY/i+sC6CyyIUWcUDnnagKyJP0m9ks0GLsTeOCA0bft2XA6rD6aaCnMUsndT
ctrab42CV5XypjmC4U1rPJ8JQJUh1/3P48/8sMH+3krxpJ06KNWNFaUbaMTGiltZ
7x9DngklSYrX0T+2G4kVXNmjaljwkoLahwLla2gUWwBSyofXdqyhQdwZsp01KXNQ
UCyT/Pg+aDcm/E7OMV3d4lf7g/CSxiX2GSEe6BlhSz+Lmd7ZJ3g32M1ARGVtaSBN
YXJpZSBPYmVub3VyIChJVEwgRW1haWwgS2V5KSA8ZGVtaUBpbnZpc2libGV0aGlu
Z3NsYWIuY29tPsLBjgQTAQgAOBYhBHaHTZ8TNroiWQcccbKItV//nCLBBQJgOEV+
AhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJELKItV//nCLBKwoP/1WSnFdv
SAD0g7fD0WlF+oi7ISFT7oqJnchFLOwVHK4Jg0e4hGn1ekWsF3Ha5tFLh4V/7UUu
obYJpTfBAA2CckspYBqLtKGjFxcaqjjpO1I2W/jeNELVtSYuCOZICjdNGw2Hl9yH
KRZiBkqc9u8lQcHDZKq4LIpVJj6ZQV/nxttDX90ax2No1nLLQXFbr5wb465LAPpU
lXwunYDij7xJGye+VUASQh9datye6orZYuJvNo8Tr3mAQxxkfR46LzWgxFCPEAZJ
5P56Nc0IMHdJZj0Uc9+1jxERhOGppp5jlLgYGK7faGB/jTV6LaRQ4Ad+xiqokDWp
mUOZsmA+bMbtPfYjDZBz5mlyHcIRKIFpE1l3Y8F7PhJuzzMUKkJi90CYakCV4x/a
Zs4pzk5E96c2VQx01RIEJ7fzHF7lwFdtfTS4YsLtAbQFsKayqwkGcVv2B1AHeqdo
TMX+cgDvjd1ZganGlWA8Sv9RkNSMchn1hMuTwERTyFTr2dKPnQdA1F480+jUap41
ClXgn227WkCIMrNhQGNyJsnwyzi5wS8rBVRQ3BOTMyvGM07j3axUOYaejEpg7wKi
wTPZGLGH1sz5GljD/916v5+v2xLbOo5606j9dWf5/tAhbPuqrQgWv41wuKDi+dDD
EKkODF7DHes8No+QcHTDyETMn1RYm7t0RKR4zsFNBFp+A0oBEAC9ynZI9LU+uJkM
eEJeJyQ/8VFkCJQPQZEsIGzOTlPnwvVna0AS86n2Z+rK7R/usYs5iJCZ55/JISWd
8xD57ue0eB47bcJvVqGlObI2DEG8TwaW0O0duRhDgzMEL4t1KdRAepIESBEA/iPp
I4gfUbVEIEQuqdqQyO4GAe+MkD0Hy5JH/0qgFmbaSegNTdQg5iqYjRZ3ttiswalq
l1/iSyv1WYeC1OAs+2BLOAT2NEggSiVOtxEfgewsQtCWi8H1SoirakIfo45Hz0tk
/Ad9ZWh2PvOGt97Ka85o4TLJxgJJqGEnqcFUZnJJriwoaRIS8N2C8/nEM53jb1sH
0gYddMU3QxY7dYNLIUrRKQeNkF30dK7V6JRH7pleRlf+wQcNfRAIUrNlatj9Txwi
vQrKnC9aIFFHEy/0mAgtrQShcMRmMgVlRoOA5B8RTulRLCmkafvwuhs6dCxN0GNA
ORIVVFxjx9Vn7OqYPgwiofZ6SbEl0hgPyWBQvE85klFLZLoj7p+joDY1XNQztmfA
rnJ9x+YV4igjWImINAZSlmEcYtd+xy3Li/8oeYDAqrsnrOjb+WvGhCykJk4urBog
2LNtcyCjkTs7F+WeXGUo0NDhbd3Z6AyFfqeF7uJ3D5hlpX2nI9no/ugPrrTVoVZA
grrnNz0iZG2DVx46x913pVKHl5mlYQARAQABwsFfBBgBAgAJBQJafgNKAhsMAAoJ
ELKItV//nCLBwNIP/AiIHE8boIqReFQyaMzxq6lE4YZCZNj65B/nkDOvodSiwfwj
jVVE2V3iEzxMHbgyTCGA67+Bo/d5aQGjgn0TPtsGzelyQHipaUzEyrsceUGWYoKX
YyVWKEfyh0cDfnd9diAm3VeNqchtcMpoehETH8frRHnJdBcjf112PzQSdKC6kqU0
Q196c4Vp5HDOQfNiDnTf7gZSj0BraHOByy9LEDCLhQiCmr+2E0rW4tBtDAn2HkT9
uf32ZGqJCn1O+2uVfFhGu6vPE5qkqrbSE8TG+03H8ecU2q50zgHWPdHMOBvy3Ehz
fAh2VmOSTcRK+tSUe/u3wdLRDPwv/DTzGI36Kgky9MsDC5gpIwNbOJP2G/q1wT1o
Gkw4IXfWv2ufWiXqJ+k7HEi2N1sree7Dy9KBCqb+ca1vFhYPDJfhP75I/VnzHVss
Z/rYZ9+51yDoUABoNdJNSGUYl+Yh9Pw9pE3Kt4EFzUlFZWbE4xKL/NPno+z4J9aW
emLLszcYz/u3XnbOvUSQHSrmfOzX3cV4yfmjM5lewgSstoxGyTx2M8enslgdXhPt
hZlDnTnOT+C+OTsh8+m5tos8HQjaPM01MKBiAqdPgksm1wu2DrrwUi6ChRVTUBcj
6+/9IJ81H2P2gJk3Ls3AVIxIffLoY34E+MYSfkEjBz0E8CLOcAw7JIwAaeBTzsFN
BGbyLVgBEACqClxh50hmBepTSVlan6EBq3OAoxhrAhWZYEwN78k+ENhK68KhqC5R
IsHzlL7QHW1gmfVBQZ63GnWiraM6wOJqFTL4ZWvRslga9u28FJ5XyK860mZLgYhK
9BzoUk4s+dat9jVUbq6LpQ1Ot5I9vrdzo2p1jtQ8h9WCIiFxSYy8s8pZ3hHh5T64
GIj1m/kY7lG3VIdUgoNiREGf/iOMjUFjwwE9ZoJ26j9p7p1U+TkKeF6wgswEB1T3
J8KCAtvmRtqJDq558IU5jhg5fgN+xHB8cgvUWulgK9FIF9oFxcuxtaf/juhHWKMO
RtL0bHfNdXoBdpUDZE+mLBUAxF6KSsRrvx6AQyJs7VjgXJDtQVWvH0PUmTrEswgb
49nNU+dLLZQAZagxqnZ9Dp5l6GqaGZCHERJcLmdY/EmMzSf5YazJ6c0vO8rdW27M
kn73qcWAplQn5mOXaqbfzWkAUPyUXppuRHfrjxTDz3GyJJVOeMmMrTxH4uCaGpOX
Z8tN6829J1roGw4oKDRUQsaBAeEDqizXMPRc+6U9vI5FXzbAsb+8lKW65G7JWHym
YPOGUt2hK4DdTA1PmVo0DxH00eWWeKxqvmGyX+Dhcg+5e191rPsMRGsDlH6KihI6
+3JIuc0y6ngdjcp6aalbuvPIGFrCRx3tnRtNc7He6cBWQoH9RPwluwARAQABwsOs
BBgBCgAgFiEEdodNnxM2uiJZBxxxsoi1X/+cIsEFAmbyLVgCGwICQAkQsoi1X/+c
IsHBdCAEGQEKAB0WIQSilC2pUlbVp66j3+yzNoc6synyUwUCZvItWAAKCRCzNoc6
synyU85gD/0T1QDtPhovkGwoqv4jUbEMMvpeYQf+oWgm/TjWPeLwdjl7AtY0G9Ml
ZoyGniYkoHi37Gnn/ShLT3B5vtyI58ap2+SSa8SnGftdAKRLiWFWCiAEklm9FRk8
N3hwxhmSFF1KR/AIDS4g+HIsZn7YEMubBSgLlZZ9zHl4O4vwuXlREBEW97iL/FSt
VownU2V39t7PtFvGZNk+DJH7eLO3jmNRYB0PL4JOyyda3NH/J92iwrFmjFWWmmWb
/Xz8l9DIs+Z59pRCVTTwbBEZhcUc7rVMCcIYL+q1WxBG2e6lMn15OQJ5WfiE6E0I
sGirAEDnXWx92JNGx5l+mMpdpsWhBZ5iGTtttZesibNkQfd48/eCgFi4cxJUC4PT
UQwfD9AMgzwSTGJrkI5XGy+XqxwOjL8UA0iIrtTpMh49zw46uV6kwFQCgkf32jZM
OLwLTNSzclbnA7GRd8tKwezQ/XqeK3dal2n+cOr+o+Eka7yGmGWNUqFbIe8cjj9T
JeF3mgOCmZOwMI+wIcQYRSf+e5VTMO6TNWH5BI3vqeHSt7HkYuPlHT0pGum88d4a
pWqhulH4rUhEMtirX1hYx8Q4HlUOQqLtxzmwOYWkhl1C+yPObAvUDNiHCLf9w28n
uihgEkzHt9J4VKYulyJM9fe3ENcyU6rpXD7iANQqcr87ogKXFxknZ97uEACvSucc
RbnnAgRqZ7GDzgoBerJ2zrmhLkeREZ08iz1zze1JgyW3HEwdr2UbyAuqvSADCSUU
GN0vtQHsPzWl8onRc7lOPqPDF8OO+UfN9NAfA4wl3QyChD1GXl9rwKQOkbvdlYFV
UFx9u86LNi4ssTmU8p9NtHIGpz1SYMVYNoYy9NU7EVqypGMguDCL7gJt6GUmA0sw
p+YCroXiwL2BJ7RwRqTpgQuFL1gShkA17D5jK4mDPEetq1d8kz9rQYvAR/sTKBsR
ImC3xSfn8zpWoNTTB6lnwyP5Ng1bu6esS7+SpYprFTe7ZqGZF6xhvBPf1Ldi9UAm
U2xPN1/eeWxEa2kusidmFKPmN8lcT4miiAvwGxEnY7Oww9CgZlUB+LP4dl5VPjEt
sFeAhrgxLdpVTjPRRwTd9VQF3/XYl83j5wySIQKIPXgT3sG3ngAhDhC8I8GpM36r
8WJJ3x2yVzyJUbBPO0GBhWE2xPNIfhxVoU4cGGhpFqz7dPKSTRDGq++MrFgKKGpI
ZwT3CPTSSKc7ySndEXWkOYArDIdtyxdE1p5/c3aoz4utzUU7NDHQ+vVIwlnZSMiZ
jek2IJP3SZ+COOIHCVxpUaZ4lnzWT4eDqABhMLpIzw6NmGfg+kLBJhouqz81WITr
EtJuZYM5blWncBOJCoWMnBEcTEo/viU3GgcVRw=3D=3D
=3Dx94R
-----END PGP PUBLIC KEY BLOCK-----

--------------7dN8ZYe6aEr0MI5TuvZc0AMK--

--------------t00hXkO0rFL9WCPjRbNmoM76--

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

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

iQIzBAEBCgAdFiEEopQtqVJW1aeuo9/sszaHOrMp8lMFAmirlhoACgkQszaHOrMp
8lMabxAAidNE1MkZhI7a8HeOEDj6voJr+37OXxJxGRHlPiniSbH9/3hz2FBkqLuz
LOobmL9gSNc4RQ6nDnuO6RW+zsn1CkOmMfs5fa6aTmBZVcbSq4vDmlyCIySxN4X7
q/tY/8kz0ZN52+gKbIy5CqvB6a9NaSxvcZBBODSOpUog0ZOZxgtWcfoWJPsoQE03
eKIF8jDlzxUXPpBut7DqVDmy6FDjHRRa7P2fvXmJegKMTj++JhrqMc+YuTF/aL1z
ZOlUUySMgQfuRdJhTdcIgA3CETRkPZO+VpypMzAL6y81rWe6c8nV+NlLlGWzEvt/
k3YlUPDC+iRoy2QEcQrs2HB9j3edZQ6Cbygq37gCSXFW19jh8KHXwYH1zYeeEPEo
ij+twZUbLTIO8O3SncredUZkAKQvnQd4e2DBfFwJetdcKgUTdAMJWrgE3CNqK/wn
aT2foLPnSzQ5RYvB3r7ldB1dOeEMX77Drb2WelIrEeH4LHNDjFbwdXvV16rmv4aH
WuqUg3bueF+0G1sPf6YnI3qYzQQXSw+a6M7S2c+SQUBp9iETode8+LB9lw+o8a0m
LGk9hqzmLjsoknMaJrs3d8A9/S14xmY2Qyja4HxEYuWZCQhb4kEFxpwDtWf+Qcsw
jRIueASHtxe2LDks5II7pTwqOzyy4jHJaAtvP917rRtDnNUnBw8=
=katF
-----END PGP SIGNATURE-----

--------------bhY5DSzf495VIr8O8A6zutvS--


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 01:54:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 01:54:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1092433.1448283 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqMPp-0007Sl-Uf; Mon, 25 Aug 2025 01:54:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1092433.1448283; Mon, 25 Aug 2025 01:54: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 1uqMPp-0007Sd-PD; Mon, 25 Aug 2025 01:54:33 +0000
Received: by outflank-mailman (input) for mailman id 1092433;
 Mon, 25 Aug 2025 01:54:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=2dQ8=3F=zytor.com=xin@srs-se1.protection.inumbo.net>)
 id 1uqMPo-0007SX-4F
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 01:54:33 +0000
Received: from mail.zytor.com (terminus.zytor.com [2607:7c80:54:3::136])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6e9a3263-8156-11f0-b898-0df219b8e170;
 Mon, 25 Aug 2025 03:54:28 +0200 (CEST)
Received: from [192.168.7.202] ([71.202.166.45]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 57P1s3G0227583
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Sun, 24 Aug 2025 18:54:03 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6e9a3263-8156-11f0-b898-0df219b8e170
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 57P1s3G0227583
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2025082201; t=1756086845;
	bh=KEWOK4sLQoLJgIivlU3T5pOWD441yFa5n7LMOyN/7wk=;
	h=Date:From:Subject:To:Cc:References:In-Reply-To:From;
	b=mVwwNhGAqJFtYMyAs8+8BjV8Oppn2oinOo2C0OHSKd5HiPWeKHr9IejB7gRjWdQj9
	 fc3DbVZw709Tct03uyeitUEmTkodBPxkb3DV+Euq1sEXpb2gDmRg7pimlP/FON1SeO
	 HQZd1s37vx7EgdPclhWxcWkQlPAux7IaWYN3Xw4JOLeEF9cRe/rn2UjjqGQvAhMh/i
	 xBzq5FJTEstgnM1mjAEJN8ikVhsrtFTi9aony9Zh4jIdko+TPhy12QpWmdFpyDHvf2
	 vTwH5GW1oHFHt7PSurQadFhfXTvhhD05pKy7g4qpKVORRnEWbKaIALCSWPjzpxbNRF
	 1cJTlSzZGwE9Q==
Message-ID: <7047440a-0419-4982-961b-46f9b90a86e9@zytor.com>
Date: Sun, 24 Aug 2025 18:54:02 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Xin Li <xin@zytor.com>
Subject: Re: [PATCH 5/6] x86/paravirt: Switch MSR access pv_ops functions to
 instruction interfaces
To: Juergen Gross <jgross@suse.com>, linux-kernel@vger.kernel.org,
        x86@kernel.org, virtualization@lists.linux.dev
Cc: Ajay Kaher <ajay.kaher@broadcom.com>,
        Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>,
        Thomas Gleixner
 <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
        Borislav Petkov <bp@alien8.de>,
        Dave Hansen <dave.hansen@linux.intel.com>,
        "H. Peter Anvin" <hpa@zytor.com>,
        Boris Ostrovsky <boris.ostrovsky@oracle.com>,
        xen-devel@lists.xenproject.org,
        Andrew Cooper <andrew.cooper3@citrix.com>
References: <20250506092015.1849-1-jgross@suse.com>
 <20250506092015.1849-6-jgross@suse.com>
 <722f5b30-20e9-4540-98e4-d211d7c44cbe@zytor.com>
 <9f4e33d5-9cb3-4079-b764-87a15265fd52@suse.com>
 <2365af70-d36f-4663-b819-59d886936ef5@zytor.com>
 <8a82946a-6c3e-41d1-b3bd-be164dc6eeba@suse.com>
Content-Language: en-US
Autocrypt: addr=xin@zytor.com; keydata=
 xsDNBGUPz1cBDACS/9yOJGojBFPxFt0OfTWuMl0uSgpwk37uRrFPTTLw4BaxhlFL0bjs6q+0
 2OfG34R+a0ZCuj5c9vggUMoOLdDyA7yPVAJU0OX6lqpg6z/kyQg3t4jvajG6aCgwSDx5Kzg5
 Rj3AXl8k2wb0jdqRB4RvaOPFiHNGgXCs5Pkux/qr0laeFIpzMKMootGa4kfURgPhRzUaM1vy
 bsMsL8vpJtGUmitrSqe5dVNBH00whLtPFM7IbzKURPUOkRRiusFAsw0a1ztCgoFczq6VfAVu
 raTye0L/VXwZd+aGi401V2tLsAHxxckRi9p3mc0jExPc60joK+aZPy6amwSCy5kAJ/AboYtY
 VmKIGKx1yx8POy6m+1lZ8C0q9b8eJ8kWPAR78PgT37FQWKYS1uAroG2wLdK7FiIEpPhCD+zH
 wlslo2ETbdKjrLIPNehQCOWrT32k8vFNEMLP5G/mmjfNj5sEf3IOKgMTMVl9AFjsINLHcxEQ
 6T8nGbX/n3msP6A36FDfdSEAEQEAAc0WWGluIExpIDx4aW5Aenl0b3IuY29tPsLBDQQTAQgA
 NxYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89XBQkFo5qAAhsDBAsJCAcFFQgJCgsFFgID
 AQAACgkQa70OVx2uN1HUpgv/cM2fsFCQodLArMTX5nt9yqAWgA5t1srri6EgS8W3F+3Kitge
 tYTBKu6j5BXuXaX3vyfCm+zajDJN77JHuYnpcKKr13VcZi1Swv6Jx1u0II8DOmoDYLb1Q2ZW
 v83W55fOWJ2g72x/UjVJBQ0sVjAngazU3ckc0TeNQlkcpSVGa/qBIHLfZraWtdrNAQT4A1fa
 sWGuJrChBFhtKbYXbUCu9AoYmmbQnsx2EWoJy3h7OjtfFapJbPZql+no5AJ3Mk9eE5oWyLH+
 QWqtOeJM7kKvn/dBudokFSNhDUw06e7EoVPSJyUIMbYtUO7g2+Atu44G/EPP0yV0J4lRO6EA
 wYRXff7+I1jIWEHpj5EFVYO6SmBg7zF2illHEW31JAPtdDLDHYcZDfS41caEKOQIPsdzQkaQ
 oW2hchcjcMPAfyhhRzUpVHLPxLCetP8vrVhTvnaZUo0xaVYb3+wjP+D5j/3+hwblu2agPsaE
 vgVbZ8Fx3TUxUPCAdr/p73DGg57oHjgezsDNBGUPz1gBDAD4Mg7hMFRQqlzotcNSxatlAQNL
 MadLfUTFz8wUUa21LPLrHBkUwm8RujehJrzcVbPYwPXIO0uyL/F///CogMNx7Iwo6by43KOy
 g89wVFhyy237EY76j1lVfLzcMYmjBoTH95fJC/lVb5Whxil6KjSN/R/y3jfG1dPXfwAuZ/4N
 cMoOslWkfZKJeEut5aZTRepKKF54T5r49H9F7OFLyxrC/uI9UDttWqMxcWyCkHh0v1Di8176
 jjYRNTrGEfYfGxSp+3jYL3PoNceIMkqM9haXjjGl0W1B4BidK1LVYBNov0rTEzyr0a1riUrp
 Qk+6z/LHxCM9lFFXnqH7KWeToTOPQebD2B/Ah5CZlft41i8L6LOF/LCuDBuYlu/fI2nuCc8d
 m4wwtkou1Y/kIwbEsE/6RQwRXUZhzO6llfoN96Fczr/RwvPIK5SVMixqWq4QGFAyK0m/1ap4
 bhIRrdCLVQcgU4glo17vqfEaRcTW5SgX+pGs4KIPPBE5J/ABD6pBnUUAEQEAAcLA/AQYAQgA
 JhYhBIUq/WFSDTiOvUIqv2u9DlcdrjdRBQJlD89ZBQkFo5qAAhsMAAoJEGu9DlcdrjdR4C0L
 /RcjolEjoZW8VsyxWtXazQPnaRvzZ4vhmGOsCPr2BPtMlSwDzTlri8BBG1/3t/DNK4JLuwEj
 OAIE3fkkm+UG4Kjud6aNeraDI52DRVCSx6xff3bjmJsJJMb12mWglN6LjdF6K+PE+OTJUh2F
 dOhslN5C2kgl0dvUuevwMgQF3IljLmi/6APKYJHjkJpu1E6luZec/lRbetHuNFtbh3xgFIJx
 2RpgVDP4xB3f8r0I+y6ua+p7fgOjDLyoFjubRGed0Be45JJQEn7A3CSb6Xu7NYobnxfkwAGZ
 Q81a2XtvNS7Aj6NWVoOQB5KbM4yosO5+Me1V1SkX2jlnn26JPEvbV3KRFcwV5RnDxm4OQTSk
 PYbAkjBbm+tuJ/Sm+5Yp5T/BnKz21FoCS8uvTiziHj2H7Cuekn6F8EYhegONm+RVg3vikOpn
 gao85i4HwQTK9/D1wgJIQkdwWXVMZ6q/OALaBp82vQ2U9sjTyFXgDjglgh00VRAHP7u1Rcu4
 l75w1xInsg==
In-Reply-To: <8a82946a-6c3e-41d1-b3bd-be164dc6eeba@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 6/11/2025 5:58 AM, Juergen Gross wrote:
> I'm just doing a V2 of my series, but this time including the additional
> support of the non-serializing and immediate forms. Lets see how this will
> look like. I will drop using the EAX_EDX_* macros, but due to the reason
> mentioned above I won't switch to your variant completely.

Hi Juergen,

Do you have any update on this?

Thanks!
     Xin



From xen-devel-bounces@lists.xenproject.org Mon Aug 25 07:46:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 07:46:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1092699.1448356 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqRuC-00035V-UY; Mon, 25 Aug 2025 07:46:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1092699.1448356; Mon, 25 Aug 2025 07:46: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 1uqRuC-00035O-S0; Mon, 25 Aug 2025 07:46:16 +0000
Received: by outflank-mailman (input) for mailman id 1092699;
 Mon, 25 Aug 2025 07:46:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vK8y=3F=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1uqRuB-00035G-5Z
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 07:46:15 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 928e88c1-8187-11f0-b898-0df219b8e170;
 Mon, 25 Aug 2025 09:46:12 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-afcb7322da8so648546966b.0
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 00:46:12 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afe90c8f85fsm28504766b.8.2025.08.25.00.46.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 00: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>
X-Inumbo-ID: 928e88c1-8187-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756107972; x=1756712772; darn=lists.xenproject.org;
        h=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=9E3Wlnt8UFbi8Y7mSUE3lliz3s2YX7D8DAtZ6KL+wDo=;
        b=AlFM29neTrXMBUJ2AJ2UxpFeTGxmEjMYkalr56C9KejJaKBFnDXm8LHlgmj5sdEsMZ
         B420d9u2W/qVclufhtzhVDRECAmEvv2DkJN4l6P3QwQj2N5NA85fx34BXZNsHyLS23QD
         4miwU6VvsiqdjV6DokuUilIqdwBZJS7evHkfW/glZq80O7CADfUeqa7SxKaS+HJkda+N
         TEWs2TFJ2GlKbZp9MHdSE/ETjdtmBeNJQUOENnUXSGmRd9VZP9+E0JuqSlMVzqpLYp7J
         HQAGUkrx1FjrZkYbvqR+Xd340pd2uxESfeT24G/g1QS9OXj7Obt4OGZJfqEpANgzYtf0
         dZuA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756107972; x=1756712772;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=9E3Wlnt8UFbi8Y7mSUE3lliz3s2YX7D8DAtZ6KL+wDo=;
        b=wWHEHRknRPQp3gJAdbce7xhTenMai7wZmHPByT7/nJpRfs+pr/3aZ5UqeCbkJflQCD
         qn4VtxM0X39GQjJ59qwNx5giN7laZ9DtCFWLKJFGfrW/VlFJ8llHGeVF3LuHQysuTgGU
         WdyrUvQmZPQvFhAZxZMyOTPsc06PHMUNczxyREsFlkupwdhG9djHrYDfW5h/ZZYNCNCB
         z1IYccoKgRzvpBBk7aGBP7mXNoj3igIeDDNiZeI1CvE6kNvsCuEwKOxe7IvarIQdBI2p
         RxK3UAJoXk0LEMkpLy+xU0g4+b//UuUKVZNLFyKi5JWWycZLj6Fv3VBhh7SrByoWjFEk
         R9Qg==
X-Forwarded-Encrypted: i=1; AJvYcCXxsSz4vo54a4ndC36+Ehv7bQ/QtubY5T6Tdhtou2Q9zq8sOSJXBXxjYu7YroF6CNQs7HNiwoNZcHI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxUR+OR+g5zFBulzpLpCgMfQGuqq3c+29TwHBK+DLp629S2yTr6
	L9mIub76O0eBxJR0SBYBL/uAlSJi16xK93Z7SPfVi7DM8q/B/1iVkQ5oBLsmyA==
X-Gm-Gg: ASbGnct3dhIDnP0LXNLXNPgtbFDdS8UmRHClWIimxPds8F8kO786T463PWJg8EFztte
	yH2db8a72VydZly1watusOfqBT5LGLdaaFk3fRhoODZJuqAJEWBV7L8+sWvzLaeQiwHguuDTH1n
	w2zFAHHyhpMMlu/AfInATBzrmb/pZr1Sss70QxJn8D8AQz3+FVbt4MYavqcCI3O7lMKfbt6W1ND
	ybJLO0QkpzBkjFgnauWwd4f1csgzPzoEoSejoffG/MMUck96VlhjhBt+Oe1gtXO0JZY9kyHoT5j
	0+s1150hRDVeyv+XOjX3GV3vCjLwq9rk+6LW/AziWVkx05KHzchYDVrJu+oieMONbhWl50dulbo
	w3tAe8EquI5QddoMiIv/tQhDZt5Jxr8zyPsHIVVeXIHjXIgSUt58UpYJ4GjEPJOnzC183piiiVX
	ElL57Ybg==
X-Google-Smtp-Source: AGHT+IFyLyEF88oxkc77LYD86jtSuP0XlbL2MGzZ2M9KM/AJfq2NZYW4qp3va1QFO+zCm6VfAYPj7Q==
X-Received: by 2002:a17:907:7f9e:b0:ae3:8c9b:bd61 with SMTP id a640c23a62f3a-afe28ffcd7dmr992040366b.12.1756107971892;
        Mon, 25 Aug 2025 00:46:11 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------UB3wZH0rfXp3zSfM0QrrAFCK"
Message-ID: <7446638b-b7a7-406f-8ebe-3aa8bf94bee9@gmail.com>
Date: Mon, 25 Aug 2025 09:46:10 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 4/4] CHANGELOG.md: add new SMBIOS tables (7, 8, 9, 26,
 27, 28)
To: =?UTF-8?Q?Petr_Bene=C5=A1?= <w1benny@gmail.com>,
 xen-devel@lists.xenproject.org
Cc: Community Manager <community.manager@xenproject.org>
References: <cover.1755987697.git.w1benny@gmail.com>
 <3c9c7c48c9d8633b4c36bb0bb91fab88c03ae279.1755987697.git.w1benny@gmail.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <3c9c7c48c9d8633b4c36bb0bb91fab88c03ae279.1755987697.git.w1benny@gmail.com>

This is a multi-part message in MIME format.
--------------UB3wZH0rfXp3zSfM0QrrAFCK
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 8/24/25 12:26 AM, Petr BeneÅ¡ wrote:
> From: Petr BeneÅ¡<w1benny@gmail.com>
>
> Signed-off-by: Petr BeneÅ¡<w1benny@gmail.com>

Acked-by: Oleksii Kurochko<oleksii.kurochko@gmail.com>

Thanks.

~ Oleksii

> ---
>   CHANGELOG.md | 1 +
>   1 file changed, 1 insertion(+)
>
> diff --git a/CHANGELOG.md b/CHANGELOG.md
> index 271ac73a0a..2fd65b90a9 100644
> --- a/CHANGELOG.md
> +++ b/CHANGELOG.md
> @@ -32,6 +32,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>        capability usage is not yet supported on PVH dom0).
>      - Smoke tests for the FreeBSD Xen builds in Cirrus CI.
>      - PVH xenstore-stubdom now supports Live Update.
> +   - Support for new SMBIOS tables: 7, 8, 9, 26, 27, 28.
>   
>    - On Arm:
>       - Ability to enable stack protector
--------------UB3wZH0rfXp3zSfM0QrrAFCK
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/24/25 12:26 AM, Petr BeneÅ¡ wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:3c9c7c48c9d8633b4c36bb0bb91fab88c03ae279.1755987697.git.w1benny@gmail.com">
      <pre wrap="" class="moz-quote-pre">From: Petr BeneÅ¡ <a class="moz-txt-link-rfc2396E" href="mailto:w1benny@gmail.com">&lt;w1benny@gmail.com&gt;</a>

Signed-off-by: Petr BeneÅ¡ <a class="moz-txt-link-rfc2396E" href="mailto:w1benny@gmail.com">&lt;w1benny@gmail.com&gt;</a></pre>
    </blockquote>
    <pre>Acked-by: Oleksii Kurochko <a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>

Thanks.

~ Oleksii
</pre>
    <blockquote type="cite"
cite="mid:3c9c7c48c9d8633b4c36bb0bb91fab88c03ae279.1755987697.git.w1benny@gmail.com">
      <pre wrap="" class="moz-quote-pre">
---
 CHANGELOG.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 271ac73a0a..2fd65b90a9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -32,6 +32,7 @@ The format is based on [Keep a Changelog](<a class="moz-txt-link-freetext" href="https://keepachangelog.com/en/1.0.0/">https://keepachangelog.com/en/1.0.0/</a>)
      capability usage is not yet supported on PVH dom0).
    - Smoke tests for the FreeBSD Xen builds in Cirrus CI.
    - PVH xenstore-stubdom now supports Live Update.
+   - Support for new SMBIOS tables: 7, 8, 9, 26, 27, 28.
 
  - On Arm:
     - Ability to enable stack protector
</pre>
    </blockquote>
  </body>
</html>

--------------UB3wZH0rfXp3zSfM0QrrAFCK--


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 08:07:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 08:07:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1092725.1448367 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqSEb-0006el-PP; Mon, 25 Aug 2025 08:07:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1092725.1448367; Mon, 25 Aug 2025 08:07:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqSEb-0006ee-LS; Mon, 25 Aug 2025 08:07:21 +0000
Received: by outflank-mailman (input) for mailman id 1092725;
 Mon, 25 Aug 2025 08:07:20 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=J9Dq=3F=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqSEa-0006cE-MV
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 08:07:20 +0000
Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com
 [2a00:1450:4864:20::536])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 84b6f708-818a-11f0-a32c-13f23c93f187;
 Mon, 25 Aug 2025 10:07:18 +0200 (CEST)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-61c51e5e826so1885720a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 01:07: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
 a640c23a62f3a-afe4937a15asm509790666b.115.2025.08.25.01.07.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 01:07: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>
X-Inumbo-ID: 84b6f708-818a-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756109237; x=1756714037; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=afnoc3bcK1Q1LYDCS8rReiGGMtksBdmp+lCB900+LBc=;
        b=ZHGOiVZZshcL9uExTAXhmboCNWSTDRmm5wuucn+WSNDrVMjzfwjLdzoYi0l3RACt9L
         yCoECE+BdrjHU5U0p+DSgtmdfFn7lKs4m+tltkMXyXEOcC404gTCN7TpBe9stpXPsyUk
         3AlzU8N7aLXYTKUUs5aWp3MOdaxB1M7JBkzH9dBtSLmjlj66mAd94fblfbbY9gJ+Vk12
         2e9Itl2dEY0pt6UZrI7CcUNp4Uyb+PVTAu3Tfv17mdoTSmQhn9fheAkw2cAzwRCwcP16
         hZ09wgt+QBPo6eznl14C0LYfUMDWiwiSNHS/jhfIzmdXhaSSbAVEh3N2SRGctCfAFOZ6
         WE9A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756109237; x=1756714037;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=afnoc3bcK1Q1LYDCS8rReiGGMtksBdmp+lCB900+LBc=;
        b=vbkZsM34aiCjQEtS13KeTWloSSu9QQ0v4eegTuni2NaNgjKUdJFCfiYst7NWFHupCL
         XnTQDa96Vbn2Sao2CTxsqf6xtrGswtZKGLSJDae8KS0Sg+Y5AwqmPo425bgO4Lemax+U
         lRYSdrr95odr9Z4mr/N+/mkK1yTrI0CnZshs+WRyow8Ab6H3pV86bLuhQoOq6GW3Qut+
         QpMy3C/DFeKo9Kdk85pCsousqXviUTtHrZN1k+Lire5qEBwydFbfwLyWZ9MuUeqJ3P+h
         HKITFKdIQ3Kazor7x6CFugRkOTtMyBQm47J4T9l6TTAgl98FhGjV2ORIhxc6Zu/zGIso
         HYfQ==
X-Forwarded-Encrypted: i=1; AJvYcCWDTC6jtvHcsfHXmrTtquqEvuvAv7XoYmU0P82xJ6BafJfuMOMEuGq/KYiIIaW+wSlUQS7y1XXBokc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxRktZfUfYinfY0eiqo/LmzV9CVlzrTwPDlG8x+UxKDvmHoviQ1
	bCvo+vDqBoEl4tESRuKrEPbb8wS5XG6scmGQY69or7fFP9cTEDnekI71BCs5Bqdrtg==
X-Gm-Gg: ASbGnctgSiLNFwcdP+PE9TtsXcN1BR3WgKR1oVzT2He0ao+vI/y90nEdzwDlnLmfMeO
	eHAM7Ht7W33B1fNY4wJtH69v0HAkNAnlssb1U+eMHgn9oAXf4GfQ+XVds1vFNPHS8hvw3PN7aiD
	AZGJb5/rhYYeTTWpEVT+3x65icJe2XEZXqV6O9yM58frH+mRYmGEJveGCbQw4/1WFbgRBxvPZ8q
	h7OTh6bgAsLOBcVYoy9wEBoZjgRLYIRmPZ7MwFAvuREoEE1S1/ciXi6jKTol7ei6sqshE7uKK78
	Q6vfyvDBec/LlgGR/b0Ydfj2J4N5zIjpJU7yxMMU6jry/NivQ07aJdCBonZjveMKLB+6hDfHrpM
	Z4KX7xZHWX9ve973GtG9hMDMTZaraKMrfBkNRenjhaQAEqJh7PJW0+txHNeT7vzumwUVwQyBHMr
	gqvVBKJqs=
X-Google-Smtp-Source: AGHT+IGM/tNgAQ4w6YeNT8fZuK3jMi/fNN0GWzvtOKl+OkRWLq6KR5StpLeGVL6otX7QLNJ3T73BjA==
X-Received: by 2002:a17:907:3cc3:b0:af9:7f4f:775e with SMTP id a640c23a62f3a-afe295ca548mr1013799766b.51.1756109237424;
        Mon, 25 Aug 2025 01:07:17 -0700 (PDT)
Message-ID: <5b85b5da-dfa3-465a-9708-62fc55fe48bb@suse.com>
Date: Mon, 25 Aug 2025 10:07:18 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Consider changing CONFIG_ACPI default on ARM?
To: Elliott Mitchell <ehem+xen@m5p.com>
Cc: Demi Marie Obenour <demiobenour@gmail.com>,
 xen-users@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>,
 Paul Leiber <paul@onlineschubla.de>
References: <CAO_48GG1Tg0d3ATnNAYNr0cg7Ty_zsnzT29=dpkk99DxyTWcmg@mail.gmail.com>
 <fceb5df8-d628-479d-acb3-d1d26409fbac@onlineschubla.de>
 <aJLae1Nl0pyOZgyh@mattapan.m5p.com>
 <1b96f2f3-55a2-4b33-84b1-a7c18d38d10c@suse.com>
 <6e9b5265-7a3b-4fd5-b14e-0e60a8b49833@gmail.com>
 <a3092ae1-d836-4403-8fb5-30593fcd2fb8@suse.com>
 <aKjOaT-P74Yh4-bi@mattapan.m5p.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: <aKjOaT-P74Yh4-bi@mattapan.m5p.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.08.2025 22:09, Elliott Mitchell wrote:
> On Fri, Aug 15, 2025 at 10:14:42AM +0200, Jan Beulich wrote:
>> On 14.08.2025 23:27, Demi Marie Obenour wrote:
>>> On 8/14/25 02:55, Jan Beulich wrote:
>>>> On 06.08.2025 06:30, Elliott Mitchell wrote:
>>>>> On Tue, Jul 01, 2025 at 10:01:13PM +0200, Paul Leiber wrote:
>>>>>>
>>>>>> Unfortunately, I don't have a direct answer to the question (as is so often
>>>>>> the case, due to my limited knowledge and experience). However, I am
>>>>>> successfully running Xen on a RPi 4 (mostly, except for some VLAN related
>>>>>> networking issues).
>>>>>>
>>>>>> I used instructions in [1] to install vanilla Debian on the RPi, including
>>>>>> UEFI boot and grub. I then compiled Xen with expert options and ACPI
>>>>>> enabled.
>>>>>>
>>>>>> I don't know if there are better solutions. For example, I suffer from the
>>>>>> fact that I2C doesn't work when using UEFI boot on a RPi. Nowadays, Debian
>>>>>> provides their own vanilla Debian images for RPi and with working I2C, but
>>>>>> these images are using a different boot method that I didn't know how to use
>>>>>> with Xen.  So far, the procedure described above seems to be the easiest
>>>>>> solution for me.
>>>>>
>>>>>
>>>>>> [1] https://forums.raspberrypi.com/viewtopic.php?t=282839
>>>>>>
>>>>>> Am 30.06.2025 um 12:35 schrieb Sumit Semwal:
>>>>>>>
>>>>>>> I've just begun to experiment with the Raspberry Pi 5, trying to run a
>>>>>>> simple xen + Dom0 setup, using uBoot, and the bookworm based Rpi
>>>>>>> distro.
>>>>>>>
>>>>>>> I've tried combinations of the following setup:
>>>>>>>
>>>>>>> 1. prebuilt Rpi5 kernel + dtbs, and have also tried to build them from
>>>>>>> source [1]
>>>>>>> 2. Xen from upstream [2] and xen-troops [3]
>>>>>>> 3. upstream uBoot from [4]
>>>>>>>
>>>>>>> but with the same result: [short log below; I can provide a fuller log
>>>>>>> if needed]
>>>>>>>
>>>>>>> (XEN) DT: ** translation for device /axi/msi-controller@1000130000 **
>>>>>>> (XEN) DT: bus is default (na=2, ns=2) on /axi
>>>>>>> (XEN) DT: translating address:<3> 000000ff<3> fffff000<3>
>>>>>>> (XEN) DT: parent bus is default (na=2, ns=1) on /
>>>>>>> (XEN) DT: walking ranges...
>>>>>>> (XEN) DT: default map, cp=0, s=1000000000, da=fffffff000
>>>>>>> (XEN) DT: default map, cp=1000000000, s=100000000, da=fffffff000
>>>>>>> (XEN) DT: default map, cp=1400000000, s=400000000, da=fffffff000
>>>>>>> (XEN) DT: default map, cp=1800000000, s=400000000, da=fffffff000
>>>>>>> (XEN) DT: default map, cp=1c00000000, s=400000000, da=fffffff000
>>>>>>> (XEN) DT: not found !
>>>>>>> (XEN) Unable to retrieve address 1 for /axi/msi-controller@1000130000
>>>>>>> (XEN) Device tree generation failed (-22).
>>>>>>> (XEN) debugtrace_dump() global buffer starting
>>>>>>> 1 cpupool_create(pool=0,sched=6)
>>>>>>> 2 Created cpupool 0 with scheduler SMP Credit Scheduler rev2 (credit2)
>>>>>>> 3 cpupool_add_domain(dom=0,pool=0) n_dom 1 rc 0
>>>>>>> (XEN) wrap: 0
>>>>>>> (XEN) debugtrace_dump() global buffer finished
>>>>>>> (XEN)
>>>>>>> (XEN) ****************************************
>>>>>>> (XEN) Panic on CPU 0:
>>>>>>> (XEN) Could not set up DOM0 guest OS (rc = -22)
>>>>>>> (XEN) ****************************************
>>>>>>>
>>>>>>>
>>>>>>> I'm certain I'm missing something, but before I delve deeper, I just
>>>>>>> wanted to ask if this is a known issue, and if so, are there any
>>>>>>> workarounds or solutions available for this?
>>>>>>>
>>>>>>> Any help about this is highly appreciated!
>>>>>>>
>>>>>>> Thanks and Best regards,
>>>>>>> Sumit.
>>>>>>>
>>>>>>> [1]:  https://github.com/raspberrypi/linux rpi-6.12.y branch
>>>>>>> [2]: git://xenbits.xen.org/xen.git - main branch
>>>>>>> [3] xen-troops https://github.com/xen-troops/xen - rpi5_dev branch
>>>>>>> [4]: https://github.com/u-boot/u-boot.git master branch
>>>>>
>>>>> Ultimately Debian is choosing to leave most defaults alone.  So far the
>>>>> Xen developers have left CONFIG_ACPI defaulting to off on ARM*.  The
>>>>> Debian project doesn't have paid people to support Raspberry PI hardware,
>>>>> despite being rather common.  As a result there aren't any official
>>>>> Raspberry PI images, but people associated with Tianocore have gotten
>>>>> generic images to boot on Raspberry PI hardware.
>>>>>
>>>>> I'm unsure of the likelihood of getting the Debian maintainers to
>>>>> override the default.  Yet due being by far the simplest way to install
>>>>> Debian and Xen on a very common ARM64 platform, perhaps the Xen
>>>>> developers should consider changing?
>>>>
>>>> In an open source project everyone is a developer. There is a
>>>> significant amount of work someone needs to pick up to change this
>>>> SUPPORT.md entry:
>>>>
>>>> ### Host ACPI (via Domain 0)
>>>>
>>>>     Status, x86 PV: Supported
>>>>     Status, ARM: Experimental
>>>>
>>>> Parties interested in changing the support status of any component are the
>>>> primary candidates to actually carry out the necessary work.
>>>
>>> What is that work?
>>
>> To determine what exactly needs doing is part of the exercise. I, for one, am
>> unaware of a concrete written down set of things which need doing.
> 
> Since you're not pointing to anything definite, could it be everything
> has been resolved?

Possible. Yet even then the state of things needs fully writing down, perhaps
in a commit message for the patch changing the support status. That's likely
still a time consuming job.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 08:39:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 08:39:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1092736.1448377 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqSjJ-0002NW-4V; Mon, 25 Aug 2025 08:39:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1092736.1448377; Mon, 25 Aug 2025 08:39: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 1uqSjJ-0002NP-1B; Mon, 25 Aug 2025 08:39:05 +0000
Received: by outflank-mailman (input) for mailman id 1092736;
 Mon, 25 Aug 2025 08:39:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=J9Dq=3F=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqSjH-0002NH-MW
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 08:39:03 +0000
Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com
 [2a00:1450:4864:20::52b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f3262732-818e-11f0-b898-0df219b8e170;
 Mon, 25 Aug 2025 10:39:01 +0200 (CEST)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-61c4f73cf84so2111666a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 01:39: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
 4fb4d7f45d1cf-61c316f4f45sm4588018a12.36.2025.08.25.01.38.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 01:39: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>
X-Inumbo-ID: f3262732-818e-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756111141; x=1756715941; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=fzvK6wrszmbnhyuS1qJdcrD1psISCGdg3f6T+CqbnXo=;
        b=KiOR2X+BqtCKIq0aNYIfYgx86C+5L1FiEG9Nxs9cfjWXAQLATWOUSCUf90Cjysmps6
         kg5ERw/HUPSDDy566U4rC7wcHS29lSKIDu7ufVfvl4nOyWjO1V4FNE9l0LR9yolBmr4B
         zrXpJwX5AvSEO5qk0xJTAbPZ8KurBkPCudTxkifwJNLMGt//Yg0fQ4wvm8YcilNCq1kN
         4mxp+wAgEHgzlK+4J/wNlbzYdo4/h2HNanN9wZtgifNsepPVuffRx2grEOkbnKBD5jdS
         tBh9aoQIYjMkeR88q08KsvN/iKGgEXHFFohoo/LdI1BLAcIjAHopyTEbwioKiqV5NK05
         DxEg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756111141; x=1756715941;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fzvK6wrszmbnhyuS1qJdcrD1psISCGdg3f6T+CqbnXo=;
        b=lm9GsnnGrF/WHncw/Jx9Zda/QwoDbFJANaAs0z7IlDPzJKJ3kvTFjzjD1I0iGpLg6l
         luJds57PWPW/UTNNICOoa92HsC8zG2LdJkk2W7SmK4uxtndPQlZZTM7LEzBFo/9mrXhj
         e4ITD6nW3p50DNda9maGM6ZsTGn8ZOVr9mLtmvw1nQaGTrOqEPiOWR84u410W0OCI+ww
         N2f7DViY1jdRpyvOhtP4bN0l2J8ujS/v40nuAFerJE1HGmYgPKQgEXfsdBPmFUFIY6dl
         NGEebNnEX5o8EGkyrTsXy23Wog1rDP3covF9ny1sINs+VSml1bY38iUQaqqAEFSU9Ehg
         /8GA==
X-Forwarded-Encrypted: i=1; AJvYcCUrSsORLpAijtEAHhA4ImhsuIpslj7wXZ/9+W4APBx5BEPgnv3oEEvDCtssljh1qCj7qwU5xyCmFzw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwnrP3oWIUH0lYTgeVv2jC87cyimOeoEO9ZobAyu0EUXSnStJrV
	5GBhTm/yDz2gRuCBG0yXO+hKMzqK+Y1gP04d328dDWqLVK/1X19m6lwlAqkm5vE/Rw==
X-Gm-Gg: ASbGncvw8WPEgKbI0imCjFF4Mt7R5F7vlhLpAyyrW22L7XUr/H5FTA+zM7w4jsUiaUx
	RbKAEyq+KNXQKAkWdXpdcommRAiHT0Ewy15cxcVtXvM9IPnO38LR1nMatYJtDklNTmRFiCgraH2
	xswDceIVbeIMmQsbpTurqUZNovBLWMMhEdDYugtsk6mrz4k4PoEuATLrkAHMhT6uOk7wevUzvoK
	THBsGeZPy/6TwaJHf8WUE3eauj8IXgXH13NUyAlHcrjRkKR+BViiLKSZOAOnv0/bBvWEZhUhgXH
	M1jK6f/DO8jagm+nkx1tcd74cstKJgWveYyGItAwUoEVC5D+HbMiCfiq+hy4xQZJgzohS/tKoMP
	rswkqkNNNEhAKf5T5PPwnC9drpZ8w+T1TpaquWgpHtFZRRt4v6VJC8qWxbV77tjQHpr3E1U13/Z
	csbWwQBLw=
X-Google-Smtp-Source: AGHT+IF7ehPGMSsxNTAopIvjzRsU61KMBHt3DE66ExyFIWSf4kbx03z2UI7aOFp4jEvpk2+Bt3cCSQ==
X-Received: by 2002:a05:6402:21c6:b0:61a:8966:ced6 with SMTP id 4fb4d7f45d1cf-61c1b717eb8mr10202195a12.35.1756111140693;
        Mon, 25 Aug 2025 01:39:00 -0700 (PDT)
Message-ID: <74c1fea2-72c7-4e9f-a7ca-13a9dae32002@suse.com>
Date: Mon, 25 Aug 2025 10:39:01 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] misra: consider conversion from UL or (void*) to function
 pointer as safe
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>
References: <9e5e4ff2c7ba0a90a6ac403e2de9318e18949274.1755628705.git.dmytro_prokopchuk1@epam.com>
 <90fb95a3-4b32-4785-a77c-373e5b9da6ed@suse.com>
 <e1e2abdf0ef8708097aa78440eeb7147@bugseng.com>
 <6b912698-b871-4819-ac30-14325d0be146@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: <6b912698-b871-4819-ac30-14325d0be146@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 22.08.2025 18:34, Dmytro Prokopchuk1 wrote:
> On 8/21/25 11:25, Nicola Vetrini wrote:
>> On 2025-08-21 10:01, Jan Beulich wrote:
>>> On 19.08.2025 20:55, Dmytro Prokopchuk1 wrote:
>>>> Rule 11.1 states as following: "Conversions shall not be performed
>>>> between a pointer to a function and any other type."
>>>>
>>>> The conversion from unsigned long or (void *) to a function pointer
>>>> is safe in Xen because the architectures it supports (e.g., x86 and
>>>> ARM) guarantee compatible representations between these types.
>>>
>>> I think we need to be as precise as possible here. The architectures
>>> guarantee nothing, they only offer necessary fundamentals. In the
>>> Windows x86 ABI, for example, you can't convert pointers to/from longs
>>> without losing data. What we build upon is what respective ABIs say,
>>> possibly in combination of implementation specifics left to compilers.
>>>
>>
>> +1, a mention of the compilers and targets this deviation relies upon is 
>> needed.
> 
> Maybe with this wording:
> 
> This deviation is based on the guarantees provided by the specific ABIs
> (e.g., ARM AAPCS) and compilers (e.g., GCC) supported in Xen. These ABIs
> guarantee compatible representations for 'void *', 'unsigned long' and
> function pointers for the supported target platforms. This behavior is
> architecture-specific and may not be portable outside of supported
> environments.

Reads okay to me; for Arm64 I can only assume the psABI indeed makes this
guarantee.

>>>> --- a/docs/misra/deviations.rst
>>>> +++ b/docs/misra/deviations.rst
>>>> @@ -370,6 +370,16 @@ Deviations related to MISRA C:2012 Rules:
>>>> Â Â Â Â Â Â Â  to store it.
>>>> Â Â Â Â Â  - Tagged as `safe` for ECLAIR.
>>>>
>>>> +Â Â  * - R11.1
>>>> +Â Â Â Â  - The conversion from unsigned long or (void \*) to a function 
>>>> pointer does
>>>> +Â Â Â Â Â Â  not lose any information or violate type safety assumptions 
>>>> if unsigned
>>>> +Â Â Â Â Â Â  long or (void \*) type is guaranteed to be the same bit size 
>>>> as a
>>>> +Â Â Â Â Â Â  function pointer. This ensures that the function pointer can 
>>>> be fully
>>>> +Â Â Â Â Â Â  represented without truncation or corruption. The macro 
>>>> BUILD_BUG_ON is
>>>> +Â Â Â Â Â Â  integrated into xen/common/version.c to confirm conversion 
>>>> compatibility
>>>> +Â Â Â Â Â Â  across all target platforms.
>>>> +Â Â Â Â  - Tagged as `safe` for ECLAIR.
>>>
>>> Why the escaping of * here, when ...
>>>
>>>> --- a/docs/misra/rules.rst
>>>> +++ b/docs/misra/rules.rst
>>>> @@ -431,7 +431,13 @@ maintainers if you want to suggest a change.
>>>> Â Â Â Â Â  - All conversions to integer types are permitted if the 
>>>> destination
>>>> Â Â Â Â Â Â Â  type has enough bits to hold the entire value. Conversions to 
>>>> bool
>>>> Â Â Â Â Â Â Â  and void* are permitted. Conversions from 'void noreturn (*) 
>>>> (...)'
>>>> -Â Â Â Â Â Â  to 'void (*)(...)' are permitted.
>>>> +Â Â Â Â Â Â  to 'void (*)(...)' are permitted. Conversions from unsigned 
>>>> long or
>>>> +Â Â Â Â Â Â  (void \*) to a function pointer are permitted if the source 
>>>> type has
>>>> +Â Â Â Â Â Â  enough bits to restore function pointer without truncation or 
>>>> corruption.
>>>> +Â Â Â Â Â Â  Example::
>>>> +
>>>> +Â Â Â Â Â Â Â Â Â Â  unsigned long func_addr = (unsigned long)&some_function;
>>>> +Â Â Â Â Â Â Â Â Â Â  void (*restored_func)(void) = (void (*)(void))func_addr;
>>>
>>> ... context here suggests they work fine un-escaped, and you even add 
>>> some un-
>>> escaped instances as well. Perhaps I'm simply unaware of some 
>>> peculiarity?
>>>
>>
>> This is a literal rst block, while the other is not (* acts as a bullet 
>> point in rst iirc)
> 
> This is how "sphinx-build" tool interprets this.
> 1. * inside single quotes '' -> looks normal, e.g. â€˜void (*)(â€¦)â€™
> 2. * without quotes -> warning
> deviations.rst:369: WARNING: Inline emphasis start-string without 
> end-string. [docutils]
> 3. \* -> looks normal, e.g. (void *)
> 
> Because that we need such format: \*

Yet under "Example::" there's no quotation and no escaping. The one
"(void \*)" earlier in the text I'd suggest to replace by a quoted
form anyway, matching the rest of the text.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 09:06:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 09:06:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1092756.1448388 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqT9Q-0006VR-8x; Mon, 25 Aug 2025 09:06:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1092756.1448388; Mon, 25 Aug 2025 09:06: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 1uqT9Q-0006VK-4c; Mon, 25 Aug 2025 09:06:04 +0000
Received: by outflank-mailman (input) for mailman id 1092756;
 Mon, 25 Aug 2025 09:06:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/bS3=3F=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1uqT9O-0006VE-RK
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 09:06:02 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b5c579d1-8192-11f0-b898-0df219b8e170;
 Mon, 25 Aug 2025 11:05:56 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by GV1PR03MB10938.eurprd03.prod.outlook.com (2603:10a6:150:207::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Mon, 25 Aug
 2025 09:05:49 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9052.019; Mon, 25 Aug 2025
 09:05:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b5c579d1-8192-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=vm2klFRuAyEUMY1K8x+d21jqEF9cUyjYjpd95eiD3Sef/JG7TioliS2VT8XA1Q6DehBn4oU+z/9dCYpN2HN9Y1/iLbP3ceO0cZH52RaQMNu8TO+OfcTXZvdbXLDeUbwqbXA61Ug/HEw2zV2mNR/p639+ZpBHqcsF/Atgd6NW9S2NRhIrZHSP/BUFNDU702N2HnUipWdc3ZfmLHfW9yoo1vRxZJ01ziRtxBoYyqOYwYG0aTZjJaVovATev6JyLLDI1vTceFnmZKVjiRbtUgViq852BpJgjd0+WKnDVMXul23ZqP1PvAGfRj2cPGmBV5quypGQ6sn6PdGDgxKDqN9iPA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=9p5vkLzBi6WoxV7ONWFQXqNZkOMCXQPRPXNJETtU7UQ=;
 b=zCe3m/sJGd9bFQeJRcwQfROZTknceQ5NvOQ/5O37DVp/y5er87UhDQBnFzMlIKteVbC7q02J7vQoh7QIi1prQIFG3z2cjwcWfn3SLLS/p4oKdCJmA6ChL/QeqiASNzye9sRduhU+a16/JNtM2ig7XJ6PibrR4D5L0PA4tTxZK0m1Rpllw8q1qlexviSM/KmsgCWIM432rAY5y76l1EbRBT7CTLCUOR/ABCQcWQjjpCFO4r7q7/ykPItP6ZAA3+94H1k6v7y80mI+XVcgfrFjt4QTjccLaZPHcuz+89ovCDRK533i/Xv0jeuF7e+1LGVrl7eWEU0DEQEcen3U/JzDKQ==
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=9p5vkLzBi6WoxV7ONWFQXqNZkOMCXQPRPXNJETtU7UQ=;
 b=EPG2BJWFzF8h9Ey4Uzz+fhRo19CEBGfQKmGDqezMQmasH9mh6vfphca7/diC8PAPZbljpkWWZILnolJSAOP8G05ZgEDiGat6gzYFLDdNOO8q2Jo+hhF/nKfppKgi9zF7We3ON7bt61j1jTGnanHCWSmBl1+lYihcad9upaeibHUrVXQ7Ftt5zbQkmBw6ge5QRCbElgByyNrRVcX6tiePQ5rD49Lw7P+uoUSeXuLfuva/bck1xTPvUweOryDWgvBYEyHyCq13tTym7Z7ZblgrvhybjLDw+/EG5in3e9eoZXekT+3WmLAwrtjpABbCPPqXvfAandcKf+RETPPgHPVCCg==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, Nicola Vetrini
	<nicola.vetrini@bugseng.com>, Doug Goldstein <cardoe@cardoe.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>
Subject: [PATCH] misra: add deviation of Rule 17.7
Thread-Topic: [PATCH] misra: add deviation of Rule 17.7
Thread-Index: AQHcFZ9zsboRH18vd0iLUvum4pfwBQ==
Date: Mon, 25 Aug 2025 09:05:48 +0000
Message-ID:
 <ad15582787e675fadf92502f85041c3232749a99.1756112701.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: GV2PR03MB9572:EE_|GV1PR03MB10938:EE_
x-ms-office365-filtering-correlation-id: 9cd7e891-146a-48f5-b9e5-08dde3b695b5
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|7416014|376014|366016|1800799024|42112799006|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?fQMgEk5FqDYivbOlCAwqU09II9y+fVgKmzBcH2YoCLk5LpkEK5BsQvzRz0?=
 =?iso-8859-1?Q?jcuYV6HYPhgfx8eVUkR0Bz6caUIi21KY5R6bpEqeAjLBDx3+H1MzZ7pyXP?=
 =?iso-8859-1?Q?XePIv3T3Qtrz116XWZgNRKc+Za3uQri7YD0C1JLcuFjepuEcTTV2TK6O8q?=
 =?iso-8859-1?Q?cuNWlZgcG/SR6y8XXLbX2t9/WWZVYIjJGg4C/6/A7ediJvRs280QgDnyTF?=
 =?iso-8859-1?Q?xMv+bt9BF1ty5A1nNqyUTwqJYcBDLpXX6kM4tacCNNElq/3aNG/bo8xDKN?=
 =?iso-8859-1?Q?ByNktdrLREeLauQTFKmuU2TjoW+accFh6Z4DBQohGvQnoZklueJmZGNPue?=
 =?iso-8859-1?Q?kw7suOQE/4gJEgFVfeswq61RjQdFLki1dNPZor4+IcWi9++er+bucpctWk?=
 =?iso-8859-1?Q?WflShrScHra8dDHDJ2eGTjRWpldQ29fnZOhKxj+v4WmdU3S6uBvHnImIkT?=
 =?iso-8859-1?Q?ZCjq6N8IXkmuKi7TB29INgd7wwR9FIs/jez5mM+VtVt0RYpSXJEu2r67XI?=
 =?iso-8859-1?Q?hvii+RgNUqlRi0IPt9yU/IKR+0S8LeQc6tmtkQO603ARxwpL0bZjI4um8K?=
 =?iso-8859-1?Q?rJ1gHBufQVuWmn2Pn6YZLNF5RmA8UHVGHmFL8MSXdzX8z3pT7KqqvaLdt0?=
 =?iso-8859-1?Q?zC3DzfJY5VJGxYlydOkzEoY17yUIdKKFgXyDSCpVJWidmnTG2EYyzTl46c?=
 =?iso-8859-1?Q?iXv4qHwzPrgZNy02UF/z5ST8S3x7CGmhrUGRimoI4V5IZBvKtUWi+rCV4Q?=
 =?iso-8859-1?Q?WX1aqo8vtAsVZqbZOcWZkHOrxpaWU56mSwgssBRhFB9szkxOVniYyDFE5u?=
 =?iso-8859-1?Q?C0ZXPgM6AnaQTb4ASfhhn3xlay0ivFqgqoprFB2LcBd7qlgMBmAmdv7p/T?=
 =?iso-8859-1?Q?HIWUPcJjGKzowkjZgOTO0nHXzbNfQTg9cTZ2WZpNSXs7nBBwbBiwt+j60O?=
 =?iso-8859-1?Q?X91d71RZnpG4390ZRWKeiKGf+y9EmoI74HQapvKpaV8vcaalB6QWfaxQFf?=
 =?iso-8859-1?Q?GoZArfwA1xa5hAmxQG06AzSF5cr/A3WgWO2OxbUWaOw6elx3s1SCeizzRP?=
 =?iso-8859-1?Q?vZSFXAezhEYv2tj0jN8z6m63+oPRcvu+V5vk8iU7ybDg+xDADViUizeXcW?=
 =?iso-8859-1?Q?YGMNxeKdkIvh9txmoMoqR3YxuQR0TLCMez+yc3Dbzh2Kmf0L93qg4lyYGT?=
 =?iso-8859-1?Q?LGmEk9OfIclRYbBoxecvAqi5uLOGt1UbPiMNnoXiMTH4tfOg7MsLPMp1DC?=
 =?iso-8859-1?Q?uu4w94bHUUwToUhXefMFsRjYtpA30zX+Nwn87oSZCgkvz6NLUv1w+RoXIm?=
 =?iso-8859-1?Q?ZSI71FmFajpEQseVxuYWUrrBTH3HAPZw/6BvmQ+kPYmuu2IEkfpxLmxG0y?=
 =?iso-8859-1?Q?rBIh/jtNiVTb76dWY7cLUCHnGKpb+OkroDqgn9oRTmOR5Zox1milKETxik?=
 =?iso-8859-1?Q?JVsb19CQjU65nxrcvGBt/NUegb7l0p5C/yfdb715R+GU6wGyz0msdNY4IZ?=
 =?iso-8859-1?Q?n9bS0BU7oMQDXxSuc0frjyRii7L/uUbMPxk1IxiWLg9A=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024)(42112799006)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?+7zqaeXqj1hwRqme+Zs/qHGeYVYpLqrDGTZ3y0ZxcPYXDqKFeHWQfX2eOF?=
 =?iso-8859-1?Q?nq2TwSkUvKncjXgwKNI539U2U+RjhVDHT3ZeLj6j9yQ8QnBfq1UgpdUHiV?=
 =?iso-8859-1?Q?KpnXrCrlj8DYZY/w9L6a5vEyrsJ3oCici8PRmxE4vLkZMk94VNjN9gqMcb?=
 =?iso-8859-1?Q?9aV209aMPAAPzZgiXn3rLgxv2Ugzm+1ruowv8PLpcELBfZLqQm8b6GfrcI?=
 =?iso-8859-1?Q?jHMHurwxS4sYf38X24RMi/pAkGjl1ImRIwm30ZEyGL6FxcgqIPsxvTfO/X?=
 =?iso-8859-1?Q?EVxK+YyUh7KTuzBd7oHB/w2qaJy2iTJTQdsD0tiZqmxUb7ToyMdRVEhmDK?=
 =?iso-8859-1?Q?00vFLUonSKDSz8iNarpcIMBsTHfV/YVqLb5ui/tCjF+ZpVhMrARtHVL67a?=
 =?iso-8859-1?Q?1yeTyhYMyyhH1ZStH0bEw1vm/njG+fJRlrNu/aqQwCAKbWF3dY7sNouI6A?=
 =?iso-8859-1?Q?N9fbbZ4Wrt2Tvl7IVjt/yn55QrG99H4j3ohD6atMkxVhibkeqsNLF7fO7o?=
 =?iso-8859-1?Q?m62PQvi+ocJZOw9ZyZuD4YsWCDaKRvdxuAgCVAc5DM13P7kSPYoPRz333K?=
 =?iso-8859-1?Q?NGdUgR59YeNrGQ+bcwFyjEwtoegcxvMUBFfENofWPENC4Ovgr+oUaY2Z2+?=
 =?iso-8859-1?Q?6+lrIj5KiFRlP50wt4IZIGYHi1+FPYsW6XOZxaegtVarNuk2lAN6mfCzBP?=
 =?iso-8859-1?Q?mZssxjxfxT6slweCxg0cqBeXUlBLOMpNMvBx4YgRqhcBtz9NQJOEMjbj7H?=
 =?iso-8859-1?Q?Z5o+85eZnejeBdSNHj8rGKYuJbgvCK37dhjMeij4TbCQli8G/ELD6KU3FR?=
 =?iso-8859-1?Q?WiElwFZbbbeXEXK45gDmRbckB1U4/cPHeHMNQejnYWC1gp04oTqQXZfUlI?=
 =?iso-8859-1?Q?wVz6xUcD85TnZO06LjepPp56pSnZcaiKiG0YEvyDGle+YcL1p6M8OKRiUK?=
 =?iso-8859-1?Q?r/aAT1WlfD9cSbi/xSwcOmZ81e7ZaS80Kw6KuaRmLRPP5daaD1tM8vl+nQ?=
 =?iso-8859-1?Q?iV73k5MTXt0+yJr6UuJD4FcacqX2yva9vxJL4Pw6c9SpSv2q+7DWRR+KGb?=
 =?iso-8859-1?Q?gbrQzHwudMEL1CP/2tl5EkEh0jTcdV9t/WhZrdRi23pKTBvBY8sMe+nlEC?=
 =?iso-8859-1?Q?CavrZkAq0nmsOizbENN5/EvrfEVpEltdo+zbjiRJjzACU9yW+XzKeAqpiU?=
 =?iso-8859-1?Q?e5KuKDK0dz6DtsmBxP8BWg0amWWcuZVEAdK7qWEy/i/NYG3aykjEGtqyb2?=
 =?iso-8859-1?Q?5eUUv00apWo+/IU0E+s3UPXyT/S1Vi+G/jCWsmJKizdxELHlFerfT0oMck?=
 =?iso-8859-1?Q?Ly7yjT8rCdLoXJL0B4uZTbIoEYGgpa5XZoYZPvYwx/gqw51BjQGzg6K2qY?=
 =?iso-8859-1?Q?tUeMowy6SEhYU2VQBaRQiZYwuP2czbP0MCp05WeNSzTFnGSlBbtGoOJzT1?=
 =?iso-8859-1?Q?mpPQ+Fkf0G/P16szvxi1Z+XyTHCpnjGrecrfJxT9TBFX6i/kJc38PMw2l0?=
 =?iso-8859-1?Q?miT+3zV7z3diTBCNSN1ayc8586B0qJEfm/wHFHpuvtKGwYvgEei21uosqi?=
 =?iso-8859-1?Q?gzfNyBq/F56UqpM0IYN7k0aKKExpzrICSF2K0q9U1NRg07M3faM0MpV1ed?=
 =?iso-8859-1?Q?k0FPseto7CMjMBAhiEPgqvNnBFac42Bxq4hyOcLHKg4qCCRNXFWOPBmw?=
 =?iso-8859-1?Q?=3D=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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9cd7e891-146a-48f5-b9e5-08dde3b695b5
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Aug 2025 09:05:49.1488
 (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: RnCQzV0J+Rt+hA6vcFLNO0y1IN+GLVkXOlLet6hGFv/dJKbEX+xjFWWC8+6gzTwEb0sLGKQXefnlBmBwhlUeb+afoOkM2jXHZ+JhFOET3PM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR03MB10938

MISRA C Rule 17.7 states: "The value returned by a function having
non-void return type shall be used."

Deviate functions like 'memcpy()', 'memset()', 'memmove()', 'snprintf()',
'strlcpy()', 'strlcat()', as they return a value purely for convenience,
their primary functionality (e.g., memory or string operations) remains
unaffected, and their return values are generally non-critical and seldom
relied upon. Update 'deviations.rst' file accordingly.

No functional changes.

Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
 automation/eclair_analysis/ECLAIR/deviations.ecl | 6 ++++++
 docs/misra/deviations.rst                        | 8 ++++++++
 2 files changed, 14 insertions(+)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/=
eclair_analysis/ECLAIR/deviations.ecl
index 7f3fd35a33..23f62ef646 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -575,6 +575,12 @@ safe."
 -config=3DMC3A2.R17.7,calls+=3D{safe, "any()", "decl(name(__builtin_memcpy=
||__builtin_memmove||__builtin_memset||cpumask_check))"}
 -doc_end
=20
+-doc_begin=3D"It is safe to deviate functions like 'memcpy()', 'memset()',=
 'memmove()', 'snprintf()', 'strlcpy()', 'strlcat()',
+as they return a value purely for convenience, their primary functionality=
 (e.g., memory manipulation or string operations)
+remains unaffected, and their return values are generally non-critical and=
 seldom relied upon."
+-config=3DMC3A2.R17.7,calls+=3D{safe, "any()", "decl(name(memcpy||memset||=
memmove||snprintf||strlcpy||strlcat))"}
+-doc_end
+
 #
 # Series 18.
 #
diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
index 2119066531..ec98366aa5 100644
--- a/docs/misra/deviations.rst
+++ b/docs/misra/deviations.rst
@@ -576,6 +576,14 @@ Deviations related to MISRA C:2012 Rules:
          - __builtin_memset()
          - cpumask_check()
=20
+   * - R17.7
+     - It is safe to deviate functions like 'memcpy()', 'memset()', 'memmo=
ve()',
+       'snprintf()', 'strlcpy()', 'strlcat()', as they return a value pure=
ly for
+       convenience, their primary functionality (e.g., memory manipulation=
 or
+       string operations) remains unaffected, and their return values are
+       generally non-critical and seldom relied upon.
+     - Tagged as `safe` for ECLAIR.
+
    * - R18.2
      - Subtractions between pointers where at least one of the operand is =
a
        pointer to a symbol defined by the linker are safe.
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 09:08:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 09:08:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1092768.1448397 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqTBq-00073r-JS; Mon, 25 Aug 2025 09:08:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1092768.1448397; Mon, 25 Aug 2025 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 1uqTBq-00073k-Gr; Mon, 25 Aug 2025 09:08:34 +0000
Received: by outflank-mailman (input) for mailman id 1092768;
 Mon, 25 Aug 2025 09:08:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=J9Dq=3F=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqTBp-00072Y-Gy
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 09:08:33 +0000
Received: from mail-ed1-x534.google.com (mail-ed1-x534.google.com
 [2a00:1450:4864:20::534])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1258fa35-8193-11f0-b898-0df219b8e170;
 Mon, 25 Aug 2025 11:08:31 +0200 (CEST)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-6188b793d21so6153710a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 02:08:31 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afe72c35ebdsm281326066b.7.2025.08.25.02.08.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 02:08:30 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1258fa35-8193-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756112911; x=1756717711; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=BhqFtmBmQ5e4s5KqzcPlJhm8KmMN4kbdRk9B9qSB23c=;
        b=PGDziMr/s20NEdsQgmZNRm63BUXPiKmOy9uUn2mjWd9qaEXAN/+tNe1wLCRn6HKZrh
         kZCdDgPiGrePvRUEXc1+TNVw0ZlFF9+2pD5ZhKAkA0RzlsXl2vHWSJHiehL/zlwymQ2f
         Qkm7/dR87rdILbZWE/c8JWQZKHl/yRyxYDAgVpycQ8YhceDbTnGuB+l+B1Nk8M+9zn64
         I3DyJPTn3vPpJzxuXAe0zzZZZOQ73lUWdWcJvv0reSC2gDUiZZdyFddeOg8pgG7KSvuK
         S40BCuqYAYnzW3/zpoivEHOWqboFF+LchEcUpvvTdEojshsDPsHvHwZIjmuORs4GRdO+
         l+pw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756112911; x=1756717711;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BhqFtmBmQ5e4s5KqzcPlJhm8KmMN4kbdRk9B9qSB23c=;
        b=n1QSBDcX83A8j/q3eTAf8O/H5L1ghhnFE9bHwxExotqgd6U9+ddWTlsRFhsUsWXL0n
         7dOJ3pC+oziGuZv/JxOlUTPCOIuZy6h06XOPHfjuLRcCj0EokXHs5BbZs/rrlacgSRAb
         64nxaGr2IEirAYyv7AtvdHWWdWBJ/XQF+Ul+jiWiXNiLV02Of3vnm/y6R8s2JSijKF17
         ywAM0Fi02M4I7X1za9i5KVRvfe6AXHQRPQbwOCrb0Fmlvn2zTP0+IE36iVwhSG/5GVpW
         brZ4USoYHntmLwOKE5wHAVPfCf7NDYVDenyZVspZwiESTRnqm+444764koIayJeFMZ1+
         HqyQ==
X-Gm-Message-State: AOJu0Yy0X31DJQ/ZivEQVfSkFR0wU5ouWjmdqWu9TbS6970QbAy5bIg8
	Oqq+GcqaOXzZ5HFL1F6W7r3ibbofWxX0bYE0b5TgiTajBH4Es+P+B381pNAZitJxXg==
X-Gm-Gg: ASbGncviWqU8gZj6ysUgba+8IcS4cJobSmu1ki6I5DIgUSBQkcOFclr1BrOtsvf8uB6
	3I2nO8M+/+H1I/UASBIwHbRF4FMJ4H9GgEPCvSluN/a99zlg7T8DLys9wFbSvnaXKSjRNkBjywP
	IolqykV/BR6Z+UklBrVnF7v81V9N+rqg67hxTcweLk/AaishXNIYLdmIrx9WjviAkVBiFK2xChd
	kNgpvdFacdNXn1KxydZvZLGIm3IuTcUA7/iltK/ZnFSfrhgyJiGVWnL++p2Pzy20i2/DOJrqRkU
	jHA72urhlNRF9Yk2qNT1Eqdyarm530tJhVfmYHE45cTEfcQ5f9SSrpPO/jgf+3FVmiO/0dxsY+G
	X/sCY8K1aVok1cvKI7dR5ifm4yCPdHTjKWif5TJr3WuU6WgL+SRNE39ELJHsheS1NK0Omnzo7Lh
	VkXHTm9jo=
X-Google-Smtp-Source: AGHT+IGsAuUgfq8H4BBu9ocOrlDCJeFQlZv8TYwuNRLX7dfIWI6wL1r+JxqtQu5g5dL734L3n1G7qQ==
X-Received: by 2002:a17:907:da5:b0:afe:87df:b94 with SMTP id a640c23a62f3a-afe87df18famr116143266b.6.1756112911058;
        Mon, 25 Aug 2025 02:08:31 -0700 (PDT)
Message-ID: <b40bb16e-d709-4f6c-8e64-b39adb4a4fe4@suse.com>
Date: Mon, 25 Aug 2025 11:08:32 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 15/22] x86/traps: Introduce opt_fred
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>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-16-andrew.cooper3@citrix.com>
 <0a6b6fce-2cc8-4933-8703-399e4a4fdad6@suse.com>
 <8adbd032-9da2-481d-8d98-30c9a605ec46@citrix.com>
 <5c608ebc-e9c2-47ea-a98f-246f7a3d4c30@suse.com>
 <56532672-d28e-4c3c-9b4b-e038c9a5e341@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: <56532672-d28e-4c3c-9b4b-e038c9a5e341@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 21.08.2025 23:52, Andrew Cooper wrote:
> On 15/08/2025 9:37 am, Jan Beulich wrote:
>> On 14.08.2025 21:16, Andrew Cooper wrote:
>>> On 14/08/2025 2:30 pm, Jan Beulich wrote:
>>>> On 08.08.2025 22:23, Andrew Cooper wrote:
>>>>> ... disabled by default.  There is a lot of work before FRED can be enabled by
>>>>> default.
>>>>>
>>>>> One part of FRED, the LKGS (Load Kernel GS) instruction, is enumerated
>>>>> separately but is mandatory as FRED disallows the SWAPGS instruction.
>>>>> Therefore, both CPUID bits must be checked.
>>>> See my (further) reply to patch 13 - I think FRED simply ought to depend on
>>>> LKGS.
>>>>
>>>>> @@ -20,6 +22,9 @@ unsigned int __ro_after_init ler_msr;
>>>>>  static bool __initdata opt_ler;
>>>>>  boolean_param("ler", opt_ler);
>>>>>  
>>>>> +int8_t __ro_after_init opt_fred = 0; /* -1 when supported. */
>>>> I'm a little puzzled by the comment? DYM "once default-enabled"?
>>> Well, I have this temporary patch
>>> https://gitlab.com/xen-project/hardware/xen-staging/-/commit/70ef6a1178a411a29b7b1745a1112e267ffb6245
>>> that will turn into a real patch when we enable FRED by default.
>>>
>>> As much as anything else, it was just a TODO.
>>>
>>>
>>>>  Then ...
>>>>
>>>>> @@ -305,6 +310,32 @@ void __init traps_init(void)
>>>>>      /* Replace early pagefault with real pagefault handler. */
>>>>>      _update_gate_addr_lower(&bsp_idt[X86_EXC_PF], entry_PF);
>>>>>  
>>>>> +    if ( !cpu_has_fred || !cpu_has_lkgs )
>>>>> +    {
>>>>> +        if ( opt_fred )
>>>> ... this won't work anymore once the initializer is changed.
>>> Hmm yes.Â  That wants to be an == 1 check.Â  Fixed.
>>>
>>>>> +            printk(XENLOG_WARNING "FRED not available, ignoring\n");
>>>>> +        opt_fred = false;
>>>> Better use 0 here?
>>>>
>>>>> +    }
>>>>> +
>>>>> +    if ( opt_fred == -1 )
>>>>> +        opt_fred = !pv_shim;
>>>> Imo it would be better to have the initializer be -1 right away, and comment
>>>> out the "!pv_shim" here, until we mean it to be default-enabled.
>>> It cannot be -1, or Xen will fail spectacularly on any FRED capable
>>> hardware.Â  Setting to -1 is the point at which FRED becomes security
>>> supported.
>> I guess I'm not following: If it was -1, and if the code here was
>>
>>     if ( opt_fred < 0 )
>>         opt_fred = 0 /* !pv_shim */;
>>
>> why would things "fail spectacularly" unless someone passed "fred" on
>> the command line?
> 
> Oh, that would work, but why bother?Â  It's simply a less readable form
> of mine, and if we're going to nitpick, it's commented out code.

Indeed, I was aware of Misra's dislike when writing the reply.

In any event - I'm okay with about any approach as long as the adjustment
to make (once FRED becomes supported) is both clear upfront and simple to
make (read: preferably a single line change). Readability is, as we know
from other recent instances, subjective. In the case here I think it
follows from my original comment that things weren't quite clear according
to my reading.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 09:12:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 09:12:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1092779.1448407 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqTFo-00009g-4m; Mon, 25 Aug 2025 09:12:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1092779.1448407; Mon, 25 Aug 2025 09:12:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqTFo-00009Y-0f; Mon, 25 Aug 2025 09:12:40 +0000
Received: by outflank-mailman (input) for mailman id 1092779;
 Mon, 25 Aug 2025 09:12:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=J9Dq=3F=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqTFm-00009M-70
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 09:12:38 +0000
Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com
 [2a00:1450:4864:20::62b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a3fa82d1-8193-11f0-b898-0df219b8e170;
 Mon, 25 Aug 2025 11:12:36 +0200 (CEST)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-afcb7a0442bso668749166b.2
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 02:12: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
 a640c23a62f3a-afe92b3dc53sm28701866b.3.2025.08.25.02.12.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 02:12: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>
X-Inumbo-ID: a3fa82d1-8193-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756113155; x=1756717955; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=re/N3WGkACOd7gptwqe2YM3wDerFrWUv6TdTVIy+Ae8=;
        b=a1vm4Z9HFD3TS1kkUXhKBwShBzfrr1NZM2COBrAnhbnKZDR2JNceahjL26hSKi4ZWg
         etQxZ5Qsm+fCePM5f6ThK4Ie/6L9r1LeHh7MVEio0QfDwxFwHhOhYaVPe2jKgH2SeRRY
         cq8qF3ISdjVpErRXk4W0chDGixdM1wtbdz7CAswKWDYMM12+0bBkz3JhUMbxbzuI+22l
         tXQO+9ZL4TlrUNAoNW3yLjhaKTajL7TX5tQlRHJ/+HUiduPKXGS9amcLeY3dLS8lr5iw
         Q7QPNGMEV+QPpU3pWieZQ0kc6Odo5tWt0RTEqzTldmEgZlWptQiHXR/HXZ7FSitgoCVq
         OCqQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756113155; x=1756717955;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=re/N3WGkACOd7gptwqe2YM3wDerFrWUv6TdTVIy+Ae8=;
        b=UnBhRywF9Od7Lv4SDgCPTfYWF9Fr6Y3D3T7weasWsRiX/HFWwKlDbGOG1mtu2O9EG6
         mWlHX8tTix0DKj2YzhfKKPXfo1obHRf4fLYOi8kvRhmgV/99zo7HXJEtqS+QtuCJ1Iit
         VGBAlmS+PBANtw0HvG/WS+nvE4i6FlfbzapdQsh4F4qfAhWjkU6zw3AIqeBTBPi6ebpf
         TaGKTW+HMarp4yzd6Si+7abvTvmxC1CSIxgXqxPdzspKgMKWyzcVY75AmI7m718gLYXY
         wFYroa9fMV3E6oEftBdew/aUGBXdbi1oA3ivV2pDQKOyESBXWdr10CWyhroFaewH/V3P
         M4Tw==
X-Forwarded-Encrypted: i=1; AJvYcCVy4bSHfui9HyBjpaNaGqXmgMel4MU4/ugrrEfxQe3tAgJYVBF3m3yY/m1Cxxf4Al6KqkRZsPmZoKY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz55QZi7BUPiHkUX3Ia+0Bb6hLUn3wZW14RqhGEC9IzsE3ZoCsU
	LcxBskG3dD01LCIdTSc+Zc0Gbckck2hYNjh1XmnfATdA86/IVXRlcGqRYRzKNrdeSw==
X-Gm-Gg: ASbGncvnGJkDrXE9gn5Y9AKUw+NzuTKBW+atNzME7cCHgXrn3kQCWDJhl344G3xXcHd
	Kqj8EYl6cFElAh/G5myl2GJkf6WMRv0B1unTsBqmBCtzrxUhFdq8qN2G0RAgtPRJBiZKGRVeEL/
	5TNGz8A01wPC+pn1Qqc5Nz2y626v5zj3KB+lkWbmF8t4SC9qxvjiMP9Mcrei2M3Wbg0R+osaZWD
	BNR+VVTkV78WJAMpIH8cQyC92uuXwUTHJKd69WvM95A4GOiexjJxOHcBsEYANL64yF6bPWnwWFK
	EvM5OedC40Yjuc1A5MXx+7TfpnpFbuH0vOQnEqjuFQP3yT3ckp+0xlx7Bwdc8dXIz26yDG8QBAy
	Ai42SRYmT7dI7rxbPpK+FaDQ73qWXhF/GKz8sI7w2N5MGoFSTBu9pt6lv4IeZ7F42x+nLKToXq9
	FhGnDQigFApHBakS/l/A==
X-Google-Smtp-Source: AGHT+IHb7GEVwuOfA100JgIjxFhtRBKB5Mp3yKztUgE75EISxENbLVtCRDjIvaUxM8c3d3+Gw1UU1w==
X-Received: by 2002:a17:907:1b1e:b0:af9:10c7:59b6 with SMTP id a640c23a62f3a-afe295d2e67mr1055376466b.32.1756113155496;
        Mon, 25 Aug 2025 02:12:35 -0700 (PDT)
Message-ID: <7dae9a1a-a112-4db4-b7fd-bb45b14ed662@suse.com>
Date: Mon, 25 Aug 2025 11:12:36 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 19/22] x86/boot: Use RSTORSSP to establish SSP
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-20-andrew.cooper3@citrix.com>
 <5ad64534-514c-412a-b2a2-23adaf835f60@suse.com>
 <757e3b87-bb4f-410a-84b7-cf3607bf3eb3@citrix.com>
 <1576d28d-bdd9-488e-a374-29695fca4ca5@suse.com>
 <536cce8a-46f2-4a90-837b-09ed8f1a9ef2@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: <536cce8a-46f2-4a90-837b-09ed8f1a9ef2@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 22.08.2025 00:09, Andrew Cooper wrote:
> On 15/08/2025 10:03 am, Jan Beulich wrote:
>> On 14.08.2025 22:09, Andrew Cooper wrote:
>>> On 14/08/2025 4:11 pm, Jan Beulich wrote:
>>>> On 08.08.2025 22:23, Andrew Cooper wrote:
>>>>> Under FRED, SETSSBSY is unavailable, and we want to be setting up FRED prior
>>>>> to setting up shadow stacks.  As we still need Supervisor Tokens in IDT mode,
>>>>> we need mode-specific logic to establish SSP.
>>>>>
>>>>> In FRED mode, write a Restore Token, RSTORSSP it, and discard the resulting
>>>>> Previous-SSP token.
>>>>>
>>>>> No change outside of FRED mode.
>>>>>
>>>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>>> Why is it that in patch 17 you could use identical code, but here you can't?
>>> This caught me out at first too.
>>>
>>> For S3, we're going from "no shadow stack" to "back to where we were on
>>> an active shadow stack".Â  All we need to do is get saved_ssp back into
>>> the SSP register.
>>>
>>> Here, we're going from "no shadow stack" to "on a good, empty, shadow
>>> stack".Â  For FRED we only need to load a value into SSP, but in IDT mode
>>> we must also arrange to create a busy Supervisor Token on the base of
>>> the stack.
>>>
>>> We could in principle conditionally write a busy supervisor token, then
>>> unconditionally RSTORSSP, but that's even more complicated to follow IMO.
>> Why would the write need to be conditional?
> 
> Because the tokens are different.Â  One has the value &addr, and one has
> &addr + 9.
> 
> The Supervisor Shadow Stack Token for IDT needs to survive for the
> lifetime of Xen, while the Restore Token for FRED is temporary and
> discarded by the logic added in this patch.
> 
>>  Can't we write what effectively
>> is already there? Or is it more a safety measure to avoid the write when
>> it's supposed to be unnecessary, to avoid papering over bugs?
> 
> I genuinely don't understand what you're trying to suggest here.

I think I misunderstood your earlier reply, so the questions probably
indeed didn't make a while lot of sense.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 09:19:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 09:19:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1092792.1448416 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqTM0-0000v5-SB; Mon, 25 Aug 2025 09:19:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1092792.1448416; Mon, 25 Aug 2025 09:19: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 1uqTM0-0000uy-PK; Mon, 25 Aug 2025 09:19:04 +0000
Received: by outflank-mailman (input) for mailman id 1092792;
 Mon, 25 Aug 2025 09:19:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=J9Dq=3F=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqTM0-0000us-9D
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 09:19:04 +0000
Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com
 [2a00:1450:4864:20::62b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8a0e2a97-8194-11f0-b898-0df219b8e170;
 Mon, 25 Aug 2025 11:19:02 +0200 (CEST)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-afcb7a16441so652428766b.2
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 02:19: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
 a640c23a62f3a-afe48fc3d82sm515801066b.44.2025.08.25.02.19.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 02:19: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>
X-Inumbo-ID: 8a0e2a97-8194-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756113541; x=1756718341; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=vxfoE22zXcqBAMwhFngozld/3ksQg0RekGkZfVaLeyY=;
        b=T6yrZED1l8LT3uaRys96lNlcBHN0tlshiDNMN1+/slCPLTiJIGeykRvpC4Lokd9gxj
         VG96ujQr9dpoAZQRZr3NxwGDonfYDAZwsZx+nTQ3L9QPuzPJ9l6ESXs4Xgmq4qeCkmWn
         S6G6f1spWLwEP8cSQcsyYBlWB5jnta3ymL1fWKa+4dySnX4N3vIrL1vL+jJpg+N5PIGi
         jhovMwA/RCopHGNBAur1l21sbUkg3KNksksklkNP4+JLfnLoTZ585DhqUqAHsstOATXt
         oYxJOl1d76gCqqc1Jt1QhbGZqpuT3loNjKF5/vbFSuH3Tn5AUlflXLDGqgIaLgcdnIAN
         nKmg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756113541; x=1756718341;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vxfoE22zXcqBAMwhFngozld/3ksQg0RekGkZfVaLeyY=;
        b=RLCnTD1VTapLYFhcwyRFFCEEYyEwLflTZe/D6KGcz2Zt/RsaIJpDd9EE99cZWZawWi
         WYwYCOMDesc3T0negK1hSXoA9oa4MaPZp5P3P4qZkmKIkzULK3tpHp+z+IR4giNPCcY/
         H9WkfA4qieDJIWkHwR6lTNra2uitxwm5ffX72b0zdd/3cDlz/ScB6RtOxf/VM74joWim
         LrsYiVtkpWkPV6AOOZmBzDCYNzHBot3gnZrJWaR+Wd4XSUth9/2nJyeqyxaZtMuLtOk8
         k/Rm+i4ZMawFZ/eBnL9gu+giaQwCC7w58MQkcUr36qO0SyFEaYK4S9q6NW7Ysuan+vN3
         Kx1g==
X-Forwarded-Encrypted: i=1; AJvYcCXfe40+Iiu4f2WwMwFF/OPKnklXCVAj/FLiVrFqrD8d795XzhP4N37qG9ivhpgczSznzJe9m0eLnV4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyslJAc46hHoQHIZZAJv84mCDAwj91MOzlloPGp56Tnckb/Dar5
	2nerbcYJYSStzBOlicIHBnkOHuhucs+VnN5QK6lUquFY2U87jwYLIcnMhh6ngi4h6w==
X-Gm-Gg: ASbGnctZj5InYuqH8WE8igpxmBQ0zXb5/F8/x0mJaQ791ccTRcBEjUneTaOYRc4pfq+
	SGkxT3nX41IH0lecDbJMIhm+IicKIk4OeEwQetzd9zqKV0Wj29F/osZtHwyyL4izUGlAs3kF/OQ
	LXy82HMIjOe9c6GXRDYgKeOvVm9yAS8mDcmf153fiIbtj4+kJiRI74EkPLnD/gl4cXmq76KzAs7
	MI2wW6ZUFZDqDDBc01uuuS4Sv2lKW6gz6sFId3Msqn1NV5R/pLjwJfj3a5k+FcpIHuYonkx6mrh
	55HAFHy+zKWu6mnwuPdvF7RKx7GRchia6VXi6lvPp86ExBvs0ajQ2Q0C6Xwer89ySWHaXxi9ydL
	u5tzr521PT05VRB98SHgaOJc3WB6fM66d2AEUW3C83CADwBtWUfxxamh8xRTd9HI+U3j56cPJPE
	opX9WCpMsJVJaGit2Z3A==
X-Google-Smtp-Source: AGHT+IHWk97UOp2QDyTudZ5L+TMTvuM6I9s+mS0aatR/rMGs5qCZ7aUuMusMa4dTjLjnLtwWd7O+eA==
X-Received: by 2002:a17:907:1b29:b0:af9:611d:8d06 with SMTP id a640c23a62f3a-afe2965b625mr1127582666b.54.1756113541448;
        Mon, 25 Aug 2025 02:19:01 -0700 (PDT)
Message-ID: <56b3b2fd-a209-40ce-b170-277600ac9ec7@suse.com>
Date: Mon, 25 Aug 2025 11:19:02 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 20/22] x86/traps: Alter switch_stack_and_jump() for FRED
 mode
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250808202314.1045968-1-andrew.cooper3@citrix.com>
 <20250808202314.1045968-21-andrew.cooper3@citrix.com>
 <7b46de92-d7b6-462f-8469-0f334d9e70bb@suse.com>
 <17498f02-0603-489c-bbc9-2207ffef8029@citrix.com>
 <0fdea579-7100-43d8-b5ec-0c9d34476aea@suse.com>
 <8229c4f7-e1ca-4d79-9131-df5d74e464bc@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: <8229c4f7-e1ca-4d79-9131-df5d74e464bc@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 22.08.2025 00:56, Andrew Cooper wrote:
> On 15/08/2025 10:10 am, Jan Beulich wrote:
>> On 14.08.2025 22:55, Andrew Cooper wrote:
>>> On 14/08/2025 4:35 pm, Jan Beulich wrote:
>>>> On 08.08.2025 22:23, Andrew Cooper wrote:
>>>>> @@ -154,7 +155,6 @@ unsigned long get_stack_dump_bottom (unsigned long sp);
>>>>>      "rdsspd %[ssp];"                                            \
>>>>>      "cmp $1, %[ssp];"                                           \
>>>>>      "je .L_shstk_done.%=;" /* CET not active?  Skip. */         \
>>>>> -    "mov $%c[skstk_base], %[val];"                              \
>>>>>      "and $%c[stack_mask], %[ssp];"                              \
>>>>>      "sub %[ssp], %[val];"                                       \
>>>>>      "shr $3, %[val];"                                           \
>>>> With the latter two insns here, ...
>>>>
>>>>> @@ -177,6 +177,8 @@ unsigned long get_stack_dump_bottom (unsigned long sp);
>>>>>  
>>>>>  #define switch_stack_and_jump(fn, instr, constr)                        \
>>>>>      ({                                                                  \
>>>>> +        unsigned int token_offset =                                     \
>>>>> +            (PRIMARY_SHSTK_SLOT + 1) * PAGE_SIZE - (opt_fred ? 0 : 8);  \
>>>>>          unsigned int tmp;                                               \
>>>>>          BUILD_BUG_ON(!ssaj_has_attr_noreturn(fn));                      \
>>>>>          __asm__ __volatile__ (                                          \
>>>>> @@ -184,12 +186,11 @@ unsigned long get_stack_dump_bottom (unsigned long sp);
>>>>>              "mov %[stk], %%rsp;"                                        \
>>>>>              CHECK_FOR_LIVEPATCH_WORK                                    \
>>>>>              instr "[fun]"                                               \
>>>>> -            : [val] "=&r" (tmp),                                        \
>>>>> +            : [val] "=r" (tmp),                                         \
>>>> ... I don't think you can legitimately drop the & from here? With it
>>>> retained:
>>>> Reviewed-by: Jan Beulich <jbeulich@suse.com>
>>> You chopped the bit which has an explicit input for "[val]", making the
>>> earlyclobber incorrect.
>> I was wondering whether there was a connection there, but ...
>>
>>> IIRC, one version of Clang complained.
>> ... that's not good. Without the early-clobber the asm() isn't quite
>> correct imo. If the same value appeared as another input, the compiler
>> may validly tie both together, assuming the register stays intact until
>> the very last insn (and hence even that last insn could still use the
>> register as an input). IOW if there's a Clang issue here, I think it
>> may need working around explicitly.
> 
> Given that I need an alternative anyway, this becomes much easier, and
> shrinks to this single hunk:
> 
> diff --git a/xen/arch/x86/include/asm/current.h b/xen/arch/x86/include/asm/current.h
> index c1eb27b1c4c2..35cc61fa88e7 100644
> --- a/xen/arch/x86/include/asm/current.h
> +++ b/xen/arch/x86/include/asm/current.h
> @@ -154,7 +154,9 @@ unsigned long get_stack_dump_bottom (unsigned long sp);
> Â Â Â Â  "rdsspd %[ssp];"Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
> Â Â Â Â  "cmp $1, %[ssp];"Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
> Â Â Â Â  "je .L_shstk_done.%=;" /* CET not active?Â  Skip. */Â Â Â Â Â Â Â Â  \
> -Â Â Â  "mov $%c[skstk_base], %[val];"Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
> +Â Â Â  ALTERNATIVE("mov $%c[skstk_base], %[val];",Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "mov $%c[skstk_base] + 8, %[val];",Â Â Â Â Â Â Â Â Â Â Â Â  \
> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  X86_FEATURE_XEN_FRED)Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
> Â Â Â Â  "and $%c[stack_mask], %[ssp];"Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
> Â Â Â Â  "sub %[ssp], %[val];"Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \
> Â Â Â Â  "shr $3, %[val];"Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  \

Oh, okay. But then please again without unnecessary use of $%c constructs,
when just % will do.

Tangential: Now that I look at this again, what's the 1st 'k' standing
for in skstk_base? Was that maybe meant to be 'h'?

Jan

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 09:26:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 09:26:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1092802.1448426 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqTT5-0002bm-Fi; Mon, 25 Aug 2025 09:26:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1092802.1448426; Mon, 25 Aug 2025 09:26:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqTT5-0002bf-Ct; Mon, 25 Aug 2025 09:26:23 +0000
Received: by outflank-mailman (input) for mailman id 1092802;
 Mon, 25 Aug 2025 09:26:23 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1uqTT5-0002bZ-08
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 09:26:23 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1uqTT3-005nj2-2e;
 Mon, 25 Aug 2025 09:26:22 +0000
Received: from [2a02:8012:3a1:0:7981:7aa1:9b9b:8488]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1uqTT3-0009oK-2K;
 Mon, 25 Aug 2025 09:26: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=4NXcscV5TTGwpg1wUZFHfeGWe7vtzzOq6F5Jhr809mA=; b=CYWdQlkDzDz0x0KPuz7aAGkFYL
	Kp4wNQp2r22hpofTLRWypv1MvnKfRsu0rb+yZ81ST0h+7YS3zNHfaol/uliLttKk6BNu5nAbnX/aU
	16iCzAU2YjCtQdwVqJRs5NUH3GVe1007cbTOMokyjVeD3X+VZEM0nudBwUlf9E+eOdIk=;
Message-ID: <0e0c9d9b-87ee-47e2-a2ac-42f183c674dd@xen.org>
Date: Mon, 25 Aug 2025 10:26:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v12 3/6] xen: Make the maximum number of altp2m views
 configurable for x86
Content-Language: en-GB
To: =?UTF-8?Q?Petr_Bene=C5=A1?= <w1benny@gmail.com>,
 xen-devel@lists.xenproject.org
Cc: 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>,
 Tamas K Lengyel <tamas@tklengyel.com>,
 Alexandru Isaila <aisaila@bitdefender.com>,
 Petre Pircalabu <ppircalabu@bitdefender.com>
References: <cover.1753953832.git.w1benny@gmail.com>
 <d8ce4bd614e240aebc2dd09930af0c2c474acf50.1753953832.git.w1benny@gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <d8ce4bd614e240aebc2dd09930af0c2c474acf50.1753953832.git.w1benny@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit



On 31/07/2025 10:27, Petr BeneÅ¡ wrote:
> From: Petr BeneÅ¡ <w1benny@gmail.com>
> 
> This commit introduces the ability to configure the maximum number of altp2m
> views for the domain during its creation. Previously, the limits were hardcoded
> to a maximum of 10. This change allows for greater flexibility in environments
> that require more or fewer altp2m views.
> 
> The maximum configurable limit for nr_altp2m on x86 is now set to
> MAX_NR_ALTP2M (which currently holds the MAX_EPTP value - 512). This cap is
> linked to the architectural limit of the EPTP-switching VMFUNC, which supports
> up to 512 entries. Despite there being no inherent need for limiting nr_altp2m
> in scenarios not utilizing VMFUNC, decoupling these components would necessitate
> substantial code changes.
> 
> xen_domctl_createdomain::altp2m is extended for a new field `nr`, that will
> configure this limit for a domain. Additionally, previous altp2m.opts value
> has been reduced from uint32_t to uint16_t so that both of these fields occupy
> as little space as possible.
> 
> Accesses to the altp2m_p2m array are modified to respect the new nr_altp2m
> value. Accesses to the altp2m_(visible_)eptp arrays are unmodified, since
> these arrays always have fixed size of MAX_EPTP.
> 
> Additional sanitization is introduced in the x86/arch_sanitise_domain_config
> to fix the altp2m.nr value to 10 if it is previously set to 0. This behavior
> is only temporary and immediately removed in the upcoming commit (which will
> disallow creating a domain with enabled altp2m with zero nr_altp2m).
> 
> The reason for this temporary workaround is to retain the legacy behavior
> until the feature is fully activated in libxl.
> 
> Also, arm/arch_sanitise_domain_config is extended to not allow requesting
> non-zero altp2ms.
> 
> Signed-off-by: Petr BeneÅ¡ <w1benny@gmail.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Julien Grall <jgrall@amazon.com>

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Mon Aug 25 09:29:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 09:29:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1092812.1448437 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqTWN-0003AQ-Up; Mon, 25 Aug 2025 09:29:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1092812.1448437; Mon, 25 Aug 2025 09:29: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 1uqTWN-0003AJ-RF; Mon, 25 Aug 2025 09:29:47 +0000
Received: by outflank-mailman (input) for mailman id 1092812;
 Mon, 25 Aug 2025 09:29:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=J9Dq=3F=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqTWM-0003AD-R9
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 09:29:46 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 07621be6-8196-11f0-b898-0df219b8e170;
 Mon, 25 Aug 2025 11:29:41 +0200 (CEST)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-afcb78f5df4so704567366b.1
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 02:29: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
 a640c23a62f3a-afe49314fa6sm532716866b.92.2025.08.25.02.29.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 02:29: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>
X-Inumbo-ID: 07621be6-8196-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756114181; x=1756718981; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=JJOlBlqbLwApiCRizJwy92bRQ/SdjqLeHuTXS4BG8bw=;
        b=AVR3/HmmGbi2hai1aOSAhZGtRkUdMPftCLjJp/vZGURjzAyxGv8tREYhzc5GlEg93x
         8gYMQFx0uf4XFTV5tbIiJ0rAUGNFS2Hl6sbDqsYK2310TMuUa5mJsmfchaTmLnG2FDwU
         cmwIkf6XJ8BzSq4nPpdy1fxE8DRbF39BmNFnAP2XJfh62Se+wJY5n7Y5hxAnvYBrVjsk
         9HoHtMBYdfcM7pDaSfG9Hyv68R0pK1N8WXHr3jfGJGBxsSMpgVHGJCxlOCEYViNhtNjF
         X94cE86g2BpDgEuKHnxEhv+gy6vIFlyUN/zh7tLYe0AHbGRTAyxXCSS80f8Rm4tqRJtQ
         zbjQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756114181; x=1756718981;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=JJOlBlqbLwApiCRizJwy92bRQ/SdjqLeHuTXS4BG8bw=;
        b=mrht6nXTTxGo0R3iotfgRFdPF0ovvHYOjjSM7Yakf+glqAlP9ZJ3hEwCtubxwT/8xy
         QsMSpeWHCO/UyXbKWe8yfeoA7v2xNf2X18nt5oZCWqdOKA1CWkz/8gfYnkX0CMpjIeDh
         5upPCQOmTOX92frmYZJw3NVLMBO5djOB9bZsLpNtl6A7hxn9EQ/Q/GYl8HRXIAl0QKxG
         pVIu8X6doQ//awTMYvRTiLvMBAd4F6cZ0TTNtHcIPJmtYpxhilErDoDLqTRVWsShPKjl
         4BnDJZo1qnVjpfxkPcY4AhsOpeSHRdJJWhkNInbDBVGilCkoXXOog6UGDu1ASPhrojOj
         Dkfw==
X-Forwarded-Encrypted: i=1; AJvYcCVWMdHSXoj38zmrWY5hZ/oUkFcBIa5cxeCI6oBWnupI/crMdqxv82H83WfDq3UGIB4TLueO1IGPltY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxW3VU0/PUbMquV9mDkm14wr+ILmwBM/C0sJ8ZHm0i0uyIH8GHp
	jS4ntzar+jJ8Ac6pudOkLnPrRs3iTN26ztxEqcnX5IveVhLJLY7RUXF3AOSsKofDjQ==
X-Gm-Gg: ASbGnctNZVnzwg6poJS0xupyo/Msi7kKa+wcPmmT9CT79alo71H/3p5T0w+PpLcjRvn
	17YHXFwX3xxFXj9tPH9VoSNlkIknMgD6QZ3Tb/oqJ6xj8psacu32a6xui9OkyeS2gWbT+fkev4C
	Ka7no4n7BdVxE8k0bOJPwFZCHsUCfUkg/MEw2G/9qtMQ9wTIt8HxWR0ay7B36+emivNVIWdXbf/
	8IbS83idYvSpzo9izMndAXr6PzxNcYPm4hMIGAdGuhHO0rTp/FL9GdvhmLx0XfopGHTXxz1eP/K
	97CtXK4FICJnVi4ofIbYpJ1YyYmZ8sFUxKTFWYBFc7MlYcDe/Uxrvs0+stw4sHBX8K0fiRdkDtj
	IAQY4gohaNMFg8aWCmfTR2YXKVIYVJDV5olIfqcLJ4QmPlMicrTyEK7bTlFOQSFpthw8locOD1m
	8QXhr1tNO1xtXpxG4ivQ==
X-Google-Smtp-Source: AGHT+IHqw97XgEZVaDnSC3ExO8QfTB8yMqbRP+WQzn+OCBUcfEApKh2RFGzIyT6q96TNlvYf5gVEZw==
X-Received: by 2002:a17:906:9f87:b0:af9:c31c:eeca with SMTP id a640c23a62f3a-afe295c0d8bmr1116149266b.48.1756114181220;
        Mon, 25 Aug 2025 02:29:41 -0700 (PDT)
Message-ID: <86765d49-d4c9-46a9-b4b0-d0aa19c5921b@suse.com>
Date: Mon, 25 Aug 2025 11:29:42 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 4/4] CHANGELOG.md: add new SMBIOS tables (7, 8, 9, 26,
 27, 28)
To: =?UTF-8?Q?Petr_Bene=C5=A1?= <w1benny@gmail.com>
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Community Manager <community.manager@xenproject.org>,
 xen-devel@lists.xenproject.org
References: <cover.1755987697.git.w1benny@gmail.com>
 <3c9c7c48c9d8633b4c36bb0bb91fab88c03ae279.1755987697.git.w1benny@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: <3c9c7c48c9d8633b4c36bb0bb91fab88c03ae279.1755987697.git.w1benny@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 24.08.2025 00:26, Petr BeneÅ¡ wrote:
> From: Petr BeneÅ¡ <w1benny@gmail.com>
> 
> Signed-off-by: Petr BeneÅ¡ <w1benny@gmail.com>
> ---
>  CHANGELOG.md | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/CHANGELOG.md b/CHANGELOG.md
> index 271ac73a0a..2fd65b90a9 100644
> --- a/CHANGELOG.md
> +++ b/CHANGELOG.md
> @@ -32,6 +32,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>       capability usage is not yet supported on PVH dom0).
>     - Smoke tests for the FreeBSD Xen builds in Cirrus CI.
>     - PVH xenstore-stubdom now supports Live Update.
> +   - Support for new SMBIOS tables: 7, 8, 9, 26, 27, 28.

This way it reads as if you mean in Xen, when the change is entirely
contained to hvmloader (and hence affecting only HVM guests). In
something (imo) not primarily targeted at developers I also wonder
whether identifying the tables by number is going to be useful.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 09:30:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 09:30:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1092819.1448446 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqTX0-0004YB-5E; Mon, 25 Aug 2025 09:30:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1092819.1448446; Mon, 25 Aug 2025 09:30:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqTX0-0004Y4-2j; Mon, 25 Aug 2025 09:30:26 +0000
Received: by outflank-mailman (input) for mailman id 1092819;
 Mon, 25 Aug 2025 09:30:24 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1uqTWy-0004Xs-Lx
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 09:30:24 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1uqTWx-005npM-0b;
 Mon, 25 Aug 2025 09:30:23 +0000
Received: from [2a01:cb15:80df:da00:4c1a:a750:6210:2b8] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1uqTWx-000A12-0L;
 Mon, 25 Aug 2025 09:30: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date;
	bh=gD3fsG1WGg7SbvOvckqc+yuNA1IsvTlrAmKBEvQfQvE=; b=X5XZv2Xrvk7bkhtDgR5NWseWfF
	FocFqNoA4tS1p+iFeGl9zzZ6xFEvvzVLAYKdFOgOGwQw7lrgRum7y9/EXTBNE/L1EFx1pAC79qSB8
	HCERPEQMnYKwZAydVhmjUQF4k0aUo/IgENG+eaAOzHBgwan7TZfJCa6Ceeqzigk10BJg=;
Date: Mon, 25 Aug 2025 11:30:20 +0200
From: Anthony PERARD <anthony@xenproject.org>
To: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com,
	anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org,
	michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
	dmukhin@ford.com
Subject: Re: [PATCH v16 2/4] tools/include: move xc_bitops.h to
 xen-tools/bitops.h
Message-ID: <aKwtLMAslH6v5L82@l14>
References: <20250812223024.2364749-1-dmukhin@ford.com>
 <20250812223024.2364749-3-dmukhin@ford.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250812223024.2364749-3-dmukhin@ford.com>

On Tue, Aug 12, 2025 at 10:30:45PM +0000, dmkhn@proton.me wrote:
> diff --git a/tools/libs/guest/xg_dom_elfloader.c b/tools/libs/guest/xg_dom_elfloader.c
> index f17930d98bf7..8531e90f8e21 100644
> --- a/tools/libs/guest/xg_dom_elfloader.c
> +++ b/tools/libs/guest/xg_dom_elfloader.c
> @@ -25,8 +25,9 @@
>  #include <stdarg.h>
>  #include <inttypes.h>
>  
> +#include <xen-tools/bitops.h>

It doesn't looks like xg_dom_elfloader.c is using anything from
bitops.h. The last use of it was probably removed in ed04ca95981f
("libelf: rewrite symtab/strtab loading")

> +
>  #include "xg_private.h"
> -#include "xc_bitops.h"
>  
>  #define XEN_VER "xen-3.0"
>  
> diff --git a/tools/libs/guest/xg_dom_hvmloader.c b/tools/libs/guest/xg_dom_hvmloader.c
> index 39e1e5f579a7..0f569c20c522 100644
> --- a/tools/libs/guest/xg_dom_hvmloader.c
> +++ b/tools/libs/guest/xg_dom_hvmloader.c
> @@ -24,8 +24,9 @@
>  #include <inttypes.h>
>  #include <assert.h>
>  
> +#include <xen-tools/bitops.h>
> +

I think there's two reason to remove this include:
- it doesn't looks like xg_dom_hvmloader.c is using any macro from it.
- bitops.h is already included by xg_private.h.


>  #include "xg_private.h"
> -#include "xc_bitops.h"
>  
>  /* ------------------------------------------------------------------------ */
>  /* parse elf binary                                                         */
> diff --git a/tools/libs/guest/xg_sr_common.h b/tools/libs/guest/xg_sr_common.h
> index 2f058ee3a6ff..2e583f2eac72 100644
> --- a/tools/libs/guest/xg_sr_common.h
> +++ b/tools/libs/guest/xg_sr_common.h
> @@ -2,11 +2,10 @@
>  #define __COMMON__H
>  
>  #include <stdbool.h>
> +#include <xen-tools/bitops.h>

It's already included in xg_private.h, so this feels unnecessary.
>  
>  #include "xg_private.h"
>  #include "xg_save_restore.h"
> -#include "xc_bitops.h"
> -


If the extraneous includes could be removed, that would be nice. In
anycase:
Acked-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 09:34:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 09:34:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1092832.1448457 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqTaV-0005QO-LK; Mon, 25 Aug 2025 09:34:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1092832.1448457; Mon, 25 Aug 2025 09: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 1uqTaV-0005QH-HZ; Mon, 25 Aug 2025 09:34:03 +0000
Received: by outflank-mailman (input) for mailman id 1092832;
 Mon, 25 Aug 2025 09:34:01 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=J9Dq=3F=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqTaT-0005QB-UV
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 09:34:01 +0000
Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com
 [2a00:1450:4864:20::533])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a1c9afa6-8196-11f0-a32c-13f23c93f187;
 Mon, 25 Aug 2025 11:34:00 +0200 (CEST)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-6188b7550c0so5673080a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 02:34:00 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-61c312c4cdesm4698320a12.23.2025.08.25.02.33.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 02: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>
X-Inumbo-ID: a1c9afa6-8196-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756114440; x=1756719240; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=D7tCF6483C64WzJ9/szGu7MPxFf1/1NhyZRb2ULcjd8=;
        b=PW2N3Sn9QHEjxYZ5Xtqf4/xwCvFqclDhSF8FkKkpM529I2PjT4w/czpPz2b6/yLxaB
         sqJjkHVr3atOL9/0Hjeuwf9TH7vFCiNU+FJbjl/tQatLC8iPQeSUP1GvXoI6Ms7R346K
         dy5pYlb1GviLHrxvgfyZ63KqmuZPVuxMyNFv3oG1K1Lqs9GWESqnznciSHjg9blchLke
         GxWFarTxpwZ4DrvNVuzvUSXs8oPIVAS5imAneBjd14Yipy9JEouhd1VUVz8Lus4OdZAZ
         ZBsNjfOaCbhHheAiz2y6xoVbmHcHSSVAXI6pmB7JEjVfJ3ceJv7LkZ/VYsnBmZhwooRF
         T+Wg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756114440; x=1756719240;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=D7tCF6483C64WzJ9/szGu7MPxFf1/1NhyZRb2ULcjd8=;
        b=ZRIpfxhK7LoZPcXahRI9qn5/4Nej9YLBtD6iHhYBcjSrIQdBJYxIv2SYruLmTloMjP
         SiwDjq2/wrO9iMxhrL6iqJ85iHS7RuCct7igL5niNERqMW8aGaLmehyz9J7rLkmN/L2r
         mINn04NCg2q4YVt9B7m3kxJTmof5CsgKmP4B7nFs1TPuxne4p/nFI3cvl7z+6Q09Vzch
         CIoYDaJSEcjpi681bqWPx0JBC5HBmMvQXP4+c7hvDvAiHHiUDKN+A8EdT568AP6qg+2l
         4qiirbt90AH4dkUJQ8Af+uSawMn95gUijm5ZP9Dc2TIVbwaBGT2EOe/tazPZIaDUbu8v
         ZPLQ==
X-Forwarded-Encrypted: i=1; AJvYcCUlE5m/cUgompsYiyjZWPiZ+DwB/AEWp3Tc7kHAQ4GVUKxQ72+jtZ6oOwH1SAmQGv4jZqiAumy5/xk=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxla70lsRtYwolXHZetfXR2+KbqlqfaahCDFvujGfqYz/xq55Ax
	2+lDO01k7ryqogOq3fXqUmWS8AQJOVOUqK4gn65TNOOq29E7pMIZn8dx5iv4yfrelA==
X-Gm-Gg: ASbGnctIR6EBaF+9WMG+Dez7rB2LxUDb+JZ8ibA/x0qAor6imkSDRA6HKWN8akb41Sq
	xbrPFbfwTr1E8DUsKsncNHw28UERK4IXBkhJcVc73FHfJIqUQIovq3rKNjTjBIuihmQ/iwhnuCh
	1lLLqXDUhjl/diziXI8ir9fVm+9p3of/OsLBH/IgNVIljaSu+R3IkpxzZ9ROwG7Ask97iku3cj/
	EyweMErFoop8Qx3Kx+6mxkZDvovk/l2B8KXaR/ieTzGKSqd6wAnwjlAd0sS80wD18MiMkAz3Xbl
	0povse5+TXsmAs1z8Bmz+eeY0mvlS4jdWX9AIKeUjhbFZrAAAmwB9fA0dHvUMjNBL6k59cljOrX
	YJzJhYI0fACxMaLdRB6jRhhWJhK771s2FRL+maGOX43ql/cEKhY2xUKdBWnwnkm47qTFy1PJc3V
	H8Z9YVZcM=
X-Google-Smtp-Source: AGHT+IGQz7Aq5MUrWNTWbONKh2CdY+7DeRAQGmZVXn+dhIFC73GwBP6iHY5YkSHkXwLfk2qg3MgNnQ==
X-Received: by 2002:a05:6402:1d4a:b0:61c:74b1:d3ea with SMTP id 4fb4d7f45d1cf-61c74b1d7bdmr1234729a12.22.1756114440299;
        Mon, 25 Aug 2025 02:34:00 -0700 (PDT)
Message-ID: <a451e477-27a6-48db-8db7-31c93f83bafc@suse.com>
Date: Mon, 25 Aug 2025 11:34:01 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] x86/mce: Sort headers
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250821154825.3968600-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: <20250821154825.3968600-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.08.2025 17:48, Andrew Cooper wrote:
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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



From xen-devel-bounces@lists.xenproject.org Mon Aug 25 09:38:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 09:38:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1092845.1448466 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqTeN-000637-71; Mon, 25 Aug 2025 09:38:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1092845.1448466; Mon, 25 Aug 2025 09:38: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 1uqTeN-000630-4X; Mon, 25 Aug 2025 09:38:03 +0000
Received: by outflank-mailman (input) for mailman id 1092845;
 Mon, 25 Aug 2025 09:38:01 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=J9Dq=3F=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqTeL-00062u-2L
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 09:38:01 +0000
Received: from mail-ed1-x534.google.com (mail-ed1-x534.google.com
 [2a00:1450:4864:20::534])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3052a166-8197-11f0-a32c-13f23c93f187;
 Mon, 25 Aug 2025 11:38:00 +0200 (CEST)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-6188b72b7caso5586485a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 02:38:00 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-61c805d1668sm176413a12.50.2025.08.25.02.37.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 02:37: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>
X-Inumbo-ID: 3052a166-8197-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756114679; x=1756719479; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=5ktQOcHVVFpkbUfbyySwP/emmdsvOMIjxUuYNDNUjoo=;
        b=W+go/+4szQyGXfDovobvg1A/VV4pT5zVbW+ztIWAe2R3q4fpVJuIuWmCRnKRPQKnRT
         6gKDZjCQ6AgAxhFgr3kxe5xxFclMgkxdbXxBu2PV7amXD8FQJIAaa/CKeXNDDDgsehbv
         JvGemyxH+DEEg+EM9RcvWy8oRwpsiydgZBfUceEzUBfJdnmtJW3IZ489+gNYbekEh7VK
         LPNU74h5GWkOzti5juOO9y+A2/QFoU1boeVZfkKIHx5g5CzXXiv8I+v/26yh0kleEvhM
         s7Mf5HPYn8FTLAScd7Aoq1EA92b4lfKm+vl1N76kkcnyPhnBgLryK2im/Be++/fRYJQ2
         zAxg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756114679; x=1756719479;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5ktQOcHVVFpkbUfbyySwP/emmdsvOMIjxUuYNDNUjoo=;
        b=akVInikRcgZt4XDzA33junj5Zf1lV1MaOR3BgLaUOPnC/jyiyLbq9FVvRVxR8A9ORZ
         h5+kw84BN0dfZAVir8Zs6kIHe2THEKp7V9Uz9Ij1tAqJeOfkrxQUQTigPfe8URoh5ZMg
         ZwOotCKxfouwvsV7Ti+qkZnl3x+tgVlOdFrN6B5kuheUPe6/CG76vRSGveqRea9h0Nrn
         Bd0ci0NkrrAKNmF/UqormpMXjWd+Q3kMaq5jIJTxaPpVWkddkCTtIhy2/K4272IKhcSr
         xHOvsqFBCcWw7xaAjVmugfBk0vrY8VjKyt23IM7pGuTEc4y/DAfNfZvlSD1vBx/vknu6
         PnPw==
X-Forwarded-Encrypted: i=1; AJvYcCVmOxXbajf/qErSBif/U5M0MiSZXuad814ZNK0GzFPeYP0JjfLC5a6SROBzKN/SoB/tEbo4CxSnP3c=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzES0lpolYmMxZ1JQcYaBdAzlU1louXZ6A6r/joxyDjv1Cgqzu7
	yS3mhNZMnkjzI9Kk4J8+ex4b9MwM0nErf1/x0S7+1pXXr9VIRsjFFCuZvawRGeT4lg==
X-Gm-Gg: ASbGncvjTHOxfjSlqN+TfbylnybqAzfpu0AkfDO9Rj1bTfkANtvsDHcezElGcKPa7Oe
	z73qka9U9fMYEEmux64J8NTSakmpu/rQqSAAIzQintZ/5+1IVotnHnFnVrtzeYtD3sWHX39SaBB
	u7QjFQicPquTnccVGOFVGKeusbFU+B3B568U3IsvUxutsIjgygbGsg3ofzTHaiqiWkR93O+Y5FK
	bG/Rs67ep0JaFBv8EubSMwBRu1RfKOB9yKQ2yRh5dzAHUEmyl0OQi6h7vUqk3j4dlVtsvRpR329
	wMc69e7iOOnuU/sGiGF9KJh6FVRPAwq4fViAQPdubr7mYhfj0jMOExg2BNIe1Jgz+g12v69cvEm
	Q8dHwxKMQSe8CehjtMwSd3Tb0rXK4jfVZOwrSpGCuMIRvLvtS0H2rbs481qXDBCFreogymVlPEW
	bPuV0BNHU=
X-Google-Smtp-Source: AGHT+IGBaljckfTyQnR6SVPLJjOI9oHZzdjrt1V2bI1ecwAaVGTGf/Oqb9pX8LrHrDpTiexvEUQoFg==
X-Received: by 2002:a05:6402:40c3:b0:61c:7743:7f9a with SMTP id 4fb4d7f45d1cf-61c7743853emr1049140a12.28.1756114679481;
        Mon, 25 Aug 2025 02:37:59 -0700 (PDT)
Message-ID: <dc2822c6-5c44-4b11-a677-aec1f146b609@suse.com>
Date: Mon, 25 Aug 2025 11:38:00 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86/mce: Adjustments to intel_init_ppin()
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250821154825.3968600-1-andrew.cooper3@citrix.com>
 <20250821154825.3968600-2-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: <20250821154825.3968600-2-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.08.2025 17:48, Andrew Cooper wrote:
> There's no family check gating intel_init_ppin(), making it incorrect to use
> on non Fam6 CPUs.  Switch to using VFM.
> 
> Emerald Rapids is the final CPU to have PPIN but lack the the architectural
> enumeration, so include it too.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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



From xen-devel-bounces@lists.xenproject.org Mon Aug 25 09:57:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 09:57:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1092864.1448477 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqTwe-0000q2-N2; Mon, 25 Aug 2025 09:56:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1092864.1448477; Mon, 25 Aug 2025 09:56: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 1uqTwe-0000pv-K9; Mon, 25 Aug 2025 09:56:56 +0000
Received: by outflank-mailman (input) for mailman id 1092864;
 Mon, 25 Aug 2025 09:56:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/bS3=3F=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1uqTwd-0000pp-B0
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 09:56:55 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d1790df3-8199-11f0-b898-0df219b8e170;
 Mon, 25 Aug 2025 11:56:49 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by AM0PR03MB6146.eurprd03.prod.outlook.com (2603:10a6:20b:145::24) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Mon, 25 Aug
 2025 09:56:46 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9052.019; Mon, 25 Aug 2025
 09:56: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>
X-Inumbo-ID: d1790df3-8199-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UtNE77vmLuJ0iBpbgAM2zNALkFg3JB6T8ah7kgmum86fiK0iRs+n1kR5nGxATkKh7nw+glhoSURgqldqxacJD//+lJJmQzmwnItKK3Z1icTcoZafBJFXA55n7avM14ndhd1XUE6fxxueFjxvVCE+RNRfHbVHOw4zW59Uec3YglA4BH0bz6wKUL59iywN4/wgKsvlteyZ463TQqK4a3PbCjmthFW6cQfe7IYZyLY2R4xImvCh9R3yueRXJH1xDsTt2zvv2D+jSlEnDU4cT5tgrYNqRc29uW0OfrnZw6xo7lpoYuBTTFDU8kvOgaRJWTdnJHJivluFOczUP6gGPgVgfg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=P7LHE8R+NRn6nA6086+NvLSBSdkIk3irEvPuc0vAdQ0=;
 b=ul+t2dlMugnaZI4/7DdhOmak/X6OjMVwApES40jq0uHkn6wPF5kmRAHFb2lNvTFizvFaN/VLJKZzy7iFvuLqO1yFavQuxDTKJ1+Yx/GOQ7Q2KHleKIyaUSY3Gr7RpdHSoXNY2/sLPmn9ZDO8mFdZb5i58vktCYRl5P7Fy8OAkIAZI1PcEEIgZO6DrKrbPGbGuBmf26n1KY6tODjE92aWrmlzTX9WL+21deuajbe/K9NWDXHSmMJzR3A1OU2avfOFrqOajR7nDzNkj+kTMttuqdIsApTUsPZ/H6RzNAeFh+cxuzav+Xam7ZcMdRLE0WnvS8R8NqFZN1WtszYVH+BJcA==
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=P7LHE8R+NRn6nA6086+NvLSBSdkIk3irEvPuc0vAdQ0=;
 b=GlioH/dC0tbHAbDuQcJyh70iuktG9yxu1A04ocOKGfhFJJ7Fdvml7QJkGJ/AcpiXL9616CitVG3QLckrczyJrXopI8dcxC4OPqFRT5EvA3JigxeUSMaX2DXPEbwmfta1GtF7wNj5HDV0H0GOe/uVx8H3Lr8OaULC8fRDkza4+2R2y/Ldu2GOtssMBDep8OtYKpMkLG5K7/+NYLHyJNNZhbvSzhq8PcCkoQDY8Ca/s2gAg4u4DiJpNCkszop4u3xmzjknccB42yugfSYiDqAzCirNbd0td9F6OYITRBKgX7ERy7XIpLhxwNyjrgjpmMtTgbcaCWIHImvEAYQpFwYKpQ==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Doug
 Goldstein <cardoe@cardoe.com>, Stefano Stabellini <sstabellini@kernel.org>,
	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?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
Subject: Re: [PATCH] misra: add deviation of Rule 2.1 for BUG() macro
Thread-Topic: [PATCH] misra: add deviation of Rule 2.1 for BUG() macro
Thread-Index: AQHcFQc77bBOPokbA0m9oV6J6fEgkLRx7dcAgAE1O4A=
Date: Mon, 25 Aug 2025 09:56:46 +0000
Message-ID: <4f0a8c69-b801-4dd3-b706-bd9fb30d4cd0@epam.com>
References:
 <f7b4112aad84162c25f96a9d6db43a0c2ba85daa.1756046023.git.dmytro_prokopchuk1@epam.com>
 <7d0b9e8e296ea07b966832b9a047baa7@bugseng.com>
In-Reply-To: <7d0b9e8e296ea07b966832b9a047baa7@bugseng.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV2PR03MB9572:EE_|AM0PR03MB6146:EE_
x-ms-office365-filtering-correlation-id: 33d5d8e8-17cc-4cdb-88dc-08dde3bdb3e5
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|376014|7416014|366016|42112799006|13003099007|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?dk5ydHFLSmtFREc0ZFcxcldTR2xSajhQU2I3TkJsNXd1U2thdTE1MTE0Q3px?=
 =?utf-8?B?N0o3a2g1N0hqNmp5bWNLN1IrbmpLVkVUOVRxZHFhcmg1MlY2cW5ySFoyRmwy?=
 =?utf-8?B?N0Z4Yjl2OFBGL2dOKzZmY0xzeHlsR1l1M010OGhyQ1VPVlZPM0hZbFowR0xF?=
 =?utf-8?B?aDlYZzhpYk40a0JRZ3BPdlkweGVJRENEUnJWUU1INEFjRGxOZmlqMk9zcHlD?=
 =?utf-8?B?dUZucEdyc3NCSTZYV3pnK3I0Z1kxb3ZFam45Si8wZmpMaWtCTEozclhrU2Fr?=
 =?utf-8?B?Y3BYWEZ4dmJiOTYwM2NkanlGVFlmMDBRTDllUlBpLzZGYkJ1R2I0MXcxZ3Rn?=
 =?utf-8?B?enV3azVGRG9XdHUzcFA4TS85aHVZVzZBVEpad054RlhmTExDS0ZpbXFXSGdm?=
 =?utf-8?B?eGJpcWR0VGl2QmtmREN5TnNHZDNIOXo2T0dkRENsY041NkJwV000Smt5UHRY?=
 =?utf-8?B?VWJ6a1RyWGxMYVh6dFRhdlIrZ0MwVDhzQlhNU0lQMVlMeUpPNHZjQW0rdFlw?=
 =?utf-8?B?Z09aeTNZb2dQbUhYY0dVT3NVb3VoNC9YZXZPc0JjY1U2c2d3R0RSMnpPbGRp?=
 =?utf-8?B?Yk1LQys1b3E1WFdtaGFWK3dpMWwwcnVCTUIyOGVsQzR2azgzS2lIMDUvbXoy?=
 =?utf-8?B?bm4zRW1MUXg5L2N1RElSRUNRSFNNWHQ1dS91SFNCTk5JS0l1enpDdXdCTWsr?=
 =?utf-8?B?dGNESHFHSHdzQlBxN3dlQW0rNjNEamtnL0J6S2ZWMXlsSEo5aFNxOUhXSUZi?=
 =?utf-8?B?Ny9DN2wraTM4REFTOWJndjQ2ZUJUWFJkSzloWVFET2Z3cXc5MVgyaStMZmox?=
 =?utf-8?B?Vk5HdHE0S0RjRWZySDhQN1RJOTdnWWRTbldpTUorV0tvWmhpN3lZaGxQbkRa?=
 =?utf-8?B?Zlc3cWV6eVhCUmFKQXgxUzlQV2htb25yeHJRQS9NY0d1eVpsT09JRGlLSzRn?=
 =?utf-8?B?S1R0OWpnYWlHd0Y4czUrQUxmemErT0Q1Mm5HTEVXc0ljMWRSN3dHMkxBVC9o?=
 =?utf-8?B?NFlxalBQYVdmSEJQS1hrNG5DOVVTNW5pOThsblBSd2J3VE45SzdWSUZLWW55?=
 =?utf-8?B?UDdJc0MyUDFvWUdOTzhLd0g1MzBZaHVrQm1NaXVjMGxhR2l6czZUTGVpNlJs?=
 =?utf-8?B?eGoyMDJWbllJYmxhNUxLU1VzcVhzODNvNEc0ZG42S0N0dVEyeVBTUGU4bGlT?=
 =?utf-8?B?c2xCZ1dZNVpSSHc0OVc3ekNIZkJLV0RCNERTUnZpVE02UVRkTzlGbTU1Rzd2?=
 =?utf-8?B?elluVTIxd3FPb3NmN0JkdkJMMXkwR1FtcSsxZWhYNGJwSFZEamxYZ1JlRlRM?=
 =?utf-8?B?N2FCejd4dlZOV1VYYTZvRTJYQTRFL3hXN2RDdDVyNEkxN2xuNzhjTWg4YmUw?=
 =?utf-8?B?d3lkNUI0ODhsNTk1eHVYQjVpZk14TkExWUUvN3lQNDlYQ0lkbkpTS0w0Zllz?=
 =?utf-8?B?cFNkU0s3dnowSHBldWxiTzNTc2ZwVWd0YWg1czJ4YmU4MVd6NUkrMXVoTThl?=
 =?utf-8?B?eUZvbEdRV0p5R2RvdUJmUW1UTm1nTmZrNHNpRDc3aktTVzFBTjFLZExhU1Qx?=
 =?utf-8?B?aElCNUJhYW92d2JQTTUvWWV4SXBaTDI2Z2hoU2I5Tzg0VnJsMmhRdFdQRmN1?=
 =?utf-8?B?eUlqWkJoTURaYVZjZlM4TGZNc2ljdHZvcCtaOTVTOWZhblNOazdzOHVvdmlv?=
 =?utf-8?B?VmNvWWtRNXBleHdvVExLWlVIUndaeS9uWU4rM1hWMzkySjVmTUlFcnMwbnhR?=
 =?utf-8?B?UFYrcWV5K3R3bHRaMVRxQzZ1QVZ0RU1ZTlh1Qk5rZWkrcGx2M09WUlo2YzJh?=
 =?utf-8?B?M3dRYTVLZ2M0bElnUTBxaUM4ZXVxWjFXZ1RGcTR6RWR5SDNpdGJNUU91WDgv?=
 =?utf-8?B?YlpmUzRnUWhGaytDSGEwbGpGZ0tYRkJNd0l1NXBOZ1E0VnFlK1VCRkZKQmFw?=
 =?utf-8?Q?TsyGRw3zAXo=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(366016)(42112799006)(13003099007)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?aDk3ZlI4QVF1ZnZaYkhFUGZnWHA0dS90Ym4rTVlxVkV4VGcxVTRQdzJHY28w?=
 =?utf-8?B?elppN2d3Z0dvaFI5WThiUGNnUFQzM1pmNk5JN2s4WVV2REsya0hRTWpPRlZD?=
 =?utf-8?B?TDRlQkV0NW9BZWNFOGxZVitFUnA0M1F4OU0wd0dWelNIMm9QR056WE1OdjVi?=
 =?utf-8?B?bUV5UlhMTEJ0eTE3VHE2dEt5NUIwN0kxNjgvdVRmVXFlbUdxbW9SZ0RkSFBv?=
 =?utf-8?B?bFFCdUZURFd1WGpReDdWVElKLzVzUDdTTDBiSllra1Z5UlczYVVlUjJCcTk5?=
 =?utf-8?B?ZFA5dkNEV0Z0bHpCZC9ZeExMZ2F3c082THh4Ti96UW5hWHQxdjFsZ0Rld2p0?=
 =?utf-8?B?WDc5ZG8zNThhbGNEYjNYeFl1Qm95bkxuL2dPb3loeEJnMHBVT1BzR1dhZjVI?=
 =?utf-8?B?REQvcUNNMjkwdVE3cXpkakJmc2pKRGJZUERZZ0NPa1lmNXpVTzNMckxUOUZ1?=
 =?utf-8?B?cFFJcGd6U1hBSFV4bk1yVGF0U2NDOElkbm45V3NLQmhTNHBOTDY1SkFiK0po?=
 =?utf-8?B?eXdUb1hKYS9HdjRmOHozQU5NQVZLaXFjdG1IYm5HQWdoWEZ2N2lXdlJkYzlE?=
 =?utf-8?B?dm5ra0s5RTg3Sy9La1h5Z01CR0dVUFYybFN2WFZnNUJESkIxTTRvVnQxUHI1?=
 =?utf-8?B?UUZpSGJ1Wk9hWm9qUW9CRExMY0IzTnVIZzhBc0VZb1MxdHR6ZHZVd3Y0bkhl?=
 =?utf-8?B?M2RBU0tNN2RPTmc0QVVRWFYyV0hlL0ZHeEhzNTJLbnRPL0pqdXhFb3NOWFdt?=
 =?utf-8?B?K2k3am5Hdlp0M0NiREs5THhTUzVtbDJ3MVIycGt1Y3N6VEwyVUVyVmIwY1JE?=
 =?utf-8?B?cmRIdVE5S1ZDL3JRaUhKbVl6Z2dReVM5bTdyakVvdHRJNDJTa3FXQSt2dmd4?=
 =?utf-8?B?MlpZbHpxeG5VeE92MnAyMWhMRUxIU2hxczROTjg0V25LbFZuQUdoSUF6UGJ2?=
 =?utf-8?B?SU5naENLeXVhcWxuT242V0NiOGM1RmFGWWIwUC9RUVMrVjdYNXJiVlduSE1h?=
 =?utf-8?B?ekU1d0ZOQkVrQkRQbGV3TS9LcDFNWG91bFVYczE0MGdCcDN4c1ppb2NlbHlB?=
 =?utf-8?B?MTArdFpGQlVpK2lON2tDWEVSYXoya0NsOE5kNHk2QzA3VzlORVVzQk96aWln?=
 =?utf-8?B?a2hNbklxa3ZHTW1ZRGNDQWZrMDlQNVI1T3BCVVRLQjNoUkZMRUxIa2xuTmI4?=
 =?utf-8?B?Q2JaaGExdUdLbitDKzNBUW9Ud3RObys0U3BEQjBzVUVaeUJXL2M0MDhkQU9Q?=
 =?utf-8?B?amNoajF2ZG9UUFlFQ1c2S0wxc0NWOXRFVlhpRkxGY212MmZwbzJoU2Z0aFBo?=
 =?utf-8?B?eVFCOFlHQVJKaVNwTzFaV1FDdmFCSjgvWVVSMk4wUk91dUlIQkg3K1dCZ241?=
 =?utf-8?B?NEh6R2RVd1dOOWRNNElhOW9DaEVLZmhMVkdoUTNWMjI5Z2EvRjV3a0lJV0dt?=
 =?utf-8?B?TVBjMVg0YWw4T2M3T1cvTEVxWkg0T09LWml5ZS80VGJVcTRrS1BQeGpyM2tZ?=
 =?utf-8?B?TXBWeUpqSEdKeFBaYS9Ndm9NVWhFUUpjV1lpbTRBMi9xZDNISWdPN2kwZTNX?=
 =?utf-8?B?TXJuVjFQUFl0RUMrT25KN0FUd0xwK2h4Nmdya3FRdTkreGhKV05BYWZOVzN1?=
 =?utf-8?B?S1NFSzdDbmo4OXJpVktSK0xmQTlxaVFnYUZzcy9HOHhJSmcvK1FrNXJuVy9j?=
 =?utf-8?B?MHJDZjByRGFTa0xqZ3RBVkVSellSYjVzdjdmSVFSTG9WaCtXMHgrZXVuQXNR?=
 =?utf-8?B?YjRGU2Q5VklpRzVEdkZnWnMvMHRtWXM3ekpWd0N4WHhZMTlPVzNrYmM4NVlE?=
 =?utf-8?B?Rld5a0hlcjNXZHgwdStuME5lcElyLzVwZ2hJUTVXV3gzY3EyaVN5MVVnYnJN?=
 =?utf-8?B?aXpIWXRsNU52VWdodHhzOFRhd0RKRnNPbUpZVFhwWStxN1BzUDlvRWxabksw?=
 =?utf-8?B?RDBKSlRjK1k0QUZKWFVlVGYwT3BkeXgra0UzUjBLZEFpTVZhZ0k1d3BQV2hF?=
 =?utf-8?B?dlJwU1pWS1Y0S05XbW0vdmxxb0RSL1RSMVBnSDBxUkh3NlJQWDMvK1VaNzN4?=
 =?utf-8?B?aHliTnJqSHZwTEpJTFdLSHJWRDhQdDBla3lLZm53RG84T1JIVkU2Q3p0V0hr?=
 =?utf-8?B?R0ZqaXlXOTgyQUZiRFRmNFdjVFNKODBGNnVOTkRMcHpHVnVaZFVRTkliMk8z?=
 =?utf-8?B?RVE9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <145E7DDEFF5F534B81558D050C82393F@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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 33d5d8e8-17cc-4cdb-88dc-08dde3bdb3e5
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Aug 2025 09:56:46.2850
 (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: CxdYndt6Vyxg6MXzfOHWtmzBB2gSyEcYpe5OnRnO4LXRJG9rhTAmqzAOR6kG3fbyWFHc/lBjKe+Oy1+uLCwh69DP/pMLpnd9FU7QQ6OtymQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB6146

DQoNCk9uIDgvMjQvMjUgMTg6MjksIE5pY29sYSBWZXRyaW5pIHdyb3RlOg0KPiBPbiAyMDI1LTA4
LTI0IDE2OjU2LCBEbXl0cm8gUHJva29wY2h1azEgd3JvdGU6DQo+PiBNSVNSQSBDIFJ1bGUgMi4x
IHN0YXRlczogIkEgcHJvamVjdCBzaGFsbCBub3QgY29udGFpbiB1bnJlYWNoYWJsZSBjb2RlIi4N
Cj4+IEZ1bmN0aW9ucyB0aGF0IGFyZSBub24tcmV0dXJuaW5nIGFuZCBhcmUgbm90IGV4cGxpY2l0
bHkgYW5ub3RhdGVkIHdpdGgNCj4+IHRoZSAnbm9yZXR1cm4nIGF0dHJpYnV0ZSBhcmUgY29uc2lk
ZXJlZCBhIHZpb2xhdGlvbiBvZiB0aGlzIHJ1bGUuDQo+Pg0KPj4gSW4gY2VydGFpbiBjYXNlcywg
c29tZSBmdW5jdGlvbnMgbWlnaHQgYmUgbm9uLXJldHVybmluZyBpbiBzcGVjaWZpYyBidWlsZA0K
Pj4gY29uZmlndXJhdGlvbnMgZHVlIHRvIGNhbGwgdG8gJ19fYnVpbHRpbl91bnJlYWNoYWJsZSgp
JyBpbiB0aGUgZXhwYW5zaW9uDQo+PiBvZiB0aGUgbWFjcm8gJ0JVRygpJzoNCj4+IMKgLSBmdW5j
dGlvbnMgJ2dpY3YzX2RvX0xQSSgpJyBhbmQgJ2dpY3YzX2l0c19zZXR1cF9jb2xsZWN0aW9uKCkn
IHdoZW4gdGhlDQo+PiBjb25maWcgQ09ORklHX0hBU19JVFMgaXMgbm90IGRlZmluZWQsIGl0IGlz
IGludGVudGlvbmFsbHkgdXNlZCB0byBjYXRjaA0KPj4gYW5kIHByZXZlbnQgYW55IHVuaW50ZW5k
ZWQgZXhlY3V0aW9uIG9mIGNvZGUgdGhhdCBzaG91bGQgb25seSBydW4gd2hlbg0KPj4gSVRTIGlz
IGF2YWlsYWJsZTsNCj4+IMKgLSBmdW5jdGlvbiAncHJlcGFyZV9hY3BpKCknIHdoZW4gdGhlIGNv
bmZpZyBDT05GSUdfQUNQSSBpcyBub3QgZGVmaW5lZCwNCj4+IHRvIHRyaWdnZXIgYW4gZXJyb3Ig
aWYgQUNQSS1yZWxhdGVkIGZlYXR1cmVzIGFyZSB1c2VkIGluY29ycmVjdGx5Lg0KPj4NCj4+IFRv
IGFjY291bnQgZm9yIHRoYXQgaW4gc3BlY2lmaWMgYnVpbGRzLCB1cGRhdGUgdGhlIEVDTEFJUiBj
b25maWd1cmF0aW9uDQo+PiB0byBkZXZpYXRlIHRoZXNlIHZpb2xhdGlvbnMuIFVwZGF0ZSBkZXZp
YXRpb25zLnJzdCBmaWxlIGFjY29yZGluZ2x5Lg0KPj4gTm8gZnVuY3Rpb25hbCBjaGFuZ2VzLg0K
Pj4NCj4+IFNpZ25lZC1vZmYtYnk6IERteXRybyBQcm9rb3BjaHVrIDxkbXl0cm9fcHJva29wY2h1
azFAZXBhbS5jb20+DQo+PiAtLS0NCj4+IFRlc3QgQ0kgcGlwZWxpbmU6DQo+PiBodHRwczovL2V1
cjAxLnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz8gDQo+PiB1cmw9aHR0cHMlM0El
MkYlMkZnaXRsYWIuY29tJTJGeGVuLSANCj4+IHByb2plY3QlMkZwZW9wbGUlMkZkaW1hcHJrcDRr
JTJGeGVuJTJGLSANCj4+ICUyRnBpcGVsaW5lcyUyRjIwMDA3Mzg2ODImZGF0YT0wNSU3QzAyJTdD
ZG15dHJvX3Byb2tvcGNodWsxJTQwZXBhbS5jb20lN0MwODQzN2EwNGY2OTA0MzZhYmNlMTA4ZGRl
MzIzMTYwZCU3Q2I0MWI3MmQwNGU5ZjRjMjY4YTY5Zjk0OWYzNjdjOTFkJTdDMSU3QzAlN0M2Mzg5
MTY0NjIwMjE5NDEwMjMlN0NVbmtub3duJTdDVFdGcGJHWnNiM2Q4ZXlKRmJYQjBlVTFoY0draU9u
UnlkV1VzSWxZaU9pSXdMakF1TURBd01DSXNJbEFpT2lKWGFXNHpNaUlzSWtGT0lqb2lUV0ZwYkNJ
c0lsZFVJam95ZlElM0QlM0QlN0MwJTdDJTdDJTdDJnNkYXRhPU1WNmx1VGV0aDNyb3NpczFkQzJr
dlZ2R0JFVlNrT3p5UUdlOUhEV2Z0YU0lM0QmcmVzZXJ2ZWQ9MA0KPj4gLS0tDQo+IA0KPiBodHRw
czovL2V1cjAxLnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz8gDQo+IHVybD1odHRw
cyUzQSUyRiUyRmdpdGxhYi5jb20lMkZ4ZW4tIA0KPiBwcm9qZWN0JTJGcGVvcGxlJTJGZGltYXBy
a3A0ayUyRnhlbiUyRi0gDQo+ICUyRmpvYnMlMkYxMTExOTIxMjk5NCZkYXRhPTA1JTdDMDIlN0Nk
bXl0cm9fcHJva29wY2h1azElNDBlcGFtLmNvbSU3QzA4NDM3YTA0ZjY5MDQzNmFiY2UxMDhkZGUz
MjMxNjBkJTdDYjQxYjcyZDA0ZTlmNGMyNjhhNjlmOTQ5ZjM2N2M5MWQlN0MxJTdDMCU3QzYzODkx
NjQ2MjAyMTk3Mjk2NSU3Q1Vua25vd24lN0NUV0ZwYkdac2IzZDhleUpGYlhCMGVVMWhjR2tpT25S
eWRXVXNJbFlpT2lJd0xqQXVNREF3TUNJc0lsQWlPaUpYYVc0ek1pSXNJa0ZPSWpvaVRXRnBiQ0lz
SWxkVUlqb3lmUSUzRCUzRCU3QzAlN0MlN0MlN0Mmc2RhdGE9SjFHTmRySUcxQXBxSU9xc1N5eWdT
WmJVJTJCM0glMkJGdkhaS3h0Qk1nejJDWFklM0QmcmVzZXJ2ZWQ9MA0KPiANCj4gQnVpbGQgZmFp
bHVyZSBoZXJlDQoNClJlc3RhcnRlZCB0aGUgZmFpbGVkIGpvYi4gRmluaXNoZWQgc3VjY2Vzc2Z1
bGx5Lg0KDQpEbXl0cm8uDQo+IA0KPj4gwqBhdXRvbWF0aW9uL2VjbGFpcl9hbmFseXNpcy9FQ0xB
SVIvZGV2aWF0aW9ucy5lY2wgfCAxMSArKysrKysrKysrKw0KPj4gwqBkb2NzL21pc3JhL2Rldmlh
dGlvbnMucnN0wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8
IDEzICsrKysrKysrKysrKysNCj4+IMKgMiBmaWxlcyBjaGFuZ2VkLCAyNCBpbnNlcnRpb25zKCsp
DQo+Pg0KPj4gZGlmZiAtLWdpdCBhL2F1dG9tYXRpb24vZWNsYWlyX2FuYWx5c2lzL0VDTEFJUi9k
ZXZpYXRpb25zLmVjbCBiLyANCj4+IGF1dG9tYXRpb24vZWNsYWlyX2FuYWx5c2lzL0VDTEFJUi9k
ZXZpYXRpb25zLmVjbA0KPj4gaW5kZXggN2YzZmQzNWEzMy4uMzM2YWVjNThjMiAxMDA2NDQNCj4+
IC0tLSBhL2F1dG9tYXRpb24vZWNsYWlyX2FuYWx5c2lzL0VDTEFJUi9kZXZpYXRpb25zLmVjbA0K
Pj4gKysrIGIvYXV0b21hdGlvbi9lY2xhaXJfYW5hbHlzaXMvRUNMQUlSL2RldmlhdGlvbnMuZWNs
DQo+PiBAQCAtNDEsNiArNDEsMTcgQEAgbm90IGV4ZWN1dGFibGUsIGFuZCB0aGVyZWZvcmUgaXQg
aXMgc2FmZSBmb3IgdGhlbSANCj4+IHRvIGJlIHVucmVhY2hhYmxlLiINCj4+DQo+PiAtIA0KPj4g
Y2FsbF9wcm9wZXJ0aWVzKz17Im5hbWUoX19idWlsdGluX3VucmVhY2hhYmxlKSYmc3RtdChiZWdp
bihhbnlfZXhwKG1hY3JvKG5hbWUoQVNTRVJUX1VOUkVBQ0hBQkxFKSkpKSkiLCB7Im5vcmV0dXJu
KGZhbHNlKSJ9fQ0KPj4gwqAtZG9jX2VuZA0KPj4NCj4+ICstZG9jX2JlZ2luPSJUaGUgJ0JVRygp
JyBtYWNybyBpcyBpbnRlbnRpb25hbGx5IHVzZWQgaW4gdGhlIA0KPj4gJ3ByZXBhcmVfYWNwaSgp
JyBmdW5jdGlvbiBpbiBzcGVjaWZpYyBidWlsZCBjb25maWd1cmF0aW9uDQo+PiArKHdoZW4gdGhl
IGNvbmZpZyBDT05GSUdfQUNQSSBpcyBub3QgZGVmaW5lZCkgdG8gdHJpZ2dlciBhbiBlcnJvciBp
ZiANCj4+IEFDUEktcmVsYXRlZCBmZWF0dXJlcyBhcmUgdXNlZCBpbmNvcnJlY3RseS4iDQo+PiAr
LWNvbmZpZz1NQzNBMi5SMi4xLHJlcG9ydHMrPXtkZWxpYmVyYXRlLCAiYW55X2FyZWEoYW55X2xv
YyhmaWxlKF54ZW4vIA0KPj4gYXJjaC9hcm0vaW5jbHVkZS9hc20vZG9tYWluX2J1aWxkXFwuaCQp
KSYmY29udGV4dChuYW1lKHByZXBhcmVfYWNwaSkpKSJ9DQo+PiArLWRvY19lbmQNCj4+ICsNCj4+
ICstZG9jX2JlZ2luPSJUaGUgJ0JVRygpJyBtYWNybyBpcyBpbnRlbnRpb25hbGx5IHVzZWQgaW4g
DQo+PiAnZ2ljdjNfZG9fTFBJJygpIGFuZCAnZ2ljdjNfaXRzX3NldHVwX2NvbGxlY3Rpb24oKScg
ZnVuY3Rpb25zDQo+PiAraW4gc3BlY2lmaWMgYnVpbGQgY29uZmlndXJhdGlvbiAod2hlbiB0aGUg
Y29uZmlnIENPTkZJR19IQVNfSVRTIGlzIA0KPj4gbm90IGRlZmluZWQpIHRvIGNhdGNoIGFuZCBw
cmV2ZW50IGFueSB1bmludGVuZGVkDQo+PiArZXhlY3V0aW9uIG9mIGNvZGUgdGhhdCBzaG91bGQg
b25seSBydW4gd2hlbiBJVFMgaXMgYXZhaWxhYmxlLiINCj4+ICstY29uZmlnPU1DM0EyLlIyLjEs
cmVwb3J0cys9e2RlbGliZXJhdGUsICJhbnlfYXJlYShhbnlfbG9jKGZpbGUoXnhlbi8gDQo+PiBh
cmNoL2FybS9pbmNsdWRlL2FzbS9naWNfdjNfaXRzXFwuaCQpKSYmY29udGV4dChuYW1lKGdpY3Yz
X2RvX0xQSXx8IA0KPj4gZ2ljdjNfaXRzX3NldHVwX2NvbGxlY3Rpb24pKSkifQ0KPj4gKy1kb2Nf
ZW5kDQo+PiArDQo+PiDCoC1kb2NfYmVnaW49IlByb3ZpbmcgY29tcGxpYW5jZSB3aXRoIHJlc3Bl
Y3QgdG8gUnVsZSAyLjIgaXMgZ2VuZXJhbGx5IA0KPj4gaW1wb3NzaWJsZToNCj4+IMKgc2VlIGh0
dHBzOi8vZXVyMDEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vPyANCj4+IHVybD1o
dHRwcyUzQSUyRiUyRmFyeGl2Lm9yZyUyRmFicyUyRjIyMTIuMTM5MzMmZGF0YT0wNSU3QzAyJTdD
ZG15dHJvX3Byb2tvcGNodWsxJTQwZXBhbS5jb20lN0MwODQzN2EwNGY2OTA0MzZhYmNlMTA4ZGRl
MzIzMTYwZCU3Q2I0MWI3MmQwNGU5ZjRjMjY4YTY5Zjk0OWYzNjdjOTFkJTdDMSU3QzAlN0M2Mzg5
MTY0NjIwMjE5ODk4MjElN0NVbmtub3duJTdDVFdGcGJHWnNiM2Q4ZXlKRmJYQjBlVTFoY0draU9u
UnlkV1VzSWxZaU9pSXdMakF1TURBd01DSXNJbEFpT2lKWGFXNHpNaUlzSWtGT0lqb2lUV0ZwYkNJ
c0lsZFVJam95ZlElM0QlM0QlN0MwJTdDJTdDJTdDJnNkYXRhPU4yaTJ3aWdVM29sOE0yRHNZaGI4
RGN3ckl2eVlFaGxiUXJsYU1sWW9XSnclM0QmcmVzZXJ2ZWQ9MCBmb3IgZGV0YWlscy4gTW9yZW92
ZXIsIHBlZXIgcmV2aWV3IGdpdmVzIHVzDQo+PiDCoGNvbmZpZGVuY2UgdGhhdCBubyBldmlkZW5j
ZSBvZiBlcnJvcnMgaW4gdGhlIHByb2dyYW0ncyBsb2dpYyBoYXMgYmVlbiANCj4+IG1pc3NlZCBk
dWUNCj4+IGRpZmYgLS1naXQgYS9kb2NzL21pc3JhL2RldmlhdGlvbnMucnN0IGIvZG9jcy9taXNy
YS9kZXZpYXRpb25zLnJzdA0KPj4gaW5kZXggMjExOTA2NjUzMS4uOTZlYjIwMjUwMiAxMDA2NDQN
Cj4+IC0tLSBhL2RvY3MvbWlzcmEvZGV2aWF0aW9ucy5yc3QNCj4+ICsrKyBiL2RvY3MvbWlzcmEv
ZGV2aWF0aW9ucy5yc3QNCj4+IEBAIC05Nyw2ICs5NywxOSBAQCBEZXZpYXRpb25zIHJlbGF0ZWQg
dG8gTUlTUkEgQzoyMDEyIFJ1bGVzOg0KPj4gwqDCoMKgwqDCoMKgwqAgWGVuIGV4cGVjdHMgZGV2
ZWxvcGVycyB0byBlbnN1cmUgY29kZSByZW1haW5zIHNhZmUgYW5kIA0KPj4gcmVsaWFibGUgaW4g
YnVpbGRzLA0KPj4gwqDCoMKgwqDCoMKgwqAgZXZlbiB3aGVuIGRlYnVnLW9ubHkgYXNzZXJ0aW9u
cyBsaWtlIGBBU1NFUlRfVU5SRUFDSEFCTEUoKSBhcmUgDQo+PiByZW1vdmVkLg0KPj4NCj4+ICvC
oMKgICogLSBSMi4xDQo+PiArwqDCoMKgwqAgLSBUaGUgJ0JVRygpJyBtYWNybyBpcyBpbnRlbnRp
b25hbGx5IHVzZWQgaW4gdGhlIA0KPj4gJ3ByZXBhcmVfYWNwaSgpJyBmdW5jdGlvbg0KPj4gK8Kg
wqDCoMKgwqDCoCBpbiBzcGVjaWZpYyBidWlsZCBjb25maWd1cmF0aW9uICh3aGVuIHRoZSBjb25m
aWcgQ09ORklHX0FDUEkgDQo+PiBpcyBub3QNCj4+ICvCoMKgwqDCoMKgwqAgZGVmaW5lZCkgdG8g
dHJpZ2dlciBhbiBlcnJvciBpZiBBQ1BJLXJlbGF0ZWQgZmVhdHVyZXMgYXJlIHVzZWQgDQo+PiBp
bmNvcnJlY3RseS4NCj4+ICvCoMKgwqDCoCAtIFRhZ2dlZCBhcyBgZGVsaWJlcmF0ZWAgZm9yIEVD
TEFJUi4NCj4+ICsNCj4+ICvCoMKgICogLSBSMi4xDQo+PiArwqDCoMKgwqAgLSBUaGUgJ0JVRygp
JyBtYWNybyBpcyBpbnRlbnRpb25hbGx5IHVzZWQgaW4gJ2dpY3YzX2RvX0xQSScoKSBhbmQNCj4+
ICvCoMKgwqDCoMKgwqAgJ2dpY3YzX2l0c19zZXR1cF9jb2xsZWN0aW9uKCknIGZ1bmN0aW9ucyBp
biBzcGVjaWZpYyBidWlsZCANCj4+IGNvbmZpZ3VyYXRpb24NCj4+ICvCoMKgwqDCoMKgwqAgKHdo
ZW4gdGhlIGNvbmZpZyBDT05GSUdfSEFTX0lUUyBpcyBub3QgZGVmaW5lZCkgdG8gY2F0Y2ggYW5k
IA0KPj4gcHJldmVudCBhbnkNCj4+ICvCoMKgwqDCoMKgwqAgdW5pbnRlbmRlZCBleGVjdXRpb24g
b2YgY29kZSB0aGF0IHNob3VsZCBvbmx5IHJ1biB3aGVuIElUUyBpcyANCj4+IGF2YWlsYWJsZS4N
Cj4+ICvCoMKgwqDCoCAtIFRhZ2dlZCBhcyBgZGVsaWJlcmF0ZWAgZm9yIEVDTEFJUi4NCj4+ICsN
Cj4+IMKgwqDCoCAqIC0gUjIuMg0KPj4gwqDCoMKgwqDCoCAtIFByb3ZpbmcgY29tcGxpYW5jZSB3
aXRoIHJlc3BlY3QgdG8gUnVsZSAyLjIgaXMgZ2VuZXJhbGx5IA0KPj4gaW1wb3NzaWJsZToNCj4+
IMKgwqDCoMKgwqDCoMKgIHNlZSBgPGh0dHBzOi8vZXVyMDEuc2FmZWxpbmtzLnByb3RlY3Rpb24u
b3V0bG9vay5jb20vPyANCj4+IHVybD1odHRwcyUzQSUyRiUyRmFyeGl2Lm9yZyUyRmFicyUyRjIy
MTIuMTM5MzMmZGF0YT0wNSU3QzAyJTdDZG15dHJvX3Byb2tvcGNodWsxJTQwZXBhbS5jb20lN0Mw
ODQzN2EwNGY2OTA0MzZhYmNlMTA4ZGRlMzIzMTYwZCU3Q2I0MWI3MmQwNGU5ZjRjMjY4YTY5Zjk0
OWYzNjdjOTFkJTdDMSU3QzAlN0M2Mzg5MTY0NjIwMjIwMDY2NjYlN0NVbmtub3duJTdDVFdGcGJH
WnNiM2Q4ZXlKRmJYQjBlVTFoY0draU9uUnlkV1VzSWxZaU9pSXdMakF1TURBd01DSXNJbEFpT2lK
WGFXNHpNaUlzSWtGT0lqb2lUV0ZwYkNJc0lsZFVJam95ZlElM0QlM0QlN0MwJTdDJTdDJTdDJnNk
YXRhPWZUMUlNMGJuc3Q5JTJGa0oyckk3R2lNUmtiV0pWRyUyRiUyRkQlMkI4MnozUURWeUQ5cyUz
RCZyZXNlcnZlZD0wPmBfIGZvciBkZXRhaWxzLiBNb3Jlb3ZlciwgcGVlcg0KPiANCg==


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 10:07:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 10:07:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1092880.1448487 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqU6h-0002iq-Kp; Mon, 25 Aug 2025 10:07:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1092880.1448487; Mon, 25 Aug 2025 10:07: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 1uqU6h-0002ij-Gw; Mon, 25 Aug 2025 10:07:19 +0000
Received: by outflank-mailman (input) for mailman id 1092880;
 Mon, 25 Aug 2025 10:07:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=J9Dq=3F=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqU6g-0002id-Lg
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 10:07:18 +0000
Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com
 [2a00:1450:4864:20::62f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 47206259-819b-11f0-b898-0df219b8e170;
 Mon, 25 Aug 2025 12:07:16 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-afcb7a0442bso678058366b.2
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 03:07: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
 a640c23a62f3a-afe49379ff9sm530776966b.116.2025.08.25.03.07.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 03:07: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>
X-Inumbo-ID: 47206259-819b-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756116436; x=1756721236; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=V3CitqTDuAeG6gG5hX3Frju10e6F4ZZ/zKw4aozPcwo=;
        b=gv/4xZeaSuA9ASveNgEoEOoTywldUQShzEWn0kEV2onOBg9k70Xf/4RIWZBP2D/jw/
         o61ZTzVIluvVfDOXQGKURUnVtbJf83LLVeTgZ3fw3Sn2Cx0uXDpCmypZdIyppLZdedqW
         ZU7BNwvm9Ejn3mKaCZ9WbNx+AhXwGTpHojSn3Fh8qHdDXQad61Hu7c/IcevJGwc1ztQm
         xcVyiUj1bUBv7fVOHGmx7AbK/TEMbWx6xty7cmA2AUlGcnhEwlAhtAxt9mvF9zS4G7oK
         Jr0IL/8eqBpJ7HemvjnGzUDYhjCy/UB0BFuSDLqCee/65VYO0oYgBYNJbUS6df7gOdp+
         BlBw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756116436; x=1756721236;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=V3CitqTDuAeG6gG5hX3Frju10e6F4ZZ/zKw4aozPcwo=;
        b=DBWb4R6MZbagMSNMXkF4KPYgpfx86JxXmuP2dyCArnf0AGNUCnAUTZ7/btt9PbqyBq
         SuQu+XVFrdbWsWnjMeDnTh5/55aLk/PHF6BdrAP7PE+jj2mahBgIyYl9uMO9d6YUX1NN
         2HnWXxvKYeVH2i7B/oFcNqNApfMVEUto80/scEEt36bR67HZTbV1wm47Ec+w9+nhUyC6
         YrLwsrdBSiPf6dKle14VqdIZdGXimh8bbRKwR5Ppb4i8wy0al2sDwhNP7sD+Ps1LduY/
         MuocYB1grB/032Fa4UPnxVJZLw0csiyz7rDknlCbkO4rF6cZYrwP11rhTziOuLY1HUe6
         vf0A==
X-Forwarded-Encrypted: i=1; AJvYcCW/6gd2nz6ZImWdnHuotJrVxhueHanIx3bP3givBRr3kAsfj1i9CyV96b3SgJ8TacJos/9Aox/dIYI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwO7mZxVj7n4+fmsPFBXJGsC7aVA1AIlFH8DbM8+tHuKx8Hu5Qs
	nBNRKB2GBa/qVX4XSIrF1Rme1q5o7aT+N4Rf7zUgpSGyi5wvHY1JJpO3BT8zomT75w==
X-Gm-Gg: ASbGnctIWiQ7AztD2Xeh8pDAVQn2z+ozH1krdjb9j/qi90Ya1hBm2R6rHoFbgpJbynq
	hlh7DFOY15cTogMqr0LjRslKFM691x47OxLVXua3XUKHWrtHRIGyCXNT5a5LflvSL7qeCK0gmLP
	C06/kj2vhnPDiFjCm6oK6XkklhnmI0upUYEtt19+Dl77gU79fuO2CkPr2cYqSfbV0lC1+kcjzfk
	eCZSQt6g7TO5Uqjj7YYmkHZV9IdqQ3jsmO/a4ZXc9Cmm1Jdr/To0vi52SdDm3DkhJdTQeRJnTmP
	ubAJBtKiaDfGxa3jCy1AeOp+YI5x2yOcN/NWVDPhe63gDqtLdkd4gPagETENr92Yt9I3KPm+xYQ
	P+UHrGxZpc/xydge6AsMrVt6fNeecpkiI/jIJP8MJRNujCBPImCMVpc5gxlGlw9irBJfanD9DeK
	K2lLAk/Ls=
X-Google-Smtp-Source: AGHT+IHv752wWKxVrSlHOSk1fhBwKMfsgWdykYzlrPmm6DEhHBMhlVTpZbgj9wCPpJWMsIFimg6aVw==
X-Received: by 2002:a17:907:1b1e:b0:af9:10c7:59b6 with SMTP id a640c23a62f3a-afe295d2e67mr1068710366b.32.1756116433423;
        Mon, 25 Aug 2025 03:07:13 -0700 (PDT)
Message-ID: <60022d5c-1a9f-4a6d-8df2-bca57cefcf59@suse.com>
Date: Mon, 25 Aug 2025 12:07:14 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] misra: add deviation of Rule 2.1 for BUG() macro
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <f7b4112aad84162c25f96a9d6db43a0c2ba85daa.1756046023.git.dmytro_prokopchuk1@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <f7b4112aad84162c25f96a9d6db43a0c2ba85daa.1756046023.git.dmytro_prokopchuk1@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.08.2025 16:56, Dmytro Prokopchuk1 wrote:
> --- a/docs/misra/deviations.rst
> +++ b/docs/misra/deviations.rst
> @@ -97,6 +97,19 @@ Deviations related to MISRA C:2012 Rules:
>         Xen expects developers to ensure code remains safe and reliable in builds,
>         even when debug-only assertions like `ASSERT_UNREACHABLE() are removed.
>  
> +   * - R2.1
> +     - The 'BUG()' macro is intentionally used in the 'prepare_acpi()' function
> +       in specific build configuration (when the config CONFIG_ACPI is not
> +       defined) to trigger an error if ACPI-related features are used incorrectly.
> +     - Tagged as `deliberate` for ECLAIR.

With

#define acpi_disabled true

in xen/acpi.h I don't see why we even have that inline stub. When it's dropped
and the declaration left in place without #ifdef CONFIG_ACPI around it, the
compiler will DCE the code (much like we arrange for in many other places). No
deviation needed then.

If such a deviation was to be added, it would need disambiguating. A function
of the given name could appear in x86 as well. That wouldn't be covered by the
Eclair config then, but it would be covered by the text here.

> +   * - R2.1
> +     - The 'BUG()' macro is intentionally used in 'gicv3_do_LPI'() and
> +       'gicv3_its_setup_collection()' functions in specific build configuration
> +       (when the config CONFIG_HAS_ITS is not defined) to catch and prevent any
> +       unintended execution of code that should only run when ITS is available.
> +     - Tagged as `deliberate` for ECLAIR.

I didn't look at this, but I would very much hope that something similar could
be done there as well.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 10:12:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 10:12:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1092900.1448497 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqUBQ-0004Ye-Am; Mon, 25 Aug 2025 10:12:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1092900.1448497; Mon, 25 Aug 2025 10:12:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqUBQ-0004YX-6o; Mon, 25 Aug 2025 10:12:12 +0000
Received: by outflank-mailman (input) for mailman id 1092900;
 Mon, 25 Aug 2025 10:12:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=J9Dq=3F=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqUBO-0004YQ-Bv
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 10:12:10 +0000
Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com
 [2a00:1450:4864:20::536])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f500af64-819b-11f0-b898-0df219b8e170;
 Mon, 25 Aug 2025 12:12:08 +0200 (CEST)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-61c21e50168so3474977a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 03:12: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
 4fb4d7f45d1cf-61c3174f5a4sm4741713a12.53.2025.08.25.03.12.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 03:12: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>
X-Inumbo-ID: f500af64-819b-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756116727; x=1756721527; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=RsZVC43IunFvyWbxaxDI9aVvWD2XCJWsTh0ftqEnnAg=;
        b=FFOoFgLXDwpd2I8X9NDp+9gyHjtCUFbO71203szUYfmHx4E5BIWJ7QoiSdn97IWDs5
         zcM26+GrqB/Ff+K9uzmM94KoPOWb/o7fC4xtn4I+GaL4+RkdfihkhOpYpIoEQQbKOInn
         Q0YNic8IQUCfrvfsO0PVVdGb+KcFAjRdhM8+OWaR4O7xWqHCI6S9Wa4enor998enZ40H
         39J6Zox6ouiZtxyvFUAq5/9NyNovyy74DOqzTfg5XqmrFxoc0InOUX0SIGyLuw+gSQ9u
         UfAia63sw7PsromgjY6X4SvzraGGeA0KgKynNXZuhB+KYg/BaurXkxoZJZHhds1PaK38
         QCnw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756116727; x=1756721527;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RsZVC43IunFvyWbxaxDI9aVvWD2XCJWsTh0ftqEnnAg=;
        b=S64n5uHpgHv87Q+F1Id0WUoyqVgmo0lZvQtpO2TtqlYlK6FQddfVBxKUiGH8MqV7gj
         pSPnqZtWRc5UMvAZijD3vjac8Tegs5zB69xpIiuf2Yukr+SO9BKNjujSDoONDSEUT2kZ
         0mX0Nv+aJSFR/r9C4f7oi5/zelkeOEqDdCgZmXtfB41yiX3jhnJjEHKSdfeVnC3zf8v1
         omTrA1f6w4EB+A3vtEZZJJ06HP16z5TRsTy/BOJ2IDkjXpNT4anNoHd5/bQJnVoQyZSa
         NxK91SLsuv0H1vmPS6ANDdZ+xfYr+76YVHSmLkM1QAd6i1D7zgrtVpLZOX7pkUEYuVlu
         sPgA==
X-Forwarded-Encrypted: i=1; AJvYcCVJxlhTwVOB9ZT8S5B8IN1UExo2P+vagkSvgs2Iot2BxwlS7e4JC4mZTb8pFVZjEtyHYdQpIlDJLTI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YynjkMp8uHhf2QaJwGl5gz+UqLG9VDJBgkVQWRzH/FAxDpseBWJ
	kSURdUucoWAjcU0o4tcT6sS6yWJwCcI0rabOBIch5+goCNI8RtIIFafGrPre78tJBA==
X-Gm-Gg: ASbGnctnHAA2c4bYl15TeJksaq2SLBSEyRYYqtJvjEsLwmJ09Wo0ZWmTl2KX81JInpP
	cqklg/4CA0tEXcISUno/LeoEtADaRA3wSBTRWQO/KSFoiTFW+eSMgMZQWCmUNjdhUw1cFXlEWH7
	AzbRgXUBsoEnhpOSbNTzsXgBtH6YIFoW0knzM2fWx4Nliy+hIMeR3nq7xOQ+utwstWzJfGmFmBe
	2xjer3xsJntqNB0T5soeO+BQcTAI56JjZq/jGI69GDW60aP7q1UU5LNOMll3GtQNUr4PwaC2TCU
	E43DV7Plm7GrN3en5PF3jRURbPst67Byz2/lTtghsLxTz/zp59wEa2KD0Vl5M/3RHgNaiRX0chZ
	Q/QChghoZtEJpVsKDdlSNdR6kQ57F/XAw5xE2ZDIkXsjDjBOcqwgvorImVTUPORHM9YisRYllNA
	msU88yMeE=
X-Google-Smtp-Source: AGHT+IGHTMpzgCFmUauGDb8sL4/O+l2sAPc/6iQvCBVdedaN947fXOckR9MwAyWOoa9htkSy7DI+Rg==
X-Received: by 2002:a05:6402:51ce:b0:61c:35c0:87c6 with SMTP id 4fb4d7f45d1cf-61c35c09034mr5776489a12.12.1756116727295;
        Mon, 25 Aug 2025 03:12:07 -0700 (PDT)
Message-ID: <b7a3ae83-3136-4337-b45b-c075dcb212c4@suse.com>
Date: Mon, 25 Aug 2025 12:12:08 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4] common/efi: fix Rule 2.1 violation in read_file()
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <1e5a31fe588f58bd2b5c7835773fdf7899ff5511.1756047981.git.dmytro_prokopchuk1@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <1e5a31fe588f58bd2b5c7835773fdf7899ff5511.1756047981.git.dmytro_prokopchuk1@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.08.2025 17:10, Dmytro Prokopchuk1 wrote:
> MISRA C Rule 2.1 states: "A project shall not contain unreachable code."
> 
> The return statements in the 'read_file()' function is unreachable due

Especially due to the (imo wrong) use of plural, this continues to be
ambiguous. I'd suggest switching to singular and inserting "final" or
"main". Happy to adjust while committing, provided you agree.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 10:23:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 10:23:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1092909.1448507 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqUMF-0006Ks-By; Mon, 25 Aug 2025 10:23:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1092909.1448507; Mon, 25 Aug 2025 10:23: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 1uqUMF-0006Kl-8c; Mon, 25 Aug 2025 10:23:23 +0000
Received: by outflank-mailman (input) for mailman id 1092909;
 Mon, 25 Aug 2025 10:23:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=J9Dq=3F=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqUMD-0006Kf-W6
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 10:23:21 +0000
Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com
 [2a00:1450:4864:20::530])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 855ce52b-819d-11f0-b898-0df219b8e170;
 Mon, 25 Aug 2025 12:23:19 +0200 (CEST)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-6188b6f501cso4522355a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 03:23: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
 a640c23a62f3a-afe5aa4e6afsm447008466b.45.2025.08.25.03.23.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 03:23: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>
X-Inumbo-ID: 855ce52b-819d-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756117399; x=1756722199; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=XuZ9Raf+CthEKeLzs0DoWfqs/UVEOwwOXsKBpgkT5Uo=;
        b=ZCgQ7Yoc729G/EwIectbRTSAuKOAbOxDzkAkvW0x5Ec/9C1Y3rOYTVszSqIRO0zMH5
         vKu+BJetiXTSlzbp+p6t24nAK6fVIuYAhPAg/Pj33nWdc4SsbE3virKnqR0tgjWFS8+0
         QTIHXD8nbtr739Cgt2W4T4L/OByluVZsXF+0ITXbAibDjAByy34Jj+AlPrM6ByeuqBtE
         hxdCcEdDyV97o4QRm/PuINje+4WkhMhP7kFZo8FKpYYi2aVdHSEWyawzqo1CrdXgO5o/
         ctWQjQrET3UBiFDgGbxK5cjDz5r+3wZA91X08xnBr++2pbcRlVD/BfsKCslP2atO6nlE
         rNhA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756117399; x=1756722199;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XuZ9Raf+CthEKeLzs0DoWfqs/UVEOwwOXsKBpgkT5Uo=;
        b=psJ6ENIAIzg5lIyBJdEXP6sM8/YJ9CBMJvxqDa52Y1SH2LVBFllkMCIlR7h0RP8pUQ
         NiW23xhTKhLDZnkIaejM9ObWPqSz/feEtjR9XILZqjQvZeWDygdDZoh76YTs/V+N7I/F
         mn5ZQr3qJWxg4Kua3GSk7tNsr+JLwzn/OA856BMXogltLRb78fi02ZGhJ7pCM3sXoXoJ
         0k22CtaJB7whxQU3bnS3SIIk/C4rkCraNtXQdUJDeX6xLN7pGXFMdvWTmiLxaLKl0mRn
         3E4zagj3eDUy80mSbTnIQRLcdtI5JVhZ0kb0ZZrRZ/ITv1Hm9AucbbaWcUjYTkHZOCLB
         eHaQ==
X-Forwarded-Encrypted: i=1; AJvYcCUBpEsRQbDywdSgN1J+MNLyfr50c2ys9MnjeNZG4lgjZun4E2CYkgFOaeWCmOeZbKs/lKjQEOLJbQ8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyYPVbtgGRkduoLOVuuK1Lcc17jr7Mh2ZTCam29ZXwXU9PLrOjq
	7fythVULBksByAWSlp3N6wLEC7Io01gnxB1W6WRcHdNgnzWHolquke1LD+itr0sqWw==
X-Gm-Gg: ASbGnctRxhTy6ryEPadwDb7TOs169XZzeu+TudECceRQU5YLSi02oUgH48xftQaauHz
	SsR64byf2zc5OKCzP5AYZcjtHRYlR3YDYu90ENRW0m2yOVa8pFkxM4Fx5paMcHRTKXHwcylEw+J
	/4POKbUyX8+5WWRwRApQP0r3EGA6B4ImIBQ7Lu0YCGDiqX22IB4H9Uc7Cu8CTWtw4KuDJsh9U+m
	45x2fHqCsU+5yoeW7EOYd8Cvwjn0gk4seceyEv3n5TLvLaav/aM0Bme9D2YczfXrq0dZv+ybTAd
	fDQW6Dn9yR9mRbg1yDP8AskNYOOCuxYHUkdKpVh6NbQGKPgdhV8Pbm7KsD3Cvj+E2nYxupu1rto
	oWb40vtMFlkO3kvvSPDSbMtyEEbRL50XDHSMsoTm5uRWBPhyJsRGP7aVVWzMsA2vABvq2A94lQh
	ziiF7k4s4=
X-Google-Smtp-Source: AGHT+IGI53muZal7w2v/CjKK2DGhaWKXV45KhP+n2rrf2CFAb17vFsVUVAmXcgHnmU+rtV+VGN4dIg==
X-Received: by 2002:a17:907:9715:b0:afe:7575:df07 with SMTP id a640c23a62f3a-afe7575e705mr322306166b.13.1756117399048;
        Mon, 25 Aug 2025 03:23:19 -0700 (PDT)
Message-ID: <21268b36-ca49-4628-835e-1708ad313946@suse.com>
Date: Mon, 25 Aug 2025 12:23:18 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] misra: add deviation for MISRA C Rule 11.3
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Cc: Doug Goldstein <cardoe@cardoe.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>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <859503540c6b7447f13365c2b70b386c2975edd0.1756056144.git.dmytro_prokopchuk1@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <859503540c6b7447f13365c2b70b386c2975edd0.1756056144.git.dmytro_prokopchuk1@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.08.2025 19:27, Dmytro Prokopchuk1 wrote:
> MISRA C Rule 11.3 states: "A cast shall not be performed between a pointer
> to object type and a pointer to a different object type."
> 
> Violations of this rule arise due to the 'container_of()' macro, which casts
> a member of a structure to its containing structure:
>     container_of(ptr, type, member) ({                             \
>            typeof_field(type, member) *__mptr = (ptr);             \
>            (type *)( (char *)__mptr - offsetof(type,member) );})
> 
> The 'container_of()' macro is safe because it relies on the standardized and
> well-defined 'offsetof()' macro to calculate the memory address of the
> containing structure, while assuming proper alignment and ensuring no
> undefined behavior, provided that the input pointer is valid and points to
> the specified member.

I may have said so before: This all reads okay to me, just that I'm unsure
it would actually be convincing to an assessor. The "provided that ..." is
a pretty strong requirement, which isn't overly hard to get wrong. Stefano,
Nicola - what's your take here?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 10:26:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 10:26:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1092919.1448516 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqUP1-0006tX-P8; Mon, 25 Aug 2025 10:26:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1092919.1448516; Mon, 25 Aug 2025 10:26: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 1uqUP1-0006tQ-MO; Mon, 25 Aug 2025 10:26:15 +0000
Received: by outflank-mailman (input) for mailman id 1092919;
 Mon, 25 Aug 2025 10:26:14 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/bS3=3F=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1uqUP0-0006tI-IN
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 10:26:14 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e9d02095-819d-11f0-a32c-13f23c93f187;
 Mon, 25 Aug 2025 12:26:08 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by AS8PR03MB7287.eurprd03.prod.outlook.com (2603:10a6:20b:2e9::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Mon, 25 Aug
 2025 10:26:06 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9052.019; Mon, 25 Aug 2025
 10:26: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>
X-Inumbo-ID: e9d02095-819d-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=WIADFbdnBhckt3IXFo+KwvLMgtBWDU9hAuvsqhqMQZKLW6MSurWgG1gezz9Nk6jf9Ght/KQaL/NcDfUd+19OGT6tiEkP6YYSlWQ1eEKBWQRAGAjI8ibpeUfdkxHG85XtjCljuex4ViFo8qiOVpQxGETa4NkbB/s3kEW/gD/CadYSpjQ8BUnwyx6QP0i7IhvAS0TgAnzbWmJsiwSkztDpPBwUMjRuB/CopcNEtkGegqOJUZG8U8VGDC0rQdCskz2i6KXcyenRiISFViid4HwVp6iqTtSqLrILExQrjRU/CszBA5RxQ1Fczh1PWXnoKKZwzxRZQ95SA8rWGnsnksqa1w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=pJeUdbutCnf2pXBFpn9waVEwo91W93IlUbP3argF9n4=;
 b=P2tks86qkZ1Lpt2IgXDF4XXo9mvl3viPCBGbxbfUK2tI6BJC3DbJcBv4EPZB5wclkqJ9zFOVXDhoNhlgDhc5C0DN0zrGM2NBiXnVgI5RNUabdjqiuJw+wQcXKTA92fB+VNVuS0WAYIbl0myxWkx0fJNK4fTP4rOzTGa4DNvouO5mQQlVsUsiQZpw9cabap2JtdntNc6oC+zqSI1EPtrIAqxUQbkutUhhfqbnxZMSFAFOiUSesgl8fOdQ3kxfKRIJVnhCLu4LAHgeK7OWDg6HIKhP4+Gtq0ajzupSEaIBfQt4rXwq46PCcUtMzZpMA12CH/ryJe2dOPYgSy7Ma/v8Vg==
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=pJeUdbutCnf2pXBFpn9waVEwo91W93IlUbP3argF9n4=;
 b=dqTFC4izNKdOS9coEHPjow73hAEksw5GUfxSKAhQMiMHh6hTypXxxYdQXNBIlkFCNXrsL+ney03MGYMpZp5ImHBbCBn3AOwHdH/MMnrTSKP1Fre7H2w5zvgJ4cGSPznJhs/BxrqcuN/uziGS5Va51BGsWox+Y0AZE4gG8EVxVNfKQRb+UPOiP+4e2x8OXKKRBInRZtgQ4/f8Owx4CHA0nUup6rUOLyWLS4gGMBTLgX9D9G6XP7Wok7eX+ticVFHPs5GWy77JGCkNTtsKyVquY6SEjFmqbptY0ZpXBiwz7E06/BqH6MZed500l16V3OYR8Jj+3I0fcOSHcyVGvVlhJA==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Nicola Vetrini <nicola.vetrini@bugseng.com>, Doug Goldstein
	<cardoe@cardoe.com>, Stefano Stabellini <sstabellini@kernel.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien
 Grall <julien@xen.org>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] misra: add deviation of Rule 2.1 for BUG() macro
Thread-Topic: [PATCH] misra: add deviation of Rule 2.1 for BUG() macro
Thread-Index: AQHcFQc77bBOPokbA0m9oV6J6fEgkLRzJgAAgAAFRIA=
Date: Mon, 25 Aug 2025 10:26:05 +0000
Message-ID: <e7f0e84d-4c6f-4176-bb90-18251bf09b47@epam.com>
References:
 <f7b4112aad84162c25f96a9d6db43a0c2ba85daa.1756046023.git.dmytro_prokopchuk1@epam.com>
 <60022d5c-1a9f-4a6d-8df2-bca57cefcf59@suse.com>
In-Reply-To: <60022d5c-1a9f-4a6d-8df2-bca57cefcf59@suse.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV2PR03MB9572:EE_|AS8PR03MB7287:EE_
x-ms-office365-filtering-correlation-id: 4f6a408b-00df-4a2b-d16a-08dde3c1ccc4
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|7416014|376014|366016|1800799024|42112799006|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?Z3k2TzBCanZjVE5sQ2RlSGtmVlJhMWZ2NDQ1cDVVNnVzYXNNUU1wejlFc3lY?=
 =?utf-8?B?TW1XeVJFbCtFQlAyWU9La3BLQlowNGFNVk42NkFXaFExczBFc1JJaDduV1M1?=
 =?utf-8?B?WDZNcEdQbDhJYTdRaVVibjBQRWRhNldNQjF6TVdGWUZhbitRZHd4ZVR6ZzBQ?=
 =?utf-8?B?bW9rZzRpUG9KYmdrbXZNbWZLRHZrVlF0R1dha2xBN04rRTh5N2x6RWNpSENU?=
 =?utf-8?B?ZExSNHl2ZzEvWWNScUZPZHRTMGUzcE5CUTZGMnF2R29FVlVLQVBtMUppZS9S?=
 =?utf-8?B?UlM1TlZqcTdEMFc1M1p2b1dNUjNGQWRuUDB4aTA1VkdqMVU5R2tHWDhLQm9p?=
 =?utf-8?B?Y2NUeUFXamZVckN3aVpPc3F1TU5xLzRKSWZscUJwQTE5NG5HRDRrTHhqMStF?=
 =?utf-8?B?VWd6MmU2MjhtTmZPU2xPRllQRVBNdG54ZXRKLzRTMXdKaWRTQXgxdWFDNHVG?=
 =?utf-8?B?TGFCM0k5WVMzTks3bHFLakFuQkNWODQybkZCVU1XV1J2RCt2NFFzTGJxVlpR?=
 =?utf-8?B?Q04xa0RWNTl4RFl5L1BlenJqWWxWU3RkSHJvQWFmQk9JMFloVWZZM2g5OFFT?=
 =?utf-8?B?YTdqK2prZ2srTUFDNDRtem1wdWJTZm90c0tKK2JudDRFQmxYdHhtRlJwY3V0?=
 =?utf-8?B?K3IyMjRCV3ljMmtZUFVGcVhFRThWOHM1YW1YYTdoK3NuMHV4MWFweVdQVlph?=
 =?utf-8?B?WlBmY05CZUZRQmZBTDJhYjJaMUJqRVVDOHVwYkZ5WVQ0eEl0Yk1aanFsNkZn?=
 =?utf-8?B?VHVPTWQvWS9CY1ExNTZzWE9PeVM5aUxYZ3dlT2g5RGFyWEt3cnFMeHA1QUxY?=
 =?utf-8?B?R0hTQktnYXl6NGJTdm9aQzJMUG1TUUtkNnlBSXo1TGFPemtWNTlubEJPb3ZW?=
 =?utf-8?B?SHc2dE1aWjJGRy95UGlIcWVZZlF0NktIcEpWNEZxcEoyVG5FZzVUMGlKb3FN?=
 =?utf-8?B?N3hvSGpJejRKdnJYdjhCcnM2dnZWTWpySkpYRGZYdHZVUC9FbmhBdCtIU21B?=
 =?utf-8?B?YzZUUUVXTHVkMGIxQjcyRHpnbGUzbFlGVk51ZGduZlVxL0gyWnkwN29iWEhJ?=
 =?utf-8?B?NDdkanBXZWhJWDZoVHJibG5ZM0dFQ3I0QlY2WDdaMDZPSlRxajNXZVF0V05O?=
 =?utf-8?B?VStVSHRWdWRrMzNnamdIdmF1SVdsUEEyb0xJVmxURCtpWndHNVVHVjNEN1No?=
 =?utf-8?B?MEhSZGRUVWVTd2I0Q0pnTXVLaXhIeGhBdWQydTQxZ3ZGdksyUTQ1QmNDRnp5?=
 =?utf-8?B?NUZmdjMwamF5endUQXprc1VycnFtN1dscXNzOVNCT2d1RnNhRDdzazk4aTlh?=
 =?utf-8?B?ZERZMmptRXVYN1J3eTJKZExNTW5sOFdmMXhTQnhTV0VpRm9LTnRXK3Rhb21G?=
 =?utf-8?B?Si9uVEZXZGNQSVNtL1RHQTRFMTJiSFp6NFJTM0l0V2ZPbGh6OHcvZ0hJc2w1?=
 =?utf-8?B?SllaZFlVWko4Vlc5NitTSjN1dXRnbUJ5WS9sQy9LYlJDK05QankwdHBGS3ZR?=
 =?utf-8?B?cis1TDYrS3kxbGRZUWMzWVVSRkFYSEdIaUlCaU1TR2VxYllYQ2tQTWZiRkVx?=
 =?utf-8?B?bGZHQWFzWkZ1dXlhNlhmUUV0VXE4cm9aWTQ4ZmZ4VytHaUViZ0I5eERkeTBp?=
 =?utf-8?B?SnViVnVYNmVkS3hwSmpNTXEwcG9wemJ2WFExMG9wd0toMkd2bEIrZGFIM2FH?=
 =?utf-8?B?c1RlY3N6NS91MGtpRXVVdzNmajlFYVVNbXZzWFlBVzgvaVZ6L1lqcTNpanlK?=
 =?utf-8?B?UTZoc0VoS01FdFcwK0pNS2RUaFRhblQ2NndLSnpicjdFRU1KWURQTC9aWWZi?=
 =?utf-8?B?Z3A4djBsSzFBYmVtakN5amRnWm90V0IvaHNDZWRXVkhhV2VwMDRlYTVGbW9w?=
 =?utf-8?B?bXlXeFhhU0xQNldKV3NXZS80Z2xIV2dBOUdxTzJ5c3RkUGFiQXU5WGw2TFpk?=
 =?utf-8?B?RThHclRJcVBscEg1OHIzUWNmZldjQWVjOUJBT0V1QUxqY1dQWUxpS1pUOUxq?=
 =?utf-8?B?cEN1emtCYXZ3PT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024)(42112799006)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?d0RqdG5yMjd4VDg5NDVSdjA4QlFRQmpDWDZ4dkNVb3VlaFhtT0dueENKRHpV?=
 =?utf-8?B?cUdFdlRSQWRWRGVRcDNMT1dpeG5vSnpEY1lHVDloWGp5YXByK0xmclVITm9F?=
 =?utf-8?B?RnlxbUFlR0g5RDVsWjlUMzVxMk1ab3VRaGd5dVROb1czY1paNmlnNUREQnRv?=
 =?utf-8?B?eVVNUXUrNnQ5VEVpRUQyVTVQTVRERUpxc0VPS2pjckNpdUN2M2hJWDZCbWho?=
 =?utf-8?B?L1dzdjBrQkNpQlFQSlU1L2h4dzg2T2xGbTY5ZEZqV0JoaHg2ZmJXNUp6eGll?=
 =?utf-8?B?K3NETDFmcmlTeWMvVEtzVGhFeVdnSWRvYjZ0UHErWkxHUTRwVEFTeTV4U3FZ?=
 =?utf-8?B?cDBLVlBMaDVGckhIcTNrK3NoWUZ6TERLMzA0YXpNVzRLMnBYNmc3TjZGVThF?=
 =?utf-8?B?My9rZGV2MTNxdjEzVGhhRzdIRHkxNGl1VHBUUFB6V1I5RHBDdWpicHZFM3ZF?=
 =?utf-8?B?S0NsMXpPVTZmZ00yOW8zZlZvOXNmSGhMY2MvTk9SK0Q0K3RKb2VWNHJOUWhK?=
 =?utf-8?B?WkppTVloUEVSQkgvS0E1TUdzNnBmeEIxMmdiTVRKWGJYckk0YTBIZTVQc1gy?=
 =?utf-8?B?Z1Rjcjc1YmVkbkRINUVRSHEwaG1CWlNrMUdMZmhiTjhmbFhwZTZJZFJ5V01K?=
 =?utf-8?B?UDZRbTZHcXhtMHN0OWhaZmgxZ0MwNFEvSXBFckZqbFd4Z0RmRkRFY2J5eVBx?=
 =?utf-8?B?akhmL2JINDZPWmp2ekxTTTNrMHYreEdFZnZmTnNIODlhMjl4TGV1Vkk0bHRZ?=
 =?utf-8?B?MDdHZk91bVJzckJwcm1GSWgwcWlIQ0Yyc0xDVmJ2YnJGOE1SRjl6T2NZWDdt?=
 =?utf-8?B?cDdneWIvdC9sRkd6cGRVNmw2ekY1b2pVeXpTaWlRZ282UzNkNlhzKzNHZFJV?=
 =?utf-8?B?ckVyTjArb0lKb0tWb250anNLc0NmVk9CY3YvM09vS2ZuVHpFcmlvVzkybjAv?=
 =?utf-8?B?aGNmY3NVN2V6ZlcrZ3pabHlGekRwNzB0NnRvdHpLYXRjcENHbnVhY1ZWNUVj?=
 =?utf-8?B?VjNMdlltT1hNQ2JWek5lb2JiNDU5UWRacGtGVWpIeFBFZUVYL0hyM0txb2k1?=
 =?utf-8?B?cHFQYlEzVzBOb1NMc0VzNVhvRFdZWVNFQ1NyUFJOVVMwTzJIbmI2RTFTR0pn?=
 =?utf-8?B?c2J6RTVIVzdnUFQ3emc0eTR5WEFTUVRkZmNwZG4yL3JnamZqOU8vNnNtL3lI?=
 =?utf-8?B?WkJPcjVMZEYxeTV0NVNBb3ZZMjFHSUYwb2tPckRBQ1Z0ZWhUdzdiRDNRNjYv?=
 =?utf-8?B?WllDLy9sc0VtbmxjaFRaemk4ZFRnWmZQalhzVWpDbGdtS1o3WnozY2xGQnlq?=
 =?utf-8?B?MmJaR0ZLSnJqUXBONmJJVVo1WTVGY1pzazFwZVBGNHZaRTZibmJmZElnRzhS?=
 =?utf-8?B?dUZIQmdRdTJ6cEhQMGZyNmdsR3pxUDZsMGNDWm4xb2FxT2V1Wk96bDFFL3h5?=
 =?utf-8?B?Q0IyWktoNG9SNy9EUUUyMXdjRkxFVkRiWnp6UnpSV0NoSnI5ZEpLRmFjQmt4?=
 =?utf-8?B?MEJQQjJrOEwvTjVNY0MrT05yOTFrcjlxQlJEV2tSaXRKQUJ0TXlRNDdRV01Y?=
 =?utf-8?B?NUl0WnFrNGV2U3ROM0RBS1I3OEhnZTJ0NnQ4cXFDV0FtY2dXRzloVktwenox?=
 =?utf-8?B?Y0EwSUNJM1ZRemJNM0dwRStuVVMwQWtySGFFZUpUWFdFTXRLTFpWU3hSc0Yv?=
 =?utf-8?B?aWZzOUI5WHoycUNsTkFTa0NJcWJ6QUUycjFqY1VUQ1pNRE9pZExmSVJ4Yyt4?=
 =?utf-8?B?S3Z1bTJMZSthQVI2RHpRaDJQTXFKT3pwVDJuT1JVQm5RNmsrUkdTZ3VRenp0?=
 =?utf-8?B?U3JQSElqbXEvc0RnV2x6YWRQeG1lZW9ISnVGY0gzNVpxT3hUek9JUy9sSEpn?=
 =?utf-8?B?VGhVVWN6bkJqVUJaT0hJcmU1QTRFSDI0ZTZFWE90TWttVC90MG1MUENTMU9x?=
 =?utf-8?B?WERMemJsSHNkVEpBWWZBc0h3NUdqOHpHNzQxNTluVm1keU5Ec2wwbjgvdmlX?=
 =?utf-8?B?L1dKWXBhcFp2Yk5XejdhVU4vbmUvcXVZVDl4QlR3VzdOMDVVYVpxTktqU2pW?=
 =?utf-8?B?bkp5b1hnTHZDbitLbWFIdjk1eUNoWDZNbGI2bjRKTHN1NHBVenZ2QjA3ZHFI?=
 =?utf-8?B?OWJ3SzZNcnViUWVrcysreHVzMHE0Ylg2eTFucWJwQUNXNnNyMTlYYnJLd1lO?=
 =?utf-8?B?Q3c9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <B68D4C68579C3C499A9D5E6E081A8BB2@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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4f6a408b-00df-4a2b-d16a-08dde3c1ccc4
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Aug 2025 10:26:05.9838
 (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: FUuYb3+w5RdG8anT4elnocIsDBFYo1+Qg8gcGwL/j9SOncIAuaK8W42RcefPgChggLDuV0cyYtr/sgFYKMhW/EdBFtlRghs199FTI3SdplE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7287

DQoNCk9uIDgvMjUvMjUgMTM6MDcsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAyNC4wOC4yMDI1
IDE2OjU2LCBEbXl0cm8gUHJva29wY2h1azEgd3JvdGU6DQo+PiAtLS0gYS9kb2NzL21pc3JhL2Rl
dmlhdGlvbnMucnN0DQo+PiArKysgYi9kb2NzL21pc3JhL2RldmlhdGlvbnMucnN0DQo+PiBAQCAt
OTcsNiArOTcsMTkgQEAgRGV2aWF0aW9ucyByZWxhdGVkIHRvIE1JU1JBIEM6MjAxMiBSdWxlczoN
Cj4+ICAgICAgICAgIFhlbiBleHBlY3RzIGRldmVsb3BlcnMgdG8gZW5zdXJlIGNvZGUgcmVtYWlu
cyBzYWZlIGFuZCByZWxpYWJsZSBpbiBidWlsZHMsDQo+PiAgICAgICAgICBldmVuIHdoZW4gZGVi
dWctb25seSBhc3NlcnRpb25zIGxpa2UgYEFTU0VSVF9VTlJFQUNIQUJMRSgpIGFyZSByZW1vdmVk
Lg0KPj4gICANCj4+ICsgICAqIC0gUjIuMQ0KPj4gKyAgICAgLSBUaGUgJ0JVRygpJyBtYWNybyBp
cyBpbnRlbnRpb25hbGx5IHVzZWQgaW4gdGhlICdwcmVwYXJlX2FjcGkoKScgZnVuY3Rpb24NCj4+
ICsgICAgICAgaW4gc3BlY2lmaWMgYnVpbGQgY29uZmlndXJhdGlvbiAod2hlbiB0aGUgY29uZmln
IENPTkZJR19BQ1BJIGlzIG5vdA0KPj4gKyAgICAgICBkZWZpbmVkKSB0byB0cmlnZ2VyIGFuIGVy
cm9yIGlmIEFDUEktcmVsYXRlZCBmZWF0dXJlcyBhcmUgdXNlZCBpbmNvcnJlY3RseS4NCj4+ICsg
ICAgIC0gVGFnZ2VkIGFzIGBkZWxpYmVyYXRlYCBmb3IgRUNMQUlSLg0KPiANCj4gV2l0aA0KPiAN
Cj4gI2RlZmluZSBhY3BpX2Rpc2FibGVkIHRydWUNCj4gDQo+IGluIHhlbi9hY3BpLmggSSBkb24n
dCBzZWUgd2h5IHdlIGV2ZW4gaGF2ZSB0aGF0IGlubGluZSBzdHViLiBXaGVuIGl0J3MgZHJvcHBl
ZA0KPiBhbmQgdGhlIGRlY2xhcmF0aW9uIGxlZnQgaW4gcGxhY2Ugd2l0aG91dCAjaWZkZWYgQ09O
RklHX0FDUEkgYXJvdW5kIGl0LCB0aGUNCj4gY29tcGlsZXIgd2lsbCBEQ0UgdGhlIGNvZGUgKG11
Y2ggbGlrZSB3ZSBhcnJhbmdlIGZvciBpbiBtYW55IG90aGVyIHBsYWNlcykuIE5vDQo+IGRldmlh
dGlvbiBuZWVkZWQgdGhlbi4NCj4gDQo+IElmIHN1Y2ggYSBkZXZpYXRpb24gd2FzIHRvIGJlIGFk
ZGVkLCBpdCB3b3VsZCBuZWVkIGRpc2FtYmlndWF0aW5nLiBBIGZ1bmN0aW9uDQo+IG9mIHRoZSBn
aXZlbiBuYW1lIGNvdWxkIGFwcGVhciBpbiB4ODYgYXMgd2VsbC4gVGhhdCB3b3VsZG4ndCBiZSBj
b3ZlcmVkIGJ5IHRoZQ0KPiBFY2xhaXIgY29uZmlnIHRoZW4sIGJ1dCBpdCB3b3VsZCBiZSBjb3Zl
cmVkIGJ5IHRoZSB0ZXh0IGhlcmUuDQo+IA0KPj4gKyAgICogLSBSMi4xDQo+PiArICAgICAtIFRo
ZSAnQlVHKCknIG1hY3JvIGlzIGludGVudGlvbmFsbHkgdXNlZCBpbiAnZ2ljdjNfZG9fTFBJJygp
IGFuZA0KPj4gKyAgICAgICAnZ2ljdjNfaXRzX3NldHVwX2NvbGxlY3Rpb24oKScgZnVuY3Rpb25z
IGluIHNwZWNpZmljIGJ1aWxkIGNvbmZpZ3VyYXRpb24NCj4+ICsgICAgICAgKHdoZW4gdGhlIGNv
bmZpZyBDT05GSUdfSEFTX0lUUyBpcyBub3QgZGVmaW5lZCkgdG8gY2F0Y2ggYW5kIHByZXZlbnQg
YW55DQo+PiArICAgICAgIHVuaW50ZW5kZWQgZXhlY3V0aW9uIG9mIGNvZGUgdGhhdCBzaG91bGQg
b25seSBydW4gd2hlbiBJVFMgaXMgYXZhaWxhYmxlLg0KPj4gKyAgICAgLSBUYWdnZWQgYXMgYGRl
bGliZXJhdGVgIGZvciBFQ0xBSVIuDQo+IA0KPiBJIGRpZG4ndCBsb29rIGF0IHRoaXMsIGJ1dCBJ
IHdvdWxkIHZlcnkgbXVjaCBob3BlIHRoYXQgc29tZXRoaW5nIHNpbWlsYXIgY291bGQNCj4gYmUg
ZG9uZSB0aGVyZSBhcyB3ZWxsLg0KPiANCj4gSmFuDQoNClRoYW5rIHlvdSBmb3IgcmV2aWV3LCBK
YW4uDQpJJ2xsIHBheSBhdHRlbnRpb24gb24gaXQuDQoNCkRteXRyby4=


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 10:28:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 10:28:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1092929.1448527 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqUR5-0007Xv-5N; Mon, 25 Aug 2025 10:28:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1092929.1448527; Mon, 25 Aug 2025 10:28: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 1uqUR5-0007Xo-1H; Mon, 25 Aug 2025 10:28:23 +0000
Received: by outflank-mailman (input) for mailman id 1092929;
 Mon, 25 Aug 2025 10:28:21 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/bS3=3F=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1uqUR3-0007Xi-UR
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 10:28:21 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c201::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 38e906d9-819e-11f0-a32c-13f23c93f187;
 Mon, 25 Aug 2025 12:28:21 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by GVXPR03MB10802.eurprd03.prod.outlook.com (2603:10a6:150:220::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Mon, 25 Aug
 2025 10:28:18 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9052.019; Mon, 25 Aug 2025
 10:28: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>
X-Inumbo-ID: 38e906d9-819e-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=XgyppLFynmuFQgjxStk7P1V7c/udnDAUo5T17mGKmiu6b4iFTm2iRgGZWbmAOBABVnrNHr9tbuKA1RCTrj7JwccU/Ln1NvDhX/UEUxlElc+Es95tGAkMqnd1uWmmqrRVRnmwI+cGMRSZ7knODTWehcyg/WAtIyzuKqR4PiycZ2NWsITQkOK0n41w576o3AIjZLLA0zZcUWBVIxOe9pMDzaPGyqmVSn63K1pB9Rp7SLr+zv9EzQDTj6APF2ebYjgAKwDczz9Dj27ADtR3ezZ1I46N28zNsg217UGyi29egGgERH5KE6BDoo2Scg74ZrwyCt//cMMF3X7PwQGbh4JcNw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4Nasimg8iyCoY7CKQsSbDDr6b2t1xiKW6YB3aXxqx6A=;
 b=MgEz+UhcfMqb5vlUZVeFHMLYlMe4w2tAzGr6To7MMQ2l3yQxGfV41cdeMYyv9Zh61actroXP+KJOnhwgNEylCwVBaAPnbauxfsMpcL8z9Sd+ChhBE0ZbyMEZryDKwX+IwxYV/sC7um5ZR4KF6RolFW7ERTiXLs3ZrRiOgiEdQ4txABRvkdlevYq9kZijv4gFCZ7gas2IoGS3fvszm/FrISqbdQRx6swkB0tHc5ivM8nhszpmDD8S1pPuiz7IE8GvFkK+9sGE36ic6bhcnGOtl65ZCBYG5qlozq0Azue0WXXuGgIf3MiMygPnQYFQ00rcNQFZOgro42Oshzlc0J5E8g==
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=4Nasimg8iyCoY7CKQsSbDDr6b2t1xiKW6YB3aXxqx6A=;
 b=Rjq1i9bOQOjPbj1O1Edv61/aJWv8rtWFFEzQzcOhP8a8D4oCJIK+BhzKknEE52LS8Ctnh8Qq/8rAr4meSaShJpbHLjOXvwOLBRgUiMI575G+Ktml15CqNxafsSYhs5GMsXo2CBkKonyk088f4AyDP5xLQV/5twsgWr78iSV+JzXbpAIO31C1raECUv/PVa7D8b3sB4GNERSg2Gx3/0zsiUG1CVj5TAswD84l5DRtgP/iWCClIEqWwcfEI3DovB7up26aEinrGKbHIiAyKVbUb3qza9inMR2eo09NSPKgYropDcy7LyYYyVVl88uqeL9MLvkN/V2oWg8skhKPfK7tlQ==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?utf-8?B?TWFyZWsgTWFyY3p5a293c2tpLUfDs3JlY2tp?=
	<marmarek@invisiblethingslab.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v4] common/efi: fix Rule 2.1 violation in read_file()
Thread-Topic: [PATCH v4] common/efi: fix Rule 2.1 violation in read_file()
Thread-Index: AQHcFQlF20ah2tP5uUOdXQ1Ea/l407RzJ1sAgAAEg4A=
Date: Mon, 25 Aug 2025 10:28:18 +0000
Message-ID: <bed18f1e-0b35-4795-99f4-a43899e2a73e@epam.com>
References:
 <1e5a31fe588f58bd2b5c7835773fdf7899ff5511.1756047981.git.dmytro_prokopchuk1@epam.com>
 <b7a3ae83-3136-4337-b45b-c075dcb212c4@suse.com>
In-Reply-To: <b7a3ae83-3136-4337-b45b-c075dcb212c4@suse.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV2PR03MB9572:EE_|GVXPR03MB10802:EE_
x-ms-office365-filtering-correlation-id: 298e4cc4-2d25-4944-0556-08dde3c21ba5
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|1800799024|366016|42112799006|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?V2dPcVlZcmFCVlFFY3FGVE42U2x4SnEwWVpPOG83SWxMdmh1eVdod1oxcUlx?=
 =?utf-8?B?OVJySVM3YUFQbmQ3dlpzOUh3SG1WZEhHN3R2K0pWd0pwSzRjTzFFWDh6WDRL?=
 =?utf-8?B?SW5kaTRJWVdCTUtxb29tbEloQ1dlNHRYSkphS1FEVDlBQU90Sy9UUE9EdWNL?=
 =?utf-8?B?clVsbXJjVnU1UXB6bDVYNjU0LzFKYWVhT0wwdzVVYlBhdWdGYkk2dnFKU2NL?=
 =?utf-8?B?T3lUQU9tSmFsekNmZ3ZXSGE4RWhNQ2YxcSs2MEd0Ny9EQndFV1pVMDNRbEx0?=
 =?utf-8?B?UWVGZnpqbjlsbmRJTTFZNm5SZkU1VC8xSWJ5aHZqRElTY094cGdsZENMUjJW?=
 =?utf-8?B?TTZsRUhBcDNnKzVPbGxCOVhiTHZZUFJMSkNPNXQxWGlyaXNXZ2xFUXlmYTJW?=
 =?utf-8?B?UGR2aWJoeDdoV0VNY01udUN0b25FbjZzeEd3RTVzZTQ0S1BCUjJJVE80N0tI?=
 =?utf-8?B?ZnFBWExCdGtKcVVPRitjNXpsQnJUeUZVSGF3czNYaXNPcVVjNDBnbWxsZnc2?=
 =?utf-8?B?d1BjSUNHVy8yQ2ZrK0ViUUlaQ3V1TkRGOGx4S2dlcnoxcjBKZndIZXVNOFVC?=
 =?utf-8?B?UFR5bFZ4T2RsUVVCdkZMYjMrdGpSaDIzTUNNWFdLUlMwc3dnQnFWWlFBMjdE?=
 =?utf-8?B?UkFvaHZHMUsxcUlqeUFpS05BaHZMNTd2T1JGbXphK3dzYm1TcnlUMmJXZUs3?=
 =?utf-8?B?TExPMmZySW9ZWDFUOEZkMTZlZmVGcTcyTVhvMVphbkhjczNRZG95eGNORnVp?=
 =?utf-8?B?RXh0QWR5ekRMQzUxanNQTU5PMS9oZ0pTazhXRzJSMkw3WjUzQk5BamNyQnVm?=
 =?utf-8?B?RzkzMWdKdDFUSUJZNVpNU1pMVnlGWWV6dC9xMFNHdndiYzFtM0VuVnBiRGdE?=
 =?utf-8?B?dU8rZStlZklyQmM4a1FPM2d2V00wME1NNFRFRDV6VDkrV1lJUkxlVCtMQlJD?=
 =?utf-8?B?S0cwMTNTYUQyblFUWVpaNUFpY2pFa3NHajlPbTZHNHF0U3IwOHJIcXQzRVNO?=
 =?utf-8?B?U1VFVkNDL1htU2hFZlM5ZHlJUTE3YkRDd1pSU09BRU1OOE1CcWZEaVliZDBY?=
 =?utf-8?B?WUNveGlTeEc3RUJyaGI4QktqUHVyM0VSMDhRdHpRcHBreldGZFRkNHdKUmlo?=
 =?utf-8?B?TFQ2VU9tNDVjL09tbmFaK0p1OXJUY1BZQXVQbGtuWERETFBGMk5sbEtsait4?=
 =?utf-8?B?OVU3UTBpblFyZ3JqeG5ObUtwOXZabUM5NWs4eDVrbXh6UkZVM1U4MytiNWhM?=
 =?utf-8?B?cFY0NjRlNTlPQ1g5MVl3ai9KRzZDOS9BeERsbnRxZ0JlVEJ2dFcvdEhnampO?=
 =?utf-8?B?eFVOOGh2azkxaVFidFVEQ3lGOHhMdElQYWc2VWJNK1dVZW9oZXZyK0ZRditq?=
 =?utf-8?B?S2tvTHM2N0tjS3cwMWREdXJnc21xc0lSdUpLVXJLZjB3MDEyWnJxbjVGTzdZ?=
 =?utf-8?B?dVdHVjBqYVJ5UmxkU3JWeFpOMUQwb2tkR0V5ZGVyUUNxNE8xQTZqK1BhbU1R?=
 =?utf-8?B?Qk0zYlNYVkZ3T3lWSkRZOWVXVzhVRzltdUd0clIwc09YY2thYnBtYi8zcXhy?=
 =?utf-8?B?ZUJoN05vWVptVklnWENGa2I4eXZ0WldVZlpUbUNVSEZ0QVJVazlZNytscklC?=
 =?utf-8?B?cUlWM2dnY3M3UjdjNW5BaGUwSWo3SEtpeXh4QVdydjk1aG1FNitQT0FhUW9P?=
 =?utf-8?B?OGwyTUltcWsySTNDaGN2V29IYXYxMGFrQVdyQzJOd0dhK05iMDhEY2Zla0pq?=
 =?utf-8?B?VEhMZGxuOEcraWNwYXc4KzNERlVMeDZYL0hlaG1yZmk2OHpIaFVxZnNXQ3Y2?=
 =?utf-8?B?VzlwRk1QSlQ0dmg2OFh4VTFxMG1DbmdIbUVNQ1owdTd2MFMzb2ttSFVmL084?=
 =?utf-8?B?engwb2M0enY0Zlg4cUhiRzlTdTdJRkJpUnpoTzZIcmdvS1Z3eDVHbWhzSVdM?=
 =?utf-8?B?ZlpyRml3ZVN5c2FGUEh3UXRGd0cveTR0YjJCdFlYOElYRTJER09TUFpVMmZq?=
 =?utf-8?B?TXR6dVFsdnJBPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(42112799006)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?R3VYRzdOeUtmOHFzcUhJR05XRnY5N0YwNXBUUTVOSUlQeGJtR1pNSE90bVho?=
 =?utf-8?B?UlMzQnVLU3lQYXhleEtqeTh3a253WVgwZ01KTnd4ZjBQcDBNRnlUaEd1R3p4?=
 =?utf-8?B?Wnd3OHhNQm12cUMxOGU2ajlmMVpudHJEWnFBNmMrbzdSNUtweEhhQm0wdGpU?=
 =?utf-8?B?NVdXRUpEVStHdXc1MU11TkZQZm9qcWRNTE1iczQyNEFMNmRleldJRS94NmJM?=
 =?utf-8?B?Y1JsWmF3MEIvelcwVk82NWV5TG9WbENqR3hRaFFiODBvd2V3Y29vOWF3UTJG?=
 =?utf-8?B?MGFYSG9vZ09VbjhKS0kycUFIQ0NTaS9YdWYzWTNhdXJUYVhmcGFrRGRNYXYz?=
 =?utf-8?B?VEZkRmJzVjVvMStlQXUyS1JWZGllVWVha1Q2N0w2aHpGUlhkeFBYcit2SmxW?=
 =?utf-8?B?QjhNUW1ON3JGQ1M5ZVhMeWtwcjhmbUJiSitsMFJlY3VnTFh6UXVSVXlQblgz?=
 =?utf-8?B?NDlxaDhRRHFYZS9ROS82RUpuY1JyVmw2MHN0bXE3M0xucllvaXpkUUZsZGsz?=
 =?utf-8?B?ZjhWU1VqQjFKV0tRWHlQaVNzWTgzY1hCR09aSnlsL0tucVBOZVdYSGtpb2k4?=
 =?utf-8?B?aDJjbmF3UTNLT2pwa3dKU3o4SUpqMUNzNmE5eVQ1aCtJbUZVSm9IbWMwaUR2?=
 =?utf-8?B?dFFVeWlHR0cvNWNrN21BUFV3SjBscy9jbEYvKzZUa0Nmcy9sSHNJSFVheGlw?=
 =?utf-8?B?S2YxOUppWm9oVTVUaWsvaXpxVXB0YzB3T1JOY2RubzZob3ZQVlJYaFlkcTZX?=
 =?utf-8?B?ZmJnaUMrQnNMQmJpOE80dWdSL21NU1RDTy8yZWM4ejB4OTVHQzZCZFdsOG4v?=
 =?utf-8?B?V2pTMTVURlBVdEJUVkxJcnBPeEFpajN5dEdSaUxnVUlzQWhLS2ZWK0gwRHY1?=
 =?utf-8?B?SGY2QUI5ZUFjc3VySDhoZUljdTBONHFZM1ZyaU5leFh4ZjkrVUdKR3A1a2tz?=
 =?utf-8?B?bW5BM2hJa2llMFVobHUvZHhMd2FUWTVDd0tHUGVIdHlvMGdjOUJOL1JhWVJV?=
 =?utf-8?B?MDlsRWdNVDYxNG90dWg1VEVjTG4vcEpmNVJhaVdkbjAwS3lOVjFiSjlxeXBE?=
 =?utf-8?B?TVFsMW9OWjc4U3lBcG9uOE9OTlplZmVsbmF6MG1Eb0hDTk9hamx4T1oraEdG?=
 =?utf-8?B?MHpXRXRPd3d0Vnc4a2prRUtSanNYY3o1RmlUUHErd2tsT3Z2c1hNOXQvbGZu?=
 =?utf-8?B?UU5kTy92OC9VQWoycTJQQTEydHhDMy9qdmc0QSt5UVJ6TlIrbjFGdVRIYUxp?=
 =?utf-8?B?cTI2S2pCT1BqS3lGRUIrc3k3VkFWbzU5SFQ1MXNSaTVVc3JUcGtKcXVSMUNE?=
 =?utf-8?B?TFh6VjE3STc1ZEMwVEE0NU4zNWRQMmNYYUxSQTNDL3N2RUtqSTVhV1JpQXhL?=
 =?utf-8?B?SnJ1OXNiYlMxbFhydXVsd09adWNLeTlpY2RRdUxORXQ5dllZR3pHYThCTTVW?=
 =?utf-8?B?RFNzbDg1WHA1SmVYeWJ5YmdoVkVCVEx1OFpvaWl5VFJleEFPVXFoV1BWemZB?=
 =?utf-8?B?aVU2K0RwMkJHRDVDcjd3V3BLeUpueC9NWk1MajdzV0tFNW5tb3FjbkJIM0d6?=
 =?utf-8?B?SHhrVGlIUXJwQ2NkeWlWVUdpY3RVOTczZk53eGV5bkhPeTVDMlNkbzY3SnhV?=
 =?utf-8?B?SktzNjNvU3pmTlYzWUFmMmRyMzhJb0RmQXI2TTNUcW1hTldYSWtheEVWaTEw?=
 =?utf-8?B?cGI2SG5FTml6YmlmcHo5Nmd3QzlRdGdicFVZTXpvZWo1N3R5bHlDN09NN2Nk?=
 =?utf-8?B?L0h4QlhzWGZIdjdXNHBManpGdURWb3oxOE9pYWQ4RlVMRXFRRythNndVeldY?=
 =?utf-8?B?NGVjNC9qaHM0UVZNYXJ3YjRxUHlSalVXeUdUWHNkZ1kvWXFwSWhQOFhuMlBY?=
 =?utf-8?B?czN6dGtXZXIrMzlWVCsxeTJOcGtncjIrck16cGFmNjIxMVNvQ2R0bGRadVA1?=
 =?utf-8?B?UVRTVldhdlhxK1R0MzF5TE5tRzRHYVc2MHREc1lnODFTQURXblhEOWsxZHBZ?=
 =?utf-8?B?cFhYa1IvTU92aHZISHplWVlNbjZqTG82QVhFbXY4TGRzUEdFSXg3d2xGZU15?=
 =?utf-8?B?R1VpbzlGWm9RNkR0alRDNXRHRElvZTJadmNKa09IWGZ6bis0OFZFN3dDbHhF?=
 =?utf-8?B?QW1iT2drakoyQVpBYTBkeUszRXBYMU9yZC9ycGR4ZDRQcnV2UzR5V3pleUJO?=
 =?utf-8?B?dFE9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <93D2E6820E8E7943B1186D9A6E302325@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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 298e4cc4-2d25-4944-0556-08dde3c21ba5
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Aug 2025 10:28:18.3054
 (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: jwXYWK3he3HAllLZSBYFjKUIhUCk211JpdviJJ15erG6VM4wPn0R7V1TjXSGX6XZyTYuWwnmNt6VlNSboA2aR3azDHfoW/HAMHz3Fsy8zM8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR03MB10802

DQoNCk9uIDgvMjUvMjUgMTM6MTIsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAyNC4wOC4yMDI1
IDE3OjEwLCBEbXl0cm8gUHJva29wY2h1azEgd3JvdGU6DQo+PiBNSVNSQSBDIFJ1bGUgMi4xIHN0
YXRlczogIkEgcHJvamVjdCBzaGFsbCBub3QgY29udGFpbiB1bnJlYWNoYWJsZSBjb2RlLiINCj4+
DQo+PiBUaGUgcmV0dXJuIHN0YXRlbWVudHMgaW4gdGhlICdyZWFkX2ZpbGUoKScgZnVuY3Rpb24g
aXMgdW5yZWFjaGFibGUgZHVlDQo+IA0KPiBFc3BlY2lhbGx5IGR1ZSB0byB0aGUgKGltbyB3cm9u
ZykgdXNlIG9mIHBsdXJhbCwgdGhpcyBjb250aW51ZXMgdG8gYmUNCj4gYW1iaWd1b3VzLiBJJ2Qg
c3VnZ2VzdCBzd2l0Y2hpbmcgdG8gc2luZ3VsYXIgYW5kIGluc2VydGluZyAiZmluYWwiIG9yDQo+
ICJtYWluIi4gSGFwcHkgdG8gYWRqdXN0IHdoaWxlIGNvbW1pdHRpbmcsIHByb3ZpZGVkIHlvdSBh
Z3JlZS4NCj4gDQo+IEphbg0KDQpJIGRvbid0IG1pbmQuDQpUaGFuayB5b3UuDQoNCkRteXRyby4=


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 10:30:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 10:30:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1092942.1448536 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqUT7-0000h4-Lz; Mon, 25 Aug 2025 10:30:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1092942.1448536; Mon, 25 Aug 2025 10:30:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqUT7-0000gx-JB; Mon, 25 Aug 2025 10:30:29 +0000
Received: by outflank-mailman (input) for mailman id 1092942;
 Mon, 25 Aug 2025 10:30:28 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=J9Dq=3F=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqUT6-0000gr-0H
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 10:30:28 +0000
Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com
 [2a00:1450:4864:20::635])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8411d981-819e-11f0-a32c-13f23c93f187;
 Mon, 25 Aug 2025 12:30:27 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-afe6fe7c89bso182741966b.0
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 03:30: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
 a640c23a62f3a-afe81ebf53bsm164561066b.15.2025.08.25.03.30.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 03:30:26 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8411d981-819e-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756117826; x=1756722626; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=S+SDKZIiAKLCn7ccHg9mire8mGYQ15r9ZFJm/Drvk6U=;
        b=YrKYfsoaDLekr3JvbM2+kPEXJlelNLtP0quyDK8ts+QHowYESjI4kZtds0XfJ3Pxm2
         qCiS5dU47Zgt1g/LsqJ9bBj55QSNIdE7hBLvsA1mebKjjVgvpqdGL4ug6WjrOlExJEBm
         LKkjArCnAmY+3UY3bLKxfF/M2687MnrYtVs4yG1TzQyby+WrvQ8rUmgAYc/ZTiVmuLwV
         qEn6yo1acDS8S9g+CGwePQdEj6vuYaCQ1wmFv0C1mlx1F6hj+4w0ulK60tQS1An7Q4VZ
         JbBEjXmRGDwOz/pCmYK1tvmbt5eV4mb2jibK3L52EgVgkyrgbLkJ974Rt7MKjRaA2ELX
         yIhg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756117826; x=1756722626;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=S+SDKZIiAKLCn7ccHg9mire8mGYQ15r9ZFJm/Drvk6U=;
        b=bkyEhsw28iZlsp698dbnZx1m1nWGoemplZikAjhPdrMcTUG4Srf6wxDyZmSsKb1/kF
         qgRQ5Wiu6oM9N4lUMVI9SinLywLZoW6MWJdPi8S2NM86RCLSfWTLI1FO7Z8H2xzLu2Xk
         0zzhyT8J7Mjplul19CZmF4fSwy3hX2Y8PC+iqhnBGBjjsrgA5Ipa2SGlXwT+VcMAO/oe
         xAPovfFzORFywS8N63y/GwSlM+5Tnk2lirJILuiyOS6gIgsdfU0p8pNMcCg6mdD4lmOA
         WnLXOwRdyFHD2Xk4B3hFDRi58h0igVAGyBYq/I174UUUs5pV6Zrf6HhHvA6zCbiFET1j
         3nTg==
X-Forwarded-Encrypted: i=1; AJvYcCXhR4/nNsrQeREi7MBA7/4kzacdaohfwAtphNx7HtNmfgKr566bCO9WQXIJ+XBCkyhqbajxVh8yNLE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxX90/zSQDa0FjGWO+8138Qw46y5fCGQBfpl4WgMpzn+DQAIjcT
	8GXiZmwkUN5kk4DVsPNf466Xtx3e9UqTVHETgj9vAEHDbSXqlzJDrT+c+5NwzbeCMw==
X-Gm-Gg: ASbGnctw10XZHV3KKQ+8DlAsJmGqz8V718N56pgwyDVtM6jPJivVCErKnXs181564hR
	d1Bx8nC55TI9Nrwhd0IO2Cg5yvcjaFGf8Fwzx7pVcjuSMaeAjHKZLC9IhQavhJ2TcEDCQKQZ22W
	YsBmzs5IMQQZalkgUnX520tI0fbJLc8hvbB0jcJ35gCPkBJfhZXTaRw0GlZ8mESQ1wmi2FoNniM
	29oPFq19Rk68UkY3N/JHvYDoVKig2abhRiyGG9NW/rrIxctcEq9RW6opuYJA/m91GgwYZ4rBrae
	SL3vDx1EoXAoJczursi4lwmtOkbCyTQUTXYl0v4lsARuqbI/FTQjYOPYuB4WqwxbVhjYfH6ynmb
	fUAyi0MMY4L7HgEf3x8OvEEPdAukWoEkltYaTzpke0P8EXAFZn4UzWtB3XpO+ltn00uhoJpND4p
	gt2wOw1EU=
X-Google-Smtp-Source: AGHT+IErWCvIcJdhTI4v9r+3pWJ1S0pOmHeDqK3gMTiSLwDniaQmF33as/fkY08K89/Y0ZkL2S1oTw==
X-Received: by 2002:a17:907:9722:b0:ae3:5185:5416 with SMTP id a640c23a62f3a-afe290185d0mr1158518966b.13.1756117826375;
        Mon, 25 Aug 2025 03:30:26 -0700 (PDT)
Message-ID: <53d5cee3-9001-49a2-9da2-e56950a77683@suse.com>
Date: Mon, 25 Aug 2025 12:30:25 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] misra: add deviation of Rule 17.7
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <ad15582787e675fadf92502f85041c3232749a99.1756112701.git.dmytro_prokopchuk1@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <ad15582787e675fadf92502f85041c3232749a99.1756112701.git.dmytro_prokopchuk1@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.08.2025 11:05, Dmytro Prokopchuk1 wrote:
> MISRA C Rule 17.7 states: "The value returned by a function having
> non-void return type shall be used."
> 
> Deviate functions like 'memcpy()', 'memset()', 'memmove()', 'snprintf()',
> 'strlcpy()', 'strlcat()', as they return a value purely for convenience,
> their primary functionality (e.g., memory or string operations) remains
> unaffected, and their return values are generally non-critical and seldom
> relied upon. Update 'deviations.rst' file accordingly.

How come snprintf() is among this set? Its return value isn't quite just
for convenience, imo.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 10:58:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 10:58:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1092952.1448548 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqUuI-0004CX-QH; Mon, 25 Aug 2025 10:58:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1092952.1448548; Mon, 25 Aug 2025 10: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 1uqUuI-0004CQ-Ld; Mon, 25 Aug 2025 10:58:34 +0000
Received: by outflank-mailman (input) for mailman id 1092952;
 Mon, 25 Aug 2025 10:58:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/bS3=3F=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1uqUuG-0004Bz-Pi
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 10:58:32 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6f9cb5b6-81a2-11f0-a32c-13f23c93f187;
 Mon, 25 Aug 2025 12:58:30 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by DB9PR03MB7597.eurprd03.prod.outlook.com (2603:10a6:10:2c5::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Mon, 25 Aug
 2025 10:58:27 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9052.019; Mon, 25 Aug 2025
 10:58: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>
X-Inumbo-ID: 6f9cb5b6-81a2-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=L50D9NfBaarxoUi5UUifOLCnB9FVRhwCcYGWyYe95I5BZKB/Q4fRCQljFVzgvFe2PiTaEtCDAMSbVqdttqKwlGAxp0eqjTXV8S+h7ca9SO6YI18mBy/wug6aa9WrCqtZZ7ucwwwV3gpgmlRV4rHi7pvltKuuBSEGI4inL7ViDPGCfNLP1cU39BOpRIDmsoAmV8zqpZBmtDI/KvNEJOe3D+Wmxsq2TR0PGmxHNzUN+HP6BSmgD7esXTsj2hIfto2wC97j6JsKUoOLAuKysOYWisaJVakKolplPFv2G6Bs3yHF41PD2ilhAqfdyLSF4u3D6Vo8JLvnE/3MDJfdwbiz2A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=dEISZrt/gaYc0myVXduKx+Lmkyab4dXBNrapmompVvM=;
 b=BI7uQ31uyXmXYScU9SVz7j+CcBRxmfFmLKGO88DzkAyKMT9Ca0+SvbnjPEZRX42qfZv2Xid+LDb4sWgI1+MnVIZzKm07pCQDSLD8Y0K8fwUMhkOFlKRFy/F73oX9OtlIDMj8zoiJDgix2peHpKVPTfOOxEd7Zvnm79wKKFwDAjhzlmiN74ZsXBL/AWVYG7xiGroF9Gf9rZ6ISHHm8Vope/vHyuaeaG7KBC4L0f+di/SKq1srCgwkd3S/Zu9fB70F7qwoK8TBQCDfEzZ/2H683W9kNgiH2pxndyN9lZxYwz7CgNNPSn8GsrzUUfC02j9xvinwDIlSedn9gNGA8VpkYA==
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=dEISZrt/gaYc0myVXduKx+Lmkyab4dXBNrapmompVvM=;
 b=KY+vjSNrG35/Xe0AnbGtYB9cEfxYVJLW+Re2zvT1JM1KdLWYg6dBEADaqnZuaqKoBP3Qnl3TvYuhUUo91+AnMyS3G1NpFSiT+DzV1DC4wsPSh6LFwehEqm7cLVRaPYVj7FIUEIBCWT7NQfGM4EKNwVwdaal7hiF/H+flEgOPjQ+OV0gH5N655p+HsyEfck5a4anWqgAfdPWO6SucriQGpm48K+s6QpyXr4wvFe9JPjpFxA9PiMtA8HpCNqqsYu9JneZ80YjDP+twrYTf20/utfuKuMir32QdQaIsHzWnJwXUvS5CBiObU85jOje5qzYukWgJH1ZJ0xfNQPqCeik6dA==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Nicola Vetrini <nicola.vetrini@bugseng.com>, Doug Goldstein
	<cardoe@cardoe.com>, Stefano Stabellini <sstabellini@kernel.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien
 Grall <julien@xen.org>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] misra: add deviation of Rule 17.7
Thread-Topic: [PATCH] misra: add deviation of Rule 17.7
Thread-Index: AQHcFZ9zsboRH18vd0iLUvum4pfwBbRzK0qAgAAH1AA=
Date: Mon, 25 Aug 2025 10:58:26 +0000
Message-ID: <83267937-938d-43d8-ba2c-a07d6adb93a9@epam.com>
References:
 <ad15582787e675fadf92502f85041c3232749a99.1756112701.git.dmytro_prokopchuk1@epam.com>
 <53d5cee3-9001-49a2-9da2-e56950a77683@suse.com>
In-Reply-To: <53d5cee3-9001-49a2-9da2-e56950a77683@suse.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV2PR03MB9572:EE_|DB9PR03MB7597:EE_
x-ms-office365-filtering-correlation-id: 48ecc0bc-c3fd-4dcb-078a-08dde3c651a5
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|7416014|1800799024|366016|42112799006|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?dWhZY25WNjdKeTBQTkNPM0FEWnlTZVBkUlF1TUZueGJNZlJNQlErL3h2OEFC?=
 =?utf-8?B?YmZ2K3doT2VNZ3pFRkZWNlRNOGNLWlZHNW1mQ0JTZmxHUi9oMHBoN2t0R0sw?=
 =?utf-8?B?Z0ZYdlVwNzltSnlKeEcyejRrR1dzamNLK2RnU1BPODlIV1lZQkJmYmVrMDNU?=
 =?utf-8?B?OCtvTWlCalRQd1BuMVlZdjFrUmVBVFZUOGltOWhNMy9lRUZDY0dGVnMxS293?=
 =?utf-8?B?bjg1UTZZOU1PaEJJNkRidGJVVUJkcCtDMkZNaHRvRmgyMUM1dmRUcnNIcXYx?=
 =?utf-8?B?WDVrcVp4Y05OdjRGTUg5dVdzbUJHeDZLSmxkN2IydGFmNzNjbG5ESElvbEFY?=
 =?utf-8?B?eWk0WXR1MTlvVlFSaXlhdTJQNHBvM1FaaFNsMkYvSHhSVHlvelQ2YVBCUGsy?=
 =?utf-8?B?SmdhSExpR0IvRy9yTmduZ1RDb1hnQUg0UExjdXZ0Ulpia3hVd2E5NHVDZFVU?=
 =?utf-8?B?azBZbGlrZnBhNVZJdWUvcFVpRGVuYlVHR0NtM1p3OUhOdHB2MjN2d2hxZmlV?=
 =?utf-8?B?YzhWWHJ6LzQzaHRuSnBJc3FIV1dtZzhveEowTkp1T0c5dDZud1VIZlF6a29l?=
 =?utf-8?B?M2RiQm5zUDkwSFB0WlFway9wVXg1NjUvQkR2eUt3d0FOR0R1bHhzQS9sQ09s?=
 =?utf-8?B?R2lpaDkzWXNuMHFnSUpWZ0U0RDU0ZHhOVTdNQ2M0aVVwYXBseG5QWkhKMnRU?=
 =?utf-8?B?QXRzSlh3NGlrN1lZd1UrZDBJOW92Um1ncEFLZmtidWkzbUlFZ1ZPZXRGekVX?=
 =?utf-8?B?cUVnMFBJU0RFekdiMmJxWFFJQWtUSDNDME1WTmt4aDZlNS9XR3VkemtYVHZW?=
 =?utf-8?B?bnd2YWtwbGR2YUxBS0JORGwyZmV1bEtNbklzakFIME8wTTRoZ1Y1VFRaNzB4?=
 =?utf-8?B?REwwMTEzOWNIVlpIK1JxUmFHaFlieHVTUXJlYTNNZFhjZlpXdFNSVytlQXUv?=
 =?utf-8?B?R2UvbFVVbFNuMFh6ckRYVmNpRUdESzE4cTVxU21LN0tCUFdsTlRHWWdEMVdB?=
 =?utf-8?B?aWRHN0JIVnQrdFc0RWVKdWhQcW5uRHExSHdxZzdpQlc2Q3lSbWsvdUxBTGxM?=
 =?utf-8?B?Z0owbjdvdEF6VDFDQnN1VXM1UW9oUXNTaitZRklHNHlXbXEvbW1NeGoySlhw?=
 =?utf-8?B?SEo2VGwvblFUYnB0ZlNFb3NhL2p6R1UzTmNkWmprbkdkWW11a3hpcUxWM1M5?=
 =?utf-8?B?aWNBN0Q0WmxTbVdtSU9zTjNTTTJQaEt5b0kvaGZvSmQvd0t2Zk12eFJIdTQ1?=
 =?utf-8?B?VHBxU3FMTWZXaDIrb1h1WGVNQUZTcmRQRThBRjBYdjVaTzhQQW1XZ1I5bG81?=
 =?utf-8?B?Yll2MVpNS0x4RlFOaXRuUUI5WmVTZk1rS2VNTndIV2p2cng3blJOcE53U0gv?=
 =?utf-8?B?QmZzY1lvUmExdVh1bURsM2Zuc1dHM2JrSnNOWjN0d2JGWXpuN1djSFJYVFJm?=
 =?utf-8?B?V2YrNFhIZnE2aTkvSDlvQUlrSU9NTXNRaXB1THRhYzVzUHVDcnpqVlhRbmVN?=
 =?utf-8?B?OTMvRjRtWVR6SjEwODlYdmROemxEU052M3N4NGovckV5elZJdFphK3RiUjEx?=
 =?utf-8?B?T09hTEQ5MUhwNzd5OXBUVGZYdGdYTTAwT0tubjlqVTg3Y3ZDc2Z0dU1ialpS?=
 =?utf-8?B?U0pXSnpXajhPTk9ybnNTMThjR2RseVptVitOUmdYWnJLSjQrYndXajg5eUgy?=
 =?utf-8?B?MHJmRWdpWFRwd09PWGdNVnk3eEZTbWZpOHhodlljS0V5eC9uQVFwSTRBYmJP?=
 =?utf-8?B?MmswVnRnQThnQm9pUkZSUzc1Yjl1RXdhaUE2QXhybHdaczdXZ1dvSlBzNm9l?=
 =?utf-8?B?aEoveXZsNDRkbE9ETmRVeGhMc3Jhc29OY2pYYWJRWkJKZE56UWtwZDl0V0ln?=
 =?utf-8?B?NmVac3FMS3lwNmJYTGtBeUNVV0RvdUY5b2ltUGRVVXlZUUhocTRjZ0RDVU02?=
 =?utf-8?B?UDFOTnFnNUgrUEdpalVoUHo2eklUVzlPcXd0UjVtSUFnZ0ZBSGs4OWtOMEVt?=
 =?utf-8?B?YjhESEVhaE9RPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016)(42112799006)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?cDBlS0tOOHZ1Umg5cElRQXdLL1ZEb2xuV2tTMjVVUFJnMHVOelZwR1ZNUHBL?=
 =?utf-8?B?RFlINFlDTlh6ZCthb1BPaGtkQ0EzaW0ra0NKR20rMFpjWVUxaDlUL3krc1Bx?=
 =?utf-8?B?OGVtb0tOdjh2c3F5WHFqUC9ZOWpVWTJrV1pNdGZQczBMOFpkYk1JWjBzWHhm?=
 =?utf-8?B?cm9KQnJjWXdJTndYa0p5clNKUnlzaCtSL3BSYXBVcFc4YkxFclJkWTl0aHdX?=
 =?utf-8?B?b3lKakV6d3RqclF5RWFNcklFdjhpYnYxWnluTFpxYVEreWNJZVdKaEwrR1ZP?=
 =?utf-8?B?VXByZnorNm01K3J2ZFlyekpMVlkxWUZSeW5yeXFJb1B2TldnNVlLWTRkeHRj?=
 =?utf-8?B?RWpKVW9NNmlNTHNZbFI5V2FleWpPZ2I4MFNYdTUrMFRlbGFOa2VHSFMzWnNW?=
 =?utf-8?B?ZTU5Z0pFN290UFVRZytQYlRBOURuckdLM09Rc2N1RWp4SjVtZHdKeGx6dW5P?=
 =?utf-8?B?MFJMWlUxcTQzeDZMakNlWjFJKzhtdHZUbm9SVzBwUXhSbmpxd3drYWlURURE?=
 =?utf-8?B?UDAwRXRmV20xMUEzZHdBbFRJQm56ajVZeXdkdFpSS2V4aDl5Q0hweWpGWVd6?=
 =?utf-8?B?Um04TE1LZGNEaG9Ka1JpNEJDeXpiRlpqWGtYQTZQWXdlWDV5djBjNXNHbUxV?=
 =?utf-8?B?RFJ3SjdZTzRoWHp3dS8zTldoUHB6dlROSDhTd3RCOXNJd1JCWlA1Wm5CMitp?=
 =?utf-8?B?TXl5UnFYU0tkOEhPK3NkTk8wOXUvMm50aE5nSG5vM1l0a1RjbTJNdEVVZGJD?=
 =?utf-8?B?Z0FjZWRXeW9EeEZrbFBUQ0tKcDkvVW5FcnNBdG5wdkNtT2ZSV1NSK3ZGTDBs?=
 =?utf-8?B?OThSY2pDb2ViaEZQY1hLbE1KS3pldVJJNGJpemw4TUZiY0JqcWdkMlNEYmRU?=
 =?utf-8?B?a1Z4dk9McUh1Wjhlb0NCWXNpb1RpUkQ0NVlMYjZWRDJDdHVQcDR4a2tkVXg3?=
 =?utf-8?B?b0M3dDF6RzM2NEZ4c2xUYjlvU1hqRFN0cjBEMHJscUVUYTRobTN4WUplYU81?=
 =?utf-8?B?TDdXMGVuRzZOYzVKYkNoQjRITS85T1ZnNnpIS093dzlLVE1RSGx3SW13QTNB?=
 =?utf-8?B?c2JRMkVNZndjMDVnZlp2VlJxcHhhd2NSY0xGNXNiWDh3dEVzVFoyYXcybDdP?=
 =?utf-8?B?elYwcXdwYTJXQXFWZTJSUUhIbTM1NXBTWEJrMXYzcDY0dzhtOFZqa1NSMlRG?=
 =?utf-8?B?ZmJWc2J1MjE3cWVSODJleHQvcW9sSGZVZ1MybmxEdFFXWXQwVXNIdjhlM0Zu?=
 =?utf-8?B?VGpkZ3hWZDVVYWY5MFFWdWRUcTVLU3ByUjBNOVBvMHF1MzFFOTZqOTVXQmJo?=
 =?utf-8?B?NjIzd0tiNHFLTGViUWdJNVNiSjVKcU91dExwWVVnVlY0MVBQWUkxUHdEb0Ir?=
 =?utf-8?B?MnBYWkVsdWJEdFlRWS9TM1JSTHdRYW9GZXRkS3h2Z1czTzB0cVBOcTRiRERz?=
 =?utf-8?B?M0kvWStGSzNmUVZGU2plY3ltMko3VkVWVExxNEpxc3BDeTNoQzl5ZytCTW84?=
 =?utf-8?B?dDAxeWF2K000cGNOTmlINkdpb20wRVhxZU9zSjgyNUcra0F0aDRSN0dJaFZk?=
 =?utf-8?B?djN3Q29BUklEUmFQaTd4MTUrRHJLZkZwMkFHcm9kTVdPdG43TzhoZ3BGMnIz?=
 =?utf-8?B?eEhBK2JYOUp0cnVMMnU1anhjMkZNZXU2b3Z0L3Z0RlovcmJrWFFkem8wSThF?=
 =?utf-8?B?Ly9HWE92aUNZNStIa3BzSnF6OGtEclo4S0xaNzZyK0JQcS9VMlorOVVsSHZW?=
 =?utf-8?B?QldYd2ZJd0k1dkp0YmRWcGZpQjdPOSs2Y2w1TGRlbFdiUC9vakVwM003cnlM?=
 =?utf-8?B?S1RhdXh0SUdKR0EzWVpTRGgvU3ExTGxnWmsvRTQzSy9wNi93NTlEc3NlektM?=
 =?utf-8?B?dFk3UWllQWw3TS9qOGs5NEtqV2laVko4dWRzcGUwOEI4ZmoxdmY4SWt6ODV5?=
 =?utf-8?B?ZE0zYWVCY0twOUZVVDZYSUU2RWcvSWRraTVUQVdPNU1MZk1CTThvMFNkZHkv?=
 =?utf-8?B?OExncTZSUzFwNjVYaHdiTjkzOFJwZzlRQUlvZWUydEZzeE9UOWp5ME1SU0tP?=
 =?utf-8?B?L3RVYmJKZVVONkh5bThsRy9kLzBwSTQyUFB2QW1uQnhJTW1ETjVyK3VlaFNr?=
 =?utf-8?B?Y0VLQU51WFlrOVpOWEFDTE9XT2ZHWUlobUFHa3pOVUFMT1lscUpESEN0RFdH?=
 =?utf-8?B?M2c9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <7818AB7EA7E2B84E9AE9289A47B8B07B@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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 48ecc0bc-c3fd-4dcb-078a-08dde3c651a5
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Aug 2025 10:58:26.8662
 (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: aBLtQxqeMQoGaJU5hgwbAhlCEI30xuU5n+ZypWBt5frx3by55g/jtiI7rDPk9Jo3/BjpfxjSrzJhVVPCiXdiGykr+/e3dBsTkg1ETsS0bg4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB7597

DQoNCk9uIDgvMjUvMjUgMTM6MzAsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAyNS4wOC4yMDI1
IDExOjA1LCBEbXl0cm8gUHJva29wY2h1azEgd3JvdGU6DQo+PiBNSVNSQSBDIFJ1bGUgMTcuNyBz
dGF0ZXM6ICJUaGUgdmFsdWUgcmV0dXJuZWQgYnkgYSBmdW5jdGlvbiBoYXZpbmcNCj4+IG5vbi12
b2lkIHJldHVybiB0eXBlIHNoYWxsIGJlIHVzZWQuIg0KPj4NCj4+IERldmlhdGUgZnVuY3Rpb25z
IGxpa2UgJ21lbWNweSgpJywgJ21lbXNldCgpJywgJ21lbW1vdmUoKScsICdzbnByaW50ZigpJywN
Cj4+ICdzdHJsY3B5KCknLCAnc3RybGNhdCgpJywgYXMgdGhleSByZXR1cm4gYSB2YWx1ZSBwdXJl
bHkgZm9yIGNvbnZlbmllbmNlLA0KPj4gdGhlaXIgcHJpbWFyeSBmdW5jdGlvbmFsaXR5IChlLmcu
LCBtZW1vcnkgb3Igc3RyaW5nIG9wZXJhdGlvbnMpIHJlbWFpbnMNCj4+IHVuYWZmZWN0ZWQsIGFu
ZCB0aGVpciByZXR1cm4gdmFsdWVzIGFyZSBnZW5lcmFsbHkgbm9uLWNyaXRpY2FsIGFuZCBzZWxk
b20NCj4+IHJlbGllZCB1cG9uLiBVcGRhdGUgJ2RldmlhdGlvbnMucnN0JyBmaWxlIGFjY29yZGlu
Z2x5Lg0KPiANCj4gSG93IGNvbWUgc25wcmludGYoKSBpcyBhbW9uZyB0aGlzIHNldD8gSXRzIHJl
dHVybiB2YWx1ZSBpc24ndCBxdWl0ZSBqdXN0DQo+IGZvciBjb252ZW5pZW5jZSwgaW1vLg0KPiAN
Cj4gSmFuDQoNClllcywgc25wcmludGYoKSdzIHJldHVybiB2YWx1ZSBpc24ndCBqdXN0IGZvciBj
b252ZW5pZW5jZS4gVGhlIGRldmlhdGlvbiANCmp1c3RpZmljYXRpb24gaXMgcHJpbWFyaWx5IGJh
c2VkIG9uIHRoZSBmYWN0IHRoYXQgaXRzIHJldHVybiB2YWx1ZSBpcyANCnJhcmVseSB1c2VkIGlu
IHRoZSBYZW4gc291cmNlIGJhc2UuIE1vc3QgY2FsbGVycyBvZiBzbnByaW50ZigpIGRvbid0IA0K
Y2FyZSBhYm91dCByZXR1cm4gdmFsdWUuIFNvLCBzbnByaW50ZigpIGlzIGluIHRoaXMgbGlzdC4N
Cg0KTWF5YmUgc2VwYXJhdGUgd29yZGluZyBpcyByZXF1aXJlZCBmb3IgdGhlIHNucHJpbnRmKCkg
Pw0KDQpEbXl0cm8u


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 11:05:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 11:05:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1092962.1448556 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqV0b-0005wJ-Cq; Mon, 25 Aug 2025 11:05:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1092962.1448556; Mon, 25 Aug 2025 11:05: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 1uqV0b-0005wC-AO; Mon, 25 Aug 2025 11:05:05 +0000
Received: by outflank-mailman (input) for mailman id 1092962;
 Mon, 25 Aug 2025 11:05:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=1qZ/=3F=bounce.vates.tech=bounce-md_30504962.68ac4359.v1-3ab6877779b843d59553f79dcf58f529@srs-se1.protection.inumbo.net>)
 id 1uqV0a-0005w6-39
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 11:05:04 +0000
Received: from mail137-3.atl71.mandrillapp.com
 (mail137-3.atl71.mandrillapp.com [198.2.137.3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 568b6dd0-81a3-11f0-b898-0df219b8e170;
 Mon, 25 Aug 2025 13:04:58 +0200 (CEST)
Received: from pmta07.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail137-3.atl71.mandrillapp.com (Mailchimp) with ESMTP id 4c9ScT1N69zBsVD81
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 11:04:57 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 3ab6877779b843d59553f79dcf58f529; Mon, 25 Aug 2025 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>
X-Inumbo-ID: 568b6dd0-81a3-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1756119897; x=1756389897;
	bh=cUw53GTmkr3H+kCu2COqegNGDYK6OjdOIUD65Xzi6qw=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=LgWeDi4RKC+mAK/CvE9f6i35EKICrEerD4gPEO1M86pTE2Uvlwq0/RMfWqNDXnBxB
	 PtJTMvDHrzUWXAzJo3JldbRzntaa/yd4tb6YxMl2LUoFOThevo+zOCb90deXggWqQV
	 VupaOP1K6ulOZ4EajOe94h5jKMfAeJw4rJQMFE0Mnt5Jaat8Ewf6ibjzYHomFRoTKN
	 3PBbTbNW4ntFU9BEWbVdyQmmusyqoRs0VvJt9G3tyjCgqMw01dOd8EwYbmO/fTlAZa
	 wdIQmjrA8FI5q5JtO37iD4dogoVG1Rtvn6yS8e0HrAs5mbJSKnWcj0lrB1zDPFkj28
	 aNXzf7h65VVWA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1756119897; x=1756380397; i=teddy.astie@vates.tech;
	bh=cUw53GTmkr3H+kCu2COqegNGDYK6OjdOIUD65Xzi6qw=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=pocKmL9+t7QkJzspfAvN7uONcw3fJ7bd8hEUs93UTpy7CXhO3kgmjwbQDUMnql0D8
	 AmuSVivlYE08X7hkI5L5GTR32Qd87/kA+qM50ZfhmabFmg6tFRjqt3WzbaOTuAQ+ja
	 bxepGol87quM/My0drq725cZsj8D6iOvpkIZZ2h/ezvziFO8L6aGmN8BkxGizeW3Sm
	 FFYfYeWfQQdwZLwYdPE9as8d0sFDrvxN0PQnl1idRIEGDFyB8Dpsdn4Qrh6lDzrFGZ
	 Ta/kCyDplRaqIkwxikAkdJZEwAPtT3Caw76Bk4uh3DeeuEj9BrsR4pDQpI2bh98edj
	 rF9TtjNtcoJuA==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v5=203/4]=20hvmloader:=20add=20new=20SMBIOS=20tables=20(7,=208,=209,=2026,=2027,=2028)?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1756119896003
Message-Id: <5bc3f55c-ccfe-4dcb-9efa-a0d94d0fe92e@vates.tech>
To: "=?utf-8?Q?Petr=20Bene=C5=A1?=" <w1benny@gmail.com>, xen-devel@lists.xenproject.org
Cc: "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>
References: <cover.1755987697.git.w1benny@gmail.com> <4ecd33acd8bdf629e9103e97ff271150541e7415.1755987697.git.w1benny@gmail.com>
In-Reply-To: <4ecd33acd8bdf629e9103e97ff271150541e7415.1755987697.git.w1benny@gmail.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.3ab6877779b843d59553f79dcf58f529?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250825:md
Date: Mon, 25 Aug 2025 11:04:57 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hello,

Le 24/08/2025 =C3=A0 00:29, Petr Bene=C5=A1 a =C3=A9crit=C2=A0:
> +/* Type 7 -- Cache Information */
> +static void *
> +smbios_type_7_init(void *start)
> +{
> +    /* Specification says Type 7 table has length of 13h for v2.1+. */
> +    BUILD_BUG_ON(sizeof(struct smbios_type_7) !=3D 19);
> +

I would prefer having hex constants (so that it matches the number 
format the specification gives).

e.g
BUILD_BUG_ON(sizeof(struct smbios_type_7) !=3D 0x13);

(same for other checks)

Teddy


Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Mon Aug 25 11:06:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 11:06:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1092971.1448567 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqV21-0006Rx-Nm; Mon, 25 Aug 2025 11:06:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1092971.1448567; Mon, 25 Aug 2025 11:06: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 1uqV21-0006Rq-KE; Mon, 25 Aug 2025 11:06:33 +0000
Received: by outflank-mailman (input) for mailman id 1092971;
 Mon, 25 Aug 2025 11:06:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=J9Dq=3F=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqV20-0006RS-Fs
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 11:06:32 +0000
Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com
 [2a00:1450:4864:20::62b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8d74ab40-81a3-11f0-b898-0df219b8e170;
 Mon, 25 Aug 2025 13:06:30 +0200 (CEST)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-afcb73394b4so599183066b.0
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 04:06: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
 4fb4d7f45d1cf-61c311a767bsm4763224a12.2.2025.08.25.04.06.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 04:06: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>
X-Inumbo-ID: 8d74ab40-81a3-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756119990; x=1756724790; 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=J+rIITZGrZCtgU+05XVTyRVqsCzlMwy9FXnHzC1Ekz8=;
        b=GlD3uGSu40HvtKN5l6fwRACrWt6Q03Wam5UYKbCoQY/dFBXp95c6Fn3BR41JtYDpi8
         36kWn1c0m/dbx6xlG1KqE2zxPxN1bSsUCUu0uaPSEOXqtcTOltPSA6fup0hfA3WwER8J
         pXSoRFTtMe84ZW1CjeVq1Dt+gudKvqMzuEOLjNJdtUVVmuO09VjeD3c0u2j/8R17Ubbw
         qffBujcHgntHe9bY4c9xEFxMlf2GAiRY3qVUmKOhYXBGyUI/Ajkf9MbB9tWeALXobWEJ
         4BUIE8Gzn9bVTKz368acuB9mqlMIbyw7IXIwECJry+fFhFcQ3HCV5V1PljuZAiOi90GM
         IJ1A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756119990; x=1756724790;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=J+rIITZGrZCtgU+05XVTyRVqsCzlMwy9FXnHzC1Ekz8=;
        b=dosXnlWNbK2C1MQ5OdQoFlkrbBFFjw2Ee8O7TQhkIIeb5+cQ/EXmhGj1aWfmN6dXZ6
         4b6ajscykk9/w0gIw/NYl6r4C0AD2gf20/dcSs7/Ml+Wv0AszD/FGkKyNQI3AVkNSw4P
         KPjxwdsxTnCsHsHs9P3yyGWV5Xv6dDhvwMmHb0UWB1llmTBuhvtgIQu9WKXoIdmMKWhO
         Exenj+dU6OqdQDomVqaTBpMV4P3lvQ4f6lmRS/mN0jm+YfImnH6kdNP0LU0f5Ze6tcgB
         PDSO6JvG0DRycDTu3eAqO23Vy4HPa6r3S4cX5WgRfQ0ZvgNz72U6FuFAKD9ObXIeUaBm
         eB4g==
X-Forwarded-Encrypted: i=1; AJvYcCVfGr5q59CDYJeIKY/Bx7EdBICF30AXjr1OJMmhhIrD+yUPbYoJLIY7eTRsueJ6IyhdEU9pTZpkuFY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzgZ9gmu54yP7v2+UhasEEmvon8DIZ90L3NDltxJyDYd4uNYe6+
	hxSf3PRDl7XjLiyqlQP7G8pxBpanCJtiJNSIMxBBdrT5w+oEMfrEuWFmcZev6f7gEg==
X-Gm-Gg: ASbGncup6kGDon2PDOUORY0cc1z/BRNfc+Oy2QNQMiQx0uJL3732hLJBu4tjulheM6c
	Y2gcQnKKj3VfpUs8Dvk6GxxW0WI1gCVtM7p4TUbz2cuSEl0gP2Bds1Xn7bon9ZSaLPSfi/ZOuaS
	a8sAMfXbvr1X09SF5IU19qWtXQjwh3wKUzEu8k9BrBvRlqD7DG6FTkK8ZFeQV6IqdvY4mhQYjHL
	PFNY/wkZEzhynGbRKGjmMrzvGoifON9/duhUCbEQXbOzaLyxSKIKWNvoBn8hbhNj+HrFXV9iUgk
	IVP1SCZBm2DbeeKQAz/IXMEYQ7Vfa0vc6YN2GeCcx6sYIeDHtrXqQ2sK2pXwFfu4DI1VMB+FKVm
	DMS+nD8WVics6q4evPeskLMC6bet83N0PW8ThBJd0ObCXpVQyvTbMBFxQMUNrmAuhvHI5Aj1LIy
	k57r+XrF8=
X-Google-Smtp-Source: AGHT+IFv4u2FFgxPvLNoTSyKkS2UtF898EtKaRo5wc0+pMyhY89j1xUg6DJRBj4gz3rtM+DML3xUlA==
X-Received: by 2002:a17:906:f583:b0:af8:f9e8:6fae with SMTP id a640c23a62f3a-afe2944693dmr1082913766b.46.1756119989570;
        Mon, 25 Aug 2025 04:06:29 -0700 (PDT)
Message-ID: <052e7926-f114-4b16-b197-8a4303f6b5d1@suse.com>
Date: Mon, 25 Aug 2025 13:06:28 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] EFI/runtime: switch to xv[mz]alloc_array()
From: Jan Beulich <jbeulich@suse.com>
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Cc: Marek Marczykowski <marmarek@invisiblethingslab.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <41b7e14c-59ef-40f5-8c43-69bdc5fb4531@suse.com>
 <761b584a-51fb-403d-948e-3366501cea50@apertussolutions.com>
 <755dd957-514b-4316-82f5-3619c19cbb15@suse.com>
 <9f9f24f0-c16a-4f55-b3c2-a3f4b485c403@apertussolutions.com>
 <2d93e9a7-abef-4ef6-bcbc-9081661edb58@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: <2d93e9a7-abef-4ef6-bcbc-9081661edb58@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.08.2025 08:46, Jan Beulich wrote:
> On 14.08.2025 02:29, Daniel P. Smith wrote:
>> On 8/12/25 02:12, Jan Beulich wrote:
>>> On 12.08.2025 02:19, Daniel P. Smith wrote:
>>>> On 7/23/25 09:39, Jan Beulich wrote:
>>>>> Use the more "modern" form, thus doing away with effectively open-coding
>>>>> xmalloc_array() at the same time. While there is a difference in
>>>>> generated code, as xmalloc_bytes() forces SMP_CACHE_BYTES alignment, if
>>>>> code really cared about such higher than default alignment, it should
>>>>> request so explicitly.
>>>>
>>>> While I don't object to the change itself, I think this description is a
>>>> bit over simplification of the change. If the allocation is under
>>>> PAGE_SIZE, then they are equivalent, but if it is over the page size
>>>> there are a few more differences than just cache alignment. It
>>>> completely changes the underlying allocator. I personally also find it a
>>>> bit of a stretch to call xmalloc_bytes(size) an open coded version of
>>>> xmalloc_array(char, size).
>>>
>>> My take is that xmalloc_bytes() should never have existed. Hence why I
>>> didn't add xzmalloc_bytes() when introducing that family of interfaces.
>>
>> Right, which would be a valid argument for replacing it with 
>> xmalloc_array(). Though, I would note that there is an xzalloc_bytes(). 
>> My concern was that you stated there was an open coding, which had me 
>> expecting there was a line of the form, xmanlloc_bytes(count * 
>> size_of_something bigger), being replaced by 
>> xvmalloc_arryay(something_bigger, count).
> 
> Both fir this and ...
> 
>> IMHO, while the C spec does specify char as 1 byte and thus 
>> interchangeable, I would agree that from a contextual perspective, 
>> xmalloc_array() is the more appropriate call. The use of the allocation 
>> is a character array and not a chunk of bytes for an arbitrary buffer.
> 
> ... for this: Hence my wording using "effectively".
> 
>>>> With a stronger description of the change,
>>>
>>> So what exactly do you mean by "stronger"? I can add that in the unlikely
>>> event that one of the allocations is (near) PAGE_SIZE or larger, we now
>>> wouldn't require contiguous memory anymore. Yet based on your comment at
>>> the top I'm not quite sure if that's what you're after and/or enough to
>>> satisfy your request.
>>
>> The phrasing stronger was meant to be more clear on the change/effect, 
>> specifically that the underlying allocator is being changed when the 
>> allocation is greater than a PAGE_SIZE. Not necessarily a long 
>> explanation, just the fact that the allocation will be coming from the 
>> dom heap allocator as opposed to the xen heap allocator. There are 
>> implications to changing the allocater, e.g.,  at a minimum the 
>> allocation order and nonphysical vs. physically contiguous effects. 
>> Having it noted in the commit makes it more obvious what this change is 
>> actually doing. Which may not be obvious when seeing the simple line 
>> changes occurring in the diff. Later, if there is an unexpected 
>> consequence caused by this change, a stronger commit will be helpful 
>> with the bisection investigations.
> 
> First: I don't think each and every such change (there are going to be many)
> should re-explain the switch to the xvmalloc() family of functions. This is
> already stated clearly at the top of xvmalloc.h: Over time, the entire code
> base is meant to be switched.
> 
> Beyond that, to achieve the stronger wording you're after, would it perhaps
> suffice to have the first sentence say "..., thus also doing away ..."?
> Otherwise, may I ask that you please make a more concrete suggestion?

Ping. I'd like to get this in, yet I still don't know how exactly to satisfy
your request for a stronger description.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 11:07:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 11:07:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1092989.1448576 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqV2r-00072m-3I; Mon, 25 Aug 2025 11:07:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1092989.1448576; Mon, 25 Aug 2025 11:07: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 1uqV2r-00072f-0W; Mon, 25 Aug 2025 11:07:25 +0000
Received: by outflank-mailman (input) for mailman id 1092989;
 Mon, 25 Aug 2025 11:07:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=J9Dq=3F=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqV2q-0006iB-8s
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 11:07:24 +0000
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com
 [2a00:1450:4864:20::636])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ac1bdd86-81a3-11f0-a32c-13f23c93f187;
 Mon, 25 Aug 2025 13:07:21 +0200 (CEST)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-afcb72d51dcso567261366b.0
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 04:07:21 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afe7e3f63e9sm201305266b.98.2025.08.25.04.07.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 04:07: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>
X-Inumbo-ID: ac1bdd86-81a3-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756120041; x=1756724841; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SgB/N2sMY7qym9l+rJsMZNVOkfFLhyKIprjaYse0czU=;
        b=SIq+d+4y5hB9k7RdQLBI+z8HcAms6HbMAuVLHJ/Fv7T0N9ndnL2wS5liK7vzvvqDZW
         VCjf1P/xT/mniWaKdfU1qy0IE50f/71GJBL7hpjRLkQWQ7WDlFcQJUsUDWOS3lJL+ayo
         2P1bxEBOEj8fhIheRwWNw8tT7+rosuvFDlCd9TsEJX8U9CPusrc07zFt7XXtNOXeJhXn
         AvHG7ApC9k9niR+6ki4lPlm/fdZYdK9tL+NkKtWknoND3IcmBhcTjDJITiMR4mVjTf/2
         7DAbfdFmMFf9xK7FLAefwGBCu5RxfD4cNqb+QqtrUmL/dUOUtVpMP7EWFzgDFBskTrH1
         +bqw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756120041; x=1756724841;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SgB/N2sMY7qym9l+rJsMZNVOkfFLhyKIprjaYse0czU=;
        b=oQ+8K9QYhbn9+i8c1UQQ9ysNb8vXKIz2RxPYKJCAuqOOHglpFbF86cN4HAYniB2gik
         gu82EmuHsKEa5daS+5UVkw0OhWojOyfgtxAXxxyWwhgPlnORA/+SJccDj4B5fX12rQuj
         YQ76T1kTV/l19yOSyzXJQ2VgJSsxS36+IsIjbq5Z6HdqXJ0D3+Ky46fFFAYoahvCt4MP
         5YOxet2I6dY71hWZeAvgftnni3K2c/zxVSiUe5M0/vlO9W7oJZK2J/bKat5F6i59x35L
         YldgE0hcgl6HN8o85ObkW8f7umsmsPbWznv+bI34itBgUXpQZnzk3Dy95RQfmiuLaxHi
         C1OQ==
X-Forwarded-Encrypted: i=1; AJvYcCW/XfIDeT8rIyq9/J43E0sOSnpCWj8JmeR6EbnaNapcN1x4Tc0wVQPMRjK1Qcaqj7siIZmIeghdHp4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzJ1bIT7P8MA9vCxtMZfQEyZb0oA+LO7fNHc0BZvivJCorxp97Z
	otVoLl7QiCsu9RNcfk5gS1w6qz2lsX+CDsTcYAv058gTJuRMbvO5UjB3KL3UI6yJww==
X-Gm-Gg: ASbGncsTuTiBWRvUnTU+LGhm+0p8c15G0quoI2A4plxuC83iYnPQjIZcP9Izhf1TeCv
	57WC2pA6aUgAkxti0PfJaVwuSP9BZRWrRk81qeIhL4zWTI2/G4RK/UIjdMD0EI3UYe1EJNXc1Qv
	8oSX64uh/fW79rcJ9kchpsgRmA0hPNplvDlJE3CfWvRqDDCDsq1QMNPPHLzG3d7eDrgKUwZKKOM
	ooCVDJVpkySyHDkRBr243Fuc1oTI6WzGs1lm3fXy/zGXZRbK1BQ/ViBom+9dtiw/TOFbbfzZl5f
	fANPICev78vEb2/pLTQdjjFAhUv627BFHO7goJ8C96RAkjESnEGpgkAgUJB7rE7tP1n2Bk16094
	S0R1dk7MdVBxA+VPta+GusZmQeA7tpYGe487JTzKQj+h9AynDipS4dsEFNeEHoQWlBBffgbH0Bo
	rRIdd8e4F5Q3WaWv/8Yw==
X-Google-Smtp-Source: AGHT+IGjvrUHDNlOpdlr8ReSt87JAwxvyoFyEYyLgM4sTm3Vy0e6A9IPzYdtagTXXyplyVmvN8QQnQ==
X-Received: by 2002:a17:907:3f86:b0:afc:b38f:5d72 with SMTP id a640c23a62f3a-afe290469fbmr1086411766b.38.1756120041104;
        Mon, 25 Aug 2025 04:07:21 -0700 (PDT)
Message-ID: <330f8ee8-9fcd-40e4-96c0-ac126b047070@suse.com>
Date: Mon, 25 Aug 2025 13:07:20 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] misra: add deviation of Rule 17.7
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <ad15582787e675fadf92502f85041c3232749a99.1756112701.git.dmytro_prokopchuk1@epam.com>
 <53d5cee3-9001-49a2-9da2-e56950a77683@suse.com>
 <83267937-938d-43d8-ba2c-a07d6adb93a9@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: <83267937-938d-43d8-ba2c-a07d6adb93a9@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.08.2025 12:58, Dmytro Prokopchuk1 wrote:
> On 8/25/25 13:30, Jan Beulich wrote:
>> On 25.08.2025 11:05, Dmytro Prokopchuk1 wrote:
>>> MISRA C Rule 17.7 states: "The value returned by a function having
>>> non-void return type shall be used."
>>>
>>> Deviate functions like 'memcpy()', 'memset()', 'memmove()', 'snprintf()',
>>> 'strlcpy()', 'strlcat()', as they return a value purely for convenience,
>>> their primary functionality (e.g., memory or string operations) remains
>>> unaffected, and their return values are generally non-critical and seldom
>>> relied upon. Update 'deviations.rst' file accordingly.
>>
>> How come snprintf() is among this set? Its return value isn't quite just
>> for convenience, imo.
> 
> Yes, snprintf()'s return value isn't just for convenience. The deviation 
> justification is primarily based on the fact that its return value is 
> rarely used in the Xen source base. Most callers of snprintf() don't 
> care about return value. So, snprintf() is in this list.
> 
> Maybe separate wording is required for the snprintf() ?

Minimally. Personally I don't think it should be deviated globally.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 11:08:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 11:08:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1092999.1448587 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqV43-0007Zm-F8; Mon, 25 Aug 2025 11:08:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1092999.1448587; Mon, 25 Aug 2025 11:08: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 1uqV43-0007Zf-BN; Mon, 25 Aug 2025 11:08:39 +0000
Received: by outflank-mailman (input) for mailman id 1092999;
 Mon, 25 Aug 2025 11:08:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=J9Dq=3F=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqV41-0007Yq-Lu
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 11:08:37 +0000
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com
 [2a00:1450:4864:20::636])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d8a2d05f-81a3-11f0-a32c-13f23c93f187;
 Mon, 25 Aug 2025 13:08:36 +0200 (CEST)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-afcb72d5409so700248566b.0
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 04:08: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
 a640c23a62f3a-afe8b5fbc8dsm100593766b.1.2025.08.25.04.08.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 04:08: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>
X-Inumbo-ID: d8a2d05f-81a3-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756120116; x=1756724916; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=HE/JNop0V6II04o4kHwc4Fhg0v3FXXK1lCfxwieM7Fc=;
        b=C/yPMdtvVRFsvpDcqUueahAp7w9fgB6+iLC9vKObp/C8kG+ah6ew/R6ZduHRzBatRH
         IrgF3No6zZXMb0BOV+22IWIpA8fmBJh9x+FU5Q7OjsCr+ey9GRpPYdEl1G/fgDK1Y/Nk
         TMT7zCOIFRkdltHbiwWju2oW5TBE4pyw0T1e+WMlJkfhldEtPHqG/IV75NtN8/5YYdhz
         yEZUSJ/U4JECdTXTo7sChgNxCrsbOedMAeAK/bIa69olqGwxWjdi04ksBCz3KF9KYzpD
         Yn6T3oSFAZOE0wjxSO8v0j62vozSah361wwvWJieHxCU3GvcImwRLLoA0EfZgMA/Eq1F
         aB6A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756120116; x=1756724916;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HE/JNop0V6II04o4kHwc4Fhg0v3FXXK1lCfxwieM7Fc=;
        b=uStz0nTmdjAHEh/ruITMJIsnTOptVD2mA2OstiJC9k+7dPAq2gCGInGaKf/sPeBrtz
         nmjYmhbu7+VkqgRhsh6g6BVTNJHMpcc7KVcDXPS3LNAsYnW341tzARywz9EhM13pDaNm
         +HTHO1iI8l6MHb/CLwtAvqG3ShfQL8PKahl+HlVwrEHUFNohP3r3TD92x/HF4q4qi4zT
         jrbKtcCsozhxDJmTZREQEd21QbTsyVQ+U5xcC0vWQRJO6oTpItupjqpZAolXD6D3CUPB
         rmBbr8/VuI0shCfzSdERegA/xNKIaxpPtHuTIxzcMK7r2QUNaQeDXTmew2QTHjF5am3i
         mPSA==
X-Forwarded-Encrypted: i=1; AJvYcCWpO3X+R3eNujbiKNCDYfXjq0+IyuYqmxlEIor2vNhGpE5yO9H3pjSqtLYtNAgokfk5VXNqxv3o75Q=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyS7dNpgGMpoiaJyec48Dc7O7O7Q7SIICS8gWYJCVMiVmD6hOQn
	S7AY+69mWrjr2HKqlEfNxZi558NP7MBlugZFpK9MZSsqD8RM0KwhhkbONIME47ph4w==
X-Gm-Gg: ASbGncuatkh6Ro3FBVuB9MJTuttfoPSH8E4G4kAPjRmf5Ss/yh2zXoL3JEJbmcEe/66
	N+uMDZHTh3VmHqcCgyYhi5zcYA41SmOm6w84ytmnExPpRR4SLNlwKb3K0y42hHcT0P8MaOnhz24
	VjCVkSzJTDDWWUEsrfcNwr1E1+fqR2BSROZSvH+UO3E6Uqn12QyXYah0H28ivV/EVFemCj6BNfL
	KHw/64KJAOi9mJw1cwyPbK/4MNTT1WsextpHZ37334IWiS0Fv0IovmOUfF4ZxFm9bPbLPx2lvBf
	DH78nw2K/62rKLq/+FBMcDA2Db79JbIv7TpA2PN4Y9hgaXc0dsF8YC6QGxHZYEbw2EosBGGdvum
	CNvc64cjd4lsD8ifcHHxgPs+2I0aTWXiECm0YU0y782moaUuKOK+Gz0CNsaedKlQvUpD1+/uKG8
	PBTGOHBhK+O3UfpRg1Dg==
X-Google-Smtp-Source: AGHT+IGpRSp3j0YTOIi2SL3CvwgyQKO3UyNdIbmEaqJa0NLPvdY1E8H2D6HBuFg72vscijvLhudBnQ==
X-Received: by 2002:a17:907:2d8c:b0:af9:8688:42de with SMTP id a640c23a62f3a-afe2958acebmr907608266b.41.1756120115808;
        Mon, 25 Aug 2025 04:08:35 -0700 (PDT)
Message-ID: <ea354e99-34f7-4483-b300-4cb96a755419@suse.com>
Date: Mon, 25 Aug 2025 13:08:34 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 3/4] hvmloader: add new SMBIOS tables (7, 8, 9, 26, 27,
 28)
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>,
 Anthony PERARD <anthony.perard@vates.tech>, =?UTF-8?Q?Petr_Bene=C5=A1?=
 <w1benny@gmail.com>, xen-devel@lists.xenproject.org
References: <cover.1755987697.git.w1benny@gmail.com>
 <4ecd33acd8bdf629e9103e97ff271150541e7415.1755987697.git.w1benny@gmail.com>
 <5bc3f55c-ccfe-4dcb-9efa-a0d94d0fe92e@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: <5bc3f55c-ccfe-4dcb-9efa-a0d94d0fe92e@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 25.08.2025 13:04, Teddy Astie wrote:
> Le 24/08/2025 Ã  00:29, Petr BeneÅ¡ a Ã©critÂ :
>> +/* Type 7 -- Cache Information */
>> +static void *
>> +smbios_type_7_init(void *start)
>> +{
>> +    /* Specification says Type 7 table has length of 13h for v2.1+. */
>> +    BUILD_BUG_ON(sizeof(struct smbios_type_7) != 19);
>> +
> 
> I would prefer having hex constants (so that it matches the number 
> format the specification gives).
> 
> e.g
> BUILD_BUG_ON(sizeof(struct smbios_type_7) != 0x13);
> 
> (same for other checks)

While reviewing I was first inclined to ask the same, but then though that
with the hex values stated in comments it would be fine either way.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 11:14:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 11:14:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093014.1448597 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqV9o-0000xv-1t; Mon, 25 Aug 2025 11:14:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093014.1448597; Mon, 25 Aug 2025 11:14: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 1uqV9n-0000xo-Uz; Mon, 25 Aug 2025 11:14:35 +0000
Received: by outflank-mailman (input) for mailman id 1093014;
 Mon, 25 Aug 2025 11:14:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=J9Dq=3F=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqV9m-0000xi-Oe
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 11:14:34 +0000
Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com
 [2a00:1450:4864:20::62f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ad6f2469-81a4-11f0-a32c-13f23c93f187;
 Mon, 25 Aug 2025 13:14:33 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-afcb7a7bad8so579809666b.3
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 04:14: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
 a640c23a62f3a-afe8d03f94asm87251666b.57.2025.08.25.04.14.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 04:14: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>
X-Inumbo-ID: ad6f2469-81a4-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756120473; x=1756725273; 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=lbLRWEm1J5ANIdAtHNu87pWZc77qiIAqn0iKwi8Q95w=;
        b=KATrIBPa7UAoosFXOPaAhe31Q7ZQ5UwQVnL2oBCN5NH8ddwYzPj+g8568h1MVfb1Tq
         HfRCWM0Cu5CV1Dx4QOFsIh+PUbRkSRdRvJxg1+A9MZwx20vuqz19R6Lyuvtvt06cT4Ts
         6b2yyDfLfCmUXv+q5UJn+5JScT82wuOmt7IJOC8oMTjgpvoxt1+6A2pXoOLhqN87Wr/g
         KDlis0I1jNrt3c9sA517YCsoJzpH+tiapDfHQIpZJgMhmz0P7IaYgim+25H+7WzayN6j
         zC1g+k5b/6opUJtcv07P32I7DxdFGBKXK5DcEXXjIJoJaq7XrZ89rxMrNRMSQdg124kJ
         F6tQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756120473; x=1756725273;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=lbLRWEm1J5ANIdAtHNu87pWZc77qiIAqn0iKwi8Q95w=;
        b=f6u/nOpRldkKasaDqRoPiqaRdaWSxcBx3wgzzljhjwFbjfgRgARR7PNl6yz/VddlUK
         SjLHgJhOByllGMqFwtyS3j/lwbIE37CVOBT0LuKFj7vyrhErs5dUiPSomQ+EVU3/zFFi
         1CoXbmIWYkoHrr4ISU+PKUQpyapIIwOaaHqA3OA+RjIcQD60P5OtE+aep7BdHEcTXRjK
         O9xLEC7Vit6oTSS0Ihx54w5yb+3kbzVEeO7Thj2XgurAtNK1iFqSzlTjkpR4nsvYKgNc
         1WaqSqPZmnH3qaosvaOCHTNiLyLpP7hLmsJr3bjMTAaEJ6talXJ/d4Tc5AK3Pe0X2bBJ
         rA1g==
X-Gm-Message-State: AOJu0YylY90xxISYjpX84q7JimxtX3lOo9nwz/RkYpfqj3EOzhE1BDK8
	hg70BUCEtFBYf6+4RLtUFuYWstCtkFKHcjbUq4BBEez5ix18xQKwbFsRY6TYkOJQJDUXLc4LRtB
	GCRk=
X-Gm-Gg: ASbGncuc/QZ3Im+IiMSGlLkS+pSc8wxByOkUfdmwaueWXA+NUDJS9kTrVVibdqVpC21
	e18WzrIpmme9jOu/XZYTPAdngmGjqBFxdFJUXwOt0wx4kIlncOWTJFHk9GLC8X54b4InZn+382H
	PhSdlj0jNwWT5ZY4Zl5zNGi6Z7LUhflPzCv8d4I1n+d5yj0GxpmZp1+ri3cgdVP4cNp18alvzCh
	RCcQLXQCtL2Dwh88ZnAuQYw33Wo/hPR9htZHzH3POVAjYLRi3adwCavPVTOghXIxDIkHfthAFRT
	VctvOopAPlbU2sfR8H5NLIrAM1wDuIkCp42AhYA5PGAkzUQ8LhSVyzk9yw2jmdiK5oTMn2cdHNW
	0wcYK/c3Fk00Z8K8DzvKsWOPrRi+tZ0oO/TenAZUBrLhirPLEvpO9lNGhdUrOghOIweJapT3rwC
	WFDDm+GwU=
X-Google-Smtp-Source: AGHT+IFVemMjp6hJDSN3OseRfzkfVEKuLo4ppCBKTT1LRmIf3ZRaQofbqdmrfHNf+vJWoSxIvLxRnw==
X-Received: by 2002:a17:907:7e85:b0:afe:94d7:775e with SMTP id a640c23a62f3a-afe94d7797dmr40979466b.18.1756120472751;
        Mon, 25 Aug 2025 04:14:32 -0700 (PDT)
Message-ID: <0ebb4f2d-31b6-4536-91fc-75b5a9aa7dfd@suse.com>
Date: Mon, 25 Aug 2025 13:14:32 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: 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>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] Arm/platforms: fix build with gcc15
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

For two of the headers gcc15 complains "header guard ... followed by
'#define' of a different macro". Misra certainly wouldn't have liked
this either, if these headers were covered by a scan.

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

--- a/xen/arch/arm/include/asm/platforms/midway.h
+++ b/xen/arch/arm/include/asm/platforms/midway.h
@@ -1,5 +1,5 @@
 #ifndef __ASM_ARM_PLATFORMS_MIDWAY_H
-#define __ASM_ASM_PLATFORMS_MIDWAY_H
+#define __ASM_ARM_PLATFORMS_MIDWAY_H
 
 /* addresses of SREG registers for resetting the SoC */
 #define MW_SREG_PWR_REQ             0xfff3cf00
--- a/xen/arch/arm/include/asm/platforms/omap5.h
+++ b/xen/arch/arm/include/asm/platforms/omap5.h
@@ -1,5 +1,5 @@
 #ifndef __ASM_ARM_PLATFORMS_OMAP5_H
-#define __ASM_ASM_PLATFORMS_OMAP5_H
+#define __ASM_ARM_PLATFORMS_OMAP5_H
 
 #define REALTIME_COUNTER_BASE                   0x48243200
 #define INCREMENTER_NUMERATOR_OFFSET            0x10


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 11:32:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 11:32:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093023.1448607 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqVR5-0004At-Fw; Mon, 25 Aug 2025 11:32:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093023.1448607; Mon, 25 Aug 2025 11: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 1uqVR5-0004Am-Cr; Mon, 25 Aug 2025 11:32:27 +0000
Received: by outflank-mailman (input) for mailman id 1093023;
 Mon, 25 Aug 2025 11:32:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=J9Dq=3F=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqVR4-0004Ag-AL
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 11:32:26 +0000
Received: from mail-ej1-x62e.google.com (mail-ej1-x62e.google.com
 [2a00:1450:4864:20::62e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2b8ab767-81a7-11f0-b898-0df219b8e170;
 Mon, 25 Aug 2025 13:32:24 +0200 (CEST)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-afcb731ca8eso672146866b.0
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 04:32: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
 a640c23a62f3a-afe74f5672esm281066866b.59.2025.08.25.04.32.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 04:32: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>
X-Inumbo-ID: 2b8ab767-81a7-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756121543; x=1756726343; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Dy8sev0VqG6oWNs9lVAThVXzWNFsVRxxgPVBYijMH68=;
        b=TG84VT0xA/FlbbYCK8cv9M1upXSg0oWhaM80JBl9FtvHH62PFRbivszQlIHrEhzZ6f
         7dvsxoYbU1B9CzilLf48SNpZGLEdrcxD+sZDcq/RWQKsjZOeVcx/RqxGSdrywmym1Ur+
         Yxf8YYxUpw8fzZXuLckjvBj80/XVxajz+Lw+wZQZNGU7okiDzi9PhECTX5QiDb9RYGPS
         QZWmOKKD0UXpnsD4tyFmsrgIt4a/L+TH/lyWmLALB0ViCC6wdAEY7q5C40/QuhNMAWmL
         43xrcHYPkPHLiytgdy44PL06TJPscxCSbpbaWzJU0aMzmgfa4QaYieddGCPMKjFxBuiT
         Pkkw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756121543; x=1756726343;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Dy8sev0VqG6oWNs9lVAThVXzWNFsVRxxgPVBYijMH68=;
        b=CNkPRy9Ayo9PrbJeVQfWTjzVu8FBI52P9Bg1q6oQdu4g4qtTKcZEqr22ZxyhoTXt0w
         gS08gSPoSbI+4/y1iMbVcfRraFMilDq8KJBpNw06lrQHkhhvVVX4zKpJqlVcbGqQ9uUh
         MlsU1RSmTZgCYXajBr8yEJ5xaIs8BEtMyHtll8KdOW0lI4d/sbL1YTmDYg4t8dN8JVHk
         QUyrJACWb2bo4vx5dBou823Kx+LWKVaiE1lwk0Nb9jNT6UMwH/RTYNF8SFeZ0XAlDzjv
         yZgqAVJYHdZGy3m891z9kQVdnkZbifoRV64MWfIStpfwzpaAtapAmvr5ZIqiQuit+KHK
         OZvw==
X-Forwarded-Encrypted: i=1; AJvYcCW+LuNC5Dv0wftX4K5ME095rRfTGhU9BwukxmjZJEunlQ+Q5zovvrdBHIl9i+WPuj4DMhdd12A1htc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyAo57uaMmO8rnzhDmWfIlpYqje7GeINndtt3+TPLfnYYPzb7iG
	WfP1zfyUStBULuzfo7i8vKee8imUmcPZPtGrM/63qZzcARbUK+TZfq2wd9PwVa1+LA==
X-Gm-Gg: ASbGncsgH+A/yT69YqBYtpaZ2t2i6JaWQuxO2GjwvMd5vDBuHmrr6tbNIQKwZUlvEr1
	I+PVL7fuPjpfzgMVrDCBxgLL/QWzjqski6zIO9LJRL9185htkMRuKm4G3lkc8irJ3KyMaiJLNfW
	Aq+P9dLJWQOFlCEQMHWBktuUc6McgwOciJ5uvxYIEyh+GpPb3IYPWJPnoFEOoYpqamaV9rZmkUb
	vF7hYJz6xV6yqassLEDOmx4XbFEjHtthyHWmHUU4u2wupg/lpJtuuRscyk/3a/9eEn9YFIB5ZDz
	gp+WJYFHBJIRNU75lJxXVhmMvTQAvPLTGOaKJ79nFeRDzYPIiL+nM1SRWdfF+BP8Qmc9NjDp0cm
	9m1kT0/oTUUh37WBFIok+kf3va7u1z5jzMQk9v4TOzDVpyCUQv75A51BQv8858oX/97e30gvd/d
	8ZYIn2+jo=
X-Google-Smtp-Source: AGHT+IFMcRTzPpv5hPuYysRywvvfCgUpdxSMtiuwkyghCIvMFIv042+Rc2XmMKo4ce3ts5qYa+af+A==
X-Received: by 2002:a17:907:97cd:b0:ad8:9b5d:2c1e with SMTP id a640c23a62f3a-afe28ff9049mr1026359266b.29.1756121543360;
        Mon, 25 Aug 2025 04:32:23 -0700 (PDT)
Message-ID: <e2c4944d-d089-490c-879d-b6baec5e4cae@suse.com>
Date: Mon, 25 Aug 2025 13:32:22 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/5] vpci/msix: move MSI-X hole punching as a result of
 memory decoding enable
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: stewart.hildebrand@amd.com, Jiqian.Chen@amd.com,
 xen-devel@lists.xenproject.org
References: <20250814160358.95543-1-roger.pau@citrix.com>
 <20250814160358.95543-5-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: <20250814160358.95543-5-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 14.08.2025 18:03, Roger Pau Monne wrote:
> Deferring the p2m unpopulate of the MSI-X table region to after the BAR are
> mapped in the p2m is not needed.

For my own understanding: This is because we would never actively map such a
region; we always subtract it out of what is going to be mapped. If so ...

>  The aim of vpci_make_msix_hole() is to
> cope with the BAR containing the MSI-X table being positioned over a
> reserved e820 region, by making sure the MSI-X table region is
> unpopulated on the p2m. Note that reserved e820 regions are identity mapped
> in the hardware domain p2m by default.
> 
> Doing it before or after the BAR p2m changes are done is irrelevant, hence
> do it ahead of the p2m changes, as that's simpler.
> 
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

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

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 11:48:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 11:48:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093037.1448617 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqVgr-00064h-PP; Mon, 25 Aug 2025 11:48:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093037.1448617; Mon, 25 Aug 2025 11:48: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 1uqVgr-00064a-LZ; Mon, 25 Aug 2025 11:48:45 +0000
Received: by outflank-mailman (input) for mailman id 1093037;
 Mon, 25 Aug 2025 11:48:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=S8CB=3F=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1uqVgq-00063v-Cv
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 11:48:44 +0000
Received: from NAM04-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam04on20618.outbound.protection.outlook.com
 [2a01:111:f403:2408::618])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6b5c0f1a-81a9-11f0-b898-0df219b8e170;
 Mon, 25 Aug 2025 13:48:30 +0200 (CEST)
Received: from MW4PR03CA0118.namprd03.prod.outlook.com (2603:10b6:303:b7::33)
 by DS0PR12MB8269.namprd12.prod.outlook.com (2603:10b6:8:fd::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Mon, 25 Aug
 2025 11:48:24 +0000
Received: from BY1PEPF0001AE19.namprd04.prod.outlook.com
 (2603:10b6:303:b7:cafe::22) by MW4PR03CA0118.outlook.office365.com
 (2603:10b6:303:b7::33) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.21 via Frontend Transport; Mon,
 25 Aug 2025 11:48:24 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BY1PEPF0001AE19.mail.protection.outlook.com (10.167.242.101) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Mon, 25 Aug 2025 11:48:24 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 25 Aug
 2025 06:48:23 -0500
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 25 Aug
 2025 06:48:23 -0500
Received: from [10.252.147.171] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Mon, 25 Aug 2025 06: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>
X-Inumbo-ID: 6b5c0f1a-81a9-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lD/LJE206aQRBGmdDDs29KNR2qNB154/Si9n54Gs1crV+SejJWt+t4u+46INiCPzx9ECayCZL/a3w+RnG3zLjmgCkwF5l7Tn6UTeB0Mlj6oayZ8LHlcvynZmRGfgIgxrJ4/vtGzk3wAIY5VYsHJIAzbR2SL+PloYNKPl7Vr0dDSUXz/SPfj2M5HMzXkSlz8Fk8846jPIQmsKFRWRuQa92/JrTFzK/59ujpudmzjyFRoFzSZhTu6N/jPdjr0pO1aJELSHmU+R5WMOTYbydfm0d0AmJWwdBkCvuRSclPP3iINwrUt2IOD6Q0qAQti+VEGQBm3Nf2hVZZ2X1/5LE086bw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=r+2vB9Yh8cZsFhuuyXYV/KJRQJbXQx2ZP0o4Ye/uVsQ=;
 b=WFB/YKbizlGUfnkmR091c6T2L01FFf1DsK/XKgT3kvhjqLUp5SWKCYyFdN8/SCEcIXPMaTA89kLYN9F+Lp0MhlBUWVmjINbLs5KAycBtcyjViU0P9T4JOvuMQDxiCgvj2eO3vBwYy+QKffW1WwrGMFb97ZurjIsHBgDtVxmkYt+wa8AfR1POYuUUbaZ4dfZjFEpzEiSlmAGYixu78sZuyaMI0UVlMOd6gjPQaEsEYYPBwtdGUqVAz8xrlmmlravTBpTwSA6HqvdWZJH3R2jxoB/Im3tBrlJiAjNDI4p2oLrssnNWT9lFeYOg5euVVdy0Ih0nqcHewZah5SNdHOqJLA==
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=r+2vB9Yh8cZsFhuuyXYV/KJRQJbXQx2ZP0o4Ye/uVsQ=;
 b=D7Txe7f3y/nmEnTO5BAvqif7MfQtJrM8xUmhdiZrY0eGFoy38vmRJvZYPjFxUT+iz9EBUg139Oco+KmQW2k72z/yRyWngfwOoV0IpTYqvjGyyrJy9430hEmOi5aQtV7z4RJHm87zxLgnMl3JPI+8GtrmPDQtL0hi2gAUzvO6vno=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <ae832a03-0679-4809-bf01-34c7cdd8a72e@amd.com>
Date: Mon, 25 Aug 2025 13:48:20 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/2] Arm: drop assertion from page_is_ram_type()
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>, Oleksii Kurochko
	<oleksii.kurochko@gmail.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>
References: <a2dc40a8-908a-44a7-b443-90f492a775cc@suse.com>
 <753ce2a1-8d9c-41ba-a066-abf6f625cb60@suse.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <753ce2a1-8d9c-41ba-a066-abf6f625cb60@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB05.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PEPF0001AE19:EE_|DS0PR12MB8269:EE_
X-MS-Office365-Filtering-Correlation-Id: 740b21b6-8fc3-4d80-ce2a-08dde3cd4c1f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|7416014|1800799024|36860700013|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?eFdFQkIvclpTTzA4bVUzVFQwWk94MzdaMWRtN2xETW1UaTVKVXBuMFZEbTEy?=
 =?utf-8?B?bzdLMnlaUDNTYWljckpkY1J3TVZVaGNVREl2dlcvQVMrRFpjdGU1SFVYY2cx?=
 =?utf-8?B?V1JFbGlSZ0ZJUTlFV1JOeVN0TkdsbzVhR2ljM09Od3o0dUtqWTMxZWRHNmhi?=
 =?utf-8?B?eFZtUE9HaFlCQ0dncVJpbnpFaVdGSnRDK1B2emhPTG9LYU0zT0t1cEs3dDVQ?=
 =?utf-8?B?WEc0Zll1SXZCdHdRd2lBTUpBaWRaLzlDZGhpSUEzdlBWQ0xDaytUUHdmWmYy?=
 =?utf-8?B?OWRNWHk5aWtTKzlZUVZjZ0dhTHZDK1NGRTFqOHVoQzVFRC8xQm1YNENZK1dG?=
 =?utf-8?B?OWRuZTNFMnNIeFQ5eWpnZFMzb0FuQnI1eG9uc2hVVVc1RGVVdm9PcnNwMkxR?=
 =?utf-8?B?VHI0Rzh1NytpLzNxTXQzSU44eVZ5d3hHNytZSFZvT1U2dGY5S3ZIK3dvWHZx?=
 =?utf-8?B?VDhoYkg2dGVZRFJXekFYWWo4R2ttTGZGa1JNRkJYOFFWMStlVWJlbGU2dXpM?=
 =?utf-8?B?VFl5M2NFanZROXF2czQ0cGlzbnhNTW9HOG1wVWR0WHpXeXQyRkR5RDRsV1pw?=
 =?utf-8?B?TFpoVUhBcUVxUFgySEFWS2hmaXFtM0EraWhWVktNaHlzeklaTGgzKzZ4dm41?=
 =?utf-8?B?dlgydVZjZllnSnByOUlMRG9WM2JrN3o5WkhCSmxBcmhMTUwySTEvNUpQUXVH?=
 =?utf-8?B?aUFlc055S08xeWl6Q3g5cTJRRGcvempucDV2KzhYRDlIM2I1aGpGMUtDNitk?=
 =?utf-8?B?OFFEVUZoNFE1SXF6QnpvY1Q0NmlLakRsT1VxYXhJY1pzcGVRMFUvdkErTjNk?=
 =?utf-8?B?QlRQL0QzTkg3YkN6OVFOWFpQS1Y1cUl2V0VUUEJjRStYSTA4RGRWbTA1cDh1?=
 =?utf-8?B?QVNYUlhjemtFNm44MFY5OXp6bDY3dC84UGNiL3loZmthU1hBU1BZeVdYNTJL?=
 =?utf-8?B?Z3hvOFFuc01rSkJhc0dqaUpIWGtOVmhiV3NqMmpCdkwxWk91a1l5UTYvWTlG?=
 =?utf-8?B?dTRVdXBjc2p6VUxXZU8zYkJIY1lQOUVnSXRUTS9QelliYm42VVlhZmVnekQ3?=
 =?utf-8?B?VEVNTGFwQ2JESE9SZlhvTEhEUDVoM3duRDR3UWpJSzZMTG4xMlh3TVI0QmxK?=
 =?utf-8?B?NU9UdFp5WlA0NGtyeDhRbEhHRTB2K0NWcTl6OUpJWW5nVFdWeFM0VXNFUzVW?=
 =?utf-8?B?eXBRVDNISUxFbExUbXowMm9HRUtxa29pV1MwOVUyWE5NUHlIZTcwZ24xcEpK?=
 =?utf-8?B?YUVQOURocTdDalZYSi83eGVqVk9nNno5bXFOYW1PU0ZFVHR1WTBQTTdmRXpP?=
 =?utf-8?B?Nk91c1lZRlFnSU5qL0JuQW1BOTZBN0RCeGp5VVJNNk1NMjQzTWVHMVozS0Rq?=
 =?utf-8?B?WGZRWWtrbmJzYkNQYUNMV1p5QkxNV2FaRWdNQWhHeHZ3Q0NNSEErdko5bytk?=
 =?utf-8?B?eENTQ1RDRFJ5ZU54eE13MUk2Q1lnTFFGNmZLdVNINWR0ZWhoRjFHVUdtcU5D?=
 =?utf-8?B?UXRocWl4VXJJdDRlenhEVDgzc1NQczJmZFNhL3J1QS9Ea3NpN2U0OXNGakd5?=
 =?utf-8?B?cGMwYUJxWXFQZWVlVlVXN1VzeHVmeDViUEQxK3BKcnJYTEZMTis1TkNPR0dN?=
 =?utf-8?B?TGRJNlprUkllYXY0OVJnSU04WElwbVR3RHBGZ1ljTGdwb3pJUFFWaFhLcGt1?=
 =?utf-8?B?VUZCbnVubGNKc3pKZ0ZRU1RQZWJlVkcwMGhlVHAraS9iclhJMmdzaVFvRS9H?=
 =?utf-8?B?M2V3ay8rM2NoUllMVHNkZ1RjaElJdjBDODk1U0tMSnlIS1YxWHRPMEc1MFRj?=
 =?utf-8?B?UEVZY0NDUE54MFZZK2dLajgzWUxtYWVXNytEMWVGb1FTTDZZbFU3S2xRbytJ?=
 =?utf-8?B?WDhINHhSSTgvelpJS3psblhGd3N6SnVsVjM5ejdwVytXalFaSHlPbVlXTitU?=
 =?utf-8?B?M1huVEJ3RjVRTkNZMWF2Nkw3RUgvT2ZtY2NuMkEzKzhtYVZXd0E2QW1seTVF?=
 =?utf-8?B?dkQ3MWdNT09ySmsydU9tcWZIZTNVMUt4dFpiNGpFSlFTUnA0ajZTL3lycHJP?=
 =?utf-8?Q?GKNYbj?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(36860700013)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Aug 2025 11:48:24.0092
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 740b21b6-8fc3-4d80-ce2a-08dde3cd4c1f
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BY1PEPF0001AE19.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB8269



On 18/08/2025 09:55, Jan Beulich wrote:
> Its uses in offline_page() and query_page_offline() make it reachable on
> Arm, as long as XEN_SYSCTL_page_offline_op doesn't have any Arm-specific
> code added. It being reachable was even mentioned in the commit
> introducing it, claiming it "clearly shouldn't be called on ARM just
> yet".
> 
> However, dropping the assertion from a function of this name is deemed
> problematic. Rename it to better reflect its sole purpose outside of
> x86-specific code.
> 
> Fixes: 214c4cd94a80 ("xen: arm: stub page_is_ram_type")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Mon Aug 25 11:50:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 11:50:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093052.1448628 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqViC-0007Xb-Ad; Mon, 25 Aug 2025 11:50:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093052.1448628; Mon, 25 Aug 2025 11:50: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 1uqViC-0007X9-56; Mon, 25 Aug 2025 11:50:08 +0000
Received: by outflank-mailman (input) for mailman id 1093052;
 Mon, 25 Aug 2025 11:50:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=S8CB=3F=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1uqViA-0007SZ-K7
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 11:50:06 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20601.outbound.protection.outlook.com
 [2a01:111:f403:2418::601])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a2f5aa5c-81a9-11f0-b898-0df219b8e170;
 Mon, 25 Aug 2025 13:50:04 +0200 (CEST)
Received: from SJ0PR03CA0348.namprd03.prod.outlook.com (2603:10b6:a03:39c::23)
 by PH7PR12MB7428.namprd12.prod.outlook.com (2603:10b6:510:203::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Mon, 25 Aug
 2025 11:50:01 +0000
Received: from BY1PEPF0001AE1A.namprd04.prod.outlook.com
 (2603:10b6:a03:39c:cafe::c5) by SJ0PR03CA0348.outlook.office365.com
 (2603:10b6:a03:39c::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.21 via Frontend Transport; Mon,
 25 Aug 2025 11:50:01 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BY1PEPF0001AE1A.mail.protection.outlook.com (10.167.242.102) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Mon, 25 Aug 2025 11:50:00 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 25 Aug
 2025 06:50:00 -0500
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 25 Aug
 2025 06:50:00 -0500
Received: from [10.252.147.171] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Mon, 25 Aug 2025 06:49:59 -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>
X-Inumbo-ID: a2f5aa5c-81a9-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gnZrLB5XdPXM27x92J9QVeDRDSN0MMqIWA8iw3rVV+5qTaxgIk5a3h6zXEk1NfSRXh80V5sA03gzE+XfIb/x4WvAMh/NlA/NBggjlGi0TABUDNx+AiUO43nUyIh3gfbHrTlbEi8X1gBis2U8ZQku50SUOgjvppk6mjGpo5Y0xMxYoATP34Gcd8RHR5h+OPI4J++Z3qZOoa1NvoXsfdKQLJ4XuDee09Izan8uWYss5BxOam5+Zngjwv9vp6JQsEdbPq0CCXAtNI6Rli+xqJi5DlhBotrb2HVaJeGAC4xzQMtUZQUm54u0T3Qodjc0rlhtl/v1UjGR1T3MNn+DpO4dQw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ENBro5P2W8Xr/J22F5UVkx3ik5KVgbJX9nJoDlKSRAU=;
 b=D52SzxYUB0Kl0rpoK+uEXAMBPJrEb62e6hycT44SMdLn3s6R394Gd5Doz1eDL6YNlpPmgLtZF49mdU7xp+ZKENeTTlIwYb9AdU95Tw79p9Un5IOKtu6IygU49jrKybeffzvc7ZDTBUhvsiY9zdOiNlTFCfmNEBS+clIR4aQ7r0Rtos0BIQudf0QVx3TqJCEvjILj1g+/nJeh6zlOYOCB2Z78VLyHzeEMmIf9IQHPuKqBjfbXQnKniyhzNfSD6md0/srK3WN5v6MI+W++OXuIgiqrFDbvtJuS5+P2SJjUbCfZJsl6VgyDDBQKiovZWv+ZJjsHaf2HU9P0izOiTjelgQ==
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=ENBro5P2W8Xr/J22F5UVkx3ik5KVgbJX9nJoDlKSRAU=;
 b=lAWL3Zl8KEbrxDFtVkChqXsLrJZXMhFkAnqEkw0H6ywnmE93cOvQL80BpEzdRuurn2MzKlkrEIXBWkK/w77uIjnJ4p9UKuX9yqt2osP6PpGuc1lX1Eu5tImHRh2B8Cvk3W4SNz1HCAmcCgbv7LShN3ekmf8uC2wpLTJtm44CKxA=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <5f0c13b8-ea3d-4893-94dc-4a44a29669e5@amd.com>
Date: Mon, 25 Aug 2025 13:49:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] Arm/platforms: fix build with gcc15
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>
References: <0ebb4f2d-31b6-4536-91fc-75b5a9aa7dfd@suse.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <0ebb4f2d-31b6-4536-91fc-75b5a9aa7dfd@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB05.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PEPF0001AE1A:EE_|PH7PR12MB7428:EE_
X-MS-Office365-Filtering-Correlation-Id: c23834d6-ac54-4e10-ab99-08dde3cd85cc
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|36860700013|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?V0RhZkhST0puSklvUGVUVnFwbHhBSDJzWmxxNjRnaXZ2OHNzUHlHbE1MQktQ?=
 =?utf-8?B?TTBIci8xSUFiRFBXNWRsWkRsNSs4ay8wbTZPMiszTjc4Zkl4WmU3UDg5K3Bw?=
 =?utf-8?B?U1F5ZnNTckRFU2lWWnF6UzgvZFFSVDhhZXgycjV5MTkxbHo0a1VqSmtFZEl6?=
 =?utf-8?B?T3E1SXIvTDNCY0EvQ1BuSDlWKzd5R01ZdURhM3g4amlRVGNCOUo3N3lMVHhG?=
 =?utf-8?B?UE1SejllTUxYdElyL0kzcHdlaHJlWXQxb2RQbTFHaGdrcGNydDloZG1BMVJM?=
 =?utf-8?B?R0o5a0VRU3BRRDFrMGo5bDRDbHM3eWNFcktZVzAyNFBjUjI3bVkyNmR1ampw?=
 =?utf-8?B?S1A5Z0FHa0xWTlVNT1hUV2E4bVFYQld0bENtaSs3MkRmUGVDVkJyWGxsa1ds?=
 =?utf-8?B?cEpzM051K1djSWZlQVZueHdpTVFpK1dIZERRRk9vSVJZd0IvUEZ4Q3hsQ3Qx?=
 =?utf-8?B?Wk9odUdOeTNYNy9FdTZGQS9oajZUTm5WQXBteWNodXo2cnRJQ1VPdXVyNzZj?=
 =?utf-8?B?MkJDRkxaZWtEcFZKc1liYUk1VmxFWlZnRFJ4bkdGYmwzU2l6V2puMTJScjVX?=
 =?utf-8?B?MVArcW53OGtSOU9ubTN4QUp0dXNUcmNWOEdISGc2Vjc4bWtzTTlJejl5NVIv?=
 =?utf-8?B?TnpXemFJdm02bm1mMUZSVTJlejR2ZWNlOXB2Y3hWOUFMNjR0WFY2cy9BU0Fq?=
 =?utf-8?B?SWhpeitoNXJCTDdRRnhZVTlua01sZFhyN3NKUXZsL0hoL3NRQlhoS2c5dEtB?=
 =?utf-8?B?U013eVRFS1JQTlJwUXNNTXBKUWl1ZXJ2V3FhdGFZRTBGRVhWOGZVdWYrdmlq?=
 =?utf-8?B?SDMyVHdlMXltS1NPVXArQkpXdko2eDg5Ymc1OVJDdDNrTnJUL2RWRFBabnNQ?=
 =?utf-8?B?SjM4N0gxaVNoNUV4WFpEcW9xRkllWFY2eWxJZjdLRXM5R215QTVQZzA3c3RZ?=
 =?utf-8?B?cTlkVFVOZ2pQbFBrdjlDeGVQZERGQmNHU2lNTWl5Uzl0cXN1WFBiZm9Jd1Nt?=
 =?utf-8?B?S0hWVi9tOTNvRit0bGU2VW92aDRtbWZ1eU9TR3VrM3lHZlRHZE5hRWp0V0hv?=
 =?utf-8?B?T1RIcnRxd2tJS1lmMHhhSk9HOEUyRFVDcUpHSmZEVVhSZVVRSVRpSTdXMTR5?=
 =?utf-8?B?dUlwNzlxOWg3K1JRNUhJekZkOUVReWlBUWtkdW5ZTWNBMHRZSjU5U3E4dWt4?=
 =?utf-8?B?YkdaU1g2MmRlazRYRVlqcEhWcWp6QUNmUktYNEYrbGN6NkNXOHg0Z0lMa01y?=
 =?utf-8?B?b3ZocEJocEN5bzI5cWZKeVhTTVNOcWoxOXpKeHJkYlRlTDJjbFdXRjYxQ29P?=
 =?utf-8?B?U2FZMHE5blFqMktXYTBPRDZYSmxaTlZ5ZmF1OHVBeGdzYU5qQnplVjlXa2pw?=
 =?utf-8?B?d3RsMk1MNEdEaXFEUGt4ZWR0RDM5WGx3MFNMZVR4cHVJKzFOQTFyK0RobkF3?=
 =?utf-8?B?N3p1dmw2QVh2d29JaUNiZ1dla1k1SmhvOGcwYzk2QWxWTVhIQ1lTVXNBNldk?=
 =?utf-8?B?djdTb0tqWXBHNUUybk1xZzNOdXd4aVh6azBwZVVJV3VieGRxZGNzZmoveHkr?=
 =?utf-8?B?dG00WTdLRGpQZ3hndjVWWVRHRlpHZ3RxYzk5KzNKV2RpSkxMME55UWdRRU0x?=
 =?utf-8?B?ZU1pcTVsYTVvK0ptY09URDNWeFcvNHZBaTJ4aUZFTE1UUFd6SHFPRVF0ODZV?=
 =?utf-8?B?YmtJdWtDWlZYeXhnYzNQUnZzanlwTDZmNnUxeEthM2xyeGR1cy9Eejh5RW1W?=
 =?utf-8?B?WXhzOWdYZGNlbCtKUk9CSkp4VDQxTkxqdXRlYkgvMHpGUVU1TDNGakMwZm1l?=
 =?utf-8?B?YUttbnMyT0s3TGFlOTMvS1FoMHJRSnNheER2Z1k1VWtNMU9jc3Y0YXZQNnpx?=
 =?utf-8?B?TlhsdUROaDdGc0dKdU0xTjlTYzRLQlpKYms0eExHdUdsWFBXaUZBcFhqVEl0?=
 =?utf-8?B?YXVWUG1Wejgzb3lMdGY2WTN4dVlLZzBJb2lBUkZJYWIrMFlRSkl5SDVyN2g4?=
 =?utf-8?B?RHpuSzNlcnJDcldzMkkrdjJUZHlsZHF6YStXLzc0Z0dZRi9wczZCNEdMd2Rp?=
 =?utf-8?Q?BcGIqr?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Aug 2025 11:50:00.7721
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c23834d6-ac54-4e10-ab99-08dde3cd85cc
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BY1PEPF0001AE1A.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB7428



On 25/08/2025 13:14, Jan Beulich wrote:
> For two of the headers gcc15 complains "header guard ... followed by
> '#define' of a different macro". Misra certainly wouldn't have liked
> this either, if these headers were covered by a scan.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Mon Aug 25 11:51:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 11:51:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093066.1448637 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqVjs-0008Mn-JI; Mon, 25 Aug 2025 11:51:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093066.1448637; Mon, 25 Aug 2025 11: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 1uqVjs-0008Mg-G8; Mon, 25 Aug 2025 11:51:52 +0000
Received: by outflank-mailman (input) for mailman id 1093066;
 Mon, 25 Aug 2025 11:51:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=J9Dq=3F=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqVjq-0008MV-Kr
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 11:51:50 +0000
Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com
 [2a00:1450:4864:20::633])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e1858529-81a9-11f0-b898-0df219b8e170;
 Mon, 25 Aug 2025 13:51:48 +0200 (CEST)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-afcb72d51dcso573591666b.0
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 04:51: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
 a640c23a62f3a-afe48fc3d82sm536588766b.44.2025.08.25.04.51.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 04:51: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>
X-Inumbo-ID: e1858529-81a9-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756122708; x=1756727508; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+YuS4sZR+LkuqbQ09E+pM2MczegEfkoyBFYzqbDabWc=;
        b=NcN44rXgDrJowuEnvPir9VjM902Huw2THDSjhJSynBCRypHQoYxnWICPV+Fj7aNI05
         WAG4V1r+6pw8EMQ7uKc+qhBDe4rP17AOkwAakfi69zYk8yYuoI/VzrDM3yLlrLRjRQVc
         RJDC6fK6P1eRwt5ht1pp0WOz3SGau3KQh/mIXbbY8Wrd7GWMgU1s8MzWrKKgvuSEo0q/
         0sy6KTeW5pJtPbxwOCSdSZ6AJNjYBl/AnLmTpx2yXeeYhoV4vPO+B6uIsKVg+58Rqgsg
         xvL9t29tYzTgqvihZnG1fd9bzE9+9UNudGBITj3Rp1mCMDsKLv4RVWV8pbnBlnFJD82H
         f0gw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756122708; x=1756727508;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+YuS4sZR+LkuqbQ09E+pM2MczegEfkoyBFYzqbDabWc=;
        b=I0ssvD5S1M9RLmH2cOcOxM7q26M+8evs4fYk/yhzYPypgwRj9c9ksdwXLxx1Y9CQBZ
         QNFv/K7LqzwNwa6d5mYSuK4qE6N29h9ChN9bcE3FwBDHyBkVYs6wiDPEeYvKpC5e8DA2
         Om7ZVBmz/DgZa1+ra4Hicq9lJC+lJa91a14C7AD4nmADZj6um/rgFEsj1HVOoXT2vYB8
         mHduiGK2iwWF0JjvKtDYtcyon3PgtryU1BYKhhJaTWzFiKSHKo4aQe0tZltEIO92u8Wi
         9z45kZESd80Pv1XAAYkjFRklqjnBQkoxyXbU2N3jHZjuIAKsIE6zVJ47WOeFmJMWSPTb
         R0+g==
X-Forwarded-Encrypted: i=1; AJvYcCUd2MzkB0aPc1XnPza603+P/8I+6CnmxFJOOJFhI9RZgUg0Xhe6PVr/PVcKsuc6bFNaK/tayXpg+mg=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy2pX/12VVGaLwD7DwAHu3FnDfdgmHc41tM4ppGK2v5SL1axX5H
	k2MdMNYYl9LRYhHLBT5V/LEsR3aW6cuCWiIhgB02TXG6Bvl/eidioQ5tjFEwLD9pfA==
X-Gm-Gg: ASbGncvxZO60tnEwm967jPW0YWdOoQRPtlYxZzDizGo++Q2IKsPvvQ7rDbeft/sSFsw
	uiYFn6OTZszXHfk81d4yA08OYcNgItYUr/Tq0x205+1tT+BMfnxF5OEf7ZM9TGSOdEGiEDkkhAn
	q5ckoebAd+u662zFdbhznRHu9GlvIyL0ddQ4h93v0B4ay7kTMRohvH1oY87xoEI7L+8/FajKyy1
	agT++Us2MJW+ydd+KPpXSSfeNYerQQpa7dP4/dUs4zrTRm6rLwzmIWtLKkEoy6h2vZaaQ1PlTJ0
	GoY2mSUwqfU+t0TJwmeSLFJYBhGqg/vJyAfs9mN/7r6RMyLwrwxqdZTK+yuKRgmrXZkm4voi5iX
	zbiomAj6f6BZdfa0zAo7tt/C7+/34SXwseYY2mMuCgX18jP88ZVFhTT0IWIBDsKuK+xB32X5aa1
	bVTcCb89w=
X-Google-Smtp-Source: AGHT+IE3+RJSna3i/RSMSpmaTbkEiFw6wvmByFoBLXZmHivWc8X+iUH5X0yvLs9HvIfQOy+7APPXCw==
X-Received: by 2002:a17:907:7b88:b0:afa:17ef:be35 with SMTP id a640c23a62f3a-afe28ec568dmr1291717866b.4.1756122707598;
        Mon, 25 Aug 2025 04:51:47 -0700 (PDT)
Message-ID: <f543ef05-e3e0-453b-bbaa-74fbfd9488e0@suse.com>
Date: Mon, 25 Aug 2025 13:51:46 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 5/5] xen/vpci: only check BAR validity once
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: stewart.hildebrand@amd.com, Jiqian.Chen@amd.com,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20250814160358.95543-1-roger.pau@citrix.com>
 <20250814160358.95543-6-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: <20250814160358.95543-6-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.08.2025 18:03, Roger Pau Monne wrote:
> Avoid multiple calls to pci_check_bar() for the same memory decoding
> related operation, as each call can possibly print a warning message avoid
> a BAR being in an invalid position.

s/avoid/about/ ?

> @@ -217,13 +179,13 @@ bool vpci_process_pending(struct vcpu *v)
>           * rangeset_consume_ranges() itself doesn't generate any errors.
>           */
>          rangeset_purge(bar->mem);
> +
> + next:
> +        if ( bar->valid )
> +            bar->enabled = v->vpci.cmd & PCI_COMMAND_MEMORY;

Isn't it at least latently risky to possibly leave ->enabled set to true
when ->valid is false?

> @@ -243,10 +205,8 @@ static int __init apply_map(struct domain *d, const struct pci_dev *pdev,
>          struct vpci_bar *bar = &header->bars[i];
>          struct map_data data = { .d = d, .map = true, .bar = bar };
>  
> -        if ( rangeset_is_empty(bar->mem) )
> -            continue;
> -
> -        while ( (rc = rangeset_consume_ranges(bar->mem, map_range,
> +        while ( bar->mem &&
> +                (rc = rangeset_consume_ranges(bar->mem, map_range,
>                                                &data)) == -ERESTART )
>          {
>              /*
> @@ -258,9 +218,10 @@ static int __init apply_map(struct domain *d, const struct pci_dev *pdev,
>              process_pending_softirqs();
>              write_lock(&d->pci_lock);
>          }
> +
> +        if ( bar->valid )
> +            bar->enabled = true;
>      }
> -    if ( !rc )
> -        modify_decoding(pdev, cmd, false);
>  
>      return rc;
>  }
> @@ -326,6 +287,9 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
>           */
>          rangeset_purge(bar->mem);
>  
> +        /* Reset whether the BAR is valid, will be checked below. */
> +        bar->valid = false;

Just that I can't spot any check further down. It's only ...

> @@ -341,6 +305,8 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
>              continue;
>          }
>  
> +        bar->valid = true;

... this setting to true.

> @@ -539,6 +505,7 @@ static void cf_check cmd_write(
>      if ( (cmd & PCI_COMMAND_MEMORY) && vpci_make_msix_hole(pdev) )
>          return;
>  #endif
> +
>      /*
>       * FIXME: for domUs we don't want the guest toggling the memory decoding
>       * bit.  It should be set in vpci_init_header() and guest attempts to

This change was probably meant to go into an earlier patch?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 12:00:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 12:00:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093081.1448647 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqVsN-0001gH-M5; Mon, 25 Aug 2025 12:00:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093081.1448647; Mon, 25 Aug 2025 12:00: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 1uqVsN-0001gA-Ii; Mon, 25 Aug 2025 12:00:39 +0000
Received: by outflank-mailman (input) for mailman id 1093081;
 Mon, 25 Aug 2025 12:00:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=J9Dq=3F=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqVsM-0001dq-5o
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 12:00:38 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1aa1deb3-81ab-11f0-b898-0df219b8e170;
 Mon, 25 Aug 2025 14:00:33 +0200 (CEST)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-afcb7a0550cso737618366b.2
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 05:00: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
 4fb4d7f45d1cf-61c312a585asm4906435a12.16.2025.08.25.05.00.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 05:00: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>
X-Inumbo-ID: 1aa1deb3-81ab-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756123233; x=1756728033; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=U/q40CYBr21pr1e2QTGhNCNMo302M58nIazAwUfTJxw=;
        b=X8GVZUXAFJV1VuhTMbadIqN3J0VOPuFGK4Z8zYzz8VjJZOrhxemMDKQS4EyYmrt3BL
         44i1//7YSBqjk0EJvPlt1Jl+x5F3Lf/eqQs7WZmat4oBkSoloPTywMS8LN2FfddiwEm2
         zHgcvZlIK9draMjrLtUGoTW+yevn2tYXHPgphhhBa/g9YkYj+2Tbd+V2FnF7XLqFez/d
         5z+7ggRFYKB2WyTaLT+0bmB/LFIdnAOQy3dSl48PwIDvWElVxF6adGvGZp3rx1J59YTz
         PHkbVFTISDWh8OeUSJeyMJFOAH/fOyTsXV+LwKJWtFdJxrORrVw8X8nmYLSulNRyudL3
         sE3g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756123233; x=1756728033;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=U/q40CYBr21pr1e2QTGhNCNMo302M58nIazAwUfTJxw=;
        b=BUkwYgO8mocREzDgvDmqxv0mZ9qF8g/TZrCnokfLgfh1vtJGfe4d7GRkltjw7P8E1P
         e1qQMj4Hoeqk2fCzNC6kmseQVAfxEbuEcwxvHu6/3+U/gHHcBDlytd2BzwcggMbj39Gz
         Wd6eQ2GqwP+j5ulPjCk2dWhsWlXzfJsoS4Vcvks9Qz9ptkcfWoTZXoAvSesNjAiXLJg2
         kVc2cM2uNAtEbKeLm1R1i/sAK+J1WFdIt57CVXrjqi0FKCXhNaxG+6Hnx/yG6mEaVtNG
         RpAyXBQ33yehdz2s0u09TuejA2F2ddTiYheFz+Cm6LbV4Fm7QBOBlQLnQw4EhPj1sStf
         q+9Q==
X-Forwarded-Encrypted: i=1; AJvYcCUa79hve31FFSM6vxpoA0QRU6VifxkznakPjMZTfgMdyjGkrUmumyvXaHtZVQl7AqWNEqoPBV9fQUA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwacWYH28WFgIbRdwgw9yb5nddfLdAA2s6KmHNBWgtI9Df7dJj1
	jMTpGrj5tpIbmtpvW/1KjNF7XNn44hS2Itm5gNtcG0jbZoQbABCfoT+6NH1y4qtr8Q==
X-Gm-Gg: ASbGnctSYe6PARt/2O3q8PuRqhBCdZI7XO/ST2MWckzgLOQb1+fjc1NSRL9+ymi3cGM
	28Q3hU0bgBiXZ0chEBe/gPUt0eXdE9cMODcfrCUNAfc9ZexxQmHNgrFJPybD/q32Q+ny94ktaNI
	xf6TMmJUpPTZ/QKH2hlUgItB1v/2DtNLk5Q5d74IX0iBnZ1zjkqWuuGJ9F9A/bKmx0J9wuPr/hF
	425NSGGMmilsotDdZ08FDHZFtJjgxBHAjJB3ZJJxl0o+B+/T40tgxsehCFJfeGTPC2x/SSnPkcZ
	NVe6bcx8Ze0rh6WdEXCnXdSq+oAQIahXlkU6ABFU63wpIL/oDOqF9lKL/1q1v6GV0XSCjhe2Eu6
	uOMZU3AABg0pKtSC5oDbeEpvmGIhhe44MwJBlBD2RWWLV+SwYJ7uABNq5Vup4Z6gTWMcdO4nWhG
	iXXzWmUgI=
X-Google-Smtp-Source: AGHT+IFM4V5qJIPGNnThiJ/BsryrD9SoHPyujAck6mAfAiZk3qPWEjmjD3Igd+I61FXfLdk0W0Spuw==
X-Received: by 2002:a17:907:3f97:b0:ae3:bb0a:1cd8 with SMTP id a640c23a62f3a-afe28fc55damr1144493566b.19.1756123233005;
        Mon, 25 Aug 2025 05:00:33 -0700 (PDT)
Message-ID: <1797679c-582f-4b75-a036-ad3bb00bad4d@suse.com>
Date: Mon, 25 Aug 2025 14:00:32 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v1] xen/flask: limit sidtable size
To: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20250822095123.998313-1-Sergiy_Kibrik@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: <20250822095123.998313-1-Sergiy_Kibrik@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.08.2025 11:51, Sergiy Kibrik wrote:
> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig

I wonder whether we wouldn't better move XSM's controls to a dedicated Kconfig
file there.

> @@ -418,6 +418,25 @@ config XSM_FLASK_AVC_STATS
>  
>  	  If unsure, say Y.
>  
> +config XSM_FLASK_SIDTABLE_LIMIT
> +	def_bool n

This makes little sense; just "bool" would have the same effect. Yet then
you can combine that with ...

> +	prompt "Limit the size of SID table" if EXPERT

... this line.

> +	depends on XSM_FLASK
> +	---help---

No triple dashes around "help" anymore, please.

> +	  Limit the number of security identifiers allocated and operated by Xen.
> +	  This will limit the number of security contexts and heap memory
> +	  allocated for SID table entries.
> +
> +	  If unsure, say N.
> +
> +config XSM_FLASK_MAX_SID
> +	int "Max SID table size" if XSM_FLASK_SIDTABLE_LIMIT
> +	default 512

Hmm, wouldn't the default better be what we had so far? As per the justification
you aim at a special case (embedded) with this limit.

> +	help
> +	  The maximum amount of SIDs allocated by Xen. Default value is
> +	  approximately double the size of contexts that default Xen policy can
> +	  potentially have.

Do we need two controls? Can't 0 mean "no limit"? Or else what use is permitting
0 here as a value?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 12:31:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 12:31:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093133.1448693 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqWLw-0006XL-7j; Mon, 25 Aug 2025 12:31:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093133.1448693; Mon, 25 Aug 2025 12:31: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 1uqWLw-0006XE-4f; Mon, 25 Aug 2025 12:31:12 +0000
Received: by outflank-mailman (input) for mailman id 1093133;
 Mon, 25 Aug 2025 12:31:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=8Q9m=3F=redhat.com=david@srs-se1.protection.inumbo.net>)
 id 1uqWLu-0006X8-9j
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 12:31:10 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.129.124])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5fa1fa13-81af-11f0-a32c-13f23c93f187;
 Mon, 25 Aug 2025 14:31:08 +0200 (CEST)
Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com
 [209.85.221.69]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-257-Z8nTWV06OGWJWRkZeXBklg-1; Mon, 25 Aug 2025 08:31:05 -0400
Received: by mail-wr1-f69.google.com with SMTP id
 ffacd0b85a97d-3c91389cbeeso539337f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 05:31:05 -0700 (PDT)
Received: from ?IPV6:2003:d8:2f4f:1300:42f1:98e5:ddf8:3a76?
 (p200300d82f4f130042f198e5ddf83a76.dip0.t-ipconnect.de.
 [2003:d8:2f4f:1300:42f1:98e5:ddf8:3a76])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b575929a0sm106632785e9.25.2025.08.25.05.31.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 05:31: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>
X-Inumbo-ID: 5fa1fa13-81af-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1756125067;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=48cMTSslcB0ziBS4SAU+081Ps38xL0HjCpNxL+9nzl0=;
	b=dl8UiktcfTvCxnB8oXqzbtlFQ0f/TCwZuxlabxJJzx8mW/AGQCActcfIPtozRauwdsJ/FC
	5GWA9JPr3hZnhQ66PcVjehIu9sd8TzAHm+zELF+AUUD/Ca+/OyuxftJrGgH1U+3ykr52s4
	hme83iPJ9cNO4U14Xgu4oQqvdLciEiM=
X-MC-Unique: Z8nTWV06OGWJWRkZeXBklg-1
X-Mimecast-MFC-AGG-ID: Z8nTWV06OGWJWRkZeXBklg_1756125064
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756125064; x=1756729864;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :from:references:cc:to:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=48cMTSslcB0ziBS4SAU+081Ps38xL0HjCpNxL+9nzl0=;
        b=unSZTEzA+50ir7l6ebhgWp+/FYAVwLeOwZR4LadWr8x7rY9QMC7hl1WeUuzJFqNw5/
         2Mp76b9QhwQ6VOkN7h5P5VEMTC0KZ9EBvbkyDN5e/WZYgyTe/b5w3uEbwzj2RM/Zddoy
         8UBw8sgA5HYLB2oqelxv2ZCWmEDyl8mhhMAeWdS+I/My2nOvk7T7zMis4hmWafS5AV5e
         PDtP6HM7akFwQw84hhoWuVJoFm9t9ieRGVoeP2Qm7mUi/vl0hS1QXKIDpEQeME55Pntz
         TZGhKuPeo84VyBuNpLavWEu1N9rmmzL40H6IRrOk5ZhnGNQCWzTodJhteQpUba6modEr
         MmOA==
X-Forwarded-Encrypted: i=1; AJvYcCUAASXLUaDoCaTQytipPC6OBFomyG+PRuZvl0ViaP9lff6T3Djz6kYfjF7/x8ritJc67Lw573F/USo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyNaTKp+Ps98cBetPEqDlvjmz6jdDOOtd0jtSNUHyH5poAHa18a
	BKrDcaiNSXw/NbN2LkeJVk9977ocp6CWgn9xehpRg9GsxWZoOp1KlaZDkBZlFB9claFNAtQYcad
	oVtoJx+u+rmqbvLfuRQ7AeDyKCd19tf4PRjFxNTRbAhCijs8Ea9TjzWh3plCNAXBwW/+F
X-Gm-Gg: ASbGnct7YmhTnpjY6d7NEUf3z/9DNjvEv8ChOmej4SmFfBi0ZT6y3dGfJ5K7ETsK+6g
	h//vG3RYDgTwVZUM10LHk4ThMr90yCgx/vbxn/H1d4K3B3Hifc66CrEgToREjU0nnVJopi+XAuy
	//gHdk7BZIe9gyQ+cUDM1J+dnsSl5yq9tMz35GWIx5+nDSJ3YAWJFxBL/7AZm31zyCjfWV8eXW2
	aUOXY0w9LW83MZfsptfNeMjT7Om0c5gD6c1hXPs1dAmcTO/gkw3OKY+FJW+BRcU4APtocHYESIl
	TVkJiQZYqwyiCB6S7v+FVBbcWtHYdqwFeM7CsMY+0LanUmeT5eSaG6/6vmzm/wRvCg22QGEd6L6
	Yonc5CJXEMAzTnFPqhillAUC1Te8Zj/ivRPgxXDqOBq2EFjyYqkgzr3cx6Goh0gd1ZL8=
X-Received: by 2002:a05:6000:40dc:b0:3c9:469d:c087 with SMTP id ffacd0b85a97d-3c9469dc445mr3271516f8f.25.1756125063898;
        Mon, 25 Aug 2025 05:31:03 -0700 (PDT)
X-Google-Smtp-Source: AGHT+IEvPKmvGXwFDJWJm849Yt5wXoDEn2seO+ZEF1/8AbV43w5FimZ47X7SqR0IFDLk15EedM+8Mg==
X-Received: by 2002:a05:6000:40dc:b0:3c9:469d:c087 with SMTP id ffacd0b85a97d-3c9469dc445mr3271446f8f.25.1756125063406;
        Mon, 25 Aug 2025 05:31:03 -0700 (PDT)
Message-ID: <923b279c-de33-44dd-a923-2959afad8626@redhat.com>
Date: Mon, 25 Aug 2025 14:31:00 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 08/11] mm/memory: convert print_bad_pte() to
 print_bad_page_map()
To: linux-kernel@vger.kernel.org
Cc: linux-mm@kvack.org, xen-devel@lists.xenproject.org,
 linux-fsdevel@vger.kernel.org, nvdimm@lists.linux.dev,
 linuxppc-dev@lists.ozlabs.org, Andrew Morton <akpm@linux-foundation.org>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Juergen Gross <jgross@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Dan Williams <dan.j.williams@intel.com>, Matthew Wilcox
 <willy@infradead.org>, Jan Kara <jack@suse.cz>,
 Alexander Viro <viro@zeniv.linux.org.uk>,
 Christian Brauner <brauner@kernel.org>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>, Vlastimil Babka
 <vbabka@suse.cz>, Mike Rapoport <rppt@kernel.org>,
 Suren Baghdasaryan <surenb@google.com>, Michal Hocko <mhocko@suse.com>,
 Zi Yan <ziy@nvidia.com>, Baolin Wang <baolin.wang@linux.alibaba.com>,
 Nico Pache <npache@redhat.com>, Ryan Roberts <ryan.roberts@arm.com>,
 Dev Jain <dev.jain@arm.com>, Barry Song <baohua@kernel.org>,
 Jann Horn <jannh@google.com>, Pedro Falcato <pfalcato@suse.de>,
 Hugh Dickins <hughd@google.com>, Oscar Salvador <osalvador@suse.de>,
 Lance Yang <lance.yang@linux.dev>
References: <20250811112631.759341-1-david@redhat.com>
 <20250811112631.759341-9-david@redhat.com>
From: David Hildenbrand <david@redhat.com>
Autocrypt: addr=david@redhat.com; keydata=
 xsFNBFXLn5EBEAC+zYvAFJxCBY9Tr1xZgcESmxVNI/0ffzE/ZQOiHJl6mGkmA1R7/uUpiCjJ
 dBrn+lhhOYjjNefFQou6478faXE6o2AhmebqT4KiQoUQFV4R7y1KMEKoSyy8hQaK1umALTdL
 QZLQMzNE74ap+GDK0wnacPQFpcG1AE9RMq3aeErY5tujekBS32jfC/7AnH7I0v1v1TbbK3Gp
 XNeiN4QroO+5qaSr0ID2sz5jtBLRb15RMre27E1ImpaIv2Jw8NJgW0k/D1RyKCwaTsgRdwuK
 Kx/Y91XuSBdz0uOyU/S8kM1+ag0wvsGlpBVxRR/xw/E8M7TEwuCZQArqqTCmkG6HGcXFT0V9
 PXFNNgV5jXMQRwU0O/ztJIQqsE5LsUomE//bLwzj9IVsaQpKDqW6TAPjcdBDPLHvriq7kGjt
 WhVhdl0qEYB8lkBEU7V2Yb+SYhmhpDrti9Fq1EsmhiHSkxJcGREoMK/63r9WLZYI3+4W2rAc
 UucZa4OT27U5ZISjNg3Ev0rxU5UH2/pT4wJCfxwocmqaRr6UYmrtZmND89X0KigoFD/XSeVv
 jwBRNjPAubK9/k5NoRrYqztM9W6sJqrH8+UWZ1Idd/DdmogJh0gNC0+N42Za9yBRURfIdKSb
 B3JfpUqcWwE7vUaYrHG1nw54pLUoPG6sAA7Mehl3nd4pZUALHwARAQABzSREYXZpZCBIaWxk
 ZW5icmFuZCA8ZGF2aWRAcmVkaGF0LmNvbT7CwZoEEwEIAEQCGwMCF4ACGQEFCwkIBwICIgIG
 FQoJCAsCBBYCAwECHgcWIQQb2cqtc1xMOkYN/MpN3hD3AP+DWgUCaJzangUJJlgIpAAKCRBN
 3hD3AP+DWhAxD/9wcL0A+2rtaAmutaKTfxhTP0b4AAp1r/eLxjrbfbCCmh4pqzBhmSX/4z11
 opn2KqcOsueRF1t2ENLOWzQu3Roiny2HOU7DajqB4dm1BVMaXQya5ae2ghzlJN9SIoopTWlR
 0Af3hPj5E2PYvQhlcqeoehKlBo9rROJv/rjmr2x0yOM8qeTroH/ZzNlCtJ56AsE6Tvl+r7cW
 3x7/Jq5WvWeudKrhFh7/yQ7eRvHCjd9bBrZTlgAfiHmX9AnCCPRPpNGNedV9Yty2Jnxhfmbv
 Pw37LA/jef8zlCDyUh2KCU1xVEOWqg15o1RtTyGV1nXV2O/mfuQJud5vIgzBvHhypc3p6VZJ
 lEf8YmT+Ol5P7SfCs5/uGdWUYQEMqOlg6w9R4Pe8d+mk8KGvfE9/zTwGg0nRgKqlQXrWRERv
 cuEwQbridlPAoQHrFWtwpgYMXx2TaZ3sihcIPo9uU5eBs0rf4mOERY75SK+Ekayv2ucTfjxr
 Kf014py2aoRJHuvy85ee/zIyLmve5hngZTTe3Wg3TInT9UTFzTPhItam6dZ1xqdTGHZYGU0O
 otRHcwLGt470grdiob6PfVTXoHlBvkWRadMhSuG4RORCDpq89vu5QralFNIf3EysNohoFy2A
 LYg2/D53xbU/aa4DDzBb5b1Rkg/udO1gZocVQWrDh6I2K3+cCs7BTQRVy5+RARAA59fefSDR
 9nMGCb9LbMX+TFAoIQo/wgP5XPyzLYakO+94GrgfZjfhdaxPXMsl2+o8jhp/hlIzG56taNdt
 VZtPp3ih1AgbR8rHgXw1xwOpuAd5lE1qNd54ndHuADO9a9A0vPimIes78Hi1/yy+ZEEvRkHk
 /kDa6F3AtTc1m4rbbOk2fiKzzsE9YXweFjQvl9p+AMw6qd/iC4lUk9g0+FQXNdRs+o4o6Qvy
 iOQJfGQ4UcBuOy1IrkJrd8qq5jet1fcM2j4QvsW8CLDWZS1L7kZ5gT5EycMKxUWb8LuRjxzZ
 3QY1aQH2kkzn6acigU3HLtgFyV1gBNV44ehjgvJpRY2cC8VhanTx0dZ9mj1YKIky5N+C0f21
 zvntBqcxV0+3p8MrxRRcgEtDZNav+xAoT3G0W4SahAaUTWXpsZoOecwtxi74CyneQNPTDjNg
 azHmvpdBVEfj7k3p4dmJp5i0U66Onmf6mMFpArvBRSMOKU9DlAzMi4IvhiNWjKVaIE2Se9BY
 FdKVAJaZq85P2y20ZBd08ILnKcj7XKZkLU5FkoA0udEBvQ0f9QLNyyy3DZMCQWcwRuj1m73D
 sq8DEFBdZ5eEkj1dCyx+t/ga6x2rHyc8Sl86oK1tvAkwBNsfKou3v+jP/l14a7DGBvrmlYjO
 59o3t6inu6H7pt7OL6u6BQj7DoMAEQEAAcLBfAQYAQgAJgIbDBYhBBvZyq1zXEw6Rg38yk3e
 EPcA/4NaBQJonNqrBQkmWAihAAoJEE3eEPcA/4NaKtMQALAJ8PzprBEXbXcEXwDKQu+P/vts
 IfUb1UNMfMV76BicGa5NCZnJNQASDP/+bFg6O3gx5NbhHHPeaWz/VxlOmYHokHodOvtL0WCC
 8A5PEP8tOk6029Z+J+xUcMrJClNVFpzVvOpb1lCbhjwAV465Hy+NUSbbUiRxdzNQtLtgZzOV
 Zw7jxUCs4UUZLQTCuBpFgb15bBxYZ/BL9MbzxPxvfUQIPbnzQMcqtpUs21CMK2PdfCh5c4gS
 sDci6D5/ZIBw94UQWmGpM/O1ilGXde2ZzzGYl64glmccD8e87OnEgKnH3FbnJnT4iJchtSvx
 yJNi1+t0+qDti4m88+/9IuPqCKb6Stl+s2dnLtJNrjXBGJtsQG/sRpqsJz5x1/2nPJSRMsx9
 5YfqbdrJSOFXDzZ8/r82HgQEtUvlSXNaXCa95ez0UkOG7+bDm2b3s0XahBQeLVCH0mw3RAQg
 r7xDAYKIrAwfHHmMTnBQDPJwVqxJjVNr7yBic4yfzVWGCGNE4DnOW0vcIeoyhy9vnIa3w1uZ
 3iyY2Nsd7JxfKu1PRhCGwXzRw5TlfEsoRI7V9A8isUCoqE2Dzh3FvYHVeX4Us+bRL/oqareJ
 CIFqgYMyvHj7Q06kTKmauOe4Nf0l0qEkIuIzfoLJ3qr5UyXc2hLtWyT9Ir+lYlX9efqh7mOY
 qIws/H2t
In-Reply-To: <20250811112631.759341-9-david@redhat.com>
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: Dh_wInqmPpk72i-dH6ltjlp_FjMYa01eq05IB5aYfNE_1756125064
X-Mimecast-Originator: redhat.com
Content-Language: en-US
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 11.08.25 13:26, David Hildenbrand wrote:
> print_bad_pte() looks like something that should actually be a WARN
> or similar, but historically it apparently has proven to be useful to
> detect corruption of page tables even on production systems -- report
> the issue and keep the system running to make it easier to actually detect
> what is going wrong (e.g., multiple such messages might shed a light).
> 
> As we want to unify vm_normal_page_*() handling for PTE/PMD/PUD, we'll have
> to take care of print_bad_pte() as well.
> 
> Let's prepare for using print_bad_pte() also for non-PTEs by adjusting the
> implementation and renaming the function to print_bad_page_map().
> Provide print_bad_pte() as a simple wrapper.
> 
> Document the implicit locking requirements for the page table re-walk.
> 
> To make the function a bit more readable, factor out the ratelimit check
> into is_bad_page_map_ratelimited() and place the printing of page
> table content into __print_bad_page_map_pgtable(). We'll now dump
> information from each level in a single line, and just stop the table
> walk once we hit something that is not a present page table.
> 
> The report will now look something like (dumping pgd to pmd values):
> 
> [   77.943408] BUG: Bad page map in process XXX  pte:80000001233f5867
> [   77.944077] addr:00007fd84bb1c000 vm_flags:08100071 anon_vma: ...
> [   77.945186] pgd:10a89f067 p4d:10a89f067 pud:10e5a2067 pmd:105327067
> 
> Not using pgdp_get(), because that does not work properly on some arm
> configs where pgd_t is an array. Note that we are dumping all levels
> even when levels are folded for simplicity.
> 
> Signed-off-by: David Hildenbrand <david@redhat.com>
> ---
>   include/linux/pgtable.h |  19 ++++++++
>   mm/memory.c             | 104 ++++++++++++++++++++++++++++++++--------
>   2 files changed, 103 insertions(+), 20 deletions(-)
> 
> diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h
> index bff5c4241bf2e..33c84b38b7ec6 100644
> --- a/include/linux/pgtable.h
> +++ b/include/linux/pgtable.h
> @@ -1966,6 +1966,25 @@ enum pgtable_level {
>   	PGTABLE_LEVEL_PGD,
>   };
>   
> +static inline const char *pgtable_level_to_str(enum pgtable_level level)
> +{
> +	switch (level) {
> +	case PGTABLE_LEVEL_PTE:
> +		return "pte";
> +	case PGTABLE_LEVEL_PMD:
> +		return "pmd";
> +	case PGTABLE_LEVEL_PUD:
> +		return "pud";
> +	case PGTABLE_LEVEL_P4D:
> +		return "p4d";
> +	case PGTABLE_LEVEL_PGD:
> +		return "pgd";
> +	default:
> +		VM_WARN_ON_ONCE(1);
> +		return "unknown";
> +	}
> +}

One kernel config doesn't like the VM_WARN_ON_ONCE here, and I don't think we
really need it. @Andrew can you squash:

 From 0b8f6cdfe2c9d96393e7da1772e82048e096a903 Mon Sep 17 00:00:00 2001
From: David Hildenbrand <david@redhat.com>
Date: Mon, 25 Aug 2025 14:25:59 +0200
Subject: [PATCH] fixup: mm/memory: convert print_bad_pte() to
  print_bad_page_map()

Let's just drop the warning, it's highly unlikely that we ever run into
this, and if so, there is serious stuff going wrong elsewhere.

Signed-off-by: David Hildenbrand <david@redhat.com>
---
  include/linux/pgtable.h | 1 -
  1 file changed, 1 deletion(-)

diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h
index 9f0329d45b1e1..94249e671a7e8 100644
--- a/include/linux/pgtable.h
+++ b/include/linux/pgtable.h
@@ -1997,7 +1997,6 @@ static inline const char *pgtable_level_to_str(enum pgtable_level level)
  	case PGTABLE_LEVEL_PGD:
  		return "pgd";
  	default:
-		VM_WARN_ON_ONCE(1);
  		return "unknown";
  	}
  }
-- 
2.50.1


-- 
Cheers

David / dhildenb



From xen-devel-bounces@lists.xenproject.org Mon Aug 25 12:53:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 12:53:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093143.1448703 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqWhp-0001Dn-UD; Mon, 25 Aug 2025 12:53:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093143.1448703; Mon, 25 Aug 2025 12:53: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 1uqWhp-0001Dg-Rf; Mon, 25 Aug 2025 12:53:49 +0000
Received: by outflank-mailman (input) for mailman id 1093143;
 Mon, 25 Aug 2025 12:53:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=KF0Q=3F=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1uqWhn-0001Da-U6
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 12:53:48 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8762836b-81b2-11f0-b898-0df219b8e170;
 Mon, 25 Aug 2025 14:53:42 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 8F91F4EEBC47;
 Mon, 25 Aug 2025 14:53:41 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8762836b-81b2-11f0-b898-0df219b8e170
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=1756126421;
	b=hvCl2HpqOtbKs6UjiHEToaGiQC1LwtIl8a6oFH1MP4xNaQW+S0ZYx8OivKDcsJdyUfjD
	 62u7z6piuq6RrzOgswzpvkQoJ4WT+qti8kYBGy+Ryr5a63gy1ntYajKAQbG93MdfbS6N1
	 3ncQ0vO+CfbFUCfch+NOjHzSgmBpV1Qkxup1MABdQGUGzxQBTaegntSQxUJKqgAEl9TdK
	 EU2UNBk1FfWlr72FCIrJrQXrRYMj3mUj3JVCMSY+0xQQeUoq9jnolGRmnUpadSAq89aYW
	 fYLK1biFVpDW0I+0sYxxQTlGeU4PJ7bNIREXT5rSQsaqqZ3DaBYLFtj2sRREjOhuRNlHp
	 1j7u7G3xoPCCChwOcjzzBKmF6TLEvXgdXVil23n57taXIwvr0xP5/5RDLCStPQ6iBebIn
	 3hLZ5FJJ3BKzRtd8n6dW71DFwoAUNywCrZcmZZvnG418X5ZsbqYI+qGmf2tLIo4LrK713
	 GuVWli4FmLIZmnJgkkDRFQzzAvhaDi1anrd+yEclDzVlw2RtC8xUH+vSiHmGDd/nXbmut
	 7aWMMEvUcJPSQfV0Eejwu+aHVKAPM2JTRreYJISYSGYQQXIHS8S+QOjCx9A1W7jyq2sRC
	 uC2lB+I8lFb+MhUuLqLhq2PzWEWqnJFs/14jcccTsyVkTxro72ghogBVUJZA878=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1756126421;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=NooWRAUvWfucIFkhhxHUk2cEIO4DVIs7fRzZRF99NfM=;
	b=BSqYVVgc88g3ovEbcKSyDQv2yY4YrM5cUB3kNx3j5xkqp2RyEoduo/8lAM8qg3uPfdym
	 668qP4PRv6myAClf+msvzNdAjo/OpzrLMbg2GNYhgUqOUlfebhR0MS2edMWpUZ8ZKyX6x
	 OHYrL7+9muUFvr9swDyMkL12HsJtqNzineAKwKH5xrFhHrfSQeNBLSG2u8SENXrQEgqyJ
	 v/3JfvrDRWX/aw0ocp1x+WdIxHv78HTbGH+iqMuTFPshxVsac3ZjN9dG6bhayb7cHLGic
	 U9/leS9a9b75hEnJVccMRe4y/AzyumUj6ToSD927wyP9ESYFhMsILaYyNHYRnfgoqn8lv
	 Wl/BEvnN4Lkl3nhb0aJdyHv6ob6avriWc1+a/6NriNZx+5NGuwxW/hFCm7WHQSoOg8roJ
	 nH76a75ST69g3HciPmgacyccJrkAFiS817Dy4U8mNPyE3lw97c7CV9Ne2lFeNxgmyLfYs
	 lAPuzqfqvHNiAHIasl0WnILJVXTk/lIE3rQsRDdwGVhz/YmIjYxNvFnFy0z/7Jg/QLMPO
	 s5SZsLU6FJ/ADcAItG6+az67B5uxDR7xeB9cLr0Sjh4NTQo7ln3JEGfLqxVcqBBkrleT4
	 LgTrKWH2d2hlkR+Tta4anyVdyYWvjKwMX/4nSi0pmwJlZDrF8TM+q5gMf9U+ZnY=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1756126421; bh=+jo+pmmNwnKAq4YFLs9Za3Ni2ZlO3Dn17Li94inB7Pc=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=IM/hlWHkk+wMQ6lH+ECp/+IkcmxMlJaw02/zzXxv6YRfDPACRh84QEMcT1E9ZaW+k
	 yetaqVnPUbGlZVjiick4OUX9uCcoe6ATVgMb4q0ad+PwRUkX+naOHXvRQI9G0JnVgw
	 ipOtwgQLabWaTJrsAQpes/08XAkkJU8cQZIF6vlc7mhwjUpmbvbeaaK7MO2EFv6oKe
	 VGTmmY8s1gMSat/0p0iFhtH1HARBaULVEyd8JOotd7b4u8XUra+kDrwlLlgITLeIFz
	 HtB2xGJyk/zX8Lg+qwiHbPyqCKtlSXHw7Q3tRZBws9clyj33a5+sybnTNfuy44a9b0
	 i6fGGMoCBwfQw==
MIME-Version: 1.0
Date: Mon, 25 Aug 2025 14:53:41 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: Jan Beulich <jbeulich@suse.com>, Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Andrew Cooper
 <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
Subject: Re: [PATCH] misra: consider conversion from UL or (void*) to function
 pointer as safe
In-Reply-To: <6b912698-b871-4819-ac30-14325d0be146@epam.com>
References: <9e5e4ff2c7ba0a90a6ac403e2de9318e18949274.1755628705.git.dmytro_prokopchuk1@epam.com>
 <90fb95a3-4b32-4785-a77c-373e5b9da6ed@suse.com>
 <e1e2abdf0ef8708097aa78440eeb7147@bugseng.com>
 <6b912698-b871-4819-ac30-14325d0be146@epam.com>
Message-ID: <498f9629d2dda3f305c11512908b1325@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

On 2025-08-22 18:34, Dmytro Prokopchuk1 wrote:
> On 8/21/25 11:25, Nicola Vetrini wrote:
>> On 2025-08-21 10:01, Jan Beulich wrote:
>>> On 19.08.2025 20:55, Dmytro Prokopchuk1 wrote:
>>>> Rule 11.1 states as following: "Conversions shall not be performed
>>>> between a pointer to a function and any other type."
>>>> 
>>>> The conversion from unsigned long or (void *) to a function pointer
>>>> is safe in Xen because the architectures it supports (e.g., x86 and
>>>> ARM) guarantee compatible representations between these types.
>>> 
>>> I think we need to be as precise as possible here. The architectures
>>> guarantee nothing, they only offer necessary fundamentals. In the
>>> Windows x86 ABI, for example, you can't convert pointers to/from 
>>> longs
>>> without losing data. What we build upon is what respective ABIs say,
>>> possibly in combination of implementation specifics left to 
>>> compilers.
>>> 
>> 
>> +1, a mention of the compilers and targets this deviation relies upon 
>> is
>> needed.
> 
> Maybe with this wording:
> 
> This deviation is based on the guarantees provided by the specific ABIs
> (e.g., ARM AAPCS) and compilers (e.g., GCC) supported in Xen. These 
> ABIs

s/supported in/supported by/

> guarantee compatible representations for 'void *', 'unsigned long' and
> function pointers for the supported target platforms. This behavior is

It's not just about the guarantees of the ABIs: it's the behavior of the 
compiler for those ABIs that makes this safe or unsafe. If present, such 
documentation should be included

> architecture-specific and may not be portable outside of supported
> environments.
> 
>> 
>>>> --- a/docs/misra/deviations.rst
>>>> +++ b/docs/misra/deviations.rst
>>>> @@ -370,6 +370,16 @@ Deviations related to MISRA C:2012 Rules:
>>>> Â Â Â Â Â Â Â  to store it.
>>>> Â Â Â Â Â  - Tagged as `safe` for ECLAIR.
>>>> 
>>>> +Â Â  * - R11.1
>>>> +Â Â Â Â  - The conversion from unsigned long or (void \*) to a function
>>>> pointer does
>>>> +Â Â Â Â Â Â  not lose any information or violate type safety assumptions
>>>> if unsigned
>>>> +Â Â Â Â Â Â  long or (void \*) type is guaranteed to be the same bit size
>>>> as a
>>>> +Â Â Â Â Â Â  function pointer. This ensures that the function pointer can
>>>> be fully
>>>> +Â Â Â Â Â Â  represented without truncation or corruption. The macro
>>>> BUILD_BUG_ON is
>>>> +Â Â Â Â Â Â  integrated into xen/common/version.c to confirm conversion
>>>> compatibility
>>>> +Â Â Â Â Â Â  across all target platforms.
>>>> +Â Â Â Â  - Tagged as `safe` for ECLAIR.
>>> 
>>> Why the escaping of * here, when ...
>>> 
>>>> --- a/docs/misra/rules.rst
>>>> +++ b/docs/misra/rules.rst
>>>> @@ -431,7 +431,13 @@ maintainers if you want to suggest a change.
>>>> Â Â Â Â Â  - All conversions to integer types are permitted if the
>>>> destination
>>>> Â Â Â Â Â Â Â  type has enough bits to hold the entire value. Conversions 
>>>> to
>>>> bool
>>>> Â Â Â Â Â Â Â  and void* are permitted. Conversions from 'void noreturn (*)
>>>> (...)'
>>>> -Â Â Â Â Â Â  to 'void (*)(...)' are permitted.
>>>> +Â Â Â Â Â Â  to 'void (*)(...)' are permitted. Conversions from unsigned
>>>> long or
>>>> +Â Â Â Â Â Â  (void \*) to a function pointer are permitted if the source
>>>> type has
>>>> +Â Â Â Â Â Â  enough bits to restore function pointer without truncation 
>>>> or
>>>> corruption.
>>>> +Â Â Â Â Â Â  Example::
>>>> +
>>>> +Â Â Â Â Â Â Â Â Â Â  unsigned long func_addr = (unsigned long)&some_function;
>>>> +Â Â Â Â Â Â Â Â Â Â  void (*restored_func)(void) = (void (*)(void))func_addr;
>>> 
>>> ... context here suggests they work fine un-escaped, and you even add
>>> some un-
>>> escaped instances as well. Perhaps I'm simply unaware of some
>>> peculiarity?
>>> 
>> 
>> This is a literal rst block, while the other is not (* acts as a 
>> bullet
>> point in rst iirc)
> 
> This is how "sphinx-build" tool interprets this.
> 1. * inside single quotes '' -> looks normal, e.g. â€˜void (*)(â€¦)â€™
> 2. * without quotes -> warning
> deviations.rst:369: WARNING: Inline emphasis start-string without
> end-string. [docutils]
> 3. \* -> looks normal, e.g. (void *)
> 
> Because that we need such format: \*
> 
> Dmytro.
> 
>> 
>>> Jan
>> 

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 13:08:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 13:08:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093158.1448712 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqWvr-0003Hn-87; Mon, 25 Aug 2025 13:08:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093158.1448712; Mon, 25 Aug 2025 13:08:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqWvr-0003Hg-5U; Mon, 25 Aug 2025 13:08:19 +0000
Received: by outflank-mailman (input) for mailman id 1093158;
 Mon, 25 Aug 2025 13:08:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=KF0Q=3F=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1uqWvp-0003Ha-QN
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 13:08:17 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8d334357-81b4-11f0-a32c-13f23c93f187;
 Mon, 25 Aug 2025 15:08:11 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 060CE4EEBC47;
 Mon, 25 Aug 2025 15:08:10 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8d334357-81b4-11f0-a32c-13f23c93f187
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=1756127290;
	b=KoFYYTcftQ0p2lPjbjUJnRvSuqBwjN0jmIOiT+zbMzOLX27N4JO5ERewVTFK82N94DvK
	 GNWodJ3ag5VaMzIYtJ8seJwEu2ll42OawhPxxgC0z7Fegq9wAC9plUdRTCC1p5qa3PIzs
	 3HOwsF1AN4HNzUw7+uebkJohlivrGpNOtWwsZV/bn+zXFf6cPZYDeN3feP9oTx61zWImp
	 yValnXuMrnVz1nox4zAr/jE6kkSxRJ+v7F7ozLAk92UxdHFb+N1qrcY3Ur3skTFrb27tA
	 jHZtpSoy25JTDXROpVJZF+oO24FGza/M6UqMvvQiWdmO16sJ2l4EZi7+vERXa3AHF8RdI
	 +7YIcfseHvqNAF94P6axaRfI8B7s/WtcWJt3yCo0cYoAZFKz1Wy7AuYinGyHN3NmIdMng
	 ja/wnIJaZbe7Fdi9GY7YtUXaeYIl4Rm/JeAlGatNyIuxJLHVKqvO62OoTiu/fKekosoeb
	 IhclqXD/d67rZoDrKZ7Xl2Y3y2VbquI8XgagmI0OqvHpC0DEgB3+RReN5mUipRvupGyKm
	 wgsmFSZ4nEnQ1g2RSZKAanjlbXPjG8TLMdkMF9ivEZhKozAB5eLldi1Uqnk+Lebzezruw
	 I/iKESQa1lGebQhD8GjOUBLwWhm3NT08Oo9HOWZk9yOGpmGGav2Hve9fQLQKw4c=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1756127290;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=XNdfXwJHTxh9Voyqx8P7Jkzf/DkyOueO4hluQeTx6KE=;
	b=p/W7CW6ZFvpNnzdJdLnq8m6JpP23Zwt5kvl/6Tqzl9DbtQN8hZH0Oo34gBSSmIGjuhXg
	 nzTNwCDhm3rPOulTWdfp2WwyNRBLahn10ZXLj6MmnTdUfQy3PJr9MxcJW7Z/p+EdEQ8Bp
	 E1GVMG9J8mF9qSB45jubLfWOVWRYBRB6AB9ZC5MkLi43juq3usr/vwkSidUJtsSsPnAfD
	 5/2dknhtD+q6LJ/6pOj4UxIO3XOhet5sYJL5NuiRALMaTlgVKun8xayTQK5FJ3dXyPsct
	 B2Acfeq5MoOG7ZPs4j3Uo+Mq37lfKklTReFxBl5o9f29jjUHLstjgIlDDqG2aMaV6F6KT
	 IoYa46tN8osk9p7Ee2u7fG5qY6K/7gxjYyKIkH4FnkOXqUroQ9LJ8TVsA/5G9MLBgmWpm
	 48jxdTqp7Y2SNndGyU/Kp0WfwnjuCZLNQ4WlW/5BGX7nEUGmAwbOWhQjNuAMi+aX0x/u0
	 kR/ceyNZKytPPZgj9w8GOOjMxL0Y+ldGKNSf6aqN+Xc//gid2PZCOP1D/vpCQe5pTCfzS
	 WwA5sSp2d6ZiAvlu1hexcP7evPkZMNGPcPYl0byFKIktwyu9f3ziy7/1EAhRzsyKZ8rZY
	 dBElSkerxHcNhqN/Ky+0NATHctBqlzdn4H42S4gGg62zdbq6eRD0eE8EY3tOKSU=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1756127290; bh=HU0bKkfhwCmUuMCLkY4a7YjEn+lGpZ+N9vx9OWsjVbI=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=vMLa1xmwcmV0MNQxwvIHWni03mInA4sy9wpW3Y5ZMSL4aRWIWqdkpxDU93N/unW4B
	 epL+dOyiMVSxzmzvjOzZiPO9ERpnKssfwDWfrIwpLuehDZG7jekGarnUU/5yyTuKjR
	 DLoiMRXAMe2yURbD4+UdGRt6YNFfKFrouyfcZZ09II2guZReyvfq6KlHEBpX+jBOZL
	 nUdj8TjCPWnsr1Fn4MULFL2bDTUetU4vDQOS0ypeySDFw8eDlo6LNMKg6b8M08imUh
	 QziUmdWg1S/KP6O2UuDfIImNF4YxsHhmdW5wSIE05aVFlN6AZA3Aqroqz/btoxNj1X
	 YXbY0Yc6mdzjw==
MIME-Version: 1.0
Date: Mon, 25 Aug 2025 15:08:10 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: Jan Beulich <jbeulich@suse.com>, Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Andrew Cooper
 <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
Subject: Re: [PATCH] misra: consider conversion from UL or (void*) to function
 pointer as safe
In-Reply-To: <498f9629d2dda3f305c11512908b1325@bugseng.com>
References: <9e5e4ff2c7ba0a90a6ac403e2de9318e18949274.1755628705.git.dmytro_prokopchuk1@epam.com>
 <90fb95a3-4b32-4785-a77c-373e5b9da6ed@suse.com>
 <e1e2abdf0ef8708097aa78440eeb7147@bugseng.com>
 <6b912698-b871-4819-ac30-14325d0be146@epam.com>
 <498f9629d2dda3f305c11512908b1325@bugseng.com>
Message-ID: <d1fd1bbc474aad5a6a9841a8c109126a@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

On 2025-08-25 14:53, Nicola Vetrini wrote:
> On 2025-08-22 18:34, Dmytro Prokopchuk1 wrote:
>> On 8/21/25 11:25, Nicola Vetrini wrote:
>>> On 2025-08-21 10:01, Jan Beulich wrote:
>>>> On 19.08.2025 20:55, Dmytro Prokopchuk1 wrote:
>>>>> Rule 11.1 states as following: "Conversions shall not be performed
>>>>> between a pointer to a function and any other type."
>>>>> 
>>>>> The conversion from unsigned long or (void *) to a function pointer
>>>>> is safe in Xen because the architectures it supports (e.g., x86 and
>>>>> ARM) guarantee compatible representations between these types.
>>>> 
>>>> I think we need to be as precise as possible here. The architectures
>>>> guarantee nothing, they only offer necessary fundamentals. In the
>>>> Windows x86 ABI, for example, you can't convert pointers to/from 
>>>> longs
>>>> without losing data. What we build upon is what respective ABIs say,
>>>> possibly in combination of implementation specifics left to 
>>>> compilers.
>>>> 
>>> 
>>> +1, a mention of the compilers and targets this deviation relies upon 
>>> is
>>> needed.
>> 
>> Maybe with this wording:
>> 
>> This deviation is based on the guarantees provided by the specific 
>> ABIs
>> (e.g., ARM AAPCS) and compilers (e.g., GCC) supported in Xen. These 
>> ABIs
> 
> s/supported in/supported by/
> 
>> guarantee compatible representations for 'void *', 'unsigned long' and
>> function pointers for the supported target platforms. This behavior is
> 
> It's not just about the guarantees of the ABIs: it's the behavior of 
> the compiler for those ABIs that makes this safe or unsafe. If present, 
> such documentation should be included
> 

In any case, provided that the wording can be adjusted:

Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

>> architecture-specific and may not be portable outside of supported
>> environments.
>> 
>>> 
>>>>> --- a/docs/misra/deviations.rst
>>>>> +++ b/docs/misra/deviations.rst
>>>>> @@ -370,6 +370,16 @@ Deviations related to MISRA C:2012 Rules:
>>>>> Â Â Â Â Â Â Â  to store it.
>>>>> Â Â Â Â Â  - Tagged as `safe` for ECLAIR.
>>>>> 
>>>>> +Â Â  * - R11.1
>>>>> +Â Â Â Â  - The conversion from unsigned long or (void \*) to a 
>>>>> function
>>>>> pointer does
>>>>> +Â Â Â Â Â Â  not lose any information or violate type safety assumptions
>>>>> if unsigned
>>>>> +Â Â Â Â Â Â  long or (void \*) type is guaranteed to be the same bit 
>>>>> size
>>>>> as a
>>>>> +Â Â Â Â Â Â  function pointer. This ensures that the function pointer 
>>>>> can
>>>>> be fully
>>>>> +Â Â Â Â Â Â  represented without truncation or corruption. The macro
>>>>> BUILD_BUG_ON is
>>>>> +Â Â Â Â Â Â  integrated into xen/common/version.c to confirm conversion
>>>>> compatibility
>>>>> +Â Â Â Â Â Â  across all target platforms.
>>>>> +Â Â Â Â  - Tagged as `safe` for ECLAIR.
>>>> 
>>>> Why the escaping of * here, when ...
>>>> 
>>>>> --- a/docs/misra/rules.rst
>>>>> +++ b/docs/misra/rules.rst
>>>>> @@ -431,7 +431,13 @@ maintainers if you want to suggest a change.
>>>>> Â Â Â Â Â  - All conversions to integer types are permitted if the
>>>>> destination
>>>>> Â Â Â Â Â Â Â  type has enough bits to hold the entire value. Conversions 
>>>>> to
>>>>> bool
>>>>> Â Â Â Â Â Â Â  and void* are permitted. Conversions from 'void noreturn 
>>>>> (*)
>>>>> (...)'
>>>>> -Â Â Â Â Â Â  to 'void (*)(...)' are permitted.
>>>>> +Â Â Â Â Â Â  to 'void (*)(...)' are permitted. Conversions from unsigned
>>>>> long or
>>>>> +Â Â Â Â Â Â  (void \*) to a function pointer are permitted if the source
>>>>> type has
>>>>> +Â Â Â Â Â Â  enough bits to restore function pointer without truncation 
>>>>> or
>>>>> corruption.
>>>>> +Â Â Â Â Â Â  Example::
>>>>> +
>>>>> +Â Â Â Â Â Â Â Â Â Â  unsigned long func_addr = (unsigned 
>>>>> long)&some_function;
>>>>> +Â Â Â Â Â Â Â Â Â Â  void (*restored_func)(void) = (void 
>>>>> (*)(void))func_addr;
>>>> 
>>>> ... context here suggests they work fine un-escaped, and you even 
>>>> add
>>>> some un-
>>>> escaped instances as well. Perhaps I'm simply unaware of some
>>>> peculiarity?
>>>> 
>>> 
>>> This is a literal rst block, while the other is not (* acts as a 
>>> bullet
>>> point in rst iirc)
>> 
>> This is how "sphinx-build" tool interprets this.
>> 1. * inside single quotes '' -> looks normal, e.g. â€˜void (*)(â€¦)â€™
>> 2. * without quotes -> warning
>> deviations.rst:369: WARNING: Inline emphasis start-string without
>> end-string. [docutils]
>> 3. \* -> looks normal, e.g. (void *)
>> 
>> Because that we need such format: \*
>> 
>> Dmytro.
>> 
>>> 
>>>> Jan
>>> 

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 13:28:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 13:28:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093176.1448734 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqXEo-0006Mm-TP; Mon, 25 Aug 2025 13:27:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093176.1448734; Mon, 25 Aug 2025 13:27:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqXEo-0006Mf-Qs; Mon, 25 Aug 2025 13:27:54 +0000
Received: by outflank-mailman (input) for mailman id 1093176;
 Mon, 25 Aug 2025 13:27:53 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/bS3=3F=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1uqXEn-0006MZ-FD
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 13:27:53 +0000
Received: from GVXPR05CU001.outbound.protection.outlook.com
 (mail-swedencentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c202::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4a0aa0f8-81b7-11f0-a32c-13f23c93f187;
 Mon, 25 Aug 2025 15:27:47 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by VI2PR03MB10858.eurprd03.prod.outlook.com (2603:10a6:800:27c::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.15; Mon, 25 Aug
 2025 13:27:44 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9052.019; Mon, 25 Aug 2025
 13:27: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>
X-Inumbo-ID: 4a0aa0f8-81b7-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=zFCc2XU8NZnJmq71ded1bBaeAG888sRu5sT+aL2KMtFUVjW4rRXeVDMPv876nCtJdlqDGvql7mUfuV3sNOrn4zJjIiBexZMcBbr+5tRgvVomcaU+6azh6DFK6cLJI7r539yRUXPAh8BJl3zFQGG8f6/ZGQMb5rYlnbwF3ojBvgEef2n5vs5Cb34jTZlWDWI8MOfqlnM+tuOt7+qZP6Lo+aZK9owgJC+EJjaSTPJJTmLGDPb8VycY4D8X+QyvzPPSkYQlnMeNO9ey7dQqs6RxXTp7zmAOvIB+BUjpGLIm8mVrLcY+2u9KS+HbqZ0M8zeYJmUiGyGeVdcMCDXC+IrAAA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+X5jyYQeGpg9rJyPL3XVX1P8S6+1/ZgUDi67/qI/grA=;
 b=NlIc8cztIGenQfuqvxT2UEIRNAIZU2cIlpQzGHJxLFmaHqv04bXP1NzuFmUjQ1Tvog5exIQ6Msj5y5l/T0pAJw7DbokdPwWV+WY3NECGtVsUSQzACgc2Q9h1Om3IIvRFPbUr6/vHas95ESxA3Mbbo0GrMC1fQPgspoaGDSZBybMzwLd84vcjXQu9OpJlpUizDj6olMM+eEDbOvS3dEQHR3o1aua7c9uFUuLnhVhhMyaXDyVBZFrtKrOitiTEfYO0zcbS1VS+oo3/Kv1qppm3qh0qjwyit63TaCt4yHBGLFzGpeODoeqxBwOFQ6OdLHbRMSUUcb3wDqqNekf8t9hq4g==
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=+X5jyYQeGpg9rJyPL3XVX1P8S6+1/ZgUDi67/qI/grA=;
 b=CbVn1eGfOLIrXxzOtImwLT46qXz0Z5dGrl+UCiwuYPlDkijOlluA08C207MKc+9aKQ1i6MDnE6dioSBCrCgq+IrKrfpDuZmKM3DoRQ8nsGodFGaxKp0rCRhOjbpvFnbxD6JXqPH7uG90mOe69vzlx0KUfYto8Sxl637+INeA+jtZWmghyjbBpLOr7SvTdGBdN8pF7OC0rJmEo1nJrzC5CTtwCnQjqoInjdR+MyLxgW6uO+sEwbsYFp5NVPJ8msE7r2WozM9aPOQRYFTyPBoPeJRjMBwwrp2jF0Rd13EaxJi4IBcnrNyncKnQvhu7RuHsbxtzyXTo06MlXPHkAzICzA==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Nicola Vetrini <nicola.vetrini@bugseng.com>, Doug Goldstein
	<cardoe@cardoe.com>, Stefano Stabellini <sstabellini@kernel.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien
 Grall <julien@xen.org>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] misra: add deviation of Rule 17.7
Thread-Topic: [PATCH] misra: add deviation of Rule 17.7
Thread-Index: AQHcFZ9zsboRH18vd0iLUvum4pfwBbRzK0qAgAAH1ACAAAJ8AIAAJzmA
Date: Mon, 25 Aug 2025 13:27:44 +0000
Message-ID: <37bb8530-c9e4-4ad4-8959-d1f13316a0fd@epam.com>
References:
 <ad15582787e675fadf92502f85041c3232749a99.1756112701.git.dmytro_prokopchuk1@epam.com>
 <53d5cee3-9001-49a2-9da2-e56950a77683@suse.com>
 <83267937-938d-43d8-ba2c-a07d6adb93a9@epam.com>
 <330f8ee8-9fcd-40e4-96c0-ac126b047070@suse.com>
In-Reply-To: <330f8ee8-9fcd-40e4-96c0-ac126b047070@suse.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV2PR03MB9572:EE_|VI2PR03MB10858:EE_
x-ms-office365-filtering-correlation-id: 14692636-1f8a-48b6-b78e-08dde3db2ce2
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|376014|7416014|366016|42112799006|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?c0I4UWo3UUdpZVkyV05xUytYU3JReFZQcGhoNG1WS3Z1L2xQeDMwdWdUTjFl?=
 =?utf-8?B?VTBhWjJURnoyUWxkZ09LQmcxUGtKWXRWTForQ0pVNW5WOS80Z0NCanoyWStN?=
 =?utf-8?B?dHRtMGZ1WGpndnFSVXpGWERlcnRVTFBWbTdjb3VGZVhqUFVlazJ6NmVJcXFt?=
 =?utf-8?B?Q1QzOUZOcm8yZHpiak96Sk1FdFM1SGNWQXRBaUxMTVpsdVFjTnR2Wk5vS1M0?=
 =?utf-8?B?OEt1YUFWMFBrUzQ4WVZEQTN4dzJ1U1ZmV0R2REFZSUt1aGtzVDM4VDZwU0pM?=
 =?utf-8?B?WVJRMlh1ajA3S1UrQmljcFR3cWxpaG1OZzd1Ly9JYVVubjlnZUhFR1V5b1Fh?=
 =?utf-8?B?TnZxY3hWaXZTc2ZtMnhoVUhnejZhSVNFZG9RVTFDcVU5NXhac2wzemtmL0I0?=
 =?utf-8?B?UHJMQmlNRElzM0JzZFFVTlQ4QlFHSWRGUjdxQlpTSmFIbmRxUFUzMEFYMWNI?=
 =?utf-8?B?azhqRVZBclJOOWNkd1RtRndUdTV5M0lvSGFqTExyQTR5b0tpcW1SenJNMUo0?=
 =?utf-8?B?N2YxU0JPVm5FUWVwS3dpOFFObVl1MkhmY0p0NTZUMitsTUt6dlNPVExUaWRt?=
 =?utf-8?B?UGlSajhyRnZvcjJVNEx0L1JyNUVhY0NlL0V2R1RFalhSUzd4eS9lUGFINkRs?=
 =?utf-8?B?NzE1Ti9qc3JmZXMrZWZuWmIrWmg4bzdUaEJQV2JSbDZhTTZXUytQektZNUE3?=
 =?utf-8?B?R2hJZDQxNGNDRWg2eWs4VDIreDZOQStCMFlJalh6RlF6UEJIMWZhUE5rRHE1?=
 =?utf-8?B?TFQ3QmlWVEQybW1FVWZpZzRiR09waGZYRmZ2UHdpUC9ONkdobjFhVnl5UDdm?=
 =?utf-8?B?SUdVd3h1UlBhT1ZrLzlmbHYvSE1PRHM5bnhuSGhnU3Y0Z3JKR1VCTnhDemRO?=
 =?utf-8?B?OTgxYmkycjBiTS9mTGIzWFBoaGd2bXVVQzRqaFVuRThOQk9Ka3ZrVmphdm5H?=
 =?utf-8?B?Q0lqRGpYenZvb3pzRVI1QWV5UkttR2hialVtT080b3lUMVB6b0RoRS82bXhy?=
 =?utf-8?B?NG9lK2ZPZkw0aHR3SEptYWxIOXgwd3pzSUIrVmE4YzB5L1E2NTdIYXI3d3hT?=
 =?utf-8?B?d01namZkdG1YQlhvVEJZNkN1Q2ltR2xHSHY1VnB0UkRFQlRsd3VhT25wYi9m?=
 =?utf-8?B?VEZTcXNwekZXQ2gxeU5UcFh2M2dPNnBuandSVFF2TVhoU0ExZEFDZDRrb2Zs?=
 =?utf-8?B?YVU2K3dkb0NjRWhSUUZzTnBHRW5iT2d3SGtCb0Jhb3VRRW93N0dLeFp6OHpu?=
 =?utf-8?B?RGZNU0tFQXA4TXBxVGJ1M3VLV29VckhJQ0V1REVCY0VweWFtMXBxUmpqTFp6?=
 =?utf-8?B?aWlWREVkclAvRWxSRHVZbWx2MmYyMkxRWWVFNnE3ditIRUxxbVhmdGcrSFU4?=
 =?utf-8?B?TVpIbW4yak81UU9pQm5rNlFWOHBIR1BPVEx4OEFUT0o0KzlvNEgxVWs4dnJX?=
 =?utf-8?B?a290azdxMmo3aTRYaGdhZ25scXltNXVsTEN1bEZkb1N4THIwR21iSDVmcHVq?=
 =?utf-8?B?TDE1eHlpdDZ2OVV6SjV1RXlZSnRmSTMxRXhHOWVZbDAxdGRkc0ZtN2ZjM25p?=
 =?utf-8?B?QldmRHBPYkZ1ZHhjbXVlbWtsTDhSeE56MWFuTGVBMi90YXdPdXVQalNMN3k2?=
 =?utf-8?B?Nzd5RnZEZDQ3bUpCZEVZNGp5c1hjVFRaVEh4R2hSelhGejRjS0dqZ29XdDRy?=
 =?utf-8?B?VjJmWGtVaVdQU0JmUVRkVENjckpkNHVHaW1jQUwyeXlpTXI4ejVSVmJaeUYy?=
 =?utf-8?B?SGR0M1plUnhyY0R3WmppaUcrZERuT0I5SkcvdVF3TEkwS3R2elAybGc2R0Yz?=
 =?utf-8?B?eWNZbzluQUFBZFZuTGxKS1VyTnpFcmJqSUxpdmFUNXh2NTQ2UExJbVFHcSt5?=
 =?utf-8?B?MzJzb2JLYnM1RzVQdWZpSG9JdDNGaitYUWNoQng1VTRleEdFVW1RN3E5K0Fi?=
 =?utf-8?B?Z2dVdHg3dGoyRU5XRnpZc0dQc2h0aElyR0VWUUVnNS83b3kxRmlYTUs4cERj?=
 =?utf-8?B?dFpwL0krU293PT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(366016)(42112799006)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?QXpUMGwzUVZNbXNyNWpsaUxqRE8wVnl4bkhWeGlSZ1VCV1RCeXUxN0tFTUZ4?=
 =?utf-8?B?TWtPcGNUTTNWc3NLSTVTYTgzRjk0dkpsMStUcHROS0RvN1RxazR0Y0xJUlpo?=
 =?utf-8?B?VTBTVzRaQkx1TytqVGcrbnl4MEsvVGRaTEdnNHhsZXUzUFkwbzBPY2RQdHgv?=
 =?utf-8?B?bXRnTFBZL0x3bzVFK20wbzlaZnpUdDc2TXd5VnU4ZXp3YytHWHJmRkJ1K3ha?=
 =?utf-8?B?RTRWVTFqdUNoT3B1alhuMkhZWkNRdUIwSkU3TWhsSEdDMW83THJnU3JxTWVW?=
 =?utf-8?B?Snk5eUlST3JtVC9CL1lQcDI2N2lqcVcxRjFQMFEza2J6QVZ6TDB5bFBXeHM1?=
 =?utf-8?B?QkdaVTZOWnNaWkF6Y2RYRVB1V0ppSm9ya3NPcUdIcDIyRGNHeDU1Wkk1VXhP?=
 =?utf-8?B?RllOSk9EVExnSHZyU0w1M05XeTdIR1M3SFZSQ25KV1FvS2ViL0hzVm83akJM?=
 =?utf-8?B?Q0cxQnJIWGt6REROTVZuTkF0ZVdhTlhWTm9wUEtwQUtBWTR6YjhXNzVjUFhw?=
 =?utf-8?B?bDQ0M1diS2hHSzJ2em1td3EvcHhTMDNYR1N3Y2QwM3RuTzFBekRLMUNkMERR?=
 =?utf-8?B?YUx1eWd2cmVic1JUaUI4eEw5WWpQY1I3aXBzSGRDT0dLL0FNcXp3KzN1MllN?=
 =?utf-8?B?emxubmpTdXdoSk9aQjVPOUJ4b3ZNVkhmTVpGWW0vclNtb1NINWQ5UUZvUUZQ?=
 =?utf-8?B?Sm5WVkxpcW5DQUtiSmVWajNvbWhtMDJYRER3bzNkQWdlSzFNYXJRSTlvODBB?=
 =?utf-8?B?Yk5LaVRYcjdaSUJOa3RKSWVLQzdoM3lLbHdjblUzNHV6aDBsWUV5OU9ZWk9r?=
 =?utf-8?B?WlBRTHQ1cTdQVjFGczl6SWxWSXRNajNyVU15UXFGK2t0L3ZsSHNYRm1nWkph?=
 =?utf-8?B?QXdIT0c4OVE0LzNhS2VaSk9pQ0EwY2IwRWt3ZmRwSTllbzNZZUFuVDc5YzUy?=
 =?utf-8?B?eFJCcjlVYmpQUGJVNmxVbWdWVEF3N3RPbFo2djRIVDc5bGZseWtDRGt0bTFr?=
 =?utf-8?B?Z0VpNmxMdzFEWGQ4QU1hQmlvMGJiUHphalJ2amdhSjEvN1Q5YzRhWUZxZXVS?=
 =?utf-8?B?TEpVWEVyMTg5ZkRLUy9LNXUrWnNJODdOSmpHVGI2U0hhWmRvS1BDbFEwZEpS?=
 =?utf-8?B?OXlabkgyZXRWdjlwOTJZc28welVxQUZxL0NiZXBNbGhMYWxsZEo3VldrSlFL?=
 =?utf-8?B?WVhtY01BWFFSYXpBakFhZkc0MDdMRW42RW1XUFNqWDV6bHZkUW5VUW1lT0hw?=
 =?utf-8?B?TXBIY0pKcEUyY1RpaU4vTVdQVVVVcnV0eWpDTDZOZHkydk9VOGd2TnFmN1Vr?=
 =?utf-8?B?NG5NOUhNR1RxanpndGVUUkNLanZUUDJWbklyZjRQbGw5d0xxWW9wUDFJMUxk?=
 =?utf-8?B?MGVTUkZBQnZkUGhHRmsrakRteGIrWHhVRXkwVStyTXlqUVZreVpUblJKNDJ2?=
 =?utf-8?B?eUNKaUlWNkY4aHpHNXdCRG1QcFB1RnhHb0pVRDA2b1BGYldwdkRMU0ZUUnpG?=
 =?utf-8?B?ZW9TY2FUalZGcEI2S0UyVDBJKzBkaHJtcldXNzlqTGV6VElnL0RrZ25JaTNu?=
 =?utf-8?B?S3hweWpjMEFNVmlhUG5xWloya3o4emFOWXNhbkpqcDU5SklNbmxJSGt0VVow?=
 =?utf-8?B?Vjh5cWZjNGtZY3d6NHhwQjZlTlR0TWRtNE1mOGxMdGJ4cWZ3Z2xabmthY3Nq?=
 =?utf-8?B?ZGlIQVJnNW15bE1BSU4zaURzWmI4S0FJa2lWUzFZVDRSeE1jOFMzT01oOWJw?=
 =?utf-8?B?VDRvSkZkckVnb1pJVmFzNldOaEIvTmdWc2NyYlNTZjI5WndzUUd4d2xNSnB4?=
 =?utf-8?B?N3A5Y2ZYNjVWMFR0Mk1OVnF6NHdXT2dTTlhieDVxcnlrWEMwMjV3N2JEbTJF?=
 =?utf-8?B?MmRBZms4U0RySXN5UlROdERRQ1ZhWUlvcTdJSi9mUkY0Tjc0RVd4NmhrUmJF?=
 =?utf-8?B?TzRWMW5zakZBWXFiUlNQZmEzU2srQklZTVNtYk8rQkZLcVpXaWFDWnlhR0xZ?=
 =?utf-8?B?VTh5Wk1XMVhqak5GckJmM2JRKzk4eVhRZWYzbTl2d3hoODBRQVpZeXVSWWE1?=
 =?utf-8?B?d2hydHlvS0lWMUZGd3FVYkhnRTJFL1RmZ2hHT042bXpXVFpQVlpkSHlaZmRX?=
 =?utf-8?B?R0hxNEdMMlN5S01vbUJIT1NUb3pQUHM2VXdpcFV1YU9qY1lhR20xUi9VaVY0?=
 =?utf-8?B?V3c9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <E27608956AB94E42B941B6E82747D1FD@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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 14692636-1f8a-48b6-b78e-08dde3db2ce2
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Aug 2025 13:27:44.6827
 (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: SwZzZ17esmBXmcdG/lMSwEp3smtGgH/JhisoU+pJ9ONsB34s8WHErs0k0dsZLJwj6mL9I16HUBn/qNrLvXw3LivwkCqP8Hn60QmRAXkcyqs=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI2PR03MB10858

DQoNCk9uIDgvMjUvMjUgMTQ6MDcsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAyNS4wOC4yMDI1
IDEyOjU4LCBEbXl0cm8gUHJva29wY2h1azEgd3JvdGU6DQo+PiBPbiA4LzI1LzI1IDEzOjMwLCBK
YW4gQmV1bGljaCB3cm90ZToNCj4+PiBPbiAyNS4wOC4yMDI1IDExOjA1LCBEbXl0cm8gUHJva29w
Y2h1azEgd3JvdGU6DQo+Pj4+IE1JU1JBIEMgUnVsZSAxNy43IHN0YXRlczogIlRoZSB2YWx1ZSBy
ZXR1cm5lZCBieSBhIGZ1bmN0aW9uIGhhdmluZw0KPj4+PiBub24tdm9pZCByZXR1cm4gdHlwZSBz
aGFsbCBiZSB1c2VkLiINCj4+Pj4NCj4+Pj4gRGV2aWF0ZSBmdW5jdGlvbnMgbGlrZSAnbWVtY3B5
KCknLCAnbWVtc2V0KCknLCAnbWVtbW92ZSgpJywgJ3NucHJpbnRmKCknLA0KPj4+PiAnc3RybGNw
eSgpJywgJ3N0cmxjYXQoKScsIGFzIHRoZXkgcmV0dXJuIGEgdmFsdWUgcHVyZWx5IGZvciBjb252
ZW5pZW5jZSwNCj4+Pj4gdGhlaXIgcHJpbWFyeSBmdW5jdGlvbmFsaXR5IChlLmcuLCBtZW1vcnkg
b3Igc3RyaW5nIG9wZXJhdGlvbnMpIHJlbWFpbnMNCj4+Pj4gdW5hZmZlY3RlZCwgYW5kIHRoZWly
IHJldHVybiB2YWx1ZXMgYXJlIGdlbmVyYWxseSBub24tY3JpdGljYWwgYW5kIHNlbGRvbQ0KPj4+
PiByZWxpZWQgdXBvbi4gVXBkYXRlICdkZXZpYXRpb25zLnJzdCcgZmlsZSBhY2NvcmRpbmdseS4N
Cj4+Pg0KPj4+IEhvdyBjb21lIHNucHJpbnRmKCkgaXMgYW1vbmcgdGhpcyBzZXQ/IEl0cyByZXR1
cm4gdmFsdWUgaXNuJ3QgcXVpdGUganVzdA0KPj4+IGZvciBjb252ZW5pZW5jZSwgaW1vLg0KPj4N
Cj4+IFllcywgc25wcmludGYoKSdzIHJldHVybiB2YWx1ZSBpc24ndCBqdXN0IGZvciBjb252ZW5p
ZW5jZS4gVGhlIGRldmlhdGlvbg0KPj4ganVzdGlmaWNhdGlvbiBpcyBwcmltYXJpbHkgYmFzZWQg
b24gdGhlIGZhY3QgdGhhdCBpdHMgcmV0dXJuIHZhbHVlIGlzDQo+PiByYXJlbHkgdXNlZCBpbiB0
aGUgWGVuIHNvdXJjZSBiYXNlLiBNb3N0IGNhbGxlcnMgb2Ygc25wcmludGYoKSBkb24ndA0KPj4g
Y2FyZSBhYm91dCByZXR1cm4gdmFsdWUuIFNvLCBzbnByaW50ZigpIGlzIGluIHRoaXMgbGlzdC4N
Cj4+DQo+PiBNYXliZSBzZXBhcmF0ZSB3b3JkaW5nIGlzIHJlcXVpcmVkIGZvciB0aGUgc25wcmlu
dGYoKSA/DQo+IA0KPiBNaW5pbWFsbHkuIFBlcnNvbmFsbHkgSSBkb24ndCB0aGluayBpdCBzaG91
bGQgYmUgZGV2aWF0ZWQgZ2xvYmFsbHkuDQo+IA0KPiBKYW4NCg0KVGhlcmUgYXJlIGFwcHJveGlt
YXRlbHkgMjMwIGluc3RhbmNlcyBvZiBzbnByaW50ZigpIGJlaW5nIHVzZWQgd2l0aG91dCANCmNo
ZWNraW5nIGl0cyByZXR1cm4gdmFsdWUgKGFjcm9zcyBBUk0gYW5kIHg4NikgaW4gYXJvdW5kIDIw
IGRpZmZlcmVudCANCnNvdXJjZSBmaWxlcy4gRGV2aWF0aW9uIGVhY2ggb2YgdGhlbSBjb3VsZCBi
ZSBjb21wbGljYXRlZC4NCg0KRG15dHJvLg0K


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 13:47:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 13:47:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093189.1448745 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqXY1-0000sO-Ej; Mon, 25 Aug 2025 13:47:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093189.1448745; Mon, 25 Aug 2025 13:47: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 1uqXY1-0000sH-Bi; Mon, 25 Aug 2025 13:47:45 +0000
Received: by outflank-mailman (input) for mailman id 1093189;
 Mon, 25 Aug 2025 13:47:44 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1uqXY0-0000sB-0q
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 13:47:44 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1uqXXy-005tI4-1Q;
 Mon, 25 Aug 2025 13:47:42 +0000
Received: from [2a01:cb15:80df:da00:4c1a:a750:6210:2b8] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1uqXXy-000U7P-0x;
 Mon, 25 Aug 2025 13:47: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date;
	bh=NVQGheeSBY4dxzD3x4yHra/8SpFGfbLE7d18BAW6qYY=; b=c8KKQ0XBn3xcPOgCNeMQfiNyS/
	AGLOKmeUE9U0Q6CiHYKUhvGazwPq5kWEl1TIAzmd2AAyWXvxoV2mV6/mBQ1e2S3ESH3l90+5cxy8r
	YDqrheREtXAj/Bh0JwLSwsnKoAFchbpUR5CuztQ3LAQ8jm38j3ZMa9wZ6BN4mqc4BK0c=;
Date: Mon, 25 Aug 2025 15:47:39 +0200
From: Anthony PERARD <anthony@xenproject.org>
To: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com,
	anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org,
	michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
	dmukhin@ford.com, Julien Grall <jgrall@amazon.com>
Subject: Re: [PATCH v16 3/4] tools/tests: introduce unit tests for domain ID
 allocator
Message-ID: <aKxpe7OJ8B7Qif5c@l14>
References: <20250812223024.2364749-1-dmukhin@ford.com>
 <20250812223024.2364749-4-dmukhin@ford.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250812223024.2364749-4-dmukhin@ford.com>

On Tue, Aug 12, 2025 at 10:30:50PM +0000, dmkhn@proton.me wrote:
> diff --git a/tools/tests/domid/.gitignore b/tools/tests/domid/.gitignore
> new file mode 100644
> index 000000000000..0e02715159c2
> --- /dev/null
> +++ b/tools/tests/domid/.gitignore
> @@ -0,0 +1,3 @@
> +*.o

"*.o" is already in the .gitignore at the root of the project. I don't
think it's useful here.

> +generated
> +test-domid
> diff --git a/tools/tests/domid/Makefile b/tools/tests/domid/Makefile
> new file mode 100644
> index 000000000000..0a124a8bfc76
> --- /dev/null
> +++ b/tools/tests/domid/Makefile
> @@ -0,0 +1,84 @@
> +# SPDX-License-Identifier: GPL-2.0-only
> +#
> +# Unit tests for domain ID allocator.
> +#
> +# Copyright 2025 Ford Motor Company
> +
> +XEN_ROOT=$(CURDIR)/../../..
> +include $(XEN_ROOT)/tools/Rules.mk
> +
> +TESTS := test-domid
> +
> +strip-list = $(sort $(strip $(foreach x,$(1),$(strip $(x)))))

What's that macro for? Also, what's a "list"?

> +define list-c-headers
> +$(shell sed -n -r \

Could you use "-E" instead of "-r"? (-r might not work on FreeBSD)

> +    's/^[ \t]*# *include[ \t]*[<"]([^">]+)[">].*/\1/p' $(1) 2>/dev/null)
> +endef
> +
> +define emit-harness-nested-rule
> +$(1): $(CURDIR)/harness.h
> +	mkdir -p $$(dir $$@)

You can use $(@D) instead of $(dir $@). The only difference is a /
not present at the end. 

> +	ln -sf $$^ $$@

This should use $<, I don't think the command is going to work if
there's multiple prerequisite.

> +endef
> +
> +define emit-harness-rules
> +ifneq ($(strip $(3)),)

How many time do you need to call $(strip) ?
Also, I think I would prefer to have $(if $(strip $(3)), [the rest])
rather than actually evaluating code and generating code that we already
know is isn't going to be executed.

> +$(foreach h,$(3),$(call emit-harness-nested-rule,$(CURDIR)/generated/$(h)))
> +vpath $(1) $(2)
> +$(1:.c=.o): $(addprefix $(CURDIR)/generated/,$(3))
> +endif
> +endef

This macro fails if there's more than one "#include" in "domid.c".

And if there's no "#include" in "domid.c", then Make doesn't know how to
make "domid.o" for "test-domid".

> +
> +define vpath-with-harness-deps
> +$(call emit-harness-rules,$(1),$(2),\
> +    $(call strip-list,$(call list-c-headers,$(2)$(1))))
> +endef
> +
> +.PHONY: all
> +all: $(TESTS)
> +
> +.PHONY: run
> +run: $(TESTS)
> +	$(foreach t,$(TESTS),./$(t);)

This recipe doesn't work as expected. You need `set -e` or only the last
tests count.

> +
> +.PHONY: clean
> +clean:
> +	$(RM) -rf $(CURDIR)/generated

$(RM) already contain the '-f' option, no need to add it a second time.

Also, we expected Make to run all commands in recipe from $(CURDIR), so
adding $(CURDIR) is unnecessary, could potentially be an issue.

> +	$(RM) -- *.o $(TESTS) $(DEPS_RM)
> +
> +.PHONY: distclean
> +distclean: clean
> +	$(RM) -- *~
> +
> +.PHONY: install
> +install: all
> +	$(INSTALL_DIR) $(DESTDIR)$(LIBEXEC)/tests
> +	$(INSTALL_PROG) test-domid $(DESTDIR)$(LIBEXEC)/tests
> +
> +.PHONY: uninstall
> +uninstall:
> +	$(RM) -- $(DESTDIR)$(LIBEXEC)/tests/test-domid
> +
> +CFLAGS += -D__XEN_TOOLS__
> +# find-next-bit.c
> +CFLAGS += '-DEXPORT_SYMBOL(x)=' \
> +          -Dfind_first_bit \
> +          -Dfind_first_zero_bit \
> +          -Dfind_next_bit \
> +          -Dfind_next_bit_le \
> +          -Dfind_next_zero_bit_le
> +CFLAGS += $(APPEND_CFLAGS)
> +CFLAGS += $(CFLAGS_xeninclude)
> +CFLAGS += -I./generated/
> +
> +LDFLAGS += $(APPEND_LDFLAGS)
> +
> +vpath find-next-bit.c $(XEN_ROOT)/xen/lib/
> +# Ubuntu {16,18}.04 need single eval at the call site.

I'd rather see a comment about what's the macro is about rather that a
comment some Linux distribution. Our target is GNU Make 3.80, without
regards to a particular distribution. (Also I don't think it's useful to
point out that `eval` is needed for older version of Make, at least in
our project.)

> +$(eval $(call vpath-with-harness-deps,domid.c,$(XEN_ROOT)/xen/common/))
> +
> +test-domid: domid.o find-next-bit.o test-domid.o
> +	$(CC) $^ -o $@ $(LDFLAGS)
> +
> +-include $(DEPS_INCLUDE)
> diff --git a/tools/tests/domid/test-domid.c b/tools/tests/domid/test-domid.c
> new file mode 100644
> index 000000000000..51a88a6a9550
> --- /dev/null
> +++ b/tools/tests/domid/test-domid.c
> @@ -0,0 +1,93 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Unit tests for domain ID allocator.
> + *
> + * Copyright 2025 Ford Motor Company
> + */
> +
> +#include "harness.h"
> +
> +#define verify(exp, fmt, args...) do { \
> +    if ( !(exp) ) \
> +        printf(fmt, ## args); \
> +    assert(exp); \

Relying on assert() for the test isn't wise. It's useful for developing
and debugging because it calls abort(), but they can easily be get rid of,
by simply building with -DNDEBUG. Could you maybe replace it with exit()
since you already check the condition?


Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 13:54:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 13:54:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093212.1448754 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqXef-0002ZS-4Z; Mon, 25 Aug 2025 13:54:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093212.1448754; Mon, 25 Aug 2025 13:54: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 1uqXef-0002ZL-24; Mon, 25 Aug 2025 13:54:37 +0000
Received: by outflank-mailman (input) for mailman id 1093212;
 Mon, 25 Aug 2025 13:54:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=J9Dq=3F=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqXed-0002ZF-K7
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 13:54:35 +0000
Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com
 [2a00:1450:4864:20::630])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 070b6477-81bb-11f0-b898-0df219b8e170;
 Mon, 25 Aug 2025 15:54:33 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-afcb78c66dcso607570566b.1
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 06:54: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
 a640c23a62f3a-afe74f5672esm299976066b.59.2025.08.25.06.54.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 06:54: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>
X-Inumbo-ID: 070b6477-81bb-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756130072; x=1756734872; 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=o3KE+yMg72cd6ZH0eiZidqOGquPn69/4hPkJ/gsUKsk=;
        b=T50HuwYJ1t/56l/cEn4srBEUw/IsiMjVcen9nLYIZnjoIXVXrtJFvKe8Pj6AHP2hgA
         C3v3j+wDmai0KAhfyd2wD/8uxJFKWH+nA0OzAfU+r8l50+77X4cH2VRxyxe2eSpgJZ/N
         MabkYSHrvDELBKNAHc+lCwy1wOZuCLdza/y4bxP52GiEIJltGmYdJrOfcjuLC5YVbHKo
         g1GRWPgdnU0QMDqa+KpsY6dMrz//HNiJY9pNECg3icLZEL7f37nzDiD6pHT0zJ48gKFe
         kwWTgwfS7mnyQ8fYnbStPkjpgE1/Ar126cf0NYBrLN+uDhX0u8E3ELTJrCKW53qlJYUO
         cNwA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756130072; x=1756734872;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=o3KE+yMg72cd6ZH0eiZidqOGquPn69/4hPkJ/gsUKsk=;
        b=EdsBubbyFM3fSqKW+I5uCgMzMogQWlSTa0+RQGgz7MT32fPUovqubLw1kqMs+0yeB1
         N+R/LlcfHRAdeYusEesLEe03cr3eD7TLfJCcMLkz5s3YS7JvE/y7xlSU5//SVjxrTguG
         r2pzQIMLRhHEwZtrrqydH8se5t3fo+SUW+DOU8X/P1WVzKg1SVGY1EHt+5MQ9QtvVko5
         hlYW5yILNvKMS/anPh+hwkmaXYQn456An4Q8sTfymlBuGD2qQTkrq0n8XG36V5cp+RHO
         jk2iPOGP1zo6ycHC/z5JfaAtp8XSaosm4zyNW3MLzLq8I10iJrbmSPALIn8kcmIeebAa
         6pIA==
X-Gm-Message-State: AOJu0YypaZhLRvw7oao9KVS/0VlRyGRxj07aO9oWNGOunf/IfHuotyz9
	177OGuxcAxvvBFKe7iF0bOz+H/fc/GymrfDS2MaIkE0+7l/69VaksBGJlMZM8QjrvUgr333iOB1
	C6qg=
X-Gm-Gg: ASbGncssfZgxHcoigPYyGkTYQ2RJgQKS4J6coMc6nOAfP6hGy4nF0P3te2LKTUZJkYE
	IMmCZFuO+o2hdQ4TMGS62hzwbCciWSQdbhnhefKgWkpgM53bo8d2bVT+Cv1zOSA3GfwE+QirdYX
	8yNDZup65SYGsDYhO63CbV367knV/J47im2AZP0ckXA3anLw3MqcGFw1ebgTuKZS+/FMxEJkvo2
	65JcXfe7EjxsPYCV6xgp6R8MupIkG2/BtTutbsrhhQHZIIrmG4qOlJFSCALvPBmD1ALzRW9mRnV
	J5ckERWz0j2zJ57Jp86q3F5/rSFnwSp0W2/dKssrp9AgQo0a4yGGyTtZnpo+hEdBCL8o4N8JrGN
	4lnMKhpxGpq8Qpt0gTsaUT5nfdyHhebVLkmOYVXSwbsJNDdWnPvfFnlZfTr5GKThSh+93P5Keh2
	nexgb68Vk=
X-Google-Smtp-Source: AGHT+IHf1JOrTaoqwCJNVPW1HfPWVD9To2PTYy6wPBoo1HYFDKRZw9faXS3RvWPCjSlAez2UAu7+fQ==
X-Received: by 2002:a17:907:985:b0:afe:6648:a24c with SMTP id a640c23a62f3a-afe6648c0damr484091666b.52.1756130071923;
        Mon, 25 Aug 2025 06:54:31 -0700 (PDT)
Message-ID: <b07e8b46-06b1-4f41-958a-d8739778c50e@suse.com>
Date: Mon, 25 Aug 2025 15:54:30 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v2] releases: use newer compression methods for tarballs
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
Content-Language: en-US
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Other projects have long switched to xz and/or lzip.

Tidy things some as well: With the removal of qemu from the tarball,
intermediately extracting the tarball again has become wasteful. Drop
that. Invoke compressors using asynchronous lists, to reduce overall
latency. Drop the -v option from the (previously implicit) gzip
invocation.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
v2: Don't expand intermediate uncompressed tarball. Don't check for
    commands' availablity. Don't request statistics. Use async lists.

--- a/docs/process/release-technician-checklist.txt
+++ b/docs/process/release-technician-checklist.txt
@@ -119,7 +119,7 @@ RELEASE TARBALL
        make src-tarball           # uses git-describe (best for RCs)
         # ^find some way to add git-cache-proxy to this (done in ~iwj/.gitconfig)
        mkdir /volatile/iwj/website-thing/xen.org/oss-xen/release/$v
-       mv dist/xen-$v.tar.gz /volatile/iwj/website-thing/xen.org/oss-xen/release/$v/.
+       mv dist/xen-$v.tar.[glx]z /volatile/iwj/website-thing/xen.org/oss-xen/release/$v/.
 
        # website-thing/xen.org is cvs -d mail.xenproject.org:/home/downloads-cvs/cvs-repos co xen.org
 	cd /volatile/iwj/website-thing/xen.org
@@ -139,9 +139,12 @@ RELEASE TARBALL
 	cvs add -kb oss-xen/release/$v/
 
         cd oss-xen/release/$v
-        gpg --digest-algo=SHA256 --detach-sign -u 'xen tree' xen-$v.tar.gz
-	cvs add -kb xen-$v.tar.gz
-        cvs add -kb xen-$v.tar.gz.sig
+        for t in xen-$v.tar.[glx]z
+        do
+            gpg --digest-algo=SHA256 --detach-sign -u 'xen tree' $t
+            cvs add -kb $t
+            cvs add -kb $t.sig
+        done
         cd ../../..
 
 	cvs ci -m $v
@@ -152,6 +155,10 @@ RELEASE TARBALL
 	# should show something like
 	#   U oss-xen/release/4.8.0-rc2/xen-4.8.0-rc2.tar.gz
 	#   U oss-xen/release/4.8.0-rc2/xen-4.8.0-rc2.tar.gz.sig
+	#   U oss-xen/release/4.8.0-rc2/xen-4.8.0-rc2.tar.lz
+	#   U oss-xen/release/4.8.0-rc2/xen-4.8.0-rc2.tar.lz.sig
+	#   U oss-xen/release/4.8.0-rc2/xen-4.8.0-rc2.tar.xz
+	#   U oss-xen/release/4.8.0-rc2/xen-4.8.0-rc2.tar.xz.sig
 
 After a .0 release, update XEN_EXTRAVERSION again (to .1-pre, see above).
 
--- a/docs/process/xen-release-management.pandoc
+++ b/docs/process/xen-release-management.pandoc
@@ -274,10 +274,10 @@ Xen X.Y rcZ is tagged. You can check tha
 https://xenbits.xen.org/git-http/xen.git X.Y.0-rcZ
 
 For your convenience there is also a tarball at:
-https://downloads.xenproject.org/release/xen/X.Y.0-rcZ/xen-X.Y.0-rcZ.tar.gz
+https://downloads.xenproject.org/release/xen/X.Y.0-rcZ/xen-X.Y.0-rcZ.tar.[glx]z
 
 And the signature is at:
-https://downloads.xenproject.org/release/xen/X.Y.0-rcZ/xen-X.Y.0-rcZ.tar.gz.sig
+https://downloads.xenproject.org/release/xen/X.Y.0-rcZ/xen-X.Y.0-rcZ.tar.[glx]z.sig
 
 Please send bug reports and test reports to xen-devel@lists.xenproject.org.
 When sending bug reports, please CC relevant maintainers and me
--- a/tools/misc/mktarball
+++ b/tools/misc/mktarball
@@ -5,14 +5,6 @@
 # Takes 2 arguments, the path to the dist directory and the version
 set -ex
 
-function git_archive_into {
-    mkdir -p "$2"
-
-    git --git-dir="$1"/.git \
-	archive --format=tar HEAD | \
-	tar Cxf "$2" -
-}
-
 if [[ -z "$1" || -z "$2" ]] ; then
   echo "usage: $0 path-to-XEN_ROOT xen-version"
   exit 1
@@ -21,14 +13,20 @@ fi
 xen_root="$1"
 desc="$2"
 
-tdir="$xen_root/dist/tmp.src-tarball"
+tdir="$xen_root/dist"
 
-rm -rf $tdir
+rm -f $tdir/xen-$desc.tar.[glx]z
 
 mkdir -p $tdir
 
-git_archive_into $xen_root $tdir/xen-$desc
+git --git-dir="$xen_root/.git" archive --format=tar HEAD --prefix=xen-$desc/ \
+    >"$tdir/xen-$desc.tar"
+
+gzip -9k "$tdir/xen-$desc.tar" &
+xz -9k "$tdir/xen-$desc.tar" &
+lzip -9k "$tdir/xen-$desc.tar" &
+wait
 
-GZIP=-9v tar cz -f $xen_root/dist/xen-$desc.tar.gz -C $tdir xen-$desc
+rm -f $tdir/xen-$desc.tar
 
-echo "Source tarball in $xen_root/dist/xen-$desc.tar.gz"
+echo "Source tarball in" $tdir/xen-$desc.tar.[glx]z


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 14:07:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 14:07:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093227.1448765 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqXr9-0004Qu-7U; Mon, 25 Aug 2025 14:07:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093227.1448765; Mon, 25 Aug 2025 14:07: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 1uqXr9-0004Qn-4h; Mon, 25 Aug 2025 14:07:31 +0000
Received: by outflank-mailman (input) for mailman id 1093227;
 Mon, 25 Aug 2025 14:07:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=0n7W=3F=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1uqXr7-0004Qf-Jx
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 14:07:29 +0000
Received: from DB3PR0202CU003.outbound.protection.outlook.com
 (mail-northeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c200::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ce3c6d8c-81bc-11f0-b898-0df219b8e170;
 Mon, 25 Aug 2025 16:07:16 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by DU0PR03MB8243.eurprd03.prod.outlook.com (2603:10a6:10:317::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Mon, 25 Aug
 2025 14:07:12 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Mon, 25 Aug 2025
 14:07: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>
X-Inumbo-ID: ce3c6d8c-81bc-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QHPJGqGPVS6zrIn911yXY88QM3TFS8S62xmyzf0hq113yT1PYDzFwlEM4PhO5Gi4c7Ot44Y4wWofZeQokdIkThGdtaZBL8VnqmM2PoOGfKQpop/KSKhuvHphDvn4TRfP4ccGW8BSz7VhNnMGJMbKQoosP5sPEbh9mmLy7u2VgBYIFKCKJvEZlt6T1F7B9FbNeAV/KEPBFxYmHPpARN83y0Ui+avP7k8N+5FR6ozOUlgc4UI2nuQgiW65hIl8NitrF43S+ijavMeGZ+KpD4CArbHknUiDnKGA3N8PTeCDv1wSpT/uuwFQisxt8Ekycd6fA/y/XdyCP6L/N0quJW92ng==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=eOgZU454hGNRQAich4MpnvTh4VUK/fd370NVTLKYJ6c=;
 b=n2wBzzrzM/z6UUHGRuUgm5Z8SZANHcEf7BMA/3bRVGm7vGbrA+ahicRYy5g4lE/r3P87a1aE1oQYGyLBH9DUYlq9HFrteZ9DIvTAWIO1JMOAKXfpF3stMTyyk6nBWGxZYX7oACWa2TpaVbeOvmwHuictZw4f5cRovhDux8yL82kmB3nW9WdQcvbPuMglAiVdDfjXSuV3wkcV52NdaNZA/FABot1rmI+johr31aFfZJ4ckBWszwdQgnoC0KoOy4/M/ydwXvAnGgM4igMMn81Jl9pVhBzZbpu8PyhQhpScmmAtX5iTZUYZ5WPzPPVQxo3lGj86HUUJRpHvXkCyijT1tA==
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=eOgZU454hGNRQAich4MpnvTh4VUK/fd370NVTLKYJ6c=;
 b=fKSNKt9rLTJjGRbUs6JRBEwoKlwQv1z71H275UQR9UKZCO8GKQr1Q3jqkyDl6WCFZtollion0lsRAvgzWOJK5nirHxd0eVEAJATvWYw2qYiGF2A6lppj5ikvAp5FhgcjafeNYwiZk+TS+QSVdCCefQBc+SBrVjj6H+q2720JW+mESLL1kmWIgtjif/2GTyq41YpQl8vYez3A2RypXEL06hTe6pg4OJNBeL2tgZnB92v068mik7+ax+oQ/ilvTCTerE5KA698P+dRg+ayyGuATgPPgVPPTgfrrBtqF+SxidqoMdJaREB4uG7TLUe/h973Vj9B1CON3p8NEftjm9SRKg==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v2 10/10] xen/arm: vgic-v3: add emulation of GICv3.1 eSPI
 registers
Thread-Topic: [PATCH v2 10/10] xen/arm: vgic-v3: add emulation of GICv3.1 eSPI
 registers
Thread-Index: AQHcB5d9o2YugLH3UUKTUBQVCD+iyrRzg+qA
Date: Mon, 25 Aug 2025 14:07:12 +0000
Message-ID: <68e0717e-f193-4718-bf04-c5c236eec65f@epam.com>
References:
 <7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com>
 <3ba2381b4c782a5187161f9418e5a35e7916c752.1754568795.git.leonid_komarianskyi@epam.com>
 <87a53sd1ry.fsf@epam.com>
In-Reply-To: <87a53sd1ry.fsf@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: GV2PR03MB8678:EE_|DU0PR03MB8243:EE_
x-ms-office365-filtering-correlation-id: a95d604f-a3df-495d-d96d-08dde3e0b004
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?dXQzYTZkQjlJaGlScy9xZFd6QUhJbldBQmw0Mi9XeE1DeFc0bFFLdE8yWVJ5?=
 =?utf-8?B?eklOblBEMGt3cWQvM0d1bU9uMVVjREkvU2dxQVZXbmVYeEtwWU5SYlE1MWMr?=
 =?utf-8?B?YmZOeWppTk9ESHhnUGxETHZ3MnV4YUd1Z2pCMkpRYnpoZHBCNGpuQ0Q2SFlE?=
 =?utf-8?B?OFBnSmwyR0g0R0hYaitzUm9la01Ea3BCWFNyb1MwOVNRVnpaVEU5VnJJazdr?=
 =?utf-8?B?ZzRRNnM5OVNvOE8rODRCL3dGUGVhTUI4ZHRDZWR1V2laSldIb1czeWxVVjRB?=
 =?utf-8?B?S2JLVTYwSWdjSEV4SDJMbHhOY2kxaHUrQzNLZnJNbjgyS013QklCc3JNRjJp?=
 =?utf-8?B?QjVXbURlQVZ6TU4vajBxU25kWEZuTDNCMXFwckhtSngyQWt3Z0pONFJOc3Ex?=
 =?utf-8?B?eDA5aG14L3dnVG1Kd2JCbUtGMWk1cTArWHRwdTJ0K3VPdHI1cHB4cXdTU3Rv?=
 =?utf-8?B?NHBMZUtFTHNwYXh1RXRpN1IrOW1SOUs1dFBNUkhyWkx2Nlp4U3dWNGNsWE9V?=
 =?utf-8?B?M1pIV2JNcktYUUpSWFNlSWVTZVp1NDFIQmdIWHRVekNPbUwxWjZ2UUorQVNH?=
 =?utf-8?B?RFlJYm4zSWE1czloUnZEMDExTkhnMDZWNGhDNHlvbWdXVlZ0L0hyOUczdjZv?=
 =?utf-8?B?bzF2SHhxR2JWU3BtUVZRUWVLZTRpWGFjN0dYZlI4ZSt2ZWFpL2h1TFN6ZWc2?=
 =?utf-8?B?dmRlU1N5bGZGZXZmRGRsUUthcWZHOVlDaDhVN2o0cVZWYmVPWFk5eUZESmxk?=
 =?utf-8?B?akhNMkViajJuUjNRUEJ1SlhKMlFPMWVmM1o4K0JNdGl1YnlwQk9YZDhiamQ0?=
 =?utf-8?B?MFdFWCtacFBaNGV6dHd6RUs4QVNFRmw5UUQxei9GYWcvbTFPTGdQUmtuTzBt?=
 =?utf-8?B?Q0tCYm1FanpvbHpmMGxkMHAyTHZaOXZ3Qmw2bTJrRjhmVndIRkpsVVdXQVpj?=
 =?utf-8?B?NTlwMHRyRkpyODJmR3drSGdZTmQwUjQ3NVFrWmZHRVByK056MVgyZkRZZjJz?=
 =?utf-8?B?a0VDa1FMeGRFSUtkdTVmR3dlZ1ZsZnRmOURvYThsK0s5cjRkZFkxV3ZVTWVO?=
 =?utf-8?B?djZjNnNkYkZVUUlKd0lQckhvb21TZzR5WFE1N3FhN0tnYkg4ZjZUdE5Wd3Nx?=
 =?utf-8?B?VEFLcjl5di9iZk44d1dGY2gweXhKUS9XWG0zeThkbnc1RWNtV2F2NmlHRXJZ?=
 =?utf-8?B?NDhTV2FOenUwd3dDWFFLek9vWEdST2tYcWFCOFgrenowNGFZWmMvbGZrVkpH?=
 =?utf-8?B?d1FOc0tDdHRnbk5HRFRRTlIzZitnY3hxL2piT2NNY0FqUHNiem5mOVliYmVP?=
 =?utf-8?B?aS9pTlBwUkdmall0UThxQU9FRVpqSS9RUk5qb2ZYekIzMnV0c2libW9FMVhw?=
 =?utf-8?B?SENKNGlYcFptcGdIMTlBSHFLTWVETmd2KzU0cDN0NFRmMU9nV2FveTRXb2hF?=
 =?utf-8?B?M3dtZUlreE1ocEowS0piYU9icEhPY2VNYTgzd1NEdlhNZ0pxd3RkZkw2ZDNL?=
 =?utf-8?B?V2I3NjlTd1FrSlRNeVRoZFhsZWF0aHdObGlMYUdzTzAydDlZY01DRHp5cnhL?=
 =?utf-8?B?dkQyU1dEbUFsSDE3aFQ4Z2NlZUFXNGhXQzM1RG9DNDdDUUVIWXBXNm5pNlph?=
 =?utf-8?B?Z2loaTZCM2trNFV3ZzdmRWJqUEU2MVN0QTNtT29kU0VDTnRVWnEwTWV4YUN4?=
 =?utf-8?B?TmVPeTVOa1dzWlFCbytlem5GWXQ3eWpabEJ0N3doV1JRb2FrdnlFWUlSZFdM?=
 =?utf-8?B?eXpoZjQ3d1ozSDdETjFzRlBJWU9LL3hlZVpjY1ZORmF1eDFiU0ptbmxSLzJN?=
 =?utf-8?B?bDgxSno0TnRyQ2t4WVNlbHNtbXAxRmQrZ0ZScTJtb0tyT3NSVWhtUlQyZFY0?=
 =?utf-8?B?OU5Sb25ta0s3MkpjVTZWVEhZMFpDc1ZzK0RmSitGS01BaGQ2S01YdzBPMDRh?=
 =?utf-8?B?U3RSSllrM2w1Q0tTdVBvV0lUK2lGRk96QmZmMVM1bytzNitOS2hKVUh1Tlcz?=
 =?utf-8?B?MXB2WXV2SDB3PT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?TmR0eGR4MndORUxsWFVJazg2MnlPQktUdngzby9Ma1pPTnc4K1N3clRrcURk?=
 =?utf-8?B?M0R4endyaXdiRzZORzA4dFNreGZ4YUt2b2pkVFVNTEwvd1NuM056MkdqU1g1?=
 =?utf-8?B?cGdNWkNHajBWTFBCRmNSdVg5Mjk2SlNRYmdYbTFPWFdZUkdVQXdXWGtWT1dB?=
 =?utf-8?B?Ry90d21HU2dNRlpTWFN1QXdzZ0VCczVZUkxiZlFSV0ZqNWcxNkRGd2RJV1NK?=
 =?utf-8?B?YVI1Z0pGNm9PQlJ5VXUyc1FLRW54RDQ1eXN0ZTlhNHZ6RXRJV1RWNVRoT01i?=
 =?utf-8?B?TlRHa2duQzR1Vkgxc2cwTXd1RUJ3cGV1eStKVWhDczE1S3RsK3NBbTZNSThr?=
 =?utf-8?B?OWVwUjVvR2l5aEptTGlnNnhQM1ZJamNRNUZZOCtuUUlJNWVXQ0JnZ3JkckFG?=
 =?utf-8?B?WjVSdjdWOHFyY3dnV1IrNVFXMTBsTTZtdC9uNnRsOGIxSU83YTBOb1E5cjlC?=
 =?utf-8?B?Z0FpN0tUcFdWTE1NME0yOTlTVnhOVTVsdE9DbmUySjluL0xoNkU1em1waDIx?=
 =?utf-8?B?empPSGlIQW9BQVJ6ZkRZaVdGdytGQUwveTN1anhwYS9YZkpKeVFvbnJTNFdQ?=
 =?utf-8?B?R2lQcENDL1RYVU1PaHcrTmtLU1ZQc1dRakN3M0piL3RnSXZtNGk2NExwcy9n?=
 =?utf-8?B?TEJvMVJwSyttOUQ0S3RBRkZXalhJZkxNSVZFQTRNMThRNzlwR3VZOWRWSFlL?=
 =?utf-8?B?aXNCQWs2d0crUkNTdXVyc20zUkgxa3pnblY0aXpmVytPV3FrQXdiekJ5cEE1?=
 =?utf-8?B?K0VBYXVQbmRYQzdoUmZFWVZ0Yzg1ejNhQjNlZlcyaTRFclhsUWI3KzFPWWpj?=
 =?utf-8?B?eTcvaUJkYmVpaGcvUzBRVGhFVnZkVGJZWW1idEdkb0NCL09mNGo0TlR2MkI5?=
 =?utf-8?B?OUk3bGp3NHh1enp2MTEzSlRhOVdyM1F3Q2hhd3BBVDE2Z2ZQZlloZTNQRE9X?=
 =?utf-8?B?NlMrMFB3NVVhSE1sdENWVStEeFJJL053TVJtUDlFckNlS2NKcEVOVnZpYXg0?=
 =?utf-8?B?L1ZWazVyNk1kZkRPOHpGT2FIbHNBVjZ3eFlyNzF0dUtCWXBQTUxLTzlNU1U4?=
 =?utf-8?B?cXlhRk9ZKzJrVW03QVlTVXVFcGpIc2swSDN5ODZpMXNTSDVhNTdpWjdDSXhW?=
 =?utf-8?B?KzQrUG1yaGp3QzB2cWhSbTJhTHZYbGhkYXdNM2NxSmhHRDcrenFCYmk5WVEy?=
 =?utf-8?B?K3Zra3E4cGR5a0liZ1d2S1ZWNFZKUUlSZnpXOHU3L29lVWNQQkdrUGtkY29t?=
 =?utf-8?B?cE0raGhqOTZMbWxJMllVaHl2V3FtU05XRlhucUVEbkhRMzhzaDNqNjk1QUVZ?=
 =?utf-8?B?MCs0MlVNTXN3UnIvQ0R1ZlA3cU8vUmdhZ2tvdVNlQmpDWWxuU3JVZCt0SmlZ?=
 =?utf-8?B?ek9KU3QyUDlmcUxlaXdRVm5WS0VFRk03RldQQkNSTzAvNkZ0QXVsVU9KUTNs?=
 =?utf-8?B?dU1XaFU4Q1RzUXpkdmRxdHdoeDdqeEx3RytkZkNuNWhXbVhXSTZITFZ2eWIw?=
 =?utf-8?B?WHpsVy9iTTh0VDQ2bnRtZDRnWkd3WVlSNzJBN08zcm5zMllQcWhWRUNMYWw5?=
 =?utf-8?B?aGpud3ZaeUNPSGlzSDk2VWQ5MVR6aitMSWJvb2JLdDBYV0puVFMzRXBhcTZU?=
 =?utf-8?B?VEtSKytPK0l3aEpOTUo3d21BZ3NnV1hYMTJHUlNoelRkZGJRdk5KcjNQOXY1?=
 =?utf-8?B?M0wrS2xKNmJjd2gwRHYvU1pkQWZLc1Y3TzZuNmRqdHpHR3lINXh0ZnUwT2dq?=
 =?utf-8?B?NGY5UzY4RGRob3E1NlNlVjhGb1AwZkEyOGVPTTRuMW5CSVFJOWtDUWZtbDR1?=
 =?utf-8?B?K21qSnVwL0NOM2dqL1lxVnV3KzY3RVNwc21hbUlHVElGVW5IUFh5MTE1NjJJ?=
 =?utf-8?B?eXMrTGdGNTNjajV5bVY1WTdQZm5xYVBROUFHZFBtZWVuckN3bE5FdWhUakZZ?=
 =?utf-8?B?UHlUbkxWT09kcHduMUxudWFRSWhzeWFMYVZOdmp1THRhZkNUM1F0NzhSVDdX?=
 =?utf-8?B?RDYxQlNlcUpRZ0pOckRYNEc5UExhSWdhdytjYTJFNkM2c1F5cE1EQTZoZjN6?=
 =?utf-8?B?N09hRTZ3TGR5ZUlpNDJvRi9XZjFlOVpOZUpFRXZ3dXRoNWp1dlBCbmE0VWRO?=
 =?utf-8?B?Q21qS3JuU0ZoanB2blQzcXIvaHJBZUgrV2dFK0FrMkJudjdoV2k4S1VuTEVi?=
 =?utf-8?Q?0ECEtsL+NLYO05ov0mHT11k=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <DCE91E96D891F643B1956A1F5095E33E@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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a95d604f-a3df-495d-d96d-08dde3e0b004
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Aug 2025 14:07:12.1569
 (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: c2jSojPrhHPEbhBnsfyCQ6yoruGRAFdR/QU865O6Grqi2FjEVxZeYI6UmuM6WvYqLUHZvNWwrHhMwuFd+PM1ZURSF+6iCDRuXZrTxjV2X2s=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB8243

SGVsbG8gVm9sb2R5bXlyLA0KDQoNCk9uIDIxLjA4LjI1IDIwOjI2LCBWb2xvZHlteXIgQmFiY2h1
ayB3cm90ZToNCj4gDQo+IEhpIExlb25pZCwNCj4gDQo+IExlb25pZCBLb21hcmlhbnNreWkgPExl
b25pZF9Lb21hcmlhbnNreWlAZXBhbS5jb20+IHdyaXRlczoNCj4gDQo+PiBJbXBsZW1lbnRlZCBz
dXBwb3J0IGZvciBHSUN2My4xIGV4dGVuZGVkIFNQSSByZWdpc3RlcnMgZm9yIHZHSUN2MywNCj4+
IGFsbG93aW5nIHRoZSBlbXVsYXRpb24gb2YgZVNQSS1zcGVjaWZpYyBiZWhhdmlvciBmb3IgZ3Vl
c3QgZG9tYWlucy4NCj4+IFRoZSBpbXBsZW1lbnRhdGlvbiBpbmNsdWRlcyByZWFkIGFuZCB3cml0
ZSBlbXVsYXRpb24gZm9yIGVTUEktcmVsYXRlZA0KPj4gcmVnaXN0ZXJzIChlLmcuLCBHSUNEX0lT
RU5BQkxFUm5FLCBHSUNEX0lST1VURVJuRSwgYW5kIG90aGVycyksDQo+PiBmb2xsb3dpbmcgYSBz
aW1pbGFyIGFwcHJvYWNoIHRvIHRoZSBoYW5kbGluZyBvZiByZWd1bGFyIFNQSXMuDQo+Pg0KPj4g
VGhlIGVTUEkgcmVnaXN0ZXJzLCBwcmV2aW91c2x5IGxvY2F0ZWQgaW4gcmVzZXJ2ZWQgYWRkcmVz
cyByYW5nZXMsDQo+PiBhcmUgbm93IGFkanVzdGVkIHRvIHN1cHBvcnQgTU1JTyByZWFkIGFuZCB3
cml0ZSBvcGVyYXRpb25zIGNvcnJlY3RseQ0KPj4gd2hlbiBDT05GSUdfR0lDVjNfRVNQSSBpcyBl
bmFibGVkLg0KPj4NCj4+IFRoZSBhdmFpbGFiaWxpdHkgb2YgZVNQSXMgYW5kIHRoZSBudW1iZXIg
b2YgZW11bGF0ZWQgZXh0ZW5kZWQgU1BJcw0KPj4gZm9yIGd1ZXN0IGRvbWFpbnMgaXMgcmVwb3J0
ZWQgYnkgc2V0dGluZyB0aGUgYXBwcm9wcmlhdGUgYml0cyBpbiB0aGUNCj4+IEdJQ0RfVFlQRVIg
cmVnaXN0ZXIsIGJhc2VkIG9uIHRoZSBudW1iZXIgb2YgZVNQSXMgcmVxdWVzdGVkIGJ5IHRoZQ0K
Pj4gZG9tYWluIGFuZCBzdXBwb3J0ZWQgYnkgdGhlIGhhcmR3YXJlLiBJbiBjYXNlcyB3aGVyZSB0
aGUgY29uZmlndXJhdGlvbg0KPj4gb3B0aW9uIGlzIGRpc2FibGVkLCB0aGUgaGFyZHdhcmUgZG9l
cyBub3Qgc3VwcG9ydCBlU1BJcywgb3IgdGhlIGRvbWFpbg0KPj4gZG9lcyBub3QgcmVxdWVzdCBz
dWNoIGludGVycnVwdHMsIHRoZSBmdW5jdGlvbmFsaXR5IHJlbWFpbnMgdW5jaGFuZ2VkLg0KPj4N
Cj4+IFNpZ25lZC1vZmYtYnk6IExlb25pZCBLb21hcmlhbnNreWkgPGxlb25pZF9rb21hcmlhbnNr
eWlAZXBhbS5jb20+DQo+Pg0KPj4gLS0tDQo+PiBDaGFuZ2VzIGluIFYyOg0KPj4gLSBhZGQgbWlz
c2luZyByYW5rIGluZGV4IGNvbnZlcnNpb24gZm9yIHBlbmRpbmcgYW5kIGluZmxpZ2h0IGlycXMN
Cj4+IC0tLQ0KPj4gICB4ZW4vYXJjaC9hcm0vdmdpYy12My5jIHwgMjQ4ICsrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKystDQo+PiAgIDEgZmlsZSBjaGFuZ2VkLCAyNDUgaW5z
ZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkNCj4+DQo+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gv
YXJtL3ZnaWMtdjMuYyBiL3hlbi9hcmNoL2FybS92Z2ljLXYzLmMNCj4+IGluZGV4IDQzNjljNTUx
NzcuLjFjYWNiYjZlNDMgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vYXJjaC9hcm0vdmdpYy12My5jDQo+
PiArKysgYi94ZW4vYXJjaC9hcm0vdmdpYy12My5jDQo+PiBAQCAtMTExLDcgKzExMSw3IEBAIHN0
YXRpYyB1aW50NjRfdCB2Z2ljX2ZldGNoX2lyb3V0ZXIoc3RydWN0IHZnaWNfaXJxX3JhbmsgKnJh
bmssDQo+PiAgICAqIE5vdGUgdGhlIG9mZnNldCB3aWxsIGJlIGFsaWduZWQgdG8gdGhlIGFwcHJv
cHJpYXRlIGJvdW5kYXJ5Lg0KPj4gICAgKi8NCj4+ICAgc3RhdGljIHZvaWQgdmdpY19zdG9yZV9p
cm91dGVyKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCB2Z2ljX2lycV9yYW5rICpyYW5rLA0KPj4g
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgb2Zmc2V0LCB1aW50
NjRfdCBpcm91dGVyKQ0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l
ZCBpbnQgb2Zmc2V0LCB1aW50NjRfdCBpcm91dGVyLCBib29sIGVzcGkpDQo+IA0KPiBJIGFtIHdv
bmRlcmluZzogbWF5YmUgaXQgaXMgYmV0dGVyIHRvIHBhc3MgdmlycSBpbnN0ZWFkIG9mIG9mZnNl
dCBpbnRvDQo+IHRoaXMgZnVuY3Rpb24/IEluIHRoYXQgY2FzZSB5b3UgY2FuIGdldCByaWQgb2Yg
ZXNwaSBwYXJhbWV0ZXIuDQo+IA0KPj4gICB7DQo+PiAgICAgICBzdHJ1Y3QgdmNwdSAqbmV3X3Zj
cHUsICpvbGRfdmNwdTsNCj4+ICAgICAgIHVuc2lnbmVkIGludCB2aXJxOw0KPj4gQEAgLTEyMyw3
ICsxMjMsOCBAQCBzdGF0aWMgdm9pZCB2Z2ljX3N0b3JlX2lyb3V0ZXIoc3RydWN0IGRvbWFpbiAq
ZCwgc3RydWN0IHZnaWNfaXJxX3JhbmsgKnJhbmssDQo+PiAgICAgICAgKiBUaGUgSVJPVVRFUjAt
MzEsIHVzZWQgZm9yIFNHSXMvUFBJcywgYXJlIHJlc2VydmVkIGFuZCBzaG91bGQNCj4+ICAgICAg
ICAqIG5ldmVyIGNhbGwgdGhpcyBmdW5jdGlvbi4NCj4+ICAgICAgICAqLw0KPj4gLSAgICBBU1NF
UlQodmlycSA+PSAzMik7DQo+PiArICAgIGlmICggIWVzcGkgKQ0KPj4gKyAgICAgICAgQVNTRVJU
KHZpcnEgPj0gMzIpOw0KPiANCj4gYmV0dGVyIHRvIHdyaXRlDQo+IEFTU0VSVCAoIWVzcGkgJiAo
dmlycT49MzIpKQ0KPiANCj4gYW5kIHByb2JhYmx5IHlvdSBuZWVkIHN5bW1ldHJpY2FsIEFTU0VS
VCBmb3IgZXNwaSA9PSB0cnVlDQo+IA0KPj4gICAgICAgLyogR2V0IHRoZSBpbmRleCBpbiB0aGUg
cmFuayAqLw0KPj4gICAgICAgb2Zmc2V0ID0gdmlycSAmIElOVEVSUlVQVF9SQU5LX01BU0s7DQo+
PiBAQCAtMTQ2LDYgKzE0NywxMSBAQCBzdGF0aWMgdm9pZCB2Z2ljX3N0b3JlX2lyb3V0ZXIoc3Ry
dWN0IGRvbWFpbiAqZCwgc3RydWN0IHZnaWNfaXJxX3JhbmsgKnJhbmssDQo+PiAgICAgICAvKiBP
bmx5IG1pZ3JhdGUgdGhlIElSUSBpZiB0aGUgdGFyZ2V0IHZDUFUgaGFzIGNoYW5nZWQgKi8NCj4+
ICAgICAgIGlmICggbmV3X3ZjcHUgIT0gb2xkX3ZjcHUgKQ0KPj4gICAgICAgew0KPj4gKyNpZmRl
ZiBDT05GSUdfR0lDVjNfRVNQSQ0KPj4gKyAgICAgICAgLyogQ29udmVydCB2aXJxIGluZGV4IHRv
IGVTUEkgcmFuZ2UgKi8NCj4+ICsgICAgICAgIGlmICggZXNwaSApDQo+PiArICAgICAgICAgICAg
dmlycSA9IEVTUElfSURYMklOVElEKHZpcnEpOw0KPj4gKyNlbmRpZg0KPiANCj4gSWYgeW91IGRl
ZmluZSBFU1BJX0lEWDJJTlRJRCgpIHVuY29kaXRpb25hbGx5LCB5b3UgY2FuIGdldCByaWQgb2Yg
I2lmZGVmDQo+IENPTkZJR19HSUNWM19FU1BJIGhlcmUNCj4gDQo+PiAgICAgICAgICAgaWYgKCB2
Z2ljX21pZ3JhdGVfaXJxKG9sZF92Y3B1LCBuZXdfdmNwdSwgdmlycSkgKQ0KPj4gICAgICAgICAg
ICAgICB3cml0ZV9hdG9taWMoJnJhbmstPnZjcHVbb2Zmc2V0XSwgbmV3X3ZjcHUtPnZjcHVfaWQp
Ow0KPj4gICAgICAgfQ0KPj4gQEAgLTY4NSw2ICs2OTEsOSBAQCBzdGF0aWMgaW50IF9fdmdpY192
M19kaXN0cl9jb21tb25fbW1pb19yZWFkKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCB2Y3B1ICp2
LA0KPj4gICAgICAgew0KPj4gICAgICAgY2FzZSBWUkFOR0UzMihHSUNEX0lHUk9VUFIsIEdJQ0Rf
SUdST1VQUk4pOg0KPj4gICAgICAgY2FzZSBWUkFOR0UzMihHSUNEX0lHUlBNT0RSLCBHSUNEX0lH
UlBNT0RSTik6DQo+PiArI2lmZGVmIENPTkZJR19HSUNWM19FU1BJDQo+IA0KPiBEbyB5b3UgcmVh
bGx5IG5lZWQgaWZkZWYgaGVyZT8NCj4gDQo+PiArICAgIGNhc2UgVlJBTkdFMzIoR0lDRF9JR1JP
VVBSbkUsIEdJQ0RfSUdST1VQUm5FTik6DQo+PiArI2VuZGlmDQo+IA0KPiANCj4+ICAgICAgICAg
ICAvKiBXZSBkbyBub3QgaW1wbGVtZW50IHNlY3VyaXR5IGV4dGVuc2lvbnMgZm9yIGd1ZXN0cywg
cmVhZCB6ZXJvICovDQo+PiAgICAgICAgICAgaWYgKCBkYWJ0LnNpemUgIT0gREFCVF9XT1JEICkg
Z290byBiYWRfd2lkdGg7DQo+PiAgICAgICAgICAgZ290byByZWFkX2FzX3plcm87DQo+PiBAQCAt
NzEwLDExICs3MTksMTkgQEAgc3RhdGljIGludCBfX3ZnaWNfdjNfZGlzdHJfY29tbW9uX21taW9f
cmVhZChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgdmNwdSAqdiwNCj4+ICAgICAgIC8qIFJlYWQg
dGhlIHBlbmRpbmcgc3RhdHVzIG9mIGFuIElSUSB2aWEgR0lDRC9HSUNSIGlzIG5vdCBzdXBwb3J0
ZWQgKi8NCj4+ICAgICAgIGNhc2UgVlJBTkdFMzIoR0lDRF9JU1BFTkRSLCBHSUNEX0lTUEVORFJO
KToNCj4+ICAgICAgIGNhc2UgVlJBTkdFMzIoR0lDRF9JQ1BFTkRSLCBHSUNEX0lDUEVORFJOKToN
Cj4+ICsjaWZkZWYgQ09ORklHX0dJQ1YzX0VTUEkNCj4gDQo+IFNhbWUgYXMgaGVyZQ0KPiANCj4+
ICsgICAgY2FzZSBWUkFOR0UzMihHSUNEX0lTUEVORFJuRSwgR0lDRF9JU1BFTkRSbkVOKToNCj4+
ICsgICAgY2FzZSBWUkFOR0UzMihHSUNEX0lDUEVORFJuRSwgR0lDRF9JQ1BFTkRSbkVOKToNCj4+
ICsjZW5kaWYNCj4+ICAgICAgICAgICBnb3RvIHJlYWRfYXNfemVybzsNCj4+ICAgDQo+PiAgICAg
ICAvKiBSZWFkIHRoZSBhY3RpdmUgc3RhdHVzIG9mIGFuIElSUSB2aWEgR0lDRC9HSUNSIGlzIG5v
dCBzdXBwb3J0ZWQgKi8NCj4+ICAgICAgIGNhc2UgVlJBTkdFMzIoR0lDRF9JU0FDVElWRVIsIEdJ
Q0RfSVNBQ1RJVkVSTik6DQo+PiAgICAgICBjYXNlIFZSQU5HRTMyKEdJQ0RfSUNBQ1RJVkVSLCBH
SUNEX0lDQUNUSVZFUk4pOg0KPj4gKyNpZmRlZiBDT05GSUdfR0lDVjNfRVNQSQ0KPiANCj4gLi4u
IGFuZCBoZXJlIGFuZCBpbiBhbGwgb3RoZXIgcGxhY2VzDQo+IA0KDQpJIGhhdmUgcmVjaGVja2Vk
IHRoZSBpZGVhIG9mIHJlbW92aW5nIHNvbWUgb2YgdGhlICNpZmRlZnMsIGFuZCANCnVuZm9ydHVu
YXRlbHksIEkgY2Fubm90IHNpbXBseSBkbyB0aGlzIGFzIGlzIGhlcmUsIGJlY2F1c2UgaW4gdGhp
cyBjYXNlLCANCkkgd291bGQgbmVlZCB0byBtb3ZlIHRoZSByZWdpc3RlciBvZmZzZXRzIG91dCBv
ZiB0aGUgQ09ORklHX0dJQ1YzX0VTUEkgDQpndWFyZCBpbiB0aGUgcHJldmlvdXMgcGF0Y2ggaW4g
dGhlIHNlcmllcy4gUGxlYXNlIHNlZToNCltQQVRDSCB2MiAwNS8xMF0geGVuL2FybTogZ2ljdjM6
IGltcGxlbWVudCBoYW5kbGluZyBvZiBHSUN2My4xIGVTUEkNCg0KQXMgYSByZXN1bHQsIHdpdGgg
Q09ORklHX0dJQ1YzX0VTUEkgZGlzYWJsZWQsIHdlIHdvdWxkIGhhdmUgbWFueSB1bnVzZWQgDQpk
ZWZpbmVzIGFuZCBhbHNvIHVucmVhY2hhYmxlIGNvZGUgaW4gX192Z2ljX3YzX2Rpc3RyX2NvbW1v
bl9tbWlvX3JlYWQgDQphbmQgX192Z2ljX3YzX2Rpc3RyX2NvbW1vbl9tbWlvX3dyaXRlIChJIHRo
aW5rIHRoZSBNSVNSQSB0ZWFtIHdpbGwgbm90IA0KYmUgaGFwcHkgYWJvdXQgdGhpcy4uKS4gVGh1
cywgSSBwcmVmZXIgdG8gbGVhdmUgdGhlICNpZmRlZnMgYXMgdGhleSBhcmUuIA0KSG93ZXZlciwg
aWYgeW91IHRoaW5rIGl0IGlzIGJldHRlciB0byByZW1vdmUgdGhlICNpZmRlZnMsIEkgd2lsbCB1
cGRhdGUgDQp0aGUgYXBwcm9wcmlhdGUgcGF0Y2ggdG8gbWFrZSB0aGVzZSBjaGFuZ2VzIGNvbXBp
bGFibGUgd2l0aCBmZXdlciANCiNpZmRlZnMgYW5kIENPTkZJR19HSUNWM19FU1BJIGRpc2FibGVk
Lg0KDQpCZXN0IHJlZ2FyZHMsDQpMZW9uaWQNCg==


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 14:12:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 14:12:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093238.1448775 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqXw2-000639-PN; Mon, 25 Aug 2025 14:12:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093238.1448775; Mon, 25 Aug 2025 14:12:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqXw2-000632-Mb; Mon, 25 Aug 2025 14:12:34 +0000
Received: by outflank-mailman (input) for mailman id 1093238;
 Mon, 25 Aug 2025 14:12:33 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=J9Dq=3F=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqXw1-00062v-7e
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 14:12:33 +0000
Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com
 [2a00:1450:4864:20::62f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8a3ad55d-81bd-11f0-a32c-13f23c93f187;
 Mon, 25 Aug 2025 16:12:31 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-afcb78fb04cso602199066b.1
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 07:12: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
 a640c23a62f3a-afe7b335581sm258668466b.17.2025.08.25.07.12.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 07:12: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>
X-Inumbo-ID: 8a3ad55d-81bd-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756131151; x=1756735951; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=kUH2slKBIRhphnlQeJMXpIsIwJxWlNkUwdCiB6Zd0hk=;
        b=Bp8Z8bz3UlL3KutZLfM/P6ufudNjiAuE8OviJN0oCVXdJTfaUG7XRLTtJ7WFpbwecd
         s3wQ5et8y7YKsvrtJke0cM8WkGceGmrOe2gghYl2ZEzLFYgH9DVoQzIWT6455xlfGdK2
         Xtaas1cSIBhohBglsVohPdLDV2rYi/IW+ximCRGNya/XaFXLkAsFTQ9LnPv4SAjcIr0R
         lfjyMsW60D1RZKmBMefCoLaryZ1jGuj7pOomNSGKflTd5VMYfaJMs+T/oyGyLpgEP+Df
         q7zR2eyld2mP9wDdfR2RgM3Qm3q2W71WEVOZvFu6Ab7zqkKDD2wqMvJS8ECyAb2rAtyi
         SpxQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756131151; x=1756735951;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kUH2slKBIRhphnlQeJMXpIsIwJxWlNkUwdCiB6Zd0hk=;
        b=hlekkePU2PdQnhnjCwtIJrNXsDRn0rO36/IwAA9dT75vODmBaP17ps0QRV+gMdcnSY
         jFHl3bKTmRJRcFyZOrxHLp5ufCsO8IapwBKI0iX3yuwDx1TT4xXI0db9mKzzQGxEE0Wz
         or+UYu5OY/1mYZrU8S37Hc60RymtvTOPnQe5minblJsN44eWVvRt//lqljvToohvaHfK
         mv0Q8G55GVyHjOVh2+XiRJk/QxwnTUB2a2D44tkEUNUvQaCe9KHtfFj3ETF7Ij/76pns
         QarZRDDyTtA7sJgcBLkF4RYDPrY9L1kI2ESIIlPwApeorJ3yKDgcJu+qK3LRWJuIS1rI
         L0Yg==
X-Forwarded-Encrypted: i=1; AJvYcCXV5PAAGFWz1TO5+HUWvEMi50h6A1FW5lxXSswkajAQt4cfatrk4byaU66nyr9+WKv9CxB5kpe58xQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzbli2cf0qcKPPNY7ae3Bk6V/v8HMPFHPd+T8zArw6Gfpcw8BqK
	NFW5J6SoB3NAemAxtsdDFzwLK3sN8bKt2SCtAbSfaHjPuTdR+UMIT9ACP2yqSomtyQ==
X-Gm-Gg: ASbGncs3JnIFhU45j9MGa0uPcqtsTkd0P+qXW8L6BYuKWdbXBt8250PfuqRz2c0/R6W
	PD5DtLzQwkeGwqteSOeXsycymgNKcmVLOlJBWkmuij58kQkbCX8PX/NLprtkqlpPjH5hlBD/usP
	Ncv9mWprXCOsr41VVAEx1J2SzhaOcn7twgKoccEmRVqqGZuvZPmGj31Z1HSOMsBPS9SlY/D2OOF
	sV2lmszK4yEOOU2gZ61+Njkuek19sIPIhQJlsJAUe7mv6ZYc/kbBJbwpDGSDgggxf97GkF5XaAz
	ojbOS/GpMWVo1yoE17xgi/c4LpZhGCmLWKY3O9Rj03ZsTqL3tGooIbIGi4SPxUi7WNmVrudpFEt
	BynbnNE4iqM+W1h5g4lNAnjsmZvrHVnuBs4HoINqX3ShvBLBawUJbsLu9KPrERIBq7J8YfalTxS
	k760dI88E=
X-Google-Smtp-Source: AGHT+IE9k2+36ccuCuPBYePG0JwIFeuKI0sv0zV/RXXddqgqhKa5aDra3jzXT7F/Hbi2/9lBdopJPA==
X-Received: by 2002:a17:907:98d:b0:afe:9880:8a9b with SMTP id a640c23a62f3a-afe9880aa30mr54288666b.2.1756131151192;
        Mon, 25 Aug 2025 07:12:31 -0700 (PDT)
Message-ID: <bd88b7d0-92aa-45c9-8b8e-730bc7edc7b3@suse.com>
Date: Mon, 25 Aug 2025 16:12:30 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] misra: add deviation of Rule 17.7
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <ad15582787e675fadf92502f85041c3232749a99.1756112701.git.dmytro_prokopchuk1@epam.com>
 <53d5cee3-9001-49a2-9da2-e56950a77683@suse.com>
 <83267937-938d-43d8-ba2c-a07d6adb93a9@epam.com>
 <330f8ee8-9fcd-40e4-96c0-ac126b047070@suse.com>
 <37bb8530-c9e4-4ad4-8959-d1f13316a0fd@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: <37bb8530-c9e4-4ad4-8959-d1f13316a0fd@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.08.2025 15:27, Dmytro Prokopchuk1 wrote:
> 
> 
> On 8/25/25 14:07, Jan Beulich wrote:
>> On 25.08.2025 12:58, Dmytro Prokopchuk1 wrote:
>>> On 8/25/25 13:30, Jan Beulich wrote:
>>>> On 25.08.2025 11:05, Dmytro Prokopchuk1 wrote:
>>>>> MISRA C Rule 17.7 states: "The value returned by a function having
>>>>> non-void return type shall be used."
>>>>>
>>>>> Deviate functions like 'memcpy()', 'memset()', 'memmove()', 'snprintf()',
>>>>> 'strlcpy()', 'strlcat()', as they return a value purely for convenience,
>>>>> their primary functionality (e.g., memory or string operations) remains
>>>>> unaffected, and their return values are generally non-critical and seldom
>>>>> relied upon. Update 'deviations.rst' file accordingly.
>>>>
>>>> How come snprintf() is among this set? Its return value isn't quite just
>>>> for convenience, imo.
>>>
>>> Yes, snprintf()'s return value isn't just for convenience. The deviation
>>> justification is primarily based on the fact that its return value is
>>> rarely used in the Xen source base. Most callers of snprintf() don't
>>> care about return value. So, snprintf() is in this list.
>>>
>>> Maybe separate wording is required for the snprintf() ?
>>
>> Minimally. Personally I don't think it should be deviated globally.
> 
> There are approximately 230 instances of snprintf() being used without 
> checking its return value (across ARM and x86) in around 20 different 
> source files. Deviation each of them could be complicated.

My grep yields somewhere between 50 and 60 hits in xen/, among them about 15
in xen/tools/kconfig/, which I expect we can ignore. I also didn't mean to
suggest to deviate them all individually. Some may actually want to use the
return value, and I wouldn't be surprised if this ended up fixing a bug or
two.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 14:18:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 14:18:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093256.1448785 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqY1D-0006iI-GQ; Mon, 25 Aug 2025 14:17:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093256.1448785; Mon, 25 Aug 2025 14:17:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqY1D-0006iB-D2; Mon, 25 Aug 2025 14:17:55 +0000
Received: by outflank-mailman (input) for mailman id 1093256;
 Mon, 25 Aug 2025 14:17:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=TV44=3F=bounce.vates.tech=bounce-md_30504962.68ac708a.v1-95060c73b2f3405eb407bfe676b0d907@srs-se1.protection.inumbo.net>)
 id 1uqY1B-0006i4-Pq
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 14:17:54 +0000
Received: from mail179-29.suw41.mandrillapp.com
 (mail179-29.suw41.mandrillapp.com [198.2.179.29])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4685835a-81be-11f0-b898-0df219b8e170;
 Mon, 25 Aug 2025 16:17:48 +0200 (CEST)
Received: from pmta12.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail179-29.suw41.mandrillapp.com (Mailchimp) with ESMTP id
 4c9Xty5tCNz7lmLbl
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 14:17:46 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 95060c73b2f3405eb407bfe676b0d907; Mon, 25 Aug 2025 14:17: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>
X-Inumbo-ID: 4685835a-81be-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1756131466; x=1756401466;
	bh=QASk0HcGEBujikYeiePjBRzLxGvgR19KtV66TpItfyQ=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=VZokLCoyXVg1qDTo8n8W897WVsEBFRd+8oHz8tCqLuW5MHKQxSsnYK8CMSq4CRAh/
	 d/TY5u8L/y0KDiJvjULy7U4KSmfPnHC5WYZL4IcBST+ApAwMwDe61PLCTPcxA9sVEr
	 VH9/trGOijoKkeVogJlfto3OOwruSFM009OWxz9HoBMOUKhDe9lqLeMLELfGaVin3x
	 b3cs3/4yMuI1zON/CCKQ5UXvbW74+ufIjesmk9cMcYP4p2u1zloLd3S6m3islFv6B0
	 wZVJyvED2xiNXdiiEOlajMtr+10FJiGbU95DDkoW/oANhRdAWF26yiudhJ0+kaQQhp
	 s7M6gfQ33Ndsg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1756131466; x=1756391966; i=yann.sionneau@vates.tech;
	bh=QASk0HcGEBujikYeiePjBRzLxGvgR19KtV66TpItfyQ=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=hY4fpLSGRphFuxRWv1gVhRtUYQZdepDe7IaYxYnaCO5XEMqbIFRIRg5eiPP8KVa3J
	 8iMlNjuJ0iIu1OJvjce5QOLmlxARieZTmzphf7h6qd705VcBAwGiefTRD6FxTdOfID
	 kZABuy2zuS/8ee3c0lhuPkzrrTM71jKIGOxVLMUyVAkGLBLOwYTyf66ot35aNwfvUR
	 xfGFUnALzHm+VeZxjB2n6ZuhBApabEWNc3veG4JgqKM9QR9Ucp+VPN8kuLckb8HRXa
	 ynrgRUtULaE7FzjpVPo4j2AmGUI/74b6IFxYYCr6rvj5IyaQqrnaD0u0TQPXdjUp5X
	 m+QfuYi7HXeVA==
From: "Yann Sionneau" <yann.sionneau@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v2]=20xen/x86:=20fix=20xen.efi=20boot=20crash=20from=20some=20bootloaders?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1756131465594
Message-Id: <4936cb0d-0898-4171-b8e1-ed3a57bcfc0a@vates.tech>
To: "Jan Beulich" <jbeulich@suse.com>
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Julien Grall" <julien@xen.org>, "Stefano Stabellini" <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20250724140731.1502774-1-yann.sionneau@vates.tech> <4ceb64fa-d7cb-4c77-8a60-1526046c037c@suse.com>
In-Reply-To: <4ceb64fa-d7cb-4c77-8a60-1526046c037c@suse.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.95060c73b2f3405eb407bfe676b0d907?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250825:md
Date: Mon, 25 Aug 2025 14:17:46 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On 8/4/25 11:34, Jan Beulich wrote:
> On 24.07.2025 16:07, Yann Sionneau wrote:
>> xen.efi PE does not boot when loaded from shim or some patched
>> downstream grub2.
>>
>> What happens is the bootloader would honour the MEM_DISCARDABLE
>> flag of the .reloc section meaning it would not load its content
>> into memory.
>>
>> But Xen is parsing the .reloc section content twice at boot:
>> * https://elixir.bootlin.com/xen/v4.20.1/source/xen/common/efi/boot.c#L1362
>> * https://elixir.bootlin.com/xen/v4.20.1/source/xen/arch/x86/efi/efi-boot.h#L237
>>
>> Therefore it would crash with the following message:
>> "Unsupported relocation type" as reported there:
>>
>> * https://github.com/QubesOS/qubes-issues/issues/8206#issuecomment-2619048838
>> * https://lore.kernel.org/xen-devel/7e039262-1f54-46e1-8f70-ac3f03607d5a@suse.com/T/#me122b9e6c27cd98db917da2c9f67e74a2c6ad7a5
>>
>> This commit adds a small C host tool named keeprelocs
>> that is called after xen.efi is produced by the build system
>> in order to remove this bit from its .reloc section header.
>>
>> Signed-off-by: Yann Sionneau <yann.sionneau@vates.tech>
> 
> So I found a way to deal with this at the linker side, without any new command
> line options. Behavior is solely driven by the attributes of any incoming .reloc
> sections (of which there would be none by default, retaining original behavior).
> The important patch is [1], but at least the first patch of the series [2] would
> in most cases also be wanted/needed (patch 04 is obviously a mechanical prereq
> for the main patch). Need for other of the prereqs there depends on the scope
> and purpose of one's binutils build(s).
> 
> Jan
> 
> [1] https://sourceware.org/pipermail/binutils/2025-August/143153.html
> [2] https://sourceware.org/pipermail/binutils/2025-August/143141.html

That sounds great!
It's clearly better to fix the issue by changing/improving binutils.
Let's drop my patch in Xen if this gets accepted in binutils!
It would be nice if you could keep us posted in xen-devel of the 
status/progress of the binutils patches.

By the number of patches needed for binutils it seems you opened a can 
of worms/pandora box with this issue ^^

Also, in patch 12/17, you state that the logic would be that if .reloc 
is generated partly by the code itself instead of solely by the linker 
this means we want to use the section at runtime.
While I kind of understand this idea, it also feels a bit as a hack, 
doesn't it?
One could argue that even if .reloc is just generated by the linker, the
program could still want to access it at runtime.
I've looked at Xen code to see if it does put something in .reloc itself 
and it seems so: 
https://elixir.bootlin.com/xen/v4.20.1/source/xen/arch/x86/efi/relocs-dummy.S
The "code puts data in .reloc section" would just serve as a "hint" for 
the linker if I understand your patch well, just as well as a 
`--keep-reloc` command line option would.

Anyway, I won't comment much further on the binutils patchset since I'm 
not well versed in linker black magic.

Thanks for the patchset!

Yann

-- 


Yann Sionneau | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Mon Aug 25 14:20:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 14:20:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093265.1448795 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqY3Y-0008BU-SG; Mon, 25 Aug 2025 14:20:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093265.1448795; Mon, 25 Aug 2025 14:20: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 1uqY3Y-0008BN-Ot; Mon, 25 Aug 2025 14:20:20 +0000
Received: by outflank-mailman (input) for mailman id 1093265;
 Mon, 25 Aug 2025 14:20:19 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=J9Dq=3F=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqY3X-0008BG-AV
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 14:20:19 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a04836ef-81be-11f0-a32c-13f23c93f187;
 Mon, 25 Aug 2025 16:20:18 +0200 (CEST)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-afcb7ace3baso800641566b.3
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 07:20: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
 a640c23a62f3a-afe7aad5d61sm259882966b.105.2025.08.25.07.20.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 07:20: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>
X-Inumbo-ID: a04836ef-81be-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756131618; x=1756736418; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=kMmdUAg9dKT+h1W/k9SXvDTXrfIiRdp5JxVpR+SFhFI=;
        b=fKkr2jUiSM2F+JUbh0iHGIZ8mfnBJxgI8KGisIOx00QbbqolewdvxFixzRaClxSp9G
         Zv3Ctq5YGq6kyw5lTk20DalXM+DvlTmSAYWX+t48jhrkMN9BpVvUNJhtP3RLg/gSGsrr
         JOtBDssuitEpIzRCSbyWwuRdA93cknytAWdFSUDg9I5lH96PnzLKgLyIq3PqlAFQZ/ac
         s8mTy1eWs2dGxXSHQnbEefIcuKhupHqfu5T8BGu3OIByImPdNU3YfZZqR/dlpmsAmFdS
         znlNAxsZMv9kn4ix/6fmfuMS4fzQCg+6x7fYax2mNqe826nCYOddFDteTYj4l2ZLriFr
         VsKg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756131618; x=1756736418;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kMmdUAg9dKT+h1W/k9SXvDTXrfIiRdp5JxVpR+SFhFI=;
        b=MBPK8FhCYpQe8ShwlpFHWntN/BlMDoTdx2MWnbE7bGmpZLTz/ndW662a51QXgXrgyb
         IOEhs5eeFvAd6BJivMFINgWkC/j8y4RjyUvtJypF2BPUgamNKqvju0yxXpmcE1KsJ1eC
         FzUAS4GJeAJPQiHu4V9hGm+/g3R1GYJXDcBPuRYEcXHGxxEO5BrAy1B6AUPEGRniFJMM
         gumjsY2fpGDo+hmJKzUT6rKXF0Y0Y8mq7w618HE+avj/2O7QZUQe+lxN9mCzRaOHSWwS
         cS7fKDDX/X9loMxBCY16z1jYxc9aYH99Rb2/7BPju6hBVvEeSeDqvBdmLpxGLzeFZj61
         6gOA==
X-Forwarded-Encrypted: i=1; AJvYcCUjjIbt2w2E8nxCZ0mS/KEchfzA5UdsathSyEBguXJqYxMDD0wAIjKiRt/MqCeT0nrThhkfqySxHMw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzXQmz/P5D6H6ktQIphGVspwHSkXcMGmnPKL0hzHrdn+iHP23o7
	ueAITKEfbtKiWRn1sS+lmyMp5W8aORfqh5XbVsXkz7yTG4ne8FZZcTFWHyw1AJpf1Q==
X-Gm-Gg: ASbGnctr43zYcEFQYcWKqjxjMEnu/AF1oBYub6YLjuPqU3MdEZQolZsN5gXaTzB4SOx
	fDBdTXXm5yXk2BJBW3P2VDLu70le0AB0JV+5KYtJTG++TH4LYZ5hhkqKnK0i7qzE34sUZ/ijLjU
	WZakEjHlJDcle1JZOUZBEHJw9HhmQ99GMeCDaYJWLGSr4XHdXplAZ94/TlUIeFW3KIBaea5wbPg
	xqlGiHuh9z2Z8gH0duZxqLlLnPJpTq06YMEiQX7iNk3dOo1YTBsrYWg4FcEIqu8GotXiyxj51P7
	7rFtyjYmlINX8KpPvS7rI6pZ2kL9n+uUmlcXDwXn1shGWvzDTUtk0izNY+ckuhAyi6co1Q19RHb
	jGq1ups1rDdEpm6jIV4oJ3IaOX5f6ew3FfkxZPUCRhN5f5HJJcEl8Yp94ht4epoXPjShPxzdzZR
	hhzmWiYqijrvg2/s+wFA==
X-Google-Smtp-Source: AGHT+IFUoFhjBSK6UMvgppIid5Sf2Zj3AHBTCmuv5DDvkJlC24Yl++t83W2IBJfDwJxwU40bdT1DRQ==
X-Received: by 2002:a17:906:4784:b0:af9:8c1f:c2b9 with SMTP id a640c23a62f3a-afe28f767bdmr1066510366b.8.1756131617623;
        Mon, 25 Aug 2025 07:20:17 -0700 (PDT)
Message-ID: <49416df6-83c8-4fa3-bf81-2d1e504ef31b@suse.com>
Date: Mon, 25 Aug 2025 16:20:16 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>, ray.huang@amd.com,
 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>,
 xen-devel@lists.xenproject.org, Penny Zheng <Penny.Zheng@amd.com>
References: <20250815102728.1340505-1-Penny.Zheng@amd.com>
 <fb6f559a-b2aa-4b25-a6d3-401ecc4b4bd5@suse.com>
 <d6046b53-9317-43d6-bfda-e30d42c09320@gmail.com>
 <2035b14e-3836-4e80-9dad-8a49ca90864a@suse.com>
 <alpine.DEB.2.22.394.2508181646220.923618@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.2508181646220.923618@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.08.2025 01:51, Stefano Stabellini wrote:
> On Mon, 18 Aug 2025, Jan Beulich wrote:
>> On 18.08.2025 15:28, Oleksii Kurochko wrote:
>>> On 8/18/25 10:31 AM, Jan Beulich wrote:
>>>> On 15.08.2025 12:27, Penny Zheng wrote:
>>>>> In order to fix CI error of a randconfig picking both PV_SHIM_EXCLUSIVE=y and
>>>>> HVM=y results in hvm.c being built, but domctl.c not being built, which leaves
>>>>> a few functions, like domctl_lock_acquire/release() undefined, causing linking
>>>>> to fail.
>>>>> To fix that, we intend to move domctl.o out of the PV_SHIM_EXCLUSIVE Makefile
>>>>> /hypercall-defs section, with this adjustment, we also need to release
>>>>> redundant vnuma_destroy() stub definition from PV_SHIM_EXCLUSIVE guardian,
>>>>> to not break compilation
>>>>> Above change will leave dead code in the shim binary temporarily and will be
>>>>> fixed with the introduction of domctl-op wrapping.
>>>> Well, "temporarily" is now getting interesting. While v1 of "Introduce
>>>> CONFIG_DOMCTL" was submitted in time to still be eligible for taking into
>>>> 4.21, that - as indicated elsewhere - is moving us further in an unwanted
>>>> direction.
>>>
>>> Do you mean that specifically this patch or the whole patch series is moving us
>>> in unwanted direction? (1)
>>
>> That series. We said we don't want individual CONFIG_SYSCTL, CONFIG_DOMCTL, etc.
>> Instead a single umbrella option wants introducing. Which means there series
>> doesn't need re-doing from scratch, but it may end up being a significant re-
>> work, especially considering that CONFIG_SYSCTL is already in the codebase and
>> hence now also needs replacing.
> 
> I would not characterize this series as "moving us in an unwanted
> direction". Yes, it introduces a separate CONFIG_DOMCTL, which we
> agreed we do not want. However, simplifying it to reuse a single
> CONFIG is a minor improvement that can be addressed in v2. The main
> challenge in this series is adding the #ifdef in the appropriate
> places, and using a single CONFIG for domctl and sysctl would
> actually help.

Well, when are we going to see a v2 then which does this? Of the three
options I mentioned in the earlier reply, Oleksii favored the revert
path, leaving open the get-everything-in one. For the latter, however,
we need to see relatively constant progress now, or else time will run
out. Whether to commit the patch here really depends on what route we
settle on for 4.21.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 14:29:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 14:29:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093277.1448804 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqYC3-0000at-Lf; Mon, 25 Aug 2025 14:29:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093277.1448804; Mon, 25 Aug 2025 14:29: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 1uqYC3-0000am-IY; Mon, 25 Aug 2025 14:29:07 +0000
Received: by outflank-mailman (input) for mailman id 1093277;
 Mon, 25 Aug 2025 14:29:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=J9Dq=3F=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqYC1-0000ag-MA
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 14:29:05 +0000
Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com
 [2a00:1450:4864:20::630])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d953fb07-81bf-11f0-b898-0df219b8e170;
 Mon, 25 Aug 2025 16:29:03 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-afcb7a3ee3cso643650566b.2
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 07:29: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
 a640c23a62f3a-afe48fbdb52sm570110366b.33.2025.08.25.07.29.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 07:29: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>
X-Inumbo-ID: d953fb07-81bf-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756132143; x=1756736943; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=CaYZYHMc8nvfaAWYv+35eikwH2vUQc5t2kU+haPS6Lk=;
        b=WGrItcFFZDbPc+wF2s7c5bCUZ/ERbKP47+31kgyzkdeAz11S1g7JLtgDGtEmo6Rcz5
         hr2foMvILg3nit7XLEolSBO07FZKRmbJLdtjV8qGoZTk+dapGMZIMBWM77VRM0GnKdqt
         mu7XV/BQe1DOsPmb31/LxD19HLtkD10qir44crmP1eL3szg+RLfhKkW8XPpyycAjvR6N
         S0bbl78UpheanC9+/pe3Z9MBjtpAFA49UujTe8geK//mpOuEeU2IxoojdBGK1rLEefcF
         vlYdO1oYVQNfVLzt9WBS3Fg1kl4RQjzVqqNcqm8m1a7yt412UcWONvxr5iLS0JvI/a8m
         /iCQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756132143; x=1756736943;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CaYZYHMc8nvfaAWYv+35eikwH2vUQc5t2kU+haPS6Lk=;
        b=X7arTLu3JJe1OpcgG8GVcyzGRAcNLMiJgTD9duNs77IFIXbPojdL4UvPN5e301moZB
         0BxHpfKtr3UvDUgEiwXxV2lXeUcFzUR7fQ7zcoYIqki9wMcsXjbIjSN3QlShMrwUZpgw
         dzglnXjM2DCBghyFCOOKak25IjQGlxZ9TXSpoCAGnsR8gtMfqkTA4pfdXUJrn/Ro14IO
         hXNIfbSkrqqYgtwpRK7d679A/Kl7lVSM3R6tZk0n9q8OS1pACMzGjB6B5AMF1p/FGuiY
         GYg8BvLhvbuFMG6vEOF/s1J3mO9EPIlcDFH0BaCe/cTiO2wq9F/0Z8RFw7ZY4FqYdOAM
         kt0A==
X-Forwarded-Encrypted: i=1; AJvYcCWe4Ox2ywT7xO1pO9QVBml/1+JBUdkN0McmAUWh/HkMJ34+9YyteUKVeXOnVVPmPNz8o3G8jJheNIU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz54Sa8X7GK0AGuEACk5gf5Om0aNsewtn9YbqN9l+lOlx0P9a0E
	7vif+gpslRmXRSWh7W0A61t1Z2+j80OLa8B5/OjtB5suqcZ/BTny5nQcnbDJnaQz8w==
X-Gm-Gg: ASbGncu/4V1s/qp+ckXCMMZp8dY+TMBLEV9WHA3WcHLuj0oHr6bvrEKRU2vMIxMx6hh
	c+nDOsJ3mUl3ftFqL3LTCpAEEXom7XzWjxo4H/pq+19fPdCS0YvbhNZCHFWWxVWFyopLPhgQGur
	zwLP3WUYswrZuquOxfTKyowMrMgVe9mo/un6R2PqnnK//dvKs6H2JExZYDCrq+UXNzDmC5Xek3m
	cXaXPdAOeDnx8kvMORzPV9SHX2AJ5FW/wOm9Wt38Mn97P3G/FgctUPteqFDwL7dZ1DBsK4sZqEX
	ydNlYVMbq6G1k8bINjJvbq+gw/ge6qeI6jjp7Fvk71sg2Aja2csGdmpPnCIWEFY18H02oyi3uWs
	YoUndl0XGbQNsW5jZ5Zpq9WQpcVsttLbTpjCT7EsDldWYpekbYBPV2Y9qsxut3Wx55rdtewNaxo
	RhKtjLDys=
X-Google-Smtp-Source: AGHT+IHDWIK2NchTCtUEpsB4nzY1RWuCe87k6OPT1krRbC64uQ1EpKwO4K6BGR+S/nytJPwlyB9RAw==
X-Received: by 2002:a17:906:3717:b0:afe:764d:6b31 with SMTP id a640c23a62f3a-afe764d736dmr464579266b.4.1756132142791;
        Mon, 25 Aug 2025 07:29:02 -0700 (PDT)
Message-ID: <9b7b70e5-9b1b-446e-9dcc-310f1c1f4b47@suse.com>
Date: Mon, 25 Aug 2025 16:29:01 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/x86: fix xen.efi boot crash from some bootloaders
To: Yann Sionneau <yann.sionneau@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: <20250724140731.1502774-1-yann.sionneau@vates.tech>
 <4ceb64fa-d7cb-4c77-8a60-1526046c037c@suse.com>
 <4936cb0d-0898-4171-b8e1-ed3a57bcfc0a@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: <4936cb0d-0898-4171-b8e1-ed3a57bcfc0a@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.08.2025 16:17, Yann Sionneau wrote:
> On 8/4/25 11:34, Jan Beulich wrote:
>> On 24.07.2025 16:07, Yann Sionneau wrote:
>>> xen.efi PE does not boot when loaded from shim or some patched
>>> downstream grub2.
>>>
>>> What happens is the bootloader would honour the MEM_DISCARDABLE
>>> flag of the .reloc section meaning it would not load its content
>>> into memory.
>>>
>>> But Xen is parsing the .reloc section content twice at boot:
>>> * https://elixir.bootlin.com/xen/v4.20.1/source/xen/common/efi/boot.c#L1362
>>> * https://elixir.bootlin.com/xen/v4.20.1/source/xen/arch/x86/efi/efi-boot.h#L237
>>>
>>> Therefore it would crash with the following message:
>>> "Unsupported relocation type" as reported there:
>>>
>>> * https://github.com/QubesOS/qubes-issues/issues/8206#issuecomment-2619048838
>>> * https://lore.kernel.org/xen-devel/7e039262-1f54-46e1-8f70-ac3f03607d5a@suse.com/T/#me122b9e6c27cd98db917da2c9f67e74a2c6ad7a5
>>>
>>> This commit adds a small C host tool named keeprelocs
>>> that is called after xen.efi is produced by the build system
>>> in order to remove this bit from its .reloc section header.
>>>
>>> Signed-off-by: Yann Sionneau <yann.sionneau@vates.tech>
>>
>> So I found a way to deal with this at the linker side, without any new command
>> line options. Behavior is solely driven by the attributes of any incoming .reloc
>> sections (of which there would be none by default, retaining original behavior).
>> The important patch is [1], but at least the first patch of the series [2] would
>> in most cases also be wanted/needed (patch 04 is obviously a mechanical prereq
>> for the main patch). Need for other of the prereqs there depends on the scope
>> and purpose of one's binutils build(s).
>>
>> [1] https://sourceware.org/pipermail/binutils/2025-August/143153.html
>> [2] https://sourceware.org/pipermail/binutils/2025-August/143141.html
> 
> That sounds great!
> It's clearly better to fix the issue by changing/improving binutils.
> Let's drop my patch in Xen if this gets accepted in binutils!

Luckily I'm in a position where I don't need "acceptance", but merely
"absence of objections". The sole reason for the present delay is with
a colliding MIPS patch, which I'd rather see go in first.

> It would be nice if you could keep us posted in xen-devel of the 
> status/progress of the binutils patches.

I'll try to remember.

> By the number of patches needed for binutils it seems you opened a can 
> of worms/pandora box with this issue ^^

Well, that's been only one of the tinier cans.

> Also, in patch 12/17, you state that the logic would be that if .reloc 
> is generated partly by the code itself instead of solely by the linker 
> this means we want to use the section at runtime.
> While I kind of understand this idea, it also feels a bit as a hack, 
> doesn't it?

Yes and no. Assigning purpose to sections merely from their names is
already a hack. Yet since we need to live with that concept on PE/COFF
(and even ELF is quite far from being free of such), making this small
extra distinction feels quite acceptable to me.

> One could argue that even if .reloc is just generated by the linker, the
> program could still want to access it at runtime.

Not really, no. Ordinary programs hardly have a need to access their
own .reloc. And if so, having a simple, command-line-option-less way
to distinguish both intentions is probably the best we can have for
both worlds.

> I've looked at Xen code to see if it does put something in .reloc itself 
> and it seems so: 
> https://elixir.bootlin.com/xen/v4.20.1/source/xen/arch/x86/efi/relocs-dummy.S
> The "code puts data in .reloc section" would just serve as a "hint" for 
> the linker if I understand your patch well, just as well as a 
> `--keep-reloc` command line option would.

And something similar would then be needed for the other two linking
steps, just that there would be no actual data in that .reloc section
"contribution".

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 14:30:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 14:30:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093287.1448814 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqYDQ-000229-0i; Mon, 25 Aug 2025 14:30:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093287.1448814; Mon, 25 Aug 2025 14:30: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 1uqYDP-000222-UK; Mon, 25 Aug 2025 14:30:31 +0000
Received: by outflank-mailman (input) for mailman id 1093287;
 Mon, 25 Aug 2025 14:30:31 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=J9Dq=3F=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqYDP-00021w-31
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 14:30:31 +0000
Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com
 [2a00:1450:4864:20::536])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0cdf02ec-81c0-11f0-a32c-13f23c93f187;
 Mon, 25 Aug 2025 16:30:30 +0200 (CEST)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-61c266e81caso3168920a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 07:30: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
 4fb4d7f45d1cf-61c312a5821sm4949001a12.13.2025.08.25.07.30.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 07:30: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>
X-Inumbo-ID: 0cdf02ec-81c0-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756132229; x=1756737029; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=zqJ6hL2c4mfNRMdVhDhnwOoK8oBtxOpq7vtcK6QdqUk=;
        b=NmT3n59DRdkALxeJUK4/wIMHSz4RP4WXluFYM0NSwkwiHTnb2ruyD6kN+OGvL7EM+E
         VgZwF0BUWHBg4CZ8elRsIDYtoqBpHzSZYsD77DrSpHNCEISwJQQj2BTKtJe2WBotRaTs
         YTev0GN5GncHG4HXezkhVHTStrs12u2eZxwMev5h62fLGkWiaTRqUmdXCzh/38xT4Ol0
         8m/XnKtsC22qbfgjk9Ue7LvH0v+ZxzqbTCGO9fGCQbUZz5jC91cwKmg8C3rRNmMQFTG9
         ny5xd1Xpcg7xT8ICCblw8eV2dIAzHXHUwwKvkBNcsipiV5XiikmEoCVQt9SDSYOVywSl
         VS/w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756132229; x=1756737029;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zqJ6hL2c4mfNRMdVhDhnwOoK8oBtxOpq7vtcK6QdqUk=;
        b=C4+zASZt1wOhxuNDy4rTGhrDiJTbFx03PdWz93U3PGaU6B86s8eEU64I+hggr01BjY
         OV080jpf0TUqZuZEr6jJURYZZUBKOsURulWZvnwkYiAjwSeep48VJ5fSmQsp1VV9nX9+
         46i5LrtgU6r4zbng6TAqlYHPPGNpGNtn9DaGM4HTYtlSOjw4KBd+sk5rkPKtMwhThWHp
         Ab5ttf+tU5I59M5NH7aM3QoK7ZyPHL8bZiNzkYdz2A0svljTy9WpRsqGEn8sczy6sf+6
         FcME6iTwvBh8rSpN0AyauAlxi+F9V5/3IOKqdjIK32ZVvw/YYXWYxTmdxxcGleqr+KmG
         2iww==
X-Forwarded-Encrypted: i=1; AJvYcCV54cEgJzeGOZuWYKgCRiT9OVCU0WwzxbD7weBV7XrN6Om5//yUzn02BWy/KiiubHJQwGFqO+YQoHs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxX2gqNtNszFQ+IT4/GOaHsxEqoaGr2gEpv8yurD0gepmQEUX6h
	FTOUqRNDpC5myWveocAhhQ/BQganhDxncR7KPRuBbGKdCeWOYL0xdxP5iVGJ2EHMkQ==
X-Gm-Gg: ASbGncunTI0WEeeXtriEYi1OB6nV9asgjG0CTz38aPFwiMSSi+hs5ZdcPCTig7o+5Dd
	KMEarrL2o9om+vOcUY0XFagaFVtmrs8Rsfbgw2PKZbtFEyX1K+CtOHPUFWxx0zrrmjz4/QQtTX3
	OoztKBIkcfI33nns0ljhOjxWfNsbVVFLJtJibQ+noJkrLqDxkwkR6CF8zl3l4VReFTrpUR9Rkz2
	mLD9MOKFBnGgPz4qh0B0t2rlSqLbDJEAucCV42R9ohJt3pPfIiA/7k4KvmlcKxUTq0J8gM7du7L
	dwUUl2vffe3PsbD4a3UQskfGCfQaVXh3I8Z8YMBsTMrtRzXOCdmKF8hC68WCpYAI4EaVHx5WzfQ
	1X5BjMOK6FBOg3MIAHzuqLDfDMdGl4XXMG+ZwMHoVCQlTA+yL4NUUyRUz27xllJjqaNsJCgfVY1
	toAmR6PT4=
X-Google-Smtp-Source: AGHT+IHD43aOoU88HGrM4sx8GW94U3jJteSg/j3xRtl2u5+jKJujOuO0InkbCN8WKKFzAYLySXf5cw==
X-Received: by 2002:a05:6402:210b:b0:61c:4034:e414 with SMTP id 4fb4d7f45d1cf-61c4034e604mr6428275a12.7.1756132229428;
        Mon, 25 Aug 2025 07:30:29 -0700 (PDT)
Message-ID: <42b2163e-1cb0-4f15-a1a5-4d7eaad6bf30@suse.com>
Date: Mon, 25 Aug 2025 16:30:28 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 03/13] tools: fix help info for "xenpm
 set-cpufreq-cppc"
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, Anthony PERARD <anthony.perard@vates.tech>,
 xen-devel@lists.xenproject.org
References: <20250822105218.3601273-1-Penny.Zheng@amd.com>
 <20250822105218.3601273-4-Penny.Zheng@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: <20250822105218.3601273-4-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.08.2025 12:52, Penny Zheng wrote:
> Change "balance" to "ondemand" in help info for "xenpm set-cpufreq-cppc"
> 
> Fixes: 81ce87fc5e36 (xen/cpufreq: rename cppc preset name to "XEN_SYSCTL_CPPC_SET_PRESET_ONDEMAND")
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>

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



From xen-devel-bounces@lists.xenproject.org Mon Aug 25 14:43:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 14:43:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093300.1448825 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqYPm-0004DF-5p; Mon, 25 Aug 2025 14:43:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093300.1448825; Mon, 25 Aug 2025 14:43: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 1uqYPm-0004D8-2b; Mon, 25 Aug 2025 14:43:18 +0000
Received: by outflank-mailman (input) for mailman id 1093300;
 Mon, 25 Aug 2025 14:43:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=J9Dq=3F=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqYPl-0004D1-4x
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 14:43:17 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d4cb00fe-81c1-11f0-b898-0df219b8e170;
 Mon, 25 Aug 2025 16:43:14 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-afcb7a0442bso735628566b.2
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 07:43: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
 a640c23a62f3a-afe8d03f94asm115181466b.57.2025.08.25.07.43.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 07:43: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>
X-Inumbo-ID: d4cb00fe-81c1-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756132994; x=1756737794; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+EeH+3Go6suIAuKpudbMnOQdWhGJbyxWlc2oQylVT4s=;
        b=MuJrbw9oHNWSzZ6rmyIbHrBg9wnWo2yWjJwvsUDPsaVjjJIGl4J23M27k24WaxqyJ5
         bZe/7pkOKt0Ek4oahiH8rgKAf7fTmWNB1Bym2fjaO00G5yMyBtjGOtWH6wrfMrxnGaNA
         XM08/ZgREB7oayYobudIWLNhCkt88Py49UoXi3IMI4pFu/YzhX1LhsNy87Vj9OU4PvZQ
         jYxxKevwnJySZkjSpeCe64etnotKXOTPLA85Tq6YT4SsTYITcRzJuVWFYxZ75D73bY3P
         hVvJEiNtzeR5Mtz2nghZ7ZtN4Ljr+RkWuWj4ST4BB/LVFUxhWl7amokK82aH+05KBNKo
         +Ptg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756132994; x=1756737794;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+EeH+3Go6suIAuKpudbMnOQdWhGJbyxWlc2oQylVT4s=;
        b=MecFSmVXRa9Vco0yfA+GiaN/IdwMN3HelAikVH2QPgWUOggt/AGngjUTOWTxmUNx0D
         R5gZUPp6cSb4gMIvC86rrB2S4pFU/4z+cdzYMNdcG+RqhkiSFucvbrdV4DtpLSFdPG4n
         AZVkSqfoyKxJuVEr7HVSd2tsnulbTfIILrtNtbN9IcMKNmiU7/dom6cWTYNtdK3yI+NZ
         ittmkqksotYkZFNYkdpoFS5iWIMJ+MZrzMIcO+hKtB9Vm3lNjJxdtswSxO1YH99ubykM
         wTln0thsC1axkR9B5Hk52wtYKtW697GM6fuVHIxz9UbXw/B5ceFpm8PICg8O6D/OBW8c
         7kgA==
X-Forwarded-Encrypted: i=1; AJvYcCWjQjRJnKYXUfOedavprm3Qr39sYfbA1XH8gvxfcBQ0A5RlGly1HeRL1w8nFx13AkpIyvFAl6JvD/c=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwbTRYofM2hdhGzia2DYmtLrJSk8nNSbeTgvPxcv1wzS5BpEIJM
	S13WlmWRijCT9siCVESPc39NvcNaULDSpJpGiZSeSvF4Amsf1rKtm6b65VWvNbdBug==
X-Gm-Gg: ASbGnctkiOuf1CASSROlSFFd4oydNN/NXh2B0PouqdBffzcSIwhKvGcQTYpUtcLzbLR
	cDw4Dt9ttv5/p09Qd13uEXdafj2W0ztg/+YH1VMbvvGXjKmGtAsCsoQ6TeakhPwZeO7Vd3AGEJC
	Y/KiYUdyEF0aAnnN3m7Q69Oz3mRsJhPqXaPH40JGjdQR992+Aq+yShU0OhyabyBK4FpmUPL8fXy
	m8waJalfy9pmuBtpHxpJaaoA362TrdU7DDjQwQHDn6Tc+b9UmGsYgTpceYFz4VjjbO4fyJlIlps
	YuoSbIJP+hYE5jzH3mHyOOoTekKrmnydg1ZIXN+kpP31B742R114taHXh0hq5B0U+yLlnkbtKIl
	lArRsfZjfxcQG6obK4ocqI/Bo2LBZyJuXhJ4djfGPRuoAZpITo7cWXAxff9pka+Rd6SxM9LnT1N
	kwaks8W9o=
X-Google-Smtp-Source: AGHT+IGlcJiym2KX1slQIrlgQmbPuWZOBT87I/8rYrzq7nMepdyb9lDBGPZionCIRhDv15xcAws+GA==
X-Received: by 2002:a17:906:fe05:b0:ad5:777d:83d8 with SMTP id a640c23a62f3a-afe29447253mr1103055766b.29.1756132994305;
        Mon, 25 Aug 2025 07:43:14 -0700 (PDT)
Message-ID: <f6e4561d-a554-4ac1-afad-c4b010e1832b@suse.com>
Date: Mon, 25 Aug 2025 16:43:13 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 04/13] xen/cpufreq: add missing default: case for x86
 vendor
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20250822105218.3601273-1-Penny.Zheng@amd.com>
 <20250822105218.3601273-5-Penny.Zheng@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: <20250822105218.3601273-5-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.08.2025 12:52, Penny Zheng wrote:
> Since we are missing default case for x86 vendor, there is possibility (i.e.
> new vendor introduced) that we will return successfully while missing the
> whole cpufreq driver initialization process.
> Move "ret = -ENOENTRY" forward to cover default case for x86 vendor, and
> add error log

Requested-by: Jan Beulich <jbeulich@suse.com>
(or Suggested-by: if you like that better)

> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>

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

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 14:45:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 14:45:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093311.1448834 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqYRc-0004kY-GB; Mon, 25 Aug 2025 14:45:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093311.1448834; Mon, 25 Aug 2025 14:45: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 1uqYRc-0004kR-Db; Mon, 25 Aug 2025 14:45:12 +0000
Received: by outflank-mailman (input) for mailman id 1093311;
 Mon, 25 Aug 2025 14:45:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=J9Dq=3F=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqYRa-0004kB-OW
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 14:45:10 +0000
Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com
 [2a00:1450:4864:20::62a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 18ebd1dd-81c2-11f0-b898-0df219b8e170;
 Mon, 25 Aug 2025 16:45:09 +0200 (CEST)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-afcb78d5e74so860113966b.1
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 07:45: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
 a640c23a62f3a-afe56dd5632sm513167066b.110.2025.08.25.07.45.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 07:45:08 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 18ebd1dd-81c2-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756133108; x=1756737908; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=JBMX4l46kcArceBzMpuqAJYg/5EeCqPqtKM+Vgu8tGo=;
        b=e+VTBuFRF6wYOf4P9p67nYLHQyuPPcLgc4RRfob45gqDODxiJVe/OjpLqHOmKP+t4v
         EWMsDsL+6yq3IY+n4rFB7mZSubxSBS8f783n3zsFIo50Lz16toHlmLpTHeWlbLVxqq79
         jZgaLDocD4EX71qrivv9Kf0yqdHyuxOHVL2YsXp1bx5YFVOPx7nPsVPzGh2XbcOOIuaP
         KaR9jXVsbbuMnjZl9iN8w0laLBgOApai8Cki8aqeO+1WtCFgjufE8XeQz6bVBf09dfiF
         BLlCw4Zv7aOsYyiRaKBOVjI6tvo1gtbbCbnQuNNG5gs5BFljt0Gf5fdYS9z6+JMO5kZe
         of+w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756133108; x=1756737908;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=JBMX4l46kcArceBzMpuqAJYg/5EeCqPqtKM+Vgu8tGo=;
        b=RTFrHLfjHTWj/HoaQzJftyikAxgyBqGK+4lqT2OgChdagXC+Aso/uJR7Fur1bs4EZy
         HlTrhcmrU28bUSiYTz3YItcwM6e8WmiPa32S5wi0rtdRPi1Z605KezgRjVyOQQEcBOK9
         qwSMxNAZW+xv2GSg2N59URnTgey2ZhPL1SynNmQUjidJoeWpmLva4FWgFLGiZ5C/W8ZA
         wdCMmrzRK319iEF4WAUPsCECutWdA44A97dDk9gdhNs/aoaFQaPONO9jJ1v7YN7qwMTw
         L4UN8PmuJIlyhHgVAFFTs7wizZmlZi6ibJxN638N2wvzhIEHcbxOrCgQt8tjbEhnbOIF
         27BQ==
X-Forwarded-Encrypted: i=1; AJvYcCVydi9LCHaxmXFLLB6ahTqmY1rBeyV3D28Io7yLl3mCYpaPVVYJzR9X0ZX44XtqIqZ03hO7edg1Ndg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyRJ1zhv9bU7c8vmtedNAjDS5Ukn64CcW7GxRRd016uFO27mfSv
	yNo1ZyydRGlYWfO0wM5pJyG4+mJI/FEEtDr/3UdOsYbn3VCqCC1K3C2Et71MgITB8XBOEljGND2
	Zi7c=
X-Gm-Gg: ASbGncvD2HtPKGEp0SF16207pO/8G+H9vd2/+E5pQXE7XOnHqaHz+WokBPumPwpBngC
	60q6hI9vhkPmgwJT4Y0suDzlXHtwKAuj7+xMAb5HzaZdyDGVnIH3V8CDggkPhMg+z+kK0eWTGWZ
	7WTLsETNGL7AgekG9/qKbzOW8AGu+kiDsNYKTF4ak4DVRb3KU/Qi47HZd2QwBW2/LA5D+wscHam
	KaE8rRAsFiCGi/t+a/0FX13DYuyer8tfqgjBfZv4Idim35UoRkGVcXUM4kt4o6D1dYO1xxPamUi
	+2I1RVOobktPdxOfal5R+LjLNnhgyA7r+M3Sz/rga2p8mj5lGfRAVtNm1v0S+y8l77IKCs2SUYo
	HFkyhsku5DKrmRky7zsgtpyhBlCsNT6avqmf5o9ptdKvfv+xma5NgOZeag+Qq3RRQrMaK5o4IcQ
	TrnRmlbCA=
X-Google-Smtp-Source: AGHT+IFZ91P5L6s+5lzMZ9lzohc/BvYq6fIgQcofIqa9aqlHG20qpKXVJSlWtvUvZlWAGbgMNlwmlQ==
X-Received: by 2002:a17:906:4784:b0:af9:8c1f:c2b9 with SMTP id a640c23a62f3a-afe28f767bdmr1074737866b.8.1756133108554;
        Mon, 25 Aug 2025 07:45:08 -0700 (PDT)
Message-ID: <8e57cb4c-293d-44a7-8c81-ac49e91df315@suse.com>
Date: Mon, 25 Aug 2025 16:45:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 05/13] xen/cpufreq: refactor cmdline "cpufreq=xxx"
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, xen-devel@lists.xenproject.org
References: <20250822105218.3601273-1-Penny.Zheng@amd.com>
 <20250822105218.3601273-6-Penny.Zheng@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: <20250822105218.3601273-6-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.08.2025 12:52, Penny Zheng wrote:
> A helper function handle_cpufreq_cmdline() is introduced to tidy different
> handling pathes.
> We also add a new helper cpufreq_opts_contain() to ignore redundant setting,
> like "cpufreq=hwp;hwp;xen"
> As only slot 0 of cpufreq_xen_opts[] needs explicit initializing with
> non-zero CPUFREQ_xen, dropping full array initializer could avoid touching
> initializer every time it grows
> 
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>

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



From xen-devel-bounces@lists.xenproject.org Mon Aug 25 14:50:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 14:50:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093320.1448846 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqYWK-0005q4-4U; Mon, 25 Aug 2025 14:50:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093320.1448846; Mon, 25 Aug 2025 14:50: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 1uqYWJ-0005pc-Vl; Mon, 25 Aug 2025 14:50:03 +0000
Received: by outflank-mailman (input) for mailman id 1093320;
 Mon, 25 Aug 2025 14:50:02 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1uqYWI-0005Xu-JK
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 14:50:02 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1uqYWG-005uli-21;
 Mon, 25 Aug 2025 14:50:00 +0000
Received: from [2a01:cb15:80df:da00:4c1a:a750:6210:2b8] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1uqYWG-000YQB-1g;
 Mon, 25 Aug 2025 14:50: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date;
	bh=IlVgVg9zvVUT9P78FdSg38eNH35hJkSfA6k/JPyPStM=; b=p92bwDFEnG3udS8n5hJe0wt2ft
	VZ/c5WiYC9X8S3C967fjNkJ1yqmI+1ixF9Av15vhatTU64p99AsAn5P383/rys2uNBdwHhgTxpVwW
	HFsprgr603XV+/l1qBd1zz6+yMFKVtpAaNJGqi9vGDZdGGQLlNpbIu8y8o4HFgO5Yxa4=;
Date: Mon, 25 Aug 2025 16:49:58 +0200
From: Anthony PERARD <anthony@xenproject.org>
To: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com,
	anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org,
	michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
	dmukhin@ford.com
Subject: Re: [PATCH v4 6/8] tools/xl: enable NS16550-compatible UART emulator
 for HVM (x86)
Message-ID: <aKx4FtlhAbXxtZlB@l14>
References: <20250731192130.3948419-1-dmukhin@ford.com>
 <20250731192130.3948419-7-dmukhin@ford.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250731192130.3948419-7-dmukhin@ford.com>

On Thu, Jul 31, 2025 at 07:22:12PM +0000, dmkhn@proton.me wrote:
> diff --git a/docs/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.in
> index 5362fb0e9a6f..e1d012274eaf 100644
> --- a/docs/man/xl.cfg.5.pod.in
> +++ b/docs/man/xl.cfg.5.pod.in
> @@ -3032,14 +3032,17 @@ the domain was created.
>  This requires hardware compatibility with the requested version, either
>  natively or via hardware backwards compatibility support.
>  
> -=item B<vuart="uart">
> +=item B<vuart=[ "sbsa_uart", "ns16550" ]>

This syntax here would inditace that `vuart` takes a list of items. You
could write instead:

    vuart="UART"

which seems more in line with the rest of the man page. Then you can add
some thing like "with UART been one of "sbsa_uart" or "ns16550". It's
possible to also have a sublist, like the `tee` option have.


>  To enable vuart console, user must specify the following option in the
> -VM config file:
> +VM config file, e.g:
>  
> +```

This file isn't in markdown, it's in perlpod.

>  vuart = "sbsa_uart"
> +```
>  
> -Currently, only the "sbsa_uart" model is supported for ARM.
> +Currently, "sbsa_uart" (ARM) and "ns16550" (x86) are the only supported
> +UART models.
>  
>  =back
>  
> diff --git a/tools/libs/light/libxl_arm.c b/tools/libs/light/libxl_arm.c
> index 4a19a8d22bdf..f4721b24763c 100644
> --- a/tools/libs/light/libxl_arm.c
> +++ b/tools/libs/light/libxl_arm.c
> @@ -92,14 +92,26 @@ int libxl__arch_domain_prepare_config(libxl__gc *gc,
>      uint32_t virtio_mmio_irq = GUEST_VIRTIO_MMIO_SPI_FIRST;
>      int rc;
>  
> -    /*
> -     * If pl011 vuart is enabled then increment the nr_spis to allow allocation
> -     * of SPI VIRQ for pl011.
> -     */
> -    if (d_config->b_info.arch_arm.vuart == LIBXL_VUART_TYPE_SBSA_UART) {
> +    switch ( d_config->b_info.vuart )
> +    {
> +    case LIBXL_VUART_TYPE_SBSA_UART:
> +        /*
> +         * If pl011 vuart is enabled then increment the nr_spis to allow
> +         * allocation of SPI VIRQ for pl011.
> +         */
>          nr_spis += (GUEST_VPL011_SPI - 32) + 1;
>          vuart_irq = GUEST_VPL011_SPI;
>          vuart_enabled = true;
> +        break;
> +
> +    case LIBXL_VUART_TYPE_NS16550:
> +        LOG(ERROR, "unsupported UART emulator %d\n", d_config->b_info.vuart);

This seems too late in libxl.  I think checking if the config value is
correct could be done in one of the *_setdefault() like many other
config check are done. There's
libxl__arch_domain_build_info_setdefault() that could be used.

> +        abort();
> +        break;
> +
> +    case LIBXL_VUART_TYPE_UNKNOWN:
> +    default:
> +        break;
>      }
>  
>      for (i = 0; i < d_config->num_disks; i++) {
> diff --git a/tools/libs/light/libxl_types.idl b/tools/libs/light/libxl_types.idl
> index fe251649f346..fd60c2b26764 100644
> --- a/tools/libs/light/libxl_types.idl
> +++ b/tools/libs/light/libxl_types.idl
> @@ -276,6 +276,7 @@ libxl_checkpointed_stream = Enumeration("checkpointed_stream", [
>  libxl_vuart_type = Enumeration("vuart_type", [
>      (0, "unknown"),
>      (1, "sbsa_uart"),
> +    (2, "ns16550"),
>      ])
>  
>  libxl_vkb_backend = Enumeration("vkb_backend", [
> @@ -722,7 +723,6 @@ libxl_domain_build_info = Struct("domain_build_info",[
>  
>  
>      ("arch_arm", Struct(None, [("gic_version", libxl_gic_version),
> -                               ("vuart", libxl_vuart_type),

arch_arm.vuart is part of libxl's API, it can't be removed. There's some
explanation about "libxl API compatibility" at the top of "libxl.h".
But for this change, you could add `vuart` to `arch_x86`, or if you want
to add `vuart` at the root like you did, you'll need to check that both
`arch_arm.vuart` and `vuart` aren't set at the same time, and have one
of the *_setdefault() function do the work of migrating the option.

You'll need also a LIBXL_HAVE_* macro in libxl.h, probably named
LIBXL_HAVE_VUART_NS16550.

>                                 ("sve_vl", libxl_sve_type),
>                                 ("nr_spis", uint32, {'init_val': 'LIBXL_NR_SPIS_DEFAULT'}),
>                                ])),
> @@ -739,6 +739,7 @@ libxl_domain_build_info = Struct("domain_build_info",[
>  
>      ("vpmu", libxl_defbool),
>      ("trap_unmapped_accesses", libxl_defbool),
> +    ("vuart", libxl_vuart_type),
>  
>      ], dir=DIR_IN,
>         copy_deprecated_fn="libxl__domain_build_info_copy_deprecated",
> diff --git a/tools/libs/light/libxl_x86.c b/tools/libs/light/libxl_x86.c
> index 60d4e8661c93..0f039ca65a88 100644
> --- a/tools/libs/light/libxl_x86.c
> +++ b/tools/libs/light/libxl_x86.c
> @@ -2,6 +2,45 @@
>  #include "libxl_arch.h"
>  #include <xen/arch-x86/cpuid.h>
>  
> +static void libxl__arch_domain_vuart_assert(
> +    libxl__gc *gc,
> +    libxl_domain_config *d_config,
> +    struct xen_domctl_createdomain *config)
> +{
> +    LOG(ERROR, "unsupported UART emulator %d\n", d_config->b_info.vuart);
> +    abort();

The name of the function is wrong. It doens't assert anything, and just
abort...
I don't think this function is useful.

Also, don't abort() for configuration error, you need to return an error
instead.

> +}
> +
> +static void libxl__arch_domain_vuart_unsupported(
> +    libxl__gc *gc,
> +    libxl_domain_config *d_config,
> +    struct xen_domctl_createdomain *config)
> +{
> +    if ( d_config->b_info.vuart != LIBXL_VUART_TYPE_UNKNOWN )
> +        libxl__arch_domain_vuart_assert(gc, d_config, config);

This function have also a bad name, it doesn't check if a uart is
unsupported.

> +}
> +
> +static void libxl__arch_domain_vuart_enable(
> +    libxl__gc *gc,
> +    libxl_domain_config *d_config,
> +    struct xen_domctl_createdomain *config)
> +{
> +    switch ( d_config->b_info.vuart )
> +    {
> +    case LIBXL_VUART_TYPE_SBSA_UART:
> +        libxl__arch_domain_vuart_assert(gc, d_config, config);
> +        break;
> +
> +    case LIBXL_VUART_TYPE_NS16550:
> +        config->arch.emulation_flags |= XEN_X86_EMU_NS16550;
> +        break;
> +
> +    case LIBXL_VUART_TYPE_UNKNOWN:
> +    default:
> +        break;
> +    }
> +}
> +
>  int libxl__arch_domain_prepare_config(libxl__gc *gc,
>                                        libxl_domain_config *d_config,
>                                        struct xen_domctl_createdomain *config)
> @@ -9,14 +48,17 @@ int libxl__arch_domain_prepare_config(libxl__gc *gc,
>      switch(d_config->c_info.type) {
>      case LIBXL_DOMAIN_TYPE_HVM:
>          config->arch.emulation_flags = (XEN_X86_EMU_ALL & ~XEN_X86_EMU_VPCI);
> +        libxl__arch_domain_vuart_enable(gc, d_config, config);
>          if (!libxl_defbool_val(d_config->b_info.u.hvm.pirq))
>              config->arch.emulation_flags &= ~XEN_X86_EMU_USE_PIRQ;
>          break;
>      case LIBXL_DOMAIN_TYPE_PVH:
>          config->arch.emulation_flags = XEN_X86_EMU_LAPIC;
> +        libxl__arch_domain_vuart_unsupported(gc, d_config, config);
>          break;
>      case LIBXL_DOMAIN_TYPE_PV:
>          config->arch.emulation_flags = 0;
> +        libxl__arch_domain_vuart_unsupported(gc, d_config, config);
>          break;
>      default:
>          abort();

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 15:02:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 15:02:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093331.1448854 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqYhs-0008IC-2K; Mon, 25 Aug 2025 15:02:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093331.1448854; Mon, 25 Aug 2025 15: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 1uqYhr-0008I5-Vs; Mon, 25 Aug 2025 15:01:59 +0000
Received: by outflank-mailman (input) for mailman id 1093331;
 Mon, 25 Aug 2025 15:01:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=J9Dq=3F=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqYhq-0008Hz-Cy
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 15:01:58 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 719f8a0b-81c4-11f0-a32c-13f23c93f187;
 Mon, 25 Aug 2025 17:01:56 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-afcb731caaaso674047466b.0
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 08: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
 a640c23a62f3a-afe52735cc2sm539507066b.9.2025.08.25.08.01.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 08: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>
X-Inumbo-ID: 719f8a0b-81c4-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756134116; x=1756738916; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=E6BvmjzjJDtR2JS+28z200e2vqxB+N8nZljEb+w34KQ=;
        b=GDbJDEJSF0hgcl0fIe/BMkGECs83rTf9ZZ9wjOiKJmKYD7/BgK6m5Yu4/459ULI7qC
         0S10ORR1jYnvugO7RwCvM3EnYvQvrAiqM0sg3z4ieekyz6uzElv2pUcZkhFkpCB84GcY
         /XevhZGPexR7+0znlP4UOHo6VjOMa27t0GIftFvK+NMzit0imFN7BWz3ZV+yUqQOd0KH
         FVHYF7xRcjR7EddZImmvUiOy4H3p7iaTPk4N+nFy5wX6KdkwBShN0aeulxaeW8PnuvvO
         zCVV9oSdP+e5VLdDkkbunL2K1Aq+Ys9VEyXyab+TouTGvcajkkthRsG4uEpUMgHZSpxv
         NLrA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756134116; x=1756738916;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=E6BvmjzjJDtR2JS+28z200e2vqxB+N8nZljEb+w34KQ=;
        b=Gkmdj20BsaXfufWMVl7ROa51eHyL/B6O+xT27t58gFjsI+GgKSLfaXCpXj/LljtKqY
         VOT2QzmMDXPObxFpDx0fBPC3+/BJR/iw3ujZCbzLQUlb2VQm6bvHyLlilEUQ9j8jWBU0
         Rlk/vLxTFIK+JdPH1BOeHAeLOyAOabkMx6IUo8V1W2NpSSkz51Cl63smu3G0XCIWAcFC
         NCEeYCyut0lWFNWM8I/nICdvvtGnUCtBIifdrIHJM56T+WIz/mSD1zY9lwpfNeVDSELS
         Lwf0/6qTcCncz0reDS0byXJsaFKzrcXszVQqaDLWu6hcLO4b+MEfQ0aMfB5kAROjy1+7
         g53A==
X-Forwarded-Encrypted: i=1; AJvYcCV0vwHqeGgTczL/EvDlaV8YDy364txJo3tE0teCCiV/jUGdZ4WXi15XBASiq9Y830SlYicKHZ8xBAI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyYzFnqW++veEE99QkTi3ScsjYS3HZ6PdnTK2tLkEr5LzutvEca
	nxbNQb3BtjE5IfM8AD+pwvA8XW4B88dQpF8+fv64uYICqDlaOWvHPXBtfFYYTNlf0w==
X-Gm-Gg: ASbGncsikY312qnCxGqWBxPfOjCKddjBWh+4zCWNScY6SyHyf41d595t14byXiGBQgt
	hwW2HTx88wI5ADr7t9Q2JcZgGS2vzJAf4ia+JfhLJO0aq5mQpZZ5plCLjQpHk0C7MlI4Vo0WU0O
	upUqKdZcFuIe1vWhdTijs3VxwaUg53CQKx+89AucsiMEJjCsztNnS0dmnVSe3nrVMpSDr+5RG4F
	RPSlqRluSG1+H3/r1pyxZt7GJ9xWenlS/xvS9lQnBeHJlYchk1JeG094247D2qDL7NKDdV4Md8t
	diL+cN4H7kM4l1rr/fAZwHrv292h6W9iX6KpjTfKg7DdKSXhINBBsyb2y7JdS3tpxQCbNxgCMlm
	gLJVApgyzvkXJFU++6Tw6Z05bdtPUPH2N1/r02mGG2+kK+hm41zDcME6C6jUIoLNixQGayH0iz9
	3vJeqnN9s=
X-Google-Smtp-Source: AGHT+IEPuiC5sLdYudgIzrbHX9M3LZIhaD7gIQSuL8svTecCCC3dVDEl6GR6AxPCllaaU6Ays84KdA==
X-Received: by 2002:a17:907:d58f:b0:afe:54f6:6d2c with SMTP id a640c23a62f3a-afe54f6a340mr678796366b.60.1756134116360;
        Mon, 25 Aug 2025 08:01:56 -0700 (PDT)
Message-ID: <a4c5e149-828f-4ea9-83e2-79ecc8c56033@suse.com>
Date: Mon, 25 Aug 2025 17:01:55 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 06/13] xen/cpufreq: introduce new sub-hypercall to
 propagate CPPC data
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, 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: <20250822105218.3601273-1-Penny.Zheng@amd.com>
 <20250822105218.3601273-7-Penny.Zheng@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: <20250822105218.3601273-7-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.08.2025 12:52, Penny Zheng wrote:
> --- a/xen/arch/x86/x86_64/cpufreq.c
> +++ b/xen/arch/x86/x86_64/cpufreq.c
> @@ -54,3 +54,22 @@ int compat_set_px_pminfo(uint32_t acpi_id,
>  
>      return set_px_pminfo(acpi_id, xen_perf);
>  }
> +
> +int compat_set_cppc_pminfo(unsigned int acpi_id,
> +                           const struct compat_processor_cppc *cppc_data)
> +
> +{
> +    struct xen_processor_cppc *xen_cppc;
> +    unsigned long xlat_page_current;
> +
> +    xlat_malloc_init(xlat_page_current);
> +
> +    xen_cppc = xlat_malloc_array(xlat_page_current,
> +                                 struct xen_processor_cppc, 1);
> +    if ( unlikely(xen_cppc == NULL) )
> +        return -EFAULT;

I think we want to avoid repeating the earlier mistake with using a wrong
error code. It's ENOMEM or ENOSPC or some such.

> --- a/xen/drivers/acpi/pm-op.c
> +++ b/xen/drivers/acpi/pm-op.c
> @@ -91,7 +91,9 @@ static int get_cpufreq_para(struct xen_sysctl_pm_op *op)
>      pmpt = processor_pminfo[op->cpuid];
>      policy = per_cpu(cpufreq_cpu_policy, op->cpuid);
>  
> -    if ( !pmpt || !pmpt->perf.states ||
> +    if ( !pmpt ||
> +         ((pmpt->init & XEN_PX_INIT) && !pmpt->perf.states) ||
> +         ((pmpt->init & XEN_CPPC_INIT) && pmpt->perf.state_count) ||

I fear I don't understand this: In the PX case we check whether necessary
data is lacking. In the CPPC case you check that some data was provided
that we don't want to use? Why not similarly check that data we need was
provided?

> @@ -693,6 +699,120 @@ int acpi_set_pdc_bits(unsigned int acpi_id, XEN_GUEST_HANDLE(uint32) pdc)
>      return ret;
>  }
>  
> +static void print_CPPC(const struct xen_processor_cppc *cppc_data)
> +{
> +    printk("\t_CPC: highest_perf=%u, lowest_perf=%u, "
> +           "nominal_perf=%u, lowest_nonlinear_perf=%u, "
> +           "nominal_mhz=%uMHz, lowest_mhz=%uMHz\n",
> +           cppc_data->cpc.highest_perf, cppc_data->cpc.lowest_perf,
> +           cppc_data->cpc.nominal_perf, cppc_data->cpc.lowest_nonlinear_perf,
> +           cppc_data->cpc.nominal_mhz, cppc_data->cpc.lowest_mhz);
> +}
> +
> +int set_cppc_pminfo(unsigned int acpi_id,
> +                    const struct xen_processor_cppc *cppc_data)
> +{
> +    int ret = 0, cpuid;
> +    struct processor_pminfo *pm_info;
> +
> +    cpuid = get_cpu_id(acpi_id);
> +    if ( cpuid < 0 )
> +    {
> +        ret = -EINVAL;
> +        goto out;
> +    }
> +
> +    if ( cppc_data->pad[0] || cppc_data->pad[1] || cppc_data->pad[2] )
> +    {
> +        ret = -EINVAL;
> +        goto out;
> +    }
> +
> +    if ( cpufreq_verbose )
> +        printk("Set CPU%d (ACPI ID %u) CPPC state info:\n",
> +               cpuid, acpi_id);
> +
> +    pm_info = processor_pminfo[cpuid];
> +    if ( !pm_info )
> +    {
> +        pm_info = xvzalloc(struct processor_pminfo);
> +        if ( !pm_info )
> +        {
> +            ret = -ENOMEM;
> +            goto out;
> +        }
> +        processor_pminfo[cpuid] = pm_info;
> +    }
> +    pm_info->acpi_id = acpi_id;
> +    pm_info->id = cpuid;
> +    pm_info->cppc_data = *cppc_data;
> +
> +    if ( (cppc_data->flags & XEN_CPPC_PSD) &&
> +         !check_psd_pminfo(cppc_data->shared_type) )
> +    {
> +            ret = -EINVAL;
> +            goto out;

Indentation.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 15:03:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 15:03:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093345.1448865 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqYjZ-0000Wn-Hg; Mon, 25 Aug 2025 15:03:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093345.1448865; Mon, 25 Aug 2025 15:03: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 1uqYjZ-0000Wg-E2; Mon, 25 Aug 2025 15:03:45 +0000
Received: by outflank-mailman (input) for mailman id 1093345;
 Mon, 25 Aug 2025 15:03:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=J9Dq=3F=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqYjX-0000H7-Vw
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 15:03:43 +0000
Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com
 [2a00:1450:4864:20::530])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b0680799-81c4-11f0-b898-0df219b8e170;
 Mon, 25 Aug 2025 17:03:42 +0200 (CEST)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-618aea78f23so6475887a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 08:03:42 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-61c3174f806sm5171339a12.52.2025.08.25.08.03.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 08:03: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>
X-Inumbo-ID: b0680799-81c4-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756134222; x=1756739022; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=qyEoTm5YvpNJtiraHV9LxtKc7H2dI5ZUZHzdTXfgO9Y=;
        b=XVgupvcv60MPt6S+x29+P94i+WAsGIksV8dHbvIXRh3VEUrj6V9UukI8//Ics/pJfO
         oSTwk3Rd8ybohfMTuBrkyYLrhE8IFxQCrzcCVSbfCR9Aq3KIFJCyu2JTmBpKvs4lYGW8
         dH6kqFAecoej0ANVYLgJb3rLDmPpMU/oekuS66bcCYkAdsyOrBClUfdV35HKaemkAg3r
         A07uwZJElnhJUXrRG3+7mR8RQPd/atWSmDZLynUo5BZ6lIqyqtMOsJ5tLTmm5euM85b2
         N+SFd01R9XgNUxp6HZsREEIlszEXuQYBDydSR8ll1SZIE8vlpx4c6vylWKXL1wh1pnsE
         1YnA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756134222; x=1756739022;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qyEoTm5YvpNJtiraHV9LxtKc7H2dI5ZUZHzdTXfgO9Y=;
        b=oHJ1AqcjltUFMhD7ezo5xlDWJVhHCyqnFmF7v77V6Ji5q5tJkjTK2lhZz0BJdII7xR
         OVphAuSAW1uHLW7F+Mp6AW951/6KS5vNO1VysxxSA8zdP9j/HsTtFUHgVaHJKpUGMZwL
         RsVy6uT+n16cdbGWW2xGWX2Ix85m0FdxrfBo75uv4GKB82y+gAlzXTVylvBSGSLha8Kf
         iskwNeQi7HG0TlYsa8CpLhghwf/1RKKsqksf+cRmGoAij1VRRb678T7AEUVEGrWegV1A
         gFfijfTPzlc8JdIDa2cTF0RWz7c7A4Etcrt9avxntHigW1nMkKGyo04vRMhvQUUoO72y
         tgWQ==
X-Gm-Message-State: AOJu0YwVqtOSvwjBOGZ5M9B4+813dXCN7YLhGI/GVSJYwoOZEDIIfqVP
	mrXlxqr3bmdSWjHcEnGV6oDjWSzd7RmaMW17qss+oX6AP+qimo2bZUpiwp0zeO0ECg==
X-Gm-Gg: ASbGncs/6D+yKVGod8Ay5sWjouyA7qnxXt+yWciMIsI2NQ9l55+wKHZvpFSkztheUXf
	/lN0ZtrZ/Pe5MUZBJcl/4UVWe3NTpQP28gEGgAuKrW1Trk0VQMx/wm7VUc9qFZ1FffJiz1f7l2P
	IkqSa4UsHadwfnBbjCoV1wEtq1EdUdEEAjUC/w3fu2t+SyGEqYYJ2rTVV2e6jXGXOhOfDZBJYjB
	m0mkf0e/ufGbLkXuI3JAmdFIySazEzAtFiClJDj/Os7H1Yj2/2eWPUGFcnEEnLlRyKs3osVcOcm
	bt7KK7cXYYPftngPhMqCgjcqZiuQDZJAzmJmJvIH+g5ZtAJUkU2L4oCxPlnNrktSDj7H6JNIgY5
	gEx34FqPa9ysScUsqN1YRHDrIiYEWl/qIEDJ3El/X2QXHrpAZ/idlpqOEKJI5VTLoSSti3YDPVa
	MgQqDJ+Fc=
X-Google-Smtp-Source: AGHT+IGDiPfszjsNbpUWt3Nwl0VOaYS56tEVU4A324uROnvfGex11Q5R42UGHR8iWJDxgpK9+/fOJg==
X-Received: by 2002:a05:6402:35cd:b0:61c:7090:c7de with SMTP id 4fb4d7f45d1cf-61c7090d6b8mr2357674a12.13.1756134221675;
        Mon, 25 Aug 2025 08:03:41 -0700 (PDT)
Message-ID: <844bb7f7-2e56-41e0-b304-77e9e9650eb1@suse.com>
Date: Mon, 25 Aug 2025 17:03:40 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 6/8] tools/xl: enable NS16550-compatible UART emulator
 for HVM (x86)
To: Anthony PERARD <anthony@xenproject.org>, dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, 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
References: <20250731192130.3948419-1-dmukhin@ford.com>
 <20250731192130.3948419-7-dmukhin@ford.com> <aKx4FtlhAbXxtZlB@l14>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aKx4FtlhAbXxtZlB@l14>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.08.2025 16:49, Anthony PERARD wrote:
> On Thu, Jul 31, 2025 at 07:22:12PM +0000, dmkhn@proton.me wrote:
>> diff --git a/docs/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.in
>> index 5362fb0e9a6f..e1d012274eaf 100644
>> --- a/docs/man/xl.cfg.5.pod.in
>> +++ b/docs/man/xl.cfg.5.pod.in
>> @@ -3032,14 +3032,17 @@ the domain was created.
>>  This requires hardware compatibility with the requested version, either
>>  natively or via hardware backwards compatibility support.
>>  
>> -=item B<vuart="uart">
>> +=item B<vuart=[ "sbsa_uart", "ns16550" ]>
> 
> This syntax here would inditace that `vuart` takes a list of items. You
> could write instead:
> 
>     vuart="UART"
> 
> which seems more in line with the rest of the man page. Then you can add
> some thing like "with UART been one of "sbsa_uart" or "ns16550". It's
> possible to also have a sublist, like the `tee` option have.

But shouldn't the syntax already now allow for multiple items? Possibly
even multiple ones of the same kind?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 15:07:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 15:07:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093355.1448875 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqYn7-00018Y-Vb; Mon, 25 Aug 2025 15:07:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093355.1448875; Mon, 25 Aug 2025 15:07: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 1uqYn7-00018R-Sh; Mon, 25 Aug 2025 15:07:25 +0000
Received: by outflank-mailman (input) for mailman id 1093355;
 Mon, 25 Aug 2025 15:07:25 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=J9Dq=3F=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqYn7-00018K-0Y
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 15:07:25 +0000
Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com
 [2a00:1450:4864:20::62f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3431bd9b-81c5-11f0-a32c-13f23c93f187;
 Mon, 25 Aug 2025 17:07:23 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-afcb731caaaso675233266b.0
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 08:07:23 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afe8725112bsm164706766b.36.2025.08.25.08.07.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 08:07:22 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3431bd9b-81c5-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756134443; x=1756739243; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=XanhjzqMfpHTUvWOEzZsq3gEhwn6iVPBu858vWV/9XA=;
        b=aZOWc66rvFZzpcMsaOcz6G4oiF9ZY8JD8k1VzBSi1V5Ywz30iNNYhyZs9qgNpUYddB
         2DvpjqHzgo5YjnrNHuuXf6+jzbp+SrNVc23R4D+Y4i3f0LWe/x3GCt4nRdcTcFmxmOoy
         2Qoag18TKZYr4gESm96sZnOwyTfOHneUDCaw9oxm2XhWL1U2YrYgqssTDThWhWNUlnQs
         FB4F/GUuI5cej0ebGLvkIJmyLtOnRHzZgRRQZkY4oq9J197Nps1fEvV+mH5mCvc0LC0y
         luphxOV0hXkR7oYRXZOCmia5AS26YNS5Xi7ALRl/tSV1zDezdVjCNhBZAbt5M5FkhwHu
         CGQg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756134443; x=1756739243;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XanhjzqMfpHTUvWOEzZsq3gEhwn6iVPBu858vWV/9XA=;
        b=EdFWlsX4k4a1szi3vn6ccwTpgFEhNRPrwA1U98xSj4/dOKKGugMqdKAhhmX4RYlIAv
         bbjRRFW+83fYkJqkFBdP72n4fx7D8Z2vOqfikL6R5MYMKsWllTquDT+shckb3h5v72K5
         HCxc4LgHNETL15b1+Az1e8IeCFYfjXA0QIN7IdqXvgctmwVTzFt2RfGc1GXzcFRGzbue
         7FQaGu8FeAq7lw/2RJisCoQKmGK0tDqjI0fBiiZH3g2zQ8HWIuMTcwSjoF/iGo2tsbV2
         6ve947uzYPCDPJ5d5YeaZ+cL1Jsw1D018lsVeJ5arpzE9yptrwXQHDTlrkumoTNnK9RE
         BkFw==
X-Forwarded-Encrypted: i=1; AJvYcCXcRC9DfgaHS3+KPCiK8/9tLhD9axy4CyJnotIMR/Lo4E44B8CgVkndPwJpMwFTIEKNP8181yR3rEs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxJLUMdqvn8cBxm9XcfJ0aV8XYvd9BIoBNehbnrfY2wbW+bLLQ4
	ZSK9vk64TqdegXnUh98auqbk6TbwgwvwaBfQbvgBLsm4TbCCkN/BUk6YonnhTBGpRw==
X-Gm-Gg: ASbGncu1ufCb9wA8vxbQwUWMgV2KHgtAJpQiPb3/y5fjgpIuZAnlEDWG6txTdxJV7sI
	stB/+R+moaZQYtFWIp3YU6nipY5LTRPulXRN37XZA4YJnJDDhLBWjOVKHElhYJkq+tFUh8Yaw9p
	sOFZgHz1C1l6+WU2CWBVN3H2vutnCGm4gVoqGsL9MLj5fpubK5jrj2CUHUn5/Rszs9mWVVOH+vb
	KYXcQ0DQgqV0+F+/cMA7hD0ru1ctkoVuhdYw16lFIZsUwFjXS2bdc/VZcK8Pn2lbIwaMFcMaeSK
	YRseN4eWI3X1H3Y7pjBTH3mgZRIO9xk1KA0bnHl0PemstpffJFzH1vHCuEWJOQs87GmNsRYDmRR
	r+jhgXY68yYMFy3tRLl/z1uHWqwlG/k4RVYLG11LHoFRBMS4papXInI+/qcWPvgvPK97dGrFPz9
	u2Lxj0b7M=
X-Google-Smtp-Source: AGHT+IF1kwDZdzUJ+uA8hid8GGFPjWsPA2VRUNY7F8cdnaiX3WwSC8vNpG0ViZnSI9QYQq5tetqctg==
X-Received: by 2002:a17:906:478d:b0:afc:d5a3:90c1 with SMTP id a640c23a62f3a-afe29693f42mr1079024466b.55.1756134442749;
        Mon, 25 Aug 2025 08:07:22 -0700 (PDT)
Message-ID: <0fe3f9e4-9984-478b-ac81-8c237e05a34c@suse.com>
Date: Mon, 25 Aug 2025 17:07:21 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 07/13] xen/cpufreq: introduce "cpufreq=amd-cppc" xen
 cmdline and amd-cppc driver
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.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: <20250822105218.3601273-1-Penny.Zheng@amd.com>
 <20250822105218.3601273-8-Penny.Zheng@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: <20250822105218.3601273-8-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.08.2025 12:52, Penny Zheng wrote:
> --- a/xen/arch/x86/acpi/cpufreq/cpufreq.c
> +++ b/xen/arch/x86/acpi/cpufreq/cpufreq.c
> @@ -131,12 +131,13 @@ static int __init cf_check cpufreq_driver_init(void)
>  
>      if ( cpufreq_controller == FREQCTL_xen )
>      {
> +        unsigned int i;
>          ret = -ENOENT;

Blank line between declaration(s) and statement(s) please.

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

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 15:13:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 15:13:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093368.1448885 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqYsq-0002pt-Ix; Mon, 25 Aug 2025 15:13:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093368.1448885; Mon, 25 Aug 2025 15:13: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 1uqYsq-0002pm-FE; Mon, 25 Aug 2025 15:13:20 +0000
Received: by outflank-mailman (input) for mailman id 1093368;
 Mon, 25 Aug 2025 15:13:19 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1uqYsp-0002pf-EE
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 15:13:19 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1uqYsn-005vHL-1F;
 Mon, 25 Aug 2025 15:13:17 +0000
Received: from [2a01:cb15:80df:da00:4c1a:a750:6210:2b8] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1uqYsn-000a4a-0r;
 Mon, 25 Aug 2025 15:13: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date;
	bh=lHN57CjYrGfvukxDYWrQmn0ZbJALxAN5jlleJlLHQx8=; b=r67UTa8vnpwxTHglyaTuj/JFQZ
	jTDnL7E+piWcrVssbYrZ+6LdYeB9CJazmW434IKM9rJoaDR4AifIN/UWfZRrcJMtaq85yhicgchiW
	cS1tmNLnoRGYvtzL/9ueQWJ4ga6ut/t2znvRa4pk7DNuFvYhXTrr40TWwbUvmr1HzGq4=;
Date: Mon, 25 Aug 2025 17:13:14 +0200
From: Anthony PERARD <anthony@xenproject.org>
To: Jan Beulich <jbeulich@suse.com>
Cc: dmkhn@proton.me, xen-devel@lists.xenproject.org,
	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
Subject: Re: [PATCH v4 6/8] tools/xl: enable NS16550-compatible UART emulator
 for HVM (x86)
Message-ID: <aKx9ihn4i0LCq0Bn@l14>
References: <20250731192130.3948419-1-dmukhin@ford.com>
 <20250731192130.3948419-7-dmukhin@ford.com>
 <aKx4FtlhAbXxtZlB@l14>
 <844bb7f7-2e56-41e0-b304-77e9e9650eb1@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <844bb7f7-2e56-41e0-b304-77e9e9650eb1@suse.com>

On Mon, Aug 25, 2025 at 05:03:40PM +0200, Jan Beulich wrote:
> On 25.08.2025 16:49, Anthony PERARD wrote:
> > On Thu, Jul 31, 2025 at 07:22:12PM +0000, dmkhn@proton.me wrote:
> >> -=item B<vuart="uart">
> >> +=item B<vuart=[ "sbsa_uart", "ns16550" ]>
> > 
> > This syntax here would inditace that `vuart` takes a list of items. You
> > could write instead:
> > 
> >     vuart="UART"
> > 
> > which seems more in line with the rest of the man page. Then you can add
> > some thing like "with UART been one of "sbsa_uart" or "ns16550". It's
> > possible to also have a sublist, like the `tee` option have.
> 
> But shouldn't the syntax already now allow for multiple items? Possibly
> even multiple ones of the same kind?

How does `vuart="uart"` allow for multiple items?

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 15:14:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 15:14:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093378.1448895 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqYuC-0003LT-T1; Mon, 25 Aug 2025 15:14:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093378.1448895; Mon, 25 Aug 2025 15:14: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 1uqYuC-0003LM-Po; Mon, 25 Aug 2025 15:14:44 +0000
Received: by outflank-mailman (input) for mailman id 1093378;
 Mon, 25 Aug 2025 15:14:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=J9Dq=3F=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqYuB-0003LE-LL
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 15:14:43 +0000
Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com
 [2a00:1450:4864:20::530])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 36f585b9-81c6-11f0-a32c-13f23c93f187;
 Mon, 25 Aug 2025 17:14:37 +0200 (CEST)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-6188b5ad4f0so6280320a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 08:14: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
 4fb4d7f45d1cf-61c3172efb6sm5309605a12.42.2025.08.25.08.14.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 08:14:36 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 36f585b9-81c6-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756134877; x=1756739677; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=K1ZaOG2tCwR76o19TFWRW8f8chzhrElxzF6DDBA//GE=;
        b=MVqOYdeBIzay+jT/RMnDi62JxUipIIxSOyO5yd7F1znLPzgd3ztIU54SpUyMCVbnAc
         itOBJqThI+MEfyvAh3w2vLZegsNevCY7W/q4sr9zYcsaXefmRDWP7OMdEgQnwV9g91Fv
         Y70KJpJhiHrld4CfkwnTz0xJ3LI7PgaxqQmSrK0qdpoTR9Ew7JykS4HAj3Logj4KXEMP
         fNHOLfwl5gmpAbO3Hqc46a+OLK+X3HrHcm8rRs5aHM6kMNDOi/fu2i9XAcgFN6U5gkDk
         d5atqRNs7R48+q04His4oHTg3naHVvRqftuA9IZcvXxBXtZfktT3xn3vYIDtWlc2K+j5
         nMnA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756134877; x=1756739677;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=K1ZaOG2tCwR76o19TFWRW8f8chzhrElxzF6DDBA//GE=;
        b=cRMO80RtbBfegU50YLc0FpiyYaeQKEZKeGIGqJQA3T9oFuflT0R9OzHDNtfBbyUcT7
         9btOPZllT653LIj74owMNRJKYIAWWgJs3keFMZ3uxxu+ltz6azojCxpLqj39e5KMtzMH
         DFnpIgzTxY7oyLlqkrg2vSpCfWOBQ7b5m3zBh4W5/USCQpVyJZKbVZ2pj5MI0zsKUl+N
         J09C3Fqkx9U+yQKbu4rGyLMmNhskxFP2jxwVzOEUmjG+z2GGiVZzZqxi5Cb405Y9OiaD
         0fuyZwpBnZR4yxbZVPfcstqWeVdAmP0LXbakCqG9Qg4ZTCwIzBL1lYCplJT48tnXqfir
         ptQg==
X-Forwarded-Encrypted: i=1; AJvYcCXhcMry4Nw32byXRNkZBghabsQMp2Hqpy11T721kOUCbFWnANo9g0UKhIDnS/FN+c0qHKCLxuhNpeI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywsvwt3jp9jmTfNLFg+HG7jDlLT5iAgdfD3sJdfDHj7+6bN4C1i
	plO3wJitEYXsXVbO4le4SGhGI7YRPFUU5NPfoH+ltGdrXG+tc/3n3NSr99l20b3Qfw==
X-Gm-Gg: ASbGncvjswryFbzzQP4EmzmnFYzK6WUJiyOmWz7eKBtnSnUtwkEndPC3keGpMg9IWHx
	cQ85DdeGkZBnJRkVDjdBXF3mGXUjztN/K9rkq3YDSGcuhwDk+KnLPbt3z0xvrlvvzj2uVTYIdzr
	sm1WAczfzKBij3PjTrY5nYquR9x6pJ+cHn4HIMGjnFRO4VSmMdUhMdfupmC6hEbMzxTb5ovA20y
	YEywsQLJwUJ9wRerB05DBv/tjZDNzZwBdM9kFDd4Jx3MBWNFxV50I5pJ4b63oQPJiJx7J57wLet
	HLk1lIzwv3dfSqoRme6qrlXKApjIzLOknprxJyn5CegsZ7COnGMBh7xhWA7WqeYdyX9c/5PS3g8
	TfWw4Fh7UWbchUrE4K7TlCniYOz4WOPzZo2Gfjgg9tjKv4bUkOz9u8T+lum8hwz20m/iQiiNyA+
	PVPGBpGhKOTO5W3hDPKQ==
X-Google-Smtp-Source: AGHT+IEkhFkMeytnu/q7cH5uAVkpswua5bloWVLyHH0WMVRtSIvFGmZ2Xf/w29ihXVsFvPUfm5LKNA==
X-Received: by 2002:a05:6402:274b:b0:61c:5b44:b277 with SMTP id 4fb4d7f45d1cf-61c5b44ba38mr4315301a12.13.1756134876973;
        Mon, 25 Aug 2025 08:14:36 -0700 (PDT)
Message-ID: <53420012-589a-4776-b456-f3278fabd983@suse.com>
Date: Mon, 25 Aug 2025 17:14:35 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 08/13] xen/cpufreq: implement amd-cppc driver for CPPC
 in passive mode
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, 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: <20250822105218.3601273-1-Penny.Zheng@amd.com>
 <20250822105218.3601273-9-Penny.Zheng@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: <20250822105218.3601273-9-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.08.2025 12:52, Penny Zheng wrote:
> @@ -50,10 +141,335 @@ int __init amd_cppc_cmdline_parse(const char *s, const char *e)
>      return 0;
>  }
>  
> +/*
> + * If CPPC lowest_freq and nominal_freq registers are exposed then we can
> + * use them to convert perf to freq and vice versa. The conversion is
> + * extrapolated as an linear function passing by the 2 points:
> + *  - (Low perf, Low freq)
> + *  - (Nominal perf, Nominal freq)
> + * Parameter freq is always in kHz.
> + */
> +static int amd_cppc_khz_to_perf(const struct amd_cppc_drv_data *data,
> +                                unsigned int freq, uint8_t *perf)
> +{
> +    const struct xen_processor_cppc *cppc_data = data->cppc_data;
> +    unsigned int mul, div;
> +    int offset = 0, res;
> +
> +    if ( cppc_data->cpc.lowest_mhz &&
> +         data->caps.nominal_perf > data->caps.lowest_perf &&
> +         cppc_data->cpc.nominal_mhz > cppc_data->cpc.lowest_mhz )
> +    {
> +        mul = data->caps.nominal_perf - data->caps.lowest_perf;
> +        div = cppc_data->cpc.nominal_mhz - cppc_data->cpc.lowest_mhz;
> +
> +        /*
> +         * We don't need to convert to kHz for computing offset and can
> +         * directly use nominal_mhz and lowest_mhz as the division
> +         * will remove the frequency unit.
> +         */
> +        offset = data->caps.nominal_perf -
> +                 (mul * cppc_data->cpc.nominal_mhz) / div;
> +    }
> +    else
> +    {
> +        /* Read Processor Max Speed(MHz) as anchor point */
> +        mul = data->caps.highest_perf;
> +        div = this_cpu(pxfreq_mhz);
> +        if ( !div )
> +            return -EOPNOTSUPP;
> +    }
> +
> +    res = offset + (mul * freq) / (div * 1000);
> +    if ( res > UINT8_MAX )
> +    {
> +        printk_once(XENLOG_WARNING
> +                    "Perf value exceeds maximum value 255: %d\n", res);
> +        *perf = UINT8_MAX;
> +        return 0;
> +    }
> +    if ( res <= 0 )
> +    {
> +        printk_once(XENLOG_WARNING
> +                    "Perf value smaller than minimum value 0: %d\n", res);

The message text doesn't fit the if() condition anymore. Perhaps simply
omit the "0" from the text? Then:
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 15:15:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 15:15:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093388.1448905 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqYvK-0003rO-5b; Mon, 25 Aug 2025 15:15:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093388.1448905; Mon, 25 Aug 2025 15:15:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqYvK-0003rH-2T; Mon, 25 Aug 2025 15:15:54 +0000
Received: by outflank-mailman (input) for mailman id 1093388;
 Mon, 25 Aug 2025 15:15:52 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kKY8=3F=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1uqYvI-0003LE-Nx
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 15:15:52 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 635dfb38-81c6-11f0-a32c-13f23c93f187;
 Mon, 25 Aug 2025 17:15:52 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-45a1b0cbbbaso38817715e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 08:15:52 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-45b5757378dsm112582025e9.15.2025.08.25.08.15.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 25 Aug 2025 08:15: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>
X-Inumbo-ID: 635dfb38-81c6-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756134951; x=1756739751; 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=6E7Pyj2pJIETl4FIfSSIY0ByiuSKLDdjeIULhdWxeK4=;
        b=iiLUh9x9satBj937pYUDbtoM9gUuRAyxPksbDSyEa0BqWKmcBeoYbpMLJHK6hTV4Pe
         Kf/cZPKr8pMOFJpptlJNSW0omR9/dKgRYSzJOPhNQzmQxZY7ZjBzXu9TiQo7x/vIhq5G
         Jqz9/m5KyjmErxRtcS57r40Vh+lnT1OZxHh2k=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756134951; x=1756739751;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=6E7Pyj2pJIETl4FIfSSIY0ByiuSKLDdjeIULhdWxeK4=;
        b=nzAU1aRIny1Rw7r/SU1Nk21EaRg8YuQ3K5hxY67NkdVSn0A59wWvbQHs0bscJA8sQ1
         XnVUqgK8HvY6WiNlr+n3SccRpLMQBg037Muy8AOpHHpeMDB0t13I0jZQpZuiygxQWXu8
         2I5MaboAdt4mqg+CeipviUfs5aY20WOe7cDeJH/5aweg14iIgGWt3sfquIi6f/kaVxqD
         S8BNy2lgcCI5qPTLwA6euwRiGH5dfTaeOLrr9GvoIOzKXr+srtpES0S120Rn2LJPlhe1
         8bQO/r3sWXMfsAppluNHNUb3Xmo0FoOJRWMiAQRGaFkZE+KIyJK0a7cApSon+RRQv78k
         GLNg==
X-Gm-Message-State: AOJu0YyMuK2m4IWFzxn6xAltv/LiTQriyTgaPmQYFdsGOhVvjq9Y5z0n
	fKjZSFcJi2cmuu7GTo/BrV8eWtjFbbyUNkM/G43hUB84h/EamKDOnXylXWpiEuJbkuAIPb6VMFP
	+pdwE
X-Gm-Gg: ASbGnct5RM15EDjDmjPbBz+dex3o69odVPxS/LLWl7QRcmnPeeUcq8bWhJTobpeSI2M
	all6rDLGU8u15PiPNuoJzE04RstzGCFUh4rY4/siLrfaDEii/8/5cJAnNkqIgD8At4K9ZIt0AUl
	qmOqO1+KTuRaVaomowalZ4VCqhPzHEV9qtRoyv6SYcbyYEmyTMs8AA20OTdWafeIzDZYjm5uQe6
	EJSxRRFD1upmptZuukLVOYQgi/xP5Dmjm+VS62IOuXbfd2ONW1IzG6GAJFJsrPYDo3CeYn5VwZ+
	iHA0fG+20AIGM9QY/Mm7dUW7G+OXUWvbmDofAHFVMyu34/Ta8srlX9d0dk6K/x1l4Crt+Yh+T0m
	0Sp1sTfB9zwzOraJgUJ0/kprhMi4tkdEyoE/Z9iHf20djWSV0qKpaSwjJyGJXQC3CIQ==
X-Google-Smtp-Source: AGHT+IGyljq+aShOq1kAaCqCRT1hq0q1SXV2/6wNueXRt96IUKzaF7yYJleAb28/OOt0jc7HDdTGrQ==
X-Received: by 2002:a05:600c:4511:b0:456:10a8:ff7 with SMTP id 5b1f17b1804b1-45b517dd3admr99264965e9.28.1756134950884;
        Mon, 25 Aug 2025 08:15:50 -0700 (PDT)
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>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH] x86/suspend: unconditionally raise a timer softirq on resume
Date: Mon, 25 Aug 2025 17:15:15 +0200
Message-ID: <20250825151515.39177-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.49.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The current code to restore the timer state on resume is incomplete.  While
the local APIC Initial Count Register is saved and restored across
suspension (even if possibly no longer accurate since it's not adjusted to
account for the time spent in suspension), the TSC deadline MSR is not
saved and restored, hence hosts using the TSC deadline timer will likely
get stuck when resuming from suspension.

The lack of restoring of the TSC deadline MSR was mitigated by the raising
of a timer softirq in mwait_idle_with_hints() if the timer had expired,
previous to commit 3faf0866a33070b926ab78e6298290403f85e76c, which removed
that logic.

This patch fixes the usage of the TSC deadline timer with suspension, by
unconditionally raising a timer softirq on resume, that will take care of
rearming the hardware timer.  Given that a timer softirq will be
unconditionally risen, there's no need to save and restore the APIC Initial
Count Register anymore either.

Note that secondary processors don't need this special treatment when
resuming, since they are offlined before suspension and brought back up
during resume, the first timer that gets setup will trigger a timer softirq
unconditionally, for example from sched_migrate_timers() that gets called
for each secondary processor.

Reported-by: Marek Marczykowski-GÃ³recki <marmarek@invisiblethingslab.com>
Fixes: fd1291a826e1 ('X86: Prefer TSC-deadline timer in Xen')
Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/acpi/power.c | 2 ++
 xen/arch/x86/apic.c       | 3 ---
 2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/acpi/power.c b/xen/arch/x86/acpi/power.c
index 2ac162c997fe..27d672ad5dbb 100644
--- a/xen/arch/x86/acpi/power.c
+++ b/xen/arch/x86/acpi/power.c
@@ -19,6 +19,7 @@
 #include <xen/iommu.h>
 #include <xen/param.h>
 #include <xen/sched.h>
+#include <xen/softirq.h>
 #include <xen/spinlock.h>
 #include <xen/watchdog.h>
 
@@ -310,6 +311,7 @@ static int enter_state(u32 state)
     thaw_domains();
     system_state = SYS_STATE_active;
     spin_unlock(&pm_lock);
+    raise_softirq(TIMER_SOFTIRQ);
     return error;
 }
 
diff --git a/xen/arch/x86/apic.c b/xen/arch/x86/apic.c
index cac5ba39e615..e3a2b84f1aae 100644
--- a/xen/arch/x86/apic.c
+++ b/xen/arch/x86/apic.c
@@ -65,7 +65,6 @@ static struct {
     unsigned int apic_lvt0;
     unsigned int apic_lvt1;
     unsigned int apic_lvterr;
-    unsigned int apic_tmict;
     unsigned int apic_tdcr;
     unsigned int apic_thmr;
 } apic_pm_state;
@@ -658,7 +657,6 @@ int lapic_suspend(void)
     apic_pm_state.apic_lvt0 = apic_read(APIC_LVT0);
     apic_pm_state.apic_lvt1 = apic_read(APIC_LVT1);
     apic_pm_state.apic_lvterr = apic_read(APIC_LVTERR);
-    apic_pm_state.apic_tmict = apic_read(APIC_TMICT);
     apic_pm_state.apic_tdcr = apic_read(APIC_TDCR);
     if (maxlvt >= 5)
         apic_pm_state.apic_thmr = apic_read(APIC_LVTTHMR);
@@ -718,7 +716,6 @@ int lapic_resume(void)
         apic_write(APIC_LVTPC, apic_pm_state.apic_lvtpc);
     apic_write(APIC_LVTT, apic_pm_state.apic_lvtt);
     apic_write(APIC_TDCR, apic_pm_state.apic_tdcr);
-    apic_write(APIC_TMICT, apic_pm_state.apic_tmict);
     apic_write(APIC_ESR, 0);
     apic_read(APIC_ESR);
     apic_write(APIC_LVTERR, apic_pm_state.apic_lvterr);
-- 
2.49.0



From xen-devel-bounces@lists.xenproject.org Mon Aug 25 15:19:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 15:19:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093403.1448915 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqYzA-0004VR-P3; Mon, 25 Aug 2025 15:19:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093403.1448915; Mon, 25 Aug 2025 15:19: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 1uqYzA-0004VK-Kd; Mon, 25 Aug 2025 15:19:52 +0000
Received: by outflank-mailman (input) for mailman id 1093403;
 Mon, 25 Aug 2025 15:19:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=J9Dq=3F=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqYz9-0004VE-D1
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 15:19:51 +0000
Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com
 [2a00:1450:4864:20::632])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id effd5f4a-81c6-11f0-b898-0df219b8e170;
 Mon, 25 Aug 2025 17:19:48 +0200 (CEST)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-afcb7a16441so719096866b.2
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 08:19: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
 a640c23a62f3a-afe92b3dc53sm79672266b.3.2025.08.25.08.19.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 08:19: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>
X-Inumbo-ID: effd5f4a-81c6-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756135187; x=1756739987; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=YO829Vn1s4qSmitLj09kO/AyZb/4ej+AO7PNoakxPig=;
        b=VXNeruVNwgoa5iPQjQwDfisRF/FmGIgPMC1mzRY92LCNL+sE8LhKuiXFDOJLYMgfzy
         lV0tu8vnYK4+GYgMOoQViCvXklUkW0tIKOBdGpEeDbLpeXS7iUTeDE0nBKoOqeCcoTbX
         OzPjonxga/Zzhu3fwjZgBEliFa9IeWU/59X6XJvoVnZ0EPsEAXSbc/GfS38uyFtoUz5b
         x24UBiPLQuyDeuCFMRd0FRv6N0QwR393lVIyLXhlG+Ldka/22Ga6xAkvUpv4FuFehFF4
         k3tAeRHm2gvqxik+BRt1liUs+yJ2WllHZxGy1O6gIhXgu6glwEYPFB6Hs1bNbRMuh0cw
         kk8Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756135187; x=1756739987;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YO829Vn1s4qSmitLj09kO/AyZb/4ej+AO7PNoakxPig=;
        b=orx/27cyjYy9oIWzidGhhWIt2O1ztU8U9GLk5K6fFIbUCtsyJ++hLlAK6eyRuFR/4l
         Wg0kqgpCXd8lo5wwPTI4yF9oWZQLl7yMwlRz66wByYt2Ni24z7xwyHt4W9Fpnx5zOgeR
         qj8kaDLP97Wd1s4ibuVGHbDjukXsGmNRsU+/6NUszKEs2dH81JDxuMppHBJ0VZf+q0Xp
         sHlxEG6NT/zWiQYxpp0BQNfVpDanmMF5dPEGXjdUHPD1Ci2oyXBGBX7HocsNXeixYG2L
         QPxPZ1MappWL5ec3Z+kuyIWQTNz93w7WztEh2Npi05eHXI4kAPmExWmTLXIylHyuNwex
         YWAA==
X-Forwarded-Encrypted: i=1; AJvYcCX//2o5Ihv1tohSVqJNd8WrWby/ezR0HHAGbojKASvDW2lIBTcuhGl0k17R7CL5744YmpGG9YRTquk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzuRsnsz7+qjrEwjMbiW7dTxzAZaqQsgGdx0TV+2C7zmPQXXn/p
	qGH1mpjzgm3V+S8rcpSVdYdZB0ZHsJE0XILHbR1So8/31TlPRpDlYNOJ20F1ei51uQ==
X-Gm-Gg: ASbGnctREAsudDh8f6qQODNOZgP5+n3v72Wwdj7a+9PSfhYIaLSDLmUIlZCIC69bNE7
	uUgzIqn3prWQVrTsoblZBAkaHYIgTTuNJDhik4pVON2NqCP9fr0ugrOALcwDyf0JC5KlpRdQlG8
	F//Wf4qut8nBEDvn+PNkQVXAH8EL6x3AplorEtsTBzJhMEsEVZRENDBRCIQwxKq/cYtru0YPFsx
	BeFBQbjtBlzyw4MJbqrZP55Z1wa9eqtbWlLYNl7mGTPTONUouNRAtjCryth79OmQbAdjvdA53G2
	LsV5+q+Skozn4rKLSjOC02jvITsbJ9BAybedthmmqHzU6Mh21hok1S/15nzLuS/ZvfgBn5UlfGD
	+HQvykwrhMy2mfvvZhh6S+fXIM/c2dSaNov2uDs7py1hD+4CMd7+cvd0I5jNBRYS/I6NjN+4BRa
	4TBaJqKX0=
X-Google-Smtp-Source: AGHT+IFagFXrYDHwjg6LkrZzaV2c6wJZbX45MZRyP16R1sOrLoTg7WDNRGu7bk3VIrf3819vEcqTWg==
X-Received: by 2002:a17:907:980b:b0:af8:fa64:917f with SMTP id a640c23a62f3a-afe29600152mr1117100966b.48.1756135187355;
        Mon, 25 Aug 2025 08:19:47 -0700 (PDT)
Message-ID: <525d61cf-2510-4990-b575-93e1f77315f0@suse.com>
Date: Mon, 25 Aug 2025 17:19:46 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 09/13] xen/cpufreq: implement amd-cppc-epp driver for
 CPPC in active mode
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.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: <20250822105218.3601273-1-Penny.Zheng@amd.com>
 <20250822105218.3601273-10-Penny.Zheng@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: <20250822105218.3601273-10-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.08.2025 12:52, Penny Zheng wrote:
> @@ -270,6 +288,10 @@ static void amd_cppc_write_request(unsigned int cpu, uint8_t min_perf,
>  
>      data->req.min_perf = min_perf;
>      data->req.max_perf = max_perf;
> +#ifndef NDEBUG
> +    if ( opt_active_mode )
> +        ASSERT(!des_perf);
> +#endif

Simply

    ASSERT(!opt_active_mode || !des_perf);

(without any #ifndef)? Then once again:
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 15:24:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 15:24:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093419.1448941 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqZ3B-0006qq-Ke; Mon, 25 Aug 2025 15:24:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093419.1448941; Mon, 25 Aug 2025 15:24: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 1uqZ3B-0006qj-GQ; Mon, 25 Aug 2025 15:24:01 +0000
Received: by outflank-mailman (input) for mailman id 1093419;
 Mon, 25 Aug 2025 15:24:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=J9Dq=3F=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqZ3A-0006k2-BP
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 15:24:00 +0000
Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com
 [2a00:1450:4864:20::52b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 85f9662d-81c7-11f0-a32c-13f23c93f187;
 Mon, 25 Aug 2025 17:23:59 +0200 (CEST)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-61a8c134609so5593425a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 08:23: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
 4fb4d7f45d1cf-61c312aecdbsm5184422a12.20.2025.08.25.08.23.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 08:23: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>
X-Inumbo-ID: 85f9662d-81c7-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756135439; x=1756740239; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=c9LJCtAqBNDA1jku0euT32N89xyi1sVZi7wQt6DNJo0=;
        b=ax0AvrWJf6xlEdzmpFVdaPrRQzc8h3SNJUfsyn6xecaly7WOUSxHbvGSKdwtxTpPxL
         VUxF01UqRUCY29G49O5qEX+w7Qzt27VGGTP2AYrgwIuLCJ/EIcXnTElaGQletiPjK4Vc
         5UMpyHnoP5PiIRs/0Wu8f87ZLnXE+c6Z2HU7tFtvPv+9euCq9opijoGdEQNfSR4OfXEd
         BaxCcL5nxQbAATWg00ton623/mBJXUtIwcjCUXu2A5uuftetwjZ+0Mi2pAvVZtV0lfBk
         Bel1BOocamjSAAF1BWl+7tGK5be2mKGBw6i5kX7uAcy8vhGMGgY+0j5Tbi7Ss4lg+P+9
         QdrQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756135439; x=1756740239;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=c9LJCtAqBNDA1jku0euT32N89xyi1sVZi7wQt6DNJo0=;
        b=OcHs75kvUSf3yfvqKRUB+68c+/gPToieGy011t9jF/5JUslJVmRsPSVGl4LchgyHpi
         WdeLMxkCnWULAMg0nAFl59y2VB10Cj+AueRHVFx3VpzLjHvWQJP1LWPpxAOFY7Wmuz/h
         YJo/34YIIkGujIqzuxiOOApaqMbC1/wlmAp0fNYllJCZ0BTJRG8T+Szi61qvvL9exN02
         ws8zkSKWNAtMN5/lhpZ5o7U4gxqJdHUoKFJOeaaMJa7dep3vt9LKk4nA5dYvEur/+vlO
         eV6DR1hQZa2rz8m+ElZNhEluChERxCVPASVBAuS9t5iS+H5kPuTmvon6jJR5Tty2gESz
         mygw==
X-Forwarded-Encrypted: i=1; AJvYcCUKnTcDv/bskJMsaZwVmb+FrEQpdtw/v8rlMzBv/PxKHjr5XNtlVo7POWFPfhShKKagqIkiiaTw3Yk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzgDtL2jBqy+szWuubWJFoz/MlpCLL3cRGQ0uVtnlwezqgcAVJN
	9iL4TUDETDEk28N7MosHAbWkhOCpBKf7ESh4FndHL7E4tRx2p1YYanvJ8cRZhXjD5U+TFy8nzNX
	HvQw=
X-Gm-Gg: ASbGncsVEFBf0UcunMdKYyGlswHQlAvNd1/S9FoTkuRVmL9swnElphgDQqtBNLui73c
	dJF9CShDHE5wJkhzaQX7YpNLev6fbNPOHadUTVtn1L6+5UKMdbszVI1UQkQ/AuNMnJa/iLbuWDl
	3SmRaWryHetd48xVhrRfbO4QrIvB5ell2Qg+QC2Fdic22MEgDu7elj2pT1lEwb/Ap/RmpCb830c
	LVOvbilW7whgX/Foh88hdODrsYCUWRlMA9A1BcJ+nz1tMyGxlgDqfICcoFtGZmh1//15BTYskp9
	DRCnp8yTSYiozsCkq1Emklbb3BVHJA2eDlAbNFFbLeqv+dJ0hPvEjSc5kGJVLHDSOTrrNm3IsPN
	8RgYBoypS/u0y8KYHnfJfelyRnwoL5xM4feRZIUUwtED1IoCoqveFRZ0T80tHMKKDsmjrtrDscD
	CdvA4p7hM=
X-Google-Smtp-Source: AGHT+IGtQW+pOtI2/Bc96XftUIh7geAz2XWSZPldN48U6MqtAazhFt4wIGi+RG4AqokpCYg0/DdrkQ==
X-Received: by 2002:a05:6402:1d4b:b0:618:6a75:2d76 with SMTP id 4fb4d7f45d1cf-61c1b21df4dmr8883432a12.0.1756135439006;
        Mon, 25 Aug 2025 08:23:59 -0700 (PDT)
Message-ID: <385daefe-78bd-4c22-826a-836b61d12026@suse.com>
Date: Mon, 25 Aug 2025 17:23:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 10/13] xen/cpufreq: get performance policy from
 governor set via xenpm
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, xen-devel@lists.xenproject.org
References: <20250822105218.3601273-1-Penny.Zheng@amd.com>
 <20250822105218.3601273-11-Penny.Zheng@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: <20250822105218.3601273-11-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.08.2025 12:52, Penny Zheng wrote:
> Even if Xen governor is not used in amd-cppc active mode, we could
> somehow deduce which performance policy (CPUFREQ_POLICY_xxx) user wants to
> apply through which governor they choose, such as:
> If user chooses performance governor, they want maximum performance, then
> the policy shall be CPUFREQ_POLICY_PERFORMANCE
> If user chooses powersave governor, they want the least power consumption,
> then the policy shall be CPUFREQ_POLICY_POWERSAVE
> Function cpufreq_policy_from_governor() is responsible for above transition,
> and it shall be also effective when users setting new governor through xenpm.
> 
> userspace are forbidden choices, and if users specify such options,

Odd use of plural here, when only one bad variant is named.

> --- a/xen/drivers/acpi/pm-op.c
> +++ b/xen/drivers/acpi/pm-op.c
> @@ -206,6 +206,14 @@ static int set_cpufreq_gov(struct xen_sysctl_pm_op *op)
>      if ( new_policy.governor == NULL )
>          return -EINVAL;
>  
> +    new_policy.policy = cpufreq_policy_from_governor(new_policy.governor);
> +    if ( new_policy.policy == CPUFREQ_POLICY_UNKNOWN )
> +    {
> +        printk("Failed to get performance policy from %s, Try \"xenpm set-cpufreq-cppc\"\n",
> +               new_policy.governor->name);
> +        return -EINVAL;
> +    }

Don't you also need to check for CPPC mode, or else you reject "userspace" for
other drivers as well?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 15:25:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 15:25:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093444.1448951 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqZ4m-0007hX-V5; Mon, 25 Aug 2025 15:25:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093444.1448951; Mon, 25 Aug 2025 15:25: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 1uqZ4m-0007hQ-S8; Mon, 25 Aug 2025 15:25:40 +0000
Received: by outflank-mailman (input) for mailman id 1093444;
 Mon, 25 Aug 2025 15:25:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=J9Dq=3F=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqZ4l-0007h0-IC
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 15:25:39 +0000
Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com
 [2a00:1450:4864:20::633])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c0cb4c79-81c7-11f0-a32c-13f23c93f187;
 Mon, 25 Aug 2025 17:25:38 +0200 (CEST)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-afcb7a0550cso784262666b.2
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 08:25: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
 a640c23a62f3a-afe8f8129f0sm100108566b.41.2025.08.25.08.25.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 08:25: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>
X-Inumbo-ID: c0cb4c79-81c7-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756135538; x=1756740338; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=uJ93w5as36fBKPUaUUWemuifcDVw3sd4NJr5hbxKQMQ=;
        b=VUcM4I/JuGMiX1+5/WSVDVFyw+UmaSRMZQ1aZIqOTWzp043k1G5xkq432OvAXhjVJ2
         f1r8YEKDklI+EpZF/y5+JCKuQPjgjfvOpcb9DuuryIRuMnTAP0JH1i+yyzRzehHHNfwX
         d1QnOAcWVP4CKVqSjy5p0inOzQvbfrBIVmI9cHWl+hyYSXZJ9R3/2ZExZHPaGAjjIuea
         ZpEeexCz6XvAlWTVELwAx9n6wGMDawk9kMI8TNiISLY8mOPnJa34mHFP9itn0K+MN/2L
         dIUDd+w+WO3xj5O6rbOZpHxZFbBzLhGlu2tYj+fAcXqA0ukU7Cznb86lDPndqLW1Xirf
         rwOA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756135538; x=1756740338;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=uJ93w5as36fBKPUaUUWemuifcDVw3sd4NJr5hbxKQMQ=;
        b=JuhgB6qU4mCactbZO2voVbUZTdMsl58SnDQqVI3T0m59bMEiorpXlw3DISE6XZgyeF
         H/XYWg8rF3oSxSS8lWqsEvpG1QbCiPVpbQwh02DIRfDbqnUuzM+dVzdoBVo5Cd7s1SPH
         1zoQfpR3YEAy+UVSMEc54MJVwBdwcNGGbmKVtvIow0gurGI+ripVz9hdRsJH+34mKugD
         oqBUMwfYndc+ajyEiq6AkahQKcSIG4zM6dUGikD/CEpeFcHMThJi1f6EriKia8ucE2by
         nNR/JPjPFegatLRtXmu7vVwQy0FgH995DuTub871qrP3WhYY/Xku53sEizyyCe7i0sji
         wrRQ==
X-Forwarded-Encrypted: i=1; AJvYcCWSsL2mxNwlRkARTzD3XV94i9/MKpt+Wy9bMQV6CpC2fQ7vUh3zUBT1lIifGxQfJXl+6d6IQxU8UOQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy2rIwY70Lml9IPMEinDRUestM8ypjhsSPyPX8C8yO68rW7rYbN
	m2b9wCM+IxvlUXxCyQJd6+l9tt38JD9FGUgtFtrfm0OZnEemsbmN+ZiUqggMhISs1A==
X-Gm-Gg: ASbGncsnDILjyRgOLIwmi77/RPoHBvhjhTF3QyUOChPGjPl3I4uVm4sYaUPaqqRFw78
	VYzfBUbbSap2cv41l1wjZQNKbEJvf5WY7T8mcgv9EAyQGfNBDJsp3F6ZHTrj52fuIyuLuRzi/Hw
	Kr9Upo4PDlcWfVbtJvXsOaneTWEV0WkyygrSEIigeaJWPHuaqk8c4W+G7Xw5IvgLikvq2SvK/Z/
	rC2y533Q25YlhCldoYZVIPmWMTajnmHwvYEwKnxRN29iTYRcMaynsxoXTHJtqFZBAzJsioNSk3V
	/KRNZJ95AaYIMwMl4KCmuEZP8oApjyxfkGAhxopnkfXBrPROof0sLxL3Es7Z/k50zBUX9ntkrK5
	tY+1dWbDshNBOQZrPmHvzyu5GHsFVx7sezL8mg+VbPXREylwAWcLw2Y/S51leQrgwnm9byhKdz1
	sFvIBcx9FtM0zp4M2WNw==
X-Google-Smtp-Source: AGHT+IHTU/h+YxTjXoaR6+Y1uzW4+uveYvkss4q07+0LGlKPlyb5aXcelH5soutVhPUD5Y6Qle3R5w==
X-Received: by 2002:a17:907:1c8c:b0:afe:114f:11fb with SMTP id a640c23a62f3a-afe29631283mr1044924966b.64.1756135537752;
        Mon, 25 Aug 2025 08:25:37 -0700 (PDT)
Message-ID: <f5fc3210-2911-4b42-af8c-8a2f4bcbdfad@suse.com>
Date: Mon, 25 Aug 2025 17:25:36 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/suspend: unconditionally raise a timer softirq on
 resume
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
References: <20250825151515.39177-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: <20250825151515.39177-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 25.08.2025 17:15, Roger Pau Monne wrote:
> The current code to restore the timer state on resume is incomplete.  While
> the local APIC Initial Count Register is saved and restored across
> suspension (even if possibly no longer accurate since it's not adjusted to
> account for the time spent in suspension), the TSC deadline MSR is not
> saved and restored, hence hosts using the TSC deadline timer will likely
> get stuck when resuming from suspension.
> 
> The lack of restoring of the TSC deadline MSR was mitigated by the raising
> of a timer softirq in mwait_idle_with_hints() if the timer had expired,
> previous to commit 3faf0866a33070b926ab78e6298290403f85e76c, which removed
> that logic.
> 
> This patch fixes the usage of the TSC deadline timer with suspension, by
> unconditionally raising a timer softirq on resume, that will take care of
> rearming the hardware timer.  Given that a timer softirq will be
> unconditionally risen, there's no need to save and restore the APIC Initial
> Count Register anymore either.
> 
> Note that secondary processors don't need this special treatment when
> resuming, since they are offlined before suspension and brought back up
> during resume, the first timer that gets setup will trigger a timer softirq
> unconditionally, for example from sched_migrate_timers() that gets called
> for each secondary processor.
> 
> Reported-by: Marek Marczykowski-GÃ³recki <marmarek@invisiblethingslab.com>
> Fixes: fd1291a826e1 ('X86: Prefer TSC-deadline timer in Xen')
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

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



From xen-devel-bounces@lists.xenproject.org Mon Aug 25 15:26:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 15:26:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093456.1448961 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqZ5g-0008EE-8c; Mon, 25 Aug 2025 15:26:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093456.1448961; Mon, 25 Aug 2025 15:26: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 1uqZ5g-0008E7-4X; Mon, 25 Aug 2025 15:26:36 +0000
Received: by outflank-mailman (input) for mailman id 1093456;
 Mon, 25 Aug 2025 15:26:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=paQ2=3F=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1uqZ5f-0007h0-EU
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 15:26:35 +0000
Received: from fhigh-b7-smtp.messagingengine.com
 (fhigh-b7-smtp.messagingengine.com [202.12.124.158])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e1678031-81c7-11f0-a32c-13f23c93f187;
 Mon, 25 Aug 2025 17:26:33 +0200 (CEST)
Received: from phl-compute-10.internal (phl-compute-10.internal [10.202.2.50])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 54F3E7A0103;
 Mon, 25 Aug 2025 11:26:32 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-10.internal (MEProxy); Mon, 25 Aug 2025 11:26:32 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 25 Aug 2025 11:26:31 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e1678031-81c7-11f0-a32c-13f23c93f187
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=1756135592;
	 x=1756221992; bh=np5vJpyy7lDldFFcl5Vkfbhrix7UygfNpb87aMYXdMo=; b=
	ozkGZPmksdwqnN1Q3Cx0WqXg7kwWaYpvhTUqZoia19c6FbQMrakOokx4Z/PvZRao
	RErOI04YqTYbj4wWtxXyZRuzXFlWj3+B5SlGK+/4oQQWWYrRWECTHrXFaXufd62z
	Lc36PO6j+AVM/64QuhvMpNUUnpaXo/Vz9y3DKIpZqlzoX2yEJ7DOka4MXHvFA0jM
	RcXgmIsD2EtN6EQ/nDhMXorBEGlvdmDBPxIwdGU0zRzCaPPlxae3pDSNb5yu0L9R
	DClX8X8qnauYMmjVUnmSpFxGBKjdti5ZgpVYICms7Il4RvC2ybFE8WUQDVpEpyvr
	qTe20L+nieJMtcYJZOI6vQ==
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=
	1756135592; x=1756221992; bh=np5vJpyy7lDldFFcl5Vkfbhrix7UygfNpb8
	7aMYXdMo=; b=ELoQY7kboQdK8H59/9yQ9RJpSWu4pyR979niwhL7AiRYOgIKfjx
	vFKfUo686oqTcCVj0zMEprtDXCTlrXVEDi5HYJhElWn59ryHdrryKHGLtn1/cFu3
	j+Ligcjz9Lq9U9M+VqmOedVKGihdzcPyRscWK1X2N1lGODawYPczGu9xNqpzOlgt
	kqoORrOq0dVMttp3bPj9TxEA97FOqcUM0pcoc0BTEs3BySv7UEj0D8NttEc7kKal
	iXb4NuDpeXKwp/QjBlEO2vxvc8QNPn921gGRqEF613jSo7el6R+4CpaIBXNGaF6v
	GEUZ8I0KNo0uoIk1D4nXSzOnc/5ux1kVsdg==
X-ME-Sender: <xms:p4CsaJvynvCIhLEwYs6rXaYuekV5-D7YMld-5BYoL9tu4XA8i-UOJA>
    <xme:p4CsaNCbcsA9eZDIn5aOkil4dm4xZ1vgGZN-z_J4ViF4a0AZEnicS7JV0qpVl45cX
    8oVF52B0_a75Q>
X-ME-Received: <xmr:p4CsaJVFqcXKTQk5bn1uEHw6o2FQBFBdCNP6vJ7YOHjr05HzsJxqauepWHTCMJc2zQIdCqDUFYj88yJBEGMM7TDFkPya5Y8RI8E>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgddujedvjeegucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtroertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnheptdetvdfh
    kedutedvleffgeeutdektefhtefhfffhfeetgefhieegledvtddtkedtnecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepgedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtoheprhhoghgvrhdrphgruhestghithhrihig
    rdgtohhmpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojh
    gvtghtrdhorhhgpdhrtghpthhtohepjhgsvghulhhitghhsehsuhhsvgdrtghomhdprhgt
    phhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhm
X-ME-Proxy: <xmx:p4CsaDC0M0aziRQwd9-6PqFV24DaxitKyvlG3nWQ-I_HuxqEXNXSog>
    <xmx:p4CsaE8mvWLHyVsBmNN-L3NTegD1XKYduHk2lCkD74qT-qMg6ZkVng>
    <xmx:p4CsaCFds1WCqASemlrBh4aD9RjTXr898SNpxwO-D7yBzrTMI8B3NQ>
    <xmx:p4CsaKMzozZIrJid5PPxhp7-pVCg2w4SBs3RTMsKCrdviH2UIOw0HA>
    <xmx:qICsaPw6dspi-VPkOQ2-VtQb_h6Dd2bKPtJsAMwqkeJ0-4SxNk0I7dXr>
Feedback-ID: i1568416f:Fastmail
Date: Mon, 25 Aug 2025 17:26:28 +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>
Subject: Re: [PATCH] x86/suspend: unconditionally raise a timer softirq on
 resume
Message-ID: <aKyApbxEHQcaKbYc@mail-itl>
References: <20250825151515.39177-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="dhaSqA7pHatNiyyD"
Content-Disposition: inline
In-Reply-To: <20250825151515.39177-1-roger.pau@citrix.com>


--dhaSqA7pHatNiyyD
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Mon, 25 Aug 2025 17:26:28 +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>
Subject: Re: [PATCH] x86/suspend: unconditionally raise a timer softirq on
 resume

On Mon, Aug 25, 2025 at 05:15:15PM +0200, Roger Pau Monne wrote:
> The current code to restore the timer state on resume is incomplete.  Whi=
le
> the local APIC Initial Count Register is saved and restored across
> suspension (even if possibly no longer accurate since it's not adjusted to
> account for the time spent in suspension), the TSC deadline MSR is not
> saved and restored, hence hosts using the TSC deadline timer will likely
> get stuck when resuming from suspension.
>=20
> The lack of restoring of the TSC deadline MSR was mitigated by the raising
> of a timer softirq in mwait_idle_with_hints() if the timer had expired,
> previous to commit 3faf0866a33070b926ab78e6298290403f85e76c, which removed
> that logic.
>=20
> This patch fixes the usage of the TSC deadline timer with suspension, by
> unconditionally raising a timer softirq on resume, that will take care of
> rearming the hardware timer.  Given that a timer softirq will be
> unconditionally risen, there's no need to save and restore the APIC Initi=
al
> Count Register anymore either.
>=20
> Note that secondary processors don't need this special treatment when
> resuming, since they are offlined before suspension and brought back up
> during resume, the first timer that gets setup will trigger a timer softi=
rq
> unconditionally, for example from sched_migrate_timers() that gets called
> for each secondary processor.
>=20
> Reported-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab=
=2Ecom>
> Fixes: fd1291a826e1 ('X86: Prefer TSC-deadline timer in Xen')
> Signed-off-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>

Tested-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.com>

> ---
>  xen/arch/x86/acpi/power.c | 2 ++
>  xen/arch/x86/apic.c       | 3 ---
>  2 files changed, 2 insertions(+), 3 deletions(-)
>=20
> diff --git a/xen/arch/x86/acpi/power.c b/xen/arch/x86/acpi/power.c
> index 2ac162c997fe..27d672ad5dbb 100644
> --- a/xen/arch/x86/acpi/power.c
> +++ b/xen/arch/x86/acpi/power.c
> @@ -19,6 +19,7 @@
>  #include <xen/iommu.h>
>  #include <xen/param.h>
>  #include <xen/sched.h>
> +#include <xen/softirq.h>
>  #include <xen/spinlock.h>
>  #include <xen/watchdog.h>
> =20
> @@ -310,6 +311,7 @@ static int enter_state(u32 state)
>      thaw_domains();
>      system_state =3D SYS_STATE_active;
>      spin_unlock(&pm_lock);
> +    raise_softirq(TIMER_SOFTIRQ);
>      return error;
>  }
> =20
> diff --git a/xen/arch/x86/apic.c b/xen/arch/x86/apic.c
> index cac5ba39e615..e3a2b84f1aae 100644
> --- a/xen/arch/x86/apic.c
> +++ b/xen/arch/x86/apic.c
> @@ -65,7 +65,6 @@ static struct {
>      unsigned int apic_lvt0;
>      unsigned int apic_lvt1;
>      unsigned int apic_lvterr;
> -    unsigned int apic_tmict;
>      unsigned int apic_tdcr;
>      unsigned int apic_thmr;
>  } apic_pm_state;
> @@ -658,7 +657,6 @@ int lapic_suspend(void)
>      apic_pm_state.apic_lvt0 =3D apic_read(APIC_LVT0);
>      apic_pm_state.apic_lvt1 =3D apic_read(APIC_LVT1);
>      apic_pm_state.apic_lvterr =3D apic_read(APIC_LVTERR);
> -    apic_pm_state.apic_tmict =3D apic_read(APIC_TMICT);
>      apic_pm_state.apic_tdcr =3D apic_read(APIC_TDCR);
>      if (maxlvt >=3D 5)
>          apic_pm_state.apic_thmr =3D apic_read(APIC_LVTTHMR);
> @@ -718,7 +716,6 @@ int lapic_resume(void)
>          apic_write(APIC_LVTPC, apic_pm_state.apic_lvtpc);
>      apic_write(APIC_LVTT, apic_pm_state.apic_lvtt);
>      apic_write(APIC_TDCR, apic_pm_state.apic_tdcr);
> -    apic_write(APIC_TMICT, apic_pm_state.apic_tmict);
>      apic_write(APIC_ESR, 0);
>      apic_read(APIC_ESR);
>      apic_write(APIC_LVTERR, apic_pm_state.apic_lvterr);
> --=20
> 2.49.0
>=20

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmisgKUACgkQ24/THMrX
1yxXLggAh/QGcZFt3gD5+dvWVvFQ6hgcfWSEXtZQg+7Fz90+6M//WyI0Hce1YubS
+iQewEatx7V0uR/g4gJBckINOhyvPIUKzxMzVWg9Kl2C7afgtc+yZcItE6hI+Ri8
fx465Ey5WOQ85C7L8BHnRZbv6PRbMi5OHDm/cmGfn/Dm6Gqq2W/Y8T6OIskiLnkd
6Gbk2YRyfMwQBFaOi2LYc5wCv+4luOud/ZMPi90gI8jRZiMt6qxFwl0VoojRiQVp
LR/hq+Ov/ZWNs2pi7ixpmlSIs5WrUwnCK5LgJ72MoQY6P9zWXOu1Uufqy4Yk/DiQ
IrlANsnukMYGn2jYe7zSxqNLwZYg9g==
=kAU8
-----END PGP SIGNATURE-----

--dhaSqA7pHatNiyyD--


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 15:27:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 15:27:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093474.1448970 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqZ6n-0000SO-LZ; Mon, 25 Aug 2025 15:27:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093474.1448970; Mon, 25 Aug 2025 15:27: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 1uqZ6n-0000SH-Hx; Mon, 25 Aug 2025 15:27:45 +0000
Received: by outflank-mailman (input) for mailman id 1093474;
 Mon, 25 Aug 2025 15:27:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=J9Dq=3F=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqZ6m-0008VJ-P1
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 15:27:44 +0000
Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com
 [2a00:1450:4864:20::62f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0b42f6dd-81c8-11f0-b898-0df219b8e170;
 Mon, 25 Aug 2025 17:27:43 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-afcb7acfde3so669387166b.3
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 08:27: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
 a640c23a62f3a-afe895baff6sm156706166b.52.2025.08.25.08.27.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 08:27: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>
X-Inumbo-ID: 0b42f6dd-81c8-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756135663; x=1756740463; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=fryvEF3CETd5NA4lGbhpvLDHtuds2z4oYB2agZ4677Q=;
        b=Dryo0laGc9Es2m7B/AivcPWDP6iEUgZMtpdClIt/6oJ4No5kcHgoI/MysMRTAHWaj8
         Jtrkft5QNs4gE1bEIzPbrb1PWyzJXb4oNvNYXn3BbpPwvKxrKXLFx2GiDEkWndJG5B2X
         kwC3UX5lChgoNk5ncgIdxjI3x4S9GMyJBQvxiJM0qBfM3aqXEW7x+o5UGHaGxvAch80S
         xCrKy2Y6dQ9NUkaDGVbYp3jax2WsmhWIg7USVj3QbN9OCWaGV2dxhLRjO6QHPpWvv9Nj
         URiF+wRF8m5nUinmr9FhK7PrifAlWVtFNFRmXvwH2CgptCxW9wPWSwUe+MUkBjYyxPXm
         mVRA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756135663; x=1756740463;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fryvEF3CETd5NA4lGbhpvLDHtuds2z4oYB2agZ4677Q=;
        b=H/r66EP1QAAGIYS1209sZiRP8tnJwX3kSDQvnWfHj0OGPSJqAy68yOrwBhCz+iOJJ2
         jiBbfBsT31iEzrEOjkfqnZvSY/yLUmLZ4d5bGWDpVbxzfEgiWeRvWdsIp8cPSE0c4lVj
         3qWD2/l9BWXaPLRgnco932GQDelh9zSnvRqGTiS3X+jovYksMmnNLsaXuM/HUwZN4iEq
         C504LKMNjh4Wz7MwbjPswq4W03BfXYKzaPjEPqbtbgHDOTKLRT7yTE8Hl7bG5BhrK/Bg
         MQGmOhh2SGJHOjkkyH1ejumU2EUxHQ55jckDlAjd8xPVSwjgoRMSExuYBrLg3Y5zGwMa
         ZhrQ==
X-Forwarded-Encrypted: i=1; AJvYcCWqs4uv8A1OlzZYu4xXnkzqY2/ziU6Gg4ePY2pnKwYNhhUOh+RTVkWZHB61EkFFJ/l34O7xAJJjTfg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxiQoS27S/Z82ECrsiOEVXDe5wJ3LhexGliU6eqfS8qb/qy12Mk
	awAqrHN21CP0Kk0EpV0HDmLFJMeS1jBCjjU9Hmh3NPvJN4c2rr5eBXh0m7udFKZcjg==
X-Gm-Gg: ASbGncuFaXgy6N9M+YmmFY0eVWgLyEJuvKVyZ/bOq8Di+/emP4b+UPR0GkkP7erc3NM
	gDm1RubSZpno7wTl0zlA90/nkyFWeWKFj5A7X1MSnyF9Vto9jTeKvcE3HoFIJ6RjlYfOA8pT3F5
	6YFzQRqTMyMiY5RQtaJlXIcf5Tb+ebow0w0eNY22NlHSxlEy/vIYRdsgtNs5tExgkrtExuGKGmP
	W6yViJTkiEA1+EVWvKdU5TvDZcQdiQcLbxguW5BFa3KkRbpJ4VLZPKoaJNUEwJ/vWXp40Rin6kh
	tR75bfJlINcB93gPNkgeXn/4NL5Sed6+sUE4wMNNikVAGBVszCfu4NllE6pVKtldjmm8vT68VrN
	8go/f8F6jRAK/d3VghLh6SpnfCOQIj36gd6a2ZGFYi/hZeMsI/FH8GdVXTE2fo6XhzZbveK+UOe
	3+9qBCaPY=
X-Google-Smtp-Source: AGHT+IH8pEj+OuSESXbMFWaXYXibKeGkTf/6TLT5rU9TOC/YQt4vqh1F7OzvbXYBYg1WScKbL9eBkQ==
X-Received: by 2002:a17:907:1b29:b0:af9:611d:8d06 with SMTP id a640c23a62f3a-afe2965b625mr1254418066b.54.1756135662602;
        Mon, 25 Aug 2025 08:27:42 -0700 (PDT)
Message-ID: <48f72997-ba07-4a9c-998e-76b02f2863f0@suse.com>
Date: Mon, 25 Aug 2025 17:27:41 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 6/8] tools/xl: enable NS16550-compatible UART emulator
 for HVM (x86)
To: Anthony PERARD <anthony@xenproject.org>
Cc: dmkhn@proton.me, xen-devel@lists.xenproject.org,
 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
References: <20250731192130.3948419-1-dmukhin@ford.com>
 <20250731192130.3948419-7-dmukhin@ford.com> <aKx4FtlhAbXxtZlB@l14>
 <844bb7f7-2e56-41e0-b304-77e9e9650eb1@suse.com> <aKx9ihn4i0LCq0Bn@l14>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aKx9ihn4i0LCq0Bn@l14>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.08.2025 17:13, Anthony PERARD wrote:
> On Mon, Aug 25, 2025 at 05:03:40PM +0200, Jan Beulich wrote:
>> On 25.08.2025 16:49, Anthony PERARD wrote:
>>> On Thu, Jul 31, 2025 at 07:22:12PM +0000, dmkhn@proton.me wrote:
>>>> -=item B<vuart="uart">
>>>> +=item B<vuart=[ "sbsa_uart", "ns16550" ]>
>>>
>>> This syntax here would inditace that `vuart` takes a list of items. You
>>> could write instead:
>>>
>>>     vuart="UART"
>>>
>>> which seems more in line with the rest of the man page. Then you can add
>>> some thing like "with UART been one of "sbsa_uart" or "ns16550". It's
>>> possible to also have a sublist, like the `tee` option have.
>>
>> But shouldn't the syntax already now allow for multiple items? Possibly
>> even multiple ones of the same kind?
> 
> How does `vuart="uart"` allow for multiple items?

Precisely. I would have expected it to be e.g.

vuart = [ "ns16550", "ns16550", "sbsa-uart" ]

(i.e. the square brackets are part of the necessary syntax).

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 15:28:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 15:28:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093482.1448981 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqZ7t-0000zL-VJ; Mon, 25 Aug 2025 15:28:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093482.1448981; Mon, 25 Aug 2025 15:28: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 1uqZ7t-0000zE-Rv; Mon, 25 Aug 2025 15:28:53 +0000
Received: by outflank-mailman (input) for mailman id 1093482;
 Mon, 25 Aug 2025 15:28:52 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kKY8=3F=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1uqZ7s-0000z8-C9
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 15:28:52 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 31136c39-81c8-11f0-b898-0df219b8e170;
 Mon, 25 Aug 2025 17:28:46 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-45a1b066b5eso23609445e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 08:28:46 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-45b57449e72sm114391465e9.7.2025.08.25.08.28.45
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 25 Aug 2025 08:28: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>
X-Inumbo-ID: 31136c39-81c8-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756135726; x=1756740526; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=N49DMRXrnFBcfvFWW2Vx0+wgJjxpqPexPeoYupJ7Yfg=;
        b=jKF0MF5ktTD1jTyO2kwCxj3dAubRqpxu37q2X7c/BIUhUDLMXRGRlcSBIcouKFB2sg
         ygsljS82b6L1uKdzbp52+BUqFIBkfwVBuDeMouKJfo8SSYhfJvjE5/YkY7OVRLzVqbCs
         YMJ4501qTPizCyZGcE0in66PDefrAZXUdBh/0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756135726; x=1756740526;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=N49DMRXrnFBcfvFWW2Vx0+wgJjxpqPexPeoYupJ7Yfg=;
        b=gx8dwe5FU5Sf7ZEket9H6sLLH3oHaUjFbFvWO3qyQsqc5OQMtJ7GRj5KDeJjOv31bP
         f814PuxkqVecxwcA+9N5SyId3xxxnqLhSh7zG0Auavf1a3hz8MffYF/kImWaRm64d6U/
         MKPPZLaydcSFQGSGwAtFUUNAVQ5MU3ydZ9nlrVAtSDO2Q7wpZhk7vm966Ws3LdD/i6MQ
         ftetLVApPLqVv2JER7Op71RU8Cin3TwhLa/YhasbCJkvFW40vQcO7g7SvakYw2RXA51R
         Qi7U/LmdIezVO4GXJJELMo0FuYviFXuXuCOydDBsTAbPbwY1Czq+Lpa1HsNdmmun1P8z
         W27A==
X-Forwarded-Encrypted: i=1; AJvYcCVW+YCwaKQ1DEKjpOrmiVb02yyz9dPABPQQZVT9oOEUcsX04Y1EgmRiIkXp9Ag3j4fusrZFpZg3u98=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxzO3SAwz7ddmZYIoV3HsSjSjW/YawYj9JWDOTilgyS59hAOz4s
	DBEeU5GuGDWsa36rQRK96FDtSg2Ucs/l+Pkf9IPseFUoJFT3/586zp4Ii4elPEbfNWA=
X-Gm-Gg: ASbGncvrEvppMT+E7HKF2NrZN+7hgrjaJszhBqlYnNTLXfqKi4Fh1jlDmEIc5gOu4Zy
	mk61kczEJHaE8c2n+d6tcIE4iyKAPEysv9tc/orN8PB/XZ0Dfc2ieGXsf1xDBhpfaa9I+ACbdZ+
	NEfRpNAu2W2Km4zs7I265szCCG2ZQ1gWpK7wntZXTz1/TznSUFvSw+zkUks9IKEIGotrMHXaIIs
	aQFbEt66oPiasCO2r7KmarIQ4r8MZRWvER+ZTndljX/ID+bozYY/5jZid+ECAQpddEHgu83OBKL
	hFAJzfn4GNouThCUjJm3Qd1hqNetPGvSDoKKJ4orJYzVQoewyaJU/3EubhhV2jhFi8Yi3JkzVXm
	KoQ2e3xcwO/d6L0yreLxHVJYS445fOVD25DgQom9jYLtxyqY5eu3KY18wyKz4PG06mfCZ+bMtvH
	QH
X-Google-Smtp-Source: AGHT+IFfbHOGJ9RPxmXRglsAK8UfPG3uLPVAan7hEClMKQV3JPexyaGh/zSY06H8HYz+gowEfiVIMw==
X-Received: by 2002:a05:600c:4ca1:b0:45b:4ba0:da4 with SMTP id 5b1f17b1804b1-45b541d5401mr64483905e9.13.1756135725935;
        Mon, 25 Aug 2025 08:28:45 -0700 (PDT)
Date: Mon, 25 Aug 2025 17:28:44 +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>,
	Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH] x86/suspend: unconditionally raise a timer softirq on
 resume
Message-ID: <aKyBLN0Y3arg1b76@macbook.local>
References: <20250825151515.39177-1-roger.pau@citrix.com>
 <f5fc3210-2911-4b42-af8c-8a2f4bcbdfad@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <f5fc3210-2911-4b42-af8c-8a2f4bcbdfad@suse.com>

On Mon, Aug 25, 2025 at 05:25:36PM +0200, Jan Beulich wrote:
> On 25.08.2025 17:15, Roger Pau Monne wrote:
> > The current code to restore the timer state on resume is incomplete.  While
> > the local APIC Initial Count Register is saved and restored across
> > suspension (even if possibly no longer accurate since it's not adjusted to
> > account for the time spent in suspension), the TSC deadline MSR is not
> > saved and restored, hence hosts using the TSC deadline timer will likely
> > get stuck when resuming from suspension.
> > 
> > The lack of restoring of the TSC deadline MSR was mitigated by the raising
> > of a timer softirq in mwait_idle_with_hints() if the timer had expired,
> > previous to commit 3faf0866a33070b926ab78e6298290403f85e76c, which removed
> > that logic.
> > 
> > This patch fixes the usage of the TSC deadline timer with suspension, by
> > unconditionally raising a timer softirq on resume, that will take care of
> > rearming the hardware timer.  Given that a timer softirq will be
> > unconditionally risen, there's no need to save and restore the APIC Initial
> > Count Register anymore either.
> > 
> > Note that secondary processors don't need this special treatment when
> > resuming, since they are offlined before suspension and brought back up
> > during resume, the first timer that gets setup will trigger a timer softirq
> > unconditionally, for example from sched_migrate_timers() that gets called
> > for each secondary processor.
> > 
> > Reported-by: Marek Marczykowski-GÃ³recki <marmarek@invisiblethingslab.com>
> > Fixes: fd1291a826e1 ('X86: Prefer TSC-deadline timer in Xen')
> > Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> 
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thanks, I've also added:

Link: https://github.com/QubesOS/qubes-issues/issues/10110

To the tags.

Roger.


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 15:36:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 15:36:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093510.1448991 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqZFd-00034i-Mn; Mon, 25 Aug 2025 15:36:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093510.1448991; Mon, 25 Aug 2025 15:36: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 1uqZFd-00034b-Im; Mon, 25 Aug 2025 15:36:53 +0000
Received: by outflank-mailman (input) for mailman id 1093510;
 Mon, 25 Aug 2025 15:36:52 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=J9Dq=3F=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqZFc-00034V-Al
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 15:36:52 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 511a0bf2-81c9-11f0-b898-0df219b8e170;
 Mon, 25 Aug 2025 17:36:49 +0200 (CEST)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-afcb78d5dcbso653490666b.1
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 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
 a640c23a62f3a-afe87c2a0cesm169734366b.2.2025.08.25.08.36.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 08:36: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>
X-Inumbo-ID: 511a0bf2-81c9-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756136209; x=1756741009; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=jEopt1Wpmkv1721yqfoYuZJ84BGTG4cTo2nGH31YnVI=;
        b=WigKNdNVWR1AxrrVcL3mlIwux69ax+/4cyZ7Q2LF051wuGa+0gYoYxOeA3uWmjVbhR
         4e2VANopL/CpDnrXsl2nlHoSqMj7KJuqeekhGUpeUBDAFt5VTeJ2bZVk2PYT5olX6tBs
         oxPSnEZGPOSWa4zmrm5cOpq+jFgsZvfRmLLT0ZZJC6y6zJJhwZCOh6fQrVnzjOTwzqtN
         szF36B0YnIcUAW22LlhQK4gTLeDZ2AYXEqDnr45hB8o+lCyFrTFFpGwqS2jbEBV467jC
         uA6L6V5Gt2T1irvwsd2+xaFwwmwrfNK3dzYNHsoEBKnP3udgFev8MIXSeJvpJ5ao77BX
         w0dg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756136209; x=1756741009;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jEopt1Wpmkv1721yqfoYuZJ84BGTG4cTo2nGH31YnVI=;
        b=Fad4dfhQNuzGfoOZAxIrUF7F6GPQ4xZkpmOuFoJwUoLMwuz6AN8Q1HfJ5au+dirGWa
         fYp+alccfRznecVCi9/Y9YBQdrfVgInkCYsVBQbKqTYzeM4MqEnLfaJSAEDpQ51yZYic
         47xnHCm9KOrFG/DULliwCWF+qdFXLbSpE/RVhBt3/vwpjehJ6/ijTITXssP33Hw6KrUe
         c+DeLITdnPkjQXT98ZF3aEzBmtz8i2bakRUK8tkRWJqiteYBUNhmYei+4XHlrHzGj02b
         4sy3I9tq7+sH2OyvzE0JopBBt/7UwfrjgPNnoBBDljgsusb+ClpnMupWN8dBm9bU8sc4
         XFBg==
X-Forwarded-Encrypted: i=1; AJvYcCVwFw2eVYz9Nv2/y3pMhOiQ/pFjtDQeJYOQeHOc4DvjWsUY0WKx5r2/6xcZzaiFa+JXMoY8sXym+5U=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyl23Ljots3D+r71mYIXdZokw2WZEM7V+nCfxHyzIut2aOcjV+b
	Hx5PnKmxeruW/1SquREowkWgg1jXe4y2988iVzYkM+gg4QDc4uKoEWGMR8v+1W65pg==
X-Gm-Gg: ASbGnctBGjvPrihtTTbroWsC6/Krl4W7l3MA0t6C3Yrqy3NFArCevKfMdtUkFgCHy6V
	t8d+dVmKe8B8nNRV6p37AYj1kM+05z35J6aVUvSM1dKuccsafrl0cK0FHWdJZeW50C3B/HNAHkU
	2xPBzS1BVF0//dmVKoP+cnM0z2pVZAC+2uVFATjJkxydrj/46U+sFNIdmUXi7WPHlGYnsV1FW37
	XIaze07qpQJMIOdeuFKGGKg9Uhqu46ORGT89hHO4DgzcfJmb3jnkqPva4cH40QDBB938pg1Pv2X
	QiuqT9Wb2qS62PySBsAdCeLboLsOUQ5GVjbJYVp+CAu/PLO9LJyn0OSC1cijSsMCZF5WI6HYdIY
	bZi5PdOwq/HUi78rQH2HepnV2ON7q4UxusGyL8JfEfqSIBre2BtglvZ83EdotgTebDicObGh/zj
	dxRtVTe50=
X-Google-Smtp-Source: AGHT+IFzGPOSuFX2OfzXY0icOmeYnGGVMZ2dCuyEFQmcDroND9sUa4kjYie1kf0+/LDg2Q3XrHRs7A==
X-Received: by 2002:a17:906:f5a3:b0:ae6:e0a7:234c with SMTP id a640c23a62f3a-afe29538142mr1259387966b.33.1756136209282;
        Mon, 25 Aug 2025 08:36:49 -0700 (PDT)
Message-ID: <b54e3460-380b-41e4-b9e9-75ba5c6129fd@suse.com>
Date: Mon, 25 Aug 2025 17:36:48 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 11/13] tools/cpufreq: extract CPPC para from cpufreq
 para
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, 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>, xen-devel@lists.xenproject.org
References: <20250822105218.3601273-1-Penny.Zheng@amd.com>
 <20250822105218.3601273-12-Penny.Zheng@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: <20250822105218.3601273-12-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.08.2025 12:52, Penny Zheng wrote:
> We extract cppc info from "struct xen_get_cpufreq_para", where it acts as
> a member of union, and share the space with governor info.
> However, it may fail in amd-cppc passive mode, in which governor info and
> CPPC info could co-exist, and both need to be printed together via xenpm tool.
> If we tried to still put it in "struct xen_get_cpufreq_para" (e.g. just move
> out of union), "struct xen_get_cpufreq_para" will enlarge too much to further
> make xen_sysctl.u exceed 128 bytes.
> 
> So we introduce a new sub-field GET_CPUFREQ_CPPC to dedicatedly acquire
> CPPC-related para, and make get-cpufreq-para invoke GET_CPUFREQ_CPPC
> if available.
> New helpers print_cppc_para() and get_cpufreq_cppc() are introduced to
> extract CPPC-related parameters process from cpufreq para.
> 
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>

Acked-by: Jan Beulich <jbeulich@suse.com> # hypervisor

> --- a/tools/libs/ctrl/xc_pm.c
> +++ b/tools/libs/ctrl/xc_pm.c
> @@ -288,7 +288,6 @@ int xc_get_cpufreq_para(xc_interface *xch, int cpuid,
>          CHK_FIELD(s.scaling_min_freq);
>          CHK_FIELD(s.u.userspace);
>          CHK_FIELD(s.u.ondemand);
> -        CHK_FIELD(cppc_para);
>  
>  #undef CHK_FIELD

What is done here is already less than what could be done; I think ...

> @@ -366,6 +365,33 @@ int xc_set_cpufreq_cppc(xc_interface *xch, int cpuid,
>      return ret;
>  }
>  
> +int xc_get_cppc_para(xc_interface *xch, unsigned int cpuid,
> +                     xc_cppc_para_t *cppc_para)
> +{
> +    int ret;
> +    struct xen_sysctl sysctl = {};
> +    struct xen_get_cppc_para *sys_cppc_para = &sysctl.u.pm_op.u.get_cppc;
> +
> +    if ( !xch  || !cppc_para )
> +    {
> +        errno = EINVAL;
> +        return -1;
> +    }
> +
> +    sysctl.cmd = XEN_SYSCTL_pm_op;
> +    sysctl.u.pm_op.cmd = GET_CPUFREQ_CPPC;
> +    sysctl.u.pm_op.cpuid = cpuid;
> +
> +    ret = xc_sysctl(xch, &sysctl);
> +    if ( ret )
> +        return ret;
> +
> +    BUILD_BUG_ON(sizeof(*cppc_para) != sizeof(*sys_cppc_para));
> +    memcpy(cppc_para, sys_cppc_para, sizeof(*sys_cppc_para));

... you minimally want to apply as much checking here.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 15:39:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 15:39:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093520.1449001 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqZHs-0003hB-3J; Mon, 25 Aug 2025 15:39:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093520.1449001; Mon, 25 Aug 2025 15: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 1uqZHr-0003h4-W1; Mon, 25 Aug 2025 15:39:11 +0000
Received: by outflank-mailman (input) for mailman id 1093520;
 Mon, 25 Aug 2025 15:39:10 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1uqZHq-0003gy-Km
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 15:39:10 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1uqZHo-005voC-1d;
 Mon, 25 Aug 2025 15:39:08 +0000
Received: from [2a01:cb15:80df:da00:4c1a:a750:6210:2b8] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1uqZHo-000bq4-1B;
 Mon, 25 Aug 2025 15:39: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date;
	bh=/uqv6/jAGNM2q9I3d3DwqzpTessIKGRFBu+WjNNqJVw=; b=WytB+AmiDLm6e1sRsd+DtT9dcj
	YunYFzA8H3oplw0/LY8FlP4sH7YOC4wAksuC7NG/O8jaOqPLPSwVSK68PnwtcxDsKAk5A6C36t7Aq
	y3HStwmPPR6dZPtBLeS8iRRVhuj5kth8AEMLIBVPgMrsLBWFMVvvHhFNc2UkyJNWDbTQ=;
Date: Mon, 25 Aug 2025 17:39:06 +0200
From: Anthony PERARD <anthony@xenproject.org>
To: Jan Beulich <jbeulich@suse.com>
Cc: dmkhn@proton.me, xen-devel@lists.xenproject.org,
	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
Subject: Re: [PATCH v4 6/8] tools/xl: enable NS16550-compatible UART emulator
 for HVM (x86)
Message-ID: <aKyDmsiYxC0kvvGw@l14>
References: <20250731192130.3948419-1-dmukhin@ford.com>
 <20250731192130.3948419-7-dmukhin@ford.com>
 <aKx4FtlhAbXxtZlB@l14>
 <844bb7f7-2e56-41e0-b304-77e9e9650eb1@suse.com>
 <aKx9ihn4i0LCq0Bn@l14>
 <48f72997-ba07-4a9c-998e-76b02f2863f0@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <48f72997-ba07-4a9c-998e-76b02f2863f0@suse.com>

On Mon, Aug 25, 2025 at 05:27:41PM +0200, Jan Beulich wrote:
> On 25.08.2025 17:13, Anthony PERARD wrote:
> > On Mon, Aug 25, 2025 at 05:03:40PM +0200, Jan Beulich wrote:
> >> On 25.08.2025 16:49, Anthony PERARD wrote:
> >>> On Thu, Jul 31, 2025 at 07:22:12PM +0000, dmkhn@proton.me wrote:
> >>>> -=item B<vuart="uart">
> >>>> +=item B<vuart=[ "sbsa_uart", "ns16550" ]>
> >>>
> >>> This syntax here would inditace that `vuart` takes a list of items. You
> >>> could write instead:
> >>>
> >>>     vuart="UART"
> >>>
> >>> which seems more in line with the rest of the man page. Then you can add
> >>> some thing like "with UART been one of "sbsa_uart" or "ns16550". It's
> >>> possible to also have a sublist, like the `tee` option have.
> >>
> >> But shouldn't the syntax already now allow for multiple items? Possibly
> >> even multiple ones of the same kind?
> > 
> > How does `vuart="uart"` allow for multiple items?
> 
> Precisely. I would have expected it to be e.g.
> 
> vuart = [ "ns16550", "ns16550", "sbsa-uart" ]

This is not an option.

Having mutliple ns16550 would do exactly the same thing as having a
single one. It's not possible to have both ns16550 and sbsa_uart at the
same time, one is for x86, one is for Arm. I don't know if it's possible
to have several sbsa_uart but the code in libxl doesn't have the
capability.

So overall, I don't think having a list in the xl.cfg syntax is useful
right now. It's easy to change later, I think.

> (i.e. the square brackets are part of the necessary syntax).
> 
> Jan

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 15:44:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 15:44:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093539.1449011 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqZMv-0005fB-LX; Mon, 25 Aug 2025 15:44:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093539.1449011; Mon, 25 Aug 2025 15:44: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 1uqZMv-0005f4-IK; Mon, 25 Aug 2025 15:44:25 +0000
Received: by outflank-mailman (input) for mailman id 1093539;
 Mon, 25 Aug 2025 15:44:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=J9Dq=3F=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqZMu-0005ey-As
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 15:44:24 +0000
Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com
 [2a00:1450:4864:20::533])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5f3577d5-81ca-11f0-a32c-13f23c93f187;
 Mon, 25 Aug 2025 17:44:23 +0200 (CEST)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-6188b5ad681so6241535a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 08:44:23 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-61c3119f876sm5163432a12.12.2025.08.25.08.44.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 08:44: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>
X-Inumbo-ID: 5f3577d5-81ca-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756136662; x=1756741462; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SelmiBWLC3Bwgp6pMShhmRezbxMTAYDdyvfHVbhyZpc=;
        b=JEJj+XJFdmBsRHjB2GbDHa6VG+P2pwn7qG6I4ERbKo0q7pKLTVPDAmhTNnxKycX543
         Mpml3/9V8RGv8PZP1Bm5UCWeBj8vN71idGRTUXlbs3BNsHly/d1Dz2xTnWSNjGvnMQkQ
         ZCGv0qVTgkiCkVXEzu3ykI+UVk4oZqfT0vLFVyU8PbXqsgZEPi5wytUebO208bf2wheF
         4/LJcrONPeZmxJhfI++axstfbN1qXbXhzRgCiHUWHkYucJ2R1x6dEKf1B9ECH5AimTsO
         t4KjW+JZSe9LZXezp40VJdi0R529RTGQSWj85tXiM5HC841I6Hsny7Q++3XtgM1621TU
         PhXg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756136662; x=1756741462;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SelmiBWLC3Bwgp6pMShhmRezbxMTAYDdyvfHVbhyZpc=;
        b=SW12qJOKbgGlluabqcJF8udPTdTwLdD/RD7y9KWRz3mFtazwZCifWwjkJ4C4oNqo53
         hgGL50D+M7yRu4DEyW85S/MnT6ufQwEdCsq7rpI1dNsw0HMw6FOmDCcS0zUEHPYwWuH+
         5Fu4SxLWoKVLmqCyN/vYLXw/8gljy8lm9M1rPgytCfLAMwbAPk1N+JF8OA2ghCoRXlu9
         lYIjouiwlk1FlmGNCU3FVikfqdbUL5sRMArlODXW4J91XKU9SIrOrNneShHe8fnCq0rQ
         SseCA/KXK4NJ8GGXsEskE715UuViBxmwUHL1xwHwcvjNExLPZnPWOE3tHl8GjwhOVmkH
         2hxA==
X-Forwarded-Encrypted: i=1; AJvYcCUaEmW0N7+gqZhT6G0VXckbakYLrqwUa8aKjrwU26kEaIAp5rrjfGFKsotbsZKLWM1+4ltcrVlVwuA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw4YX4yeqila/V3d+LVC2LHYmGGhKn2TbmrsthSi+sg0dDn0SaF
	iRENi8RsuwqKHi5ktZ6NFyHmqq2svX1b5CyH/v0EdxlZKSnaxF3UccPhH61E1JS/Dg==
X-Gm-Gg: ASbGnctljW7t0cQQWrN5BOV04pXaEn3xusIv6cu1dP2DVX/X2754m4nWJp/rS4QvXY9
	aA+MZLMgcAbddnENuQ29fk8vvl1xjUz/0gSxVouPlYHYD3hL05to2C18E37BgKbkIzWG/P2xqNX
	HrT3HpIlvveV3rvtvCuHhccEzcxES1tvmPp/03j8zytsg62TCGGya6uQdnSuEUITCRoizvNP9+T
	1Ot/SITN/Q3IXkeZ3vcJo+5KJqMcbQdrjK2NxQHeeertwIbFxL5JB+AZSZF2FqhFExd8LNJJeXf
	ECGF/Dvsi3/TBQR3blv5R+tZmVFaJ6i0iTW5/C3X5ZqekWK3ICVIRpgpBDDbdRQSgZzuinDDxsl
	PCEwaov6J5lmbtZUUXWUKVldSGX8JKYwbutqrmE6X2sgX2UCbNbAeVXZSZivv7PC4/bHrtlAHie
	fAuAra/+c=
X-Google-Smtp-Source: AGHT+IFtF/9uRxwyTe+tCsUzSI4CWEi8mIBSqMLYsuruFF6nQU5pzz+BWCqM3LA1CS/L045vQxq+Rw==
X-Received: by 2002:a05:6402:2813:b0:61c:4dca:9d2a with SMTP id 4fb4d7f45d1cf-61c4dcaaaacmr5890613a12.3.1756136662466;
        Mon, 25 Aug 2025 08:44:22 -0700 (PDT)
Message-ID: <5e234850-489c-4cb2-a1a5-3ced693239eb@suse.com>
Date: Mon, 25 Aug 2025 17:44:21 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 12/13] xen/cpufreq: bypass governor-related para for
 amd-cppc-epp
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, Anthony PERARD <anthony.perard@vates.tech>,
 xen-devel@lists.xenproject.org
References: <20250822105218.3601273-1-Penny.Zheng@amd.com>
 <20250822105218.3601273-13-Penny.Zheng@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: <20250822105218.3601273-13-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.08.2025 12:52, Penny Zheng wrote:
> --- a/tools/misc/xenpm.c
> +++ b/tools/misc/xenpm.c
> @@ -832,9 +832,13 @@ static void print_cppc_para(unsigned int cpuid,
>  /* print out parameters about cpu frequency */
>  static void print_cpufreq_para(int cpuid, struct xc_get_cpufreq_para *p_cpufreq)
>  {
> -    bool hwp = strcmp(p_cpufreq->scaling_driver, XEN_HWP_DRIVER_NAME) == 0;
> +    bool is_goverless = false;

I first thought this would be a typo just in the description. Please make
this is_governor_less, or - if you absolutely want to have a shorter
identifier - is_govless (albeit then you might also consider to drop the
is_ prefix).

> --- a/xen/drivers/cpufreq/cpufreq.c
> +++ b/xen/drivers/cpufreq/cpufreq.c
> @@ -956,3 +956,17 @@ int __init cpufreq_register_driver(const struct cpufreq_driver *driver_data)
>  
>      return 0;
>  }
> +
> +#ifdef CONFIG_PM_OP
> +/*
> + * Governor-less cpufreq driver indicates the driver doesn't rely on Xen
> + * governor to do performance tuning, mostly it has hardware built-in
> + * algorithm to calculate runtime workload and adjust cores frequency
> + * automatically. like Intel HWP, or CPPC in AMD.

Nit: Capital letter please at the start of a sentence.

> + */
> +bool cpufreq_is_governorless(unsigned int cpuid)
> +{
> +    return processor_pminfo[cpuid]->init && (hwp_active() ||
> +                                             cpufreq_driver.setpolicy);
> +}
> +#endif /* CONFIG_PM_OP */

Aiui the #ifdef is to please Misra, but that's not very nice to have. Does
any of the constituents stand in the way of this becoming an inline function
in a suitable header file?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 15:45:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 15:45:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093552.1449021 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqZNx-0006Dt-3H; Mon, 25 Aug 2025 15:45:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093552.1449021; Mon, 25 Aug 2025 15:45: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 1uqZNw-0006Dl-W1; Mon, 25 Aug 2025 15:45:28 +0000
Received: by outflank-mailman (input) for mailman id 1093552;
 Mon, 25 Aug 2025 15:45:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=J9Dq=3F=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqZNv-0005ey-Dr
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 15:45:27 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 85321995-81ca-11f0-a32c-13f23c93f187;
 Mon, 25 Aug 2025 17:45:26 +0200 (CEST)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-afcb7a3ee3cso656922566b.2
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 08:45:26 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afe77f33f83sm293609466b.31.2025.08.25.08.45.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 08:45:25 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 85321995-81ca-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756136726; x=1756741526; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=V7N9foytvmAwBPKi8iFEul3qI2Vi8oHIjCnXMfoWvo0=;
        b=demr1P/wrxZxEYXd+kpfoeoLHy2ilfmaUTu+kcAUMXHorzYagPHkjwjQyiPdgw05wY
         hheFEQFCUwlkM2lZfK3UKPdjYHS5Z8+x8m2tnTklv4X+UMjrm/UJEi3+x6CC/H8si6EF
         4Adzdr5hUdO6n06mA82JRh79KTEurgfwuucMKUrJhzTnOGPhUrunQ8kN6t4aZk5OFh+0
         c7THBDTa8K5ipPZHtVNLPrUZ+vrrDMK9/Ektrcn0NBEfT/PwvhsGasza/SHKCPodZAIa
         YtEKR7ITQaGFP4m/eaJfj5Def+C2pgTKRUHLLW5/L792ISNJSen/7gUiHfAptu/maSUK
         z7VA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756136726; x=1756741526;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=V7N9foytvmAwBPKi8iFEul3qI2Vi8oHIjCnXMfoWvo0=;
        b=GCcP3Cnm4OFbBzjNFxhXURw4qdOC24fAm0/dogmgE2vJrFu6kXg4VSBf7jM8DqDVwS
         NOYTnRxd4V0JAxYMTaXpGRLF+WKX5LkmFFZ9fTNp1baV5ShuVabzLYSAvXsEDYGlqUR0
         dX0P9jp9zEcoQVAHJhfq3btYitn3ummAq3s/Tbrg0G4m+IZ3USnDtAN9mjWRk2p678nM
         bu8hPB0ADjRgEB802epcDLJa/1paVNCncjHu+u12B6/lXveety08d1q+cmYoLcui655r
         va3WkbUHlUpbzTp4mwlaUyXuM/TJNDM5zqvy+G9TSpaOSvzn2hRsxZVXLoeyVZM/0ClT
         MkEA==
X-Forwarded-Encrypted: i=1; AJvYcCU0AUxe9hfNRqB1ToX5eiWs/tE6yvHYx7TmLbATOW2w2Ei5StRleAkwVJLabuMtgrk4omH8vlhoqfc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxt1IbbPMcB3SbgCy4jr8yfoWINtTl7iRTZc+Uf/WO+dVZJNu2K
	E1XQ4fd28a5NMwzBr/KBxMl1Y63BTT03ragj56ECQ5J2ZPdvaqIF2OhuPNPHzd+BaQ==
X-Gm-Gg: ASbGncvhxU997Vh41WYI5rJqvenaK/l0R0xZ0y/0gIZ9CETBYAcijYOXunI8/aea0jc
	SXqezU/54XEvOZ0M0hyVbqqhzERXItOKG36SRMtUH9Uu7fyXUBSQjXtvWKdMvCjHrLD0424HZCP
	vqjU29gC+bP+btCJKhtIzAX3klLzqSwytZns3vcj0+qKKoRMY3yr+TxoUurOb0Yf7ewL2V3n1rG
	/6H/aYTT7VA0rNvIGLZZDx+uERIXlPBEBhp3N8IXfPd+WENsX6OQql/4qLc7el8RrWQf1s4J4IV
	qB7D4SoqLkl4ZjLd58iQaYB+TOaeYF0up3rZ70kDYE32OdzsbQrmm2oivuzETwpSN3chnZ0hHEW
	pog+PQypwDmiJCuAU/liF9kVKDr20QtTr3x7jwqG5MCP0I8dCawHQQxntYK4G+SQJNNEbdM7Ase
	H56ZT53mA=
X-Google-Smtp-Source: AGHT+IG7stXwLWKHD8l30pszf+96RR8ZlAFagfiw95h6g5bLkl12fazdhFE7F6VXeuneevnSGQBktA==
X-Received: by 2002:a17:907:c1c:b0:af9:a5f8:2f0c with SMTP id a640c23a62f3a-afe29054033mr1062679166b.28.1756136726089;
        Mon, 25 Aug 2025 08:45:26 -0700 (PDT)
Message-ID: <47daf787-5fda-4333-b456-64dabec10cd1@suse.com>
Date: Mon, 25 Aug 2025 17:45:25 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 6/8] tools/xl: enable NS16550-compatible UART emulator
 for HVM (x86)
To: Anthony PERARD <anthony@xenproject.org>
Cc: dmkhn@proton.me, xen-devel@lists.xenproject.org,
 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
References: <20250731192130.3948419-1-dmukhin@ford.com>
 <20250731192130.3948419-7-dmukhin@ford.com> <aKx4FtlhAbXxtZlB@l14>
 <844bb7f7-2e56-41e0-b304-77e9e9650eb1@suse.com> <aKx9ihn4i0LCq0Bn@l14>
 <48f72997-ba07-4a9c-998e-76b02f2863f0@suse.com> <aKyDmsiYxC0kvvGw@l14>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aKyDmsiYxC0kvvGw@l14>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.08.2025 17:39, Anthony PERARD wrote:
> On Mon, Aug 25, 2025 at 05:27:41PM +0200, Jan Beulich wrote:
>> On 25.08.2025 17:13, Anthony PERARD wrote:
>>> On Mon, Aug 25, 2025 at 05:03:40PM +0200, Jan Beulich wrote:
>>>> On 25.08.2025 16:49, Anthony PERARD wrote:
>>>>> On Thu, Jul 31, 2025 at 07:22:12PM +0000, dmkhn@proton.me wrote:
>>>>>> -=item B<vuart="uart">
>>>>>> +=item B<vuart=[ "sbsa_uart", "ns16550" ]>
>>>>>
>>>>> This syntax here would inditace that `vuart` takes a list of items. You
>>>>> could write instead:
>>>>>
>>>>>     vuart="UART"
>>>>>
>>>>> which seems more in line with the rest of the man page. Then you can add
>>>>> some thing like "with UART been one of "sbsa_uart" or "ns16550". It's
>>>>> possible to also have a sublist, like the `tee` option have.
>>>>
>>>> But shouldn't the syntax already now allow for multiple items? Possibly
>>>> even multiple ones of the same kind?
>>>
>>> How does `vuart="uart"` allow for multiple items?
>>
>> Precisely. I would have expected it to be e.g.
>>
>> vuart = [ "ns16550", "ns16550", "sbsa-uart" ]
> 
> This is not an option.
> 
> Having mutliple ns16550 would do exactly the same thing as having a
> single one. It's not possible to have both ns16550 and sbsa_uart at the
> same time, one is for x86, one is for Arm. I don't know if it's possible
> to have several sbsa_uart but the code in libxl doesn't have the
> capability.
> 
> So overall, I don't think having a list in the xl.cfg syntax is useful
> right now. It's easy to change later, I think.

Well, never mind then.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 15:50:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 15:50:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093565.1449031 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqZSR-0007gw-L0; Mon, 25 Aug 2025 15:50:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093565.1449031; Mon, 25 Aug 2025 15:50: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 1uqZSR-0007gH-He; Mon, 25 Aug 2025 15:50:07 +0000
Received: by outflank-mailman (input) for mailman id 1093565;
 Mon, 25 Aug 2025 15:50:05 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vK8y=3F=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1uqZSP-0007ZX-KC
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 15:50:05 +0000
Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com
 [2a00:1450:4864:20::62f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2aa8d012-81cb-11f0-a32c-13f23c93f187;
 Mon, 25 Aug 2025 17:50:04 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-afcb7a3a085so716640966b.2
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 08:50:04 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afe6cdbd545sm369145566b.54.2025.08.25.08.50.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 08:50: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>
X-Inumbo-ID: 2aa8d012-81cb-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756137004; x=1756741804; darn=lists.xenproject.org;
        h=subject:from:to:content-language:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SskRZUZgLM/d2rrCHGTz+gwLdTtrayDukCxpAGwFy4A=;
        b=I6SbGqHbOzZBvParLifmJrUCPmPjp07wDgGVfkHlBzNF4DU0bzmofW/3tdpSjViu9j
         a8WlTUcpVCg7Yww+qliEnyvk7pPeFBLsutMgqozwkiEN1KNJCWJxS2bxGM6ZBvYzLrjR
         nf1iummcGs2C5EoT+oQDymNKtc7Pejxo7At8MQ2otQqfK/jNpstgN7zRfBqCrfZTii4p
         UvNnN7RAUhYly1XTwituOtnKQlhBKE4ktKNDaau1ZWfeJcbt3bXvqlxejwNt6cx3k2R2
         uGmiUwb5dOJDjTrY6Ld8llZiO2qXKkLeoUS5LonH7XFEEP+Zz25l84H8K9uCZmzGEyD1
         Z/9g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756137004; x=1756741804;
        h=subject:from:to:content-language:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=SskRZUZgLM/d2rrCHGTz+gwLdTtrayDukCxpAGwFy4A=;
        b=pDXfLQ4yrYp4FEsqArQPad11mHFZlHYH+lmkg46qIQTEcULytBOtW/8LyAdUF3p7bs
         123wyb9/2np/YoTnNDkJht9YqW+lZVNx1Mari5ycfSqqe14lYlG0bv/EALMY02SF+Moc
         a/oJIyUNppp1jqDzTr74DtFjjx9cfpL6z4A5zko8KmCprvDtYLsHz6AJb+Vuv7UooPuE
         Fxsi1+vB8Vc3LMymnq1msbUJJw7sZEuERPciFgalsQ8Q4eAY9bUvCLM/IioxaMmaDiM4
         pZQpB/j7oz6GyPDAWPr52HAWjPWvXIIN/YUobO5p0GJ8tpNtUj3/1jNmtiH/QKrlmrKO
         CYlQ==
X-Gm-Message-State: AOJu0Yx1fBhvfwwRBVd0GezrZ7L82Ac5eN+ODQjpIMQb0HvnWpgzO1tF
	9gpdH+8nvGibgLK86QilhMecJy0qTNg5oLtMF0hQDXAw6XO5m7jyhsvQxx2gvw==
X-Gm-Gg: ASbGncsyjR0bxnMuesiyCKKhV+mywQ0hoXfr936Hs03qXwGQTb8VABaOFEuJeEZdEXF
	SjO8SUm05mf4LrmhwIYJDWPLkUDzpL2MoffnmUxX7ru+ccGRaY3lNaN3EZNr8x1TVOAEeO43KYW
	mLMQGzknyCoyQXMXnb2jn5E9IoJXBcdcwZxyj8MYl9SjEuE5lnKDiEk6BR2z42o5Kkx4efp5Vtz
	s8ZXGpnYSNyDxfeJqb7R3mORWzNDLTK6yU3tntDHmjDKVjQlc9DjChQs4w+MeS6cd4U4KZkdex5
	BnBeNtuY/6CY+RayBsbRoDpggkNyvzY3eyHvKkRv39EFNv4HPvlw/jDbGTtJRwwG8yvmjPhZy3X
	NzYACFoafdI/mAn9MbV7yhtO+JIu38uEjWc9rR2Z7pAbbAerxQilxVh3dYgD8GhcI1EctJ+k=
X-Google-Smtp-Source: AGHT+IGexMniwdkNY5LlokcHzFOJCefEk0K4YXVScGKBP3iRlfECuEj3CxG1EUTUfdVQTtxN4ahk+g==
X-Received: by 2002:a17:907:6d12:b0:af2:42e8:ad92 with SMTP id a640c23a62f3a-afe2963df7dmr1204098666b.61.1756137003376;
        Mon, 25 Aug 2025 08:50:03 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------rqeomJbHqoerFSMl0BcNalTV"
Message-ID: <07fc7122-d0ac-4dbe-800d-89086a07005b@gmail.com>
Date: Mon, 25 Aug 2025 17:50:02 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: Xen-devel <xen-devel@lists.xenproject.org>,
 Community Manager <community.manager@xenproject.org>,
 "committers@xenproject.org" <committers@xenproject.org>
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [Reminder] Feature Freeze is Fri Aug 29, 2025

This is a multi-part message in MIME format.
--------------rqeomJbHqoerFSMl0BcNalTV
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hello community,

Iâ€™d like to remind everyone that the Feature Freeze deadline is approaching,
and we still have some outstanding requests from the community for patch series
to be merged into 4.21:

1. Enable guest suspend/resume support on ARM via vPSCI [1]
2. Introduce SCI SCMI SMC multi-agent support [2]
3. Introduce eSPI support [3]
4. FRED work: [4], [5], possibly others (?)
5. Introduce CONFIG_DOMCTL [6]
6. xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE [7]
7. Some other patch series I missed.

It looks like some of these patch series still require additional work,
and Iâ€™m not sure there is enough time left before the end of this week.

Could I kindly ask for an estimation of whether these tasks can be completed in time?

[1]https://lore.kernel.org/xen-devel/87jz2vaq9h.fsf@epam.com/
[2]https://lore.kernel.org/xen-devel/cover.1753184487.git.oleksii_moisieiev@epam.com/
[3]https://lore.kernel.org/xen-devel/7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com/

[4]https://lore.kernel.org/xen-devel/20250808202314.1045968-1-andrew.cooper3@citrix.com/
[5]https://lore.kernel.org/xen-devel/20250815204117.3312742-1-andrew.cooper3@citrix.com/

[6]https://lore.kernel.org/xen-devel/20250803094738.3625269-6-Penny.Zheng@amd.com/
[7]https://lore.kernel.org/xen-devel/20250815102728.1340505-1-Penny.Zheng@amd.com/

Thanks in advance.

Best regards,
   Oleksii

--------------rqeomJbHqoerFSMl0BcNalTV
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <pre>Hello community,

Iâ€™d like to remind everyone that the Feature Freeze deadline is approaching,
and we still have some outstanding requests from the community for patch series
to be merged into 4.21:

1. Enable guest suspend/resume support on ARM via vPSCI [1]
2. Introduce SCI SCMI SMC multi-agent support [2]
3. Introduce eSPI support [3]
4. FRED work: [4], [5], possibly others (?)
5. Introduce CONFIG_DOMCTL [6]
6. xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE [7]
7. Some other patch series I missed.

It looks like some of these patch series still require additional work,
and Iâ€™m not sure there is enough time left before the end of this week.

Could I kindly ask for an estimation of whether these tasks can be completed in time?

[1] <a class="moz-txt-link-freetext" href="https://lore.kernel.org/xen-devel/87jz2vaq9h.fsf@epam.com/">https://lore.kernel.org/xen-devel/87jz2vaq9h.fsf@epam.com/</a>
[2] <a class="moz-txt-link-freetext" href="https://lore.kernel.org/xen-devel/cover.1753184487.git.oleksii_moisieiev@epam.com/">https://lore.kernel.org/xen-devel/cover.1753184487.git.oleksii_moisieiev@epam.com/</a>
[3] <a class="moz-txt-link-freetext" href="https://lore.kernel.org/xen-devel/7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com/">https://lore.kernel.org/xen-devel/7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com/</a>

[4] <a class="moz-txt-link-freetext" href="https://lore.kernel.org/xen-devel/20250808202314.1045968-1-andrew.cooper3@citrix.com/">https://lore.kernel.org/xen-devel/20250808202314.1045968-1-andrew.cooper3@citrix.com/</a>
[5] <a class="moz-txt-link-freetext" href="https://lore.kernel.org/xen-devel/20250815204117.3312742-1-andrew.cooper3@citrix.com/">https://lore.kernel.org/xen-devel/20250815204117.3312742-1-andrew.cooper3@citrix.com/</a>

[6] <a class="moz-txt-link-freetext" href="https://lore.kernel.org/xen-devel/20250803094738.3625269-6-Penny.Zheng@amd.com/">https://lore.kernel.org/xen-devel/20250803094738.3625269-6-Penny.Zheng@amd.com/</a>
[7] <a class="moz-txt-link-freetext" href="https://lore.kernel.org/xen-devel/20250815102728.1340505-1-Penny.Zheng@amd.com/">https://lore.kernel.org/xen-devel/20250815102728.1340505-1-Penny.Zheng@amd.com/</a>

Thanks in advance.

Best regards,
  Oleksii
</pre>
  </body>
</html>

--------------rqeomJbHqoerFSMl0BcNalTV--


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 16:03:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 16:03:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093578.1449040 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqZeu-0002N2-Nb; Mon, 25 Aug 2025 16:03:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093578.1449040; Mon, 25 Aug 2025 16: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 1uqZeu-0002Mv-L3; Mon, 25 Aug 2025 16:03:00 +0000
Received: by outflank-mailman (input) for mailman id 1093578;
 Mon, 25 Aug 2025 16:02:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=J9Dq=3F=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqZet-0002KK-1o
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 16:02:59 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f2d0cbad-81cc-11f0-a32c-13f23c93f187;
 Mon, 25 Aug 2025 18:02:49 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-afcb78f5df4so778265866b.1
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 09:02: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
 a640c23a62f3a-afe4937a15asm578066366b.115.2025.08.25.09.02.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 09:02: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>
X-Inumbo-ID: f2d0cbad-81cc-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756137769; x=1756742569; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=YwHb0lXvUKYGStJtavJtg8Z/mJpRZxzNQ++Tr5ajLnA=;
        b=PdFoUZE5v1P8Nfc3Jkj4NtCiAFOQQvP+TWPcxNqX73swUQtAm2xXVgHpXxWdmIit3I
         HBxMruYtnAkPPGJSlFmjfjjUJTZhzVQTQAVKdLwwTppMGUo/fPxj9E/DsuhfAtc7yjYR
         0+fI8hggFAUqaP6J3gA3mBIjHrI3QKj+rUiq/2jLeL1JTYV5kTGy7Z8E7sMcgeTqJ4TQ
         6s++Cd+pPn1uxhlYJBlDL55Z4FR2h9xvf+xEd7a/F/ZMrFAD+MPxdDN4u3Pp2YiAgK/6
         6gGQXdqUbKnxr+dFRknlQIrvoD3nqm3fhQf/PShow55HrQlBvFQSo/qkDD1ujEzbRcfM
         X8iw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756137769; x=1756742569;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YwHb0lXvUKYGStJtavJtg8Z/mJpRZxzNQ++Tr5ajLnA=;
        b=GceXUA1sZH4zwBujnxzTDvvBjpiQ+dpKPhtiiipb0X6A/AU9HYtp/P62bMuVvpK+d0
         6hnncI5gHIEdVIgM3DdnDGzdl+S4bgOwth+Hz52bueIBF7/mK8xSzGO+kRXfzONYXjxo
         qSSVOjNBvjJxMvl1XiPr4iXruBmzryNU4Jx31lW5qfnQiT2DCILvo7B00FJJtvCmVrGv
         3q66G0ClanilyKljlneDDGpM3fP92NX6rd0rZqsmZVQPYaJH74z+2M3d2FghWV4bV2dJ
         bGcU29wIVy2wTDVaruyYFCcytQeGm+qir6hfNWzJDAfNKSzgxiKVv1gfME9o7HxHIjvq
         a8bQ==
X-Forwarded-Encrypted: i=1; AJvYcCUBt393tYaqFJ4KSSpZN9l4LHWRKwgbTGvIxTw60DrkYbDZpPgqerq2D1tPmtjL81/xCDBi4vKJ/uI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw4m85Rk9tHLJutfyIASlI4CbGEbJipYfp0FphY6iYlPsybrwFW
	5UwmNFWhpv9w27PjrAqZMURyNjJMLL5RuV54QtcJr63xNLqsAZoKGilKx08srdf5+w==
X-Gm-Gg: ASbGncvhK6YVWfsNfqGTIyl00rL4n0qWQajp40bDA5035jgStZ+WhWYunmnS8IpumwB
	heckoyUZbd3BkqzUV36KtiVkr3itZMwYFPC9ewD1k9h5hh0883j3jxNvo42f43bDHqhkCAo8UAD
	GA3hga0Hlq4R0aKTE+WglaVfGVHL+V6pvnMUEAT3RpumLgYurd8oe0alfSxDcoUJPpXpQwJq+8M
	rCyL5qccH/Oqe0hnVmAID7fyhQXt4lglHV17L3AQeOGBTN4lIBEmAMhv0pkMgf69Fj5X5m5J72V
	+h7081B9uKhoGTdXzzjas9K8ZD5G28HQ6RP/GITKwjonw7KUc8OC/xI/rk7kCjJL8/K3JaWzQhh
	LkEr9XR0gW7ylUQoSF0M0jPuY0i3nb2joG9iNNNxkOl80rHs++CywZ247cMeFASjZ7E8mLxQ5KB
	Mi4J7SBYcIDDV7wusyVw==
X-Google-Smtp-Source: AGHT+IF/YvAE2sne/+Fd2LlTyPXEZ3pGRKF/L0bg+Lo2/swdJzntflhsYEljyqbuAm0TBwh5nsuaiQ==
X-Received: by 2002:a17:907:3e1c:b0:ae0:d4b1:b5f0 with SMTP id a640c23a62f3a-afe29548f25mr1053281966b.35.1756137768872;
        Mon, 25 Aug 2025 09:02:48 -0700 (PDT)
Message-ID: <f27c17e6-8c88-42f3-b0e2-874aa02597c5@suse.com>
Date: Mon, 25 Aug 2025 18:02:47 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 13/13] xen/cpufreq: Adapt SET/GET_CPUFREQ_CPPC
 xen_sysctl_pm_op for amd-cppc driver
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, Anthony PERARD <anthony.perard@vates.tech>,
 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>, xen-devel@lists.xenproject.org
References: <20250822105218.3601273-1-Penny.Zheng@amd.com>
 <20250822105218.3601273-14-Penny.Zheng@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: <20250822105218.3601273-14-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.08.2025 12:52, Penny Zheng wrote:
> --- a/xen/arch/x86/acpi/cpufreq/amd-cppc.c
> +++ b/xen/arch/x86/acpi/cpufreq/amd-cppc.c
> @@ -557,6 +557,187 @@ static int cf_check amd_cppc_epp_set_policy(struct cpufreq_policy *policy)
>      return 0;
>  }
>  
> +#ifdef CONFIG_PM_OP
> +int get_amd_cppc_para(const struct cpufreq_policy *policy,
> +                      struct xen_get_cppc_para *cppc_para)

amd_cppc_get_para() and ...

> +{
> +    const struct amd_cppc_drv_data *data = per_cpu(amd_cppc_drv_data,
> +                                                   policy->cpu);
> +
> +    if ( data == NULL )
> +        return -ENODATA;
> +
> +    cppc_para->policy           = policy->policy;
> +    cppc_para->lowest           = data->caps.lowest_perf;
> +    cppc_para->lowest_nonlinear = data->caps.lowest_nonlinear_perf;
> +    cppc_para->nominal          = data->caps.nominal_perf;
> +    cppc_para->highest          = data->caps.highest_perf;
> +    cppc_para->minimum          = data->req.min_perf;
> +    cppc_para->maximum          = data->req.max_perf;
> +    cppc_para->desired          = data->req.des_perf;
> +    cppc_para->energy_perf      = data->req.epp;
> +
> +    return 0;
> +}
> +
> +int set_amd_cppc_para(struct cpufreq_policy *policy,
> +                      const struct xen_set_cppc_para *set_cppc)

... amd_cppc_set_para() would imo be more consistent names, considering how
other functions are named.

> +{
> +    unsigned int cpu = policy->cpu;
> +    struct amd_cppc_drv_data *data = per_cpu(amd_cppc_drv_data, cpu);
> +    uint8_t max_perf, min_perf, des_perf, epp;
> +    bool active_mode = cpufreq_is_governorless(cpu);
> +
> +    if ( data == NULL )
> +        return -ENOENT;
> +
> +    /* Return if there is nothing to do. */
> +    if ( set_cppc->set_params == 0 )
> +        return 0;

That is ...

> +    /* Only allow values if params bit is set. */
> +    if ( (!(set_cppc->set_params & XEN_SYSCTL_CPPC_SET_DESIRED) &&
> +          set_cppc->desired) ||
> +         (!(set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MINIMUM) &&
> +          set_cppc->minimum) ||
> +         (!(set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MAXIMUM) &&
> +          set_cppc->maximum) ||
> +         (!(set_cppc->set_params & XEN_SYSCTL_CPPC_SET_ENERGY_PERF) &&
> +          set_cppc->energy_perf) )
> +        return -EINVAL;

... all the errors checked here are to be ignored when no flag is set at
all?

> +    /*
> +     * Validate all parameters
> +     * Maximum performance may be set to any performance value in the range
> +     * [Nonlinear Lowest Performance, Highest Performance], inclusive but must
> +     * be set to a value that is larger than or equal to minimum Performance.
> +     */
> +    if ( (set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MAXIMUM) &&
> +         (set_cppc->maximum > data->caps.highest_perf ||
> +          set_cppc->maximum <
> +                        (set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MINIMUM
> +                         ? set_cppc->minimum
> +                         : data->req.min_perf)) )

Too deep indentation (more of this throughout the function), and seeing ...

> +        return -EINVAL;
> +    /*
> +     * Minimum performance may be set to any performance value in the range
> +     * [Nonlinear Lowest Performance, Highest Performance], inclusive but must
> +     * be set to a value that is less than or equal to Maximum Performance.
> +     */
> +    if ( (set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MINIMUM) &&
> +         (set_cppc->minimum < data->caps.lowest_nonlinear_perf ||
> +          (set_cppc->minimum >

... this, one more pair of parentheses may also help there. (Recall:
symmetry where possible.)

> +                        (set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MAXIMUM
> +                         ? set_cppc->maximum
> +                         : data->req.max_perf))) )
> +        return -EINVAL;
> +    /*
> +     * Desired performance may be set to any performance value in the range
> +     * [Minimum Performance, Maximum Performance], inclusive.
> +     */
> +    if ( set_cppc->set_params & XEN_SYSCTL_CPPC_SET_DESIRED )
> +    {
> +        if ( active_mode )
> +            return -EOPNOTSUPP;
> +
> +        if ( (set_cppc->desired >
> +                        (set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MAXIMUM
> +                         ? set_cppc->maximum
> +                         : data->req.max_perf)) ||
> +             (set_cppc->desired <
> +                        (set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MINIMUM
> +                         ? set_cppc->minimum
> +                         : data->req.min_perf)) )
> +            return -EINVAL;
> +    }
> +    /*
> +     * Energy Performance Preference may be set with a range of values
> +     * from 0 to 0xFF
> +     */
> +    if ( set_cppc->set_params & XEN_SYSCTL_CPPC_SET_ENERGY_PERF )
> +    {
> +        if ( !active_mode )
> +            return -EOPNOTSUPP;
> +
> +        if ( set_cppc->energy_perf > UINT8_MAX )
> +            return -EINVAL;
> +    }
> +
> +    /* Activity window not supported in MSR */
> +    if ( set_cppc->set_params & XEN_SYSCTL_CPPC_SET_ACT_WINDOW )
> +        return -EOPNOTSUPP;
> +
> +    epp = per_cpu(epp_init, cpu);
> +    min_perf = data->caps.lowest_nonlinear_perf;
> +    max_perf = data->caps.highest_perf;
> +    des_perf = data->req.des_perf;
> +    /*
> +     * Apply presets:
> +     * XEN_SYSCTL_CPPC_SET_PRESET_POWERSAVE/PERFORMANCE/ONDEMAND are
> +     * only available when CPPC in active mode
> +     */
> +    switch ( set_cppc->set_params & XEN_SYSCTL_CPPC_SET_PRESET_MASK )
> +    {
> +    case XEN_SYSCTL_CPPC_SET_PRESET_POWERSAVE:
> +        if ( !active_mode )
> +            return -EINVAL;
> +        policy->policy = CPUFREQ_POLICY_POWERSAVE;
> +        /*
> +         * Lower max_perf to nonlinear_lowest to achieve
> +         * ultmost power saviongs
> +         */
> +        max_perf = min_perf;
> +        epp = CPPC_ENERGY_PERF_MAX_POWERSAVE;
> +        break;
> +
> +    case XEN_SYSCTL_CPPC_SET_PRESET_PERFORMANCE:
> +        if ( !active_mode )
> +            return -EINVAL;
> +        policy->policy = CPUFREQ_POLICY_PERFORMANCE;
> +        /* Increase min_perf to highest to achieve ultmost performance */
> +        min_perf = max_perf;
> +        epp = CPPC_ENERGY_PERF_MAX_PERFORMANCE;
> +        break;
> +
> +    case XEN_SYSCTL_CPPC_SET_PRESET_ONDEMAND:
> +        if ( !active_mode )
> +            return -EINVAL;
> +        policy->policy = CPUFREQ_POLICY_ONDEMAND;
> +        /*
> +         * Take medium value to show no preference over
> +         * performance or powersave
> +         */
> +        epp = CPPC_ENERGY_PERF_BALANCE;
> +        break;
> +
> +    case XEN_SYSCTL_CPPC_SET_PRESET_NONE:
> +        if ( active_mode )
> +            policy->policy = CPUFREQ_POLICY_UNKNOWN;
> +        break;
> +
> +    default:
> +        return -EINVAL;
> +    }

Much of this looks very similar to what patch 09 introduces in
amd_cppc_epp_set_policy(). Is it not possible to reduce the redundancy?

> --- a/xen/include/acpi/cpufreq/cpufreq.h
> +++ b/xen/include/acpi/cpufreq/cpufreq.h
> @@ -81,7 +81,18 @@ struct cpufreq_policy {
>      int8_t              turbo;  /* tristate flag: 0 for unsupported
>                                   * -1 for disable, 1 for enabled
>                                   * See CPUFREQ_TURBO_* below for defines */
> -    unsigned int        policy; /* CPUFREQ_POLICY_* */
> +    unsigned int        policy; /* Performance Policy
> +                                 * If cpufreq_driver->target() exists,
> +                                 * the ->governor decides what frequency
> +                                 * within the limits is used.
> +                                 * If cpufreq_driver->setpolicy() exists, these
> +                                 * following policies are available:
> +                                 * CPUFREQ_POLICY_PERFORMANCE represents
> +                                 * maximum performance
> +                                 * CPUFREQ_POLICY_POWERSAVE represents least
> +                                 * power consumption
> +                                 * CPUFREQ_POLICY_ONDEMAND represents no
> +                                 * preference over performance or powersave */

Besides not being a well-formed comment, this is close to unreadable in this
shape. This much text wants putting ahead of the field.

> --- a/xen/include/public/sysctl.h
> +++ b/xen/include/public/sysctl.h
> @@ -336,8 +336,14 @@ struct xen_ondemand {
>      uint32_t up_threshold;
>  };
>  
> +#define CPUFREQ_POLICY_UNKNOWN      0
> +#define CPUFREQ_POLICY_POWERSAVE    1
> +#define CPUFREQ_POLICY_PERFORMANCE  2
> +#define CPUFREQ_POLICY_ONDEMAND     3

Without XEN_ prefixes they shouldn't appear in a public header. But do
we need ...

>  struct xen_get_cppc_para {
>      /* OUT */
> +    uint32_t policy; /* CPUFREQ_POLICY_xxx */

... the new field at all? Can't you synthesize the kind-of-governor into
struct xen_get_cpufreq_para's respective field? You invoke both sub-ops
from xenpm now anyway ...

Jan


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 16:05:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 16:05:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093592.1449051 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqZgu-0002y1-7V; Mon, 25 Aug 2025 16:05:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093592.1449051; Mon, 25 Aug 2025 16:05: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 1uqZgu-0002xu-4Q; Mon, 25 Aug 2025 16:05:04 +0000
Received: by outflank-mailman (input) for mailman id 1093592;
 Mon, 25 Aug 2025 16:05:03 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=J9Dq=3F=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqZgt-0002xm-M1
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 16:05:03 +0000
Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com
 [2a00:1450:4864:20::52f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4202c6a9-81cd-11f0-a32c-13f23c93f187;
 Mon, 25 Aug 2025 18:05:02 +0200 (CEST)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-61c68525abbso2320403a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 09:05: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
 4fb4d7f45d1cf-61c805d1132sm705959a12.57.2025.08.25.09.05.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 09:05: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>
X-Inumbo-ID: 4202c6a9-81cd-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756137902; x=1756742702; 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=sYLf0jpyXE9cd012+rLxNdrvgH164Y/E+5agRZgN5gQ=;
        b=PLX6kEFuLGav2enLNK1okpxVIQwFJTfuSdDWIg/NfdLOKJHmEDxoVNojnD3aCWb2ii
         fxgRmdc1rXrYGV87R4tKsk50+Us44QG8b5bhBW/AOKjo4xMfAATwm65q7RSSzwf531Uy
         0/RFv6LuDgUTH3zepk0hjX/T6sP5VOurFsXvCJxoXXRuPlvQ++VqNseSzvbxGpIDybPg
         fKObJx+Ani0Bvi9R/a9xH12A3jY/YxObjphQL0dvMtXW6ImuqM3GxhXCMUhT67f97dNp
         ci2zAMvNVbL0t7HUeiNjBX31YQbicLX0Uu9BajXS4XzUctH02im8rGg1O8XKno+EXGbe
         ZeAg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756137902; x=1756742702;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc
         :content-language:references:to:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=sYLf0jpyXE9cd012+rLxNdrvgH164Y/E+5agRZgN5gQ=;
        b=WuzvBVemlnRAXLwV2+WWGdfhIqWz0/3oucjr725iCYT355fSL0me52IBLekSu861ij
         efVutbRJvDgaWcmXtr8Qxpz21cpaJaWGdqyRveJgnzbFQSwuxkjI2RknlmC+3dkK72wt
         3JCk4HtLNQ97aKoNH5cy3AIiUZXu9cYsjCqwseR8elsAfuWPPWx1N/QqK+QSO+OpNf4H
         C7PCZUEV7A2BJLJGW7k4kJ+NwkYA/sxau7tzQ+O/LcPStVSE/XwUlpwoV4JD+ggeuJHZ
         cTEWiqG9dSz4vSVENb2goZD9wq2Cx6EGMrBcuiFvBPAQ/mwSBP6U3q5A5JJP255UZIJk
         2mgA==
X-Gm-Message-State: AOJu0YygexpUsPnk5HTlFL6cWqOhrjfD/SYLRKTblG+rA+ZbMwF7KF7b
	IMKsDLuvZ/PT6CMuG0cwo6ZuLRM5xmqEQGZJ6QKIbf+Ufmwq0+Gn4LeZBX4GIMuHPA==
X-Gm-Gg: ASbGncvk16whFFDOkcVsM7wbL6hOGCJyYMJwhBC2H6VvDyccXiidRRgECKIfO1uClKA
	m9wdCtgMT/71Jfu+nkG3RW7pHK/M70bj7fJt5cZONM8kscHGsIOtXkONzJ7W0meaI10vgYKMrWW
	OQiC87aYFap95DpaXEhIwZ+GimvvvX0tu4Hl6gsOnm9I/JJvCMdy6LwqmSG2/JoX3vJbb6Fobq7
	8V1sVcmkRMHPOKrbZlRDH/XZh14G1/XIRLipLJbmFN8B9wfwA/nmtpqN7HHpyDSCOsmsaAwGn+z
	KdXLyS2b+4OZQV0JwJISMyEUFK4VSMVPYwj/kXoGm+mH6qhDl7Q1RhEX3i6S+fmFB2xAxvGBAE5
	szjttTw6EkLq+3zeIn4jM8PPrziZxzpLzLTppvwF/a6WGn5Dx2jgAR5AQ/1bUq/vjmpe6O066mR
	C8M1f3zLE=
X-Google-Smtp-Source: AGHT+IFIKA5oS26ruzTfe/1ecskTwWMbHRc4jhs1wGbns6fsU2VTRJ4uXLV1gXJQsJTN4UNQ3doKZA==
X-Received: by 2002:a05:6402:50d1:b0:618:682f:14d0 with SMTP id 4fb4d7f45d1cf-61c1b70566amr10373174a12.21.1756137901864;
        Mon, 25 Aug 2025 09:05:01 -0700 (PDT)
Message-ID: <fb68f7e5-7215-4a16-bb9d-6d3d071f9f23@suse.com>
Date: Mon, 25 Aug 2025 18:05:01 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [Reminder] Feature Freeze is Fri Aug 29, 2025
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <07fc7122-d0ac-4dbe-800d-89086a07005b@gmail.com>
Content-Language: en-US
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Community Manager <community.manager@xenproject.org>,
 "committers@xenproject.org" <committers@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: <07fc7122-d0ac-4dbe-800d-89086a07005b@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 25.08.2025 17:50, Oleksii Kurochko wrote:
> Hello community,
> 
> Iâ€™d like to remind everyone that the Feature Freeze deadline is approaching,
> and we still have some outstanding requests from the community for patch series
> to be merged into 4.21:
> 
> 1. Enable guest suspend/resume support on ARM via vPSCI [1]
> 2. Introduce SCI SCMI SMC multi-agent support [2]
> 3. Introduce eSPI support [3]
> 4. FRED work: [4], [5], possibly others (?)
> 5. Introduce CONFIG_DOMCTL [6]
> 6. xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE [7]

As per a mail sent earlier today, for these two we will need to settle on
which route to take, including the consideration of whether the work can
realistically be completed in time (or whether an upfront exception could
be granted).

Jan

> 7. Some other patch series I missed.
> 
> It looks like some of these patch series still require additional work,
> and Iâ€™m not sure there is enough time left before the end of this week.
> 
> Could I kindly ask for an estimation of whether these tasks can be completed in time?
> 
> [1]https://lore.kernel.org/xen-devel/87jz2vaq9h.fsf@epam.com/
> [2]https://lore.kernel.org/xen-devel/cover.1753184487.git.oleksii_moisieiev@epam.com/
> [3]https://lore.kernel.org/xen-devel/7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com/
> 
> [4]https://lore.kernel.org/xen-devel/20250808202314.1045968-1-andrew.cooper3@citrix.com/
> [5]https://lore.kernel.org/xen-devel/20250815204117.3312742-1-andrew.cooper3@citrix.com/
> 
> [6]https://lore.kernel.org/xen-devel/20250803094738.3625269-6-Penny.Zheng@amd.com/
> [7]https://lore.kernel.org/xen-devel/20250815102728.1340505-1-Penny.Zheng@amd.com/
> 
> Thanks in advance.
> 
> Best regards,
>    Oleksii
> 



From xen-devel-bounces@lists.xenproject.org Mon Aug 25 17:34:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 17:34:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093626.1449108 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqb51-0006qs-Tj; Mon, 25 Aug 2025 17:34:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093626.1449108; Mon, 25 Aug 2025 17: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 1uqb51-0006ql-R2; Mon, 25 Aug 2025 17:34:03 +0000
Received: by outflank-mailman (input) for mailman id 1093626;
 Mon, 25 Aug 2025 17:34:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/bS3=3F=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1uqb50-0006qf-R1
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 17:34:02 +0000
Received: from GVXPR05CU001.outbound.protection.outlook.com
 (mail-swedencentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c202::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ad65806a-81d9-11f0-b898-0df219b8e170;
 Mon, 25 Aug 2025 19:33:57 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by DBAPR03MB6503.eurprd03.prod.outlook.com (2603:10a6:10:17f::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Mon, 25 Aug
 2025 17:33:53 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9052.019; Mon, 25 Aug 2025
 17:33: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>
X-Inumbo-ID: ad65806a-81d9-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=pyysQZwK5ay6XZXHp79P0cqt3Jr3ZpBoDeMektSPMRqIe8EBcN2Dpr0cX8MbLxQdvhZ/GhArgGeyYIIriFdCUrdgBx0bU43KRSLzqNQYOpJNTDQv2IV5a/MRtoG5YqY6jouGhqzIUHcWYdARuLEkCN+1f8UYFixmdmPjiSgXFHMuDxqCJmsaBdglbwvqbTL+jUqXGjSz+0R8N2g46jqoqNvQOVby/a4/JAZl1bli+TSdq9pmI+k5w7G1Fv0vZoyelv80r3QfuAydCrpHrt3Qk/0hlH0Mh+vLMXfKGHZqENd424+bVZngAWR0jO2NRR81/0I14PAD/1d0gYQ8MQ+FEA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=3fm0xlYOpyRLwtuEFwHUpE4BUXCwejIqICQvfJJcZws=;
 b=v2Qqosdgnl25hGX9Jt42Fc/vyckifM9OKl0GKaodjh0n8rElKAJEJVCwPGwBaxOIeV1l4Hgw43nH82nKJbZcVjQyFZSS8/Z7ufidsshFT+I2T+pktu3AMh8c/uXHEhSuwDTXUF2puZkGnJhDfndbebMbwxiXY6FY6nBsPW74+3rOPZLU5IruCt3nFy8m6irsRLIbXcCx0AWRsdmu3qTBrkA0NV+cnw5UIpMYKFFzfMkYlH0tXpQMuCes8/KX9aPu2ZL3QsD+dyEtBfcgjwijomA/pGbc574NAvnKzuoBE0tJykncLNwz94pH+FKjF3BTKaZ1hSItWFBhV0dLHBzSOg==
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=3fm0xlYOpyRLwtuEFwHUpE4BUXCwejIqICQvfJJcZws=;
 b=kbGt7GvohKo980CPfX33X8lg0EQuvSBBeDllfWCyuIgOeGIh7DnlnaQbXtjEjPRaZrizz53B3wV93ypZpF48EMfh1Z13M1rvoyHzLYPfgoifeE/20ZsTgMKoDBQr0Q43rYZ/4k4dwrk6AeUQYOqO4LmtePRt1HuyZIy/Wz7b8uOnzcDmv1+56NC9IhKvcTl6MRnFM876lZNBP24t/L57fwuMi9pkh+mxLSpE7icEiBwXZvtEektFUZ2Q5W72I9qC6fxF9CB2g3/pOUTyzlUA93tjeoh0B+kIKudiKPYtiipvNN8qptEIcMFdUsHT4JA0tOuvxpMgWh+1uV9GREd1Xw==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Nicola Vetrini <nicola.vetrini@bugseng.com>, Doug Goldstein
	<cardoe@cardoe.com>, Stefano Stabellini <sstabellini@kernel.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien
 Grall <julien@xen.org>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] misra: add deviation of Rule 17.7
Thread-Topic: [PATCH] misra: add deviation of Rule 17.7
Thread-Index:
 AQHcFZ9zsboRH18vd0iLUvum4pfwBbRzK0qAgAAH1ACAAAJ8AIAAJzmAgAAMhACAADhBgA==
Date: Mon, 25 Aug 2025 17:33:52 +0000
Message-ID: <7729c3cd-c1d6-4abf-8e44-293702f47545@epam.com>
References:
 <ad15582787e675fadf92502f85041c3232749a99.1756112701.git.dmytro_prokopchuk1@epam.com>
 <53d5cee3-9001-49a2-9da2-e56950a77683@suse.com>
 <83267937-938d-43d8-ba2c-a07d6adb93a9@epam.com>
 <330f8ee8-9fcd-40e4-96c0-ac126b047070@suse.com>
 <37bb8530-c9e4-4ad4-8959-d1f13316a0fd@epam.com>
 <bd88b7d0-92aa-45c9-8b8e-730bc7edc7b3@suse.com>
In-Reply-To: <bd88b7d0-92aa-45c9-8b8e-730bc7edc7b3@suse.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV2PR03MB9572:EE_|DBAPR03MB6503:EE_
x-ms-office365-filtering-correlation-id: 19df7174-b38e-4c51-8491-08dde3fd8f67
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|7416014|376014|366016|1800799024|42112799006|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?SktvdUpKSnMrSEoyd3RqS2ZlQlZpVXo5enEvanhndFJxbG9Ya3hzb1RiUVEy?=
 =?utf-8?B?alF1MmwwL3B2VHprLzF0T1R4cnNuSzdDdU52NzZvYmRQTGpOUHdmNmRHV1pL?=
 =?utf-8?B?OFFqT0JKUHo5WDk4dkhRR0xKT0lyMlR5ZXQ3SDVuVVZBU2p2enhzWk5CdW1I?=
 =?utf-8?B?ZmNhaTVKR0lweTk1WWk0VlFOSS9IeC9RZlRJRkYyanpGRzBvMnljY3B0YXRo?=
 =?utf-8?B?V21VM2dmWmxLNjljTDBQTUM0QkpyeU01RVh5T0hIVmVJVitOZFRDMUNETXI5?=
 =?utf-8?B?MXEyWVBjTFcyRjl5d1FSL3NTSm5xUFgxc2s5Yk5xRW5lY2pRQkJRb0gwYnBH?=
 =?utf-8?B?SDRsTTVUem1SSmM0L1M5NlNYOXJuV21DT1FmZ3hFT09xUnJDa1d2TFRxNnZ4?=
 =?utf-8?B?aFpXajl0cGdEazB2aS9jeVRnV3dFY0RMZVQxY01BakxpVlBqQlRFM3ptN09h?=
 =?utf-8?B?eldWSUIzaUM0bVQ0OWdId1F5dHhkN0h1WkdOeDJuNmlLZy9rMWkwTisvTEtq?=
 =?utf-8?B?R0N0ME1oNzRGY1JlNlYwYjU3ajdGd2F1a0lFRXFsalNYbGE3cWtHT3hkZ2d1?=
 =?utf-8?B?a3BkbFFsQjZvcjFDeE4vcHlaczdFZ01CMzZQL0hrMGxTSUZDSXFJdHZUNmhx?=
 =?utf-8?B?Sm5OT0ZlWUdBU0dmTDExeFZhbnJpNm1qZGFCSUpBOVJ5YVEwMDBqamJzeVZ0?=
 =?utf-8?B?a0hMY0dmb0k1Wjc1a3l4d2lHS2pmU0RISUNBU20zYWs1Wk1JSEdqdVZUM2JU?=
 =?utf-8?B?Zy9keTlwTUpmSHNtQVI5MUdZVnNybUhwdEN6TURZdGUraU1GNHRGc3NTVnBQ?=
 =?utf-8?B?aktHMFk0ZFN2MlBaVW5VTmQxZEtWYlc1NFNoVkhFckYzWk5IWWRtWHBmWWY2?=
 =?utf-8?B?QWdUNm9vZkt2MC9PeTkyWHhSdnV0SFZMU1p3UWFFbVNSMnlBUXphaUN4SlpY?=
 =?utf-8?B?M0RiUVFibGZETVlOd0tPb1Z3RjRUanB3bXdUOXZBVDJOUkRZZE5Oemt5Mk5u?=
 =?utf-8?B?d1R3TTlKYzhQMldyczFvQ0tBODROSGZKMWduWXlxcFU2c01ienU0S1BkSDU4?=
 =?utf-8?B?N2lOeGxnK2xzVWNkaExxZUcxa0hRaFFuYW15UjBlYTVxa0lZZ2kvaUNHeUhO?=
 =?utf-8?B?YnNvZ0sybUFaTnZ3ZEVUU0J6WnpTK2tSWWlHVmNzY0tGa1FKVW5BYXg5VXEz?=
 =?utf-8?B?dnVpT2FDdjl6RmFkaWhKRXVTRlFPZXAvaXB4UnpQV3pBQjJqQy9ENVlibG1Z?=
 =?utf-8?B?UXprUnp1VWJOTW1lVmZyZVB0aGUwckpncHNINW5HbCthNFBCRWdETDNhdkM3?=
 =?utf-8?B?eW0zWjY0RzJJdUZuc3hJaGtBTkg4WWR0K2F3eGpSR1V0cHQ1TWY5NnhLNDZp?=
 =?utf-8?B?aFFRU2c2Vk9HTlhjWFUrOVJJOGNPRHdJSVE4dmZMSk5pQVJKNHAxd1Z4ak9I?=
 =?utf-8?B?alRWRmhaTDJ4M1ZMaFBBVGh3V3VIaVBzbUNzNWNaemdaVm10L092Nm1aaXhG?=
 =?utf-8?B?bnVyTWNGUzg1WW9ab3JLM0hXOWt4VHNZeVJHTzQxd3ltSVNsVFFiVnNGTTFW?=
 =?utf-8?B?RlI1bGRISDFBb3N4bVdVUEQrVjY1QlZWTnlXK1dTTFhOcVh4NWlrY3VmUTFw?=
 =?utf-8?B?c2w1VnZCL1ZSQm8yaFIzeXZJYThrNWZSRC8xYk9QTDRVTTd1ZEs3MFBJbklF?=
 =?utf-8?B?cVkvcEdwd2lWdWs5SmxQeElZVEt2U1dXSmdUM2ZjTTluSXM2aHord3JNK041?=
 =?utf-8?B?L3FwV0ttMDBjNkRnQ2J4cExnVnVRb0lOdzA2Y2NlbzJZRUt5VGhJYXpRUEc0?=
 =?utf-8?B?SUIxVGhVeHMxYkRWYVdwblRMZ0hFUjJDU3JUR0NHRmdDbHdTazFXK1JtR1Yr?=
 =?utf-8?B?OEorKzlVeTMyR0pROTJjSmwwUm9iTEN0TXhQZUVPRGdwcmFZc0xyUVBkc1N2?=
 =?utf-8?B?NjRDLzNHS0R6anVFSldJSW5FRXAvd3hZM2RLNFdISW5QTHhtS2d3Z0NFN0lz?=
 =?utf-8?B?aTJoK1Y1eG1BPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024)(42112799006)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?dG9kNW9xMEcrblg3aDRZSlpOL0FNWEpVM0MxbENOYVlDMHNob1VxWXE1ZENR?=
 =?utf-8?B?ckswa1QrS0FueHVQUE80VG41SDAwMkdlL2hSYkZWbENHT2VLcFRYWkRjdkxk?=
 =?utf-8?B?eFVNZlh1OGM0d0RLSnBOMTQwV0FWSno3cnk5N0JkK0VYZ2NKZkZPdjVSc2hw?=
 =?utf-8?B?WFlqc0lFbGVEVVVoR3ZlL242dm5kdk9wN00wVkZkazVWVFl5VExwTkNWRktv?=
 =?utf-8?B?b0U3cGdUaGI2STduZEZIZEQ3R3dGMkloTXdnb3ZSV0kremJrOHZQVXFaUGQ4?=
 =?utf-8?B?UnhGS1VaVzF5RXM5Sm85OU4yRXRuWi9OSkxDWGlYYWFjVVFPVW9qUmZSaTJM?=
 =?utf-8?B?NlNqdkRrUm5tWFBZMS9WNk5vTFVsRys4eXJxaDJtbldlTjBHcTRhSVV3SmtE?=
 =?utf-8?B?S1VjY25VbS9oY1lwZG93QmxZN09BR0Z0QW44dzJxVDhnTW5BMUJaM1dkMkdK?=
 =?utf-8?B?TnRRWTVrK0RQNnhqRjZYdTZKRW50QmI3NUNrZTc4K0s0bHdGTUpwc3poQ3VL?=
 =?utf-8?B?VmJZSmZzTXB5RXkyZ08rZzBQaUtJbGxhcUpkN2hTVWNtYUIrckp1cG5hdWt6?=
 =?utf-8?B?SXV4MnFtTEdTSzFtcEV1WEtIOGt6NTRDUWd0YWtWN29ac2l0UDlMRUN1cXVL?=
 =?utf-8?B?Z3FjMHpCQWFJTmw3Q2dMMmUxU2daZlhIUHk5bUVkZklmMHVYbFNhL0VFR1Rr?=
 =?utf-8?B?YVBNSUtCWDdoakh0UFJIdnlEYkZDWEZIU04rSXBpK2FFWEJPOTdOd3diWnlW?=
 =?utf-8?B?SHMvR01LbGkweThmTWNHM0ZnMVlmRVFzY05hODFsMzNIeFA5NjFRc1Q1RGti?=
 =?utf-8?B?L04zcXYwVEhEdittd0l3NkVZSnI1WGFZTWg0bUpFdElXRWdFR1dPRUJzWnZy?=
 =?utf-8?B?QXNCQ0tzV0xGUHpMV1IvS21KNytWcFl6Tlk1cXRJZnVTOW4vemF5TFdvQmRE?=
 =?utf-8?B?emgxQW9Ya2haVnFHZjY5dTVFa0NPQ1F2NnZzejdneFBSOUlZVXlmZjhxcWVJ?=
 =?utf-8?B?OTBPMWJPTW9RWm1ZOEZEVkFFRUVlek1qS1FnM1FYQmpRS3hHaE1kYVZNNUtz?=
 =?utf-8?B?SDAwZGhwS0E1R1ZtazVkYnBNbGNjVWRsYjFrV1l3cDY5ZGhUM0pmdzc5SFVB?=
 =?utf-8?B?TGNlWEQwYmRZUzd5Mk02NzBjcndWdHE0WEZRdEhQZUNnQnRhbEJqcEVlSit2?=
 =?utf-8?B?U1VrV21DQlp5c3Eva005emtpaUpSUDc2aVQ5SHNzMXZhUkRXQ1llZm9QaXBj?=
 =?utf-8?B?SnFYSjNuZG5nZUllcXRSTEIrSnY2aW5tUWUzNXRUQUkvNE5EaFFIa2t3SThy?=
 =?utf-8?B?LzFnYTNRczNGNFJ2WkhIQ2lEdk1uV05aQUNVVlFXc1FUdE93OEZCU1FxbHQ2?=
 =?utf-8?B?c2FTN1M3TCtkb0FvZGJHdjNQczlkOGZzUFMxNmtxZHJVeko5OTlZcVdiR0Nz?=
 =?utf-8?B?Ull3QWc4QzBBaVB5NkdDbnJjQjc3TnNsRzRONUZKUUJiaWV3a3AyWTBNVzJi?=
 =?utf-8?B?K0dFNS8rTEFNc1dNeGtrMVdWSS9mekdKdUhyMlVxVVR5Zm1pQmRGQWtHZ2lq?=
 =?utf-8?B?TytaUVZIcVI0VzNCUCs5d25zZndjT1M3bkZCdEhmZDBic2FZVTdleFhuUkZq?=
 =?utf-8?B?QXlmanVtL01KTm5SVld2cjIwYm5zTGFzVm9Sc1k0dEJTUUJrNTEvRWdyWHVQ?=
 =?utf-8?B?a2VZYmVLUXRGcVBUclBsTkpFeVd2T1JkTFo3bXZNZVp1UFlkcVpGY2hraGJT?=
 =?utf-8?B?OHRCUG9mWWorZUs5Njk4S2lMQUlzbHBtSnltMk9zTFdCYk11Z1RiOFM4ZzM4?=
 =?utf-8?B?bHpxR0NVSUhSUWpaazd1bEJJN3hra3BmUmdsRjR1RDl3UitxRVl4dkNDY1pz?=
 =?utf-8?B?NDNqRU5jVVEzci9wSzhrSGZmNHMzNjBCaUdpOHY1TmFmK21SN01oSjlkaUUv?=
 =?utf-8?B?bW41c2wzWUVjcUdYbk9jN0JiaGJ2RmFra3Z3cUx5czV3UU9VZFlqd1JNQnRo?=
 =?utf-8?B?VzdFMGMxODF1Yy9UU3p5QkdvZ0QyNFdHVEVUSkFtN3hkS0F6MzRwL1dCK3ps?=
 =?utf-8?B?L2lKQ1laOEQ4ZnlQb0dWWDBMVWJLbzJkK1NLczNTdUlnT09GUnlJQ0p5OVFO?=
 =?utf-8?B?K0ppMWVEUnNWZFFha0owMFZseHozbFh2QjFiT1lOV3cvUzQwaklnUTZpK0hF?=
 =?utf-8?B?eEE9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <65FEEE68C8534C49A4B0065A9E18504F@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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 19df7174-b38e-4c51-8491-08dde3fd8f67
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Aug 2025 17:33:52.8496
 (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: Oeoqka5UfYrxWzWicj6v981lXMcMq5LW8DZlTDOdaMbTuCCHWWtRNcTNMVQMMCF+el5KXdWNi1GOLx5B7Zly1MKaxZg/V6w5HcpCIXVapMY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR03MB6503

DQoNCk9uIDgvMjUvMjUgMTc6MTIsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAyNS4wOC4yMDI1
IDE1OjI3LCBEbXl0cm8gUHJva29wY2h1azEgd3JvdGU6DQo+Pg0KPj4NCj4+IE9uIDgvMjUvMjUg
MTQ6MDcsIEphbiBCZXVsaWNoIHdyb3RlOg0KPj4+IE9uIDI1LjA4LjIwMjUgMTI6NTgsIERteXRy
byBQcm9rb3BjaHVrMSB3cm90ZToNCj4+Pj4gT24gOC8yNS8yNSAxMzozMCwgSmFuIEJldWxpY2gg
d3JvdGU6DQo+Pj4+PiBPbiAyNS4wOC4yMDI1IDExOjA1LCBEbXl0cm8gUHJva29wY2h1azEgd3Jv
dGU6DQo+Pj4+Pj4gTUlTUkEgQyBSdWxlIDE3Ljcgc3RhdGVzOiAiVGhlIHZhbHVlIHJldHVybmVk
IGJ5IGEgZnVuY3Rpb24gaGF2aW5nDQo+Pj4+Pj4gbm9uLXZvaWQgcmV0dXJuIHR5cGUgc2hhbGwg
YmUgdXNlZC4iDQo+Pj4+Pj4NCj4+Pj4+PiBEZXZpYXRlIGZ1bmN0aW9ucyBsaWtlICdtZW1jcHko
KScsICdtZW1zZXQoKScsICdtZW1tb3ZlKCknLCAnc25wcmludGYoKScsDQo+Pj4+Pj4gJ3N0cmxj
cHkoKScsICdzdHJsY2F0KCknLCBhcyB0aGV5IHJldHVybiBhIHZhbHVlIHB1cmVseSBmb3IgY29u
dmVuaWVuY2UsDQo+Pj4+Pj4gdGhlaXIgcHJpbWFyeSBmdW5jdGlvbmFsaXR5IChlLmcuLCBtZW1v
cnkgb3Igc3RyaW5nIG9wZXJhdGlvbnMpIHJlbWFpbnMNCj4+Pj4+PiB1bmFmZmVjdGVkLCBhbmQg
dGhlaXIgcmV0dXJuIHZhbHVlcyBhcmUgZ2VuZXJhbGx5IG5vbi1jcml0aWNhbCBhbmQgc2VsZG9t
DQo+Pj4+Pj4gcmVsaWVkIHVwb24uIFVwZGF0ZSAnZGV2aWF0aW9ucy5yc3QnIGZpbGUgYWNjb3Jk
aW5nbHkuDQo+Pj4+Pg0KPj4+Pj4gSG93IGNvbWUgc25wcmludGYoKSBpcyBhbW9uZyB0aGlzIHNl
dD8gSXRzIHJldHVybiB2YWx1ZSBpc24ndCBxdWl0ZSBqdXN0DQo+Pj4+PiBmb3IgY29udmVuaWVu
Y2UsIGltby4NCj4+Pj4NCj4+Pj4gWWVzLCBzbnByaW50ZigpJ3MgcmV0dXJuIHZhbHVlIGlzbid0
IGp1c3QgZm9yIGNvbnZlbmllbmNlLiBUaGUgZGV2aWF0aW9uDQo+Pj4+IGp1c3RpZmljYXRpb24g
aXMgcHJpbWFyaWx5IGJhc2VkIG9uIHRoZSBmYWN0IHRoYXQgaXRzIHJldHVybiB2YWx1ZSBpcw0K
Pj4+PiByYXJlbHkgdXNlZCBpbiB0aGUgWGVuIHNvdXJjZSBiYXNlLiBNb3N0IGNhbGxlcnMgb2Yg
c25wcmludGYoKSBkb24ndA0KPj4+PiBjYXJlIGFib3V0IHJldHVybiB2YWx1ZS4gU28sIHNucHJp
bnRmKCkgaXMgaW4gdGhpcyBsaXN0Lg0KPj4+Pg0KPj4+PiBNYXliZSBzZXBhcmF0ZSB3b3JkaW5n
IGlzIHJlcXVpcmVkIGZvciB0aGUgc25wcmludGYoKSA/DQo+Pj4NCj4+PiBNaW5pbWFsbHkuIFBl
cnNvbmFsbHkgSSBkb24ndCB0aGluayBpdCBzaG91bGQgYmUgZGV2aWF0ZWQgZ2xvYmFsbHkuDQo+
Pg0KPj4gVGhlcmUgYXJlIGFwcHJveGltYXRlbHkgMjMwIGluc3RhbmNlcyBvZiBzbnByaW50Zigp
IGJlaW5nIHVzZWQgd2l0aG91dA0KPj4gY2hlY2tpbmcgaXRzIHJldHVybiB2YWx1ZSAoYWNyb3Nz
IEFSTSBhbmQgeDg2KSBpbiBhcm91bmQgMjAgZGlmZmVyZW50DQo+PiBzb3VyY2UgZmlsZXMuIERl
dmlhdGlvbiBlYWNoIG9mIHRoZW0gY291bGQgYmUgY29tcGxpY2F0ZWQuDQo+IA0KPiBNeSBncmVw
IHlpZWxkcyBzb21ld2hlcmUgYmV0d2VlbiA1MCBhbmQgNjAgaGl0cyBpbiB4ZW4vLCBhbW9uZyB0
aGVtIGFib3V0IDE1DQo+IGluIHhlbi90b29scy9rY29uZmlnLywgd2hpY2ggSSBleHBlY3Qgd2Ug
Y2FuIGlnbm9yZS4gSSBhbHNvIGRpZG4ndCBtZWFuIHRvDQo+IHN1Z2dlc3QgdG8gZGV2aWF0ZSB0
aGVtIGFsbCBpbmRpdmlkdWFsbHkuIFNvbWUgbWF5IGFjdHVhbGx5IHdhbnQgdG8gdXNlIHRoZQ0K
PiByZXR1cm4gdmFsdWUsIGFuZCBJIHdvdWxkbid0IGJlIHN1cnByaXNlZCBpZiB0aGlzIGVuZGVk
IHVwIGZpeGluZyBhIGJ1ZyBvcg0KPiB0d28uDQo+IA0KPiBKYW4NCg0KRm9yIG1lbW9yeS1yZWxh
dGVkIGZ1bmN0aW9ucyAobWVtY3B5LCBtZW1zZXQsIG1lbW1vdmUpLCBpZ25vcmluZyB0aGUgDQpy
ZXR1cm4gdmFsdWUgaXMgYWxtb3N0IGFsd2F5cyBzYWZlLCBzbyBJIHByb3Bvc2UgdG8gbGVhdmUg
dGhlc2UgDQpmdW5jdGlvbnMgaW4gdGhlIHBhdGNoLCByZW1vdmUgc25wcmludGYsIHN0cmxjcHks
IHN0cmxjYXQgc28gZmFyLCBhbmQNCnByZWNpc2VseSBjaGVjayB1c2FnZSBvZiB0aGUgbGFzdCBm
dW5jdGlvbnMuDQoNCklzIGl0IE9LPw==


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 19:23:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 19:23:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093660.1449119 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqcmI-0002vV-9l; Mon, 25 Aug 2025 19:22:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093660.1449119; Mon, 25 Aug 2025 19:22: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 1uqcmI-0002vO-6d; Mon, 25 Aug 2025 19:22:50 +0000
Received: by outflank-mailman (input) for mailman id 1093660;
 Mon, 25 Aug 2025 19:22:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/bS3=3F=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1uqcmG-0002vH-FT
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 19:22:48 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e1825b14-81e8-11f0-a32c-13f23c93f187;
 Mon, 25 Aug 2025 21:22:46 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by VI0PR03MB11138.eurprd03.prod.outlook.com (2603:10a6:800:2d0::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.19; Mon, 25 Aug
 2025 19:22:44 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9052.019; Mon, 25 Aug 2025
 19:22: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>
X-Inumbo-ID: e1825b14-81e8-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PHON+4GGjgolE2DgjQB7t5tCBPyVdcMyrjtpxu3oCZrFo33wCRAWloS80ApOR06nGT00L4bK9BoH7QvdlHW6gmH6VmPE1wvHmISMRlLKs0LkR5vFfxMddzUmL+JudSJ1v7cIpFBtNWrjaTAJp4OoUBzVHaDW8msWjFZfT6oaf1w71IiMs7ra9xTAPDXln4rwnh32g/tGbzMjMfHAHBqOFb3BFZERHOwXuTvN6karlE7RnXwYyD0BCL5EH8UtYYotbFVcSRxEbGlbLPm0j5v8L2M4A2DpO1ueSAdiMu5JvVewEQQwaDBHdgw/xy3yKdmxYZMfL4l+oZMJC0LfA7r9cA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-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/Xy/3COfnhiDSZCPBz0IK4noAE6y9YPe8zvOoVWyO0=;
 b=O1SAGdIExk66FHYjM0uC439Ei58Jm8oDwfjm+dt4sOAZReowWo4XWrj2A3rgoea4COEt0SHi2xz+Kxyy4wqPIN3CS7ZO4+t0fm1Z17rjwgC8T3voY33zHsixVJ+Bo9CldKVt9CszFj32LKSgn6vmxacdpj7wcozgaNqNAxul6+NrRtq/8yIf4arvul9OTBTkWu/eYwG3ic+G1+HYWCOybeYvO6ZNvxczGcFFrnUy5vfmlLqSG6K/7ftjlmXmeFp5SBC7se4TfO+EUDX7VVtk/cDH0q1He1ZzRCmtJN+tfUDgvkKeYNhm4MPHVQZK3Voq3FTx6wCa6zLcHMbOvfmQUQ==
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=T/Xy/3COfnhiDSZCPBz0IK4noAE6y9YPe8zvOoVWyO0=;
 b=lWrJnBuFMcvq+ohU2089DrJ+uL2WVA4EqwROMxRoQuZWDo3bj/nPQhLXqWCodt8K8hbZLYEy+s/5M4MZz5g0CQ72R0UaoCwAAAS5MVikkPTfAj7gHruA0TBXXtJkd3SwRORNYyAyyWzTCdY4IyyeM77h6F6aFGSWPiuz6cCk+rHXnprnGfVd23wsVj6v8P/cY4W/qwdHmKKT9pNar7lPL+G1Rnn+/3CDklLnxc07aiWNC3BEvoTRjcxBXQ8ttl5jEQo0rSBMxsfzpxht35K81KZPTpF+LyH7rBqfpyZ400ylc8LMs2WYkUTAqj4zHvu+qo3Ir/PVRcstXJNiotzlmw==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
	<jbeulich@suse.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<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>, Dmytro Prokopchuk1
	<dmytro_prokopchuk1@epam.com>
Subject: [PATCH v3] xen/irq: Delete the pirq_cleanup_check() macro
Thread-Topic: [PATCH v3] xen/irq: Delete the pirq_cleanup_check() macro
Thread-Index: AQHcFfWhxHP2kMnOQkiD7UseguEusA==
Date: Mon, 25 Aug 2025 19:22:44 +0000
Message-ID:
 <0959802e4fa73b848b2b9e47c57c6daf062e9630.1756149543.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: GV2PR03MB9572:EE_|VI0PR03MB11138:EE_
x-ms-office365-filtering-correlation-id: ce6db846-9a5e-4717-e3ed-08dde40cc466
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|42112799006|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?5+MatIXv3CGEl8SAvtvd5JQAhrMrq/N9RXl4uwbm2HlwmFp+1ngGdc3ebE?=
 =?iso-8859-1?Q?wHXH7WehrSUOKqFU7egR/dhGi6PvRrzNeEGOF1njonv8PVeCIK+08uA85N?=
 =?iso-8859-1?Q?D/Bob2rdJbMxwzCkYbtfVy6gwCX4sKTBGgqJEBtZW0kQNdNlf64BCqQY4a?=
 =?iso-8859-1?Q?YWDV7m8wptGLX5AJa4I1L2FZOX7nT3QHOECPJ93l37yVm4/Rwc1Nw/bkPA?=
 =?iso-8859-1?Q?6mh5PcR1uxA2Cv9ujZOedH8D/Wo34rZp5/n71XsNVpGIx/AJ3c8R5LLcHb?=
 =?iso-8859-1?Q?CvoCiuZ8Cazbam2/ogx7evMEwS2e9iGHLUKRSFgAHxuxaHB5GabN8pPYql?=
 =?iso-8859-1?Q?GncCWyBfxgffWanlieWPJGDoD8CrhBGbTcMEUwDpD6dv+tOSYY/qTHrgE/?=
 =?iso-8859-1?Q?Pvxs2/qkc3yufFj8KbzaEquTH8dPQ8AiWb+BALAX2iZVTpWVJA25tFYqhC?=
 =?iso-8859-1?Q?YoIVLs6IkyE0nrJxJ0x5ZllHzyN5BmiFphE1pvZRzMRNYN/+8BjFdSU10I?=
 =?iso-8859-1?Q?rFN8mkyz8tceTkzvxlu3y75w8gBl8oPNfUQZ5bhDjJdJfTb4XMJTDiMdbV?=
 =?iso-8859-1?Q?e+IWkIq1FOmQgb40B50N/nRhjl8q9b2Pm7tkWS1swXx8zhYvvsV85K84lP?=
 =?iso-8859-1?Q?IDOq66KMB/qNc1aR2J1pRdzwh+FjPF8tnpg9Oo7VX4O2RKO8dwy1N0vRzI?=
 =?iso-8859-1?Q?lxWqq+w55v4tl7+9y3n+Wide3hamlBO7pJn5UuxskD4YlnzTcg4lHt2uX+?=
 =?iso-8859-1?Q?8mRPI24fvWwhlj05UEn4wJeJKJZEqVp79JYd3AS5f/RSm1lJssIji3JD4f?=
 =?iso-8859-1?Q?tH1gOL6R4mJvqQGHlsbr3n8LzxlYY9CXM5nHxQ+GpDTs4kyCvu/4hSJaSj?=
 =?iso-8859-1?Q?XAAG3YY9qapMrpfWkX261Jj7HQozvohTffmH4ND2jigldF2QlEbIcHkGsG?=
 =?iso-8859-1?Q?74V0JslJY5QUFxGo118JJjNP8BXFsoLqJCSDzntWADz46oltCP8tR1z7ah?=
 =?iso-8859-1?Q?liTThFYF5p1O6qDB5U0RcSkEggLWJE4POZHyBGuZtk9+AdbvKRo0ztIW1/?=
 =?iso-8859-1?Q?XjfvOzpcC0VkQKRVOdnL4mxfu6i+Os3TTCjQU1Ychd/lVP9fff5wbsd5jx?=
 =?iso-8859-1?Q?6Cmykx43PRVsE0B70/phhjJS5/VKQ38IKM6Ocs0Xt+O1qn8ITJqU7VV4ju?=
 =?iso-8859-1?Q?NRnZgCbrjLq7lewk8k1XVj4LOlFC2o2ECj12OfQvPd0oPgtY4a7X/OvLWw?=
 =?iso-8859-1?Q?X/XoaVTqGUMjKo3OxEf5xNyZK142evdSQGSD9XPlNKyw7DVU7an8CqpZMz?=
 =?iso-8859-1?Q?kHjS06EhgyJYrZumxlU1qP2HnF/EprHToJyk/azNuCQ104Kq13UJK2gkF9?=
 =?iso-8859-1?Q?jmispq50MQWQal6RTORtPIp1sWaCHx/aCppl75g88KkFG6GJwS9xUqmcSi?=
 =?iso-8859-1?Q?LiNfVSYR9zfiRiOehq2mMJvIVPu/1rBx+M+3K3cZy9xssDpd3A1SWvKqMw?=
 =?iso-8859-1?Q?g=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(42112799006)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?UwztkSxeU70hUqWAZBwX8Cn1YGhYKXp/rUj/MoGA5KrFI34a16BLfw4gQm?=
 =?iso-8859-1?Q?bJ1JJLjL3TalyNq3j4PIVDdQtzfiHKWYIj4tSZwg68Xkn88gYEaxeyuFal?=
 =?iso-8859-1?Q?yb/gqOeagdV0pZlikN9Tl+bYuv175EQ80A9pw662NCYbvHmYflZUMMGA27?=
 =?iso-8859-1?Q?hWUlT68uXlXchxXYmBCMRWxcfi9NJdpqfZXtFBHCb2u4a3A1xdMuK4Zzvf?=
 =?iso-8859-1?Q?UjV8yblcBljFd6VCDjAjav7NPkyQis5hkt7cKwAa29+iq2h6QnFkuSn8Lf?=
 =?iso-8859-1?Q?ewa0choCTpM5UgvJHZYBp5LXVKtZKGKWQFGdbiRUtevx3/JBaLGCRcna2H?=
 =?iso-8859-1?Q?XAukTF2Lx4heD1YqTZ8nvP+kD0rl7mZPkjAfIscIQY1n4+ZYVJCCUZZh49?=
 =?iso-8859-1?Q?0Xg78Yemw5yicdmJ42WTHPVa9Qbvk1MZ3VIC8/iF6pHxg6/28qBtVtvnzP?=
 =?iso-8859-1?Q?EFLPT99CnfFkfLuUt/5rAoFh06KB3DJe/MHu/unq35hnDLlCma6t6kwbmF?=
 =?iso-8859-1?Q?gprQtGB552T4mXTAbeNBbTr2Z+LB2ywmVVvLq4S5nvROgh1cLOrxu46S+U?=
 =?iso-8859-1?Q?V4PDbddaLDxth/mF51jfvDIk6KGb1qb5wNN4jXYJl3Jl2ShakFVCD44tMy?=
 =?iso-8859-1?Q?3OtG0sojBv0bRJvfx2rLOWDe/XtUgXS+IbMW/SPs7o182/ndLx3znoENqq?=
 =?iso-8859-1?Q?LfgF/Dh0fOCYpIEoEDu3I2Fc2Vv8WEYI1pPb6XZ1RY3WZqiG7IL5kb7G91?=
 =?iso-8859-1?Q?qC6QnaxHeGYVt6I+l4y/HXBoaMM3W3F03n2VNj9mnV9v9v6rPgSzaup/Bm?=
 =?iso-8859-1?Q?T8ummFTlhECZ+Waki2zE/wHGgcG707LdEbVky8HZl4L6D0Aqygh4w0twbv?=
 =?iso-8859-1?Q?1QaDlxBUJ15x4OEA8EadMcpRvp/PYrJeJSlwCI65UTROsCrWCIr9d4KLto?=
 =?iso-8859-1?Q?WWTmQ5VvNWwLUxIwHH9rTc/PIQUKlxPYnpWsoVlwFSHXvm6JDDdNN0Hk+t?=
 =?iso-8859-1?Q?eLiT3zin1NPbGGeIa4DdhgzE7qzRlcZMyvBfjKKVqYJDNnB05sPjfKCDHl?=
 =?iso-8859-1?Q?7D49Tiw7WKgi9IvJ1FMuun8QfJ09xp/C84Ca8xWDZEEkJGIVatZ5gJewLQ?=
 =?iso-8859-1?Q?Casj7E5gQnfbrNhJYnvXIVezbEcxrCSm8PmIQTOerQQs7ZGttZU7wUcMdb?=
 =?iso-8859-1?Q?P7apzORBfJYDUpK8UxIt07sZUkmCPfqdxkP/6kRlU1GXw5m+UA/47FjKWD?=
 =?iso-8859-1?Q?xGTGnKVK+fSwpAzz0/TRcjuDqY3fYvDKGkZ/kBrT7uAje0K4/yjTt135Uf?=
 =?iso-8859-1?Q?mlb3ocaknE6vTYN6Jzfg9uLYk7rq5NqgjDMiVebc/NMW5+wUdSloAxifse?=
 =?iso-8859-1?Q?ZcnucjBiBIXHrIjN0ONTiPgfL8XLWnn4bnbtmufcQlCO35iV4iqDMgYbTB?=
 =?iso-8859-1?Q?3yl8c60+rOEkhvbdmNBPrevdHBx5KtL0ccIVMDdv6kVXb8WQMcx8gjlZas?=
 =?iso-8859-1?Q?bK51i5IGOZocYL3TLxHwRr5YZ+jJGVrIrT1Ofgnln3CVvzdXMVUS8CMZJq?=
 =?iso-8859-1?Q?RhqW4pgc6JNkiMYO7gBfEnyeuj1Fe/7EALS5G1QT5LROMAddSU20pksdmz?=
 =?iso-8859-1?Q?n7iWpl994e4SySnSpGKTGAT7c0Q/teU4BWaRSIpw+/FIlwchixerTOBQ?=
 =?iso-8859-1?Q?=3D=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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ce6db846-9a5e-4717-e3ed-08dde40cc466
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Aug 2025 19:22:44.2238
 (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: 0u5nAAz/JkY0+LffFllwSub+01Tl5//x3smLWIgXhBS8UztDAPfRw0wOw+sQUeKAle66xujFiO8hrRTcCpbES/qBaWRtR92SsKXUuZPhzd4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR03MB11138

From: Andrew Cooper <andrew.cooper3@citrix.com>

MISRA Rule 5.5 objects to a macro aliasing a function, which is what
pirq_cleanup_check() does. The macro was originally intended to ensure
the condition 'if (!pirq->evtchn)' is always checked before invoking
the function, avoiding errors across call sites.

There are only a handful of users, so expand it inline to be plain
regular C. Doing this shows one path now needing braces, and one path
in 'evtchn_bind_pirq()' where the expanded form simplies back to no
delta, as it follows an unconditional clear of 'info->evtchn'.

While this complies with MISRA, it shifts the responsibility to
developers to check 'if (!pirq->evtchn)' at call sites.

No functional changes.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
Changes in v3:
- added back wording from v1, originally written by Andrew.

Link to v2:
https://patchew.org/Xen/ce37bdf7b5189d314c0f41628dbfb3281358bcf4.1755361782=
.git.dmytro._5Fprokopchuk1@epam.com/

Link to v1:
https://patchew.org/Xen/20250729223110.3404441-1-andrew.cooper3@citrix.com/
---
 xen/arch/x86/irq.c                | 11 +++++++----
 xen/common/event_channel.c        |  5 ++++-
 xen/drivers/passthrough/x86/hvm.c |  9 ++++++---
 xen/include/xen/irq.h             |  3 ---
 4 files changed, 17 insertions(+), 11 deletions(-)

diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c
index 556134f85a..1ed85c0c11 100644
--- a/xen/arch/x86/irq.c
+++ b/xen/arch/x86/irq.c
@@ -1325,7 +1325,8 @@ static void clear_domain_irq_pirq(struct domain *d, i=
nt irq, struct pirq *pirq)
 static void cleanup_domain_irq_pirq(struct domain *d, int irq,
                                     struct pirq *pirq)
 {
-    pirq_cleanup_check(pirq, d);
+    if ( !pirq->evtchn )
+        pirq_cleanup_check(pirq, d);
     radix_tree_delete(&d->arch.irq_pirq, irq);
 }
=20
@@ -1383,7 +1384,7 @@ struct pirq *alloc_pirq_struct(struct domain *d)
     return pirq;
 }
=20
-void (pirq_cleanup_check)(struct pirq *pirq, struct domain *d)
+void pirq_cleanup_check(struct pirq *pirq, struct domain *d)
 {
     /*
      * Check whether all fields have their default values, and delete
@@ -2823,7 +2824,8 @@ int map_domain_emuirq_pirq(struct domain *d, int pirq=
, int emuirq)
                 radix_tree_int_to_ptr(pirq));
             break;
         default:
-            pirq_cleanup_check(info, d);
+            if ( !info->evtchn )
+                pirq_cleanup_check(info, d);
             return err;
         }
     }
@@ -2858,7 +2860,8 @@ int unmap_domain_pirq_emuirq(struct domain *d, int pi=
rq)
     if ( info )
     {
         info->arch.hvm.emuirq =3D IRQ_UNBOUND;
-        pirq_cleanup_check(info, d);
+        if ( !info->evtchn )
+            pirq_cleanup_check(info, d);
     }
     if ( emuirq !=3D IRQ_PT )
         radix_tree_delete(&d->arch.hvm.emuirq_pirq, emuirq);
diff --git a/xen/common/event_channel.c b/xen/common/event_channel.c
index 67700b050a..a3d18bc464 100644
--- a/xen/common/event_channel.c
+++ b/xen/common/event_channel.c
@@ -741,11 +741,14 @@ int evtchn_close(struct domain *d1, int port1, bool g=
uest)
             if ( !is_hvm_domain(d1) ||
                  domain_pirq_to_irq(d1, pirq->pirq) <=3D 0 ||
                  unmap_domain_pirq_emuirq(d1, pirq->pirq) < 0 )
+            {
                 /*
                  * The successful path of unmap_domain_pirq_emuirq() will =
have
                  * called pirq_cleanup_check() already.
                  */
-                pirq_cleanup_check(pirq, d1);
+                if ( !pirq->evtchn )
+                    pirq_cleanup_check(pirq, d1);
+            }
         }
         unlink_pirq_port(chn1, d1->vcpu[chn1->notify_vcpu_id]);
         break;
diff --git a/xen/drivers/passthrough/x86/hvm.c b/xen/drivers/passthrough/x8=
6/hvm.c
index a2ca7e0e57..b73bb55055 100644
--- a/xen/drivers/passthrough/x86/hvm.c
+++ b/xen/drivers/passthrough/x86/hvm.c
@@ -329,7 +329,8 @@ int pt_irq_create_bind(
                 pirq_dpci->gmsi.gvec =3D 0;
                 pirq_dpci->dom =3D NULL;
                 pirq_dpci->flags =3D 0;
-                pirq_cleanup_check(info, d);
+                if ( !info->evtchn )
+                    pirq_cleanup_check(info, d);
                 write_unlock(&d->event_lock);
                 return rc;
             }
@@ -536,7 +537,8 @@ int pt_irq_create_bind(
                     hvm_irq_dpci->link_cnt[link]--;
                 }
                 pirq_dpci->flags =3D 0;
-                pirq_cleanup_check(info, d);
+                if ( !info->evtchn )
+                    pirq_cleanup_check(info, d);
                 write_unlock(&d->event_lock);
                 xfree(girq);
                 xfree(digl);
@@ -693,7 +695,8 @@ int pt_irq_destroy_bind(
          */
         pt_pirq_softirq_reset(pirq_dpci);
=20
-        pirq_cleanup_check(pirq, d);
+        if ( !pirq->evtchn )
+            pirq_cleanup_check(pirq, d);
     }
=20
     write_unlock(&d->event_lock);
diff --git a/xen/include/xen/irq.h b/xen/include/xen/irq.h
index 95034c0d6b..6071b00f62 100644
--- a/xen/include/xen/irq.h
+++ b/xen/include/xen/irq.h
@@ -185,9 +185,6 @@ extern struct pirq *pirq_get_info(struct domain *d, int=
 pirq);
=20
 void pirq_cleanup_check(struct pirq *pirq, struct domain *d);
=20
-#define pirq_cleanup_check(pirq, d) \
-    (!(pirq)->evtchn ? pirq_cleanup_check(pirq, d) : (void)0)
-
 extern void pirq_guest_eoi(struct pirq *pirq);
 extern void desc_guest_eoi(struct irq_desc *desc, struct pirq *pirq);
 extern int pirq_guest_unmask(struct domain *d);
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Mon Aug 25 21:55:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 25 Aug 2025 21:55:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093702.1449128 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqfA0-0003Wn-Kw; Mon, 25 Aug 2025 21:55:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093702.1449128; Mon, 25 Aug 2025 21:55:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqfA0-0003Wg-ID; Mon, 25 Aug 2025 21:55:28 +0000
Received: by outflank-mailman (input) for mailman id 1093702;
 Mon, 25 Aug 2025 21:55:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=GPTi=3F=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1uqf9z-0003Wa-F1
 for xen-devel@lists.xenproject.org; Mon, 25 Aug 2025 21:55:27 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on2060f.outbound.protection.outlook.com
 [2a01:111:f403:2418::60f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2b931542-81fe-11f0-b898-0df219b8e170;
 Mon, 25 Aug 2025 23:55:11 +0200 (CEST)
Received: from SJ0PR05CA0168.namprd05.prod.outlook.com (2603:10b6:a03:339::23)
 by PH0PR12MB7471.namprd12.prod.outlook.com (2603:10b6:510:1e9::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Mon, 25 Aug
 2025 21:55:06 +0000
Received: from SJ1PEPF0000231D.namprd03.prod.outlook.com
 (2603:10b6:a03:339:cafe::1c) by SJ0PR05CA0168.outlook.office365.com
 (2603:10b6:a03:339::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.11 via Frontend Transport; Mon,
 25 Aug 2025 21:55:06 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF0000231D.mail.protection.outlook.com (10.167.242.234) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Mon, 25 Aug 2025 21:55:06 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) 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, 25 Aug
 2025 16:55:01 -0500
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 25 Aug
 2025 16:55:01 -0500
Received: from [172.31.63.243] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Mon, 25 Aug 2025 16:55:01 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2b931542-81fe-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Ub0vCrWvNc3SRxVnsjWy06trFMMJO/Efp09O8SThDAVtOwGzKJsvsHix5nHG0ZzikkflClYKZMgShbw5c+UmLXp3SmljhPkCmPuQptvV7408c/8L1cw795gyYee4ylKEKi1bEiWAcKFKqfQUPGwHZKIhlahUY/YhukPH6vvT98vqj8aagjQLPtg4V2cmoTzQAUOobxi6NHv7Eq5BaZIcKg1KM43JSHkF1S/h3eIV7wUnPPiVXVpbCWTuRiDBZhle/qQhYTsY4ml0X9J3RIO78ZbgmQhweUGXKrXVgPk7XvKWiHPaOKZJ1Gq16+mOcoCfikwnmSEp//8XZpMbjBSIOg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=31nwGKdMDfhUHI+0PF46wLh7YDo0K9phaqr4p9Stla8=;
 b=ZGjAxzSA0iXwR5D3g2NrrZmDiGDDUefslY3mnG2THopFImvrUoHujaG7onYgbZzGDAwd4G3v4ivId/HHDCNtCrjsipBmgJxU+aZCnF6vHlAAGOXJNWr0SJ0YJwCTsDUkBsHzDdk+lqRJ5kw8L0BIEq7hbzu7WbEMdO3l1j+hWoTLvjk1I9qWE/2Tnu2ju+AS1+M46YXwMJJdsOcOMGEtkQfZ75+HvzXKiXZtUywMM8B+lKPUr+Iix8fRvYWRAZvLioFge7Ia1+v8Y5u1tx36hDg1OMBxo9OXHJIZ6GefZkETdwBQe7bC3xToVq1poAFdst1lOsrP9dHW1ST8vgpPig==
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=31nwGKdMDfhUHI+0PF46wLh7YDo0K9phaqr4p9Stla8=;
 b=rTJ9PUB9VeXYyXsD5ppF4NWQazHeOE8WYIwAVoV5ookD0lrvzEklHa01grl1VH8TKe3JLR56sXZC6sjFAhbgBodk78Ub2i2lxWftnkx7GbofzTSqUPswaxbPXQ87NyTHR8RoCEhDfwKDLfIzNjlCB+lwb2CIqgbgM2GMAWyMIyw=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <f2ab977b-3378-4e93-9eec-e59fb640b85a@amd.com>
Date: Mon, 25 Aug 2025 17:30:20 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [Reminder] Feature Freeze is Fri Aug 29, 2025
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>, Xen-devel
	<xen-devel@lists.xenproject.org>, Community Manager
	<community.manager@xenproject.org>, "committers@xenproject.org"
	<committers@xenproject.org>
References: <07fc7122-d0ac-4dbe-800d-89086a07005b@gmail.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <07fc7122-d0ac-4dbe-800d-89086a07005b@gmail.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
Received-SPF: None (SATLEXMB05.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF0000231D:EE_|PH0PR12MB7471:EE_
X-MS-Office365-Filtering-Correlation-Id: ebdb7b71-cf5e-473a-a35f-08dde4220dad
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|36860700013|376014|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?clZxZElmYmZhQ2hSK0tUVjVMUnRoSGtSV1VQOXZNbnpVVUhuRmMrSVdxZDYx?=
 =?utf-8?B?TXg5OVZxWVpYNU1qN0tTTGQxM25BaWZkMW96V1lWTTR2eHg3eHJVSFpBcWZX?=
 =?utf-8?B?OUp3TzRyU3JpdzdPVklLb24rS1FjazI0MDR2RUNxcHc4d3I0U2RmQ0pUQW5a?=
 =?utf-8?B?dzFVWjFvQ3VzNk5DSHRQWkxNWmlvMTRUVDRZTHFNb1dTaWRlNjAyOWNzRUxB?=
 =?utf-8?B?Tk1YK0hnMzJwWDBkRzJOaktsbDZHbzEwSG5Ic2UvWGZmTWcrVTFpN0diUGNk?=
 =?utf-8?B?bk16TE9jNWxrWG1jMStKbFhmdGtPNUVaSEM4NnQrckxlaE9DYWFwNXhCTVpF?=
 =?utf-8?B?dWxyZThJalN4eTRRRTNBd0tIcXNUYkVCdjhiUVpJOVJnUVJLV1loZkxScDNw?=
 =?utf-8?B?ekVCUmdJVFlialMwVjZSN2ZhKzB0K2dSck54cW8vSDhJaXZkL20xS0NlczlH?=
 =?utf-8?B?TGN6MzJuaGFoRVczY2NLakV6c0JPeWxVV1ZNekRLVFBHam4zZ1lyQ3V3eHFx?=
 =?utf-8?B?QVRaYVpZeS9aSWVXdjFiWXQ3YllSSS9LMG5EeSszSE52SzJoY2RHNUw0bGZm?=
 =?utf-8?B?KzNVdWlEN2gzdjg1YjQ2UUswYWpRQ0E1azd6NWNpRkk3bndWQzJJS1hmRmxw?=
 =?utf-8?B?bkJidW5PNEF1YWczdnNRVHcrOHdGdVhRRlN2Uy9lb2NnQjhJNHZoaDROWjEy?=
 =?utf-8?B?aFh4a1J5eUpMZW1PYUV5L0Q1NWJrS1lIV0Z5T3FSNXFRMzVtMmxMdTh6VVps?=
 =?utf-8?B?bW9RbE1KVXhydzJQQllTeVlqSCtDYXYxU3ZGM2ZtWWFvYkdvaWEvRU1TRDFO?=
 =?utf-8?B?UXRJMG9hcnJmb0ppR3VVa3h2VEg3ZEdyMXU3WEZJQmdvRFhGcWFLc0VwWDVo?=
 =?utf-8?B?MWRRSWU1dVNTdUwyTzBUeDFaWE1vQXowT0h3anJxaWFiUnlBSVNiNG9PTTBH?=
 =?utf-8?B?bWVHSVQraXpocWx5dkFFU3I3ZHRQTFJOcXhoNGsvVkE3M2pUUlQ0US8xRTJL?=
 =?utf-8?B?TEtuR3hOdEtYSFJibndzV2tYdWI4VkpNemMrZktUazZRYlRqeG5VdEZlejNm?=
 =?utf-8?B?enFENEw1YU9LNXhVaVRoSURVS01RU2VqYmR0ZEY2MEJxaUkyU2ZJQ0hOcFNh?=
 =?utf-8?B?Q3ZhSWd2MHZBYXlzendsY1lURFhjMTlBc3ZaallxZ3hucDFRc1BrNjFCV3VP?=
 =?utf-8?B?cnRYOVJqUnU4WERyd2JsVEJlMklDUmxuV1NwdCtQTERNcVNQVkV0T3RpVEZV?=
 =?utf-8?B?YTFZcW9BNTVGekY5VElBRjhxWTRaOXUzZUxqRnErdXRia29KMGNyQ2d1UTFp?=
 =?utf-8?B?ckF3MVdXdHIxSlBpY2RXVGZibFpwemg5VWxyekwydFR3SWF2eUpvZDJRNWVr?=
 =?utf-8?B?dHRFMzFaQnVFT09BTWFLOTVwWFcrdHhhSXJJM2hNY2VVVHFsZlhLNEZYVkEz?=
 =?utf-8?B?V0ZPMktidit6bzdMNnlKa2w2OEplVkFmZEhGc2RNOFI2d25xUU5tQzZ5RVN1?=
 =?utf-8?B?dHZoMWtSUVduWDducWsxZkdPaGRHSExrSGNhK1UvMm5naVlaYmx3K3dwU0lX?=
 =?utf-8?B?MFcwdEVSUVJSZXdFWGRhWTlQMkRxK1BVeUh6bUxwaFN0OWVOMTVrQkJmdmRW?=
 =?utf-8?B?OUt0dDRKaENEWjBjM2JCdmZKUEpLSTFSQVhvZEplSTZ6QkVXWU9KQlRFUXg0?=
 =?utf-8?B?NzdhMjFnQ09sMlM2Mjh0ZVBIeWdka2VsVHp2V0VGUFNSZWNqOGFkcnV0RTJC?=
 =?utf-8?B?NDJ4WE5QcDczL2ZycWtNZDdtNFMrakFNcjVFelJvWGZnWENYVER2MllYYVYv?=
 =?utf-8?B?S2xZd3plODBBZXNDUkZ1bzMrVUFSaHNZd0JwdFViNUtTWmhlZ3d6MEozSW5F?=
 =?utf-8?B?VnZkSVB6Qk9RS0xIRGczZU9peGEvbnB2aFV2dlZxZnkrQXA0NFJwTGp2eER0?=
 =?utf-8?B?ZzA2SGNwdE5MWjZaaVlDNnorK1NZV002NDRVTzZyVUwyN2Jady95OTFOSXZw?=
 =?utf-8?B?N1cxL3owMTdrNkg1dWZJWG5MbnpwdmJFUkhmdGNobUhQdEF1MnNueWF0UGFy?=
 =?utf-8?B?OFZYSFNLNTMrT1p0TXFxbjRPWjRVd2RzYVpFUT09?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014)(13003099007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Aug 2025 21:55:06.4627
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ebdb7b71-cf5e-473a-a35f-08dde4220dad
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF0000231D.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB7471

On 2025-08-25 11:50, Oleksii Kurochko wrote:
> Hello community,
> 
> Iâ€™d like to remind everyone that the Feature Freeze deadline is approaching,
> and we still have some outstanding requests from the community for patch series
> to be merged into 4.21:
> 
> 1. Enable guest suspend/resume support on ARM via vPSCI [1]
> 2. Introduce SCI SCMI SMC multi-agent support [2]
> 3. Introduce eSPI support [3]
> 4. FRED work: [4], [5], possibly others (?)
> 5. Introduce CONFIG_DOMCTL [6]
> 6. xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE [7]
> 7. Some other patch series I missed.

Hi Oleksii,

I'd like to get 
https://lore.kernel.org/xen-devel/20250822213946.245307-1-jason.andryuk@amd.com/T/#t 
in if possible.

It's v2, and there were 3 RFC postings before the v1 as well.

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 00:38:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 00:38:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093734.1449139 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqhhY-0005h1-AD; Tue, 26 Aug 2025 00:38:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093734.1449139; Tue, 26 Aug 2025 00:38: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 1uqhhY-0005gt-4L; Tue, 26 Aug 2025 00:38:16 +0000
Received: by outflank-mailman (input) for mailman id 1093734;
 Tue, 26 Aug 2025 00:38:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fAYs=3G=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1uqhhW-0005gn-85
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 00:38:14 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ede14f0e-8214-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 02:38:06 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id F28F5419A8;
 Tue, 26 Aug 2025 00:38:03 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 211BAC4CEED;
 Tue, 26 Aug 2025 00:38:02 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ede14f0e-8214-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1756168683;
	bh=61dTSQG6PWxphczi3A8mngGJKQHPzl6uVQQSMcYnGZ8=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=XYK7q3JokTLngkrgSTKUZ5wbs49uq3L4GgHDKnDXbsX9TFhvYKp6GAebcGHIS1XM7
	 lU76SuudyNvdyo8aU7Zzw5GZNHhXyEv/dZXfVxyfbKE3RqhLZNlNEhl/GGYmdwNvSY
	 xIJOj2aq7CBOoZ25wvQ0jxEWIAb/Xr+lyIDKW1o3olN0RqNzoZGzgN4pgEVUPV49Oo
	 zuVl8mNVOTGOe68Yfyx6N+7HBaJzZSVuwtXfEbKZoKbbYk6qitBy5OTOw19pO4M0sg
	 pKupm7ULuayGbzvhh1lnF9wF8GhF0lwTwlygfNd2frSy8yTVDXunOc2iHcroggBrl/
	 Ac5fCCRJN7Q4g==
Date: Mon, 25 Aug 2025 17:37:56 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Jan Beulich <jbeulich@suse.com>, Juergen Gross <jgross@suse.com>, 
    Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Grygorii Strashko <grygorii_strashko@epam.com>
Subject: Re: [RFC PATCH v5 09/10] xen/arm: scmi: introduce SCI SCMI SMC
 multi-agent driver
In-Reply-To: <9f4a137980a0ee72f0f03d55176ca178c4b90126.1753184487.git.oleksii_moisieiev@epam.com>
Message-ID: <alpine.DEB.2.22.394.2508251737510.3391208@ubuntu-linux-20-04-desktop>
References: <cover.1753184487.git.oleksii_moisieiev@epam.com> <9f4a137980a0ee72f0f03d55176ca178c4b90126.1753184487.git.oleksii_moisieiev@epam.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 22 Jul 2025, Oleksii Moisieiev wrote:
> This patch introduces SCI driver to support for ARM EL3 Trusted Firmware-A
> (TF-A) which provides SCMI interface with multi-agnet support, as shown

multi-agent


> below.
> 
>   +-----------------------------------------+
>   |                                         |
>   | EL3 TF-A SCMI                           |
>   +-------+--+-------+--+-------+--+-------++
>   |shmem1 |  |shmem0 |  |shmem2 |  |shmemX |
>   +-----+-+  +---+---+  +--+----+  +---+---+
> smc-id1 |        |         |           |
> agent1  |        |         |           |
>   +-----v--------+---------+-----------+----+
>   |              |         |           |    |
>   |              |         |           |    |
>   +--------------+---------+-----------+----+
>          smc-id0 |  smc-id2|    smc-idX|
>          agent0  |  agent2 |    agentX |
>                  |         |           |
>             +----v---+  +--v-----+  +--v-----+
>             |        |  |        |  |        |
>             | Dom0   |  | Dom1   |  | DomX   |
>             |        |  |        |  |        |
>             |        |  |        |  |        |
>             +--------+  +--------+  +--------+
> 
> The EL3 SCMI multi-agent firmware expected to provide SCMI SMC/HVC shared
> memory transport for every Agent in the system.
> 
> The SCMI Agent transport channel defined by pair:
>  - smc-id: SMC/HVC id used for Doorbell
>  - shmem: shared memory for messages transfer, Xen page
>  aligned. Shared memort is mapped with the following flags:
>  MT_DEVICE_nGnRE.
> 
> The follwoing SCMI Agents expected to be defined by SCMI FW to enable SCMI
> multi-agent functionality under Xen:
> - Xen manegement agent: trusted agents that accesses to the Base Protocol

management


> commands to configure agent specific permissions
> - OSPM VM agents: non-trusted agent, one for each Guest domain which is
>   allowed direct HW access. At least one OSPM VM agent has to be provided
>   by FW if HW is handled only by Dom0 or Driver Domain.
> 
> The EL3 SCMI FW expected to implement following Base protocol messages:
> - BASE_DISCOVER_AGENT (optional if agent_id was provided)
> - BASE_RESET_AGENT_CONFIGURATION (optional)
> - BASE_SET_DEVICE_PERMISSIONS (optional)
> 
> The SCI SCMI SMC multi-agent driver implements following
> functionality:
> - The driver is initialized based on the ``xen,config`` node under ``chosen``
>   (only one SCMI interface is supported), which describes the Xen management
>   agent SCMI interface.
> 
> scmi_shm_1: sram@47ff1000 {
>           compatible = "arm,scmi-shmem";
>           reg = <0x0 0x47ff1000 0x0 0x1000>;
> };
> scmi_xen: scmi {
>         compatible = "arm,scmi-smc";
>         arm,smc-id = <0x82000003>; <--- Xen manegement agent smc-id
>         #address-cells = < 1>;
>         #size-cells = < 0>;
>         #access-controller-cells = < 1>;
>         shmem = <&scmi_shm_1>; <--- Xen manegement agent shmem
> };
> 
> - The driver obtains Xen specific SCMI Agent's configuration from the Host DT, probes Agents and
>   builds SCMI Agents list. The Agents configuration is taken from "scmi-secondary-agents"
>   property where first item is "arm,smc-id", second - "arm,scmi-shmem" phandle and third is
>   optional "agent_id":
> 
> chosen {
>   ranges;
>   xen,config {

The node name could be xen-config, but it doesn't matter because we
should check for the compatible string instead (no check on node name).

We need to add a compatible string here, I would use "xen,scmi":

    compatible = "xen,scmi";


>     ranges;
>     scmi-secondary-agents = <
>                   0x82000003 &scmi_shm_0 0
>                   0x82000004 &scmi_shm_2 2
>                   0x82000005 &scmi_shm_3 3
>                   0x82000006 &scmi_shm_4 4>;
>     #scmi-secondary-agents-cells = <3>; <--- optional, default 3
> 
>     scmi_shm_0 : sram@47ff0000 {
>         compatible = "arm,scmi-shmem";
>         reg = <0x0 0x47ff0000 0x0 0x1000>;
>     };
> 
>     scmi_shm_2: sram@47ff2000 {
>             compatible = "arm,scmi-shmem";
>             reg = <0x0 0x47ff2000 0x0 0x1000>;
>     };
>     scmi_shm_3: sram@47ff3000 {
>             compatible = "arm,scmi-shmem";
>             reg = <0x0 0x47ff3000 0x0 0x1000>;
>     };
>     scmi_shm_4: sram@47ff4000 {
>             compatible = "arm,scmi-shmem";
>             reg = <0x0 0x47ff4000 0x0 0x1000>;
>     };
> 
>     // Xen SCMI management channel
>     scmi_shm_1: sram@47ff1000 {
>             compatible = "arm,scmi-shmem";
>             reg = <0x0 0x47ff1000 0x0 0x1000>;
>     };
> 
>     scmi_xen: scmi {
>         compatible = "arm,scmi-smc";
>         arm,smc-id = <0x82000002>; <--- Xen manegement agent smc-id
>         #address-cells = < 1>;
>         #size-cells = < 0>;
>         #access-controller-cells = < 1>;
>         shmem = <&scmi_shm_1>; <--- Xen manegement agent shmem
>     };
>   };
> };
> 
> /{
>     // Host SCMI OSPM channel - provided to the Dom0 as is if SCMI enabled for it
>     scmi_shm: sram@47ff0000 {
>             compatible = "arm,scmi-shmem";
>             reg = <0x0 0x47ff0000 0x0 0x1000>;
>     };
> 
>     firmware {
>         scmi: scmi {
>             compatible = "arm,scmi-smc";
>             arm,smc-id = <0x82000002>; <--- Host OSPM agent smc-id
>             #address-cells = < 1>;
>             #size-cells = < 0>;
>             shmem = <&scmi_shm>; <--- Host OSPM agent shmem
> 
>             protocol@X{
>             };
>         };
>     };
> };
> 
> This approach allows defining multiple SCMI Agents by adding Xen-specific properties under
> the ``/chosen`` node to the Host Device Tree, leaving the main part unchanged. The Host DT
> SCMI channel will be passed to Dom0.
> 
> The Xen management agent is described as a ``scmi_xen`` node under the ``/chosen`` node, which
> is used by Xen to control other SCMI Agents in the system.
> 
> All secondary agents' configurations are provided in the ``scmi-secondary-agents`` property with
> an optional ``agent_id`` field.
> 
> The ``agent_id`` from the ``scmi-secondary-agents`` property is used to identify the agent in the
> system and can be omitted by setting ``#scmi-secondary-agents-cells = <2>``, so the Secondary
> Agents configuration will look like this:
> 
> chosen {
>   xen,config {
>     scmi-secondary-agents = <
>                   0x82000003 &scmi_shm_0
>                   0x82000004 &scmi_shm_2
>                   0x82000005 &scmi_shm_3
>                   0x82000006 &scmi_shm_4>;
>     #scmi-secondary-agents-cells = <2>;
>   };
> }
> 
> In this case, Xen will use the ``SCMI_BASE_DISCOVER_AGENT`` call to discover the ``agent_id``
> for each secondary agent. Providing the ``agent_id`` in the ``scmi-secondary-agents`` property
> allows skipping the discovery call, which is useful when the secondary agent's shared memory is
> not accessible by Xen or when boot time is important because it allows skipping the agent
> discovery procedure.
> 
>   Note that Xen is the only one entry in the system which need to know
>   about SCMI multi-agent support.
> 
> - It implements the SCI subsystem interface required for configuring and
> enabling SCMI functionality for Dom0/hwdom and Guest domains. To enable
> SCMI functionality for domain it has to be configured with unique supported
> SCMI Agent_id and use corresponding SCMI SMC/HVC shared memory transport
> [smc-id, shmem] defined for this SCMI Agent_id.
> - Once Xen domain is configured it can communicate with EL3 SCMI FW:
>   -- zero-copy, the guest domain puts SCMI message in shmem;
>   -- the guest triggers SMC/HVC exception with smc-id (doorbell);
>   -- the Xen driver catches exception, do checks and synchronously forwards
>   it to EL3 FW.
> - the Xen driver sends BASE_RESET_AGENT_CONFIGURATION message to Xen
>   management agent channel on domain destroy event. This allows to reset
>   resources used by domain and so implement use-case like domain reboot.
> 
> Dom0 Enable SCMI SMC:
>  - pass dom0_scmi_agent_id=<agent_id> in Xen command line. if not provided
>    SCMI will be disabled for Dom0 and all SCMI nodes removed from Dom0 DT.
>    The driver updates Dom0 DT SCMI node "arm,smc-id" value and fix up shmem
>    node according to assigned agent_id.
> 
> Guest domains enable SCMI SMC:
>  - xl.cfg: add configuration option as below
> 
>    arm_sci = "type=scmi_smc_multiagent,agent_id=2"
> 
>  - xl.cfg: enable access to the "arm,scmi-shmem" which should correspond assigned agent_id for
>    the domain, for example:
> 
> iomem = [
>     "47ff2,1@22001",
> ]
> 
>  - DT: add SCMI nodes to the Driver domain partial device tree as in the
>  below example. The "arm,smc-id" should correspond assigned agent_id for the domain:
> 
> passthrough {
>    scmi_shm_0: sram@22001000 {
>        compatible = "arm,scmi-shmem";
>        reg = <0x0 0x22001000 0x0 0x1000>;
>    };
> 
>    firmware {
>         compatible = "simple-bus";
>             scmi: scmi {
>                 compatible = "arm,scmi-smc";
>                 arm,smc-id = <0x82000004>;
>                 shmem = <&scmi_shm_0>;
>                 ...
>             }
>     }
> }
> 
> SCMI "4.2.1.1 Device specific access control"
> 
> The XEN SCI SCMI SMC multi-agent driver performs "access-controller" provider function
> in case EL3 SCMI FW implements SCMI "4.2.1.1 Device specific access control" and provides the
> BASE_SET_DEVICE_PERMISSIONS command to configure the devices that an agents have access to.
> The DT SCMI node should "#access-controller-cells=<1>" property and DT devices should be bound
> to the Xen SCMI.
> 
> &i2c1 {
> 	access-controllers = <&scmi 0>;
> };
> 
> The Dom0 and dom0less domains DT devices will be processed automatically through
> sci_assign_dt_device() call, but to assign SCMI devices from toolstack the xl.cfg:"dtdev" property
> shell be used:

shall

> 
> dtdev = [
>     "/soc/i2c@e6508000",
> ]
> 
> xl.cfg:dtdev will contain all nodes which are under SCMI management (not only those which are behind IOMMU).
> 
> [1] https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/firmware/arm,scmi.yaml
> [2] https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/access-controllers/access-controllers.yaml
> 
> Signed-off-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> ---
> 
> Changes in v5:
> - fix device-tree example format in booting.txt, added ";" after "}".
> - update define in scmi-proto.h
> - update define in scmi-shmem.h file
> - scmi_assign_device - do not ignore -EOPNOTSUPP return
> code of the do_smc_xfer
> - remove overwriting agent_channel->agent_id after
> SCMI_BASE_DISCOVER_AGENT call
> - add multi-agent files to the MAINTAINERS
> - add SCMI multi-agent description to the SUPPORT.md
> - handle ARM_SMCCC_INVALID_PARAMETER return code and return -EINVAL
> for smc call
> - updated collect_agents function. Set agent_id parameter as optional
> in scmi-secondary-agents device-tree property
> - introduce "#scmi-secondary-agents-cells" parameter to set if
> agent_id was provided
> - reanme xen,scmi-secondary-agents property to scmi-secondary-agents
> - move memcpu_toio/fromio for the generic place
> - update Xen to get management channel from /chosen/xen,config node
> - get hypervisor channnel from node instead of using hardcoded
> - update handling scmi and shmem nodes for the domain
> - Set multi-agent driver to support only Arm64
> 
> Changes in v4:
> - toolstack comments from Anthony PERARD
> - added dom0less support
> - added doc for "xen,scmi-secondary-agents"
> 
>  MAINTAINERS                                 |   4 +
>  SUPPORT.md                                  |  11 +
>  docs/man/xl.cfg.5.pod.in                    |  13 +
>  docs/misc/arm/device-tree/booting.txt       |  88 +++
>  docs/misc/xen-command-line.pandoc           |   9 +
>  tools/libs/light/libxl_arm.c                |   4 +
>  tools/libs/light/libxl_types.idl            |   4 +-
>  tools/xl/xl_parse.c                         |  12 +
>  xen/arch/arm/dom0less-build.c               |  11 +
>  xen/arch/arm/domain_build.c                 |   3 +-
>  xen/arch/arm/firmware/Kconfig               |  12 +
>  xen/arch/arm/firmware/Makefile              |   1 +
>  xen/arch/arm/firmware/scmi-proto.h          | 164 ++++
>  xen/arch/arm/firmware/scmi-shmem.c          | 112 +++
>  xen/arch/arm/firmware/scmi-shmem.h          |  45 ++
>  xen/arch/arm/firmware/scmi-smc-multiagent.c | 803 ++++++++++++++++++++
>  xen/include/public/arch-arm.h               |   3 +
>  17 files changed, 1297 insertions(+), 2 deletions(-)
>  create mode 100644 xen/arch/arm/firmware/scmi-proto.h
>  create mode 100644 xen/arch/arm/firmware/scmi-shmem.c
>  create mode 100644 xen/arch/arm/firmware/scmi-shmem.h
>  create mode 100644 xen/arch/arm/firmware/scmi-smc-multiagent.c
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 31dbba54bb..1b6b58cbb7 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -514,6 +514,10 @@ R:	Oleksii Moisieiev <oleksii_moisieiev@epam.com>
>  S:	Supported
>  F:	xen/arch/arm/firmware/sci.c
>  F:	xen/arch/arm/include/asm/firmware/sci.h
> +F:	xen/arch/arm/firmware/scmi-smc-multiagent.c
> +F:	xen/arch/arm/firmware/scmi-shmem.c
> +F:	xen/arch/arm/firmware/scmi-shmem.h
> +F:	xen/arch/arm/firmware/scmi-proto.h
>  
>  SEABIOS UPSTREAM
>  M:	Wei Liu <wl@xen.org>
> diff --git a/SUPPORT.md b/SUPPORT.md
> index 6a82a92189..9d7857d953 100644
> --- a/SUPPORT.md
> +++ b/SUPPORT.md
> @@ -956,6 +956,17 @@ by hwdom. Some platforms use SCMI for access to system-level resources.
>  
>      Status: Supported
>  
> +### Arm: SCMI SMC multi-agent support
> +
> +Enable support for the multi-agent configuration of the EL3 Firmware, which
> +allows Xen to provide an SCMI interface to the Domains.
> +Xen manages access permissions to the HW resources and provides an SCMI interface
> +to the Domains. Each Domain is represented as a separate Agent, which can
> +communicate with EL3 Firmware using a dedicated shared memory region, and
> +notifications are passed through by Xen.
> +
> +    Status, ARM64: Tech Preview
> +
>  ### ARM: Guest PSCI support
>  
>  Emulated PSCI interface exposed to guests. We support all mandatory
> diff --git a/docs/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.in
> index 8f1a203e21..f6cf2d4567 100644
> --- a/docs/man/xl.cfg.5.pod.in
> +++ b/docs/man/xl.cfg.5.pod.in
> @@ -3103,8 +3103,21 @@ single SCMI OSPM agent support.
>  Should be used together with B<scmi_smc_passthrough> Xen command line
>  option.
>  
> +=item B<scmi_smc_multiagent>
> +
> +Enables ARM SCMI SMC multi-agent support for the guest by enabling SCMI over
> +SMC calls forwarding from domain to the EL3 firmware (like Trusted Firmware-A)
> +with a multi SCMI OSPM agent support. The SCMI B<agent_id> should be
> +specified for the guest.
> +
>  =back
>  
> +=item B<agent_id=NUMBER>
> +
> +Specifies a non-zero ARM SCI agent id for the guest. This option is mandatory
> +if the SCMI SMC support is enabled for the guest. The agent ids of domains
> +existing on a single host must be unique and in the range [1..255].

Why is the option mandatory if the commit description explains that the
agent_id can be probed by Xen? In the commit message, the mandatory
field is smc-id instead?

I guess it is because we expect Xen to have already the agent_id->smc-id
mapping and we expect the agent_id to be easier to remember and to write
in the config file?


>  =back
>  
>  =back
> diff --git a/docs/misc/arm/device-tree/booting.txt b/docs/misc/arm/device-tree/booting.txt
> index 8ea11c1551..10a99cfd15 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.
>  
> +    - "scmi_smc_multiagent"
> +
> +    Enables ARM SCMI SMC multi-agent support for the guest by enabling SCMI over
> +    SMC calls forwarding from domain to the EL3 firmware (like ARM
> +    Trusted Firmware-A) with a multi SCMI OSPM agent support.
> +    The SCMI agent_id should be specified for the guest with "xen,sci_agent_id"
> +    property.
> +
> +- "xen,sci_agent_id"
> +
> +    Specifies a non-zero ARM SCI agent id for the guest. This option is
> +    mandatory if the SCMI SMC "scmi_smc_multiagent" support is enabled for
> +    the guest. The agent ids of guest must be unique and in the range [1..255].

same question


>  Under the "xen,domain" compatible node, one or more sub-nodes are present
>  for the DomU kernel and ramdisk.
>  
> @@ -824,3 +838,77 @@ The automatically allocated static shared memory will get mapped at
>  0x80000000 in DomU1 guest physical address space, and at 0x90000000 in DomU2
>  guest physical address space. DomU1 is explicitly defined as the owner domain,
>  and DomU2 is the borrower domain.
> +
> +SCMI SMC multi-agent support
> +============================
> +
> +For enabling the ARM SCMI SMC multi-agent support (enabled by CONFIG_SCMI_SMC_MA)
> +the Xen specific SCMI Agent's configuration shell be provided in the Host DT

shall


> +according to the SCMI compliant EL3 Firmware specification with
> +ARM SMC/HVC transport using property "scmi-secondary-agents" placed in "xen,config"
> +node under "chosen" node:
> +
> +- scmi-secondary-agents
> +
> +    Defines a set of SCMI agents configuration supported by SCMI EL3 FW and
> +    available for Xen. Each Agent defined as triple consisting of:
> +    SMC/HVC function_id assigned for the agent transport ("arm,smc-id"),
> +    phandle to SCMI SHM assigned for the agent transport ("arm,scmi-shmem"),
> +    SCMI agent_id (optional) if not set - Xen will determine Agent ID for
> +    each provided channel using BASE_DISCOVER_AGENT message.
> +
> +As an example:
> +
> +/{
> +chosen {
> +    xen,config {

same comment about node name and compatible string


> +        scmi_shm_1: sram@47ff1000 {
> +                compatible = "arm,scmi-shmem";
> +                reg = <0x0 0x47ff1000 0x0 0x1000>;
> +        };
> +        scmi_shm_2: sram@47ff2000 {
> +                compatible = "arm,scmi-shmem";
> +                reg = <0x0 0x47ff2000 0x0 0x1000>;
> +        };
> +        scmi_shm_3: sram@47ff3000 {
> +                compatible = "arm,scmi-shmem";
> +                reg = <0x0 0x47ff3000 0x0 0x1000>;
> +        };
> +        scmi_shm_3: sram@47ff4000 {
> +                compatible = "arm,scmi-shmem";
> +                reg = <0x0 0x47ff4000 0x0 0x1000>;
> +        };
> +        scmi-secondary-agents = <
> +            0x82000003 &scmi_shm_1 1
> +            0x82000004 &scmi_shm_2 2
> +            0x82000005 &scmi_shm_3 3
> +            0x82000006 &scmi_shm_4 4>;
> +            #scmi-secondary-agents-cells = <3>;
> +        };
> +    };
> +};
> +
> +- #scmi-secondary-agents-cells
> +
> +    Defines whether Agent_id is set in the "scmi-secondary-agents" property.
> +    Possible values are: 2, 3.
> +    When set to 3 (the default), expect agent_id to be present in the secondary
> +    agents list.
> +    When set to 2, agent_id will be discovered for each channel using
> +    BASE_DISCOVER_AGENT message.
> +
> +
> +Example:
> +
> +/{
> +chosen {
> +    xen,config {
> +        scmi-secondary-agents = <
> +            0x82000003 &scmi_shm_1
> +            0x82000004 &scmi_shm_2
> +            0x82000005 &scmi_shm_3
> +            0x82000006 &scmi_shm_4>;
> +            #scmi-secondary-agents-cells = <2>;


In the example we should also add Xen own nodes like you did in the
commit message.


> +        };
> +    };
> +};
> diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
> index 7a1f723e63..5a1c1e072c 100644
> --- a/docs/misc/xen-command-line.pandoc
> +++ b/docs/misc/xen-command-line.pandoc
> @@ -1105,6 +1105,15 @@ which serves as Driver domain. The SCMI will be disabled for Dom0/hwdom and
>  SCMI nodes removed from Dom0/hwdom device tree.
>  (for example, thin Dom0 with Driver domain use-case).
>  
> +### dom0_scmi_agent_id (ARM)
> +> `= <integer>`
> +
> +The option is available when `CONFIG_SCMI_SMC_MA` is compiled in, and allows to
> +enable SCMI functionality for Dom0 by specifying a non-zero ARM SCMI agent id.
> +The SCMI will be disabled for Dom0 if this option is not specified
> +(for example, thin Dom0 or dom0less use-cases).
> +The agent ids of domains existing on a single host must be unique.

Same question about agent id vs. smc-id


>  ### dtuart (ARM)
>  > `= path [:options]`
>  
> diff --git a/tools/libs/light/libxl_arm.c b/tools/libs/light/libxl_arm.c
> index e4407d6e3f..be0e6263ae 100644
> --- a/tools/libs/light/libxl_arm.c
> +++ b/tools/libs/light/libxl_arm.c
> @@ -240,6 +240,10 @@ int libxl__arch_domain_prepare_config(libxl__gc *gc,
>      case LIBXL_ARM_SCI_TYPE_SCMI_SMC:
>          config->arch.arm_sci_type = XEN_DOMCTL_CONFIG_ARM_SCI_SCMI_SMC;
>          break;
> +    case LIBXL_ARM_SCI_TYPE_SCMI_SMC_MULTIAGENT:
> +        config->arch.arm_sci_type = XEN_DOMCTL_CONFIG_ARM_SCI_SCMI_SMC_MA;
> +        config->arch.arm_sci_agent_id = d_config->b_info.arch_arm.arm_sci.agent_id;
> +        break;
>      default:
>          LOG(ERROR, "Unknown ARM_SCI type %d",
>              d_config->b_info.arch_arm.arm_sci.type);
> diff --git a/tools/libs/light/libxl_types.idl b/tools/libs/light/libxl_types.idl
> index c8bc0f8521..da7f87cd0c 100644
> --- a/tools/libs/light/libxl_types.idl
> +++ b/tools/libs/light/libxl_types.idl
> @@ -553,11 +553,13 @@ libxl_sve_type = Enumeration("sve_type", [
>  
>  libxl_arm_sci_type = Enumeration("arm_sci_type", [
>      (0, "none"),
> -    (1, "scmi_smc")
> +    (1, "scmi_smc"),
> +    (2, "scmi_smc_multiagent")
>      ], init_val = "LIBXL_ARM_SCI_TYPE_NONE")
>  
>  libxl_arm_sci = Struct("arm_sci", [
>      ("type", libxl_arm_sci_type),
> +    ("agent_id", uint8)
>      ])
>  
>  libxl_rdm_reserve = Struct("rdm_reserve", [
> diff --git a/tools/xl/xl_parse.c b/tools/xl/xl_parse.c
> index 68d2ebeb9f..4c05b20c06 100644
> --- a/tools/xl/xl_parse.c
> +++ b/tools/xl/xl_parse.c
> @@ -1306,6 +1306,18 @@ static int parse_arm_sci_config(XLU_Config *cfg, libxl_arm_sci *arm_sci,
>              }
>          }
>  
> +        if (MATCH_OPTION("agent_id", ptr, oparg)) {
> +            unsigned long val = parse_ulong(oparg);
> +
> +            if (!val || val > 255) {
> +                fprintf(stderr, "An invalid ARM_SCI agent_id specified (%lu). Valid range [1..255]\n",
> +                        val);
> +                ret = ERROR_INVAL;
> +                goto parse_error;
> +            }
> +            arm_sci->agent_id = val;
> +        }
> +
>          ptr = strtok(NULL, ",");
>      }
>  
> diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
> index d28143f98b..6ca17b0ce6 100644
> --- a/xen/arch/arm/dom0less-build.c
> +++ b/xen/arch/arm/dom0less-build.c
> @@ -299,6 +299,17 @@ int __init domu_dt_sci_parse(struct dt_device_node *node,
>          d_cfg->arch.arm_sci_type = XEN_DOMCTL_CONFIG_ARM_SCI_NONE;
>      else if ( !strcmp(sci_type, "scmi_smc") )
>          d_cfg->arch.arm_sci_type = XEN_DOMCTL_CONFIG_ARM_SCI_SCMI_SMC;
> +    else if ( !strcmp(sci_type, "scmi_smc_multiagent") )
> +    {
> +        uint32_t agent_id = 0;
> +
> +        if ( !dt_property_read_u32(node, "xen,sci_agent_id", &agent_id) ||
> +             !agent_id )
> +            return -EINVAL;
> +
> +        d_cfg->arch.arm_sci_type = XEN_DOMCTL_CONFIG_ARM_SCI_SCMI_SMC_MA;
> +        d_cfg->arch.arm_sci_agent_id = agent_id;
> +    }
>      else
>      {
>          printk(XENLOG_ERR "xen,sci_type in not valid (%s) for domain %s\n",
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index 92039cf213..ea13e374a0 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -508,7 +508,8 @@ static int __init write_properties(struct domain *d, struct kernel_info *kinfo,
>                   dt_property_name_is_equal(prop, "linux,uefi-mmap-start") ||
>                   dt_property_name_is_equal(prop, "linux,uefi-mmap-size") ||
>                   dt_property_name_is_equal(prop, "linux,uefi-mmap-desc-size") ||
> -                 dt_property_name_is_equal(prop, "linux,uefi-mmap-desc-ver"))
> +                 dt_property_name_is_equal(prop, "linux,uefi-mmap-desc-ver") ||
> +                 dt_property_name_is_equal(prop, "xen,config") )
>                  continue;

please match by compatible string rather than by node name


>              if ( dt_property_name_is_equal(prop, "xen,dom0-bootargs") )
> diff --git a/xen/arch/arm/firmware/Kconfig b/xen/arch/arm/firmware/Kconfig
> index 5c5f0880c4..972cd9b173 100644
> --- a/xen/arch/arm/firmware/Kconfig
> +++ b/xen/arch/arm/firmware/Kconfig
> @@ -29,6 +29,18 @@ config SCMI_SMC
>  	  driver domain.
>  	  Use with EL3 firmware which supports only single SCMI OSPM agent.
>  
> +config SCMI_SMC_MA
> +	bool "Enable ARM SCMI SMC multi-agent driver"
> +	depends on ARM_64
> +	select ARM_SCI
> +	help
> +	  Enables SCMI SMC/HVC multi-agent in XEN to pass SCMI requests from Domains
> +	  to EL3 firmware (TF-A) which supports multi-agent feature.
> +	  This feature allows to enable SCMI per Domain using unique SCMI agent_id,
> +	  so Domain is identified by EL3 firmware as an SCMI Agent and can access
> +	  allowed platform resources through dedicated SMC/HVC Shared memory based
> +	  transport.
> +
>  endchoice
>  
>  endmenu
> diff --git a/xen/arch/arm/firmware/Makefile b/xen/arch/arm/firmware/Makefile
> index 71bdefc24a..37927e690e 100644
> --- a/xen/arch/arm/firmware/Makefile
> +++ b/xen/arch/arm/firmware/Makefile
> @@ -1,2 +1,3 @@
>  obj-$(CONFIG_ARM_SCI) += sci.o
>  obj-$(CONFIG_SCMI_SMC) += scmi-smc.o
> +obj-$(CONFIG_SCMI_SMC_MA) += scmi-shmem.o scmi-smc-multiagent.o
> diff --git a/xen/arch/arm/firmware/scmi-proto.h b/xen/arch/arm/firmware/scmi-proto.h
> new file mode 100644
> index 0000000000..e290d6630d
> --- /dev/null
> +++ b/xen/arch/arm/firmware/scmi-proto.h
> @@ -0,0 +1,164 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Arm System Control and Management Interface definitions
> + * Version 3.0 (DEN0056C)
> + *
> + * Copyright (c) 2024 EPAM Systems
> + */
> +
> +#ifndef ARM_FIRMWARE_SCMI_PROTO_H_
> +#define ARM_FIRMWARE_SCMI_PROTO_H_
> +
> +#include <xen/stdint.h>
> +
> +#define SCMI_SHORT_NAME_MAX_SIZE 16
> +
> +/* SCMI status codes. See section 4.1.4 */
> +#define SCMI_SUCCESS              0
> +#define SCMI_NOT_SUPPORTED      (-1)
> +#define SCMI_INVALID_PARAMETERS (-2)
> +#define SCMI_DENIED             (-3)
> +#define SCMI_NOT_FOUND          (-4)
> +#define SCMI_OUT_OF_RANGE       (-5)
> +#define SCMI_BUSY               (-6)
> +#define SCMI_COMMS_ERROR        (-7)
> +#define SCMI_GENERIC_ERROR      (-8)
> +#define SCMI_HARDWARE_ERROR     (-9)
> +#define SCMI_PROTOCOL_ERROR     (-10)
> +
> +/* Protocol IDs */
> +#define SCMI_BASE_PROTOCOL 0x10
> +
> +/* Base protocol message IDs */
> +#define SCMI_BASE_PROTOCOL_VERSION            0x0
> +#define SCMI_BASE_PROTOCOL_ATTIBUTES          0x1
> +#define SCMI_BASE_PROTOCOL_MESSAGE_ATTRIBUTES 0x2
> +#define SCMI_BASE_DISCOVER_AGENT              0x7
> +#define SCMI_BASE_SET_DEVICE_PERMISSIONS      0x9
> +#define SCMI_BASE_RESET_AGENT_CONFIGURATION   0xB
> +
> +typedef struct scmi_msg_header {
> +    uint8_t id;
> +    uint8_t type;
> +    uint8_t protocol;
> +    uint32_t status;
> +} scmi_msg_header_t;
> +
> +/* Table 2 Message header format */
> +#define SCMI_HDR_ID    GENMASK(7, 0)
> +#define SCMI_HDR_TYPE  GENMASK(9, 8)
> +#define SCMI_HDR_PROTO GENMASK(17, 10)
> +
> +#define SCMI_FIELD_GET(_mask, _reg)                                            \
> +    ((typeof(_mask))(((_reg) & (_mask)) >> (ffs64(_mask) - 1)))

ffs64 is declared in xen/bitops.h


> +#define SCMI_FIELD_PREP(_mask, _val)                                           \
> +    (((typeof(_mask))(_val) << (ffs64(_mask) - 1)) & (_mask))
> +
> +static inline uint32_t pack_scmi_header(scmi_msg_header_t *hdr)
> +{
> +    return SCMI_FIELD_PREP(SCMI_HDR_ID, hdr->id) |
> +           SCMI_FIELD_PREP(SCMI_HDR_TYPE, hdr->type) |
> +           SCMI_FIELD_PREP(SCMI_HDR_PROTO, hdr->protocol);
> +}
> +
> +static inline void unpack_scmi_header(uint32_t msg_hdr, scmi_msg_header_t *hdr)
> +{
> +    hdr->id = SCMI_FIELD_GET(SCMI_HDR_ID, msg_hdr);
> +    hdr->type = SCMI_FIELD_GET(SCMI_HDR_TYPE, msg_hdr);
> +    hdr->protocol = SCMI_FIELD_GET(SCMI_HDR_PROTO, msg_hdr);
> +}
> +
> +static inline int scmi_to_xen_errno(int scmi_status)
> +{
> +    if ( scmi_status == SCMI_SUCCESS )
> +        return 0;
> +
> +    switch ( scmi_status )
> +    {
> +    case SCMI_NOT_SUPPORTED:
> +        return -EOPNOTSUPP;
> +    case SCMI_INVALID_PARAMETERS:
> +        return -EINVAL;
> +    case SCMI_DENIED:
> +        return -EACCES;
> +    case SCMI_NOT_FOUND:
> +        return -ENOENT;
> +    case SCMI_OUT_OF_RANGE:
> +        return -ERANGE;
> +    case SCMI_BUSY:
> +        return -EBUSY;
> +    case SCMI_COMMS_ERROR:
> +        return -ENOTCONN;
> +    case SCMI_GENERIC_ERROR:
> +        return -EIO;
> +    case SCMI_HARDWARE_ERROR:
> +        return -ENXIO;
> +    case SCMI_PROTOCOL_ERROR:
> +        return -EBADMSG;
> +    default:
> +        return -EINVAL;
> +    }
> +}
> +
> +/* PROTOCOL_VERSION */
> +#define SCMI_VERSION_MINOR GENMASK(15, 0)
> +#define SCMI_VERSION_MAJOR GENMASK(31, 16)
> +
> +struct scmi_msg_prot_version_p2a {
> +    uint32_t version;
> +} __packed;
> +
> +/* BASE PROTOCOL_ATTRIBUTES */
> +#define SCMI_BASE_ATTR_NUM_PROTO GENMASK(7, 0)
> +#define SCMI_BASE_ATTR_NUM_AGENT GENMASK(15, 8)
> +
> +struct scmi_msg_base_attributes_p2a {
> +    uint32_t attributes;
> +} __packed;
> +
> +/*
> + * BASE_DISCOVER_AGENT
> + */
> +#define SCMI_BASE_AGENT_ID_OWN 0xFFFFFFFF
> +
> +struct scmi_msg_base_discover_agent_a2p {
> +    uint32_t agent_id;
> +} __packed;
> +
> +struct scmi_msg_base_discover_agent_p2a {
> +    uint32_t agent_id;
> +    char name[SCMI_SHORT_NAME_MAX_SIZE];
> +} __packed;
> +
> +/*
> + * BASE_SET_DEVICE_PERMISSIONS
> + */
> +#define SCMI_BASE_DEVICE_ACCESS_ALLOW           BIT(0, UL)
> +
> +struct scmi_msg_base_set_device_permissions_a2p {
> +    uint32_t agent_id;
> +    uint32_t device_id;
> +    uint32_t flags;
> +} __packed;
> +
> +/*
> + * BASE_RESET_AGENT_CONFIGURATION
> + */
> +#define SCMI_BASE_AGENT_PERMISSIONS_RESET       BIT(0, UL)
> +
> +struct scmi_msg_base_reset_agent_cfg_a2p {
> +    uint32_t agent_id;
> +    uint32_t flags;
> +} __packed;
> +
> +#endif /* ARM_FIRMWARE_SCMI_PROTO_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/arm/firmware/scmi-shmem.c b/xen/arch/arm/firmware/scmi-shmem.c
> new file mode 100644
> index 0000000000..8fc8ca356b
> --- /dev/null
> +++ b/xen/arch/arm/firmware/scmi-shmem.c
> @@ -0,0 +1,112 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * SCI SCMI multi-agent driver, using SMC/HVC shmem as transport.
> + *
> + * Oleksii Moisieiev <oleksii_moisieiev@epam.com>
> + * Copyright (c) 2025 EPAM Systems
> + */
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#include <asm/io.h>
> +#include <xen/err.h>
> +#include <xen/lib/arm/io.h>
> +
> +#include "scmi-proto.h"
> +#include "scmi-shmem.h"
> +
> +static inline int
> +shmem_channel_is_free(const volatile struct scmi_shared_mem __iomem *shmem)
> +{
> +    return (readl(&shmem->channel_status) &
> +            SCMI_SHMEM_CHAN_STAT_CHANNEL_FREE) ? 0 : -EBUSY;
> +}
> +
> +int shmem_put_message(volatile struct scmi_shared_mem __iomem *shmem,
> +                      scmi_msg_header_t *hdr, void *data, int len)
> +{
> +    int ret;
> +
> +    if ( (len + sizeof(shmem->msg_header)) > SCMI_SHMEM_MAPPED_SIZE )

shouldn't this take into account offsetof(struct scmi_shared_mem,
msg_header) ?




> +    {
> +        printk(XENLOG_ERR "scmi: Wrong size of smc message. Data is invalid\n");
> +        return -EINVAL;
> +    }
> +
> +    ret = shmem_channel_is_free(shmem);
> +    if ( ret )
> +        return ret;
> +
> +    writel_relaxed(0x0, &shmem->channel_status);
> +    /* Writing 0x0 right now, but "shmem"_FLAG_INTR_ENABLED can be set */
> +    writel_relaxed(0x0, &shmem->flags);
> +    writel_relaxed(sizeof(shmem->msg_header) + len, &shmem->length);
> +    writel(pack_scmi_header(hdr), &shmem->msg_header);
> +
> +    if ( len > 0 && data )
> +        __memcpy_toio(shmem->msg_payload, data, len);
> +
> +    return 0;
> +}
> +
> +int shmem_get_response(const volatile struct scmi_shared_mem __iomem *shmem,
> +                       scmi_msg_header_t *hdr, void *data, int len)
> +{
> +    int recv_len;
> +    int ret;
> +    int pad = sizeof(hdr->status);
> +
> +    if ( len >= SCMI_SHMEM_MAPPED_SIZE - sizeof(shmem) )

should this be sizeof(*shmem) ?


> +    {
> +        printk(XENLOG_ERR
> +               "scmi: Wrong size of input smc message. Data may be invalid\n");
> +        return -EINVAL;
> +    }
> +
> +    ret = shmem_channel_is_free(shmem);
> +    if ( ret )
> +        return ret;
> +
> +    recv_len = readl(&shmem->length) - sizeof(shmem->msg_header);
> +
> +    if ( recv_len < 0 )
> +    {
> +        printk(XENLOG_ERR
> +               "scmi: Wrong size of smc message. Data may be invalid\n");
> +        return -EINVAL;
> +    }
> +
> +    unpack_scmi_header(readl(&shmem->msg_header), hdr);
> +
> +    hdr->status = readl(&shmem->msg_payload);
> +    recv_len = recv_len > pad ? recv_len - pad : 0;
> +
> +    ret = scmi_to_xen_errno(hdr->status);
> +    if ( ret )
> +    {
> +        printk(XENLOG_DEBUG "scmi: Error received: %d\n", ret);
> +        return ret;
> +    }
> +
> +    if ( recv_len > len )
> +    {
> +        printk(XENLOG_ERR
> +               "scmi: Not enough buffer for message %d, expecting %d\n",
> +               recv_len, len);
> +        return -EINVAL;
> +    }
> +
> +    if ( recv_len > 0 )
> +        __memcpy_fromio(data, shmem->msg_payload + pad, recv_len);
> +
> +    return 0;
> +}
> +
> +/*
> + * 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/arm/firmware/scmi-shmem.h b/xen/arch/arm/firmware/scmi-shmem.h
> new file mode 100644
> index 0000000000..7313cb6b26
> --- /dev/null
> +++ b/xen/arch/arm/firmware/scmi-shmem.h
> @@ -0,0 +1,45 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Arm System Control and Management Interface definitions
> + * Version 3.0 (DEN0056C)
> + * Shared Memory based Transport
> + *
> + * Copyright (c) 2024 EPAM Systems
> + */
> +
> +#ifndef ARM_FIRMWARE_SCMI_SHMEM_H_
> +#define ARM_FIRMWARE_SCMI_SHMEM_H_
> +
> +#include <xen/stdint.h>
> +
> +#define SCMI_SHMEM_CHAN_STAT_CHANNEL_FREE  BIT(0, UL)
> +#define SCMI_SHMEM_CHAN_STAT_CHANNEL_ERROR BIT(1, UL)
> +
> +struct scmi_shared_mem {
> +    uint32_t reserved;
> +    uint32_t channel_status;
> +    uint32_t reserved1[2];
> +    uint32_t flags;
> +    uint32_t length;
> +    uint32_t msg_header;
> +    uint8_t msg_payload[];
> +};
> +
> +#define SCMI_SHMEM_MAPPED_SIZE PAGE_SIZE
> +
> +int shmem_put_message(volatile struct scmi_shared_mem __iomem *shmem,
> +                      scmi_msg_header_t *hdr, void *data, int len);
> +
> +int shmem_get_response(const volatile struct scmi_shared_mem __iomem *shmem,
> +                       scmi_msg_header_t *hdr, void *data, int len);
> +#endif /* ARM_FIRMWARE_SCMI_SHMEM_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/arm/firmware/scmi-smc-multiagent.c b/xen/arch/arm/firmware/scmi-smc-multiagent.c
> new file mode 100644
> index 0000000000..9f839147d4
> --- /dev/null
> +++ b/xen/arch/arm/firmware/scmi-smc-multiagent.c
> @@ -0,0 +1,803 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * SCI SCMI multi-agent driver, using SMC/HVC shmem as transport.
> + *
> + * Oleksii Moisieiev <oleksii_moisieiev@epam.com>
> + * Copyright (c) 2025 EPAM Systems
> + */
> +
> +#include <xen/acpi.h>
> +
> +#include <xen/device_tree.h>
> +#include <xen/init.h>
> +#include <xen/iocap.h>
> +#include <xen/err.h>
> +#include <xen/libfdt/libfdt.h>
> +#include <xen/param.h>
> +#include <xen/sched.h>
> +#include <xen/vmap.h>
> +
> +#include <asm/firmware/sci.h>
> +#include <asm/smccc.h>
> +
> +#include "scmi-proto.h"
> +#include "scmi-shmem.h"
> +
> +#define SCMI_AGENT_ID_INVALID 0xFF
> +
> +static uint8_t __initdata opt_dom0_scmi_agent_id = SCMI_AGENT_ID_INVALID;
> +integer_param("dom0_scmi_agent_id", opt_dom0_scmi_agent_id);
> +
> +#define SCMI_SECONDARY_AGENTS "scmi-secondary-agents"
> +
> +struct scmi_channel {
> +    uint32_t agent_id;
> +    uint32_t func_id;
> +    domid_t domain_id;
> +    uint64_t paddr;
> +    uint64_t len;

doesn't seem to be used


> +    struct scmi_shared_mem __iomem *shmem;
> +    spinlock_t lock;
> +    struct list_head list;
> +};
> +
> +struct scmi_data {
> +    struct list_head channel_list;
> +    spinlock_t channel_list_lock;
> +    uint32_t func_id;
> +    bool initialized;
> +    uint32_t shmem_phandle;
> +    uint32_t hyp_channel_agent_id;
> +    struct dt_device_node *dt_dev;
> +};
> +
> +static struct scmi_data scmi_data;
> +
> +static int send_smc_message(struct scmi_channel *chan_info,
> +                            scmi_msg_header_t *hdr, void *data, int len)
> +{
> +    struct arm_smccc_res resp;
> +    int ret;
> +
> +    ret = shmem_put_message(chan_info->shmem, hdr, data, len);
> +    if ( ret )
> +        return ret;
> +
> +    arm_smccc_1_1_smc(chan_info->func_id, 0, 0, 0, 0, 0, 0, 0, &resp);
> +
> +    if ( resp.a0 == ARM_SMCCC_INVALID_PARAMETER )
> +        return -EINVAL;
> +
> +    if ( resp.a0 )
> +        return -EOPNOTSUPP;
> +
> +    return 0;
> +}
> +
> +static int do_smc_xfer(struct scmi_channel *chan_info, scmi_msg_header_t *hdr,
> +                       void *tx_data, int tx_size, void *rx_data, int rx_size)
> +{
> +    int ret = 0;
> +
> +    ASSERT(chan_info && chan_info->shmem);
> +
> +    if ( !hdr )
> +        return -EINVAL;
> +
> +    spin_lock(&chan_info->lock);
> +
> +    printk(XENLOG_DEBUG
> +           "scmi: agent_id = %d msg_id = %x type = %d, proto = %x\n",
> +           chan_info->agent_id, hdr->id, hdr->type, hdr->protocol);
> +
> +    ret = send_smc_message(chan_info, hdr, tx_data, tx_size);
> +    if ( ret )
> +        goto clean;
> +
> +    ret = shmem_get_response(chan_info->shmem, hdr, rx_data, rx_size);
> +
> +clean:
> +    printk(XENLOG_DEBUG
> +           "scmi: get smc response agent_id = %d msg_id = %x proto = %x res=%d\n",
> +           chan_info->agent_id, hdr->id, hdr->protocol, ret);
> +
> +    spin_unlock(&chan_info->lock);
> +
> +    return ret;
> +}
> +
> +static struct scmi_channel *get_channel_by_id(uint32_t agent_id)
> +{
> +    struct scmi_channel *curr;
> +    bool found = false;
> +
> +    spin_lock(&scmi_data.channel_list_lock);
> +    list_for_each_entry(curr, &scmi_data.channel_list, list)
> +    {
> +        if ( curr->agent_id == agent_id )
> +        {
> +            found = true;
> +            break;
> +        }
> +    }
> +
> +    spin_unlock(&scmi_data.channel_list_lock);
> +    if ( found )
> +        return curr;
> +
> +    return NULL;
> +}
> +
> +static struct scmi_channel *acquire_scmi_channel(struct domain *d,
> +                                                 uint32_t agent_id)
> +{
> +    struct scmi_channel *curr;
> +    struct scmi_channel *ret = ERR_PTR(-ENOENT);
> +
> +    spin_lock(&scmi_data.channel_list_lock);
> +    list_for_each_entry(curr, &scmi_data.channel_list, list)
> +    {
> +        if ( curr->agent_id == agent_id )
> +        {
> +            if ( curr->domain_id != DOMID_INVALID )
> +            {
> +                ret = ERR_PTR(-EEXIST);
> +                break;
> +            }
> +
> +            curr->domain_id = d->domain_id;
> +            ret = curr;
> +            break;
> +        }
> +    }
> +
> +    spin_unlock(&scmi_data.channel_list_lock);
> +
> +    return ret;
> +}
> +
> +static void relinquish_scmi_channel(struct scmi_channel *channel)
> +{
> +    ASSERT(channel != NULL);
> +
> +    spin_lock(&scmi_data.channel_list_lock);
> +    channel->domain_id = DOMID_INVALID;
> +    spin_unlock(&scmi_data.channel_list_lock);
> +}
> +
> +static int map_channel_memory(struct scmi_channel *channel)
> +{
> +    ASSERT(channel && channel->paddr);
> +    channel->shmem = ioremap_nocache(channel->paddr, SCMI_SHMEM_MAPPED_SIZE);
> +    if ( !channel->shmem )
> +        return -ENOMEM;
> +
> +    channel->shmem->channel_status = SCMI_SHMEM_CHAN_STAT_CHANNEL_FREE;
> +    printk(XENLOG_DEBUG "scmi: Got shmem %lx after vmap %p\n", channel->paddr,
> +           channel->shmem);
> +
> +    return 0;
> +}
> +
> +static void unmap_channel_memory(struct scmi_channel *channel)
> +{
> +    ASSERT(channel && channel->shmem);
> +    iounmap(channel->shmem);
> +    channel->shmem = NULL;
> +}
> +
> +static struct scmi_channel *smc_create_channel(uint32_t agent_id,
> +                                               uint32_t func_id, uint64_t addr)
> +{
> +    struct scmi_channel *channel;
> +
> +    channel = get_channel_by_id(agent_id);
> +    if ( channel )
> +        return ERR_PTR(EEXIST);
> +
> +    channel = xmalloc(struct scmi_channel);
> +    if ( !channel )
> +        return ERR_PTR(ENOMEM);
> +
> +    spin_lock_init(&channel->lock);
> +    channel->agent_id = agent_id;
> +    channel->func_id = func_id;
> +    channel->domain_id = DOMID_INVALID;
> +    channel->shmem = NULL;
> +    channel->paddr = addr;
> +    list_add_tail(&channel->list, &scmi_data.channel_list);
> +    return channel;
> +}
> +
> +static void free_channel_list(void)
> +{
> +    struct scmi_channel *curr, *_curr;
> +
> +    list_for_each_entry_safe(curr, _curr, &scmi_data.channel_list, list)
> +    {
> +        list_del(&curr->list);
> +        xfree(curr);
> +    }
> +}
> +
> +static int __init
> +scmi_dt_read_hyp_channel_addr(struct dt_device_node *scmi_node, u64 *addr,
> +                              u64 *size)
> +{
> +    struct dt_device_node *shmem_node;
> +    const __be32 *prop;
> +
> +    prop = dt_get_property(scmi_node, "shmem", NULL);
> +    if ( !prop )
> +        return -EINVAL;
> +
> +    shmem_node = dt_find_node_by_phandle(be32_to_cpu(*prop));
> +    if ( IS_ERR_OR_NULL(shmem_node) )
> +    {
> +        printk(XENLOG_ERR
> +               "scmi: Device tree error, can't parse reserved memory %ld\n",
> +               PTR_ERR(shmem_node));
> +        return PTR_ERR(shmem_node);
> +    }
> +
> +    return dt_device_get_address(shmem_node, 0, addr, size);
> +}
> +
> +/*
> + * Handle Dom0 SCMI specific DT nodes
> + *
> + * Make a decision on copying SCMI specific nodes into Dom0 device tree.
> + * For SCMI multi-agent case:
> + * - shmem nodes will not be copied and generated instead if SCMI
> + *   is enabled for Dom0
> + * - scmi node will be copied if SCMI is enabled for Dom0
> + */
> +static bool scmi_dt_handle_node(struct domain *d, struct dt_device_node *node)
> +{
> +    static const struct dt_device_match shmem_matches[] __initconst = {
> +        DT_MATCH_COMPATIBLE("arm,scmi-shmem"),
> +        { /* sentinel */ },
> +    };
> +    static const struct dt_device_match scmi_matches[] __initconst = {
> +        DT_MATCH_PATH("/firmware/scmi"),
> +        { /* sentinel */ },
> +    };
> +
> +    if ( !scmi_data.initialized )
> +        return false;
> +
> +    /* skip scmi shmem node for dom0 if scmi not enabled */
> +    if ( dt_match_node(shmem_matches, node) && !sci_domain_is_enabled(d) )
> +    {
> +        dt_dprintk("  Skip scmi shmem node\n");
> +        return true;
> +    }
> +
> +    /* drop scmi if not enabled */
> +    if ( dt_match_node(scmi_matches, node) && !sci_domain_is_enabled(d) )
> +    {
> +        dt_dprintk("  Skip scmi node\n");
> +        return true;
> +    }
> +
> +    return false;
> +}
> +
> +static int scmi_assign_device(uint32_t agent_id, uint32_t device_id,
> +                              uint32_t flags)
> +{
> +    struct scmi_msg_base_set_device_permissions_a2p tx;
> +    struct scmi_channel *channel;
> +    scmi_msg_header_t hdr;
> +
> +    channel = get_channel_by_id(scmi_data.hyp_channel_agent_id);
> +    if ( !channel )
> +        return -EINVAL;
> +
> +    hdr.id = SCMI_BASE_SET_DEVICE_PERMISSIONS;
> +    hdr.type = 0;
> +    hdr.protocol = SCMI_BASE_PROTOCOL;
> +
> +    tx.agent_id = agent_id;
> +    tx.device_id = device_id;
> +    tx.flags = flags;
> +
> +    return do_smc_xfer(channel, &hdr, &tx, sizeof(tx), NULL, 0);
> +}
> +
> +static int scmi_dt_assign_device(struct domain *d,
> +                                 struct dt_phandle_args *ac_spec)
> +{
> +    struct scmi_channel *agent_channel;
> +    uint32_t scmi_device_id = ac_spec->args[0];
> +    int ret;
> +
> +    if ( !d->arch.sci_data )
> +        return 0;
> +
> +    /* The access-controllers is specified for DT dev, but it's not a SCMI */
> +    if ( ac_spec->np != scmi_data.dt_dev )
> +        return 0;
> +
> +    agent_channel = d->arch.sci_data;
> +
> +    spin_lock(&agent_channel->lock);
> +
> +    ret = scmi_assign_device(agent_channel->agent_id, scmi_device_id,
> +                             SCMI_BASE_DEVICE_ACCESS_ALLOW);
> +    if ( ret )
> +    {
> +        printk(XENLOG_ERR
> +               "scmi: could not assign dev for %pd agent:%d dev_id:%u (%d)",
> +               d, agent_channel->agent_id, scmi_device_id, ret);
> +    }
> +
> +    spin_unlock(&agent_channel->lock);
> +    return ret;
> +}
> +
> +static int collect_agent_id(struct scmi_channel *agent_channel)
> +{
> +    int ret;
> +    scmi_msg_header_t hdr;
> +    struct scmi_msg_base_discover_agent_p2a da_rx;
> +    struct scmi_msg_base_discover_agent_a2p da_tx;
> +
> +    ret = map_channel_memory(agent_channel);
> +    if ( ret )
> +        return ret;
> +
> +    hdr.id = SCMI_BASE_DISCOVER_AGENT;
> +    hdr.type = 0;
> +    hdr.protocol = SCMI_BASE_PROTOCOL;
> +
> +    da_tx.agent_id = agent_channel->agent_id;
> +
> +    ret = do_smc_xfer(agent_channel, &hdr, &da_tx, sizeof(da_tx), &da_rx,
> +                        sizeof(da_rx));
> +    if ( agent_channel->domain_id != DOMID_XEN )
> +        unmap_channel_memory(agent_channel);
> +    if ( ret )
> +        return ret;
> +
> +    printk(XENLOG_DEBUG "id=0x%x name=%s\n", da_rx.agent_id, da_rx.name);
> +    agent_channel->agent_id = da_rx.agent_id;
> +    return 0;
> +}
> +
> +static __init int collect_agents(struct dt_device_node *scmi_node)
> +{
> +    const struct dt_device_node *config_node;
> +    const __be32 *prop;
> +    uint32_t len;
> +    const __be32 *end;
> +    uint32_t cells_per_entry = 3; /* Default to 3 cells if property is absent. */
> +
> +    config_node = dt_find_node_by_path("/chosen/xen,config");

Please use compatible strings, not paths


> +    if ( !config_node )
> +    {
> +        printk(XENLOG_WARNING "scmi: /chosen/xen,config node not found, no agents to collect.\n");
> +        return -ENOENT;
> +    }
> +
> +    /* Check for the optional '#scmi-secondary-agents-cells' property. */
> +    if ( dt_property_read_u32(config_node, "#scmi-secondary-agents-cells",
> +                              &cells_per_entry) )
> +    {
> +        if ( cells_per_entry != 2 && cells_per_entry != 3 )
> +        {
> +            printk(XENLOG_ERR "scmi: Invalid #scmi-secondary-agents-cells value: %u\n",
> +                   cells_per_entry);
> +            return -EINVAL;
> +        }
> +    }
> +
> +    prop = dt_get_property(config_node, SCMI_SECONDARY_AGENTS, &len);
> +    if ( !prop )
> +    {
> +        /* This is not an error, as there may be no secondary agents. */
> +        printk(XENLOG_WARNING "scmi: No %s property found, no agents to collect.\n",
> +               SCMI_SECONDARY_AGENTS);
> +        return -EINVAL;

While the comment says this is not a fatal error, returning -EINVAL
leads to scmi_probe taking the error path

> +    }
> +
> +    /* Validate that the property length is a multiple of the cell size. */
> +    if ( len == 0 || len % (cells_per_entry * sizeof(uint32_t)) != 0 )
> +    {
> +        printk(XENLOG_ERR "scmi: Invalid length of %s property: %u for %u cells per entry\n",
> +               SCMI_SECONDARY_AGENTS, len, cells_per_entry);
> +        return -EINVAL;
> +    }
> +
> +    end = (const __be32 *)((const u8 *)prop + len);
> +
> +    for ( ; prop < end; )
> +    {
> +        uint32_t agent_id;
> +        uint32_t smc_id;
> +        uint32_t shmem_phandle;
> +        struct dt_device_node *node;
> +        u64 addr, size;
> +        int ret;
> +        struct scmi_channel *agent_channel;
> +
> +        smc_id = be32_to_cpu(*prop++);
> +        shmem_phandle = be32_to_cpu(*prop++);
> +
> +        if ( cells_per_entry == 3 )
> +            agent_id = be32_to_cpu(*prop++);
> +        else
> +            agent_id = SCMI_BASE_AGENT_ID_OWN;
> +
> +        node = dt_find_node_by_phandle(shmem_phandle);
> +        if ( !node )
> +        {
> +            printk(XENLOG_ERR "scmi: Could not find shmem node for agent %u\n",
> +                   agent_id);
> +            return -EINVAL;
> +        }
> +
> +        ret = dt_device_get_address(node, 0, &addr, &size);
> +        if ( ret )
> +        {
> +            printk(XENLOG_ERR
> +                   "scmi: Could not read shmem address for agent %u: %d\n",
> +                   agent_id, ret);
> +            return ret;

why no "goto error" ?

> +        }
> +
> +        if ( !IS_ALIGNED(size, SCMI_SHMEM_MAPPED_SIZE) )

should we also check that size % SCMI_SHMEM_MAPPED_SIZE == 0 ?


> +        {
> +            printk(XENLOG_ERR "scmi: shmem memory is not aligned\n");
> +            return -EINVAL;
> +        }
> +
> +        agent_channel = smc_create_channel(agent_id, smc_id, addr);
> +        if ( IS_ERR(agent_channel) )
> +        {
> +            printk(XENLOG_ERR "scmi: Could not create channel for agent %u: %ld\n",
> +                   agent_id, PTR_ERR(agent_channel));
> +            return PTR_ERR(agent_channel);
> +        }
> +
> +        if ( cells_per_entry == 2 )
> +        {
> +            ret = collect_agent_id(agent_channel);
> +            if ( ret )
> +                return ret;
> +        }
> +
> +        printk(XENLOG_DEBUG "scmi: Agent %u SMC %X addr %lx\n", agent_channel->agent_id,
> +               smc_id, (unsigned long)addr);
> +    }
> +
> +    return 0;
> +}
> +
> +static int scmi_domain_init(struct domain *d,
> +                            struct xen_domctl_createdomain *config)
> +{
> +    struct scmi_channel *channel;
> +    int ret;
> +
> +    if ( !scmi_data.initialized )
> +        return 0;
> +
> +    /*
> +     * Special case for Dom0 - the SCMI support is enabled basing on
> +     * "dom0_sci_agent_id" Xen command line parameter
> +     */
> +    if ( is_hardware_domain(d) )
> +    {
> +        if ( opt_dom0_scmi_agent_id != SCMI_AGENT_ID_INVALID )
> +        {
> +            config->arch.arm_sci_type = XEN_DOMCTL_CONFIG_ARM_SCI_SCMI_SMC_MA;
> +            config->arch.arm_sci_agent_id = opt_dom0_scmi_agent_id;
> +        }
> +        else
> +            config->arch.arm_sci_type = XEN_DOMCTL_CONFIG_ARM_SCI_NONE;
> +    }
> +
> +    if ( config->arch.arm_sci_type == XEN_DOMCTL_CONFIG_ARM_SCI_NONE )
> +        return 0;
> +
> +    channel = acquire_scmi_channel(d, config->arch.arm_sci_agent_id);
> +    if ( IS_ERR(channel) )
> +    {
> +        printk(XENLOG_ERR
> +               "scmi: Failed to acquire SCMI channel for agent_id %u: %ld\n",
> +               config->arch.arm_sci_agent_id, PTR_ERR(channel));
> +        return PTR_ERR(channel);
> +    }
> +
> +    printk(XENLOG_INFO
> +           "scmi: Acquire channel id = 0x%x, domain_id = %d paddr = 0x%lx\n",
> +           channel->agent_id, channel->domain_id, channel->paddr);
> +
> +    /*
> +     * Dom0 (if present) needs to have an access to the guest memory range
> +     * to satisfy iomem_access_permitted() check in XEN_DOMCTL_iomem_permission
> +     * domctl.
> +     */
> +    if ( hardware_domain && !is_hardware_domain(d) )
> +    {
> +        ret = iomem_permit_access(hardware_domain, paddr_to_pfn(channel->paddr),
> +                                  paddr_to_pfn(channel->paddr + PAGE_SIZE - 1));
> +        if ( ret )
> +            goto error;
> +    }
> +
> +    d->arch.sci_data = channel;
> +    d->arch.sci_enabled = true;
> +
> +    return 0;
> +
> +error:
> +    relinquish_scmi_channel(channel);
> +    return ret;
> +}
> +
> +int scmi_domain_sanitise_config(struct xen_domctl_createdomain *config)
> +{
> +    if ( config->arch.arm_sci_type != XEN_DOMCTL_CONFIG_ARM_SCI_NONE &&
> +         config->arch.arm_sci_type != XEN_DOMCTL_CONFIG_ARM_SCI_SCMI_SMC_MA )
> +    {
> +        dprintk(XENLOG_INFO, "scmi: Unsupported ARM_SCI type\n");
> +        return -EINVAL;
> +    }
> +    else if ( config->arch.arm_sci_type ==
> +              XEN_DOMCTL_CONFIG_ARM_SCI_SCMI_SMC_MA &&
> +              config->arch.arm_sci_agent_id == 0 )
> +    {
> +        dprintk(XENLOG_INFO,
> +                "scmi: A zero ARM SCMI agent_id is not supported\n");
> +        return -EINVAL;
> +    }
> +
> +    return 0;
> +}
> +
> +static int scmi_relinquish_resources(struct domain *d)
> +{
> +    int ret;
> +    struct scmi_channel *channel, *agent_channel;
> +    scmi_msg_header_t hdr;
> +    struct scmi_msg_base_reset_agent_cfg_a2p tx;
> +
> +    if ( !d->arch.sci_data )
> +        return 0;
> +
> +    agent_channel = d->arch.sci_data;
> +
> +    spin_lock(&agent_channel->lock);
> +    tx.agent_id = agent_channel->agent_id;
> +    spin_unlock(&agent_channel->lock);
> +
> +    channel = get_channel_by_id(scmi_data.hyp_channel_agent_id);
> +    if ( !channel )
> +    {
> +        printk(XENLOG_ERR
> +               "scmi: Unable to get Hypervisor scmi channel for domain %d\n",
> +               d->domain_id);
> +        return -EINVAL;
> +    }
> +
> +    hdr.id = SCMI_BASE_RESET_AGENT_CONFIGURATION;
> +    hdr.type = 0;
> +    hdr.protocol = SCMI_BASE_PROTOCOL;
> +
> +    tx.flags = 0;
> +
> +    ret = do_smc_xfer(channel, &hdr, &tx, sizeof(tx), NULL, 0);
> +    if ( ret == -EOPNOTSUPP )
> +        return 0;
> +
> +    return ret;
> +}
> +
> +static void scmi_domain_destroy(struct domain *d)
> +{
> +    struct scmi_channel *channel;
> +
> +    if ( !d->arch.sci_data )
> +        return;
> +
> +    channel = d->arch.sci_data;
> +    spin_lock(&channel->lock);
> +
> +    relinquish_scmi_channel(channel);
> +    printk(XENLOG_DEBUG "scmi: Free domain %d\n", d->domain_id);
> +
> +    d->arch.sci_data = NULL;
> +    d->arch.sci_enabled = true;

Should this be false?


> +    spin_unlock(&channel->lock);
> +}
> +
> +static bool scmi_handle_call(struct cpu_user_regs *regs)
> +{
> +    uint32_t fid = (uint32_t)get_user_reg(regs, 0);
> +    struct scmi_channel *agent_channel;
> +    struct domain *d = current->domain;
> +    struct arm_smccc_res resp;
> +    bool res = false;
> +
> +    if ( !sci_domain_is_enabled(d) )
> +        return false;
> +
> +    agent_channel = d->arch.sci_data;
> +    spin_lock(&agent_channel->lock);
> +
> +    if ( agent_channel->func_id != fid )
> +    {
> +        res = false;
> +        goto unlock;
> +    }
> +
> +    arm_smccc_1_1_smc(fid,
> +                      get_user_reg(regs, 1),
> +                      get_user_reg(regs, 2),
> +                      get_user_reg(regs, 3),
> +                      get_user_reg(regs, 4),
> +                      get_user_reg(regs, 5),
> +                      get_user_reg(regs, 6),
> +                      get_user_reg(regs, 7),
> +                      &resp);
> +
> +    set_user_reg(regs, 0, resp.a0);
> +    set_user_reg(regs, 1, resp.a1);
> +    set_user_reg(regs, 2, resp.a2);
> +    set_user_reg(regs, 3, resp.a3);
> +    res = true;
> +unlock:
> +    spin_unlock(&agent_channel->lock);
> +
> +    return res;
> +}
> +
> +static const struct sci_mediator_ops scmi_ops = {
> +    .domain_init = scmi_domain_init,
> +    .domain_destroy = scmi_domain_destroy,
> +    .relinquish_resources = scmi_relinquish_resources,
> +    .handle_call = scmi_handle_call,
> +    .dom0_dt_handle_node = scmi_dt_handle_node,
> +    .domain_sanitise_config = scmi_domain_sanitise_config,
> +    .assign_dt_device = scmi_dt_assign_device,
> +};
> +
> +static int __init scmi_check_smccc_ver(void)
> +{
> +    if ( smccc_ver < ARM_SMCCC_VERSION_1_1 )
> +    {
> +        printk(XENLOG_WARNING
> +               "scmi: No SMCCC 1.1 support, SCMI calls forwarding disabled\n");
> +        return -ENOSYS;
> +    }
> +
> +    return 0;
> +}
> +
> +static int scmi_dt_hyp_channel_read(struct dt_device_node *scmi_node, struct scmi_data *scmi_data,
> +                                    u64 *addr)
> +{
> +    int ret;
> +    u64 size;
> +
> +    if ( !dt_property_read_u32(scmi_node, "arm,smc-id", &scmi_data->func_id) )
> +    {
> +        printk(XENLOG_ERR "scmi: unable to read smc-id from DT\n");
> +        return -ENOENT;
> +    }
> +
> +    ret = scmi_dt_read_hyp_channel_addr(scmi_node, addr, &size);
> +    if ( IS_ERR_VALUE(ret) )
> +        return -ENOENT;
> +
> +    if ( !IS_ALIGNED(size, SCMI_SHMEM_MAPPED_SIZE) )
> +    {
> +        printk(XENLOG_ERR "scmi: shmem memory is not aligned\n");
> +        return -EINVAL;
> +    }
> +
> +    return 0;
> +}
> +
> +static __init int scmi_probe(struct dt_device_node *scmi_node, const void *data)
> +{
> +    u64 addr;
> +    int ret;
> +    struct scmi_channel *channel;
> +    int n_agents;
> +    scmi_msg_header_t hdr;
> +    struct scmi_msg_base_attributes_p2a rx;
> +
> +    ASSERT(scmi_node != NULL);
> +
> +    INIT_LIST_HEAD(&scmi_data.channel_list);
> +    spin_lock_init(&scmi_data.channel_list_lock);
> +
> +    if ( !acpi_disabled )
> +    {
> +        printk(XENLOG_WARNING "scmi: is not supported when using ACPI\n");
> +        return -EINVAL;
> +    }
> +
> +    ret = scmi_check_smccc_ver();
> +    if ( ret )
> +        return ret;
> +
> +    ret = scmi_dt_hyp_channel_read(scmi_node, &scmi_data, &addr);
> +    if ( ret )
> +        return ret;
> +
> +    scmi_data.dt_dev = scmi_node;
> +
> +    channel = smc_create_channel(SCMI_BASE_AGENT_ID_OWN, scmi_data.func_id, addr);

Should we call this with channel_list_lock held?


> +    if ( IS_ERR(channel) )
> +        goto out;
> +
> +    /* Request agent id for Xen management channel  */

At this poing channel->domain_id == DOMID_INVALID but collect_agent_id
checks for agent_channel->domain_id != DOMID_XEN

> +    ret = collect_agent_id(channel);
> +    if ( ret )
> +        return ret;
> +
> +    /* Save the agent id for Xen management channel */
> +    scmi_data.hyp_channel_agent_id = channel->agent_id;
> +
> +    ret = map_channel_memory(channel);
> +    if ( ret )
> +        goto out;

collect_agent_id already called map_channel_memory it looks like the
code was supposed to not unmap it the memory if domain_id == DOMID_XEN,
although the check doesn't work as expected.


> +    channel->domain_id = DOMID_XEN;
> +
> +    hdr.id = SCMI_BASE_PROTOCOL_ATTIBUTES;
> +    hdr.type = 0;
> +    hdr.protocol = SCMI_BASE_PROTOCOL;
> +
> +    ret = do_smc_xfer(channel, &hdr, NULL, 0, &rx, sizeof(rx));
> +    if ( ret )
> +        goto error;
> +
> +    n_agents = SCMI_FIELD_GET(SCMI_BASE_ATTR_NUM_AGENT, rx.attributes);
> +    printk(XENLOG_DEBUG "scmi: Got agent count %d\n", n_agents);
> +    ret = collect_agents(scmi_node);
> +    if ( ret )
> +        goto error;
> +
> +    ret = sci_register(&scmi_ops);
> +    if ( ret )
> +    {
> +        printk(XENLOG_ERR "SCMI: mediator already registered (ret = %d)\n",
> +               ret);
> +        return ret;
> +    }
> +
> +    scmi_data.initialized = true;
> +    goto out;
> +
> +error:
> +    unmap_channel_memory(channel);
> +    free_channel_list();
> +out:
> +    return ret;
> +}
> +
> +static const struct dt_device_match scmi_smc_match[] __initconst = {
> +    DT_MATCH_PATH("/chosen/xen,config/scmi"),

We should match by compatible string, not by path

> +    { /* sentinel */ },
> +};
> +
> +DT_DEVICE_START(scmi_smc_ma, "SCMI SMC MEDIATOR", DEVICE_FIRMWARE)
> +        .dt_match = scmi_smc_match,
> +        .init = scmi_probe,
> +DT_DEVICE_END
> +
> +/*
> + * Local variables:
> + * mode: C
> + * c-file-style: "BSD"
> + * c-basic-offset: 4
> + * tab-width: 4
> + * indent-tabs-mode: nil
> + * End:
> + */
> diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
> index 095b1a23e3..30e46de6d7 100644
> --- a/xen/include/public/arch-arm.h
> +++ b/xen/include/public/arch-arm.h
> @@ -329,6 +329,7 @@ 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_SCI_SCMI_SMC_MA  2
>  
>  struct xen_arch_domainconfig {
>      /* IN/OUT */
> @@ -355,6 +356,8 @@ struct xen_arch_domainconfig {
>      uint32_t clock_frequency;
>      /* IN */
>      uint8_t arm_sci_type;
> +    /* IN */
> +    uint8_t arm_sci_agent_id;
>  };
>  #endif /* __XEN__ || __XEN_TOOLS__ */
>  
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 00:44:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 00:44:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093748.1449149 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqhnL-0007LS-VX; Tue, 26 Aug 2025 00:44:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093748.1449149; Tue, 26 Aug 2025 00: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 1uqhnL-0007LL-Sc; Tue, 26 Aug 2025 00:44:15 +0000
Received: by outflank-mailman (input) for mailman id 1093748;
 Tue, 26 Aug 2025 00:44:14 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fAYs=3G=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1uqhnK-0007LF-E4
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 00:44:14 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c8684b24-8215-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 02:44:12 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 1CCCB44166;
 Tue, 26 Aug 2025 00:44:11 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 031DEC4CEED;
 Tue, 26 Aug 2025 00:44:03 +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>
X-Inumbo-ID: c8684b24-8215-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1756169045;
	bh=9u8l0+nqxjaCdoVZJZIdl54MZ6+L3WTi+EWaI5SJwSM=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=eKAagl2RnHsrWDYpYiizc9GRiJSfRrvywHAzpX5XaIA1Yz1mziUmd+NXXYb9frj++
	 7edCSW38trvATxn7IfUjSMpl7mbx7bbqkL/AHC9NWT6pngbBipTsl3nlqaT/DeIXK1
	 qbkRJvh3nV6JTE3LXhT8yoE587n5wI439n7MDXUzECS5ejOunhzMoTRuT1x0h8lA+V
	 VJCKZ8Gujb+/WLMsDtE3kuCnB2nWd2vncFk5CUs9tdX9NTH7eyJzYhovPHOlKvaXYk
	 5Hg9Rx5rJrZfiWcC0AHPyUJZGM620tF1SQ7MXNczILge62ejw0gXt3GdvRHeQwWN22
	 FmsIo/FP4ezkw==
Date: Mon, 25 Aug 2025 17:44:02 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Jan Beulich <jbeulich@suse.com>, Juergen Gross <jgross@suse.com>, 
    Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Grygorii Strashko <grygorii_strashko@epam.com>
Subject: Re: [RFC PATCH v5 10/10] docs: arm: add SCI SCMI SMC multi-agent
 driver docs
In-Reply-To: <79e357dbe97fbb8c8148e75fa65182e611665695.1753184487.git.oleksii_moisieiev@epam.com>
Message-ID: <alpine.DEB.2.22.394.2508251740500.3391208@ubuntu-linux-20-04-desktop>
References: <cover.1753184487.git.oleksii_moisieiev@epam.com> <79e357dbe97fbb8c8148e75fa65182e611665695.1753184487.git.oleksii_moisieiev@epam.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 22 Jul 2025, Oleksii Moisieiev wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> Add SCI SCMI SMC multi-agent driver documentation.
> It includes a detailed description of the SCMI multi-agent driver.
> This document explains the driver's functionality, configuration,
> and the compilation process. The Xen SCMI multi-agent driver is
> designed to provide SCMI access to system resources from different
> domains.
> 
> Signed-off-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com>

missing Grygorii's signed-off-by


> ---
> 
> Changes in v5:
> - rework multi-agent driver to leave Host Device-tree unmodified
> 
>  .../arm/firmware/arm-scmi.rst                 | 341 +++++++++++++++++-
>  1 file changed, 340 insertions(+), 1 deletion(-)
> 
> diff --git a/docs/hypervisor-guide/arm/firmware/arm-scmi.rst b/docs/hypervisor-guide/arm/firmware/arm-scmi.rst
> index a084c0caa3..2ab56af879 100644
> --- a/docs/hypervisor-guide/arm/firmware/arm-scmi.rst
> +++ b/docs/hypervisor-guide/arm/firmware/arm-scmi.rst
> @@ -31,7 +31,10 @@ domain serving as Driver domain).
>  
>  The below sections describe SCMI support options available for Xen.
>  
> -[1] `Arm SCMI <https://developer.arm.com/documentation/den0056/latest/>`_
> +| [1] `Arm SCMI <https://developer.arm.com/documentation/den0056/latest/>`_
> +| [2] `System Control and Management Interface (SCMI) bindings <https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/firmware/arm,scmi.yaml>`_
> +| [3] `Generic Domain Access Controllers bindings <https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/access-controllers/access-controllers.yaml>`_
> +
>  
>  Simple SCMI over SMC/HVC calls forwarding driver (EL3)
>  ------------------------------------------------------
> @@ -175,3 +178,339 @@ enabling SCMI with "arm_sci" xl.cfg option.
>      ->        xen,reg = <0x0 0x47ff0000 0x0 0x1000 0x0 0x22001000>;
>      ->        xen,force-assign-without-iommu;
>        };
> +
> +SCMI SMC/HVC multi-agent driver (EL3)
> +-------------------------------------
> +
> +The SCMI SMC/HVC multi-agent driver enables support for ARM EL3 Trusted Firmware-A (TF-A) which
> +provides SCMI interface with multi-agnet support, as shown below.

multi-agent

> +
> +::
> +
> +      +-----------------------------------------+
> +      |                                         |
> +      | EL3 TF-A SCMI                           |
> +      +-------+--+-------+--+-------+--+-------++
> +      |shmem1 |  |shmem0 |  |shmem2 |  |shmemX |
> +      +-----+-+  +---+---+  +--+----+  +---+---+
> +    smc-id1 |        |         |           |
> +    agent1  |        |         |           |
> +      +-----v--------+---------+-----------+----+
> +      |              |         |           |    |
> +      |              |         |           |    |
> +      +--------------+---------+-----------+----+
> +             smc-id0 |  smc-id2|    smc-idX|
> +             agent0  |  agent2 |    agentX |
> +                     |         |           |
> +                +----v---+  +--v-----+  +--v-----+
> +                |        |  |        |  |        |
> +                | Dom0   |  | Dom1   |  | DomX   |
> +                |        |  |        |  |        |
> +                |        |  |        |  |        |
> +                +--------+  +--------+  +--------+
> +
> +The EL3 SCMI multi-agent firmware expected to provide SCMI SMC/HVC shared-memory transport

is expected to provide


> +for every Agent in the system. The SCMI Agent transport channel defined by pair:
> +
> +- smc-id: SMC/HVC function id used for Doorbell
> +- shmem: shared memory for messages transfer, **Xen page aligned**.
> +  Shared memory is mapped with the following flags: MT_DEVICE_nGnRE and _PAGE_DEVICE, indicating that this
> +  memory is mapped as device memory.
> +
> +The following SCMI Agents expected to be defined by SCMI FW to enable SCMI multi-agent functionality

is expected to

> +under Xen:
> +
> +- Xen management agent: trusted agents that accesses to the Base Protocol commands to configure
> +  agent specific permissions
> +- OSPM VM agents: non-trusted agent, one for each Guest domain which is  allowed direct HW access.
> +  At least one OSPM VM agent has to be provided by FW if HW is handled only by Dom0 or Driver Domain.
> +
> +The EL3 SCMI FW expected to implement following Base protocol messages:

is expected to

> +
> +- BASE_DISCOVER_AGENT (optional if agent_id was provided)
> +- BASE_RESET_AGENT_CONFIGURATION (optional)
> +- BASE_SET_DEVICE_PERMISSIONS (optional)
> +
> +The number of supported SCMI agents and their transport specifications are SCMI FW implementation
> +specific.
> +
> +Compiling with multi-agent support
> +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> +
> +To build with the SCMI SMC/HVC multi-agent driver support, enable Kconfig option:
> +
> +::
> +
> +    CONFIG_SCMI_SMC_MA
> +
> +
> +Driver functionality
> +^^^^^^^^^^^^^^^^^^^^
> +
> +The SCI SCMI SMC multi-agent driver implements following functionality:
> +
> +- The driver is initialized based on the ``xen,config`` node under ``chosen``
> +  (only one SCMI interface is supported), which describes the Xen management
> +  agent SCMI interface.
> +
> +.. code::
> +
> +    scmi_shm_1: sram@47ff1000 {
> +              compatible = "arm,scmi-shmem";
> +              reg = <0x0 0x47ff1000 0x0 0x1000>;
> +    };
> +    scmi_xen: scmi {
> +            compatible = "arm,scmi-smc";
> +            arm,smc-id = <0x82000002>; <--- Xen manegement agent smc-id
> +            #address-cells = < 1>;
> +            #size-cells = < 0>;
> +            #access-controller-cells = < 1>;
> +            shmem = <&scmi_shm_1>; <--- Xen manegement agent shmem
> +    };
> +
> +- The driver obtains Xen specific SCMI Agent's configuration from the Host DT, probes Agents and
> +  builds SCMI Agents list. The Agents configuration is taken from "scmi-secondary-agents"
> +  property where first item is "arm,smc-id", second - "arm,scmi-shmem" phandle and third is
> +  optional "agent_id":
> +
> +.. code::

.. code-block:: dts


> +    chosen {
> +      ranges; <--- set default ranges so address can be translated when parsing scmi_shm node
> +      xen,config {
> +        ranges; <--- set default ranges so address can be translated when parsing scmi_shm node
> +        scmi-secondary-agents = <
> +                      0x82000003 &scmi_shm_0 0
> +                      0x82000004 &scmi_shm_2 2
> +                      0x82000005 &scmi_shm_3 3
> +                      0x82000006 &scmi_shm_4 4>;
> +        #scmi-secondary-agents-cells = <3>; <--- optional, default 3
> +
> +        scmi_shm_0 : sram@47ff0000 {
> +            compatible = "arm,scmi-shmem";
> +            reg = <0x0 0x47ff0000 0x0 0x1000>;
> +        };
> +
> +        scmi_shm_2: sram@47ff2000 {
> +                compatible = "arm,scmi-shmem";
> +                reg = <0x0 0x47ff2000 0x0 0x1000>;
> +        };
> +        scmi_shm_3: sram@47ff3000 {
> +                compatible = "arm,scmi-shmem";
> +                reg = <0x0 0x47ff3000 0x0 0x1000>;
> +        };
> +        scmi_shm_4: sram@47ff4000 {
> +                compatible = "arm,scmi-shmem";
> +                reg = <0x0 0x47ff4000 0x0 0x1000>;
> +        };
> +
> +        // Xen SCMI management channel
> +        scmi_shm_1: sram@47ff1000 {
> +                compatible = "arm,scmi-shmem";
> +                reg = <0x0 0x47ff1000 0x0 0x1000>;
> +        };
> +
> +        scmi_xen: scmi {
> +            compatible = "arm,scmi-smc";
> +            arm,smc-id = <0x82000002>; <--- Xen manegement agent smc-id
> +            #address-cells = < 1>;
> +            #size-cells = < 0>;
> +            #access-controller-cells = < 1>;
> +            shmem = <&scmi_shm_1>; <--- Xen manegement agent shmem
> +        };
> +      };
> +    };
> +
> +    /{
> +        // Host SCMI OSPM channel - provided to the Dom0 as is if SCMI enabled for it
> +        scmi_shm: sram@47ff1000 {
> +                compatible = "arm,scmi-shmem";
> +                reg = <0x0 0x47ff1000 0x0 0x1000>;
> +        };
> +
> +        firmware {
> +            scmi: scmi {
> +                compatible = "arm,scmi-smc";
> +                arm,smc-id = <0x82000003>; <--- Host OSPM agent smc-id
> +                #address-cells = < 1>;
> +                #size-cells = < 0>;
> +                shmem = <&scmi_shm>; <--- Host OSPM agent shmem
> +
> +                protocol@X{
> +                };
> +            };
> +        };
> +    };
> +
> +  This approach allows defining multiple SCMI Agents by adding Xen-specific properties under
> +  the ``/chosen`` node to the Host Device Tree, leaving the main part unchanged. The Host DT
> +  SCMI channel will be passed to Dom0.
> +
> +  The Xen management agent is described as a ``scmi_xen`` node under the ``/chosen`` node, which
> +  is used by Xen to control other SCMI Agents in the system.
> +
> +  All secondary agents' configurations are provided in the ``scmi-secondary-agents`` property with
> +  an optional ``agent_id`` field.
> +
> +  The ``agent_id`` from the ``scmi-secondary-agents`` property is used to identify the agent in the
> +  system and can be omitted by setting ``#scmi-secondary-agents-cells = <2>``, so the Secondary
> +  Agents configuration will look like this:
> +
> +.. code::

.. code-block:: dts


> +    chosen {
> +      xen,config {
> +        scmi-secondary-agents = <
> +                      0x82000003 &scmi_shm_0
> +                      0x82000004 &scmi_shm_2
> +                      0x82000005 &scmi_shm_3
> +                      0x82000006 &scmi_shm_4>;
> +        #scmi-secondary-agents-cells = <2>;
> +      };
> +    }
> +
> +  In this case, Xen will use the ``SCMI_BASE_DISCOVER_AGENT`` call to discover the ``agent_id``
> +  for each secondary agent. Providing the ``agent_id`` in the ``scmi-secondary-agents`` property
> +  allows skipping the discovery call, which is useful when the secondary agent's shared memory is
> +  not accessible by Xen or when boot time is important because it allows skipping the agent
> +  discovery procedure.
> +
> +.. note::
> +
> +    Note that Xen is the only one entry in the system which need to know about SCMI multi-agent support.
> +
> +- The driver implements the SCI subsystem interface required for configuring and enabling SCMI
> +  functionality for Dom0/hwdom and Guest domains. To enable SCMI functionality for guest domain
> +  it has to be configured with unique supported SCMI Agent_id and use corresponding SCMI SMC/HVC
> +  shared-memory transport ``[smc-id, shmem]`` defined for this SCMI Agent_id.
> +
> +- Once Xen domain is configured it can communicate with EL3 SCMI FW:
> +
> +  - zero-copy, the guest domain puts/gets SCMI message in/from shmem;
> +  - the guest triggers SMC/HVC exception with agent "smc-id" (doorbell);
> +  - the Xen driver catches exception, do checks and synchronously forwards it to EL3 FW.
> +
> +- the Xen driver sends BASE_RESET_AGENT_CONFIGURATION message to Xen management agent channel on
> +  domain destroy event. This allows to reset resources used by domain and so implement use-case
> +  like domain reboot.
> +
> +
> +Configure SCMI for Dom0
> +^^^^^^^^^^^^^^^^^^^^^^^
> +The **"dom0_scmi_agent_id=<dom0_agent_id>"** Xen command line is used to enable SCMI functionality for
> +Dom0. if not provided SCMI will be disabled for Dom0 and all SCMI nodes removed from Dom0 DT.
> +
> +Xen utilizes Host DT SCMI node to configure Dom0 SCMI Agent so the device-tree remains unchanged
> +except for the Xen specific properties under ``/chosen`` node. If Xen device-tree doesn't include
> +``/firmware/scmi`` node or it's disabled, the Dom0 SCMI Agent will not be configured.
> +
> +.. note::
> +
> +    The **dom0_scmi_agent_id** value should match the ``func_id`` and ``shmem`` in the ``/firmware/scmi`` node
> +    to set the correct Dom0 SCMI Agent.
> +
> +Configure SCMI for for guest domain with toolstack
> +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> +
> +* In domain's xl.cfg file add **"arm_sci"** option as below
> +
> +::
> +
> +    arm_sci = "type=scmi_smc_multiagent,agent_id=2"
> +
> +* In domain's xl.cfg file enable access to the "arm,scmi-shmem" which should correspond
> +  assigned "agent_id" for the domain, for example:
> +
> +::
> +
> +    iomem = [
> +        "47ff2,1@22001",
> +    ]
> +
> +.. note:: It's up to the user to select guest IPA for mapping SCMI shared-memory.
> +
> +* Add SCMI nodes to the Driver domain partial device tree as in the below example.
> +  The "arm,smc-id" should correspond assigned agent_id for the domain:
> +
> +.. code::
> +
> +    passthrough {
> +       scmi_shm_0: sram@22001000 {
> +           compatible = "arm,scmi-shmem";
> +           reg = <0x0 0x22001000 0x0 0x1000>;
> +       };
> +
> +       firmware {
> +            compatible = "simple-bus";
> +                scmi: scmi {
> +                    compatible = "arm,scmi-smc";
> +                    arm,smc-id = <0x82000004>;
> +                    shmem = <&scmi_shm_0>;
> +                    ...
> +                }
> +        }
> +    }
> +
> +**Device specific access control**
> +
> +The XEN SCMI SMC/HVC multi-agent driver performs "access-controller" provider function in case
> +EL3 SCMI FW implements SCMI "4.2.1.1 Device specific access control" and provides the
> +BASE_SET_DEVICE_PERMISSIONS command to configure the devices that an agents have access to.
> +The Host DT SCMI node should have "#access-controller-cells=<1>" property and DT devices should
> +be bound to the SCMI node using Access Controllers bindings [3].
> +
> +For example:
> +
> +.. code::
> +
> +    &i2c1 {
> +            access-controllers = <&scmi 0>;
> +    };
> +
> +Use domain's xl.cfg file **"dtdev"** property to assign SCMI devices from toolstack to the guest:
> +
> +::
> +
> +    dtdev = [
> +        "/soc/i2c@e6508000",
> +    ]
> +
> +.. note::
> +
> +    xl.cfg:"dtdev" need contain all nodes which are under SCMI management (not only those which are
> +    behind IOMMU) and passed-through to the guest domain.
> +
> +Configure SCMI for predefined domains (dom0less)
> +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> +
> +* add "xen,sci_type" and "xen,sci_agent_id" properties for required DomU ("xen,domain") node
> +
> +::
> +
> +    xen,sci_type="scmi_smc_multiagent"
> +    xen,sci_agent_id=2
> +
> +* add scmi nodes to the Driver domain partial device tree the same way as above (toolstack case) and
> +  enable access to the "arm,scmi-shmem" according to the dom0less documentation. For example:
> +
> +.. code::
> +
> +      scmi_shm_0: sram@22001000 {
> +            compatible = "arm,scmi-shmem";
> +            reg = <0x00 0x22001000 0x00 0x1000>;
> +    ->        xen,reg = <0x0 0x47ff0000 0x0 0x1000 0x0 0x22001000>;
> +    ->        xen,force-assign-without-iommu;
> +      };
> +
> +* For SCMI device access control configure pass-through devices in the guest partial DT according to
> +  the dom0less documentation and ensure that devices SCMI management has "xen,path" property set:
> +
> +.. code::
> +
> +		i2c@e6508000 {
> +            ...
> +			reg = <0x00 0xe6508000 0x00 0x1000>;
> +    ->        xen,path = "/soc/i2c@e6508000"
> +    ->        xen,reg = <0x0 0xe6508000 0x0 0x1000 0x0 0xe6508000>;
> +    ->        xen,force-assign-without-iommu;
> +        };
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 00:55:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 00:55:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093760.1449179 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqhyI-00018n-I7; Tue, 26 Aug 2025 00:55:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093760.1449179; Tue, 26 Aug 2025 00: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 1uqhyI-00018g-EO; Tue, 26 Aug 2025 00:55:34 +0000
Received: by outflank-mailman (input) for mailman id 1093760;
 Tue, 26 Aug 2025 00:55:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=etY1=3G=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1uqhyG-0000hD-Ot
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 00:55:32 +0000
Received: from NAM04-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam04on20630.outbound.protection.outlook.com
 [2a01:111:f403:240a::630])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5c29db93-8217-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 02:55:30 +0200 (CEST)
Received: from SJ0PR03CA0215.namprd03.prod.outlook.com (2603:10b6:a03:39f::10)
 by IA4PR12MB9833.namprd12.prod.outlook.com (2603:10b6:208:55b::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Tue, 26 Aug
 2025 00:55:26 +0000
Received: from CY4PEPF0000EDD3.namprd03.prod.outlook.com
 (2603:10b6:a03:39f:cafe::3) by SJ0PR03CA0215.outlook.office365.com
 (2603:10b6:a03:39f::10) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.22 via Frontend Transport; Tue,
 26 Aug 2025 00:55:25 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CY4PEPF0000EDD3.mail.protection.outlook.com (10.167.241.199) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Tue, 26 Aug 2025 00:55:25 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 25 Aug
 2025 19:55:25 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 25 Aug
 2025 19:55:24 -0500
Received: from fedora.mshome.net (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Mon, 25 Aug 2025 19:55: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>
X-Inumbo-ID: 5c29db93-8217-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZodWxUddWnEIx7z0b2zX7txpHzAoO3EqhGsUZxTcI4Ago8/T0fGkPFSWbvQ/daYjT6vNi0t9h+ktuWo3r+0okaan42V2JV7ku8i/RZpCUnkphTR/hWGxJUzYJSmAM4sShXkwBcLIKW9UvbvsygoViF/IK1GeuZoP5K7IYMKg0HoIPWuJPGqwIV22In7slGSKum6Uq+LBI9rNSx7xcGjikIjoabZoaVOmfpnFe3QVkG6dzBcyCpZgXuIul7WxkJhVE3hs4ZRqDP8eBMByI4O97OMylqVeH7uUb3WcC8wu4/6m0L1xfoXV8F5a/r0ekZZTaUolo41EsYGVnj4PlEm3qw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/m+tvcvgsOF/8B6DaahRF/VzF29+Oz9jjZk9+yNmhNg=;
 b=KpL5/56cglfcEMtkYk1tDkbc5fx+xj5j7qOokdW+ISey/i2z6iNjYGXekq5z8XklkuK1pZrV62sKohX4t2Ec+V1Ed6TP0eJyzddYrMpLq6IcBNVardGIB5Fd5C9tCwCukYSx1XB8e6skjlSuewKKnpfKBJq9ldX7AhuZ08KlgjPW0DbDzusNCuhhX87Wnv1Zk+JBAIRtTmcDrqrFAD58TFizPiFzT4EaV6DB/N2vGr7qieakFuxzNZsVhBPGwQ6vD9MUGHBS/zyk3AE0JGBOtrRMoZxx0s30CgMAic2kkMaEkRF4YtziJoFLnfFjEeUcQpg9JRZcHQxlMheARpp1rw==
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=/m+tvcvgsOF/8B6DaahRF/VzF29+Oz9jjZk9+yNmhNg=;
 b=cWnVB2CJbAxzZ8nZrBZ5l8xLsXoWHAz2rfJa1RRNDtxAbpQy5D5abNbxjI9pODFHAyOAIwt9zPTawaxfqKddjSyUZ5YxC2VZqTneVJAm5HiB5W+re1L5JWj1vPv+7879/qMfK2lxOnWDFqV88wwWnH8moNBC/FuollcHg+c6R1k=
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=SATLEXMB03.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: Juergen Gross <jgross@suse.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Oleksandr Tyshchenko
	<oleksandr_tyshchenko@epam.com>
CC: Jason Andryuk <jason.andryuk@amd.com>, <xen-devel@lists.xenproject.org>,
	<linux-kernel@vger.kernel.org>
Subject: [PATCH v2 2/3] xen/events: Return -EEXIST for bound VIRQs
Date: Mon, 25 Aug 2025 20:55:14 -0400
Message-ID: <20250826005517.41547-3-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250826005517.41547-1-jason.andryuk@amd.com>
References: <20250826005517.41547-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000EDD3:EE_|IA4PR12MB9833:EE_
X-MS-Office365-Filtering-Correlation-Id: aaa155ba-1ebd-4105-3e60-08dde43b3e57
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|82310400026|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?38iIKXpC09JDHX0ZCkjhkR5vmjROByzF0lghqWR76d1yl06m3Q9OvfdoAHlY?=
 =?us-ascii?Q?g6cWPPb0Z53AsLFQL2XtRM0Bk8znD121cSil6utMwfaoMiLOksLd21UG+tTn?=
 =?us-ascii?Q?OFBRVT/8gEUDjuO6LZbATX76FKPGHpazWzqaY4jgQv4kcwHaMbJGSbRAA/nx?=
 =?us-ascii?Q?qd/YndzXKVQdq4hRiQIgJUNVN21ITftwq0+qHel8qklJ/PwNivwYJ0mwuHKm?=
 =?us-ascii?Q?iaznGYj86E817Fu7NPMMiO0Y0aVj/+HV1QHf8fuTX0ySAKxD8dGUWsjY1555?=
 =?us-ascii?Q?bs+88DCcAuhhxKLiu7D9ifVfDMdc2YXm4r0h8e6bspy4bJHyYJEJ2RttX0WR?=
 =?us-ascii?Q?uu0YLvwZKG1ZA9qmmtIez/ZBzMNOOtRpze4i98pyDaZ5ADZwYpVpVN6pd8aj?=
 =?us-ascii?Q?hPzFjh0ZGmGCTVtypxQkUnlqM1B/fJjaj6LlK580zlsfuRWDhNfmTiuCLD7D?=
 =?us-ascii?Q?TcVDb7LMrCg+L2AbaE9dUFaJmy/nmamrBKLTux+tv7kr2I48v9NQZt3Tp7PE?=
 =?us-ascii?Q?Pqy6hvADm7dqAx7Li9B9GmFCKMKlE631PqbIfUzISOYicMg/Mum5+2m56nR7?=
 =?us-ascii?Q?mlQr7TaxglPOos70MgleUOQGNRSHxuEM+Ow2S6mOAYOuX4uAOo0WTrKUUIYr?=
 =?us-ascii?Q?5kggSyzz8aMrdCp4MuZLYfTPV6wbCt7/2o7Ua0vT8vQyNboV1Up9ax738heU?=
 =?us-ascii?Q?EFnSTm5/xNWlXQZPnuZHEk4pbTcXEYULtIYkZKvi9Pm6AU2HBLa6GAHdTq+a?=
 =?us-ascii?Q?3Kq/Bo8MliqmTbVK9ZUsUiRoYj/Q3Gv8FyQ0g0NNRExBE3HAKeLOP5Aif6uS?=
 =?us-ascii?Q?XV6lngP68qRtXZyP0qwTdX4eW8haV474lRqfziQO4w79VT0dc38KbmHhDu5X?=
 =?us-ascii?Q?ZuejFaDjJ+bshgpENSzKPdLmdfeNF+VNDUhFsy0hZRT6e6cPnpBSr34pipyD?=
 =?us-ascii?Q?Y9YrQfrFiW4r7EHRgWcTWtMJSS0nIEPa6nsWx+wvaVkNZxc9okBjCeD+DMYt?=
 =?us-ascii?Q?o0b0ZOiDl/k0JEGSqnn2XaBc728eHOeJpxph+EBVn3cdpWd9Zu6eTu3rwgmF?=
 =?us-ascii?Q?84cwtmv/WzPlMskIriDJ9DmDW2V4uPhjVotM7ecde80AYBsj8XnkjODqGcDb?=
 =?us-ascii?Q?HcVoq1D5nqdW4U/pnC0HBMFeUSKcLwyduZfHGiLmdi+ZQn3CcyYdLwYytxTf?=
 =?us-ascii?Q?1CKTNnjMikLO/PcaOEHXtPVcR3P0ldQysvfcJ0b54ad9m8LgtUB/oGzqGjBP?=
 =?us-ascii?Q?KTANBOZmCKtXDQYIKOmCOt13BbTIEDAu3Ta9r9iaL6a6RkZicgQbtr/acdD3?=
 =?us-ascii?Q?lw1RFiZK16Sj0EJAjcg37060u/pNtA5o6KELAGwI2RKjk3v9l9wqggdXUm2z?=
 =?us-ascii?Q?Dz6eQHXZjJcVjlKBEYkYSy+8fmyFvsxumXRF8YUUywIt8Wwf6OWhh0wov2uZ?=
 =?us-ascii?Q?Zm/i/lEmTSfhrUOa0PA2Nv6LgW5YOIOfvE+v05gOPpsJCaxL96q3uy38zRKI?=
 =?us-ascii?Q?iotoGf/ok8Pls7TfuVw5EGUB2kn2xLpNkfAW?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(82310400026)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Aug 2025 00:55:25.5614
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: aaa155ba-1ebd-4105-3e60-08dde43b3e57
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000EDD3.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA4PR12MB9833

Change find_virq() to return -EEXIST when a VIRQ is bound to a
different CPU than the one passed in.  With that, remove the BUG_ON()
from bind_virq_to_irq() to propogate the error upwards.

Some VIRQs are per-cpu, but others are per-domain or global.  Those must
be bound to CPU0 and can then migrate elsewhere.  The lookup for
per-domain and global will probably fail when migrated off CPU 0,
especially when the current CPU is tracked.  This now returns -EEXIST
instead of BUG_ON().

A second call to bind a per-domain or global VIRQ is not expected, but
make it non-fatal to avoid trying to look up the irq, since we don't
know which per_cpu(virq_to_irq) it will be in.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
V2:
New
---
 drivers/xen/events/events_base.c | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/drivers/xen/events/events_base.c b/drivers/xen/events/events_base.c
index 199afe59f357..a85bc43f4344 100644
--- a/drivers/xen/events/events_base.c
+++ b/drivers/xen/events/events_base.c
@@ -1314,10 +1314,12 @@ int bind_interdomain_evtchn_to_irq_lateeoi(struct xenbus_device *dev,
 }
 EXPORT_SYMBOL_GPL(bind_interdomain_evtchn_to_irq_lateeoi);
 
-static int find_virq(unsigned int virq, unsigned int cpu, evtchn_port_t *evtchn)
+static int find_virq(unsigned int virq, unsigned int cpu, evtchn_port_t *evtchn,
+		     bool percpu)
 {
 	struct evtchn_status status;
 	evtchn_port_t port;
+	bool exists = false;
 	int rc;
 
 	memset(&status, 0, sizeof(status));
@@ -1329,12 +1331,16 @@ static int find_virq(unsigned int virq, unsigned int cpu, evtchn_port_t *evtchn)
 			continue;
 		if (status.status != EVTCHNSTAT_virq)
 			continue;
-		if (status.u.virq == virq && status.vcpu == xen_vcpu_nr(cpu)) {
+		if (status.u.virq != virq)
+			continue;
+		if (status.vcpu == xen_vcpu_nr(cpu)) {
 			*evtchn = port;
 			return 0;
+		} else if (!percpu) {
+			exists = true;
 		}
 	}
-	return -ENOENT;
+	return exists ? -EEXIST : -ENOENT;
 }
 
 /**
@@ -1381,8 +1387,9 @@ int bind_virq_to_irq(unsigned int virq, unsigned int cpu, bool percpu)
 			evtchn = bind_virq.port;
 		else {
 			if (ret == -EEXIST)
-				ret = find_virq(virq, cpu, &evtchn);
-			BUG_ON(ret < 0);
+				ret = find_virq(virq, cpu, &evtchn, percpu);
+			if (ret)
+				goto out;
 		}
 
 		ret = xen_irq_info_virq_setup(info, cpu, evtchn, virq);
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 26 00:55:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 00:55:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093759.1449166 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqhyH-0000kd-8L; Tue, 26 Aug 2025 00:55:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093759.1449166; Tue, 26 Aug 2025 00: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 1uqhyH-0000jY-2T; Tue, 26 Aug 2025 00:55:33 +0000
Received: by outflank-mailman (input) for mailman id 1093759;
 Tue, 26 Aug 2025 00:55:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=etY1=3G=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1uqhyF-0000gy-Ll
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 00:55:31 +0000
Received: from NAM04-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam04on20615.outbound.protection.outlook.com
 [2a01:111:f403:2409::615])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5bacf020-8217-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 02:55:28 +0200 (CEST)
Received: from BYAPR08CA0032.namprd08.prod.outlook.com (2603:10b6:a03:100::45)
 by SJ2PR12MB8941.namprd12.prod.outlook.com (2603:10b6:a03:542::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Tue, 26 Aug
 2025 00:55:24 +0000
Received: from CY4PEPF0000EDD4.namprd03.prod.outlook.com
 (2603:10b6:a03:100:cafe::3d) by BYAPR08CA0032.outlook.office365.com
 (2603:10b6:a03:100::45) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.22 via Frontend Transport; Tue,
 26 Aug 2025 00:55:24 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CY4PEPF0000EDD4.mail.protection.outlook.com (10.167.241.200) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Tue, 26 Aug 2025 00:55:23 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 25 Aug
 2025 19:55:22 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.10; Mon, 25 Aug
 2025 17:55:22 -0700
Received: from fedora.mshome.net (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Mon, 25 Aug 2025 19:55: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>
X-Inumbo-ID: 5bacf020-8217-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=owDcEnN3x8CwUUn6PVf0fbJ+wlYEzjL1MzzVzSjclR1FmJ4Dch4QOoarUhPou4OeuNgo2snh6YFBylILJ0fS/oen7d4vtVSaRUn8dTQ4RyDSKDgiZV9Iw8U7RCMUzv70wEkHX+BX/g0bGuOk8994/dJsxJ2/EYKbx+LXaskNg6FnCJBvkreoo0X1+DTKRmJqzXMShyw+DVjjxps6RHQVcePH6QHXYafj2XkCXvZ45Zb87S+bESr5ynttEjckVmbSCHrTJaLQknVJDfmbZt3DtO9lTSyFNv1i0zfJRwV/XlgsAKuiIrGx88uIBm5it/Pg9KfA3rhmYFJZqpDtDIClKg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=g1q3KmF7GFISQT8S9tLsbJH+OYzpCjoxR+k6hCrAMQQ=;
 b=w5ukV1SVmN5D5eB8vBMTUV1TZOHJ6c14LvvaL9x2tWc+nWTS969bLwFzLK+BKgT5VsmvOyL9kFJ+4Q13JggiILmU+mYuXPmQFYjXz9yl441bfpPCQJCAI/FE1UNiuaFfE6mOQFd6T4o9b7ucn9jpPJEpGQvgWk8stpinc9TWltwPg5dZKDYd9KjSVYQq5gP7lNXxVi66VmTxTKNLW2AL0nbz+7JTqX8R9ZYRC/RKygU7TumNPYM2W/Lqk5QGgvsoG/+D4mihf02qbxIde7QArHZcT0JObp7o/fSC4p/vc1sVFMCqINCbh5OsixbC4hiLOPQV3cJOESBE7v/7wCQw8A==
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=g1q3KmF7GFISQT8S9tLsbJH+OYzpCjoxR+k6hCrAMQQ=;
 b=li2CCzhLK4U/tmMfuKhwcPaeDpz/KeZ46gF/+8ZGRjAY/4zLZkugqhFnrUj9Zblg/2VkH9JM4CIYirsZyzMQmwGUKqmrRcvvJYCyvNoJf26KDn0YeeOz1MX4gHiwJu6uT5rQT3sUqEzbQFgBv5Wj3P7Ywrmt6iUZXMOFnky9yvU=
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=SATLEXMB03.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: Juergen Gross <jgross@suse.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Oleksandr Tyshchenko
	<oleksandr_tyshchenko@epam.com>
CC: Jason Andryuk <jason.andryuk@amd.com>, <xen-devel@lists.xenproject.org>,
	<linux-kernel@vger.kernel.org>
Subject: [PATCH v2 1/3] xen/events: Cleanup find_virq() return codes
Date: Mon, 25 Aug 2025 20:55:13 -0400
Message-ID: <20250826005517.41547-2-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250826005517.41547-1-jason.andryuk@amd.com>
References: <20250826005517.41547-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000EDD4:EE_|SJ2PR12MB8941:EE_
X-MS-Office365-Filtering-Correlation-Id: fb3f9c9b-4a37-40d0-30e6-08dde43b3d44
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|36860700013|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?CzLqcgkG2C1T6JYUkk3ak8wE/m8cS/VXFMJke4mmXoNe98VGK/bl4fXIPicd?=
 =?us-ascii?Q?kriCYoHmduWs6j8Gjcg5d2VtZ2N0IcQ3NOqhdwXNFa2YYPNOxC47PTQScD/A?=
 =?us-ascii?Q?etl3ZIh6sN383oUu/wvmH9R5tdPC9Oy6DXOXCiLSvZjGTAlGhNSkotL1ZjGp?=
 =?us-ascii?Q?YTZy6xZSeMUYpK4KwCxlkw01Eo1rJ5qkCkHiyHVh0PtIBtwdBLAuXB92+kdf?=
 =?us-ascii?Q?3QXp0/OGGcESSC0my6Lln3oMsQ/DAN3oNATw7S8bbcZeoPB4ZlZSBavki+4X?=
 =?us-ascii?Q?4Eg8YpbqhLBpq6q33p5eEQ9tFTF9EkFQxK8g7MQhY3g+ixJ+J3lrXuFU37br?=
 =?us-ascii?Q?Yh0A3kC7rqiCiU4Z5i3L6OotH1Y1WOhB9aa2SD6Jwsh4TYDMNu94LPPpWdhr?=
 =?us-ascii?Q?DKGi3vYuOZ5genEmBK4O+/5X99oesdircHZU+/PuQ5wV7A7dyp9LQeT5ggV8?=
 =?us-ascii?Q?urnWLWU6GvXh4lHj2IwY3hBRzQqSyY8wh/3poChhCEzIMeKyPTZBeWyZF5Z5?=
 =?us-ascii?Q?3Jo7dhT0MCo4w7KDs0z3fwTOHs/84S9MbY4tqvsR8ZQDPq5g7hcy+jGUoLFj?=
 =?us-ascii?Q?rCxonjjOt2CdkW3fD54Vmi3zgdt6p8l+fO/veaWBabaadzyDqhxVqeyimTjv?=
 =?us-ascii?Q?/7/5EclWK4kTBXrXaajoFi2M2g7UnshoxXYuNuCO9Tsl5DddETvr/HSbPfX+?=
 =?us-ascii?Q?3ssqfNIXqNYQPrmOHcPqXUt/wGC/B7lqJt6hYN4HPppfubCXQBBlSUUAd82X?=
 =?us-ascii?Q?W9b+VjVsaiM6YHTVSuSQXzg1tHviHwvGCcLZFhBzRk4NSq759grx+JfQYz27?=
 =?us-ascii?Q?+7tbFB0ngYvzIzmBsFHh82n28UEcdYVZUWCFSQROY/tQk5OUdp9VtirwtYgc?=
 =?us-ascii?Q?LHWHaQNl4XlAfuFMoZiSQ7I+4vWvvMbrkjcim4wMktEyBKIT5OP//BVW462B?=
 =?us-ascii?Q?mH6YNUv8VlgN0NdBu6LMngZKnJy4FJt6tFxwgSDsMmMj7ompkPIhgK61OKqo?=
 =?us-ascii?Q?O30aMGveqGMqPerVERJuDKZ+gFfIaZJccw4ATVBa9GSem0zA6vVcbBXZhOXW?=
 =?us-ascii?Q?zyKmN7ltAobUZCR00WOz+GgPllGuUA3vP80tBbJIYTLhcLlsk5vSEuM63nkE?=
 =?us-ascii?Q?EbIS2yMdilkRcttipCKnYjoIqf2M7V26/xaxvreLHI1mR4eqOXwveSN1Ks5o?=
 =?us-ascii?Q?CqRIA7O8OVVJJV+Qrj/PG1Ssx4JWYbvWRG/SyQyWl+TPVWg4SZ8XDStM3lvV?=
 =?us-ascii?Q?9UbIK4oCV6fCV2n11jtiGWw4ZRr4WjThuKolsKqX26nsGSFNVtAC8TNiySXb?=
 =?us-ascii?Q?RLdcj+vjJ9a3+IQWLTxzXr+0rwvQpTUHYcr0EwNfg5RFHGqCxBwFAtoZu/Jv?=
 =?us-ascii?Q?/OyIP6Ql3t2m8iAnTu2gegWoFCQihaQiBG5xIgvLCZEjR2GqCX+L8nZF4XZK?=
 =?us-ascii?Q?LBCAnnc5vISJEu/yBmmEXPdyvU5NrI/7ASCrcJ4cJmBpUbp6NmScC6mqPb4j?=
 =?us-ascii?Q?Y6Ba0NEveE2kUDzyemIdwROvLJ8hnlwbHkvc?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(36860700013)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Aug 2025 00:55:23.7683
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: fb3f9c9b-4a37-40d0-30e6-08dde43b3d44
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000EDD4.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB8941

rc is overwritten by the evtchn_status hypercall in each iteration, so
the return value will be whatever the last iteration is.  Change to an
explicit -ENOENT for an un-found virq and return 0 on a successful
match.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
v2:
New
---
 drivers/xen/events/events_base.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/xen/events/events_base.c b/drivers/xen/events/events_base.c
index 41309d38f78c..199afe59f357 100644
--- a/drivers/xen/events/events_base.c
+++ b/drivers/xen/events/events_base.c
@@ -1318,7 +1318,7 @@ static int find_virq(unsigned int virq, unsigned int cpu, evtchn_port_t *evtchn)
 {
 	struct evtchn_status status;
 	evtchn_port_t port;
-	int rc = -ENOENT;
+	int rc;
 
 	memset(&status, 0, sizeof(status));
 	for (port = 0; port < xen_evtchn_max_channels(); port++) {
@@ -1331,10 +1331,10 @@ static int find_virq(unsigned int virq, unsigned int cpu, evtchn_port_t *evtchn)
 			continue;
 		if (status.u.virq == virq && status.vcpu == xen_vcpu_nr(cpu)) {
 			*evtchn = port;
-			break;
+			return 0;
 		}
 	}
-	return rc;
+	return -ENOENT;
 }
 
 /**
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 26 00:55:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 00:55:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093758.1449160 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqhyH-0000hR-07; Tue, 26 Aug 2025 00:55:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093758.1449160; Tue, 26 Aug 2025 00:55: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 1uqhyG-0000hK-Rf; Tue, 26 Aug 2025 00:55:32 +0000
Received: by outflank-mailman (input) for mailman id 1093758;
 Tue, 26 Aug 2025 00:55:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=etY1=3G=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1uqhyF-0000gy-0I
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 00:55:31 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20613.outbound.protection.outlook.com
 [2a01:111:f403:2412::613])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 58f85198-8217-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 02:55:25 +0200 (CEST)
Received: from CH2PR05CA0043.namprd05.prod.outlook.com (2603:10b6:610:38::20)
 by IA0PR12MB7626.namprd12.prod.outlook.com (2603:10b6:208:438::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Tue, 26 Aug
 2025 00:55:21 +0000
Received: from CH1PEPF0000A34C.namprd04.prod.outlook.com
 (2603:10b6:610:38:cafe::91) by CH2PR05CA0043.outlook.office365.com
 (2603:10b6:610:38::20) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.13 via Frontend Transport; Tue,
 26 Aug 2025 00:55:20 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CH1PEPF0000A34C.mail.protection.outlook.com (10.167.244.6) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Tue, 26 Aug 2025 00:55:20 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 25 Aug
 2025 19:55:19 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 25 Aug
 2025 19:55:19 -0500
Received: from fedora.mshome.net (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Mon, 25 Aug 2025 19:55:19 -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>
X-Inumbo-ID: 58f85198-8217-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=I5Uo5202k/fGARldPK1j/edqp2lO1XQLiJppMfsh0Xx1iXQcD/5AyEhYP917n4xKDRXtgjKRujq5rrTNqV3wsp4f1PlkK3BW10M0mPq5yEwxR3ISwu0U2ZHOid/sbn6lDai0voTYiXQRBhhcuWYi8LD7eMZvSqvPn6EzIcJOKUMXTSpwO0nAs38k9iwQzx84obHtO7SvEPRuTvJRlM4ATFnrxNgL2akKRWOoMejdHWBQrY6xn/l6eKPBd/sNChf+baOal7fSk+3E1XSwzsJWamaHr1qifnYFymCpoGzOBrIjMs5dcyQ8iEbCfJ3LXEKugdMhmEGvU8wzqogWjuoq5Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=NMrZfLwjbfhI3aWmscLOLpXst3rpqtydGi3dGVmj0C0=;
 b=n9y61cLqP6rmvK/FMaq/xphMPkR41H7EQoedS3lVjxZtKr0GBa8/4Ygp6i9Y3ENTvbxIZL8VV0mWVtvhN+gwPuOgj3Ig7VueDktpqk0xzzhhL7QPobraAWTIIMheNqglIEyNCOtieCEF8lGRQJYZTIyLGj+6EYNBdwN7NivqDj6aIyq5ZvALdAwLehskb+FwXlBTrDqBkk7jPKi9v4Dk2VB5blyatrjfF/OItR7p+XKOwzOJP5+p+tp/TMu6wTgnl1TrUZvAxDIf5YJBaddYtBRMu98XvtGQczY9cACeTd/P3bjcsSPj+P/Take+FSvTarO1onK+CNB4HruyK1RG8w==
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=NMrZfLwjbfhI3aWmscLOLpXst3rpqtydGi3dGVmj0C0=;
 b=NCVvLWutsKI97VE5EzTHZPytl6d7I/zieCyi2onT7fduaB0Y3ltau1clV6NmfOb3R8nBum22t50Gh09ZpRCs3PubfrHgZQEnz1GByFak+CdN8V5lSU7w1wBo3iNvDbaunSzDJSDCLTuoZMbUXLjcs1yIy1AT+tLr4PHDqn8aAyk=
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=SATLEXMB03.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: Juergen Gross <jgross@suse.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Oleksandr Tyshchenko
	<oleksandr_tyshchenko@epam.com>
CC: Jason Andryuk <jason.andryuk@amd.com>, <xen-devel@lists.xenproject.org>,
	<linux-kernel@vger.kernel.org>
Subject: [PATCH v2 0/3] xen/events: Fix Global and Domain VIRQ tracking
Date: Mon, 25 Aug 2025 20:55:12 -0400
Message-ID: <20250826005517.41547-1-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.50.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH1PEPF0000A34C:EE_|IA0PR12MB7626:EE_
X-MS-Office365-Filtering-Correlation-Id: 5aad6dd8-9834-4a60-a024-08dde43b3b6c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|36860700013|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?ZcdB3z6dhWDlBhdWJgcFO5CSCaEIzfLMlO1c8yRlep4eJEaM27YF+N/QuP4k?=
 =?us-ascii?Q?8ilV2v7Gq6PKzoVpvL9ZKIeMS5CZDvwWPVNfZAG7V4ndIezZIsc4c/4eXbLe?=
 =?us-ascii?Q?ElotbD7SfK8tQ6PHeoeD82mhfut01tXEUB6T2axWvVjOqiDa21kGhhJTR7uD?=
 =?us-ascii?Q?iFrXkQDbH0TdZcxRvYXOoYLWZ323cVHusK0owSCH+Nt1DlIAnbq00fede92c?=
 =?us-ascii?Q?HcqZ0JqEi2HW4tfmnlg73aff9Rjr0ugPAKM9SNpVFx83vvmbrG2eQ/7RSlbo?=
 =?us-ascii?Q?SH6AMfG5l5kz5uLKAPcFGGRcB0LrpixdzRfo373oFwMKODxOXqlimoawY0km?=
 =?us-ascii?Q?m9puWwD/FZ4aUS1VrXrdgljCrO+q5FtVcM56hXOY8ekkOhzsjZxoxWhNzHyG?=
 =?us-ascii?Q?LMhDt7431oG16NubCXGRFAV+sP1Y16iKPCP/o5BS7QgLIQ8T2ybBQINuRQT3?=
 =?us-ascii?Q?4XXP9nizCse3fpdxEYECsPKZZ/HMSBg+VXnwzep/RUCuC48jUI/abJDskk/B?=
 =?us-ascii?Q?kzewuQECgmsSLXp6bWd7XEnXbquodE19nKzYYe7H3gv9In1cAX1c2HWGo5o2?=
 =?us-ascii?Q?BA0tHxb+TfKUniu5/e11FQ2BXxlAKFVhc3n1K2OLpSLcZq4rvXGWFYm9xPgr?=
 =?us-ascii?Q?eIVzvdi49CTl0jDAFKjCFH9FRP9HiMLMYEqzpn4SAYQndGlRsNS1iPZEbN+8?=
 =?us-ascii?Q?/338EFmSmDAQoOLqVR8J8Snp+hT/bKCU8/VMUw91jUiC1h1Cfc1DBlDPd1+P?=
 =?us-ascii?Q?A9NRxmGZkl9EdwHknXBjxUJcBlYNzhYgHSyNCY9cvop31keyzK9IwXhJzyYL?=
 =?us-ascii?Q?EJrcSoBvgGrmFh2gjSgBq6JKUB9JuHYkB18KBe0947PSRf3Bz3c+qsW7truj?=
 =?us-ascii?Q?6f36AFgAcmQC+ao2DrN7LJy78O4kKqgLxkqMwCWAJkNI2F+CS/XHV6mnd15D?=
 =?us-ascii?Q?bjrFtb/PP7HYTTkfsiqIsb+Sb/AhxhwJe8bwGNF5t/e4JKZHZOpVcxb+7Vb8?=
 =?us-ascii?Q?cTwzDEULb2QITFkW2tt8Y2q/Hngx0wJ1R3kqsS7RTrD+mhKQoIN6pJD/Z6zN?=
 =?us-ascii?Q?CjdZerwMD9A6CuopPfYfSMxRQZjtx0f7LBEP+uOLF/dxnW8Hv/Ty5YPYjRDA?=
 =?us-ascii?Q?nfR/SCYQNhBC2kV8rAbyE3c/hx5qEVO0HdG0MaPmNO4XKDKuWRYJdjzlt/Gf?=
 =?us-ascii?Q?HnAW1Za4b9LllfrJR5aISNKrCnZrjxy4teRx90eBwLphT7t0rjHzB//DBz53?=
 =?us-ascii?Q?YqCmKCuIP6Ye3LDkjtQbq5MqO1IWhavzefDvuvmHIzApFCgyaZR53cKc7It9?=
 =?us-ascii?Q?JBV/faKoG1n/RMc+WJ8pz92zfF1sDAzhyVx1VqhcPmR3XZ8kYyIhE15xcV/F?=
 =?us-ascii?Q?fEIGJPQDfnPr/vzBCLJ3w/BEl83XOqAMkPRFjPUstA34TGwwXe1r+TSUmv2q?=
 =?us-ascii?Q?AbLQU/P2CiQBHlvrWYjEo/6g8nxu5RYXlc1Hmw26j3/9omKx9R2/+XLdMWSm?=
 =?us-ascii?Q?JmADNkRfSP5rzocDTTWqAzo5nYT7/UMsTpOw?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(36860700013)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Aug 2025 00:55:20.7097
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5aad6dd8-9834-4a60-a024-08dde43b3b6c
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH1PEPF0000A34C.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB7626

v2 is now a series first changing find_virq() to return -EEXIST in some
cases, and then tracking cpu movement of VIRQs.  This keeps ensures the
cpu is correct when calling unbind_from_irq().

Jason Andryuk (3):
  xen/events: Cleanup find_virq() return codes
  xen/events: Return -EEXIST for bound VIRQs
  xen/events: Update virq_to_irq on migration

 drivers/xen/events/events_base.c | 32 +++++++++++++++++++++++++-------
 1 file changed, 25 insertions(+), 7 deletions(-)

-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 26 00:55:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 00:55:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093761.1449189 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqhyN-0001SN-R8; Tue, 26 Aug 2025 00:55:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093761.1449189; Tue, 26 Aug 2025 00:55: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 1uqhyN-0001SC-Mo; Tue, 26 Aug 2025 00:55:39 +0000
Received: by outflank-mailman (input) for mailman id 1093761;
 Tue, 26 Aug 2025 00:55:38 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=etY1=3G=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1uqhyM-0000hD-TK
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 00:55:38 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on2061d.outbound.protection.outlook.com
 [2a01:111:f403:2009::61d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 60f9434b-8217-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 02:55:38 +0200 (CEST)
Received: from DM6PR14CA0055.namprd14.prod.outlook.com (2603:10b6:5:18f::32)
 by MN2PR12MB4272.namprd12.prod.outlook.com (2603:10b6:208:1de::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Tue, 26 Aug
 2025 00:55:34 +0000
Received: from CY4PEPF0000EDD6.namprd03.prod.outlook.com
 (2603:10b6:5:18f:cafe::47) by DM6PR14CA0055.outlook.office365.com
 (2603:10b6:5:18f::32) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.21 via Frontend Transport; Tue,
 26 Aug 2025 00:55:34 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CY4PEPF0000EDD6.mail.protection.outlook.com (10.167.241.202) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Tue, 26 Aug 2025 00:55:33 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 25 Aug
 2025 19:55:27 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 25 Aug
 2025 19:55:27 -0500
Received: from fedora.mshome.net (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Mon, 25 Aug 2025 19:55:26 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 60f9434b-8217-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iyU3wxYGpiISoh/ORueFSlytgk+9QjxHWrrI+iS77I8904KH0bmveF6N9VU+okulfnrkePT4SD1RTIlTsRJRFdqSsnj0EpyUYr1ICpkXCd46C+tG+0ptUNybsT08+kFyDL4l2qOi4/q9i3kuueuodtlNyDtQDABrJLUGuUK8Art/hVD6eiraEXYcx08GmVvMoUIn3EXRXPEOgeRFbcXEBGMPCmiY+I0vTHMxsP+/gre5C+FBhzLoC1bVWRN7eFayeHZpD5+t7wSF2hNHl9XVbAWaKA1do+edtNX6IDiOAyAr+U6aRO0roXycbudLXzcB1PIytZz+gksNnNgbBABi5w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=vhSEPF8a35m/xTcBty/l8kD6Fit9wlVpONLWs4x9hHc=;
 b=G26YkfVD81nINmHApXz4ZmP6moCflXuXTcTRFWEFE85quKSoF8RIPPr+N3vhXtGt//Ns1qSKuiHp01TwhZHEdZ+5Pfid2lSutwQl0gg7vOZvO7GbG5mKkf56huNfiAP1BDqp4+SaRb67OkZEw5DPKPBhlBVHSiVvzkc7DhUOOWC7wtzm1poByNeNFKruVvK4rKDR9MpF9X3qBr26+mxvd59qe5Rqdynfs8ZRurR3Nr4pKezYW9H1WPvKaRyg0gf7fMjIMKIfLrvV9Py9HOU3Qr1spfyCoJ4FWmrjdd/fcapJ4Ppv7rkqW8ugr/v79qoJwI/U8usU+r+ZzHm67Flm7Q==
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=vhSEPF8a35m/xTcBty/l8kD6Fit9wlVpONLWs4x9hHc=;
 b=RVCBfS8XKocgZAYHQbndIsv6uFJPNsX+hv+3pDf92Soh59aeNbp4tm5g4EP3ZW04EQqxlkT10ebS+DBZHOZBtPm2sQFv+U9odzWu/wTiQVD6eECd3C3IlTN38iVnGUOMYOIXRH/pgSHGK1NuHxZvu7dJKG4CBag/l1hEt/PD4G8=
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=SATLEXMB03.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: Juergen Gross <jgross@suse.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Oleksandr Tyshchenko
	<oleksandr_tyshchenko@epam.com>, Chris Wright <chrisw@sous-sol.org>, "Jeremy
 Fitzhardinge" <jeremy@xensource.com>
CC: Jason Andryuk <jason.andryuk@amd.com>, <stable@vger.kernel.org>,
	<xen-devel@lists.xenproject.org>, <linux-kernel@vger.kernel.org>
Subject: [PATCH v2 3/3] xen/events: Update virq_to_irq on migration
Date: Mon, 25 Aug 2025 20:55:15 -0400
Message-ID: <20250826005517.41547-4-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250826005517.41547-1-jason.andryuk@amd.com>
References: <20250826005517.41547-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB05.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000EDD6:EE_|MN2PR12MB4272:EE_
X-MS-Office365-Filtering-Correlation-Id: 257c7527-1b1a-433b-18bb-08dde43b4337
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|36860700013|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?nMu5kN6+I6t6UvBysYvjl1/MEYUrCnNC8IwTMUiApM6Y7vjcU5L7+M2ajHCD?=
 =?us-ascii?Q?fm1E04TgLfivlaY/KFpx/OBXiRVFWeSJt4HfkEglYRNUqCUJVW7xdlX/ESS4?=
 =?us-ascii?Q?vo8bpZqUeUCIMQxSaY2wZiDof6geiz/JyGw6W9jHMLqrWO33opFWTKOE3mG7?=
 =?us-ascii?Q?AivaUi5VktkKg/vNRYmshmMkvDxlasVH47xXY2Nx56YIyin61gDNGwWcQtjO?=
 =?us-ascii?Q?P1+KWpnSWMR0bVPQTGf5h/gOr80x8N4np0ZJwafstEU4qCPM1KsFVQ8QEd+M?=
 =?us-ascii?Q?SVEDfgGUW4wLHNDFoU51KIc5ZULnsfv35s7lR/org0HSwDACOGU/20RQco9f?=
 =?us-ascii?Q?99FEOryKLszZ6v9KGyeHpuTRhYku1n53KcTZhHMmaU/juJlwdycxTxRZJS1n?=
 =?us-ascii?Q?LrTxbJ4E8tAotqBtD6kUj3GaW2XMACJjWygKwl11mBJx9Tf0gBr2prrL1mHR?=
 =?us-ascii?Q?T4gTczicMx8C/xgckO+miyL2mns3q5tBNUoP1agh5Cyoo41TnHtVWnlvER8r?=
 =?us-ascii?Q?xTAvFr6rWe8ThzSOwSthdHcxJRlYpvNTUXiLziVp1MgTtSUCQpPAYMLDXMv1?=
 =?us-ascii?Q?tXoPs/dtEkYfO5Y2SYIzFAB49JbZN/M2oXjE2+onWoadlFVjtXQuYlCP3GiQ?=
 =?us-ascii?Q?4W3+CF5a28GBiyoRGIs92SwcM24971eCdefuOL7ufVZAZ/7e4dmH0ZHmGIde?=
 =?us-ascii?Q?FjMOWGPBlz6RXnG+GbBpCIvG4TS48hhRae/39OtZqKAFBPEUKi6IBA7M0Utg?=
 =?us-ascii?Q?oKvMilWMMZteVwD5/f9EUaTLcaugmrG3GjF/4sPDpSP5DLBTENFPhy0WHHKo?=
 =?us-ascii?Q?sxpr4u+NPW6EK2WD8zL3J9vAlQBG3O8fA4qQybwshy4b/RvYeJv529byUyfz?=
 =?us-ascii?Q?AAGWmAmFKNwFE26HzvOVBG3DIIeO0+MIlcztVkhWdQYGYQzz+/H8G01+OqJH?=
 =?us-ascii?Q?d2w4QDk1DwCbOK2mOFfkC02qZAKUenToIQfyOaNwurdUEfus7yJs/gRg0iec?=
 =?us-ascii?Q?kYXJJ6wWJaY5Nt9sJYkr+jSwRffnBucwH1ruJJfHwtG5okUylSUcRy94D2Lg?=
 =?us-ascii?Q?+reSQ4ypSSvEQlivuZKGa1VmV2HTu12f35b3fGW5Cy1wFTHaRtM9uutAEcNM?=
 =?us-ascii?Q?WbNbqpNXLwuLW168eTNjWY4E/G3sGteGmPdZrWEoCrW+bMcNYR/eS+OOSC7L?=
 =?us-ascii?Q?GVxbEmPzlIlizGHekFE56hQRrluaRhe/a00yhvdsr8bVqgCo7krGflPF9oLR?=
 =?us-ascii?Q?vZ6/ARt5r98MWPx4qKGnH39aGx/IfucC0TpPx7/4dIQmtW3RyDKN0+PrIwhY?=
 =?us-ascii?Q?vVIgJIuyy81QV3bea/owOwxHVRrw5CYi3m5bEZ8nFGlw4ZuU0ybFs7947HVx?=
 =?us-ascii?Q?MJsS+vQYboQ5q+Gc+1jp1tzI5cjtQXQPjGbx5JyfQvmsqim0HNfvuUORUANU?=
 =?us-ascii?Q?O4hwTi1b3Y1tW72mPpjeUPea+ylza4Un1fbzXHHXJ8nbpbk3mG5dFqTLPvVk?=
 =?us-ascii?Q?XmZFJ5f3NvQcIeXnA72fgPKyULIXqfFzSher?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700013)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Aug 2025 00:55:33.7475
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 257c7527-1b1a-433b-18bb-08dde43b4337
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000EDD6.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4272

VIRQs come in 3 flavors, per-VPU, per-domain, and global, and the VIRQs
are tracked in per-cpu virq_to_irq arrays.

Per-domain and global VIRQs must be bound on CPU 0, and
bind_virq_to_irq() sets the per_cpu virq_to_irq at registration time
Later, the interrupt can migrate, and info->cpu is updated.  When
calling __unbind_from_irq(), the per-cpu virq_to_irq is cleared for a
different cpu.  If bind_virq_to_irq() is called again with CPU 0, the
stale irq is returned.  There won't be any irq_info for the irq, so
things break.

Make xen_rebind_evtchn_to_cpu() update the per_cpu virq_to_irq mappings
to keep them update to date with the current cpu.  This ensures the
correct virq_to_irq is cleared in __unbind_from_irq().

Fixes: e46cdb66c8fc ("xen: event channels")
Cc: stable@vger.kernel.org
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
V2:
Different approach changing virq_to_irq
---
 drivers/xen/events/events_base.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/drivers/xen/events/events_base.c b/drivers/xen/events/events_base.c
index a85bc43f4344..4e9db7b92dde 100644
--- a/drivers/xen/events/events_base.c
+++ b/drivers/xen/events/events_base.c
@@ -1772,6 +1772,7 @@ static int xen_rebind_evtchn_to_cpu(struct irq_info *info, unsigned int tcpu)
 {
 	struct evtchn_bind_vcpu bind_vcpu;
 	evtchn_port_t evtchn = info ? info->evtchn : 0;
+	int old_cpu = info ? info->cpu : tcpu;
 
 	if (!VALID_EVTCHN(evtchn))
 		return -1;
@@ -1795,8 +1796,18 @@ static int xen_rebind_evtchn_to_cpu(struct irq_info *info, unsigned int tcpu)
 	 * it, but don't do the xenlinux-level rebind in that case.
 	 */
 	if (HYPERVISOR_event_channel_op(EVTCHNOP_bind_vcpu, &bind_vcpu) >= 0)
+	{
 		bind_evtchn_to_cpu(info, tcpu, false);
 
+		if (info->type == IRQT_VIRQ) {
+			int virq = info->u.virq;
+			int irq = per_cpu(virq_to_irq, old_cpu)[virq];
+
+			per_cpu(virq_to_irq, old_cpu)[virq] = -1;
+			per_cpu(virq_to_irq, tcpu)[virq] = irq;
+		}
+	}
+
 	do_unmask(info, EVT_MASK_REASON_TEMPORARY);
 
 	return 0;
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 26 01:50:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 01:50:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093805.1449198 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqioq-0000Sn-Lp; Tue, 26 Aug 2025 01:49:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093805.1449198; Tue, 26 Aug 2025 01:49:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqioq-0000Sg-Ix; Tue, 26 Aug 2025 01:49:52 +0000
Received: by outflank-mailman (input) for mailman id 1093805;
 Tue, 26 Aug 2025 01:49:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=EpqW=3G=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1uqiop-0000Sa-0a
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 01:49:51 +0000
Received: from fout-b2-smtp.messagingengine.com
 (fout-b2-smtp.messagingengine.com [202.12.124.145])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f26f7c42-821e-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 03:49:48 +0200 (CEST)
Received: from phl-compute-11.internal (phl-compute-11.internal [10.202.2.51])
 by mailfout.stl.internal (Postfix) with ESMTP id 0D0491D000BD;
 Mon, 25 Aug 2025 21:49:47 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-11.internal (MEProxy); Mon, 25 Aug 2025 21:49:47 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 25 Aug 2025 21:49: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>
X-Inumbo-ID: f26f7c42-821e-11f0-a32c-13f23c93f187
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:message-id:mime-version:reply-to
	:subject:subject:to:to; s=fm3; t=1756172986; x=1756259386; bh=zW
	/szYVjxGxpfeH5evKixXehFIEwHg8GMfugR2/Z8gM=; b=oYBaYBzVm1yB6gncHV
	oz1fnsZyEEaaDM4H5WTS5raF8pD7teo0bUiuB32nNybqrghWGQA8ESWRYA/BPEi3
	qScBHm3BySJvwVvfVy8gyNb3IvLj1oNjtIgzf1jcXXGRqIGUQj/7ovMlnBou1R/c
	pGV3+RCC18lQb/5vogVH2GoCw4uhIr+coioTI6aRtTn/FiCRDFwmJozE8BdgVA4W
	AaLy3BlFVC2VXe7jO+TIZ3c/RyVQ1vgd1Ja67DQdJ6C9M+AN7OZKpr8ArW67CTTk
	RVIFtCjkd9HaipSEEdnK2X3EKreLl5C6GO9t7H/RKNeMWmVY5Q/MAd0m30DV7imk
	EW3w==
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: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=1756172986; x=
	1756259386; bh=zW/szYVjxGxpfeH5evKixXehFIEwHg8GMfugR2/Z8gM=; b=k
	IGdspNOm+EN+CuFD/ibV3J6qOMbd0GYXEEYdOC1Q95bl6tzR/skKTRVB1K0xMnov
	HSid3p7obfXjoJq+9Ez0PQhkzG0SIID5opD7w4vt0wxOldfFh4jEZm9hh4YOGt62
	x5tnh+KPZekIh4nTG0xpP3/Tl/F0q0FhxAe42U4VyZa9Yw33v9JF+Win80D41YLO
	NEU8qTFh+uyIRtAUZE54qsIS57EDXU7OMjnnWtPB+WYBVbJdh3kFZqrKK1ewav9V
	5Mg31mOOfFY7213YECjGBppbMPbm2B6hS96xf14Zq6XcZNt5y0r+SuOY9GdNazn0
	UmqAvdUmhzNubnQyakPRw==
X-ME-Sender: <xms:uhKtaAOHjDCSVY8Vym-fUARb9Rje4C6-qZ5dD2GVolnaT359mT1J6A>
    <xme:uhKtaHIkLzJlXiuO1YKi3dzkBRrftkqmBVtKDlEbFUOWx825w3_PKnU78zXdbmI-a
    st6O09TJ-batQ>
X-ME-Received: <xmr:uhKtaJE5w1V5zSTNbm-u_C7mKcnDKxT1EH0nNtHXPt5NM-Ce0RHeVm5siakLQriLmdrMmHaDjAnp84RnZdQNF-OhMDYVoDu-2a4>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgddujeefleelucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkgggtugesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcuofgr
    rhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvihhsih
    gslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhephfetuefhiefg
    tddtlefggffggeevhedtvdefffeugfeiieeiheefteefgefggeejnecuffhomhgrihhnpe
    hgihhthhhusgdrtghomhenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgr
    ihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrd
    gtohhmpdhnsggprhgtphhtthhopedvpdhmohguvgepshhmthhpohhuthdprhgtphhtthho
    peigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtph
    htthhopehrohhgvghrrdhprghusegtihhtrhhigidrtghomh
X-ME-Proxy: <xmx:uhKtaHRGSqNAA2GV3KXlb6HX0oBwFVladQCu-s4uMHNlNxZArQmg5g>
    <xmx:uhKtaNEidGovcbhblZl5rGxJTTxSVb6H74PDDKs76rejJjAviPWp0A>
    <xmx:uhKtaL9L-9zIMWQclz_L70pTVICUTKTw3T_vf7eOm_KLm4txNQnQ4Q>
    <xmx:uhKtaPLR8gS7Fh-z12Ad7xGMUiuuZYpg0wCe5Y4tikT_nnOZWkVFkA>
    <xmx:uhKtaM0E7tfC4cggEbdZGZf0yOsD6J54jRYIH8Cv8rSxQ1tWLwxhFQAX>
Feedback-ID: i1568416f:Fastmail
Date: Tue, 26 Aug 2025 03:49:43 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel <xen-devel@lists.xenproject.org>
Cc: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: MSI-X cleanup(?) issue with passthrough after domU restart
Message-ID: <aK0St0oUkJzR9lO0@mail-itl>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="k7vqmfkeGtKK+j9s"
Content-Disposition: inline


--k7vqmfkeGtKK+j9s
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Tue, 26 Aug 2025 03:49:43 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel <xen-devel@lists.xenproject.org>
Cc: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Subject: MSI-X cleanup(?) issue with passthrough after domU restart

Hi,

I'm hitting an MSI-X issue after rebooting the domU. The symptoms are
rather boring: on initial domU start the device (realtek eth card) works
fine, but after domU restart, the link doesn't come up (there is no
"Link is Up" message anymore). No errors from domU driver or Xen. I
tracked it down to MSI-X - if I force INTx (via pci=3Dnomsi on domU
cmdline) it works fine. Convincing the driver to poll instead of waiting
for an interrupt also workarounds the issue.

I noticed also some interrupts are not cleaned up on restart. The list
of MSIs in 'Q' debug key output grows:

    (XEN) 0000:03:00.0 - d22 - node -1  - MSIs < 41 42 43 44 45 46 47 >
    restart sys-net domU
    (XEN) 0000:03:00.0 - d24 - node -1  - MSIs < 41 42 43 44 45 46 47 48 >
    restart sys-net domU
    (XEN) 0000:03:00.0 - d26 - node -1  - MSIs < 41 42 43 44 45 46 47 48 49=
 >

and 'M' output is:

    (XEN)  MSI-X   41 vec=3Db1 lowest  edge   assert  log lowest dest=3D000=
00001 mask=3D1/H /1
    (XEN)  MSI-X   42 vec=3Db9 lowest  edge   assert  log lowest dest=3D000=
00004 mask=3D1/HG/1
    (XEN)  MSI-X   43 vec=3Dc1 lowest  edge   assert  log lowest dest=3D000=
00010 mask=3D1/HG/1
    (XEN)  MSI-X   44 vec=3Dd9 lowest  edge   assert  log lowest dest=3D000=
00001 mask=3D1/HG/1
    (XEN)  MSI-X   45 vec=3De1 lowest  edge   assert  log lowest dest=3D000=
00001 mask=3D1/HG/1
    (XEN)  MSI-X   46 vec=3De9 lowest  edge   assert  log lowest dest=3D000=
00040 mask=3D1/HG/1
    (XEN)  MSI-X   47 vec=3D32 lowest  edge   assert  log lowest dest=3D000=
00004 mask=3D1/HG/1
    (XEN)  MSI-X   48 vec=3D3a lowest  edge   assert  log lowest dest=3D000=
00040 mask=3D1/HG/1
    (XEN)  MSI-X   49 vec=3D42 lowest  edge   assert  log lowest dest=3D000=
00010 mask=3D1/ G/1

And also, after starting and stopping the domU, `xl pci-assignable-remove 0=
3:00.0`
makes pciback to complain:

    [ 1180.919874] pciback 0000:03:00.0: xen_pciback: MSI-X release failed =
(-16)

This is all running on Xen 4.19.3, but I don't see much changes in this
area since then.

Some more info collected at https://github.com/QubesOS/qubes-issues/issues/=
9335

My question is: what should be responsible for this cleanup on domain
destroy? Xen, or maybe device model (which is QEMU in stubdomain here)?
I see some cleanup (apparently not enough) happening via QEMU when the
domU driver is unloaded, but logically correct cleanup shouldn't depend
on correct domU operation...

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

--k7vqmfkeGtKK+j9s
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmitErcACgkQ24/THMrX
1yw/AQf/S8N23ucod684RxL+Zs54rJxwit7YotZ5B5cRPqAwGv3S+0eIzIPmmiWC
7m+TmDJM6GtXF8/LA+T3oGmruA0BT/RXFoHhKndDJVZC8eKfvYqttP25zqnVunmc
nq/wv4QdyVvF9vRy35pnqvveC4af7E/uPF70AXh5OmXNrji0KCGk1DZlkmKLF25q
k2GjkHsgEHEqX47iCRY4oKtvkkSbPor2AUmw995CbqlDXnt1J9K1M3UkNqpu+D3b
3vwNLPAJKjDtkwi8nYOrGYPANTy6mw78uQ3xPEF//v63ZPU3eWa7y6EdpXjHvqMV
95v4a5k20e1izD+0HQRb80N/VoASuQ==
=KKt0
-----END PGP SIGNATURE-----

--k7vqmfkeGtKK+j9s--


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 02:57:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 02:57:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093826.1449208 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqjs1-0001Il-Bf; Tue, 26 Aug 2025 02:57:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093826.1449208; Tue, 26 Aug 2025 02:57: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 1uqjs1-0001Ie-8q; Tue, 26 Aug 2025 02:57:13 +0000
Received: by outflank-mailman (input) for mailman id 1093826;
 Tue, 26 Aug 2025 02:57:12 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fAYs=3G=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1uqjs0-0001IX-3p
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 02:57:12 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 58d2a50f-8228-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 04:57:05 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 5A2AD601F2;
 Tue, 26 Aug 2025 02:57:04 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id A1CB0C4CEED;
 Tue, 26 Aug 2025 02:57:02 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 58d2a50f-8228-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1756177024;
	bh=UuMUHaOYyhmF7YdDTK2zy5nC/Igypi6vqj00Nos0iJQ=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=m7dXDb59b2WY9YqGzAt37j4X/mKxYh6XRFO4wSsj7FH64zLZRDHOHIATFRBumNdVB
	 8c1Zzv5zbuWhsZS1w/G10UwuleHrTC4mhq7xKIh5KsLhfy6t9YY+PDqaPkmKOvd33s
	 iMxEYt2tUkQLxO2/ghtxogHont6yPWCPDRAwBHWMLpRU6sP7A3uu66+CjHwxBbhW0Y
	 wvDhpeaxBLi1Qhp//bwgemEYL787jnBMHrp8zac/Bea+u2Ed3bGHl4MM1DoFp1NQ4b
	 /q27CjXeD0zAONml5M8HrYPFgdcAbB/PXMuydhqSQvk+OPxdfdGnZKNeehkOj8OEOT
	 0/CgujlivyGLw==
Date: Mon, 25 Aug 2025 19:57:00 -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>, 
    Oleksii Kurochko <oleksii.kurochko@gmail.com>, ray.huang@amd.com, 
    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>, 
    xen-devel@lists.xenproject.org, Penny Zheng <Penny.Zheng@amd.com>
Subject: Re: [PATCH] xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE
In-Reply-To: <49416df6-83c8-4fa3-bf81-2d1e504ef31b@suse.com>
Message-ID: <alpine.DEB.2.22.394.2508251934200.3391208@ubuntu-linux-20-04-desktop>
References: <20250815102728.1340505-1-Penny.Zheng@amd.com> <fb6f559a-b2aa-4b25-a6d3-401ecc4b4bd5@suse.com> <d6046b53-9317-43d6-bfda-e30d42c09320@gmail.com> <2035b14e-3836-4e80-9dad-8a49ca90864a@suse.com> <alpine.DEB.2.22.394.2508181646220.923618@ubuntu-linux-20-04-desktop>
 <49416df6-83c8-4fa3-bf81-2d1e504ef31b@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Mon, 25 Aug 2025, Jan Beulich wrote:
> On 19.08.2025 01:51, Stefano Stabellini wrote:
> > On Mon, 18 Aug 2025, Jan Beulich wrote:
> >> On 18.08.2025 15:28, Oleksii Kurochko wrote:
> >>> On 8/18/25 10:31 AM, Jan Beulich wrote:
> >>>> On 15.08.2025 12:27, Penny Zheng wrote:
> >>>>> In order to fix CI error of a randconfig picking both PV_SHIM_EXCLUSIVE=y and
> >>>>> HVM=y results in hvm.c being built, but domctl.c not being built, which leaves
> >>>>> a few functions, like domctl_lock_acquire/release() undefined, causing linking
> >>>>> to fail.
> >>>>> To fix that, we intend to move domctl.o out of the PV_SHIM_EXCLUSIVE Makefile
> >>>>> /hypercall-defs section, with this adjustment, we also need to release
> >>>>> redundant vnuma_destroy() stub definition from PV_SHIM_EXCLUSIVE guardian,
> >>>>> to not break compilation
> >>>>> Above change will leave dead code in the shim binary temporarily and will be
> >>>>> fixed with the introduction of domctl-op wrapping.
> >>>> Well, "temporarily" is now getting interesting. While v1 of "Introduce
> >>>> CONFIG_DOMCTL" was submitted in time to still be eligible for taking into
> >>>> 4.21, that - as indicated elsewhere - is moving us further in an unwanted
> >>>> direction.
> >>>
> >>> Do you mean that specifically this patch or the whole patch series is moving us
> >>> in unwanted direction? (1)
> >>
> >> That series. We said we don't want individual CONFIG_SYSCTL, CONFIG_DOMCTL, etc.
> >> Instead a single umbrella option wants introducing. Which means there series
> >> doesn't need re-doing from scratch, but it may end up being a significant re-
> >> work, especially considering that CONFIG_SYSCTL is already in the codebase and
> >> hence now also needs replacing.
> > 
> > I would not characterize this series as "moving us in an unwanted
> > direction". Yes, it introduces a separate CONFIG_DOMCTL, which we
> > agreed we do not want. However, simplifying it to reuse a single
> > CONFIG is a minor improvement that can be addressed in v2. The main
> > challenge in this series is adding the #ifdef in the appropriate
> > places, and using a single CONFIG for domctl and sysctl would
> > actually help.
> 
> Well, when are we going to see a v2 then which does this? Of the three
> options I mentioned in the earlier reply, Oleksii favored the revert
> path, leaving open the get-everything-in one. For the latter, however,
> we need to see relatively constant progress now, or else time will run
> out. Whether to commit the patch here really depends on what route we
> settle on for 4.21.

While I share Jan's view that now is a good time to make progress on
"Introduce CONFIG_DOMCTL", and I also believe that this is the best
course of action, I would like to share a few thoughts on the other
alternatives.

My understanding is that the PV_SHIM_EXCLUSIVE option is no longer
widely used, and a small size increase would not compromise its
functionality and should be tolerable.

In general, we are slow at getting larger series reviewed and committed,
and choosing to revert rather than accept fixes tends to make us even
slower, which is undesirable.



From xen-devel-bounces@lists.xenproject.org Tue Aug 26 04:24:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 04:24:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093844.1449219 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqlDq-00044m-Ao; Tue, 26 Aug 2025 04:23:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093844.1449219; Tue, 26 Aug 2025 04:23: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 1uqlDq-00044f-7x; Tue, 26 Aug 2025 04:23:50 +0000
Received: by outflank-mailman (input) for mailman id 1093844;
 Tue, 26 Aug 2025 04:23:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ofj+=3G=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1uqlDn-00043p-UO
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 04:23:48 +0000
Received: from NAM04-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam04on20601.outbound.protection.outlook.com
 [2a01:111:f403:2409::601])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 74c386aa-8234-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 06:23:46 +0200 (CEST)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 IA1PR12MB9740.namprd12.prod.outlook.com (2603:10b6:208:465::23) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Tue, 26 Aug
 2025 04:23:43 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d%7]) with mapi id 15.20.9052.019; Tue, 26 Aug 2025
 04:23: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>
X-Inumbo-ID: 74c386aa-8234-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fC5AZNO5gzaAxzVEbHy6ToUMO2gqJGBmTBVb/0EsP14Fa8PWBpXPvo+xgaVgvbaHTlQUXTU7gQFwMuDQSnfShwYpM/blY8cujIzG8dXvRd5PRwWNPFQOLlDqC3niNeX3rso9AAOLBpktGD6HGLmXKFKM5kp/vM3TKvnJ+1UB8c6Ju2/4ESgQtspyYLgYPuGAiEboL+/uDEa92aRqT9hviUsgYibps5o4kGDfZhi7akH+L7x9mq9xl1ihV/+IJofQdoTV/gh6C0O4kEY8g7dq8z0eyOOFsIpawun98S+9UrZE7bUGuB3rolp7wjvuWD12Rf/JWPg3M3BfHN4yj6njDA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=CeEMw0WAP8DEf+kBqsIYruecdXTSMqgZNOFHHH3nA9o=;
 b=bWpMftFlcQx65kBHDcNYmndlcDHKjo/1PpAfky7P+qQ6uhhoLTItAFvnUk4vZ6Sx9ECWCXJ7mHF1JiITihawsajjCmkMYoTXIerev8lOC0m2+pCkEaiaWPLrBzpz2GBwF4hnLuHFfoHWSCYFY3VZY8EmQAlrygpQT35HPg4L7wTUF8T/bb/SKX+F8q3u1ZoI6MATKo19LWmVWu4eItq2gwqpoKaV3b+bSWLjlbFmVqeskq9IET2649XF7+uXjMU9ALgKvi6jFROtlrnTS0aCH4HaTUplsjZUbOT4nppnJPSSVSKsir79kiyvUx5fMnBwHLszLpzenhnMs8eWl5qRig==
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=CeEMw0WAP8DEf+kBqsIYruecdXTSMqgZNOFHHH3nA9o=;
 b=B5Z/a5vLfyLB3xjs5kGYJXNSnEow7d4ZA99VcgkxvtEZctn9znWRMKp1TH/fo9dh+DKF2y3QvIOcKtQrmEE0w9H7ThnP8vb67GHM2TU4BZ6i8qJ0nxEEIzH0ArdTkshfXFtnVPOTvxTRrkHKhtm6nDhmQn0hrOC0/yo6TRo7GFY=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v7 04/13] xen/cpufreq: add missing default: case for x86
 vendor
Thread-Topic: [PATCH v7 04/13] xen/cpufreq: add missing default: case for x86
 vendor
Thread-Index: AQHcE1LnYk6aQ+tCsUqjAHtQXx8uFLRzdoWAgADk8hA=
Date: Tue, 26 Aug 2025 04:23:43 +0000
Message-ID:
 <DM4PR12MB8451B4958835601AC8DE906DE139A@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20250822105218.3601273-1-Penny.Zheng@amd.com>
 <20250822105218.3601273-5-Penny.Zheng@amd.com>
 <f6e4561d-a554-4ac1-afad-c4b010e1832b@suse.com>
In-Reply-To: <f6e4561d-a554-4ac1-afad-c4b010e1832b@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-08-26T04:23:30.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|IA1PR12MB9740:EE_
x-ms-office365-filtering-correlation-id: 70e06970-3cec-4dc1-4acb-08dde458578a
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?azdaaFlhVDZtMVZGeUNtQzVUbVVFbk1LUnd1eDN0ZlFlV0lmUXRmOFNZUjA2?=
 =?utf-8?B?TTA3dHZ3V0o4anY1NXV6dWhuRkcvVmhsbWtTT2lZWENJT1hGeEZHdnloeVBl?=
 =?utf-8?B?UVJyOWM3c3A0YTFOWHIxS3E4TlA5VU9jNFdhNEFXNVM2U28vT3pFRTNuY1Yz?=
 =?utf-8?B?VjFoYlVWTWIvTjA1NGhTOU0wU1R6YzhVY1h2OEs3c1RBMENlM3E4dU1rMlFO?=
 =?utf-8?B?V0N5dmNHWVJDVHZBNkdDclh4UU9Ka0pIQXpLSXNDSlV2dk9OYmxZRlBQcTNo?=
 =?utf-8?B?M1RZU3JTajc0bUVNcDFDeUVvYytoVUhBczZycjAwb2hwRHpCbzQ0dnIwVVRu?=
 =?utf-8?B?RVVHcGo1YURWOE5seHdhTW84VTAyZSt3OG5wME9KeFpxOFRqNUNBdlBGRWMr?=
 =?utf-8?B?YVIrTVRXUDN0Q3RzWml3Yzl6UlZzMGdEdFpmQ3N0N21USkZSNExiSVZ2R0Jw?=
 =?utf-8?B?bjY2eFp4a0YyYVhKVDJWcFZaZVp4RHcyUnBsN1ZCNDdZcnBuUXpBNERkRmtt?=
 =?utf-8?B?ZDJaYzF1OS84TTk4OWpFTGZWOGhZanBiY25NbXRsVWlpaEFab3VVNjVieVdL?=
 =?utf-8?B?cjdkeXZHa05Eb3hEU1hpNjZJRkJWcXExQ3JVRlYzYzMvT0lJUnNlN0R5NmRj?=
 =?utf-8?B?ckc4UU85WUNDdlJvYng4c1VhaVg3REhXUEdTYnJXTGRRQkZjNUp5T2RLUnV0?=
 =?utf-8?B?eHNxQ2IwWEhicmVqblVuTER2OUUyRjYwTHZ5dFVZRUozV3JEeFNaUm9Ec1dN?=
 =?utf-8?B?cXhBNE9iUytGZ21pT3NRamJpYU0rbGJndW9HTFYwZEpsNzU4b3FpRENyT0pt?=
 =?utf-8?B?MEhGVDVrZlI5YXJmU1JSOFloTVhEWkY2SEZnZSt1b3JjRWpxcHFyWkhZL0VY?=
 =?utf-8?B?UTNnQVZ1TlJneVQyNzZUNG14SlJUcnpmaXhvK3psM01hQ1cvaVoyVlJiemdG?=
 =?utf-8?B?NFE3NWdVbVp2dU5PRUh3MjdqWDZBak5wMG9HVDFtUUtvY2NycnZWWldMUzF6?=
 =?utf-8?B?eU1TLzRubWdwaDZSdTBpWTEvU1RoeE81cHo1TXVVS05OV1pKOGNxRjZIMGVM?=
 =?utf-8?B?RUFKKytySldjMkhIUHQ5YjNTN2JrN1E0Z1lsZThPdjlkV2tkeldqdmlUS1BE?=
 =?utf-8?B?Yy9GL0oyb3V1U3J3R3dkYVgxZHp4UXRNQzdRcGNudmZBMHp4TDNSK0h2cHFp?=
 =?utf-8?B?VFlVaDVCNFhvcUxjQmRiMGhEaHMyYTRZUkFIZmxMcTlzWDBBMFNtcmFxL0Ja?=
 =?utf-8?B?Zjh4MlRMaDk3WWppWWNTTDZGMU9uQjAwRGl0L1luV05aVGVHWXVIQnE4dTIw?=
 =?utf-8?B?Yzl4aXZXSHZLTGgrRW83MUIyaGhkWkdLTk9oSDBVeW93MFpzVGloUGFtZnF6?=
 =?utf-8?B?L2ZaZDRBeU5RK0FueWFmUTVTRXZnMW1EVWJhRTE2bDFmbTBiUU1ST3BzN20y?=
 =?utf-8?B?OHd6RkFsd3U1YmptUTE0anhuWnlLZmNUV3VKdVpWWmVqWVlBQ0V4Nmd4RHJU?=
 =?utf-8?B?UkJ5Z01wOERDUnlUUk1HWTBweSthMXBGMUxjYm05R1hhaWgzZ1FaWk1udjI2?=
 =?utf-8?B?Q2FKK2dzbkxlQzUwV2c5TGFBUkg3dE5JemhxblZwYzRvRWZaTFVPMXVpUGU2?=
 =?utf-8?B?ZmRuTGNUMDdCVHN4UjUvdldDQW9Xa2dDRndseStNNWlFU2M1ZWMxblUrM3Fx?=
 =?utf-8?B?TmE1V0NJTzN3M3BtWklLN2VDVG5iWnBPYmF3aWVKVU9XcXNYUks5OGtPR1N6?=
 =?utf-8?B?TGFiaDNtR0s4Q3BqMFhVU3VBdW9JNXNCeEdMR1ZKZms2WGpmNGRzTEVya3g4?=
 =?utf-8?B?aCtMRGJUU0tjbHNYNkpVWXZTdzVqVlhBd0NWNndZS3haUmJ1RWRmd0NUSWd0?=
 =?utf-8?B?cFBmQzlTWVU2WUp4cEUzc0JLS2JCeXdUY1hTbDVnd3YzZjh4aDM4am9ZNjN2?=
 =?utf-8?B?RzNMcTYwemd4NVI5Nlo2S2dNSlZuYmhhSXNiWFROSWgrYmQvQW9aNWFteVVW?=
 =?utf-8?Q?TE4LqpdvHn6CSJ9BXsr7j/LL1rxx3s=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?UHIwVk1LUmhiNjd2ZWdYejVNc0F0VWtvQWliOUc3NGVZYlBad1Z4TmdSNG9s?=
 =?utf-8?B?bUpsdUowUHg5WDdsZXk4TXp2Qm81V0NUbU1aY2ozaFNBMzV3OVh4clJjVHlJ?=
 =?utf-8?B?QXJreTBqbU9pRXZFV0QrbkJCMkZ4dW5qWmtZd0Z1OG5zYVdtS29janJDRGRK?=
 =?utf-8?B?Ny96eXpROGFsb0pmNGlmM2pkcFF0MHlaNWlPcEdRaXoxOXJwRGRjcEp2dy83?=
 =?utf-8?B?cmV5bFY1SGd5cWJ3QUlSelhRVEdRY2pKRDhoNVl6S2J0MS90bWhNMThySmZJ?=
 =?utf-8?B?UVZuaWxpQTk2Y2xGYnk2clYyNkpITGlvdzFTOXFmUWhuOWcyQzltYys4Wmt0?=
 =?utf-8?B?cVdYK29pVzlJSzdlN09tRzBqWmNDU1dkTFZlc1lyd3hhaGpDNVE3b0poclh3?=
 =?utf-8?B?UGpRWVhJd0pDUlpaODJXakhKTTl0WXptVitJK2d2ZlJsWE5QbDhSMnFZdFRi?=
 =?utf-8?B?QU9PWGtxaUswU3N4SzJGQ3FIRkdpU2FaVXZjaUFhTWFYUksxdnhMUDM3eWl2?=
 =?utf-8?B?ZUdMMUJKZFhLSUF1NHdhNmY5WC8ySkxDb0pnbmpXbHhGa3AwN0VYb1cwU1ZG?=
 =?utf-8?B?UG1JOGxQTnRkWEFlUi9XTEhKdDYrY1MzSWVRZmp4d0pkS25uTFlTNFJaRUdn?=
 =?utf-8?B?ZTB1dHFhcTE0V25CUllpUFc2dmZWQlQ1bUpMQnVlZWFuci9YTUxZakJ2Zy9G?=
 =?utf-8?B?SEpyTVlIaHJyVGFDMmVOaXRxd0krT3ZxRElSYzJBd2tFQ3hvc3ZIMy82ZTlk?=
 =?utf-8?B?MDRBQnZIWCs1ZGRCZ0ttL3lDMk9za3ZCeXE1b1hEQ2tHd01XNkdsMDhUYmRx?=
 =?utf-8?B?a2Y3ZTZzcWEvVm92OGFWZ0J1dlNTZ1lMcy9GRTZLNlYrdXI2ZjVkWlk3MW43?=
 =?utf-8?B?Qk9RbnJ6RWR4ZTV4M01lY2xMRjFkY1ZoVm40enFHUHlKTHhQbEExaktuZWk1?=
 =?utf-8?B?dytYVHRSQ2o3bDZ3d1ErT2xBK3U4Z1ZiNXZhZEtidGRxc1NjSitYR2IvY0JV?=
 =?utf-8?B?MDZPcWNmNGpORHlCaW1YMVRmN2FNQ0tkTmhNK2N5a2gwTzZiL3poR2JyVnhs?=
 =?utf-8?B?M0FmamRkNlA4cGlNTUVTVVZIN2xLZXZOVTUxdms1WExHWFNuajF6dEQ3QmRu?=
 =?utf-8?B?Y1pWalZESzBzdWJlajA2c3NRVWZmZ3g1WGQweUhDZGZ6SmZEM2ZiVnRlNkR1?=
 =?utf-8?B?ejR1NHNSaUszVUlNVERGdnp5cXRwK0dWL003VTJsSzNPaXpadC9SdFFRWElm?=
 =?utf-8?B?ZUZ0d21vTUpKbENiZFBUT3BTYjdIRkh3VlFqdFMzRDFGNlBFdllFeUJQNElD?=
 =?utf-8?B?NzhqdEplVUhQc0pRRWhnNTJ1MzRzdlY5cVBDRUZXV0ZISW9qZGhUeWFZV1p6?=
 =?utf-8?B?MzJrRDQreE15TFhhbnp1WkFOV1dWNENjeERGS0pKWDVvazBOUTZUVElnZHpS?=
 =?utf-8?B?S1JXMGI3TWJUL2xhYms5RXFSQ0IrRng4cks4V1YrbTRPSDg0Y1REa0hQS01t?=
 =?utf-8?B?OHduUUdoR2pnNTBxZlZudUE3bVArdGk4SHZZaDFzZ3ZnZGQwMHd6SEp5OUlh?=
 =?utf-8?B?MWkvbW52L3N5OTNCMEMvVmdscENoa3F6TWgvdUtJV2RtOEVPV2hpYndibk4y?=
 =?utf-8?B?clErYzV1aW5zUlMrb2s4K3NjVUlTNGxQUGNnbjBHZVJwbko2M1ppalFtb01N?=
 =?utf-8?B?SmI0L1o0SEhHemxPNTgwcjhlWFFwNThpTTBrdmlnT3d6NjhnaDV1Y2k5eHN1?=
 =?utf-8?B?VDJRUGlFeTZOMmVWQzU0VEZoblhYL2E1N3I1bjVzdERKeEkrRjFGNTJjNi9k?=
 =?utf-8?B?RTR0UE1sbnEvQ0VhQnBBVGFQSjZGdkM1cWhhSHZRdDE1UzkyUU14R1lkdmJ3?=
 =?utf-8?B?UkZyZEJrUStHd3N1WDRuek9ISEtCTnZqMVh0ZHZoVG01U01walo2T1FKVnFT?=
 =?utf-8?B?MjJhdm5uOEloeGl3QmJaTjh0d3dLc1c0VDJDbUtYY2t3YlNHK1pieDZlb3hF?=
 =?utf-8?B?MlRMUEF4aHZkanI2NmRnbDI3ZG5ZQ1BvdndTdm5ZVU5rTkdDZHY4SDZmM3F0?=
 =?utf-8?B?QWxYb0dMOU1nWEtQMEVjai9Ec0IwYlZ3Rk9rb2ZwaTN2R2xKQ2hldjNoWkpx?=
 =?utf-8?Q?DvTE=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 70e06970-3cec-4dc1-4acb-08dde458578a
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Aug 2025 04:23:43.3286
 (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: owaDiU0NeSM5r83TcJGqNQhbONEK7xzllEkpd6leZqJKkUm5pLFH5nXZfNc279Robii94bDMXB5rkVAZHWUGKQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB9740

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IE1vbmRheSwgQXVndXN0IDI1LCAyMDI1
IDEwOjQzIFBNDQo+IFRvOiBQZW5ueSwgWmhlbmcgPHBlbm55LnpoZW5nQGFtZC5jb20+DQo+IENj
OiBIdWFuZywgUmF5IDxSYXkuSHVhbmdAYW1kLmNvbT47IEFuZHJldyBDb29wZXINCj4gPGFuZHJl
dy5jb29wZXIzQGNpdHJpeC5jb20+OyBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4
LmNvbT47IHhlbi0NCj4gZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gU3ViamVjdDogUmU6
IFtQQVRDSCB2NyAwNC8xM10geGVuL2NwdWZyZXE6IGFkZCBtaXNzaW5nIGRlZmF1bHQ6IGNhc2Ug
Zm9yIHg4Ng0KPiB2ZW5kb3INCj4NCj4gT24gMjIuMDguMjAyNSAxMjo1MiwgUGVubnkgWmhlbmcg
d3JvdGU6DQo+ID4gU2luY2Ugd2UgYXJlIG1pc3NpbmcgZGVmYXVsdCBjYXNlIGZvciB4ODYgdmVu
ZG9yLCB0aGVyZSBpcyBwb3NzaWJpbGl0eSAoaS5lLg0KPiA+IG5ldyB2ZW5kb3IgaW50cm9kdWNl
ZCkgdGhhdCB3ZSB3aWxsIHJldHVybiBzdWNjZXNzZnVsbHkgd2hpbGUgbWlzc2luZw0KPiA+IHRo
ZSB3aG9sZSBjcHVmcmVxIGRyaXZlciBpbml0aWFsaXphdGlvbiBwcm9jZXNzLg0KPiA+IE1vdmUg
InJldCA9IC1FTk9FTlRSWSIgZm9yd2FyZCB0byBjb3ZlciBkZWZhdWx0IGNhc2UgZm9yIHg4NiB2
ZW5kb3IsDQoNClR5cG86IC1FTk9FTlQNCg0KPiA+IGFuZCBhZGQgZXJyb3IgbG9nDQo+DQo+IFJl
cXVlc3RlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPiAob3IgU3VnZ2VzdGVk
LWJ5OiBpZiB5b3UgbGlrZSB0aGF0DQo+IGJldHRlcikNCg0KQWNrDQoNCj4NCj4gPiBTaWduZWQt
b2ZmLWJ5OiBQZW5ueSBaaGVuZyA8UGVubnkuWmhlbmdAYW1kLmNvbT4NCj4NCj4gUmV2aWV3ZWQt
Ynk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4NCg0KVGh4DQoNCj4NCj4gSmFuDQo=


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 05:26:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 05:26:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093856.1449229 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqmCf-0003he-PO; Tue, 26 Aug 2025 05:26:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093856.1449229; Tue, 26 Aug 2025 05:26: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 1uqmCf-0003hX-MV; Tue, 26 Aug 2025 05:26:41 +0000
Received: by outflank-mailman (input) for mailman id 1093856;
 Tue, 26 Aug 2025 05:26:41 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XUfI=3G=oracle.com=lorenzo.stoakes@srs-se1.protection.inumbo.net>)
 id 1uqmCe-0003hQ-7D
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 05:26:41 +0000
Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com
 [205.220.177.32]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3bd4ee04-823d-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 07:26:36 +0200 (CEST)
Received: from pps.filterd (m0246630.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57Q32aCV020052;
 Tue, 26 Aug 2025 05:25:39 GMT
Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com
 (phxpaimrmta03.appoci.oracle.com [138.1.37.129])
 by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 48q42t3gh4-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 26 Aug 2025 05:25:39 +0000 (GMT)
Received: from pps.filterd
 (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1])
 by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2)
 with ESMTP id 57Q46Ijf005024; Tue, 26 Aug 2025 05:25:38 GMT
Received: from nam10-bn7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on2073.outbound.protection.outlook.com [40.107.92.73])
 by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id
 48q439911y-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 26 Aug 2025 05:25:37 +0000
Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16)
 by SJ5PPF6A2C0CCA1.namprd10.prod.outlook.com (2603:10b6:a0f:fc02::7a4) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Tue, 26 Aug
 2025 05:25:33 +0000
Received: from DM4PR10MB8218.namprd10.prod.outlook.com
 ([fe80::2650:55cf:2816:5f2]) by DM4PR10MB8218.namprd10.prod.outlook.com
 ([fe80::2650:55cf:2816:5f2%5]) with mapi id 15.20.9052.019; Tue, 26 Aug 2025
 05:25: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>
X-Inumbo-ID: 3bd4ee04-823d-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=corp-2025-04-25; bh=vel8oNyOvO1AThqNzm
	0oD3U2ao4nt7bMAEj6wH8VeCo=; b=MN2U7dYDIkGnX5zpgk4JWB+EHZX5mXVfoJ
	Xz6dliaXVIDXlQaO6unrdnZV3PAouzDlg1hO1LUxFQDaul+ndGk11lidx2LfOitX
	dfcgtFrW4UFX658YgWzjGETVYhPbijEwNq18P7NjGMG7j58JMG4MWZ7yO0rnnY1Q
	izqpMNlf+Rkhc4N1hzB2ydGMxuze2EiNRVppADtqjrtRAuiv25ULB2B4rVefIfiM
	ta8GETxO51wr4y3fV1DiHkpJVl0TCmDmp3r0NbpHH2ukyI2dBCHIPh+Go6IBzTPr
	CNEGaEF3w/QHo1UooXWkFUToIOr12N0zWBbt5fduKv6iF9YIxisA==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xNqh44ppN8hBVHP4hTGaAqzfNEM6NSEgAzRljzG9KraSzoiLICYKz2yGuUYorJmacqlMumD/ywt1LRNfLZpnsVp3G97j6f0GojLnkDMP5nHHiJ9GHmxKt5GDmlRfvn+qZAQr1uPk3CjDIJ2sNs9fMwbUK42Q8WJx8J4owiP/6Ndb+K+kkRPVp2FPedt2+anR7gXMT4+8E3IG6UN7w7C5lP6sB0AfvTHIwnl9PM8FCmwHWUDLygc4E6t+yewXk2UtAj0Ox5VAupYKd4GBtj81hN4AHEbJyfuXZX4C3d56szxofbLINLRBCpSRH7MgzoRjYSzeJHuhJtXeYr8Qsic5vg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=vel8oNyOvO1AThqNzm0oD3U2ao4nt7bMAEj6wH8VeCo=;
 b=CDURQt3PEEiv/6ge8UUyC81A0u4mHt7ctLZLEw5ZQwrfABLKCX4qaEwPjYwta6BAtwPwAjGPtSdSjtqDzk/dSvARZ/GAvH8ptb8cLuTfge5drll+jIbqIlbpZIsgcNuYlmEL5iGZSEPf8uba1j5z0Ytuu14kFyuMbXNMrX9vgIXVZJ8lltJWGMPR2Ux8bpTn4dhotL5vRsbk3dc7Yopexd6oHYeuFqb4i1O7sAPkZ60gqjQV4X8/mgeuSUXfgWj0BzThzI9Hg+f1dpdRnCLSeX2J1TKowjfb0mtxO+Hp3gO8Mj7+bRVvWtwGQTWVKs4W3AjcuDvWEkIC9p0SQ4fqww==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=vel8oNyOvO1AThqNzm0oD3U2ao4nt7bMAEj6wH8VeCo=;
 b=eU1AdqZEsyMez0RhJ+5wiW1YXMKwmaH1/KYafAPzgL2EPY39SlfSm1Sarp6EGyGl5zVk4/cSLBC5f4IF1qnN+QozQ4iCm9AnIIM0xnJ1/1s3v8AAuJy+t0s9tNXY8GKNPOKRiRNqLB0KPxUZCnu6x0MQgaZJJ9zV0sZcMloi15U=
Date: Tue, 26 Aug 2025 06:25:27 +0100
From: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
To: David Hildenbrand <david@redhat.com>
Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org,
        xen-devel@lists.xenproject.org, linux-fsdevel@vger.kernel.org,
        nvdimm@lists.linux.dev, linuxppc-dev@lists.ozlabs.org,
        Andrew Morton <akpm@linux-foundation.org>,
        Madhavan Srinivasan <maddy@linux.ibm.com>,
        Michael Ellerman <mpe@ellerman.id.au>,
        Nicholas Piggin <npiggin@gmail.com>,
        Christophe Leroy <christophe.leroy@csgroup.eu>,
        Juergen Gross <jgross@suse.com>,
        Stefano Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
        Dan Williams <dan.j.williams@intel.com>,
        Matthew Wilcox <willy@infradead.org>, Jan Kara <jack@suse.cz>,
        Alexander Viro <viro@zeniv.linux.org.uk>,
        Christian Brauner <brauner@kernel.org>,
        "Liam R. Howlett" <Liam.Howlett@oracle.com>,
        Vlastimil Babka <vbabka@suse.cz>, Mike Rapoport <rppt@kernel.org>,
        Suren Baghdasaryan <surenb@google.com>, Michal Hocko <mhocko@suse.com>,
        Zi Yan <ziy@nvidia.com>, Baolin Wang <baolin.wang@linux.alibaba.com>,
        Nico Pache <npache@redhat.com>, Ryan Roberts <ryan.roberts@arm.com>,
        Dev Jain <dev.jain@arm.com>, Barry Song <baohua@kernel.org>,
        Jann Horn <jannh@google.com>, Pedro Falcato <pfalcato@suse.de>,
        Hugh Dickins <hughd@google.com>, Oscar Salvador <osalvador@suse.de>,
        Lance Yang <lance.yang@linux.dev>
Subject: Re: [PATCH v3 08/11] mm/memory: convert print_bad_pte() to
 print_bad_page_map()
Message-ID: <9ad69d4f-69b7-4998-9639-4e8f679a2d9d@lucifer.local>
References: <20250811112631.759341-1-david@redhat.com>
 <20250811112631.759341-9-david@redhat.com>
 <923b279c-de33-44dd-a923-2959afad8626@redhat.com>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <923b279c-de33-44dd-a923-2959afad8626@redhat.com>
X-ClientProxiedBy: MM0P280CA0071.SWEP280.PROD.OUTLOOK.COM
 (2603:10a6:190:8::25) To DM4PR10MB8218.namprd10.prod.outlook.com
 (2603:10b6:8:1cc::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DM4PR10MB8218:EE_|SJ5PPF6A2C0CCA1:EE_
X-MS-Office365-Filtering-Correlation-Id: 7bd7c327-1663-42c1-1010-08dde460fa72
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|7416014|366016|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?+gCPB7wfPttl2fyFzUxsLqFDQCmusK3YYA+5MoDnIOe3CxxoQa81hHdDpShE?=
 =?us-ascii?Q?/M5MxssTrL0nooiiahgRwvSGNFFfJiZd1iSm1pOdHMzA/tMvwGToKN0od217?=
 =?us-ascii?Q?nwelXR1CsFaNsIXyFOGo+b3VnJu0cBOnTI2AdkD6qz6Fm8oaNwU5DFYlqeut?=
 =?us-ascii?Q?8S7/TtQa/jMn4lDTtYXIWq7Py7yZqTMYsHSaVlwIIxD7RoARL8t721yGRdiB?=
 =?us-ascii?Q?oaImAOqEnrIYUFIPfGW6h03Sx83suTRwtUdlVyS7Md6d9kow7eSHHbdrhSte?=
 =?us-ascii?Q?/IbD+cuNl62Nr3RxOrg57/4u75Qm2CNxE1+HtuuUCqUjYMBCZ0USmQ+GL/I0?=
 =?us-ascii?Q?eckogydF5XXOeIy3mUDIdNG77k8Bo06bcn2kYMzw0f0P7m/Wb19Fj8zhyxFt?=
 =?us-ascii?Q?NvQeaX8y1S8nYmm+35OLZwhAvnOMGItGxg1L47yqebMdcrhuopsHnVH+i65K?=
 =?us-ascii?Q?TpiZJeVHYSU5emLkvF1eine0oBd4Ze6xmo1DuD8hjmamlwaLRF74Od3C7WNV?=
 =?us-ascii?Q?PqoJtt8gML3JkfiTAlPZJTIJUPS6hpHLE528oAYFdysvP2TGPijO5OSd9MTr?=
 =?us-ascii?Q?NUvHvKswQCBC/aLpKFuwOhzBONDV5aE04j5nj4YLgd801SwcnngmY4SJ3qt/?=
 =?us-ascii?Q?rgsq/eyOWtAGwsVROYPD2SYmgHclj+Cls38F/GZUe1fnQYu4b+OiGphWu2OL?=
 =?us-ascii?Q?Ci7zdwDS9CjKTpeucsTTt0dM1A9L/MVi7jQ9RMLtVhkDMTEMYtqeyBATR/gz?=
 =?us-ascii?Q?k7vAmIZfRvajoI5axTfXpUDZ/BG4wc7+kmdEVbRT0yjj5AiE/2CClbhxNMRU?=
 =?us-ascii?Q?ab8BhkJgm3V++s1+FHH+d8MWCC1tzak8k61YngXe2cDehEjVIdJO6aMekk0g?=
 =?us-ascii?Q?oY+4VzoIVIgjcxtpmcJwKoOcFEqY+EH6jST6+NKUnfnpGS5yps+IEfE442Ki?=
 =?us-ascii?Q?ZYUcwkCmaDQjhvWF3TaC/FQAfNYskgUS9rQQ18lDMIqcZE0mIy8eGeNvjgqB?=
 =?us-ascii?Q?+jd+fsImwkR/y3GKFDlwVkD+nnAI7OI/utZUGAFDUQi7/+qEHw7/Fi1lzkVb?=
 =?us-ascii?Q?VRVIVvxCEeQsPhhqXNaGFiuhPJMHRyEiQJ5YeHPiKzVzqc3uM+ZResun6bmq?=
 =?us-ascii?Q?HvxCRqP/cO/JQWlwzL87/5lQ9RhGrTU0h3G+nHmZDrfQxMUdyAMovtbJK/mK?=
 =?us-ascii?Q?k6FX/lNH5Qs/A8aVPBZpGDUNhrx21FdRrb44Z9YJu8OCPOOOio52ZYwbmWDo?=
 =?us-ascii?Q?+KJGt6e3T6KF0dJHLgopgfZg1LXgev+1qFAycXgcER0i2CvhW7aTGLx4IcI0?=
 =?us-ascii?Q?PTEZadS+HYgcWqNiFBw8WvOujhN5McH0FCiYES7Yul4yHcA2ZGkM2o+iGk2h?=
 =?us-ascii?Q?0RQ69hykqHAtCsWKqRLGhl1A7ff0l9L4iP7pNusrThgmtGR51A=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR10MB8218.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?pLkVBv97j0z2VIJFADwwACSdrZOxzNCKOn7BFx+E53zTzkixDPLxN7e8AJrG?=
 =?us-ascii?Q?46pamtfm/0dSqypTHEZf5Uj8ySNh8JbbYpRAS6eTk5p3NxewkVI5Xh8DYVxG?=
 =?us-ascii?Q?mqCq8HKbytp6EyWrYNdDFu4E92fWJMGbqI+3CfCz+1hCfKn0bV5UKV4L77ok?=
 =?us-ascii?Q?KRgw8mlKxtpsf4KWgljK1dD9e2RalsdJXNCJxKdiOZvQR7qJw0hRBNLcyVS6?=
 =?us-ascii?Q?hO3ClzoFhsbyIQMQcIzbnpnoSdMLATPWgqrvC3MKakHlIbMIcuO3BHAvn3Z5?=
 =?us-ascii?Q?iNYcxbQLFXl3xUUt497/lsSHarLa/PnXQN1aioURYtYt4LW57yRA8JP/rlvW?=
 =?us-ascii?Q?GlQmtfANlQZU5YOOdkJWOutvMPZ5142e3atyz7xcd7RH4aCM+atUGHyXB5jT?=
 =?us-ascii?Q?luF9EkbNHkdqHVK8suIqt/loNTGxfslN0E5iGviNX/wNsZ4OMJD7g9eAE64j?=
 =?us-ascii?Q?NLdAy1ChLbNFpzrii8ZNc8lfgAR94PV/UYQZi3ZtKVhG8xLGz/EKDML27Ax0?=
 =?us-ascii?Q?pKBm5mpg6WJV7Y2Sz+aLWCAYo6g9Hnir61u84zJ3IO3l1ZZmGfRHA0Zv71GA?=
 =?us-ascii?Q?LVr0+ex1qKQSceKv2Jxs6uZQs+oFcfShmzWT9e/Z2jImIGPoEPjJqcEASTwd?=
 =?us-ascii?Q?YeqnHJsiyC87vqD9AdHZ7x0v/109CGQKKi8vZaxAoRH2Vin6uvlUpMwPnTKU?=
 =?us-ascii?Q?54wBcuNeGbLKh8CbshvxS7f1IN2IcqI0W7aGwg3LvsAb42a+qgoPrjLQEzmN?=
 =?us-ascii?Q?Sa+WRbzcEAXYbfQJ+a/vUJ1k9wvPNcUb5WhBDMtRic57sZYK5WT4/hvXKOzk?=
 =?us-ascii?Q?4q9wpOFLuRiyZejBXUPqC5aDl9/PP6dP9MXPaQBDwV75tOcQ6rsY0LNokuvJ?=
 =?us-ascii?Q?UwWaNJVQupxE90tObf9XSulTdfncCOB+KBQVpYvTui7t9S32YY6xtCsXyKIL?=
 =?us-ascii?Q?7/OBF35W+FZT+Iw2fSIgD5t30qa3MpcNM4MyzfEmNZqop/PhZbu+ntWT/m0l?=
 =?us-ascii?Q?5HG4dTxHFQvIFWVr1dg3aAwSsRCI7LAb3O0vet9KZCpJzgros30HBbzEhObE?=
 =?us-ascii?Q?vXPovShcKJ6qMpO1y8pqpshBfjnbF/++wyIQqDPxvjrUKHY6vXgaqOZRLqNb?=
 =?us-ascii?Q?vXf0oE8rJy0yASZI0YmNoUi/yMTMAIBVkAL1tPEY7POmQn48mYtshIIA7kIm?=
 =?us-ascii?Q?KkqRyzG1Nvq+0OJ1AZKxBkCYsvbFtSTM6Rwb8KEGyBFgxwZ2yweoZKJ+R1kn?=
 =?us-ascii?Q?dadt+Yfjt4rDzzap2/c06V255ylga/u2ZqgafqNJh7IdH2x642xJZpEJ37Rr?=
 =?us-ascii?Q?vUX022P9SZZ0z/CK1vWxPVAU5TA3PeVYl5HTX06HDhYIvQF2AiSW93b9UxCC?=
 =?us-ascii?Q?6Rc7QAMNw6akAig9yvT9VcJa0IL2SXhiYhPyp/NinTh2v4RIgSbWCUFTSZ1Z?=
 =?us-ascii?Q?yb6FJHQhCd9cKVsnlmtrrw+WMbPNJ4iZsYuLVCOgnu0MpDgVzvxXX7mYxKP0?=
 =?us-ascii?Q?UHbJD5XxE1OikEHLVK54OY48J55h9NsJL2T/zXfpOEPySB904JEDCoDo82gc?=
 =?us-ascii?Q?3BgWSNeNP/OoQTdvO47iikkIbY0eHPunIMmU4+ZbDDuK4MwygQo3w0YUVfEq?=
 =?us-ascii?Q?dA=3D=3D?=
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	WauXxZH2ODbyo7kO5C050ZM+b+EntlqzdGC7LmSdvpMwhwmZYDW9UsitBeFLfknZIVst5/0nC1TQsvCBgxcCkzAGz52kIl1G3Im5Ypl8yRHtxYBUguqOumPzGBwgUOWz2GKUIEdxeELhvfC/2nIHfqi8vTpgBIewF8sS1eIFNvXNUqyr2bmfPyx9gFwDqe9DA7SVccCqq8PRaWUjd5u1h8D36NF5de51cGsaBCpGpWb2z1Vxoz3xbPU6uvBMceJ/24obatLEspRhnM7oxNKfM1lI0lQYDdIYLBXVJpM0bP+Ln0Nsu+8zfL18NuFhUhjUVjGX+HJV+iMjhB60JkLLNHyrh1nAX5e//ZXG+Si5fWPhSuE7X33QhMUg+ArzCfs06AzAo5WsimMriyjxqsp+zKJPJREl2AVd5e0xwKqgcNNr1rqIxQj8L27dnmkCJpm4fOnyK8aclLAGk+IpQMmKsu1rufaS33iyQG6pk/R54PnuP4aQkevyxyxfsD9AlcRqO0vgB0EP5oWmlSFPjYfzV+mAA+lSxFNrRd7f/DtOQ3e7ZkGwphBHwalVdf4sEEpWuAvv6CAKL5EGUS5pBuragPB9JBIRURpADrwKuEHIb5E=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7bd7c327-1663-42c1-1010-08dde460fa72
X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Aug 2025 05:25:32.8304
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: aX9LEStoGpIY5pSwPrl1a2B0guOoXOszxxYN7ebDItmrnITDWhLry6kv8fH/G8Sb4MuOqgR2C8WKHZXdWKG7zH+07IvtjPLdwNzAVrdjhhk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPF6A2C0CCA1
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40
 definitions=2025-08-26_01,2025-08-26_01,2025-03-28_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0
 mlxlogscore=999 spamscore=0 suspectscore=0 malwarescore=0 mlxscore=0
 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2508110000 definitions=main-2508260046
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODIzMDAxMyBTYWx0ZWRfX3S3OAvTgs1se
 ICIx1k+JpHiUk/hDSK6YHfxaqVCLX8l+6yeLurDm3fftk/zGWsy+yRT1Qyw5PT5SuJZxVs+j2Ym
 aOVrTq74IYthO6XIqYTNJnEiW95lPaRpZbjwmMjr/+HRSk2pe6/u5dL7kKihzB04cVOdEyC57VY
 FWZi9oUxlTo2lW0Ef+q7naVW1VaH7e2z4Ny5IhO+SqAj02a3r3lPgoi+t1TZXZ+ziz44PaTGXR9
 OcpFeA40BXPW7h005DfLIrLi3GfaAVtuXt+kCHbZNPVIzKcKZ6aRcoBtJr8oDjg7iRKCmqo0V6m
 av5fMcgPJRyX4BDT5ZyvMlhNVuL0q7I0Gcpi3ALZdTi6ycUU7dX4bxlWbE7EXX71rcmHhZUQlEW
 KcJ71Y7v
X-Proofpoint-ORIG-GUID: b_wT2ChkV3roPJ_4cMWLcFcgvB7ftvTv
X-Authority-Analysis: v=2.4 cv=RqfFLDmK c=1 sm=1 tr=0 ts=68ad4553 b=1 cx=c_pps
 a=WeWmnZmh0fydH62SvGsd2A==:117 a=WeWmnZmh0fydH62SvGsd2A==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19
 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19
 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=kj9zAlcOel0A:10
 a=2OwXVqhp2XgA:10 a=GoEa3M9JfhUA:10 a=20KFwNOVAAAA:8 a=7_9BownVNW7tUeIFdskA:9
 a=CjuIK1q_8ugA:10
X-Proofpoint-GUID: b_wT2ChkV3roPJ_4cMWLcFcgvB7ftvTv

On Mon, Aug 25, 2025 at 02:31:00PM +0200, David Hildenbrand wrote:
> On 11.08.25 13:26, David Hildenbrand wrote:
> > print_bad_pte() looks like something that should actually be a WARN
> > or similar, but historically it apparently has proven to be useful to
> > detect corruption of page tables even on production systems -- report
> > the issue and keep the system running to make it easier to actually detect
> > what is going wrong (e.g., multiple such messages might shed a light).
> >
> > As we want to unify vm_normal_page_*() handling for PTE/PMD/PUD, we'll have
> > to take care of print_bad_pte() as well.
> >
> > Let's prepare for using print_bad_pte() also for non-PTEs by adjusting the
> > implementation and renaming the function to print_bad_page_map().
> > Provide print_bad_pte() as a simple wrapper.
> >
> > Document the implicit locking requirements for the page table re-walk.
> >
> > To make the function a bit more readable, factor out the ratelimit check
> > into is_bad_page_map_ratelimited() and place the printing of page
> > table content into __print_bad_page_map_pgtable(). We'll now dump
> > information from each level in a single line, and just stop the table
> > walk once we hit something that is not a present page table.
> >
> > The report will now look something like (dumping pgd to pmd values):
> >
> > [   77.943408] BUG: Bad page map in process XXX  pte:80000001233f5867
> > [   77.944077] addr:00007fd84bb1c000 vm_flags:08100071 anon_vma: ...
> > [   77.945186] pgd:10a89f067 p4d:10a89f067 pud:10e5a2067 pmd:105327067
> >
> > Not using pgdp_get(), because that does not work properly on some arm
> > configs where pgd_t is an array. Note that we are dumping all levels
> > even when levels are folded for simplicity.
> >
> > Signed-off-by: David Hildenbrand <david@redhat.com>
> > ---
> >   include/linux/pgtable.h |  19 ++++++++
> >   mm/memory.c             | 104 ++++++++++++++++++++++++++++++++--------
> >   2 files changed, 103 insertions(+), 20 deletions(-)
> >
> > diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h
> > index bff5c4241bf2e..33c84b38b7ec6 100644
> > --- a/include/linux/pgtable.h
> > +++ b/include/linux/pgtable.h
> > @@ -1966,6 +1966,25 @@ enum pgtable_level {
> >   	PGTABLE_LEVEL_PGD,
> >   };
> > +static inline const char *pgtable_level_to_str(enum pgtable_level level)
> > +{
> > +	switch (level) {
> > +	case PGTABLE_LEVEL_PTE:
> > +		return "pte";
> > +	case PGTABLE_LEVEL_PMD:
> > +		return "pmd";
> > +	case PGTABLE_LEVEL_PUD:
> > +		return "pud";
> > +	case PGTABLE_LEVEL_P4D:
> > +		return "p4d";
> > +	case PGTABLE_LEVEL_PGD:
> > +		return "pgd";
> > +	default:
> > +		VM_WARN_ON_ONCE(1);
> > +		return "unknown";
> > +	}
> > +}
>
> One kernel config doesn't like the VM_WARN_ON_ONCE here, and I don't think we
> really need it. @Andrew can you squash:

Out of interest do you know why this is happening? xtensa right? Does
xtensa not like CONFIG_DEBUG_VM?


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 05:54:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 05:54:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093872.1449239 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqmdM-0007sR-Uq; Tue, 26 Aug 2025 05:54:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093872.1449239; Tue, 26 Aug 2025 05:54: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 1uqmdM-0007sK-Rl; Tue, 26 Aug 2025 05:54:16 +0000
Received: by outflank-mailman (input) for mailman id 1093872;
 Tue, 26 Aug 2025 05:54:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ofj+=3G=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1uqmdK-0007sE-TG
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 05:54:15 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20616.outbound.protection.outlook.com
 [2a01:111:f403:2412::616])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1038075e-8241-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 07:54:02 +0200 (CEST)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 MN0PR12MB6176.namprd12.prod.outlook.com (2603:10b6:208:3c3::9) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9052.15; Tue, 26 Aug 2025 05:53:55 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d%7]) with mapi id 15.20.9052.019; Tue, 26 Aug 2025
 05:53: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>
X-Inumbo-ID: 1038075e-8241-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=H8VWQB2+ZpltoTFerdR0LlfSbabv0OWDL+N0hzyI3kI6MRHwUGTNYURJkEtcksurtQqeWOql8lYEV617jsZPg8QMuzcxtE42GTTvbgpDDr9c+yDLHm1JPXAQc3QzesguF5wG35J2SeUXV/moyZhEavJDsWoUnuv8wTB7dIyRTtxjrT6QoyWOD5y25nScghzPnqIFYxe93zYmAHeODDGDZSL+8dp9giUYAlO1B6DgZ0Kn8Hw/xHyrCAuZf0lbhLeK5JDH/z/x+FlLcdDl4u8AViitZLMNdHoaWqEQXFxUlH8pm28tnoD+mWc6Aso4veo8S5OLHOgv7/6Jb9+gsVSgyA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=9/pvuoUkyIetcbeS94/7fQhgXtwCEExSJ2XyU+rjjrQ=;
 b=QU+Xt4CRZYX9uzTtv7pGqjPjDugIq46GKXV/RZWJ9Jy5rSTRJpRBlc8lcn04onrBX5tTGZ0fLagz0CCK3GSe1S4OEy3u2L9iNkZITfOBiM17PFJPSt899LvmVY5VOJ+FZ+Gb7gNFN7RLl/c0FYHcWcBPC/7VKVPuCbhqvEwIGQtpJFV92BUMnLLA1Yx4saalPlVCP3oc4UeP4ev5lVuUUmw3gO7aoti51AmHMAtAb9Jasqm0xzriklDo8HhlGU0gRnik+RGBktDaIL6mrdaJDdUjpFCEAZtqnJ+M7PP1478SLKcXj0kNvIP1BXkLAPRIvSkfjOpEkDODzJ5I+EdNKg==
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=9/pvuoUkyIetcbeS94/7fQhgXtwCEExSJ2XyU+rjjrQ=;
 b=43c4RCfx1zwIu5YSoMTijjrabTECOrWjsqldxqFuhsbQJt/cDXaKsoIDnsdQno6PfyxuOYWqFwojyWsoj/PvTMGbL4SwdF6NBw7GOZ/DJLWXQSJmDy7dQwFFi+YK7Z3rsX/4wO2poPyuOjyhX2Ca6ndEopLQi4RmU/oPXe1o70g=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Orzel,
 Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v7 06/13] xen/cpufreq: introduce new sub-hypercall to
 propagate CPPC data
Thread-Topic: [PATCH v7 06/13] xen/cpufreq: introduce new sub-hypercall to
 propagate CPPC data
Thread-Index: AQHcE1LptmiQN44PAkOVJ+f0CssQOrRze76AgADdVjA=
Date: Tue, 26 Aug 2025 05:53:55 +0000
Message-ID:
 <DM4PR12MB845136B4B4FA756EC654FE31E139A@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20250822105218.3601273-1-Penny.Zheng@amd.com>
 <20250822105218.3601273-7-Penny.Zheng@amd.com>
 <a4c5e149-828f-4ea9-83e2-79ecc8c56033@suse.com>
In-Reply-To: <a4c5e149-828f-4ea9-83e2-79ecc8c56033@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-08-26T05:53:49.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|MN0PR12MB6176:EE_
x-ms-office365-filtering-correlation-id: ea7595fa-1d4e-4e3d-c9fd-08dde464f15c
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?VUhZaGZqamZuUXpEVmxBQTdLSFdSM2tZRWdiaE92Z1VjdXQ0SnRTSWMxUk9o?=
 =?utf-8?B?Z1ZaRGxvYk54aXI0Z0hWZklRU1VZR2V3WlZHVWhwdzJ2QlB4ak52WVYyU3o1?=
 =?utf-8?B?S2c2K0pUS3RHWmY0WHgyYk1zcytsMldScFlUTGl5NWNtdlVzWDBxM3pmd1VW?=
 =?utf-8?B?YWFiUnNhenREbEFBSFdkeHZWZEl0Uy8zOXV1ZlNVeE5XY1lzOWlTcUIxZWh3?=
 =?utf-8?B?TFY4eEtZZE1VUW5kYzJ3WUZsd3hWS1MzM253eXlxaTBzS0ZuZGo1TXdQK2NM?=
 =?utf-8?B?ekRteHVnd0pXS0VxY3JHM3h0dmQ4T214OExRMW5GZC9NWWoyQlkrc0JKdS9p?=
 =?utf-8?B?NDY5Y2xMN2EzTFpDeTkzWXUzQnpXUVdEMGk0cWxsV0lQbUtZM0YrWThYOC9N?=
 =?utf-8?B?ZHRldytXKys1cU1JZFA0TkwyNDdhVWRwZjFDZm9ENjUwZlZhMXlnaHFZVjJN?=
 =?utf-8?B?bE9HbGYyNkprS2dCMDloOG05L3EzYVJKb0R6bkJ5VHc5ZGxaczlwU0pCdWgv?=
 =?utf-8?B?YTNkU0ZjVkRkVk5DNU1SMkdDcVFPU1N5ME5zVDFFa1dORzJJeENkcWMvTjN4?=
 =?utf-8?B?cDE2Ukh5bFFsNllBRXZZTTZybzgyNkZwTFVXZzVKWUtIT3BUTytFMUtLQXFG?=
 =?utf-8?B?bnlDa1BnMDZUS05MN0lVUDFCQjN5UG1BQkVlaUdRM0txS1dHbGNaVHpTYW1y?=
 =?utf-8?B?MEc1RHB3ajZNUHVzYUhJU3lROG11dEp4WWQyRitiRmUzWlRacXU5OFZId0Rx?=
 =?utf-8?B?SkxOZnA4Z0JtbDZYUkdjTm14UzZMZGR5Yk1XczBQUnc2RmhWNWw0OVliVkMx?=
 =?utf-8?B?cm1TNGV4RHZnUEQ5dVVNQjVmMFd6bUpEVGRIS1dmQnRoaTJwZG1mZlp3SkNn?=
 =?utf-8?B?d3FScTh2MFQyNWhVM0pPOUhweXJ0RlM4Z1FSOUFUY2lKRFRiUnpJVjdLTXgw?=
 =?utf-8?B?Q2RLamdzeDlxYmRxZjBTMG1ERFlGRzlaTGdFb2srcHlNekl3eU4vVm10OTBj?=
 =?utf-8?B?ZDMwTXJ5eTNneSt4S29jNjExR25neGJqTXdaT3dLcFFGV01OK0NZU1ZhWDNV?=
 =?utf-8?B?UjY4N0ZKQ2JEeFNDNjY3VmpZU3RiS0xlQXVLZFBHb0RlZmFaUzFzd3VScFFM?=
 =?utf-8?B?Uk5jNlhEbHlDMG9tRy9HOGtFRUp3TWw0U1M2czFBVUFiQVpVSlJmVmJvUGVy?=
 =?utf-8?B?NVBFSHhTTUl3ZGxkK1V1TGNzc1dXcjNwU3JZZVR2bEsxbkM3Z2ZIUEtSR21V?=
 =?utf-8?B?aTdWMWtqWHRoaDh6S2lJRHhRcEhjdHB6Uy9odXpZVTJ6UXMrVlhKTThIalAv?=
 =?utf-8?B?eDFZem1Tc2Z2Y2RiZlJEQW1ZeFpuWktma2FBSnEyeWRaVGNJN0dFK1krSWtQ?=
 =?utf-8?B?TWg2ZWpHN01Ea2VPS2Q3eld6bStKbEk1ZkpBdDN3SFlackRLSml1Y0xFNlBR?=
 =?utf-8?B?cGszRFFrVTBxc3FRamMxbFR2UHFYanJGbzYrbXcyN1pzL2t0eGZQbnM5b1lq?=
 =?utf-8?B?VWROaFVnYmJtVC9tLzBWYnFlWFRFclRjSzFQbG1ZTG1IWWYxMDRqVzkwT3pN?=
 =?utf-8?B?MnRVUUxwZWd1NXVwVnM4NktPazd4dWROdmM2Z2RxRlVOdUhrVjBuZUg1RnFT?=
 =?utf-8?B?R2duU2tNbk0rNGx4OUt2UHhtdFFoV2RnWFZvSWN4ZHA2RWFwa3A3NVpCelND?=
 =?utf-8?B?OHdOVVRnRG55dFgrYkM3alVYY1Bra0JHNnZ5MVpSZCtQRWZDS05mSGlUVHpB?=
 =?utf-8?B?S3NmZzhlZ2J0OG1jUjNqcTlhNVhDd2lSN2NDK2I3WCtRMm1ITkFwMllEekxL?=
 =?utf-8?B?Qk5FcnJWS2Q4UEtTVHhvNFZMb0tGV3FJMkc3V3BqOWFBVDd4NmpRM0lTRDFN?=
 =?utf-8?B?NHJQUEsrL0w3OFBEb1d3Mks5N0krWjBNcmdPeENmN0tVRnh3YzJ2ZWJIV0Zo?=
 =?utf-8?B?eVJ0TEtoRTk0KzFqdThtME9qVzNrcjY4Z01YclB4WHppamxPNWRCZUIwY1lz?=
 =?utf-8?Q?8FYl/Ho5tKu6mjifkGTKuCXIbHiiIM=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?M3Rya083WEJWdnlFVXBZekFUd1F3RXI5M1cvVFFlVVRLR1lYcEJwY0lxVGNC?=
 =?utf-8?B?YkJpeVFKMmY5blBiNGszNis0U0JZNWk3eW1MdGFZUGl2blFqTVpuK0Mrb0NM?=
 =?utf-8?B?b3lUZTlQVUVsT3ZTVnRLcUsxUDZHSU93dC9JeEZmVHZYUExPMFB4TWZ5Vjlx?=
 =?utf-8?B?RUVSS2h3TXVUOHkzYkpBdFlYdDhYbVV2akR5VHA1ZTAreTd5c09wbEJ1bnZN?=
 =?utf-8?B?WUE0bmcyWGF1TFRMNmhNYW9PUlVwVjRRUmhhV3Rxb1IzV25tQ1M1V2U1ZmFL?=
 =?utf-8?B?R1FzV3RpUkNIWllBTVMwQXVwbUgyMDFBbXNFeE9RZ25nQmhjRzE0OEVSMzdz?=
 =?utf-8?B?WkpqVk9lREJxYnR2NTJGbjlSOXBrbHRYTXpaQVNjWlhMbTlMS3JtZW9KQjFq?=
 =?utf-8?B?aG9SRlV1YnNnU2ZHVEljaGhXYVk0b3Q1L1pZVzhrbEw2Q3ZmeCtoV2hQOXRS?=
 =?utf-8?B?NlhVanRNTUlSYmMrOVk0MWd3SHB6OERnODFDcDdmWVpIMG9kMGkwTzhLSlFw?=
 =?utf-8?B?K25qRktXTXJJZ1hrSHgvQTdSMVlMOFl2b3BROUhyaHhid2VTUlozS1NhYkk4?=
 =?utf-8?B?dmJlcmxUZzJENHBpZVMxaHpvUzloWEcxSkNTUm5ZOVZuZVZ4b1d5WHRpUGtQ?=
 =?utf-8?B?aXVWTitQbm9aU0dBZ2tqblMxSVBqR21YNmc0M3pjb3VxaUg2TU9ObmNVU3VD?=
 =?utf-8?B?b0EzZG14VmkyODIxRkpqcnQ1OHVzcGhadDhwTkRGaVJkWUJqRlF4bURiSGQ5?=
 =?utf-8?B?cmZWL0dkeVhBbVdvK3J2bi94QkVLM3Z2bHlTcnpKbjh3U3FvMDFvRUpjcjhv?=
 =?utf-8?B?RWR4Y01Iak5IVFpkSXQ0QVRGZDdSeHVtV0ttUXY4RVNJTVRyc1FoTGtkYjh2?=
 =?utf-8?B?YnYra1JjMjZwOTFzUTlQU2l6M3luNjNHUmxmVEhIaWM5WDEwVGdQYlVTZDdZ?=
 =?utf-8?B?WXM0cUtScFZkVVZwbFM0K0lFdWVxVjIxaDQ0VzhYTXQ1dGEwQ2FSS0xmMlp2?=
 =?utf-8?B?WVpmTWtnVHhHOXdmSkNwVWtsL2oxcndjdFhROEU2KzZ1eEVMdEo4WGdnSFNz?=
 =?utf-8?B?OEVwVzJaRFMxZXlVV0tRS0U4Z1VnV2RiamR3QUZTcUhkb0xNa1VRTSsvNlVz?=
 =?utf-8?B?SktiMFJOeUhOVUszVWdRZ3AxYlY5dmQ3TWxhbWM4Zjl5cDBZdWpPdUQ4VXRp?=
 =?utf-8?B?MnR3bnpnLzAwTVFqdk5KcDJsZFE4b2hHNGQ0eXpMRXhjWkVJUmQzLzZlNUxD?=
 =?utf-8?B?SkVDRkxUVkI5ZnY5aGhtdm0wWFBoMVp6Umlmc2c1SERLdUVDVlRLNlFZeDFt?=
 =?utf-8?B?L0pLeDlLTzN6cDN2TXRQY1gvMFF5bUVra1ExYU82T3JMdjZLNTlxa1lkTHRK?=
 =?utf-8?B?UHBPekErUCtScXZ5U1JnQkwxdE1RMHU2Q2dZbFp5bWZnQ0RnQm1mUVpybHBz?=
 =?utf-8?B?U0FjT3lleklQY1dhTFEyQ0hZSlRlZEFhamFpWi9MN05VNXQ0TTdEeEN4WFZ4?=
 =?utf-8?B?YjNjdXVwWmwzSHhJeU5WWjhSSVpaSUJUT1Y1YkF0R1hxSXdXb28wN1ZPb09w?=
 =?utf-8?B?ekJ6QWhTU0g4MlZwK1liQ1J5KzBXcHZLNkY5bW9KYWNERGFTUlhrenR3ZzBm?=
 =?utf-8?B?TzFVblc0VmlHdTUrSGhneTJvVm5LVFJSeEl5Q1hjamdOeVVwRXpvQkZncG9G?=
 =?utf-8?B?MEEzb3E4RDY2a0NqZS9Ic1phYjlwTjZPSE5OTi9weTNSb3ZsVnp6Sk01ZE9I?=
 =?utf-8?B?RkVuSFJKWUpzcUdjY0tsUEdHMmZXbUU2U0kzaXkzNjY0bVdtajlGZGF4bWFD?=
 =?utf-8?B?NTJsQkQvdVRwNVpkU0J3ditpd2lGVXZZcXJXQ2tEU3JEVzVsVHlXTEdlWmlI?=
 =?utf-8?B?cWFyZlJNQ2F1YzZKcVIxdFZJOVBXU2grVGUvZnFiYmVKWUt0S1J1c2g4VTg0?=
 =?utf-8?B?NzVmVVQybmZSRUVLZlFqKzdSQThiWVhWNDF1NlZtV3hWSThQMWVySXJ3My9Z?=
 =?utf-8?B?ZW0xeEJKTFpkdERoU1M0ZFFJWFU5N2p1N2J2RUJtQXU5aFhZTm9VeCtpZ2pD?=
 =?utf-8?B?YWpuSzArNzVwZGd3d3Fobmc0Y1kzb08ySEZFVmI5N1FHOHVRaUYycUJ2K3FB?=
 =?utf-8?Q?6wbQ=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ea7595fa-1d4e-4e3d-c9fd-08dde464f15c
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Aug 2025 05:53:55.3181
 (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: 1zq5Yb3foIuKhgtfXOfdCeDE4PxSL2cQ00n80G8JSC313DW77s/MDH403nKUUd7Tfw0PESYw2+ZtQR+ugcxcEA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB6176

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IE1vbmRheSwgQXVndXN0IDI1LCAyMDI1
IDExOjAyIFBNDQo+IFRvOiBQZW5ueSwgWmhlbmcgPHBlbm55LnpoZW5nQGFtZC5jb20+DQo+IENj
OiBIdWFuZywgUmF5IDxSYXkuSHVhbmdAYW1kLmNvbT47IEFuZHJldyBDb29wZXINCj4gPGFuZHJl
dy5jb29wZXIzQGNpdHJpeC5jb20+OyBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4
LmNvbT47DQo+IEFudGhvbnkgUEVSQVJEIDxhbnRob255LnBlcmFyZEB2YXRlcy50ZWNoPjsgT3J6
ZWwsIE1pY2hhbA0KPiA8TWljaGFsLk9yemVsQGFtZC5jb20+OyBKdWxpZW4gR3JhbGwgPGp1bGll
bkB4ZW4ub3JnPjsgU3RlZmFubyBTdGFiZWxsaW5pDQo+IDxzc3RhYmVsbGluaUBrZXJuZWwub3Jn
PjsgeGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0gg
djcgMDYvMTNdIHhlbi9jcHVmcmVxOiBpbnRyb2R1Y2UgbmV3IHN1Yi1oeXBlcmNhbGwgdG8NCj4g
cHJvcGFnYXRlIENQUEMgZGF0YQ0KPg0KPiBPbiAyMi4wOC4yMDI1IDEyOjUyLCBQZW5ueSBaaGVu
ZyB3cm90ZToNCj4gPiAtLS0gYS94ZW4vYXJjaC94ODYveDg2XzY0L2NwdWZyZXEuYw0KPiA+ICsr
KyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvY3B1ZnJlcS5jDQo+ID4gQEAgLTU0LDMgKzU0LDIyIEBA
IGludCBjb21wYXRfc2V0X3B4X3BtaW5mbyh1aW50MzJfdCBhY3BpX2lkLA0KPiA+DQo+ID4gICAg
ICByZXR1cm4gc2V0X3B4X3BtaW5mbyhhY3BpX2lkLCB4ZW5fcGVyZik7ICB9DQo+ID4gKw0KPiA+
ICtpbnQgY29tcGF0X3NldF9jcHBjX3BtaW5mbyh1bnNpZ25lZCBpbnQgYWNwaV9pZCwNCj4gPiAr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGNvbXBhdF9wcm9jZXNzb3Jf
Y3BwYw0KPiA+ICsqY3BwY19kYXRhKQ0KPiA+ICsNCj4gPiArew0KPiA+ICsgICAgc3RydWN0IHhl
bl9wcm9jZXNzb3JfY3BwYyAqeGVuX2NwcGM7DQo+ID4gKyAgICB1bnNpZ25lZCBsb25nIHhsYXRf
cGFnZV9jdXJyZW50Ow0KPiA+ICsNCj4gPiArICAgIHhsYXRfbWFsbG9jX2luaXQoeGxhdF9wYWdl
X2N1cnJlbnQpOw0KPiA+ICsNCj4gPiArICAgIHhlbl9jcHBjID0geGxhdF9tYWxsb2NfYXJyYXko
eGxhdF9wYWdlX2N1cnJlbnQsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN0cnVjdCB4ZW5fcHJvY2Vzc29yX2NwcGMsIDEpOw0KPiA+ICsgICAgaWYgKCB1bmxpa2VseSh4
ZW5fY3BwYyA9PSBOVUxMKSApDQo+ID4gKyAgICAgICAgcmV0dXJuIC1FRkFVTFQ7DQo+DQo+IEkg
dGhpbmsgd2Ugd2FudCB0byBhdm9pZCByZXBlYXRpbmcgdGhlIGVhcmxpZXIgbWlzdGFrZSB3aXRo
IHVzaW5nIGEgd3JvbmcgZXJyb3IgY29kZS4NCj4gSXQncyBFTk9NRU0gb3IgRU5PU1BDIG9yIHNv
bWUgc3VjaC4NCj4NCg0KVW5kZXJzdG9vZCwgSSdsbCBjaGFuZ2UgaXQgdG8gLUVOT01FTQ0KDQo+
ID4gLS0tIGEveGVuL2RyaXZlcnMvYWNwaS9wbS1vcC5jDQo+ID4gKysrIGIveGVuL2RyaXZlcnMv
YWNwaS9wbS1vcC5jDQo+ID4gQEAgLTkxLDcgKzkxLDkgQEAgc3RhdGljIGludCBnZXRfY3B1ZnJl
cV9wYXJhKHN0cnVjdCB4ZW5fc3lzY3RsX3BtX29wICpvcCkNCj4gPiAgICAgIHBtcHQgPSBwcm9j
ZXNzb3JfcG1pbmZvW29wLT5jcHVpZF07DQo+ID4gICAgICBwb2xpY3kgPSBwZXJfY3B1KGNwdWZy
ZXFfY3B1X3BvbGljeSwgb3AtPmNwdWlkKTsNCj4gPg0KPiA+IC0gICAgaWYgKCAhcG1wdCB8fCAh
cG1wdC0+cGVyZi5zdGF0ZXMgfHwNCj4gPiArICAgIGlmICggIXBtcHQgfHwNCj4gPiArICAgICAg
ICAgKChwbXB0LT5pbml0ICYgWEVOX1BYX0lOSVQpICYmICFwbXB0LT5wZXJmLnN0YXRlcykgfHwN
Cj4gPiArICAgICAgICAgKChwbXB0LT5pbml0ICYgWEVOX0NQUENfSU5JVCkgJiYgcG1wdC0+cGVy
Zi5zdGF0ZV9jb3VudCkgfHwNCj4NCj4gSSBmZWFyIEkgZG9uJ3QgdW5kZXJzdGFuZCB0aGlzOiBJ
biB0aGUgUFggY2FzZSB3ZSBjaGVjayB3aGV0aGVyIG5lY2Vzc2FyeSBkYXRhIGlzDQo+IGxhY2tp
bmcuIEluIHRoZSBDUFBDIGNhc2UgeW91IGNoZWNrIHRoYXQgc29tZSBkYXRhIHdhcyBwcm92aWRl
ZCB0aGF0IHdlIGRvbid0DQo+IHdhbnQgdG8gdXNlPyBXaHkgbm90IHNpbWlsYXJseSBjaGVjayB0
aGF0IGRhdGEgd2UgbmVlZCB3YXMgcHJvdmlkZWQ/DQo+DQoNCldlIGFyZSBpbnRyb2R1Y2luZyBh
bm90aGVyIGNoZWNraW5nIGxpbmUgZm9yIENQUEMgaXMgYWN0dWFsbHkgdG8gYXZvaWQgTlVMTCBk
ZXJlZiBvZiBzdGF0ZVtpXToNCmBgYA0KICAgICAgICBmb3IgKCBpID0gMDsgaSA8IG9wLT51Lmdl
dF9wYXJhLmZyZXFfbnVtOyBpKysgKQ0KICAgICAgICAgICAgICAgIGRhdGFbaV0gPSBwbXB0LT5w
ZXJmLnN0YXRlc1tpXS5jb3JlX2ZyZXF1ZW5jeSAqIDEwMDA7DQpgYGANCldlIHdhbnQgdG8gZW5z
dXJlICJvcC0+dS5nZXRfcGFyYS5mcmVxX251bSIgaXMgYWx3YXlzIHplcm8gaW4gQ1BQQyBtb2Rl
LCB3aGljaCBpcyB2YWxpZGF0ZWQgYWdhaW5zdCBwbXB0LT5wZXJmLnN0YXRlX2NvdW50Lg0KV2Ug
aGF2ZSBzaW1pbGFyIGRpc2N1c3Npb24gaW4gaGVyZSBodHRwczovL29sZC1saXN0LWFyY2hpdmVz
Lnhlbi5vcmcvYXJjaGl2ZXMvaHRtbC94ZW4tZGV2ZWwvMjAyNS0wNi9tc2cwMTE2MC5odG1sDQoN
Cg0KPg0KPiBKYW4NCg==


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 05:55:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 05:55:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093880.1449250 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqmeD-0008Lz-AJ; Tue, 26 Aug 2025 05:55:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093880.1449250; Tue, 26 Aug 2025 05:55: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 1uqmeD-0008Ls-5K; Tue, 26 Aug 2025 05:55:09 +0000
Received: by outflank-mailman (input) for mailman id 1093880;
 Tue, 26 Aug 2025 05:55:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=n+o/=3G=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqmeC-00089E-1e
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 05:55:08 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 37da7e60-8241-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 07:55:07 +0200 (CEST)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-61c74fc408bso2626315a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 22:55: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
 4fb4d7f45d1cf-61c78e49ca4sm2268079a12.47.2025.08.25.22.55.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 22:55: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>
X-Inumbo-ID: 37da7e60-8241-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756187706; x=1756792506; 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=bf0IrJTm2ybitjzYhaXX3ohuiWGKtvalB20dqkLHQbs=;
        b=OzQo+/sl2B64zD6mCntMTrRra9EIbX0jk2Rl6RZlBXWQ1XHhYvHtQZ2EnVQFTj6UpK
         G5B9n0YAAQZBltUgQnHoum43IpwA8jX1kwHYRMc0BjUZRZxDTYQlIHpvU6PZSeJWxGjo
         Xxd+u3x1YtRGYO1XGEQII1Csz5r7J7MzA/TXWOlE776aNZpKL0HhAzcLgpp2MXTOcxr6
         Q3Tg1CPcdxHz02m3f1SPu8eKTKJaSRjQqEZIF/1nPX474MLHAr0iW75iIG1piDJKJmE9
         6Mfs6NEh/SSFpSkbRKLRGXr3mNxebTpuKa8Io6OPrdLaXPWy2ZcjZPw07fNlq/aXucVQ
         PnCA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756187706; x=1756792506;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc
         :content-language:references:to:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=bf0IrJTm2ybitjzYhaXX3ohuiWGKtvalB20dqkLHQbs=;
        b=vJ3FSCnYZfS9NXlYVcd0zo5YVqwBsQKB469lvWtcYioryy6a3Mu5bGo92wimxqzwMa
         yxFpgcd/320bRvOS5TBesxLsTKs45Gfu0bvw2enIgLAmPRQ/GBDQ8baICxPDltBy+wQg
         6QAJsxZByFG6Pu8pqINPFR4zBCnhRjS44J4+UQ0mlllo2wUMQVBnHat5rTefEkrwHs/h
         odSnfkCRxGTOoRrhXTLwNc66baLgIBWlgB8Lof3ygkLwfhgmrGAPum53FV1ud8FdFlzV
         lv/70judr47hG+TTkRHDIAlmXYCn9IlA0vtES8zMbfg1loeGsiswaXRrv0Tg6hHJnpxB
         5mKQ==
X-Gm-Message-State: AOJu0Yxj3YqPjSNFUjzeaNkZTchoZ0eaILQlRkXVzk18RB66BVrNdVae
	pPq7PLBizYPzcPNYMn630DDKYMe7YE/YyiWs7VH9cIYpQzJ8EMhEa9FMm1Rx3w336w==
X-Gm-Gg: ASbGncunL1gWntrz6yWYYjIg6hekamA/QTYB/LHSaz9WMHbAbNvAVbrIT9Tyr+AtmHa
	EreiEpaX0wj/cabQYy5c3J+ZZbyOl5OpN1qF7f1HeUgBB/HMKh1beK5nfMFjinNzJ4UU40kJYiq
	5uhFsKhyhZkX/Y6wMCPN8aEpxRv15DYZoH8wu8daXGMjUBWmFLSoJtJHOKZYAdEfe3OU1BwiauV
	LKeB4Ir2GvK6rPDIF5T3PV1xlXA4L6WY3PimouSmD9/CISTSIf/Mx6hgH6Ex8Qb2iV7NMFxtpCQ
	twajT7rVOmoSxrg8MxcT3OiuhG2BhAJczt5F9WlGhec+aiIUgHlxpyTWt7upXOP+ppO54xWyf1A
	xgZpzieCcOUi7vnhTME9CooaIl/1fHLrWBOe9qxT7anpSWrOWtzY34ZPluCOrqmabTqp4AbYixZ
	bRowI+xynrYwoVx7Y8Xw==
X-Google-Smtp-Source: AGHT+IHa1Cle6qKYAj8T+fk7nRkSxLn1UrWvOaKdox9Q0HFOoNX4ZjJAUn5J/xFLjhEp3eHf0pDviQ==
X-Received: by 2002:a05:6402:4413:b0:618:4044:67a7 with SMTP id 4fb4d7f45d1cf-61c1b453362mr12183643a12.5.1756187706521;
        Mon, 25 Aug 2025 22:55:06 -0700 (PDT)
Message-ID: <c243d9b1-385f-49a3-9c50-507250f7bb68@suse.com>
Date: Tue, 26 Aug 2025 07:55:05 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [Reminder] Feature Freeze is Fri Aug 29, 2025
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <07fc7122-d0ac-4dbe-800d-89086a07005b@gmail.com>
Content-Language: en-US
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Community Manager <community.manager@xenproject.org>,
 "committers@xenproject.org" <committers@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: <07fc7122-d0ac-4dbe-800d-89086a07005b@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 25.08.2025 17:50, Oleksii Kurochko wrote:
> Hello community,
> 
> Iâ€™d like to remind everyone that the Feature Freeze deadline is approaching,
> and we still have some outstanding requests from the community for patch series
> to be merged into 4.21:
> 
> 1. Enable guest suspend/resume support on ARM via vPSCI [1]
> 2. Introduce SCI SCMI SMC multi-agent support [2]
> 3. Introduce eSPI support [3]
> 4. FRED work: [4], [5], possibly others (?)
> 5. Introduce CONFIG_DOMCTL [6]
> 6. xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE [7]
> 7. Some other patch series I missed.

"amd-cppc CPU Performance Scaling Driver" has been pending for quite a while,
and really ought to make it imo. I'm inclined to say even if an exception was
needed. Parts have gone in, I'm about to commit more parts, but whether
everything would be in by Friday I can't predict.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 05:58:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 05:58:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093890.1449259 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqmht-0000Wh-PK; Tue, 26 Aug 2025 05:58:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093890.1449259; Tue, 26 Aug 2025 05:58: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 1uqmht-0000Wa-Kq; Tue, 26 Aug 2025 05:58:57 +0000
Received: by outflank-mailman (input) for mailman id 1093890;
 Tue, 26 Aug 2025 05:58:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=n+o/=3G=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqmhs-0000WT-Qu
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 05:58:56 +0000
Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com
 [2a00:1450:4864:20::52b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bf9973b0-8241-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 07:58:54 +0200 (CEST)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-6188b72b7caso6964800a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 22:58: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
 4fb4d7f45d1cf-61c316f4e42sm6274935a12.28.2025.08.25.22.58.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 22:58: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>
X-Inumbo-ID: bf9973b0-8241-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756187934; x=1756792734; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=wt3/dzT3rgtyFBF1/8cIv/VlLMj9U6X3hDTyouxVFpk=;
        b=CD4wGEhTsmiAt11SjYjPxLMjwINQ0opz/kQTrLSOgSDWEgUvABrgHs+9n3Y7Sc3NL8
         TgjHAuo1Wi45LfcbqoX1CzlKSsxqikd12cfLWwyKT0HjS7QGWeuxtLhe1xD2zcB7YIwG
         2p7J+s2oJwxz2N5WLsuWxEVx8EIHWxR9dBx6TgIVsbpckeF6GZBdXmZZsCnhqtE6DCe3
         9/9cRpo3kOM1TMNCDx0+2SN+D0hOqD/mzfjRwbfEQK7zW3CCvgiHlV5gOnzS/0/JRNEt
         UN1dHN7f4OS7cdzsgEVD0OW1vTF/oo29GlUqT7bg7jDVpvttduTShXO8fbRE0a9bUg94
         SIEg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756187934; x=1756792734;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wt3/dzT3rgtyFBF1/8cIv/VlLMj9U6X3hDTyouxVFpk=;
        b=ptOdkh1lnPZuHSddxDkztRFSmoMLfvbIwYxwX/HQJTWbx8r8VmsTrrlItknSGpCZfu
         K2cXXmaTCQigXxKsuG6kbXcYgTv2sRb5tRispS+BOvgJhWy7ri+WP0lJ3YLfddKxnvz6
         jPIXzl26IA5qeD6U7JaIIaGgNe5NUoybG4aeU/QaAlLIioYgt7+FVR/kNiUHlNIFFrXW
         Xy0jpdJkKGbEhguK6zpG5Ycn0M/mW0Km32LE9BLOKEY5vqW6mOsSET15u2jAo71hst7b
         AwB5BALTb6N8e3eQDvRCk75P821DQvheS59AImqWBy4HRY0vCDzOvXYzbKCs+BvYFsxw
         Sn5w==
X-Forwarded-Encrypted: i=1; AJvYcCUB5TPrF1Du22GcWVl47HsSjUG/CisAHwEyIzSnqqFktww4UB+HSTth7dRcwdm45Tuxfm2B4tXl8m8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwZiRMhg0eVklJ6hpjtYCEiaA/JWitAMgsLYSpZD4ViVsovWgFf
	syN3wHw9CzXveMbnKtNoM0y5zUgD6gvxken6mnR5qX3bcildXyiqqkQK520UO/JiNg==
X-Gm-Gg: ASbGncuydMnuta4KPt2Ckx1rbvXlL8IyozAdQL61UPLA94ALYUf8nJYpETelnqM2P35
	url2AWhZfX4kIvK/yQBk/GAE4II/Srf0EduE1r9Xx89+ctpQbx3t23YRH0aZj0GW84bcS7T+pBA
	2wPV8GbGjuPP4uEFSQ18cRQ7Jz7NwxOGQx9M1cIMwI/uruajWN2J3vVJYqGS0UgEZdMeJL2gP38
	q5vzRqgFUvhfMxQIMNeH0A0gYbRH4a8aHrlg6t6obHoHWiX0sAXc5grigRDYSu9VRcslZolVRFC
	y9xAzBPEqdVrGpR4pdAC5rGNxxwsJxJJYqR1t7dDPwxXYZ2A7aqbLBkSD5T14THsuFpHyfBxgix
	q/WJUBDv+l+jtX3xfTGJ4CzgCyDpJRrZt8x5/0N9Uh63/zTZ6SdHl8W2z3ci0RBD7SAUrr7JcK0
	6/g3Wn6Pw=
X-Google-Smtp-Source: AGHT+IEH/RIt0o7c7WjgbjbQ45O8W2DsGs3eyxlzdPhSRqai7z8a8S2QPwNVBTVXlBd4H7lZLySTBQ==
X-Received: by 2002:a05:6402:13d2:b0:61c:6fd2:9700 with SMTP id 4fb4d7f45d1cf-61c6fd29962mr4639327a12.24.1756187934257;
        Mon, 25 Aug 2025 22:58:54 -0700 (PDT)
Message-ID: <927867b4-0cda-4600-b880-e5b1d9c2fbbf@suse.com>
Date: Tue, 26 Aug 2025 07:58:53 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 06/13] xen/cpufreq: introduce new sub-hypercall to
 propagate CPPC data
To: "Penny, Zheng" <penny.zheng@amd.com>
Cc: "Huang, Ray" <Ray.Huang@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 "Orzel, Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20250822105218.3601273-1-Penny.Zheng@amd.com>
 <20250822105218.3601273-7-Penny.Zheng@amd.com>
 <a4c5e149-828f-4ea9-83e2-79ecc8c56033@suse.com>
 <DM4PR12MB845136B4B4FA756EC654FE31E139A@DM4PR12MB8451.namprd12.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: <DM4PR12MB845136B4B4FA756EC654FE31E139A@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26.08.2025 07:53, Penny, Zheng wrote:
> [Public]
> 
>> -----Original Message-----
>> From: Jan Beulich <jbeulich@suse.com>
>> Sent: Monday, August 25, 2025 11:02 PM
>> To: Penny, Zheng <penny.zheng@amd.com>
>> Cc: Huang, Ray <Ray.Huang@amd.com>; Andrew Cooper
>> <andrew.cooper3@citrix.com>; Roger Pau MonnÃ© <roger.pau@citrix.com>;
>> Anthony PERARD <anthony.perard@vates.tech>; Orzel, Michal
>> <Michal.Orzel@amd.com>; Julien Grall <julien@xen.org>; Stefano Stabellini
>> <sstabellini@kernel.org>; xen-devel@lists.xenproject.org
>> Subject: Re: [PATCH v7 06/13] xen/cpufreq: introduce new sub-hypercall to
>> propagate CPPC data
>>
>> On 22.08.2025 12:52, Penny Zheng wrote:
>>> --- a/xen/arch/x86/x86_64/cpufreq.c
>>> +++ b/xen/arch/x86/x86_64/cpufreq.c
>>> @@ -54,3 +54,22 @@ int compat_set_px_pminfo(uint32_t acpi_id,
>>>
>>>      return set_px_pminfo(acpi_id, xen_perf);  }
>>> +
>>> +int compat_set_cppc_pminfo(unsigned int acpi_id,
>>> +                           const struct compat_processor_cppc
>>> +*cppc_data)
>>> +
>>> +{
>>> +    struct xen_processor_cppc *xen_cppc;
>>> +    unsigned long xlat_page_current;
>>> +
>>> +    xlat_malloc_init(xlat_page_current);
>>> +
>>> +    xen_cppc = xlat_malloc_array(xlat_page_current,
>>> +                                 struct xen_processor_cppc, 1);
>>> +    if ( unlikely(xen_cppc == NULL) )
>>> +        return -EFAULT;
>>
>> I think we want to avoid repeating the earlier mistake with using a wrong error code.
>> It's ENOMEM or ENOSPC or some such.
>>
> 
> Understood, I'll change it to -ENOMEM
> 
>>> --- a/xen/drivers/acpi/pm-op.c
>>> +++ b/xen/drivers/acpi/pm-op.c
>>> @@ -91,7 +91,9 @@ static int get_cpufreq_para(struct xen_sysctl_pm_op *op)
>>>      pmpt = processor_pminfo[op->cpuid];
>>>      policy = per_cpu(cpufreq_cpu_policy, op->cpuid);
>>>
>>> -    if ( !pmpt || !pmpt->perf.states ||
>>> +    if ( !pmpt ||
>>> +         ((pmpt->init & XEN_PX_INIT) && !pmpt->perf.states) ||
>>> +         ((pmpt->init & XEN_CPPC_INIT) && pmpt->perf.state_count) ||
>>
>> I fear I don't understand this: In the PX case we check whether necessary data is
>> lacking. In the CPPC case you check that some data was provided that we don't
>> want to use? Why not similarly check that data we need was provided?
>>
> 
> We are introducing another checking line for CPPC is actually to avoid NULL deref of state[i]:
> ```
>         for ( i = 0; i < op->u.get_para.freq_num; i++ )
>                 data[i] = pmpt->perf.states[i].core_frequency * 1000;
> ```
> We want to ensure "op->u.get_para.freq_num" is always zero in CPPC mode, which is validated against pmpt->perf.state_count.
> We have similar discussion in here https://old-list-archives.xen.org/archives/html/xen-devel/2025-06/msg01160.html

Indeed I was thinking that we would have touched this before. As to your reply:
This explains the .state_count check (which imo wants a comment). It doesn't,
however, explain the absence of a "have we got the data we need" part. Unless
of course there simply isn't anything to check for.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 06:02:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 06:02:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093902.1449268 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqmlR-0002P0-9t; Tue, 26 Aug 2025 06:02:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093902.1449268; Tue, 26 Aug 2025 06:02: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 1uqmlR-0002Ot-7F; Tue, 26 Aug 2025 06:02:37 +0000
Received: by outflank-mailman (input) for mailman id 1093902;
 Tue, 26 Aug 2025 06:02:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=n+o/=3G=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqmlQ-0002On-67
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 06:02:36 +0000
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com
 [2a00:1450:4864:20::52a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 42368b24-8242-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 08:02:34 +0200 (CEST)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-61c38da68ddso6233655a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 23:02: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
 4fb4d7f45d1cf-61c3119f79asm6234342a12.5.2025.08.25.23.02.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 23:02: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>
X-Inumbo-ID: 42368b24-8242-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756188153; x=1756792953; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=e2D3Ik8oeWKgtEBhd0j1kwXLHVZINI3+lCbAZDVuOBE=;
        b=aMvY4yniQ6/XFmsw5WNuAv+Tnyxu6+I/++aLRklwAi38toH1iinn51sf8UzaP3tKwR
         Sxb5XZ5YAfvuZiqQmfQk0KplIN9w6gN23uuDAXTFwY3Qn3Ip2BBMBXj7UmRNF2VLbKsH
         u/bzVG8u1PTQJBdmjtNetin/VkwNGBbrEhm5lcdJm6wcdKER1zrYjXy+qm99IsvT7Nwc
         od1Q8MX2YEEyDlz0Upj2PyEklz8Tq3MqFYmLNRrQixxh58OvOHNi44AL0mPvZCT0txJL
         uGEqv3lQiD8+HJf+7dn4GNq/NwYwhrRbKhXXZUuc95tgsUlVWU7nsV+pB8BI7WdFKcPu
         3Trg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756188153; x=1756792953;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=e2D3Ik8oeWKgtEBhd0j1kwXLHVZINI3+lCbAZDVuOBE=;
        b=ATJ2uXHVu/+/SBuO+JWODQQnS+92rx11b+8lV+6Y9X1CZD5iv8RERi5Vu8n38r7IXu
         BPknBFM5HOZ/yGkiBumwjklHdmGJXK3dgWKWQK87vXm2qnq2tpw7jCdZ6Q/h81/58DOa
         E1QGT4L1GpFnQh2FALL3xzgVlTNy0JK9FrgJEiJV8Hoj0A6j3F8foemvKbru8R8G+f38
         rdA5C4nlXk5iXaSgh4me7NY+h893noLVP8YTGDAoeaLxzU51mC8dPfnFI5KAwRvpfU16
         z2IYUtgJyd03Xu+APN8BdRV0ha+ek2mYddnk2X+UBNKZ9nKgDeteWVxoSwusQvm4Ri+o
         8PsQ==
X-Forwarded-Encrypted: i=1; AJvYcCUvrseKA7NIE5KL2qyGE2EdNKdczBjF/hP5vXpb4aRKFLeyNZAluhSFcgAtyHm1SlPofc06SULtiVc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw0ITkcRQQhWjNrsZTxuzOlLN5RVLSilsuDI/N4w2WdPQyna8T7
	926A7Nm4b2AoY/nin5xZeqF81hoaifZWNlvWI/hR7t7TumSjnNobB5hruyW2Cu+bKEUW1tE1/pI
	Ec2k=
X-Gm-Gg: ASbGncsXtPbrKTTDf1weilzQB+VUC39UNBSmXn2jiB5DKYknNROJRy4+CyE6DD/AvGL
	mmqy2XKBY4+qH9KX+/UiiFMHs6B8gCnhMVubJ9E6nCsQ6153Mkr6TRXMIQal/Q8pIVs3o7gz1EO
	ez7JBtCaYfDEHuWipcmbfX85Y9+xyDKwCGHnVvoWJqFsGhpshgL0UKO8PQ1/v9WScWU6Dh8OGb/
	yRrlFvLLN9huz8skG3jrY3u5I3vDWC8xRDJRRlfwTihHp3rp0RNr7mPJY8oNS8WVu+90DkysjnX
	t/bzZa6gM9JRtGBhHoq42MD4HFdV8+X1UGwTMIr8yPDN0duf4XKLo/DwxXEhqq97kNFyR6pdeZW
	kOFHEqfURdDsR9+lDPtyDxAdGNbJPwcGTLVb9f4H84m1vtdlgkpeQc7IW1qfXWnnVd3/mMsx+ho
	ItZt9mg2Y=
X-Google-Smtp-Source: AGHT+IGD6meTPqZTHrXRIwqv3rUt2o/TCVrmAhPJg85LrqLaNR44o5bp84QEccgEdIGAUKtDr+JjRQ==
X-Received: by 2002:a05:6402:350a:b0:61c:3847:680d with SMTP id 4fb4d7f45d1cf-61c38476a28mr7811552a12.31.1756188153271;
        Mon, 25 Aug 2025 23:02:33 -0700 (PDT)
Message-ID: <2d8f188f-f3b0-4906-85c8-835948fc6603@suse.com>
Date: Tue, 26 Aug 2025 08:02:32 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] misra: add deviation of Rule 17.7
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <ad15582787e675fadf92502f85041c3232749a99.1756112701.git.dmytro_prokopchuk1@epam.com>
 <53d5cee3-9001-49a2-9da2-e56950a77683@suse.com>
 <83267937-938d-43d8-ba2c-a07d6adb93a9@epam.com>
 <330f8ee8-9fcd-40e4-96c0-ac126b047070@suse.com>
 <37bb8530-c9e4-4ad4-8959-d1f13316a0fd@epam.com>
 <bd88b7d0-92aa-45c9-8b8e-730bc7edc7b3@suse.com>
 <7729c3cd-c1d6-4abf-8e44-293702f47545@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: <7729c3cd-c1d6-4abf-8e44-293702f47545@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.08.2025 19:33, Dmytro Prokopchuk1 wrote:
> 
> 
> On 8/25/25 17:12, Jan Beulich wrote:
>> On 25.08.2025 15:27, Dmytro Prokopchuk1 wrote:
>>>
>>>
>>> On 8/25/25 14:07, Jan Beulich wrote:
>>>> On 25.08.2025 12:58, Dmytro Prokopchuk1 wrote:
>>>>> On 8/25/25 13:30, Jan Beulich wrote:
>>>>>> On 25.08.2025 11:05, Dmytro Prokopchuk1 wrote:
>>>>>>> MISRA C Rule 17.7 states: "The value returned by a function having
>>>>>>> non-void return type shall be used."
>>>>>>>
>>>>>>> Deviate functions like 'memcpy()', 'memset()', 'memmove()', 'snprintf()',
>>>>>>> 'strlcpy()', 'strlcat()', as they return a value purely for convenience,
>>>>>>> their primary functionality (e.g., memory or string operations) remains
>>>>>>> unaffected, and their return values are generally non-critical and seldom
>>>>>>> relied upon. Update 'deviations.rst' file accordingly.
>>>>>>
>>>>>> How come snprintf() is among this set? Its return value isn't quite just
>>>>>> for convenience, imo.
>>>>>
>>>>> Yes, snprintf()'s return value isn't just for convenience. The deviation
>>>>> justification is primarily based on the fact that its return value is
>>>>> rarely used in the Xen source base. Most callers of snprintf() don't
>>>>> care about return value. So, snprintf() is in this list.
>>>>>
>>>>> Maybe separate wording is required for the snprintf() ?
>>>>
>>>> Minimally. Personally I don't think it should be deviated globally.
>>>
>>> There are approximately 230 instances of snprintf() being used without
>>> checking its return value (across ARM and x86) in around 20 different
>>> source files. Deviation each of them could be complicated.
>>
>> My grep yields somewhere between 50 and 60 hits in xen/, among them about 15
>> in xen/tools/kconfig/, which I expect we can ignore. I also didn't mean to
>> suggest to deviate them all individually. Some may actually want to use the
>> return value, and I wouldn't be surprised if this ended up fixing a bug or
>> two.
> 
> For memory-related functions (memcpy, memset, memmove), ignoring the 
> return value is almost always safe, so I propose to leave these 
> functions in the patch, remove snprintf, strlcpy, strlcat so far, and
> precisely check usage of the last functions.
> 
> Is it OK?

Fine with me, yes.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 06:07:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 06:07:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093913.1449280 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqmqT-00031N-S7; Tue, 26 Aug 2025 06:07:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093913.1449280; Tue, 26 Aug 2025 06:07:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqmqT-00031G-O3; Tue, 26 Aug 2025 06:07:49 +0000
Received: by outflank-mailman (input) for mailman id 1093913;
 Tue, 26 Aug 2025 06:07:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=n+o/=3G=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqmqS-00031A-Bi
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 06:07:48 +0000
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com
 [2a00:1450:4864:20::636])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fc4a5452-8242-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 08:07:46 +0200 (CEST)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-afcb7322da8so837527466b.0
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 23:07: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
 a640c23a62f3a-afe97a4b200sm165447866b.72.2025.08.25.23.07.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 23:07: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>
X-Inumbo-ID: fc4a5452-8242-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756188465; x=1756793265; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=k5kk1Tcr25CccVYYtAS7h+H6GJgs/bb1m0Ca0LaCQ+4=;
        b=Of5DV53yIbZZAGIzfgNGTIS2N7hS3aFVchs4JadtWdE0oO8XthDmGgPZz2rm9g6df0
         VEdxuchDx6fxlLPbPYy96bzPnHdeaeXMPfokx8twiaOordW1GNx+ktouw92ni0AfsQnx
         RpBn//yRxEsSLfCveFlzSUUZzfePyCW3CJjc8ZGDlakvvELpJsRTJOYLuO0/JlUUbdkC
         a2AAU6qbdAJjqjco9utJtVMbUfBk3FfnXOt0P9EhbCejHAiugjlIiWRevrsnez9SvUbK
         XUzlwZzviLb20ItXibrs6fLezjynuZc2QfwK841iFuzHU35gRkcRFZaTFgldYCwuf2U4
         cPLQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756188465; x=1756793265;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=k5kk1Tcr25CccVYYtAS7h+H6GJgs/bb1m0Ca0LaCQ+4=;
        b=Rc7hj4xUw9o/x0TErFMI5OW5TEImA8i8vZVovMKWD/vkmIHyqowe0TkKkxDxzBh9ss
         3MEmfZW6B0ouTCfv7tAXhNqdTGMvyIqP7sX0r0Ne05Sdrno7zpcMNmlRFS2v3pwkRJWB
         jBUzoDjBr2x8edYBl5+gVlKZ0oJiA0j8gKyVZnigk3KvF5BD8CtRqLLB+M0jTURflxst
         VNSalDaLHSR3gU6Caeprf2dcOWcAr63nFgGe1aNogA+X44uq/41Y+MjktYAXyEU9HJN+
         10Cc029ed45+/g743lw2md7lHBvIIO4lCZ+nh7Zmo3+utPVUJ+aHzrd67tGhZpV3CG5t
         r9Ew==
X-Forwarded-Encrypted: i=1; AJvYcCXjnb0OBl24QDrwN9hSqSwhYTgvLIWzcVFUSH59PHsG7WFb1mbRhbqKf50icjIsBJAU1HICr43Ao/E=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz/xXSIBUJTX0fhIc5/IWIFiIlD6UAjIHcaDye4/TbVUtv1YN1Q
	bA4G10+iZBB/hdpMDhFBC0X9GxmJeI7FLOAzdF0/iauAT0RR0zkli4jr5yZmE9k0JA==
X-Gm-Gg: ASbGncsS10KlZR3oE1wNI7d7o3vmYKdTCRupPZmejtX/ekU6Bwln+56eOiiLm340GIA
	CHrxJnxYfSHRxn9a7ISq8h3DHa72T287PYOaNgvC+uBKXruw9kGJJIHVEnfXhqowc0Smbr5cOcT
	2FSMTYChEBrgnziUtC5jrsFn0PJHA5oMEI3wmMLxOsIwlBuqB+uk3VOXtE2Kes31BNTPq4LoZCv
	fkIt4V6QcXOtyyI7BylkL0pSP8Fwe8mjro+Xxn0UQCy8F/uUPEp23QgiTdoqthYeH+vOiCKMU5o
	Y1lXZiLdQ/qb7lTVGYelXQ8j9BKQxQm96EsxyniEfkWexbsa93v9SxpQm6Ktp+Wy8qdT+B6twEn
	2ohp69viT93Vcfru2hijjTog82E0ik+Ir8SUH4RERXpRoaf8WThtiVlAtwBZUKgKOnIDISAxMI1
	O61wcTpOY=
X-Google-Smtp-Source: AGHT+IHquKA9S+9W42S3myELSgaO3vFznzDkPt+TEXYVPFE2ieSRtbWzQ+SGSTYwRvuuy6HnGqhCtQ==
X-Received: by 2002:a17:907:7203:b0:afe:ae1b:bf17 with SMTP id a640c23a62f3a-afeae1bd560mr64117166b.3.1756188465527;
        Mon, 25 Aug 2025 23:07:45 -0700 (PDT)
Message-ID: <1af4778e-8a2a-4fa5-a41d-0142947da137@suse.com>
Date: Tue, 26 Aug 2025 08:07:44 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] xen/irq: Delete the pirq_cleanup_check() macro
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
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" <xen-devel@lists.xenproject.org>
References: <0959802e4fa73b848b2b9e47c57c6daf062e9630.1756149543.git.dmytro_prokopchuk1@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <0959802e4fa73b848b2b9e47c57c6daf062e9630.1756149543.git.dmytro_prokopchuk1@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.08.2025 21:22, Dmytro Prokopchuk1 wrote:
> From: Andrew Cooper <andrew.cooper3@citrix.com>
> 
> MISRA Rule 5.5 objects to a macro aliasing a function, which is what
> pirq_cleanup_check() does. The macro was originally intended to ensure
> the condition 'if (!pirq->evtchn)' is always checked before invoking
> the function, avoiding errors across call sites.
> 
> There are only a handful of users, so expand it inline to be plain
> regular C. Doing this shows one path now needing braces, and one path
> in 'evtchn_bind_pirq()' where the expanded form simplies back to no
> delta, as it follows an unconditional clear of 'info->evtchn'.
> 
> While this complies with MISRA, it shifts the responsibility to
> developers to check 'if (!pirq->evtchn)' at call sites.
> 
> No functional changes.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
> ---
> Changes in v3:
> - added back wording from v1, originally written by Andrew.

Thanks. Just to mention, though - you copied it verbatim, including the
typo (simplifies). Can surely be adjusted while committing, if and when
somebody acks this. (I think it has become sufficiently clear that I'm
not going to.)

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 06:17:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 06:17:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093923.1449289 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqmzM-0004p3-Kb; Tue, 26 Aug 2025 06:17:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093923.1449289; Tue, 26 Aug 2025 06:17: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 1uqmzM-0004ow-Hf; Tue, 26 Aug 2025 06:17:00 +0000
Received: by outflank-mailman (input) for mailman id 1093923;
 Tue, 26 Aug 2025 06:16:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=n+o/=3G=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqmzL-0004oq-0S
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 06:16:59 +0000
Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com
 [2a00:1450:4864:20::62d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4523258a-8244-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 08:16:57 +0200 (CEST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-afcb731caaaso780936666b.0
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 23:16: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
 a640c23a62f3a-afe79fba62dsm407958766b.100.2025.08.25.23.16.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 23:16: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>
X-Inumbo-ID: 4523258a-8244-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756189017; x=1756793817; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=8Sj7mj0iJbPH4QA+xVe5gk29okmodNFvFLcv4WQbNBc=;
        b=P2fNvg38O0zA/SP1xS6QBm2z8Uggp0zBwHVYORBVtZ4D7MvukFqV6SCNfDEWa55ZQs
         ScUckEdqHzO3EboHX8IFdxrbsBrd9q7MEtP8FVIHaUSeiYSa9FXKI5Nb8ovnCgoYw8cl
         6KR1YGWstQ3+4i6UISuUpUP5L9BhARMmZn5DPkMJI9rgNrgfuGG7hICeWIbCaS3tUCCm
         tMrnrQb2H7SBbZF6vwt+F9L3BbJqZkfIp2n7TkMxSA2dNc4Fqu4aSxYnnpC34+bnjkUO
         pf8GtlK6H+DNkDLVcT49d3Z5y0F/a0P/fMNKsqXsVQHCe6eBgNf1w/QGICuB1dWROYF2
         cDpQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756189017; x=1756793817;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8Sj7mj0iJbPH4QA+xVe5gk29okmodNFvFLcv4WQbNBc=;
        b=dTPoNpBYIoH3VIRqflg8x89PQkViOm8uOnGAXGIIaBlFAK63xjkKAzuBH4E2AB10AA
         N8ptmbFWaJYTSAZw5w35TeSpDeVKJ4IsSvQFFtGVeZwyufwH6yc0iFidK64emerAlr5/
         acVWCwky5ZNCFTFULBJaTldHsfJY62SVgzE3vZp2jxIFy5Ir/k4AwJulHjUPWdyOjlTY
         6RL/jfQ2lN0J9JTcPqWxsGnhS+8LMwjt576CT0xzDUvKFsgq7WqyunVN+wCZU0HNs5Qx
         HE6KpP/K5ND8yF8HSORuvytXKwaqgSRwWGUyAAbMtiAnlOC0aD74ch9cxNPL6yzQ/yQL
         B9Xw==
X-Forwarded-Encrypted: i=1; AJvYcCUTFjMRhjYCmuk/r+fidqbtCL2zZpVUKtMgyQJQugP5xQu+Mqes00Oxi7A4wfd7WRjR2ilCFUHsG/I=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw0suiUz55vKanqEsdwoOc89lblCdnwQBS5nkanhqZekqjjUnuU
	5gsZBiXCXlD9ytRpZlCZxdA0IC2JpIqdXXXL8JzLFQv4XHeUKePmw3P9/i6i1egd5w==
X-Gm-Gg: ASbGnctx9FhXrveuW8OmAVu03dGQSprlYaxwYYP9T4Ao/PKHl7zbK4hpcSn1KBdymrt
	6xk5o0sZJ260+xnwoOur3sFKgl8W0x3zBqyqg+EJ56qca6LKZH8bPTkc+OF14QYv5+E8pLiSMdI
	zyYlVT4XRulvMrHJB7WksXYOe9u5Fzv0yuygWXp63t1J+NcOT6MaD866cnpGYtrW5iDFZvGyaHX
	Qd+b76UEnq1CK8gH8PYE20eL4vb9fpD+a3051r2T2Sky2anLIPxjpvePszVzPQhtY3VEydjjnMY
	DLn69i8rbVAtlnHjXz4XpFwE/WWnG0f6xqrjzyByf7ZK97xFDdExbaHNk6VQx9mmWkcUISXk/rM
	XznSuM/Cs7UQphjZanqnLN+2GzvfH92FsUg99YuyWbzgdh3gVL2JygkC6ryU5xq+qj8VlYaGrxc
	my/EAwfYo=
X-Google-Smtp-Source: AGHT+IEyjjwal51cRcwUoJND0R1YHlbKjI/bUo6y/RTDDxOMPu9wFgMPXJFF26g27+tsrvSOKmdu8Q==
X-Received: by 2002:a17:907:7f94:b0:ae3:63fd:c3af with SMTP id a640c23a62f3a-afe28fbe149mr1458968866b.16.1756189017254;
        Mon, 25 Aug 2025 23:16:57 -0700 (PDT)
Message-ID: <2aafbace-3aa2-4f58-8f6c-2815cd2315ad@suse.com>
Date: Tue, 26 Aug 2025 08:16:56 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: MSI-X cleanup(?) issue with passthrough after domU restart
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel <xen-devel@lists.xenproject.org>
References: <aK0St0oUkJzR9lO0@mail-itl>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aK0St0oUkJzR9lO0@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 26.08.2025 03:49, Marek Marczykowski-GÃ³recki wrote:
> Hi,
> 
> I'm hitting an MSI-X issue after rebooting the domU. The symptoms are
> rather boring: on initial domU start the device (realtek eth card) works
> fine, but after domU restart, the link doesn't come up (there is no
> "Link is Up" message anymore). No errors from domU driver or Xen. I
> tracked it down to MSI-X - if I force INTx (via pci=nomsi on domU
> cmdline) it works fine. Convincing the driver to poll instead of waiting
> for an interrupt also workarounds the issue.
> 
> I noticed also some interrupts are not cleaned up on restart. The list
> of MSIs in 'Q' debug key output grows:
> 
>     (XEN) 0000:03:00.0 - d22 - node -1  - MSIs < 41 42 43 44 45 46 47 >
>     restart sys-net domU
>     (XEN) 0000:03:00.0 - d24 - node -1  - MSIs < 41 42 43 44 45 46 47 48 >
>     restart sys-net domU
>     (XEN) 0000:03:00.0 - d26 - node -1  - MSIs < 41 42 43 44 45 46 47 48 49 >
> 
> and 'M' output is:
> 
>     (XEN)  MSI-X   41 vec=b1 lowest  edge   assert  log lowest dest=00000001 mask=1/H /1
>     (XEN)  MSI-X   42 vec=b9 lowest  edge   assert  log lowest dest=00000004 mask=1/HG/1
>     (XEN)  MSI-X   43 vec=c1 lowest  edge   assert  log lowest dest=00000010 mask=1/HG/1
>     (XEN)  MSI-X   44 vec=d9 lowest  edge   assert  log lowest dest=00000001 mask=1/HG/1
>     (XEN)  MSI-X   45 vec=e1 lowest  edge   assert  log lowest dest=00000001 mask=1/HG/1
>     (XEN)  MSI-X   46 vec=e9 lowest  edge   assert  log lowest dest=00000040 mask=1/HG/1
>     (XEN)  MSI-X   47 vec=32 lowest  edge   assert  log lowest dest=00000004 mask=1/HG/1
>     (XEN)  MSI-X   48 vec=3a lowest  edge   assert  log lowest dest=00000040 mask=1/HG/1
>     (XEN)  MSI-X   49 vec=42 lowest  edge   assert  log lowest dest=00000010 mask=1/ G/1
> 
> And also, after starting and stopping the domU, `xl pci-assignable-remove 03:00.0`
> makes pciback to complain:
> 
>     [ 1180.919874] pciback 0000:03:00.0: xen_pciback: MSI-X release failed (-16)
> 
> This is all running on Xen 4.19.3, but I don't see much changes in this
> area since then.
> 
> Some more info collected at https://github.com/QubesOS/qubes-issues/issues/9335
> 
> My question is: what should be responsible for this cleanup on domain
> destroy? Xen, or maybe device model (which is QEMU in stubdomain here)?

The expectation is that qemu invokes the necessary cleanup, but of course ...

> I see some cleanup (apparently not enough) happening via QEMU when the
> domU driver is unloaded, but logically correct cleanup shouldn't depend
> on correct domU operation...

... Xen may not make itself dependent upon either DomU or QEMU.

What I find puzzling (assuming I can take the quoted output plus your annotations
verbatim) is that the device apparently uses multiple vectors, and we're leaking
exactly one of them. Also, since reboot is generally nothing else than shutdown
and immediate relaunch, is there a leak also after shutdown? I ask because it
might help to know which of the multiple vectors is leaked (first, last, random).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 06:17:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 06:17:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093929.1449299 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqmzp-0005HY-T7; Tue, 26 Aug 2025 06:17:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093929.1449299; Tue, 26 Aug 2025 06:17: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 1uqmzp-0005HR-QB; Tue, 26 Aug 2025 06:17:29 +0000
Received: by outflank-mailman (input) for mailman id 1093929;
 Tue, 26 Aug 2025 06:17:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=SRrM=3G=redhat.com=david@srs-se1.protection.inumbo.net>)
 id 1uqmzn-0005G3-Ol
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 06:17:27 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.133.124])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 52d2f07b-8244-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 08:17:21 +0200 (CEST)
Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com
 [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-48-aUBSZEKJPX-AEqLi1MQdlQ-1; Tue, 26 Aug 2025 02:17:19 -0400
Received: by mail-wm1-f70.google.com with SMTP id
 5b1f17b1804b1-45a256a20fcso28785015e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 25 Aug 2025 23:17:18 -0700 (PDT)
Received: from ?IPV6:2a09:80c0:192:0:5dac:bf3d:c41:c3e7?
 ([2a09:80c0:192:0:5dac:bf3d:c41:c3e7])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b6619b53asm9727285e9.1.2025.08.25.23.17.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 25 Aug 2025 23:17: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>
X-Inumbo-ID: 52d2f07b-8244-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1756189040;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=Xk7Km5HTVMpJ1b1NXcCsWrU5BXZBqRoDajCCwh1oGmE=;
	b=biJr6aci7fN8j25yHr1p0PUE5A0aF6f/xPFadYx/jOfrrZSrS94Kozj9JZo/wdfvP2utRK
	A/H3z0uAQkvGiqMnBRpb39LDi+Nf6+Wdt4i6kY4TI8r+C8fvMctDE1pG+mwVIIPsPMiGM6
	QqIUVHHJohFT5URC1jiPfhzLVRrQPn8=
X-MC-Unique: aUBSZEKJPX-AEqLi1MQdlQ-1
X-Mimecast-MFC-AGG-ID: aUBSZEKJPX-AEqLi1MQdlQ_1756189038
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756189038; x=1756793838;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :from:references:cc:to:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=Xk7Km5HTVMpJ1b1NXcCsWrU5BXZBqRoDajCCwh1oGmE=;
        b=pC44eRua/D2s6fkuvZ1S2P6bTMBzsO7czRIhrk94SEe2mKkuG7Jq4qW1YcxX+FygNY
         GUWuqelvAqKEgIo0nDqGnUWY0ubtqeBgZA/itIPVdQQc9vPBlndJyHQtwWQ+Yg7sofkE
         ZPyzkVIj03NldblzkK1iFxGREuWZIcjNJd9n2ZoSzHpfCQ+hXsPF9CuqaKJ818FuQF4g
         5wR8c13KLzE8poYANBwwELEs7boWfYuO8N+Gac5hPMOLbC1zW90NuF8iOG1JrgVBO3mL
         jkUO55vEpM+GDhus1qr9sV0yphOiLswRZxQRgkd8BNW5SI2qnzk+UC5U4JQn0Tkc3kcJ
         f7QA==
X-Forwarded-Encrypted: i=1; AJvYcCU8AzXTqe56LIQWJttSCXmBT49Sobo54LfVtYoXhZ/QtI2z+CjTUZwG+ha7AnNwu0s1bGnIKKHC0pM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyTnDw7YknveOAbucs80kZZ5VqcomO3camK5BpgvwVXUdH3nkbI
	uHMCqQQa+7ukTPMJXXlHGuI84vNtCxRN3oYBF4j/zOENk6yZYwJzPA9KeLZNvILXudSrSnQlCon
	89J1F1TEYwj+FyRgL3E2dh9fJgv1FlMyH53/gompN7YDnWhId9HGfxWgNhZVFc7H/vB6g
X-Gm-Gg: ASbGncumCIxx0uS26bQ1f3cL7QNlIMBpXsTwy/CdU9yjpbSPwzQaE8/xTWlhQiisktg
	2Un76KRHdgAg/hEppRwJAVS5CP/avQxcIKzW6iRlqxwKrLeJxfHcV9ZuIjYSzQmqnWe0AbSCUNv
	7FJOqRiujmltv1ZxIKu0LcsxEhs80jdxuAjw3t6hnHqAS/okl3WVM4CqRiCOTluVdG8w/ZrWu7T
	P17De7zoBXaosapeD+4g7LygjsuVnFBAoETRFBVOI9YsUPjFenrr41uAUc1h/2z4Vv978xJfZ2L
	86M414XwCZ2HaHBrqIX0JACNUZZiVcYb9j0yHuErqpYMWFVflYx53lMeEQCkAuY2pe7bmS821Q=
	=
X-Received: by 2002:a05:600c:3b26:b0:456:19b2:6aa8 with SMTP id 5b1f17b1804b1-45b517caa99mr120121705e9.19.1756189037421;
        Mon, 25 Aug 2025 23:17:17 -0700 (PDT)
X-Google-Smtp-Source: AGHT+IE5JT88KMbfYqdABB2ZNx/5fJ3ePuTbJHoO0rv18+tnNMdWIHHT7WWjXjYCyLy3ILR8WgCBpw==
X-Received: by 2002:a05:600c:3b26:b0:456:19b2:6aa8 with SMTP id 5b1f17b1804b1-45b517caa99mr120121265e9.19.1756189036964;
        Mon, 25 Aug 2025 23:17:16 -0700 (PDT)
Message-ID: <f3e626ab-9bf9-4a08-b626-e739515727eb@redhat.com>
Date: Tue, 26 Aug 2025 08:17:14 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 08/11] mm/memory: convert print_bad_pte() to
 print_bad_page_map()
To: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org,
 xen-devel@lists.xenproject.org, linux-fsdevel@vger.kernel.org,
 nvdimm@lists.linux.dev, linuxppc-dev@lists.ozlabs.org,
 Andrew Morton <akpm@linux-foundation.org>,
 Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Juergen Gross <jgross@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Dan Williams <dan.j.williams@intel.com>, Matthew Wilcox
 <willy@infradead.org>, Jan Kara <jack@suse.cz>,
 Alexander Viro <viro@zeniv.linux.org.uk>,
 Christian Brauner <brauner@kernel.org>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>, Vlastimil Babka
 <vbabka@suse.cz>, Mike Rapoport <rppt@kernel.org>,
 Suren Baghdasaryan <surenb@google.com>, Michal Hocko <mhocko@suse.com>,
 Zi Yan <ziy@nvidia.com>, Baolin Wang <baolin.wang@linux.alibaba.com>,
 Nico Pache <npache@redhat.com>, Ryan Roberts <ryan.roberts@arm.com>,
 Dev Jain <dev.jain@arm.com>, Barry Song <baohua@kernel.org>,
 Jann Horn <jannh@google.com>, Pedro Falcato <pfalcato@suse.de>,
 Hugh Dickins <hughd@google.com>, Oscar Salvador <osalvador@suse.de>,
 Lance Yang <lance.yang@linux.dev>
References: <20250811112631.759341-1-david@redhat.com>
 <20250811112631.759341-9-david@redhat.com>
 <923b279c-de33-44dd-a923-2959afad8626@redhat.com>
 <9ad69d4f-69b7-4998-9639-4e8f679a2d9d@lucifer.local>
From: David Hildenbrand <david@redhat.com>
Autocrypt: addr=david@redhat.com; keydata=
 xsFNBFXLn5EBEAC+zYvAFJxCBY9Tr1xZgcESmxVNI/0ffzE/ZQOiHJl6mGkmA1R7/uUpiCjJ
 dBrn+lhhOYjjNefFQou6478faXE6o2AhmebqT4KiQoUQFV4R7y1KMEKoSyy8hQaK1umALTdL
 QZLQMzNE74ap+GDK0wnacPQFpcG1AE9RMq3aeErY5tujekBS32jfC/7AnH7I0v1v1TbbK3Gp
 XNeiN4QroO+5qaSr0ID2sz5jtBLRb15RMre27E1ImpaIv2Jw8NJgW0k/D1RyKCwaTsgRdwuK
 Kx/Y91XuSBdz0uOyU/S8kM1+ag0wvsGlpBVxRR/xw/E8M7TEwuCZQArqqTCmkG6HGcXFT0V9
 PXFNNgV5jXMQRwU0O/ztJIQqsE5LsUomE//bLwzj9IVsaQpKDqW6TAPjcdBDPLHvriq7kGjt
 WhVhdl0qEYB8lkBEU7V2Yb+SYhmhpDrti9Fq1EsmhiHSkxJcGREoMK/63r9WLZYI3+4W2rAc
 UucZa4OT27U5ZISjNg3Ev0rxU5UH2/pT4wJCfxwocmqaRr6UYmrtZmND89X0KigoFD/XSeVv
 jwBRNjPAubK9/k5NoRrYqztM9W6sJqrH8+UWZ1Idd/DdmogJh0gNC0+N42Za9yBRURfIdKSb
 B3JfpUqcWwE7vUaYrHG1nw54pLUoPG6sAA7Mehl3nd4pZUALHwARAQABzSREYXZpZCBIaWxk
 ZW5icmFuZCA8ZGF2aWRAcmVkaGF0LmNvbT7CwZoEEwEIAEQCGwMCF4ACGQEFCwkIBwICIgIG
 FQoJCAsCBBYCAwECHgcWIQQb2cqtc1xMOkYN/MpN3hD3AP+DWgUCaJzangUJJlgIpAAKCRBN
 3hD3AP+DWhAxD/9wcL0A+2rtaAmutaKTfxhTP0b4AAp1r/eLxjrbfbCCmh4pqzBhmSX/4z11
 opn2KqcOsueRF1t2ENLOWzQu3Roiny2HOU7DajqB4dm1BVMaXQya5ae2ghzlJN9SIoopTWlR
 0Af3hPj5E2PYvQhlcqeoehKlBo9rROJv/rjmr2x0yOM8qeTroH/ZzNlCtJ56AsE6Tvl+r7cW
 3x7/Jq5WvWeudKrhFh7/yQ7eRvHCjd9bBrZTlgAfiHmX9AnCCPRPpNGNedV9Yty2Jnxhfmbv
 Pw37LA/jef8zlCDyUh2KCU1xVEOWqg15o1RtTyGV1nXV2O/mfuQJud5vIgzBvHhypc3p6VZJ
 lEf8YmT+Ol5P7SfCs5/uGdWUYQEMqOlg6w9R4Pe8d+mk8KGvfE9/zTwGg0nRgKqlQXrWRERv
 cuEwQbridlPAoQHrFWtwpgYMXx2TaZ3sihcIPo9uU5eBs0rf4mOERY75SK+Ekayv2ucTfjxr
 Kf014py2aoRJHuvy85ee/zIyLmve5hngZTTe3Wg3TInT9UTFzTPhItam6dZ1xqdTGHZYGU0O
 otRHcwLGt470grdiob6PfVTXoHlBvkWRadMhSuG4RORCDpq89vu5QralFNIf3EysNohoFy2A
 LYg2/D53xbU/aa4DDzBb5b1Rkg/udO1gZocVQWrDh6I2K3+cCs7BTQRVy5+RARAA59fefSDR
 9nMGCb9LbMX+TFAoIQo/wgP5XPyzLYakO+94GrgfZjfhdaxPXMsl2+o8jhp/hlIzG56taNdt
 VZtPp3ih1AgbR8rHgXw1xwOpuAd5lE1qNd54ndHuADO9a9A0vPimIes78Hi1/yy+ZEEvRkHk
 /kDa6F3AtTc1m4rbbOk2fiKzzsE9YXweFjQvl9p+AMw6qd/iC4lUk9g0+FQXNdRs+o4o6Qvy
 iOQJfGQ4UcBuOy1IrkJrd8qq5jet1fcM2j4QvsW8CLDWZS1L7kZ5gT5EycMKxUWb8LuRjxzZ
 3QY1aQH2kkzn6acigU3HLtgFyV1gBNV44ehjgvJpRY2cC8VhanTx0dZ9mj1YKIky5N+C0f21
 zvntBqcxV0+3p8MrxRRcgEtDZNav+xAoT3G0W4SahAaUTWXpsZoOecwtxi74CyneQNPTDjNg
 azHmvpdBVEfj7k3p4dmJp5i0U66Onmf6mMFpArvBRSMOKU9DlAzMi4IvhiNWjKVaIE2Se9BY
 FdKVAJaZq85P2y20ZBd08ILnKcj7XKZkLU5FkoA0udEBvQ0f9QLNyyy3DZMCQWcwRuj1m73D
 sq8DEFBdZ5eEkj1dCyx+t/ga6x2rHyc8Sl86oK1tvAkwBNsfKou3v+jP/l14a7DGBvrmlYjO
 59o3t6inu6H7pt7OL6u6BQj7DoMAEQEAAcLBfAQYAQgAJgIbDBYhBBvZyq1zXEw6Rg38yk3e
 EPcA/4NaBQJonNqrBQkmWAihAAoJEE3eEPcA/4NaKtMQALAJ8PzprBEXbXcEXwDKQu+P/vts
 IfUb1UNMfMV76BicGa5NCZnJNQASDP/+bFg6O3gx5NbhHHPeaWz/VxlOmYHokHodOvtL0WCC
 8A5PEP8tOk6029Z+J+xUcMrJClNVFpzVvOpb1lCbhjwAV465Hy+NUSbbUiRxdzNQtLtgZzOV
 Zw7jxUCs4UUZLQTCuBpFgb15bBxYZ/BL9MbzxPxvfUQIPbnzQMcqtpUs21CMK2PdfCh5c4gS
 sDci6D5/ZIBw94UQWmGpM/O1ilGXde2ZzzGYl64glmccD8e87OnEgKnH3FbnJnT4iJchtSvx
 yJNi1+t0+qDti4m88+/9IuPqCKb6Stl+s2dnLtJNrjXBGJtsQG/sRpqsJz5x1/2nPJSRMsx9
 5YfqbdrJSOFXDzZ8/r82HgQEtUvlSXNaXCa95ez0UkOG7+bDm2b3s0XahBQeLVCH0mw3RAQg
 r7xDAYKIrAwfHHmMTnBQDPJwVqxJjVNr7yBic4yfzVWGCGNE4DnOW0vcIeoyhy9vnIa3w1uZ
 3iyY2Nsd7JxfKu1PRhCGwXzRw5TlfEsoRI7V9A8isUCoqE2Dzh3FvYHVeX4Us+bRL/oqareJ
 CIFqgYMyvHj7Q06kTKmauOe4Nf0l0qEkIuIzfoLJ3qr5UyXc2hLtWyT9Ir+lYlX9efqh7mOY
 qIws/H2t
In-Reply-To: <9ad69d4f-69b7-4998-9639-4e8f679a2d9d@lucifer.local>
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: rvAgTLuHsxmPEsd3RbpygshHedW8iTDPXFRUhibXMpc_1756189038
X-Mimecast-Originator: redhat.com
Content-Language: en-US
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 26.08.25 07:25, Lorenzo Stoakes wrote:
> On Mon, Aug 25, 2025 at 02:31:00PM +0200, David Hildenbrand wrote:
>> On 11.08.25 13:26, David Hildenbrand wrote:
>>> print_bad_pte() looks like something that should actually be a WARN
>>> or similar, but historically it apparently has proven to be useful to
>>> detect corruption of page tables even on production systems -- report
>>> the issue and keep the system running to make it easier to actually detect
>>> what is going wrong (e.g., multiple such messages might shed a light).
>>>
>>> As we want to unify vm_normal_page_*() handling for PTE/PMD/PUD, we'll have
>>> to take care of print_bad_pte() as well.
>>>
>>> Let's prepare for using print_bad_pte() also for non-PTEs by adjusting the
>>> implementation and renaming the function to print_bad_page_map().
>>> Provide print_bad_pte() as a simple wrapper.
>>>
>>> Document the implicit locking requirements for the page table re-walk.
>>>
>>> To make the function a bit more readable, factor out the ratelimit check
>>> into is_bad_page_map_ratelimited() and place the printing of page
>>> table content into __print_bad_page_map_pgtable(). We'll now dump
>>> information from each level in a single line, and just stop the table
>>> walk once we hit something that is not a present page table.
>>>
>>> The report will now look something like (dumping pgd to pmd values):
>>>
>>> [   77.943408] BUG: Bad page map in process XXX  pte:80000001233f5867
>>> [   77.944077] addr:00007fd84bb1c000 vm_flags:08100071 anon_vma: ...
>>> [   77.945186] pgd:10a89f067 p4d:10a89f067 pud:10e5a2067 pmd:105327067
>>>
>>> Not using pgdp_get(), because that does not work properly on some arm
>>> configs where pgd_t is an array. Note that we are dumping all levels
>>> even when levels are folded for simplicity.
>>>
>>> Signed-off-by: David Hildenbrand <david@redhat.com>
>>> ---
>>>    include/linux/pgtable.h |  19 ++++++++
>>>    mm/memory.c             | 104 ++++++++++++++++++++++++++++++++--------
>>>    2 files changed, 103 insertions(+), 20 deletions(-)
>>>
>>> diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h
>>> index bff5c4241bf2e..33c84b38b7ec6 100644
>>> --- a/include/linux/pgtable.h
>>> +++ b/include/linux/pgtable.h
>>> @@ -1966,6 +1966,25 @@ enum pgtable_level {
>>>    	PGTABLE_LEVEL_PGD,
>>>    };
>>> +static inline const char *pgtable_level_to_str(enum pgtable_level level)
>>> +{
>>> +	switch (level) {
>>> +	case PGTABLE_LEVEL_PTE:
>>> +		return "pte";
>>> +	case PGTABLE_LEVEL_PMD:
>>> +		return "pmd";
>>> +	case PGTABLE_LEVEL_PUD:
>>> +		return "pud";
>>> +	case PGTABLE_LEVEL_P4D:
>>> +		return "p4d";
>>> +	case PGTABLE_LEVEL_PGD:
>>> +		return "pgd";
>>> +	default:
>>> +		VM_WARN_ON_ONCE(1);
>>> +		return "unknown";
>>> +	}
>>> +}
>>
>> One kernel config doesn't like the VM_WARN_ON_ONCE here, and I don't think we
>> really need it. @Andrew can you squash:
> 
> Out of interest do you know why this is happening? xtensa right? Does
> xtensa not like CONFIG_DEBUG_VM?

We don't happen to include mmdebug.h in a xtensa configuration.

Briefly thought about using a BUILD_BUG_ON_INVALID(), but decided to 
just drop it completely.

-- 
Cheers

David / dhildenb



From xen-devel-bounces@lists.xenproject.org Tue Aug 26 06:38:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 06:38:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093952.1449308 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqnK3-0000IU-K7; Tue, 26 Aug 2025 06:38:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093952.1449308; Tue, 26 Aug 2025 06:38: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 1uqnK3-0000IN-HO; Tue, 26 Aug 2025 06:38:23 +0000
Received: by outflank-mailman (input) for mailman id 1093952;
 Tue, 26 Aug 2025 06:38:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ofj+=3G=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1uqnK2-0000IF-HM
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 06:38:22 +0000
Received: from NAM04-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam04on20600.outbound.protection.outlook.com
 [2a01:111:f403:240a::600])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3fd2a7ec-8247-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 08:38:18 +0200 (CEST)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 DS0PR12MB6558.namprd12.prod.outlook.com (2603:10b6:8:d2::16) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9052.20; Tue, 26 Aug 2025 06:38:14 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d%7]) with mapi id 15.20.9052.019; Tue, 26 Aug 2025
 06:38: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>
X-Inumbo-ID: 3fd2a7ec-8247-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=kqw0vJ1ZATPOB4u4TEakZradzWARhL4NaJt1Kq3B8CLQhPM34gBJDud2niipp+0U+Ih+8N+vI9wSA0f9P1Y6NjS/dYmE5EXb2KfxXlcurU1PjHxS9TetBgExy2UrMQXMhtAijFnL05vng1WxPKbUs/M0WPkGUcidWSsNRm5CjgZAFvd/n3i/NYVEixO7cUhZokvJ4namyEy5NKMsQogaJGTdbPpWxOqNpqRdcVXp8aqji6hkrq6Ss8J7yW8oSU74bSjsYwSLO2LV/0wTwGsCedG6QI+yFTNIgL+jzTOqBOOzSIAlCzcz8x00BHMRWVQRf/qcGdGyEb8R2BNh35Ri5w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7JDAyhNEYcizKqFUk0EPOwdXCUxJGSSMjwEfXu2PTSQ=;
 b=qmhRPxTCyD2OmFD7+RcdEPdCgmfk6fG07vOMQAcu/zxAHdewOeodHRpGrR5r8liVusxWx36srrvQFLGulyxHJ4BS88Hpibf7lwSayZzXASfXLV7BMMY2/JNis6rHZBx9hRPvKyzw7+3/qCmJ6REvVnEeodEGtBS5J2EsuP3KYRF/wfmpA2sLdtNirSGlppYY8goKGDeGKACQJW3re2Dls1B1Uf5NWQdWYyVK8LFpQyR1zPNzYYYHVsSZxE5flaXDwEAlRWYeB57Sw8Ei0n6ODzftwTgKRlMKuHgoSpNf9kt6dvNiUtyc1+j5Z2EwJEgSIbC3QA5cz6uja5hS6g6e3w==
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=7JDAyhNEYcizKqFUk0EPOwdXCUxJGSSMjwEfXu2PTSQ=;
 b=S+F0xZ2H2HLkdiMl+CBw3Ube7ZBgsapDMuQSW4Osj4lkXYeZIMVbXMJBsWnedjITDGfqhpob0kaeHAJWTXMSsznYzLBk/um5HyxSXnBQL4Pz5EA+0ExrvpHDAJ0ERL6qBW+tnKUOFYvuRtd8yW+ZSG0jTwMdNTkxepNzmzr05TM=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Orzel,
 Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v7 06/13] xen/cpufreq: introduce new sub-hypercall to
 propagate CPPC data
Thread-Topic: [PATCH v7 06/13] xen/cpufreq: introduce new sub-hypercall to
 propagate CPPC data
Thread-Index: AQHcE1LptmiQN44PAkOVJ+f0CssQOrRze76AgADdVjCAAB1GgIAABDZw
Date: Tue, 26 Aug 2025 06:38:14 +0000
Message-ID:
 <DM4PR12MB8451C39AAB9C6AD591268552E139A@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20250822105218.3601273-1-Penny.Zheng@amd.com>
 <20250822105218.3601273-7-Penny.Zheng@amd.com>
 <a4c5e149-828f-4ea9-83e2-79ecc8c56033@suse.com>
 <DM4PR12MB845136B4B4FA756EC654FE31E139A@DM4PR12MB8451.namprd12.prod.outlook.com>
 <927867b4-0cda-4600-b880-e5b1d9c2fbbf@suse.com>
In-Reply-To: <927867b4-0cda-4600-b880-e5b1d9c2fbbf@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-08-26T06:32:52.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|DS0PR12MB6558:EE_
x-ms-office365-filtering-correlation-id: d0838a54-1677-4dee-9d38-08dde46b2216
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?eG5pcDZrS2ovNGx6M2NDeFVVcFZhK1VNNzRvbHhqUXRtSTRTSFM3dTJzOTVR?=
 =?utf-8?B?dGhhcThTZTlHK0YyY2pOT3hOUEhmdWhhVytYdDNuZWcyQm0veU95QnczR3ZZ?=
 =?utf-8?B?WmNTZytCcDZrYzgxcjhCVWU4Q01McUpjMTZ6MU9WV0ZkdjBuNzUzWEt5ZEFY?=
 =?utf-8?B?VDZYNW1lWXdPdmlkVnN0UVBHQ1NEVk5ub2lET0NUemJmT05XZkZoTXhiTGw3?=
 =?utf-8?B?UWdnWUZ2OGliZm41ZkI2Q2RTL09wanlpVjl6dlMzZVR4M1lvc0pQS1hiVkFD?=
 =?utf-8?B?OGxCaSs4c3RUTHluVjFla09jSTJBM1BaNThreUV5bkRUMGZ1MWhYWENiamJl?=
 =?utf-8?B?TGM3Ym9JSTFKOEVZUS9kQTlGYkExcWRXRm5YSmJjSyt5bFYvN0ZuVHo2UmpD?=
 =?utf-8?B?bTB5NTRYRERFYklrbGJuK1l3YnBxTzJwMTFzSno3N2hMREc1MmgyOENiUm1q?=
 =?utf-8?B?Ri9CclVEMnBnWDhLc1FSUUZCNk9YWUJzU2pMR0NrWUxqWGEzTlZlcjY3cU9h?=
 =?utf-8?B?aHFoR01qQjNib1FoSjcwamlyeUhQeWtqazFuZnhYTXBEeWxCaXE1Wk56M1FV?=
 =?utf-8?B?MVNIYU4wZDdqSEpNMmpzOUlGVkZkZkxaRE5TakpkcTNRYjRMSlN2c3NiQU4y?=
 =?utf-8?B?VDlBNDd4YkIycnMzR2lRV2pmenpCNlFwSVZWTGtsMU8ySkhsZUd5RHhTOENQ?=
 =?utf-8?B?VmQ3MENBYjNnWGpnNlpRK3pNQUEvRnljWFNBRHJYUThqc1hRWVRKZXErUEFK?=
 =?utf-8?B?U0E5YUYwZUVJSjFRWldkVm8zK0FiWjB0SWtXQnJWbGtydjdPcWgydk9uTmVq?=
 =?utf-8?B?aEJSc09wbTFOSWxDUW9SNjJINjhxL1E2djlhSmF3MytrdWd3MVFYSjRpRGk1?=
 =?utf-8?B?bEluNEx4YklZVzVUWGlPM3l6bE12N1NCRlJRbjRKaHI0d211U1hIa1IrSVlO?=
 =?utf-8?B?Y0dQY3NsYVN5dFl4WUxDZGliaW50WG9Hb21CUytPZzdkNEhlL1ZXNnF4UEtX?=
 =?utf-8?B?WEhFd0UwTkQwdEJXN0tydksveHc4VS9pMnZuQjR0SWVrc1BEeklRVDNOUjRP?=
 =?utf-8?B?ZU50d1NENVM5U1hyRmdUbHM2MGg0Nm9FdEpkdm4xc0l5MVF4d0F5TVJPSDJB?=
 =?utf-8?B?S1U0STNEQU1DMC9SVjFNdHM2T1BRUjg3Rkl5UTVSbmZLaTVJSTNWelNxQ0Fz?=
 =?utf-8?B?SVNxV1Q5QldySU9FNGMwZGVJMFd2eVZlWDhZMWdRcUU0b1dVV2xZajIrQTJG?=
 =?utf-8?B?N21GZHVERkNwYUxwaUp5TVRaTndNNldGa2lxQjgxMjFXWmlnd1d3ckhQNGUy?=
 =?utf-8?B?ZFo0SzNaMjNZQ1hIa0dkL1pLT1NxaVd0YTBDd05kd2UzSXlISXJLQThQdjZ0?=
 =?utf-8?B?bHFxeWsyZGVOdzh2a2pVVW1ZY3ZPNkk4eVlSOG9ldVdVd2lJS2g2VDAyNHlC?=
 =?utf-8?B?Nk1JTTNmU1dJTmZkbHFCNGxSSkYwczBjUFBkckJVdGhobU9td2U5QnJBNVN0?=
 =?utf-8?B?VnQ3NjZDSjhkYW5KUkljdTJPaGJYa1AvSXNJcThBQXROUUl6V2tLWHpMV21X?=
 =?utf-8?B?SGZDclcyS3FTY0ZmNHpzdE1PQlgzWXhRR2NUTW41U3RER1JDNTN1K3FqREUx?=
 =?utf-8?B?NDE2Vis2Vk5rOVNLMDN5TXJKWUU5K0FPdVFHQkgzcVFvOWdaZHNiYzcwQ0JB?=
 =?utf-8?B?amdrbHZLYlpwODRsMEowVkRFeEdGRDNvaEt2Tm5HMzNaV0Qva0o5bVVOdmtS?=
 =?utf-8?B?VmoyOVNEaWF4bDFNOXNaaXNqbGVnaXR6ZW12ZUVYdUIxdWVtTkVHZFg3VTdi?=
 =?utf-8?B?VXY5YXZibTZ6Y0kvQXRHdkRvdlA1emRvZmFRM1l4akpnY0lNVDRRdlNYRURH?=
 =?utf-8?B?T3BoZFF4cEh5MVU2dzZPWlcvWFNSSWVEa1E3MnFFNS9uWTBiUlZwcjJhT09a?=
 =?utf-8?Q?H0/zqKIhT+I=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?U2FVN25vRlpGZ0Z4QXJ0Y1JTVEF2Sko4VHFlV2swRXhOOTM4N0N1elB1R0FN?=
 =?utf-8?B?a1VNOU5HL1k4Z0FTVzcwY3ZldmRkOW4vcmhCc244QVhkZ3BIeDdVQ2RXcExm?=
 =?utf-8?B?OGRrU3hkRUwzdmJtcS8wWTFtelM2RUpuSy8rdmRCMXdML0p3YnNLeERlOUY1?=
 =?utf-8?B?NXVuRG1GR0JFNXU4eXg2aVZSazI2Sy90ZlpZeGxQL2ZWSThVaUp4bnczeml3?=
 =?utf-8?B?ZmlkaEhHcHQ5VCtMeW5STkFyNHNieXpyVGxLQ1V1VmREZzFIN3FtVXRnS1V6?=
 =?utf-8?B?TmZudngvSjBGc3B6UkFhajVJY1VpSENuNHJVYmxKNlcrZjVMTW5LNWQ4U3BZ?=
 =?utf-8?B?U01YT0VHb1FldTdkSHlLbmovOUF4aVc0MlRwM01IeGcwVVcxVjJ1Q3RzbkV2?=
 =?utf-8?B?K0VMVjI2NlNmWDFaeVRmVkt5QnF3ay9ZSGFOYUhQZWpJL3c2UGFnL1B2RmFZ?=
 =?utf-8?B?c0U4cHM5dHVydzUrRTF3dzM5aHgwVlc3ZExtR2ZGeWNRN0dMVml1aTZ2Nkkx?=
 =?utf-8?B?YjQ1QjVyNjVjVDJLeHM3MmQvRVQ4VkVyeGtyK3RDcXQxWDgzRXNOdDhmcmhz?=
 =?utf-8?B?NGlrTGhLdmNuYjVqR3U0STBkWUVHZGsvV2J0MHVicWxsbDBSaCtRWEMrbzZr?=
 =?utf-8?B?ZVV5clAvNVhGeEZSa2JoOUNEK0tydkVZdytzRFRNOU5sM3V0ZnEyZ2ZSckpT?=
 =?utf-8?B?cGxTUXlybUlBS0RuMS9kdjAvejl4SEd5YVA5bEQzNUEwbGM2NlEzeHpsQjJH?=
 =?utf-8?B?M0ttNU40UXR5dFc5MEhPYlcxY2orME11bGtZdlUvb3NoMVR4ZDNnM3pjc0k5?=
 =?utf-8?B?Y1BxNW84UUx2SStrS2pZSHJpYktjb01LaHMyTktYUTdEZG1UWURaUGN6N2VF?=
 =?utf-8?B?OVpwTVJkUENrQ0VtOSs0Sk5LalZtRXJ6dHZTNW54d3o2UTZzRUQrZlRja0Vn?=
 =?utf-8?B?M2hzMmJWSGRJSmJLc3QwdGxadzNNUFh6amEwY1RoT1JPaXdZS2g1RHBPM3pt?=
 =?utf-8?B?emtYY0pMc2pYOGNkNHI5VzlST3prcWJkTTVlb1FWbGxnd0xpQWFYc0NyaWVu?=
 =?utf-8?B?aXRTOHd0VUlzL2NRdVd5cnBrNTE5Tk1mSmxjZ3UydkF6dzFjdjZZQXNCZ0tX?=
 =?utf-8?B?L0kzeHQ5Vm9SMlVxUmpLZTBOLzBFR3VXOHV6ZHArcFhhRHFYeTRlRzlsNGJv?=
 =?utf-8?B?c1MydDgxN1lRb1NjTmdRVk03cGpsUVRGTjFRTXV3Zm9vNndaaFZHdjliNGFG?=
 =?utf-8?B?UXZHTzA1OG1wWWhBUmlCN1hvVm80T3Q3My8ycUVqcjVQOHBJUG83S2RiOVpv?=
 =?utf-8?B?UStFdTZyZHlDSjdTM2tpQ1Q1UVFDNFdSSXJiaytIcUtOWWJZU3QzMlhMMVBs?=
 =?utf-8?B?eHhVY0J2Sm5QV3NORTM4MFhKMzk5eGFnNitxd0xYSnJoN3hZMFpweURxM245?=
 =?utf-8?B?dTFRVVdzS1YyTFVIajBrbFNEQm83aThoSzBvQjdRTkZXZ2d6LzMyeDd5UExD?=
 =?utf-8?B?V2NWYmJ2TlREMHlaU3ZmNWdDMUIyOFkrMlZ1cHBwZEc4K3pQaHAwK0ExTng4?=
 =?utf-8?B?Z2EyZlU2MDdKTk5YV215b0ZIbnUrWm9nUHBYZHZSODlqeGNhckJxN1BUc3pS?=
 =?utf-8?B?MFVETG5WS3l4WVFDRXdjMWRZWFVTV2tiYlNVQU44QkVUOFRyYkF2bWdHWTRJ?=
 =?utf-8?B?WEUwT3ZBMlZvUXpqYi9WTmNSOVJtcXV4NWc2SWR1Q3RmNGc5UU5IZUt5OWNq?=
 =?utf-8?B?YTFZWXYyLzRiekFKdmwvZHVQTk1YVEgrQWhWNHFsZFJkYkFxUUYycjdPVnBq?=
 =?utf-8?B?Njc3WlVlVlByZnYzY0F3SWdKN1RUeDRkU1pMaS9xSXY5emFNQy92NjEvaFAw?=
 =?utf-8?B?dlgxa2tJVCs2Vi9BTUhIQ0M2cE5KM25xaW9DSU9LS2lMRVBOSW1aSEZqbHdV?=
 =?utf-8?B?SjNJRW1nZkdEMzZ1VnMwcFlkc0dZRzFrSW90bmkvTmVTOFI1NXRXQnYwdUc0?=
 =?utf-8?B?dUVlTmpSaDFZOVdrRndGTmVSN3ZGRC9rdXhpZUFFSE5icnllaWJRWnJwZ01F?=
 =?utf-8?B?Z0lXV0pHZll2Y2dBaFhpMzdLaGYxdDBZMWQ2MWZmOW5pT3hlWlpHcFpveW9y?=
 =?utf-8?Q?2GIk=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d0838a54-1677-4dee-9d38-08dde46b2216
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Aug 2025 06:38:14.0713
 (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: N/KZm3VEjW/5p6Z3fIKP3bvZKekNew0vz1jWJCuiDX6V5Id4B5KTMGzof4TWl20325HQYYtqtY05YJvUJ6J4IQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6558

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFR1ZXNkYXksIEF1Z3VzdCAyNiwgMjAy
NSAxOjU5IFBNDQo+IFRvOiBQZW5ueSwgWmhlbmcgPHBlbm55LnpoZW5nQGFtZC5jb20+DQo+IENj
OiBIdWFuZywgUmF5IDxSYXkuSHVhbmdAYW1kLmNvbT47IEFuZHJldyBDb29wZXINCj4gPGFuZHJl
dy5jb29wZXIzQGNpdHJpeC5jb20+OyBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4
LmNvbT47DQo+IEFudGhvbnkgUEVSQVJEIDxhbnRob255LnBlcmFyZEB2YXRlcy50ZWNoPjsgT3J6
ZWwsIE1pY2hhbA0KPiA8TWljaGFsLk9yemVsQGFtZC5jb20+OyBKdWxpZW4gR3JhbGwgPGp1bGll
bkB4ZW4ub3JnPjsgU3RlZmFubyBTdGFiZWxsaW5pDQo+IDxzc3RhYmVsbGluaUBrZXJuZWwub3Jn
PjsgeGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0gg
djcgMDYvMTNdIHhlbi9jcHVmcmVxOiBpbnRyb2R1Y2UgbmV3IHN1Yi1oeXBlcmNhbGwgdG8NCj4g
cHJvcGFnYXRlIENQUEMgZGF0YQ0KPg0KPiBPbiAyNi4wOC4yMDI1IDA3OjUzLCBQZW5ueSwgWmhl
bmcgd3JvdGU6DQo+ID4gW1B1YmxpY10NCj4gPg0KPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut
LS0tLQ0KPiA+PiBGcm9tOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+ID4+IFNl
bnQ6IE1vbmRheSwgQXVndXN0IDI1LCAyMDI1IDExOjAyIFBNDQo+ID4+IFRvOiBQZW5ueSwgWmhl
bmcgPHBlbm55LnpoZW5nQGFtZC5jb20+DQo+ID4+IENjOiBIdWFuZywgUmF5IDxSYXkuSHVhbmdA
YW1kLmNvbT47IEFuZHJldyBDb29wZXINCj4gPj4gPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+
OyBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT47DQo+ID4+IEFudGhvbnkg
UEVSQVJEIDxhbnRob255LnBlcmFyZEB2YXRlcy50ZWNoPjsgT3J6ZWwsIE1pY2hhbA0KPiA+PiA8
TWljaGFsLk9yemVsQGFtZC5jb20+OyBKdWxpZW4gR3JhbGwgPGp1bGllbkB4ZW4ub3JnPjsgU3Rl
ZmFubw0KPiA+PiBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPjsgeGVuLWRldmVs
QGxpc3RzLnhlbnByb2plY3Qub3JnDQo+ID4+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjcgMDYvMTNd
IHhlbi9jcHVmcmVxOiBpbnRyb2R1Y2UgbmV3DQo+ID4+IHN1Yi1oeXBlcmNhbGwgdG8gcHJvcGFn
YXRlIENQUEMgZGF0YQ0KPiA+Pg0KPiA+PiBPbiAyMi4wOC4yMDI1IDEyOjUyLCBQZW5ueSBaaGVu
ZyB3cm90ZToNCj4gPj4+IC0tLSBhL3hlbi9hcmNoL3g4Ni94ODZfNjQvY3B1ZnJlcS5jDQo+ID4+
PiArKysgYi94ZW4vYXJjaC94ODYveDg2XzY0L2NwdWZyZXEuYw0KPiA+Pj4gQEAgLTU0LDMgKzU0
LDIyIEBAIGludCBjb21wYXRfc2V0X3B4X3BtaW5mbyh1aW50MzJfdCBhY3BpX2lkLA0KPiA+Pj4N
Cj4gPj4+ICAgICAgcmV0dXJuIHNldF9weF9wbWluZm8oYWNwaV9pZCwgeGVuX3BlcmYpOyAgfQ0K
PiA+Pj4gKw0KPiA+Pj4gK2ludCBjb21wYXRfc2V0X2NwcGNfcG1pbmZvKHVuc2lnbmVkIGludCBh
Y3BpX2lkLA0KPiA+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBj
b21wYXRfcHJvY2Vzc29yX2NwcGMNCj4gPj4+ICsqY3BwY19kYXRhKQ0KPiA+Pj4gKw0KPiA+Pj4g
K3sNCj4gPj4+ICsgICAgc3RydWN0IHhlbl9wcm9jZXNzb3JfY3BwYyAqeGVuX2NwcGM7DQo+ID4+
PiArICAgIHVuc2lnbmVkIGxvbmcgeGxhdF9wYWdlX2N1cnJlbnQ7DQo+ID4+PiArDQo+ID4+PiAr
ICAgIHhsYXRfbWFsbG9jX2luaXQoeGxhdF9wYWdlX2N1cnJlbnQpOw0KPiA+Pj4gKw0KPiA+Pj4g
KyAgICB4ZW5fY3BwYyA9IHhsYXRfbWFsbG9jX2FycmF5KHhsYXRfcGFnZV9jdXJyZW50LA0KPiA+
Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB4ZW5fcHJvY2Vzc29y
X2NwcGMsIDEpOw0KPiA+Pj4gKyAgICBpZiAoIHVubGlrZWx5KHhlbl9jcHBjID09IE5VTEwpICkN
Cj4gPj4+ICsgICAgICAgIHJldHVybiAtRUZBVUxUOw0KPiA+Pg0KPiA+PiBJIHRoaW5rIHdlIHdh
bnQgdG8gYXZvaWQgcmVwZWF0aW5nIHRoZSBlYXJsaWVyIG1pc3Rha2Ugd2l0aCB1c2luZyBhIHdy
b25nIGVycm9yDQo+IGNvZGUuDQo+ID4+IEl0J3MgRU5PTUVNIG9yIEVOT1NQQyBvciBzb21lIHN1
Y2guDQo+ID4+DQo+ID4NCj4gPiBVbmRlcnN0b29kLCBJJ2xsIGNoYW5nZSBpdCB0byAtRU5PTUVN
DQo+ID4NCj4gPj4+IC0tLSBhL3hlbi9kcml2ZXJzL2FjcGkvcG0tb3AuYw0KPiA+Pj4gKysrIGIv
eGVuL2RyaXZlcnMvYWNwaS9wbS1vcC5jDQo+ID4+PiBAQCAtOTEsNyArOTEsOSBAQCBzdGF0aWMg
aW50IGdldF9jcHVmcmVxX3BhcmEoc3RydWN0IHhlbl9zeXNjdGxfcG1fb3ANCj4gKm9wKQ0KPiA+
Pj4gICAgICBwbXB0ID0gcHJvY2Vzc29yX3BtaW5mb1tvcC0+Y3B1aWRdOw0KPiA+Pj4gICAgICBw
b2xpY3kgPSBwZXJfY3B1KGNwdWZyZXFfY3B1X3BvbGljeSwgb3AtPmNwdWlkKTsNCj4gPj4+DQo+
ID4+PiAtICAgIGlmICggIXBtcHQgfHwgIXBtcHQtPnBlcmYuc3RhdGVzIHx8DQo+ID4+PiArICAg
IGlmICggIXBtcHQgfHwNCj4gPj4+ICsgICAgICAgICAoKHBtcHQtPmluaXQgJiBYRU5fUFhfSU5J
VCkgJiYgIXBtcHQtPnBlcmYuc3RhdGVzKSB8fA0KPiA+Pj4gKyAgICAgICAgICgocG1wdC0+aW5p
dCAmIFhFTl9DUFBDX0lOSVQpICYmIHBtcHQtPnBlcmYuc3RhdGVfY291bnQpDQo+ID4+PiArIHx8
DQo+ID4+DQo+ID4+IEkgZmVhciBJIGRvbid0IHVuZGVyc3RhbmQgdGhpczogSW4gdGhlIFBYIGNh
c2Ugd2UgY2hlY2sgd2hldGhlcg0KPiA+PiBuZWNlc3NhcnkgZGF0YSBpcyBsYWNraW5nLiBJbiB0
aGUgQ1BQQyBjYXNlIHlvdSBjaGVjayB0aGF0IHNvbWUgZGF0YQ0KPiA+PiB3YXMgcHJvdmlkZWQg
dGhhdCB3ZSBkb24ndCB3YW50IHRvIHVzZT8gV2h5IG5vdCBzaW1pbGFybHkgY2hlY2sgdGhhdCBk
YXRhIHdlDQo+IG5lZWQgd2FzIHByb3ZpZGVkPw0KPiA+Pg0KPiA+DQo+ID4gV2UgYXJlIGludHJv
ZHVjaW5nIGFub3RoZXIgY2hlY2tpbmcgbGluZSBmb3IgQ1BQQyBpcyBhY3R1YWxseSB0byBhdm9p
ZCBOVUxMDQo+IGRlcmVmIG9mIHN0YXRlW2ldOg0KPiA+IGBgYA0KPiA+ICAgICAgICAgZm9yICgg
aSA9IDA7IGkgPCBvcC0+dS5nZXRfcGFyYS5mcmVxX251bTsgaSsrICkNCj4gPiAgICAgICAgICAg
ICAgICAgZGF0YVtpXSA9IHBtcHQtPnBlcmYuc3RhdGVzW2ldLmNvcmVfZnJlcXVlbmN5ICogMTAw
MDsNCj4gPiBgYGAgV2Ugd2FudCB0byBlbnN1cmUgIm9wLT51LmdldF9wYXJhLmZyZXFfbnVtIiBp
cyBhbHdheXMgemVybyBpbiBDUFBDDQo+ID4gbW9kZSwgd2hpY2ggaXMgdmFsaWRhdGVkIGFnYWlu
c3QgcG1wdC0+cGVyZi5zdGF0ZV9jb3VudC4NCj4gPiBXZSBoYXZlIHNpbWlsYXIgZGlzY3Vzc2lv
biBpbiBoZXJlDQo+ID4gaHR0cHM6Ly9vbGQtbGlzdC1hcmNoaXZlcy54ZW4ub3JnL2FyY2hpdmVz
L2h0bWwveGVuLWRldmVsLzIwMjUtMDYvbXNnMA0KPiA+IDExNjAuaHRtbA0KPg0KPiBJbmRlZWQg
SSB3YXMgdGhpbmtpbmcgdGhhdCB3ZSB3b3VsZCBoYXZlIHRvdWNoZWQgdGhpcyBiZWZvcmUuIEFz
IHRvIHlvdXIgcmVwbHk6DQo+IFRoaXMgZXhwbGFpbnMgdGhlIC5zdGF0ZV9jb3VudCBjaGVjayAo
d2hpY2ggaW1vIHdhbnRzIGEgY29tbWVudCkuIEl0IGRvZXNuJ3QsDQoNClVuZGVyc3Rvb2QsIEkn
bGwgY29tcGxlbWVudA0KDQo+IGhvd2V2ZXIsIGV4cGxhaW4gdGhlIGFic2VuY2Ugb2YgYSAiaGF2
ZSB3ZSBnb3QgdGhlIGRhdGEgd2UgbmVlZCIgcGFydC4gVW5sZXNzIG9mDQo+IGNvdXJzZSB0aGVy
ZSBzaW1wbHkgaXNuJ3QgYW55dGhpbmcgdG8gY2hlY2sgZm9yLg0KPg0KDQpZZXMsIGltbywgdGhl
cmUgaXNu4oCZdCBhbnl0aGluZyB0byBjaGVjay4NCkluIGdldF9jcHVmcmVxX3BhcmEoKS4gd2Ug
YXJlIG5vdCBhY2Nlc3NpbmcgZGF0YSBzcGVjaWZpYyB0byBDUFBDLg0KDQo+IEphbg0K


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 07:22:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 07:22:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093965.1449319 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqo0V-00076f-Rc; Tue, 26 Aug 2025 07:22:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093965.1449319; Tue, 26 Aug 2025 07:22: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 1uqo0V-00076Y-OX; Tue, 26 Aug 2025 07:22:15 +0000
Received: by outflank-mailman (input) for mailman id 1093965;
 Tue, 26 Aug 2025 07:22:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=n+o/=3G=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqo0U-00076R-Kl
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 07:22:14 +0000
Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com
 [2a00:1450:4864:20::62b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 621f910d-824d-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 09:22:12 +0200 (CEST)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-afe84202bc2so252225166b.2
 for <xen-devel@lists.xenproject.org>; Tue, 26 Aug 2025 00:22: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
 a640c23a62f3a-afeae4ca4bdsm58985366b.5.2025.08.26.00.22.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Aug 2025 00: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>
X-Inumbo-ID: 621f910d-824d-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756192931; x=1756797731; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=C+Eeg5T1lgi/IZJGN2U97jLj4V4n1crk0Ak7gDI/JlY=;
        b=KFH9TCz9gH61CgX5zvn7IGbdOdjlU0K2r3+tePzYqjcHc8lJzFLWIaoLFZjJoiN2gx
         8Cc0N6v1XkEZPbjujzzGb7BlJoB2n2PuY3m+Jp+pwsNn/VDwX84fC8tEac9rKeS18TPN
         bywyEouM3YV0z6wNsO4MzWo5A6crBCs/qMUEy6zI7Zu/0oQlvqyjjNGqRjWKNRedPNp1
         h4FvxG7B7TZRXRZBIIFYq4hxtjdXBCCvXfgE4Tgv0Z5aPJA6YMljOcHMskJzW8YGMNc+
         gI35EVZy6cKScA1Qq3bcSjDld4miTLzuq7uJIw7BfZ1Fdx56iB7yQ9at4JKY6H9EYFjm
         r15A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756192931; x=1756797731;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=C+Eeg5T1lgi/IZJGN2U97jLj4V4n1crk0Ak7gDI/JlY=;
        b=osd2fKyh72FC6lkDOXk12pT9WMrcdqOfq0ca4XeQa4EZT72wGgf0/LJ4n9+Rq6jllg
         JuSFeCben4TK66bO1orX6Fhbq8F8vDrkOBRL8kmUx9ZLiGc8Q7+Q977xgb01YMc8m01s
         Lwnxxve/QH5xTzUkhkkfCbnYPwNpZ1tUQw7HJzuD2qz2dSKak6E13xfyikjICVIbHuMq
         Jr9nYFISrgbChy21sMNL9CAnAgoKUy2533dRpnhYGtVjFIR65rtzMxT6xPphqSBWwgqf
         ynR2uKxyUZvNbFZJGXypWKnS/gAVBx7zoKvdAHl/4sVWd5wrDskM2JTbfnBxj0gc3JVa
         iAgA==
X-Gm-Message-State: AOJu0YwbwGxI3J2XZYHUMJIjDnhwyS9+HwS4Vvf04G7yD/6isaTKAIbd
	dGaU4/SBUB3pP/JwaKWhUGfFKQrdSnARxe/ngwTKai2bt05jvmy1ybZ9JTjq8PvJuA==
X-Gm-Gg: ASbGncv4r+emH9fBa9rR1C7FNJmVtEadvTxAvCZlxrsdjRQ/qE//f8EVlgGF+MIaXh9
	7lENrWKfKDuVK3WvvIpJaOpjreDpuLpJpsDuY2AL8VUlMEInSMnG8HL7+wt2eFahJUkSFTo4huS
	ngV+3lk+z4vi5KS6oWPBqdsPO2eHCARNSrf5Q01n9VSJq7Co1lF1SQlDN5yxDEyj4fmV0OyWURk
	KneO2oTMVxovGYe2zL7O+2GFxmeXlNSWIYXLwzExV6+sqpVtDCAFHZHLCiQWlwrJYwWqzxs9l2T
	sALY9L0g8wv6x7rJ0bHOUT3vyA4lq9ySWBZMXpv+EWYqG0OWjqdROjZaXALGUiUd6N5KzNhec1S
	NH2+7FbQnMzM2MCwLr3XboJphOU4gI9jZXSWpI1bL1WOAQGC4ygpELZUjxK37E63EwKlRxy5JXX
	rqOdztGlpooQnMV89nuw==
X-Google-Smtp-Source: AGHT+IFq1+7gcPtTI/IHi1JY64n9+doFUXl5uDLjIxRHGK9YksCbPbbha1xbHm9UUItiA/okK1Se8A==
X-Received: by 2002:a17:907:72d4:b0:af9:3019:6aef with SMTP id a640c23a62f3a-afe28feabb8mr1416475866b.10.1756192931337;
        Tue, 26 Aug 2025 00:22:11 -0700 (PDT)
Message-ID: <de9005bf-c858-4e7e-bea8-33e5ea2424fc@suse.com>
Date: Tue, 26 Aug 2025 09:22:10 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/3] xen/events: Cleanup find_virq() return codes
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
 Juergen Gross <jgross@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
References: <20250826005517.41547-1-jason.andryuk@amd.com>
 <20250826005517.41547-2-jason.andryuk@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250826005517.41547-2-jason.andryuk@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.08.2025 02:55, Jason Andryuk wrote:
> rc is overwritten by the evtchn_status hypercall in each iteration, so
> the return value will be whatever the last iteration is.

Which may even be a false "success". Especially for that it feels like ...

>  Change to an
> explicit -ENOENT for an un-found virq and return 0 on a successful
> match.
> 
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>

... this also wants a Fixes: tag and perhaps a Cc: to stable@.

> --- a/drivers/xen/events/events_base.c
> +++ b/drivers/xen/events/events_base.c
> @@ -1318,7 +1318,7 @@ static int find_virq(unsigned int virq, unsigned int cpu, evtchn_port_t *evtchn)
>  {
>  	struct evtchn_status status;
>  	evtchn_port_t port;
> -	int rc = -ENOENT;
> +	int rc;

Maybe best to also move this into the more narrow scope (loop body)?
Either way:
Reviewed-by: Jan Beulich <jbeulich@suse.com>

>  	memset(&status, 0, sizeof(status));

Having this outside of the loop is a little odd, too: It makes assumptions
on the behavior of the hypervisor (like not altering the structure upon
error). Yet likely not something to deal with right here.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 07:36:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 07:36:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093974.1449328 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqoEF-0000SA-0O; Tue, 26 Aug 2025 07:36:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093974.1449328; Tue, 26 Aug 2025 07:36:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqoEE-0000S3-U5; Tue, 26 Aug 2025 07:36:26 +0000
Received: by outflank-mailman (input) for mailman id 1093974;
 Tue, 26 Aug 2025 07:36:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=pZJD=3G=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1uqoED-0000Rx-SQ
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 07:36:25 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5dae9c3c-824f-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 09:36:23 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by PAXPR03MB8251.eurprd03.prod.outlook.com (2603:10a6:102:23d::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Tue, 26 Aug
 2025 07:36:20 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9052.019; Tue, 26 Aug 2025
 07:36: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>
X-Inumbo-ID: 5dae9c3c-824f-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=n+ThdjTNLVQQydP0GSVBN6Lzs9EGMHj6GDEC9JIxEJE1YEBine8RIG6s0otZMTRA370effuf4GQ90U60ZjEtAhdkfinOTAOATI8Ug+AJFQeJTC0W5Za89XOdgZLXI73yimTziVEl/6cJBwXxQMXvtqut+Nu5kIGUWRkk5h8KyQZ1YHoYJpQGLI5mFwDzyZOXQ6B241Z4a4zap1YNzVUDZ+YtyvbL2QJru1dgDBbO3hAQVEhMqFKBy0fscwoQPeTo/K2QEnX0SkT6BzJyB2BG9XjnGgZo2vYBCgWRZRe82dDTajhPAmpv+n5ANPcuLnYZzNlfDIruaq5Igw0xF/4n/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=eG7VgBSoakS2HenjB8k0q9gUCulKgRfpj9rxtOR3G8o=;
 b=da5wHOjaVmWRgsT5QIt2mPL/ffMlzH7FiEeSbbGhH2Y1EF6+f3Uzjicq5V3f9N8w3H7pwE88d1HERIS+MMMykczsZwTBZXVZbC6xXqYYloTMs8yDe+n2JPtdL9eTmXPHBMDUdz8iQitLoVFftVy2E6tKdXsDokYrY2Sew66/aXw0CeexC0V+x5/92ENjj3P6q0zNaOtZQ1iGbb2XZSJo+Zcot6CpT3VO0wgEVgzkSxk/K9YKNwb9VQoCG0d6wigMKEsbVxnJQw96Q3dc3wfL7ufN6Al5g3WxXMqtoJvE96GMhN29EZKS9lTN2x8C1zGHrWL8RktNwpEYVLEg/JtgVg==
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=eG7VgBSoakS2HenjB8k0q9gUCulKgRfpj9rxtOR3G8o=;
 b=VkZPKW9rIMSPBFDYzV5h19iBCvQNzmuIZW3GWXeERkFaZHonUwVBJ65J1Iz43njvSaf5Bhd31plHT3IifrnfMTksnIwLoxizsWBsqn48rLhtP87QmmniDY8QHYeeUTQEQTavLHfLmt296pc/JlcUIRwYZwCfTbwWf4Cf8cyYSHXR9p9GI4KHNkzP8p8Wzbt2zaOXHFPzkG9ESmS8RvXu0Z25pGEEt2AVIAhx4GEyc3mxubyC4OaRThjfXiE7cZpUK49ODk+diyOprIN+bnal669jZwHlWYYcaoYe0lmatmm7R5bSXMZpQ8dnXriMVpwPOlCHwkl1eCx85P3QXD2hYg==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, Nicola Vetrini
	<nicola.vetrini@bugseng.com>, Doug Goldstein <cardoe@cardoe.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>
Subject: [PATCH v2] misra: add deviation of Rule 17.7
Thread-Topic: [PATCH v2] misra: add deviation of Rule 17.7
Thread-Index: AQHcFlwdO9JZfbniJ0qkcPaDWppdxw==
Date: Tue, 26 Aug 2025 07:36:20 +0000
Message-ID:
 <812b78119cee801662a31d39b556cb453aa69508.1756192362.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: GV2PR03MB9572:EE_|PAXPR03MB8251:EE_
x-ms-office365-filtering-correlation-id: e45c846b-a3ee-40b5-89b9-08dde4734016
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|42112799006|7416014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?hwVuU21nDS4ZIEeauVoXneBvtVaJmXtcOUaKVGN8EEH+1+jZA/hDVI6pn9?=
 =?iso-8859-1?Q?tPwW7m9PtYuRP/jzFy6SFIuf6tzFTNjQdY2KBiexTHXJgDyfzdtmcEtpC6?=
 =?iso-8859-1?Q?82msHJfqg1bslGLWtgnHSUidxWqii1IRC2GK1Z0fkXimqmfnfY+Zwp8MhC?=
 =?iso-8859-1?Q?k3DfPAJJQ60Br3CnhMqeQTE/dIBMXr7lp/fSNGhMaIzLAzsSuY68vIFZAS?=
 =?iso-8859-1?Q?enuctifDLmfvDMtQzu6+dFbzdxpW1FYweoJV33FyVGgeZTkUl7TXc2STC+?=
 =?iso-8859-1?Q?7GdXLZAPLjwFos5J5rB7+xRoJGYfH2hrKpmDbEnFYstKpbNOO/aUDl0MRG?=
 =?iso-8859-1?Q?QdSwdXo/lCY79IWeQh7AHcKxdMnEAyEqnBs49NUQRg2M9mvBtYRX1fm3+R?=
 =?iso-8859-1?Q?5U46PTS3jP3ybbL6GWPAjP7CZAP2CYMNskTepw7rLJmSLO5Flb/I5JpjYl?=
 =?iso-8859-1?Q?RaQoTNFRj1McB253n49kyk491nfzB1l8G2gzvm1sMcKIJdlo5upZFGWy2q?=
 =?iso-8859-1?Q?0jqXMKQvp/HZa2StrrsZz5A1eiV2cVpUfYAyZtXJ6ylqLWZg0xT2YMc/3n?=
 =?iso-8859-1?Q?+OlLBNfWW9AsASlzn4jwGSl1V47doBvAlGczSxP2RdZuVhPWr3iLJ5eHBL?=
 =?iso-8859-1?Q?I6vEb86eqVP7jUEsoZhz0SFdnZVszFWrbUx3yI4RinZcTi1PO4UI26bF8u?=
 =?iso-8859-1?Q?voo1ZPeXN9/qXdhXkijAS7u6awkUEEWg+ev0eek+MNV45h7hrdMkKzDGpl?=
 =?iso-8859-1?Q?KnBHkSyr6YIwg/xKJ7ScDMyAw6mpRweLxMr0tFOLQgOyWkPpiRkwHp9Z7m?=
 =?iso-8859-1?Q?9WaQims6boi2aD37yFJWVwdLgsy4TC3C28yzZOz/ShhcD0gjG8gDygVHEy?=
 =?iso-8859-1?Q?NgVeeyPI3GF8DVxqRuwoM1IbdbkRn6tXNd2PHCZ5+Ux/XoX2lcBnXZHGxM?=
 =?iso-8859-1?Q?gAm3uUpWOgFb7zmqlmUdw02AlkL/fmWL2Kgl0nbyP/VmYKKUlSVPsHg23v?=
 =?iso-8859-1?Q?DbdT2OnP9eYc+du6YboUACR7dTV1/M/uKDqkSsUfMouRzQrFR5OcK79UeG?=
 =?iso-8859-1?Q?moielqYmSPvddH8do0WqS9ygSSgEB3+Job/VpLaE7pfYaH/z8Kg0++JQzc?=
 =?iso-8859-1?Q?DHotclfR+Z0d+s6jR1f7Rmp2bfC+Padhbg8FFHLcgL3U+u2h+Yfz/oqh8I?=
 =?iso-8859-1?Q?WDoZz6o/19F1fHoZ1esSpcksSvKfEhr5Wcaeq+d3rH3aDkNWYZkncYeb/8?=
 =?iso-8859-1?Q?KPwlTkVqfMpWmg2idKj6koYeHhsnqeF9uckolsUVg7+kQYuTLjKzrGeLwq?=
 =?iso-8859-1?Q?SIvGsmwXnFuXIlIgJfdcMf64M5AOY09Uu5+SmllceX0WkhVlfEU+r624Yq?=
 =?iso-8859-1?Q?ZsehGWlCSy+kRcRZnTm7ihT9qlBzZxlus3Fx/UZI8ahnsCMPBxtwtRZUip?=
 =?iso-8859-1?Q?I1i1uSGcWea1d1CtwJmfZvhppscDsqnqN05Vv/2nMjrGqX+ADuobgrOCMm?=
 =?iso-8859-1?Q?A=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(42112799006)(7416014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?v9PcU/Jf0LxEoGHN5FJPHMDhoCFJZiUSWjNdaVWG29sUc0wxLINNiZJDsR?=
 =?iso-8859-1?Q?hR7aSdnVRWdazbKzJuxQTbW3H7ifGXozOz1fFpg+u8oe6B4vnzkElKk0ks?=
 =?iso-8859-1?Q?3dVbkpfIrDzigbuXPDnVpKf6Z8flr9rRPyGCD4HLfBaXq8W7ENeglkoQPb?=
 =?iso-8859-1?Q?5qqp812qqTdb+OrkZ2Og6Wi1KOEHajHDc6+JgxOb4OYDZkU2JdgxcPDyPC?=
 =?iso-8859-1?Q?TTUcKgYYS3pj8k+l/1+wbGGFkYtoeir36CwmcjEE2nxiAbMzUve+qBh/y9?=
 =?iso-8859-1?Q?yATsxE+aj5QgKVkOzjgoqtUfCjjkD9Z5kzIVASv8yUJeTGnOBDn0vHlWCw?=
 =?iso-8859-1?Q?ilCYKo7aKtXJ+xB1r9hNyzzU8jqUDu9RzbJOlEUTtZGUMZhz3fbEqdLtWC?=
 =?iso-8859-1?Q?//bJDSQXM2pyUX3EBYUxwv/I9adeo5P0BVpUSftOjiNAwX4HAZBcmMwFa0?=
 =?iso-8859-1?Q?m2Zd+Tvw8OLSJ3z5fXsEEpApX3w/ddvozrO8OLGOfC3nNlTO7SHpJVTTrR?=
 =?iso-8859-1?Q?d/koWJBIF/AuGfxFNBJwzJuSWV9ccoACTLys9g9HOxGIA7Jzyi8a+Lv9Di?=
 =?iso-8859-1?Q?5LneeH/CSvTDS5nBgcuE9RKcW14Dpcghepdlk7hgdJoMMSQAm9fj/IgZPg?=
 =?iso-8859-1?Q?CBFsoiCmhmpoxqONHQpeEx1jQBBxFDC1DR5S44IJEWT0CXeqC12/78Ebwo?=
 =?iso-8859-1?Q?nZ/SJv+HnA7BSfIBpHVyt4NUCylCb++p4qXpGuUfw0V9Xh42XewZxD9kQ5?=
 =?iso-8859-1?Q?ush5J7O/0rlM3YyN24oJSWlQWCLQDzC+Z8KgN80co6HLV1eDgz/Zhjr70S?=
 =?iso-8859-1?Q?aNKstXHsGSsZnYQQV47+Qz0z2WH++GVFZnyarmS4VhbX6mMumHDLmk3QY5?=
 =?iso-8859-1?Q?mhhqUy1MWtNYG7rImBLKl+VdkIl7Nsq+1TlO6x7M3QxCsa9IENb6Ws6Z5J?=
 =?iso-8859-1?Q?a3yzCxNIDOrW9W1iOnLCy+dOeQIgJdIWT/Fg+mVqzOISYN0+clzZB8rbXA?=
 =?iso-8859-1?Q?krqEfg1ZdWkXkit40TtP4+BW8QmBoz5YVWeFMI6YmFKYCOGtyTh2rXbP6D?=
 =?iso-8859-1?Q?wFljHiNVZHGB9rvzNWeBuMd3ziARRp0l1wVJes5+/jhtHVA0itaN932tCn?=
 =?iso-8859-1?Q?OcEpTXY55AWT3L09ioV3JOtQgmAn7DwHRL24+nuIeDEKyWqRAovnGRoYOj?=
 =?iso-8859-1?Q?/2/PtuVgkzBJYPJUc5+y+H4nebQyfzKkcq4HjhTlxzlnZ7Cku/CD15XF1A?=
 =?iso-8859-1?Q?sKx7NlOFeiL7EdwEjehHWee+edHmDpDf2QsMcqofHJNss+WT6aM8hYP9sj?=
 =?iso-8859-1?Q?FpcVLeVHumz8pO7ZRXBQU4glNe1LvfjlgrwCn5/Sazk3gVvaxSAkiH8hBx?=
 =?iso-8859-1?Q?43+2dooQuXnjTpqpWV5/20oQADXl23iPfNFiOytgg/g/7HFgKof2aaoTgi?=
 =?iso-8859-1?Q?QE3umAcvui1YnEIBeIG+coibcPRM+kzwrZrwxH6Q3Z28QwOnzrkja+t4NH?=
 =?iso-8859-1?Q?1yPBfp5/dkK69S9I4Y2Yi0c67/+Fr9UmB1ndrN+wFDzh+ZuuambHGYjKMj?=
 =?iso-8859-1?Q?Yl9P0MIjWaZaRyooY90/KLGuTuozh/+73k9H5DywUZ0rNmsvkTYD7qjhTm?=
 =?iso-8859-1?Q?+/jrkSgLUJaDMiUOiZt5iOtrAXbXLqBNlSJc6+Cg0V9ATBg6hWVbcRKA?=
 =?iso-8859-1?Q?=3D=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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e45c846b-a3ee-40b5-89b9-08dde4734016
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Aug 2025 07:36:20.3861
 (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: FQ+W+r7wk07uRsFpdMjqz38M6hEWydEDYoMXU7iIBpprZxOTGXmqvQDh52ll4uUJz5EVUQnBnnHgPQ71wwdoJ/iURX5+0M80gLIHqvAhT9g=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR03MB8251

MISRA C Rule 17.7 states: "The value returned by a function having
non-void return type shall be used."

Deviate functions like 'memcpy()', 'memset()', 'memmove()', as they
return a value purely for convenience, their primary functionality
(memory manipulation) remains unaffected, and their return values
are generally non-critical and seldom relied upon.

Update 'deviations.rst' file accordingly. No functional changes.

Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
Changes in v2:
- removed snprintf(), strlcpy(), strlcat() from the patch scope

Test CI pipeline:
https://gitlab.com/xen-project/people/dimaprkp4k/xen/-/pipelines/2003537146

Link to v1:
https://patchew.org/Xen/ad15582787e675fadf92502f85041c3232749a99.1756112701=
.git.dmytro._5Fprokopchuk1@epam.com/
---
 automation/eclair_analysis/ECLAIR/deviations.ecl | 5 +++++
 docs/misra/deviations.rst                        | 7 +++++++
 2 files changed, 12 insertions(+)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/=
eclair_analysis/ECLAIR/deviations.ecl
index 7f3fd35a33..8335af1bce 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -575,6 +575,11 @@ safe."
 -config=3DMC3A2.R17.7,calls+=3D{safe, "any()", "decl(name(__builtin_memcpy=
||__builtin_memmove||__builtin_memset||cpumask_check))"}
 -doc_end
=20
+-doc_begin=3D"It is safe to deviate functions like 'memcpy()', 'memset()',=
 'memmove()', as they return a value purely for convenience,
+their primary functionality (memory manipulation) remains unaffected, and =
their return values are generally non-critical and seldom relied upon."
+-config=3DMC3A2.R17.7,calls+=3D{safe, "any()", "decl(name(memcpy||memset||=
memmove))"}
+-doc_end
+
 #
 # Series 18.
 #
diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
index 2119066531..5ee97f41e8 100644
--- a/docs/misra/deviations.rst
+++ b/docs/misra/deviations.rst
@@ -576,6 +576,13 @@ Deviations related to MISRA C:2012 Rules:
          - __builtin_memset()
          - cpumask_check()
=20
+   * - R17.7
+     - It is safe to deviate functions like 'memcpy()', 'memset()', 'memmo=
ve()',
+       as they return a value purely for convenience, their primary functi=
onality
+       (memory manipulation) remains unaffected, and their return values a=
re
+       generally non-critical and seldom relied upon.
+     - Tagged as `safe` for ECLAIR.
+
    * - R18.2
      - Subtractions between pointers where at least one of the operand is =
a
        pointer to a symbol defined by the linker are safe.
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 07:38:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 07:38:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1093989.1449339 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqoGB-00013l-E4; Tue, 26 Aug 2025 07:38:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1093989.1449339; Tue, 26 Aug 2025 07:38: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 1uqoGB-00013e-BA; Tue, 26 Aug 2025 07:38:27 +0000
Received: by outflank-mailman (input) for mailman id 1093989;
 Tue, 26 Aug 2025 07:38:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=n+o/=3G=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqoGA-00013Y-4E
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 07:38:26 +0000
Received: from mail-ej1-x62e.google.com (mail-ej1-x62e.google.com
 [2a00:1450:4864:20::62e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a628ef78-824f-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 09:38:25 +0200 (CEST)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-afcb78fb04cso727610166b.1
 for <xen-devel@lists.xenproject.org>; Tue, 26 Aug 2025 00:38: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
 a640c23a62f3a-afe6edd3414sm505998066b.65.2025.08.26.00.38.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Aug 2025 00:38: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>
X-Inumbo-ID: a628ef78-824f-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756193904; x=1756798704; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=UTUsE7oJP2EeVZhbS+YToiHaXwBeBUNSzgh2GyEiMp8=;
        b=PiiF+HJHNCN2/8bky+1v4xKgqHNcPiQv86yO9AxaQwVKbU63PHtk0b5KofNbqZWgxn
         8tPgtB6KFnGOqn8Cn+SNat9Fw1cV0+o9sN20nOkAe/BurfyGWoUyfGzJXCHFYRnbwHvO
         FwwQgqQRv8vhwbQJGRJA/9jFz7+h8huTa4ctcpdnHmCqU7iQ+wZXPJk8Rat0sU6gYYE6
         QfXWRuTyW2USr2f8h29lHZ37PIYKhdj7w4TR4jetMocSPBIWm4jLTvvViPOtjTnn4ddk
         XJ8Yne+k7Wmi6CbMti1kB3s4zNOMTve0o7z4mPgHSgqhfK7beUUBxcgi1497n+mO5bT+
         hKAg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756193904; x=1756798704;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=UTUsE7oJP2EeVZhbS+YToiHaXwBeBUNSzgh2GyEiMp8=;
        b=fV1Mi3+ZmJxj3QQsGpw4XM3QLqYBPuCYZMWvNutPw8SX81nxwuyIgObFsVFiJ+dsEZ
         LWuEUO+oZIo7Tddw1PuhL1l+KSztUcFG7w8k9cJ/g8iGwtd/Lw4OOp1mLl5yhbNXFyeT
         GDsaqN2s52ykjw1k6QxRtCE0ueaS/pl0/vBccvgtYcz1qD7PTiK7q+iMkUhGt6BwXKfp
         3jnNAvfCeJNfBU/slVrLaaVfes13STXL0CNFHlWm6tngvbJMnmdNBSE+h8N11T8UHDMf
         l2Gq3REecSHvEIiGAXVwhLMJ0XZMoStLyEX6NGtEsoyhHZjD3Mc8M+p3mAGuS984ohFz
         ejow==
X-Forwarded-Encrypted: i=1; AJvYcCUxXe8VO2SyFO4OhtFSEi42JZeVTVsGBDcQY0qJDfGHdtl6/KYK7ggu/ZZq5X2krZYh3nGfzJIsvMk=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywpkmkh7s3rDFmVHYRUoBQGmogkuJfKQMp1mDz0J+n4Jk9ocp7q
	TRuqSSZtohEiCV/+NfoQyaVqExhjF3rxnVJZelboklhMlBnEomfbmzu9n30wzJzMHQ==
X-Gm-Gg: ASbGncucqdpxJKAIT7/aZ8/d91dmDd3VZzFKntk4DloADJTDpFkwj5wKw7grjxsKi1b
	Mq3zV6rjyJ2sd2cpHFWlqByH9VYTttNAoMLfCIhS29seTaODUPwRP9ki8dIYhr1oxeFhu8iYbF9
	gwo8eKXZxJ8XRgh6Avr524X4r69oiqmm6fgD1jXeU3CcRvYos2X9vUYXGYnPop5PIFBvKUyyUZE
	bObUxjzoLCQgHdbD6fDSgHCAXN63OhGu6REKEdSaRfIxuLwIHQ7ieYLSeLgIa8TT+54mrzLZq0G
	wp7K+61tPGAShX6sInbDNTfER6f8kpLf37pHgW2aIdzE/l7jB9MU8iEo2d9m5nqfHfzvEHtOKNl
	+4BwQrIOuPRM9jcFf5tGtKvD4SYtRb49Ph4qvp2JrIX5tvcOLEEDudYkBhpmDdRkuCRAsk4D1ui
	MyQe+KyKHIB83kK3gFp8LAEQKiiQDi
X-Google-Smtp-Source: AGHT+IFJLW8b1P5uaAbYAIZ+Csab4nTiXd7T+JlIfLdF4+vjzNnCVuBNPW2uW9+1AHZukv/Pp7fuLQ==
X-Received: by 2002:a17:906:194d:b0:afe:7eb8:dcd4 with SMTP id a640c23a62f3a-afe7eb8e083mr455627666b.35.1756193904527;
        Tue, 26 Aug 2025 00:38:24 -0700 (PDT)
Message-ID: <b643d4b5-85d4-4053-93f7-ca6909c6e95b@suse.com>
Date: Tue, 26 Aug 2025 09:38:23 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 05/13] xen/cpufreq: refactor cmdline "cpufreq=xxx"
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, xen-devel@lists.xenproject.org
References: <20250822105218.3601273-1-Penny.Zheng@amd.com>
 <20250822105218.3601273-6-Penny.Zheng@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: <20250822105218.3601273-6-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.08.2025 12:52, Penny Zheng wrote:
> --- a/xen/drivers/cpufreq/cpufreq.c
> +++ b/xen/drivers/cpufreq/cpufreq.c
> @@ -64,12 +64,49 @@ LIST_HEAD_READ_MOSTLY(cpufreq_governor_list);
>  /* set xen as default cpufreq */
>  enum cpufreq_controller cpufreq_controller = FREQCTL_xen;
>  
> -enum cpufreq_xen_opt __initdata cpufreq_xen_opts[2] = { CPUFREQ_xen,
> -                                                        CPUFREQ_none };
> +enum cpufreq_xen_opt __initdata cpufreq_xen_opts[2] = { CPUFREQ_xen };

The pre-push pipeline flagged a Misra rule 9.3 violation here: A dedicated
initializer is needed to have the intended effect. I've fixed this up for
you.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 07:45:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 07:45:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094002.1449348 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqoN8-0002mw-2m; Tue, 26 Aug 2025 07:45:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094002.1449348; Tue, 26 Aug 2025 07:45: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 1uqoN8-0002mp-05; Tue, 26 Aug 2025 07:45:38 +0000
Received: by outflank-mailman (input) for mailman id 1094002;
 Tue, 26 Aug 2025 07:45:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=n+o/=3G=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqoN6-0002mj-O8
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 07:45:36 +0000
Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com
 [2a00:1450:4864:20::634])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a5885e46-8250-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 09:45:33 +0200 (CEST)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-afcb78ead12so723005866b.1
 for <xen-devel@lists.xenproject.org>; Tue, 26 Aug 2025 00:45: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
 a640c23a62f3a-afe6cdbd545sm512583166b.54.2025.08.26.00.45.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Aug 2025 00:45: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>
X-Inumbo-ID: a5885e46-8250-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756194333; x=1756799133; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ukXDWuhjcY3FOs1/kEGSrCJ30MbA5DJMBSeXSM/e964=;
        b=ZLYmWbxLBpqVr0pw/zCuNSkM3uffL7hH6UVe4cYJvLca5Ma0M2xZB3iImYSH5iHCtQ
         WIJ/LBQwx4vcyv44W5w29sxMntbOTBbdrKW/pM7CLQwSl+CPwCVyX0T4xQ0hxN4u9vsz
         DpiHRLUy9hnHJfDVIZ6zF0SYqnb4IEqQDLl2Rb/MJe9gFIJz36eeJJojf6AknikkIgVE
         vw6OgMBDCOPHP14cgNYQQCjzQUBxMsg8pPCEDkiWe0gpldwMnKI/y6t8b+OPV9uk0mSZ
         3qzi56kVku8bWck4E6n2LR6iWROMG8tP0QEXuHqqcNvQFmG6dLYbPEa537tpVIR3vKGm
         stNw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756194333; x=1756799133;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ukXDWuhjcY3FOs1/kEGSrCJ30MbA5DJMBSeXSM/e964=;
        b=jeQIW+T1tyxq69wGEWaJABs8otFEfdKe8XWOtZ2LbACmHAQyZ+naslA3BY/J16Zd3a
         Cjgg/XlfQMU5Sb0/P4lrg+I/TMSM/dd6jzzQiTibbCl4dtRew421lcEGMZS0LQcbmwU7
         NgorlMx5fRpxLqkg62uGWyt6/vRLvtQGJEuh7yBbvyF4wF9JQjqKq2FABmOod+SSiWXY
         jlPCf+18Q3FTJ5ADQlXsS0glV+8Mx25Z3QZkxrK8g7lIvvvJJ/8DKlKnzeKB0zao5qD0
         2VIP+SoZlwY0aeTX7tzkHBesxXRKBvXKUN8oeQtKXAdrd4i82dpiuuXj/nWB6WHTxZ1W
         0lTA==
X-Forwarded-Encrypted: i=1; AJvYcCWTU03k3uzHH0DL8GAwIlVlUqkskT0B6Y3Y5yrRUBVGQ7+fgGZvkW0KEyo0re6luXmY476lGIDP0JU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzhRn43UAMbFmA5x3AlFkbBv9cc8w59fbsDSjFxOR+rJs4ia38R
	P6lhwKa44i30vx+H/x+ZoMpTFRFDFKtFef5Tg7cdGBohfkCZ7omPEGuPHLtVuOKvLg==
X-Gm-Gg: ASbGncvprkrmXCR+OUHqqEUjh+xRwPDVnFLCi2D/xAWFXoAc4mK7FtasRd7Dm/5WCzl
	brRTD+9NP/vhMOVtunVBjtPSRyJQBKd7WpTrTUOOLoL60DXxd+Ver87+z8az4bTqYpjKCpjUKIY
	We79OHpqbFcdHEU6FVECR9i3DaK/YGcIV4f8zhAIXJdqQDlC/a99f1Az2Sw+BmDWMJLBkjKNVrL
	HVQPXNiM3PlX5nsCoPDsi3ozhtU/NpJemvKuEdnhagKGidP5XA5Bny9agM/P5Y8EexHutVBfC7G
	ryRtyrrV+SfhARmQjf+IapTP3ZbE1CUrIFVwd+9oFNRbbvaysMMYTVNFzhju+0X2TRvNZJBUIzS
	Q9OWfEZFPwMgVhdFbz3rA5SebVBM63OzssH6ku3e+MdHoxLttaMIeOommyrxpa1uDBgl/cpHZDO
	lDCnA1UTaO05CMtpEIHg==
X-Google-Smtp-Source: AGHT+IHlPJgDJDFxYnDlAnZtpR0P8sbgiiIbzyswY41xNDaQEz3VstT1wuOfHOwrbGUcycR5XPUzPg==
X-Received: by 2002:a17:907:928b:b0:afe:7fc2:e383 with SMTP id a640c23a62f3a-afe7fc2f261mr553994966b.1.1756194332991;
        Tue, 26 Aug 2025 00:45:32 -0700 (PDT)
Message-ID: <204a1526-7e3f-4b91-b1ee-95f3d89ff756@suse.com>
Date: Tue, 26 Aug 2025 09:45:32 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] misra: add deviation of Rule 17.7
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <812b78119cee801662a31d39b556cb453aa69508.1756192362.git.dmytro_prokopchuk1@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <812b78119cee801662a31d39b556cb453aa69508.1756192362.git.dmytro_prokopchuk1@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.08.2025 09:36, Dmytro Prokopchuk1 wrote:
> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
> @@ -575,6 +575,11 @@ safe."
>  -config=MC3A2.R17.7,calls+={safe, "any()", "decl(name(__builtin_memcpy||__builtin_memmove||__builtin_memset||cpumask_check))"}
>  -doc_end
>  
> +-doc_begin="It is safe to deviate functions like 'memcpy()', 'memset()', 'memmove()', as they return a value purely for convenience,
> +their primary functionality (memory manipulation) remains unaffected, and their return values are generally non-critical and seldom relied upon."
> +-config=MC3A2.R17.7,calls+={safe, "any()", "decl(name(memcpy||memset||memmove))"}
> +-doc_end
> +
>  #
>  # Series 18.
>  #
> --- a/docs/misra/deviations.rst
> +++ b/docs/misra/deviations.rst
> @@ -576,6 +576,13 @@ Deviations related to MISRA C:2012 Rules:
>           - __builtin_memset()
>           - cpumask_check()
>  
> +   * - R17.7
> +     - It is safe to deviate functions like 'memcpy()', 'memset()', 'memmove()',
> +       as they return a value purely for convenience, their primary functionality
> +       (memory manipulation) remains unaffected, and their return values are
> +       generally non-critical and seldom relied upon.
> +     - Tagged as `safe` for ECLAIR.

I realize I may be overly nitpicky here, but in files named deviations.* I find it
odd to read "It is safe to deviate ...". I further find the use of "like" odd when
you enumerate the complete set anyway.

I wonder whether the deviation wants generalizing anyway: Informational return
values are generally okay to ignore. That is, the Eclair configuration would be
limited to the three functions for now, but the text / comment could already be
broader. Then, for example, open-coded uses of the corresponding builtin functions
would also be covered right away.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 07:53:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 07:53:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094012.1449359 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqoUf-0004YJ-QP; Tue, 26 Aug 2025 07:53:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094012.1449359; Tue, 26 Aug 2025 07:53:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqoUf-0004YC-NJ; Tue, 26 Aug 2025 07:53:25 +0000
Received: by outflank-mailman (input) for mailman id 1094012;
 Tue, 26 Aug 2025 07:53:25 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=pZJD=3G=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1uqoUe-0004Y6-Us
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 07:53:25 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bda9b427-8251-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 09:53:23 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by GV2PR03MB8656.eurprd03.prod.outlook.com (2603:10a6:150:7a::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Tue, 26 Aug
 2025 07:53:18 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9052.019; Tue, 26 Aug 2025
 07:53: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>
X-Inumbo-ID: bda9b427-8251-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=KRI5D9hbieRQQU6BPpFQnOPB2WpcqzAj62JVsbBlSKIBZSLfk4vtXcDnTI0a5cVGnvuxyAhZ159ockF4E+6ctoYrwi2fbM1ko3SIe1KBrHjrObGnLDhXIL6+ozKCUJwBl+/A3YNFQkiuS0dOBDttCc3ow9ede75u7IFUAm2tvDOUt4rqzDHKoBRGS/UyTsjQ93nw3mF3s00HO4fXG9Tqktnkl8JXaqh9t6MgbitBn3a4i1pJRQuCeGW8X2o8hkk+kHCkQVNuT3KFR2m2RysoBc4RQymhxiAzDLNG//SrdQ8P37gF5AKXD68VYvD9fzPfRR/U543ruKPjwqVGk6gJYw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=TfzjJA1ldnUwm9meDMQznQW8Kv97zgxFXIvpL3JLImY=;
 b=TerBe5rWnZkpJiS3M28qalRz/9RrBZDY2neMAhinrDJOiDA+wLCaiHjKyM2wYPW0wxXfEF+gCb9YwUVauw+R7ILsYbFLxA/tirCmqRftv6lR9ynBHfiv8mI+mfLF5nED5IuAmAykRgjZiFU4wo4Vr6zym6fPKinMd4GKSeKaUJrQlpxk4joJ0ulBktVjPvyJ3b7IO/1NJ+P0lbha+G8X4dbqOjiwamK3yIA1xRvUWeUmYm5WMJkFgh+AHVxz20bj5RgBAdqTYnirqMaxPyzErTTxyhsWxPuiH5BvJnxaxdSl2L2GcymNBYrLTL5jeHGxKhJJC5fZAdEHMPaybTt0vw==
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=TfzjJA1ldnUwm9meDMQznQW8Kv97zgxFXIvpL3JLImY=;
 b=RDL/dLlttCGA57/USckj8omkAUf5qVSM2mtM6x3MlMxyttRKukYdfjVyxWcYQpaaPcc+B+AiUQVmyUhox3DS47Cs7LXvx24QCs5J8WSYhZ6il3KTEaIQEma5TekFf5d1UoF/8OL8TDw9NuvoqsJj2EAGq6g4eVK4Cdb3f+M1MusfqZFMAItVOxBk80TX7BnbmtpCXu9v229IU3U3rpZ30NIpxDpSyTzNP0J/nNu242yQnF2o2LPx/0GVx1o2LyWwM2zHQuE3vIOO7eJ6C68Q6EoGs8V5jn/F4Xax87W/RhWtQ0DPQMT2Xq+WGL/emAWg3HUjU9xmnZPgiP4C3Sp8rQ==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Nicola Vetrini <nicola.vetrini@bugseng.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Doug Goldstein <cardoe@cardoe.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?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v2] misra: add deviation of Rule 17.7
Thread-Topic: [PATCH v2] misra: add deviation of Rule 17.7
Thread-Index: AQHcFlwdO9JZfbniJ0qkcPaDWppdx7R0jhQAgAACKoA=
Date: Tue, 26 Aug 2025 07:53:18 +0000
Message-ID: <94b937aa-b27d-4a11-a260-4ef73e1cb4a8@epam.com>
References:
 <812b78119cee801662a31d39b556cb453aa69508.1756192362.git.dmytro_prokopchuk1@epam.com>
 <204a1526-7e3f-4b91-b1ee-95f3d89ff756@suse.com>
In-Reply-To: <204a1526-7e3f-4b91-b1ee-95f3d89ff756@suse.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV2PR03MB9572:EE_|GV2PR03MB8656:EE_
x-ms-office365-filtering-correlation-id: 4989036e-42de-4fe2-e344-08dde4759ed5
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|7416014|42112799006|376014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?SDFXTGg0VU12RTMxZGVucGpVL01tdjJwRWJRSGk3MHVrUm9WOW1uckNuY01Y?=
 =?utf-8?B?RVlVanE4bWMrK3kwMUJ0Wll5WGNXVC82NUQ4Sy92Wm5qRWtWR2FXRTU4a1ZF?=
 =?utf-8?B?RjJoVWZ4cndleHkrTjRMVVpvb212VVpLVEd3TDdHM3hOVTZpVitlbFhMc2FK?=
 =?utf-8?B?eDlKWk04WmJ0V0xtTGE3ZzlaUXY5MjZHdnFGZW9rNW94V1VpT0trUDhWdnEw?=
 =?utf-8?B?R0pGRWZsRnB3Mm45MkJIR0ZTNllRRm5tUEZQQVhQOXptRTRiQzlLdmhIZGds?=
 =?utf-8?B?eGlWaFVXS0g3cFJhSW9PaHV3YXdnVDdSSERXbzhOT3Irdjdkelpmb2pqUnNy?=
 =?utf-8?B?M2orYXl5YnFYeElDM1QxVW9BeXdEWGlHRTlMdzlybkNTZTY1N0JHR0NUNHlX?=
 =?utf-8?B?c0VQWXNieFJONXdMYklwWXJzeDVJNnE5a3AxclZsZVRtYnNYaE1TMlNBOXI1?=
 =?utf-8?B?bWhDZk1BSE5YZ1I4VDBtTi8vUFdyeUFSZGlqZzdwZnNPS1IyTVNCeDVQTng1?=
 =?utf-8?B?NjEralFjWmQrRDRyaklUN2VmQlBRUnZMS2oyc2JvUC9UY0s5eHZlZTc2SHl2?=
 =?utf-8?B?V2UvNGQ0OTBpNGd5TlF1c0U2bCtubWVyY0VJbWFMOUZ6OHlma3l6aTZzSnhu?=
 =?utf-8?B?VU1SOHY0eTJjM3NpeHFIMUQ3S0NqaTNNL0lVRWV0Y2ZqNjMrcGZhd2liVTJ2?=
 =?utf-8?B?R3FaUXVQYUtSbnJaWVc5ZFdPeDk0S0tZS0RQWDBsU1JqRVdVOGxZSHJoa0dt?=
 =?utf-8?B?b2JZSnA0UldhSlprcVhGQ01CbklrdUhmSkN6R3dPMGFyTnNnY01PR0E1TXRr?=
 =?utf-8?B?aEdhNXcrQ1JKNy8vdWpzZWxZMzZ4U2ZpQ3FBcmNSTndVZlYrbzRmY1pYV1Av?=
 =?utf-8?B?VjlKUHJCKzVrM0toMjBaR3JrQURSWm5HT2xSOEp5MEZpWHIrSng2UWFYRC9X?=
 =?utf-8?B?eG5idGhxVFo4MEo1NmVBbEV2NGcyelRyRk0zUlFEaTRocWRZaXhGOW5FVm9L?=
 =?utf-8?B?N2paN2ZSVmtzQ2pBTkdIRDlyMExFOFFrSjF3eENmazNDbzZNaUZQZFpDNjV2?=
 =?utf-8?B?cldJa3V0OXJKWGo0dENhQTZzV0ZvQ3lDMnJxQVNwSG1MZ2k2Y0hSRkJyZ1da?=
 =?utf-8?B?L29aVzV1T1NiamxUMllsendzeFlxM3lDU0dnZXdmaUhPSGk0UnhJeG9lUlFO?=
 =?utf-8?B?R2lIMHRVSmtQUlhTaHAxWlptNU5VMWtOTFlXK2pxNDdUUFVJVWpOOVpoR2F2?=
 =?utf-8?B?cTVKSUtzZk5PR0M0WHdGUGUxa3pFSTFZY1pETjhJN3hHbC9SdDdxY1Z5dXFk?=
 =?utf-8?B?MUJrejJWM2h5ZHdiaDViYWxMQUtJZDNhb2hCbnlBeWN3RFFraG1pL3B4MjNK?=
 =?utf-8?B?ZGhCdit6Mkg1RGllU2N5SForTTRHSC80dU5TUStsWnJDTEdVS2xJS0hCNjAz?=
 =?utf-8?B?WDg4WlVxSEdPVU8wMkpEZWxVZDhhYXhnanhRWnczY01GVlZDUXBUQjZlVUNt?=
 =?utf-8?B?MXM4enpoVEtpSzZUWmhTdlowcVRIOUR0dGoxdTBESmUyaXVvbWwycDFhR0sz?=
 =?utf-8?B?cURpUHpXL0pyNlh6QXp0SU01NUt4aHRNRXhzV05pMFVuWnMza3RQeC9OakRz?=
 =?utf-8?B?REJReVF2ODd1b2FmNnFhZlZRSm9mTVRvVTV6aitYSmF4TGFrK3FxcU9mMHJZ?=
 =?utf-8?B?bGtJUWdJR2VlZGpGVTMzN3Nuc2JUdFhNakoxM2NPTXYyS2J0UE5JRWdQOGdY?=
 =?utf-8?B?QjBiM2lCa21rNk81UmdsWmxZR2lxa3FRNTB4OWNRMjh6akhPQnRMaER1bjFt?=
 =?utf-8?B?WktXSkxRaXVWbWErdTBrcmpUYXVsQ2Z2bjc0WEIyblBEaCt2TWhQWnZhejE5?=
 =?utf-8?B?aFhXemk1R1c0aDhsUVFTTDU4ZW1QRGt5R2hJWWNCRXJHN2s5eFcxYWtPOUkv?=
 =?utf-8?B?RGJVZkNqNVR1TTRVN25XVWdJS0xHZG1rNld4WWpXYTByWU5hSzcwUHNETHk5?=
 =?utf-8?B?Q2ZXYkpUNEt3PT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(42112799006)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?ZFpsbHpjTTRGRmliWU9uMEhmTE5CK3huWlB6SEtJbXUyWE5nczh6b0V0RGJS?=
 =?utf-8?B?N1h1VTVaM2w2bXhnbU9kb29NSmtVMEkyYnU2QXNsbjlIL1IxQ3BiUFlPdFlh?=
 =?utf-8?B?STQrRjgxWndLSmQxcVpXcjc1elliSW9LdUovMTN4eEJKa1lEb0I2YWg5Umlh?=
 =?utf-8?B?OXk4a2Y4emxQMUJGRU9iRGJNUEErYjVoQUExdittY2dFeWYycnpucUVqMmc3?=
 =?utf-8?B?RzhPZkMrRkRRY2FzYmlkdGpoT21JbXlxSzNBNk56Y3pRU1JNM2piWXREcmJD?=
 =?utf-8?B?RWpPZzdwYmlwaGo5RmZzWnc1Rjlyc0NkTHhoRnR1SFRiY3pkRmZYMCt0cFVC?=
 =?utf-8?B?Y1ZiN21IV09Bdm1lZHY1ZHg5RjhFV1pOTkR4Sko4bWUyRTNaNkVQd0FCUVdE?=
 =?utf-8?B?RHRCUVdLa2RIZWl6YS85SjVzY2ZxYVBOVml0T1h0eDh5NVR3M0NXNXJSQTdJ?=
 =?utf-8?B?NVlzaEpiSTV5SCtTVXFiOUR2clNpbGgxTTJxS3VMc2NNcFhldjMwbnU0UGp6?=
 =?utf-8?B?bW9pTWs0SG1NTllsbkNxS1hKZmdvNFVIaStLMWVxV0VKTG5WVW9PMXBnbnFZ?=
 =?utf-8?B?a1ZkeEhTcXBZRDBFeWxCOVZ1eEdHQzVubGEwWnZXNU5XY3d3RjMvcDlna1JG?=
 =?utf-8?B?M0J4eHJiLzZaajhaV29kekpMT3dWQ3UwckJ5K1NEa3dJRFJxalkydkZMTmZj?=
 =?utf-8?B?ZWp3Y0h1c0tPUFU4K2R0WlRHZ2REMVhrZzlUelNWYkhreDJjcW1yUGpVczJl?=
 =?utf-8?B?dTNLUXZnMldFOTJ5K0FwUllCQlFNRitldUFkZVo5SkJaZURhbUExOWJUdThu?=
 =?utf-8?B?eGtNRmhUL3dWL2lIU0ZLTVBBRGNWZ1FIY2tGcHVDN3pHMzdDWW4vOGxvazNF?=
 =?utf-8?B?cnkwTDBSSlZxTGNJZlNrSHNKRU9Mc2Zxc2VMWS9TQ212dEdsVmtiWTN4TXRG?=
 =?utf-8?B?NDA2eWR2RE1kMThKYzgvek15ZHIrTkgxa2dabmtXOWpIcFUyMVcydFVyUFpX?=
 =?utf-8?B?TnJFdFV4UEt5czlZM3hPdUVBS2RkK3Izbjl0UERTVERCaTdRbFc4ZzZ0SWRK?=
 =?utf-8?B?WDBNTlBZeTRYaHlzVHU5aG1jNUt5WjJKVjBweWRNMXRmZmtocGZqUTc2TldB?=
 =?utf-8?B?NGtZNnZtVnJlRnBiNVhJRFd4R2xudjdZTnk4N3Y5TFRJWmFFMG0xd2tVZmFB?=
 =?utf-8?B?Z01Fb0I1R0prcUkzQUtQWWRZQnNxd3d1WHV0Z1IyaElkWG0zbUZaOE1FSmRO?=
 =?utf-8?B?aUxENWJzM0FnT2o1YldXK1dWdXVvUWJXd0pHa3k3aWhBVDl6dEdpajNiT08w?=
 =?utf-8?B?TVh0bW85bGU5MnhzLys3SmpjZzhETGRMaHNsbGJ4dko4dW94K2ZMN3NaUXlK?=
 =?utf-8?B?a1RsNVVVNG82ekRSUUViME56dlBCVS8wT1NtOS9JSkNGTmpmMU1wT1pTQnox?=
 =?utf-8?B?aERsN0cxRW9BeFpZSWk1ZlMwK2dsMndlUGxJUGpBdmxlcGFBVWJFQWNqcWUy?=
 =?utf-8?B?Znl2aVArK2VwaURzeG5Zamk3b1o4bXhRcWQ5Y0oweFgzWnh1Yk5WRHR1QmtM?=
 =?utf-8?B?UDBRNXc2QVBTYmZnUStNK205a3dPYUtHTjExRVhMeVg4YnRqQkhCUnNEOXhO?=
 =?utf-8?B?YllFcEhlV2pSVkdNMWpXQ2xlZzdrdllybHpFa1NWN0l4NmRiZllCZHZLRkV3?=
 =?utf-8?B?UGFlcU9RcC96dzY1MzJyYUdDdm5JR0U5OEpRRllGWmlMT0NycGpTeVFuSzR1?=
 =?utf-8?B?Y3lVWHB3N2NSaWJzMlJ2ZDlSeFBMdWtJZW9PUFRSRk1rK0g5dldWWFV0Ym5O?=
 =?utf-8?B?OUVKQlZxWEFXd0d4L3daVEJ0TjRHMzJZNTN1cGdXMFNvemVJMzQ5cytPVDk5?=
 =?utf-8?B?akxHd1E5Qll6aGlVQnl1eW0wUHJ4UjhRTzQ5Sk5ZQU9QN0JiRlBjczNoTXVz?=
 =?utf-8?B?dnV5Qm1Jb0M3QlBmNUd1a0p1aWJqZHI3ekRJL01zV0tJb1RPS1Zsc25KdkNn?=
 =?utf-8?B?aElPVGRuOTZ4TWtBNFVscjQrU3JuZVA5NExNOE90VVl3eFlXZGxpUitUd2Ux?=
 =?utf-8?B?WlNMcERrVDN4SlpQSjVPZ0hWVDhVdHoxaDMrTEprL0VVc25STmJnYzM0cWF3?=
 =?utf-8?B?VkdvemlYSGxGcDJINGJkQURZTm1kaGNsU1ZHNUUrZ2ViSGtxa205aFA1K0RS?=
 =?utf-8?B?blE9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <2F6F0656003B014AB627229947E55D86@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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4989036e-42de-4fe2-e344-08dde4759ed5
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Aug 2025 07:53:18.3094
 (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: tccPr4Gf0pwLlGfrZjOr3L3F4lamegOTgWR6fFiaAEVreeSgPLUcODqIPttajVf0BMWIUDNJSJrDv6En2K9pQCND8aky39+xiwNTfUF5eo4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR03MB8656

DQoNCk9uIDgvMjYvMjUgMTA6NDUsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAyNi4wOC4yMDI1
IDA5OjM2LCBEbXl0cm8gUHJva29wY2h1azEgd3JvdGU6DQo+PiAtLS0gYS9hdXRvbWF0aW9uL2Vj
bGFpcl9hbmFseXNpcy9FQ0xBSVIvZGV2aWF0aW9ucy5lY2wNCj4+ICsrKyBiL2F1dG9tYXRpb24v
ZWNsYWlyX2FuYWx5c2lzL0VDTEFJUi9kZXZpYXRpb25zLmVjbA0KPj4gQEAgLTU3NSw2ICs1NzUs
MTEgQEAgc2FmZS4iDQo+PiAgIC1jb25maWc9TUMzQTIuUjE3LjcsY2FsbHMrPXtzYWZlLCAiYW55
KCkiLCAiZGVjbChuYW1lKF9fYnVpbHRpbl9tZW1jcHl8fF9fYnVpbHRpbl9tZW1tb3ZlfHxfX2J1
aWx0aW5fbWVtc2V0fHxjcHVtYXNrX2NoZWNrKSkifQ0KPj4gICAtZG9jX2VuZA0KPj4gICANCj4+
ICstZG9jX2JlZ2luPSJJdCBpcyBzYWZlIHRvIGRldmlhdGUgZnVuY3Rpb25zIGxpa2UgJ21lbWNw
eSgpJywgJ21lbXNldCgpJywgJ21lbW1vdmUoKScsIGFzIHRoZXkgcmV0dXJuIGEgdmFsdWUgcHVy
ZWx5IGZvciBjb252ZW5pZW5jZSwNCj4+ICt0aGVpciBwcmltYXJ5IGZ1bmN0aW9uYWxpdHkgKG1l
bW9yeSBtYW5pcHVsYXRpb24pIHJlbWFpbnMgdW5hZmZlY3RlZCwgYW5kIHRoZWlyIHJldHVybiB2
YWx1ZXMgYXJlIGdlbmVyYWxseSBub24tY3JpdGljYWwgYW5kIHNlbGRvbSByZWxpZWQgdXBvbi4i
DQo+PiArLWNvbmZpZz1NQzNBMi5SMTcuNyxjYWxscys9e3NhZmUsICJhbnkoKSIsICJkZWNsKG5h
bWUobWVtY3B5fHxtZW1zZXR8fG1lbW1vdmUpKSJ9DQo+PiArLWRvY19lbmQNCj4+ICsNCj4+ICAg
Iw0KPj4gICAjIFNlcmllcyAxOC4NCj4+ICAgIw0KPj4gLS0tIGEvZG9jcy9taXNyYS9kZXZpYXRp
b25zLnJzdA0KPj4gKysrIGIvZG9jcy9taXNyYS9kZXZpYXRpb25zLnJzdA0KPj4gQEAgLTU3Niw2
ICs1NzYsMTMgQEAgRGV2aWF0aW9ucyByZWxhdGVkIHRvIE1JU1JBIEM6MjAxMiBSdWxlczoNCj4+
ICAgICAgICAgICAgLSBfX2J1aWx0aW5fbWVtc2V0KCkNCj4+ICAgICAgICAgICAgLSBjcHVtYXNr
X2NoZWNrKCkNCj4+ICAgDQo+PiArICAgKiAtIFIxNy43DQo+PiArICAgICAtIEl0IGlzIHNhZmUg
dG8gZGV2aWF0ZSBmdW5jdGlvbnMgbGlrZSAnbWVtY3B5KCknLCAnbWVtc2V0KCknLCAnbWVtbW92
ZSgpJywNCj4+ICsgICAgICAgYXMgdGhleSByZXR1cm4gYSB2YWx1ZSBwdXJlbHkgZm9yIGNvbnZl
bmllbmNlLCB0aGVpciBwcmltYXJ5IGZ1bmN0aW9uYWxpdHkNCj4+ICsgICAgICAgKG1lbW9yeSBt
YW5pcHVsYXRpb24pIHJlbWFpbnMgdW5hZmZlY3RlZCwgYW5kIHRoZWlyIHJldHVybiB2YWx1ZXMg
YXJlDQo+PiArICAgICAgIGdlbmVyYWxseSBub24tY3JpdGljYWwgYW5kIHNlbGRvbSByZWxpZWQg
dXBvbi4NCj4+ICsgICAgIC0gVGFnZ2VkIGFzIGBzYWZlYCBmb3IgRUNMQUlSLg0KPiANCj4gSSBy
ZWFsaXplIEkgbWF5IGJlIG92ZXJseSBuaXRwaWNreSBoZXJlLCBidXQgaW4gZmlsZXMgbmFtZWQg
ZGV2aWF0aW9ucy4qIEkgZmluZCBpdA0KPiBvZGQgdG8gcmVhZCAiSXQgaXMgc2FmZSB0byBkZXZp
YXRlIC4uLiIuIEkgZnVydGhlciBmaW5kIHRoZSB1c2Ugb2YgImxpa2UiIG9kZCB3aGVuDQo+IHlv
dSBlbnVtZXJhdGUgdGhlIGNvbXBsZXRlIHNldCBhbnl3YXkuDQo+IA0KPiBJIHdvbmRlciB3aGV0
aGVyIHRoZSBkZXZpYXRpb24gd2FudHMgZ2VuZXJhbGl6aW5nIGFueXdheTogSW5mb3JtYXRpb25h
bCByZXR1cm4NCj4gdmFsdWVzIGFyZSBnZW5lcmFsbHkgb2theSB0byBpZ25vcmUuIFRoYXQgaXMs
IHRoZSBFY2xhaXIgY29uZmlndXJhdGlvbiB3b3VsZCBiZQ0KPiBsaW1pdGVkIHRvIHRoZSB0aHJl
ZSBmdW5jdGlvbnMgZm9yIG5vdywgYnV0IHRoZSB0ZXh0IC8gY29tbWVudCBjb3VsZCBhbHJlYWR5
IGJlDQo+IGJyb2FkZXIuIFRoZW4sIGZvciBleGFtcGxlLCBvcGVuLWNvZGVkIHVzZXMgb2YgdGhl
IGNvcnJlc3BvbmRpbmcgYnVpbHRpbiBmdW5jdGlvbnMNCj4gd291bGQgYWxzbyBiZSBjb3ZlcmVk
IHJpZ2h0IGF3YXkuDQo+IA0KPiBKYW4NCg0KWWVzLCBmdWxseSBhZ3JlZSB3aXRoIHlvdS4NCkkn
bGwgdXBkYXRlIGl0Lg0KVGhhbmtzLg0KDQpEbXl0cm8u


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 07:56:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 07:56:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094023.1449369 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqoXf-00056T-7A; Tue, 26 Aug 2025 07:56:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094023.1449369; Tue, 26 Aug 2025 07:56:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqoXf-00056M-42; Tue, 26 Aug 2025 07:56:31 +0000
Received: by outflank-mailman (input) for mailman id 1094023;
 Tue, 26 Aug 2025 07:56:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=dnfn=3G=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1uqoXd-00056D-Go
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 07:56:29 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2b31f635-8252-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 09:56:27 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id D1B5D4EEBC47;
 Tue, 26 Aug 2025 09:56:25 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2b31f635-8252-11f0-b898-0df219b8e170
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=1756194985;
	b=EElN+fFoy2R6YGEkxfGMlWldCMc7dMR5nG0jLAO4v39x9QuwE4TjCObbDwk0U3Pz6dUB
	 hRgx3tlscoTYyh1wUIr9tH0Swbp7K2SWw6esqB5fGIZd6abqini+U53P6J5Mb+X5JrfiE
	 B6qrPhU68aX8OpRTsj2J1yzfiivte0JoUQl1tntl1iLiYWIUv715oYfd2g5zYlec4cOy6
	 s4N3jzCkR160N983eu4C9LnCiBkjWLONmPqIvdpqzddH9NYk0YEiAQzMuRXH8me6E0yh0
	 TbmiEzeGzDu2l2KNgW5hxQASS/3u6uRNTec4Xe2mdOS7GIB3mTwvrNpVo/UCuDqYnuH3o
	 E72GxtQso8IEdKG5929KZBoKDCdnvTP9AIo9s3/QrxsxfLV702ngPboQI0Ii99HO57UWl
	 ODS4V9pIuqm6MuTFVNSngQNQ6v/3/dvNM1lA2fX8+adBSW+zrz+dit+9hQ/GCH6ajsrAC
	 joK+RnjENDNzH4oUjdZWoiShdrahdhac3r2qwjPja3INszLoc97qpO+Dza+rTmS2+sX5i
	 NgJF1g+HFnXx6iS8tMvEOQX3tIB2Sn8vJSjghopRzUx805An37ltR3DrvrbpGXrtKCxVv
	 fEvyPgs72m/qXp5TkZwL2xmd7K75rv+uOntFfciYObBByh5+g0Ixhd8Wxg/0sps=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1756194985;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=2a34Nk9dEAydgyzZvGZr7cQoriBy4lEgOXv122koJ+o=;
	b=jdNVHBmJsSsJWvXy7fwEPHHuh/qufVnwbNRyYsdjT4VgVBTrD8YtGypwaEpNKrAaJrD2
	 TZRcP0+Zist2lAEl1vVKob+ZRR9fjfUyr5mgYWTeb9seNDIlEyWg4jhsz/zwqk8FpWV9F
	 59ERV/hoeAewoGS0/FgTMUd/TDhj/n84ows6Y67GpWgoSN3nZtCutWPxufKnpDz0eUPUP
	 VDVS194esfWJIja1ovr23Tf/l/njNx5baWCCG9scqrj0T/7FUJo0dV80vlwfdKsmkK1kH
	 x/CDwieHNW0CoyC0yD/LYC51BLiuNbCAVN4C13Rvb7fbtQJ9gvuFoKaSTkCzBTI9pXpHn
	 7oqRRe1QcaFdwsDOB7CFbg4/mn+7XaQ8O01WBxAje0TBMDhGkTM692ZSgst9IT8+gbiVn
	 n8IN3oFI+ZWG8VMaEiYhSDIXchIYJ/d6qRwM3UYjjYkGqx5RUD/ySzzHi3tV0n+L6hc25
	 gcBv6RU8Z0Wz62b78FmZ83XSM4IuCQPtP02faCPXF1ucM8825aEO2cVfslK/2cY+LCMww
	 9EOGVaafD6u2ZMhEHlrGFldOshQWCun1/PnMOV28c6eczgM86w/rTPhM9FagpgZzsWDvz
	 D43+d58TEbalUDo66XAeupHmMBVUbSpM19Ub+bt9fO7HrBwNSE5BWCH2w9u3suk=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1756194985; bh=9kiD3Gg1MpTc3e705GzsFWjkOCq6RUiuNIpz2u0NpyM=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=E2w6y19qt7qq9j09BHYvF/J0qkF4M0Yo7f54iFEWssElq/e9TzMi+jOQu5LNBfe0G
	 ZWMI+1FCLQb0sX5XGGgqmV3ORJVVpWJmDVcQAK9h+tdgv/ddCbznbJ9n9bGSqNXhGX
	 1Amrns4CBIHn/oCoSi3pM3pd2HanjPxEH/fnvv9vnfI2J65EHcO1LwdO+qd7y0YKPF
	 w0MqcpWiv+XZ3Y8LXbK1tr0uhLFMVVBcgXLoPuRwKTH9HgpD2F3hA9vmarrXUbtqZI
	 1OMLGP5jrOkkWrO6GM3pAVvQcmchEFMFLEUleKi2WUOI0Hnkrrpo2ydRcZJyxl7ZCR
	 k/TQikzMoit3A==
MIME-Version: 1.0
Date: Tue, 26 Aug 2025 09:56:25 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, Doug Goldstein
 <cardoe@cardoe.com>, Stefano Stabellini <sstabellini@kernel.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
 <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Julien
 Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2] misra: add deviation of Rule 17.7
In-Reply-To: <204a1526-7e3f-4b91-b1ee-95f3d89ff756@suse.com>
References: <812b78119cee801662a31d39b556cb453aa69508.1756192362.git.dmytro_prokopchuk1@epam.com>
 <204a1526-7e3f-4b91-b1ee-95f3d89ff756@suse.com>
Message-ID: <112a4ab83bf2abce09d4ff1b67671847@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

On 2025-08-26 09:45, Jan Beulich wrote:
> On 26.08.2025 09:36, Dmytro Prokopchuk1 wrote:
>> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
>> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
>> @@ -575,6 +575,11 @@ safe."
>>  -config=MC3A2.R17.7,calls+={safe, "any()", 
>> "decl(name(__builtin_memcpy||__builtin_memmove||__builtin_memset||cpumask_check))"}
>>  -doc_end
>> 
>> +-doc_begin="It is safe to deviate functions like 'memcpy()', 
>> 'memset()', 'memmove()', as they return a value purely for 
>> convenience,
>> +their primary functionality (memory manipulation) remains unaffected, 
>> and their return values are generally non-critical and seldom relied 
>> upon."
>> +-config=MC3A2.R17.7,calls+={safe, "any()", 
>> "decl(name(memcpy||memset||memmove))"}
>> +-doc_end
>> +
>>  #
>>  # Series 18.
>>  #
>> --- a/docs/misra/deviations.rst
>> +++ b/docs/misra/deviations.rst
>> @@ -576,6 +576,13 @@ Deviations related to MISRA C:2012 Rules:
>>           - __builtin_memset()
>>           - cpumask_check()
>> 
>> +   * - R17.7
>> +     - It is safe to deviate functions like 'memcpy()', 'memset()', 
>> 'memmove()',
>> +       as they return a value purely for convenience, their primary 
>> functionality
>> +       (memory manipulation) remains unaffected, and their return 
>> values are
>> +       generally non-critical and seldom relied upon.
>> +     - Tagged as `safe` for ECLAIR.
> 
> I realize I may be overly nitpicky here, but in files named 
> deviations.* I find it
> odd to read "It is safe to deviate ...". I further find the use of 
> "like" odd when
> you enumerate the complete set anyway.
> 
> I wonder whether the deviation wants generalizing anyway: Informational 
> return
> values are generally okay to ignore. That is, the Eclair configuration 
> would be
> limited to the three functions for now, but the text / comment could 
> already be
> broader. Then, for example, open-coded uses of the corresponding 
> builtin functions
> would also be covered right away.
> 

While I understand the pragmatic reasoning, from a MISRA compliance 
standpoint it would be better not to make the written justification and 
the actual deviation diverge, and then wide both the ECLAIR 
configuration and its justification suitably once new cases want to be 
deviated. Other than that,

Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

-- 
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 Aug 26 07:59:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 07:59:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094037.1449379 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqoal-0005it-O7; Tue, 26 Aug 2025 07:59:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094037.1449379; Tue, 26 Aug 2025 07:59: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 1uqoal-0005im-KF; Tue, 26 Aug 2025 07:59:43 +0000
Received: by outflank-mailman (input) for mailman id 1094037;
 Tue, 26 Aug 2025 07:59:42 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=n+o/=3G=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqoak-0005ig-Fg
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 07:59:42 +0000
Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com
 [2a00:1450:4864:20::52c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9e8d74fe-8252-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 09:59:41 +0200 (CEST)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-6188b72b7caso7102516a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 26 Aug 2025 00:59: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
 4fb4d7f45d1cf-61c314b5b26sm6405627a12.25.2025.08.26.00.59.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Aug 2025 00:59: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>
X-Inumbo-ID: 9e8d74fe-8252-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756195180; x=1756799980; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=sPhvepvvfes2P+n+k+Sr5TxiYh1foypcPFHBfDbbOK0=;
        b=XvW041/glFntKa45TR1Ae0GhNf99EVfAnFn2wCCxXNvxua3SrOcFPOk+GhbBJrucKy
         m8McanlXX4dyvXkxoGIx3mV2NuXy4d5zEJwpd6inMLlYK+FVUlCR5Ah1iaRVudwe9cR/
         M3f3CV+MUbNeHu4bU7CokTAwrgEnDikyIrbFlQzAydPi95zVsEmVGcOAo7lrLaHtoPo0
         jXyi4tzq596w9dNx6r4PfGzHQv9s8MhEMf/y0cQP5qRDRU2wLYm8mPA4EeiC4rRQT9TZ
         Fh+b+/ef4zZLBqfkGG8K0JlkU+JiG0NkdTESsMP5oFXQrFWa8h99avsZuMfHcflFUNQx
         BdVg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756195180; x=1756799980;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sPhvepvvfes2P+n+k+Sr5TxiYh1foypcPFHBfDbbOK0=;
        b=LLSj1XLmP51xFy/X5e6Xnx09DJFbkVf5A2iqZ+KEAAKgY56Cwn2UCt0HHlPaKnNZKl
         ShUeL1Panw/fjzrE9bzqYOvZXIEJKEw326Gj7/Eq/89kAGgSPnGA6j/O2tXUViuDaoEa
         VujdW0dmiipzDfeBYyyJ/Je54PnkzDG+tsVQKQdmbiAe+HnEK14WVd+trwwHcJwQdvyZ
         sI67Jwgpc/f4vxhjzriwTcYQXMUfY4vSzzRUfF0by4tTsfxWZBPItjS+h6aoi2v8VLqW
         sz+paCGaMIe16oVpqdNQ88uH92Pnj6KseQLoISCvN4N0gcAlCG6tw2P/QDlDMJXD4e77
         9E8g==
X-Forwarded-Encrypted: i=1; AJvYcCXngz6I8+s6FwsZmmyCOfBRgyQJp6onP7gjphFVLJ/y+u8VrA2y/ojsCFJ2wYvH1G5WQz6BefX0sUQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzPO3HLWndINiTIms1A72esJQ+mSbKtoVvAARWYKmJ5Rd11GIlP
	zQvxbkiVtpxM/ZhChWN1/Y3SfazA6yb/GSCz7xw3OGenll7Pd0Cy/+RKpw8GW8PGoQ==
X-Gm-Gg: ASbGncuAjjbcCJfPgVxmZ944fXmv+8DfYmecuKcOjYNwKJfNolsSPvX3sHsQn69EbT6
	f2/5WQkb/XctXiKGICc170trQ7klU9s0aMremED4sBEiZKA2r8qAWh7bUmMH2ekMi/j2hSHP+Gp
	2/V7cfXmkDuK/HkNcSJ/0QawqtxzSCB3YYMj8lU5f4D9lJfEAoFCyocT8hc/Fj/DRnZwofBwWTe
	jwj8nhYjyz/v3G6Gg1DUH6XD1/MyjMkUV7UfM1QXQ+ytPvf3CPtMsOsFXaxH3wmunVPgPwTv8nt
	XpWVGfpwl4i+4aktkpfVf+IFLAcxay3CvKWYDK7MJsRlS/kEc6Q4GXeAZKYXpVoTu7kfuVEFUZ6
	6IJg1LAtqjQMAEJg9ZgsPOW4JfWY8gzVMHT0rwENDo4thl8vNNQkpCvgENZCxw0CZAlsneFAkHz
	lkizbW5bQFtbCH5acQhg==
X-Google-Smtp-Source: AGHT+IESVikUcKoRJOc4GPF9ZnGsAg3kfe0FTCJNReQpHWHQNMTT2o7ZzTExy6x1Nx/G5a31wOkfWA==
X-Received: by 2002:a05:6402:208a:b0:61a:8103:7fe2 with SMTP id 4fb4d7f45d1cf-61c1b487cd7mr11747968a12.12.1756195180249;
        Tue, 26 Aug 2025 00:59:40 -0700 (PDT)
Message-ID: <abb80220-6029-4c51-8a43-78bc8bddf179@suse.com>
Date: Tue, 26 Aug 2025 09:59:39 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/7] xen/page_alloc: Simplify domain_adjust_tot_pages
 for future changes
To: Bernhard Kaindl <bernhard.kaindl@cloud.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>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 xen-devel@lists.xenproject.org
References: <cover.1755341947.git.bernhard.kaindl@cloud.com>
 <5f417fea5ca8e4da0d4b9679103c3eff4bc92900.1755341947.git.bernhard.kaindl@cloud.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: <5f417fea5ca8e4da0d4b9679103c3eff4bc92900.1755341947.git.bernhard.kaindl@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 16.08.2025 13:19, Bernhard Kaindl wrote:
> --- a/xen/common/page_alloc.c
> +++ b/xen/common/page_alloc.c
> @@ -510,8 +510,14 @@ static unsigned long avail_heap_pages(
>      return free_pages;
>  }
>  
> +/*
> + * Update the total number of pages and outstanding claims of a domain.
> + * - When pages were freed, we do not increase outstanding claims.
> + */

If already you add such a comment, please have it be complete: There's
also an update to the global "outstanding_claims" in here.

>  unsigned long domain_adjust_tot_pages(struct domain *d, long pages)
>  {
> +    unsigned long adjustment;
> +
>      ASSERT(rspin_is_locked(&d->page_alloc_lock));
>      d->tot_pages += pages;
>  
> @@ -519,23 +525,22 @@ unsigned long domain_adjust_tot_pages(struct domain *d, long pages)
>       * can test d->outstanding_pages race-free because it can only change
>       * if d->page_alloc_lock and heap_lock are both held, see also
>       * domain_set_outstanding_pages below
> +     *
> +     * If the domain has no outstanding claims (or we freed pages instead),
> +     * we don't update outstanding claims and skip the claims adjustment.
>       */
>      if ( !d->outstanding_pages || pages <= 0 )
>          goto out;
>  
>      spin_lock(&heap_lock);
>      BUG_ON(outstanding_claims < d->outstanding_pages);
> -    if ( d->outstanding_pages < pages )
> -    {
> -        /* `pages` exceeds the domain's outstanding count. Zero it out. */
> -        outstanding_claims -= d->outstanding_pages;
> -        d->outstanding_pages = 0;
> -    }
> -    else
> -    {
> -        outstanding_claims -= pages;
> -        d->outstanding_pages -= pages;
> -    }
> +    /*
> +     * Reduce claims by outstanding claims or pages (whichever is smaller):
> +     * If allocated > outstanding, reduce the claims only by outstanding pages.
> +     */
> +    adjustment = min(d->outstanding_pages, (unsigned int)pages);

This would be all fine if there wasn't the cast. It's only a latent problem,
yes, but I think we still would better avoid introducing such. Imo this wants
to be

    adjustment = min_t(unsigned long, d->outstanding_pages, pages);

or the equivalent

    adjustment = min(d->outstanding_pages + 0UL, pages + 0UL);

(personally I'd prefer the latter despite its odd look, for not involving
any casts).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 08:07:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 08:07:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094050.1449390 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqoi1-00088O-HN; Tue, 26 Aug 2025 08:07:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094050.1449390; Tue, 26 Aug 2025 08:07:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqoi1-00088H-Cw; Tue, 26 Aug 2025 08:07:13 +0000
Received: by outflank-mailman (input) for mailman id 1094050;
 Tue, 26 Aug 2025 08:07:12 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=n+o/=3G=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqohz-00088B-VP
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 08:07:11 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a850a95d-8253-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 10:07:06 +0200 (CEST)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-61c3360bbaeso3590209a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 26 Aug 2025 01:07: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
 4fb4d7f45d1cf-61c8f03ba0dsm1141769a12.37.2025.08.26.01.07.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Aug 2025 01:07: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>
X-Inumbo-ID: a850a95d-8253-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756195626; x=1756800426; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=9Dsge3N2ds9TjHCwT0kd5qwMLF0Hup7hBxmuNzHOM2U=;
        b=g9iNg+YSgNmQcAtjaDIBg3rfVRzzWxZOpJtSNbCosgffXbnOxdmdl3gGQxLeUJsS3A
         ahM4H6pZeqlL80hpevyvkgvGkxdHbtTMQa5zQqlia8sDBsWcjZY5W3FfygArFoAB5MRD
         Drd6l2rffeEHthGywKig7ZuQFJuaX6hOJcW9w1FLkr6BrSqra3LFfjgP/IDTP1HiFZZd
         mmZokmPsOutHYgLj6IPp3cym4bixo6RBpfsWJAZDWNAXv4MWBG/4xDj+NYBXS/pB5b+l
         xz2TCs1b0Cu7HODUcpRnSDB0v/OvWIDFcj1gkTM+RTF7p6NTmXTAChQ/FrG4U4vnjJvS
         gflQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756195626; x=1756800426;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9Dsge3N2ds9TjHCwT0kd5qwMLF0Hup7hBxmuNzHOM2U=;
        b=wq4LI+nAIoFHPhGj8vK/iBhv/mmKiQgA7t2hd+ShixgWUmtSGFIhzTj1U1tFzdqON7
         S41dyVpRwhtWKUPJY0B/FpD7g9OmTYDOYg1pGFVq5SxHO7W19W/6vlwRvqFTSbkw98Pw
         vi3mP4ai86QSJQlb31Ihk1qKUc2CchrU3g5jMZcyEPW7N9Y7vBcv9t46CcZAuGUqfPZA
         A18Ztk+DHxCbkD3teljNdxV4pu+ziOc+ZpQH3KwI5pZKdwaLOv9lDAwvtOegS57jrPRJ
         mLqtkfSza1NgWAkSYmr7yKgdsWJNefLzYgaFvivR0gWqZjb+kRb7e0ArVY5RDCXFe3EY
         kmbQ==
X-Forwarded-Encrypted: i=1; AJvYcCWUOPWF81EtZfa6MEZetg1/yQHRuz0RELKw3vBGDt31zR+ULyXFCts37O1sS3DG8+3/U6sAFnhdJPY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx1Va9DnlI1vxeseTFGIHS1CVjXJk2pyixXXH/DZi0AQUzGr7b5
	FcdgDH0w2U2W7vyqja4hz6wkk+3xYwasu9NeNLMsZSZK/6W7ZODibMCGpXzlxp/Vqw==
X-Gm-Gg: ASbGncsj0EVYKZZLtIkofTzYumBVRlAQ2i98iZaf5scWV8hsWa6xYwn+p9gbsDIizF7
	xDe6oViDCto/fO0E4/LMKxmpLHynXITiDk9M4Dthhc8Zf+uFZ6cECJwL/Xo6uG0C4FSikJtdBgc
	wf3KzJwWloXCg30F73j3XsAgMjHx2pDZtMsEe0OqD1SOHQWiR7XPhpaBHJDNsrmZFa7I+MMDnEl
	VbTJg1D6/v99Ca+jYQYAuU5yJGuUcdqxbn2LthPhnl5nJI5nzRta6e35neYDl2g76Rp5fcknYqi
	6L/AYt4VT9Lwt5Ebm2xHjxHXFb23ROD0cJ1Rqglmx1gZuqL1YtcbjCy/yl524IFgoJHIIFB2tgm
	f6ajtuF7EsHs7o6RiB4ax+JSWLxcc99ZivEfsrQVLcTSCfUhKV4/T8RYufIJJGfpNh8dal30V7P
	UA0LmI1JA=
X-Google-Smtp-Source: AGHT+IHMxOPAXxxlta1KwBGmAglRO26Jo3mZX16mQwnZIpeiAJCI4Ws754gLZxr6SCrCvzVZaei41Q==
X-Received: by 2002:a05:6402:2791:b0:61c:5a8c:9a4e with SMTP id 4fb4d7f45d1cf-61c5a8ca251mr6056817a12.4.1756195626016;
        Tue, 26 Aug 2025 01:07:06 -0700 (PDT)
Message-ID: <0dfd8cc0-7c70-4ceb-9f48-f1bce16459aa@suse.com>
Date: Tue, 26 Aug 2025 10:07:04 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 0/7] xen/page_alloc: Add NUMA-node specific memory
 claims
To: Bernhard Kaindl <bernhard.kaindl@cloud.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>,
 Tamas K Lengyel <tamas@tklengyel.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Juergen Gross <jgross@suse.com>,
 Christian Lindig <christian.lindig@citrix.com>, David Scott
 <dave@recoil.org>, Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 xen-devel@lists.xenproject.org
References: <cover.1755341947.git.bernhard.kaindl@cloud.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <cover.1755341947.git.bernhard.kaindl@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 16.08.2025 13:19, Bernhard Kaindl wrote:
> Xen supports claiming an amount of memory ahead of allocating it to
> ensure that the memory for the domain is available for allocation.
> 
> On NUMA hosts, the same assurance is needed on a per-NUMA-node basis
> to ensure optimal placement of domain memory on the correct NUMA node:
> 
> Add per-NUMA-node claims and add a new Hypercall to claim memory for
> a domain using XEN_DOMCTL_claim_memory and xc_domain_claim_memory().
> 
> As we will implement multi-node claims as well, we updated the design
> to be flexible for multi-node claims, so that a 2nd series can build
> upon it without changing the hypercall API.
> 
> Bernhard Kaindl (6):
>   xen/page_alloc: Simplify domain_adjust_tot_pages for future changes
>   xen: New API to claim memory for a domain using XEN_DOMCTL_claim_memory
> 
> Alejandro Vallejo (1):
>   xen/page_alloc: Remove `claim` from domain_set_outstanding_pages()
> 
> Alejandro Vallejo and Bernhard Kaindl (5):
>   xen/page_alloc: Add static per-NUMA-node counts of free pages
>   xen: Add node argument to
>     domain_{adjust_tot_pages,set_outstanding_pages}()
>   xen/page_alloc.c: Create per-node outstanding claims
>   xen/page_alloc: Check per-node claims in alloc_heap_pages()
> 
>  tools/flask/policy/modules/dom0.te  |   1 +
>  tools/flask/policy/modules/xen.if   |   1 +
>  tools/include/xenctrl.h             |   4 +
>  tools/libs/ctrl/xc_domain.c         |  42 ++++++++
>  tools/ocaml/libs/xc/xenctrl.ml      |   9 ++
>  tools/ocaml/libs/xc/xenctrl.mli     |   9 ++
>  tools/ocaml/libs/xc/xenctrl_stubs.c |  21 ++++
>  xen/arch/x86/mm.c                   |   3 +-
>  xen/arch/x86/mm/mem_sharing.c       |   4 +-
>  xen/common/domain.c                 |  32 +++++-
>  xen/common/domctl.c                 |   8 ++
>  xen/common/grant_table.c            |   4 +-
>  xen/common/memory.c                 |   6 +-
>  xen/common/page_alloc.c             | 154 ++++++++++++++++++++++------
>  xen/include/public/domctl.h         |  17 +++
>  xen/include/xen/domain.h            |   2 +
>  xen/include/xen/mm.h                |   6 +-
>  xen/include/xen/sched.h             |   1 +
>  xen/xsm/flask/hooks.c               |   3 +
>  xen/xsm/flask/policy/access_vectors |   2 +
>  20 files changed, 285 insertions(+), 44 deletions(-)

Having looked at only patch 1 so far, it already becomes clear that revision
information is lacking here. This is more important than usual for this series
because (a) a patch with a pretty similar title as patch 1 here has was
submitted by (and meanwhile committed for) Alejandro and (b) you picked up
earlier work by him. In fact I first thought you lost his S-o-b on patch 1.
That would have been easily clarified by indicating in the patch that it is
new in v2.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 08:20:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 08:20:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094061.1449400 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqoud-0002Va-KK; Tue, 26 Aug 2025 08:20:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094061.1449400; Tue, 26 Aug 2025 08: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 1uqoud-0002VT-FV; Tue, 26 Aug 2025 08:20:15 +0000
Received: by outflank-mailman (input) for mailman id 1094061;
 Tue, 26 Aug 2025 08:20:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=n+o/=3G=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqoub-0002VN-Jj
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 08:20:13 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7c00165a-8255-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 10:20:11 +0200 (CEST)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-afcb731caaaso797777266b.0
 for <xen-devel@lists.xenproject.org>; Tue, 26 Aug 2025 01:20: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
 a640c23a62f3a-afe75109ca5sm462599466b.58.2025.08.26.01.20.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Aug 2025 01:20:10 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7c00165a-8255-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756196411; x=1756801211; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=aC/24mHp22BmuCbHwaEp8QneZ0ImnP+hNnsva6n5/oU=;
        b=N2DwzUxWm0WH31I1Jr8PAYfDnaz9mAuqEHdiwJ4qxyHW4eANZgs/6LW6H/kg/9jtSQ
         opandyA/eBYN5gLqOVK8yKANANt/wKmuSplrcG0ruznJbh7rdlrlCxsUJPx6X6bRl9pw
         EKGOs9OBokpwdgXYe/fJeYHuussVwV2ipZ0VZpjl9UtsIhljNwByEUBzRP1Awuf9QxF6
         1a4yvYo09nCIsPOW92+C+iRXZbTOA2hzlRoDPNG/RalUaoqHwSkMk+o1kqU+d//SxV4v
         3YWELQpcKOF9YCJZkCM4BR6RKUFc2UvhHON03btbiagoe9evR4opTagLzr/5E8IR8iEZ
         yqMQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756196411; x=1756801211;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=aC/24mHp22BmuCbHwaEp8QneZ0ImnP+hNnsva6n5/oU=;
        b=j2Xdw80f7I2PhJhgZ4YvD1PYKdM1L7YVgAgqyOc/M5P6G8ktgSL3fX4UvXnr+usY/W
         jlAWGkUp2eRLBoVTMlSi0YquIZt3A6HsK6DNsY3bWTecbabkTIbjjdbtKtPz8MvNJAXQ
         60Ooa5Rb4i7xTDKOYatJSPuR2V6ipgQzoszQzAC2g/BP5+OUj8HTVw+8Vgzpb/D+2VAg
         qF95HMFJuHA+LcVUd9lVASCgYB4WOxSOSBKjxR4ar73RilK+N8UCLzUT/qh2P/rnTwnF
         SciUpeeOTCA5RSm1nkPjfADxvj85WGYWFCDhyLnUtclP/xRy8UrTiGuqNrWGIPEtPqeE
         M6SQ==
X-Forwarded-Encrypted: i=1; AJvYcCV6XD8DR6BdHOIZs1zjhbKlFUlo2aiXJSo0MAUtGXCgQRoycJjotsOidkP7EfuryfejWlktIEfIWLM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyDapU0RX5Gf8MboI2cNr8RYZxUG/pS++JYVUwX133RgxIkERg3
	qaq3Z7RbLw+yRyKdlq2jWsqrA0d6r98WaSMUNcjpgsv1mdbhxXPjjXylAYHK+fcDsw==
X-Gm-Gg: ASbGncuq1ZBuWt7QFd/WL05rgtuTiUp5aT1HXmZJp+gzMpIfoqncIrJxlFw7IfhiLgl
	epnBf48pZx9/QSOofw6gT3GLXvi5hH8sXkXnb7SS6fDQslab9OfYVKRD6Dcg5gXp3yCQWuNDiPg
	Bne6Qujgv3UeVHySAh7Z+8kmnH8TxTLL4u/yM4XjjsjnQ+PIK7UH9BobHWh942QUtaZs5Ip87Vx
	F2HzcBXRfKcCPhYEzt9a+fM1lFi7C8im5tH5JL8fTGAA4/U7/MHtNe03cTy8rHTlNVGUzwDmFD8
	XfhlxPQE20vmF075H6ojybLgn+OGGY2vJys2t0V0oj4m2iasarIBU+MIDYRoe4c/bWbdBMwYxhm
	Ps++83Ljv1kIIvRSWdwqVCJpG/xAnnoqLA84yKO1cl2pq/g+/daUFlUZKdUNBm0hKY3JSoGIWsL
	eTiMb9hwk=
X-Google-Smtp-Source: AGHT+IHENUYscltLPvgtizsNG6g0YBi47paU1hK2gooY6rx4X8m2TSImCERES0IqJ0T7K7Cce2ogQw==
X-Received: by 2002:a17:907:268b:b0:afd:c31c:2488 with SMTP id a640c23a62f3a-afe295380cdmr1462827866b.39.1756196410537;
        Tue, 26 Aug 2025 01:20:10 -0700 (PDT)
Message-ID: <6f66b871-9a2a-4b7f-9dcd-57dbd2922f21@suse.com>
Date: Tue, 26 Aug 2025 10:20:08 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/7] xen/page_alloc: Remove `claim` from
 domain_set_outstanding_pages()
To: Bernhard Kaindl <bernhard.kaindl@cloud.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>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 xen-devel@lists.xenproject.org
References: <cover.1755341947.git.bernhard.kaindl@cloud.com>
 <73dc08d9ec628823309acc40a2603e9138bdd4b1.1755341947.git.bernhard.kaindl@cloud.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: <73dc08d9ec628823309acc40a2603e9138bdd4b1.1755341947.git.bernhard.kaindl@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 16.08.2025 13:19, Bernhard Kaindl wrote:
> With a single global count for the claims it is easy to substract
> domain_tot_pages() from the claim so the number given in the hypercall
> is the real reservation of the domain. This is the current behaviour.
> 
> However, a later patch introduces node-specific claims and those interact
> very poorly with such a scheme. Since accounting domain_tot_pages() in
> one case but not the other seems strictly worse than not accounting them
> at all (which is at least consistent), this patch stops substracting
> tot_pages from the claim and instead checks that claimed memory +
> allocated memory don't exceed max_mem.
> 
> Arguably it's also clearer for the caller to align the amount of claimed
> memory with that of the requested claim. xl/libxenguest code never updated
> an existing claim: It stakes a claim, allocates all domain memory, cancels
> a possible leftover claim, finishes building the domain and unpauses it.
> 
> Signed-off-by: Bernhard Kaindl <bernhard.kaindl@cloud.com>
> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>

Is this order (and the lack of From:) correct? A patch of the same title was
submitted by Alejandro at some point. Additionally the cover letter lists
this one patch as the sole Alejandro-only one. I'm also uncertain if you may
freely alter the original S-o-b, which was still having his @cloud.com email
address afaict.

> ---
>  xen/common/page_alloc.c | 19 ++++++-------------
>  1 file changed, 6 insertions(+), 13 deletions(-)

>From eyeballing both patches nothing has changed. That would support the
tagging as Alejandro-only in the cover letter, but it also means review
comments weren't addressed. Such non-addressing would, however, require a
verbal reply to those review comments, which I can't find any record of.
Instead in a reply to Roger's comments Alejandro indicated that there
indeed was an oversight on his part. My separate comment wasn't replied to
at all.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 08:22:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 08:22:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094071.1449409 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqowR-0003Ji-US; Tue, 26 Aug 2025 08:22:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094071.1449409; Tue, 26 Aug 2025 08:22: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 1uqowR-0003Jb-QX; Tue, 26 Aug 2025 08:22:07 +0000
Received: by outflank-mailman (input) for mailman id 1094071;
 Tue, 26 Aug 2025 08:22:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ofj+=3G=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1uqowQ-0003JT-E2
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 08:22:06 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on2060d.outbound.protection.outlook.com
 [2a01:111:f403:2412::60d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bc25466a-8255-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 10:22:00 +0200 (CEST)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 SA1PR12MB7317.namprd12.prod.outlook.com (2603:10b6:806:2ba::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.17; Tue, 26 Aug
 2025 08:21:55 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d%7]) with mapi id 15.20.9052.019; Tue, 26 Aug 2025
 08:21: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>
X-Inumbo-ID: bc25466a-8255-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gJLgEG9G68SG74JO0yuF8PVgGcQwIv4PBGtiiwELG8EI/Uzctk0CJdby6PreElLMp0uaG0rWb5WxlX1BbJjXdE0s4XsBR/N5+ltuHkpeME5TveNyP6RPY1J5+hquETQUVkUf4iFK4ly09KMbJwDKnrXrCBQdIgx9iTf0PlgjyMCyD0JWwxjclg88O1Kb3WH5LwJuwCmC/DCGRpSTFFpUifS1PxKKV8JGuiC+NPR6b/uXaywtee+aa0bshHAGSWHCX5upxQwygqTCD1uRhpCkMJBQw7zKzprneY37NVKzdJtuuK+ibmgNkjCfa/6cun1yN8XxBd/DFIWC6fYg2dSGUA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=px3ujermkuIgj3WrZnBLkXS1fkDkxnPp7/NdwTK64XQ=;
 b=idc5ETh4nLjoah54MP7RJwAsivxsZu1zSgHs3hlSDqRo6tiBXajMgBcwpC16e4lXWjQH87+WQRHtVNSVZuPCdrEg0MPJzQqKn9sMzh+tRmLqT9A0iXoRbNnuHog2nzbS/LJRzhYU1gB/GxgntKcRZtqoXty046jiYQMf75dnzaNHA5JHghNnNZsrtU9o0oOJ7I5iXXyC0DiPu/pkQiGEOmkV1neBqTauFzf0WDZe/PtDk7v6SLMobx+Dz2p05TJux2VCEgyS208XJNzHg2fdDlFifbclDTmUk9Dcq8JKqU4LoUu/rCf6t0Es+nKj4T0yUtO23M3nj2253nCuXdr7iA==
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=px3ujermkuIgj3WrZnBLkXS1fkDkxnPp7/NdwTK64XQ=;
 b=jgAG1scBo3+r8UdKpQvR+m/LxqDZLSvDCpb6ZOTUpH3W7+/XqDqFHYicSwqCFOhLf3w5dum7NsIsK5R0d+r3VzW1Ul4HjRbYz0TZN2I19EtU7NksSbhpTFGFubTOYENVRMM3k9M2AzsJMAVRPmUubQl8qVK0VJmIVuEnnHZsdDE=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, "Orzel, Michal" <Michal.Orzel@amd.com>, Julien
 Grall <julien@xen.org>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v7 11/13] tools/cpufreq: extract CPPC para from cpufreq
 para
Thread-Topic: [PATCH v7 11/13] tools/cpufreq: extract CPPC para from cpufreq
 para
Thread-Index: AQHcE1LyQ0lYyaNtv02FRdV+NHpcFrRzhX0AgAESjyA=
Date: Tue, 26 Aug 2025 08:21:54 +0000
Message-ID:
 <DM4PR12MB845198356D8DDCE39A62DF29E139A@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20250822105218.3601273-1-Penny.Zheng@amd.com>
 <20250822105218.3601273-12-Penny.Zheng@amd.com>
 <b54e3460-380b-41e4-b9e9-75ba5c6129fd@suse.com>
In-Reply-To: <b54e3460-380b-41e4-b9e9-75ba5c6129fd@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-08-26T08:21:46.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|SA1PR12MB7317:EE_
x-ms-office365-filtering-correlation-id: 6df3d917-5afb-45df-bfbc-08dde4799e03
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?MHczWjdMUW51ZUJFSWlGTy9XOG9CR3lUbDZYRXE1UjZDNEZZV2x6bktlV2xQ?=
 =?utf-8?B?aUYxSGdmcVVHN0pNZ1haZVVPanBzbDdmWjlmWTh3eUZwNSs1a0FGVzBja1Jq?=
 =?utf-8?B?U3VYbW1iQk5qRHVFZnZnNFNnOUE4d2RGTW1GTXRrd2RWbXhMM09uNnlVYS9W?=
 =?utf-8?B?bXV5QTgzdUU2UWJ2Qk1aYjgzR3pyR3Bic2NSbW1ZK2s2RENCZ0RtbW1veFJ3?=
 =?utf-8?B?dFRKVHRla2YzcWYrMGsxaEZvRWFRWm1UblpYd3FWS3ArNUN3NUxwblNVYU1y?=
 =?utf-8?B?LzN1WmxCS3Z6TkFVaENrM002NzJpMnlVK1BVVTFRQndjNTVoRitxVUZKdlhU?=
 =?utf-8?B?WkJnWDlhSm9oSnM1bWxzQjlySldOaWxZZGdsSURQOEdDSGhyQk5Bc1l3aEtq?=
 =?utf-8?B?VTB3bTBFMnZJbmxXQkIxSm1ybmtnc2FiZldzOTBVdncxQ0ZHY0R1QW92L2ZB?=
 =?utf-8?B?QmMvc05IQVFrZUpXQlF2RitqTGZmNEx0NkN5THVKOVdRREgrdTRiSGhyeURq?=
 =?utf-8?B?N0FhNnc3VEU0R0ZFckZVWjc0RC96Skd1bUdGMnBPeTN6MS9uT3EzSlFmS0Z5?=
 =?utf-8?B?aUdIaUhJRUx2cXpYK2NkWDdiMjRsekJZRUdIOExqU256Z0V5ZTFsUzNrUDho?=
 =?utf-8?B?NHoyT0NCUkpub041eUhqdUNLTUxoaG1wQ0xrb3lZRys1dUxyRjc2Z0JOU1dJ?=
 =?utf-8?B?NWRXU3YvMGlwc2xMZlVsUjdoVGZUMXVSbUpSSVBPSllZSHhiSHg5c0g2dDZl?=
 =?utf-8?B?Q0Uvc0poaWwrWXpFTng3cDM5eitreU0rQkZ5UW5aZEZLLzZGeXRGRkY0VFV3?=
 =?utf-8?B?UUpSZUpwWDQyT2VuOG53WVpxWUtDUTJ1V3dCdjc3K3JaODRYRVEydmdBaCs2?=
 =?utf-8?B?ZjRXTlViTTdGNjA3cE8vM3pndXlReWVUVWNtcDFya25HWmpUQXNwcm00eWdY?=
 =?utf-8?B?NXhuOUQrWnROYVNDSHFPaVNaSjUrd3dMQi9XR1lnTkhVd2NxOVdyMzdTLzRy?=
 =?utf-8?B?RWFHdUNObEJHem5LaytYR3dKbUt5dnNYcExhbXIrUmxxK0wvbDFSczZza2JQ?=
 =?utf-8?B?S3Y4b0tManZwQ2NSdUhMdDI2QmhzU3p3S2t3QjRHak10dDhDdmt3aXlSSFVp?=
 =?utf-8?B?bktsQnRtTzhtRTJjbWo5aHRSdHdBUG92V21PWFdRQ081OW9jZDkwRU5BOEZx?=
 =?utf-8?B?Y0pVaTYxYStPdjNISms3cExPRW9tS1BPeG9nckY2a25aNkwyc1ZPTFhndTJt?=
 =?utf-8?B?NnFlR1lBNFBTWk15OXpnK0hDZ3FEa201cGF0UTZ5aUpnTmliTEUrSDhoTkVi?=
 =?utf-8?B?RDBUV1V2NzR3R1pxTkE5SDRYNjJvTWRTM3lTRTNtTUl5ZExOa05EbzN6aW9E?=
 =?utf-8?B?K2pydm5MbEgwazFmWjZpZkx2OWZEUFEwWEg3K0hPRm03eGJPbGJWdFVOMWNJ?=
 =?utf-8?B?SlF3VXhjNWN4cFBFUkNmZ0xQNHAyR1ZlSkpESHNkRmFLTWFWUE41RFRYd3hX?=
 =?utf-8?B?MVJRRnVIVkx5S1kwTlBWQmpjTjZjR01hM0k3MS9lbFZDTTZWQnUzWTV1ckJQ?=
 =?utf-8?B?NkkvWlN0dWIrUVFKbU4xUENTTENTeXBxSDdDRjgwb3grTWhnVytzUnFFaDVU?=
 =?utf-8?B?cGQ4b1dFYTFMVlM3K1RKRlp2RHAzY0xnbytvVVJBL3IrWHU1SC9mRXAwQ3Ba?=
 =?utf-8?B?ZmUvd2sycEZqb01XS2JveTlmaDcrejY2dndxSG1sU2hXaEczNGFGOUg4MzYx?=
 =?utf-8?B?VWJCdUkyeHB4ODBQakZya0N6bHVXZlplVlVXT1FMbCtMcmhLR3REZ2I2cXZv?=
 =?utf-8?B?a0wvNGtWeXg0YUlDdlZrd211NTBxNDdTa21KY3FFdGtUUms1QThhNUhDS092?=
 =?utf-8?B?YzBvVExoeE51NjQ3R3NZR3FJV1BBOTYvY2NlVXFLMVY4ZmUwak5ZUEJab2J1?=
 =?utf-8?B?L3NVVFJoTG1tNmRzalFaS3lGYnpEUDNKQ1dpM0tQZXhOVzdmUTc0R1dPbHcx?=
 =?utf-8?B?TG1wUUF0QjB3PT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?bU9TR1ZBbHNnUDY2TGg3NkJTamNhWmtyZFVoc3QxNVIvbEF0V0J1dXlVUGhq?=
 =?utf-8?B?YndjUXNJdGswRVFBMHlwWTdwTCtGTzB6cmZYQkhKR0haVm9POFlUZzBSWUFE?=
 =?utf-8?B?dUFnYkhtVGtzcnBSVTE4VUJXSU9BSFFLdmVnLzA4UVg1Qm1lb3FPOXM3WGdO?=
 =?utf-8?B?TklnSXZqVWZjWjBqNHJwWkFTYnAxWEFkTlQraStiYndyTjB1MGdNa0hzWTUr?=
 =?utf-8?B?TmhmWmhqbW02SnJkdnZFWHdvYTNldXdZMlNOTVpYTFhuUFRQMGdmVlFPUkRq?=
 =?utf-8?B?YUNKSWdBOWhZT1MrZVhDUlk3TFhNZnZZK0ozV21ieDNTaVpoR0Fiand0K2lX?=
 =?utf-8?B?eWc0dnYvRnFFM09xVnlxNExzWXQ3M0R1SHhSeWVOcGF5MHZiampLbG55cGhO?=
 =?utf-8?B?NGlpREVVNlcwcTVaRWw2Ryt3RHZsU2s4Nit4YTZwL0pQWVNuN3d5Z0dqdnBJ?=
 =?utf-8?B?RVJrTkphQVVtNGZESk1mVHArejRHK2wyV0NCWjdvanY5S2owUW5kdUVVYVIr?=
 =?utf-8?B?ZVU0MGdZeEtISUUydGY2M2ttZmJWVmN0SVFPTk5JOWNnUStwZTVpREhTblRM?=
 =?utf-8?B?c0MwNzBiZ2NORXFIdG45NWIwZjlMR3ltc2JEeTZSclJpeTNZemdjb2hXZXlo?=
 =?utf-8?B?WnhxR2hHSjF5RW83dFFhKzRaalBoS3YwMlVrUStCcXNiRnhPait3N3hSSEh3?=
 =?utf-8?B?OHF0NGVPd08wTXdIOUZxSXVJZEF4NVNQQnJZTXc5Yk0rNGRScHdpRFMzb3RY?=
 =?utf-8?B?YlhpU3V0eTNVRldhSUF1WkF5RlBGbi9VUlhCMVFuRXlnZkxZbG1JbEEvcy9B?=
 =?utf-8?B?Z3lNcmM1ZUZaMmpWbUhqWHh4aHJXbFROaDRmcHN2azNDY05aS2o5N0lqNDQ4?=
 =?utf-8?B?RGlTZjVCVXNFaEVRVlU5REJ3UmFNaGhtUTdla0RhVVMvenlvNm9BZ1pQWjRQ?=
 =?utf-8?B?RWdJVjFpeTRFaE9QRnA3UWo3bmJhU2Z3NENVeklWQXlOcVpnUjAzMGs1aVRi?=
 =?utf-8?B?V0pWeVJpcllUd1EyUzdrY2VQdG1odWR6RDBjdlp2ZVh3OFNOOUpIVXBzdUll?=
 =?utf-8?B?UWc5K0VOOXgrdnBSbUJTclFNMHRQWHZIYzA4aWlrbFVydHMzNHpMZjFCWm1a?=
 =?utf-8?B?TzBRM0pOR2VaZDA5STdpQlgwdFl6aFBTSms5VzZ0NE9VN0thZzU4N283cHdP?=
 =?utf-8?B?SEtLZmtMYno3R2NBZXhlREs3ekFqRTN0alREeUVoSDFVV0dDM1lpaXRMZkQ5?=
 =?utf-8?B?VGZ6YVlndWd1M3pSR0F3b2tsYzVzM1ZVUTJNblhFd0lGb3RDVnBjYWl2c3lo?=
 =?utf-8?B?dHlMYjhxOGNIVTdxU2MxWDMzblBtYWVVajc0V04wUlVuMXIwdVA2MTU4Q2VP?=
 =?utf-8?B?emhjS3VpSDkxOFlZU1FSSFlheHp0QlNNZi9naGN2NmtXSTlZbzB1UUxpenE1?=
 =?utf-8?B?azdhc0djWGJmekRrUjU5N2p1eWdJY25mLzNDSmhvRWZlWnYxR3NESlBSczBo?=
 =?utf-8?B?SWRQNTlmZzJmSXdxYXNPa0JCUVNyY0x5bFN5cDUyTWE3SXFUZFg4Z1dtSE9X?=
 =?utf-8?B?Q1FlYmxoOXVVS0I0dGtYYmhJbmdSOG94WkxMSDIxSk9TYXRZS2prcjJGVXNO?=
 =?utf-8?B?TDFaWjVYT21sRXFwbkVGUVpHcTdvNHp2REs3TDZhMUhlQ0pyV2lwS2Q0UEZ0?=
 =?utf-8?B?WXBtdU1KSVRWcmdkYXhHajZkZHc2UnZtMERnWnI3UkVJb2J3NWZFOEJYcVBp?=
 =?utf-8?B?QmJkRmM4MkZBdmlvT00rVVEwMDhoSm92a2krajd5TVEwUmk4YnJkSTdaTzRD?=
 =?utf-8?B?NzRVeTJrWm1UaExxaEVnZjNXVFpzZVBwS0lqdXQ4VjZhTi9kbDlTWk94dSs5?=
 =?utf-8?B?cUtsaG96UlRLOC9kcEdVcm85UkU0TVRwdGJHWVd4bjF3Ny9nSm9uVS85cGY3?=
 =?utf-8?B?Sys1M0V4Y1h3Ukl1VHFJT01wdE9oTkJYSVd2dUdRU09vQVl3VlpZdWtuekR5?=
 =?utf-8?B?QThRZGJMeFlzWXNWYnpQWFVGdWF3NXpvdUN1c2ptd2dwaWs5VGRMYlRYQ1Nt?=
 =?utf-8?B?TjdLNkhFNTZCSE5TUDBQazZXYmhZeklpR1ZKZFNweFN6TEJlQ0lLNEhEY3I4?=
 =?utf-8?Q?z6AY=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6df3d917-5afb-45df-bfbc-08dde4799e03
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Aug 2025 08:21:54.9191
 (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: +JPnmC6RsYBKBGSiBsENv6ULeqMY9ec/sp6Sbuq6syuveWR9xWIR8D9VgQFt7oeYyqXU4HagykAYLyj/G4DyjA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB7317

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IE1vbmRheSwgQXVndXN0IDI1LCAyMDI1
IDExOjM3IFBNDQo+IFRvOiBQZW5ueSwgWmhlbmcgPHBlbm55LnpoZW5nQGFtZC5jb20+DQo+IENj
OiBIdWFuZywgUmF5IDxSYXkuSHVhbmdAYW1kLmNvbT47IEFudGhvbnkgUEVSQVJEDQo+IDxhbnRo
b255LnBlcmFyZEB2YXRlcy50ZWNoPjsgSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPjsg
QW5kcmV3DQo+IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT47IE9yemVsLCBNaWNo
YWwgPE1pY2hhbC5PcnplbEBhbWQuY29tPjsNCj4gSnVsaWVuIEdyYWxsIDxqdWxpZW5AeGVuLm9y
Zz47IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPjsgU3RlZmFubw0KPiBT
dGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPjsgeGVuLWRldmVsQGxpc3RzLnhlbnBy
b2plY3Qub3JnDQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjcgMTEvMTNdIHRvb2xzL2NwdWZyZXE6
IGV4dHJhY3QgQ1BQQyBwYXJhIGZyb20gY3B1ZnJlcSBwYXJhDQo+DQo+IE9uIDIyLjA4LjIwMjUg
MTI6NTIsIFBlbm55IFpoZW5nIHdyb3RlOg0KPiA+IFdlIGV4dHJhY3QgY3BwYyBpbmZvIGZyb20g
InN0cnVjdCB4ZW5fZ2V0X2NwdWZyZXFfcGFyYSIsIHdoZXJlIGl0IGFjdHMNCj4gPiBhcyBhIG1l
bWJlciBvZiB1bmlvbiwgYW5kIHNoYXJlIHRoZSBzcGFjZSB3aXRoIGdvdmVybm9yIGluZm8uDQo+
ID4gSG93ZXZlciwgaXQgbWF5IGZhaWwgaW4gYW1kLWNwcGMgcGFzc2l2ZSBtb2RlLCBpbiB3aGlj
aCBnb3Zlcm5vciBpbmZvDQo+ID4gYW5kIENQUEMgaW5mbyBjb3VsZCBjby1leGlzdCwgYW5kIGJv
dGggbmVlZCB0byBiZSBwcmludGVkIHRvZ2V0aGVyIHZpYSB4ZW5wbQ0KPiB0b29sLg0KPiA+IElm
IHdlIHRyaWVkIHRvIHN0aWxsIHB1dCBpdCBpbiAic3RydWN0IHhlbl9nZXRfY3B1ZnJlcV9wYXJh
IiAoZS5nLg0KPiA+IGp1c3QgbW92ZSBvdXQgb2YgdW5pb24pLCAic3RydWN0IHhlbl9nZXRfY3B1
ZnJlcV9wYXJhIiB3aWxsIGVubGFyZ2UNCj4gPiB0b28gbXVjaCB0byBmdXJ0aGVyIG1ha2UgeGVu
X3N5c2N0bC51IGV4Y2VlZCAxMjggYnl0ZXMuDQo+ID4NCj4gPiBTbyB3ZSBpbnRyb2R1Y2UgYSBu
ZXcgc3ViLWZpZWxkIEdFVF9DUFVGUkVRX0NQUEMgdG8gZGVkaWNhdGVkbHkNCj4gPiBhY3F1aXJl
IENQUEMtcmVsYXRlZCBwYXJhLCBhbmQgbWFrZSBnZXQtY3B1ZnJlcS1wYXJhIGludm9rZQ0KPiA+
IEdFVF9DUFVGUkVRX0NQUEMgaWYgYXZhaWxhYmxlLg0KPiA+IE5ldyBoZWxwZXJzIHByaW50X2Nw
cGNfcGFyYSgpIGFuZCBnZXRfY3B1ZnJlcV9jcHBjKCkgYXJlIGludHJvZHVjZWQgdG8NCj4gPiBl
eHRyYWN0IENQUEMtcmVsYXRlZCBwYXJhbWV0ZXJzIHByb2Nlc3MgZnJvbSBjcHVmcmVxIHBhcmEu
DQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBQZW5ueSBaaGVuZyA8UGVubnkuWmhlbmdAYW1kLmNv
bT4NCj4NCj4gQWNrZWQtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4gIyBoeXBl
cnZpc29yDQo+DQoNClRoeA0KDQo+ID4gLS0tIGEvdG9vbHMvbGlicy9jdHJsL3hjX3BtLmMNCj4g
PiArKysgYi90b29scy9saWJzL2N0cmwveGNfcG0uYw0KPiA+IEBAIC0yODgsNyArMjg4LDYgQEAg
aW50IHhjX2dldF9jcHVmcmVxX3BhcmEoeGNfaW50ZXJmYWNlICp4Y2gsIGludCBjcHVpZCwNCj4g
PiAgICAgICAgICBDSEtfRklFTEQocy5zY2FsaW5nX21pbl9mcmVxKTsNCj4gPiAgICAgICAgICBD
SEtfRklFTEQocy51LnVzZXJzcGFjZSk7DQo+ID4gICAgICAgICAgQ0hLX0ZJRUxEKHMudS5vbmRl
bWFuZCk7DQo+ID4gLSAgICAgICAgQ0hLX0ZJRUxEKGNwcGNfcGFyYSk7DQo+ID4NCj4gPiAgI3Vu
ZGVmIENIS19GSUVMRA0KPg0KPiBXaGF0IGlzIGRvbmUgaGVyZSBpcyBhbHJlYWR5IGxlc3MgdGhh
biB3aGF0IGNvdWxkIGJlIGRvbmU7IEkgdGhpbmsgLi4uDQo+DQoNCkVtbSwgbWF5YmUgYmVjYXVz
ZSB3ZSBkZWZpbmUgdHdvIGRpZmZlcmVudCBjcHVmcmVxIHBhcmEgc3RydWN0dXJlcyBmb3IgdXNl
ciBzcGFjZSBhbmQgc3lzY3RsLCBzdHJ1Y3QgeGNfZ2V0X2NwdWZyZXFfcGFyYSBhbmQgc3RydWN0
IHhlbl9nZXRfY3BwY19wYXJhLg0KQnV0IGZvciBjcHBjIHBhcmEsIGl0IGlzIGFuIGFsaWFzOg0K
dHlwZWRlZiBzdHJ1Y3QgeGVuX2dldF9jcHBjX3BhcmEgeGNfY3BwY19wYXJhX3Q7DQpTbyAuLi4N
Cg0KPiA+IEBAIC0zNjYsNiArMzY1LDMzIEBAIGludCB4Y19zZXRfY3B1ZnJlcV9jcHBjKHhjX2lu
dGVyZmFjZSAqeGNoLCBpbnQgY3B1aWQsDQo+ID4gICAgICByZXR1cm4gcmV0Ow0KPiA+ICB9DQo+
ID4NCj4gPiAraW50IHhjX2dldF9jcHBjX3BhcmEoeGNfaW50ZXJmYWNlICp4Y2gsIHVuc2lnbmVk
IGludCBjcHVpZCwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgeGNfY3BwY19wYXJhX3QgKmNw
cGNfcGFyYSkgew0KPiA+ICsgICAgaW50IHJldDsNCj4gPiArICAgIHN0cnVjdCB4ZW5fc3lzY3Rs
IHN5c2N0bCA9IHt9Ow0KPiA+ICsgICAgc3RydWN0IHhlbl9nZXRfY3BwY19wYXJhICpzeXNfY3Bw
Y19wYXJhID0NCj4gPiArJnN5c2N0bC51LnBtX29wLnUuZ2V0X2NwcGM7DQo+ID4gKw0KPiA+ICsg
ICAgaWYgKCAheGNoICB8fCAhY3BwY19wYXJhICkNCj4gPiArICAgIHsNCj4gPiArICAgICAgICBl
cnJubyA9IEVJTlZBTDsNCj4gPiArICAgICAgICByZXR1cm4gLTE7DQo+ID4gKyAgICB9DQo+ID4g
Kw0KPiA+ICsgICAgc3lzY3RsLmNtZCA9IFhFTl9TWVNDVExfcG1fb3A7DQo+ID4gKyAgICBzeXNj
dGwudS5wbV9vcC5jbWQgPSBHRVRfQ1BVRlJFUV9DUFBDOw0KPiA+ICsgICAgc3lzY3RsLnUucG1f
b3AuY3B1aWQgPSBjcHVpZDsNCj4gPiArDQo+ID4gKyAgICByZXQgPSB4Y19zeXNjdGwoeGNoLCAm
c3lzY3RsKTsNCj4gPiArICAgIGlmICggcmV0ICkNCj4gPiArICAgICAgICByZXR1cm4gcmV0Ow0K
PiA+ICsNCj4gPiArICAgIEJVSUxEX0JVR19PTihzaXplb2YoKmNwcGNfcGFyYSkgIT0gc2l6ZW9m
KCpzeXNfY3BwY19wYXJhKSk7DQoNCi4uLiBtYXliZSB3aG9sZSBzdHJ1Y3R1cmUgc2l6ZSBjaGVj
a2luZyBpcyBlbm91Z2g/DQoNCj4gPiArICAgIG1lbWNweShjcHBjX3BhcmEsIHN5c19jcHBjX3Bh
cmEsIHNpemVvZigqc3lzX2NwcGNfcGFyYSkpOw0KPg0KPiAuLi4geW91IG1pbmltYWxseSB3YW50
IHRvIGFwcGx5IGFzIG11Y2ggY2hlY2tpbmcgaGVyZS4NCj4NCj4gSmFuDQo=


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 08:27:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 08:27:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094090.1449420 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqp1j-0003zr-LQ; Tue, 26 Aug 2025 08:27:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094090.1449420; Tue, 26 Aug 2025 08: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 1uqp1j-0003zk-GI; Tue, 26 Aug 2025 08:27:35 +0000
Received: by outflank-mailman (input) for mailman id 1094090;
 Tue, 26 Aug 2025 08:27:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=n+o/=3G=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqp1i-0003xb-BJ
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 08:27:34 +0000
Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com
 [2a00:1450:4864:20::52f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8319f385-8256-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 10:27:32 +0200 (CEST)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-61c51f56fc7so2821475a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 26 Aug 2025 01:27: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
 a640c23a62f3a-afe97a4b200sm189985566b.72.2025.08.26.01.27.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Aug 2025 01: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>
X-Inumbo-ID: 8319f385-8256-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756196852; x=1756801652; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=vk9oEXQUuuCqS+5OcX6u6YR4jfHfn6PX0VzBM94cGp8=;
        b=FZ9aO+H2aZv6eJpC2dXVRVxWXa/cVQtcnXKrMyd9avnpAOnXwTMTzARgT6B/HnMtvA
         QE7KrvkNS0TBppuGpZBiOMniAzOeSnzVACe5AOtDbVYBaGj/KHdCXX2i8akEimKuK23U
         6H7xrJPcQd0FOJZk2e4Llj6+KIXPuBzLTp7ecr2NWuzxlC61a5pjfFfduvO3jzXwQQQq
         sZZkp2dp+Jqnl+IUuY4z2Q/kTBoB4CCTvVlZuTFL+yPlz7F57f8QFPRcMfq7j6emtIG3
         kU2z4xTJjPMWV3RNY+Jofm1tCNkiuHpbJ/TDvEh3J9YSdIbx/UHfqF99WLoWSyPERwCc
         /VNA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756196852; x=1756801652;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vk9oEXQUuuCqS+5OcX6u6YR4jfHfn6PX0VzBM94cGp8=;
        b=n3rbS5yxTe8LXiuNHXLNPeABMQKxKDBL+aaqq3ABDkl77ecfTqYgLvKpc9MflVr2Qz
         TK7Fb3nIqZMbTj4YXtq3+/HYtgQf0F7YFViikYS0p0w4iq5K+B4+V6GNOTAKJeCZyyFU
         IuZu/bbc5CfwjlteA9wFkTxSfafpLlHs/KxHhyG43mSc4Cz/r8JVxCKljvQt4gGFa+G3
         YPnMNANkZq2xzcRkjzyxK9C6hHy4AhdglzPMsg3Iqoxd/yWhudz0sV98jRRnOQm5bbup
         auK+QYBoZivN1Q0ctd9ZxyMK+N6nibgmc8VF6t6HgAah5AFYQLcHFNQS9rMXQF2qclgS
         Vwcg==
X-Forwarded-Encrypted: i=1; AJvYcCX5rH8tKtSEfV5G3Wern0435eKd3du/ubBBH+jsibftns8Z0eeBwPtVhohmOQmv/lxRhdjlaF8LlFc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxBev/q6BXR8IiDNp37hYqfKUo94RmckhztWw/YHQy6S8X9FgSP
	2t8TAIn2MpmUpy5ZwGrfoNfqdtgmKikIxiu2+rSWV3sxb8buE94PCrtFarqhcH9kcA==
X-Gm-Gg: ASbGncu7nh6+JsuJZRqkw93ftvqqc3fRn5PMmmT5VsLMODy1+8bhiYzPbrMaQQLTb4F
	OgsvCBF64LCob37Pnw6BzgCM8j3OSKZnRIBDRBd3T/iXRPLPxVSZt+FACaiiSt0UbPLOzmolkuE
	VCFzOTx13j7wexWR85D1uKLAqHDZ+p2eWVRkGkkTW/UwRkvS5eQtTZzlTRHOoMToOzm4R6CQkJh
	tHvyZ2+oqJe8XZ+O/B6Ja9o5BL28bN48ToHXF79KmwJq0PsQMWjQJQQHn1hfWl6U/mNZfRcQfuw
	LaSCnnsf+9dk0eKvlkHJ13CPnIv8rwujzElIGUYE3QexwLTyY+QHqmHfudtfiQtUqlzJ/EXN2as
	KJPPugHgXdmlPdLu6xMIqUCvMPJv7WhEYld4DylQU1CUQJZ3aa+W0F/1fvs395LDrzre5iqPKs7
	iMfDsfIJY=
X-Google-Smtp-Source: AGHT+IE3gbmh5auHGW9r7ADjolIWFSGzSTdqqdzis36582LDZbPYalJl4TilDs/A1YEQoBRQUyGXtA==
X-Received: by 2002:a17:907:e98b:b0:afe:85d5:a318 with SMTP id a640c23a62f3a-afe85d64d09mr483718566b.36.1756196852176;
        Tue, 26 Aug 2025 01:27:32 -0700 (PDT)
Message-ID: <9670e760-c2b1-4988-84a5-ac55086a39b4@suse.com>
Date: Tue, 26 Aug 2025 10:27:31 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/7] xen/page_alloc: Add static per-NUMA-node counts of
 free pages
To: Bernhard Kaindl <bernhard.kaindl@cloud.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>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 xen-devel@lists.xenproject.org
References: <cover.1755341947.git.bernhard.kaindl@cloud.com>
 <b74a6a61209e37c2126dd1171b64c12264754f2e.1755341947.git.bernhard.kaindl@cloud.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: <b74a6a61209e37c2126dd1171b64c12264754f2e.1755341947.git.bernhard.kaindl@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 16.08.2025 13:19, Bernhard Kaindl wrote:
> The static per-NUMA-node count of free pages is the sum of free memory
> in all zones of a node. It's an optimisation to avoid doing that operation
> frequently in the following patches that introduce per-NUMA-node claims.
> 
> ---
> Changed since v1:
> - Added ASSERT(per_node_avail_pages[node] >= request) as requested
>   during review by Roger: Comment by me: As we have
>   ASSERT(avail[node][zone] >= request);
>   directly before it, request is already valid, so this checks
>   that per_node_avail_pages[node] is not mis-accounted too low.

Okay, this addresses Roger's comment. What about mine, though?

> Signed-off-by: Bernhard Kaindl <bernhard.kaindl@cloud.com>
> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>

Apart from similar concerns as for patch 2, these come too late. They
wouldn't end up in the commit message, due to the earlier --- separator.

Given the problems with the first three patches I'm going to stop review
here, expecting a tidied v3 to be submitted with all prior review
comments addressed (verbally or by respective adjustments).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 08:29:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 08:29:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094101.1449428 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqp3B-0004VJ-Sj; Tue, 26 Aug 2025 08:29:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094101.1449428; Tue, 26 Aug 2025 08:29: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 1uqp3B-0004VC-QB; Tue, 26 Aug 2025 08:29:05 +0000
Received: by outflank-mailman (input) for mailman id 1094101;
 Tue, 26 Aug 2025 08:29:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6Or/=3G=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1uqp3A-0004V5-CU
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 08:29:04 +0000
Received: from mail-wr1-x42b.google.com (mail-wr1-x42b.google.com
 [2a00:1450:4864:20::42b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b68ac781-8256-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 10:28:59 +0200 (CEST)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-3cbb3ff70a0so142962f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 26 Aug 2025 01:28:59 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3c86a8ccd1bsm10661409f8f.27.2025.08.26.01.28.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 26 Aug 2025 01:28: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>
X-Inumbo-ID: b68ac781-8256-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756196938; x=1756801738; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=+3ik9ZfGn50+cjex7KRxQ4iDBCBuXli6mDkWTQm16mU=;
        b=pyTOLHicmzm2NYGkaXpRbGjc4Jib43iKCFvWEhjKq4q73SNxxgLnfAnriAUGNyYucB
         5FdYWoNsgbkqe0P4q4XhZjaQ0bKfwt0R1O8L3We768Wr9XgxT9GhIx0CzxEPvS0IgmKv
         zvhFcxplju1hbTFRfxwA7szvsFJbGUk4JMHGY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756196938; x=1756801738;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=+3ik9ZfGn50+cjex7KRxQ4iDBCBuXli6mDkWTQm16mU=;
        b=SNoUpVuZnQv6lsltdtZSmnYNzY3ceybYORnoD6AciB00dsomcnoqyCD3to88GwECPd
         McQ38/xK24R0nF2jGjXdemQUunoDkYthvHbpkXz4vqLUmCTseH4ItWXFYJ4aTezMxPZR
         UyGLE7ADatichsT0HquDEK/FxmLtMxDWlsj8FW0/U45Lkq5vIkrC3kB90Eo5exhX6x1r
         vTCB+FavvYfsf5Q4IpbD1ClzraqTLAFQK4a8XQyZppwHSe7fEnRJDgSDDKqMptVHnN/2
         DBOhAb9fZCAMNf1AlVX4elGusdDucsNdJKgc6RnmN0WHWNyZ93AMmB2A0vArr49cEE3t
         IqOw==
X-Gm-Message-State: AOJu0Yxo7358WKRveFLu8SWgfZxkjxTOx2rbWD7lEpN0Qwn9BSai7O33
	qcGeE70fFrXk9CluY/fu9iZpEbpdGwycUQ/9QlwKnoJosnBcMaXyG1f7JWCpLXRjj4MyYBGysWV
	Uy52T
X-Gm-Gg: ASbGnctzEMD/gSFR9rf4t+2A3QtYpFkb34WZvqls9g0bQkTkqRXOOIhGi7bv958LmsI
	VI3nuGXcfiEX1wAnFLYhgfxqUgKMY1/KaaHqqWJK0sUYGFr8U5tMgQW2uRCRD/XKqeERFahcREI
	YlIOnOtcRaHIOVoV70ukAsgoYyWy+bYMT70onWH8Sb1yGAMXqlf9caTbtMXgJeioX3RoMnUoYuH
	a2njWq4oGSSMW1myqhJZ5FW7g46ACLmIrXT15byOjY8Y8xn94YHRtg3YJwt+GS8GwWz7S0fKHeP
	QFWkH7PuRbI9ZGvC7HGmJi8K9dY3Arxaa/Dd+2gRjSgsy+TjeASjeYJ1ERJMf2yC+7FXEGsGAhi
	8obejADl5a1yp8JogeIRwxeVQkaCXEk4qBWpQA1KiAQB0Twkil9zXSWDyfOvE2UJ/CmSxb8QzwN
	KF
X-Google-Smtp-Source: AGHT+IEP9aEsr7hzeyuNfMvWh+tS0zpzGl4JNIYUw/vOdLvKNYN+TnAPh63BFq6a/6z+PJY/tl2iTw==
X-Received: by 2002:a05:6000:2891:b0:3c5:9fee:7998 with SMTP id ffacd0b85a97d-3c5dcdfab5bmr9224491f8f.47.1756196938287;
        Tue, 26 Aug 2025 01:28:58 -0700 (PDT)
Date: Tue, 26 Aug 2025 10:28:56 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Jan Beulich <jbeulich@suse.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: MSI-X cleanup(?) issue with passthrough after domU restart
Message-ID: <aK1wSKTg5LcuzBDc@macbook.local>
References: <aK0St0oUkJzR9lO0@mail-itl>
 <2aafbace-3aa2-4f58-8f6c-2815cd2315ad@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <2aafbace-3aa2-4f58-8f6c-2815cd2315ad@suse.com>

On Tue, Aug 26, 2025 at 08:16:56AM +0200, Jan Beulich wrote:
> On 26.08.2025 03:49, Marek Marczykowski-GÃ³recki wrote:
> > Hi,
> > 
> > I'm hitting an MSI-X issue after rebooting the domU. The symptoms are
> > rather boring: on initial domU start the device (realtek eth card) works
> > fine, but after domU restart, the link doesn't come up (there is no
> > "Link is Up" message anymore). No errors from domU driver or Xen. I
> > tracked it down to MSI-X - if I force INTx (via pci=nomsi on domU
> > cmdline) it works fine. Convincing the driver to poll instead of waiting
> > for an interrupt also workarounds the issue.
> > 
> > I noticed also some interrupts are not cleaned up on restart. The list
> > of MSIs in 'Q' debug key output grows:
> > 
> >     (XEN) 0000:03:00.0 - d22 - node -1  - MSIs < 41 42 43 44 45 46 47 >
> >     restart sys-net domU
> >     (XEN) 0000:03:00.0 - d24 - node -1  - MSIs < 41 42 43 44 45 46 47 48 >
> >     restart sys-net domU
> >     (XEN) 0000:03:00.0 - d26 - node -1  - MSIs < 41 42 43 44 45 46 47 48 49 >
> > 
> > and 'M' output is:
> > 
> >     (XEN)  MSI-X   41 vec=b1 lowest  edge   assert  log lowest dest=00000001 mask=1/H /1
> >     (XEN)  MSI-X   42 vec=b9 lowest  edge   assert  log lowest dest=00000004 mask=1/HG/1
> >     (XEN)  MSI-X   43 vec=c1 lowest  edge   assert  log lowest dest=00000010 mask=1/HG/1
> >     (XEN)  MSI-X   44 vec=d9 lowest  edge   assert  log lowest dest=00000001 mask=1/HG/1
> >     (XEN)  MSI-X   45 vec=e1 lowest  edge   assert  log lowest dest=00000001 mask=1/HG/1
> >     (XEN)  MSI-X   46 vec=e9 lowest  edge   assert  log lowest dest=00000040 mask=1/HG/1
> >     (XEN)  MSI-X   47 vec=32 lowest  edge   assert  log lowest dest=00000004 mask=1/HG/1
> >     (XEN)  MSI-X   48 vec=3a lowest  edge   assert  log lowest dest=00000040 mask=1/HG/1
> >     (XEN)  MSI-X   49 vec=42 lowest  edge   assert  log lowest dest=00000010 mask=1/ G/1
> > 
> > And also, after starting and stopping the domU, `xl pci-assignable-remove 03:00.0`
> > makes pciback to complain:
> > 
> >     [ 1180.919874] pciback 0000:03:00.0: xen_pciback: MSI-X release failed (-16)
> > 
> > This is all running on Xen 4.19.3, but I don't see much changes in this
> > area since then.
> > 
> > Some more info collected at https://github.com/QubesOS/qubes-issues/issues/9335
> > 
> > My question is: what should be responsible for this cleanup on domain
> > destroy? Xen, or maybe device model (which is QEMU in stubdomain here)?
> 
> The expectation is that qemu invokes the necessary cleanup, but of course ...
> 
> > I see some cleanup (apparently not enough) happening via QEMU when the
> > domU driver is unloaded, but logically correct cleanup shouldn't depend
> > on correct domU operation...
> 
> ... Xen may not make itself dependent upon either DomU or QEMU.

AFAICT free_domain_pirqs() called by arch_domain_destroy() should take
care of unbinding and freeing pirqs (but obviously not in this case).
Can you repeat the test with a debug=y hypervisor and post the
resulting serial or dmesg here?  Some of the errors on those paths are
printed with dprintk() and won't be visible unless using a Xen debug
build.

> What I find puzzling (assuming I can take the quoted output plus your annotations
> verbatim) is that the device apparently uses multiple vectors, and we're leaking
> exactly one of them. Also, since reboot is generally nothing else than shutdown
> and immediate relaunch, is there a leak also after shutdown? I ask because it
> might help to know which of the multiple vectors is leaked (first, last, random).

Can we maybe get the output of `lspci -vv` when the device is
attached?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 08:32:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 08:32:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094111.1449438 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqp6k-0006MS-AD; Tue, 26 Aug 2025 08:32:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094111.1449438; Tue, 26 Aug 2025 08:32:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqp6k-0006ML-7R; Tue, 26 Aug 2025 08:32:46 +0000
Received: by outflank-mailman (input) for mailman id 1094111;
 Tue, 26 Aug 2025 08:32:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=n+o/=3G=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqp6j-0006MF-9z
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 08:32:45 +0000
Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com
 [2a00:1450:4864:20::635])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3c038ce9-8257-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 10:32:43 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-afcb78d5dcbso757613066b.1
 for <xen-devel@lists.xenproject.org>; Tue, 26 Aug 2025 01:32: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
 a640c23a62f3a-afe48e848besm730171266b.23.2025.08.26.01.32.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Aug 2025 01:32: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>
X-Inumbo-ID: 3c038ce9-8257-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756197162; x=1756801962; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=XY/Xr13sNAZZeD05cyJIG3z76WcNp6dlJi3Up5C8Mno=;
        b=Ss1NTAvavLZKt8HL0xJv7+xGqLQ0vfugwzmhDCzTiIbt9NO+oBFfZX8Jit6zi8ebtY
         w+LYMtl6bb3/yogmCCqbkeO9/uaZf1tnYQJl8gV0zSq62jN37maBC+EX+jCobrxHoLG3
         GV1xvGY7GKFimySHkvA4CcKLl1aid7BJsJVWalz1lPiK0uJ4fvW440exoDiia0EPyVIH
         pbUWeKeGJcv7jIdSfiuG83P2zT6NGXjdB06RibSs2ghDqEPJQqjhkBnFUNSadwvNF6JZ
         DNtP9NUPX+zEoN5WedpiQ6KlGGsbl0u/J7fTKXHxC8PRwdRqVYtXRPA5gfQRtQmavorM
         UdVQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756197162; x=1756801962;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XY/Xr13sNAZZeD05cyJIG3z76WcNp6dlJi3Up5C8Mno=;
        b=KfamocCviY3p4cyRNnogqPpxY9DRzzKqmrrX6kugbc1sTl068ZOeQR5q5ycf4MsZ76
         XObZbZre2NvglaUozGeAx56uNc47L1xyuF1iHiH03QBXxjm+N4HkrOf7PMLS1JSSSFGX
         6I6QGnKUEb0txPODvCYuo26b0a2JivCeMRPWJ3AvuVteljvt7wDyB93aBOLVpgFUXygL
         qZROZw1kdz/5ngHDMJh+P+9+gyMuIgtdrYFDvmAdYmbGiiKmXYyafm01HX9LLUKfr/qx
         tElfZRmU1zI3+P5/KCmxvh4N+JYxv+7MxWhxVaOAFl+JO1KgK6Vz6QYgFi1KD1vIq4YT
         oiCg==
X-Forwarded-Encrypted: i=1; AJvYcCVs8SFaKVmq85WkM3XxHAvE+VkygkxzVxoaGAVWuVq/XIVsgXBDQvco7LxIpelfmF9Du21ux4xoOFY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YznFghh173j/eNW1yRDSu0B4lflVgno+yOv89tcxajtN1HsiYBz
	Hshu92Hpbp2tlaFCA94E5sKTg8MiSWNnu8dsmiQZJGomdINVjjTge6phTr7/a+hLZw==
X-Gm-Gg: ASbGncvmFKzJFZG11xuYtIn1M6TYih9WWc0gGPfgoEth5im+iKeAtVmTaqxDdsvuvkU
	pxMKarm5k0aCkoT1v2sgwGOc7gKGu3IpED1MRfKktAwkiUc8fEGo4KlWhzFrhLwZYtjgRwfnij3
	+GTUslDxs7EYR2kSXRSZAthj87mQX1eEGhV1kxjSujcg6Z45+xRf+03iXCUb4yxlO9Ag9Nxgobq
	eWoz7dYYcKg5KfRhpkYwnCOB0mffujIvTc8Wbjl8yxr/lc0XjL8oUN1EhiJ0x/jf3inY5pUQ7WJ
	NsznempdywcNQBLyWVj+T209eWQ5bo7VBDelspN/R/P1zIJ5RDjd6JLfkGioVlGydFelenhngHJ
	KBZmNRpLWBOQZwXAu4YPi1y0DD50mdAwwWUa8Es/A7A6IshvC9kP6JfcXO3WgSvmBf4kiyQV7OY
	exqxRrT6o=
X-Google-Smtp-Source: AGHT+IFPlIvDjvLOvAm9XuGkZ+vRK0tojxxBiU5bec2CDWMsiWTfWrxzOWEd1otdwqaJ9ysiRXImEg==
X-Received: by 2002:a17:906:a115:b0:afe:7ba0:df58 with SMTP id a640c23a62f3a-afe7ba0e246mr599947866b.46.1756197162439;
        Tue, 26 Aug 2025 01:32:42 -0700 (PDT)
Message-ID: <af56fd77-7567-4fd9-89ed-340939843e51@suse.com>
Date: Tue, 26 Aug 2025 10:32:41 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 11/13] tools/cpufreq: extract CPPC para from cpufreq
 para
To: "Penny, Zheng" <penny.zheng@amd.com>
Cc: "Huang, Ray" <Ray.Huang@amd.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 "Orzel, Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20250822105218.3601273-1-Penny.Zheng@amd.com>
 <20250822105218.3601273-12-Penny.Zheng@amd.com>
 <b54e3460-380b-41e4-b9e9-75ba5c6129fd@suse.com>
 <DM4PR12MB845198356D8DDCE39A62DF29E139A@DM4PR12MB8451.namprd12.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: <DM4PR12MB845198356D8DDCE39A62DF29E139A@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.08.2025 10:21, Penny, Zheng wrote:
>> -----Original Message-----
>> From: Jan Beulich <jbeulich@suse.com>
>> Sent: Monday, August 25, 2025 11:37 PM
>>
>> On 22.08.2025 12:52, Penny Zheng wrote:
>>> --- a/tools/libs/ctrl/xc_pm.c
>>> +++ b/tools/libs/ctrl/xc_pm.c
>>> @@ -288,7 +288,6 @@ int xc_get_cpufreq_para(xc_interface *xch, int cpuid,
>>>          CHK_FIELD(s.scaling_min_freq);
>>>          CHK_FIELD(s.u.userspace);
>>>          CHK_FIELD(s.u.ondemand);
>>> -        CHK_FIELD(cppc_para);
>>>
>>>  #undef CHK_FIELD
>>
>> What is done here is already less than what could be done; I think ...
>>
> 
> Emm, maybe because we define two different cpufreq para structures for user space and sysctl, struct xc_get_cpufreq_para and struct xen_get_cppc_para.
> But for cppc para, it is an alias:
> typedef struct xen_get_cppc_para xc_cppc_para_t;

Oh. Then ...

> So ...
> 
>>> @@ -366,6 +365,33 @@ int xc_set_cpufreq_cppc(xc_interface *xch, int cpuid,
>>>      return ret;
>>>  }
>>>
>>> +int xc_get_cppc_para(xc_interface *xch, unsigned int cpuid,
>>> +                     xc_cppc_para_t *cppc_para) {
>>> +    int ret;
>>> +    struct xen_sysctl sysctl = {};
>>> +    struct xen_get_cppc_para *sys_cppc_para =
>>> +&sysctl.u.pm_op.u.get_cppc;
>>> +
>>> +    if ( !xch  || !cppc_para )
>>> +    {
>>> +        errno = EINVAL;
>>> +        return -1;
>>> +    }
>>> +
>>> +    sysctl.cmd = XEN_SYSCTL_pm_op;
>>> +    sysctl.u.pm_op.cmd = GET_CPUFREQ_CPPC;
>>> +    sysctl.u.pm_op.cpuid = cpuid;
>>> +
>>> +    ret = xc_sysctl(xch, &sysctl);
>>> +    if ( ret )
>>> +        return ret;
>>> +
>>> +    BUILD_BUG_ON(sizeof(*cppc_para) != sizeof(*sys_cppc_para));

... why is this here, when ...

>>> +    memcpy(cppc_para, sys_cppc_para, sizeof(*sys_cppc_para));
>>
>> ... you minimally want to apply as much checking here.

... a better effect can be had by

    cppc_para = sys_cppc_para;

?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 09:09:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 09:09:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094129.1449476 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqpg2-0002mq-5S; Tue, 26 Aug 2025 09:09:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094129.1449476; Tue, 26 Aug 2025 09:09: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 1uqpg2-0002mj-2I; Tue, 26 Aug 2025 09:09:14 +0000
Received: by outflank-mailman (input) for mailman id 1094129;
 Tue, 26 Aug 2025 09:09:12 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+/mc=3G=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1uqpfz-0002md-O5
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 09:09:12 +0000
Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com
 [2a00:1450:4864:20::132])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 51560faf-825c-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 11:09:06 +0200 (CEST)
Received: by mail-lf1-x132.google.com with SMTP id
 2adb3069b0e04-55f46ec2e00so1282133e87.3
 for <xen-devel@lists.xenproject.org>; Tue, 26 Aug 2025 02:09: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>
X-Inumbo-ID: 51560faf-825c-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756199346; x=1756804146; 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=77d/j8qwZSAUfieO6k/82x9C3BYxXzID/eeSrhr4zMw=;
        b=jbW96VIUE2W3BNM2QV0Y+VijaCv9I+yu/x5qsqaceGjrmXB4FGb0uBmPs4nqiAjSwI
         Sb0nCF0F8ocXoKSfWoaUYN+kBXjVO383CR3jMdUiYbCSusLXfy7igEu/GOz83tPVPk+f
         li2ZUUORDdLfbJA34CkhBGYHpMgd2wkKkmyPbFmk7eWESxurtSwErx7KGXR+zMg/scXQ
         gdLKpBixjL7PQMCQU1riDu3Kg1Yj5NOycRUS4mhn1ZZpmYA5ijSmLd9vcL5u+RHAKiib
         +S+p6/2/vypGEvPW4NB0EgJyOdd6LyRmmNoWfjla+yC+s8J1c6+jRM9CSuF92ynaHItN
         vnNA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756199346; x=1756804146;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=77d/j8qwZSAUfieO6k/82x9C3BYxXzID/eeSrhr4zMw=;
        b=Va1x//jPpXHz67HJypautuoNd7+qGzNFh8r8BXT+VOpCtYysC/0mBjlFhldH9ftNfS
         oaNWvMNbfi4mTJEgYpmJQUzecMFhOlvQeDh/GLo3S6cQitblbxrM8s8BGSy85UkbxpOB
         Ck5GWRGX9BU3brw96U2RdhijcBDlaS8wpZpbNFnuj2YH1GbakY24q4iO4aknoBT8nyo3
         PjsFblFbRhUbsC7XXjc4XhigscCyLZ/juWn7vRjObw2FVEov3t7dt9kiLJbk+6AeqS2A
         eqCAKcM3mvWzSDHJLV0ztJQeaYIleeB8ZVnlthTbaJFUEA7typ2Cw4ZAuf5jSbdxy5cx
         AUPg==
X-Gm-Message-State: AOJu0YzY2MSaz1NiwfM4JwUUTiWHEtoAaMOllSIjEXPjcmazBCF0wBri
	4PkcIrfx+3zURn0jlpUrJjwxJFxZiz9SfkEtnBMzb1/GUeYu4C5Q8j39PzbIZG9CnxL4ci0wIGf
	rJnwc1hJg8OPp6hjVDpBX0p6leVEHvN5tdA==
X-Gm-Gg: ASbGncuOIfut0ck0Eb/ceP+bEkdDR7//6SWUPTAQKzM4jGHhjfaaueI3A3Lc35+KVI6
	JYKJoAmlx8Phzpuc4QVuzjgjYMyIHQzF7a5igU6jFX8MHaUsq+QGVtAF5cvKtEmX+cWU6aTlI3v
	rsBaos/bdxRlWdItkEAd+fy9Wej89MZDjw3eIE58TYFUZ1OuCX76wQa7XUiVxzz5Pm1iH8geIaf
	ZgskIOtFhn6CNql
X-Google-Smtp-Source: AGHT+IGyhO5NK0TAkbwYY9qAralgg0vxrX/uORw/vqxdmmq7nMdytGutr8tDT3e9NYaGju7ClHK/RQW+hfSY+zqkA78=
X-Received: by 2002:a05:6512:1357:b0:55f:4f71:c5fa with SMTP id
 2adb3069b0e04-55f4f71c7ddmr262154e87.13.1756199345176; Tue, 26 Aug 2025
 02:09:05 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1755506449.git.mykola_kvach@epam.com> <205b2b354ff1d34d0e9ec4777ca3c94492f6d9d1.1755506449.git.mykola_kvach@epam.com>
 <87jz2vaq9h.fsf@epam.com>
In-Reply-To: <87jz2vaq9h.fsf@epam.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 26 Aug 2025 12:08:53 +0300
X-Gm-Features: Ac12FXy-i_luJsq_sYy-eFEdMwMAT43NitlRR4k9pmtnFbxzmbueDNImLz6mHr0
Message-ID: <CAGeoDV-XTA0kOrKveLR+W6=V=xZ0CFpPaxBH=6+6=4Fz421aJw@mail.gmail.com>
Subject: Re: [PATCH v9 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for guests
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>, 
	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

Hi Volodymyr,


On Sat, Aug 23, 2025 at 2:30=E2=80=AFAM Volodymyr Babchuk
<Volodymyr_Babchuk@epam.com> wrote:
>
>
> Hi Mykola,
>
> Mykola Kvach <xakep.amatop@gmail.com> writes:
>
> > From: Mykola Kvach <mykola_kvach@epam.com>
> >
> > This patch adds support for the PSCI SYSTEM_SUSPEND function in the vPS=
CI
> > (virtual PSCI) interface, allowing guests to request suspend via the PS=
CI
> > v1.0 SYSTEM_SUSPEND call (both 32-bit and 64-bit variants).
> >
> > The implementation:
> > - Adds SYSTEM_SUSPEND function IDs to PSCI definitions
> > - Implements trapping and handling of SYSTEM_SUSPEND in vPSCI
> > - Allows only non-hardware domains to invoke SYSTEM_SUSPEND; for the
> >   hardware domain, PSCI_NOT_SUPPORTED is returned to avoid halting the
> >   system in hwdom_shutdown() called from domain_shutdown
> > - Ensures all secondary VCPUs of the calling domain are offline before
> >   allowing suspend due to PSCI spec
> >
> > GIC and virtual timer context must be saved when the domain suspends.
> > This is done by moving the respective code in ctxt_switch_from
> > before the return that happens if the domain suspended.
> >
> > domain_resume_nopause() is introduced to allow resuming a domain from
> > SYSTEM_SUSPEND without pausing it first. This avoids problematic
> > domain_pause() calls when resuming from suspend on Arm, particularly
> > in error paths. The function is only used on Arm; other architectures
> > continue to use the original domain_resume().
> >
> > Usage:
> >
> > For Linux-based guests, suspend can be initiated with:
> >     echo mem > /sys/power/state
> > or via:
> >     systemctl suspend
> >
> > Resuming the guest is performed from control domain using:
> >       xl resume <domain>
> >
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> > ---
> > Changes in V9:
> > - no functional changes
> > - cosmetic chnages after review
> > - enhance commit message and add extra comment to the code after review
> >
> > Changes in V8:
> > - GIC and virtual timer context must be saved when the domain suspends
> > - rework locking
> > - minor changes after code review
> >
> > Changes in V7:
> > - add proper locking
> > - minor changes after code review
> >
> > Changes in V6:
> > - skip execution of ctxt_switch_from for vcpu that is in paused domain
> > - add implementation of domain_resume without domain_pause
> > - add helper function to determine if vcpu is suspended or not
> > - ignore upper 32 bits of argument values when the domain is 64-bit
> >   and calls the SMC32 SYSTEM_SUSPEND function
> > - cosmetic changes after review
> >
> > Changes in V5:
> > - don't use standby mode, restore execution in a provided by guest poin=
t
> > - move checking that all CPUs, except current one, are offline to after
> >   pausing the vCPUs
> > - provide ret status from arch_domain_shutdown and handle it in
> >   domain_shutdown
> > - adjust VPSCI_NR_FUNCS to reflect the number of newly added PSCI funct=
ions
> >
> > Changes in V4:
> > Dropped all changes related to watchdog, domain is marked as shutting
> > down in domain_shutdown and watchdog timeout handler won't trigger
> > because of it.
> >
> > Previous versions included code to manage Xen watchdog timers during su=
spend,
> > but this was removed. When a guest OS starts the Xen watchdog (either v=
ia the
> > kernel driver or xenwatchdogd), it is responsible for managing that sta=
te
> > across suspend/resume. On Linux, the Xen kernel driver properly stops t=
he
> > watchdog during suspend. However, when xenwatchdogd is used instead, su=
spend
> > handling is incomplete, potentially leading to watchdog-triggered reset=
s on
> > resume. Xen leaves watchdog handling to the guest OS and its services.
> >
> > Dropped all changes related to VCPU context, because instead domain_shu=
tdown
> > is used, so we don't need any extra changes for suspending domain.
> >
> > Changes in V3:
> > Dropped all domain flags and related code (which touched common functio=
ns like
> > vcpu_unblock), keeping only the necessary changes for Xen suspend/resum=
e, i.e.
> > suspend/resume is now fully supported only for the hardware domain.
> > Proper support for domU suspend/resume will be added in a future patch.
> > This patch does not yet include VCPU context reset or domain context
> > restoration in VCPU.
> > ---
> >  xen/arch/arm/domain.c                 |  17 +++--
> >  xen/arch/arm/include/asm/perfc_defn.h |   1 +
> >  xen/arch/arm/include/asm/psci.h       |   2 +
> >  xen/arch/arm/include/asm/vpsci.h      |   2 +-
> >  xen/arch/arm/vpsci.c                  | 101 ++++++++++++++++++++++----
> >  xen/common/domain.c                   |  31 ++++++--
> >  xen/include/xen/sched.h               |   6 ++
> >  7 files changed, 131 insertions(+), 29 deletions(-)
> >
> > diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
> > index 310c578909..9e9649c4e2 100644
> > --- a/xen/arch/arm/domain.c
> > +++ b/xen/arch/arm/domain.c
> > @@ -90,6 +90,16 @@ static void ctxt_switch_from(struct vcpu *p)
> >      if ( is_idle_vcpu(p) )
> >          return;
> >
> > +    /* Arch timer */
> > +    p->arch.cntkctl =3D READ_SYSREG(CNTKCTL_EL1);
> > +    virt_timer_save(p);
> > +
> > +    /* VGIC */
> > +    gic_save_state(p);
> > +
>
> I'd like to see comment here on why we don't need to do rest of the
> ctx save code. I saw that this is described in the commit message, but
> comment there will be very helpful for future contributors.

Honestly, regarding the vCPU context, the only thing we need to
prevent from being saved (overwritten) in this call is the SCTLR_EL1
register. This was already handled in one of the previous patches,
but the change was not accepted during review.

As for other registers, saving them is not strictly required
according to the PSCI specification. It states that at startup we
must set the AIF or DAIF bits for AArch32 or AArch64, respectively
(DEN0022F.b 1.3, "6.4.3.3 Exceptions"). SCTLR.{I, C, M} must be set
to {0, 0, 0} (DEN0022F.b 1.3, "6.4.3.4 MMU, cache and branch
predictor enable").

Finally, the context ID and the entry point must also be saved in
the guest registers, but in this function they are not modified.

I'll add a comment as you proposed, to make this clearer for future
contributors.

>
> > +    if ( test_bit(_VPF_suspended, &p->pause_flags) )
> > +        return;
> > +
> >      p2m_save_state(p);
> >
> >      /* CP 15 */
> > @@ -106,10 +116,6 @@ static void ctxt_switch_from(struct vcpu *p)
> >      p->arch.tpidrro_el0 =3D READ_SYSREG(TPIDRRO_EL0);
> >      p->arch.tpidr_el1 =3D READ_SYSREG(TPIDR_EL1);
> >
> > -    /* Arch timer */
> > -    p->arch.cntkctl =3D READ_SYSREG(CNTKCTL_EL1);
> > -    virt_timer_save(p);
> > -
> >      if ( is_32bit_domain(p->domain) && cpu_has_thumbee )
> >      {
> >          p->arch.teecr =3D READ_SYSREG(TEECR32_EL1);
> > @@ -158,9 +164,6 @@ static void ctxt_switch_from(struct vcpu *p)
> >
> >      /* XXX MPU */
> >
> > -    /* VGIC */
> > -    gic_save_state(p);
> > -
> >      isb();
> >  }
> >
> > diff --git a/xen/arch/arm/include/asm/perfc_defn.h b/xen/arch/arm/inclu=
de/asm/perfc_defn.h
> > index effd25b69e..8dfcac7e3b 100644
> > --- a/xen/arch/arm/include/asm/perfc_defn.h
> > +++ b/xen/arch/arm/include/asm/perfc_defn.h
> > @@ -33,6 +33,7 @@ PERFCOUNTER(vpsci_system_reset,        "vpsci: system=
_reset")
> >  PERFCOUNTER(vpsci_cpu_suspend,         "vpsci: cpu_suspend")
> >  PERFCOUNTER(vpsci_cpu_affinity_info,   "vpsci: cpu_affinity_info")
> >  PERFCOUNTER(vpsci_features,            "vpsci: features")
> > +PERFCOUNTER(vpsci_system_suspend,      "vpsci: system_suspend")
> >
> >  PERFCOUNTER(vcpu_kick,                 "vcpu: notify other vcpu")
> >
> > diff --git a/xen/arch/arm/include/asm/psci.h b/xen/arch/arm/include/asm=
/psci.h
> > index 4780972621..48a93e6b79 100644
> > --- a/xen/arch/arm/include/asm/psci.h
> > +++ b/xen/arch/arm/include/asm/psci.h
> > @@ -47,10 +47,12 @@ void call_psci_system_reset(void);
> >  #define PSCI_0_2_FN32_SYSTEM_OFF          PSCI_0_2_FN32(8)
> >  #define PSCI_0_2_FN32_SYSTEM_RESET        PSCI_0_2_FN32(9)
> >  #define PSCI_1_0_FN32_PSCI_FEATURES       PSCI_0_2_FN32(10)
> > +#define PSCI_1_0_FN32_SYSTEM_SUSPEND      PSCI_0_2_FN32(14)
> >
> >  #define PSCI_0_2_FN64_CPU_SUSPEND         PSCI_0_2_FN64(1)
> >  #define PSCI_0_2_FN64_CPU_ON              PSCI_0_2_FN64(3)
> >  #define PSCI_0_2_FN64_AFFINITY_INFO       PSCI_0_2_FN64(4)
> > +#define PSCI_1_0_FN64_SYSTEM_SUSPEND      PSCI_0_2_FN64(14)
> >
> >  /* PSCI v0.2 affinity level state returned by AFFINITY_INFO */
> >  #define PSCI_0_2_AFFINITY_LEVEL_ON      0
> > diff --git a/xen/arch/arm/include/asm/vpsci.h b/xen/arch/arm/include/as=
m/vpsci.h
> > index 0cca5e6830..69d40f9d7f 100644
> > --- a/xen/arch/arm/include/asm/vpsci.h
> > +++ b/xen/arch/arm/include/asm/vpsci.h
> > @@ -23,7 +23,7 @@
> >  #include <asm/psci.h>
> >
> >  /* Number of function implemented by virtual PSCI (only 0.2 or later) =
*/
> > -#define VPSCI_NR_FUNCS  12
> > +#define VPSCI_NR_FUNCS  14
> >
> >  /* Functions handle PSCI calls from the guests */
> >  bool do_vpsci_0_1_call(struct cpu_user_regs *regs, uint32_t fid);
> > diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
> > index 7ba9ccd94b..67d369a8a2 100644
> > --- a/xen/arch/arm/vpsci.c
> > +++ b/xen/arch/arm/vpsci.c
> > @@ -10,28 +10,18 @@
> >
> >  #include <public/sched.h>
> >
> > -static int do_common_cpu_on(register_t target_cpu, register_t entry_po=
int,
> > -                            register_t context_id)
> > +static int do_setup_vcpu_ctx(struct vcpu *v, register_t entry_point,
> > +                      register_t context_id)
> >  {
> > -    struct vcpu *v;
> >      struct domain *d =3D current->domain;
> >      struct vcpu_guest_context *ctxt;
> >      int rc;
> >      bool is_thumb =3D entry_point & 1;
> > -    register_t vcpuid;
> > -
> > -    vcpuid =3D vaffinity_to_vcpuid(target_cpu);
> > -
> > -    if ( (v =3D domain_vcpu(d, vcpuid)) =3D=3D NULL )
> > -        return PSCI_INVALID_PARAMETERS;
> >
> >      /* THUMB set is not allowed with 64-bit domain */
> >      if ( is_64bit_domain(d) && is_thumb )
> >          return PSCI_INVALID_ADDRESS;
> >
> > -    if ( !test_bit(_VPF_down, &v->pause_flags) )
> > -        return PSCI_ALREADY_ON;
> > -
> >      if ( (ctxt =3D alloc_vcpu_guest_context()) =3D=3D NULL )
> >          return PSCI_DENIED;
> >
> > @@ -78,11 +68,32 @@ static int do_common_cpu_on(register_t target_cpu, =
register_t entry_point,
> >      if ( rc < 0 )
> >          return PSCI_DENIED;
> >
> > -    vcpu_wake(v);
> > -
> >      return PSCI_SUCCESS;
> >  }
> >
> > +static int do_common_cpu_on(register_t target_cpu, register_t entry_po=
int,
> > +                            register_t context_id)
> > +{
> > +    int rc;
> > +    struct vcpu *v;
> > +    struct domain *d =3D current->domain;
> > +    register_t vcpuid;
> > +
> > +    vcpuid =3D vaffinity_to_vcpuid(target_cpu);
> > +
> > +    if ( (v =3D domain_vcpu(d, vcpuid)) =3D=3D NULL )
> > +        return PSCI_INVALID_PARAMETERS;
> > +
> > +    if ( !test_bit(_VPF_down, &v->pause_flags) )
> > +        return PSCI_ALREADY_ON;
> > +
> > +    rc =3D do_setup_vcpu_ctx(v, entry_point, context_id);
> > +    if ( rc =3D=3D PSCI_SUCCESS )
> > +        vcpu_wake(v);
> > +
> > +    return rc;
> > +}
> > +
> >  static int32_t do_psci_cpu_on(uint32_t vcpuid, register_t entry_point)
> >  {
> >      int32_t ret;
> > @@ -197,6 +208,48 @@ static void do_psci_0_2_system_reset(void)
> >      domain_shutdown(d,SHUTDOWN_reboot);
> >  }
> >
> > +static int32_t do_psci_1_0_system_suspend(register_t epoint, register_=
t cid)
> > +{
> > +    int32_t rc;
> > +    struct vcpu *v;
> > +    struct domain *d =3D current->domain;
> > +
> > +    /* 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 )
> > +    {
> > +        if ( v !=3D current && is_vcpu_online(v) )
> > +        {
> > +            domain_unlock(d);
> > +            return PSCI_DENIED;
> > +        }
> > +    }
> > +    domain_unlock(d);
> > +
> > +    rc =3D domain_shutdown(d, SHUTDOWN_suspend);
> > +    if ( rc )
> > +        return PSCI_DENIED;
> > +
> > +    rc =3D do_setup_vcpu_ctx(current, epoint, cid);
> > +    if ( rc !=3D PSCI_SUCCESS )
> > +    {
> > +        domain_resume_nopause(d);
> > +        return rc;
> > +    }
> > +
> > +    set_bit(_VPF_suspended, &current->pause_flags);
> > +
> > +    dprintk(XENLOG_DEBUG,
> > +            "Dom %u: SYSTEM_SUSPEND requested, epoint=3D%#lx, cid=3D%#=
lx\n",
> > +            d->domain_id, epoint, cid);
> > +
> > +    return rc;
> > +}
> > +
> >  static int32_t do_psci_1_0_features(uint32_t psci_func_id)
> >  {
> >      /* /!\ Ordered by function ID and not name */
> > @@ -214,6 +267,8 @@ static int32_t do_psci_1_0_features(uint32_t psci_f=
unc_id)
> >      case PSCI_0_2_FN32_SYSTEM_OFF:
> >      case PSCI_0_2_FN32_SYSTEM_RESET:
> >      case PSCI_1_0_FN32_PSCI_FEATURES:
> > +    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
> > +    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
> >      case ARM_SMCCC_VERSION_FID:
> >          return 0;
> >      default:
> > @@ -344,6 +399,24 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *regs,=
 uint32_t fid)
> >          return true;
> >      }
> >
> > +    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 ( is_64bit_domain(current->domain) &&
> > +             fid =3D=3D PSCI_1_0_FN32_SYSTEM_SUSPEND )
> > +        {
> > +            epoint &=3D GENMASK(31, 0);
> > +            cid &=3D GENMASK(31, 0);
> > +        }
> > +
> > +        perfc_incr(vpsci_system_suspend);
> > +        PSCI_SET_RESULT(regs, do_psci_1_0_system_suspend(epoint, cid))=
;
> > +        return true;
> > +    }
> > +
> >      default:
> >          return false;
> >      }
> > diff --git a/xen/common/domain.c b/xen/common/domain.c
> > index 5241a1629e..624c3e2c27 100644
> > --- a/xen/common/domain.c
> > +++ b/xen/common/domain.c
> > @@ -1343,16 +1343,13 @@ int domain_shutdown(struct domain *d, u8 reason=
)
> >      return 0;
> >  }
> >
> > -void domain_resume(struct domain *d)
> > +#ifndef CONFIG_ARM
> > +static
> > +#endif
> > +void domain_resume_nopause(struct domain *d)
>
> It took me some time to understand that this function makes assumption
> that domain is already paused. As it behaves like *_unlocked()
> functions, maybe it is better to call it something like domain_resume_pau=
sed() ?

Thank you for your suggestion.

The "nopause" in the function name is intended to highlight the
difference from the previous implementation, where domain_resume()
would explicitly pause the domain before resuming it.

Pausing the domain is not required here. This function is executed on the
last running virtual CPU of the domain, so there is no need to wait for
other vCPUs to finish execution in order to perform a safe operation.
Since we are already inside the HVC trap handler, it is not possible for
other code to run or for race conditions to occur in shutdown states.
The state of other vCPUs cannot change at this point.

For other parts of the code that do not execute in the context of the
current domain, a domain pause is performed before such operations to
ensure that all virtual CPUs are blocked and not running. This guarantees
that operations which require all vCPUs to be paused/unpaused are
performed safely.

>
> >  {
> >      struct vcpu *v;
> >
> > -    /*
> > -     * Some code paths assume that shutdown status does not get reset =
under
> > -     * their feet (e.g., some assertions make this assumption).
> > -     */
> > -    domain_pause(d);
> > -
> >      spin_lock(&d->shutdown_lock);
> >
> >      d->is_shutting_down =3D d->is_shut_down =3D 0;
> > @@ -1360,13 +1357,33 @@ void domain_resume(struct domain *d)
> >
> >      for_each_vcpu ( d, v )
> >      {
> > +        /*
> > +         * No need to conditionally clear _VPF_suspended here:
> > +         * - This bit is only set on Arm64, and only after a successfu=
l suspend.
> > +         * - domain_resume_nopause() may also be called from paths oth=
er than
> > +         *   the suspend/resume flow, such as "soft-reset" actions (e.=
g.,
> > +         *   on_poweroff), as part of the Xenstore control/shutdown pr=
otocol.
> > +         *   These require guest acknowledgement to complete the opera=
tion.
> > +         * So clearing the bit unconditionally is safe.
> > +         */
> > +        clear_bit(_VPF_suspended, &v->pause_flags);
> > +
> >          if ( v->paused_for_shutdown )
> >              vcpu_unpause(v);
> >          v->paused_for_shutdown =3D 0;
> >      }
> >
> >      spin_unlock(&d->shutdown_lock);
> > +}
> >
> > +void domain_resume(struct domain *d)
> > +{
> > +    /*
> > +     * Some code paths assume that shutdown status does not get reset =
under
> > +     * their feet (e.g., some assertions make this assumption).
> > +     */
> > +    domain_pause(d);
> > +    domain_resume_nopause(d);
> >      domain_unpause(d);
> >  }
> >
> > diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
> > index fd5c9f9333..c1848d8ea6 100644
> > --- a/xen/include/xen/sched.h
> > +++ b/xen/include/xen/sched.h
> > @@ -814,6 +814,9 @@ void domain_destroy(struct domain *d);
> >  int domain_kill(struct domain *d);
> >  int domain_shutdown(struct domain *d, u8 reason);
> >  void domain_resume(struct domain *d);
> > +#ifdef CONFIG_ARM
> > +void domain_resume_nopause(struct domain *d);
> > +#endif
>
> Probably I need comment from other reviewers here. Do we really need to
> make this ARM-specific? I understand that right now it will be used only

It is done to avoid violation of MISRA C Rule 8.7:
Functions and objects should not be defined with external linkage if
they are referenced in only one translation unit

> by ARM, but still... Also, I am not big fan of that
>
> > +#ifndef CONFIG_ARM
> > +static
> > +#endif
>
> in the function definition.

This is done to avoid violation of MISRA C Rule 8.8:
The static storage class specifier shall be used in all declarations of
objects and functions that have internal linkage

>
>
> --
> WBR, Volodymyr

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 09:09:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 09:09:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094130.1449486 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqpgA-00032F-FL; Tue, 26 Aug 2025 09:09:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094130.1449486; Tue, 26 Aug 2025 09:09: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 1uqpgA-000326-Cg; Tue, 26 Aug 2025 09:09:22 +0000
Received: by outflank-mailman (input) for mailman id 1094130;
 Tue, 26 Aug 2025 09:09:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+/mc=3G=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1uqpg9-0002md-D7
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 09:09:21 +0000
Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com
 [2a00:1450:4864:20::132])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 59548658-825c-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 11:09:19 +0200 (CEST)
Received: by mail-lf1-x132.google.com with SMTP id
 2adb3069b0e04-55f42523658so2328701e87.0
 for <xen-devel@lists.xenproject.org>; Tue, 26 Aug 2025 02:09: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>
X-Inumbo-ID: 59548658-825c-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756199359; x=1756804159; 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=x0HeJLquRFgM0Mxko9TRhZNYUUWqSoHfnuf/sjNaKqA=;
        b=Xj6KQEvqRqsDmfpLpiX4+cfFd8qSGgWcgyKPUxfK1Hg0eUkrJvbmm4V03gdjA3r4yO
         ULvy7zm7Juuuzeo92yWD/JGDYoWhBTejctJGs0YuPIuGtlN7/SD5ctZInNb5ipJh+3zf
         CVb5l3KYl1yh8f2rRFeeZUWNFemoVbAchg0NAQ9pOAMICRea6LkhTqeEDZ5HICcTpMbz
         Zktqpmm9CS8M8GCsu+5SwdJ+C/fugZms+5qKT14Vox0R/2jo8dGrp9SRofjB2mQxbRQU
         iq1iCi+qaBLxgXweN8tiiz9c3WwC42Mq0SBSMbzaWrQ3EPtqHg/q61Q1DUTQmTcJE3RP
         GiEg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756199359; x=1756804159;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=x0HeJLquRFgM0Mxko9TRhZNYUUWqSoHfnuf/sjNaKqA=;
        b=e1UMsTCcYQIKA+KRdDrDUEgAdNhcLq3wiiJUZQaQV/Mrcr946VvtW/OCeGu8Ig60jF
         WKdEhd0lGoaGj2zRQzwDM93Cpz4v6sR+SrBiPPW5dfgGEyCLI74xEiQt9n63obWKF6BH
         FMqUqruJ7saeXwq5lXduPrh71Chzf0xlL7AIVWiEaOUxaX5AIYepBF2AsSnUOVzSFteq
         fVEXn1LqTOk1wMLhgZCDrqnAGX3y1DOumOV639yG7Ricg0eib3Cvu6qojWHUvP/QEBrv
         2mUt+piRka8pKNc6cG7QgwbnsnKOszyFt+cUh8v2faOLBGl4Oc5EvYgFe8YccFjSZ94E
         xwjg==
X-Gm-Message-State: AOJu0YzJpREbPDJjtrVRcIeeRo1Qvqc+Oeo9AqTY888sysbxX2qxHOLh
	/t4BxMtBbrgJ4hx2/VgabFsXH43H2fL+Suwc8IPKAgfShLLhZUhxUIaHmpbPR275rYdZpu8QCfq
	QMhuD8Ae/7ahdIWb8/ZpB+N8DbU2+YOU=
X-Gm-Gg: ASbGncuxjK8EoVe2pJxco0ycw5V0oL//0JU3B14YEqtLSsywjdsrneoHrmUsG6hOVD+
	HImk6x3/ZbDNp9d/aj/1nKUW4b0ePureTEhTNN6riRDYEl/MxZ79BgT2tI+nkWgWeK6Isi9EtOm
	iiqQmpVRQjaHkyOwa27vxh1eUrfo7DoJ7YR8WPpUQrjr416s8yjaOrY7eHr5SQlD0ZzcaiI06ih
	XMJYg==
X-Google-Smtp-Source: AGHT+IERlmDEBxhWXPU5Uufpx74bisANKaedC4VXIJinhSnSOYRlWDewyHo4dkcd9vmm2vlvKsAldTZv2fq4f32JVQI=
X-Received: by 2002:a05:6512:2392:b0:55f:4244:ac05 with SMTP id
 2adb3069b0e04-55f4244ae82mr3094634e87.32.1756199358854; Tue, 26 Aug 2025
 02:09:18 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1755506449.git.mykola_kvach@epam.com> <205b2b354ff1d34d0e9ec4777ca3c94492f6d9d1.1755506449.git.mykola_kvach@epam.com>
 <9ab99307-9594-4cbc-9c7a-b1221575d41c@xen.org>
In-Reply-To: <9ab99307-9594-4cbc-9c7a-b1221575d41c@xen.org>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 26 Aug 2025 12:09:07 +0300
X-Gm-Features: Ac12FXwF8EDuYdH_ALI8PX-Tual_eol_eE4RkisYanTKTBF1gQWG_5S643Zl7RQ
Message-ID: <CAGeoDV-MC65TZ74BLVDzfggQoeKXTKB-eVaadUoDB9iuP7TW3Q@mail.gmail.com>
Subject: Re: [PATCH v9 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for guests
To: Julien Grall <julien@xen.org>
Cc: xen-devel@lists.xenproject.org, Mykola Kvach <mykola_kvach@epam.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>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Julien,

On Sun, Aug 24, 2025 at 12:26=E2=80=AFAM Julien Grall <julien@xen.org> wrot=
e:
>
> Hi Mykola,
>
> On 18/08/2025 09:49, Mykola Kvach wrote:
> > From: Mykola Kvach <mykola_kvach@epam.com>
> >
> > This patch adds support for the PSCI SYSTEM_SUSPEND function in the vPS=
CI
> > (virtual PSCI) interface, allowing guests to request suspend via the PS=
CI
> > v1.0 SYSTEM_SUSPEND call (both 32-bit and 64-bit variants).
> >
> > The implementation:
> > - Adds SYSTEM_SUSPEND function IDs to PSCI definitions
> > - Implements trapping and handling of SYSTEM_SUSPEND in vPSCI
> > - Allows only non-hardware domains to invoke SYSTEM_SUSPEND; for the
> >    hardware domain, PSCI_NOT_SUPPORTED is returned to avoid halting the
> >    system in hwdom_shutdown() called from domain_shutdown
> > - Ensures all secondary VCPUs of the calling domain are offline before
> >    allowing suspend due to PSCI spec
> >
> > GIC and virtual timer context must be saved when the domain suspends.
>
> Can you expand a bit more on this? Is this a requirement from the Arm
> Arm? If so, please specify the specification so we can easily check.
>
> > This is done by moving the respective code in ctxt_switch_from
> > before the return that happens if the domain suspended.
>
>  From the commit message, it is unclear why we want to skip the save part=
.

I'll add extra information to the commit message.

>
> [...]
>
> > ---
> >   xen/arch/arm/domain.c                 |  17 +++--
> >   xen/arch/arm/include/asm/perfc_defn.h |   1 +
> >   xen/arch/arm/include/asm/psci.h       |   2 +
> >   xen/arch/arm/include/asm/vpsci.h      |   2 +-
> >   xen/arch/arm/vpsci.c                  | 101 ++++++++++++++++++++++---=
-
> >   xen/common/domain.c                   |  31 ++++++--
> >   xen/include/xen/sched.h               |   6 ++
> >   7 files changed, 131 insertions(+), 29 deletions(-)
> >
> > diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
> > index 310c578909..9e9649c4e2 100644
> > --- a/xen/arch/arm/domain.c
> > +++ b/xen/arch/arm/domain.c
> > @@ -90,6 +90,16 @@ static void ctxt_switch_from(struct vcpu *p)
> >       if ( is_idle_vcpu(p) )
> >           return;
> >
>
> It would be good to have a comment explaining what (and why) we need to
> save only partially the state while the VCPU is suspended.

Actually, nothing bad happens if we save everything except SCTLR_EL1,
which is modified in PSCI SYSTEM_SUSPEND. The only downside might be
losing some CPU cycles.

If we talk just about GIC and the Arch timer state, the relevant guidance
can be found in the Power State Coordination Interface
(DEN0022F.b, 6.8 Preserving the execution context).

Even if the guest saves the context it has access to and restores it on
resume, we only need to save the transient state. Looks like we can
do nothing with the arch timer here. And gic save function can be called
from PSCI SYSTEM_SUSPEND.

>
> > +    /* Arch timer */
> > +    p->arch.cntkctl =3D READ_SYSREG(CNTKCTL_EL1);
> > +    virt_timer_save(p);
> > +
> > +    /* VGIC */
> > +    gic_save_state(p);
> > +
> > +    if ( test_bit(_VPF_suspended, &p->pause_flags) )
> > +        return;
>
> Can you explain why we don't need an isb()?
>
> > +
> >       p2m_save_state(p);
> At least part of p2m_save_state() can't be skipped because it is
> applying a workaround on platform where AT mistakenly speculate.

Thank you for pointing that out, we need it here.

>
> [...]
>
> >
> > +static int32_t do_psci_1_0_system_suspend(register_t epoint, register_=
t cid)
> > +{
> > +    int32_t rc;
> > +    struct vcpu *v;
> > +    struct domain *d =3D current->domain;
> > +
> > +    /* 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 )
> > +    {
> > +        if ( v !=3D current && is_vcpu_online(v) )
> > +        {
> > +            domain_unlock(d);
> > +            return PSCI_DENIED;
> > +        }
> > +    }
> > +    domain_unlock(d);
> > +
> > +    rc =3D domain_shutdown(d, SHUTDOWN_suspend);
> > +    if ( rc )
> > +        return PSCI_DENIED;
> > +
> > +    rc =3D do_setup_vcpu_ctx(current, epoint, cid);
> > +    if ( rc !=3D PSCI_SUCCESS )
> > +    {
> > +        domain_resume_nopause(d);
> > +        return rc;
> > +    }
> > +
> > +    set_bit(_VPF_suspended, &current->pause_flags);
> > +
> > +    dprintk(XENLOG_DEBUG,
>
> I think you should use gdprintk() which will print the domain for you as
> well as appropriately ratelimit the message.
>
> That said, I would consider using gprintk() so the message can also be
> printed in a debug build.

Got it, I will use gprintk() instead as suggested. Thank you for the
recommendation.

>
> > +            "Dom %u: SYSTEM_SUSPEND requested, epoint=3D%#lx, cid=3D%#=
lx\n",
>
> For both of them you technically want to use PRIregister rather than lx.

Got it, I will use PRIregister instead as suggested. Thank you for the
recommendation.

>
> Lastly, we prefer to use %pd when printing a domain. The argument is
> 'd'. But this should not be necessary if you use gprintk().

Ok.

>
>
> > +            d->domain_id, epoint, cid);
> > +
> > +    return rc;
> > +}
> > +
> >   static int32_t do_psci_1_0_features(uint32_t psci_func_id)
> >   {
> >       /* /!\ Ordered by function ID and not name */
> > @@ -214,6 +267,8 @@ static int32_t do_psci_1_0_features(uint32_t psci_f=
unc_id)
> >       case PSCI_0_2_FN32_SYSTEM_OFF:
> >       case PSCI_0_2_FN32_SYSTEM_RESET:
> >       case PSCI_1_0_FN32_PSCI_FEATURES:
> > +    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
> > +    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
> >       case ARM_SMCCC_VERSION_FID:
> >           return 0;
> >       default:
> > @@ -344,6 +399,24 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *regs,=
 uint32_t fid)
> >           return true;
> >       }
> >
> > +    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 ( is_64bit_domain(current->domain) &&
>
> Shouldn't this be removed so the check also apply for 32-bit domain on
> 64-bit system?

AFAIK, this question was already addressed in a previous version of
this patch series:
https://patchew.org/Xen/cover.1751020456.git.mykola._5Fkvach@epam.com/07227=
0e0940b6bcc2743d56a336363f4719ba60a.1751020456.git.mykola._5Fkvach@epam.com=
/#7070f416-119c-49f8-acd0-82c6e31f0fc6@xen.org

>
> > +             fid =3D=3D PSCI_1_0_FN32_SYSTEM_SUSPEND )
>  > +        {> +            epoint &=3D GENMASK(31, 0);
> > +            cid &=3D GENMASK(31, 0);
> > +        }
> > +
> > +        perfc_incr(vpsci_system_suspend);
> > +        PSCI_SET_RESULT(regs, do_psci_1_0_system_suspend(epoint, cid))=
;
> > +        return true;
> > +    }
> > +
> >       default:
> >           return false;
> >       }
> > diff --git a/xen/common/domain.c b/xen/common/domain.c
> > index 5241a1629e..624c3e2c27 100644
> > --- a/xen/common/domain.c
> > +++ b/xen/common/domain.c
> > @@ -1343,16 +1343,13 @@ int domain_shutdown(struct domain *d, u8 reason=
)
> >       return 0;
> >   }
> >
> > -void domain_resume(struct domain *d)
> > +#ifndef CONFIG_ARM
> > +static
> > +#endif
>
> I am not sure who suggests this but personally, I dislike using
> CONFIG_<ARCH> in common code. I also think this is worse for hiding the
> "static" keyword.
>
> For the latter, I think it would be better to provide a separate helper
> that can be #ifdef.

Will do. I will provide a separate helper as suggested.


>
> [...]
>
> Cheers,
>
> --
> Julien Grall
>

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 09:09:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 09:09:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094142.1449497 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqpgb-0003hn-Nz; Tue, 26 Aug 2025 09:09:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094142.1449497; Tue, 26 Aug 2025 09: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 1uqpgb-0003hg-Kv; Tue, 26 Aug 2025 09:09:49 +0000
Received: by outflank-mailman (input) for mailman id 1094142;
 Tue, 26 Aug 2025 09:09:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+/mc=3G=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1uqpga-0003S2-GW
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 09:09:48 +0000
Received: from mail-lf1-x135.google.com (mail-lf1-x135.google.com
 [2a00:1450:4864:20::135])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6986ed07-825c-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 11:09:46 +0200 (CEST)
Received: by mail-lf1-x135.google.com with SMTP id
 2adb3069b0e04-55f3edab4c7so2700858e87.3
 for <xen-devel@lists.xenproject.org>; Tue, 26 Aug 2025 02:09: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>
X-Inumbo-ID: 6986ed07-825c-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756199386; x=1756804186; 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=a+sQwmfzJG+QKH2P0eioTtyOB0gxI0ZokrLq8RJV3mM=;
        b=PHpW7D22usSivWUqTDqLjcmWeN91Lo03XX0j6sLEkRVQqC0FFrySQVDE7gEt3iG9Vs
         j3NLkRDVpkWaYrOpYP0A3A3byzIJizgJcsm2JMGfd5r5BUv6BLJlFwvn55hfoBTp99Ja
         SVR6ly3IIjObEtgWEM2NMJhnQO/kfK8L1AFWHsqj9WF/ew4fPjHdgkNxZJQp0VJdPrgV
         zeCNZyE04Bm37NWT43YjSkZtrGsbB2fJNTgS7/ZylMF7AgIgY8GnvHYb45+LF2ZDvL6b
         7agtXmR5aKhmoc+N7MUa7O+4rAt/EUy8jq55feHMOmZ3eTvq8TWbVLExYaz9y0R2a15k
         2j7Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756199386; x=1756804186;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=a+sQwmfzJG+QKH2P0eioTtyOB0gxI0ZokrLq8RJV3mM=;
        b=p1m0KWPHzbPAnIKvC45ew4lcTPgcx8g4GcFPHgbPAbKwJkK6GzLsri3bNJVUtFaNQC
         v8bXk1dhmpYb0qhtUyNkMosngVsI2pxcfaeXKf3NmNjG0kGjTvNzXZgtC3Rk27/dcAz0
         nTfdqb+EilXw1Gf1dyG6TPghr7nKnBndAgD+BR6Vg9KqRr7X7LME2Q62/w0kNPFBEj/g
         aExiqUxPCJATQIbSIXXElDMGqicEWwCmz2E7JEKzqd2ShqRBi09BkpIiTKbaqTSYE9Q6
         CtG84P9p0CpBoaTDeXrVnBwhiK7CbnbViTwHwSRB2i3tTeFXCmRCPE0/g3cNIIN08gBk
         yqBg==
X-Gm-Message-State: AOJu0YwsUeJNR6Ydk1ZXcoTWW3gVi/Qqe8Mrah5inHeBKxCm3hesLwBm
	jZz1QyS7vn/sf0UffT7sA2oRKbM/7jCRtn78WDQUT4uupEi4czi4jEc7jWCWAKbHekSjRKptwjF
	hfb4ePsaqXLrHKXljAwMG3+O75TR/M84=
X-Gm-Gg: ASbGncuCjJBD/gCK4jPxwuJUGSUIDGgaxwH93DJWm1WYXjEy+TzN3qiQlQtjJgdnPRr
	hn5sbgik5qEazfd6Dwqn8LohnsSA5exFj8tWcn8FpZaZoBhY1FX5LbdeJHlatOVZE/CoBHTuP18
	NyAzMFFAiGjD/RQHw1w/SrSYu8vy/9+Og36JQUEzvKZHdpS/SJpfaGxKm2iVe0ZEAINgyBtaA/v
	e+OUY+FWlXlXax8
X-Google-Smtp-Source: AGHT+IHlgxoPmhUhqsyHOznfzHwNZabRSp6zgfFk8ZhRhZaQzyufi8nYKfmSh5C3NuZfNaPS5G5Js10OmmTU5WTPVn4=
X-Received: by 2002:a05:6512:404f:b0:55f:4ab0:79a7 with SMTP id
 2adb3069b0e04-55f4ab08b27mr1253084e87.7.1756199386066; Tue, 26 Aug 2025
 02:09:46 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1755506449.git.mykola_kvach@epam.com> <433d74567cabf33c2a672afc0f96e58efec75c54.1755506449.git.mykola_kvach@epam.com>
 <d11c1224-99c0-4254-b593-c8a7f405b079@xen.org>
In-Reply-To: <d11c1224-99c0-4254-b593-c8a7f405b079@xen.org>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 26 Aug 2025 12:09:34 +0300
X-Gm-Features: Ac12FXwauAnkLbLlrzBbjwuDJPwweWHZ_zXGuzEj9ZaohZO9pCjZjCXx1jZD08M
Message-ID: <CAGeoDV8thPLmSWS7POJm8ni9CKVP+5b+W4yN5Sn93xdSUQUGFg@mail.gmail.com>
Subject: Re: [PATCH v9 3/4] SUPPORT.md: Document PSCI SYSTEM_SUSPEND support
 for guests
To: Julien Grall <julien@xen.org>
Cc: xen-devel@lists.xenproject.org, Mykola Kvach <mykola_kvach@epam.com>, 
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, 
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Stefano Stabellini <sstabellini@kernel.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Julien,

On Sun, Aug 24, 2025 at 12:31=E2=80=AFAM Julien Grall <julien@xen.org> wrot=
e:
>
> Hi Mykola,
>
> On 18/08/2025 09:49, Mykola Kvach wrote:
> > From: Mykola Kvach <mykola_kvach@epam.com>
> >
> > Add a new entry under the "Virtual Hardware, QEMU" section documenting
> > support for the optional PSCI SYSTEM_SUSPEND function exposed to guests=
.
> >
> > This function is available via the virtual PSCI (vPSCI) interface and
> > allows guest domains (domUs) to initiate system suspend operations.
> >
> > The feature is currently marked as Experimental.
> >
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> > ---
> > Changes in v6:
> > - Dropped the generic guest PSCI support entry (merged in a separate pa=
tch)
> > - This patch now documents only the SYSTEM_SUSPEND optional function
> > - Reworded commit message to match the final form after rebase
> >
> > Changes in v5:
> > - Dropped ARM/PSCI entry: this refers to internal use of PSCI SMC calls=
,
> >    which is not relevant for SUPPORT.md
> > - Added a dedicated entry for PSCI SYSTEM_SUSPEND instead of generic gu=
est
> >    PSCI info; guest PSCI support was documented in a separate patch
> > ---
> >   SUPPORT.md | 5 +++--
> >   1 file changed, 3 insertions(+), 2 deletions(-)
> >
> > diff --git a/SUPPORT.md b/SUPPORT.md
> > index 6a82a92189..b5ab049b52 100644
> > --- a/SUPPORT.md
> > +++ b/SUPPORT.md
> > @@ -962,8 +962,9 @@ Emulated PSCI interface exposed to guests. We suppo=
rt all mandatory
> >   functions of PSCI 1.1. See below for the list of optional PSCI call
> >   implemented and their status.
> >
> > -   Status, Mandatory: Supported
> > -   Status, MIGRATE_INFO_TYPE: Supported
> > +    Status, Mandatory: Supported
> > +    Status, MIGRATE_INFO_TYPE: Supported
> > +    Status, SYSTEM_SUSPEND: Experimental
>
> Experimental implies the feature is not complete. But it is unclear to
> me what is missing (or I probably forgotten). Can this be clarified in
> the commit message?
>
> If there is nothing, then I think it can be a tech preview.

I initially thought that we would need to add a "xl suspend" command
in order to allow suspending another domain via the control/hardware
domain. However, after your question I reconsidered it and realized
that this functionality is not directly related to vPSCI, but rather
to Xen system suspend support.

So, I will change it to "Tech Preview" as you proposed. Thank you!

>
> Cheers,
>
> --
> Julien Grall
>

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 09:12:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 09:12:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094162.1449507 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqpjX-0005aV-4Q; Tue, 26 Aug 2025 09:12:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094162.1449507; Tue, 26 Aug 2025 09:12: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 1uqpjX-0005aO-1L; Tue, 26 Aug 2025 09:12:51 +0000
Received: by outflank-mailman (input) for mailman id 1094162;
 Tue, 26 Aug 2025 09:12:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ofj+=3G=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1uqpjV-0005aI-3o
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 09:12:49 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20629.outbound.protection.outlook.com
 [2a01:111:f403:2412::629])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d46807e2-825c-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 11:12:47 +0200 (CEST)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 CH1PR12MB9645.namprd12.prod.outlook.com (2603:10b6:610:2af::5) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9052.23; Tue, 26 Aug 2025 09:12:42 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d%7]) with mapi id 15.20.9052.019; Tue, 26 Aug 2025
 09:12: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>
X-Inumbo-ID: d46807e2-825c-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Tc/ms7H9b2xikJu+V+Qy5pKzqtzFk8U2v68sfR2R6XoiflQc1TFpvPhdokVLC/+Vy4N07IFW2lDvyrfTXmU2CtR32xfzmDQzr0cH2hckYDD+cDW+t2Lwbc5xOh6VQZyUZq7K7z119aLsJ0dnk1PJ1ZhQwMZkHEpLn8Bu2YvXfgA8ei9g8enyfoOh2vkj0WwOvE91tCGXPRPZS1vuLBEIbFRzgmxoeW1if3Hq+ZcEVBTXaHd9DiVzEAqY6q10f0S/mpkwZjBLtdmWU+x6JW3Of7LVceYv+rotkpbE4O7FU/XxwEn3WfVdxn5xlhE/PtxVu6W64Nva42yeJP8i+iC9xA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IxKFLY33cxkPuswlPGM8nkHT3cPorvHDMOTlzE3i4rA=;
 b=LEvHHlhtCmDTebo3vjkEgMRq/ASK0ItzYDVbyMU2MiPu1Grr/xu0drX6oOaspaYav5/9m3dazIe9H24o5J7KhdoKo6e3/Wb5HqPkdOcV+9+pILDwRQpexc+OWKzld7kaskqwYvrgyzmzv0TWp+ju4PrXnuqdHaukqudlO/Hli5UdKyzEoMEC/hl2P7ZTK0qVz6f3qsNlBWwU3iLpNl6mI27EYYMIiQyqw97sTW0H2oG0wGzDpAri3FTlDobX0X//DE9D7rLO3/UqyostKn8TI2yXdrauSccNHnH+C+T7Bs94KDEcZxfmViJY/jY1Xfigr+DoMviWL8TnFvfjGCUBfg==
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=IxKFLY33cxkPuswlPGM8nkHT3cPorvHDMOTlzE3i4rA=;
 b=5CNhLhHiRL0O9WlYYCthwMcdChMArO8YAl6wJz1DOPokpTbWK6FasaFTN/v39i6s252eFPpWcgb1fG02wuYuA3nknX6uvSs1/RYLK4tL4oge7uAWuIcGPpRPFTssbhw956LmH+n38NDs0buERit1rsFw8D58On8GKxifiy3wEJY=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, "Orzel, Michal" <Michal.Orzel@amd.com>, Julien
 Grall <julien@xen.org>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v7 11/13] tools/cpufreq: extract CPPC para from cpufreq
 para
Thread-Topic: [PATCH v7 11/13] tools/cpufreq: extract CPPC para from cpufreq
 para
Thread-Index: AQHcE1LyQ0lYyaNtv02FRdV+NHpcFrRzhX0AgAESjyCAAAlHgIAACnwg
Date: Tue, 26 Aug 2025 09:12:42 +0000
Message-ID:
 <DM4PR12MB84515E30F6D144FEF9E051A6E139A@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20250822105218.3601273-1-Penny.Zheng@amd.com>
 <20250822105218.3601273-12-Penny.Zheng@amd.com>
 <b54e3460-380b-41e4-b9e9-75ba5c6129fd@suse.com>
 <DM4PR12MB845198356D8DDCE39A62DF29E139A@DM4PR12MB8451.namprd12.prod.outlook.com>
 <af56fd77-7567-4fd9-89ed-340939843e51@suse.com>
In-Reply-To: <af56fd77-7567-4fd9-89ed-340939843e51@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-08-26T09:10:20.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|CH1PR12MB9645:EE_
x-ms-office365-filtering-correlation-id: 958ee53b-4b8f-41c4-1b71-08dde480b689
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?dk03UWdlN0Q5UlZyYVN6SGZWMEF3UzlidGllRjQ5YmdCb1MzOHFnVTlMc0ZI?=
 =?utf-8?B?emh0RG1iWkppYzV2eHN3d0kzU2Ura0paSEdtZVNzSytjVVRrSGp6dmFmUDJN?=
 =?utf-8?B?RmxESDVRbU9DK2dMWnh0eS8vVEk0THF0VHMrUSthRGZoaGg1QzdPUDNuZXZM?=
 =?utf-8?B?TEZQNUNPWW55cjk4QVAxd3VlblJSSERXckFLS0Z0N3I5blFHMjBmMXZFbTlM?=
 =?utf-8?B?WFRaRS9BYzVyZWJpZ3BSTFI3K1k1LzY1UGFUVjk4VzhjSS9XNTBhNGMyazJE?=
 =?utf-8?B?TDVkaTdTbVNZeitqbzVpaUtvd25NblMxTDJuVFFNd1NXVEY5NmVoVXhBOS9D?=
 =?utf-8?B?R29QZU5kWE1FRFhrTWJsZFlxOUxZWXVKUG9sTzZXb3dpWFZ1VFhNWEc3RVZn?=
 =?utf-8?B?akF2Z0FWS1ZmZGxFbGc3RldJVHU0Rm5ZZjIxdzNjUTlacTJBYmRkQlhyOGRk?=
 =?utf-8?B?MmRBUm1jd1JiTWxma3g0UVhEOEh5cVVxV1FRQjJzVlo2WlExNXRZM2FHSUV4?=
 =?utf-8?B?bTMwR2RqaTlFKzU4WHQxSzVqWENNTkc5SC8rbVdKajFhNkxMdXVWUlhVZmZx?=
 =?utf-8?B?cURHc3p2c1pIK3QvaHVvWkZnK3RpMUl2bW95ekZvRFhlQ3BqdFNZd0NNUzlU?=
 =?utf-8?B?aXZ2QlcyZXpmZ3hJRG1aTzBMYkVSckhrbGlOVXNFUW8zSDNuNFZSeTlmZThx?=
 =?utf-8?B?QkxwcEZCYkM4Mm5pWW9HZUtjM2Q2QnF3OTMyU1lUY2dHUEJTN0RrN0dTWnNZ?=
 =?utf-8?B?SWw0UUptS2ZFTEwvTjlwMGc2M2tWU1NmUDROdDVYYU0xdzZTVVdGVWszYlo2?=
 =?utf-8?B?Mkx1K1FXOHkzYllrTW8wQnZycmdYeGRiamtjMU5wYjFPOUh3bUpMVTNTelVr?=
 =?utf-8?B?VmtLNm5mMzdhT1F3QmdsMnNjM0k0SVBnU1hMTk1DOEF2ZWpqK3dmUjU5LzJZ?=
 =?utf-8?B?UTFGWHFVbFI5SW9tZ0lGOFNYYXpqSUhUajBaZisyYVcwaTZ3YjdoS3ZHNFI4?=
 =?utf-8?B?bWZ6L2s0S0dycGFqUEtBTnphcFFHYTNma2RrREhlckM4dW9zbFNMODJaYjRn?=
 =?utf-8?B?S0RBN1VtRFh1V25FbFQ3cW8rNlRMWDVXTXFCanlEcURwakpWTmdvcGpUdGlw?=
 =?utf-8?B?SnZjRG5PSTA3RG1RTVRiT0ppamdSWlR0RUQ1MnpFQ0RLZ1NDcGhoSkFBcXJN?=
 =?utf-8?B?WXBIYkQ2LzFIM3lTY3ExNXhXUGFuS0hyYldhNnY0S1N1ZFN5MjlnSXZiV3FS?=
 =?utf-8?B?bnQxNFBIMmwyamhKTlJJUnExcEhpeWpyUzg4K2dJNVV4aHVacDc3VDRxM3Nt?=
 =?utf-8?B?NHpFYmdIWmd0S0xmK1V4M3VGby9zME1kL0ZDQUJ2RjNuRzBKVTJRcDRWNkRs?=
 =?utf-8?B?V296VGo0eU93WGw3dXhidjM5NXBUazdrUG94czVjZFErazE4YnpabEwvWUJj?=
 =?utf-8?B?bURCT0JQaHRyNHVoWlRNNlpWU2tBcEIvK0tvNTRDQWZ5c3ZNemdpdVhGbVFj?=
 =?utf-8?B?c0wvL2krdGtmQUdEYlJtS3pta1U4UEV3NzVFc2U5ZS9RNHFRL2UxcUNoQzZ4?=
 =?utf-8?B?eG5jaFI2Zm5udkN6VEZVWUhzT25xOCtheVNqazZCVHMxMm5GZkxkVDFEcklE?=
 =?utf-8?B?ZTdyWDBreVc5b2lPL0ZXdGRRa2tnZEFiQnFCVXZUTUp1RkF6MVlBZzhLR2p1?=
 =?utf-8?B?UXUxZkkvZ0Q0YjFMaFVRT3Q3cmVNRG5NQXhVenRJa1lCNDJ6bmpUMUlSZFJZ?=
 =?utf-8?B?cDBTRXdWQmc0c3Z0Skl3djBZQlFpN1IrVml3bVQvSE5PNjdBRE9KTXpzenZE?=
 =?utf-8?B?QmVzZHU2VVlGYTU4ME1oajhXbWxuMkMyQzd5dk9yZWRHVFcydUpydFF6T1pI?=
 =?utf-8?B?UU8yQ1phNGdUdXFxTmdENWxOSkJVVlE5MFduTGMwb2ZaY3RBZ2Erc3ZuVDly?=
 =?utf-8?B?NW91eGxRS2IyQ0xMdWV4TVVUb1JnQnZweEtNQzdWeFVRTmlVdXkySTRxL0ZP?=
 =?utf-8?B?ZERqdnFkeDZRPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?Uk1sZFhPbU9FOEFRQTd6citlVUN5ZDdIOGFnUnR3aGlMZEJBeWtBd2tNcnVh?=
 =?utf-8?B?TzF2QlBZNm80TU1XenM2VG5CVnp3a0IvWDQvRjY0anhoelNnRDltcmRsMGo1?=
 =?utf-8?B?bnJ3S2dEMFRSS3VKQzhleDYveXZjcHlPSkphRjUwdXVPMWlML0hEU0ZpaTFG?=
 =?utf-8?B?UmNIVUNhWE5qaVEzS2xQbDRUNmFDcGVSaG9pTHB6cHFRdzYvbzRpQlE1ZC9B?=
 =?utf-8?B?cnBCVzZ0Y3o3dzBMVHp1SmluZG5Gdkh2MXNPNkQwS3lKSEgva1p1ZFZGc1dN?=
 =?utf-8?B?UUdaQmZ4UE9aWjV1Z0VHOHA3NXNUQXFRSVdMaXFiZVlWWGNNU1RjTEZ2WEZU?=
 =?utf-8?B?cEtMaDJPMHRNSVdpMFhBdUg4SStNbDdKeDRQK1NtQmlHTEpQb1A4ZGpZMmVM?=
 =?utf-8?B?aExJUWE3di9wUDIvcnIyeE43RmFvaUdUa0Jlb0dlQjRSa1JINFlDaGR5Rkd1?=
 =?utf-8?B?MFlKVGRJWk01MXMrWkxkSkJ3K21RdEJYWGgzbTBwT2FqUnZnM1B2MVZvYURI?=
 =?utf-8?B?V09qTWJ0N0NXbVNoWjJJQStsVXE1UkltTmVobjlTZEFrclJRQXY0UkI5dUZL?=
 =?utf-8?B?QmdaSDg5c0VSNDE4a3U4YnhJR0JrZ25SOHhGTDV0cFQ1OVBOekJQUVpTV3RD?=
 =?utf-8?B?VS9SVXJId2kvQnVuSzFIaE5GbXZ5Y3NTeHl2bkRkMWxqT2Zrb3JCaVg4MHUz?=
 =?utf-8?B?bkl2dnEyTmRiU0RZcFprVm5EYndZTVNKemRHSEZCU1hLdTI2UXgweFlGZ0pw?=
 =?utf-8?B?anJDUWIwNll1YTlkOU5qeVdxZVRYUkYxVllMUy8yYzFnWGVsZlNqd2VkM1dC?=
 =?utf-8?B?cmo3QXNiT0orbkdrR3Z2SWczRWNXc1N6aTFiZXpZUUxqeHU1eHRmMzE3UFJ1?=
 =?utf-8?B?SWZBa1hId0NuRkp6TnQzOTRqdnZNV1RtcjBLZ1Y5cWVCMmplb3llcitvSWZR?=
 =?utf-8?B?aS91aEtxdlBKOEtXTlRhcXdtUHIzTDVRNHpoc214UjNhRnZkNUJGUHp2M05k?=
 =?utf-8?B?Zkh3b2IyU2d4aFpwMStseUNoOG5WN0lMcXZld1NjN0hBSytMSXNmR2pEUHMx?=
 =?utf-8?B?aTBmc3F4MFFJZ0lSWkpOTm5EaGtDVTMzanUxWEZhS2J5cUtpOGtIV1dWcE1z?=
 =?utf-8?B?RStiS2Noem84czViS2lYMVNHQnNQRzViWGUwczJKQjZMQndCWk9tSmZCK05C?=
 =?utf-8?B?U3V5V0dqOGp0UHJTeVN5bXhFWEVJTTRpWWp3dVFBRytjbElNL2NIeVh5VHhK?=
 =?utf-8?B?enRwYVpoak5YZERINnZWME5UNHRmYnJaSmFqZkVSZjRBWTEvNGlHSFhCM0VI?=
 =?utf-8?B?bURDcS90VjM3WHdFdDhFdlZaZHVsdVVVdmJIQzdIeGpWRHVuL2duYjhaOC9u?=
 =?utf-8?B?Smkxb3NyaDhaMEVVRGpsaEVrMWVlYUhGWFdaSlhPcjhGV0FmWUxZczVnd0ti?=
 =?utf-8?B?WWwrSjN1SE9QbDZBTnBZak5HYVViTFhxYnMrTUZtSGhhdzEwUVR5RUFqVDdq?=
 =?utf-8?B?NUEwVlpRSWg2eWhmblo0SEJvZ3NRUkVxT3o4QzNBRDNaUHpxVnZGeGp6ZkVG?=
 =?utf-8?B?WGVLNGROWGVEejBTR3R3dTNXbEFxYkppQzRSQ2RLdUJlTXVoWjdmMzFMYTZj?=
 =?utf-8?B?YUI1MVFaN0ZLTWhkVEVRSWUrN2VlZnZ5TWNwSFJVc2VmYUVYcUdEYnJGd1lH?=
 =?utf-8?B?T0Q2QVUwK29MQzF6aEgwZWJ1Y1FuNm1mWDZHUHJwUEJRWkZ1RmZTUTltRHBa?=
 =?utf-8?B?VGZRR3lsMlduK1d4M05GYTdSRndVd2NDVG5uN1JWOU9ydWpTYmJlNnZsUmtl?=
 =?utf-8?B?WXJOYjIxRkxNSDF5VklEWThIZVNQRGJYK040UnBacFRhb0dJWUhIVWt0YnJF?=
 =?utf-8?B?cUc2QWl3OTQxa2dmTU1GdmlFNU5FVkxOaG9IenRraEFRNjVvbS91Tm0rZDF6?=
 =?utf-8?B?WTRzaUZING82NnFWdUtIU0crcmZWZU9iNXNyY2phZWxiL3Jud0tFd21Jb3lT?=
 =?utf-8?B?UWlWOVgycnRxY25KdnhJSVpJdFoxOGpQV3BadElQOE5ITzVGYyt6V1RjN2ZF?=
 =?utf-8?B?VFRHS2dsbDY3YWJlYmdoQjVzWFhScDR0cjA3b3ZjZE8yd2FwcmNvNHFLdmR5?=
 =?utf-8?Q?DGEw=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 958ee53b-4b8f-41c4-1b71-08dde480b689
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Aug 2025 09:12:42.5675
 (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: UJfDXt34Y5XRCxF0v8D3iO+oeUpS0izf6Php3B+00zFfXw2FF2AkddzSz1nSkLX8fo86ArdKNltDzS6ca3lkZw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH1PR12MB9645

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFR1ZXNkYXksIEF1Z3VzdCAyNiwgMjAy
NSA0OjMzIFBNDQo+IFRvOiBQZW5ueSwgWmhlbmcgPHBlbm55LnpoZW5nQGFtZC5jb20+DQo+IENj
OiBIdWFuZywgUmF5IDxSYXkuSHVhbmdAYW1kLmNvbT47IEFudGhvbnkgUEVSQVJEDQo+IDxhbnRo
b255LnBlcmFyZEB2YXRlcy50ZWNoPjsgSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPjsg
QW5kcmV3DQo+IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT47IE9yemVsLCBNaWNo
YWwgPE1pY2hhbC5PcnplbEBhbWQuY29tPjsNCj4gSnVsaWVuIEdyYWxsIDxqdWxpZW5AeGVuLm9y
Zz47IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPjsgU3RlZmFubw0KPiBT
dGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPjsgeGVuLWRldmVsQGxpc3RzLnhlbnBy
b2plY3Qub3JnDQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjcgMTEvMTNdIHRvb2xzL2NwdWZyZXE6
IGV4dHJhY3QgQ1BQQyBwYXJhIGZyb20gY3B1ZnJlcSBwYXJhDQo+DQo+IE9uIDI2LjA4LjIwMjUg
MTA6MjEsIFBlbm55LCBaaGVuZyB3cm90ZToNCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t
LS0NCj4gPj4gRnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPg0KPiA+PiBTZW50
OiBNb25kYXksIEF1Z3VzdCAyNSwgMjAyNSAxMTozNyBQTQ0KPiA+Pg0KPiA+PiBPbiAyMi4wOC4y
MDI1IDEyOjUyLCBQZW5ueSBaaGVuZyB3cm90ZToNCj4gPj4+IC0tLSBhL3Rvb2xzL2xpYnMvY3Ry
bC94Y19wbS5jDQo+ID4+PiArKysgYi90b29scy9saWJzL2N0cmwveGNfcG0uYw0KPiA+Pj4gQEAg
LTI4OCw3ICsyODgsNiBAQCBpbnQgeGNfZ2V0X2NwdWZyZXFfcGFyYSh4Y19pbnRlcmZhY2UgKnhj
aCwgaW50IGNwdWlkLA0KPiA+Pj4gICAgICAgICAgQ0hLX0ZJRUxEKHMuc2NhbGluZ19taW5fZnJl
cSk7DQo+ID4+PiAgICAgICAgICBDSEtfRklFTEQocy51LnVzZXJzcGFjZSk7DQo+ID4+PiAgICAg
ICAgICBDSEtfRklFTEQocy51Lm9uZGVtYW5kKTsNCj4gPj4+IC0gICAgICAgIENIS19GSUVMRChj
cHBjX3BhcmEpOw0KPiA+Pj4NCj4gPj4+ICAjdW5kZWYgQ0hLX0ZJRUxEDQo+ID4+DQo+ID4+IFdo
YXQgaXMgZG9uZSBoZXJlIGlzIGFscmVhZHkgbGVzcyB0aGFuIHdoYXQgY291bGQgYmUgZG9uZTsg
SSB0aGluayAuLi4NCj4gPj4NCj4gPg0KPiA+IEVtbSwgbWF5YmUgYmVjYXVzZSB3ZSBkZWZpbmUg
dHdvIGRpZmZlcmVudCBjcHVmcmVxIHBhcmEgc3RydWN0dXJlcyBmb3IgdXNlcg0KPiBzcGFjZSBh
bmQgc3lzY3RsLCBzdHJ1Y3QgeGNfZ2V0X2NwdWZyZXFfcGFyYSBhbmQgc3RydWN0IHhlbl9nZXRf
Y3BwY19wYXJhLg0KPiA+IEJ1dCBmb3IgY3BwYyBwYXJhLCBpdCBpcyBhbiBhbGlhczoNCj4gPiB0
eXBlZGVmIHN0cnVjdCB4ZW5fZ2V0X2NwcGNfcGFyYSB4Y19jcHBjX3BhcmFfdDsNCj4NCj4gT2gu
IFRoZW4gLi4uDQo+DQo+ID4gU28gLi4uDQo+ID4NCj4gPj4+IEBAIC0zNjYsNiArMzY1LDMzIEBA
IGludCB4Y19zZXRfY3B1ZnJlcV9jcHBjKHhjX2ludGVyZmFjZSAqeGNoLCBpbnQNCj4gY3B1aWQs
DQo+ID4+PiAgICAgIHJldHVybiByZXQ7DQo+ID4+PiAgfQ0KPiA+Pj4NCj4gPj4+ICtpbnQgeGNf
Z2V0X2NwcGNfcGFyYSh4Y19pbnRlcmZhY2UgKnhjaCwgdW5zaWduZWQgaW50IGNwdWlkLA0KPiA+
Pj4gKyAgICAgICAgICAgICAgICAgICAgIHhjX2NwcGNfcGFyYV90ICpjcHBjX3BhcmEpIHsNCj4g
Pj4+ICsgICAgaW50IHJldDsNCj4gPj4+ICsgICAgc3RydWN0IHhlbl9zeXNjdGwgc3lzY3RsID0g
e307DQo+ID4+PiArICAgIHN0cnVjdCB4ZW5fZ2V0X2NwcGNfcGFyYSAqc3lzX2NwcGNfcGFyYSA9
DQo+ID4+PiArJnN5c2N0bC51LnBtX29wLnUuZ2V0X2NwcGM7DQo+ID4+PiArDQo+ID4+PiArICAg
IGlmICggIXhjaCAgfHwgIWNwcGNfcGFyYSApDQo+ID4+PiArICAgIHsNCj4gPj4+ICsgICAgICAg
IGVycm5vID0gRUlOVkFMOw0KPiA+Pj4gKyAgICAgICAgcmV0dXJuIC0xOw0KPiA+Pj4gKyAgICB9
DQo+ID4+PiArDQo+ID4+PiArICAgIHN5c2N0bC5jbWQgPSBYRU5fU1lTQ1RMX3BtX29wOw0KPiA+
Pj4gKyAgICBzeXNjdGwudS5wbV9vcC5jbWQgPSBHRVRfQ1BVRlJFUV9DUFBDOw0KPiA+Pj4gKyAg
ICBzeXNjdGwudS5wbV9vcC5jcHVpZCA9IGNwdWlkOw0KPiA+Pj4gKw0KPiA+Pj4gKyAgICByZXQg
PSB4Y19zeXNjdGwoeGNoLCAmc3lzY3RsKTsNCj4gPj4+ICsgICAgaWYgKCByZXQgKQ0KPiA+Pj4g
KyAgICAgICAgcmV0dXJuIHJldDsNCj4gPj4+ICsNCj4gPj4+ICsgICAgQlVJTERfQlVHX09OKHNp
emVvZigqY3BwY19wYXJhKSAhPSBzaXplb2YoKnN5c19jcHBjX3BhcmEpKTsNCj4NCj4gLi4uIHdo
eSBpcyB0aGlzIGhlcmUsIHdoZW4gLi4uDQo+DQo+ID4+PiArICAgIG1lbWNweShjcHBjX3BhcmEs
IHN5c19jcHBjX3BhcmEsIHNpemVvZigqc3lzX2NwcGNfcGFyYSkpOw0KPiA+Pg0KPiA+PiAuLi4g
eW91IG1pbmltYWxseSB3YW50IHRvIGFwcGx5IGFzIG11Y2ggY2hlY2tpbmcgaGVyZS4NCj4NCj4g
Li4uIGEgYmV0dGVyIGVmZmVjdCBjYW4gYmUgaGFkIGJ5DQo+DQo+ICAgICBjcHBjX3BhcmEgPSBz
eXNfY3BwY19wYXJhOw0KPg0KPiA/DQo+DQoNClRydWUsIG5vIG5lZWQgdG8gZG8gbWVtb3J5IGNv
cHkgdGhlbiBpZiBpdCBpcyBhbiBhbGlhcw0KDQo+IEphbg0K


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 09:26:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 09:26:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094178.1449517 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqpwj-0007RD-BS; Tue, 26 Aug 2025 09:26:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094178.1449517; Tue, 26 Aug 2025 09:26: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 1uqpwj-0007R6-8P; Tue, 26 Aug 2025 09:26:29 +0000
Received: by outflank-mailman (input) for mailman id 1094178;
 Tue, 26 Aug 2025 09:26:27 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1uqpwh-0007Qz-KG
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 09:26:27 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1uqpwg-007UAz-1G;
 Tue, 26 Aug 2025 09:26:26 +0000
Received: from [2a02:8012:3a1:0:7d60:da5a:46e8:4212]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1uqpwg-0020An-13;
 Tue, 26 Aug 2025 09:26:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=Xx72W0gjQ5Nnf4uyKucK7r/1cZkAMMPyamW0y+YnIaI=; b=04mqVx4S0t6Q4t+F5SKO/+4Hvr
	1OXneTBOJnf8xzlljXSv3ijvzUSaIqrNhObfv7QRBjoOKpfsGkY+z6woRNZsDZrh3H+Xg8Sqa6OjY
	so3Z7/3OkMYuDHRCOmbHh5drgs23sif3YHQlliCg+9ZtLw+kya60WgwAnMb+LHMmvY8g=;
Message-ID: <67d58304-146e-480e-a689-440afe7828aa@xen.org>
Date: Tue, 26 Aug 2025 10:26:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for
 guests
Content-Language: en-GB
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: xen-devel@lists.xenproject.org, Mykola Kvach <mykola_kvach@epam.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.1755506449.git.mykola_kvach@epam.com>
 <205b2b354ff1d34d0e9ec4777ca3c94492f6d9d1.1755506449.git.mykola_kvach@epam.com>
 <9ab99307-9594-4cbc-9c7a-b1221575d41c@xen.org>
 <CAGeoDV-MC65TZ74BLVDzfggQoeKXTKB-eVaadUoDB9iuP7TW3Q@mail.gmail.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <CAGeoDV-MC65TZ74BLVDzfggQoeKXTKB-eVaadUoDB9iuP7TW3Q@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Mykola,

On 26/08/2025 10:09, Mykola Kvach wrote:
>> Shouldn't this be removed so the check also apply for 32-bit domain on
>> 64-bit system?
> 
> AFAIK, this question was already addressed in a previous version of
> this patch series:
> https://patchew.org/Xen/cover.1751020456.git.mykola._5Fkvach@epam.com/072270e0940b6bcc2743d56a336363f4719ba60a.1751020456.git.mykola._5Fkvach@epam.com/#7070f416-119c-49f8-acd0-82c6e31f0fc6@xen.org

Sure. For 32-bit domain, in theory the top bits should be zeroed. But 
AFAIK, there is no harm to zero them again and it would avoid someone to 
wonder why this is protected by is_64bit_domain().

So unless there is a strong reason to keep, I would rather prefer if we 
remove the 64-bit.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Tue Aug 26 09:26:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 09:26:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094183.1449528 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqpxC-0007qB-LY; Tue, 26 Aug 2025 09:26:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094183.1449528; Tue, 26 Aug 2025 09:26:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqpxC-0007q4-G7; Tue, 26 Aug 2025 09:26:58 +0000
Received: by outflank-mailman (input) for mailman id 1094183;
 Tue, 26 Aug 2025 09:26:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=vqZn=3G=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1uqpxA-0007pS-Bc
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 09:26:57 +0000
Received: from mail-24417.protonmail.ch (mail-24417.protonmail.ch
 [109.224.244.17]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cda9069d-825e-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 11:26:54 +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>
X-Inumbo-ID: cda9069d-825e-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1756200412; x=1756459612;
	bh=r3mxhllkZRkvWtnYYROiTE/T7kp18InogEEVlpsaEag=;
	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=Y1A5y+BlsKHagTrC4rDcgm5gPmvxxFHpsGwQBt7cPmEv3//t80HWUIL1fgq/GuMr8
	 HBN9YyiAR/2aO5fTR3tDY6b7gaUcUwRe1o4452PD87ALjQUMTzJwYTN3ssWHh7Kp8x
	 w1HsX/raAQM7P676VLmHWXMv5u5k2lxZO48D4te1o7iborgCBIgu5yYFkCkODq95qq
	 6dXms5VIZXwbhaiu5eYOEpzX+NXioQXN2l0+9zWHhApdcPFfyPJ8Tk1O61B55DQy+7
	 zYwo5FxopxDFqOk9byV/RDFqTB6ms6zyhzLrW7l0aPEsqjzIJ3PnuYVu9w5xfHTAFL
	 2MEd/dLlgPT8Q==
Date: Tue, 26 Aug 2025 09:26:46 +0000
To: Anthony PERARD <anthony@xenproject.org>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: Re: [PATCH v4 6/8] tools/xl: enable NS16550-compatible UART emulator for HVM (x86)
Message-ID: <aK190s5IAscTuJlr@kraken>
In-Reply-To: <aKx4FtlhAbXxtZlB@l14>
References: <20250731192130.3948419-1-dmukhin@ford.com> <20250731192130.3948419-7-dmukhin@ford.com> <aKx4FtlhAbXxtZlB@l14>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 1b5c829be0a5f14815cbdb6b70997b470238edb2
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Mon, Aug 25, 2025 at 04:49:58PM +0200, Anthony PERARD wrote:
> On Thu, Jul 31, 2025 at 07:22:12PM +0000, dmkhn@proton.me wrote:
> > diff --git a/docs/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.in
> > index 5362fb0e9a6f..e1d012274eaf 100644
> > --- a/docs/man/xl.cfg.5.pod.in
> > +++ b/docs/man/xl.cfg.5.pod.in
> > @@ -3032,14 +3032,17 @@ the domain was created.
> >  This requires hardware compatibility with the requested version, eithe=
r
> >  natively or via hardware backwards compatibility support.
> >
> > -=3Ditem B<vuart=3D"uart">
> > +=3Ditem B<vuart=3D[ "sbsa_uart", "ns16550" ]>
>=20
> This syntax here would inditace that `vuart` takes a list of items. You
> could write instead:
>=20
>     vuart=3D"UART"
>=20
> which seems more in line with the rest of the man page. Then you can add
> some thing like "with UART been one of "sbsa_uart" or "ns16550". It's
> possible to also have a sublist, like the `tee` option have.

OK, will do.

>=20
>=20
> >  To enable vuart console, user must specify the following option in the
> > -VM config file:
> > +VM config file, e.g:
> >
> > +```
>=20
> This file isn't in markdown, it's in perlpod.

Whoops, muscle memory. Thanks.

>=20
> >  vuart =3D "sbsa_uart"
> > +```
> >
> > -Currently, only the "sbsa_uart" model is supported for ARM.
> > +Currently, "sbsa_uart" (ARM) and "ns16550" (x86) are the only supporte=
d
> > +UART models.
> >
> >  =3Dback
> >
> > diff --git a/tools/libs/light/libxl_arm.c b/tools/libs/light/libxl_arm.=
c
> > index 4a19a8d22bdf..f4721b24763c 100644
> > --- a/tools/libs/light/libxl_arm.c
> > +++ b/tools/libs/light/libxl_arm.c
> > @@ -92,14 +92,26 @@ int libxl__arch_domain_prepare_config(libxl__gc *gc=
,
> >      uint32_t virtio_mmio_irq =3D GUEST_VIRTIO_MMIO_SPI_FIRST;
> >      int rc;
> >
> > -    /*
> > -     * If pl011 vuart is enabled then increment the nr_spis to allow a=
llocation
> > -     * of SPI VIRQ for pl011.
> > -     */
> > -    if (d_config->b_info.arch_arm.vuart =3D=3D LIBXL_VUART_TYPE_SBSA_U=
ART) {
> > +    switch ( d_config->b_info.vuart )
> > +    {
> > +    case LIBXL_VUART_TYPE_SBSA_UART:
> > +        /*
> > +         * If pl011 vuart is enabled then increment the nr_spis to all=
ow
> > +         * allocation of SPI VIRQ for pl011.
> > +         */
> >          nr_spis +=3D (GUEST_VPL011_SPI - 32) + 1;
> >          vuart_irq =3D GUEST_VPL011_SPI;
> >          vuart_enabled =3D true;
> > +        break;
> > +
> > +    case LIBXL_VUART_TYPE_NS16550:
> > +        LOG(ERROR, "unsupported UART emulator %d\n", d_config->b_info.=
vuart);
>=20
> This seems too late in libxl.  I think checking if the config value is
> correct could be done in one of the *_setdefault() like many other
> config check are done. There's
> libxl__arch_domain_build_info_setdefault() that could be used.

Thanks for the pointer.

>=20
> > +        abort();
> > +        break;
> > +
> > +    case LIBXL_VUART_TYPE_UNKNOWN:
> > +    default:
> > +        break;
> >      }
> >
> >      for (i =3D 0; i < d_config->num_disks; i++) {
> > diff --git a/tools/libs/light/libxl_types.idl b/tools/libs/light/libxl_=
types.idl
> > index fe251649f346..fd60c2b26764 100644
> > --- a/tools/libs/light/libxl_types.idl
> > +++ b/tools/libs/light/libxl_types.idl
> > @@ -276,6 +276,7 @@ libxl_checkpointed_stream =3D Enumeration("checkpoi=
nted_stream", [
> >  libxl_vuart_type =3D Enumeration("vuart_type", [
> >      (0, "unknown"),
> >      (1, "sbsa_uart"),
> > +    (2, "ns16550"),
> >      ])
> >
> >  libxl_vkb_backend =3D Enumeration("vkb_backend", [
> > @@ -722,7 +723,6 @@ libxl_domain_build_info =3D Struct("domain_build_in=
fo",[
> >
> >
> >      ("arch_arm", Struct(None, [("gic_version", libxl_gic_version),
> > -                               ("vuart", libxl_vuart_type),
>=20
> arch_arm.vuart is part of libxl's API, it can't be removed. There's some
> explanation about "libxl API compatibility" at the top of "libxl.h".
> But for this change, you could add `vuart` to `arch_x86`, or if you want
> to add `vuart` at the root like you did, you'll need to check that both
> `arch_arm.vuart` and `vuart` aren't set at the same time, and have one
> of the *_setdefault() function do the work of migrating the option.
>=20
> You'll need also a LIBXL_HAVE_* macro in libxl.h, probably named
> LIBXL_HAVE_VUART_NS16550.

Thanks for details, I will proceed with option 2, adding `vuart` at the roo=
t.

>=20
> >                                 ("sve_vl", libxl_sve_type),
> >                                 ("nr_spis", uint32, {'init_val': 'LIBXL=
_NR_SPIS_DEFAULT'}),
> >                                ])),
> > @@ -739,6 +739,7 @@ libxl_domain_build_info =3D Struct("domain_build_in=
fo",[
> >
> >      ("vpmu", libxl_defbool),
> >      ("trap_unmapped_accesses", libxl_defbool),
> > +    ("vuart", libxl_vuart_type),
> >
> >      ], dir=3DDIR_IN,
> >         copy_deprecated_fn=3D"libxl__domain_build_info_copy_deprecated"=
,
> > diff --git a/tools/libs/light/libxl_x86.c b/tools/libs/light/libxl_x86.=
c
> > index 60d4e8661c93..0f039ca65a88 100644
> > --- a/tools/libs/light/libxl_x86.c
> > +++ b/tools/libs/light/libxl_x86.c
> > @@ -2,6 +2,45 @@
> >  #include "libxl_arch.h"
> >  #include <xen/arch-x86/cpuid.h>
> >
> > +static void libxl__arch_domain_vuart_assert(
> > +    libxl__gc *gc,
> > +    libxl_domain_config *d_config,
> > +    struct xen_domctl_createdomain *config)
> > +{
> > +    LOG(ERROR, "unsupported UART emulator %d\n", d_config->b_info.vuar=
t);
> > +    abort();
>=20
> The name of the function is wrong. It doens't assert anything, and just
> abort...
> I don't think this function is useful.

Yeah, I mostly added it to avoid typing the same error message several time=
s.=20
Will remove.

>=20
> Also, don't abort() for configuration error, you need to return an error
> instead.

Ack.

>=20
> > +}
> > +
> > +static void libxl__arch_domain_vuart_unsupported(
> > +    libxl__gc *gc,
> > +    libxl_domain_config *d_config,
> > +    struct xen_domctl_createdomain *config)
> > +{
> > +    if ( d_config->b_info.vuart !=3D LIBXL_VUART_TYPE_UNKNOWN )
> > +        libxl__arch_domain_vuart_assert(gc, d_config, config);
>=20
> This function have also a bad name, it doesn't check if a uart is
> unsupported.

Will rework.

>=20
> > +}
> > +
> > +static void libxl__arch_domain_vuart_enable(
> > +    libxl__gc *gc,
> > +    libxl_domain_config *d_config,
> > +    struct xen_domctl_createdomain *config)
> > +{
> > +    switch ( d_config->b_info.vuart )
> > +    {
> > +    case LIBXL_VUART_TYPE_SBSA_UART:
> > +        libxl__arch_domain_vuart_assert(gc, d_config, config);
> > +        break;
> > +
> > +    case LIBXL_VUART_TYPE_NS16550:
> > +        config->arch.emulation_flags |=3D XEN_X86_EMU_NS16550;
> > +        break;
> > +
> > +    case LIBXL_VUART_TYPE_UNKNOWN:
> > +    default:
> > +        break;
> > +    }
> > +}
> > +
> >  int libxl__arch_domain_prepare_config(libxl__gc *gc,
> >                                        libxl_domain_config *d_config,
> >                                        struct xen_domctl_createdomain *=
config)
> > @@ -9,14 +48,17 @@ int libxl__arch_domain_prepare_config(libxl__gc *gc,
> >      switch(d_config->c_info.type) {
> >      case LIBXL_DOMAIN_TYPE_HVM:
> >          config->arch.emulation_flags =3D (XEN_X86_EMU_ALL & ~XEN_X86_E=
MU_VPCI);
> > +        libxl__arch_domain_vuart_enable(gc, d_config, config);
> >          if (!libxl_defbool_val(d_config->b_info.u.hvm.pirq))
> >              config->arch.emulation_flags &=3D ~XEN_X86_EMU_USE_PIRQ;
> >          break;
> >      case LIBXL_DOMAIN_TYPE_PVH:
> >          config->arch.emulation_flags =3D XEN_X86_EMU_LAPIC;
> > +        libxl__arch_domain_vuart_unsupported(gc, d_config, config);
> >          break;
> >      case LIBXL_DOMAIN_TYPE_PV:
> >          config->arch.emulation_flags =3D 0;
> > +        libxl__arch_domain_vuart_unsupported(gc, d_config, config);
> >          break;
> >      default:
> >          abort();
>=20
> Thanks,

Thanks for review!

--
Denis

>=20
> --
> Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Tue Aug 26 09:29:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 09:29:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094198.1449536 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqpz8-0008V3-Tt; Tue, 26 Aug 2025 09:28:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094198.1449536; Tue, 26 Aug 2025 09: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 1uqpz8-0008Uw-RK; Tue, 26 Aug 2025 09:28:58 +0000
Received: by outflank-mailman (input) for mailman id 1094198;
 Tue, 26 Aug 2025 09:28:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=vqZn=3G=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1uqpz8-0008Uq-4D
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 09:28:58 +0000
Received: from mail-4322.protonmail.ch (mail-4322.protonmail.ch [185.70.43.22])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 168e56df-825f-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 11:28:56 +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>
X-Inumbo-ID: 168e56df-825f-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1756200535; x=1756459735;
	bh=mslmXK9OHNVpn2/Ea4D4mpHnKQGLhDxpdMaHjoTheO8=;
	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=SwNQIsFoqwEWlWtpeUyjMHPG+KOW45IQ6LAgEWQIq1o/s43R1G0iFksK1NiYRiIHZ
	 xjAXLH1kLXImwyxP8mSGgKTZjJ3YWWbjCYMR2WxcrfMoau+uX3Jfyg2EnPjRlKekqv
	 X1s/K0Sfk5+zgEpi+whNU5iIDOCBBJftS1ZXG0Q3cKDUE0O4Bp0dfUq36ub0i5JLOy
	 +Eoj7EPuM/1/zsFLbMtYGThXP1swUDZwPPaYKbhT4CebYsRRcqn70J4Mbp8bFERNMw
	 Y8oOe6WhRgehbZX2MWSwrj+AJeLkcQuh6tpMtJLKluEtuGyvtzlW2Ptg4RFs9k5Bqa
	 C/k9IhKfP5i8w==
Date: Tue, 26 Aug 2025 09:28:52 +0000
To: Anthony PERARD <anthony@xenproject.org>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com
Subject: Re: [PATCH v16 2/4] tools/include: move xc_bitops.h to xen-tools/bitops.h
Message-ID: <aK1+MmANufLb+XeR@kraken>
In-Reply-To: <aKwtLMAslH6v5L82@l14>
References: <20250812223024.2364749-1-dmukhin@ford.com> <20250812223024.2364749-3-dmukhin@ford.com> <aKwtLMAslH6v5L82@l14>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 0816d20ab31612ba51f59f95bca9c66246c8e6e8
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Mon, Aug 25, 2025 at 11:30:20AM +0200, Anthony PERARD wrote:
> On Tue, Aug 12, 2025 at 10:30:45PM +0000, dmkhn@proton.me wrote:
> > diff --git a/tools/libs/guest/xg_dom_elfloader.c b/tools/libs/guest/xg_=
dom_elfloader.c
> > index f17930d98bf7..8531e90f8e21 100644
> > --- a/tools/libs/guest/xg_dom_elfloader.c
> > +++ b/tools/libs/guest/xg_dom_elfloader.c
> > @@ -25,8 +25,9 @@
> >  #include <stdarg.h>
> >  #include <inttypes.h>
> >
> > +#include <xen-tools/bitops.h>
>=20
> It doesn't looks like xg_dom_elfloader.c is using anything from
> bitops.h. The last use of it was probably removed in ed04ca95981f
> ("libelf: rewrite symtab/strtab loading")

Ack.

>=20
> > +
> >  #include "xg_private.h"
> > -#include "xc_bitops.h"
> >
> >  #define XEN_VER "xen-3.0"
> >
> > diff --git a/tools/libs/guest/xg_dom_hvmloader.c b/tools/libs/guest/xg_=
dom_hvmloader.c
> > index 39e1e5f579a7..0f569c20c522 100644
> > --- a/tools/libs/guest/xg_dom_hvmloader.c
> > +++ b/tools/libs/guest/xg_dom_hvmloader.c
> > @@ -24,8 +24,9 @@
> >  #include <inttypes.h>
> >  #include <assert.h>
> >
> > +#include <xen-tools/bitops.h>
> > +
>=20
> I think there's two reason to remove this include:
> - it doesn't looks like xg_dom_hvmloader.c is using any macro from it.
> - bitops.h is already included by xg_private.h.

Will remove.

>=20
>=20
> >  #include "xg_private.h"
> > -#include "xc_bitops.h"
> >
> >  /* -------------------------------------------------------------------=
----- */
> >  /* parse elf binary                                                   =
      */
> > diff --git a/tools/libs/guest/xg_sr_common.h b/tools/libs/guest/xg_sr_c=
ommon.h
> > index 2f058ee3a6ff..2e583f2eac72 100644
> > --- a/tools/libs/guest/xg_sr_common.h
> > +++ b/tools/libs/guest/xg_sr_common.h
> > @@ -2,11 +2,10 @@
> >  #define __COMMON__H
> >
> >  #include <stdbool.h>
> > +#include <xen-tools/bitops.h>
>=20
> It's already included in xg_private.h, so this feels unnecessary.

Ack.

> >
> >  #include "xg_private.h"
> >  #include "xg_save_restore.h"
> > -#include "xc_bitops.h"
> > -
>=20
>=20
> If the extraneous includes could be removed, that would be nice. In
> anycase:
> Acked-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks

>=20
> Thanks,
>=20
> --
> Anthony PERARD
>=20



From xen-devel-bounces@lists.xenproject.org Tue Aug 26 09:48:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 09:48:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094210.1449547 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqqHZ-0003Hx-Du; Tue, 26 Aug 2025 09:48:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094210.1449547; Tue, 26 Aug 2025 09:48: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 1uqqHZ-0003Hq-AZ; Tue, 26 Aug 2025 09:48:01 +0000
Received: by outflank-mailman (input) for mailman id 1094210;
 Tue, 26 Aug 2025 09:48:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/n8j=3G=epam.com=Dmytro_Firsov@srs-se1.protection.inumbo.net>)
 id 1uqqHY-0003Hk-9g
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 09:48:00 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bfad685f-8261-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 11:47:59 +0200 (CEST)
Received: from DB9PR03MB8327.eurprd03.prod.outlook.com (2603:10a6:10:37f::12)
 by PAWPR03MB9668.eurprd03.prod.outlook.com (2603:10a6:102:2e3::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Tue, 26 Aug
 2025 09:47:56 +0000
Received: from DB9PR03MB8327.eurprd03.prod.outlook.com
 ([fe80::b7f:9b2d:242e:f7f0]) by DB9PR03MB8327.eurprd03.prod.outlook.com
 ([fe80::b7f:9b2d:242e:f7f0%6]) with mapi id 15.20.9052.019; Tue, 26 Aug 2025
 09:47: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>
X-Inumbo-ID: bfad685f-8261-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=x78U6X3tSUDMOIvkxXh8rm19XCV+BSyH/BMauAvnYi0tMLr2zvNrqD064GCICj3K7gyHlSUpm55liYWquX6g/Y6xdwJHBS2SpWHdztrdI95lymgosp8cA3OixzGHb5PfWVRiHIWSZaCmNzIkDDy0PwNAvABI291TZ99BXO/8kI/d0Bnoc1oVRtk/U/YXQ41ajo4saSnP55dznYs/jwcKkiNe2jAREr2+3c3uqgf8dsi14Vx4v5AyNu+8tOrytdZDHXM/IjfFI3AKYV9+tcmp5ijDl7AhIOVn65YagntAf8gATycX84RboEZZEZMRiCov/FN1/AGg6gn0GJImjrim+Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=MYp27fPd2pP9NcUD+cjHP470VsGECIw7FOX7A9GwGxA=;
 b=xN5cBeYkoIw2h2M6tc9/zBBcPSFplHA3Fx89hfBOYp2qBaoMaUMFKmxDlgEQb1jE5ttJXDRohG/BnEB2YgAKx8rd1eEHKwm3AfTxHUqw31n2D/JMOfG/S6N51p2NhWMGYOLrRGtJuOyGXNV51VnnODkBxaUFxWpJsl4siBs9gYVKGJ2lj0fc0YO8SkZ5ORuWtgacwPimk+dCXkH4kWu32jTRmARQ1I0qfgyNToitrJSKZY2lLvkST5fcqF4Q54C0uM12wMWaGm3lje95wLsyQ55cReID4rjj7I6AGrvK9DCWmcZJE/f7ukJPvhl3XCmeMD1wKDIbYZCJOnHytDr7SQ==
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=MYp27fPd2pP9NcUD+cjHP470VsGECIw7FOX7A9GwGxA=;
 b=QyEEoCIqe/DsiAOK2/HkGxjq4qBDu8JiTpD/kPthnbwxNUec8cox3y+iBAsuUkcf4QGvYlvy3a9XkA8QCe2y7vuFfnLiiG2kNGVjJsqVJSPYPXtiECwNXDdudCQwMZR6vjuz05Xk8keQxuVinuCqV67q+XOE/ox4XaMSJxLxkevG1pzQePuC8shD4EqUfhikevqkZSv3uUUWqhoKZ1Lsys5JGXHAq6yjt79gbYOE9RD+t9Y9Y7MZgBDT3l+oBZGICuQag29Lkr6uXvnNhLAwV+4dfwcasjX/9vs9mglBqd53KfgpQPFjMX0FAe8UBqsI4mWSsVclWZWaTASw3/44HA==
From: Dmytro Firsov <Dmytro_Firsov@epam.com>
To: "Orzel, Michal" <michal.orzel@amd.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: Bertrand Marquis <bertrand.marquis@arm.com>, Rahul Singh
	<rahul.singh@arm.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien
 Grall <julien@xen.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH] xen/arm: smmuv3: Add cache maintenance for non-coherent
 SMMU queues
Thread-Topic: [PATCH] xen/arm: smmuv3: Add cache maintenance for non-coherent
 SMMU queues
Thread-Index: AQHcBuKhRQAjcpitXUCHafCQJ8zznbRuazEAgAZj94A=
Date: Tue, 26 Aug 2025 09:47:54 +0000
Message-ID: <5d48d927-7e1e-4b11-b429-0b94259154ab@epam.com>
References:
 <24567cc1630b1577c33939ff71d67fb2ebe5572f.1754491424.git.dmytro_firsov@epam.com>
 <cff3e94c-4476-4103-ae7e-19656703e755@amd.com>
In-Reply-To: <cff3e94c-4476-4103-ae7e-19656703e755@amd.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: DB9PR03MB8327:EE_|PAWPR03MB9668:EE_
x-ms-office365-filtering-correlation-id: db65ab96-3d92-4fd3-6753-08dde485a1bd
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|376014|38070700018|8096899003;
x-microsoft-antispam-message-info:
 =?utf-8?B?MXc2MWhNSGZiQWlsQUo0RXFKMCtRUFlqVEluekdvRW9nMmdTbW5TRExROVpn?=
 =?utf-8?B?N0Y1ck5nOCtXR0xPb1FSaVZDVmVqK2lNTDNQSkJNNWpCVzhXU0FBQjZwWXBI?=
 =?utf-8?B?YWxwejFvdHYxUmkwd2swYUdqNTRpVWhLUHJBcjdiY0lEb1lZMmF3dUFIU1VN?=
 =?utf-8?B?QnV2T2Z3enhMaU1EUysxWk9jelVzTEFxVk5KV0FXR25UWWhiUVpZUlFDVHly?=
 =?utf-8?B?ejJzTm4vM0FHRU91bFRPSDlnakhPcXdFMCtvWkJWWkxMczBCSG9CWUU2eWQz?=
 =?utf-8?B?R2ozNHg5MHdHT3d1Q3g1bGJHbVJlMWliQ1ZuRHlHbHNkNG9wbzNkRUJTVXJv?=
 =?utf-8?B?Yi9ZaU9UVXZRbGlaWjRGS082TjdWcHdwTnFhMVZJV2EyM3c1U0xXK0k2M2k3?=
 =?utf-8?B?QXBTTzJkVHpUYndSZTJFWE9FRm5GTE1xbDI3dlNtN0xqdHIwcXVCNkFkbFJp?=
 =?utf-8?B?d0wxUlBrMWJJVXVGTU9DYmVkS21BVnc4L0dxOGZaNFgxVlpBaWU5c3ZIQTNn?=
 =?utf-8?B?bE1wWUVFZWFnbTVJeEoycVQxc3Z3bUkwbVRGeDB6NTBXOXdQVWVyUm5ZOXg2?=
 =?utf-8?B?ajZiOVBjZGlNb3FNc1FkZFdFVkVVK0h5YTRpODcrQ1J6Tm5odTVZS205SlZU?=
 =?utf-8?B?aXREeEVPc0h1d3U4M1EzNnBjQlBHZU9IMVZDUU90R3E3UU5xRVJZcXZzSi9x?=
 =?utf-8?B?SUtRMTJRVkoyckpCOFRHV1BzQmtDSjdTKzNLaHY1K2RUWElSdTBlU0RlSlJE?=
 =?utf-8?B?dG5CK0FZcXQ0cVlPV2VRUXpLVFVja1dtZjkxM21BLzhFWnQzSlBvQ2pkUXRu?=
 =?utf-8?B?YzlTTDZQcVZyUE92SnljU2l3NnpqRWpnRDNxcHF4bnZuYXNKcjcwcUE0eXBY?=
 =?utf-8?B?bWhRcXU1MG9qVUFZUERibFozc2F5d2lMaDdKT0xSWDlzWWd1b0VHZ2M5ZVlo?=
 =?utf-8?B?eWRXNjZzbmdrSnVSbGJaV0NsdnVGZmk2bGlSb1RMSmFsZFI0VDVGZ1kyVnVE?=
 =?utf-8?B?c0N5SWI5SFhnWldOTFBuVVlWSm52TFB0QmlvMVhVVlRTOWlnbHo3d2tIZ3Qv?=
 =?utf-8?B?RFhwY2R1MndiL1lONTVCWmh3V0NqSGdqQ0xyVy9aSHozaGtNUVppVzVOYVRJ?=
 =?utf-8?B?VWNDNHJUdEwrd2JlMG0rK3VjN25IK0dxenBMT1k3a09DdDl0U2tTa2l0ME5K?=
 =?utf-8?B?Z1FpNFBSYlE3VlphUStHUER6eGdFOFEvaWlYU3RMWFBvUkF6OGhpeVJzd3lH?=
 =?utf-8?B?cTllTUZvQ3M3Y2xwZnkvN0NmVXFQK1VuZXJSR0w1ZkdhK0RKZXFUWTFWRkY2?=
 =?utf-8?B?N0hLQ3o1N05kMUdsS21zV0doSWo0TEpIUkhnY0Z6SDJMRTRzaTV0Q1dzT3Ux?=
 =?utf-8?B?c2NoZy9oUXA3Q3g2Zm1aUnVmOWkwQkt2RndmWCtKTTVrSjl6Mk1hNVhQRU5B?=
 =?utf-8?B?RlZFL3FWSU1rMk5kK0NKV1BBUkNhSDFsNnlCM3V3V3NDQkNkS3dFdUVqLzJR?=
 =?utf-8?B?MXlHQ1U1NDNTaVpuUmhQc1lWK21tUEVxRlY0Z2dKN294REg5bXpOZE9Rb0NH?=
 =?utf-8?B?L2RxRWF3L2RFajVxZE1WT0I1Nmwza3N6aDNDNW03YkRHNVRaVDFWTU13YUxm?=
 =?utf-8?B?d3NrZ0VYT2VURmlzY3AxUWlSbFFLNEtXN0U1dk1COWZOZHBTV3Z6TUU4dDVp?=
 =?utf-8?B?UWZNclY5KzBPczNnUjhScEdRT1I3UTdCT2psYTZCd2x0UmlMVFAxa3M2RXRl?=
 =?utf-8?B?Y0toMHhBd2YrendEWVVMYWpMMkNHcmZVMWU1TjFWNmt4YzJxQjJoMEdmNXNl?=
 =?utf-8?B?UTRJL3BzcHJxVVhiREthQnlLYmRrWjFyOGRKa0V4aEtpb1VxWUcwZXJjaW5H?=
 =?utf-8?B?c0YyWmd3WjZhSS9qTmU4Z0lidUpJZTlQbFliTXFLNEkyZUp6OHpKc3NxaFpT?=
 =?utf-8?B?czhDZ3plbDJjeEQyWmtjN1JqQ1cwVWxyVWdvVERTSDVudmg2WTVPUHd2WDk3?=
 =?utf-8?B?Vlcra3RvS3RBPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR03MB8327.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018)(8096899003);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?OUt0OEcwQlpMVTNjZUVNa3R0WE5SMU9ycUZIb1JLT1h6TFN3bHZaTDJoelNO?=
 =?utf-8?B?WVExNE1JU3hiKzFXRmptVEdvRDZ5aDdmenpSa0ZJcndUc0Z0WUdwdDBPZ3Iz?=
 =?utf-8?B?MVh4cndCWEY3M21IUDlMU2FVK1dIbFFLK1Q3ZlZOTXRlUUZZem5iVVI5cUN0?=
 =?utf-8?B?c2JxMTBndUkyajhIYjN5MzRjNFR2SzU1NUxiNXF1ODRiRjFvbGN5M2dWUWlZ?=
 =?utf-8?B?a3hzVEdtQ2FQUUM4MDBjeTFKdVBjLzFtQVRJSkhXYkdkeUdtdkU2RW0wSVZt?=
 =?utf-8?B?VHI4SktubzBvczIzZTRaQlhlVmtSUnVJWlBZSDJzYlpFNll0WlZ4Rkpidzkw?=
 =?utf-8?B?SXlRcWdtaDRGVi9sUGY4eHF4ZWpKZEdtVkQvZnNHYk9aWG00eHVpUmhRSTBM?=
 =?utf-8?B?WDE0enNwWldWQnQ0Mkhud3VNY0taOE9jL1BuTnEva3FUdlUzOGtXbFZDeVJx?=
 =?utf-8?B?N0Z5SWpZUVJHYTRiWGovUkdjRXJmUmprb2tDZkxrdmFDSHpjazRvd282Q3dn?=
 =?utf-8?B?VTA1VUQ4aGVyWG1QQU1BNS92Y1hLVmhCdTRNRzR0S3J0bVJOUUtGSGUxNWll?=
 =?utf-8?B?dXBtZERLV1dhMCtKN3pQeER3eVY5R2UyR25ObWR3ZjFyT0RQNFpxUjdDQ0pD?=
 =?utf-8?B?MGg3akk3L2oycXprSjdjazhHazdxYTN0TERudTVUVWpIbFg0Z1gvRDlHaWc1?=
 =?utf-8?B?djYzbXZNc2VVR1VDL0MzVnUvUy9uczBDN2R6NGcrSnY0YWxvREZwZURNdzYr?=
 =?utf-8?B?RjZ1dm1xUTlmRngySnBocDRLTzNMQU56VDVsSk8rWjBqMXhBUnkrWndLQVBT?=
 =?utf-8?B?bWVkdE5uVHhwcmwzVG5kMUprUyt1TGxSMDlaV0lBNkE2dDY3UE4vR0dHQmZl?=
 =?utf-8?B?NnVONjdTckFPTlcrUTVJRW1KWVg5WEVvZ3lTQVFNSmdoYk9YeDRDYlRxNFlY?=
 =?utf-8?B?M2NNZmFUN2Jrd1NrU3NmVWxMcVh4NmE4YytpbWloZVlJU2dTeHRNd0RlZS9n?=
 =?utf-8?B?OFFMT0V0YzNpRTdPenVhWWY0ZEhXSGJ2QXhBdm1Fb25Ocy9laENnQ29WZnor?=
 =?utf-8?B?WGFJcFV6QS9hWHhVOVhvcDJFK2pqMEJNcjlwVmFOSkh0cUJxVjNBTzR5RmRn?=
 =?utf-8?B?NlFSNnZxZVlTU0JVTlZjQ3dXZDFjeC90QnlWc0xXY2dtTEV4eGRPbFJaMnph?=
 =?utf-8?B?dHN6RXdIRUhhTXpCTWlvZTBZaW8vcmVkRU9SS1hZb3FrZDdGWndOa0FkUFZ0?=
 =?utf-8?B?OGFyVnlhNW1rNFQ5clVKaFp1Z1JzN0c3Q05jd21WMEM2dWtIcHlkQlZBZnNT?=
 =?utf-8?B?TmhDSnovMERSUU9hVHBGZ0JKMElzNjVDZloyYitsNjlCYVNzU2plUE1NMVdp?=
 =?utf-8?B?RCtnRGkvZVJCOWJPZzIzbWgxOSsxbE5TZDdvR3JwWmM4akVnOVlDakdzTkNt?=
 =?utf-8?B?aEpjOEpQTUZsRndyeDdFVXpyQjFZMEpPQVdBSXFBSmRRVnRuY2hzRjg3TXVX?=
 =?utf-8?B?c1UydDdMbkZsd0VvL3FIdVRUUTdLQWhpdmtPQjAwTHVXZk9MR3VOR0FUa3p5?=
 =?utf-8?B?dlJNVysrSUNDK3I0L0lQanNETEJqcVgyYTFveU8xRFZPSTl6VkpNc054RFhO?=
 =?utf-8?B?d2ZOZUdNSGdOMnpDaVNsV1FjQUY5RUFTVVF2QXNLNU5rWm8wcVArME0yK2l6?=
 =?utf-8?B?dm1EYUtTek5vT0xXNVlIdWZIL3lUMjR4MEJEVDM1SkhIZmNxM1dScmRGOVdW?=
 =?utf-8?B?OVJ5U0JEVGFNRUNvVFZRQjNiNG02dzRyUk0wakVYeHBRTTJCellPaVVFeS9T?=
 =?utf-8?B?NmF0anVXKzFmUENFbHFNM0tYRSswZjl6SWJ2OTBTZUF2cFpON3ArbGtsUFox?=
 =?utf-8?B?ZlhRNXZkSS9Nc2N1WWpvTkRLTGdSN0szNGpNWVhPdFRDemFMU1haZTdhRVlU?=
 =?utf-8?B?Mjg4enp1cUNCOVJHWnZ3c0E4c0x4bXlzUGoyQWN2WFpjUVA3VmpWSzA4NUxo?=
 =?utf-8?B?Sm1keGNPWlhFMzNJQjBza2lRckV2RkhtdzdGa0JOdFRnNVo0UDV5N2lNWUJK?=
 =?utf-8?B?ME43U204alhnOUQ0Z0lObXFjWTdVRkdDTkY1UlVaYWxtVUFQTTkvelZZOWhh?=
 =?utf-8?B?STdVOHNQMmlqT1Znd25ZajhBTWhBcU5OcFpPa282YmFyOGM0czdDazlKQTBR?=
 =?utf-8?B?NkE9PQ==?=
Content-Type: multipart/alternative;
	boundary="_000_5d48d9277e1e4b11b4290b94259154abepamcom_"
MIME-Version: 1.0
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DB9PR03MB8327.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: db65ab96-3d92-4fd3-6753-08dde485a1bd
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Aug 2025 09:47:55.1348
 (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: DVeO9JcyGVSIMtq4yO/YszaFxhxEZ7w2q6sGRh4gBvJ4bAuCYkhbYNnsIdrgzEGcDjY2fr1G9/u0v6oLS3yZSw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR03MB9668

--_000_5d48d9277e1e4b11b4290b94259154abepamcom_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SGkgTWljaGFsLA0KDQpPbiAyMi4wOC4yNSAxMToxMiwgT3J6ZWwsIE1pY2hhbCB3cm90ZToNCg0K
DQoNCk9uIDA2LzA4LzIwMjUgMTY6NTgsIERteXRybyBGaXJzb3Ygd3JvdGU6DQoNCg0KQWNjb3Jk
aW5nIHRvIHRoZSBBcm0gU01NVXYzIHNwZWMgKEFSTSBJSEkgMDA3MCksIGEgc3lzdGVtIG1heSBo
YXZlDQpTTU1VKHMpIHRoYXQgaXMvYXJlIG5vbi1jb2hlcmVudCB0byB0aGUgUEUgKHByb2Nlc3Np
bmcgZWxlbWVudCkuIEluIHN1Y2gNCmNhc2VzLCBtZW1vcnkgYWNjZXNzZXMgZnJvbSB0aGUgUEUg
c2hvdWxkIGJlIGVpdGhlciBub24tY2FjaGVkIG9yIGJlDQphdWdtZW50ZWQgd2l0aCBtYW51YWwg
Y2FjaGUgbWFpbnRlbmFuY2UuIFNNTVUgY2FjaGUgY29oZXJlbmN5IGlzIHJlcG9ydGVkDQpieSBi
aXQgNCAoQ09IQUNDKSBvZiB0aGUgU01NVV9JRFIwIHJlZ2lzdGVyIGFuZCBpcyBhbHJlYWR5IHBy
ZXNlbnQgaW4gdGhlDQpYZW4gZHJpdmVyLiBIb3dldmVyLCB0aGUgY3VycmVudCBpbXBsZW1lbnRh
dGlvbiBpcyBub3QgYXdhcmUgb2YgY2FjaGUNCm1haW50ZW5hbmNlIGZvciBtZW1vcnkgdGhhdCBp
cyBzaGFyZWQgYmV0d2VlbiB0aGUgUEUgYW5kIG5vbi1jb2hlcmVudA0KU01NVXMuIEl0IGNvbnRh
aW5zIGRtYW1fYWxsb2NfY29oZXJlbnQoKSBmdW5jdGlvbiwgdGhhdCBpcyBhZGRlZCBkdXJpbmcN
CkxpbnV4IGRyaXZlciBwb3J0aW5nLiBCdXQgaXQgaXMgYWN0dWFsbHkgYSB3cmFwcGVyIGZvciBf
eHphbGxvYygpLCB0aGF0DQpyZXR1cm5zIG5vcm1hbCB3cml0ZWJhY2sgbWVtb3J5ICh3aGljaCBp
cyBPSyBmb3IgY29oZXJlbnQgU01NVXMpLg0KDQpEdXJpbmcgWGVuIGJyaW5nLXVwIG9uIGEgc3lz
dGVtIHdpdGggbm9uLWNvaGVyZW50IFNNTVVzLCB0aGUgZHJpdmVyIGRpZA0Kbm90IHdvcmsgcHJv
cGVybHkgLSB0aGUgU01NVSB3YXMgbm90IGZ1bmN0aW9uYWwgYW5kIGhhbHRlZCBpbml0aWFsaXph
dGlvbg0KYXQgdGhlIHZlcnkgYmVnaW5uaW5nIGR1ZSB0byBhIHRpbWVvdXQgd2hpbGUgd2FpdGlu
ZyBmb3IgQ01EX1NZTkMNCmNvbXBsZXRpb246DQoNCiAgKFhFTikgU01NVXYzOiAvc29jL2lvbW11
QGZhMDAwMDAwOiBDTURfU1lOQyB0aW1lb3V0DQogIChYRU4pIFNNTVV2MzogL3NvYy9pb21tdUBm
YTAwMDAwMDogQ01EX1NZTkMgdGltZW91dA0KDQpUbyBwcm9wZXJseSBoYW5kbGUgc3VjaCBzY2Vu
YXJpb3MsIGFkZCB0aGUgbm9uX2NvaGVyZW50IGZsYWcgdG8gdGhlDQphcm1fc21tdV9xdWV1ZSBz
dHJ1Y3QuIEl0IGlzIGluaXRpYWxpemVkIHVzaW5nIGZlYXR1cmVzIHJlcG9ydGVkIGJ5IHRoZQ0K
U01NVSBIVyBhbmQgd2lsbCBiZSB1c2VkIGZvciB0cmlnZ2VyaW5nIGNhY2hlIGNsZWFuL2ludmFs
aWRhdGUgb3BlcmF0aW9ucy4NClRoaXMgZmxhZyBpcyBub3QgcXVldWUtc3BlY2lmaWMgKGl0IGlz
IGFwcGxpY2FibGUgdG8gdGhlIHdob2xlIFNNTVUpLCBidXQNCmFkZGluZyBpdCB0byBhcm1fc21t
dV9xdWV1ZSBhbGxvd3MgdXMgdG8gbm90IGNoYW5nZSBmdW5jdGlvbiBzaWduYXR1cmVzDQphbmQg
c2ltcGxpZnkgdGhlIHBhdGNoIChzbW11LT5mZWF0dXJlcywgd2hpY2ggY29udGFpbnMgdGhlIHJl
cXVpcmVkIGZsYWcsDQphcmUgbm90IGF2YWlsYWJsZSBpbiBjb2RlIHBhcnRzIHRoYXQgcmVxdWly
ZSBjYWNoZSBtYWludGVuYW5jZSkuDQoNCg0KVGhlcmUgYXJlIGFscmVhZHkgYSBmZXcgcGxhY2Vz
IGFkdmVydGlzaW5nIHRoZSBTTU1VIGNvaGVyZW5jeToNCjEpIHNtbXUtPmZlYXR1cmVzDQoyKSBk
LT5pb21tdS0+ZmVhdHVyZXMNCjMpIHBsYXRmb3JtX2ZlYXR1cmVzDQoNCkFsbCBvZiB0aGVtIGFy
ZSBiZXR0ZXIgcGxhY2VzIHRoYW4gcXVldWUgc3RydWN0ICh0aGF0IGFzIHlvdSBwb2ludGVkIG91
dCBpcyBub3QNCnNwZWNpZmljIHRvIGNvaGVyZW5jeSkuIEknZCBzdWdnZXN0IG1heWJlIHRvIHVz
ZSAzKSBhbmQgcmVtb3Zpbmcgcm9fYWZ0ZXJfaW5pdA0KaWYgeW91IGRvbid0IGhhdmUgYWNjZXNz
IHRvIDEpIGFuZCAyKS4gQWxsIGluIGFsbCwgcHJvdmlkaW5nIHlldCBhbm90aGVyIHBsYWNlDQpm
b3IgY29oZXJlbmN5IGZsYWcgc2VlbXMgYSBiaXQgdG9vIG11Y2guDQoNCg0KRmlyc3Qgb2YgYWxs
LCB0aGFuayB5b3UgdmVyeSBtdWNoIGZvciByZXZpZXchIEkgd2lsbCBjb25zaWRlciB1c2luZw0K
InBsYXRmb3JtX2ZlYXR1cmVzIiBpbiBuZXh0IHBhdGNoIHZlcnNpb24sIGl0IGxvb2tzIG1vcmUg
YXBwcm9wcmlhdGUgYW5kDQpzaG91bGQgYmUgYXZhaWxhYmxlIHdpdGhpbiB0aGUgd2hvbGUgZHJp
dmVyLiBBbHNvLCBJIGJlbGlldmUgInJvX2FmdGVyX2luaXQiDQppcyBhbHNvIE9LLCBzaW5jZSBJ
IGhhdmUgbm8gbmVlZCB0byBjaGFuZ2UgaXQgKG9ubHkgY2hlY2sgaWYgY2FjaGUNCm1haW50ZW5h
bmNlIHNob3VsZCBiZSBwZXJmb3JtZWQpLg0KDQoNClNpZ25lZC1vZmYtYnk6IERteXRybyBGaXJz
b3YgPGRteXRyb19maXJzb3ZAZXBhbS5jb20+PG1haWx0bzpkbXl0cm9fZmlyc292QGVwYW0uY29t
Pg0KLS0tDQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL3NtbXUtdjMuYyB8IDI3ICsrKysr
KysrKysrKysrKysrKysrKysrLS0tLQ0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS9zbW11
LXYzLmggfCAgNyArKysrKysrDQogMiBmaWxlcyBjaGFuZ2VkLCAzMCBpbnNlcnRpb25zKCspLCA0
IGRlbGV0aW9ucygtKQ0KDQpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJt
L3NtbXUtdjMuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS9zbW11LXYzLmMNCmluZGV4
IDVlOWUzZTA0OGUuLmJmMTUzMjI3ZGIgMTAwNjQ0DQotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhy
b3VnaC9hcm0vc21tdS12My5jDQorKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vc21t
dS12My5jDQpAQCAtMzQ2LDEwICszNDYsMTQgQEAgc3RhdGljIHZvaWQgcXVldWVfd3JpdGUoX19s
ZTY0ICpkc3QsIHU2NCAqc3JjLCBzaXplX3Qgbl9kd29yZHMpDQoNCiBzdGF0aWMgaW50IHF1ZXVl
X2luc2VydF9yYXcoc3RydWN0IGFybV9zbW11X3F1ZXVlICpxLCB1NjQgKmVudCkNCiB7DQorICAg
ICAgIF9fbGU2NCAqcV9hZGRyID0gUV9FTlQocSwgcS0+bGxxLnByb2QpOw0KKw0KICAgICAgICBp
ZiAocXVldWVfZnVsbCgmcS0+bGxxKSkNCiAgICAgICAgICAgICAgICByZXR1cm4gLUVOT1NQQzsN
Cg0KLSAgICAgICBxdWV1ZV93cml0ZShRX0VOVChxLCBxLT5sbHEucHJvZCksIGVudCwgcS0+ZW50
X2R3b3Jkcyk7DQorICAgICAgIHF1ZXVlX3dyaXRlKHFfYWRkciwgZW50LCBxLT5lbnRfZHdvcmRz
KTsNCisgICAgICAgaWYgKHEtPm5vbl9jb2hlcmVudCkNCisgICAgICAgICAgICAgICBjbGVhbl9k
Y2FjaGVfdmFfcmFuZ2UocV9hZGRyLCBxLT5lbnRfZHdvcmRzICogc2l6ZW9mKCpxX2FkZHIpKTsN
Cg0KDQpJIHRoaW5rIGl0IHdvdWxkIGJlIGJldHRlciB0byBtb3ZlIHRoZSBjYWNoZSBvcGVyYXRp
b24gdG8gcXVldWVfe3dyaXRlLHJlYWR9IHRvDQphdm9pZCBoYXZpbmcgdG8gcmVwZWF0IHRoZW0g
YXQgZWFjaCBvY2N1cmVuY2Ugb2YgdGhlIGhlbHBlcnMuDQoNClllcywgdXNpbmcgInBsYXRmb3Jt
X2ZlYXR1cmVzIiBmb3IgdGhlIGNvaGVyZW5jeSBjaGVjayB3aWxsDQpzaWduaWZpY2FudGx5IHJl
ZHVjZSB0aGUgcGF0Y2ggc2l6ZSwgSSB3aWxsIHJld29yayB0aGlzIGluIFYyLg0KVW5mb3J0dW5h
dGVseSwgd2UgYXJlIGN1cnJlbnRseSBleHBlcmllbmNpbmcgZGlmZmljdWx0aWVzIHdpdGggdGhl
IHRlc3QNCmJvYXJkIG9uIHdoaWNoIHdlIG9yaWdpbmFsbHkgZGV0ZWN0ZWQgdGhpcyBpc3N1ZS4g
VGh1cywgdGhlIFYyIHRlc3RpbmcNCmFuZCBwdWJsaWNhdGlvbiBtYXkgdGFrZSBzb21lIHRpbWUu
DQoNCn5NaWNoYWwNCg0KDQoNCkJlc3QgcmVnYXJkcywNCg0KRG15dHJvLg0K

--_000_5d48d9277e1e4b11b4290b94259154abepamcom_
Content-Type: text/html; charset="utf-8"
Content-ID: <65A2CF3529E21C4EA791E966DB344747@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64

PCFET0NUWVBFIGh0bWw+DQo8aHRtbD4NCjxoZWFkPg0KPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVu
dC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPg0KPC9oZWFkPg0KPGJv
ZHk+DQo8cD5IaSBNaWNoYWwsPGJyPg0KPC9wPg0KPGRpdiBjbGFzcz0ibW96LWNpdGUtcHJlZml4
Ij5PbiAyMi4wOC4yNSAxMToxMiwgT3J6ZWwsIE1pY2hhbCB3cm90ZTo8YnI+DQo8L2Rpdj4NCjxi
bG9ja3F1b3RlIHR5cGU9ImNpdGUiIGNpdGU9Im1pZDpjZmYzZTk0Yy00NDc2LTQxMDMtYWU3ZS0x
OTY1NjcwM2U3NTVAYW1kLmNvbSI+DQo8cHJlIHdyYXA9IiIgY2xhc3M9Im1vei1xdW90ZS1wcmUi
Pg0KDQpPbiAwNi8wOC8yMDI1IDE2OjU4LCBEbXl0cm8gRmlyc292IHdyb3RlOg0KPC9wcmU+DQo8
YmxvY2txdW90ZSB0eXBlPSJjaXRlIj4NCjxwcmUgd3JhcD0iIiBjbGFzcz0ibW96LXF1b3RlLXBy
ZSI+QWNjb3JkaW5nIHRvIHRoZSBBcm0gU01NVXYzIHNwZWMgKEFSTSBJSEkgMDA3MCksIGEgc3lz
dGVtIG1heSBoYXZlDQpTTU1VKHMpIHRoYXQgaXMvYXJlIG5vbi1jb2hlcmVudCB0byB0aGUgUEUg
KHByb2Nlc3NpbmcgZWxlbWVudCkuIEluIHN1Y2gNCmNhc2VzLCBtZW1vcnkgYWNjZXNzZXMgZnJv
bSB0aGUgUEUgc2hvdWxkIGJlIGVpdGhlciBub24tY2FjaGVkIG9yIGJlDQphdWdtZW50ZWQgd2l0
aCBtYW51YWwgY2FjaGUgbWFpbnRlbmFuY2UuIFNNTVUgY2FjaGUgY29oZXJlbmN5IGlzIHJlcG9y
dGVkDQpieSBiaXQgNCAoQ09IQUNDKSBvZiB0aGUgU01NVV9JRFIwIHJlZ2lzdGVyIGFuZCBpcyBh
bHJlYWR5IHByZXNlbnQgaW4gdGhlDQpYZW4gZHJpdmVyLiBIb3dldmVyLCB0aGUgY3VycmVudCBp
bXBsZW1lbnRhdGlvbiBpcyBub3QgYXdhcmUgb2YgY2FjaGUNCm1haW50ZW5hbmNlIGZvciBtZW1v
cnkgdGhhdCBpcyBzaGFyZWQgYmV0d2VlbiB0aGUgUEUgYW5kIG5vbi1jb2hlcmVudA0KU01NVXMu
IEl0IGNvbnRhaW5zIGRtYW1fYWxsb2NfY29oZXJlbnQoKSBmdW5jdGlvbiwgdGhhdCBpcyBhZGRl
ZCBkdXJpbmcNCkxpbnV4IGRyaXZlciBwb3J0aW5nLiBCdXQgaXQgaXMgYWN0dWFsbHkgYSB3cmFw
cGVyIGZvciBfeHphbGxvYygpLCB0aGF0DQpyZXR1cm5zIG5vcm1hbCB3cml0ZWJhY2sgbWVtb3J5
ICh3aGljaCBpcyBPSyBmb3IgY29oZXJlbnQgU01NVXMpLg0KDQpEdXJpbmcgWGVuIGJyaW5nLXVw
IG9uIGEgc3lzdGVtIHdpdGggbm9uLWNvaGVyZW50IFNNTVVzLCB0aGUgZHJpdmVyIGRpZA0Kbm90
IHdvcmsgcHJvcGVybHkgLSB0aGUgU01NVSB3YXMgbm90IGZ1bmN0aW9uYWwgYW5kIGhhbHRlZCBp
bml0aWFsaXphdGlvbg0KYXQgdGhlIHZlcnkgYmVnaW5uaW5nIGR1ZSB0byBhIHRpbWVvdXQgd2hp
bGUgd2FpdGluZyBmb3IgQ01EX1NZTkMNCmNvbXBsZXRpb246DQoNCiAgKFhFTikgU01NVXYzOiAv
c29jL2lvbW11QGZhMDAwMDAwOiBDTURfU1lOQyB0aW1lb3V0DQogIChYRU4pIFNNTVV2MzogL3Nv
Yy9pb21tdUBmYTAwMDAwMDogQ01EX1NZTkMgdGltZW91dA0KDQpUbyBwcm9wZXJseSBoYW5kbGUg
c3VjaCBzY2VuYXJpb3MsIGFkZCB0aGUgbm9uX2NvaGVyZW50IGZsYWcgdG8gdGhlDQphcm1fc21t
dV9xdWV1ZSBzdHJ1Y3QuIEl0IGlzIGluaXRpYWxpemVkIHVzaW5nIGZlYXR1cmVzIHJlcG9ydGVk
IGJ5IHRoZQ0KU01NVSBIVyBhbmQgd2lsbCBiZSB1c2VkIGZvciB0cmlnZ2VyaW5nIGNhY2hlIGNs
ZWFuL2ludmFsaWRhdGUgb3BlcmF0aW9ucy4NClRoaXMgZmxhZyBpcyBub3QgcXVldWUtc3BlY2lm
aWMgKGl0IGlzIGFwcGxpY2FibGUgdG8gdGhlIHdob2xlIFNNTVUpLCBidXQNCmFkZGluZyBpdCB0
byBhcm1fc21tdV9xdWV1ZSBhbGxvd3MgdXMgdG8gbm90IGNoYW5nZSBmdW5jdGlvbiBzaWduYXR1
cmVzDQphbmQgc2ltcGxpZnkgdGhlIHBhdGNoIChzbW11LSZndDtmZWF0dXJlcywgd2hpY2ggY29u
dGFpbnMgdGhlIHJlcXVpcmVkIGZsYWcsDQphcmUgbm90IGF2YWlsYWJsZSBpbiBjb2RlIHBhcnRz
IHRoYXQgcmVxdWlyZSBjYWNoZSBtYWludGVuYW5jZSkuDQo8L3ByZT4NCjwvYmxvY2txdW90ZT4N
CjxwcmUgd3JhcD0iIiBjbGFzcz0ibW96LXF1b3RlLXByZSI+VGhlcmUgYXJlIGFscmVhZHkgYSBm
ZXcgcGxhY2VzIGFkdmVydGlzaW5nIHRoZSBTTU1VIGNvaGVyZW5jeToNCjEpIHNtbXUtJmd0O2Zl
YXR1cmVzDQoyKSBkLSZndDtpb21tdS0mZ3Q7ZmVhdHVyZXMNCjMpIHBsYXRmb3JtX2ZlYXR1cmVz
DQoNCkFsbCBvZiB0aGVtIGFyZSBiZXR0ZXIgcGxhY2VzIHRoYW4gcXVldWUgc3RydWN0ICh0aGF0
IGFzIHlvdSBwb2ludGVkIG91dCBpcyBub3QNCnNwZWNpZmljIHRvIGNvaGVyZW5jeSkuIEknZCBz
dWdnZXN0IG1heWJlIHRvIHVzZSAzKSBhbmQgcmVtb3Zpbmcgcm9fYWZ0ZXJfaW5pdA0KaWYgeW91
IGRvbid0IGhhdmUgYWNjZXNzIHRvIDEpIGFuZCAyKS4gQWxsIGluIGFsbCwgcHJvdmlkaW5nIHll
dCBhbm90aGVyIHBsYWNlDQpmb3IgY29oZXJlbmN5IGZsYWcgc2VlbXMgYSBiaXQgdG9vIG11Y2gu
DQo8L3ByZT4NCjwvYmxvY2txdW90ZT4NCkZpcnN0IG9mIGFsbCwgdGhhbmsgeW91IHZlcnkgbXVj
aCBmb3IgcmV2aWV3ISBJIHdpbGwgY29uc2lkZXIgdXNpbmc8YnI+DQomcXVvdDtwbGF0Zm9ybV9m
ZWF0dXJlcyZxdW90OyBpbiBuZXh0IHBhdGNoIHZlcnNpb24sIGl0IGxvb2tzIG1vcmUgYXBwcm9w
cmlhdGUgYW5kPGJyPg0Kc2hvdWxkIGJlIGF2YWlsYWJsZSB3aXRoaW4gdGhlIHdob2xlIGRyaXZl
ci4gQWxzbywgSSBiZWxpZXZlICZxdW90O3JvX2FmdGVyX2luaXQmcXVvdDs8YnI+DQppcyBhbHNv
IE9LLCBzaW5jZSBJIGhhdmUgbm8gbmVlZCB0byBjaGFuZ2UgaXQgKG9ubHkgY2hlY2sgaWYgY2Fj
aGU8YnI+DQptYWludGVuYW5jZSBzaG91bGQgYmUgcGVyZm9ybWVkKS48c3BhbiBzdHlsZT0id2hp
dGUtc3BhY2U6IHByZS13cmFwIj4gPC9zcGFuPg0KPGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSIgY2l0
ZT0ibWlkOmNmZjNlOTRjLTQ0NzYtNDEwMy1hZTdlLTE5NjU2NzAzZTc1NUBhbWQuY29tIj4NCjxi
bG9ja3F1b3RlIHR5cGU9ImNpdGUiPg0KPHByZSB3cmFwPSIiIGNsYXNzPSJtb3otcXVvdGUtcHJl
Ij4NClNpZ25lZC1vZmYtYnk6IERteXRybyBGaXJzb3YgPGEgY2xhc3M9Im1vei10eHQtbGluay1y
ZmMyMzk2RSIgaHJlZj0ibWFpbHRvOmRteXRyb19maXJzb3ZAZXBhbS5jb20iPiZsdDtkbXl0cm9f
Zmlyc292QGVwYW0uY29tJmd0OzwvYT4NCi0tLQ0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2Fy
bS9zbW11LXYzLmMgfCAyNyArKysrKysrKysrKysrKysrKysrKysrKy0tLS0NCiB4ZW4vZHJpdmVy
cy9wYXNzdGhyb3VnaC9hcm0vc21tdS12My5oIHwgIDcgKysrKysrKw0KIDIgZmlsZXMgY2hhbmdl
ZCwgMzAgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdpdCBhL3hlbi9k
cml2ZXJzL3Bhc3N0aHJvdWdoL2FybS9zbW11LXYzLmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn
aC9hcm0vc21tdS12My5jDQppbmRleCA1ZTllM2UwNDhlLi5iZjE1MzIyN2RiIDEwMDY0NA0KLS0t
IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL3NtbXUtdjMuYw0KKysrIGIveGVuL2RyaXZl
cnMvcGFzc3Rocm91Z2gvYXJtL3NtbXUtdjMuYw0KQEAgLTM0NiwxMCArMzQ2LDE0IEBAIHN0YXRp
YyB2b2lkIHF1ZXVlX3dyaXRlKF9fbGU2NCAqZHN0LCB1NjQgKnNyYywgc2l6ZV90IG5fZHdvcmRz
KQ0KIA0KIHN0YXRpYyBpbnQgcXVldWVfaW5zZXJ0X3JhdyhzdHJ1Y3QgYXJtX3NtbXVfcXVldWUg
KnEsIHU2NCAqZW50KQ0KIHsNCisJX19sZTY0ICpxX2FkZHIgPSBRX0VOVChxLCBxLSZndDtsbHEu
cHJvZCk7DQorDQogCWlmIChxdWV1ZV9mdWxsKCZhbXA7cS0mZ3Q7bGxxKSkNCiAJCXJldHVybiAt
RU5PU1BDOw0KIA0KLQlxdWV1ZV93cml0ZShRX0VOVChxLCBxLSZndDtsbHEucHJvZCksIGVudCwg
cS0mZ3Q7ZW50X2R3b3Jkcyk7DQorCXF1ZXVlX3dyaXRlKHFfYWRkciwgZW50LCBxLSZndDtlbnRf
ZHdvcmRzKTsNCisJaWYgKHEtJmd0O25vbl9jb2hlcmVudCkNCisJCWNsZWFuX2RjYWNoZV92YV9y
YW5nZShxX2FkZHIsIHEtJmd0O2VudF9kd29yZHMgKiBzaXplb2YoKnFfYWRkcikpOw0KPC9wcmU+
DQo8L2Jsb2NrcXVvdGU+DQo8cHJlIHdyYXA9IiIgY2xhc3M9Im1vei1xdW90ZS1wcmUiPkkgdGhp
bmsgaXQgd291bGQgYmUgYmV0dGVyIHRvIG1vdmUgdGhlIGNhY2hlIG9wZXJhdGlvbiB0byBxdWV1
ZV97d3JpdGUscmVhZH0gdG8NCmF2b2lkIGhhdmluZyB0byByZXBlYXQgdGhlbSBhdCBlYWNoIG9j
Y3VyZW5jZSBvZiB0aGUgaGVscGVycy48L3ByZT4NCjwvYmxvY2txdW90ZT4NClllcywgdXNpbmcg
JnF1b3Q7cGxhdGZvcm1fZmVhdHVyZXMmcXVvdDsgZm9yIHRoZSBjb2hlcmVuY3kgY2hlY2sgd2ls
bDxicj4NCnNpZ25pZmljYW50bHkgcmVkdWNlIHRoZSBwYXRjaCBzaXplLCBJIHdpbGwgcmV3b3Jr
IHRoaXMgaW4gVjIuPGJyPg0KVW5mb3J0dW5hdGVseSwgd2UgYXJlIGN1cnJlbnRseSBleHBlcmll
bmNpbmcgZGlmZmljdWx0aWVzIHdpdGggdGhlIHRlc3Q8YnI+DQpib2FyZCBvbiB3aGljaCB3ZSBv
cmlnaW5hbGx5IGRldGVjdGVkIHRoaXMgaXNzdWUuIFRodXMsIHRoZSBWMiB0ZXN0aW5nPGJyPg0K
YW5kIHB1YmxpY2F0aW9uIG1heSB0YWtlIHNvbWUgdGltZS48c3BhbiBzdHlsZT0id2hpdGUtc3Bh
Y2U6IHByZS13cmFwIj4gPC9zcGFuPjxzcGFuIHN0eWxlPSJ3aGl0ZS1zcGFjZTogcHJlLXdyYXAi
Pjwvc3Bhbj4NCjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiIGNpdGU9Im1pZDpjZmYzZTk0Yy00NDc2
LTQxMDMtYWU3ZS0xOTY1NjcwM2U3NTVAYW1kLmNvbSI+DQo8cHJlIHdyYXA9IiIgY2xhc3M9Im1v
ei1xdW90ZS1wcmUiPn5NaWNoYWwNCjwvcHJlPg0KPC9ibG9ja3F1b3RlPg0KPHA+PGJyPg0KPC9w
Pg0KPHA+QmVzdCByZWdhcmRzLDwvcD4NCjxwPkRteXRyby48YnI+DQo8L3A+DQo8L2JvZHk+DQo8
L2h0bWw+DQo=

--_000_5d48d9277e1e4b11b4290b94259154abepamcom_--


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 09:48:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 09:48:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094216.1449557 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqqI5-0003hs-Re; Tue, 26 Aug 2025 09:48:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094216.1449557; Tue, 26 Aug 2025 09:48:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqqI5-0003hl-NX; Tue, 26 Aug 2025 09:48:33 +0000
Received: by outflank-mailman (input) for mailman id 1094216;
 Tue, 26 Aug 2025 09:48:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+/mc=3G=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1uqqI4-0003YB-9n
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 09:48:32 +0000
Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com
 [2a00:1450:4864:20::12b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d2ac19bb-8261-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 11:48:30 +0200 (CEST)
Received: by mail-lf1-x12b.google.com with SMTP id
 2adb3069b0e04-55f499c7f0cso1476886e87.0
 for <xen-devel@lists.xenproject.org>; Tue, 26 Aug 2025 02:48: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>
X-Inumbo-ID: d2ac19bb-8261-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756201710; x=1756806510; 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=scb/IjM2shtIHt9HmdY5L/jlVhJX/pdj0Owy7R6WES0=;
        b=BY2JbMNwcECHn9wGyJ14+Z2j3w4d0+M5zXoofQCr3qcsDf0uDbyn8opkZQ42q7Vn9M
         ai7seSoZ0jG+BIAaf9SfsPvsa4YFYEq3lCLJNCrTvrsKpnRFE1je7hURvOKzcH/0yebh
         DoYUx0G/8rUcJy/ija0Cwd8L1czzyoFOxETvjBbvTjIR7tLVFfdAF7dgtF5YxmUbK5G8
         QoKgjjRRq7e6qdhYcNfyVqyJN7A6aG0PRBcSMhvRf21nBLjy62d1Yl5DQG5dThh5EbG/
         TBtsqsoy4RZo9xAiWB2a2ndD9nJmIsgV+0L3/cTGn6TX3VVJ9RhS5F5HI4oAh+q+LxJd
         Y38w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756201710; x=1756806510;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=scb/IjM2shtIHt9HmdY5L/jlVhJX/pdj0Owy7R6WES0=;
        b=UByJCXV4645x/4Bkp9U6V8us3X5VQvOej+oEI7uyItTYBiLfx3fLp2v9F86DnFKYMT
         ytUe8hUuleG9qq7D1LELRqts4MzaBCyincydacA+2iJVkVHKZ3uzRLqhqCYYx8uYiYNx
         h/XQIYlfR6Tj7IkMkdXXVtA6HHxpvMjJ1yjs3tY+8bOj1GZByQrTWWA0aEqeFF4VqMeR
         nWFGfeuUNJGBZJR7HU1SsyMgd/NldPKpRK5DnuK/bDRLaKdayN7vefaYSx9xVC0lZQcr
         VJz/pJFX5w3SV7PAXwn+XS9AhwtV+nW3QinvQNzYfsOhYQMHYZj79YSQdlI+946E1Aa9
         DuPw==
X-Gm-Message-State: AOJu0Ywa00jaW4eXBjsyTsPoLAShlA/nMc9riUitkJ6tN7NfmPdDWJP3
	ONW+cs3CzcSsCudpB/AaBsLnLNTK1ZNgwcEmOrPBkGi11SXjMxriPe4ITBk2XMEd9bnHEqluhlh
	L8GN+mIAVmT1ZzgAy0Fm7bSlfHHN3aIE=
X-Gm-Gg: ASbGncvFmbz3TvoFsXIuZqknR2TO1VozUmS9WWGG8KjJ4Wt6XwoyVqP/uCQtCJQyjxX
	7npDnCXfWVUj99ykCMEQhJRATbhAYEdU7HsFlDxZRMjNRlvraVHhMMfC6sJcPQ60O21/iMhinXu
	Hz8SIGcASPb0zgsZcaFF3K+srUi35Sx8TANbKNhrXYl23T/Z6D7a4VjVwU3xsNQos7oO6Nhg9+X
	3heEnwI23QAfrVE
X-Google-Smtp-Source: AGHT+IEMbRSrnIFAqkIo5nmEnNcWSt0fGlP9LQYomMl5YVMvYp8B+ybwmpi4eUY71zTjJJU8Bk9gjqRwDEbyXSGjEV0=
X-Received: by 2002:a05:6512:318e:b0:55f:4ac2:a583 with SMTP id
 2adb3069b0e04-55f4ac2bbc8mr1140778e87.15.1756201709820; Tue, 26 Aug 2025
 02:48:29 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1755506449.git.mykola_kvach@epam.com> <205b2b354ff1d34d0e9ec4777ca3c94492f6d9d1.1755506449.git.mykola_kvach@epam.com>
 <9ab99307-9594-4cbc-9c7a-b1221575d41c@xen.org> <CAGeoDV-MC65TZ74BLVDzfggQoeKXTKB-eVaadUoDB9iuP7TW3Q@mail.gmail.com>
 <67d58304-146e-480e-a689-440afe7828aa@xen.org>
In-Reply-To: <67d58304-146e-480e-a689-440afe7828aa@xen.org>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 26 Aug 2025 12:48:17 +0300
X-Gm-Features: Ac12FXzNZuyVmFBkbumG53KdnohdMoKCOm6PARfzayij070L9GjEI_WMTANPAfU
Message-ID: <CAGeoDV9GQ6v8T3dqit_Xhpud1g=q8M35nJ7q1QQSN4fjgyiyEg@mail.gmail.com>
Subject: Re: [PATCH v9 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for guests
To: Julien Grall <julien@xen.org>
Cc: xen-devel@lists.xenproject.org, Mykola Kvach <mykola_kvach@epam.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>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Tue, Aug 26, 2025 at 12:26=E2=80=AFPM Julien Grall <julien@xen.org> wrot=
e:
>
> Hi Mykola,
>
> On 26/08/2025 10:09, Mykola Kvach wrote:
> >> Shouldn't this be removed so the check also apply for 32-bit domain on
> >> 64-bit system?
> >
> > AFAIK, this question was already addressed in a previous version of
> > this patch series:
> > https://patchew.org/Xen/cover.1751020456.git.mykola._5Fkvach@epam.com/0=
72270e0940b6bcc2743d56a336363f4719ba60a.1751020456.git.mykola._5Fkvach@epam=
.com/#7070f416-119c-49f8-acd0-82c6e31f0fc6@xen.org
>
> Sure. For 32-bit domain, in theory the top bits should be zeroed. But
> AFAIK, there is no harm to zero them again and it would avoid someone to
> wonder why this is protected by is_64bit_domain().
>
> So unless there is a strong reason to keep, I would rather prefer if we
> remove the 64-bit.

Understood, I=E2=80=99ll remove the 64-bit domain check as suggested.

>
> Cheers,
>
> --
> Julien Grall
>

Best Regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 09:48:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 09:48:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094225.1449567 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqqIL-0004A6-2N; Tue, 26 Aug 2025 09:48:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094225.1449567; Tue, 26 Aug 2025 09:48: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 1uqqIK-00049v-VD; Tue, 26 Aug 2025 09:48:48 +0000
Received: by outflank-mailman (input) for mailman id 1094225;
 Tue, 26 Aug 2025 09:48:47 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=vqZn=3G=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1uqqII-0003Hk-FV
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 09:48:47 +0000
Received: from mail-24418.protonmail.ch (mail-24418.protonmail.ch
 [109.224.244.18]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id db0f3ea6-8261-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 11:48:45 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: db0f3ea6-8261-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1756201723; x=1756460923;
	bh=/WGfGDYzqJ/CZ4oEjMib200hZkVteXFK5ypqJ+mebiQ=;
	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=jK4p1INCnzZOgLQpy4gBy8ngWs/nU1zk7bwqf11HIEIOz7bajLPJ0jWDpa2mfibEO
	 36kkdsU3Fw0NVvLu1u5PGOXyD6/nZqw6xA/SNFgtHIt6lnUDHdLdt0bdxxNaCg/gIL
	 S5XNom5vG5uM1zp/HjqwJcE8X8KP1PxQqKF5OubzrLaH83qCrdcKc3c/6DPSNokVMM
	 OjOhnbbQus3IMeIanX22aTmK8Y7PPDlBKhj2mWuL/k7i0uLoMcAk+HBeiLaFFYRC1N
	 W3oH5Yf7nsIvML3Wp7Sd7qUad/20CrPFfbJk7JtuCOLPriI3th8IrQCDfMXmaKa57f
	 /pyIUCg1vKtTA==
Date: Tue, 26 Aug 2025 09:48:38 +0000
To: Anthony PERARD <anthony@xenproject.org>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com, Julien Grall <jgrall@amazon.com>
Subject: Re: [PATCH v16 3/4] tools/tests: introduce unit tests for domain ID allocator
Message-ID: <aK2C8iPRJAns2VLu@kraken>
In-Reply-To: <aKxpe7OJ8B7Qif5c@l14>
References: <20250812223024.2364749-1-dmukhin@ford.com> <20250812223024.2364749-4-dmukhin@ford.com> <aKxpe7OJ8B7Qif5c@l14>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 62e6d3400ba2ebac7b730de1bdfcb57985856d55
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Mon, Aug 25, 2025 at 03:47:39PM +0200, Anthony PERARD wrote:

Thanks for review!

Will address in the next revision.
Please see some responses below.

> On Tue, Aug 12, 2025 at 10:30:50PM +0000, dmkhn@proton.me wrote:
> > diff --git a/tools/tests/domid/.gitignore b/tools/tests/domid/.gitignor=
e
> > new file mode 100644
> > index 000000000000..0e02715159c2
> > --- /dev/null
> > +++ b/tools/tests/domid/.gitignore
> > @@ -0,0 +1,3 @@
> > +*.o
>=20
> "*.o" is already in the .gitignore at the root of the project. I don't
> think it's useful here.

Ack.

>=20
> > +generated
> > +test-domid
> > diff --git a/tools/tests/domid/Makefile b/tools/tests/domid/Makefile
> > new file mode 100644
> > index 000000000000..0a124a8bfc76
> > --- /dev/null
> > +++ b/tools/tests/domid/Makefile
> > @@ -0,0 +1,84 @@
> > +# SPDX-License-Identifier: GPL-2.0-only
> > +#
> > +# Unit tests for domain ID allocator.
> > +#
> > +# Copyright 2025 Ford Motor Company
> > +
> > +XEN_ROOT=3D$(CURDIR)/../../..
> > +include $(XEN_ROOT)/tools/Rules.mk
> > +
> > +TESTS :=3D test-domid
> > +
> > +strip-list =3D $(sort $(strip $(foreach x,$(1),$(strip $(x)))))
>=20
> What's that macro for? Also, what's a "list"?
>=20
> > +define list-c-headers
> > +$(shell sed -n -r \
>=20
> Could you use "-E" instead of "-r"? (-r might not work on FreeBSD)

re: FreeBSD: I've found there's a dedicated pipeline for Xen on FreeBSD
(cirrus CI), but I did not figure how to trigger it, will appreciate help
with that.

>=20
> > +    's/^[ \t]*# *include[ \t]*[<"]([^">]+)[">].*/\1/p' $(1) 2>/dev/nul=
l)
> > +endef
> > +
> > +define emit-harness-nested-rule
> > +$(1): $(CURDIR)/harness.h
> > +=09mkdir -p $$(dir $$@)
>=20
> You can use $(@D) instead of $(dir $@). The only difference is a /
> not present at the end.
>=20
> > +=09ln -sf $$^ $$@
>=20
> This should use $<, I don't think the command is going to work if
> there's multiple prerequisite.
>=20
> > +endef
> > +
> > +define emit-harness-rules
> > +ifneq ($(strip $(3)),)
>=20
> How many time do you need to call $(strip) ?
> Also, I think I would prefer to have $(if $(strip $(3)), [the rest])
> rather than actually evaluating code and generating code that we already
> know is isn't going to be executed.
>=20
> > +$(foreach h,$(3),$(call emit-harness-nested-rule,$(CURDIR)/generated/$=
(h)))
> > +vpath $(1) $(2)
> > +$(1:.c=3D.o): $(addprefix $(CURDIR)/generated/,$(3))
> > +endif
> > +endef
>=20
> This macro fails if there's more than one "#include" in "domid.c".
>=20
> And if there's no "#include" in "domid.c", then Make doesn't know how to
> make "domid.o" for "test-domid".
>=20
> > +
> > +define vpath-with-harness-deps
> > +$(call emit-harness-rules,$(1),$(2),\
> > +    $(call strip-list,$(call list-c-headers,$(2)$(1))))
> > +endef
> > +
> > +.PHONY: all
> > +all: $(TESTS)
> > +
> > +.PHONY: run
> > +run: $(TESTS)
> > +=09$(foreach t,$(TESTS),./$(t);)
>=20
> This recipe doesn't work as expected. You need `set -e` or only the last
> tests count.
>=20
> > +
> > +.PHONY: clean
> > +clean:
> > +=09$(RM) -rf $(CURDIR)/generated
>=20
> $(RM) already contain the '-f' option, no need to add it a second time.
>=20
> Also, we expected Make to run all commands in recipe from $(CURDIR), so
> adding $(CURDIR) is unnecessary, could potentially be an issue.
>=20
> > +=09$(RM) -- *.o $(TESTS) $(DEPS_RM)
> > +
> > +.PHONY: distclean
> > +distclean: clean
> > +=09$(RM) -- *~
> > +
> > +.PHONY: install
> > +install: all
> > +=09$(INSTALL_DIR) $(DESTDIR)$(LIBEXEC)/tests
> > +=09$(INSTALL_PROG) test-domid $(DESTDIR)$(LIBEXEC)/tests
> > +
> > +.PHONY: uninstall
> > +uninstall:
> > +=09$(RM) -- $(DESTDIR)$(LIBEXEC)/tests/test-domid
> > +
> > +CFLAGS +=3D -D__XEN_TOOLS__
> > +# find-next-bit.c
> > +CFLAGS +=3D '-DEXPORT_SYMBOL(x)=3D' \
> > +          -Dfind_first_bit \
> > +          -Dfind_first_zero_bit \
> > +          -Dfind_next_bit \
> > +          -Dfind_next_bit_le \
> > +          -Dfind_next_zero_bit_le
> > +CFLAGS +=3D $(APPEND_CFLAGS)
> > +CFLAGS +=3D $(CFLAGS_xeninclude)
> > +CFLAGS +=3D -I./generated/
> > +
> > +LDFLAGS +=3D $(APPEND_LDFLAGS)
> > +
> > +vpath find-next-bit.c $(XEN_ROOT)/xen/lib/
> > +# Ubuntu {16,18}.04 need single eval at the call site.
>=20
> I'd rather see a comment about what's the macro is about rather that a
> comment some Linux distribution. Our target is GNU Make 3.80, without
> regards to a particular distribution. (Also I don't think it's useful to
> point out that `eval` is needed for older version of Make, at least in
> our project.)

Ack.

>=20
> > +$(eval $(call vpath-with-harness-deps,domid.c,$(XEN_ROOT)/xen/common/)=
)
> > +
> > +test-domid: domid.o find-next-bit.o test-domid.o
> > +=09$(CC) $^ -o $@ $(LDFLAGS)
> > +
> > +-include $(DEPS_INCLUDE)
> > diff --git a/tools/tests/domid/test-domid.c b/tools/tests/domid/test-do=
mid.c
> > new file mode 100644
> > index 000000000000..51a88a6a9550
> > --- /dev/null
> > +++ b/tools/tests/domid/test-domid.c
> > @@ -0,0 +1,93 @@
> > +/* SPDX-License-Identifier: GPL-2.0-only */
> > +/*
> > + * Unit tests for domain ID allocator.
> > + *
> > + * Copyright 2025 Ford Motor Company
> > + */
> > +
> > +#include "harness.h"
> > +
> > +#define verify(exp, fmt, args...) do { \
> > +    if ( !(exp) ) \
> > +        printf(fmt, ## args); \
> > +    assert(exp); \
>=20
> Relying on assert() for the test isn't wise. It's useful for developing
> and debugging because it calls abort(), but they can easily be get rid of=
,
> by simply building with -DNDEBUG. Could you maybe replace it with exit()
> since you already check the condition?

Yep, will do.

>=20
>=20
> Thanks,
>=20
> --
> Anthony PERARD
>=20



From xen-devel-bounces@lists.xenproject.org Tue Aug 26 09:51:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 09:51:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094241.1449576 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqqKq-0005sL-Eo; Tue, 26 Aug 2025 09:51:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094241.1449576; Tue, 26 Aug 2025 09:51: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 1uqqKq-0005sE-Bo; Tue, 26 Aug 2025 09:51:24 +0000
Received: by outflank-mailman (input) for mailman id 1094241;
 Tue, 26 Aug 2025 09:51:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=vqZn=3G=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1uqqKp-0005s8-Rf
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 09:51:23 +0000
Received: from mail-24417.protonmail.ch (mail-24417.protonmail.ch
 [109.224.244.17]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 393df5bc-8262-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 11:51:23 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 393df5bc-8262-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1756201881; x=1756461081;
	bh=kJEcQS6+eU3bNX4bPJig/hf6cxnvjY9POdPDmJHOvUc=;
	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=neBCetmMGgutRhPLgD0zHt3QZOW07KNYPMArdjLxnJ+JLCuvJcMytTOyf3F6Z4Yz3
	 6blmXfxWOss4AKA72UbUtGF3yny3PMrld3veycHyxa3AzVe6TGyBryyMNAlw2mSxXJ
	 pcH1E6m6TmF74DcwD29ge9qVCFl/pS1xPej3+DIvz7ox/oYU8DG0JazBenEJ2uvv9i
	 WSDCmAHjEDpBaDyjHnaTx/dQgvc3zZI3aLiRwLBB2uiYpHB4C//JpMfSsr5jvNtB99
	 VhT+fDaKXQRau97QjOn2zRf7lbrQCM2URJTCMVTDihmJozxxjsrx10MSeQrqSwJnrC
	 b4k6GvPzXNgfA==
Date: Tue, 26 Aug 2025 09:51:17 +0000
To: Julien Grall <julien@xen.org>
From: dmkhn@proton.me
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com, michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com, Julien Grall <jgrall@amazon.com>, Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Subject: Re: [PATCH v16 1/4] xen/domain: unify domain ID allocation
Message-ID: <aK2DT1tExIl5Ua7r@kraken>
In-Reply-To: <304cffd8-498d-447f-a8b0-cda694393ec8@xen.org>
References: <20250812223024.2364749-1-dmukhin@ford.com> <20250812223024.2364749-2-dmukhin@ford.com> <304cffd8-498d-447f-a8b0-cda694393ec8@xen.org>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 9c2045f5c48d4270e2a5dc7d0817f8faa1b6c2f7
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Wed, Aug 20, 2025 at 10:33:16PM +0100, Julien Grall wrote:
> Hi Denis,
>=20
> On 12/08/2025 23:30, dmkhn@proton.me wrote:
> > From: Denis Mukhin <dmukhin@ford.com>
> >
> > Currently, there are two different domain ID allocation implementations=
:
> >
> >    1) Sequential IDs allocation in dom0less Arm code based on max_init_=
domid;
> >
> >    2) Sequential IDs allocation in XEN_DOMCTL_createdomain; does not us=
e
> >       max_init_domid (both Arm and x86).
> >
> > The domain ID allocation covers dom0 or late hwdom, predefined domains,
> > post-boot domains, excluding Xen system domains (domid >=3D
> > DOMID_FIRST_RESERVED).
> >
> > It makes sense to have a common helper code for such task across archit=
ectures
> > (Arm and x86) and between dom0less / toolstack domU allocation.
> >
> > Note, fixing dependency on max_init_domid is out of scope of this patch=
.
> >
> > Wrap the domain ID allocation as an arch-independent function domid_all=
oc() in
> > new common/domid.c based on the bitmap.
> >
> > Allocation algorithm:
> > - If an explicit domain ID is provided, verify its availability and use=
 it if
> >    ID is not used;
> > - If DOMID_INVALID is provided, search the range [1..DOMID_FIRST_RESERV=
ED-1],
> >    starting from the last used ID.
> >    Implementation guarantees that two consecutive calls will never retu=
rn the
> >    same ID. ID#0 is reserved for the first boot domain (currently, dom0=
) and
> >    excluded from the allocation range.
> >
> > Remove is_free_domid() helper as it is not needed now.
> >
> > No functional change intended.
> >
> > Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> > Reviewed-by: Julien Grall <jgrall@amazon.com>
>  > Reviewed-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
>  > ---> Changes since v15:
> > - fixup for check after the first pass in the bitarray in domid_alloc()
>=20
> This was a good catch from Jan. Has a unit-test been added for this issue=
?

No, I did not update the test suite, will do.

>=20
> Anyway, my reviewed-by holds.

Thanks.

>=20
> Cheers,
>=20
> --
> Julien Grall
>=20



From xen-devel-bounces@lists.xenproject.org Tue Aug 26 09:52:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 09:52:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094248.1449587 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqqLX-0006Nq-NQ; Tue, 26 Aug 2025 09:52:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094248.1449587; Tue, 26 Aug 2025 09:52:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqqLX-0006Nj-KY; Tue, 26 Aug 2025 09:52:07 +0000
Received: by outflank-mailman (input) for mailman id 1094248;
 Tue, 26 Aug 2025 09:52:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=vqZn=3G=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1uqqLX-0006MN-36
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 09:52:07 +0000
Received: from mail-10630.protonmail.ch (mail-10630.protonmail.ch
 [79.135.106.30]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5263d15d-8262-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 11:52:05 +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>
X-Inumbo-ID: 5263d15d-8262-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1756201923; x=1756461123;
	bh=qlrjY5GnMadOaXSYmCF0DmY3GZ2EUT72mGX4VGyZIcA=;
	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=dYcqGRO3oess9JVAx5Gpxl/EKh16q092+C1pAxPjHgGWzuyay6xcON7qpSkfEnd5w
	 lRoTVSx3r0DPOnv0fu7NxvLNd9q67kQCpgYIowsp4eo4ssjtb5Vz6806unNoQX1sr5
	 YScoVh/1i/8yGNDzRoxQqzwnkttgaDUR8yl97OEhFcxRnvMuzOjmDggdPl62ZlxIuT
	 3UDCGsY7wD+1CVh3PwfWrOUYmTwFmJDnux0gc8TrAWer4fVjS9gPh1rMOvhikAyXji
	 ltvfy8lK6DPcVH6JDQkyLm4NWnkFOym5QslVRgFBxL918Rd9mPoMeN+fyfnnmRttWD
	 v+AQHzRYcfj7g==
Date: Tue, 26 Aug 2025 09:52:00 +0000
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
From: dmkhn@proton.me
Cc: Jan Beulich <jbeulich@suse.com>, 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, Julien Grall <jgrall@amazon.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v16 1/4] xen/domain: unify domain ID allocation
Message-ID: <aK2Du/ANa1QnlY3g@kraken>
In-Reply-To: <DC81ACV8TXQ1.17YID3PYUCKA5@amd.com>
References: <20250812223024.2364749-1-dmukhin@ford.com> <20250812223024.2364749-2-dmukhin@ford.com> <f85ae718-0243-4426-a555-327afffe7148@suse.com> <aKUPo+hRdfGlg+S8@kraken> <a5d91a6d-cde6-42fc-8497-f2c822e98174@suse.com> <DC81ACV8TXQ1.17YID3PYUCKA5@amd.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: a4b37eb2f29a6726f2391d5ec2e65029c0a643d0
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Thu, Aug 21, 2025 at 12:29:23PM +0200, Alejandro Vallejo wrote:
> On Thu Aug 21, 2025 at 9:16 AM CEST, Jan Beulich wrote:
> > On 20.08.2025 01:58, dmkhn@proton.me wrote:
> >> On Thu, Aug 14, 2025 at 09:11:11AM +0200, Jan Beulich wrote:
> >>> On 13.08.2025 00:30, dmkhn@proton.me wrote:
> >>>> From: Denis Mukhin <dmukhin@ford.com>
> >>>>
> >>>> Currently, there are two different domain ID allocation implementati=
ons:
> >>>>
> >>>>   1) Sequential IDs allocation in dom0less Arm code based on max_ini=
t_domid;
> >>>>
> >>>>   2) Sequential IDs allocation in XEN_DOMCTL_createdomain; does not =
use
> >>>>      max_init_domid (both Arm and x86).
> >>>>
> >>>> The domain ID allocation covers dom0 or late hwdom, predefined domai=
ns,
> >>>> post-boot domains, excluding Xen system domains (domid >=3D
> >>>> DOMID_FIRST_RESERVED).
> >>>>
> >>>> It makes sense to have a common helper code for such task across arc=
hitectures
> >>>> (Arm and x86) and between dom0less / toolstack domU allocation.
> >>>>
> >>>> Note, fixing dependency on max_init_domid is out of scope of this pa=
tch.
> >>>>
> >>>> Wrap the domain ID allocation as an arch-independent function domid_=
alloc() in
> >>>> new common/domid.c based on the bitmap.
> >>>>
> >>>> Allocation algorithm:
> >>>> - If an explicit domain ID is provided, verify its availability and =
use it if
> >>>>   ID is not used;
> >>>> - If DOMID_INVALID is provided, search the range [1..DOMID_FIRST_RES=
ERVED-1],
> >>>>   starting from the last used ID.
> >>>>   Implementation guarantees that two consecutive calls will never re=
turn the
> >>>>   same ID. ID#0 is reserved for the first boot domain (currently, do=
m0) and
> >>>>   excluded from the allocation range.
> >>>>
> >>>> Remove is_free_domid() helper as it is not needed now.
> >>>>
> >>>> No functional change intended.
> >>>>
> >>>> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> >>>> Reviewed-by: Julien Grall <jgrall@amazon.com>
> >>>> Reviewed-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
> >>>> ---
> >>>> Changes since v15:
> >>>> - fixup for check after the first pass in the bitarray in domid_allo=
c()
> >>>> - trivial renaming for the local variable in domid_alloc()
> >>>> - kept Julien's R-b, added Alejandro's R-b
> >>>
> >>> Just to mention: My take is that this kind of a fix ought to invalida=
te all
> >>> earlier R-b. It's not just a cosmetic change, after all.
> >>
> >> Sorry for the hiccup here, did not mean to overrule the review process=
.
> >>
> >> My bold assumption was that in case of small fixups like this it is
> >> satisfactory to carry over previous acks.
> >
> > Acks may be okay to keep, but imo R-b need dropping when an actual bug =
was
> > fixed.
>=20
> I don't know. Unless the bugfix involves a change in the code with wide r=
eaching
> consequences I'd say it's reasonable to keep them. But that's something f=
or you
> (the committers) to decide, and this just my .02 cents.
>=20
> > Irrespective of how severe the bug was.
>=20
> It's not so much about the severity (imo), as the behavioural differences
> involved in the fixup. In this case (afaics?) it's a straight s/=3D=3D/>=
=3D/, which is
> self-contained and has no wide-reaching side effects at all.
>=20
> >
> >> I asked (matrix) both Julien and Alejandro to re-review and confirm.
> >
> > While good to ask, that's of limited use. It'll be impossible later on =
to
> > figure whether such a confirmation was given. Decisions (and acks and a=
like
> > effectively fall into that category) need to be on the list, to be able=
 to
> > locate them later on.
> >
> > Jan
>=20
> He meant he reached out to ask for an in-list confirmation. As far as I'm
> concerned, my R-by still holds.

Thanks

>=20
> Cheers,
> Alejandro



From xen-devel-bounces@lists.xenproject.org Tue Aug 26 09:53:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 09:53:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094263.1449596 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqqMe-000716-0W; Tue, 26 Aug 2025 09:53:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094263.1449596; Tue, 26 Aug 2025 09:53:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqqMd-00070z-U7; Tue, 26 Aug 2025 09:53:15 +0000
Received: by outflank-mailman (input) for mailman id 1094263;
 Tue, 26 Aug 2025 09:53:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=vqZn=3G=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1uqqMc-00070t-Vb
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 09:53:14 +0000
Received: from mail-10629.protonmail.ch (mail-10629.protonmail.ch
 [79.135.106.29]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7acb4d31-8262-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 11:53:12 +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>
X-Inumbo-ID: 7acb4d31-8262-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1756201991; x=1756461191;
	bh=qlrjY5GnMadOaXSYmCF0DmY3GZ2EUT72mGX4VGyZIcA=;
	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=NzVCnhQX2RAPPX22tRGXcvGqNrnEB+Sf0r5z9eGQztwsASTDtZj/M4r+94TgLbbeE
	 9ITNdp1/KP61Dh+S+1nhczwnqV5f5Lu3mBPVKxwR2muwDoYDt6i6zhKRgUb6gRysmY
	 t7LvluJxNJdpOVI98SnD92lE3PK6fFPoC88jQNyhQ3GF1YPcoHxq4OyPDy+9SAbAhs
	 K5VVHfSBauPTP7N1arbIXK3Pgxd3iaT1TuaTgJHyWOE19YyStzbTcShefCamvOkrxQ
	 2wwwesX49MTiNQfzCNuaCjIFY4qjkdkLU3oyiWPhKentLBY1wFXeD4muC2Ell/rn1I
	 80RSgVvWMYXDA==
Date: Tue, 26 Aug 2025 09:53:07 +0000
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
From: dmkhn@proton.me
Cc: Jan Beulich <jbeulich@suse.com>, 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, Julien Grall <jgrall@amazon.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v16 1/4] xen/domain: unify domain ID allocation
Message-ID: <aK2Du/ANa1QnlY3g@kraken>
In-Reply-To: <DC81ACV8TXQ1.17YID3PYUCKA5@amd.com>
References: <20250812223024.2364749-1-dmukhin@ford.com> <20250812223024.2364749-2-dmukhin@ford.com> <f85ae718-0243-4426-a555-327afffe7148@suse.com> <aKUPo+hRdfGlg+S8@kraken> <a5d91a6d-cde6-42fc-8497-f2c822e98174@suse.com> <DC81ACV8TXQ1.17YID3PYUCKA5@amd.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: eec7326ff2581e7e3c7c739584719eb6513f8b2d
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Thu, Aug 21, 2025 at 12:29:23PM +0200, Alejandro Vallejo wrote:
> On Thu Aug 21, 2025 at 9:16 AM CEST, Jan Beulich wrote:
> > On 20.08.2025 01:58, dmkhn@proton.me wrote:
> >> On Thu, Aug 14, 2025 at 09:11:11AM +0200, Jan Beulich wrote:
> >>> On 13.08.2025 00:30, dmkhn@proton.me wrote:
> >>>> From: Denis Mukhin <dmukhin@ford.com>
> >>>>
> >>>> Currently, there are two different domain ID allocation implementati=
ons:
> >>>>
> >>>>   1) Sequential IDs allocation in dom0less Arm code based on max_ini=
t_domid;
> >>>>
> >>>>   2) Sequential IDs allocation in XEN_DOMCTL_createdomain; does not =
use
> >>>>      max_init_domid (both Arm and x86).
> >>>>
> >>>> The domain ID allocation covers dom0 or late hwdom, predefined domai=
ns,
> >>>> post-boot domains, excluding Xen system domains (domid >=3D
> >>>> DOMID_FIRST_RESERVED).
> >>>>
> >>>> It makes sense to have a common helper code for such task across arc=
hitectures
> >>>> (Arm and x86) and between dom0less / toolstack domU allocation.
> >>>>
> >>>> Note, fixing dependency on max_init_domid is out of scope of this pa=
tch.
> >>>>
> >>>> Wrap the domain ID allocation as an arch-independent function domid_=
alloc() in
> >>>> new common/domid.c based on the bitmap.
> >>>>
> >>>> Allocation algorithm:
> >>>> - If an explicit domain ID is provided, verify its availability and =
use it if
> >>>>   ID is not used;
> >>>> - If DOMID_INVALID is provided, search the range [1..DOMID_FIRST_RES=
ERVED-1],
> >>>>   starting from the last used ID.
> >>>>   Implementation guarantees that two consecutive calls will never re=
turn the
> >>>>   same ID. ID#0 is reserved for the first boot domain (currently, do=
m0) and
> >>>>   excluded from the allocation range.
> >>>>
> >>>> Remove is_free_domid() helper as it is not needed now.
> >>>>
> >>>> No functional change intended.
> >>>>
> >>>> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> >>>> Reviewed-by: Julien Grall <jgrall@amazon.com>
> >>>> Reviewed-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
> >>>> ---
> >>>> Changes since v15:
> >>>> - fixup for check after the first pass in the bitarray in domid_allo=
c()
> >>>> - trivial renaming for the local variable in domid_alloc()
> >>>> - kept Julien's R-b, added Alejandro's R-b
> >>>
> >>> Just to mention: My take is that this kind of a fix ought to invalida=
te all
> >>> earlier R-b. It's not just a cosmetic change, after all.
> >>
> >> Sorry for the hiccup here, did not mean to overrule the review process=
.
> >>
> >> My bold assumption was that in case of small fixups like this it is
> >> satisfactory to carry over previous acks.
> >
> > Acks may be okay to keep, but imo R-b need dropping when an actual bug =
was
> > fixed.
>=20
> I don't know. Unless the bugfix involves a change in the code with wide r=
eaching
> consequences I'd say it's reasonable to keep them. But that's something f=
or you
> (the committers) to decide, and this just my .02 cents.
>=20
> > Irrespective of how severe the bug was.
>=20
> It's not so much about the severity (imo), as the behavioural differences
> involved in the fixup. In this case (afaics?) it's a straight s/=3D=3D/>=
=3D/, which is
> self-contained and has no wide-reaching side effects at all.
>=20
> >
> >> I asked (matrix) both Julien and Alejandro to re-review and confirm.
> >
> > While good to ask, that's of limited use. It'll be impossible later on =
to
> > figure whether such a confirmation was given. Decisions (and acks and a=
like
> > effectively fall into that category) need to be on the list, to be able=
 to
> > locate them later on.
> >
> > Jan
>=20
> He meant he reached out to ask for an in-list confirmation. As far as I'm
> concerned, my R-by still holds.

Thanks

>=20
> Cheers,
> Alejandro



From xen-devel-bounces@lists.xenproject.org Tue Aug 26 09:53:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 09:53:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094277.1449606 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqqNI-0007iT-CJ; Tue, 26 Aug 2025 09:53:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094277.1449606; Tue, 26 Aug 2025 09:53: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 1uqqNI-0007iM-9o; Tue, 26 Aug 2025 09:53:56 +0000
Received: by outflank-mailman (input) for mailman id 1094277;
 Tue, 26 Aug 2025 09:53:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=vqZn=3G=proton.me=dmkhn@srs-se1.protection.inumbo.net>)
 id 1uqqNG-0007T3-U5
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 09:53:54 +0000
Received: from mail-10631.protonmail.ch (mail-10631.protonmail.ch
 [79.135.106.31]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9359838a-8262-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 11:53:54 +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>
X-Inumbo-ID: 9359838a-8262-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me;
	s=protonmail; t=1756202033; x=1756461233;
	bh=vYyVPvXN/PeOCvzaFbT3dEQ6Lf+NJ7rZxRppNEJIXrU=;
	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=JtK+peJ5/TnXziCTHCKPwLUieOwAoKjmodxfYB1Oys0L/bgbLxy9BqKXw2anPz/5H
	 iNYdhNg8uaXawEW4jONUqXXHUesCixYGG7pcOdFeNKQMmPvFlwto0KKvEcccpLDWRY
	 +DC596ofez3yCC2UPowx+upObU6IY6i6JEmW1omGuV0qXZY+SOb7cQij63zKYL7+Y4
	 RuszQZxkGud0NOGA7+pQkaMU8Smw90sp+9mFxX19D71LelQjlE7Uz/8pOlZp8iJ8Ml
	 JxbIiBQbGA84Bi5zLc/JB/NLbct7+c5H11H0z0NWtP60Y+BXo4U/r0hmLppjN6DjKl
	 jNm7+XVABKBeA==
Date: Tue, 26 Aug 2025 09:53:48 +0000
To: Jan Beulich <jbeulich@suse.com>
From: dmkhn@proton.me
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, Julien Grall <jgrall@amazon.com>, Alejandro Vallejo <alejandro.garciavallejo@amd.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v16 1/4] xen/domain: unify domain ID allocation
Message-ID: <aK2EKGIE11sUiqds@kraken>
In-Reply-To: <a5d91a6d-cde6-42fc-8497-f2c822e98174@suse.com>
References: <20250812223024.2364749-1-dmukhin@ford.com> <20250812223024.2364749-2-dmukhin@ford.com> <f85ae718-0243-4426-a555-327afffe7148@suse.com> <aKUPo+hRdfGlg+S8@kraken> <a5d91a6d-cde6-42fc-8497-f2c822e98174@suse.com>
Feedback-ID: 123220910:user:proton
X-Pm-Message-ID: 3f6ffe6e445b4fb1b0774af95ac09a010db03340
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Thu, Aug 21, 2025 at 09:16:16AM +0200, Jan Beulich wrote:
> On 20.08.2025 01:58, dmkhn@proton.me wrote:
> > On Thu, Aug 14, 2025 at 09:11:11AM +0200, Jan Beulich wrote:
> >> On 13.08.2025 00:30, dmkhn@proton.me wrote:
> >>> From: Denis Mukhin <dmukhin@ford.com>
> >>>
> >>> Currently, there are two different domain ID allocation implementatio=
ns:
> >>>
> >>>   1) Sequential IDs allocation in dom0less Arm code based on max_init=
_domid;
> >>>
> >>>   2) Sequential IDs allocation in XEN_DOMCTL_createdomain; does not u=
se
> >>>      max_init_domid (both Arm and x86).
> >>>
> >>> The domain ID allocation covers dom0 or late hwdom, predefined domain=
s,
> >>> post-boot domains, excluding Xen system domains (domid >=3D
> >>> DOMID_FIRST_RESERVED).
> >>>
> >>> It makes sense to have a common helper code for such task across arch=
itectures
> >>> (Arm and x86) and between dom0less / toolstack domU allocation.
> >>>
> >>> Note, fixing dependency on max_init_domid is out of scope of this pat=
ch.
> >>>
> >>> Wrap the domain ID allocation as an arch-independent function domid_a=
lloc() in
> >>> new common/domid.c based on the bitmap.
> >>>
> >>> Allocation algorithm:
> >>> - If an explicit domain ID is provided, verify its availability and u=
se it if
> >>>   ID is not used;
> >>> - If DOMID_INVALID is provided, search the range [1..DOMID_FIRST_RESE=
RVED-1],
> >>>   starting from the last used ID.
> >>>   Implementation guarantees that two consecutive calls will never ret=
urn the
> >>>   same ID. ID#0 is reserved for the first boot domain (currently, dom=
0) and
> >>>   excluded from the allocation range.
> >>>
> >>> Remove is_free_domid() helper as it is not needed now.
> >>>
> >>> No functional change intended.
> >>>
> >>> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> >>> Reviewed-by: Julien Grall <jgrall@amazon.com>
> >>> Reviewed-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
> >>> ---
> >>> Changes since v15:
> >>> - fixup for check after the first pass in the bitarray in domid_alloc=
()
> >>> - trivial renaming for the local variable in domid_alloc()
> >>> - kept Julien's R-b, added Alejandro's R-b
> >>
> >> Just to mention: My take is that this kind of a fix ought to invalidat=
e all
> >> earlier R-b. It's not just a cosmetic change, after all.
> >
> > Sorry for the hiccup here, did not mean to overrule the review process.
> >
> > My bold assumption was that in case of small fixups like this it is
> > satisfactory to carry over previous acks.
>=20
> Acks may be okay to keep, but imo R-b need dropping when an actual bug wa=
s
> fixed. Irrespective of how severe the bug was.
>=20
> > I asked (matrix) both Julien and Alejandro to re-review and confirm.
>=20
> While good to ask, that's of limited use. It'll be impossible later on to
> figure whether such a confirmation was given. Decisions (and acks and ali=
ke
> effectively fall into that category) need to be on the list, to be able t=
o
> locate them later on.

Got it, thanks.

>=20
> Jan
>=20



From xen-devel-bounces@lists.xenproject.org Tue Aug 26 10:39:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 10:39:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094295.1449617 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqr5d-0005qg-Nj; Tue, 26 Aug 2025 10:39:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094295.1449617; Tue, 26 Aug 2025 10:39:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqr5d-0005qZ-K6; Tue, 26 Aug 2025 10:39:45 +0000
Received: by outflank-mailman (input) for mailman id 1094295;
 Tue, 26 Aug 2025 10:39:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=HJCJ=3G=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1uqr5b-0005qT-R3
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 10:39:43 +0000
Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com
 [2a00:1450:4864:20::52d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f96ccacb-8268-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 12:39:42 +0200 (CEST)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-61c325a4d83so4292416a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 26 Aug 2025 03:39:42 -0700 (PDT)
Received: from ?IPV6:2003:e5:872d:6400:8c05:37ee:9cf6:6840?
 (p200300e5872d64008c0537ee9cf66840.dip0.t-ipconnect.de.
 [2003:e5:872d:6400:8c05:37ee:9cf6:6840])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-61c316f4e10sm6724132a12.29.2025.08.26.03.39.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Aug 2025 03: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>
X-Inumbo-ID: f96ccacb-8268-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756204781; x=1756809581; 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=aubxpbk2XtBhI4C5/n2BXN9jWVxK0FlxNqKl7ieYfbQ=;
        b=PgEOv8ZvCy3wKFn+2iTYEZAiHmlTcXkwndg+TjP/PWuV/7tk/cQtxaU09VjVBT4u7A
         cg0zwkhjnLK+6LpB5G28dyWWpUiC/Ce+/Y0epMJvv7/4Gkx1DDqNOGU+KjSGbDJi4RkW
         TUPThZiVrNLnLp8CDMk6nXe6Ug/mOKvJzYTV5GKf47mEYQq77ufDmo5bMGKQebl12PSC
         GL657bWyU+O8AQMz9RmvbaWldao4LyaFp0UHR6hgG2HMNyq7M7hvnPZZtL8KtEjRxz9A
         BT99VOBgnRub34V38iHA+JQ7Xg6uVY7LogHibA9ePJDCwgdB+AH0dgDkc3Hbs4JFYbpu
         rzKw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756204781; x=1756809581;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=aubxpbk2XtBhI4C5/n2BXN9jWVxK0FlxNqKl7ieYfbQ=;
        b=wD1ZPNRPEzVPUOZ5ZxzgNDOUcZdzjAbAgqZ+FScirI0qHvFSroD46K1uBaX8bcylHx
         Kk9sYrHMlOP/thhbM5/QcCZthMVanR3bLqW7yfm9Qo6f3ipK0dvdsMc4ToOMfHmsawVN
         R/lU+bhfkuUEtvxdsIxvjB3g42JFuHxnAVFBn5zD6pcWmwDGiCNsDWIW9i24zrL7xnNf
         yWwidp6+vU+WWzrRHIXqKCsjvBwZgzYjik7mdK9au84VOa+w0dwERQAKY0JLOyvh+GL4
         zfPtO/oqdUoEtc/Az0FDXtrt1TPlUUx0OKk7oKbbinS2++xAWdwBU5Id01EGUDVzr89J
         ClpQ==
X-Forwarded-Encrypted: i=1; AJvYcCVxIpcwn3/PZJJMQTD+tsDcanM6TCIxz0JufX+iMh4a4J0kAff1t5KHXJMv03Z2gjp9sQpHg97BO88=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxNXMfHoafnCkcFtTSrpiEaE9sInUUH2GK0URskufNikLbL27+5
	p2ZBnlP+XSPesAokv8DtrrzkPcuuPdhg3NaNS+pQegLj8bOCdQbAMeC7zXcvK8YszAs=
X-Gm-Gg: ASbGncsBrDOMTJflnaA8wJAd/QZ9KVNwN2JJ5ygTrFBSZGte6x1hKkCEROeOoXsXEgw
	lxaypz/iBcvSf0pswD0hxcUom7RdR8K0X30j6t5TYANRNePq2reuMWWBUL0EVX4ApLjAPWHqZk8
	7hiGAla4llwx6uT/53y/9hfLpsGaXCZg8Lj/01JW1Cgf0GhjSTHIRF6eKkUB/jm56M9afdxf6BN
	sXcBmH4SbsVskdNVWNRo1+WIBZk5vDYpxA833HUrctpc9GaGtnQME/o+y5GMGG//ZPid521acGj
	F/QEMuh7mPhY4xp3+4zTcjL2+XjD9YRtz1MkCUbshtcb5KPKWirYrn2jRzAmy7w/3gUdcDTEOsb
	57QPJXM+ARvMfFHflhAH03y323FxGd7nqvq/odYDr6Z/OZa+e/bJ/IpST/OEpt0bu9twQv9iGKK
	DxZpNu8sLt29eFxwy1bZhoNkhFVW0HDFVL2A6K9YjQSkWsvjtpTh2JKjvJAQ==
X-Google-Smtp-Source: AGHT+IGTJ6kJcviN3gx0SsZhG3FYbsFiWuwc5ckYBN7HeTxHud9HajgH67qiuZuS9+NG+NFwi7i4Zg==
X-Received: by 2002:a05:6402:1d49:b0:61c:926e:24fd with SMTP id 4fb4d7f45d1cf-61c926e25dfmr1488413a12.34.1756204781534;
        Tue, 26 Aug 2025 03:39:41 -0700 (PDT)
Message-ID: <6eb60b62-bd3a-4a64-9665-fc911cc7d869@suse.com>
Date: Tue, 26 Aug 2025 12:39:39 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 5/6] x86/paravirt: Switch MSR access pv_ops functions to
 instruction interfaces
To: Xin Li <xin@zytor.com>, linux-kernel@vger.kernel.org, x86@kernel.org,
 virtualization@lists.linux.dev
Cc: Ajay Kaher <ajay.kaher@broadcom.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Thomas Gleixner
 <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 "H. Peter Anvin" <hpa@zytor.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>
References: <20250506092015.1849-1-jgross@suse.com>
 <20250506092015.1849-6-jgross@suse.com>
 <722f5b30-20e9-4540-98e4-d211d7c44cbe@zytor.com>
 <9f4e33d5-9cb3-4079-b764-87a15265fd52@suse.com>
 <2365af70-d36f-4663-b819-59d886936ef5@zytor.com>
 <8a82946a-6c3e-41d1-b3bd-be164dc6eeba@suse.com>
 <7047440a-0419-4982-961b-46f9b90a86e9@zytor.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: <7047440a-0419-4982-961b-46f9b90a86e9@zytor.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------RsLXUU2C1CGvpLiam006QHyM"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------RsLXUU2C1CGvpLiam006QHyM
Content-Type: multipart/mixed; boundary="------------qvfxUhM9j5tB42NwHbcTZLzf";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Xin Li <xin@zytor.com>, linux-kernel@vger.kernel.org, x86@kernel.org,
 virtualization@lists.linux.dev
Cc: Ajay Kaher <ajay.kaher@broadcom.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Thomas Gleixner
 <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 "H. Peter Anvin" <hpa@zytor.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>
Message-ID: <6eb60b62-bd3a-4a64-9665-fc911cc7d869@suse.com>
Subject: Re: [PATCH 5/6] x86/paravirt: Switch MSR access pv_ops functions to
 instruction interfaces
References: <20250506092015.1849-1-jgross@suse.com>
 <20250506092015.1849-6-jgross@suse.com>
 <722f5b30-20e9-4540-98e4-d211d7c44cbe@zytor.com>
 <9f4e33d5-9cb3-4079-b764-87a15265fd52@suse.com>
 <2365af70-d36f-4663-b819-59d886936ef5@zytor.com>
 <8a82946a-6c3e-41d1-b3bd-be164dc6eeba@suse.com>
 <7047440a-0419-4982-961b-46f9b90a86e9@zytor.com>
In-Reply-To: <7047440a-0419-4982-961b-46f9b90a86e9@zytor.com>

--------------qvfxUhM9j5tB42NwHbcTZLzf
Content-Type: multipart/mixed; boundary="------------yvNIYITvDlrd0dF2hWkwHAja"

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

T24gMjUuMDguMjUgMDM6NTQsIFhpbiBMaSB3cm90ZToNCj4gT24gNi8xMS8yMDI1IDU6NTgg
QU0sIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6DQo+PiBJJ20ganVzdCBkb2luZyBhIFYyIG9mIG15
IHNlcmllcywgYnV0IHRoaXMgdGltZSBpbmNsdWRpbmcgdGhlIGFkZGl0aW9uYWwNCj4+IHN1
cHBvcnQgb2YgdGhlIG5vbi1zZXJpYWxpemluZyBhbmQgaW1tZWRpYXRlIGZvcm1zLiBMZXRz
IHNlZSBob3cgdGhpcyB3aWxsDQo+PiBsb29rIGxpa2UuIEkgd2lsbCBkcm9wIHVzaW5nIHRo
ZSBFQVhfRURYXyogbWFjcm9zLCBidXQgZHVlIHRvIHRoZSByZWFzb24NCj4+IG1lbnRpb25l
ZCBhYm92ZSBJIHdvbid0IHN3aXRjaCB0byB5b3VyIHZhcmlhbnQgY29tcGxldGVseS4NCj4g
DQo+IEhpIEp1ZXJnZW4sDQo+IA0KPiBEbyB5b3UgaGF2ZSBhbnkgdXBkYXRlIG9uIHRoaXM/
DQoNCkkndmUgYmVlbiB2ZXJ5IGJ1c3kgd2l0aCBvdGhlciBzdHVmZiAoZG93bnN0cmVhbSwg
c2VjdXJpdHksIC4uLikuDQoNCkluIGJldHdlZW4gSSd2ZSBiZWVuIHdvcmtpbmcgb24gdGhl
IHNlcmllcy4gSSBob3BlIHRvIHBvc3QgaXQgc29tZSB0aW1lIGluDQpTZXB0ZW1iZXIuDQoN
Cg0KSnVlcmdlbg0K
--------------yvNIYITvDlrd0dF2hWkwHAja
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-----

--------------yvNIYITvDlrd0dF2hWkwHAja--

--------------qvfxUhM9j5tB42NwHbcTZLzf--

--------------RsLXUU2C1CGvpLiam006QHyM
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/Ey8FAmitjuwFAwAAAAAACgkQsN6d1ii/Ey/W
VAf/bjOTfxBU5Ic3yxL8cIuWVKFrTuMx8Ynv73k4yHoMT//hTOT0Zeu6iqflODNSpNHcSDDpylbo
u5sZa0LLFzmKhpQGLF8+5RsnWrYCqMNydpYVbs9vCXf9VOl/QDrKBXIUo4KBzrhIIO6+SLzc1HcV
UrVnidE37h8kuKWvIgPTrHdzP81NAg3Nq/AMLccIGowCHmFAWjo49D9x57tfTirIZH3KzZzSYKeQ
/LjQtYhJx5bIQQ/fNns+bkx/uKUVAElX0VUf/B7KaPmsE3zg4hV/w/KDixyfeJFJNHthxrffaSH6
qSKMNizNhEdUMq2TEBSIu9QA7VukkUKXXVuaPop1lA==
=J7f0
-----END PGP SIGNATURE-----

--------------RsLXUU2C1CGvpLiam006QHyM--


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 10:48:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 10:48:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094304.1449627 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqrDw-0007bZ-Hb; Tue, 26 Aug 2025 10:48:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094304.1449627; Tue, 26 Aug 2025 10:48:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqrDw-0007bS-EC; Tue, 26 Aug 2025 10:48:20 +0000
Received: by outflank-mailman (input) for mailman id 1094304;
 Tue, 26 Aug 2025 10:48:19 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1uqrDv-0007bM-IP
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 10:48:19 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1uqrDu-007Vtz-17;
 Tue, 26 Aug 2025 10:48:18 +0000
Received: from [2a02:8012:3a1:0:7d60:da5a:46e8:4212]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1uqrDu-0027Pw-11;
 Tue, 26 Aug 2025 10:48: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=8w2k09WhH2MGPfovKxIjn6fYFeFFdwOXs5p2fuTz7w0=; b=yrl8lEmNBMhYoJiCFfa10u4h7c
	jgpf91yD+KFs3yaYXpPVL90SrFzTAWxYCoNrNCsuvk/KmSlWiMZM/AGjsRVLLwE0USQIoqKB12ELy
	PCh8vyqAOhcXVMejq1PtEFHYZs+KfRY3tTUtR6Sw0R+tmbqeUIyzKPfVF2Iyau5r8Jwk=;
Message-ID: <e0c2b06e-947a-4d1d-864f-5785cfe00b1c@xen.org>
Date: Tue, 26 Aug 2025 11:48:15 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: smmuv3: Add cache maintenance for non-coherent
 SMMU queues
Content-Language: en-GB
To: Dmytro Firsov <Dmytro_Firsov@epam.com>,
 "Orzel, Michal" <michal.orzel@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <24567cc1630b1577c33939ff71d67fb2ebe5572f.1754491424.git.dmytro_firsov@epam.com>
 <cff3e94c-4476-4103-ae7e-19656703e755@amd.com>
 <5d48d927-7e1e-4b11-b429-0b94259154ab@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <5d48d927-7e1e-4b11-b429-0b94259154ab@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 26/08/2025 10:47, Dmytro Firsov wrote:
> On 22.08.25 11:12, Orzel, Michal wrote:
> On 06/08/2025 16:58, Dmytro Firsov wrote:
> 
> 
> According to the Arm SMMUv3 spec (ARM IHI 0070), a system may have
> SMMU(s) that is/are non-coherent to the PE (processing element). In such
> cases, memory accesses from the PE should be either non-cached or be
> augmented with manual cache maintenance. SMMU cache coherency is reported
> by bit 4 (COHACC) of the SMMU_IDR0 register and is already present in the
> Xen driver. However, the current implementation is not aware of cache
> maintenance for memory that is shared between the PE and non-coherent
> SMMUs. It contains dmam_alloc_coherent() function, that is added during
> Linux driver porting. But it is actually a wrapper for _xzalloc(), that
> returns normal writeback memory (which is OK for coherent SMMUs).
> 
> During Xen bring-up on a system with non-coherent SMMUs, the driver did
> not work properly - the SMMU was not functional and halted initialization
> at the very beginning due to a timeout while waiting for CMD_SYNC
> completion:
> 
>    (XEN) SMMUv3: /soc/iommu@fa000000: CMD_SYNC timeout
>    (XEN) SMMUv3: /soc/iommu@fa000000: CMD_SYNC timeout
> 
> To properly handle such scenarios, add the non_coherent flag to the
> arm_smmu_queue struct. It is initialized using features reported by the
> SMMU HW and will be used for triggering cache clean/invalidate operations.
> This flag is not queue-specific (it is applicable to the whole SMMU), but
> adding it to arm_smmu_queue allows us to not change function signatures
> and simplify the patch (smmu->features, which contains the required flag,
> are not available in code parts that require cache maintenance).
> 
> 
> There are already a few places advertising the SMMU coherency:
> 1) smmu->features
> 2) d->iommu->features
> 3) platform_features
> 
> All of them are better places than queue struct (that as you pointed out is not
> specific to coherency). I'd suggest maybe to use 3) and removing ro_after_init
> if you don't have access to 1) and 2). All in all, providing yet another place
> for coherency flag seems a bit too much.
 > >
> First of all, thank you very much for review! I will consider using
> "platform_features" in next patch version, it looks more appropriate and
> should be available within the whole driver. Also, I believe "ro_after_init"
> is also OK, since I have no need to change it (only check if cache
> maintenance should be performed).

I have to disagree with using "platform_features". Flushing the queue is 
a per-SMMU decision. But looking at the code, I think passing the SMMU 
to the caller would look wrong (what if you mistakenly pass the wrong 
SMMU?). So I think a boolean per queue is the right appraoch.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Tue Aug 26 10:55:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 10:55:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094314.1449637 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqrKg-0000uZ-71; Tue, 26 Aug 2025 10:55:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094314.1449637; Tue, 26 Aug 2025 10:55: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 1uqrKg-0000uS-4O; Tue, 26 Aug 2025 10:55:18 +0000
Received: by outflank-mailman (input) for mailman id 1094314;
 Tue, 26 Aug 2025 10:55:16 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1uqrKe-0000uM-Fl
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 10:55:16 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1uqrKd-007W4e-1r;
 Tue, 26 Aug 2025 10:55:15 +0000
Received: from [2a02:8012:3a1:0:7d60:da5a:46e8:4212]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1uqrKd-0028Gv-1W;
 Tue, 26 Aug 2025 10:55:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=HxYW62Vfz2rbRKN2q+MD6Uq1lqfy7aaAGmdyZRzDWUE=; b=hyQecZpqdrUU3w0QqlV6kmprcs
	a+cs77jTMh7RelGeWvZSkUGJfKF4SxGsonjj1xFxs8smOU+7ypL7/21Ha+aPDWvwsulksXG7F8bA4
	YRwXICBLyM6U0SIePJ4eOKfHDuXT1ywTi4FAJ0ip1X14GtQ5DokYIUmGdoFuUbaWL8EQ=;
Message-ID: <20c20f54-565e-4f59-9b13-218e0958c46b@xen.org>
Date: Tue, 26 Aug 2025 11:55:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: smmuv3: Add cache maintenance for non-coherent
 SMMU queues
Content-Language: en-GB
To: Dmytro Firsov <Dmytro_Firsov@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <24567cc1630b1577c33939ff71d67fb2ebe5572f.1754491424.git.dmytro_firsov@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <24567cc1630b1577c33939ff71d67fb2ebe5572f.1754491424.git.dmytro_firsov@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 06/08/2025 15:58, Dmytro Firsov wrote:
> According to the Arm SMMUv3 spec (ARM IHI 0070), a system may have
> SMMU(s) that is/are non-coherent to the PE (processing element). In such
> cases, memory accesses from the PE should be either non-cached or be
> augmented with manual cache maintenance. SMMU cache coherency is reported
> by bit 4 (COHACC) of the SMMU_IDR0 register and is already present in the
> Xen driver. However, the current implementation is not aware of cache
> maintenance for memory that is shared between the PE and non-coherent
> SMMUs. It contains dmam_alloc_coherent() function, that is added during
> Linux driver porting. But it is actually a wrapper for _xzalloc(), that
> returns normal writeback memory (which is OK for coherent SMMUs).
> 
> During Xen bring-up on a system with non-coherent SMMUs, the driver did
> not work properly - the SMMU was not functional and halted initialization
> at the very beginning due to a timeout while waiting for CMD_SYNC
> completion:
> 
>    (XEN) SMMUv3: /soc/iommu@fa000000: CMD_SYNC timeout
>    (XEN) SMMUv3: /soc/iommu@fa000000: CMD_SYNC timeout
> 
> To properly handle such scenarios, add the non_coherent flag to the
> arm_smmu_queue struct. It is initialized using features reported by the
> SMMU HW and will be used for triggering cache clean/invalidate operations.
> This flag is not queue-specific (it is applicable to the whole SMMU), but
> adding it to arm_smmu_queue allows us to not change function signatures
> and simplify the patch (smmu->features, which contains the required flag,
> are not available in code parts that require cache maintenance).
> 
> Signed-off-by: Dmytro Firsov <dmytro_firsov@epam.com>


With one remark below:

Reviewed-by: Julien Grall <jgrall@amazon.com>


> diff --git a/xen/drivers/passthrough/arm/smmu-v3.h b/xen/drivers/passthrough/arm/smmu-v3.h
> index f09048812c..db936b9bd4 100644
> --- a/xen/drivers/passthrough/arm/smmu-v3.h
> +++ b/xen/drivers/passthrough/arm/smmu-v3.h
> @@ -522,6 +522,13 @@ struct arm_smmu_queue {
>   
>   	u32 __iomem			*prod_reg;
>   	u32 __iomem			*cons_reg;
> +
> +	/*
> +	 * According to SMMU spec section 3.16, some systems may have
> +	 * SMMUs, that are non-coherent to PE (processing elements).
> +	 * In such case manual cache management is needed.
> +	 */

Please mention the specification version because section numbers are not 
stable. That said, I am not sure I see the value to mention the spec 
here. I think it would be sufficient to say:

"Is the memory access coherent?"


Cheers,

> +	bool				non_coherent;
>   };
>   
>   struct arm_smmu_cmdq {

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Tue Aug 26 10:58:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 10:58:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094329.1449648 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqrNH-0001XW-Ox; Tue, 26 Aug 2025 10:57:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094329.1449648; Tue, 26 Aug 2025 10:57:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqrNH-0001XP-Kg; Tue, 26 Aug 2025 10:57:59 +0000
Received: by outflank-mailman (input) for mailman id 1094329;
 Tue, 26 Aug 2025 10:57:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=EpqW=3G=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1uqrNG-0001XH-27
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 10:57:58 +0000
Received: from fout-b7-smtp.messagingengine.com
 (fout-b7-smtp.messagingengine.com [202.12.124.150])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 846f9078-826b-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 12:57:55 +0200 (CEST)
Received: from phl-compute-05.internal (phl-compute-05.internal [10.202.2.45])
 by mailfout.stl.internal (Postfix) with ESMTP id C1D361D00178;
 Tue, 26 Aug 2025 06:57:53 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-05.internal (MEProxy); Tue, 26 Aug 2025 06:57:53 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 26 Aug 2025 06:57:52 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 846f9078-826b-11f0-a32c-13f23c93f187
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=1756205873;
	 x=1756292273; bh=FpvDcoY/i89amBfbg856eFmlD/GJra+fiQBad2nf+fc=; b=
	OcZLKJpoXZQXvq+brn1q5snT7WmUL7/Tf7LXZD7ylaAqcYuUjEfj11aWdVIcSodL
	O/eGYukKZtgUIP3dC1RCIeG7JTAaLYVZx8DRzOnauOsNjxSdTiUBogLuuRllFrWY
	1QazxnpMCj2osTIeJTckzQB1c8ZBzjSMN9bUiufWu8VBmovg4mH3dx8P2tsTHQrA
	2jsH6FCxUeO79DzJgpdgFyYN6iTLYv/EKrtnfT/gOkK3wltzn+l3ZYaEFLenGT9h
	y9LDK48Q9eEeNnJyE/ubHjQsfpmCeTBIwHNPGLWXpMDyqeGOyY0Vv0hl1N3dZ+B1
	r9ShmuNa4eksnMpUVJM9yg==
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=fm1; t=
	1756205873; x=1756292273; bh=FpvDcoY/i89amBfbg856eFmlD/GJra+fiQB
	ad2nf+fc=; b=kjjHr9jrojNKUPfV+ZeBhixw0SIX87l1bSTh5mu9UDMoA16Xaay
	kVFs2fiPBp3Z7gXWbL8LGLAdSLrhOjUabfrnHa1ze6SUpTuffeGneIij2vWe79F7
	o1Cq5iikPUyCCecBCeOjKUlvTQiV9df//34clPayIbI9yWc4vUTJHqY+iGLDp5iO
	p8JMrkDf6eBAv2TgoQiP+NjEux2DLzu14yMnxGD1dLCcbdEwRQ1ZNGbR99Ou3tau
	hJjS390AhiW/ENdAPxoVO1hsINcZ5P6xuVFO5U4ZbaWnDnHrr9HSaEdHV5QOki5g
	aJA5pZ1f6+UgZ7pqHPpd9HtdBzeM04oxayw==
X-ME-Sender: <xms:MZOtaJjy6XjlspoeaGrf1nqyY-KDP-1OckvkGRNG0-Z9XVIyTe-9uQ>
    <xme:MZOtaBTjLlSqOu84EwuwzSrQrOrnZ2mnOzWn9hdeYZeUPQUBHns7oRkV_dtOP_8hb
    0Mk1Bl9XwKuxQ>
X-ME-Received: <xmr:MZOtaCgrNY-50jrn-0jN-ganPzvGuhDc4iXlCXdmrb33RhW6X29cmM-bRvdc2XZpH0huELq7JGMU67p8C4DIrjmJLqgkjjPfraw>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgddujeehtdekucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepueekteet
    gefggfekudehteegieeljeejieeihfejgeevhfetgffgteeuteetueetnecuffhomhgrih
    hnpehgihhthhhusgdrtghomhenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhep
    mhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrg
    gsrdgtohhmpdhnsggprhgtphhtthhopeefpdhmohguvgepshhmthhpohhuthdprhgtphht
    thhopehrohhgvghrrdhprghusegtihhtrhhigidrtghomhdprhgtphhtthhopehjsggvuh
    hlihgthhesshhushgvrdgtohhmpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishht
    shdrgigvnhhprhhojhgvtghtrdhorhhg
X-ME-Proxy: <xmx:MZOtaJ7LqqFqJnJSw968ADshdppiSMIy0ep8YaAz9Ck_sV-BlCfg1g>
    <xmx:MZOtaHAn4gz_X9qfntq61i-LoMG0ytslEY9pqL9Rzct5PcC4Ozv1mw>
    <xmx:MZOtaIZ0zJQk-_9Vm8ZJZzm3OY2ALCvJK-8kvx0UNCVu_RD1ogya5A>
    <xmx:MZOtaKbBdA4L_OAkFSOsYaAsWAxCLetsnZPfp7chQzsh1eTQ7xUFIQ>
    <xmx:MZOtaEaG9od6UUi5eC69Cgu06rEgp_caveSJOTYA-zYb4rFs4o8pJZWp>
Feedback-ID: i1568416f:Fastmail
Date: Tue, 26 Aug 2025 12:57:50 +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: Jan Beulich <jbeulich@suse.com>,
	xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: MSI-X cleanup(?) issue with passthrough after domU restart
Message-ID: <aK2TLuB_yKlWjFgM@mail-itl>
References: <aK0St0oUkJzR9lO0@mail-itl>
 <2aafbace-3aa2-4f58-8f6c-2815cd2315ad@suse.com>
 <aK1wSKTg5LcuzBDc@macbook.local>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="h8MF4Jebq8oeROdV"
Content-Disposition: inline
In-Reply-To: <aK1wSKTg5LcuzBDc@macbook.local>


--h8MF4Jebq8oeROdV
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Tue, 26 Aug 2025 12:57:50 +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: Jan Beulich <jbeulich@suse.com>,
	xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: MSI-X cleanup(?) issue with passthrough after domU restart

On Tue, Aug 26, 2025 at 10:28:56AM +0200, Roger Pau Monn=C3=A9 wrote:
> On Tue, Aug 26, 2025 at 08:16:56AM +0200, Jan Beulich wrote:
> > On 26.08.2025 03:49, Marek Marczykowski-G=C3=B3recki wrote:
> > > Hi,
> > >=20
> > > I'm hitting an MSI-X issue after rebooting the domU. The symptoms are
> > > rather boring: on initial domU start the device (realtek eth card) wo=
rks
> > > fine, but after domU restart, the link doesn't come up (there is no
> > > "Link is Up" message anymore). No errors from domU driver or Xen. I
> > > tracked it down to MSI-X - if I force INTx (via pci=3Dnomsi on domU
> > > cmdline) it works fine. Convincing the driver to poll instead of wait=
ing
> > > for an interrupt also workarounds the issue.
> > >=20
> > > I noticed also some interrupts are not cleaned up on restart. The list
> > > of MSIs in 'Q' debug key output grows:
> > >=20
> > >     (XEN) 0000:03:00.0 - d22 - node -1  - MSIs < 41 42 43 44 45 46 47=
 >
> > >     restart sys-net domU
> > >     (XEN) 0000:03:00.0 - d24 - node -1  - MSIs < 41 42 43 44 45 46 47=
 48 >
> > >     restart sys-net domU
> > >     (XEN) 0000:03:00.0 - d26 - node -1  - MSIs < 41 42 43 44 45 46 47=
 48 49 >
> > >=20
> > > and 'M' output is:
> > >=20
> > >     (XEN)  MSI-X   41 vec=3Db1 lowest  edge   assert  log lowest dest=
=3D00000001 mask=3D1/H /1
> > >     (XEN)  MSI-X   42 vec=3Db9 lowest  edge   assert  log lowest dest=
=3D00000004 mask=3D1/HG/1
> > >     (XEN)  MSI-X   43 vec=3Dc1 lowest  edge   assert  log lowest dest=
=3D00000010 mask=3D1/HG/1
> > >     (XEN)  MSI-X   44 vec=3Dd9 lowest  edge   assert  log lowest dest=
=3D00000001 mask=3D1/HG/1
> > >     (XEN)  MSI-X   45 vec=3De1 lowest  edge   assert  log lowest dest=
=3D00000001 mask=3D1/HG/1
> > >     (XEN)  MSI-X   46 vec=3De9 lowest  edge   assert  log lowest dest=
=3D00000040 mask=3D1/HG/1
> > >     (XEN)  MSI-X   47 vec=3D32 lowest  edge   assert  log lowest dest=
=3D00000004 mask=3D1/HG/1
> > >     (XEN)  MSI-X   48 vec=3D3a lowest  edge   assert  log lowest dest=
=3D00000040 mask=3D1/HG/1
> > >     (XEN)  MSI-X   49 vec=3D42 lowest  edge   assert  log lowest dest=
=3D00000010 mask=3D1/ G/1
> > >=20
> > > And also, after starting and stopping the domU, `xl pci-assignable-re=
move 03:00.0`
> > > makes pciback to complain:
> > >=20
> > >     [ 1180.919874] pciback 0000:03:00.0: xen_pciback: MSI-X release f=
ailed (-16)
> > >=20
> > > This is all running on Xen 4.19.3, but I don't see much changes in th=
is
> > > area since then.
> > >=20
> > > Some more info collected at https://github.com/QubesOS/qubes-issues/i=
ssues/9335
> > >=20
> > > My question is: what should be responsible for this cleanup on domain
> > > destroy? Xen, or maybe device model (which is QEMU in stubdomain here=
)?
> >=20
> > The expectation is that qemu invokes the necessary cleanup, but of cour=
se ...
> >=20
> > > I see some cleanup (apparently not enough) happening via QEMU when the
> > > domU driver is unloaded, but logically correct cleanup shouldn't depe=
nd
> > > on correct domU operation...
> >=20
> > ... Xen may not make itself dependent upon either DomU or QEMU.
>=20
> AFAICT free_domain_pirqs() called by arch_domain_destroy() should take
> care of unbinding and freeing pirqs (but obviously not in this case).
> Can you repeat the test with a debug=3Dy hypervisor and post the
> resulting serial or dmesg here?  Some of the errors on those paths are
> printed with dprintk() and won't be visible unless using a Xen debug
> build.

Sure, will do.

> > What I find puzzling (assuming I can take the quoted output plus your a=
nnotations
> > verbatim) is that the device apparently uses multiple vectors,=20

No, that was not the first domU restart before I started collecting this
output. At fresh boot there is just one vector.

> > and we're leaking
> > exactly one of them. Also, since reboot is generally nothing else than =
shutdown
> > and immediate relaunch, is there a leak also after shutdown? I ask beca=
use it
> > might help to know which of the multiple vectors is leaked (first, last=
, random).
>=20
> Can we maybe get the output of `lspci -vv` when the device is
> attached?

Both below on first domU start, when the device still works, but when it
breaks it's identical.

Collected in dom0:
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8=
211/8411 PCI Express Gigabit Ethernet Controller (rev 06)
	Subsystem: Gigabyte Technology Co., Ltd Onboard Ethernet
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Steppi=
ng- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=3Dfast >TAbort- <TAbort- =
<MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 18
	Region 0: I/O ports at e000 [size=3D256]
	Region 2: Memory at f7c00000 (64-bit, non-prefetchable) [size=3D4K]
	Region 4: Memory at f0000000 (64-bit, prefetchable) [size=3D16K]
	Capabilities: [40] Power Management version 3
		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=3D375mA PME(D0+,D1+,D2+,D3hot+,D3c=
old+)
		Status: D0 NoSoftRst+ PME-Enable- DSel=3D0 DScale=3D0 PME-
	Capabilities: [50] MSI: Enable- Count=3D1/1 Maskable- 64bit+
		Address: 0000000000000000  Data: 0000
	Capabilities: [70] Express (v2) Endpoint, IntMsgNum 1
		DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s <512ns, L1 <64us
			ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset- SlotPowerLimit 10W TEE-I=
O-
		DevCtl:	CorrErr+ NonFatalErr+ FatalErr+ UnsupReq+
			RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
			MaxPayload 128 bytes, MaxReadReq 4096 bytes
		DevSta:	CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr+ TransPend-
		LnkCap:	Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s u=
nlimited, L1 <64us
			ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp-
		LnkCtl:	ASPM Disabled; RCB 64 bytes, LnkDisable- CommClk+
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- FltModeDis-
		LnkSta:	Speed 2.5GT/s, Width x1
			TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
		DevCap2: Completion Timeout: Range ABCD, TimeoutDis+ NROPrPrP- LTR-
			 10BitTagComp- 10BitTagReq- OBFF Not Supported, ExtFmt- EETLPPrefix-
			 EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
			 FRS- TPHComp- ExtTPHComp-
			 AtomicOpsCap: 32bit- 64bit- 128bitCAS-
		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-
			 AtomicOpsCtl: ReqEn-
			 IDOReq- IDOCompl- LTR- EmergencyPowerReductionReq-
			 10BitTagReq- OBFF Disabled, EETLPPrefixBlk-
		LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- Compl=
ianceSOS-
			 Compliance Preset/De-emphasis: -6dB de-emphasis, 0dB preshoot
		LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete- Equalizat=
ionPhase1-
			 EqualizationPhase2- EqualizationPhase3- LinkEqualizationRequest-
			 Retimer- 2Retimers- CrosslinkRes: unsupported, FltMode-
	Capabilities: [b0] MSI-X: Enable+ Count=3D4 Masked-
		Vector table: BAR=3D4 offset=3D00000000
		PBA: BAR=3D4 offset=3D00000800
	Capabilities: [d0] Vital Product Data
		Not readable
	Capabilities: [100 v1] Advanced Error Reporting
		UESta:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP-
			ECRC- UnsupReq- ACSViol- UncorrIntErr- BlockedTLP- AtomicOpBlocked- TLPB=
lockedErr-
			PoisonTLPBlocked- DMWrReqBlocked- IDECheck- MisIDETLP- PCRC_CHECK- TLPXl=
atBlocked-
		UEMsk:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP-
			ECRC- UnsupReq- ACSViol- UncorrIntErr- BlockedTLP- AtomicOpBlocked- TLPB=
lockedErr-
			PoisonTLPBlocked- DMWrReqBlocked- IDECheck- MisIDETLP- PCRC_CHECK- TLPXl=
atBlocked-
		UESvrt:	DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+
			ECRC- UnsupReq- ACSViol- UncorrIntErr- BlockedTLP- AtomicOpBlocked- TLPB=
lockedErr-
			PoisonTLPBlocked- DMWrReqBlocked- IDECheck- MisIDETLP- PCRC_CHECK- TLPXl=
atBlocked-
		CESta:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr- CorrInt=
Err- HeaderOF-
		CEMsk:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+ CorrInt=
Err- HeaderOF-
		AERCap:	First Error Pointer: 00, ECRCGenCap+ ECRCGenEn- ECRCChkCap+ ECRCC=
hkEn-
			MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap-
		HeaderLog: 00000000 00000000 00000000 00000000
	Capabilities: [140 v1] Virtual Channel
		Caps:	LPEVC=3D0 RefClk=3D100ns PATEntryBits=3D1
		Arb:	Fixed- WRR32- WRR64- WRR128-
		Ctrl:	ArbSelect=3DFixed
		Status:	InProgress-
		VC0:	Caps:	PATOffset=3D00 MaxTimeSlots=3D1 RejSnoopTrans-
			Arb:	Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
			Ctrl:	Enable+ ID=3D0 ArbSelect=3DFixed TC/VC=3D01
			Status:	NegoPending- InProgress-
	Capabilities: [160 v1] Device Serial Number 01-00-00-00-68-4c-e0-00
	Kernel driver in use: pciback
	Kernel modules: r8169


and the domU view:

00:06.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8=
211/8411 PCI Express Gigabit Ethernet Controller (rev 06)
	Subsystem: Gigabyte Technology Co., Ltd Onboard Ethernet
	Physical Slot: 6
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Steppi=
ng- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=3Dfast >TAbort- <TAbort- =
<MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 40
	Region 0: I/O ports at c200 [size=3D256]
	Region 2: Memory at f2018000 (64-bit, non-prefetchable) [size=3D4K]
	Region 4: Memory at f2010000 (64-bit, prefetchable) [size=3D16K]
	Capabilities: [40] Power Management version 3
		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=3D0mA PME(D0-,D1-,D2-,D3hot-,D3col=
d-)
		Status: D0 NoSoftRst+ PME-Enable- DSel=3D0 DScale=3D0 PME-
	Capabilities: [50] MSI: Enable- Count=3D1/1 Maskable- 64bit+
		Address: 0000000000000000  Data: 0000
	Capabilities: [70] Express (v2) Endpoint, IntMsgNum 1
		DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s <512ns, L1 <64us
			ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset- SlotPowerLimit 10W TEE-I=
O-
		DevCtl:	CorrErr+ NonFatalErr+ FatalErr+ UnsupReq+
			RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
			MaxPayload 128 bytes, MaxReadReq 4096 bytes
		DevSta:	CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr+ TransPend-
		LnkCap:	Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s u=
nlimited, L1 <64us
			ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp-
		LnkCtl:	ASPM Disabled; RCB 64 bytes, LnkDisable- CommClk+
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- FltModeDis-
		LnkSta:	Speed 2.5GT/s, Width x1
			TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
		DevCap2: Completion Timeout: Range ABCD, TimeoutDis+ NROPrPrP- LTR-
			 10BitTagComp- 10BitTagReq- OBFF Not Supported, ExtFmt- EETLPPrefix-
			 EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
			 FRS- TPHComp- ExtTPHComp-
			 AtomicOpsCap: 32bit- 64bit- 128bitCAS-
		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-
			 AtomicOpsCtl: ReqEn-
			 IDOReq- IDOCompl- LTR- EmergencyPowerReductionReq-
			 10BitTagReq- OBFF Disabled, EETLPPrefixBlk-
		LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete- Equalizat=
ionPhase1-
			 EqualizationPhase2- EqualizationPhase3- LinkEqualizationRequest-
			 Retimer- 2Retimers- CrosslinkRes: unsupported, FltMode-
	Capabilities: [b0] MSI-X: Enable+ Count=3D4 Masked-
		Vector table: BAR=3D4 offset=3D00000000
		PBA: BAR=3D4 offset=3D00000800
	Capabilities: [d0] Vital Product Data
		Not readable
	Kernel driver in use: r8169
	Kernel modules: r8169


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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmitky4ACgkQ24/THMrX
1yyGfgf5AaZdohtyj+KWKZEpRABmbPSp/9SsfvzBm9BxI2omAaxnj0P1ncrAYMTe
PDe/g71qgau9HiI09NeR5ACIozwfEITw8QY5D8R+0joUS2TIfZDzKOzpM/z9I8VH
hZzJvHSZfjra1VjzkM++/RAjPxi/zZ4/a0NSF8ANIyjx7IZqQtJOwr1mb5ZY1btv
7ZGER9rR/VeblCi0n2NIC+oWhKG4QJFrYovZw2RsIxWdTJjuCH40h8HNqwfj6Zeg
UEUjWn+tcLFDv7T6s6luMiQqrGB6dDvAMaj+9pB9qF+SnGZFNqUtsSwKVjvi9HLT
TzIPH1a7XNdNeNB7fip1nsD5zdM48w==
=CHIr
-----END PGP SIGNATURE-----

--h8MF4Jebq8oeROdV--


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 11:44:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 11:44:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094349.1449684 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqs6S-0000FU-8c; Tue, 26 Aug 2025 11:44:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094349.1449684; Tue, 26 Aug 2025 11:44:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqs6S-0000FN-5m; Tue, 26 Aug 2025 11:44:40 +0000
Received: by outflank-mailman (input) for mailman id 1094349;
 Tue, 26 Aug 2025 11:44:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=v2Dh=3G=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1uqs6R-0000FH-65
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 11:44:39 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20617.outbound.protection.outlook.com
 [2a01:111:f403:2415::617])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0a04aec7-8272-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 13:44:36 +0200 (CEST)
Received: from BY5PR17CA0046.namprd17.prod.outlook.com (2603:10b6:a03:167::23)
 by SA0PR12MB7089.namprd12.prod.outlook.com (2603:10b6:806:2d5::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Tue, 26 Aug
 2025 11:44:33 +0000
Received: from SJ1PEPF000026C8.namprd04.prod.outlook.com
 (2603:10b6:a03:167:cafe::c7) by BY5PR17CA0046.outlook.office365.com
 (2603:10b6:a03:167::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.13 via Frontend Transport; Tue,
 26 Aug 2025 11:44:33 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF000026C8.mail.protection.outlook.com (10.167.244.105) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Tue, 26 Aug 2025 11:44:32 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 26 Aug
 2025 06:44:31 -0500
Received: from [10.71.193.195] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Tue, 26 Aug 2025 06:44:30 -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>
X-Inumbo-ID: 0a04aec7-8272-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yDSrGssuwwDkgZ38vASG0+RamwbmSQkxeOBAxqdgLbyeYUMLzkGRozg/xaqJ7Z+x6F0T1hyBpn86SfJyApT6LwyR5VgpVyfVK/l6edAr5Tw4nkU0DQJFTJiPb9OQUsCIXnTRTpGZbsobYtYMYjFYr1WRTuhMO5BOBqfAQHo+N+zPZN1ZTdJrYcLRDMmjZ26qqasHH1N+VbrXPo+5auJTA+g9HJcPGFFr88SOiP0ZHdiFjhBNFWvKT2unJxtK90l6ZkeDoKkhxlSqOgBVpB6coalRk4uDGqy5ekt3ELy2vS8xq5WcNZWLTqUZZB10JGYPP/NfllIHqq21B3cNySIWQA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=KmEeKHw5fF1VWFWzOMvaj1PJz9JBVKGw848DtlPqHt4=;
 b=H3jNQjDrSRtMATqRCmhxbQfDDZCwxx4Lx4QPbf5yeKJp6oFLyLYUYW/g6fNtLUjwbe/7WeNJn7/VMnQXA0C0WhnIbFUaPFaYV9lk+Tc00xWmhXkBwDhwe+UW1OixknztRDMY3aeuvhVaT3TsGmvfxjUefN8EYjIDkSsnltH3HXxgVcIkJcqgbxznUeKVuJB3UfY+PvBtzDbtsTB1qd+w+rsQoPLvKSwsXrbxUFe3D0KL/FacutkRkkFNw6qWCFslqNis3Rq2yvro1AWMGlFZkqSca5DM4VcpSTXBuUUuax9IBw4Y9g7eGvk6BNCHPCJp1I7zKHIpJymh9Mh2fm3XWg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=xen.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=KmEeKHw5fF1VWFWzOMvaj1PJz9JBVKGw848DtlPqHt4=;
 b=EKCSqeR/+s5S/p9j1eFdDYnvnqlu3tGm0zWcXc/fuA5WrGPfUD7Bvtq2d0l/A/Tqel9v3kRaKmHLWJEWedMBJgrDrLAtTaByBRKaTFA5VJyrFbTsnV9fABbk8LogJ+SHbZAXGelM33nrSGN4/j9GVuCy8asMNi1UsUx+wYJftOE=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <474bffdc-f42e-4727-ab69-b11a67430adf@amd.com>
Date: Tue, 26 Aug 2025 13:44:24 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: smmuv3: Add cache maintenance for non-coherent
 SMMU queues
To: Julien Grall <julien@xen.org>, Dmytro Firsov <Dmytro_Firsov@epam.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Bertrand Marquis <bertrand.marquis@arm.com>, Rahul Singh
	<rahul.singh@arm.com>, Stefano Stabellini <sstabellini@kernel.org>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
References: <24567cc1630b1577c33939ff71d67fb2ebe5572f.1754491424.git.dmytro_firsov@epam.com>
 <cff3e94c-4476-4103-ae7e-19656703e755@amd.com>
 <5d48d927-7e1e-4b11-b429-0b94259154ab@epam.com>
 <e0c2b06e-947a-4d1d-864f-5785cfe00b1c@xen.org>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <e0c2b06e-947a-4d1d-864f-5785cfe00b1c@xen.org>
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: SJ1PEPF000026C8:EE_|SA0PR12MB7089:EE_
X-MS-Office365-Filtering-Correlation-Id: 97260351-21b7-4651-212a-08dde495ec60
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|376014|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?M05rcG9YTDl1cXBDTkdjN2JrM2Z2UFcwUy8yNmp2K25DRFNXczIzUGZqZ2VY?=
 =?utf-8?B?Z2VZRnBxSWorOGJZQWg1Q1pvRFZIOFhDNi92cjUvNnhOOHlDZVNEQjhCRjZR?=
 =?utf-8?B?d3oxeE0yR1U2Rkx3OHpYZnJKQnRNVUpqb1BIb2Q4dVBjQ0ZLQVhVVnFNNWhN?=
 =?utf-8?B?dDQ1VVhEV0w1KzI2WVpGLzFOK3RnRGt6WTRHRUVhN2xmZTdtOUEySGRhUDhu?=
 =?utf-8?B?K2cwdkNuVWx5cmhVKzBmcm9QYUFWM1M5OXZHVU5TRWNYaEt5THFYVzhtYnBa?=
 =?utf-8?B?M3k0cWFzU2VjSmx1YjdWTmQ3cy9Gd3FSYUw3VG8rdmh6RnBiaXVkTnNDWVBq?=
 =?utf-8?B?Y2hiUFVNTVYwZFZKaDNuZVZjdlpuWk5DRmJzS2MxQnFSdTFwZGpqeXVRc0Q5?=
 =?utf-8?B?NGNYb1VLVzViRkJOM282cDF6R3d6YzFkdTlIWm1Pb1IzSWtHRHFQVklnRU84?=
 =?utf-8?B?WlpYVDZIeEd1aVRpelNCdCtoT1JZcnhSMHBMaEU4S2gydCs5d2kxYlRMbVZp?=
 =?utf-8?B?eTdiYU95ZHRWVVpJdmdsTVJBMzVBVWs4RmJTei96NDY5eDVtZjRSUWdJbHIz?=
 =?utf-8?B?UlVZUjJ3cUs0NHQwY0lIaEF2eHhSaVdKOGs4VzVQc1BxNmMxUDZjU3RNVUhQ?=
 =?utf-8?B?dXhsd3cwV1lvekVRQnRoazhqQVNrYTh6YXRjUDQ2MXRROWZsbUNnem1JL0I5?=
 =?utf-8?B?ZVBkNU8vSUpWOHVZVG5oZGtrR0IrS2s4RXF2SFQ5WlpVS1o4emxHUnAwMkx6?=
 =?utf-8?B?cUswSVg4blNCNkhtWStUeWtlZVg2cXJEeHZjeURLNEJXSDRzbmVkWURZRWdX?=
 =?utf-8?B?UkpKWDN0TE9OZE1DaXVuQWNvMFMvK2p5T2UzS24wajJxUkFTVmpiWk0rWC9M?=
 =?utf-8?B?SFpDTGxEOHltVTZ3T0xnWXhqRmZlL1lEb1g5bm0vM05vRjFiTS9rVFV3YkRh?=
 =?utf-8?B?Vlg1Ry8vOWNuYkV2Y3FjTDRZekNDVWRNOUpZajlXTGRNMXFBaDAyWURLQ0E4?=
 =?utf-8?B?SSs0U0YycVRoM1AzckxJajFKYzBRdlN2Mzc1d2I4Q0tTMzd1c3JCRTBkdzdL?=
 =?utf-8?B?b3E2Wk9JRlVHRlNNTTRRRytwR1RIRVkzR0pNT1oyQ1FFNnBVVTZPYUZRRm5D?=
 =?utf-8?B?TWp1UVdQWG9oN0t2N0lWSHRnN0VGTDZROWZ6d09YSk5odC9LVkN6d2pYSDJB?=
 =?utf-8?B?VzZCUTU5dEQrNTd1ZFJDZFltMEM3bURKRW1xaHI5Q3NVK096Y1BidW1rc3BV?=
 =?utf-8?B?YkFoM2FVdVRNWWkyNFE3dDMrdzQ1RWtHQWQzMW5xbEc3OFNJK00wTzVsSXlV?=
 =?utf-8?B?Qlk1RHA4WG5hWHh0OXJXcU1DdXA4dmNaVDVTVXpHQUhWYXBMa2Z5ZVJFUjZ3?=
 =?utf-8?B?K2ZDSW4yVVVVRWkyVkpIU1dwMUpUSWhEeEFPbmxXazlrUUJOOUx0MWZhV0tJ?=
 =?utf-8?B?bWptN2NVTU9wLzlwMGFZZkdnUlh5cXhYZzJrMzhMWWZmQ0JRenFKd0tVZ05m?=
 =?utf-8?B?VVFnUDZ0Vmx2TXBlcm83Wk1TOGN5cmlZeGVSY09seUlVd09MVXBrZEhGUzBx?=
 =?utf-8?B?TUV5WHV5aEg4NDhSbXFkQ2hPMC9STXZFNEFTVmlDYmRFbXFKTTV2SlZ6Unpn?=
 =?utf-8?B?bnhVMnVjeU04aDRhU0RFTzlFY21KMExqY01mUHY3blR1M2h1N0dCUktjamhH?=
 =?utf-8?B?aFI3ZDBLeXliSzF1a2Vvd3ZSM1NQekZRQ1lrUXR1MnQxTnR5WHFhRHo3aklz?=
 =?utf-8?B?N0YrNW9jQTJGMzdYOU1uVENIMEFQanI2ZHdCOWlIOEJEYm5abzJuU2lOdjR6?=
 =?utf-8?B?dzJEYXdVUTkyTk9wakp1U0hnV2NJK09BUkw0M3lCdEFPZWRtK3lNUlF0MmJO?=
 =?utf-8?B?b2lYa0VyMllmRTJnSjRJTUpCaHBDQXZOZWh6aVlVQWZ1MmxYRzRUOUp0cHpN?=
 =?utf-8?B?WS9OZVpUZ2lmb0YxdDVUWVZiVTR5WE5IbkdjaEFMdVdPbnowWXpLY1BiY0p5?=
 =?utf-8?B?MWFrV3U1aTY4Q3p3SHU3K0ZKQkJTc1NnVklMaGFVNnJ6QzJORE5yTE0yekpo?=
 =?utf-8?Q?VRtOwq?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Aug 2025 11:44:32.2118
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 97260351-21b7-4651-212a-08dde495ec60
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF000026C8.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB7089



On 26/08/2025 12:48, Julien Grall wrote:
> Hi,
> 
> On 26/08/2025 10:47, Dmytro Firsov wrote:
>> On 22.08.25 11:12, Orzel, Michal wrote:
>> On 06/08/2025 16:58, Dmytro Firsov wrote:
>>
>>
>> According to the Arm SMMUv3 spec (ARM IHI 0070), a system may have
>> SMMU(s) that is/are non-coherent to the PE (processing element). In such
>> cases, memory accesses from the PE should be either non-cached or be
>> augmented with manual cache maintenance. SMMU cache coherency is reported
>> by bit 4 (COHACC) of the SMMU_IDR0 register and is already present in the
>> Xen driver. However, the current implementation is not aware of cache
>> maintenance for memory that is shared between the PE and non-coherent
>> SMMUs. It contains dmam_alloc_coherent() function, that is added during
>> Linux driver porting. But it is actually a wrapper for _xzalloc(), that
>> returns normal writeback memory (which is OK for coherent SMMUs).
>>
>> During Xen bring-up on a system with non-coherent SMMUs, the driver did
>> not work properly - the SMMU was not functional and halted initialization
>> at the very beginning due to a timeout while waiting for CMD_SYNC
>> completion:
>>
>>    (XEN) SMMUv3: /soc/iommu@fa000000: CMD_SYNC timeout
>>    (XEN) SMMUv3: /soc/iommu@fa000000: CMD_SYNC timeout
>>
>> To properly handle such scenarios, add the non_coherent flag to the
>> arm_smmu_queue struct. It is initialized using features reported by the
>> SMMU HW and will be used for triggering cache clean/invalidate operations.
>> This flag is not queue-specific (it is applicable to the whole SMMU), but
>> adding it to arm_smmu_queue allows us to not change function signatures
>> and simplify the patch (smmu->features, which contains the required flag,
>> are not available in code parts that require cache maintenance).
>>
>>
>> There are already a few places advertising the SMMU coherency:
>> 1) smmu->features
>> 2) d->iommu->features
>> 3) platform_features
>>
>> All of them are better places than queue struct (that as you pointed out is not
>> specific to coherency). I'd suggest maybe to use 3) and removing ro_after_init
>> if you don't have access to 1) and 2). All in all, providing yet another place
>> for coherency flag seems a bit too much.
>  > >
>> First of all, thank you very much for review! I will consider using
>> "platform_features" in next patch version, it looks more appropriate and
>> should be available within the whole driver. Also, I believe "ro_after_init"
>> is also OK, since I have no need to change it (only check if cache
>> maintenance should be performed).
> 
> I have to disagree with using "platform_features". Flushing the queue is 
> a per-SMMU decision. But looking at the code, I think passing the SMMU 
> to the caller would look wrong (what if you mistakenly pass the wrong 
> SMMU?). So I think a boolean per queue is the right appraoch.
For my own understanding: don't we consider SMMU coherency globally, not per
SMMU (hence why I suggested re-using the global flag)? We set the coherency
feature in the flags if all SMMUs support it. Do we want to diverge now and do
the flushing per SMMU?

~Michal



From xen-devel-bounces@lists.xenproject.org Tue Aug 26 13:15:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 13:15:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094388.1449694 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqtVp-000308-Mn; Tue, 26 Aug 2025 13:14:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094388.1449694; Tue, 26 Aug 2025 13:14: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 1uqtVp-000301-KB; Tue, 26 Aug 2025 13:14:57 +0000
Received: by outflank-mailman (input) for mailman id 1094388;
 Tue, 26 Aug 2025 13:14:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=pZJD=3G=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1uqtVo-0002zu-Gw
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 13:14:56 +0000
Received: from DB3PR0202CU003.outbound.protection.outlook.com
 (mail-northeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c200::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a74a1a96-827e-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 15:14:53 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by GV1PR03MB10894.eurprd03.prod.outlook.com (2603:10a6:150:202::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Tue, 26 Aug
 2025 13:14:50 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9052.019; Tue, 26 Aug 2025
 13:14: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>
X-Inumbo-ID: a74a1a96-827e-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=zLgR0RXgHUWUx8bl6RlxL+e+TZDWoMWynab84FW4Mt1TOyCKzxLcu+O0Xa2sEqCKa7A0hsttO2tXsTxchRjOoZQ/wrEmNyK10BrxIPxslMxfFLqiqxl3nKdWRD++i5v+z6RlR2psmcKKt5Iku7H5vhMjVzR0+hgUAaXrbv2MUIgQE4F8xJZudrOJEiRjnVm2uoD/7rf5hfNciUN+HUUSCf5p4zNGa+pKrN8p4zeeWho0mL1fh8+0xOnutjEXlkiljxtYKAP8yM+UAgNri8YS8SM+sJZnEkPVOW0zRE99LUpVyyRcxmw7MqPXLQqjJko4apAVYs2ZXm6NHsIwDRu4ig==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=9jVyVjiXzqcxNxQqZeMhfDy5QM7dp/C8zFY+rhrgafc=;
 b=i373He44g1uhmAPigarXJVfE3oTUYYb+QGe3HOEe9a+3h+2MxZ+tGvTtOcdS5xUiGEgVGPKupqTYh0LzLPL89EncWcG0tdujgJOs9KVEB4n5Aqa6+bqWVB/l4wk+Nl5MN2dYImyd1gypfI4em9PM8sxVGyferhWOVjUjN94aEjeP6DrcAUvS9E+CV/Hiu4GCH83FDXt0FV0mJWr5w2QbQ39jrMkmGLByKO+EHlygExzT5HTkzLfj9ixT0RsiXjIg0j57v7VmId01Mt+McgqZg1Hjg26HXg/rnfqq+C14DLwvKBHLSgu/H+nUpTnWOKa33CZZ5XXMuUoWHcxnd27L1A==
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=9jVyVjiXzqcxNxQqZeMhfDy5QM7dp/C8zFY+rhrgafc=;
 b=deXmxwhd3XowAkA74D/yNHDybwLMYPC4L3AjI5uqMIvZN9/SUABH3xGedeomLwfUDBiDOWZFETgr/cyVko8gbVlkNlYYDJk1gsaMTO8b2OjyxxyldkjDvy/J8mKdxpUdA8Nfuykk12ZNkqsoB2Xar6BNQZ8cxZ+DGpGAaLuK5FOE3GZxLCEo/vfZuUspm22/61x7Ef1+YeDkZ54c+v3MVRCVMiuYi3BGZ0W10Dv9wxZfNf/eDdnARqEUPC3AV5fmFKTlbWszP2SR0cH4qdvRSppteGYP7N5fQwjsoWEsmszDkc9Bsxv6JeZBwSuNzjAJqw0jtYt9YlL54dclzrsVgw==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Nicola Vetrini <nicola.vetrini@bugseng.com>, Jan Beulich
	<jbeulich@suse.com>
CC: Doug Goldstein <cardoe@cardoe.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Andrew Cooper <andrew.cooper3@citrix.com>, Anthony
 PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v2] misra: add deviation of Rule 17.7
Thread-Topic: [PATCH v2] misra: add deviation of Rule 17.7
Thread-Index: AQHcFlwdO9JZfbniJ0qkcPaDWppdx7R0jhQAgAADC4CAAFj1gA==
Date: Tue, 26 Aug 2025 13:14:50 +0000
Message-ID: <dc6d7445-3abb-485b-9651-15e3aea9ca52@epam.com>
References:
 <812b78119cee801662a31d39b556cb453aa69508.1756192362.git.dmytro_prokopchuk1@epam.com>
 <204a1526-7e3f-4b91-b1ee-95f3d89ff756@suse.com>
 <112a4ab83bf2abce09d4ff1b67671847@bugseng.com>
In-Reply-To: <112a4ab83bf2abce09d4ff1b67671847@bugseng.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV2PR03MB9572:EE_|GV1PR03MB10894:EE_
x-ms-office365-filtering-correlation-id: bfbe4c06-fa1d-49d2-a14a-08dde4a289f0
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|42112799006|1800799024|7416014|376014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?dEJzTERVR2huL0dlb3RhNytIOVp5TlVZK3hyeDQvd3pDNmNSMnV0SE9lVVJ1?=
 =?utf-8?B?aFU0bnlicGJzbk9KR3p6VzVCTGJYM3R4c3V4akwxaUs5UlRLQUZvYVpPZ2Rz?=
 =?utf-8?B?Zjk1cDFRbUZTc2V5ZjJLYmxSS3dIQTZmNE01RU9sQTRFUDE0Y0VIandqeEVu?=
 =?utf-8?B?ZnpqZHpubEhxMndJMHFmOUZXVXhqQjhwbmRSYi9vMlFRVldpdVV0MnBad3Bw?=
 =?utf-8?B?WmVGbGRNalBSbUV4U29SbTNDNHFGTktjc2hiaUVDVXdUd2JzWTZvMW1hbWVi?=
 =?utf-8?B?TlFSOWhJMEpIcnZyR3owM0FQWU94dnBMNHRmeUhhSGFKS0J5SGp1YVZKVzhN?=
 =?utf-8?B?OHhudU1hZDRHMGVnNGhieHJ2VTBUYjNpL3dyOTFUT0RtdEFQVHF3NEpka3J5?=
 =?utf-8?B?UUYvU2RKQm84KzVBeWdpUnJtUWNFTXpQRUFabE5oWnpyRVhiSklZL2xCY2Vi?=
 =?utf-8?B?UC9xYmhtWGpLZTBqanhlVGQxa3BwYUhVcTJKWDVIZ0J2WW82MklEalptTzJP?=
 =?utf-8?B?YU5waVgyVElBZjFUUjB4MDVSOUxPd295VVlvU0FBWE1TeWxJcU1iemxMa1VQ?=
 =?utf-8?B?K0ZMZjhTbURFN0hSS1EveE5FUnpYRWVXYUFLK3VEdWdRSzN5YmQrSmZ0K1dW?=
 =?utf-8?B?OFd0SHp1SG5mOW9teERqS1hCekJpZXlvMDNLbGwrVU9xeEtRcEJlbGZVNWM5?=
 =?utf-8?B?QXRLZFNCTWE2RXFQZ2Y3cGV2bUtkQUREZ1hXQTBHaWdFYzFiQzNEUHBmL3A2?=
 =?utf-8?B?MU9UVWs5eWVmcXNYQmNpU05tUldkazNSWHlxVkgrV3dUTjVjM0V6eStyWmZI?=
 =?utf-8?B?SFRpRjJpYXdjRlJadUc0TzRTRDU0VVNXN09MZ2hKU3hWQlFiRHRQaDREZ204?=
 =?utf-8?B?Q0l6UVpUd2Jqeko2NjNOd1Z1dnFRSGh3SUxDbGlqWnNtN1Rjd013MjZaK1dS?=
 =?utf-8?B?bUFDcE41bFRRU2R1ZHNRTlpHR1gyVmZzSUFWOTJXQ1ZJZ010aHRkcjRIUENI?=
 =?utf-8?B?Nm1SQ1ozZGZwdmpoU3k4RU1oRHNlcEVTTUNpTjNhVEtaZy90c1RaQXpLUnBV?=
 =?utf-8?B?Z1VwOHJPVUxUbVdOb09RSHMvemFXL0FEeFRrVjJ1TUlsdnBLUEVzQUtCRVJL?=
 =?utf-8?B?dlBFLzJDNFFmSmwwUCswWVJlVFJSTDA4OENQTnZJS2JIbWFJM0VqeGhMYS9z?=
 =?utf-8?B?b2dHNXZDaGZORTBzMWxVMGE1MnRnVXdkWW5ndWpHVkMyaHVTbXJGbmd3VzBU?=
 =?utf-8?B?RDBxa2ZUcDdTempPMGpqeTF1a2N6aDZnNG56WUtQNUdHbnA4dnFiM2tUakwz?=
 =?utf-8?B?a1RPVFM4bFJCcFlvTUhaaHRlRnhkUmJ5UElETE1nbUZ0Zll4TnpVNWhpWVhn?=
 =?utf-8?B?eklQNFFGYkZFVlg0R1doVWx3eStXc1hJYTRiTE9jZ3Q3Z2JYSUhOUWsydXpV?=
 =?utf-8?B?d1VIS3RDMHdyV1JIU1N3NnZzSVlzR1Q4NmQ5Nk5mUUVXU24xL3N3TnpzT2kr?=
 =?utf-8?B?cS9oK3BGYWtHbGZRdmpoMWVtY2tsQTZQUzdxZVl1QjZBOEhzamZteGhjSmY1?=
 =?utf-8?B?em9NMlcvWEtDeGRnQ0J2M0llcmNkREtVV2dHb3Q3ZDdDQkRaVzVJbHdxdXZz?=
 =?utf-8?B?VExCcStUdkNRYkZGK0U3OERLSFByZXAybXZRdWxkL3E5Q0x0dGFRVk16bVhR?=
 =?utf-8?B?MG1na09lcm5kdmdaR01DRWt1d2JXVmdicDVLL1BZVzdidUpUbktzWkxpYkZU?=
 =?utf-8?B?U2cyWVVvclZKOVg5eER1V29PMkkrYUpDbFpQUTRDbFNYa0t4MU9UNnhZKzFD?=
 =?utf-8?B?cmRXVzl5ZnYzUXJmZTFjamxLSVhVbmx5R3ZDWUJINUgxcmJETWdvVmlQakxI?=
 =?utf-8?B?azM3R1kxSmIrWEVXaEIvSjJLUnAweEJrRkFhRDNISk4xRnJ5RVhvY2Zmblha?=
 =?utf-8?B?eUhidnhRczRmaEV3ZmhlRHV1dmhpZHVhM01WRE83VEZXbHlsUXEvb1FLUUE1?=
 =?utf-8?B?Z0NJS2JaaTZnPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(42112799006)(1800799024)(7416014)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?WUNvOXg1eGtRdVZRVU1nL2ZwZWJIdENMWkx1c2Q3bWx3QWdMOGQ0Rmt4dDBh?=
 =?utf-8?B?Y1FQZWJQZnA0U3MzRm1PTFgxcXp4bUhlRXFucVpielZBcjYxZU1JaFE5anVq?=
 =?utf-8?B?S2lVSjRISzBJTlhSYk52eU1FMWtBSDFjVnFnU3RCMUhMRGpzVjIrY3MraWNs?=
 =?utf-8?B?WGNMdUdrK1hReU4yaXg0ZGRRZnRSTVNyN0w3OGY0V2NqZllKUUdXSTBvSlFJ?=
 =?utf-8?B?cDJXc3hZQWhJbVpURjMxOWJGRVlXa3ZyRkVESEhSdmd1VUNYUTBCQXl1NGdt?=
 =?utf-8?B?dlhzczFNMVJwa3hoQ3hRTU4vVUk2ZzFjM3NabUpQdHdtc3UwN1NPRlJPMTg3?=
 =?utf-8?B?VEdSUTcxR1BPaitRTXNjbFFrK0xEaER4NmtEaUowU2xWeWNnZDJYbEREMWFU?=
 =?utf-8?B?UmQ2WTQ3cFFHcWlveGp6bFd5N0hUVS9WdFlGNXFSN01hL09ZeWU3TFBMa3FF?=
 =?utf-8?B?TU1OYlcrY01FZTRNMUkvbFFKUEdBaktQY0N2N1hNOURXblIvc1Y0YlREK3Nw?=
 =?utf-8?B?Q21TWjJiRVlRS09hWVBraCsvTExoZTlUcEFuZGNrdVQ1cFMyejhwNWR5MElI?=
 =?utf-8?B?ZkhqTWx0Y21JSHZMeG8xMTlwaUhtU0kxdjQwU1pxdU9sYjlOZ1IrU285cFBY?=
 =?utf-8?B?Q3Z0WDFsTjVmZG1zYWdvRzhkLzhMbVhUZWlQbmlkL3l3S2JxeG5WcG5pTzk2?=
 =?utf-8?B?WVJ1dmZZV2FNTHVhWXoyQnVmMk5FamRQQi9wYmxuQ1hOTUFaTEpTNkpuVEFl?=
 =?utf-8?B?ZHVualZUVjZoUVV0K1VTUDhXMWxyeS92M1JPdndrMzRSUGZtTHg0MWFYT0dw?=
 =?utf-8?B?TS81SXhJZ0p6ZWRrR1A1S0tZQ0kxbTNxNWt0UzRIWk9zVGR5UU91ekRHbzhi?=
 =?utf-8?B?NjdjT1hPaDhjVk1vcmxydTdhR09XTGlpWEliR2M5NkZUOWdGeXJSa2w3R3BZ?=
 =?utf-8?B?MjBSYUQ5Z2dFcThzQWpKMEZ3QURwZE0xNWJGVGtoNktObkdsYi8yMUpxc0U0?=
 =?utf-8?B?QkMrQlVoS3Nsa2NrRXhObTdxOXVwek10WXl3WkVwa2NRUDFLTG5lbUFxZkRp?=
 =?utf-8?B?bjYrMDZ1d0pqb0x6RTd4SXJ2c1pQblMzV3ZjWEMwaEFxN2sySHZSeXRsb2JH?=
 =?utf-8?B?QTdDQTdzUmxPbGdvYXZtMkxRUHNhRWxLdzgyYWkrenViQjBjRGdUd3BNUUJw?=
 =?utf-8?B?cjladDd5VEE0Z1RkV2tEWko5eEFuakRDY3p6TVhIeHB1ZVN2RlB1VC9tQWox?=
 =?utf-8?B?ZGlDdEVsK1hHK0ZKZnAwc3ZCbEFYRkdTanRYRVFtd3g2YWk5bWlUVXd6Q2tt?=
 =?utf-8?B?dmpOOFQ5Q1Nic2hudlJrRjJYQkhoZkdkNVYyUU90MHB6Yy9oWU1ZbGYxVXhL?=
 =?utf-8?B?SWliaXo4VjNlWXpTMUZBa3VzSWtYZTN5YktpWGxnSGFZZUpYa0VBaWw0dmMz?=
 =?utf-8?B?MFR0OEdrcmIzSDhRSU8vWC90VzhNZ2d5SjRnRXIvZUxGRkJTaExJY2VVVXpG?=
 =?utf-8?B?dzBaNnNTOURJT1VvWW5CbWlKZEY0SU5iMUhaVjBkQTdOaEE1K2M1WndGd1o4?=
 =?utf-8?B?TFNJYytvQ3Q5aTdJSnMxRVc4OXBKVWN6NTUrZHlHQ1JuYjNPQzB0WEppMHUv?=
 =?utf-8?B?RGlnSHRnbUVmeklyeUJGK2JpK3cxVWJrcTgxSEV0dWNtWkxza1BoeGM0WHU5?=
 =?utf-8?B?QXFpU2dXN2xRa2tDMytlRmVMa2VrTGRHRTNQY05Ueitld3QxYkJmelVBK1A0?=
 =?utf-8?B?SE5zdDZkaVZncTl6VnlYcCtITzhLNjZXVEFHd3JjTFp2ZlRYWWdSZCtQOVV5?=
 =?utf-8?B?SWhFR0hXVzhXWEMydFdZQkFpa2NEdDNNd1pPaG1NcGZjV0I5UUh6S1kvaENX?=
 =?utf-8?B?SUJ0eXJKdWVDRjlHT1YwaUdOL0VrbG9WOHZaYStQWWl4TGhWSU9XNG4vOWxq?=
 =?utf-8?B?cW1QQXpvSUhEa0t4Vnk1RXRYaHREOWZhMDExbWdQMUJ3aU9sUzlhL0I5aU5k?=
 =?utf-8?B?TXB4VEMrNElzc1Nza0hjWXZGZ25TQnpPYXR6d1FQOFNFVFdGUXo2aVZXR1Y1?=
 =?utf-8?B?bEg1L1FhWUZjc0dYU3NIZng0dkM2OGhZRFUrTnhMc2dLb3AwNzFuNEd1dTZk?=
 =?utf-8?B?WVdMeVlyVHNtSjh0NzN2VHNhMFFhK1RXNXhGYzArSU4xTkk5K1cyY0ZZS3p0?=
 =?utf-8?B?U1E9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <F973438477E8C240945CB90FD27A3A69@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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: bfbe4c06-fa1d-49d2-a14a-08dde4a289f0
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Aug 2025 13:14:50.6222
 (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: 3UtNQkrgI+9oZeDlnsujP/OWoC3TzVkspeiT5Y331Wj9jz7WgEP3RUZAh+Lc2dlqgi+6CobOiNTlNOz166v/5O34KQherDjfiwNepY/dyFY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR03MB10894

DQoNCk9uIDgvMjYvMjUgMTA6NTYsIE5pY29sYSBWZXRyaW5pIHdyb3RlOg0KPiBPbiAyMDI1LTA4
LTI2IDA5OjQ1LCBKYW4gQmV1bGljaCB3cm90ZToNCj4+IE9uIDI2LjA4LjIwMjUgMDk6MzYsIERt
eXRybyBQcm9rb3BjaHVrMSB3cm90ZToNCj4+PiAtLS0gYS9hdXRvbWF0aW9uL2VjbGFpcl9hbmFs
eXNpcy9FQ0xBSVIvZGV2aWF0aW9ucy5lY2wNCj4+PiArKysgYi9hdXRvbWF0aW9uL2VjbGFpcl9h
bmFseXNpcy9FQ0xBSVIvZGV2aWF0aW9ucy5lY2wNCj4+PiBAQCAtNTc1LDYgKzU3NSwxMSBAQCBz
YWZlLiINCj4+PiDCoC1jb25maWc9TUMzQTIuUjE3LjcsY2FsbHMrPXtzYWZlLCAiYW55KCkiLCAN
Cj4+PiAiZGVjbChuYW1lKF9fYnVpbHRpbl9tZW1jcHl8fF9fYnVpbHRpbl9tZW1tb3ZlfHxfX2J1
aWx0aW5fbWVtc2V0fHwgDQo+Pj4gY3B1bWFza19jaGVjaykpIn0NCj4+PiDCoC1kb2NfZW5kDQo+
Pj4NCj4+PiArLWRvY19iZWdpbj0iSXQgaXMgc2FmZSB0byBkZXZpYXRlIGZ1bmN0aW9ucyBsaWtl
ICdtZW1jcHkoKScsIA0KPj4+ICdtZW1zZXQoKScsICdtZW1tb3ZlKCknLCBhcyB0aGV5IHJldHVy
biBhIHZhbHVlIHB1cmVseSBmb3IgY29udmVuaWVuY2UsDQo+Pj4gK3RoZWlyIHByaW1hcnkgZnVu
Y3Rpb25hbGl0eSAobWVtb3J5IG1hbmlwdWxhdGlvbikgcmVtYWlucyANCj4+PiB1bmFmZmVjdGVk
LCBhbmQgdGhlaXIgcmV0dXJuIHZhbHVlcyBhcmUgZ2VuZXJhbGx5IG5vbi1jcml0aWNhbCBhbmQg
DQo+Pj4gc2VsZG9tIHJlbGllZCB1cG9uLiINCj4+PiArLWNvbmZpZz1NQzNBMi5SMTcuNyxjYWxs
cys9e3NhZmUsICJhbnkoKSIsICJkZWNsKG5hbWUobWVtY3B5fHwgDQo+Pj4gbWVtc2V0fHxtZW1t
b3ZlKSkifQ0KPj4+ICstZG9jX2VuZA0KPj4+ICsNCj4+PiDCoCMNCj4+PiDCoCMgU2VyaWVzIDE4
Lg0KPj4+IMKgIw0KPj4+IC0tLSBhL2RvY3MvbWlzcmEvZGV2aWF0aW9ucy5yc3QNCj4+PiArKysg
Yi9kb2NzL21pc3JhL2RldmlhdGlvbnMucnN0DQo+Pj4gQEAgLTU3Niw2ICs1NzYsMTMgQEAgRGV2
aWF0aW9ucyByZWxhdGVkIHRvIE1JU1JBIEM6MjAxMiBSdWxlczoNCj4+PiDCoMKgwqDCoMKgwqDC
oMKgwqAgLSBfX2J1aWx0aW5fbWVtc2V0KCkNCj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAgLSBjcHVt
YXNrX2NoZWNrKCkNCj4+Pg0KPj4+ICvCoMKgICogLSBSMTcuNw0KPj4+ICvCoMKgwqDCoCAtIEl0
IGlzIHNhZmUgdG8gZGV2aWF0ZSBmdW5jdGlvbnMgbGlrZSAnbWVtY3B5KCknLCAnbWVtc2V0KCkn
LCANCj4+PiAnbWVtbW92ZSgpJywNCj4+PiArwqDCoMKgwqDCoMKgIGFzIHRoZXkgcmV0dXJuIGEg
dmFsdWUgcHVyZWx5IGZvciBjb252ZW5pZW5jZSwgdGhlaXIgcHJpbWFyeSANCj4+PiBmdW5jdGlv
bmFsaXR5DQo+Pj4gK8KgwqDCoMKgwqDCoCAobWVtb3J5IG1hbmlwdWxhdGlvbikgcmVtYWlucyB1
bmFmZmVjdGVkLCBhbmQgdGhlaXIgcmV0dXJuIA0KPj4+IHZhbHVlcyBhcmUNCj4+PiArwqDCoMKg
wqDCoMKgIGdlbmVyYWxseSBub24tY3JpdGljYWwgYW5kIHNlbGRvbSByZWxpZWQgdXBvbi4NCj4+
PiArwqDCoMKgwqAgLSBUYWdnZWQgYXMgYHNhZmVgIGZvciBFQ0xBSVIuDQo+Pg0KPj4gSSByZWFs
aXplIEkgbWF5IGJlIG92ZXJseSBuaXRwaWNreSBoZXJlLCBidXQgaW4gZmlsZXMgbmFtZWQgDQo+
PiBkZXZpYXRpb25zLiogSSBmaW5kIGl0DQo+PiBvZGQgdG8gcmVhZCAiSXQgaXMgc2FmZSB0byBk
ZXZpYXRlIC4uLiIuIEkgZnVydGhlciBmaW5kIHRoZSB1c2Ugb2YgDQo+PiAibGlrZSIgb2RkIHdo
ZW4NCj4+IHlvdSBlbnVtZXJhdGUgdGhlIGNvbXBsZXRlIHNldCBhbnl3YXkuDQoNClVwZGF0ZWQg
d29yZGluZyAocHJvYmFibHkgZm9yIHRoZSB2MywgaWYgaXQncyBmaW5lKToNCg0KVGhlIGZ1bmN0
aW9ucyAnbWVtY3B5KCknLCAnbWVtc2V0KCknLCBhbmQgJ21lbW1vdmUoKScgcmV0dXJuIHZhbHVl
cyANCnByaW1hcmlseSBmb3IgY29udmVuaWVuY2UuDQpUaGUgY29yZSBmdW5jdGlvbmFsaXR5IG9m
IHRoZXNlIGZ1bmN0aW9ucyAobWVtb3J5IG1hbmlwdWxhdGlvbikgcmVtYWlucyANCnVuYWZmZWN0
ZWQsIGFuZCB0aGVpciByZXR1cm4gdmFsdWVzDQphcmUgZ2VuZXJhbGx5IG5vbi1jcml0aWNhbCBh
bmQgc2VsZG9tIHJlbGllZCB1cG9uLiBUaGVyZWZvcmUsIGRldmlhdGlvbnMgDQpmcm9tIHRoaXMg
cnVsZSByZWdhcmRpbmcgdGhlaXIgdXNlDQpjYW4gYmUgY29uc2lkZXJlZCBzYWZlLg0KDQpEbXl0
cm8uDQoNCj4+DQo+PiBJIHdvbmRlciB3aGV0aGVyIHRoZSBkZXZpYXRpb24gd2FudHMgZ2VuZXJh
bGl6aW5nIGFueXdheTogDQo+PiBJbmZvcm1hdGlvbmFsIHJldHVybg0KPj4gdmFsdWVzIGFyZSBn
ZW5lcmFsbHkgb2theSB0byBpZ25vcmUuIFRoYXQgaXMsIHRoZSBFY2xhaXIgY29uZmlndXJhdGlv
biANCj4+IHdvdWxkIGJlDQo+PiBsaW1pdGVkIHRvIHRoZSB0aHJlZSBmdW5jdGlvbnMgZm9yIG5v
dywgYnV0IHRoZSB0ZXh0IC8gY29tbWVudCBjb3VsZCANCj4+IGFscmVhZHkgYmUNCj4+IGJyb2Fk
ZXIuIFRoZW4sIGZvciBleGFtcGxlLCBvcGVuLWNvZGVkIHVzZXMgb2YgdGhlIGNvcnJlc3BvbmRp
bmcgDQo+PiBidWlsdGluIGZ1bmN0aW9ucw0KPj4gd291bGQgYWxzbyBiZSBjb3ZlcmVkIHJpZ2h0
IGF3YXkuDQo+Pg0KPiANCj4gV2hpbGUgSSB1bmRlcnN0YW5kIHRoZSBwcmFnbWF0aWMgcmVhc29u
aW5nLCBmcm9tIGEgTUlTUkEgY29tcGxpYW5jZSANCj4gc3RhbmRwb2ludCBpdCB3b3VsZCBiZSBi
ZXR0ZXIgbm90IHRvIG1ha2UgdGhlIHdyaXR0ZW4ganVzdGlmaWNhdGlvbiBhbmQgDQo+IHRoZSBh
Y3R1YWwgZGV2aWF0aW9uIGRpdmVyZ2UsIGFuZCB0aGVuIHdpZGUgYm90aCB0aGUgRUNMQUlSIA0K
PiBjb25maWd1cmF0aW9uIGFuZCBpdHMganVzdGlmaWNhdGlvbiBzdWl0YWJseSBvbmNlIG5ldyBj
YXNlcyB3YW50IHRvIGJlIA0KPiBkZXZpYXRlZC4gT3RoZXIgdGhhbiB0aGF0LA0KPiANCj4gUmV2
aWV3ZWQtYnk6IE5pY29sYSBWZXRyaW5pIDxuaWNvbGEudmV0cmluaUBidWdzZW5nLmNvbT4NCj4g
DQo=


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 13:18:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 13:18:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094398.1449706 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqtZe-0003Yr-7T; Tue, 26 Aug 2025 13:18:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094398.1449706; Tue, 26 Aug 2025 13: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 1uqtZe-0003Yk-2X; Tue, 26 Aug 2025 13:18:54 +0000
Received: by outflank-mailman (input) for mailman id 1094398;
 Tue, 26 Aug 2025 13:18:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=dnfn=3G=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1uqtZc-0003Ye-Hv
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 13:18:53 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 34118aa7-827f-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 15:18:49 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 271134EE3C0D;
 Tue, 26 Aug 2025 15:18:48 +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>
X-Inumbo-ID: 34118aa7-827f-11f0-b898-0df219b8e170
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=1756214328;
	b=DFrdtsKvb3qM7POoTeQ0ILGngfMVdO50sIsXtaFD1TNPN0oaNSXu2X6go3DQztp+kb4A
	 O40WBrfzF65zr7R3yu4MmQT8Qatp92YMshZS/CC3buXJcZ9dSbhYywXDzAcbcCAMgeLwt
	 nrDlzKcBhEp/YZ5tC9JiYL1gaIeLkiuZVh7h8BTpNDg945TllZyzhijU9Klhlr+I+sKha
	 0NBSqvG6f/yXfMHgvYHNfySuhvvQf+5hwt+Wb3VrYGG2ckioBsB/sScTC+jqemzWKww/s
	 mIpJOQQyt2isawVK3LDp95uXu+XAz3NvoO0cby467+ZGZ2lIUQ7R8aNiexikFDEAeoI1e
	 ejd9jueVAZp6kkuwpohVl6wzCoX4+RekiI+eHimyKZY/3+4wSEg41Qko99/9Dx1NYt6Yv
	 AaFcEJENeGmh/Wg8Lxyw1awdn6Ny2U/c4qQcrSW2+gcDO+jZN6750E9pSpcXoZw2c+fyH
	 Lcw1/B9mv+nV/HD64FX3H4Wj67jQ3L7XDPVGZjQ8R34NJxOTjiisnBhQTZNbAzVqM3Htp
	 ngY1c1rmk+KHIY1hHPZSl7Cp4e4QGlIZtMrfxCLI2n+SVAieG94qA5CkIQRjE0lAwbgFS
	 aITZB10dCIsFvAi53lhBp+/ucupvRJ9wHRCsfmbiE/UlM56Jl00h6XRtZVigkJE=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1756214328;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=mvN2vKUuIhWjjpE/sSy78Bf6+wHBAQKLnC289fBo6vw=;
	b=sjEGCPjWLsfl20k/tvwEX4FPdI02NqSWtwuKSjbhgW50AlgkCPQuZdr+uuypyDra/n8E
	 nvxJZb3bt1C5O3Yg8e0ODd7oWjWtKEjNhSyUC/8doutcZu1+FdcAxwdsNTtn79pUeIrSN
	 a5fyrU29CFZ20k3/DjmzwJra6UN2amzksp3JANYwOFBqPW6P+UT6luspQqFbDtCuODoZo
	 rnTxZLRs61JuvOuMmx6603rnt/iAfL9MThF+fPxynsnNyz3GZ2CAl2yEXXhvZ3kY/ZFZr
	 1cMEBYuCufAxSiVQEc9bx1TV5vtu4emckdgMFjmLafFxNA+PfTJPJQ2WnWBrVS8tjwvKa
	 QouUNq/botCdWfzvIeBTnDK9N/mL8gGGGQp6lHVc9/dgQV0QRut2x0lCw1SeeL2lOFA4L
	 cZxfuXYfsVUXLz5HfcEPXkTzUSCX5tE0XU+LHlAH9J6dPGCBdFUSV9hA6jegcarGU5+YF
	 0oTMn+nJVzYCZmtR/PFQ72J9Yji+2AGzNzzu1HwXAuTFYwfx/qHWrmpb4IO03xEdcuuxc
	 8OerEkCe+zYIKKbD6+LSjJnAwWvm6P0VGhFDFZJZMxrfJnoAtW3hufZWCP/q2MNg3zgd5
	 IZI04QbfQ9EeT9sRsBgQcvdKGqJwI74Z3/lZCZ7WzkiHt6BVNTZi/mqx0vA6PwI=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1756214328; bh=xQHjhOJooiPiBCpe9Vmc/aeThbuYe8+70FQKBf69xkQ=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=e/WEJADT0eyvbwtSIqIcVYURdL5eH1fwdndno6T8rKhvzKM378Z8UeswCt4vtyj2d
	 qieB13DJKejg34Ex7qu/KTl3fbP2AtDWU2SZ4MSUogmxS57LOmA9jJ2hWxdcfW/iaP
	 VdCT7RYyvCuhF4sp29SO7Pq8Rev9lIfvOfd7P1RN+5FEWH/2NYppkLvWCBn2rcZQDY
	 fIssG4DOJHLHPbzHo/QZs/3o9NuGXL+Kw1N3o8P6F/LErfigvo+nvlQChA/K4JhsVp
	 oK25bQ+KSkGGYiqJIppLUpyBeuaLqsejqNcjXPWAKMiF/W13bdh5KINxhXn4Hgl+6I
	 4R/ytQ5Tu87bw==
MIME-Version: 1.0
Date: Tue, 26 Aug 2025 15:18:48 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: Jan Beulich <jbeulich@suse.com>, Doug Goldstein <cardoe@cardoe.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Andrew Cooper
 <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2] misra: add deviation of Rule 17.7
In-Reply-To: <dc6d7445-3abb-485b-9651-15e3aea9ca52@epam.com>
References: <812b78119cee801662a31d39b556cb453aa69508.1756192362.git.dmytro_prokopchuk1@epam.com>
 <204a1526-7e3f-4b91-b1ee-95f3d89ff756@suse.com>
 <112a4ab83bf2abce09d4ff1b67671847@bugseng.com>
 <dc6d7445-3abb-485b-9651-15e3aea9ca52@epam.com>
Message-ID: <134e8e34582445522e82584aff3b7229@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

On 2025-08-26 15:14, Dmytro Prokopchuk1 wrote:
> On 8/26/25 10:56, Nicola Vetrini wrote:
>> On 2025-08-26 09:45, Jan Beulich wrote:
>>> On 26.08.2025 09:36, Dmytro Prokopchuk1 wrote:
>>>> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
>>>> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
>>>> @@ -575,6 +575,11 @@ safe."
>>>> Â -config=MC3A2.R17.7,calls+={safe, "any()",
>>>> "decl(name(__builtin_memcpy||__builtin_memmove||__builtin_memset||
>>>> cpumask_check))"}
>>>> Â -doc_end
>>>> 
>>>> +-doc_begin="It is safe to deviate functions like 'memcpy()',
>>>> 'memset()', 'memmove()', as they return a value purely for 
>>>> convenience,
>>>> +their primary functionality (memory manipulation) remains
>>>> unaffected, and their return values are generally non-critical and
>>>> seldom relied upon."
>>>> +-config=MC3A2.R17.7,calls+={safe, "any()", "decl(name(memcpy||
>>>> memset||memmove))"}
>>>> +-doc_end
>>>> +
>>>> Â #
>>>> Â # Series 18.
>>>> Â #
>>>> --- a/docs/misra/deviations.rst
>>>> +++ b/docs/misra/deviations.rst
>>>> @@ -576,6 +576,13 @@ Deviations related to MISRA C:2012 Rules:
>>>> Â Â Â Â Â Â Â Â Â  - __builtin_memset()
>>>> Â Â Â Â Â Â Â Â Â  - cpumask_check()
>>>> 
>>>> +Â Â  * - R17.7
>>>> +Â Â Â Â  - It is safe to deviate functions like 'memcpy()', 'memset()',
>>>> 'memmove()',
>>>> +Â Â Â Â Â Â  as they return a value purely for convenience, their primary
>>>> functionality
>>>> +Â Â Â Â Â Â  (memory manipulation) remains unaffected, and their return
>>>> values are
>>>> +Â Â Â Â Â Â  generally non-critical and seldom relied upon.
>>>> +Â Â Â Â  - Tagged as `safe` for ECLAIR.
>>> 
>>> I realize I may be overly nitpicky here, but in files named
>>> deviations.* I find it
>>> odd to read "It is safe to deviate ...". I further find the use of
>>> "like" odd when
>>> you enumerate the complete set anyway.
> 
> Updated wording (probably for the v3, if it's fine):
> 
> The functions 'memcpy()', 'memset()', and 'memmove()' return values
> primarily for convenience.
> The core functionality of these functions (memory manipulation) remains
> unaffected, and their return values
> are generally non-critical and seldom relied upon. Therefore, 
> deviations
> from this rule regarding their use
> can be considered safe.
> 

The last sentence reads a little strangely. I would write: "Therefore, 
violations of this rule due to these functions are deemed safe."

> Dmytro.
> 
>>> 
>>> I wonder whether the deviation wants generalizing anyway:
>>> Informational return
>>> values are generally okay to ignore. That is, the Eclair 
>>> configuration
>>> would be
>>> limited to the three functions for now, but the text / comment could
>>> already be
>>> broader. Then, for example, open-coded uses of the corresponding
>>> builtin functions
>>> would also be covered right away.
>>> 
>> 
>> While I understand the pragmatic reasoning, from a MISRA compliance
>> standpoint it would be better not to make the written justification 
>> and
>> the actual deviation diverge, and then wide both the ECLAIR
>> configuration and its justification suitably once new cases want to be
>> deviated. Other than that,
>> 
>> Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
>> 

-- 
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 Aug 26 13:42:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 13:42:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094410.1449715 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqtvw-0007MQ-VJ; Tue, 26 Aug 2025 13:41:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094410.1449715; Tue, 26 Aug 2025 13:41: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 1uqtvw-0007MJ-RX; Tue, 26 Aug 2025 13:41:56 +0000
Received: by outflank-mailman (input) for mailman id 1094410;
 Tue, 26 Aug 2025 13:41:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+/mc=3G=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1uqtvv-0007MD-V4
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 13:41:56 +0000
Received: from mail-lj1-x22a.google.com (mail-lj1-x22a.google.com
 [2a00:1450:4864:20::22a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6d601b86-8282-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 15:41:54 +0200 (CEST)
Received: by mail-lj1-x22a.google.com with SMTP id
 38308e7fff4ca-333f901b2d2so45618511fa.2
 for <xen-devel@lists.xenproject.org>; Tue, 26 Aug 2025 06:41:54 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6d601b86-8282-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756215713; x=1756820513; 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=uaABR+zidYXjflvbFlucBVxL3yXOSA19cvQ9yVn/FvI=;
        b=Ml5swrnWAia/+iohSRWTMMtozNCMnypP5cmMZQ7P8hhDRyyMSjRofsyCYFzci5YDsX
         saxhfzRD6c5dArIg1D0wwSp9sN3UF/dE1g+QwV2b1IEe+YLBwaUBqyp+IT4GK/UrlRtj
         iB+UXRPMmDZsUrSzG7hrVuIzw49ZsBnoPtB0TfUUuNPaXa6X9Mf9kdCYCWKJp+3ZCF7Z
         XryKk+CPOWshBATjO5nzcud2R4672VqMZUJxmWA9BUjg8JsveyKd7rIK31UWqMzLtThc
         HxyYI0p6sd2BuZ26DKNcFpFxLmTwtuFt+6dGRfNZOXPOBR+fmPsGHDZhtI7GggUA9WXf
         5jxQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756215713; x=1756820513;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=uaABR+zidYXjflvbFlucBVxL3yXOSA19cvQ9yVn/FvI=;
        b=vrlJnZ9ObWkyXqGRAT+H7YPSkLF/hrTYu+yMXqo5UDgiYShy0jS74Et0E3N48TyhwB
         LJUq7GOFm7d5DFOTROvtEQIQPvkr/hdKwILuK5rziTHt6007X6hZ4Jd25EbsmDjXq6jK
         w1UToRu0U2TYqs6m8N/WldpwjKoLuEAaJzyBMs+FSwbIzIESEqaWqF2YfJe9Pbmr2PKX
         SHzE5bgjM67PbcGCwxLaA/rfsjsh0KBYiaBxXX2Nc1+W85HPDOOwwPxGKxjpmMCqvN9W
         S2uQZVoBdGc8uIq3Q/cBA4rnbYNRZsz5lQ7nbo8nPqnudpfq8zaH7guVse+HqXMC0dlE
         zM2g==
X-Gm-Message-State: AOJu0Yxms2B9dgT9Vp7JldZsxuVjeORrAfpBxW+tNZU8aeppNg0jho7C
	JQV4O/QWtUqoY3Wc5GbVktoxGl6HnB+I0U5bm0ajHXGT6RcDLXOsMC7c+sTseLxaR3GT3ANrO25
	J4vc/Aiy7XtDvXfywOTCvCka2zzj9emY=
X-Gm-Gg: ASbGncsU+mHNTNt5P0e+BBqo/biZhWNUtdWIrxF3NzefNbehXJTUQbaY7wG5UTepeSP
	yHN7X4BMEwUnNRmaNqkLpo3u+seATZTkyDYKlGm0lzzy2ekxU0lkBhibTTr9CaTT23/ehaBKNO9
	tFW0dvV3IoZ7MCWNzR307Qf1M22EvIeGztkw6ayvV8g9ChsxzeKfrVvB5UG7WZaZi9PH+EKSfWh
	a/nPA==
X-Google-Smtp-Source: AGHT+IEAHNz9GyYuT/1kzbi5vPFnU5nHLntqBXki2ihK/H/rNfYnvgVAUoTw3jpjmIOBT21JWca1u0ZBIi9Do+kmbl0=
X-Received: by 2002:a2e:b8d5:0:b0:336:7df1:7616 with SMTP id
 38308e7fff4ca-3367df1a4camr14695241fa.44.1756215713136; Tue, 26 Aug 2025
 06:41:53 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1754943874.git.mykola_kvach@epam.com> <db677462d1b5b698db417182c05c3a6c3a17c0d0.1754943874.git.mykola_kvach@epam.com>
 <878qjac3ec.fsf@epam.com>
In-Reply-To: <878qjac3ec.fsf@epam.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 26 Aug 2025 16:41:41 +0300
X-Gm-Features: Ac12FXxCUunu6NI7tWVtjmd_51yYBkNoQlrYnUkn-l7uktYR4SkDHuycvnd2iKw
Message-ID: <CAGeoDV-ApvduZ5vb_OgU+iSMh9rywxGrDBPUWV8pC+T-18shqg@mail.gmail.com>
Subject: Re: [PATCH v5 02/12] xen/arm: gic-v2: Implement GIC suspend/resume functions
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
	Mirela Simonovic <mirela.simonovic@aggios.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, 
	Michal Orzel <michal.orzel@amd.com>, Saeed Nowshadi <saeed.nowshadi@xilinx.com>, 
	Mykyta Poturai <Mykyta_Poturai@epam.com>, Mykola Kvach <Mykola_Kvach@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Volodymyr,

On Sat, Aug 23, 2025 at 3:01=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>
> >
> > 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.
> >
> > Tested on Xilinx Ultrascale+ MPSoC with (and without) powering down
> > the GIC.
>
> I think you can drop this sentence, as I am pretty sure this patch
> wasn't tested on Ultrascale+ for last five(?) years..

Ok, I=E2=80=99ll drop that sentence.

>
> >
> > 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 v4:
> >   - Add error logging for allocation failures
> >
> > Changes in v3:
> >   - Drop asserts and return error codes instead.
> >   - Wrap code with CONFIG_SYSTEM_SUSPEND.
> >
> > Changes in v2:
> >   - Minor fixes after review.
> > ---
> >  xen/arch/arm/gic-v2.c          | 154 +++++++++++++++++++++++++++++++++
> >  xen/arch/arm/gic.c             |  29 +++++++
> >  xen/arch/arm/include/asm/gic.h |  12 +++
> >  3 files changed, 195 insertions(+)
> >
> > diff --git a/xen/arch/arm/gic-v2.c b/xen/arch/arm/gic-v2.c
> > index b23e72a3d0..dce8f5e924 100644
> > --- a/xen/arch/arm/gic-v2.c
> > +++ b/xen/arch/arm/gic-v2.c
> > @@ -1098,6 +1098,151 @@ static int gicv2_iomem_deny_access(struct domai=
n *d)
> >      return iomem_deny_access(d, mfn, mfn + nr);
> >  }
> >
> > +#ifdef CONFIG_SYSTEM_SUSPEND
> > +
> > +/* GICv2 registers to be saved/restored on system suspend/resume */
> > +struct gicv2_context {
> > +    /* GICC context */
> > +    uint32_t gicc_ctlr;
> > +    uint32_t gicc_pmr;
> > +    uint32_t gicc_bpr;
> > +    /* GICD context */
> > +    uint32_t gicd_ctlr;
> > +    uint32_t *gicd_isenabler;
> > +    uint32_t *gicd_isactiver;
> > +    uint32_t *gicd_ipriorityr;
> > +    uint32_t *gicd_itargetsr;
> > +    uint32_t *gicd_icfgr;
> > +};
> > +
> > +static struct gicv2_context gicv2_context;
> > +
> > +static int gicv2_suspend(void)
> > +{
> > +    unsigned int i;
> > +
> > +    if ( !gicv2_context.gicd_isenabler )
> > +    {
> > +        dprintk(XENLOG_WARNING, "%s:%d: GICv2 suspend context not allo=
cated!\n",
> > +            __func__, __LINE__);
>
> Should this be ASSERT(gicv2_context.gicd_isenabler) ? Or do we expect
> that this can happen during normal runtime?
>
> Also, you don't need to print __func__ and __LINE__ as dprintk does this
> for you already:
>
> #define dprintk(lvl, fmt, args...) \
>     printk(lvl "%s:%d: " fmt, __FILE__, __LINE__, ## args)
>
>
>
> > +        return -ENOMEM;
> > +    }
> > +
> > +    /* Save GICC configuration */
> > +    gicv2_context.gicc_ctlr =3D readl_gicc(GICC_CTLR);
> > +    gicv2_context.gicc_pmr =3D readl_gicc(GICC_PMR);
> > +    gicv2_context.gicc_bpr =3D readl_gicc(GICC_BPR);
> > +
> > +    /* Save GICD configuration */
> > +    gicv2_context.gicd_ctlr =3D readl_gicd(GICD_CTLR);
> > +
> > +    for ( i =3D 0; i < DIV_ROUND_UP(gicv2_info.nr_lines, 32); i++ )
> > +        gicv2_context.gicd_isenabler[i] =3D readl_gicd(GICD_ISENABLER =
+ i * 4);
> > +
> > +    for ( i =3D 0; i < DIV_ROUND_UP(gicv2_info.nr_lines, 32); i++ )
> > +        gicv2_context.gicd_isactiver[i] =3D readl_gicd(GICD_ISACTIVER =
+ i * 4);
> > +
>
> I think you can merge this two loops

Ok, I'll do it

>
> > +    for ( i =3D 0; i < DIV_ROUND_UP(gicv2_info.nr_lines, 4); i++ )
> > +        gicv2_context.gicd_ipriorityr[i] =3D readl_gicd(GICD_IPRIORITY=
R + i * 4);
> > +
> > +    for ( i =3D 0; i < DIV_ROUND_UP(gicv2_info.nr_lines, 4); i++ )
> > +        gicv2_context.gicd_itargetsr[i] =3D readl_gicd(GICD_ITARGETSR =
+ i * 4);
> > +
>
> And this two as well

Ok

>
> > +    for ( i =3D 0; i < DIV_ROUND_UP(gicv2_info.nr_lines, 16); i++ )
> > +        gicv2_context.gicd_icfgr[i] =3D readl_gicd(GICD_ICFGR + i * 4)=
;
> > +
> > +    return 0;
> > +}
> > +
> > +static void gicv2_resume(void)
> > +{
> > +    unsigned int i;
> > +
> > +    if ( !gicv2_context.gicd_isenabler )
> > +    {
> > +        dprintk(XENLOG_WARNING, "%s:%d: GICv2 suspend context not allo=
cated!\n",
> > +            __func__, __LINE__);
>
> the same comment as for gicv2_suspend(). Actually, we should not reach
> here in any case.

You mean we should just drop the check, right?

>
> > +        return;
> > +    }
> > +
> > +    gicv2_cpu_disable();
> > +    /* Disable distributor */
> > +    writel_gicd(0, GICD_CTLR);
> > +
> > +    /* Restore GICD configuration */
> > +    for ( i =3D 0; i < DIV_ROUND_UP(gicv2_info.nr_lines, 32); i++ ) {
> > +        writel_gicd(0xffffffff, GICD_ICENABLER + i * 4);
> > +        writel_gicd(gicv2_context.gicd_isenabler[i], GICD_ISENABLER + =
i * 4);
> > +    }
> > +
> > +    for ( i =3D 0; i < DIV_ROUND_UP(gicv2_info.nr_lines, 32); i++ ) {
> > +        writel_gicd(0xffffffff, GICD_ICACTIVER + i * 4);
> > +        writel_gicd(gicv2_context.gicd_isactiver[i], GICD_ISACTIVER + =
i * 4);
> > +    }
> > +
> > +    for ( i =3D 0; i < DIV_ROUND_UP(gicv2_info.nr_lines, 4); i++ )
> > +        writel_gicd(gicv2_context.gicd_ipriorityr[i], GICD_IPRIORITYR =
+ i * 4);
> > +
> > +    for ( i =3D 0; i < DIV_ROUND_UP(gicv2_info.nr_lines, 4); i++ )
> > +        writel_gicd(gicv2_context.gicd_itargetsr[i], GICD_ITARGETSR + =
i * 4);
> > +
> > +    for ( i =3D 0; i < DIV_ROUND_UP(gicv2_info.nr_lines, 16); i++ )
> > +        writel_gicd(gicv2_context.gicd_icfgr[i], GICD_ICFGR + i * 4);
> > +
> > +    /* Make sure all registers are restored and enable distributor */
> > +    writel_gicd(gicv2_context.gicd_ctlr | GICD_CTL_ENABLE, GICD_CTLR);
> > +
> > +    /* Restore GIC CPU interface configuration */
> > +    writel_gicc(gicv2_context.gicc_pmr, GICC_PMR);
> > +    writel_gicc(gicv2_context.gicc_bpr, GICC_BPR);
> > +
> > +    /* Enable GIC CPU interface */
> > +    writel_gicc(gicv2_context.gicc_ctlr | GICC_CTL_ENABLE | GICC_CTL_E=
OI,
> > +                GICC_CTLR);
> > +}
> > +
> > +static void gicv2_alloc_context(struct gicv2_context *gc)
> > +{
> > +    uint32_t n =3D gicv2_info.nr_lines;
> > +
> > +    gc->gicd_isenabler =3D xzalloc_array(uint32_t, DIV_ROUND_UP(n, 32)=
);
> > +    if ( !gc->gicd_isenabler )
> > +        goto err_free;
> > +
> > +    gc->gicd_isactiver =3D xzalloc_array(uint32_t, DIV_ROUND_UP(n, 32)=
);
> > +    if ( !gc->gicd_isactiver )
> > +        goto err_free;
> > +
> > +    gc->gicd_itargetsr =3D xzalloc_array(uint32_t, DIV_ROUND_UP(n, 4))=
;
> > +    if ( !gc->gicd_itargetsr )
> > +        goto err_free;
> > +
> > +    gc->gicd_ipriorityr =3D xzalloc_array(uint32_t, DIV_ROUND_UP(n, 4)=
);
> > +    if ( !gc->gicd_ipriorityr )
> > +        goto err_free;
> > +
> > +    gc->gicd_icfgr =3D xzalloc_array(uint32_t, DIV_ROUND_UP(n, 16));
> > +    if ( !gc->gicd_icfgr )
> > +        goto err_free;
> > +
> > +    return;
> > +
> > + err_free:
> > +    dprintk(XENLOG_ERR,
> > +            "%s:%d: failed to allocate memory for GICv2 suspend contex=
t\n",
> > +            __func__, __LINE__);
>
> Okay, this partially answers to my previous question about memory
> allocation. So it is possible to have active system without space for
> GIC context... But this basically renders system un-suspendable. I think
> this warrants non-debug print to warn user that suspend will be not
> available.

Ok, I=E2=80=99ll add a regular print instead. So your comments about assert=
s are
irrelevant in this case, right?

>
> [...]
>
> --
> WBR, Volodymyr

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 13:42:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 13:42:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094412.1449725 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqtwE-0007i2-8l; Tue, 26 Aug 2025 13:42:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094412.1449725; Tue, 26 Aug 2025 13:42:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqtwE-0007ht-5S; Tue, 26 Aug 2025 13:42:14 +0000
Received: by outflank-mailman (input) for mailman id 1094412;
 Tue, 26 Aug 2025 13:42:12 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+/mc=3G=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1uqtwC-0007ex-P5
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 13:42:12 +0000
Received: from mail-lf1-x134.google.com (mail-lf1-x134.google.com
 [2a00:1450:4864:20::134])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 774c437f-8282-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 15:42:10 +0200 (CEST)
Received: by mail-lf1-x134.google.com with SMTP id
 2adb3069b0e04-55f3a3f2f60so2488963e87.2
 for <xen-devel@lists.xenproject.org>; Tue, 26 Aug 2025 06:42: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>
X-Inumbo-ID: 774c437f-8282-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756215730; x=1756820530; 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=nPDZW4RtYOdvhdvtHbUMHTmwCLpttVwtYw2VpfuKeIo=;
        b=G5zgCJJGH+bj/1YqdOcrmUKySLedYAhxyC4+jQCU3G5t+dJRXM0iX36JYIBqlTbxwV
         XfbC04KGVqE5yylDjny5dhMCGmBdS8xnGMSfgB71Z3jf1aOpkkpRdjOeEDZJI+BxnXyW
         uobn5Z7gjrgUIMwQbZYz3PoItamFGbqXULqTI2AmjWDE1WF3/jj3M8z7AqhBcON3fVjs
         FIhnk3tg5S+LmD2caYugRc5d4reg3RAnGCCuYL00nXLc9oFeAoJ3fquIK1QU4TC3u4VP
         npqTt+bSyjZqS9Mi2doZ4wtQ0aoWrghLIQ9W1tKnn/wqrzzMfQHUvsH7p5wMdWN9y9h3
         Orkg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756215730; x=1756820530;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=nPDZW4RtYOdvhdvtHbUMHTmwCLpttVwtYw2VpfuKeIo=;
        b=JSXlmkZ8wI8H3Tq1avNQL4npUcVKfbVGUAkqDoRNkeLReXC35UbI8iR3Xg6tXytaXB
         1eCkqbZ/FFU7cA8NQttQOsFsYMliWFFLLg1320oW3qcMCcq+BAsMPu39fToCfMInwim5
         +hWFZdCBf4lwCb0TPBAwaNvm2sxtU57rfeAsJWHCtQVDGhbR5z/3jlq5nK7+U5xt6f83
         NsCgGW/rYvKNW/mfrSjcXISIANctKbZTE5TsSwz/4JwQoucz4sp/98ALtP7H6ZLmR9cd
         YCzAQIcTzwt65Ney8gxvLPDhOHkIV+GnowkK89PaViSTygWjbCbKW/QqKCDO8ChHh8E2
         Vx7w==
X-Gm-Message-State: AOJu0YzHjVeZXE3a09jjsdmmdnpTn70LK4B2y61jHwPCMG8VzCh6ELDu
	i5gOoK5LC/ajwogF7A4+CVNi/EVbbFrUzrfTgWmXymbyR/f3p8swDZfB7g/5GBtW38G00ivfK9z
	Bv6aeD5s57cvF1Hu/s4LXFZH7PvvnZYA=
X-Gm-Gg: ASbGncuE0nn67C6Cv5OF87JC16nDDpKEoPpgTvor/1n7avYswrfkadQzOpqZT3PbwFC
	oSNH0v8oI4V7g9nhh14klq43sk2EqNobXkcm2BaJAiQFWEspXy3kn4vnmIcuxaiom0LMl0I3aKc
	2eKJRk9mjv89LQgi6+Al1J+cDaF+FUgszu7uCwX8Rr5i0ArC8iAXMN1SjUYe9zp35axDbuZVivY
	xd2qA==
X-Google-Smtp-Source: AGHT+IFUJsMj5iY2X9cKJZ8ig2gWP4ixaeiiUnAawSYp93If0IpVjFaaN7GSHPSgLGrh2z4z1/smwE9PG+vdEYRbGQQ=
X-Received: by 2002:a05:6512:2212:b0:55f:3e26:2514 with SMTP id
 2adb3069b0e04-55f3e262913mr3535437e87.33.1756215729919; Tue, 26 Aug 2025
 06:42:09 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1754943874.git.mykola_kvach@epam.com> <451b8a0527a6193b6687e1c85bd254b4dfda142d.1754943874.git.mykola_kvach@epam.com>
 <87zfbqanx5.fsf@epam.com>
In-Reply-To: <87zfbqanx5.fsf@epam.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 26 Aug 2025 16:41:58 +0300
X-Gm-Features: Ac12FXzGb8_86ttSffJ3miSlk-AO546p63ktNLoUbzzYYfJk8g3Geptu4SqLRWU
Message-ID: <CAGeoDV_J3vSTJapz2gz8wB5P0mCLGAeghhsQXoLu7cCNCYjEgA@mail.gmail.com>
Subject: Re: [PATCH v5 03/12] xen/arm: gic-v3: Implement GICv3 suspend/resume functions
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

Hi Volodymyr,

On Sat, Aug 23, 2025 at 3:20=E2=80=AFAM Volodymyr Babchuk
<Volodymyr_Babchuk@epam.com> wrote:
>
>
> Hi,
>
> Mykola Kvach <xakep.amatop@gmail.com> writes:
>
> > 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>
> > ---
> >  xen/arch/arm/gic-v3.c | 233 ++++++++++++++++++++++++++++++++++++++++++
> >  1 file changed, 233 insertions(+)
> >
> > diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
> > index cd3e1acf79..a9b65ff5d4 100644
> > --- a/xen/arch/arm/gic-v3.c
> > +++ b/xen/arch/arm/gic-v3.c
> > @@ -1776,6 +1776,231 @@ static bool gic_dist_supports_lpis(void)
> >      return (readl_relaxed(GICD + GICD_TYPER) & GICD_TYPE_LPIS);
> >  }
> >
> > +#ifdef CONFIG_SYSTEM_SUSPEND
> > +
> > +/* GICv3 registers to be saved/restored on system suspend/resume */
> > +struct gicv3_ctx {
> > +    struct dist_ctx {
> > +        uint32_t ctlr;
> > +        /*
> > +         * This struct represent block of 32 IRQs
> > +         * TODO: store extended SPI configuration (GICv3.1+)
> > +         */
> > +        struct irq_regs {
> > +            uint32_t icfgr[2];
> > +            uint32_t ipriorityr[8];
> > +            uint64_t irouter[32];
> > +            uint32_t isactiver;
> > +            uint32_t isenabler;
> > +        } *irqs;
> > +    } dist;
> > +
> > +    /* have only one rdist structure for last running CPU during suspe=
nd */
> > +    struct redist_ctx {
> > +        uint32_t ctlr;
> > +        /* TODO: handle case when we have more than 16 PPIs (GICv3.1+)=
 */
> > +        uint32_t icfgr[2];
> > +        uint32_t igroupr;
> > +        uint32_t ipriorityr[8];
> > +        uint32_t isactiver;
> > +        uint32_t isenabler;
> > +    } 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);
> > +
> > +    if ( gicv3_its_host_has_its() )
> > +        return;
>
> I think this needs a comment at least. And/or printk() message. Because
> for it is unclear why we are doing nothing if host has ITS

Got it, I'll add log message

>
> > +
> > +    /* according to spec it is possible don't have SPIs */
> > +    if ( blocks =3D=3D 1 )
> > +        return;
> > +
> > +    gicv3_ctx.dist.irqs =3D xzalloc_array(typeof(*gicv3_ctx.dist.irqs)=
, blocks - 1);
> > +    if ( !gicv3_ctx.dist.irqs )
> > +        dprintk(XENLOG_ERR,
> > +                "%s:%d: failed to allocate memory for GICv3 suspend co=
ntext\n",
> > +                __func__, __LINE__);
>
> dprintk() already prints function and line. Here and everywhere in this
> patch.

Thanks for noticing this. I=E2=80=99ll update the code accordingly.

>
> > +}
> > +
> > +static void gicv3_disable_redist(void)
> > +{
> > +    void __iomem* waker =3D GICD_RDIST_BASE + GICR_WAKER;
> > +
> > +    writel_relaxed(readl_relaxed(waker) | GICR_WAKER_ProcessorSleep, w=
aker);
> > +    while ( (readl_relaxed(waker) & GICR_WAKER_ChildrenAsleep) =3D=3D =
0 );
> > +}
> > +
> > +static int gicv3_suspend(void)
> > +{
> > +    unsigned int i;
> > +    void __iomem *base;
> > +    typeof(gicv3_ctx.rdist)* rdist =3D &gicv3_ctx.rdist;
> > +
> > +    /* TODO: implement support for ITS */
> > +    if ( gicv3_its_host_has_its() )
> > +        return -EOPNOTSUPP;
> > +
> > +    if ( !gicv3_ctx.dist.irqs && gicv3_info.nr_lines > NR_GIC_LOCAL_IR=
QS )
> > +    {
> > +        dprintk(XENLOG_WARNING,
> > +                "%s:%d: GICv3 suspend context is not allocated!\n",
> > +                __func__, __LINE__);
> > +        return -ENOMEM;
> > +    }
> > +
> > +    gicv3_save_state(current);
> > +
> > +    /* 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();
> > +    gicv3_disable_redist();
> > +
> > +    /* Save GICR configuration */
> > +    gicv3_redist_wait_for_rwp();
> > +
> > +    base =3D GICD_RDIST_SGI_BASE;
> > +
> > +    rdist->ctlr =3D readl_relaxed(base + GICR_CTLR);
> > +
> > +    /* Set priority on PPI and SGI interrupts */
>
> Probably you wanted to say "Save priority..."

Yes, thank you!
I forgot to change it after copy-pasting.

>
> > +    for (i =3D 0; i < NR_GIC_LOCAL_IRQS / 4; i +=3D 4)
> > +        rdist->ipriorityr[i] =3D readl_relaxed(base + GICR_IPRIORITYR0=
 + 4 * i);
>
> Is this correct? You are writing to every 4th rdist->ipriorityr and
> reading every 4th GICR_IPRIORITYR<n>

Definitely not -- thank you for catching this!

>
> > +
> > +    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[0]  =3D readl_relaxed(base + GICR_ICFGR0);
> > +    rdist->icfgr[1]  =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++ )
> > +    {
> > +        typeof(gicv3_ctx.dist.irqs) irqs =3D gicv3_ctx.dist.irqs + i -=
 1;
> > +        unsigned int irq;
> > +
> > +        base =3D GICD + GICD_ICFGR + 8 * i;
> > +        irqs->icfgr[0] =3D readl_relaxed(base);
> > +        irqs->icfgr[1] =3D readl_relaxed(base + 4);
> > +
> > +        base =3D GICD + GICD_IPRIORITYR + 32 * i;
> > +        for ( irq =3D 0; irq < 8; irq++ )
> > +            irqs->ipriorityr[irq] =3D readl_relaxed(base + 4 * irq);
> > +
> > +        base =3D GICD + GICD_IROUTER + 32 * i;
> > +        for ( irq =3D 0; irq < 32; irq++ )
> > +            irqs->irouter[irq] =3D readq_relaxed_non_atomic(base + 8 *=
 irq);
> > +
> > +        irqs->isactiver =3D readl_relaxed(GICD + GICD_ISACTIVER + 4 * =
i);
> > +        irqs->isenabler =3D readl_relaxed(GICD + GICD_ISENABLER + 4 * =
i);
> > +    }
> > +
> > +    return 0;
> > +}
> > +
> > +static void gicv3_resume(void)
> > +{
> > +    unsigned int i;
> > +    void __iomem *base;
> > +    typeof(gicv3_ctx.rdist)* rdist =3D &gicv3_ctx.rdist;
> > +
> > +    if ( !gicv3_ctx.dist.irqs && gicv3_info.nr_lines > NR_GIC_LOCAL_IR=
QS )
> > +    {
> > +        dprintk(XENLOG_WARNING, "%s:%d: GICv3 suspend context not allo=
cated!\n",
> > +            __func__, __LINE__);
> > +        return;
> > +    }
> > +
> > +    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++ )
> > +    {
> > +        typeof(gicv3_ctx.dist.irqs) irqs =3D gicv3_ctx.dist.irqs + i -=
 1;
> > +        unsigned int irq;
> > +
> > +        base =3D GICD + GICD_ICFGR + 8 * i;
> > +        writel_relaxed(irqs->icfgr[0], base);
> > +        writel_relaxed(irqs->icfgr[1], base + 4);
> > +
> > +        base =3D GICD + GICD_IPRIORITYR + 32 * i;
> > +        for ( irq =3D 0; irq < 8; irq++ )
> > +            writel_relaxed(irqs->ipriorityr[irq], base + 4 * irq );
>
> style: space before )

I'll fix it, thank you

>
> > +
> > +        base =3D GICD + GICD_IROUTER + 32 * i;
> > +        for ( irq =3D 0; irq < 32; irq++ )
> > +            writeq_relaxed_non_atomic(irqs->irouter[irq], base + 8 * i=
rq);
> > +
> > +        writel_relaxed(irqs->isenabler, GICD + GICD_ISENABLER + i * 4)=
;
> > +        writel_relaxed(irqs->isactiver, GICD + GICD_ISACTIVER + i * 4)=
;
> > +    }
> > +
> > +    writel_relaxed(gicv3_ctx.dist.ctlr, GICD + GICD_CTLR);
> > +    gicv3_dist_wait_for_rwp();
> > +
> > +    /* Restore GICR (Redistributor) configuration */
> > +    gicv3_enable_redist();
> > +
> > +    base =3D GICD_RDIST_SGI_BASE;
> > +
> > +    writel_relaxed(0xffffffff, base + GICR_ICENABLER0);
> > +    gicv3_redist_wait_for_rwp();
> > +
> > +    for (i =3D 0; i < NR_GIC_LOCAL_IRQS / 4; i +=3D 4)
> > +        writel_relaxed(rdist->ipriorityr[i], base + GICR_IPRIORITYR0 +=
 i * 4);
>
> Is this correct? You are writing to every 4th GICR_IPRIORITYR<n>

Definitely not -- thank you for catching this!

>
> > +
> > +    writel_relaxed(rdist->isactiver, base + GICR_ISACTIVER0);
> > +
> > +    writel_relaxed(rdist->igroupr,  base + GICR_IGROUPR0);
> > +    writel_relaxed(rdist->icfgr[0], base + GICR_ICFGR0);
> > +    writel_relaxed(rdist->icfgr[1], 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();
> > +
> > +    gicv3_restore_state(current);
> > +}
> > +
> > +#endif /* CONFIG_SYSTEM_SUSPEND */
> > +
> >  /* Set up the GIC */
> >  static int __init gicv3_init(void)
> >  {
> > @@ -1850,6 +2075,10 @@ static int __init gicv3_init(void)
> >
> >      gicv3_hyp_init();
> >
> > +#ifdef CONFIG_SYSTEM_SUSPEND
> > +    gicv3_alloc_context();
> > +#endif
> > +
> >  out:
> >      spin_unlock(&gicv3.lock);
> >
> > @@ -1889,6 +2118,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 =
void *data)
>
> --
> WBR, Volodymyr

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 13:42:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 13:42:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094416.1449735 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqtwJ-00083w-Fe; Tue, 26 Aug 2025 13:42:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094416.1449735; Tue, 26 Aug 2025 13: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 1uqtwJ-00083M-C3; Tue, 26 Aug 2025 13:42:19 +0000
Received: by outflank-mailman (input) for mailman id 1094416;
 Tue, 26 Aug 2025 13:42:18 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+/mc=3G=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1uqtwI-0007MD-8P
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 13:42:18 +0000
Received: from mail-lj1-x236.google.com (mail-lj1-x236.google.com
 [2a00:1450:4864:20::236])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7ade9d84-8282-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 15:42:16 +0200 (CEST)
Received: by mail-lj1-x236.google.com with SMTP id
 38308e7fff4ca-3367144d196so21211171fa.3
 for <xen-devel@lists.xenproject.org>; Tue, 26 Aug 2025 06:42: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>
X-Inumbo-ID: 7ade9d84-8282-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756215736; x=1756820536; 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=qAdfRT3RfdTKzniVhm6L20d/MG9qOdM1V7J02o/Uq+E=;
        b=A0h7SaBEDgkHCaiqvX0OeCrwt9XDwTRfG53JkaFsAHfhqEry/pVlyDbVitFUVqRCKy
         BQsfRVM13sNOVhPKvryJVqWtY38fDW59ar8HzxHJUemjv7iIVxYeYC8mMogkl58lCpay
         n/OaYwfejy+y9za0QI/vQhFWEj+dT1jnO4ClZNRTFfUWwb8l6FY1x6rriubbMUz+8eaF
         /X6VoJL5XTpJSceSoZ1EcOZ6s8fU0nNuuug/ugLYw3e2Op0Z7b1vnqGBSFIMP8moXUTV
         E6KiuU0Ig5f20CxVHKnlnwxUU5SWkKus35E/UCNs/NUpyB5S134f/HAl2l7/a1Zharvs
         s4uQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756215736; x=1756820536;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=qAdfRT3RfdTKzniVhm6L20d/MG9qOdM1V7J02o/Uq+E=;
        b=mAhr75IIO8llBLS7N2vzhH6o3vlvVenuKj1wqsuUNB5fEWAsDDWkvpxgKaluvCxFxx
         +UVpFfIKWF6ElUg3sJaTi9isABnLu7DdcGDsJuOsNrFjqDMyeXx7f4Y19jNu7fEl3lLi
         N6DtheTWJ3SNbf5kdwRiPEe2JUbctN0KTse2UKGiqGO0KjWje9RJTGGNQfKaxvksNlRA
         qGYbrgKBSQ20LgieZ64hJkDkH1zuZZVegaxz6VjxhxutWWV0Z6eQnBuOY1OU+b8EJUU2
         BFcXmXjsDRtZD07Z9mmWYBgBxz0v4hIQ6k6xLcvKlqP7psF/aqdswH0JCxDW1SNe3Z59
         YvXg==
X-Gm-Message-State: AOJu0YzBAS75wKuSZYVI4cPGxCapCHep3M4QY9RNZaO61JK5WDZi5IRm
	DTJHdc540I2iSQKfIGBdZSclcufrw7rsv2yxjVKPKiN0Un6t9drD+bmCIU7mEpGb4AINImCqmhH
	+kf5Nj/pPoTtf8ajJhVcxlOrxZUE+UJo=
X-Gm-Gg: ASbGncvivMXn2MYD6PIvJLdSBY6xNj1tmLSBmegzUKRTBUAFgxlUBDqRHaxdz6X2dFZ
	RMeLa50wZusLlTXjw5bpTTdRCJBuHBsj+4kH3lZxNIXIS8o3QbCpWyRRPedMUZdkEqIAQTqbuws
	FTOU4ri7twn0EdpJFliEgNXaQzU9zeasCuTcPpSuX75jNOiQuSsiOkEcbCKVZHl22Gtx4+ilaN2
	C8VQX8DWEcgeQW73Ak8Cy/tjLA=
X-Google-Smtp-Source: AGHT+IHuUomL3ajT2tg5sdchy83gSMB8mwCP/IHk4ei5CjZUS4JtqnoWmUjIgWL3WTnrOfM87pn2dBHc3Hrsf9un4wk=
X-Received: by 2002:a2e:330d:0:b0:336:85e3:a95c with SMTP id
 38308e7fff4ca-33685e3b284mr9034371fa.29.1756215735993; Tue, 26 Aug 2025
 06:42:15 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1754943874.git.mykola_kvach@epam.com> <98957da5c5068ae8340a21a9aa15a962905a8a22.1754943874.git.mykola_kvach@epam.com>
 <87qzx2an6k.fsf@epam.com>
In-Reply-To: <87qzx2an6k.fsf@epam.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 26 Aug 2025 16:42:04 +0300
X-Gm-Features: Ac12FXyeB4PejrWzfWfljLrUb9Y_fm_JV2MODpRnUIP-XDhyl8R0FMQWBo5HqHM
Message-ID: <CAGeoDV-NfadvNk1VOCBhLT_FCDDtPzkJkvwLvpaF0BsovGUQaw@mail.gmail.com>
Subject: Re: [PATCH v5 04/12] xen/arm: Prevent crash during
 disable_nonboot_cpus on suspend
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

Hi Volodymyr,

On Sat, Aug 23, 2025 at 3:36=E2=80=AFAM Volodymyr Babchuk
<Volodymyr_Babchuk@epam.com> wrote:
>
>
> Hi Mykola,
>
> Mykola Kvach <xakep.amatop@gmail.com> writes:
>
> While I approve the change, the commit message is somewhat
> unclear. Maybe "Don't release IRQs on suspend" will be better?

Do you mean commit message title ?

>
> > From: Mykola Kvach <mykola_kvach@epam.com>
> >
> > If we call disable_nonboot_cpus on ARM64 with system_state set
> > to SYS_STATE_suspend, the following assertion will be triggered:
> >
> > ```
> > (XEN) [   25.582712] Disabling non-boot CPUs ...
> > (XEN) [   25.587032] Assertion '!in_irq() && (local_irq_is_enabled() ||=
 num_online_cpus() <=3D 1)' failed at common/xmalloc_tlsf.c:714
> > [...]
> > (XEN) [   25.975069] Xen call trace:
> > (XEN) [   25.978353]    [<00000a000022e098>] xfree+0x130/0x1a4 (PC)
> > (XEN) [   25.984314]    [<00000a000022e08c>] xfree+0x124/0x1a4 (LR)
> > (XEN) [   25.990276]    [<00000a00002747d4>] release_irq+0xe4/0xe8
> > (XEN) [   25.996152]    [<00000a0000278588>] time.c#cpu_time_callback+0=
x44/0x60
> > (XEN) [   26.003150]    [<00000a000021d678>] notifier_call_chain+0x7c/0=
xa0
> > (XEN) [   26.009717]    [<00000a00002018e0>] cpu.c#cpu_notifier_call_ch=
ain+0x24/0x48
> > (XEN) [   26.017148]    [<00000a000020192c>] cpu.c#_take_cpu_down+0x28/=
0x34
> > (XEN) [   26.023801]    [<00000a0000201944>] cpu.c#take_cpu_down+0xc/0x=
18
> > (XEN) [   26.030281]    [<00000a0000225c5c>] stop_machine.c#stopmachine=
_action+0xbc/0xe4
> > (XEN) [   26.038057]    [<00000a00002264bc>] tasklet.c#do_tasklet_work+=
0xb8/0x100
> > (XEN) [   26.045229]    [<00000a00002268a4>] do_tasklet+0x68/0xb0
> > (XEN) [   26.051018]    [<00000a000026e120>] domain.c#idle_loop+0x7c/0x=
194
> > (XEN) [   26.057585]    [<00000a0000277e30>] start_secondary+0x21c/0x22=
0
> > (XEN) [   26.063978]    [<00000a0000361258>] 00000a0000361258
> > ```
> >
> > This happens because before invoking take_cpu_down via the stop_machine=
_run
> > function on the target CPU, stop_machine_run requests
> > the STOPMACHINE_DISABLE_IRQ state on that CPU. Releasing memory in
> > the release_irq function then triggers the assertion:
> >
> > /*
> >  * Heap allocations may need TLB flushes which may require IRQs to be
> >  * enabled (except when only 1 PCPU is online).
> >  */
> >
> > This patch adds system state checks to guard calls to request_irq
> > and release_irq. These calls are now skipped when system_state is
> > SYS_STATE_{resume,suspend}, preventing unsafe operations during
> > suspend/resume handling.
>
> If any call to release_irq() during suspend will trigger ASSERT, and it
> is fine to leave IRQs as is during suspend, maybe it will be easier to
> put
>
> +        if ( system_state =3D=3D SYS_STATE_suspend )
> +            return;
>
> straight into release_irq() code? This will be easier than playing
> whack-a-mole when some other patch will add another release_irq() call
> somewhere.

I=E2=80=99m fine with adding this check directly into release_irq(), as lon=
g as
the other maintainers agree with this approach.

>
>
> >
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> > ---
> > Changes in V4:
> >   - removed the prior tasklet-based workaround in favor of a more
> >     straightforward and safer solution
> >   - reworked the approach by adding explicit system state checks around
> >     request_irq and release_irq calls, skips these calls during suspend
> >     and resume states to avoid unsafe memory operations when IRQs are
> >     disabled
> > ---
> >  xen/arch/arm/gic.c           |  6 ++++++
> >  xen/arch/arm/tee/ffa_notif.c |  2 +-
> >  xen/arch/arm/time.c          | 18 ++++++++++++------
> >  3 files changed, 19 insertions(+), 7 deletions(-)
> >
> > diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
> > index a018bd7715..9856cb1592 100644
> > --- a/xen/arch/arm/gic.c
> > +++ b/xen/arch/arm/gic.c
> > @@ -388,6 +388,9 @@ void gic_dump_info(struct vcpu *v)
> >
> >  void init_maintenance_interrupt(void)
> >  {
> > +    if ( system_state =3D=3D SYS_STATE_resume )
> > +        return;
> > +
> >      request_irq(gic_hw_ops->info->maintenance_irq, 0, maintenance_inte=
rrupt,
> >                  "irq-maintenance", NULL);
> >  }
> > @@ -461,6 +464,9 @@ static int cpu_gic_callback(struct notifier_block *=
nfb,
> >      switch ( action )
> >      {
> >      case CPU_DYING:
> > +        if ( system_state =3D=3D SYS_STATE_suspend )
> > +            break;
> > +
> >          /* This is reverting the work done in init_maintenance_interru=
pt */
> >          release_irq(gic_hw_ops->info->maintenance_irq, NULL);
> >          break;
> > diff --git a/xen/arch/arm/tee/ffa_notif.c b/xen/arch/arm/tee/ffa_notif.=
c
> > index 00efaf8f73..06f715a82b 100644
> > --- a/xen/arch/arm/tee/ffa_notif.c
> > +++ b/xen/arch/arm/tee/ffa_notif.c
> > @@ -347,7 +347,7 @@ void ffa_notif_init_interrupt(void)
> >  {
> >      int ret;
> >
> > -    if ( notif_enabled && notif_sri_irq < NR_GIC_SGI )
> > +    if ( notif_enabled && notif_sri_irq < NR_GIC_SGI && system_state !=
=3D SYS_STATE_resume )
> >      {
> >          /*
> >           * An error here is unlikely since the primary CPU has already
> > diff --git a/xen/arch/arm/time.c b/xen/arch/arm/time.c
> > index ad984fdfdd..b2e07ade43 100644
> > --- a/xen/arch/arm/time.c
> > +++ b/xen/arch/arm/time.c
> > @@ -320,10 +320,13 @@ void init_timer_interrupt(void)
> >      WRITE_SYSREG(CNTHCTL_EL2_EL1PCTEN, CNTHCTL_EL2);
> >      disable_physical_timers();
> >
> > -    request_irq(timer_irq[TIMER_HYP_PPI], 0, htimer_interrupt,
> > -                "hyptimer", NULL);
> > -    request_irq(timer_irq[TIMER_VIRT_PPI], 0, vtimer_interrupt,
> > -                   "virtimer", NULL);
> > +    if ( system_state !=3D SYS_STATE_resume )
> > +    {
> > +        request_irq(timer_irq[TIMER_HYP_PPI], 0, htimer_interrupt,
> > +                    "hyptimer", NULL);
> > +        request_irq(timer_irq[TIMER_VIRT_PPI], 0, vtimer_interrupt,
> > +                    "virtimer", NULL);
> > +    }
> >
> >      check_timer_irq_cfg(timer_irq[TIMER_HYP_PPI], "hypervisor");
> >      check_timer_irq_cfg(timer_irq[TIMER_VIRT_PPI], "virtual");
> > @@ -338,8 +341,11 @@ static void deinit_timer_interrupt(void)
> >  {
> >      disable_physical_timers();
> >
> > -    release_irq(timer_irq[TIMER_HYP_PPI], NULL);
> > -    release_irq(timer_irq[TIMER_VIRT_PPI], NULL);
> > +    if ( system_state !=3D SYS_STATE_suspend )
> > +    {
> > +        release_irq(timer_irq[TIMER_HYP_PPI], NULL);
> > +        release_irq(timer_irq[TIMER_VIRT_PPI], NULL);
> > +    }
> >  }
> >
> >  /* Wait a set number of microseconds */
>
> --
> WBR, Volodymyr

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 13:42:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 13:42:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094420.1449745 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqtwP-0008O1-N1; Tue, 26 Aug 2025 13:42:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094420.1449745; Tue, 26 Aug 2025 13:42: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 1uqtwP-0008Nt-Ji; Tue, 26 Aug 2025 13:42:25 +0000
Received: by outflank-mailman (input) for mailman id 1094420;
 Tue, 26 Aug 2025 13:42:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+/mc=3G=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1uqtwO-0007MD-Kq
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 13:42:24 +0000
Received: from mail-lj1-x230.google.com (mail-lj1-x230.google.com
 [2a00:1450:4864:20::230])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7f336bdf-8282-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 15:42:24 +0200 (CEST)
Received: by mail-lj1-x230.google.com with SMTP id
 38308e7fff4ca-3367f35d129so14258181fa.1
 for <xen-devel@lists.xenproject.org>; Tue, 26 Aug 2025 06:42: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>
X-Inumbo-ID: 7f336bdf-8282-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756215743; x=1756820543; 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=AnaOqRCWc8b654/XwwpXZoEHzRvpKDZrAMeumSj2xd8=;
        b=LPXomDm4aSTwZP51YTETMpaKFglMNI8yXhQNBEmlNHhHA99ADtm1LeZof9XAyhRpGE
         whT+hnTl+/T1Id+tvAGllk3St5PBMqzga3lJQa1Ek+eQYOd4z/ZzeDuVlUyVpfPVNkPo
         DGLDPa7b/P9drfcjYrYKu2MuQIx5ouKmmOYlCBj6EcKMX4IAidR1zkMgjREHhazpQlN5
         lKfU5Ky9p7R6lPZX9OmVRWbfid7wCguW28wZ8U4VyYa0kGrWuBeK/fDDTumCgL6xpm4t
         nU6snZgFDSgHOUFKqzHeyWnGZmw1C8/IU8gbGaF/O6FhAEMxLUjPO09+o/nNZwccXTKr
         iOag==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756215743; x=1756820543;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=AnaOqRCWc8b654/XwwpXZoEHzRvpKDZrAMeumSj2xd8=;
        b=AwHYk6qd7Dpgm70ME0RoQ1yTu+iJ+0BkEpYe8BlO6gajik1ys9MOm3XfCySqSoHPsq
         IaJyE70dwEBLFBn5TNvbuc1TjvoK4321WU1QILpu0XOpvveoDL7wLNlZclzBT9ICzB9Q
         ym1+tVeXY3JEfq/KauFUleSA3RfI5G16L6BpJKeEewN2hMW10yHDK8+JogXbTBrcSqXT
         I6mp862zpvxMhW1L6npHu/02y1isQOHp5JzW19gXm9HS334lk3K6X/0NAX2R/vGV/PcB
         aDz6f7ZdQIPBd8hSSFd/TtBmJpQ+K0Yi41jGPko7Xnz+RRRGnas9ffLQ5rYhSkekPFCi
         obTg==
X-Gm-Message-State: AOJu0Yys6JPbud66ct4oALxKCVc8kt15eWR5siQvN6oYpvKnHLP0uNtj
	YHH5ThK8BvUMIQJGc5f3PunL1XCq6LUcNgTp8BKjicmq9uDAf/2Amo2oZrDcg4LQb15QDzH39uv
	PBcPTbSMKccm/EFU/OAG1gI8irM2KWcU=
X-Gm-Gg: ASbGncuqVluhHTqBOSgzZqB/H+O0tGkiOiYMkdXTZyte+6wAMaF2Pvb0E95S3JTPVju
	3UqOOfAqxAMfaG+mG2kyPF5dtgktJNaKcjsysqnvbUhxaBtybcGddmg8QcJ09HgYRzTnwrF+hsg
	Rtf04iTho0OZDaFNviYyQmp9mZTbnusOvepWTjvGvqknmxgbEgmTn/ZmWVii8kKAiCA5SvnFRJZ
	BHsLQ==
X-Google-Smtp-Source: AGHT+IH//yRuM1FqfeXTKhILIlT9lcQnPijRfnb9hxuttzNT3+RGc28R0T8wMNb4j0+8FT/+zuKbsyQG/6BwJC3APR8=
X-Received: by 2002:a05:651c:3247:10b0:32b:7614:5745 with SMTP id
 38308e7fff4ca-33650f647f2mr29916881fa.20.1756215742777; Tue, 26 Aug 2025
 06:42:22 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1754943874.git.mykola_kvach@epam.com> <779a90853f249f8d8c4973874baeee1f787e92e0.1754943875.git.mykola_kvach@epam.com>
 <877byuamrm.fsf@epam.com>
In-Reply-To: <877byuamrm.fsf@epam.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 26 Aug 2025 16:42:11 +0300
X-Gm-Features: Ac12FXyr_bjT2cYCw1pEfeLkfmN0Ea2lDw9aoEZkPzZGs-2yObHBM9dNf0aOtSI
Message-ID: <CAGeoDV-ge7L-=b8GoDnBSXG6aefAOo6VAmUvPvnKkSf48AjLcQ@mail.gmail.com>
Subject: Re: [PATCH v5 06/12] xen/arm: irq: Restore state of local IRQs during
 system 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

Hi Volodymyr,

On Sat, Aug 23, 2025 at 3:45=E2=80=AFAM Volodymyr Babchuk
<Volodymyr_Babchuk@epam.com> wrote:
>
> Hi Mykola,
>
> Mykola Kvach <xakep.amatop@gmail.com> writes:
>
> > From: Mykola Kvach <mykola_kvach@epam.com>
> >
> > On ARM, the first 32 interrupts (SGIs and PPIs) are banked per-CPU
> > and not restored by gic_resume (for secondary cpus).
> >
> > This patch introduces restore_local_irqs_on_resume, a function that
> > restores the state of local interrupts on the target CPU during
> > system resume.
> >
> > It iterates over all local IRQs and re-enables those that were not
> > disabled, reprogramming their routing and affinity accordingly.
> >
> > The function is invoked from start_secondary, ensuring that local IRQ
> > state is restored early during CPU bring-up after suspend.
> >
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> > ---
> >  xen/arch/arm/irq.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
> >  1 file changed, 44 insertions(+)
> >
> > diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
> > index 148f184f8b..b3ff38dc27 100644
> > --- a/xen/arch/arm/irq.c
> > +++ b/xen/arch/arm/irq.c
> > @@ -113,6 +113,47 @@ static int init_local_irq_data(unsigned int cpu)
> >      return 0;
> >  }
> >
> > +/*
> > + * The first 32 interrupts (PPIs and SGIs) are per-CPU,
> > + * so call this function on the target CPU to restore them.
> > + *
> > + * SPIs are restored via gic_resume.
> > + */
> > +static void restore_local_irqs_on_resume(void)
> > +{
> > +    int irq;
> > +
> > +    if ( system_state !=3D SYS_STATE_resume )
> > +        return;
>
> Maybe it is better to move this check to restore_local_irqs_on_resume()
> caller? You can put ASSERT(system_state =3D=3D SYS_STATE_resume) there
> instead.
>
> I am saying this because name of restore_local_irqs_on_resume() implies t=
hat it
> should be called only on resume.

Not a problem.
I'll move checking outside the function.

>
> > +
> > +    spin_lock(&local_irqs_type_lock);
> > +
> > +    for ( irq =3D 0; irq < NR_LOCAL_IRQS; irq++ )
> > +    {
> > +        struct irq_desc *desc =3D irq_to_desc(irq);
> > +
> > +        spin_lock(&desc->lock);
> > +
> > +        if ( test_bit(_IRQ_DISABLED, &desc->status) )
> > +        {
> > +            spin_unlock(&desc->lock);
> > +            continue;
> > +        }
> > +
> > +        /* it is needed to avoid asserts in below calls */
> > +        set_bit(_IRQ_DISABLED, &desc->status);
>
> Assert in the call below isn't just because. You need to either call
> desc->handler->disable() to properly disable the IRQ or justify why it
> is fine to just set the bit.

Got it. I=E2=80=99ll call the disable handler here instead.

>
> > +
> > +        gic_route_irq_to_xen(desc, GIC_PRI_IRQ);
> > +
> > +        /* _IRQ_DISABLED is cleared by below call */
> > +        desc->handler->startup(desc);
> > +
> > +        spin_unlock(&desc->lock);
> > +    }
> > +
> > +    spin_unlock(&local_irqs_type_lock);
> > +}
> > +
> >  static int cpu_callback(struct notifier_block *nfb, unsigned long acti=
on,
> >                          void *hcpu)
> >  {
> > @@ -131,6 +172,9 @@ static int cpu_callback(struct notifier_block *nfb,=
 unsigned long action,
> >              printk(XENLOG_ERR "Unable to allocate local IRQ for CPU%u\=
n",
> >                     cpu);
> >          break;
> > +    case CPU_STARTING:
> > +        restore_local_irqs_on_resume();
> > +        break;
> >      }
> >
> >      return notifier_from_errno(rc);
>
> --
> WBR, Volodymyr

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 13:42:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 13:42:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094425.1449755 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqtwW-0000N0-54; Tue, 26 Aug 2025 13:42:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094425.1449755; Tue, 26 Aug 2025 13: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 1uqtwW-0000Mr-0a; Tue, 26 Aug 2025 13:42:32 +0000
Received: by outflank-mailman (input) for mailman id 1094425;
 Tue, 26 Aug 2025 13:42:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+/mc=3G=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1uqtwV-0007ex-KC
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 13:42:31 +0000
Received: from mail-lf1-x131.google.com (mail-lf1-x131.google.com
 [2a00:1450:4864:20::131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 82111ec2-8282-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 15:42:28 +0200 (CEST)
Received: by mail-lf1-x131.google.com with SMTP id
 2adb3069b0e04-55f499c7f0cso1688399e87.0
 for <xen-devel@lists.xenproject.org>; Tue, 26 Aug 2025 06:42: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>
X-Inumbo-ID: 82111ec2-8282-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756215748; x=1756820548; 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=Ld1jMJbgNHdUiNtFyG1I2q/hxuL4N8Dfb380ntLscSU=;
        b=NPcRErFcINOx+U2EintvX/Uau2pph+03Y2HTiNlOkWH9qK4mjfTGdz7X7rockXDCxB
         G6igKJjfmWJhuCx7OjScC5rMoedxwhA5ZYXn66IZMR1Vh2Qy+iExkP/Ls/bvat4DSnc4
         CUaF4H5U/dBjuO5R9bvgUg5jRZoybsbyE7hoREj5/uCsOzb6kMnnW4C1u5PVJk0nqtpp
         kQ61LegRiIsljlb6Q+4DYd2ZyGzrALn9+M9llDkAxgmfxpGmFUo6Q07VtJ8AXg549OJ1
         GbyWYCIq0oP/khvx1/zSOHyUX4J4y25vIA08FgkFceNjgM3pEY+GOMTrmD+C3Bq2x6WJ
         wTCQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756215748; x=1756820548;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=Ld1jMJbgNHdUiNtFyG1I2q/hxuL4N8Dfb380ntLscSU=;
        b=iVJmom3YFJrZGwG4v9eV/ls1y3vnun2a06ovVDiyhjRk7AxzgJyVnMnyTCYQh+ti2e
         3Zi/kCyD36xL5qqTjo9/LK376wvkja8gBGVHHP5X/7dnWWA00uCUlgSNbUMgd3LXGxbN
         EHTzt7b55mS26DNWZwxLqcL6OtoNOiHP25JwBuUNV5OZ1Hgzrfu0hmz2t9Gfvz7qzW2P
         /LlPFIVBL/cdEaKaR8l0aH6JVgf2fV7ioONyCN9SaEDhwfJYEmgEB5t8cQAmSKR/NwFQ
         yw7kXJNnqrDog05gnUPhxBVnJUceUJnwNTe7zIZ20Z5bzBxd5J6lPabVQWJyyEh0N6M6
         uuqA==
X-Gm-Message-State: AOJu0YwIxMBqvuoOb2fSgrjYJPmnaQa+17MQSp4qqjRNIIXaj442y1ZZ
	f19NVG6sgSXaR6lJV4dN44Jnrz/EADhnx4p3W4N43X4jW98JO2kDuPXq9ntqN0nhOKOTviRE4/h
	E0MIYD0kwLPPO2iiO1tarSL8qTo3wihA=
X-Gm-Gg: ASbGnctnWPVNWz+0bffy0opIEQqZ6fmXzUZBfwMFHuN8DgSnWqozzzVLgO18halNRnq
	lpR2Wjii8GAKmPnhpPc4FKN75zzdXCqNoObCEuAWQTvQvi8hMcbrd38KEfcK7OOiqgchLJX7ZKa
	BCcc/FWtzvvXgbluYGnxLYZ59CcA4eGK5aClVXTY0C0MbXl/kFGI+mYjzrjZq7kZm9FOCTbj6VU
	ZJTSwde8uOL0Cvo
X-Google-Smtp-Source: AGHT+IG2Yv3Ok1i5kNBoAC3cT9z1SnURXyP56TEei4+KYUR2j8mFtzjDLN3c0Kgqt4X9TqhMvX9+86fTS9DsQZbZej0=
X-Received: by 2002:a05:6512:6301:b0:55f:503c:d316 with SMTP id
 2adb3069b0e04-55f503cd548mr248707e87.30.1756215747995; Tue, 26 Aug 2025
 06:42:27 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1754943874.git.mykola_kvach@epam.com> <c995126a9a61aecff7cb9a7c6fd28f091a332443.1754943875.git.mykola_kvach@epam.com>
 <87ms7q97j9.fsf@epam.com>
In-Reply-To: <87ms7q97j9.fsf@epam.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 26 Aug 2025 16:42:16 +0300
X-Gm-Features: Ac12FXxIjbKCylLsbPbqtKV8i5xu3gx5va7eEr6NlbquJyeVrZ86z523QzWXKbY
Message-ID: <CAGeoDV99fHOYzw8whgrkgVMJmO1fmAdo9fmyFLFihYx8S4wX+g@mail.gmail.com>
Subject: Re: [PATCH v5 07/12] xen/arm: Add support for system suspend
 triggered by hardware domain
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
	Mirela Simonovic <mirela.simonovic@aggios.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>, 
	Saeed Nowshadi <saeed.nowshadi@xilinx.com>, Mykyta Poturai <Mykyta_Poturai@epam.com>, 
	Mykola Kvach <Mykola_Kvach@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Volodymyr,

On Sat, Aug 23, 2025 at 4:00=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>
> >
> > Trigger Xen suspend when the hardware domain initiates suspend via
> > SHUTDOWN_suspend. Redirect system suspend to CPU#0 to ensure the
> > suspend logic runs on the boot CPU, as required.
> >
> > Introduce full suspend/resume infrastructure gated by CONFIG_SYSTEM_SUS=
PEND,
> > including logic to:
> >  - disable and enable non-boot physical CPUs
> >  - freeze and thaw domains
> >  - suspend and resume the GIC, timer and console
> >  - maintain system state before and after suspend
> >
> > Remove the restriction in the PSCI interface preventing suspend from th=
e
> > hardware domain.
> >
> > Select HAS_SYSTEM_SUSPEND for ARM_64.
> >
> > 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 v5:
> > - select HAS_SYSTEM_SUSPEND in ARM_64 instead of ARM
> > - check llc_coloring_enabled instead of LLC_COLORING during the selecti=
on
> >   of HAS_SYSTEM_SUSPEND config
> > - call host_system_suspend from guest PSCI system suspend instead of
> >   arch_domain_shutdown, reducing the complexity of the new code
> > - update some comments
> >
> > Changes introduced in V4:
> >   - drop code for saving and restoring VCPU context (for more informati=
on
> >     refer part 1 of patch series)
> >   - remove IOMMU suspend and resume calls until they will be implemente=
d
> >   - move system suspend logic to arch_domain_shutdown, invoked from
> >     domain_shutdown
> >   - apply minor fixes such as renaming functions, updating comments, an=
d
> >     modifying the commit message to reflect these changes
> >   - add console_end_sync to resume path after system suspend
> >
> > Changes introduced in V3:
> >   - merge changes from other commits into this patch (previously stashe=
d):
> >     1) disable/enable non-boot physical CPUs and freeze/thaw domains du=
ring
> >        suspend/resume
> >     2) suspend/resume the timer, GIC, console, IOMMU, and hardware doma=
in
> > ---
> >  xen/arch/arm/Kconfig               |   1 +
> >  xen/arch/arm/Makefile              |   1 +
> >  xen/arch/arm/include/asm/suspend.h |  22 +++++
> >  xen/arch/arm/suspend.c             | 151 +++++++++++++++++++++++++++++
> >  xen/arch/arm/vpsci.c               |  12 ++-
> >  xen/common/domain.c                |   4 +
> >  6 files changed, 190 insertions(+), 1 deletion(-)
> >  create mode 100644 xen/arch/arm/include/asm/suspend.h
> >  create mode 100644 xen/arch/arm/suspend.c
> >
> > diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
> > index a0c8160474..ccdbaa5bc3 100644
> > --- a/xen/arch/arm/Kconfig
> > +++ b/xen/arch/arm/Kconfig
> > @@ -8,6 +8,7 @@ config ARM_64
> >       depends on !ARM_32
> >       select 64BIT
> >       select HAS_FAST_MULTIPLY
> > +     select HAS_SYSTEM_SUSPEND if UNSUPPORTED
> >       select HAS_VPCI_GUEST_SUPPORT if PCI_PASSTHROUGH
> >
> >  config ARM
> > diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
> > index f833cdf207..3f6247adee 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/include/asm/suspend.h b/xen/arch/arm/include/=
asm/suspend.h
> > new file mode 100644
> > index 0000000000..78d0e2383b
> > --- /dev/null
> > +++ b/xen/arch/arm/include/asm/suspend.h
> > @@ -0,0 +1,22 @@
> > +/* SPDX-License-Identifier: GPL-2.0-only */
> > +
> > +#ifndef __ASM_ARM_SUSPEND_H__
> > +#define __ASM_ARM_SUSPEND_H__
> > +
> > +#ifdef CONFIG_SYSTEM_SUSPEND
> > +
> > +int host_system_suspend(void);
> > +
> > +#endif /* CONFIG_SYSTEM_SUSPEND */
> > +
> > +#endif /* __ASM_ARM_SUSPEND_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/arm/suspend.c b/xen/arch/arm/suspend.c
> > new file mode 100644
> > index 0000000000..abf4b928ce
> > --- /dev/null
> > +++ b/xen/arch/arm/suspend.c
> > @@ -0,0 +1,151 @@
> > +/* SPDX-License-Identifier: GPL-2.0-only */
> > +
> > +#include <xen/console.h>
> > +#include <xen/cpu.h>
> > +#include <xen/llc-coloring.h>
> > +#include <xen/sched.h>
> > +
> > +/*
> > + * TODO list:
> > + *  - Test system suspend with LLC_COLORING enabled and verify functio=
nality
> > + *  - Implement IOMMU suspend/resume handlers and integrate them
> > + *    into the suspend/resume path (IPMMU and SMMU)
> > + *  - Enable "xl suspend" support on ARM architecture
> > + *  - Properly disable Xen timer watchdog from relevant services
> > + *  - Add suspend/resume CI test for ARM (QEMU if feasible)
> > + *  - Investigate feasibility and need for implementing system suspend=
 on ARM32
> > + */
> > +
> > +/* Xen suspend. Note: data is not used (suspend is the suspend to RAM)=
 */
> > +static long system_suspend(void *data)
> > +{
> > +    int status;
> > +    unsigned long flags;
> > +
> > +    BUG_ON(system_state !=3D SYS_STATE_active);
> > +
> > +    system_state =3D SYS_STATE_suspend;
> > +    freeze_domains();
> > +    scheduler_disable();
> > +
> > +    /*
> > +     * Non-boot CPUs have to be disabled on suspend and enabled on res=
ume
> > +     * (hotplug-based mechanism). Disabling non-boot CPUs will lead to=
 PSCI
> > +     * CPU_OFF to be called by each non-boot CPU. Depending on the und=
erlying
> > +     * platform capabilities, this may lead to the physical powering d=
own of
> > +     * CPUs. Tested on Xilinx Zynq Ultrascale+ MPSoC (including power =
down of
> > +     * each non-boot CPU).
>
> I don't think that the last part of the comment is relevant in upstream.

I=E2=80=99ll drop that part, as it=E2=80=99s not relevant for upstream.

>
> > +     */
> > +    status =3D disable_nonboot_cpus();
> > +    if ( status )
> > +    {
> > +        system_state =3D SYS_STATE_resume;
> > +        goto resume_nonboot_cpus;
> > +    }
> > +
> > +    time_suspend();
> > +
> > +    local_irq_save(flags);
> > +    status =3D gic_suspend();
> > +    if ( status )
> > +    {
> > +        system_state =3D SYS_STATE_resume;
> > +        goto resume_irqs;
> > +    }
> > +
> > +    printk("Xen suspending...\n");
> > +
> > +    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_console;
> > +    }
> > +
> > +    /*
> > +     * Enable identity mapping before entering suspend to simplify
> > +     * the resume path
> > +     */
> > +    update_boot_mapping(true);
> > +
>
> This puzzles me. I expected actually PSCI suspend call here.
>
> > +    system_state =3D SYS_STATE_resume;
> > +    update_boot_mapping(false);
> > +
> > + resume_console:
> > +    console_resume();
> > +    console_end_sync();
> > +
> > +    gic_resume();
> > +
> > + resume_irqs:
> > +    local_irq_restore(flags);
> > +    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();
> > +    scheduler_enable();
> > +    thaw_domains();
> > +
> > +    system_state =3D SYS_STATE_active;
> > +
> > +    /* The resume of hardware domain should always follow Xen's resume=
. */
> > +    domain_resume(hardware_domain);
> > +
> > +    printk("Resume (status %d)\n", status);
> > +    return status;
> > +}
> > +
> > +int host_system_suspend(void)
> > +{
> > +    int status;
> > +
> > +    /* TODO: drop check after verification that features can work toge=
ther */
> > +    if ( llc_coloring_enabled )
> > +    {
> > +        dprintk(XENLOG_ERR,
> > +                "System suspend is not supported with LLC_COLORING ena=
bled\n");
> > +        return -ENOSYS;
> > +    }
> > +
> > +    /*
> > +     * system_suspend should be called when Dom0 finalizes the suspend
> > +     * procedure from its boot core (VCPU#0). However, Dom0's VCPU#0 c=
ould
> > +     * be mapped to any PCPU (this function could be executed by any P=
CPU).
> > +     * The suspend procedure has to be finalized by the PCPU#0 (non-bo=
ot
> > +     * PCPUs will be disabled during the suspend).
> > +     */
> > +    status =3D continue_hypercall_on_cpu(0, system_suspend, NULL);
> > +
> > +    /*
> > +     * If an error happened, there is nothing that needs to be done he=
re
> > +     * because the system_suspend always returns in fully functional s=
tate
> > +     * no matter what the outcome of suspend procedure is. If the syst=
em
> > +     * suspended successfully the function will return 0 after the res=
ume.
> > +     * Otherwise, if an error is returned it means Xen did not suspend=
ed,
> > +     * but it is still in the same state as if the system_suspend was =
never
> > +     * called. We dump a debug message in case of an error for debuggi=
ng/
> > +     * logging purpose.
> > +     */
> > +    if ( status )
> > +        dprintk(XENLOG_ERR, "Failed to suspend, errno=3D%d\n", status)=
;
> > +
> > +    return status;
> > +}
> > +
> > +/*
> > + * Local variables:
> > + * mode: C
> > + * c-file-style: "BSD"
> > + * c-basic-offset: 4
> > + * indent-tabs-mode: nil
> > + * End:
> > + */
> > diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
> > index 67d369a8a2..757e719ea7 100644
> > --- a/xen/arch/arm/vpsci.c
> > +++ b/xen/arch/arm/vpsci.c
> > @@ -4,6 +4,7 @@
> >  #include <xen/types.h>
> >
> >  #include <asm/current.h>
> > +#include <asm/suspend.h>
> >  #include <asm/vgic.h>
> >  #include <asm/vpsci.h>
> >  #include <asm/event.h>
> > @@ -214,9 +215,10 @@ static int32_t do_psci_1_0_system_suspend(register=
_t epoint, register_t cid)
> >      struct vcpu *v;
> >      struct domain *d =3D current->domain;
> >
> > -    /* SYSTEM_SUSPEND is not supported for the hardware domain yet */
> > +#ifndef CONFIG_SYSTEM_SUSPEND
> >      if ( is_hardware_domain(d) )
> >          return PSCI_NOT_SUPPORTED;
> > +#endif
> >
> >      /* Ensure that all CPUs other than the calling one are offline */
> >      domain_lock(d);
> > @@ -234,6 +236,14 @@ static int32_t do_psci_1_0_system_suspend(register=
_t epoint, register_t cid)
> >      if ( rc )
> >          return PSCI_DENIED;
> >
> > +#ifdef CONFIG_SYSTEM_SUSPEND
> > +    if ( is_hardware_domain(d) && host_system_suspend() )
> > +    {
> > +        domain_resume_nopause(d);
> > +        return PSCI_DENIED;
> > +    }
> > +#endif
> > +
> >      rc =3D do_setup_vcpu_ctx(current, epoint, cid);
> >      if ( rc !=3D PSCI_SUCCESS )
> >      {
> > diff --git a/xen/common/domain.c b/xen/common/domain.c
> > index c3609b0cb0..414a691242 100644
> > --- a/xen/common/domain.c
> > +++ b/xen/common/domain.c
> > @@ -1311,7 +1311,11 @@ int domain_shutdown(struct domain *d, u8 reason)
> >          d->shutdown_code =3D reason;
> >      reason =3D d->shutdown_code;
> >
> > +#if defined(CONFIG_SYSTEM_SUSPEND) && defined(CONFIG_ARM)
> > +    if ( reason !=3D SHUTDOWN_suspend && is_hardware_domain(d) )
> > +#else
> >      if ( is_hardware_domain(d) )
> > +#endif
> >          hwdom_shutdown(reason);
> >
> >      if ( d->is_shutting_down )
>
> --
> WBR, Volodymyr

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 13:42:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 13:42:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094432.1449765 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqtwa-0000or-Cp; Tue, 26 Aug 2025 13:42:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094432.1449765; Tue, 26 Aug 2025 13:42: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 1uqtwa-0000nu-7e; Tue, 26 Aug 2025 13:42:36 +0000
Received: by outflank-mailman (input) for mailman id 1094432;
 Tue, 26 Aug 2025 13:42:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+/mc=3G=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1uqtwZ-0007ex-Kk
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 13:42:35 +0000
Received: from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com
 [2a00:1450:4864:20::12e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 84fef405-8282-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 15:42:33 +0200 (CEST)
Received: by mail-lf1-x12e.google.com with SMTP id
 2adb3069b0e04-55f42523658so2596938e87.0
 for <xen-devel@lists.xenproject.org>; Tue, 26 Aug 2025 06:42: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>
X-Inumbo-ID: 84fef405-8282-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756215753; x=1756820553; 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=9DpRZBqV3MEtacuYchd+fMmo0ionwtwWV+8rg/luuZg=;
        b=njRcyE00D9FWd7Rbm3ujAvwEr8TnvoxOFWcLbBm4Xl1FK519UBhcV/oVHJDtvMGf12
         HVNEz1u2QqbzUht50k7SKN1sK2pIu7YqOl+OtxlPvGu+03WLnvhGrT/tWcG9onbZJCDR
         JGW2P45gLMrZpLzMC7y2lI0awD0d9OjtnZj3xwj1CtWkyZxBluA4VhRkx7joxVL7OUMC
         n+J+AaPA1mSVnNQy4gITaJyrX2V5FYb/aSExTceSDFVzNejTO0gO4N/PI1kprRSml0fr
         NPHF3oW6QgbccEO1kVy9tz9+bxNpuqNgW+aub3er1AjZauW4DcwT/0hEoxQDB1q22pun
         GTHw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756215753; x=1756820553;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=9DpRZBqV3MEtacuYchd+fMmo0ionwtwWV+8rg/luuZg=;
        b=NKuQVMoA+d3KhQTWaW22SUU5qp2VwedwoEnGOfggNpO2p0G8mgJBqCBqlvhvToMmD+
         xOTjFtGUyks3d1nYkI85HxI1UJLaoSszKysjHY9mEfmsgfWRaYoacJjk4gnbvMnJ5FP3
         v/MnjRb1cvJzQ6uknYgZpdgie95MhzDmjmvD0m3ilIU8d+ICf1loAS5vYQ1SuG2Bxy2Y
         e54huBFsvP01tZqkkfiB5xuLTXIenieyt3oERmER7vd2ml+kGMi1cJMCijUlj2e6AZY/
         /sjY+ur73a4g2D4VUcjGsXQpBAcpFgMk6blM31wBlpMpMp8Vg/4fqO6Q/YeJr29zOOEb
         Fmfw==
X-Gm-Message-State: AOJu0YzfkgtJtDTSHcb5V3GBDg0BbXGCRHdMo/TmJli5lrgua2bxy3He
	GCt0pNtWznnD5noVmKyPBVkvd+2zRs4sHc/0C9uDyoMWCMYParxBS+A2HuanuQ/ib5/26Pgp9+i
	XzhmPTX9P9ZzUF27xYkjrI0su9OUqDXM=
X-Gm-Gg: ASbGnctLs9JtsihsfIw3txyuEHcfwqdYBFMZTV0xBewJmFue7O5KpB4ALgevMReZdZb
	pn4SnYzgsc/HFjABdRd15hCKp11X6esG+t74beXYC9/x0JPbc3BMMVxaQGnZKiaIbj1DRsYuiKC
	3vJtyrU4hPAdXhQtZHjjQjfu1z+hQfsvE7IiuspIDaMYz/HRzmtXVCEMelA2Jet0UxOa/5WCVUK
	poByPfTMyqbLpur
X-Google-Smtp-Source: AGHT+IH3eX49/Qf/LRBpHMRrk50LvDyoI5iIeSbIRmITMdrUvVCtte4Etiv3iKqCZmA21y5qozTKW0C1ZHB+95Jdxs8=
X-Received: by 2002:a05:6512:2908:b0:553:3422:c39d with SMTP id
 2adb3069b0e04-55f0d3a567bmr3645299e87.37.1756215753064; Tue, 26 Aug 2025
 06:42:33 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1754943874.git.mykola_kvach@epam.com> <c5d6e20ff49fd9367c46e63b96e8a9aa687ffbd3.1754943875.git.mykola_kvach@epam.com>
 <875xee978i.fsf@epam.com>
In-Reply-To: <875xee978i.fsf@epam.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 26 Aug 2025 16:42:21 +0300
X-Gm-Features: Ac12FXwmJebtPby8fSBe5B24t7vny15Vrv_eQmAhx6RJhP8GMzBTBcnQ1-Xa2_I
Message-ID: <CAGeoDV9xq0ZR4gJ=opnHU3CDEASDvAX1Kha_VSoNi7P2sM-Lvg@mail.gmail.com>
Subject: Re: [PATCH v5 08/12] xen/arm: Implement PSCI SYSTEM_SUSPEND call
 (host interface)
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
	Mirela Simonovic <mirela.simonovic@aggios.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, 
	Michal Orzel <michal.orzel@amd.com>, Saeed Nowshadi <saeed.nowshadi@xilinx.com>, 
	Mykyta Poturai <Mykyta_Poturai@epam.com>, Mykola Kvach <Mykola_Kvach@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Volodymyr,

On Sat, Aug 23, 2025 at 4:06=E2=80=AFAM Volodymyr Babchuk
<Volodymyr_Babchuk@epam.com> wrote:
>
>
> Hi Mykola,
>
> Sequence of next 3 patches (and previous one) really puzzles me. Can you
> first implement hyp_resume() function, then add PSCI_SYSTEM_SUSPEND call
> and only then implement system_suspend() function? Why do this backwards?

This order comes from the first version of the patch series.
I'll reorder the commits in the next version.

>
> Mykola Kvach <xakep.amatop@gmail.com> writes:
>
> > 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 v4:
> >   - select the appropriate PSCI SYSTEM_SUSPEND function ID based on pla=
tform
> >   - update comments and commit message to reflect recent changes
> >
> > Changes in v3:
> >   - return PSCI_NOT_SUPPORTED instead of a hardcoded 1 on ARM32
> >   - check PSCI version before invoking SYSTEM_SUSPEND in call_psci_syst=
em_suspend
> > ---
> >  xen/arch/arm/arm64/head.S          |  8 ++++++++
> >  xen/arch/arm/include/asm/psci.h    |  1 +
> >  xen/arch/arm/include/asm/suspend.h |  2 ++
> >  xen/arch/arm/psci.c                | 23 ++++++++++++++++++++++-
> >  xen/arch/arm/suspend.c             |  5 +++++
> >  5 files changed, 38 insertions(+), 1 deletion(-)
> >
> > diff --git a/xen/arch/arm/arm64/head.S b/xen/arch/arm/arm64/head.S
> > index 72c7b24498..3522c497c5 100644
> > --- a/xen/arch/arm/arm64/head.S
> > +++ b/xen/arch/arm/arm64/head.S
> > @@ -561,6 +561,14 @@ END(efi_xen_start)
> >
> >  #endif /* CONFIG_ARM_EFI */
> >
> > +#ifdef CONFIG_SYSTEM_SUSPEND
> > +
> > +FUNC(hyp_resume)
> > +        b .
> > +END(hyp_resume)
> > +
> > +#endif /* CONFIG_SYSTEM_SUSPEND */
> > +
> >  /*
> >   * Local variables:
> >   * mode: ASM
> > 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/include/asm/suspend.h b/xen/arch/arm/include/=
asm/suspend.h
> > index 78d0e2383b..55041a5d06 100644
> > --- a/xen/arch/arm/include/asm/suspend.h
> > +++ b/xen/arch/arm/include/asm/suspend.h
> > @@ -7,6 +7,8 @@
> >
> >  int host_system_suspend(void);
> >
> > +void hyp_resume(void);
> > +
> >  #endif /* CONFIG_SYSTEM_SUSPEND */
> >
> >  #endif /* __ASM_ARM_SUSPEND_H__ */
> > 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, fo=
r
> >   * some calls it is necessary to use SMC64 to pass or return 64-bit va=
lues.
> > - * 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);
> > +    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) )
> > diff --git a/xen/arch/arm/suspend.c b/xen/arch/arm/suspend.c
> > index abf4b928ce..11e86b7f51 100644
> > --- a/xen/arch/arm/suspend.c
> > +++ b/xen/arch/arm/suspend.c
> > @@ -1,5 +1,6 @@
> >  /* SPDX-License-Identifier: GPL-2.0-only */
> >
> > +#include <asm/psci.h>
> >  #include <xen/console.h>
> >  #include <xen/cpu.h>
> >  #include <xen/llc-coloring.h>
> > @@ -70,6 +71,10 @@ static long system_suspend(void *data)
> >       */
> >      update_boot_mapping(true);
> >
> > +    status =3D call_psci_system_suspend();
> > +    if ( status )
> > +        dprintk(XENLOG_WARNING, "PSCI system suspend failed, err=3D%d\=
n", status);
>
> So this is where missing call to PSCI_SYSTEM_SUSPEND is...
>
> > +
> >      system_state =3D SYS_STATE_resume;
> >      update_boot_mapping(false);
>
> --
> WBR, Volodymyr

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 13:50:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 13:50:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094453.1449775 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqu4R-00038m-3E; Tue, 26 Aug 2025 13:50:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094453.1449775; Tue, 26 Aug 2025 13:50: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 1uqu4R-00038f-06; Tue, 26 Aug 2025 13:50:43 +0000
Received: by outflank-mailman (input) for mailman id 1094453;
 Tue, 26 Aug 2025 13:50:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+/mc=3G=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1uqtwd-0007ex-Ro
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 13:42:39 +0000
Received: from mail-lj1-x234.google.com (mail-lj1-x234.google.com
 [2a00:1450:4864:20::234])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 87814bc8-8282-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 15:42:38 +0200 (CEST)
Received: by mail-lj1-x234.google.com with SMTP id
 38308e7fff4ca-333f901b229so47540481fa.2
 for <xen-devel@lists.xenproject.org>; Tue, 26 Aug 2025 06:42: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>
X-Inumbo-ID: 87814bc8-8282-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756215757; x=1756820557; 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=X3mTZzxPEC6M2r+tcymIjxamvl7XaPs1g5xTLEY4cuQ=;
        b=mHSTxOFvupMB0RzvzQ5rh8clN+r8B/2jf+LrnwFooS5Kn2Pzo8y0pDyr6iYckGV/If
         LGr4s5hhxbfJ82XCL2IuzDkw57F7EXrj5Ln3pwrTpl78na8V5Q9/OyGE+nnzewX6BsmK
         gt8al4IjStfOuJaw8+p+acGg1fQSxpPL+c81SIvLitOiRdW2KZorxgVGcw2r6gmIjKD4
         JtAiAVQZEY6XxxETeIrkhez/bO/9hFSxzZnHahjX/Kr1/u/iKR/3tNnzSX1yQL3TxMDx
         H2Ci43k0yIdPr7+qjOp1nbETowR2d2r3X8JUvu+7TdsI9McTetDZ6Dvau53NYIvi4ICB
         y4pA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756215757; x=1756820557;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=X3mTZzxPEC6M2r+tcymIjxamvl7XaPs1g5xTLEY4cuQ=;
        b=na9mEf6NFiRpn8p3VBreOHKiof8boV9NuMA3XqoZfk39NLJjmzubVJ2qVfBO7FdPE/
         /qsqHxEpHfkLg8s1t5v8uDrbVlE95zXClu0rIoTYaTcWc3MLCNsTnicuXvv7eboRN4Bi
         LL7pKxNhxzVOyZhZOPlPbIlOyDZsRV7qbDz6TXbpocKae0twukwCmQ2WAp85dyoEWpjm
         PxpK2Y9Wmr+XRqvvHF8Fj9M2Aca9eBGA8mxF2UCl4CRpAlIzwKqg5I5fYPTG9GNHrNzF
         SSOw3FK9jTEWTj6zPiyENqUDdUM+ssenXqqxT+QDi4tOGo1pVuyj52KXRV9oJ8Cqnfdg
         mz2w==
X-Gm-Message-State: AOJu0YzE8KxZ1/oq5eQIaDVwWMZt0dxiwDNAulc/lToE/Yn+W0kFYZQ6
	odbhCAK55q4lC6klVM8o+YV6fJ+TDGZFEgGG+XcS3I02Em2hn/rKRH+WcoilyDe9mWt8WJqL6Et
	KtD0Ktcpn2cB7fBksC4fR80GvCko8BtN3WA==
X-Gm-Gg: ASbGnct3RaTEYRarmtcuRL7NMNSQjJ7rrzKpwPZt9RwKxLGOOka95jqZiPcvR/7sPyK
	R746Kzao7Q0iV0KlYAEKqiqFCrt2u9Va4wXvAQr5kAZRHJ2iDl3BMexR0OKlGElTXhE127BzEZk
	WURDqeJbrdaGJCprCQfUvfo+Nf9SdBWGdzlz+2GtVNCnqDKX2KD61cvS/n+5zqVXViyOn5A+aIl
	Xmz8HMxurTyGdr5
X-Google-Smtp-Source: AGHT+IFNT5FdckSNdP0Kov8JO3J8KcIqxZ9S7CqKr+p8rYkw78gMUvHQXsSrxo7Fw6OGk7RKrUg3Zo2ndrDNnbXcwew=
X-Received: by 2002:a05:651c:410f:b0:32a:6eea:5c35 with SMTP id
 38308e7fff4ca-33650ea5991mr24506411fa.15.1756215757182; Tue, 26 Aug 2025
 06:42:37 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1754943874.git.mykola_kvach@epam.com> <5441d6712a4ca0e61fd066606b9a96414123aaad.1754943875.git.mykola_kvach@epam.com>
 <87zfbq6iy5.fsf@epam.com>
In-Reply-To: <87zfbq6iy5.fsf@epam.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 26 Aug 2025 16:42:26 +0300
X-Gm-Features: Ac12FXxAQr2EJ7XehoQi9FOuDJtUc5RnERU_qJIukh3-QJhBi5Pc2dGQ-7_3NAk
Message-ID: <CAGeoDV9tA0Op2kiqgq=89SRW_Q_fVRRsS+oAzZJWhaJAxXspbA@mail.gmail.com>
Subject: Re: [PATCH v5 10/12] 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>, 
	Mirela Simonovic <mirela.simonovic@aggios.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, 
	Michal Orzel <michal.orzel@amd.com>, Saeed Nowshadi <saeed.nowshadi@xilinx.com>, 
	Mykyta Poturai <Mykyta_Poturai@epam.com>, Mykola Kvach <Mykola_Kvach@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Volodymyr,

On Sat, Aug 23, 2025 at 8:34=E2=80=AFPM Volodymyr Babchuk
<Volodymyr_Babchuk@epam.com> wrote:
>
>
> Hi Mykola,
>
> Mykola Kvach <xakep.amatop@gmail.com> writes:
>
> > From: Mirela Simonovic <mirela.simonovic@aggios.com>
> >
> > The context of CPU general purpose and system control registers
> > has to be saved on suspend and restored on resume. This is
> > implemented in hyp_suspend and before the return from hyp_resume
> > function. The hyp_suspend is invoked just before the PSCI system
> > suspend call is issued to the ATF. The hyp_suspend has to return a
> > non-zero value so that the calling 'if' statement evaluates to true,
> > causing the system suspend to be invoked. Upon the resume, 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 by the saved link register, which
> > is the place from which the hyp_suspend was called. To ensure
> > that the calling 'if' statement doesn't again evaluate to true
> > and initiate system suspend, hyp_resume has to return a zero value
> > after restoring the context.
> >
> > Note that the order of saving register context into cpu_context
> > structure has to 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 v4:
> > - produce build-time error for ARM32 when CONFIG_SYSTEM_SUSPEND is enab=
led
> > - use register_t instead of uint64_t in cpu_context structure
> > ---
> >  xen/arch/arm/arm64/head.S          | 91 +++++++++++++++++++++++++++++-
> >  xen/arch/arm/include/asm/suspend.h | 20 +++++++
> >  xen/arch/arm/suspend.c             | 23 +++++++-
> >  3 files changed, 130 insertions(+), 4 deletions(-)
> >
> > diff --git a/xen/arch/arm/arm64/head.S b/xen/arch/arm/arm64/head.S
> > index 596e960152..ad8b48de3a 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 hyp_suspend(struct cpu_context *ptr)
> > + *
> > + * 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.
> > + * hyp_suspend shall return a non-zero value. Upon restoring context
> > + * hyp_resume shall return value zero instead. From C code that invoke=
s
> > + * hyp_suspend, the return value is interpreted to determine whether t=
he context
> > + * is saved (hyp_suspend) or restored (hyp_resume).
> > + */
> > +FUNC(hyp_suspend)
>
> I don't think that hyp_suspend is the correct name, as this function in
> fact suspend_nothing. Maybe "prepare_resume_ctx" will be better?

Not a problem to rename it.

>
> > +        /* Store callee-saved registers */
> > +        stp     x19, x20, [x0], #16
>
> If you have struct cpu_context defined, then you probably should use
> define provided by <asm-offsets.h> to access struct fields. Otherwise,
> it will be really easy to get desync between struct definition and this
> asm code.
>
> > +        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
> > +
> > +        /* hyp_suspend must return a non-zero value */
> > +        mov     x0, #1
> > +        ret
> > +END(hyp_suspend)
> >
> >  FUNC(hyp_resume)
> >          /* Initialize the UART if earlyprintk has been enabled. */
> > @@ -580,7 +626,50 @@ FUNC(hyp_resume)
> >          b     enable_secondary_cpu_mm
> >
> >  mmu_resumed:
> > -        b .
> > +        /*
> > +         * Now we can access the cpu_context, so restore the context h=
ere
> > +         * TODO: can we reuse __context_switch and saved_context struc=
t here ?
> > +         */
>
> This is a great idea and I like it very much, but sadly saved_context
> struct has no fields for system _EL2 registers.
>
> > +        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 hyp_suspend. To distinguish a return from hyp_s=
uspend
> > +         * which is called upon finalizing the suspend, as opposed to =
return
> > +         * from this function which executes on resume, we need to ret=
urn 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 55041a5d06..ae71ccb87b 100644
> > --- a/xen/arch/arm/include/asm/suspend.h
> > +++ b/xen/arch/arm/include/asm/suspend.h
> > @@ -5,9 +5,29 @@
> >
> >  #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 host_system_suspend(void);
> >
> >  void hyp_resume(void);
> > +int hyp_suspend(struct cpu_context *ptr);
> >
> >  #endif /* CONFIG_SYSTEM_SUSPEND */
> >
> > diff --git a/xen/arch/arm/suspend.c b/xen/arch/arm/suspend.c
> > index 08b6acaede..b5398e5ca6 100644
> > --- a/xen/arch/arm/suspend.c
> > +++ b/xen/arch/arm/suspend.c
> > @@ -1,6 +1,7 @@
> >  /* SPDX-License-Identifier: GPL-2.0-only */
> >
> >  #include <asm/psci.h>
> > +#include <asm/suspend.h>
> >  #include <xen/console.h>
> >  #include <xen/cpu.h>
> >  #include <xen/llc-coloring.h>
> > @@ -17,6 +18,8 @@
> >   *  - Investigate feasibility and need for implementing system suspend=
 on ARM32
> >   */
> >
> > +struct cpu_context cpu_context;
> > +
> >  /* Xen suspend. Note: data is not used (suspend is the suspend to RAM)=
 */
> >  static long system_suspend(void *data)
> >  {
> > @@ -73,9 +76,23 @@ static long system_suspend(void *data)
> >       */
> >      update_boot_mapping(true);
> >
> > -    status =3D call_psci_system_suspend();
> > -    if ( status )
> > -        dprintk(XENLOG_WARNING, "PSCI system suspend failed, err=3D%d\=
n", status);
> > +    if ( hyp_suspend(&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 hyp_suspend=
. The
> > +         * difference in returning from hyp_suspend on system suspend =
versus
> > +         * resume is in function's return value: on suspend, the retur=
n value is
> > +         * a non-zero value, on resume it is zero. That is why the con=
trol flow
> > +         * will not re-enter this 'if' branch on resume.
> > +         */
>
> Looks like this comment is misplaced. It should be before "if (
> hyp_suspend() )", right?

Actually, the comment is correctly placed here and does not need to be move=
d.

>
> > +        if ( status )
> > +            dprintk(XENLOG_WARNING, "PSCI system suspend failed, err=
=3D%d\n", status);
> > +    }
> >
> >      system_state =3D SYS_STATE_resume;
> >      update_boot_mapping(false);
>
> --
> WBR, Volodymyr

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 13:51:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 13:51:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094485.1449785 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqu54-0003sb-F1; Tue, 26 Aug 2025 13:51:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094485.1449785; Tue, 26 Aug 2025 13:51:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqu54-0003sU-CA; Tue, 26 Aug 2025 13:51:22 +0000
Received: by outflank-mailman (input) for mailman id 1094485;
 Tue, 26 Aug 2025 13:51:20 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+/mc=3G=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1uqtx1-0007MD-3s
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 13:43:03 +0000
Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com
 [2a00:1450:4864:20::12a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 95beb078-8282-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 15:43:01 +0200 (CEST)
Received: by mail-lf1-x12a.google.com with SMTP id
 2adb3069b0e04-55f44d5e6f8so1971049e87.0
 for <xen-devel@lists.xenproject.org>; Tue, 26 Aug 2025 06:43:01 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 95beb078-8282-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756215781; x=1756820581; 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=acZuwbLHFG1MN6CIPiSWJkrdoomkBIOc5XFBpAwwQb4=;
        b=FO9gbLlAD1aPwsoH5sRRN8nvD1JrhTKU4yCXfAkvv9Inz74/9vHIPaL/kDGr2Rms48
         nURVb2j8r2K5XVeY2PpfutFwosgZhW1phIZZGSHPMC8CTA4i+jDkq3Bk+Z8b8GDg8oOB
         odWZPuRwXT0aFpAxULF3YbWhF6JMi/jP7EawsGMB2ThRWvvn7aGef2h6cNbLlNrVrMwC
         QVjGaybytOU1+PkrMPG5pFAKvdgUuGpIKYvkEXbuF+bDVxMDZnET4yKUl+Y4WuRy/F5V
         CTntWQEkYFmPxxFpBvapkF0UoG1nZViV0MRmuIrhuieqO9Objwph7vaqqrx164dCC9RX
         CIag==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756215781; x=1756820581;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=acZuwbLHFG1MN6CIPiSWJkrdoomkBIOc5XFBpAwwQb4=;
        b=jE0htqkdvKYuWaPWKr/gGU+YGUwToeS0zPqLKydWb7sndn3paUdE6kRPMAEtXFpgAy
         K6/Si2CC49PqOIlbIoQYLOTfd1e+xDdeGbYq8ZCaQAsaiBs8oxlgYJbY5uH2FqjdWM7L
         VYwC1XEbV/tAlGpJCrwX/Oi1jUTvK5nnGMwQBSrPaPJ9mhlSKwxyqHd08lRR/UmVViQn
         PyqwN/8iBE7dH+WqhRXI2XFIGXoGsZ27uieSIdvyw4wbc/0q+UMt/fNtG/CXW9Ei1pu5
         heOniDx+zb2zal/Pwpc3rJejFsPCcfh/ASjYsbOpJq64QOqPCzF+TCmc3w7M6u31wlrh
         P6mQ==
X-Gm-Message-State: AOJu0YwqssCpc7eMLu7PqHGXOIOv7n+AyoOBaWe5JAF2sH2Xr3BhQW3D
	sNzBA83dga/6Gu0VRq1BS+Bjhf6ZEs204YWSB+6tskSssIcO0rzaEeyLOGftlnyu/oWmQODOxAa
	lKHwb8r3IIZov8K7c/RGcdwUIuKshrsY=
X-Gm-Gg: ASbGncsCsW49/Ow/fez74SUbMnGZ7jiSsNA8z//8MHIkXRMYTLHxx41zjgFlaN3HLPU
	Yjp8XCcaNc9eQsVMeWdFbCcuV2ZLYjooY/EW3qns7zEeM0/lX5+80OV03+pR57enU64Liwe0qDq
	1IPyoYdWs7OAXXEb7yfsTvk81B7UKfnv6FbBwRqg459seQPmDuv18alh+U9vl2zQaVuz0LcYi14
	fkO3RE6jYcTXURA
X-Google-Smtp-Source: AGHT+IFD6cBisTwl8yAlnXGU3XjDUba1NWnGY8Bpx7m+/ZmrEiQZ6ZJnfS7ukw1yacPk5YDSlnSb1LFmmljeX1UgkY4=
X-Received: by 2002:a05:6512:31c3:b0:553:ab9a:c94 with SMTP id
 2adb3069b0e04-55f0c6f7196mr5075269e87.6.1756215781195; Tue, 26 Aug 2025
 06:43:01 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1754943874.git.mykola_kvach@epam.com> <821e0762f64c8b33260a59c672eabf1da5fb4dd4.1754943875.git.mykola_kvach@epam.com>
 <87frdh7wk0.fsf@epam.com>
In-Reply-To: <87frdh7wk0.fsf@epam.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 26 Aug 2025 16:42:49 +0300
X-Gm-Features: Ac12FXxG5aeG8gGEf9kaJaoXCSZuXqFdfsBbzYHmlwfJAeDRKcQjUBs69CIBOMY
Message-ID: <CAGeoDV9ftF_hihWJHqEV8R8X6ddbbZ_GCe7pgftD+S1u+FCr8g@mail.gmail.com>
Subject: Re: [PATCH v5 12/12] xen/arm: Suspend/resume IOMMU on Xen suspend/resume
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
	Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, 
	Michal Orzel <michal.orzel@amd.com>, Mykola Kvach <Mykola_Kvach@epam.com>, 
	Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Volodymyr,

On Sat, Aug 23, 2025 at 8:55=E2=80=AFPM Volodymyr Babchuk
<Volodymyr_Babchuk@epam.com> wrote:
>
> Hi,
>
> Mykola Kvach <xakep.amatop@gmail.com> writes:
>
> > From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> >
> > This is done using generic iommu_suspend/resume functions that cause
> > IOMMU driver specific suspend/resume handlers to be called for enabled
> > IOMMU (if one has suspend/resume driver handlers implemented).
> >
> > These handlers work only when IPMMU-VMSA is used; otherwise,
> > we return an error during system suspend requests.
> >
> > Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> > Tested-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> > ---
> >  xen/arch/arm/suspend.c | 21 +++++++++++++++++++++
> >  1 file changed, 21 insertions(+)
> >
> > diff --git a/xen/arch/arm/suspend.c b/xen/arch/arm/suspend.c
> > index b5398e5ca6..cb86426ebd 100644
> > --- a/xen/arch/arm/suspend.c
> > +++ b/xen/arch/arm/suspend.c
> > @@ -4,6 +4,7 @@
> >  #include <asm/suspend.h>
> >  #include <xen/console.h>
> >  #include <xen/cpu.h>
> > +#include <xen/iommu.h>
> >  #include <xen/llc-coloring.h>
> >  #include <xen/sched.h>
> >
> > @@ -49,6 +50,13 @@ static long system_suspend(void *data)
> >
> >      time_suspend();
> >
> > +    status =3D iommu_suspend();
> > +    if ( status )
> > +    {
> > +        system_state =3D SYS_STATE_resume;
> > +        goto resume_time;
> > +    }
> > +
> >      local_irq_save(flags);
> >      status =3D gic_suspend();
> >      if ( status )
> > @@ -105,6 +113,10 @@ static long system_suspend(void *data)
> >
> >   resume_irqs:
> >      local_irq_restore(flags);
> > +
> > +    iommu_resume();
> > +
> > + resume_time:
> >      time_resume();
> >
> >   resume_nonboot_cpus:
> > @@ -140,6 +152,15 @@ int host_system_suspend(void)
> >          return -ENOSYS;
> >      }
> >
> > +    /* TODO: drop check once suspend/resume support for SMMU is implem=
ented */
> > +#ifndef CONFIG_IPMMU_VMSA
>
> This check is meaningless, as you can have CONFIG_IPMMU_VMSA enabled
> along with CONFIG_ARM_SMMU on a system with SMMU. I think it is enough
> that iommu_suspend() will fail during system_suspend(), isn't it?

Not exactly. In the case of SMMU, we don=E2=80=99t have valid iommu_suspend=
/iommu_resume
handlers. So it=E2=80=99s possible to have CONFIG_ARM_SMMU enabled and iomm=
u_enabled
set, but without the appropriate suspend handlers. This could lead to
a crash during
system_suspend().


>
>
> > +    if ( iommu_enabled )
> > +    {
> > +        dprintk(XENLOG_ERR, "IOMMU is enabled, suspend not supported y=
et\n");
> > +        return -ENOSYS;
> > +    }
> > +#endif
> > +
> >      /*
> >       * system_suspend should be called when Dom0 finalizes the suspend
> >       * procedure from its boot core (VCPU#0). However, Dom0's VCPU#0 c=
ould
>
> --
> WBR, Volodymyr

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 13:51:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 13:51:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094491.1449794 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqu58-00049j-MC; Tue, 26 Aug 2025 13:51:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094491.1449794; Tue, 26 Aug 2025 13:51:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqu58-00049c-J7; Tue, 26 Aug 2025 13:51:26 +0000
Received: by outflank-mailman (input) for mailman id 1094491;
 Tue, 26 Aug 2025 13:51:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+/mc=3G=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1uqtwi-0007MD-8H
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 13:42:44 +0000
Received: from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com
 [2a00:1450:4864:20::12e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8acf5dd6-8282-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 15:42:43 +0200 (CEST)
Received: by mail-lf1-x12e.google.com with SMTP id
 2adb3069b0e04-55f4cf36c00so1095073e87.1
 for <xen-devel@lists.xenproject.org>; Tue, 26 Aug 2025 06:42: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>
X-Inumbo-ID: 8acf5dd6-8282-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756215763; x=1756820563; 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=yDszcKlB1VrGnElLTrFUBb/kLsyskQGsR6/f+F1Ka7Q=;
        b=WOjmc133QbNIw+poHyzzUbC5vyO1JQ3xE2GkcnzVzX7+K09CHsuvz2/GfbQCilGSqL
         LREa4xWIOGV7NwV1zkQCo/JWEhjzm9yzZvraG+cskhoyQMl3L0hDnuKl8a+ypa7AU7mP
         9njUB/+W9Hy9qdVJWwy6vXPfQxD6xK2Wmg50jrUVe6D4acLnMPXTat0ReuCBb7Z1dp6m
         DEexiJSzHwu4DOFF+pbx6eRqm46G5KC6RXEC8e4ayftJwN9WmeDtgvrMUcyNFNAAdnZs
         to+jSp1ScXVHX8qDZLYr6BRBJzAAL+NadXbSYaibODO+c9cQvVZMxUa6eTAL92nwEe7V
         rRqg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756215763; x=1756820563;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=yDszcKlB1VrGnElLTrFUBb/kLsyskQGsR6/f+F1Ka7Q=;
        b=GEvShAMe6bSEqWevffKr6UBY46A5br9dzVFevoh+2cVAZDMKQHEswQj1ShoOWCKvbr
         esHTwB25ZJTBpAMfNBA59HE3Jo+3PufZD0yiJd2mNnlGwqAtXCrk/i11x/jgp5iunadd
         yoyNzzGGVc+YooiD+SdY3QHqUp3Na3p/ZRspkvpbefeRLCVL7YKs3N6T8Nid9VgA8CKU
         +s6XB1CaqEmYIwyz2QNDjBRv5tXzdaDXI77N0LDkOTCF6agGvEmx48akJM26eT2d3iaM
         mw19kPm7BH0oZ/w1ql0h7fkINWQR5JfR+jGwkKZHiNpqu6xeJXlmpeS2zDCVsJd/Bg7Q
         SuEA==
X-Gm-Message-State: AOJu0YzlaWsRz1PEiJoLoD8XNGW49fvolVrBq7Z+5HvnazBm6kcuXL8C
	5og90AS7o0+FEJVksg4lZBvkgC/UfyJWS2CyCsazBBYqs0cs3rx7idcUaYJF3uEP6JeHTz9NtmR
	jTco2uOMwcQHeXXiDUq3yskzJAfJCi0U=
X-Gm-Gg: ASbGncsmhKFBqfBioZ7xi4B6CRpspdX8nskPhajPJiJjifRcs7Mwo6DVB0DPW7S03GA
	y65h6hjS1Ymbo+rgiJqv/W8V1LhdM88G2KzsCszuGZxtG+EOrz80QQdLyI/eLoimf87HEZ4xTUJ
	9/1/7TgBBdBftJ78POYY7rW/rN/KobU5LdGgAYrwerOYemw5bH9I93SNjeNmd2k076UTrM7xXCM
	mCbQw==
X-Google-Smtp-Source: AGHT+IF83bnN+Rn6SETMprNxLDqYn3Oa32n/emHN7L11kFTD4jAa5jXEfiASWrm1+/EhdAUC2x3w1NlDeDUyug49x/U=
X-Received: by 2002:a05:6512:1518:10b0:55f:3bab:f205 with SMTP id
 2adb3069b0e04-55f3babf38dmr2216301e87.42.1756215762615; Tue, 26 Aug 2025
 06:42:42 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1754943874.git.mykola_kvach@epam.com> <1689d707b930b1ea4f63cc150810e548962cda81.1754943875.git.mykola_kvach@epam.com>
 <87ldna6ia8.fsf@epam.com>
In-Reply-To: <87ldna6ia8.fsf@epam.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 26 Aug 2025 16:42:31 +0300
X-Gm-Features: Ac12FXzNhdmUhbvV1XvV6pj2kKFbIMTFDkvyORALk8YOcGEFPk6Mq_WP57ikkqA
Message-ID: <CAGeoDV9Hv02gO=7pcMf_k3XQc=Stp76hEmiDfT1wc5M1NNSmOQ@mail.gmail.com>
Subject: Re: [PATCH v5 11/12] iommu/ipmmu-vmsa: Implement suspend/resume callbacks
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
	Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, 
	Michal Orzel <michal.orzel@amd.com>, Mykola Kvach <Mykola_Kvach@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Volodymyr,

On Sat, Aug 23, 2025 at 8:48=E2=80=AFPM Volodymyr Babchuk
<Volodymyr_Babchuk@epam.com> wrote:
>
>
> Hi Mykola,
>
> Mykola Kvach <xakep.amatop@gmail.com> writes:
>
> > 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>
> > ---
> >  xen/drivers/passthrough/arm/ipmmu-vmsa.c | 269 +++++++++++++++++++++++
> >  1 file changed, 269 insertions(+)
> >
> > diff --git a/xen/drivers/passthrough/arm/ipmmu-vmsa.c b/xen/drivers/pas=
sthrough/arm/ipmmu-vmsa.c
> > index dac0dd6d46..ced762657a 100644
> > --- a/xen/drivers/passthrough/arm/ipmmu-vmsa.c
> > +++ b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
> > @@ -58,6 +58,8 @@
> >  #define dev_print(dev, lvl, fmt, ...)    \
> >      printk(lvl "ipmmu: %s: " fmt, dev_name(dev), ## __VA_ARGS__)
> >
> > +#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, ...)    \
> > @@ -117,6 +119,23 @@ struct ipmmu_features {
> >      unsigned int imuctr_ttsel_mask;
> >  };
> >
> > +#ifdef CONFIG_SYSTEM_SUSPEND
> > +
> > +struct hw_register {
> > +    const char *reg_name;
>
> Do you really need to store register name? It is not used anywhere.

No, it=E2=80=99s not needed. We can remove it.
Thank you for catching that.

>
> > +    unsigned int reg_offset;
> > +    unsigned int reg_data;
> > +};
> > +
> > +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;
> > @@ -129,6 +148,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 hw_register *reg_backup[IPMMU_CTX_MAX];
> > +#endif
> >  };
> >
> >  /*
> > @@ -534,6 +556,235 @@ static void ipmmu_domain_free_context(struct ipmm=
u_vmsa_device *mmu,
> >      spin_unlock_irqrestore(&mmu->lock, flags);
> >  }
> >
> > +#ifdef CONFIG_SYSTEM_SUSPEND
> > +
> > +static DEFINE_SPINLOCK(ipmmu_devices_backup_lock);
> > +static LIST_HEAD(ipmmu_devices_backup);
> > +
> > +#define HW_REGISTER_BACKUP_SIZE 4
> > +
> > +static struct hw_register root_pgtable[IPMMU_CTX_MAX][HW_REGISTER_BACK=
UP_SIZE] =3D {
> > +    [0 ... (IPMMU_CTX_MAX - 1)] =3D {
> > +        {"IMTTLBR0", IMTTLBR0, 0},
> > +        {"IMTTUBR0", IMTTUBR0, 0},
> > +        {"IMTTBCR",  IMTTBCR,  0},
> > +        {"IMCTR",    IMCTR,    0},
>
> Taking into account that only 4 registers needs to be saved, will it be
> easier and more efficient to have a hardcoded struct like this?
>
> struct ipmmu_reg_ctx {
>     unsigned int imttlbr0;
>     unsigned int imttubr0;
>     unsigned int imttbcr;
>     unsigned int imctr;
> }
>
> instead of hw_register[] ?
>
> Especially taking into account that struct ipmmu_vmsa_backup{} does
> exactly this.

I see no problem with doing that.

>
>
> > +    }
> > +};
> > +
> > +static uint32_t ipmmu_imuasid_read(struct ipmmu_vmsa_device *mmu,
> > +                                   unsigned int utlb)
> > +{
> > +    return ipmmu_read(mmu, ipmmu_utlb_reg(mmu, IMUASID(utlb)));
> > +}
> > +
> > +static void ipmmu_utlbs_backup(struct ipmmu_vmsa_device *mmu)
> > +{
> > +    struct ipmmu_vmsa_backup *backup_data;
> > +
> > +    dev_dbg(mmu->dev, "Handle micro-TLBs backup\n");
> > +
> > +    spin_lock(&ipmmu_devices_backup_lock);
> > +
> > +    list_for_each_entry( backup_data, &ipmmu_devices_backup, list )
> > +    {
> > +        struct iommu_fwspec *fwspec =3D dev_iommu_fwspec_get(backup_da=
ta->dev);
> > +        unsigned int i;
> > +
> > +        if ( to_ipmmu(backup_data->dev) !=3D mmu )
> > +            continue;
> > +
> > +        for ( i =3D 0; i < fwspec->num_ids; i++ )
> > +        {
> > +            unsigned int utlb =3D fwspec->ids[i];
> > +
> > +            backup_data->asids_val[i] =3D ipmmu_imuasid_read(mmu, utlb=
);
> > +            backup_data->utlbs_val[i] =3D ipmmu_imuctr_read(mmu, utlb)=
;
> > +        }
> > +    }
> > +
> > +    spin_unlock(&ipmmu_devices_backup_lock);
> > +}
> > +
> > +static void ipmmu_utlbs_restore(struct ipmmu_vmsa_device *mmu)
> > +{
> > +    struct ipmmu_vmsa_backup *backup_data;
> > +
> > +    dev_dbg(mmu->dev, "Handle micro-TLBs restore\n");
> > +
> > +    spin_lock(&ipmmu_devices_backup_lock);
> > +
> > +    list_for_each_entry( backup_data, &ipmmu_devices_backup, list )
> > +    {
> > +        struct iommu_fwspec *fwspec =3D dev_iommu_fwspec_get(backup_da=
ta->dev);
> > +        unsigned int i;
> > +
> > +        if ( to_ipmmu(backup_data->dev) !=3D mmu )
> > +            continue;
> > +
> > +        for ( i =3D 0; i < fwspec->num_ids; i++ )
> > +        {
> > +            unsigned int utlb =3D fwspec->ids[i];
> > +
> > +            ipmmu_imuasid_write(mmu, utlb, backup_data->asids_val[i]);
> > +            ipmmu_imuctr_write(mmu, utlb, backup_data->utlbs_val[i]);
> > +        }
> > +    }
> > +
> > +    spin_unlock(&ipmmu_devices_backup_lock);
> > +}
> > +
> > +static void ipmmu_domain_backup_context(struct ipmmu_vmsa_domain *doma=
in)
> > +{
> > +    struct ipmmu_vmsa_device *mmu =3D domain->mmu->root;
> > +    struct hw_register *reg =3D mmu->reg_backup[domain->context_id];
> > +    unsigned int i;
> > +
> > +    dev_dbg(mmu->dev, "Handle domain context %u backup\n", domain->con=
text_id);
> > +
> > +    for ( i =3D 0; i < HW_REGISTER_BACKUP_SIZE; i++ )
> > +        reg[i].reg_data =3D ipmmu_ctx_read_root(domain, reg[i].reg_off=
set);
> > +}
> > +
> > +static void ipmmu_domain_restore_context(struct ipmmu_vmsa_domain *dom=
ain)
> > +{
> > +    struct ipmmu_vmsa_device *mmu =3D domain->mmu->root;
> > +    struct hw_register *reg =3D mmu->reg_backup[domain->context_id];
> > +    unsigned int i;
> > +
> > +    dev_dbg(mmu->dev, "Handle domain context %u restore\n", domain->co=
ntext_id);
> > +
> > +    for ( i =3D 0; i < HW_REGISTER_BACKUP_SIZE; i++ )
> > +    {
> > +        if ( reg[i].reg_offset !=3D IMCTR )
> > +            ipmmu_ctx_write_root(domain, reg[i].reg_offset, reg[i].reg=
_data);
> > +        else
> > +            ipmmu_ctx_write_all(domain, reg[i].reg_offset,
> > +                                reg[i].reg_data | IMCTR_FLUSH);
> > +    }
> > +}
> > +
> > +/*
> > + * Xen: Unlike Linux implementation, Xen uses a single driver instance
> > + * for handling all IPMMUs. There is no framework for ipmmu_suspend/re=
sume
> > + * callbacks to be invoked for each IPMMU device. So, we need to itera=
te
> > + * through all registered IPMMUs performing required actions.
> > + *
> > + * Also take care of restoring special settings, such as translation
> > + * table format, etc.
> > + */
> > +static int __must_check ipmmu_suspend(void)
> > +{
> > +    struct ipmmu_vmsa_device *mmu;
> > +
> > +    if ( !iommu_enabled )
> > +        return 0;
> > +
> > +    printk(XENLOG_DEBUG "ipmmu: Suspending ...\n");
> > +
> > +    spin_lock(&ipmmu_devices_lock);
> > +
> > +    list_for_each_entry( mmu, &ipmmu_devices, list )
> > +    {
> > +        if ( ipmmu_is_root(mmu) )
> > +        {
> > +            unsigned int i;
> > +
> > +            for ( i =3D 0; i < mmu->num_ctx; i++ )
> > +            {
> > +                if ( !mmu->domains[i] )
> > +                    continue;
> > +                ipmmu_domain_backup_context(mmu->domains[i]);
> > +            }
> > +        }
> > +        else
> > +            ipmmu_utlbs_backup(mmu);
> > +    }
> > +
> > +    spin_unlock(&ipmmu_devices_lock);
> > +
> > +    return 0;
> > +}
> > +
> > +static void ipmmu_resume(void)
> > +{
> > +    struct ipmmu_vmsa_device *mmu;
> > +
> > +    if ( !iommu_enabled )
> > +        return;
> > +
> > +    printk(XENLOG_DEBUG "ipmmu: Resuming ...\n");
> > +
> > +    spin_lock(&ipmmu_devices_lock);
> > +
> > +    list_for_each_entry( mmu, &ipmmu_devices, list )
> > +    {
> > +        uint32_t reg;
> > +
> > +        /* Do not use security group function */
> > +        reg =3D IMSCTLR + mmu->features->control_offset_base;
> > +        ipmmu_write(mmu, reg, ipmmu_read(mmu, reg) & ~IMSCTLR_USE_SECG=
RP);
> > +
> > +        if ( ipmmu_is_root(mmu) )
> > +        {
> > +            unsigned int i;
> > +
> > +            /* Use stage 2 translation table format */
> > +            reg =3D IMSAUXCTLR + mmu->features->control_offset_base;
> > +            ipmmu_write(mmu, reg, ipmmu_read(mmu, reg) | IMSAUXCTLR_S2=
PTE);
> > +
> > +            for ( i =3D 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 =3D dev_iommu_fwspec_get(dev);
> > +
> > +    utlbs_val =3D xzalloc_array(unsigned int, fwspec->num_ids);
> > +    if ( !utlbs_val )
> > +        return -ENOMEM;
> > +
> > +    asids_val =3D xzalloc_array(unsigned int, fwspec->num_ids);
> > +    if ( !asids_val )
> > +    {
> > +        xfree(utlbs_val);
> > +        return -ENOMEM;
> > +    }
> > +
> > +    backup_data =3D xzalloc(struct ipmmu_vmsa_backup);
> > +    if ( !backup_data )
> > +    {
> > +        xfree(utlbs_val);
> > +        xfree(asids_val);
> > +        return -ENOMEM;
> > +    }
> > +
> > +    backup_data->dev =3D dev;
> > +    backup_data->utlbs_val =3D utlbs_val;
> > +    backup_data->asids_val =3D asids_val;
> > +
> > +    spin_lock(&ipmmu_devices_backup_lock);
> > +    list_add(&backup_data->list, &ipmmu_devices_backup);
> > +    spin_unlock(&ipmmu_devices_backup_lock);
> > +
> > +    return 0;
> > +}
> > +
> > +#endif /* CONFIG_SYSTEM_SUSPEND */
> > +
> >  static int ipmmu_domain_init_context(struct ipmmu_vmsa_domain *domain)
> >  {
> >      uint64_t ttbr;
> > @@ -546,6 +797,9 @@ static int ipmmu_domain_init_context(struct ipmmu_v=
msa_domain *domain)
> >          return ret;
> >
> >      domain->context_id =3D ret;
> > +#ifdef CONFIG_SYSTEM_SUSPEND
> > +    domain->mmu->root->reg_backup[ret] =3D root_pgtable[ret];
> > +#endif
> >
> >      /*
> >       * TTBR0
> > @@ -602,6 +856,9 @@ static void ipmmu_domain_destroy_context(struct ipm=
mu_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] =3D NULL;
> > +#endif
> >      ipmmu_domain_free_context(domain->mmu->root, domain->context_id);
> >  }
> >
> > @@ -1307,6 +1564,14 @@ 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
> > +
> >      dev_info(dev, "Added master device (IPMMU %s micro-TLBs %u)\n",
> >               dev_name(fwspec->iommu_dev), fwspec->num_ids);
> >
> > @@ -1372,6 +1637,10 @@ static const struct iommu_ops ipmmu_iommu_ops =
=3D
> >      .unmap_page      =3D arm_iommu_unmap_page,
> >      .dt_xlate        =3D ipmmu_dt_xlate,
> >      .add_device      =3D ipmmu_add_device,
> > +#ifdef CONFIG_SYSTEM_SUSPEND
> > +    .suspend         =3D ipmmu_suspend,
> > +    .resume          =3D ipmmu_resume,
> > +#endif
> >  };
> >
> >  static __init int ipmmu_init(struct dt_device_node *node, const void *=
data)
>
> --
> WBR, Volodymyr

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 13:55:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 13:55:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094514.1449804 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqu8n-00052q-4p; Tue, 26 Aug 2025 13:55:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094514.1449804; Tue, 26 Aug 2025 13:55: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 1uqu8n-00052j-2E; Tue, 26 Aug 2025 13:55:13 +0000
Received: by outflank-mailman (input) for mailman id 1094514;
 Tue, 26 Aug 2025 13:55:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=EpqW=3G=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1uqu8m-00052d-5p
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 13:55:12 +0000
Received: from fout-a2-smtp.messagingengine.com
 (fout-a2-smtp.messagingengine.com [103.168.172.145])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 471b5845-8284-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 15:55:09 +0200 (CEST)
Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44])
 by mailfout.phl.internal (Postfix) with ESMTP id 71658EC0495;
 Tue, 26 Aug 2025 09:55:08 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-04.internal (MEProxy); Tue, 26 Aug 2025 09:55:08 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 26 Aug 2025 09:55:07 -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>
X-Inumbo-ID: 471b5845-8284-11f0-a32c-13f23c93f187
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=1756216508;
	 x=1756302908; bh=K8WQCwSehiom9QczQ6FIl2QN0kQnpXkCGstJKkpJdxA=; b=
	deiiDOzJjdswrFCerYyFahErntKyIh8x6Isy92/DqbmfhiCDtsPao+QeOVI8UyJ0
	OZlXFI4kgxuWzUeNsUW/qPk1gwhB2LzuDrLGackkqQn4rdhYx238JHWAZ6mluCDx
	YmTc9sjYzY/2TUP11bDC39zi7Koxi93zr8B1Dfp+HnELh/osGl8RQHuuknIVUgHk
	aG0WWRSeB+q7SMjqxbwDvx8VIcc8e0H41dMpjrz3OaMTLq55pgekn/FsGdLAg3Ca
	asJPbhZNwzgqjHuTTBRb1GkuPk6rHW4TYfcGsalRCKJMz6d6Wu0/LTicCB0fWh+J
	ACala883X1/GXrQ0ClzNlQ==
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=fm1; t=
	1756216508; x=1756302908; bh=K8WQCwSehiom9QczQ6FIl2QN0kQnpXkCGst
	JKkpJdxA=; b=oJ7PA3E+XDYKdQUEyRAxpyMmkn598EDy39DRwlLJYktUweaNR+d
	jZxruHEtkvdiSk2wS731x8LSC1poW7M8PP2s5aNLaXZSSHMz3AnYU357vTGEpliU
	z4cdyGG0+I/euUBqa7ajVmhwj9qydFeWaAzKFbvDVRBSQagaKGlbwIbzrf6aAh8e
	PSfgsYIz8Ht86Hb9PI4xQLYm29wRhXRcy3NllydZkgjqxrFX5Ep8sUGWp9Q671Xb
	nDEjkScU+TkUs01X5I+e0J/D/vqosBRmHn8Mr49ORGOQoPz/szUVDGnumuLwUBe7
	nbROU+cLqZwXxmigYtsEhW8l0D01IeoHZWQ==
X-ME-Sender: <xms:vLytaOnYnQANvovqHABr7Q0VH3L4TVr6eGZezxUZt8eSQTboRz3v7w>
    <xme:vLytaJG5YE1O70oBjRi8uuPg47MIGS1nS6OdWtcqgD18N1o5tPmzXcDhetDY-hjhY
    ETiMHvVvMmCaQ>
X-ME-Received: <xmr:vLytaGHMXZGclwbgz7P-ovvXaMw8qMe2az6S3Dg30fMo4HrfJKvR6R5bpAy_z1rlfuB1o84uECKaXPImVDjKlVWW_sruGXiI44E>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgddujeehgeegucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepueekteet
    gefggfekudehteegieeljeejieeihfejgeevhfetgffgteeuteetueetnecuffhomhgrih
    hnpehgihhthhhusgdrtghomhenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhep
    mhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrg
    gsrdgtohhmpdhnsggprhgtphhtthhopeefpdhmohguvgepshhmthhpohhuthdprhgtphht
    thhopehrohhgvghrrdhprghusegtihhtrhhigidrtghomhdprhgtphhtthhopehjsggvuh
    hlihgthhesshhushgvrdgtohhmpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishht
    shdrgigvnhhprhhojhgvtghtrdhorhhg
X-ME-Proxy: <xmx:vLytaOOmXBz1At0ywJ8Ibf6jUrikqGVZ5MWxXNPZy-zlH92ZUB8ZzQ>
    <xmx:vLytaNGBOA-WmfG53s09C0HlQPav7yL4mozXVbkQ0sBeR9LSxx-CwA>
    <xmx:vLytaNMVMJhP7zi3mCgOcsoBDT0_nIR3ZCqigvCrWSVBeOO6YzZfpQ>
    <xmx:vLytaG-dx3vlYH0uRmsweI-E3Nly59TYbQOWkygXzB8LZceb5DnsRQ>
    <xmx:vLytaNPpRmSy8AWKA6NFCeaqK-arcgKV2UKeMFdW45zuLQMiHyzuKYaW>
Feedback-ID: i1568416f:Fastmail
Date: Tue, 26 Aug 2025 15:55:05 +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: Jan Beulich <jbeulich@suse.com>,
	xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: MSI-X cleanup(?) issue with passthrough after domU restart
Message-ID: <aK28ubf5F3x-of3X@mail-itl>
References: <aK0St0oUkJzR9lO0@mail-itl>
 <2aafbace-3aa2-4f58-8f6c-2815cd2315ad@suse.com>
 <aK1wSKTg5LcuzBDc@macbook.local>
 <aK2TLuB_yKlWjFgM@mail-itl>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="SPDx3WFh/ytkDTPC"
Content-Disposition: inline
In-Reply-To: <aK2TLuB_yKlWjFgM@mail-itl>


--SPDx3WFh/ytkDTPC
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Tue, 26 Aug 2025 15:55:05 +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: Jan Beulich <jbeulich@suse.com>,
	xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: MSI-X cleanup(?) issue with passthrough after domU restart

On Tue, Aug 26, 2025 at 12:57:50PM +0200, Marek Marczykowski-G=C3=B3recki w=
rote:
> On Tue, Aug 26, 2025 at 10:28:56AM +0200, Roger Pau Monn=C3=A9 wrote:
> > On Tue, Aug 26, 2025 at 08:16:56AM +0200, Jan Beulich wrote:
> > > On 26.08.2025 03:49, Marek Marczykowski-G=C3=B3recki wrote:
> > > > Hi,
> > > >=20
> > > > I'm hitting an MSI-X issue after rebooting the domU. The symptoms a=
re
> > > > rather boring: on initial domU start the device (realtek eth card) =
works
> > > > fine, but after domU restart, the link doesn't come up (there is no
> > > > "Link is Up" message anymore). No errors from domU driver or Xen. I
> > > > tracked it down to MSI-X - if I force INTx (via pci=3Dnomsi on domU
> > > > cmdline) it works fine. Convincing the driver to poll instead of wa=
iting
> > > > for an interrupt also workarounds the issue.
> > > >=20
> > > > I noticed also some interrupts are not cleaned up on restart. The l=
ist
> > > > of MSIs in 'Q' debug key output grows:
> > > >=20
> > > >     (XEN) 0000:03:00.0 - d22 - node -1  - MSIs < 41 42 43 44 45 46 =
47 >
> > > >     restart sys-net domU
> > > >     (XEN) 0000:03:00.0 - d24 - node -1  - MSIs < 41 42 43 44 45 46 =
47 48 >
> > > >     restart sys-net domU
> > > >     (XEN) 0000:03:00.0 - d26 - node -1  - MSIs < 41 42 43 44 45 46 =
47 48 49 >
> > > >=20
> > > > and 'M' output is:
> > > >=20
> > > >     (XEN)  MSI-X   41 vec=3Db1 lowest  edge   assert  log lowest de=
st=3D00000001 mask=3D1/H /1
> > > >     (XEN)  MSI-X   42 vec=3Db9 lowest  edge   assert  log lowest de=
st=3D00000004 mask=3D1/HG/1
> > > >     (XEN)  MSI-X   43 vec=3Dc1 lowest  edge   assert  log lowest de=
st=3D00000010 mask=3D1/HG/1
> > > >     (XEN)  MSI-X   44 vec=3Dd9 lowest  edge   assert  log lowest de=
st=3D00000001 mask=3D1/HG/1
> > > >     (XEN)  MSI-X   45 vec=3De1 lowest  edge   assert  log lowest de=
st=3D00000001 mask=3D1/HG/1
> > > >     (XEN)  MSI-X   46 vec=3De9 lowest  edge   assert  log lowest de=
st=3D00000040 mask=3D1/HG/1
> > > >     (XEN)  MSI-X   47 vec=3D32 lowest  edge   assert  log lowest de=
st=3D00000004 mask=3D1/HG/1
> > > >     (XEN)  MSI-X   48 vec=3D3a lowest  edge   assert  log lowest de=
st=3D00000040 mask=3D1/HG/1
> > > >     (XEN)  MSI-X   49 vec=3D42 lowest  edge   assert  log lowest de=
st=3D00000010 mask=3D1/ G/1
> > > >=20
> > > > And also, after starting and stopping the domU, `xl pci-assignable-=
remove 03:00.0`
> > > > makes pciback to complain:
> > > >=20
> > > >     [ 1180.919874] pciback 0000:03:00.0: xen_pciback: MSI-X release=
 failed (-16)
> > > >=20
> > > > This is all running on Xen 4.19.3, but I don't see much changes in =
this
> > > > area since then.
> > > >=20
> > > > Some more info collected at https://github.com/QubesOS/qubes-issues=
/issues/9335
> > > >=20
> > > > My question is: what should be responsible for this cleanup on doma=
in
> > > > destroy? Xen, or maybe device model (which is QEMU in stubdomain he=
re)?
> > >=20
> > > The expectation is that qemu invokes the necessary cleanup, but of co=
urse ...
> > >=20
> > > > I see some cleanup (apparently not enough) happening via QEMU when =
the
> > > > domU driver is unloaded, but logically correct cleanup shouldn't de=
pend
> > > > on correct domU operation...
> > >=20
> > > ... Xen may not make itself dependent upon either DomU or QEMU.
> >=20
> > AFAICT free_domain_pirqs() called by arch_domain_destroy() should take
> > care of unbinding and freeing pirqs (but obviously not in this case).
> > Can you repeat the test with a debug=3Dy hypervisor and post the
> > resulting serial or dmesg here?  Some of the errors on those paths are
> > printed with dprintk() and won't be visible unless using a Xen debug
> > build.
>=20
> Sure, will do.

Output collected during domU shutdown and subsequent startup (dom0 logs
to Xen console here too):
https://gist.github.com/marmarek/6dc3ac14d3ba840482e6361fcbd37c30

I don't see any errors there...

As for the domU-triggered cleanup, I just checked - if I unload the
driver in domU before restarting, it works fine on subsequent startup.

Relevant QEMU/stubdomain log parts (initial startup + shutdown, when
device still works):

1. Without unloading the driver:

[2025-08-26 12:57:42] [00:06.0] xen_pt_realize: Assigning real physical dev=
ice 03:00.0 to devfn 0x30
[2025-08-26 12:57:42] [00:06.0] xen_pt_register_regions: IO region 0 regist=
ered (size=3D0x00000100 base_addr=3D0x0000e000 type: 0x1)
[2025-08-26 12:57:42] [00:06.0] xen_pt_register_regions: IO region 2 regist=
ered (size=3D0x00001000 base_addr=3D0xf7c00000 type: 0x4)
[2025-08-26 12:57:42] [00:06.0] xen_pt_register_regions: IO region 4 regist=
ered (size=3D0x00004000 base_addr=3D0xf0000000 type: 0x4)
[2025-08-26 12:57:42] [00:06.0] xen_pt_config_reg_init: Offset 0x0010 misma=
tch! Emulated=3D0x0000, host=3D0xe001, syncing to 0xe001.
[2025-08-26 12:57:42] [00:06.0] xen_pt_config_reg_init: Offset 0x0018 misma=
tch! Emulated=3D0x0000, host=3D0xf7c00004, syncing to 0xf7c00004.
[2025-08-26 12:57:42] [00:06.0] xen_pt_config_reg_init: Offset 0x0020 misma=
tch! Emulated=3D0x0000, host=3D0xf000000c, syncing to 0xf000000c.
[2025-08-26 12:57:42] [00:06.0] xen_pt_config_reg_init: Offset 0x0042 misma=
tch! Emulated=3D0x0000, host=3D0x07c3, syncing to 0x0603.
[2025-08-26 12:57:42] [00:06.0] xen_pt_pm_ctrl_reg_init_on: PCI power manag=
ement control passthrough is on
[2025-08-26 12:57:42] [00:06.0] xen_pt_config_reg_init: Offset 0x0052 misma=
tch! Emulated=3D0x0000, host=3D0x0080, syncing to 0x0080.
[2025-08-26 12:57:42] [00:06.0] xen_pt_config_reg_init: Offset 0x0074 misma=
tch! Emulated=3D0x0000, host=3D0x5908cc0, syncing to 0x5908cc0.
[2025-08-26 12:57:42] [00:06.0] xen_pt_config_reg_init: Offset 0x007a misma=
tch! Emulated=3D0x0000, host=3D0x0010, syncing to 0x0010.
[2025-08-26 12:57:42] [00:06.0] xen_pt_config_reg_init: Offset 0x0082 misma=
tch! Emulated=3D0x0000, host=3D0x1011, syncing to 0x1011.
[2025-08-26 12:57:42] [00:06.0] xen_pt_msix_init: get MSI-X table BAR base =
0xf0000000
[2025-08-26 12:57:42] [00:06.0] xen_pt_config_reg_init: Offset 0x00b2 misma=
tch! Emulated=3D0x0000, host=3D0x0003, syncing to 0x0003.
[2025-08-26 12:57:42] [00:06.0] xen_pt_pci_intx: intx=3D1
[2025-08-26 12:57:42] [00:06.0] xen_pt_realize: Real physical device 03:00.=
0 registered successfully
[2025-08-26 12:57:42] from-unix: {"return": {}, "id": 2020372736}
[2025-08-26 12:57:42]=20
[2025-08-26 12:57:42] wrote 34 bytes to vchan
[2025-08-26 12:57:42] from-vchan: {"execute":"query-pci","id":2020372738}
[2025-08-26 12:57:42]=20
[2025-08-26 12:57:42] from-unix: {"return": [{"bus": 0, "devices": [{"irq_p=
in": 0, "bus": 0, "qdev_id": "", "slot": 0, "class_info": {"class": 1536, "=
desc": "Host bridge"}, "id": {"device": 4663, "subsystem-vendor": 6900, "ve=
ndor": 32902, "subsystem": 4352}, "function": 0, "regions": []}, {"irq_pin"=
: 0, "bus": 0, "qdev_id": "", "slot": 1, "class_info": {"class": 1537, "des=
c": "ISA bridge"}, "id": {"device": 28672, "subsystem-vendor": 6900, "vendo=
r": 32902, "subsystem": 4352}, "function": 0, "regions": []}, {"irq_pin": 0=
, "bus": 0, "qdev_id": "", "slot": 1, "class_info": {"class": 257, "desc": =
"IDE controller"}, "id": {"device": 28688, "subsystem-vendor": 6900, "vendo=
r": 32902, "subsystem": 4352}, "function": 1, "regions": [{"bar": 4, "size"=
: 16, "address": -1, "type": "io"}]}, {"irq_pin": 1, "bus": 0, "qdev_id": "=
", "irq": 0, "slot": 1, "class_info": {"class": 1664, "desc": "Bridge"}, "i=
d": {"device": 28947, "subsystem-vendor": 6900, "vendor": 32902, "subsystem=
": 4352}, "function": 3, "regions": []}, {"irq_pin": 1, "bus": 0, "qdev_id"=
: "", "irq": 0, "slot": 2, "class_info": {"class": 65408}, "id": {"device":=
 1, "subsystem-vendor": 22611, "vendor": 22611, "subsystem": 1}, "function"=
: 0, "regions": [{"bar": 0, "size": 256, "address": -1, "type": "io"}, {"pr=
efetch": true, "mem_type_64": false, "bar": 1, "size": 16777216, "address":=
 -1, "type": "memory"}]}, {"irq_pin": 1, "bus": 0, "qdev_id": "", "irq": 0,=
 "slot": 3, "class_info": {"class": 256, "desc": "SCSI controller"}, "id": =
{"device": 18, "subsystem-vendor": 0, "vendor": 4096, "subsystem": 4096}, "=
function": 0, "regions": [{"bar": 0, "size": 256, "address": -1, "type": "i=
o"}, {"prefetch": false, "mem_type_64": false, "bar": 1, "size": 1024, "add=
ress": -1, "type": "memory"}, {"prefetch": false, "mem_type_64": false, "ba=
r": 2, "size": 8192, "address": -1, "type": "memory"}]}, {"irq_pin": 0, "bu=
s": 0, "qdev_id": "", "slot": 4, "class_info": {"class": 768, "desc": "VGA =
controller"}, "id": {"device": 4369, "subsystem-vendor": 6900, "vendor": 46=
60, "subsystem": 4352}, "function": 0, "regions": [{"prefetch": true, "mem_=
type_64": false, "bar": 0, "size": 16777216, "address": -1, "type": "memory=
"}, {"prefetch": false, "mem_type_64": false, "bar": 2, "size": 4096, "addr=
ess": -1, "type": "memory"}, {"prefetch": false, "mem_type_64": false, "bar=
": 6, "size": 65536, "address": -1, "type": "memory"}]}, {"irq_pin": 4, "bu=
s": 0, "qdev_id": "ehci", "irq": 0, "slot": 5, "class_info": {"class": 3075=
, "desc": "USB controller"}, "id": {"device": 9421, "subsystem-vendor": 690=
0, "vendor": 32902, "subsystem": 4352}, "function": 0, "regions": [{"prefet=
ch": false, "mem_type_64": false, "bar": 0, "size": 4096, "address": -1, "t=
ype": "memory"}]}, {"irq_pin": 1, "bus": 0, "qdev_id": "pci-pt-03_00.0", "i=
rq": 0, "slot": 6, "class_info": {"class": 0}, "id": {"device": 33128, "sub=
system-vendor": 0, "vendor": 4332, "subsystem": 0}, "function": 0, "regions=
": [{"bar": 0, "size": 256, "address": -1, "type": "io"}, {"prefetch": fals=
e, "mem_type_64": true, "bar": 2, "size": 4096, "address": -1, "type": "mem=
ory"}, {"prefetch": false, "mem_type_64": true, "bar": 4, "size": 16384, "a=
ddress": -1, "type": "memory"}]}]}], "id": 2020372738}
[2025-08-26 12:57:42]=20
[2025-08-26 12:57:42] wrote 2048 bytes to vchan
[2025-08-26 12:57:42] wrote 1125 bytes to vchan
[2025-08-26 12:57:42] vchan client disconnected
[2025-08-26 12:57:42] [00:06.0] xen_pt_check_bar_overlap: Warning: Overlapp=
ed to device [00:02.0] Region: 1 (addr: 0xf0000000, len: 0x1000000)
[2025-08-26 12:57:42] [00:06.0] xen_pt_region_update: Warning: Region: 4 (a=
ddr: 0xf0001000, len: 0x3000) is overlapped.
[2025-08-26 12:57:44] {"timestamp": {"seconds": 1756213064, "microseconds":=
 412107}, "event": "DEVICE_DELETED", "data": {"path": "/machine/unattached/=
device[8]"}}
[2025-08-26 12:57:44] {"timestamp": {"seconds": 1756213064, "microseconds":=
 416176}, "event": "DEVICE_DELETED", "data": {"path": "/machine/unattached/=
device[7]"}}
[2025-08-26 12:57:44] {"timestamp": {"seconds": 1756213064, "microseconds":=
 416244}, "event": "DEVICE_DELETED", "data": {"path": "/machine/unattached/=
device[6]"}}
[2025-08-26 12:57:44] {"timestamp": {"seconds": 1756213064, "microseconds":=
 416653}, "event": "DEVICE_DELETED", "data": {"path": "/machine/peripheral-=
anon/device[3]"}}
[2025-08-26 12:57:44] {"timestamp": {"seconds": 1756213064, "microseconds":=
 416694}, "event": "DEVICE_DELETED", "data": {"path": "/machine/peripheral-=
anon/device[0]"}}
[2025-08-26 12:57:48] [00:06.0] xen_pt_msixctrl_reg_write: enable MSI-X
[2025-08-26 12:57:48] [00:06.0] msi_msix_update: Updating MSI-X with pirq 5=
5 gvec 0xef gflags 0x0 (entry: 0x0)
[2025-08-26 12:57:49] [00:06.0] msi_msix_update: Updating MSI-X with pirq 5=
5 gvec 0x23 gflags 0x0 (entry: 0x0)
[2025-08-26 13:21:03] {"timestamp": {"seconds": 1756214457, "microseconds":=
 588341}, "event": "SHUTDOWN", "data": {"guest": true, "reason": "guest-shu=
tdown"}}
[2025-08-26 13:21:03] {"timestamp": {"seconds": 1756214457, "microseconds":=
 588579}, "event": "STOP"}
[2025-08-26 13:21:03] pcifront pci-0: Rescanning PCI Frontend Bus 0000:00
[2025-08-26 13:21:03] pci_bus 0000:00: busn_res: [bus 00-ff] is released
[2025-08-26 13:21:03] ------------[ cut here ]------------
[2025-08-26 13:21:03] sysfs group 'power' not found for kobject '0000:00'
[2025-08-26 13:21:03] WARNING: CPU: 0 PID: 13 at fs/sysfs/group.c:282 sysfs=
_remove_group+0x3a/0x6f


2. With unloading the driver before shutdown:
[2025-08-26 13:21:07] [00:06.0] xen_pt_realize: Assigning real physical dev=
ice 03:00.0 to devfn 0x30
[2025-08-26 13:21:07] [00:06.0] xen_pt_register_regions: IO region 0 regist=
ered (size=3D0x00000100 base_addr=3D0x0000e000 type: 0x1)
[2025-08-26 13:21:07] [00:06.0] xen_pt_register_regions: IO region 2 regist=
ered (size=3D0x00001000 base_addr=3D0xf7c00000 type: 0x4)
[2025-08-26 13:21:07] [00:06.0] xen_pt_register_regions: IO region 4 regist=
ered (size=3D0x00004000 base_addr=3D0xf0000000 type: 0x4)
[2025-08-26 13:21:07] [00:06.0] xen_pt_config_reg_init: Offset 0x0010 misma=
tch! Emulated=3D0x0000, host=3D0xe001, syncing to 0xe001.
[2025-08-26 13:21:07] [00:06.0] xen_pt_config_reg_init: Offset 0x0018 misma=
tch! Emulated=3D0x0000, host=3D0xf7c00004, syncing to 0xf7c00004.
[2025-08-26 13:21:07] [00:06.0] xen_pt_config_reg_init: Offset 0x0020 misma=
tch! Emulated=3D0x0000, host=3D0xf000000c, syncing to 0xf000000c.
[2025-08-26 13:21:07] [00:06.0] xen_pt_config_reg_init: Offset 0x0042 misma=
tch! Emulated=3D0x0000, host=3D0x07c3, syncing to 0x0603.
[2025-08-26 13:21:07] [00:06.0] xen_pt_pm_ctrl_reg_init_on: PCI power manag=
ement control passthrough is on
[2025-08-26 13:21:07] [00:06.0] xen_pt_config_reg_init: Offset 0x0052 misma=
tch! Emulated=3D0x0000, host=3D0x0080, syncing to 0x0080.
[2025-08-26 13:21:07] [00:06.0] xen_pt_config_reg_init: Offset 0x0074 misma=
tch! Emulated=3D0x0000, host=3D0x5908cc0, syncing to 0x5908cc0.
[2025-08-26 13:21:07] [00:06.0] xen_pt_config_reg_init: Offset 0x007a misma=
tch! Emulated=3D0x0000, host=3D0x0010, syncing to 0x0010.
[2025-08-26 13:21:07] [00:06.0] xen_pt_config_reg_init: Offset 0x0082 misma=
tch! Emulated=3D0x0000, host=3D0x1011, syncing to 0x1011.
[2025-08-26 13:21:07] [00:06.0] xen_pt_msix_init: get MSI-X table BAR base =
0xf0000000
[2025-08-26 13:21:07] [00:06.0] xen_pt_config_reg_init: Offset 0x00b2 misma=
tch! Emulated=3D0x0000, host=3D0x0003, syncing to 0x0003.
[2025-08-26 13:21:07] [00:06.0] xen_pt_pci_intx: intx=3D1
[2025-08-26 13:21:07] [00:06.0] xen_pt_realize: Real physical device 03:00.=
0 registered successfully
[2025-08-26 13:21:07] from-unix: {"return": {}, "id": 2020372736}
[2025-08-26 13:21:07]=20
[2025-08-26 13:21:07] wrote 34 bytes to vchan
[2025-08-26 13:21:07] from-vchan: {"execute":"query-pci","id":2020372738}
[2025-08-26 13:21:07]=20
[2025-08-26 13:21:07] from-unix: {"return": [{"bus": 0, "devices": [{"irq_p=
in": 0, "bus": 0, "qdev_id": "", "slot": 0, "class_info": {"class": 1536, "=
desc": "Host bridge"}, "id": {"device": 4663, "subsystem-vendor": 6900, "ve=
ndor": 32902, "subsystem": 4352}, "function": 0, "regions": []}, {"irq_pin"=
: 0, "bus": 0, "qdev_id": "", "slot": 1, "class_info": {"class": 1537, "des=
c": "ISA bridge"}, "id": {"device": 28672, "subsystem-vendor": 6900, "vendo=
r": 32902, "subsystem": 4352}, "function": 0, "regions": []}, {"irq_pin": 0=
, "bus": 0, "qdev_id": "", "slot": 1, "class_info": {"class": 257, "desc": =
"IDE controller"}, "id": {"device": 28688, "subsystem-vendor": 6900, "vendo=
r": 32902, "subsystem": 4352}, "function": 1, "regions": [{"bar": 4, "size"=
: 16, "address": -1, "type": "io"}]}, {"irq_pin": 1, "bus": 0, "qdev_id": "=
", "irq": 0, "slot": 1, "class_info": {"class": 1664, "desc": "Bridge"}, "i=
d": {"device": 28947, "subsystem-vendor": 6900, "vendor": 32902, "subsystem=
": 4352}, "function": 3, "regions": []}, {"irq_pin": 1, "bus": 0, "qdev_id"=
: "", "irq": 0, "slot": 2, "class_info": {"class": 65408}, "id": {"device":=
 1, "subsystem-vendor": 22611, "vendor": 22611, "subsystem": 1}, "function"=
: 0, "regions": [{"bar": 0, "size": 256, "address": -1, "type": "io"}, {"pr=
efetch": true, "mem_type_64": false, "bar": 1, "size": 16777216, "address":=
 -1, "type": "memory"}]}, {"irq_pin": 1, "bus": 0, "qdev_id": "", "irq": 0,=
 "slot": 3, "class_info": {"class": 256, "desc": "SCSI controller"}, "id": =
{"device": 18, "subsystem-vendor": 0, "vendor": 4096, "subsystem": 4096}, "=
function": 0, "regions": [{"bar": 0, "size": 256, "address": -1, "type": "i=
o"}, {"prefetch": false, "mem_type_64": false, "bar": 1, "size": 1024, "add=
ress": -1, "type": "memory"}, {"prefetch": false, "mem_type_64": false, "ba=
r": 2, "size": 8192, "address": -1, "type": "memory"}]}, {"irq_pin": 0, "bu=
s": 0, "qdev_id": "", "slot": 4, "class_info": {"class": 768, "desc": "VGA =
controller"}, "id": {"device": 4369, "subsystem-vendor": 6900, "vendor": 46=
60, "subsystem": 4352}, "function": 0, "regions": [{"prefetch": true, "mem_=
type_64": false, "bar": 0, "size": 16777216, "address": -1, "type": "memory=
"}, {"prefetch": false, "mem_type_64": false, "bar": 2, "size": 4096, "addr=
ess": -1, "type": "memory"}, {"prefetch": false, "mem_type_64": false, "bar=
": 6, "size": 65536, "address": -1, "type": "memory"}]}, {"irq_pin": 4, "bu=
s": 0, "qdev_id": "ehci", "irq": 0, "slot": 5, "class_info": {"class": 3075=
, "desc": "USB controller"}, "id": {"device": 9421, "subsystem-vendor": 690=
0, "vendor": 32902, "subsystem": 4352}, "function": 0, "regions": [{"prefet=
ch": false, "mem_type_64": false, "bar": 0, "size": 4096, "address": -1, "t=
ype": "memory"}]}, {"irq_pin": 1, "bus": 0, "qdev_id": "pci-pt-03_00.0", "i=
rq": 0, "slot": 6, "class_info": {"class": 0}, "id": {"device": 33128, "sub=
system-vendor": 0, "vendor": 4332, "subsystem": 0}, "function": 0, "regions=
": [{"bar": 0, "size": 256, "address": -1, "type": "io"}, {"prefetch": fals=
e, "mem_type_64": true, "bar": 2, "size": 4096, "address": -1, "type": "mem=
ory"}, {"prefetch": false, "mem_type_64": true, "bar": 4, "size": 16384, "a=
ddress": -1, "type": "memory"}]}]}], "id": 2020372738}
[2025-08-26 13:21:07]=20
[2025-08-26 13:21:07] wrote 2048 bytes to vchan
[2025-08-26 13:21:07] wrote 1125 bytes to vchan
[2025-08-26 13:21:07] vchan client disconnected
[2025-08-26 13:21:07] [00:06.0] xen_pt_check_bar_overlap: Warning: Overlapp=
ed to device [00:02.0] Region: 1 (addr: 0xf0000000, len: 0x1000000)
[2025-08-26 13:21:07] [00:06.0] xen_pt_region_update: Warning: Region: 4 (a=
ddr: 0xf0001000, len: 0x3000) is overlapped.
[2025-08-26 13:21:09] {"timestamp": {"seconds": 1756214469, "microseconds":=
 28994}, "event": "DEVICE_DELETED", "data": {"path": "/machine/unattached/d=
evice[8]"}}
[2025-08-26 13:21:09] {"timestamp": {"seconds": 1756214469, "microseconds":=
 32958}, "event": "DEVICE_DELETED", "data": {"path": "/machine/unattached/d=
evice[7]"}}
[2025-08-26 13:21:09] {"timestamp": {"seconds": 1756214469, "microseconds":=
 33004}, "event": "DEVICE_DELETED", "data": {"path": "/machine/unattached/d=
evice[6]"}}
[2025-08-26 13:21:09] {"timestamp": {"seconds": 1756214469, "microseconds":=
 33261}, "event": "DEVICE_DELETED", "data": {"path": "/machine/peripheral-a=
non/device[3]"}}
[2025-08-26 13:21:09] {"timestamp": {"seconds": 1756214469, "microseconds":=
 33296}, "event": "DEVICE_DELETED", "data": {"path": "/machine/peripheral-a=
non/device[0]"}}
[2025-08-26 13:21:12] [00:06.0] xen_pt_msixctrl_reg_write: enable MSI-X
[2025-08-26 13:21:12] [00:06.0] msi_msix_update: Updating MSI-X with pirq 5=
5 gvec 0xef gflags 0x0 (entry: 0x0)
[2025-08-26 13:21:13] [00:06.0] msi_msix_update: Updating MSI-X with pirq 5=
5 gvec 0x23 gflags 0x0 (entry: 0x0)
[2025-08-26 13:41:45] [00:06.0] msix_set_enable: disabling MSI-X.
[2025-08-26 13:41:45] [00:06.0] msi_msix_disable: Unbind MSI-X with pirq 55=
, gvec 0x23
[2025-08-26 13:41:45] [00:06.0] msi_msix_disable: Unmap MSI-X pirq 55
[2025-08-26 13:41:45] [00:06.0] xen_pt_msixctrl_reg_write: disable MSI-X
{"timestamp": {"seconds": 1756215718, "microseconds": 455554}, "event": "SH=
UTDOWN", "data": {"guest": true, "reason": "guest-shutdown"}}
[2025-08-26 13:41:58] {"timestamp": {"seconds": 1756215718, "microseconds":=
 456438}, "event": "STOP"}
[2025-08-26 13:41:58] pcifront pci-0: Rescanning PCI Frontend Bus 0000:00
[2025-08-26 13:41:58] pci_bus 0000:00: busn_res: [bus 00-ff] is released
[2025-08-26 13:41:58] ------------[ cut here ]------------
[2025-08-26 13:41:58] sysfs group 'power' not found for kobject '0000:00'
[2025-08-26 13:41:58] WARNING: CPU: 0 PID: 13 at fs/sysfs/group.c:282 sysfs=
_remove_group+0x3a/0x6f



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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmitvLkACgkQ24/THMrX
1yzxhQf/SPchJGKg/iL88KTK8uNyyAjEVayxB2NWUEBQek/pyVVwsFrRmgEcXamZ
kbn5oQX2mAUVIbHjC0wMMN9ahOrY/9bwLKW9IKkXl8JT0lS0zN+CBil0F/y0n+t9
e/AWOx9Vo6mB2xyD4rXfa+EFwjoOLAx3NJvQ04/GAoXfNgmvQHCcElMk9oS+i7GK
f/O8fFZ26b36BTB9HgtNxu55zUTyUeI/znf6J5/4CwCqJ1zubA/D+9gx+ixL8T3w
sWYMs+2i5QWfXbwedSfH9qjafiuWPGnv6xm6Gtlu7UaFbKwqDIktFxGKiSkK+2BN
L7eldYel22qIZ3wp7GtaHvJbpctPmQ==
=jhao
-----END PGP SIGNATURE-----

--SPDx3WFh/ytkDTPC--


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 14:05:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 14:05:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094535.1449854 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uquJ2-0007kx-39; Tue, 26 Aug 2025 14:05:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094535.1449854; Tue, 26 Aug 2025 14:05: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 1uquJ1-0007jf-OM; Tue, 26 Aug 2025 14:05:47 +0000
Received: by outflank-mailman (input) for mailman id 1094535;
 Tue, 26 Aug 2025 14:05:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kqrf=3G=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1uquJ0-00072q-An
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 14:05:46 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c2bfa7bb-8285-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 16:05:45 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by PAXPR03MB7887.eurprd03.prod.outlook.com (2603:10a6:102:216::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Tue, 26 Aug
 2025 14:05:38 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Tue, 26 Aug 2025
 14:05: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>
X-Inumbo-ID: c2bfa7bb-8285-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nio7ItpvwptvrCtquDpFa+VRfm1tmp4IbvvjotUptkagaUvyxrlRf2Lq/t/AsxG4Kry/GYiPI2zhHVhfBm8DhvgX+JRZBTck9vSmKqeh2ZHFxRNYTHea4hFdBOqFDP+CZhvnGE+BsfSnPTe9p4XH7icItFK8kwHDBndaANq2j/5SjiWfwzp9k0Il6ivxf0bPAv+YZILd/V+c1fT7vG30+gXQZ2JzRDT3ggZ8q3T2TJRg0TBWvKsfxHqrTZmktkiXuCwcxkFFNw15I8AZENDpfQZh1HviSeap/0246dUVWFco6BiGMKXzHj2eZWn2XD5LOwtPh91YGUKcyhGtfoYKGg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=UNynwHJEadmNOUhC1e0brDBUQKdzxoPCI/wbBBJn4/4=;
 b=sEBo1Jb4lDUDnfYFI7Z8Qiv80FVES9xX/BXaTwFg5StP1XYYowvHqUNKEGOCOadzs6c8WbstzF0sqzpe40TAjknI/jLKrZE1EoL1qrm5Q4oLEPk+b+D+4tOTggJw2pRpkaOOAQr8p6mrAQYs/kPZR8OMbHi7Ux2qWwSN4D+rDXpXJHdAp2Y8qDZYTKMqHEksctXNhmARahz2SSMsdrusft09G93zumy1VDmuLGIYFDtNdYQ+1xtJQE8AdYykHfz4d7WnTOE9VUijRxHWwIvI6scsXiT+pq9N5K9EcEs7JRAv0XDlET+T6RapXT+6NQO4E88TJvuvMKM3IHiZZvOwAA==
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=UNynwHJEadmNOUhC1e0brDBUQKdzxoPCI/wbBBJn4/4=;
 b=jKVNQfDACtS3K25+WOQlAxMjbEbXS5PZoJ9WIcsrbC7sL/UWPgHzJ3DnUwZV/AdTDq52E8bqagaMuXjwCSovE+HTGcU1T+aOeStGGTEJvT6qAi+6wTt5ogHnJJstPWsqvbdEB51vztPF0e1smM/CCW10WTc8sdm1pFdi7P8wUKL0+rrLIkcXL2J6HPZ7t/HftsFy+urGgmg72ee5zgYbH/ptYXDtTOuuWnh2lY4CtGxKYNrfx36wGZVlLrJUK5h5xo6B8PonO/1flFIj273lk+Wgoc0Vyj45Mj1EejZvYAvjC2oHK1sHodN73c9vwzuAzClaH9C4mdTqh6Xm5xEnxA==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "olekstysh@gmail.com" <olekstysh@gmail.com>, Leonid Komarianskyi
	<Leonid_Komarianskyi@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 v3 06/11] xen/arm/irq: allow eSPI processing in the do_IRQ
 function
Thread-Topic: [PATCH v3 06/11] xen/arm/irq: allow eSPI processing in the
 do_IRQ function
Thread-Index: AQHcFpJ/78TDbVIRnkOE9iNbqduJVA==
Date: Tue, 26 Aug 2025 14:05:37 +0000
Message-ID:
 <c977f6c0746d4461a804ba2e2ca80159190923ab.1756216943.git.leonid_komarianskyi@epam.com>
References: <cover.1756216942.git.leonid_komarianskyi@epam.com>
In-Reply-To: <cover.1756216942.git.leonid_komarianskyi@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: GV2PR03MB8678:EE_|PAXPR03MB7887:EE_
x-ms-office365-filtering-correlation-id: b75de3f4-3ebc-4f1e-1904-08dde4a9a2c8
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?ccjNkLrlpLjxiYYn9soFwYw7L/FZXep7lHuqixQ8fC5m9egAd3U2u1AHLt?=
 =?iso-8859-1?Q?dR2jZ1SU5wLAOdhVUrpUeMFg321M2tbpuxhdu3tY99dBENPOILrTvNz44a?=
 =?iso-8859-1?Q?OhdvIS21dv+X9Sh7BELpA+I1GlwrftKC8pHoon8KNWpbfqt3trVc8thAHi?=
 =?iso-8859-1?Q?mJQPxEaCKW6ekIMjTuP6dycu4kaFFsdUqjyxBfkaqsunAuiqChSyjmUSR+?=
 =?iso-8859-1?Q?ig6L+OMIRjtm79E6LOW9wV6zMSBTj3A9ZbO0g1USIwDicE2VdNjzQdm+5B?=
 =?iso-8859-1?Q?ToEjjEo7gJxM/6lSaT3taIslkF5UflCAkyIMqmMYgoGvWRX6XpDuc1VC+f?=
 =?iso-8859-1?Q?rrTS3rSTgOnJKcRM3GkX8aRCDHX4478HKTGWqAvzsqJFf1iOLPDjiar1ox?=
 =?iso-8859-1?Q?NA0WehyOTxO8ccpHn06l6k9d4+l2xPL9GwGeOFRhvVTibidB9j5I3J0VIZ?=
 =?iso-8859-1?Q?lQrsAXIoqnJ0xBGSZxGnDRdntrEoiC0r9nEvtXwOA89q74PnpCCHN8rrVu?=
 =?iso-8859-1?Q?GC67XjNQeWRsaQ6OjjP9H1L1Ycdvmxcw7nYBUBIczjDulrKlWMpGFu79r+?=
 =?iso-8859-1?Q?38Iqi/392Wo1Vi5VfGOkkOwvEFSVIfWwtlDjUuVvwE/NmwEv8Rhbeeyin1?=
 =?iso-8859-1?Q?8U6MKi/NGFyn9IVBmQfiq3YwNMY0+rEGSPGIUTTmmTE1bB8GswD+qkTG/I?=
 =?iso-8859-1?Q?LSOWk3W6oFK4sbNRA9K2osrZS16IQUsFUrH+PvzPOyhEoRJ3BiyfCYjh5H?=
 =?iso-8859-1?Q?TwmijSPoWBSKdS9xRftcEkK++9pl2e7cpdZPfH0Bqu/vORR9Kr7QhP816Y?=
 =?iso-8859-1?Q?+bMq7/a4beHgPj7UKPwZ0MTM9KFk170/uVW4EcP/gKTpHhPs0jAoJoPuOi?=
 =?iso-8859-1?Q?C4GoAT/j+LYGK8FUv8UJ5+Gx4Hr8D4tWOUzmVlRlOHPezygCDPRkbmMz4b?=
 =?iso-8859-1?Q?X/IpYH3ePLefuEBiui/xh9DY3C/lDXPJdo52n0qTEzkUvUaDipNdX5gKyS?=
 =?iso-8859-1?Q?dAHIGPXwJJh3cl1GhzQEp8/gVSiQ78rn4oFJrjCjv9Vk2NPosV+GvmgfW5?=
 =?iso-8859-1?Q?BxPjbgsxKIOeKrVAVadADe++uXLk7OsAgwbgfW2FRy5BXHZWzwU8l23BfC?=
 =?iso-8859-1?Q?9O+nd4k9qtOTERHgepY16fFvuY0HWse1TwlZWf+sJcdPJU9ljyS+vPWa+t?=
 =?iso-8859-1?Q?uPmfQHO6kmpZD7T2wNQZ9oXwEJ7HV+BSL2PoXG4PsFF0U78jjb39pyWLkQ?=
 =?iso-8859-1?Q?h74gzmT+Av8ETiR/oDozB9AH0vAVX+WQTMM8eg3rcop7AiN8Dld2CAkoJR?=
 =?iso-8859-1?Q?kARVLrRkatlAeQP4iAMimEBzc/d0eMq9mYJ9KnKX69a2F06rix5QF+K6HK?=
 =?iso-8859-1?Q?ENs/rzsurjeqAzuYH0JfWGx29D/SrEeppAeStQfsYJFuMr5GvcXek5UPQQ?=
 =?iso-8859-1?Q?dDrHhCFH6WNsejR+nM4rvoJd0E+zlo8QiJPiBAaa6CgIktUeTEfa8wj3uQ?=
 =?iso-8859-1?Q?M0TRsNknmitl60rSn45mzDPi8S3BZnB4/Ns+WESU++Fw=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?SwYIl9q5ClSV0QD5kCOpFKFwA4XyK8YXCddaOOWqkngBRJ/uc7Uea4YKcr?=
 =?iso-8859-1?Q?j+gOW1pxUmAFQeh9i+2hAh/M6cQXYeEh4NSoy9VQtUvUCUSeQVzrCcRsgD?=
 =?iso-8859-1?Q?40+2P1kxxToMfMBmgtQ3UC/0sNqhO6JOeVWsOIYnSx5+Dp2/Xorv7J7Mwo?=
 =?iso-8859-1?Q?xU+bttsK0sskUlgzZSh9E6FWqpbw9x8OYbIJS0p0lgEXJvCqOBi2B0ZT9f?=
 =?iso-8859-1?Q?DRksOD1FlFl80l9hoOQ5UEmBx71v21ofb62wm5Eq9uq0P9PGs8bTUSe2Q8?=
 =?iso-8859-1?Q?QjITRW+NuJYSsioNObpIZMAlekZ3RWknh2PNbf9vd/4hyidmnyM/N4WKSc?=
 =?iso-8859-1?Q?5xN1eAV8Pn56USNF7y13S7WKDyg4HFNKZvFncH4W3xBWUJnhBjcYNyuSvm?=
 =?iso-8859-1?Q?PJo80Ps2PwzBo4b57ly0yPBca76Nkmw66kMSXC7+XXeKcxpdoStF4RijpT?=
 =?iso-8859-1?Q?g+JRDeX2jnECw5ShUQsYEoROV5M4d5TFfVLPXpW9P7Hj1JpzrMBLBXOEVi?=
 =?iso-8859-1?Q?oaci4kBdX50qguha27sirGRSubhISj+U2WVA0cb+xNAUSyQekt+s5Jgbh0?=
 =?iso-8859-1?Q?L2woAxxmbMub2CgmZ3iw0F+FFFOQ8ByQOOn1zJuW+CVOQIeVveDJdx1A3t?=
 =?iso-8859-1?Q?e5ibFcC4QiJ4iLj1sJZCUuNzjS216DypOGGSfwZiCZTORFSy+H1QoQuqt0?=
 =?iso-8859-1?Q?522ElVG0TbLZeRRT4idRQxWcG0+whANzorCD27+fr4zqwsMMutZbCE2q01?=
 =?iso-8859-1?Q?Jx8Yi8lIZ3nSfDKi6/5QpuwmRF5h+EkJeN7zwruthfq/i30mWyAL8Nf1Ku?=
 =?iso-8859-1?Q?7SZ7KVlSdI7tOzuUmtsWs07Ed3DdABDI8iekn9gYncCOc2cTAJZIWY0UYA?=
 =?iso-8859-1?Q?ugVIEpQTfMYVxvfdfIvheAsBTOcv/oVq/muk3owApgUOJRybvlf1Im4Ibb?=
 =?iso-8859-1?Q?yogwsbMfcW7wO21RDtaKyKic1Ua7FuYyKUJuJI+KZnt8gRfm0j+cn3yPiR?=
 =?iso-8859-1?Q?Be7hk/J0FbWRVZQnEGYoplnq5byLDqkLjM6p+jjepDqcvelPpnXvqI9NcH?=
 =?iso-8859-1?Q?3pbILK7hhcGmrc4Mt0E5/0JlrymcqDJWh84SQBnRKSAQkO/A8+WrXAymmK?=
 =?iso-8859-1?Q?hsZH0c+qS4GBc3mvbp0CPD3pU7y1PzdQ6kvuJE7cMElVabsVULmh5+cUVg?=
 =?iso-8859-1?Q?Y4qmVYKWYbhXfymNMSOg8OsV8hHGx576QnkyRP3j5H8y3RRnVOZdA7uXsw?=
 =?iso-8859-1?Q?t670E+fuD5kvkpWt5XYLWf4HEv4BLhbAyp+BNF9J2LhNdgIay3loWwyUBG?=
 =?iso-8859-1?Q?ymB46FTXCBLHwarxbbK4t53xOEsrJN1LLiNHIOc9sbrvP2pfh8CMwZvKb/?=
 =?iso-8859-1?Q?UYH7wDd1D3L/i4g2BuqfVW/gd0iwcfmnimvnn/kqGvyE0JYhhAx3hOHPMF?=
 =?iso-8859-1?Q?BtBuscP0pDkIfidGZrGtwiXTLLhhSyyW+XwR9T5d8ugB8tnepl5YOQCExA?=
 =?iso-8859-1?Q?gb7D0Td9DoZKUE7idf8aXeLTrfOPbiDiZg6PsNfqwCUUL/BDDqcC0MS6Sr?=
 =?iso-8859-1?Q?ybvZNjwAl0XRhJWl6TK163I6N6rtybvFIL8XQRYM2vGU7xsRqNE95+fHUX?=
 =?iso-8859-1?Q?zmDFaMRBfk2Hw4p6ZWiQdZH2LaUvrUTpmi5//tCMiQdC9tFdvtJHUJy2J1?=
 =?iso-8859-1?Q?KGJOHwVnfs8f1jfyUKg=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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b75de3f4-3ebc-4f1e-1904-08dde4a9a2c8
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Aug 2025 14:05:38.0197
 (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: J7cuumLurB3lE4WjDi4jisH2/qSH3foL5HwJ1RJe/KUmwRRsotMwawGcqX1V4/ZOqxRxgLxFuBClyoxR6z9gzKHbyczVwcuY4c8A6Meb2/g=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR03MB7887

The do_IRQ() function is the main handler for processing IRQs.
Currently, due to restrictive checks, it does not process interrupt
numbers greater than 1024. This patch updates the condition to allow
the handling of interrupts from the eSPI range.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>

---
Changes in V2:
- no changes

Changes in V3:
- no changes
---
 xen/arch/arm/gic.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
index b88237ccda..634b77c987 100644
--- a/xen/arch/arm/gic.c
+++ b/xen/arch/arm/gic.c
@@ -341,7 +341,7 @@ void gic_interrupt(struct cpu_user_regs *regs, int is_f=
iq)
         /* Reading IRQ will ACK it */
         irq =3D gic_hw_ops->read_irq();
=20
-        if ( likely(irq >=3D GIC_SGI_STATIC_MAX && irq < 1020) )
+        if ( likely(irq >=3D GIC_SGI_STATIC_MAX && irq < 1020) || is_espi(=
irq) )
         {
             isb();
             do_IRQ(regs, irq, is_fiq);
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 14:05:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 14:05:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094534.1449847 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uquJ1-0007eL-Mr; Tue, 26 Aug 2025 14:05:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094534.1449847; Tue, 26 Aug 2025 14: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 1uquJ1-0007dT-9u; Tue, 26 Aug 2025 14:05:47 +0000
Received: by outflank-mailman (input) for mailman id 1094534;
 Tue, 26 Aug 2025 14:05:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kqrf=3G=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1uquIz-00072q-Ta
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 14:05:46 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c261d229-8285-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 16:05:45 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by PAXPR03MB7887.eurprd03.prod.outlook.com (2603:10a6:102:216::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Tue, 26 Aug
 2025 14:05:38 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Tue, 26 Aug 2025
 14:05: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>
X-Inumbo-ID: c261d229-8285-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rgAD36Ae+9HEE5a92Xjzoli3kH0rhDNur41HE4G0dI6JRX/exbMReHHOL0z2KI5dkZNclj4fTn81zicCu4lPOoX059OeyTfxFp2bNvgSbgLyXtih3JjDflLOPHPf3r4yZpEQXrk78C+6sk7ZQ6UhgVyv3rZUNq34nNhgis1/lZCzoM6MRTciYi8iQ2XV5jwIVU3uJjVa1wa3cwJAxvdSB+6kSKzk4T4SpIXPSZLgC5l1eVJXyIlGo6w2LN7eLtas40RjjhymHf/H2f2knaexjcqoMFWZx9iRceZivQV95gcXIwScMDtgbZTpPhu+sKOI6wUBJ67OVBBgupnPOwoOyA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=FMk51RIA6ygHaObn4VSaWkqpg16Vq01EcqFdjO2oeIE=;
 b=Xs6XNqJxUD2ieDVRugAJWBtFM4/+I81WUGAIAW7OGtwuM9zIbgjMxOlAfKH5s3Jegh86Dc5WiBbgP0kXS5ODycm5rKU5ndWhaO6shHzdWufePzQlbukVBWtHLQoTOqFQOQjw0KzzkT8pbtWFeb9gR92fbKrptNCmsjJy1vx3Aks4ab+WVC1lbE1A687JNtuGTXTkGx0Z2SsjvCWlRQoRuUoyknPvm9q/67CeYrnXbkvZ2XuUoV7vcRlEUafQuLXSI6xkpHxkKmG0lWH2AlOkcZBFFizw+uo65h4cUM++Skb+jvJTuDl2Yux35E4/k2/Em0lmycQMRiNb+VQgdmoOIw==
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=FMk51RIA6ygHaObn4VSaWkqpg16Vq01EcqFdjO2oeIE=;
 b=tf7jQKyJDx6dMHzfDoelcertxWDOhRNuDai+IgZsspiizBfXqTRHk4KL1lr6HlvMK919BngB84qItnLat5J59MvhKG/w4Gg8Q2BQyyuhbHrTvlp82C+G7aNqM0t2YyJMzi92oZtzGlNTTJu6MOQnGwI6dyT1DNwR56EWfpODP8zpcl8AHljCiep5kq9QYXmaTM9hAcq4boq/aj9LCr9jojtJ+BmdvKPUFbfjWtLDgoiBqU1W/mGADePigo+rtXrnqiNcsnUNJ4aLK+ew0Xsv+ACz1rsf7fONwS490HzTFRhBSi2tqAI0XPaYX/ZyXiBrTfDQ84qagP6PXvA0YeHSLg==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "olekstysh@gmail.com" <olekstysh@gmail.com>, Leonid Komarianskyi
	<Leonid_Komarianskyi@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 v3 05/11] xen/arm: gicv3: implement handling of GICv3.1 eSPI
Thread-Topic: [PATCH v3 05/11] xen/arm: gicv3: implement handling of GICv3.1
 eSPI
Thread-Index: AQHcFpJ/0RYrIev2JkmWYheOK3kVZw==
Date: Tue, 26 Aug 2025 14:05:37 +0000
Message-ID:
 <398ad09617f4f97d57d13fa9f3771bd2db83916b.1756216943.git.leonid_komarianskyi@epam.com>
References: <cover.1756216942.git.leonid_komarianskyi@epam.com>
In-Reply-To: <cover.1756216942.git.leonid_komarianskyi@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: GV2PR03MB8678:EE_|PAXPR03MB7887:EE_
x-ms-office365-filtering-correlation-id: 4eef1d79-47d3-48fb-fc14-08dde4a9a2a1
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?AXK8ro1ZExEGMAUha6UbrGOifEhOjEYgVNhD/88VN+HzjBZou9sXrNHdQO?=
 =?iso-8859-1?Q?My/rFrqOvXqZVtYQbaEbmPkxpNL0xdL8WhFx4Y3zeN8ZZoopIrbZcXzYKn?=
 =?iso-8859-1?Q?A4Am1g647OX1EjumMx4Lbq6SaVKrrMg1RJkjSYCOoNDCp9G0VkQNeTso1p?=
 =?iso-8859-1?Q?al8MlzOMQ4Okp84oAgrB3F2TjDh3M/PdFeh54TaF18N/O8zKUIXwGrul1h?=
 =?iso-8859-1?Q?5tdT2qMSoUH+GtbqwYEx9Kk3TKWaRH/okcCdxgfxR4itdiHilDQXFVpEZx?=
 =?iso-8859-1?Q?3uRAgtdJx3OuS+Bfb8jH5+Tyu+ODJxXtDPUpjjO4bR68DRx0fU36/ReMO2?=
 =?iso-8859-1?Q?bt5etF3cmgGZ6yClHlI9LY1AnkMAywMmmKBiGPvHgjWTCIgiTTSudEniLL?=
 =?iso-8859-1?Q?E5toqs0l/SgvJfPxIx0NwgF/kA/2sDo0WlBwq2TDTSvaNonVdtmDsmFSMT?=
 =?iso-8859-1?Q?4sNup0hd2mscA/YQEeNTj5Y1C9lVhQp2C7c9vLu1JvhOltqNdT+YkeLUrw?=
 =?iso-8859-1?Q?2YRrM7GgE23VKzrCxWnff4cCNJup6/egNGEQ/zDkqPmz9Gmesz05mwaesA?=
 =?iso-8859-1?Q?8qGAksVnFY1wArmpo8UrO+dwC4s07sfBBD5Qa1D/y5SvfDm5lPQw5nJ7+V?=
 =?iso-8859-1?Q?nyf5i6Q5rfv2cIfrhPDPFuMTxDaFzNcFbZL4Hjla/XPDrNto1TAvbu1y+G?=
 =?iso-8859-1?Q?JPPp1vT3IjvL3DFvKvF9vU0T+L6l7ZVDcrrMyLYAycbzMRJQFy+V1NHONA?=
 =?iso-8859-1?Q?75VPsNXOuhvoqNaeCdeyCkUEVpNYp2koqlXZRekuwVwEbocs/6xu6Z4nHG?=
 =?iso-8859-1?Q?tWqxYJbvIVqn3WKKLIouPKufjqNGncfKm7XcxF9F7CCHKkalkTy1yM1jjr?=
 =?iso-8859-1?Q?HauFalZNAC/oU1yktdt7RGi5llA+OhqQA92hTLyF8X3wpIXoww1y62PKzy?=
 =?iso-8859-1?Q?o/9FS25m1xI3br7+qV3/TE8oYHF4mo7SWZz6hdXAEx3O/9yfK8dm61cm0d?=
 =?iso-8859-1?Q?eQuv4oi5DNwzvjiDL+AwSifiSSS7BNLChHjRo9KQuVFAiwmItu6mDUsgvH?=
 =?iso-8859-1?Q?rU1rQ06pu/XbcF7D9O6ruGpSde2d9muh5/+s5Z47ByPmSW4rOzdr5qRfCM?=
 =?iso-8859-1?Q?Z8/2ALwpmjTM5A7iKurUEYyIF6k0fjLzLhkl/LVr55bhXPYQia6YeF9yhH?=
 =?iso-8859-1?Q?8pIhdRqJItDQ2Bj5vUG43h9Crwq93WC6d5F2GNQClWCwb/jM5ZZuLFzHnO?=
 =?iso-8859-1?Q?BCV+KKcfvmuMjp/m3UK8He1kERbuaYN7YG5hjBJeKDWfuZ2AsjRm1b7StQ?=
 =?iso-8859-1?Q?PIv6mopxHoD/RB2Lu4ZX8mBE917WbqHJgBZNZkUGxYAv0F7wLmuEgZCWjM?=
 =?iso-8859-1?Q?Eh2n4Q/x2A03j9OturgeUUo5lmk1wjlQaIk4y3BumkvLW5hbP6hBdkq/kz?=
 =?iso-8859-1?Q?dBpQ9sN4EnGClDn3Js12z9hlb7PS3EHqUKMdHpCZq0Y0niF+UGnwBSnGzJ?=
 =?iso-8859-1?Q?g1cLKMAbooBBO3PD3ARv714PQsIiV65vN8pw9CQ3Jt+Q=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?ilZfKI5p0vSi7uXGx2QWccBAAjrMeVb8ETaxtNH0yIPO8BdO20dkhLuirU?=
 =?iso-8859-1?Q?KEl5QrG3ZBNrFcjs7Gvn/bRAccpB0US5YoalLtZHTCnEyVm9zQSTX+SwvO?=
 =?iso-8859-1?Q?96EYW6gJobOt8fzB/xyKD2W9e2wJRUzGrRs4Qrs4bMeJLO7Ck9PQxV7vaP?=
 =?iso-8859-1?Q?0Erxd9FXd3WmfWe051YtNuDZtLwJAl7FHi23eZeRxeCqCV81OpLOBCJAA8?=
 =?iso-8859-1?Q?Wtzrh4X1KXvFHGNWJhW4Kr8AOdF617WPQSRNgOPVR+xbhRY1RQ7fKL2ugW?=
 =?iso-8859-1?Q?7QrUfAWuuTdR0y1Lg00al9cbS/esdLh+GnB/7OE1y8+lyRca0lChGWICIr?=
 =?iso-8859-1?Q?T0oq6Ei1bWsbc8D7fh+0Os7iDbOyB1uGqXn9mXD+tqEi8XIEMEvfHamI2c?=
 =?iso-8859-1?Q?0qELO4UTCg17qSsK8dsNAM9mv5wh3R+SHbqRVT+gzOyc90PafKMURtAD4H?=
 =?iso-8859-1?Q?4ts2do/UkV31Qh26AWAICQ7FGw1PjjBit69mue+3pKJ9a6xB2sgbFwyUYF?=
 =?iso-8859-1?Q?sKMVNIsTKlUqM02skIAKQDz1PKiPfgJXMYO3qai/NgawCTGswkEBedwiUN?=
 =?iso-8859-1?Q?a9uafJFM5cJKsnhOC2EHOO6hx2/J+JoU0oVYug5z8SmRLQNN3CY0hMrcRp?=
 =?iso-8859-1?Q?VQmASal8k3riR/2wALMK/7C1OJUTquYO45ZaMiDRDloKhXaU8sjFSqbHHA?=
 =?iso-8859-1?Q?fw3mwFlL8SoLF0p3LotibDkVNt+q6s7mRmVBIzyc9vrhMLqQ0w7gJh8GhU?=
 =?iso-8859-1?Q?dRVwtbVhiEoR3BNM8Aowru1UAbS979+WY750WuOm/UU6qjHrrqoFMd+tts?=
 =?iso-8859-1?Q?/VPGY7bfa7ZAkd+xqppoU0z/8OHOyoEPK4YmW6LLRqqIuTSqoX8vJjpecB?=
 =?iso-8859-1?Q?lYT+Rcg5Q32LxgLG6lKF/a0NRSVIPBCFTOPYCr/e7zhWfuJHzK7fFbp9vo?=
 =?iso-8859-1?Q?4ptNUscosduaWs+t8RNSjeO/L/1FNswAV8LVu1uk7kicUYlBdgpzE9t3Lm?=
 =?iso-8859-1?Q?UwRgvghixqF+amhGsMoyxbiWnDcj7wNYh5L1JIEFzQkQWKlkNak/7Otay5?=
 =?iso-8859-1?Q?teai3v+ZFWXlZvPrroW6h6UtVtOAM2QP/fQomCr4tj3IgRsqvDK5ia7elj?=
 =?iso-8859-1?Q?zgbwAlVoi4hxojREtJaPDr21HUukYEG/GMPIrOSgsS+pyPaCvWXjLQX3H4?=
 =?iso-8859-1?Q?7qSBWjmWFC51sshbf9K1VrWmuHGdR91kbNXLQizNlMIkL4yHQGhmkS+XT9?=
 =?iso-8859-1?Q?WPGDYAlY7yNzCk2s0eapSulCXfnzLpvfULS/ld67ZJkfhRhMXEdY2tGerC?=
 =?iso-8859-1?Q?L2CwdTNFqCf9vEN14yUwDW1qSqZAENfuG9fLKxh51sPrSdha+JTv2LEx82?=
 =?iso-8859-1?Q?028tBZWZL67rgw1qVmhqjWKpP4YEExeHKHmIOqqAwZ/nIWdgmVf266A0at?=
 =?iso-8859-1?Q?51aGHxKLxS0BVflquJpOEsaeRxo71Zqv2J/Jhjrhql1KeiAPgxGvz8owdC?=
 =?iso-8859-1?Q?tq5OBO39xitWKv9frAnA6XzNRfM0pDEbNFpfSs4AzqSr2qLxTmw3itR9Rj?=
 =?iso-8859-1?Q?xX7AkpSHPX49tXserZJKY27pBaXvIqt/JzRlS/gYNhdwBLi6Jt7OJgNkyA?=
 =?iso-8859-1?Q?J1DViWoR9GbRWJr2/LDdVJj4zgDbsY2QLIB67q3qBffxs9sRRtM1OD85M2?=
 =?iso-8859-1?Q?YmKMmImflsmL//O8dbk=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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4eef1d79-47d3-48fb-fc14-08dde4a9a2a1
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Aug 2025 14:05:37.7133
 (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: G1b5x+5QoMsXzVJQgyOqZQypVg6sYNlwLplpI9K38UynoI2g0OK4xRPoyA7xMQM0tsgILXSe3Yy53AFE0QFz4yASYWa16mhGFITmQGFWalI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR03MB7887

Introduced appropriate register definitions, helper macros,
and initialization of required GICv3.1 distributor registers
to support eSPI. This type of interrupt is handled in the
same way as regular SPI interrupts, with the following
differences:

1) eSPIs can have up to 1024 interrupts, starting from the
beginning of the range, whereas regular SPIs use INTIDs from
32 to 1019, totaling 988 interrupts;
2) eSPIs start at INTID 4096, necessitating additional interrupt
index conversion during register operations.

In case if appropriate config is disabled, or GIC HW doesn't
support eSPI, the existing functionality will remain the same.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>

---
Changes in V2:
- move gic_number_espis function from
  [PATCH 08/10] xen/arm: vgic: add resource management for extended SPIs
  to use it in the newly introduced gic_is_valid_espi
- add gic_is_valid_espi which checks if IRQ number is in supported
  by HW eSPI range
- update gic_is_valid_irq conditions to allow operations with eSPIs

Changes in V3:
- add __init attribute to gicv3_dist_espi_common_init
- change open-codded eSPI register initialization to the appropriate
  gen-mask macro
- fixed formatting for lines with more than 80 symbols
- introduced gicv3_dist_espi_init_aff to be able to use stubs in case of
  CONFIG_GICV3_ESPI disabled
- renamed parameter in the GICD_TYPER_ESPI_RANGE macro to espi_range
  (name was taken from GIC specification) to avoid confusion
- changed type for i variable to unsigned int since it cannot be
  negative
---
 xen/arch/arm/gic-v3.c                  | 80 ++++++++++++++++++++++++++
 xen/arch/arm/include/asm/gic.h         | 21 +++++++
 xen/arch/arm/include/asm/gic_v3_defs.h | 34 +++++++++++
 3 files changed, 135 insertions(+)

diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
index a959fefebe..3aa5cc1765 100644
--- a/xen/arch/arm/gic-v3.c
+++ b/xen/arch/arm/gic-v3.c
@@ -485,6 +485,36 @@ static void __iomem *get_addr_by_offset(struct irq_des=
c *irqd, u32 offset)
         default:
             break;
         }
+#ifdef CONFIG_GICV3_ESPI
+    case ESPI_BASE_INTID ... ESPI_MAX_INTID:
+    {
+        u32 irq_index =3D ESPI_INTID2IDX(irqd->irq);
+
+        switch ( offset )
+        {
+        case GICD_ISENABLER:
+            return (GICD + GICD_ISENABLERnE + (irq_index / 32) * 4);
+        case GICD_ICENABLER:
+            return (GICD + GICD_ICENABLERnE + (irq_index / 32) * 4);
+        case GICD_ISPENDR:
+            return (GICD + GICD_ISPENDRnE + (irq_index / 32) * 4);
+        case GICD_ICPENDR:
+            return (GICD + GICD_ICPENDRnE + (irq_index / 32) * 4);
+        case GICD_ISACTIVER:
+            return (GICD + GICD_ISACTIVERnE + (irq_index / 32) * 4);
+        case GICD_ICACTIVER:
+            return (GICD + GICD_ICACTIVERnE + (irq_index / 32) * 4);
+        case GICD_ICFGR:
+            return (GICD + GICD_ICFGRnE + (irq_index / 16) * 4);
+        case GICD_IROUTER:
+            return (GICD + GICD_IROUTERnE + irq_index * 8);
+        case GICD_IPRIORITYR:
+            return (GICD + GICD_IPRIORITYRnE + irq_index);
+        default:
+            break;
+        }
+    }
+#endif
     default:
         break;
     }
@@ -655,6 +685,52 @@ static void gicv3_set_irq_priority(struct irq_desc *de=
sc,
     spin_unlock(&gicv3.lock);
 }
=20
+#ifdef CONFIG_GICV3_ESPI
+unsigned int gic_number_espis(void)
+{
+    return gic_hw_ops->info->nr_espi;
+}
+
+static void __init gicv3_dist_espi_common_init(uint32_t type)
+{
+    unsigned int espi_nr, i;
+
+    espi_nr =3D min(1024U, GICD_TYPER_ESPIS_NUM(type));
+    gicv3_info.nr_espi =3D espi_nr;
+    /* The GIC HW doesn't support eSPI, so we can leave from here */
+    if ( gicv3_info.nr_espi =3D=3D 0 )
+        return;
+
+    for ( i =3D 0; i < espi_nr; i +=3D 16 )
+        writel_relaxed(0, GICD + GICD_ICFGRnE + (i / 16) * 4);
+
+    for ( i =3D 0; i < espi_nr; i +=3D 4 )
+        writel_relaxed(GIC_PRI_IRQ_ALL,
+                       GICD + GICD_IPRIORITYRnE + (i / 4) * 4);
+
+    for ( i =3D 0; i < espi_nr; i +=3D 32 )
+    {
+        writel_relaxed(GENMASK(31, 0), GICD + GICD_ICENABLERnE + (i / 32) =
* 4);
+        writel_relaxed(GENMASK(31, 0), GICD + GICD_ICACTIVERnE + (i / 32) =
* 4);
+    }
+
+    for ( i =3D 0; i < espi_nr; i +=3D 32 )
+        writel_relaxed(GENMASK(31, 0), GICD + GICD_IGROUPRnE + (i / 32) * =
4);
+}
+
+static void __init gicv3_dist_espi_init_aff(uint64_t affinity)
+{
+    unsigned int i;
+
+    for ( i =3D 0; i < gicv3_info.nr_espi; i++ )
+        writeq_relaxed_non_atomic(affinity, GICD + GICD_IROUTERnE + i * 8)=
;
+}
+#else
+static void __init gicv3_dist_espi_common_init(uint32_t type) { }
+
+static void __init gicv3_dist_espi_init_aff(uint64_t affinity) { }
+#endif
+
 static void __init gicv3_dist_init(void)
 {
     uint32_t type;
@@ -700,6 +776,8 @@ static void __init gicv3_dist_init(void)
     for ( i =3D NR_GIC_LOCAL_IRQS; i < nr_lines; i +=3D 32 )
         writel_relaxed(GENMASK(31, 0), GICD + GICD_IGROUPR + (i / 32) * 4)=
;
=20
+    gicv3_dist_espi_common_init(type);
+
     gicv3_dist_wait_for_rwp();
=20
     /* Turn on the distributor */
@@ -713,6 +791,8 @@ static void __init gicv3_dist_init(void)
=20
     for ( i =3D NR_GIC_LOCAL_IRQS; i < nr_lines; i++ )
         writeq_relaxed_non_atomic(affinity, GICD + GICD_IROUTER + i * 8);
+
+    gicv3_dist_espi_init_aff(affinity);
 }
=20
 static int gicv3_enable_redist(void)
diff --git a/xen/arch/arm/include/asm/gic.h b/xen/arch/arm/include/asm/gic.=
h
index c7e3b4ff0d..3f1269f0c8 100644
--- a/xen/arch/arm/include/asm/gic.h
+++ b/xen/arch/arm/include/asm/gic.h
@@ -306,8 +306,25 @@ extern void gic_dump_vgic_info(struct vcpu *v);
=20
 /* Number of interrupt lines */
 extern unsigned int gic_number_lines(void);
+#ifdef CONFIG_GICV3_ESPI
+extern unsigned int gic_number_espis(void);
+
+static inline bool gic_is_valid_espi(unsigned int irq)
+{
+    return (irq >=3D ESPI_BASE_INTID &&
+            irq < ESPI_IDX2INTID(gic_number_espis()));
+}
+#else
+static inline bool gic_is_valid_espi(unsigned int irq)
+{
+    return false;
+}
+#endif
 static inline bool gic_is_valid_line(unsigned int irq)
 {
+    if ( gic_is_valid_espi(irq) )
+        return true;
+
     return irq < gic_number_lines();
 }
=20
@@ -325,6 +342,10 @@ struct gic_info {
     enum gic_version hw_version;
     /* Number of GIC lines supported */
     unsigned int nr_lines;
+#ifdef CONFIG_GICV3_ESPI
+    /* Number of GIC eSPI supported */
+    unsigned int nr_espi;
+#endif
     /* Number of LR registers */
     uint8_t nr_lrs;
     /* Maintenance irq number */
diff --git a/xen/arch/arm/include/asm/gic_v3_defs.h b/xen/arch/arm/include/=
asm/gic_v3_defs.h
index 2af093e774..d38a3d08c7 100644
--- a/xen/arch/arm/include/asm/gic_v3_defs.h
+++ b/xen/arch/arm/include/asm/gic_v3_defs.h
@@ -37,6 +37,40 @@
 #define GICD_IROUTER1019             (0x7FD8)
 #define GICD_PIDR2                   (0xFFE8)
=20
+#ifdef CONFIG_GICV3_ESPI
+/* Additional registers for GICv3.1 */
+#define GICD_IGROUPRnE               (0x1000)
+#define GICD_IGROUPRnEN              (0x107C)
+#define GICD_ISENABLERnE             (0x1200)
+#define GICD_ISENABLERnEN            (0x127C)
+#define GICD_ICENABLERnE             (0x1400)
+#define GICD_ICENABLERnEN            (0x147C)
+#define GICD_ISPENDRnE               (0x1600)
+#define GICD_ISPENDRnEN              (0x167C)
+#define GICD_ICPENDRnE               (0x1800)
+#define GICD_ICPENDRnEN              (0x187C)
+#define GICD_ISACTIVERnE             (0x1A00)
+#define GICD_ISACTIVERnEN            (0x1A7C)
+#define GICD_ICACTIVERnE             (0x1C00)
+#define GICD_ICACTIVERnEN            (0x1C7C)
+#define GICD_IPRIORITYRnE            (0x2000)
+#define GICD_IPRIORITYRnEN           (0x23FC)
+#define GICD_ICFGRnE                 (0x3000)
+#define GICD_ICFGRnEN                (0x30FC)
+#define GICD_IROUTERnE               (0x8000)
+#define GICD_IROUTERnEN              (0x9FFC)
+
+#define GICD_TYPER_ESPI_SHIFT        8
+#define GICD_TYPER_ESPI_RANGE_SHIFT  27
+#define GICD_TYPER_ESPI_RANGE_MASK   (0x1F)
+#define GICD_TYPER_ESPI              (1U << GICD_TYPER_ESPI_SHIFT)
+#define GICD_TYPER_ESPI_RANGE(espi_range) ((((espi_range) & \
+        GICD_TYPER_ESPI_RANGE_MASK) + 1) * 32)
+#define GICD_TYPER_ESPIS_NUM(typer)    \
+        (((typer) & GICD_TYPER_ESPI) ? \
+        GICD_TYPER_ESPI_RANGE((typer) >> GICD_TYPER_ESPI_RANGE_SHIFT) : 0)
+#endif
+
 /* Common between GICD_PIDR2 and GICR_PIDR2 */
 #define GIC_PIDR2_ARCH_MASK         (0xf0)
 #define GIC_PIDR2_ARCH_GICv3        (0x30)
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 14:05:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 14:05:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094536.1449863 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uquJ2-0007wP-M5; Tue, 26 Aug 2025 14:05:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094536.1449863; Tue, 26 Aug 2025 14:05: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 1uquJ2-0007tK-8v; Tue, 26 Aug 2025 14:05:48 +0000
Received: by outflank-mailman (input) for mailman id 1094536;
 Tue, 26 Aug 2025 14:05:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kqrf=3G=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1uquJ0-0007NC-IV
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 14:05:46 +0000
Received: from GVXPR05CU001.outbound.protection.outlook.com
 (mail-swedencentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c202::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c225f514-8285-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 16:05:44 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by PAXPR03MB7887.eurprd03.prod.outlook.com (2603:10a6:102:216::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Tue, 26 Aug
 2025 14:05:38 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Tue, 26 Aug 2025
 14:05: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>
X-Inumbo-ID: c225f514-8285-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=e7394oy42b4sbFCi9G9vEbD8xrAKHdewybgdnaSNYveRk6WtBKWeEKDQwi5kg9229KNXhRbB/vuVWY7zQ0EXZ6aVRtBmO0O5EOzBGJIkflAeaFeMHoUhQcQcK6goMzhB8XESb2C6SdFA52XtJFmGAoKmqnuqL5VVQHh/yWk+ytHYsO4Husw4l67afJ8PuXdAdmG6MdcJ4l2HJBVuja5ZkuKWmTPumMd1waYXWD04XWZZryVkql7gpshEV3XqvM7INiCjqxlvUNN9cBeFPfgGKhr7K3Sglqv+CRDGiFGVv2lnJRCZyALeENjBGv50+BjkptPXobtV1MdyCX8FyB4x1A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=9ll0e4xERDwzSsCyUHMw4DPQ8wk5o/Q2P9RE4dkhfAI=;
 b=vin7Vh/W16D+T8+LpW8++Hjn+/CRn98g4gASV9/8vH77JrJ+EijKFSGJB7dXaBedDIee6iC+kXDpMiDRBr9OCkOnaTkWcwcNnS1qUah9k82Y+o6GOPFx0RBbgPtGl3DJYMNJpOYMQeZMkCjW9q13hvPKQKPRnbedJfh/Y5FDc/T32U4y4Vlxz5G4zbwcivJ2hubyXG1u2ziOq++zTk9M1fop7MehnNkxoFloRF6CAmNvTTDsjxvPVXhLIfDAAd3SyKLozZS/z+NVvC3gpLWgOU0CFEDXArp+LYPc8cs2GoRHUZgVeApEQSHsNeYiMkZPNnCxZy/3Dw02i/DjEi58QA==
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=9ll0e4xERDwzSsCyUHMw4DPQ8wk5o/Q2P9RE4dkhfAI=;
 b=GkaowbECMAe3ZEwjc1nVQ+3humXzRig2ZHx1IT16PJI0xVmlR6r3/Ef+EZGx22h26oxL2HwnRqaOjs+39jWxBPWbR8i1Z505GM54Cn2ue2y4zBwZnSBJyB54w30vprBa8z3+uG2QAG/UdzdB4LPO4oO81Kz+SmVYXoEEEWSe9cBYULe1xis895mLccOFUwq6607RQUuLdotf4uj7CE9ctDATbby8ogoHfXWEIlh4xWV5UW+aKYcJ/Kzrqly6O707bC8Weetq1HbqNCxVemKhr/nKoKJpCZgPE1uohJCZ0/XMAUBhkO+xVtJxKn6v7DfQoUNzP/pi6ohzQiH8jWZwlw==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "olekstysh@gmail.com" <olekstysh@gmail.com>, Leonid Komarianskyi
	<Leonid_Komarianskyi@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 v3 04/11] xen/arm/irq: add handling for IRQs in the eSPI range
Thread-Topic: [PATCH v3 04/11] xen/arm/irq: add handling for IRQs in the eSPI
 range
Thread-Index: AQHcFpJ/t39ssss6a0y8SPAQeD5PEA==
Date: Tue, 26 Aug 2025 14:05:37 +0000
Message-ID:
 <8b42416d779537d6a0ac4902cabc549253b9da9d.1756216943.git.leonid_komarianskyi@epam.com>
References: <cover.1756216942.git.leonid_komarianskyi@epam.com>
In-Reply-To: <cover.1756216942.git.leonid_komarianskyi@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: GV2PR03MB8678:EE_|PAXPR03MB7887:EE_
x-ms-office365-filtering-correlation-id: 487dde22-ae8d-4300-77f2-08dde4a9a26e
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?4A4AafZUBd36LSUx5vByLXsvXPELv8VBzFpQUiHy3IERmF7tkoodie/PFf?=
 =?iso-8859-1?Q?iSy3wl7i12elJqD0H8SZHTv470JPfNNAl+QMiY2nOP9o/dbKrBbL75Du77?=
 =?iso-8859-1?Q?vcQrTDnmJdxCkTOWt9Otexa2WF+MtYbZht47ysdUmqzjWkTHKJNTMkr7+a?=
 =?iso-8859-1?Q?UOh9jq9kZkwWA4lt/dlLzoW2Baa2kIEHNGu5f0clOWMlnP+qtnkAO4Hw/G?=
 =?iso-8859-1?Q?z1+SlGVd/ggATRPat6rAitgYh9Vu3kqM6IcpFSj1X5NxyFhT2O+pGlcJD0?=
 =?iso-8859-1?Q?HlilFeujqJ1SRKxz/lgbS+sK9+id7gnmiEaKGiptRCJuFbx9/zQGc5A6r7?=
 =?iso-8859-1?Q?oB27thFm+sB9kcLtB9ANwNSf2t3bqDZLVW/ZWUY52oqMt6ruIhqwqOwkw0?=
 =?iso-8859-1?Q?WDE6sepExWw75Gv6isRwpvBAyq59ME9qxmoEjQ0jefa9PYsyabjiYPUVF2?=
 =?iso-8859-1?Q?xyz7kAznheQLQHsKREwcAap9dFFtnVI/DbasAOl2fkbJ8zrKcyk31SnTmx?=
 =?iso-8859-1?Q?fRmQxta5V3L6v1bpPbMxhnKfjF+cu5kvJGtXNBSffXycRZQY/Dx7gJtP1y?=
 =?iso-8859-1?Q?wCk+JhvwBsYZjq7wWreg0QFUODqWbaddoQmLKjqD5/jC+gL2fvZQuNJiB7?=
 =?iso-8859-1?Q?kb1Fn2n/9gLW55kbsmhUU1RRK8OPnTLWEa/hitpdw3jXZuNahwu2tnq5KI?=
 =?iso-8859-1?Q?C4KggMQG0o82nGkaqoQvdiJ5xne9hImu1v/xzJUeBsaDcadV58snL6FjPa?=
 =?iso-8859-1?Q?0rztImwnrz82tTKOREfZmSroAXXoTs74ob0LVSMFDktcjNUjvzXiXjYRwz?=
 =?iso-8859-1?Q?ekjwWsBIg0IzpeYdvY4OMjWt3fWWQt6c+50wX9er2QlaMuZKgOL1sfjuTL?=
 =?iso-8859-1?Q?t4abZHMEn7U2cBVhzZBLwaDCI8bsv+uRIGlw3iVx4zIP/JITEtwrCR6604?=
 =?iso-8859-1?Q?WyXhw6iJP8cpQMkgbQLjZPTBG2sfDOEAztthG2+CqwqN8OQvrxhTU82sIY?=
 =?iso-8859-1?Q?OsL5Q6eRUTKBymULkeFXFRVDuOJivnfVsTniGWomj0PZxrdS+4EaAOskGI?=
 =?iso-8859-1?Q?s+r8H7KW4AwyPvXARBw0fdaScakqsU4Src5phtuR+8oxnAs2BtqRx/+1yd?=
 =?iso-8859-1?Q?uWl5SQPdgEONMZUpI7mX0oKCjAp1xPHMRhUSzSuDx3Tr6HaZumjrX+rdNu?=
 =?iso-8859-1?Q?op3kVu2iXjRlprSSsdErY6iL8JZeeZvuMapUc1qAqh0vEbmlmRkDzWvvjn?=
 =?iso-8859-1?Q?Ely++hUp6z1NyM7ONB7/aCgy3zSUKbltn/GXUQmXOkQj/92QT3K2p+K7uv?=
 =?iso-8859-1?Q?Sch31Hqxd6H/8j4R4y/IQhB74SV4BC/rg+wKBiCVwxOaIbPgodsZS0xfpi?=
 =?iso-8859-1?Q?Y1M+ccsKEpcc+bIYZVnJ8GgKDSAW6DaG7PllSPSXyN4788n0ZHDMlKHEEt?=
 =?iso-8859-1?Q?2nbfgcnMPJva8UIVpVwSDEjLPhB8uqWYwFumvRB73EgOCU13QTW+9b4OAK?=
 =?iso-8859-1?Q?gh1GH7BvW78uw+o01FJ0/KeDwcUyue9bfQrUKDOIOWyg=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?XEzAkylWFc6vDZiEkuK8B3OePnvVoDDT4sJcnsP+AdY9RfV7JprlaGd7MX?=
 =?iso-8859-1?Q?wDwuB+R+tbCF6hnJSO3f01Yge1nkL5ANfVm/vy8SL/+tAwFhcv81UnIxSN?=
 =?iso-8859-1?Q?0hykDi0wl+mXNfJhkElxZP9Wqr4IJYIUc+sxMQ7Qa67siSyKHi0biDevdu?=
 =?iso-8859-1?Q?FWSRPQFknFNLtezXOPnhgSh9ctfeOB8Ee1aPQVJEb/9BLvtnPBmIj1hdp9?=
 =?iso-8859-1?Q?ckZi95PbCQjYFUWLpMm/ZbNcONjjhcgME6G2WH2uVSPVnmdXFaP00AG7dm?=
 =?iso-8859-1?Q?iQyZwevJXnqO5rXXY5sxLSSDVVWuLY2lF6bKjWYXTIkH5XrSqQrUVNcIW6?=
 =?iso-8859-1?Q?7mpcjzdHNvom32QUjvZHhKeeDJpeUQmx98CLhOUx2/gvP5241F6HZpuSf1?=
 =?iso-8859-1?Q?LV88wJ34QfqZw9nmlsX4q83kiJ2eos+jbiw4qVjOiSieLbt8Sigks351z3?=
 =?iso-8859-1?Q?JVuOehTcCVTKG7sd9dFVREnh73FZ4PfkK4rezccJw6Fb/uyTsXpVVpqd3m?=
 =?iso-8859-1?Q?DkL0KB26rBIdYxyorZztEQZD9HfEdirK4X5IYYVa1xmdd4yYN1bcrLmUQ2?=
 =?iso-8859-1?Q?tqGIb0b/7vMio1EHSgQRtN4iwXu+MmzdroXV0kMUmiA7VLGFjusn+UJKLQ?=
 =?iso-8859-1?Q?8/CXA/XbpKuqwE5LZsWmjetwX0BlUCzc3Xa+zRze7IfDbWb4iAKFFFgmV2?=
 =?iso-8859-1?Q?cIq84tgaBr6saFF60+o3k7/pbFWY2R7zeFpoyPBALt4C4ZhyeLiPDzjANs?=
 =?iso-8859-1?Q?ubWV5P+B0z5O2wJiiRBIQUkGsK/sspLL6P9YYCh/9YMbauaq8ukR8FLoJ1?=
 =?iso-8859-1?Q?01/LxCLBHD+hWLhfRc0HQ0FsE9EfuuSE325SOfJauJX9PgFKTj3B+sbQaH?=
 =?iso-8859-1?Q?g7fNAlvDNqnAVy+4UC7kDdBcYx9IdsWhL5gsy5lDKLu/tzop9AYaemNpTT?=
 =?iso-8859-1?Q?gT7gjcY36CqRNzwHx93bXzi8diuMgSr24SXTi8S99+3HaJtMnqvvvHRRgc?=
 =?iso-8859-1?Q?LZ2GAXY7lKa5e2fOYXFhea1pbMGanX2hwtqI64KpGpjXytLjYpVOrnZFBQ?=
 =?iso-8859-1?Q?FzCVJAhLKpd2HmtEOKYqmgMPrYpUSIsQ18n1lk2eULxr1TUN73oZZ+AYQg?=
 =?iso-8859-1?Q?YOLBb+ni2R0NLEJwHaEy+uAvOjE6tqRC5y553T2WzHXU6i2NcSsyM0sZOZ?=
 =?iso-8859-1?Q?rKXKGbV0jCkJMvsHCqp8XVcemjyLaQaXwCizOVIrJ8+KJYXT4wTTepAD4O?=
 =?iso-8859-1?Q?yFIj0ij1ozIbiHSFFgQNyPYIFB3/9lD1kxwzUBr+799Hlt40gy89WepCu2?=
 =?iso-8859-1?Q?rB3gwdkvjilszUWh3lmRxDvvtDAOepYv/rEpJGN/b7Mt4ZaIhu9VhpNDMl?=
 =?iso-8859-1?Q?XTHQlOWVa0cEIWRb1lh/qrhlIBW7S87efGyNoXIgobKJ4q0TMWuiqXkEui?=
 =?iso-8859-1?Q?0r0P/2fJWPcaXp1jDdVakzIzYlp3vqIAvq7avCpldgzCA/a3cd29nn4s0I?=
 =?iso-8859-1?Q?0gukHTVq0nnPSO1nu9NfnB4lQ7jD+oAhLY0xOJYFL2Pj426Z9PRuPS9yHu?=
 =?iso-8859-1?Q?H+2tKYgSH80Tilc+RapNvguJA6kGZwZGkVetsWwmVXoEoLfgJJIAT4kDAv?=
 =?iso-8859-1?Q?61zyG+Chg2ntc2IcPnBO58zMHeG0lSlrQWmZJrblzzQo3TXWXcALDTJgzS?=
 =?iso-8859-1?Q?+dunt5z3JHuhgaCey1g=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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 487dde22-ae8d-4300-77f2-08dde4a9a26e
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Aug 2025 14:05:37.4113
 (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: SHDYzJtdBF0SH/YZiDAZkRqzS1XUQQEWqd+4dX6N+iaa+OictKtITZr+M0KP/kFQkFCbYhD+uJGoSPjx2LIBzqum86JkPA1oU67P0wrIias=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR03MB7887

Currently, Xen does not support eSPI interrupts, leading
to a data abort when such interrupts are defined in the DTS.

This patch introduces a separate array to initialize up to
1024 interrupt descriptors in the eSPI range and adds the
necessary defines and helper function. These changes lay the
groundwork for future implementation of full eSPI interrupt
support. As this GICv3.1 feature is not required by all vendors,
all changes are guarded by ifdefs, depending on the corresponding
Kconfig option.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>

---
Changes in V2:
- use (ESPI_MAX_INTID + 1) instead of (ESPI_BASE_INTID + NR_IRQS)
- remove unnecessary comment for nr_irqs initialization

Changes in V3:
- introduced a new define NR_ESPI_IRQS to avoid confusion, like in the
  case of using NR_IRQS for espi_desc array
- implemented helper functions espi_to_desc and init_espi_data to make
  it possible to add stubs with the same name, and as a result, reduce
  the number of #ifdefs
- change CONFIG_GICV3_ESPI default value to n
---
 xen/arch/arm/Kconfig           |  9 ++++++
 xen/arch/arm/include/asm/irq.h | 26 +++++++++++++++++
 xen/arch/arm/irq.c             | 52 +++++++++++++++++++++++++++++++++-
 3 files changed, 86 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index 17df147b25..5813e5b267 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -135,6 +135,15 @@ config GICV3
 	  Driver for the ARM Generic Interrupt Controller v3.
 	  If unsure, use the default setting.
=20
+config GICV3_ESPI
+	bool "Extended SPI range support"
+	depends on GICV3 && !NEW_VGIC
+	default n
+	help
+	  Allow Xen and domains to use interrupt numbers from the extended SPI
+	  range, from 4096 to 5119. This feature is introduced in GICv3.1
+	  architecture.
+
 config HAS_ITS
         bool "GICv3 ITS MSI controller support (UNSUPPORTED)" if UNSUPPORT=
ED
         depends on GICV3 && !NEW_VGIC && !ARM_32
diff --git a/xen/arch/arm/include/asm/irq.h b/xen/arch/arm/include/asm/irq.=
h
index 5bc6475eb4..221dbf23a2 100644
--- a/xen/arch/arm/include/asm/irq.h
+++ b/xen/arch/arm/include/asm/irq.h
@@ -32,6 +32,15 @@ struct arch_irq_desc {
 #define SPI_MAX_INTID   1019
 #define LPI_OFFSET      8192
=20
+#ifdef CONFIG_GICV3_ESPI
+#define ESPI_BASE_INTID 4096
+#define ESPI_MAX_INTID  5119
+#define NR_ESPI_IRQS    1024
+
+#define ESPI_INTID2IDX(intid) ((intid) - ESPI_BASE_INTID)
+#define ESPI_IDX2INTID(idx)   ((idx) + ESPI_BASE_INTID)
+#endif
+
 /* LPIs are always numbered starting at 8192, so 0 is a good invalid case.=
 */
 #define INVALID_LPI     0
=20
@@ -39,7 +48,15 @@ struct arch_irq_desc {
 #define INVALID_IRQ     1023
=20
 extern const unsigned int nr_irqs;
+#ifdef CONFIG_GICV3_ESPI
+/*
+ * This will also cover the eSPI range, as some critical devices
+ * for booting Xen (e.g., serial) may use this type of interrupts.
+ */
+#define nr_static_irqs (ESPI_MAX_INTID + 1)
+#else
 #define nr_static_irqs NR_IRQS
+#endif
=20
 struct irq_desc;
 struct irqaction;
@@ -55,6 +72,15 @@ static inline bool is_lpi(unsigned int irq)
     return irq >=3D LPI_OFFSET;
 }
=20
+static inline bool is_espi(unsigned int irq)
+{
+#ifdef CONFIG_GICV3_ESPI
+    return (irq >=3D ESPI_BASE_INTID && irq <=3D ESPI_MAX_INTID);
+#else
+    return false;
+#endif
+}
+
 #define domain_pirq_to_irq(d, pirq) (pirq)
=20
 bool is_assignable_irq(unsigned int irq);
diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
index b8eccfc924..adb5e49ea3 100644
--- a/xen/arch/arm/irq.c
+++ b/xen/arch/arm/irq.c
@@ -19,7 +19,11 @@
 #include <asm/gic.h>
 #include <asm/vgic.h>
=20
+#ifdef CONFIG_GICV3_ESPI
+const unsigned int nr_irqs =3D ESPI_MAX_INTID + 1;
+#else
 const unsigned int nr_irqs =3D NR_IRQS;
+#endif
=20
 static unsigned int local_irqs_type[NR_LOCAL_IRQS];
 static DEFINE_SPINLOCK(local_irqs_type_lock);
@@ -46,6 +50,49 @@ void irq_end_none(struct irq_desc *irq)
 }
=20
 static irq_desc_t irq_desc[NR_IRQS - NR_LOCAL_IRQS];
+#ifdef CONFIG_GICV3_ESPI
+static irq_desc_t espi_desc[NR_ESPI_IRQS];
+
+static struct irq_desc *espi_to_desc(unsigned int irq)
+{
+    return &espi_desc[ESPI_INTID2IDX(irq)];
+}
+
+static int __init init_espi_data(void)
+{
+    int irq;
+
+    for ( irq =3D ESPI_BASE_INTID; irq <=3D ESPI_MAX_INTID; irq++ )
+    {
+        struct irq_desc *desc =3D irq_to_desc(irq);
+        int rc =3D init_one_irq_desc(desc);
+
+        if ( rc )
+            return rc;
+
+        desc->irq =3D irq;
+        desc->action  =3D NULL;
+    }
+
+    return 0;
+}
+#else
+/*
+ * This function is stub and will not be called if CONFIG_GICV3_ESPI=3Dn,
+ * because in this case, is_espi will always return false.
+ */
+static struct irq_desc *espi_to_desc(unsigned int irq)
+{
+    ASSERT_UNREACHABLE();
+    return NULL;
+}
+
+static int __init init_espi_data(void)
+{
+    return 0;
+}
+#endif
+
 static DEFINE_PER_CPU(irq_desc_t[NR_LOCAL_IRQS], local_irq_desc);
=20
 struct irq_desc *__irq_to_desc(unsigned int irq)
@@ -53,6 +100,9 @@ struct irq_desc *__irq_to_desc(unsigned int irq)
     if ( irq < NR_LOCAL_IRQS )
         return &this_cpu(local_irq_desc)[irq];
=20
+    if ( is_espi(irq) )
+        return espi_to_desc(irq);
+
     return &irq_desc[irq-NR_LOCAL_IRQS];
 }
=20
@@ -79,7 +129,7 @@ static int __init init_irq_data(void)
         desc->action  =3D NULL;
     }
=20
-    return 0;
+    return init_espi_data();
 }
=20
 static int init_local_irq_data(unsigned int cpu)
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 14:05:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 14:05:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094532.1449835 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uquJ0-0007Va-Pi; Tue, 26 Aug 2025 14:05:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094532.1449835; Tue, 26 Aug 2025 14:05: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 1uquJ0-0007VP-Lf; Tue, 26 Aug 2025 14:05:46 +0000
Received: by outflank-mailman (input) for mailman id 1094532;
 Tue, 26 Aug 2025 14:05:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kqrf=3G=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1uquIz-0007NC-CP
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 14:05:45 +0000
Received: from GVXPR05CU001.outbound.protection.outlook.com
 (mail-swedencentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c202::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bf3f614f-8285-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 16:05:40 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by PAXPR03MB7887.eurprd03.prod.outlook.com (2603:10a6:102:216::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Tue, 26 Aug
 2025 14:05:37 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Tue, 26 Aug 2025
 14:05: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>
X-Inumbo-ID: bf3f614f-8285-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=atW9qu9G7x2q4/6ECCCfLi6LSzipvaf0TnxZHCtwK5R17KpMl2tQHCVfusHG14UBSwBqSnrCu5G1YkdwrV5Zr+XNDkI0YbyiXzhAU1hseoJoiorm+Hn6AwsxVdMz1rgS66/Yj41mZmU+Bq905bfEUKCW+FFt/v+X7BxTpipBCLmdJZbA3KA641dRmqGTwALpndup2rG7R/uSZV8P965QkH/O/y5k8bnljopT/Nxqq6TVlr1aEwsXrtI50vvjq5qJTbAg99MMEp63OayRGKENvzsUy/be+fp2xen7m4m9CaSueXwcieC8H6IsBrbt5AaZaX8Z4IWv4TQ8PAaRqvB6AA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=DTyOpackm+Xo8C8f+moclgHp+nc05HEzvChused5+4U=;
 b=q92yMq2uJOcuKgJSl47D0zqRRgfZNi7/Oy0duza8TWa13TmSccVbDjZHfIMdPLhF0vTWONIoVCoriBo6dwbJeux7vnSYr21m2WxtMV4G86zSnMK3sLuGF8NOtdXmEwSECkjNcfts+ssXqySUgX56cJZE8LatcCIjAlGH9+alO2P+zG7Vsse7oCL1CZym6PFDOMF2LUgZIaZjucgrcFV3FLvjEP9A75ZbPSJIzeDHb+kPWAwTVt7jzuRFEFdb4FliA5+R7q3A6YaOIBNWvgOVUdya8dc1Wz8roMbIZcUmUi0IPDNeiec+yhSjEETjLYGKlWHUtK3Xv9NeXsj4xBVatw==
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=DTyOpackm+Xo8C8f+moclgHp+nc05HEzvChused5+4U=;
 b=oOwJH2of5njzLd7RJc4f6imFA2JPWCpLeakLULPdueAX3B4rnhGFQZVA6W2UxINq/T4Ajq8od0CSsOq0OPWd/FfY95leyi4pMM3KRe4hkgzCWoyQARqnmdjMcX8EhQnsRwA5hP/CpQ7LOP+Lxx6Cq778V9eJSjG/t6aX/NAqg+JGDUWRRb8rEk+bgRBdEq7Xm33z2HB9av5UaZvweUXjOpQprt9liMqUqNTIj8SUofHpo4TBHpYE4wj2rUWRsM52fMTPKNebRbj+4iLPU5Hoii+0LEIhSjQuSWCy4jQoSUz0Dfi19l0ZaK5bkgiLKLSYkP/JInkwc2QVxwojgQ8qgw==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "olekstysh@gmail.com" <olekstysh@gmail.com>, Leonid Komarianskyi
	<Leonid_Komarianskyi@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 v3 02/11] xen/arm: gic: implement helper functions for INTID
 checks
Thread-Topic: [PATCH v3 02/11] xen/arm: gic: implement helper functions for
 INTID checks
Thread-Index: AQHcFpJ/l4cyfmMsSUSuASmV+4e1mw==
Date: Tue, 26 Aug 2025 14:05:36 +0000
Message-ID:
 <4a865061abcfe626ffb8c134fe2353fb5675dc86.1756216943.git.leonid_komarianskyi@epam.com>
References: <cover.1756216942.git.leonid_komarianskyi@epam.com>
In-Reply-To: <cover.1756216942.git.leonid_komarianskyi@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: GV2PR03MB8678:EE_|PAXPR03MB7887:EE_
x-ms-office365-filtering-correlation-id: af334bac-87c9-4f52-5b90-08dde4a9a1d4
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?iaEsmZq44ux0QgbBcdnPYG++nEMomhO1WRzrmsna11ihWfiXZHmF5XyLkY?=
 =?iso-8859-1?Q?CwkdqoGgclhpTjjUXp63+FqmGfDNghmT1mVql7lAizbPwKRqXDPqT0qBex?=
 =?iso-8859-1?Q?FELx82KwAu7wIUsQENeIKTSr4s3oz8Ywo4tVex3gS5gIIk1k3ysoDF6tkG?=
 =?iso-8859-1?Q?2L3D9C4Hrf/F5q2UxNHTC04FsF5FO5YKUleN+qaqTs+ec65K86uS/u3cKX?=
 =?iso-8859-1?Q?NlhWuvyObdk5YK9nZEVvV0KH2x0hZthNj6zAEm7+WUGg4r9Bt4fLa0rHa0?=
 =?iso-8859-1?Q?Yebn1NK745DwNi2/cQuNvWQlcfflHu5Aj+ZZAIGdneJ1gRQct3gMpKyC+K?=
 =?iso-8859-1?Q?M5MIn+SGJam02dFbaDuehwRyW/qXf3/UTesZWdIf/meGHfQhK/mUn5WEI6?=
 =?iso-8859-1?Q?98o2Lg46xXmo2PzbMNnQo04O/5ZNeXIL9BueXkiAu0ks/87ClpkvNjdSlp?=
 =?iso-8859-1?Q?sBI/KWwV4TMfiawbDy4iWx1ra6W43IHsIvf2e5lBqfs11AofWwLW2YzqXA?=
 =?iso-8859-1?Q?UhriXmep+GtgbEU/wCtUVXMNdOlr507erYIqQE+x13ZBsIbKLCZLIWcG8X?=
 =?iso-8859-1?Q?/R/85kz22lvd6pAAbt/6qiuzVOxJecvnI7I14Rr5eliMVTrVk2IVJDc+1L?=
 =?iso-8859-1?Q?JpRYxUKjplN60Xwz3ljeT9AolQqrfqIFqAjwTo5BGS8aDSHfnh09ypB+GW?=
 =?iso-8859-1?Q?UA8gJMVBMGz7ITAmRc8MKTTvV4Ha8pB3BShnlxhG47WXIupfEfidOQ3tWj?=
 =?iso-8859-1?Q?jlTcNidYn3fRoR7RaiG8cDENB2GKD7TRY77GyT/zS6EmicvpMb3b4KaCrJ?=
 =?iso-8859-1?Q?/PjCrzy/8H81wq/qmUZqYe4TmUAvh3cPl8EIVcZVtrQbbwM8DmNYla6Vc/?=
 =?iso-8859-1?Q?kXvKfpf6V4tTVLpX0c+H3OyAc1BwJ/sOphN97ASQlVZFPnLLUi6ePwOjMs?=
 =?iso-8859-1?Q?ar+gc1yhq3U1rNJilREwJnqEubs6pdIgc3Np8jTw+rKRFVT/90BENEpYit?=
 =?iso-8859-1?Q?8IjeTtR1fmdNcKpM1OIRerjzgAK9GJ8Bt+0GCn/jnijbz5cEsCIc8gmJMi?=
 =?iso-8859-1?Q?dPOOiN9PglfSR8USQ2l3OgI6M6ImYnmJpIags5V2Et7ZCboZwgalKDhDz/?=
 =?iso-8859-1?Q?ZFBTfnsld6pB2cyDKg7oHqklBbgVhsH+ZfB8eLUQvQreMxJTfTnyI+t3px?=
 =?iso-8859-1?Q?G4OWyym3OyvU+lxvdacMPe+LZAMz2TzEIunsYVJOp3ct780n3bEix7AbJ0?=
 =?iso-8859-1?Q?+8lD59YWJD/Jwpd8i94MPJz40Kn/fRG3BsnbG+5MuD9ghwEu8lpB17J5l6?=
 =?iso-8859-1?Q?JNDjk8mzargssFxMBFsszBzlXp4hnUkvX32PgeF7vXJVkakI6eFUah/vhe?=
 =?iso-8859-1?Q?199GHLCqq695gXsqU+hLc4gM7FmCInyvxxDxYRkSDWsivHml/1Gdruhnpr?=
 =?iso-8859-1?Q?ibytUMrxbA5MaVHZQD8oyflqibdKlct6pk9BDjdD0k3xJfQfluKNdwcgw5?=
 =?iso-8859-1?Q?7IKkBvldlNkZ3NMVtR3LkBuEt/FvHF8cDP3ZNRkLZgjg=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?pnCXn4LAAdF6mGej7hwYeR+z1y4Zg0gZkYb3lP//ZQCndTstUIZOjXdKsz?=
 =?iso-8859-1?Q?K76IeRvDQ/faoXpxCUMt6G/0MuoFAtVbbU2bejYsSPNEylf5bD2MUV1xdL?=
 =?iso-8859-1?Q?FGZMeVnA+pAbbEpKBvXrjmx03tXYmumMMmdDu8pnKYQ7LBkWJUeDJCJVM8?=
 =?iso-8859-1?Q?VctQ5dHkn+tpLBDpvkU6giWmWAb5e+dTbsLV3qCn9lfR5Jiz+/R2QwYPhQ?=
 =?iso-8859-1?Q?bfgSV4h18hTeTI02FxGR2xd/AVdacFZWQfy8IVx8erJcnoSL6k+TWEu06O?=
 =?iso-8859-1?Q?oswSqSY9cpCu9nyT5SZ73Wm4kgJmoFYMWau+QPqwwuU6J07ZkWAb51sq2g?=
 =?iso-8859-1?Q?LABnZXZXWmClyLwQa8DxOUxTM7pNi5h8tytlkVnRPogYJjIpChLqTuJJJA?=
 =?iso-8859-1?Q?SVmQHutRWoazFf8RfIADHMpgl/mD0CBPnE5fAzM+sirKH2mtZWk2nwZziD?=
 =?iso-8859-1?Q?PVO/fWJJzNvfaCQwITFNoXMUAToVP+o2nTa3pxoOvnsUk4BGefsWap05HE?=
 =?iso-8859-1?Q?g/9RDitMehZNeHguk7HTLYq0CFHWc2KQbISPP2SOZwIng3DyJmkLLmnmSD?=
 =?iso-8859-1?Q?pSqPHfP762jObFmTXmM74ABYgiCeaBiqBiEprWhX1PhnQ7YWMb9tkAcNJw?=
 =?iso-8859-1?Q?A0WJ2VBZTnQtnhj97MmjN3YVxQR/E8I3giTnjakubFH6ssPJFYO+KJ3+7i?=
 =?iso-8859-1?Q?y53PFniOIjuos56GuDYJ99L93jiKrpHKz21Ei7+BOPp+HtoPzJLUFPJ9Ez?=
 =?iso-8859-1?Q?wbo97l1Gy+hnxbFcM6PkE4A7JlyyHsj+kk27YM2jr8jvaHUmawN+uYsKKz?=
 =?iso-8859-1?Q?I5J7dVyCSWSxI/HBfaJRx/Waus1yb0pICY2RMaj41NKHIkaqMxUDQqwaQq?=
 =?iso-8859-1?Q?TiifzBdqIknSiucGKOzBu/yGgbdGwSmLo06AmMjHoyQX4LHovAIFIGGuxn?=
 =?iso-8859-1?Q?Zj5uXxbD63vrD/YdTazsmQZQOmzaoOgDJxgoQDKWadkNwrACpLahWFRLTi?=
 =?iso-8859-1?Q?rs/ogjlqB8+3x1jA+n96PtaloEQGh4G5llaq0r7VZaU5MBLkPFxDjduo/V?=
 =?iso-8859-1?Q?qUrpS0z3F3vSolJazWoy2z0lAe561IUAiidDUPf088pdSF6HIuDxidyXka?=
 =?iso-8859-1?Q?l0y/0F8dVigZwJ49TPvxrTIP93Cxd36dV/7huTAm2laiWiD29BLn0/So4K?=
 =?iso-8859-1?Q?YrWDBHua4+4Yvra2oD2U1dtsMBVFyWnBoOaGLdul8Fv8AvhDa9zztZnvKa?=
 =?iso-8859-1?Q?3nnaOROo2dThIhmQ3Uv+9vRc0BgeZT1R6YYpYL0tCGpZFj6GEBFbsAmUVp?=
 =?iso-8859-1?Q?I9n8YnNkQlZMz3kup8N1MkSKU1SNwPByFN8wsCkS7q/sfnqKcRzmGaELzS?=
 =?iso-8859-1?Q?OgtcqWV06zdorHDtsomA7e/zBRIzDussnltoF58a3XssoVPYVHFj2nDLZL?=
 =?iso-8859-1?Q?kCw6bg4WnXhDXHep0KFxxFuDbWtpWDOHBrsisia4F19Knss0Mtxkm8+2Ry?=
 =?iso-8859-1?Q?434DMetvnGbQz6FhL5ZJnAXUEeejANqYjpjJE1c7K59WviUIZya7JQ3stW?=
 =?iso-8859-1?Q?RR9JmZcG4sS0dFco9NejBmCO7U2bN4qH1ZSM7QSi4zBieku75EqP3YttnA?=
 =?iso-8859-1?Q?LDmBScmdEhZV/ofoBGAqHXFCv4a6I68s3LMkODG7fYzXquHyoheQgnWfzB?=
 =?iso-8859-1?Q?h8bs0d6lvCg++VhnRX8=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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: af334bac-87c9-4f52-5b90-08dde4a9a1d4
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Aug 2025 14:05:36.7399
 (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: bWx3GY/zqG8C+SiYWIMgK+z/hM598INaNeKO/02ewEkvZf+U8V4RAYFdQQXwN3nnsxO6XWwrjxqJT80fLmDkPdul60yoiVipZFicZvKkD9o=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR03MB7887

Introduced two new helper functions: gic_is_valid_line and
gic_is_spi. The first function helps determine whether an IRQ
number is less than the number of lines supported by hardware. The
second function additionally checks if the IRQ number falls within the
SPI range. Also, updated the appropriate checks to use these new helper
functions.

The current checks for the real GIC are very similar to those for the
vGIC but serve a different purpose. For GIC-related code, the interrupt
numbers should be validated based on whether the hardware can operate
with such interrupts. On the other hand, for the vGIC, the indexes must
also be verified to ensure they are available for a specific domain. The
first reason for introducing these helper functions is to avoid
potential confusion with vGIC-related checks. The second reason is to
consolidate similar code into separate functions, which can be more
easily extended by additional conditions, e.g., when implementing
extended SPI interrupts.

The changes, which replace open-coded checks with the use of the new
helper functions, do not introduce any functional changes, as the helper
functions follow the current IRQ index verification logic.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>

---
Changes in V2:
- introduced this patch

Changes in V3:
- renamed gic_is_valid_irq to gic_is_valid_line and gic_is_shared_irq to
  gic_is_spi
- updated commit message
---
 xen/arch/arm/gic.c             | 2 +-
 xen/arch/arm/include/asm/gic.h | 9 +++++++++
 xen/arch/arm/irq.c             | 2 +-
 3 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
index e80fe0ca24..9220eef6ea 100644
--- a/xen/arch/arm/gic.c
+++ b/xen/arch/arm/gic.c
@@ -111,7 +111,7 @@ static void gic_set_irq_priority(struct irq_desc *desc,=
 unsigned int priority)
 void gic_route_irq_to_xen(struct irq_desc *desc, unsigned int priority)
 {
     ASSERT(priority <=3D 0xff);     /* Only 8 bits of priority */
-    ASSERT(desc->irq < gic_number_lines());/* Can't route interrupts that =
don't exist */
+    ASSERT(gic_is_valid_line(desc->irq));/* Can't route interrupts that do=
n't exist */
     ASSERT(test_bit(_IRQ_DISABLED, &desc->status));
     ASSERT(spin_is_locked(&desc->lock));
=20
diff --git a/xen/arch/arm/include/asm/gic.h b/xen/arch/arm/include/asm/gic.=
h
index 541f0eeb80..c7e3b4ff0d 100644
--- a/xen/arch/arm/include/asm/gic.h
+++ b/xen/arch/arm/include/asm/gic.h
@@ -306,6 +306,15 @@ extern void gic_dump_vgic_info(struct vcpu *v);
=20
 /* Number of interrupt lines */
 extern unsigned int gic_number_lines(void);
+static inline bool gic_is_valid_line(unsigned int irq)
+{
+    return irq < gic_number_lines();
+}
+
+static inline bool gic_is_spi(unsigned int irq)
+{
+    return (irq >=3D NR_LOCAL_IRQS && gic_is_valid_line(irq));
+}
=20
 /* IRQ translation function for the device tree */
 int gic_irq_xlate(const u32 *intspec, unsigned int intsize,
diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
index 03fbb90c6c..7dd5a2a453 100644
--- a/xen/arch/arm/irq.c
+++ b/xen/arch/arm/irq.c
@@ -415,7 +415,7 @@ err:
 bool is_assignable_irq(unsigned int irq)
 {
     /* For now, we can only route SPIs to the guest */
-    return (irq >=3D NR_LOCAL_IRQS) && (irq < gic_number_lines());
+    return gic_is_spi(irq);
 }
=20
 /*
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 14:05:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 14:05:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094531.1449819 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uquIy-00076J-C2; Tue, 26 Aug 2025 14:05:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094531.1449819; Tue, 26 Aug 2025 14:05: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 1uquIy-00076A-9M; Tue, 26 Aug 2025 14:05:44 +0000
Received: by outflank-mailman (input) for mailman id 1094531;
 Tue, 26 Aug 2025 14:05:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kqrf=3G=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1uquIx-00072q-1h
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 14:05:43 +0000
Received: from AM0PR83CU005.outbound.protection.outlook.com
 (mail-westeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c201::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c04f14b2-8285-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 16:05:41 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by GV1PR03MB8590.eurprd03.prod.outlook.com (2603:10a6:150:9a::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Tue, 26 Aug
 2025 14:05:36 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Tue, 26 Aug 2025
 14: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>
X-Inumbo-ID: c04f14b2-8285-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=G3EaZT/jQdTmvlolmEYx/2yyA33Gj191foOE9sEbmnoe+arjolJMwDGblxZbOITjN2+W/wa9tVWWfwMcQZO7a+SZLT7cdgS8zK0vMdpiQUWX2Ewqaz+CFaGk4ry/MKTLHEDSb7+nNnp3/+vmHeKr1LR+673WW53R9na1K0x13XgAaplBu0I8In4R7fcP7mydICRVm8IzoNTUdjgn7zbVi6azPGRw7jX7JXeb+7deQqjwYXLjc/XyKq7PZ+DpkHgHbwJXR8SOP3YW4wjI2XFa4J1KkFqlr5pxEp8raWRX09xktnSutTXcxNXvh0+JrRWAMMLHsJCCyfCRBFBj0RdfZA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=uxiR68BT9E9bUNcTc39AlV4WhoNXMfyWIZeI8b9FTbU=;
 b=L/qok1OF5v1sEDOvSRcfZXcXPSd+LgtYvRzRd+bCl7NJJUx1Xz7tqwbtqd9V4hrVGkI9V1FvtVCvHO7IKRoVKZ+nJoO6E9D9B/EsGNAaAaGgRwuSC+mgsCKdsyVExv/LWDV7WT8KbbSMoKDsa5bUvGsT8KOgF+e/tWkxX071eLxpXjxAJdGgtoP0V+ZWzx6G00JO/rX5nvqiaz4oG+plnUiQIPvfhUZDgUgNBIIrnnsahAFBN/Z8cETsgroCoBdWv5gH/IuIKRIx98hRCduCDgYIegBN9FOce2aD78Q0/aax8hV+W9M/coNhXCSVPPR8dakHT/NM++Ux43m8xjAtww==
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=uxiR68BT9E9bUNcTc39AlV4WhoNXMfyWIZeI8b9FTbU=;
 b=BwN1S+4tWW5Ph94BBoFobpbyP8rp3MLvaY9YnqBiTyrEEpbqMh4Lbe+/O6dHfyiQ2ZCJDdmPRq0+05RyHIxPvA2JLOLb8WZWkEqoKJyUgXPwhWF5SbQnl2G8NYHud7cJ+HaMyuSR5VTK0ilfLMozuLr335Rd31W3CnmpJkwx47fnUgwYbvq/CTL3lO3JrfnEIwyau+WGoT/BxNMROW7jgYb0+KgfhFp7Rxy6WflGAvhiZiUm849h62u4YlSYM9I0E6/+Aj/sjxLPU05xzR+Qtrk1CG+8/ksAEmX+Z9EwB2coNQ8auzIJaztcbc73/6nhODenrAGSE504zvakksgAMw==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "olekstysh@gmail.com" <olekstysh@gmail.com>, Leonid Komarianskyi
	<Leonid_Komarianskyi@epam.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Community Manager <community.manager@xenproject.org>
Subject: [PATCH v3 00/11] Subject: [PATCH v3 00/11] Introduce eSPI support
Thread-Topic: [PATCH v3 00/11] Subject: [PATCH v3 00/11] Introduce eSPI
 support
Thread-Index: AQHcFpJ+lDNT/UIVbEmkb1HdVv/B7Q==
Date: Tue, 26 Aug 2025 14:05:35 +0000
Message-ID: <cover.1756216942.git.leonid_komarianskyi@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: GV2PR03MB8678:EE_|GV1PR03MB8590:EE_
x-ms-office365-filtering-correlation-id: 15e0f3bf-7275-4204-9da3-08dde4a9a127
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?WtslI/uW+FPo6BclI7H0lNBiVBLpsD963VkVlUKw6Wrxv8hlLibOO7CLiu?=
 =?iso-8859-1?Q?RveFuIz2EJ/Qkr9OktSHVVarRFFlBsrvf6LnBsOf9rOMQpYxZ81I/rxZeL?=
 =?iso-8859-1?Q?3Cn9TzDX2P7+H0AmLlnYUODD4ShGaiWfOjBsWBri4wjCSa1p4G/JSX2rWP?=
 =?iso-8859-1?Q?0AOmQHceqrz87FaOAAtaZTmja2SQTfxMb3BATsh9l68GQeuc5hFNd/YCnQ?=
 =?iso-8859-1?Q?/V16vrrZNP7U1GRev2w0YRNETdfQXx3PC1d0d3LHa/VY0PbDI1jBcqCN08?=
 =?iso-8859-1?Q?kD3r1WdTMN+92QgA/wuM6TkC9JqQCu7YsfCOTJ59MCu5I/EgL0FzQaLH++?=
 =?iso-8859-1?Q?2aHnTiz/elGiJeQiFcgWFUnAqEaFXXqb4UB91GOFgigB4uW2ReQ6iVfZq0?=
 =?iso-8859-1?Q?HJqWtZBGIyO8JfUHWwlKE+kj2cgdXbLOfGTZ6KyU3YzZpeLgsanZNf+Jdd?=
 =?iso-8859-1?Q?AYyZNhe3lADZ8iAcovtpMlxHyVfUyhUdQA8jI/WJlqrsXX02bbYCF99ocu?=
 =?iso-8859-1?Q?FkXosXku8rHdGsQv6Clj4PrNAM7dxQE/cKk3jO8XZIovJ/hTlt5PSpn7UJ?=
 =?iso-8859-1?Q?tYwK/c+NLX0Px7v7ZN8D9KrWDaGrJY4SUYAhAV3ufUqryfKia85kjuSTDa?=
 =?iso-8859-1?Q?Hn5zltRumqZ47Y9Gc7Ou01rAiKVHUBqs0eDeYj7fhztHwQYBdA4R7dOI+Q?=
 =?iso-8859-1?Q?rdrqgfZ9I1FA1TWXcFiCEhNN0iD/kIVGXpP7Yli137/tx9t5vjav4FyTcm?=
 =?iso-8859-1?Q?9Uj+7M5YcvYFbytiXjZbNEl66njhenzBe38n3cA3/D2v5ZBcBo2Nnwp3RI?=
 =?iso-8859-1?Q?R0yty/9XJfmrJMlHen5cydGcfH/4sFeWtbqT3ZI05dYmRr8FmIKfNAWjdP?=
 =?iso-8859-1?Q?suzFZPWkLhqiFXf0iOUrLux9jCD4xR01ubw/+v34MDLMujas6lYmNquOKD?=
 =?iso-8859-1?Q?gYRx8s8eUKSDoe4eZSpIMvtJ8ptRVz9VBZk2sEkP91qu8ca43m2ztQ6ojs?=
 =?iso-8859-1?Q?Y2uq5fbm8VO04bWEnYMVajIE91sWfgkRH1qnzI7FwJMEG+Z8DBm2vDFJK3?=
 =?iso-8859-1?Q?VPyBtRgrMePN2VtV4UakafYW3lpwtHCjVTIMALd7U9pk4sEOvwGPeMDgTY?=
 =?iso-8859-1?Q?mxlGSUpSVAhCsNctbkZUv4ej49qlUu2NovuJWzu9GrPBbcvsi6aGVEPmkG?=
 =?iso-8859-1?Q?hWE8ed9VKcLskCOw8dNwshi/xZDKKJPqGQc5QfE1ELaManJSAPCg6Di1Dj?=
 =?iso-8859-1?Q?LrMxywyYupTp/RDAs8pkXlq3AGfJjBlPiU/ljG/lLyo6lSZHYhh1Rb9TXb?=
 =?iso-8859-1?Q?bTAm1aNugENgngYyYSz5e6E+P19COSgm/P0w2f2mmSK94ZuC9PsZ4/van9?=
 =?iso-8859-1?Q?wUxXmma+dakFuHFCb/SX3hzFIASgLLe8tmaseCXcJqcOH1RtOvG0p9N/F7?=
 =?iso-8859-1?Q?wjT/C5TI9mOodIinqqbvzu6dr+FI7k/P6ZN7zaT8OhaAEjOWX9HCusiQT4?=
 =?iso-8859-1?Q?8=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?I61jysiL1Czz6lCWW6ACk7gTK4bIrSbA8kKh/+u4v0Bdz35i+drp9vqyCl?=
 =?iso-8859-1?Q?BqUCQoaL889wZUfzkcb3dJcBCA+lJtKfUSyVxLVhJqDltsoqlKGiaMCdgx?=
 =?iso-8859-1?Q?618vsoDNPjwcFiBo/2GkAte7xarh6Ztm3hTmv1xaU9U1jcdkJpgSaBpR9c?=
 =?iso-8859-1?Q?AJv0GwavcGW2go0HVb0WdVsEpdspJn9x0svwRaNlt/E3oDQnb9sr/T4W37?=
 =?iso-8859-1?Q?ZFOKpqTho0cXpOG6zhDJXtOWG26x+A/SJxk34/C/XLz219WBl3J3U5TAVZ?=
 =?iso-8859-1?Q?szO8moX+6CKvrtT9sFqbzWFxYmwZd9bKwzAiw8MUSw1EhkVskfcNKzbGNC?=
 =?iso-8859-1?Q?44D210//BlJZSJ+7J9HlTDFK3EBSD+vMs2Thx3T6u4PepX/g18XFzBiWTa?=
 =?iso-8859-1?Q?rIbN865PFrfT05gh85K/7ROLIM8Eqgf3hqTtP1Y5qdhOGEd/qsJMG9vLho?=
 =?iso-8859-1?Q?+ESGfcPKlWfyttA198pjeoNmqTUVMCNrAvdKm32Eww8eFyZX5BIobVbeUq?=
 =?iso-8859-1?Q?XhZ0isnTni9uZnJBDMgEXfLl6lVfJQzQ/0s0cEkH65bSCSUf1b55iM0Gmk?=
 =?iso-8859-1?Q?a4P9iD/pww/EcPvXr/o+jf6gtwbJLL4xwsVhjtH5NcW2lofbE529Kaifm2?=
 =?iso-8859-1?Q?6JNaVQFwZGbBATo0i9FNhoFYbwCpGTPeq6GYSswvv5myQB6zL+ogfKq73T?=
 =?iso-8859-1?Q?RMMTtGQJMV/VtPFO7jw7oNw0iZwJ+kcvmHv3ENmDWs7Q6ZdtjfudYaTpGF?=
 =?iso-8859-1?Q?sbFq6k2zKUa3Vzk5MUHWMJ7qzbJae32R8ngZUkptOZTIs7zS/IKlvDbcw0?=
 =?iso-8859-1?Q?6npAU2j6zEeI/geZ+6avecXyAAW3nQwdLOucy0IRVJbjs3JKYcoxdHloz/?=
 =?iso-8859-1?Q?R6sC1Ls9GoZZEEJGst60bDGym0dXg7BIjU0lRRCe+w0Yio1FHGZqcPakgH?=
 =?iso-8859-1?Q?5ZhYsCZsOMj3+2BTDGS7XLYj6+LufF54d+OPGUGavXbqBuT+7r6Tr7PIF6?=
 =?iso-8859-1?Q?VM/n1t6TdBpHNkjxzI2nCdrCFvi9K3FmS9HtfwR0iDyMW9DDLsJUIO0B45?=
 =?iso-8859-1?Q?A+Ymp5JwU/rGNVJjg3aSLzIYMQd5pb5vkUnGJAD6WEdeBxQsTrmBw7vT0i?=
 =?iso-8859-1?Q?kuca70OqglD0jurtX0umPdQu+a42XdWBFRmNq7Cyr8T4qobpq7ewk1RUpr?=
 =?iso-8859-1?Q?WH42/UM6MxqtbCcybrPM+u6vEo5xFaJtp/+lZOzwRexFp/rTf28vPrPBrV?=
 =?iso-8859-1?Q?coHY3Qy0yohCzn5jvNQK6CVGiPMe6VG3pJWw3escErJazKQlCtLpt1zbql?=
 =?iso-8859-1?Q?VK8pdloZALw3Go5TVL1ajSOfAzbCnJAANQBTgSupx/x9kXkgZ0C667eZML?=
 =?iso-8859-1?Q?4sYLI8GYX2y7J0E8V3mnN3SA7cmZf+foIR8ZtayhlvLlNt9/dOeQLZnoWD?=
 =?iso-8859-1?Q?brPRK9oMN8Fk6y5KYfLqsna94h47CE347/HK2i6rQnjjee7eSW4iZlVIoB?=
 =?iso-8859-1?Q?NX5vVhZ4B4W/bZHHo6XK7G/52a4598j7M93/JAlBeXPKzrHGroSLKutz1D?=
 =?iso-8859-1?Q?i7MQnWUbkGwEgR+IZYMWfXN/pl0E7IOfP04EROaVs7m+5oW4rA9ROtVWn9?=
 =?iso-8859-1?Q?2GKD78/GXC0J/r2BRqRfcdxZslVt1AAfEr5TxNOinz2rW9K6WNOvDNWMsX?=
 =?iso-8859-1?Q?X8QEGzO6YwxoY2RyBy8=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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 15e0f3bf-7275-4204-9da3-08dde4a9a127
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Aug 2025 14:05:36.0549
 (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: N/ykwgYou/GT/wAbfWEMX3zAbGbJZggnaDHA3O/HJg/7IXTaLL0hEVVVaJO/TpvDBPONgnTrm3I1Y45RANYEbzZAq4gVqJaavycRn24Nak4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR03MB8590

Hello everyone!

Dear Julien and Volodymyr,

Thank you for your review and suggestions in V2.

Following our discussion about memory overhead when eSPI support is
enabled by default, I have changed the default value to 'n' in Kconfig.
Since implementing dynamic allocation for the IRQ descriptors array may
require more time, I decided to go with this solution for now and plan
to prepare the next patch series with dynamic allocation later.

Additionally, I have added stubs for non-eSPI builds where possible and
reorganized some code to reduce the number of #ifdefs.

Dear Oleksandr,

First of all, thank you for your review and for verifying the build on
the dom0less setup. I rechecked the dom0less code and added the
necessary changes to support eSPI in these setups as well.

I also want to mention that I verified the build with Dom0 and DomUs and
checked eSPI functionality on real hardware (e.g., passthrough devices,
changing IRQ affinity in DomU, etc.). Everything works as expected for
devices with eSPIs and regular SPIs. Unfortunately, I don't have setup
with Dom0less + eSPI to check it quickly, but Oleksandr has confirmed
that at least regular SPIs work fine with and without eSPI enabled on a
non-eSPI Dom0less setup (with V2):

> I have lightly re-checked the simple Arm64 Xen environment (dom0less=20
> DomU under QEMU) with your series applied. To be clear, I did not really=
=20
> test the eSPI support (the underlying GICv3 HW does support it); I just=20
> wanted to ensure that your series would not break anything. So, in both=20
> cases (CONFIG_GICV3_ESPI=3Dy and CONFIG_GICV3_ESPI=3Dn), I did not notice=
=20
> any issues (at least obvious) related to GICv3 emulation and SPI=20
> injection for the passed-through device.

Summarized description:
This patch series adds support for the extended shared peripheral
interrupt (eSPI) range (INTIDs 4096-5119 [2](ranges of INTIDs)) for Xen
and guest domains. The implementation uses a generic approach to handle
eSPIs, similar to regular SPIs, while maintaining compatibility with the
existing SPI range. Functionality remains unchanged for setups that do
not require eSPIs.

The series includes:
1) General refactoring of common IRQ operations with GIC registers to
improve code readability, simplify further maintenance and prepare the
key functions for eSPI implementation.
2) Introducing a new Kconfig option (default n) to enable or disable
eSPI support. Disabling this option prevents unnecessary resource
allocation for setups that do not require eSPIs.
3) Adding additional resources to store required information and operate
with up to 1024 interrupts from eSPI range.
4) Adjusting assertions and checks to pass verification for INTIDs in
the eSPI range.
5) Configuration of eSPI-specific registers during GIC initialization
for systems with GICv3.1+ hardware.
6) Enables eSPI MMIO emulation for vGIC, allowing guest domains to
access and operate within the eSPI's INTIDs.


Changes in V2:
- added 2 more patches to implement helper
  functions for gic/vgic:
  xen/arm: gic: implement helper functions for INTID checks
  xen/arm: vgic: implement helper functions for virq checks
- removed 2 patches:
  xen/arm/irq: allow assignment/releasing of eSPI interrupts
  xen/arm: gic/irq: permit routing of eSPI interrupts to Xen and domains
  since their functionality can be moved to appropriate patches after
  introducing patches with helper functions
- individual changes in patches

Link on V1:
- https://lists.xenproject.org/archives/html/xen-devel/2025-07/msg01809.htm=
l


Changes in V3:
- added a patch to update CHANGELOG.md
- individual changes in patches

Link on V2:
- https://lists.xenproject.org/archives/html/xen-devel/2025-08/msg00372.htm=
l

Leonid Komarianskyi (11):
  xen/arm: gicv3: refactor obtaining GIC addresses for common operations
  xen/arm: gic: implement helper functions for INTID checks
  xen/arm: vgic: implement helper functions for virq checks
  xen/arm/irq: add handling for IRQs in the eSPI range
  xen/arm: gicv3: implement handling of GICv3.1 eSPI
  xen/arm/irq: allow eSPI processing in the do_IRQ function
  xen/arm: gicv3: modify ICH_LR_PHYSICAL_MASK to allow eSPI processing
  xen/arm: vgic: add resource management for extended SPIs
  xen/arm: domain_build/dom0less-build: adjust domains config to support
    eSPIs
  xen/arm: vgic-v3: add emulation of GICv3.1 eSPI registers
  CHANGELOG.md: add mention of GICv3.1 eSPI support

 CHANGELOG.md                           |   1 +
 xen/arch/arm/Kconfig                   |   9 +
 xen/arch/arm/dom0less-build.c          |  12 ++
 xen/arch/arm/domain_build.c            |  11 +
 xen/arch/arm/gic-v3.c                  | 192 ++++++++++++++---
 xen/arch/arm/gic.c                     |   7 +-
 xen/arch/arm/include/asm/gic.h         |  30 +++
 xen/arch/arm/include/asm/gic_v3_defs.h |  36 +++-
 xen/arch/arm/include/asm/irq.h         |  27 +++
 xen/arch/arm/include/asm/vgic.h        |  39 ++++
 xen/arch/arm/irq.c                     |  58 +++++-
 xen/arch/arm/vgic-v3.c                 | 275 ++++++++++++++++++++++++-
 xen/arch/arm/vgic.c                    | 222 +++++++++++++++++++-
 xen/arch/arm/vgic/vgic.c               |   5 +
 14 files changed, 868 insertions(+), 56 deletions(-)

--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 14:05:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 14:05:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094533.1449841 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uquJ1-0007Xb-6y; Tue, 26 Aug 2025 14:05:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094533.1449841; Tue, 26 Aug 2025 14: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 1uquJ0-0007X8-Te; Tue, 26 Aug 2025 14:05:46 +0000
Received: by outflank-mailman (input) for mailman id 1094533;
 Tue, 26 Aug 2025 14:05:45 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kqrf=3G=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1uquIz-00072q-9X
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 14:05:45 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c1e83ef4-8285-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 16:05:44 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by PAXPR03MB7887.eurprd03.prod.outlook.com (2603:10a6:102:216::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Tue, 26 Aug
 2025 14:05:37 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Tue, 26 Aug 2025
 14:05: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>
X-Inumbo-ID: c1e83ef4-8285-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=IYIITd1S1dB7Dv9l63yHCD8+0qbB81WXHEhdJOKaeDAmZnTOWPGDKGF0UEFMci2g77nRfsMFtIGL6TQzFNdfE69XyAW74U9xEx9InNr9KcdJx6b7ZM3jXIwiCeE5lcBHSvCd4D3jCz51E0yYN4UIiI7vlZTuNNheAgyAeH+0ZD4wSYpSMr8yJWXchVc5diMDwWuTWH0j30+fXnODpocij2MoLeT6bE3Xo26Yze5OTyGmK03fhyD9z7WanGCJ0N0zlXelOoWSnZYGlBSLTSLN9n/6PVykIxv6/WqRpY9sC+BpViWtD6nVkd3TslrHD6pGfkzc2G2UYYsvmmfwD5UDQg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jdwEuhIp/AyycO0khwMfMN5p1ABKaSbPzkCWurtKwBQ=;
 b=gWOJDv48yjsTWSZ+jXLBi7JnN23VIfzP1Sp71fYmuck8JE9U4A0sE8gh1ePBIEaiH9CPIWpvf742/3oSOp0quF7V06Jeg92LZlypEok1uDDahcgC5xEZSdT7zXF0iVq4a4Prna7N/DMP4OgzmEfPtVebCJMlHEV+lX0h43u5MVFb9p12tGV63bMrih8MqjrqhJHsFn9mFrLr91v3ImyLZIHuU2HcYsyB2aMEG47GSxg1etY+4za7FxPAiqVk8cWJq5TS6Dw7YvT8ZwejTI4MsAw4pnv2KdvyRka/HEOlePR5k05B+dhdkUp2lpH8fEgL4iRw10D23YuWjeC60PWaQw==
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=jdwEuhIp/AyycO0khwMfMN5p1ABKaSbPzkCWurtKwBQ=;
 b=gAvgHag7TywEGWSzcEz66atlIUec2qbqAnGGFSyqB+tgQNtt3DGU2lpneCvFZTXZ5WiflaVB9o89PLL5ExHiCL4Q3oB9U11//ULwN4BUT0UTG/5j59mOXUni7WxdW+rIvQVSd2jL7Y7yhQwzPFTQsD8+741uTTpoJS49U6A2tiEszGJzZI7p/jHbwfWz5ho4x0bQTEwkKIxL3S5+nNAW6iaLJaTH6pJACfbsMiLMZxIdkjKUr6YOfIp2AJB7hDufEGwdlJ7w13s3glFlPQ2RlkS74q3eGFJFilQp1QSoYrbbQOZQaP+1+49pN6OT/1Kn9JqgKM2W4jLS/NKAzbH4ug==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "olekstysh@gmail.com" <olekstysh@gmail.com>, Leonid Komarianskyi
	<Leonid_Komarianskyi@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 v3 03/11] xen/arm: vgic: implement helper functions for virq
 checks
Thread-Topic: [PATCH v3 03/11] xen/arm: vgic: implement helper functions for
 virq checks
Thread-Index: AQHcFpJ/eek3/DqJlE2eNsEQLkbJqg==
Date: Tue, 26 Aug 2025 14:05:37 +0000
Message-ID:
 <a50e978b0442d737bb2621085e95aa6bee8c506b.1756216943.git.leonid_komarianskyi@epam.com>
References: <cover.1756216942.git.leonid_komarianskyi@epam.com>
In-Reply-To: <cover.1756216942.git.leonid_komarianskyi@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: GV2PR03MB8678:EE_|PAXPR03MB7887:EE_
x-ms-office365-filtering-correlation-id: 7243e37c-763d-40b4-8e2d-08dde4a9a22f
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?0uR9164kUSfL6g25EFY1ib6WU7QDF9xGbY6NqIgiyzZrwbzCyLbOA/vTY4?=
 =?iso-8859-1?Q?zR17ohK9NtGqv7hMQzLt5diLkj6s+tk4ObrC9ZQMu1B7b1Ih2Wq6AIF8+B?=
 =?iso-8859-1?Q?B9RH60RcBwEsamL1TtuUxA0LYNxzGRyjcF4qxntP4jQstoaR8QRJff4Dfy?=
 =?iso-8859-1?Q?QXvI7ytRDNCT2rpC3Vh+ri3Mb9Tl/B9tJxPuhSRvhogDZcXKbrsGQ87G4g?=
 =?iso-8859-1?Q?czOw248lTav1AJAp28ukswUi7RCy9hqri7unV9vym++iio7qYMEMgpXpAd?=
 =?iso-8859-1?Q?m0LU1LggVxk1+XF4Ih//CjfnCLGzvQ3RjKoEaMKrJ+1BIYW1q3eLMpO+oF?=
 =?iso-8859-1?Q?INh1rIXuAUm5lWg1BeTSEIibMoAEZVwzW7VvUmSkdVkapeAbRM71Q8pW8G?=
 =?iso-8859-1?Q?+KWJA7a3teJ5F4P44xZA0LlOcQDKVUOSCiqHeEDbrfT+uLR6xIB9jFvpEM?=
 =?iso-8859-1?Q?ZK6KNt/drOtwR9YvNnKZ0DKp5U23voY9S2/0Qvb/EOn9q7Y0/gHlMc4QVL?=
 =?iso-8859-1?Q?vt99ukOwP5oarfU2KrUTByUF9fFdoql0sHX/6wWI35G31TGbBwzC3RU99o?=
 =?iso-8859-1?Q?EvpV6ml0O8Ozz0SyT2z1RsBLFBU1VjE/zBO9CHoXJMiCapN+1qr67d9dV9?=
 =?iso-8859-1?Q?EUyU2f5SM4EmoPpvtIbaS021Rzb31aKtN/L47l1XfztQlFxkGLK/+2A7jG?=
 =?iso-8859-1?Q?Tnl2ezF3+8kMLO5QU3vVpiiA4Hszj45WOucKxgbakaMsa5a4qHiumPhg8t?=
 =?iso-8859-1?Q?HJygGzsQYzMRguGzs4x317kDNjn+zzUb8I1OZ0GbbMtfSv0uzBxlhMoEMC?=
 =?iso-8859-1?Q?m2bzz0dEjrqKeLuxtGkk+mERaa5gH4Vyk+nDhkNJfQn263aFpAQ/stvovU?=
 =?iso-8859-1?Q?eTJpT4ETMsaSQxzLET4vuYdvrUp+n2ELwWKdNoN/VtGhPduAI98Aq3WvW3?=
 =?iso-8859-1?Q?bQfVqB+yWqMEgBM5l28y6ZEGNAV8MK9IK3uKjZO9U12WoHkOk/oZPxDA7g?=
 =?iso-8859-1?Q?op+U86Iecoqnq+ofbKSYwfYYQcwQHF1/78U6nRpqF42TuMDm4o/PiheqIK?=
 =?iso-8859-1?Q?Y9/UePM/pxlLz3M90J+znt0QnKF46+d7chXIG6+VV4Q1Bw/XG2KG3tQudC?=
 =?iso-8859-1?Q?KaK1HCSAzRlOrTDsnKadsfo7L9JBvC3QgWFoa+BUJN47XQaw+rUtlhGVy1?=
 =?iso-8859-1?Q?8m/gJcrvwDpmbH1QipK7naC8fdbHj5+du7K4veyGaPYRDY3aSE0JI4CSWR?=
 =?iso-8859-1?Q?V2qqlcq6guysxfqh6oMl0lpxN4IDvo4O3U/0V2nWk+Ph1GCdYHfQMhQgkG?=
 =?iso-8859-1?Q?nBTkNsJd4d1H4AT+L0+nViJx+2UB0uX1UErtHPB5E2xqLAZ+4BBg1e6pEk?=
 =?iso-8859-1?Q?FyeB1MgT1WuWIM0rQ63V5kSYTR7Kscv/7xREVl2W1Q00ZwIU39Yc5hZl6c?=
 =?iso-8859-1?Q?Yyu8q9lABwyU/cp4gBmxFdlPy++xOl8EGn5hqYDY0OmDmgNdv4ZxLG6z87?=
 =?iso-8859-1?Q?i5mpeBti2F1e0LZZiohC07w2QyghL5E3xTEc0JFK/j7g=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?+B+5QlOmbpTw401FB7V9xyuo05Ojvg7lyGUHmT6GCXFkTAGOX7GUDq2K6L?=
 =?iso-8859-1?Q?XPcAFAHLA+vPTVNnNlPXV0ysVtqhSvQ+CQLfwdYR/qjZFqfH7WTmxwVPRi?=
 =?iso-8859-1?Q?rl8LnyaBZKgwPdL78HZhQv5tUBhJZqcExtC/2eC6b+uenMsCwO5qIiLuCx?=
 =?iso-8859-1?Q?ZHmq3tUGAHZUy9CiyHEx9QIg6o3QV1OS4F4GYmPb0oPr2p7ClEkMl0ILzz?=
 =?iso-8859-1?Q?Q3dl8CZncToyMfLSaqwtC19PKXPcRggS/DgzqirfTjn4Za3j0xGxUJXE+O?=
 =?iso-8859-1?Q?ijrTcXwRXH2aIdVr7TbsfjAaDZjSWKE/CHpNvavInzRxfoQlJ7L2ZJRiBU?=
 =?iso-8859-1?Q?6h1hrVFYpK5210g7opVNXRjJ3xJ46IhxR9GasBFwSYYjXZs/j73SXm1Hg0?=
 =?iso-8859-1?Q?YxZhwUFrwkAIiOwczXL3sMF0UNQ3L/g36XS9zFFVYnXyHJSiKlxDHnnWZr?=
 =?iso-8859-1?Q?2Ypqs9ucRtMfiYwCfAmlEd9BrULKKW/Juj8ZCvWVsu3otpOsWoKr7gUw92?=
 =?iso-8859-1?Q?JXpAiepRlBiaQAKrN598Tiwp/ZRdTdPVRzmoB8aiLC4sclwfTSLgjOI1vE?=
 =?iso-8859-1?Q?w8IGiVaoSjPoNMVdG8A6TDqU1hlOG7rsxjqkEobLhdwzK486A14AeUtmOX?=
 =?iso-8859-1?Q?PzmEC6GXAvh4orRXtP1zc9C8AG8ZKBh/LbST59T5Fw2wk+2O1XDUh65Uj6?=
 =?iso-8859-1?Q?oAvqTB8utNOVDDy9WU8puPo8qMe6Dn4JlRMO/6v5e9qDJOm8nvNY8e8ggY?=
 =?iso-8859-1?Q?0kwhdUcaE7q8aaKBUEgmQprDu1kY1axAXnyif5l/wI2kpmIqe8+VZQ7VwA?=
 =?iso-8859-1?Q?49mTXCEYP2sYPkLmqXxNduW439VNMKoho06n4EROlJDowRGKL7DFgHuxrp?=
 =?iso-8859-1?Q?9zRxB7TiEUkUlKe3KWoOrhuOtfqgsZk3v9aEGjKJeqkd3tsRC06gRK8wWo?=
 =?iso-8859-1?Q?kTt/B4ed7KIZ7k6cjXyn+4cVkQXW9G2zkPEo28CN2YbHFIJgPYKML44+Wc?=
 =?iso-8859-1?Q?orr41Ngs2jDStOJov/yi38Re0Rxp5EJwEor7nHCW+WCkS7EYmSmRjskAUF?=
 =?iso-8859-1?Q?fQ08YinMXEgKn8+fQBDADaSCpTc8/ininBh62MzbTZzoYWEwLpav028sY3?=
 =?iso-8859-1?Q?sp/mUfqMSEne/eT31w7/u5uB9r6yVo39u+i7Il6IC77oxZHFUCGBILyxwO?=
 =?iso-8859-1?Q?WKU0CCVTbpbD/BeIlBmwp87ZwFCXpMB8rymnTSB+0vAkQvD6EC1Njf5byH?=
 =?iso-8859-1?Q?EaIOjGhBZOp/6vmPBo9gdkEy7qSxrdm7qP6bd3xLU6IL5Rc6zv2XgrH6E7?=
 =?iso-8859-1?Q?OZAQXcCVGFTdlLTNH67kRMw0Kcp045WL7nvparUa58O+M4CSiNMY9Z4QIK?=
 =?iso-8859-1?Q?hRylTpGgig8FxI+jejaBsVI383uxjlj61/OKTplLqCGWnZq134mDMRpE5a?=
 =?iso-8859-1?Q?nIiwf0wYI30ltgKz0sA8iFKaYctwy4Pec1AOpXTsktjk4K+RqDbKG3Uqf/?=
 =?iso-8859-1?Q?4SLSt9cnPf+j2zewmLZE45WhFqT+kuJfmPOMq5gOQoIM5BcvIpPSzVH2j1?=
 =?iso-8859-1?Q?2V3ho0B7MWAmqSHGCBjX8eJMltuYpWCArSpyw4GuWETFJfSQ4Sa8x46b/z?=
 =?iso-8859-1?Q?ToXyQGhkOFNObxkIntTOHmZHLSId3r5wRkmpA8X4tkHe0FjidLK1s5qNyG?=
 =?iso-8859-1?Q?2o9kclfhbpVxg4lhzys=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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7243e37c-763d-40b4-8e2d-08dde4a9a22f
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Aug 2025 14:05:37.0742
 (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: fgXlygd1gKHUj8THEF55vX+IkSx2ERa5Z4mtRaZW/t5R50uYX+H4NpfJnWucAXjMTobYY41G8JDY+IuvyGZnW/VXMcyE8smiq7kexDMBTjY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR03MB7887

Introduced two new helper functions for vGIC: vgic_is_valid_line and
vgic_is_spi. The functions are similar to the newly introduced
gic_is_valid_line and gic_is_spi, but they verify whether a vIRQ
is available for a specific domain, while GIC-specific functions
validate INTIDs for the real GIC hardware. For example, the GIC may
support all 992 SPI lines, but the domain may use only some part of them
(e.g., 640), depending on the highest IRQ number defined in the domain
configuration. Therefore, for vGIC-related code and checks, the
appropriate functions should be used. Also, updated the appropriate
checks to use these new helper functions.

The purpose of introducing new helper functions for vGIC is essentially
the same as for GIC: to avoid potential confusion with GIC-related
checks and to consolidate similar code into separate functions, which
can be more easily extended by additional conditions, e.g., when
implementing extended SPI interrupts.

Only the validation change in vgic_inject_irq may affect existing
functionality, as it currently checks whether the vIRQ is less than or
equal to vgic_num_irqs. Since IRQ indexes start from 0 (where 32 is the
first SPI), the check should behave consistently with similar logic in
other places and should check if the vIRQ number is less than
vgic_num_irqs. The remaining changes, which replace open-coded checks
with the use of these new helper functions, do not introduce any
functional changes, as the helper functions follow the current vIRQ
index verification logic.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>

---
Changes in V2:
- introduced this patch

Changes in V3:
- renamed vgic_is_valid_irq to vgic_is_valid_line and vgic_is_shared_irq
  to vgic_is_spi
- added vgic_is_valid_line implementation for new-vgic, because
  vgic_is_valid_line is called from generic code. It is necessary to fix
  the build for new-vgic.
- updated commit message
---
 xen/arch/arm/gic.c              |  3 +--
 xen/arch/arm/include/asm/vgic.h |  7 +++++++
 xen/arch/arm/irq.c              |  4 ++--
 xen/arch/arm/vgic.c             | 10 ++++++++--
 xen/arch/arm/vgic/vgic.c        |  5 +++++
 5 files changed, 23 insertions(+), 6 deletions(-)

diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
index 9220eef6ea..b88237ccda 100644
--- a/xen/arch/arm/gic.c
+++ b/xen/arch/arm/gic.c
@@ -133,8 +133,7 @@ int gic_route_irq_to_guest(struct domain *d, unsigned i=
nt virq,
=20
     ASSERT(spin_is_locked(&desc->lock));
     /* Caller has already checked that the IRQ is an SPI */
-    ASSERT(virq >=3D 32);
-    ASSERT(virq < vgic_num_irqs(d));
+    ASSERT(vgic_is_spi(d, virq));
     ASSERT(!is_lpi(virq));
=20
     ret =3D vgic_connect_hw_irq(d, NULL, virq, desc, true);
diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/vgi=
c.h
index 35c0c6a8b0..9f437e9838 100644
--- a/xen/arch/arm/include/asm/vgic.h
+++ b/xen/arch/arm/include/asm/vgic.h
@@ -335,6 +335,13 @@ extern void vgic_check_inflight_irqs_pending(struct vc=
pu *v,
 /* Default number of vGIC SPIs. 32 are substracted to cover local IRQs. */
 #define VGIC_DEF_NR_SPIS (min(gic_number_lines(), VGIC_MAX_IRQS) - 32)
=20
+extern bool vgic_is_valid_line(struct domain *d, unsigned int virq);
+
+static inline bool vgic_is_spi(struct domain *d, unsigned int virq)
+{
+    return (virq >=3D NR_LOCAL_IRQS && vgic_is_valid_line(d, virq));
+}
+
 /*
  * Allocate a guest VIRQ
  *  - spi =3D=3D 0 =3D> allocate a PPI. It will be the same on every vCPU
diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
index 7dd5a2a453..b8eccfc924 100644
--- a/xen/arch/arm/irq.c
+++ b/xen/arch/arm/irq.c
@@ -442,7 +442,7 @@ int route_irq_to_guest(struct domain *d, unsigned int v=
irq,
     unsigned long flags;
     int retval =3D 0;
=20
-    if ( virq >=3D vgic_num_irqs(d) )
+    if ( !vgic_is_valid_line(d, virq) )
     {
         printk(XENLOG_G_ERR
                "the vIRQ number %u is too high for domain %u (max =3D %u)\=
n",
@@ -560,7 +560,7 @@ int release_guest_irq(struct domain *d, unsigned int vi=
rq)
     int ret;
=20
     /* Only SPIs are supported */
-    if ( virq < NR_LOCAL_IRQS || virq >=3D vgic_num_irqs(d) )
+    if ( !vgic_is_spi(d, virq) )
         return -EINVAL;
=20
     desc =3D vgic_get_hw_irq_desc(d, NULL, virq);
diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
index c563ba93af..2bbf4d99aa 100644
--- a/xen/arch/arm/vgic.c
+++ b/xen/arch/arm/vgic.c
@@ -24,6 +24,12 @@
 #include <asm/gic.h>
 #include <asm/vgic.h>
=20
+
+bool vgic_is_valid_line(struct domain *d, unsigned int virq)
+{
+    return virq < vgic_num_irqs(d);
+}
+
 static inline struct vgic_irq_rank *vgic_get_rank(struct vcpu *v,
                                                   unsigned int rank)
 {
@@ -582,7 +588,7 @@ void vgic_inject_irq(struct domain *d, struct vcpu *v, =
unsigned int virq,
     if ( !v )
     {
         /* The IRQ needs to be an SPI if no vCPU is specified. */
-        ASSERT(virq >=3D 32 && virq <=3D vgic_num_irqs(d));
+        ASSERT(vgic_is_spi(d, virq));
=20
         v =3D vgic_get_target_vcpu(d->vcpu[0], virq);
     };
@@ -659,7 +665,7 @@ bool vgic_emulate(struct cpu_user_regs *regs, union hsr=
 hsr)
=20
 bool vgic_reserve_virq(struct domain *d, unsigned int virq)
 {
-    if ( virq >=3D vgic_num_irqs(d) )
+    if ( !vgic_is_valid_line(d, virq) )
         return false;
=20
     return !test_and_set_bit(virq, d->arch.vgic.allocated_irqs);
diff --git a/xen/arch/arm/vgic/vgic.c b/xen/arch/arm/vgic/vgic.c
index 6cabd0496d..b2c0e1873a 100644
--- a/xen/arch/arm/vgic/vgic.c
+++ b/xen/arch/arm/vgic/vgic.c
@@ -718,6 +718,11 @@ bool vgic_reserve_virq(struct domain *d, unsigned int =
virq)
     return !test_and_set_bit(virq, d->arch.vgic.allocated_irqs);
 }
=20
+bool vgic_is_valid_line(struct domain *d, unsigned int virq)
+{
+    return virq < vgic_num_irqs(d);
+}
+
 int vgic_allocate_virq(struct domain *d, bool spi)
 {
     int first, end;
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 14:05:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 14:05:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094530.1449815 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uquIy-000738-4c; Tue, 26 Aug 2025 14:05:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094530.1449815; Tue, 26 Aug 2025 14:05: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 1uquIy-000731-1b; Tue, 26 Aug 2025 14:05:44 +0000
Received: by outflank-mailman (input) for mailman id 1094530;
 Tue, 26 Aug 2025 14:05:42 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kqrf=3G=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1uquIw-00072q-Fi
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 14:05:42 +0000
Received: from GVXPR05CU001.outbound.protection.outlook.com
 (mail-swedencentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c202::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bf95f925-8285-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 16:05:40 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by PAWPR03MB8962.eurprd03.prod.outlook.com (2603:10a6:102:333::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.19; Tue, 26 Aug
 2025 14:05:36 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Tue, 26 Aug 2025
 14: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>
X-Inumbo-ID: bf95f925-8285-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NFay775g8UONTsrX3BcBKrmwOINv3ibDoC0MaqZcYldKhkNadVhffVs7uST9vkc/8h7CyMimhtmJgRZpM0FcuH3GFl7RC33VcriSE7s4lAeL2DEzqyK+t5ylGqI1lOVY7qgq0fsHbf6IURar42tMN4CLysTf5c168BAg1PQ9p8xyuKxTPS1smLjYZjGyoNsp5TOSnI9VtOP+vBkqaqGqOv58SVfs15HUFa1RLoEM12jzcu3WPfXTE2EjdaGeAVFrem5Q1OCF/NVGvUyhv6vGQrVw45940oDQ/aPfKt7vuBDbpX9Bk9btzv3TntR+LTmmO8Nqn/WoLCgsbQe9M5MvLA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=54XHblnnUfWfZuXJ6i9VxNDEfX41aUbnPQ7WRY2YP5o=;
 b=MjvCWQvuace5uzR6dOLkOftb+pDdd3Z6TEJM8GxBVFnp5GqPUYKIo8ZfjNsF3jZlzoeRcn5fSROqYXoeaUO3wjGSgOIimGDuOxVoaEJ0pidcMigqHDOcuJemVDKN44WMsOFj1ZoO8qDUKcOWIZUFOpdHcSJByRqy1U618NSOpVjkjnjSC9KNku0+FG6loCqxAxKngLiqEVDqKnlDSbyh6UgrLIKuGnjmQpA5fhXon/lxoKLEbuut7Ev1YDTyv8eB7L5oJeuw8rspvZP0aIU56mw9sJZx78XC8Dzu7Z3LKTXI45mNSeNZmzihHHaR4dAowkcnBgKRwYNHNnBO/35MdQ==
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=54XHblnnUfWfZuXJ6i9VxNDEfX41aUbnPQ7WRY2YP5o=;
 b=ioVwIXMVQuVSEgucjM9+nAcIcxKputmgUK51f3y1l0TNnZqp2bMGtfsGBxQXEr/LcQyx/zCiUqSczyqoncR9IHZbwtin4nAHUlOYJ1DKkslVZrKPnBav5u7P/dSffoidnT6h0jyaBjgFB9UGjMsVfXzxdZztQjn2aY0nRASFB2juLS+inLijpCJeZheGVbCYyixhXhWFtrtiILmqdSOJ1GijIdKRst/sfQxHMTS/lc1EjSeIWW6FYmudGdHq24BgbClHhJyE+VGLhkZXxyAOCbUYat4pIQ2yUnwC6CwAWT8u4Uy5Sfs4yjfc5SMmluutpZ+LR3NUx6vz71WxB6RtiA==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "olekstysh@gmail.com" <olekstysh@gmail.com>, Leonid Komarianskyi
	<Leonid_Komarianskyi@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>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v3 01/11] xen/arm: gicv3: refactor obtaining GIC addresses for
 common operations
Thread-Topic: [PATCH v3 01/11] xen/arm: gicv3: refactor obtaining GIC
 addresses for common operations
Thread-Index: AQHcFpJ+etlgg3EWd0CB0IzwgFrWeQ==
Date: Tue, 26 Aug 2025 14:05:36 +0000
Message-ID:
 <6ba26f0db6575795f8dfcb80862f5537c3dc7a8c.1756216942.git.leonid_komarianskyi@epam.com>
References: <cover.1756216942.git.leonid_komarianskyi@epam.com>
In-Reply-To: <cover.1756216942.git.leonid_komarianskyi@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: GV2PR03MB8678:EE_|PAWPR03MB8962:EE_
x-ms-office365-filtering-correlation-id: e8feefe8-74c9-4b3f-8211-08dde4a9a192
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?kBWR8W+tMEbapIVgn5N0b2OIBhrngeb9Z1Ku0ZWAfJXa0AU235XfM+uFqj?=
 =?iso-8859-1?Q?8SzUVYAb5Vs7C6ui71nqcRnC1W7dxCuuXrPIescVxHjnX315WhOqZGdqYS?=
 =?iso-8859-1?Q?noX4DNFyfGcCfHUwVBJWY0VyH1dYVPee0sERRGjrwTMQAM7dVkht+v9A+7?=
 =?iso-8859-1?Q?xrncTKhEHYDmnkJdW+Dyo5Q5qnryONml++jOA0NGCqQh9OtJdP55oXMHFI?=
 =?iso-8859-1?Q?zCchgN2XE+ne3ln/e5pNiy237ib7izN0p4rOogjMUGC7Xn8tJUio7GUY8O?=
 =?iso-8859-1?Q?FTaIZr49jgWe6OcpvDiV0RbfbYVAM9xxUZnsbC0GFGUOqkl3DkuGEoPP7M?=
 =?iso-8859-1?Q?w7RMRyC/4zpyECddipw6gxp5cJXLz64DzDi2RZvCQw40LOXZiVl0Jk68if?=
 =?iso-8859-1?Q?qSR0gETcWREMv+8EwOSiKihRZCvPz67anEJPNfpYORVbHi59bfhwojepX/?=
 =?iso-8859-1?Q?A6taC4Ni+Ryfam0oY8yudjwN8sHcpxx5mjJpD+ojBIpevCInBC4juRM4Da?=
 =?iso-8859-1?Q?asG2dFLsjik8lo/EGfs92t8EsB8SUq/dvtZ/8Oy+waHaM7Ad3rWZoEaR2M?=
 =?iso-8859-1?Q?7CqdH/SBTIdgUmFYbX4F9Df5ywd7PZ2rTTE74ZYKlwMyEGf7yIkbpRvOne?=
 =?iso-8859-1?Q?jtV3+NrlvF8NWFSs+DRnDNWIt6qNsWfrpihhxIdJj0Rmw83uXlveauJigt?=
 =?iso-8859-1?Q?fP9lzvp9cEqqwG6ceRi9mvfGiv0Tr/hz+GYzlwxg649nWtlh337qgJVXNP?=
 =?iso-8859-1?Q?peg6wokNlwqHomQi/mZhfuyIHVRGwHJuY/w5hoR5dxvKiPki2aqCfiB/M5?=
 =?iso-8859-1?Q?jHhCFzk6yKW7oSxC4YEEMUIi89spsVz1lG10y7oHDuQA3xPKB+5P6WH2tV?=
 =?iso-8859-1?Q?AlM+FOMLBopaAhMyh08u+/eAZl4+rupRGgI0j/j9piLo1H6PrN41UH7Ojr?=
 =?iso-8859-1?Q?Gv9FziX+ZUOlBC76mjaBVoL+xZ5L+oDLBhJ7G9k5oc9gYuhroquWYmB8oI?=
 =?iso-8859-1?Q?4XcCNqgKY2JfZpnNDu/H8CJs7A3ki1a4SPeU/wYL133MM1gTnsvRBPIqPh?=
 =?iso-8859-1?Q?/cWeDkTceKbHuyZ7X3v2Zy1AVfCdNB9z8tveLDxVOMmin0Q/LVBEq4F7oB?=
 =?iso-8859-1?Q?se1rXI4NJv+y4gGUMbYL7YjUpB//s3Fkp2COH9PVOkmADw4o2QI8njaqKg?=
 =?iso-8859-1?Q?86O+9ne96Y01nvWm27xx9aKq4GrqoO0b10ZHPE80OKAhNq1cbdvqvagJxm?=
 =?iso-8859-1?Q?T91Uj3ttESkow2R9dkCQFaVbRXC6zBoqB5IPhSvcVTPYxsD9fqmMjBmgJz?=
 =?iso-8859-1?Q?zQoG4Lo6fHGfBRvKXWzKehq5/unJ/eh/qH6DRRJ6E+CJr61uRsGrQmaaTe?=
 =?iso-8859-1?Q?2/OTRff0rbk3LU81TqgE8Y4g3K1VZ3asdmW+J/y9SV3OAeLcyi0OhpA/CR?=
 =?iso-8859-1?Q?TnQ0jpPbMQbhqxLTAVzuFEmzwXSajwMwB4rzjW9/RBD+2ejVYKJOHnTooS?=
 =?iso-8859-1?Q?ieUF6gH9ytq09SusRt1VbVDVXLx2LDU7QjFjYFw07JmA=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?ynS1CRKZYbxf/kRMQRfguMrD8PhtUY7tW3W5yj5mlRm5Hx1zQpqYpR78CZ?=
 =?iso-8859-1?Q?01QaDnC+O4jSVdk4YpRkfUBhBxLfuM3ZtgwMRJN+hhHt8nrH8XgLJoOX0+?=
 =?iso-8859-1?Q?Yxuqv9mu+vW9rkDhS6z0zF4bgQiPJLycOy3xLAyF+XjIXE4ORUEPa+IORx?=
 =?iso-8859-1?Q?NQVGMib6JdosckqapXlmHhnHxT2Jy7tJSC67InKzOz/xBD2rHJ5f8fvyfs?=
 =?iso-8859-1?Q?+Io8ro1h9CMePXMgzbkBZLPLhULtEBJM1KYGnS363DcmcasLFPdaw0kWZs?=
 =?iso-8859-1?Q?O7wCf9VixuvdijLo/IThy5qOLda+VsuU0j8XWHU0WKMA47eZ0PhvBMPSM5?=
 =?iso-8859-1?Q?VpyuFsR57dIPX6zgk/Y74X38lfTIGcPxIa31RY0C0toeWLKnnDOnxchDLC?=
 =?iso-8859-1?Q?gXrubcc3wbs93WmInhiJnslZJK4c4EdCk+8uzydKiWonC54aGAcX34lRIf?=
 =?iso-8859-1?Q?zvUO3K/RS5s3Xbb4Erg+0pM0bOqArdZc+ZrurICdZSnX2kAwo0d5pKmldr?=
 =?iso-8859-1?Q?3T27EdnqD17RJBT/54ACmLPvoY9hj0b6VxROg0ceOUNyB8RSFyUXjZsQdI?=
 =?iso-8859-1?Q?hFlnkO8NGc1eeagI5Yi0sMfji6E3y9ZzJGcSUSQjoQCjlHld2huRPsf/iS?=
 =?iso-8859-1?Q?QMspGQ55BAy7dlMZuPdeSKOFC28pedOdIGmJKeBWo+kEUiSEXoK8miTvac?=
 =?iso-8859-1?Q?kkBLPwo/iXpo6dKpnJ2TigwCushgNzRR0+JMmREkvOkLEuzmu3OhzbBK93?=
 =?iso-8859-1?Q?lJdf+QKZyjnEmYbyFznn07JhGsLRx/20UzoX2Oq8oG+YJ5BjaSC9VhjyP1?=
 =?iso-8859-1?Q?HjuEFFzPLpXyH/xNjcSrNT9WuWAZmelCDxm7AUNCaUvSUNx+1s0eCK96YS?=
 =?iso-8859-1?Q?HPTQLidMqRurWtgtfqRI2QY/xLat+qaoOP2k6MvUib8qISAVpp4ahwvVyo?=
 =?iso-8859-1?Q?6zPW0JyIeWL34KaNqjdjTT4jJp013R/KUEMAjrlAn9zncgm/TulWUVUAZu?=
 =?iso-8859-1?Q?h12Lpt8IvmKPBNl3MH+nsSVfLwlo3x7uwPLswdbs5XAz5yXIJsywI6s0tT?=
 =?iso-8859-1?Q?D1osqYeM/wueKqLPX4Vlcx6aw43BOa72nCxf/tqGWI8JmZY94KaK68+rjD?=
 =?iso-8859-1?Q?pGUSECfayIghwygLY8cqhJGWitkrNyyA/zZg9VCzsKE1rNhoQP0njXyLgJ?=
 =?iso-8859-1?Q?wAB4MOOgbyK1KcexBqc1xnsTx+Poj2TxsH+rSuaGJ7rnJPKQ8GuRzexYrz?=
 =?iso-8859-1?Q?qoeX7Oy1bwQwmTMPs+2SDl93jD6KBAWukajWIW0k5QMFt3UNSao5WvOwju?=
 =?iso-8859-1?Q?PhMDjPx/Cvz8rPkAO4t9sA7srFpcOvCr6/29ZoUHJU9Pbg5gAO1SayBa6D?=
 =?iso-8859-1?Q?c0ma7V9RcUN7LieVoy9tHarY3hZpvmKUGTXWxUvVfvusHyEHLxH3BQOZxf?=
 =?iso-8859-1?Q?7Hw9samnb2Zhe71Jq9iViBcIKNV2GBoDAgl7Rq6xDJhHNQIWfyZB4Dv2XZ?=
 =?iso-8859-1?Q?WHOX8d5Z0Rxe+Nk7cF+b6ymZzpakyxuO1ghDYHgHsfNSZ1fT8vF5/lKNP5?=
 =?iso-8859-1?Q?6rooQcShYdWb4BUnfVUKSMb/s2h+PcP6iFLvWOdoTT1iq40lvUAUoQOJTt?=
 =?iso-8859-1?Q?RjxbiuQcMjFIVSeKxyEBy4uZUg1uCeiVYlSgfixbWxKB7h0bfd4mIVWMLN?=
 =?iso-8859-1?Q?/8KC8nZGFhOZ4WXcPBY=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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e8feefe8-74c9-4b3f-8211-08dde4a9a192
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Aug 2025 14:05:36.4318
 (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: HEfjJuZLvHaDAqBLuXhRhHX3M2F3p5kNez/R0gBKkftIDfbaeDAM4QBZmmIHXvsLVeQe75tb+sfmEcsYqKfj2Z+Fa0R+RoMsOgbewLoKVIU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR03MB8962

Currently, many common functions perform the same operations to calculate
GIC register addresses. This patch consolidates the similar code into
a separate helper function to improve maintainability and reduce duplicatio=
n.
This refactoring also simplifies the implementation of eSPI support in futu=
re
changes.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

---
Changes in V2:
- no changes

Changes in V3:
- changed panic() in get_addr_by_offset() to printing warning and
  ASSERT_UNREACHABLE()
- added verification of return pointer from get_addr_by_offset() in the
  callers
- moved invocation of get_addr_by_offset() from spinlock guards, since
  it is not necessarry
- added RB from Volodymyr Babchuk
---
 xen/arch/arm/gic-v3.c          | 114 +++++++++++++++++++++++----------
 xen/arch/arm/include/asm/irq.h |   1 +
 2 files changed, 81 insertions(+), 34 deletions(-)

diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
index cd3e1acf79..a959fefebe 100644
--- a/xen/arch/arm/gic-v3.c
+++ b/xen/arch/arm/gic-v3.c
@@ -445,17 +445,67 @@ static void gicv3_dump_state(const struct vcpu *v)
     }
 }
=20
+static void __iomem *get_addr_by_offset(struct irq_desc *irqd, u32 offset)
+{
+    switch ( irqd->irq )
+    {
+    case 0 ... (NR_GIC_LOCAL_IRQS - 1):
+        switch ( offset )
+        {
+        case GICD_ISENABLER:
+        case GICD_ICENABLER:
+        case GICD_ISPENDR:
+        case GICD_ICPENDR:
+        case GICD_ISACTIVER:
+        case GICD_ICACTIVER:
+            return (GICD_RDIST_SGI_BASE + offset);
+        case GICD_ICFGR:
+            return (GICD_RDIST_SGI_BASE + GICR_ICFGR1);
+        case GICD_IPRIORITYR:
+            return (GICD_RDIST_SGI_BASE + GICR_IPRIORITYR0 + irqd->irq);
+        default:
+            break;
+        }
+    case NR_GIC_LOCAL_IRQS ... SPI_MAX_INTID:
+        switch ( offset )
+        {
+        case GICD_ISENABLER:
+        case GICD_ICENABLER:
+        case GICD_ISPENDR:
+        case GICD_ICPENDR:
+        case GICD_ISACTIVER:
+        case GICD_ICACTIVER:
+            return (GICD + offset + (irqd->irq / 32) * 4);
+        case GICD_ICFGR:
+            return (GICD + GICD_ICFGR + (irqd->irq / 16) * 4);
+        case GICD_IROUTER:
+            return (GICD + GICD_IROUTER + irqd->irq * 8);
+        case GICD_IPRIORITYR:
+            return (GICD + GICD_IPRIORITYR + irqd->irq);
+        default:
+            break;
+        }
+    default:
+        break;
+    }
+
+    /* Something went wrong, we shouldn't be able to reach here */
+    printk(XENLOG_WARNING "GICv3: WARNING: Invalid offset 0x%x for IRQ#%d"=
,
+           offset, irqd->irq);
+    ASSERT_UNREACHABLE();
+
+    return NULL;
+}
+
 static void gicv3_poke_irq(struct irq_desc *irqd, u32 offset, bool wait_fo=
r_rwp)
 {
     u32 mask =3D 1U << (irqd->irq % 32);
-    void __iomem *base;
+    void __iomem *addr =3D get_addr_by_offset(irqd, offset);
=20
-    if ( irqd->irq < NR_GIC_LOCAL_IRQS )
-        base =3D GICD_RDIST_SGI_BASE;
-    else
-        base =3D GICD;
+    if ( addr =3D=3D NULL )
+        return;
=20
-    writel_relaxed(mask, base + offset + (irqd->irq / 32) * 4);
+    writel_relaxed(mask, addr);
=20
     if ( wait_for_rwp )
         gicv3_wait_for_rwp(irqd->irq);
@@ -463,15 +513,12 @@ static void gicv3_poke_irq(struct irq_desc *irqd, u32=
 offset, bool wait_for_rwp)
=20
 static bool gicv3_peek_irq(struct irq_desc *irqd, u32 offset)
 {
-    void __iomem *base;
-    unsigned int irq =3D irqd->irq;
+    void __iomem *addr =3D get_addr_by_offset(irqd, offset);
=20
-    if ( irq >=3D NR_GIC_LOCAL_IRQS)
-        base =3D GICD + (irq / 32) * 4;
-    else
-        base =3D GICD_RDIST_SGI_BASE;
+    if ( addr =3D=3D NULL )
+        return false;
=20
-    return !!(readl(base + offset) & (1U << (irq % 32)));
+    return !!(readl(addr) & (1U << (irqd->irq % 32)));
 }
=20
 static void gicv3_unmask_irq(struct irq_desc *irqd)
@@ -558,30 +605,28 @@ static inline uint64_t gicv3_mpidr_to_affinity(int cp=
u)
 static void gicv3_set_irq_type(struct irq_desc *desc, unsigned int type)
 {
     uint32_t cfg, actual, edgebit;
-    void __iomem *base;
-    unsigned int irq =3D desc->irq;
+    void __iomem *addr;
=20
     /* SGI's are always edge-triggered not need to call GICD_ICFGR0 */
-    ASSERT(irq >=3D NR_GIC_SGI);
+    ASSERT(desc->irq >=3D NR_GIC_SGI);
=20
-    spin_lock(&gicv3.lock);
+    addr =3D get_addr_by_offset(desc, GICD_ICFGR);
+    if ( addr =3D=3D NULL )
+        return;
=20
-    if ( irq >=3D NR_GIC_LOCAL_IRQS)
-        base =3D GICD + GICD_ICFGR + (irq / 16) * 4;
-    else
-        base =3D GICD_RDIST_SGI_BASE + GICR_ICFGR1;
+    spin_lock(&gicv3.lock);
=20
-    cfg =3D readl_relaxed(base);
+    cfg =3D readl_relaxed(addr);
=20
-    edgebit =3D 2u << (2 * (irq % 16));
+    edgebit =3D 2u << (2 * (desc->irq % 16));
     if ( type & IRQ_TYPE_LEVEL_MASK )
         cfg &=3D ~edgebit;
     else if ( type & IRQ_TYPE_EDGE_BOTH )
         cfg |=3D edgebit;
=20
-    writel_relaxed(cfg, base);
+    writel_relaxed(cfg, addr);
=20
-    actual =3D readl_relaxed(base);
+    actual =3D readl_relaxed(addr);
     if ( ( cfg & edgebit ) ^ ( actual & edgebit ) )
     {
         printk(XENLOG_WARNING "GICv3: WARNING: "
@@ -600,16 +645,13 @@ static void gicv3_set_irq_type(struct irq_desc *desc,=
 unsigned int type)
 static void gicv3_set_irq_priority(struct irq_desc *desc,
                                    unsigned int priority)
 {
-    unsigned int irq =3D desc->irq;
+    void __iomem *addr =3D get_addr_by_offset(desc, GICD_IPRIORITYR);
=20
-    spin_lock(&gicv3.lock);
-
-    /* Set priority */
-    if ( irq < NR_GIC_LOCAL_IRQS )
-        writeb_relaxed(priority, GICD_RDIST_SGI_BASE + GICR_IPRIORITYR0 + =
irq);
-    else
-        writeb_relaxed(priority, GICD + GICD_IPRIORITYR + irq);
+    if ( addr =3D=3D NULL )
+        return;
=20
+    spin_lock(&gicv3.lock);
+    writeb_relaxed(priority, addr);
     spin_unlock(&gicv3.lock);
 }
=20
@@ -1273,6 +1315,10 @@ static void gicv3_irq_set_affinity(struct irq_desc *=
desc, const cpumask_t *mask)
 {
     unsigned int cpu;
     uint64_t affinity;
+    void __iomem *addr =3D get_addr_by_offset(desc, GICD_IROUTER);
+
+    if ( addr =3D=3D NULL )
+        return;
=20
     ASSERT(!cpumask_empty(mask));
=20
@@ -1284,7 +1330,7 @@ static void gicv3_irq_set_affinity(struct irq_desc *d=
esc, const cpumask_t *mask)
     affinity &=3D ~GICD_IROUTER_SPI_MODE_ANY;
=20
     if ( desc->irq >=3D NR_GIC_LOCAL_IRQS )
-        writeq_relaxed_non_atomic(affinity, (GICD + GICD_IROUTER + desc->i=
rq * 8));
+        writeq_relaxed_non_atomic(affinity, addr);
=20
     spin_unlock(&gicv3.lock);
 }
diff --git a/xen/arch/arm/include/asm/irq.h b/xen/arch/arm/include/asm/irq.=
h
index fce7e42a33..5bc6475eb4 100644
--- a/xen/arch/arm/include/asm/irq.h
+++ b/xen/arch/arm/include/asm/irq.h
@@ -29,6 +29,7 @@ struct arch_irq_desc {
  */
 #define NR_IRQS		1024
=20
+#define SPI_MAX_INTID   1019
 #define LPI_OFFSET      8192
=20
 /* LPIs are always numbered starting at 8192, so 0 is a good invalid case.=
 */
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 14:05:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 14:05:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094537.1449876 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uquJ4-0008N8-Gp; Tue, 26 Aug 2025 14:05:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094537.1449876; Tue, 26 Aug 2025 14:05: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 1uquJ4-0008Li-7h; Tue, 26 Aug 2025 14:05:50 +0000
Received: by outflank-mailman (input) for mailman id 1094537;
 Tue, 26 Aug 2025 14:05:47 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kqrf=3G=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1uquJ1-00072q-9y
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 14:05:47 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c2ffb805-8285-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 16:05:46 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by PAXPR03MB7887.eurprd03.prod.outlook.com (2603:10a6:102:216::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Tue, 26 Aug
 2025 14:05:39 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Tue, 26 Aug 2025
 14:05: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>
X-Inumbo-ID: c2ffb805-8285-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PaHgdlPguRU9C87DUCb6s/8F8pdRmUNM/8Pubolo5sqW4MDPmVhKn8xZfe3bj3dBl8Ez0BNzbtyyrNlkA75g+mnH3KFi5d7jpPNBK0qBaJoJDGd+VIU5HlqdKMcf5UpiJZjFbIJ4GbEUQW/L+2nJKCmOYg8lDT77MrXiuDpgNhEGoHFa/D/5gWFIKo1IEIbcoNkM2oiwDZSo3h6cUBKkoSS3yQ/oFXPdaz+lg/l9VPPXzvRrh24nm1IqQg6X2J7gDRYKKThuUst9iZSkw1Vd4sRcykCMIaEGH/58eX5KIOMMRr8JyK+q8na7iiNx5WCqs7I22LXO4JN4QBovTpEPkQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=RX7nLebZ8PQGUT4u/FJa28mU8IREh10GNv8tOdVik58=;
 b=eT2WvuMJ8xxbdNHE9eYojf9gR52E07xxqxatc3FN6y+kCZJ7pHOsxQa7U86yTHWhwASefTHTMQBbMOADoJ9A+klCHkBl9zV6J4JAjpZn9BZ09AhYrXQKUPxy7o1XwBjFgGXr9l/nQRWG27qlghL0NvZiG0hwiFeAxRfWHK3ZMTnP2AiPAYbQ2iAuRXELxu9hxVbKuEMcASZZ3yX0lhmX/VPl/lnucxBiTpVbg2+HAlF3CYfh3a/6aEZP5oB9+leaISi1ZgyZu4vDwPh+tFqQN4ktUDi8DbNzWbKrDANoNV6zKyZqntFJmjj3TAUDRf6KkJQ+HCHI3WSHGVivRvs/VQ==
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=RX7nLebZ8PQGUT4u/FJa28mU8IREh10GNv8tOdVik58=;
 b=j3zotHn+F+NxmC5/gHIKVG6yg1dis3uaNZIzJytHvKSFBkr41O3g783m1WvWR0+47MrGRr2xMgHSejxwVbT5JahAeLsMoBc62xTI+zkmVSExpb+TISu7MihCiei2SprGYZu/+cl9dCpWJz+eA0XY5uOaZx5cjiMFAkWVz5y5uNsl0ixSDF79rkvJ9wwhRXc6qhLkepq49zgX5hcpU+dIwvE4MxNi3J0xpnwkCWX9gJQUwf0d9nT9Jaf8AApIsMrkqRd3U02OxrEAvTCnhuGbDeLfTRL80mRRsPG6md5FYEAg90C8IVbgbAX+aSedOGVgYzukuoNLN7MC1s5GCZxO9w==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "olekstysh@gmail.com" <olekstysh@gmail.com>, Leonid Komarianskyi
	<Leonid_Komarianskyi@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 v3 07/11] xen/arm: gicv3: modify ICH_LR_PHYSICAL_MASK to allow
 eSPI processing
Thread-Topic: [PATCH v3 07/11] xen/arm: gicv3: modify ICH_LR_PHYSICAL_MASK to
 allow eSPI processing
Thread-Index: AQHcFpKAYFxN4fU1Wk6sdm7zcMlbgA==
Date: Tue, 26 Aug 2025 14:05:38 +0000
Message-ID:
 <20a8af6879ef06af92d3cd1e0519c406792ca088.1756216943.git.leonid_komarianskyi@epam.com>
References: <cover.1756216942.git.leonid_komarianskyi@epam.com>
In-Reply-To: <cover.1756216942.git.leonid_komarianskyi@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: GV2PR03MB8678:EE_|PAXPR03MB7887:EE_
x-ms-office365-filtering-correlation-id: c54770ce-43c7-4c5d-1055-08dde4a9a2f6
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?lOq8zA6uCyhiLuua+tUOwXUgMvB6KavkQlT3dY7kgIrFxUyZXY9sAgcoem?=
 =?iso-8859-1?Q?wPjumgQSMZTZJFlw8efOPXv8WeS5qeiMYY7ezWkNRtNbSqdUjsj0FXvYl+?=
 =?iso-8859-1?Q?HbvxiMn3I1CanVXzxYhJuzmduZiuj3VaHaYG0b8bl7Hh+Vr4bcXb4wUKFY?=
 =?iso-8859-1?Q?63LoY9b4gvNHEIK4G8fy9gdHNbpYaQF8W8YeDbAvxcbnZNUqN9Kdl1T7Sc?=
 =?iso-8859-1?Q?9vCLYjKU/4jOSfArYea6UIYMKBTldthODZkDbvMNNMfTnuHXJ9j118AiZB?=
 =?iso-8859-1?Q?hjmyAqIfylz3TXyrf/KvNL8XvSbHiPZbEDvJKvSPRnp9jTvaJ+NfgfF25h?=
 =?iso-8859-1?Q?Vg6LdGy5Ax1UgKSlfzAHOh6iAr+4Qcj1NdrVPu9/qk8V1xzAJekNMTMzd/?=
 =?iso-8859-1?Q?0TI4Fc/YpOuGBxEcllVHrm4tHRuPKwioQ/YwXkp/P0Tkrh6EWUSCgtXA4H?=
 =?iso-8859-1?Q?J7B7CTCNW3LyHXhCDckqu5PqzhVDdrLSiuuULIz7uEcLYwhy1penqjs7SX?=
 =?iso-8859-1?Q?rDybW9IGJvFJyILXJ7J2IcRyM6cTeGzg0zeoI8m8XSogqTfszzdXzUafce?=
 =?iso-8859-1?Q?bbeyvxxtr7P+UsrGpPP70VpWVJBg8Ym1DpnaIFzMTe/Sd+DBVT3tmjgwQ0?=
 =?iso-8859-1?Q?89Sox72xYnYQWaBUNxfs+ttPhFZ5KBlBbiuiQgdVh7glIhyQVKHzI2fspC?=
 =?iso-8859-1?Q?5BVU9D2b7LtRYfN2z7cCktKPq98OwgBqGfcj3avXL3MIgCpJdOgk7C8QXJ?=
 =?iso-8859-1?Q?si4Q7d8L72gPfg9xjekNaXGYg6abtAfF738Gjf0T41c22dpp3v1GKq/AA5?=
 =?iso-8859-1?Q?Tf39/0qrAPBAHbH9lgKziZp9ZHWMEG5l6FCPtMUxqki5jbwRcvD9VJEKxU?=
 =?iso-8859-1?Q?O+Qd4Iq/C7eqLgJ/mKt/bvAW6bibq9HDDVuKy+lS/wpB5QLSPAj2G0fpMw?=
 =?iso-8859-1?Q?WJK7CgtSEVrZfS0AT9IonxdSvViluzTpd2y1Gfv3UPI1vIXlOQLMSfO146?=
 =?iso-8859-1?Q?1BhykjYLeGfxrgvB53EDjMucRUylSUrCWD2rDWeVrtp5BNduKoypuqfF2G?=
 =?iso-8859-1?Q?h96ljXqTd4CH1J3u1v7XVrnVoMvQC5tAKBw3DcFqFZZrJyHDOoV11X5i6z?=
 =?iso-8859-1?Q?QkIML5m+NwBeklshHzOWMwsQdAwT0qy64vsXB4XwdCjXgJEliKUIAhoL7S?=
 =?iso-8859-1?Q?iCSodD8bsOmRE8qvYQNVbMeO0a0QRVRZp8mmRuzHC6S0T19sFR6zBH1hVb?=
 =?iso-8859-1?Q?CcD745rSx+426NwKLT0UglXxos894JbeAJH0nbZpYDAHA9qbiCQANUBSWb?=
 =?iso-8859-1?Q?io+QlJjFWogDuyh8PtOuxhDTlZ2oyRyH8zw2ThuEcwoYO5to20rg+zcZNM?=
 =?iso-8859-1?Q?dlDzJkTauDA9lBdh5Ifgli0aB/fxL9vRxLYnItIUKRlYl/r8YrXc1J9j1h?=
 =?iso-8859-1?Q?WPhrRL2r8Q3YEpIGNQ0quK4HWIfnjg1QqU5/bIfA+uDtm1lyNTPJi9CPp1?=
 =?iso-8859-1?Q?U7275sSJpWDHk0fN4ZONcPSoe7OY5Wgu6TXsVIGJ9Sgg=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?Spuhy87NnXbEcKkmcQyqeuxvtYgJtht7U5o2Ls2PO6HHHFSuJIo5ipESQI?=
 =?iso-8859-1?Q?j2sDenoqG2CRcSUgkwRpxp7NJOAklmZAhT6xpmVrkOWLtaVaA+TpuAah4U?=
 =?iso-8859-1?Q?jtHld9M/PNCGePbUTv73vEpfAwuHL/MzS/zaDT4PYR3/GrRKpSx36YbroP?=
 =?iso-8859-1?Q?dwta7YUTlu77O7N4zlUbu05H+f+vn+Ud9XFU+Es3fGE0k/haMMXvUF8dIp?=
 =?iso-8859-1?Q?7Thx6VFpsy6v8MMTtXThlUEq5fRUptq+lcUQPbAe0PeI/p06McfhTx27Wd?=
 =?iso-8859-1?Q?d+0dB5WcNfksTXvyUhca6Tu0fcfI6W+dFAjrOEK8yjuNaVZXrNqkV1ZadT?=
 =?iso-8859-1?Q?4/0N72DCK09fVpKZR80rkjQ7RrSGRPMGEfJEZkgbvi2rt+QMya69WBV9Sa?=
 =?iso-8859-1?Q?O7ffaWVUUNQNFc+uZsNuEtx6YDbZNlmLCAYsQ0norktBdY1wWZQNaKMvwq?=
 =?iso-8859-1?Q?wgJw/UCh903j+pDFAb+9eF3juZIkEqwFbN9M4AW5KsGCfhIa1buFwk92t6?=
 =?iso-8859-1?Q?ILVP3KRUYCEBALgbjdevQYNfQA8Z/icb/IojcipLIXVpzQz0bjqFlMa6MX?=
 =?iso-8859-1?Q?mQMJWyA0PKXihpEkrPFMtixAfvP6GiIw89P6nHnIbAaxg28NGDCGLWWPiT?=
 =?iso-8859-1?Q?/RtTkRmLM1E3Ta+h+7TFUadYd6DRq18aogCJuRuWWvNx/Ikcyu+XfEQylZ?=
 =?iso-8859-1?Q?OFzlmaHcJirZyFsMdBmIlDtk1w7g2yEuZoymnKyKIj1dlX9IVkkqUFUs/n?=
 =?iso-8859-1?Q?IUesprvmSM66tR/45n4bJPImBylLEB2lt7Y3I819So1TuqrvUo5JTa9jG9?=
 =?iso-8859-1?Q?YCVjaGdJMnSco65X04ROYb48aIlEVfGR+Ssc+NuDjxIIEP7e++ERcXLlk1?=
 =?iso-8859-1?Q?dPGpt7u4YfI96RWEN9KKOAIj7jgvwG4kiqIQM6Hgn9jYBYAztuHA5kghlG?=
 =?iso-8859-1?Q?NHG/bYDzLV3RILIPyJDwA6aFvyDRiuoVR1yQkiq5yEbgfnYtKxQinI7GZx?=
 =?iso-8859-1?Q?uNECvXjhTUNfQ+zmvPsjwwmByloGAd0x1+GSze2rtr2N5X4QftdcbY6E90?=
 =?iso-8859-1?Q?x2c55PSmKO7Cz0M0M6+Rj1Okifti52a2aEb8xnboDkUpwRYBJWHpmnkwKq?=
 =?iso-8859-1?Q?Ein2dcCDxHgrYOKcUZfMvxwmzQSl84bizX826GxZ6XSQkYYxPf92e6B4c+?=
 =?iso-8859-1?Q?PNujNSfzbgNGm26gDj3FYG8IiwHhwv9P/zTy8bg9sDLfZhCI1teKqToZ6i?=
 =?iso-8859-1?Q?acKywDwE3XA2OylXHbd5UXzHL7lOyYbVwoZDoNdY2A3kLwFftRUDLsH9SZ?=
 =?iso-8859-1?Q?naS/giZ/ZT65nGE3SPb7TDG1KEtDSu9niKpkZOBECBc9eSSAuckLxAWmeP?=
 =?iso-8859-1?Q?5s8ta7JpX/EWVMwlRIJrQCctLRtyXvsjKGbrLRXiqYbD2coEGytMn7h9FZ?=
 =?iso-8859-1?Q?JgUVaGUHiBgdGEXvorAE+KAK8AdNGjkF4kNj04sZG8BvvNuhRFOpotrGp8?=
 =?iso-8859-1?Q?/QPO8bf5yQeX5YcxZgFLmusVt1aL+/wstqVhvkw/HD2JJXzr6RWQGEoMbG?=
 =?iso-8859-1?Q?V18uG7vpVh6wc0W2ol1m2bzI7yTGr/afHoJjBDmVekmM9lCbPbcpMJVr/1?=
 =?iso-8859-1?Q?7mqbNPOMsKktUvHi2MLmz9N1NTKKuvVcJtUUjRxiWeiO/QZp8mxLRHRtU4?=
 =?iso-8859-1?Q?7RGGd2M3zsrvEqv3XsI=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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c54770ce-43c7-4c5d-1055-08dde4a9a2f6
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Aug 2025 14:05:38.3125
 (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: PaGRStg1yi/AGaRC7np//8+zDNX0FQYGx5TEKOuA6gFMiulDtp5ygdgH23yBZWpG1iG428aPS/cDFjTlKzSNVHb0a9TqTDJb7J2jHx+ZPn4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR03MB7887

To properly deactivate guest interrupts and allow them to be retriggered
after the initial trigger, the LR needs to be updated. The current
implementation ignores interrupts outside the range specified by the mask
0x3FF, which only covers IRQ numbers up to 1023. To enable processing of
eSPI interrupts, this patch updates the mask to 0x13FF.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>

---
Changes in V2:
- remove unnecessary CONFIG_GICV3_ESPI ifdef guard

Changes in V3:
- no changes
---
 xen/arch/arm/include/asm/gic_v3_defs.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/arm/include/asm/gic_v3_defs.h b/xen/arch/arm/include/=
asm/gic_v3_defs.h
index d38a3d08c7..ca403131bd 100644
--- a/xen/arch/arm/include/asm/gic_v3_defs.h
+++ b/xen/arch/arm/include/asm/gic_v3_defs.h
@@ -207,7 +207,7 @@
 #define ICH_LR_VIRTUAL_SHIFT         0
 #define ICH_LR_CPUID_MASK            0x7
 #define ICH_LR_CPUID_SHIFT           10
-#define ICH_LR_PHYSICAL_MASK         0x3ff
+#define ICH_LR_PHYSICAL_MASK         0x13ff
 #define ICH_LR_PHYSICAL_SHIFT        32
 #define ICH_LR_STATE_MASK            0x3
 #define ICH_LR_STATE_SHIFT           62
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 14:05:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 14:05:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094538.1449885 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uquJ5-00005A-6k; Tue, 26 Aug 2025 14:05:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094538.1449885; Tue, 26 Aug 2025 14:05:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uquJ4-0008UE-OK; Tue, 26 Aug 2025 14:05:50 +0000
Received: by outflank-mailman (input) for mailman id 1094538;
 Tue, 26 Aug 2025 14:05:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kqrf=3G=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1uquJ2-00072q-AH
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 14:05:48 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c340497f-8285-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 16:05:46 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by PAXPR03MB7887.eurprd03.prod.outlook.com (2603:10a6:102:216::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Tue, 26 Aug
 2025 14:05:39 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Tue, 26 Aug 2025
 14:05: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>
X-Inumbo-ID: c340497f-8285-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GnNucBZkRbqebhbudRCglLr3rj7uNBLaNBN7yEV1SVaJs1KUTOKiN3dbkouurTN5j4JxI7uB94wVm1tANOX7jiwGDY2kQDjj1c+FtcUSMUaFQ4Pgy223fmOSJYynzyAwNTM9R4HxZt3uWrCJk/pXe2o1gaa/dRNEKPXO9fZZVGchbcEo6zsVQ0ACD8tb0CMz+1tYLrWKN0IKRpJ7g6FnY+dLsNjyT9CA5MLzT8FbU5V2abCt7YhQdkQUYGNSK23AXroct71HDiVs3AFjJ5GRPm+V/X7ALEFw/1s/0vwcL8/TsP922HSAiuTkUJmY6YQr/EUndJRVW9gIOTG3Fm+Wcw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=W7Uni7hYOu4slSyrdi2cdXi+bFki+LJszX2aXGdgxtU=;
 b=My9AQMsKFOPyEzUahR/SYbRr2EgUjWGZ09v8jkw14slT39etshss6U2XywDsd3EOqYcvuraE3hDIRoJfJcP/1LNunqNlxcXCKDah9/KTttiefsUtU2/0M+r2mTH8Ixy1pk/VKLztoSP3ncMdJVzbl0XHSi/G8KLxAHmHSyTLtUOfusiP5vg3qNyw4qgvxZlWLyUeW2WArrVollTlcDgtUP0X68wj2J37XOKIgKlRZafSfXgQ6Bwg3xgY9pUpd4MlYbtjBEfh+MDqA0+4RKGKl/Qi+BPdKZnnWGzE7nzUVyRShXBmYEto36JkKAZQMPV1itlXw7zhT0TqshMcaKFxHg==
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=W7Uni7hYOu4slSyrdi2cdXi+bFki+LJszX2aXGdgxtU=;
 b=WcGqr3naz/RA8j3xKGWYREv9SJBL8utCn276OefORWEnR9UNth9to329PAbutCy7iKBwTwUOoGNiVe12DQsmLdfNtO0iUsYjFZzQbV95jP1OFZaaHx+Iin4HSzyWWbWi0eGUd05wYGVh7jkljAiaWKesH/eLWeF+dXwMOkzKBoil/8dK7HOTN/+yp/DC/Hn2gjoVgvk6tbVoRXic1ruzbV6TnC6/IpMNccVyXFCbYJLDG4hRrfVMXWKnULIG+1xxRJdYivp26s+qB/SyvFd3wya+lrI9Q9INqyMebBSKv0YzfRKEkWk6MbXzT2oLgqrYfHtovv9fzVP8ZZQTGMRjQA==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "olekstysh@gmail.com" <olekstysh@gmail.com>, Leonid Komarianskyi
	<Leonid_Komarianskyi@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 v3 09/11] xen/arm: domain_build/dom0less-build: adjust domains
 config to support eSPIs
Thread-Topic: [PATCH v3 09/11] xen/arm: domain_build/dom0less-build: adjust
 domains config to support eSPIs
Thread-Index: AQHcFpKAZWUsU5Sz9EWrJGvlceTbIw==
Date: Tue, 26 Aug 2025 14:05:38 +0000
Message-ID:
 <bff3d1c4302e8780771abed42f624cafe76776cd.1756216943.git.leonid_komarianskyi@epam.com>
References: <cover.1756216942.git.leonid_komarianskyi@epam.com>
In-Reply-To: <cover.1756216942.git.leonid_komarianskyi@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: GV2PR03MB8678:EE_|PAXPR03MB7887:EE_
x-ms-office365-filtering-correlation-id: 1607e281-be77-47fa-a8ab-08dde4a9a358
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?F68Ljtg1zcKzEeiA0UpJMEK9ZjgeOO90wz1EKBLKSpAaOjzMByEM2o8MfM?=
 =?iso-8859-1?Q?KClg5DvyQ7hUWJMYQFFBJEVzIYGJCeaMofVAxPoFXY1mINaIFib6iPx/kS?=
 =?iso-8859-1?Q?5K9P7ktDpwo14EInX0wk9CirjAEqBOfXs/hd0G70vcWeGp6ID0br6deQ+B?=
 =?iso-8859-1?Q?hKRFbIR2P0EJ7Z7Ay9VfLr4mwcJe2kWqg9AkSxsk/biDI4J2JcE/EBRXX9?=
 =?iso-8859-1?Q?kHb/HkFxNqxUtnR/9TZp5aBe2knQRPv9lCwbmlt8md89IpbXXIwUuqXLo7?=
 =?iso-8859-1?Q?C04BOTVpdLb1haoZI7aBUP00xV7besD9F6edfdX7OpEviqQowwDdW6r95l?=
 =?iso-8859-1?Q?CucuBrqZH/EE8xMfuJXtU/gBZv0gf/xI0vtYq/UdIAHc1TatwUnckaSrdc?=
 =?iso-8859-1?Q?1gjyQ9RgP7dIBaKxczKUmxHiQT7D6VuHU0ewitry+DDCpX+QAc05444dr4?=
 =?iso-8859-1?Q?pXO0TQM6DYWqIeEnsnGBCankgp2QlW/mJYH7JlIvMYZ3+3OLlKfxYeZppV?=
 =?iso-8859-1?Q?aOS1dsKa7LRUiz0QmeuFm8aYmufmuyeUcnNYC+I2ZXtoepZLDE4JkOEemi?=
 =?iso-8859-1?Q?Xs59gYNjSzXAeD06QzGF3YHeMDEVIaDWINlJRFeUmWPUOzA9fqXguwPtx6?=
 =?iso-8859-1?Q?y6HvPfbheJ+PqZsKVnLQfc7EJFNNH0va7nxWupdWn/zBwtO4qdS5KqztnE?=
 =?iso-8859-1?Q?3NZLIok1zDU7w34Er4cawCuFR1ceSs7b4EGE+kv6tfgMLG5CMysUuiZvAk?=
 =?iso-8859-1?Q?BzQ4MCmJn3tBJF/SVsHYqcXbl00bkwcbOpANus3jpLZmAukkQf9udoZGRR?=
 =?iso-8859-1?Q?sx3bY+P5yeUt/q0CAUXbQllirOYgncYVV6E7DvuSVwlJL4Ehf/0/Jqk0yk?=
 =?iso-8859-1?Q?4kbYQLy+pMuKz2Bv16JMQgwodJ1OWeZQlfjpM7YenOjGCXX8wU1IFQuRgV?=
 =?iso-8859-1?Q?X5WqYb929wWZZ7agkO7kKVtjS8krUUwBkzkmk/TNTHHMyrWTBCfQwcNRdU?=
 =?iso-8859-1?Q?+s8Pja0EsAQ1t5YGW+puBnMZQ3BuST5kQ6/g/k53BD1qsnwz3O3UJFc+4X?=
 =?iso-8859-1?Q?t+LoBDR1lj/HtxXsoJulBLGaz8QBOmf2QxIbnrkfb8hJ+ftpZhFoFl7bdr?=
 =?iso-8859-1?Q?rJM+Le7vY0RksulfPbYVyMvpQK18MHUKn6/eXrmT1UqF/dX7uo1O9nTm8z?=
 =?iso-8859-1?Q?hPAsQJkKkDjAMfd+Iym4AifvtlI4l1xp2QKgGn0fwLAlnF+IUNme+J1xgr?=
 =?iso-8859-1?Q?ulIgmfklWq2SMhaXZ107FJm7Jh5TZ+W4hgGILx/IaemcRCMSUcAYQhuJOR?=
 =?iso-8859-1?Q?2MUaf/wQ87rNrVIovnFU1X0AfNujvRT62lbCF7MkoiZ+GKTsxTyvzUTq5B?=
 =?iso-8859-1?Q?bSRTMSM9QNPUsUJSA9h8F1NXQ1xhcpSZBRM6gjzfUnB5LvMvTn+TvQqPq+?=
 =?iso-8859-1?Q?pwVsdKYxrDp0aayiWPh9lmpdNJXEqAENniovks+d4Un0or7tWjXumFSAL1?=
 =?iso-8859-1?Q?z9g7ZPxj8q4INcT9p/N1pBAv/YjTcCPidoOTo8fW3FVg=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?Amag11ukxIkSI9EUfLV20sExn4lzXAMGCi0PpFH5ToZ6KWV9HUlCZZsDKR?=
 =?iso-8859-1?Q?pNsMLJGc8nA9fU1wQIZR85UwcL2hfSkdPycOLekEucgvsG+9116zEjZNsq?=
 =?iso-8859-1?Q?3LpCG7LJX7WzJQ5MmX8SFifj7WF5KXs9Ta/GlcoO73trJO7+mCMXZy1m10?=
 =?iso-8859-1?Q?uxSvJpLKi4PbUI8xwaQgoBulBzV6nivCxJY0D7PAZQR44igfSSpHlmzt9a?=
 =?iso-8859-1?Q?iErdc6FIsPCPzkUF6ONTSeoRvyv1YoOj+9seZLQIE41FKjgwfypoO5FmR2?=
 =?iso-8859-1?Q?e+0fOTj1PKLv8VvGqawpIo/mUAzrpeBDkhGpG0+QveRkXuXiSubAuTSMg9?=
 =?iso-8859-1?Q?GYErTBjELby3dn3w7Ro3SHCHRxWDTeU5bxgUFlklvHZcgqSYz6tn1uHX6U?=
 =?iso-8859-1?Q?7OL2BcrrY+xssdzLkHBjmHPkiAI0sMEFOCwEsVDmVsSd4cpA5q8navnabF?=
 =?iso-8859-1?Q?FPuykwmBqbYP3PrGhnTk+FhcWjoggof+N8lV9kjwgWA++DCLwh/O3FxhFr?=
 =?iso-8859-1?Q?vgjtxZkOuiRo6MsajrVxQ5xgyJGdRlcwdMS4cAqBpXN0aFmcLMjiJOVUgd?=
 =?iso-8859-1?Q?XUBQ5QlYLX5m1wS+ZFCTb/5FLPsefSoN05wchbYoTgGkJTwimHCpzOEFbb?=
 =?iso-8859-1?Q?YDTVikEuduYGBeSTDJRh4jBHtMFyGAS8SnJ1zM5v7I7l9+axqisllkmBT+?=
 =?iso-8859-1?Q?81Kr7ctg7Fg2/mNMjuZdl1lbgFoAQZ9tn+JvhEdc0IcNYenkbchNPM7tPD?=
 =?iso-8859-1?Q?em0Zielk9tHALYTJLb7IWu5JAswFyRZo0rfMbS7IQQn84hbeTzpgnomeVP?=
 =?iso-8859-1?Q?24XOcItbvCU6QZ0xHDabdGyHz6OUshR18Jm0rMtUqM9eb5qFBtq24MIjPQ?=
 =?iso-8859-1?Q?hWXS6MGSk3jPXCKW+eBgsk7jMXD5w3BZ5Lf4dXCKt5Gf8RsTbomIfYDM8V?=
 =?iso-8859-1?Q?8eWuSaO7OgTjmiDDAHfZxeW4SrUwKNpxkyhR/0Zb4OzjE8ITfUbLZijW9M?=
 =?iso-8859-1?Q?ZsU80yvWrr4fH2cuCbcWHVASvEQUGoGxdnk+DVKiY9aqOCbpsrDrKHEhxb?=
 =?iso-8859-1?Q?3PZC28IicnEMkRugz1Zjqd9IXB9qsRIjf77zQdnFwIMN5FCcjXSK4b0dq5?=
 =?iso-8859-1?Q?ktXUA7YrLXnQiTG0FChVAns9gEI3EqjhF9VE+y9pS4vAPBxGiSwXD7Aieu?=
 =?iso-8859-1?Q?9kdjeUP8H0jv/l5k9Qx/7hGqtfH8pZR+vRPx6L7Ln3P7oSqMrrnh/2Rtz2?=
 =?iso-8859-1?Q?+QL857tajNTXhxCy7++RISa4vOhQ/Iuncq3lK3iZZxqUPeWoH6hctfCYk4?=
 =?iso-8859-1?Q?f4zWOCnM8lFtBqVQFYthPs+iQ7vOhEdVmeZrEBsA/jtIyAo2DWZPDtbYtg?=
 =?iso-8859-1?Q?UjQmp7jV+jZMwqpV+skQZvAg3nBHDl0Q9f6zZ7ehyhCO9a2c/R0eXLl3Na?=
 =?iso-8859-1?Q?sU5IBXD04eYZCgoFBPaAbtzAVb38i+2P5sFf3QrK82RX5YnSu3BM/Dg1g6?=
 =?iso-8859-1?Q?F7iA4+lep0/vFmqZ5+iwbVUIrG4v47DTKR8ox60+inhhwZxgvKr5PnvVJf?=
 =?iso-8859-1?Q?XTEhmONZhVxc/zDFUoWrJ+hqddCwsULpEN8Hg0DnPt/n1y/67aOmTF4xRc?=
 =?iso-8859-1?Q?6iARMiZwOgbpKNl59mblLBzyiTanZXToNLSh/dJaBxyQwVEFmaHAI1nmDk?=
 =?iso-8859-1?Q?ZDUj4GLwodKSweaDPcc=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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1607e281-be77-47fa-a8ab-08dde4a9a358
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Aug 2025 14:05:39.0068
 (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: fP+VTFy2VB5YJG5UQzGIc44sR+D8bFQLm/02bfqSfeCwC1i/2GRGR37r501NdLIipSekN6LibxFUEXwMb2boSz2T7MMnzLuxrXuzZWzNXwM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR03MB7887

The Dom0 and DomUs logic for the dom0less configuration in create_dom0()
and arch_create_domUs() has been updated to account for extended SPIs
when supported by the hardware and enabled with CONFIG_GICV3_ESPI. These
changes ensure the proper calculation of the maximum number of SPIs and
eSPIs available to Dom0 and DomUs in dom0less setups.

When eSPIs are supported by the hardware and CONFIG_GICV3_ESPI is
enabled, the maximum number of eSPI interrupts is calculated using the
ESPI_BASE_INTID offset (4096) and is limited to 1024, with 32 IRQs
subtracted. To ensure compatibility with DomUs (Dom0 setups) domains,
where this adjustment is applied by the toolstack during domain
creation, while for Dom0 or DomUs in Dom0, it is handled directly during
VGIC initialization. If eSPIs are not supported, the calculation
defaults to using the standard SPI range, with a maximum value of
960 interrupt lines, as it works currently.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>

---
Changes in V2:
- no changes

Changes in V3:
- renamed macro VGIC_DEF_NR_ESPIS to more appropriate VGIC_DEF_MAX_SPI
- added eSPI initialization for dom0less setups
- fixed comment with mentions about dom0less builds
- fixed formatting for lines with more than 80 symbols
- updated commit message
---
 xen/arch/arm/dom0less-build.c   | 12 ++++++++++++
 xen/arch/arm/domain_build.c     | 11 +++++++++++
 xen/arch/arm/include/asm/vgic.h | 14 ++++++++++++++
 3 files changed, 37 insertions(+)

diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index 69b9ea22ce..f4f9077db5 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -286,6 +286,18 @@ void __init arch_create_domUs(struct dt_device_node *n=
ode,
         int vpl011_virq =3D GUEST_VPL011_SPI;
=20
         d_cfg->arch.nr_spis =3D VGIC_DEF_NR_SPIS;
+#ifdef CONFIG_GICV3_ESPI
+        /*
+         * Check if the hardware supports extended SPIs (even if the
+         * appropriate config is set). If not, the common SPI range
+         * will be used. Otherwise overwrite the nr_spis with the maximum
+         * available INTID from eSPI range. In that case, the number of
+         * regular SPIs will be adjusted to the maximum value during vGIC
+         * initialization.
+         */
+        if ( gic_number_espis() > 0 )
+            d_cfg->arch.nr_spis =3D VGIC_DEF_MAX_SPI;
+#endif
=20
         /*
          * The VPL011 virq is GUEST_VPL011_SPI, unless direct-map is
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index d91a71acfd..148a8bdb60 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -2055,6 +2055,17 @@ void __init create_dom0(void)
     /* The vGIC for DOM0 is exactly emulating the hardware GIC */
     dom0_cfg.arch.gic_version =3D XEN_DOMCTL_CONFIG_GIC_NATIVE;
     dom0_cfg.arch.nr_spis =3D VGIC_DEF_NR_SPIS;
+#ifdef CONFIG_GICV3_ESPI
+    /*
+     * Check if the hardware supports extended SPIs (even if the appropria=
te
+     * config is set). If not, the common SPI range will be used. Otherwis=
e
+     * overwrite the nr_spis with the maximum available INTID from eSPI ra=
nge.
+     * In that case, the number of regular SPIs will be adjusted to the ma=
ximum
+     * value during vGIC initialization.
+     */
+    if ( gic_number_espis() > 0 )
+        dom0_cfg.arch.nr_spis =3D VGIC_DEF_MAX_SPI;
+#endif
     dom0_cfg.arch.tee_type =3D tee_get_type();
     dom0_cfg.max_vcpus =3D dom0_max_vcpus();
=20
diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/vgi=
c.h
index 248b5869e1..0bb025f5d5 100644
--- a/xen/arch/arm/include/asm/vgic.h
+++ b/xen/arch/arm/include/asm/vgic.h
@@ -353,6 +353,20 @@ extern void vgic_check_inflight_irqs_pending(struct vc=
pu *v,
 /* Default number of vGIC SPIs. 32 are substracted to cover local IRQs. */
 #define VGIC_DEF_NR_SPIS (min(gic_number_lines(), VGIC_MAX_IRQS) - 32)
=20
+#ifdef CONFIG_GICV3_ESPI
+/*
+ * Returns the maximum eSPI INTID, supported by HW GIC, subtracted by 32. =
For
+ * non-Dom0 domains, the toolstack or arch_create_domUs function applies t=
he
+ * same adjustment to cover local IRQs (please, see comment for macro that=
 is
+ * used for regular SPIs - VGIC_DEF_NR_SPIS). We will add back this value
+ * during VGIC initialization. This ensures consistent handling for Dom0 a=
nd
+ * other domains. For the regular SPI range interrupts in this case, the
+ * maximum value of VGIC_DEF_NR_SPIS will be used.
+ */
+#define VGIC_DEF_MAX_SPI (ESPI_BASE_INTID + \
+                          min(gic_number_espis(), 1024U) - 32)
+#endif
+
 extern bool vgic_is_valid_line(struct domain *d, unsigned int virq);
=20
 static inline bool vgic_is_spi(struct domain *d, unsigned int virq)
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 14:05:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 14:05:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094539.1449895 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uquJ6-0000QG-9i; Tue, 26 Aug 2025 14:05:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094539.1449895; Tue, 26 Aug 2025 14:05: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 1uquJ5-0000O0-WF; Tue, 26 Aug 2025 14:05:52 +0000
Received: by outflank-mailman (input) for mailman id 1094539;
 Tue, 26 Aug 2025 14:05:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kqrf=3G=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1uquJ2-0007NC-J5
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 14:05:48 +0000
Received: from GVXPR05CU001.outbound.protection.outlook.com
 (mail-swedencentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c202::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c325363f-8285-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 16:05:46 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by PAXPR03MB7887.eurprd03.prod.outlook.com (2603:10a6:102:216::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Tue, 26 Aug
 2025 14:05:39 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Tue, 26 Aug 2025
 14:05: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>
X-Inumbo-ID: c325363f-8285-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=N8KM5iZd09RhkjxVToc1OZbJz280mn95Gf712fEW1nULP+bcEcugyt7qs5lo0yD3hMO5fn3lceC2HIeE5fCMo9hKMbZMJigeO6sCDG4mXJd6XEwMFsYfc+D74VhPL2wPUkfzIDztul+g6OPszXtrOLgYmPYiCNUqIikgSBEwDGQdBdBU8ZCylROGo/zX2BGzndTm+fcNS6IHFf/rMI83A/2kEaWhyIVYHGQncHWX1hLFWrlGXO9wwIhldl/Bs5/4hpMrc9hyMznhW9piVWZEA2Byvzg0SjMLAimywDC+nRwqG2Ot0YZ2NSViy7P64Mnnf+yYDJQnuq4yM9mEGMQwqw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=XYoVNJk58OQZq82ieOAGJKlEee8Hur+e7ApKFsLILnA=;
 b=R4Zw4rYZnmqU0Bb93Rc9G0GpDlJL7XdtXf2yFGIV4PwEh1jEtX+rTIv78QsE1laO1XxCxRiYjJoTzCAzxE5+vnQOGKhOFSQhzIdQSH3VHHN7cJGkhdRSs58SfjOvN7Eyu27gL5gS+kYk6NftnIfY2m3xUZ8BN45i9ZDlH7r0yzETmAx7Pi3/5vbRk41EdnVDCvP18DokR/S7o8pIdx2GsHYp3BqMrX9x+LmaJsV/rWaJMxH4a8dnUhXiD2jXXT8Niyr6HEHliJKhvu5rpObowvZTC7aPOAAVl9Yjw/Ven39bzWINNeDwH6WFFbwWdApXhy0btugu2gMUEZEu0KPLuQ==
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=XYoVNJk58OQZq82ieOAGJKlEee8Hur+e7ApKFsLILnA=;
 b=cxz5+Y20VMc7G89BinF2XUCgrCYsBEgWaS9ca0HrjDs16I0PgZKuG0hDdqMR8vso1DUb54FmNVq+7CmGEbWhuft3BvKQEWTy7gkF7nKI/4KB/u8sTCDZ773Pz0zTXdWnvbTpUZ7ItCMnv3Sbo+MZ7RsC57e2BkKC+0Dl+joG9C6Zqdxz5srVGlyMavBx9DJjfoKCrLQnyliV/Sh5qhLHw6DNjXxSOamLVa/OL+8ucj4YoNA4afGHYqijqC45jlpoorZm5AyXPnJj8rhzJq+PBEn/m+lYBr1tNcJxc7QANPMi8VB+IHEtANb/1c3dXCkbsoR4WHrUMCKVbQ0bAAnqNA==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "olekstysh@gmail.com" <olekstysh@gmail.com>, Leonid Komarianskyi
	<Leonid_Komarianskyi@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 v3 08/11] xen/arm: vgic: add resource management for extended
 SPIs
Thread-Topic: [PATCH v3 08/11] xen/arm: vgic: add resource management for
 extended SPIs
Thread-Index: AQHcFpKACzOaRjOW50q/bIpnflDhkw==
Date: Tue, 26 Aug 2025 14:05:38 +0000
Message-ID:
 <88254ec24a25e3d99950fb5041ac6b050aaa1e4a.1756216943.git.leonid_komarianskyi@epam.com>
References: <cover.1756216942.git.leonid_komarianskyi@epam.com>
In-Reply-To: <cover.1756216942.git.leonid_komarianskyi@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: GV2PR03MB8678:EE_|PAXPR03MB7887:EE_
x-ms-office365-filtering-correlation-id: 897be64c-a7c4-48ef-f62f-08dde4a9a326
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?ZtIx72UugCzk8CKGXu7SdXiz92ABMaTHsH1EXuCg+KFEuT6VbE2f9mgc3s?=
 =?iso-8859-1?Q?M0k42XIzaU4nBUSkCjuqa6laCO5nqRthptLiNTZoI53CLA6GrgpG8PYqAU?=
 =?iso-8859-1?Q?VuUJSimR9OOzzSSRXGW+WjWnXqyOuaZCIlnmRC6j84sqK1qZSydxiPejv0?=
 =?iso-8859-1?Q?eSvOdcOpOuNeOpg2Opo/DluNFqtLdPfB06bRzjhZd8+t0NNv27ziIJBqzj?=
 =?iso-8859-1?Q?PQCzOCmkEK04ZwrEq7Hw4kGeN24mrQbCw8y6vfR4hwLaLSovb7MlAAV1bv?=
 =?iso-8859-1?Q?MN6u6VyJEXN+tht76Ky6YxeR12NeishONnxdAwSNvVNlTmZnRkMsjlsUBB?=
 =?iso-8859-1?Q?4AJUHFpOCmMSlE9LYXC1K0V6/fKB9yXk5+5Tpb6isqiWRK9h13iD7XyKoR?=
 =?iso-8859-1?Q?tlhrtcvRamPkm0Sb/sC85e2UpK9envtwJXHoISU+d2MGyYiUydcKZj/hLu?=
 =?iso-8859-1?Q?cJeOmMMgs4N4n/qaHk/dMJY6FNMXrScNyh3HLacRPPWLu/F71A4C43T7b8?=
 =?iso-8859-1?Q?PKuumvQUpMvev5UxfVRTX1tLhxxDoY7+5057fDqtd2ud7pR5vMetZmjl1J?=
 =?iso-8859-1?Q?Z/I+UhokLfbR+YirdRYXH1geDqx7bdeinYxfF3n+borFfiAsxX6uUA4C6H?=
 =?iso-8859-1?Q?fAHfwPsS4AKH9650WH1JbZT4Sucyvi/3EJE1T862/swwmKqtFrCxM2Xeid?=
 =?iso-8859-1?Q?A4IA/IFKjYvUQeUHa+7ez9OQ9pyCYwYSGgn11QFrPDjo1BnknnDHE9i4Yb?=
 =?iso-8859-1?Q?ES98kT8rLRgTHxxpLmOvjsrafegshhxs5nRmldAz/q9ib/dTbA64E2uxTX?=
 =?iso-8859-1?Q?tidT5ntjWdOgeN2Bu1qsXarb9dishHa1y5GKMRQBM8//iJ/AgQf3KaItmU?=
 =?iso-8859-1?Q?pdzwjjotYwNdd36M0eivsWY3pBY8Gk/KikuVH4Gv0T6Wg1ECWwhKw4BuBw?=
 =?iso-8859-1?Q?lMN5gjRf0zYAcmjWgLg/yiCjseTPcmUkVHC5QBPxW7toilC2bljy9h3yuO?=
 =?iso-8859-1?Q?/af8IGHCVjnDUC1qiwfj+AE4TW3yoymDG50aFcrRyXMUNJyk1flq6FXVAS?=
 =?iso-8859-1?Q?2d92zIlbwdmV2h7OPCGY3X78X8uzJ6e9lzAZ8Cb2K/mx9aBtciopDxGXW7?=
 =?iso-8859-1?Q?JgPP+ptbdp0B7+oBu5X2QJC9WZPPNf7cwJ2Q701tWvxbvXz/FIprSb0XJh?=
 =?iso-8859-1?Q?b92RVYviIsgxIiD0aOFen+lTh7qN7wZCCQ813FjbYSx1OCaRZYaaVTx0C8?=
 =?iso-8859-1?Q?LJ5sU3w3AeT4uGs/HCFE4ekSX01KDvsvmy0E5RevYeudFjJM8Inm/QBZml?=
 =?iso-8859-1?Q?HkRJszPLePNq7w/Nc+c0adeBdzJQM879J/UnJ/Bq76kuzK8sqsjVVElN3s?=
 =?iso-8859-1?Q?JoAoSF1RZ+cuGWPrqyFAkMg7c7erD9sGkY6OKrdpD/YlnJsz/VtHG86B4Z?=
 =?iso-8859-1?Q?P4Umc+NmvH0pWsQfsrKGiVphcssvoRZdCnxgiHgHBZg/0wGfwbtvXiyCi0?=
 =?iso-8859-1?Q?9ueqT8Hc4iEmPFaDvO9Z8kGthST+sAwRsJHIStytcTMw=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?q1FUm2OUydQ8hKSsrzLFhNb7OIxprzjX+me247br0UMEBE2oVE+QV4UbDF?=
 =?iso-8859-1?Q?LXCqMxDVv99NwrLEHcUZY6yGP2fx0AbrjTACT3NgXNHVYMAaBMTpesk8Oy?=
 =?iso-8859-1?Q?pzvUjCspzpy9CYwYmC/1+z4Wx4OvnM1Sx8VEivFpjgzMO88xmD1tutRqJo?=
 =?iso-8859-1?Q?Lyj3xvkLt5cbuO/LZsSi1OrxVbdqC4H0AI0FQAqtc5y/7+x8F8Vs1MPiNN?=
 =?iso-8859-1?Q?LgTNNfEDmKWF5qSWFv4xeWzz3MXxBox9Kd8fpJG/tkyrhByOUfhVt7I/BG?=
 =?iso-8859-1?Q?4H8qa9xd0o8QQMlMxqogXEfrEuhVddKPBP8BiH0hkq1X9bjtWAsmAd9knY?=
 =?iso-8859-1?Q?tLftQzZLuCNCe3XwD+YMnOKHa+EtGQIvXpiNfR1mkZuQeXnhXYWPG6YUmi?=
 =?iso-8859-1?Q?sn+wOm+nF70uJJhwiKf2OTKWrw2c+uZ9kHT5PA0+s4unB4kcGb0HLklIOG?=
 =?iso-8859-1?Q?OgxKBdJuCKSyCMO0wnXBga9SAicdCSJYmY7+tCg0O8sjPDDwg2VXX3WiWq?=
 =?iso-8859-1?Q?phAL5DHjsmE9l5+LVs5f56BcKxooezqXxkKMc6Q3+A7FzHgSuuf4H55+w5?=
 =?iso-8859-1?Q?Ig6PQ2fhK3O6MX/3hMHaSlDoeXKNy/XG5sFvcXCHmPbkh07dZE68wSFg3o?=
 =?iso-8859-1?Q?YHszdnQCWvFZO/vtGTl0ABuVXyku3W2hZY8t/3x7QSwSJzVVxHxtedhcEe?=
 =?iso-8859-1?Q?2qBr9rl3jJTJKRfXyvsbhfla3US8oD/xLYQlvKQ1VBVLGgEIMgooGvb8IX?=
 =?iso-8859-1?Q?t0XIAVqBm8sNlcfBNnoJt89O/krhhoXzb05n8rzMtpXB0DkXLzraec9WmX?=
 =?iso-8859-1?Q?UirLD/0zvJX3JfOpNpbTlCZWBWSVzECS+0w9lnx4BW6Xo1IsSgFkmxYagv?=
 =?iso-8859-1?Q?EjbhjDYVMfXiDdCscU+bpxwh13w3iFCb1yZCTSAWv+GvwPJ4j0oYqPkMXp?=
 =?iso-8859-1?Q?czpc9Vqigy8IOrQLVvv7E6udb4s/sk+WRaS09ychO3QDq636m5qZc4Q9mL?=
 =?iso-8859-1?Q?zkKxfqxDzSj2xV6Vu2D1MjFc+AeuebaDaKTxbPe3U7cna7ZNPzyBZ/c2hu?=
 =?iso-8859-1?Q?SdMqY8OLwvFYHkEzbNOkYzHcj1Vn4x4qlaYgPX5UuOJv2Yv7H/oemt2Wop?=
 =?iso-8859-1?Q?wactmWOb9kSUDcDYwImjXSQBsJh3QmzNUAAV2g0sZlKxiNe8Mmv+1pRfl9?=
 =?iso-8859-1?Q?u5NcZiyT4PQj/HQQtFLDWy7aeP0mQUtplJIeK7bNEYU41BEfBACPP32ZAb?=
 =?iso-8859-1?Q?bQ4TvIQyz9pTTb4nu2bPzABYRERaet8NanJU0T2XBmwhP9+ChJFf4jl1b8?=
 =?iso-8859-1?Q?xT8u1RCihiEwdOKAJqhMe4wO2GrIjaUn2C0uEFDs2cWEyD4bZpq42cgpya?=
 =?iso-8859-1?Q?mnwFCArnVhPe0pI2BhQVsKYzpESQYXbjIJ1uF6JT5hm8xQAbkt+NC47CgI?=
 =?iso-8859-1?Q?ztK7L1cEdXWU2fvve3nsR4n4M26pvRdymF+1IRaaUkG1NHfp3CrWUdEBkb?=
 =?iso-8859-1?Q?YcKhErQFoFmxOidc97UPqFoUFDq84QlQOt/4+7qui7aDKpGDy1Ziyctckv?=
 =?iso-8859-1?Q?mpvccge5giI1XZELLNcUvQiqGXtBVbCnXPIjPb2iWFfpbndwRevQiRlAAb?=
 =?iso-8859-1?Q?SqofFl5cpQFbMptZ3NPMcz19qey0rjqfJpiFW1oXMrMpiIQqRMO4pZHaJ7?=
 =?iso-8859-1?Q?KoAYwHpu99sGfupPc80=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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 897be64c-a7c4-48ef-f62f-08dde4a9a326
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Aug 2025 14:05:38.6764
 (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: QZBJOnRNGNNlTYZuInRRg20eQ6LS6jrz94Flf/Om/W0w+L20yg/GU16wdwqp3ZvW+RXkuowMJyRZhGaR4diNsg/deKnIFVIuXBN+C40brxw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR03MB7887

This change introduces resource management in the VGIC to handle
extended SPIs introduced in GICv3.1. The pending_irqs and
allocated_irqs arrays are resized to support the required
number of eSPIs, based on what is supported by the hardware and
requested by the guest. A new field, ext_shared_irqs, is added
to the VGIC structure to store information about eSPIs, similar
to how shared_irqs is used for regular SPIs.

Since the eSPI range starts at INTID 4096 and INTIDs between 1025
and 4095 are reserved, helper macros are introduced to simplify the
transformation of indices and to enable easier access to eSPI-specific
resources. These changes prepare the VGIC for processing eSPIs as
required by future functionality.

The initialization and deinitialization paths for vgic have been updated
to allocate and free these resources appropriately. Additionally,
updated handling of INTIDs greater than 1024, passed from the toolstack
during domain creation, and verification logic ensures only valid SPI or
eSPI INTIDs are used.

The existing SPI behavior remains unaffected when guests do not request
eSPIs, GIC hardware does not support them, or the CONFIG_GICV3_ESPI
option is disabled.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>

---
Changes in V2:
- change is_espi_rank to is_valid_espi_rank to verify whether the array
  element ext_shared_irqs exists. The previous version, is_espi_rank,
  only checked if the rank index was less than the maximum possible eSPI
  rank index, but this could potentially result in accessing a
  non-existing array element. To address this, is_valid_espi_rank was
  introduced, which ensures that the required eSPI rank exists
- move gic_number_espis to
  xen/arm: gicv3: implement handling of GICv3.1 eSPI
- update vgic_is_valid_irq checks to allow operating with eSPIs
- remove redundant newline in vgic_allocate_virq

Changes in V3:
- fixed formatting for lines with more than 80 symbols
- introduced helper functions to be able to use stubs in case of
  CONFIG_GICV3_ESPI disabled, and as a result, reduce the number of
  #ifdefs
- fixed checks for nr_spis in domain_vgic_init
- updated comment about nr_spis adjustments with dom0less mention
- moved comment with additional explanations before checks
- used unsigned int for indexes since they cannot be negative
- removed unnecessary parentheses
- move vgic_ext_rank_offset to the below ifdef guard, to reduce the
  number of ifdefs
---
 xen/arch/arm/include/asm/vgic.h |  18 +++
 xen/arch/arm/vgic.c             | 212 +++++++++++++++++++++++++++++++-
 2 files changed, 227 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/vgi=
c.h
index 9f437e9838..248b5869e1 100644
--- a/xen/arch/arm/include/asm/vgic.h
+++ b/xen/arch/arm/include/asm/vgic.h
@@ -146,6 +146,10 @@ struct vgic_dist {
     int nr_spis; /* Number of SPIs */
     unsigned long *allocated_irqs; /* bitmap of IRQs allocated */
     struct vgic_irq_rank *shared_irqs;
+#ifdef CONFIG_GICV3_ESPI
+    struct vgic_irq_rank *ext_shared_irqs;
+    int nr_espis; /* Number of extended SPIs */
+#endif
     /*
      * SPIs are domain global, SGIs and PPIs are per-VCPU and stored in
      * struct arch_vcpu.
@@ -243,6 +247,14 @@ struct vgic_ops {
 /* Number of ranks of interrupt registers for a domain */
 #define DOMAIN_NR_RANKS(d) (((d)->arch.vgic.nr_spis+31)/32)
=20
+#ifdef CONFIG_GICV3_ESPI
+#define DOMAIN_NR_EXT_RANKS(d) (((d)->arch.vgic.nr_espis+31)/32)
+#define EXT_RANK_MIN (ESPI_BASE_INTID/32)
+#define EXT_RANK_MAX ((ESPI_MAX_INTID+31)/32)
+#define EXT_RANK_NUM2IDX(num) ((num)-EXT_RANK_MIN)
+#define EXT_RANK_IDX2NUM(idx) ((idx)+EXT_RANK_MIN)
+#endif
+
 #define vgic_lock(v)   spin_lock_irq(&(v)->domain->arch.vgic.lock)
 #define vgic_unlock(v) spin_unlock_irq(&(v)->domain->arch.vgic.lock)
=20
@@ -302,6 +314,12 @@ extern struct vgic_irq_rank *vgic_rank_offset(struct v=
cpu *v,
                                               unsigned int b,
                                               unsigned int n,
                                               unsigned int s);
+#ifdef CONFIG_GICV3_ESPI
+extern struct vgic_irq_rank *vgic_ext_rank_offset(struct vcpu *v,
+                                                  unsigned int b,
+                                                  unsigned int n,
+                                                  unsigned int s);
+#endif
 extern struct vgic_irq_rank *vgic_rank_irq(struct vcpu *v, unsigned int ir=
q);
 extern void vgic_disable_irqs(struct vcpu *v, uint32_t r, unsigned int n);
 extern void vgic_enable_irqs(struct vcpu *v, uint32_t r, unsigned int n);
diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
index 2bbf4d99aa..ae4119316f 100644
--- a/xen/arch/arm/vgic.c
+++ b/xen/arch/arm/vgic.c
@@ -27,9 +27,82 @@
=20
 bool vgic_is_valid_line(struct domain *d, unsigned int virq)
 {
+#ifdef CONFIG_GICV3_ESPI
+    if ( virq >=3D ESPI_BASE_INTID &&
+         virq < ESPI_IDX2INTID(d->arch.vgic.nr_espis) )
+        return true;
+#endif
+
     return virq < vgic_num_irqs(d);
 }
=20
+#ifdef CONFIG_GICV3_ESPI
+/*
+ * Since eSPI indexes start from 4096 and numbers from 1024 to
+ * 4095 are forbidden, we need to check both lower and upper
+ * limits for ranks.
+ */
+static inline bool is_valid_espi_rank(struct domain *d, unsigned int rank)
+{
+    return ( rank >=3D EXT_RANK_MIN &&
+             EXT_RANK_NUM2IDX(rank) < DOMAIN_NR_EXT_RANKS(d) );
+}
+
+static inline struct vgic_irq_rank *vgic_get_espi_rank(struct vcpu *v,
+                                                       unsigned int rank)
+{
+    return &v->domain->arch.vgic.ext_shared_irqs[EXT_RANK_NUM2IDX(rank)];
+}
+
+static inline bool vgic_reserve_espi_virq(struct domain *d, unsigned int v=
irq)
+{
+    return !test_and_set_bit(ESPI_INTID2IDX(virq) + vgic_num_irqs(d),
+                             d->arch.vgic.allocated_irqs);
+}
+
+static void arch_move_espis(struct vcpu *v)
+{
+    const cpumask_t *cpu_mask =3D cpumask_of(v->processor);
+    struct domain *d =3D v->domain;
+    struct pending_irq *p;
+    struct vcpu *v_target;
+    unsigned int i;
+
+    for ( i =3D ESPI_BASE_INTID;
+          i < EXT_RANK_IDX2NUM(d->arch.vgic.nr_espis); i++ )
+    {
+        v_target =3D vgic_get_target_vcpu(v, i);
+        p =3D irq_to_pending(v_target, i);
+
+        if ( v_target =3D=3D v && !test_bit(GIC_IRQ_GUEST_MIGRATING, &p->s=
tatus) )
+            irq_set_affinity(p->desc, cpu_mask);
+    }
+}
+#else
+static inline bool is_valid_espi_rank(struct domain *d, unsigned int rank)
+{
+    return false;
+}
+
+/*
+ * This function is stub and will not be called if CONFIG_GICV3_ESPI=3Dn,
+ * because in this case, is_valid_espi_rank will always return false.
+ */
+static inline struct vgic_irq_rank *vgic_get_espi_rank(struct vcpu *v,
+                                                       unsigned int rank)
+{
+    ASSERT_UNREACHABLE();
+    return NULL;
+}
+
+static inline bool vgic_reserve_espi_virq(struct domain *d, unsigned int v=
irq)
+{
+    return false;
+}
+
+static void arch_move_espis(struct vcpu *v) { }
+#endif
+
 static inline struct vgic_irq_rank *vgic_get_rank(struct vcpu *v,
                                                   unsigned int rank)
 {
@@ -37,6 +110,8 @@ static inline struct vgic_irq_rank *vgic_get_rank(struct=
 vcpu *v,
         return v->arch.vgic.private_irqs;
     else if ( rank <=3D DOMAIN_NR_RANKS(v->domain) )
         return &v->domain->arch.vgic.shared_irqs[rank - 1];
+    else if ( is_valid_espi_rank(v->domain, rank) )
+        return vgic_get_espi_rank(v, rank);
     else
         return NULL;
 }
@@ -117,6 +192,76 @@ int domain_vgic_register(struct domain *d, unsigned in=
t *mmio_count)
     return 0;
 }
=20
+#ifdef CONFIG_GICV3_ESPI
+/*
+ * The function behaviur is the same as for regular SPIs (vgic_rank_offset=
),
+ * but it operates with extended SPI ranks.
+ */
+struct vgic_irq_rank *vgic_ext_rank_offset(struct vcpu *v, unsigned int b,
+                                           unsigned int n, unsigned int s)
+{
+    unsigned int rank =3D REG_RANK_NR(b, (n >> s));
+
+    return vgic_get_rank(v, rank + EXT_RANK_MIN);
+}
+
+static unsigned int vgic_num_spi_lines(struct domain *d)
+{
+    return d->arch.vgic.nr_spis + d->arch.vgic.nr_espis;
+}
+
+static int init_vgic_espi(struct domain *d)
+{
+    unsigned int i, idx;
+
+    if ( d->arch.vgic.nr_espis =3D=3D 0 )
+        return 0;
+
+    d->arch.vgic.ext_shared_irqs =3D
+        xzalloc_array(struct vgic_irq_rank, DOMAIN_NR_EXT_RANKS(d));
+    if ( d->arch.vgic.ext_shared_irqs =3D=3D NULL )
+        return -ENOMEM;
+
+    for ( i =3D d->arch.vgic.nr_spis, idx =3D 0;
+          i < vgic_num_spi_lines(d); i++, idx++ )
+    {
+        vgic_init_pending_irq(&d->arch.vgic.pending_irqs[i],
+                              ESPI_IDX2INTID(idx));
+    }
+
+    for ( i =3D 0; i < DOMAIN_NR_EXT_RANKS(d); i++ )
+        vgic_rank_init(&d->arch.vgic.ext_shared_irqs[i], i, 0);
+
+    return 0;
+}
+
+struct pending_irq *espi_to_pending(struct domain *d, unsigned int irq)
+{
+    irq =3D ESPI_INTID2IDX(irq) + d->arch.vgic.nr_spis;
+    return &d->arch.vgic.pending_irqs[irq];
+}
+#else
+static unsigned int init_vgic_espi(struct domain *d)
+{
+    return 0;
+}
+
+static unsigned int vgic_num_spi_lines(struct domain *d)
+{
+    return d->arch.vgic.nr_spis;
+}
+
+struct pending_irq *espi_to_pending(struct domain *d, unsigned int irq)
+{
+    return NULL;
+}
+#endif
+
+static unsigned int vgic_num_alloc_irqs(struct domain *d)
+{
+    return vgic_num_spi_lines(d) + NR_LOCAL_IRQS;
+}
+
 int domain_vgic_init(struct domain *d, unsigned int nr_spis)
 {
     int i;
@@ -131,6 +276,35 @@ int domain_vgic_init(struct domain *d, unsigned int nr=
_spis)
      */
     nr_spis =3D ROUNDUP(nr_spis, 32);
=20
+#ifdef CONFIG_GICV3_ESPI
+    /*
+     * During domain creation, the dom0less DomUs code or toolstack specif=
ies
+     * the maximum INTID, which is defined in the domain config subtracted=
 by
+     * 32 to cover the local IRQs (please see the comment to VGIC_DEF_NR_S=
PIS).
+     * To compute the actual number of eSPI that will be usable for,
+     * add back 32.
+     */
+    if ( (nr_spis + 32) > ESPI_IDX2INTID(NR_ESPI_IRQS) )
+        return -EINVAL;
+
+    if ( (nr_spis + 32) >=3D ESPI_BASE_INTID )
+    {
+        d->arch.vgic.nr_espis =3D min(nr_spis - ESPI_BASE_INTID + 32, 1024=
U);
+        /* Verify if GIC HW can handle provided INTID */
+        if ( d->arch.vgic.nr_espis > gic_number_espis() )
+            return -EINVAL;
+        /*
+         * Set the maximum available number for regular
+         * SPI to pass the next check
+         */
+        nr_spis =3D VGIC_DEF_NR_SPIS;
+    } else
+    {
+        /* Domain will use the regular SPI range */
+        d->arch.vgic.nr_espis =3D 0;
+    }
+#endif
+
     /* Limit the number of virtual SPIs supported to (1020 - 32) =3D 988  =
*/
     if ( nr_spis > (1020 - NR_LOCAL_IRQS) )
         return -EINVAL;
@@ -145,7 +319,7 @@ int domain_vgic_init(struct domain *d, unsigned int nr_=
spis)
         return -ENOMEM;
=20
     d->arch.vgic.pending_irqs =3D
-        xzalloc_array(struct pending_irq, d->arch.vgic.nr_spis);
+        xzalloc_array(struct pending_irq, vgic_num_spi_lines(d));
     if ( d->arch.vgic.pending_irqs =3D=3D NULL )
         return -ENOMEM;
=20
@@ -156,12 +330,16 @@ int domain_vgic_init(struct domain *d, unsigned int n=
r_spis)
     for ( i =3D 0; i < DOMAIN_NR_RANKS(d); i++ )
         vgic_rank_init(&d->arch.vgic.shared_irqs[i], i + 1, 0);
=20
+    ret =3D init_vgic_espi(d);
+    if ( ret )
+        return ret;
+
     ret =3D d->arch.vgic.handler->domain_init(d);
     if ( ret )
         return ret;
=20
     d->arch.vgic.allocated_irqs =3D
-        xzalloc_array(unsigned long, BITS_TO_LONGS(vgic_num_irqs(d)));
+        xzalloc_array(unsigned long, BITS_TO_LONGS(vgic_num_alloc_irqs(d))=
);
     if ( !d->arch.vgic.allocated_irqs )
         return -ENOMEM;
=20
@@ -195,9 +373,27 @@ void domain_vgic_free(struct domain *d)
         }
     }
=20
+#ifdef CONFIG_GICV3_ESPI
+    for ( i =3D 0; i < d->arch.vgic.nr_espis; i++ )
+    {
+        struct pending_irq *p =3D spi_to_pending(d, ESPI_IDX2INTID(i));
+
+        if ( p->desc )
+        {
+            ret =3D release_guest_irq(d, p->irq);
+            if ( ret )
+                dprintk(XENLOG_G_WARNING, "d%u: Failed to release virq %u =
ret =3D %d\n",
+                        d->domain_id, p->irq, ret);
+        }
+    }
+#endif
+
     if ( d->arch.vgic.handler )
         d->arch.vgic.handler->domain_free(d);
     xfree(d->arch.vgic.shared_irqs);
+#ifdef CONFIG_GICV3_ESPI
+    xfree(d->arch.vgic.ext_shared_irqs);
+#endif
     xfree(d->arch.vgic.pending_irqs);
     xfree(d->arch.vgic.allocated_irqs);
 }
@@ -331,6 +527,8 @@ void arch_move_irqs(struct vcpu *v)
         if ( v_target =3D=3D v && !test_bit(GIC_IRQ_GUEST_MIGRATING, &p->s=
tatus) )
             irq_set_affinity(p->desc, cpu_mask);
     }
+
+    arch_move_espis(v);
 }
=20
 void vgic_disable_irqs(struct vcpu *v, uint32_t r, unsigned int n)
@@ -538,6 +736,8 @@ struct pending_irq *irq_to_pending(struct vcpu *v, unsi=
gned int irq)
         n =3D &v->arch.vgic.pending_irqs[irq];
     else if ( is_lpi(irq) )
         n =3D v->domain->arch.vgic.handler->lpi_to_pending(v->domain, irq)=
;
+    else if ( is_espi(irq) )
+        n =3D espi_to_pending(v->domain, irq);
     else
         n =3D &v->domain->arch.vgic.pending_irqs[irq - 32];
     return n;
@@ -547,6 +747,9 @@ struct pending_irq *spi_to_pending(struct domain *d, un=
signed int irq)
 {
     ASSERT(irq >=3D NR_LOCAL_IRQS);
=20
+    if ( is_espi(irq) )
+        return espi_to_pending(d, irq);
+
     return &d->arch.vgic.pending_irqs[irq - 32];
 }
=20
@@ -668,6 +871,9 @@ bool vgic_reserve_virq(struct domain *d, unsigned int v=
irq)
     if ( !vgic_is_valid_line(d, virq) )
         return false;
=20
+    if ( is_espi(virq) )
+        return vgic_reserve_espi_virq(d, virq);
+
     return !test_and_set_bit(virq, d->arch.vgic.allocated_irqs);
 }
=20
@@ -685,7 +891,7 @@ int vgic_allocate_virq(struct domain *d, bool spi)
     else
     {
         first =3D 32;
-        end =3D vgic_num_irqs(d);
+        end =3D vgic_num_alloc_irqs(d);
     }
=20
     /*
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 14:05:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 14:05:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094540.1449905 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uquJ7-0000hz-A1; Tue, 26 Aug 2025 14:05:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094540.1449905; Tue, 26 Aug 2025 14:05: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 1uquJ7-0000dk-2Y; Tue, 26 Aug 2025 14:05:53 +0000
Received: by outflank-mailman (input) for mailman id 1094540;
 Tue, 26 Aug 2025 14:05:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kqrf=3G=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1uquJ3-00072q-AZ
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 14:05:49 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c39b460e-8285-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 16:05:48 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by PAXPR03MB7887.eurprd03.prod.outlook.com (2603:10a6:102:216::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Tue, 26 Aug
 2025 14:05:40 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Tue, 26 Aug 2025
 14:05: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>
X-Inumbo-ID: c39b460e-8285-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=CDFJ5ysZWDTbrVdRxekgE4poOo5AEtx09MyZt9BilnipCuhYMijoUUZWe9k8mpEsHFMwpGO5VFzKZRMYq6OtfoTjbpjii2JFW76AmUM/vUjoVWiX50ru1RlKN4D2HLE+EQ+0g86HNHA7PHeatpOZZ2qcJxcEj3qIa+TQUn0X8xqmi7fEYcCX91dIfEuG5MOo8gPFVKA0IqQjrUZDNzdnoU7oNSd1OABS3649qnVfpi7LNLld0cWZFg3eURUvYcz3JwHTARJiazBRIfQCbei8SuxT5pVAUtIT9LyYHRa0/nDE6INPxODBj/iTEUMhWa5TfUx185KP+2ghNESs6SHtwA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LR0XpG1PYMsgTHsPiGadhzjQXzc9SBlRtpWVb1VKY+E=;
 b=qp1j7vm9CO4ZBhjUmT6MyaBP7d5cT/0G5qDA6jWsA7QCUXkh+JncSbjFDtFbD8iHefCl5JrQ5dnAQzWzn1/Wb7A/5qb8RVgu8OCpW230ZXOe+C6P2mah/SVsAgKndgLwbU1OY6fx2mnB9RzpW+VqV3sgnvHS86QYLl8VR5VdVudH7T04/PtJwDo2gk0iMC+jgWxSpCjSy5rwhva+nH2n/qRnY2/hHCewO8swtGyxtIRDP9I+/9HCy1EYwAkxrLjzav/Z6SIvt0Vmp4QI8tGe/zyLOTn7mqAiZBxPsw2zkuuCV3/69/OJ2sl0jfm9Bu0wLCtxzWM167HdcyjT2zdZFw==
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=LR0XpG1PYMsgTHsPiGadhzjQXzc9SBlRtpWVb1VKY+E=;
 b=JUWHJb+7daAPO5HMiRBU09pH9AepiUSH6wCpzWa5e+Xz37imDtLEXwi/0XxckbmHmanBE6eBaFic2twHwzBEi3kLgBGriKI7ZmgD33sl8W/3wVpyZjrdq1HNjs7xG2Co/r4OivCd43tdwT66WDv0eK4O3ybunHL8NWFqEmpOq+TBsRvIakAPWKvwnsYU93l1FYNkoCKjqxvm/aqedUQaPBpDaVu21vjZqa/p26ZgOJ3FRlvzAPj4UVfSutag8osDQ+BRNIfKtsyolm0W7wja7eiv01aAvPicOrKLKPTBu4Xkrt+zH6bCN1gtQ/ehRltKvHPjKqHrlpFpMq0Nh1fWpw==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "olekstysh@gmail.com" <olekstysh@gmail.com>, Leonid Komarianskyi
	<Leonid_Komarianskyi@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 v3 10/11] xen/arm: vgic-v3: add emulation of GICv3.1 eSPI
 registers
Thread-Topic: [PATCH v3 10/11] xen/arm: vgic-v3: add emulation of GICv3.1 eSPI
 registers
Thread-Index: AQHcFpKAKCVIbYC3hEGAz+VsUD3/gQ==
Date: Tue, 26 Aug 2025 14:05:39 +0000
Message-ID:
 <642a994d712a8c9df7aed9dec22124564db83c7e.1756216943.git.leonid_komarianskyi@epam.com>
References: <cover.1756216942.git.leonid_komarianskyi@epam.com>
In-Reply-To: <cover.1756216942.git.leonid_komarianskyi@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: GV2PR03MB8678:EE_|PAXPR03MB7887:EE_
x-ms-office365-filtering-correlation-id: 298f2d8c-2768-4a6f-36f5-08dde4a9a382
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?NgzIOYyppFOSycWg9NVwPzZx8MZVrjeAHRSqMXxjfcO34ROsqoOJRacW86?=
 =?iso-8859-1?Q?UQRRBC4czftupkD2e85FR0E4p9S9syWXKt4DCbTiY9sNZkGzHWnNSGjTxr?=
 =?iso-8859-1?Q?1iY+/XLrYP76r+0HHGK31pwfus9YM5ZlMJq7QbZJ1E3/XNwB2a0Fbts37o?=
 =?iso-8859-1?Q?vHnyEmC8sLZM0ywcfz991EWlN4pqQ05Dxjuq4T74vV7n+mHo0XzIMHFhpJ?=
 =?iso-8859-1?Q?p/IlZD3FE7qsrRVwRjXtNTJBXNUFWT0P98yLiPf2eSuA4sVrEPBiMwvRRS?=
 =?iso-8859-1?Q?uSzqYIuDLocXomtA/j8Ajs22kW1lVzxPjMLInJHiuZLN/UpII7+aIBbryz?=
 =?iso-8859-1?Q?nfGuvv6nEbzAb4njSvujzBPf9acVecvyqKX1RyICbtMbuEYIV0MWTxN+sJ?=
 =?iso-8859-1?Q?6ajiAGVbdFjSbLF0iRJQ2s0ZC97X4vEJemu7Lo37hcm5536ZOU6UiouXnT?=
 =?iso-8859-1?Q?Hc8DEkNmEyRMF1yLdjmQFV36bBxFewYt82vKIp4PqNHHjC2EThk0918p72?=
 =?iso-8859-1?Q?VO7xI6l1sI/KVv4VcdgyVn/y26Vppp+jbd2Y4FoSlAYzZqwCX3BCxIQbmw?=
 =?iso-8859-1?Q?7dzpMUK0JrNNwFNwbgeXetBoAKpjbFjc8DF4EA+xEjHoE44FRQixxGv4eE?=
 =?iso-8859-1?Q?RLkmuBNIO7JH1E0hpLKCtiqjmdXUhrc/b8FQ5JyyqIuiQuedBbYaYNz4Vh?=
 =?iso-8859-1?Q?9DdalQCO4HJfywXEDu4XdO2mH0IquSSbzlO2AH06iO9SqvueBsacrIjIOC?=
 =?iso-8859-1?Q?e1wXcdxaSHlCpx9qfE6AasrLrMTggPghZipc6yV1nGr35Y0z3O5cy45w5W?=
 =?iso-8859-1?Q?Ts3TsUUeVEADl0ZG6Ob8SVa5H4NAOt4Zv34BPu/9/dcfbf5jZcAym+woIB?=
 =?iso-8859-1?Q?X52oy6oxics1yodGeEa7dnM323dlgdz+UBosfdmE0Nr/eztOh1f54EbM2B?=
 =?iso-8859-1?Q?oQORWr7ynWCYL6AcrOm2G9HnPnbeP/S43BSANyC7cAfAuixe6DlMrha4a1?=
 =?iso-8859-1?Q?uI9zBgUnkdqMbCoGUW6Ds4yFcuzjwMx4BX7TUOciF4sXxVp+qFSGxoUR+3?=
 =?iso-8859-1?Q?azZsA7aQuvoE4emSLdbyDw/DUr1WayTxgxryeffbxnxhu0NHOkUHL4uQA5?=
 =?iso-8859-1?Q?gU2Hr4vPq1Ie2qac3hL9RHrdhMxoCn4D3hv/eCqB45+XVA1st0Y+b2TG5J?=
 =?iso-8859-1?Q?T++lP+mUuT2ZD5W4G4UDLqBNBuBgPsTc1J/ABOgVYq8SmJ6b5usU2ybsdh?=
 =?iso-8859-1?Q?AJvTRdhucGoMI3aku594jXx7gqq4nxJo6tkx3WCp8vOYHRbuzYP3GT3oyS?=
 =?iso-8859-1?Q?F9jbjDBJ6Rd3NoCC56tHtgf+6VpTpgnQSzNRWewLlK0sqYvQhHguU/MFGs?=
 =?iso-8859-1?Q?AP5bFKMqgNIPMW5u2WxPYa8KB0r+zHlCaHCtXvXOe5udfry1kexgUW0h2V?=
 =?iso-8859-1?Q?Uor87hpzVE2qERYjlvvzTj4508E/+pCi1+wSmmuHO/rjtmnloLHIOhqim4?=
 =?iso-8859-1?Q?Rq/7oRfkyPKmymrXXQx02LY2FmiVvDQ/TFKduWFhabTg=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?TU7tWu0uP+Pv14FAAgiFVdNu21KRjaqa0Wi1SUjFxkItPeAHzzSuiyreBL?=
 =?iso-8859-1?Q?QXKB1R1QIMskCPj/KHpDeX8xmpt4/X772eVhxrRdDWsYCtU3IIlzrAnEkg?=
 =?iso-8859-1?Q?Eg4/YipgSf8NYfvSRNNzo+IOyY/4SLJNVUK15162m3IkApl2+yp+Axs7r2?=
 =?iso-8859-1?Q?3n0hb2JT+HfMAad2CoYE0wrruKO78kGgnROw9RJ0urzB3KTuDZa+uKBK8O?=
 =?iso-8859-1?Q?JZea2gy2+3Zts0h//cM6XzxThW+nlEdrk3e8EQilncGAT4pPmlvzxQfLII?=
 =?iso-8859-1?Q?XWQ6davxYWc1vByDaC7vKVEGJq8yteEzIVpaQL8maLOq6Ff5KNbg4fqQZ9?=
 =?iso-8859-1?Q?UIQN8qM/6c4F0v1AQNDJI9ci/CoGso+WQE2SL0ru12FIowfRJ9VNySc6+3?=
 =?iso-8859-1?Q?QW/QyLwbvFtIQoSeoN2QKJEz3BywuDPfsxyWOPqUwk7HoQyrWF1ZKFxA1S?=
 =?iso-8859-1?Q?FBXABDCZkiVjO/jAz5KOeCGGBXtHlBnkhycEOxollaA+Ug1SjnuZUNP3gq?=
 =?iso-8859-1?Q?XVwdgRTkEXm/fGDdlBL+JgNm2VNU11Lv7PE1d4CPdcSQWmya8+PsA+BElZ?=
 =?iso-8859-1?Q?nKDgfk0tgyEsX/Udz2hrsT2YBz+B4ynkuzsWAZYCBsaRpV8YLZK+hBFCPt?=
 =?iso-8859-1?Q?o/VfFeViHFXGL2qPqmaDbLW5eO3pZgX1Euv0E7fXO7//8YUQfTCvtjEax5?=
 =?iso-8859-1?Q?mE9u71sHI4Q7PF+4j8RpBWxPUow5qTT3mCI1PxoyKdWzzchW8OSMGNtTem?=
 =?iso-8859-1?Q?Ra1VUKrZ8VfmytP8VmIi6a74X9uGMUp2Cz5vlfd+NBux6SehyLR8XxI+vf?=
 =?iso-8859-1?Q?YpWcpgEOLIRs3CyimGB6j4WyjtOpYrBJ+QkiT9Nqf0zKnvyUFYvA/p6gTj?=
 =?iso-8859-1?Q?ZLjFrQZNoRqpVOUrLdXojcHbap4Y3eGkAUODw2AuvYgvo7yQYpu7s71976?=
 =?iso-8859-1?Q?Ycm6zJFlF4mlIWo7j08OEFjXUSpSzeGFDjFNZ0WgHnP4saAAunweo697Ut?=
 =?iso-8859-1?Q?yMSOnE5UTwqeOfRDeLltkwV2wohGRzEJaVJ7jyD8dgb/k4XjWYuUOQzFXy?=
 =?iso-8859-1?Q?KLuzzMCd6oJchzQHfmirqiK2osWtbb7c2v8ZAaz/+s3rie//XK8CtFQLG/?=
 =?iso-8859-1?Q?jxI+NQPyh5WDMoXsvYb4n9+i0X2nRousSTVqTGCSL0eMliVz1NrHTSgaAo?=
 =?iso-8859-1?Q?JDGqY5a9u2l7tjQMt0CcWHB/OxJwLqS5tTHnp5DgbbT3EAP9o1UO/Tnk4X?=
 =?iso-8859-1?Q?SLB7EKd3Ss0m1nYafhd2cGAN0wwPDmdU/7SdL6i4uPRuqNSCmDuzK2w3U6?=
 =?iso-8859-1?Q?lAUMV6HYSNHRwmbKbB+WvcsBkDSqUeedxoDtTK1TF5NQ4j6bRD2M1UkmGt?=
 =?iso-8859-1?Q?TcBws/U98s73wTmOeqA2dRtIGXbiF31NE+v1FwpBSIx+aFsYf98q9SwOGn?=
 =?iso-8859-1?Q?/XVnSAG6llfLSA+sXqg6/RJ1aY7soz7MS+o0g8iH9EsoM0Rdhhfm+EEF8N?=
 =?iso-8859-1?Q?LYiK1Ls+h5Zpjq5sMbju643Chc/4i+oP+i1i0iPIIM/KDRXsSaB0kB4Fsy?=
 =?iso-8859-1?Q?p0dZz+9AG4VHc8gokWy6rnSyALwMfz+JaTEBM/ehy7h8XGPKQoZgoJsV33?=
 =?iso-8859-1?Q?BkS1/hxM5aQM85ktdAmioZbe6UWCAGzFQOihcs1PT8JWiKBqS6iq0BoZp9?=
 =?iso-8859-1?Q?xESWKHkExFvEIceUM6w=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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 298f2d8c-2768-4a6f-36f5-08dde4a9a382
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Aug 2025 14:05:39.3963
 (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: rxl44sUUgLOMMYzHbtWmRXNGJiMa0iq5FIL6gs5vKZ8oLNkvsoDZWHO0EsIl1XS/qyvyPEKmcMaK+djvuSrkVC1FyaLOeyy2euj6YujHcaU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR03MB7887

Implemented support for GICv3.1 extended SPI registers for vGICv3,
allowing the emulation of eSPI-specific behavior for guest domains.
The implementation includes read and write emulation for eSPI-related
registers (e.g., GICD_ISENABLERnE, GICD_IROUTERnE, and others),
following a similar approach to the handling of regular SPIs.

The eSPI registers, previously located in reserved address ranges,
are now adjusted to support MMIO read and write operations correctly
when CONFIG_GICV3_ESPI is enabled.

The availability of eSPIs and the number of emulated extended SPIs
for guest domains is reported by setting the appropriate bits in the
GICD_TYPER register, based on the number of eSPIs requested by the
domain and supported by the hardware. In cases where the configuration
option is disabled, the hardware does not support eSPIs, or the domain
does not request such interrupts, the functionality remains unchanged.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>

---
Changes in V2:
- add missing rank index conversion for pending and inflight irqs

Changes in V3:
- changed vgic_store_irouter parameters - instead of offset virq is
  used, to remove the additional bool espi parameter and simplify
  checks. Also, adjusted parameters for regular SPI. Since the offset
  parameter was used only for calculating virq number and then reused for
  finding rank offset, it will not affect functionality.
- fixed formatting for goto lables - added newlines after condition
- fixed logs for GICD_ISACTIVERnE and GICD_ICACTIVERnE handlers
- removed #ifdefs in 2 places where they were adjacent and could be merged
---
 xen/arch/arm/vgic-v3.c | 275 +++++++++++++++++++++++++++++++++++++++--
 1 file changed, 266 insertions(+), 9 deletions(-)

diff --git a/xen/arch/arm/vgic-v3.c b/xen/arch/arm/vgic-v3.c
index 4369c55177..56c539bb1b 100644
--- a/xen/arch/arm/vgic-v3.c
+++ b/xen/arch/arm/vgic-v3.c
@@ -111,13 +111,10 @@ static uint64_t vgic_fetch_irouter(struct vgic_irq_ra=
nk *rank,
  * Note the offset will be aligned to the appropriate boundary.
  */
 static void vgic_store_irouter(struct domain *d, struct vgic_irq_rank *ran=
k,
-                               unsigned int offset, uint64_t irouter)
+                               unsigned int virq, uint64_t irouter)
 {
     struct vcpu *new_vcpu, *old_vcpu;
-    unsigned int virq;
-
-    /* There is 1 vIRQ per IROUTER */
-    virq =3D offset / NR_BYTES_PER_IROUTER;
+    unsigned int offset;
=20
     /*
      * The IROUTER0-31, used for SGIs/PPIs, are reserved and should
@@ -685,6 +682,9 @@ static int __vgic_v3_distr_common_mmio_read(const char =
*name, struct vcpu *v,
     {
     case VRANGE32(GICD_IGROUPR, GICD_IGROUPRN):
     case VRANGE32(GICD_IGRPMODR, GICD_IGRPMODRN):
+#ifdef CONFIG_GICV3_ESPI
+    case VRANGE32(GICD_IGROUPRnE, GICD_IGROUPRnEN):
+#endif
         /* We do not implement security extensions for guests, read zero *=
/
         if ( dabt.size !=3D DABT_WORD ) goto bad_width;
         goto read_as_zero;
@@ -710,11 +710,19 @@ static int __vgic_v3_distr_common_mmio_read(const cha=
r *name, struct vcpu *v,
     /* Read the pending status of an IRQ via GICD/GICR is not supported */
     case VRANGE32(GICD_ISPENDR, GICD_ISPENDRN):
     case VRANGE32(GICD_ICPENDR, GICD_ICPENDRN):
+#ifdef CONFIG_GICV3_ESPI
+    case VRANGE32(GICD_ISPENDRnE, GICD_ISPENDRnEN):
+    case VRANGE32(GICD_ICPENDRnE, GICD_ICPENDRnEN):
+#endif
         goto read_as_zero;
=20
     /* Read the active status of an IRQ via GICD/GICR is not supported */
     case VRANGE32(GICD_ISACTIVER, GICD_ISACTIVERN):
     case VRANGE32(GICD_ICACTIVER, GICD_ICACTIVERN):
+#ifdef CONFIG_GICV3_ESPI
+    case VRANGE32(GICD_ISACTIVERnE, GICD_ISACTIVERnEN):
+    case VRANGE32(GICD_ICACTIVERnE, GICD_ICACTIVERnEN):
+#endif
         goto read_as_zero;
=20
     case VRANGE32(GICD_IPRIORITYR, GICD_IPRIORITYRN):
@@ -752,6 +760,69 @@ static int __vgic_v3_distr_common_mmio_read(const char=
 *name, struct vcpu *v,
         return 1;
     }
=20
+#ifdef CONFIG_GICV3_ESPI
+    case VRANGE32(GICD_ISENABLERnE, GICD_ISENABLERnEN):
+        if ( dabt.size !=3D DABT_WORD )
+            goto bad_width;
+        rank =3D vgic_ext_rank_offset(v, 1, reg - GICD_ISENABLERnE, DABT_W=
ORD);
+        if ( rank =3D=3D NULL )
+            goto read_as_zero;
+        vgic_lock_rank(v, rank, flags);
+        *r =3D vreg_reg32_extract(rank->ienable, info);
+        vgic_unlock_rank(v, rank, flags);
+        return 1;
+
+    case VRANGE32(GICD_ICENABLERnE, GICD_ICENABLERnEN):
+        if ( dabt.size !=3D DABT_WORD )
+            goto bad_width;
+        rank =3D vgic_ext_rank_offset(v, 1, reg - GICD_ICENABLERnE, DABT_W=
ORD);
+        if ( rank =3D=3D NULL )
+            goto read_as_zero;
+        vgic_lock_rank(v, rank, flags);
+        *r =3D vreg_reg32_extract(rank->ienable, info);
+        vgic_unlock_rank(v, rank, flags);
+        return 1;
+
+    case VRANGE32(GICD_IPRIORITYRnE, GICD_IPRIORITYRnEN):
+    {
+        uint32_t ipriorityr;
+        uint8_t rank_index;
+
+        if ( dabt.size !=3D DABT_BYTE && dabt.size !=3D DABT_WORD )
+            goto bad_width;
+        rank =3D vgic_ext_rank_offset(v, 8, reg - GICD_IPRIORITYRnE, DABT_=
WORD);
+        if ( rank =3D=3D NULL )
+            goto read_as_zero;
+        rank_index =3D REG_RANK_INDEX(8, reg - GICD_IPRIORITYRnE, DABT_WOR=
D);
+
+        vgic_lock_rank(v, rank, flags);
+        ipriorityr =3D ACCESS_ONCE(rank->ipriorityr[rank_index]);
+        vgic_unlock_rank(v, rank, flags);
+
+        *r =3D vreg_reg32_extract(ipriorityr, info);
+
+        return 1;
+    }
+
+    case VRANGE32(GICD_ICFGRnE, GICD_ICFGRnEN):
+    {
+        uint32_t icfgr;
+
+        if ( dabt.size !=3D DABT_WORD )
+            goto bad_width;
+        rank =3D vgic_ext_rank_offset(v, 2, reg - GICD_ICFGRnE, DABT_WORD)=
;
+        if ( rank =3D=3D NULL )
+            goto read_as_zero;
+        vgic_lock_rank(v, rank, flags);
+        icfgr =3D rank->icfg[REG_RANK_INDEX(2, reg - GICD_ICFGRnE, DABT_WO=
RD)];
+        vgic_unlock_rank(v, rank, flags);
+
+        *r =3D vreg_reg32_extract(icfgr, info);
+
+        return 1;
+    }
+#endif
+
     default:
         printk(XENLOG_G_ERR
                "%pv: %s: unhandled read r%d offset %#08x\n",
@@ -782,6 +853,9 @@ static int __vgic_v3_distr_common_mmio_write(const char=
 *name, struct vcpu *v,
     {
     case VRANGE32(GICD_IGROUPR, GICD_IGROUPRN):
     case VRANGE32(GICD_IGRPMODR, GICD_IGRPMODRN):
+#ifdef CONFIG_GICV3_ESPI
+    case VRANGE32(GICD_IGROUPRnE, GICD_IGROUPRnEN):
+#endif
         /* We do not implement security extensions for guests, write ignor=
e */
         goto write_ignore_32;
=20
@@ -871,6 +945,99 @@ static int __vgic_v3_distr_common_mmio_write(const cha=
r *name, struct vcpu *v,
         vgic_unlock_rank(v, rank, flags);
         return 1;
=20
+#ifdef CONFIG_GICV3_ESPI
+    case VRANGE32(GICD_ISENABLERnE, GICD_ISENABLERnEN):
+        if ( dabt.size !=3D DABT_WORD )
+            goto bad_width;
+        rank =3D vgic_ext_rank_offset(v, 1, reg - GICD_ISENABLERnE, DABT_W=
ORD);
+        if ( rank =3D=3D NULL )
+            goto write_ignore;
+        vgic_lock_rank(v, rank, flags);
+        tr =3D rank->ienable;
+        vreg_reg32_setbits(&rank->ienable, r, info);
+        vgic_enable_irqs(v, (rank->ienable) & (~tr), EXT_RANK_IDX2NUM(rank=
->index));
+        vgic_unlock_rank(v, rank, flags);
+        return 1;
+
+    case VRANGE32(GICD_ICENABLERnE, GICD_ICENABLERnEN):
+        if ( dabt.size !=3D DABT_WORD )
+            goto bad_width;
+        rank =3D vgic_ext_rank_offset(v, 1, reg - GICD_ICENABLERnE, DABT_W=
ORD);
+        if ( rank =3D=3D NULL )
+            goto write_ignore;
+        vgic_lock_rank(v, rank, flags);
+        tr =3D rank->ienable;
+        vreg_reg32_clearbits(&rank->ienable, r, info);
+        vgic_disable_irqs(v, (~rank->ienable) & tr, EXT_RANK_IDX2NUM(rank-=
>index));
+        vgic_unlock_rank(v, rank, flags);
+        return 1;
+
+    case VRANGE32(GICD_ISPENDRnE, GICD_ISPENDRnEN):
+        if ( dabt.size !=3D DABT_WORD )
+            goto bad_width;
+        rank =3D vgic_ext_rank_offset(v, 1, reg - GICD_ISPENDRnE, DABT_WOR=
D);
+        if ( rank =3D=3D NULL )
+            goto write_ignore;
+
+        vgic_set_irqs_pending(v, r, EXT_RANK_IDX2NUM(rank->index));
+
+        return 1;
+
+    case VRANGE32(GICD_ICPENDRnE, GICD_ICPENDRnEN):
+        if ( dabt.size !=3D DABT_WORD )
+            goto bad_width;
+        rank =3D vgic_ext_rank_offset(v, 1, reg - GICD_ICPENDRnE, DABT_WOR=
D);
+        if ( rank =3D=3D NULL )
+            goto write_ignore;
+
+        vgic_check_inflight_irqs_pending(v, EXT_RANK_IDX2NUM(rank->index),=
 r);
+
+        goto write_ignore;
+    case VRANGE32(GICD_ISACTIVERnE, GICD_ISACTIVERnEN):
+        if ( dabt.size !=3D DABT_WORD )
+            goto bad_width;
+        printk(XENLOG_G_ERR
+               "%pv: %s: unhandled word write %#"PRIregister" to ISACTIVER=
%dE\n",
+               v, name, r, reg - GICD_ISACTIVERnE);
+        return 0;
+
+    case VRANGE32(GICD_ICACTIVERnE, GICD_ICACTIVERnEN):
+        printk(XENLOG_G_ERR
+               "%pv: %s: unhandled word write %#"PRIregister" to ICACTIVER=
%dE\n",
+               v, name, r, reg - GICD_ICACTIVER);
+        goto write_ignore_32;
+
+    case VRANGE32(GICD_IPRIORITYRnE, GICD_IPRIORITYRnEN):
+    {
+        uint32_t *ipriorityr, priority;
+
+        if ( dabt.size !=3D DABT_BYTE && dabt.size !=3D DABT_WORD )
+            goto bad_width;
+        rank =3D vgic_ext_rank_offset(v, 8, reg - GICD_IPRIORITYRnE, DABT_=
WORD);
+        if ( rank =3D=3D NULL ) goto write_ignore;
+        vgic_lock_rank(v, rank, flags);
+        ipriorityr =3D &rank->ipriorityr[REG_RANK_INDEX(8, reg - GICD_IPRI=
ORITYRnE,
+                                                      DABT_WORD)];
+        priority =3D ACCESS_ONCE(*ipriorityr);
+        vreg_reg32_update(&priority, r, info);
+        ACCESS_ONCE(*ipriorityr) =3D priority;
+        vgic_unlock_rank(v, rank, flags);
+        return 1;
+    }
+    case VRANGE32(GICD_ICFGRnE, GICD_ICFGRnEN):
+        if ( dabt.size !=3D DABT_WORD )
+            goto bad_width;
+        rank =3D vgic_ext_rank_offset(v, 2, reg - GICD_ICFGRnE, DABT_WORD)=
;
+        if ( rank =3D=3D NULL )
+            goto write_ignore;
+        vgic_lock_rank(v, rank, flags);
+        vreg_reg32_update(&rank->icfg[REG_RANK_INDEX(2, reg - GICD_ICFGRnE=
,
+                                                     DABT_WORD)],
+                          r, info);
+        vgic_unlock_rank(v, rank, flags);
+        return 1;
+#endif
+
     default:
         printk(XENLOG_G_ERR
                "%pv: %s: unhandled write r%d=3D%"PRIregister" offset %#08x=
\n",
@@ -1129,6 +1296,16 @@ static int vgic_v3_distr_mmio_read(struct vcpu *v, m=
mio_info_t *info,
             typer |=3D GICD_TYPE_LPIS;
=20
         typer |=3D (v->domain->arch.vgic.intid_bits - 1) << GICD_TYPE_ID_B=
ITS_SHIFT;
+#ifdef CONFIG_GICV3_ESPI
+        if ( v->domain->arch.vgic.nr_espis > 0 )
+        {
+            /* Set eSPI support bit for the domain */
+            typer |=3D GICD_TYPER_ESPI;
+            /* Set ESPI range bits */
+            typer |=3D (DIV_ROUND_UP(v->domain->arch.vgic.nr_espis, 32) - =
1)
+                       << GICD_TYPER_ESPI_RANGE_SHIFT;
+        }
+#endif
=20
         *r =3D vreg_reg32_extract(typer, info);
=20
@@ -1194,6 +1371,18 @@ static int vgic_v3_distr_mmio_read(struct vcpu *v, m=
mio_info_t *info,
     case VRANGE32(GICD_IPRIORITYR, GICD_IPRIORITYRN):
     case VRANGE32(GICD_ICFGR, GICD_ICFGRN):
     case VRANGE32(GICD_IGRPMODR, GICD_IGRPMODRN):
+
+#ifdef CONFIG_GICV3_ESPI
+    case VRANGE32(GICD_IGROUPRnE, GICD_IGROUPRnEN):
+    case VRANGE32(GICD_ISENABLERnE, GICD_ISENABLERnEN):
+    case VRANGE32(GICD_ICENABLERnE, GICD_ICENABLERnEN):
+    case VRANGE32(GICD_ISPENDRnE, GICD_ISPENDRnEN):
+    case VRANGE32(GICD_ICPENDRnE, GICD_ICPENDRnEN):
+    case VRANGE32(GICD_ISACTIVERnE, GICD_ISACTIVERnEN):
+    case VRANGE32(GICD_ICACTIVERnE, GICD_ICACTIVERnEN):
+    case VRANGE32(GICD_IPRIORITYRnE, GICD_IPRIORITYRnEN):
+    case VRANGE32(GICD_ICFGRnE, GICD_ICFGRnEN):
+#endif
         /*
          * Above all register are common with GICR and GICD
          * Manage in common
@@ -1216,7 +1405,11 @@ static int vgic_v3_distr_mmio_read(struct vcpu *v, m=
mio_info_t *info,
         /* Replaced with GICR_ISPENDR0. So ignore write */
         goto read_as_zero_32;
=20
+#ifdef CONFIG_GICV3_ESPI
+    case VRANGE32(0x3100, 0x60FC):
+#else
     case VRANGE32(0x0F30, 0x60FC):
+#endif
         goto read_reserved;
=20
     case VRANGE64(GICD_IROUTER32, GICD_IROUTER1019):
@@ -1235,8 +1428,30 @@ static int vgic_v3_distr_mmio_read(struct vcpu *v, m=
mio_info_t *info,
=20
         return 1;
     }
+#ifdef CONFIG_GICV3_ESPI
+    case VRANGE64(GICD_IROUTERnE, GICD_IROUTERnEN):
+    {
+        uint64_t irouter;
+
+        if ( !vgic_reg64_check_access(dabt) )
+            goto bad_width;
+        rank =3D vgic_ext_rank_offset(v, 64, gicd_reg - GICD_IROUTERnE,
+                                DABT_DOUBLE_WORD);
+        if ( rank =3D=3D NULL )
+            goto read_as_zero;
+        vgic_lock_rank(v, rank, flags);
+        irouter =3D vgic_fetch_irouter(rank, gicd_reg - GICD_IROUTERnE);
+        vgic_unlock_rank(v, rank, flags);
=20
+        *r =3D vreg_reg64_extract(irouter, info);
+
+        return 1;
+    }
+
+    case VRANGE32(0xA004, 0xBFFC):
+#else
     case VRANGE32(0x7FE0, 0xBFFC):
+#endif
         goto read_reserved;
=20
     case VRANGE32(0xC000, 0xFFCC):
@@ -1382,6 +1597,18 @@ static int vgic_v3_distr_mmio_write(struct vcpu *v, =
mmio_info_t *info,
     case VRANGE32(GICD_IPRIORITYR, GICD_IPRIORITYRN):
     case VRANGE32(GICD_ICFGR, GICD_ICFGRN):
     case VRANGE32(GICD_IGRPMODR, GICD_IGRPMODRN):
+
+#ifdef CONFIG_GICV3_ESPI
+    case VRANGE32(GICD_IGROUPRnE, GICD_IGROUPRnEN):
+    case VRANGE32(GICD_ISENABLERnE, GICD_ISENABLERnEN):
+    case VRANGE32(GICD_ICENABLERnE, GICD_ICENABLERnEN):
+    case VRANGE32(GICD_ISPENDRnE, GICD_ISPENDRnEN):
+    case VRANGE32(GICD_ICPENDRnE, GICD_ICPENDRnEN):
+    case VRANGE32(GICD_ISACTIVERnE, GICD_ISACTIVERnEN):
+    case VRANGE32(GICD_ICACTIVERnE, GICD_ICACTIVERnEN):
+    case VRANGE32(GICD_IPRIORITYRnE, GICD_IPRIORITYRnEN):
+    case VRANGE32(GICD_ICFGRnE, GICD_ICFGRnEN):
+#endif
         /* Above registers are common with GICR and GICD
          * Manage in common */
         return __vgic_v3_distr_common_mmio_write("vGICD", v, info,
@@ -1405,26 +1632,56 @@ static int vgic_v3_distr_mmio_write(struct vcpu *v,=
 mmio_info_t *info,
         if ( dabt.size !=3D DABT_WORD ) goto bad_width;
         return 0;
=20
+#ifdef CONFIG_GICV3_ESPI
+    case VRANGE32(0x3100, 0x60FC):
+#else
     case VRANGE32(0x0F30, 0x60FC):
+#endif
         goto write_reserved;
=20
     case VRANGE64(GICD_IROUTER32, GICD_IROUTER1019):
     {
         uint64_t irouter;
+        unsigned int offset, virq;
=20
         if ( !vgic_reg64_check_access(dabt) ) goto bad_width;
-        rank =3D vgic_rank_offset(v, 64, gicd_reg - GICD_IROUTER,
-                                DABT_DOUBLE_WORD);
+        offset =3D gicd_reg - GICD_IROUTER;
+        rank =3D vgic_rank_offset(v, 64, offset, DABT_DOUBLE_WORD);
         if ( rank =3D=3D NULL ) goto write_ignore;
         vgic_lock_rank(v, rank, flags);
-        irouter =3D vgic_fetch_irouter(rank, gicd_reg - GICD_IROUTER);
+        irouter =3D vgic_fetch_irouter(rank, offset);
+        vreg_reg64_update(&irouter, r, info);
+        virq =3D offset / NR_BYTES_PER_IROUTER;
+        vgic_store_irouter(v->domain, rank, virq, irouter);
+        vgic_unlock_rank(v, rank, flags);
+        return 1;
+    }
+
+#ifdef CONFIG_GICV3_ESPI
+    case VRANGE64(GICD_IROUTERnE, GICD_IROUTERnEN):
+    {
+        uint64_t irouter;
+        unsigned int offset, virq;
+
+        if ( !vgic_reg64_check_access(dabt) )
+            goto bad_width;
+        offset =3D gicd_reg - GICD_IROUTERnE;
+        rank =3D vgic_ext_rank_offset(v, 64, offset, DABT_DOUBLE_WORD);
+        if ( rank =3D=3D NULL )
+            goto write_ignore;
+        vgic_lock_rank(v, rank, flags);
+        irouter =3D vgic_fetch_irouter(rank, offset);
         vreg_reg64_update(&irouter, r, info);
-        vgic_store_irouter(v->domain, rank, gicd_reg - GICD_IROUTER, irout=
er);
+        virq =3D ESPI_IDX2INTID(offset / NR_BYTES_PER_IROUTER);
+        vgic_store_irouter(v->domain, rank, virq, irouter);
         vgic_unlock_rank(v, rank, flags);
         return 1;
     }
=20
+    case VRANGE32(0xA004, 0xBFFC):
+#else
     case VRANGE32(0x7FE0, 0xBFFC):
+#endif
         goto write_reserved;
=20
     case VRANGE32(0xC000, 0xFFCC):
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 14:05:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 14:05:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094541.1449914 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uquJ8-0000ux-8O; Tue, 26 Aug 2025 14:05:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094541.1449914; Tue, 26 Aug 2025 14:05: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 1uquJ7-0000t4-UV; Tue, 26 Aug 2025 14:05:53 +0000
Received: by outflank-mailman (input) for mailman id 1094541;
 Tue, 26 Aug 2025 14:05:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kqrf=3G=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1uquJ4-0007NC-1o
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 14:05:50 +0000
Received: from GVXPR05CU001.outbound.protection.outlook.com
 (mail-swedencentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c202::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c4591b08-8285-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 16:05:48 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by PAXPR03MB7887.eurprd03.prod.outlook.com (2603:10a6:102:216::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Tue, 26 Aug
 2025 14:05:40 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Tue, 26 Aug 2025
 14:05: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>
X-Inumbo-ID: c4591b08-8285-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lzo4aWxaUGhxVolxVQAnEwC/JrftSL13Q1NESg2eUNg8CooFfyuHaYPmdyhEm038t6FJO6QJBIgfuKqMeOI6P3+97R3J6eTWE/GKQ3cVy3TSviz98hiMpmQFIPOr3LlpS+y/80M4AuoLJeeMaSZ7MnbYVlDgLwBPhl2TUMCT/F9uZHf6DhXH5OGW4baK1kEp0AuHHgQpXqM2Ex/hGW0EVy44BO5nnCSUlLRmu483ZqH8oKJYfwRToQ3AkZXKtIpZsHXfd31fwWIs/gRN9TLw95JxBClCtQkBv0Jp3jL/cwS8kfclkceX6YjSa2iwt1poP3M8xP3SUamCdlhc6qE0tA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=W6MIjZW1CBjFKc4mIxF2/dfXj2CJ3BIGOeBCmG7IwAA=;
 b=uK/UYfL/maBMBLuy61KM22CQPeYeKv2+YZJXQ8BlQctfkqPP8l1mEbIiom+o0LwyDnzNQ33/AdHlfuyN6+5Z1dOaTX6U1UMpHKwXN+SO2sd10NGa1UbN2U4/UMyLGfvfXBEn9afrXvZXlgZtuiw0lyk/TjJytgeDVulheTvYsMTir03oDSddyblgrrXjqhX/jZ2iRqpXmAlEyPvywn4DZ6X6MQi7jcy12DwxF9KEK6Z178V47LT9fMX7HCzHigf+lNN6Nu6KUcKE5B1IRxhMkes0PG4j88iA4spbrYw2yXdlp59Xo2xYCqmYClJ6D8qhFtydTsgqd2PucPq2dF2JfQ==
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=W6MIjZW1CBjFKc4mIxF2/dfXj2CJ3BIGOeBCmG7IwAA=;
 b=dMq7/BYEjAYr8bcctVqHAQhd+awoJfLMCTO8Z9RuxnWfEWkhCdd0UTdCnre2CRLWNLA13/jchcU7y9WfqdRrXBMjFjtKXJFhCMkdvoNq/7K5D+D9eiwhJhy22UuU5+/de8kqhdmMkR0pMfyUtByfclXYiT9OhFopP3SsXXycTxf6pfr957iH2rkVTj5sKETMPZFjzxEUwVfQPMd+XwI7T4tfcKgftARFJ4ejOCAqFbIiv3tl9sSoz+O48l8AoCXZ/6F3zmK9LL6wIvlVivQLDjp8jkEx85diqedhGoUBDCC1tXoj3Mg65cN9F/F3MuFaLD7xBp+RcY0qxZuGC1JCsA==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "olekstysh@gmail.com" <olekstysh@gmail.com>, Leonid Komarianskyi
	<Leonid_Komarianskyi@epam.com>, Oleksii Kurochko
	<oleksii.kurochko@gmail.com>, Community Manager
	<community.manager@xenproject.org>
Subject: [PATCH v3 11/11] CHANGELOG.md: add mention of GICv3.1 eSPI support
Thread-Topic: [PATCH v3 11/11] CHANGELOG.md: add mention of GICv3.1 eSPI
 support
Thread-Index: AQHcFpKAJEYb0CN0HkuGQwymf9ybDQ==
Date: Tue, 26 Aug 2025 14:05:39 +0000
Message-ID:
 <9dc68c29751aeacf37b51d3bd345e87e9a0f0ccf.1756216943.git.leonid_komarianskyi@epam.com>
References: <cover.1756216942.git.leonid_komarianskyi@epam.com>
In-Reply-To: <cover.1756216942.git.leonid_komarianskyi@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: GV2PR03MB8678:EE_|PAXPR03MB7887:EE_
x-ms-office365-filtering-correlation-id: c1a27202-e1a8-46d1-4eb9-08dde4a9a3cb
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?b5NXHdIuGZ62PJ1RrfdqFNMoMk7V52jg50l67Q4PVTRO3KWpuLhMGTB5sy?=
 =?iso-8859-1?Q?SSX/ceibIjU/o27BufCRBiMNWU4hJ/zAnbtyml8ojSTwWFwah8dgRXAw9I?=
 =?iso-8859-1?Q?rQ+iFfyRGa0CxhOOPXh6joJrfpAj3Lkpr7TZdoUDzOpk3IFHawn3l0ZEfN?=
 =?iso-8859-1?Q?jxeIU66MN4wbeL8cOyiJgCoOi0TndlAxzJudWFczKPk7OBImrFij2N9cFf?=
 =?iso-8859-1?Q?AuL+9sMtt2b1T6dL88OpJNddDxyEq4r4uLPrrWJTpgoq7ote+3hgNBBfEx?=
 =?iso-8859-1?Q?JeZertfU1V3Xeh4pWvu/WxZ+tj37rieVd0BmCwWe8WI48WFSzGmnciAjKp?=
 =?iso-8859-1?Q?aZRJlu9mFgXPFKObRxygSMvVr/2Jg6RdhA6XP0G00CFS7wgeRCgqv9zXoI?=
 =?iso-8859-1?Q?7KFClWKPNrBwX0nJrwzLSey+17u5qoXgj2ZCtj1FLDS67zMOLkGjicq9Gb?=
 =?iso-8859-1?Q?gXpTU/gkZ33jUhCqDwb9gr8Hv789ZGwnkKQM95sTsDMttwG9LBu/Hp2Kt7?=
 =?iso-8859-1?Q?jpSvIppLt8UY0HG0uNrwwWJz50xNQMblWiKzv1PQCT5f1ex8Kmd9PyzNhr?=
 =?iso-8859-1?Q?DYSWPnmhoQ25elZOTnp2KKJ0hebSAUhbSBA6W90x0l2vuf1wD6xXp43mlw?=
 =?iso-8859-1?Q?PMWy36kJS8XZ7a4jffcTNl/QEOq3yodWg5NsxxFAq5cLShqWvb5b/2fqIf?=
 =?iso-8859-1?Q?Y99vGKuNz2+gLDinar2HtBnJRVIDL5sfMPdN1sZnaAfyVyqw1Mdpiku2SO?=
 =?iso-8859-1?Q?rlnrC2gB2eBdwzPBIEAV4b/cbRD6vhc5Ltalok5DteO3DYOLCvyWywkM8d?=
 =?iso-8859-1?Q?F5yskBdB5oL/4HV6+emjBMEcBs+rzuM/74aUGg6hR1ajsciqZtz/44C9Y1?=
 =?iso-8859-1?Q?I7Q9XwJLkuR0mH2rbLnCw2SsDlWj2XPYeUW95tmOOrzAN0yVrgZFauyk5w?=
 =?iso-8859-1?Q?9y5ZoEMfo/dWLsfR2yKl3AgPyFBlK5PM3pimrgeV0ZizteO2fBlBloYrYt?=
 =?iso-8859-1?Q?9amtes7fkFVeOKdGXlg3jGkf5O02sZCPHtHj2S2lmL2mr4EwWVzXUWsuwe?=
 =?iso-8859-1?Q?NF2zVdyZam+TmI9P2eA/5JTcDl+xamYDe0L7PiEDSdq4tFcy7hwUCgb5lM?=
 =?iso-8859-1?Q?fv552biq4pdiIIzYXsvffwpvJOK5RPi3V58yO+P1JfvEYywIo5E0voccK4?=
 =?iso-8859-1?Q?PriBdDFVKKvio26Qwrbvlp/v29y+f1MMeXLUFYcWu4qIdDBw9JfIqRtY+K?=
 =?iso-8859-1?Q?xQLUIha2EVsFlF/DT8Zm92bhCcIlXMq4NNr/A6KDbOaIOUO/8kFT9yK2a2?=
 =?iso-8859-1?Q?wUeK/6QcKhFI15GUm5E4Cf217MhIyhUoQCyQVL3jYTAhZvfmcK+VR3BDYN?=
 =?iso-8859-1?Q?7YRFJObZY3iqMF7gLGWL2Ozq+eowYB2nUqlBF6uFgch/3sSK0+Nlly0gZM?=
 =?iso-8859-1?Q?T2Z6c4FqsgVKfB73T0VdXDwrc1uxoD2Vgwl8Vz4upHXIQBro4Qvcnv/3bx?=
 =?iso-8859-1?Q?4=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?Pr1370XKvzkRRP1v5j6HXbX+Tv5fRaBglc27rtBBqJPyUY/rMvos2afomT?=
 =?iso-8859-1?Q?7KG47BMJOCitdfBFSqp2BxR2+VZNfwYm1xPkYpdWd64oqGqBhtYayZMkxU?=
 =?iso-8859-1?Q?gegRsnEtQ+gMjOH/LHhTvC1sTIqLZQhFliI/t51MoLRMN4cN1/Wh4IS8Vx?=
 =?iso-8859-1?Q?uiVnPsh5MI2lF4YpEUlborPR5ZpZSoWBRUWfsVLDxzpMTCOBC5eXa+BGwH?=
 =?iso-8859-1?Q?9TM7wd2xKIGGV/9g+p57rv2oyy8cNf6/akCv1kQB6aQzuDLn0ikOtGuT82?=
 =?iso-8859-1?Q?zQWIKxm3SKN4zkgxUL8f9U1+2uMoSBkVKBvaruEr+AMbumgoXcYiXR3UCB?=
 =?iso-8859-1?Q?i3X9qS4NSh+kEmBy41BEntHKX7dYtdwFkZOgqY0i5U+E3oqtCRyHIOTTdU?=
 =?iso-8859-1?Q?W8/21W61ZsY9OYfwiiUjBfzHQFCpYkzQbf8wBvV5TQPNDJzZPNsyjTj4PZ?=
 =?iso-8859-1?Q?BuclhiN5HfEyPrvm+NlLrelp8sHwZq5cLoF8PxKPfINXVrXB6UKA+fyp7G?=
 =?iso-8859-1?Q?jT2mZGn1/cCoWxuPB9KD3bGOYqW+wEw1Ym7TRfHt8/DcSqn/i4wnMt4zsS?=
 =?iso-8859-1?Q?BIlW7v1nqU1eOofWnTP0a3wku2qIxV0x8PTez2eNJAiw9HGp+srRIj1BTW?=
 =?iso-8859-1?Q?vyTzKAzQaU/0xKMfl+LLzHWjeKufwoA9+1QYk+lIyHXLghQpQpL9usL13X?=
 =?iso-8859-1?Q?ZH/oHRH03PrYMlBS4IsE2FZbZzzK+8PXAOPAKkPqxXQZMGd513aG7vCxXF?=
 =?iso-8859-1?Q?NqzM6vM686r8dNC6Be+GbcTfwkpIl7wU9e12EzK+kBLUYTTQizp5jgJjsh?=
 =?iso-8859-1?Q?OleMZhF12yvNq3BnIiCeeieWLhOaECRhOV4gIqImeNYX1uZB+wke24Fb46?=
 =?iso-8859-1?Q?7mvJVvfAuvr+0LnoggHtBbYixIdHSoTcnZr3k6AWRPIA3uP3Xn7zQ3cUjn?=
 =?iso-8859-1?Q?vmyvnucWNasGsmmVkq2PtvEDLYZs2DzroHvdMxsr6ovccFQ9NCqPTGqETH?=
 =?iso-8859-1?Q?PcDBNHTNjKpf8+7P2fhURQeJSx54OKFrG6QPNf1fKir+uATWQ66faGD7QU?=
 =?iso-8859-1?Q?0uLJnhrJmWzYbyqCziN8Nu7eujesFr62l1TDNN92F8AYAoBt6bePbgF85g?=
 =?iso-8859-1?Q?n9Q7ZBAhMEXa03itC+XMU5VxyQQp0eqZ8xRU34yAVB0gQMJu9Gdcsc3PlR?=
 =?iso-8859-1?Q?9maKvDUz6eXlyRomPOvzeSeJv7KqwBDWJYht5OYdjkYrVlN9QfTbMZuNrj?=
 =?iso-8859-1?Q?bzr3KIA/+/fthOA8MlBKqr+RQ54E5+u7L2RuvhVnRZdNX0OGsfz/iedNzt?=
 =?iso-8859-1?Q?pq2RmOoDiPUoRZ41lAT6ABEtWAn/5H+TFPtCmYGUJr/kmGuH6eYc1FWeo0?=
 =?iso-8859-1?Q?o9tNkkAKO08+oduOZTHjLcQ5Py32piFvplNULAwsjaypNObMWyUf6uIDAd?=
 =?iso-8859-1?Q?CWuIYBliVFT/Gi6DxXIljVe6gl7c7J5hd91muAN58W9eflqfrHgW+J63bE?=
 =?iso-8859-1?Q?CFRhw6J4JLO2HdHGP/TGTFun3rEGglS1U3PGlQeLaBP6RYQ9Ep/bxgtPTE?=
 =?iso-8859-1?Q?QvAV5smfovU8wp+b70aQdHsMeUl28SvEdmLrFf86I7W05GRcUXE1EzoD6A?=
 =?iso-8859-1?Q?GMeLv14q2mosHplnhBti1PunAlceacCGiC3h80UnOBGeetVtvWc6AvyXEJ?=
 =?iso-8859-1?Q?49vyOkYBgseZs6VwTlk=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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c1a27202-e1a8-46d1-4eb9-08dde4a9a3cb
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Aug 2025 14:05:39.7788
 (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: n8KsEt+hghwNj0IN3SCqvC8lVs0pFaLtNx8D78EE3sBzQWUPn4xsOZSG2ZgcnNEyMFHA1jwdE/3uxCq35CneJKgIYwA28hwijKRVhcQV/Ao=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR03MB7887

The GICv3.1 eSPI (Extended Shared Peripheral Interrupts) range is
already supported with CONFIG_GICV3_ESPI enabled, so this feature should
be mentioned in CHANGELOG.md.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>

---
Changes in V3:
- introduced this patch
---
 CHANGELOG.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5f31ca08fe..dc34d29d99 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -29,6 +29,7 @@ The format is based on [Keep a Changelog](https://keepach=
angelog.com/en/1.0.0/)
=20
  - On Arm:
     - Ability to enable stack protector
+    - GICv3.1 eSPI support
=20
 ### Removed
  - On x86:
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 14:42:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 14:42:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094688.1449935 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqusn-0002jk-K5; Tue, 26 Aug 2025 14:42:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094688.1449935; Tue, 26 Aug 2025 14:42: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 1uqusn-0002jd-GD; Tue, 26 Aug 2025 14:42:45 +0000
Received: by outflank-mailman (input) for mailman id 1094688;
 Tue, 26 Aug 2025 14:42:44 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1uqusm-0002jX-Ek
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 14:42:44 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1uqusl-007aYq-32;
 Tue, 26 Aug 2025 14:42:44 +0000
Received: from [2a01:e0a:1da:8420:b77:bd5:6e45:7633] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1uqusl-002P7A-2U;
 Tue, 26 Aug 2025 14:42: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Transfer-Encoding:
	Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date;
	bh=FFwFzAGGTgkMjBYygtxvyoA45XP8c1SVxiWRIFNMKYY=; b=aDl436IBhGmlSswbojK1/i1J7+
	cc56gUOTPoicPWRFSLmwRwnQEQaiQKxGyRowNrzjyZ9lvInvtYdI4VPpgr8Cr8T4DkHptwbbdTgoA
	+wl+/QS6vvF4kR+gPAoqjcatibYly4Lz/aRMCjUKl4qYH9LW0d56kGczyQP6ubdkKiEE=;
Date: Tue, 26 Aug 2025 16:42:42 +0200
From: Anthony PERARD <anthony@xenproject.org>
To: Petr =?utf-8?B?QmVuZcWh?= <w1benny@gmail.com>
Cc: xen-devel@lists.xenproject.org,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH v5 1/4] tools: add sizeof_field and endof_field macros
Message-ID: <aK3H4lNFN0BWjhqy@l14>
References: <cover.1755987697.git.w1benny@gmail.com>
 <8dd6b217fbde427407113fedabb70f54d12aed61.1755987697.git.w1benny@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <8dd6b217fbde427407113fedabb70f54d12aed61.1755987697.git.w1benny@gmail.com>

On Sat, Aug 23, 2025 at 10:26:49PM +0000, Petr BeneÅ¡ wrote:
> From: Petr BeneÅ¡ <w1benny@gmail.com>
> 
> * `sizeof_field` returns the size of a specific struct member
> * `endof_field` returns the offset to the end of the member within the struct
> 
> It will be useful in upcoming layout checks of SMBIOS structs.
> 
> Signed-off-by: Petr BeneÅ¡ <w1benny@gmail.com>

Acked-by: Anthony PERARD <anthony.perard@vates.tech>

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 14:48:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 14:48:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094698.1449945 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uquxo-0003Jl-6n; Tue, 26 Aug 2025 14:47:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094698.1449945; Tue, 26 Aug 2025 14:47: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 1uquxo-0003Je-3s; Tue, 26 Aug 2025 14:47:56 +0000
Received: by outflank-mailman (input) for mailman id 1094698;
 Tue, 26 Aug 2025 14:47:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=6Or/=3G=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1uquxm-0003JX-8k
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 14:47:54 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a4fff7d1-828b-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 16:47:53 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-45a1b004a31so43894905e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 26 Aug 2025 07:47:53 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3c7119c4200sm16453015f8f.53.2025.08.26.07.47.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 26 Aug 2025 07:47: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>
X-Inumbo-ID: a4fff7d1-828b-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756219672; x=1756824472; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=TrnhhXIbSz2xUUxxE43S3WDwnGU6xIjyhEbvvALbdEQ=;
        b=teGkklPmv/2f4NzR9TldTyjh5Bvnz3p1XxBsPdXRNdtBNEN6iA5JiyarLpoipoaqKU
         1vCXINIdnF/2pQnobnKiqdC0BDB3aQa/71cR3Q2rta31fYbA22r9YE7SRq1fmv6d5EnX
         jAZzKilgDMUrdFiXq8aSxdrwa1TiE8SsZWFAs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756219672; x=1756824472;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=TrnhhXIbSz2xUUxxE43S3WDwnGU6xIjyhEbvvALbdEQ=;
        b=lA0rMpHGPfHdreNd9wV4NgGrb1lkoNKcQB2tREpFz0lqVEJSKGrur5QWFbbpM+hSmV
         p0IKkiaRtsb0ERvABNTggojU36DQp52kel8bAjXPFDSUvJH9TB1VTsOUppx56YI9Eufw
         ObzSgmmr/B622bkLZWltkQO0rd8yx/EyGK0t2VuwEsRZfE2GajPBMcx36Qzcdq3s2kBB
         SX7YQv2DdEvboAAf1DF1h9RiQuRx8SBF1rmiCgi8QFzHUfj9MU0GVLCvRdUZdXEcq4/L
         RQLKI7WSx0aYbnYtEt+R4KFrObgnjGJ9RHa+B1reS1TZFKP22ekPNlB5AgHSVpFM1V9x
         Qn9A==
X-Forwarded-Encrypted: i=1; AJvYcCVsoGU4mT5TxZeAxp3IGLx+p5AVIX3OhkMRRX/v83h1akGrRZ8hQzGf6rcBpyfB82eoUofwMfKtWNk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwfmbPfPc4Hsjzf0sNuvN1vHUSzeXhRQXio/zCpyDSbShf1Dagt
	Ti+hEOdwfQZ5rD9cM/GZM91HG4fMJzlt42obWuwKzeMGV5RjeFh/1TqDFWoilf/g0VU=
X-Gm-Gg: ASbGnct1+OjB1ZeO2oUOSKQswo6/D5ao8oik2wBfOkebOONGJopd5OZBXCvRMdBUVlp
	eDHDedt/DPSsn9JPy3LVf7RRMjYh9UQHvBYqsG4NAAoSm4oaTTrc4m/VoBEqIurfk/5bsJ2bRg9
	4Z1sPXTYI2SRjybBbKF488pnJOrAAOoIS5fosf5OWdAXYYiwKGUM7kVlJzvWhdIJUEwbo6OmrdE
	KP7VmTy5qnjQumrXNMA/R/i4OrnPKBvHoBqeflHBMdpI7gN4ZfrHOHTf/5s0Y8sromEjsNZX4Ts
	L0h4a3i2n4/zqCozrWO4c3t0cwC1XelQuNp1BlCO9x7f3YkrFOMaLf6vSwdk82z53DC28nPKo6W
	h/4pu69LbM1gXHw0zbLt+nXLtagdVDcLI2SUUu3eKbM/7DIU3oFe0YDcrpzXCrZ8URXgFWOc=
X-Google-Smtp-Source: AGHT+IG/zoA3/JJPjJ5HbpDg9sLVVQH20QQf2tNggWn/naGVvfDeIswjUjsYVpfoyp0e9Tr86zqUDQ==
X-Received: by 2002:a05:600c:1c20:b0:458:c059:7d9c with SMTP id 5b1f17b1804b1-45b5d48ea24mr92009545e9.6.1756219672303;
        Tue, 26 Aug 2025 07:47:52 -0700 (PDT)
Date: Tue, 26 Aug 2025 16:47:50 +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: Jan Beulich <jbeulich@suse.com>,
	xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: MSI-X cleanup(?) issue with passthrough after domU restart
Message-ID: <aK3JFqFHMZgWHzy7@Mac.lan>
References: <aK0St0oUkJzR9lO0@mail-itl>
 <2aafbace-3aa2-4f58-8f6c-2815cd2315ad@suse.com>
 <aK1wSKTg5LcuzBDc@macbook.local>
 <aK2TLuB_yKlWjFgM@mail-itl>
 <aK28ubf5F3x-of3X@mail-itl>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <aK28ubf5F3x-of3X@mail-itl>

On Tue, Aug 26, 2025 at 03:55:05PM +0200, Marek Marczykowski-GÃ³recki wrote:
> On Tue, Aug 26, 2025 at 12:57:50PM +0200, Marek Marczykowski-GÃ³recki wrote:
> > On Tue, Aug 26, 2025 at 10:28:56AM +0200, Roger Pau MonnÃ© wrote:
> > > On Tue, Aug 26, 2025 at 08:16:56AM +0200, Jan Beulich wrote:
> > > > On 26.08.2025 03:49, Marek Marczykowski-GÃ³recki wrote:
> > > > > Hi,
> > > > > 
> > > > > I'm hitting an MSI-X issue after rebooting the domU. The symptoms are
> > > > > rather boring: on initial domU start the device (realtek eth card) works
> > > > > fine, but after domU restart, the link doesn't come up (there is no
> > > > > "Link is Up" message anymore). No errors from domU driver or Xen. I
> > > > > tracked it down to MSI-X - if I force INTx (via pci=nomsi on domU
> > > > > cmdline) it works fine. Convincing the driver to poll instead of waiting
> > > > > for an interrupt also workarounds the issue.
> > > > > 
> > > > > I noticed also some interrupts are not cleaned up on restart. The list
> > > > > of MSIs in 'Q' debug key output grows:
> > > > > 
> > > > >     (XEN) 0000:03:00.0 - d22 - node -1  - MSIs < 41 42 43 44 45 46 47 >
> > > > >     restart sys-net domU
> > > > >     (XEN) 0000:03:00.0 - d24 - node -1  - MSIs < 41 42 43 44 45 46 47 48 >
> > > > >     restart sys-net domU
> > > > >     (XEN) 0000:03:00.0 - d26 - node -1  - MSIs < 41 42 43 44 45 46 47 48 49 >
> > > > > 
> > > > > and 'M' output is:
> > > > > 
> > > > >     (XEN)  MSI-X   41 vec=b1 lowest  edge   assert  log lowest dest=00000001 mask=1/H /1
> > > > >     (XEN)  MSI-X   42 vec=b9 lowest  edge   assert  log lowest dest=00000004 mask=1/HG/1
> > > > >     (XEN)  MSI-X   43 vec=c1 lowest  edge   assert  log lowest dest=00000010 mask=1/HG/1
> > > > >     (XEN)  MSI-X   44 vec=d9 lowest  edge   assert  log lowest dest=00000001 mask=1/HG/1
> > > > >     (XEN)  MSI-X   45 vec=e1 lowest  edge   assert  log lowest dest=00000001 mask=1/HG/1
> > > > >     (XEN)  MSI-X   46 vec=e9 lowest  edge   assert  log lowest dest=00000040 mask=1/HG/1
> > > > >     (XEN)  MSI-X   47 vec=32 lowest  edge   assert  log lowest dest=00000004 mask=1/HG/1
> > > > >     (XEN)  MSI-X   48 vec=3a lowest  edge   assert  log lowest dest=00000040 mask=1/HG/1
> > > > >     (XEN)  MSI-X   49 vec=42 lowest  edge   assert  log lowest dest=00000010 mask=1/ G/1
> > > > > 
> > > > > And also, after starting and stopping the domU, `xl pci-assignable-remove 03:00.0`
> > > > > makes pciback to complain:
> > > > > 
> > > > >     [ 1180.919874] pciback 0000:03:00.0: xen_pciback: MSI-X release failed (-16)
> > > > > 
> > > > > This is all running on Xen 4.19.3, but I don't see much changes in this
> > > > > area since then.
> > > > > 
> > > > > Some more info collected at https://github.com/QubesOS/qubes-issues/issues/9335
> > > > > 
> > > > > My question is: what should be responsible for this cleanup on domain
> > > > > destroy? Xen, or maybe device model (which is QEMU in stubdomain here)?
> > > > 
> > > > The expectation is that qemu invokes the necessary cleanup, but of course ...
> > > > 
> > > > > I see some cleanup (apparently not enough) happening via QEMU when the
> > > > > domU driver is unloaded, but logically correct cleanup shouldn't depend
> > > > > on correct domU operation...
> > > > 
> > > > ... Xen may not make itself dependent upon either DomU or QEMU.
> > > 
> > > AFAICT free_domain_pirqs() called by arch_domain_destroy() should take
> > > care of unbinding and freeing pirqs (but obviously not in this case).
> > > Can you repeat the test with a debug=y hypervisor and post the
> > > resulting serial or dmesg here?  Some of the errors on those paths are
> > > printed with dprintk() and won't be visible unless using a Xen debug
> > > build.
> > 
> > Sure, will do.
> 
> Output collected during domU shutdown and subsequent startup (dom0 logs
> to Xen console here too):
> https://gist.github.com/marmarek/6dc3ac14d3ba840482e6361fcbd37c30
> 
> I don't see any errors there...

Hm, yes, I don't see any errors either.  Do you think you could
instrument unmap_domain_pirq() and figure out whether it gets called,
and if such call to unmap the PIRQ succeeds?

There's one silent error path in the return value of
xsm_unmap_domain_irq(), but that shouldn't be taken since the call to
unmap_domain_pirq() executed when destroying the domain is done with
d->is_dying == true.

> As for the domU-triggered cleanup, I just checked - if I unload the
> driver in domU before restarting, it works fine on subsequent startup.

Yeah, the unbind an unmap is then done by QEMU, and that seems to
work fine.  What doesn't seem to work fine is the cleanup done as part
of domain destroy.

Don't we have any Gitlab tests that do PCI passthrough?  Maybe those
don't do any domU resets?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 14:52:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 14:52:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094708.1449954 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqv2C-00053x-MY; Tue, 26 Aug 2025 14:52:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094708.1449954; Tue, 26 Aug 2025 14:52: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 1uqv2C-00053q-Jr; Tue, 26 Aug 2025 14:52:28 +0000
Received: by outflank-mailman (input) for mailman id 1094708;
 Tue, 26 Aug 2025 14:52:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=EpqW=3G=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1uqv2B-00053k-NQ
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 14:52:27 +0000
Received: from fhigh-a8-smtp.messagingengine.com
 (fhigh-a8-smtp.messagingengine.com [103.168.172.159])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 44ace71a-828c-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 16:52:21 +0200 (CEST)
Received: from phl-compute-12.internal (phl-compute-12.internal [10.202.2.52])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 48BA714000DD;
 Tue, 26 Aug 2025 10:52:20 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-12.internal (MEProxy); Tue, 26 Aug 2025 10:52:20 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 26 Aug 2025 10:52:19 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 44ace71a-828c-11f0-b898-0df219b8e170
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=1756219940;
	 x=1756306340; bh=6iVhYCdCJDy0Sy31oGApj5ZRup5RSTuKacQ9PaqLK9g=; b=
	P2q08P95re1QR9srMvzet7htBW3F+onSLX/+gO0KZViLQOvR3z7A0XUZIpyiEnN5
	QKFX7yMAjnkFnGLWM2mUTuTiMXTKgbDTzkpzg+fSktaksZhwn4KyXdLMWE0jte0Z
	s1mRmQ6BzuU7AjOksodOakTexMMPJR20PbPTn15x6Vb8iXnT2wsQOFhC2rbISCYM
	mMJj9HLf9H0rZXByoWZSAuZEFCJUb8AHb0WtIgq6AGNN/DgeuytAOn3JM+bvhNm+
	ZLxf9l/jAFxT5QuNs/1YQHiE8FY+FH5H/xlarGmUBjdr9MNw209FQwiIXy0wadEs
	Kg3+/xaEiaKZHUyWjCym1w==
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=fm1; t=
	1756219940; x=1756306340; bh=6iVhYCdCJDy0Sy31oGApj5ZRup5RSTuKacQ
	9PaqLK9g=; b=fYlj0l99M43/x/RvCN9OwhrDHik5P2h8EeIlrjcBi2hbN0CJ5BL
	/P/7KkI5rKmEZa1dbP+HVLI/VTnR+LarX/cbNfbmPL+nDDwNB8Kmj6DuU2haO6mA
	DkL5knu6qQj4QMW1sO8XuM7h9RdO3ZjFNQbJusXpeQME7J0f+V6nCTkk+DqFxHDt
	lOZ5ag8zle/5eJzS9LhNwLFq38+4NuwM6PfEk+4C4cEzeD9UJA7rOI9KLE2EGJUs
	mZHyk/dQTl9rVi3mxviAz3wnhQ56UFsRdUXGajCOImN+4vy3Gto09VzkoXbOMCJm
	ISstVER8aVY3+HkfeNbn+KdhpZXqNBHykjg==
X-ME-Sender: <xms:I8qtaFKM1ROzw0SUXoCV5JpenxhoblGfVgsaezoA6GbzAv_ZttBhTQ>
    <xme:I8qtaEZzFPpHlyljshol0YTVn4JNC-5VLbSpA5wCkAHCdRVpxjYdjPwCk3EcGQNPW
    idxSspr4aw-vw>
X-ME-Received: <xmr:I8qtaHJ8mLtgc9nKEZE71D5xrfZGYr97dGsJs4TMZhjPF75T7tsPDWTvFyWOnFyHgUfKfXnzgo_1YhCR5j9GWMD6zG1_xonIfj0>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgddujeehheehucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepueekteet
    gefggfekudehteegieeljeejieeihfejgeevhfetgffgteeuteetueetnecuffhomhgrih
    hnpehgihhthhhusgdrtghomhenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhep
    mhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrg
    gsrdgtohhmpdhnsggprhgtphhtthhopeefpdhmohguvgepshhmthhpohhuthdprhgtphht
    thhopehrohhgvghrrdhprghusegtihhtrhhigidrtghomhdprhgtphhtthhopehjsggvuh
    hlihgthhesshhushgvrdgtohhmpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishht
    shdrgigvnhhprhhojhgvtghtrdhorhhg
X-ME-Proxy: <xmx:I8qtaCDkNN-PMW5G6CRDphGWdpZWlZVausAiKrEuYK-76YMnyG6-Kg>
    <xmx:I8qtaMpii6YXBVYABK5MlVI0P-lJXiFPUlRobl1J700BBZSvT2Hhrg>
    <xmx:I8qtaNiVJdD9g0Zpe_lZHTsdHcFUYfHIKgcnD4fDJtxaiPkFVpmB6A>
    <xmx:I8qtaJCd7zr-6Nkigk57NDRq1gkttUUmYu7cNqlallegABbaVCPpXg>
    <xmx:JMqtaBjC9agpwhq4I2y_mZdUB1X3HKDylakeNS1DJErSeokHza0pJ56x>
Feedback-ID: i1568416f:Fastmail
Date: Tue, 26 Aug 2025 16:52:17 +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: Jan Beulich <jbeulich@suse.com>,
	xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: MSI-X cleanup(?) issue with passthrough after domU restart
Message-ID: <aK3KIWOl1EbpaWBM@mail-itl>
References: <aK0St0oUkJzR9lO0@mail-itl>
 <2aafbace-3aa2-4f58-8f6c-2815cd2315ad@suse.com>
 <aK1wSKTg5LcuzBDc@macbook.local>
 <aK2TLuB_yKlWjFgM@mail-itl>
 <aK28ubf5F3x-of3X@mail-itl>
 <aK3JFqFHMZgWHzy7@Mac.lan>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="Yv+msR+m0+QsuJXG"
Content-Disposition: inline
In-Reply-To: <aK3JFqFHMZgWHzy7@Mac.lan>


--Yv+msR+m0+QsuJXG
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Tue, 26 Aug 2025 16:52:17 +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: Jan Beulich <jbeulich@suse.com>,
	xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: MSI-X cleanup(?) issue with passthrough after domU restart

On Tue, Aug 26, 2025 at 04:47:50PM +0200, Roger Pau Monn=C3=A9 wrote:
> On Tue, Aug 26, 2025 at 03:55:05PM +0200, Marek Marczykowski-G=C3=B3recki=
 wrote:
> > On Tue, Aug 26, 2025 at 12:57:50PM +0200, Marek Marczykowski-G=C3=B3rec=
ki wrote:
> > > On Tue, Aug 26, 2025 at 10:28:56AM +0200, Roger Pau Monn=C3=A9 wrote:
> > > > On Tue, Aug 26, 2025 at 08:16:56AM +0200, Jan Beulich wrote:
> > > > > On 26.08.2025 03:49, Marek Marczykowski-G=C3=B3recki wrote:
> > > > > > Hi,
> > > > > >=20
> > > > > > I'm hitting an MSI-X issue after rebooting the domU. The sympto=
ms are
> > > > > > rather boring: on initial domU start the device (realtek eth ca=
rd) works
> > > > > > fine, but after domU restart, the link doesn't come up (there i=
s no
> > > > > > "Link is Up" message anymore). No errors from domU driver or Xe=
n. I
> > > > > > tracked it down to MSI-X - if I force INTx (via pci=3Dnomsi on =
domU
> > > > > > cmdline) it works fine. Convincing the driver to poll instead o=
f waiting
> > > > > > for an interrupt also workarounds the issue.
> > > > > >=20
> > > > > > I noticed also some interrupts are not cleaned up on restart. T=
he list
> > > > > > of MSIs in 'Q' debug key output grows:
> > > > > >=20
> > > > > >     (XEN) 0000:03:00.0 - d22 - node -1  - MSIs < 41 42 43 44 45=
 46 47 >
> > > > > >     restart sys-net domU
> > > > > >     (XEN) 0000:03:00.0 - d24 - node -1  - MSIs < 41 42 43 44 45=
 46 47 48 >
> > > > > >     restart sys-net domU
> > > > > >     (XEN) 0000:03:00.0 - d26 - node -1  - MSIs < 41 42 43 44 45=
 46 47 48 49 >
> > > > > >=20
> > > > > > and 'M' output is:
> > > > > >=20
> > > > > >     (XEN)  MSI-X   41 vec=3Db1 lowest  edge   assert  log lowes=
t dest=3D00000001 mask=3D1/H /1
> > > > > >     (XEN)  MSI-X   42 vec=3Db9 lowest  edge   assert  log lowes=
t dest=3D00000004 mask=3D1/HG/1
> > > > > >     (XEN)  MSI-X   43 vec=3Dc1 lowest  edge   assert  log lowes=
t dest=3D00000010 mask=3D1/HG/1
> > > > > >     (XEN)  MSI-X   44 vec=3Dd9 lowest  edge   assert  log lowes=
t dest=3D00000001 mask=3D1/HG/1
> > > > > >     (XEN)  MSI-X   45 vec=3De1 lowest  edge   assert  log lowes=
t dest=3D00000001 mask=3D1/HG/1
> > > > > >     (XEN)  MSI-X   46 vec=3De9 lowest  edge   assert  log lowes=
t dest=3D00000040 mask=3D1/HG/1
> > > > > >     (XEN)  MSI-X   47 vec=3D32 lowest  edge   assert  log lowes=
t dest=3D00000004 mask=3D1/HG/1
> > > > > >     (XEN)  MSI-X   48 vec=3D3a lowest  edge   assert  log lowes=
t dest=3D00000040 mask=3D1/HG/1
> > > > > >     (XEN)  MSI-X   49 vec=3D42 lowest  edge   assert  log lowes=
t dest=3D00000010 mask=3D1/ G/1
> > > > > >=20
> > > > > > And also, after starting and stopping the domU, `xl pci-assigna=
ble-remove 03:00.0`
> > > > > > makes pciback to complain:
> > > > > >=20
> > > > > >     [ 1180.919874] pciback 0000:03:00.0: xen_pciback: MSI-X rel=
ease failed (-16)
> > > > > >=20
> > > > > > This is all running on Xen 4.19.3, but I don't see much changes=
 in this
> > > > > > area since then.
> > > > > >=20
> > > > > > Some more info collected at https://github.com/QubesOS/qubes-is=
sues/issues/9335
> > > > > >=20
> > > > > > My question is: what should be responsible for this cleanup on =
domain
> > > > > > destroy? Xen, or maybe device model (which is QEMU in stubdomai=
n here)?
> > > > >=20
> > > > > The expectation is that qemu invokes the necessary cleanup, but o=
f course ...
> > > > >=20
> > > > > > I see some cleanup (apparently not enough) happening via QEMU w=
hen the
> > > > > > domU driver is unloaded, but logically correct cleanup shouldn'=
t depend
> > > > > > on correct domU operation...
> > > > >=20
> > > > > ... Xen may not make itself dependent upon either DomU or QEMU.
> > > >=20
> > > > AFAICT free_domain_pirqs() called by arch_domain_destroy() should t=
ake
> > > > care of unbinding and freeing pirqs (but obviously not in this case=
).
> > > > Can you repeat the test with a debug=3Dy hypervisor and post the
> > > > resulting serial or dmesg here?  Some of the errors on those paths =
are
> > > > printed with dprintk() and won't be visible unless using a Xen debug
> > > > build.
> > >=20
> > > Sure, will do.
> >=20
> > Output collected during domU shutdown and subsequent startup (dom0 logs
> > to Xen console here too):
> > https://gist.github.com/marmarek/6dc3ac14d3ba840482e6361fcbd37c30
> >=20
> > I don't see any errors there...
>=20
> Hm, yes, I don't see any errors either.  Do you think you could
> instrument unmap_domain_pirq() and figure out whether it gets called,
> and if such call to unmap the PIRQ succeeds?

Sure, now that I know where to look at, I'll try to find out what goes
wrong.

> There's one silent error path in the return value of
> xsm_unmap_domain_irq(), but that shouldn't be taken since the call to
> unmap_domain_pirq() executed when destroying the domain is done with
> d->is_dying =3D=3D true.
>=20
> > As for the domU-triggered cleanup, I just checked - if I unload the
> > driver in domU before restarting, it works fine on subsequent startup.
>=20
> Yeah, the unbind an unmap is then done by QEMU, and that seems to
> work fine.  What doesn't seem to work fine is the cleanup done as part
> of domain destroy.
>=20
> Don't we have any Gitlab tests that do PCI passthrough?  Maybe those
> don't do any domU resets?

Yeah, it's a single boot and that's it. I can improve that (and double
check if MSI-X is covered too).

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

--Yv+msR+m0+QsuJXG
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmityiEACgkQ24/THMrX
1ywikAf/SXtC9fGIRspCbivqTvirhm7jm0elowP6VKkLCZj91AhGi8ax3UCCniir
aGN9A94SeNXrnDPNHM+IEzd2fQwcUB7ot1Y4a8CwT++f6/Sk2XRlrjAaisrrzqxs
jNkcx8JackJd1g0wa61kIt2Uqz3uALwk1GQYhETFIvCpBAi/DYz/rnraeIWMwT95
3xTFZjXcKaBCzXuEw3dS3JMIi5JOVu+kjqabEnhJbg6gpQCV2EBmiTM4kzOQW4hh
V925fJ8k/7CNCXk6w9uPRt9BLab3lWLNMEjLaaTu5r0ZUQ7BsDeIT7PtALovN+xI
A2kwkl/7Umy1bkr/4F8RhmjtUhTAxA==
=mJWW
-----END PGP SIGNATURE-----

--Yv+msR+m0+QsuJXG--


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 14:56:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 14:56:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094720.1449975 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqv5y-0005qs-FK; Tue, 26 Aug 2025 14:56:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094720.1449975; Tue, 26 Aug 2025 14:56: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 1uqv5y-0005ql-CY; Tue, 26 Aug 2025 14:56:22 +0000
Received: by outflank-mailman (input) for mailman id 1094720;
 Tue, 26 Aug 2025 14:56:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=HJCJ=3G=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1uqv5w-0005bn-VB
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 14:56:20 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d2cffae3-828c-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 16:56:19 +0200 (CEST)
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 AB2EC1F794;
 Tue, 26 Aug 2025 14:56:16 +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 5523913A31;
 Tue, 26 Aug 2025 14:56:16 +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 OwNEExDLrWi1TwAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 26 Aug 2025 14:56:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d2cffae3-828c-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1756220176; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=OyeT+CWQEc6295XsX5Lhn3JbFSy/Dq6+JVixulzziEY=;
	b=SZVpr0NuEHu/33dqsD11Ya+/DUFraXt930BOxCXygh0FsoMbrfaVapmM2I5IT7ImOPRgP5
	hLvC4UitgxiByj5gu1tK/+GMG5JVlVrU79e4gCkTrlDgSwhe5NdNv2X4ygz1KdsgKDFfeB
	8XArM3bblCxJ29aBNZXk42wKvtET/YI=
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1756220176; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=OyeT+CWQEc6295XsX5Lhn3JbFSy/Dq6+JVixulzziEY=;
	b=SZVpr0NuEHu/33dqsD11Ya+/DUFraXt930BOxCXygh0FsoMbrfaVapmM2I5IT7ImOPRgP5
	hLvC4UitgxiByj5gu1tK/+GMG5JVlVrU79e4gCkTrlDgSwhe5NdNv2X4ygz1KdsgKDFfeB
	8XArM3bblCxJ29aBNZXk42wKvtET/YI=
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@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH 1/3] xen: rework xen_pv_domain()
Date: Tue, 26 Aug 2025 16:56:06 +0200
Message-ID: <20250826145608.10352-2-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250826145608.10352-1-jgross@suse.com>
References: <20250826145608.10352-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: 
X-Spamd-Result: default: False [-6.80 / 50.00];
	REPLY(-4.00)[];
	BAYES_HAM(-3.00)[100.00%];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MID_CONTAINS_FROM(1.00)[];
	R_MISSING_CHARSET(0.50)[];
	NEURAL_HAM_SHORT(-0.20)[-0.999];
	MIME_GOOD(-0.10)[text/plain];
	RCVD_COUNT_TWO(0.00)[2];
	FROM_HAS_DN(0.00)[];
	ARC_NA(0.00)[];
	MIME_TRACE(0.00)[0:+];
	RCPT_COUNT_TWELVE(0.00)[12];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	TO_DN_SOME(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,suse.com:email,suse.com:mid];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO
X-Spam-Score: -6.80

Rework xen_pv_domain() to no longer use the xen_domain_type variable,
but the artificial X86_FEATURE_XENPV cpu feature.

On non-x86 architectures xen_pv_domain() can be defined as "0".

This has the advantage that a kernel not built with CONFIG_XEN_PV
will be smaller due to dead code elimination.

Set the X86_FEATURE_XENPV feature very early, as xen_pv_domain() is
used rather early, too.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 arch/x86/xen/enlighten_pv.c | 2 +-
 include/xen/xen.h           | 9 ++++++++-
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c
index 26bbaf4b7330..4806cc28d7ca 100644
--- a/arch/x86/xen/enlighten_pv.c
+++ b/arch/x86/xen/enlighten_pv.c
@@ -382,7 +382,6 @@ static bool __init xen_check_xsave(void)
 
 static void __init xen_init_capabilities(void)
 {
-	setup_force_cpu_cap(X86_FEATURE_XENPV);
 	setup_clear_cpu_cap(X86_FEATURE_DCA);
 	setup_clear_cpu_cap(X86_FEATURE_APERFMPERF);
 	setup_clear_cpu_cap(X86_FEATURE_MTRR);
@@ -1402,6 +1401,7 @@ asmlinkage __visible void __init xen_start_kernel(struct start_info *si)
 			JMP32_INSN_SIZE);
 
 	xen_domain_type = XEN_PV_DOMAIN;
+	setup_force_cpu_cap(X86_FEATURE_XENPV);
 	xen_start_flags = xen_start_info->flags;
 	/* Interrupts are guaranteed to be off initially. */
 	early_boot_irqs_disabled = true;
diff --git a/include/xen/xen.h b/include/xen/xen.h
index a1e5b3f18d69..61854e3f2837 100644
--- a/include/xen/xen.h
+++ b/include/xen/xen.h
@@ -22,8 +22,15 @@ extern bool xen_pvh;
 #define xen_pvh			0
 #endif
 
+#ifdef CONFIG_X86
+#include <asm/cpufeature.h>
+
+#define xen_pv_domain()		(cpu_feature_enabled(X86_FEATURE_XENPV))
+#else
+#define xen_pv_domain()		0
+#endif
+
 #define xen_domain()		(xen_domain_type != XEN_NATIVE)
-#define xen_pv_domain()		(xen_domain_type == XEN_PV_DOMAIN)
 #define xen_hvm_domain()	(xen_domain_type == XEN_HVM_DOMAIN)
 #define xen_pvh_domain()	(xen_pvh)
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Aug 26 14:56:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 14:56:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094719.1449964 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqv5u-0005c0-5d; Tue, 26 Aug 2025 14:56:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094719.1449964; Tue, 26 Aug 2025 14:56: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 1uqv5u-0005bt-2S; Tue, 26 Aug 2025 14:56:18 +0000
Received: by outflank-mailman (input) for mailman id 1094719;
 Tue, 26 Aug 2025 14:56:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=HJCJ=3G=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1uqv5s-0005bn-VE
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 14:56:17 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ce0e3fa2-828c-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 16:56:11 +0200 (CEST)
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 E8B761F38F;
 Tue, 26 Aug 2025 14:56:10 +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 8D60013A31;
 Tue, 26 Aug 2025 14:56:10 +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 oQoeIQrLrWiwTwAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 26 Aug 2025 14: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>
X-Inumbo-ID: ce0e3fa2-828c-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1756220171; 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=AA3kVYdUWF6i6YoYHZrMeLM9qBHfEfgoU7R9Gv0EeKg=;
	b=t4LhYdgXQfChZMnlicIFotO/yGEHHCSbrCQ1PuJ5Fd+3D8gEIkyNZT/CYc4ja8p4xvS9K2
	g+69d3T7UwPZf9MKVWIQeYK9fqldA+4DBXTUVvKozTlFDYzJ1rCi57TV0c/b8hAP2EAi+a
	Fyllb7YDtgzUUZiVSvz7hb2LMDgXs1s=
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1756220170; 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=AA3kVYdUWF6i6YoYHZrMeLM9qBHfEfgoU7R9Gv0EeKg=;
	b=HRzlIrhBzIxZLG8kB9H7WiFEX9kKQy0yEUoAAr2rNt3SnEQadq9gA5db1/VjOfn4qYNxAM
	6GsmMzob3eFdCeERCc8e9dC33LqpNtufTC/fMNOOXvvZcd8Po0n6NB7sgTmBWpxQu2X0+O
	dBi8MoCa3DJCZ2DdK/VZNOYA06F3HzA=
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@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH 0/3] xen: use X86_FEATURE_XENPV for PV specific code
Date: Tue, 26 Aug 2025 16:56:05 +0200
Message-ID: <20250826145608.10352-1-jgross@suse.com>
X-Mailer: git-send-email 2.43.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)[-0.999];
	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)[imap1.dmz-prg2.suse.org:helo,suse.com:mid]
X-Spam-Flag: NO
X-Spam-Score: -2.80

Instead of using a global variable with the current guest type or the
XENFEAT_auto_translated_physmap Xen feature, use the already existing
X86_FEATURE_XENPV for guarding PV mode specific code.

This has the advantage of compile time code elimination in case of the
kernel having been configured without CONFIG_XEN_PV, and the usage of
static-keys for selecting the correct code path otherwise.

Juergen Gross (3):
  xen: rework xen_pv_domain()
  xen: replace XENFEAT_auto_translated_physmap with xen_pv_domain()
  drivers/xen/gntdev: use xen_pv_domain() instead of cached value

 arch/x86/include/asm/xen/page.h    | 14 ++++++-------
 arch/x86/xen/enlighten_pv.c        |  2 +-
 arch/x86/xen/mmu.c                 |  2 +-
 arch/x86/xen/p2m.c                 |  4 ++--
 drivers/xen/balloon.c              |  4 ++--
 drivers/xen/gntdev-dmabuf.c        |  7 +++----
 drivers/xen/gntdev-dmabuf.h        |  2 +-
 drivers/xen/gntdev.c               | 33 +++++++++++++-----------------
 drivers/xen/grant-table.c          |  6 +++---
 drivers/xen/privcmd.c              | 14 ++++++-------
 drivers/xen/unpopulated-alloc.c    |  4 ++--
 drivers/xen/xenbus/xenbus_client.c |  2 +-
 include/xen/grant_table.h          |  4 ++--
 include/xen/mem-reservation.h      |  4 ++--
 include/xen/xen-ops.h              |  7 ++++---
 include/xen/xen.h                  |  9 +++++++-
 16 files changed, 59 insertions(+), 59 deletions(-)

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Aug 26 14:56:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 14:56:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094721.1449985 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqv62-00068J-O6; Tue, 26 Aug 2025 14:56:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094721.1449985; Tue, 26 Aug 2025 14:56: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 1uqv62-00068A-KN; Tue, 26 Aug 2025 14:56:26 +0000
Received: by outflank-mailman (input) for mailman id 1094721;
 Tue, 26 Aug 2025 14:56:24 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=HJCJ=3G=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1uqv60-0005bn-PD
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 14:56:24 +0000
Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d4e22372-828c-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 16:56:22 +0200 (CEST)
Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by smtp-out1.suse.de (Postfix) with ESMTPS id 702692124E;
 Tue, 26 Aug 2025 14:56: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 1279713A31;
 Tue, 26 Aug 2025 14:56: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 /ckVAxbLrWi7TwAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 26 Aug 2025 14:56: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>
X-Inumbo-ID: d4e22372-828c-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1756220182; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=fgDiJNNiVNaf0p3L3IvjAfpp4z8UuSZA2jh8FWFcSN0=;
	b=qGAEL2F2BM1z21iYQ7eFD6W4myMjqmCXairXJ3Fj9HEmZrz9iLZkcGs/NUgV2ykp4nvnn7
	Whzu+U+xkPL2ocWiXUf6xrBAbjp3GvXWbjI1pFERnmx24bEUGaN+Hst3Gn4d2XnKksaMte
	a/RW1sHpnMY8fQH6607HTh42FMFyh6g=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1756220182; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=fgDiJNNiVNaf0p3L3IvjAfpp4z8UuSZA2jh8FWFcSN0=;
	b=qGAEL2F2BM1z21iYQ7eFD6W4myMjqmCXairXJ3Fj9HEmZrz9iLZkcGs/NUgV2ykp4nvnn7
	Whzu+U+xkPL2ocWiXUf6xrBAbjp3GvXWbjI1pFERnmx24bEUGaN+Hst3Gn4d2XnKksaMte
	a/RW1sHpnMY8fQH6607HTh42FMFyh6g=
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@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH 2/3] xen: replace XENFEAT_auto_translated_physmap with xen_pv_domain()
Date: Tue, 26 Aug 2025 16:56:07 +0200
Message-ID: <20250826145608.10352-3-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250826145608.10352-1-jgross@suse.com>
References: <20250826145608.10352-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-6.80 / 50.00];
	REPLY(-4.00)[];
	BAYES_HAM(-3.00)[100.00%];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	NEURAL_HAM_SHORT(-0.20)[-0.999];
	MIME_GOOD(-0.10)[text/plain];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:mid,suse.com:email,imap1.dmz-prg2.suse.org:helo];
	ARC_NA(0.00)[];
	MIME_TRACE(0.00)[0:+];
	TO_DN_SOME(0.00)[];
	RCPT_COUNT_TWELVE(0.00)[12];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	FROM_HAS_DN(0.00)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	R_RATELIMIT(0.00)[to_ip_from(RLfdszjqhz8kzzb9uwpzdm8png)];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO
X-Spam-Level: 
X-Spam-Score: -6.80

Instead of testing the XENFEAT_auto_translated_physmap feature, just
use !xen_pv_domain() which is equivalent.

This has the advantage that a kernel not built with CONFIG_XEN_PV
will be smaller due to dead code elimination.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 arch/x86/include/asm/xen/page.h    | 14 +++++++-------
 arch/x86/xen/mmu.c                 |  2 +-
 arch/x86/xen/p2m.c                 |  4 ++--
 drivers/xen/balloon.c              |  4 ++--
 drivers/xen/gntdev.c               |  2 +-
 drivers/xen/grant-table.c          |  6 +++---
 drivers/xen/privcmd.c              | 14 ++++++--------
 drivers/xen/unpopulated-alloc.c    |  4 ++--
 drivers/xen/xenbus/xenbus_client.c |  2 +-
 include/xen/grant_table.h          |  4 ++--
 include/xen/mem-reservation.h      |  4 ++--
 include/xen/xen-ops.h              |  7 ++++---
 12 files changed, 33 insertions(+), 34 deletions(-)

diff --git a/arch/x86/include/asm/xen/page.h b/arch/x86/include/asm/xen/page.h
index 85e63d58c074..59f642a94b9d 100644
--- a/arch/x86/include/asm/xen/page.h
+++ b/arch/x86/include/asm/xen/page.h
@@ -12,9 +12,9 @@
 #include <asm/extable.h>
 #include <asm/page.h>
 
+#include <xen/xen.h>
 #include <xen/interface/xen.h>
 #include <xen/interface/grant_table.h>
-#include <xen/features.h>
 
 /* Xen machine address */
 typedef struct xmaddr {
@@ -162,7 +162,7 @@ static inline unsigned long pfn_to_mfn(unsigned long pfn)
 	 * pfn_to_mfn. This will have to be removed when we figured
 	 * out which call.
 	 */
-	if (xen_feature(XENFEAT_auto_translated_physmap))
+	if (!xen_pv_domain())
 		return pfn;
 
 	mfn = __pfn_to_mfn(pfn);
@@ -175,7 +175,7 @@ static inline unsigned long pfn_to_mfn(unsigned long pfn)
 
 static inline int phys_to_machine_mapping_valid(unsigned long pfn)
 {
-	if (xen_feature(XENFEAT_auto_translated_physmap))
+	if (!xen_pv_domain())
 		return 1;
 
 	return __pfn_to_mfn(pfn) != INVALID_P2M_ENTRY;
@@ -210,7 +210,7 @@ static inline unsigned long mfn_to_pfn(unsigned long mfn)
 	 * gfn_to_pfn. This will have to be removed when we figure
 	 * out which call.
 	 */
-	if (xen_feature(XENFEAT_auto_translated_physmap))
+	if (!xen_pv_domain())
 		return mfn;
 
 	pfn = mfn_to_pfn_no_overrides(mfn);
@@ -242,7 +242,7 @@ static inline xpaddr_t machine_to_phys(xmaddr_t machine)
 /* Pseudo-physical <-> Guest conversion */
 static inline unsigned long pfn_to_gfn(unsigned long pfn)
 {
-	if (xen_feature(XENFEAT_auto_translated_physmap))
+	if (!xen_pv_domain())
 		return pfn;
 	else
 		return pfn_to_mfn(pfn);
@@ -250,7 +250,7 @@ static inline unsigned long pfn_to_gfn(unsigned long pfn)
 
 static inline unsigned long gfn_to_pfn(unsigned long gfn)
 {
-	if (xen_feature(XENFEAT_auto_translated_physmap))
+	if (!xen_pv_domain())
 		return gfn;
 	else
 		return mfn_to_pfn(gfn);
@@ -284,7 +284,7 @@ static inline unsigned long bfn_to_local_pfn(unsigned long mfn)
 {
 	unsigned long pfn;
 
-	if (xen_feature(XENFEAT_auto_translated_physmap))
+	if (!xen_pv_domain())
 		return mfn;
 
 	pfn = mfn_to_pfn(mfn);
diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
index c4c479373249..3be45bf4bc79 100644
--- a/arch/x86/xen/mmu.c
+++ b/arch/x86/xen/mmu.c
@@ -41,7 +41,7 @@ EXPORT_SYMBOL_GPL(arbitrary_virt_to_machine);
 int xen_unmap_domain_gfn_range(struct vm_area_struct *vma,
 			       int nr, struct page **pages)
 {
-	if (xen_feature(XENFEAT_auto_translated_physmap))
+	if (!xen_pv_domain())
 		return xen_xlate_unmap_gfn_range(vma, nr, pages);
 
 	if (!pages)
diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c
index 56914e21e303..2dd12b61a230 100644
--- a/arch/x86/xen/p2m.c
+++ b/arch/x86/xen/p2m.c
@@ -686,7 +686,7 @@ int set_foreign_p2m_mapping(struct gnttab_map_grant_ref *map_ops,
 	int i, ret = 0;
 	pte_t *pte;
 
-	if (xen_feature(XENFEAT_auto_translated_physmap))
+	if (!xen_pv_domain())
 		return 0;
 
 	if (kmap_ops) {
@@ -769,7 +769,7 @@ int clear_foreign_p2m_mapping(struct gnttab_unmap_grant_ref *unmap_ops,
 {
 	int i, ret = 0;
 
-	if (xen_feature(XENFEAT_auto_translated_physmap))
+	if (!xen_pv_domain())
 		return 0;
 
 	for (i = 0; i < count; i++) {
diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
index 2de37dcd7556..49c3f9926394 100644
--- a/drivers/xen/balloon.c
+++ b/drivers/xen/balloon.c
@@ -302,7 +302,7 @@ static enum bp_state reserve_additional_memory(void)
          * are not restored since this region is now known not to
          * conflict with any devices.
          */ 
-	if (!xen_feature(XENFEAT_auto_translated_physmap)) {
+	if (xen_pv_domain()) {
 		unsigned long pfn, i;
 
 		pfn = PFN_DOWN(resource->start);
@@ -626,7 +626,7 @@ int xen_alloc_ballooned_pages(unsigned int nr_pages, struct page **pages)
 			 */
 			BUILD_BUG_ON(XEN_PAGE_SIZE != PAGE_SIZE);
 
-			if (!xen_feature(XENFEAT_auto_translated_physmap)) {
+			if (xen_pv_domain()) {
 				ret = xen_alloc_p2m_entry(page_to_pfn(page));
 				if (ret < 0)
 					goto out_undo;
diff --git a/drivers/xen/gntdev.c b/drivers/xen/gntdev.c
index 1f2160765618..74491967f2ae 100644
--- a/drivers/xen/gntdev.c
+++ b/drivers/xen/gntdev.c
@@ -1183,7 +1183,7 @@ static int __init gntdev_init(void)
 	if (!xen_domain())
 		return -ENODEV;
 
-	use_ptemod = !xen_feature(XENFEAT_auto_translated_physmap);
+	use_ptemod = xen_pv_domain();
 
 	err = misc_register(&gntdev_miscdev);
 	if (err != 0) {
diff --git a/drivers/xen/grant-table.c b/drivers/xen/grant-table.c
index 04a6b470b15d..478d2ad725ac 100644
--- a/drivers/xen/grant-table.c
+++ b/drivers/xen/grant-table.c
@@ -1449,7 +1449,7 @@ static int gnttab_map(unsigned int start_idx, unsigned int end_idx)
 	unsigned int nr_gframes = end_idx + 1;
 	int rc;
 
-	if (xen_feature(XENFEAT_auto_translated_physmap)) {
+	if (!xen_pv_domain()) {
 		struct xen_add_to_physmap xatp;
 		unsigned int i = end_idx;
 		rc = 0;
@@ -1570,7 +1570,7 @@ static int gnttab_setup(void)
 	if (max_nr_gframes < nr_grant_frames)
 		return -ENOSYS;
 
-	if (xen_feature(XENFEAT_auto_translated_physmap) && gnttab_shared.addr == NULL) {
+	if (!xen_pv_domain() && gnttab_shared.addr == NULL) {
 		gnttab_shared.addr = xen_auto_xlat_grant_frames.vaddr;
 		if (gnttab_shared.addr == NULL) {
 			pr_warn("gnttab share frames is not mapped!\n");
@@ -1588,7 +1588,7 @@ int gnttab_resume(void)
 
 int gnttab_suspend(void)
 {
-	if (!xen_feature(XENFEAT_auto_translated_physmap))
+	if (xen_pv_domain())
 		gnttab_interface->unmap_frames();
 	return 0;
 }
diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
index 13a10f3294a8..f52a457b302d 100644
--- a/drivers/xen/privcmd.c
+++ b/drivers/xen/privcmd.c
@@ -271,7 +271,7 @@ static long privcmd_ioctl_mmap(struct file *file, void __user *udata)
 	struct mmap_gfn_state state;
 
 	/* We only support privcmd_ioctl_mmap_batch for non-auto-translated. */
-	if (xen_feature(XENFEAT_auto_translated_physmap))
+	if (!xen_pv_domain())
 		return -ENOSYS;
 
 	if (copy_from_user(&mmapcmd, udata, sizeof(mmapcmd)))
@@ -353,7 +353,7 @@ static int mmap_batch_fn(void *data, int nr, void *state)
 	struct page **cur_pages = NULL;
 	int ret;
 
-	if (xen_feature(XENFEAT_auto_translated_physmap))
+	if (!xen_pv_domain())
 		cur_pages = &pages[st->index];
 
 	BUG_ON(nr < 0);
@@ -535,7 +535,7 @@ static long privcmd_ioctl_mmap_batch(
 			ret = -EINVAL;
 			goto out_unlock;
 		}
-		if (xen_feature(XENFEAT_auto_translated_physmap)) {
+		if (!xen_pv_domain()) {
 			ret = alloc_empty_pages(vma, nr_pages);
 			if (ret < 0)
 				goto out_unlock;
@@ -779,8 +779,7 @@ static long privcmd_ioctl_mmap_resource(struct file *file,
 		goto out;
 	}
 
-	if (IS_ENABLED(CONFIG_XEN_AUTO_XLATE) &&
-	    xen_feature(XENFEAT_auto_translated_physmap)) {
+	if (IS_ENABLED(CONFIG_XEN_AUTO_XLATE) && !xen_pv_domain()) {
 		unsigned int nr = DIV_ROUND_UP(kdata.num, XEN_PFN_PER_PAGE);
 		struct page **pages;
 		unsigned int i;
@@ -811,8 +810,7 @@ static long privcmd_ioctl_mmap_resource(struct file *file,
 	if (rc)
 		goto out;
 
-	if (IS_ENABLED(CONFIG_XEN_AUTO_XLATE) &&
-	    xen_feature(XENFEAT_auto_translated_physmap)) {
+	if (IS_ENABLED(CONFIG_XEN_AUTO_XLATE) && !xen_pv_domain()) {
 		rc = xen_remap_vma_range(vma, kdata.addr, kdata.num << PAGE_SHIFT);
 	} else {
 		unsigned int domid =
@@ -1591,7 +1589,7 @@ static void privcmd_close(struct vm_area_struct *vma)
 	int numgfns = (vma->vm_end - vma->vm_start) >> XEN_PAGE_SHIFT;
 	int rc;
 
-	if (!xen_feature(XENFEAT_auto_translated_physmap) || !numpgs || !pages)
+	if (xen_pv_domain() || !numpgs || !pages)
 		return;
 
 	rc = xen_unmap_domain_gfn_range(vma, numgfns, pages);
diff --git a/drivers/xen/unpopulated-alloc.c b/drivers/xen/unpopulated-alloc.c
index a39f2d36dd9c..d6fc2aefe264 100644
--- a/drivers/xen/unpopulated-alloc.c
+++ b/drivers/xen/unpopulated-alloc.c
@@ -105,7 +105,7 @@ static int fill_list(unsigned int nr_pages)
          * are not restored since this region is now known not to
          * conflict with any devices.
          */
-	if (!xen_feature(XENFEAT_auto_translated_physmap)) {
+	if (xen_pv_domain()) {
 		xen_pfn_t pfn = PFN_DOWN(res->start);
 
 		for (i = 0; i < alloc_pages; i++) {
@@ -184,7 +184,7 @@ int xen_alloc_unpopulated_pages(unsigned int nr_pages, struct page **pages)
 		pages[i] = pg;
 
 #ifdef CONFIG_XEN_HAVE_PVMMU
-		if (!xen_feature(XENFEAT_auto_translated_physmap)) {
+		if (xen_pv_domain()) {
 			ret = xen_alloc_p2m_entry(page_to_pfn(pg));
 			if (ret < 0) {
 				unsigned int j;
diff --git a/drivers/xen/xenbus/xenbus_client.c b/drivers/xen/xenbus/xenbus_client.c
index e73ec225d4a6..2dc874fb5506 100644
--- a/drivers/xen/xenbus/xenbus_client.c
+++ b/drivers/xen/xenbus/xenbus_client.c
@@ -955,7 +955,7 @@ static const struct xenbus_ring_ops ring_ops_hvm = {
 void __init xenbus_ring_ops_init(void)
 {
 #ifdef CONFIG_XEN_PV
-	if (!xen_feature(XENFEAT_auto_translated_physmap))
+	if (xen_pv_domain())
 		ring_ops = &ring_ops_pv;
 	else
 #endif
diff --git a/include/xen/grant_table.h b/include/xen/grant_table.h
index e279be353e3f..69ac6d80a006 100644
--- a/include/xen/grant_table.h
+++ b/include/xen/grant_table.h
@@ -164,7 +164,7 @@ gnttab_set_map_op(struct gnttab_map_grant_ref *map, phys_addr_t addr,
 {
 	if (flags & GNTMAP_contains_pte)
 		map->host_addr = addr;
-	else if (xen_feature(XENFEAT_auto_translated_physmap))
+	else if (!xen_pv_domain())
 		map->host_addr = __pa(addr);
 	else
 		map->host_addr = addr;
@@ -181,7 +181,7 @@ gnttab_set_unmap_op(struct gnttab_unmap_grant_ref *unmap, phys_addr_t addr,
 {
 	if (flags & GNTMAP_contains_pte)
 		unmap->host_addr = addr;
-	else if (xen_feature(XENFEAT_auto_translated_physmap))
+	else if (!xen_pv_domain())
 		unmap->host_addr = __pa(addr);
 	else
 		unmap->host_addr = addr;
diff --git a/include/xen/mem-reservation.h b/include/xen/mem-reservation.h
index a2ab516fcd2c..3cbe3df0dfd4 100644
--- a/include/xen/mem-reservation.h
+++ b/include/xen/mem-reservation.h
@@ -39,7 +39,7 @@ static inline void xenmem_reservation_va_mapping_update(unsigned long count,
 							xen_pfn_t *frames)
 {
 #ifdef CONFIG_XEN_HAVE_PVMMU
-	if (!xen_feature(XENFEAT_auto_translated_physmap))
+	if (xen_pv_domain())
 		__xenmem_reservation_va_mapping_update(count, pages, frames);
 #endif
 }
@@ -48,7 +48,7 @@ static inline void xenmem_reservation_va_mapping_reset(unsigned long count,
 						       struct page **pages)
 {
 #ifdef CONFIG_XEN_HAVE_PVMMU
-	if (!xen_feature(XENFEAT_auto_translated_physmap))
+	if (xen_pv_domain())
 		__xenmem_reservation_va_mapping_reset(count, pages);
 #endif
 }
diff --git a/include/xen/xen-ops.h b/include/xen/xen-ops.h
index 9e2a769b0d96..496e6013c689 100644
--- a/include/xen/xen-ops.h
+++ b/include/xen/xen-ops.h
@@ -6,6 +6,7 @@
 #include <linux/notifier.h>
 #include <linux/efi.h>
 #include <linux/virtio_anchor.h>
+#include <xen/xen.h>
 #include <xen/features.h>
 #include <asm/xen/interface.h>
 #include <xen/interface/vcpu.h>
@@ -116,7 +117,7 @@ static inline int xen_remap_domain_gfn_array(struct vm_area_struct *vma,
 					     unsigned int domid,
 					     struct page **pages)
 {
-	if (xen_feature(XENFEAT_auto_translated_physmap))
+	if (!xen_pv_domain())
 		return xen_xlate_remap_gfn_array(vma, addr, gfn, nr, err_ptr,
 						 prot, domid, pages);
 
@@ -150,7 +151,7 @@ static inline int xen_remap_domain_mfn_array(struct vm_area_struct *vma,
 					     int nr, int *err_ptr,
 					     pgprot_t prot, unsigned int domid)
 {
-	if (xen_feature(XENFEAT_auto_translated_physmap))
+	if (!xen_pv_domain())
 		return -EOPNOTSUPP;
 
 	return xen_remap_pfn(vma, addr, mfn, nr, err_ptr, prot, domid,
@@ -175,7 +176,7 @@ static inline int xen_remap_domain_gfn_range(struct vm_area_struct *vma,
 					     pgprot_t prot, unsigned int domid,
 					     struct page **pages)
 {
-	if (xen_feature(XENFEAT_auto_translated_physmap))
+	if (!xen_pv_domain())
 		return -EOPNOTSUPP;
 
 	return xen_remap_pfn(vma, addr, &gfn, nr, NULL, prot, domid, false);
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Aug 26 14:56:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 14:56:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094723.1449995 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqv67-0006Sk-V9; Tue, 26 Aug 2025 14:56:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094723.1449995; Tue, 26 Aug 2025 14:56:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqv67-0006SZ-Ri; Tue, 26 Aug 2025 14:56:31 +0000
Received: by outflank-mailman (input) for mailman id 1094723;
 Tue, 26 Aug 2025 14:56:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=HJCJ=3G=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1uqv66-0006PU-28
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 14:56:30 +0000
Received: from smtp-out2.suse.de (smtp-out2.suse.de
 [2a07:de40:b251:101:10:150:64:2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d86dcf69-828c-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 16:56:29 +0200 (CEST)
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 1B76F1F38F;
 Tue, 26 Aug 2025 14:56:28 +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 D646813A31;
 Tue, 26 Aug 2025 14:56:27 +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 OwveMhvLrWjDTwAAD6G6ig
 (envelope-from <jgross@suse.com>); Tue, 26 Aug 2025 14:56: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>
X-Inumbo-ID: d86dcf69-828c-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1756220188; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=8GwQoxtVyUUAfeaSlxLGfKSMF6Xm2EeIRDK2kD9x/0s=;
	b=nYTQ268JOuUNC2VcmCgObTdtpXGddY/9lgjHWgC2DcPcigetNUkmCu3YW5r+wUPBv6PU5H
	heDvZsh8TahnSPvJwG7ZH40vhyuc2OYPxA3LYH874dIMYWW/LcNli5XSPhlNzCHOJEPTer
	ozp/hrz3f5glM1IkGOJ8nIm8+VVQmGg=
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1756220188; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:
	 mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references;
	bh=8GwQoxtVyUUAfeaSlxLGfKSMF6Xm2EeIRDK2kD9x/0s=;
	b=nYTQ268JOuUNC2VcmCgObTdtpXGddY/9lgjHWgC2DcPcigetNUkmCu3YW5r+wUPBv6PU5H
	heDvZsh8TahnSPvJwG7ZH40vhyuc2OYPxA3LYH874dIMYWW/LcNli5XSPhlNzCHOJEPTer
	ozp/hrz3f5glM1IkGOJ8nIm8+VVQmGg=
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH 3/3] drivers/xen/gntdev: use xen_pv_domain() instead of cached value
Date: Tue, 26 Aug 2025 16:56:08 +0200
Message-ID: <20250826145608.10352-4-jgross@suse.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20250826145608.10352-1-jgross@suse.com>
References: <20250826145608.10352-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Level: 
X-Spamd-Result: default: False [-6.80 / 50.00];
	REPLY(-4.00)[];
	BAYES_HAM(-3.00)[100.00%];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	MID_CONTAINS_FROM(1.00)[];
	R_MISSING_CHARSET(0.50)[];
	NEURAL_HAM_SHORT(-0.20)[-0.999];
	MIME_GOOD(-0.10)[text/plain];
	RCVD_COUNT_TWO(0.00)[2];
	FROM_HAS_DN(0.00)[];
	ARC_NA(0.00)[];
	MIME_TRACE(0.00)[0:+];
	TO_DN_SOME(0.00)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	RCPT_COUNT_FIVE(0.00)[5];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:email,suse.com:mid,imap1.dmz-prg2.suse.org:helo];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO
X-Spam-Score: -6.80

Eliminate the use_ptemod variable by replacing its use cases with
xen_pv_domain().

Instead of passing the xen_pv_domain() return value to
gntdev_ioctl_dmabuf_exp_from_refs(), use xen_pv_domain() in that
function.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 drivers/xen/gntdev-dmabuf.c |  7 +++----
 drivers/xen/gntdev-dmabuf.h |  2 +-
 drivers/xen/gntdev.c        | 33 ++++++++++++++-------------------
 3 files changed, 18 insertions(+), 24 deletions(-)

diff --git a/drivers/xen/gntdev-dmabuf.c b/drivers/xen/gntdev-dmabuf.c
index 82855105ab85..550980dd3b0b 100644
--- a/drivers/xen/gntdev-dmabuf.c
+++ b/drivers/xen/gntdev-dmabuf.c
@@ -720,16 +720,15 @@ static void dmabuf_imp_release_all(struct gntdev_dmabuf_priv *priv)
 
 /* DMA buffer IOCTL support. */
 
-long gntdev_ioctl_dmabuf_exp_from_refs(struct gntdev_priv *priv, int use_ptemod,
+long gntdev_ioctl_dmabuf_exp_from_refs(struct gntdev_priv *priv,
 				       struct ioctl_gntdev_dmabuf_exp_from_refs __user *u)
 {
 	struct ioctl_gntdev_dmabuf_exp_from_refs op;
 	u32 *refs;
 	long ret;
 
-	if (use_ptemod) {
-		pr_debug("Cannot provide dma-buf: use_ptemode %d\n",
-			 use_ptemod);
+	if (xen_pv_domain()) {
+		pr_debug("Cannot provide dma-buf in a PV domain\n");
 		return -EINVAL;
 	}
 
diff --git a/drivers/xen/gntdev-dmabuf.h b/drivers/xen/gntdev-dmabuf.h
index 3d9b9cf9d5a1..9adf96ac74d3 100644
--- a/drivers/xen/gntdev-dmabuf.h
+++ b/drivers/xen/gntdev-dmabuf.h
@@ -18,7 +18,7 @@ struct gntdev_dmabuf_priv *gntdev_dmabuf_init(struct file *filp);
 
 void gntdev_dmabuf_fini(struct gntdev_dmabuf_priv *priv);
 
-long gntdev_ioctl_dmabuf_exp_from_refs(struct gntdev_priv *priv, int use_ptemod,
+long gntdev_ioctl_dmabuf_exp_from_refs(struct gntdev_priv *priv,
 				       struct ioctl_gntdev_dmabuf_exp_from_refs __user *u);
 
 long gntdev_ioctl_dmabuf_exp_wait_released(struct gntdev_priv *priv,
diff --git a/drivers/xen/gntdev.c b/drivers/xen/gntdev.c
index 74491967f2ae..91ba5078c9d9 100644
--- a/drivers/xen/gntdev.c
+++ b/drivers/xen/gntdev.c
@@ -73,9 +73,6 @@ module_param(limit, uint, 0644);
 MODULE_PARM_DESC(limit,
 	"Maximum number of grants that may be mapped by one mapping request");
 
-/* True in PV mode, false otherwise */
-static int use_ptemod;
-
 static void unmap_grant_pages(struct gntdev_grant_map *map,
 			      int offset, int pages);
 
@@ -163,7 +160,7 @@ struct gntdev_grant_map *gntdev_alloc_map(struct gntdev_priv *priv, int count,
 	    NULL == add->pages     ||
 	    NULL == add->being_removed)
 		goto err;
-	if (use_ptemod) {
+	if (xen_pv_domain()) {
 		add->kmap_ops   = kvmalloc_array(count, sizeof(add->kmap_ops[0]),
 						 GFP_KERNEL);
 		add->kunmap_ops = kvmalloc_array(count, sizeof(add->kunmap_ops[0]),
@@ -211,7 +208,7 @@ struct gntdev_grant_map *gntdev_alloc_map(struct gntdev_priv *priv, int count,
 		add->grants[i].ref = INVALID_GRANT_REF;
 		add->map_ops[i].handle = INVALID_GRANT_HANDLE;
 		add->unmap_ops[i].handle = INVALID_GRANT_HANDLE;
-		if (use_ptemod) {
+		if (xen_pv_domain()) {
 			add->kmap_ops[i].handle = INVALID_GRANT_HANDLE;
 			add->kunmap_ops[i].handle = INVALID_GRANT_HANDLE;
 		}
@@ -268,7 +265,7 @@ void gntdev_put_map(struct gntdev_priv *priv, struct gntdev_grant_map *map)
 	if (!refcount_dec_and_test(&map->users))
 		return;
 
-	if (map->pages && !use_ptemod) {
+	if (map->pages && !xen_pv_domain()) {
 		/*
 		 * Increment the reference count.  This ensures that the
 		 * subsequent call to unmap_grant_pages() will not wind up
@@ -298,7 +295,7 @@ void gntdev_put_map(struct gntdev_priv *priv, struct gntdev_grant_map *map)
 		 */
 	}
 
-	if (use_ptemod && map->notifier_init)
+	if (xen_pv_domain() && map->notifier_init)
 		mmu_interval_notifier_remove(&map->notifier);
 
 	if (map->notify.flags & UNMAP_NOTIFY_SEND_EVENT) {
@@ -334,7 +331,7 @@ int gntdev_map_grant_pages(struct gntdev_grant_map *map)
 	size_t alloced = 0;
 	int i, err = 0;
 
-	if (!use_ptemod) {
+	if (!xen_pv_domain()) {
 		/* Note: it could already be mapped */
 		if (map->map_ops[0].handle != INVALID_GRANT_HANDLE)
 			return 0;
@@ -389,7 +386,7 @@ int gntdev_map_grant_pages(struct gntdev_grant_map *map)
 		if (map->flags & GNTMAP_device_map)
 			map->unmap_ops[i].dev_bus_addr = map->map_ops[i].dev_bus_addr;
 
-		if (use_ptemod) {
+		if (xen_pv_domain()) {
 			if (map->kmap_ops[i].status == GNTST_okay) {
 				alloced++;
 				map->kunmap_ops[i].handle = map->kmap_ops[i].handle;
@@ -421,7 +418,7 @@ static void __unmap_grant_pages_done(int result,
 			map->unmap_ops[offset+i].handle,
 			map->unmap_ops[offset+i].status);
 		map->unmap_ops[offset+i].handle = INVALID_GRANT_HANDLE;
-		if (use_ptemod) {
+		if (xen_pv_domain()) {
 			if (map->kunmap_ops[offset + i].status == GNTST_okay &&
 			    map->kunmap_ops[offset + i].handle != INVALID_GRANT_HANDLE)
 				successful_unmaps++;
@@ -464,7 +461,7 @@ static void __unmap_grant_pages(struct gntdev_grant_map *map, int offset,
 	}
 
 	map->unmap_data.unmap_ops = map->unmap_ops + offset;
-	map->unmap_data.kunmap_ops = use_ptemod ? map->kunmap_ops + offset : NULL;
+	map->unmap_data.kunmap_ops = xen_pv_domain() ? map->kunmap_ops + offset : NULL;
 	map->unmap_data.pages = map->pages + offset;
 	map->unmap_data.count = pages;
 	map->unmap_data.done = __unmap_grant_pages_done;
@@ -1039,7 +1036,7 @@ static long gntdev_ioctl(struct file *flip,
 
 #ifdef CONFIG_XEN_GNTDEV_DMABUF
 	case IOCTL_GNTDEV_DMABUF_EXP_FROM_REFS:
-		return gntdev_ioctl_dmabuf_exp_from_refs(priv, use_ptemod, ptr);
+		return gntdev_ioctl_dmabuf_exp_from_refs(priv, ptr);
 
 	case IOCTL_GNTDEV_DMABUF_EXP_WAIT_RELEASED:
 		return gntdev_ioctl_dmabuf_exp_wait_released(priv, ptr);
@@ -1086,7 +1083,7 @@ static int gntdev_mmap(struct file *flip, struct vm_area_struct *vma)
 
 	vm_flags_set(vma, VM_DONTEXPAND | VM_DONTDUMP | VM_MIXEDMAP);
 
-	if (use_ptemod)
+	if (xen_pv_domain())
 		vm_flags_set(vma, VM_DONTCOPY);
 
 	vma->vm_private_data = map;
@@ -1102,7 +1099,7 @@ static int gntdev_mmap(struct file *flip, struct vm_area_struct *vma)
 
 	map->pages_vm_start = vma->vm_start;
 
-	if (use_ptemod) {
+	if (xen_pv_domain()) {
 		err = mmu_interval_notifier_insert_locked(
 			&map->notifier, vma->vm_mm, vma->vm_start,
 			vma->vm_end - vma->vm_start, &gntdev_mmu_ops);
@@ -1113,7 +1110,7 @@ static int gntdev_mmap(struct file *flip, struct vm_area_struct *vma)
 	}
 	mutex_unlock(&priv->lock);
 
-	if (use_ptemod) {
+	if (xen_pv_domain()) {
 		/*
 		 * gntdev takes the address of the PTE in find_grant_ptes() and
 		 * passes it to the hypervisor in gntdev_map_grant_pages(). The
@@ -1139,7 +1136,7 @@ static int gntdev_mmap(struct file *flip, struct vm_area_struct *vma)
 	if (err)
 		goto out_put_map;
 
-	if (!use_ptemod) {
+	if (!xen_pv_domain()) {
 		err = vm_map_pages_zero(vma, map->pages, map->count);
 		if (err)
 			goto out_put_map;
@@ -1154,7 +1151,7 @@ static int gntdev_mmap(struct file *flip, struct vm_area_struct *vma)
 out_unlock_put:
 	mutex_unlock(&priv->lock);
 out_put_map:
-	if (use_ptemod)
+	if (xen_pv_domain())
 		unmap_grant_pages(map, 0, map->count);
 	gntdev_put_map(priv, map);
 	return err;
@@ -1183,8 +1180,6 @@ static int __init gntdev_init(void)
 	if (!xen_domain())
 		return -ENODEV;
 
-	use_ptemod = xen_pv_domain();
-
 	err = misc_register(&gntdev_miscdev);
 	if (err != 0) {
 		pr_err("Could not register gntdev device\n");
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Aug 26 15:02:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 15:02:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094759.1450004 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqvBP-0000T9-Lp; Tue, 26 Aug 2025 15:01:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094759.1450004; Tue, 26 Aug 2025 15:01: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 1uqvBP-0000T2-JG; Tue, 26 Aug 2025 15:01:59 +0000
Received: by outflank-mailman (input) for mailman id 1094759;
 Tue, 26 Aug 2025 15:01:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=33Xc=3G=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1uqvBO-0000Sw-Rh
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 15:01:58 +0000
Received: from mail-lf1-x129.google.com (mail-lf1-x129.google.com
 [2a00:1450:4864:20::129])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9ca3c12a-828d-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 17:01:57 +0200 (CEST)
Received: by mail-lf1-x129.google.com with SMTP id
 2adb3069b0e04-55f3e4dfc5eso2136895e87.2
 for <xen-devel@lists.xenproject.org>; Tue, 26 Aug 2025 08:01:57 -0700 (PDT)
Received: from [192.168.0.110] ([91.123.151.69])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-55f35c8bce3sm2354226e87.95.2025.08.26.08.01.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Aug 2025 08: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>
X-Inumbo-ID: 9ca3c12a-828d-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756220517; x=1756825317; 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=x895p8T7d2BpjkE5US0OHJJS39eghSQ3fdIMQApqjs8=;
        b=MUuBp6NtM1dyQ702HJEgqGYNgY+Gvx449582LpioiZwXxyWhFXYqiiaVWGpqd5rhMe
         Qa1PBZ63N/gblI5O4bsoM5iUk7uDxV1E+uWgU7gge0zZgSq86xNlUM85wztG2um6KZnm
         AD0+oxXoPCKEtKDyRN5+j9zWwjkSXcRueklfRqm1Di4MGDdXRyqjjtLZ6IE4zwYAULF+
         3v3sFCACrO7IHf1ta7eR2RoQmlNTYDQxpritHo5R4J0TOaZy9/Y9QiMJwLwef3DqkmgL
         w82kdWn2GMemN2pinSVphh4CYqq7Tv/UzLRWuI1l9LoN2dIVkAyMOPPEMaK1GeHJTM35
         pAqA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756220517; x=1756825317;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=x895p8T7d2BpjkE5US0OHJJS39eghSQ3fdIMQApqjs8=;
        b=K2rtLI4I5hBHevuOLw4DKQwAYYme/7MJk40YrgShyxRzXdkowf3P4OWDlCBduqrF8w
         vckqyFjiAwFmoaR+WA6bZbBfEds6aTqSJk9O5pA7G3xXB1VZXyNkizr2PHcMYoTWBmnw
         zKSLY3nv6bsGo36ARxO5hTT2tUKorXDR1Jpz6YKgchE5KqG8xymqMBUEByj0OjJvAOnJ
         SKhnUneh+9NB6VoznN8GScJfbqWtwH9fJPGFHMwEPCmlOkw1wtY13GrqCwJb/0Lc1P3S
         Sd4o0olzd+GS0AzSZoLHHL/Aihf4Bjm3NerVXEOhsp1l4eCxIrzST+pwDU42Egcj2CBy
         YsEQ==
X-Gm-Message-State: AOJu0YyF4RNRDWDhVbomqiqLRWcjPFcAh/6p+134373ofyVi/hvx484P
	TQDJjkvG1a0nIrZn8kvh9Q5KGOiG9sk4y9ERkjuhdqIylTLbu+BaeQng
X-Gm-Gg: ASbGncsOU50N68MSnj34sPmqw+/QmOVx7ouLqOYkyY1LsGBcc/eAm2fvZhZJZwjvcfZ
	K8OKbkzpsdP28H8gCFCvDiZYJLtBRcwDrSoWOF+GchdWlMQ+GX/QH0smnLEFUmw5vRnqXdGJGGu
	JKJkA6qQPl9vfa48mzlrgvk4cGTQzfA66FC8cbdPwJXMxZbfg1IDPN8dPrMSboL/8Yw4ZFSprSo
	j2TMg6FeO4OPQfDW/vuRLsJnY8i6nt3tjmkQeoana02KasMdg4frZoW8ZwMHUgwRmG58HZr7aEM
	59Q0GwEl6cuUCEsxMsS0ByQ07Suerq8RL9b3wIL7TbOFt/duKhiC+C9ajDH5ynLIsT7ndRHt9D8
	wVW+Np/43PEV2/uYvbpa3vdy0pg==
X-Google-Smtp-Source: AGHT+IFEvpZhTrkf2aUfygOviZf/gU62uJ4OCuFedRjoWmCFye7q4qSRZ07WGj5knQ2kpUqt4EOlgA==
X-Received: by 2002:a05:6512:33d1:b0:55f:4b12:755b with SMTP id 2adb3069b0e04-55f4b127754mr1483577e87.20.1756220516744;
        Tue, 26 Aug 2025 08:01:56 -0700 (PDT)
Message-ID: <f42d9f13-3817-4922-b112-3cc807c0e4d7@gmail.com>
Date: Tue, 26 Aug 2025 18:01:55 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 12/12] xen/arm: Suspend/resume IOMMU on Xen
 suspend/resume
To: Mykola Kvach <xakep.amatop@gmail.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>, Mykola Kvach <Mykola_Kvach@epam.com>,
 Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
References: <cover.1754943874.git.mykola_kvach@epam.com>
 <821e0762f64c8b33260a59c672eabf1da5fb4dd4.1754943875.git.mykola_kvach@epam.com>
 <87frdh7wk0.fsf@epam.com>
 <CAGeoDV9ftF_hihWJHqEV8R8X6ddbbZ_GCe7pgftD+S1u+FCr8g@mail.gmail.com>
Content-Language: en-US
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
In-Reply-To: <CAGeoDV9ftF_hihWJHqEV8R8X6ddbbZ_GCe7pgftD+S1u+FCr8g@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit



On 26.08.25 16:42, Mykola Kvach wrote:

Hello Mykola, Volodymyr


> Hi Volodymyr,
> 
> On Sat, Aug 23, 2025 at 8:55â€¯PM Volodymyr Babchuk
> <Volodymyr_Babchuk@epam.com> wrote:
>>
>> Hi,
>>
>> Mykola Kvach <xakep.amatop@gmail.com> writes:
>>
>>> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>>>
>>> This is done using generic iommu_suspend/resume functions that cause
>>> IOMMU driver specific suspend/resume handlers to be called for enabled
>>> IOMMU (if one has suspend/resume driver handlers implemented).
>>>
>>> These handlers work only when IPMMU-VMSA is used; otherwise,
>>> we return an error during system suspend requests.
>>>
>>> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>>> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
>>> Tested-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

I think, the Tested-by here should be dropped. A lot of time has passed 
since Oleksandr provided the tag, and the code has changed a bit (I am 
afraid, the tag is now stale).


>>> ---
>>>   xen/arch/arm/suspend.c | 21 +++++++++++++++++++++
>>>   1 file changed, 21 insertions(+)
>>>
>>> diff --git a/xen/arch/arm/suspend.c b/xen/arch/arm/suspend.c
>>> index b5398e5ca6..cb86426ebd 100644
>>> --- a/xen/arch/arm/suspend.c
>>> +++ b/xen/arch/arm/suspend.c
>>> @@ -4,6 +4,7 @@
>>>   #include <asm/suspend.h>
>>>   #include <xen/console.h>
>>>   #include <xen/cpu.h>
>>> +#include <xen/iommu.h>
>>>   #include <xen/llc-coloring.h>
>>>   #include <xen/sched.h>
>>>
>>> @@ -49,6 +50,13 @@ static long system_suspend(void *data)
>>>
>>>       time_suspend();
>>>
>>> +    status = iommu_suspend();
>>> +    if ( status )
>>> +    {
>>> +        system_state = SYS_STATE_resume;
>>> +        goto resume_time;
>>> +    }
>>> +
>>>       local_irq_save(flags);
>>>       status = gic_suspend();
>>>       if ( status )
>>> @@ -105,6 +113,10 @@ static long system_suspend(void *data)
>>>
>>>    resume_irqs:
>>>       local_irq_restore(flags);
>>> +
>>> +    iommu_resume();
>>> +
>>> + resume_time:
>>>       time_resume();
>>>
>>>    resume_nonboot_cpus:
>>> @@ -140,6 +152,15 @@ int host_system_suspend(void)
>>>           return -ENOSYS;
>>>       }
>>>
>>> +    /* TODO: drop check once suspend/resume support for SMMU is implemented */
>>> +#ifndef CONFIG_IPMMU_VMSA

The original patch did not seem to have this check...

>>
>> This check is meaningless, as you can have CONFIG_IPMMU_VMSA enabled
>> along with CONFIG_ARM_SMMU on a system with SMMU. I think it is enough
>> that iommu_suspend() will fail during system_suspend(), isn't it?
> 
> Not exactly. In the case of SMMU, we donâ€™t have valid iommu_suspend/iommu_resume
> handlers. So itâ€™s possible to have CONFIG_ARM_SMMU enabled and iommu_enabled
> set, but without the appropriate suspend handlers. This could lead to
> a crash during
> system_suspend().

  ... I also have doubts whether this check is needed (at least in its 
current shape). Xen has 2 SMMU drivers at the moment. Lets imagine that 
S2R for SMMUv3 is implemented, so we will need to extend #ifndef above 
to cover CONFIG_ARM_SMMU_V3 as well, right (otherwise an attempt to 
suspend SMMUv2-powered system will lead to crash)? Or there is a plan to 
implement S2R for both SMMU implementations?

***

If we care for possible crash because iommu_suspend is NULL for 
SMMUv2/SMMUv3, maybe we should consider adding stub callbacks to the 
both SMMU drivers, just returning -ENOSYS?

Let's see what other people's opinions are.

> 
> 
>>
>>
>>> +    if ( iommu_enabled )
>>> +    {
>>> +        dprintk(XENLOG_ERR, "IOMMU is enabled, suspend not supported yet\n");
>>> +        return -ENOSYS;
>>> +    }
>>> +#endif
>>> +
>>>       /*
>>>        * system_suspend should be called when Dom0 finalizes the suspend
>>>        * procedure from its boot core (VCPU#0). However, Dom0's VCPU#0 could
>>
>> --
>> WBR, Volodymyr
> 
> Best regards,
> Mykola
> 



From xen-devel-bounces@lists.xenproject.org Tue Aug 26 15:03:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 15:03:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094774.1450016 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqvCn-00017e-1R; Tue, 26 Aug 2025 15:03:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094774.1450016; Tue, 26 Aug 2025 15:03: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 1uqvCm-00017X-Tf; Tue, 26 Aug 2025 15:03:24 +0000
Received: by outflank-mailman (input) for mailman id 1094774;
 Tue, 26 Aug 2025 15:03:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=etY1=3G=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1uqvCm-00017K-2r
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 15:03:24 +0000
Received: from NAM02-DM3-obe.outbound.protection.outlook.com
 (mail-dm3nam02on2061d.outbound.protection.outlook.com
 [2a01:111:f403:2405::61d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ce7299c4-828d-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 17:03:22 +0200 (CEST)
Received: from BL1PR13CA0087.namprd13.prod.outlook.com (2603:10b6:208:2b8::32)
 by IA1PR12MB8408.namprd12.prod.outlook.com (2603:10b6:208:3db::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Tue, 26 Aug
 2025 15:03:18 +0000
Received: from BL02EPF0001A0FF.namprd03.prod.outlook.com
 (2603:10b6:208:2b8:cafe::ee) by BL1PR13CA0087.outlook.office365.com
 (2603:10b6:208:2b8::32) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.13 via Frontend Transport; Tue,
 26 Aug 2025 15:03:17 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL02EPF0001A0FF.mail.protection.outlook.com (10.167.242.106) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Tue, 26 Aug 2025 15:03:17 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 26 Aug
 2025 10:03:17 -0500
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.10; Tue, 26 Aug
 2025 08:03:16 -0700
Received: from [172.31.63.243] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Tue, 26 Aug 2025 10:03: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>
X-Inumbo-ID: ce7299c4-828d-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OjxEtNVqTw17pU47dmKbiN7g3tfKVeUFXmedezvpuS4+ZcL1p6wdjYju8Up9wEEO6pgxgAW0WCnPtHiN0e5B0FSoSBOpwU20kGsJjRC0U5UZBMVEuNIPGCC4ZmNrQCK/nN51Mj5PK+ctKN97+GwrvbFGljh7n5GjOz7MB8H6IzuTeEwDBkLb6VKs3WxfYblrUQ9T/UbfzP3MQfUkyPmxfA2ERD1beGdoQN/wM6gag8Y+mDhFJyh6v/8qo6NoGMa7XfMa6bvhT1treTyFI6JKkMDI3sOHE5yI905yg9cxn1AmjeO4/ZvThzUl0/Rh1I8EHmwqapmERrBc/ePN+qD0/w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ydX4oJBliobBALOoMAF/ClAPXYhPK9SrhaA7+tJNJp8=;
 b=koxOt6999WYSsOLbQPGueRaN6ua/QoK013VIEdNYYr84PsyJnyvXkHU5hSS7NLqY3LOzMDYrWVrBCsRUFDFtpi4AVCXeKnC/PAAwt7+C8SsUO+E6IXGEtL5uXDANP3UJ2C5STEByEq8PsNkLKSXkalF50B0T0ZzoH3TLPI6Vpz1OsULPHS/uHvh881306A0NPf730l1smKDGgS/nDYMYf7sX30fyAV3kikFpO8dqNQ9zEeG4Up580yZY4wzRipfabUyYTB501GrnaQ6H0Ss3SNEkYZMT1SBpBpOUARkmHpBxtJWd+FIy0mt6bCH/1Gs6wDhnBhip/xFUDQRHrxElyw==
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=ydX4oJBliobBALOoMAF/ClAPXYhPK9SrhaA7+tJNJp8=;
 b=kvgbG/f2X1e3671hUvae1UuM3re7G0dsAue43rvz7qb639gxlBZG09H4HqagR/L2q9zQ7iUiu/ZFY98gxqdgd+xAIYqkh/7Foa/SQ3WQNSx/zOgxJVkf9q7SOZCWfzEnK4FlfTbn2wBZyQ0vOVvWMZQ+dq1Fz0c6ML+iJTU4qPA=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <cdbd3849-c366-4d25-bf72-23587d79ab6e@amd.com>
Date: Tue, 26 Aug 2025 11:03:12 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/3] xen/events: Cleanup find_virq() return codes
To: Jan Beulich <jbeulich@suse.com>
CC: <xen-devel@lists.xenproject.org>, <linux-kernel@vger.kernel.org>, "Juergen
 Gross" <jgross@suse.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
References: <20250826005517.41547-1-jason.andryuk@amd.com>
 <20250826005517.41547-2-jason.andryuk@amd.com>
 <de9005bf-c858-4e7e-bea8-33e5ea2424fc@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <de9005bf-c858-4e7e-bea8-33e5ea2424fc@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0001A0FF:EE_|IA1PR12MB8408:EE_
X-MS-Office365-Filtering-Correlation-Id: 05456d1a-5624-4f90-169e-08dde4b1b082
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|36860700013|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?OHU2RER6eDU2cnNLN0V0V2VxODFycmdwOXRWSmZuaTFGWVhYdUU5akpQd3pk?=
 =?utf-8?B?RlJjNFRTaDc2Zy9PSDRUVW44LzJ0OTV0ZzZwc21KY1d2MEZsUmwyb3pYRVVI?=
 =?utf-8?B?c3VYdlpTVm1jaFduSFh1RldEMDBRdVdLKzZqM05rVFRjWjlQSDBES3B0ZU02?=
 =?utf-8?B?M2hGcTdRQnF6OU8vOFRtTVRVc0NURG1admQ1RXB4cll4Qkl4bG9FVWZCWTI4?=
 =?utf-8?B?aW9ub1VudmVJZmVBMmtGL1NWbGViWUtDQ2FWMWkyVE8wVUZyRS9ldlFSVVND?=
 =?utf-8?B?UDJnckVKeDZyN2VxVCtETnpzT2NXamRFRFI3dHhyWGswR09taDNDQmE5SHZT?=
 =?utf-8?B?djFHYndzM2dnanF1R040MUtqRVpBWVV5OU5QYk9Ha05KeTZqVEZKbnJFY1U4?=
 =?utf-8?B?OS9SQW0yeEdFR3VZeEFPOEdwTkVGcXNwZ3diY3hQalU0dDhEcEN5cktmUEdB?=
 =?utf-8?B?cUFvdGFTeS9SZjJaVXhOek10RjhYaHlZSmhtNXYvV1N2bmI0bmRUbkoxTktm?=
 =?utf-8?B?QVE1Y053czVFa203OExMWVRvODB6aTRlYm9NbzFBTkovSTZXd0w2UlNQaUR1?=
 =?utf-8?B?UnFvbGxYVGZKcUtxM2RyNlNjV3BZenR3aXpPeTVDL2k2Z0dYdnVuWFRYTTVk?=
 =?utf-8?B?ZEZRamFNb293S0NYb3VscFQ4OEtOOUVDQTZTeGpsWHlydXpFMjA1VDJ5cjlp?=
 =?utf-8?B?bjM1VVJLNWV1K2N3dlk0cmFmKzgyZExjMndBUXVmMzhVTzRHY0tUYWR2VUVK?=
 =?utf-8?B?aHdPdUNjM0JUUWtQRTY4WG42bE9YVWcxelRrTmV0amhxaDZKUXBTT1h4UnVG?=
 =?utf-8?B?SWhlODFVQnJLTU9FOXMvcHpiSG1lOXZyeHpLTzlCeFVoZjVrK3dzeERjYUdW?=
 =?utf-8?B?cldGRnQ1L3Jzb0UrTFFpWlZ2dG1wNHpNMTVrM1RvMm40Z3RzTFlDZkkyUk1I?=
 =?utf-8?B?ZzFHQS9mTHVUR1M3MExOOXRka3hNOTVJTzJmTlpiT2ZkQVhLL01WZ0FtRjk4?=
 =?utf-8?B?cU5SR2RoQTJlT2s3QmVDQktxQnNycVZTV0VNNU83OUZ2d1UvaTN2TjMveEp2?=
 =?utf-8?B?SXFlSVFXVGxOaW1FZ2M0VWd0azZyZmJSUlZhMnB1d292TzliOTBSVk1Edm0z?=
 =?utf-8?B?alJXaWNxUjB3bnlocmYvRnJpSzNXZU95KzcySDI4YzVsOTVQdUJIVW1FMDRH?=
 =?utf-8?B?bkt2R1JiM2F3K0o2QUovV0JHbHhHeHlYUTlRdUNQNDdaN0J1Y3hmZ0xYc0ZO?=
 =?utf-8?B?eFRON0k1WjU5Tzl2ZkNFcDViMDMyQmFkQVBJUHhyUi9IRmRjRUdtdm5obXBw?=
 =?utf-8?B?WnRPSk9UaXRhazJ5b2s3SThXdENCOHdTMVZ5UHp2T3VNL2NqV281TmNVajNn?=
 =?utf-8?B?ZDN2Wnp5RytFb2tpY3phMXdWZDVVWUFvQjhEbHBaSVRxcXZEZDQvZDQ0bElI?=
 =?utf-8?B?dE9mblVIcHRiV0YxME1WVFBqTTRPa2dLeG5CcGhuaHZMMURkZFZnbC9EbEYw?=
 =?utf-8?B?aFNzb2dpS2xqNTJkdkhtWXdIRWpQZnRlSE43RTcxQ1VHeWNPQWpad251bkNp?=
 =?utf-8?B?WFRBcDByK1RpTHc0Skh4VDloWEZvMjRKN0ExUnpEcll2ZUs5ZmpOTFh6K2ht?=
 =?utf-8?B?eVZ4bUNHWDRhSmZyaWtHaytuNTJudTg4Z3h3NFFDTkN5b01Jbkdzamd4ekxX?=
 =?utf-8?B?RmswSWxFVlhrbUhOZ3g5WVV2bzU1bUJjNTJqaXlHM1lVVTd3VDhObnZzWWxh?=
 =?utf-8?B?S0Mxb295ZC9XRHlJam1MTDA4ZkFNbGEvR2pUK25oRXI0OGp0WWRGbDdxcGxt?=
 =?utf-8?B?UDlBbTVqQ256OW15SkhLSCthc3RGWFZxZzY0a21DTXltQmxaU29FUjdidHRC?=
 =?utf-8?B?SU5IQTRSRk9zTmJEd0NRQ2NiVUZvL2ZiT3FDVDYwM25GNFQ4UW5Da3R2S1I0?=
 =?utf-8?B?d0ltQlBrblhscWttRWJoSlJlSEtQWS9hNytsTnExR0NQWjRXUGlCUnFMVHlr?=
 =?utf-8?B?RXU3Q3lpbWowUk15MnNEd1oxZ0FRU1kxUTFGSGl6QXU5dmpZeWVNZVhHWjV6?=
 =?utf-8?Q?fIo/VI?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Aug 2025 15:03:17.7695
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 05456d1a-5624-4f90-169e-08dde4b1b082
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0001A0FF.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB8408

On 2025-08-26 03:22, Jan Beulich wrote:
> On 26.08.2025 02:55, Jason Andryuk wrote:
>> rc is overwritten by the evtchn_status hypercall in each iteration, so
>> the return value will be whatever the last iteration is.
> 
> Which may even be a false "success". Especially for that it feels like ...

I'll state that here...

> 
>>   Change to an
>> explicit -ENOENT for an un-found virq and return 0 on a successful
>> match.
>>
>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> 
> ... this also wants a Fixes: tag and perhaps a Cc: to stable@.

and add these.

> 
>> --- a/drivers/xen/events/events_base.c
>> +++ b/drivers/xen/events/events_base.c
>> @@ -1318,7 +1318,7 @@ static int find_virq(unsigned int virq, unsigned int cpu, evtchn_port_t *evtchn)
>>   {
>>   	struct evtchn_status status;
>>   	evtchn_port_t port;
>> -	int rc = -ENOENT;
>> +	int rc;
> 
> Maybe best to also move this into the more narrow scope (loop body)?

Sounds good.

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

Thanks.

> 
>>   	memset(&status, 0, sizeof(status));
> 
> Having this outside of the loop is a little odd, too: It makes assumptions
> on the behavior of the hypervisor (like not altering the structure upon
> error). Yet likely not something to deal with right here.

Agreed.

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 15:28:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 15:28:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094794.1450024 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqvb9-0004hZ-UA; Tue, 26 Aug 2025 15:28:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094794.1450024; Tue, 26 Aug 2025 15:28:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqvb9-0004hS-R2; Tue, 26 Aug 2025 15:28:35 +0000
Received: by outflank-mailman (input) for mailman id 1094794;
 Tue, 26 Aug 2025 15:28:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=n+o/=3G=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqvb8-0004hM-EP
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 15:28:34 +0000
Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com
 [2a00:1450:4864:20::62b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 52cd78e3-8291-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 17:28:32 +0200 (CEST)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-afcb78ead12so800468766b.1
 for <xen-devel@lists.xenproject.org>; Tue, 26 Aug 2025 08:28: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
 a640c23a62f3a-afe48fbdb52sm803559866b.33.2025.08.26.08.28.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Aug 2025 08:28: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>
X-Inumbo-ID: 52cd78e3-8291-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756222111; x=1756826911; 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=Ikk0ogt2jTSOrk7dckJntQN+OhY/THsc82QdKbhEgE0=;
        b=DnFfqGY7ifrO3a4O5z3u+wj4By9shtDulk0ZW9a9BJPP7VGLbKx+CKcPkoBSBI1aOW
         szBB1o9P/oOFxSKgSw9SDI+DeFp6POpIXPGdi4rfdYIMoPmDODgl4SFKhRTrPawuheT+
         769/ULEAAcSbUblA/gzlYGMZ5eXLfWS0NZ2oME1Y6WLket7MIy/9iuHVOeQ8SFmbQErM
         bNr7rXPFNqdaQzP70v7TPmPZURUp9ks5Remg33kcYive3sRDd4GjO6NHU+k/TdDJuQiM
         2JcwkMBuIsJIo662CrAy+eKv0eQJfRPXCF1f65tmcBChIrSnSlT2/2J8m6ne6hsqYODL
         hmEg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756222111; x=1756826911;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=Ikk0ogt2jTSOrk7dckJntQN+OhY/THsc82QdKbhEgE0=;
        b=a/5ia85qrgA9WKoFyy5/ZqGGYzimPDNweUh3lKEk+Si9+lyT9iwFCxAjyeyWnHTWHg
         WBoft5hxNJYy9Ni/ehsmoLTCUJM2dpbHzFao+quXmaXQVQX5Uy/v/U8UuweBwe+RZiIr
         iBpFEhJHEcT0mxWpiQRaZqkSqlLufajNr5d2cg/+nGvrOQyTAIT8AkEi0yUf0kTgM47y
         y+ZNENWh/dQADlT9Cv/4Uqq7DgsqF6WEzaBykEqTu/7edz6oBu1V8XhWVQOFlHYewYhK
         QIjs49t/kThupCtwZD6ZZADRBpWIWxYiwzAdFIKY8sFPMrZs9PgIt+mcDPhpLsiJfffZ
         gZuw==
X-Gm-Message-State: AOJu0Yx7YAT3ZLNOkD/wUZiBDeVZkZJtVItWG3Ka3v/469nsTfFmHBmg
	nJ7UqEG3aPTrXFwCkdmjLjKwtOufOZlKPmm+XZo6NYn6R62KK1Zh/AZHSKbB0xF9ckpE0SIFYfm
	mKV4=
X-Gm-Gg: ASbGncvXuAl1VK7Ll/XOjd4sdx38fTpYoL2J6P337sZN9DwVwH24522BPbkq5GJ3U8F
	5IuzOdWcJV+FLn+b6WjaYN3avIn2YSUdFaxs9n7mJdkwDleOvnRYse+qQ5Mru/alPMOetb7l7bJ
	m4vSj1UAHk4PIxKrVXmyGmVMKOJUE1lfx1ReZtTEPN1vRyNZAJmfPQJvoDm0uIwAM349S91vcWL
	79iP7vUYnAeuACZ4Z0slTmKYK/Nb0IY3S6wID51jvgci2yr0Dz5PgoLHlfCcD9Bt39UFVijLABV
	LdKARfY47EfbyNcm/UZiIhbP2xWrXdgMb1Gu3KYR1+J2T1geB9lvy3y01RgKJutOFW9otvxx5tp
	TxvPMdd5zSXMrBtChwxM8LSKJsjyY2Aha4CnDtoKSA4MC5nCeKDVphzoEXMCVqNVMbmQZ3StKIO
	IcfibYrBs=
X-Google-Smtp-Source: AGHT+IHSkPHVNEPS7kqKJFqij0tFpk4h2Pc+5SctWIQV6OxpzLubJWhcGiKNjomMpnmhsUfBmh5N8Q==
X-Received: by 2002:a17:907:7f94:b0:ade:43e8:8fa4 with SMTP id a640c23a62f3a-afe28f154dcmr1593728066b.18.1756222110973;
        Tue, 26 Aug 2025 08:28:30 -0700 (PDT)
Message-ID: <a8a61b98-0798-44c1-8426-0fb18a77a6ca@suse.com>
Date: Tue, 26 Aug 2025 17:28:29 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>, Stefano Stabellini <sstabellini@kernel.org>
From: Jan Beulich <jbeulich@suse.com>
Subject: (auto-)ballooning issue
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

Hello,

the other day I observed a strange issue with XTF's selftest failing to
have its VMs created, when running all flavors in a group. (Other tests
look to be similarly affected, it's just the selftest that I run most
frequently.) Originally I suspected a PVH-specific issue, but the
problem surfacing only there is because with PVH Dom0 I have less free
memory left after boot than with PV Dom0. Beyond that, both
configurations use the same hypervisor, with built-in DOM0_MEM="-255M".

The issue looks to be further affected (but not caused) by domain
cleanup being quite a bit slower under PVH Dom0, compared to PV. I.e.
by the time the 2nd test is started, memory from the 1st one still
wasn't completely freed. The result is that randomly one of the latter
(batched) tests fails at domain creation ("failed to free memory for
the domain").

xl's freemem() calls libxl_set_memory_target() followed by
libxl_wait_for_memory_target(). The latter function expects the domain
to balloon down enough for its ->tot_pages (in the hypervisor) to be
at or below the previously set target. However, already immediately
after boot "xl list -l" and "xs ls /" show target values which are 1
page below the hypervisor's record. With libxl_set_memory_target()
requesting relative adjustment, the Dom0 kernel will balloon out the
requested number of pages, but ->tot_pages going down by as many pages
isn't enough to please libxl_wait_for_memory_target().

I'm not even close to having an opinion as to where the problem is: It
could be that the kernel's balloon driver is off by a page. I'm more
inclined though to think that it is entirely unrealistic to expect the
kernel's balloon driver and Xen to have an exactly matching view of
the memory owned by the domain. Yet then it is simply invalid to
compare values taken from Xenstore against values taken from Xen. While
problematic for absolute requests, for relative ones it should be
possible apply the decrement to the source later used to compare
against while waiting.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 15:52:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 15:52:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094809.1450035 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqvxo-0000MX-OP; Tue, 26 Aug 2025 15:52:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094809.1450035; Tue, 26 Aug 2025 15: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 1uqvxo-0000MQ-Kf; Tue, 26 Aug 2025 15:52:00 +0000
Received: by outflank-mailman (input) for mailman id 1094809;
 Tue, 26 Aug 2025 15:51:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=33Xc=3G=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1uqvxn-0000MK-D2
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 15:51:59 +0000
Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com
 [2a00:1450:4864:20::132])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 98fb210d-8294-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 17:51:58 +0200 (CEST)
Received: by mail-lf1-x132.google.com with SMTP id
 2adb3069b0e04-55f48cb7db9so1908669e87.3
 for <xen-devel@lists.xenproject.org>; Tue, 26 Aug 2025 08:51:58 -0700 (PDT)
Received: from [192.168.0.110] ([91.123.151.69])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-55f35c8bc89sm2376823e87.96.2025.08.26.08.51.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Aug 2025 08:51: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>
X-Inumbo-ID: 98fb210d-8294-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756223518; x=1756828318; 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=Tu/B+b9FVOUegPykySoQO1CG5bJfRfR472MlkTj3Aak=;
        b=laIva0Ev8vlt6Ea+3c1OTzXqPKVHq48dAGMWcnbtT3uG3gkNTROGWvTl8aaPEfxYtx
         SuF0TRQ6mN+YboFezAs73WicHxrJjY229Kd+XYzCVXbLTvoVcTwxICRsNAUqnRoCQZ9l
         IOJZunACseyzHqwjc6sJpdB9Nci3NyylmCtMvv5OhV9t8AJ4npM5LOjrApKY2haVAVec
         DJ71XeqqjWxwUS9lH4jwR/kd8TBLBCLa8mmZ2YVzD2fGKDIeZ/RPs2bPXGLeylLsLlPl
         NUksCrpPkZ+C5uHYWkgPiJYjcxGc+Mrg2h9gfA3q9e3nvIYVx/SioTL7fmi4OAkcfd7R
         f4nw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756223518; x=1756828318;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=Tu/B+b9FVOUegPykySoQO1CG5bJfRfR472MlkTj3Aak=;
        b=ioR78ZYV1VFvrLts/m7cmyUftafFv62vqYSXm+1wLuyL4r1oQX7xFGA9gmH9z2CIFm
         B0ur6ImFU9nnqrBzgzlH11aM4slT5sL/VhrTfU2mjLsxSXojJCcuF4aAf322r2DNFmb/
         ++aTNHS0xZMashqCxtiYSJNRyzXsa+GiTzHv+/I/rP/e2O6czFbr5ORvBx9ytFbxrLYZ
         VVJfFNffVx03Qagqo+maKVko0KqUyHseplvQ+l7OO9FQFmlALZJ5wlpRsYs8f2TUhDXN
         Hm/2j6q4QETV7NoZzC1eHY1dUSplcn90EVdD42OXalZTQA2fPy2/x2wN8QTux9b5pOru
         sjfQ==
X-Forwarded-Encrypted: i=1; AJvYcCU+FpjxXoNwciOJHeMJOLh5W8IhNjMNuMb7/81z1NnTZ3w7rHcXZvCLZm27sbfAg26XR0I1OpjfTXY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzHKSODmwg2bMnAQjMO7Af0nTbs/a8QjAkZ4AovWZhj4f6qQt18
	iI0eavpp+Gm/lrdkn4svBl0i2uu+S7q1OffYfqwJrcPyIFWxXPwCaBV5
X-Gm-Gg: ASbGncuKKxByMr2it5pN39L70I50N6iC1WRf9vMgxw9Z+cmLm5IoDdwElwCLAUjjWWM
	pgnn0F7MhH1A8qW5p80p4vWQMhbn3MFgPnOl7sHAFdXHrMshJEXIwIRG4eK4PpQu/lAtcAjxWHS
	rwe2IH9pSi0pbVm0Peik0XhoRGENuintpdgAizLKlY8wEkSmcq15oLhgH8w9SENpwNSMgYNUONt
	tuBzdCZOVbWlSXsR0Ztro06Bok8x2MyjnnT8FukucC0L1slKVDlY0gQUDNqudI0cZM3lTVI6jFB
	/LNLjl3fjyDErKdVLzcRjxtrhKCDLF2Afe4RSem69/7CeV7JoZ/CoFEGpTiOiJ8hl7eAUNjUnjn
	hZsy+hYnM2YfGXRIar665hVaCXbBs+XKvoyld
X-Google-Smtp-Source: AGHT+IGyQ59A/RhuTGtOFK5DCKjuGXv63ifHifdVHWa6wRMwnA36/b5v+vm3ChbpzxXl14IcwOAq4g==
X-Received: by 2002:a05:6512:ba5:b0:55f:4714:f37 with SMTP id 2adb3069b0e04-55f471412d1mr2122771e87.8.1756223517515;
        Tue, 26 Aug 2025 08:51:57 -0700 (PDT)
Message-ID: <60c0b456-bfda-430d-a1e9-f64c9a49ac54@gmail.com>
Date: Tue, 26 Aug 2025 18:51:56 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5] xen/char: implement suspend/resume calls for SCIF
 driver
To: Mykola Kvach <xakep.amatop@gmail.com>, xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
 Mykola Kvach <mykola_kvach@epam.com>
References: <e57133182b9bcecb519911c8b3f0d871955d6fef.1754540991.git.mykola_kvach@epam.com>
Content-Language: en-US
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
In-Reply-To: <e57133182b9bcecb519911c8b3f0d871955d6fef.1754540991.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 07.08.25 08:16, Mykola Kvach wrote:


Hello Mykola,

In general patch looks good to me, just one question below ...

> From: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
> 
> Implement suspend and resume callbacks for the SCIF UART driver,
> enabled when CONFIG_SYSTEM_SUSPEND is set. This allows proper
> handling of UART state across system suspend/resume cycles.
> 
> Tested on Renesas R-Car H3 Starter Kit.
> 
> Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> ---
> In patch v5, there are no changes at all;
> it was done just to trigger a review.

I think, you could ping on V4.


> 
> In patch v4, enhance commit message, no functional changes
> 
> In patch v2, I just added a CONFIG_SYSTEM_SUSPEND check around
> the suspend/resume functions in the SCIF driver.
> ---
>   xen/drivers/char/scif-uart.c | 40 ++++++++++++++++++++++++++++++++++--
>   1 file changed, 38 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/drivers/char/scif-uart.c b/xen/drivers/char/scif-uart.c
> index 757793ca45..888821a3b8 100644
> --- a/xen/drivers/char/scif-uart.c
> +++ b/xen/drivers/char/scif-uart.c
> @@ -139,9 +139,8 @@ static void scif_uart_interrupt(int irq, void *data)
>       }
>   }
>   
> -static void __init scif_uart_init_preirq(struct serial_port *port)
> +static void scif_uart_disable(struct scif_uart *uart)
>   {
> -    struct scif_uart *uart = port->uart;
>       const struct port_params *params = uart->params;
>   
>       /*
> @@ -155,6 +154,14 @@ static void __init scif_uart_init_preirq(struct serial_port *port)
>   
>       /* Reset TX/RX FIFOs */
>       scif_writew(uart, SCIF_SCFCR, SCFCR_RFRST | SCFCR_TFRST);
> +}
> +
> +static void scif_uart_init_preirq(struct serial_port *port)
> +{
> +    struct scif_uart *uart = port->uart;
> +    const struct port_params *params = uart->params;
> +
> +    scif_uart_disable(uart);
>   
>       /* Clear all errors and flags */
>       scif_readw(uart, params->status_reg);
> @@ -271,6 +278,31 @@ static void scif_uart_stop_tx(struct serial_port *port)
>       scif_writew(uart, SCIF_SCSCR, scif_readw(uart, SCIF_SCSCR) & ~SCSCR_TIE);
>   }
>   
> +#ifdef CONFIG_SYSTEM_SUSPEND
> +
> +static void scif_uart_suspend(struct serial_port *port)
> +{
> +    struct scif_uart *uart = port->uart;
> +
> +    scif_uart_stop_tx(port);

  ... I wonder, whether the call above (that disables Transmit 
interrupt) is really needed as the call below disables all interrupts 
anyway?


> +    scif_uart_disable(uart);
> +}

[snip]


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 15:53:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 15:53:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094822.1450045 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqvyu-0000vx-4N; Tue, 26 Aug 2025 15:53:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094822.1450045; Tue, 26 Aug 2025 15:53:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqvyu-0000vq-1g; Tue, 26 Aug 2025 15:53:08 +0000
Received: by outflank-mailman (input) for mailman id 1094822;
 Tue, 26 Aug 2025 15:53:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=n+o/=3G=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uqvyt-0000uy-J1
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 15:53:07 +0000
Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com
 [2a00:1450:4864:20::62b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bf81defd-8294-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 17:53:02 +0200 (CEST)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-afcb7a0550cso1008932066b.2
 for <xen-devel@lists.xenproject.org>; Tue, 26 Aug 2025 08:53: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
 a640c23a62f3a-afeb7fa311bsm48218266b.69.2025.08.26.08.53.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Aug 2025 08: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>
X-Inumbo-ID: bf81defd-8294-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756223582; x=1756828382; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=u8VU0tp2VRnLvyS7OuxyLw5eF+NulQWZz+wNWXFxsRY=;
        b=JG31mGjMCXOMWExXoPrVaz1KiFRubo5a3Q08I8cspN2ynPNl698vO+1BRy47TuBBcC
         2ZeIoz89c8NBRghLySDCzp1drjlUs7FFOr+83gAPBEfNGOEeKR25ZvzazThp4LrvU61i
         CY24iDEgNyp59C6QG0yo/fO+Sb5nj13IsSBmfgbrx95ZRiJG3x66OGDLYQFNhogsOO9u
         yTSQQxoeonRc0ByeFB29ZoIEfQtYlJPV/yvnDiAUVDnNhHKdONHq+IR/gxuV2gsDbcrJ
         e0aDvFTt1AGQomIWMlBp2S/1ZrIr8qLykTuiHEFv1nJg9ydtzJ1nBBcP1/Xatp5Tex3D
         U1Qg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756223582; x=1756828382;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=u8VU0tp2VRnLvyS7OuxyLw5eF+NulQWZz+wNWXFxsRY=;
        b=jSpWgf5t4bBjHfJBsons7KxEKxCKlzxskQIVM+/aQjlNDSgSKqmx0lfUiqRUQmYT9e
         VfoOWF/cStOJ4j7G3EdAN92s4Z82+5Ja9AR1eG5ecuybmqzRPFPq5h3Sz0lfKHgOdOtN
         0kuGiNSsyMMt2POP8tFnNBMBOFslm2AZ/YxFlgJZKp6cxm4SHtQIE3o1L4Uff13yO2RL
         SqzcNZ+PHCXGGJCd3Mk7DMKqHv/VDaZklYhAsOpPSkY/Ftj2BdeTe8fung3R6/CUAYCj
         TiRagwpZU9ixtmamStFWttCZBgJ7pQ2shB6OvwKKl5mVp55C18dAqdF1L4uiVHn+0wj9
         DbxQ==
X-Forwarded-Encrypted: i=1; AJvYcCXdtgngPn0eSF88IfuXMxtKonBDAX64hs1L5Sll29w/z1gpB1g2MuPbToaR0F6V3cQ0xkUhV+7OEyc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx9Downc9NnxuVgS6PjjlKbZGFsPseeDT32WwPQHOfdcpPYubg/
	80L/vK914wvP2SY6FrcJtcDWu46f+ENEGUzWOAT8cuHWrkN2CZIz4my3ryGCqJZWRQ==
X-Gm-Gg: ASbGncvGvikkaKR0BnR/eTdbWw9LcED+9kDVBvtVdP6+H16Hkz88W55/dZ9RP9dxgfF
	WYxZNzmWgugUV6FVy2P0kAxkluNA6qLve9ZEgYMnGDDXts+jDr0SAqPKUsunWg2j0rnQ0e+sUYp
	nXK8QcIeAZSrfbqXGXDw8LyTMXNRE+EUBx/PIrx0vecjvEin1/mO18Nku6DEZgmV8+lePyVe76N
	XUEJ1i4y1By4s75zmUBH7v1kTdY7UVhgA8cQ2L4mjFMMcgY3M9gDKdktfc7/xxCNi+Vwi47PY3M
	kMoroo0OlFy+Cbq8y0yv02+8AA7PwhjamNjOI+TC8SgU27GVviy09wZteK+NuUWU7ifDgz1hTrq
	uxuaI4tRRLpWT83/8VG2Lu39OpqxRitmLD5mKOiL8THNQ7ug1dczPPWrA7KjR2mRH+o5J1g5tH/
	wXF5Ov/E0+mvn1G4QoSg==
X-Google-Smtp-Source: AGHT+IEcnBCfbfOuVbMiwtNZs8qtn/h6aeS2FBMgOOGRybPBdP8+Rni6QxqzM4BCkZyOzUdHRpd7DA==
X-Received: by 2002:a17:907:7242:b0:afe:9f26:5819 with SMTP id a640c23a62f3a-afe9f265912mr333180566b.28.1756223582344;
        Tue, 26 Aug 2025 08:53:02 -0700 (PDT)
Message-ID: <698b0944-0be3-4c04-ba97-a8ef55ebd826@suse.com>
Date: Tue, 26 Aug 2025 17:53:01 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 00/11] xenstored patches from split hardware control
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Juergen Gross
 <jgross@suse.com>, Bertrand Marquis <bertrand.marquis@arm.com>,
 xen-devel@lists.xenproject.org
References: <20250725235858.666813-1-jason.andryuk@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250725235858.666813-1-jason.andryuk@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.07.2025 01:58, Jason Andryuk wrote:
> This is a subset of patches focusing on xenstored changes from my split
> hardware control domain series.
> 
> It should address the stubdom breakage from the previous series.
> stubdom was tested in gitlab-ci - xl list shows Domain-0 and Xenstore.
> 
> "tools/xenstored: Use priv_domid for manual nodes and permission" is an
> interesting result of looking to rename some internal variables to
> better align their purpose.
> 
> Any review or guidance on the approach is appreciated.
> 
> Jason Andryuk (11):
>   xen: Add capabilities to get_domain_state
>   tools/manage: Expose domain capabilities
>   public/io: xs_wire: Include event channel in interface page
>   xen/dom0less: store xenstore event channel in page
>   tools/xenstored: Read event channel from xenstored page
>   tools/xenstored: Add get_domain_evtchn() to find evtchn
>   tools/xenstored: Auto-introduce domains
>   tools/xenstored: Use priv_domid for manual nodes and permission
>   tools/xenstored: Rename dom0_domid to store_domid
>   tools/xenstored: Remove stubdom special casing
>   tools/xenstored: Remove hardcoded implicit path

To allow more of this to go in, you'll need to chase an ack for patch 4.
Of course you could also indicate if committing any later changes ahead
of patch 4 would be possible / sensible.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 15:56:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 15:56:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094829.1450054 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqw2b-0001VK-IX; Tue, 26 Aug 2025 15:56:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094829.1450054; Tue, 26 Aug 2025 15:56: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 1uqw2b-0001VD-Fh; Tue, 26 Aug 2025 15:56:57 +0000
Received: by outflank-mailman (input) for mailman id 1094829;
 Tue, 26 Aug 2025 15:56:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=GyYq=3G=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1uqw2a-0001V7-Oc
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 15:56:56 +0000
Received: from mail-ej1-x631.google.com (mail-ej1-x631.google.com
 [2a00:1450:4864:20::631])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 49ad4536-8295-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 17:56:54 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-afcb7aea37cso761558966b.3
 for <xen-devel@lists.xenproject.org>; Tue, 26 Aug 2025 08:56:54 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afe8c25ceafsm358613966b.87.2025.08.26.08.56.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Aug 2025 08:56: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>
X-Inumbo-ID: 49ad4536-8295-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756223814; x=1756828614; darn=lists.xenproject.org;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:from:to:cc:subject:date
         :message-id:reply-to;
        bh=v/OoEh1spNdErWKUH9/YcK6iBUBhd4On/KhJJmMIAMQ=;
        b=R71iq0KB1YQj5QR/MU8Mz4XZPEc3oAw1V4sy8bmXdJO73BV3jONB9AzUHOg3dLb/hW
         +jYh+NJiQ2u3Z/FHyP3WqHlFDvDjgJXTKr//nVF7JWMYFFqxN6bslnxIQAqinbw4xZq7
         igh4rX9OB2K3EzOymih7v3/GyD6uY0CkbARpVgIUpuzgtKncDhsuMggxjbuBdwpzyNc+
         qfl2MkMQoj9NowbQa+brcoeqM8pLUsfzin6mqAloyBYOqMu3N+4DtxOfBtfK1hRtbUZJ
         Fr9vKXLJ2HWeJfvPR6OO0WSfh9jFrdbAv9UFT5AEVaG1oF2c2aQ00e+ACQ/i1T1G1hSR
         66ZQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756223814; x=1756828614;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=v/OoEh1spNdErWKUH9/YcK6iBUBhd4On/KhJJmMIAMQ=;
        b=M6iAYKQ+5Ym8/dlleMnQyTGLpMlJAGhG65DeWrtVvmcpuYXPJa+esqWwM8kyAdJ2DK
         PprUUr6PPYQBfT7664YvpdkkdCjheB6vyjggTZO4hv8/m87AJqaqzVuIrOr5I+rgESWn
         C+/MA1M+mWxgasAJpvgcStddtrEDp1eEtEqveqrxqKNhBZQddOj5dTq+SN6dA8IWCIZ7
         Kikw/kwtdB8NL3zosc6jCY1/xgm3eYtVJg1G1U4X0J5tfZ/689OjDjO0PXDVWl371BRQ
         5PZMYfsGFj72R8p3bYlb7a0oTSKMOaQTPSdiXclVQX4R7uIAXgRjJ7Bnj7vwHaycReoj
         UWew==
X-Gm-Message-State: AOJu0YzsivWPbI/WESE3h3biDF4EjrKZWLSyecRpyftXq84KCYsO4Yur
	tsdYjhfPF+mS7FaOFY0CZdq2e3wZJwJrkP+eu13wi0iUO9oMlK+HyhfRuC0EVg==
X-Gm-Gg: ASbGncvsEEMFa6e1/prYmCdrLhdO7GR2g4fqIzh6BpsBfCR3H2VpKVa83y7slvQVHva
	nnQkxQoGwxztX1E0UWn99z7hK/St5Muo6+PvGLg9jpzmxXnsPdkwWfSW2afj9ZNamtVdiK8syRw
	3oQhG7aAKXjqayUXkreeehlfB57XONyqpAI2UZm7fq52CZ4k2FDGVRECEBUtBfhGLiLowwGtFEb
	YangGQceCakwZsvGVndK0dMn6EXtF+PDNR675M9apfgN8q0P6LtHJqWeTzmrzRwbNfVgz6Fj+Z3
	8yzLk3ZzTMonImjiiMTu9WAbaeSa+KoT66N+jqOidJfeYcV1rgUiTlpJ6atc0dyNrrc0+znRMVz
	3y477pMIGm7iVZhrB31NUgjLw8xB48wMM4JNbkRiLzW8o5w4ixe3v5CQNl17802viYropz5smcO
	7PF2urYg==
X-Google-Smtp-Source: AGHT+IHp8mAJUaw8qIohEgGuqYVSEhRozUMCSsa5zl8GLHz7kFWzBgu0n6v9C1j3r/AFw182mWT6MA==
X-Received: by 2002:a17:906:d54e:b0:af9:36b3:d695 with SMTP id a640c23a62f3a-afe29637bfbmr1563243466b.43.1756223813922;
        Tue, 26 Aug 2025 08:56:53 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------sgoe41cxqyZJkWMG0C15P3z8"
Message-ID: <614030ab-2dca-49b9-8256-f19bf848638b@gmail.com>
Date: Tue, 26 Aug 2025 17:56:52 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [Reminder] Feature Freeze is Fri Aug 29, 2025
To: Jan Beulich <jbeulich@suse.com>, Penny Zheng <Penny.Zheng@amd.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Community Manager <community.manager@xenproject.org>,
 "committers@xenproject.org" <committers@xenproject.org>
References: <07fc7122-d0ac-4dbe-800d-89086a07005b@gmail.com>
 <c243d9b1-385f-49a3-9c50-507250f7bb68@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <c243d9b1-385f-49a3-9c50-507250f7bb68@suse.com>

This is a multi-part message in MIME format.
--------------sgoe41cxqyZJkWMG0C15P3z8
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

+ Penny Zheng

On 8/26/25 7:55 AM, Jan Beulich wrote:
> On 25.08.2025 17:50, Oleksii Kurochko wrote:
>> Hello community,
>>
>> Iâ€™d like to remind everyone that the Feature Freeze deadline is approaching,
>> and we still have some outstanding requests from the community for patch series
>> to be merged into 4.21:
>>
>> 1. Enable guest suspend/resume support on ARM via vPSCI [1]
>> 2. Introduce SCI SCMI SMC multi-agent support [2]
>> 3. Introduce eSPI support [3]
>> 4. FRED work: [4], [5], possibly others (?)
>> 5. Introduce CONFIG_DOMCTL [6]
>> 6. xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE [7]
>> 7. Some other patch series I missed.
> "amd-cppc CPU Performance Scaling Driver" has been pending for quite a while,
> and really ought to make it imo. I'm inclined to say even if an exception was
> needed. Parts have gone in, I'm about to commit more parts, but whether
> everything would be in by Friday I can't predict.

Considering that only a few patches are required to receive Ack/Reviewed-by,
this could be considered for inclusion in 4.21.

Penny, do you have some time to provide a new version of the "amd-cppc CPU
Performance Scaling Driver" patch series?

~ Oleksii

--------------sgoe41cxqyZJkWMG0C15P3z8
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>+ Penny Zheng<br>
    </p>
    <div class="moz-cite-prefix">On 8/26/25 7:55 AM, Jan Beulich wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:c243d9b1-385f-49a3-9c50-507250f7bb68@suse.com">
      <pre wrap="" class="moz-quote-pre">On 25.08.2025 17:50, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">Hello community,

Iâ€™d like to remind everyone that the Feature Freeze deadline is approaching,
and we still have some outstanding requests from the community for patch series
to be merged into 4.21:

1. Enable guest suspend/resume support on ARM via vPSCI [1]
2. Introduce SCI SCMI SMC multi-agent support [2]
3. Introduce eSPI support [3]
4. FRED work: [4], [5], possibly others (?)
5. Introduce CONFIG_DOMCTL [6]
6. xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE [7]
7. Some other patch series I missed.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
"amd-cppc CPU Performance Scaling Driver" has been pending for quite a while,
and really ought to make it imo. I'm inclined to say even if an exception was
needed. Parts have gone in, I'm about to commit more parts, but whether
everything would be in by Friday I can't predict.</pre>
    </blockquote>
    <pre data-start="48" data-end="174">Considering that only a few patches are required to receive Ack/Reviewed-by,
this could be considered for inclusion in 4.21.</pre>
    <pre data-start="176" data-end="294">Penny, do you have some time to provide a new version of the "amd-cppc CPU
Performance Scaling Driver" patch series?</pre>
    <pre>~ Oleksii
</pre>
  </body>
</html>

--------------sgoe41cxqyZJkWMG0C15P3z8--


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 16:18:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 16:18:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094850.1450064 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqwMv-0004zV-7D; Tue, 26 Aug 2025 16:17:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094850.1450064; Tue, 26 Aug 2025 16:17: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 1uqwMv-0004zO-4d; Tue, 26 Aug 2025 16:17:57 +0000
Received: by outflank-mailman (input) for mailman id 1094850;
 Tue, 26 Aug 2025 16:17:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+/mc=3G=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1uqwMt-0004yn-LC
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 16:17:55 +0000
Received: from mail-lf1-x136.google.com (mail-lf1-x136.google.com
 [2a00:1450:4864:20::136])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 38ca5dc9-8298-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 18:17:54 +0200 (CEST)
Received: by mail-lf1-x136.google.com with SMTP id
 2adb3069b0e04-55f42523658so2784273e87.0
 for <xen-devel@lists.xenproject.org>; Tue, 26 Aug 2025 09:17: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>
X-Inumbo-ID: 38ca5dc9-8298-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756225074; x=1756829874; 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=SAcvPVSkSqtErIqieITcAtFbJ2W1vczHq24oF4CqUME=;
        b=lKvcC89vvf5vfW80dgS//xr4BzEq57y4k1gySaY+SCriHYlnFOx2QyPQMMDfkUjimV
         ptrRKqu/7wRoeszl0GO0uANrtFIVbQTnkbcj353aB7FJCNnK1tmeObYPMJ+2B0gu07lT
         gjiP7aMJbG8FViIdxvtAR6zg+80DV+ycOR4hte40s1VPNGLuqFwEOc3iLz8LcnIU6glY
         KntK0CN97Qs8HcX/qQyumnuRUh0azoew2+R0aQhIqinngooCM8aX7KvmV/TiW3aqTUh6
         eriqDpLchvOyy+V/MbQYVE/7va05yVtkSo1G9MzylEq88vVbBG3h2jtvb0gPIYNEL5Dq
         V6nA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756225074; x=1756829874;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=SAcvPVSkSqtErIqieITcAtFbJ2W1vczHq24oF4CqUME=;
        b=n1tD5g68GEbLIkBNuEv4twBSZAcDdaTLX1DIHFmq3gno3vXZ5HCqfLnCmcXSx7XYbd
         vZREKa0R1apwDweMWUVlFPI3HslFy5dIvhd2vGnSL5GZLE9xZEFCitMe4a5O+uPBJLiW
         sskx62/R82jtAsGJsbWIaw1KjuLSiH6gFaxFrHKWB22NgVcLUTcdSxJSC9+85JRaxd8a
         YaDMGdQ9LTuBwU7Vcn4Se1Bi5wkfvmkv00PQKUqi1aSWD65Q+sT9TLtBrPRFPKrcJCxH
         EOv8a5QkEDf6buXDBo4AAHaBliLL/IAh/rtiD9H/7jK1CDUkHQx7l1FgfksRt5CtolOy
         qkoA==
X-Forwarded-Encrypted: i=1; AJvYcCWGzViTZV7xzIyi1S6gs+asLPAfAXCK10jHPczRHkZXpWm8dVP7skvuX0QGEaCAxFYQEorzFOySMck=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyotiLpxLWkcpKpHw9B8IZvi910eXEb2kGktHqQKcUbeC9vN8fB
	0fvLBUyre1D5thFCIQUGqxkQMHuUvizn81xEr/Aej5jxUFuptoz0gC4QVW+QEspFGnWkU1K2HZe
	sS3g/yiF3fbH3Mz0pLBqikUjiDdyyhoA=
X-Gm-Gg: ASbGncu7lUyPDQXlJXKm/v38aVug8AKlmw1Yb7W3fEr/Fi+LDCSEg3YBomKTdzKiAnn
	cKuRncseI/ElIDvq+9gGOL9XfTJ1vbm9luehNmmk4KtyWuAgajGCETeVrWw87ITwVR5cwdAMCxN
	S1vdFM3PGwWuhTGXHktQCG+fsluYcvo1d/sQCfgK2xRgUU2A4jyTtnpiIiNlszXsKFx/qMtpm3a
	1XPlvAEz5NrOFUXskWFAmNrL50=
X-Google-Smtp-Source: AGHT+IGpKxX60oRhL52egjrFIE8Pa/p7MtFYckPF999x0rCSghR65ST15CBs7gAeibc0E24KA1NboJYSDezbTQqvMm4=
X-Received: by 2002:a05:6512:2908:b0:553:3422:c39d with SMTP id
 2adb3069b0e04-55f0d3a567bmr3778437e87.37.1756225073953; Tue, 26 Aug 2025
 09:17:53 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1754943874.git.mykola_kvach@epam.com> <821e0762f64c8b33260a59c672eabf1da5fb4dd4.1754943875.git.mykola_kvach@epam.com>
 <87frdh7wk0.fsf@epam.com> <CAGeoDV9ftF_hihWJHqEV8R8X6ddbbZ_GCe7pgftD+S1u+FCr8g@mail.gmail.com>
 <f42d9f13-3817-4922-b112-3cc807c0e4d7@gmail.com>
In-Reply-To: <f42d9f13-3817-4922-b112-3cc807c0e4d7@gmail.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 26 Aug 2025 19:17:42 +0300
X-Gm-Features: Ac12FXxHknqA53E7z_u6ppadShEkTb6W003dJQXa0BuhHGah5lbDoxJwJpaaXeE
Message-ID: <CAGeoDV9RbAeTHw4xBqtGL0bRgyNa6cur3f+Oj0+7fwnAhJrz+A@mail.gmail.com>
Subject: Re: [PATCH v5 12/12] xen/arm: Suspend/resume IOMMU on Xen suspend/resume
To: Oleksandr Tyshchenko <olekstysh@gmail.com>
Cc: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
	Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, 
	Michal Orzel <michal.orzel@amd.com>, Mykola Kvach <Mykola_Kvach@epam.com>, 
	Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Oleksandr,

On Tue, Aug 26, 2025 at 6:01=E2=80=AFPM Oleksandr Tyshchenko
<olekstysh@gmail.com> wrote:
>
>
>
> On 26.08.25 16:42, Mykola Kvach wrote:
>
> Hello Mykola, Volodymyr
>
>
> > Hi Volodymyr,
> >
> > On Sat, Aug 23, 2025 at 8:55=E2=80=AFPM Volodymyr Babchuk
> > <Volodymyr_Babchuk@epam.com> wrote:
> >>
> >> Hi,
> >>
> >> Mykola Kvach <xakep.amatop@gmail.com> writes:
> >>
> >>> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> >>>
> >>> This is done using generic iommu_suspend/resume functions that cause
> >>> IOMMU driver specific suspend/resume handlers to be called for enable=
d
> >>> IOMMU (if one has suspend/resume driver handlers implemented).
> >>>
> >>> These handlers work only when IPMMU-VMSA is used; otherwise,
> >>> we return an error during system suspend requests.
> >>>
> >>> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> >>> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> >>> Tested-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>
> I think, the Tested-by here should be dropped. A lot of time has passed
> since Oleksandr provided the tag, and the code has changed a bit (I am
> afraid, the tag is now stale).

Got it, I=E2=80=99ll drop the Tested-by tag in the next version.

>
>
> >>> ---
> >>>   xen/arch/arm/suspend.c | 21 +++++++++++++++++++++
> >>>   1 file changed, 21 insertions(+)
> >>>
> >>> diff --git a/xen/arch/arm/suspend.c b/xen/arch/arm/suspend.c
> >>> index b5398e5ca6..cb86426ebd 100644
> >>> --- a/xen/arch/arm/suspend.c
> >>> +++ b/xen/arch/arm/suspend.c
> >>> @@ -4,6 +4,7 @@
> >>>   #include <asm/suspend.h>
> >>>   #include <xen/console.h>
> >>>   #include <xen/cpu.h>
> >>> +#include <xen/iommu.h>
> >>>   #include <xen/llc-coloring.h>
> >>>   #include <xen/sched.h>
> >>>
> >>> @@ -49,6 +50,13 @@ static long system_suspend(void *data)
> >>>
> >>>       time_suspend();
> >>>
> >>> +    status =3D iommu_suspend();
> >>> +    if ( status )
> >>> +    {
> >>> +        system_state =3D SYS_STATE_resume;
> >>> +        goto resume_time;
> >>> +    }
> >>> +
> >>>       local_irq_save(flags);
> >>>       status =3D gic_suspend();
> >>>       if ( status )
> >>> @@ -105,6 +113,10 @@ static long system_suspend(void *data)
> >>>
> >>>    resume_irqs:
> >>>       local_irq_restore(flags);
> >>> +
> >>> +    iommu_resume();
> >>> +
> >>> + resume_time:
> >>>       time_resume();
> >>>
> >>>    resume_nonboot_cpus:
> >>> @@ -140,6 +152,15 @@ int host_system_suspend(void)
> >>>           return -ENOSYS;
> >>>       }
> >>>
> >>> +    /* TODO: drop check once suspend/resume support for SMMU is impl=
emented */
> >>> +#ifndef CONFIG_IPMMU_VMSA
>
> The original patch did not seem to have this check...
>
> >>
> >> This check is meaningless, as you can have CONFIG_IPMMU_VMSA enabled
> >> along with CONFIG_ARM_SMMU on a system with SMMU. I think it is enough
> >> that iommu_suspend() will fail during system_suspend(), isn't it?
> >
> > Not exactly. In the case of SMMU, we don=E2=80=99t have valid iommu_sus=
pend/iommu_resume
> > handlers. So it=E2=80=99s possible to have CONFIG_ARM_SMMU enabled and =
iommu_enabled
> > set, but without the appropriate suspend handlers. This could lead to
> > a crash during
> > system_suspend().
>
>   ... I also have doubts whether this check is needed (at least in its
> current shape). Xen has 2 SMMU drivers at the moment. Lets imagine that
> S2R for SMMUv3 is implemented, so we will need to extend #ifndef above
> to cover CONFIG_ARM_SMMU_V3 as well, right (otherwise an attempt to
> suspend SMMUv2-powered system will lead to crash)? Or there is a plan to
> implement S2R for both SMMU implementations?
>
> ***
>
> If we care for possible crash because iommu_suspend is NULL for
> SMMUv2/SMMUv3, maybe we should consider adding stub callbacks to the
> both SMMU drivers, just returning -ENOSYS?

I=E2=80=99m fine with that proposal, adding stub callbacks sounds like a cl=
ean
solution.

>
> Let's see what other people's opinions are.
>
> >
> >
> >>
> >>
> >>> +    if ( iommu_enabled )
> >>> +    {
> >>> +        dprintk(XENLOG_ERR, "IOMMU is enabled, suspend not supported=
 yet\n");
> >>> +        return -ENOSYS;
> >>> +    }
> >>> +#endif
> >>> +
> >>>       /*
> >>>        * system_suspend should be called when Dom0 finalizes the susp=
end
> >>>        * procedure from its boot core (VCPU#0). However, Dom0's VCPU#=
0 could
> >>
> >> --
> >> WBR, Volodymyr
> >
> > Best regards,
> > Mykola
> >
>

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 16:25:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 16:25:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094864.1450075 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqwTt-0006ek-U3; Tue, 26 Aug 2025 16:25:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094864.1450075; Tue, 26 Aug 2025 16:25:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqwTt-0006ed-RH; Tue, 26 Aug 2025 16:25:09 +0000
Received: by outflank-mailman (input) for mailman id 1094864;
 Tue, 26 Aug 2025 16:25:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=etY1=3G=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1uqwTs-0006eX-26
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 16:25:08 +0000
Received: from NAM02-DM3-obe.outbound.protection.outlook.com
 (mail-dm3nam02on20607.outbound.protection.outlook.com
 [2a01:111:f403:2405::607])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 37178964-8299-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 18:25:02 +0200 (CEST)
Received: from SJ0PR03CA0114.namprd03.prod.outlook.com (2603:10b6:a03:333::29)
 by CH2PR12MB4327.namprd12.prod.outlook.com (2603:10b6:610:7d::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Tue, 26 Aug
 2025 16:24:58 +0000
Received: from BY1PEPF0001AE16.namprd04.prod.outlook.com
 (2603:10b6:a03:333:cafe::6b) by SJ0PR03CA0114.outlook.office365.com
 (2603:10b6:a03:333::29) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.21 via Frontend Transport; Tue,
 26 Aug 2025 16:24:58 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BY1PEPF0001AE16.mail.protection.outlook.com (10.167.242.104) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Tue, 26 Aug 2025 16:24:58 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 26 Aug
 2025 11:24:57 -0500
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.10; Tue, 26 Aug
 2025 09:24:57 -0700
Received: from [172.31.63.243] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Tue, 26 Aug 2025 11:24: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>
X-Inumbo-ID: 37178964-8299-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nI1hH+3lm+73J++2c2H3WOW13dTeqf3WVaZHib0IBwr674/1ciuumti16pLprAwXL96PIxNLSskSk7nmOLCdhFqt89qC4SAiU+eDyGNinYu+ktk1JKD4+djYjcH7bc5FNA5ab8z08imhyqg76lRCKmOj7M9RAF0DBJcpgJcYSvxAwOQcgupSrojSqQiN0aMspxp3DWVq/+Sm+FszPbpvV3ohP4EQS24COEmv3xMktrAa+BOxZwZUFh9MwWH1Ft7iFLkIVKTL+ZxxJfnKjWscHSswI+lu5yNNvXTYXffvWp2aQlVyA4vKve5bL2f/oYKs8v77cr6gQKdsbn4WpbyBqA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=HLXeinFT1xaw5pFlXUQRWDhjTbuSk6PW/GX7bc1L+2M=;
 b=KbkWcFHGuBrEaZ6ycS1MjAbA6iVS5glj7edE1uKGGntxJ8/X9YfhM5w2rxwXMm5zLebdSFLaQ66b4QT69lrwZySGi12HST3zqgZs252U8Vglj1Ex3OCetqFZ1GzRAdbL/bQlaiCmcoQox8lhLeWvUzl5V4ZoYcfxXOBeWM8zZLAMY7vxdJWridiHDarvNZztasSsGfgFK8sR7iYTArOcSifBCdImojNKDota3sJ2oxsKMIFP+nAxDYrTrF0vxD3WQbZRnj0ZTnYiTthlvGr9TzncSS/LTfnxbHeE9D6b8qWqkxdlVABP3yh1qjZ3arnIRfkC21P84NjjjZWF9TKSKQ==
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=HLXeinFT1xaw5pFlXUQRWDhjTbuSk6PW/GX7bc1L+2M=;
 b=CgZ0L3gRcKxLYmgEwpt9lJ7S8BZ+x4dMZXJecOdRadVWo7jOm3b9D9Gx/iDoQx1vQsOhaKwau3L9kwm69lUtzGHOxO1/4x5J5gI8FQvrTzYsKStFYmrhmSklqReGmZn1aGAB4Io4dz/9+SXSEdUgYQ5lFSJzqATU+J3pie/XA6E=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <74dced99-e48c-4b74-8383-afc353d58dae@amd.com>
Date: Tue, 26 Aug 2025 12:24:49 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 00/11] xenstored patches from split hardware control
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>, "Juergen
 Gross" <jgross@suse.com>, Bertrand Marquis <bertrand.marquis@arm.com>,
	<xen-devel@lists.xenproject.org>
References: <20250725235858.666813-1-jason.andryuk@amd.com>
 <698b0944-0be3-4c04-ba97-a8ef55ebd826@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <698b0944-0be3-4c04-ba97-a8ef55ebd826@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PEPF0001AE16:EE_|CH2PR12MB4327:EE_
X-MS-Office365-Filtering-Correlation-Id: 66d236b5-2f89-487c-25c7-08dde4bd19ad
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|82310400026|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?ek9CZXl4U2swY3VLVGgxYW9mZnEzYjlQWnpJNFM0eXY3WkNRMUYyd3lWTHF2?=
 =?utf-8?B?eU1JTUVmNWdqdWU2Vkh3WEZNbzBma04wT3hIbUg3NFNKMkk4d0FuSklJKytX?=
 =?utf-8?B?b2FzWnEyYzd4a1ZaeEFSNmFiRDRBRUxZS1gvYjllSHNCMWp5c2xPZEZFMzVv?=
 =?utf-8?B?S05ZdUhXUDFtNXpwM1pLODV1OHErMzVMNnppMTc4NmJUTDkvUXVzMEJlQVdo?=
 =?utf-8?B?VWZDTm9GT0ZKQ1hnVEplN0FmbEFlSU5SeHZFdTNEaWxodXh2VHpwa2NETkdR?=
 =?utf-8?B?TU9aK3E5OGx4cXZtR2hRMi9MQXVycUhwOFJaV0tRb0cyV1dsZ2wwYnVhNEM0?=
 =?utf-8?B?TkFvODZqMkNIbjBCTzNlaFNzUDJ1OTFJaE93ZkI5TkFseFRYZFNScXJKWXhQ?=
 =?utf-8?B?ZDJRR29tREZ3dHlmMW1zT1B4RTd3Rm45UHF5VGF6OXR4RUtGak1pMVB1Y2RH?=
 =?utf-8?B?U0Job3cwc0o3eUpKSjJuUm8vV1VUMDNQUWhkZktOaE1kZzR0NGR4bVVZejIy?=
 =?utf-8?B?QlhrM3RjSzQzTmZNMEorK1RPM3pjODZFb0pNV0Y0Wmp3S2Q1UWZwTDUyRFc5?=
 =?utf-8?B?L1I2bElXa2l5eHVLcGllM0lKNGxuTkJoOURlQld0UnM4NFhROUM5WHplVVA4?=
 =?utf-8?B?YVZuUTJuS29zZW5Uem8wblcyVTdCY0pVS2lWNmo4RUJqbG9hcGlERi90bE9r?=
 =?utf-8?B?VjBkTDZoNzFkZW52Ym5lQmlHOFFUN2Eza3hqNEFKT05GN2hoeFBtMEdYSlpT?=
 =?utf-8?B?RjhYd21GT0V0Y1d0RHg4TW5MalB1ZFVxN3lsenlLdGIwQTVMY292OTJlQVcr?=
 =?utf-8?B?ekJnQm5sTUJpOEkrMlFaRGhMYUI1OXFZMWVwRjN4ci92ZVdXM2dLQ3ZUNFFV?=
 =?utf-8?B?RFgzYUtkTGUydmFwUVJqZWlvUU1ub2tyQUJXaHgvRHNGR0RKRktLNjREaENI?=
 =?utf-8?B?NzhmVnpkYVhYc3FQcDhCZm5KYy9iYlhCTjFDanZVQW5jcnJ0Und6Z3JmYVh3?=
 =?utf-8?B?L25RZSttTUxTSlVSVE9SN1E3RnZlSUV2eEFqemtUU0dlK0NMaXJ2M2hnNnFC?=
 =?utf-8?B?NmpReXFRSnc2QUpnaTJEYm5TVnJmK3E3a2FYckFFSEhaODRDaTQzS0JndHNt?=
 =?utf-8?B?QUU2ZktJRlM0NUcwcFpHQ3Y0eWlCdVVBQ0c5ako3M2xGc0hzS1lJTWhDUWRB?=
 =?utf-8?B?YUQzOWN1TysybFI3VmQ2aWFuSDE3S2paUzRnQU8zMFMzY3Y3d2Jrakt4VG9s?=
 =?utf-8?B?a0hycEZja0NLeDBiWWNBNjJaUVQ5NlJ0dW5kOE5TUEFpa3UxOHE1Yk14Q3c4?=
 =?utf-8?B?WmN0Yzg4dmpTdDNhbWNNc01iN1dEN1FrVjRpc1JPVnVvTU5VQ3BRTGdoaWFQ?=
 =?utf-8?B?UVlGY3VwbzR4RHNpYm9USFdPblVtZDdrazZDbnk3QzBLT1JBK2ZnWGdJSkUx?=
 =?utf-8?B?eTUvY05HWmptQk85Y01kcGtFNEFrTCt2TjNZR2IrWWcyZEcxVlJHSFZGTmJ1?=
 =?utf-8?B?TnhJK28wa3VCNWpDVHpjY0t0cUQ4d3crT2tQTGZjNzdOVTk2VHdHaUIzSkdW?=
 =?utf-8?B?VXhVR0pOYjE4bC82OS9JdDZiaEIvRWxVRE1ZL3NJa1pSOUtaOWVHWERHUUUy?=
 =?utf-8?B?M0laSDMyM0hSZTRkbTBiSGNEUU9vamEwNUMwK2w5eGtFN2Y3c2xOTzZmSUJq?=
 =?utf-8?B?Wm1XLzVWaVhpUU1BeHdVSXJUcWlEVks4VExtdjhZTjdFK2xLb3BPMmdXa2RZ?=
 =?utf-8?B?cG1zMDJMVFRNMUxyTUNQdVF4dGpiWlRROC83ai9mUVVnc1hteGxBczVWNDJJ?=
 =?utf-8?B?LzcwY0xZNnlSdzVicUhXbG9YU1NGdDF6dGJmT01XNTdxSjJDT052WTJTQkYr?=
 =?utf-8?B?UnNiV2JCYlpNd05XanQ2Wnd3TU5QQUdpaHVwUGtNeTlhc0ZsaUJoVGQ5Nncy?=
 =?utf-8?B?SkZNWVY3M0tzUHJIVlY3aTV5SG5icnNBNG81VFlnb0g4ZXp0My9WWmE3YVdl?=
 =?utf-8?B?KzhnR1R2VmxiRG5zc2dXZE1tVm5FeUpFektlOE5RaWJTOWd5a21wVlBIeXBi?=
 =?utf-8?Q?Fyj5vM?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Aug 2025 16:24:58.5832
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 66d236b5-2f89-487c-25c7-08dde4bd19ad
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BY1PEPF0001AE16.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4327

On 2025-08-26 11:53, Jan Beulich wrote:
> On 26.07.2025 01:58, Jason Andryuk wrote:
>> This is a subset of patches focusing on xenstored changes from my split
>> hardware control domain series.
>>
>> It should address the stubdom breakage from the previous series.
>> stubdom was tested in gitlab-ci - xl list shows Domain-0 and Xenstore.
>>
>> "tools/xenstored: Use priv_domid for manual nodes and permission" is an
>> interesting result of looking to rename some internal variables to
>> better align their purpose.
>>
>> Any review or guidance on the approach is appreciated.
>>
>> Jason Andryuk (11):
>>    xen: Add capabilities to get_domain_state
>>    tools/manage: Expose domain capabilities
>>    public/io: xs_wire: Include event channel in interface page
>>    xen/dom0less: store xenstore event channel in page
>>    tools/xenstored: Read event channel from xenstored page
>>    tools/xenstored: Add get_domain_evtchn() to find evtchn
>>    tools/xenstored: Auto-introduce domains
>>    tools/xenstored: Use priv_domid for manual nodes and permission
>>    tools/xenstored: Rename dom0_domid to store_domid
>>    tools/xenstored: Remove stubdom special casing
>>    tools/xenstored: Remove hardcoded implicit path
> 
> To allow more of this to go in, you'll need to chase an ack for patch 4.
> Of course you could also indicate if committing any later changes ahead
> of patch 4 would be possible / sensible.

I re-posted the xenstored changes separately and they have gone in, 
thanks.  Yes, I need to follow up on patch 4.

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 17:42:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 17:42:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094898.1450086 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqxg3-0008JU-Du; Tue, 26 Aug 2025 17:41:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094898.1450086; Tue, 26 Aug 2025 17:41: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 1uqxg3-0008JN-94; Tue, 26 Aug 2025 17:41:47 +0000
Received: by outflank-mailman (input) for mailman id 1094898;
 Tue, 26 Aug 2025 17:41:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Xnf3=3G=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1uqxg1-0008JG-2c
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 17:41:45 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id eb875f65-82a3-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 19:41:39 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-45b6278893eso7294765e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 26 Aug 2025 10:41:39 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b6c5ab181sm1701275e9.20.2025.08.26.10.41.37
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 26 Aug 2025 10:41: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>
X-Inumbo-ID: eb875f65-82a3-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756230098; x=1756834898; 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=hzPowjWPzHz/JW3GlPL+G8vbG/xpjBZLpn8wPMsgIwk=;
        b=KRnrDATBJiEATBTeYtXL3W+lAHjDSwDr6YRjX/7Li/vCEIKdRLuN2RrZ1A8ItfajVr
         z3mMMxWjyl1SCjuiX8rtuCSWAUjTSEdAJNxcQdEwjeUStbygu0ZgFuxp1SjNuoksG3t0
         EjgbmgG5ZeTsUlvNlDFhy7WdeFejEGSb0Rqbw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756230098; x=1756834898;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=hzPowjWPzHz/JW3GlPL+G8vbG/xpjBZLpn8wPMsgIwk=;
        b=lvO/zOJjEfL1gVxo7BeojZ1Q6ESyTJ3/Qj/U4p0BZURF8RGbaiRy9SNGDgcAyQPF18
         HmT9vhWtcBVJWKt/cWH2uKdDlxQBi3ZGudokm+AH+ud9iUCZbF0EV3u7boSYfzOVs8JY
         JbB3+LlLVk6enB19qwQBpjxe4wHqQmr1tXuBK3ueNNfZ0c4Tvp6OsmsdbrlKW4RPLAeI
         aq4U5ODdlHmVqiTxZxzSvpwo5/MlP2q5lw/NxUD9vD8R/YGem/clIdRPMtuFvbqPxdWS
         0yh7oBYiNvuOntiAsy2UtQLwGWnq9QvA7EcsGE95GqNA2LWhIerN/TKTlVniQyvbJodV
         +EKA==
X-Gm-Message-State: AOJu0YzpgVQyna69EllAo/DaGVxIcFSQ1QKnry2vwD5GFCorQNBUt1qL
	lmJL4OQ3u01iQgJsksYyZyGbgqt8aQ+ZxY5P9d42WZWH1ywHE0+6P8OcBbUglzJT3DkUAtWpPJ4
	NfNty
X-Gm-Gg: ASbGncvtt5MvXb3RD7+tV/dov/7iR0oOA5E3/agLtggxfdk0eozjaL3Sj2FB1qcA3gl
	WJkTapCReBNKbgmaZrs3vXsAvRc6WAYBi0pCIxuNxFAmnr9WqA0w2R/ivEzwzgfUMWVcsut/yYy
	E+y+rydF9x8nhUAsCfd4wJI4Da/rW4t+0/Pe337FaUQz3CbP0+QXPgxceG9cE2B8DOzLRfEjAgE
	ASE+174eQKPk0OuJOcHsud+ezrSJCE91JFgvxknwXt2JdTTnl06NRbQzW4eh8mlHYMYak0JYs6F
	3vQ0WV2h80kAwWx3m5bpGGOdqu6GlOc9mwjX4mWogzu8wtcOjD0mivAGv4C5EPGy+1yycsBNM/P
	iTvNyIWfK4migR7a7nFP0MgeIrLwxRXwDH0HWgG7qE2hOBkD7ljWTn+Zp3FB0mKzMhSXpv0sfEf
	kl0bF0ZCp8+Hk=
X-Google-Smtp-Source: AGHT+IEfTIn2hUlhIz0VxIEUhUNibh7JsTH1+JJJmsl+8YO0uWhy6aJfGHQS+T+d9nu1rL0z6V6nMQ==
X-Received: by 2002:a05:600c:1e8b:b0:45b:47e1:ef6f with SMTP id 5b1f17b1804b1-45b517fabfbmr125965045e9.34.1756230098232;
        Tue, 26 Aug 2025 10:41:38 -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>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2] x86/bitops: Optimise arch_ffs{,l}() some more on AMD
Date: Tue, 26 Aug 2025 18:41:35 +0100
Message-Id: <20250826174135.605220-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250527222930.1452674-1-andrew.cooper3@citrix.com>
References: <20250527222930.1452674-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

One aspect of the old ffs() infrastructure was the use of TZCNT without a
CPUID check.  Given no obvious justification, I dropped it during the cleanup.

It turns out there is a good reason, on all but the most recent AMD CPUs.

Reinstate the use of "blind" TZCNT when safe to do so.  This happens to be
preferentially in loops where a repeated saving of 5-6 uops becomes far more
relevant than a one-off scenario.  Leave an explanation of why.

It is not safe to perform this transformation for BSR and LZCNT, because they
count from opposite ends of the input operand.  Furthermore, this incorrect
transform was not caught by the selftests.

Extend the selftests with test_for_each_set_bit_reverse() as that exercises
the "x known non-zero" optimsiation path in x86's helpers.  Adjust the
existing test_for_each_set_bit() to intentionally use an asymmetric input bit
pattern, otherwise "counting from the wrong end" bugs continue to slip by.

No functional change.

Fixes: 989e5f08d33e ("x86/bitops: Improve arch_ffs() in the general case")
Fixes: 5ed26fc0768d ("xen/bitops: Implement ffsl() in common logic")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

v2:
 * Use TZCNT mnemonic given the updated toolchain baseline
 * Do not convert LZCNT.
 * Extend selftests.

https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2004918013

I've kept Jan's R-by as this is a subset of what was previously reviewed, but
I'm posting it for clarity as there are a lot of selftest changes.
---
 xen/arch/x86/include/asm/bitops.h | 13 ++++--
 xen/common/bitops.c               | 78 ++++++++++++++++++++++++++++++-
 2 files changed, 86 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/include/asm/bitops.h b/xen/arch/x86/include/asm/bitops.h
index 87eac7782f10..b17d67e8ca61 100644
--- a/xen/arch/x86/include/asm/bitops.h
+++ b/xen/arch/x86/include/asm/bitops.h
@@ -399,9 +399,16 @@ static always_inline unsigned int arch_ffs(unsigned int x)
          *
          * and the optimiser really can work with the knowledge of x being
          * non-zero without knowing it's exact value, in which case we don't
-         * need to compensate for BSF's corner cases.  Otherwise...
+         * need to compensate for BSF's corner cases.
+         *
+         * That said, we intentionally use TZCNT on capable hardware when the
+         * behaviour for the 0 case doesn't matter.  On AMD CPUs prior to
+         * Zen4, TZCNT is 1-2 uops while BSF is 6-8 with a latency to match.
+         * Intel CPUs don't suffer this discrepancy.
+         *
+         * Otherwise...
          */
-        asm ( "bsf %[val], %[res]"
+        asm ( "tzcnt %[val], %[res]"
               : [res] "=r" (r)
               : [val] "rm" (x) );
     }
@@ -428,7 +435,7 @@ static always_inline unsigned int arch_ffsl(unsigned long x)
 
     /* See arch_ffs() for safety discussions. */
     if ( __builtin_constant_p(x > 0) && x > 0 )
-        asm ( "bsf %[val], %q[res]"
+        asm ( "tzcnt %[val], %q[res]"
               : [res] "=r" (r)
               : [val] "rm" (x) );
     else
diff --git a/xen/common/bitops.c b/xen/common/bitops.c
index bd17ddef5700..14e6265037f1 100644
--- a/xen/common/bitops.c
+++ b/xen/common/bitops.c
@@ -97,14 +97,14 @@ static void __init test_for_each_set_bit(void)
     if ( ui != ui_res )
         panic("for_each_set_bit(uint) expected %#x, got %#x\n", ui, ui_res);
 
-    ul = HIDE(1UL << (BITS_PER_LONG - 1) | 1);
+    ul = HIDE(1UL << (BITS_PER_LONG - 1) | 0x11);
     for_each_set_bit ( i, ul )
         ul_res |= 1UL << i;
 
     if ( ul != ul_res )
         panic("for_each_set_bit(ulong) expected %#lx, got %#lx\n", ul, ul_res);
 
-    ull = HIDE(0x8000000180000001ULL);
+    ull = HIDE(0x8000000180000011ULL);
     for_each_set_bit ( i, ull )
         ull_res |= 1ULL << i;
 
@@ -127,6 +127,79 @@ static void __init test_for_each_set_bit(void)
         panic("for_each_set_bit(break) expected 0x1008, got %#x\n", ui_res);
 }
 
+/*
+ * A type-generic fls() which picks the appropriate fls{,l,64}() based on it's
+ * argument.
+ */
+#define fls_g(x)                                        \
+    (sizeof(x) <= sizeof(int)      ? fls(x) :           \
+     sizeof(x) <= sizeof(long)     ? flsl(x) :          \
+     sizeof(x) <= sizeof(uint64_t) ? fls64(x) :         \
+     ({ BUILD_ERROR("fls_g() Bad input type"); 0; }))
+
+/*
+ * for_each_set_bit_reverse() - Iterate over all set bits in a scalar value,
+ * from MSB to LSB.
+ *
+ * @iter An iterator name.  Scoped is within the loop only.
+ * @val  A scalar value to iterate over.
+ *
+ * A copy of @val is taken internally.
+ */
+#define for_each_set_bit_reverse(iter, val)             \
+    for ( typeof(val) __v = (val); __v; __v = 0 )       \
+        for ( unsigned int (iter);                      \
+              __v && ((iter) = fls_g(__v) - 1, true);   \
+              __clear_bit(iter, &__v) )
+
+/*
+ * Xen doesn't have need of for_each_set_bit_reverse() at present, but the
+ * construct does exercise a case of arch_fls*() not covered anywhere else by
+ * these tests.
+ */
+static void __init test_for_each_set_bit_reverse(void)
+{
+    unsigned int  ui,  ui_res = 0, tmp;
+    unsigned long ul,  ul_res = 0;
+    uint64_t      ull, ull_res = 0;
+
+    ui = HIDE(0x80008001U);
+    for_each_set_bit_reverse ( i, ui )
+        ui_res |= 1U << i;
+
+    if ( ui != ui_res )
+        panic("for_each_set_bit_reverse(uint) expected %#x, got %#x\n", ui, ui_res);
+
+    ul = HIDE(1UL << (BITS_PER_LONG - 1) | 0x11);
+    for_each_set_bit_reverse ( i, ul )
+        ul_res |= 1UL << i;
+
+    if ( ul != ul_res )
+        panic("for_each_set_bit_reverse(ulong) expected %#lx, got %#lx\n", ul, ul_res);
+
+    ull = HIDE(0x8000000180000011ULL);
+    for_each_set_bit_reverse ( i, ull )
+        ull_res |= 1ULL << i;
+
+    if ( ull != ull_res )
+        panic("for_each_set_bit_reverse(uint64) expected %#"PRIx64", got %#"PRIx64"\n", ull, ull_res);
+
+    /* Check that we can break from the middle of the loop. */
+    ui = HIDE(0x80001008U);
+    tmp = 0;
+    ui_res = 0;
+    for_each_set_bit_reverse ( i, ui )
+    {
+        if ( tmp++ > 1 )
+            break;
+
+        ui_res |= 1U << i;
+    }
+
+    if ( ui_res != 0x80001000U )
+        panic("for_each_set_bit_reverse(break) expected 0x80001000, got %#x\n", ui_res);
+}
+
 static void __init test_multiple_bits_set(void)
 {
     /*
@@ -169,6 +242,7 @@ static void __init __constructor test_bitops(void)
     test_ffs();
     test_fls();
     test_for_each_set_bit();
+    test_for_each_set_bit_reverse();
 
     test_multiple_bits_set();
     test_hweight();
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Aug 26 18:07:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 18:07:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094908.1450095 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqy4n-0002p7-7s; Tue, 26 Aug 2025 18:07:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094908.1450095; Tue, 26 Aug 2025 18:07:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqy4n-0002p0-5I; Tue, 26 Aug 2025 18:07:21 +0000
Received: by outflank-mailman (input) for mailman id 1094908;
 Tue, 26 Aug 2025 18:07:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=pZJD=3G=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1uqy4m-0002ot-FF
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 18:07:20 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7e9e4c6c-82a7-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 20:07:14 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by DB9PR03MB9709.eurprd03.prod.outlook.com (2603:10a6:10:459::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Tue, 26 Aug
 2025 18:07:11 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9052.019; Tue, 26 Aug 2025
 18:07: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>
X-Inumbo-ID: 7e9e4c6c-82a7-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iDZ5GiNQjRsIT1AXGl3F6fGwrvgr9tvrz0fNBVc9Lju0SDxKLFTBEk0kzmlg5HfJjDV5Lll5ANWdtAiKxFlWR48RfsKqoKA+WBOUczbPsluC+Uiz3zGg6j1WFUINjdJLP7DmuM1RXeZYw2+UQkL4ifshFueQApKC4Llx0ozp+odM6Ftgzdm0fisFo2BTb3LbycQKENXyKeppYDob0/R94GiuHwWg+XGoVMPjhnVTfjVSwY7LY3E2Ib/au+9eCloVC9xJ2aT7NtaDYIdb4LFWlDNpwuQJRAohJkh01sfiqNx4H9TDjj0Sszb8qM/CSVjekbIPD4OWmNyTBYRb8B5epw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=zIRdzFRKj2OPMDf0RDq7Ij2/j14ifvdzSED+t/Zmo0M=;
 b=o8sL+VH+kbOYOMF1y0CnZ+NN9m2EOJERm/1cQ4u/J5qklSzkpnwVO2JAPwS18SFXMlkSLSSiHCIXPcC/HTspm0L+5O8V6U+QqrAvaDW+UU8JHQALHmsYUQ9J/YERbc/G5YJJcc51QW4/JPH9tKvG2d91IEHv656N0AYYwknBxQF6+I3I/MN0CTnj/Ewj9itBE0S25+CsZdU1qInsRdnYdvTEa3k6z/0gSdhLmMLPzZaTzDVu5CkqYj+uyjpO0zLcoIz1J3kLTGGsT85+RCO4KMoyRzsXb1Mikfz4AgtqGOtWQI3cWcqu2+N+oB6cj9ZBLnYJwavnIaOnFWKu7VGj3A==
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=zIRdzFRKj2OPMDf0RDq7Ij2/j14ifvdzSED+t/Zmo0M=;
 b=PJ94aZ3jtG67AlGjE7wbk34VPmlDLRKLeD7SPC49yRtmRTK5tErzknNBONtjsEjEAVznUNBumyf0DbSo5/TkEMy2aGY9i49RExLcCLNK+EK6J1vP9EgmTSyYffDZNvXyiVlWfiZYeES/TXCBEONK+iAKoMMKo2EtBs4AsT96Yc3GNmx5cWmaG6ArMVFonM9suW26OQcS6sTg7B38cw2LptvrETyTNPRzKTbEzXKNe6XFC+O/FsfDWIZ8wC6JuWPTs2zcJJ+2VC/gNUvEYPZ9Ra2d8IwJE3+n+QviFBNqdISmdaklZTjr0D1OgHUYH68c/unUyzdOthrxL+SnUFGNUA==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Jan Beulich <jbeulich@suse.com>, Nicola Vetrini
	<nicola.vetrini@bugseng.com>, Stefano Stabellini <sstabellini@kernel.org>
CC: Doug Goldstein <cardoe@cardoe.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?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] misra: add deviation of Rule 2.1 for BUG() macro
Thread-Topic: [PATCH] misra: add deviation of Rule 2.1 for BUG() macro
Thread-Index: AQHcFQc77bBOPokbA0m9oV6J6fEgkLRzJgAAgAIYbQA=
Date: Tue, 26 Aug 2025 18:07:10 +0000
Message-ID: <d9e9deaa-fa3e-4f4a-aa70-772af4bc1371@epam.com>
References:
 <f7b4112aad84162c25f96a9d6db43a0c2ba85daa.1756046023.git.dmytro_prokopchuk1@epam.com>
 <60022d5c-1a9f-4a6d-8df2-bca57cefcf59@suse.com>
In-Reply-To: <60022d5c-1a9f-4a6d-8df2-bca57cefcf59@suse.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV2PR03MB9572:EE_|DB9PR03MB9709:EE_
x-ms-office365-filtering-correlation-id: e85aea69-39d1-42a3-b96b-08dde4cb60b3
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|7416014|376014|366016|1800799024|42112799006|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?UjhkdmJIVW9uMUtmbXVwWFQvOG9RN01iTkNtdXY0VmZzbkdnYXJGakFZVjQ2?=
 =?utf-8?B?NmJyYlEvTk51cWJWWU5YZFdHcFVONWN0bHYzbHUzTW5JcGN4eDgwa0wzUDNJ?=
 =?utf-8?B?WlhyM0thRWtaR2NKVlJBZ1RhcjlXeUszdjFUaFNWVTlWYk04K2hJZE8yTHFD?=
 =?utf-8?B?M2pBQ3dPOEVuZUN4aVdEcUxacXBhc3BhWkloRTk2cUtsVGNkOXR0Q0xBSXJT?=
 =?utf-8?B?WUU2WEZzQkNscExlTjBZMVVSdElIMWQ2ZlZzTmFzQlFUU21tMnIycVZBN3dQ?=
 =?utf-8?B?ekRpQXoyWmluekF1d3NubGNNZW5iWEpqNHNjbzZxRHcxaEJqMWdwV3dzZk5w?=
 =?utf-8?B?cmtCUXBMdUQxYzhiSXFSMzU4NC81ZTd4Y1U1eTVPbGFqQXl4WFRMRVFYOGcr?=
 =?utf-8?B?T1F3UGJHbVN5S0w4bWJkVEI4c2dpdFVYSHdmN3BjSXdmTlU0VzN5RHFGU1p2?=
 =?utf-8?B?WHNEU0RjWlZHeCtOTWRrOVNyR2Nlc2lXcVQ0N3dFWE9sR2pqYmFlVFpNaUNJ?=
 =?utf-8?B?K0plZ0Rtc255Qk8wUFpEOUFzNEwzdGM5VzY4ZVRmQ3Z6VjlGcmQxQ2pyU0t4?=
 =?utf-8?B?cHRKQm9tam01SUFCcXREUGpyVFZzakRlamVaOExMeWQwL21HdHpjRnFiME5l?=
 =?utf-8?B?eGRVOWVqUU51Z3g2VUZmdXJ4QlBXRk5MQjVVZGJxZUdRcjV5Q2xTNXYyRnNS?=
 =?utf-8?B?LzNxR05ERC95Ui96Wnp4V0Q5U3YxVWVNbU1KNUoxY0lsVU1zUDUwOVd2aDVh?=
 =?utf-8?B?eVZjbjd3c04wM3h2WGloOUIzT3Q0ZmxIYlBjbEdhcTJSdWp3eExJNUg1MmI0?=
 =?utf-8?B?M2ZMYnYyVW1oanpRRXQ4NGJSa1ZheVpUQzI2dkN2L01WaG51S240NEJoVHdo?=
 =?utf-8?B?bnZhbkdGRWgrZFdEZyt5M2xYVGpKdnRDWk5LRVltR2tGd3YzLzhNMUszb3pz?=
 =?utf-8?B?dWdoWnpHS0FZM05MVnMxaE1CL00zME5RdDM0aDF2bDBpcFFBak1paVpmakxp?=
 =?utf-8?B?SldtZnFHOXNWdDFXWXR5cGVQUmlDWDUwUi80UjJkYXJHSDNUWkRKWk9OZ0RO?=
 =?utf-8?B?VldKYnorNXZaQ2dGbFMzb2J3Ym1FOTQ0ZzRuSU5zUVFzYXlTMGs2d2FwVnpj?=
 =?utf-8?B?SUNnaUJraHRJSmRpejMvcFFqM3VZUnpOS0U1aDNpbkMwWEJtcXRlSVhJZWtI?=
 =?utf-8?B?WFNMSzc2TGpMQmRXVlNpakdOS1c4bHJOQ3FMMVZ0Rmw0T2UrZURVUmwyMkkx?=
 =?utf-8?B?VDJ2Y0daR1RTdjQvdWJZL2lpUkdqNElqSUJ6YW9TeU5ZV2E2c2o0K2VnTm45?=
 =?utf-8?B?eC9sYzVqQ3h5YWVDazBWUUFyTnNZTnN0VWdSQjB2U3ZWWHRFMHNGcVpuUGsr?=
 =?utf-8?B?TVdxVThjM0l0VjVGcW9COFdMRlNyNU5oWEJtNTB6Z0pWYnB1RlRHWnR0eXZC?=
 =?utf-8?B?T3MySU8rVGE0WjR1MnZzSXhnSW5JTmhhU0lZRERKTGdUTXhSY3A2aktNU0Zm?=
 =?utf-8?B?RTZQWDhRMGdDMW01UW1VdUFMVE9wejRqY1BTdEtIRXVobnorRVpINVF2bjNv?=
 =?utf-8?B?OXJjazhPUUJGU3RBWGhSNENnVUx0bC9tOGpLeUIxTnZUWUgzRHUzUlZkNFhL?=
 =?utf-8?B?REp4bHBLdnN5MFBNeWtuaEExeDVEUXR6aWpTTnAvR0ZLQUlDVU8yVEEyU2tD?=
 =?utf-8?B?M0lLVTBUa2JUNlQ5WDh4anhGb212YVpYNXpnUmk1U212cVFMZFNMSTU3bzBW?=
 =?utf-8?B?Y0l0ZVJjRVFXT3l1RzlicW1HUStYTC9vbWdtRkx6UFpsd011ZWMrL1dPMXpH?=
 =?utf-8?B?QkdJMVNJa0xGMVd1akpuZFp2aTFnVTN1WHJxT080cDY2a1lCc3VjN0daM3VG?=
 =?utf-8?B?TmhlTUFtb1FyWkVNSkVWVUdMVlB4V0lnaXVpR3Q1Wmw5bWlLZUh4SnR2NENT?=
 =?utf-8?Q?awwNdSCPLX0=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024)(42112799006)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?TWwvMzVHaURIdTdyTlFZaTc4c0FqczR0WmlyTWVKN0QxV2FYZHJYSjFnNm9u?=
 =?utf-8?B?U2JqUUp0QjlQRUZBTEQrQzBHb0R4WGtZNDBidG5FY1dLdjgvWWdkVkw5ZC9E?=
 =?utf-8?B?cVdsUVgveUFxMnpWSkcrM1BtN1NZUy9tSGt3RGY0c2NzczZMSTFidkc2dzdo?=
 =?utf-8?B?VXNlT24zMHVIb2czZWNKS3BWZkltVlRTczk2WWVocUNRdExYRjFWNW4rVDlO?=
 =?utf-8?B?dlhlOGFkZmpsOEx6U1NQUzRNc2VGWEx3V2R3UUVMamxJdnFnM2o2Vm0rUno5?=
 =?utf-8?B?em5hZHhtTWI5NGkvR09zUDFxK0Y3eitMUXVMUEdDeVhkVUpiQ1ZwRlQ5UnVP?=
 =?utf-8?B?M0NnOVlmQ3haZWNubmV6QW91RGZLQWZNM1JIY1BjUnRsUTQ4V1JyNm4yUjRB?=
 =?utf-8?B?enJUdWhNMXlSSUxKcitnSTB1bW9XVjVCSXV5VURLZUN3d1Q3dEpIR3hqcnlO?=
 =?utf-8?B?c2Q4S2llQVFjRk12Z1hJSThOeVdyQXNPZFVmeXVrUWFDczdadGJhblBoOUhS?=
 =?utf-8?B?K2k4UXVCUVF1S1p4dmxFTHd3R21MbGhYOUZCN3dTeHkzQTBWSlo5MWRQVEhx?=
 =?utf-8?B?SE40ZGJyN2Q5bjA0ZTJkaTJQR3M3YUZTcVlhMUEreVlva01kb0hzNFlMUXNE?=
 =?utf-8?B?cHJnMWFFcC92Z21qeHJNczJVQ0pQTnNvWWp5d01uUmhVczVqb0k0eGNXOFVW?=
 =?utf-8?B?ZGlwODNnVVJxN3JHY1pqdkdmZCt3NTJ5VlU2cVVucmlEUWx0SlF2TStRclVw?=
 =?utf-8?B?U2dYeXVpVG1haWZmN1BkLzNrMEF5MUpTNWJrWUs3Q2N2MWxxbHJKYzJKZDZQ?=
 =?utf-8?B?TDdUL2J5SUhXNzRKdDRRM0JEdWJPaGNSZzRTQ3JHK1Y0eldINlM5bDNsY0hT?=
 =?utf-8?B?eEg5ekJyRWlhY1ZIbUNMYjVDODJISTVxcitJS2NBUVpQaG9KcklpNlNBbHAx?=
 =?utf-8?B?UnY2TFRRMURldEVqczJyM0QyVzZIRTA3czlmaG5Va3RHSUk4S0V3dlJlcUFR?=
 =?utf-8?B?VnVTdGNVNVNiU3Q1K0krWlkvRUd6cW9wVVhpVFFTUVZQQjF1eDhJc21mVXRN?=
 =?utf-8?B?VUUwVVBONHFMV2gxdWpoR1k2QnNYelM3Nnp5RFBSSmFIWDFZVFIyK3hkaDJj?=
 =?utf-8?B?M3lMWExrWWVFeHNSOWVra1I2TjhtTzFtVk5uazdDVnZLZFFJem9FVU5WOTVR?=
 =?utf-8?B?aFRMOUEwYjNPbmNRcG5LRFU1NVA1M0dsVmVNd3FjNWE1Vk8vYTEyY2J3a0F5?=
 =?utf-8?B?NWllVHhWMlBGR3dSbVFFMzh1VGJObm5RNnZaK0hBeXBaTEF4MXZDclZTNnRm?=
 =?utf-8?B?a3NVRWRCQ1pvcFZxZnhPNkVqK29ZbEdnTDhnNWw1NWEzcG41eTBwMmRoaVJr?=
 =?utf-8?B?ODkrSHd0Vm1CSmdsMXp3TklNRzJZZmRuNDMwQnByMFFPVDJzZDZMZ0paTytU?=
 =?utf-8?B?MDU2dHZ6WTVBY0Yra2VMckttSmZ3Sk13bTNMOThSNHZSS3ppTXZqWXZnTHMx?=
 =?utf-8?B?ZHNocnMyTXB0M3NNUDJFYkZOY0lOUTA4blNJRnRIY2FlbDdXZE00bmJBMHd0?=
 =?utf-8?B?NnU5YzREU3p1ZXBwZTRyaFQ3SVVGREFHajg3dFpxUDJ1WjZUR0doQjFUWVRM?=
 =?utf-8?B?Z0d3OXpPd1FxbGNjVFNScERKb1JIZ09veGhuNTEvWUx4SmdHbi9EVFdES0sy?=
 =?utf-8?B?enRHcmJKNFNXSDlRY1ZxRGpnM3V3b2NjcXhoVFk2dG00NFE3ZVgyaW03QVoy?=
 =?utf-8?B?cEI2c3o0SDhwWGY5b3NPTisrMGhuWmNwNFRxTThNdXpoZk1MSjcrMHliK3BM?=
 =?utf-8?B?bURhTG1hVGYzUHc4QnJVTzAxM2NpZGxFMlpERzJWd2o3SXN1RFZtN0hFd2dR?=
 =?utf-8?B?SHRxbFJ2MjZubDZLb3IzWWV1d3VCUndnNTlIMmhFRy9LZUhYVDJOUmg4MGty?=
 =?utf-8?B?OTlBZkhBdWRnNW84M2N4KzB0Wk5qTzR5bUkxNnlYU0FwUUlZMDJKc2UrUVBL?=
 =?utf-8?B?S0ZZMEZHYXlhUlZzcnAwVk9mQzdZUFgvcW5FYW5EU1hBcTJlMzdDMmlVQmlw?=
 =?utf-8?B?a1FoYnI4RFQrMXVFaEhLeHZMRXVwL0NOMHFvVitNckhtQ1VBMXhBWTZ4eWwy?=
 =?utf-8?B?RDhkLzd3MUljbzNWeVpiRzRjaWp2VkdrN2RCbmZuNC9WdzV1d3dpYytlRi9o?=
 =?utf-8?B?Nnc9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <E90316A6C0E088408C0FFD4C37ED0336@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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e85aea69-39d1-42a3-b96b-08dde4cb60b3
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Aug 2025 18:07:10.8100
 (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: KWRNXweD7KUxp5C6woDLO+kD+mnrLzkMHMhk2xJR9W3l6vx5Upe8swyJgpxIndo2FE4aeIBbdh+yrGjNHtXp0zxHK68R7RPta8/38Gabj34=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB9709

DQoNCk9uIDgvMjUvMjUgMTM6MDcsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAyNC4wOC4yMDI1
IDE2OjU2LCBEbXl0cm8gUHJva29wY2h1azEgd3JvdGU6DQo+PiAtLS0gYS9kb2NzL21pc3JhL2Rl
dmlhdGlvbnMucnN0DQo+PiArKysgYi9kb2NzL21pc3JhL2RldmlhdGlvbnMucnN0DQo+PiBAQCAt
OTcsNiArOTcsMTkgQEAgRGV2aWF0aW9ucyByZWxhdGVkIHRvIE1JU1JBIEM6MjAxMiBSdWxlczoN
Cj4+ICAgICAgICAgIFhlbiBleHBlY3RzIGRldmVsb3BlcnMgdG8gZW5zdXJlIGNvZGUgcmVtYWlu
cyBzYWZlIGFuZCByZWxpYWJsZSBpbiBidWlsZHMsDQo+PiAgICAgICAgICBldmVuIHdoZW4gZGVi
dWctb25seSBhc3NlcnRpb25zIGxpa2UgYEFTU0VSVF9VTlJFQUNIQUJMRSgpIGFyZSByZW1vdmVk
Lg0KPj4gICANCj4+ICsgICAqIC0gUjIuMQ0KPj4gKyAgICAgLSBUaGUgJ0JVRygpJyBtYWNybyBp
cyBpbnRlbnRpb25hbGx5IHVzZWQgaW4gdGhlICdwcmVwYXJlX2FjcGkoKScgZnVuY3Rpb24NCj4+
ICsgICAgICAgaW4gc3BlY2lmaWMgYnVpbGQgY29uZmlndXJhdGlvbiAod2hlbiB0aGUgY29uZmln
IENPTkZJR19BQ1BJIGlzIG5vdA0KPj4gKyAgICAgICBkZWZpbmVkKSB0byB0cmlnZ2VyIGFuIGVy
cm9yIGlmIEFDUEktcmVsYXRlZCBmZWF0dXJlcyBhcmUgdXNlZCBpbmNvcnJlY3RseS4NCj4+ICsg
ICAgIC0gVGFnZ2VkIGFzIGBkZWxpYmVyYXRlYCBmb3IgRUNMQUlSLg0KPiANCj4gV2l0aA0KPiAN
Cj4gI2RlZmluZSBhY3BpX2Rpc2FibGVkIHRydWUNCj4gDQo+IGluIHhlbi9hY3BpLmggSSBkb24n
dCBzZWUgd2h5IHdlIGV2ZW4gaGF2ZSB0aGF0IGlubGluZSBzdHViLiBXaGVuIGl0J3MgZHJvcHBl
ZA0KPiBhbmQgdGhlIGRlY2xhcmF0aW9uIGxlZnQgaW4gcGxhY2Ugd2l0aG91dCAjaWZkZWYgQ09O
RklHX0FDUEkgYXJvdW5kIGl0LCB0aGUNCj4gY29tcGlsZXIgd2lsbCBEQ0UgdGhlIGNvZGUgKG11
Y2ggbGlrZSB3ZSBhcnJhbmdlIGZvciBpbiBtYW55IG90aGVyIHBsYWNlcykuIE5vDQo+IGRldmlh
dGlvbiBuZWVkZWQgdGhlbi4NCj4gDQo+IElmIHN1Y2ggYSBkZXZpYXRpb24gd2FzIHRvIGJlIGFk
ZGVkLCBpdCB3b3VsZCBuZWVkIGRpc2FtYmlndWF0aW5nLiBBIGZ1bmN0aW9uDQo+IG9mIHRoZSBn
aXZlbiBuYW1lIGNvdWxkIGFwcGVhciBpbiB4ODYgYXMgd2VsbC4gVGhhdCB3b3VsZG4ndCBiZSBj
b3ZlcmVkIGJ5IHRoZQ0KPiBFY2xhaXIgY29uZmlnIHRoZW4sIGJ1dCBpdCB3b3VsZCBiZSBjb3Zl
cmVkIGJ5IHRoZSB0ZXh0IGhlcmUuDQo+IA0KPj4gKyAgICogLSBSMi4xDQo+PiArICAgICAtIFRo
ZSAnQlVHKCknIG1hY3JvIGlzIGludGVudGlvbmFsbHkgdXNlZCBpbiAnZ2ljdjNfZG9fTFBJJygp
IGFuZA0KPj4gKyAgICAgICAnZ2ljdjNfaXRzX3NldHVwX2NvbGxlY3Rpb24oKScgZnVuY3Rpb25z
IGluIHNwZWNpZmljIGJ1aWxkIGNvbmZpZ3VyYXRpb24NCj4+ICsgICAgICAgKHdoZW4gdGhlIGNv
bmZpZyBDT05GSUdfSEFTX0lUUyBpcyBub3QgZGVmaW5lZCkgdG8gY2F0Y2ggYW5kIHByZXZlbnQg
YW55DQo+PiArICAgICAgIHVuaW50ZW5kZWQgZXhlY3V0aW9uIG9mIGNvZGUgdGhhdCBzaG91bGQg
b25seSBydW4gd2hlbiBJVFMgaXMgYXZhaWxhYmxlLg0KPj4gKyAgICAgLSBUYWdnZWQgYXMgYGRl
bGliZXJhdGVgIGZvciBFQ0xBSVIuDQo+IA0KPiBJIGRpZG4ndCBsb29rIGF0IHRoaXMsIGJ1dCBJ
IHdvdWxkIHZlcnkgbXVjaCBob3BlIHRoYXQgc29tZXRoaW5nIHNpbWlsYXIgY291bGQNCj4gYmUg
ZG9uZSB0aGVyZSBhcyB3ZWxsLg0KPiANCj4gSmFuDQoNCkFmdGVyIHNtYWxsIGNoYW5nZXMgcmVs
YXRlZCB0byBwcmVwYXJlX2FjcGkoKSBmdW5jdGlvbiwgTWlzcmEgUjIuMSANCnZpb2xhdGlvbiBo
YXMgZ29uZS4gVGhlIGNvbXBpbGVyIHJlYWxseSBkb2VzIERDRToNCg0KICAgICBpZiAoIGFjcGlf
ZGlzYWJsZWQgPDw8IHRoaXMgaXMgVFJVRSApDQogICAgIHsNCiAgICAgICAgIHJjID0gcHJlcGFy
ZV9kdGJfaHdkb20oZCwga2luZm8pOw0KICAgICAgICAgaWYgKCByYyA8IDAgKQ0KICAgICAgICAg
ICAgIHJldHVybiByYzsNCiNpZmRlZiBDT05GSUdfSEFTX1BDSQ0KICAgICAgICAgcmMgPSBwY2lf
aG9zdF9icmlkZ2VfbWFwcGluZ3MoZCk7DQojZW5kaWYNCiAgICAgfQ0KICAgICBlbHNlDQogICAg
ICAgICByYyA9IHByZXBhcmVfYWNwaShkLCBraW5mbyk7IDw8PCBEQ0UNCg0KSSB3aWxsIHB1Ymxp
c2ggaXQgYXMgc2VwYXJhdGUgcGF0Y2guDQpUaGFua3MgdG8gSmFuLCBJIHJlYWxseSBhcHByZWNp
YXRlIGhpcyBoZWxwLg0KDQoNClRoZSBzaXR1YXRpb24gd2l0aCBmdW5jdGlvbnMgZ2ljdjNfZG9f
TFBJKCksIA0KZ2ljdjNfaXRzX3NldHVwX2NvbGxlY3Rpb24oKSBhbmQgY29uZmlnIENPTkZJR19I
QVNfSVRTIGlzIGxpdHRsZSBiaXQgDQpkaWZmZXJlbnQuDQpUaGUgY29tcGlsZXIgY2FuIGRvIERD
RSBpbiBjYXNlIHdoZW4gY29uZmlnIENPTkZJR19IQVNfSVRTIGlzICJ5IiwgYW5kIA0KTWlzcmEg
UjIuMSB2aW9sYXRpb24gcmVsYXRlZCB0byB0aGVzZSBmdW5jdGlvbnMgYWxzbyBjYW4gYmUgcmVz
b2x2ZWQuDQpBY3R1YWxseSwgbm8gY2hhbmdlcyBpbiBzb3VyY2UgY29kZSBuZWVkIGZvciB0aGF0
Lg0KQnV0IEVjbGFpciBkZXRlY3RzIHRoZXNlIHZpb2xhdGlvbnMgYmVjYXVzZSBjb25maWcgQ09O
RklHX0hBU19JVFMgaXMgDQoibiIsIGFuZCBzb3VyY2UgY29kZSBpcyByZWFsbHkgY29tcGlsZWQg
d2l0aCBpbmxpbmUgc3R1YiBmdW5jdGlvbnMgKHdpdGggDQpCVUcoKSBtYWNybykuDQpUaGlzIGlz
IGJlY2F1c2UgY29uZmlnIENPTkZJR19IQVNfSVRTIGlzICJleHBlcmltZW50YWwvdW5zdXBwb3J0
ZWQiDQoNCiAgICAgY29uZmlnIEhBU19JVFMNCiAgICAgICAgICAgICBib29sICJHSUN2MyBJVFMg
TVNJIGNvbnRyb2xsZXIgc3VwcG9ydCAoVU5TVVBQT1JURUQpIiBpZiANCiAgVU5TVVBQT1JURUQN
CiAgICAgICAgIGRlcGVuZHMgb24gR0lDVjMgJiYgIU5FV19WR0lDICYmICFBUk1fMzINCg0KYW5k
IHRvIGVuYWJsZSBpdCBuZWVkIHRvIHNldCBhZGRpdGlvbmFsIGNvbmZpZzogIkNPTkZJR19VTlNV
UFBPUlRFRD15Ii4NCg0KSSB0cmllZCB0byB0ZXN0IGl0IChhZGRlZCAiQ09ORklHX1VOU1VQUE9S
VEVEPXkiIGludG8gDQphdXRvbWF0aW9uL2dpdGxhYi1jaS9hbmFseXplLnlhbWwgZmlsZSkuIFlv
dSBjYW4gc2VlIG15IENJIHBpcGVsaW5lOg0KaHR0cHM6Ly9lY2xhaXItYW5hbHlzaXMtbG9ncy54
ZW5wcm9qZWN0Lm9yZy9mcy92YXIvbG9jYWwvZWNsYWlyL3hlbi1wcm9qZWN0LmVjZGYveGVuLXBy
b2plY3QvcGVvcGxlL2RpbWFwcmtwNGsveGVuL0VDTEFJUl9ub3JtYWwvcnVsZV8yLjFfZ2ljdjNf
aXRzX2hvc3RfaGFzX2l0c192Mi9BUk02NC8xMTE0NDg1NDA5Mi9QUk9KRUNULmVjZDsvYnlfc2Vy
dmljZS5odG1sI3NlcnZpY2Uma2luZA0KDQpVbmZvcnR1bmF0ZWx5LCBJIG9ic2VydmVkICs2IG5l
dyB2aW9sYXRpb25zIHdpdGggdGhhdCBhZGRpdGlvbmFsIGNvbmZpZyANCiJDT05GSUdfVU5TVVBQ
T1JURUQ9eSIuDQoNCkkgZG9uJ3Qga25vdyBob3cgYW5kIHdoeSB0aGVzZSBFWFRSQV9YRU5fQ09O
RklHIHdlcmUgc2VsZWN0ZWQgaW4gdGhlIA0KZmlsZSAnYXV0b21hdGlvbi9naXRsYWItY2kvYW5h
bHl6ZS55YW1sJy4gQW5kIGFyZSB3ZSBhYmxlIHRvIGFkZCBuZXcgDQpjb25maWdzIGhlcmUgPy4u
Li4NCg0KU28sIEkgc2VlIHRoZSBuZXh0IHBsYW4gKGp1c3QgZnJvbSBteSBwb2ludCBvZiB2aWV3
KToNCjEuIEFkZCAiQ09ORklHX1VOU1VQUE9SVEVEPXkiIGFuZCByZXNvbHZlIG5ldyB2aW9sYXRp
b25zLg0KMi4gQ29udGludWUgd2l0aCBwcm9wb3NlZCBkZXZpYXRpb24NCjMuIC4uLiA/DQoNClRo
YW5rIHlvdSBpbiBhZHZhbmNlLg0KRG15dHJvLg0K


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 18:12:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 18:12:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094880.1450105 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqyA5-0004Nl-S2; Tue, 26 Aug 2025 18:12:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094880.1450105; Tue, 26 Aug 2025 18:12: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 1uqyA5-0004Ne-Nd; Tue, 26 Aug 2025 18:12:49 +0000
Received: by outflank-mailman (input) for mailman id 1094880;
 Tue, 26 Aug 2025 16:37:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=beyi=3G=gmail.com=ritesh.list@srs-se1.protection.inumbo.net>)
 id 1uqwg4-000075-EH
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 16:37:44 +0000
Received: from mail-pg1-x531.google.com (mail-pg1-x531.google.com
 [2607:f8b0:4864:20::531])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fc00d15d-829a-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 18:37:42 +0200 (CEST)
Received: by mail-pg1-x531.google.com with SMTP id
 41be03b00d2f7-b47174c8e45so5627449a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 26 Aug 2025 09:37:42 -0700 (PDT)
Received: from dw-tp ([171.76.82.15]) by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-248681adacdsm21450705ad.10.2025.08.26.09.37.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 26 Aug 2025 09:37: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>
X-Inumbo-ID: fc00d15d-829a-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756226260; x=1756831060; darn=lists.xenproject.org;
        h=mime-version:references:message-id:date:in-reply-to:subject:cc:to
         :from:from:to:cc:subject:date:message-id:reply-to;
        bh=jyPF/dL+2YqZRv98PVCshXGneATY8Fvhth5O4vhMkWc=;
        b=RWf3kQcX6YzKYTR9970XgbgkZ6zwh4cAo3riZ2fvDnR6N6YYb165G0fO75pYdUDzpL
         dCOXdL+o42DEOkx6x2xrHcdAzZKOSc25RliuXiHQcCmfem8IOpPD+JYfGpJSfAfwhhBd
         24bqMQCbui4YwkMijCJ4m/4Sla7N8AzhhzL67D0b0b5kEsOjISBfeWPwRuP/ITERpRuk
         nA8AMopdJV5LVn/aq9TGJCEED0uHDZ3RSPhTpIG/fPCz8QZRei6g7ilbGyzAPDY2kdl6
         hMdJ4Fl6nSOZhDHgQ4XxHmUI659jqYOacB3f6wlEYDlbsAWrdg7J8im+JggyFzfpQ45S
         8tEQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756226260; x=1756831060;
        h=mime-version:references:message-id:date:in-reply-to:subject:cc:to
         :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=jyPF/dL+2YqZRv98PVCshXGneATY8Fvhth5O4vhMkWc=;
        b=RG7S51gzQxa/y0pGWiZfdoe1SQG8QBSCvyQQdvnsgnIKRibAUahuWjnk843W3Gwk9d
         cTKFje6qDOOJO97E+QvM5sE1K9LdrVzFhclyaVb7h9enc9fmrKAEnL6mKdHt1ctOmOcH
         x6w+Cqot7x/n5wm7pud4zFE9SxifV7Q2puatUWt1WlZdF47T7rcQ28rbwg/0vOgtE/oJ
         zboibRtuZUSM5KwqfrM8tcEhwnj7SPmvLjVN5xm4j/WAcyd8ePy+a0czbPxuxY11eMiN
         D1mLD861ijBdXtc/eAHIAWPiGjjLnt9GMZTG4ZctUs4PuUpk8o+AVAaRnbKmwfy4Hwht
         pfIQ==
X-Forwarded-Encrypted: i=1; AJvYcCVBdjmZtICOMM3c6kByFhniPwXUul5VCHZdAi4QWRqvB+Xj3SaqGI6tYhEQxnGw35rrNVqXtVRkbAI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzqOJQFF/WATj0MiNvfeGCiXVjNRZ87gNn3JHl3LHhZp/dNogxp
	gPUiu5PhlbvSHFtS/Q2/wZTOum7Bsx00taonYf2v9uHhr/RVx+cpDVIqeJTgz17N
X-Gm-Gg: ASbGncslhDDMD3L+FyAYpLfCriRoTfQwU0TiraE1QcehF2c7umgBKVNjg/qquAvAaMG
	qcwrqkeVQuyC/8EglVjo69vGQBrUYMRjZHkT6+TRwGrUSLCWdhu4Pn6x+fZeajquv8ffe2aRYig
	TNZSThKcPvh8ZMLLgBgn349pKke97RcHXiGNoWN1aWdespetBjjkonQUEGLFBqZH5F8fNGHlJbZ
	Nq8KAEyq0/YvenVHykjin2BbBNqgOSRX6O477TSt73b5j9Nv//QFF3Sb2DV1/V2x3db0AmDJySX
	r274ZVGaNfcsS8OofyAiH9FYXCdqc4K+NeRiem1pwac1a2rH+5Hvq6v8fU4+O7szDwUTHSzPaX7
	Pmib4GtW+9hONzQ==
X-Google-Smtp-Source: AGHT+IHkpBzdMdA7eE7qfwfc1lxqW0m87+LkJnM6/YhAHtUnIYSPMtiSiZLKGMu2nLQJcFkeNv4YGw==
X-Received: by 2002:a17:903:32c8:b0:248:79d4:939b with SMTP id d9443c01a7336-24879d4978cmr26372675ad.54.1756226260428;
        Tue, 26 Aug 2025 09:37:40 -0700 (PDT)
From: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
To: David Hildenbrand <david@redhat.com>, linux-kernel@vger.kernel.org
Cc: linux-mm@kvack.org, xen-devel@lists.xenproject.org, 
	linux-fsdevel@vger.kernel.org, nvdimm@lists.linux.dev, 
	linuxppc-dev@lists.ozlabs.org, David Hildenbrand <david@redhat.com>, 
	Andrew Morton <akpm@linux-foundation.org>, Madhavan Srinivasan <maddy@linux.ibm.com>, 
	Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, 
	Christophe Leroy <christophe.leroy@csgroup.eu>, Juergen Gross <jgross@suse.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, 
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>, Dan Williams <dan.j.williams@intel.com>, 
	Matthew Wilcox <willy@infradead.org>, Jan Kara <jack@suse.cz>, 
	Alexander Viro <viro@zeniv.linux.org.uk>, Christian Brauner <brauner@kernel.org>, 
	Lorenzo Stoakes <lorenzo.stoakes@oracle.com>, "Liam R. Howlett" <Liam.Howlett@oracle.com>, 
	Vlastimil Babka <vbabka@suse.cz>, Mike Rapoport <rppt@kernel.org>, Suren Baghdasaryan <surenb@google.com>, 
	Michal Hocko <mhocko@suse.com>, Zi Yan <ziy@nvidia.com>, 
	Baolin Wang <baolin.wang@linux.alibaba.com>, Nico Pache <npache@redhat.com>, 
	Ryan Roberts <ryan.roberts@arm.com>, Dev Jain <dev.jain@arm.com>, Barry Song <baohua@kernel.org>, 
	Jann Horn <jannh@google.com>, Pedro Falcato <pfalcato@suse.de>, Hugh Dickins <hughd@google.com>, 
	Oscar Salvador <osalvador@suse.de>, Lance Yang <lance.yang@linux.dev>
Subject: Re: [PATCH v3 06/11] powerpc/ptdump: rename "struct pgtable_level" to "struct ptdump_pglevel"
In-Reply-To: <20250811112631.759341-7-david@redhat.com>
Date: Tue, 26 Aug 2025 21:58:09 +0530
Message-ID: <87a53mqc86.fsf@gmail.com>
References: <20250811112631.759341-1-david@redhat.com> <20250811112631.759341-7-david@redhat.com>
MIME-Version: 1.0
Content-Type: text/plain

David Hildenbrand <david@redhat.com> writes:

> We want to make use of "pgtable_level" for an enum in core-mm. Other
> architectures seem to call "struct pgtable_level" either:
> * "struct pg_level" when not exposed in a header (riscv, arm)
> * "struct ptdump_pg_level" when expose in a header (arm64)
>
> So let's follow what arm64 does.
>
> Signed-off-by: David Hildenbrand <david@redhat.com>
> ---
>  arch/powerpc/mm/ptdump/8xx.c      | 2 +-
>  arch/powerpc/mm/ptdump/book3s64.c | 2 +-
>  arch/powerpc/mm/ptdump/ptdump.h   | 4 ++--
>  arch/powerpc/mm/ptdump/shared.c   | 2 +-
>  4 files changed, 5 insertions(+), 5 deletions(-)


As mentioned in commit msg mostly a mechanical change to convert 
"struct pgtable_level" to "struct ptdump_pg_level" for aforementioned purpose.. 

The patch looks ok and compiles fine on my book3s64 and ppc32 platform. 

I think we should fix the subject line.. s/ptdump_pglevel/ptdump_pg_level

Otherwise the changes looks good to me. So please feel free to add - 
Reviewed-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com>



>
> diff --git a/arch/powerpc/mm/ptdump/8xx.c b/arch/powerpc/mm/ptdump/8xx.c
> index b5c79b11ea3c2..4ca9cf7a90c9e 100644
> --- a/arch/powerpc/mm/ptdump/8xx.c
> +++ b/arch/powerpc/mm/ptdump/8xx.c
> @@ -69,7 +69,7 @@ static const struct flag_info flag_array[] = {
>  	}
>  };
>  
> -struct pgtable_level pg_level[5] = {
> +struct ptdump_pg_level pg_level[5] = {
>  	{ /* pgd */
>  		.flag	= flag_array,
>  		.num	= ARRAY_SIZE(flag_array),
> diff --git a/arch/powerpc/mm/ptdump/book3s64.c b/arch/powerpc/mm/ptdump/book3s64.c
> index 5ad92d9dc5d10..6b2da9241d4c4 100644
> --- a/arch/powerpc/mm/ptdump/book3s64.c
> +++ b/arch/powerpc/mm/ptdump/book3s64.c
> @@ -102,7 +102,7 @@ static const struct flag_info flag_array[] = {
>  	}
>  };
>  
> -struct pgtable_level pg_level[5] = {
> +struct ptdump_pg_level pg_level[5] = {
>  	{ /* pgd */
>  		.flag	= flag_array,
>  		.num	= ARRAY_SIZE(flag_array),
> diff --git a/arch/powerpc/mm/ptdump/ptdump.h b/arch/powerpc/mm/ptdump/ptdump.h
> index 154efae96ae09..4232aa4b57eae 100644
> --- a/arch/powerpc/mm/ptdump/ptdump.h
> +++ b/arch/powerpc/mm/ptdump/ptdump.h
> @@ -11,12 +11,12 @@ struct flag_info {
>  	int		shift;
>  };
>  
> -struct pgtable_level {
> +struct ptdump_pg_level {
>  	const struct flag_info *flag;
>  	size_t num;
>  	u64 mask;
>  };
>  
> -extern struct pgtable_level pg_level[5];
> +extern struct ptdump_pg_level pg_level[5];
>  
>  void pt_dump_size(struct seq_file *m, unsigned long delta);
> diff --git a/arch/powerpc/mm/ptdump/shared.c b/arch/powerpc/mm/ptdump/shared.c
> index 39c30c62b7ea7..58998960eb9a4 100644
> --- a/arch/powerpc/mm/ptdump/shared.c
> +++ b/arch/powerpc/mm/ptdump/shared.c
> @@ -67,7 +67,7 @@ static const struct flag_info flag_array[] = {
>  	}
>  };
>  
> -struct pgtable_level pg_level[5] = {
> +struct ptdump_pg_level pg_level[5] = {
>  	{ /* pgd */
>  		.flag	= flag_array,
>  		.num	= ARRAY_SIZE(flag_array),
> -- 
> 2.50.1


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 18:14:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 18:14:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094932.1450114 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqyC7-0004yG-9N; Tue, 26 Aug 2025 18:14:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094932.1450114; Tue, 26 Aug 2025 18:14: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 1uqyC7-0004y9-6h; Tue, 26 Aug 2025 18:14:55 +0000
Received: by outflank-mailman (input) for mailman id 1094932;
 Tue, 26 Aug 2025 18:14:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=EpqW=3G=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1uqyC5-0004y3-Uy
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 18:14:54 +0000
Received: from fout-b4-smtp.messagingengine.com
 (fout-b4-smtp.messagingengine.com [202.12.124.147])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8e7736bd-82a8-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 20:14:52 +0200 (CEST)
Received: from phl-compute-09.internal (phl-compute-09.internal [10.202.2.49])
 by mailfout.stl.internal (Postfix) with ESMTP id B4E331D00182;
 Tue, 26 Aug 2025 14:14:49 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-09.internal (MEProxy); Tue, 26 Aug 2025 14:14:49 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 26 Aug 2025 14:14: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>
X-Inumbo-ID: 8e7736bd-82a8-11f0-a32c-13f23c93f187
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=1756232089;
	 x=1756318489; bh=Iu198IFIGxtw87wjEV4oZe9sR+8A4Eia3jCOA9QVlTQ=; b=
	CUrzM8IelUJKdU3ITUgP9yLMMxMTUgkLzil96428VSmdRkT2tjhBKZU8U0eD3deY
	Ni0PTIVsoxMroIWyh9E32EJnWKmTQadS1ZoM7DG6bVd/hRtevrnvyI9B/cT8Z0HJ
	rEkmNocgiDS8cnPy0V7fuct8tmhR9OZYNBVTJWAER4et3H0Nn2+nVrMBdIDH2HFk
	0JVBwg4d955VJsopdhQjhx+UgKtRd5LkbPcLHRQLRHa7S3d3tWSJUHG3oyBaK2Yu
	yKhKquit8NydF409V5kwc9U+CVdpfH2NDqWlABErjn/+dNEIu5AUk77T7Fswlk7d
	GvVm1Hd1rdwzvE0LFwReWQ==
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=fm1; t=
	1756232089; x=1756318489; bh=Iu198IFIGxtw87wjEV4oZe9sR+8A4Eia3jC
	OA9QVlTQ=; b=JgJmbQO8XJTdjQnh3oPSsTz+t7MCNyS2nHLLJnsoIuCtdfmbmHp
	9+PIoUf4StoLYKTNRTIjC0CvJm0hwWRIoyliivd8qa4FS2jfCQQYteHuhH3nES0+
	1+Xx+VGZ8D/JvbfHkfNxjU/Sm1UWg9kJuT5Ab7WtTgVbgtJ8sT0yk8zXU5F3v7sr
	qOkAGJMtaIYiz51r9hUHx6h2c9fosIJgyfPY4y1msUbyfsfOsfyRJv51MlI2GUd6
	/+sexCcSitYa07EwdQMhSx8UaJ5M/nKXBRPgA+76pWxi4EG4BZUfWo1U+7QW2Eqo
	I8iDDLEQn/rMuex3jkv3JQGDWGyuoDcQWIQ==
X-ME-Sender: <xms:mfmtaI4pBUq6u504DE46TuTiWSlBgZF5l8T-jbFiVUh52MhSoZCqDQ>
    <xme:mfmtaNJN7s58Repz4pEoPHBlGzauaNv0UM8lel4_OI8vZ-7pZtSOOUFyV7Fa8EF4-
    IUhKzEsEWKwEg>
X-ME-Received: <xmr:mfmtaA5SxPc7qHzl5VSMOL6gGCxsjiM_NUU-rYaZyLAfQUszCROkM4ivcx86_WLAsFHlYhqnv8e2G1RfEZWG9AC2_OyZqlZ21fg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgddujeehleeiucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepueekteet
    gefggfekudehteegieeljeejieeihfejgeevhfetgffgteeuteetueetnecuffhomhgrih
    hnpehgihhthhhusgdrtghomhenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhep
    mhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrg
    gsrdgtohhmpdhnsggprhgtphhtthhopeefpdhmohguvgepshhmthhpohhuthdprhgtphht
    thhopehrohhgvghrrdhprghusegtihhtrhhigidrtghomhdprhgtphhtthhopehjsggvuh
    hlihgthhesshhushgvrdgtohhmpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishht
    shdrgigvnhhprhhojhgvtghtrdhorhhg
X-ME-Proxy: <xmx:mfmtaIz_mBMBLhoq3CXH7W7nkkuHEABHutmqjPHXFfh5gfiIrwXYAg>
    <xmx:mfmtaMYXXtVJYJuQWJ1akr3paGmKQ-3D1Om5TTnhUNNiFI3wwxzSFA>
    <xmx:mfmtaCQNx27O6pzWceKfBF8e5IXW0zR6iUQzMoCmCJw51dQTOajRbw>
    <xmx:mfmtaOyw7bjQYM1VPu2b20QddLXFCmvdEaHBiYFUQI7_0kWfBg5axA>
    <xmx:mfmtaGTQjDQIUMsJbmMCMzgDHalMbFMUZQdKCEV1SsVJHryHoW1fVwo6>
Feedback-ID: i1568416f:Fastmail
Date: Tue, 26 Aug 2025 20:14:47 +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: Jan Beulich <jbeulich@suse.com>,
	xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: MSI-X cleanup(?) issue with passthrough after domU restart
Message-ID: <aK35l46_vMfaJ61w@mail-itl>
References: <aK0St0oUkJzR9lO0@mail-itl>
 <2aafbace-3aa2-4f58-8f6c-2815cd2315ad@suse.com>
 <aK1wSKTg5LcuzBDc@macbook.local>
 <aK2TLuB_yKlWjFgM@mail-itl>
 <aK28ubf5F3x-of3X@mail-itl>
 <aK3JFqFHMZgWHzy7@Mac.lan>
 <aK3KIWOl1EbpaWBM@mail-itl>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="XYjHLFKe6qQk+9uo"
Content-Disposition: inline
In-Reply-To: <aK3KIWOl1EbpaWBM@mail-itl>


--XYjHLFKe6qQk+9uo
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Tue, 26 Aug 2025 20:14:47 +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: Jan Beulich <jbeulich@suse.com>,
	xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: MSI-X cleanup(?) issue with passthrough after domU restart

On Tue, Aug 26, 2025 at 04:52:17PM +0200, Marek Marczykowski-G=C3=B3recki w=
rote:
> On Tue, Aug 26, 2025 at 04:47:50PM +0200, Roger Pau Monn=C3=A9 wrote:
> > On Tue, Aug 26, 2025 at 03:55:05PM +0200, Marek Marczykowski-G=C3=B3rec=
ki wrote:
> > > On Tue, Aug 26, 2025 at 12:57:50PM +0200, Marek Marczykowski-G=C3=B3r=
ecki wrote:
> > > > On Tue, Aug 26, 2025 at 10:28:56AM +0200, Roger Pau Monn=C3=A9 wrot=
e:
> > > > > On Tue, Aug 26, 2025 at 08:16:56AM +0200, Jan Beulich wrote:
> > > > > > On 26.08.2025 03:49, Marek Marczykowski-G=C3=B3recki wrote:
> > > > > > > Hi,
> > > > > > >=20
> > > > > > > I'm hitting an MSI-X issue after rebooting the domU. The symp=
toms are
> > > > > > > rather boring: on initial domU start the device (realtek eth =
card) works
> > > > > > > fine, but after domU restart, the link doesn't come up (there=
 is no
> > > > > > > "Link is Up" message anymore). No errors from domU driver or =
Xen. I
> > > > > > > tracked it down to MSI-X - if I force INTx (via pci=3Dnomsi o=
n domU
> > > > > > > cmdline) it works fine. Convincing the driver to poll instead=
 of waiting
> > > > > > > for an interrupt also workarounds the issue.
> > > > > > >=20
> > > > > > > I noticed also some interrupts are not cleaned up on restart.=
 The list
> > > > > > > of MSIs in 'Q' debug key output grows:
> > > > > > >=20
> > > > > > >     (XEN) 0000:03:00.0 - d22 - node -1  - MSIs < 41 42 43 44 =
45 46 47 >
> > > > > > >     restart sys-net domU
> > > > > > >     (XEN) 0000:03:00.0 - d24 - node -1  - MSIs < 41 42 43 44 =
45 46 47 48 >
> > > > > > >     restart sys-net domU
> > > > > > >     (XEN) 0000:03:00.0 - d26 - node -1  - MSIs < 41 42 43 44 =
45 46 47 48 49 >
> > > > > > >=20
> > > > > > > and 'M' output is:
> > > > > > >=20
> > > > > > >     (XEN)  MSI-X   41 vec=3Db1 lowest  edge   assert  log low=
est dest=3D00000001 mask=3D1/H /1
> > > > > > >     (XEN)  MSI-X   42 vec=3Db9 lowest  edge   assert  log low=
est dest=3D00000004 mask=3D1/HG/1
> > > > > > >     (XEN)  MSI-X   43 vec=3Dc1 lowest  edge   assert  log low=
est dest=3D00000010 mask=3D1/HG/1
> > > > > > >     (XEN)  MSI-X   44 vec=3Dd9 lowest  edge   assert  log low=
est dest=3D00000001 mask=3D1/HG/1
> > > > > > >     (XEN)  MSI-X   45 vec=3De1 lowest  edge   assert  log low=
est dest=3D00000001 mask=3D1/HG/1
> > > > > > >     (XEN)  MSI-X   46 vec=3De9 lowest  edge   assert  log low=
est dest=3D00000040 mask=3D1/HG/1
> > > > > > >     (XEN)  MSI-X   47 vec=3D32 lowest  edge   assert  log low=
est dest=3D00000004 mask=3D1/HG/1
> > > > > > >     (XEN)  MSI-X   48 vec=3D3a lowest  edge   assert  log low=
est dest=3D00000040 mask=3D1/HG/1
> > > > > > >     (XEN)  MSI-X   49 vec=3D42 lowest  edge   assert  log low=
est dest=3D00000010 mask=3D1/ G/1
> > > > > > >=20
> > > > > > > And also, after starting and stopping the domU, `xl pci-assig=
nable-remove 03:00.0`
> > > > > > > makes pciback to complain:
> > > > > > >=20
> > > > > > >     [ 1180.919874] pciback 0000:03:00.0: xen_pciback: MSI-X r=
elease failed (-16)
> > > > > > >=20
> > > > > > > This is all running on Xen 4.19.3, but I don't see much chang=
es in this
> > > > > > > area since then.
> > > > > > >=20
> > > > > > > Some more info collected at https://github.com/QubesOS/qubes-=
issues/issues/9335
> > > > > > >=20
> > > > > > > My question is: what should be responsible for this cleanup o=
n domain
> > > > > > > destroy? Xen, or maybe device model (which is QEMU in stubdom=
ain here)?
> > > > > >=20
> > > > > > The expectation is that qemu invokes the necessary cleanup, but=
 of course ...
> > > > > >=20
> > > > > > > I see some cleanup (apparently not enough) happening via QEMU=
 when the
> > > > > > > domU driver is unloaded, but logically correct cleanup should=
n't depend
> > > > > > > on correct domU operation...
> > > > > >=20
> > > > > > ... Xen may not make itself dependent upon either DomU or QEMU.
> > > > >=20
> > > > > AFAICT free_domain_pirqs() called by arch_domain_destroy() should=
 take
> > > > > care of unbinding and freeing pirqs (but obviously not in this ca=
se).
> > > > > Can you repeat the test with a debug=3Dy hypervisor and post the
> > > > > resulting serial or dmesg here?  Some of the errors on those path=
s are
> > > > > printed with dprintk() and won't be visible unless using a Xen de=
bug
> > > > > build.
> > > >=20
> > > > Sure, will do.
> > >=20
> > > Output collected during domU shutdown and subsequent startup (dom0 lo=
gs
> > > to Xen console here too):
> > > https://gist.github.com/marmarek/6dc3ac14d3ba840482e6361fcbd37c30
> > >=20
> > > I don't see any errors there...
> >=20
> > Hm, yes, I don't see any errors either.  Do you think you could
> > instrument unmap_domain_pirq() and figure out whether it gets called,
> > and if such call to unmap the PIRQ succeeds?
>=20
> Sure, now that I know where to look at, I'll try to find out what goes
> wrong.

Ok, after adding several debug prints there and looking why it's not
called, I found it's a completely different issue. arch_domain_destroy()
is not called, because there was a dom0 userspace process still having a
page mapped of that domain, and indeed there was a zombie on xl list.
Killing that process fixes it.

Sorry for the noise...

> Yeah, it's a single boot and that's it. I can improve that (and double
> check if MSI-X is covered too).

But this might be a good idea anyway.

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

--XYjHLFKe6qQk+9uo
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmit+ZcACgkQ24/THMrX
1yyjaAf/WOQrlUWQ19Sx7MlswV8pzCAw+i7Yhn9RDgaC2JUHCSsGoFVgPyASw2cG
iBatLI9ceLf9Rcdk7QE08HZFfd6rinGI7caGyXDYyF6R3mUjK2YLdoMwiAeqqBgR
DmOP64A9vwYJwP00Q2XVYoiqpRxIy2cfskcnHHAFr1oWHzlqZn1Y1sDET+STx9k/
UeE4Jt7ypJKbAoD2Ar0HsPo6xqQ+CKReud/OiCa21NyhKNBvKzdI122aVpbzF2Va
/bFgObHIlMpYpAPXMGM/N8I1jdeBd93Je6bOPAYvvCNQi25F+uehNolt0+EN31Hs
PrRaVsfv0bbv8fC4Ei7PdB+tQclVqg==
=K+8R
-----END PGP SIGNATURE-----

--XYjHLFKe6qQk+9uo--


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 19:12:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 19:12:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094969.1450124 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqz5t-0004JP-EI; Tue, 26 Aug 2025 19:12:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094969.1450124; Tue, 26 Aug 2025 19:12:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqz5t-0004JI-BD; Tue, 26 Aug 2025 19:12:33 +0000
Received: by outflank-mailman (input) for mailman id 1094969;
 Tue, 26 Aug 2025 19:12:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Xnf3=3G=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1uqz5s-0004JC-7K
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 19:12:32 +0000
Received: from mail-wr1-x42b.google.com (mail-wr1-x42b.google.com
 [2a00:1450:4864:20::42b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9bc10260-82b0-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 21:12:29 +0200 (CEST)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-3c7ba0f6983so131362f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 26 Aug 2025 12:12:28 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b6c4e9078sm5397995e9.9.2025.08.26.12.12.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Aug 2025 12:12: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>
X-Inumbo-ID: 9bc10260-82b0-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756235548; x=1756840348; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:to:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=34Eal4dX6AMRvLG2+vt1TA4usx6f7FZtYJdKjHzuQ5g=;
        b=HPu+pFYzfMLnm4rfJw+kIT5FmpanxgWuQZYwldwmq7/OPAqeUuz18bwRK4ccJOwiNX
         MOwAUbLztqBFFmmzkmS/4Tk1NbdevOWutTAa1CNeypqCqfrasi1EwC98NBEW7O3nCCh3
         dCVcGlNUuAoyydYGmwOg8R1Klddl06n0X58Is=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756235548; x=1756840348;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:to:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=34Eal4dX6AMRvLG2+vt1TA4usx6f7FZtYJdKjHzuQ5g=;
        b=C3MaEZDsO4YMEKa2qu17d/fk/CdV3XB+2093YtHeEwExZLGBP8qDz6ULI4R7+yuAlW
         9FzGOlP2hIqlcZyYwgqf3Qrf6FXPKie4+BA1D0xv7EdYafM4F9Id7sio0MhJoqCW2XTK
         q1pjmclaRi5/zsQsuKPKZjHtKwGbA5I2nZx9jywdmzv2BEkrK8ctLEbPlPEOw9yyHMxN
         q6UjH2svYuHVJmS4z5rCzDSxSUSompHkRhdwJyeapUc2SGUUt99ZPT5PhdfpvjeGsEX/
         dUsXUlK7G4rpq/FEypoheBF4R4sndzzkKJUfsq8uOK1gvcCyPspVk5MtZDAZcYRK475+
         bKRg==
X-Forwarded-Encrypted: i=1; AJvYcCWQN7fCHLW5z944/NFmlzhHoqYBRpQpTKeSNVcXWQEK4roJ90WrnGRZKL9J0u6d2tnMK2nwV6GjrJc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxD9hvcZKLho/j6eqjGYf0TzE0FMIGpc2k5zrSYCHW7bRnKv4wh
	zA00xaR1bGD3Alyi+6li2u7TI/jdjr5S0vA5LY0muTwTPW1vEgioI/JIE6G3NBhRsgotBoUOJWW
	gbnNp
X-Gm-Gg: ASbGnctQbpPb7aIoZfKtF9izV+wHdGOxYaYE619X3L0LSERJMZWd0eh88VQSN9CpxQo
	WxNSTKNEtOoHVfcNPmUaFFobHXPLVPPaIaXUpaaTTZF4FifhQeUa+5rpJsKq+AOzP5ekuvw8pHz
	7xeyUQr9scixCOO4vra5+TkZ/mQDm4L1t/14+YJ3gMcto0sJ3PFh97xBP4e9cn9E6WTU0U81g4+
	sjyvxpWiUhP7QD4Oq3OkDG+mI2rHwM7dfJu5WDWLWLssezUmvZUUGZs3ee81YhdBksML7LvQ7NF
	NLhjsZct9wQy0oZ6W39wVBNqhUjPHfF7jCJG7RhPk8SNtl61Y2KFQQroahq+gF0hx/UrOMLEBdc
	vgFP8h0AbRJX7nmYEgO1BHxNy8M4N4s8NABMWj5YqM6XSWZkO1g4zAjjO6kiQrv3zBNu6E21I32
	Qdeg8=
X-Google-Smtp-Source: AGHT+IGX6xgKzfwqKz/dB20PKAAZhhlZHriXXTJkK1MAstOI1E01sfvmJT3Fz/vPmfWHG8vBTaBSaQ==
X-Received: by 2002:a05:6000:188b:b0:3c4:9c59:52e2 with SMTP id ffacd0b85a97d-3cbb15ca24emr1911641f8f.7.1756235548127;
        Tue, 26 Aug 2025 12:12:28 -0700 (PDT)
Message-ID: <e31bcf2b-50f9-42ca-ad17-e746652c1dd2@citrix.com>
Date: Tue, 26 Aug 2025 20:12:27 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [Reminder] Feature Freeze is Fri Aug 29, 2025
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Xen-devel <xen-devel@lists.xenproject.org>,
 Community Manager <community.manager@xenproject.org>,
 "committers@xenproject.org" <committers@xenproject.org>
References: <07fc7122-d0ac-4dbe-800d-89086a07005b@gmail.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <07fc7122-d0ac-4dbe-800d-89086a07005b@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 25/08/2025 4:50 pm, Oleksii Kurochko wrote:
> Hello community,
>
> Iâ€™d like to remind everyone that the Feature Freeze deadline is approaching,
> and we still have some outstanding requests from the community for patch series
> to be merged into 4.21:
>
> 1. Enable guest suspend/resume support on ARM via vPSCI [1]
> 2. Introduce SCI SCMI SMC multi-agent support [2]
> 3. Introduce eSPI support [3]
> 4. FRED work: [4], [5], possibly others (?)

For FRED, That's all that's out on the list.

I've got an update to 4 almost ready to post, this time getting to dev
complete.

Unfortunately, I've still not managed to get any time on real hardware
yet, so FRED will still be experimental in my series.Â  (The timelines
were originally compatible with Xen 4.21, but access to hardware has not
been as forthcoming as hoped.)

When I can test on real hardware, there may be bugfixes, and I may be
able to upgrade the status if we're not too far into the RCs.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 19:15:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 19:15:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094978.1450134 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqz8q-0004qn-R7; Tue, 26 Aug 2025 19:15:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094978.1450134; Tue, 26 Aug 2025 19:15:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqz8q-0004qg-OX; Tue, 26 Aug 2025 19:15:36 +0000
Received: by outflank-mailman (input) for mailman id 1094978;
 Tue, 26 Aug 2025 19:15:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=dnfn=3G=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1uqz8p-0004q8-U1
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 19:15:36 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0a2364b8-82b1-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 21:15:34 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 8BDA84EE3C0D;
 Tue, 26 Aug 2025 21:15:32 +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>
X-Inumbo-ID: 0a2364b8-82b1-11f0-a32c-13f23c93f187
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=1756235732;
	b=OSMvDq+iQop8QmgtE2QwYacgeAQ8au8hnngdllHkZnTFamaG6JBwXpuWmelPaauvEFNk
	 VrVXZYTnZ7f3ZrovVbN9z/k+5jNz/0d+JFs04BaAJQzxIDwA1CspQzIwuQTZNDG0Ey/vy
	 OGenF3vsdBfxS3FtsPxhsS/eUiaYJnlXw1hXqXDdZte3beolpvqM8ujM0mbK8nZBoENOP
	 56ZorLlt7PW/JmFfnAdfpCc0GFOIp5UZisMzuRde4YF7Kebf7REcT4fBRSElX+15cX45U
	 QN37nDeAbYeKShu51Z0e8WeID0t7Y9S49SM1zFUyRQPPcKT++QKYrlUatqR40x1BwjKO8
	 C31xGtN7mm7VT25SjZWN83hurQHCJOPOnC0yWQi2TkZ1DRoqA4PqhU6Xx5G39bPHdsGqG
	 epFgf5+GgoTjnPXa6UiiTf2VdEMEPUh6CSGJ1wtCBgkecMZK6Gw7u7TRx0E0tU25OmcGl
	 2COSEWYEyjGh27GIhEF77lYit31EzTTL+0+1GADS8WLwfPeEpgtJ+p8/o9S/cix8lQUwv
	 POdbjJ0qO+iOpdip6qR4UgGTtk4RdIxpO/eAfsXiu+7U0e+OMDhg2TEHu3NRPvHeHOh3L
	 rgluKSwhgXKPt63D9/fMvx1ANGPHgFsPjHeO1V1Z5TPhxirw0nJswUMgbsCLJwA=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1756235732;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=AaIHmQqbHvgGLPp6UHHU6Lec4UMPyucpeDT3xDGnFYg=;
	b=zx1zNefE8ocDn40AuGfskscVIt/7UkFacRrszldM4edoXbQCEJPaIGOQ08r8/rLoYP6H
	 yYm9uiJfyEEPyhL9mR49J5KGV09QNhBqDeaKADi6XwQKJD3Vy4mQ25dpvhUm/1x49GMIA
	 JcFxJy34GOsxmtP0xErsMHVBuL2AgkqRvUE/y09yQNqbBmqQfLIkn9Jp29vCUpxpPPN8Y
	 54OiRlXI23Orc3jFfTmG/qSq0KHFPYKp9NQu4HanNe16+TrxwHcolfPLt4kSzDCaLIxxG
	 AvluUoK3FjvOJoJbaBImS4KEVKYvCWzeDYkGYVLGkGO6byASXWtQFakcjiysHEJnw3YwD
	 NanxvSwll6G+4WTkYk/kEziYUd0LeEVIV5ywjms3mdgf7ZjZX9hJaV4nIlAPoQFu/GD9S
	 1CGE6mSnaSOB+W3bMdDero+i3O62PEYwggbBQVebiGKF48hoaMutTgS16GQoPPVe2OgMO
	 uDwwonNVTT39UK6lGsYo/x2Wj6hnFhlQVdrgSIRlJm8ID7RASejITq6nO5m3kA3RE04Dy
	 yk3X0pdlDskJ/EvHUN3eCGhAWQ/SOWnArVa/dtS0Z6L4fo1Eo8PE7qJAtGkgQiiLuMzRq
	 OWmk2j582jyBdGkdGPMca3R3JfwPG2D/GlnyTimXtwfxIPetWLqkIoTAB267vds=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1756235732; bh=i5c5627eZghBiQ6BnSaC7lH2CtrKVXfm59nnThaOP90=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=ydLZRhhI8IY+2I81pgHiTkmjwmgWAisIfrwaocLOt4umB9Pk3Jlote3fY7t8xPn/S
	 1qlM+2K6WtnSQdWL8r8ccMHzYmfyVLcQo2pCYMr3YMkL8m+MS6YIV1HNenw/8xWjSA
	 6Nh9UmOxyta8d8yBgLODJdONRpchIiByhujqrmtycG6g4nozUMRyowVQ95bjBNszJb
	 uYmLpMtHZmGSNxu6zF6JGZTUSWe2iUugq7NSWUvwmVsOCkcqYJrEU5xXJtEuuIxgia
	 ZR3n1wpGOCmfEkSMY+rr5FjwMITIS1KeudapocuDJj62sz2jffy5Dkq9pLU69sQpoN
	 RL43o9BGmWEPA==
MIME-Version: 1.0
Date: Tue, 26 Aug 2025 21:15:32 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: Jan Beulich <jbeulich@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Doug Goldstein <cardoe@cardoe.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>,
 xen-devel@lists.xenproject.org
Subject: Re: [PATCH] misra: add deviation of Rule 2.1 for BUG() macro
In-Reply-To: <d9e9deaa-fa3e-4f4a-aa70-772af4bc1371@epam.com>
References: <f7b4112aad84162c25f96a9d6db43a0c2ba85daa.1756046023.git.dmytro_prokopchuk1@epam.com>
 <60022d5c-1a9f-4a6d-8df2-bca57cefcf59@suse.com>
 <d9e9deaa-fa3e-4f4a-aa70-772af4bc1371@epam.com>
Message-ID: <97fe4a398af94ee08a15a586ac4a6b4e@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

On 2025-08-26 20:07, Dmytro Prokopchuk1 wrote:
> On 8/25/25 13:07, Jan Beulich wrote:
>> On 24.08.2025 16:56, Dmytro Prokopchuk1 wrote:
>>> --- a/docs/misra/deviations.rst
>>> +++ b/docs/misra/deviations.rst
>>> @@ -97,6 +97,19 @@ Deviations related to MISRA C:2012 Rules:
>>>          Xen expects developers to ensure code remains safe and 
>>> reliable in builds,
>>>          even when debug-only assertions like `ASSERT_UNREACHABLE() 
>>> are removed.
>>> 
>>> +   * - R2.1
>>> +     - The 'BUG()' macro is intentionally used in the 
>>> 'prepare_acpi()' function
>>> +       in specific build configuration (when the config CONFIG_ACPI 
>>> is not
>>> +       defined) to trigger an error if ACPI-related features are 
>>> used incorrectly.
>>> +     - Tagged as `deliberate` for ECLAIR.
>> 
>> With
>> 
>> #define acpi_disabled true
>> 
>> in xen/acpi.h I don't see why we even have that inline stub. When it's 
>> dropped
>> and the declaration left in place without #ifdef CONFIG_ACPI around 
>> it, the
>> compiler will DCE the code (much like we arrange for in many other 
>> places). No
>> deviation needed then.
>> 
>> If such a deviation was to be added, it would need disambiguating. A 
>> function
>> of the given name could appear in x86 as well. That wouldn't be 
>> covered by the
>> Eclair config then, but it would be covered by the text here.
>> 
>>> +   * - R2.1
>>> +     - The 'BUG()' macro is intentionally used in 'gicv3_do_LPI'() 
>>> and
>>> +       'gicv3_its_setup_collection()' functions in specific build 
>>> configuration
>>> +       (when the config CONFIG_HAS_ITS is not defined) to catch and 
>>> prevent any
>>> +       unintended execution of code that should only run when ITS is 
>>> available.
>>> +     - Tagged as `deliberate` for ECLAIR.
>> 
>> I didn't look at this, but I would very much hope that something 
>> similar could
>> be done there as well.
>> 
>> Jan
> 
> After small changes related to prepare_acpi() function, Misra R2.1
> violation has gone. The compiler really does DCE:
> 
>      if ( acpi_disabled <<< this is TRUE )
>      {
>          rc = prepare_dtb_hwdom(d, kinfo);
>          if ( rc < 0 )
>              return rc;
> #ifdef CONFIG_HAS_PCI
>          rc = pci_host_bridge_mappings(d);
> #endif
>      }
>      else
>          rc = prepare_acpi(d, kinfo); <<< DCE
> 
> I will publish it as separate patch.
> Thanks to Jan, I really appreciate his help.
> 
> 
> The situation with functions gicv3_do_LPI(),
> gicv3_its_setup_collection() and config CONFIG_HAS_ITS is little bit
> different.
> The compiler can do DCE in case when config CONFIG_HAS_ITS is "y", and
> Misra R2.1 violation related to these functions also can be resolved.
> Actually, no changes in source code need for that.
> But Eclair detects these violations because config CONFIG_HAS_ITS is
> "n", and source code is really compiled with inline stub functions 
> (with
> BUG() macro).
> This is because config CONFIG_HAS_ITS is "experimental/unsupported"
> 
>      config HAS_ITS
>              bool "GICv3 ITS MSI controller support (UNSUPPORTED)" if
>   UNSUPPORTED
>          depends on GICV3 && !NEW_VGIC && !ARM_32
> 
> and to enable it need to set additional config: "CONFIG_UNSUPPORTED=y".
> 
> I tried to test it (added "CONFIG_UNSUPPORTED=y" into
> automation/gitlab-ci/analyze.yaml file). You can see my CI pipeline:
> https://eclair-analysis-logs.xenproject.org/fs/var/local/eclair/xen-project.ecdf/xen-project/people/dimaprkp4k/xen/ECLAIR_normal/rule_2.1_gicv3_its_host_has_its_v2/ARM64/11144854092/PROJECT.ecd;/by_service.html#service&kind
> 
> Unfortunately, I observed +6 new violations with that additional config
> "CONFIG_UNSUPPORTED=y".
> 
> I don't know how and why these EXTRA_XEN_CONFIG were selected in the
> file 'automation/gitlab-ci/analyze.yaml'. And are we able to add new
> configs here ?....
> 

You'll have to ask Stefano about that, but I doubt at this stage. Those 
set of configs for Arm and X86 has been selected ~2 years ago.

> So, I see the next plan (just from my point of view):
> 1. Add "CONFIG_UNSUPPORTED=y" and resolve new violations.
> 2. Continue with proposed deviation
> 3. ... ?
> 
> Thank you in advance.
> Dmytro.

-- 
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 Aug 26 19:18:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 19:18:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1094989.1450145 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqzBu-0005Pr-9V; Tue, 26 Aug 2025 19:18:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1094989.1450145; Tue, 26 Aug 2025 19:18: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 1uqzBu-0005Pk-6B; Tue, 26 Aug 2025 19:18:46 +0000
Received: by outflank-mailman (input) for mailman id 1094989;
 Tue, 26 Aug 2025 19:18:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Xnf3=3G=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1uqzBs-0005Pe-LU
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 19:18:44 +0000
Received: from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com
 [2a00:1450:4864:20::42e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7a6b9e9e-82b1-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 21:18:42 +0200 (CEST)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-3c51f0158d8so4634641f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 26 Aug 2025 12:18:42 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3c712178161sm17253471f8f.67.2025.08.26.12.18.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Aug 2025 12:18: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>
X-Inumbo-ID: 7a6b9e9e-82b1-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756235922; x=1756840722; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:to:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=K/87ggPVxPhk/JVrlcvj/h1+p8urGGGoBBR3nERXNno=;
        b=PsAfRGEHeu+ojChQw75cQKq5Few3dsmH81J4HzVf0jV8m7QA0WjEXQgUjoNhCxN9pW
         nFc2Kzg6YUfH6MAZMu7m7Xl/O9BO4lhiCciu8e3mcyTkYg2BAk/52BNG4S3uraTlJV2V
         ZYefs7ZtHs15DOm0umcxBdtarr0kflVcLfwoE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756235922; x=1756840722;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:to:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=K/87ggPVxPhk/JVrlcvj/h1+p8urGGGoBBR3nERXNno=;
        b=SHEAmyMb40qjEgPyjfhCnVoXAItmbBVfz4iYb08ozBepJBvb0xCq/FlurSdT8NHLxA
         78eTl6bqNMm8yfGJVEF/m1cKX+T3p6joDjb17a18Pq9iGrLyswXzSwV5pxuWUBmC988g
         RsOQmYr4ZeiDvX9b5hiLFOc0nqPhc6xwWEf9F8YQxseYH1UEDGdr2g+dKTukKUfghMgv
         9K0jS1NnjTKOfnQWinlyOKiUhSJt90u06A7KYWLE1XVMaH6I1gzDwDkpRwpEzROtmE0Z
         UuOQY9bs9MBOPaAZy6vItHRXFoGCXADKb+wuKr6QvgcEvz6JU0rH97TNACk9kmiasQj2
         YpFw==
X-Forwarded-Encrypted: i=1; AJvYcCXWoidephXyvQxQygISCUx0LDHqUX4SmCQDgtwEHuQ8V3Chn6ahGHcbmZ9bryAPa884SF33VptBztY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyoxA1g4qn+CtymRbcJTmdqVNNewv7rakOMPX7hB2JSAoTmq9h/
	bjpMzoPNs+9996OSVt5wMt+2Ijz4FxLklHwvd4tRDlUoWZfhiklloBYt/n4fvYRTN4GXfuek4hy
	cRB/H
X-Gm-Gg: ASbGncshMgDdPrDLrXgDdxZWyqIrFAfnU/BdfWNp2trKUCng01EefzIw+sP7TOJDWES
	sWUX5XLD4MUHKaQty12U+zjjPKn/Uwx8tnomzp07hmuw/mAfkBcpnL0iCnLREdd4uoRVUDyAklm
	8pfbkkz4ySeB+6f56MR9J/19iPmvLeLCGFTkRrqTh8P0a9znzVhWuh6f1ndUulbUWf+chC0h16p
	KQlty08e+/bzKXyMRyUBX2Yo4fSgrPcqdNb5JfTHNFxZl8Rs5id/HSSnHsuYYvIZwaM8d/MUIav
	tWdvIv/GMWM7k3es/ucPUYaSFjtIgYdp5h92593tSbmyAujZip4nhq2NH8/zAuXu/r5JAUc29+P
	PuLbXpTz4SlGJUSarc+lowMVZlKtMP50Ojix2W3KP5w08xdzUFf8glHHKRTNRCGB6vBUCAZGXBp
	q++sGbxXABZDqm2g==
X-Google-Smtp-Source: AGHT+IGmEGbi+RRrQzlT6hi01Zaz7iW/CKtDJOvI956aShqfS5naNAZLu+iqlC6SZOhJKGDkRmLpqg==
X-Received: by 2002:a05:6000:24c9:b0:3cb:7c9:d2e1 with SMTP id ffacd0b85a97d-3cb07c9d3a3mr3103917f8f.28.1756235921746;
        Tue, 26 Aug 2025 12:18:41 -0700 (PDT)
Message-ID: <f175b0d1-7fbc-4c03-9aa0-c7eb61a625d8@citrix.com>
Date: Tue, 26 Aug 2025 20:18:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [Reminder] Feature Freeze is Fri Aug 29, 2025
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Xen-devel <xen-devel@lists.xenproject.org>,
 Community Manager <community.manager@xenproject.org>,
 "committers@xenproject.org" <committers@xenproject.org>
References: <07fc7122-d0ac-4dbe-800d-89086a07005b@gmail.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <07fc7122-d0ac-4dbe-800d-89086a07005b@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 25/08/2025 4:50 pm, Oleksii Kurochko wrote:
> Hello community,
>
> Iâ€™d like to remind everyone that the Feature Freeze deadline is approaching,
> and we still have some outstanding requests from the community for patch series
> to be merged into 4.21:
>
> 1. Enable guest suspend/resume support on ARM via vPSCI [1]
> 2. Introduce SCI SCMI SMC multi-agent support [2]
> 3. Introduce eSPI support [3]
> 4. FRED work: [4], [5], possibly others (?)
> 5. Introduce CONFIG_DOMCTL [6]
> 6. xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE [7]
> 7. Some other patch series I missed.

There's still a pile of CI bugfixes (de-root the ARM containers, fix
tools-tests) and improvements (Debian Trixie, Alpine), as well as bugs
that need fixing which aren't complete yet (fixes for the de-rooted x86
containers, see if we can do something about the KBL console problem).

Adding Trixie, and moving off an obsolete version of Alpine are critical
for the release, but I need to get FRED more done before I can come back
to this.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 19:47:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 19:47:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095007.1450154 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqzdq-0001BR-F4; Tue, 26 Aug 2025 19:47:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095007.1450154; Tue, 26 Aug 2025 19:47:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqzdq-0001BK-Bx; Tue, 26 Aug 2025 19:47:38 +0000
Received: by outflank-mailman (input) for mailman id 1095007;
 Tue, 26 Aug 2025 19:47:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=VNE8=3G=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1uqzdo-0001BD-Dp
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 19:47:36 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 830f38d8-82b5-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 21:47:34 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by DB9PR03MB9783.eurprd03.prod.outlook.com
 (2603:10a6:10:451::8) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Tue, 26 Aug
 2025 19:47:30 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9052.019; Tue, 26 Aug 2025
 19:47: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>
X-Inumbo-ID: 830f38d8-82b5-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=CcGDKxJcEWIu6QC24qut92s637dnFKequxli2aJnKfMeMW+/whhCiFtOvJUun2EBqC1Ev3d25oZT6rqCyC2YNJDGJeo8TdasNtcfpZREFqrpVPMoXgyl01+wV0HgCzQfLNW3Apwj/E9bi0Hj035BWB8I7QyVRBXxOmGE7NL1UwvPoSynXMd+5/MkIQzOUQeXnNreuvIT8agjwjzJvv9lFnMgXTQNP8VOuItBN9r2NRIhWMxptmZ/J+9K1JDsoC4oTf8UTJyi+3LWh8T8L+5Q9hXFhPrypsogy4puiVmpUAQAZ4++BK/q1rkLbzqw06Lr7431r5d+YtCC054an6dMIQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lBuik3REm1kIrl3mwLjyS+EgbmLWrX76o3NRjBTSMsM=;
 b=Kdl7YYog1B2v1qI4yLOcTnIIYx9bWHi4pUEbMo1gUQDCsm63MxbHCBSrWv9o0Ec7hkXq7OLG20Ra7Y/sTlEMWgKb11NC9QNpboB9T/JhkLkXsLSWgw0A20V3hpIV3la7JhNJozkdVNxyu0pIsYV7bu/7olot+FW7sFZc3bnBkOCYIQdEJiq65KI+hemVvQ4ViihWvGUydQtSvXjkrSFr6gcaG6O5+6di4mSzqT+6EGbsydroI3Z/Ez3H/oh6PNzL1ZDWxQrcfe+4vaEUMluLlY66i+PUw4OcTtUKsjt5VBEmnkbaLl831TlX2QOLscFyYVQCuhRYfEX5PDqcxyil/w==
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=lBuik3REm1kIrl3mwLjyS+EgbmLWrX76o3NRjBTSMsM=;
 b=bXqYFJSfaHQ3lGV4P7Rt3wt6lR4b5yBswDH4wlcd1es6okb3zJOMRETaAaE61DYX9uNhg5MNDhIQzkIpL/QDczBd08baLjaHDvjF+L47YSMfsG6UxflJVOZ0/v16xvJ01jjBMg18Tpv4D9rU6Whd27oZ2I46f3Hnf2iVXoE9c8Z+t1b0WqdsbiURkkDOf1+DLCRQtS+rN/4gknJvCvPW2Je4tsy/HTLq1pYABj4pLGt06iRK4COB1EPfeTul5IW/R/3X/VasgF8B3SxIWMWSxu/FtIyJeSKB0PENhQ6iLE88P5S3/D2KldqKvJGLABjALnDGE1JktE5ccwBeP3U0CQ==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"olekstysh@gmail.com" <olekstysh@gmail.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v3 01/11] xen/arm: gicv3: refactor obtaining GIC addresses
 for common operations
Thread-Topic: [PATCH v3 01/11] xen/arm: gicv3: refactor obtaining GIC
 addresses for common operations
Thread-Index: AQHcFpJ+etlgg3EWd0CB0IzwgFrWeQ==
Date: Tue, 26 Aug 2025 19:47:30 +0000
Message-ID: <87sehd6f1q.fsf@epam.com>
References: <cover.1756216942.git.leonid_komarianskyi@epam.com>
	<6ba26f0db6575795f8dfcb80862f5537c3dc7a8c.1756216942.git.leonid_komarianskyi@epam.com>
In-Reply-To:
 <6ba26f0db6575795f8dfcb80862f5537c3dc7a8c.1756216942.git.leonid_komarianskyi@epam.com>
	(Leonid Komarianskyi's message of "Tue, 26 Aug 2025 14:05:36 +0000")
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_|DB9PR03MB9783:EE_
x-ms-office365-filtering-correlation-id: 1bcee7c2-49e8-4561-69b2-08dde4d9649e
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|42112799006|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?7MPtiBIR4XC4dQa4mjjMA8yQptlmNBJpZEz4Qi/QxhfnKQskqYQJL4Kgnr?=
 =?iso-8859-1?Q?SJbPuEVIH6O7A3AAQMulesdE1r5x6sqEgpKR7jViCg2qi3Ow3SxvuOD4GG?=
 =?iso-8859-1?Q?bWZcEypbxEsRgfQxgZ6JLu7kjVP53ImULxviWrKLyxJ2Hww01L0Zfph07Z?=
 =?iso-8859-1?Q?GICmvmbVhh14pmhSH2gNHzEvZV2YUYu7c1dJ6UGbIODmeugQ59OcfJFM/R?=
 =?iso-8859-1?Q?ajIOkQbpKTuKOjYHwHPOK2xmE8PXR7rQ7BxKNSY8/AEKNB48fz+o1bfA/k?=
 =?iso-8859-1?Q?dY4BQgEdGsCn3SNo//w3cXMPMBTnMXtuY8r57cTvf1mZVKoUAl0iTF0qhf?=
 =?iso-8859-1?Q?gszADXA7V9AHAoVuVnZW20tf00H+GaMk0yorc8D6CYtDwuVp8kzi4aRR0G?=
 =?iso-8859-1?Q?uvWzq7WR1sTn3aNLELMJFktU63z/sFiwuXikglvkZyZRKIIhLnuXEcuppy?=
 =?iso-8859-1?Q?KTsSQDNIVFQW3cUF+9K83C5lGRR5sLOdGZSYetOALgWhs1t/8De+qk1+24?=
 =?iso-8859-1?Q?/2RdfRq/S0zeXCPESooRKlFAM1N++AdazIL9265dDhXXkf1GPsCa7mr7eG?=
 =?iso-8859-1?Q?JHY5ZqrsFJzXw5OR/rodIiiFV7bDleGWT201vVq1mM9oKZoEwG317Z1FBe?=
 =?iso-8859-1?Q?6G2lLJaIXM1CiVbDfQxZvtox97OkypL1rYDuo0urH3kCc1M/29+oO00Fp1?=
 =?iso-8859-1?Q?bmhB0qjBxw7oy2wLzK9LR4MlZb8Lg6sqUOGhCIHIdp07+kO5TnWsBkU9Za?=
 =?iso-8859-1?Q?5TLjXApghfOTon8Pe+9EO0nJfp4PdqYZ786MZa/FiGyhyDF3AiVRRRgKgR?=
 =?iso-8859-1?Q?73WVJHPMswEvDJFXMCmableIwzKyoYeH6Q0Iy9b03QZfe92t2553AaxS/N?=
 =?iso-8859-1?Q?WxAQ7iCgzPN8cao7RyzcoxN+22i1VIPbARsGPD6gPbwWM3gNGlb98wik6X?=
 =?iso-8859-1?Q?hhaYrG09ChJKKCVIkaqnWUF8Z2CZR29QZNqmR9GpZa6SsXIZM0OlKPhvV1?=
 =?iso-8859-1?Q?VZ0x4VtnC3VfDwgJlNRonYK/jynwpb2o84wRmb2mqFsvp77LeBTuZ7iHfw?=
 =?iso-8859-1?Q?kdUILJgEITeDWVRPbi7IktnG5z939G4emY7vK33b4MOr/P9JYKWlcih4My?=
 =?iso-8859-1?Q?6dO/vs2cHLyjWwBfUUhLwwE7Y+vGq6NrIMaKGV+9zkKyaeV45xeY4MVNk7?=
 =?iso-8859-1?Q?VKO+am1kRdoUiwGnO3KRyguLJDexagul7vOF8nJlo8zwt1rzTHcMUSLkp2?=
 =?iso-8859-1?Q?OTJNw/xYs/+s79LlTeRfPtjeOmtOM86Zo/mMoYg0/RlBSa6fKMjT1gCGak?=
 =?iso-8859-1?Q?tzfnYP6+iziLIqKR2fqKIgQP9lmY+X8bzdGYvZxgAMYf6oKS9egzr50YFr?=
 =?iso-8859-1?Q?wqvIavUlLH4d8RcL3x05V9K3HELndLtjcntilszg+UPrvRKX5oMkSuUpVG?=
 =?iso-8859-1?Q?k1i15GsfbCUBIZaLmRdNCJQ25U0y5y7xFqEdB3f5GHpER/KVKqHhZaPyZc?=
 =?iso-8859-1?Q?oe5/Qv+htyJNQkPoMUIy0oI72JqTsvl9usBb8bfNw/8A=3D=3D?=
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)(42112799006)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?Gft84xA6esNIUUP0DhB0qdDahXFsD0tQpxc7cMDCz3+mQGuf0LecPLyTNF?=
 =?iso-8859-1?Q?7yvDa/ZUVrjSmAHHnGdrsFErclrhY9iXP5m6OvIsxHl9ReKYJ+UH6zFBW7?=
 =?iso-8859-1?Q?pmvt85YB+QgNMLi6S2PYiNRo2IpFBMYhbsBYA/2/HQuk92dG624mjdKB+j?=
 =?iso-8859-1?Q?ppQmh1ELzSnNrmWSd1Bd4p2fQC0OIlkBQOFPA5ruvb5HL0kHQed50Bn9kV?=
 =?iso-8859-1?Q?pljaBXIsnPW6U1ALzsAXbD8hsVmpxSV6uYXh5i/FquYh6TGAuC69QcBEoF?=
 =?iso-8859-1?Q?Tc6nnDWZunILBndZFmSLJTHhA5LEYcKaNRgM5f9k3fJVQwiS/H/Ms5D774?=
 =?iso-8859-1?Q?sPWeex6cJb1XQ0ygIHupMpSB1AJyHMshrvqh8Pc5+/zz2Zh+BqrKDb8YJ8?=
 =?iso-8859-1?Q?n2v5xNSqMwzhb0LPD2L5LkC8RB6VtKrVN74xj1aSUbI1RilP4UMXyyr5ri?=
 =?iso-8859-1?Q?Qi9MQBEpggvUiFy4yMNhfXdTGUtbvVkwJ9gGQgvuhFmle1UbWgQkOvRfe+?=
 =?iso-8859-1?Q?F5gJeyNCdZgrgFekW8rBPYKZPCg1EKJ1CBLvGyy9CySSSPsuH9+UWJc/1H?=
 =?iso-8859-1?Q?FtW/lI/gDyIXSuNGjcllXKPImzKIfOLiSvhr172FOoBmvEuG6NfAfy06Kt?=
 =?iso-8859-1?Q?nRcXFWk5e+U1T0Z6htRCrqLP2Dvz6zLxtSwXmiLgDG4VfPNQfLwt9ICSTU?=
 =?iso-8859-1?Q?fQhs94MVVUIWEyvGxu7HVCdv8HAp3oyelATJy7FmG9cbYqNUbx2vIKmOcR?=
 =?iso-8859-1?Q?SHSzm9Ns1wZ55I+ImEjTPL6fg01zIFPY0KN6iFPaR9+SlOUCUyvMpxT0Im?=
 =?iso-8859-1?Q?U5aoDO8DnwAFdPlweK2JyQev1WbiZGlXhveC4OyheIPILvCA8F0X7TTTOy?=
 =?iso-8859-1?Q?C+dQIAwJjcjmLJ1OjbhVytodTcBG4Eei4x0XaroKQSri0YCEPqU8cKbqIK?=
 =?iso-8859-1?Q?Tba15O+5QKPyVBXAig6CbktWzprLfz0f4qR49rLv23FlIb+EsmMIPuzh99?=
 =?iso-8859-1?Q?awpDeepieBsNwUnzXvUmgBZarQxQqstvePAS+53HPY+RvgVGlMszKmeljh?=
 =?iso-8859-1?Q?QuZHDbksJrR/6d3qjCSKaS+NjCyS50Lka8LmZZ48TqYTaMe7yGRVRPLxEg?=
 =?iso-8859-1?Q?kDbVqNcp0bE9k5J/o1eqkFqBR++bgJbiuCWXNj/e9HCG1axzRjZI8MErHX?=
 =?iso-8859-1?Q?Pw5XnICqdszRz0jDnLg9Fr/+OtahQF/AumYMETc1xBBHo0lqqJAeiFp+Gf?=
 =?iso-8859-1?Q?IKugvCGLeTR7oRWFDLHR+2HampVSYZDdiThEE0WAB8KdL9ijSiY84sL2WY?=
 =?iso-8859-1?Q?MoMES0rYm3L6G/vPfEk0cvGgvmPzRFBjFCsuZgJCXsQPwAc1ZvAaTbUqm+?=
 =?iso-8859-1?Q?arJ6/yh5XGj1e8j840goEQuu44qF1XPJnhsMWwtF6yllDJYVKV06wivcf7?=
 =?iso-8859-1?Q?gp2cH5+Y9jWzTQpUhY+oNIPuTgTfMhia9HdNtVda6iW1HqC+zkD1nHEn3Q?=
 =?iso-8859-1?Q?l8Ln4TGYq3udHjEvpoQ8J+xerH9prN+voV0ohwqM3+Zu39HmKNegR9hcME?=
 =?iso-8859-1?Q?fPbf0c2xb4yDm8XwixXHmKuT9tDRXR8joq+lH94xcEH+G7xRbqqHZ+zFmg?=
 =?iso-8859-1?Q?ebSTmxWeRMQGJSDL2lgPiw9os8SMkP1T0F+okgVbxQQd7XQwEwI2Wglw?=
 =?iso-8859-1?Q?=3D=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: 1bcee7c2-49e8-4561-69b2-08dde4d9649e
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Aug 2025 19:47:30.3593
 (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: Mc//x9iHBGGvg3WskzGuIJZsto1nW4O9qcAHNNp2W1nMFrAF6u7J0kfrV/g68xQ5b3pnK6BcpZmsp54Ng3CUEsGCh5SNo/LDmHNd8D7/P5c=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB9783

Hi Leonid,

Leonid Komarianskyi <Leonid_Komarianskyi@epam.com> writes:

> Currently, many common functions perform the same operations to calculate
> GIC register addresses. This patch consolidates the similar code into
> a separate helper function to improve maintainability and reduce duplicat=
ion.
> This refactoring also simplifies the implementation of eSPI support in fu=
ture
> changes.
>
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
> Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
>
> ---
> Changes in V2:
> - no changes
>
> Changes in V3:
> - changed panic() in get_addr_by_offset() to printing warning and
>   ASSERT_UNREACHABLE()
> - added verification of return pointer from get_addr_by_offset() in the
>   callers
> - moved invocation of get_addr_by_offset() from spinlock guards, since
>   it is not necessarry

... with these changes, still:

Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>


> - added RB from Volodymyr Babchuk
> ---
>  xen/arch/arm/gic-v3.c          | 114 +++++++++++++++++++++++----------
>  xen/arch/arm/include/asm/irq.h |   1 +
>  2 files changed, 81 insertions(+), 34 deletions(-)
>
> diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
> index cd3e1acf79..a959fefebe 100644
> --- a/xen/arch/arm/gic-v3.c
> +++ b/xen/arch/arm/gic-v3.c
> @@ -445,17 +445,67 @@ static void gicv3_dump_state(const struct vcpu *v)
>      }
>  }
> =20
> +static void __iomem *get_addr_by_offset(struct irq_desc *irqd, u32 offse=
t)
> +{
> +    switch ( irqd->irq )
> +    {
> +    case 0 ... (NR_GIC_LOCAL_IRQS - 1):
> +        switch ( offset )
> +        {
> +        case GICD_ISENABLER:
> +        case GICD_ICENABLER:
> +        case GICD_ISPENDR:
> +        case GICD_ICPENDR:
> +        case GICD_ISACTIVER:
> +        case GICD_ICACTIVER:
> +            return (GICD_RDIST_SGI_BASE + offset);
> +        case GICD_ICFGR:
> +            return (GICD_RDIST_SGI_BASE + GICR_ICFGR1);
> +        case GICD_IPRIORITYR:
> +            return (GICD_RDIST_SGI_BASE + GICR_IPRIORITYR0 + irqd->irq);
> +        default:
> +            break;
> +        }
> +    case NR_GIC_LOCAL_IRQS ... SPI_MAX_INTID:
> +        switch ( offset )
> +        {
> +        case GICD_ISENABLER:
> +        case GICD_ICENABLER:
> +        case GICD_ISPENDR:
> +        case GICD_ICPENDR:
> +        case GICD_ISACTIVER:
> +        case GICD_ICACTIVER:
> +            return (GICD + offset + (irqd->irq / 32) * 4);
> +        case GICD_ICFGR:
> +            return (GICD + GICD_ICFGR + (irqd->irq / 16) * 4);
> +        case GICD_IROUTER:
> +            return (GICD + GICD_IROUTER + irqd->irq * 8);
> +        case GICD_IPRIORITYR:
> +            return (GICD + GICD_IPRIORITYR + irqd->irq);
> +        default:
> +            break;
> +        }
> +    default:
> +        break;
> +    }
> +
> +    /* Something went wrong, we shouldn't be able to reach here */
> +    printk(XENLOG_WARNING "GICv3: WARNING: Invalid offset 0x%x for IRQ#%=
d",
> +           offset, irqd->irq);
> +    ASSERT_UNREACHABLE();
> +
> +    return NULL;
> +}
> +
>  static void gicv3_poke_irq(struct irq_desc *irqd, u32 offset, bool wait_=
for_rwp)
>  {
>      u32 mask =3D 1U << (irqd->irq % 32);
> -    void __iomem *base;
> +    void __iomem *addr =3D get_addr_by_offset(irqd, offset);
> =20
> -    if ( irqd->irq < NR_GIC_LOCAL_IRQS )
> -        base =3D GICD_RDIST_SGI_BASE;
> -    else
> -        base =3D GICD;
> +    if ( addr =3D=3D NULL )
> +        return;
> =20
> -    writel_relaxed(mask, base + offset + (irqd->irq / 32) * 4);
> +    writel_relaxed(mask, addr);
> =20
>      if ( wait_for_rwp )
>          gicv3_wait_for_rwp(irqd->irq);
> @@ -463,15 +513,12 @@ static void gicv3_poke_irq(struct irq_desc *irqd, u=
32 offset, bool wait_for_rwp)
> =20
>  static bool gicv3_peek_irq(struct irq_desc *irqd, u32 offset)
>  {
> -    void __iomem *base;
> -    unsigned int irq =3D irqd->irq;
> +    void __iomem *addr =3D get_addr_by_offset(irqd, offset);
> =20
> -    if ( irq >=3D NR_GIC_LOCAL_IRQS)
> -        base =3D GICD + (irq / 32) * 4;
> -    else
> -        base =3D GICD_RDIST_SGI_BASE;
> +    if ( addr =3D=3D NULL )
> +        return false;
> =20
> -    return !!(readl(base + offset) & (1U << (irq % 32)));
> +    return !!(readl(addr) & (1U << (irqd->irq % 32)));
>  }
> =20
>  static void gicv3_unmask_irq(struct irq_desc *irqd)
> @@ -558,30 +605,28 @@ static inline uint64_t gicv3_mpidr_to_affinity(int =
cpu)
>  static void gicv3_set_irq_type(struct irq_desc *desc, unsigned int type)
>  {
>      uint32_t cfg, actual, edgebit;
> -    void __iomem *base;
> -    unsigned int irq =3D desc->irq;
> +    void __iomem *addr;
> =20
>      /* SGI's are always edge-triggered not need to call GICD_ICFGR0 */
> -    ASSERT(irq >=3D NR_GIC_SGI);
> +    ASSERT(desc->irq >=3D NR_GIC_SGI);
> =20
> -    spin_lock(&gicv3.lock);
> +    addr =3D get_addr_by_offset(desc, GICD_ICFGR);
> +    if ( addr =3D=3D NULL )
> +        return;
> =20
> -    if ( irq >=3D NR_GIC_LOCAL_IRQS)
> -        base =3D GICD + GICD_ICFGR + (irq / 16) * 4;
> -    else
> -        base =3D GICD_RDIST_SGI_BASE + GICR_ICFGR1;
> +    spin_lock(&gicv3.lock);
> =20
> -    cfg =3D readl_relaxed(base);
> +    cfg =3D readl_relaxed(addr);
> =20
> -    edgebit =3D 2u << (2 * (irq % 16));
> +    edgebit =3D 2u << (2 * (desc->irq % 16));
>      if ( type & IRQ_TYPE_LEVEL_MASK )
>          cfg &=3D ~edgebit;
>      else if ( type & IRQ_TYPE_EDGE_BOTH )
>          cfg |=3D edgebit;
> =20
> -    writel_relaxed(cfg, base);
> +    writel_relaxed(cfg, addr);
> =20
> -    actual =3D readl_relaxed(base);
> +    actual =3D readl_relaxed(addr);
>      if ( ( cfg & edgebit ) ^ ( actual & edgebit ) )
>      {
>          printk(XENLOG_WARNING "GICv3: WARNING: "
> @@ -600,16 +645,13 @@ static void gicv3_set_irq_type(struct irq_desc *des=
c, unsigned int type)
>  static void gicv3_set_irq_priority(struct irq_desc *desc,
>                                     unsigned int priority)
>  {
> -    unsigned int irq =3D desc->irq;
> +    void __iomem *addr =3D get_addr_by_offset(desc, GICD_IPRIORITYR);
> =20
> -    spin_lock(&gicv3.lock);
> -
> -    /* Set priority */
> -    if ( irq < NR_GIC_LOCAL_IRQS )
> -        writeb_relaxed(priority, GICD_RDIST_SGI_BASE + GICR_IPRIORITYR0 =
+ irq);
> -    else
> -        writeb_relaxed(priority, GICD + GICD_IPRIORITYR + irq);
> +    if ( addr =3D=3D NULL )
> +        return;
> =20
> +    spin_lock(&gicv3.lock);
> +    writeb_relaxed(priority, addr);
>      spin_unlock(&gicv3.lock);
>  }
> =20
> @@ -1273,6 +1315,10 @@ static void gicv3_irq_set_affinity(struct irq_desc=
 *desc, const cpumask_t *mask)
>  {
>      unsigned int cpu;
>      uint64_t affinity;
> +    void __iomem *addr =3D get_addr_by_offset(desc, GICD_IROUTER);
> +
> +    if ( addr =3D=3D NULL )
> +        return;
> =20
>      ASSERT(!cpumask_empty(mask));
> =20
> @@ -1284,7 +1330,7 @@ static void gicv3_irq_set_affinity(struct irq_desc =
*desc, const cpumask_t *mask)
>      affinity &=3D ~GICD_IROUTER_SPI_MODE_ANY;
> =20
>      if ( desc->irq >=3D NR_GIC_LOCAL_IRQS )
> -        writeq_relaxed_non_atomic(affinity, (GICD + GICD_IROUTER + desc-=
>irq * 8));
> +        writeq_relaxed_non_atomic(affinity, addr);
> =20
>      spin_unlock(&gicv3.lock);
>  }
> diff --git a/xen/arch/arm/include/asm/irq.h b/xen/arch/arm/include/asm/ir=
q.h
> index fce7e42a33..5bc6475eb4 100644
> --- a/xen/arch/arm/include/asm/irq.h
> +++ b/xen/arch/arm/include/asm/irq.h
> @@ -29,6 +29,7 @@ struct arch_irq_desc {
>   */
>  #define NR_IRQS		1024
> =20
> +#define SPI_MAX_INTID   1019
>  #define LPI_OFFSET      8192
> =20
>  /* LPIs are always numbered starting at 8192, so 0 is a good invalid cas=
e. */

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 19:49:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 19:49:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095017.1450165 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqzfV-0001gc-PG; Tue, 26 Aug 2025 19:49:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095017.1450165; Tue, 26 Aug 2025 19:49: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 1uqzfV-0001gV-MM; Tue, 26 Aug 2025 19:49:21 +0000
Received: by outflank-mailman (input) for mailman id 1095017;
 Tue, 26 Aug 2025 19:49:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=VNE8=3G=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1uqzfU-0001gL-FF
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 19:49:20 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c09640d5-82b5-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 21:49:18 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by DB9PR03MB9783.eurprd03.prod.outlook.com
 (2603:10a6:10:451::8) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Tue, 26 Aug
 2025 19:49:15 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9052.019; Tue, 26 Aug 2025
 19:49:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c09640d5-82b5-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=X4i8OH1/NvyH1ZKRKIgvjXmJyzg+NxB7PTQSlnfURptZUaVVdl37NhYXlrC9+gQn+pJstAc8A/GBX5rl0SPZVGBstFBpr7zmOzZevHm4QJeAqLQeySN3ofjekqKsZ4cQsf+26eDhoNjrrB4vA7xGIOAoeBPWjTjA5pNUj6qvCua3SF74+yyckMvBvP2+Pj1e4/mxd4IkoEgBT0rPho4K0WotnDQFGrdq7ntXQyAGkq6JWHKLKWb/kG0F4VBAC2wskfXK7+PUb4TKBB7b8WTC8Egk9TZ0tsixEUzJMztxwz6MmaigTjNWZYl5u6sWSjGBNVoO223SFNrIb7W/DQR43A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=hilGdotJ+LUgh0lddFJdZiwhBQhyBeeMjQ40xdKNuX8=;
 b=ZzBRA1wW1/uuKu5FsCqPccaoy09e1l/qCSZO99TNNx21wkZH1km7ZcVUGkTVPoDd6g0GnyvB8GX9RAHxrvtrwHpgpfz6G4XQZC9Ro1ywTMFhyV7YGw/ovmKVbt1LheF2fNvnoLa1iRKQqzOlPtP69TDOHnrc4z8oo/C+0hDJWM0+qvxoGR9eF3EsVo9Qi9EZR8LCQGmIvqP1B71NhQ9oLpFqsD2z/CUMc/nekTxaXrgTgWE4wq9hl/yGfViawE4hA+bSEjd1Tqhf1sOEEqKBNJZsnZtS3X6ZdBaEDJ+2WzMi1n8UvI2FQezWowvkDFv74VC/mNuty/GCiqBv47H1Fw==
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=hilGdotJ+LUgh0lddFJdZiwhBQhyBeeMjQ40xdKNuX8=;
 b=ligbLBrNms8xhLxUy9kBXGcN7lSEN8O9SyFJz38G7gF6L8+tjmu0N7Lzj+KVwUSSBH9x/4Xyr5OTBQcdFKWYo4r/FF1DSz3+rfMZ2OvOJESpGNtfvv6Ub/wt5NXJzmdx3zea7mtJ1LpX2C7JTtXPwqcT8BLhpQpC6pWcVSeXPMeABq6WWfsx+XZtY0Yh5zzWPfHsRPT6tlc8mi0rZ+iO8pQPvlmpHSJhCG7vrtuIC/1UB7WEmAi1Xi9skmcHH2vCauk6Z50w9i6q8LBx1Dp8cJiDAZh5rhS0H/Yh/HSOE2afcy1LvsOkbb7Dybloj4dpkCYsbJcUdVoFa+kClfmEcg==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"olekstysh@gmail.com" <olekstysh@gmail.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v3 02/11] xen/arm: gic: implement helper functions for
 INTID checks
Thread-Topic: [PATCH v3 02/11] xen/arm: gic: implement helper functions for
 INTID checks
Thread-Index: AQHcFpJ/l4cyfmMsSUSuASmV+4e1mw==
Date: Tue, 26 Aug 2025 19:49:14 +0000
Message-ID: <87ms7l6eyt.fsf@epam.com>
References: <cover.1756216942.git.leonid_komarianskyi@epam.com>
	<4a865061abcfe626ffb8c134fe2353fb5675dc86.1756216943.git.leonid_komarianskyi@epam.com>
In-Reply-To:
 <4a865061abcfe626ffb8c134fe2353fb5675dc86.1756216943.git.leonid_komarianskyi@epam.com>
	(Leonid Komarianskyi's message of "Tue, 26 Aug 2025 14:05:36 +0000")
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_|DB9PR03MB9783:EE_
x-ms-office365-filtering-correlation-id: 118d95c9-e22a-423d-b8fb-08dde4d9a2ef
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|42112799006|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?56PftHiWekdYhrDF6fOBjH2bbQuM4mPoLuul/oP6GwzivOiBc9y6gj1Ard?=
 =?iso-8859-1?Q?q1cH5aDpXyl8iPSmnZYhALeATCu8Hl7wjbOUnNTEapzhLQYqNGauSTtFDa?=
 =?iso-8859-1?Q?UQdhbULjhGz+cBE3AG2tC+pSHlJhBWXkZoO5sdLi2GB4MkK+Uj0MFliLeh?=
 =?iso-8859-1?Q?N7NwFc4l2uG0az5B1CixCNGSnPGV8GmXD0Vyj7MMXkJEZDxPj0PSZ7SCRV?=
 =?iso-8859-1?Q?f9wH1qprXJgKbRwHdl4fpO+JC+Pc4/yNvzgeiymJ3ojpndC1ciDgD+6gAo?=
 =?iso-8859-1?Q?0u6KxxU1xqHmF7N0gU+NQZkiDZRf27LXoG2y/rQJZqhFwI6M/wph4scJVT?=
 =?iso-8859-1?Q?fi5GRik2wuSBF9X866FsZrrMLlJP08oqhAAqDeLRumJI0mf4VaUkYqLaG1?=
 =?iso-8859-1?Q?UG/DjzA4fGOVczrvZ2kcUGNDvwjQgxs22Bzx1SgqLinCoFMMDlcmSHDBBZ?=
 =?iso-8859-1?Q?EKeWKHIIKJSF2qfJhQrsAAu6eLjZDWYSqKwEWGlOaK/IjqN1cEBay+d0vJ?=
 =?iso-8859-1?Q?IdwUbIlirBjDFLeCd2Kw3oE1nWWQsz6WTa0jiYENxDrCAP7Uat/fY5jYAH?=
 =?iso-8859-1?Q?JALDC6T230RtwxKzyBiloHb3IFIaUq5kbKOjIIlNbkTcgoKoLMEdZ8CZBt?=
 =?iso-8859-1?Q?jb7HbRbVlTL/icQHjx8DmieI9BBJnL790aifzKIqP8Tg46uxM/Zw0Ydo6c?=
 =?iso-8859-1?Q?3aPSpKj5lRVu/XCvWvBNK4vBE6QYb6Z6k30lRwzJG08xxFkucmjCUYjj55?=
 =?iso-8859-1?Q?ZWA4pQ4Vc/EvHhhD9+GWahO3PVt7l7RWQiPvBTgmWB5yqIvGM76kLr5C3r?=
 =?iso-8859-1?Q?uny+ExdwSF5w9LrKdnnpgR0gB3yEZSLgEyobzu9/cqNDziTZMVm0dUh1X0?=
 =?iso-8859-1?Q?O6cu4iIIA8yooVEELYgBcdM5JsR9SRoavEMTUUvh8k4hOz11VKqbKvzMDn?=
 =?iso-8859-1?Q?aDzS6FHV/aSSlsv6xskE3FbLRrSqxwthsWiEDzlKXVjAv7rA0UvocJ7B/A?=
 =?iso-8859-1?Q?6/PudiOakrdf15KfuV3qledS4AMjTjS4lyoUBpdgpO3t4DjrYHd+v2Y8JV?=
 =?iso-8859-1?Q?jmr2AoXADuHhaGjBd/87NIJyj1E8Q081vZ/DyBmdLwyguyQSBMCCeE3nO3?=
 =?iso-8859-1?Q?XcMzmevD8tevacgERlNG3EZj55+WnJ5bcEqx+oQiiQjXJ4zZQzWXbpdfjr?=
 =?iso-8859-1?Q?9D1xVEcg7L3oz15FtYD5WAgiTnzKj//gAmjM+3hVDV7cJ4VqIzaXbCWrbY?=
 =?iso-8859-1?Q?GIiOsSX0bdojTnv/6OObUvnCo7dkvr87EOZpQB67trUx3M5qtiT2Nk6Smm?=
 =?iso-8859-1?Q?aCm2Okt5hpm32Le3GF/IedM7Fab+0WkxaPBXnu013ghtjTqEk92rjXOACV?=
 =?iso-8859-1?Q?SNb0jpQHD+LDqgJRx6w031o29eXy1FnMY2qTGWSNEIVrG/PNaUEbIHtgfj?=
 =?iso-8859-1?Q?90WwSx3Gdi+MPXGk/jEDPZIxudF05yitBYfGx2uMeyiVl0jNZ17ZNWPy3g?=
 =?iso-8859-1?Q?eESnZlyAoWFA9bOf2NP2euIMj9rMFf/R5XSLJtuogGeg=3D=3D?=
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)(42112799006)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?NQf0/H/rI3zymFrj7ilzRgMGfmTbliXK3fiF6X0kf3CRjyjjp09gsk4L/+?=
 =?iso-8859-1?Q?9z4f45CX6YcTovWerripTWjG7XaSdsDx9hOpbmd2+XQanUV4gnyEkzfjzH?=
 =?iso-8859-1?Q?FlrupR60gBbqW7f9N/XIr3urGDOBpgRBrQ/50whcGHkUTuQlBeTHCjqTP4?=
 =?iso-8859-1?Q?CbHpjvhJKyHrO6xwdZez4Z5C2B1CRA+yesCZosZ4ONLG+OzuUp+lg9XDZV?=
 =?iso-8859-1?Q?7YK31fFZf6RFv3PMLtQzjXkcGoJERP+nWat8QjEm+ecZ1uw/jYZDrQy5C6?=
 =?iso-8859-1?Q?UXbsioC07mfqjrlZmDqWyUOUK3zECy3s42YRWaLqTJHwQmC8YbwJdPTfty?=
 =?iso-8859-1?Q?lXWbmS6w0DXl+R+dTKKlFlMEqPfZ6kZ/HWS1NwIR+p/7kPNnMIE/vNSqE5?=
 =?iso-8859-1?Q?nd9HmC2O+hQyE3x5y/Rg6hfRq9ehLrwYZ7BPpT39cuHgJoKrWNcNwIDn2P?=
 =?iso-8859-1?Q?DHWHQy/48yEmHmkuwqXMsfHuK3mcaPLYqZz98TwPZM119T9dg5fi3D7mcS?=
 =?iso-8859-1?Q?ERhSBb2mWyucpmwFZ8eU+pAB9z7lk4WUVDOHBuDDr4vXh+faJR8UtMJWMb?=
 =?iso-8859-1?Q?OxK7zI7lrEkjTbP7tC9iG37itqNiJJeus4WY4vhYjKmRfaR1pFhu38BcJE?=
 =?iso-8859-1?Q?ttC2qCqBKNqF1Crn075a1DybYM23T16UU3eNtQa9fQRaMBgfs9luUwUQAz?=
 =?iso-8859-1?Q?ia3hZ4oRtdFtjtS1DNbsi7GP+SsfMMSPpVfNF61QfKBtemUgMKI2ZJJZ7f?=
 =?iso-8859-1?Q?Df+iDfZbtGm/26UtAyMfEe4fp4fmdOXC9oHDuDRwDnO+5g/w0GRSeocvNw?=
 =?iso-8859-1?Q?5n/gYbRqN0e7+I7yPBV9XzNUhzfK0EvpMVg03xoZ5DZ4nagPyDv4eH3xZQ?=
 =?iso-8859-1?Q?RpRq1zmcw7c+6Kxay9+EcsuE5qPxyGVLFc4IKJs/eS+tCUn5Yz3raXCZa7?=
 =?iso-8859-1?Q?pJl50+ogpDtsMXMQ2ZCSq/Tl7hc8Y0mztZAu9za/z2w4DWvRUozvU71JjS?=
 =?iso-8859-1?Q?ExVe/5gf7a5P1Ox9PpLsep8UiazeQwCzf7S4MZMRcZ3YyWHrDIQSpbYSRC?=
 =?iso-8859-1?Q?lbPA63EHUlem/PPc7zzayBloC+RY18IF4o5iJxX9aJ1D38rABE+QpVHZjx?=
 =?iso-8859-1?Q?e8OcvFXfdx2cZDZYop139lO9y1ce0Wba7J1ciHhCHDmOief5wSFNKBumC5?=
 =?iso-8859-1?Q?bwbg1+X9K9mqerSBwCvcJO1A42uemP1QDOfnFDU4xeaq3vpjE8UVMZ1qmW?=
 =?iso-8859-1?Q?dUUEKgW8+bp1AH0ds4c/Rme86ggn4z7XTWY3kOkkQlE6ruriAYO47k8ywh?=
 =?iso-8859-1?Q?qE8r0FN5irHbAjupJYzqvbEHItZNvWxXyW5CleI4hoi2pV6Tz5UuOSPHpN?=
 =?iso-8859-1?Q?wE0JjgvC8eTMcggPWYktRBLwtFugLM3J9XKcfSlaF1sbqkKwVNSvG3iHfv?=
 =?iso-8859-1?Q?CwFdWDAJLsLXQ0+uZknK5OVv6ood6/BAGYR+eTVZrjCA/NbmwlxznBX2B3?=
 =?iso-8859-1?Q?fCElegItJUFW0ey9sKhZCGZ9CLEmKLds5LlSFkNCsqBDyrhR59AdjvAm0B?=
 =?iso-8859-1?Q?9dBurrZw1lBkwQWdhCBq1y2oe70sZRnD/FAjue3L3H8uGzrQbq+Z4TJLSW?=
 =?iso-8859-1?Q?l1do7bKX1A8X4yu6YKfKPivCxHkG4kYROzLtYU6NJ6vwmXB49WzcWOHQ?=
 =?iso-8859-1?Q?=3D=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: 118d95c9-e22a-423d-b8fb-08dde4d9a2ef
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Aug 2025 19:49:14.8893
 (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: 8P+P6VR8Nue6TdO6wORn7DWZk+EJh6tH69zbY3G3jJFXjR97T5hzjKDvsaohBtJ5syCvB5qDTTtPYQI+Q1JlJGBXS5Qz/Hpv0A8twYUMIik=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB9783



Leonid Komarianskyi <Leonid_Komarianskyi@epam.com> writes:

> Introduced two new helper functions: gic_is_valid_line and
> gic_is_spi. The first function helps determine whether an IRQ
> number is less than the number of lines supported by hardware. The
> second function additionally checks if the IRQ number falls within the
> SPI range. Also, updated the appropriate checks to use these new helper
> functions.
>
> The current checks for the real GIC are very similar to those for the
> vGIC but serve a different purpose. For GIC-related code, the interrupt
> numbers should be validated based on whether the hardware can operate
> with such interrupts. On the other hand, for the vGIC, the indexes must
> also be verified to ensure they are available for a specific domain. The
> first reason for introducing these helper functions is to avoid
> potential confusion with vGIC-related checks. The second reason is to
> consolidate similar code into separate functions, which can be more
> easily extended by additional conditions, e.g., when implementing
> extended SPI interrupts.
>
> The changes, which replace open-coded checks with the use of the new
> helper functions, do not introduce any functional changes, as the helper
> functions follow the current IRQ index verification logic.
>
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>

Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

>
> ---
> Changes in V2:
> - introduced this patch
>
> Changes in V3:
> - renamed gic_is_valid_irq to gic_is_valid_line and gic_is_shared_irq to
>   gic_is_spi
> - updated commit message
> ---
>  xen/arch/arm/gic.c             | 2 +-
>  xen/arch/arm/include/asm/gic.h | 9 +++++++++
>  xen/arch/arm/irq.c             | 2 +-
>  3 files changed, 11 insertions(+), 2 deletions(-)
>
> diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
> index e80fe0ca24..9220eef6ea 100644
> --- a/xen/arch/arm/gic.c
> +++ b/xen/arch/arm/gic.c
> @@ -111,7 +111,7 @@ static void gic_set_irq_priority(struct irq_desc *des=
c, unsigned int priority)
>  void gic_route_irq_to_xen(struct irq_desc *desc, unsigned int priority)
>  {
>      ASSERT(priority <=3D 0xff);     /* Only 8 bits of priority */
> -    ASSERT(desc->irq < gic_number_lines());/* Can't route interrupts tha=
t don't exist */
> +    ASSERT(gic_is_valid_line(desc->irq));/* Can't route interrupts that =
don't exist */
>      ASSERT(test_bit(_IRQ_DISABLED, &desc->status));
>      ASSERT(spin_is_locked(&desc->lock));
> =20
> diff --git a/xen/arch/arm/include/asm/gic.h b/xen/arch/arm/include/asm/gi=
c.h
> index 541f0eeb80..c7e3b4ff0d 100644
> --- a/xen/arch/arm/include/asm/gic.h
> +++ b/xen/arch/arm/include/asm/gic.h
> @@ -306,6 +306,15 @@ extern void gic_dump_vgic_info(struct vcpu *v);
> =20
>  /* Number of interrupt lines */
>  extern unsigned int gic_number_lines(void);
> +static inline bool gic_is_valid_line(unsigned int irq)
> +{
> +    return irq < gic_number_lines();
> +}
> +
> +static inline bool gic_is_spi(unsigned int irq)
> +{
> +    return (irq >=3D NR_LOCAL_IRQS && gic_is_valid_line(irq));
> +}
> =20
>  /* IRQ translation function for the device tree */
>  int gic_irq_xlate(const u32 *intspec, unsigned int intsize,
> diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
> index 03fbb90c6c..7dd5a2a453 100644
> --- a/xen/arch/arm/irq.c
> +++ b/xen/arch/arm/irq.c
> @@ -415,7 +415,7 @@ err:
>  bool is_assignable_irq(unsigned int irq)
>  {
>      /* For now, we can only route SPIs to the guest */
> -    return (irq >=3D NR_LOCAL_IRQS) && (irq < gic_number_lines());
> +    return gic_is_spi(irq);
>  }
> =20
>  /*

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 19:54:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 19:54:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095031.1450174 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqzk6-0003Po-Fi; Tue, 26 Aug 2025 19:54:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095031.1450174; Tue, 26 Aug 2025 19:54: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 1uqzk6-0003Ph-Cn; Tue, 26 Aug 2025 19:54:06 +0000
Received: by outflank-mailman (input) for mailman id 1095031;
 Tue, 26 Aug 2025 19:54:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=VNE8=3G=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1uqzk5-0003Pb-Vr
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 19:54:05 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 660c3ff6-82b6-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 21:53:55 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by DB9PR03MB9783.eurprd03.prod.outlook.com
 (2603:10a6:10:451::8) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Tue, 26 Aug
 2025 19:53:53 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9052.019; Tue, 26 Aug 2025
 19: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>
X-Inumbo-ID: 660c3ff6-82b6-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=R2gxb6LCt0lsrlntZHubN3MEpW16QfIavU2BvEjqw9/C0McHvYwMSBmTd5vn5x+NIg0+/KWfbr15ViCZXi9JsdxDHhqwnqCPVWWNlam6wN/t4kROJEV2QN820p0AVFliYFyaHlmNrjin/dMZtgkmR6NV4A65C7AlDbCIqhZAgSpIrLKEaXUqgMnBG8P0zKdDDvVV1WmjpnuZkt9BqqKolScNnssY0qq727lMfwfrg1aW3/OjPZC07cSxl8JiS+k4ncDsOFPAJlsHThu4pCln2/I3QV4E5oXTFBZpiVn2YU8EGU4LWQAp4xbALRbXYo38gt+rbproHglwYq5OZU/KsA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=HakcH58Gz11T5wR/4QItu2zU7mjVIdJG/mBvwCrDTZA=;
 b=cMF9nUlAPZpCqH0bUYoHqsgQuQI72yVkTYqIhJ4mlh86bAQUCgrU/ZwJc41AgaWzRebTzxMinVm8xVssk3pgpVcVzGZumPeFtrlXmxZVt+ffHW2gcmYU5vVW5/XC+E5z4hcZ82d6CIP94K6/bGZgzWPCeTfUdrY6mucTMGxpL1uzbfVZ6szd73YsXxgZHcpNEu2jfsvKkIZT2y2PzVwfA6vGr+mmC9heMak0y9mzNWMbuuG90so3JYBFzlHWp3gpABOzsysTnQg3dhWtaMJr5XuJI8wPIH00Ifu3shFURY362Qx0Ki0auzX8jlccGIbajcoEq/41o/IpPDOSDmCOaA==
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=HakcH58Gz11T5wR/4QItu2zU7mjVIdJG/mBvwCrDTZA=;
 b=Yt+P9bu1mN6hhL5KqQUR8HAtbBfvDGHTqQJmsFmAlN8MMvSvitoSGM3HObHfDbRjwjPll+G9OfU3pMGHO581kfpgV3P9sAA5M194hV0YyWfpxdBMCiWrq2Kc8ipREMhePy3DwkUAAVPrI3VCHQ8VllfpLT5VR77dE6VMXSB/VypxVth0DLEz1hBjgz30Nws7AxuDWOmtFdLOMILSHVOYqc9AFDp+eOw3i34bkitocu6w6HhwBNiOXj+vzoOCgPbchRHzo1gmP2kqrhN3V3PRlyM+ZTJwBweJ7Zk9YPSgsV+6vw0HyRrwj0O+J/gk1cc95YQ4hll4farp4ggKPB/Ijw==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"olekstysh@gmail.com" <olekstysh@gmail.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v3 02/11] xen/arm: gic: implement helper functions for
 INTID checks
Thread-Topic: [PATCH v3 02/11] xen/arm: gic: implement helper functions for
 INTID checks
Thread-Index: AQHcFpJ/l4cyfmMsSUSuASmV+4e1mw==
Date: Tue, 26 Aug 2025 19:53:53 +0000
Message-ID: <87h5xt6er3.fsf@epam.com>
References: <cover.1756216942.git.leonid_komarianskyi@epam.com>
	<4a865061abcfe626ffb8c134fe2353fb5675dc86.1756216943.git.leonid_komarianskyi@epam.com>
	<87ms7l6eyt.fsf@epam.com>
In-Reply-To: <87ms7l6eyt.fsf@epam.com> (Volodymyr Babchuk's message of "Tue,
	26 Aug 2025 22:49:14 +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_|DB9PR03MB9783:EE_
x-ms-office365-filtering-correlation-id: 529716ba-6a11-42bc-ac48-08dde4da4904
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|42112799006|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?pov17z7Fw7D4eMpWUEaex/6r4l5hWisNIM7UZQoAjI9ShWWgGXoGL/gjVj?=
 =?iso-8859-1?Q?wkp2HYBjVU/xQxW8CLXvgxDZBinqwIEALEdUhszjC+sSr/rrKjgrtpQKuy?=
 =?iso-8859-1?Q?yWjx17PwzoZhknfqqmQHe/0p0k0GAh8WFvYNEbG1fmOYpuo9+k0AvYbQfB?=
 =?iso-8859-1?Q?bxttKKFoQntNP1nZanIALRhR2245GBABE5t96/Z29SPrUzjgScQ+ES4NNn?=
 =?iso-8859-1?Q?slwdUpFIXc/nqd6GDjgrzyQRPGZ2xq9dkhf7BePJAGTcBf4sZOOMLACpTj?=
 =?iso-8859-1?Q?hAC53wOIGv2UNckFWpyG7e/eYQSLa+KDJ+jOULgcR0z/sFV5Pq+JrNW/uE?=
 =?iso-8859-1?Q?l95wJeA+eqFSFVXxVvjAvvZxbsg3mW4tFQyaXexpqGHnddPV/Jd5RxxfbS?=
 =?iso-8859-1?Q?FToIx9xkD2h2mr9FtcNIy5Ft0788Qp8UsviYmExOf/Z80EmF9XCz84+DTt?=
 =?iso-8859-1?Q?4U1h1n/YgjnMqrOcYALC5q+6S+wMnGkADUXbiKuQudgjoIV5y2kLCOU4LM?=
 =?iso-8859-1?Q?ySbUHnBdnmvhXmuqAzxTgvW95okQF8Dsh+aTfUGmuDnWtSUR9ygaGHYR7/?=
 =?iso-8859-1?Q?CyxZsvtDrXpw5g5kzecoJruDK5488CbVc9d7fP8jHj82frY0ljlJFtOHpt?=
 =?iso-8859-1?Q?qXvin7c/cnQcImnCRA5YHO2un86ckOrZ29NMjXJATB4wkUBgitMiv59/7w?=
 =?iso-8859-1?Q?JqkjOjmTGX6jYuPFWZSeZ/Kaj2/XlNO94bU3oVIwCoSCEg6yjsf0eXeXdJ?=
 =?iso-8859-1?Q?YvF+zVoVv6UoKRY1grqAG7r4xvKvHHP8jeqOmC/nnGzIfT3JgI3TPIYFpc?=
 =?iso-8859-1?Q?wG9/PkpEZ8+3Ufe4/sbcNN8Mkg/Nvz3spca0lEq6GlI+cH3PN+mr9GiPOk?=
 =?iso-8859-1?Q?hhjzTySUoMV0+LoMSIsLHgGLUOwwfqM83bLGE6jvHIXEtlSZMV0Y0dCIzd?=
 =?iso-8859-1?Q?1zh9cuI2wGLDVR63eBEm4VCjnxgk6BwZ5qwtIPTBvPhN0A5ePKZvtjMFPA?=
 =?iso-8859-1?Q?coxz5xIhtkomtFOrWwi9RA0LKniH627kumMdyBu3Kaj8RC4qUNSbRxzlTa?=
 =?iso-8859-1?Q?6jMdRTJNJX+0edk8VBW54hykJSE3aUOL7dci50Y8L4A7vusHhQ1Jz8VJTZ?=
 =?iso-8859-1?Q?B9HIcMo1nsxPwlOzVnixZBHw4Jtlxf1q++2u1VzxkzF6QH3NtYLmH10aFm?=
 =?iso-8859-1?Q?Xt1Ze1dK8CAypQWStNovp+OZyy+zNw9msfujKEpbUxKdbovSAsCl+NYzLd?=
 =?iso-8859-1?Q?Jv+RuE6MZ0hz7N+OOGmJwdlZUTkggimhRmQjDe3LvZ9UgYkST1PNpH22zH?=
 =?iso-8859-1?Q?393POTSDFvjKMrV74HAYKvzstJIyKySLVBHoDgdtSbMAOThBovTS1zkF0u?=
 =?iso-8859-1?Q?+wjYD4j7FNDzdDHVqYf61hkPi3VtEM13hbMdFw1NsfxkeVsgl9z6AqmSuc?=
 =?iso-8859-1?Q?Mgltp/lXITYSxlDP15v9TuCdUhdX2Zj52UbRTcsTUEjoQI9tzjEA9umse0?=
 =?iso-8859-1?Q?HuQwJgifO9XmsX9Monzmig91j7tXDEilbSEv1cgUPeOA=3D=3D?=
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)(42112799006)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?947BMFHkt6mfR7WogxqCle56UbgSn1HDn1BZZ3zerDH2TlwO9R8CvSVyrv?=
 =?iso-8859-1?Q?bE74uAoJDAzlJi8GX6SaUMz+M8WGqxg6+bvmNm/WdgPdvNcecMTBPIRIW8?=
 =?iso-8859-1?Q?42GOsx9SundC8uUoMeF3VYMOsdzbgqx1KJZl+OUOmQIKHVTBnJz34eaRBo?=
 =?iso-8859-1?Q?uuTSF6e0D5DEeEosuUUnV589k0gWwRCxWZrGW4bM3lYZC3hNHC5Trs8Kn+?=
 =?iso-8859-1?Q?xfaL5Gf/cEA32cFvgMgImFYImmVxAmiLYqlBjDteZHy/qsHOhbNs6I1o1A?=
 =?iso-8859-1?Q?jeSWe3oZ4WIy+sCq5leKqbEV8yQZg7D/JHYE8bWOatoQqwuowdu/tMYL6A?=
 =?iso-8859-1?Q?pCG9m71kps3NDamaw0ehnwva5yMRolKbf9e+74Qy6nBFt2ddGOmjOpYWai?=
 =?iso-8859-1?Q?yHRIQdO6a6n6abqDReg2odAHdbaj/exLMdpOrPv/ma1neoTPYYO0lPkI0M?=
 =?iso-8859-1?Q?7kh+kKdwz69dTwPp5e4Q+7Yv/mhAbVNUihHfKoiZB6qJgx/BgcViW0hNF6?=
 =?iso-8859-1?Q?RN/Wyb23emVNc5SUfAwhYiIu9ELAcGJPRdPdBDSSMJm/ezVCA08Q/elc3q?=
 =?iso-8859-1?Q?s0uufQn14e/q2Xx8yS0snTtiJh992oswyNtuJZDlvLnOw1K41AN/2+0sp8?=
 =?iso-8859-1?Q?W03JKhmTyNrtQnkXWW7X5jbaH6nopffEWm9DdoN0nPVn2A+lOMTPqOz7Xv?=
 =?iso-8859-1?Q?XHm6HP0bteqr+b7ACHreDeyQ0JPs8tsmZc9ZjRKThiJXJZTBobiVo5E1Yi?=
 =?iso-8859-1?Q?oVMn9JoLHTi0/adSevTcPuWw6Z/hVy2JV3zRNnxdjV1/FFNNAs8KZlOlYO?=
 =?iso-8859-1?Q?YaQwjdap2FWQO6antj/JuZYdUeFKVtNhHqIdTYEnM+3S8Ya8HoivsGu6dp?=
 =?iso-8859-1?Q?f0motMtcwshp8VcBWgOIwEuVvb4yAx8yuuRHWHqGRhEZphgWNjp/vLeVx3?=
 =?iso-8859-1?Q?BH2yRDz1ESg9xAOo/pGEHbQKwuifeliUhpIZsS1KQ0UCNRggz72FLgGElW?=
 =?iso-8859-1?Q?4yv5Qt7a8T9gyAre9S3UkBQYQNLDf6sTv+VTQdgNL+nO/zB4k/7FX/z5LU?=
 =?iso-8859-1?Q?11c0OXHFNWDo0ay+ko564wmLRrmbtiPjLDRulU/cwArnr0S/5G6rLI+d5b?=
 =?iso-8859-1?Q?k0ZXCLu0n824AWZPQP4cwDnowGAcCbSAsWPmZplf9+D7efnhkcrA/RL57E?=
 =?iso-8859-1?Q?q7giBUjl4gRzgjuGFGDYbzJ9b6SDm1NWmhn2YVNVIEV2NdRv8RrcIyT0Dw?=
 =?iso-8859-1?Q?ZfG5a3TMpwfd+KkiTBKlXC1n6OnVRU8gFGSmJVGRaKbkacGVNU57Mv6oWp?=
 =?iso-8859-1?Q?bGdK3T6BHHPm8Az8SB5LF6M0jr7NtON9p4Nn5bxLRf/lpbbMgm4ngpEf2s?=
 =?iso-8859-1?Q?3ipBXSZbM2Yf94gWtwZVbfQ3NnYy/cG+Oi/z7VXRYE1YofU93YIgGg6hrt?=
 =?iso-8859-1?Q?wb43BUjkMdtLfkC6L8ZVkIWzY3X1u9zcaHCAc2XUJsWO/7X3gfEjEyt0AQ?=
 =?iso-8859-1?Q?3jJA8C5l8/EmrATm98ds3bBtchxi640RhUUZBJmZxgJMdBhrcYXT3SuJvh?=
 =?iso-8859-1?Q?e6ve8+9gMcC3v+U6iDiB0rI9u0mEcluCaX5NUH3w7DRKnqbFRx90AAq0I+?=
 =?iso-8859-1?Q?kQrS4Q1YZo2/2U4sZKuJRNg9MSwe1xNxB4I99STyJEkrC9JODiSlJ7bA?=
 =?iso-8859-1?Q?=3D=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: 529716ba-6a11-42bc-ac48-08dde4da4904
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Aug 2025 19:53:53.5317
 (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: R1buEYN3pQMLVZkoHXdJAS/kPpFur0OS3aFfHgKbC2coqczWFvXc0I+3pBKDqlDuhJm1iqZGCSuGhX0XIcN9HAlfe2Kva7dnwJDRteyTMow=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB9783


Hello, sorry for the noise,

But I noticed small nick when reviewing next patch, which is very similar.

Volodymyr Babchuk <volodymyr_babchuk@epam.com> writes:

> Leonid Komarianskyi <Leonid_Komarianskyi@epam.com> writes:
>
>> Introduced two new helper functions: gic_is_valid_line and
>> gic_is_spi. The first function helps determine whether an IRQ
>> number is less than the number of lines supported by hardware. The
>> second function additionally checks if the IRQ number falls within the
>> SPI range. Also, updated the appropriate checks to use these new helper
>> functions.
>>
>> The current checks for the real GIC are very similar to those for the
>> vGIC but serve a different purpose. For GIC-related code, the interrupt
>> numbers should be validated based on whether the hardware can operate
>> with such interrupts. On the other hand, for the vGIC, the indexes must
>> also be verified to ensure they are available for a specific domain. The
>> first reason for introducing these helper functions is to avoid
>> potential confusion with vGIC-related checks. The second reason is to
>> consolidate similar code into separate functions, which can be more
>> easily extended by additional conditions, e.g., when implementing
>> extended SPI interrupts.
>>
>> The changes, which replace open-coded checks with the use of the new
>> helper functions, do not introduce any functional changes, as the helper
>> functions follow the current IRQ index verification logic.
>>
>> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
>
> Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

... but with a small fix, see below

>>
>> ---
>> Changes in V2:
>> - introduced this patch
>>
>> Changes in V3:
>> - renamed gic_is_valid_irq to gic_is_valid_line and gic_is_shared_irq to
>>   gic_is_spi
>> - updated commit message
>> ---
>>  xen/arch/arm/gic.c             | 2 +-
>>  xen/arch/arm/include/asm/gic.h | 9 +++++++++
>>  xen/arch/arm/irq.c             | 2 +-
>>  3 files changed, 11 insertions(+), 2 deletions(-)
>>
>> diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
>> index e80fe0ca24..9220eef6ea 100644
>> --- a/xen/arch/arm/gic.c
>> +++ b/xen/arch/arm/gic.c
>> @@ -111,7 +111,7 @@ static void gic_set_irq_priority(struct irq_desc *de=
sc, unsigned int priority)
>>  void gic_route_irq_to_xen(struct irq_desc *desc, unsigned int priority)
>>  {
>>      ASSERT(priority <=3D 0xff);     /* Only 8 bits of priority */
>> -    ASSERT(desc->irq < gic_number_lines());/* Can't route interrupts th=
at don't exist */
>> +    ASSERT(gic_is_valid_line(desc->irq));/* Can't route interrupts that=
 don't exist */
>>      ASSERT(test_bit(_IRQ_DISABLED, &desc->status));
>>      ASSERT(spin_is_locked(&desc->lock));
>> =20
>> diff --git a/xen/arch/arm/include/asm/gic.h b/xen/arch/arm/include/asm/g=
ic.h
>> index 541f0eeb80..c7e3b4ff0d 100644
>> --- a/xen/arch/arm/include/asm/gic.h
>> +++ b/xen/arch/arm/include/asm/gic.h
>> @@ -306,6 +306,15 @@ extern void gic_dump_vgic_info(struct vcpu *v);
>> =20
>>  /* Number of interrupt lines */
>>  extern unsigned int gic_number_lines(void);
>> +static inline bool gic_is_valid_line(unsigned int irq)
>> +{
>> +    return irq < gic_number_lines();
>> +}
>> +
>> +static inline bool gic_is_spi(unsigned int irq)
>> +{
>> +    return (irq >=3D NR_LOCAL_IRQS && gic_is_valid_line(irq));

you don't need parentheses here

[...]

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 19:57:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 19:57:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095040.1450184 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqznZ-0003yM-UL; Tue, 26 Aug 2025 19:57:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095040.1450184; Tue, 26 Aug 2025 19:57:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqznZ-0003yF-Rk; Tue, 26 Aug 2025 19:57:41 +0000
Received: by outflank-mailman (input) for mailman id 1095040;
 Tue, 26 Aug 2025 19:57:41 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=33Xc=3G=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1uqznY-0003y9-M2
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 19:57:40 +0000
Received: from mail-lj1-x22d.google.com (mail-lj1-x22d.google.com
 [2a00:1450:4864:20::22d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id eb2504f9-82b6-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 21:57:39 +0200 (CEST)
Received: by mail-lj1-x22d.google.com with SMTP id
 38308e7fff4ca-333f7ebc44dso2854951fa.0
 for <xen-devel@lists.xenproject.org>; Tue, 26 Aug 2025 12:57:38 -0700 (PDT)
Received: from [192.168.0.110] ([91.123.151.69])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-3365e5ed227sm24523431fa.61.2025.08.26.12.57.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Aug 2025 12:57: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>
X-Inumbo-ID: eb2504f9-82b6-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756238258; x=1756843058; 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=OEWv1oHUlLID01nZ0mkWBkPpWlqJrxdfqoHmsDxWk9w=;
        b=FxxFk5SQQF6D+s9k04hZM36VLPTtQmqm7Kr5rLA2f/8c/hi8yf/kZWwyH5ZqUJDzcd
         rh6KQJwWvFdurp+aV2F+uHyJXnOf9Vj8aIUZFI8aIx5LiwnqTKvERtrxqAReEzcZelSy
         USiherb2o9UGB0XrtREcItU50jP0eu3cA8n+nfk/3iTj+/sBJ2XSTnvOa123mmX2ldoj
         g+k9BrU8vvnN5dLutYp2y7O/ci9kOQ4zQwd23Rowk/c0qbbMImiPpHosnv9wCyfzNYg4
         M5nwQXLboEmwNBPnDJbalKgd0Y9y/us/cVzKZ4cLbVQzLdZ17SJa4ooUUhUXQ3C4ANjA
         kUPw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756238258; x=1756843058;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=OEWv1oHUlLID01nZ0mkWBkPpWlqJrxdfqoHmsDxWk9w=;
        b=tpY4V5xCL60R+UX+AwWwDaYENWuqT29wZWyuira6fiISPx9oQrMFYXVjonhN9ntIb4
         zX8/lyJjjfjtUTzfJX981p1GDVNXnGuMqtySEKXVmwvmfdkDCVW+zMy3/js0Busswdy5
         9xB2KqS5C21XSw/Ty30nX0wzXZ+A0/YKlaz3QRn6hr6D2Wtaf58BB5PEePlMjbwgyO9o
         ZD5Gnad4gRlu1zYukTXN8N/OGitAKE2jTWhsNQ35430sHFEsdOYuPLxL2d1ztEEtH55p
         EKadfW5YlzS9LO+bSbfkkGq/gMW3JGb667Pxf7hlXKvvgMBHZUnkKOnqzdYtmUhRuswk
         /ZIA==
X-Forwarded-Encrypted: i=1; AJvYcCWzTayx4R3J/GspCUzR/fls4nooMkxgsw5fFbcfUIOcNpSBaMIdQYQwui0SmIQP6mD+r/TSWIuSPLk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwvkBklmBDtoHr7BolqS4k5RNZ2yqNd22KZKQ7FcogZ/BeCzz7e
	2v3X41itVNoQ5eav6pLKGBOUy/lYtp20LB5Wi9aaQ2hX9eRtGYPr19op
X-Gm-Gg: ASbGncsAbdIaPoBe89Uwci5YyKYYaZxhmVTSsG5jL9tDplVm8uME0ygH1FH0kMjTio6
	+GWUBtaJGMR1X4vMedy2U+lkNPaJQnc+sRZskW3YFPli8rFGzFUd90NOMGfAgDW6gDkwreSsecN
	eBdIh9OVMx27sOl16ZpVMtAL8IYgzoijFBhBEnbCgnYAY5YTKxiktdxO/DTaafHbmvxBU7m1tg+
	y9C4jsSJJyV5zmho5hGguhJtSYIS7e33HPlWS22SxMy3p48dyEy2Zft+xolC4U0056fo1p6jGND
	xoKpeIQQZM7fQkTKkfW1F2uX/OZF6Qkud7aV2GpKydv2ECEU4Q98hDGtCKAl21uat1n138NlyYB
	QLvBXLcNeK2m18WEL+R73nPkqVA==
X-Google-Smtp-Source: AGHT+IGVdW5vNitdEHivwcbHsEKa9dLaX2ny7Nnj5YWNzJmwcyL40OP//vmvKci8NMfC84/3DoyAkQ==
X-Received: by 2002:a05:651c:41cc:b0:336:5d7d:f034 with SMTP id 38308e7fff4ca-3368b720edbmr8149261fa.1.1756238257985;
        Tue, 26 Aug 2025 12:57:37 -0700 (PDT)
Message-ID: <5a84d20c-5136-4151-8801-b0fbccaf23d7@gmail.com>
Date: Tue, 26 Aug 2025 22:57:35 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 10/11] xen/arm: vgic-v3: add emulation of GICv3.1 eSPI
 registers
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1756216942.git.leonid_komarianskyi@epam.com>
 <642a994d712a8c9df7aed9dec22124564db83c7e.1756216943.git.leonid_komarianskyi@epam.com>
Content-Language: en-US
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
In-Reply-To: <642a994d712a8c9df7aed9dec22124564db83c7e.1756216943.git.leonid_komarianskyi@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 26.08.25 17:05, Leonid Komarianskyi wrote:

Hello Leonid


> Implemented support for GICv3.1 extended SPI registers for vGICv3,
> allowing the emulation of eSPI-specific behavior for guest domains.
> The implementation includes read and write emulation for eSPI-related
> registers (e.g., GICD_ISENABLERnE, GICD_IROUTERnE, and others),
> following a similar approach to the handling of regular SPIs.
> 
> The eSPI registers, previously located in reserved address ranges,
> are now adjusted to support MMIO read and write operations correctly
> when CONFIG_GICV3_ESPI is enabled.
> 
> The availability of eSPIs and the number of emulated extended SPIs
> for guest domains is reported by setting the appropriate bits in the
> GICD_TYPER register, based on the number of eSPIs requested by the
> domain and supported by the hardware. In cases where the configuration
> option is disabled, the hardware does not support eSPIs, or the domain
> does not request such interrupts, the functionality remains unchanged.
> 
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
> 
> ---
> Changes in V2:
> - add missing rank index conversion for pending and inflight irqs
> 
> Changes in V3:
> - changed vgic_store_irouter parameters - instead of offset virq is
>    used, to remove the additional bool espi parameter and simplify
>    checks. Also, adjusted parameters for regular SPI. Since the offset
>    parameter was used only for calculating virq number and then reused for
>    finding rank offset, it will not affect functionality.
> - fixed formatting for goto lables - added newlines after condition
> - fixed logs for GICD_ISACTIVERnE and GICD_ICACTIVERnE handlers
> - removed #ifdefs in 2 places where they were adjacent and could be merged
> ---
>   xen/arch/arm/vgic-v3.c | 275 +++++++++++++++++++++++++++++++++++++++--
>   1 file changed, 266 insertions(+), 9 deletions(-)
> 
> diff --git a/xen/arch/arm/vgic-v3.c b/xen/arch/arm/vgic-v3.c
> index 4369c55177..56c539bb1b 100644
> --- a/xen/arch/arm/vgic-v3.c
> +++ b/xen/arch/arm/vgic-v3.c
> @@ -111,13 +111,10 @@ static uint64_t vgic_fetch_irouter(struct vgic_irq_rank *rank,
>    * Note the offset will be aligned to the appropriate boundary.
>    */
>   static void vgic_store_irouter(struct domain *d, struct vgic_irq_rank *rank,
> -                               unsigned int offset, uint64_t irouter)
> +                               unsigned int virq, uint64_t irouter)
>   {
>       struct vcpu *new_vcpu, *old_vcpu;
> -    unsigned int virq;
> -
> -    /* There is 1 vIRQ per IROUTER */
> -    virq = offset / NR_BYTES_PER_IROUTER;
> +    unsigned int offset;
>   
>       /*
>        * The IROUTER0-31, used for SGIs/PPIs, are reserved and should
> @@ -685,6 +682,9 @@ static int __vgic_v3_distr_common_mmio_read(const char *name, struct vcpu *v,
>       {
>       case VRANGE32(GICD_IGROUPR, GICD_IGROUPRN):
>       case VRANGE32(GICD_IGRPMODR, GICD_IGRPMODRN):
> +#ifdef CONFIG_GICV3_ESPI
> +    case VRANGE32(GICD_IGROUPRnE, GICD_IGROUPRnEN):
> +#endif
>           /* We do not implement security extensions for guests, read zero */
>           if ( dabt.size != DABT_WORD ) goto bad_width;
>           goto read_as_zero;
> @@ -710,11 +710,19 @@ static int __vgic_v3_distr_common_mmio_read(const char *name, struct vcpu *v,
>       /* Read the pending status of an IRQ via GICD/GICR is not supported */
>       case VRANGE32(GICD_ISPENDR, GICD_ISPENDRN):
>       case VRANGE32(GICD_ICPENDR, GICD_ICPENDRN):
> +#ifdef CONFIG_GICV3_ESPI
> +    case VRANGE32(GICD_ISPENDRnE, GICD_ISPENDRnEN):
> +    case VRANGE32(GICD_ICPENDRnE, GICD_ICPENDRnEN):
> +#endif
>           goto read_as_zero;
>   
>       /* Read the active status of an IRQ via GICD/GICR is not supported */
>       case VRANGE32(GICD_ISACTIVER, GICD_ISACTIVERN):
>       case VRANGE32(GICD_ICACTIVER, GICD_ICACTIVERN):
> +#ifdef CONFIG_GICV3_ESPI
> +    case VRANGE32(GICD_ISACTIVERnE, GICD_ISACTIVERnEN):
> +    case VRANGE32(GICD_ICACTIVERnE, GICD_ICACTIVERnEN):
> +#endif
>           goto read_as_zero;
>   
>       case VRANGE32(GICD_IPRIORITYR, GICD_IPRIORITYRN):
> @@ -752,6 +760,69 @@ static int __vgic_v3_distr_common_mmio_read(const char *name, struct vcpu *v,
>           return 1;
>       }
>   
> +#ifdef CONFIG_GICV3_ESPI
> +    case VRANGE32(GICD_ISENABLERnE, GICD_ISENABLERnEN):
> +        if ( dabt.size != DABT_WORD )
> +            goto bad_width;
> +        rank = vgic_ext_rank_offset(v, 1, reg - GICD_ISENABLERnE, DABT_WORD);
> +        if ( rank == NULL )
> +            goto read_as_zero;
> +        vgic_lock_rank(v, rank, flags);
> +        *r = vreg_reg32_extract(rank->ienable, info);
> +        vgic_unlock_rank(v, rank, flags);
> +        return 1;
> +
> +    case VRANGE32(GICD_ICENABLERnE, GICD_ICENABLERnEN):
> +        if ( dabt.size != DABT_WORD )
> +            goto bad_width;
> +        rank = vgic_ext_rank_offset(v, 1, reg - GICD_ICENABLERnE, DABT_WORD);
> +        if ( rank == NULL )
> +            goto read_as_zero;
> +        vgic_lock_rank(v, rank, flags);
> +        *r = vreg_reg32_extract(rank->ienable, info);
> +        vgic_unlock_rank(v, rank, flags);
> +        return 1;
> +
> +    case VRANGE32(GICD_IPRIORITYRnE, GICD_IPRIORITYRnEN):
> +    {
> +        uint32_t ipriorityr;
> +        uint8_t rank_index;
> +
> +        if ( dabt.size != DABT_BYTE && dabt.size != DABT_WORD )
> +            goto bad_width;
> +        rank = vgic_ext_rank_offset(v, 8, reg - GICD_IPRIORITYRnE, DABT_WORD);
> +        if ( rank == NULL )
> +            goto read_as_zero;
> +        rank_index = REG_RANK_INDEX(8, reg - GICD_IPRIORITYRnE, DABT_WORD);
> +
> +        vgic_lock_rank(v, rank, flags);
> +        ipriorityr = ACCESS_ONCE(rank->ipriorityr[rank_index]);
> +        vgic_unlock_rank(v, rank, flags);
> +
> +        *r = vreg_reg32_extract(ipriorityr, info);
> +
> +        return 1;
> +    }
> +
> +    case VRANGE32(GICD_ICFGRnE, GICD_ICFGRnEN):
> +    {
> +        uint32_t icfgr;
> +
> +        if ( dabt.size != DABT_WORD )
> +            goto bad_width;
> +        rank = vgic_ext_rank_offset(v, 2, reg - GICD_ICFGRnE, DABT_WORD);
> +        if ( rank == NULL )
> +            goto read_as_zero;
> +        vgic_lock_rank(v, rank, flags);
> +        icfgr = rank->icfg[REG_RANK_INDEX(2, reg - GICD_ICFGRnE, DABT_WORD)];
> +        vgic_unlock_rank(v, rank, flags);
> +
> +        *r = vreg_reg32_extract(icfgr, info);
> +
> +        return 1;
> +    }
> +#endif
> +
>       default:
>           printk(XENLOG_G_ERR
>                  "%pv: %s: unhandled read r%d offset %#08x\n",
> @@ -782,6 +853,9 @@ static int __vgic_v3_distr_common_mmio_write(const char *name, struct vcpu *v,
>       {
>       case VRANGE32(GICD_IGROUPR, GICD_IGROUPRN):
>       case VRANGE32(GICD_IGRPMODR, GICD_IGRPMODRN):
> +#ifdef CONFIG_GICV3_ESPI
> +    case VRANGE32(GICD_IGROUPRnE, GICD_IGROUPRnEN):
> +#endif
>           /* We do not implement security extensions for guests, write ignore */
>           goto write_ignore_32;
>   
> @@ -871,6 +945,99 @@ static int __vgic_v3_distr_common_mmio_write(const char *name, struct vcpu *v,
>           vgic_unlock_rank(v, rank, flags);
>           return 1;
>   
> +#ifdef CONFIG_GICV3_ESPI
> +    case VRANGE32(GICD_ISENABLERnE, GICD_ISENABLERnEN):
> +        if ( dabt.size != DABT_WORD )
> +            goto bad_width;
> +        rank = vgic_ext_rank_offset(v, 1, reg - GICD_ISENABLERnE, DABT_WORD);
> +        if ( rank == NULL )
> +            goto write_ignore;
> +        vgic_lock_rank(v, rank, flags);
> +        tr = rank->ienable;
> +        vreg_reg32_setbits(&rank->ienable, r, info);
> +        vgic_enable_irqs(v, (rank->ienable) & (~tr), EXT_RANK_IDX2NUM(rank->index));
> +        vgic_unlock_rank(v, rank, flags);
> +        return 1;
> +
> +    case VRANGE32(GICD_ICENABLERnE, GICD_ICENABLERnEN):
> +        if ( dabt.size != DABT_WORD )
> +            goto bad_width;
> +        rank = vgic_ext_rank_offset(v, 1, reg - GICD_ICENABLERnE, DABT_WORD);
> +        if ( rank == NULL )
> +            goto write_ignore;
> +        vgic_lock_rank(v, rank, flags);
> +        tr = rank->ienable;
> +        vreg_reg32_clearbits(&rank->ienable, r, info);
> +        vgic_disable_irqs(v, (~rank->ienable) & tr, EXT_RANK_IDX2NUM(rank->index));
> +        vgic_unlock_rank(v, rank, flags);
> +        return 1;
> +
> +    case VRANGE32(GICD_ISPENDRnE, GICD_ISPENDRnEN):
> +        if ( dabt.size != DABT_WORD )
> +            goto bad_width;
> +        rank = vgic_ext_rank_offset(v, 1, reg - GICD_ISPENDRnE, DABT_WORD);
> +        if ( rank == NULL )
> +            goto write_ignore;
> +
> +        vgic_set_irqs_pending(v, r, EXT_RANK_IDX2NUM(rank->index));
> +
> +        return 1;
> +
> +    case VRANGE32(GICD_ICPENDRnE, GICD_ICPENDRnEN):
> +        if ( dabt.size != DABT_WORD )
> +            goto bad_width;
> +        rank = vgic_ext_rank_offset(v, 1, reg - GICD_ICPENDRnE, DABT_WORD);
> +        if ( rank == NULL )
> +            goto write_ignore;
> +
> +        vgic_check_inflight_irqs_pending(v, EXT_RANK_IDX2NUM(rank->index), r);
> +
> +        goto write_ignore;
> +    case VRANGE32(GICD_ISACTIVERnE, GICD_ISACTIVERnEN):
> +        if ( dabt.size != DABT_WORD )
> +            goto bad_width;
> +        printk(XENLOG_G_ERR
> +               "%pv: %s: unhandled word write %#"PRIregister" to ISACTIVER%dE\n",
> +               v, name, r, reg - GICD_ISACTIVERnE);
> +        return 0;

Guest write access to GICD_ISACTIVER<n>E will lead to abort. But, I know 
you just repeated the logic for regular GICD_ISACTIVER<n>.


> +
> +    case VRANGE32(GICD_ICACTIVERnE, GICD_ICACTIVERnEN):
> +        printk(XENLOG_G_ERR
> +               "%pv: %s: unhandled word write %#"PRIregister" to ICACTIVER%dE\n",
> +               v, name, r, reg - GICD_ICACTIVER);

s/GICD_ICACTIVER/GICD_ICACTIVERnE


> +        goto write_ignore_32;
> +
> +    case VRANGE32(GICD_IPRIORITYRnE, GICD_IPRIORITYRnEN):
> +    {
> +        uint32_t *ipriorityr, priority;
> +
> +        if ( dabt.size != DABT_BYTE && dabt.size != DABT_WORD )
> +            goto bad_width;
> +        rank = vgic_ext_rank_offset(v, 8, reg - GICD_IPRIORITYRnE, DABT_WORD);
> +        if ( rank == NULL ) goto write_ignore;
> +        vgic_lock_rank(v, rank, flags);
> +        ipriorityr = &rank->ipriorityr[REG_RANK_INDEX(8, reg - GICD_IPRIORITYRnE,
> +                                                      DABT_WORD)];
> +        priority = ACCESS_ONCE(*ipriorityr);
> +        vreg_reg32_update(&priority, r, info);
> +        ACCESS_ONCE(*ipriorityr) = priority;
> +        vgic_unlock_rank(v, rank, flags);
> +        return 1;
> +    }

NIT: emply line please (and in similar places)

> +    case VRANGE32(GICD_ICFGRnE, GICD_ICFGRnEN):
> +        if ( dabt.size != DABT_WORD )
> +            goto bad_width;
> +        rank = vgic_ext_rank_offset(v, 2, reg - GICD_ICFGRnE, DABT_WORD);
> +        if ( rank == NULL )
> +            goto write_ignore;
> +        vgic_lock_rank(v, rank, flags);
> +        vreg_reg32_update(&rank->icfg[REG_RANK_INDEX(2, reg - GICD_ICFGRnE,
> +                                                     DABT_WORD)],
> +                          r, info);
> +        vgic_unlock_rank(v, rank, flags);
> +        return 1;
> +#endif
> +
>       default:
>           printk(XENLOG_G_ERR
>                  "%pv: %s: unhandled write r%d=%"PRIregister" offset %#08x\n",
> @@ -1129,6 +1296,16 @@ static int vgic_v3_distr_mmio_read(struct vcpu *v, mmio_info_t *info,
>               typer |= GICD_TYPE_LPIS;
>   
>           typer |= (v->domain->arch.vgic.intid_bits - 1) << GICD_TYPE_ID_BITS_SHIFT;
> +#ifdef CONFIG_GICV3_ESPI
> +        if ( v->domain->arch.vgic.nr_espis > 0 )
> +        {
> +            /* Set eSPI support bit for the domain */
> +            typer |= GICD_TYPER_ESPI;
> +            /* Set ESPI range bits */
> +            typer |= (DIV_ROUND_UP(v->domain->arch.vgic.nr_espis, 32) - 1)
> +                       << GICD_TYPER_ESPI_RANGE_SHIFT;
> +        }
> +#endif
>   
>           *r = vreg_reg32_extract(typer, info);
>   
> @@ -1194,6 +1371,18 @@ static int vgic_v3_distr_mmio_read(struct vcpu *v, mmio_info_t *info,
>       case VRANGE32(GICD_IPRIORITYR, GICD_IPRIORITYRN):
>       case VRANGE32(GICD_ICFGR, GICD_ICFGRN):
>       case VRANGE32(GICD_IGRPMODR, GICD_IGRPMODRN):
> +
> +#ifdef CONFIG_GICV3_ESPI
> +    case VRANGE32(GICD_IGROUPRnE, GICD_IGROUPRnEN):
> +    case VRANGE32(GICD_ISENABLERnE, GICD_ISENABLERnEN):
> +    case VRANGE32(GICD_ICENABLERnE, GICD_ICENABLERnEN):
> +    case VRANGE32(GICD_ISPENDRnE, GICD_ISPENDRnEN):
> +    case VRANGE32(GICD_ICPENDRnE, GICD_ICPENDRnEN):
> +    case VRANGE32(GICD_ISACTIVERnE, GICD_ISACTIVERnEN):
> +    case VRANGE32(GICD_ICACTIVERnE, GICD_ICACTIVERnEN):
> +    case VRANGE32(GICD_IPRIORITYRnE, GICD_IPRIORITYRnEN):
> +    case VRANGE32(GICD_ICFGRnE, GICD_ICFGRnEN):
> +#endif

GICD_IGRPMODR<n>E is missed? I guess, it should be RAZ as regular 
GICD_IGRPMODR<n>.

Also GICD_NSACR<n>E is missed, although the case for regular 
GICD_NSACR<n> is present (not visible in patch context).

>           /*
>            * Above all register are common with GICR and GICD
>            * Manage in common
> @@ -1216,7 +1405,11 @@ static int vgic_v3_distr_mmio_read(struct vcpu *v, mmio_info_t *info,
>           /* Replaced with GICR_ISPENDR0. So ignore write */
>           goto read_as_zero_32;
>   
> +#ifdef CONFIG_GICV3_ESPI
> +    case VRANGE32(0x3100, 0x60FC):
> +#else
>       case VRANGE32(0x0F30, 0x60FC):
> +#endif
>           goto read_reserved;
>   
>       case VRANGE64(GICD_IROUTER32, GICD_IROUTER1019):
> @@ -1235,8 +1428,30 @@ static int vgic_v3_distr_mmio_read(struct vcpu *v, mmio_info_t *info,
>   
>           return 1;
>       }
> +#ifdef CONFIG_GICV3_ESPI
> +    case VRANGE64(GICD_IROUTERnE, GICD_IROUTERnEN):
> +    {
> +        uint64_t irouter;
> +
> +        if ( !vgic_reg64_check_access(dabt) )
> +            goto bad_width;
> +        rank = vgic_ext_rank_offset(v, 64, gicd_reg - GICD_IROUTERnE,
> +                                DABT_DOUBLE_WORD);
> +        if ( rank == NULL )
> +            goto read_as_zero;
> +        vgic_lock_rank(v, rank, flags);
> +        irouter = vgic_fetch_irouter(rank, gicd_reg - GICD_IROUTERnE);
> +        vgic_unlock_rank(v, rank, flags);
>   
> +        *r = vreg_reg64_extract(irouter, info);
> +
> +        return 1;
> +    }
> +
> +    case VRANGE32(0xA004, 0xBFFC):
> +#else
>       case VRANGE32(0x7FE0, 0xBFFC):
> +#endif
>           goto read_reserved;
>   
>       case VRANGE32(0xC000, 0xFFCC):
> @@ -1382,6 +1597,18 @@ static int vgic_v3_distr_mmio_write(struct vcpu *v, mmio_info_t *info,
>       case VRANGE32(GICD_IPRIORITYR, GICD_IPRIORITYRN):
>       case VRANGE32(GICD_ICFGR, GICD_ICFGRN):
>       case VRANGE32(GICD_IGRPMODR, GICD_IGRPMODRN):
> +
> +#ifdef CONFIG_GICV3_ESPI
> +    case VRANGE32(GICD_IGROUPRnE, GICD_IGROUPRnEN):
> +    case VRANGE32(GICD_ISENABLERnE, GICD_ISENABLERnEN):
> +    case VRANGE32(GICD_ICENABLERnE, GICD_ICENABLERnEN):
> +    case VRANGE32(GICD_ISPENDRnE, GICD_ISPENDRnEN):
> +    case VRANGE32(GICD_ICPENDRnE, GICD_ICPENDRnEN):
> +    case VRANGE32(GICD_ISACTIVERnE, GICD_ISACTIVERnEN):
> +    case VRANGE32(GICD_ICACTIVERnE, GICD_ICACTIVERnEN):
> +    case VRANGE32(GICD_IPRIORITYRnE, GICD_IPRIORITYRnEN):
> +    case VRANGE32(GICD_ICFGRnE, GICD_ICFGRnEN):
> +#endif

GICD_IGRPMODR<n>E is missed? I guess, it should be WI as regular 
GICD_IGRPMODR<n>.


Also GICD_NSACR<n>E is missed, although the case for regular 
GICD_NSACR<n> is present (not visible in patch context).

>           /* Above registers are common with GICR and GICD
>            * Manage in common */
>           return __vgic_v3_distr_common_mmio_write("vGICD", v, info,
> @@ -1405,26 +1632,56 @@ static int vgic_v3_distr_mmio_write(struct vcpu *v, mmio_info_t *info,
>           if ( dabt.size != DABT_WORD ) goto bad_width;
>           return 0;
>   
> +#ifdef CONFIG_GICV3_ESPI
> +    case VRANGE32(0x3100, 0x60FC):
> +#else
>       case VRANGE32(0x0F30, 0x60FC):
> +#endif

I wonder, can we have #defines for these magics (at least for the start 
of the reserved range)?

>           goto write_reserved;
>   
>       case VRANGE64(GICD_IROUTER32, GICD_IROUTER1019):
>       {
>           uint64_t irouter;
> +        unsigned int offset, virq;
>   
>           if ( !vgic_reg64_check_access(dabt) ) goto bad_width;
> -        rank = vgic_rank_offset(v, 64, gicd_reg - GICD_IROUTER,
> -                                DABT_DOUBLE_WORD);
> +        offset = gicd_reg - GICD_IROUTER;
> +        rank = vgic_rank_offset(v, 64, offset, DABT_DOUBLE_WORD);
>           if ( rank == NULL ) goto write_ignore;
>           vgic_lock_rank(v, rank, flags);
> -        irouter = vgic_fetch_irouter(rank, gicd_reg - GICD_IROUTER);
> +        irouter = vgic_fetch_irouter(rank, offset);
> +        vreg_reg64_update(&irouter, r, info);
> +        virq = offset / NR_BYTES_PER_IROUTER;
> +        vgic_store_irouter(v->domain, rank, virq, irouter);
> +        vgic_unlock_rank(v, rank, flags);
> +        return 1;
> +    }
> +
> +#ifdef CONFIG_GICV3_ESPI
> +    case VRANGE64(GICD_IROUTERnE, GICD_IROUTERnEN):
> +    {
> +        uint64_t irouter;
> +        unsigned int offset, virq;
> +
> +        if ( !vgic_reg64_check_access(dabt) )
> +            goto bad_width;
> +        offset = gicd_reg - GICD_IROUTERnE;
> +        rank = vgic_ext_rank_offset(v, 64, offset, DABT_DOUBLE_WORD);
> +        if ( rank == NULL )
> +            goto write_ignore;
> +        vgic_lock_rank(v, rank, flags);
> +        irouter = vgic_fetch_irouter(rank, offset);
>           vreg_reg64_update(&irouter, r, info);
> -        vgic_store_irouter(v->domain, rank, gicd_reg - GICD_IROUTER, irouter);
> +        virq = ESPI_IDX2INTID(offset / NR_BYTES_PER_IROUTER);
> +        vgic_store_irouter(v->domain, rank, virq, irouter);
>           vgic_unlock_rank(v, rank, flags);
>           return 1;
>       }
>   
> +    case VRANGE32(0xA004, 0xBFFC):
> +#else
>       case VRANGE32(0x7FE0, 0xBFFC):
> +#endif
>           goto write_reserved;
>   
>       case VRANGE32(0xC000, 0xFFCC):



From xen-devel-bounces@lists.xenproject.org Tue Aug 26 20:02:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 20:02:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095053.1450195 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uqzs9-0005lX-J8; Tue, 26 Aug 2025 20:02:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095053.1450195; Tue, 26 Aug 2025 20: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 1uqzs9-0005lQ-FQ; Tue, 26 Aug 2025 20:02:25 +0000
Received: by outflank-mailman (input) for mailman id 1095053;
 Tue, 26 Aug 2025 20:02:24 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=VNE8=3G=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1uqzs8-0005lK-FR
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 20:02:24 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 93bd3be9-82b7-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 22:02:22 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by DU4PR03MB10696.eurprd03.prod.outlook.com
 (2603:10a6:10:581::16) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Tue, 26 Aug
 2025 20:02:19 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9052.019; Tue, 26 Aug 2025
 20:02: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>
X-Inumbo-ID: 93bd3be9-82b7-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wEHk35Gu71XfVk1ichTraj7sv1QjPrIcTBwpKt5onxbkXF5cX3S2jtUu9D2uLhEJx1hFLYzhO2SPqxfHFnnkw2XlqeuzCe7GPL36lOZfu4GA6h450xtIrT704RlV8YYubdfT7qdEDaRzkVzrbtL6g1v5TaNJ1pnAASz96IjEIc3Uh4dPS9HlKlrP9m77aQkQQ9qG+brj74b6JUoDjZU81AmyPyomheBagSVJOT37SuXNMPY359dj5FuMlZRoXzrONudStV7ZztP6kY4Vk5ZtNqZBc8BF7oWs4nor6oZsGscA5eXe9Zy6sio50HiqpVKYNCf0clB09blW92arVDyraA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=KToPOR/+LblEQ39N0noW8PDKQSVGbDSDI04CZwAFtcQ=;
 b=qgYwQuwMtZ/rNKLgS5GRtjgsetly7lw0YyKNfc9YW0Dfiq7lNTZVCvI4NNxLhhiuYm4stVMJjUJOmZDFPzGniTGUdH8sINW2dMsSPB6zM2Ng+iCzGUj7nR1WqEC08nE0EF7UajCfizsTI1H6mswK33pgXvMD+gsqWW5SZ8pKeQrlpaowSNp+bEltSyCRtV3ywagQPM9eMZi3gpKWh5XPomkjehp6R7zCuQLjZ9NwFyk8gFFE14KNFdD3AyMp2bLWufu0BL2YMNhmoKN2ceV7SZyEUBFtoHbgQD4H2aK3YKH/3YZpC3FqlSbHIIApr8XvFcnl4glNOz1ibv2tuaKPQQ==
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=KToPOR/+LblEQ39N0noW8PDKQSVGbDSDI04CZwAFtcQ=;
 b=iv/5RZXazHArZTO6lGs0q6q6ESc8+kth2I20ZIPFqlYHk0JS3n84ilRbipGlfAiG0DIGYxgDGeDZjNnRFVQ/hdHx82baW9KsNi/A2oH+mvE+KWjIQisHN8HuGJnk7LFXTVLbkic4jfCtYos6ZQWETeOHjY3Szt5BiSXqnueuLl07yo6gobEMOKeUkuSvUtRXoraGO911G3ZLtazU0uX7EGFbOFXMk7FdjABnGHmj97QFNbmcdcWUhg0iE5GqQ6khrj2S93XPXWXeKay27Uedr8gv/uPIj0wkjB40h5DND8iT0rSoS1yWedJUkFfo3ZB3CvgvqkxvfRweABBbrSZEPA==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"olekstysh@gmail.com" <olekstysh@gmail.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v3 03/11] xen/arm: vgic: implement helper functions for
 virq checks
Thread-Topic: [PATCH v3 03/11] xen/arm: vgic: implement helper functions for
 virq checks
Thread-Index: AQHcFpJ/eek3/DqJlE2eNsEQLkbJqg==
Date: Tue, 26 Aug 2025 20:02:18 +0000
Message-ID: <875xe96ed2.fsf@epam.com>
References: <cover.1756216942.git.leonid_komarianskyi@epam.com>
	<a50e978b0442d737bb2621085e95aa6bee8c506b.1756216943.git.leonid_komarianskyi@epam.com>
In-Reply-To:
 <a50e978b0442d737bb2621085e95aa6bee8c506b.1756216943.git.leonid_komarianskyi@epam.com>
	(Leonid Komarianskyi's message of "Tue, 26 Aug 2025 14:05:37 +0000")
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_|DU4PR03MB10696:EE_
x-ms-office365-filtering-correlation-id: 134cfd9c-25a0-458e-6732-08dde4db763b
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|1800799024|366016|42112799006|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?C5/pNSWZSb9mq3/0UPKvMG0BPQDmqrn5r02kP4VyAkKFV8DtUeDTfjQv9C?=
 =?iso-8859-1?Q?BLYt68gbwPPnqe5bsiHzDhx8mVJusZCcaCnFRjc8eO3NNLLh+GfcEMV7c7?=
 =?iso-8859-1?Q?hCx9BEyxPqCf3Scni2poK6XmCCVnE99SeCPQEC1QPLg2LwvdTI4fkdEv6Q?=
 =?iso-8859-1?Q?iIfdUgD8nxYyKQV60xwk2EXFtSmol23elZYIGN+EpclVhXznSowQr6OKhq?=
 =?iso-8859-1?Q?x9q7CloFqmw8PLXdy5NgCgs62qgr7xjK2CqZ/7R/j6EfJipaZxfWGIRScu?=
 =?iso-8859-1?Q?VfIW6Wx5cEilsLpjR5DpsBrtL+ckJksVzrLchdGfsBoVY3o2y0589IWm30?=
 =?iso-8859-1?Q?3FJP9N2rQvDblUk0uEGPdGI90nDAib+tmsVDn9wrJIS4NOQYBsNs1KSfL1?=
 =?iso-8859-1?Q?pRrhhrUGKB26+Xdao7V6wvdMR2KBMjbk9qE3VJchWubRtsZPTEqdh2NvFg?=
 =?iso-8859-1?Q?eQPXXmBGDHcUEF0Na6k26U00j8ESrCvnDd17jiIs31nxgq7v614LDheDXA?=
 =?iso-8859-1?Q?KP+IpsF87lL+rdz1SLYRfPFq2q7u8n6hTe9a+mZqstJZgCup5Owb7dq/xQ?=
 =?iso-8859-1?Q?/NYC8paz4+lD2G9M7a9LSmZ0j+YmEKyl1clO9/S0jUPFHYKnWx4p6hUBeF?=
 =?iso-8859-1?Q?d4wJNJRONDe9V9j2InrNOZz/MSI3NFiEXSExE3LmracVOb6RDzq0vVUima?=
 =?iso-8859-1?Q?xT6bKRT2l1MFbeXJiE8ghu4sVueVE/N2keZtfoHz3Mg0HJo2U60Y76SXtJ?=
 =?iso-8859-1?Q?GU9cdnRN7bs223+PzlHCne++CtdI0ptgT0yI4vu47jMt8zJJb/DJq0/y3M?=
 =?iso-8859-1?Q?bx2XfEG3UV4Axrb15ujEw18Rt/hPBB+ziWc/H4K3wwFimrNe9QTssiWjpq?=
 =?iso-8859-1?Q?wAAxuKkbR369ELWR1I3vLpc0kMKir9TTyN9Op4R746/9fIvMqoFsPMBx4B?=
 =?iso-8859-1?Q?jF4tARp6uXHyuEoEbt0LVaFfrPTqYuO1ZoyZ9QJ5k9icYXKTUcP2zLfHua?=
 =?iso-8859-1?Q?nWIYMr18m8JNCmdPS9/Z7R6slJDAz+Mj/s+BG3ag5/AG2vnZY8Mvmt2CJ0?=
 =?iso-8859-1?Q?yLUdoMWTQWVj+Gsd7WbU0grFZqfGOvEK6WW2QoRS7L8GeocKfJX/9gOkAz?=
 =?iso-8859-1?Q?rMhiwhZD9a7HC8z9Rbw7koo2MdSaKLlW/tTXrnI0+1itao3dEfsABiBsUw?=
 =?iso-8859-1?Q?FODutsbO+BC4nwEd7IkIfnCfhi473urlLc6iqKcsAznYUVnvH0G2dCimPT?=
 =?iso-8859-1?Q?CjI027r9Axso/ggH/CJyNy/fy/81w7Naj5K2PyqJeQrxSdqqk1hg/mMPEh?=
 =?iso-8859-1?Q?U6kI4IizOIYsRKYLvVMEUKuImQQW61WzS3ht8OhoyDXg/WpkqcwajFHGSA?=
 =?iso-8859-1?Q?mMNE9Xc6cqIjc5CnUcsdLtkgJNUjyM2JBZ2MGJ2vq7Ev0ocwT4GW536A9L?=
 =?iso-8859-1?Q?uSRpo8v/WQ5l2BLDen4SG9ES4FoI6hCo9HQrS8UgTiruwdZv5D+yvE4AF9?=
 =?iso-8859-1?Q?NKpgSNphQJPh+OhUg3C5EKnen621pHSJ+vmpPtb2KBrA=3D=3D?=
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)(1800799024)(366016)(42112799006)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?g8kFrGIVZ3HfqD2ftZxUWzYAl8z5KyPAaxE3i6bdEclbTdNPSvbmvUsyoX?=
 =?iso-8859-1?Q?3WUMRjN8INWUmb0/f2jKHM8bJ+cXnlk+o2UjhUE8RSK+Iql5ED402UtW0M?=
 =?iso-8859-1?Q?JhAV/ERc2aFlmlVuZ3FIv30yccdjNg78qe/DOg026GasDJSD9O/B2p42iN?=
 =?iso-8859-1?Q?sHpuNkROoGbin56FQqhKpBYGLpmwrIu/r4a4N4YVFIQakhNGL0A9kV2Zms?=
 =?iso-8859-1?Q?fGdA4SQaQRMKfw04QzEDmJN0AKQq9x2SMNVL3NEPKpf7mqG9JnseR1593a?=
 =?iso-8859-1?Q?/SXaYLFaE1+lyouOiQQ6KBnRBipPvOPNFvZNw8hmckstNLc7NtqUvAXCsk?=
 =?iso-8859-1?Q?ZkQaheYZxsxFFK7Gre0TS1zdXqoZ1Jfz87agJtiTox+H037xnI/VgtLy0M?=
 =?iso-8859-1?Q?1IRroQo7xiSI7Dm9xJM/zvwNxUyfmFTs3uvD8GqJghqi4W9VxieYM/+7dE?=
 =?iso-8859-1?Q?I7OmRGfYASstl/5lUa88QJqJcD7eFaM1R7lLIngGzKlWoconNR8ItQaWPH?=
 =?iso-8859-1?Q?ri/kx2qKfgpmda0qbKjV6cYL6n+k5wxu1CnOmot0+hb3lZSPcAIbOzdnyF?=
 =?iso-8859-1?Q?K6e0I2aXwrmKUw+z9N7PkF2QFylDtQ6JlkqznYRdgMAAhMnEt+tlI7Qegu?=
 =?iso-8859-1?Q?IYzFPzhXiAzcFP+GgN04tzKRR8OUONTi9qjBW8nGkiaBM15xia4LVQCuv7?=
 =?iso-8859-1?Q?yrhIngrQYBHRiObCdpnj06b3ZUzTlKCaCTcVZUpiKFsTRos4N+dWJntNRy?=
 =?iso-8859-1?Q?1TebtAST1+2B9RpT0rqmeFpIITqqrA911ilmPJT9ChD2cmYHo4DkINNEE/?=
 =?iso-8859-1?Q?j3ZMSSCjzQOonE7kj/2vKuWEPpmI1OJYtl/ruorJjTMN+Dg7/K++0MY9pS?=
 =?iso-8859-1?Q?3bi1C7rQdsybb+Adsrt65NqS4qMVmCMluIJHeaHc86sYwVSIIAO2BAOOH5?=
 =?iso-8859-1?Q?d3/lrOOnTnKXh1aH/An83OjUjMPFOj0D0+67QQbA2whY1D6UwNeuijaYEo?=
 =?iso-8859-1?Q?Pfs30BWe2xkyXndMuaTtnCNIYi0K0Ph7mXCYFm5bKVIKsTfZVSAMUqAKKL?=
 =?iso-8859-1?Q?fBEOyUekPh3IojEZtMsc2CV+PJcsDeTmaSDrl3aBVmIKtoUHnhwwGmTN4Y?=
 =?iso-8859-1?Q?ld8IaRjZWyfpd1MxTWq0rpiykW5Men9S1Y6o6F5u+INaCGOOw5Nf7i7rxZ?=
 =?iso-8859-1?Q?iSxLzqQCg+ygb9vZ3SPw7soEbXmgKgBlCyg6ykDLI5KneLUDxvgy6cbJm4?=
 =?iso-8859-1?Q?tKqA2VgXE33UJdoXxbPyD9Md3LQsggGyGIUKFZS5SSQZ/saDAjX9buI3W9?=
 =?iso-8859-1?Q?oTnSDISjqWWM5p1qaxKq131SE1UKJQWVFG34l6Ix7kSVAS3psayzqO8TL6?=
 =?iso-8859-1?Q?6RV+apa10JjxgwE2xaH9eWAXl2GuTJ4LnBlllyKWKLiG8Nh7CMV45yunZf?=
 =?iso-8859-1?Q?NZDolGpjNaOMC09/ZL8jdQQflYieMj/CVRpIXjo8/frzfixwD3a389s1nM?=
 =?iso-8859-1?Q?kI3lRWvmCqozTxRR9Goa+uYACr8jt+WFuUz47II5pK00+ZQS5GKVnblxQR?=
 =?iso-8859-1?Q?QMP5yvU/zl6aOvTiLZLwu3sTpf3BG5YkUDFixIHlZgp12FROpcp5wy7AUd?=
 =?iso-8859-1?Q?UV0CWrFHltZv8fR3oc+Zb98tKev8xVt8uRk2K+Zd97pBAKEv4UZi0TJw?=
 =?iso-8859-1?Q?=3D=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: 134cfd9c-25a0-458e-6732-08dde4db763b
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Aug 2025 20:02:18.8827
 (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: Zg6WLSrPO987y5QdkzBK3aoWEsVrucTGUcCyUIdABmgU86mQdf+H8bvd/u19delk+WKEo1hyU7R4dLyqKLNp5kc9y/m6WphXW1XZDnyqB0w=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR03MB10696


Hi Leonid,


Leonid Komarianskyi <Leonid_Komarianskyi@epam.com> writes:

> Introduced two new helper functions for vGIC: vgic_is_valid_line and
> vgic_is_spi. The functions are similar to the newly introduced
> gic_is_valid_line and gic_is_spi, but they verify whether a vIRQ
> is available for a specific domain, while GIC-specific functions
> validate INTIDs for the real GIC hardware. For example, the GIC may
> support all 992 SPI lines, but the domain may use only some part of them
> (e.g., 640), depending on the highest IRQ number defined in the domain
> configuration. Therefore, for vGIC-related code and checks, the
> appropriate functions should be used. Also, updated the appropriate
> checks to use these new helper functions.
>
> The purpose of introducing new helper functions for vGIC is essentially
> the same as for GIC: to avoid potential confusion with GIC-related
> checks and to consolidate similar code into separate functions, which
> can be more easily extended by additional conditions, e.g., when
> implementing extended SPI interrupts.
>
> Only the validation change in vgic_inject_irq may affect existing
> functionality, as it currently checks whether the vIRQ is less than or
> equal to vgic_num_irqs. Since IRQ indexes start from 0 (where 32 is the
> first SPI), the check should behave consistently with similar logic in
> other places and should check if the vIRQ number is less than
> vgic_num_irqs. The remaining changes, which replace open-coded checks
> with the use of these new helper functions, do not introduce any
> functional changes, as the helper functions follow the current vIRQ
> index verification logic.
>
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
> ---
> Changes in V2:
> - introduced this patch
>
> Changes in V3:
> - renamed vgic_is_valid_irq to vgic_is_valid_line and vgic_is_shared_irq
>   to vgic_is_spi
> - added vgic_is_valid_line implementation for new-vgic, because
>   vgic_is_valid_line is called from generic code. It is necessary to fix
>   the build for new-vgic.
> - updated commit message
> ---
>  xen/arch/arm/gic.c              |  3 +--
>  xen/arch/arm/include/asm/vgic.h |  7 +++++++
>  xen/arch/arm/irq.c              |  4 ++--
>  xen/arch/arm/vgic.c             | 10 ++++++++--
>  xen/arch/arm/vgic/vgic.c        |  5 +++++
>  5 files changed, 23 insertions(+), 6 deletions(-)
>
> diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
> index 9220eef6ea..b88237ccda 100644
> --- a/xen/arch/arm/gic.c
> +++ b/xen/arch/arm/gic.c
> @@ -133,8 +133,7 @@ int gic_route_irq_to_guest(struct domain *d, unsigned=
 int virq,
> =20
>      ASSERT(spin_is_locked(&desc->lock));
>      /* Caller has already checked that the IRQ is an SPI */
> -    ASSERT(virq >=3D 32);
> -    ASSERT(virq < vgic_num_irqs(d));
> +    ASSERT(vgic_is_spi(d, virq));
>      ASSERT(!is_lpi(virq));
> =20
>      ret =3D vgic_connect_hw_irq(d, NULL, virq, desc, true);
> diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/v=
gic.h
> index 35c0c6a8b0..9f437e9838 100644
> --- a/xen/arch/arm/include/asm/vgic.h
> +++ b/xen/arch/arm/include/asm/vgic.h
> @@ -335,6 +335,13 @@ extern void vgic_check_inflight_irqs_pending(struct =
vcpu *v,
>  /* Default number of vGIC SPIs. 32 are substracted to cover local IRQs. =
*/
>  #define VGIC_DEF_NR_SPIS (min(gic_number_lines(), VGIC_MAX_IRQS) - 32)
> =20
> +extern bool vgic_is_valid_line(struct domain *d, unsigned int virq);

Why you can't have inline implementation for vgic_is_valid_line() right her=
e?

> +
> +static inline bool vgic_is_spi(struct domain *d, unsigned int virq)
> +{
> +    return (virq >=3D NR_LOCAL_IRQS && vgic_is_valid_line(d, virq));

You don't need parentheses here.

> +}
> +
>  /*
>   * Allocate a guest VIRQ
>   *  - spi =3D=3D 0 =3D> allocate a PPI. It will be the same on every vCP=
U
> diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
> index 7dd5a2a453..b8eccfc924 100644
> --- a/xen/arch/arm/irq.c
> +++ b/xen/arch/arm/irq.c
> @@ -442,7 +442,7 @@ int route_irq_to_guest(struct domain *d, unsigned int=
 virq,
>      unsigned long flags;
>      int retval =3D 0;
> =20
> -    if ( virq >=3D vgic_num_irqs(d) )
> +    if ( !vgic_is_valid_line(d, virq) )
>      {
>          printk(XENLOG_G_ERR
>                 "the vIRQ number %u is too high for domain %u (max =3D %u=
)\n",
> @@ -560,7 +560,7 @@ int release_guest_irq(struct domain *d, unsigned int =
virq)
>      int ret;
> =20
>      /* Only SPIs are supported */
> -    if ( virq < NR_LOCAL_IRQS || virq >=3D vgic_num_irqs(d) )
> +    if ( !vgic_is_spi(d, virq) )
>          return -EINVAL;
> =20
>      desc =3D vgic_get_hw_irq_desc(d, NULL, virq);
> diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
> index c563ba93af..2bbf4d99aa 100644
> --- a/xen/arch/arm/vgic.c
> +++ b/xen/arch/arm/vgic.c
> @@ -24,6 +24,12 @@
>  #include <asm/gic.h>
>  #include <asm/vgic.h>
> =20
> +
> +bool vgic_is_valid_line(struct domain *d, unsigned int virq)

Implementation of this function here in for new vgic is basically the
same and depends only on vgic_num_irqs() which is macro defined in
vgic.h and used by both implementations.

> +{
> +    return virq < vgic_num_irqs(d);
> +}
> +
>  static inline struct vgic_irq_rank *vgic_get_rank(struct vcpu *v,
>                                                    unsigned int rank)
>  {
> @@ -582,7 +588,7 @@ void vgic_inject_irq(struct domain *d, struct vcpu *v=
, unsigned int virq,
>      if ( !v )
>      {
>          /* The IRQ needs to be an SPI if no vCPU is specified. */
> -        ASSERT(virq >=3D 32 && virq <=3D vgic_num_irqs(d));
> +        ASSERT(vgic_is_spi(d, virq));
> =20
>          v =3D vgic_get_target_vcpu(d->vcpu[0], virq);
>      };
> @@ -659,7 +665,7 @@ bool vgic_emulate(struct cpu_user_regs *regs, union h=
sr hsr)
> =20
>  bool vgic_reserve_virq(struct domain *d, unsigned int virq)
>  {
> -    if ( virq >=3D vgic_num_irqs(d) )
> +    if ( !vgic_is_valid_line(d, virq) )
>          return false;
> =20
>      return !test_and_set_bit(virq, d->arch.vgic.allocated_irqs);
> diff --git a/xen/arch/arm/vgic/vgic.c b/xen/arch/arm/vgic/vgic.c
> index 6cabd0496d..b2c0e1873a 100644
> --- a/xen/arch/arm/vgic/vgic.c
> +++ b/xen/arch/arm/vgic/vgic.c
> @@ -718,6 +718,11 @@ bool vgic_reserve_virq(struct domain *d, unsigned in=
t virq)
>      return !test_and_set_bit(virq, d->arch.vgic.allocated_irqs);
>  }
> =20
> +bool vgic_is_valid_line(struct domain *d, unsigned int virq)
> +{
> +    return virq < vgic_num_irqs(d);
> +}

> +
>  int vgic_allocate_virq(struct domain *d, bool spi)
>  {
>      int first, end;

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 20:16:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 20:16:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095072.1450214 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ur064-0007fV-RY; Tue, 26 Aug 2025 20:16:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095072.1450214; Tue, 26 Aug 2025 20:16: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 1ur064-0007fO-Oq; Tue, 26 Aug 2025 20:16:48 +0000
Received: by outflank-mailman (input) for mailman id 1095072;
 Tue, 26 Aug 2025 20:16:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=VNE8=3G=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1ur062-0007dQ-Ou
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 20:16:47 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 94412928-82b9-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 22:16:41 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by AS8PR03MB7521.eurprd03.prod.outlook.com
 (2603:10a6:20b:344::9) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.13; Tue, 26 Aug
 2025 20:16:39 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9052.019; Tue, 26 Aug 2025
 20:16: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>
X-Inumbo-ID: 94412928-82b9-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=CtgOOiCc8cPCMWvGEcslAuVznnII2zRf/c3O05int/4BNre0wlN9K9a8Pf0qxNVSiOzTTZfGlJFpWlDvKDrhMnuglqtq9fXe2GqX6QlCv3kjBSTEhdy/d/jHkbu5HNoWcKsCiDjFW53H6aFm0AeVyjN3ooxBdnBhOTXcIAvJEiD3aW2Z8ngIccB/a7+MDwx3qy2n4/7HR0tZnaiHcwa3DjDcM7DkuzxQHxdTVLZsDkUaToZL7983vvp+T1a7ohjJJaUwgthDTHY9JASGWIfaKWzMUguxSgiD5P3v1RLy1Smj68Vec7dmjzpsEP51cFpeR96swIHr7WWL/LVrdYAH8g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4ETeGl12XGv6FyPiROn1jEG1DqEW8h5hgkx+DXtLTZ0=;
 b=P/eMWOEbVTVLE40JOKooQ9rojH7GWcM6R+XOpYVLlkxHgJN3GBV0LN3ur3l7AzTQRn0j4G9OG40xrYC9Uemc8t3XDBLev99H0Yr6t21pYaQyB1z5lzYksF+pQgL+AAEU3BCGi6AFB8TIr+hxuuJSjkFB0HjC7armtvaSP4ckV3rjkOv/NjaKkxWYVSih72tahcWFusmN8F988NRbo+PsWso+Eq6moXE7Ct7uBU4Hc5IuzISMa2FdBLrUg9Eb3us3hVtOKcfczQCSiaBWhmKZ+f992L1a5GZg1KqT3v79yjNUc81h0gKZl9/jDnr7mxTA9+8tXgi8FLZHWninmCxuQg==
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=4ETeGl12XGv6FyPiROn1jEG1DqEW8h5hgkx+DXtLTZ0=;
 b=ZnKQ4Xw7NjwNYZ0L5vMA+2PeADbRcLZi6TEZTBX0h/gR0FW3GmeXPJ9Tjr8J7DnZMLyj6lbMUhyhZMHbkG61LVkDDnG43MXE/b2gdmbEheBsYd1/Z2JNhmjiV/XK9xq8MW/815fYftfCGrqFJUOqcU1lKSa+v57emzBYiAm8D5Uf7wdRyXaWOUKOMYgIJPLDOILaRw/QLKbr3Y8bCO5lTrFf2N+C7lGXo2zqkVjKdFj7c3hU3I4gj9dGwHFZegYNhCxD5v8jHWosflIliHnr/6mM8f0C9PdqWV+QV2IiwIapRyxHHHigUX/qZKsxuhy1qg1VHMeLNy4oEGd0JKwslA==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"olekstysh@gmail.com" <olekstysh@gmail.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v3 04/11] xen/arm/irq: add handling for IRQs in the eSPI
 range
Thread-Topic: [PATCH v3 04/11] xen/arm/irq: add handling for IRQs in the eSPI
 range
Thread-Index: AQHcFpJ/t39ssss6a0y8SPAQeD5PEA==
Date: Tue, 26 Aug 2025 20:16:39 +0000
Message-ID: <87zfbl4z4p.fsf@epam.com>
References: <cover.1756216942.git.leonid_komarianskyi@epam.com>
	<8b42416d779537d6a0ac4902cabc549253b9da9d.1756216943.git.leonid_komarianskyi@epam.com>
In-Reply-To:
 <8b42416d779537d6a0ac4902cabc549253b9da9d.1756216943.git.leonid_komarianskyi@epam.com>
	(Leonid Komarianskyi's message of "Tue, 26 Aug 2025 14:05:37 +0000")
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_|AS8PR03MB7521:EE_
x-ms-office365-filtering-correlation-id: 3a62177e-bb95-477b-af35-08dde4dd7741
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|376014|42112799006|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?sXNwt5+ZTFU/7DjWqBenJFATzM0y/3HNatlc70paWk5YmGGX1r4Vob4H5j?=
 =?iso-8859-1?Q?eWKEHNYMSfH1o3wvwyrGcXjue/hb3DmZWgObHmL3+obNfvy30LFNSWbygg?=
 =?iso-8859-1?Q?4L9xLfzHKXOCSBHiYCSHNqoppQs0qG/qWYdRB+4wkVgrP32nzlCjxnCESf?=
 =?iso-8859-1?Q?twtZZEALJBT7GlD4nupoQBDfd5zT7Lw2o5ANznqxmkIK9gUR5Yxzh70tNC?=
 =?iso-8859-1?Q?mEe5q0WrQI5w253GzvGNGmaOcPVOKsIx8F5VAO048QREdGAbfGlDy2B4TV?=
 =?iso-8859-1?Q?gXOPeWTo2cYpJxStpWIqyf5ogaDrrkaI5dMdcQIeWSxxbAhGTJ/xo/V2Tr?=
 =?iso-8859-1?Q?nXSeTWQEldY+4L6WFrhdPGVM+x+UJ6uToB6EVnGW5/tmsDe6CSZLX6NLJf?=
 =?iso-8859-1?Q?aMZ3/rAQoTdIs4aYys8shhcQlsONMRFaiq2WJfaq/sdz/DPtBByK/fDI/H?=
 =?iso-8859-1?Q?9Mr3ER7ZMXOwHzZj/uROQZExNQPcrdzxSK9nDlWcXoXyyVJeF3LWUqCXFF?=
 =?iso-8859-1?Q?KPo2xHvau8V+ctClO8JN2iZoBw3HETdN6kxu8vfh8KY1yOG2oKyCYeIV6U?=
 =?iso-8859-1?Q?fwpwRfVaXDpU4pBauR4FY30g0B0EpDjcoyf2e8VkVnkuHIQ1eo77JkTHts?=
 =?iso-8859-1?Q?HP8ZTkefKPOe0U79azp7DD/fwl/b1R8yib005HJh16htriq9ei/wrLqhnB?=
 =?iso-8859-1?Q?/5Wjl6rwn9NyaxbiS0G11CLxkhslCDCtywHL4LC+HEBOTgB5KwGvVul8s7?=
 =?iso-8859-1?Q?kItPqDHn7CCiG3F5nQ58+2jqosJWNxwV+O5ritx0RydDOwkkyr0obMY3Qu?=
 =?iso-8859-1?Q?LYzCBtTH0/MMc5XIfpKDRF6HlFLclw3U8b/RQmXrguaCyMZfpj3DutnVJq?=
 =?iso-8859-1?Q?LlKXrBPO57qvmZXwRS7kQUtOpKbnwAuL3zBIRmtfsqdO0vYjGoeeZd5K3G?=
 =?iso-8859-1?Q?2FsCIny1okwOPi0pB5UAtU+TJVxMjcD1OyEq4r6nFfwIaBfSNEHNZF44Qu?=
 =?iso-8859-1?Q?odcOrHvmdMN9jJq6A7Apnj5C27sFYfKD+L7F0ANJkexEzQQuHpvtw3bDwY?=
 =?iso-8859-1?Q?ApTD6JtmLY8kA9oe50nwRtAI0dK6WXZ60ZGTYzcnYBaP9fLf4LXXcmtHPh?=
 =?iso-8859-1?Q?oDe4aRF305GWk2nOCfgfxUIAzq988IKap3ffb3371iVCN62cw5YK8CsmAo?=
 =?iso-8859-1?Q?MMI5yBPJwSTxc/YAEF3zOCAvmR4e19XgOZRRfBqszOclcvtdWx/h2310wW?=
 =?iso-8859-1?Q?TLREmxqSrmT4Ntzr8czLZnNod46Jui7ECZ8KPnwKwZy6RBKKdLrFdG/8Me?=
 =?iso-8859-1?Q?b56c7KTG6dFsLIGda0nCPqIagHSV/kgcj0Uqux35NsXBg4+uJXVs6PkyJC?=
 =?iso-8859-1?Q?LtoE3JthpWy+yujPkKU785cfa6ZafEq2xnC5MvVF2teQBxmw4roIoKrCFW?=
 =?iso-8859-1?Q?V6zp2Q8vFYkNA4FJr6+/nzRD6FI1QmzCgA/uhyYDXZC0TNIFWF9Mpw42wZ?=
 =?iso-8859-1?Q?pLeRnKqyKEjDB8Wgj3ncoTX82ccPee/o3Y4tR8SPDRXw=3D=3D?=
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)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?NvMfmIKMAssxsgHAa5QELhAbQ/c8273uUCgJ7qWr1dBTfQgoLaPuE+MMzw?=
 =?iso-8859-1?Q?zXUKAA1Gd5J2rnXjSWk3iYfBnRxNP5nQitLegim1vmeS2UAiH45mMBJhnq?=
 =?iso-8859-1?Q?L1ahnuuaVC99rTXbGntrGdt+LZ5La/3Sy6lUxJgXSfuFO4Bb3U0NKeLdgZ?=
 =?iso-8859-1?Q?lFO4ScFBLDZmywJWNrzEnVUi7lvNQ8NbqMU3cvY9msdCR03030p8ukXMse?=
 =?iso-8859-1?Q?dJA+botjlTPJ9dX9D7JMtH7WWm9z955twnvetXuHTgnz39BYYXlIcsbKkA?=
 =?iso-8859-1?Q?CqDGM81wnlDngLQ0/jM3MmeJRBxl+R7rdoWhX9H3dJvwFTWxPyOnl9VVQH?=
 =?iso-8859-1?Q?rxMeWsEfozMe+HMW0cIpOIjV3wVZuSf+bavj4y6T0lU0P7Y/C7V3vXoW21?=
 =?iso-8859-1?Q?YwaPNzogojy4Z6AZa2L9Xg4R/9Z54uTcLxVQKjeqfpJ+zH+sYB/179TMOv?=
 =?iso-8859-1?Q?exyP7a5mtcHv/N5nRKwIfN/iKeysoHfXZQ4AeGgoCPOM0NvOmNvdfQ74W4?=
 =?iso-8859-1?Q?cp95Tkfkd9Z5Lw+fmeb7wwwZEGyRV8ojgnZNRbO9+4jGA/vAxTQ/LvVqNg?=
 =?iso-8859-1?Q?4yfSQtiepZhBSY06KScId3ejFbv7gt3dxMxV7jnZ+TBKWI7bIS++cjH5Zg?=
 =?iso-8859-1?Q?YHuhbtqL6g+lfqOaNhpPhc6QWtHPeQ+YqAJVpZEGdAc3W0+WhPYnAMw9Fs?=
 =?iso-8859-1?Q?MtX63j3Ul412J7Z2oir1ziZdqQnmi+kztKnwbG+/pcYfuPD6v65533bD8v?=
 =?iso-8859-1?Q?xvG7X4vKV+4yzXVcHxhotmzNiq1TZpQ2+hqM3ukVNxn0yTznZ3CE1noja5?=
 =?iso-8859-1?Q?DqGUPI1xLKAdk00qhQfAILeiYc3Or5tpPcJGh8JuTw27FNX2B91utKcdNN?=
 =?iso-8859-1?Q?ZsgoTD20uM8efsguW5GY1917kjo07S3s6IYL11jzquxyw6ArWFbaxPjDw2?=
 =?iso-8859-1?Q?zNUU7VVqZhkd6Lg7MnhtZ+gVgLJ3Dr+mYKTHjJc1Hfkjpom+ZZn2iVIyYQ?=
 =?iso-8859-1?Q?vUgWLGA6yYbFYR+n6YPO2l0rog3pQfS+cGVzpidrN6GRG0IVWCcZgH85Vr?=
 =?iso-8859-1?Q?Y3c/ikUOub23vq0rlT1P5nAuPRkbPCb+mYxBkweCWRBkmYCBzYffo9/ez3?=
 =?iso-8859-1?Q?nDHMSimYm8s/Y381QDJrWLi9bCR0/USxyqlKwHvWCXIbb21Lh1lz+Rg1TE?=
 =?iso-8859-1?Q?wnGjE1wjf2q4evbCY98D+2h/aTVQZx29NnEOqfxGScqW7UY11h/evZctoo?=
 =?iso-8859-1?Q?bMwB9hyjGy4PCCjTjzEnS38jYQ4Cl7qTGv1PkCpAJnrwb22Hs7xXRSuVG0?=
 =?iso-8859-1?Q?8L7VXWb3YGc3rDWOYiwxGsoyj3JOlWuCYiw7ZGT/nDm3U2BpO0KFeETz50?=
 =?iso-8859-1?Q?bB7pdfMsnCtiDR1JF7GIsZ5pbESiZ6jZFcTP6K+BEaFrTdL4BuYDPfM4Id?=
 =?iso-8859-1?Q?XPhPMU/jRob6PAXOHSlFTzt7UIU/w22/jTCWOMcGQoxSHimc+Wv140D96O?=
 =?iso-8859-1?Q?6V4o/V+YNPr+9osMsq6zvQ2Uwth7bVijQglygWl7jyTeDdifvjgncYfyMp?=
 =?iso-8859-1?Q?MT3q7fpw9yCcTH9UR71V8RbOe43dbVpy8rGt9mnTD+ycU3HouMR5cd5YSs?=
 =?iso-8859-1?Q?n6VRp5pmxhCIZ8r9TFi7+zgMLwLYJiyDDpKhqiH+uymoqVuHDOO1Xzmg?=
 =?iso-8859-1?Q?=3D=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: 3a62177e-bb95-477b-af35-08dde4dd7741
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Aug 2025 20:16:39.6080
 (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: 9pa3SGRQE/L5hTDU2wbHWd1PUjyn2bwv32YFLcw1o1hXSfyY1KBBhP8AH0ImVQaNRpLyDADu9op/QFlwlkidLcZgd5Iwf1Hep8UhwedXSR4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7521


Hi Leonid,

Leonid Komarianskyi <Leonid_Komarianskyi@epam.com> writes:

> Currently, Xen does not support eSPI interrupts, leading
> to a data abort when such interrupts are defined in the DTS.
>
> This patch introduces a separate array to initialize up to
> 1024 interrupt descriptors in the eSPI range and adds the
> necessary defines and helper function. These changes lay the
> groundwork for future implementation of full eSPI interrupt
> support. As this GICv3.1 feature is not required by all vendors,
> all changes are guarded by ifdefs, depending on the corresponding
> Kconfig option.
>
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>

Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

>
> ---
> Changes in V2:
> - use (ESPI_MAX_INTID + 1) instead of (ESPI_BASE_INTID + NR_IRQS)
> - remove unnecessary comment for nr_irqs initialization
>
> Changes in V3:
> - introduced a new define NR_ESPI_IRQS to avoid confusion, like in the
>   case of using NR_IRQS for espi_desc array
> - implemented helper functions espi_to_desc and init_espi_data to make
>   it possible to add stubs with the same name, and as a result, reduce
>   the number of #ifdefs
> - change CONFIG_GICV3_ESPI default value to n
> ---
>  xen/arch/arm/Kconfig           |  9 ++++++
>  xen/arch/arm/include/asm/irq.h | 26 +++++++++++++++++
>  xen/arch/arm/irq.c             | 52 +++++++++++++++++++++++++++++++++-
>  3 files changed, 86 insertions(+), 1 deletion(-)
>
> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
> index 17df147b25..5813e5b267 100644
> --- a/xen/arch/arm/Kconfig
> +++ b/xen/arch/arm/Kconfig
> @@ -135,6 +135,15 @@ config GICV3
>  	  Driver for the ARM Generic Interrupt Controller v3.
>  	  If unsure, use the default setting.
> =20
> +config GICV3_ESPI
> +	bool "Extended SPI range support"
> +	depends on GICV3 && !NEW_VGIC
> +	default n
> +	help
> +	  Allow Xen and domains to use interrupt numbers from the extended SPI
> +	  range, from 4096 to 5119. This feature is introduced in GICv3.1
> +	  architecture.
> +
>  config HAS_ITS
>          bool "GICv3 ITS MSI controller support (UNSUPPORTED)" if UNSUPPO=
RTED
>          depends on GICV3 && !NEW_VGIC && !ARM_32
> diff --git a/xen/arch/arm/include/asm/irq.h b/xen/arch/arm/include/asm/ir=
q.h
> index 5bc6475eb4..221dbf23a2 100644
> --- a/xen/arch/arm/include/asm/irq.h
> +++ b/xen/arch/arm/include/asm/irq.h
> @@ -32,6 +32,15 @@ struct arch_irq_desc {
>  #define SPI_MAX_INTID   1019
>  #define LPI_OFFSET      8192
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +#define ESPI_BASE_INTID 4096
> +#define ESPI_MAX_INTID  5119
> +#define NR_ESPI_IRQS    1024
> +
> +#define ESPI_INTID2IDX(intid) ((intid) - ESPI_BASE_INTID)
> +#define ESPI_IDX2INTID(idx)   ((idx) + ESPI_BASE_INTID)
> +#endif
> +
>  /* LPIs are always numbered starting at 8192, so 0 is a good invalid cas=
e. */
>  #define INVALID_LPI     0
> =20
> @@ -39,7 +48,15 @@ struct arch_irq_desc {
>  #define INVALID_IRQ     1023
> =20
>  extern const unsigned int nr_irqs;
> +#ifdef CONFIG_GICV3_ESPI
> +/*
> + * This will also cover the eSPI range, as some critical devices
> + * for booting Xen (e.g., serial) may use this type of interrupts.
> + */
> +#define nr_static_irqs (ESPI_MAX_INTID + 1)
> +#else
>  #define nr_static_irqs NR_IRQS
> +#endif
> =20
>  struct irq_desc;
>  struct irqaction;
> @@ -55,6 +72,15 @@ static inline bool is_lpi(unsigned int irq)
>      return irq >=3D LPI_OFFSET;
>  }
> =20
> +static inline bool is_espi(unsigned int irq)
> +{
> +#ifdef CONFIG_GICV3_ESPI
> +    return (irq >=3D ESPI_BASE_INTID && irq <=3D ESPI_MAX_INTID);
> +#else
> +    return false;
> +#endif
> +}
> +
>  #define domain_pirq_to_irq(d, pirq) (pirq)
> =20
>  bool is_assignable_irq(unsigned int irq);
> diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
> index b8eccfc924..adb5e49ea3 100644
> --- a/xen/arch/arm/irq.c
> +++ b/xen/arch/arm/irq.c
> @@ -19,7 +19,11 @@
>  #include <asm/gic.h>
>  #include <asm/vgic.h>
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +const unsigned int nr_irqs =3D ESPI_MAX_INTID + 1;
> +#else
>  const unsigned int nr_irqs =3D NR_IRQS;
> +#endif
> =20
>  static unsigned int local_irqs_type[NR_LOCAL_IRQS];
>  static DEFINE_SPINLOCK(local_irqs_type_lock);
> @@ -46,6 +50,49 @@ void irq_end_none(struct irq_desc *irq)
>  }
> =20
>  static irq_desc_t irq_desc[NR_IRQS - NR_LOCAL_IRQS];
> +#ifdef CONFIG_GICV3_ESPI
> +static irq_desc_t espi_desc[NR_ESPI_IRQS];
> +
> +static struct irq_desc *espi_to_desc(unsigned int irq)
> +{
> +    return &espi_desc[ESPI_INTID2IDX(irq)];
> +}
> +
> +static int __init init_espi_data(void)
> +{
> +    int irq;
> +
> +    for ( irq =3D ESPI_BASE_INTID; irq <=3D ESPI_MAX_INTID; irq++ )
> +    {
> +        struct irq_desc *desc =3D irq_to_desc(irq);
> +        int rc =3D init_one_irq_desc(desc);
> +
> +        if ( rc )
> +            return rc;
> +
> +        desc->irq =3D irq;
> +        desc->action  =3D NULL;
> +    }
> +
> +    return 0;
> +}
> +#else
> +/*
> + * This function is stub and will not be called if CONFIG_GICV3_ESPI=3Dn=
,
> + * because in this case, is_espi will always return false.
> + */
> +static struct irq_desc *espi_to_desc(unsigned int irq)
> +{
> +    ASSERT_UNREACHABLE();
> +    return NULL;
> +}
> +
> +static int __init init_espi_data(void)
> +{
> +    return 0;
> +}
> +#endif
> +
>  static DEFINE_PER_CPU(irq_desc_t[NR_LOCAL_IRQS], local_irq_desc);
> =20
>  struct irq_desc *__irq_to_desc(unsigned int irq)
> @@ -53,6 +100,9 @@ struct irq_desc *__irq_to_desc(unsigned int irq)
>      if ( irq < NR_LOCAL_IRQS )
>          return &this_cpu(local_irq_desc)[irq];
> =20
> +    if ( is_espi(irq) )
> +        return espi_to_desc(irq);
> +
>      return &irq_desc[irq-NR_LOCAL_IRQS];
>  }
> =20
> @@ -79,7 +129,7 @@ static int __init init_irq_data(void)
>          desc->action  =3D NULL;
>      }
> =20
> -    return 0;
> +    return init_espi_data();
>  }
> =20
>  static int init_local_irq_data(unsigned int cpu)

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 20:32:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 20:32:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095101.1450224 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ur0LD-0002Aa-6r; Tue, 26 Aug 2025 20:32:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095101.1450224; Tue, 26 Aug 2025 20: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 1ur0LD-0002AT-3k; Tue, 26 Aug 2025 20:32:27 +0000
Received: by outflank-mailman (input) for mailman id 1095101;
 Tue, 26 Aug 2025 20:32:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=dtCc=3G=m5p.com=ehem@srs-se1.protection.inumbo.net>)
 id 1ur0LC-0002AI-M5
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 20:32:26 +0000
Received: from mailhost.m5p.com (mailhost.m5p.com [74.104.188.4])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c49d5207-82bb-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 22:32:23 +0200 (CEST)
Received: from m5p.com (mailhost.m5p.com [IPv6:2001:470:1f07:15ff:0:0:0:f7])
 by mailhost.m5p.com (8.18.1/8.17.1) with ESMTPS id 57QKVpur086407
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Tue, 26 Aug 2025 16:31:56 -0400 (EDT) (envelope-from ehem@m5p.com)
Received: (from ehem@localhost)
 by m5p.com (8.18.1/8.15.2/Submit) id 57QKVokP086406;
 Tue, 26 Aug 2025 13:31:50 -0700 (PDT) (envelope-from ehem)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c49d5207-82bb-11f0-a32c-13f23c93f187
Date: Tue, 26 Aug 2025 13:31:50 -0700
From: Elliott Mitchell <ehem+xen@m5p.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Demi Marie Obenour <demiobenour@gmail.com>, xen-users@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>,
        Paul Leiber <paul@onlineschubla.de>
Subject: Re: Consider changing CONFIG_ACPI default on ARM?
Message-ID: <aK4Ztm8QE3O6Ifcc@mattapan.m5p.com>
References: <CAO_48GG1Tg0d3ATnNAYNr0cg7Ty_zsnzT29=dpkk99DxyTWcmg@mail.gmail.com>
 <fceb5df8-d628-479d-acb3-d1d26409fbac@onlineschubla.de>
 <aJLae1Nl0pyOZgyh@mattapan.m5p.com>
 <1b96f2f3-55a2-4b33-84b1-a7c18d38d10c@suse.com>
 <6e9b5265-7a3b-4fd5-b14e-0e60a8b49833@gmail.com>
 <a3092ae1-d836-4403-8fb5-30593fcd2fb8@suse.com>
 <aKjOaT-P74Yh4-bi@mattapan.m5p.com>
 <5b85b5da-dfa3-465a-9708-62fc55fe48bb@suse.com>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="LfyIUR3M96B+0imR"
Content-Disposition: inline
In-Reply-To: <5b85b5da-dfa3-465a-9708-62fc55fe48bb@suse.com>
X-Spam-Status: No, score=0.4 required=10.0 tests=KHOP_HELO_FCRDNS autolearn=no
	autolearn_force=no version=4.0.1
X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on mattapan.m5p.com


--LfyIUR3M96B+0imR
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Mon, Aug 25, 2025 at 10:07:18AM +0200, Jan Beulich wrote:
> On 22.08.2025 22:09, Elliott Mitchell wrote:
> > On Fri, Aug 15, 2025 at 10:14:42AM +0200, Jan Beulich wrote:
> >> On 14.08.2025 23:27, Demi Marie Obenour wrote:
> >>> On 8/14/25 02:55, Jan Beulich wrote:
> >>>>
> >>>> Parties interested in changing the support status of any component are the
> >>>> primary candidates to actually carry out the necessary work.
> >>>
> >>> What is that work?
> >>
> >> To determine what exactly needs doing is part of the exercise. I, for one, am
> >> unaware of a concrete written down set of things which need doing.
> > 
> > Since you're not pointing to anything definite, could it be everything
> > has been resolved?
> 
> Possible. Yet even then the state of things needs fully writing down, perhaps
> in a commit message for the patch changing the support status. That's likely
> still a time consuming job.

Issue is much of this is better done by the people doing those projects.
Most of what I've done is checking a real hardware/software platform and
confirmed functionality.  Presently it boots, but the framebuffer doesn't
work.  VMs appear to work fine though.

How does the attached patch look for enabling ACPI?


-- 
(\___(\___(\______          --=> 8-) EHM <=--          ______/)___/)___/)
 \BS (    |         ehem+sigmsg@m5p.com  PGP 87145445         |    )   /
  \_CS\   |  _____  -O #include <stddisclaimer.h> O-   _____  |   /  _/
8A19\___\_|_/58D2 7E3D DDF4 7BA6 <-PGP-> 41D1 B375 37D0 8714\_|_/___/5445



--LfyIUR3M96B+0imR
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="0001-xen-arm-ACPI-Change-default-configuration.patch"

>From 492ea48f537934e7b54de66c5018c349c0123c9a Mon Sep 17 00:00:00 2001
Message-Id: <492ea48f537934e7b54de66c5018c349c0123c9a.1756239431.git.ehem+xen@m5p.com>
From: Elliott Mitchell <ehem+xen@m5p.com>
Date: Wed, 22 Jul 2020 10:43:57 -0700
Subject: [PATCH] xen/arm: ACPI: Change default configuration

Xen/ARM64 support for ACPI has been mostly implemented.  The remaining
issue is handling the IORT table for proper IOMMU support.  This means
systems booting with ACPI will not be protected from misbehaving or
misprogrammed hardware.  Pass-through of hardware will be unsafe.

Systems without an IOMMU are already unsafe so there is no additional
warning.  For such systems defaulting ACPI enabled may allow easier
setup, so change the default.

Presently device-trees are honored before ACPI tables are.  This seems
the best default balance right now.

Signed-off-by: Elliott Mitchell <ehem+xen@m5p.com>
---
 xen/arch/arm/Kconfig                  |  7 ++++++-
 xen/drivers/passthrough/arm/smmu-v3.c | 25 +++++++++++++++++++++++++
 2 files changed, 31 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index 5355534f3d..a420889eb9 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -100,13 +100,18 @@ endchoice
 source "arch/Kconfig"
 
 config ACPI
-	bool "ACPI (Advanced Configuration and Power Interface) Support (UNSUPPORTED)" if UNSUPPORTED
+	bool "ACPI (Advanced Configuration and Power Interface) Support (UNSUPPORTED)"
 	depends on ARM_64 && ARM_EFI
+	default y
 	help
 
 	  Advanced Configuration and Power Interface (ACPI) support for Xen is
 	  an alternative to device tree on ARM64. This requires UEFI.
 
+	  Note this is presently EXPERIMENTAL.  If a given device has both
+	  device-tree and ACPI support, it is presently (September 2025)
+	  recommended to boot using the device-tree.
+
 config ARM_EFI
 	bool "UEFI boot service support"
 	depends on ARM_64 && !MPU
diff --git a/xen/drivers/passthrough/arm/smmu-v3.c b/xen/drivers/passthrough/arm/smmu-v3.c
index 5e9e3e048e..580da2e210 100644
--- a/xen/drivers/passthrough/arm/smmu-v3.c
+++ b/xen/drivers/passthrough/arm/smmu-v3.c
@@ -82,6 +82,7 @@
 #include <xen/linux-compat.h>
 #include <xen/list.h>
 #include <xen/mm.h>
+#include <xen/param.h>
 #include <xen/rbtree.h>
 #include <xen/sched.h>
 #include <xen/sizes.h>
@@ -2364,6 +2365,9 @@ static int arm_smmu_device_hw_probe(struct arm_smmu_device *smmu)
 	return 0;
 }
 
+static bool allow_ignore_iort = false;
+boolean_param("allow_ignore_iort", allow_ignore_iort);
+
 #ifdef CONFIG_ACPI
 static void acpi_smmu_get_options(u32 model, struct arm_smmu_device *smmu)
 {
@@ -2386,6 +2390,23 @@ static int arm_smmu_device_acpi_probe(struct platform_device *pdev,
 	struct device *dev = smmu->dev;
 	struct acpi_iort_node *node;
 
+	if (!allow_ignore_iort) {
+		printk(XENLOG_ERR
+"A SMMUv3 is present, but only ACPI support is present in firmware.  At this\n"
+"time Xen's ACPI support is incomplete.  In particular Xen is unable to make\n"
+"use of IORT tables and is thus unable to make use of IOMMU functionality.\n"
+"Booting in this configuration disables protection against malicious or\n"
+"malfunctioning hardware.  This also compromises pass-through of hardware.\n"
+"\n"
+"If you accept the risks of booting without IOMMU support, you can add\n"
+"\"allow_ignore_iort=true\" to Xen's command-line.  You are also welcome to\n"
+"sponsor implementing support for IORT tables.\n");
+
+		panic("SMMUv3 is present, but IORT support is incomplete\n");
+	}
+
+	printk(XENLOG_ERR "using incomplete IORT due to command-line param\n");
+
 	node = *(struct acpi_iort_node **)dev_get_platdata(dev);
 
 	/* Retrieve SMMUv3 specific data */
@@ -2402,6 +2423,10 @@ static int arm_smmu_device_acpi_probe(struct platform_device *pdev,
 static inline int arm_smmu_device_acpi_probe(struct platform_device *pdev,
 					     struct arm_smmu_device *smmu)
 {
+	if (allow_ignore_iort)
+		printk(XENLOG_INFO "allow_ignore_iort has been set, but ACPI "
+			"support is absent\n");
+
 	return -ENODEV;
 }
 #endif
-- 
2.39.5


--LfyIUR3M96B+0imR--


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 21:09:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 21:09:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095130.1450254 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ur0ul-0006ix-BV; Tue, 26 Aug 2025 21:09:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095130.1450254; Tue, 26 Aug 2025 21:09: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 1ur0ul-0006iY-8d; Tue, 26 Aug 2025 21:09:11 +0000
Received: by outflank-mailman (input) for mailman id 1095130;
 Tue, 26 Aug 2025 21:09:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=etY1=3G=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1ur0uk-0006HZ-0i
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 21:09:10 +0000
Received: from NAM02-DM3-obe.outbound.protection.outlook.com
 (mail-dm3nam02on2062b.outbound.protection.outlook.com
 [2a01:111:f403:2405::62b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e73480df-82c0-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 23:09:08 +0200 (CEST)
Received: from MW4PR03CA0268.namprd03.prod.outlook.com (2603:10b6:303:b4::33)
 by IA0PR12MB8863.namprd12.prod.outlook.com (2603:10b6:208:488::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.13; Tue, 26 Aug
 2025 21:09:02 +0000
Received: from MWH0EPF000989EA.namprd02.prod.outlook.com
 (2603:10b6:303:b4:cafe::6c) by MW4PR03CA0268.outlook.office365.com
 (2603:10b6:303:b4::33) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.20 via Frontend Transport; Tue,
 26 Aug 2025 21:09:02 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 MWH0EPF000989EA.mail.protection.outlook.com (10.167.241.137) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Tue, 26 Aug 2025 21:09:01 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 26 Aug
 2025 16:09:00 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.10; Tue, 26 Aug
 2025 14:09:00 -0700
Received: from fedora.mshome.net (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Tue, 26 Aug 2025 16:08:59 -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>
X-Inumbo-ID: e73480df-82c0-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Plf6Jy8QQxDrgVSnHUYKyyiTd0jotDC3rleISMSWL8+P4w/0LRtQAHBZtu1IcFGXT81V1SN8Om8HStKqjW0WvaswRYrO7OPWRt00xiD23hUoyBnXCxHHuj4LzqFECbvwXhq7OZFGvMHEHaPjT7iANClaLRI3pYMOG6w1++V1XY5bKQGAHN7mmqJoAoi81IsIgXIfDSxbSZhgMO37TFw5Ph2rH8lK9487ZhF/g7gvGrZaDOW4lYZhbG7d7c50Fh3SRlpQWg/Ez2YkSx6GicfwyGxlknk3w31urTczJDvvcpwAF79qNovLWab98Cph4Y45r2L6oFD5vxq7TJ0Sl7vznQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=hb8jV7y+eU28UgOgIGo2GBFOvkJDnI7mqTnXWpd85l4=;
 b=gLoRlQUUh+db+AfD5GbIAs7Amy3QHM9nIlboHyBfMToYKmGofjZQG04fjbsoOX4l97pnNM115QgnLT9xLIAby/zsd0stvq0L3bKTZ8FowEhI2DLjBTj/pvI2i+1yMkUp43mCElTDX+IBdK6EsHvfnt3QvC+rJyHzvj0w8tBgwQc4aivPA57BvQ/giLmHmpGQHmyLLkfDX1qTywd18eTVsTNsgaDqBP9SHZA0C5I6l9Xt3DSc73YMbyVGkzhWgjjAvUYlbatP0DefM1r9otxbL6wEPU/PNZtt7e9CuU37kSmzy0qMWF8y7p8gFGiXhdp65Z7H7IEt7fhj/PUisdNGcA==
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=hb8jV7y+eU28UgOgIGo2GBFOvkJDnI7mqTnXWpd85l4=;
 b=lL9RSeuxzyshbCrAt3+6DtSy6r0HcJMLbZPxjwbyfE+rN/KFyVdJBIS5M3eCPb/3wZMIcmNHrUarkdK7YmN9B8X4cyqwe20Td2ZU63/PrDUzvTXR84SfyLhapcF921uGbf/TdInxBJrolFDShc3GVKiCj+Ecj6nBYRgSC75zZns=
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=SATLEXMB04.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Jason Andryuk <jason.andryuk@amd.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>
Subject: [PATCH v3 1/8] tools/init-dom0less: Make handles global
Date: Tue, 26 Aug 2025 17:08:40 -0400
Message-ID: <20250826210847.126015-2-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250826210847.126015-1-jason.andryuk@amd.com>
References: <20250826210847.126015-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MWH0EPF000989EA:EE_|IA0PR12MB8863:EE_
X-MS-Office365-Filtering-Correlation-Id: 51b61009-9641-4a8b-a72e-08dde4e4c819
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|36860700013|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?hL7Fht0hLaEufo1NfQexMRzkIY4HseO+Bm511mNDBL1pHhsN8ihnBcGMIjPa?=
 =?us-ascii?Q?aXhiqdM1ESRNNjSqx1pokgmGoVO3vjzQdwaGuk0bN7oZc5/VEqi4Sq7C0mMy?=
 =?us-ascii?Q?4E9hfCrfdggML/SX/dzcAMfmRHh5NTwpZUsP66VJNjsbMsP9GnIY5L20EAZ0?=
 =?us-ascii?Q?gjzZgzxCKHgBS7+UMTDOApJLkbG48Efxy9mNjhZTeeRLD+D9unCyXWCDoQIH?=
 =?us-ascii?Q?sq8ybBbI8ZChEEoLs3fKChR8o1JZVVyMU8bv4/65iXJf/JV0I2+g+VTT3IVc?=
 =?us-ascii?Q?2IVg2vAJ15rMCiY2UBZEwMqQH7syigGQt+EDjy9y8sHj+S9APvT3Z2lQGC8g?=
 =?us-ascii?Q?eyewxcV+UaaLbCf72TGLIT7dNypAuRQg0RT6yLoJeuxSzIfDxAv3H2kwj91d?=
 =?us-ascii?Q?NIyWGBe9qGipzWAJjqsdWuNzqodozPeXr6UN+/kuQfeZEE1qpL4iQ9Kfi4cG?=
 =?us-ascii?Q?+icRKJOEpyx6bUTjS0OafblETZbaDmAxQImMAllTETB+ANj4gR014jS55dKR?=
 =?us-ascii?Q?5fntoHRUM5PDVo+1tUfkED68iAm3nixuPjMVK2YSyEPQuyHrI7O9x3U+kHFw?=
 =?us-ascii?Q?LcJBVRFb9tl+93ogTZC2nucyipke8AMALFSrug/y7W5mI22mo/sGTpoi6wUV?=
 =?us-ascii?Q?4q3WRgdCxjqMFONPfDhZWrmXZsRSUwAcvyQpFowOcKASv8bKCI5MNdUagSdX?=
 =?us-ascii?Q?S9gEPs2I9FqkuxC/h3MkibYeJWjLklVP6a3UAvt173uXf0UZGsP9Hf0uwaus?=
 =?us-ascii?Q?S27bav375jFvr8s3I1EbYwJoQiPyKphh/FhPnGuSZBC53CEDdWIl8OFfCy0c?=
 =?us-ascii?Q?jxwAbBLEiWLdmf37X8wppgaCKof0soQ4BiAfwB05ueqji0tkr3yMImvyDgf9?=
 =?us-ascii?Q?94o6FD1CFloRv3i2+TCjjX+KvsAUdIhMsFGNohStkBrOCRSS4Rsk9nUKuluT?=
 =?us-ascii?Q?rZjPMaimf9Xck964oCdXvecoIEG1MDtQ4UOzsbyWlYMAiw/2ThDj3vlAiJH0?=
 =?us-ascii?Q?FSrMhyvRHiosN/+4S6gqRMEXwhD+Sh/8vzpvLwaXG1dGJjjRueRMeyX6HI6o?=
 =?us-ascii?Q?HO+ko82J2iBVcP7kw1fiFO5aXEhVD19OxpY+n8eYpOLQ2kPdc1UMt6iE4yeC?=
 =?us-ascii?Q?4xagbKprBoYBls0FXS5yvvG/OhOv7JTpw3DL1/UvZcEpwdPBkSX1FVy8vfMC?=
 =?us-ascii?Q?D13HYjfxun6HU6DMFUKcuJHYNY3nwEWEgkZdgkL4RXQiI8QrcmZos0W9i5fO?=
 =?us-ascii?Q?JNaex7AsXTxiiVk9QxOiYQQlmcbkYO8M8qqb9Bi5Yv3IdK1u7n0ZRP5L08MT?=
 =?us-ascii?Q?RdOcncSUySb/SF7wmGKhaKdM5slihSGOUIlilVjf/ZoediAVsiWx2vgTCLTz?=
 =?us-ascii?Q?83wheVx2Q8zznTU8uP5OzWPb83BJQIW9B6/R4pZ3WQY4tHn+m6fucLcKsI4P?=
 =?us-ascii?Q?E8UHa/BuskjCdSNSwu7QiGSIolPG9BEKCRBjPnTxwDPouvF+jH467EDAGkvo?=
 =?us-ascii?Q?pSaSJ4nyu2LyLkYRvCusenJeUfkhTkr7dBjt?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(36860700013)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Aug 2025 21:09:01.5946
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 51b61009-9641-4a8b-a72e-08dde4e4c819
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000989EA.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB8863

init-dom0less passes the assorted xen library handles from main
downward.  This is a little excessive in places with 4 handles passed
into configure_xenstore().

Replace the handle passing with file-scoped variables.

The xenstore helpers are not changed.  This keeps their implementation
common with the libxenstore functions that take a handle, transation,
and then additional arguments.

Suggested-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
v3:
New
---
 tools/helpers/init-dom0less.c | 37 +++++++++++++++--------------------
 1 file changed, 16 insertions(+), 21 deletions(-)

diff --git a/tools/helpers/init-dom0less.c b/tools/helpers/init-dom0less.c
index a182dce563..0b0be08449 100644
--- a/tools/helpers/init-dom0less.c
+++ b/tools/helpers/init-dom0less.c
@@ -18,8 +18,12 @@
 #define XENSTORE_PFN_OFFSET 1
 #define STR_MAX_LENGTH 128
 
-static int alloc_xs_page(struct xc_interface_core *xch,
-                         libxl_dominfo *info,
+static libxl_ctx *ctx;
+static struct xs_handle *xsh;
+static struct xc_interface_core *xch;
+static xenforeignmemory_handle *xfh;
+
+static int alloc_xs_page(libxl_dominfo *info,
                          uint64_t *xenstore_pfn)
 {
     int rc;
@@ -43,8 +47,7 @@ static int alloc_xs_page(struct xc_interface_core *xch,
     return 0;
 }
 
-static int get_xs_page(struct xc_interface_core *xch, libxl_dominfo *info,
-                       uint64_t *xenstore_pfn)
+static int get_xs_page(libxl_dominfo *info, uint64_t *xenstore_pfn)
 {
     int rc;
 
@@ -111,8 +114,7 @@ static bool do_xs_write_vm(struct xs_handle *xsh, xs_transaction_t t,
  * The list was retrieved by running xenstore-ls on a corresponding
  * domain started by xl/libxl.
  */
-static int create_xenstore(struct xs_handle *xsh,
-                           libxl_dominfo *info, libxl_uuid uuid,
+static int create_xenstore(libxl_dominfo *info, libxl_uuid uuid,
                            uint64_t xenstore_pfn,
                            evtchn_port_t xenstore_port)
 {
@@ -235,10 +237,7 @@ err:
     return rc;
 }
 
-static int init_domain(struct xs_handle *xsh,
-                       struct xc_interface_core *xch,
-                       xenforeignmemory_handle *xfh,
-                       libxl_dominfo *info)
+static int init_domain(libxl_dominfo *info)
 {
     libxl_uuid uuid;
     uint64_t xenstore_evtchn, xenstore_pfn;
@@ -258,13 +257,13 @@ static int init_domain(struct xs_handle *xsh,
         return 0;
 
     /* Get xenstore page */
-    if (get_xs_page(xch, info, &xenstore_pfn) != 0)
+    if (get_xs_page(info, &xenstore_pfn) != 0)
         return 1;
 
     if (xenstore_pfn == ~0ULL) {
         struct xenstore_domain_interface *intf;
 
-        rc = alloc_xs_page(xch, info, &xenstore_pfn);
+        rc = alloc_xs_page(info, &xenstore_pfn);
         if (rc != 0) {
             printf("Error on getting xenstore page\n");
             return 1;
@@ -299,7 +298,7 @@ static int init_domain(struct xs_handle *xsh,
     if (rc)
         err(1, "gen_stub_json_config");
 
-    rc = create_xenstore(xsh, info, uuid, xenstore_pfn, xenstore_evtchn);
+    rc = create_xenstore(info, uuid, xenstore_pfn, xenstore_evtchn);
     if (rc)
         err(1, "writing to xenstore");
 
@@ -310,7 +309,7 @@ static int init_domain(struct xs_handle *xsh,
 }
 
 /* Check if domain has been configured in XS */
-static bool domain_exists(struct xs_handle *xsh, int domid)
+static bool domain_exists(int domid)
 {
     return xs_is_domain_introduced(xsh, domid);
 }
@@ -318,11 +317,7 @@ static bool domain_exists(struct xs_handle *xsh, int domid)
 int main(int argc, char **argv)
 {
     libxl_dominfo *info = NULL;
-    libxl_ctx *ctx;
     int nb_vm = 0, rc = 0, i;
-    struct xs_handle *xsh = NULL;
-    struct xc_interface_core *xch = NULL;
-    xenforeignmemory_handle *xfh = NULL;
 
     /* TODO reuse libxl xsh connection */
     xsh = xs_open(0);
@@ -355,9 +350,9 @@ int main(int argc, char **argv)
             continue;
 
         printf("Checking domid: %u\n", domid);
-        if (!domain_exists(xsh, domid)) {
-            rc = init_domain(xsh, xch, xfh, &info[i]);
-            if (rc < 0) {
+        if (!domain_exists(domid)) {
+            rc = init_domain(&info[i]);
+            if (rc) {
                 fprintf(stderr, "init_domain failed.\n");
                 goto out;
             }
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 26 21:09:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 21:09:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095128.1450234 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ur0uj-0006Hr-Vs; Tue, 26 Aug 2025 21:09:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095128.1450234; Tue, 26 Aug 2025 21:09: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 1ur0uj-0006Hk-So; Tue, 26 Aug 2025 21:09:09 +0000
Received: by outflank-mailman (input) for mailman id 1095128;
 Tue, 26 Aug 2025 21:09:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=etY1=3G=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1ur0ui-0006HZ-BO
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 21:09:08 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on2062d.outbound.protection.outlook.com
 [2a01:111:f403:2415::62d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e5eae505-82c0-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 23:09:06 +0200 (CEST)
Received: from BY3PR05CA0022.namprd05.prod.outlook.com (2603:10b6:a03:254::27)
 by CH2PR12MB4102.namprd12.prod.outlook.com (2603:10b6:610:a9::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Tue, 26 Aug
 2025 21:09:00 +0000
Received: from SJ1PEPF00001CE2.namprd05.prod.outlook.com
 (2603:10b6:a03:254:cafe::cb) by BY3PR05CA0022.outlook.office365.com
 (2603:10b6:a03:254::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.12 via Frontend Transport; Tue,
 26 Aug 2025 21:09:00 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SJ1PEPF00001CE2.mail.protection.outlook.com (10.167.242.10) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Tue, 26 Aug 2025 21:08:59 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) 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, 26 Aug
 2025 16:08:58 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.10; Tue, 26 Aug
 2025 14:08:58 -0700
Received: from fedora.mshome.net (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Tue, 26 Aug 2025 16:08:57 -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>
X-Inumbo-ID: e5eae505-82c0-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nJkcfBWy7cncnOs3wBm9Oi3YghuyZzgATxNufdUpFsYZ6bt0qHenFdYpd1UBZ98COtHJeby7mrrodBvFowTavaMj9PEXIfDRq7ugyO9pkpK/PiYTq2PAkkBaSaswD1GjaFG3CEkEwEGmsyB7Njdc87Wgn3I66E4R6QUZj5Af+v4O9h1goagUewxZ0D3KZNs8OYgnD7mTI2Lc6ef293FkNWEP12uMIxq80wMi0mRTUfhOYuiYS5vCVQponi0iVk0uT/npbpPsu40EeMJVnjs9KG811OoOSvy0VipbOSdNTQcf9WN81REgdYkEOHwIge50Pcxf79dbgJNPK/Fzs+GCSQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=WLDVZsW2vOynKmFhkjPwuLl8ue1HLr8SARqLFSFlnsc=;
 b=nWu8GYrgEinjBPV3ZnsQjQHx1BpEyt5XZbouP8dqnmKMkFRsvrClvJ9SuAR9bazOPMQBqmO44/svGxUGfJ+Iv9sfyPDJ5v+kJxRu8uoqCFEvTLYuJtOlEuURiCnJiJFdQeD/Mg0HKaoUcA372xX0X6RiI5K1dnEEo6vtLrj+6jIcZWUMnZvZ3C80lEQOrtU0eM3WiNECmEkQtnN6nCnOVYvhDs4m1U1HG7GpgNZgOEwAmlLwuH8ThFXL5faGIKJdG03rT4ZaltO5EJ9nixVBEJTxBzaCl1/mznCTzrFD49HTWdgDgTh45mFhzFR7cluwckgE/JyYSo4da/7yr2J67g==
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=WLDVZsW2vOynKmFhkjPwuLl8ue1HLr8SARqLFSFlnsc=;
 b=PUxkkOMW78Q3mUjR5nv5Y2UnoKu/gPVUTZRYW21owDSMJDgSXNYNtPggincBwdE1xWJBEyY2mRfHxGdXnbFN7Uzn147w9ZqbOZ5aO85VlBRfFG/fEW0i2RK6MvgWoyIT6JCGu1LS3sDEO0vu0kmaJ4e2bOaBy8MLSangD6JEgAA=
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=SATLEXMB03.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Jason Andryuk <jason.andryuk@amd.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v3 0/8] init-dom0less and dom0less xenstore evtchn
Date: Tue, 26 Aug 2025 17:08:39 -0400
Message-ID: <20250826210847.126015-1-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.50.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF00001CE2:EE_|CH2PR12MB4102:EE_
X-MS-Office365-Filtering-Correlation-Id: 8855f2ab-0583-4a2d-fdbb-08dde4e4c6e9
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|82310400026|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?PmuwEXJ0DLXHkNmsuzDjOk5fQycTDV6ySf3FQ7qLHNf7WMGIMaFl5/LQgJjp?=
 =?us-ascii?Q?lnxii4nDuIrOUQCXEbPRNPCSuQEt7ufsVMJTiSeTs1ag90AX/52cnGSCB2Lh?=
 =?us-ascii?Q?T5zgTT2/yM3ZDQujbKXgDa5P+sM8Lypgvgwbgo3r3lIhZVkaOYvtOkJSR1ow?=
 =?us-ascii?Q?rOSIb5dIe6svs07hdWRpTa7d6e6qjpLDbnTD8PpdVQ+JxTRPfTCI0bxTfMkr?=
 =?us-ascii?Q?2973Q8zUPQl0CuxeRXBG4WakxTBFAcnNQqKgqf77rg40qnbP8gD+fFqs7lrv?=
 =?us-ascii?Q?sy4iaSCTcN//mmHZdfqqm7WRx2GF4QgdbHkeFkSsGc7ENUQjV5iYPn2cKSeO?=
 =?us-ascii?Q?wg2lLSKMrYXjRSplbYhr4eJVtjMdikQ7E23I1k9CB4D4Bv4KFixu1uZsknaZ?=
 =?us-ascii?Q?b15CsiK7lYmCumsSike1sNRwWLl6rwfaEn74kuvZT3rzV0n5xWqzpwTkZCaD?=
 =?us-ascii?Q?Nh6SJkT1EfBsLml9RZXfJaaQmRMgOY2LWdzaCPrxIzI8U60Ox6HuN1SJJWpH?=
 =?us-ascii?Q?I7qT5jtZU0w0JY8rX/DiznSoB3MBImJjGZcbWEdFLBIso7B6frDTHtPitW2/?=
 =?us-ascii?Q?KEhZ0BHuvYDtcneNeF3mfVQj6oip6W733TveW8JmlmmYph4rTp9KbhQuTnKE?=
 =?us-ascii?Q?B9qrcwmA72nU0uHF9yNgDbzpoPSR99nVV7KYfx2IFkBJWQ/4OBmf6Xe9bbh9?=
 =?us-ascii?Q?sJ9Qfm3DpnKfDvmFCr8Jc1mhUmQb0ODDbjM5L41e+c1IMAw+DluIq+V5TIxw?=
 =?us-ascii?Q?/ozIHbm5l/CEOnozz1hm+QWgA/vjPL8PKQ2rP4ZYDG4GGoeTU5VWF5phrKYd?=
 =?us-ascii?Q?LYewCYlc+cpfs070CrrIua7P99mmDiMdvC7F24KY1NmIVX2z2fB0kDbdK7jX?=
 =?us-ascii?Q?nyh2CTEEBRqkWYpyEWennfgK+kQ9HNGkcJ2rHF/Z0ROl5R4HxnS6Mp7anCkd?=
 =?us-ascii?Q?IFN4RB0o6SKrL5wcMv4vi9/8p7COZoZAiG59fLnaREB1esgA8bzX+b1w43dK?=
 =?us-ascii?Q?eg0+bmr8t5Fqn73PF1QKTqUI/Tk8OYbEJs3yATr2bqQUNUQOZYpPQfNQerx7?=
 =?us-ascii?Q?3TMv5HM+MkWfBZKTG4sEQDcwjVcz6X/sUhVaBcsUv1h+WB0djRIK59nb6jAU?=
 =?us-ascii?Q?TVYEjq3WSsuRr6qfaZSP7RQnnVh0iMk7yDS57plPYH4R8WcWkFtmjOLstT8q?=
 =?us-ascii?Q?DpjYnF2e8nPbtiJInm6Ajtx/GMUEpTzQSj0yOYik71b6ifMJBSmN5ud3/0Ez?=
 =?us-ascii?Q?ofPtdAzAglk8FvtrHdTU562y6sYjw+6l63zw9+PVeWl4FNBRek1FgdLJBL2m?=
 =?us-ascii?Q?3xVdeQQWc7ABYO3L4RGk/AVD8rtAp5gYiiB7uvY8DAyIrensLmQ7RQy54rOx?=
 =?us-ascii?Q?vBOCQYmnzBOGxZIjLn/j7ruay+BZjbCcskfC7hCfz8QRsy4p4dw8vFGS/8nx?=
 =?us-ascii?Q?wtL/wXiyeZgzzNXAoPxvku/vUDyxQWxbiiYimo4t5gqu2G4NRaZ3Beexau0p?=
 =?us-ascii?Q?ohbHWQ+4MgEzm5THizrUOc4qwQc5okltR+9X?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Aug 2025 21:08:59.6033
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8855f2ab-0583-4a2d-fdbb-08dde4e4c6e9
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF00001CE2.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4102

These are the init-dom0less and dom0less xenstore evtchn changes split
from https://lore.kernel.org/xen-devel/20250716211504.291104-1-jason.andryuk@amd.com/

The xenstored changes have already gone in.

init-dom0less needs to be changed to handle auto-introduced domains,
which this series does.  Once that is done, dom0less code can populate
the event channel in the xenstore page (which triggers the
auto-population).  The previous posting's ordering of "xen/dom0less:
store xenstore event channel in page" before init-dom0less changes would
have been broken.

Jason Andryuk (8):
  tools/init-dom0less: Make handles global
  tools/init-dom0less: Factor out xenstore setup
  tools/init-dom0less: Only introduce un-introduced domains
  tools/init-dom0less: Switch domain_exists to check xenstore name
  tools/init-dom0less: Use introduced to determine no-enhanced
  tools/init-dom0less: Remove use of err()
  tools/init-dom0less: Continue on error
  xen/dom0less: store xenstore event channel in page

 tools/helpers/init-dom0less.c           | 127 ++++++++++++++++--------
 xen/common/device-tree/dom0less-build.c |   7 ++
 2 files changed, 95 insertions(+), 39 deletions(-)

-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 26 21:09:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 21:09:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095129.1450239 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ur0uk-0006KP-7r; Tue, 26 Aug 2025 21:09:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095129.1450239; Tue, 26 Aug 2025 21:09: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 1ur0uk-0006JU-2c; Tue, 26 Aug 2025 21:09:10 +0000
Received: by outflank-mailman (input) for mailman id 1095129;
 Tue, 26 Aug 2025 21:09:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=etY1=3G=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1ur0uj-0006HZ-0i
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 21:09:09 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20604.outbound.protection.outlook.com
 [2a01:111:f403:2009::604])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e743e1f7-82c0-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 23:09:08 +0200 (CEST)
Received: from BY3PR05CA0007.namprd05.prod.outlook.com (2603:10b6:a03:254::12)
 by CY3PR12MB9554.namprd12.prod.outlook.com (2603:10b6:930:109::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Tue, 26 Aug
 2025 21:09:05 +0000
Received: from SJ1PEPF00001CE2.namprd05.prod.outlook.com
 (2603:10b6:a03:254:cafe::68) by BY3PR05CA0007.outlook.office365.com
 (2603:10b6:a03:254::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.12 via Frontend Transport; Tue,
 26 Aug 2025 21:09:05 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SJ1PEPF00001CE2.mail.protection.outlook.com (10.167.242.10) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Tue, 26 Aug 2025 21:09:05 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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, 26 Aug
 2025 16:09:04 -0500
Received: from fedora.mshome.net (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Tue, 26 Aug 2025 16:09: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>
X-Inumbo-ID: e743e1f7-82c0-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=cNMaNmKhwa2ssg4KDbuKe0xaCNuCDW1jtZPx5qh/iONpalsAkCRgwui9qG36waMy28JrGOgsHyanAy8TI0CP1b3kWGUXDMQYh4Zu5uxFZ+TwvN3yboI7wFgoQF4cajh7R8prLL/WMpx7Yb6FO4gxrTgZLpWcpYGW1GZq/a7qIsqF55P/piqnWIoSdfDH6VBokelaHE22gFevS1coQw3mnOV6wGuKjDpk0ZD6OrEgjT61QFOmbpyvJJRgH+nAcZ1jx8y0mztDIMHptTnWWorkZvRh1MPBUw9BSIK1j6k6aX5n3/eXryZPkwenRNcV9UcOJLnCs5vP9EUy87kxfnVEVA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=O1nbcQMEjUBeFeC495BtfRnJCx+JGQKE9Ow3xrFdZyA=;
 b=wXoPzQ2JzGgDMrkHE0GL4WUQTxXTVmg1rRrG89iak1XbfQInHr2QYMImRW64Oo+YB3mI91FbKjNXejDp3npgYxcp2KFZOn60SiccgAX9G8k0dyxOeU2uPq1yyF037+Ba/s5RQhCNX565IMr7GxEAhmgl5bNozGRDC9P6ETzM+CDafxifJ5YaVwWC47NhFOMoRv3FLFnjD+h6t+6cCKV2zjKKPnv6wUt5kBCt3pQUr1UrRbGCLqFQ4cRuiUpGl2LcGAXV+6Ceud+9ZH21Ylo54XO4dNOHhyhBa2xwBVyvoB/S2D9BzXkvsaVmUzJLtiLCEBq1pWvBNxgJfPerNstRqg==
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=O1nbcQMEjUBeFeC495BtfRnJCx+JGQKE9Ow3xrFdZyA=;
 b=yBHDim6UbAwtKXv3akA7YM4AqJB0bbRGR+sYVn6qWLkO3pIiyObhU1sRNGdLvGo7O0FHYre6BHz1nGSp8zVSACKX4IL8vGc2sqs0N8q0sd/mjwMG7uVf+hzzjDfoHOqrd804fvDS7ByAlfce0c605cOj2YUu4HCRO4WmxO+5YhQ=
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=SATLEXMB03.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Jason Andryuk <jason.andryuk@amd.com>, Anthony PERARD
	<anthony.perard@vates.tech>
Subject: [PATCH v3 3/8] tools/init-dom0less: Only introduce un-introduced domains
Date: Tue, 26 Aug 2025 17:08:42 -0400
Message-ID: <20250826210847.126015-4-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250826210847.126015-1-jason.andryuk@amd.com>
References: <20250826210847.126015-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB03.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF00001CE2:EE_|CY3PR12MB9554:EE_
X-MS-Office365-Filtering-Correlation-Id: 7d03469f-37ed-4b66-5a12-08dde4e4ca81
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|376014|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?z/RCuerTPypvrsqVfQbz1lcJlku0auAyoz2wIcIoPdUZs++hVlybkBGAuORW?=
 =?us-ascii?Q?jJf91bqNLZwlTy/u/CL055SusKcO1deI38S1kI57Vfle4mXT7lgCpN57We2s?=
 =?us-ascii?Q?Gk9XnyYwmgfbmmOlsL1Hi7Df3OoCmEyy7yNQ68DYc+D9T/YeUqXMU9HFR/T5?=
 =?us-ascii?Q?KYFA4FsbCWArFr8dHlmhmtW1ccUbNbTZTDM54mVQm+snaDZhU2ccynQpOyXR?=
 =?us-ascii?Q?kiApE25FpEbd6Tv/mHMHUD2QGO0V4ST9NbNldNPBdyYzL0wcxuQlbgGVT9PD?=
 =?us-ascii?Q?LDxfeQnQ42J7tImYsh3XSS9wJWGIvBvpDoIzXpf0uHtr1z9JzvPp7y3W2QMQ?=
 =?us-ascii?Q?HVLPKMciqspnvHpV8PtRSVCFn4OPfmBLM/W7jmo8raWIBWfGTAebhEtKC4LQ?=
 =?us-ascii?Q?gZJxStbUbhi34EkYhMr/A72vfUmyQ+cwtriCM0vQlNHJr/Y2i7hpgi0H1F3Q?=
 =?us-ascii?Q?ZydmsXD7UNIFPg/PwWc2DIGyQpZd0SUjl2Sh45EPnFnryc7Rbx7A27HXInse?=
 =?us-ascii?Q?HHmZeiKLKIyoy6lDqiZp1syHTtV0ap4UtY2kKNfl5TzSU8HwU33FmXR1/KsJ?=
 =?us-ascii?Q?/RSbmbiyzvmmbCfx4QvzUef29JjQQ7eqDXaTob3EWX+PrmHdr42kIlBOqnjD?=
 =?us-ascii?Q?ynAIhBxo6uYEECfyMJgdZDPxi4pPWjXsYDsY1Pr6uZ+/lQ9VBJM5F4nc7a5i?=
 =?us-ascii?Q?BgGtcYUj9f8sbY1s2WmJdFXPy38Jou5RLMl6CEgaB7PULkgwOAz4/bRGYZav?=
 =?us-ascii?Q?+lpicGCuT06EVz88cCEhS29lXQVgw8FB5BA/Hz2zGkBr7nsXCifus3FxVWfC?=
 =?us-ascii?Q?RGpxR6yp41qRM9G0CVarjorD8gjx9z5v8tpBW9zAtHOKtUvWm7cIONBr9jnY?=
 =?us-ascii?Q?M3y1AkK3bEPBAOAwHI08qxlpAB2CQ2mItuXFxMd/VeA8uWMOgYg6vucvdhhj?=
 =?us-ascii?Q?XM66DhH/Z4byzojmiEfieuH5LYsT7wzegPIIqtp88/rmP5WJ/tAT5dqFhpOX?=
 =?us-ascii?Q?AfTSTSD5ld30kwUCphxHuf1UJTNm2w4LYPlMgngambGiL19L6icBoX1/bd15?=
 =?us-ascii?Q?ltGUCgyrWPvFkHWgmVdBBn4rXSHCWfXC7kO75nqWUo1sj3l1qoSl6S5X4lDn?=
 =?us-ascii?Q?w7H6/JQ7G8xvJzJU2jGenJI52lSF0uxiKcP87rnrj39UpHCvrjush1nq1TQO?=
 =?us-ascii?Q?RJK1u2wJWgme1vMEydp27EmKxptBXWMGvFqnu3bSxCH+p9Sau0UzADtkZf7b?=
 =?us-ascii?Q?/LRHBTxE+Gw0jKPbUsHwk9RSYUc7GDur0lTwIWkev8NuDVC7T9voG5wfPveO?=
 =?us-ascii?Q?DDybruWlujDwfgqCcimvqjEtWrfHgGcdawYLvH78AUyBAnHBxm5+0fiTJPot?=
 =?us-ascii?Q?JlHyCdBnhRIwcTavyM2UJz617lYamyAzLM5gbZv4edK/jkbG3ec9+6Fg5DNF?=
 =?us-ascii?Q?JZUZYA2dbycrY3C9K7zufy91DNWzwm8/8vKrTecmIZkOb/1H7NoXiTFd0z4C?=
 =?us-ascii?Q?aF/7afEozqommJhym51sn9diPItjeS+zW+s5?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Aug 2025 21:09:05.6275
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7d03469f-37ed-4b66-5a12-08dde4e4ca81
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF00001CE2.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY3PR12MB9554

In preparation for supporting already-introduced domain, only call
xs_introduce_domain() if a domain is not already introduced.  Their
xenstore entries will be written, but the xenstore introduction is
skipped.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
v3:
Reordered
---
 tools/helpers/init-dom0less.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/tools/helpers/init-dom0less.c b/tools/helpers/init-dom0less.c
index 8de8e44ad3..3906c4b61a 100644
--- a/tools/helpers/init-dom0less.c
+++ b/tools/helpers/init-dom0less.c
@@ -319,9 +319,13 @@ static int init_domain(libxl_dominfo *info)
     if (rc)
         err(1, "writing to xenstore");
 
-    rc = xs_introduce_domain(xsh, info->domid, xenstore_pfn, xenstore_evtchn);
-    if (!rc)
-        err(1, "xs_introduce_domain");
+    if (!xs_is_domain_introduced(xsh, info->domid)) {
+        rc = xs_introduce_domain(xsh, info->domid, xenstore_pfn,
+                                 xenstore_evtchn);
+        if (!rc)
+            err(1, "xs_introduce_domain");
+    }
+
     return 0;
 }
 
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 26 21:09:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 21:09:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095131.1450264 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ur0uo-0006zG-MZ; Tue, 26 Aug 2025 21:09:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095131.1450264; Tue, 26 Aug 2025 21:09: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 1ur0uo-0006z9-Jf; Tue, 26 Aug 2025 21:09:14 +0000
Received: by outflank-mailman (input) for mailman id 1095131;
 Tue, 26 Aug 2025 21:09:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=etY1=3G=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1ur0um-0006HZ-R9
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 21:09:12 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on2061a.outbound.protection.outlook.com
 [2a01:111:f403:2009::61a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e9ac253b-82c0-11f0-a32c-13f23c93f187;
 Tue, 26 Aug 2025 23:09:12 +0200 (CEST)
Received: from BY3PR05CA0010.namprd05.prod.outlook.com (2603:10b6:a03:254::15)
 by DM4PR12MB5817.namprd12.prod.outlook.com (2603:10b6:8:60::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Tue, 26 Aug
 2025 21:09:08 +0000
Received: from SJ1PEPF00001CE2.namprd05.prod.outlook.com
 (2603:10b6:a03:254:cafe::2d) by BY3PR05CA0010.outlook.office365.com
 (2603:10b6:a03:254::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.11 via Frontend Transport; Tue,
 26 Aug 2025 21:09:08 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SJ1PEPF00001CE2.mail.protection.outlook.com (10.167.242.10) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Tue, 26 Aug 2025 21:09:08 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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, 26 Aug
 2025 16:09:08 -0500
Received: from fedora.mshome.net (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Tue, 26 Aug 2025 16:09: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>
X-Inumbo-ID: e9ac253b-82c0-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=TmXnxjrb5hHVt3v1GJGOt/pBc0m86jlBPRuqMoD3I7ePzwNTwj2rwGr0SZJy2bDM5PQhpwSF5ifmhiJ7niZhNfo8uVQd5ddNmD40ZsVU3p8lAysNJPoSATFZBaHwW9Z4Ag4S1RUOmK/FpYa0/POc2QxsHvkYdkuu4WqlSZlEEBBkTvr4hIJHvi22ahUMItau7MKP4UbDmA7xYljRpTvB7xyziesa6RLTzI4KJB4MmSMjcGsV9EQjQAwkPAEwXI7a9EofPWzl8g21jXXSt+Z50+rqDyz0OMDpNq9jdkMYffM1Kv6Xms0BEd13yNQCFuc+JnlUVBWTr6d5CZ/a9KGlkA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=vmz6tXiI9igMexXwJMlZ7JfZtLtNIFmz/j0H60IpHMU=;
 b=KXRR2LQM6N3otoCvC/1Imtn3oyq3tHsDLIO0XeU1if+9pq0X31n0QK8AVUgz7rDCcQldxXL9lhOJn+VL2bJpEFcsD6K+SOMr+SrO2broHlalls4prK624uh/SORIguv0yE9lBNjperbaUoqOg+DtLE2hDY/jGx93cSi4lqGtT6c6N359CLPfIr3N9+Pl+d09XWquS+NlU9J6+ikYXJkX297mY1I2nR9lr7wPjFOTkre1X2UIXcZXSn0TO2iw33CLYG1TBnhdWhwUrAJhLnNQV4/bzC4pjm/A4MvEliA/7K5o3cs76gOXU5Z7O/GlIwGFOELDzL0Zt2xuGjzTMVgyIg==
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=vmz6tXiI9igMexXwJMlZ7JfZtLtNIFmz/j0H60IpHMU=;
 b=Beba4b0C5Bi0C8s7eY8y6UWU5yPSkeXyWb7yF4brzab8JCL1dtE6E922am+yXFuxkV6eGWCqvle7zZQRgaarny3SbeSJJMe3kTkJzj4nYXfrkoLktGQ3StEsyjVsoMzKgQRyHUKxqGcu5mB40/Q5IN8TUA9Iv7Y11W+99COIpf0=
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=SATLEXMB03.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Jason Andryuk <jason.andryuk@amd.com>, Anthony PERARD
	<anthony.perard@vates.tech>
Subject: [PATCH v3 6/8] tools/init-dom0less: Remove use of err()
Date: Tue, 26 Aug 2025 17:08:45 -0400
Message-ID: <20250826210847.126015-7-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250826210847.126015-1-jason.andryuk@amd.com>
References: <20250826210847.126015-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB03.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF00001CE2:EE_|DM4PR12MB5817:EE_
X-MS-Office365-Filtering-Correlation-Id: c6c03ee5-2f4a-42e7-9d0c-08dde4e4cc3e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|36860700013|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?ESVW05TuJxS+tLR1qKzNP1eMkfiPwld6YVqN067Sp9PnsgIug1qUU70FwVet?=
 =?us-ascii?Q?vF8Mg5iRbOTrNbB9YQRJf2mlo+c/9leg7SZb0/6rkYsm5gmD8rI1AZ6vHXhc?=
 =?us-ascii?Q?6/TP0na7HwtuC0sbuCVu6dQCbl6xrVGTj9BnvIAzakcJFr3PWvlh3G8vzsmi?=
 =?us-ascii?Q?BR9wZXbf8pWbNmGfhB8w4mTVOn9T2COWCjYs2soVLFDz03qX5RbP/7wvvyHB?=
 =?us-ascii?Q?x4TEPNV/LztFCdgE0piLaHpCf54xJL7mMHAkK3mH1ucPEkxRC//84YM2cmHp?=
 =?us-ascii?Q?hnq0FzVkU68IZzpPRPVzLZhM8Xc5q1Mz+jzHimfRoVEhpvxrzfsTHkkC/H28?=
 =?us-ascii?Q?XycbUJCo519IylNdjo0cxtwzcZz9uK0LRxQwOz4GNDCj/urEabIyLm5RhJTo?=
 =?us-ascii?Q?kIysxuzbWG5nD0U6mwkTIhEm5pzwPMsKwCbY3POXlKkphOR5ZH7xYMPNA9sx?=
 =?us-ascii?Q?ktYbF3HcwTfL0xa58G7t8nkQepNEde64rcEprpbn6DSullDOTtnRfQKJKb36?=
 =?us-ascii?Q?yRS+9LXy6GFD0z4E3n/+bYTOTBh77gJZ7Df0ALdrw0u/JoVa467zQJco5eXP?=
 =?us-ascii?Q?ShGHKPz39M0rodawwzwDPBTBEtlmf+aqgm9mYCvqi2Rw0Cr+QrgUeiFhUtaa?=
 =?us-ascii?Q?hpw7V4PzcjiG/E0ZFvYt6kaeI0Vvf0faOr3oOWJjCtZRzRU1EU4/JN/STAmi?=
 =?us-ascii?Q?f0kZuzC/EhELKceX3FgO/Dq/iWJCoLFvra/yGGtYJwztRkAC6G8IXh/6vshh?=
 =?us-ascii?Q?Axl1sU1o8gQb4R43goUGGW0PNzItJ8xxhRXAVvpclyKPHEuIXHnrVvoMvdNq?=
 =?us-ascii?Q?snQKOl5nf9zVPdWzwnLnmotmyoYmLntsmRcHpTxKSH/49m5oSjkwstjvNVfq?=
 =?us-ascii?Q?075pXfK+9x7Fb7uMuOw4P+85AEWdmpmC/jkicjWJKO/PBMGNEihELqz/eyz3?=
 =?us-ascii?Q?LRd6r0McyJ5NbDclhA8zfojJDFVZLdH6ODxjkC9mH6IvhO/qSvqogQccIj16?=
 =?us-ascii?Q?1rYf1c2LH9WcDoCRycMBNmSS3VBX4qC9ewpx7wArfqvzu6Vhb3BaUF9I5sQi?=
 =?us-ascii?Q?hSZXLf2SMsQuHQIygr0z02QuAv6FVBvYtSpP5ZuHYm6q0R/bH3SgkXFxCEIr?=
 =?us-ascii?Q?FwV71feUiJR9V+OD87H2OlnG4jJRqUdR4RhWFOr3oJwQv/7sMqbFZ8Fuy9OQ?=
 =?us-ascii?Q?zMTEQewQaqrY61lSvWG851yq8JY/fOFE5yXboTI8jHcWEtULmOWsFYDP57+j?=
 =?us-ascii?Q?LgaJvauYYffHbqy6uUH5ZIs46pTogoqD+uTxSWlu+zsVanZY1j0sMZwJmzjD?=
 =?us-ascii?Q?Stht/8U80NtEuSRfQYUpOn4cwrvAtjHwcctJ9ixEyEi84ua4UY+7rHz0IytD?=
 =?us-ascii?Q?X367j/HtPg1bJkFteQdj19Bo4HVRrIIvxRdGUZauCy0CC/31/nRxMzrmFO/K?=
 =?us-ascii?Q?OZFqYc7RRnsfLj4Yy4iAxv9u1bhZ9ecXns6pJWYzvTBJouecZLOpUq6QcNX9?=
 =?us-ascii?Q?3ywwgnWGtLBEBMHakeIgmwVkMisTD42aLeHh?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Aug 2025 21:09:08.5455
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c6c03ee5-2f4a-42e7-9d0c-08dde4e4cc3e
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF00001CE2.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5817

err() is fatal - print a message and exit.  We want init-dom0less to
continue on as much as possible, so replace with returning an error.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
v3:
New
---
 tools/helpers/init-dom0less.c | 24 ++++++++++++++++--------
 1 file changed, 16 insertions(+), 8 deletions(-)

diff --git a/tools/helpers/init-dom0less.c b/tools/helpers/init-dom0less.c
index a4de40aeac..d08b0b1362 100644
--- a/tools/helpers/init-dom0less.c
+++ b/tools/helpers/init-dom0less.c
@@ -300,8 +300,10 @@ static int configure_xenstore(libxl_dominfo *info,
 
         rc = xc_dom_gnttab_seed(xch, info->domid, true,
                                 (xen_pfn_t)-1, *xenstore_pfn, 0, 0);
-        if (rc)
-               err(1, "xc_dom_gnttab_seed");
+        if (rc) {
+            printf("xc_dom_gnttab_seed");
+            return 1;
+        }
     }
 
     return 0;
@@ -329,18 +331,24 @@ static int init_domain(libxl_dominfo *info)
     xc_domain_sethandle(xch, info->domid, libxl_uuid_bytearray(&uuid));
 
     rc = gen_stub_json_config(info->domid, &uuid);
-    if (rc)
-        err(1, "gen_stub_json_config");
+    if (rc) {
+        printf("gen_stub_json_config");
+        return 1;
+    }
 
     rc = create_xenstore(info, uuid, xenstore_pfn, xenstore_evtchn);
-    if (rc)
-        err(1, "writing to xenstore");
+    if (rc) {
+        printf("writing to xenstore");
+        return 1;
+    }
 
     if (!introduced) {
         rc = xs_introduce_domain(xsh, info->domid, xenstore_pfn,
                                  xenstore_evtchn);
-        if (!rc)
-            err(1, "xs_introduce_domain");
+        if (!rc) {
+            printf("xs_introduce_domain");
+            return 1;
+        }
     }
 
     return 0;
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 26 21:09:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 21:09:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095132.1450275 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ur0uq-0007F8-0O; Tue, 26 Aug 2025 21:09:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095132.1450275; Tue, 26 Aug 2025 21:09:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ur0up-0007Ex-Rl; Tue, 26 Aug 2025 21:09:15 +0000
Received: by outflank-mailman (input) for mailman id 1095132;
 Tue, 26 Aug 2025 21:09:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=etY1=3G=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1ur0uo-0006z4-Qg
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 21:09:14 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20621.outbound.protection.outlook.com
 [2a01:111:f403:2415::621])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e9e779fd-82c0-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 23:09:12 +0200 (CEST)
Received: from MW4PR03CA0244.namprd03.prod.outlook.com (2603:10b6:303:b4::9)
 by SA1PR12MB7272.namprd12.prod.outlook.com (2603:10b6:806:2b6::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Tue, 26 Aug
 2025 21:09:08 +0000
Received: from MWH0EPF000989EA.namprd02.prod.outlook.com
 (2603:10b6:303:b4:cafe::52) by MW4PR03CA0244.outlook.office365.com
 (2603:10b6:303:b4::9) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.13 via Frontend Transport; Tue,
 26 Aug 2025 21:09:08 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 MWH0EPF000989EA.mail.protection.outlook.com (10.167.241.137) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Tue, 26 Aug 2025 21:09:07 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 26 Aug
 2025 16:09:07 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.10; Tue, 26 Aug
 2025 14:09:06 -0700
Received: from fedora.mshome.net (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Tue, 26 Aug 2025 16:09:06 -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>
X-Inumbo-ID: e9e779fd-82c0-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Mtnb+36F+PKJCuv41WOE5CV/4oQCwPSayAGOZ8oI5Yh1OlQudsn0olfTU4QcjxXYS+cNlm58CUJ2b7HM1o9vCGceOb/AlDIQQKYHgerjfqA+dyEztwp56ood7wZq0qUaLvTa8VfuZ7yWWuMoPYp73Yi1Y6huZByLpCurvshBD0g4e8hzxEDXsym/67zoz5gJGHYiKsmhb3fSIPPpWZ0myPMDo0RtsCBEJ5oC1VEXFQX7U9Te+p1udnVmxn52dcdJ+j5vcvrczJgwkRYOfagvAizJeICStMwi1Wx4JDpC1keQqo1++6zRF+eG07ns6x4inO9gwfD5DWwAu+PJKicllQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=kx6d34oYfnXViK0Sv04HljBO4lYFdDa8TSdzHSfLUho=;
 b=Cb/LMQ0jEpvfn86xykziFoXXjU2d1AL95lv/uzrgXYo8/cj04bwPAgaFzjK76LEuw8byc6lFYDVvqWwD81QezrVAc74USoc6WNg7Zp9KCSZjyKOo0GAkFIJKvnB3VMCIRCBTQyntvzmbL10sn7S6D/yFPui6nvSHXH4dx1sZgNPQTMKuACkg8lq/v+La5Z07HkIXP8hP6awHaMCGlQ9/5aHqhB2dmx8oXrX3wLmB3sXriqf5oit1JukF/Rzwvxw0NsGMCjsl8mNiAk/zeACjnt9yW3zvdXvy9m+S06LfPm/BlRRjezZuHWDUoGCFVCHaR5dANuxIvktujmzzqtFoPA==
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=kx6d34oYfnXViK0Sv04HljBO4lYFdDa8TSdzHSfLUho=;
 b=CnxE2YWXq/dvxv0uXd0wRjXzhElL2Olbh7mECBQtoEne2E/StuUwuopfUijWe9ebh24n3dKiieokfEcQUaHwCfbFQhq74chNLaocnLaKU9Xsd2Xhw7S/SmZ1QrhmgtYJ6k0hhl48FMSoZxiW4o8viBqfVjeYXLgQpZeHnK5cadM=
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=SATLEXMB04.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Jason Andryuk <jason.andryuk@amd.com>, Anthony PERARD
	<anthony.perard@vates.tech>
Subject: [PATCH v3 5/8] tools/init-dom0less: Use introduced to determine no-enhanced
Date: Tue, 26 Aug 2025 17:08:44 -0400
Message-ID: <20250826210847.126015-6-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250826210847.126015-1-jason.andryuk@amd.com>
References: <20250826210847.126015-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MWH0EPF000989EA:EE_|SA1PR12MB7272:EE_
X-MS-Office365-Filtering-Correlation-Id: 2c153865-c21f-4867-01f1-08dde4e4cbea
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?DevOs+34sWBhz5ldjCTN7HZvZ+G1EeQE/xeAtdylv54kotTyIeNV1cOFAt8m?=
 =?us-ascii?Q?4lyTro8mkN1r4Df9v3v38gJuqlVeMkqjawUnlasE+AyiAk3aXpyGn8fEf4TL?=
 =?us-ascii?Q?AbkdB7XHOUDySWeR82ccmQ1AQGnmaQpNdbhlr9L3Y1rx2LzvT5UQj+Rj4bdP?=
 =?us-ascii?Q?VykLPM2359czOK1zz+ZaHJUMEA/tW1GnvTdpLdDEDbHcW3rC0ev1HoZGsCfp?=
 =?us-ascii?Q?Xk+XoEQs1zZNoOHlEYil/42CV1+0vIVln0DS7cw9JithWa8fwGwv9EhBo2qi?=
 =?us-ascii?Q?w+C0n2tmtbYQ+N4K2+oYN1HORfm/dfjj/X1fAmPDCsRTmz/TVhJb8hnsPzF3?=
 =?us-ascii?Q?RtlqvwDMtrA8MuJGTZ2lC3RNoAZyin2YAkjWtuBjmg7h5QzDJlFpCOvltE0v?=
 =?us-ascii?Q?FMNWHYWNQg3glhgVaksJH7nrKlpFlMc21p0arZ3iLMRfyZrHCiDiY/H6AcXX?=
 =?us-ascii?Q?4ub+KlX7iHWhfWTFlqwMq27pbmGW1R7/jnt8ihI23F01MwWOHoNOPAEgAv7y?=
 =?us-ascii?Q?wqPSMDHGuCpusP0migT3Wy2xBIlAAy+ZcZWPNWs0D0i3tUB26bsz1I/NsgMa?=
 =?us-ascii?Q?rqKJXtDqS33GtYowS7xOEw5xicbrBOPpp9lQY5HoHDYQw+ZbZIt90FJ5wkKW?=
 =?us-ascii?Q?d/nZqMZA71eq3riNUtl4p0C4lC0Oe8G5YyP3p4n1Pt7iRj/ifSS5tLXP457z?=
 =?us-ascii?Q?DfG/SECyL461ZwFn7GgCaT8Zq9XCMeXnrPU4agFyHQseY8vWPnL6sJqhedCe?=
 =?us-ascii?Q?I716Gx+st5rNBtKHMfQN6dUAUx+nUhR9ASlupzL4YCAJAHCG5Wkn6LNUCi+P?=
 =?us-ascii?Q?ma1DtQitI2SenY8499O3YNBSIrxlP8O8LQB5+h4HBsYZkQrXfefucSr+EOCQ?=
 =?us-ascii?Q?rz9bm9Kb7nKrarml6yuOw+yxIWNzWBBzHO15lDDyd5NTx5VtRLBYLMQGx88i?=
 =?us-ascii?Q?pZn53SGU0vkaXHRlx9NMQhdLY1wNkPQ7Y80MjgLKVZ+bLtrJ1hXYEyi+xt3k?=
 =?us-ascii?Q?ye/7PUgfAu/oAaUAbBhoTfxjB6g71Y6lrE2+Rg3T74lfCuCvd/9Am5N82c18?=
 =?us-ascii?Q?/4412iCYnhNkRQtQ7txcrtqLT/ed3t4yUHnp825KQ3qIHuTO0N8LjHITJ2R6?=
 =?us-ascii?Q?+kptYHq+zXV8hPY6UjpLswyCUBvsOvxfkagRGeeKFMqNS2D5+B0idwHRQsPu?=
 =?us-ascii?Q?FTKWMZrWWNw2KnRb0Xd9TQS8qOyqw1ILoiBrDy7dh+ddGomZlJNookkgQ12x?=
 =?us-ascii?Q?D8etVd5aV+qblQbtXBQaZZasJ7areUtR2+U5vFdDgOkKRCO0Ru83NXiBBw85?=
 =?us-ascii?Q?+lFLAoSDypOYFXI7BRp2KrPWLQS2xVbDRaPnjbbfUseCdL9Wq9DmZr4ad/ZU?=
 =?us-ascii?Q?+vSD5KqDoeCMdMCAW2meChkqiUsu6hTuB9uIn4D8tFYQtiJPZeg5ATtps7cY?=
 =?us-ascii?Q?aFDGTdBtoUUcsoirVcWmhGL9rKC3XVdynncznSjd9KKpRoKS7qdlvAR/0hs1?=
 =?us-ascii?Q?Qm9c7LeVey8ifLtMXwWpiDpxXogwtfLQZKzU?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(1800799024)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Aug 2025 21:09:07.9925
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2c153865-c21f-4867-01f1-08dde4e4cbea
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000989EA.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB7272

A hardware+xenstore domain will not be able to read HVM params, and
init-dom0less reads HVM_PARAM_STORE_EVTCHN to determine whether or not
a domain has xenstore.

xenstored had a similar issue, and it just tries to map a domain's
reserved grant, GNTTAB_RESERVED_XENSTORE, to see if it is accessible.
If successful, xenstored introduces the domain.  Use the existing
introduced state to determine if init-dom0less should try and read the
param.  If already introduced, initialization (and reading the
HVM_PARAM) is skipped.

This allows for running init-dom0less from a xenstored+hardware domain.
It relies on the local socket xenstore connections being considered
privileged.

oxenstored has not been updated, so the exist code remains for backwards
compatibility.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
v3:
New
---
 tools/helpers/init-dom0less.c | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/tools/helpers/init-dom0less.c b/tools/helpers/init-dom0less.c
index eb793c7aab..a4de40aeac 100644
--- a/tools/helpers/init-dom0less.c
+++ b/tools/helpers/init-dom0less.c
@@ -309,16 +309,20 @@ static int configure_xenstore(libxl_dominfo *info,
 
 static int init_domain(libxl_dominfo *info)
 {
-    uint64_t xenstore_evtchn, xenstore_pfn = 0;
+    uint64_t xenstore_evtchn = 0, xenstore_pfn = 0;
+    bool introduced;
     libxl_uuid uuid;
     int rc;
 
-    rc = configure_xenstore(info, &xenstore_evtchn, &xenstore_pfn);
-    if (rc)
-        return rc;
+    introduced = xs_is_domain_introduced(xsh, info->domid);
+    if (!introduced) {
+        rc = configure_xenstore(info, &xenstore_evtchn, &xenstore_pfn);
+        if (rc)
+            return rc;
 
-    if (xenstore_evtchn == 0) {
-        return 0;
+        if (xenstore_evtchn == 0) {
+            return 0;
+        }
     }
 
     libxl_uuid_generate(&uuid);
@@ -332,7 +336,7 @@ static int init_domain(libxl_dominfo *info)
     if (rc)
         err(1, "writing to xenstore");
 
-    if (!xs_is_domain_introduced(xsh, info->domid)) {
+    if (!introduced) {
         rc = xs_introduce_domain(xsh, info->domid, xenstore_pfn,
                                  xenstore_evtchn);
         if (!rc)
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 26 21:09:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 21:09:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095133.1450280 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ur0uq-0007JC-CR; Tue, 26 Aug 2025 21:09:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095133.1450280; Tue, 26 Aug 2025 21:09:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ur0uq-0007Iw-5z; Tue, 26 Aug 2025 21:09:16 +0000
Received: by outflank-mailman (input) for mailman id 1095133;
 Tue, 26 Aug 2025 21:09:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=etY1=3G=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1ur0up-0006z4-FF
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 21:09:15 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20622.outbound.protection.outlook.com
 [2a01:111:f403:2414::622])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ea50d56a-82c0-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 23:09:13 +0200 (CEST)
Received: from BY3PR05CA0006.namprd05.prod.outlook.com (2603:10b6:a03:254::11)
 by BL3PR12MB6593.namprd12.prod.outlook.com (2603:10b6:208:38c::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Tue, 26 Aug
 2025 21:09:04 +0000
Received: from SJ1PEPF00001CE2.namprd05.prod.outlook.com
 (2603:10b6:a03:254:cafe::8) by BY3PR05CA0006.outlook.office365.com
 (2603:10b6:a03:254::11) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.12 via Frontend Transport; Tue,
 26 Aug 2025 21:09:04 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SJ1PEPF00001CE2.mail.protection.outlook.com (10.167.242.10) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Tue, 26 Aug 2025 21:09:03 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) 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, 26 Aug
 2025 16:09:03 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.10; Tue, 26 Aug
 2025 14:09:03 -0700
Received: from fedora.mshome.net (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Tue, 26 Aug 2025 16:09:03 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ea50d56a-82c0-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=vkyTdFAn7KprzTPkuvHbOTpnEZhoznnBGyVwyAin0D8h8iQ6AiKrmNbdmbN/8kUDkGS5pgBTbYf+r/3paVfxjCRTG5ekbelHPsMrkOzhpM+6FPDw3C7NpoRJZbBhMyMojy10Pc1LhM86BAhW9XTvgBKHw0fn3RnWpIVMy0G79SxjYQzUmK98KCGr2u/jdAxyWJ3BvDTFGXBTj5YMkjv+xcx6CQe+c7Az59z9uM25gvVW7jwhJ7DEFJxPx21LpN4grduD5ayR8Q+1XUJhshUMAojFutgc7t6Lpdapudr8UeBdDbKl5OBMBCIxYRCGAIRsRn/p04zcK7doTOZh85moGw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Zh8RyeKz1ZM0/lFRJbJVe9Xi6LtsKXP+OxMCeZpnpeU=;
 b=Hwhf+/NaN+gyGEdIUowDyaAY0VF53uTpeB8IJzDLvGeSkz9NGQqUN93dUyNgY3xrbJgfcZ7C7CVihNF5Lh44Gf9mK+YOpiLGQTtB5lNiypruFWQYKlfaE7WqraaiC093FBsXnIslVFBFpnD2mf2WeIQ/SPjCwc6mfCx5efoZRE+uFmU0v2jKGpJBvGvft3ACCRAqp0RXQgBsrkx0ImWI4xH0aGBP21ELZRJuSCcvIyEoEa6MpPm8noy+id54CzPXJ1pn03qJip1E4t6qZ3iz6d7ShsfGmOVWx8e1qqvhfddiPPbOcdGJGTrG70hOHJNnLNDHh5xnSHdfBHPj1Mo9SQ==
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=Zh8RyeKz1ZM0/lFRJbJVe9Xi6LtsKXP+OxMCeZpnpeU=;
 b=ET+7LMP/cNLqDLZ3Mn+MxvUPcGpjtojs/BcR/NwWVESMYKjox2I0K6rbhjH80P6WllcloKwXw40CwWYv5AicMaRYXmUWEHVzpxFMsXqAusCTGcdYsf2ATWOn3cAYim0ZGNeYIAWPO+GiTAJxgV8AL84TwRaEu+yii2dACqeYanE=
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=SATLEXMB03.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Jason Andryuk <jason.andryuk@amd.com>, Anthony PERARD
	<anthony.perard@vates.tech>
Subject: [PATCH v3 2/8] tools/init-dom0less: Factor out xenstore setup
Date: Tue, 26 Aug 2025 17:08:41 -0400
Message-ID: <20250826210847.126015-3-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250826210847.126015-1-jason.andryuk@amd.com>
References: <20250826210847.126015-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF00001CE2:EE_|BL3PR12MB6593:EE_
X-MS-Office365-Filtering-Correlation-Id: 66d20738-c757-4f14-af5b-08dde4e4c967
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|36860700013|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?XE00tK+IQAjAgwwtUoNRXIvuWXR3w4460zCE0Ym19haPbsjHTIRqnzop2ues?=
 =?us-ascii?Q?jOEyDryjFrO+7manQu6A9jmL+163Mfn3ZezMAqTjXWT8yXQxh6rRweBhx3Xm?=
 =?us-ascii?Q?HtGJqtJVfw3Z36gXmn4LuvM9QYF8PgletWvT60XSc1+ybk0mJqetbE3JX1AH?=
 =?us-ascii?Q?Z/Tr3OqR8FaGqlUf1UfhR+p7yq3R+fyTEIF1fHGlfMgIKzoxOCf6HkkuSil0?=
 =?us-ascii?Q?nT3RboIqJlGcDhJgCCPLKIZ9neyHSdOZ9Azs9OOAVUDQi+p7FHDxuqZ//TtI?=
 =?us-ascii?Q?USCXP9RmrD6qWdJwvaULsRRTKL3QUOc2/QClW7uN4e/YgKnHnKJ5ifL36sVN?=
 =?us-ascii?Q?l5YqdW2RC08BehTRXTAq9PQ3PDm8FmryqKaRfRo02FjPm/V9ASshbx6ASsbN?=
 =?us-ascii?Q?6sPkvIGgLo8MGkyC7NxamljRO6oxnL2O/A0Zke9yXoI0MoUFv/2Hrh7C0ysc?=
 =?us-ascii?Q?HhQ3l9uswY/Ij07tkdjSxv1n4/p16BGU9Ygu1SCaZ4dSGc203RwQS8DT7GRz?=
 =?us-ascii?Q?Fi1eGN++cAhVolhBD1WE+4yPnYrSg6yKewW4ZnCECDZyuvA3ZVkYQqqG7RST?=
 =?us-ascii?Q?FznhqvLpuXB697T71ZkzqKAkYjU3LjCpSmCPBQ9by0HkvioVZKTrXgu9b2Ip?=
 =?us-ascii?Q?XtKHpeiXhqvc9inIKiLFjjM5R6MbG9de24+0V++xEU9gK2muX479aESYiwmW?=
 =?us-ascii?Q?LheEaSgMOxL9pFek4OXUtzs4gNQelIAN5DoRYGyETnCzObzgNa2VK/+AxcwL?=
 =?us-ascii?Q?3ikw8W9Sb2w3yuUgh79PWIadRaux6YTnXEZvW3EdqqUB51TKXO6hiaxyorfq?=
 =?us-ascii?Q?/T5+0g/+yBL8d/C4GRZ/a+mWpTLSvrcZc8PJ1NiN2QvFfnFSIMGk1B9/g1M7?=
 =?us-ascii?Q?G0RuOB8TFEPp1M8kKvXf7gFbBWx/qKilOb932gf8MbzMigMWh7AtabzRC5aK?=
 =?us-ascii?Q?tLxaJ79auxubQ3XSgkVab5Hrc2trfo/4bG+8RilV5S/ySKEkTiVCbYvgSoSC?=
 =?us-ascii?Q?/J6mkK43olUsynpdnphTiEvvpvJ7lN4DzIorOlI4Lo+uIkYxRP6nNbX0lVmM?=
 =?us-ascii?Q?bcNKGKXU88lNXWfDTXnjtKcPoth70UCNgHuatfub0uRNw7R/hUK3Deva55S8?=
 =?us-ascii?Q?JlX4x69RdOH88NuMxG8bh8nbhMQFJ5RxXcZeqdDLjv7K9Qv+2c0RFPaob7wN?=
 =?us-ascii?Q?V1H8K/ZvxxiMJ9Htp9ThsS2q9N2TYTRMTK3peNEoUB/LuI0wHkQpPt9EymvK?=
 =?us-ascii?Q?6h53cs2OFcN12OpnylBqMqkZs3dNRAhkhLHj3v2sFB3GXlQMsFnjArRXaKgA?=
 =?us-ascii?Q?Nb1oZMYdhsvYMH+h4G6wm4OqIyMSql+iZOAfcBLW6rtLRFlqHPACcUXdL9wH?=
 =?us-ascii?Q?2TLAuNsxa6x5x0rdIcUOGgjS0/OnDAVyV034OWMZmuLJtXUXLwlHFhEejYzz?=
 =?us-ascii?Q?wcuTYcziwYwgpzRClWkRAz8+xYag5OY5PaIwtyBXreRxt6BL1zk9vItRe7wu?=
 =?us-ascii?Q?86vP41tGp8y8N0wYT0Io0a2+tRwMJg/Oibqh?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Aug 2025 21:09:03.7822
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 66d20738-c757-4f14-af5b-08dde4e4c967
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF00001CE2.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR12MB6593

Factor out the xenstore setup code into configure_xenstore().  This is
in preparation for handling already-introduced domains.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
v3:
Remove handle passing
---
 tools/helpers/init-dom0less.c | 39 +++++++++++++++++++++++++----------
 1 file changed, 28 insertions(+), 11 deletions(-)

diff --git a/tools/helpers/init-dom0less.c b/tools/helpers/init-dom0less.c
index 0b0be08449..8de8e44ad3 100644
--- a/tools/helpers/init-dom0less.c
+++ b/tools/helpers/init-dom0less.c
@@ -237,40 +237,40 @@ err:
     return rc;
 }
 
-static int init_domain(libxl_dominfo *info)
+static int configure_xenstore(libxl_dominfo *info,
+                              uint64_t *xenstore_evtchn,
+                              uint64_t *xenstore_pfn)
 {
-    libxl_uuid uuid;
-    uint64_t xenstore_evtchn, xenstore_pfn;
     int rc;
 
     printf("Init dom0less domain: %u\n", info->domid);
 
     rc = xc_hvm_param_get(xch, info->domid, HVM_PARAM_STORE_EVTCHN,
-                          &xenstore_evtchn);
+                          xenstore_evtchn);
     if (rc != 0) {
         printf("Failed to get HVM_PARAM_STORE_EVTCHN\n");
         return 1;
     }
 
     /* no xen,enhanced; nothing to do */
-    if (!xenstore_evtchn)
+    if (!*xenstore_evtchn)
         return 0;
 
     /* Get xenstore page */
-    if (get_xs_page(info, &xenstore_pfn) != 0)
+    if (get_xs_page(info, xenstore_pfn) != 0)
         return 1;
 
-    if (xenstore_pfn == ~0ULL) {
+    if (*xenstore_pfn == ~0ULL) {
         struct xenstore_domain_interface *intf;
 
-        rc = alloc_xs_page(info, &xenstore_pfn);
+        rc = alloc_xs_page(info, xenstore_pfn);
         if (rc != 0) {
             printf("Error on getting xenstore page\n");
             return 1;
         }
 
         intf = xenforeignmemory_map(xfh, info->domid, PROT_READ | PROT_WRITE, 1,
-                                    &xenstore_pfn, NULL);
+                                    xenstore_pfn, NULL);
         if (!intf) {
             printf("Error mapping xenstore page\n");
             return 1;
@@ -281,16 +281,33 @@ static int init_domain(libxl_dominfo *info)
 
         /* Now everything is ready: set HVM_PARAM_STORE_PFN */
         rc = xc_hvm_param_set(xch, info->domid, HVM_PARAM_STORE_PFN,
-                xenstore_pfn);
+                              *xenstore_pfn);
         if (rc < 0)
             return rc;
 
         rc = xc_dom_gnttab_seed(xch, info->domid, true,
-                                (xen_pfn_t)-1, xenstore_pfn, 0, 0);
+                                (xen_pfn_t)-1, *xenstore_pfn, 0, 0);
         if (rc)
                err(1, "xc_dom_gnttab_seed");
     }
 
+    return 0;
+}
+
+static int init_domain(libxl_dominfo *info)
+{
+    uint64_t xenstore_evtchn, xenstore_pfn = 0;
+    libxl_uuid uuid;
+    int rc;
+
+    rc = configure_xenstore(info, &xenstore_evtchn, &xenstore_pfn);
+    if (rc)
+        return rc;
+
+    if (xenstore_evtchn == 0) {
+        return 0;
+    }
+
     libxl_uuid_generate(&uuid);
     xc_domain_sethandle(xch, info->domid, libxl_uuid_bytearray(&uuid));
 
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 26 21:09:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 21:09:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095134.1450294 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ur0us-0007nK-Ra; Tue, 26 Aug 2025 21:09:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095134.1450294; Tue, 26 Aug 2025 21:09: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 1ur0us-0007n1-NE; Tue, 26 Aug 2025 21:09:18 +0000
Received: by outflank-mailman (input) for mailman id 1095134;
 Tue, 26 Aug 2025 21:09:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=etY1=3G=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1ur0ur-0006z4-96
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 21:09:17 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on20619.outbound.protection.outlook.com
 [2a01:111:f403:2406::619])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e7e23995-82c0-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 23:09:09 +0200 (CEST)
Received: from BY3PR05CA0017.namprd05.prod.outlook.com (2603:10b6:a03:254::22)
 by PH7PR12MB7330.namprd12.prod.outlook.com (2603:10b6:510:20d::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.14; Tue, 26 Aug
 2025 21:09:06 +0000
Received: from SJ1PEPF00001CE2.namprd05.prod.outlook.com
 (2603:10b6:a03:254:cafe::c) by BY3PR05CA0017.outlook.office365.com
 (2603:10b6:a03:254::22) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.12 via Frontend Transport; Tue,
 26 Aug 2025 21:09:06 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SJ1PEPF00001CE2.mail.protection.outlook.com (10.167.242.10) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Tue, 26 Aug 2025 21:09:06 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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, 26 Aug
 2025 16:09:05 -0500
Received: from fedora.mshome.net (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Tue, 26 Aug 2025 16:09:05 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e7e23995-82c0-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nrmole8tNjK5U2NTpcnCCBcoVgfG9yQAj1ennxuw9MT/+Bv1iceWuzeWailhyMN9hP1z49Jhp9JUeu6+UBEugFySD1HNNaTzjEcGhzFKC0YcPbu1pMfpTN3jiYDmkHFWekwcUDlSIMhJuEBkdZFZccmoniIpOZGOvT8l3L+KoN0We+bPRvjQcabWumJLMNgXIvfXUiZ6Li+JehlHo5S+WK0XBaKsue7Cblc1MhY7Iblr292eXVnXl6HENwQd/PwGUpMsk5g3qcPVelAc3gjy+YyAkLlqX9gWGzYDzjknDPtTow4g4gzOd60XKcFUD18TOiCVICAb/yZRLqtzgbLDNQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=uzDGiHAVkJNpJC5uvjQt5odWyjWh55jkKFPNsbwPekg=;
 b=ndekwmTYHOg/DI7VZ+4Zk8etT6nJpanzWfiQ4TaFZ7UIghxNrTX7u2gsVhnTzYlxF50+Glx+tAQfkEgNEIIOq9jNtaa5bTTRVCf2LLJDYkbYe6p8852dL+Z+XdyIphb0WX64sJq3oSU74QoYgWzwb8imsDuim+WhsmjMb8Tfh+xmum1gOhLzL62nTLpUFlsLXKIm/KhXyxYoy4Ug+Q9ZvfoveHz74VVfC98wbBJk8A44T6fLBoQ25m7YocGd9sihQlT9VLaA9NaGGpmT6WahiVbcqZEwHDMyz6W8WgfvSf7pwl36852cj3dXNBgAiJjl33iXMDtnGm03jho0ZGIOHA==
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=uzDGiHAVkJNpJC5uvjQt5odWyjWh55jkKFPNsbwPekg=;
 b=l2IdRh75+bx1DRyVZYAVSxQ6GYvxG349Ml1rMXGN4rPLf+fHGwQuGMr1KIxx2siUrmd4B3GcsQr4jvyV8/UdEWMvSsi30N9pkocdX/OaGr2hgSrrbibsNPdWiDtZGk9p4SPNeOsSlMy80UsZFc9Vu6mQ4WKwytI5W8PmPBH0Yso=
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=SATLEXMB03.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Jason Andryuk <jason.andryuk@amd.com>, Anthony PERARD
	<anthony.perard@vates.tech>
Subject: [PATCH v3 4/8] tools/init-dom0less: Switch domain_exists to check xenstore name
Date: Tue, 26 Aug 2025 17:08:43 -0400
Message-ID: <20250826210847.126015-5-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250826210847.126015-1-jason.andryuk@amd.com>
References: <20250826210847.126015-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB03.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF00001CE2:EE_|PH7PR12MB7330:EE_
X-MS-Office365-Filtering-Correlation-Id: 4b7660a6-6657-4480-26ed-08dde4e4cad1
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?aaKThxY3Ik79VNrV5Wk77Kpm09H5RGFhe/J5eJCs/uZWiLE79b9fOYtPdH4i?=
 =?us-ascii?Q?Tgi/6d3gTeA2cb3Y36bbFXlLtQphzqgiry+wuyGnnSCZaRmXd+iFGQKGw98q?=
 =?us-ascii?Q?lH/5RteXsSzBvHC7DCIk6fAP+0dyRBD4pEfChqpwEipmNe1maiJS+KWmTNPq?=
 =?us-ascii?Q?m77rt4hD2y+/JeG6qqVnjGnNdcekGe6gLG7EcguB/IPdGiQuN56hDgSsJkFL?=
 =?us-ascii?Q?4/3lPQLrAZ69gnX8bxA5aSP0EqkscDdQ0QTAChuQwp4e165emoUmO1VUJm4Y?=
 =?us-ascii?Q?DRpyDSSf/cDqbWzPcxJhx+k29jql7bY82euH+7Hx/6ZXwuSPe1ZsEI6K2daZ?=
 =?us-ascii?Q?WjRlMKU/57DqG1EVBMg9l6WFtf5ec3JuwzzGwHAXuf1Zr/HS4ZJXvnXTcs5v?=
 =?us-ascii?Q?tqrCAzyzfcCLz8PSn5CKvA4xUoFi29XUNxOWLLEkWFy7bPB192Rgxdqd2Jfn?=
 =?us-ascii?Q?clvPO1RVVFhXUbxDxCydAY0zINTxG/l3mDnMK6NDBnKNI41ilScxxDDFaG7J?=
 =?us-ascii?Q?djUniZOgaW+gBHdRpIpun8buldIAFMLVa9vASCqthpQQYnU2L84giXGOIgNB?=
 =?us-ascii?Q?BhlWmi2IWVFlnqer91AFxq8MxqBdn8t+LUkoMXyO+X2hh7S0fwFMM8xZx+hl?=
 =?us-ascii?Q?C4+S4UDHCPyIGdCR5dh2kJmGA/lWyXrN18un/6VHemd4QgqY5xdCtedm7SMz?=
 =?us-ascii?Q?lXRy/0K8VR10IU8JhmDqoM8Q5wLsSrMvFt2D/wIq2jTh1LVXJvZr5ZwETe2X?=
 =?us-ascii?Q?44xNcZYrohU2XUOw5rR2IkZCMlslPFVqMTcPCTKvosEsI+bUcsgGuXmk79jB?=
 =?us-ascii?Q?42WbSG3ZRHUrEzcAyp071VNNJr3NchGOZ5wU5BLng168IfCzbuSTaGTx4r65?=
 =?us-ascii?Q?e6fqs1XKl/Ye63XOJvBx3Ex4VoW/gcfMApxy3BJ16vQACDiGzaSWVW3B2fFq?=
 =?us-ascii?Q?zomXl0Iq8Qa84nzTp3Sk8vMsKwZEsoJxVBGNOxuhNibao8wACzhHhiizHd2C?=
 =?us-ascii?Q?pw75E05TSsatoBvmLZz5ggBk5TirEP2oFM4ZKtYVKVrO8W1lLnSiL3cfZEud?=
 =?us-ascii?Q?XpyPqjI1WPVPib8q7vXIXTQOJWsBa11R24C3StcfoPKl6ESp5pNgwVPQ+DrH?=
 =?us-ascii?Q?OLwWSYmt4u0O7KNyaQnBXLeIfQbfb+BzS+XgvomesFUecc4HGBOFimS+ZjYe?=
 =?us-ascii?Q?Kc6H49NUTx8IakI42oGm4h5q8n/sQDCFotLhOjCJy2ySwAUtFFwol/uokjxL?=
 =?us-ascii?Q?Bklibt5a36sA3ryFEKzHyLnsVWWLkH4NFIZjMaCJUGaRjw6fDyEiuFKiPj5J?=
 =?us-ascii?Q?SJHA3gCuiXbq9wh6JjI9tlLwmcoItVNlr5ApLhY4yd/4m8O2hUSo5yl9YpDs?=
 =?us-ascii?Q?SxhwfwEaH+UieKWndQtPLdNF0R40oqYzGrcw01lxDjS3SUYguWj254t57aTa?=
 =?us-ascii?Q?V7I4o+B4bVGUbJUE9GDUVbGp6T4IBCXnFCZ1/14ZKYcJD58UsTku4cGLu/RZ?=
 =?us-ascii?Q?QNsROHHyznwpCXdKY7Q6ch/9hH6LZ5wKJVp/?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Aug 2025 21:09:06.1491
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4b7660a6-6657-4480-26ed-08dde4e4cad1
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF00001CE2.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB7330

Previously, the xenstore "introduced" state was used to avoid running
init-dom0less twice on the same domain.  With xenstored
auto-introduction, that can no longer be used.  Instead check of the
domain's name has been set and use that to determine whether or not to
bail out.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
v3:
Move xenstore reading into domain_exists()
Reorder
---
 tools/helpers/init-dom0less.c | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)

diff --git a/tools/helpers/init-dom0less.c b/tools/helpers/init-dom0less.c
index 3906c4b61a..eb793c7aab 100644
--- a/tools/helpers/init-dom0less.c
+++ b/tools/helpers/init-dom0less.c
@@ -60,6 +60,19 @@ static int get_xs_page(libxl_dominfo *info, uint64_t *xenstore_pfn)
     return 0;
 }
 
+static char *do_xs_read_dom(struct xs_handle *xsh, xs_transaction_t t,
+                            domid_t domid, char *path)
+{
+    char full_path[STR_MAX_LENGTH];
+    int rc;
+
+    rc = snprintf(full_path, STR_MAX_LENGTH,
+                  "/local/domain/%u/%s", domid, path);
+    if (rc < 0 || rc >= STR_MAX_LENGTH)
+        return NULL;
+    return xs_read(xsh, t, full_path, NULL);
+}
+
 static bool do_xs_write_dom(struct xs_handle *xsh, xs_transaction_t t,
                             domid_t domid, char *path, char *val)
 {
@@ -332,7 +345,13 @@ static int init_domain(libxl_dominfo *info)
 /* Check if domain has been configured in XS */
 static bool domain_exists(int domid)
 {
-    return xs_is_domain_introduced(xsh, domid);
+    char *name = do_xs_read_dom(xsh, XBT_NULL, domid, "name");
+    if (name) {
+        free(name);
+        return true;
+    }
+
+    return false;
 }
 
 int main(int argc, char **argv)
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 26 21:09:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 21:09:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095136.1450299 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ur0ut-0007qh-79; Tue, 26 Aug 2025 21:09:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095136.1450299; Tue, 26 Aug 2025 21:09: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 1ur0ut-0007pf-1y; Tue, 26 Aug 2025 21:09:19 +0000
Received: by outflank-mailman (input) for mailman id 1095136;
 Tue, 26 Aug 2025 21:09:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=etY1=3G=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1ur0us-0006z4-Jo
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 21:09:18 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20631.outbound.protection.outlook.com
 [2a01:111:f403:2414::631])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ec62b11a-82c0-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 23:09:17 +0200 (CEST)
Received: from BY3PR05CA0009.namprd05.prod.outlook.com (2603:10b6:a03:254::14)
 by CY1PR12MB9602.namprd12.prod.outlook.com (2603:10b6:930:107::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Tue, 26 Aug
 2025 21:09:13 +0000
Received: from SJ1PEPF00001CE2.namprd05.prod.outlook.com
 (2603:10b6:a03:254:cafe::dd) by BY3PR05CA0009.outlook.office365.com
 (2603:10b6:a03:254::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.12 via Frontend Transport; Tue,
 26 Aug 2025 21:09:13 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SJ1PEPF00001CE2.mail.protection.outlook.com (10.167.242.10) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Tue, 26 Aug 2025 21:09:13 +0000
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, 26 Aug
 2025 16:09:09 -0500
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.1748.10; Tue, 26 Aug
 2025 14:09:09 -0700
Received: from fedora.mshome.net (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Tue, 26 Aug 2025 16:09:09 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ec62b11a-82c0-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=oHySlXxqNmM1s62brizEOcGayhRh+wwqZxdVUg6xXO5PNVjHuSNbzlvkbiWbWZq6BBZexDMHBIyOSmJFS9UF95t5lPFJGWxcw+SEz8/Ly86UaevhMYzN8Ver9M21doiozPOjX2qRy8tZbR8War1UTDykPiJ70Of3/bGLao/kBPGZYtoI7OFKJJQeCNs0U7vrz0kkriEoVb4jsFQCZ5pX3jLUljny5LKGByyBXS+cQc756bQhfyhT3PFa0DRQQ6Ld8Rb+W8quaKVlS9qvLRab4YdO0TVWrtE23VrFUyFAZQFqlset3FLQmsp6WKwdCf1s5C79NDONddxwAuRa/j1kFw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IZbY69DMqrM0tK6H3yhGR3gho187BPnTnu5vuJ1naLY=;
 b=BlrLlnDuiqg7k/MwdvhIacp2x8vHbS87Juw43zvKjj3FPAShoMEeVeFQgVbwdSk00JvEODK0UmG2nAU9m1tbeWN0DlTg6aVBDZqu611hYHrwMYteVkSUc1jVNoaqY6/7mOC6rF95rkODPACxXJLin/H0XqYEqn1VCt/IWZ7QYvDqfl9VNT9Uwx7gBTV7G9+NuRcJFf3joEWaZyStFBMdsHrL8lTPVd15hcXrzt6dBz1QWNc0PnPSUT2ECAL7e/2jr60F6r7ErPJmcqNc1YK/X82UHXGvMJG88uhB90RRoBvvLAYolD6pVQkpY+sBAjU4wUc3SY4sMiayXjtGFpvcBA==
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=IZbY69DMqrM0tK6H3yhGR3gho187BPnTnu5vuJ1naLY=;
 b=lJobdyhDvWrckjr+PUtncrKlU+tnfMSGXLO90qCcRKw8n2NBsrX9LUYznIHkw36AGImku++IZcZCe5Yf88sUrxZBkIaMtZa0IvB0PkdCFVpy8BxO0Mzwd+xknjdpTRQ/1ICFNgJcwQ+Oi8kZhBIxaiA7hiErul5qqc2g3NBIPy8=
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=SATLEXMB03.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Jason Andryuk <jason.andryuk@amd.com>, Anthony PERARD
	<anthony.perard@vates.tech>
Subject: [PATCH v3 7/8] tools/init-dom0less: Continue on error
Date: Tue, 26 Aug 2025 17:08:46 -0400
Message-ID: <20250826210847.126015-8-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250826210847.126015-1-jason.andryuk@amd.com>
References: <20250826210847.126015-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF00001CE2:EE_|CY1PR12MB9602:EE_
X-MS-Office365-Filtering-Correlation-Id: 77675c30-0ab5-4da9-e533-08dde4e4ceed
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|36860700013|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?4QOwJ9WhhVgdkKYI0cf8yXqP8eLmYiVXMKKDQwfoURXtP0fcM3ociF6SU5H9?=
 =?us-ascii?Q?7qHjIYxR6jrLFLuXyZbZZ7S0j9geXVSADO6QRAEnTn79GQUayxkW4Wz4Bs1g?=
 =?us-ascii?Q?MDqgUuR6VB/ScGGrxc7l8x5xI4Ietz3NH/6H6mObe4iZbJgrPwzdtbJJVdQS?=
 =?us-ascii?Q?WvoLZt+SnPOv9Bu4WZZC2e+6JdFtxGf6Uh0DOPLp/2AtXY/7TROJVMvT2zi2?=
 =?us-ascii?Q?4no1sd+LEtM80jNBndUBSXo4PbeRvd0fsBnXChwFKtlF2XMn3BUnckVx1jYC?=
 =?us-ascii?Q?1JezpnxJI8qVJgfMNWtCH3U3ddX5Om4M6W1fjrC2Bi7YeQ6klrOA9vLWuuzc?=
 =?us-ascii?Q?sILTcF9IsVKpkVaJE8vHCHDnBGMSHfXVUgZs4XQc/tgeQTg/r68vJjPj2wPA?=
 =?us-ascii?Q?GTTkjkNY9o84Tc3sJvgs5XdVkmNfA48pxeDhQU26Y3PxDDL9dNaMVJu3i1UL?=
 =?us-ascii?Q?pX/47fFrH+bTzUP/xTqIjT2vdU64DDtDywuwGy45mh6JUKcpy+gmQicta/P7?=
 =?us-ascii?Q?RRbCtLv8SwDXDlTUrlltQVSb2NN4m9qNz9Bb/Qwmeum3ISAzMxGr1fJecSmF?=
 =?us-ascii?Q?4uxV5TBdwUJPpwhbTFXYwOU8dINWqwqCh/JS/RzneYset38N4fJQGKRleOLH?=
 =?us-ascii?Q?ODyeZ0zx48IbyA7ENO429p+I0vSooFLPnJs2hHnFY3055ZKQPU9t/EklaEtL?=
 =?us-ascii?Q?KjxuJc/QZ+URPkrtS6pczAaK3l8WTcnUtniOOvSSjV2+4DU81/Ont6g3T5k/?=
 =?us-ascii?Q?1T9urIk+JEHx4VcAfXCl9p8rV8qGcpCtT01mF83FV9Qj3ueSAGJgjEStny4i?=
 =?us-ascii?Q?2PGWf1Cs8VvTIOAuiY6vyQk79JsQwo/f6vdGKUP5ZhCKxdRUCSd6WiclIM4J?=
 =?us-ascii?Q?gcidD2ha5w3TFxMK+AX1vbVxyoA9pG/SptVEZi5mobQ1HkC3fqZIJ44fGBqD?=
 =?us-ascii?Q?Eztl/J97eONJruXQ/0/YLcoOa5MYh2vkFhhC6TgpEIS/qQ5YUjBERhD+fabE?=
 =?us-ascii?Q?PzV84YQkNk54p/1hZ3BYu8PFu09kQhViioyNyXYucDrk3njYOHtW5b8SUOVe?=
 =?us-ascii?Q?kJy2KNGEsWxra+/ZP6VnmLH9q5ZzqwZrM6KP7cagUEuH5CgnrFfi+TThBYxI?=
 =?us-ascii?Q?X9pNKC46hIwV3eQUGHGh0VQo49IG7HqWm4Fse1wM9MQ2MPTWJi2Ueuh3OAYk?=
 =?us-ascii?Q?sFhe6JCgtMSxrsEDy5m7IQkVzpkphvvPkASMzu5iL2Xw9c2o0vn0gQB2/L8i?=
 =?us-ascii?Q?wUi8bY1PmDBDFi7avFCl/S8i3oeKUEI7+QEDo9Lf3IH7HT4y+O5HoYSRz3Re?=
 =?us-ascii?Q?AUQYybIfxZ7PWdnGNWPK7JtAgAbY1EP7uZPLfUXgQCu359eVnX4X1MCXzLWa?=
 =?us-ascii?Q?Ie/vRIfFN9wkFkFXiYX3IJVJE/11hboIoIDujC5D2rhaLO6Nj4mpU7/+XU2t?=
 =?us-ascii?Q?RV08jMHlO9ZLrPUhD8uwrHkgj+SxuhQ5okNgC/QvWQBsGKQZ8n/I5bKXTxNT?=
 =?us-ascii?Q?WHD1Zqvf+tMpgtYzn4wePsVGMqyX4kfN8ELM?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(36860700013)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Aug 2025 21:09:13.0501
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 77675c30-0ab5-4da9-e533-08dde4e4ceed
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF00001CE2.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR12MB9602

An error on one domain doesn't apply to others.  Continue the loop over
all domains if init_domain() fails.

There is a mix of positive and negative errors.  0 is success, so just
check for that.

The last rc value is used as the exit value, so clear it before the end.
This avoids a stale rc value indicating failure.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
v3:
Use != 0 since there are both positive and negative errors
---
 tools/helpers/init-dom0less.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/tools/helpers/init-dom0less.c b/tools/helpers/init-dom0less.c
index d08b0b1362..ce70ddee29 100644
--- a/tools/helpers/init-dom0less.c
+++ b/tools/helpers/init-dom0less.c
@@ -406,12 +406,14 @@ int main(int argc, char **argv)
             rc = init_domain(&info[i]);
             if (rc) {
                 fprintf(stderr, "init_domain failed.\n");
-                goto out;
             }
         } else {
             printf("Domain %u has already been initialized\n", domid);
         }
     }
+
+    rc = 0;
+
 out:
     libxl_dominfo_list_free(info, nb_vm);
     return rc;
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 26 21:09:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 21:09:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095138.1450314 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ur0uv-0008N1-L5; Tue, 26 Aug 2025 21:09:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095138.1450314; Tue, 26 Aug 2025 21:09: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 1ur0uv-0008Mq-FE; Tue, 26 Aug 2025 21:09:21 +0000
Received: by outflank-mailman (input) for mailman id 1095138;
 Tue, 26 Aug 2025 21:09:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=etY1=3G=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1ur0uu-0006z4-5M
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 21:09:20 +0000
Received: from NAM04-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam04on20617.outbound.protection.outlook.com
 [2a01:111:f403:2409::617])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ed42067b-82c0-11f0-b898-0df219b8e170;
 Tue, 26 Aug 2025 23:09:18 +0200 (CEST)
Received: from MW4PR03CA0255.namprd03.prod.outlook.com (2603:10b6:303:b4::20)
 by CH3PR12MB9315.namprd12.prod.outlook.com (2603:10b6:610:1cf::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.14; Tue, 26 Aug
 2025 21:09:12 +0000
Received: from MWH0EPF000989EA.namprd02.prod.outlook.com
 (2603:10b6:303:b4:cafe::e) by MW4PR03CA0255.outlook.office365.com
 (2603:10b6:303:b4::20) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.20 via Frontend Transport; Tue,
 26 Aug 2025 21:09:11 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 MWH0EPF000989EA.mail.protection.outlook.com (10.167.241.137) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Tue, 26 Aug 2025 21:09:11 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 26 Aug
 2025 16:09:11 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 26 Aug
 2025 16:09:10 -0500
Received: from fedora.mshome.net (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Tue, 26 Aug 2025 16:09: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>
X-Inumbo-ID: ed42067b-82c0-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iVhBjMxN8i8evB/4Nb9TiqtUcWwOAB+5AM9lk0MkC0iJhI2NwPvIaKvXYH/tSrRMy8ubdZNNbKU2GvT11M/F6K8T62Ykon04rLiOoZbDnTQieFY9HqvAhpGOa2Wz31XxdkU35CowP92gFyZn2jpM2zm0qUq2yT2211r5nSqx+6QTQgvW1YolTb2E/0cB/kZQs0oAO8cVvMttxqXa+zQAJRO+3lSuwe3LP6mKzrGJMELji/D7ZrJKQ3q8gANiuABX671562Bt2Cz5bfrdUaunEB5Yna47oHOkRcBS5f8+C3ehClk2ISC3ozO/eEqb3wtqUQVyKGJvvMHuGPc+Qm44Cw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=9F+/mzfDnNswEGDX88fLVWONwAPU8XRv8UZTYl3/UxQ=;
 b=gmOk9YNNE4SNi4RCszvsIP18gXxIKEHIocbibauifWIqJcoBJYrJ7Is8P9oycsTwSPF/bC+a5w2Mcs0OcqfqQrL2kG3F1LdxP4TfzdY2wiMJBHlT92RavwALGokW8LCQ9+FCN6ogA3X3erHRGcp+UY1KqigA1n4rF9WM4orPVk5n+tcxrvZlx28YYF4QVhMcHP0njjxoaUgq1AouHhB9qTQSzrIIRPSpJQtnu/FWk5tavJI6usRUdLispUG69E9y2kdCxQNV2SM7FvOR05is5JBXFG3TCBLu5drbgB1WWr71qKaDFYXoxA86kZa4CaBlH7xfLxzZmHfa8zTs0RVpeA==
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=9F+/mzfDnNswEGDX88fLVWONwAPU8XRv8UZTYl3/UxQ=;
 b=VQTp6Gl6HQ1kon5cyKofYDwAR4a+yytFSOBoc6aL40QMENERaPh4PftXkXjfQcUp8ZqonGrnl2mEQ9duzVbns1nju9CnZIX1+cq01CwH1gBXkZdKSup11iA92qhjBXydejOfUsHrSpOMvCYOblx1zjBi6xlqH32Vod1F7DI8SDw=
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=SATLEXMB04.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Jason Andryuk <jason.andryuk@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v3 8/8] xen/dom0less: store xenstore event channel in page
Date: Tue, 26 Aug 2025 17:08:47 -0400
Message-ID: <20250826210847.126015-9-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250826210847.126015-1-jason.andryuk@amd.com>
References: <20250826210847.126015-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MWH0EPF000989EA:EE_|CH3PR12MB9315:EE_
X-MS-Office365-Filtering-Correlation-Id: 1493181f-1f82-43a2-ab12-08dde4e4ce0d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|36860700013|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?/MYVNB9SKxzBOsMnX0reLumPgpDkNbd57aiDW9BQHwSvg6rc2Z00K1VkIPFH?=
 =?us-ascii?Q?nhfO7HYiQ/B7lUKy8OwrX1vheYvypd8WzBErY1qTsXxbJ8ttTCPDC7kbEkcD?=
 =?us-ascii?Q?psyGLlz11J1h8zh2onmEXmGdxJcpL7nkmHBvPNCXOztV1IqLkwtSElurQWgN?=
 =?us-ascii?Q?CNd40/7p8C0MOUh3qDr1UCEts52aUMJXN1B4dLQbl+g4feWM1iSpDMAE4QGX?=
 =?us-ascii?Q?NVCGpx1kPbkG69l7nWXfBsMXX5GfvBazhLXdbvfV/PTe5tDIZEWdLQaxwjGs?=
 =?us-ascii?Q?PaL0H8VsxyfWBILmyhW3OX3WOc9agFk0Wh15qZilBPX3n+1c2J7jzvaX/o/B?=
 =?us-ascii?Q?kgAeehkQwQnbv1UHGfupLnsqw88tTThPTn7nfDiKmcy/Kyk2mjbDJkms27/u?=
 =?us-ascii?Q?66qD6xrsZQSwZpwJxgFy8oS8GCcEkDkZGupN2EAtfaaDmESK4roAIDF81C0G?=
 =?us-ascii?Q?bkTU42jpPbCjU7qVm+eCsuPfaDYQeo0I8+7Vp4ISs10faO/PcK05H7tF91gF?=
 =?us-ascii?Q?GKVw1E291Bd9se7Sdvj/9oEjYX+iHf07qjBr7L1o9W6ASwJaHGMIGLwei2Jl?=
 =?us-ascii?Q?TFlo/78YMqmLc60rZcDMsc0wR58eJizC82qv5/G5ftAIqer5QuO7iPlPWjdw?=
 =?us-ascii?Q?sXtubfUALqLar99xb1PhpepohtSeNaHj0H8VMYkTOL57HTTQGRcbYCDGRclD?=
 =?us-ascii?Q?Si3qpzoLhSJ+CK4wX+YmxIgNcB/mIPTBWOtbWU6QGsG+gR2qJjYDRCtVkJ6M?=
 =?us-ascii?Q?MLsejvyzwXSHNMaNxN7lNInsVI7M9J4BuA3xGpraRs5gAxWN57vnqrTJlt5m?=
 =?us-ascii?Q?gPMHn4ajocx1Cqp+Y1Q28SfCu5QzC1mDkhc2J13Ckw5CNdFMWBJOFdBqLdqN?=
 =?us-ascii?Q?7rpGy9+MPHU+DMK8j2MnUvirN1vFtko1JkGQrPl7Q5jht1Yu6RKojlmoYeBu?=
 =?us-ascii?Q?I09Uhi/MxT1VfpZWPFh2ahFQjTp2TOtUZG2bg4mXgLGT+BCZT68KHW1qwp0p?=
 =?us-ascii?Q?1CnLp4F/RlF82rDANaqnNDnvukTxqsgabSvITuWftQySWwhKWmhT1VqGJ/YI?=
 =?us-ascii?Q?o0+Z2ITYWJlINVla0eK1xwbvt53mXZ5FKK2a5D5MlXuYdYcp+ayH/9DL3jc+?=
 =?us-ascii?Q?1WZ9VKqqjxWAUYdwycLutqu9Y+dMIJkgith75osV1d+72LsP6NhTd//BU0uj?=
 =?us-ascii?Q?fjZ3ajyWQ4ddTMs7sNCgkZCpfEmoPyN2x1vYe8U9UVxVVscspMietd6xVJM4?=
 =?us-ascii?Q?jLLOFtL9r2SBqNPo6SuqyoT+OYCT8ltHyNhfIkhPEcV3R4hDyCqXUw1yuels?=
 =?us-ascii?Q?tah3j5My4UBfX817sfuJWYaFmWanRNuNUGvAQ30nQh98QMvbhZOQM6z9p3td?=
 =?us-ascii?Q?DSnLatI+cE4UTQmF4nFMe2fVvuIa4oCPU39CfCOQgzFzwRk2Jpvuy71e4/oQ?=
 =?us-ascii?Q?NW/Qit2Ej4iQVsxBFBxmEme+3ZIBXiOV3AlHsCX3dP55pwhs4TfiSjn8Fopb?=
 =?us-ascii?Q?s5aZwh5DCrmzRsy+qWVI6qQ8XSzPb3wUadci?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700013)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Aug 2025 21:09:11.5818
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 1493181f-1f82-43a2-ab12-08dde4e4ce0d
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000989EA.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB9315

Write the associated event channel into the xenstore page so xenstored
can read it.  xenstored can map the grant by the reserved grant table
entry, and then read out the event channel and bind it.  This eliminates
the need for an additional mechanism to discover the event channel.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
v2:
No change

This should go in after the init-dom0less changes so init-dom0less is
ready for xenstored automatically introducing domains.

I'm looking for feedback.  This is ARM-only for the time being, but that
is the only in-tree user of this code.  From the perspective, it is okay
to go in.

If we want a cross-arch approach, a common function to write to guest
physical addresses would be needed for additional arches, but they
aren't available yet.

Oleksii added a function pointer to dtb_load() and initrd_load() when
moving dom0less to common, but I think that isn't necessary.  Just
having a common helper would be sufficient.

copy_to_guest_phys() or something_copy_to_guest_phys() could be defined
or a wrapper for ARM's copy_to_guest_phys_flush_dcache().  Other arches
could need to implement it when using dom0less.

I'm not an ARM expert, but Stefano said
copy_to_guest_phys_flush_dcache() is not necessary since this xenstore
page isn't expected to be accessed without caches enabled.
---
 xen/common/device-tree/dom0less-build.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tree/dom0less-build.c
index badc227031..1a40f68837 100644
--- a/xen/common/device-tree/dom0less-build.c
+++ b/xen/common/device-tree/dom0less-build.c
@@ -26,6 +26,7 @@
 #include <public/event_channel.h>
 #include <public/io/xs_wire.h>
 
+#include <asm/guest_access.h>
 #include <asm/setup.h>
 
 #include <xen/static-memory.h>
@@ -120,8 +121,14 @@ static void __init initialize_domU_xenstore(void)
 
         if ( gfn != XENSTORE_PFN_LATE_ALLOC && IS_ENABLED(CONFIG_GRANT_TABLE) )
         {
+            evtchn_port_t port = d->arch.hvm.params[HVM_PARAM_STORE_EVTCHN];
+            paddr_t evtchn_gaddr = gfn_to_gaddr(_gfn(gfn)) +
+                offsetof(struct xenstore_domain_interface, evtchn_port);
+
             ASSERT(gfn < UINT32_MAX);
             gnttab_seed_entry(d, GNTTAB_RESERVED_XENSTORE, xs_domid, gfn);
+            access_guest_memory_by_gpa(d, evtchn_gaddr, &port, sizeof(port),
+                                       true /* is_write */);
         }
     }
 }
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Tue Aug 26 22:25:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 22:25:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095244.1450324 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ur26N-0004Gp-35; Tue, 26 Aug 2025 22:25:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095244.1450324; Tue, 26 Aug 2025 22:25: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 1ur26N-0004Gi-0P; Tue, 26 Aug 2025 22:25:15 +0000
Received: by outflank-mailman (input) for mailman id 1095244;
 Tue, 26 Aug 2025 22:25:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=VNE8=3G=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1ur26L-0004Fg-7Q
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 22:25:13 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c201::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 855a9617-82cb-11f0-b898-0df219b8e170;
 Wed, 27 Aug 2025 00:25:07 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by GV2PR03MB9521.eurprd03.prod.outlook.com
 (2603:10a6:150:d3::7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.13; Tue, 26 Aug
 2025 22:25:01 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9052.019; Tue, 26 Aug 2025
 22:25: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>
X-Inumbo-ID: 855a9617-82cb-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=WDMzlL4azzjLqjROpmCWWSeYzAmnXiH6CkH2CEJtAGvUdM6XsQ2hDyflVh2I1qEjc7+0tVtaOI9Wwl9Q8MFbd0kcS9LN2YqptP4j2GRbIlz9+w/n5QLi9TWWeLeCuT2IR4PktRadFD9oVWcCT8aswjJ5q3TyrC49/Ds5rZtq4VUjQyBj7B0UxOyD9INzYcJ92QQHY9U2cohHQ81aKkTjTuFsrZtGP8ZXi+YNrAlfX5TP/MsUEvsyinTXeYHfm/Jzlpl14Kk4gqm3agC4oJ9T+Dq3Y/rkFn18IkR+aNl2VrSiS6QeR5yF6lSiCHtzDYehyGS45wIjUxVhexw8veS1gA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=iWu6LdBkIyKII95WX8X6tmhFrOMGfQeEdOywmrYe7rA=;
 b=a9ieT6R+BK7x86LxLPc/6qouCQ1KH2lHc/eTB2HbOcZMv5ak0UW1wOi2ldFWTEgptTO0AU7cD5bCmZNyKbCUNbEHZtTe97Vdqv5R+SFpxAMqq2nlLmAVOQqvCYtnC2Di0r1+dYyN9tJ91XM0aryiYgacY4stPntjw2AaOzFzEZTKexOD8JZjpL3djxSDDQ5kAgkVYXajrZwGnV+9dlcwePjQLJ2inRr3phsdVJk9x276bgf1o/gtKmYi1eAtDcp3R1RMVvWCUWpxFTRNIgCHl8mEaD78BbPolXcjq4mtMQMiCLa6itIhSNyufbT75WhjjiKGG80LOSlSHzMqflOW1Q==
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=iWu6LdBkIyKII95WX8X6tmhFrOMGfQeEdOywmrYe7rA=;
 b=goIQN/+jDiDCxES7+loz04txzS9rgYKNCGw5xPJBDZt24Xg6q5oN88Ks6kGwJilBlTQ3zEPYOcawZtRI48/DcffWH5nrpHYUwlHN8jCJJvivG0EUqHvv0W0LDT1K3m8KGX1CKHiQkZtvTtHIy34DO0OrkO8YEvAmj9x6Q3hHfB66Hk6MIJIxQLA7igk7W7pm9mKflWdmPBrEtf4GH2c8DZXyqwtEwRyHhQtkLpj+w+y1CkCrHwZPmRtNQS6hYX9K+A1P3J8mISZV9FwMFloMB6S5iLsAtvUQQl7I+PCKqVYJzK/KakWo+2cSP353W/PP+JtJSYoZKBl7UnFOoi16tw==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"olekstysh@gmail.com" <olekstysh@gmail.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v3 05/11] xen/arm: gicv3: implement handling of GICv3.1
 eSPI
Thread-Topic: [PATCH v3 05/11] xen/arm: gicv3: implement handling of GICv3.1
 eSPI
Thread-Index: AQHcFpJ/0RYrIev2JkmWYheOK3kVZw==
Date: Tue, 26 Aug 2025 22:25:01 +0000
Message-ID: <87tt1t4t6s.fsf@epam.com>
References: <cover.1756216942.git.leonid_komarianskyi@epam.com>
	<398ad09617f4f97d57d13fa9f3771bd2db83916b.1756216943.git.leonid_komarianskyi@epam.com>
In-Reply-To:
 <398ad09617f4f97d57d13fa9f3771bd2db83916b.1756216943.git.leonid_komarianskyi@epam.com>
	(Leonid Komarianskyi's message of "Tue, 26 Aug 2025 14:05:37 +0000")
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_|GV2PR03MB9521:EE_
x-ms-office365-filtering-correlation-id: 7612d836-1df2-4a24-25e9-08dde4ef65e7
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|42112799006|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?5NzM2IZpgXtzJqNjDpgTnDgp2AUQ8SOB3bdx4kUE60ux4Ekr4aj7tr5RmH?=
 =?iso-8859-1?Q?+Tla/b34X0xev+PJ4yaYYsleIm6haPBsO0lWzCaLHypI+38kn65Qk0uZcJ?=
 =?iso-8859-1?Q?8e1zm5KEfEoPZdbtoRi3Q1DpXLsbqH8bqpnk3RV0a//E4Nky+ILgJ/ccSh?=
 =?iso-8859-1?Q?hCDsBvLb7fuo6nWYrQ6ReH6EUA7Q2i87uzF0Xjcgl1lQMwzQvD3kOX0n0B?=
 =?iso-8859-1?Q?VGSGRrqhe7h5Hxl6eizpdWj4mJ4YBUXjClqkIXC31IcjG7VtxTtTP3SxUy?=
 =?iso-8859-1?Q?z1eHkjy2K53TrVno9Hq+ibvxkBREfDf7dEO9x1HrGryE1HcnN2Xw09khXw?=
 =?iso-8859-1?Q?hfYXugnmsWdgwwUtFf8GGtp2LeiIACNO2b+edf3HSFRm53W4REmb9Ckuq+?=
 =?iso-8859-1?Q?JecVoUO/0RigHj43hzs1c60hUFeKhPM8uCRQ2lhy32+mUcaqPllAlfGiMs?=
 =?iso-8859-1?Q?xlwrD/vgpvw8bwDblwswk7o68LFUyQxZG8QPvxP5/9aX99vAZmSOCn+rWB?=
 =?iso-8859-1?Q?7n+1jwEh+HndaQiM3mM7uPgZy4qVAI2/dkxbclEiU+LE3q/QwepGra11Ot?=
 =?iso-8859-1?Q?yjak5ZilX07PP0plJwCEusjDXReOVgDODau7Y2F7AiYYaDiAGpsHHj04mW?=
 =?iso-8859-1?Q?aeI5RikHujzVXPR/jfLKDVmxJp9anjzyteuDMd6puy8Rn33zgBnLLEObu7?=
 =?iso-8859-1?Q?hXcX8iX8RNzJ8A4PQGI8cmeLE1DfW6EbZX7lo5lwrS7yuO0jOd2SZUf0aG?=
 =?iso-8859-1?Q?S86k3nFQyG4M3EJhtlthFbnheTxS7kZqGtZL1/jol2EmhU2o3sEc6lxqxh?=
 =?iso-8859-1?Q?cqTNTpE2LQH14YAwASK8ChBFckXBryqvAKIozppFM4HRsPkRMtWadAC4D+?=
 =?iso-8859-1?Q?xT6UjIfqFBnNJJeXHPxpe9IMcqToadqhv9vk72SLKxlTL9m+rRv32TrrQ+?=
 =?iso-8859-1?Q?mqclDaoqT6URHb5eXreCr005TU5eWZJJKXtKR4166vgdBN8hvcljTklTvM?=
 =?iso-8859-1?Q?6ZSMytNYtvlHO+EckfL7cRoWITnfQO/qWdBfrr8pPrORsGLnVVQ9XUL3NJ?=
 =?iso-8859-1?Q?+xNFhbFLmGIY6a8hNQD4lSj3T/drUedRr/5Zt4o0BkbnZh+MWhtTnsndN3?=
 =?iso-8859-1?Q?dWS5Q0PmsO32ZdDMjHtdYp1Dh6KyXaWY5PajAcWAcNvZr0P5FCqopG2pQS?=
 =?iso-8859-1?Q?5a/uXbhz7N4o5c760k2gJnXucNP8nP/NYzheAsVTyifnPgQRLchKh5UC91?=
 =?iso-8859-1?Q?SkOFTCnxU0vrcsmsQEWD7SsAvClYPY67YovvYjID2eirUJgv4Cqm07n0S6?=
 =?iso-8859-1?Q?l6uteJYTbKHaw1MLmRWbRjyYNU86c2Vz3GUnjKMmVDQNyx8Su8GwhJoaxo?=
 =?iso-8859-1?Q?7DbJq0PkfjpAvBoIjUM9k/WVbLeqDP9ZnyipVbruCpOOqCQhMIaaBGdkzj?=
 =?iso-8859-1?Q?o/DFONjRQUsiTxi/6qOwSY9lq4hw4P5swtHisCSnc5He7qYIyZo9AfzFsE?=
 =?iso-8859-1?Q?R+mnt7TCBV7rfuhJqXAo0XDZeqAAT+VvGDOKUFfAIIMA=3D=3D?=
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)(1800799024)(42112799006)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?WWABKTZnASWcQO0dmwM48bV7pIHo3A+J1OY1z5GaoKP3i5skvzbpHplbDr?=
 =?iso-8859-1?Q?NiVp/47ir6K2aW7nJ+eUJ0BECFeQ+ANy0yX3pqJe6P0ylL7djp054BgcJ4?=
 =?iso-8859-1?Q?B6yWlb3uwJAIb2OBlzCdn468CBz420MjXQF3jKp3JSGWAVFv+BUtWCoJDm?=
 =?iso-8859-1?Q?GumFkvDRJbvSII65dGrLa8le6rfSiG2fp7k4Jk9mBPD27urV1cZj9TSq5i?=
 =?iso-8859-1?Q?TFjM7UNGww2RFxXs2bPQDWvT2ffYmQVGBTTjc6NCbXLmtCizzm1UMgRKt4?=
 =?iso-8859-1?Q?O7UXwvJ67T+WJKWGDJ/0yYY+GSA3Ws1cWUtu04uNL8439rniMCv6CIc35x?=
 =?iso-8859-1?Q?jTwYedON5KRbTbOyrfumvqLMCpfBAG412oGO4oe6x99WGLEeKOBTCsh1ji?=
 =?iso-8859-1?Q?gHtwobJ7GOJV91mD3s/W78wEBiIOn8w51ReDXmXZ8NaQZu6mg3VPWUKLW3?=
 =?iso-8859-1?Q?W7LWd5HcKGMhe2oNlKk9RKwNnpTuENIWlHsCdKgQsooEtsQ1mVcSiKN2jL?=
 =?iso-8859-1?Q?dHjEgYeuRe4NSOIcThlQ1JVL7g1Haf5ue2ae1vEKeTz2UKSr5eM6LlJ4QP?=
 =?iso-8859-1?Q?+TONNEz0gTDb9Jwqgh88BrqW7OXKuZ1Vx/Ml9Z6/8JkQxOIk2VLn27/ek7?=
 =?iso-8859-1?Q?xH9jZ+9afxRtajT1xMQTPjWZRekNZm/1cZnm8fy5ZjGC7taN2J66OkxCcK?=
 =?iso-8859-1?Q?ldca1mrYy8J5CUpQ4OE8REIAUN3WsnNJryPYqeGnRJWT4ExDhm4d+RBw7j?=
 =?iso-8859-1?Q?Tga6OFZ2L8vpVyOI93SnoglAFgRLbg7ntrgXZlLsSWOd5r9FalfjGQX7c6?=
 =?iso-8859-1?Q?NhrnZZWSRoz3LVKafro1yxlgdkwXBPaqRzm4iwoqMR+tqw/zi2GFJNC0y+?=
 =?iso-8859-1?Q?L5/Xg7mL1Sw19EPnF9dTMRCIBin5xs4zeZ/sWiq+VvoEA4iDxtnO1RvCrd?=
 =?iso-8859-1?Q?7XExuofnjATiKQT8NbcscfdYujd2Ej0YigkwAmolF9NreszGqzWZZOqYm7?=
 =?iso-8859-1?Q?bMDEauQ8ZmUEoSgADjymHQCmMDzQ63RkWXt9NdMgbg7vnBw92RuUTnWi+s?=
 =?iso-8859-1?Q?VsupszSyCr08l88c/qFLhxSUz9yhHJuu5ykFmXcFpuHg0rk6a3Zcxfdwv9?=
 =?iso-8859-1?Q?nyRHlAAEz4eVxtsa3GAOyqouWcdThodhaUjJD+7xf98YUQ+0xx2d4gaqZm?=
 =?iso-8859-1?Q?EB3kJ8bAPJeUXQT4xg5bNw0QEjmK5hG8FvdCCnfC+sydxdJql0wrCH4/UH?=
 =?iso-8859-1?Q?GYe8DglredQfKOcueYMDJ62HKgkIOeORWeDePTm6JrXRLno5hw3Mhz0Yrr?=
 =?iso-8859-1?Q?NwSAq8igjEt3FczfD60/bJYU/Khrw68JKbV/7zTy6FekjERObU7ph5SPb0?=
 =?iso-8859-1?Q?MJ8QLngQvNxAwHoj08GLPrShUuMoj1bbQ6UMFmJZ1aE8HXylaqUeRH+krf?=
 =?iso-8859-1?Q?4plXjC5nJP9bjp7tjUa8YezPLG2ic28pIqjTHMxjLgz8D/huvxaZ+ofHGW?=
 =?iso-8859-1?Q?7UftC8H3x6PimWRVYnFQr8bK+s7k700Xw+9cWrnjcRb20XiFeiH4n53T8L?=
 =?iso-8859-1?Q?72J9kLZOIRHlaTLMQCejRqZWNlrsUtoQGEHtSKFhqzX30wYdmeCuq0nofZ?=
 =?iso-8859-1?Q?Kb/2b8av2Ka4kYw+XaaolKIAi/INYOjQC8eJAKy3hwtQ5XhvmDnaEHlA?=
 =?iso-8859-1?Q?=3D=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: 7612d836-1df2-4a24-25e9-08dde4ef65e7
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Aug 2025 22:25:01.3831
 (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: Q71pUeeBMmHKim6oIKXnyn7/crpu/naG0zJy/YMhYrvvNnUwbr+qoRSctcVI0e9l1F8iWodD3ZXxGq47i1OJu4GXKf5hf/wW0MgYq4UVdFg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR03MB9521


Hi Leonid,

Leonid Komarianskyi <Leonid_Komarianskyi@epam.com> writes:

> Introduced appropriate register definitions, helper macros,
> and initialization of required GICv3.1 distributor registers
> to support eSPI. This type of interrupt is handled in the
> same way as regular SPI interrupts, with the following
> differences:
>
> 1) eSPIs can have up to 1024 interrupts, starting from the
> beginning of the range, whereas regular SPIs use INTIDs from
> 32 to 1019, totaling 988 interrupts;
> 2) eSPIs start at INTID 4096, necessitating additional interrupt
> index conversion during register operations.
>
> In case if appropriate config is disabled, or GIC HW doesn't
> support eSPI, the existing functionality will remain the same.
>
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>

With nit fixed:

Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

>
> ---
> Changes in V2:
> - move gic_number_espis function from
>   [PATCH 08/10] xen/arm: vgic: add resource management for extended SPIs
>   to use it in the newly introduced gic_is_valid_espi
> - add gic_is_valid_espi which checks if IRQ number is in supported
>   by HW eSPI range
> - update gic_is_valid_irq conditions to allow operations with eSPIs
>
> Changes in V3:
> - add __init attribute to gicv3_dist_espi_common_init
> - change open-codded eSPI register initialization to the appropriate
>   gen-mask macro
> - fixed formatting for lines with more than 80 symbols
> - introduced gicv3_dist_espi_init_aff to be able to use stubs in case of
>   CONFIG_GICV3_ESPI disabled
> - renamed parameter in the GICD_TYPER_ESPI_RANGE macro to espi_range
>   (name was taken from GIC specification) to avoid confusion
> - changed type for i variable to unsigned int since it cannot be
>   negative
> ---
>  xen/arch/arm/gic-v3.c                  | 80 ++++++++++++++++++++++++++
>  xen/arch/arm/include/asm/gic.h         | 21 +++++++
>  xen/arch/arm/include/asm/gic_v3_defs.h | 34 +++++++++++
>  3 files changed, 135 insertions(+)
>
> diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
> index a959fefebe..3aa5cc1765 100644
> --- a/xen/arch/arm/gic-v3.c
> +++ b/xen/arch/arm/gic-v3.c
> @@ -485,6 +485,36 @@ static void __iomem *get_addr_by_offset(struct irq_d=
esc *irqd, u32 offset)
>          default:
>              break;
>          }
> +#ifdef CONFIG_GICV3_ESPI
> +    case ESPI_BASE_INTID ... ESPI_MAX_INTID:
> +    {
> +        u32 irq_index =3D ESPI_INTID2IDX(irqd->irq);
> +
> +        switch ( offset )
> +        {
> +        case GICD_ISENABLER:
> +            return (GICD + GICD_ISENABLERnE + (irq_index / 32) * 4);
> +        case GICD_ICENABLER:
> +            return (GICD + GICD_ICENABLERnE + (irq_index / 32) * 4);
> +        case GICD_ISPENDR:
> +            return (GICD + GICD_ISPENDRnE + (irq_index / 32) * 4);
> +        case GICD_ICPENDR:
> +            return (GICD + GICD_ICPENDRnE + (irq_index / 32) * 4);
> +        case GICD_ISACTIVER:
> +            return (GICD + GICD_ISACTIVERnE + (irq_index / 32) * 4);
> +        case GICD_ICACTIVER:
> +            return (GICD + GICD_ICACTIVERnE + (irq_index / 32) * 4);
> +        case GICD_ICFGR:
> +            return (GICD + GICD_ICFGRnE + (irq_index / 16) * 4);
> +        case GICD_IROUTER:
> +            return (GICD + GICD_IROUTERnE + irq_index * 8);
> +        case GICD_IPRIORITYR:
> +            return (GICD + GICD_IPRIORITYRnE + irq_index);
> +        default:
> +            break;
> +        }
> +    }
> +#endif
>      default:
>          break;
>      }
> @@ -655,6 +685,52 @@ static void gicv3_set_irq_priority(struct irq_desc *=
desc,
>      spin_unlock(&gicv3.lock);
>  }
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +unsigned int gic_number_espis(void)
> +{
> +    return gic_hw_ops->info->nr_espi;
> +}
> +
> +static void __init gicv3_dist_espi_common_init(uint32_t type)
> +{
> +    unsigned int espi_nr, i;
> +
> +    espi_nr =3D min(1024U, GICD_TYPER_ESPIS_NUM(type));
> +    gicv3_info.nr_espi =3D espi_nr;
> +    /* The GIC HW doesn't support eSPI, so we can leave from here */
> +    if ( gicv3_info.nr_espi =3D=3D 0 )
> +        return;
> +
> +    for ( i =3D 0; i < espi_nr; i +=3D 16 )
> +        writel_relaxed(0, GICD + GICD_ICFGRnE + (i / 16) * 4);
> +
> +    for ( i =3D 0; i < espi_nr; i +=3D 4 )
> +        writel_relaxed(GIC_PRI_IRQ_ALL,
> +                       GICD + GICD_IPRIORITYRnE + (i / 4) * 4);
> +
> +    for ( i =3D 0; i < espi_nr; i +=3D 32 )
> +    {
> +        writel_relaxed(GENMASK(31, 0), GICD + GICD_ICENABLERnE + (i / 32=
) * 4);
> +        writel_relaxed(GENMASK(31, 0), GICD + GICD_ICACTIVERnE + (i / 32=
) * 4);
> +    }
> +
> +    for ( i =3D 0; i < espi_nr; i +=3D 32 )
> +        writel_relaxed(GENMASK(31, 0), GICD + GICD_IGROUPRnE + (i / 32) =
* 4);
> +}
> +
> +static void __init gicv3_dist_espi_init_aff(uint64_t affinity)
> +{
> +    unsigned int i;
> +
> +    for ( i =3D 0; i < gicv3_info.nr_espi; i++ )
> +        writeq_relaxed_non_atomic(affinity, GICD + GICD_IROUTERnE + i * =
8);
> +}
> +#else
> +static void __init gicv3_dist_espi_common_init(uint32_t type) { }
> +
> +static void __init gicv3_dist_espi_init_aff(uint64_t affinity) { }
> +#endif
> +
>  static void __init gicv3_dist_init(void)
>  {
>      uint32_t type;
> @@ -700,6 +776,8 @@ static void __init gicv3_dist_init(void)
>      for ( i =3D NR_GIC_LOCAL_IRQS; i < nr_lines; i +=3D 32 )
>          writel_relaxed(GENMASK(31, 0), GICD + GICD_IGROUPR + (i / 32) * =
4);
> =20
> +    gicv3_dist_espi_common_init(type);
> +
>      gicv3_dist_wait_for_rwp();
> =20
>      /* Turn on the distributor */
> @@ -713,6 +791,8 @@ static void __init gicv3_dist_init(void)
> =20
>      for ( i =3D NR_GIC_LOCAL_IRQS; i < nr_lines; i++ )
>          writeq_relaxed_non_atomic(affinity, GICD + GICD_IROUTER + i * 8)=
;
> +
> +    gicv3_dist_espi_init_aff(affinity);
>  }
> =20
>  static int gicv3_enable_redist(void)
> diff --git a/xen/arch/arm/include/asm/gic.h b/xen/arch/arm/include/asm/gi=
c.h
> index c7e3b4ff0d..3f1269f0c8 100644
> --- a/xen/arch/arm/include/asm/gic.h
> +++ b/xen/arch/arm/include/asm/gic.h
> @@ -306,8 +306,25 @@ extern void gic_dump_vgic_info(struct vcpu *v);
> =20
>  /* Number of interrupt lines */
>  extern unsigned int gic_number_lines(void);
> +#ifdef CONFIG_GICV3_ESPI
> +extern unsigned int gic_number_espis(void);
> +
> +static inline bool gic_is_valid_espi(unsigned int irq)
> +{
> +    return (irq >=3D ESPI_BASE_INTID &&
> +            irq < ESPI_IDX2INTID(gic_number_espis()));
> +}
> +#else
> +static inline bool gic_is_valid_espi(unsigned int irq)
> +{
> +    return false;
> +}
> +#endif

You need an empty line here

>  static inline bool gic_is_valid_line(unsigned int irq)
>  {
> +    if ( gic_is_valid_espi(irq) )
> +        return true;
> +
>      return irq < gic_number_lines();
>  }
> =20
> @@ -325,6 +342,10 @@ struct gic_info {
>      enum gic_version hw_version;
>      /* Number of GIC lines supported */
>      unsigned int nr_lines;
> +#ifdef CONFIG_GICV3_ESPI
> +    /* Number of GIC eSPI supported */
> +    unsigned int nr_espi;
> +#endif
>      /* Number of LR registers */
>      uint8_t nr_lrs;
>      /* Maintenance irq number */
> diff --git a/xen/arch/arm/include/asm/gic_v3_defs.h b/xen/arch/arm/includ=
e/asm/gic_v3_defs.h
> index 2af093e774..d38a3d08c7 100644
> --- a/xen/arch/arm/include/asm/gic_v3_defs.h
> +++ b/xen/arch/arm/include/asm/gic_v3_defs.h
> @@ -37,6 +37,40 @@
>  #define GICD_IROUTER1019             (0x7FD8)
>  #define GICD_PIDR2                   (0xFFE8)
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +/* Additional registers for GICv3.1 */
> +#define GICD_IGROUPRnE               (0x1000)
> +#define GICD_IGROUPRnEN              (0x107C)
> +#define GICD_ISENABLERnE             (0x1200)
> +#define GICD_ISENABLERnEN            (0x127C)
> +#define GICD_ICENABLERnE             (0x1400)
> +#define GICD_ICENABLERnEN            (0x147C)
> +#define GICD_ISPENDRnE               (0x1600)
> +#define GICD_ISPENDRnEN              (0x167C)
> +#define GICD_ICPENDRnE               (0x1800)
> +#define GICD_ICPENDRnEN              (0x187C)
> +#define GICD_ISACTIVERnE             (0x1A00)
> +#define GICD_ISACTIVERnEN            (0x1A7C)
> +#define GICD_ICACTIVERnE             (0x1C00)
> +#define GICD_ICACTIVERnEN            (0x1C7C)
> +#define GICD_IPRIORITYRnE            (0x2000)
> +#define GICD_IPRIORITYRnEN           (0x23FC)
> +#define GICD_ICFGRnE                 (0x3000)
> +#define GICD_ICFGRnEN                (0x30FC)
> +#define GICD_IROUTERnE               (0x8000)
> +#define GICD_IROUTERnEN              (0x9FFC)
> +
> +#define GICD_TYPER_ESPI_SHIFT        8
> +#define GICD_TYPER_ESPI_RANGE_SHIFT  27
> +#define GICD_TYPER_ESPI_RANGE_MASK   (0x1F)
> +#define GICD_TYPER_ESPI              (1U << GICD_TYPER_ESPI_SHIFT)
> +#define GICD_TYPER_ESPI_RANGE(espi_range) ((((espi_range) & \
> +        GICD_TYPER_ESPI_RANGE_MASK) + 1) * 32)
> +#define GICD_TYPER_ESPIS_NUM(typer)    \
> +        (((typer) & GICD_TYPER_ESPI) ? \
> +        GICD_TYPER_ESPI_RANGE((typer) >> GICD_TYPER_ESPI_RANGE_SHIFT) : =
0)
> +#endif
> +
>  /* Common between GICD_PIDR2 and GICR_PIDR2 */
>  #define GIC_PIDR2_ARCH_MASK         (0xf0)
>  #define GIC_PIDR2_ARCH_GICv3        (0x30)

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 22:30:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 22:30:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095258.1450334 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ur2Bb-0005ml-MA; Tue, 26 Aug 2025 22:30:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095258.1450334; Tue, 26 Aug 2025 22: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 1ur2Bb-0005me-JW; Tue, 26 Aug 2025 22:30:39 +0000
Received: by outflank-mailman (input) for mailman id 1095258;
 Tue, 26 Aug 2025 22:30:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=VNE8=3G=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1ur2Bb-0005mY-51
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 22:30:39 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c201::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4a1dacfc-82cc-11f0-a32c-13f23c93f187;
 Wed, 27 Aug 2025 00:30:38 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by GV2PR03MB9521.eurprd03.prod.outlook.com
 (2603:10a6:150:d3::7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.13; Tue, 26 Aug
 2025 22:30:35 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9052.019; Tue, 26 Aug 2025
 22:30: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>
X-Inumbo-ID: 4a1dacfc-82cc-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lbZEW2mkBXDx3iQ2HnDOt1TZIufq28oZ9mQ6xSIhwF2oQ7sIm/lnT2zUEv2HiTdTN/dH3iyT8w54wADOAxI5VOSvGc0guQJF3K4IPIADqCv44h2dstQpysjFs7zHPk+wzEyFqGs45p59jiLaIppZf0v5XmqIqtd9bCtAIWE4LDoPOu67ZbFzj4UFIzyb0W+28fjzdZwdNvxntYTckk23O2G7ZvkS1PRy2dMv5z6/96LDPH917JpXOyrhXsuK+H0MbonaYDj93OSg+HqH/ZtynYQRgirH/162gkcpem3yxXnsWSkD3+tOi5uHcCiWcFpCFl+ujlOz6FJFduLPmXTKbQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=G5aEdTGeTF2UQfLvyJ76QgFfbnTA5M0yROd91j/48qI=;
 b=ciYU2uhn+CJ3Atjc3902y40KlAwEwGYUnrMSmrN0BZfGC389Rqu9FDVHnCCPpmb3lKvcI7KQrdIltC8JAAGXdu+ttFtFMssS8L6pmVHJSnln7/uspOBVovAL2tyaehAkTpegFuRekHdZ8C1Zf/xq3Z5fOAMbaUNjJcAa04LEW4uainvtsbpLRGiLGOm/4wyM3q/9kpUg0ixV1pAfEpBZB2p2XTwk6B3sVKUxrHSS2lvEAgesHY1PT2w3FtoniW6UueNKEhqtD7abfIOtJbfLn8wzOjreClJMCkD/Uy3dbwsGAfHndgDg/OTqLaanF9vr10zE7YvhnCX1T+iQ2JOIyg==
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=G5aEdTGeTF2UQfLvyJ76QgFfbnTA5M0yROd91j/48qI=;
 b=D+COTmD+52k+r48/MIiVeMfeYnWqQ0scGOyJ7Ive2oovpSwLdDg76Gwf9Y901YoBcMWrC2oOwK5NqnMbw531w+ZrOREJojpMs/aX5B1YkB1VIDUhGZydlPtdQXXLmP8J/0I0ndPsjPpyCbBC/1+qx2ezNe/INsO5x85SvzBGnoRCrFB5LLtMcfMfL/dpQDlqRHirFP7ou32LpJYpFStXgBUdMOCCBXvz0xm3OxiWQZjE6NW7R6nFdyOVfy74Lr5qQVSmR0YMJDLbMC07/x68MzqE+60Gr9dy8Y+QQm9ziWgfKcATqtTYCC/0+ML7dJUHEtjYrQ5bofnRu9YID4MV5w==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"olekstysh@gmail.com" <olekstysh@gmail.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v3 06/11] xen/arm/irq: allow eSPI processing in the do_IRQ
 function
Thread-Topic: [PATCH v3 06/11] xen/arm/irq: allow eSPI processing in the
 do_IRQ function
Thread-Index: AQHcFpJ/78TDbVIRnkOE9iNbqduJVA==
Date: Tue, 26 Aug 2025 22:30:35 +0000
Message-ID: <87ldn54sxh.fsf@epam.com>
References: <cover.1756216942.git.leonid_komarianskyi@epam.com>
	<c977f6c0746d4461a804ba2e2ca80159190923ab.1756216943.git.leonid_komarianskyi@epam.com>
In-Reply-To:
 <c977f6c0746d4461a804ba2e2ca80159190923ab.1756216943.git.leonid_komarianskyi@epam.com>
	(Leonid Komarianskyi's message of "Tue, 26 Aug 2025 14:05:37 +0000")
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_|GV2PR03MB9521:EE_
x-ms-office365-filtering-correlation-id: 4a9179e9-ae8a-4db6-56c4-08dde4f02ce1
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|42112799006|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?uK8CLGqycmhzY6OBDD0yU3q4xDvNKFx24p+Z/X5awuRY2/06AOZEf62ATo?=
 =?iso-8859-1?Q?I+D2S3pH1gh9oex429fWvP0GNNKKoINQsYk220mte7KO7ypXX0gBfqpYSa?=
 =?iso-8859-1?Q?/ZMW4lPz/IppqKhwg9HBzszImdEbBQa2UWfUJ5BWCax+otpvgXbhSARtLE?=
 =?iso-8859-1?Q?Y2AwV8xJwq1ikLAjYmicbr14UDhtOtcjVfsVLn4MZC5fGsIOSwPtOayZbY?=
 =?iso-8859-1?Q?NkbIXaUCJJk5ESsJDKGOaQEoOmaT/xilpGUwYFTMoV7UeSmslSI8XQKQnt?=
 =?iso-8859-1?Q?E0ZLQ/+TP243Tapw/hQonAraJj3C0vsE95zg7Nm43oozRNmc3N+UoaTRan?=
 =?iso-8859-1?Q?u2ngllXszMwALs1a++L4ao4GkmMQmnqN3GWSx5Cqaly9AQG+mY8DrRSX/t?=
 =?iso-8859-1?Q?kf1U8yA28tgv3I4UMqILKzKHCJ4bKs8lz2DLPfoWWqXNCAChAQgHDs4aMi?=
 =?iso-8859-1?Q?/2Whv8GKSl1CnJIR9madVvKmrJRHIvIt02vplWkd6GG68b/XjSYBQYlG/r?=
 =?iso-8859-1?Q?ZA4KMUCTXJb+sVF5Uxjlu8eJjIVyUOrfWwpDxjWX/jf1aGu0M9DeY9tJ/6?=
 =?iso-8859-1?Q?ENZUpnd6Ddi/scZk281dKLbkSNVqtkqW2TMoHr4thi3z+Ow4L7SK50GEvd?=
 =?iso-8859-1?Q?vfhmfLS/YG2ioAq6d36HLmA81lZx3sespl7wwW10DZp9w76GHNCKy+Vvz1?=
 =?iso-8859-1?Q?aTh2Bh0xD45yAZ6atvWXMNZnVMTJ74qBD4v6lecfFH5Mgx8Tcv5Ey4FV/v?=
 =?iso-8859-1?Q?gnuJFI/r/NUvPM542K4RWc7ohHbqzY7yIKZuxypBH0dv6Is/QZA/uw+b+y?=
 =?iso-8859-1?Q?7YdL1WzCo0TELM6HYbfdjrMH75NX+E/47jrHu0dZXXbA8LQZS8+56I7Mrp?=
 =?iso-8859-1?Q?sXgFT4cXX0Nu5P5LPSbXmI2LuxzEZcAvf/LHt3is+xwoJeJpRDlLVAV6cH?=
 =?iso-8859-1?Q?gtb6mQl15joNa+iMSMbac9vGn4+ocF9HIrXCvNEcxFKRvGPVIEuYtBgua5?=
 =?iso-8859-1?Q?myCRZkpAcybGYQeATH9rWGvjONx9YdYW8EQ/1bMx6YWbGzGnXYOrH5M7Fz?=
 =?iso-8859-1?Q?M9jAa0h7kxYw7TGDEvnnaWbWdDCAvz63G/QBCIGzFMYDigqPMCzXwpgBRX?=
 =?iso-8859-1?Q?GtsciC2KNL7JKq6VOQ/YslIoyTjagMn2BpBtDFSN2E1Y721Wvk2l1GhM1E?=
 =?iso-8859-1?Q?jGUtv0s+z5szdbmi6XyLiqB54m9eGhZVNL58whQ2HSiIy7yrW0rj8EtKf6?=
 =?iso-8859-1?Q?ChcncuJLjA3qV8DniiMOWbc8lXzAT01HaKi9qEvQAiOIgv5eVmDVzGYvWW?=
 =?iso-8859-1?Q?RMXGvgTVkmkmH4Nh3WZz68rmFhL5yDLGbbli4htODnzeNzxWVDvIj5u6JZ?=
 =?iso-8859-1?Q?kb7HB/5eWuPWv7g0UP7GJIQsxkoDy5FbVn/AUGWPVIuIRUpkij5JYTFEBj?=
 =?iso-8859-1?Q?ie+nAqbl4LVNeSJ5CsCPd64NPel2q6HlimxEMlK3bBfVz2+bqp2b66sGxe?=
 =?iso-8859-1?Q?jG9r/e/er0Giqdifr5UBaZectT0pEYAQBrWL4fLXgZow=3D=3D?=
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)(1800799024)(42112799006)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?5JXmu/nSPn6b/EMNdpj2XtLBHmDNmXnpXbmjM7wEzhtWuRA+Y7t3fQ9oaA?=
 =?iso-8859-1?Q?x//5flUTs6tk5u/kRLv3CjMezgp+4N03yC+lgiT+A6ZG/NlQ8f3VouD19d?=
 =?iso-8859-1?Q?On8CzVbrqxNleaO2Z+Z6t4L88VxmZdN4n3zrkHuQCe9ASd58B9sF2CY/6z?=
 =?iso-8859-1?Q?gOLr9cn/N5dHIRFuKTs9qADZOs+uObm+g5BYx72Dlyb/Op59ZZ6uxYL4pe?=
 =?iso-8859-1?Q?v/gIWbbnkL2h7xemAqxIdriQ+Lvp5vOWYrUQ1G3C03lGAEm64sv9bEtHJh?=
 =?iso-8859-1?Q?R6r9NdKdacbmVgjplHAh9BkpnaUciLsYoK4wqnIYOvvuChTOWmz6/yPP5F?=
 =?iso-8859-1?Q?t6V3C1JHw7Ek4/yGgBaCFtioVbaq1KoqQnITI3RGs0IUKvB1p4OlQk7FFo?=
 =?iso-8859-1?Q?zNi6mrcl0/dD6byrhuyX9eKx3sHC74xW+fUn6YWFhTDlkstdpTJXGOSHOw?=
 =?iso-8859-1?Q?CMjbH414YRou2a2oQazDZueFW5aTHPPuIzpCs+2fT+M6CtUNsFP7+GTkmm?=
 =?iso-8859-1?Q?lVBPFF0Zz6POwRfXy1XKA9srHuFjheDoKGIp/nPV9rePvZCWfdhYM+10BU?=
 =?iso-8859-1?Q?AlAbCgQ9b6S1PyuFhYuZz8uH/oOdreLWpjzdgNqdE5xUom0nvSss4WHJKz?=
 =?iso-8859-1?Q?F+XrUesyz7UxBsE+DWvCZmySPRv0WJSPGw3GpsQihdICzfiQygzwmyawzB?=
 =?iso-8859-1?Q?Ocb7NUhplTWPeW3/dwo2sj1Kl3G65kQd1+vorSFPvjUZa0wh6oAc+UozTe?=
 =?iso-8859-1?Q?XxJeY71tSKfjeVIbb4TMS+WQpOsvBsrEFuXARuTsTnUDw86Yq3TihXobtx?=
 =?iso-8859-1?Q?8Wx/1mSwluB9ZD//aMPThwY5bfPfTC0YnqhsvwyXfvqadFhSgOWGBF6yiU?=
 =?iso-8859-1?Q?65RUxGtmAdc0pebCcdZbOc8BbEvqBS9ADpo4mDYVESADTBYZ9koEXjTKrq?=
 =?iso-8859-1?Q?FOET8B0ON8HwJo/sk48zxMtapfMuOyheJTkFzt4BaqZ+2kmqxrN4dgVCYv?=
 =?iso-8859-1?Q?pW6/CyJxWr2mGuAxeJj3mpCxEYGmWcW++mRCH+uAdPsxpMzGQb9NEoHVeb?=
 =?iso-8859-1?Q?Gk7rmkAhUPGMHI1Zup2R2vFj1fjNF7gP5+a9JJOF61+N3R1iRL4dh5k+Vc?=
 =?iso-8859-1?Q?PcDZhPizDuNQV9Lut5bsvmf2aDRXVhyxY4Cjkn1IMNtwRoEQfhVoGTmnI2?=
 =?iso-8859-1?Q?+37iFVwlc51ONeSE71oEmSTRutVwyB86iaen5SIuNRfm69WiZO9eHZGum1?=
 =?iso-8859-1?Q?oYtBizl45d4HCOgPKHlsvTlYcf46VMTgKNfCdXKc455ISt6lo0hnCIMXZg?=
 =?iso-8859-1?Q?+bA3G4J72ukunwWERlyuaAkzwa1CL2vGKUdF7Z/2ZkTQSRfGqiKEnXMl1S?=
 =?iso-8859-1?Q?wu92BaamUwzmY/lLtujfK20QgPk7Ost2cUMFFCQkywRheMvxsKpc2/hizW?=
 =?iso-8859-1?Q?aVjMW3Gtj1lUG7H4U+mYpte4Rj7AtPfanPLj4HOEfWFrWp1v+QLuCvthQS?=
 =?iso-8859-1?Q?l9ghWTckgd+N9s54lHjcR6F8MNbtDgbzN1K2XsFgKPVvHvxGaLigo2jUV3?=
 =?iso-8859-1?Q?jTewMFBozGoHSwi5oEqG/5T/CcbFhrYJb9wldvtpNiZZrisKnWKJH6LErs?=
 =?iso-8859-1?Q?99jCUO4PiteDrt3iqSWwAiUGv9xu9wFj8o7GDOv/IJ+LiqTM35Op4HQg?=
 =?iso-8859-1?Q?=3D=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: 4a9179e9-ae8a-4db6-56c4-08dde4f02ce1
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Aug 2025 22:30:35.2600
 (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: UTYPQ5FaZoNuCZsRBvKBMgk19EeBBOHu1gWc++8b90eXUvhULV06pkMuZe00mbd/vE0Yp5dV4eZwKMvA9Lf2eBVB9z/q/gtmDoc6SOvRD4c=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR03MB9521


Hi,

Leonid Komarianskyi <Leonid_Komarianskyi@epam.com> writes:

> The do_IRQ() function is the main handler for processing IRQs.

but you are making change to gic_interrupt() function... I think you
need to update the commit message and subject.

> Currently, due to restrictive checks, it does not process interrupt
> numbers greater than 1024. This patch updates the condition to allow

But check reads "irq < 1020"...

> the handling of interrupts from the eSPI range.
>

With commit message fixed:

Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
>
> ---
> Changes in V2:
> - no changes
>
> Changes in V3:
> - no changes
> ---
>  xen/arch/arm/gic.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
> index b88237ccda..634b77c987 100644
> --- a/xen/arch/arm/gic.c
> +++ b/xen/arch/arm/gic.c
> @@ -341,7 +341,7 @@ void gic_interrupt(struct cpu_user_regs *regs, int is=
_fiq)
>          /* Reading IRQ will ACK it */
>          irq =3D gic_hw_ops->read_irq();
> =20
> -        if ( likely(irq >=3D GIC_SGI_STATIC_MAX && irq < 1020) )
> +        if ( likely(irq >=3D GIC_SGI_STATIC_MAX && irq < 1020) || is_esp=
i(irq) )
>          {
>              isb();
>              do_IRQ(regs, irq, is_fiq);

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 22:41:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 22:41:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095272.1450343 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ur2Lk-0007cg-NN; Tue, 26 Aug 2025 22:41:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095272.1450343; Tue, 26 Aug 2025 22:41: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 1ur2Lk-0007cZ-Kn; Tue, 26 Aug 2025 22:41:08 +0000
Received: by outflank-mailman (input) for mailman id 1095272;
 Tue, 26 Aug 2025 22:41:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=VNE8=3G=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1ur2Lj-0007cN-Hk
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 22:41:07 +0000
Received: from AM0PR83CU005.outbound.protection.outlook.com
 (mail-westeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c201::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id be470914-82cd-11f0-b898-0df219b8e170;
 Wed, 27 Aug 2025 00:41:02 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by AS4PR03MB8206.eurprd03.prod.outlook.com
 (2603:10a6:20b:4f9::19) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.17; Tue, 26 Aug
 2025 22:40:59 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9052.019; Tue, 26 Aug 2025
 22:40: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>
X-Inumbo-ID: be470914-82cd-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hFN2QbJ4X76NMzw458roWY7qy6qRXsDJ2uotctHGbXWlpj6806PeJPMBqwIjpEAA23Q1kWOGq2GSK5kxDrymJSdx7QbifREseeyCvmWLKYIeoxgzeMvFBfR+WNAqgbsSZebsRM8MebK2wVnCZQqXuvmmJEgS/bufzcZMhmp2CdZEhsBe/Hnc5D9BefBpfKnofcGD41/bANdIsCFUnZsePwC0vzPkb9DtQwuIl8ZcJhD856ifRdKlufOVhp+wTirHjLcr5BL21fSryIy+tZ9Yd7DNUJOlQWt9oDZxmlyPexdHXZo4bthEPS0rUFw8sVteAB3MsvSRuXespgWVLfj0VQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=YRvfQ2XxoHuMc6Vi9GpuWqcpvYaSzVUYm+U34FwBgbs=;
 b=lmfosPIqphUG3vSUJKbd9FPsjsf5CZiCN2uz41i5KvukumyhGndoKQwjEsG9ZwO44B+tbrsv1EptVjt7Tsmsy6LfNLppJW8O7jO7t8W8TDFkwd4UZuBu1HvtIEm8YIRDdA2M4PJ9Q+elR0WdPfE4AOXXx6cD65WFguqzHLXZnkY1qheWeDaHbVdZ1AqdqWBC+BaJaVFxXtCtiPq9rHNVipBvKTybUNov0fA8wW0KSFnAchvqRnc9BJSAsEczDTvO4kFSbV6KLomE51VpNxKVLTvwPkqPKJzntHbphGweBRKtfSp4qJ9XKU+dHlcnYAvSkcD1x/QNFxYp0c7JPSvEuQ==
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=YRvfQ2XxoHuMc6Vi9GpuWqcpvYaSzVUYm+U34FwBgbs=;
 b=nIeEZt+XyYnukiwIKXCw5w/yBtcj9s04EQdGGpVVZpZaWr0Zv7KIKM1jdcVfnsYxFWLGT7bkeBJn/tge2Smxi5BXHzGUQ1BgnQ1A6aqZ1d9eN4ZcUXbaj2HowE3LDXFAbtvXnRVs6k1DwGjonfeNbFDg6XJsP2QIwyx7D7jR7gjp0t+x7q6k3nGVMwH1JdaCIUQXGav1fExLf0RGlqIQPfolC2oHhynHrhjwbCQmK4gMTPKcirJnPkBZ/zBe2Lx5GFdzqmdkCNm4571UHG7Il5BFKXOD5MwxoRIHTeBwFFr+90FJprzRkWU7HXYfV/egM+4NuP3M6d/so8hL7NWe0A==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"olekstysh@gmail.com" <olekstysh@gmail.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v3 07/11] xen/arm: gicv3: modify ICH_LR_PHYSICAL_MASK to
 allow eSPI processing
Thread-Topic: [PATCH v3 07/11] xen/arm: gicv3: modify ICH_LR_PHYSICAL_MASK to
 allow eSPI processing
Thread-Index: AQHcFpKAYFxN4fU1Wk6sdm7zcMlbgA==
Date: Tue, 26 Aug 2025 22:40:59 +0000
Message-ID: <87frdd4sg5.fsf@epam.com>
References: <cover.1756216942.git.leonid_komarianskyi@epam.com>
	<20a8af6879ef06af92d3cd1e0519c406792ca088.1756216943.git.leonid_komarianskyi@epam.com>
In-Reply-To:
 <20a8af6879ef06af92d3cd1e0519c406792ca088.1756216943.git.leonid_komarianskyi@epam.com>
	(Leonid Komarianskyi's message of "Tue, 26 Aug 2025 14:05:38 +0000")
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_|AS4PR03MB8206:EE_
x-ms-office365-filtering-correlation-id: 447d5042-e538-44a8-4668-08dde4f1a0ce
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|42112799006|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?/b3gkTXSsqlFiXcEGYT+L9rC8Cs3a1DBiO5m2MJH4XmZgGybzYIRiwSJEz?=
 =?iso-8859-1?Q?pY2E9x8ryQHYIu1T55rhST//TSjzVBAcAAh5VdHvGtjz8yEqtZUo99m3T/?=
 =?iso-8859-1?Q?2ed1WYXTZvIUeIbgejkwC5oyW1D0DXBIPBfh3XCZ5yqjnX3AD7Pso0Sf8f?=
 =?iso-8859-1?Q?lKKC7ALiOuavaZRXK0tR38beTH4fbXBpLV3w1yrj/hOaLao0BG3pKV60PI?=
 =?iso-8859-1?Q?jvOs5ScJ2PM6ACmD81EOkGVe0+wagqQEIJjT1xmNhkJJPtxQFT8xT64iM+?=
 =?iso-8859-1?Q?sorOn5wQOVddGmvgTYVKpcgMxQQaWPfla9HlnAE8F60wR9f9kpQM1YlzK0?=
 =?iso-8859-1?Q?lnxrCrMuROqkNWhbzgtUU1A18BkAPi5IAOfIXyFrjS+k2wElyiTDLbhXYu?=
 =?iso-8859-1?Q?AaWsLUwhWZNioSxZ3RsgbLoQvAOtwIdCtMaVYijS6vE0MrzrHpClu+5C60?=
 =?iso-8859-1?Q?iign4/JHEOjyZZ7scg468McyPQT1ZwUsB3YzYPjNBcaQUangZkeDAHVORY?=
 =?iso-8859-1?Q?LDxQY4/MI/FFhNFdurUNRNzUiydYb1i4pvpebQ6tNZbdS0WGTrSLWt3bsa?=
 =?iso-8859-1?Q?7VJaUkqVcLC1Q7cxl/N/Wa94Ig/qKqQXOf7sOG6FlJgjdnBwKhfG40MFb3?=
 =?iso-8859-1?Q?xQoZ4uYFgcnXEa/HHIbhEDzYc8t5bL4HRtIE6d77n3eCWhGJQGJdCEDNXB?=
 =?iso-8859-1?Q?dL8nCWWKrxm6LT9dRoLaXo1xDpSmag4/0mF3fICL2g0ZROOvFjU1K90a8z?=
 =?iso-8859-1?Q?uOcOFwDcqicSHE/H0/iPgcuXjNyAziViydPGYo24YhLzEyHbIjP28YjxzX?=
 =?iso-8859-1?Q?ixpwMMHekyI1zLM9EwBiDGfbV6zkY+DqjKuGWkm6cTLG//zcPRzdmol+/g?=
 =?iso-8859-1?Q?MCb2oZoXtUcuLJjQ9o5RfCgqjaa0njNyfACnW2ANelcJjbp1F8aW8sZ0CB?=
 =?iso-8859-1?Q?p7uWIHZEvYGgTG9/GXgYa3voaYIPcQqWmcZSedZxyADx8j4CFXvOYQNnEL?=
 =?iso-8859-1?Q?khCmIOA0/qVa56mvr45wjBaRCgjkftn4+NViNf/Q+ksAcDSgL8YAdd1ofB?=
 =?iso-8859-1?Q?NUZpUiV6K7jW2EqFXfj70kIpyC8MI3AWBfMCfNdRlib5qlauiWwkRg6sJM?=
 =?iso-8859-1?Q?xj7eFQkg9kZAYLwZ9rNtmzNC0uD6+5935SVwbE6C27l8QfExqxYI46/LPr?=
 =?iso-8859-1?Q?Ty1xWqf2KTtz5IODcu5IIiBa795XwylTf6yJmN5j9swvuJkoftiFmn4gRz?=
 =?iso-8859-1?Q?haZlCgGIt/GuERcL//hnRAj7Foy3fcvnPvVmi74kC28ZNzdtFqHvKfKgqC?=
 =?iso-8859-1?Q?JUYmHzDhQC6ezdaxq5kCIQcP8b6JsX4f7m/IBlfU1/hK0vSFfRuX3nS1wi?=
 =?iso-8859-1?Q?dn2saucDMPEp1592cqCQDeJ1p3feduB5V0kqTzmcspIMclWLTOy8CdDXtx?=
 =?iso-8859-1?Q?oUS8vYEF0sYteGgB8t3jg9EfEj78cZUCOifaWFNUfSIKIq/a9lYcxCm9ZY?=
 =?iso-8859-1?Q?6ZqMwG73+HWCXymCrZQYWlSc8rodoqh5Wd2CbtPIbQUA=3D=3D?=
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)(1800799024)(376014)(42112799006)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?DvH0EaJmW6ech1wSDeByYkoYRzw5HkK7ByOph75tVT/YRZNWKpoQ5okKxy?=
 =?iso-8859-1?Q?gLqb8AEfF3SMKmFlAo2/ld+ygz1AHKLSiOB4sDp/4fymIt0xb0viEp60O9?=
 =?iso-8859-1?Q?zwTWuf9iypoTMWJI1w3hZHuqtXL5Y2FyGuiz4WZVjmnyp4JjzloJjpbWfl?=
 =?iso-8859-1?Q?R797AbUKRIcGwpCXhNc6CQ/yPGJ/cVveA29/v8hEbxP4iBd//6kxNwPHjL?=
 =?iso-8859-1?Q?DjIyIJA3NFoTcR+sNcsqdmyG6J5VwthlkxZEer57C+R5ztPLi96oHdUO8E?=
 =?iso-8859-1?Q?srkLwbqs2rrlk69mmRFepxlkk81LEZJnRXRnMRIdQURV29F4oUZvRFsCr0?=
 =?iso-8859-1?Q?LBmDUu8cZ2eEuvFYmN1R4pCYZbg76y6a3VYyDTPqN/8hhdRGX8pAbamilv?=
 =?iso-8859-1?Q?z2l6iOH4Xg4iiuoaIj7pbxew+8syqtTi/9CUhjaIXpTE4YVo1bbe2rE9nJ?=
 =?iso-8859-1?Q?gZV1GNUhqFzxpVhQVwdO1tkSiRv9el/gQtq15VdHATwxI2Wfh8T2oBfRzI?=
 =?iso-8859-1?Q?uTfmmckwrV0iJXr5RWXrUUU8FOAGGptX6fpGY3aCZjpO+9Z552oTDyUS7T?=
 =?iso-8859-1?Q?ehXCmOP4nGKy9GkAn3LUOKKfHtnNz++X40ucsuDnbgcEqZHJ+pxn8Lffzb?=
 =?iso-8859-1?Q?5WNnHpm2c23qpLo1WmwUgE/6z7JhtoOQ/VqDzJofnRZQuEJZBLASYiUjYY?=
 =?iso-8859-1?Q?a8UaFMBiMvAE8wQw6dDaJ/XOkm8D2laeHwi1rbuFhYk0OnncsQadH8lGtP?=
 =?iso-8859-1?Q?TL0vCpDFi+xOZdBgXvfCKy6yNmcTqQ8nzcXWk+VeaiX+568z5Y7BcSxpOr?=
 =?iso-8859-1?Q?yYLVK2Z2LcjdqCwfew6Clyatm/bjLAN7vfxJczuOKNojJmc/6WngPsjQcP?=
 =?iso-8859-1?Q?JjkKn8qM+NA+q7wwAEAOLr7agFhjxnbyrIU3T4St0fIME2Pci5OCRicD86?=
 =?iso-8859-1?Q?1l/qxa2QmNB2RK7oP7XiLTOCYApICMW3K/agMZalUwDNfRuMcCFiTZ58zj?=
 =?iso-8859-1?Q?FTspDWs7YtvTLLpLaszQR0Cm9WOuKaEpl3lT5Z4dp+FYQuCSZU+dGmcFrB?=
 =?iso-8859-1?Q?waN9xd2msjisFoaUj7WlKh048HifB4hhiw9YAn5ilHcyFIBxsFdTBd/C0G?=
 =?iso-8859-1?Q?jChXXZ12AoptP+FSPArO+WRw07xlRsMejmGp13nXCajXnl0nydwDt4+Aeo?=
 =?iso-8859-1?Q?5B4SmkBYPVacFa/LeJ/DwKYZKS+aIL1+ntZSUNOgyMBWsumZaKdPeUJZ/w?=
 =?iso-8859-1?Q?81IIc4cHruAsvYaOWdCpqmlBydvEffxrEi3mafyXORAG+pm6YOdXxDBBMn?=
 =?iso-8859-1?Q?XCQeH9pXOKv/pYDdhUh7NHYCf0JxnevRuLD0v/k6vRzkCPrwwufKmuylMT?=
 =?iso-8859-1?Q?gaMpAztWeQencx1PCbYZkKvAFPJfeFfaXu3wIm+lUKvVhIDdupI4ENikt1?=
 =?iso-8859-1?Q?Nyq+bFOQTcJY+LceYsvObygiCJyBQ2+RXq80CCZbkjpTUs5pd0lnYsvqco?=
 =?iso-8859-1?Q?HvbnJGPkNR5xdIKr0l4nX43Dwg8+JND2lTNsvXtXqLGZutwvx4+tuoP+J/?=
 =?iso-8859-1?Q?kIOnhPkb450lxLZTFSG9NzxpUpfFyiS5gpMA1bo6lB6NunnD/5RNFcTs7P?=
 =?iso-8859-1?Q?kyt/bvePilY1vl0sKOd4/XVQyXRTrv0XeOYbvrdKXD9TA8vXR9WEtMOw?=
 =?iso-8859-1?Q?=3D=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: 447d5042-e538-44a8-4668-08dde4f1a0ce
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Aug 2025 22:40:59.2341
 (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: f56MsRkoq8qiNc9DO37Xcjsl0xgSePHjonxSngO+5b8s9NIkesCtondu5EzQZByXb0c6aS3XOK/tr7lpifDOGWL8G21A/AWSo3/LrFlDfIw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR03MB8206


Leonid Komarianskyi <Leonid_Komarianskyi@epam.com> writes:

> To properly deactivate guest interrupts and allow them to be retriggered
> after the initial trigger, the LR needs to be updated. The current
> implementation ignores interrupts outside the range specified by the mask
> 0x3FF, which only covers IRQ numbers up to 1023. To enable processing of
> eSPI interrupts, this patch updates the mask to 0x13FF.
>
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>

Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

>
> ---
> Changes in V2:
> - remove unnecessary CONFIG_GICV3_ESPI ifdef guard
>
> Changes in V3:
> - no changes
> ---
>  xen/arch/arm/include/asm/gic_v3_defs.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/xen/arch/arm/include/asm/gic_v3_defs.h b/xen/arch/arm/includ=
e/asm/gic_v3_defs.h
> index d38a3d08c7..ca403131bd 100644
> --- a/xen/arch/arm/include/asm/gic_v3_defs.h
> +++ b/xen/arch/arm/include/asm/gic_v3_defs.h
> @@ -207,7 +207,7 @@
>  #define ICH_LR_VIRTUAL_SHIFT         0
>  #define ICH_LR_CPUID_MASK            0x7
>  #define ICH_LR_CPUID_SHIFT           10
> -#define ICH_LR_PHYSICAL_MASK         0x3ff
> +#define ICH_LR_PHYSICAL_MASK         0x13ff
>  #define ICH_LR_PHYSICAL_SHIFT        32
>  #define ICH_LR_STATE_MASK            0x3
>  #define ICH_LR_STATE_SHIFT           62

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 23:00:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 23:00:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095282.1450354 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ur2ep-00025D-9Y; Tue, 26 Aug 2025 23:00:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095282.1450354; Tue, 26 Aug 2025 23:00: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 1ur2ep-000256-5G; Tue, 26 Aug 2025 23:00:51 +0000
Received: by outflank-mailman (input) for mailman id 1095282;
 Tue, 26 Aug 2025 23:00:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=VNE8=3G=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1ur2en-000250-EY
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 23:00:49 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7e8c8333-82d0-11f0-b898-0df219b8e170;
 Wed, 27 Aug 2025 01:00:43 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by AS8PR03MB9793.eurprd03.prod.outlook.com
 (2603:10a6:20b:61b::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Tue, 26 Aug
 2025 23:00:41 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9052.019; Tue, 26 Aug 2025
 23:00: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>
X-Inumbo-ID: 7e8c8333-82d0-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=sYaxVXxcT6TaKKPspm4okR5Krr0Lej0RQF2uIhrV0WvFv7TwV4K3J5kj5YyEpedzdwm/fV6/fle0WJa0lsvyvdXWQwEQ6KzhnSuTK51/bDZnE6IggLrvwwQ5Dr1rJlIoFVOoYPRnYjYjjM3POvLypu9fCWiRywy5jeqXM2RP7ZYKxrcaQeWMoFhimROiVDxjpIOMhFRxdrkuFuMdjriKqFxmmNy9226uCkydHfMc7F26DV8GfMn/7Rtta41ECaDHhIb3Ym+LFYIOU5PnLm09XZb/bKRwkBtUWx0JYQvn07TeF386FwdUVWwSKqRkrU/Ofop6dRcDYI0pwTLL0dkwAw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=mmkSNS9ylKn0b7xKfSxRa/jtz6WLT5bDhEbbJdAP8vY=;
 b=mdYStMN0jmpTRLex7Bh4qHVmsJG8WCIjALVnOwv+kuRgmjT2WWUpufXlxzVypU9fHJkGrcabOpQicn3iSTFzqPAl0nOBGFn3nEdJ/rv9N/n58eK19JDXcsd1JbXiCxsruxaXem3wJ2YqgTzVH0Poy+4Ip0GmgweWAl9LMISL6KoargsAdpeYgNo85yDhrab96AXkr9Qmqaot1t/R+jj33NR2ZF2/GRk4wLxqD3L+x7tfwAgSSb4iN5IM+7eiXg9hXsXeOrR4hMBG5/i7FxP0ZirhVhXcn8qXLihstAWKutzxM1kiX8feiusGKshvyp1bScYw9TvvNCJvr4oKJf1LrQ==
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=mmkSNS9ylKn0b7xKfSxRa/jtz6WLT5bDhEbbJdAP8vY=;
 b=Pff5hhmqTq8ZBFufdVtCErdAPRv2Sk0X0CO82ZEsHjGJ5jH2N+Md2FWjGD8KshvvdXeyDycOgsEBmJuugLGtPxMfliTsQ5lQ+hmq7OWDLvRX2KWzsbdJn8IQWYWCZ9+EkCyjp8DrGb7CV2n9Q0M6i4LL1fYYrhgBN+JzKDZDGRJlp33NuUkvlEBZVNZNvb/wVbU2hd41PUKcl2B1oqZfoRby+2ADVxxerRh2G1f61RJ+fivmSMlRNreSWw6grE93X+RXRoe74vkjImNgmQm7wm3KtnUweIsFfXgDGcdE5USI+9y4xb4+EqDpLbvoB5zksURbEqcL1t+gjllZy4BRNg==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"olekstysh@gmail.com" <olekstysh@gmail.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v3 08/11] xen/arm: vgic: add resource management for
 extended SPIs
Thread-Topic: [PATCH v3 08/11] xen/arm: vgic: add resource management for
 extended SPIs
Thread-Index: AQHcFpKACzOaRjOW50q/bIpnflDhkw==
Date: Tue, 26 Aug 2025 23:00:40 +0000
Message-ID: <87a53l4rjb.fsf@epam.com>
References: <cover.1756216942.git.leonid_komarianskyi@epam.com>
	<88254ec24a25e3d99950fb5041ac6b050aaa1e4a.1756216943.git.leonid_komarianskyi@epam.com>
In-Reply-To:
 <88254ec24a25e3d99950fb5041ac6b050aaa1e4a.1756216943.git.leonid_komarianskyi@epam.com>
	(Leonid Komarianskyi's message of "Tue, 26 Aug 2025 14:05:38 +0000")
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_|AS8PR03MB9793:EE_
x-ms-office365-filtering-correlation-id: 860d6ab6-7db2-4ba3-eb11-08dde4f46136
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|42112799006|376014|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?Dv5txMbKaSpnkRnAy6Lt4ht5YTTv/ANixKonWF7+CS7MZTD92fxHARs1Jj?=
 =?iso-8859-1?Q?kIEiXU3CKMdZpXxD017oNwP0YtaZuqVfalB0lSfQC6FYaGOrT7Di+OUQPc?=
 =?iso-8859-1?Q?gWc/EZVeTNWQV1zQ/pa+evm7DN9RNOGCs/QD5M8Z+dqGaQ92fKtZItwk9d?=
 =?iso-8859-1?Q?RS4e51v+BznnzQlrDh7stKRcMpaOPI9N8Ko2NRgUUj2jjgIgM9X2ohymgs?=
 =?iso-8859-1?Q?qQuOqS6eax3Psj1xjd59kUQvFAFlShLPD76Et2WOs3vadBtj/wheoiiXnW?=
 =?iso-8859-1?Q?iLAAYXu45UOOLAWthJxz89LRtg1vgSx1QbR2UCpeYjIeDSJ0yjj3WW+XUo?=
 =?iso-8859-1?Q?Dw5LQ39e8IGJ5rk8vfwjD7FZAuFykgLx0Afdq7TBDYHMT4slB8/l0OTDTq?=
 =?iso-8859-1?Q?DIiWMbFIECaQZcqUXWP4pWQrxy5/NIlSRo1f/9TJvyR2L5a453/RKQJTRq?=
 =?iso-8859-1?Q?rsn8+5B4E+b5XmPFM4zstuYt7uk2JUiaAw7+y6t/7vgpQi4k4ABOkex+Xj?=
 =?iso-8859-1?Q?ijET1GprDWpuf3jjy60/ANFHyTh3hYWOw0033ez8X60Tb5buHNHHEqche4?=
 =?iso-8859-1?Q?snPy4m3UHx34I83rwpcr2IZwQaIWA60v5cUvc4PG16dDKUf8sh3N5MWFVC?=
 =?iso-8859-1?Q?nGYq7EMLoV/T7L+0Lwh6UQvGcvobdLO6tLIo4q/j1SYxXFuD7XnyRD/e1C?=
 =?iso-8859-1?Q?ZW4NzPhEwZN0kfwjuCo8Ry/5tNYHBDzQ7mn81pPwiujoo2t9pp/xB7f03x?=
 =?iso-8859-1?Q?wQl1vmjnyzvuOGNPTbN2ufiyUYW/9yrg4B2esKNi1bgnptVE48gGrYna4m?=
 =?iso-8859-1?Q?SogCJzAVJJQESWVzXTph57RxnAcirXwb6mZti2YkNSu2obwAX8fTrceQd4?=
 =?iso-8859-1?Q?fdD2UyPmjoTPZkJJykxjIRBa8IcMZT6UmTvXxrDnY+e4Z+nioz6p2crLVt?=
 =?iso-8859-1?Q?tqE3G4d8BLYIUCCz7lkwRsVbkrRvLE+4gxiHS7dAzMCi9z+rYBJXBy+2zY?=
 =?iso-8859-1?Q?nlUP15SKpP8mMfT1PFa3JdXyzGm2B3xf5dRjSl5x5wybFniw6wnqs058LR?=
 =?iso-8859-1?Q?ca/91OKlUkPPRs8l2m4OSAKajwoDeKfSaeUtriDSxbVA0P79rTvtCDA8eh?=
 =?iso-8859-1?Q?6jteYjj4bI/Rz5eYQEhTBOyXA0n/oXB37T1Gt6DZsN0njPixdYJBySBG0W?=
 =?iso-8859-1?Q?ZX/5fuUec9ZptlQZhB9qVVpLt/g8toVLQEUCyZCmlXfkkuI3fufSowVODB?=
 =?iso-8859-1?Q?9jYHoCsGBmJZb1GY6uuX8HK3awaKSai9FzTUSczrdG30KgS2H1LbDsrud4?=
 =?iso-8859-1?Q?jLX0tnbJ5eTA4zc+aLDpPkiX5UNv+qBly57GrRA/X0ZHnxDuje5i6XTfKA?=
 =?iso-8859-1?Q?A15X5E7r0+FW6JZmVaCPyB4W8eBBkDrfUCHxZXrlz2rs0TebJJ2KFUAaX4?=
 =?iso-8859-1?Q?63YK2K3RAfo1DAs8Yt6pPfl/h1CxKqfRwR44IwZmUA5XCOfZc5bQquya0G?=
 =?iso-8859-1?Q?rOL6xc2+hPrQliLnK5KFvgTV2P5apg5YAOPnCG2llgzw=3D=3D?=
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)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?wTIhcjaQH9pd/hILANDAFfpXNZHg6z7aKavEVylqRbikNzEFDbQbkoPQlV?=
 =?iso-8859-1?Q?V9OA8cTUJcZxy1y5ANCt38seiRySwVvhcWNBuR0AeB6wuFxHuFb5m2668e?=
 =?iso-8859-1?Q?zjcLjlQZHHROLu0YsY3NjDNTmVkpXxMjU5zpBOVmiQCd/T7enQaoiyvAVq?=
 =?iso-8859-1?Q?iI9fp3jCg/NLMh6Lnm+9qDZZEy3vG4DwG1PIAcQul6JbnnPd6uWB7wlRso?=
 =?iso-8859-1?Q?1xXfKgH6RGFE87fvO9Wesr0ofYxZGfjxVt77y/6XvPuDTOAIIhq9KzK9PU?=
 =?iso-8859-1?Q?g+zacPmijBJKoI2vTPyV8uuSazT+DstnUn9P1fbz7p9ENZ9+GV3xnI6Uox?=
 =?iso-8859-1?Q?zy/UqMUrvlqdfmbX/UaTJXG98y3M+5pS/UpUM+ZHQNWqcaQzTYpqvqqFkd?=
 =?iso-8859-1?Q?ccbodBi3Q2AOi6U5GsHkoQ6owtB5xNDupU4PV6JA1ubLTbWXcM3Ois8SCa?=
 =?iso-8859-1?Q?d6zH49BsKY4LatrgS+IRmgMEltHLJOqpNrvDdvi4TIEdPgxBhfdvasaNI0?=
 =?iso-8859-1?Q?8aW01oA4C1VKdm804SUw6dwJBXYpsgwI1Z5R5T4zx1/puE61YUqYBhfwqA?=
 =?iso-8859-1?Q?/ebaES5HRrV63rjgwr41rk0eNVOJbOWmnqrow2x8u+hhZCALXO5A7UroVn?=
 =?iso-8859-1?Q?llXhq3oJHEzpKO8wLKVknrnswg/vnDGmPZv8i8X13e16rDMSh8M+OUgkK8?=
 =?iso-8859-1?Q?olBlu7uQPhMcHzqJhow/jtgAiu3NVtdGJjuIeh5XiXqDyi0nXJDUcRnK4h?=
 =?iso-8859-1?Q?oAgJLPf1UKpe3eaBn6EBJnI4vIWyq2A0nnwLnI5wXT55Wuxt1N2pw9qh4G?=
 =?iso-8859-1?Q?qZn1Xn1XV0IPGkoDkKGlMsN5cM7PKuT0Cs3s92UbR4IAzVFcbZgY+JKz/M?=
 =?iso-8859-1?Q?+FJx4yHrq/gWYf+zJ5ga774M/Bke8EKKOXsVtJWXPoaG6FKOWWL56jVHmL?=
 =?iso-8859-1?Q?zgfKHqjzGGaBkS3syBjZU9ex9PwLAVr9K56gSW//E94cJukjRsdoEN9NVA?=
 =?iso-8859-1?Q?bImekdPFmUZFKkjkJ4GrMP3DR/Bg3DWt8m3fktYux2bDuQyaKdMV5N+koq?=
 =?iso-8859-1?Q?jY+dCnl+LWt0ElihMK2nD0wtQKO8YBiOwke54uphv3cVUnEhldz2geLnp/?=
 =?iso-8859-1?Q?B3EhU4IQ6g01A5EmElMnd4Ck7bVTbWccmd3dL1PzQYF39t19dpaEKuF7ow?=
 =?iso-8859-1?Q?sUfSW7BfCr96hx6hEFWvUzmYWC5Bivg/HnE14p7H5yAMz77M8otedL1Lmw?=
 =?iso-8859-1?Q?Lqr2yeldWGkny5qhd0c+kObxHskhWnI3mjx1K0BpkH0It2xLELN9D0Pttr?=
 =?iso-8859-1?Q?SQ/A7G1SnZmPk8hhKZAGzNZoQ+AKjjALCwjYqFXVyjhd7yPkkeJaTcV36m?=
 =?iso-8859-1?Q?6mUkgTOCiasLvrUrdXFJ2KNVIfRbneHT6aSq5gfbc7SxdJT2/PERpNygIG?=
 =?iso-8859-1?Q?u2CYbgK2YudxW1cLUP2nBFz4J7aRUvDlUOwz+/vy9wSSMn2rI+WgX2Yy5v?=
 =?iso-8859-1?Q?EU/tp0NYxE7HO+Rd/9T5PlrZROZdGEv6iJGBJtTBIKwFPF0y/1cdQdom4X?=
 =?iso-8859-1?Q?yB5Bi1m5GCMKqXUN9N9V12D0gOhu3Q7MxS9ocurzGe6OCrzFOd7zArmBbd?=
 =?iso-8859-1?Q?86WfuBODS0lK6EPp4H+qFpgibb54r7kBEzwKZLDsKl0phPucf1lfEXGw?=
 =?iso-8859-1?Q?=3D=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: 860d6ab6-7db2-4ba3-eb11-08dde4f46136
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Aug 2025 23:00:41.0003
 (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: GP+ft2TrjRmDC2Judilkr4hBYbYUXQp0pmq9fTXd/ZA8FActryZbLWUe6jaekXvyCZJoL38FFWeAmmw71CVmoOy16g4ZypsK0hJ5z8n1348=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB9793


Hi Leonid,

Leonid Komarianskyi <Leonid_Komarianskyi@epam.com> writes:

> This change introduces resource management in the VGIC to handle
> extended SPIs introduced in GICv3.1. The pending_irqs and
> allocated_irqs arrays are resized to support the required
> number of eSPIs, based on what is supported by the hardware and
> requested by the guest. A new field, ext_shared_irqs, is added
> to the VGIC structure to store information about eSPIs, similar
> to how shared_irqs is used for regular SPIs.
>
> Since the eSPI range starts at INTID 4096 and INTIDs between 1025
> and 4095 are reserved, helper macros are introduced to simplify the
> transformation of indices and to enable easier access to eSPI-specific
> resources. These changes prepare the VGIC for processing eSPIs as
> required by future functionality.
>
> The initialization and deinitialization paths for vgic have been updated
> to allocate and free these resources appropriately. Additionally,
> updated handling of INTIDs greater than 1024, passed from the toolstack
> during domain creation, and verification logic ensures only valid SPI or
> eSPI INTIDs are used.
>
> The existing SPI behavior remains unaffected when guests do not request
> eSPIs, GIC hardware does not support them, or the CONFIG_GICV3_ESPI
> option is disabled.
>
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
>
> ---
> Changes in V2:
> - change is_espi_rank to is_valid_espi_rank to verify whether the array
>   element ext_shared_irqs exists. The previous version, is_espi_rank,
>   only checked if the rank index was less than the maximum possible eSPI
>   rank index, but this could potentially result in accessing a
>   non-existing array element. To address this, is_valid_espi_rank was
>   introduced, which ensures that the required eSPI rank exists
> - move gic_number_espis to
>   xen/arm: gicv3: implement handling of GICv3.1 eSPI
> - update vgic_is_valid_irq checks to allow operating with eSPIs
> - remove redundant newline in vgic_allocate_virq
>
> Changes in V3:
> - fixed formatting for lines with more than 80 symbols
> - introduced helper functions to be able to use stubs in case of
>   CONFIG_GICV3_ESPI disabled, and as a result, reduce the number of
>   #ifdefs
> - fixed checks for nr_spis in domain_vgic_init
> - updated comment about nr_spis adjustments with dom0less mention
> - moved comment with additional explanations before checks
> - used unsigned int for indexes since they cannot be negative
> - removed unnecessary parentheses
> - move vgic_ext_rank_offset to the below ifdef guard, to reduce the
>   number of ifdefs
> ---
>  xen/arch/arm/include/asm/vgic.h |  18 +++
>  xen/arch/arm/vgic.c             | 212 +++++++++++++++++++++++++++++++-
>  2 files changed, 227 insertions(+), 3 deletions(-)
>
> diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/v=
gic.h
> index 9f437e9838..248b5869e1 100644
> --- a/xen/arch/arm/include/asm/vgic.h
> +++ b/xen/arch/arm/include/asm/vgic.h
> @@ -146,6 +146,10 @@ struct vgic_dist {
>      int nr_spis; /* Number of SPIs */
>      unsigned long *allocated_irqs; /* bitmap of IRQs allocated */
>      struct vgic_irq_rank *shared_irqs;
> +#ifdef CONFIG_GICV3_ESPI
> +    struct vgic_irq_rank *ext_shared_irqs;
> +    int nr_espis; /* Number of extended SPIs */
> +#endif
>      /*
>       * SPIs are domain global, SGIs and PPIs are per-VCPU and stored in
>       * struct arch_vcpu.
> @@ -243,6 +247,14 @@ struct vgic_ops {
>  /* Number of ranks of interrupt registers for a domain */
>  #define DOMAIN_NR_RANKS(d) (((d)->arch.vgic.nr_spis+31)/32)
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +#define DOMAIN_NR_EXT_RANKS(d) (((d)->arch.vgic.nr_espis+31)/32)
> +#define EXT_RANK_MIN (ESPI_BASE_INTID/32)
> +#define EXT_RANK_MAX ((ESPI_MAX_INTID+31)/32)
> +#define EXT_RANK_NUM2IDX(num) ((num)-EXT_RANK_MIN)
> +#define EXT_RANK_IDX2NUM(idx) ((idx)+EXT_RANK_MIN)
> +#endif
> +
>  #define vgic_lock(v)   spin_lock_irq(&(v)->domain->arch.vgic.lock)
>  #define vgic_unlock(v) spin_unlock_irq(&(v)->domain->arch.vgic.lock)
> =20
> @@ -302,6 +314,12 @@ extern struct vgic_irq_rank *vgic_rank_offset(struct=
 vcpu *v,
>                                                unsigned int b,
>                                                unsigned int n,
>                                                unsigned int s);
> +#ifdef CONFIG_GICV3_ESPI
> +extern struct vgic_irq_rank *vgic_ext_rank_offset(struct vcpu *v,
> +                                                  unsigned int b,
> +                                                  unsigned int n,
> +                                                  unsigned int s);
> +#endif
>  extern struct vgic_irq_rank *vgic_rank_irq(struct vcpu *v, unsigned int =
irq);
>  extern void vgic_disable_irqs(struct vcpu *v, uint32_t r, unsigned int n=
);
>  extern void vgic_enable_irqs(struct vcpu *v, uint32_t r, unsigned int n)=
;
> diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
> index 2bbf4d99aa..ae4119316f 100644
> --- a/xen/arch/arm/vgic.c
> +++ b/xen/arch/arm/vgic.c
> @@ -27,9 +27,82 @@
> =20
>  bool vgic_is_valid_line(struct domain *d, unsigned int virq)
>  {
> +#ifdef CONFIG_GICV3_ESPI
> +    if ( virq >=3D ESPI_BASE_INTID &&
> +         virq < ESPI_IDX2INTID(d->arch.vgic.nr_espis) )
> +        return true;
> +#endif
> +
>      return virq < vgic_num_irqs(d);
>  }
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +/*
> + * Since eSPI indexes start from 4096 and numbers from 1024 to
> + * 4095 are forbidden, we need to check both lower and upper
> + * limits for ranks.
> + */
> +static inline bool is_valid_espi_rank(struct domain *d, unsigned int ran=
k)
> +{
> +    return ( rank >=3D EXT_RANK_MIN &&
> +             EXT_RANK_NUM2IDX(rank) < DOMAIN_NR_EXT_RANKS(d) );

Looks like you still have unneeded parentheses :)

> +}
> +
> +static inline struct vgic_irq_rank *vgic_get_espi_rank(struct vcpu *v,
> +                                                       unsigned int rank=
)
> +{
> +    return &v->domain->arch.vgic.ext_shared_irqs[EXT_RANK_NUM2IDX(rank)]=
;
> +}
> +
> +static inline bool vgic_reserve_espi_virq(struct domain *d, unsigned int=
 virq)
> +{
> +    return !test_and_set_bit(ESPI_INTID2IDX(virq) + vgic_num_irqs(d),
> +                             d->arch.vgic.allocated_irqs);
> +}
> +
> +static void arch_move_espis(struct vcpu *v)
> +{
> +    const cpumask_t *cpu_mask =3D cpumask_of(v->processor);
> +    struct domain *d =3D v->domain;
> +    struct pending_irq *p;
> +    struct vcpu *v_target;
> +    unsigned int i;
> +
> +    for ( i =3D ESPI_BASE_INTID;
> +          i < EXT_RANK_IDX2NUM(d->arch.vgic.nr_espis); i++ )
> +    {
> +        v_target =3D vgic_get_target_vcpu(v, i);
> +        p =3D irq_to_pending(v_target, i);
> +
> +        if ( v_target =3D=3D v && !test_bit(GIC_IRQ_GUEST_MIGRATING, &p-=
>status) )
> +            irq_set_affinity(p->desc, cpu_mask);
> +    }
> +}
> +#else
> +static inline bool is_valid_espi_rank(struct domain *d, unsigned int ran=
k)
> +{
> +    return false;
> +}
> +
> +/*
> + * This function is stub and will not be called if CONFIG_GICV3_ESPI=3Dn=
,
> + * because in this case, is_valid_espi_rank will always return false.
> + */
> +static inline struct vgic_irq_rank *vgic_get_espi_rank(struct vcpu *v,
> +                                                       unsigned int rank=
)
> +{
> +    ASSERT_UNREACHABLE();
> +    return NULL;
> +}
> +
> +static inline bool vgic_reserve_espi_virq(struct domain *d, unsigned int=
 virq)
> +{
> +    return false;
> +}
> +
> +static void arch_move_espis(struct vcpu *v) { }
> +#endif
> +
>  static inline struct vgic_irq_rank *vgic_get_rank(struct vcpu *v,
>                                                    unsigned int rank)
>  {
> @@ -37,6 +110,8 @@ static inline struct vgic_irq_rank *vgic_get_rank(stru=
ct vcpu *v,
>          return v->arch.vgic.private_irqs;
>      else if ( rank <=3D DOMAIN_NR_RANKS(v->domain) )
>          return &v->domain->arch.vgic.shared_irqs[rank - 1];
> +    else if ( is_valid_espi_rank(v->domain, rank) )
> +        return vgic_get_espi_rank(v, rank);
>      else
>          return NULL;
>  }
> @@ -117,6 +192,76 @@ int domain_vgic_register(struct domain *d, unsigned =
int *mmio_count)
>      return 0;
>  }
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +/*
> + * The function behaviur is the same as for regular SPIs (vgic_rank_offs=
et),

s/behaviur/behavior

> + * but it operates with extended SPI ranks.
> + */
> +struct vgic_irq_rank *vgic_ext_rank_offset(struct vcpu *v, unsigned int =
b,
> +                                           unsigned int n, unsigned int =
s)
> +{
> +    unsigned int rank =3D REG_RANK_NR(b, (n >> s));
> +
> +    return vgic_get_rank(v, rank + EXT_RANK_MIN);
> +}
> +
> +static unsigned int vgic_num_spi_lines(struct domain *d)
> +{
> +    return d->arch.vgic.nr_spis + d->arch.vgic.nr_espis;
> +}
> +
> +static int init_vgic_espi(struct domain *d)
> +{
> +    unsigned int i, idx;
> +
> +    if ( d->arch.vgic.nr_espis =3D=3D 0 )
> +        return 0;
> +
> +    d->arch.vgic.ext_shared_irqs =3D
> +        xzalloc_array(struct vgic_irq_rank, DOMAIN_NR_EXT_RANKS(d));
> +    if ( d->arch.vgic.ext_shared_irqs =3D=3D NULL )
> +        return -ENOMEM;
> +
> +    for ( i =3D d->arch.vgic.nr_spis, idx =3D 0;
> +          i < vgic_num_spi_lines(d); i++, idx++ )
> +    {

CODING_STYLE says that braces should be omitted for single statements

> +        vgic_init_pending_irq(&d->arch.vgic.pending_irqs[i],
> +                              ESPI_IDX2INTID(idx));
> +    }
> +
> +    for ( i =3D 0; i < DOMAIN_NR_EXT_RANKS(d); i++ )
> +        vgic_rank_init(&d->arch.vgic.ext_shared_irqs[i], i, 0);
> +
> +    return 0;
> +}
> +
> +struct pending_irq *espi_to_pending(struct domain *d, unsigned int irq)
> +{
> +    irq =3D ESPI_INTID2IDX(irq) + d->arch.vgic.nr_spis;
> +    return &d->arch.vgic.pending_irqs[irq];
> +}
> +#else
> +static unsigned int init_vgic_espi(struct domain *d)
> +{
> +    return 0;
> +}
> +
> +static unsigned int vgic_num_spi_lines(struct domain *d)
> +{
> +    return d->arch.vgic.nr_spis;
> +}
> +
> +struct pending_irq *espi_to_pending(struct domain *d, unsigned int irq)
> +{
> +    return NULL;
> +}
> +#endif
> +
> +static unsigned int vgic_num_alloc_irqs(struct domain *d)
> +{
> +    return vgic_num_spi_lines(d) + NR_LOCAL_IRQS;
> +}
> +
>  int domain_vgic_init(struct domain *d, unsigned int nr_spis)
>  {
>      int i;
> @@ -131,6 +276,35 @@ int domain_vgic_init(struct domain *d, unsigned int =
nr_spis)
>       */
>      nr_spis =3D ROUNDUP(nr_spis, 32);
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +    /*
> +     * During domain creation, the dom0less DomUs code or toolstack spec=
ifies
> +     * the maximum INTID, which is defined in the domain config subtract=
ed by
> +     * 32 to cover the local IRQs (please see the comment to VGIC_DEF_NR=
_SPIS).
> +     * To compute the actual number of eSPI that will be usable for,
> +     * add back 32.
> +     */
> +    if ( (nr_spis + 32) > ESPI_IDX2INTID(NR_ESPI_IRQS) )
> +        return -EINVAL;

Parentheses around nr_spis + 32 are not required

> +
> +    if ( (nr_spis + 32) >=3D ESPI_BASE_INTID )

The same

> +    {
> +        d->arch.vgic.nr_espis =3D min(nr_spis - ESPI_BASE_INTID + 32, 10=
24U);
> +        /* Verify if GIC HW can handle provided INTID */
> +        if ( d->arch.vgic.nr_espis > gic_number_espis() )
> +            return -EINVAL;
> +        /*
> +         * Set the maximum available number for regular
> +         * SPI to pass the next check
> +         */
> +        nr_spis =3D VGIC_DEF_NR_SPIS;
> +    } else

this "else" should be on separate line

> +    {
> +        /* Domain will use the regular SPI range */
> +        d->arch.vgic.nr_espis =3D 0;
> +    }
> +#endif
> +
>      /* Limit the number of virtual SPIs supported to (1020 - 32) =3D 988=
  */
>      if ( nr_spis > (1020 - NR_LOCAL_IRQS) )
>          return -EINVAL;
> @@ -145,7 +319,7 @@ int domain_vgic_init(struct domain *d, unsigned int n=
r_spis)
>          return -ENOMEM;
> =20
>      d->arch.vgic.pending_irqs =3D
> -        xzalloc_array(struct pending_irq, d->arch.vgic.nr_spis);
> +        xzalloc_array(struct pending_irq, vgic_num_spi_lines(d));
>      if ( d->arch.vgic.pending_irqs =3D=3D NULL )
>          return -ENOMEM;
> =20
> @@ -156,12 +330,16 @@ int domain_vgic_init(struct domain *d, unsigned int=
 nr_spis)
>      for ( i =3D 0; i < DOMAIN_NR_RANKS(d); i++ )
>          vgic_rank_init(&d->arch.vgic.shared_irqs[i], i + 1, 0);
> =20
> +    ret =3D init_vgic_espi(d);
> +    if ( ret )
> +        return ret;
> +
>      ret =3D d->arch.vgic.handler->domain_init(d);
>      if ( ret )
>          return ret;
> =20
>      d->arch.vgic.allocated_irqs =3D
> -        xzalloc_array(unsigned long, BITS_TO_LONGS(vgic_num_irqs(d)));
> +        xzalloc_array(unsigned long, BITS_TO_LONGS(vgic_num_alloc_irqs(d=
)));
>      if ( !d->arch.vgic.allocated_irqs )
>          return -ENOMEM;
> =20
> @@ -195,9 +373,27 @@ void domain_vgic_free(struct domain *d)
>          }
>      }
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +    for ( i =3D 0; i < d->arch.vgic.nr_espis; i++ )
> +    {
> +        struct pending_irq *p =3D spi_to_pending(d, ESPI_IDX2INTID(i));
> +
> +        if ( p->desc )
> +        {
> +            ret =3D release_guest_irq(d, p->irq);
> +            if ( ret )
> +                dprintk(XENLOG_G_WARNING, "d%u: Failed to release virq %=
u ret =3D %d\n",
> +                        d->domain_id, p->irq, ret);
> +        }
> +    }
> +#endif
> +
>      if ( d->arch.vgic.handler )
>          d->arch.vgic.handler->domain_free(d);
>      xfree(d->arch.vgic.shared_irqs);
> +#ifdef CONFIG_GICV3_ESPI
> +    xfree(d->arch.vgic.ext_shared_irqs);
> +#endif
>      xfree(d->arch.vgic.pending_irqs);
>      xfree(d->arch.vgic.allocated_irqs);
>  }
> @@ -331,6 +527,8 @@ void arch_move_irqs(struct vcpu *v)
>          if ( v_target =3D=3D v && !test_bit(GIC_IRQ_GUEST_MIGRATING, &p-=
>status) )
>              irq_set_affinity(p->desc, cpu_mask);
>      }
> +
> +    arch_move_espis(v);
>  }
> =20
>  void vgic_disable_irqs(struct vcpu *v, uint32_t r, unsigned int n)
> @@ -538,6 +736,8 @@ struct pending_irq *irq_to_pending(struct vcpu *v, un=
signed int irq)
>          n =3D &v->arch.vgic.pending_irqs[irq];
>      else if ( is_lpi(irq) )
>          n =3D v->domain->arch.vgic.handler->lpi_to_pending(v->domain, ir=
q);
> +    else if ( is_espi(irq) )
> +        n =3D espi_to_pending(v->domain, irq);
>      else
>          n =3D &v->domain->arch.vgic.pending_irqs[irq - 32];
>      return n;
> @@ -547,6 +747,9 @@ struct pending_irq *spi_to_pending(struct domain *d, =
unsigned int irq)
>  {
>      ASSERT(irq >=3D NR_LOCAL_IRQS);
> =20
> +    if ( is_espi(irq) )
> +        return espi_to_pending(d, irq);
> +
>      return &d->arch.vgic.pending_irqs[irq - 32];
>  }
> =20
> @@ -668,6 +871,9 @@ bool vgic_reserve_virq(struct domain *d, unsigned int=
 virq)
>      if ( !vgic_is_valid_line(d, virq) )
>          return false;
> =20
> +    if ( is_espi(virq) )
> +        return vgic_reserve_espi_virq(d, virq);
> +
>      return !test_and_set_bit(virq, d->arch.vgic.allocated_irqs);
>  }
> =20
> @@ -685,7 +891,7 @@ int vgic_allocate_virq(struct domain *d, bool spi)
>      else
>      {
>          first =3D 32;
> -        end =3D vgic_num_irqs(d);
> +        end =3D vgic_num_alloc_irqs(d);
>      }
> =20
>      /*

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 23:08:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 23:08:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095296.1450364 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ur2mb-0002pt-7v; Tue, 26 Aug 2025 23:08:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095296.1450364; Tue, 26 Aug 2025 23:08: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 1ur2mb-0002pm-4P; Tue, 26 Aug 2025 23:08:53 +0000
Received: by outflank-mailman (input) for mailman id 1095296;
 Tue, 26 Aug 2025 23:08:52 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=VNE8=3G=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1ur2ma-0002pg-JE
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 23:08:52 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a0268195-82d1-11f0-a32c-13f23c93f187;
 Wed, 27 Aug 2025 01:08:49 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by AM7PR03MB6386.eurprd03.prod.outlook.com
 (2603:10a6:20b:1b5::7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.13; Tue, 26 Aug
 2025 23:08:46 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9052.019; Tue, 26 Aug 2025
 23:08: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>
X-Inumbo-ID: a0268195-82d1-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Pfo3Ea3CzCpJI5ODSyX8+/JZKxcztnWJBp4Jqzng+G1h1jXsEGm8cG5XN6/l21Mab/fpoj4RhqGPpfMJj6P5h87uQ8SNKOTlZ75HyYyFkRw+Qz/DXjrkx14F5pz0wa8tBNtARS4p0mg7bUGbZkenmywNEP6HNJqWwBkWE72Eirn6xoLr39Tyd6vlAU16iIJgUNNJSCcut+N41Bqn4ezZx9UiEYWuN9VfvVczApox0RJTNepewOlAFj1+cd1NGDLM2mXuGZcx+pdO74v3EMUvdjugbuC2fV7KlhR/QMZ4GEHwj/M5q6ji4MSm3kOKbI4mhUoJH+V16mqxQFjKHdY17g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=dxnEwfZCp72drXIImaE76SUXV74tGOptFun2XF1RWjI=;
 b=dEHdIFCpu4AmfSRYO/8A+SzRNRW1gOEwhmZYw2H86tBLzvDG21PQCjrxQyTiRZevsavBjWB8Qu17r72oIWcId5KPYHMmJErLk2uRBeSgVoslkt6ilLs1o9q9zJPijSK055VVTSxb0Pr3ZfNhf8N+Mo8tg5CquYRzfMHrK/wcL9b+BYGF6qGDOtYr/t9+U8bx64q5kJaS0OjwY/rmvTtQnBJRAzJ0i5Sr0IsbO7R7b2gyEx1vBTNp2pUJwjai75FSv+VTJ6uHbxwhVgcUXPvttBmM95sHLX6Pf/a9S2o2mI2lxCdGVUbw/wOCY6C6HifCx5wFM4ygMbDK6U+xVOfWmA==
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=dxnEwfZCp72drXIImaE76SUXV74tGOptFun2XF1RWjI=;
 b=i5qb7BE4q2c9I9X706nz3tuIWAYwkDwFT8hk+7RKod4ip3Q+8JBRfKtcQxI8obXE9FCt3DVpxAXnXAzFgcLWoPaFhxDf+wJj03ebTRa9r5Q+vB54DbEnE58swZGTA+Y71LWQ0eYVEZmVz5geoL4q0MvxKlQUENVdZyRxrodd3wEq1ldd8eAmWlGR+0m+1tZDxr/10nlmtPngSnK//HU3OP/rGCBsF04aBpBFfggfs9XxrlndZlEnN8DgN2eu134Fjqj1B/bp9OoG01Gl3BANfIufBnosYCVlTaSxTedPQrdCl1Yg/Vq5LPVzRQE+iPF/6JuYvWK7sUNdWUduxxlRNA==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"olekstysh@gmail.com" <olekstysh@gmail.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v3 09/11] xen/arm: domain_build/dom0less-build: adjust
 domains config to support eSPIs
Thread-Topic: [PATCH v3 09/11] xen/arm: domain_build/dom0less-build: adjust
 domains config to support eSPIs
Thread-Index: AQHcFpKC3tlPpRwHYEC6FSrd1NYk4Q==
Date: Tue, 26 Aug 2025 23:08:46 +0000
Message-ID: <874itt4r5t.fsf@epam.com>
References: <cover.1756216942.git.leonid_komarianskyi@epam.com>
	<bff3d1c4302e8780771abed42f624cafe76776cd.1756216943.git.leonid_komarianskyi@epam.com>
In-Reply-To:
 <bff3d1c4302e8780771abed42f624cafe76776cd.1756216943.git.leonid_komarianskyi@epam.com>
	(Leonid Komarianskyi's message of "Tue, 26 Aug 2025 14:05:38 +0000")
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_|AM7PR03MB6386:EE_
x-ms-office365-filtering-correlation-id: d68af678-8d06-4f37-6dc7-08dde4f582b8
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|1800799024|366016|42112799006|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?w8lMBX3SVP3CSQNBRwjzemL/aFFBgJxUZPBlF6mPcmJkcm1fKrgAAXta75?=
 =?iso-8859-1?Q?y2LS+gMsT6FRxWu4B2sTEqSPFqliBjHr7xam3z0uwbJHJevexUB8diNiGR?=
 =?iso-8859-1?Q?qeF4WAo9qzSthOczuyCEpKxl6DPzABR/u9kup654Pg3KViodPQsFlTTy04?=
 =?iso-8859-1?Q?r+BMdzKccghiC8hY3nLOn/GXMn50ekos46KAH+N8kOOe3Uk2EyrW2KVM5g?=
 =?iso-8859-1?Q?dlOtRISvGYcV/0SY0ySnNZZmwQuWWCMzR755YXkeg9jjVv/5nYDEukhnwg?=
 =?iso-8859-1?Q?chat/rNbzmhYepvF0Re1AIR5UkHb/ZM+34Yl16l78jhu6enlhtHOmKIDco?=
 =?iso-8859-1?Q?vqZ1BSoGD4+wL1JCa0BNf0fxTNECMGsPkdNy8gqPW3o8J8BGF5yPJ3QsYX?=
 =?iso-8859-1?Q?h90Xuozszy8u+LxJssYKzR/5ktZ1kT7NeeS6NTWjx+J50ugU9IIXkRQ+w3?=
 =?iso-8859-1?Q?STqweaTmZwSNnYKLqdn8DTkO7n9Eu3JtObjbgtOYFzOkPMdBG4rWmiSXsw?=
 =?iso-8859-1?Q?xaFNln5D0RopINi0XlY9tIYq2spIdtjttHolmih6RdhFg1kyVrylHj6KWg?=
 =?iso-8859-1?Q?sHVixKhDqjRZG9UQRjDLUiE3ilqger+FoBUt0wIoQ0UWgUAegsPoiCjWJW?=
 =?iso-8859-1?Q?mZFxzypRWP0Oy6D+A5ZKKsS9YnOam7fjov3PcQFJx1NlI37NfvBBNVcE0g?=
 =?iso-8859-1?Q?GvfH1ljJ4UY/yuDKegxWV1Al5Rt3Q4imRkKvJl7pfurFiRt8myawgbJ104?=
 =?iso-8859-1?Q?N2noy6/WIuch6AKt7GuC1s5KCOjzuiz/pvAOyYN2+4Jg1Dr+A4oko1vD0D?=
 =?iso-8859-1?Q?3Tg592/i0OSvLdOf1wWyA/PKdGYnEYoGkTUf2f3ZNfCDTnND8u/nT0Z+2G?=
 =?iso-8859-1?Q?NTMs60t5ae1P2tysTlpvCPREPw064gpgZXo4qKO3eQHof0NlLePznOB8l2?=
 =?iso-8859-1?Q?KZQqXUpG/Ok95Y33k80xQ9Dpzl7i8QQnsckmOsEWG0/VxCkiqnRJ6ynWxX?=
 =?iso-8859-1?Q?ncouMRb8ZoUtiDP/pCdlb589a3f/fPGeS8p+6TUH8J9FytE3GInlaBpoPI?=
 =?iso-8859-1?Q?PgFHWI8pULfE35si0zoFHyxna1u0sH3qNt+U0UG13uKdb6eB1PQTHA3/RV?=
 =?iso-8859-1?Q?r0yFpTkcJDoeex+sV2J54dJjUWzaVG9SAPn4uikdY2+5WhG6JgjXIx4hNQ?=
 =?iso-8859-1?Q?JooPN9M9GH4BmLksNI215s1ONoRbCgtty7gck7ERvbFNGhz0j7wBwdntpR?=
 =?iso-8859-1?Q?/Rvq9lNQ5zTKVBkd0AXW4wnYzLl8APSi1dL4VUzLS6gWx/3vp/bYZ0mT+H?=
 =?iso-8859-1?Q?sS4xKJMinKfme/OzfbXgYLwKzTU22QHW7df9vTlwClCLHhY5oKOcfSWITC?=
 =?iso-8859-1?Q?D3fnrS+jYN8UgE4qUlgendTmrE2ktW0gmpeAe8NBXnLIz+/+WuI0PzjLy/?=
 =?iso-8859-1?Q?ECDVIHSxJoOvCAgglw3Z8IYYkso4GWXY/e/wGODODcT3++7G5fgLp8tFVS?=
 =?iso-8859-1?Q?85jaZA8WtK4/HxpxurhaFKdvI8pbNVxYjsezPJJXKuAA=3D=3D?=
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)(1800799024)(366016)(42112799006)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?s4vc/mC5VwMv2za+tWjAGxRnE3ojtdMq+M8oLjb/aJjFPFJLgHu1Puh3gZ?=
 =?iso-8859-1?Q?pZP3DvZ2OJUsiArmjed9nAhbePuJqpXYlqUyrwkBdxv4uUPHPxDLyedpot?=
 =?iso-8859-1?Q?n6Gi4H0nOhOJ/BmR67v5bjE1DHmaoHRG9iHfR5VLJBfvjRPsgkgoKKGlF6?=
 =?iso-8859-1?Q?WqMapzZoVwTNGeu8EZYTO+ex20SaeFMp3p8BH7yhD2mCfMB/TY1JHgFHXc?=
 =?iso-8859-1?Q?yr7C3EMtT1KJok0QwvU8EeYn4Uco/ozIn6R2JWqGgsKgU9/tfCSLUVsl1I?=
 =?iso-8859-1?Q?+SnNWP+bzJZEiMmADLXweqC/cuEI24Nf+YSIJgRbKbXyJPV8AvcMYsqZiU?=
 =?iso-8859-1?Q?/RY+OJ/iR6ZwDzeeNBQI36at2SGPubn/2oyjYOiRTBpQjn4380o7uyN+kY?=
 =?iso-8859-1?Q?6Pv5gRZXn2QyndngMgbQTyI6NRYVRgGsMCHjwGD3hY9CNYA3CbaNpjYP9o?=
 =?iso-8859-1?Q?oajIFSOiS5W1XHAncVURopD6Dsdm12Zu+WHXgwLFZxVAmmBcufzhqemkEi?=
 =?iso-8859-1?Q?CGhXXFL+LeDVJ8XPDRCI4SB1kwaNMo5ms9JXH8F79vUyYw9CFfr1CbpDWY?=
 =?iso-8859-1?Q?pWoqWoqN1c4S8Fs39S9PlUOGGlSJWIbmn+oCFuFGzKPMDOw0WgT4RopC+K?=
 =?iso-8859-1?Q?T/5jSZ8rVwr+wqOC7aVOQoEyqBangPpYhKc3uJyUyIpovQTNZi7kBsVIV0?=
 =?iso-8859-1?Q?4so7yUcqdjbqfBkv9n7N7gNFBZ1tb3vz+xYX6vA7bRhePZPDuBBWBA0GZX?=
 =?iso-8859-1?Q?cL7p194JWhevnt3PLbTZkmUlfYIxfF/NTyWMgCHtyPnCrrZQZALv5tRqpY?=
 =?iso-8859-1?Q?KsFt2a9KxAR0wI6P7CV6Wh7HXIiHOzicQqDK17v124HS2K9NY42duYjA3w?=
 =?iso-8859-1?Q?SdYGhPw7usXKtE1r36V4H2Mtt0MXjT/xyVylD725D3Z/ZhQYzNbrh+/Eeo?=
 =?iso-8859-1?Q?AIhNXU3V+OTjnhtWBz79JqVA6uCuEk1j9VkTlSNjAmN09tbNzzbOC+46h5?=
 =?iso-8859-1?Q?xoVE7lYQSIazQAA/+SvWPlkOySRaH3wISiEzWDsasADuwB7c6HYyAtUd8y?=
 =?iso-8859-1?Q?rjvp+LKQG4pEpp5szvTA9qKSdkObW+6799UTnEAA4kNMYN9DWF9Zz7QPL3?=
 =?iso-8859-1?Q?qH2J+tDjwa9/oucRgf2RjVOeubcQoqDiyHJG5D3NVjtVDHwAvMFxZCQTlb?=
 =?iso-8859-1?Q?Tuq8A5ZHYsXd2Zx5/r0jKrvYr1Nf7Ak5bf9aMlQIhQswJENnUj5bvqomi3?=
 =?iso-8859-1?Q?1b24i6XAgyKQwDKi7PjusqHfXtcr3Uph59MLEExM4+gRvn9I5FOWDXsPt6?=
 =?iso-8859-1?Q?0PhDSMh+fNqGx8VQ1/QsvyEsyaBVoPfnQHnKdVrq0iYs0YbmfEApi5pPCj?=
 =?iso-8859-1?Q?R4UZK/5EyNYNHHVt35TJdHCZ8QmfadZ3YZZbDTGAeTU5Vu8m+SFqHI6Kjn?=
 =?iso-8859-1?Q?KNcsCRWRSe7/DW5HZCZD+7KSkKRuJubGKyj5Dh1N51/i4ewNMb6sgZ69fu?=
 =?iso-8859-1?Q?i2Wzavoig7yD1w9MLVs8fNw7RzsigezAtzaYVQ4wS6CjAVs7wt4vUubO8z?=
 =?iso-8859-1?Q?kleKP1ycdChhgCbHld0sjQu6TIyvNTs6/PvXaDDtOS0oCA8REE7VJyyqD/?=
 =?iso-8859-1?Q?oUDBfAbjBDee2yvWIJZUigKxtHh/mTGCpJ2sK1gRgzrpDGB0J12E2y8g?=
 =?iso-8859-1?Q?=3D=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: d68af678-8d06-4f37-6dc7-08dde4f582b8
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Aug 2025 23:08:46.7602
 (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: bA/fxhUrEpCl1lpn78s9fmNbpMim0v+2rTxPMaEpc3LUbWp7bNARjlmHWOCJQoe7Fy0J3r7a4ISX9DH7EQQ8xNCA07FtzABJR8BMtnB5wlo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR03MB6386

Hi Leonid,

Leonid Komarianskyi <Leonid_Komarianskyi@epam.com> writes:

> The Dom0 and DomUs logic for the dom0less configuration in create_dom0()
> and arch_create_domUs() has been updated to account for extended SPIs
> when supported by the hardware and enabled with CONFIG_GICV3_ESPI. These
> changes ensure the proper calculation of the maximum number of SPIs and
> eSPIs available to Dom0 and DomUs in dom0less setups.
>
> When eSPIs are supported by the hardware and CONFIG_GICV3_ESPI is
> enabled, the maximum number of eSPI interrupts is calculated using the
> ESPI_BASE_INTID offset (4096) and is limited to 1024, with 32 IRQs
> subtracted. To ensure compatibility with DomUs (Dom0 setups) domains,
> where this adjustment is applied by the toolstack during domain
> creation, while for Dom0 or DomUs in Dom0, it is handled directly during
> VGIC initialization. If eSPIs are not supported, the calculation
> defaults to using the standard SPI range, with a maximum value of
> 960 interrupt lines, as it works currently.
>
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
>
> ---
> Changes in V2:
> - no changes
>
> Changes in V3:
> - renamed macro VGIC_DEF_NR_ESPIS to more appropriate VGIC_DEF_MAX_SPI

Will VGIC_DEF_MAX_ESPI be better? When other code refer to "SPI" it mean
"common SPI" (less than 1022), while ESPI is used for extended SPI. So,
naturally it feels that VGIC_DEF_MAX_SPI should be equal to 1022...

> - added eSPI initialization for dom0less setups
> - fixed comment with mentions about dom0less builds
> - fixed formatting for lines with more than 80 symbols
> - updated commit message
> ---
>  xen/arch/arm/dom0less-build.c   | 12 ++++++++++++
>  xen/arch/arm/domain_build.c     | 11 +++++++++++
>  xen/arch/arm/include/asm/vgic.h | 14 ++++++++++++++
>  3 files changed, 37 insertions(+)
>
> diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.=
c
> index 69b9ea22ce..f4f9077db5 100644
> --- a/xen/arch/arm/dom0less-build.c
> +++ b/xen/arch/arm/dom0less-build.c
> @@ -286,6 +286,18 @@ void __init arch_create_domUs(struct dt_device_node =
*node,
>          int vpl011_virq =3D GUEST_VPL011_SPI;
> =20
>          d_cfg->arch.nr_spis =3D VGIC_DEF_NR_SPIS;
> +#ifdef CONFIG_GICV3_ESPI
> +        /*
> +         * Check if the hardware supports extended SPIs (even if the
> +         * appropriate config is set). If not, the common SPI range
> +         * will be used. Otherwise overwrite the nr_spis with the maximu=
m
> +         * available INTID from eSPI range. In that case, the number of
> +         * regular SPIs will be adjusted to the maximum value during vGI=
C
> +         * initialization.
> +         */
> +        if ( gic_number_espis() > 0 )
> +            d_cfg->arch.nr_spis =3D VGIC_DEF_MAX_SPI;
> +#endif
> =20
>          /*
>           * The VPL011 virq is GUEST_VPL011_SPI, unless direct-map is
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index d91a71acfd..148a8bdb60 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -2055,6 +2055,17 @@ void __init create_dom0(void)
>      /* The vGIC for DOM0 is exactly emulating the hardware GIC */
>      dom0_cfg.arch.gic_version =3D XEN_DOMCTL_CONFIG_GIC_NATIVE;
>      dom0_cfg.arch.nr_spis =3D VGIC_DEF_NR_SPIS;
> +#ifdef CONFIG_GICV3_ESPI
> +    /*
> +     * Check if the hardware supports extended SPIs (even if the appropr=
iate
> +     * config is set). If not, the common SPI range will be used. Otherw=
ise
> +     * overwrite the nr_spis with the maximum available INTID from eSPI =
range.
> +     * In that case, the number of regular SPIs will be adjusted to the =
maximum
> +     * value during vGIC initialization.
> +     */
> +    if ( gic_number_espis() > 0 )
> +        dom0_cfg.arch.nr_spis =3D VGIC_DEF_MAX_SPI;
> +#endif
>      dom0_cfg.arch.tee_type =3D tee_get_type();
>      dom0_cfg.max_vcpus =3D dom0_max_vcpus();
> =20
> diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/v=
gic.h
> index 248b5869e1..0bb025f5d5 100644
> --- a/xen/arch/arm/include/asm/vgic.h
> +++ b/xen/arch/arm/include/asm/vgic.h
> @@ -353,6 +353,20 @@ extern void vgic_check_inflight_irqs_pending(struct =
vcpu *v,
>  /* Default number of vGIC SPIs. 32 are substracted to cover local IRQs. =
*/
>  #define VGIC_DEF_NR_SPIS (min(gic_number_lines(), VGIC_MAX_IRQS) - 32)
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +/*
> + * Returns the maximum eSPI INTID, supported by HW GIC, subtracted by 32=
. For
> + * non-Dom0 domains, the toolstack or arch_create_domUs function applies=
 the
> + * same adjustment to cover local IRQs (please, see comment for macro th=
at is
> + * used for regular SPIs - VGIC_DEF_NR_SPIS). We will add back this valu=
e
> + * during VGIC initialization. This ensures consistent handling for Dom0=
 and
> + * other domains. For the regular SPI range interrupts in this case, the
> + * maximum value of VGIC_DEF_NR_SPIS will be used.
> + */
> +#define VGIC_DEF_MAX_SPI (ESPI_BASE_INTID + \
> +                          min(gic_number_espis(), 1024U) - 32)
> +#endif
> +
>  extern bool vgic_is_valid_line(struct domain *d, unsigned int virq);
> =20
>  static inline bool vgic_is_spi(struct domain *d, unsigned int virq)

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 23:29:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 23:29:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095310.1450375 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ur366-0005it-Rd; Tue, 26 Aug 2025 23:29:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095310.1450375; Tue, 26 Aug 2025 23:29:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ur366-0005im-NN; Tue, 26 Aug 2025 23:29:02 +0000
Received: by outflank-mailman (input) for mailman id 1095310;
 Tue, 26 Aug 2025 23:29:01 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=VNE8=3G=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1ur365-0005ig-Ef
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 23:29:01 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6e240cdd-82d4-11f0-a32c-13f23c93f187;
 Wed, 27 Aug 2025 01:28:54 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by VI1PR03MB9897.eurprd03.prod.outlook.com
 (2603:10a6:800:1c2::9) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Tue, 26 Aug
 2025 23:28:48 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9052.019; Tue, 26 Aug 2025
 23:28: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>
X-Inumbo-ID: 6e240cdd-82d4-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dff+1qn9PuPPTA0BemM9UxNVpBAyc7g7/+gQr0UkLcrVnbc96oj52tPLKctjhE5uupH7xq4iqWRnMAKL1hPGwgJ0QSJf4laDpm6aiGw9s+M1ysnVB+vQzcUA1Fn64h0I5TtZCSSe2TIT+JktvTjqpmD8J10qspU0MW6eXarm0011hlumvL6YXso6z1jzkINhxs2F2SpzgA05A3QtYRpw4E5mGXlJ4qjLrYtr7ngfRMuC6AFOabm42LZGFxJWdDsgCNYS92TaD+4ehgMW+QcYz5CpdtUT94MeHQXbLTi5s2ZmUC4s0G+2S5HfuOSha8Y6nCc+EpjGtAbWHeF0Dx8XTQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0fZO0FKMNgCLBfTbAFP9rEgzO5HIIkykpAkW0GEQTKU=;
 b=OUyyQS4HHtKSOdCoissIWlnvR0s5GPdK8UkL6IhvBNWWDIbwsB56HYvTKiUOBle2ZCkfb6CUY2yi67OEVEx4uNLsrO7383aT+GCNYaGRbltW3sg+slUE5a0pQl4kjp/o9lhS/ExTY9kSoigaL33fLjmxRJolaNVZqtbhbmcQek0Dn2ErFZnvttCaZej+GDWK5S+G2fbX/9h5kPzvFlzEpahOGe7ghZU6oom/gJBm37dfi8/kb//RLD1FVAaWGkdSWQOMT4WiONRQACWQkkZLX8LozFZh0pN41njdl6IdMD6iFSV0o95GHGoUttAGJLf1rkBUu1nhVi/BSFgdi3zP6A==
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=0fZO0FKMNgCLBfTbAFP9rEgzO5HIIkykpAkW0GEQTKU=;
 b=kfoOK6d7zKCVeorYA8cUoZGQI1vTvr0K0i0dJ2/i1k2e6z+pvCqL49A+E4lUjPXs90e8nQhTUSM0PXLmVOk64Ar/6yD5cOFeVvyvvQRnrkzWN5cXOZdAHI8OOON5ph7DioHbD7PH7yAr1I+PHJqIvHYTDWPfHVQ+WBerHsRW/WiF63cFrWdzFwLwdil9VEXKQgsKVeJVpPp8tBSv2hXFCVb6nnBnrIkZsXNs4lnQwa9NMhs5GwVPi5RXkuFVxBB+VM0xXMlXQt/QZ4mXAd5FuGoJBm9b2y6ADuHv70tm55p5yg5mQt/c++oEn27EbIjCCqomaBesWFU3xirihXgVMA==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Milan Djokic <milan_djokic@epam.com>
CC: Julien Grall <julien@xen.org>, Julien Grall <julien.grall.oss@gmail.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Rahul Singh <rahul.singh@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>, Michal Orzel
	<michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Nick Rosbrook <enr0n@ubuntu.com>, George Dunlap
	<gwd@xenproject.org>, Juergen Gross <jgross@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>
Subject: Re: [PATCH 00/20] Add SMMUv3 Stage 1 Support for XEN guests
Thread-Topic: [PATCH 00/20] Add SMMUv3 Stage 1 Support for XEN guests
Thread-Index: AQHcB7wdmg15F24Gc0ClRsxpCVedRA==
Date: Tue, 26 Aug 2025 23:28:48 +0000
Message-ID: <87v7m93bo0.fsf@epam.com>
References: <cover.1754580687.git.milan_djokic@epam.com>
	<CAJ=z9a1eM6M+Gagond9TiFtF7c7EEQKOKHANcvDWDhW_3JzqOA@mail.gmail.com>
	<12ba4388-ee23-4e17-910f-9702271865ad@epam.com>
	<b1f79b84-d0c4-4807-87a7-1cf94e58ecee@xen.org>
	<a5943713-85fa-48ad-86fe-5698604ed8c9@epam.com>
In-Reply-To: <a5943713-85fa-48ad-86fe-5698604ed8c9@epam.com> (Milan Djokic's
	message of "Thu, 14 Aug 2025 18:26:00 +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_|VI1PR03MB9897:EE_
x-ms-office365-filtering-correlation-id: b50a2b12-710c-48f3-1e58-08dde4f84f04
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|42112799006|7416014|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?N3ZHZ2k0RC9OMVFkWEF0TjFsUVV4WDdKVHVhRkJDaGxqM3JGMUU3TkpESEc1?=
 =?utf-8?B?OU1kWFlpZEVsNEUwQWU1OVJPNjVwK0daRVJjTGRCQmlnL1VRcldFUkZLWlZl?=
 =?utf-8?B?SHFHSkZzaW0rbG1ONFBZSzBVcVNKZmM0VEFUak5XVjNlaEZvb0pRaERnQ0lC?=
 =?utf-8?B?Mk4rb1BNZktXaHpBMjZiVTVlalIrRjAwY0FJYWJka0FvYTRTRE95UTdqc0My?=
 =?utf-8?B?N1ZiVk13dzVLMjN6dU0rYlordkYyYXIxejE1K0FqZWE3UDRRbnV6RDZ4N1ky?=
 =?utf-8?B?SU9VUGRaUXBwS0Z6WVdHYlRMbXB3U3lqOFEwWFY1enBtR0xYYmE4YSszaDEw?=
 =?utf-8?B?Q1BiVWZTNzlRaEVQZTh6cFlLUnQ1ZXpSZ3dZRDZ1d1EwS25lbTF3MGxoeW1N?=
 =?utf-8?B?L0YzeXo4ZDltUjE1TGJCYWJWeDd3aXFGMTU4dGNoZ0J1OUZXSVVsYTJKKzBV?=
 =?utf-8?B?WjkxSGpZRXVKTVU4eTFlTXhFSThld3cyMDlkZFhvT1FMUzRVK1lXYWNseGZh?=
 =?utf-8?B?VzNudlVFeGpKNkdGV3VpZEVRekJDUjNLY1FFRjBWRjBwNERLbmR6UHZmUkJw?=
 =?utf-8?B?K1RhVVdkbDJmdTZyZmpRVWFxa01IeWVYRTlKemxwUHYxeitZby9HeW42TjdV?=
 =?utf-8?B?TWE4bm9DYVNva3NvVEVlYXNrNnNyeTJVU2dBZHhnRzBwcVVHZkphRmp4UHBC?=
 =?utf-8?B?ZmswZ2JBRTExazRTT0w3cUhHWlk3dEtkeER0QXRJNmhBalUwOG9pdk5SNVlj?=
 =?utf-8?B?eTZ6cUdaS2w5ajZzUUxmRkhjTEJvaWlMeHNGQlRldVAxalZDUUdCL29uS2dC?=
 =?utf-8?B?bHFSQkhpUEZkeVlEVXhwT2ZrbEp6Z3dXQksrTGZYM2k5RFV5bmJqdk5qR2lQ?=
 =?utf-8?B?L3l4TjBzQnp1RndtWFpUY3hpT3hLYkR2MlY5WGtoY2RRQjRmd3E5cTFWT2VI?=
 =?utf-8?B?NjNqR0V5YmowcUxQcWxvMWV2c2xRL1REWXhjNHFnN3ZuTWVFNmZJZzFhVkxV?=
 =?utf-8?B?ZHF2YXVNUGdyak1lbWQ3eVJLcU9xR2FSa3ZqYVNQdWlNeHFZc004WkE3SG1U?=
 =?utf-8?B?b3BiS3RDRUZnbW1KUXRVKzdPVmxkMkkrWk9pODNmaW1yaU1rMHZYQXY4bDJh?=
 =?utf-8?B?SHhJY1B2ekpXUlRab0VDK3lSS0VaUU5IME95MFplQ3NqUnZBN1lBWDlyTWVq?=
 =?utf-8?B?S2o3SG1EWFZqb0JWYTl1VHdRRnFlK1BMNmRDa3FYNFFwRGZNNXZaVVI2ajBO?=
 =?utf-8?B?MzY5OFVGTmpIUEQwL1c2VWNPclBmaG1pQ2lWZzk1blkrUTdzQ0pqT1dZaU5Q?=
 =?utf-8?B?VmNHMEl5QVUzV0oyM0RKbUkzQUxtcHVUdS81L0tLeWRpUFB2dFR0dktOdVEx?=
 =?utf-8?B?OHBSUzZBYUxac0p4eGhRb1F4ZW5iRTZQeWdmcUVWc0t1ZjU5VHZtelNNRXVO?=
 =?utf-8?B?Umc3Mk5IV1NmUmQyNTRmNXBmR1poS1h2L044ci83YUZ6K3FvQ2NDZXBqTW1W?=
 =?utf-8?B?azhic2ZCRFFzSE5uWDRwVllPc3pIN0NTMFQ2QUd2akM4aWxlR0JTWGx4Rmc1?=
 =?utf-8?B?NGkvSjFRcCtIbmJVRDY1YTgyNWt2ckhRdm5GYmZOaXhPeUJUSDJueFp4dGxn?=
 =?utf-8?B?bWlKRGxqVjA0bzR2Z3Z3OXFVMU1TQmJCTFViQmxLWjlTVC9OZCtkR3pIZklZ?=
 =?utf-8?B?WSt1cTdyTWZueHl0TVZ5cWhrU2FKdHlVWGV4YjBySkRieXBvU3B6MXZrQnU1?=
 =?utf-8?B?RzNlckExU1RxMDNqSm8wNll4NmhWeG42WExZa1ZOZ05Edjl3aTE5K05uRGd1?=
 =?utf-8?B?MjJFV0pOeG5NL3ZwYTQxeVR2VDRodFo3cWNFQkJSREs4eFRsWmxOaUc1cjJZ?=
 =?utf-8?B?YXhVZlp3UG1kaFZoZ0o0aERHdkpac25xVnhaaTI3dlgxemM2Rk1LbjgrZkpV?=
 =?utf-8?B?Rm1LekdGc3A0THNDdjBORHVWbHFJVGQrNmpOd2FWekQ1TWRhbXhXSE43dEZj?=
 =?utf-8?B?YWxlMW94K3ZRPT0=?=
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)(7416014)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?WW5GZVNvY1N1UTRpR3VLMlY1UmFYWmY0MTRoWnR4Ky9QRHFtT1JXcUZWQ0hm?=
 =?utf-8?B?ZlJuSnNJUW55NWdwbHRjYzAzTVFZTzNMb0I2aUlyU0VvZXdSc0QzV0JhQ1M4?=
 =?utf-8?B?NmQyZklJc3N2Z2UvTFJ4Y00wZkQyWDBrRGlIalo1bE1kdUFLTEdVVURPZTM4?=
 =?utf-8?B?R3hHR0JqVG5pZUhSUlRkb2Y5NHFNWGdFWkU0NHY3OG9vS0F4U3NETnV6MGIz?=
 =?utf-8?B?NllFakh3YmN6eldMMnFpQW43TGxZQmVnRW1QUE9uaWRqc1N0c3llZHdtVVds?=
 =?utf-8?B?TU01alZ2TGN2NTRrREVzY21ieUhvQTY1S1RPcEJwWEVkN2xIclArb0ZqV3VD?=
 =?utf-8?B?Y0JpUDlNQy8xWkYxd0RiZGU0a0FsVjA5YTNERTF3ZDRYWnJPQ2l4RWorbS9K?=
 =?utf-8?B?cFpNS0pCdUh0SFJNL2xZb1dkMEc3bUE5b3M1cFZKdTc2eGhOQ3puS0dXbGhI?=
 =?utf-8?B?KzVyUGp5THp0Q3ZyWEFCQXpJTkhZaXpZR0NVd2liOXcyekNCZzNJOVFMSENN?=
 =?utf-8?B?d0krUmNMSktReWtDZkxWNkNpWXNYUXRPTERjWGFUOW9iNHg2VUVnSEpiSCtY?=
 =?utf-8?B?UkJZQ212TzdPUzg4NDQvcEZxMkhSVGhLNXd3ZzNCOEp1TG9ab3VUamRHams2?=
 =?utf-8?B?N3NlMFRXZmFPbzFvZ241eDZMa3oyUTNjSDJLL2NPanJGd010cW1wQjJSWVBI?=
 =?utf-8?B?b1dWMWh3S3lmRW12SXUxZDRYTTZaaUF5aTgyQ0VPdHI3U1FQTHNsc2pYSGNX?=
 =?utf-8?B?ZWVzdDRScXFGY1BTdis1ZEY2RjVhL0dQUURBTkhsMkoxdVlHNzZXOE9WeGRm?=
 =?utf-8?B?TWhsMDB2V05SWTBWMjRLdGUxeVgzMnJCSEdwYlVITklXU1VOcnZlMnZaZkF1?=
 =?utf-8?B?bXNXcVpZWUZxUHljQncwUU5POXpSMmwyeHEyVHVjRms0VGxsejg3NkxjaVcr?=
 =?utf-8?B?bGp4dHFraXdCY01JaXFxOERrb0NaZ3BnQVEwc3FYUTFTaUU0WlZxb2ZRSUZk?=
 =?utf-8?B?V2RGQkJKekNRc1NuaFJORmtoMU54ZFEweG44ZGJTM21paFRoVEw3RGVJY0Vi?=
 =?utf-8?B?Zk5WbVhjZlpzQWVKZVBqdnM2emRIZk1rbE42c1BGbjQzQnhiOTZWUk1YRW95?=
 =?utf-8?B?OEptNXdCM21PS0tSRXVSM0hEZll6RlRjU3d0TVNKTHRXc3BOQ0VkZzgzTG91?=
 =?utf-8?B?UGdEZmZZZm91dlhKWm1HYmQzeVNhZU9lajhva1lqbml5cnk0bWdySDNSL3I2?=
 =?utf-8?B?VVZlV2FkbDkrZC9tV005L0F4Mmhic1diR3VpRVMyb3Z6dmM1Mkw4dVpZZDJE?=
 =?utf-8?B?NkZMQ09ORHV0NmRIMy9LSTVvNU1tK3RjV1V1dERHMjl1Vll1RnhQOUJHcTkz?=
 =?utf-8?B?NjFkcUVGRk41c1RydUNzVHBicTBudkZQZnU3L3BDOEtHZjk4aElZb1U0RWJC?=
 =?utf-8?B?ZktxSnoxYkFyUEFBOSs1YjFSY3hGYXNuR3F5RitFY2VzMGM1ZlhBdjhnVDFh?=
 =?utf-8?B?WWhKUHY5NytJTGVoZEY2YlRKOTZDTG5qenBWa004RWpsY0N6QjNlcFhxTmQx?=
 =?utf-8?B?L3pqWm9UMFdIeWgvYXBoQnZHb3IwL24wUDRwQU92Q0ptaU9mMTlJQ3lkVXBK?=
 =?utf-8?B?azl3YkR6dm5ISmJvNm9ubWszMXE3UUpMbW05SWJJQ3hYNGNJTDBycU1PMXNO?=
 =?utf-8?B?UVVkUCs0UUtJU1NYY2Z2YjJPN2crYkt3N3Jad2tBeGdkdkUzYksyanNZVzlp?=
 =?utf-8?B?aFdCcHMzU01IYSs3ZW5YKzhxa0xJMW9HNis4R0hzK0MvL0VzdVQ3V1AvUEdT?=
 =?utf-8?B?Y1oyUEM1aFlCQVlPNWcwU3ArdGZBamtQSXJKMGxubzJOQ2tsNGhwKzZTb3N5?=
 =?utf-8?B?dFBHUWhOdlcrNGRzakQyVCtBUzhIRFQvODV6NDlsc3dQUUpsSVd6cGRRekpI?=
 =?utf-8?B?MEV6WkN6cUtyN3pDR2RNZEhucWFRUTV4eWZTbUdrSmZqL3FUbjRYQ2MrNHJx?=
 =?utf-8?B?c1R4QUpKY2ZlQnFham45VlFqREtMbmRxazhEUndCUmlWRnJ0Zk5NekVodzZY?=
 =?utf-8?B?YWNLNTBxeEZuZlo1N2NXN2hrWUxtZTJXRGYyQkt1cmlxelIzbERkK2loRzVG?=
 =?utf-8?B?bFFvRTd1RnJMZEhqc2R3ekF4a0FaMVAxMUg0TVZjazUrNXJzdlkva09Td0c1?=
 =?utf-8?B?THc9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <141B706CA25700489BF31796C0AF9199@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: b50a2b12-710c-48f3-1e58-08dde4f84f04
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Aug 2025 23:28:48.4644
 (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: FjbSeduPpiujKx9+GIZN5Q4t5M29BTgrL25wR2LSHGw+6X7jyIQR1FophjyfqlYX0UKx5Cf14D05/L9CrCtCtaw5NdG7MpqTE8dXLf8V318=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR03MB9897

DQpIaSBNaWxhbiwNCg0KTWlsYW4gRGpva2ljIDxtaWxhbl9kam9raWNAZXBhbS5jb20+IHdyaXRl
czoNCg0KPiBIZWxsbyBKdWxpZW4sDQo+DQo+IE9uIDgvMTMvMjUgMTQ6MTEsIEp1bGllbiBHcmFs
bCB3cm90ZToNCj4+IE9uIDEzLzA4LzIwMjUgMTE6MDQsIE1pbGFuIERqb2tpYyB3cm90ZToNCj4+
PiBIZWxsbyBKdWxpZW4sDQo+PiBIaSBNaWxhbiwNCj4+IA0KPj4+DQo+Pj4gV2UgaGF2ZSBwcmVw
YXJlZCBhIGRlc2lnbiBkb2N1bWVudCBhbmQgaXQgd2lsbCBiZSBwYXJ0IG9mIHRoZSB1cGRhdGVk
DQo+Pj4gcGF0Y2ggc2VyaWVzIChhZGRlZCBpbiBkb2NzL2Rlc2lnbikuIEknbGwgYWxzbyBleHRl
bmQgY292ZXIgbGV0dGVyIHdpdGgNCj4+PiBkZXRhaWxzIG9uIGltcGxlbWVudGF0aW9uIHN0cnVj
dHVyZSB0byBtYWtlIHJldmlldyBlYXNpZXIuDQo+PiBJIHdvdWxkIHN1Z2dlc3QgdG8ganVzdCBp
dGVyYXRlIG9uIHRoZSBkZXNpZ24gZG9jdW1lbnQgZm9yIG5vdy4NCj4+IA0KPj4+IEZvbGxvd2lu
ZyBpcyB0aGUgZGVzaWduIGRvY3VtZW50IGNvbnRlbnQgd2hpY2ggd2lsbCBiZSBwcm92aWRlZCBp
bg0KPj4+IHVwZGF0ZWQgcGF0Y2ggc2VyaWVzOg0KPj4+DQo+Pj4gRGVzaWduIFByb3Bvc2FsOiBB
ZGQgU01NVXYzIFN0YWdlLTEgU3VwcG9ydCBmb3IgWEVOIEd1ZXN0cw0KPj4+ID09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4+Pg0KPj4+
IEF1dGhvcjogTWlsYW4gRGpva2ljIDxtaWxhbl9kam9raWNAZXBhbS5jb20+DQo+Pj4gRGF0ZTrC
oMKgIDIwMjUtMDgtMDcNCj4+PiBTdGF0dXM6IERyYWZ0DQo+Pj4NCj4+PiBJbnRyb2R1Y3Rpb24N
Cj4+PiAtLS0tLS0tLS0tLS0NCj4+Pg0KPj4+IFRoZSBTTU1VdjMgc3VwcG9ydHMgdHdvIHN0YWdl
cyBvZiB0cmFuc2xhdGlvbi4gRWFjaCBzdGFnZSBvZiB0cmFuc2xhdGlvbg0KPj4+IGNhbiBiZSBp
bmRlcGVuZGVudGx5IGVuYWJsZWQuIEFuIGluY29taW5nIGFkZHJlc3MgaXMgbG9naWNhbGx5DQo+
Pj4gdHJhbnNsYXRlZCBmcm9tIFZBIHRvIElQQSBpbiBzdGFnZSAxLCB0aGVuIHRoZSBJUEEgaXMg
aW5wdXQgdG8gc3RhZ2UgMg0KPj4+IHdoaWNoIHRyYW5zbGF0ZXMgdGhlIElQQSB0byB0aGUgb3V0
cHV0IFBBLiBTdGFnZSAxIHRyYW5zbGF0aW9uIHN1cHBvcnQNCj4+PiBpcyByZXF1aXJlZCB0byBw
cm92aWRlIGlzb2xhdGlvbiBiZXR3ZWVuIGRpZmZlcmVudCBkZXZpY2VzIHdpdGhpbiB0aGUgT1Mu
DQo+Pj4NCj4+PiBYZW4gYWxyZWFkeSBzdXBwb3J0cyBTdGFnZSAyIHRyYW5zbGF0aW9uIGJ1dCB0
aGVyZSBpcyBubyBzdXBwb3J0IGZvcg0KPj4+IFN0YWdlIDEgdHJhbnNsYXRpb24uIFRoaXMgZGVz
aWduIHByb3Bvc2FsIG91dGxpbmVzIHRoZSBpbnRyb2R1Y3Rpb24gb2YNCj4+PiBTdGFnZS0xIFNN
TVV2MyBzdXBwb3J0IGluIFhlbiBmb3IgQVJNIGd1ZXN0cy4NCj4+Pg0KPj4+IE1vdGl2YXRpb24N
Cj4+PiAtLS0tLS0tLS0tDQo+Pj4NCj4+PiBBUk0gc3lzdGVtcyB1dGlsaXppbmcgU01NVXYzIHJl
cXVpcmUgU3RhZ2UtMSBhZGRyZXNzIHRyYW5zbGF0aW9uIHRvDQo+Pj4gZW5zdXJlIGNvcnJlY3Qg
YW5kIHNlY3VyZSBETUEgYmVoYXZpb3IgaW5zaWRlIGd1ZXN0cy4NCj4+IENhbiB5b3UgY2xhcmlm
eSB3aGF0IHlvdSBtZWFuIGJ5ICJjb3JyZWN0Ij8gRE1BIHdvdWxkIHN0aWxsIHdvcmsNCj4+IHdp
dGhvdXQNCj4+IHN0YWdlLTEuDQo+DQo+IENvcnJlY3QgaW4gdGVybXMgb2Ygd29ya2luZyB3aXRo
IGd1ZXN0IG1hbmFnZWQgSS9PIHNwYWNlLiBJJ2xsDQo+IHJlcGhyYXNlIHRoaXMgc3RhdGVtZW50
LCBpdCBzZWVtcyBhbWJpZ3VvdXMuDQo+DQo+Pj4NCj4+PiBUaGlzIGZlYXR1cmUgZW5hYmxlczoN
Cj4+PiAtIFN0YWdlLTEgdHJhbnNsYXRpb24gaW4gZ3Vlc3QgZG9tYWluDQo+Pj4gLSBTYWZlIGRl
dmljZSBwYXNzdGhyb3VnaCB1bmRlciBzZWN1cmUgbWVtb3J5IHRyYW5zbGF0aW9uDQo+Pj4NCj4+
PiBEZXNpZ24gT3ZlcnZpZXcNCj4+PiAtLS0tLS0tLS0tLS0tLS0NCj4+Pg0KPj4+IFRoZXNlIGNo
YW5nZXMgcHJvdmlkZSBlbXVsYXRlZCBTTU1VdjMgc3VwcG9ydDoNCj4+Pg0KPj4+IC0gU01NVXYz
IFN0YWdlLTEgVHJhbnNsYXRpb246IHN0YWdlLTEgYW5kIG5lc3RlZCB0cmFuc2xhdGlvbiBzdXBw
b3J0IGluDQo+Pj4gICDCoCBTTU1VdjMgZHJpdmVyDQo+Pj4gLSB2SU9NTVUgQWJzdHJhY3Rpb246
IHZpcnR1YWwgSU9NTVUgZnJhbWV3b3JrIGZvciBndWVzdCBTdGFnZS0xIGhhbmRsaW5nDQo+PiBT
byB3aGF0IGFyZSB5b3UgcGxhbm5pbmcgdG8gZXhwb3NlIHRvIGEgZ3Vlc3Q/IElzIGl0IG9uZSB2
SU9NTVUgcGVyDQo+PiBwSU9NTVU/IE9yIGEgc2luZ2xlIG9uZT8NCj4NCj4gU2luZ2xlIHZJT01N
VSBtb2RlbCBpcyB1c2VkIGluIHRoaXMgZGVzaWduLg0KPg0KPj4gSGF2ZSB5b3UgY29uc2lkZXJl
ZCB0aGUgcHJvcy9jb25zIGZvciBib3RoPw0KPj4+IC0gUmVnaXN0ZXIvQ29tbWFuZCBFbXVsYXRp
b246IFNNTVV2MyByZWdpc3RlciBlbXVsYXRpb24gYW5kIGNvbW1hbmQNCj4+PiAgIMKgIHF1ZXVl
IGhhbmRsaW5nDQo+PiANCj4NCj4gVGhhdCdzIGEgcG9pbnQgZm9yIGNvbnNpZGVyYXRpb24uDQo+
IHNpbmdsZSB2SU9NTVUgcHJldmFpbHMgaW4gdGVybXMgb2YgbGVzcyBjb21wbGV4IGltcGxlbWVu
dGF0aW9uIGFuZCBhDQo+IHNpbXBsZSBndWVzdCBpb21tbXUgbW9kZWwgLSBzaW5nbGUgdklPTU1V
IG5vZGUsIG9uZSBpbnRlcnJ1cHQgcGF0aCwNCj4gZXZlbnQgcXVldWUsIHNpbmdsZSBzZXQgb2Yg
dHJhcCBoYW5kbGVycyBmb3IgZW11bGF0aW9uLCBldGMuDQo+IENvbnMgZm9yIGEgc2luZ2xlIHZJ
T01NVSBtb2RlbCBjb3VsZCBiZSBsZXNzIGFjY3VyYXRlIGh3DQo+IHJlcHJlc2VudGF0aW9uIGFu
ZCBhIHBvdGVudGlhbCBib3R0bGVuZWNrIHdpdGggb25lIGVtdWxhdGVkIHF1ZXVlIGFuZA0KPiBp
bnRlcnJ1cHQgcGF0aC4NCj4gT24gdGhlIG90aGVyIGhhbmQsIHZJT01NVSBwZXIgcElPTU1VIHBy
b3ZpZGVzIG1vcmUgYWNjdXJhdGUgaHcNCj4gbW9kZWxpbmcgYW5kIG9mZmVycyBiZXR0ZXIgc2Nh
bGFiaWxpdHkgaW4gY2FzZSBvZiBtYW55IElPTU1VcyBpbiB0aGUNCj4gc3lzdGVtLCBidXQgdGhp
cyBjb21lcyB3aXRoIG1vcmUgY29tcGxleCBlbXVsYXRpb24gbG9naWMgYW5kIGRldmljZQ0KPiB0
cmVlLCBhbHNvIGhhbmRsaW5nIG11bHRpcGxlIHZJT01NVXMgb24gZ3Vlc3Qgc2lkZS4NCj4gSU1P
LCBzaW5nbGUgdklPTU1VIG1vZGVsIHNlZW1zIGxpa2UgYSBiZXR0ZXIgb3B0aW9uIG1vc3RseSBi
ZWNhdXNlDQo+IGl0J3MgbGVzcyBjb21wbGV4LCBlYXNpZXIgdG8gbWFpbnRhaW4gYW5kIGRlYnVn
LiBPZiBjb3Vyc2UsIHRoaXMNCj4gZGVjaXNpb24gY2FuIGFuZCBzaG91bGQgYmUgZGlzY3Vzc2Vk
Lg0KPg0KDQpXZWxsLCBJIGFtIG5vdCBzdXJlIHRoYXQgdGhpcyBpcyBwb3NzaWJsZSwgYmVjYXVz
ZSBvZiBTdHJlYW1JRA0KYWxsb2NhdGlvbi4gVGhlIGJpZ2dlc3Qgb2ZmZW5kZXIgaXMgb2YgY291
cnNlIFBDSSwgYXMgZWFjaCBSb290IFBDSQ0KYnJpZGdlIHdpbGwgcmVxdWlyZSBvd24gU01NVSBp
bnN0YW5jZSB3aXRoIG93biBTdHJlYW1JRCBzcGFjZS4gQnV0IGV2ZW4NCndpdGhvdXQgUENJIHlv
dSdsbCBuZWVkIHNvbWUgbWVjaGFuaXNtIHRvIG1hcCB2U3RyZW1JRCB0bw0KPHBTTU1VLCBwU3Ry
ZWFtSUQ+LCBiZWNhdXNlIHRoZXJlIHdpbGwgYmUgb3ZlcmxhcHMgaW4gU0lEIHNwYWNlLg0KDQoN
CkFjdHVhbGx5LCBQQ0kvdlBDSSB3aXRoIHZTTU1VIGlzIGl0cyBvd24gY2FuIG9mIHdvcm1zLi4u
DQoNCj4+IEZvciBlYWNoIHBTTU1VLCB3ZSBoYXZlIGEgc2luZ2xlIGNvbW1hbmQgcXVldWUgdGhh
dCB3aWxsIHJlY2VpdmUgY29tbWFuZA0KPj4gZnJvbSBhbGwgdGhlIGd1ZXN0cy4gSG93IGRvIHlv
dSBwbGFuIHRvIHByZXZlbnQgYSBndWVzdCBob2dnaW5nIHRoZQ0KPj4gY29tbWFuZCBxdWV1ZT8N
Cj4+IEluIGFkZGl0aW9uIHRvIHRoYXQsIEFGQUlVLCB0aGUgc2l6ZSBvZiB0aGUgdmlydHVhbCBj
b21tYW5kIHF1ZXVlIGlzDQo+PiBmaXhlZCBieSB0aGUgZ3Vlc3QgcmF0aGVyIHRoYW4gWGVuLiBJ
ZiBhIGd1ZXN0IGlzIGZpbGxpbmcgdXAgdGhlIHF1ZXVlDQo+PiB3aXRoIGNvbW1hbmRzIGJlZm9y
ZSBub3RpZnlpbmcgWGVuLCBob3cgZG8geW91IHBsYW4gdG8gZW5zdXJlIHdlIGRvbid0DQo+PiBz
cGVuZCB0b28gbXVjaCB0aW1lIGluIFhlbiAod2hpY2ggaXMgbm90IHByZWVtcHRpYmxlKT8NCj4+
IA0KPg0KPiBXZSdsbCBoYXZlIHRvIGRvIGEgZGV0YWlsZWQgYW5hbHlzaXMgb24gdGhlc2Ugc2Nl
bmFyaW9zLCB0aGV5IGFyZSBub3QNCj4gY292ZXJlZCBieSB0aGUgZGVzaWduIChhcyB3ZWxsIGFz
IHNvbWUgb3RoZXJzIHdoaWNoIGlzIGNsZWFyIGFmdGVyDQo+IHlvdXIgY29tbWVudHMpLiBJJ2xs
IGNvbWUgYmFjayB3aXRoIGFuIHVwZGF0ZWQgZGVzaWduLg0KDQpJIHRoaW5rIHRoYXQgY2FuIGJl
IGhhbmRsZWQgYWtpbiB0byBoeXBlcmNhbGwgY29udGludWF0aW9uLCB3aGljaCBpcw0KdXNlZCBp
biBzaW1pbGFyIHBsYWNlcywgbGlrZSBQMk0gY29kZQ0KDQpbLi4uXQ0KDQotLSANCldCUiwgVm9s
b2R5bXly


From xen-devel-bounces@lists.xenproject.org Tue Aug 26 23:51:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 26 Aug 2025 23:51:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095329.1450383 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ur3Rl-0001R0-Gs; Tue, 26 Aug 2025 23:51:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095329.1450383; Tue, 26 Aug 2025 23:51:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ur3Rl-0001Qt-DM; Tue, 26 Aug 2025 23:51:25 +0000
Received: by outflank-mailman (input) for mailman id 1095329;
 Tue, 26 Aug 2025 23:51:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fAYs=3G=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1ur3Rk-0001QL-2T
 for xen-devel@lists.xenproject.org; Tue, 26 Aug 2025 23:51:24 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8a078be4-82d7-11f0-a32c-13f23c93f187;
 Wed, 27 Aug 2025 01:51:10 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 9F30B4170E;
 Tue, 26 Aug 2025 23:51:08 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 29F0FC4CEF1;
 Tue, 26 Aug 2025 23:51:07 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8a078be4-82d7-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1756252268;
	bh=VvrEyNpb1mSnN/cwitu39pu8cQDWyuQkLueP718y3SM=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=KsqbCSS32wtyFBthAhyfLqBKKo3QyEUI84PL1Orjoj3NYjikHmJbsP8iJZo1LPSI4
	 QvyEWAqnPVmT3QqIPjGuVclaOQMsktXQtGWPMBDRk3IDosNJhBRVBmIqYFUYlALyWY
	 CGbvdO3PbeV0q70He1kJ8BdTds5xj5FUkxSwv63MbbcI5KrhVcT63qqfSdk3J4TGvy
	 +b4TNhF/yHwF3wrjWIHbHi5VyYj1KQXP+6oWQxn7MxdqWD9ExxdL5cwHQF6kswCxyG
	 nhlWwpSpii34BxZdTWHAk52uXdVSUXwKiPw6eaqLNImug1cCddSrWp7JR4ouxyHafy
	 3sZXUxaDdzXLg==
Date: Tue, 26 Aug 2025 16:51:05 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
cc: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, 
    Jan Beulich <jbeulich@suse.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Doug Goldstein <cardoe@cardoe.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>, 
    xen-devel@lists.xenproject.org
Subject: Re: [PATCH] misra: add deviation of Rule 2.1 for BUG() macro
In-Reply-To: <97fe4a398af94ee08a15a586ac4a6b4e@bugseng.com>
Message-ID: <alpine.DEB.2.22.394.2508261648590.3391208@ubuntu-linux-20-04-desktop>
References: <f7b4112aad84162c25f96a9d6db43a0c2ba85daa.1756046023.git.dmytro_prokopchuk1@epam.com> <60022d5c-1a9f-4a6d-8df2-bca57cefcf59@suse.com> <d9e9deaa-fa3e-4f4a-aa70-772af4bc1371@epam.com> <97fe4a398af94ee08a15a586ac4a6b4e@bugseng.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Tue, 26 Aug 2025, Nicola Vetrini wrote:
> On 2025-08-26 20:07, Dmytro Prokopchuk1 wrote:
> > On 8/25/25 13:07, Jan Beulich wrote:
> > > On 24.08.2025 16:56, Dmytro Prokopchuk1 wrote:
> > > > --- a/docs/misra/deviations.rst
> > > > +++ b/docs/misra/deviations.rst
> > > > @@ -97,6 +97,19 @@ Deviations related to MISRA C:2012 Rules:
> > > >          Xen expects developers to ensure code remains safe and reliable
> > > > in builds,
> > > >          even when debug-only assertions like `ASSERT_UNREACHABLE() are
> > > > removed.
> > > > 
> > > > +   * - R2.1
> > > > +     - The 'BUG()' macro is intentionally used in the 'prepare_acpi()'
> > > > function
> > > > +       in specific build configuration (when the config CONFIG_ACPI is
> > > > not
> > > > +       defined) to trigger an error if ACPI-related features are used
> > > > incorrectly.
> > > > +     - Tagged as `deliberate` for ECLAIR.
> > > 
> > > With
> > > 
> > > #define acpi_disabled true
> > > 
> > > in xen/acpi.h I don't see why we even have that inline stub. When it's
> > > dropped
> > > and the declaration left in place without #ifdef CONFIG_ACPI around it,
> > > the
> > > compiler will DCE the code (much like we arrange for in many other
> > > places). No
> > > deviation needed then.
> > > 
> > > If such a deviation was to be added, it would need disambiguating. A
> > > function
> > > of the given name could appear in x86 as well. That wouldn't be covered by
> > > the
> > > Eclair config then, but it would be covered by the text here.
> > > 
> > > > +   * - R2.1
> > > > +     - The 'BUG()' macro is intentionally used in 'gicv3_do_LPI'() and
> > > > +       'gicv3_its_setup_collection()' functions in specific build
> > > > configuration
> > > > +       (when the config CONFIG_HAS_ITS is not defined) to catch and
> > > > prevent any
> > > > +       unintended execution of code that should only run when ITS is
> > > > available.
> > > > +     - Tagged as `deliberate` for ECLAIR.
> > > 
> > > I didn't look at this, but I would very much hope that something similar
> > > could
> > > be done there as well.
> > > 
> > > Jan
> > 
> > After small changes related to prepare_acpi() function, Misra R2.1
> > violation has gone. The compiler really does DCE:
> > 
> >      if ( acpi_disabled <<< this is TRUE )
> >      {
> >          rc = prepare_dtb_hwdom(d, kinfo);
> >          if ( rc < 0 )
> >              return rc;
> > #ifdef CONFIG_HAS_PCI
> >          rc = pci_host_bridge_mappings(d);
> > #endif
> >      }
> >      else
> >          rc = prepare_acpi(d, kinfo); <<< DCE
> > 
> > I will publish it as separate patch.
> > Thanks to Jan, I really appreciate his help.
> > 
> > 
> > The situation with functions gicv3_do_LPI(),
> > gicv3_its_setup_collection() and config CONFIG_HAS_ITS is little bit
> > different.
> > The compiler can do DCE in case when config CONFIG_HAS_ITS is "y", and
> > Misra R2.1 violation related to these functions also can be resolved.
> > Actually, no changes in source code need for that.
> > But Eclair detects these violations because config CONFIG_HAS_ITS is
> > "n", and source code is really compiled with inline stub functions (with
> > BUG() macro).
> > This is because config CONFIG_HAS_ITS is "experimental/unsupported"
> > 
> >      config HAS_ITS
> >              bool "GICv3 ITS MSI controller support (UNSUPPORTED)" if
> >   UNSUPPORTED
> >          depends on GICV3 && !NEW_VGIC && !ARM_32
> > 
> > and to enable it need to set additional config: "CONFIG_UNSUPPORTED=y".
> > 
> > I tried to test it (added "CONFIG_UNSUPPORTED=y" into
> > automation/gitlab-ci/analyze.yaml file). You can see my CI pipeline:
> > https://eclair-analysis-logs.xenproject.org/fs/var/local/eclair/xen-project.ecdf/xen-project/people/dimaprkp4k/xen/ECLAIR_normal/rule_2.1_gicv3_its_host_has_its_v2/ARM64/11144854092/PROJECT.ecd;/by_service.html#service&kind
> > 
> > Unfortunately, I observed +6 new violations with that additional config
> > "CONFIG_UNSUPPORTED=y".
> > 
> > I don't know how and why these EXTRA_XEN_CONFIG were selected in the
> > file 'automation/gitlab-ci/analyze.yaml'. And are we able to add new
> > configs here ?....
> > 
> 
> You'll have to ask Stefano about that, but I doubt at this stage. Those set of
> configs for Arm and X86 has been selected ~2 years ago.

We have migrated to a new faster ECLAIR runner.

I do not think we should change the existing configuration. If anything,
I would remove options from it rather than add more.

However, we can add additional configurations by creating more ECLAIR
jobs, and thanks to the new runner we should be able to keep up.


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 00:16:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 00:16:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095340.1450394 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ur3qA-0004xb-78; Wed, 27 Aug 2025 00:16:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095340.1450394; Wed, 27 Aug 2025 00:16: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 1ur3qA-0004xT-3A; Wed, 27 Aug 2025 00:16:38 +0000
Received: by outflank-mailman (input) for mailman id 1095340;
 Wed, 27 Aug 2025 00:16:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=QSw+=3H=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1ur3q8-0004xN-Iy
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 00:16:36 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 14c9a77c-82db-11f0-b898-0df219b8e170;
 Wed, 27 Aug 2025 02:16:30 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by AS8PR03MB7157.eurprd03.prod.outlook.com
 (2603:10a6:20b:2ed::5) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Wed, 27 Aug
 2025 00:16:27 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9052.019; Wed, 27 Aug 2025
 00: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>
X-Inumbo-ID: 14c9a77c-82db-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Os74dahsojDjdhSv+vAtyvXW93rkPBYYwZSLppJsWZkQpv0qElxypicz3xwywmA50NUYwo+ArqDZI6UbjoOssvc9wdDngXyXfFkg7CHUiqzvq3WtkZ+1HBpsbnu7boZtKqLILBfVpmkWelzcg46SNL7rL7nytF0SyOyvhCCqt5YOnrn/uxOs3rvs1aYOUZusoMhmx0h50oOGhkdrN2t8oYENnode7ESjo/XFf74plu4/D8VTBzHgSzQqwL0iTMbrI5qs+OtJUuHjH9AgoK+hoMn96n8c/ofK3r9EELmnGeyYqcdPgz3LhD/tYQLvB4aYXaEDouYljhW2nLvc9EWj6A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7glPnS7pM0hUXYaivkOmclJe4QRGcv9zxiCMVua7KN8=;
 b=ff8zCk4A0yVTZccgcWVqZazTwd2j7+nwm4Mhs8wbvD5ZrEiPujNF1z5g06YJRwa2fc31DwuAlYHIv9jNjjiw3O3+gwf2wnV+DaWJnO6ssOBvL/0qYcbQViy4aD91GEUODA9E/0OMcW40s5zMC6HLApewpKNga56J5KpIrspSB7ryMcrgo/qBbSNZiX5QfDv0lJymk7nTCVKT1AotpSGdOvxSUbTPuX6UTSnHBFoCe59JZ2HuVkRpKWuXwbq+mxwkuu5YNx0FWYCZJw+yf1yPSJgUAJOIaW66Nb0qlFu6Ma+N/p7Z+7p+cMIQAha2waURmwFN5AIKieHgeRlIDNr88Q==
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=7glPnS7pM0hUXYaivkOmclJe4QRGcv9zxiCMVua7KN8=;
 b=RlL72ZPJboD+eyxiKhRtHmgy/0PWN5e5tIslUbtG/pl5YFHxj9qjUf6KERPRGFYgd6b7mv4V4zc6KpIWWHAbirdisQNvjqXfkVdxfa+u6Iktj74MAVv0Gf/4X7HQDB7RtjAZmprnsqr2OTIlsSXsR058eoKBiDOn9v70oyYJwzjhImp+1ZOZ7gJ53wKuh5E95GTubobjTtPLRcD7ebposlZb+9av/xYqcrJmGzjayAVaPIuM5h/X1ZfkFcQNGEUBUxhGfJ5nuApYiYyV6mZpp1uI4hV4EsJBH4kBhUQGkOxBdMmqsvQ65IWLMEjBNBKSVPea9kYpb1sHy7vbxqaoFw==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Grygorii Strashko <grygorii_strashko@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v2 3/4] xen/arm64: allow to make aarch32 support optional
Thread-Topic: [PATCH v2 3/4] xen/arm64: allow to make aarch32 support optional
Thread-Index: AQHcBrdwMT62m9IEakijYkjoB+xNdw==
Date: Wed, 27 Aug 2025 00:16:27 +0000
Message-ID: <87ms7l39gl.fsf@epam.com>
References: <20250806094929.293658-1-grygorii_strashko@epam.com>
	<20250806094929.293658-4-grygorii_strashko@epam.com>
In-Reply-To: <20250806094929.293658-4-grygorii_strashko@epam.com> (Grygorii
	Strashko's message of "Wed, 6 Aug 2025 09:49:43 +0000")
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_|AS8PR03MB7157:EE_
x-ms-office365-filtering-correlation-id: d485c87b-2811-4b6a-0abb-08dde4fef734
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|42112799006|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?3C3cXpFKNgIkV371z8COIFq42iVazTnBllomcwJSzqeItuBzxE52S7WI6N?=
 =?iso-8859-1?Q?WjXMDRVvdasIDhcydHWMFRJfBNl1QcHSSCN2ISySfT9F1wFVcqk1KXxH63?=
 =?iso-8859-1?Q?AV6L5V2JU5DRLYeXU3WrO2hRfckzf9EKS230X4apKjxCQHFO+2fTrtjbX6?=
 =?iso-8859-1?Q?QKbFteFdBiJtUmf7xMPS9ARoxq2ArF488A+aTeiqSgAO61jVkenhkK+Pjv?=
 =?iso-8859-1?Q?nlAzW47ritw9v/k6EbqfufCCEoMyQT0h9tJBnCrp8cnTtqkZ/qTAiHOgdn?=
 =?iso-8859-1?Q?egLnkhv2vpkD0YZwa7p2Hd9tcPmwg5stRROCfU1d7XiKNmiBSmnU5RfbyI?=
 =?iso-8859-1?Q?+BVm0Hjs3ScInvoIPmeTIarQCvygnElDtZTMvGkL8C+/EvO2ryDxGOTv49?=
 =?iso-8859-1?Q?bCBtD3NSJpormkAbw8oouaqaIwG02BgkrZntO0R/ti1xIbOEX3RlG52POS?=
 =?iso-8859-1?Q?ZMjq1yYYZkBRvaXPwFjpuMGnAuHwZycd69CUKz6l6PY7uCq+uqMAA8TqUg?=
 =?iso-8859-1?Q?yMt+r+TK1TwLMFf7z9KN0XNgDlwMn1eEixKDZimWaElOvq9v8BFbXYD5Uj?=
 =?iso-8859-1?Q?EMzuNj5yGFvTS0qR5dnL7L9rTMeOk7euTtu0IViQXHKk1bMyOYP6Ky/oeT?=
 =?iso-8859-1?Q?zyU8jfiAbC3LGHgrLITsQ9kiZDfn/FWDyMn3Yn7R9e/1tdZ9sEHB86+mjm?=
 =?iso-8859-1?Q?tryyIXiJBdaDBHje9+wpQ5l+LOjvFSR+FDeZgQhx55U7KlI/sK9zGQNqnd?=
 =?iso-8859-1?Q?qieGS159ncXSL2fXVL7VERea9DCDk2Bsk6A1vEcy2prGSb3UI/nq6bIfDr?=
 =?iso-8859-1?Q?KyuDr6SxvothdoWYhyE8d0lz1uYcdWqYcIu90vMH8apLeodalBlUIESyl2?=
 =?iso-8859-1?Q?sLsHPlX9ykNzTpDcHItd7vex9RBB90iVWe/3yRfvMlh30Y5v07v/z5dSf4?=
 =?iso-8859-1?Q?kNxn6IxU2fFtRbfNgStGVPBRkSzqvyGf2WSkT5LspN1y9c+vmx8YZMBRE3?=
 =?iso-8859-1?Q?wMe0uCpGSJ0QbdZNcoC8g8EmUwnmmNbpdwuw/CYip47vRwdwnfx7oz9nbc?=
 =?iso-8859-1?Q?YJORiTfbvoqnJoNNYITsJnN9PsMk048SesTZlRPu/3OBaqlZocFSJFc9L1?=
 =?iso-8859-1?Q?9Q49BB/ZgUgP91RticpJewoVxB+GjCp/7n9WXQIZohGK4Tm7xIDI6SXvQM?=
 =?iso-8859-1?Q?SMJk8a2uwIJA9eQx8h1QmSGRThKVf/iVoOWpAu2OngDFH0liMDSZ84UI/K?=
 =?iso-8859-1?Q?rEWdnhMfKZcyjA+KrS9YzCf7Q8xb5sHhugpplQjwuYQVW88OV/pFO0YC+u?=
 =?iso-8859-1?Q?PIRWe74ub4IuwQmNVxIUxMmyjjnWS8BvTob5iDpuZimPUeq102Y04Qd1l2?=
 =?iso-8859-1?Q?stN026Of4Rw3moSvf/oTdG0iiRTpIg/37UhkvwrfiOJYzDjrjHILRoO/2J?=
 =?iso-8859-1?Q?ur6wUiZMAhLHdF7ACOkwlY6+fShXnLZNzQsMLWX1Cx2ISpwTTrAvpqbBa2?=
 =?iso-8859-1?Q?4i1O4LQ3SIMM43gWb/y3KZSNKKBLAXiDAHjri1w9r13w=3D=3D?=
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)(1800799024)(376014)(42112799006)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?n7E/rg9vvKRBszs8Z9mH/xv8UUnnDgsgoAdPVqjp463Cl+/wve9OQTnX8/?=
 =?iso-8859-1?Q?DrSiHOTItnXQXcXhX+c9gjbVgBPyvttqiHC69G7iTYZ97sz0EAdFsPGLMs?=
 =?iso-8859-1?Q?aqnUt/EZ3UY3uFiAkcyhuw5c+lTK2NYEOsaP2XVFwODlG39/MWFQQxZ2gZ?=
 =?iso-8859-1?Q?PYTyPGHnbJJOr3n/zzh3nUTBpRFYNm5xzAAK/x6ojqO7AWEz1RdAJODmOM?=
 =?iso-8859-1?Q?l/LQVCMXMbB7RJkPFBJ4eW2VKpOacI/+IW6VnSI0Zo16xBagEpeyZjMufq?=
 =?iso-8859-1?Q?omTJjgbwmaJaA2G8mDBCtZJt6JgjBddXn4I98cDotI41U81Peq3vJdnrVo?=
 =?iso-8859-1?Q?XFN492NDuDuJcoqo9qV5xltGa6446rhBqPz1f312uj8mlpX8VJyV5Bu9aU?=
 =?iso-8859-1?Q?LQkreK3r/bEPUph5Q8g88rgfTFmcxTLZd1xBpqnxG+Ivvat8C3omBSiLLz?=
 =?iso-8859-1?Q?hn9xhQrjMaGk8UeNuBWR9IUceTdTyLH5/m8g6rUj43YF/hmTE1eV8GQRGO?=
 =?iso-8859-1?Q?RwB+kzoqKHtXQqSo/FyGja6gp07mVpW7KXHk5XoP7aSkzsSkPBM6pJihyG?=
 =?iso-8859-1?Q?xY6fodt6vHbCba6YUjMq5l7MF4812PcBymMFNJhEvb9tebXvkmkpiopWX5?=
 =?iso-8859-1?Q?lXetE0kQZdGJpjsxf7whsqF2mO36WzhTyzZEfkJmG2hpssU6TXUYhY/hc+?=
 =?iso-8859-1?Q?xm59xImVaZhxiic7QY3AIY7VTOm5ar/COOJUdNAZ7qXd/KXN4AixF+N4SL?=
 =?iso-8859-1?Q?/ZE8sduqepfdVIte0W3z3XWN/fStodLf8mSCvFdBJua/K4eYPclbx2HIw1?=
 =?iso-8859-1?Q?oU+qLj6v1Jr8cYKcp1EvpUeVxZQLfPQuZeLXmqFpfejLNIEOKIlgjNlil8?=
 =?iso-8859-1?Q?TVm3es5tCvcvOlxq9Mp+jyUM11TSlr0GddD2KmS/hgLKQ+caZcIDOBWJdm?=
 =?iso-8859-1?Q?85XjQyXiZU8SnBHGCQELoTk+xmqE9TT0SlPLHVsTf7cIPSPBX7tLnLWeWs?=
 =?iso-8859-1?Q?uiR88BKvRDNfPWxZdeVYuJ2YIMvOdc3NcsUfjByBQySUDsPZcK9kwiHwVy?=
 =?iso-8859-1?Q?WhchSriEFHMRYptrrgKTj3F+i72S73Grtwff5T971pFfJImWWGl0Z23o31?=
 =?iso-8859-1?Q?8d/S99zyBkwtR59bZKHXFue/ASo11ItLtOEPInOprLHHNCfcozV5ZSqdA8?=
 =?iso-8859-1?Q?uv6QqWndwaKX7scxqmwtPw68QxxIbnnkm7eq9JdGD6Dbu+bYSYMr1y8ZbQ?=
 =?iso-8859-1?Q?Hk6faNpIo3YhAMmPswyGud/XkySZckc8/89sHwdJuFffKbYroSQBD1an0f?=
 =?iso-8859-1?Q?r0+KgPsRYRnWbX7lJLadCVArkkFUFQw+poxmp+WJAsLq4pYTh2QwPYbwPd?=
 =?iso-8859-1?Q?ettSntOhwYwIrXcKfCdE99ZHa0Dkw4dpt/Fex3aOZDvCJzz3nHJp+6X0bE?=
 =?iso-8859-1?Q?PeOgdZDluG0f0tehLDPvnkhuPHHK/Fn6lWlVyVymu5LOoRsRc4KvYurWAO?=
 =?iso-8859-1?Q?O0hptP2caZv+nL4CjbH5SV3R9OiTOj2dUQ+ZIaDAKuWgJtAkxHiOzsgewR?=
 =?iso-8859-1?Q?Wj1sVFod8J0XsHcEJcat1d9mHO6ohYU/53sJFUUY3k96XQ0yf3y9LggESq?=
 =?iso-8859-1?Q?arBgn5UcWI+l3EQNg4AU/MtuOOQsswpvPjWJvv/2ZJ7/i2Vdg0oEISnQ?=
 =?iso-8859-1?Q?=3D=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: d485c87b-2811-4b6a-0abb-08dde4fef734
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Aug 2025 00:16:27.6254
 (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: N/eOYnO8Zt1VEgY0DQYGcl4O3uPkJsULYkbjDcxgLy+4bmPgbBP/Wt6iI7KqHFd9Jx9bZc8tw+Dpuu+lcKh8jKGK5npThcvqdgFm4rE+uWQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7157

Hi Grygorii,

Grygorii Strashko <grygorii_strashko@epam.com> writes:

> From: Grygorii Strashko <grygorii_strashko@epam.com>
>
> Now Arm64 AArch32 guest support is always enabled and built-in while not
> all Arm64 platforms supports AArch32 (for exmaple on Armv9A) or this
> support might not be needed (Arm64 AArch32 is used quite rarely in embedd=
ed
> systems). More over, when focusing on safety certification, AArch32 relat=
ed
> code in Xen leaves a gap in terms of coverage that cannot really be
> justified in words. This leaves two options: either support it (lots of
> additional testing, requirements and documents would be needed) or compil=
e
> it out.
>
> Hence, this patch introduces basic support to allow make Arm64
> AArch32 guest support optional. The following changes are introduced:
>
> - Introduce Kconfig option CONFIG_ARM64_AARCH32 to allow enable/disable
>   Arm64 AArch32 guest support (default y)
>
> - Introduce is_aarch32_enabled() helper which accounts Arm64 HW capabilit=
y
>   and CONFIG_ARM64_AARCH32 setting
>
> - Introduce arm64_set_domain_type() to configure Arm64 domain type in
>   unified way instead of open coding (d)->arch.type, and account
>   CONFIG_ARM64_AARCH32 configuration.
>
> - toolstack: do not advertise "xen-3.0-armv7l " capability if AArch32 is
>   disabled.
>
> - do not expose EL1 AArch32 support to guest in ID_AA64PFR0_EL1 reg if
>   AArch32 is disabled.
>
> - Set Arm64 domain type to DOMAIN_64BIT by default.
>   - the Arm Xen boot code is handling this case properly already;
>   - for toolstack case the XEN_DOMCTL_set_address_size hypercall handling
>     updated to forcibly configure domain type regardless of current domai=
n
>     type configuration, so toolstack behavior is unchanged.
>
> With CONFIG_ARM64_AARCH32=3Dn the Xen will reject AArch32 guests (kernels=
) if
> configured by user in the following way:
> - Xen boot will fail with panic during dom0 or dom0less domains creation
> - toolstack domain creation will be rejected due to xc_dom_compat_check()
>   failure.
>
> Making Arm64 AArch32 guest support open further possibilities for build
> optimizations of Arm64 AArch32 guest support code.
>
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> ---
> changes in v2:
> - use Arm64 "cpu_has_el1_32" in all places to check if HW has AArch32 sup=
port
> - rework Arm64 XEN_DOMCTL_set_address_size hypercall handling to work wit=
h any
>   initial domain type set (32bit or 64 bit)
> - fix comments related to macro parameters evaluation issues
> - do not expose EL1 AArch32 support to guest in ID_AA64PFR0_EL1 reg if
>   AArch32 is disabled
>
>  xen/arch/arm/Kconfig                    |  7 ++++
>  xen/arch/arm/arm64/domain-build.c       | 46 +++++++++++++++++++++++--
>  xen/arch/arm/arm64/domctl.c             | 16 +++++----
>  xen/arch/arm/arm64/vsysreg.c            |  9 +++++
>  xen/arch/arm/domain.c                   |  9 +++++
>  xen/arch/arm/domain_build.c             | 21 +++--------
>  xen/arch/arm/include/asm/arm32/domain.h | 12 +++++++
>  xen/arch/arm/include/asm/arm64/domain.h | 23 +++++++++++++
>  xen/arch/arm/setup.c                    |  2 +-
>  9 files changed, 119 insertions(+), 26 deletions(-)
>
> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
> index a0c816047427..bf6dd73caf73 100644
> --- a/xen/arch/arm/Kconfig
> +++ b/xen/arch/arm/Kconfig
> @@ -266,6 +266,13 @@ config PCI_PASSTHROUGH
>  	help
>  	  This option enables PCI device passthrough
> =20
> +config ARM64_AARCH32
> +	bool "AArch32 Guests support on on ARM64 (UNSUPPORTED)" if UNSUPPORTED

But aarch32 guests are supported... I understand that you wanted to say
"Disabling aarch32 support is unsupported". But currently this entry
reads backwards. I think it should be reworded better. But I have no
idea - how to do this.

> +	depends on ARM_64
> +	default y
> +	help
> +	  This option enables AArch32 Guests on ARM64.
> +
>  endmenu
> =20
>  menu "ARM errata workaround via the alternative framework"
> diff --git a/xen/arch/arm/arm64/domain-build.c b/xen/arch/arm/arm64/domai=
n-build.c
> index 3a89ee46b8c6..5951f002e3af 100644
> --- a/xen/arch/arm/arm64/domain-build.c
> +++ b/xen/arch/arm/arm64/domain-build.c
> @@ -4,13 +4,55 @@
>  #include <xen/sched.h>
> =20
>  #include <asm/domain.h>
> +#include <asm/arm64/sve.h>
> +
> +int __init arm64_set_domain_type(struct kernel_info *kinfo)
> +{
> +    struct domain *d =3D kinfo->bd.d;
> +    enum domain_type type;
> +
> +    ASSERT(d);
> +    ASSERT(kinfo);

I don't think there is a sense in asserting that kinfo !=3D NULL after you
dereferenced it retrieve "d"

> +
> +    type =3D kinfo->arch.type;
> +
> +    if ( !is_aarch32_enabled() )
> +    {
> +        ASSERT(d->arch.type =3D=3D DOMAIN_64BIT);
> +
> +        if ( type =3D=3D DOMAIN_32BIT )
> +        {
> +            const char *str =3D "not available";
> +
> +            if ( !IS_ENABLED(CONFIG_ARM64_AARCH32) )
> +                str =3D "disabled";
> +            printk("aarch32 guests support is %s\n", str);

XENLOG_ERROR?

> +            return -EINVAL;
> +        }
> +
> +        return 0;
> +    }
> +
> +    if ( is_sve_domain(d) && type =3D=3D DOMAIN_32BIT )
> +    {
> +        printk("SVE is not available for 32-bit domain\n");

XENLOG_ERROR?

> +        return -EINVAL;
> +    }
> +
> +    d->arch.type =3D type;
> +
> +    return 0;
> +}
> =20
>  #ifdef CONFIG_DOM0LESS_BOOT
>  /* TODO: make arch.type generic ? */
>  void __init set_domain_type(struct domain *d, struct kernel_info *kinfo)
>  {
> -    /* type must be set before allocate memory */
> -    d->arch.type =3D kinfo->arch.type;
> +    int rc;
> +
> +    rc =3D arm64_set_domain_type(kinfo);
> +    if ( rc < 0 )
> +        panic("Unsupported guest type\n");
>  }
>  #endif
> =20
> diff --git a/xen/arch/arm/arm64/domctl.c b/xen/arch/arm/arm64/domctl.c
> index 8720d126c97d..4f0f143daef8 100644
> --- a/xen/arch/arm/arm64/domctl.c
> +++ b/xen/arch/arm/arm64/domctl.c
> @@ -13,6 +13,11 @@
>  #include <asm/arm64/sve.h>
>  #include <asm/cpufeature.h>
> =20
> +static void vcpu_switch_to_aarch32_mode(struct vcpu *v)
> +{
> +    v->arch.hcr_el2 &=3D ~HCR_RW;
> +}
> +
>  static long switch_mode(struct domain *d, enum domain_type type)
>  {
>      struct vcpu *v;
> @@ -21,14 +26,14 @@ static long switch_mode(struct domain *d, enum domain=
_type type)
>          return -EINVAL;
>      if ( domain_tot_pages(d) !=3D 0 )
>          return -EBUSY;
> -    if ( d->arch.type =3D=3D type )
> -        return 0;
> =20
>      d->arch.type =3D type;
> =20
> -    if ( is_64bit_domain(d) )
> -        for_each_vcpu(d, v)
> +    for_each_vcpu(d, v)
> +        if ( is_64bit_domain(d) )

Do you really need to check domain type for every vCPU? I think that
original variant was better.

>              vcpu_switch_to_aarch64_mode(v);
> +        else
> +            vcpu_switch_to_aarch32_mode(v);
> =20
>      return 0;
>  }
> @@ -38,7 +43,7 @@ static long set_address_size(struct domain *d, uint32_t=
 address_size)
>      switch ( address_size )
>      {
>      case 32:
> -        if ( !cpu_has_el1_32 )
> +        if ( !is_aarch32_enabled() )
>              return -EINVAL;
>          /* SVE is not supported for 32 bit domain */
>          if ( is_sve_domain(d) )
> @@ -58,7 +63,6 @@ long subarch_do_domctl(struct xen_domctl *domctl, struc=
t domain *d,
>      {
>      case XEN_DOMCTL_set_address_size:
>          return set_address_size(d, domctl->u.address_size.size);
> -

Stray change?

>      default:
>          return -ENOSYS;
>      }
> diff --git a/xen/arch/arm/arm64/vsysreg.c b/xen/arch/arm/arm64/vsysreg.c
> index d14258290ff0..9f7e735c9b74 100644
> --- a/xen/arch/arm/arm64/vsysreg.c
> +++ b/xen/arch/arm/arm64/vsysreg.c
> @@ -330,6 +330,15 @@ void do_sysreg(struct cpu_user_regs *regs,
>      {
>          register_t guest_reg_value =3D domain_cpuinfo.pfr64.bits[0];
> =20
> +        if ( !is_aarch32_enabled() )
> +        {
> +            /* do not expose EL1 AArch32 support if disabled */
> +            register_t mask =3D GENMASK(ID_AA64PFR0_EL1_SHIFT + 4 - 1,
> +                                      ID_AA64PFR0_EL1_SHIFT);
> +            guest_reg_value &=3D ~mask;
> +            guest_reg_value |=3D (1 << ID_AA64PFR0_EL1_SHIFT) & mask;

Why do you need to apply mask here?

> +        }
> +
>          if ( is_sve_domain(v->domain) )
>          {
>              /* 4 is the SVE field width in id_aa64pfr0_el1 */
> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
> index 310c5789096d..544d1422a793 100644
> --- a/xen/arch/arm/domain.c
> +++ b/xen/arch/arm/domain.c
> @@ -791,6 +791,15 @@ int arch_domain_create(struct domain *d,
>      d->arch.sve_vl =3D config->arch.sve_vl;
>  #endif
> =20
> +#ifdef CONFIG_ARM_64
> +    /*
> +     * Set default Execution State to AArch64 (64bit)
> +     * - Xen will reconfigure it properly at boot time
> +     * - toolstack will reconfigure it properly by XEN_DOMCTL_set_addres=
s_size
> +     */
> +    d->arch.type =3D DOMAIN_64BIT;
> +#endif
> +
>      return 0;
> =20
>  fail:
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index 47ba920fc6b0..c616127e8da5 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -1873,19 +1873,6 @@ int __init construct_domain(struct domain *d, stru=
ct kernel_info *kinfo)
>      BUG_ON(v->is_initialised);
> =20
>  #ifdef CONFIG_ARM_64
> -    /* if aarch32 mode is not supported at EL1 do not allow 32-bit domai=
n */
> -    if ( !(cpu_has_el1_32) && kinfo->arch.type =3D=3D DOMAIN_32BIT )
> -    {
> -        printk("Platform does not support 32-bit domain\n");
> -        return -EINVAL;
> -    }
> -
> -    if ( is_sve_domain(d) && (kinfo->arch.type =3D=3D DOMAIN_32BIT) )
> -    {
> -        printk("SVE is not available for 32-bit domain\n");
> -        return -EINVAL;
> -    }
> -
>      if ( is_64bit_domain(d) )
>          vcpu_switch_to_aarch64_mode(v);
> =20
> @@ -1983,6 +1970,10 @@ static int __init construct_dom0(struct domain *d)
>      if ( rc < 0 )
>          return rc;
> =20
> +    rc =3D arm64_set_domain_type(&kinfo);
> +    if ( rc < 0 )
> +        return rc;
> +
>      return construct_hwdom(&kinfo, NULL);
>  }
> =20
> @@ -1994,10 +1985,6 @@ int __init construct_hwdom(struct kernel_info *kin=
fo,
> =20
>      iommu_hwdom_init(d);
> =20
> -#ifdef CONFIG_ARM_64
> -    /* type must be set before allocate_memory */
> -    d->arch.type =3D kinfo->arch.type;
> -#endif
>      find_gnttab_region(d, kinfo);
>      if ( is_domain_direct_mapped(d) )
>          allocate_memory_11(d, kinfo);
> diff --git a/xen/arch/arm/include/asm/arm32/domain.h b/xen/arch/arm/inclu=
de/asm/arm32/domain.h
> index 1bd0735c9194..30e8818ff2ae 100644
> --- a/xen/arch/arm/include/asm/arm32/domain.h
> +++ b/xen/arch/arm/include/asm/arm32/domain.h
> @@ -3,11 +3,23 @@
>  #ifndef ARM_ARM32_DOMAIN_H
>  #define ARM_ARM32_DOMAIN_H
> =20
> +struct kernel_info;
> +
>  /* Arm32 always runs guests in AArch32 mode */
> =20
>  #define is_32bit_domain(d) ((void)(d), 1)
>  #define is_64bit_domain(d) ((void)(d), 0)
> =20
> +static inline bool is_aarch32_enabled(void)
> +{
> +    return true;
> +}
> +
> +static inline int arm64_set_domain_type(struct kernel_info *kinfo)
> +{
> +    return 0;
> +}
> +
>  #endif /* ARM_ARM32_DOMAIN_H */
> =20
>  /*
> diff --git a/xen/arch/arm/include/asm/arm64/domain.h b/xen/arch/arm/inclu=
de/asm/arm64/domain.h
> index 1a2d73950bf0..bebcbc582f97 100644
> --- a/xen/arch/arm/include/asm/arm64/domain.h
> +++ b/xen/arch/arm/include/asm/arm64/domain.h
> @@ -3,6 +3,10 @@
>  #ifndef ARM_ARM64_DOMAIN_H
>  #define ARM_ARM64_DOMAIN_H
> =20
> +#include <asm/cpufeature.h>
> +
> +struct kernel_info;
> +
>  /*
>   * Returns true if guest execution state is AArch32
>   *
> @@ -17,6 +21,25 @@
>   */
>  #define is_64bit_domain(d) ((d)->arch.type =3D=3D DOMAIN_64BIT)
> =20
> +/*
> + * Arm64 declares AArch32 (32bit) Execution State support in the
> + * Processor Feature Registers (PFR0), but also can be disabled manually=
.
> + */
> +static inline bool is_aarch32_enabled(void)
> +{
> +    return IS_ENABLED(CONFIG_ARM64_AARCH32) && cpu_has_el1_32;
> +}
> +
> +/*
> + * Set domain type from struct kernel_info which defines guest Execution
> + * State AArch32/AArch64 during regular dom0 or predefined (dom0less)
> + * domains creation .

Extra space before full stop

> + * Type must be set before allocate_memory or create vcpus.
> + *
> + * @kinfo: pointer to the kinfo structure.
> + */
> +int arm64_set_domain_type(struct kernel_info *kinfo);
> +
>  #endif /* ARM_ARM64_DOMAIN_H */
> =20
>  /*
> diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
> index bb35afe56cec..c29573f0ffec 100644
> --- a/xen/arch/arm/setup.c
> +++ b/xen/arch/arm/setup.c
> @@ -530,7 +530,7 @@ static int __init init_xen_cap_info(void)
>  #ifdef CONFIG_ARM_64
>      safe_strcat(xen_cap_info, "xen-3.0-aarch64 ");
>  #endif
> -    if ( cpu_has_aarch32 )
> +    if ( is_aarch32_enabled() )
>          safe_strcat(xen_cap_info, "xen-3.0-armv7l ");
> =20
>      return 0;

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 00:19:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 00:19:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095354.1450403 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ur3si-0005ZU-NS; Wed, 27 Aug 2025 00:19:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095354.1450403; Wed, 27 Aug 2025 00:19: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 1ur3si-0005ZN-Kr; Wed, 27 Aug 2025 00:19:16 +0000
Received: by outflank-mailman (input) for mailman id 1095354;
 Wed, 27 Aug 2025 00:19:15 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=QSw+=3H=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1ur3sh-0005ZH-IH
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 00:19:15 +0000
Received: from GVXPR05CU001.outbound.protection.outlook.com
 (mail-swedencentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c202::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 76446d5f-82db-11f0-a32c-13f23c93f187;
 Wed, 27 Aug 2025 02:19:14 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by GVXPR03MB10457.eurprd03.prod.outlook.com
 (2603:10a6:150:156::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Wed, 27 Aug
 2025 00:19:08 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9052.019; Wed, 27 Aug 2025
 00:19: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>
X-Inumbo-ID: 76446d5f-82db-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gtRECZ9vkvHeDB3W3PM6lO9H5Alz1leZ2NIPDSYsOOIkgLdthz/u3CehDbUZb22Axo7h9cJ93ZZLhGa/whV/0bNolQui9KSjoJpvWr77VLAOasSrXQK3zcPqKLKBKeqOt0L07Re9mifZlp6NC/gEI0YQRJE+kv2h3k/9Q5UymBY8Bp0jhCxXLrYTD46jlJrO5DoQC2TTaRnlo9qiOQU56oRCFPCrIj12ozpTRq8+k9rfmHA9eTuol/+J3leaAQBloLQtviULmbRfymlj3gW79byFKtnP6GtZgUZlK617whcR7C7LXF6tOQv29e3vQcQQJawAn7FnrS7dMyN+vzZ7kg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Yr71aB/kHUl+qZczs297RTTR6ScXudXbw0EeAD+Ve3E=;
 b=xAJHg4yOsJjRmF/U6MmqqR4R4AErIqM0DfOqiHZsTkXPqBZURieJG/+ATg0EUnUNzGzZVTtn4IJ3H8OCK2d22koDLFposA8wQWWZsmcO6enlPiuGwzftIEwXNzKEAqyUHv4L5klJuL2SeqS23U4j8yOfBKDBX5Zy9ix69YFXqisg0mNrTfWtkw1InNaKPNi0B9RGDJ6c7Prl5ny+WJ1PN+IdSacSkDnd8sUjb5NyZl3xpMUWzcpvX834eIk+cqxkTA4FO394dlIyEJnSb3FGzRovsQGzGS/vZoyfa3giwPJDDvZc1quO0JKQbjFTXLHuiu70EtByT4DmR8q+2UuyWA==
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=Yr71aB/kHUl+qZczs297RTTR6ScXudXbw0EeAD+Ve3E=;
 b=IiE7knh/r+Us7ThXhApGA5+URGZyXcLXWRA74BAr03FJM63mFTS281qClgpdNixrajyRLoFSuiMpF5AFTSCSGVLsMBm0Ue6jfbK6AwCqxI24+tGDyzkdFkzX7J4N9S8uCpY4ljWvu/dB2B0n874KX4AVBWjhV8BNVbzo8u+xXj9VQEydMEl4UZnqPs03Y441cYYvxxpMlnktsNMUCknUe9YwbXGEca0FMdAKhsNDxZWN40FAIk7gpkE9wCTVZPHWI+LxSlG5ylUVzesdbccGqlJb2uhM1FQSNClI3n+KNePVJTtRjTOVXZ/8LR5h9XSr46AYK6ZVJQpDVsHXZf9ZVg==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Grygorii Strashko <grygorii_strashko@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v2 4/4] xen/arm64: constify is_32/64bit_domain() macro for
 CONFIG_ARM64_AARCH32=n
Thread-Topic: [PATCH v2 4/4] xen/arm64: constify is_32/64bit_domain() macro
 for CONFIG_ARM64_AARCH32=n
Thread-Index: AQHcBrdwDd4mYDTTDkqkhQfu8XlSDA==
Date: Wed, 27 Aug 2025 00:19:07 +0000
Message-ID: <87h5xt39c5.fsf@epam.com>
References: <20250806094929.293658-1-grygorii_strashko@epam.com>
	<20250806094929.293658-5-grygorii_strashko@epam.com>
In-Reply-To: <20250806094929.293658-5-grygorii_strashko@epam.com> (Grygorii
	Strashko's message of "Wed, 6 Aug 2025 09:49:43 +0000")
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_|GVXPR03MB10457:EE_
x-ms-office365-filtering-correlation-id: 01ad716a-bf08-4608-96cb-08dde4ff56a1
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|1800799024|42112799006|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?MvZZ3tg1K18LFEgvSYGtKQlWT3qANj9EymJsB1jrneBecobjrsWSYX36aY?=
 =?iso-8859-1?Q?0Ybz5yP3t6XzNIfJXXa3DIy1SEoW1b/TMDHa8ZejZHsGrga4smgxc+HJ9F?=
 =?iso-8859-1?Q?VI4ah70awkPeY5xK+ZmVNyXjBFM/2+Qca1QDDcaaoXxDMnHek8uHYbahGr?=
 =?iso-8859-1?Q?wQDFGH7ldWVsTJ/DZ9cLaN+H8EVC6OMloKYEPYITWMaDU6DU5NI73IwZYc?=
 =?iso-8859-1?Q?yQLrv1AAG+Wt7q6upQYASV5snZ4W2hfMOM5lBIbZWB4nadxRaoAqBryG3M?=
 =?iso-8859-1?Q?LNEARk3vs7PefSsXgtdfPSKsqq1ii3X8xiUeB3ime+89omF2hYjSpZfCFx?=
 =?iso-8859-1?Q?4H75yUf6XAsf5daoFcIKVFYbW6JIA3KhNLG2Xl4LYxuQ09TLhi2Z/cDb9P?=
 =?iso-8859-1?Q?naYi8Un30axCh4TgwX2CYsSNFKEayRiXtdgZkCwY6vDhwYs+mH/OF0RQQe?=
 =?iso-8859-1?Q?ARKWBWe8uPAiJoEN6eg5EGyBghWRhvqLPLPSBAbV/n9FS+NCza01ZW8146?=
 =?iso-8859-1?Q?jYDmzNIORAdpcObt4G4ayYo9Z9FMHEuKcF+UDaA8Ky25qTODi6/2vDQuxm?=
 =?iso-8859-1?Q?o6JE1l906OTNDpkP+j5KRilO5QomRBm2r2TJ7TttnzHPwIq7EA6L6/BVd/?=
 =?iso-8859-1?Q?X6quOd5KTdkzLgTsFVUFiVYYGqserJURqhtxBUmG7UlUYdVlJ4/AZ536Pb?=
 =?iso-8859-1?Q?mym7c/YXEnxodu0TcyGxswtAG5c0xgvwdo1KFWMaGNyNP/QsfjiE/XCV5h?=
 =?iso-8859-1?Q?OwhO+8Jecllh7Kem6IYHTwz4c7/0M4G0AG1kUQxLCoOtt7rbCWE4O2Ts7l?=
 =?iso-8859-1?Q?beNDeLiJ+jAJigiy0vm2DHnIm/3ckpRt+bqV4Dk4UqmFCiTCggfS3THkI4?=
 =?iso-8859-1?Q?hZEZQn15kK3CQlmPqKFN9+aZ2SbGt2JOyPg5NWJpJaI26q/75dwraHZ8Lu?=
 =?iso-8859-1?Q?cHVB8arsaRAMeaQ9jSK9xMdPOhz0hWI5wfEe47Ws4YmlIDGYBbcHVJfWri?=
 =?iso-8859-1?Q?0C7ZiY8CbhgdMssKIdR/9UdDuYa4RKVdi/okSBx8o7dVxP62I3wj1nheQ5?=
 =?iso-8859-1?Q?oqXBLF3T3Ae7vcfQ+YaCUFplQeIBNXfTfF5uqfwG7g3Ll/Od/KUg4itwiJ?=
 =?iso-8859-1?Q?VpKfWuZbHQOC5iz5gNl7GmbqVGlDYFXZwBFbD6WlNJD3eqyaOUzzaC9Qsw?=
 =?iso-8859-1?Q?BKMW4P2X7pp/Kzm1YvPIeNMshwEF/DvZiZUTasHNK2ZKL76roDdZ/cRjPz?=
 =?iso-8859-1?Q?1QYCEhv+9t9eh7fsFnSEEFHPfoOmegPKtTRU9SnNRxA96KmgRZAT3W+XS2?=
 =?iso-8859-1?Q?x/nDmwiLa27dAbQjiUZITbizxlcWuKcQgf4sNChP0GejW8BTNxZk3LvlKF?=
 =?iso-8859-1?Q?OJ0h+UUUc4ZC5VJb5T4XDtVIiyz/01kIAdFpjlceBnCEwQ5eIsMgadw5l/?=
 =?iso-8859-1?Q?/J3HvsHV3Dp/s081fbyE05ZJSdi40PP+E1ERt2DaHdFI/C1zN/1ItCYsPY?=
 =?iso-8859-1?Q?9q3u4Zt8WDks1kldMN+8WPYU/liJ4OThUk6cbLVNYqo9WWxGBXHRqKd1Uu?=
 =?iso-8859-1?Q?ZwfP3TU=3D?=
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)(1800799024)(42112799006)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?3F/hpYjQug1ULWWvrxfuCv+j6s8yUwxrZf1kWOwulXZbFcPikAEiCFnaVy?=
 =?iso-8859-1?Q?DboYSWRuDoeJEaHzwTzCVc9r9xbVZpjnFOrZ0erkeKOv/TdkpqAfkAwRiQ?=
 =?iso-8859-1?Q?Gh/f/i4GmAH3WMcDCXi4vCqAhc7P6EDGoYnnyVAoxJqhco61eybAHRjHF/?=
 =?iso-8859-1?Q?6gr00SSOVkg+42z1hjDecrGETRaPeusWndibdqefB7oJrFNKkEUIxEHb1l?=
 =?iso-8859-1?Q?C7J0RJ1jfQ1PS0CYFqKoSi4jb9jp7WymcBT5Y8fXRdhEwnkB1t9I25I9+d?=
 =?iso-8859-1?Q?XVI23/AVEB/JmvjXeEYoQBKLletu9lWI3upcjW/qDJupKa85flEfcARa90?=
 =?iso-8859-1?Q?30J0IaINUHt5oPcF/kfIasxmVs7Om32mKMJogpiqeoYdF5N0GsunSiPJQP?=
 =?iso-8859-1?Q?hljELB+Voj/5aVRz1NKndUHBT3pogjEehCxssRF2OEDxGRqFIoPmKicfNU?=
 =?iso-8859-1?Q?W3ZMvMSQkH6HLBa2iit4w2CmuHmdZpAT8nQOpcvPGNgDEMeHtU6sP5roV/?=
 =?iso-8859-1?Q?xnJhFPI8caeaGspbDTTsZZ8PcYTe7jwePK/ulnLnN51c7gbYelFQNt8g+e?=
 =?iso-8859-1?Q?OHK56MdIUaqgr1R0E+wDTzOnJ6rkJc7RnH9eRPvPZmO5VTpykiocgYF5hd?=
 =?iso-8859-1?Q?xrjxMNtOxddSyKGm8RDRGL/f7gkjXKdL/FLPXQRxUxejQTFc0kFAfEDZbk?=
 =?iso-8859-1?Q?I0jgIB/AR+nDKAoXeKTCCMHy2X3WOeG5V4ZEdOL+GAdZ7b8t63EVuavbZ7?=
 =?iso-8859-1?Q?i3DzawqtrxBV1qV1T08CwcVsQ34ulzM/wO8eFACfM8SirG8wNopmHDV2+1?=
 =?iso-8859-1?Q?2bojq3mRP3MSzmYJaDdJb0+0RpFSZseBZ+YJKKHWZmzen3k6EqzxzdO4RI?=
 =?iso-8859-1?Q?JaCmlQu9M0/akJ9guzj9vgOdWvZhRqAx01mzukaqgm/AnQB/lfGG8Es+Ix?=
 =?iso-8859-1?Q?bBcP2o9Cngq+avQG2Q/fnQBuGQTPKVkJ+EpMRHjTWG1wpnQX5lijStHrG+?=
 =?iso-8859-1?Q?hM5NBEtb12zBHTrn0Cf0Ci7LVqWnbtur016B69agGxCa2Rcw7lL/8vk6Rf?=
 =?iso-8859-1?Q?Kyrcl7hoglh6nzyU0jiYYgPBUCdNbm8mT71BICrxTHjyrM1R0QTL3Sl3+B?=
 =?iso-8859-1?Q?J9NYzPBg0A2xUFVdzyCRolZ5MWUd4Fks698w7BIsPNFnBnBg7TwitatgUW?=
 =?iso-8859-1?Q?NduRocQlOqxkDt4iYMm2qU/KepYEfAHPnlQOG0zBtsCh+e6ewlBXlc5btq?=
 =?iso-8859-1?Q?Ij44clfssZPO7lG1JGcQW2QYwqhLskCxVUFYv2sNlkZ77O+Dvbzl6Lo8mj?=
 =?iso-8859-1?Q?iygA7/XVXiW0AW2g9syH4w3pyLiesRoLDNVA1VNCeFgildHQKTMVZKvyrs?=
 =?iso-8859-1?Q?QGslFL8kfnSBZzlWpi2Gy6rehJZr9m4RA/m0palL7LKGkK2KtODdRntDlr?=
 =?iso-8859-1?Q?HsRUqkDNkdmG9mOaniS7ct8aqz5yCJRun7TTf9G0NJZ1AAZFKV33KLzmGS?=
 =?iso-8859-1?Q?u96DhNI6FZYhDxZawTsNlvqL/KOTNCqAlzRaouQpyghwlFdVnjDZqiWQI/?=
 =?iso-8859-1?Q?t+sQx4ilJxF3q3jpgBg+QHyyI8DNw6TqhwXx4IBPLFbjFpNYTqiETm7FJU?=
 =?iso-8859-1?Q?JGE9p/qAdicnw1RQCDtrMir6vHaoWbo0DlIb9t/uqrH6Ft4GNJa3ESBw?=
 =?iso-8859-1?Q?=3D=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: 01ad716a-bf08-4608-96cb-08dde4ff56a1
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Aug 2025 00:19:07.7126
 (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: ifr5eqXK16MxoQvR8s7icBHGDUI+WzS2s28DjuHmHORgNpHG8TdN8velIHUyg2+/MdRJEBLEUIeA7MRA7/AOqvRRq+YykJ60u5aasrbKrq4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR03MB10457



Hi,

Grygorii Strashko <grygorii_strashko@epam.com> writes:

> From: Grygorii Strashko <grygorii_strashko@epam.com>
>
> Constify is_32/64bit_domain() macro for the case CONFIG_ARM64_AARCH32=3Dn=
 and
> so allow compiler to opt out Aarch32 specific code.
>
> Before (CONFIG_ARM64_AARCH32=3Dy):
>    text	   data	    bss	    dec	    hex	filename
>  859212	 322404	 270880	1452496	 1629d0	xen-syms-before
>
> After (CONFIG_ARM64_AARCH32=3Dn):
>    text	   data	    bss	    dec	    hex	filename
>  851256	 322404	 270880	1444540	 160abc	xen-syms-after
>
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>

Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

> ---
> v2:
> - use IS_ENABLED(CONFIG_ARM64_AARCH32) instead of ifdefs
>
>  xen/arch/arm/include/asm/arm64/domain.h | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/xen/arch/arm/include/asm/arm64/domain.h b/xen/arch/arm/inclu=
de/asm/arm64/domain.h
> index bebcbc582f97..70dfbeac7443 100644
> --- a/xen/arch/arm/include/asm/arm64/domain.h
> +++ b/xen/arch/arm/include/asm/arm64/domain.h
> @@ -12,14 +12,16 @@ struct kernel_info;
>   *
>   * @d: pointer to the domain structure
>   */
> -#define is_32bit_domain(d) ((d)->arch.type =3D=3D DOMAIN_32BIT)
> +#define is_32bit_domain(d)                                              =
       \
> +        (IS_ENABLED(CONFIG_ARM64_AARCH32) && (d)->arch.type =3D=3D DOMAI=
N_32BIT)
> =20
>  /*
>   * Returns true if guest execution state is AArch64
>   *
>   * @d: pointer to the domain structure
>   */
> -#define is_64bit_domain(d) ((d)->arch.type =3D=3D DOMAIN_64BIT)
> +#define is_64bit_domain(d)                                              =
       \
> +        (!IS_ENABLED(CONFIG_ARM64_AARCH32) || (d)->arch.type =3D=3D DOMA=
IN_64BIT)
> =20
>  /*
>   * Arm64 declares AArch32 (32bit) Execution State support in the

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 00:22:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 00:22:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095365.1450414 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ur3vY-0007Ar-4c; Wed, 27 Aug 2025 00:22:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095365.1450414; Wed, 27 Aug 2025 00:22: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 1ur3vY-0007Ak-1k; Wed, 27 Aug 2025 00:22:12 +0000
Received: by outflank-mailman (input) for mailman id 1095365;
 Wed, 27 Aug 2025 00:22:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=QSw+=3H=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1ur3vW-0007Ad-NO
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 00:22:10 +0000
Received: from DB3PR0202CU003.outbound.protection.outlook.com
 (mail-northeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c200::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id de9f2274-82db-11f0-a32c-13f23c93f187;
 Wed, 27 Aug 2025 02:22:09 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by GVXPR03MB10457.eurprd03.prod.outlook.com
 (2603:10a6:150:156::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Wed, 27 Aug
 2025 00:22:06 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9052.019; Wed, 27 Aug 2025
 00:22: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>
X-Inumbo-ID: de9f2274-82db-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NE0Rn9OJfeUwkoIFR5NgSBrYOfv2EWObNTWv7QVr6tN7rDqoT2nunDiOdsijxuHA77mZFQXrXK2qxp9pVUZBBeMrbx84JrPVrMVBm6fgwG0Fj2fd585bIYtoyo61VWRctfsdrKtl7JjM67roo9Eb+PLut9qUoFubimQSVvZQMEOsc5E4AsMaI7ZxWBnzrFGjwCFuqI6EnFgs9KsKECfDdfXl7n7l2tJlLszFi5MkB/IY/6b334DuCrX6v/Y05Knr18O3fkBD3R+ffj6q5mOEfG9QUaLOeorfs9kpCEtO5B6DF7lni8jMfcTe7ZsQbws2uY7uAhFBt0x/OGlqnM37tQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cg4x98IHKNACtQBiGCyoQx34avLEyg0yyHbFcN/rScs=;
 b=vt3ZCem5JqEnnI3qhtX33JdBRmuhuHOZBfrMo6mHtLSzF3fOuogDCFXeqNHhPEbJ4LpHeGyr1DsPnDqnEeRoFMmpz8BuoqjY5QVkzBNpPkjQyN6F8E7FIAfTja1CImiPIUUaEJaE9wUlICd+MMZeg6CjtpnF/Lr4YuhyoS7kNv1b2irvysphmNyM61Y3MlFQMkiMnTMYTAAvzhwT9Z+QAbgxPx3849cuLx63SPSGCWlFTGQf0ew2EFwN8UwDWqa2EDN5bJdQYHZKriVR1Lx3mNhX8VjCIZVXerx0aRZbFDvhPVFLEBkq40YGJLU8fHwS3+d746iSRk5L5q+PujOLNw==
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=cg4x98IHKNACtQBiGCyoQx34avLEyg0yyHbFcN/rScs=;
 b=oAu6K8/CY1eq/Sip+s3uh2YpkS3wQKiU5Dr0bmt2bw+SwFKWNVQBMCiHc9wosltQbw+Aq9Ywq4kdgCe+1adkGqOKAf+54i8WIlZ7y72kwNTqJOwgNjCNyat337XsmmpXijccL+JIiSX5j9VsSqSptQbqnNxxSs0GMwRT6CQkhoxlwFPxpEuJ02BhK84EPeBT6RcmVOaJr8JuatzW7isbGj92yTOHBLY5g9GQNS76qalxdGV1YtO8IoQMDIkkF0uJdyhZKWjODnNSrSCTxyQ9dOoO32LGLx4Alhyv7dce7hKr1tGAAV7Cb45Q83mo55pYzVqCMpKpTSlLwOJ/46s4aw==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Grygorii Strashko <grygorii_strashko@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>,
	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 v2 1/4] xen/arm: split set_domain_type() between
 arm64/arm32
Thread-Topic: [PATCH v2 1/4] xen/arm: split set_domain_type() between
 arm64/arm32
Thread-Index: AQHcBrdwRN56SCuvyEipomT5fYlVlA==
Date: Wed, 27 Aug 2025 00:22:05 +0000
Message-ID: <87bjo13976.fsf@epam.com>
References: <20250806094929.293658-1-grygorii_strashko@epam.com>
	<20250806094929.293658-2-grygorii_strashko@epam.com>
In-Reply-To: <20250806094929.293658-2-grygorii_strashko@epam.com> (Grygorii
	Strashko's message of "Wed, 6 Aug 2025 09:49:42 +0000")
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_|GVXPR03MB10457:EE_
x-ms-office365-filtering-correlation-id: dc084c89-7b46-4ee0-dc59-08dde4ffc0dc
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|1800799024|42112799006|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?ksZ/Kb8dMlMlXPLHLjAm+hmcbhSgFi+DcPf5OgXMq3ntuI6+o0kUkMHGx+?=
 =?iso-8859-1?Q?RJ5+T/SpIXeYQliOrFLvLasuQ1SgAOkzWkek9fkF9x412+VVSI5Lm+e4AV?=
 =?iso-8859-1?Q?wsaR0rC0zHm0hF7R2hJbZDUZOQ6GyrQ5euvPSo71n7y4Ual2Ry3eXzh4Gu?=
 =?iso-8859-1?Q?knk6ykXe5/ufGN3MppREBhaV+VLDZcKeJlOIuw08cEGqaJiGaYhibdinyl?=
 =?iso-8859-1?Q?X71ys3dc8pobxerpfu9rbbIKhaF2TiEep+R70Ktjea4F1MFqJ7G+LuzWDC?=
 =?iso-8859-1?Q?/JTIs3N5KQntl8TNQwUMeLEQbxJVqNaoE89+7+pp15uiASl+p3tA09Gq4H?=
 =?iso-8859-1?Q?J5nLWiAy5CfTV5yIL7Px1MCXUR6fwBXEIuMQkkIoTOqGZNi3NC2LZnnwIm?=
 =?iso-8859-1?Q?RGQrfzaISELZ9QFS/0xnJ6IR+OT92g2IKmKazHbWovOnJmd8vC8MpZrF80?=
 =?iso-8859-1?Q?SD2jyLVuozLa8aM6euwzBKlEr48kzVh0TNeVts7NyiAgrMQis6VN6CiOfA?=
 =?iso-8859-1?Q?1U7ct6UQK8m5q/r8AKOiRcznEsZ+7LG3lA4xCAXxsG11nKHzAO0ylhF1VN?=
 =?iso-8859-1?Q?hWeHGyoFM8jdAM8n+vC+fD8luyxyQpMoqtw0HwGEpvX3UaPtABM3vVmG8+?=
 =?iso-8859-1?Q?MxQnYU3HbUF1nPPto2UddailCR5QpJWusb6IGKfpACil/RTjZUeR89EyJF?=
 =?iso-8859-1?Q?UQEHdSUcgvHuWDLnixVF75gBlwzQj4GGqQaomOCkDYmLW+zt7fkoYpbxb3?=
 =?iso-8859-1?Q?g+UXkw/y815S2dFw+LE1Pj2WHKVwAE8cqz6dqts9Xt/4DOR2P0W59cv3dX?=
 =?iso-8859-1?Q?TalX76m2YCBNszw4RVbjCzMLanYeWb/DCNkJiW7ri0LOqDTsE+T5SHvebd?=
 =?iso-8859-1?Q?SrcVIQ5+wiXNV7ffOaWwsY6qAWVfXS+nfK8/UylChqcYGisoDtKkF2gU+w?=
 =?iso-8859-1?Q?6xEtGQ3yAREfnF7RRD9+horIk0bpT1TNjzN48fco979NafYKrZXL5u8f13?=
 =?iso-8859-1?Q?fF9CU1CVrvmlkmYzoRpIosW50IF9h91kI9HcTaP3BG3gNRuAijghCMNt3W?=
 =?iso-8859-1?Q?D5MXX9A3Cg/G9jT6830nP679H4cgfqCkdhdVX7cF6Sa67q0e6kMW1bGRvE?=
 =?iso-8859-1?Q?IqD8fqslIG4QfGw3lZAKjDz90UU2V6RtfyEB2zvhiH6oSnuv5AWeVvp7Pf?=
 =?iso-8859-1?Q?MZtGOpNaZlugbLOyottoAov+6XSYCQvCOyiU6Ow8YVAAjYsybWm8twhu1s?=
 =?iso-8859-1?Q?ty6OMDLoSmFJ8+50/d3s/Q3BHvVb+vTcEDRaomDc6ZoZ3i9AjBSJvHbLh4?=
 =?iso-8859-1?Q?vfyfRh5hzjzYye7tXiMPmAUjwlcXP5ENF63MXApFibtaazhRnlbNg9OlLH?=
 =?iso-8859-1?Q?4ej/in3esBwtlXoihgvjVyxs41a6VO3NNCXCpEivKIzH1MD673n01uwxOm?=
 =?iso-8859-1?Q?CsQwILL/9qUGoayd2XYzjwIZfcKOxyjCdiTe0QLiLx/1MJJjKgFDfGVBXs?=
 =?iso-8859-1?Q?XncLH59Qjr08NmSXAvGU2dsDsQKhhr/AneTp7Bu7SJrlX83Qh2dNNSVNwf?=
 =?iso-8859-1?Q?kA87MUQ=3D?=
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)(1800799024)(42112799006)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?V7t5k84j4/U1+qouFiVovUpFf5gJHqbvBidWHNpfmwCBQiVNyVIiuu3hCr?=
 =?iso-8859-1?Q?bkZjlMD0r732ijaAx6SMyK5YsHw3hrobHoRndx059nTbvm5vk/KVTpSlTV?=
 =?iso-8859-1?Q?6JAX2ita3aYcczaRe+JoK6+x6sWLFv5/sI+C05phMoImbzyRwBx+QyKxmg?=
 =?iso-8859-1?Q?/KlZoBPg9QC4GH0jf7eyH4LRnzJ6wm4ZisKPbXi83PmbKQLkaLL1AeFOPN?=
 =?iso-8859-1?Q?TEj9PlEUkN2sTSINjcrCh7s6okR5cwqByPIpoRckgQxsUI34LhcLUen/Ic?=
 =?iso-8859-1?Q?Qb5dxkIiCVL8n49V/bKrsV+q2tF4wI/imgI/f90t9lKnrD2RsnYT4JZkZ2?=
 =?iso-8859-1?Q?QILDOh1v9AFNaffDRi2bdq+bum9xDPNNPdhz40LBPXOmgPSy1Wh08MyBdV?=
 =?iso-8859-1?Q?2omPCOsLB4xQx6BIaRnIg8Pwrc+kETD1l8L4ieR4XD5YoI/uAr/eMnKpDY?=
 =?iso-8859-1?Q?XgHASiOdOzyGB7EqoMV+qIFj4urDV+BJrH6+u9gXGlHbQRnNe4joQdMz4C?=
 =?iso-8859-1?Q?KB+2Z1es1L/rZZonuLlVtzmBpHCgphuKsGcXUlr2mrcKZTuHffRUvBGdV2?=
 =?iso-8859-1?Q?Yf3yhaEbRSDzACRg//QMnhuyfewR6BpoOzEqZxYVc6RQejY7RqeYtOKedy?=
 =?iso-8859-1?Q?hlShrZ/Gx+6pt01qcF9Kc/zK4gg8Kl4rV4vdPZNtowE2cE3MNLzNdzwsJs?=
 =?iso-8859-1?Q?+jwQMS7W2vmmn7KgLOnudj6Ds31WOXcvXTHbfKl6N4omjTHqKBJXGtKHZr?=
 =?iso-8859-1?Q?BAhsSnPvHt7lF1+pSLqDPAj8XT8nBz/8nLFpNVO/rtnoRnTcCYJ/Tk0/zV?=
 =?iso-8859-1?Q?V0yPohFYtqxSnURRtKozXYEs7Shau9NwSaIMfaU+uj0+Aj0+jwNCE0vNBb?=
 =?iso-8859-1?Q?2e53lYHZru67QaWFf20IRHd0ONTtax8KzdNY9Nq0gobwPlBWRdsEsMZDWr?=
 =?iso-8859-1?Q?URsSJTbZdmtW1AB3bZz6FyvvCSwXAQXlgFSYyS46GqzHzgXil90CukL4Z1?=
 =?iso-8859-1?Q?lF86Y1mybBI4cIUQ0tvyZo4aNvWBXFYC/wcMq0SjpZsrjOAzijuhAUpUie?=
 =?iso-8859-1?Q?Bcm532sf58HTyYKbnxRBatUcQdPMDsNMHNqdaONYxmznw24HaFYXj7nBoV?=
 =?iso-8859-1?Q?So6HvXdpNz3e4aAZfez7Q5gkRQK2lEKm7l72kS/3CfTVidLaoPLzKviAQK?=
 =?iso-8859-1?Q?yjHyDqQLzfivrrJoOu+om/iH2S6ofD8rlfeiGc14FkPrsRFHJSDvqF/gmU?=
 =?iso-8859-1?Q?2c0Ej/sppbqL75lpLnZndK0OCWbo+mwa0WZmamqQcsZolHy1/7gRaYLYaY?=
 =?iso-8859-1?Q?OuzWoPrU3I7MfuBQ6KIBWJnITQzpOEuj4CSR0UJRD8T6X70G5/uLyaYWGd?=
 =?iso-8859-1?Q?lcCpiYLC2D7R7KkpsdRZYvaDib09v8sww/lchbLsRBaJEEyawcN+crVr4w?=
 =?iso-8859-1?Q?S9bfOQY8T4F8eEWXJmFLT4pNz10+NRVKDesx2Q+kczEDK6nDttFUGSC2o7?=
 =?iso-8859-1?Q?jJSIdLBIN9P/L9se5WO9OD0ih08Ud9j43pc0rheV4hezP4RMigkDT8Cp1y?=
 =?iso-8859-1?Q?KwXPVg48WunjZldUmAzOaOLmv2bVVoHCBpT8SWyqPIgzlLQoXRX+9/WYYa?=
 =?iso-8859-1?Q?bJm01AXev48QJZXCGRaEAZpVyV7+auvFRliD8W61Y4drN1LdFSDpcg0w?=
 =?iso-8859-1?Q?=3D=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: dc084c89-7b46-4ee0-dc59-08dde4ffc0dc
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Aug 2025 00:22:05.9845
 (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: C57gNmtbloAzhP/RnBUBhdiPbVuAbPQiJU/vLdgVU589LN6H360SuAziK9DBs9grMtr9C/oudKfp/o9cc6d/OuknlbpQyRdqKp8roLxGxcY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR03MB10457

Hi,

Grygorii Strashko <grygorii_strashko@epam.com> writes:

> From: Grygorii Strashko <grygorii_strashko@epam.com>
>
> Split set_domain_type() between Arm64/Arm32 sub-arches as
> set_domain_type() implementation is going to be extended for Arm64.
>
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> ---
> v2:
> - no changes, rebase
>
>  xen/arch/arm/arm32/Makefile       |  1 +
>  xen/arch/arm/arm32/domain-build.c | 22 ++++++++++++++++++++++
>  xen/arch/arm/arm64/Makefile       |  1 +
>  xen/arch/arm/arm64/domain-build.c | 24 ++++++++++++++++++++++++
>  xen/arch/arm/dom0less-build.c     | 14 --------------
>  xen/include/xen/dom0less-build.h  |  8 ++++++++
>  6 files changed, 56 insertions(+), 14 deletions(-)
>  create mode 100644 xen/arch/arm/arm32/domain-build.c
>  create mode 100644 xen/arch/arm/arm64/domain-build.c

Is it really worth to create two more source files just for one
function? Maybe it is better to use already existing
xen/arch/arm/arm*/domain.c ?

>
> diff --git a/xen/arch/arm/arm32/Makefile b/xen/arch/arm/arm32/Makefile
> index 531168f58a0a..0fd3f5272361 100644
> --- a/xen/arch/arm/arm32/Makefile
> +++ b/xen/arch/arm/arm32/Makefile
> @@ -6,6 +6,7 @@ obj-y +=3D cache.o
>  obj-$(CONFIG_EARLY_PRINTK) +=3D debug.o
>  obj-y +=3D domctl.o
>  obj-y +=3D domain.o
> +obj-y +=3D domain-build.o
>  obj-y +=3D entry.o
>  obj-y +=3D head.o
>  obj-y +=3D insn.o
> diff --git a/xen/arch/arm/arm32/domain-build.c b/xen/arch/arm/arm32/domai=
n-build.c
> new file mode 100644
> index 000000000000..e34261e4a2ad
> --- /dev/null
> +++ b/xen/arch/arm/arm32/domain-build.c
> @@ -0,0 +1,22 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#include <xen/fdt-kernel.h>
> +#include <xen/sched.h>
> +
> +#include <asm/domain.h>
> +
> +#ifdef CONFIG_DOM0LESS_BOOT
> +void __init set_domain_type(struct domain *d, struct kernel_info *kinfo)
> +{
> +    /* Nothing to do */
> +}
> +#endif
> +
> +/*
> + * Local variables:
> + * mode: C
> + * c-file-style: "BSD"
> + * c-basic-offset: 4
> + * indent-tabs-mode: nil
> + * End:
> + */
> diff --git a/xen/arch/arm/arm64/Makefile b/xen/arch/arm/arm64/Makefile
> index 6491c5350b2e..3272fe7e4ca2 100644
> --- a/xen/arch/arm/arm64/Makefile
> +++ b/xen/arch/arm/arm64/Makefile
> @@ -8,6 +8,7 @@ obj-$(CONFIG_HARDEN_BRANCH_PREDICTOR) +=3D bpi.o
>  obj-$(CONFIG_EARLY_PRINTK) +=3D debug.o
>  obj-y +=3D domctl.o
>  obj-y +=3D domain.o
> +obj-y +=3D domain-build.o
>  obj-y +=3D entry.o
>  obj-y +=3D head.o
>  obj-y +=3D insn.o
> diff --git a/xen/arch/arm/arm64/domain-build.c b/xen/arch/arm/arm64/domai=
n-build.c
> new file mode 100644
> index 000000000000..3a89ee46b8c6
> --- /dev/null
> +++ b/xen/arch/arm/arm64/domain-build.c
> @@ -0,0 +1,24 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#include <xen/fdt-kernel.h>
> +#include <xen/sched.h>
> +
> +#include <asm/domain.h>
> +
> +#ifdef CONFIG_DOM0LESS_BOOT
> +/* TODO: make arch.type generic ? */
> +void __init set_domain_type(struct domain *d, struct kernel_info *kinfo)
> +{
> +    /* type must be set before allocate memory */
> +    d->arch.type =3D kinfo->arch.type;
> +}
> +#endif
> +
> +/*
> + * Local variables:
> + * mode: C
> + * c-file-style: "BSD"
> + * c-basic-offset: 4
> + * indent-tabs-mode: nil
> + * End:
> + */
> diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.=
c
> index c8d07213e247..58f77628df1f 100644
> --- a/xen/arch/arm/dom0less-build.c
> +++ b/xen/arch/arm/dom0less-build.c
> @@ -236,20 +236,6 @@ int __init make_arch_nodes(struct kernel_info *kinfo=
)
>      return 0;
>  }
> =20
> -/* 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 =3D 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/include/xen/dom0less-build.h b/xen/include/xen/dom0less-=
build.h
> index 408859e3255a..3e81d8ba3a47 100644
> --- a/xen/include/xen/dom0less-build.h
> +++ b/xen/include/xen/dom0less-build.h
> @@ -57,6 +57,14 @@ int init_vuart(struct domain *d, struct kernel_info *k=
info,
>  int make_intc_domU_node(struct kernel_info *kinfo);
>  int make_arch_nodes(struct kernel_info *kinfo);
> =20
> +/*
> + * Set domain type from struct kernel_info which defines guest Execution
> + * State 32-bit/64-bit (for Arm AArch32/AArch64).
> + * The domain type must be set before allocate_memory.
> + *
> + * @d: pointer to the domain structure.
> + * @kinfo: pointer to the kinfo structure.
> + */
>  void set_domain_type(struct domain *d, struct kernel_info *kinfo);
> =20
>  int init_intc_phandle(struct kernel_info *kinfo, const char *name,

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 00:23:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 00:23:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095375.1450424 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ur3wc-0007fl-Db; Wed, 27 Aug 2025 00:23:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095375.1450424; Wed, 27 Aug 2025 00:23: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 1ur3wc-0007fe-AN; Wed, 27 Aug 2025 00:23:18 +0000
Received: by outflank-mailman (input) for mailman id 1095375;
 Wed, 27 Aug 2025 00:23:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=QSw+=3H=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1ur3wa-0007fW-PB
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 00:23:16 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 061e644b-82dc-11f0-a32c-13f23c93f187;
 Wed, 27 Aug 2025 02:23:15 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by GVXPR03MB10457.eurprd03.prod.outlook.com
 (2603:10a6:150:156::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Wed, 27 Aug
 2025 00:23:13 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9052.019; Wed, 27 Aug 2025
 00:23: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>
X-Inumbo-ID: 061e644b-82dc-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=F1kjvEA00j3sEPP22SDtYr/g3lo66z0HfCzDg8s4A5C8MrpJFBoLSYA8CBjWUfVkQro7a7b1uDxXEcM4UGWxSF+4sGq+Zy4VI54RBJqg29mHKrjm6Wu2kVmw82iFUTXVZBQtfn0dKwTYW4oi4iFSlMBIWKsU3IliC990Fq11xWunTb8N6fFhOv+LBnm0Ez3YfiGx+PY8uDVTO5kpDLu34JaKDAD6bBfyR62d0OYaD2Ou/zcYwFC+EeyLhq5q8TTPp5SCNnCuSsFSAVC/y7cHUAQSa9dY7BpJWHGhWteNnUQJi37VYDg96RhEgZUrajnekc894cM6VRZAmKMYMPPb8A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=CEtG11dicL76z7ANfatS456H8ipnPkrKnEv7LBElCpI=;
 b=jXH1dt9rwUu0MSWqAaC4yvbFiT50vy06ngGsbk/xFbeibstgjG5A7E/b2OyBWScPB8bU8uVbOze5ts6L+27/pevjUs4T60y/hFTK5FsvvCAQECLTkubDl/4ltnaHpR1SHaHsCvHpJiRcHrtYbWGK96l4o/8TqKCnlFP5srav1wRe7oB3zWxNk9Z8azfovsJ1QqIlzd7juGRkh67on7DrQEgatueVxMJV7N3QvYCpgzh3zowtx7RBjrqFHcwEuYJ/ybWdaHG071VLWLpKA1AAOeOfN1c2khr0ktUU87CLVPlypo8k503f65lDf4P6rgzA0FIBGp5CtGrB+9uY2wYZpQ==
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=CEtG11dicL76z7ANfatS456H8ipnPkrKnEv7LBElCpI=;
 b=K9eO6+TcU76/JV90rO3709ajolUtILbYxZrUAV+lx87hukAYKWCRD4M+apKTDFNouMDsqeZYl4t6P/gDW8Eu+JqRrIBPQKCDtuPdvjNKv9DsWmlEFwMowtmoLGUyWqmt+EXovrK3vP9znsWEZ5H4jIj1ptMi+HWP0NLcMQWfo5gi4gc5gxxESccSNxT0eUofDFoKoW+A7BOpFu1Y4gRnMxILB9aEVV+S/8thdSXkiV9e3fGB5WMHWPI36FmwJDvrTUdNjUxaB0ctZRJqqAn8jRED4r9CWlC7US3pllRdyfsMdszyc41xKGmjxKIFTi5tWSmBvPg+uKXanpf7zVXbhQ==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Grygorii Strashko <grygorii_strashko@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v2 2/4] xen/arm: split is_32bit/64bit_domain() between
 arm64/arm32
Thread-Topic: [PATCH v2 2/4] xen/arm: split is_32bit/64bit_domain() between
 arm64/arm32
Thread-Index: AQHcBrdwbCiaA0DkGUiaPFn5+2VGXA==
Date: Wed, 27 Aug 2025 00:23:13 +0000
Message-ID: <875xe9395b.fsf@epam.com>
References: <20250806094929.293658-1-grygorii_strashko@epam.com>
	<20250806094929.293658-3-grygorii_strashko@epam.com>
In-Reply-To: <20250806094929.293658-3-grygorii_strashko@epam.com> (Grygorii
	Strashko's message of "Wed, 6 Aug 2025 09:49:42 +0000")
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_|GVXPR03MB10457:EE_
x-ms-office365-filtering-correlation-id: a6d4b57a-70f7-4fff-aa98-08dde4ffe916
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|1800799024|42112799006|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?13Wf/qEgYK9e88uttTC3SE6N1b6e7L5VxTHB9Poc+3XlMU0QiGxEoouxaK?=
 =?iso-8859-1?Q?KikH+PHsxFv4aWhpbvlyh5tiO0RbXqLDSlT051sS9RVwtW0nHXyrkIukUf?=
 =?iso-8859-1?Q?Bdi29qdW0tnS72sIwn3AxjfSXwoFWUa0NWuN1PSCKdGjQ/1QcIqNZC9wko?=
 =?iso-8859-1?Q?X7ZW8gaX3xHa0a7o2PQlvl+wa1FGz/G/x1AZwFerbcOC+j0XYTi0hoii6h?=
 =?iso-8859-1?Q?SvFXMX+U9i/rpjn4jIjixY6xlebr7dtk3mbzouGwsSdJQnAXHBD/HiCN24?=
 =?iso-8859-1?Q?KrSYO7Lz3JDeDZYwr+3pFd2fVvexjpzRto3XF4aIojGeusCkFc0QSP25zy?=
 =?iso-8859-1?Q?Cex0fJNUXtqke+YZSl7S1jO7A0ZDZyv3fJSBegmWtbcKV+k6pz+JVcnuAf?=
 =?iso-8859-1?Q?u2ykAmUIVjg4yZGuyQcwLrFGqSPDgMwUwk7LfIhQaGDqfya/Pp6hes10pl?=
 =?iso-8859-1?Q?Mte3zxm1JRtDiOwxdi8KbJws7RPqdqHs32vRLC41iwcThljqxHjzDPNeXX?=
 =?iso-8859-1?Q?hwwwds21EG6JT9CeJxGPleD/TqLvLWji0SRonKcR+Pe7JSwfyX2OBBVZlo?=
 =?iso-8859-1?Q?G65I961FLcDRI2ngTGrPKUujrqlOcLfGW1JgjgSwEAOtBS9c1GUNNQ8dUf?=
 =?iso-8859-1?Q?yJvnFjM4kS9CVpUZXPF7wplkktJkRH7xFj+bApwhGkWuUnMwP2+if9KOSW?=
 =?iso-8859-1?Q?vKO2z6ZiQP58m2/6+3z3yGEDsBS+ifIR/rZfSCWpoAxuLIAb7DrnDWzGlc?=
 =?iso-8859-1?Q?K3cloSnczccQoXHTEZbHdcCceMdtW3p0oHOVB0/4x+ImHZKXaPNid/VIKu?=
 =?iso-8859-1?Q?KLyoxI75dl0/OmBXCEPXs+hNMd56XgWTr7goFP5ahC6AyhduAdLrpZ2X4x?=
 =?iso-8859-1?Q?2yyWEucf6g5Ki82HVyQ4trasSsR/DHB6K82qDTBhugxF2/L6TeDV9pL2Et?=
 =?iso-8859-1?Q?5nt5dHXKmLUrDLV/Zr1/g+tU3OK/s1Sfm43VN+gKIM2Ed06FxLoB2DOOox?=
 =?iso-8859-1?Q?BRWYjPvYmxHUe9TMUAKdET00j4Rss3EarQp7wrMs1j4nwIWER844s4Z25K?=
 =?iso-8859-1?Q?L6tiMh3Z1XqzR6kqQsaMznlSDpuEh+c4wxJFJaz0dGCSRGJayhTAbBMwxa?=
 =?iso-8859-1?Q?6mEOqgkb8j58qExg3fL7vU6InYSOUkBAYTep7AfSk1sGgzXwdBv/UwTuvJ?=
 =?iso-8859-1?Q?yfWDQzKtIw/PK3ARAZ/27ri8K3FytwqPZHROQYk+mM2ebOAXhlFNlV1Q+L?=
 =?iso-8859-1?Q?QuvZnbF+8SForsxOCxb3YeZ7txQXIfM7cKqW7+hmR1rDYHcZPMs1sOgrdk?=
 =?iso-8859-1?Q?IbaT+EMei6xxUYhcWhM8WCJvN6NCh4lKvt34qAWtcj542xIOgtmzIC05JI?=
 =?iso-8859-1?Q?h5UMrlGHJtDGaDfmOul1zeebHWLKr/c/z115TQrWI8hRLKWL5hqq0Rwi41?=
 =?iso-8859-1?Q?zR+bI41FR1/KrLpLGVULzwGY5vKxK/qhmH2nguMbbgY7sAWjHOr/HS62ZG?=
 =?iso-8859-1?Q?FhlyIzUwYUR2liq/lyXCSJ4purx396EV6OU69AT9estpjteYSivJQMVlfE?=
 =?iso-8859-1?Q?T+PDbZw=3D?=
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)(1800799024)(42112799006)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?cf6VmhYDHsdl1zg7L+C89pC+2kLnJISFCS/0TEaJZOJi/1Ozqg2qFBepRu?=
 =?iso-8859-1?Q?3QzDCK9J6fW1N9oWUv+292i+WmBO8vIU7nmXr2fWPhmn3P1ltWuDbMs7W+?=
 =?iso-8859-1?Q?mKTD1lOt73r0aAZjvD+6svGIUHuNXVxChPW/HjysYS048VNMU1zm9Q18vz?=
 =?iso-8859-1?Q?69gMNDgtGCobcXnlKVT8Qc7vcdPLiG0lkUO4BvUFXpp73/m71e53TweVFM?=
 =?iso-8859-1?Q?WUixytQHlYbZE+5dzkg246gsvGjAGiEyiG6OK2TIQC93MQV8i6oeOeTycB?=
 =?iso-8859-1?Q?hBLLtvVNoh4WEIWkuzfDIlwR1xyNf/TLG+CyJwxhMVyMPE0uXEl47+j5QD?=
 =?iso-8859-1?Q?ov6xUeyfDdVFjO0qlB1In+v3W05t65rxj8d3yjrYL7TIIJ6rue6tcMw+Km?=
 =?iso-8859-1?Q?Zr2nDdH0V54UiSYck7loEcHiFFqqdKW+5097rlXzB0pQCwrdSKZVjsCSCy?=
 =?iso-8859-1?Q?5XCA93PE4wv8ynmwdREP8fDsy7qprVEYs2uxU9A9cR5ipBD2ffYPhVolvD?=
 =?iso-8859-1?Q?MwGihi6ZFr6WDOThCHNlaZf3p4+FOu5f5D6NaMMnW8Zo1k4SUqN14KMRkZ?=
 =?iso-8859-1?Q?GBNhMoN0d5WBkfHJMmWsFzXxkOxNw/y7jFF1O1nt+XcBLHAtDTqNyH/wjS?=
 =?iso-8859-1?Q?fcrly5L3M1rIrCBR55w1rSAQWagUI+lfe8DjCiAiyDi9NzZIiuV+RSTmIj?=
 =?iso-8859-1?Q?wCB/29dFVI8hTB9G5e6wUHvw008kQeD4Tcwjt6kwU3myg5u+SxY/LKoRii?=
 =?iso-8859-1?Q?PpjFdKoF0lFbpO0RqP2kXnNIjvcWBHVEccNQP8kC8DlY0FBbvBXGn7aLtL?=
 =?iso-8859-1?Q?U1y+HfoHVkSF0t7EUmc58aiwpDNZauy4BcZrzMNCYX4yuIu8DxDOVEjIHC?=
 =?iso-8859-1?Q?UoDYzKvBX9cTBue+c1kh2u187CsTKn3O568SYnxoxi6ICKuwp5X9AK6W+y?=
 =?iso-8859-1?Q?BhKFX38OzO1FTfdHdjnGMpYkUIJ8ZaDVHFa31CTb7ub9z3JmiZJZx57Ues?=
 =?iso-8859-1?Q?f7JGusFrjRwEvupB34OaJpuQyyXmuMMYf9rNlWBdU6dUcSajEFlHqnfp4+?=
 =?iso-8859-1?Q?JcR5DgGK2fgnk/5BP7lsaim60owDThk/7VwAhnI4UAjQpRQMHyFG6cBu8z?=
 =?iso-8859-1?Q?kXlDc2VhXlS0Gn72UcwPvp/QFjgIjdURBvJWUHLzXP2/Ds7/Rz+WIMMjgn?=
 =?iso-8859-1?Q?4/OHCkB8oAx342DuHOEmXGxsLBKgoGmdhLi8lzk+3eWniPZ6kNoK41jffT?=
 =?iso-8859-1?Q?zGWRFq3hpvO+8QzeHSHJAXi+CLeP/8dCHAioicMmHTFuqu/TjsUmdnyIa3?=
 =?iso-8859-1?Q?S9ynlqt845Xp03bytjFskUgZuEx2K1ezK2wA9SyVx5VNv4lMpTFaT0GE7D?=
 =?iso-8859-1?Q?uY2x7Q3n3x9gM/1sXmXX4kYItHw0Bs7E/D8yFUeYN08CADTNBL9mXgM+O9?=
 =?iso-8859-1?Q?Y8Z4d9REzqWJnFJV4pMPRb/5gt2tAuLBFRx9Kv+ecmQyVTKV2TCGqIbXLN?=
 =?iso-8859-1?Q?Zm9JnPumrLao2l4vG7RQfdx1o+7z6OyDmDXsNuAOnDzBMZVtSEExvSepsX?=
 =?iso-8859-1?Q?/A60ByYriqcGWg+Bnaq+hRgFDCwEtqminY1KjPAfIUV/aNFI+GnZNUG+Nd?=
 =?iso-8859-1?Q?OL38QemTTy+6ITh40+iWA9RwMis/9QyO7bHs07MhU+i0nWwSJr+1ZPXg?=
 =?iso-8859-1?Q?=3D=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: a6d4b57a-70f7-4fff-aa98-08dde4ffe916
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Aug 2025 00:23:13.4738
 (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: a94pE8dl1gb47ATYNLhYCfbTUM9k0ImkHyj0AXfvbgV3g0DFWuB3e24jQo6zLChWcf3KHZ2nJS6kvbP9+4OdGqGTGD1Tkfpa2eGD4h8UKYM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR03MB10457

Grygorii Strashko <grygorii_strashko@epam.com> writes:

> From: Grygorii Strashko <grygorii_strashko@epam.com>
>
> Split is_32bit/64bit_domain() macro implementations between arm64/arm32.
>
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>

Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

> ---
> v2:
> - fix comments related to macro parameters evaluation issues
>
>  xen/arch/arm/include/asm/arm32/domain.h | 20 +++++++++++++++++
>  xen/arch/arm/include/asm/arm64/domain.h | 29 +++++++++++++++++++++++++
>  xen/arch/arm/include/asm/domain.h       |  7 +++---
>  3 files changed, 52 insertions(+), 4 deletions(-)
>  create mode 100644 xen/arch/arm/include/asm/arm32/domain.h
>  create mode 100644 xen/arch/arm/include/asm/arm64/domain.h
>
> diff --git a/xen/arch/arm/include/asm/arm32/domain.h b/xen/arch/arm/inclu=
de/asm/arm32/domain.h
> new file mode 100644
> index 000000000000..1bd0735c9194
> --- /dev/null
> +++ b/xen/arch/arm/include/asm/arm32/domain.h
> @@ -0,0 +1,20 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#ifndef ARM_ARM32_DOMAIN_H
> +#define ARM_ARM32_DOMAIN_H
> +
> +/* Arm32 always runs guests in AArch32 mode */
> +
> +#define is_32bit_domain(d) ((void)(d), 1)
> +#define is_64bit_domain(d) ((void)(d), 0)
> +
> +#endif /* ARM_ARM32_DOMAIN_H */
> +
> +/*
> + * Local variables:
> + * mode: C
> + * c-file-style: "BSD"
> + * c-basic-offset: 4
> + * indent-tabs-mode: nil
> + * End:
> + */
> diff --git a/xen/arch/arm/include/asm/arm64/domain.h b/xen/arch/arm/inclu=
de/asm/arm64/domain.h
> new file mode 100644
> index 000000000000..1a2d73950bf0
> --- /dev/null
> +++ b/xen/arch/arm/include/asm/arm64/domain.h
> @@ -0,0 +1,29 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#ifndef ARM_ARM64_DOMAIN_H
> +#define ARM_ARM64_DOMAIN_H
> +
> +/*
> + * Returns true if guest execution state is AArch32
> + *
> + * @d: pointer to the domain structure
> + */
> +#define is_32bit_domain(d) ((d)->arch.type =3D=3D DOMAIN_32BIT)
> +
> +/*
> + * Returns true if guest execution state is AArch64
> + *
> + * @d: pointer to the domain structure
> + */
> +#define is_64bit_domain(d) ((d)->arch.type =3D=3D DOMAIN_64BIT)
> +
> +#endif /* ARM_ARM64_DOMAIN_H */
> +
> +/*
> + * Local variables:
> + * mode: C
> + * c-file-style: "BSD"
> + * c-basic-offset: 4
> + * indent-tabs-mode: nil
> + * End:
> + */
> diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm=
/domain.h
> index a3487ca71303..dde48178b857 100644
> --- a/xen/arch/arm/include/asm/domain.h
> +++ b/xen/arch/arm/include/asm/domain.h
> @@ -22,11 +22,10 @@ enum domain_type {
>      DOMAIN_32BIT,
>      DOMAIN_64BIT,
>  };
> -#define is_32bit_domain(d) ((d)->arch.type =3D=3D DOMAIN_32BIT)
> -#define is_64bit_domain(d) ((d)->arch.type =3D=3D DOMAIN_64BIT)
> +
> +# include <asm/arm64/domain.h>
>  #else
> -#define is_32bit_domain(d) (1)
> -#define is_64bit_domain(d) (0)
> +# include <asm/arm32/domain.h>
>  #endif
> =20
>  /*

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 00:33:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 00:33:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095392.1450434 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ur46k-00013w-FI; Wed, 27 Aug 2025 00:33:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095392.1450434; Wed, 27 Aug 2025 00:33: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 1ur46k-00013p-By; Wed, 27 Aug 2025 00:33:46 +0000
Received: by outflank-mailman (input) for mailman id 1095392;
 Wed, 27 Aug 2025 00:33:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=73cR=3H=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1ur46j-00013j-0O
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 00:33:45 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 72b011db-82dd-11f0-b898-0df219b8e170;
 Wed, 27 Aug 2025 02:33:28 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 73FB16022A;
 Wed, 27 Aug 2025 00:33:26 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id BA9CFC4CEF1;
 Wed, 27 Aug 2025 00:33:24 +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>
X-Inumbo-ID: 72b011db-82dd-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1756254806;
	bh=ZYkeGKuhBRVor5ZT4kK9Jcwi/kBO+3P+cB3LbYg9NVo=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=HWdcB+YDi09/G6sQEbwfzy7oc4mHlmhJFZZJ+96qQ3N7ywySmUK4gjtbUn47mR9T9
	 DV0ilXqHqW04jcvE0FPVGlXnCUhNhcnDVxx4eD0H+9N7K7DWm+mQLrN+O5ekPX7L5G
	 Fe1/leBfZE5k/KPgQ2e1wVr2/PiN3BCdGLuqJQybZ+zr13SZIpdc95y5I1tb1WVhfL
	 4VpZt+6wXvSoS5AojL5AX1WMGnLKfaIak8v6LtUyiLgQ14xbvi0Ow28WmSWme9O6WJ
	 WWhrcgxuLzr+K2zTJWjfRJtdn41MDXY5jirM56jAQn0SqvQAbC2a9g58CThjyqS+3N
	 KTMcZQDRPvfhw==
Date: Tue, 26 Aug 2025 17:33:22 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: jbeulich@suse.com
cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>, ray.huang@amd.com, 
    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>, 
    xen-devel@lists.xenproject.org, Penny Zheng <Penny.Zheng@amd.com>, 
    sstabellini@kernel.org
Subject: Re: [PATCH] xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE
In-Reply-To: <alpine.DEB.2.22.394.2508251934200.3391208@ubuntu-linux-20-04-desktop>
Message-ID: <alpine.DEB.2.22.394.2508261728250.3391208@ubuntu-linux-20-04-desktop>
References: <20250815102728.1340505-1-Penny.Zheng@amd.com> <fb6f559a-b2aa-4b25-a6d3-401ecc4b4bd5@suse.com> <d6046b53-9317-43d6-bfda-e30d42c09320@gmail.com> <2035b14e-3836-4e80-9dad-8a49ca90864a@suse.com> <alpine.DEB.2.22.394.2508181646220.923618@ubuntu-linux-20-04-desktop>
 <49416df6-83c8-4fa3-bf81-2d1e504ef31b@suse.com> <alpine.DEB.2.22.394.2508251934200.3391208@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

Hi all,

So I ran a test and the appended change, which is based on [1] and
renaming CONFIG_DOMCTL to CONFIG_SYSCTL, is sufficient to resolve the
build issue.

For 4.21, I suggest we go with two patches:
1) global rename of CONFIG_SYSCTL to CONFIG_MGMT_HYPERCALLS
2) stub domctl_lock_acquire/release based on CONFIG_MGMT_HYPERCALLS

Jan, are you OK with this?

Cheers,

Stefano

[1] https://marc.info/?l=xen-devel&m=175421457323598

diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
index e10baf2615..dedc73412f 100644
--- a/xen/include/xen/domain.h
+++ b/xen/include/xen/domain.h
@@ -148,8 +148,17 @@ void arch_dump_domain_info(struct domain *d);
 
 int arch_vcpu_reset(struct vcpu *v);
 
+#ifdef CONFIG_SYSCTL
 bool domctl_lock_acquire(void);
 void domctl_lock_release(void);
+#else
+static inline bool domctl_lock_acquire(void)
+{
+    return false;
+}
+
+static inline void domctl_lock_release(void) {}
+#endif /* CONFIG_DOMCTL */
 
 /*
  * Continue the current hypercall via func(data) on specified cpu.


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 02:05:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 02:05:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095427.1450444 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ur5XM-0003Dj-Iw; Wed, 27 Aug 2025 02:05:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095427.1450444; Wed, 27 Aug 2025 02: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 1ur5XM-0003Dc-Fn; Wed, 27 Aug 2025 02:05:20 +0000
Received: by outflank-mailman (input) for mailman id 1095427;
 Wed, 27 Aug 2025 02:05:19 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qMex=3H=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1ur5XL-0003DU-4L
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 02:05:19 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20605.outbound.protection.outlook.com
 [2a01:111:f403:2418::605])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 461fede1-82ea-11f0-a32c-13f23c93f187;
 Wed, 27 Aug 2025 04:05:16 +0200 (CEST)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 DM3PR12MB9435.namprd12.prod.outlook.com (2603:10b6:0:40::6) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9052.21; Wed, 27 Aug 2025 02:05:12 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d%7]) with mapi id 15.20.9052.019; Wed, 27 Aug 2025
 02:05: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>
X-Inumbo-ID: 461fede1-82ea-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NzGY9VFocuwF/NSinPXq6kiNGmc+bWXz6tcx7zDm7dohBpr2EytfyBYorxwh9tFz/2RbKwsb8KlrdSQgVm7EEnyKr9GtbfyXJnWFIPfNLv+54b/OST7hYymiYJ5WuIGie/HDlXW5kiXvlzkxeYyYGiVG2rZDSbWA0fAuq7FUtdSv+XsqrykEi50bbKyjzwK1kbCMRF9TYcghlnPcyU5J00/rkVGI1NdE8LLBLacqduqZeYnGrFe3He9CWSf+pH8j/yoFz2rN7tSlhy36wTudhIKZIkpsUXgnNcyYdztBIUTvaP5Nm8iJ1VCK09MgLPIhWBZwEpfTgYM9XZJ/24mu8w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=5jIkEhCrD1tkm3WVSks7RoSVnaXnIsQFs20ijvLNiEQ=;
 b=rnw7PkfV7o5hNQBLJlXPePgKPLv/AH1ANaC/KEUsci4O43Xhkkj0HCF37qu3InG1mVHczkUAn82tHUiG0tEa8egwi7Xr7u4JjB11IowYwHgruQaFULuCprHb7yzwSGY8IyPlOui5C6vFE3IWLaZ401h7kiFMclSEFUm/o0c8BvpNFOScCqHxD0L/OtH5odNxfgEMdILGBcQnbJfJ08dw1qfIIQQnXGqt8tAxJkmlBh97wMSL1WfeoJ1ywMPFfVsegVlrdGW6hlZUhQ73KGQGizY6pC9dNvmKLK0qLxriG64AtgGVPjGF6S1aYJW3mFL7sMJWVzUMR1Us/q9m/nz0iA==
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=5jIkEhCrD1tkm3WVSks7RoSVnaXnIsQFs20ijvLNiEQ=;
 b=N5WJCRyafY5kPcXir3UlXW00GX88B4vujaaoyAznAeqkq4s6X0zXFeCET8cLmVLW7iufO67VvWp3IURdOjl2+EZe5yJFG5kvpCIWwxHJbwQ9D15L2yCC7RQFuvY1SzITrBEaK8IZ38Pj+kVfWVtQJTlWXTGWSUAKezV0B+m06YY=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>, Jan Beulich
	<jbeulich@suse.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Community Manager
	<community.manager@xenproject.org>, "committers@xenproject.org"
	<committers@xenproject.org>, "Huang, Ray" <Ray.Huang@amd.com>
Subject: RE: [Reminder] Feature Freeze is Fri Aug 29, 2025
Thread-Topic: [Reminder] Feature Freeze is Fri Aug 29, 2025
Thread-Index: AQHcFqINFTgBbfc5NEmJc3GDXmqQpbR1wBqg
Date: Wed, 27 Aug 2025 02:05:12 +0000
Message-ID:
 <DM4PR12MB845178246B1C1CD9DE5E9CB6E138A@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <07fc7122-d0ac-4dbe-800d-89086a07005b@gmail.com>
 <c243d9b1-385f-49a3-9c50-507250f7bb68@suse.com>
 <614030ab-2dca-49b9-8256-f19bf848638b@gmail.com>
In-Reply-To: <614030ab-2dca-49b9-8256-f19bf848638b@gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-08-27T02:02:56.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|DM3PR12MB9435:EE_
x-ms-office365-filtering-correlation-id: c0f22c5e-cf52-4daa-7f0c-08dde50e2817
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|376014|38070700018|8096899003|7053199007;
x-microsoft-antispam-message-info:
 =?utf-8?B?SXM5UUF2c004QWpBS2FLWU8rMTZ4MFFYeXNlYndQY01kaHcvZ3BkRXM2SkxG?=
 =?utf-8?B?Y2lHZWNSaGZCaE1PM1hjNmtvb2JZY25ObWtYUFhvT0plZGZ0VWMwUnhBWDZX?=
 =?utf-8?B?WEQ1Nm8rTUloT3ZlUCtYeWw4WW9LelphT1h1QURDVmFXMk0ydUdjTTlkN0gx?=
 =?utf-8?B?cVpDQXZRRk9Wd2lEY3IxVE1jRlhKc2MyLzFFQnh5ZUtKVE5nWWRFOWprR0xm?=
 =?utf-8?B?VUFLNjRsamphVk5TbWRSTDFGYmxDRHg4V1UyRjBmdFVUcUhRUVBlaGczZEpB?=
 =?utf-8?B?MExBWXp0NnNZUkhxR045ckpCSmVOVCtudm1MQzNSazlHdzJ5b3NwbllHMWFx?=
 =?utf-8?B?OGp0ZHdBay9FYURkWi9GUnhMS0pCSnI0a0hCRHBWWFRVNWtnODFtZVFUQUgw?=
 =?utf-8?B?akZxYmhsYko5TE9LdjlvMC9UekEwdE9vQllEcFR3VE1jL21nT1FxS2k1Wjdk?=
 =?utf-8?B?ZmxCYmMyMTVUa0dUcDhGVStMNVNLVEpLMXdvTzNjSTZSUElqWWJtVFBzcllq?=
 =?utf-8?B?ZDVCNi9qY09NRmFIZVFDSUt1dGszYWdrK2dSS1pyanYxazhGbDhLSGJEcGdR?=
 =?utf-8?B?aTNDdW84czh1bzdDMHN6NUlzVmhYYWxkQUg5VkJBaXliMEVadjdnTGx0bzN5?=
 =?utf-8?B?MHhpb2F6T2taOGxYQjV6NkZXUG5QVzRyMUhzN3VtV0ZaWWNhQkxBcGtZQmJ0?=
 =?utf-8?B?VFVnU3VSMzhKUWdWeEJ6Z0liMU9qSGZ5TzZyaTlqTW1WeU0zQ1QvVXcrb2Ex?=
 =?utf-8?B?NUovVVphSkU0NWJia3VVUTZ2ZHZZdkZycFNwcEZpTG93SGFRT1F3Qm9yY3hp?=
 =?utf-8?B?R0dQcFNzY2xmOVNuQ3hLMldRNldKZElhWEZTQTFCMy96b0lSczcyWTAxK1N6?=
 =?utf-8?B?K0xRL1ZnMjRTQVJhODJUMHZ1allOeENUK0p4UDhqb1dMeTdud1lsTVVialZN?=
 =?utf-8?B?N0ZCVVRkeURrbHJJN0krQzcydUd2MVNkc3ZDUjVNRWxBVlYzaWU2dHJVSkQr?=
 =?utf-8?B?VG83eHRPR3hnZ0dUN21jeXB2cGJDK1ZQTXlBVktPdHJwT0lPR2dRR1NiazhW?=
 =?utf-8?B?SUdrTmd6VXFKWTVNVkxtb3NQd1QwTm9XLzd6SFRDUzNYUG9aZE1tNnZoZzU2?=
 =?utf-8?B?R1Focm1iU2lnYk4yQWZjTE5CRUxRcFN2cjRlOWsrYmM2b1lqMWJyTnJOa0g4?=
 =?utf-8?B?L2VGTG1zYnJxMUxMWXErYk1BcGJvRGcrbVFLTWk1Ynh4WUZ4VW5TdDl2QTRs?=
 =?utf-8?B?enFGSXB2TUZ1KzRjSzQybjM1VkpIZjhxaW1YZUljdUpIRjkvYUZUaVNBRkQ1?=
 =?utf-8?B?dCtZSHFGeFBwV0tpMjlCMjFGVVVKVWxicCs3cjBlSkZ4MTQ1N1FPL042ZGxR?=
 =?utf-8?B?OFhkRnZLMExEYllFcitqY083Z0FRTXFYb2dtZEdLNlZOMXpqNWV2RWFFODFo?=
 =?utf-8?B?K1VkVWNtNTdVci81aXREWHA4MDd6N1k0bE1aWUdTNWFFQ2F5dUxXckRsQUt6?=
 =?utf-8?B?bTJEMGo2NU5jcGNlZ25WejFKbUZOT1IxaHdHRTdIb2ZIOGNxS24wTVh0L3hi?=
 =?utf-8?B?WmhwYUhjLzluSTNaUS92R3NIZ1FRblZidlJaZEN3MVF6eXIrZkZJNHBBQmFX?=
 =?utf-8?B?dFJKcERSblJCMWJ5emIyMGo3RnNPamhmSW5EYjZqcEZUd2VtbWo4NXZSLzJP?=
 =?utf-8?B?SDNLQW91Wjk5Z2QzQUc0c1FadnFqZlFxUkJqZzVtUnhaNS85b0pWVVVjU1M1?=
 =?utf-8?B?RzFSV1B1SWQyT1Rza0t6M2lydGRlK05NbjhlWEFoVEJNSDhXK0JJSmEzZjRJ?=
 =?utf-8?B?OUlzczRLYXRXOG9IVHRaVm0rTFlidGNJS2Q4Zm9uUlVhNmpoM3FZeEZsKzhu?=
 =?utf-8?B?cVo0bko5a0ZQWFQ4ZXkzenBHRDQ4WjJUMTZWbm5EbnBlbUM2WGErS2FvTGlL?=
 =?utf-8?B?d2tPOTBneEFpMGRCNEhWY3NLYWNSM1lVb0gvdTRaR2x0dW9rWXl6YXlHR3Yw?=
 =?utf-8?B?dWc1c3dDTjFRPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018)(8096899003)(7053199007);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?RUFvcXNzKy9Yd0tKYTM4ckI3R1N2S0dhWklpRzBjc1pVVDJ3UGV5UWJOd1JE?=
 =?utf-8?B?bkV2YXBJcFpBWGQwWTlQTC8xL21GYW9pd0o3VWR5OFI5N0lRQmZuUGU5c0ZF?=
 =?utf-8?B?SThELzhNSXBLWWdOL1NGMjJ3ZG9Gck9tUXdUTzdmRDVBcTd4ODlLQTMvR05h?=
 =?utf-8?B?Qm9vaThDdExaczhTT045QVhmWWJZd3dEZ0hOSXAxclNha1ZDcWFHQ1BlTmU3?=
 =?utf-8?B?d1BaRmlIdnRoY1JhSk0zUURVM1lmRG9WNG0xTW96TkJTNFJGNFUrak1udm5N?=
 =?utf-8?B?RDhTVTVSalhPSlhGZ3Y1MHc0OWFhYnc5cEQyencvVmNna094SUdkSFpxTHJ0?=
 =?utf-8?B?ZVJCMVVOV1lVU3ZyL3hrRVVPdDltOVJoempMSm5vSXVWaWRwQzZkYW1wVUp3?=
 =?utf-8?B?cURqVWJkVm1KUGRCVHpTL01kOXpUbnJnZkh2WjJGMTZxT0hCaTNrRUt6VVFG?=
 =?utf-8?B?RGwraGxEbWpWY01vZXZMZ29nS2FadHcxeXZCcTNQUW1uTW5sbU5PWFZJa3c1?=
 =?utf-8?B?UlVnWk9rSVpFQWZSWGZRQnBHNVFpZ2NXWjVYajlFNW5tcFFEVDgyamM0cElm?=
 =?utf-8?B?R05tNy9VRmEvUHVSVjZkMVhtN20vVWtqZFJkcXh5Vm05YjdGS3dGeG1sS0F2?=
 =?utf-8?B?QVJiUE1hQ21odHYzTWJSL2ljMGpoWlNCc1BOd2QvS1htQk04eWNIL1FpR3Zk?=
 =?utf-8?B?KzZ4eS9GZ1h5VDRrYWFvUld3dEVtdmdvWlIvUnNMUGdFWDdMaW9CWTJrUmw5?=
 =?utf-8?B?cFpVVzBuRHE0OEVGbG5jYU52MXRnZDd2VmVZVHo1QTFBUGZFUWIrdlJSQVZX?=
 =?utf-8?B?aVRCaTZOLzZtWWppb3B4OUxwM2ZYejJ5Rm1sOXgyM0h3a1h3R0VGWEJvNEZa?=
 =?utf-8?B?RDdkV05UWVo5cThqRzBHOE5WOHZQS2NRMlFRcU9MUE5EblV6WjB6TFpVOVp1?=
 =?utf-8?B?UnhtZ1lsSzhFZWQ4cE9WQTJuU2R0T0xHMHM5a1JHekpEejFOVnhUZWN5dURZ?=
 =?utf-8?B?cnp5SVVseURxRGNqZHBYRk1NQXU2NmREZGpQaEVEaXQ2Y0d5NUVVRFRudGZ3?=
 =?utf-8?B?M2lpY1NxbnBMeDZvLzlBYlMxUHB3S3pjZVhtSmpBY2NrN2JCSmZoL3VoeHB5?=
 =?utf-8?B?ckVjYzRWSCt5TkRwWUlLRmdnTUZOMzNHTkhHTjJJczgxZjZFUG5WRmFoQW5Z?=
 =?utf-8?B?VWk3VzF2amFVdS9VNWxqeEQveDVoV1gyM1M1SlpMR3FXaUNrcG1PeVVkWkVz?=
 =?utf-8?B?VHBmUnZudXVhL0xoa1UzQm9kSVpMWndsUE50WUtRSjhQNGh6a2J6V1lWWlFi?=
 =?utf-8?B?MFY3ekc0RzF6U2JLN3NCay9pbHUvWnBEbHVmS1VqOGpoVHA1czlpN1dyamxv?=
 =?utf-8?B?WnNvdUZhNjZid1Zmdkh3dm9jQUtjTlQ4Yno1em5kRzlPUStHcS9nWHI1eDhn?=
 =?utf-8?B?TXBHaWkreEdnZzNtUjN1enVrbHlhSlpmRHRqOTYwWjRJcmZZazVnaTFoYTFk?=
 =?utf-8?B?ck0zcjVkOThHa3cvaGtVcm9iS3YwM01aaVdkV21qM2F3bVIvZzFEa2QzVVR4?=
 =?utf-8?B?TEpRZGhwZ3gyWkVDT0IvNzlsYm1wSlZMVHNlTXllWThHcTA4TVBoSHJjZTJT?=
 =?utf-8?B?cDUxNzF4eTNxK2pwMjdrbnJTUXQxOS9NRzNKSVpuamJ5TmlVZ003ckVtVlFP?=
 =?utf-8?B?SFAyb1ZPekRTWWdiMTVDdTgrUS81Y0JmRDRJcDFQZGt2amlYRzBhYnFCZ3Vu?=
 =?utf-8?B?Ni9mZzIyZFc3cENBbGpwazU5d1NOaXp3dHAxSk95eEJZSkpnbVNocU5ZWTY0?=
 =?utf-8?B?alMxUTZCUnRzMU1LS0FIaHRMZy9Mai9FcUtKRDc5cGY1Zys3TVVnSGljVVND?=
 =?utf-8?B?cEU1dzJFT29KWFQ5eGcyeGlZUGpZVDBWM1RiR3RhMThQaWlRdnJUTXM3dERp?=
 =?utf-8?B?OFBVdHBGeGhsOXhMUmlKcUZ0cVhkUytxazVCRm4wQ0cwWHoxSEhTZWpNM3hW?=
 =?utf-8?B?Q3Y0Y0ZUcjFZd3pDejg2T2t3aS9vbjkwSU8rR21SNTlUZElzaGRuYzVsUzRi?=
 =?utf-8?B?ZW5YWU1ncWQ3eEYxQTNPbFUvMEZmQUk4MHRBMUlvVkJ2NEsxTjZKMS9YclJS?=
 =?utf-8?Q?LTPM=3D?=
Content-Type: multipart/alternative;
	boundary="_000_DM4PR12MB845178246B1C1CD9DE5E9CB6E138ADM4PR12MB8451namp_"
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c0f22c5e-cf52-4daa-7f0c-08dde50e2817
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Aug 2025 02:05:12.1198
 (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: vUSKcGyPvtM2wHQNXMC5fM/6462LXXKfjAwTxZI2fr6Z/0nv2IXti3aCkN1F2ZdNryoKKfd97cFWyYcZBfT8Fg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM3PR12MB9435

--_000_DM4PR12MB845178246B1C1CD9DE5E9CB6E138ADM4PR12MB8451namp_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

W1B1YmxpY10NCg0KDQoNCkZyb206IE9sZWtzaWkgS3Vyb2Noa28gPG9sZWtzaWkua3Vyb2Noa29A
Z21haWwuY29tPg0KU2VudDogVHVlc2RheSwgQXVndXN0IDI2LCAyMDI1IDExOjU3IFBNDQpUbzog
SmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPjsgUGVubnksIFpoZW5nIDxwZW5ueS56aGVu
Z0BhbWQuY29tPg0KQ2M6IFhlbi1kZXZlbCA8eGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3Jn
PjsgQ29tbXVuaXR5IE1hbmFnZXIgPGNvbW11bml0eS5tYW5hZ2VyQHhlbnByb2plY3Qub3JnPjsg
Y29tbWl0dGVyc0B4ZW5wcm9qZWN0Lm9yZw0KU3ViamVjdDogUmU6IFtSZW1pbmRlcl0gRmVhdHVy
ZSBGcmVlemUgaXMgRnJpIEF1ZyAyOSwgMjAyNQ0KDQoNCisgUGVubnkgWmhlbmcNCk9uIDgvMjYv
MjUgNzo1NSBBTSwgSmFuIEJldWxpY2ggd3JvdGU6DQoNCk9uIDI1LjA4LjIwMjUgMTc6NTAsIE9s
ZWtzaWkgS3Vyb2Noa28gd3JvdGU6DQoNCkhlbGxvIGNvbW11bml0eSwNCg0KDQoNCknigJlkIGxp
a2UgdG8gcmVtaW5kIGV2ZXJ5b25lIHRoYXQgdGhlIEZlYXR1cmUgRnJlZXplIGRlYWRsaW5lIGlz
IGFwcHJvYWNoaW5nLA0KDQphbmQgd2Ugc3RpbGwgaGF2ZSBzb21lIG91dHN0YW5kaW5nIHJlcXVl
c3RzIGZyb20gdGhlIGNvbW11bml0eSBmb3IgcGF0Y2ggc2VyaWVzDQoNCnRvIGJlIG1lcmdlZCBp
bnRvIDQuMjE6DQoNCg0KDQoxLiBFbmFibGUgZ3Vlc3Qgc3VzcGVuZC9yZXN1bWUgc3VwcG9ydCBv
biBBUk0gdmlhIHZQU0NJIFsxXQ0KDQoyLiBJbnRyb2R1Y2UgU0NJIFNDTUkgU01DIG11bHRpLWFn
ZW50IHN1cHBvcnQgWzJdDQoNCjMuIEludHJvZHVjZSBlU1BJIHN1cHBvcnQgWzNdDQoNCjQuIEZS
RUQgd29yazogWzRdLCBbNV0sIHBvc3NpYmx5IG90aGVycyAoPykNCg0KNS4gSW50cm9kdWNlIENP
TkZJR19ET01DVEwgWzZdDQoNCjYuIHhlbi94ODY6IG1vdmUgZG9tY3RsLm8gb3V0IG9mIFBWX1NI
SU1fRVhDTFVTSVZFIFs3XQ0KDQo3LiBTb21lIG90aGVyIHBhdGNoIHNlcmllcyBJIG1pc3NlZC4N
Cg0KDQoNCiJhbWQtY3BwYyBDUFUgUGVyZm9ybWFuY2UgU2NhbGluZyBEcml2ZXIiIGhhcyBiZWVu
IHBlbmRpbmcgZm9yIHF1aXRlIGEgd2hpbGUsDQoNCmFuZCByZWFsbHkgb3VnaHQgdG8gbWFrZSBp
dCBpbW8uIEknbSBpbmNsaW5lZCB0byBzYXkgZXZlbiBpZiBhbiBleGNlcHRpb24gd2FzDQoNCm5l
ZWRlZC4gUGFydHMgaGF2ZSBnb25lIGluLCBJJ20gYWJvdXQgdG8gY29tbWl0IG1vcmUgcGFydHMs
IGJ1dCB3aGV0aGVyDQoNCmV2ZXJ5dGhpbmcgd291bGQgYmUgaW4gYnkgRnJpZGF5IEkgY2FuJ3Qg
cHJlZGljdC4NCg0KQ29uc2lkZXJpbmcgdGhhdCBvbmx5IGEgZmV3IHBhdGNoZXMgYXJlIHJlcXVp
cmVkIHRvIHJlY2VpdmUgQWNrL1Jldmlld2VkLWJ5LA0KDQp0aGlzIGNvdWxkIGJlIGNvbnNpZGVy
ZWQgZm9yIGluY2x1c2lvbiBpbiA0LjIxLg0KDQpQZW5ueSwgZG8geW91IGhhdmUgc29tZSB0aW1l
IHRvIHByb3ZpZGUgYSBuZXcgdmVyc2lvbiBvZiB0aGUgImFtZC1jcHBjIENQVQ0KDQpQZXJmb3Jt
YW5jZSBTY2FsaW5nIERyaXZlciIgcGF0Y2ggc2VyaWVzPw0KDQoNCg0KQWJzb2x1dGVseSwgSeKA
mWxsIHB1c2ggYSBuZXcgdmVyc2lvbiBiZWZvcmUgRnJpZGF5DQoNCg0KDQp+IE9sZWtzaWkNCg==

--_000_DM4PR12MB845178246B1C1CD9DE5E9CB6E138ADM4PR12MB8451namp_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl
PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6
IkNhbWJyaWEgTWF0aCI7DQoJcGFub3NlLTE6MiA0IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1m
YWNlDQoJe2ZvbnQtZmFtaWx5OkRlbmdYaWFuOw0KCXBhbm9zZS0xOjIgMSA2IDAgMyAxIDEgMSAx
IDE7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseTpDYWxpYnJpOw0KCXBhbm9zZS0xOjIgMTUg
NSAyIDIgMiA0IDMgMiA0O30NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6QXB0b3M7fQ0KQGZv
bnQtZmFjZQ0KCXtmb250LWZhbWlseTpDb25zb2xhczsNCglwYW5vc2UtMToyIDExIDYgOSAyIDIg
NCAzIDIgNDt9DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OiJcQERlbmdYaWFuIjsNCglwYW5v
c2UtMToyIDEgNiAwIDMgMSAxIDEgMSAxO30NCi8qIFN0eWxlIERlZmluaXRpb25zICovDQpwLk1z
b05vcm1hbCwgbGkuTXNvTm9ybWFsLCBkaXYuTXNvTm9ybWFsDQoJe21hcmdpbjowaW47DQoJZm9u
dC1zaXplOjEyLjBwdDsNCglmb250LWZhbWlseToiQXB0b3MiLHNhbnMtc2VyaWY7fQ0KcHJlDQoJ
e21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgltc28tc3R5bGUtbGluazoiSFRNTCBQcmVmb3JtYXR0
ZWQgQ2hhciI7DQoJbWFyZ2luOjBpbjsNCglmb250LXNpemU6MTAuMHB0Ow0KCWZvbnQtZmFtaWx5
OiJDb3VyaWVyIE5ldyI7fQ0Kc3Bhbi5IVE1MUHJlZm9ybWF0dGVkQ2hhcg0KCXttc28tc3R5bGUt
bmFtZToiSFRNTCBQcmVmb3JtYXR0ZWQgQ2hhciI7DQoJbXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0K
CW1zby1zdHlsZS1saW5rOiJIVE1MIFByZWZvcm1hdHRlZCI7DQoJZm9udC1mYW1pbHk6Q29uc29s
YXM7fQ0Kc3Bhbi5FbWFpbFN0eWxlMjENCgl7bXNvLXN0eWxlLXR5cGU6cGVyc29uYWwtcmVwbHk7
DQoJZm9udC1mYW1pbHk6IkFyaWFsIixzYW5zLXNlcmlmOw0KCWNvbG9yOndpbmRvd3RleHQ7fQ0K
Lk1zb0NocERlZmF1bHQNCgl7bXNvLXN0eWxlLXR5cGU6ZXhwb3J0LW9ubHk7DQoJZm9udC1zaXpl
OjEwLjBwdDsNCgltc28tbGlnYXR1cmVzOm5vbmU7fQ0KQHBhZ2UgV29yZFNlY3Rpb24xDQoJe3Np
emU6OC41aW4gMTEuMGluOw0KCW1hcmdpbjoxLjBpbiAxLjBpbiAxLjBpbiAxLjBpbjt9DQpkaXYu
V29yZFNlY3Rpb24xDQoJe3BhZ2U6V29yZFNlY3Rpb24xO30NCi0tPjwvc3R5bGU+PCEtLVtpZiBn
dGUgbXNvIDldPjx4bWw+DQo8bzpzaGFwZWRlZmF1bHRzIHY6ZXh0PSJlZGl0IiBzcGlkbWF4PSIx
MDI2IiAvPg0KPC94bWw+PCFbZW5kaWZdLS0+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+DQo8bzpz
aGFwZWxheW91dCB2OmV4dD0iZWRpdCI+DQo8bzppZG1hcCB2OmV4dD0iZWRpdCIgZGF0YT0iMSIg
Lz4NCjwvbzpzaGFwZWxheW91dD48L3htbD48IVtlbmRpZl0tLT4NCjwvaGVhZD4NCjxib2R5IGxh
bmc9IkVOLVVTIiBsaW5rPSIjNDY3ODg2IiB2bGluaz0iIzk2NjA3RCIgc3R5bGU9IndvcmQtd3Jh
cDpicmVhay13b3JkIj4NCjxwIHN0eWxlPSJmb250LWZhbWlseTpDYWxpYnJpO2ZvbnQtc2l6ZTox
MHB0O2NvbG9yOiMwMDgwMDA7bWFyZ2luOjVwdDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdo
dDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7IiBhbGlnbj0iTGVmdCI+DQpbUHVibGljXTxi
cj4NCjwvcD4NCjxicj4NCjxkaXY+DQo8ZGl2IGNsYXNzPSJXb3JkU2VjdGlvbjEiPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZiI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9w
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZiI+PG86cD4mbmJzcDs8L286cD48
L3NwYW4+PC9wPg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29saWQgYmx1
ZSAxLjVwdDtwYWRkaW5nOjBpbiAwaW4gMGluIDQuMHB0Ij4NCjxkaXY+DQo8ZGl2IHN0eWxlPSJi
b3JkZXI6bm9uZTtib3JkZXItdG9wOnNvbGlkICNFMUUxRTEgMS4wcHQ7cGFkZGluZzozLjBwdCAw
aW4gMGluIDBpbiI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Yj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPkZy
b206PC9zcGFuPjwvYj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTom
cXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPiBPbGVrc2lpIEt1cm9jaGtvICZsdDtvbGVr
c2lpLmt1cm9jaGtvQGdtYWlsLmNvbSZndDsNCjxicj4NCjxiPlNlbnQ6PC9iPiBUdWVzZGF5LCBB
dWd1c3QgMjYsIDIwMjUgMTE6NTcgUE08YnI+DQo8Yj5Ubzo8L2I+IEphbiBCZXVsaWNoICZsdDtq
YmV1bGljaEBzdXNlLmNvbSZndDs7IFBlbm55LCBaaGVuZyAmbHQ7cGVubnkuemhlbmdAYW1kLmNv
bSZndDs8YnI+DQo8Yj5DYzo8L2I+IFhlbi1kZXZlbCAmbHQ7eGVuLWRldmVsQGxpc3RzLnhlbnBy
b2plY3Qub3JnJmd0OzsgQ29tbXVuaXR5IE1hbmFnZXIgJmx0O2NvbW11bml0eS5tYW5hZ2VyQHhl
bnByb2plY3Qub3JnJmd0OzsgY29tbWl0dGVyc0B4ZW5wcm9qZWN0Lm9yZzxicj4NCjxiPlN1Ympl
Y3Q6PC9iPiBSZTogW1JlbWluZGVyXSBGZWF0dXJlIEZyZWV6ZSBpcyBGcmkgQXVnIDI5LCAyMDI1
PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPHA+KyBQZW5ueSBaaGVuZzxvOnA+PC9vOnA+PC9w
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPk9uIDgvMjYvMjUgNzo1NSBBTSwgSmFuIEJl
dWxpY2ggd3JvdGU6PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxibG9ja3F1b3RlIHN0eWxlPSJt
YXJnaW4tdG9wOjUuMHB0O21hcmdpbi1ib3R0b206NS4wcHQiPg0KPHByZT5PbiAyNS4wOC4yMDI1
IDE3OjUwLCBPbGVrc2lpIEt1cm9jaGtvIHdyb3RlOjxvOnA+PC9vOnA+PC9wcmU+DQo8YmxvY2tx
dW90ZSBzdHlsZT0ibWFyZ2luLXRvcDo1LjBwdDttYXJnaW4tYm90dG9tOjUuMHB0Ij4NCjxwcmU+
SGVsbG8gY29tbXVuaXR5LDxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPjxvOnA+Jm5ic3A7PC9vOnA+
PC9wcmU+DQo8cHJlPknigJlkIGxpa2UgdG8gcmVtaW5kIGV2ZXJ5b25lIHRoYXQgdGhlIEZlYXR1
cmUgRnJlZXplIGRlYWRsaW5lIGlzIGFwcHJvYWNoaW5nLDxvOnA+PC9vOnA+PC9wcmU+DQo8cHJl
PmFuZCB3ZSBzdGlsbCBoYXZlIHNvbWUgb3V0c3RhbmRpbmcgcmVxdWVzdHMgZnJvbSB0aGUgY29t
bXVuaXR5IGZvciBwYXRjaCBzZXJpZXM8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT50byBiZSBtZXJn
ZWQgaW50byA0LjIxOjxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPjxvOnA+Jm5ic3A7PC9vOnA+PC9w
cmU+DQo8cHJlPjEuIEVuYWJsZSBndWVzdCBzdXNwZW5kL3Jlc3VtZSBzdXBwb3J0IG9uIEFSTSB2
aWEgdlBTQ0kgWzFdPG86cD48L286cD48L3ByZT4NCjxwcmU+Mi4gSW50cm9kdWNlIFNDSSBTQ01J
IFNNQyBtdWx0aS1hZ2VudCBzdXBwb3J0IFsyXTxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPjMuIElu
dHJvZHVjZSBlU1BJIHN1cHBvcnQgWzNdPG86cD48L286cD48L3ByZT4NCjxwcmU+NC4gRlJFRCB3
b3JrOiBbNF0sIFs1XSwgcG9zc2libHkgb3RoZXJzICg/KTxvOnA+PC9vOnA+PC9wcmU+DQo8cHJl
PjUuIEludHJvZHVjZSBDT05GSUdfRE9NQ1RMIFs2XTxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPjYu
IHhlbi94ODY6IG1vdmUgZG9tY3RsLm8gb3V0IG9mIFBWX1NISU1fRVhDTFVTSVZFIFs3XTxvOnA+
PC9vOnA+PC9wcmU+DQo8cHJlPjcuIFNvbWUgb3RoZXIgcGF0Y2ggc2VyaWVzIEkgbWlzc2VkLjxv
OnA+PC9vOnA+PC9wcmU+DQo8L2Jsb2NrcXVvdGU+DQo8cHJlPjxvOnA+Jm5ic3A7PC9vOnA+PC9w
cmU+DQo8cHJlPiZxdW90O2FtZC1jcHBjIENQVSBQZXJmb3JtYW5jZSBTY2FsaW5nIERyaXZlciZx
dW90OyBoYXMgYmVlbiBwZW5kaW5nIGZvciBxdWl0ZSBhIHdoaWxlLDxvOnA+PC9vOnA+PC9wcmU+
DQo8cHJlPmFuZCByZWFsbHkgb3VnaHQgdG8gbWFrZSBpdCBpbW8uIEknbSBpbmNsaW5lZCB0byBz
YXkgZXZlbiBpZiBhbiBleGNlcHRpb24gd2FzPG86cD48L286cD48L3ByZT4NCjxwcmU+bmVlZGVk
LiBQYXJ0cyBoYXZlIGdvbmUgaW4sIEknbSBhYm91dCB0byBjb21taXQgbW9yZSBwYXJ0cywgYnV0
IHdoZXRoZXI8bzpwPjwvbzpwPjwvcHJlPg0KPHByZT5ldmVyeXRoaW5nIHdvdWxkIGJlIGluIGJ5
IEZyaWRheSBJIGNhbid0IHByZWRpY3QuPG86cD48L286cD48L3ByZT4NCjwvYmxvY2txdW90ZT4N
CjxwcmU+Q29uc2lkZXJpbmcgdGhhdCBvbmx5IGEgZmV3IHBhdGNoZXMgYXJlIHJlcXVpcmVkIHRv
IHJlY2VpdmUgQWNrL1Jldmlld2VkLWJ5LDxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPnRoaXMgY291
bGQgYmUgY29uc2lkZXJlZCBmb3IgaW5jbHVzaW9uIGluIDQuMjEuPG86cD48L286cD48L3ByZT4N
CjxwcmU+UGVubnksIGRvIHlvdSBoYXZlIHNvbWUgdGltZSB0byBwcm92aWRlIGEgbmV3IHZlcnNp
b24gb2YgdGhlICZxdW90O2FtZC1jcHBjIENQVTxvOnA+PC9vOnA+PC9wcmU+DQo8cHJlPlBlcmZv
cm1hbmNlIFNjYWxpbmcgRHJpdmVyJnF1b3Q7IHBhdGNoIHNlcmllcz88bzpwPjwvbzpwPjwvcHJl
Pg0KPHByZT48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtB
cmlhbCZxdW90OyxzYW5zLXNlcmlmIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3ByZT4NCjxw
cmU+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwm
cXVvdDssc2Fucy1zZXJpZiI+QWJzb2x1dGVseSwgSeKAmWxsIHB1c2ggYSBuZXcgdmVyc2lvbiBi
ZWZvcmUgRnJpZGF5PG86cD48L286cD48L3NwYW4+PC9wcmU+DQo8cHJlPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWYi
PjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcHJlPg0KPHByZT5+IE9sZWtzaWk8bzpwPjwvbzpw
PjwvcHJlPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ib2R5Pg0KPC9odG1sPg0K

--_000_DM4PR12MB845178246B1C1CD9DE5E9CB6E138ADM4PR12MB8451namp_--


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 02:09:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 02:09:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095437.1450454 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ur5bD-0003nR-1C; Wed, 27 Aug 2025 02:09:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095437.1450454; Wed, 27 Aug 2025 02:09: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 1ur5bC-0003nK-Uo; Wed, 27 Aug 2025 02:09:18 +0000
Received: by outflank-mailman (input) for mailman id 1095437;
 Wed, 27 Aug 2025 02:09:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vbje=3H=amd.com=stefano.stabellini@srs-se1.protection.inumbo.net>)
 id 1ur5bB-0003nB-Pq
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 02:09:17 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on2060a.outbound.protection.outlook.com
 [2a01:111:f403:2418::60a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d51167a8-82ea-11f0-a32c-13f23c93f187;
 Wed, 27 Aug 2025 04:09:16 +0200 (CEST)
Received: from BYAPR03CA0016.namprd03.prod.outlook.com (2603:10b6:a02:a8::29)
 by MN0PR12MB5881.namprd12.prod.outlook.com (2603:10b6:208:379::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.13; Wed, 27 Aug
 2025 02:09:12 +0000
Received: from CY4PEPF0000E9D4.namprd03.prod.outlook.com
 (2603:10b6:a02:a8:cafe::df) by BYAPR03CA0016.outlook.office365.com
 (2603:10b6:a02:a8::29) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.13 via Frontend Transport; Wed,
 27 Aug 2025 02:09:12 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CY4PEPF0000E9D4.mail.protection.outlook.com (10.167.241.139) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Wed, 27 Aug 2025 02:09:12 +0000
Received: from satlexmb10.amd.com (10.181.42.219) 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, 26 Aug
 2025 21:09:11 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.10; Tue, 26 Aug
 2025 19:09:11 -0700
Received: from ubuntu-20.04.2-arm64.shared (10.180.168.240) 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 via Frontend Transport; Tue, 26 Aug 2025 21:09: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>
X-Inumbo-ID: d51167a8-82ea-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Wc/msUYe2PP21P2QfWvgcTDdrTsuXtpKph7B7XJO9PE4rH+bLTGonU97Z3IeJEpr2rhUs6JVt8+XcXfLS/2gmXhMeHfEheJKUJzgRIq69KF+2nQV88yxWF/KDylb8KhFY1DOcRgsFkSDhBdqOTyEg2wLx0yE+Y8wbUNifaL0mbVHPi6PKm+R/ttBdbyRCFCckxA0P8M/SVtoV9K6j19dILOKqru01Xm2ld9F1S28cjo8GsapE7uUD+mHVlQrYYZ0P4CXo19jg6HADfiANQODff6B+YD1CRFEv1nVS7WaC+O0uEjaydz0DcQ6R3xq+IrW0I2VgbbpGbPdzBdFGdK+YA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=1QvF+xLsQctW7G4unTn7CijyPOESIHg/9PWEXSCRLDk=;
 b=C9/1+2j5R7hZVWfP8Wkj+yGZ3zlFThYOMxrCCvyIsIsVdFmy+tFFdKdXXJBuKnEZu+gckE6BQxJ8RFSs7z4KK819pcNiHnYXOJSJDD3odR9FA3fujgpHfv2vfjcfHFR+T5+2wLygevn5uqRqO84aFEETRc89aZ7I2KyJRH2pmQnnH1zmjFeGQX2Ebd8bzm2w+UTsuAA+nOy4pQ1/on6LFcro5GiyWK9EHwpp6Cqr0djWOeLqS0OXUAfOXcN5M5j/XRR4kIgqp/xlSHffRImdGavqYFX9qJJzhEWt/Cv+oj79zomiKRTAhJrd7uvw1TfGqsUwkMNzpTnWrAesMHuwEw==
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=1QvF+xLsQctW7G4unTn7CijyPOESIHg/9PWEXSCRLDk=;
 b=uuc8GPF3Zxpd4olz2oV4LVAEVea+YOuldg3Vm9tvteX1/X0TojjXCG1GsizkUdKaHIpWMDiQ948Zull9MG5103M9qUGrXdpgpeXPSGD0XlA096QqRXKvtQYb42jZnXMDDVV6C1NXAoXAbGtjStEw+nhh9dhZOtJFq4oRAeSCHAA=
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=SATLEXMB03.amd.com; pr=C
Date: Tue, 26 Aug 2025 19:09:09 -0700
From: Stefano Stabellini <stefano.stabellini@amd.com>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Stefano Stabellini <sstabellini@kernel.org>
CC: <jbeulich@suse.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	<ray.huang@amd.com>, 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>, <xen-devel@lists.xenproject.org>, Penny Zheng
	<Penny.Zheng@amd.com>
Subject: Re: [PATCH] xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE
In-Reply-To: <alpine.DEB.2.22.394.2508261728250.3391208@ubuntu-linux-20-04-desktop>
Message-ID: <alpine.DEB.2.22.394.2508261802360.3391208@ubuntu-linux-20-04-desktop>
References: <20250815102728.1340505-1-Penny.Zheng@amd.com> <fb6f559a-b2aa-4b25-a6d3-401ecc4b4bd5@suse.com> <d6046b53-9317-43d6-bfda-e30d42c09320@gmail.com> <2035b14e-3836-4e80-9dad-8a49ca90864a@suse.com> <alpine.DEB.2.22.394.2508181646220.923618@ubuntu-linux-20-04-desktop>
 <49416df6-83c8-4fa3-bf81-2d1e504ef31b@suse.com> <alpine.DEB.2.22.394.2508251934200.3391208@ubuntu-linux-20-04-desktop> <alpine.DEB.2.22.394.2508261728250.3391208@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-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9D4:EE_|MN0PR12MB5881:EE_
X-MS-Office365-Filtering-Correlation-Id: ccfba5ee-d93c-49c4-d46a-08dde50eb723
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|82310400026|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?HVAi2iUryEU/mUGsmWle8vse8T93O407mRaR4czdNOD6FsUfS+Z6KRld74fZ?=
 =?us-ascii?Q?AB7Ft01hV/rLq7uO4VUrA7ou++vmHnCQsAI7kJA1zg1PTf9ra4oq1DVuO7x5?=
 =?us-ascii?Q?r05Z9fvsdQB/QQYRsQDHnFyJJcyUBnnjF+fu25hiSXpvlhnlsS1h0ulmyBtZ?=
 =?us-ascii?Q?bUC1/l2VNZ+9FaING+RJzEWiXKIeXMJfrMUR2ondTM5+6TGA05lZchWcePvl?=
 =?us-ascii?Q?ZhRAnNwrKo7ujW4T9i012P8173fndJQYlLiHgLUEG7ze+3P8oSrr3sInNcZB?=
 =?us-ascii?Q?pc/ZB8wNtoY63+3ogIImVkS6xn5xIs0cD0SCqa/HmX2uEOonz7HmNj/SL8cB?=
 =?us-ascii?Q?lKXYwUcMaV31A8SV3OmU5UejH1PmW55A1oCTjcRRIa2vFeZ1Wsy5+LJXWDjt?=
 =?us-ascii?Q?tED1ACwn00P0r37U5FBlt8ABCiDwW3tLrWQEkIFhHOQwChSz/6X/JSjR9d+w?=
 =?us-ascii?Q?6q51GKsKU/uurPnEQN3iPTg2qY5qcFYSirtcxZ/JqVB5khU+A6EKNj6/QETd?=
 =?us-ascii?Q?WrJWfdnOWYcj199WSybmPIncljxEZUtFrrMZvkj6AOHXHJW6yN7hjMLp6Qj3?=
 =?us-ascii?Q?dQgs0f65KD8jocZbqhudP5mFUVGBj8JtFn34N7btlVBmo/KtJjQ6rrNNzSjW?=
 =?us-ascii?Q?Ppp+YspcPs0tlz1yAGckSsXffs7VKIbtz9VPmuFzyxGwZn+kxtrLh/A7B2p1?=
 =?us-ascii?Q?O7imHvlCpHoJAeB0h9h5eXKDk/JYyGXf0bMZzEkFvYoYOZ0tO/7k3NfZEKwt?=
 =?us-ascii?Q?c2GIsiC6aP0DytrN8ukOacIse9I7fz9LDyY2JSx3kj4bMRseAOWDcvfzhicQ?=
 =?us-ascii?Q?3YO26xZBeb+GJbuuz8mHQAx4Dg+W/fDKavd7TCHsxeItLvEJ/obqvlVN9/wb?=
 =?us-ascii?Q?nZvE2lrA3EzPjffyr7J1D0zg6/hhRs4fFgyMzw6ICiaR5+redO6cq0+bC/bl?=
 =?us-ascii?Q?+tdry/pDl1Ka/TWdpMOu05X+o3okbL1sag80ibXxmVUJC1qoOXMRWC9+44My?=
 =?us-ascii?Q?tNrlPTMJLeIH/wtY9/F74ex73QTJC1ErYeFfO6o0Jkf6zSHIIRhYqNukQG4Y?=
 =?us-ascii?Q?jRwAKDR4Y86aIAKR+GorO2xpTKa1RfxXjC566sNYeQ5MRUE/Jke6/yOpds/l?=
 =?us-ascii?Q?3KeGyCcZRuGQ9y1Tx3DvfyqAI0FSBAv3rJIDWsKuE9/Tv8RmvXF9CeixcHns?=
 =?us-ascii?Q?xZqe5tO7igrGMkJWL8Gwez+qGaoAx92BB5KqZIq4f88P+DkxYuisLuFD/AWS?=
 =?us-ascii?Q?vhvpsqoeqeISdZWLWnUCr582RrSqHwXACUi6GkS8nlMrU5nLAMKINewlwBYN?=
 =?us-ascii?Q?L25x+gtbo9WOrQxqfzU31q2TZB+f/5u6SFeAKd+f7fAxKZWIMQFdDoC/K7WH?=
 =?us-ascii?Q?Ow8JAq6Usdx4F1cS0XmoKZv1JtT5El/2p/nv053gLimjfA3exKNo3UjKUYc7?=
 =?us-ascii?Q?yXovGgvV2sAdyWyqN6jgwFaKs/k2o+jHMbQlLcj8s22JEO8LlP3/XRlpbMuL?=
 =?us-ascii?Q?R3cgjTSOcRb/ESP4/n4BgVEg8d6JqC7TmQuy?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Aug 2025 02:09:12.0482
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ccfba5ee-d93c-49c4-d46a-08dde50eb723
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000E9D4.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB5881

On Tue, 26 Aug 2025, Stefano Stabellini wrote:
> Hi all,
> 
> So I ran a test and the appended change, which is based on [1] and
> renaming CONFIG_DOMCTL to CONFIG_SYSCTL, is sufficient to resolve the
> build issue.
> 
> For 4.21, I suggest we go with two patches:
> 1) global rename of CONFIG_SYSCTL to CONFIG_MGMT_HYPERCALLS
> 2) stub domctl_lock_acquire/release based on CONFIG_MGMT_HYPERCALLS
> 
> Jan, are you OK with this?

The other patch doesn't work in the regular case but this patch does. I
ran it through 60+ randconfigs and so far so good. The strategy is still
the same I suggested above for 4.21: global rename, plus one more patch
(this one).


diff --git a/xen/common/Makefile b/xen/common/Makefile
index c316957fcb..352f004a2c 100644
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -50,7 +50,6 @@ obj-y += spinlock.o
 obj-$(CONFIG_STACK_PROTECTOR) += stack-protector.o
 obj-y += stop_machine.o
 obj-y += symbols.o
-obj-$(CONFIG_SYSCTL) += sysctl.o
 obj-y += tasklet.o
 obj-y += time.o
 obj-y += timer.o
@@ -70,7 +69,10 @@ obj-bin-$(CONFIG_X86) += $(foreach n,decompress bunzip2 unxz unlzma lzo unlzo un
 obj-$(CONFIG_COMPAT) += $(addprefix compat/,domain.o memory.o multicall.o xlat.o)
 
 ifneq ($(CONFIG_PV_SHIM_EXCLUSIVE),y)
+ifeq ($(CONFIG_SYSCTL),y)
 obj-y += domctl.o
+obj-y += sysctl.o
+endif
 endif
 
 extra-y := symbols-dummy.o
diff --git a/xen/include/hypercall-defs.c b/xen/include/hypercall-defs.c
index 8370b4b289..18ab294f94 100644
--- a/xen/include/hypercall-defs.c
+++ b/xen/include/hypercall-defs.c
@@ -194,14 +194,16 @@ kexec_op(unsigned long op, void *uarg)
 #ifdef CONFIG_IOREQ_SERVER
 dm_op(domid_t domid, unsigned int nr_bufs, xen_dm_op_buf_t *bufs)
 #endif
-#ifdef CONFIG_SYSCTL
+#if !defined(CONFIG_PV_SHIM_EXCLUSIVE) && defined(CONFIG_SYSCTL)
 sysctl(xen_sysctl_t *u_sysctl)
 #endif
 #if defined(CONFIG_X86) && defined(CONFIG_PAGING)
 paging_domctl_cont(xen_domctl_t *u_domctl)
 #endif
 #ifndef CONFIG_PV_SHIM_EXCLUSIVE
+#ifdef CONFIG_SYSCTL
 domctl(xen_domctl_t *u_domctl)
+#endif
 platform_op(xen_platform_op_t *u_xenpf_op)
 #endif
 #ifdef CONFIG_HVM
@@ -277,10 +279,8 @@ physdev_op                         compat   do       hvm      hvm      do_arm
 #ifdef CONFIG_HVM
 hvm_op                             do       do       do       do       do
 #endif
-#ifdef CONFIG_SYSCTL
+#if !defined(CONFIG_PV_SHIM_EXCLUSIVE) && defined(CONFIG_SYSCTL)
 sysctl                             do       do       do       do       do
-#endif
-#ifndef CONFIG_PV_SHIM_EXCLUSIVE
 domctl                             do       do       do       do       do
 #endif
 #ifdef CONFIG_KEXEC
diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
index e10baf2615..cb80e49de1 100644
--- a/xen/include/xen/domain.h
+++ b/xen/include/xen/domain.h
@@ -148,8 +148,17 @@ void arch_dump_domain_info(struct domain *d);
 
 int arch_vcpu_reset(struct vcpu *v);
 
+#if !defined(CONFIG_PV_SHIM_EXCLUSIVE) && defined(CONFIG_SYSCTL)
 bool domctl_lock_acquire(void);
 void domctl_lock_release(void);
+#else
+static inline bool domctl_lock_acquire(void)
+{
+    return false;
+}
+
+static inline void domctl_lock_release(void) {}
+#endif /* CONFIG_DOMCTL */
 
 /*
  * Continue the current hypercall via func(data) on specified cpu.
@@ -182,7 +191,7 @@ struct vnuma_info {
     struct xen_vmemrange *vmemrange;
 };
 
-#ifndef CONFIG_PV_SHIM_EXCLUSIVE
+#if !defined(CONFIG_PV_SHIM_EXCLUSIVE) && defined(CONFIG_SYSCTL)
 void vnuma_destroy(struct vnuma_info *vnuma);
 #else
 static inline void vnuma_destroy(struct vnuma_info *vnuma) { ASSERT(!vnuma); }


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 05:53:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 05:53:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095502.1450464 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ur95u-0004u9-2p; Wed, 27 Aug 2025 05:53:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095502.1450464; Wed, 27 Aug 2025 05:53: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 1ur95t-0004u2-Vs; Wed, 27 Aug 2025 05:53:13 +0000
Received: by outflank-mailman (input) for mailman id 1095502;
 Wed, 27 Aug 2025 05:53:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Gy2E=3H=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ur95s-0004tQ-0f
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 05:53:12 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1d10aa07-830a-11f0-a32c-13f23c93f187;
 Wed, 27 Aug 2025 07:53:11 +0200 (CEST)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-61caa266828so1592475a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 26 Aug 2025 22:53: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
 a640c23a62f3a-afe98cbf721sm383999366b.30.2025.08.26.22.53.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Aug 2025 22:53: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>
X-Inumbo-ID: 1d10aa07-830a-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756273990; x=1756878790; 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=3muMlO8x622GDRo7WNudqzE1HKg6WzyiPBRLiueUiWE=;
        b=Gtc300q0MDRxJQ2/ZmYNVescEjgxNI+5de0qeXVmcKrqvLlYvbPc6oMB1sKLW6KR+x
         OxxVVavBvWt1BjD985XggS92fedRrI/jjLOK/uVxnNvrtPVXadAu/DLEztVLsqyPDmU+
         ICh/Sz7KDuPjIlfo9RoqQlDoTN79RZj8wiA1ZxZxXUni4FkrIZcWp0nH7KvsonyNjoiM
         X142lHFpO1UEsTJqyFaAlq4ex3RXHJdSVvkxRy/Cs7z3AimQ5HJdqTvSHZSfUZXFVAVm
         FUdYECX+lP4hWKghf8z3Gxr93ov7ptX0ByMXo8PNFn6aaXxGJ2AJb3PETDA4PC/6NtHd
         CGNA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756273990; x=1756878790;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=3muMlO8x622GDRo7WNudqzE1HKg6WzyiPBRLiueUiWE=;
        b=NrtNJpJEP3VJXdD5Rqz+PXiKgvmBoekRtC4jKPHQFPG8yrklO9P4XTtY11/ROqApK2
         F2jt1h37mQ+bl62OROFGXksHnDz3gaYmgt8GiJH/kAlr9wzuDp2ucP9yZG2b7S4dXgRw
         CVCNBdZYNXUwkzsqVTgYfwElCTlREC+GFmKUkKGVodi53A2WJkwoR23VsrMMvGOXvMdp
         HuhwLUNQglN2dioaOly5H0MTc2J2WiHHgEW5XSoCjjt0hstbCzsG5aks3P6THxYqtl2B
         lZULswe+qQnB4IIIgJuhFv9hHcKb8InvjY0u4HxWiT12K+xAA9y57mS1EXmJp3zf9Rc8
         T+yg==
X-Gm-Message-State: AOJu0YxFCSpjDQuwJlGp+lVfYfUTRmBIi33lwmMXmo2iFMQSv1zzf/jX
	s6JXSfARU3ODCyNqkErjgt518Pt0ovjkKpEstYZPEzK63kKRx0FoiHjV2tMHh7s2Jrw3IjwNgnm
	fq+8=
X-Gm-Gg: ASbGncut6tAD3IBuLyn6cgz0jVkmyw1c0zw+C1NEIBuLxQuP8abLQ4fhNeoipgl2DlT
	HedO3tUc2hXN36mDOVrq+5uXoNgWTdZ720JgbcFWu47/MVYQqhdPRUtgXlXdb6KnJGxvn5h9QrT
	wxdrqbivF0GEPjS++MDhkfZpiVQWsR2AF2bxIQz7TWoQ/uTOgyQDqAVZ2nEodGe5rMsOjs6r29w
	X0hQpnsPprL4A5eSCB2p8srcaBN2VpbsKrIhuRHREH4cILPMnH/TpTm9qsto7SgwAaNF+Nzy6JC
	CA5qWDmMQK47tTHZVdbAsGuPRw3/KjDbPAtHmx7aNOke9BxckPwraPw2PP/vAVtm541c8RACvsZ
	sRgec/1d5KlG8xtZ1+K6vmAmNKtk+z1B2WJfwaO3yeykvL1ksvYG3qLv0ncAKiRcV9iSxajGmqW
	Dq3IZQWIA=
X-Google-Smtp-Source: AGHT+IHHgTrnRaeBbU1NK/JmtEOSB1uo+Ys7+IXFq2O0bkBuXywEcK10al8HJKrUtiZhBbnd1DZRvQ==
X-Received: by 2002:a17:907:7f02:b0:afe:764d:6b24 with SMTP id a640c23a62f3a-afe764d737amr1006797966b.14.1756273990427;
        Tue, 26 Aug 2025 22:53:10 -0700 (PDT)
Message-ID: <c98069b7-ee38-4f06-bebd-25396f2a210a@suse.com>
Date: Wed, 27 Aug 2025 07:53:09 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] libxl: except Dom0 from setting PoD target
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

Dom0 is never started in PoD mode, and hence it can at "best" do harm if
we try to set a PoD target for it.

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

--- a/tools/libs/light/libxl_mem.c
+++ b/tools/libs/light/libxl_mem.c
@@ -306,7 +306,7 @@ retry_transaction:
         }
     }
 
-    if (d_config.c_info.type != LIBXL_DOMAIN_TYPE_PV) {
+    if (domid && d_config.c_info.type != LIBXL_DOMAIN_TYPE_PV) {
         r = xc_domain_set_pod_target(ctx->xch, domid,
                 (new_target_memkb + size) / 4, NULL, NULL, NULL);
         if (r != 0) {


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 05:56:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 05:56:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095512.1450474 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ur98k-0005R7-F9; Wed, 27 Aug 2025 05:56:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095512.1450474; Wed, 27 Aug 2025 05:56: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 1ur98k-0005R0-C1; Wed, 27 Aug 2025 05:56:10 +0000
Received: by outflank-mailman (input) for mailman id 1095512;
 Wed, 27 Aug 2025 05:56:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Gy2E=3H=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ur98j-0005Qm-4S
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 05:56:09 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 82e1620f-830a-11f0-b898-0df219b8e170;
 Wed, 27 Aug 2025 07:56:01 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-afcb731caaaso951842666b.0
 for <xen-devel@lists.xenproject.org>; Tue, 26 Aug 2025 22:56: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
 a640c23a62f3a-afe79fba62dsm640757866b.100.2025.08.26.22.56.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Aug 2025 22:56: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>
X-Inumbo-ID: 82e1620f-830a-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756274161; x=1756878961; 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=r/sRUv6By61dZfKrnfYyLwS1JPfsrQ60N+G2J8rf4SY=;
        b=Rc46VaO39YeKFAuPCiRgqGsklUiqqvYP6+aLzWrgbY5A9VVttqnJGRQeJS9IpmxgxH
         /YPR5VxevfGSLT9qy9V43uSfr5olil9/qHlNVE53bT1Ykqc998dAteQ8k4jiMFPPmQ9A
         ye3j7yMn4RdRdDdZzGixFXAq0TaprUG6lMBX8yjGmjTPb5O5A3eGWPWaukrrUZb4uhJT
         njZlmOB0kbFXsm/UVgTsnFoCgQidW7VpHmwbLnuUsPQAKaa2GThcMqQmHm4u4gB4Z//d
         muwETsUmKjxqQHT7QB+jL6SzrUym63fE/6Klq02FNt3kvNKVKfc4CnqHtV7b1FSGhtk5
         Ay1Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756274161; x=1756878961;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=r/sRUv6By61dZfKrnfYyLwS1JPfsrQ60N+G2J8rf4SY=;
        b=fLKTEZm2e9d/rsbBxCQH3PFYzmnOeUPxxI1oQjM0aav+sRmwDv3RS1pmnibRfv5geI
         mFYZr6UJFhGtMFA+3YZ8CqF3CKElx/vorWIOizi0Ip280+4yD8CorRjiRwfPdaljQHSX
         /QxJyrWmsT9pijC4CquV7VTiVnqZIF/zw2OvuzCiam38rnqSYgz2tJz9JZfoHMs8Hrvm
         w1rFTwQ2XvpmTgPSYGnig/UsC1BVMdjv+GOO4d55Y91X02CRCNeObOIwwnxpsQhNZjkX
         wqhQAA4+a/tNpYr0ziA4cYf7sHVC16cokOyUFap+kTtTohQ0k1y4hIzewEopcpKSe2YR
         Lgug==
X-Gm-Message-State: AOJu0Yz3lJbJAQeZ4vJM4jSaguku6qWNEumCN+CPNxf26CZeHwzEpikS
	0/pxYr2ASfih4+dm0ipk5/FBBgwQ3PKWYmm1o5bXNGMNL4POcKNltVvz7Gs3OfftFydfv622b7K
	QQAM=
X-Gm-Gg: ASbGncvA/vcn0urxm0on8e25izyqAcbAmV/LqXdsl7K5POdVWKOyN6STY0HJ8ga3Psn
	JcSLFPoDsEYP94ZRFgps3cyD04Y7eC5/QHR5lnZn0I8orgG5NM9RQgUIbmn+xCtHwukEvLwjqTx
	+LmXwecr9KYX5hDgr47hb8l6UlIxSAngnNWet0kXaUgVrx8NzoMtIVhVaqXES9wbvk2NwFVJkWp
	b1KdOpwbXVo22ZoigLRYLDshBHPgKnjFdvreLOch1nuj50MwNNVwsTRwyI5u1LwS8rOydLqWqSm
	n1ZEyEHmVeGY+MFMUqQOVmgU7ARXFy2XsL0xXHx8Qgv3JXM2Ka8OkTx85k7SzEuBuQiCdTsLZdi
	gdFbCDEoKtAhL4zxpT8QyfyAbnikNxrWsDskJDYTv+6/tp76CoGpilyRGCOLddwug/e5E4n7M4D
	ZHw/MZq+8=
X-Google-Smtp-Source: AGHT+IFcNn2GSa1AuikFpIYnj2ZfgN8+gOzmfv3WoYnw1tVrFPeNTtmpTZZWsZ4teuBHE9kHwMqPvQ==
X-Received: by 2002:a17:907:7e92:b0:af9:3c4d:e978 with SMTP id a640c23a62f3a-afec348acb4mr98224166b.41.1756274161294;
        Tue, 26 Aug 2025 22:56:01 -0700 (PDT)
Message-ID: <719c456b-927d-41c3-b28d-135a895958dd@suse.com>
Date: Wed, 27 Aug 2025 07:56:00 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] libxl: respect unset video_memkb for Dom0
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

Without this, Dom0 will have have a curiously off-by-1 target_memkb
value displayed by "xl list -l".

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
In retrieve_domain_configuration_end(), isn't it the wrong way round to
set both ->b_info.target_memkb and ->b_info.max_memkb only after calling
libxl__get_targetmem_fudge(), when that uses the two fields? This way we
could as well use ->b_info->video_memkb directly there.

Of course this may point at a bigger problem, as other fields may
similarly never be set for Dom0.

--- a/tools/libs/light/libxl_internal.h
+++ b/tools/libs/light/libxl_internal.h
@@ -4685,7 +4685,10 @@ uint64_t libxl__get_targetmem_fudge(libx
                                 info->max_memkb > info->target_memkb)
                                 ? LIBXL_MAXMEM_CONSTANT : 0;
 
-    return info->video_memkb + mem_target_fudge;
+    if (info->video_memkb != LIBXL_MEMKB_DEFAULT)
+        mem_target_fudge += info->video_memkb;
+
+    return mem_target_fudge;
 }
 
 int libxl__get_memory_target(libxl__gc *gc, uint32_t domid,


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 05:57:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 05:57:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095522.1450484 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ur99i-0005xX-N9; Wed, 27 Aug 2025 05:57:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095522.1450484; Wed, 27 Aug 2025 05:57: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 1ur99i-0005xQ-KZ; Wed, 27 Aug 2025 05:57:10 +0000
Received: by outflank-mailman (input) for mailman id 1095522;
 Wed, 27 Aug 2025 05:57:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Gy2E=3H=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ur99h-0005xI-CX
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 05:57:09 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a9fe7d1b-830a-11f0-b898-0df219b8e170;
 Wed, 27 Aug 2025 07:57:07 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-afcb73394b4so910507666b.0
 for <xen-devel@lists.xenproject.org>; Tue, 26 Aug 2025 22:57:07 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afe9c908431sm354167666b.92.2025.08.26.22.57.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Aug 2025 22:57:06 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a9fe7d1b-830a-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756274227; x=1756879027; 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=uxSd+napYPGy30Ljg8q5ThlKlaXeb0SXlCDtdIj8V6g=;
        b=Mm2vR3iyrqrD9BQi+/6U5oPVplW4EQb7se6RXgOPeXMhpisg7qKqtSqK2uo185CkSU
         Gv9OULTgJXKSFQV/FZRbZmTSSeDvsUaVr/GtLdjUQP98oL/saaMBsqYWj4egFq/FSZMN
         WRWEcWdu7NoKwC39D0/Wza2GBPTGbUOrkUdjxDzQR8YTq4K2OxnZjA5WsMVp5csM2UhS
         OXonyxPniPlLGZb04aV2taCIU3OxQCZT3prEoZkwbWvo+ZV6lt/IPu0gDuS7YWIZNNOE
         8jVY/e21TJhNoEkQDhlWL5vN5dxOM5mdnfsP1fyDj7Ze7LR2E4MlzvXEjQlD2eAwyYki
         Uq3w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756274227; x=1756879027;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=uxSd+napYPGy30Ljg8q5ThlKlaXeb0SXlCDtdIj8V6g=;
        b=S34YiwLN8v9EWpYcT1wFw93yfBe3OWvgpGVPwmlFsflGeMt8LeLok+ExY30Nm7yrXm
         abOULlW6F0k9RVzwIMyk4Z51u/CQC/FPWC5Ry/PQ+T7FrMLKevCtyzPsmupJnOPpQl2X
         OtaHtiXwWGSNsoBdRm4j6Y3KuC9C4uFt/bs+kh7tcSfm2jisnAQc4F+HvajPdC8fZGTA
         9j1aORC4ea5rxwgUeqYRi2by77nHWHzjAfSESrNqwPy6s/OiDKlQXR4HEDjLv+7vkHaJ
         0ovkw3r+Os6eVIiBdmbLyRkWcub2cpx00+5FCOfalXvlDPEhAAE5HTRK6RzSaiQ6vGXC
         pF1Q==
X-Gm-Message-State: AOJu0Yw6BPJAkxluKoKBgTBWvH9TM6z3HRJC/QTV72NxnnKXxSLZ0qjF
	WV5RJ3/e6hWxOfKkHo367OjuI+ZlCRdVYUBgxZpEKzCdWkybvmphswcXmjvTk20QPT5eSR9AqEn
	6v+E=
X-Gm-Gg: ASbGncsPzxlTh6awXcCxTvOwC9C3p+xX7Kj9rzR6gwsFGU1fHRnx+SHLP+sGqOnJgst
	uxLGcFwKfPqBZIG7xkicPD4rxyRz+hOLfVChmvjOPjQMfQZJYWy6BFfn0vieD8eACDP8ed4vcOV
	alLRyOobBfpGUYZXrBvp7dEchFfQjcsqelmrecTkRgAAoJ9o0st5DVnYDx2cgbdICKqQuHnWYw3
	E5ARzjYIENE3+rqZHxoqMnGsBEcuss1nt4qc2Qf23Ky6thCZvX2QZR9gOX3H1pc+q3Cuo7rd78h
	hhsWIyZ8Mk5uhe+kkgMTsguehoWQHtwCfZ26N71UcH0rvS4N3Qm7y7ZmkIyfCjJQbJkANfctSee
	7Ah3BHg9MuVKS7NQgW6mXPMa1TLW07/B0N7UR9SkeYLfv4k5nuM/LYBgFOzcbk6KqDoWwMDel8R
	GJvPFlm48=
X-Google-Smtp-Source: AGHT+IHoNwMtqgvjo7yNognA1mtpNilFqYn6bUqxN9qRLJ+5PfC3IY4ToJwhFlTzuM/amvfRCURkKA==
X-Received: by 2002:a17:907:849:b0:afe:74f1:dbf2 with SMTP id a640c23a62f3a-afe74f1df73mr966017466b.30.1756274226926;
        Tue, 26 Aug 2025 22:57:06 -0700 (PDT)
Message-ID: <e567c234-473d-40c3-86dc-53317812baf7@suse.com>
Date: Wed, 27 Aug 2025 07:57:06 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] libxl: preserve errno in libxl__xcinfo2xlinfo()
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

Callers observing errors elsewhere may be confused by the ENOSYS that
the Flask operation would yield on a Flask-disabled hypervisor.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Of course I don't know whether clobbering errno is perhaps deemed "fine"
in libxl.

--- a/tools/libs/light/libxl_domain.c
+++ b/tools/libs/light/libxl_domain.c
@@ -277,6 +277,7 @@ void libxl__xcinfo2xlinfo(libxl_ctx *ctx
                           libxl_dominfo *xlinfo)
 {
     size_t size;
+    int saved_errno = errno;
 
     memcpy(&(xlinfo->uuid), xcinfo->handle, sizeof(xen_domain_handle_t));
     xlinfo->domid = xcinfo->domain;
@@ -284,6 +285,7 @@ void libxl__xcinfo2xlinfo(libxl_ctx *ctx
     if (libxl_flask_sid_to_context(ctx, xlinfo->ssidref,
                                    &xlinfo->ssid_label, &size) < 0)
         xlinfo->ssid_label = NULL;
+    errno = saved_errno;
 
     xlinfo->dying      = !!(xcinfo->flags&XEN_DOMINF_dying);
     xlinfo->shutdown   = !!(xcinfo->flags&XEN_DOMINF_shutdown);


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 06:02:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 06:02:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095533.1450494 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ur9F2-0007gr-9v; Wed, 27 Aug 2025 06:02:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095533.1450494; Wed, 27 Aug 2025 06:02:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ur9F2-0007gk-5u; Wed, 27 Aug 2025 06:02:40 +0000
Received: by outflank-mailman (input) for mailman id 1095533;
 Wed, 27 Aug 2025 06:02:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=83xn=3H=yandex.ru=vyacheslav.legoshin@srs-se1.protection.inumbo.net>)
 id 1ur9F0-0007ge-Nx
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 06:02:39 +0000
Received: from forward103b.mail.yandex.net (forward103b.mail.yandex.net
 [2a02:6b8:c02:900:1:45:d181:d103])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6e5370e2-830b-11f0-a32c-13f23c93f187;
 Wed, 27 Aug 2025 08:02:37 +0200 (CEST)
Received: from mail-nwsmtp-smtp-production-main-89.sas.yp-c.yandex.net
 (mail-nwsmtp-smtp-production-main-89.sas.yp-c.yandex.net
 [IPv6:2a02:6b8:c24:1aa8:0:640:56c3:0])
 by forward103b.mail.yandex.net (Yandex) with ESMTPS id 65AE0C012A;
 Wed, 27 Aug 2025 09:02:35 +0300 (MSK)
Received: by mail-nwsmtp-smtp-production-main-89.sas.yp-c.yandex.net
 (smtp/Yandex) with ESMTPSA id 72SplHDMM8c0-t9dNJ3i3; 
 Wed, 27 Aug 2025 09:02:34 +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>
X-Inumbo-ID: 6e5370e2-830b-11f0-a32c-13f23c93f187
X-Yandex-Fwd: 1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail;
	t=1756274554; bh=0Rlob4aSxa0xqrzYkKAjTuRxH36ZPzw+XMsNDdBabeM=;
	h=Message-ID:Date:Cc:Subject:To:From;
	b=X9HOMNUMHOAb6XEZ4bEXzdZBhz2eGpk50dM6cvaXJQho9IsLMB4hfQ2kh7Hx2MXi8
	 ckMDIrvG8lSCmA422xVqRo3qp0U0bXWdCsRAtEwfJ3McdaloSBC88c8LWaCaHGv1uc
	 BRp/L5B2T0gpgKGVcShRLtNWsI9G+doux1CuhiDg=
Authentication-Results: mail-nwsmtp-smtp-production-main-89.sas.yp-c.yandex.net; dkim=pass header.i=@yandex.ru
From: Vyacheslav Legoshin <vyacheslav.legoshin@yandex.ru>
To: xen-devel@lists.xenproject.org
Cc: Vyacheslav Legoshin <vyacheslav.legoshin@yandex.ru>,
	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: [XEN PATCH] x86/vhpet: Add option to always fire hpet timer on resume
Date: Wed, 27 Aug 2025 09:01:08 +0300
Message-ID: <faa5eee741a772eba95415ca26f0cdf304486fc3.1756272466.git.vyacheslav.legoshin@yandex.ru>
X-Mailer: git-send-email 2.42.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The following issue was observed on Windows 10 21H2 x64+: when the domain state
is saved while all cores are executing the 'halt' instruction, and the memory
save takes a relatively long time (tens of seconds), the HPET counter may
overflow as follows:
counter  = 11243f3e4a
comparator = 910cb70f

In such cases, the fix implemented in commit
b144cf45d50b603c2909fc32c6abf7359f86f1aa does not work (because the 'diff' is
not negative), resulting in the guest VM becoming unresponsive for
approximately 30 seconds.

This patch adds an option to always adjust the HPET timer to fire immediately
after restore.
---
 docs/misc/xen-command-line.pandoc |  9 +++++++++
 xen/arch/x86/hvm/hpet.c           | 21 ++++++++++++++++-----
 2 files changed, 25 insertions(+), 5 deletions(-)

diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
index a75b6c9301..b28610918f 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -1461,6 +1461,15 @@ HPET can be disabled by specifying `hpet=0`.
 
 Deprecated alternative of `hpet=broadcast`.
 
+### hpet_drift_fix (x86)
+> `= <boolean>`
+
+> Default: `false`
+
+Always set HPET timer to fire immediately after domain restore.
+This option can be used to fix unresponsive snapshots with modern x64 Windows
+systems (21H2+) which use non-periodic timers.
+
 ### hvm_debug (x86)
 > `= <integer>`
 
diff --git a/xen/arch/x86/hvm/hpet.c b/xen/arch/x86/hvm/hpet.c
index f0e5f877f4..5b9e38bd9b 100644
--- a/xen/arch/x86/hvm/hpet.c
+++ b/xen/arch/x86/hvm/hpet.c
@@ -11,6 +11,7 @@
 #include <asm/current.h>
 #include <asm/hpet.h>
 #include <asm/mc146818rtc.h>
+#include <xen/param.h>
 #include <xen/sched.h>
 #include <xen/event.h>
 #include <xen/trace.h>
@@ -222,6 +223,9 @@ static void cf_check hpet_timer_fired(struct vcpu *v, void *data)
  * 1/(2^10) second, namely, 0.9765625 milliseconds */
 #define  HPET_TINY_TIME_SPAN  ((h->stime_freq >> 10) / STIME_PER_HPET_TICK)
 
+bool hpet_drift_fix;
+boolean_param("hpet_drift_fix", hpet_drift_fix);
+
 static void hpet_set_timer(HPETState *h, unsigned int tn,
                            uint64_t guest_time)
 {
@@ -268,11 +272,18 @@ static void hpet_set_timer(HPETState *h, unsigned int tn,
      * are restoring after migrate, treat any wrap as past since the value
      * is unlikely to be 'small'.
      */
-    if ( (int64_t)diff < 0 )
-        diff = (timer_is_32bit(h, tn) &&
-                vhpet_domain(h)->creation_finished &&
-                (-diff > HPET_TINY_TIME_SPAN))
-            ? (uint32_t)diff : 0;
+    if (hpet_drift_fix && !vhpet_domain(h)->creation_finished)
+    {
+        diff = 0;
+    }
+    else
+    {
+        if ( (int64_t)diff < 0 )
+            diff = (timer_is_32bit(h, tn) &&
+                    vhpet_domain(h)->creation_finished &&
+                    (-diff > HPET_TINY_TIME_SPAN))
+                ? (uint32_t)diff : 0;
+    }
 
     destroy_periodic_time(&h->pt[tn]);
     if ( (tn <= 1) && (h->hpet.config & HPET_CFG_LEGACY) )
-- 
2.42.1



From xen-devel-bounces@lists.xenproject.org Wed Aug 27 06:35:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 06:35:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095545.1450504 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ur9kW-0003Sp-MN; Wed, 27 Aug 2025 06:35:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095545.1450504; Wed, 27 Aug 2025 06:35: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 1ur9kW-0003Sh-JR; Wed, 27 Aug 2025 06:35:12 +0000
Received: by outflank-mailman (input) for mailman id 1095545;
 Wed, 27 Aug 2025 06:35:11 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BCET=3H=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1ur9kV-0003Sb-EB
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 06:35:11 +0000
Received: from mail-lj1-x230.google.com (mail-lj1-x230.google.com
 [2a00:1450:4864:20::230])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fa1cb887-830f-11f0-b898-0df219b8e170;
 Wed, 27 Aug 2025 08:35:09 +0200 (CEST)
Received: by mail-lj1-x230.google.com with SMTP id
 38308e7fff4ca-33682342180so18744181fa.0
 for <xen-devel@lists.xenproject.org>; Tue, 26 Aug 2025 23:35:09 -0700 (PDT)
Received: from [192.168.0.110] ([91.123.151.69])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-3369283e62esm2887971fa.18.2025.08.26.23.35.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Aug 2025 23:35: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>
X-Inumbo-ID: fa1cb887-830f-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756276509; x=1756881309; 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=XInlv7EGZntIvOMZvIasoPVG70oWVMV41xM3NWKboe0=;
        b=WeM7aM4RArg2iwZdSNBAv0e/YeYIFHoGhDf08Xofhg4xBZPq8vQDwvzVooI/9Ci9vE
         OGyZoOI2iNAl7zZNQ9QlbPEAVvTCKNstJ/0g3toqKKDKTDEFCVZvfN0N6d5lrMRKQGqe
         Cy8XCoKdGiCPr8lMETViaMDZfZev4rVKSV4wauK0a41DD9gMWRWSIIoouuft52SoBAHd
         5+ybZ0lsNVuwr8MroFmeyOlrmbwxTVpVIXDkYcBvfKCTC9I2GMZu6q/HYbeXA+E9w4r3
         LOAD1WpGNpfCUZoIrTkJzNByu9bwr3XfXcmu/gb7HsIdYKG5IoH5K89o6cFBxQSxXA3l
         My7w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756276509; x=1756881309;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=XInlv7EGZntIvOMZvIasoPVG70oWVMV41xM3NWKboe0=;
        b=IpqSqKxolJ5R4VxfJ3Z0HaeI9cN3hzpUF4N+cmgxTf8lUBmc194Ma6Lg30FN3RQlB9
         OXM4pgWOQGEFKkCE8PoDXMqD6k/dSaVCWVStpYMXfghS/kgCPRZ9eGZAbs8Gh1RMAn4K
         fii/Ymt/kN1JDhtv1cwJPv3QYxHFFTvqTght348+5onGpYiII7H9E+BMsFWJgSRohPAT
         a+z40FtBbgWeZzor+a5ZH/FGLZL3ksTwcJgN1hZvzLiceSTrvVmPxkYModsyfsK4xqB+
         qoBzYzDCWmC6SYmj6RnQQaB51o3CLYp1wJT2leofz1ZFRaTZ8PniRzMBxqcPftGRNn9e
         NeJg==
X-Forwarded-Encrypted: i=1; AJvYcCXsNWcrKcpakhrGfryEUhHbjC0MrDuPHu/zU9EtDyat+EihPo4ghOOTvwK1Ob7wMTD1YSwHkiYablg=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw1Q3y8kzj4Ug/p0dQ0khDcTMHRpgE6EKuFwVC/eTSkAGjM9+u5
	5Fis3mkPlmQNfuH2DM6kbNB3qnXKn+zIGcOmtXpvBP16mNH7r0erwFvc
X-Gm-Gg: ASbGncthZJHiVLHvvDEG1PP1hGzLC9Ph7D8w4eVcI4PEAe/cbvIdOs5qqOqTGknn+59
	6a6hCgrK9IKvb/WU5tmAJm5FG36jVExQwcQJMlq/bs/lCTN/NThtDcSSfjZYkkX0S8/I3l+DfMH
	daPvFcby0QYxVInkny0Lib0JqtWojM+SDh3pYeQnAM63OLdCoDJ/Z1J9XZGfNV/uN4KMWJlewGe
	Q4k68r87OM296qZiw3oXW8/a4D2h0jvLpUl42DaOEEkx4QVtHtIcTw6vAMLdUfBEtjLHzocyMp5
	+5lOavN7lOAGh1X2O9Sdbe56AneX5SXDHxv/ERCUnHg7ileQ68a7k7W4+v6ppDvPWymarwAXDZ9
	C0RQzVXGneUcUPON9BbZVEFtTrABB4BcYd83C
X-Google-Smtp-Source: AGHT+IGzcPt4eXzvpOckpLYlZsfbMe4Rmv4Miuvxc6Leu1YK0k3tKylfYCeDucfd/SzQB42cxZ9hZQ==
X-Received: by 2002:a05:651c:b21:b0:336:82be:5c78 with SMTP id 38308e7fff4ca-33682be60d8mr18948801fa.26.1756276508416;
        Tue, 26 Aug 2025 23:35:08 -0700 (PDT)
Message-ID: <54db12d6-cee3-4e5a-8fc7-d7686dc52d9d@gmail.com>
Date: Wed, 27 Aug 2025 09:35:06 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 04/11] xen/arm/irq: add handling for IRQs in the eSPI
 range
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1756216942.git.leonid_komarianskyi@epam.com>
 <8b42416d779537d6a0ac4902cabc549253b9da9d.1756216943.git.leonid_komarianskyi@epam.com>
Content-Language: en-US
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
In-Reply-To: <8b42416d779537d6a0ac4902cabc549253b9da9d.1756216943.git.leonid_komarianskyi@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 26.08.25 17:05, Leonid Komarianskyi wrote:

Hello Leonid


> Currently, Xen does not support eSPI interrupts, leading
> to a data abort when such interrupts are defined in the DTS.
> 
> This patch introduces a separate array to initialize up to
> 1024 interrupt descriptors in the eSPI range and adds the
> necessary defines and helper function. These changes lay the
> groundwork for future implementation of full eSPI interrupt
> support. As this GICv3.1 feature is not required by all vendors,
> all changes are guarded by ifdefs, depending on the corresponding
> Kconfig option.
> 
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
> 
> ---
> Changes in V2:
> - use (ESPI_MAX_INTID + 1) instead of (ESPI_BASE_INTID + NR_IRQS)
> - remove unnecessary comment for nr_irqs initialization
> 
> Changes in V3:
> - introduced a new define NR_ESPI_IRQS to avoid confusion, like in the
>    case of using NR_IRQS for espi_desc array
> - implemented helper functions espi_to_desc and init_espi_data to make
>    it possible to add stubs with the same name, and as a result, reduce
>    the number of #ifdefs
> - change CONFIG_GICV3_ESPI default value to n
> ---
>   xen/arch/arm/Kconfig           |  9 ++++++
>   xen/arch/arm/include/asm/irq.h | 26 +++++++++++++++++
>   xen/arch/arm/irq.c             | 52 +++++++++++++++++++++++++++++++++-
>   3 files changed, 86 insertions(+), 1 deletion(-)
> 
> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
> index 17df147b25..5813e5b267 100644
> --- a/xen/arch/arm/Kconfig
> +++ b/xen/arch/arm/Kconfig
> @@ -135,6 +135,15 @@ config GICV3
>   	  Driver for the ARM Generic Interrupt Controller v3.
>   	  If unsure, use the default setting.
>   
> +config GICV3_ESPI
> +	bool "Extended SPI range support"
> +	depends on GICV3 && !NEW_VGIC
> +	default n

Please omit redundant line

> +	help
> +	  Allow Xen and domains to use interrupt numbers from the extended SPI
> +	  range, from 4096 to 5119. This feature is introduced in GICv3.1
> +	  architecture.
> +

[snip]




From xen-devel-bounces@lists.xenproject.org Wed Aug 27 06:44:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 06:44:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095560.1450514 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ur9t6-0005I9-HR; Wed, 27 Aug 2025 06:44:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095560.1450514; Wed, 27 Aug 2025 06: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 1ur9t6-0005I2-Ew; Wed, 27 Aug 2025 06:44:04 +0000
Received: by outflank-mailman (input) for mailman id 1095560;
 Wed, 27 Aug 2025 06:44:02 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Gy2E=3H=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ur9t4-0005Hw-Jd
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 06:44:02 +0000
Received: from mail-ed1-x534.google.com (mail-ed1-x534.google.com
 [2a00:1450:4864:20::534])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3610f611-8311-11f0-a32c-13f23c93f187;
 Wed, 27 Aug 2025 08:43:59 +0200 (CEST)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-61c24250b38so6359992a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 26 Aug 2025 23:43: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
 4fb4d7f45d1cf-61caeb5e786sm1208340a12.32.2025.08.26.23.43.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Aug 2025 23: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>
X-Inumbo-ID: 3610f611-8311-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756277039; x=1756881839; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Kva50/iuKuh3vScpyXnXEKsr/F93KQaLdAcN22zL2h0=;
        b=S4r8cHYuTVYbUnt2oG02N1yzFBseXtqrbtKWDohiQ0kW8p64M6Gvbb5judGt7Ug/vR
         ZZvzakh9O9lD0keA7rm+daf7qNudtuBtpKgVCVCRMwiCxI1+Cpw4gBziGLU1XjvWxTvN
         Ld8ghfW7ga9l0HSJ/ITqWbtG0baklGTjxVgH6kUxdiPbg1ywnGxZ4eOlAvvAZK4gC9vu
         GJghFS7hc+zHPa5MDHfz5zu4bkssv1srd2gpM2ZlYBGwqTcN+qzo0ynw40tEqvkf3OVX
         7ZvSQ+YTvNCO93STmlmyohpVzA3tKqWtOxDpt6I08kJ6yX3/mAOAd8lQysLFiCr8p2bL
         bD0w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756277039; x=1756881839;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Kva50/iuKuh3vScpyXnXEKsr/F93KQaLdAcN22zL2h0=;
        b=sIXTPEKN84Gsv3SuSKnnkrwldv6zYPuj4eLrg5DYw+8VyI1iMF+8lobV1TLiSd6n4B
         KO1MdzA2R6Dp+pJ0SgxMBPpssF0YeqtWR00BavvrUaBqEM5Lk5l7H/MhlfqYNgeR+hPU
         8jn0zxrcrSubUOodIGoqbG+TJ3n2RYCoxGM4+JJBuOMs+YF3HWF2kDCfSt2AoxK+i4se
         x678Og9s5GYzERPmzG4wMK9cHmd9r2pgoN7PAu1A4drDWkT930wNm8dEnjPYbPGqmkPY
         agHv9eo23JSr6ZFfv4yHtosx5xy45qHchw9HixWdNisLOx1e9CcIpCQyRNfzph6as+wd
         3D3g==
X-Forwarded-Encrypted: i=1; AJvYcCXaqyHMUEKvyhMhubqakVLEdJyqyImUr5iZwg+JMW88Uvj34nKjYLuFMALQYNzU4KkPiNDTlkBEdPU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxB51BMVJLEVWGdoCdNuPI6xPdHO7//TWiiiEviUcUo4pjatvKC
	h+aM9KP1F5DIuJqlQMXDdV/G/YGbFBKFvkHVNYNKFK2pneYMEYnmdMipR7P26ssbCQ==
X-Gm-Gg: ASbGncsMKhdvVBv/VVXQQ1bnjuQ4dr3rdMmGm4aXiRdOYWYhZoCAJb+A5aCaJ1imOUs
	NDavmK00kqWa0RkjXQCbtwDFxl85Z0ALlMn/iZcdZYcjsFyz8ZaCnXBAwITNkt/QczbQqGOVXGu
	TDrMgtPxtOKPVnF87/kOk2uUu1nE79SkJ37c8VoGDCOJAWZ97+c1pm30Wpz23YCUP4xtqNeiV8t
	kl6+x1DIH8fdtSy6QMSmHBt5vVmuh3L0Uu8iM+AfsWDImmk+EBM5q+mWyWyGSNDZO0j8nMP9hmb
	P63Fv49Mn9u2lO7sYjYUKmlP01Zhdk2eZ4I1Vl1adAwli96THUhAYgJueA2kOCyjVTergSJUcy0
	e4avsNwAXLQcdFCf2t2t1GEU6QBS+MooFzAYPwyU+6EGZmeFW0zFQn620ukctx4L1WoFlaSvh0l
	iUEZ0GJXaqzKK97JE2cQ==
X-Google-Smtp-Source: AGHT+IEn6NjPes3SnlemxBQoWfFsYjcgIUM2dbjHSO2XdLjnPyfYwfBs84QsFiE/qbSSYyTHEiAeYw==
X-Received: by 2002:a05:6402:278f:b0:61c:8c63:a942 with SMTP id 4fb4d7f45d1cf-61c8c63adafmr4990822a12.23.1756277039008;
        Tue, 26 Aug 2025 23:43:59 -0700 (PDT)
Message-ID: <ab709d2a-ea06-452a-a3f7-a93065b39835@suse.com>
Date: Wed, 27 Aug 2025 08:43:57 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] misra: add deviation of Rule 2.1 for BUG() macro
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Cc: Doug Goldstein <cardoe@cardoe.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>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>
References: <f7b4112aad84162c25f96a9d6db43a0c2ba85daa.1756046023.git.dmytro_prokopchuk1@epam.com>
 <60022d5c-1a9f-4a6d-8df2-bca57cefcf59@suse.com>
 <d9e9deaa-fa3e-4f4a-aa70-772af4bc1371@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: <d9e9deaa-fa3e-4f4a-aa70-772af4bc1371@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.08.2025 20:07, Dmytro Prokopchuk1 wrote:
> The situation with functions gicv3_do_LPI(), 
> gicv3_its_setup_collection() and config CONFIG_HAS_ITS is little bit 
> different.
> The compiler can do DCE in case when config CONFIG_HAS_ITS is "y", and 
> Misra R2.1 violation related to these functions also can be resolved.
> Actually, no changes in source code need for that.
> But Eclair detects these violations because config CONFIG_HAS_ITS is 
> "n", and source code is really compiled with inline stub functions (with 
> BUG() macro).
> This is because config CONFIG_HAS_ITS is "experimental/unsupported"
> 
>      config HAS_ITS
>              bool "GICv3 ITS MSI controller support (UNSUPPORTED)" if 
>   UNSUPPORTED
>          depends on GICV3 && !NEW_VGIC && !ARM_32
> 
> and to enable it need to set additional config: "CONFIG_UNSUPPORTED=y".
> 
> I tried to test it (added "CONFIG_UNSUPPORTED=y" into 
> automation/gitlab-ci/analyze.yaml file). You can see my CI pipeline:
> https://eclair-analysis-logs.xenproject.org/fs/var/local/eclair/xen-project.ecdf/xen-project/people/dimaprkp4k/xen/ECLAIR_normal/rule_2.1_gicv3_its_host_has_its_v2/ARM64/11144854092/PROJECT.ecd;/by_service.html#service&kind
> 
> Unfortunately, I observed +6 new violations with that additional config 
> "CONFIG_UNSUPPORTED=y".
> 
> I don't know how and why these EXTRA_XEN_CONFIG were selected in the 
> file 'automation/gitlab-ci/analyze.yaml'. And are we able to add new 
> configs here ?....

This has been a repeated source for discussion. The present selection,
afaict, is pretty arbitrary. However, in your considerations on how to
address an issue, imo you should not look at the present config. Whatever
the solution would better fit all possible settings.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 06:45:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 06:45:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095570.1450524 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ur9uS-0005nk-Qz; Wed, 27 Aug 2025 06:45:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095570.1450524; Wed, 27 Aug 2025 06:45: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 1ur9uS-0005nd-OI; Wed, 27 Aug 2025 06:45:28 +0000
Received: by outflank-mailman (input) for mailman id 1095570;
 Wed, 27 Aug 2025 06:45:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=euo8=3H=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1ur9uR-0005nV-1v
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 06:45:27 +0000
Received: from DB3PR0202CU003.outbound.protection.outlook.com
 (mail-northeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c200::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 693d7d0d-8311-11f0-a32c-13f23c93f187;
 Wed, 27 Aug 2025 08:45:25 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by AS8PR03MB7671.eurprd03.prod.outlook.com (2603:10a6:20b:401::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.15; Wed, 27 Aug
 2025 06:45:23 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9052.019; Wed, 27 Aug 2025
 06:45: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>
X-Inumbo-ID: 693d7d0d-8311-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Gp4qjLgU1pxZAObQ4lqJ4P4E5kV2+v7Q+fnFIS34gzp2YqipDQEl5Xcs423SXdPUQxADGhlW7R4UcD2Ih4z6bfIEpGJPtbD5QSrgJY6GyWRiWGq0cB95JGxZ9w6rBJZKBA1to7xXkWrTnX0b2/81DgWv75X0n1+6h/rSM/QShcQJFaHiFwVIORuf99lxbxw5N2SbLoFRNIn29FSlv0Fp8xk19hpwR+zq3O9/9IFSsMoNN05OHwTAjWqO1DitvhOxqeAQNOlOIRCGTOAXBib7OOPh0Hvmg7PTSjXwYi91JPYvwi52QS6YoU8zBn7+t/qqWh7aP5kSgS8A2QBaySyobw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=sRORh+1FOtzPfYjKN6/si1q0pOD2N+uDqaDZI6o+pSs=;
 b=fa9RBOKfmXfy1dFYVeVuxYJJPlQGmQvRDVK8tE4r9NZV9yUynXT+ooBU5e+rzKDGGBXnfSa4RGQtn+ubaWJAdgZ7eLjzFicwojC1irvkdRthOxj4hpqHuUbAuiO+Mix50LXJWO0oVUtax51WQynHaHxVuLtt6bUZb+I/RU85zr4zU91/0Cs9cmtXR0ezntYu63ZRd5y+ONOzJZ7wldk7qNejMOrhk4UnroS5t8CMxITXwLmEuWWwKR312fbJrNaBxVqFfDyKc0antNPKYjZzAo343X11YzWC7xM/SMNIINSrfgBWHGpQpCANAd2eDoSaIUmWcF5ALLvXMaVP31mFXw==
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=sRORh+1FOtzPfYjKN6/si1q0pOD2N+uDqaDZI6o+pSs=;
 b=h5xiF+CDHE3x6NaRaTbQ1WekYlaB0SjeeaWayfjvoDjAZ+/UGV24vm208rwApbbsI7N9b6uVeK7P5e0v4FOEID5I2caoAv/FwCBkodqIQqfnBM0AhyNeXcGtcFxVzv7A8XBlKYCa/CwvSIH7PeUsKItX/e0zwO+ZLslqmNFduNWW+EJYk7OWOX8m3xqwGdQ0zwATbt0vMEQsFDRjIYnO9Qe3EE9XLrIXUx98acdDUSxNv3XnzzKz/tbu+FuZBClPnt5WzHQUa211CtrE9hNL3HG23ENJzdz3YOsd0j1tca+TwhkMcvzGsIJV7uC1rjRHnx02zuo4WS8xW8rlPmDiYA==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Stefano Stabellini <sstabellini@kernel.org>, Nicola Vetrini
	<nicola.vetrini@bugseng.com>, Jan Beulich <jbeulich@suse.com>
CC: Doug Goldstein <cardoe@cardoe.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?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] misra: add deviation of Rule 2.1 for BUG() macro
Thread-Topic: [PATCH] misra: add deviation of Rule 2.1 for BUG() macro
Thread-Index: AQHcFQc77bBOPokbA0m9oV6J6fEgkLRzJgAAgAIYbQCAABMZAIAATP2AgABzv4A=
Date: Wed, 27 Aug 2025 06:45:23 +0000
Message-ID: <fd663009-fdaa-4208-910a-1ffda39df051@epam.com>
References:
 <f7b4112aad84162c25f96a9d6db43a0c2ba85daa.1756046023.git.dmytro_prokopchuk1@epam.com>
 <60022d5c-1a9f-4a6d-8df2-bca57cefcf59@suse.com>
 <d9e9deaa-fa3e-4f4a-aa70-772af4bc1371@epam.com>
 <97fe4a398af94ee08a15a586ac4a6b4e@bugseng.com>
 <alpine.DEB.2.22.394.2508261648590.3391208@ubuntu-linux-20-04-desktop>
In-Reply-To:
 <alpine.DEB.2.22.394.2508261648590.3391208@ubuntu-linux-20-04-desktop>
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: GV2PR03MB9572:EE_|AS8PR03MB7671:EE_
x-ms-office365-filtering-correlation-id: b53fbdc8-3b4c-4032-f1c0-08dde5354c32
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|376014|7416014|42112799006|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?aHZEdUcxV3ZkcGZpSDdBY2dIekY0RTRkUVdhRUxZZm5pcVRvdkxHTmJKWHVo?=
 =?utf-8?B?enRmWnRzVGhtaHZSSXpTaHM1RStsVi9mZnl1b2s5MGgvWk5aREZaMUFJWjZV?=
 =?utf-8?B?T3BoNG5rK3BFUXowc3BxNzdoUTk4TXlNVUJEZzlQM3MzUnJXb09SZ0tkZk1a?=
 =?utf-8?B?ekR0aTV3Ykl5ZlFGNGNtV1hPTXlaa2VBbHdjRm9vU25RRWJGQ2dVT1FNL090?=
 =?utf-8?B?N2JlVGpGZEdienBzTUIrNGhKSlN1WmZJK3YxeXFCSklpUzlBM0pMTkNhR1JC?=
 =?utf-8?B?WHBrYVdqUTEzN0lkc2tjdklldnhwcU5helg0TDdtZlNkbFhZaUVsa2ZGaGoz?=
 =?utf-8?B?VStOOFpXb0k5ZFg1NGVFamIzNUR4Um5jaUZFNFpsbWhaYU9wSFFua0JmcVFp?=
 =?utf-8?B?MUJSRkxaZHFIek1JMnNxdGphRm9VSXNZWnFyRlBrYjlDejBKZnpKdHlRYVJR?=
 =?utf-8?B?SHNXY2JnYXZXTzhLbTA3Mnk0dzQvaUVCOThvWlh2UFBEWXJUdlpVM0hHbXdG?=
 =?utf-8?B?bGJ1aEVJbEZaci95SlEwdFUvdTVGQnEyN3dqOEtZSTY5WC9yZ0F5RDFIb1Ja?=
 =?utf-8?B?QmYwUUoyMzRZTkp2Y3M1NXZOMnhFZEFrQ2ovMklEWG8vU0cybjRiOUxHaHNz?=
 =?utf-8?B?d1FNTmxqZWFxa1lMYWdsVkZnb1VWMUlDODlWZTBaWGRoVWZwa1djZnIyd2RJ?=
 =?utf-8?B?MFR4Z2dMb3czeWdieGYxVlp2eVlwRkd6SGcvN2RGZFhSSncrN3dTWHI0cHd6?=
 =?utf-8?B?TE5CVlRCWmRsN0FlYk9hNkJuaTh0WWdhNTNKNHltazhEQ2pzcS9URmMvN2Rx?=
 =?utf-8?B?cmNaUTNKOTBMVjVPMEpwWnJlTHdNSG9MNzRNaTZkdEZEeGRBUkRxd2VKNlhq?=
 =?utf-8?B?L25UUlVUVG5zNUl0WndzS3ZKdTI3UjIzWGlDYVc1a2hibytUdnVkWVdySW1L?=
 =?utf-8?B?SGhCVWhRb01ad0xMWmk5Y0hBTEpWVk1SQ2JNMEh3YWoxWGlJVkI4R29URDc2?=
 =?utf-8?B?aGkxNWkremZnOHpVaTFnb0hranYyeUttZGtQdjErMFpCMkNSaVJXbGdHWWpr?=
 =?utf-8?B?VXZFME53L0t0RjJJNEtCZThoNEhGVEh0cHRiM2krUisvc04xd1FRWEtrakM3?=
 =?utf-8?B?RWRMcDY5SHoxVS9hZTJuNXhRdzJ0MW9QdVBSZ0VpMFV2b2hyMXJIbXh2cnly?=
 =?utf-8?B?MEIwRldQNnc4Y000ajJNbGtNWWw2VzREUmRNTDljNWR6d1BMTHNJdGpNTEs2?=
 =?utf-8?B?c3pLdmY2VHEwZC9INjFieFJpK2k1MXpNSjVFK2NXWmFJbWhsMWp4QU9oaVQ4?=
 =?utf-8?B?SVVjeCszQS9jdDRndE16ZVc1RkkreXBZTWV1NDg2Z2tua1NYOUNkWldOWEE5?=
 =?utf-8?B?cFhSQ3NrR0FqWUhYMlJwREE5VGJTeDI5REtsQm1MWVZ1L0kxNVZrcWEvKytt?=
 =?utf-8?B?N3pESnZJMlMvVkZ0cGMvdXYyREZGc3RQSmxHa0lzR0hUeit1K2oxSVlabkgw?=
 =?utf-8?B?UUlVdU9GMHFqMDdSeUljTzlHTTZsYmF3akEzUzlTYjhPSzVISlNwdFVMQm9r?=
 =?utf-8?B?eURIT0hJazB6ellIczlZRm5DT1hEM2dRUjRZcy9vRE5heHFkQkZOL05oSDFj?=
 =?utf-8?B?Yzc2ZVhXbXV5cHlvMGhNRHBlSkNPYkNMMDY0RGh6dEg0eDhURWNYaURsQWFo?=
 =?utf-8?B?QVgydG9LTDhGSWsrUEh6Vkk0eGZMUWN1Q3ptYXFuSEo4cFBwNXp3VU52QnJj?=
 =?utf-8?B?OWtmaWJoRTJhNldQVGhXd2ZUcDYyYVpQMllqZEhubGNXVnhFSFVIZ1VvcTBh?=
 =?utf-8?B?RGFnUWpMTmtlZEsrM3BwdExrd0xqTDFVRzVBVXdaYWFmRlFIUWpYb1JpeVg3?=
 =?utf-8?B?S0Z3VmVIZmRvM3hCd0NXODNhTUEweFVEcVpuV0lvVkY4NEVDNHA5OXRHR21o?=
 =?utf-8?Q?EkHE/Q/iEDw=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(42112799006)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?Uzl5UTlkT0lQTU03SmxBZGhOMXYwSDc1Vk9ldlVONitOY0dzOWtMekhRZG95?=
 =?utf-8?B?blFHZVJQN3Y4RGc2WlNyQjR0VXhINnZ3Y3pna2lha3JZc1FhQTQxblg5cEJ0?=
 =?utf-8?B?RDlFV2tyRHFzKzNjRndQSm5mempuU3dpMUd5Q2lMQjF6QTljT25rek1yS3Vv?=
 =?utf-8?B?ZlhwWTYxR0VBOVlmSFdoK09kdVZ0eS81YThHWjdBcXNrbE5WUG15ekZNay9V?=
 =?utf-8?B?TXpqcm5zcitBTzZmemZzTkdwMm56RzFSZTI4OGQ3ZExNTjBYNm9tQzVrTGpx?=
 =?utf-8?B?SFE2NnEvZXQ4REJ4WGRIbVV1VllvUTlsZ0pyZGRMcXpCZjRneGI5OHFnUjBr?=
 =?utf-8?B?UFdKWFRxWVhjMjVmSHp0YUVTV2JIMzBhTEZiemorQlBnazhjM2ZSRUxkZGkr?=
 =?utf-8?B?VkhMRGpxR2FuU1FaTmJkR3BzSlUxRVVPekhYSVVjWE83Mmc2Z01KY2lWSTlD?=
 =?utf-8?B?ajIzQUpMR3NxT1hvNjk0dk41UllPUklLUWZlYkpJQmxQV21ML2x3R1NlKy9D?=
 =?utf-8?B?b3BTVUhROTZhUGlMNjFWT1NTMkJoTXdQUkpFc0xDWFFFZnBQd2gvL0Q1ZGZY?=
 =?utf-8?B?OHpMM0xMV29vSUtNOHkvV0ZUUDJ0bU9QZzI2VEV3c3R2elA2NWlxZ0lSOFBl?=
 =?utf-8?B?WmxqYWZIaEYxRnlTcHUvdFRDMVpLNGR3cmorQnJHRldrMStIdEE5UmZIYjB1?=
 =?utf-8?B?aGZ0QnFSZnZ3Y3AzWVJpY2dxUFJBMmVtU3JZdDFDdGdQUWlCV2ZHN3FmOHJ4?=
 =?utf-8?B?MHY2SHllbkppN3FFUkhhWnJiUS94WkdCdnk0QmNhRUlwK2VnaTJ5QUZFOGw0?=
 =?utf-8?B?U1FEZUJjN3ZveXI0VkZqQTZEWFU4STlYNGthU1o3N2JVYWlFc3htNWorQ1R1?=
 =?utf-8?B?YlNsaWNMZHBPRVIvenRycVlJc2E4V1N3eS9CL1hIU3dMNzBpWUltaUx2NGtU?=
 =?utf-8?B?SmZOMjNhYlZFV3I5OWxlRXhTL0pKUlNsUjl1MUxscUQyV3ViUXpnUWQ3emdp?=
 =?utf-8?B?dFUzTGxQN1hKWG1Ba2dWVWVGYmxKQ3JJNW41OU1IUC80aFd5THZiM2RWSE93?=
 =?utf-8?B?ZG5wMCtQeExEODZUQzNTM2VsaDROTFgwb1JLNUt3ODJVbUowODl1RENqdHNF?=
 =?utf-8?B?dmVOUkhBSnlHVzBkbGtWYzZDOVNNdys4MmxGRTVQalh0cG1xeThPZXF4MU9Z?=
 =?utf-8?B?eks3L0FoNXVJRlpRdmpZc25KWlhKSjVxOUMyVE01THdzMnRYeVhwVXdYa3Zr?=
 =?utf-8?B?cDliUU9HSDFwOW1uTXgxMW8xVm5qUTBtS0VVSDFvRTUxTVZwMWt3UTBWd1BP?=
 =?utf-8?B?VEpHSTlsUi9UbCtMNy90OU1JSHB3RG51MkUrN1BaSWJrNndBZmtrL3ZRaE45?=
 =?utf-8?B?UDRXUzlGR0dQckRseTNMMk5yRWZIZUxrVUczSEs2TzVLUGVlbEZtRDdDdkht?=
 =?utf-8?B?aS9GaTdWM3BrN3ZZS1BBWHpTdWJ0MldQcFV0MWVibEQ0b2pnWTA4aTJ2ZXY3?=
 =?utf-8?B?TjVPNHYzc0R1R0dkdEVsMkZ3dERXdXcwazgxcGIvYk5RZWtFR240TVZoWjVj?=
 =?utf-8?B?a05oTWkwZlBTQnFCdk9YYlZHTDQ2NkROWmZxWDB6VDZkeU1lT0MwVkJYRFUw?=
 =?utf-8?B?eTVQUEYrVzZibGNyUHpyQitLY2tSQmFQTXZYbSswU2Z1RGdYWGhUdW9Bdll2?=
 =?utf-8?B?VldCajlQamFxNXc3eTZoMUVFbkpsWkhSNVgxVDBjQW9SSllETThPSUlPMTZ6?=
 =?utf-8?B?WVFGRHZhQU8rTkJVakd6OXFZam1DVHJsYk92U08zRU5LZEVWckZjZWlONmpO?=
 =?utf-8?B?MGx2L3RCK0tldTErcFN6UVd1aU1QenZMbHQ5MWpVQ0p6aSt0SHZjSDNVNUdv?=
 =?utf-8?B?TTduVlhiNmord1ZPZmVYa0JsSTVHcksyRWUvb0IxMnhPNFFBWnlIRTZ5ZTgy?=
 =?utf-8?B?dlZjWGgrWkg0Snd3a2hFMXZuWDF5SmY5dVEycnBwSC9YUEI4b3JaVWdHOHJj?=
 =?utf-8?B?bERpZnVNZDAyS1FLZVRzZ25pRjJrUWlJOS9YZzBzWkpQaFVqTEoyVW9oNk12?=
 =?utf-8?B?d3JhMWcwRS9SeUM1UlhzMytEbWF1ZGlnT2ZucitmRWRiOUVhV3hMb1ZoSjl3?=
 =?utf-8?B?bHBFdzV2SDhKek84OGpnYU9CVHJaei9zc0F4U0phaWtQU0ovVDZpYkhJZUF5?=
 =?utf-8?B?OVE9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <AAC9BBD13395664D9AA5543DF1858665@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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b53fbdc8-3b4c-4032-f1c0-08dde5354c32
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Aug 2025 06:45:23.0775
 (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: okMGnnygvE1CtHxkPWiqTwTsD54rTN44Cd2xSAHhREuD9V/gVcZVrqOn2Oum65Pms8YaMsX3bp/ahBSG+x+32AP5Jh8FziUNL4Cqfau7NyA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7671

DQoNCk9uIDgvMjcvMjUgMDI6NTEsIFN0ZWZhbm8gU3RhYmVsbGluaSB3cm90ZToNCj4gT24gVHVl
LCAyNiBBdWcgMjAyNSwgTmljb2xhIFZldHJpbmkgd3JvdGU6DQo+PiBPbiAyMDI1LTA4LTI2IDIw
OjA3LCBEbXl0cm8gUHJva29wY2h1azEgd3JvdGU6DQo+Pj4gT24gOC8yNS8yNSAxMzowNywgSmFu
IEJldWxpY2ggd3JvdGU6DQo+Pj4+IE9uIDI0LjA4LjIwMjUgMTY6NTYsIERteXRybyBQcm9rb3Bj
aHVrMSB3cm90ZToNCj4+Pj4+IC0tLSBhL2RvY3MvbWlzcmEvZGV2aWF0aW9ucy5yc3QNCj4+Pj4+
ICsrKyBiL2RvY3MvbWlzcmEvZGV2aWF0aW9ucy5yc3QNCj4+Pj4+IEBAIC05Nyw2ICs5NywxOSBA
QCBEZXZpYXRpb25zIHJlbGF0ZWQgdG8gTUlTUkEgQzoyMDEyIFJ1bGVzOg0KPj4+Pj4gICAgICAg
ICAgIFhlbiBleHBlY3RzIGRldmVsb3BlcnMgdG8gZW5zdXJlIGNvZGUgcmVtYWlucyBzYWZlIGFu
ZCByZWxpYWJsZQ0KPj4+Pj4gaW4gYnVpbGRzLA0KPj4+Pj4gICAgICAgICAgIGV2ZW4gd2hlbiBk
ZWJ1Zy1vbmx5IGFzc2VydGlvbnMgbGlrZSBgQVNTRVJUX1VOUkVBQ0hBQkxFKCkgYXJlDQo+Pj4+
PiByZW1vdmVkLg0KPj4+Pj4NCj4+Pj4+ICsgICAqIC0gUjIuMQ0KPj4+Pj4gKyAgICAgLSBUaGUg
J0JVRygpJyBtYWNybyBpcyBpbnRlbnRpb25hbGx5IHVzZWQgaW4gdGhlICdwcmVwYXJlX2FjcGko
KScNCj4+Pj4+IGZ1bmN0aW9uDQo+Pj4+PiArICAgICAgIGluIHNwZWNpZmljIGJ1aWxkIGNvbmZp
Z3VyYXRpb24gKHdoZW4gdGhlIGNvbmZpZyBDT05GSUdfQUNQSSBpcw0KPj4+Pj4gbm90DQo+Pj4+
PiArICAgICAgIGRlZmluZWQpIHRvIHRyaWdnZXIgYW4gZXJyb3IgaWYgQUNQSS1yZWxhdGVkIGZl
YXR1cmVzIGFyZSB1c2VkDQo+Pj4+PiBpbmNvcnJlY3RseS4NCj4+Pj4+ICsgICAgIC0gVGFnZ2Vk
IGFzIGBkZWxpYmVyYXRlYCBmb3IgRUNMQUlSLg0KPj4+Pg0KPj4+PiBXaXRoDQo+Pj4+DQo+Pj4+
ICNkZWZpbmUgYWNwaV9kaXNhYmxlZCB0cnVlDQo+Pj4+DQo+Pj4+IGluIHhlbi9hY3BpLmggSSBk
b24ndCBzZWUgd2h5IHdlIGV2ZW4gaGF2ZSB0aGF0IGlubGluZSBzdHViLiBXaGVuIGl0J3MNCj4+
Pj4gZHJvcHBlZA0KPj4+PiBhbmQgdGhlIGRlY2xhcmF0aW9uIGxlZnQgaW4gcGxhY2Ugd2l0aG91
dCAjaWZkZWYgQ09ORklHX0FDUEkgYXJvdW5kIGl0LA0KPj4+PiB0aGUNCj4+Pj4gY29tcGlsZXIg
d2lsbCBEQ0UgdGhlIGNvZGUgKG11Y2ggbGlrZSB3ZSBhcnJhbmdlIGZvciBpbiBtYW55IG90aGVy
DQo+Pj4+IHBsYWNlcykuIE5vDQo+Pj4+IGRldmlhdGlvbiBuZWVkZWQgdGhlbi4NCj4+Pj4NCj4+
Pj4gSWYgc3VjaCBhIGRldmlhdGlvbiB3YXMgdG8gYmUgYWRkZWQsIGl0IHdvdWxkIG5lZWQgZGlz
YW1iaWd1YXRpbmcuIEENCj4+Pj4gZnVuY3Rpb24NCj4+Pj4gb2YgdGhlIGdpdmVuIG5hbWUgY291
bGQgYXBwZWFyIGluIHg4NiBhcyB3ZWxsLiBUaGF0IHdvdWxkbid0IGJlIGNvdmVyZWQgYnkNCj4+
Pj4gdGhlDQo+Pj4+IEVjbGFpciBjb25maWcgdGhlbiwgYnV0IGl0IHdvdWxkIGJlIGNvdmVyZWQg
YnkgdGhlIHRleHQgaGVyZS4NCj4+Pj4NCj4+Pj4+ICsgICAqIC0gUjIuMQ0KPj4+Pj4gKyAgICAg
LSBUaGUgJ0JVRygpJyBtYWNybyBpcyBpbnRlbnRpb25hbGx5IHVzZWQgaW4gJ2dpY3YzX2RvX0xQ
SScoKSBhbmQNCj4+Pj4+ICsgICAgICAgJ2dpY3YzX2l0c19zZXR1cF9jb2xsZWN0aW9uKCknIGZ1
bmN0aW9ucyBpbiBzcGVjaWZpYyBidWlsZA0KPj4+Pj4gY29uZmlndXJhdGlvbg0KPj4+Pj4gKyAg
ICAgICAod2hlbiB0aGUgY29uZmlnIENPTkZJR19IQVNfSVRTIGlzIG5vdCBkZWZpbmVkKSB0byBj
YXRjaCBhbmQNCj4+Pj4+IHByZXZlbnQgYW55DQo+Pj4+PiArICAgICAgIHVuaW50ZW5kZWQgZXhl
Y3V0aW9uIG9mIGNvZGUgdGhhdCBzaG91bGQgb25seSBydW4gd2hlbiBJVFMgaXMNCj4+Pj4+IGF2
YWlsYWJsZS4NCj4+Pj4+ICsgICAgIC0gVGFnZ2VkIGFzIGBkZWxpYmVyYXRlYCBmb3IgRUNMQUlS
Lg0KPj4+Pg0KPj4+PiBJIGRpZG4ndCBsb29rIGF0IHRoaXMsIGJ1dCBJIHdvdWxkIHZlcnkgbXVj
aCBob3BlIHRoYXQgc29tZXRoaW5nIHNpbWlsYXINCj4+Pj4gY291bGQNCj4+Pj4gYmUgZG9uZSB0
aGVyZSBhcyB3ZWxsLg0KPj4+Pg0KPj4+PiBKYW4NCj4+Pg0KPj4+IEFmdGVyIHNtYWxsIGNoYW5n
ZXMgcmVsYXRlZCB0byBwcmVwYXJlX2FjcGkoKSBmdW5jdGlvbiwgTWlzcmEgUjIuMQ0KPj4+IHZp
b2xhdGlvbiBoYXMgZ29uZS4gVGhlIGNvbXBpbGVyIHJlYWxseSBkb2VzIERDRToNCj4+Pg0KPj4+
ICAgICAgIGlmICggYWNwaV9kaXNhYmxlZCA8PDwgdGhpcyBpcyBUUlVFICkNCj4+PiAgICAgICB7
DQo+Pj4gICAgICAgICAgIHJjID0gcHJlcGFyZV9kdGJfaHdkb20oZCwga2luZm8pOw0KPj4+ICAg
ICAgICAgICBpZiAoIHJjIDwgMCApDQo+Pj4gICAgICAgICAgICAgICByZXR1cm4gcmM7DQo+Pj4g
I2lmZGVmIENPTkZJR19IQVNfUENJDQo+Pj4gICAgICAgICAgIHJjID0gcGNpX2hvc3RfYnJpZGdl
X21hcHBpbmdzKGQpOw0KPj4+ICNlbmRpZg0KPj4+ICAgICAgIH0NCj4+PiAgICAgICBlbHNlDQo+
Pj4gICAgICAgICAgIHJjID0gcHJlcGFyZV9hY3BpKGQsIGtpbmZvKTsgPDw8IERDRQ0KPj4+DQo+
Pj4gSSB3aWxsIHB1Ymxpc2ggaXQgYXMgc2VwYXJhdGUgcGF0Y2guDQo+Pj4gVGhhbmtzIHRvIEph
biwgSSByZWFsbHkgYXBwcmVjaWF0ZSBoaXMgaGVscC4NCj4+Pg0KPj4+DQo+Pj4gVGhlIHNpdHVh
dGlvbiB3aXRoIGZ1bmN0aW9ucyBnaWN2M19kb19MUEkoKSwNCj4+PiBnaWN2M19pdHNfc2V0dXBf
Y29sbGVjdGlvbigpIGFuZCBjb25maWcgQ09ORklHX0hBU19JVFMgaXMgbGl0dGxlIGJpdA0KPj4+
IGRpZmZlcmVudC4NCj4+PiBUaGUgY29tcGlsZXIgY2FuIGRvIERDRSBpbiBjYXNlIHdoZW4gY29u
ZmlnIENPTkZJR19IQVNfSVRTIGlzICJ5IiwgYW5kDQo+Pj4gTWlzcmEgUjIuMSB2aW9sYXRpb24g
cmVsYXRlZCB0byB0aGVzZSBmdW5jdGlvbnMgYWxzbyBjYW4gYmUgcmVzb2x2ZWQuDQo+Pj4gQWN0
dWFsbHksIG5vIGNoYW5nZXMgaW4gc291cmNlIGNvZGUgbmVlZCBmb3IgdGhhdC4NCj4+PiBCdXQg
RWNsYWlyIGRldGVjdHMgdGhlc2UgdmlvbGF0aW9ucyBiZWNhdXNlIGNvbmZpZyBDT05GSUdfSEFT
X0lUUyBpcw0KPj4+ICJuIiwgYW5kIHNvdXJjZSBjb2RlIGlzIHJlYWxseSBjb21waWxlZCB3aXRo
IGlubGluZSBzdHViIGZ1bmN0aW9ucyAod2l0aA0KPj4+IEJVRygpIG1hY3JvKS4NCj4+PiBUaGlz
IGlzIGJlY2F1c2UgY29uZmlnIENPTkZJR19IQVNfSVRTIGlzICJleHBlcmltZW50YWwvdW5zdXBw
b3J0ZWQiDQo+Pj4NCj4+PiAgICAgICBjb25maWcgSEFTX0lUUw0KPj4+ICAgICAgICAgICAgICAg
Ym9vbCAiR0lDdjMgSVRTIE1TSSBjb250cm9sbGVyIHN1cHBvcnQgKFVOU1VQUE9SVEVEKSIgaWYN
Cj4+PiAgICBVTlNVUFBPUlRFRA0KPj4+ICAgICAgICAgICBkZXBlbmRzIG9uIEdJQ1YzICYmICFO
RVdfVkdJQyAmJiAhQVJNXzMyDQo+Pj4NCj4+PiBhbmQgdG8gZW5hYmxlIGl0IG5lZWQgdG8gc2V0
IGFkZGl0aW9uYWwgY29uZmlnOiAiQ09ORklHX1VOU1VQUE9SVEVEPXkiLg0KPj4+DQo+Pj4gSSB0
cmllZCB0byB0ZXN0IGl0IChhZGRlZCAiQ09ORklHX1VOU1VQUE9SVEVEPXkiIGludG8NCj4+PiBh
dXRvbWF0aW9uL2dpdGxhYi1jaS9hbmFseXplLnlhbWwgZmlsZSkuIFlvdSBjYW4gc2VlIG15IENJ
IHBpcGVsaW5lOg0KPj4+IGh0dHBzOi8vZWNsYWlyLWFuYWx5c2lzLWxvZ3MueGVucHJvamVjdC5v
cmcvZnMvdmFyL2xvY2FsL2VjbGFpci94ZW4tcHJvamVjdC5lY2RmL3hlbi1wcm9qZWN0L3Blb3Bs
ZS9kaW1hcHJrcDRrL3hlbi9FQ0xBSVJfbm9ybWFsL3J1bGVfMi4xX2dpY3YzX2l0c19ob3N0X2hh
c19pdHNfdjIvQVJNNjQvMTExNDQ4NTQwOTIvUFJPSkVDVC5lY2Q7L2J5X3NlcnZpY2UuaHRtbCNz
ZXJ2aWNlJmtpbmQNCj4+Pg0KPj4+IFVuZm9ydHVuYXRlbHksIEkgb2JzZXJ2ZWQgKzYgbmV3IHZp
b2xhdGlvbnMgd2l0aCB0aGF0IGFkZGl0aW9uYWwgY29uZmlnDQo+Pj4gIkNPTkZJR19VTlNVUFBP
UlRFRD15Ii4NCj4+Pg0KPj4+IEkgZG9uJ3Qga25vdyBob3cgYW5kIHdoeSB0aGVzZSBFWFRSQV9Y
RU5fQ09ORklHIHdlcmUgc2VsZWN0ZWQgaW4gdGhlDQo+Pj4gZmlsZSAnYXV0b21hdGlvbi9naXRs
YWItY2kvYW5hbHl6ZS55YW1sJy4gQW5kIGFyZSB3ZSBhYmxlIHRvIGFkZCBuZXcNCj4+PiBjb25m
aWdzIGhlcmUgPy4uLi4NCj4+Pg0KPj4NCj4+IFlvdSdsbCBoYXZlIHRvIGFzayBTdGVmYW5vIGFi
b3V0IHRoYXQsIGJ1dCBJIGRvdWJ0IGF0IHRoaXMgc3RhZ2UuIFRob3NlIHNldCBvZg0KPj4gY29u
ZmlncyBmb3IgQXJtIGFuZCBYODYgaGFzIGJlZW4gc2VsZWN0ZWQgfjIgeWVhcnMgYWdvLg0KPg0K
PiBXZSBoYXZlIG1pZ3JhdGVkIHRvIGEgbmV3IGZhc3RlciBFQ0xBSVIgcnVubmVyLg0KPg0KPiBJ
IGRvIG5vdCB0aGluayB3ZSBzaG91bGQgY2hhbmdlIHRoZSBleGlzdGluZyBjb25maWd1cmF0aW9u
LiBJZiBhbnl0aGluZywNCj4gSSB3b3VsZCByZW1vdmUgb3B0aW9ucyBmcm9tIGl0IHJhdGhlciB0
aGFuIGFkZCBtb3JlLg0KPg0KPiBIb3dldmVyLCB3ZSBjYW4gYWRkIGFkZGl0aW9uYWwgY29uZmln
dXJhdGlvbnMgYnkgY3JlYXRpbmcgbW9yZSBFQ0xBSVINCj4gam9icywgYW5kIHRoYW5rcyB0byB0
aGUgbmV3IHJ1bm5lciB3ZSBzaG91bGQgYmUgYWJsZSB0byBrZWVwIHVwLg0KDQpJIGp1c3QgcmVh
bGl6ZWQsIHRoYXQgdGhlIGNvbXBpbGVyIHNob3VsZCBkbyBEQ0UgZm9yDQpnaWN2M19pdHNfc2V0
dXBfY29sbGVjdGlvbigpIGluIGNhc2Ugb2YgY29uZmlnIENPTkZJR19IQVNfSVRTIGlzICJuIi4N
Cg0KICAgICBpZiAoIGdpY3YzX2l0c19ob3N0X2hhc19pdHMoKSA8PDwgdGhpcyBpcyBGQUxTRSAp
DQogICAgIHsNCiAgICAgICAgIGlmICggIWdpY3YzX2VuYWJsZV9scGlzKCkgKQ0KICAgICAgICAg
ICAgIHJldHVybiAtRUJVU1k7DQogICAgICAgICByZXQgPSBnaWN2M19pdHNfc2V0dXBfY29sbGVj
dGlvbihzbXBfcHJvY2Vzc29yX2lkKCkpOw0KICAgICAgICAgaWYgKCByZXQgKQ0KICAgICAgICAg
ICAgIHJldHVybiByZXQ7DQogICAgIH0NCkknbGwgdGFrZSBhIGxvb2sgYWdhaW4uDQoNCg==


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 06:49:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 06:49:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095580.1450534 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ur9yW-0006Ng-9p; Wed, 27 Aug 2025 06:49:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095580.1450534; Wed, 27 Aug 2025 06: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 1ur9yW-0006NZ-72; Wed, 27 Aug 2025 06:49:40 +0000
Received: by outflank-mailman (input) for mailman id 1095580;
 Wed, 27 Aug 2025 06:49:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Gy2E=3H=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ur9yU-0006NT-Vt
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 06:49:38 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ff191f98-8311-11f0-b898-0df219b8e170;
 Wed, 27 Aug 2025 08:49:36 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-afcb78ead12so895598666b.1
 for <xen-devel@lists.xenproject.org>; Tue, 26 Aug 2025 23:49: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
 a640c23a62f3a-afe76b4dd5fsm664376966b.102.2025.08.26.23.49.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 26 Aug 2025 23:49: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>
X-Inumbo-ID: ff191f98-8311-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756277376; x=1756882176; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=rcJMorFk2kd6b4msBMnKbHG6JUC4+XVrRfprzYQVQ0U=;
        b=QjDEFe6VCIlECBpVZKWoXgXOurhHBVygBEDDrgcUyF4tmkUKyLPJEG2AU5W//OiyQX
         V3wBdUPwdq9mktsFwDBHrT8NVLKczqTo0xgiTitfjceqq/ErnDAd98a6jhVlKn7m1+lS
         6xR07nNgvMmdlWhY0ZTsIkzOOHQebbrnB+Rr9YTtfYFht4vgzN/8S1Pr3DS9Hnsme7iH
         JSpggCuTkYQCGcAutxUaTW7kyHde68PX7BvoPPi7Z8EJhfUI6Pk5Oa3JIqLKlnmxlcpW
         AU5UfIwdD7HplQsmas4vXePJ7v5edGTIIQe9DsfePvL1yybtlbGGBVQTtgevTFtpH0p9
         9+cw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756277376; x=1756882176;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rcJMorFk2kd6b4msBMnKbHG6JUC4+XVrRfprzYQVQ0U=;
        b=Nt76p0tcDkeqQiCw36FKX3qy4aNl1hkNntCsvcJvJHUVDKQYyQ5aZowvc6ABlkRz7Z
         r4jyaVZWwiZYJ1TwZz9qo5p6SJnEGvUn1QCeKgwFIH5uhOmidDUALIJ7N6aUgslfBy1O
         swBljWhw9o+j4X439+0rUn3RWSDXE/ZQlvLEzU/omQ67R8XaEpLdwtHCZigQ4tey4ecb
         bq4/MBvCPDyQwzkiNWO0pwEZtY1UmyrXE9Vpz774RV4mFxkL65FrBY3F8eReNYv4J3NJ
         rV3islKEdfEu+HaP3nSSTCSwH/bOOdSAc0Dn5qbLFm9omv5U8duQWuPOYBsETODtL+1A
         HqHQ==
X-Forwarded-Encrypted: i=1; AJvYcCWDBwUZmeRri1GjOUI2ETzNREc1aSFRmkgKejR+jByqJ0MxvxtoBGthyyo8oCBdj+LlhsD8sRr9KiQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw/I57T9FGJy+WO5mtf+YahEcwvImx7easTTT9HlwbZD8wulVYZ
	Q/m6xeDV/vF+/68j/ryndJl1q5pvuVZa8JJYhcCdq+/VWghkUOVpWQ6QTSG2PZbb7A==
X-Gm-Gg: ASbGncv/dK8sQQrqh5p2A2XX7rde51QY2rPrU5swUvbNp/CT13O6AQr8ZV0KvpJvmOv
	xLN9us5mCfhFqIH6Xo7HJn8x8YSUrZpt0jxqj/w8eg3VBzG9zhwswT7Fin1D5nmMCb9trnrYjoW
	xkg0RZTYOE8BQ2vdtXnSJWEjw8sbksd1ewQ4pXK2pIDZE4vW3adRxd6if2uuRog4I0La7d3sGTJ
	MmwdS25+3rEApDZ4GM0lcmtOEHFanyAXA7wLK/SgfARrhL2gdaGK7+4Uk6OOt4GOBEOZwuOcPD8
	LZNTA/Ge3teKgp4kYMuNfv6767tFvAyBd8F0L2dgDaYcHzM67j8vfP0+1Dmpc55//YwZOGFMCDO
	Y0pPa89/y2QTIZ45biu+yWQs/LKy8jrUaSvAW72CXm+I/NGoXSRicUBWsBXP2NGpZYobsW2BIex
	79Ap9fqR92Iiy6cY6XzA==
X-Google-Smtp-Source: AGHT+IE8aRxAuz5UROSemss777nP3Mq4Wr/VsDKBN7UrHEHBGfPDNTehx4t7m+F+brGODXbF/45deQ==
X-Received: by 2002:a17:906:6a0a:b0:ae3:a812:a780 with SMTP id a640c23a62f3a-afe294ce84cmr1764436066b.61.1756277376067;
        Tue, 26 Aug 2025 23:49:36 -0700 (PDT)
Message-ID: <87d3e637-cc74-422f-9711-dd42e93475a4@suse.com>
Date: Wed, 27 Aug 2025 08:49:34 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Consider changing CONFIG_ACPI default on ARM?
To: Elliott Mitchell <ehem+xen@m5p.com>
Cc: Demi Marie Obenour <demiobenour@gmail.com>,
 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>,
 Paul Leiber <paul@onlineschubla.de>
References: <CAO_48GG1Tg0d3ATnNAYNr0cg7Ty_zsnzT29=dpkk99DxyTWcmg@mail.gmail.com>
 <fceb5df8-d628-479d-acb3-d1d26409fbac@onlineschubla.de>
 <aJLae1Nl0pyOZgyh@mattapan.m5p.com>
 <1b96f2f3-55a2-4b33-84b1-a7c18d38d10c@suse.com>
 <6e9b5265-7a3b-4fd5-b14e-0e60a8b49833@gmail.com>
 <a3092ae1-d836-4403-8fb5-30593fcd2fb8@suse.com>
 <aKjOaT-P74Yh4-bi@mattapan.m5p.com>
 <5b85b5da-dfa3-465a-9708-62fc55fe48bb@suse.com>
 <aK4Ztm8QE3O6Ifcc@mattapan.m5p.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: <aK4Ztm8QE3O6Ifcc@mattapan.m5p.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.08.2025 22:31, Elliott Mitchell wrote:
> On Mon, Aug 25, 2025 at 10:07:18AM +0200, Jan Beulich wrote:
>> On 22.08.2025 22:09, Elliott Mitchell wrote:
>>> On Fri, Aug 15, 2025 at 10:14:42AM +0200, Jan Beulich wrote:
>>>> On 14.08.2025 23:27, Demi Marie Obenour wrote:
>>>>> On 8/14/25 02:55, Jan Beulich wrote:
>>>>>>
>>>>>> Parties interested in changing the support status of any component are the
>>>>>> primary candidates to actually carry out the necessary work.
>>>>>
>>>>> What is that work?
>>>>
>>>> To determine what exactly needs doing is part of the exercise. I, for one, am
>>>> unaware of a concrete written down set of things which need doing.
>>>
>>> Since you're not pointing to anything definite, could it be everything
>>> has been resolved?
>>
>> Possible. Yet even then the state of things needs fully writing down, perhaps
>> in a commit message for the patch changing the support status. That's likely
>> still a time consuming job.
> 
> Issue is much of this is better done by the people doing those projects.
> Most of what I've done is checking a real hardware/software platform and
> confirmed functionality.  Presently it boots, but the framebuffer doesn't
> work.  VMs appear to work fine though.
> 
> How does the attached patch look for enabling ACPI?

The main (Arm) effect of it I can't judge on. I don't, however, think that
an experimental option can be default-on. That would effectively make it
(security-)supported. And of course there are a few formal issues with the
patch.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 07:13:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 07:13:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095608.1450544 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urALd-0002QE-6P; Wed, 27 Aug 2025 07:13:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095608.1450544; Wed, 27 Aug 2025 07:13: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 1urALd-0002Q7-3P; Wed, 27 Aug 2025 07:13:33 +0000
Received: by outflank-mailman (input) for mailman id 1095608;
 Wed, 27 Aug 2025 07:13:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Gy2E=3H=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urALb-0002Px-U0
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 07:13:31 +0000
Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com
 [2a00:1450:4864:20::533])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5386ae93-8315-11f0-b898-0df219b8e170;
 Wed, 27 Aug 2025 09:13:26 +0200 (CEST)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-61caa266828so1707911a12.1
 for <xen-devel@lists.xenproject.org>; Wed, 27 Aug 2025 00:13: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
 4fb4d7f45d1cf-61caae5fc3fsm1430564a12.51.2025.08.27.00.13.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Aug 2025 00:13: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>
X-Inumbo-ID: 5386ae93-8315-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756278806; x=1756883606; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=QZpPlf/fPJ7e1qsMCEmJzLy5X0G0I179INc0LnfULro=;
        b=a494KSUT0ahTZ06aEVP47XmyC/rkYoTgr8CDV4Fea9Vq3xugX6nZZ5BvrTbvWetW7x
         OXP28JAVGJBjPTkErdmpOPWQ8gcQlK/ReTN+ivG956ZNLJOVug4OoEQ/qpzo6q6QOK8P
         xlJLsigeL4K/UOAVFJUrGZtuFZZOoSXXZkLL26fsGMOumS/SJmyrtf4V3AujVPYNxCuB
         xLR07pgLPWXFKLGXAuRyHCWfrZyEbRmKE0rfVdMPSaOkhDiAS52d1FvA/yW0KQ59Bzwj
         KMaIssrodXRoL6FttBUGF4D+GNHvzxXiBRGEfU5/97wO96NvV0IgYk9P9EBlEYjxfTkA
         NpXA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756278806; x=1756883606;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QZpPlf/fPJ7e1qsMCEmJzLy5X0G0I179INc0LnfULro=;
        b=nZsnaQEhHixwkAV7qq/znDA4P7pKvCha0+iMwq36c2UVT7ju/sQvV1CoK9zal2fm2B
         tEjLH3xU55Z8/sjZH7OqiqjyN3wmlEY/mwMbH73ZTwX71SawykQISm24U09AQH7uxKKj
         bXcM0P7Y+aqc1G80XeU6Y7VVAr/bCK9kW7EQZXU5ed7hkitaeRDOBfZWYEYhuuAIuuT3
         GY3ZVmZfEaXFG+wpsVb2eUQNnPefReMg0ByQcMI027M8/It1M4mXHsH+k9a1Ml31X8Hv
         OBtfWIGJm1A5j1gJrX1UQjX6iV5KdLA1Qu43cMrZCPWm01f8sl+ANLn5X+HEMbwanBDS
         fDcA==
X-Forwarded-Encrypted: i=1; AJvYcCVCg3Kah5sVM4YxglmeEhzeYZtZBCezooogvYMvHxmzD9bL31Da+r4esJ3yt2wzqxI+0O+ERl3T7fg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzDYg/UDbXP50Tbkxdq73uP5nqZ3eFy/qmHUuv81aOabjVTW+BZ
	MUOIgtdKmG8yI5CS49l83cfTmGmzAUu9g9anKSmTdTfJFJxgXogJ0YqJUBOYnIDjpw==
X-Gm-Gg: ASbGncshcpzRjpJFWIdm6nkXxKKxT5DoYyKvRV2AmWx2h+8VLmnDMjHjutsA1Iw/olF
	1OeeyHL933nCXGp6HDB/ZVtmh7DoQm3nZ3N5S/ydaVKO4ikhdztTSCuEL+VnGOhMR2FeCJnIEGN
	s4dWcvJpUqVKzXKilO1B4r0BgU6dEm6cNNHWQynJawPnsFFYxwOw/3D8F0hZdP4pUPH6jxTE/2p
	mP7tmdEHwR/jEHF5cOfhU2I8bOh+EjagL4NQxjjLRmW8LuyutmlVBbGnjJQNA/kPdg7a3/kqmZJ
	wU7PwCBaEBlBcyYOPo+E6gjQifcx7/rJ7a9hbklrVtUAIbQiE0q9kbwk0327WV0edHX2NBNRomS
	kIDN3VGPRsCAiUzFqvZFzrnSli9pA/W6VgFp3RMjsaPheLn4mml2ORJ9BUq9MM1bw3FWRYuN8p6
	nn8Y+p09w=
X-Google-Smtp-Source: AGHT+IEs7QQQpQ+QHms7VvccdWHZkwsnmSezPFz0aWxK3R2PkC8Cqfo+oQCrK81SjJGHKmtq16OSBg==
X-Received: by 2002:a05:6402:2790:b0:61c:96a1:da11 with SMTP id 4fb4d7f45d1cf-61c96a1e080mr4005235a12.27.1756278806249;
        Wed, 27 Aug 2025 00:13:26 -0700 (PDT)
Message-ID: <cc8724b6-bb31-4482-a459-156366b7b433@suse.com>
Date: Wed, 27 Aug 2025 09:13:25 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>, ray.huang@amd.com,
 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>,
 xen-devel@lists.xenproject.org, Penny Zheng <Penny.Zheng@amd.com>
References: <20250815102728.1340505-1-Penny.Zheng@amd.com>
 <fb6f559a-b2aa-4b25-a6d3-401ecc4b4bd5@suse.com>
 <d6046b53-9317-43d6-bfda-e30d42c09320@gmail.com>
 <2035b14e-3836-4e80-9dad-8a49ca90864a@suse.com>
 <alpine.DEB.2.22.394.2508181646220.923618@ubuntu-linux-20-04-desktop>
 <49416df6-83c8-4fa3-bf81-2d1e504ef31b@suse.com>
 <alpine.DEB.2.22.394.2508251934200.3391208@ubuntu-linux-20-04-desktop>
 <alpine.DEB.2.22.394.2508261728250.3391208@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.2508261728250.3391208@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 27.08.2025 02:33, Stefano Stabellini wrote:
> So I ran a test and the appended change, which is based on [1] and
> renaming CONFIG_DOMCTL to CONFIG_SYSCTL, is sufficient to resolve the
> build issue.
> 
> For 4.21, I suggest we go with two patches:
> 1) global rename of CONFIG_SYSCTL to CONFIG_MGMT_HYPERCALLS
> 2) stub domctl_lock_acquire/release based on CONFIG_MGMT_HYPERCALLS
> 
> Jan, are you OK with this?

Naming if the option aside, no, I fear I dislike the stubbing. What's
worse though, ...

> --- a/xen/include/xen/domain.h
> +++ b/xen/include/xen/domain.h
> @@ -148,8 +148,17 @@ void arch_dump_domain_info(struct domain *d);
>  
>  int arch_vcpu_reset(struct vcpu *v);
>  
> +#ifdef CONFIG_SYSCTL
>  bool domctl_lock_acquire(void);
>  void domctl_lock_release(void);
> +#else
> +static inline bool domctl_lock_acquire(void)
> +{
> +    return false;

... this will break x86'es HVM_PARAM_IDENT_PT handling. That is, in
principle I would agree that returning false here is appropriate. But
for the specific case there it's wrong.

As said on the call yesterday, until what you call MGMT_HYPERCALLS is
completely done, the option needs to be prompt-less, always-on. Adding
a prompt was necessary to be the last thing on the SYSCTL series, and
it'll need to be last on the follow-on one masking out further
hypercalls. IOW my take is that 34317c508294 and 568f806cba4c will
need reverting (the latter being what caused the regression, and the
former depending on the latter), to allow to cleanly continue that
work after the rename. If we don't do the reverts now (and take either
Penny's patch or what you propose), imo we'll need to do them later.
Else we're risking to introduce new randconfig breakages while the
further conversion work is ongoing.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 07:52:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 07:52:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095629.1450554 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urAxM-0007kn-UL; Wed, 27 Aug 2025 07:52:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095629.1450554; Wed, 27 Aug 2025 07:52: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 1urAxM-0007kg-RV; Wed, 27 Aug 2025 07:52:32 +0000
Received: by outflank-mailman (input) for mailman id 1095629;
 Wed, 27 Aug 2025 07:52:31 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Gy2E=3H=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urAxL-0007ka-DS
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 07:52:31 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c8170cb3-831a-11f0-a32c-13f23c93f187;
 Wed, 27 Aug 2025 09:52:30 +0200 (CEST)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-afcb731ca8eso1025578466b.0
 for <xen-devel@lists.xenproject.org>; Wed, 27 Aug 2025 00:52: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
 a640c23a62f3a-afe80daceb5sm590161366b.68.2025.08.27.00.52.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Aug 2025 00:52: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>
X-Inumbo-ID: c8170cb3-831a-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756281149; x=1756885949; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=KfwZ9l5V2bAjpuYOBMDJ7zBCdjwTCyFDu0LrI6NWVBk=;
        b=HkMfNyyaK10wHp2p3v30MKYzC4a5axC8Cs1AYrRRe7IGxjdqx+mqxN+Mxf2wngiEhy
         N08Pdbc0BU7ogfyiws0o/HXYGzwMu/KKlDGzrIgW+PsBpLTYaZwvAoHdYC2T+fEt529d
         KwuKK/VH4Y6rLjUNB4MFTcKt+0lKUruesxkWt6M6NqADPQj7e72YckjnXyAFgld/++nz
         gedwHXsIsfoS19xT3llYPPZXSwYHh/63HDsoFiGiVVgLUj1aTfpupjST3Ov79L18+N1C
         Uu/bn+NonhRjkSyUEiex4UKa1xGf09Ycc+RgCkf52Hf7AYfQVhaW/zv8DvNM/4SBbAAi
         7h6w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756281149; x=1756885949;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=KfwZ9l5V2bAjpuYOBMDJ7zBCdjwTCyFDu0LrI6NWVBk=;
        b=u7SywqC+h2O3lMLX7CB4Jw1E0TBEZRByvKFrcBnEdWn2OhFg+kH3u/3X7i19cDZrAX
         NmhN0uKXMBBxoreNY8qDlHjBb2BqEldBxr2AzlfKEHyFmr26wP1niEUSuijqijlSa1rz
         yRzzk9Xhxh+Buz5J3zligaUBoZ7CApJaCYaz2wYWyZYoW0UpqMNFxguPbjwAB4GktLUQ
         CMU/OkZc7OUNRv3/EmOoc6YA1eYlgaBj88NYZcpK8NpHMRpmTNYLouJcedb6E41+ze08
         3X0rLGacPpmFPD5fOph9RaEWUKKD5LTvPd3ZbGhb0SHDS+zohMQ6ZjVvlxkC5IFziQIq
         6Yqw==
X-Forwarded-Encrypted: i=1; AJvYcCUCwpTvPY1owHKww6B4Tk/2Drueak54hbfkNZUR4gyD2dOa9lLNBKd4g4lt3OQR2N+3kwj6cs0B/NM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwxN0fAV821tiQIzjrgJS+wW+5TTlhdvBorKuzgIj/7V6OaZJfb
	dcJgxRww5Tce1XdR3MuplIPxbnP5Ri0SLGrFKJv+qfT0PHCGIV6vtxr6wnhfxNhMhw==
X-Gm-Gg: ASbGncuc9Qi8tGGXzLhdjLLPc/7pzh6KW1bkyx7oIlIIuVQUY6ZIxmWOF21d6T6aKED
	BtjDoR7NL3ww3v928cbNIoLgrn1TWnuYbyzNqCu6O4/IP628rGoGnamVJRR3PQPcjB8oY33Wmcd
	pw9X4ZdTaGuvqQHCYUEP5NOliO5YNdvUXKpWvP6dCILVkPj56ba5md4XH7K3qcZmuWBD4Gokmqg
	zcoiNrjveuIGzuYh8JG/9VAB/KS5gMxe3lwULk36s6e1Q3hHmzTG4Wnkx8RfKMSL4g+e3Sef3kU
	RX85r2egRlGT3R5ILzQ+Vzv2QFk5FM8uY6hromvP+j+dTEzZE2CqxWw9DpxDrfFxudmpB5mVlfj
	8CgiSyyEUyZx2h7Rnd2AVxyfRZcutJDxLOuQl2KyDL9s820EYhpr5YA0pBg7eB7fO8+Ogi+xQLY
	vODpqDyrFRhIvyetHcmw==
X-Google-Smtp-Source: AGHT+IFz6t0xh3WrMotafXWmuMTy6nRH5AkFrQ9WN8rtTxSXohdXoYDKiOYqYshcwNiA6yfGOJ15Xw==
X-Received: by 2002:a17:907:86aa:b0:ae0:a483:7b29 with SMTP id a640c23a62f3a-afe29550672mr1723992666b.49.1756281149387;
        Wed, 27 Aug 2025 00:52:29 -0700 (PDT)
Message-ID: <3ec7b53e-aef6-4a00-acb3-19cbbe6543c9@suse.com>
Date: Wed, 27 Aug 2025 09:52:28 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/bitops: Optimise arch_ffs{,l}() some more on AMD
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250527222930.1452674-1-andrew.cooper3@citrix.com>
 <20250826174135.605220-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: <20250826174135.605220-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.08.2025 19:41, Andrew Cooper wrote:
> --- a/xen/common/bitops.c
> +++ b/xen/common/bitops.c
> @@ -97,14 +97,14 @@ static void __init test_for_each_set_bit(void)
>      if ( ui != ui_res )
>          panic("for_each_set_bit(uint) expected %#x, got %#x\n", ui, ui_res);
>  
> -    ul = HIDE(1UL << (BITS_PER_LONG - 1) | 1);
> +    ul = HIDE(1UL << (BITS_PER_LONG - 1) | 0x11);
>      for_each_set_bit ( i, ul )
>          ul_res |= 1UL << i;
>  
>      if ( ul != ul_res )
>          panic("for_each_set_bit(ulong) expected %#lx, got %#lx\n", ul, ul_res);
>  
> -    ull = HIDE(0x8000000180000001ULL);
> +    ull = HIDE(0x8000000180000011ULL);
>      for_each_set_bit ( i, ull )
>          ull_res |= 1ULL << i;

How do these changes make a difference? Apart from ffs() using TZCNT, ...

> @@ -127,6 +127,79 @@ static void __init test_for_each_set_bit(void)
>          panic("for_each_set_bit(break) expected 0x1008, got %#x\n", ui_res);
>  }
>  
> +/*
> + * A type-generic fls() which picks the appropriate fls{,l,64}() based on it's
> + * argument.
> + */
> +#define fls_g(x)                                        \
> +    (sizeof(x) <= sizeof(int)      ? fls(x) :           \
> +     sizeof(x) <= sizeof(long)     ? flsl(x) :          \
> +     sizeof(x) <= sizeof(uint64_t) ? fls64(x) :         \
> +     ({ BUILD_ERROR("fls_g() Bad input type"); 0; }))
> +
> +/*
> + * for_each_set_bit_reverse() - Iterate over all set bits in a scalar value,
> + * from MSB to LSB.
> + *
> + * @iter An iterator name.  Scoped is within the loop only.
> + * @val  A scalar value to iterate over.
> + *
> + * A copy of @val is taken internally.
> + */
> +#define for_each_set_bit_reverse(iter, val)             \
> +    for ( typeof(val) __v = (val); __v; __v = 0 )       \
> +        for ( unsigned int (iter);                      \
> +              __v && ((iter) = fls_g(__v) - 1, true);   \
> +              __clear_bit(iter, &__v) )
> +
> +/*
> + * Xen doesn't have need of for_each_set_bit_reverse() at present, but the
> + * construct does exercise a case of arch_fls*() not covered anywhere else by
> + * these tests.
> + */
> +static void __init test_for_each_set_bit_reverse(void)
> +{
> +    unsigned int  ui,  ui_res = 0, tmp;
> +    unsigned long ul,  ul_res = 0;
> +    uint64_t      ull, ull_res = 0;
> +
> +    ui = HIDE(0x80008001U);
> +    for_each_set_bit_reverse ( i, ui )
> +        ui_res |= 1U << i;
> +
> +    if ( ui != ui_res )
> +        panic("for_each_set_bit_reverse(uint) expected %#x, got %#x\n", ui, ui_res);
> +
> +    ul = HIDE(1UL << (BITS_PER_LONG - 1) | 0x11);
> +    for_each_set_bit_reverse ( i, ul )
> +        ul_res |= 1UL << i;
> +
> +    if ( ul != ul_res )
> +        panic("for_each_set_bit_reverse(ulong) expected %#lx, got %#lx\n", ul, ul_res);
> +
> +    ull = HIDE(0x8000000180000011ULL);
> +    for_each_set_bit_reverse ( i, ull )
> +        ull_res |= 1ULL << i;

... even here the need for the extra setting of bit 4 remains unclear to
me: The thing that was missing was the testing of the reverse for-each.
You mention the need for an asymmetric input in the description, but isn't
that covered already by the first test using 0x80008001U?

That said, I certainly don't mind the change, it just isn't quite clear to
me whether I'm missing something crucial.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 07:58:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 07:58:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095645.1450567 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urB3D-0008MR-JC; Wed, 27 Aug 2025 07:58:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095645.1450567; Wed, 27 Aug 2025 07:58:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urB3D-0008MK-GI; Wed, 27 Aug 2025 07:58:35 +0000
Received: by outflank-mailman (input) for mailman id 1095645;
 Wed, 27 Aug 2025 07:58:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Gy2E=3H=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urB3B-0008M5-Ue
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 07:58:33 +0000
Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com
 [2a00:1450:4864:20::62f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9ff7fdd7-831b-11f0-b898-0df219b8e170;
 Wed, 27 Aug 2025 09:58:32 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-afebb6d4093so146994866b.1
 for <xen-devel@lists.xenproject.org>; Wed, 27 Aug 2025 00:58: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
 a640c23a62f3a-afe7fd59b00sm601815466b.106.2025.08.27.00.58.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Aug 2025 00:58: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>
X-Inumbo-ID: 9ff7fdd7-831b-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756281511; x=1756886311; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=P78y0ZAf9K2ANlf9uB4nNjETFBHLWK9P8L0nxlKFXN4=;
        b=IKggm+3/S2/yJQDoG5nt1ynbgo5ubI+Xa2Qa4gcnzIStTEGvIM2YRiqWeHBzdZsSrm
         IusLTXSfsOJu68Z7R0/ncmYkBW1q0RHscSyv/gEiyNOWs8P6UDovDKdpMNzRlflFyl5j
         2CvQulIEg4pjDt+sJt8KuPKZVVfqbIFGsVOvb3LuapFrG2U2REIU7qegQtZwXu/T2yvK
         oyhWxN5Ygx/DPqBAC4BeP2o4BWsfCfBzAE1OA6lSr22Z4ThbVD14pkkoajbNTTReKHGc
         7/Yr+bh3AYTBdvEBgBtz2uK8XnZF/w9yLIUQLi+XSKXRAWNG/edNjZQNnk2sAn8rglUZ
         RXyg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756281511; x=1756886311;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=P78y0ZAf9K2ANlf9uB4nNjETFBHLWK9P8L0nxlKFXN4=;
        b=blSnGNoIux8FRo7y7+6biXMD6qzpCxivJTVHlbH20SCBVRS/n/veogsLTKl+WVmmwR
         R20vgXiVuSzVv6JbbqAWnCWbbangzRtyZHhpigRJyDlKGFIxvsn3722kGv7NtpjMFOmN
         uDYazUsqEPLiGPGPVjZ3PYQV1A8FWgoO+mTtIdiOztChb0qTJdXo1hzINW6oKEQr50T6
         62L44n4IvhjVmv5kOMOLYjtYdu6QMauFq/WdSBHYOVk7vMDZey+ct81X/bn3qhaCOL42
         md5PMALUkpbDuFkdFkEYQno9F3QqIeTrDKxrjKGsm2UiJif9hZ1AgLMz3BSeEnyrgBf2
         uO0g==
X-Forwarded-Encrypted: i=1; AJvYcCWLsm72OcXGlIhBA+quOkFDiW7iFIdz5gsyRXQMgSjCQgXj89TI62FzRBhGhrZ40rPcJiz1J6gfmyY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzxM9bfcEdMHh7k79mfpnTzcmV93xmsu6zKNfxpegAlfYpt4xFk
	78X2ZnLH8mTfC/nxSrYvLBVdZtX7NzcNlImy2zRsXqFRHLgK5yMalhkL2D/UvLuY9A==
X-Gm-Gg: ASbGncsOIEI9uPu+n1nZIgFSeSe1Hijq6z9uWvgwssjp8FHICvkIWbviwt6b/UkVUgd
	VV2L3tKuxR37eyO7mjs5Nz51xl98bPxpp3O/bnSb3aaX81zRNwxwmObeAaM2Cuesn53UBDchEPo
	T5TLCIHpLSlHZ5Ufom9Mj/trDBZChholP8FKnDlFL1OI0l6R1djdqI0fs0QKOOZmKVRPcN/CAXk
	A0C5NJTo2wjMMrSVYBk4UDaNFpoBi6EniOBH7TZEQ/SoGaidnb9qjUfwH4ukwzGstWHoVdZOXTI
	HZjgI5DCBbZnFM0cyP9HlnwvqcWKZXBG7lqFxqFtKwSBadyAbaY1KRbRT1U8n8W7Pngm4x0k4bk
	wuKBlhn8X+7mmFZpjlEvs6gbOckx+1LCdUjRwXNBuRJZseuXU90vhpkavm67PzA+/hFPUU60Rqz
	yiBM3nkvQH98rGbv88KQ==
X-Google-Smtp-Source: AGHT+IFd5sT8nD9z3rOyxDBvq5JhYfEQAgwBSHFNfNqUqTpjCKhGtD/UGuQC4wphqd2Ph/qfBdPD1A==
X-Received: by 2002:a17:907:7203:b0:afe:ae1b:bf17 with SMTP id a640c23a62f3a-afeae1bd560mr443120266b.3.1756281511281;
        Wed, 27 Aug 2025 00:58:31 -0700 (PDT)
Message-ID: <609d686e-a41c-47f4-9e5d-3733e9ec7723@suse.com>
Date: Wed, 27 Aug 2025 09:58:30 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 8/8] xen/dom0less: store xenstore event channel in page
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>, xen-devel@lists.xenproject.org
References: <20250826210847.126015-1-jason.andryuk@amd.com>
 <20250826210847.126015-9-jason.andryuk@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20250826210847.126015-9-jason.andryuk@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.08.2025 23:08, Jason Andryuk wrote:
> --- a/xen/common/device-tree/dom0less-build.c
> +++ b/xen/common/device-tree/dom0less-build.c
> @@ -26,6 +26,7 @@
>  #include <public/event_channel.h>
>  #include <public/io/xs_wire.h>
>  
> +#include <asm/guest_access.h>
>  #include <asm/setup.h>
>  
>  #include <xen/static-memory.h>
> @@ -120,8 +121,14 @@ static void __init initialize_domU_xenstore(void)
>  
>          if ( gfn != XENSTORE_PFN_LATE_ALLOC && IS_ENABLED(CONFIG_GRANT_TABLE) )
>          {
> +            evtchn_port_t port = d->arch.hvm.params[HVM_PARAM_STORE_EVTCHN];
> +            paddr_t evtchn_gaddr = gfn_to_gaddr(_gfn(gfn)) +
> +                offsetof(struct xenstore_domain_interface, evtchn_port);
> +
>              ASSERT(gfn < UINT32_MAX);
>              gnttab_seed_entry(d, GNTTAB_RESERVED_XENSTORE, xs_domid, gfn);
> +            access_guest_memory_by_gpa(d, evtchn_gaddr, &port, sizeof(port),
> +                                       true /* is_write */);

Isn't the use of an arch-specific function going to pose yet another issue
for making this code usable on x86? Can't you use copy_to_guest_phys() here?
Which may in turn need to be passed in by the caller, see e.g. dtb_load()
and initrd_load() (i.e. cache flushing may also be necessary for Arm).

Jan


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 08:03:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 08:03:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095659.1450577 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urB7v-000262-C5; Wed, 27 Aug 2025 08:03:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095659.1450577; Wed, 27 Aug 2025 08:03:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urB7v-00025v-9E; Wed, 27 Aug 2025 08:03:27 +0000
Received: by outflank-mailman (input) for mailman id 1095659;
 Wed, 27 Aug 2025 08:03:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=dVpB=3H=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1urB7t-00025p-Qu
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 08:03:26 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20614.outbound.protection.outlook.com
 [2a01:111:f403:2413::614])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4bab03b9-831c-11f0-b898-0df219b8e170;
 Wed, 27 Aug 2025 10:03:20 +0200 (CEST)
Received: from BL1PR13CA0159.namprd13.prod.outlook.com (2603:10b6:208:2bd::14)
 by MN0PR12MB5956.namprd12.prod.outlook.com (2603:10b6:208:37f::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Wed, 27 Aug
 2025 08:03:13 +0000
Received: from BL02EPF00021F69.namprd02.prod.outlook.com
 (2603:10b6:208:2bd:cafe::fe) by BL1PR13CA0159.outlook.office365.com
 (2603:10b6:208:2bd::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.13 via Frontend Transport; Wed,
 27 Aug 2025 08:03:13 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BL02EPF00021F69.mail.protection.outlook.com (10.167.249.5) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Wed, 27 Aug 2025 08:03:13 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 27 Aug
 2025 03:03:12 -0500
Received: from [10.252.147.171] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 27 Aug 2025 03:03:11 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4bab03b9-831c-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=J1VtaQuGS/PuVQSAwqR//2EqxtHuyhko1LQ4OuKtYdRdK+ZGeEvG1IqIRP0xMoZPGdWgaNdv3bYt6milgfvKZrS3q4o/mHZBg8t01p7wZ8dUoD5rNTVA/zFMTsLqR3rqP4tRyXng7LxAsLSb7Sq7pHODymBmrQvs4HbR/3kmz2nc7e2wQphvasszaeduFvPs3vRkIrK0twF+l8tr27wm7gt95JS5aspWqGJv2i/1Gc6qNinwNDAfuKR/MCxHIzcElGRJa0rxJFda2n3YadryUz3Lk/dZugodl/T1MKX6I4fLlKs0L1BUR/0KW3vfhzMgcBb1rEV8lKahyoZnesVF+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=UOmTl6j6JPjcCc9p7W7fW1X7z7OXS8mLrvOmJ0hFw+g=;
 b=m9ccbifJ7iwjdKKu1ZwvKF85wcXM1cxugsn+uXfhIvZTUKOB2VqdvGXa/DZCIr13tO1FGUEDgMmyRGWNpfc8pYxLyJPBh7q/TK3PuD4axmRoZcdqBRGry3NmEZoEeSp45d7+QmaVkR1UkZhXg20KzXTJ6gPCMXdnuMplZO/d6k325S0cSAqXLPZVGUPPHZzaWCk3KBv2XvIfY0yOvqRcPc0SCOl6KfHUMy7YzYZGmcMyncZjBWVdTp0F60NYC0IqyF02VH/UvKNtGftht5YY0wqLN92hSuOEKvJlt+g0QLY/64TvrciSOjnXca18rMuOOtCvhEmGfRRfPbM6aJFWMg==
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=UOmTl6j6JPjcCc9p7W7fW1X7z7OXS8mLrvOmJ0hFw+g=;
 b=RjBGja6zYeiqBP91C59d+n8itdJcgPHX9CT0IztZjWUHqJGUdbCgvNkgD5spj9415xxGMWkeOopQt2Zw8SXBSZkFC+jzIXOfbqIyk3deMZDcH508UcieKjM6wVM8aavVVViQ6XHusq6Xoud5gNOZFQhMqcnWCFO+BdhnIXATvMs=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <b59ea812-6c97-49ea-b7a9-c02e3e265800@amd.com>
Date: Wed, 27 Aug 2025 10:03:11 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 8/8] xen/dom0less: store xenstore event channel in page
To: Jason Andryuk <jason.andryuk@amd.com>, <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>
References: <20250826210847.126015-1-jason.andryuk@amd.com>
 <20250826210847.126015-9-jason.andryuk@amd.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20250826210847.126015-9-jason.andryuk@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB03.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF00021F69:EE_|MN0PR12MB5956:EE_
X-MS-Office365-Filtering-Correlation-Id: 8199a553-4515-45ed-5f17-08dde5402bd0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|376014|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?WHlnVGZ4NVc0RVFEUkU1STQ0Y3ZlbEJGdWhsSlc3N2RicDB5UE1mYVJYUk5B?=
 =?utf-8?B?R01OMkFSSHZnbXJHbThIWFNmeEZMdmNCek4xVlUwUXB2OGtwK2xOQ21SUjJn?=
 =?utf-8?B?TnYzWllveWx1NUtReEFJOFRIQ2NJc3dJTVpPeVNQSFNKZCtXQkVJenV4Nkpa?=
 =?utf-8?B?bWdOdnhNaWlOWDd5Q1JXOGVTVWhjYlQrWDFZVzIrTTYvRG54c21aVHdmNmFO?=
 =?utf-8?B?RkRFNTNRZ0ZFYkxnbEJKWGpSVTdKZHViOCtmZ0VjVDRHZHM4UWo1VGFqWExZ?=
 =?utf-8?B?ci9PMk5IcHNlT2dlc3ZMRzhBZ3laQ0lOODhmdjZZNzBtejBUaFVjTWpISmZL?=
 =?utf-8?B?UjNFTUI4cEhOSWgvNjZaNTVBb3AvbVVjeUZwN05nS1RnVXE2UWc1OGNFRVp1?=
 =?utf-8?B?SURsS2FUeUdOUEllN0tWRnBHV2UxOUdXV3ZQNURZbCs0MkhiQ2FTNkVwSC9r?=
 =?utf-8?B?RUw0VlRIUHhEOGNjd08wM2ZnVW81QjAzVTNFWC9rTmxybHhtK2JTSmlSRGVX?=
 =?utf-8?B?QnVvY3A5YWwxbk9VY1ByWXRRbTZjOURETWZHVVRpWjczY3ZYS1B1SGkwaUNS?=
 =?utf-8?B?NGpENmgxcDRvMVkwb0RmRkNIS0xEUVBYc0pOMVJhUWRZVjVsYzZpdkZiV0ho?=
 =?utf-8?B?S1dzR0N3OGtYb1dUdFo2aDlHbitMbkdpVDdEY0RlTlhHd3RPU0dnb2dic2NM?=
 =?utf-8?B?RUJjcGFNdkduaEViTFhJSExqc0k3ZGFsWGNBL092Zk5jbnhMU3NnM3h5dk9G?=
 =?utf-8?B?VnR1VzZWbnRxazhvZlFiVVNQeVBjSnpjdmFyd09LNDRaWmNiczNaMWVwZGtQ?=
 =?utf-8?B?OHVJWTJaYVBjWnhMRkw4N2lYQnhMVFJaa0VYUlFMaEJPOHh5UzNFWC82dTJY?=
 =?utf-8?B?dW9WRDV6MU8vVkQrQkxydzYxRzg5bXgwblV5NzYvY2xqdmNRQmMya0VpV3Qw?=
 =?utf-8?B?Wit1d3FFR2FoMlljOWZ3Tnd0bzErdTBUeXEzUFNLVUxYaGxkcHZDdE95R1do?=
 =?utf-8?B?NHhwNUJCOC9Pamk2VUs1MngrSzhMYkViREtvMjY1bmNSL1JoWWxzT0NpSFRy?=
 =?utf-8?B?dXRKOGZ6RnRlMTRibGE4TXJvK0UzWlI4N2hDL0k3VjdaY3RWSkVlOGJGSisz?=
 =?utf-8?B?Sm0wQjFNdEJmMHl0QzB3RTRIckYzY1Y0YnpWb3VJMWtBWEJBSk1uYWhZNnBD?=
 =?utf-8?B?MUxUemV3RTV0RitEYVhLOWQrbHJBTldaTjNpQnhIUGNJRnJITUh2ajc4RUR2?=
 =?utf-8?B?cy9YMUVTb1g1MWk3dmhZNDAxQ1k3WnhSZXpiLzdjWm1NUHpzZHE0UWxZazN0?=
 =?utf-8?B?VksyblAyUFl4bk1SMllqdEZRaVRPamplY0ZqNUNpZ0VJVERkc0lRcW11d0Q2?=
 =?utf-8?B?MFBFUWdFVC96MzJ5MThDR2JCaXBWZDdOVGNPS0FNd2VQZTdRSU5XZjRRbWNr?=
 =?utf-8?B?SzVTWWQ4S0hBNEMxV0wvTm4xSmY1azhXUzg2Z285VjJhWVRpR29FSWM1a01Y?=
 =?utf-8?B?dEduWVhVNzFQaENtWFZoOXhiVkJPNitXMXhPMHdROXZhWDZHbjJWRnljVDc3?=
 =?utf-8?B?VC85Q2RhY3ZLU003NXBFa1FuNWhpRDhNRi9ZZ2tZdS9NdUptT0NoTzgyZjdv?=
 =?utf-8?B?eTQ4Y2xYQlZxZFVzemR2TFEwTFRNb1lEUmN5c2E4TzZtbC9MVmhRZHIycEVW?=
 =?utf-8?B?SSs0ZkpFdTBYWEZkV3Fkemp4WGZ1TWpxWTlUNWFRODZEVlhxSzJLZ1BCbVMz?=
 =?utf-8?B?N0lLZHZYbUFJRmVTNnp5aDBzdlZueXAyTE1IUVBVYzVWYW5IWEVXRkxBZjdB?=
 =?utf-8?B?OVljblY5SlVqMGVmUGNxNFVkOFRjSy8xWFBodGh3dFYrbXJHWjd3NUR6K25N?=
 =?utf-8?B?WmNxWWl0NWR5V1hFeFEyM3k1dlhHdUhEanBOTkhHZ3prSEZtT2FUOGNEdzBU?=
 =?utf-8?B?V0VFcVJicmdqS3d5akJEN0VhaFhNTTBMQ09rdzY5cEs4anFKd1V2RVI0M2kv?=
 =?utf-8?B?UDlhWE5CMWszRHc3eVozdmkzWi9hcmlFbzAvK1RIM0REVzMzOVMyVExJSzdr?=
 =?utf-8?Q?ZCqw4h?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Aug 2025 08:03:13.1781
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8199a553-4515-45ed-5f17-08dde5402bd0
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF00021F69.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB5956



On 26/08/2025 23:08, Jason Andryuk wrote:
> Write the associated event channel into the xenstore page so xenstored
> can read it.  xenstored can map the grant by the reserved grant table
> entry, and then read out the event channel and bind it.  This eliminates
> the need for an additional mechanism to discover the event channel.
> 
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> ---
> v2:
> No change
> 
> This should go in after the init-dom0less changes so init-dom0less is
> ready for xenstored automatically introducing domains.
> 
> I'm looking for feedback.  This is ARM-only for the time being, but that
> is the only in-tree user of this code.  From the perspective, it is okay
> to go in.
> 
> If we want a cross-arch approach, a common function to write to guest
> physical addresses would be needed for additional arches, but they
> aren't available yet.
> 
> Oleksii added a function pointer to dtb_load() and initrd_load() when
> moving dom0less to common, but I think that isn't necessary.  Just
> having a common helper would be sufficient.
> 
> copy_to_guest_phys() or something_copy_to_guest_phys() could be defined
> or a wrapper for ARM's copy_to_guest_phys_flush_dcache().  Other arches
> could need to implement it when using dom0less.
> 
> I'm not an ARM expert, but Stefano said
> copy_to_guest_phys_flush_dcache() is not necessary since this xenstore
> page isn't expected to be accessed without caches enabled.
I'm not sure I understand this point. When copying data *to* the guest, cleaning
is about Xen's cache, not guest's...

~Michal



From xen-devel-bounces@lists.xenproject.org Wed Aug 27 08:05:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 08:05:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095674.1450586 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urB9c-0002g2-QE; Wed, 27 Aug 2025 08:05:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095674.1450586; Wed, 27 Aug 2025 08:05:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urB9c-0002fv-Nj; Wed, 27 Aug 2025 08:05:12 +0000
Received: by outflank-mailman (input) for mailman id 1095674;
 Wed, 27 Aug 2025 08:05:12 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=E4uQ=3H=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1urB9b-0002eL-Rv
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 08:05:11 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8b5b7d06-831c-11f0-b898-0df219b8e170;
 Wed, 27 Aug 2025 10:05:07 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-45a1ac7c066so3521725e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 27 Aug 2025 01:05:07 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-45b6f2f3383sm18987575e9.26.2025.08.27.01.05.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 27 Aug 2025 01:05: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>
X-Inumbo-ID: 8b5b7d06-831c-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756281906; x=1756886706; 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=wafuybJDebB07gu6JwFrpSZX+c1NHwIRXVLshVeZQLQ=;
        b=N/ym58aMtxjZDmXtxNZPT/eSvRlVNxbBaA99Eo3sF0hlTfsNFLPj9Kwx9CX6d/Vqkm
         akuUWRlpjxOF30AEDdz61/aypBS1fqWQI25ytQTNNhRRsaoGpmCJJPaWhVbKzl925Rjw
         wpZWtkKpIStNl2GEtk525NPF9wAp/zLxUF4ok=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756281906; x=1756886706;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wafuybJDebB07gu6JwFrpSZX+c1NHwIRXVLshVeZQLQ=;
        b=WL/7YQ9dMjAwVKAzJlM4twW248FazCLIVJghB8c7wFrsgX5DxT1SQBCS26kqA1zykc
         JncFWiu9J90hXQvOihR26J6xjJEyffdVdHJ+bX2UDGJ6K8FplIY5tyjudVI5gfRHILni
         sKKBtqd1yIbQxWteXAGFhm5o8rG8/4aq+Vh7goW8d30jxlmsggIyFuF9J2PYvApHXpvh
         +0fZYhJNvzbx9v+6UmyVIK6NPgBxCRNBM4V5vV+YAOkSrTIE9FKQB7ruDFZDxSgrj7rL
         mffnRCl0hxgpACd9+zItpQRevFm1hIerLejd5PfXTxxoi12J9vKAajb2Z/pfIEv0ZXPU
         XwSw==
X-Gm-Message-State: AOJu0YyPrC6GgN+TU9IuYmaaNIk9qxkNwnKUDktGLBJhtbddz+sErBcA
	l27YMauicvWxDAaMybnrEfP/LBgEl39zhSKRiyzKy3wbi5cMunawv9WaN1dRhpaOYAE=
X-Gm-Gg: ASbGncuNXTF3cZhxdJOzfwIqxlJtLrIRaEHEKPyyd9QmDK1m7aXa2PsQ+62//btdDnY
	PrVPpZFmZEuBWqX4KatctW/gL1YL7jnbLMFTaCL5ClFysNfBP9dLcxdqQEJ9H/K31vRKT7EXZKN
	G1J3qQdYZziAtDSqEz+Jz6pi2egircvv9JepHd9p50GzH93bQboezj8mTASts0aQ1J3gWCqdENQ
	9RuSMuoKm3i7NdRhthfbXRZ59jwo5gmUmKnlITtiaW6RGxmkS8ocLeVxHAOZq3dZ/vl208urAub
	yLI9Sh1iEK5DCxs0wnd6SVUttREiYd3Bp3+lYSSCFPeE+OYZfP6VgRAq8Dw0Et6K+Tqkg8zAOfb
	b095muw4SSLQG9OyzEJz0M8faZTeVRJSaIHHxPGuibFrWTBYNGd6ETgASHdBCr9pPWZyI7G09YF
	4m
X-Google-Smtp-Source: AGHT+IHEw5nnmQo3t1mgTg2mCT2uafzIhpPuJfy4aLF9W9s8w6/oCF2WbO4efanJbNz6ekE1yqmSaQ==
X-Received: by 2002:a05:600c:3b95:b0:45b:62ea:c886 with SMTP id 5b1f17b1804b1-45b6d418c9dmr12700215e9.2.1756281906256;
        Wed, 27 Aug 2025 01:05:06 -0700 (PDT)
Date: Wed, 27 Aug 2025 10:05:04 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com,
	anthony.perard@vates.tech, michal.orzel@amd.com, jbeulich@suse.com,
	julien@xen.org
Subject: Re: [PATCH v2] docs/sending-patches: add GitLab pipeline link
Message-ID: <aK68MKAFh7q9M_uO@Mac.lan>
References: <alpine.DEB.2.22.394.2508181558550.923618@ubuntu-linux-20-04-desktop>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <alpine.DEB.2.22.394.2508181558550.923618@ubuntu-linux-20-04-desktop>

On Mon, Aug 18, 2025 at 04:00:11PM -0700, Stefano Stabellini wrote:
> When submitting patches to xen-devel, add a link to a successful
> pipeline run.
> 
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> ---
> Changes in v2:
> - address Julien's comments
> 
> diff --git a/docs/process/sending-patches.pandoc b/docs/process/sending-patches.pandoc
> index 1991932b68..13bb3bf47a 100644
> --- a/docs/process/sending-patches.pandoc
> +++ b/docs/process/sending-patches.pandoc
> @@ -314,3 +314,38 @@ A patch should always be sent **to** the xen-devel mailing list
>  of all touched code areas should get a copy of the mail via **Cc**. In case
>  some other recipients are known to be interested in the patch, they can be
>  added via **Cc**, too.
> +
> +## Testing

Should this be placed immediately after the "Patch version history
(change log), further comments" section, so that the order of the
document matches the order of the described elements in the patch
itself?

> +
> +Xen Project uses a GitLab-based CI infrastructure. You can request to
> +have your GitLab account added to the Xen Project organization on GitLab
> +(https://gitlab.com/xen-project) by reaching out to THE REST maintainers
> +via xen-devel or Matrix. Once your account is added to the Xen Project
> +organization on GitLab, also a personal Xen repository will be created
> +for you under https://gitlab.com/xen-project/people/<your-username>/xen.
> +You will be able to trigger a GitLab testing pipeline with a single git
> +push to your personal Xen repository.
> +
> +When submitting a patch or patch series, please include a link to the
> +successful GitLab pipeline run on your personal branch. The branch
> +should be based on a recent version of the "master" branch, ideally not
> +older than two days.
> +
> +This information can be added after the `---` line.  For example:
> +
> +    ---
> +    Test CI pipeline:
> +    https://gitlab.com/xen-project/people/your-username/xen/-/pipelines/1980129839

FTAOD, should this also mention that for patch series the link should
be added to the cover letter and without any dashes?

Also FTAOD, should the link to the pipeline results be placed before
or after the "Changes since vX:" entries?

I don't care much whether it's before or after TBH, but we should
likely clarify that it either doesn't matter, or provide a suggested
order.

> +While it is technically possible to implement an automated system that
> +picks up patches and patch series from xen-devel and runs the GitLab
> +pipeline on them automatically, doing so would consume a significant
> +amount of resources on the testing infrastructure. There is no reliable
> +way to automatically determine whether a patch is close to being
> +committed or still undergoing substantial review. By having users submit
> +the link to the pipeline manually, we can manage testing resources much
> +more efficiently.
> +
> +When submitting new features, please also consider whether you can add a
> +GitLab test for the feature to ensure it continues to work correctly in
> +the future.

Not sure whether it's worth explicitly mentioning here, but it's not
strictly needed to add a new GitLab test, just adding a test to
tools/tests/ that's properly hooked up (like all test that reside
there) will get it automatically executed by GitLab.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 08:07:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 08:07:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095686.1450597 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urBBq-0003Fn-5D; Wed, 27 Aug 2025 08:07:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095686.1450597; Wed, 27 Aug 2025 08:07: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 1urBBq-0003Fg-25; Wed, 27 Aug 2025 08:07:30 +0000
Received: by outflank-mailman (input) for mailman id 1095686;
 Wed, 27 Aug 2025 08:07:29 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Gy2E=3H=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urBBp-0003FR-F9
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 08:07:29 +0000
Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com
 [2a00:1450:4864:20::633])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dfc80a1d-831c-11f0-a32c-13f23c93f187;
 Wed, 27 Aug 2025 10:07:28 +0200 (CEST)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-afcb72d51dcso896387366b.0
 for <xen-devel@lists.xenproject.org>; Wed, 27 Aug 2025 01:07:28 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afe9c908414sm377451066b.97.2025.08.27.01.07.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Aug 2025 01:07: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>
X-Inumbo-ID: dfc80a1d-831c-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756282048; x=1756886848; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+kla684A/tyInoa6A1iERRJr90N/NnwDl2EeOUgOAMI=;
        b=WvGDa8qjO5A1g7J4AR3cTQViQCAZXdsmDsn53GAwN1cgzdr6rukOybmW05KDySYF1c
         1+/9rp/wPyY8eJ9lgLK3Lvp5M0at4lpwQEv+uotBRkgww6DotE3q/zUIgj2o735mIyFJ
         y+djAIOku7M4OkkB77rogf0GPI3QhsAnFlfCQxASInhBsgubFdiZwbxEufL7px3jAMZ5
         +MCVyh5JQHsnCWcOgVHT3S+xuj1kLZZQv+l87nGn8SvebpjPlMCIz2yvhogoKimoha2t
         pBhUuS4I4aghr1ruk8I/jqSOLpr7kYOYbGb+fOBHf1OWZBjYKw6+8hJyOQtFsqaSkcKd
         ceJA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756282048; x=1756886848;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+kla684A/tyInoa6A1iERRJr90N/NnwDl2EeOUgOAMI=;
        b=SVxlX2UQYV1aRA+mGgKvXCejOfUci1MiTVvTcKDphSWfbh8f/oiJCPoFZE0eh9DVC0
         PDIhWuiSYqq78boks/O3taPKcfQ+TST0WbB4p0PAYLW+Bb44ylXDYQHy++L2Uj/DALo/
         jT025jWZ1yneC5nfzgiWlaU/DKYWGqHo9Amx14GLOU403DFBdZGBsKH5ooTOGh37tw0x
         +DkW/W+V53uf/q2JzvytSYUn0iLb+DoHzLJN8wwPDisP3PQpDJroYBXnoUBP8oZVaRg5
         QKiUgXRTYpb+54gwg0zSLlPJjD6ENeFw60QZvnRAMHRpyxSOmD2i3x4ux9f5yvbCe7Ww
         R83w==
X-Forwarded-Encrypted: i=1; AJvYcCVb/3/krOLN2zlc2vO1XvHv/QN/3J5Nacubg6SzGUQN3hY+aRAlErQ338HNdSv1LKjfp635F3uLuTY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxAAhxXLLXzzM5ml2JqcyXJUDgzJzImyOv6/65m63elXnkQRsNp
	ASh+9YQDdq77ObWZJ1okrlKakg7OsE9qDw6moslGnOHSJCNkp8EfwbqzYWMH8bUCSA==
X-Gm-Gg: ASbGnctwXnhZkDL3RIajz9nyzIpKme+LIMH6bPRG1Zi1G8Et0SeX5oPMD2oxfjojFsx
	n5G9fSmlPdZHrAo3R6nVJnpbDQYzBeDFiCzTbWqcue0OKzeNX4ni/6XptHT2q6aSVMIxSK0xtws
	YbIkaZopIG2s5PAzAdHD1xq5nQhr31rpFosQwXKy3R2YiYM4ERFD1xnBGAiizf/HDNlyK6j9k0N
	3q7QFT+QgkNkB0tS++Fo1i29uvpim5QKwXOx0tYtSZg7hBxB/0LWyhtpxGNSxvtz++HJH6TI3e4
	B7lfCcpbNrJeoWGnwM1+BNYfMb7Q5pnH/SZzqZweFD6zBAx3uuq4DOHhVxNj71+ercl4rHRylY5
	HvVxSL60hmgZUyBhCPbVD8vwicCxYfqbEuhPgorqUCXer7/w7a8h1mp6j1siOewAoYxCY5HVGke
	k6OYCCSr2cjwYucimE8A==
X-Google-Smtp-Source: AGHT+IHydO1abMKcIYCocZjbHUK8lfaFMfocNR5yfuL5vNsdliwz/DUI3XcuSRcMpBhwxyfHpuQbbw==
X-Received: by 2002:a17:907:720f:b0:afe:b9e3:2a19 with SMTP id a640c23a62f3a-afeb9e337a9mr249184066b.19.1756282048025;
        Wed, 27 Aug 2025 01:07:28 -0700 (PDT)
Message-ID: <dadb4612-15ad-4e67-90fb-7df0067ec95e@suse.com>
Date: Wed, 27 Aug 2025 10:07:26 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH] x86/vhpet: Add option to always fire hpet timer on
 resume
To: Vyacheslav Legoshin <vyacheslav.legoshin@yandex.ru>
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: <faa5eee741a772eba95415ca26f0cdf304486fc3.1756272466.git.vyacheslav.legoshin@yandex.ru>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <faa5eee741a772eba95415ca26f0cdf304486fc3.1756272466.git.vyacheslav.legoshin@yandex.ru>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 27.08.2025 08:01, Vyacheslav Legoshin wrote:
> The following issue was observed on Windows 10 21H2 x64+: when the domain state
> is saved while all cores are executing the 'halt' instruction, and the memory
> save takes a relatively long time (tens of seconds), the HPET counter may
> overflow as follows:
> counter  = 11243f3e4a
> comparator = 910cb70f
> 
> In such cases, the fix implemented in commit
> b144cf45d50b603c2909fc32c6abf7359f86f1aa does not work (because the 'diff' is
> not negative), resulting in the guest VM becoming unresponsive for
> approximately 30 seconds.
> 
> This patch adds an option to always adjust the HPET timer to fire immediately
> after restore.

Thanks for the patch, but issues already start here: There's no Signed-off-by:.

> --- a/docs/misc/xen-command-line.pandoc
> +++ b/docs/misc/xen-command-line.pandoc
> @@ -1461,6 +1461,15 @@ HPET can be disabled by specifying `hpet=0`.
>  
>  Deprecated alternative of `hpet=broadcast`.
>  
> +### hpet_drift_fix (x86)
> +> `= <boolean>`
> +
> +> Default: `false`
> +
> +Always set HPET timer to fire immediately after domain restore.
> +This option can be used to fix unresponsive snapshots with modern x64 Windows
> +systems (21H2+) which use non-periodic timers.

I'm not convinced making this a global option is appropriate. If an option is
needed, it would better be a per-domain setting. Whether an option is needed
in the first place is tbd.

And then, if a global option was used, then please with dashes in favor of
underscores in its name.

> --- a/xen/arch/x86/hvm/hpet.c
> +++ b/xen/arch/x86/hvm/hpet.c
> @@ -11,6 +11,7 @@
>  #include <asm/current.h>
>  #include <asm/hpet.h>
>  #include <asm/mc146818rtc.h>
> +#include <xen/param.h>
>  #include <xen/sched.h>
>  #include <xen/event.h>
>  #include <xen/trace.h>
> @@ -222,6 +223,9 @@ static void cf_check hpet_timer_fired(struct vcpu *v, void *data)
>   * 1/(2^10) second, namely, 0.9765625 milliseconds */
>  #define  HPET_TINY_TIME_SPAN  ((h->stime_freq >> 10) / STIME_PER_HPET_TICK)
>  
> +bool hpet_drift_fix;

static and __ro_after_init.

> @@ -268,11 +272,18 @@ static void hpet_set_timer(HPETState *h, unsigned int tn,
>       * are restoring after migrate, treat any wrap as past since the value
>       * is unlikely to be 'small'.
>       */
> -    if ( (int64_t)diff < 0 )
> -        diff = (timer_is_32bit(h, tn) &&
> -                vhpet_domain(h)->creation_finished &&
> -                (-diff > HPET_TINY_TIME_SPAN))
> -            ? (uint32_t)diff : 0;
> +    if (hpet_drift_fix && !vhpet_domain(h)->creation_finished)

Nit (style): Missing blanks (see e.g. the other if() you're altering).

> +    {
> +        diff = 0;
> +    }

No real need for figure braces here.

The comment ahead of the construct also wants amending / updating.

> +    else
> +    {
> +        if ( (int64_t)diff < 0 )

"else if()" please, reducing the diff quite a bit.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 08:16:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 08:16:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095697.1450607 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urBKP-0004zm-Un; Wed, 27 Aug 2025 08:16:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095697.1450607; Wed, 27 Aug 2025 08:16: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 1urBKP-0004zf-RO; Wed, 27 Aug 2025 08:16:21 +0000
Received: by outflank-mailman (input) for mailman id 1095697;
 Wed, 27 Aug 2025 08:16:20 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Gy2E=3H=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urBKO-0004zZ-FD
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 08:16:20 +0000
Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com
 [2a00:1450:4864:20::634])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1b5f7659-831e-11f0-a32c-13f23c93f187;
 Wed, 27 Aug 2025 10:16:18 +0200 (CEST)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-afcb7a8dd3dso985349266b.3
 for <xen-devel@lists.xenproject.org>; Wed, 27 Aug 2025 01:16: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
 4fb4d7f45d1cf-61caae5fc3fsm1518830a12.51.2025.08.27.01.16.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Aug 2025 01:16: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>
X-Inumbo-ID: 1b5f7659-831e-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756282578; x=1756887378; 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=9IPvwzAlgN/8K1TiFg2f/TJ+g46pFRrkDrVWSadY49U=;
        b=GqO5pHevxjziWucK15LKvp0Ztud/UOgcWnj188RJ116Xch3AgE++Kw6Rs0QJa87XyM
         bYlkkFg0RC6eb1/xoszW/IGczSyO66djBUfCLZGkiqsJWgSh1OX0pGhGPrOkWipi726R
         v3XGZiPf4g7O2m2d0Rz4HsSBH29BVRxaI7KQ27fZFs6Cp5yeuVN0LU+HDEObTKNy8nzB
         hkrIStEWdS1b/SqgdGYAWK0xpwoZXdl5IXT+p+ZvGm0Qkve/UJ9pUAUmmkEU/2tes9Mm
         Wtw6eoMGqn2vY7Bw5NiI+QbdyekW4vjRrj1TeP55pzxB7/DD7f3GRIVjTr0Vrwiv3j40
         U9sw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756282578; x=1756887378;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=9IPvwzAlgN/8K1TiFg2f/TJ+g46pFRrkDrVWSadY49U=;
        b=t/ocNefz4rzYechWYEEN8SnyajkHuA16Xb54daiicHzCMPrd+f5ayxmukw9jUZ2Jh0
         Pw9Xv9cte7NHrfQc8SprEHdQ+t8YKB3J2wD2Et35rUYilmhY+52kPJf9morPnbxHLL3x
         QYe9cT1A9t1/iyMdg7v/UU5NL1SsTfaX9NeHLhaoyggTP/1R6Ib1hYMh2WxfLigKELB5
         AnyZX1/Ec04QBwNd+CqlU7XFY60/g9/KI51V8aTdARvue2kQtFKM3+rIzIVj3rSD8kjg
         ko5X21jmJFutj0uu4//xdO8HZx4QAb+5DEDqh9LXZ5FOBr6J9k5CI273/1Zb/qBXiDK5
         ahGw==
X-Gm-Message-State: AOJu0Yz2QJxC8bUgwrnKB34cw79TXhwdLo6O5A7yualV+fjHtH3WGbyC
	Pa4I+HJssvW+SHHymwDwsPi/H+uxIGLCk9jPXf8vbJqTYTxCSTQEXI9kMS2J3OkFOVqeja4UV2x
	H6/A=
X-Gm-Gg: ASbGncthF501HSKbhVPHCFB5SRXnK16w7SX4zFMU5dWmauhUMAlJqJsExiFLcEK9cKB
	bIq4jnIU7+CND3on999O7/KP9PbjSNtsDg/ODCT1tGtXlKaEDB2H70MpNUzIvSvDxg6+9KwwDKM
	cnLmw+rXlY+IXzMs+Rxjp3XJkZ6y8nyhSRIXCdjfcWF7GxMG8JHQ3qxJr+JrN29FqwdvRn8Uqhu
	5aYf6M+OrAA/6gFp8qHfd6TWErMrRrQ6rmd46R/8yujAxwPtJO9OHruT5h6DeQY6J6M9H8Ew5S7
	NJRGRAqEFJ/CGPJZUTL6tGYwSxc0DcP7p48Db5nEABrdMKw4P/9YOIyiPD7zXhh+X1OVQUvESBt
	q2/MpJKrcqRCYw6MHWJ4cBwN41ieUHfc+M0UEuVQNfJJzOGqmrglxmrAQyzgruCtH24jQdl9UVp
	zJEv+XTv7l9kDFxolrog==
X-Google-Smtp-Source: AGHT+IF7t0KTPA8xBG05FE6OTHMVEYCuQRHSgdRDG+cFr4a3vEPe0vAJD+HkBWc4H+CoC9STpSqxww==
X-Received: by 2002:a17:906:fe48:b0:ae8:fd2d:44b8 with SMTP id a640c23a62f3a-afe2943d5bbmr1521890966b.29.1756282577632;
        Wed, 27 Aug 2025 01:16:17 -0700 (PDT)
Message-ID: <a3c768bc-c99f-484e-9e36-f8e03930496e@suse.com>
Date: Wed, 27 Aug 2025 10:16:16 +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>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] x86/PSR: move CPUID level check
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

At the first (and maybe second) glance the call to setup_clear_cpu_cap()
(which is __init) from psr_cpu_init() (which isn't) looks wrong. The
earlier cpu_has_pqe makes it safe, though. Nevertheless we can do better,
by simply moving the check ahead of the BSP invocation of the function.

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

--- a/xen/arch/x86/psr.c
+++ b/xen/arch/x86/psr.c
@@ -1583,12 +1583,6 @@ static void psr_cpu_init(void)
     if ( !psr_alloc_feat_enabled() || !cpu_has_pqe )
         goto assoc_init;
 
-    if ( boot_cpu_data.cpuid_level < PSR_CPUID_LEVEL_CAT )
-    {
-        setup_clear_cpu_cap(X86_FEATURE_PQE);
-        goto assoc_init;
-    }
-
     socket = cpu_to_socket(cpu);
     info = socket_info + socket;
     if ( info->feat_init )
@@ -1708,6 +1702,9 @@ static int __init cf_check psr_presmp_in
     if ( psr_cpu_prepare() )
         psr_free();
 
+    if ( boot_cpu_data.cpuid_level < PSR_CPUID_LEVEL_CAT )
+        setup_clear_cpu_cap(X86_FEATURE_PQE);
+
     psr_cpu_init();
     if ( psr_cmt_enabled() || psr_alloc_feat_enabled() )
         register_cpu_notifier(&cpu_nfb);


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 08:25:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 08:25:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095708.1450616 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urBTI-0006iX-Oj; Wed, 27 Aug 2025 08:25:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095708.1450616; Wed, 27 Aug 2025 08:25: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 1urBTI-0006iQ-M1; Wed, 27 Aug 2025 08:25:32 +0000
Received: by outflank-mailman (input) for mailman id 1095708;
 Wed, 27 Aug 2025 08:25:31 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=x+iP=3H=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1urBTH-0006iK-Bn
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 08:25:31 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6463107f-831f-11f0-a32c-13f23c93f187;
 Wed, 27 Aug 2025 10:25:30 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by DU0PR03MB9827.eurprd03.prod.outlook.com (2603:10a6:10:449::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Wed, 27 Aug
 2025 08:25:22 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Wed, 27 Aug 2025
 08:25: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>
X-Inumbo-ID: 6463107f-831f-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nNQeogMkGTTHABdNMjKLCBOABmmrcMXmixBNGj0y4lTDyFfihII8E0nBoWCVQUgR2n6lx5usyZFU5o3xiOcmrfrtnIc5NuLXSOTAClHmlyaf7L0GxqDwbwqa1poOYXKk8nch+8oPC1rt9w8M/MZ+TS0jQs5w9HAVdB41jA8A14B4zgNg5EZjPHsMccafs/8RV9/+j+LrH9sFJAjFK7m90PjXMAVARcRWNViK1URI0t8HXaV9OGfYvcy5SAvHBAnopEvPDIoe7M3yr/JaLkC+/eSshFLXpmzJeGV+cLeMB7RVxSYC/yU55DJf5j5mTlgHbxBxas2CYGL/alOw+gOgoQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=X/nRbEc9jFijLoIkO0WvaxDhHbARMZ2c4BVqevboceQ=;
 b=w2t1TVpKDClyFNsT3c+ycM154yUnpoN4E1ImiFCQ4IgBnoE0r+wt6295WES/zsjHUCbwksahLCSFH20+Vr058yoKHfQqVBAEUc0SlXl1ygra4iB47cLwmKzBQtyixiTt8PoB46OfeBcNcyIxlgYglSekX1sjCTELvQ4tguKEPje2O//nALPaJT1j6AU0qkzlWpZNIj7ME9RbhqliSX35MhGg4zMToYuiwko50FL2/O1hReiMisviAuut2ttqnfvLG4xaMEY4nRB+/4kAeZc/tWLXguUj1dBiz3n9vngpGJbCQuHwsoKqCyVuqwy5VV6c2oyuOskR+VkuHturv52ZNQ==
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=X/nRbEc9jFijLoIkO0WvaxDhHbARMZ2c4BVqevboceQ=;
 b=R6dShXGZbscnOfkLA8twEi7WsJlhTKAt9on5sNvTFjMxYf6bSYBl3aJlRF8g80ssO45MXRnSyXTzY+r+YSnlpV+HNr3ULGu7/zedUl6qN+oojp1BUCzUvHg9JBA1bcKn4cb+/eRlo/K0au6qmoBRxmBfNTtPLS5IqZVW+xTnhK0gPTot+j1ppEyStsMF10kvy3zpjJy5Hw+6+aR5oK01EhDuef+gT/ugEYJug+SsZ5Bk/H75vjhW+iUHBZKGDBFwRb+XuNBvG4+6YnDJnncfyMorZ7rs/AQ1bDY1adL34ehqhC1mMVMEivGpN7ipEIpKuUU9PcMji5ooE1s+++Cisg==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"olekstysh@gmail.com" <olekstysh@gmail.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v3 03/11] xen/arm: vgic: implement helper functions for
 virq checks
Thread-Topic: [PATCH v3 03/11] xen/arm: vgic: implement helper functions for
 virq checks
Thread-Index: AQHcFpJ/eek3/DqJlE2eNsEQLkbJqrR2KxyA
Date: Wed, 27 Aug 2025 08:25:21 +0000
Message-ID: <2a924dbf-8ecf-4233-b47d-88b7956d58cd@epam.com>
References: <cover.1756216942.git.leonid_komarianskyi@epam.com>
 <a50e978b0442d737bb2621085e95aa6bee8c506b.1756216943.git.leonid_komarianskyi@epam.com>
 <875xe96ed2.fsf@epam.com>
In-Reply-To: <875xe96ed2.fsf@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: GV2PR03MB8678:EE_|DU0PR03MB9827:EE_
x-ms-office365-filtering-correlation-id: 481b2d2e-25b0-44f7-0a4b-08dde54343de
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?c3dMT25UOGJSbzVDYTNYSHkzZHNQcmswSjhiakNmYXVycS9sY0RTa0Q5V2xt?=
 =?utf-8?B?S1hZd3BYaVNUN2laR0wxOTZ6MCtUVzMzUGhqMEZQbzNZRVhXZisrUEdoZFNR?=
 =?utf-8?B?VTJkNWhId3ZGbjRSWW50aGdkRmpkY1h0MGNhZk5CeDZjeFNFRy9lajdqT05P?=
 =?utf-8?B?MS8xMmZwSFNYQzFFNnRTTEhTcDBWOXIxNkQrZGpDVy91QVA0dGVWVXZnemxi?=
 =?utf-8?B?N2JzNmJWRXNXNnlqUjZqTGRGVStINTJEbHhLeHZtclUvYVFqN0ErcEZ0bUtT?=
 =?utf-8?B?eHozeUJVUmg0clVmdGxKeXpZUFlXY3NOdll3MjVPLzdFSHErdjBXVnkzVEZl?=
 =?utf-8?B?Q1llcURGT3BOdWFkT3Y0VzlmRzg0SkZvNjErcVNWeWNxbURvTWFIV1AvTW5G?=
 =?utf-8?B?ZFVGcUNQQS9nR1JzdTlTVE9NUks3UnVVak4wZlNRb3BmcDFZanpUQ1lqWDBG?=
 =?utf-8?B?alIzMStHOVNkNElxNWRkU2JNN3BMK1M1Z0RuUEN5aHVxd1R6RHkyNjlVNnZQ?=
 =?utf-8?B?WUR6UWpuSm1SSWhIQ21teWFOUVdEN0plWG93STNodDBsa0xyUStwT3paWWR2?=
 =?utf-8?B?UWlJaWFVZGFDVUYvWWVPakx1UEhhVkVESExPcnRlNWljNm54MWhGclcxN3hr?=
 =?utf-8?B?eVRWSzQvZ2xBT25acm54a3luVzNid0x0KzM2OG91dHR4OXZOenFHQnduVWVV?=
 =?utf-8?B?SmgxN2NxMHVrWkVDM0oyVW1tdHZpbEhqWHpNZHFrN0VjQ2s2L2duNUJjWHp5?=
 =?utf-8?B?U1dHZFR6ZnJkRlloWHZDeVhHKzVFbzI3V1prL0htUmNxOGIzcWZvRVlrR0Zn?=
 =?utf-8?B?NHJ6K2pDNTRTbWxmZVBadEV5TjRyOG9QVHJkZWtXTWVRLzlidW0wY1UrZU43?=
 =?utf-8?B?d0Q3eFYyMDNrV1pwRmZoUmtucmhkS3Ixa0JraVJqdGxwSUg2TURKM0RTanBZ?=
 =?utf-8?B?VXNwMzc4b0JBWmVoYTU2a0dKZkxKVWEya0E2VGY0R3NYT1RmNHFEcE02ejNX?=
 =?utf-8?B?azNMdk5nOWE4RjFLS1MwYW02SmxWWkt6UFlCYXBiQWVqM2Y3NUd3TXIvSFpO?=
 =?utf-8?B?ckJ5QXd6VzZ1Q2xnSFpGWWptWmR1Q0lWMW9yTUQ2Sk02TEcyaURGVXcwYVlo?=
 =?utf-8?B?M1ROOXlQRDFOYWZtZDNNOTRGRU54engvVEVDQU9JY0djVm80b2thVnlyOWUv?=
 =?utf-8?B?eDduWDRWWUw3SnE2VjU0ZmxvcmN3M1VPNEs5cFc2ckpRWm5sNnpCQS9kTGlp?=
 =?utf-8?B?VHNVTDFWY2kzelhWSnBZWEZoYW9QQkdtY3kzS1A0K0xrUjY5YnNUWWpURndN?=
 =?utf-8?B?U2xDbm9pOVFQbHkrRjBBbTZtTFd1ZXNPNDE3MjJiOWNULzliS1ZlZWl1dEhK?=
 =?utf-8?B?REF3QVQ3eFozckJyWDB6Wjd5cUJSSmlJNTJjVk1YWU5TWWlKb2dIc25RWVJx?=
 =?utf-8?B?RGdXZlVVOGhaUDFKUm5NZzAxUVExWHZnVkExa0xhNVlSWDVpeGlXc2NlajI0?=
 =?utf-8?B?MGVNdEJXL3lpWk9RVW1jSkdYclJUY1JPRmY1aGdRYzkydjI3Vzk1T0VqeldG?=
 =?utf-8?B?dHlXVlQ2RXpzR0Vna1JnakpvTEhUalhzL3JBaFpOU3ZCWml2SFcxdXl1SzhN?=
 =?utf-8?B?WTFxQW92czk3S1ZHMHcxRWs4c3RjNzAwVTYwRlV0Q01vMnJrbmxRTlptSDFS?=
 =?utf-8?B?UTV3cG5EVHlsWFJjOURobEwwTjFJWFg5V3lqSW1DQ3BYM2FZV0dObk1hSk9p?=
 =?utf-8?B?M2hUNTJmV0h0WXF0ck1KTE8yRWNFdTcwY2RDODJNNFpqOEE3ZHNnTDBpK3k1?=
 =?utf-8?B?N0ZVeVRCN3FYYUxVdngrRkJyc2RGbmtTUlJ0VG1yNWRSZHd0MXJ2cDAveXRB?=
 =?utf-8?B?bFN6SWNmV0JoeDdTRXBSMS9sRDM5aFRIRlFIcGJyMzd2VUhacWdXOVZuWmZu?=
 =?utf-8?B?SmtTckxCRVJxSnJZRXNLOU9zd1RYNkJGc2JxSUNlZ0tnKytjdjJBRjdtOXpp?=
 =?utf-8?B?ZlpodHVON3ZnPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?c3VXbGpjczd1Rno0ZlMvZ3AxQXpWNGFLdW9Lb1o5T2gwSG1WQm5Kd0dOenRV?=
 =?utf-8?B?MlpoanZhNExBWVU1L3c0SXBJb0tlTzZpREQ3MVplUkszVDhGY0pIZDBGcjYw?=
 =?utf-8?B?RmdPZjJ2c1NNZXJoUWk4MXBud2ZZQWxER2JkL2hKNzlqaDh6UUx1c1FvN1d6?=
 =?utf-8?B?bTJ1VityN3dCZXplSkc2bkJPSVZUNTR3YTZKQW9rdjVlckZTRGFxd1k5a2VB?=
 =?utf-8?B?ZjZTS1grTEYydEJHTHZFWUhsbSs0aTIzVHdNNEJXdXJjRElhMFNhbXg4eS8r?=
 =?utf-8?B?Z1RrT0ZRM3VibFp6RUtrZUlUaDBvWDFJZCtaL1pUdVREdkVITjhaQUtRSk9N?=
 =?utf-8?B?aWo3VHc4VzUxVkpJaVRmcEthK252WlFuZnZ5MlovUU5RNGNKTWN6d0tja3Uv?=
 =?utf-8?B?NkJBNjJSelJhN1NTK0ROZjFsODdjM2QzL3lFMzhIcWlyekhicm91WlcxVERr?=
 =?utf-8?B?QnozL2k2bWxUSDlrVUtFdDAwOE5SK2J4QVo3dFV2aEU5NVhGUnF4aVV4V1Iv?=
 =?utf-8?B?NXFtSndZTG1sTGs1b0lONDhTeFlPU3R4eEhXTEU0b3p6S3dJWG5NRHcrYlZP?=
 =?utf-8?B?WEFWUDJLcjlTb1VtMTRxSUhwTUIrUHVBcDF5WnRNNHI2c2w0OWMxc2lxTk5X?=
 =?utf-8?B?TEMvNTJPOWpoa3R2U0RCeUZNdDlLTjlLZlpDRVoxMncwT045Nkl4N2RpZ2Ex?=
 =?utf-8?B?SHh2OFBlVmFwMCtPS1VQSjUvejJzbG0zQ3poaWxMSy84ODhjVlBuUkQ2UVpT?=
 =?utf-8?B?T1pWMUQ5Kzc2M0xUclJ1QnVFWUxMckhTWFp6M0hyRFFMTGU3d2FyQUhvaTJ5?=
 =?utf-8?B?RjAyVjA3M0k4ZzJ5bXA4K2c1L3NoMFRNZk8wMW1DTlcrSmNudkw3S0JBNUZv?=
 =?utf-8?B?eDFYREhuL3dVVlpNSVZQQUI2c0hZbUZxTklhb3dXd21Ib0FNQXZIWjRmUFJN?=
 =?utf-8?B?NHZubVU2ZkNQREhnY3g5VW4wd0NWRTI5Tit0bllONGZaWXRUa0lRVTF6RjhX?=
 =?utf-8?B?ZUJmY2gwVXl1bVV2Rk5uMVdrRnlYVlZLTEpzbUJKLzFuWGFtbjlYQUhFZStN?=
 =?utf-8?B?ME5lc294SlNWSXNpR1FaL2ZRd0RDU3oxeFRvKzZNYS9lV1JlR0QrNEU3amM4?=
 =?utf-8?B?SlBRQ0E4VHBCTE1zczdrSjlPUXV1T0JmTlFEUGdJT1FnL1FLaXFiYXBlZStB?=
 =?utf-8?B?Y2w1UEYzd25nYTBMbEV2UktUR1QreElBa3ZySUxPeS9QMnlwUkpQUkRyd2x1?=
 =?utf-8?B?MXNXdkxNYnlHTE84WTFhcDVHcWRlY0pQZDV0ZDlxeDJpbmlSbzhpd21URDdI?=
 =?utf-8?B?YnVqR0RweE92cUlRdE42TjJDdGUzYTJXMDYrSHhMR2NkazF4TE9idURXdFhG?=
 =?utf-8?B?ZFVKZnRFQ2JCMWNKdmlZaGVNbTdaTVI5U3Rjc1ZqdFpMWnEyWSs3aTZmakxy?=
 =?utf-8?B?dzJhRlJURjI2U1p0L2U5d2QvVm93elhFdHpGYmVSdzQ5clA2MmlhdmY4ZGpn?=
 =?utf-8?B?RS9udTdYK1lmSkpKenhkUzByYmJwS0MreGVhMDhudkw0eGR0Q2pQS1Jid1R1?=
 =?utf-8?B?N1dsVTFTdmtIUGVMdWJjWlVsZm5XRkRBaXFhTnU5ZDBiOE5SUDUzc3BoTnRo?=
 =?utf-8?B?Rm5MaUk2Yk1XVFppKzhKTndRaHNHd0J0MzNIeUJrOUQ3cjRkSUc0aXJqOUtR?=
 =?utf-8?B?U1NNa2h2Z1duSXNSaDRvQWUxdEVGOHhsSHd2cEl0NmNka3FnYmQwMWxUSHhE?=
 =?utf-8?B?d0twYURZQXhRWHIvamZlN0xPT3FESVNQVnF3WmwvRHVYT1lROVJONDZTM0x2?=
 =?utf-8?B?aWVBTGc3RmU1RG92ck9qai83TjMrYW5mZktNcVBXd2l5amRqZDk2SmlmNDNS?=
 =?utf-8?B?dFFESUdNVFlyRlU1TUVzOTJtbkN5alZtVlRZdkdFa1RDRXNydjUyUTdValJr?=
 =?utf-8?B?Z2loVm04M2JWLy9qcVdYWTcyZUVGMlpRb0tzakJwNUZEdHJSWTBGZVYwY1dm?=
 =?utf-8?B?RlhCOUhSaCtWbk91ckpuRHhmNkFrSEF1dVVBSnV3ZXpjZ2xSaDR0Z21LN1p6?=
 =?utf-8?B?OGU0MXc5MkN4YTZFd0xFU1ZlNTZWd0tqY05mZW9MWmRHaFFNajJmS0RDMy8w?=
 =?utf-8?B?SnF2UzVId0JxVDRYUFE0cmVSdkxXaXR4d0o5NnIySDlyMWhOaHJQL1p5bFlo?=
 =?utf-8?Q?ob3rbfy9uZNFKGq8PlESS0Y=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <858AB69E7BD6354ABCBCB85BE3A00B41@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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 481b2d2e-25b0-44f7-0a4b-08dde54343de
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Aug 2025 08:25:22.0297
 (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: OL0pO5RTdsbfsWh24aWLbqWmOEQ33Vow3RKOamj8aNb0AbcyE17wsqfutc0cScIyBUGL53KrAumPZrNN1Ui1yxQXiHJ0WrDCCE0ms29/vh0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB9827

SGVsbG8gVm9sb2R5bXlyLA0KDQpUaGFuayB5b3UgZm9yIHlvdXIgcmV2aWV3IGNvbW1lbnRzLg0K
DQpPbiAyNi4wOC4yNSAyMzowMiwgVm9sb2R5bXlyIEJhYmNodWsgd3JvdGU6DQo+IA0KPiBIaSBM
ZW9uaWQsDQo+IA0KPiANCj4gTGVvbmlkIEtvbWFyaWFuc2t5aSA8TGVvbmlkX0tvbWFyaWFuc2t5
aUBlcGFtLmNvbT4gd3JpdGVzOg0KPiANCj4+IEludHJvZHVjZWQgdHdvIG5ldyBoZWxwZXIgZnVu
Y3Rpb25zIGZvciB2R0lDOiB2Z2ljX2lzX3ZhbGlkX2xpbmUgYW5kDQo+PiB2Z2ljX2lzX3NwaS4g
VGhlIGZ1bmN0aW9ucyBhcmUgc2ltaWxhciB0byB0aGUgbmV3bHkgaW50cm9kdWNlZA0KPj4gZ2lj
X2lzX3ZhbGlkX2xpbmUgYW5kIGdpY19pc19zcGksIGJ1dCB0aGV5IHZlcmlmeSB3aGV0aGVyIGEg
dklSUQ0KPj4gaXMgYXZhaWxhYmxlIGZvciBhIHNwZWNpZmljIGRvbWFpbiwgd2hpbGUgR0lDLXNw
ZWNpZmljIGZ1bmN0aW9ucw0KPj4gdmFsaWRhdGUgSU5USURzIGZvciB0aGUgcmVhbCBHSUMgaGFy
ZHdhcmUuIEZvciBleGFtcGxlLCB0aGUgR0lDIG1heQ0KPj4gc3VwcG9ydCBhbGwgOTkyIFNQSSBs
aW5lcywgYnV0IHRoZSBkb21haW4gbWF5IHVzZSBvbmx5IHNvbWUgcGFydCBvZiB0aGVtDQo+PiAo
ZS5nLiwgNjQwKSwgZGVwZW5kaW5nIG9uIHRoZSBoaWdoZXN0IElSUSBudW1iZXIgZGVmaW5lZCBp
biB0aGUgZG9tYWluDQo+PiBjb25maWd1cmF0aW9uLiBUaGVyZWZvcmUsIGZvciB2R0lDLXJlbGF0
ZWQgY29kZSBhbmQgY2hlY2tzLCB0aGUNCj4+IGFwcHJvcHJpYXRlIGZ1bmN0aW9ucyBzaG91bGQg
YmUgdXNlZC4gQWxzbywgdXBkYXRlZCB0aGUgYXBwcm9wcmlhdGUNCj4+IGNoZWNrcyB0byB1c2Ug
dGhlc2UgbmV3IGhlbHBlciBmdW5jdGlvbnMuDQo+Pg0KPj4gVGhlIHB1cnBvc2Ugb2YgaW50cm9k
dWNpbmcgbmV3IGhlbHBlciBmdW5jdGlvbnMgZm9yIHZHSUMgaXMgZXNzZW50aWFsbHkNCj4+IHRo
ZSBzYW1lIGFzIGZvciBHSUM6IHRvIGF2b2lkIHBvdGVudGlhbCBjb25mdXNpb24gd2l0aCBHSUMt
cmVsYXRlZA0KPj4gY2hlY2tzIGFuZCB0byBjb25zb2xpZGF0ZSBzaW1pbGFyIGNvZGUgaW50byBz
ZXBhcmF0ZSBmdW5jdGlvbnMsIHdoaWNoDQo+PiBjYW4gYmUgbW9yZSBlYXNpbHkgZXh0ZW5kZWQg
YnkgYWRkaXRpb25hbCBjb25kaXRpb25zLCBlLmcuLCB3aGVuDQo+PiBpbXBsZW1lbnRpbmcgZXh0
ZW5kZWQgU1BJIGludGVycnVwdHMuDQo+Pg0KPj4gT25seSB0aGUgdmFsaWRhdGlvbiBjaGFuZ2Ug
aW4gdmdpY19pbmplY3RfaXJxIG1heSBhZmZlY3QgZXhpc3RpbmcNCj4+IGZ1bmN0aW9uYWxpdHks
IGFzIGl0IGN1cnJlbnRseSBjaGVja3Mgd2hldGhlciB0aGUgdklSUSBpcyBsZXNzIHRoYW4gb3IN
Cj4+IGVxdWFsIHRvIHZnaWNfbnVtX2lycXMuIFNpbmNlIElSUSBpbmRleGVzIHN0YXJ0IGZyb20g
MCAod2hlcmUgMzIgaXMgdGhlDQo+PiBmaXJzdCBTUEkpLCB0aGUgY2hlY2sgc2hvdWxkIGJlaGF2
ZSBjb25zaXN0ZW50bHkgd2l0aCBzaW1pbGFyIGxvZ2ljIGluDQo+PiBvdGhlciBwbGFjZXMgYW5k
IHNob3VsZCBjaGVjayBpZiB0aGUgdklSUSBudW1iZXIgaXMgbGVzcyB0aGFuDQo+PiB2Z2ljX251
bV9pcnFzLiBUaGUgcmVtYWluaW5nIGNoYW5nZXMsIHdoaWNoIHJlcGxhY2Ugb3Blbi1jb2RlZCBj
aGVja3MNCj4+IHdpdGggdGhlIHVzZSBvZiB0aGVzZSBuZXcgaGVscGVyIGZ1bmN0aW9ucywgZG8g
bm90IGludHJvZHVjZSBhbnkNCj4+IGZ1bmN0aW9uYWwgY2hhbmdlcywgYXMgdGhlIGhlbHBlciBm
dW5jdGlvbnMgZm9sbG93IHRoZSBjdXJyZW50IHZJUlENCj4+IGluZGV4IHZlcmlmaWNhdGlvbiBs
b2dpYy4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBMZW9uaWQgS29tYXJpYW5za3lpIDxsZW9uaWRf
a29tYXJpYW5za3lpQGVwYW0uY29tPg0KPj4gLS0tDQo+PiBDaGFuZ2VzIGluIFYyOg0KPj4gLSBp
bnRyb2R1Y2VkIHRoaXMgcGF0Y2gNCj4+DQo+PiBDaGFuZ2VzIGluIFYzOg0KPj4gLSByZW5hbWVk
IHZnaWNfaXNfdmFsaWRfaXJxIHRvIHZnaWNfaXNfdmFsaWRfbGluZSBhbmQgdmdpY19pc19zaGFy
ZWRfaXJxDQo+PiAgICB0byB2Z2ljX2lzX3NwaQ0KPj4gLSBhZGRlZCB2Z2ljX2lzX3ZhbGlkX2xp
bmUgaW1wbGVtZW50YXRpb24gZm9yIG5ldy12Z2ljLCBiZWNhdXNlDQo+PiAgICB2Z2ljX2lzX3Zh
bGlkX2xpbmUgaXMgY2FsbGVkIGZyb20gZ2VuZXJpYyBjb2RlLiBJdCBpcyBuZWNlc3NhcnkgdG8g
Zml4DQo+PiAgICB0aGUgYnVpbGQgZm9yIG5ldy12Z2ljLg0KPj4gLSB1cGRhdGVkIGNvbW1pdCBt
ZXNzYWdlDQo+PiAtLS0NCj4+ICAgeGVuL2FyY2gvYXJtL2dpYy5jICAgICAgICAgICAgICB8ICAz
ICstLQ0KPj4gICB4ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vdmdpYy5oIHwgIDcgKysrKysrKw0K
Pj4gICB4ZW4vYXJjaC9hcm0vaXJxLmMgICAgICAgICAgICAgIHwgIDQgKystLQ0KPj4gICB4ZW4v
YXJjaC9hcm0vdmdpYy5jICAgICAgICAgICAgIHwgMTAgKysrKysrKystLQ0KPj4gICB4ZW4vYXJj
aC9hcm0vdmdpYy92Z2ljLmMgICAgICAgIHwgIDUgKysrKysNCj4+ICAgNSBmaWxlcyBjaGFuZ2Vk
LCAyMyBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQ0KPj4NCj4+IGRpZmYgLS1naXQgYS94
ZW4vYXJjaC9hcm0vZ2ljLmMgYi94ZW4vYXJjaC9hcm0vZ2ljLmMNCj4+IGluZGV4IDkyMjBlZWY2
ZWEuLmI4ODIzN2NjZGEgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vYXJjaC9hcm0vZ2ljLmMNCj4+ICsr
KyBiL3hlbi9hcmNoL2FybS9naWMuYw0KPj4gQEAgLTEzMyw4ICsxMzMsNyBAQCBpbnQgZ2ljX3Jv
dXRlX2lycV90b19ndWVzdChzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgdmlycSwNCj4+
ICAgDQo+PiAgICAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoJmRlc2MtPmxvY2spKTsNCj4+ICAg
ICAgIC8qIENhbGxlciBoYXMgYWxyZWFkeSBjaGVja2VkIHRoYXQgdGhlIElSUSBpcyBhbiBTUEkg
Ki8NCj4+IC0gICAgQVNTRVJUKHZpcnEgPj0gMzIpOw0KPj4gLSAgICBBU1NFUlQodmlycSA8IHZn
aWNfbnVtX2lycXMoZCkpOw0KPj4gKyAgICBBU1NFUlQodmdpY19pc19zcGkoZCwgdmlycSkpOw0K
Pj4gICAgICAgQVNTRVJUKCFpc19scGkodmlycSkpOw0KPj4gICANCj4+ICAgICAgIHJldCA9IHZn
aWNfY29ubmVjdF9od19pcnEoZCwgTlVMTCwgdmlycSwgZGVzYywgdHJ1ZSk7DQo+PiBkaWZmIC0t
Z2l0IGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3ZnaWMuaCBiL3hlbi9hcmNoL2FybS9pbmNs
dWRlL2FzbS92Z2ljLmgNCj4+IGluZGV4IDM1YzBjNmE4YjAuLjlmNDM3ZTk4MzggMTAwNjQ0DQo+
PiAtLS0gYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vdmdpYy5oDQo+PiArKysgYi94ZW4vYXJj
aC9hcm0vaW5jbHVkZS9hc20vdmdpYy5oDQo+PiBAQCAtMzM1LDYgKzMzNSwxMyBAQCBleHRlcm4g
dm9pZCB2Z2ljX2NoZWNrX2luZmxpZ2h0X2lycXNfcGVuZGluZyhzdHJ1Y3QgdmNwdSAqdiwNCj4+
ICAgLyogRGVmYXVsdCBudW1iZXIgb2YgdkdJQyBTUElzLiAzMiBhcmUgc3Vic3RyYWN0ZWQgdG8g
Y292ZXIgbG9jYWwgSVJRcy4gKi8NCj4+ICAgI2RlZmluZSBWR0lDX0RFRl9OUl9TUElTIChtaW4o
Z2ljX251bWJlcl9saW5lcygpLCBWR0lDX01BWF9JUlFTKSAtIDMyKQ0KPj4gICANCj4+ICtleHRl
cm4gYm9vbCB2Z2ljX2lzX3ZhbGlkX2xpbmUoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50
IHZpcnEpOw0KPiANCj4gV2h5IHlvdSBjYW4ndCBoYXZlIGlubGluZSBpbXBsZW1lbnRhdGlvbiBm
b3IgdmdpY19pc192YWxpZF9saW5lKCkgcmlnaHQgaGVyZT8NCj4gDQoNCkluaXRpYWxseSwgSSB0
cmllZCB0byBpbXBsZW1lbnQgYW4gaW5saW5lIGZ1bmN0aW9uIGluIHRoZSBoZWFkZXIsIGJ1dCBp
dCANCmxlZCB0byBhIGJ1aWxkIGVycm9yOg0KDQogPiBJbiBmaWxlIGluY2x1ZGVkIGZyb20gLi9h
cmNoL2FybS9pbmNsdWRlL2FzbS9kb21haW4uaDoxMSwNCiA+ICAgICAgICAgICAgICAgICAgZnJv
bSAuL2luY2x1ZGUveGVuL2RvbWFpbi5oOjE2LA0KID4gICAgICAgICAgICAgICAgICBmcm9tIC4v
aW5jbHVkZS94ZW4vc2NoZWQuaDoxMSwNCiA+ICAgICAgICAgICAgICAgICAgZnJvbSBhcmNoL2Fy
bS9hcm02NC9hc20tb2Zmc2V0cy5jOjk6DQogPiAuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3ZnaWMu
aDogSW4gZnVuY3Rpb24g4oCYdmdpY19pc192YWxpZF9saW5l4oCZOg0KID4gLi9hcmNoL2FybS9p
bmNsdWRlL2FzbS92Z2ljLmg6MzMwOjM3OiBlcnJvcjogaW52YWxpZCB1c2Ugb2YgdW5kZWZpbmVk
IA0KID4gdHlwZSDigJhzdHJ1Y3QgZG9tYWlu4oCZDQogPiAgIDMzMCB8ICNkZWZpbmUgdmdpY19u
dW1faXJxcyhkKSAgICAgICAgKChkKS0+YXJjaC52Z2ljLm5yX3NwaXMgKyAzMikNCiA+ICAgICAg
IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn4NCiA+IC4vYXJjaC9hcm0v
aW5jbHVkZS9hc20vdmdpYy5oOjM0MDoxOTogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIA0K
4oCYdmdpY19udW1faXJxc+KAmQ0KID4gICAzNDAgfCAgICAgcmV0dXJuIHZpcnEgPCB2Z2ljX251
bV9pcnFzKGQpOw0KICAgICAgIHwgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fg0KID4g
bWFrZVsyXTogKioqIFtidWlsZC5tazo0NTogYXNtLW9mZnNldHMuc10gRXJyb3IgMQ0KDQpUaGlz
IG9jY3VycyBiZWNhdXNlIHRoZSBhcmNoX2RvbWFpbiBzdHJ1Y3R1cmUsIHdoaWNoIGlzIGRlZmlu
ZWQgaW4gDQphc20vZG9tYWluLmgsIHJlcXVpcmVzIHRoZSB2Z2ljIGhlYWRlciAoYXMgaXQgY29u
dGFpbnMgdGhlIHZnaWNfZGlzdCANCnN0cnVjdHVyZSBmaWVsZCksIGFuZCB0aGUgc3RydWN0IGRv
bWFpbiAoZGVmaW5lZCBpbiB4ZW4vc2NoZWQuaCkgDQpyZXF1aXJlcyB4ZW4vZG9tYWluLmggdG8g
dXNlIHRoZSBhcmNoX2RvbWFpbiBzdHJ1Y3R1cmUuIEFzIGEgcmVzdWx0LCANCndoZW4gYXR0ZW1w
dGluZyB0byBpbmxpbmUgdGhlIHZnaWNfaXNfdmFsaWRfbGluZSBpbiB0aGUgdmdpYyBoZWFkZXIs
IHRoZSANCnN0cnVjdCBkb21haW4gaXMgbm90IHlldCBkZWZpbmVkIGF0IHRoZSBjb21waWxhdGlv
biB0aW1lIG9mIHRoZSANCmZ1bmN0aW9uLCB3aGljaCBsZWQgdG8gdGhlIGZvbGxvd2luZyBidWls
ZCBlcnJvci4gQWxzbywgdGhlcmUgaXMgbm8gDQphcHByb3ByaWF0ZSBjb21tb24gLmMgZmlsZSAo
d2l0aCB0aGUgdmdpYyBwcmVmaXgpIHRvIHBsYWNlIHRoZSBhY3R1YWwgDQpmdW5jdGlvbiBpbXBs
ZW1lbnRhdGlvbiBmb3IgYm90aCBjb25maWd1cmF0aW9ucyBpbiBhIHNpbmdsZSBsb2NhdGlvbi4N
Cg0KQnkgdGhlIHdheSwgc29tZSBmdW5jdGlvbiBpbXBsZW1lbnRhdGlvbnMgdXNlIHRoZSBzYW1l
IGFwcHJvYWNoIChlLmcuLCANCnZnaWNfcmVzZXJ2ZV92aXJxLCB3aGljaCBjdXJyZW50bHkgaGFz
IHR3byBpZGVudGljYWwgY29waWVzIC0gb25lIGZvciANCnZnaWMgYW5kIG9uZSBmb3IgbmV3LXZn
aWMpLg0KDQpQZXJoYXBzIEkgbWlzc2VkIHNvbWV0aGluZywgYnV0IGl0IHNlZW1zIGxpa2UgdGhp
cyBpcyB0aGUgbW9zdCBzdWl0YWJsZSANCnNvbHV0aW9uIGZvciB0aGlzLi4NCg0KPj4gKw0KPj4g
K3N0YXRpYyBpbmxpbmUgYm9vbCB2Z2ljX2lzX3NwaShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25l
ZCBpbnQgdmlycSkNCj4+ICt7DQo+PiArICAgIHJldHVybiAodmlycSA+PSBOUl9MT0NBTF9JUlFT
ICYmIHZnaWNfaXNfdmFsaWRfbGluZShkLCB2aXJxKSk7DQo+IA0KPiBZb3UgZG9uJ3QgbmVlZCBw
YXJlbnRoZXNlcyBoZXJlLg0KPiANCg0KSSB3aWxsIHJlbW92ZSB0aGVtIGluIFY0Lg0KDQo+PiAr
fQ0KPj4gKw0KPj4gICAvKg0KPj4gICAgKiBBbGxvY2F0ZSBhIGd1ZXN0IFZJUlENCj4+ICAgICog
IC0gc3BpID09IDAgPT4gYWxsb2NhdGUgYSBQUEkuIEl0IHdpbGwgYmUgdGhlIHNhbWUgb24gZXZl
cnkgdkNQVQ0KPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9pcnEuYyBiL3hlbi9hcmNoL2Fy
bS9pcnEuYw0KPj4gaW5kZXggN2RkNWEyYTQ1My4uYjhlY2NmYzkyNCAxMDA2NDQNCj4+IC0tLSBh
L3hlbi9hcmNoL2FybS9pcnEuYw0KPj4gKysrIGIveGVuL2FyY2gvYXJtL2lycS5jDQo+PiBAQCAt
NDQyLDcgKzQ0Miw3IEBAIGludCByb3V0ZV9pcnFfdG9fZ3Vlc3Qoc3RydWN0IGRvbWFpbiAqZCwg
dW5zaWduZWQgaW50IHZpcnEsDQo+PiAgICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOw0KPj4gICAg
ICAgaW50IHJldHZhbCA9IDA7DQo+PiAgIA0KPj4gLSAgICBpZiAoIHZpcnEgPj0gdmdpY19udW1f
aXJxcyhkKSApDQo+PiArICAgIGlmICggIXZnaWNfaXNfdmFsaWRfbGluZShkLCB2aXJxKSApDQo+
PiAgICAgICB7DQo+PiAgICAgICAgICAgcHJpbnRrKFhFTkxPR19HX0VSUg0KPj4gICAgICAgICAg
ICAgICAgICAidGhlIHZJUlEgbnVtYmVyICV1IGlzIHRvbyBoaWdoIGZvciBkb21haW4gJXUgKG1h
eCA9ICV1KVxuIiwNCj4+IEBAIC01NjAsNyArNTYwLDcgQEAgaW50IHJlbGVhc2VfZ3Vlc3RfaXJx
KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCB2aXJxKQ0KPj4gICAgICAgaW50IHJldDsN
Cj4+ICAgDQo+PiAgICAgICAvKiBPbmx5IFNQSXMgYXJlIHN1cHBvcnRlZCAqLw0KPj4gLSAgICBp
ZiAoIHZpcnEgPCBOUl9MT0NBTF9JUlFTIHx8IHZpcnEgPj0gdmdpY19udW1faXJxcyhkKSApDQo+
PiArICAgIGlmICggIXZnaWNfaXNfc3BpKGQsIHZpcnEpICkNCj4+ICAgICAgICAgICByZXR1cm4g
LUVJTlZBTDsNCj4+ICAgDQo+PiAgICAgICBkZXNjID0gdmdpY19nZXRfaHdfaXJxX2Rlc2MoZCwg
TlVMTCwgdmlycSk7DQo+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3ZnaWMuYyBiL3hlbi9h
cmNoL2FybS92Z2ljLmMNCj4+IGluZGV4IGM1NjNiYTkzYWYuLjJiYmY0ZDk5YWEgMTAwNjQ0DQo+
PiAtLS0gYS94ZW4vYXJjaC9hcm0vdmdpYy5jDQo+PiArKysgYi94ZW4vYXJjaC9hcm0vdmdpYy5j
DQo+PiBAQCAtMjQsNiArMjQsMTIgQEANCj4+ICAgI2luY2x1ZGUgPGFzbS9naWMuaD4NCj4+ICAg
I2luY2x1ZGUgPGFzbS92Z2ljLmg+DQo+PiAgIA0KPj4gKw0KPj4gK2Jvb2wgdmdpY19pc192YWxp
ZF9saW5lKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCB2aXJxKQ0KPiANCj4gSW1wbGVt
ZW50YXRpb24gb2YgdGhpcyBmdW5jdGlvbiBoZXJlIGluIGZvciBuZXcgdmdpYyBpcyBiYXNpY2Fs
bHkgdGhlDQo+IHNhbWUgYW5kIGRlcGVuZHMgb25seSBvbiB2Z2ljX251bV9pcnFzKCkgd2hpY2gg
aXMgbWFjcm8gZGVmaW5lZCBpbg0KPiB2Z2ljLmggYW5kIHVzZWQgYnkgYm90aCBpbXBsZW1lbnRh
dGlvbnMuDQo+IA0KPj4gK3sNCj4+ICsgICAgcmV0dXJuIHZpcnEgPCB2Z2ljX251bV9pcnFzKGQp
Ow0KPj4gK30NCj4+ICsNCj4+ICAgc3RhdGljIGlubGluZSBzdHJ1Y3QgdmdpY19pcnFfcmFuayAq
dmdpY19nZXRfcmFuayhzdHJ1Y3QgdmNwdSAqdiwNCj4+ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgcmFuaykNCj4+ICAgew0K
Pj4gQEAgLTU4Miw3ICs1ODgsNyBAQCB2b2lkIHZnaWNfaW5qZWN0X2lycShzdHJ1Y3QgZG9tYWlu
ICpkLCBzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgaW50IHZpcnEsDQo+PiAgICAgICBpZiAoICF2
ICkNCj4+ICAgICAgIHsNCj4+ICAgICAgICAgICAvKiBUaGUgSVJRIG5lZWRzIHRvIGJlIGFuIFNQ
SSBpZiBubyB2Q1BVIGlzIHNwZWNpZmllZC4gKi8NCj4+IC0gICAgICAgIEFTU0VSVCh2aXJxID49
IDMyICYmIHZpcnEgPD0gdmdpY19udW1faXJxcyhkKSk7DQo+PiArICAgICAgICBBU1NFUlQodmdp
Y19pc19zcGkoZCwgdmlycSkpOw0KPj4gICANCj4+ICAgICAgICAgICB2ID0gdmdpY19nZXRfdGFy
Z2V0X3ZjcHUoZC0+dmNwdVswXSwgdmlycSk7DQo+PiAgICAgICB9Ow0KPj4gQEAgLTY1OSw3ICs2
NjUsNyBAQCBib29sIHZnaWNfZW11bGF0ZShzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncywgdW5p
b24gaHNyIGhzcikNCj4+ICAgDQo+PiAgIGJvb2wgdmdpY19yZXNlcnZlX3ZpcnEoc3RydWN0IGRv
bWFpbiAqZCwgdW5zaWduZWQgaW50IHZpcnEpDQo+PiAgIHsNCj4+IC0gICAgaWYgKCB2aXJxID49
IHZnaWNfbnVtX2lycXMoZCkgKQ0KPj4gKyAgICBpZiAoICF2Z2ljX2lzX3ZhbGlkX2xpbmUoZCwg
dmlycSkgKQ0KPj4gICAgICAgICAgIHJldHVybiBmYWxzZTsNCj4+ICAgDQo+PiAgICAgICByZXR1
cm4gIXRlc3RfYW5kX3NldF9iaXQodmlycSwgZC0+YXJjaC52Z2ljLmFsbG9jYXRlZF9pcnFzKTsN
Cj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vdmdpYy92Z2ljLmMgYi94ZW4vYXJjaC9hcm0v
dmdpYy92Z2ljLmMNCj4+IGluZGV4IDZjYWJkMDQ5NmQuLmIyYzBlMTg3M2EgMTAwNjQ0DQo+PiAt
LS0gYS94ZW4vYXJjaC9hcm0vdmdpYy92Z2ljLmMNCj4+ICsrKyBiL3hlbi9hcmNoL2FybS92Z2lj
L3ZnaWMuYw0KPj4gQEAgLTcxOCw2ICs3MTgsMTEgQEAgYm9vbCB2Z2ljX3Jlc2VydmVfdmlycShz
dHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgdmlycSkNCj4+ICAgICAgIHJldHVybiAhdGVz
dF9hbmRfc2V0X2JpdCh2aXJxLCBkLT5hcmNoLnZnaWMuYWxsb2NhdGVkX2lycXMpOw0KPj4gICB9
DQo+PiAgIA0KPj4gK2Jvb2wgdmdpY19pc192YWxpZF9saW5lKHN0cnVjdCBkb21haW4gKmQsIHVu
c2lnbmVkIGludCB2aXJxKQ0KPj4gK3sNCj4+ICsgICAgcmV0dXJuIHZpcnEgPCB2Z2ljX251bV9p
cnFzKGQpOw0KPj4gK30NCj4gDQo+PiArDQo+PiAgIGludCB2Z2ljX2FsbG9jYXRlX3ZpcnEoc3Ry
dWN0IGRvbWFpbiAqZCwgYm9vbCBzcGkpDQo+PiAgIHsNCj4+ICAgICAgIGludCBmaXJzdCwgZW5k
Ow0KPiANCg0KQmVzdCByZWdhcmRzLA0KTGVvbmlkDQo=


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 08:33:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 08:33:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095723.1450626 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urBb4-0008WM-KP; Wed, 27 Aug 2025 08:33:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095723.1450626; Wed, 27 Aug 2025 08:33: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 1urBb4-0008WF-HP; Wed, 27 Aug 2025 08:33:34 +0000
Received: by outflank-mailman (input) for mailman id 1095723;
 Wed, 27 Aug 2025 08:33:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Gy2E=3H=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urBb2-0008W5-De
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 08:33:32 +0000
Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com
 [2a00:1450:4864:20::532])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 81fe84e7-8320-11f0-b898-0df219b8e170;
 Wed, 27 Aug 2025 10:33:29 +0200 (CEST)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-619487c8865so1383926a12.1
 for <xen-devel@lists.xenproject.org>; Wed, 27 Aug 2025 01:33: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
 4fb4d7f45d1cf-61c3119f6f9sm8747417a12.3.2025.08.27.01.33.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Aug 2025 01:33: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>
X-Inumbo-ID: 81fe84e7-8320-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756283608; x=1756888408; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=80uT325EDtrAKgyiUnqHrTQGzz0robfPrk5P2uPWnAw=;
        b=S5BiBV+Ggu70rkq5pguwDYGHwD1fxd6RFk/xxZp6yTEFeQjFmY4QNCcXcsIOAIVk9X
         irS27FpmLpXBiUZXhpqQk2mko0RdRIyD7l0ikDSLhzBPgp8YVtjD6o+/2Z+z1hkaPnqm
         f+g8gR9jhj27kXKjvA9ZW5v6poUjcuJEub1e/5Q0EXGUl86ukiji2VkO7u1Q1iQbl+Mm
         jduhaXBr+MubndoQoER/LPCIrqMw0/6P5Imvl/QeP6e2pRGx195AYDxyELvj1c+pHRlg
         +nek2km5n9jAzx72oSnfflTgAKofO1el+C1d3KXyQIofr5C5rcb3EUqgBowzgE6FoBHm
         YLoQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756283608; x=1756888408;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=80uT325EDtrAKgyiUnqHrTQGzz0robfPrk5P2uPWnAw=;
        b=wb1ecXv6aLT+xh9X7tvSp6j1CCjImNI6O6D7ojbiMLZX6BtAtvVf0VB5C/Pw2X8ig0
         KGQ2FKbH0QUebfoFsEo4sUK3UTUTCRNmidmqe9IB5HaQYkDz8dexVfAS/SansiO0qLPv
         aiCb4lNG6/Cqv1vSDowTebwSnibQ9zo1CJEMQvc3dSU/29y5vL6DKoMSaSnZI8shDvDE
         Cmr41ycr+WDMCYFl9e4bHrALoTHZza/anPoq9AKhFgcPWzOynLfa+lyAhY2WOy0D2ZEQ
         uKFBbyt5hPdo3MZihYqv6eZuDzvTYqNNbt+KF2gwWRi67xoTHqPB54dOXmnggbeuwGhu
         H8BA==
X-Forwarded-Encrypted: i=1; AJvYcCUyFFrd/JJstHWERrop+0KXwQFRqsaMviTM6o/PufmcZ+xT1QHQ+dUunTDXQ/s5lhEgxWHck9uSwTg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxZoAxi2ZhmiCNGeJMalQjrEo2O4Kt0uxQ28eRt87v3jUe7lSoC
	9oUWndALmxshBWacXqLfD/exNslz+qhpZWQDglG9KlajaJbJeDOpRoJwAVsoJfhPcQ==
X-Gm-Gg: ASbGncvUASSnNBSHAZrlgNHiR8fM+qMZOZ64k8R0q0Vc+Lp3EojEo8YiL3crhxMDsLV
	Mq6TCYJZaWQ+bWbhTI6pOMmSPambqr0bZiNmmsRXXsOIduC3pH93HkwrosT2XD8dxvYXZPnGdt3
	jz1aee4a4fgQOyvEz2JXCJ8+qdWVv5BAowi0F8szfZthwpYgnuYjoSqgN76Xp9aa+3d/aF+0jnM
	JHUIMisWoVNEhRrXfDrwwrsqBZmmz8YmXnXTBGPz6fwbk/qBbHttjRrv5kIbc+g1taqSS7Qc5Lu
	KYhPqR0tOP01dHGmQbRfgL++LBR8iaWAE1HQkQ59/ZXl6O6C/W8S12TNg+NBSi0ObVya/EzRLbY
	Gmji75ZHihAXVbgLEt3Rfw7uobMQ5P3d2hJArOstUbxGYkVjXfW/zcfML7fQTKfdnpXbqUqpsuD
	zn9Hiuo9ASq1/Rrcdf2w==
X-Google-Smtp-Source: AGHT+IGUdtoCGTcO+32nQk8uBvDUblzLKYJ268psbKWwAbw+e//v4pT/LvABW5U86YyQ+f+oubVjnw==
X-Received: by 2002:a17:906:4790:b0:afe:94d7:7283 with SMTP id a640c23a62f3a-afeafeccdf0mr441002666b.32.1756283608555;
        Wed, 27 Aug 2025 01:33:28 -0700 (PDT)
Message-ID: <3a116cdd-fa79-40a6-82d1-3c1c88044a37@suse.com>
Date: Wed, 27 Aug 2025 10:33:27 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 2/4] hvmloader: fix SMBIOS table length checks
To: =?UTF-8?Q?Petr_Bene=C5=A1?= <w1benny@gmail.com>
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: <cover.1755987697.git.w1benny@gmail.com>
 <58f42aaaf460c33d9d0935d670aab9f54eb184b8.1755987697.git.w1benny@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: <58f42aaaf460c33d9d0935d670aab9f54eb184b8.1755987697.git.w1benny@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 24.08.2025 00:26, Petr BeneÅ¡ wrote:
> From: Petr BeneÅ¡ <w1benny@gmail.com>
> 
> SMBIOS specification dictates that tables should have a minimal length.
> This commit introduces further validation for user-input SMBIOS tables.
> 
> As per SMBIOS Reference Specification:
> * Type 0: For version 2.3 and later implementations, the length is at least 14h
> * Type 1: 1Bh for 2.4 and later
> * Type 2: at least 08h
> * Type 3: 0Dh for version 2.1 and later
> * Type 11: 5h (+ strings)
> * Type 22: 1Ah (+ strings)
> * Type 39: a minimum of 10h
> 
> Notably, this also fixes previously incorrect check for chassis handle in
> smbios_type_2_init. Chassis handle is a WORD, therefore, the condition now
> correctly checks for >= 13 instead of > 13.
> 
> hvmloader currently implements version 2.4
> 
> Furthermore, this commit introduces smbios_pt_copy helper function to substitute
> previously repeating pattern of locating the struct in physical memory (via
> get_smbios_pt_struct), checking the length and copying it into SMBIOS region.

I've added
Fixes: 4d23036e7096 ("HVM firmware passthrough SMBIOS processing")
here.

Jan

> Signed-off-by: Petr BeneÅ¡ <w1benny@gmail.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>




From xen-devel-bounces@lists.xenproject.org Wed Aug 27 09:02:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 09:02:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095739.1450636 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urC31-0004Dp-Q8; Wed, 27 Aug 2025 09:02:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095739.1450636; Wed, 27 Aug 2025 09:02:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urC31-0004Di-Mi; Wed, 27 Aug 2025 09:02:27 +0000
Received: by outflank-mailman (input) for mailman id 1095739;
 Wed, 27 Aug 2025 09:02:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qxfF=3H=epam.com=Oleksii_Moisieiev@srs-se1.protection.inumbo.net>)
 id 1urC30-0004Dc-I4
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 09:02:26 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8c3308bf-8324-11f0-b898-0df219b8e170;
 Wed, 27 Aug 2025 11:02:24 +0200 (CEST)
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com (2603:10a6:102:32e::21)
 by AS8PR03MB7923.eurprd03.prod.outlook.com (2603:10a6:20b:426::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Wed, 27 Aug
 2025 09:02:20 +0000
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::f12d:7394:bbe3:dfc]) by PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::f12d:7394:bbe3:dfc%6]) with mapi id 15.20.9052.014; Wed, 27 Aug 2025
 09:02: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>
X-Inumbo-ID: 8c3308bf-8324-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=v8SHMNKOu9HTR2edlr4Yf1kTrht1mscU0v8L2XkN92qMlXM24Teu0WrK/YV2vHCJWlV11o+ruuSEVpoHU073T6erglX2B6CkhTQbj3PPbg9aYZlQ1joV0Ek7fw262HD7BG5oA+6hC9Vum9PUCr/LWc8OOW3qts+EmacTvpR8XLiOC7TCS07ka4LXDUEcQsHNs2pI1E2suJyqkFPid9QDyOD32XFfm9+LXUhPe7wuXiu+4VYbwrATv5dgUeBDRL/Exti8XY4xmbrEHXCZgy4ZUf7J5yvffgCjLoCYc6ybsVW3LwBcB4dMNmSKgt3mI0poiVo3+AFfvnp9WoOz5BdOkg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=eVRJD/FmGe2MSXvM4mkEiVtZBLzPpImx5UumxDWy7w0=;
 b=pEGI19heIww3+61Brfw0jhzgD9cOszP5icPW9CZsPDago43qxT3/m6jX7LjlVxYIOAFgKHEiZnSQeLFwnb453C6SwEpvB7pYoCITtMomddsvYqPtOBiJu4EgcEdCqnvHDtRkyBrSeot0AC4dn7ie1SlmU7ekWHyEjRqPIaKF77v2yQgDro9i5ozVN0KgCNC23ziIB4qambuZTIUBVkJk/qc9tlM4aJlFFVYZ304+cKyyFYwC03PiDedtelZfg8Vf2MZdBOALCGaC3mrBWbiwXnp+hz4yZ5v/+Dsf7XsvbRj4B8H+ycv381OKWWI5e+dwniXp+EfBxZ/aebvyX7Robg==
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=eVRJD/FmGe2MSXvM4mkEiVtZBLzPpImx5UumxDWy7w0=;
 b=gXW42/clk2FByMdmWhH1h4RA5Pu5jR+KW6YTgVJ8HekOhP6WZx/wGxiv3dz8CnBBfqgS6EXiw3tV6HGrmw259Z4zIBx0stmv+ZdhgCi5a2vqRKTbbO+3lyVZNHLOT4FjF+c8jp2sjy8IdnEw2BxqwrpYYcaOTBdTYh7+zUzd9LQC79DtELP+xOZwm42JamjRILbot+qrus6Th+JwP8GiNwz1xl/aLGTA+NIA1NT1j6MSKfWe6JsueZ5Uyz61Sjhj75p5FiX8pGa4ikpVKlZO630L42lQr2t5PNq53oV7YyZK1fPyaKQCVSa4+K1Bb+glcs/2qG2pBg3FXaIV4d0Y3Q==
From: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
To: Stefano Stabellini <sstabellini@kernel.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Bertrand Marquis <bertrand.marquis@arm.com>, Jan
 Beulich <jbeulich@suse.com>, Juergen Gross <jgross@suse.com>, Julien Grall
	<julien@xen.org>, Michal Orzel <michal.orzel@amd.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Grygorii Strashko
	<grygorii_strashko@epam.com>
Subject: Re: [RFC PATCH v5 02/10] xen/arm: scmi-smc: update to be used under
 sci subsystem
Thread-Topic: [RFC PATCH v5 02/10] xen/arm: scmi-smc: update to be used under
 sci subsystem
Thread-Index: AQHb+v2VN6PNmY5o9E6echLDtYWg47RvkxgAgAbZdoA=
Date: Wed, 27 Aug 2025 09:02:20 +0000
Message-ID: <1f64aa13-d9d3-4b58-9581-a45f7173430b@epam.com>
References: <cover.1753184487.git.oleksii_moisieiev@epam.com>
 <a6a538ca4c02483e745f18db4f74504dad525fe6.1753184487.git.oleksii_moisieiev@epam.com>
 <alpine.DEB.2.22.394.2508221709020.2743087@ubuntu-linux-20-04-desktop>
In-Reply-To:
 <alpine.DEB.2.22.394.2508221709020.2743087@ubuntu-linux-20-04-desktop>
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: PAVPR03MB8946:EE_|AS8PR03MB7923:EE_
x-ms-office365-filtering-correlation-id: 421607be-2b82-4d9d-6a48-08dde5486dfc
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|7416014|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?blVzd0I5Smh1OFBKdzNqYXR0bWhiK01DcHdhTXAvSno2UnRkQnVZQ0NVQk0z?=
 =?utf-8?B?elBEVHhHcVgyRERadWZZK3dlam8zQVE2L1RvZTcxRkt4cFI3N2hiblJvOFB2?=
 =?utf-8?B?alFlQkhleXozT2EyTFlCaVpNTmxQRit6VE43MGU2bkM4S05raHZ3dlA1dmk0?=
 =?utf-8?B?cEZCbmVZVFhPYy9lMzFuKzhRUzhqMm9pUXhNUVI0aStuN3AwMWNMTy9Vb0Yy?=
 =?utf-8?B?a1F0TzUvRFBYYXR0SWRJR2RIQUpsUGRoUk5FMDVTUW9KdzhBZVowMExIa2t2?=
 =?utf-8?B?aEhEM3h1cGUwb25vbG54b3ZyZjlZeGZZbzBHVm54TGdJcDN4R2VMa1RIZGR3?=
 =?utf-8?B?RnBNSzNaUEQ3UUpPS2RFRHhQSkVwZFp0aVVxaTUwcEtxdWtxVE1SZ2dJM1li?=
 =?utf-8?B?cUlwSEtPS09VM2sxUjVJWW5MeURHN2UrWFY0RmU0aDZsWkh1ZEg1WTJxbC9X?=
 =?utf-8?B?aTZKZ09FK0JyT1RlSEdjUFAvOEdOa0dOU1M5VnhBdTBtZC9EdWRFWFh4bVpK?=
 =?utf-8?B?dS8zcy9rRUF5dnVZSCtEYzkrcG9abE5KNGVvSzBPRFdmcGduM3JCY1lYV1BZ?=
 =?utf-8?B?cjZSTXlvTTRRQ3JhWUlCZHVMeWw1aUFvOXYrTThqakZLRmJPR0d3L251dnFy?=
 =?utf-8?B?NWxjZTRieU01UGFnV1lzdlh2TmdBdWxHRjloNmZ5YUcwUW10QlRGQ0lwLytw?=
 =?utf-8?B?V0tWMEp0WHJ1bEFEbkpXRDBLOEhvVzRaK3lKQ2UrK2t2czF4Zm1yR2UzZHMv?=
 =?utf-8?B?alI5NExMTlEyQXRoc0g0UEdnV054WlZNWUZkelgyZXJiQ1ZhT2Vac2hWSkJm?=
 =?utf-8?B?bW9tby9EQlpUM0NCMkhGSGcwQzNZdzlSbVZQVFRjeU1nV3NoaVJxazBEV1Fk?=
 =?utf-8?B?ZGYvcjgxaHgzb1BkcWtUc2NIVVBIM1hZRjlockt2Z0dYV2wzOEdXWFpoZWZ0?=
 =?utf-8?B?MFhrMmdTeTFOU3hvOTNEMENsMDJIdmcyMVJvVWFXdlV4MkxnY2lUL1lSeE9i?=
 =?utf-8?B?Qll1Q2R1K1JDVnUwdnQxWWtrNmdXVlVveVZudmg2ZkRFWVUrbmVHWGtRb3RD?=
 =?utf-8?B?WnllQzYyRGFtQjRMakxLdXd4dGRSQjJFM2pkMHl2RVdrZG5NRm8zWnRscGJZ?=
 =?utf-8?B?SllsYnJJaXI2R0NGc3IxbTd5WW1oR1R1dzFMQ2lWYVRyWDJSdFM4eGJGSHBu?=
 =?utf-8?B?N0VVQVU0TC9CaDBCeTdZdVZiN1dYRzVMWWpQcTZQbEdnT3FFQ0tncEc2czNW?=
 =?utf-8?B?QzVuK1VkYjBwcVhCaXM0RFg1NDFoMWFGTm1sN01MZ0dyeUZsR01BQTJVSkVC?=
 =?utf-8?B?NnN4cGw4VHRIY1M0YXU3L3Qxa1ZiQnd2VnhVYlFQQ2lWTVNld212cjYvM3Y0?=
 =?utf-8?B?bWdsREI4YWJhYkZTbVFGTzdERkdVWmtNRis1WUloMzhYWFY4VVdQUFNVekhT?=
 =?utf-8?B?S0JDNUM1QVNJMXY5SHlRYlpNRVFyRTllS0QyanRlM1B5UHpDQTNiOVE1VWZX?=
 =?utf-8?B?SHNFZ1JaYkZKTTVpVUtUclN6ZzBEN1o4K0pqQ21KaUVGeEFGS3lQc3kvQmhQ?=
 =?utf-8?B?UXQ3UWJJRnBvMFRudCtqcFpDVWtKbnM4b0hIZ3BLeVg3QkFIWlo4TkZOc1NE?=
 =?utf-8?B?Qlh5T1VZemRVcDRmcktWMXNXMFNWQkwxUVgrRnpNR2VOYXZaYmlSSmM3bVFy?=
 =?utf-8?B?Sml3TldUWmhlYXVFT3ZFeWp0TlR6cjd4dGgxMTNmN3MyN2xWSHBPV0dWSkJX?=
 =?utf-8?B?S0lRTVNZWHJXL0lrR1FYVEpsVEd0L3FXUzNWVy8wUTRabGdwaG0xdHZUV0lC?=
 =?utf-8?B?aEkwMVJVa0JrUmt2eGtTbyszL01IM3lFMUY0V05CMXAvNGdhVm4yZit5Q3ZS?=
 =?utf-8?B?Vy9FUmkzS0JiMUh3S1hxWnNPenFXY2VpWXpkVlg0UENHQ3laRkU0L2ZVeHlL?=
 =?utf-8?B?Q1dsSG1JMC82S0hGZlJ5WDFudVFXbTFZSDM2ZzdUSitUc3FzUmV0NDdCQWRr?=
 =?utf-8?B?WFVFam02QU1nPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB8946.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?QUd6b3FvamlxeEdSanlWbDc3ZDBJSFVtMTFPaUFhZHAzaGh1b29qb2ZJdFQx?=
 =?utf-8?B?dktvTHo4WlBqdHdBQUlkOWZaaUhxOVd6Rzc0UEhvMTRhUUhzeU5Ec0cwWGNl?=
 =?utf-8?B?N25aVnh4RHY3d1poWUZjVjJCT0hxamRXMWZSRUdjc3RUZHY5UDRmcGJjVHFu?=
 =?utf-8?B?akNva2ZWNlgzSW5ZVmdoWlBlSHQ4d3RhYnEvSGxsQS9CNjJLbHQ2cFJ1ZCtq?=
 =?utf-8?B?bHZEem5CYVhmb3NtVDFxY09ZRDQ2bTNyUTAvbEtZMU55UW1xT2NwckhtQTVK?=
 =?utf-8?B?ZW9EZ1FwVGNjWEdtMUs4d0tuYjlZT21NNEp4eXZROWFJcnRSei9iQm54bVVN?=
 =?utf-8?B?bjRDcm9LQTlDNkE2RGtKaVo4VjVNby9SRUc0VlFPK2szMzhZRENPSUJqSzdQ?=
 =?utf-8?B?Mks1MWc5cjJOT2duZDcxZHpzUXJlSU1uSXVvTmNiRjlncmEyZ0tRMUpkYnNh?=
 =?utf-8?B?UStCSUphYzFmbStXWEY5RzhTRVF5aUVNaTVNN1diTzJlM1JQMlcwQWtjVnpk?=
 =?utf-8?B?RXliTUlodkZ6TGk5bitJblBRdmJ3dlowcGtNRVJYQmpWT2h6eElNdXFOQlVi?=
 =?utf-8?B?WExjMXlGUzdCcFZRY3N2Ry9qOEUxWHRxYkV0ZWtsSGdLWWNVa1pnVnRBcHlu?=
 =?utf-8?B?c1VHY0YrSUVDUCs0SEptQjFWK0pQVitMWmRpcG9qWkMramdTMnZUcXBGTmRz?=
 =?utf-8?B?TnUrbTZJMW9GUFhtQ0N0dlBza3JGaFVoVlVHaFpUb2ZHZHlVT29zakdncU9u?=
 =?utf-8?B?VTlJODYvNWV1WlMzalo2M0tsRmN0Q1NPV3pob0g5aFZDdlNvbkZBQUMyWjh1?=
 =?utf-8?B?a3N4eEVDT2p0YStaM2FVZUREVzJoMUZYbGNic2pmb0tzcll4WVJUbnAwZUx1?=
 =?utf-8?B?VXBkTFlacTFLdzQwQmVYUGZkTlB2enhuN1R1djVIaHAxK0hva1ZSYUVWQXpz?=
 =?utf-8?B?U3NkU3NxZVFSZk5DVUlONXhwN0dVQUJrZmZTOHk0THZMck5sWmFocDRYbnFZ?=
 =?utf-8?B?Y081eXI5NUJJV2FTWUdnM0JzbDJKVFJJTEpyOGRzUndDWlNPRVRBRGtMZ0Nj?=
 =?utf-8?B?VGt6TGhCWXhqMy9laUNOeU1wcXYyTDVyMDc2QkVnd2craXNsZnUvaWxkaHVX?=
 =?utf-8?B?SmZqRXh2S3ZHbVptZndCZjBuRXBPZGo3UmMzMlN0Zkw3eWJ6cWx1UnBMandh?=
 =?utf-8?B?cEdFdlcraDNjMml0UlBvZjY3Q3JodDhoOHdpb1NoKzlia1liM09JNEJSblNh?=
 =?utf-8?B?dyt3MUlpQnp5WktTVWR0Vzc3QUxmMTR2MGdaOUM0UWNnUjN6YVFla2c4VGN5?=
 =?utf-8?B?QVFzeThPS0NmM2txbktXV2NCTEthWUduQmViYis3NUxKVWl6VmpzMFAxcUdN?=
 =?utf-8?B?YlI3N2FZVUgyelFJUWo5TDIzdWN6Y25hUGcrOStxaGVPZmF2WTFmTVFzUXFF?=
 =?utf-8?B?QXZPaFpGaE1LVjFQTnlaeDE1dTJiUTV1YzN2L2QvS0EwcFR3UHVLWlNxV25P?=
 =?utf-8?B?TVBvWGNSRzhlM3FmTHdaeFNTczlZRFdUaVJZKzQwRVAyY3NqVVZROGRId3Zo?=
 =?utf-8?B?SitEQjFGTUQvd0xROUM1UWRXUkhGakF6L21xTHZuYjRNd1ROR3JzOTlPQUs0?=
 =?utf-8?B?MERxaVljRzZYWUZibm1XS2JPSXNGaXJTREExcURIVkNlY1pTWWZMUDZZUjBD?=
 =?utf-8?B?U29iWVZibHhEVHZINTNPMjhSd3Y4VkVNMjRLR1VXTkt3T2JlUlNWTjh6emRj?=
 =?utf-8?B?NERieUc1Mk9QM2VxRk9KSFRkRW5aOUNqVGYvcmhXZUd4WHh1aTZzMHRLVVUy?=
 =?utf-8?B?OWF6ZXhqUGtCUnRxRCszNW9scXEvbnRwYllMc3ZEb3JKZ1pibnpvYnhaa2Qv?=
 =?utf-8?B?MUxVNTRIWXVXSkdiL3lkbFJSQTAvRCs5aEpnb2lVa0tuQWZtS05ORWVEa2NJ?=
 =?utf-8?B?MUc4SEhsZVg5c0xlaUF0TGltUklaVERXeTJnaFNNMmVFS3d3bHNuMXVPNXI3?=
 =?utf-8?B?eWY0ZFVzYnJiNFpTRm43ZVdEVkU1TW5xN3RWZXZQWUJCRGdmeGdkZEcyb1ZQ?=
 =?utf-8?B?TFAvM3dMbUFRclBtMC9qSVY2NDg2RVV5UHNlakVtWktmNTNsQTRmdFY3WDhM?=
 =?utf-8?B?dENrMVFJVlJUVGFMSmxSNWtSYlVRTTlzbTBLSkJNZXdSb3oraVpoNDZvZVh0?=
 =?utf-8?B?VkE9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <BF004FCBCC25534D96E17CC4487E27FE@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: PAVPR03MB8946.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 421607be-2b82-4d9d-6a48-08dde5486dfc
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Aug 2025 09:02:20.1949
 (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: BaBgZRWWelIWOkWatKm7veDXuViBuKllDwdgYumpYBSxvmJqno2oTeB5RVgPmC4B6LUFovkaeLVBBkfF6hAxEwiJrGdMVvQ19SqpfmiU+aw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7923

DQoNCk9uIDIzLzA4LzIwMjUgMDM6MjYsIFN0ZWZhbm8gU3RhYmVsbGluaSB3cm90ZToNCj4gT24g
VHVlLCAyMiBKdWwgMjAyNSwgT2xla3NpaSBNb2lzaWVpZXYgd3JvdGU6DQo+PiBGcm9tOiBHcnln
b3JpaSBTdHJhc2hrbyA8Z3J5Z29yaWlfc3RyYXNoa29AZXBhbS5jb20+DQo+Pg0KPj4gVGhlIGlu
dHJvZHVjZWQgU0NJIChTeXN0ZW0gQ29udHJvbCBJbnRlcmZhY2UpIHN1YnN5c3RlbSBwcm92aWRl
cyB1bmlmaWVkDQo+PiBpbnRlcmZhY2UgdG8gaW50ZWdyYXRlIGluIFhlbiBTQ0kgZHJpdmVycyB3
aGljaCBhZGRzIHN1cHBvcnQgZm9yIEFSTQ0KPj4gZmlybXdhcmUgKEVMMywgU0NQKSBiYXNlZCBz
b2Z0d2FyZSBpbnRlcmZhY2VzIChsaWtlIFNDTUkpIHRoYXQgYXJlIHVzZWQgaW4NCj4+IHN5c3Rl
bSBtYW5hZ2VtZW50LiBUaGUgU0NJIHN1YnN5c3RlbSBhbGxvd3MgdG8gYWRkIGRyaXZlcnMgZm9y
IGRpZmZlcmVudCBGVw0KPj4gaW50ZXJmYWNlcyBvciBoYXZlIGRpZmZlcmVudCBkcml2ZXJzIGZv
ciB0aGUgc2FtZSBGVyBpbnRlcmZhY2UgKGZvciBleGFtcGxlLA0KPj4gU0NNSSB3aXRoIGRpZmZl
cmVudCB0cmFuc3BvcnRzKS4NCj4+DQo+PiBUaGlzIHBhdGNoIHVwZGF0ZXMgU0NNSSBvdmVyIFNN
QyBjYWxscyBoYW5kbGluZyBsYXllciwgaW50cm9kdWNlZCBieQ0KPj4gY29tbWl0IDNlMzIyYmVm
OGJjMCAoInhlbi9hcm06IGZpcm13YXJlOiBBZGQgU0NNSSBvdmVyIFNNQyBjYWxscyBoYW5kbGlu
Zw0KPj4gbGF5ZXIiKSwgdG8gYmUgU0NJIGRyaXZlcjoNCj4+IC0gY29udmVydCB0byBEVCBkZXZp
Y2U7DQo+PiAtIGNvbnZlcnQgdG8gU0NJIFhlbiBpbnRlcmZhY2UuDQo+Pg0KPj4gVGhlcmUgYXJl
IG5vIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiBnZW5lcmFsLCB0aGUgZHJpdmVyIGlzIGp1c3QgYWRv
cHRlZA0KPj4gdG8gdGhlIFNDSSBpbnRlcmZhY2UuDQo+Pg0KPj4gU2lnbmVkLW9mZi1ieTogR3J5
Z29yaWkgU3RyYXNoa28gPGdyeWdvcmlpX3N0cmFzaGtvQGVwYW0uY29tPg0KPj4gU2lnbmVkLW9m
Zi1ieTogT2xla3NpaSBNb2lzaWVpZXYgPG9sZWtzaWlfbW9pc2llaWV2QGVwYW0uY29tPg0KPj4g
LS0tDQo+Pg0KPj4NCj4+DQo+PiAgIHhlbi9hcmNoL2FybS9maXJtd2FyZS9LY29uZmlnICAgICAg
ICAgICAgICAgIHwgMTMgKystDQo+PiAgIHhlbi9hcmNoL2FybS9maXJtd2FyZS9zY21pLXNtYy5j
ICAgICAgICAgICAgIHwgOTMgKysrKysrKysrKystLS0tLS0tLS0NCj4+ICAgeGVuL2FyY2gvYXJt
L2luY2x1ZGUvYXNtL2Zpcm13YXJlL3NjbWktc21jLmggfCA0MSAtLS0tLS0tLS0NCj4+ICAgeGVu
L2FyY2gvYXJtL3ZzbWMuYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNSArLQ0KPj4gICB4
ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC1hcm0uaCAgICAgICAgICAgICAgICB8ICAxICsNCj4+ICAg
NSBmaWxlcyBjaGFuZ2VkLCA2NCBpbnNlcnRpb25zKCspLCA4OSBkZWxldGlvbnMoLSkNCj4+ICAg
ZGVsZXRlIG1vZGUgMTAwNjQ0IHhlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9maXJtd2FyZS9zY21p
LXNtYy5oDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9maXJtd2FyZS9LY29uZmln
IGIveGVuL2FyY2gvYXJtL2Zpcm13YXJlL0tjb25maWcNCj4+IGluZGV4IGZjNzkxOGM3ZmMuLmJi
Zjg4ZmJiOWEgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vYXJjaC9hcm0vZmlybXdhcmUvS2NvbmZpZw0K
Pj4gKysrIGIveGVuL2FyY2gvYXJtL2Zpcm13YXJlL0tjb25maWcNCj4+IEBAIC04LDkgKzgsMTgg
QEAgY29uZmlnIEFSTV9TQ0kNCj4+ICAgDQo+PiAgIG1lbnUgIkZpcm13YXJlIERyaXZlcnMiDQo+
PiAgIA0KPj4gK2Nob2ljZQ0KPj4gKwlwcm9tcHQgIkFSTSBTQ0kgZHJpdmVyIHR5cGUiDQo+PiAr
CWRlZmF1bHQgU0NNSV9TTUMNCj4+ICsJaGVscA0KPj4gKwlDaG9vc2Ugd2hpY2ggQVJNIFNDSSBk
cml2ZXIgdG8gZW5hYmxlLg0KPj4gKw0KPj4gK2NvbmZpZyBBUk1fU0NJX05PTkUNCj4+ICsJYm9v
bCAibm9uZSINCj4+ICsNCj4+ICAgY29uZmlnIFNDTUlfU01DDQo+PiAgIAlib29sICJGb3J3YXJk
IFNDTUkgb3ZlciBTTUMgY2FsbHMgZnJvbSBod2RvbSB0byBFTDMgZmlybXdhcmUiDQo+PiAtCWRl
ZmF1bHQgeQ0KPj4gKwlzZWxlY3QgQVJNX1NDSQ0KPj4gICAJaGVscA0KPj4gICAJICBUaGlzIG9w
dGlvbiBlbmFibGVzIGJhc2ljIGF3YXJlbmVzcyBmb3IgU0NNSSBjYWxscyB1c2luZyBTTUMgYXMN
Cj4+ICAgCSAgZG9vcmJlbGwgbWVjaGFuaXNtIGFuZCBTaGFyZWQgTWVtb3J5IGZvciB0cmFuc3Bv
cnQgKCJhcm0sc2NtaS1zbWMiDQo+PiBAQCAtMTgsNCArMjcsNiBAQCBjb25maWcgU0NNSV9TTUMN
Cj4+ICAgCSAgZmlybXdhcmUgbm9kZSBpcyB1c2VkIHRvIHRyYXAgYW5kIGZvcndhcmQgY29ycmVz
cG9uZGluZyBTQ01JIFNNQ3MNCj4+ICAgCSAgdG8gZmlybXdhcmUgcnVubmluZyBhdCBFTDMsIGZv
ciBjYWxscyBjb21pbmcgZnJvbSB0aGUgaGFyZHdhcmUgZG9tYWluLg0KPj4gICANCj4+ICtlbmRj
aG9pY2UNCj4+ICsNCj4+ICAgZW5kbWVudQ0KPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9m
aXJtd2FyZS9zY21pLXNtYy5jIGIveGVuL2FyY2gvYXJtL2Zpcm13YXJlL3NjbWktc21jLmMNCj4+
IGluZGV4IDMzNDczYzA0YjEuLjEzZDExMzc1OTIgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vYXJjaC9h
cm0vZmlybXdhcmUvc2NtaS1zbWMuYw0KPj4gKysrIGIveGVuL2FyY2gvYXJtL2Zpcm13YXJlL3Nj
bWktc21jLmMNCj4+IEBAIC05LDYgKzksNyBAQA0KPj4gICAgKiBDb3B5cmlnaHQgMjAyNCBOWFAN
Cj4+ICAgICovDQo+PiAgIA0KPj4gKyNpbmNsdWRlIDxhc20vZGV2aWNlLmg+DQo+PiAgICNpbmNs
dWRlIDx4ZW4vYWNwaS5oPg0KPj4gICAjaW5jbHVkZSA8eGVuL2RldmljZV90cmVlLmg+DQo+PiAg
ICNpbmNsdWRlIDx4ZW4vZXJybm8uaD4NCj4+IEBAIC0xNiwxMiArMTcsMTEgQEANCj4+ICAgI2lu
Y2x1ZGUgPHhlbi9zY2hlZC5oPg0KPj4gICAjaW5jbHVkZSA8eGVuL3R5cGVzLmg+DQo+PiAgIA0K
Pj4gKyNpbmNsdWRlIDxhc20vZmlybXdhcmUvc2NpLmg+DQo+PiAgICNpbmNsdWRlIDxhc20vc21j
Y2MuaD4NCj4+IC0jaW5jbHVkZSA8YXNtL2Zpcm13YXJlL3NjbWktc21jLmg+DQo+PiAgIA0KPj4g
ICAjZGVmaW5lIFNDTUlfU01DX0lEX1BST1AgICAiYXJtLHNtYy1pZCINCj4+ICAgDQo+PiAtc3Rh
dGljIGJvb2wgX19yb19hZnRlcl9pbml0IHNjbWlfZW5hYmxlZDsNCj4+ICAgc3RhdGljIHVpbnQz
Ml90IF9fcm9fYWZ0ZXJfaW5pdCBzY21pX3NtY19pZDsNCj4+ICAgDQo+PiAgIC8qDQo+PiBAQCAt
NDEsMTQgKzQxLDExIEBAIHN0YXRpYyBib29sIHNjbWlfaXNfdmFsaWRfc21jX2lkKHVpbnQzMl90
IGZpZCkNCj4+ICAgICoNCj4+ICAgICogUmV0dXJucyB0cnVlIGlmIFNNQyB3YXMgaGFuZGxlZCAo
cmVnYXJkbGVzcyBvZiByZXNwb25zZSksIGZhbHNlIG90aGVyd2lzZS4NCj4+ICAgICovDQo+PiAt
Ym9vbCBzY21pX2hhbmRsZV9zbWMoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpDQo+PiArc3Rh
dGljIGJvb2wgc2NtaV9oYW5kbGVfc21jKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQ0KPj4g
ICB7DQo+PiAgICAgICB1aW50MzJfdCBmaWQgPSAodWludDMyX3QpZ2V0X3VzZXJfcmVnKHJlZ3Ms
IDApOw0KPj4gICAgICAgc3RydWN0IGFybV9zbWNjY19yZXMgcmVzOw0KPj4gICANCj4+IC0gICAg
aWYgKCAhc2NtaV9lbmFibGVkICkNCj4+IC0gICAgICAgIHJldHVybiBmYWxzZTsNCj4+IC0NCj4+
ICAgICAgIGlmICggIXNjbWlfaXNfdmFsaWRfc21jX2lkKGZpZCkgKQ0KPj4gICAgICAgICAgIHJl
dHVybiBmYWxzZTsNCj4+ICAgDQo+PiBAQCAtNzgsNDkgKzc1LDQ1IEBAIGJvb2wgc2NtaV9oYW5k
bGVfc21jKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQ0KPj4gICAgICAgcmV0dXJuIHRydWU7
DQo+PiAgIH0NCj4+ICAgDQo+PiAtc3RhdGljIGludCBfX2luaXQgc2NtaV9jaGVja19zbWNjY192
ZXIodm9pZCkNCj4+ICtzdGF0aWMgaW50IHNjbWlfc21jX2RvbWFpbl9pbml0KHN0cnVjdCBkb21h
aW4gKmQsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgeGVuX2Rv
bWN0bF9jcmVhdGVkb21haW4gKmNvbmZpZykNCj4+ICAgew0KPj4gLSAgICBpZiAoIHNtY2NjX3Zl
ciA8IEFSTV9TTUNDQ19WRVJTSU9OXzFfMSApDQo+PiAtICAgIHsNCj4+IC0gICAgICAgIHByaW50
ayhYRU5MT0dfV0FSTklORw0KPj4gLSAgICAgICAgICAgICAgICJTQ01JOiBObyBTTUNDQyAxLjEg
c3VwcG9ydCwgU0NNSSBjYWxscyBmb3J3YXJkaW5nIGRpc2FibGVkXG4iKTsNCj4+IC0gICAgICAg
IHJldHVybiAtRU5PU1lTOw0KPj4gLSAgICB9DQo+PiArICAgIGlmICggIWlzX2hhcmR3YXJlX2Rv
bWFpbihkKSApDQo+PiArICAgICAgICByZXR1cm4gMDsNCj4gU2hvdWxkIHdlIGFsc28gY2hlY2sg
Zm9yIGNvbmZpZy0+YXJjaC5zY2lfdHlwZSA9PQ0KPiBYRU5fRE9NQ1RMX0NPTkZJR19BUk1fU0NJ
X1NDTUlfU01DID8NCj4NCkN1cnJlbnQgY2hhbmdlcyBhc3N1bWUgdGhhdCBvbmx5IFNDTUlfU01D
IGlzIHByZXNlbnQuIFRoaXMgY2hlY2sgd2FzIA0KYWRkZWQgaW4gdGhlIHN1YnNlcXVlbnQgcGF0
Y2ggd2hlbiBtdWx0aWFnZW50IHdhcyBpbnRyb2R1Y2VkLg0KPj4gKyAgICBkLT5hcmNoLnNjaV9l
bmFibGVkID0gdHJ1ZTsNCj4+ICsgICAgcHJpbnRrKFhFTkxPR19ERUJVRyAiU0NNSTogJXBkIGlu
aXRcbiIsIGQpOw0KPj4gICAgICAgcmV0dXJuIDA7DQo+PiAgIH0NCg==


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 09:09:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 09:09:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095763.1450646 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urC9w-0004sQ-Eq; Wed, 27 Aug 2025 09:09:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095763.1450646; Wed, 27 Aug 2025 09:09: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 1urC9w-0004sJ-CG; Wed, 27 Aug 2025 09:09:36 +0000
Received: by outflank-mailman (input) for mailman id 1095763;
 Wed, 27 Aug 2025 09:09:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=E4uQ=3H=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1urC9v-0004sD-5c
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 09:09:35 +0000
Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com
 [2a00:1450:4864:20::32d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8c4605bd-8325-11f0-a32c-13f23c93f187;
 Wed, 27 Aug 2025 11:09:34 +0200 (CEST)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-45b49f7aaf5so39933445e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 27 Aug 2025 02:09:34 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-45b6f0d78b4sm23170045e9.7.2025.08.27.02.09.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 27 Aug 2025 02:09: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>
X-Inumbo-ID: 8c4605bd-8325-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756285773; x=1756890573; 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=mZRlqsu1mLsSbCdlJcNjZYpIcngXwXldwqY6dQsQG2Y=;
        b=hfsE100GRiS94yorYlC1ukKo644B169TMoictqa6GO52uTMiZd/VE+45flxvtdfL64
         MGzs/zWZX8Qc/ghmJx5mrommg2gu2tOdQCQ1TLb4i3Gc4oWhd6fN/kMCU+5qjUmS35uI
         uaTSnYLeCjOyY7zVg08eRA1ik3neBUjBNZZ9A=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756285773; x=1756890573;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mZRlqsu1mLsSbCdlJcNjZYpIcngXwXldwqY6dQsQG2Y=;
        b=djwzi625dCtpVD10VY8F1zEbuXtvWUgmtc3JFxEADPMBI/Q8gztQPEjUqhrGBCk74z
         vbZ8+9eHawtAfqioR3CLno0n+Eggmez3FuaqAOr8IvWgtMvynezYPlqmS1R8plWK1WTX
         CS7Ijrm0GCcPJanJ23d1orn/REGHu5KYGnOamhX4xfzdmStymiLATpm9F6QarwS7gyJl
         uIBAgNoVOeLRRWIM5zVLBk+DQXPcdfxiauMPmBHBH/gSWQYklL9PwS23/kwzHaXkX4/l
         kAZ+7cbjsl0k9q3tvlS7nEma/WPQBuWdqQbc2SjTGuB7CQAQaW6IXrzWxESZyf0VOuNA
         eRWQ==
X-Gm-Message-State: AOJu0YwLSE21Xb7kW48FfMNpxZIA6LUmCK9LVqD54SHya4/zh6wPQXDZ
	Y5rUf/jB6OhJkwfZ5kTNMlDJBJZW+IN/zcCaOQ2hYdANDxFpKUjvkmI+kEAfXJ4+guc=
X-Gm-Gg: ASbGncs84rA4h+hWBRYSZ6KRrN3C/w0xKGBT9F9jozuKJg/WHYjjLZMnunHHPfdX/+v
	cNi8e/yjnn4G+2ZvHwCLR1c3lU74aF8gsXJ8P9zjrUWydJa313ts0aUicuFdTYqCByTg7Rx2MW4
	g/eXA0/J8YT1RRjBH4iQwlzI1fwhIbGYVvNwrTvqsgyd0KqHHzIEfwDhtjM0P68+hv/cHiuhTUL
	ZI7Mm/grXbznKMxgLEB0YYMiFx6HDbODypiVKE3kgSzDHgnQlS3InN2DMUz5trTxrVljApxI/hX
	L7kDrV1h3eli0ffOxZct2hKWrLYQSMj18FchZKJI/kFeAqc9FFVQKQWmx8+pOAcSnGlE1ibKSAq
	BafVw9y+Gcinv0QOeGDJD0m55m8331srrOHMZaA2EGYFJhVajtap1Rjio6MhpZMhO3Q==
X-Google-Smtp-Source: AGHT+IFCkun1wtsgpQt+n4TFrq5S0vRwuz2psVqD7F+GkkYzBlY6QVQDdvbem9mDxxrihaNLvVEFAA==
X-Received: by 2002:a05:600c:3b26:b0:456:19b2:6aa8 with SMTP id 5b1f17b1804b1-45b517caa99mr156090525e9.19.1756285773393;
        Wed, 27 Aug 2025 02:09:33 -0700 (PDT)
Date: Wed, 27 Aug 2025 11:09:32 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Vyacheslav Legoshin <vyacheslav.legoshin@yandex.ru>
Cc: xen-devel@lists.xenproject.org,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN PATCH] x86/vhpet: Add option to always fire hpet timer on
 resume
Message-ID: <aK7LTO1Msvm0hDtH@Mac.lan>
References: <faa5eee741a772eba95415ca26f0cdf304486fc3.1756272466.git.vyacheslav.legoshin@yandex.ru>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <faa5eee741a772eba95415ca26f0cdf304486fc3.1756272466.git.vyacheslav.legoshin@yandex.ru>

On Wed, Aug 27, 2025 at 09:01:08AM +0300, Vyacheslav Legoshin wrote:
> The following issue was observed on Windows 10 21H2 x64+: when the domain state
> is saved while all cores are executing the 'halt' instruction,

I assume this when executing `xl save` or equivalent command from a
different toolstack?

IIRC in that case the guest would be paused while the memory dump to
disk is done, and hence guest vCPUs won't be executing the `halt`
instruction, they wouldn't be executing at all.

> and the memory
> save takes a relatively long time (tens of seconds), the HPET counter may
> overflow as follows:
> counter  = 11243f3e4a
> comparator = 910cb70f
> 
> In such cases, the fix implemented in commit
> b144cf45d50b603c2909fc32c6abf7359f86f1aa does not work (because the 'diff' is
> not negative), resulting in the guest VM becoming unresponsive for
> approximately 30 seconds.
> 
> This patch adds an option to always adjust the HPET timer to fire immediately
> after restore.

What happens if the guest is left running after the save?  I assume
that using `xl save -c <domain>` would leave the domain in a similarly
wedged state, and your proposed workaround won't be effective there,
since there's no restoring process?  Or that's not the case there
because Xen is still keeping track of the internal timer, and would
set an interrupt as pending anyway?

Should we maybe store the last guest time at context save, and check
against that to see whether comparators should have triggered, instead
of playing this games?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 09:10:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 09:10:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095777.1450656 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urCB0-0006Mo-SH; Wed, 27 Aug 2025 09:10:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095777.1450656; Wed, 27 Aug 2025 09:10: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 1urCB0-0006Mh-PM; Wed, 27 Aug 2025 09:10:42 +0000
Received: by outflank-mailman (input) for mailman id 1095777;
 Wed, 27 Aug 2025 09:10:41 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qxfF=3H=epam.com=Oleksii_Moisieiev@srs-se1.protection.inumbo.net>)
 id 1urCAz-0004sD-Hz
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 09:10:41 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b3d4919a-8325-11f0-a32c-13f23c93f187;
 Wed, 27 Aug 2025 11:10:40 +0200 (CEST)
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com (2603:10a6:102:32e::21)
 by DU0PR03MB9851.eurprd03.prod.outlook.com (2603:10a6:10:448::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Wed, 27 Aug
 2025 09:10:37 +0000
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::f12d:7394:bbe3:dfc]) by PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::f12d:7394:bbe3:dfc%6]) with mapi id 15.20.9052.014; Wed, 27 Aug 2025
 09:10: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>
X-Inumbo-ID: b3d4919a-8325-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=VrNAEKynum9pjv+zpEVT2TgIuV5E8wGF2sR2t7o/qasSz7D/SFSgUIKU+q1lSKhSNZnkWCVaanXrsp/dT36Q4WvletgRFq4A0kHYb+b7Gp3NUTvdF0TkaPWhxdSnsjkpNTyyr3IRsZj5vzC4tYZEQYSH1RsgqRU2OSCNYPeSX4HBKlSZ663iVmPUjVOcdKlXtfik7tJpNZqkxap3JlX16HIQrTveE7vWxvDipZEo1Djrd1bMxAlrxxdLjOBowg5xIsUs9J/hjHp2ewNlA9F6WCnM9BItZjVMeGOoy+SCu7BMDXnvWGqkOwsCOhsUQtPtSrpRJbB5wN9SUv3FP8npWw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=S6KKJGUtE5NsAF6KCD4G5YAO2K73h+CUxZh+fK8AQAc=;
 b=IcgnwM5GzhZD+jLmAEmwWuIa4X3AAOM2iwxyWyOdSYDdk6c6ORcEVCcs7BPnZRQjKrR0/PX43Wn2C9/Szla1N+gjrozK6ghrJnhgnqKGL6T4BiAe2/QH1XF6PuSY6i8PpeXZAwY0AeYpfPnplPjFl83Btd2OzDFHWqIkD80P1lfh9MKhfRLnCyUB8dEHep5lbX+JQSOhPFUEsNeTS2ph87Ck8Xpi5UePN6Ym3e2ciEyQ5hZbkl3c/IGCfMXZBg5mvbta2QiFLFl5HznBzi0+GNN+jZUcWkKoifkNyvz9rQQ1BMfGHgv/nfUcDdktMcDp7lzfU8XDki17WDjp7OZ4IA==
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=S6KKJGUtE5NsAF6KCD4G5YAO2K73h+CUxZh+fK8AQAc=;
 b=pKPSrdKmzATtXK+RqZSzkiDvb9tZk69wZiTR8cXCim7xkpU8udjK+x0GRPGWaVG0d9wtej3Ao7aVww3TdFvskr7AVtLQdLRgY82VxmjxN/z9wrw59K8EaLCg6clUb3BQf37BYMaIS8kRNd2yVUDWmak2VZ06eQ2vp2nmoH/xDkccxrGh9451Wv7P3oF86uQT9Vl0nrYh2jmy1hfMJEK6JwRVUGvFFYHe5KrHa2OC0noGKRaFsLcA3F11tYsCgRb91BcuKJt/NAI2pQuR4T6/vx4dHOAaKGuma8ee4/EPHZq3IfmiNT0dNAS1k2CZLH+j8P9x/yC6jzpfDZULFwO8cQ==
From: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
To: Stefano Stabellini <sstabellini@kernel.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Bertrand Marquis <bertrand.marquis@arm.com>, Jan
 Beulich <jbeulich@suse.com>, Juergen Gross <jgross@suse.com>, Julien Grall
	<julien@xen.org>, Michal Orzel <michal.orzel@amd.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Grygorii Strashko
	<grygorii_strashko@epam.com>
Subject: Re: [RFC PATCH v5 00/10] xen/arm: scmi: introduce SCI SCMI SMC
 multi-agent support
Thread-Topic: [RFC PATCH v5 00/10] xen/arm: scmi: introduce SCI SCMI SMC
 multi-agent support
Thread-Index: AQHb+v2VYJM++98Y2ku7DWB5wHJSn7RvlUmAgAbZoQA=
Date: Wed, 27 Aug 2025 09:10:37 +0000
Message-ID: <2eb538a8-aaf6-4d71-9379-40ae0351f0c6@epam.com>
References: <cover.1753184487.git.oleksii_moisieiev@epam.com>
 <alpine.DEB.2.22.394.2508221733410.2743087@ubuntu-linux-20-04-desktop>
In-Reply-To:
 <alpine.DEB.2.22.394.2508221733410.2743087@ubuntu-linux-20-04-desktop>
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: PAVPR03MB8946:EE_|DU0PR03MB9851:EE_
x-ms-office365-filtering-correlation-id: e52ad696-dc6e-463b-8409-08dde5499663
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|7416014|366016|376014|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?UWY0MXoyN3RvUHB2TEYwMmYwKy9KOTQyOUNOZXVLWWdKZnZRdjNYMTd3Vk4w?=
 =?utf-8?B?QWtoRk4wWUU0NkMrNHcxUVVNN0E0emxkdEJiMTgzbCtpL25EZ0J4MHpNaXFW?=
 =?utf-8?B?eldtajRnbW9HNlZLYnBLRll6cHZieTVvdjBKVlVpQnRacWRWMUQ3WTBpUjMx?=
 =?utf-8?B?cTBLYmFSZjNKb2ZKNlhvQSs0a2E0Q1B5MUl2SEZBM1VleWtYSjdJYVBIRGdv?=
 =?utf-8?B?d3RrY0pOczc3UFZHbThhbW43NmIvaUZVU3NSbmtkNEczVUVTVzBCRkpVRVBq?=
 =?utf-8?B?dnJmS3c1SDF0bXFYWDlUM1BrZmxETkFrcGQ0cTlaVkd4RytEK2VPcFlPRGQx?=
 =?utf-8?B?UTNjbzNUUGNCN2JVdTF2K2VnVlNXNUl6ekF6b3VxbGFGU1BPTmlaZk5NRGZh?=
 =?utf-8?B?Q1NabXRkdEQzaGQ0bTRjM2ZSeGp2MGg0TGVOYmI3RzNDSmNlSFFIUDlyb2Fo?=
 =?utf-8?B?b0RMNUh6Wk50ZCtmb0E0R1NMbEVrcDU3T3RlL293Z0VVOUJNS25QSmtzSjlk?=
 =?utf-8?B?NWJ2Q0FYRXRsb3U2T2NUVWhLa3lqZlNoZlNXbklKUXFydVdGdngyclptZ1V5?=
 =?utf-8?B?TUJ2Mlg5YXFRUmxzVlFUVDZHK2hpUUJ4MTd6VHAxSUVPSG5CTmxoVUdxeUNF?=
 =?utf-8?B?UUxrSCtsbjJZc3JuUmFkN3R4dXVxSC9Mc0N6bFJuWHhwcVJhejZGbnNyaDRx?=
 =?utf-8?B?dEZDVEEybElWVGdYb2JyYVMxNlVNMjJjWXhkWTVqRFZMR0Zod0lPNVRqU29Q?=
 =?utf-8?B?T3dMcHI5cnFneGxPSDd3bWg4aHRSMzV6Uy8vd01GRDErOEZyRVhYUHpBTE5X?=
 =?utf-8?B?Q2NVTGdpR1FFVnZYU2ZRYXZxVTc2Q2lOUjJYMEgycGg1N1JFUzZiUmkxTFlC?=
 =?utf-8?B?SVlNSmVMWEdlUXJVcTUwQTFINGFEZWlrM2FoWEFZczl6anIrSnFEdVlhT2NY?=
 =?utf-8?B?TkpKWW9UM25JbytKQ0h6eWtHczJmMmc1dmdXbGRteFRvd0FPbVZpcXNkbnlm?=
 =?utf-8?B?WUtiRTV6K2dkNFpiTmw2Mmx3UW01am1GMXJ0emhGcE1qSEJ3c1lFUisvQzRT?=
 =?utf-8?B?cUJSRTZKbXZaSDVScFQ3RE9lVTBoMGgrL2VpZm11YXlwcVBnNjJyK2Q0bzFM?=
 =?utf-8?B?a3VzN1ZHSGhRSjJNbUlzdWdjTGg4K2sweE50d3RPRGYyNGVqa1NtWHlZNDVR?=
 =?utf-8?B?aEFKL1BucEljbjhwdjJlTFdvSlpoRFplc0hqZXc3NEhTc2RyUTVtcXIyVTR5?=
 =?utf-8?B?WEw0ZDI2SUg2UXpncVJiREhrcnRjQjhRRVg3YmVZNS9EbWRVNFVQT0VHblBq?=
 =?utf-8?B?c0tsNjQvc0hFNzU3SldVVFJZaHROZGhyL3BzUHVRcFd5QW9GNzc4MWUwN3g2?=
 =?utf-8?B?UVVzREtHNjVZNjJJTnF0WjFOR2RDVjdZeTZwbXZZN2FheXFQc3RBMVJTTUxR?=
 =?utf-8?B?bFF5VGNoREEyNmYyU3hsaDVDV25xOEVtNW5OUFZwd1BGbXh4S1k4SmxHbEln?=
 =?utf-8?B?WDZvYWNZemhMbDNDeXBnZmRNcFlrMElrQ1QrcStKNzgxUGZST2E5UDNLZm1a?=
 =?utf-8?B?ZzBKb0k5OU55aXd4R3lmR0ZKYzdReEpNeU1adnJUT2RjcERzVzQycDBrMS9Z?=
 =?utf-8?B?VDhaVUtiZGxUcHdXTlN4YzUzTzRxd0ZPTXpKUEl6dERQSU9zTlpuMUM3SCsw?=
 =?utf-8?B?UXAxNmJGeVlZK0ExWU5XbjIrS3NHR0xwcUVYQ1NnYWpoWmpMWHJKTjNldkxo?=
 =?utf-8?B?RTFBK2Zpc1BaNnFlTlJNOFdVRzIxalNET0E2dW1YRmtUWElGRzhUdXdhVERn?=
 =?utf-8?B?dmEwbVR4dStHUFNSdmExZFpvTitqRk84QWtUcTJVQ3dVT0dOQ3l3Um9aWFZP?=
 =?utf-8?B?YlRpQnJvVHp1NWQvUmx4dGUvcWZBY3c0NTNuRGZjQ1pMWTZEUUFpWlhOL1BS?=
 =?utf-8?Q?QWtiNE5/BVE=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB8946.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(366016)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?NFZxSGZJbHZ3ck1KcExEOHhQamF0OWRVcHVZbEtuekF5MnhZcHo1QkJUc2xo?=
 =?utf-8?B?M3FvN25jMDFWS3hGQzd1WTZjc2h1NUgrTyt4UlhJdDl3a28ySCtibUpFUTdn?=
 =?utf-8?B?UlN2aytHYzQ5dU5jYXZLN1Mrd0dmcVNzNW5WN1VPK0pZejBzcmpuYmpHejdz?=
 =?utf-8?B?MmVJT2JBcUt2RGVKU05qSnFVRUNXQzdmMVlxUzFLK2xKUGhHRGJMenNDbnNl?=
 =?utf-8?B?SnIyUTNwSy9QeW5ISmZ6WTQwSkxFaUZWenhGRnN5UmI2QndockRHM1dLNjJE?=
 =?utf-8?B?LzZnbFpUSU5WcGV1aUZ5bkkwK1BjTG5KWUNxdzZ0bjhVVzFFbk5POWlRdjkv?=
 =?utf-8?B?NkViMmJUYlZCeDJTbVJNNHhyUmdudDhzT2RRcXBsQnJSNFIya2crNGRNWUVp?=
 =?utf-8?B?QnIzREVwVEdkNmRqR2lqYk1qWml1SFJHUXJEcDF0NzExVFBIbXRadTY2YVE3?=
 =?utf-8?B?dDlhdWMzWmRBOUo0NUhWSkVJamc1L3FFVWd6cVhBeVExMHdrbG02LzhHTmNV?=
 =?utf-8?B?dWQ2RDhRTDhZZmE5NUNYb1RPZlAyYVQ1Q3hFZ25tNU9wdDhSbzNmOHFiU2pP?=
 =?utf-8?B?QlJzempsSUI1TFU2WWV6ZU9JczhXUDNBQ1ZqendabWd1eHBadXZ0TmpKWTNF?=
 =?utf-8?B?aGZkc1Y4eHM4eE9WR0VVN1RDbjUyd0FSU05odEtpcEswQXBYQThnYTk4NWo0?=
 =?utf-8?B?bGlaamxqTmNqTTZ4UklYWmtEbXRlVkU2Vlcwb0tOSGc3aTJvNDg3Qi9HcjNO?=
 =?utf-8?B?Q2xnU25qa001Nk00VTl6NURvd2VpbWNaNWs5eWZ1eDdqa0hJRkFud0FkQ1Rv?=
 =?utf-8?B?WmNibjg2WEFuWng0VUhxUmJLUGFqZHhFL2RwYXM0eG9GNnZFajhKYVlkTW16?=
 =?utf-8?B?S3JUSzVvS1VYbFZvazJmK0JkM2d5bGU4Mjl0VE9EdGpjV0lQUWNVWjdlczl1?=
 =?utf-8?B?R21yZ09GMVhLSG1nb1d3WjJPZFZDU0x6YWtzc3BpZnNCbXJXNHFSVVEwR2NH?=
 =?utf-8?B?K2NaZU9kWk9sOGJrK1VGcXpXRW5EZ3BWMFZKT2ZJa1NQV0xBcmxGaFVXc242?=
 =?utf-8?B?WStCMWcySXVXZGNRM1EzMnlMbmo2OHY4MFZFT1hvR01NQmZERU1QYzZkNzhQ?=
 =?utf-8?B?VjZqVmlUWG5MY205UUlISEZPQm44eDZrRkZpWGhUYlREQ0Y5dllOY1FNUUJ2?=
 =?utf-8?B?OWVqdjdRV1hTWW0raUNaQm5LbHRFWXNpM2lDWEx2ZFMyZ1pmSnBocEtYT2tt?=
 =?utf-8?B?UzZoYnI2OGNySWhwb1BhSnRyOWhqTVMwZmwvZWNmaGxtSjhEcjRRSzUzeFIz?=
 =?utf-8?B?bGxVM3RhY0dYYWlBc1hkY0dlVHFhTTc2VlhlUkdKSjRTM0FtTUUvWkFCU3pU?=
 =?utf-8?B?N2ZkVWxyN0xLK213Qi80c3AwZGhDMVRnMmFhaDRiSUtZOFFoUjVtR1E3b0Qy?=
 =?utf-8?B?T2UyQWNObjFGelFnekdxYVRFNmpOaTUxWkxOYURNWkdCdXZpdzZFcDJOSTc3?=
 =?utf-8?B?anBlSUFDZ0xWdWZLOE5EUGlmWlMxL1Yyb3RrZEdNaEd3TkJUN0l1Wjc3ZzdE?=
 =?utf-8?B?aXZGcnlaTWh2dStEMXNGNFR0K3VJTmhpNk41RlNjYzQvUzhCT3VpU3dYZ3VQ?=
 =?utf-8?B?ZkdyRm81Y2hzcmx3bTRnTmduU0poUHNEazNNWUt0SWJpT3FGMzBNYUpwaWl5?=
 =?utf-8?B?eHRXMU9UN1A1eDBQZWFVT3d4S1JyNit0dWNOSFRuVzZoSk14aGxNY0gvNXRj?=
 =?utf-8?B?ek5CL05rTzVVMit1UDgycWJoRXZPRHFQRkZrM0JubHRtRGZqWDNWdnZQUkI3?=
 =?utf-8?B?SG4yQUxVL0wwL2RFcjNxK3c5V0Nld2ZQZGE1Z1h0NkZHMDJWQU5vdmhsRjNT?=
 =?utf-8?B?a25zemVLUnlmNzNiN0NnVExBei9ieHg0dGsySVhyeTNJV2xYUjhGM0RNTW1y?=
 =?utf-8?B?YlNKRExLUGk2NWxzdnh4aWs5bTlSczRaWm5kT1lOK1RuYkszUzBtcEVReDJL?=
 =?utf-8?B?R2t2UWtpM3ZwQkF1WTA1ekg4VUVKWmdjL1pKN3ZEK0hCWk8xYWdZeHBXaWp5?=
 =?utf-8?B?bUV4bkVFaFVqRzBuRStRV1A1Y2VBUU1TTjR5ZVhaWmlFanVWZ0VJMytiQTJD?=
 =?utf-8?B?OUZYb1F1cTJ6UXVXeERqRktrdDRLVkRmSkFPbjJ2ck95WjRnQ1lKT2pxSkNm?=
 =?utf-8?B?eWc9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <AC1A2DFD964F724C8ADD749B68FDF8B7@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: PAVPR03MB8946.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e52ad696-dc6e-463b-8409-08dde5499663
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Aug 2025 09:10:37.4570
 (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: jt171DZvOIPJJeVn0pzTeA970bOu3VXh7y8VqWhbuxRSLBjUcwUW+VzTy/l7mr54njaxqSHVivR+PhqdRrFiF+QZ0d/SKeCNldt+JVY/q3k=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB9851

SGkgU3RlZmFubywNCg0KT3VyIHVzZS1jYXNlIGltcGx5IHVzaW5nIHNjbWktc21jLW11bHRpYWdl
bnQgdG8gYmUgYWJsZSB0byBzcGxpdCBzY21pDQpiZXR3ZWVuIHRoZSBkb21haW5zLA0Kc28gd2Ug
d291bGQgbGlrZSB0byBhcHBseSBhbGwgcGF0Y2ggc2VyaWVzIGluIHRoZSByZWxlYXNlLg0KDQpP
biAyMy8wOC8yMDI1IDAzOjM0LCBTdGVmYW5vIFN0YWJlbGxpbmkgd3JvdGU6DQo+IEkgdGhpbmsg
aXQgc2hvdWxkIGJlIGZlYXNpYmxlIHRvIGNvbW1pdCBhdCBsZWFzdCBwYXRjaGVzIDEtNCBpbiB0
aW1lIGZvcg0KPiB0aGUgcmVsZWFzZQ0KPg0KPiBPbiBUdWUsIDIyIEp1bCAyMDI1LCBPbGVrc2lp
IE1vaXNpZWlldiB3cm90ZToNCj4+IElucm9kdWNpbmcgVjQgUkZDIHBhdGNoIHNlcmllcyAgb24g
dG9wIG9mIHRoZSBYZW4gdmVyc2lvbiA0LjIwLXJjMg0KPj4gd2hpY2ggaW5jbHVkZXMgaW1wbGVt
ZW50YXRpb24gb2YgdGhlIFNDSSBTQ01JIFNNQyBtdWx0aS1hZ2VudCBzdXBwb3J0Lg0KPj4NCj4+
IFBhdGNoIDEgInhlbi9hcm06IGFkZCBnZW5lcmljIFNDSSBzdWJzeXN0ZW0iDQo+PiAtIHJlYmFz
ZWQgYW5kIHJlZmFjdG9yZWQNCj4+IC0gaW50cm9kdWNlZCBERVZJQ0VfQVJNX1NDSSBEVCBkZXZp
Y2UgY2xhc3MgYW5kIHVzZWQgZm9yIFNDSSBkcml2ZXJzIHByb2JpbmcNCj4+IGluc3RlYWQgb2Yg
Y3VzdG9tLA0KPj4gICAgbGlua2VyIHNlY3Rpb25zIGJhc2VkIGltcGxlbWVudGF0aW9uLg0KPj4g
LSBhZGRlZCBTQ0kgQVBJIGZvciBEb20wIERUIGhhbmRsaW5nLCBpbnN0ZWFkIG9mIG1hbmlwdWxh
dGluZyB3aXRoIEFSTSBhcmNoDQo+PiBkb20wIGNvZGUgZGlyZWN0bHkuDQo+PiAtIFJGQyBjaGFu
Z2VzIGluIFhFTl9ET01DVExfYXNzaWduX2RldmljZSBPUCBwcm9jZXNzaW5nDQo+PiAtIEludHJv
ZHVjZSBhcmNoX2hhbmRsZV9wYXNzdGhyb3VnaF9wcm9wIGNhbGwgdG8gaGFuZGxlIGFybSBzcGVj
aWZpYw0KPj4gbm9kZXMNCj4+DQo+PiBQYXRjaCAyICJ4ZW4vYXJtOiBzY21pLXNtYzogdXBkYXRl
IHRvIGJlIHVzZWQgdW5kZXIgc2NpIHN1YnN5c3RlbSINCj4+IC0gdXBkYXRlIGRyaXZlciBpbnRy
b2R1Y2VkIGJ5IGNvbW1pdCAzZTMyMmJlZjhiYzAgKCJ4ZW4vYXJtOiBmaXJtd2FyZTogQWRkIFND
TUkNCj4+IG92ZXIgU01DIGNhbGxzDQo+PiBoYW5kbGluZyBsYXllciIpIGJlIHVzZWQgdW5kZXIg
c2NpIHN1YnN5c3RlbS4NCj4+IC0gbm8gZnVuY3Rpb25hbCBjaGFuZ2VzIGluIGdlbmVyYWwNCj4+
DQo+PiBQYXRjaCAzICJ4ZW4vYXJtOiBzY21pLXNtYzogcGFzc3Rocm91Z2ggU0NNSSBTTUMgdG8g
Z3Vlc3QgZG9tYWluDQo+PiBUaGlzIGlzIG5ldyBjaGFuZ2Ugd2hpY2ggYWxsb3dzIHBhc3N0aHJv
dWdoIFNDTUkgU01DLCBzaW5nbGUgYWdlbnQgaW50ZXJmYWNlIHRvDQo+PiBndWVzdCBkb21haW4N
Cj4+IGNvdmVyIHVzZSBjYXNlICJ0aGluIERvbTAgd2l0aCBndWVzdCBkb21haW4sIHdoaWNoIHNl
cnZlcyBhcyBEcml2ZXIgZG9tYWluIi4NCj4+IFNlZSBwYXRjaCBjb21taXQgbWVzc2FnZSBmb3Ig
ZnVsbCBkZXNjcmlwdGlvbi4NCj4+DQo+PiBQYXRjaCA0IC0gZG9jczogYXJtOiBhZGQgZG9jcyBm
b3IgU0NNSSBvdmVyIFNNQyBjYWxscyBmb3J3YXJkaW5nDQo+PiBkcml2ZXINCj4+IC0gYWRkIGRv
Y3VtZW50YXRpb24gc2VjdGlvbiBmb3IgU2ltcGxlIEFybSBTQ01JIG92ZXIgU01DL0hWQyBjYWxs
cw0KPj4gZm9yd2FyZGluZyBkcml2ZXIuDQo+Pg0KPj4gUGF0Y2ggNiAtIHhlbi9kb21jdGw6IGV4
dGVuZCBYRU5fRE9NQ1RMX2Fzc2lnbl9kZXZpY2UgdG8gaGFuZGxlIG5vdA0KPj4gb25seSBpb21t
dQ0KPj4gLSBhZGQgY2hhaW5nZWQgaGFuZGxpbmcgb2YgYXNzaWduZWQgRFQgZGV2aWNlcyB0byBz
dXBwb3J0DQo+PiBhY2Nlc3MtY29udHJvbGxlciBmdW5jdGlvbmFsaXR5IHRocm91Z2ggU0NJIGZy
YW1ld29yay4NCj4+IENoYW5nZSB3YXMgZG9uZSBpbiB0d28gcGFydHM6DQo+PiAgIC0gdXBkYXRl
IGlvbW11X2RvX2R0X2RvbWN0bCgpIHRvIGNoZWNrIGZvciBkdF9kZXZpY2VfaXNfcHJvdGVjdGVk
KCkNCj4+ICAgYW5kIG5vdCBmYWlsIGlmIERUIGRldmljZSBpcyBub3QgcHJvdGVjdGVkIGJ5IElP
TU1VDQo+PiAgIC1hZGQgY2hhaW5lZCBjYWxsIHRvIHNjaV9kb19kb21jdGwoKSB0byBkb19kb21j
dGwoKQ0KPj4NCj4+IFBhdGNoIDkgLSB4ZW4vYXJtOiBzY21pOiBpbnRyb2R1Y2UgU0NJIFNDTUkg
U01DIG11bHRpLWFnZW50IGRyaXZlcg0KPj4gLSBhZGRlZCAic2NtaS1zZWNvbmRhcnktYWdlbnRz
IiBhbmQgIiNzY21pLXNlY29uZGFyeS1hZ2VudC1jZWxscyINCj4+ICAgIHByb3BlcnR5IHRvICJ4
ZW4sY29uZmlnIiBub2RlIGluICJjaG9zZW4iIHRvIGluZm9ybSBTQ0kgU0NNSQ0KPj4gICAgbXVs
dGktYWdlbnQgZHJpdmVyIGFib3V0IGF2YWlsYWJsZSBhZ2VudHMgYW5kIHRoZWlyDQo+PiAgICBj
b25maWd1cmF0aW9uLiBJdCBkZWZpbmVzIDxhZ2VudF9pZD4gdG8gPHNtYy1pZCxzY21pX3NobT4g
bWFwLg0KPj4gICAgVGhpcyBvcHRpb24gaXMgWGVuIHNwZWNpZmljIGFzIFhlbiBpcyB0aGUgb25s
eSBvbmUgZW50cnkgaW4gdGhlDQo+PiAgICBzeXN0ZW0gd2hpY2ggbmVlZCB0byBrbm93IGFib3V0
IFNDTUkgbXVsdGktYWdlbnQgc3VwcG9ydCBhbmQgY29uZmlndXJhdGlvbi4NCj4+IC0gZWFjaCBn
dWVzdCB1c2luZyBTQ01JIHNob3VsZCBiZSBjb25maWd1cmVkIHdpdGggU0NNSSBhZ2VudF9pZCwg
c28gU0NNSQ0KPj4gICAgRlcgY2FuIGltcGxlbWVudCBBZ2VudC1zcGVjaWZpYyBwZXJtaXNzaW9u
IHBvbGljeS4NCj4+ICAgIC0tIGRvbTA6IGRvbTBfc2NtaV9hZ2VudF9pZD08YWdlbnRfaWQ+IGlu
IFhlbiBjb21tYW5kIGxpbmUgb3B0aW9uDQo+PiAgICAtLSB0b29sc3RhY2s6IGFybV9zY2kgPSAi
dHlwZT1zY21pX3NtY19tdWx0aWFnZW50LGFnZW50X2lkPTxhZ2VudF9pZD4iDQo+PiAgICAtLSBk
b20wbGVzczogInhlbixzY2lfdHlwZSIsICJ4ZW4sc2NpX2FnZW50X2lkIiBwcm9wZXJ0aWVzIGlu
DQo+PiAieGVuLGRvbWFpbiIgbm9kZXMuDQo+PiAtIGZhY3RvcmVkIG91dCBTQ01JIGdlbmVyaWMg
ZGVmaW5pdGlvbnMgKHJlLXVzYWJsZSkNCj4+IC0gZmFjdG9yZWQgb3V0IFNDTUkgc2htZW0gY29k
ZSAocmUtdXNhYmxlKQ0KPj4gLSB0aGUgU0NNSSBwYXNzdGhyb3VnaCBjb25maWd1cmF0aW9uIGZv
ciBndWVzdCBkb21haW5zIGlzIHNpbWlsYXIgdG8gYW55IG90aGVyDQo+PiBIVyBwYXNzdGhyb3Vn
aCBjZmcuDQo+Pg0KPj4gUGF0Y2ggMTAgLSBkb2NzOiBhcm06IGFkZCBTQ0kgU0NNSSBTTUMgbXVs
dGktYWdlbnQgZHJpdmVyIGRvY3MNCj4+IC0gYWRkIFNDSSBTQ01JIFNNQyBtdWx0aS1hZ2VudCBk
cml2ZXIgZG9jdW1lbnRhdGlvbi4NCj4+DQo+PiBBZGQgc2VwYXJhdGUgU0NNSSBEVCBub2RlIGZv
ciBYZW4gbWFuYWdlbWVudCBhZ2VudCB1bmRlciAieGVuLGNvbmZpZyINCj4+IG5vZGUgdW5kZXIg
Y2hvc2VuLg0KPj4NCj4+IEFsbCBYZW4tc3BlY2lmaWMgY29uZmlndXJhdGlvbiBwcm92aWRlZCB1
bmRlciAiL2Nob3NlbiIgbm9kZS4gVGhpcw0KPj4gYXBwcm9hY2ggYWxsb3dzIHRvIGlzb2xhdGUg
bW9kaWZpY2F0aW9ucyB0byBIb3N0IERUIG9ubHkgdW5kZXINCj4+ICIvY2hvc2VuIiBub2RlLg0K
Pj4NCj4+IFRoaXMgYXBwcm9hY2ggcHJvdmlkZXMgdGhlIGZvbGxvd2luZyBkZXZpY2UgdHJlZSAo
RFQpDQo+PiBwYXJhbWV0ZXJzIChwbGFjZWQgdW5kZXIgeGVuLGNvbmZpZyBub2RlKToNCj4+DQo+
PiAtICJzY21pLXNlY29uZGFyeS1hZ2VudHMiOiBBIFhlbi1zcGVjaWZpYyBwYXJhbWV0ZXIgdW5k
ZXIgdGhlDQo+PiAgICAiL2Nob3NlbiIgbm9kZSwgd2hpY2ggZGVzY3JpYmVzIHRoZSBTQ01JIGFn
ZW50IGNvbmZpZ3VyYXRpb24gZm9yDQo+PiAgICB0aGUgZG9tYWlucy4NCj4+IC0gdGhlIFNDTUkg
Y29uZmlndXJhdGlvbiBmb3IgWGVuIChwcml2aWxlZ2VkIGFnZW50KSBhbmQgdGhlIHNoYXJlZA0K
Pj4gICAgbWVtb3J5IGNvbmZpZ3VyYXRpb24gZm9yIGFsbCBhZ2VudHMgYXJlIHByb3ZpZGVkIHVu
ZGVyIHRoZSAiL2Nob3NlbiINCj4+ICAgIG5vZGUgYW5kIGFyZSB1c2VkIHN0cmljdGx5IGJ5IFhl
biBmb3IgaXRzIGluaXRpYWwgY29uZmlndXJhdGlvbi4NCj4+IC0gdGhlIHNjbWlfc2htIGFuZCBT
Q01JIGNvbmZpZ3VyYXRpb24gZm9yIERvbTAgYXJlIHBsYWNlZCBpbiB0aGUNCj4+ICAgICIvZmly
bXdhcmUvc2NtaSIgbm9kZSBzbyB0aGF0IHRoZXkgY2FuIGJlIG1vdmVkIHRvIERvbTAgd2l0aG91
dA0KPj4gICAgYW55IGNoYW5nZXMuDQo+Pg0KPj4gVGhpcyBjb25maWd1cmF0aW9uIGFsbG93cyB0
aGUgdXNlIG9mIFhlbi1zcGVjaWZpYyBub2RlcyB0byBwcm92aWRlDQo+PiBpbmZvcm1hdGlvbiBz
dHJpY3RseSBuZWVkZWQgYnkgWGVuIHdoaWxlIHVzaW5nIHRoZSBkZWZhdWx0IFNDTUkNCj4+IGNv
bmZpZ3VyYXRpb24gZm9yIERvbTAgYW5kIG90aGVyIGRvbWFpbnMuIEFzIGEgcmVzdWx0LCBubyBh
ZGRpdGlvbmFsDQo+PiBiaW5kaW5ncyBuZWVkIHRvIGJlIGludHJvZHVjZWQgdG8gdGhlIGRldmlj
ZSB0cmVlLg0KPj4gVGhpcyBzaW1wbGlmaWVzIHRoZSBYZW4gU0NNSSBtdWx0aS1hZ2VudCBjb25m
aWd1cmF0aW9uIGFuZCB1dGlsaXplcw0KPj4gZ2VuZXJpYyBkZXZpY2UgdHJlZSBiaW5kaW5ncyBm
b3IgdGhlIGRvbWFpbnMuDQo+Pg0KPj4gTk9URTogSGF2ZW4ndCBhZGRlZCBSQiB0YWdzIGZvciBw
YXRjaCAxIGFuZCAyIGJlY2F1c2UgcmViYXNlIGFuZCBzb21lDQo+PiBtaW5vciBjaGFuZ2VzIHdl
cmUgZG9uZS4NCj4+DQo+PiBDb2RlIGNhbiBiZSBmb3VuZCBhdDoNCj4+IGh0dHBzOi8vZ2l0aHVi
LmNvbS9vbGVrc2lpbW9pc2llaWV2L3hlbi90cmVlL3NjbWlfdXBzdHJ2NQ0KPj4NCj4+IFsxXSBS
RkMgdjI6DQo+PiBodHRwOi8vcGF0Y2h3b3JrLmtlcm5lbC5vcmcvcHJvamVjdC94ZW4tZGV2ZWwv
Y292ZXIvY292ZXIuMTY0NDM0MTYzNS5naXQub2xla3NpaV9tb2lzaWVpZXZAZXBhbS5jb20vDQo+
PiBbMl0gUkZDIHYzOg0KPj4gaHR0cHM6Ly9wYXRjaHdvcmsua2VybmVsLm9yZy9wcm9qZWN0L3hl
bi1kZXZlbC9wYXRjaC8yMDI1MDMxMTExMTYxOC4xODUwOTI3LTEtZ3J5Z29yaWlfc3RyYXNoa29A
ZXBhbS5jb20NCj4+IFNDTUkgc3BlYzoNCj4+IGh0dHBzOi8vZGV2ZWxvcGVyLmFybS5jb20vZG9j
dW1lbnRhdGlvbi9kZW4wMDU2L2UvP2xhbmc9ZW4NCj4+DQo+PiBTQ01JIGJpbmRpbmdzOg0KPj4g
aHR0cHM6Ly93ZWIuZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L3RvcnZh
bGRzL2xpbnV4LmdpdC90cmVlL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9maXJt
d2FyZS9hcm0sc2NtaS55YW1sDQo+PiBodHRwczovL3dlYi5naXQua2VybmVsLm9yZy9wdWIvc2Nt
L2xpbnV4L2tlcm5lbC9naXQvdG9ydmFsZHMvbGludXguZ2l0L3RyZWUvRG9jdW1lbnRhdGlvbi9k
ZXZpY2V0cmVlL2JpbmRpbmdzL2FjY2Vzcy1jb250cm9sbGVycy9hY2Nlc3MtY29udHJvbGxlcnMu
eWFtbA0KPj4NCj4+IFJlZmVyZW5jZSBFTDMgRlc6DQo+PiBSUEk1OiBodHRwczovL2dpdGh1Yi5j
b20veGVuLXRyb29wcy9hcm0tdHJ1c3RlZC1maXJtd2FyZS9jb21taXRzL3JwaTVfZGV2Lw0KPj4g
UmVuZXNhcyB2NGg6DQo+PiBodHRwczovL2dpdGh1Yi5jb20vR3J5Z2lyaWlTL2FybS10cnVzdGVk
LWZpcm13YXJlL2NvbW1pdHMvcmNhcl9nZW40X3YyLjdfdjR4LXNjbWlfdXBkLw0KPj4NCj4+IGJh
c2UtY29tbWl0OiBkYmU2MGYyNDRjIChVcGRhdGUgWGVuIHRvIDQuMjEsIDIwMjUtMDItMjEpDQo+
Pg0KPj4gQ2hhbmdlcyBpbiB2NToNCj4+IC0gdXBkYXRlIE1haW50YWluZXJzIGZpbGUuIFNldCBy
b2xlIGFzIGEgUmV2aWV3ZXINCj4+IC0gcmViYXNlZCBvbiB0aGUgbGF0ZXN0IG1hc3RlciBicmFu
Y2gNCj4+IC0gSW50cm9kdWNlIGFyY2hfaGFuZGxlX3Bhc3N0aHJvdWdoX3Byb3AgY2FsbCB0byBo
YW5kbGUgYXJtIHNwZWNpZmljIG5vZGVzDQo+PiAtIHJlbmFtZSBkb20wX3NjbWlfc21jX3Bhc3N0
aHJvdWdoIHRvIHNjbWlfc21jX3Bhc3N0aHJvdWdoDQo+PiAtIHJlbmFtZSBkb20wX3NjbWlfc21j
X3Bhc3N0aHJvdWdoIGluIGRvY3VtZW50YXRpb24NCj4+IC0gc2V0IGVycm9yIGNvZGUgdG8gLUVO
WElPIHdoZW4gaW9tbXUgaXMgZGlzYWJsZWQNCj4+IC0gcmV0dXJuIC1FSU5WQUwgaWYgbWVkaWF0
b3Igd2l0aG91dCBhc3NpZ25fZHRfZGV2aWNlIHdhcyBwcm92aWRlZA0KPj4gLSBpbnZlcnQgcmV0
dXJuIGNvZGUgY2hlY2sgZm9yIGlvbW11X2RvX2RvbWN0bCBpbg0KPj4gWEVOX0RPTUNUTF9hc3Np
Z25fZGV2aWNlIGRvbWN0bCBwcm9jZXNzaW5nIHRvIG1ha2UgY2xlYW5lciBjb2RlDQo+PiAtIGNo
YW5nZSAtRU5PVFNVUFAgZXJyb3IgY29kZSB0byAtRU5YSU8gaW4gc2NpX2RvX2RvbWN0bA0KPj4g
LSBoYW5kbGUgLUVOWElPIHJldHVybiBjb21kZSBvZiBpb21tdV9kb19kb21jdGwNCj4+IC0gbGVh
dmUgIWR0X2RldmljZV9pc19wcm90ZWN0ZWQgY2hlY2sgaW4gaW9tbXVfZG9fZHRfZG9tY3RsIHRv
IG1ha2UNCj4+IGNvZGUgd29yayB0aGUgc2FtZSB3YXkgaXQncyBkb25lIGluICJoYW5kbGVfZGV2
aWNlIiBjYWxsIHdoaWxlDQo+PiBjcmVhdGluZyBod2RvbShkb20wKSBhbmQgImhhbmRsZV9wYXNz
dGhyb3VnaF9wcm9wIiBjYWxsIGZvciBkb20wbGVzcw0KPj4gY3JlYXRpb24NCj4+IC0gZHJvcCBy
ZXR1cm4gY2hlY2sgZnJvbSBzY2lfYXNzaWduX2R0X2RldmljZSBjYWxsIGFzIG5vdCBuZWVkZWQN
Cj4+IC0gZG8gbm90IHJldHVybiBFSU5WQUwgd2hlbiBhZGRpZ25fZHRfZGV2aWNlIGlzIG5vdCBz
ZXQuIFRoYXQgaXMNCj4+IGJlY2F1c2UgdGhpcyBjYWxsYmFjayBpcyBvcHRpb25hbCBhbmQgbm90
IGltcGxlbWVudGVkIGluIHNpbmdsZS1hZ2VudCBkcml2ZXINCj4+IC0gbW92ZSBtZW1jcHlfdG9p
by9mcm9taW8gdG8gdGhlIGdlbmVyaWMgcGxhY2UNCj4+IC0gZml4IGRldmljZS10cmVlIGV4YW1w
bGUgZm9ybWF0IGluIGJvb3RpbmcudHh0LCBhZGRlZCAiOyIgYWZ0ZXIgIn0iLg0KPj4gLSB1cGRh
dGUgZGVmaW5lIGluIHNjbWktcHJvdG8uaA0KPj4gLSB1cGRhdGUgZGVmaW5lIGluIHNjbWktc2ht
ZW0uaCBmaWxlDQo+PiAtIHNjbWlfYXNzaWduX2RldmljZSAtIGRvIG5vdCBpZ25vcmUgLUVPUE5P
VFNVUFAgcmV0dXJuDQo+PiBjb2RlIG9mIHRoZSBkb19zbWNfeGZlcg0KPj4gLSByZW1vdmUgb3Zl
cndyaXRpbmcgYWdlbnRfY2hhbm5lbC0+YWdlbnRfaWQgYWZ0ZXINCj4+IFNDTUlfQkFTRV9ESVND
T1ZFUl9BR0VOVCBjYWxsDQo+PiAtIGFkZCBtdWx0aS1hZ2VudCBmaWxlcyB0byB0aGUgTUFJTlRB
SU5FUlMNCj4+IC0gYWRkIFNDTUkgbXVsdGktYWdlbnQgZGVzY3JpcHRpb24gdG8gdGhlIFNVUFBP
UlQubWQNCj4+IC0gaGFuZGxlIEFSTV9TTUNDQ19JTlZBTElEX1BBUkFNRVRFUiByZXR1cm4gY29k
ZSBhbmQgcmV0dXJuIC1FSU5WQUwNCj4+IGZvciBzbWMgY2FsbA0KPj4gLSB1cGRhdGVkIGNvbGxl
Y3RfYWdlbnRzIGZ1bmN0aW9uLiBTZXQgYWdlbnRfaWQgcGFyYW1ldGVyIGFzIG9wdGlvbmFsDQo+
PiBpbiBzY21pLXNlY29uZGFyeS1hZ2VudHMgZGV2aWNlLXRyZWUgcHJvcGVydHkNCj4+IC0gaW50
cm9kdWNlICIjc2NtaS1zZWNvbmRhcnktYWdlbnRzLWNlbGxzIiBwYXJhbWV0ZXIgdG8gc2V0IGlm
DQo+PiBhZ2VudF9pZCB3YXMgcHJvdmlkZWQNCj4+IC0gcmVhbm1lIHhlbixzY21pLXNlY29uZGFy
eS1hZ2VudHMgcHJvcGVydHkgdG8gc2NtaS1zZWNvbmRhcnktYWdlbnRzDQo+PiAtIG1vdmUgbWVt
Y3B1X3RvaW8vZnJvbWlvIGZvciB0aGUgZ2VuZXJpYyBwbGFjZQ0KPj4gLSB1cGRhdGUgWGVuIHRv
IGdldCBtYW5hZ2VtZW50IGNoYW5uZWwgZnJvbSAvY2hvc2VuL3hlbixjb25maWcgbm9kZQ0KPj4g
LSBnZXQgaHlwZXJ2aXNvciBjaGFubm5lbCBmcm9tIG5vZGUgaW5zdGVhZCBvZiB1c2luZyBoYXJk
Y29kZWQNCj4+IC0gdXBkYXRlIGhhbmRsaW5nIHNjbWkgYW5kIHNobWVtIG5vZGVzIGZvciB0aGUg
ZG9tYWluDQo+PiAtIFNldCBtdWx0aS1hZ2VudCBkcml2ZXIgdG8gc3VwcG9ydCBvbmx5IEFybTY0
DQo+PiAtIHJld29yayBtdWx0aS1hZ2VudCBkcml2ZXIgdG8gbGVhdmUgSG9zdCBEZXZpY2UtdHJl
ZSB1bm1vZGlmaWVkDQo+Pg0KPj4gQ2hhbmdlcyBpbiB2NDoNCj4+IC0gZml4IFNQRFgtTGljZW5z
ZQ0KPj4gLSByZW5hbWUgREVWSUNFX0FSTV9TQ0kgRFQgZGV2aWNlIGNsYXNzIHRvIEZJUk1XQVJF
X0RFVklDRQ0KPj4gLSBtb3ZlIFhFTl9ET01DVExfYXNzaWduX2RldmljZSBjb2RlIGluIHNlcGFy
YXRlIHBhdGNoDQo+PiAtIEFkZCBkb2N1bWVudGF0aW9uIGZvciBTQ0kgU0NNSSBkcml2ZXJzDQo+
PiAtIHhsLmNmZyBkb2MNCj4+IC0gZml4IGNvbW1lbnRzIGZyb20gU3RlZmFubyBTdGFiZWxsaW5p
DQo+PiAtIGZpeCB0b29sc3RhY2sgY29kZSBhcyBzdWdlc3RlZCBieSBBbnRob255IFBFUkFSRA0K
Pj4gICAgLSB1c2UgTUFUQ0hfT1BUSU9OKCkNCj4+ICAgIC0gbW92ZSBhcm1fc2NpIHN0cnVjdCBh
bmQgY2ZnIHBhcmFtcyBpbiAiYXJjaF9hcm0iDQo+PiAtIGFkZCBTQ01JIHBhc3N0aHJvdWdoIGZv
ciBkb20wbGVzcyBjYXNlDQo+PiAtIHRvb2xzdGFjayBjb21tZW50cyBmcm9tIEFudGhvbnkgUEVS
QVJEDQo+PiAtIGFkZGVkIGRvbTBsZXNzIHN1cHBvcnQNCj4+IC0gYWRkZWQgZG9jIGZvciAieGVu
LHNjbWktc2Vjb25kYXJ5LWFnZW50cyINCj4+DQo+PiBHcnlnb3JpaSBTdHJhc2hrbyAoNSk6DQo+
PiAgICB4ZW4vYXJtOiBzY21pLXNtYzogdXBkYXRlIHRvIGJlIHVzZWQgdW5kZXIgc2NpIHN1YnN5
c3RlbQ0KPj4gICAgeGVuL2FybTogc2NtaS1zbWM6IHBhc3N0aHJvdWdoIFNDTUkgU01DIHRvIGRv
bWFpbiwgc2luZ2xlIGFnZW50DQo+PiAgICBkb2NzOiBhcm06IGFkZCBkb2NzIGZvciBTQ01JIG92
ZXIgU01DIGNhbGxzIGZvcndhcmRpbmcgZHJpdmVyDQo+PiAgICB4ZW4vZG9tY3RsOiBleHRlbmQg
WEVOX0RPTUNUTF9hc3NpZ25fZGV2aWNlIHRvIGhhbmRsZSBub3Qgb25seSBpb21tdQ0KPj4gICAg
ZG9jczogYXJtOiBhZGQgU0NJIFNDTUkgU01DIG11bHRpLWFnZW50IGRyaXZlciBkb2NzDQo+Pg0K
Pj4gT2xla3NpaSBNb2lzaWVpZXYgKDUpOg0KPj4gICAgeGVuL2FybTogYWRkIGdlbmVyaWMgU0NJ
IHN1YnN5c3RlbQ0KPj4gICAgZHJpdmVyczogaW9tbXU6IGNoYW5nZSBlcnJvciBjb2RlIHdoZW4g
aW9tbXUgaXMgZGlzYWJsZWQNCj4+ICAgIHhlbjogYXJtOiBzbWNjYzogYWRkIElOVkFMSURfUEFS
QU1FVEVSIGVycm9yIGNvZGUNCj4+ICAgIGxpYi9hcm06IEFkZCBJL08gbWVtb3J5IGNvcHkgaGVs
cGVycw0KPj4gICAgeGVuL2FybTogc2NtaTogaW50cm9kdWNlIFNDSSBTQ01JIFNNQyBtdWx0aS1h
Z2VudCBkcml2ZXINCj4+DQo+PiAgIE1BSU5UQUlORVJTICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAxMCArDQo+PiAgIFNVUFBPUlQubWQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAxMSArDQo+PiAgIC4uLi9hcm0vZmlybXdhcmUvYXJtLXNjbWkucnN0
ICAgICAgICAgICAgICAgICB8IDUxNiArKysrKysrKysrKw0KPj4gICBkb2NzL2h5cGVydmlzb3It
Z3VpZGUvYXJtL2luZGV4LnJzdCAgICAgICAgICAgfCAgIDkgKw0KPj4gICBkb2NzL2h5cGVydmlz
b3ItZ3VpZGUvaW5kZXgucnN0ICAgICAgICAgICAgICAgfCAgIDEgKw0KPj4gICBkb2NzL21hbi94
bC5jZmcuNS5wb2QuaW4gICAgICAgICAgICAgICAgICAgICAgfCAgNDcgKw0KPj4gICBkb2NzL21p
c2MvYXJtL2RldmljZS10cmVlL2Jvb3RpbmcudHh0ICAgICAgICAgfCAxMDMgKysrDQo+PiAgIGRv
Y3MvbWlzYy94ZW4tY29tbWFuZC1saW5lLnBhbmRvYyAgICAgICAgICAgICB8ICAxOCArDQo+PiAg
IHRvb2xzL2luY2x1ZGUvbGlieGwuaCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNSArDQo+
PiAgIHRvb2xzL2xpYnMvbGlnaHQvbGlieGxfYXJtLmMgICAgICAgICAgICAgICAgICB8ICAxOCAr
DQo+PiAgIHRvb2xzL2xpYnMvbGlnaHQvbGlieGxfdHlwZXMuaWRsICAgICAgICAgICAgICB8ICAx
MiArDQo+PiAgIHRvb2xzL3hsL3hsX3BhcnNlLmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICA0OCArKw0KPj4gICB4ZW4vYXJjaC9hcm0vZGV2aWNlLmMgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgIDUgKw0KPj4gICB4ZW4vYXJjaC9hcm0vZG9tMGxlc3MtYnVpbGQuYyAgICAgICAgICAg
ICAgICAgfCAgNTEgKysNCj4+ICAgeGVuL2FyY2gvYXJtL2RvbWFpbi5jICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgIDEyICstDQo+PiAgIHhlbi9hcmNoL2FybS9kb21haW5fYnVpbGQuYyAgICAg
ICAgICAgICAgICAgICB8ICAxMSArLQ0KPj4gICB4ZW4vYXJjaC9hcm0vZmlybXdhcmUvS2NvbmZp
ZyAgICAgICAgICAgICAgICAgfCAgMzcgKy0NCj4+ICAgeGVuL2FyY2gvYXJtL2Zpcm13YXJlL01h
a2VmaWxlICAgICAgICAgICAgICAgIHwgICAyICsNCj4+ICAgeGVuL2FyY2gvYXJtL2Zpcm13YXJl
L3NjaS5jICAgICAgICAgICAgICAgICAgIHwgMTg5ICsrKysrDQo+PiAgIHhlbi9hcmNoL2FybS9m
aXJtd2FyZS9zY21pLXByb3RvLmggICAgICAgICAgICB8IDE2NCArKysrDQo+PiAgIHhlbi9hcmNo
L2FybS9maXJtd2FyZS9zY21pLXNobWVtLmMgICAgICAgICAgICB8IDExMiArKysNCj4+ICAgeGVu
L2FyY2gvYXJtL2Zpcm13YXJlL3NjbWktc2htZW0uaCAgICAgICAgICAgIHwgIDQ1ICsNCj4+ICAg
eGVuL2FyY2gvYXJtL2Zpcm13YXJlL3NjbWktc21jLW11bHRpYWdlbnQuYyAgIHwgODAzICsrKysr
KysrKysrKysrKysrKw0KPj4gICB4ZW4vYXJjaC9hcm0vZmlybXdhcmUvc2NtaS1zbWMuYyAgICAg
ICAgICAgICAgfCAxOTEgKysrKy0NCj4+ICAgeGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2RvbWFp
bi5oICAgICAgICAgICAgIHwgICA1ICsNCj4+ICAgeGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2Zp
cm13YXJlL3NjaS5oICAgICAgIHwgMjE0ICsrKysrDQo+PiAgIHhlbi9hcmNoL2FybS9pbmNsdWRl
L2FzbS9maXJtd2FyZS9zY21pLXNtYy5oICB8ICA0MSAtDQo+PiAgIHhlbi9hcmNoL2FybS9pbmNs
dWRlL2FzbS9zbWNjYy5oICAgICAgICAgICAgICB8ICAgMSArDQo+PiAgIHhlbi9hcmNoL2FybS92
c21jLmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQ0KPj4gICB4ZW4vY29tbW9u
L2RldmljZS10cmVlL2RvbTBsZXNzLWJ1aWxkLmMgICAgICAgfCAgIDQgKw0KPj4gICB4ZW4vY29t
bW9uL2RvbWN0bC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTkgKw0KPj4gICB4ZW4v
ZHJpdmVycy9wYXNzdGhyb3VnaC9kZXZpY2VfdHJlZS5jICAgICAgICAgfCAgIDYgKw0KPj4gICB4
ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5jICAgICAgICAgICAgICAgfCAgIDIgKy0NCj4+
ICAgeGVuL2luY2x1ZGUvYXNtLWdlbmVyaWMvZGV2aWNlLmggICAgICAgICAgICAgIHwgICAxICsN
Cj4+ICAgeGVuL2luY2x1ZGUvYXNtLWdlbmVyaWMvZG9tMGxlc3MtYnVpbGQuaCAgICAgIHwgICA5
ICsNCj4+ICAgeGVuL2luY2x1ZGUvcHVibGljL2FyY2gtYXJtLmggICAgICAgICAgICAgICAgIHwg
ICA4ICsNCj4+ICAgeGVuL2luY2x1ZGUveGVuL2xpYi9hcm0vaW8uaCAgICAgICAgICAgICAgICAg
IHwgIDE1ICsNCj4+ICAgeGVuL2xpYi9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgICAxICsNCj4+ICAgeGVuL2xpYi9hcm0vTWFrZWZpbGUgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAxICsNCj4+ICAgeGVuL2xpYi9hcm0vaW8uYyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgIDgwICsrDQo+PiAgIDQwIGZpbGVzIGNoYW5nZWQsIDI3NDQgaW5zZXJ0aW9u
cygrKSwgODcgZGVsZXRpb25zKC0pDQo+PiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBkb2NzL2h5cGVy
dmlzb3ItZ3VpZGUvYXJtL2Zpcm13YXJlL2FybS1zY21pLnJzdA0KPj4gICBjcmVhdGUgbW9kZSAx
MDA2NDQgZG9jcy9oeXBlcnZpc29yLWd1aWRlL2FybS9pbmRleC5yc3QNCj4+ICAgY3JlYXRlIG1v
ZGUgMTAwNjQ0IHhlbi9hcmNoL2FybS9maXJtd2FyZS9zY2kuYw0KPj4gICBjcmVhdGUgbW9kZSAx
MDA2NDQgeGVuL2FyY2gvYXJtL2Zpcm13YXJlL3NjbWktcHJvdG8uaA0KPj4gICBjcmVhdGUgbW9k
ZSAxMDA2NDQgeGVuL2FyY2gvYXJtL2Zpcm13YXJlL3NjbWktc2htZW0uYw0KPj4gICBjcmVhdGUg
bW9kZSAxMDA2NDQgeGVuL2FyY2gvYXJtL2Zpcm13YXJlL3NjbWktc2htZW0uaA0KPj4gICBjcmVh
dGUgbW9kZSAxMDA2NDQgeGVuL2FyY2gvYXJtL2Zpcm13YXJlL3NjbWktc21jLW11bHRpYWdlbnQu
Yw0KPj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgeGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2Zpcm13
YXJlL3NjaS5oDQo+PiAgIGRlbGV0ZSBtb2RlIDEwMDY0NCB4ZW4vYXJjaC9hcm0vaW5jbHVkZS9h
c20vZmlybXdhcmUvc2NtaS1zbWMuaA0KPj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgeGVuL2luY2x1
ZGUveGVuL2xpYi9hcm0vaW8uaA0KPj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgeGVuL2xpYi9hcm0v
TWFrZWZpbGUNCj4+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9saWIvYXJtL2lvLmMNCj4+DQo+
PiAtLQ0KPj4gMi4zNC4xDQo+Pg0K


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 09:24:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 09:24:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095800.1450674 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urCO1-0008SY-0j; Wed, 27 Aug 2025 09:24:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095800.1450674; Wed, 27 Aug 2025 09:24: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 1urCO0-0008SR-UC; Wed, 27 Aug 2025 09:24:08 +0000
Received: by outflank-mailman (input) for mailman id 1095800;
 Wed, 27 Aug 2025 09:24:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Gy2E=3H=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urCNy-0008SL-Uu
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 09:24:06 +0000
Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com
 [2a00:1450:4864:20::52d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 91a00d57-8327-11f0-b898-0df219b8e170;
 Wed, 27 Aug 2025 11:24:02 +0200 (CEST)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-61c7942597fso1545950a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 27 Aug 2025 02:24: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
 a640c23a62f3a-afe8f8129f0sm483124366b.41.2025.08.27.02.24.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Aug 2025 02:24: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>
X-Inumbo-ID: 91a00d57-8327-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756286641; x=1756891441; 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=aVCmVUikaMazOwdYeksdkpw3TajRpy/uqumJ5hr7M+g=;
        b=JaqSWrjdHoy8NPTVi8tlV37FcPUBc5TpvYOnishUwO5Za1G486WvR6n55kPCvvBqZZ
         yOmtlX8hgA3zGy+2/aQWLrnuZHMxfdyEQ6GCjvv5l2wybxZmI0wPe+Uuln9GQoq2fpKR
         LKzA5UFRxyyRMdcRRFLJFqlxiAhLXlE5V3futtwPj2gj8NOdP69ecihnDKzMtP2/9m+Y
         F0dCTJPMIRX/tFuLnt5+CvjOzwkl+mJsCP31PRkfj5/ZsXFa1zcwcDfiRIVdIyNthv8H
         gnfrKZa7chwrt7S2bCib4acq/nBIkds0ctfljDFQ9T6niuKl2TRwN1v7NG1/aI1hRU+c
         9E4g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756286641; x=1756891441;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc
         :content-language:references:to:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=aVCmVUikaMazOwdYeksdkpw3TajRpy/uqumJ5hr7M+g=;
        b=Lmn1BPDbCEoq9mvCiw/AUSN30ohh4q4Q0rwQY5U9YN9UZLvuxva3HLQzT3sKbTV9Ym
         K7EIUxzSXMf0HedMe6NNablq4ZBH744O9Xbqphh5a3KfDkraGZPAgt+KNA+JYj7lXqZq
         hAPPl7KJYoBXnyD4XiZMuuU+LOImGwdeBrvo4P2RsH09hllQ7X1adZ9tY/VAbFzXyS1y
         ePZOAlK7/2xOeMent+M2axfrVtlaT9RT1hI3qZnoO1xGy7HFWP8Bx+Xw/bUU741Xejc4
         FHCeLPrgvJKprEZyRV8luImNk24nIHC0U6jsCrlv2Iez6rKf9XLa8/4PdPZjIyDROCZl
         mOKg==
X-Gm-Message-State: AOJu0YxXQ9ZZLcqmFPjOZf0S/xS5ZwogoKdoo1ytOD0gL9363NL5Kgaf
	jQkNzAUwYQHeug4v/9XfRQ87Vvkhgkdj9hiQ3Wp+41MVY8bGKISWQYTZFpjaekX4CA==
X-Gm-Gg: ASbGncupZY2RerrSgOzjkA/NX/bjWRMLpIN2Y6UWvbfoTRalOtCR+3kQG277H3nTL+L
	N9CKzuZ+Zae6BVK5hqUKPyO5cTtfrEiZlF10hAWB43un6mSZ/JS3PMzgh3W7tzv71NKLEpQWD/r
	eCkuuH+OgNzidz5xcfmuqaf5csNgMCb43nhQZGdXvgPhgyumgUp57qnObym6SQSZqTrpPGGyRf7
	4mJ8wbki9/AkkzIO5ZXTxUKfM+tL/fvbsxsYv/4xfM4vlRwmVQTSq7YTE2X8BnYb8/ml0JktC92
	qVZYadOsExCLDqHcaYbE4Stu6sYMCyfocD2LpfPZsLuSHtZfeS7GDlLJqwJOZ7hJuDWJJn7XpuJ
	gBYNfG+GIgpUX9yZ820FvYGMRH3KTmlpeU05D1lALdomuSg5hmmkrto440XrITsCgvGPrvo2kd3
	/3peOcu6fYQjCBdJmpFJHabpuYM/hb
X-Google-Smtp-Source: AGHT+IG2FdIq3U3+Yeh55TSFxVkR875gm6D/45ZUP/3fbbdL/Yt+OrsfTxizDW2TZ2x00dszOXxSZA==
X-Received: by 2002:a17:907:3f1d:b0:af9:21ed:6ebe with SMTP id a640c23a62f3a-afeafec8143mr394758466b.21.1756286641406;
        Wed, 27 Aug 2025 02:24:01 -0700 (PDT)
Message-ID: <615d5595-3023-4fc1-a5e0-cd69c0eafdbf@suse.com>
Date: Wed, 27 Aug 2025 11:24:00 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [Reminder] Feature Freeze is Fri Aug 29, 2025
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <07fc7122-d0ac-4dbe-800d-89086a07005b@gmail.com>
Content-Language: en-US
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Community Manager <community.manager@xenproject.org>,
 "committers@xenproject.org" <committers@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: <07fc7122-d0ac-4dbe-800d-89086a07005b@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 25.08.2025 17:50, Oleksii Kurochko wrote:
> Hello community,
> 
> Iâ€™d like to remind everyone that the Feature Freeze deadline is approaching,
> and we still have some outstanding requests from the community for patch series
> to be merged into 4.21:
> 
> 1. Enable guest suspend/resume support on ARM via vPSCI [1]
> 2. Introduce SCI SCMI SMC multi-agent support [2]
> 3. Introduce eSPI support [3]
> 4. FRED work: [4], [5], possibly others (?)
> 5. Introduce CONFIG_DOMCTL [6]
> 6. xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE [7]
> 7. Some other patch series I missed.

"symbols: assorted adjustments" plus the later "symbols: discard stray file
symbols", provided someone would take the time to actually look at the patches?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 09:56:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 09:56:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095833.1450700 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urCtT-0004Si-Jk; Wed, 27 Aug 2025 09:56:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095833.1450700; Wed, 27 Aug 2025 09:56: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 1urCtT-0004Sb-H7; Wed, 27 Aug 2025 09:56:39 +0000
Received: by outflank-mailman (input) for mailman id 1095833;
 Wed, 27 Aug 2025 09:56:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=x+iP=3H=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1urCtS-0004Re-3O
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 09:56:38 +0000
Received: from AM0PR83CU005.outbound.protection.outlook.com
 (mail-westeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c201::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1c642711-832c-11f0-b898-0df219b8e170;
 Wed, 27 Aug 2025 11:56:33 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by DBAPR03MB6375.eurprd03.prod.outlook.com (2603:10a6:10:191::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.18; Wed, 27 Aug
 2025 09:56:30 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Wed, 27 Aug 2025
 09:56: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>
X-Inumbo-ID: 1c642711-832c-11f0-b898-0df219b8e170
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=r1SZITMoR1/QzJsrG9z2oPt4nGqsHFu7Qb6W7Ot/YaN9qjd3lWQ0iC5RmcjRG5n8Xo73bKtCPxZmtDSIaqAJ1iakEJoXjs7PljNHvOfe8QPteSNTT2vso9YK1+Mtnl3+hXeTeVocihkAuIMhbmBVWvcajqNalD/oV3odLeGgwRepxLaGbYDQpbdVDTXnoebjhWIQfUJtGl+SFU9Fmk9siIjAlu/rkGtEypKeb+k4UkW1bJVn23yFzrR4XyVc/e/LRVtnlC5PQLhJNZJPmiOoaSKjyr/vR5eMHHwsdtHefD5XOvAAUAZ1eRc5YTx7u5jjaMQbVkW6L8X568ItKY96xA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Sk9MTeSqAJsOwFsGwlwiWp2WLGRnwVfai487mcVPBwA=;
 b=cbPRRzAzg+dOCZHav8/ZaManIe/WAgA/eO/Z0fXpko4p7LipLAFNZyYZxmFriXPaIX1N6UQpsrX4GKSXRk3ge8DEbflBzTwltU2lU66spxv8bVX2pLgp3V2MGuLpk9JoNmqo/PAvONkqAGnqplPNZeAF7c6W/OD35QK+DqlOBRV1SUWzvF4MLaqdp4N0V0GWGHi6loxM/pdxiibzKBeP9LbmIbo8fgTaQyCIGKnWcwNJpqGr1ygnmozO5/6ch+er3kHH3yNgMKhnP7hIASeOrWr0H3rSh7rb4S0Rdmp8DXgXb4MOkdKAu2JUBeU8I5eNFDezhdOSKssRTsb9EPe/8w==
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=Sk9MTeSqAJsOwFsGwlwiWp2WLGRnwVfai487mcVPBwA=;
 b=Z/iOq51Ub1RQyqK/nXRRPvzVxLCfrSHGftf/slH53eIYMuIC1L8s1hJkCvWvwUK83ho87Q+BxRIe1fWWklUoiqs9E600E5hPK8li9pZGomdDihxQ8Ybv5ZSb0DzGCK7d0umMm4PLryxEldAyg/uVKKRN5VR0gCnQQZg8swVrTIdfy/7kFA++fwDVZhezSPfI9XtG+eZ07EfXkV3PXtOCIcrYWKNakV3GAQ0/FTeItodzXLUhwQF29koADL5Cu3EW8v2OknYQbx3s5ghB1HDnVCuhguC4A2jZkZbvj9uIJDrVDnpmeYYdj1jg7UmVF45y4Tj0MzwBJUQAvjtQ0JUFkw==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"olekstysh@gmail.com" <olekstysh@gmail.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v3 05/11] xen/arm: gicv3: implement handling of GICv3.1
 eSPI
Thread-Topic: [PATCH v3 05/11] xen/arm: gicv3: implement handling of GICv3.1
 eSPI
Thread-Index: AQHcFpJ/0RYrIev2JkmWYheOK3kVZ7R2RJKA
Date: Wed, 27 Aug 2025 09:56:30 +0000
Message-ID: <8d4b5c42-4f06-444b-9f62-72add8e1cb92@epam.com>
References: <cover.1756216942.git.leonid_komarianskyi@epam.com>
 <398ad09617f4f97d57d13fa9f3771bd2db83916b.1756216943.git.leonid_komarianskyi@epam.com>
 <87tt1t4t6s.fsf@epam.com>
In-Reply-To: <87tt1t4t6s.fsf@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: GV2PR03MB8678:EE_|DBAPR03MB6375:EE_
x-ms-office365-filtering-correlation-id: ae2fadd9-c61a-4abe-9a67-08dde54fff3c
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?Y1M3MHY5QTRRRDViQTd0QnNGOS9MbVBPNlk3WXZCY3F4dzdBR1hNL0trWGRs?=
 =?utf-8?B?STFVK0FacWNTZXhJQnB2VG12Q3hOandpVDhaUEloNjdXY0pQVVNvSWlkbjhq?=
 =?utf-8?B?M2ZMVFFsQ2t0ZUxxVGExT2ZWQWUralJQanVLMjBobVNCbHAvYnlNL2dzQUhI?=
 =?utf-8?B?WDhmQk5QdU9lYjRVd3NZcVAwYjR5UXdDQnhuVHFIeWo2c2ZIU1BETERRUHZn?=
 =?utf-8?B?UFRXaUlIKysra0Z2cUc0cHNyL0lXVHVQa3UrdWVPTThPWnVtNWdlTmM5RERz?=
 =?utf-8?B?YWF6QVFmZlN5eko5RmFkVnVGVXRvd2VGTXdNSFg1Y3hHa1crUE5lTlpTREs3?=
 =?utf-8?B?NUhlRFN5MTZGQndpTUZWZTBUT0R0S0Y1T1ZEK3NXazdUdDRqdzFRaHhpOTRl?=
 =?utf-8?B?WWlCZmNyUDNGNnhVZWxJYjY0SVN2UkNFNE53Q3JreXFPZ01lZm44YUthZ2hj?=
 =?utf-8?B?MnRMcy9jOHNkNDhlNjNSMDFHOVNUbkY2Q2RNRkVGOHVkcGNpQkp5Zm1GUU42?=
 =?utf-8?B?OUZPM2ppOTVVZlZ3NlVEZFZDZlhtcXEwRFJ4bXFtWDYxSk5jWWZzMkZJbmdF?=
 =?utf-8?B?WU43STA3WmxvYzRJVmNwTDAycGUwbHNvMUhPdHBuNHlHSmhpQ1JDMjhKQ2NJ?=
 =?utf-8?B?dTZOQkNtZjFOcmNSUVY2VkxvTlcxOXJwNWQvZ1BvNnVodytsTnlhaHIrdzJs?=
 =?utf-8?B?V3BqUit6MUpaQmdKdmlLQU5kU25TU21MTVFLdlFBYjEyeGJmcjhGQVpyZlpH?=
 =?utf-8?B?N2E3RklGQktxSG5leGFPUW9QejZKNkZHVlQwUjYwQW1LR0xHQmE1Z2d0Yzhi?=
 =?utf-8?B?cUYvbjJuUVB3WHJ6M0dBanZVWThUbm5JOWNNMWJrSVZGYTdNUTR3VmR2UTZV?=
 =?utf-8?B?NW8zK1NpdW1BOEgzNFIrNHRUNVpEZEFyTmxnc083ZXhBa3c0cm9NU2VObnZy?=
 =?utf-8?B?SDA2RnF1WkdIT2EvenRiSU1CcXdrZXhOaUhVbWg5WWo3Ykt1cnZqREtwSWpa?=
 =?utf-8?B?bkg3UmR2eGMzVWQ5eG9PNHBNaHhZWGFwMGRPT2c2MmZVd0VtYVMyVGZ2WXQ1?=
 =?utf-8?B?T1BOVXQwRS9haCtaMTRXT1NKTENNYVZQV3prdENWMnhIMnFtRVZVTW0vNlJ1?=
 =?utf-8?B?YmhMWjMvOUI0SWhKKzBiakZNWFdtL2QrZ2NKQkl6SFpZVzkrNDVGeE4xOXB2?=
 =?utf-8?B?NXpXaTk4WlNKY2hqYWVxREt6OWwzNU5ITzJSWmdTcS9pSGtsQlN5N1hUU2Uz?=
 =?utf-8?B?OUxlcHRWUUxEa2hJY3dSUlUzeWVmVm1EYW5UM2FEL2FYRVVZU2RaaVVlTUp1?=
 =?utf-8?B?cmlOQzFuenkwR3BQRUFYQ2VaSmlaYmVOWGJwUzJQd3JBK1NOYnRDT0ZTb2Z5?=
 =?utf-8?B?RW80QmpCckFiZS9aelFIeVFGYXpFaS9tRlhrZy8zZ2l6VXR6Mk0zd1B1RHVs?=
 =?utf-8?B?Q01MSjV3NC8zMWZCM3FPYW5KUlRsUnp0MWw1RHVvd0pwWGQydWdTNHUzaERw?=
 =?utf-8?B?WUE0SXRmaGtrY04zYUszYllhZDEwQXJFZ2hPb1VENTFFYTFBMDZ0aVkyandI?=
 =?utf-8?B?RkZmUmtaL0ZlaWRtbUYrYWxEMzhaSHBUbVdMSFJhd3dxd2tUSm9YVDlqSGxj?=
 =?utf-8?B?SnQ2VnBHYXBiQ3p2aXlhR2QrTjh3NEhITUQ0Tzh1bUdHMTg2Ym56VzlOUU9V?=
 =?utf-8?B?bWhObzZYeTJpOHQ3emJOeFVGczJWd2Mybm1aMTZHeUtBY1h1dW54Z2tsNENT?=
 =?utf-8?B?VTRyaXVWS1RGaXZTTkQ1ZHErUmw3U290NFlzMm4wbW1vL2EyNmRzdEJ1NTNi?=
 =?utf-8?B?OUdCTHJNa0pWNG8zdzVZNzgybkNkRHB2eXpYMHdVOXBiQThqcjI2Y2liY0ZI?=
 =?utf-8?B?eTJzenJGdE5VWWh2OEZZVTA2ZEExVUNLdGtWRmFXVHhHUWJtTmpqMU1mN1Qw?=
 =?utf-8?B?U0NVODZYcDFWRmxqR1FyVGVVRE9od2FxSjh4eUpzdVJRR0FaUXEvbytJVlZs?=
 =?utf-8?B?WU9YcUdwcTZnPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?MlhKT09PcHNEeDJaV1lxQlltTWc5TndtUDk3N2JCNjFSbml5eFRBcU9ndjY0?=
 =?utf-8?B?ZlQ3NU01Y1MzN29SYlRTczZ4TTZ2MkRXQ1hEODdGZGc5YjlOc0xxVHRjVms4?=
 =?utf-8?B?cTl2VncyQ2N3Y3lkVFN0MElxckU0d041enFuU1pTa2pqcUVjTlVJRExwR21r?=
 =?utf-8?B?aVEyMmo4QXpSV2ZuNU41NlVpZ2ZjRHZQUCtMM1pXVmlxWGtuS3poQ3p0eGFm?=
 =?utf-8?B?WEh5MmdldHlLdk9vcTZta090ZXBnUTI2dzhRWUxRQnhuRGhVQ0Jua3Z5NnNM?=
 =?utf-8?B?ekNZNzBVb2pZNTBKQ0VwVmhkSTA0ZkFabDNNdXk2MDRJNm1qczBQLzQyeUJR?=
 =?utf-8?B?WHlvNGFNZUZab0doT3BHaEU5bEFIejIzK3dSbFlMejFNZmwrVnBqRE5ZZGgr?=
 =?utf-8?B?UmQ2d1ZCOW9QS3o2R3NVb29XMEZYbTV3cTZkOVdJZTBVV2I1Z2dhc25paEJH?=
 =?utf-8?B?T3dUZnBkQ1FtS0lGQUpXc0R5OUxsZVkxQmZpVjhBV3pOYTB2SlMyUlFNc0lT?=
 =?utf-8?B?V2l2U3A2UmJyWnZpOW9TdFFPMEp3R0diYm1kdURGd2lTNzNMMHd1OEdVVkpz?=
 =?utf-8?B?TFJlQjdNRytKbmYxaXZlWFFVL0dpa2RwYm1KN2doYUE3TXlMZk5jUzFGbXo1?=
 =?utf-8?B?QjZCVFhWOUIyazZ3NE9nK1NPSEJDS2NVbFlucUp3OHd3WThTYTlJSURnQUt2?=
 =?utf-8?B?YlVtU0hIK0xZeWF3V1NVc3AxMGduOGgzcmFEeCtaSnFObHJDc0tWdFIrN2Jo?=
 =?utf-8?B?SGxSQlI4bEhod3dsNWF5TVZweEdHbVdFaldnZFMrT3NXT3pHOG1WN2x4d0tS?=
 =?utf-8?B?eG82NVl0L3dRRUJiZUN5Z1JtcnlEaGxPZkRnd1VwQWJxUVZscENhRmZSd094?=
 =?utf-8?B?Y3JGaEEzUFl4SlR2TUhEckRBQ2JYazhtVU1jMkp5L1kzbWZsYTBJRHdyZEla?=
 =?utf-8?B?eTlFd1laVXdobzgvQmFpVlFoS2J4WXNBcG41dUlBT3lFdUdLZzlxT2E0d1FY?=
 =?utf-8?B?RlUxU3dPNW1BOFZzTksyZ05QZVBKNUYzcTJBSUFkMDhKNnc5VXh5TkV6aUlE?=
 =?utf-8?B?WUphL05PQWVJNm5HWEVhZkNvT3FZRksrRGg3RkhZNHcrVnRqQVhHWlJMOVBw?=
 =?utf-8?B?LzFVYkdzMWMyTytyMk5ZVUZmSmJTcnl5UGxQNHZPcUZRNWNmYmxWc0NxeGt3?=
 =?utf-8?B?NDYxaDNNbDhkSVJiam43bmZFR1FzMXJvOEcwZUtlWHhJcVZWeHBlVGYxa2pR?=
 =?utf-8?B?VzhBSlJqUWdpNktLVHFSRC9Ya3VWNGJJU3JIMDhFZklRWjNVVXBBM3NZNHI4?=
 =?utf-8?B?ZGNXZ1BkRTN4L2FDTjFMcmFnMVNtN0xQc1BhZlpHQjBDdU8zTUt3elBJT0VN?=
 =?utf-8?B?cW1UK2daZ1pNNlJ0NndQL21MNTE4Q0ZWeUhHVk5nSVdWYi80R1lva0p5ckNw?=
 =?utf-8?B?WXQ3aytpNDZDWk0zNkEzdDNQSmpUSGMzN2h3M1duYXRPK2lNUmNhelVob2pN?=
 =?utf-8?B?VDg2aXNmeis5eVNaNUpZd3VrOUtSYWFjbmczSEVKVlZOY0lza1ZybVJmd21a?=
 =?utf-8?B?T0RwQ2Nnem1RZzBwalhoT3lZb2VIYzgvYnBIVlZGTmJSY0NyRElaaVlCbDV4?=
 =?utf-8?B?MUgrN3hxaVNnUDVvU1Ezc1ZKckZKWnZleWFVS1pXTXE1MlVQMzRwcDhDSWZ0?=
 =?utf-8?B?Z3JrWmVObXJLK2x0S3R1RVVYR0Q5Vk9kMDNZcWVxcnpuZHF4SHNmaVBhQU11?=
 =?utf-8?B?Ly9JeHM0bmphSi90NmtUNlRlZ25NRFhla0dvdjNiQWxNTzU3cWhHYTNwK0Uy?=
 =?utf-8?B?TU5MRmRncmFvbFBPYjU5WUN6emluZmFxWnRhVUtUUW5ka08raEh2UVpwWHBR?=
 =?utf-8?B?d3FZaUJFOEt1V3NhaXZjd1NhNzhOZ1lHelJZYWlLSjREbEpPYlVnNEtzK05l?=
 =?utf-8?B?ekZoR0JIbVRnVXk3WTNDaHp2NVlrREw3RStwY05CNmJUUjQ0VXVPcjFQWitN?=
 =?utf-8?B?SDBrRkV6bk8zL1BMMmtTcGRvNUpMTU13dkNOaHpZOThLa2U0MlJDNVc4NDF0?=
 =?utf-8?B?bnZoWXl0WTJNT2VXVGpQVTRjbmhiWXhTdEhNei9JWWF4K3NNWHRlTU82Umx5?=
 =?utf-8?B?UTREbGIvdU44ZlhWZXQ3S285WjdOSW9ndU1mckY0aXV3TXdrQ0orb3doVzd6?=
 =?utf-8?Q?XbmbegcQZ9rpFd32xqBh6lA=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <B0108B61D7860E409F7EFF915AAB0FB9@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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ae2fadd9-c61a-4abe-9a67-08dde54fff3c
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Aug 2025 09:56:30.3570
 (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: x5zf+gFjVJ9QMX0aYNrOAr55ZHv/tk52VaV+uAkERUUjxmhJEwOccU5IztKxVQo0E8pjlx4TRdHhPfdMjpsgVPSh6XB1SicwXGePOzkpKVw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR03MB6375

SGVsbG8gVm9sb2R5bXlyLA0KDQpUaGFuayB5b3UgZm9yIHlvdXIgcmV2aWV3OikNCg0KT24gMjcu
MDguMjUgMDE6MjUsIFZvbG9keW15ciBCYWJjaHVrIHdyb3RlOg0KPiANCj4gSGkgTGVvbmlkLA0K
PiANCj4gTGVvbmlkIEtvbWFyaWFuc2t5aSA8TGVvbmlkX0tvbWFyaWFuc2t5aUBlcGFtLmNvbT4g
d3JpdGVzOg0KPiANCj4+IEludHJvZHVjZWQgYXBwcm9wcmlhdGUgcmVnaXN0ZXIgZGVmaW5pdGlv
bnMsIGhlbHBlciBtYWNyb3MsDQo+PiBhbmQgaW5pdGlhbGl6YXRpb24gb2YgcmVxdWlyZWQgR0lD
djMuMSBkaXN0cmlidXRvciByZWdpc3RlcnMNCj4+IHRvIHN1cHBvcnQgZVNQSS4gVGhpcyB0eXBl
IG9mIGludGVycnVwdCBpcyBoYW5kbGVkIGluIHRoZQ0KPj4gc2FtZSB3YXkgYXMgcmVndWxhciBT
UEkgaW50ZXJydXB0cywgd2l0aCB0aGUgZm9sbG93aW5nDQo+PiBkaWZmZXJlbmNlczoNCj4+DQo+
PiAxKSBlU1BJcyBjYW4gaGF2ZSB1cCB0byAxMDI0IGludGVycnVwdHMsIHN0YXJ0aW5nIGZyb20g
dGhlDQo+PiBiZWdpbm5pbmcgb2YgdGhlIHJhbmdlLCB3aGVyZWFzIHJlZ3VsYXIgU1BJcyB1c2Ug
SU5USURzIGZyb20NCj4+IDMyIHRvIDEwMTksIHRvdGFsaW5nIDk4OCBpbnRlcnJ1cHRzOw0KPj4g
MikgZVNQSXMgc3RhcnQgYXQgSU5USUQgNDA5NiwgbmVjZXNzaXRhdGluZyBhZGRpdGlvbmFsIGlu
dGVycnVwdA0KPj4gaW5kZXggY29udmVyc2lvbiBkdXJpbmcgcmVnaXN0ZXIgb3BlcmF0aW9ucy4N
Cj4+DQo+PiBJbiBjYXNlIGlmIGFwcHJvcHJpYXRlIGNvbmZpZyBpcyBkaXNhYmxlZCwgb3IgR0lD
IEhXIGRvZXNuJ3QNCj4+IHN1cHBvcnQgZVNQSSwgdGhlIGV4aXN0aW5nIGZ1bmN0aW9uYWxpdHkg
d2lsbCByZW1haW4gdGhlIHNhbWUuDQo+Pg0KPj4gU2lnbmVkLW9mZi1ieTogTGVvbmlkIEtvbWFy
aWFuc2t5aSA8bGVvbmlkX2tvbWFyaWFuc2t5aUBlcGFtLmNvbT4NCj4gDQo+IFdpdGggbml0IGZp
eGVkOg0KPiANCj4gUmV2aWV3ZWQtYnk6IFZvbG9keW15ciBCYWJjaHVrIDx2b2xvZHlteXJfYmFi
Y2h1a0BlcGFtLmNvbT4NCj4gDQo+Pg0KPj4gLS0tDQo+PiBDaGFuZ2VzIGluIFYyOg0KPj4gLSBt
b3ZlIGdpY19udW1iZXJfZXNwaXMgZnVuY3Rpb24gZnJvbQ0KPj4gICAgW1BBVENIIDA4LzEwXSB4
ZW4vYXJtOiB2Z2ljOiBhZGQgcmVzb3VyY2UgbWFuYWdlbWVudCBmb3IgZXh0ZW5kZWQgU1BJcw0K
Pj4gICAgdG8gdXNlIGl0IGluIHRoZSBuZXdseSBpbnRyb2R1Y2VkIGdpY19pc192YWxpZF9lc3Bp
DQo+PiAtIGFkZCBnaWNfaXNfdmFsaWRfZXNwaSB3aGljaCBjaGVja3MgaWYgSVJRIG51bWJlciBp
cyBpbiBzdXBwb3J0ZWQNCj4+ICAgIGJ5IEhXIGVTUEkgcmFuZ2UNCj4+IC0gdXBkYXRlIGdpY19p
c192YWxpZF9pcnEgY29uZGl0aW9ucyB0byBhbGxvdyBvcGVyYXRpb25zIHdpdGggZVNQSXMNCj4+
DQo+PiBDaGFuZ2VzIGluIFYzOg0KPj4gLSBhZGQgX19pbml0IGF0dHJpYnV0ZSB0byBnaWN2M19k
aXN0X2VzcGlfY29tbW9uX2luaXQNCj4+IC0gY2hhbmdlIG9wZW4tY29kZGVkIGVTUEkgcmVnaXN0
ZXIgaW5pdGlhbGl6YXRpb24gdG8gdGhlIGFwcHJvcHJpYXRlDQo+PiAgICBnZW4tbWFzayBtYWNy
bw0KPj4gLSBmaXhlZCBmb3JtYXR0aW5nIGZvciBsaW5lcyB3aXRoIG1vcmUgdGhhbiA4MCBzeW1i
b2xzDQo+PiAtIGludHJvZHVjZWQgZ2ljdjNfZGlzdF9lc3BpX2luaXRfYWZmIHRvIGJlIGFibGUg
dG8gdXNlIHN0dWJzIGluIGNhc2Ugb2YNCj4+ICAgIENPTkZJR19HSUNWM19FU1BJIGRpc2FibGVk
DQo+PiAtIHJlbmFtZWQgcGFyYW1ldGVyIGluIHRoZSBHSUNEX1RZUEVSX0VTUElfUkFOR0UgbWFj
cm8gdG8gZXNwaV9yYW5nZQ0KPj4gICAgKG5hbWUgd2FzIHRha2VuIGZyb20gR0lDIHNwZWNpZmlj
YXRpb24pIHRvIGF2b2lkIGNvbmZ1c2lvbg0KPj4gLSBjaGFuZ2VkIHR5cGUgZm9yIGkgdmFyaWFi
bGUgdG8gdW5zaWduZWQgaW50IHNpbmNlIGl0IGNhbm5vdCBiZQ0KPj4gICAgbmVnYXRpdmUNCj4+
IC0tLQ0KPj4gICB4ZW4vYXJjaC9hcm0vZ2ljLXYzLmMgICAgICAgICAgICAgICAgICB8IDgwICsr
KysrKysrKysrKysrKysrKysrKysrKysrDQo+PiAgIHhlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9n
aWMuaCAgICAgICAgIHwgMjEgKysrKysrKw0KPj4gICB4ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20v
Z2ljX3YzX2RlZnMuaCB8IDM0ICsrKysrKysrKysrDQo+PiAgIDMgZmlsZXMgY2hhbmdlZCwgMTM1
IGluc2VydGlvbnMoKykNCj4+DQo+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2dpYy12My5j
IGIveGVuL2FyY2gvYXJtL2dpYy12My5jDQo+PiBpbmRleCBhOTU5ZmVmZWJlLi4zYWE1Y2MxNzY1
IDEwMDY0NA0KPj4gLS0tIGEveGVuL2FyY2gvYXJtL2dpYy12My5jDQo+PiArKysgYi94ZW4vYXJj
aC9hcm0vZ2ljLXYzLmMNCj4+IEBAIC00ODUsNiArNDg1LDM2IEBAIHN0YXRpYyB2b2lkIF9faW9t
ZW0gKmdldF9hZGRyX2J5X29mZnNldChzdHJ1Y3QgaXJxX2Rlc2MgKmlycWQsIHUzMiBvZmZzZXQp
DQo+PiAgICAgICAgICAgZGVmYXVsdDoNCj4+ICAgICAgICAgICAgICAgYnJlYWs7DQo+PiAgICAg
ICAgICAgfQ0KPj4gKyNpZmRlZiBDT05GSUdfR0lDVjNfRVNQSQ0KPj4gKyAgICBjYXNlIEVTUElf
QkFTRV9JTlRJRCAuLi4gRVNQSV9NQVhfSU5USUQ6DQo+PiArICAgIHsNCj4+ICsgICAgICAgIHUz
MiBpcnFfaW5kZXggPSBFU1BJX0lOVElEMklEWChpcnFkLT5pcnEpOw0KPj4gKw0KPj4gKyAgICAg
ICAgc3dpdGNoICggb2Zmc2V0ICkNCj4+ICsgICAgICAgIHsNCj4+ICsgICAgICAgIGNhc2UgR0lD
RF9JU0VOQUJMRVI6DQo+PiArICAgICAgICAgICAgcmV0dXJuIChHSUNEICsgR0lDRF9JU0VOQUJM
RVJuRSArIChpcnFfaW5kZXggLyAzMikgKiA0KTsNCj4+ICsgICAgICAgIGNhc2UgR0lDRF9JQ0VO
QUJMRVI6DQo+PiArICAgICAgICAgICAgcmV0dXJuIChHSUNEICsgR0lDRF9JQ0VOQUJMRVJuRSAr
IChpcnFfaW5kZXggLyAzMikgKiA0KTsNCj4+ICsgICAgICAgIGNhc2UgR0lDRF9JU1BFTkRSOg0K
Pj4gKyAgICAgICAgICAgIHJldHVybiAoR0lDRCArIEdJQ0RfSVNQRU5EUm5FICsgKGlycV9pbmRl
eCAvIDMyKSAqIDQpOw0KPj4gKyAgICAgICAgY2FzZSBHSUNEX0lDUEVORFI6DQo+PiArICAgICAg
ICAgICAgcmV0dXJuIChHSUNEICsgR0lDRF9JQ1BFTkRSbkUgKyAoaXJxX2luZGV4IC8gMzIpICog
NCk7DQo+PiArICAgICAgICBjYXNlIEdJQ0RfSVNBQ1RJVkVSOg0KPj4gKyAgICAgICAgICAgIHJl
dHVybiAoR0lDRCArIEdJQ0RfSVNBQ1RJVkVSbkUgKyAoaXJxX2luZGV4IC8gMzIpICogNCk7DQo+
PiArICAgICAgICBjYXNlIEdJQ0RfSUNBQ1RJVkVSOg0KPj4gKyAgICAgICAgICAgIHJldHVybiAo
R0lDRCArIEdJQ0RfSUNBQ1RJVkVSbkUgKyAoaXJxX2luZGV4IC8gMzIpICogNCk7DQo+PiArICAg
ICAgICBjYXNlIEdJQ0RfSUNGR1I6DQo+PiArICAgICAgICAgICAgcmV0dXJuIChHSUNEICsgR0lD
RF9JQ0ZHUm5FICsgKGlycV9pbmRleCAvIDE2KSAqIDQpOw0KPj4gKyAgICAgICAgY2FzZSBHSUNE
X0lST1VURVI6DQo+PiArICAgICAgICAgICAgcmV0dXJuIChHSUNEICsgR0lDRF9JUk9VVEVSbkUg
KyBpcnFfaW5kZXggKiA4KTsNCj4+ICsgICAgICAgIGNhc2UgR0lDRF9JUFJJT1JJVFlSOg0KPj4g
KyAgICAgICAgICAgIHJldHVybiAoR0lDRCArIEdJQ0RfSVBSSU9SSVRZUm5FICsgaXJxX2luZGV4
KTsNCj4+ICsgICAgICAgIGRlZmF1bHQ6DQo+PiArICAgICAgICAgICAgYnJlYWs7DQo+PiArICAg
ICAgICB9DQo+PiArICAgIH0NCj4+ICsjZW5kaWYNCj4+ICAgICAgIGRlZmF1bHQ6DQo+PiAgICAg
ICAgICAgYnJlYWs7DQo+PiAgICAgICB9DQo+PiBAQCAtNjU1LDYgKzY4NSw1MiBAQCBzdGF0aWMg
dm9pZCBnaWN2M19zZXRfaXJxX3ByaW9yaXR5KHN0cnVjdCBpcnFfZGVzYyAqZGVzYywNCj4+ICAg
ICAgIHNwaW5fdW5sb2NrKCZnaWN2My5sb2NrKTsNCj4+ICAgfQ0KPj4gICANCj4+ICsjaWZkZWYg
Q09ORklHX0dJQ1YzX0VTUEkNCj4+ICt1bnNpZ25lZCBpbnQgZ2ljX251bWJlcl9lc3Bpcyh2b2lk
KQ0KPj4gK3sNCj4+ICsgICAgcmV0dXJuIGdpY19od19vcHMtPmluZm8tPm5yX2VzcGk7DQo+PiAr
fQ0KPj4gKw0KPj4gK3N0YXRpYyB2b2lkIF9faW5pdCBnaWN2M19kaXN0X2VzcGlfY29tbW9uX2lu
aXQodWludDMyX3QgdHlwZSkNCj4+ICt7DQo+PiArICAgIHVuc2lnbmVkIGludCBlc3BpX25yLCBp
Ow0KPj4gKw0KPj4gKyAgICBlc3BpX25yID0gbWluKDEwMjRVLCBHSUNEX1RZUEVSX0VTUElTX05V
TSh0eXBlKSk7DQo+PiArICAgIGdpY3YzX2luZm8ubnJfZXNwaSA9IGVzcGlfbnI7DQo+PiArICAg
IC8qIFRoZSBHSUMgSFcgZG9lc24ndCBzdXBwb3J0IGVTUEksIHNvIHdlIGNhbiBsZWF2ZSBmcm9t
IGhlcmUgKi8NCj4+ICsgICAgaWYgKCBnaWN2M19pbmZvLm5yX2VzcGkgPT0gMCApDQo+PiArICAg
ICAgICByZXR1cm47DQo+PiArDQo+PiArICAgIGZvciAoIGkgPSAwOyBpIDwgZXNwaV9ucjsgaSAr
PSAxNiApDQo+PiArICAgICAgICB3cml0ZWxfcmVsYXhlZCgwLCBHSUNEICsgR0lDRF9JQ0ZHUm5F
ICsgKGkgLyAxNikgKiA0KTsNCj4+ICsNCj4+ICsgICAgZm9yICggaSA9IDA7IGkgPCBlc3BpX25y
OyBpICs9IDQgKQ0KPj4gKyAgICAgICAgd3JpdGVsX3JlbGF4ZWQoR0lDX1BSSV9JUlFfQUxMLA0K
Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgR0lDRCArIEdJQ0RfSVBSSU9SSVRZUm5FICsgKGkg
LyA0KSAqIDQpOw0KPj4gKw0KPj4gKyAgICBmb3IgKCBpID0gMDsgaSA8IGVzcGlfbnI7IGkgKz0g
MzIgKQ0KPj4gKyAgICB7DQo+PiArICAgICAgICB3cml0ZWxfcmVsYXhlZChHRU5NQVNLKDMxLCAw
KSwgR0lDRCArIEdJQ0RfSUNFTkFCTEVSbkUgKyAoaSAvIDMyKSAqIDQpOw0KPj4gKyAgICAgICAg
d3JpdGVsX3JlbGF4ZWQoR0VOTUFTSygzMSwgMCksIEdJQ0QgKyBHSUNEX0lDQUNUSVZFUm5FICsg
KGkgLyAzMikgKiA0KTsNCj4+ICsgICAgfQ0KPj4gKw0KPj4gKyAgICBmb3IgKCBpID0gMDsgaSA8
IGVzcGlfbnI7IGkgKz0gMzIgKQ0KPj4gKyAgICAgICAgd3JpdGVsX3JlbGF4ZWQoR0VOTUFTSygz
MSwgMCksIEdJQ0QgKyBHSUNEX0lHUk9VUFJuRSArIChpIC8gMzIpICogNCk7DQo+PiArfQ0KPj4g
Kw0KPj4gK3N0YXRpYyB2b2lkIF9faW5pdCBnaWN2M19kaXN0X2VzcGlfaW5pdF9hZmYodWludDY0
X3QgYWZmaW5pdHkpDQo+PiArew0KPj4gKyAgICB1bnNpZ25lZCBpbnQgaTsNCj4+ICsNCj4+ICsg
ICAgZm9yICggaSA9IDA7IGkgPCBnaWN2M19pbmZvLm5yX2VzcGk7IGkrKyApDQo+PiArICAgICAg
ICB3cml0ZXFfcmVsYXhlZF9ub25fYXRvbWljKGFmZmluaXR5LCBHSUNEICsgR0lDRF9JUk9VVEVS
bkUgKyBpICogOCk7DQo+PiArfQ0KPj4gKyNlbHNlDQo+PiArc3RhdGljIHZvaWQgX19pbml0IGdp
Y3YzX2Rpc3RfZXNwaV9jb21tb25faW5pdCh1aW50MzJfdCB0eXBlKSB7IH0NCj4+ICsNCj4+ICtz
dGF0aWMgdm9pZCBfX2luaXQgZ2ljdjNfZGlzdF9lc3BpX2luaXRfYWZmKHVpbnQ2NF90IGFmZmlu
aXR5KSB7IH0NCj4+ICsjZW5kaWYNCj4+ICsNCj4+ICAgc3RhdGljIHZvaWQgX19pbml0IGdpY3Yz
X2Rpc3RfaW5pdCh2b2lkKQ0KPj4gICB7DQo+PiAgICAgICB1aW50MzJfdCB0eXBlOw0KPj4gQEAg
LTcwMCw2ICs3NzYsOCBAQCBzdGF0aWMgdm9pZCBfX2luaXQgZ2ljdjNfZGlzdF9pbml0KHZvaWQp
DQo+PiAgICAgICBmb3IgKCBpID0gTlJfR0lDX0xPQ0FMX0lSUVM7IGkgPCBucl9saW5lczsgaSAr
PSAzMiApDQo+PiAgICAgICAgICAgd3JpdGVsX3JlbGF4ZWQoR0VOTUFTSygzMSwgMCksIEdJQ0Qg
KyBHSUNEX0lHUk9VUFIgKyAoaSAvIDMyKSAqIDQpOw0KPj4gICANCj4+ICsgICAgZ2ljdjNfZGlz
dF9lc3BpX2NvbW1vbl9pbml0KHR5cGUpOw0KPj4gKw0KPj4gICAgICAgZ2ljdjNfZGlzdF93YWl0
X2Zvcl9yd3AoKTsNCj4+ICAgDQo+PiAgICAgICAvKiBUdXJuIG9uIHRoZSBkaXN0cmlidXRvciAq
Lw0KPj4gQEAgLTcxMyw2ICs3OTEsOCBAQCBzdGF0aWMgdm9pZCBfX2luaXQgZ2ljdjNfZGlzdF9p
bml0KHZvaWQpDQo+PiAgIA0KPj4gICAgICAgZm9yICggaSA9IE5SX0dJQ19MT0NBTF9JUlFTOyBp
IDwgbnJfbGluZXM7IGkrKyApDQo+PiAgICAgICAgICAgd3JpdGVxX3JlbGF4ZWRfbm9uX2F0b21p
YyhhZmZpbml0eSwgR0lDRCArIEdJQ0RfSVJPVVRFUiArIGkgKiA4KTsNCj4+ICsNCj4+ICsgICAg
Z2ljdjNfZGlzdF9lc3BpX2luaXRfYWZmKGFmZmluaXR5KTsNCj4+ICAgfQ0KPj4gICANCj4+ICAg
c3RhdGljIGludCBnaWN2M19lbmFibGVfcmVkaXN0KHZvaWQpDQo+PiBkaWZmIC0tZ2l0IGEveGVu
L2FyY2gvYXJtL2luY2x1ZGUvYXNtL2dpYy5oIGIveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2dp
Yy5oDQo+PiBpbmRleCBjN2UzYjRmZjBkLi4zZjEyNjlmMGM4IDEwMDY0NA0KPj4gLS0tIGEveGVu
L2FyY2gvYXJtL2luY2x1ZGUvYXNtL2dpYy5oDQo+PiArKysgYi94ZW4vYXJjaC9hcm0vaW5jbHVk
ZS9hc20vZ2ljLmgNCj4+IEBAIC0zMDYsOCArMzA2LDI1IEBAIGV4dGVybiB2b2lkIGdpY19kdW1w
X3ZnaWNfaW5mbyhzdHJ1Y3QgdmNwdSAqdik7DQo+PiAgIA0KPj4gICAvKiBOdW1iZXIgb2YgaW50
ZXJydXB0IGxpbmVzICovDQo+PiAgIGV4dGVybiB1bnNpZ25lZCBpbnQgZ2ljX251bWJlcl9saW5l
cyh2b2lkKTsNCj4+ICsjaWZkZWYgQ09ORklHX0dJQ1YzX0VTUEkNCj4+ICtleHRlcm4gdW5zaWdu
ZWQgaW50IGdpY19udW1iZXJfZXNwaXModm9pZCk7DQo+PiArDQo+PiArc3RhdGljIGlubGluZSBi
b29sIGdpY19pc192YWxpZF9lc3BpKHVuc2lnbmVkIGludCBpcnEpDQo+PiArew0KPj4gKyAgICBy
ZXR1cm4gKGlycSA+PSBFU1BJX0JBU0VfSU5USUQgJiYNCj4+ICsgICAgICAgICAgICBpcnEgPCBF
U1BJX0lEWDJJTlRJRChnaWNfbnVtYmVyX2VzcGlzKCkpKTsNCj4+ICt9DQo+PiArI2Vsc2UNCj4+
ICtzdGF0aWMgaW5saW5lIGJvb2wgZ2ljX2lzX3ZhbGlkX2VzcGkodW5zaWduZWQgaW50IGlycSkN
Cj4+ICt7DQo+PiArICAgIHJldHVybiBmYWxzZTsNCj4+ICt9DQo+PiArI2VuZGlmDQo+IA0KPiBZ
b3UgbmVlZCBhbiBlbXB0eSBsaW5lIGhlcmUNCj4gDQoNClN1cmUsIEkgd2lsbCBhZGQgYW4gZW1w
dHkgbGluZSBoZXJlIGluIFY0Lg0KDQo+PiAgIHN0YXRpYyBpbmxpbmUgYm9vbCBnaWNfaXNfdmFs
aWRfbGluZSh1bnNpZ25lZCBpbnQgaXJxKQ0KPj4gICB7DQo+PiArICAgIGlmICggZ2ljX2lzX3Zh
bGlkX2VzcGkoaXJxKSApDQo+PiArICAgICAgICByZXR1cm4gdHJ1ZTsNCj4+ICsNCj4+ICAgICAg
IHJldHVybiBpcnEgPCBnaWNfbnVtYmVyX2xpbmVzKCk7DQo+PiAgIH0NCj4+ICAgDQo+PiBAQCAt
MzI1LDYgKzM0MiwxMCBAQCBzdHJ1Y3QgZ2ljX2luZm8gew0KPj4gICAgICAgZW51bSBnaWNfdmVy
c2lvbiBod192ZXJzaW9uOw0KPj4gICAgICAgLyogTnVtYmVyIG9mIEdJQyBsaW5lcyBzdXBwb3J0
ZWQgKi8NCj4+ICAgICAgIHVuc2lnbmVkIGludCBucl9saW5lczsNCj4+ICsjaWZkZWYgQ09ORklH
X0dJQ1YzX0VTUEkNCj4+ICsgICAgLyogTnVtYmVyIG9mIEdJQyBlU1BJIHN1cHBvcnRlZCAqLw0K
Pj4gKyAgICB1bnNpZ25lZCBpbnQgbnJfZXNwaTsNCj4+ICsjZW5kaWYNCj4+ICAgICAgIC8qIE51
bWJlciBvZiBMUiByZWdpc3RlcnMgKi8NCj4+ICAgICAgIHVpbnQ4X3QgbnJfbHJzOw0KPj4gICAg
ICAgLyogTWFpbnRlbmFuY2UgaXJxIG51bWJlciAqLw0KPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNo
L2FybS9pbmNsdWRlL2FzbS9naWNfdjNfZGVmcy5oIGIveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNt
L2dpY192M19kZWZzLmgNCj4+IGluZGV4IDJhZjA5M2U3NzQuLmQzOGEzZDA4YzcgMTAwNjQ0DQo+
PiAtLS0gYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vZ2ljX3YzX2RlZnMuaA0KPj4gKysrIGIv
eGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2dpY192M19kZWZzLmgNCj4+IEBAIC0zNyw2ICszNyw0
MCBAQA0KPj4gICAjZGVmaW5lIEdJQ0RfSVJPVVRFUjEwMTkgICAgICAgICAgICAgKDB4N0ZEOCkN
Cj4+ICAgI2RlZmluZSBHSUNEX1BJRFIyICAgICAgICAgICAgICAgICAgICgweEZGRTgpDQo+PiAg
IA0KPj4gKyNpZmRlZiBDT05GSUdfR0lDVjNfRVNQSQ0KPj4gKy8qIEFkZGl0aW9uYWwgcmVnaXN0
ZXJzIGZvciBHSUN2My4xICovDQo+PiArI2RlZmluZSBHSUNEX0lHUk9VUFJuRSAgICAgICAgICAg
ICAgICgweDEwMDApDQo+PiArI2RlZmluZSBHSUNEX0lHUk9VUFJuRU4gICAgICAgICAgICAgICgw
eDEwN0MpDQo+PiArI2RlZmluZSBHSUNEX0lTRU5BQkxFUm5FICAgICAgICAgICAgICgweDEyMDAp
DQo+PiArI2RlZmluZSBHSUNEX0lTRU5BQkxFUm5FTiAgICAgICAgICAgICgweDEyN0MpDQo+PiAr
I2RlZmluZSBHSUNEX0lDRU5BQkxFUm5FICAgICAgICAgICAgICgweDE0MDApDQo+PiArI2RlZmlu
ZSBHSUNEX0lDRU5BQkxFUm5FTiAgICAgICAgICAgICgweDE0N0MpDQo+PiArI2RlZmluZSBHSUNE
X0lTUEVORFJuRSAgICAgICAgICAgICAgICgweDE2MDApDQo+PiArI2RlZmluZSBHSUNEX0lTUEVO
RFJuRU4gICAgICAgICAgICAgICgweDE2N0MpDQo+PiArI2RlZmluZSBHSUNEX0lDUEVORFJuRSAg
ICAgICAgICAgICAgICgweDE4MDApDQo+PiArI2RlZmluZSBHSUNEX0lDUEVORFJuRU4gICAgICAg
ICAgICAgICgweDE4N0MpDQo+PiArI2RlZmluZSBHSUNEX0lTQUNUSVZFUm5FICAgICAgICAgICAg
ICgweDFBMDApDQo+PiArI2RlZmluZSBHSUNEX0lTQUNUSVZFUm5FTiAgICAgICAgICAgICgweDFB
N0MpDQo+PiArI2RlZmluZSBHSUNEX0lDQUNUSVZFUm5FICAgICAgICAgICAgICgweDFDMDApDQo+
PiArI2RlZmluZSBHSUNEX0lDQUNUSVZFUm5FTiAgICAgICAgICAgICgweDFDN0MpDQo+PiArI2Rl
ZmluZSBHSUNEX0lQUklPUklUWVJuRSAgICAgICAgICAgICgweDIwMDApDQo+PiArI2RlZmluZSBH
SUNEX0lQUklPUklUWVJuRU4gICAgICAgICAgICgweDIzRkMpDQo+PiArI2RlZmluZSBHSUNEX0lD
RkdSbkUgICAgICAgICAgICAgICAgICgweDMwMDApDQo+PiArI2RlZmluZSBHSUNEX0lDRkdSbkVO
ICAgICAgICAgICAgICAgICgweDMwRkMpDQo+PiArI2RlZmluZSBHSUNEX0lST1VURVJuRSAgICAg
ICAgICAgICAgICgweDgwMDApDQo+PiArI2RlZmluZSBHSUNEX0lST1VURVJuRU4gICAgICAgICAg
ICAgICgweDlGRkMpDQo+PiArDQo+PiArI2RlZmluZSBHSUNEX1RZUEVSX0VTUElfU0hJRlQgICAg
ICAgIDgNCj4+ICsjZGVmaW5lIEdJQ0RfVFlQRVJfRVNQSV9SQU5HRV9TSElGVCAgMjcNCj4+ICsj
ZGVmaW5lIEdJQ0RfVFlQRVJfRVNQSV9SQU5HRV9NQVNLICAgKDB4MUYpDQo+PiArI2RlZmluZSBH
SUNEX1RZUEVSX0VTUEkgICAgICAgICAgICAgICgxVSA8PCBHSUNEX1RZUEVSX0VTUElfU0hJRlQp
DQo+PiArI2RlZmluZSBHSUNEX1RZUEVSX0VTUElfUkFOR0UoZXNwaV9yYW5nZSkgKCgoKGVzcGlf
cmFuZ2UpICYgXA0KPj4gKyAgICAgICAgR0lDRF9UWVBFUl9FU1BJX1JBTkdFX01BU0spICsgMSkg
KiAzMikNCj4+ICsjZGVmaW5lIEdJQ0RfVFlQRVJfRVNQSVNfTlVNKHR5cGVyKSAgICBcDQo+PiAr
ICAgICAgICAoKCh0eXBlcikgJiBHSUNEX1RZUEVSX0VTUEkpID8gXA0KPj4gKyAgICAgICAgR0lD
RF9UWVBFUl9FU1BJX1JBTkdFKCh0eXBlcikgPj4gR0lDRF9UWVBFUl9FU1BJX1JBTkdFX1NISUZU
KSA6IDApDQo+PiArI2VuZGlmDQo+PiArDQo+PiAgIC8qIENvbW1vbiBiZXR3ZWVuIEdJQ0RfUElE
UjIgYW5kIEdJQ1JfUElEUjIgKi8NCj4+ICAgI2RlZmluZSBHSUNfUElEUjJfQVJDSF9NQVNLICAg
ICAgICAgKDB4ZjApDQo+PiAgICNkZWZpbmUgR0lDX1BJRFIyX0FSQ0hfR0lDdjMgICAgICAgICgw
eDMwKQ0KPiANCg0KQmVzdCByZWdhcmRzLA0KTGVvbmlk


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 10:00:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 10:00:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095844.1450710 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urCx7-00062b-2q; Wed, 27 Aug 2025 10:00:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095844.1450710; Wed, 27 Aug 2025 10:00:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urCx6-00062U-WA; Wed, 27 Aug 2025 10:00:24 +0000
Received: by outflank-mailman (input) for mailman id 1095844;
 Wed, 27 Aug 2025 10:00:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=x+iP=3H=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1urCx6-00062O-4e
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 10:00:24 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a59166a7-832c-11f0-a32c-13f23c93f187;
 Wed, 27 Aug 2025 12:00:23 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by AS8PR03MB9343.eurprd03.prod.outlook.com (2603:10a6:20b:57e::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.24; Wed, 27 Aug
 2025 10:00:15 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Wed, 27 Aug 2025
 10:00:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a59166a7-832c-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qAfpmfY3HAgyNPHWskW4x6FN8Bivtr6BqtOZRxnCnMxrOZLIRS96hKNFR59qgGMglOcCGVlLa8ggQk+aLDSHIU62jUnP7TJ9uk5pMUVguom/bpueDwaOk3rM1iDReogcecTbSCdbi8nJ5GCp/sLX/imDFBuUvMxAKUbruEU/FL+Hgqzr0LOIq88arqHj253AJEdvwo5NFJJ+NTjo/3634sk6McDwwaUCMT4h8a5OTTpTAgrbZxHWWncxtMPqY81nWzNHdjrI+c4pOBhi71Ab8R/jMNIQB9lAc+PiK6+w9C3MRwK0rZbR7Uc0MvArdb3T0ZYIS1i2FvnZDNPvcGRwFA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xYXxoh3qHo5hDPEzIBoDr1aAOskWc1JrOTShlUitBDY=;
 b=oZ7ybbnwKluqChb1K3Jwy8iQY97ReoL/RIOZJnUJAKyH9ZCYirTjNqEgV6X4zPAsdLmyDZo07uZvO+xpFKXmd0yvpYldIjU8z+nVweD9cQ/FSyY/I6s5Dpdj/cqeuB4JjrChhmtV1Zysl1CEX/8fGcXH+EkfW3US/bX0bvqKwPMRE1Ex6DPBQ75hw4ziN5mJ17t5dtUqW/5V2iT3qVXh9IYStcsNvCm8pvL8Hx6ty3zsSu+bp2W8KNFHZ9FPbgny0yoP4Dj1X+GZk/jb+E6ElFZeh/GO6gTJjXs68Iz6UBrKE8xzC5rtwb+v6QGh0YtGTeUSCL71aX4JAjBNtRXShw==
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=xYXxoh3qHo5hDPEzIBoDr1aAOskWc1JrOTShlUitBDY=;
 b=HZhw19j1nB7KxVkSfGbJ3/atcg1Yv0js0GUFv1GLMDGKFmV0q9VmT3rydqR4qMNwPqJi0UQppLFbqk1J4MvCa82vH9+/vTZukGK2CDEA3aPr41I0ChPaouii1aNTrrrEoN+zw5pTjrg4oUugavnbd0ESkd2pVgSJxsInfXD5izhLJmyrrBTWCGnr0PWS1DM3L/AOk0gKv/OusjwD4a+UXcK6CqlnUKkNWS9Fw9/NoGr8N1tL0gwUp7UFu53n/2RY2mfckYizfO1A/wVn2be+2ye3CaVSVWQaRUaJPmyz1EBAiptC67/y1ZOhzD4g0oTRikuWdb1Zf/2bnCbuzEjdLg==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"olekstysh@gmail.com" <olekstysh@gmail.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v3 06/11] xen/arm/irq: allow eSPI processing in the do_IRQ
 function
Thread-Topic: [PATCH v3 06/11] xen/arm/irq: allow eSPI processing in the
 do_IRQ function
Thread-Index: AQHcFpJ/78TDbVIRnkOE9iNbqduJVLR2RaCA
Date: Wed, 27 Aug 2025 10:00:15 +0000
Message-ID: <6ba907e2-924f-4f7a-bb05-54f1d00f3f1c@epam.com>
References: <cover.1756216942.git.leonid_komarianskyi@epam.com>
 <c977f6c0746d4461a804ba2e2ca80159190923ab.1756216943.git.leonid_komarianskyi@epam.com>
 <87ldn54sxh.fsf@epam.com>
In-Reply-To: <87ldn54sxh.fsf@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: GV2PR03MB8678:EE_|AS8PR03MB9343:EE_
x-ms-office365-filtering-correlation-id: ed5dba6e-6f5f-4fd5-00f8-08dde5508589
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?eGp2S1ZmR3dzQ3lmSmdCdTdZYitzVlVZVi9FbHVUNDU2NmxLajFFSi9oOFBv?=
 =?utf-8?B?NXliVzZIMUcwYVdkS1JVN0tYRHFEYzl4TUdCamZjZlVZaFJsMlNCNk5OQ2g2?=
 =?utf-8?B?Tmc4RjFNUVZ3Y3AwdkUzMU1udTJYZDZNL2pSNDNFNlZ2TjV4MjIwQjVWbDIw?=
 =?utf-8?B?OVd6dTFodWh5RHltRVI2ZXFheGdXLzN1ZXAvUGY1bGVwWkNoL2h4WFZLb1Bl?=
 =?utf-8?B?RysrYkduby8wMklmcUdXMlRFTmVIcVE2YW1NekFmQVRuQmgvSVloWWtNa2NN?=
 =?utf-8?B?WjBzRytjbTlLWGdjSlZxWjRMMmRRa1F2Rzk0QVB1U0RCWmdEaXVPSHJodExT?=
 =?utf-8?B?ZDRoMExHVUJkbFNNMXE5VC94bS9BSndwMWx1UXpEVExzNWlzbjJReWZaYXYz?=
 =?utf-8?B?UERuZmhxY29DZkxjTHdzMlhkWGRobnpUb0dvZGlGRWpNemdwUllVbGlkVU9B?=
 =?utf-8?B?TjNWanE1QW9lZmlKNFZUY3pxYTBRMTRiY3dmdXlqL2xkb1BTN0l2UVlXUUhB?=
 =?utf-8?B?MGE3RklNYkZic1BYYzJucDVlYnV6RTErcTRBNnE0VHhFanhaMi91QWJ2K29H?=
 =?utf-8?B?ZmZYM29vaFF3bWZvMC9xRHpYaHNrZjQxYjFhY3hNa2hCd3ArNTNycEJIQ3ky?=
 =?utf-8?B?cnJNYnB0bGxSZXg4ZjR2ZmwyRGJQYk53bGRvSTJKVmllbHdGWnh0VXp1Z3NG?=
 =?utf-8?B?RGpOQU03a2JJVTQ0bWgzcGg4blRQa1lXYUlBaDQwekZ5N3lCelNNYUVqL1dF?=
 =?utf-8?B?NHpxWkREejlrb3NHbzRNN1lSUmc1eGhMeENuNEJlMHp4Z2o0WEtSZ0J2Y1hw?=
 =?utf-8?B?VDh6SUxBaWY4QzZHeTl3NzY0bzlRZGEvV2NOeWtsK1I5aGphYjlKQ0NxeHkw?=
 =?utf-8?B?N2FCOXRSbHpJTkZwYm15c21zWTRZOEpPSmdmY29scU5UdlRlOFZYWks4NDRi?=
 =?utf-8?B?RUJ4MXN0TnFJQXdhUksrSnRZYXdQUHB4L3VkbWxzRm5PMFB3L1RCYnN6VUJP?=
 =?utf-8?B?NUlYQm5OQjBGNldGejNFc1pSNyswajlzUzAxT1BrMCsrTks1MFZCMWNaUXFw?=
 =?utf-8?B?d1dSNVFocElMSi9nNEppTHFoVE9oM3NPV0RjTDFlVWUreXVBa3RJVXN3U3Zv?=
 =?utf-8?B?TjBXaEJ6SmZXd1pLVGJhelBkNmREZ01KK1Z4YndwVFltdTA3dlg0M1NXUzFB?=
 =?utf-8?B?ZU1oV09tRzhramxCRHNvNnd3TUhSamdvV3lrZnFkRUh6bmNwTklFeVlKWlBj?=
 =?utf-8?B?Q0xwYXJac1FjYXNFa2R1OVc4MTV5c2FmdlM2TG1ORkxWaHp1djZkMUdkakJC?=
 =?utf-8?B?bFpPbGoyRUlBREI3RnlZM2IydEJ5eXp6Rm94QUUyV3NPZGhtN0FXbm5XTk9y?=
 =?utf-8?B?ZTFUSjlSSHpoOE1XZmNSZnI5Rm4zNkl1cVYwSW56UjZuMGdvcVQ4MDN1UTNm?=
 =?utf-8?B?UzVycWVnM1FKS2FKbG1HQVF1Y1k1VERiTGhxRHpBNWJ5R3VQMkY1bjZQZ250?=
 =?utf-8?B?d0ZoVkdjTGxzNkhEZFVPZEN5SkxnaEkwT0dvZHVUUHIzUk5GOVBpR0t0TXQ4?=
 =?utf-8?B?R25KTXpPdE91bnZlQmRKU0d4cjYxS0xIRkoxQkV5cmk5ZThheHNWN1pjTVUz?=
 =?utf-8?B?d2pBMTNLM2EyYnRNOWhxblBpdnFlNkZrUTFhQ1ozeVh4RXpYU203bG5RREVI?=
 =?utf-8?B?RGJQYTdrU1YrajZ0YkFKamp1ZjdMdlV4YlRFSVF4M2VPbTkrVmxoeFRPQXMw?=
 =?utf-8?B?WjZid2dFeC95elUvTk5ySFAwN25sZFRNU25PaUVhdVBkUjZ2U1p5MGpUbk1l?=
 =?utf-8?B?Y2pNTnlZdXp4bFRJdG83TzFYTDQ4NGNsLys1TzZpNDgzekJGNVdnTko3YXEz?=
 =?utf-8?B?MDhxUDJiUnFpUG5FaHFEV05kMkQrZSt2d2l3QjhNS0syUDZEd0phZEN6L0w3?=
 =?utf-8?B?OWFxQ1BzOEZHUE5HMG9hYjNwdG5WT1A1YktsNmpseGorUmVMKzh0b2JqdlBx?=
 =?utf-8?B?cXR0TCtvNjZBPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?Q2loem1tRG9IWXdOdStYR0c0eVY2amd1aW1PVEhCSGN0bUpmUHAwN1hGRWwz?=
 =?utf-8?B?c0UzaXY4SWdKRkJmemp4TXh1U1JpQnB5Q1JtcTNmQnZYL1M0NXJhYzk3cmIw?=
 =?utf-8?B?dXRwNlRZcXp4NkpteU8vUGhxeUIvRlBsNGY1NHNXbWtHclBUUVlGTXp6ek9G?=
 =?utf-8?B?Mlp1VTZHYUZIRVVjS2dvbjV4Q1NXenpwYjRORWpKWDFGMG56S3Yrazl6TFFi?=
 =?utf-8?B?OTVhRm9PSzFwazR5b00veWtqNWsvMGV2aTN6WUN0bSs2TnRscDFXbEY1WmIy?=
 =?utf-8?B?Q3Nrc081Z0hZMlRGWUx2RkhoaU94MmF5ekpndDFBanpYZTlmM2krVzNyTEh6?=
 =?utf-8?B?VGpBT3hYM2ZrV3FUTVRRSG8wRHdCcVNsWktNOXdHTkpzL2dGUjhEc28xeEZM?=
 =?utf-8?B?RTB2dWorczBWNlhYVEdBSzRjdFBTdSsxNzBNVVE0Ykp2YUhQS0NySEJBUXBk?=
 =?utf-8?B?VEJFSHZJV1ZoMHB5UzdpWWlSR2VmU0xweHdmb29OWXE1K29aUHhvNGs2VmVL?=
 =?utf-8?B?MU0xNk9IdG1NNkJROEsySXl4NnQ5QTJLZXA3Y3dEaTdRUSs4WjcyTEdxV1A0?=
 =?utf-8?B?eFR2TE5KT1FvazFNQXB1Sm1SYmtwWVZWdVNUNWszMlErRGFFZTZxQy9zTXVy?=
 =?utf-8?B?UHl2MjNUbVcwNm9xT09PWXg5VnFJQzdZK2RlQ1pqYzBYTStyQkNPZ1JvU0wy?=
 =?utf-8?B?TWxud2lSS2RsNy9wT2gwQzZXMnBLcXI0N1JJcU16bmFuMGcyOE81RHU1cTFz?=
 =?utf-8?B?YnB4ZXlvS1hCNWQwRCtPVHpLMjBvVmdXSEZZMkpNTWZ3a1JRSzN5L0liWnBT?=
 =?utf-8?B?dlErTzJIZGRuT2FQR1RQb2hFaFFaOHZTTGVJbG04OENVaXVFa2FyTkdWbGg1?=
 =?utf-8?B?SkkxKysrRDZMN09tU1M0eUZoeGpUWlJlUmZFRFlXK0RCZVNoM1lCS21yRkhh?=
 =?utf-8?B?bEhnS0dEZ0RmZDM2L0ZnUkdheXkvQUJXV2Q3dFhzVExvZndTdDYrZFh2OHdZ?=
 =?utf-8?B?eDNmSEIxMlh6RE1mY3UyNlNXcUxqSjNKMWFPZVJqL3lsd2tSYmxsMVdSNUJU?=
 =?utf-8?B?ejFSYmZ3bjVPSitkdVdkaGJPM05kakZBWHBnUDhicEN5RzVPVktPTlFYUnNu?=
 =?utf-8?B?ZkFYbXhRb2I5dUUveEx4RGhHSWdKT3VRUlM2WGhqSEUxRnZoRU52RGJHRkVr?=
 =?utf-8?B?ZmtwaXNRRmtRZHlGa2RvNFFWQnY2NmdjVnpJWWhpRDlRZnNuK3F2TnVNbXZ5?=
 =?utf-8?B?MjM5blpVVlNRVnlEMzZDcGdieWRDQVh6Z0dhL1pqcjd5TEhnbmI0SCsxYllR?=
 =?utf-8?B?blJoN2V6OVZqai9Qd1k0L3prRXpnSjdmdFZ3UGJsNlRBSVhjOSs5MjlGcVUy?=
 =?utf-8?B?a0lvQUVSTmY0b0crbmR0ZHE2cStUdTM1QitXOGtrNUFpb0NlYURRZi9wTlVv?=
 =?utf-8?B?YzM5Q00rbmdsOWIxOGxDNGRvWVQ1aUFJZHV4Yis5UWFSVHVOMUpqd1ZCMmNC?=
 =?utf-8?B?blN1YUt5SUVXUVNSV00zWVdDUU5uNDZSRWhUMVNEam84OHJrc05aWnVJVVAy?=
 =?utf-8?B?VUw2ZDFnWGc0UXJPNFBrYUxYV21tVzlETkJkNjd1RldJSC9Mbi9HQU1CZ2tE?=
 =?utf-8?B?WDNiSmFNYXg1VTRQRE9HaFB6cHVEODRWRHpsQmJ6QjF4bWdpWXloUGJqeDZU?=
 =?utf-8?B?NkZsbVByUHV5aDIxTXhYYXRxdHptZkVob2lBcFNTMXF2a3Y0QXpESzF5eEtL?=
 =?utf-8?B?SERxT0JEaENVVUdPclBVRzhwM0VUS3ROaW9hYW9jelloNCs3L1JWUjQ5TGRy?=
 =?utf-8?B?ekFlQys3REpDYlRFbkxhZks3bVAvRWVrZUs4SGRhVElZTVZYbjhGR09uMm1I?=
 =?utf-8?B?QjBTNWdhSXFnVkFvYXh4Ryt4TGtXYzBTMG02VFFiZnZ5dVhyUk0xTmk2cEND?=
 =?utf-8?B?TkJ2RmlNcHRxRkNSVnJvNXFYMUk3RHRONWg4M3QxNFZocU84Si9xVkVaNXdo?=
 =?utf-8?B?c0RRT2VYdld6NjRQS2JwbzBjRk5IY0o1TnpncVB2VGhYU2w4NzZlaGNrTVNZ?=
 =?utf-8?B?Rlg0Um1vWC8wbGZhTlRXUFNzc3dFQk1XdVFhdDRBd0dVNStaY0QrMFFWM3hG?=
 =?utf-8?B?OFVZY1RjTW9xdmRZeDNydnJnZkZUaXd6RFVQOGFieVllSnduenlNOXZrUk03?=
 =?utf-8?Q?+Y68qo26u2bZtVXdq1GaE50=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <6572C50FE0CA8E46B327C98AEDD52E63@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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ed5dba6e-6f5f-4fd5-00f8-08dde5508589
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Aug 2025 10:00:15.6559
 (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: r4gm7jpB2wVRZIafPLHlBHszXfzt7wts2MBN1jMh/sB3SHdL+6iWhKRqXBF1Q3xpTWceuaPZRwnOW5ERFCjCPaejdc0LDvAuf1QAIM6g7ZU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB9343

SGkgVm9sb2R5bXlyLA0KDQpUaGFuayB5b3UgZm9yIHlvdXIgcmV2aWV3Lg0KDQpPbiAyNy4wOC4y
NSAwMTozMCwgVm9sb2R5bXlyIEJhYmNodWsgd3JvdGU6DQo+IA0KPiBIaSwNCj4gDQo+IExlb25p
ZCBLb21hcmlhbnNreWkgPExlb25pZF9Lb21hcmlhbnNreWlAZXBhbS5jb20+IHdyaXRlczoNCj4g
DQo+PiBUaGUgZG9fSVJRKCkgZnVuY3Rpb24gaXMgdGhlIG1haW4gaGFuZGxlciBmb3IgcHJvY2Vz
c2luZyBJUlFzLg0KPiANCj4gYnV0IHlvdSBhcmUgbWFraW5nIGNoYW5nZSB0byBnaWNfaW50ZXJy
dXB0KCkgZnVuY3Rpb24uLi4gSSB0aGluayB5b3UNCj4gbmVlZCB0byB1cGRhdGUgdGhlIGNvbW1p
dCBtZXNzYWdlIGFuZCBzdWJqZWN0Lg0KPiANCj4+IEN1cnJlbnRseSwgZHVlIHRvIHJlc3RyaWN0
aXZlIGNoZWNrcywgaXQgZG9lcyBub3QgcHJvY2VzcyBpbnRlcnJ1cHQNCj4+IG51bWJlcnMgZ3Jl
YXRlciB0aGFuIDEwMjQuIFRoaXMgcGF0Y2ggdXBkYXRlcyB0aGUgY29uZGl0aW9uIHRvIGFsbG93
DQo+IA0KPiBCdXQgY2hlY2sgcmVhZHMgImlycSA8IDEwMjAiLi4uDQo+IA0KPj4gdGhlIGhhbmRs
aW5nIG9mIGludGVycnVwdHMgZnJvbSB0aGUgZVNQSSByYW5nZS4NCj4+DQo+IA0KPiBXaXRoIGNv
bW1pdCBtZXNzYWdlIGZpeGVkOg0KPiANCj4gUmV2aWV3ZWQtYnk6IFZvbG9keW15ciBCYWJjaHVr
IDx2b2xvZHlteXJfYmFiY2h1a0BlcGFtLmNvbT4NCj4gDQoNCk9oLCB5ZXMsIG15IG1pc3Rha2Vz
LiBJIHdpbGwgdXBkYXRlIHRoZSBjb21taXQgbWVzc2FnZSBpbiBWNC4NCg0KPj4gU2lnbmVkLW9m
Zi1ieTogTGVvbmlkIEtvbWFyaWFuc2t5aSA8bGVvbmlkX2tvbWFyaWFuc2t5aUBlcGFtLmNvbT4N
Cj4+DQo+PiAtLS0NCj4+IENoYW5nZXMgaW4gVjI6DQo+PiAtIG5vIGNoYW5nZXMNCj4+DQo+PiBD
aGFuZ2VzIGluIFYzOg0KPj4gLSBubyBjaGFuZ2VzDQo+PiAtLS0NCj4+ICAgeGVuL2FyY2gvYXJt
L2dpYy5jIHwgMiArLQ0KPj4gICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVs
ZXRpb24oLSkNCj4+DQo+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2dpYy5jIGIveGVuL2Fy
Y2gvYXJtL2dpYy5jDQo+PiBpbmRleCBiODgyMzdjY2RhLi42MzRiNzdjOTg3IDEwMDY0NA0KPj4g
LS0tIGEveGVuL2FyY2gvYXJtL2dpYy5jDQo+PiArKysgYi94ZW4vYXJjaC9hcm0vZ2ljLmMNCj4+
IEBAIC0zNDEsNyArMzQxLDcgQEAgdm9pZCBnaWNfaW50ZXJydXB0KHN0cnVjdCBjcHVfdXNlcl9y
ZWdzICpyZWdzLCBpbnQgaXNfZmlxKQ0KPj4gICAgICAgICAgIC8qIFJlYWRpbmcgSVJRIHdpbGwg
QUNLIGl0ICovDQo+PiAgICAgICAgICAgaXJxID0gZ2ljX2h3X29wcy0+cmVhZF9pcnEoKTsNCj4+
ICAgDQo+PiAtICAgICAgICBpZiAoIGxpa2VseShpcnEgPj0gR0lDX1NHSV9TVEFUSUNfTUFYICYm
IGlycSA8IDEwMjApICkNCj4+ICsgICAgICAgIGlmICggbGlrZWx5KGlycSA+PSBHSUNfU0dJX1NU
QVRJQ19NQVggJiYgaXJxIDwgMTAyMCkgfHwgaXNfZXNwaShpcnEpICkNCj4+ICAgICAgICAgICB7
DQo+PiAgICAgICAgICAgICAgIGlzYigpOw0KPj4gICAgICAgICAgICAgICBkb19JUlEocmVncywg
aXJxLCBpc19maXEpOw0KPiANCg0KQmVzdCByZWdhcmRzLA0KTGVvbmlk


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 10:11:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 10:11:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095863.1450721 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urD7m-0007um-55; Wed, 27 Aug 2025 10:11:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095863.1450721; Wed, 27 Aug 2025 10:11: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 1urD7m-0007uf-1S; Wed, 27 Aug 2025 10:11:26 +0000
Received: by outflank-mailman (input) for mailman id 1095863;
 Wed, 27 Aug 2025 10:11:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=x+iP=3H=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1urD7k-0007uZ-3T
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 10:11:24 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2ebf2272-832e-11f0-a32c-13f23c93f187;
 Wed, 27 Aug 2025 12:11:22 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by PAWPR03MB10168.eurprd03.prod.outlook.com (2603:10a6:102:362::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Wed, 27 Aug
 2025 10:11:20 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Wed, 27 Aug 2025
 10:11: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>
X-Inumbo-ID: 2ebf2272-832e-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=op5Hrv4BF+eMgJVH9ibCn5APOp1HlYyUfJwmztSpsKJyY79inDV/HUTMMufsCIl6jpnl8H4VGZOqaahqWfZc6jx5rNemt6FndW7SF7692aVWd/ginOz7Xqio3bKO+uqnkq5cTka/RLRq325YDX4JGOMUXpJE1fs53l6tRZGHJjazjtg97+JtdgrIlNW1NfgL3KC2/TDiCj7BEyZdtZUbK1VM2iWGUg3oBM0b66lGgcSDqSio9NHeejtyuxklUy2Vu2oeLgTWcHlnDSYqHhYNu07PGydNQgH7puOwIs6FPz4Q7cEG5RQyy33ciAjnvuhMO0m8o6rS+6jcSZLfDlXR4w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xYc5xxOiA/DV40BLUHlJ7kxCWAWr98p2v79XzL9/x6U=;
 b=xR0Is/7J1c9nLVRu/uYtncu+r1UPALCWBxZ0JdLMhCGvs8Pj+r3MmzU9VwWvc6imj1Z/lBlw4aMi7Fq1r6VeT1vigT0v5MvVZzLfoVR1w7a9mCLmIT1oy8XSW09D+D7+gcjNOcLuaQ7y5oGfsoSJRQeKZjDXCDRJHYg7Oc920sU1VyTyYMcXrvhbYI2rIm8EUr6ImRv5+MQc9h82Md6240XY/b5p0b80tXMZda+glweXIS/9eiccwkDkMOT6xjj6LZ4AnNQ4y9FFn7G09EL2+Vf9BAk2PTLpS86xMWPv5AiJfPak0sy2Mw3m32Yqc8hDLS3L7iQ6vHps2I4hGwSGRA==
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=xYc5xxOiA/DV40BLUHlJ7kxCWAWr98p2v79XzL9/x6U=;
 b=LapOvEmpm92ZDyb4d9cjdC02N3QSdDi9AxtMRQpjNw5RHqH7DqQWHZ0Q1wtRuq20FotWqs314LdQxjoX18izEcMFv+NWj/RmR2onZ90pLip3CeSgCRAc3Od9HR6f7isqXzuYBALZwhT2LfuRA4p9tfot8vQhZW3H0t+dw39qZ7v5ZcMglQCt2sfeeDxGh1tsugqKYIWri9wPVapBhfkEkfM6r5pXQOT715NkzLzeVyb2M2WBBGAsR4AGVcJZQgbePXVIdzmso3QmHWvX1QvTycVm0u+ffDbzKNHMEa49g1/Hy6RuCYe4efBWuU330rOhW4EjiLEJMOCoHEZrd9/Lug==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"olekstysh@gmail.com" <olekstysh@gmail.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v3 08/11] xen/arm: vgic: add resource management for
 extended SPIs
Thread-Topic: [PATCH v3 08/11] xen/arm: vgic: add resource management for
 extended SPIs
Thread-Index: AQHcFpKACzOaRjOW50q/bIpnflDhk7R2SLeA
Date: Wed, 27 Aug 2025 10:11:19 +0000
Message-ID: <bb4370cd-7c97-44ac-a243-293a0857479c@epam.com>
References: <cover.1756216942.git.leonid_komarianskyi@epam.com>
 <88254ec24a25e3d99950fb5041ac6b050aaa1e4a.1756216943.git.leonid_komarianskyi@epam.com>
 <87a53l4rjb.fsf@epam.com>
In-Reply-To: <87a53l4rjb.fsf@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: GV2PR03MB8678:EE_|PAWPR03MB10168:EE_
x-ms-office365-filtering-correlation-id: 46bf3353-97b5-4993-7064-08dde5521168
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?UDFCdlR6bWdtbzJpUGhkMysvVkFGRWt0c2FXSytVY003MzVXNjRFanRYU29J?=
 =?utf-8?B?UW1vVEFlVWVOSXo5eS9UZWdWVjBqaFViay9KbG1LVDNSUjZPaUZ2UnFMOUxn?=
 =?utf-8?B?UUNrai9MaXJOQzdYY0djVVBUODNBb1RUa3NmeUhJZERJOG1COUNDYUJrZHY4?=
 =?utf-8?B?VzhpdEVUZEN1Z05wekdqZjAvSkJHNTMra1NaQkFMRS8rbWY4dkRQZlZnSUtT?=
 =?utf-8?B?MFByMVM4bWptY3RZMlRnT0VYK01YNzhIRkNCaTl2bFErU2xCRlQ3ZGl5UURH?=
 =?utf-8?B?THYyUGpXYWtnOXlPZm1vWklYV0F3UENnR3IzU2tybmhpaENIdTVHdmxmN0ZM?=
 =?utf-8?B?bE9DQ0xSeEVIWXJlMEJpZ0E0NEEwSzdWUVhEcmhjSDFuOEUxSFRoYktNYnoy?=
 =?utf-8?B?cTVXY1dMbWdzU0NYSDREb2hPVTF5N3dNdzVBZ3I1bTljMnJkMXpVd1ZnUzdD?=
 =?utf-8?B?d0VwbmJ6Ynk2M1QxRXBXc2dOSWJxOGkxSVppSEttV3l5NXFscDJ5NHkzcTFC?=
 =?utf-8?B?U3Jxek1PQW1Wb2lnWXFnNXEyZDk4VjFFSlo2ZzhPUUpaTENWMTh5anhuMnc3?=
 =?utf-8?B?V05Ubm5KOVlyNE1iQjBHMjR2ZmxzZ2FJOEpBMzh1V1hyVlZyM1l1U3BZdjFR?=
 =?utf-8?B?L0w4a0diUng0T285UVVSaG1vMXdLbG5TRU5Md0l1d1FjaDFlMDZ4SE5VZ1p6?=
 =?utf-8?B?eXptc0I4WlZlMjNrS2Q0TlZtZjRvY2xLTm9uUzBVaDFmVFJuYmE0YTBsdHJL?=
 =?utf-8?B?MjBrQjdxZ2tVSWlwNTduSDErblVPYTRwSkwxbjJBSHJMRmRNc01obUdVTE9F?=
 =?utf-8?B?dlFQMlFKWTY3eEdYR21xWkdQanlrcGw0R1k2NHRFTUNmNmtrWGRBTGJWbU15?=
 =?utf-8?B?UWw4NDhYWk13Wmd4L0ZhcGpiMUhQQ0JrUFJpeHdNSlh6VnUyWTU3MnhzTjJu?=
 =?utf-8?B?RlRwbm52OU5URFhZQWZYRGRWRjFhSWJQbnpKdlFEbDU2bVpyZHBsSnA3Q3Iy?=
 =?utf-8?B?dDE2RkNCODNoV2dtYlFpY3ROaEp2SlFSOWViTWh5NmFUZERpL3Z6NDYwK0N2?=
 =?utf-8?B?VnNUVUphNlN0RUZDVDQyc3d6emQzSHpLQnFhZ3d2SUZJdjVxdHdJZXdiTmdS?=
 =?utf-8?B?YmJHNkdtTGdyM2JJRFltVVo1L2drODZINGJHYW5Kd1c0VE51ODdydW5PVG9k?=
 =?utf-8?B?WUpUeWJrQ1dwdU9KMVNJNUN5MDk4T3hxT09JeWk1UlBRSTRSOWZwUlBURyt4?=
 =?utf-8?B?STlTTks0WDFpMWRKZWlDb3NVYk82RWZHU3h0Uk1EZkNHdXVQVzVvczk3N0I1?=
 =?utf-8?B?bEZUaHUyMEdZZ1d1ZGNEVjlCOWFBSGZlTVJJRWl6M0tPT25BdEFGV01scHdR?=
 =?utf-8?B?dVJ4K0todGhHVHRhTjloWlFuZVl5UFRXdU5idk1iZEg1M2FjbTQzb0Exc1FJ?=
 =?utf-8?B?VWFDMTNlYzJnSnZFNnhURENhRVcvakNKbmI1ZnJXMEdkWWJTOEFxTytIU0Ew?=
 =?utf-8?B?ZlNCcitXODI3aWRoYUZLYzZHaTBvZWNaSmZRdkp3Mm5oU0NQbHRDTllCcnlJ?=
 =?utf-8?B?cmxWRTJuKzltOTgrMENrcWJQYnRVV2luQTNCeG1EcmtmRk1GR3BUQzYwRVMy?=
 =?utf-8?B?cElqMjlvS0RONW5LdnRaK1RUeFV4R2duVXY2Q01uRVZLWE9ZczlTSE8zYkho?=
 =?utf-8?B?MWlyblhtcWx1NDQ1NUFMbU96VTRyY3ZyT2lRMlZvR2NUdUNZS2dNbGNSdGFD?=
 =?utf-8?B?ajY4a2pXYUwxOUwySXA5bXQ1MHl5Ky95dWhIM1U1TnY3T2pYSUUwdFlDMTg3?=
 =?utf-8?B?M2NzUTJSZHV3VGtGcThGYWtrdW1WTXNSdk1DUzR6N0oxTk5WTHRwNjQ2V3NI?=
 =?utf-8?B?aFdpbWpxWk56VXpiaThPK0t5SDJzVGc3RzIxd29lakd6WG9WWjRlTHpUUjl2?=
 =?utf-8?B?a21OYXFudHRLai9CQ2FNS21hSjh4UG1GQWZBL0N6WUF2S3k0YUU5bUErd3U5?=
 =?utf-8?Q?xPeE9A7zlCGC+aECn1FTAF6o8fRYbU=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?N2o2YTRuMlh3T0JtSjhZYkptTjE1Tzlld2E2a21VQmszVXM2VjF4aHcxODU3?=
 =?utf-8?B?Ny9ndXpCSFhsWGJIMHB6RHlHeFhsdS8wRU5KdlBqOStCeVQ5YmpKS29QMU9L?=
 =?utf-8?B?RFZnL0xwdFEvUWZpc0xmUFk2NVdNWDVmWi9JZ0NQQXYrL2d1TDN2c1FlbWF5?=
 =?utf-8?B?aGc0VzFOMXBuODFvQit2WVc4OWxSMkdEN3FyS0k1RDNJekF5ZDhZdFpjelRD?=
 =?utf-8?B?cDR3UU1uSkUwMU9lNTBvM1pJN0NIdWh2eGtFa0t1MmM4V2dsdGFWTzlKTVNa?=
 =?utf-8?B?SjVVRFVaaFhjZTRlMExEZXV6UXY0dmNpV3ppVlRLYkxjeS9hcjUrdDlwaDdi?=
 =?utf-8?B?Qi82Ymxxd3UxSThlRGhRbDNuL3pSNVNPY2lvYnorMnVsWFliMDNIQjZSditi?=
 =?utf-8?B?bHdrWlhTQ1J3M2V1Q0xzbCt3V3V4Qkx2c2xLYWJnWXdtT3NwZ0NXZmFaU3dI?=
 =?utf-8?B?dGhRY2dBMnJmU0pNcVV4L3N4WGs4cGxkS29HWHBiaWRRTWYzbUovczV5RDBj?=
 =?utf-8?B?VE12VkU2U0YzUHdpYzFvRE45Rk9wOFB5WDMyYlEzTlMyT3hWNEdOdnY5c2Q5?=
 =?utf-8?B?MStZbVZmNVc3QUltVmd4Q2lORjQxSnhySThSaEE4eDNSSXhmODBOTm8wZ2Vt?=
 =?utf-8?B?SUswK0lrWm9xQnJ2NVllcDQ5L3NtVGVBdGkxS2FySjF2SFYrYk8xU2szU2Yw?=
 =?utf-8?B?SGJ4RVdDT1lEaG9kZ2FwUlBwV1EyZHAzMU5Hd25BY3kwSXVtV0tpV0NvcjJ3?=
 =?utf-8?B?enZWaGtPWDdRRkZyeVk2QWFCVkN6OTZQaGNiblBwWDNmZ0YrYlVJbU8wUVI4?=
 =?utf-8?B?UHNNMzhrS1ZJYmZ0dTBJNlpzbE9WTWpkOVVhdGhtYnI1SUZtQTRUS3ZvaTlP?=
 =?utf-8?B?QzZ5STZKY1dVMm02Q0xjT1lpTHRmRTc3RGFaVEFhdkZVeGxEN05EcmpPM1h4?=
 =?utf-8?B?R2M4a2V6aG9JM0xWWFIvdXRhbUZxckUydTNUaDEyNWZpSVZDN3RYR1BWZk9m?=
 =?utf-8?B?Y1BscTN1clE3OFdtcXgyMzRDdFNrMVl2cTlhai9tZ0g4QkEwUTNpTmlBaXBE?=
 =?utf-8?B?S3FWaVArN3JWNitxcUFqbTMxOGVUMXJEc1czbWdjcWkzOTI3dVpYY0NkeUpz?=
 =?utf-8?B?Qk82aEVLZ3ZVeUVuRm0wTlY4V2NoamhJMHNPMnQxdWJOMWlLeURqb3lzZVNF?=
 =?utf-8?B?M2VsQTBOYWpkWXZKMm5mN0lLdTVzbjQ2Q0MwaUtjSTNIY1NxMWoxUmgyS1hp?=
 =?utf-8?B?OUwvUUFYUG13Y3dveVpKa3ZQSHhMTmppalRuRytaaU00blh0ZjEzSUtySlYz?=
 =?utf-8?B?ZnNhc0R1ZGtqT2w4YVpFNENEOWtyRTFWeGtNZXM4emNwOWFjSS9GY1pIempS?=
 =?utf-8?B?ZGhLRDhhL09NUTd3R3FHRWRUcGFGNTZVRU9ROWJ1bm9GdGVZY1hhd3JzU2sv?=
 =?utf-8?B?VTNuOE5Za3RLMEpYd2hpVmM1WDZNMThRWUJpZkZpZzRuRXFzUVZxZGZjOGJy?=
 =?utf-8?B?Wk1EM2NXOUVaVW82TW9GT2hpSGdySEVYS1h3NGgxV3lyZjJ2ODlnU2JsekNr?=
 =?utf-8?B?NFdYWXJSckhGTTJ5ZE15b1E0Ukg5b2haUVZvcm9GQTd0U3dScGdnWmZWaHgz?=
 =?utf-8?B?TnFKOU1SSnZ4NXB3NXR2L25raG8xRnZWVUtwZFpmd1o4alBVTmlzYUdLZCtD?=
 =?utf-8?B?WHRVdEpYeitKMVYxUk1MbGhBQnRKL2pzM25ZME5taE1IVGJCT2hjelVyVUsx?=
 =?utf-8?B?NTc5MjRGNDhRRlZ5R0h2TDNhOEp3cXViSFEyclhZK2NyeW1sYW9hZjc4d0Fw?=
 =?utf-8?B?V3FjUEhqaE5mUDFNSnJsQ0RrOXpYc294SW9aWGVmUFM3VDBJRVpBc2VEVmo4?=
 =?utf-8?B?RkJMM0hiMERYNWI3UlZKV3FGd0tra3QrcnpaelRoVnNzQnU4cUFKNFRJQk5l?=
 =?utf-8?B?VGFuSFRaMGdxNnl6TStKK1ZNaGEwYWVERmFUK1RnaW9uT3NOelZFZjR2WWlT?=
 =?utf-8?B?NVUyazNQYVJqeXZsRkgwLzlvcllvTGx6MjFnRkRFdjh2L2s3Skg5a1NTUjJy?=
 =?utf-8?B?OUsxT2lVeERVN0FUVFZTOHhoVmhLK1Y0a3M1VjR1S3hsTW5Rd2l5YnFDaXVx?=
 =?utf-8?B?WExReE9MYU05c05iZVQrdnNlOFp5VFk2RWFwWmtIbC80dmhHY3RCQTc5WkZB?=
 =?utf-8?Q?f3S0CoUaTlrSZBOWPDo4ZQw=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <9092F26166FA8A449540EC17D98DE108@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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 46bf3353-97b5-4993-7064-08dde5521168
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Aug 2025 10:11:19.8424
 (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: +IeZ/Ojvkn/cEFRiaHdBha8OLyBfOQRcMqS9CLWVw54ivx5xbTEehUQz4H+hm8VMzC2au/BM0fTt2f2UNYsOTutVjkdAUP8RcpieKwIMG3w=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR03MB10168

SGkgVm9sb2R5bXlyLA0KDQpUaGFuayB5b3UgZm9yIHlvdXIgY2xvc2UgcmV2aWV3OikNCg0KT24g
MjcuMDguMjUgMDI6MDAsIFZvbG9keW15ciBCYWJjaHVrIHdyb3RlOg0KPiANCj4gSGkgTGVvbmlk
LA0KPiANCj4gTGVvbmlkIEtvbWFyaWFuc2t5aSA8TGVvbmlkX0tvbWFyaWFuc2t5aUBlcGFtLmNv
bT4gd3JpdGVzOg0KPiANCj4+IFRoaXMgY2hhbmdlIGludHJvZHVjZXMgcmVzb3VyY2UgbWFuYWdl
bWVudCBpbiB0aGUgVkdJQyB0byBoYW5kbGUNCj4+IGV4dGVuZGVkIFNQSXMgaW50cm9kdWNlZCBp
biBHSUN2My4xLiBUaGUgcGVuZGluZ19pcnFzIGFuZA0KPj4gYWxsb2NhdGVkX2lycXMgYXJyYXlz
IGFyZSByZXNpemVkIHRvIHN1cHBvcnQgdGhlIHJlcXVpcmVkDQo+PiBudW1iZXIgb2YgZVNQSXMs
IGJhc2VkIG9uIHdoYXQgaXMgc3VwcG9ydGVkIGJ5IHRoZSBoYXJkd2FyZSBhbmQNCj4+IHJlcXVl
c3RlZCBieSB0aGUgZ3Vlc3QuIEEgbmV3IGZpZWxkLCBleHRfc2hhcmVkX2lycXMsIGlzIGFkZGVk
DQo+PiB0byB0aGUgVkdJQyBzdHJ1Y3R1cmUgdG8gc3RvcmUgaW5mb3JtYXRpb24gYWJvdXQgZVNQ
SXMsIHNpbWlsYXINCj4+IHRvIGhvdyBzaGFyZWRfaXJxcyBpcyB1c2VkIGZvciByZWd1bGFyIFNQ
SXMuDQo+Pg0KPj4gU2luY2UgdGhlIGVTUEkgcmFuZ2Ugc3RhcnRzIGF0IElOVElEIDQwOTYgYW5k
IElOVElEcyBiZXR3ZWVuIDEwMjUNCj4+IGFuZCA0MDk1IGFyZSByZXNlcnZlZCwgaGVscGVyIG1h
Y3JvcyBhcmUgaW50cm9kdWNlZCB0byBzaW1wbGlmeSB0aGUNCj4+IHRyYW5zZm9ybWF0aW9uIG9m
IGluZGljZXMgYW5kIHRvIGVuYWJsZSBlYXNpZXIgYWNjZXNzIHRvIGVTUEktc3BlY2lmaWMNCj4+
IHJlc291cmNlcy4gVGhlc2UgY2hhbmdlcyBwcmVwYXJlIHRoZSBWR0lDIGZvciBwcm9jZXNzaW5n
IGVTUElzIGFzDQo+PiByZXF1aXJlZCBieSBmdXR1cmUgZnVuY3Rpb25hbGl0eS4NCj4+DQo+PiBU
aGUgaW5pdGlhbGl6YXRpb24gYW5kIGRlaW5pdGlhbGl6YXRpb24gcGF0aHMgZm9yIHZnaWMgaGF2
ZSBiZWVuIHVwZGF0ZWQNCj4+IHRvIGFsbG9jYXRlIGFuZCBmcmVlIHRoZXNlIHJlc291cmNlcyBh
cHByb3ByaWF0ZWx5LiBBZGRpdGlvbmFsbHksDQo+PiB1cGRhdGVkIGhhbmRsaW5nIG9mIElOVElE
cyBncmVhdGVyIHRoYW4gMTAyNCwgcGFzc2VkIGZyb20gdGhlIHRvb2xzdGFjaw0KPj4gZHVyaW5n
IGRvbWFpbiBjcmVhdGlvbiwgYW5kIHZlcmlmaWNhdGlvbiBsb2dpYyBlbnN1cmVzIG9ubHkgdmFs
aWQgU1BJIG9yDQo+PiBlU1BJIElOVElEcyBhcmUgdXNlZC4NCj4+DQo+PiBUaGUgZXhpc3Rpbmcg
U1BJIGJlaGF2aW9yIHJlbWFpbnMgdW5hZmZlY3RlZCB3aGVuIGd1ZXN0cyBkbyBub3QgcmVxdWVz
dA0KPj4gZVNQSXMsIEdJQyBoYXJkd2FyZSBkb2VzIG5vdCBzdXBwb3J0IHRoZW0sIG9yIHRoZSBD
T05GSUdfR0lDVjNfRVNQSQ0KPj4gb3B0aW9uIGlzIGRpc2FibGVkLg0KPj4NCj4+IFNpZ25lZC1v
ZmYtYnk6IExlb25pZCBLb21hcmlhbnNreWkgPGxlb25pZF9rb21hcmlhbnNreWlAZXBhbS5jb20+
DQo+Pg0KPj4gLS0tDQo+PiBDaGFuZ2VzIGluIFYyOg0KPj4gLSBjaGFuZ2UgaXNfZXNwaV9yYW5r
IHRvIGlzX3ZhbGlkX2VzcGlfcmFuayB0byB2ZXJpZnkgd2hldGhlciB0aGUgYXJyYXkNCj4+ICAg
IGVsZW1lbnQgZXh0X3NoYXJlZF9pcnFzIGV4aXN0cy4gVGhlIHByZXZpb3VzIHZlcnNpb24sIGlz
X2VzcGlfcmFuaywNCj4+ICAgIG9ubHkgY2hlY2tlZCBpZiB0aGUgcmFuayBpbmRleCB3YXMgbGVz
cyB0aGFuIHRoZSBtYXhpbXVtIHBvc3NpYmxlIGVTUEkNCj4+ICAgIHJhbmsgaW5kZXgsIGJ1dCB0
aGlzIGNvdWxkIHBvdGVudGlhbGx5IHJlc3VsdCBpbiBhY2Nlc3NpbmcgYQ0KPj4gICAgbm9uLWV4
aXN0aW5nIGFycmF5IGVsZW1lbnQuIFRvIGFkZHJlc3MgdGhpcywgaXNfdmFsaWRfZXNwaV9yYW5r
IHdhcw0KPj4gICAgaW50cm9kdWNlZCwgd2hpY2ggZW5zdXJlcyB0aGF0IHRoZSByZXF1aXJlZCBl
U1BJIHJhbmsgZXhpc3RzDQo+PiAtIG1vdmUgZ2ljX251bWJlcl9lc3BpcyB0bw0KPj4gICAgeGVu
L2FybTogZ2ljdjM6IGltcGxlbWVudCBoYW5kbGluZyBvZiBHSUN2My4xIGVTUEkNCj4+IC0gdXBk
YXRlIHZnaWNfaXNfdmFsaWRfaXJxIGNoZWNrcyB0byBhbGxvdyBvcGVyYXRpbmcgd2l0aCBlU1BJ
cw0KPj4gLSByZW1vdmUgcmVkdW5kYW50IG5ld2xpbmUgaW4gdmdpY19hbGxvY2F0ZV92aXJxDQo+
Pg0KPj4gQ2hhbmdlcyBpbiBWMzoNCj4+IC0gZml4ZWQgZm9ybWF0dGluZyBmb3IgbGluZXMgd2l0
aCBtb3JlIHRoYW4gODAgc3ltYm9scw0KPj4gLSBpbnRyb2R1Y2VkIGhlbHBlciBmdW5jdGlvbnMg
dG8gYmUgYWJsZSB0byB1c2Ugc3R1YnMgaW4gY2FzZSBvZg0KPj4gICAgQ09ORklHX0dJQ1YzX0VT
UEkgZGlzYWJsZWQsIGFuZCBhcyBhIHJlc3VsdCwgcmVkdWNlIHRoZSBudW1iZXIgb2YNCj4+ICAg
ICNpZmRlZnMNCj4+IC0gZml4ZWQgY2hlY2tzIGZvciBucl9zcGlzIGluIGRvbWFpbl92Z2ljX2lu
aXQNCj4+IC0gdXBkYXRlZCBjb21tZW50IGFib3V0IG5yX3NwaXMgYWRqdXN0bWVudHMgd2l0aCBk
b20wbGVzcyBtZW50aW9uDQo+PiAtIG1vdmVkIGNvbW1lbnQgd2l0aCBhZGRpdGlvbmFsIGV4cGxh
bmF0aW9ucyBiZWZvcmUgY2hlY2tzDQo+PiAtIHVzZWQgdW5zaWduZWQgaW50IGZvciBpbmRleGVz
IHNpbmNlIHRoZXkgY2Fubm90IGJlIG5lZ2F0aXZlDQo+PiAtIHJlbW92ZWQgdW5uZWNlc3Nhcnkg
cGFyZW50aGVzZXMNCj4+IC0gbW92ZSB2Z2ljX2V4dF9yYW5rX29mZnNldCB0byB0aGUgYmVsb3cg
aWZkZWYgZ3VhcmQsIHRvIHJlZHVjZSB0aGUNCj4+ICAgIG51bWJlciBvZiBpZmRlZnMNCj4+IC0t
LQ0KPj4gICB4ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vdmdpYy5oIHwgIDE4ICsrKw0KPj4gICB4
ZW4vYXJjaC9hcm0vdmdpYy5jICAgICAgICAgICAgIHwgMjEyICsrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKystDQo+PiAgIDIgZmlsZXMgY2hhbmdlZCwgMjI3IGluc2VydGlvbnMoKyksIDMg
ZGVsZXRpb25zKC0pDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2Fz
bS92Z2ljLmggYi94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vdmdpYy5oDQo+PiBpbmRleCA5ZjQz
N2U5ODM4Li4yNDhiNTg2OWUxIDEwMDY0NA0KPj4gLS0tIGEveGVuL2FyY2gvYXJtL2luY2x1ZGUv
YXNtL3ZnaWMuaA0KPj4gKysrIGIveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3ZnaWMuaA0KPj4g
QEAgLTE0Niw2ICsxNDYsMTAgQEAgc3RydWN0IHZnaWNfZGlzdCB7DQo+PiAgICAgICBpbnQgbnJf
c3BpczsgLyogTnVtYmVyIG9mIFNQSXMgKi8NCj4+ICAgICAgIHVuc2lnbmVkIGxvbmcgKmFsbG9j
YXRlZF9pcnFzOyAvKiBiaXRtYXAgb2YgSVJRcyBhbGxvY2F0ZWQgKi8NCj4+ICAgICAgIHN0cnVj
dCB2Z2ljX2lycV9yYW5rICpzaGFyZWRfaXJxczsNCj4+ICsjaWZkZWYgQ09ORklHX0dJQ1YzX0VT
UEkNCj4+ICsgICAgc3RydWN0IHZnaWNfaXJxX3JhbmsgKmV4dF9zaGFyZWRfaXJxczsNCj4+ICsg
ICAgaW50IG5yX2VzcGlzOyAvKiBOdW1iZXIgb2YgZXh0ZW5kZWQgU1BJcyAqLw0KPj4gKyNlbmRp
Zg0KPj4gICAgICAgLyoNCj4+ICAgICAgICAqIFNQSXMgYXJlIGRvbWFpbiBnbG9iYWwsIFNHSXMg
YW5kIFBQSXMgYXJlIHBlci1WQ1BVIGFuZCBzdG9yZWQgaW4NCj4+ICAgICAgICAqIHN0cnVjdCBh
cmNoX3ZjcHUuDQo+PiBAQCAtMjQzLDYgKzI0NywxNCBAQCBzdHJ1Y3QgdmdpY19vcHMgew0KPj4g
ICAvKiBOdW1iZXIgb2YgcmFua3Mgb2YgaW50ZXJydXB0IHJlZ2lzdGVycyBmb3IgYSBkb21haW4g
Ki8NCj4+ICAgI2RlZmluZSBET01BSU5fTlJfUkFOS1MoZCkgKCgoZCktPmFyY2gudmdpYy5ucl9z
cGlzKzMxKS8zMikNCj4+ICAgDQo+PiArI2lmZGVmIENPTkZJR19HSUNWM19FU1BJDQo+PiArI2Rl
ZmluZSBET01BSU5fTlJfRVhUX1JBTktTKGQpICgoKGQpLT5hcmNoLnZnaWMubnJfZXNwaXMrMzEp
LzMyKQ0KPj4gKyNkZWZpbmUgRVhUX1JBTktfTUlOIChFU1BJX0JBU0VfSU5USUQvMzIpDQo+PiAr
I2RlZmluZSBFWFRfUkFOS19NQVggKChFU1BJX01BWF9JTlRJRCszMSkvMzIpDQo+PiArI2RlZmlu
ZSBFWFRfUkFOS19OVU0ySURYKG51bSkgKChudW0pLUVYVF9SQU5LX01JTikNCj4+ICsjZGVmaW5l
IEVYVF9SQU5LX0lEWDJOVU0oaWR4KSAoKGlkeCkrRVhUX1JBTktfTUlOKQ0KPj4gKyNlbmRpZg0K
Pj4gKw0KPj4gICAjZGVmaW5lIHZnaWNfbG9jayh2KSAgIHNwaW5fbG9ja19pcnEoJih2KS0+ZG9t
YWluLT5hcmNoLnZnaWMubG9jaykNCj4+ICAgI2RlZmluZSB2Z2ljX3VubG9jayh2KSBzcGluX3Vu
bG9ja19pcnEoJih2KS0+ZG9tYWluLT5hcmNoLnZnaWMubG9jaykNCj4+ICAgDQo+PiBAQCAtMzAy
LDYgKzMxNCwxMiBAQCBleHRlcm4gc3RydWN0IHZnaWNfaXJxX3JhbmsgKnZnaWNfcmFua19vZmZz
ZXQoc3RydWN0IHZjcHUgKnYsDQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgYiwNCj4+ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBuLA0KPj4gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHMpOw0KPj4g
KyNpZmRlZiBDT05GSUdfR0lDVjNfRVNQSQ0KPj4gK2V4dGVybiBzdHJ1Y3QgdmdpY19pcnFfcmFu
ayAqdmdpY19leHRfcmFua19vZmZzZXQoc3RydWN0IHZjcHUgKnYsDQo+PiArICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgYiwNCj4+
ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln
bmVkIGludCBuLA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdW5zaWduZWQgaW50IHMpOw0KPj4gKyNlbmRpZg0KPj4gICBleHRlcm4gc3RydWN0
IHZnaWNfaXJxX3JhbmsgKnZnaWNfcmFua19pcnEoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGlu
dCBpcnEpOw0KPj4gICBleHRlcm4gdm9pZCB2Z2ljX2Rpc2FibGVfaXJxcyhzdHJ1Y3QgdmNwdSAq
diwgdWludDMyX3QgciwgdW5zaWduZWQgaW50IG4pOw0KPj4gICBleHRlcm4gdm9pZCB2Z2ljX2Vu
YWJsZV9pcnFzKHN0cnVjdCB2Y3B1ICp2LCB1aW50MzJfdCByLCB1bnNpZ25lZCBpbnQgbik7DQo+
PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3ZnaWMuYyBiL3hlbi9hcmNoL2FybS92Z2ljLmMN
Cj4+IGluZGV4IDJiYmY0ZDk5YWEuLmFlNDExOTMxNmYgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vYXJj
aC9hcm0vdmdpYy5jDQo+PiArKysgYi94ZW4vYXJjaC9hcm0vdmdpYy5jDQo+PiBAQCAtMjcsOSAr
MjcsODIgQEANCj4+ICAgDQo+PiAgIGJvb2wgdmdpY19pc192YWxpZF9saW5lKHN0cnVjdCBkb21h
aW4gKmQsIHVuc2lnbmVkIGludCB2aXJxKQ0KPj4gICB7DQo+PiArI2lmZGVmIENPTkZJR19HSUNW
M19FU1BJDQo+PiArICAgIGlmICggdmlycSA+PSBFU1BJX0JBU0VfSU5USUQgJiYNCj4+ICsgICAg
ICAgICB2aXJxIDwgRVNQSV9JRFgySU5USUQoZC0+YXJjaC52Z2ljLm5yX2VzcGlzKSApDQo+PiAr
ICAgICAgICByZXR1cm4gdHJ1ZTsNCj4+ICsjZW5kaWYNCj4+ICsNCj4+ICAgICAgIHJldHVybiB2
aXJxIDwgdmdpY19udW1faXJxcyhkKTsNCj4+ICAgfQ0KPj4gICANCj4+ICsjaWZkZWYgQ09ORklH
X0dJQ1YzX0VTUEkNCj4+ICsvKg0KPj4gKyAqIFNpbmNlIGVTUEkgaW5kZXhlcyBzdGFydCBmcm9t
IDQwOTYgYW5kIG51bWJlcnMgZnJvbSAxMDI0IHRvDQo+PiArICogNDA5NSBhcmUgZm9yYmlkZGVu
LCB3ZSBuZWVkIHRvIGNoZWNrIGJvdGggbG93ZXIgYW5kIHVwcGVyDQo+PiArICogbGltaXRzIGZv
ciByYW5rcy4NCj4+ICsgKi8NCj4+ICtzdGF0aWMgaW5saW5lIGJvb2wgaXNfdmFsaWRfZXNwaV9y
YW5rKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCByYW5rKQ0KPj4gK3sNCj4+ICsgICAg
cmV0dXJuICggcmFuayA+PSBFWFRfUkFOS19NSU4gJiYNCj4+ICsgICAgICAgICAgICAgRVhUX1JB
TktfTlVNMklEWChyYW5rKSA8IERPTUFJTl9OUl9FWFRfUkFOS1MoZCkgKTsNCj4gDQo+IExvb2tz
IGxpa2UgeW91IHN0aWxsIGhhdmUgdW5uZWVkZWQgcGFyZW50aGVzZXMgOikNCg0KT2gsIHNvcnJ5
LCBJIG1pc3NlZCB0aGlzIGNoYW5nZSBpbiBWMy4gSSB3aWxsIGZpeCBpdCBpbiBWNC4NCg0KPiAN
Cj4+ICt9DQo+PiArDQo+PiArc3RhdGljIGlubGluZSBzdHJ1Y3QgdmdpY19pcnFfcmFuayAqdmdp
Y19nZXRfZXNwaV9yYW5rKHN0cnVjdCB2Y3B1ICp2LA0KPj4gKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgcmFuaykNCj4+
ICt7DQo+PiArICAgIHJldHVybiAmdi0+ZG9tYWluLT5hcmNoLnZnaWMuZXh0X3NoYXJlZF9pcnFz
W0VYVF9SQU5LX05VTTJJRFgocmFuayldOw0KPj4gK30NCj4+ICsNCj4+ICtzdGF0aWMgaW5saW5l
IGJvb2wgdmdpY19yZXNlcnZlX2VzcGlfdmlycShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBp
bnQgdmlycSkNCj4+ICt7DQo+PiArICAgIHJldHVybiAhdGVzdF9hbmRfc2V0X2JpdChFU1BJX0lO
VElEMklEWCh2aXJxKSArIHZnaWNfbnVtX2lycXMoZCksDQo+PiArICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBkLT5hcmNoLnZnaWMuYWxsb2NhdGVkX2lycXMpOw0KPj4gK30NCj4+ICsNCj4+
ICtzdGF0aWMgdm9pZCBhcmNoX21vdmVfZXNwaXMoc3RydWN0IHZjcHUgKnYpDQo+PiArew0KPj4g
KyAgICBjb25zdCBjcHVtYXNrX3QgKmNwdV9tYXNrID0gY3B1bWFza19vZih2LT5wcm9jZXNzb3Ip
Ow0KPj4gKyAgICBzdHJ1Y3QgZG9tYWluICpkID0gdi0+ZG9tYWluOw0KPj4gKyAgICBzdHJ1Y3Qg
cGVuZGluZ19pcnEgKnA7DQo+PiArICAgIHN0cnVjdCB2Y3B1ICp2X3RhcmdldDsNCj4+ICsgICAg
dW5zaWduZWQgaW50IGk7DQo+PiArDQo+PiArICAgIGZvciAoIGkgPSBFU1BJX0JBU0VfSU5USUQ7
DQo+PiArICAgICAgICAgIGkgPCBFWFRfUkFOS19JRFgyTlVNKGQtPmFyY2gudmdpYy5ucl9lc3Bp
cyk7IGkrKyApDQo+PiArICAgIHsNCj4+ICsgICAgICAgIHZfdGFyZ2V0ID0gdmdpY19nZXRfdGFy
Z2V0X3ZjcHUodiwgaSk7DQo+PiArICAgICAgICBwID0gaXJxX3RvX3BlbmRpbmcodl90YXJnZXQs
IGkpOw0KPj4gKw0KPj4gKyAgICAgICAgaWYgKCB2X3RhcmdldCA9PSB2ICYmICF0ZXN0X2JpdChH
SUNfSVJRX0dVRVNUX01JR1JBVElORywgJnAtPnN0YXR1cykgKQ0KPj4gKyAgICAgICAgICAgIGly
cV9zZXRfYWZmaW5pdHkocC0+ZGVzYywgY3B1X21hc2spOw0KPj4gKyAgICB9DQo+PiArfQ0KPj4g
KyNlbHNlDQo+PiArc3RhdGljIGlubGluZSBib29sIGlzX3ZhbGlkX2VzcGlfcmFuayhzdHJ1Y3Qg
ZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgcmFuaykNCj4+ICt7DQo+PiArICAgIHJldHVybiBmYWxz
ZTsNCj4+ICt9DQo+PiArDQo+PiArLyoNCj4+ICsgKiBUaGlzIGZ1bmN0aW9uIGlzIHN0dWIgYW5k
IHdpbGwgbm90IGJlIGNhbGxlZCBpZiBDT05GSUdfR0lDVjNfRVNQST1uLA0KPj4gKyAqIGJlY2F1
c2UgaW4gdGhpcyBjYXNlLCBpc192YWxpZF9lc3BpX3Jhbmsgd2lsbCBhbHdheXMgcmV0dXJuIGZh
bHNlLg0KPj4gKyAqLw0KPj4gK3N0YXRpYyBpbmxpbmUgc3RydWN0IHZnaWNfaXJxX3JhbmsgKnZn
aWNfZ2V0X2VzcGlfcmFuayhzdHJ1Y3QgdmNwdSAqdiwNCj4+ICsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHJhbmspDQo+
PiArew0KPj4gKyAgICBBU1NFUlRfVU5SRUFDSEFCTEUoKTsNCj4+ICsgICAgcmV0dXJuIE5VTEw7
DQo+PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyBpbmxpbmUgYm9vbCB2Z2ljX3Jlc2VydmVfZXNwaV92
aXJxKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCB2aXJxKQ0KPj4gK3sNCj4+ICsgICAg
cmV0dXJuIGZhbHNlOw0KPj4gK30NCj4+ICsNCj4+ICtzdGF0aWMgdm9pZCBhcmNoX21vdmVfZXNw
aXMoc3RydWN0IHZjcHUgKnYpIHsgfQ0KPj4gKyNlbmRpZg0KPj4gKw0KPj4gICBzdGF0aWMgaW5s
aW5lIHN0cnVjdCB2Z2ljX2lycV9yYW5rICp2Z2ljX2dldF9yYW5rKHN0cnVjdCB2Y3B1ICp2LA0K
Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu
c2lnbmVkIGludCByYW5rKQ0KPj4gICB7DQo+PiBAQCAtMzcsNiArMTEwLDggQEAgc3RhdGljIGlu
bGluZSBzdHJ1Y3QgdmdpY19pcnFfcmFuayAqdmdpY19nZXRfcmFuayhzdHJ1Y3QgdmNwdSAqdiwN
Cj4+ICAgICAgICAgICByZXR1cm4gdi0+YXJjaC52Z2ljLnByaXZhdGVfaXJxczsNCj4+ICAgICAg
IGVsc2UgaWYgKCByYW5rIDw9IERPTUFJTl9OUl9SQU5LUyh2LT5kb21haW4pICkNCj4+ICAgICAg
ICAgICByZXR1cm4gJnYtPmRvbWFpbi0+YXJjaC52Z2ljLnNoYXJlZF9pcnFzW3JhbmsgLSAxXTsN
Cj4+ICsgICAgZWxzZSBpZiAoIGlzX3ZhbGlkX2VzcGlfcmFuayh2LT5kb21haW4sIHJhbmspICkN
Cj4+ICsgICAgICAgIHJldHVybiB2Z2ljX2dldF9lc3BpX3JhbmsodiwgcmFuayk7DQo+PiAgICAg
ICBlbHNlDQo+PiAgICAgICAgICAgcmV0dXJuIE5VTEw7DQo+PiAgIH0NCj4+IEBAIC0xMTcsNiAr
MTkyLDc2IEBAIGludCBkb21haW5fdmdpY19yZWdpc3RlcihzdHJ1Y3QgZG9tYWluICpkLCB1bnNp
Z25lZCBpbnQgKm1taW9fY291bnQpDQo+PiAgICAgICByZXR1cm4gMDsNCj4+ICAgfQ0KPj4gICAN
Cj4+ICsjaWZkZWYgQ09ORklHX0dJQ1YzX0VTUEkNCj4+ICsvKg0KPj4gKyAqIFRoZSBmdW5jdGlv
biBiZWhhdml1ciBpcyB0aGUgc2FtZSBhcyBmb3IgcmVndWxhciBTUElzICh2Z2ljX3Jhbmtfb2Zm
c2V0KSwNCj4gDQo+IHMvYmVoYXZpdXIvYmVoYXZpb3INCj4gDQo+PiArICogYnV0IGl0IG9wZXJh
dGVzIHdpdGggZXh0ZW5kZWQgU1BJIHJhbmtzLg0KPj4gKyAqLw0KPj4gK3N0cnVjdCB2Z2ljX2ly
cV9yYW5rICp2Z2ljX2V4dF9yYW5rX29mZnNldChzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgaW50
IGIsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln
bmVkIGludCBuLCB1bnNpZ25lZCBpbnQgcykNCj4+ICt7DQo+PiArICAgIHVuc2lnbmVkIGludCBy
YW5rID0gUkVHX1JBTktfTlIoYiwgKG4gPj4gcykpOw0KPj4gKw0KPj4gKyAgICByZXR1cm4gdmdp
Y19nZXRfcmFuayh2LCByYW5rICsgRVhUX1JBTktfTUlOKTsNCj4+ICt9DQo+PiArDQo+PiArc3Rh
dGljIHVuc2lnbmVkIGludCB2Z2ljX251bV9zcGlfbGluZXMoc3RydWN0IGRvbWFpbiAqZCkNCj4+
ICt7DQo+PiArICAgIHJldHVybiBkLT5hcmNoLnZnaWMubnJfc3BpcyArIGQtPmFyY2gudmdpYy5u
cl9lc3BpczsNCj4+ICt9DQo+PiArDQo+PiArc3RhdGljIGludCBpbml0X3ZnaWNfZXNwaShzdHJ1
Y3QgZG9tYWluICpkKQ0KPj4gK3sNCj4+ICsgICAgdW5zaWduZWQgaW50IGksIGlkeDsNCj4+ICsN
Cj4+ICsgICAgaWYgKCBkLT5hcmNoLnZnaWMubnJfZXNwaXMgPT0gMCApDQo+PiArICAgICAgICBy
ZXR1cm4gMDsNCj4+ICsNCj4+ICsgICAgZC0+YXJjaC52Z2ljLmV4dF9zaGFyZWRfaXJxcyA9DQo+
PiArICAgICAgICB4emFsbG9jX2FycmF5KHN0cnVjdCB2Z2ljX2lycV9yYW5rLCBET01BSU5fTlJf
RVhUX1JBTktTKGQpKTsNCj4+ICsgICAgaWYgKCBkLT5hcmNoLnZnaWMuZXh0X3NoYXJlZF9pcnFz
ID09IE5VTEwgKQ0KPj4gKyAgICAgICAgcmV0dXJuIC1FTk9NRU07DQo+PiArDQo+PiArICAgIGZv
ciAoIGkgPSBkLT5hcmNoLnZnaWMubnJfc3BpcywgaWR4ID0gMDsNCj4+ICsgICAgICAgICAgaSA8
IHZnaWNfbnVtX3NwaV9saW5lcyhkKTsgaSsrLCBpZHgrKyApDQo+PiArICAgIHsNCj4gDQo+IENP
RElOR19TVFlMRSBzYXlzIHRoYXQgYnJhY2VzIHNob3VsZCBiZSBvbWl0dGVkIGZvciBzaW5nbGUg
c3RhdGVtZW50cw0KPiANCj4+ICsgICAgICAgIHZnaWNfaW5pdF9wZW5kaW5nX2lycSgmZC0+YXJj
aC52Z2ljLnBlbmRpbmdfaXJxc1tpXSwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBFU1BJX0lEWDJJTlRJRChpZHgpKTsNCj4+ICsgICAgfQ0KPj4gKw0KPj4gKyAgICBmb3IgKCBp
ID0gMDsgaSA8IERPTUFJTl9OUl9FWFRfUkFOS1MoZCk7IGkrKyApDQo+PiArICAgICAgICB2Z2lj
X3JhbmtfaW5pdCgmZC0+YXJjaC52Z2ljLmV4dF9zaGFyZWRfaXJxc1tpXSwgaSwgMCk7DQo+PiAr
DQo+PiArICAgIHJldHVybiAwOw0KPj4gK30NCj4+ICsNCj4+ICtzdHJ1Y3QgcGVuZGluZ19pcnEg
KmVzcGlfdG9fcGVuZGluZyhzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgaXJxKQ0KPj4g
K3sNCj4+ICsgICAgaXJxID0gRVNQSV9JTlRJRDJJRFgoaXJxKSArIGQtPmFyY2gudmdpYy5ucl9z
cGlzOw0KPj4gKyAgICByZXR1cm4gJmQtPmFyY2gudmdpYy5wZW5kaW5nX2lycXNbaXJxXTsNCj4+
ICt9DQo+PiArI2Vsc2UNCj4+ICtzdGF0aWMgdW5zaWduZWQgaW50IGluaXRfdmdpY19lc3BpKHN0
cnVjdCBkb21haW4gKmQpDQo+PiArew0KPj4gKyAgICByZXR1cm4gMDsNCj4+ICt9DQo+PiArDQo+
PiArc3RhdGljIHVuc2lnbmVkIGludCB2Z2ljX251bV9zcGlfbGluZXMoc3RydWN0IGRvbWFpbiAq
ZCkNCj4+ICt7DQo+PiArICAgIHJldHVybiBkLT5hcmNoLnZnaWMubnJfc3BpczsNCj4+ICt9DQo+
PiArDQo+PiArc3RydWN0IHBlbmRpbmdfaXJxICplc3BpX3RvX3BlbmRpbmcoc3RydWN0IGRvbWFp
biAqZCwgdW5zaWduZWQgaW50IGlycSkNCj4+ICt7DQo+PiArICAgIHJldHVybiBOVUxMOw0KPj4g
K30NCj4+ICsjZW5kaWYNCj4+ICsNCj4+ICtzdGF0aWMgdW5zaWduZWQgaW50IHZnaWNfbnVtX2Fs
bG9jX2lycXMoc3RydWN0IGRvbWFpbiAqZCkNCj4+ICt7DQo+PiArICAgIHJldHVybiB2Z2ljX251
bV9zcGlfbGluZXMoZCkgKyBOUl9MT0NBTF9JUlFTOw0KPj4gK30NCj4+ICsNCj4+ICAgaW50IGRv
bWFpbl92Z2ljX2luaXQoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IG5yX3NwaXMpDQo+
PiAgIHsNCj4+ICAgICAgIGludCBpOw0KPj4gQEAgLTEzMSw2ICsyNzYsMzUgQEAgaW50IGRvbWFp
bl92Z2ljX2luaXQoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IG5yX3NwaXMpDQo+PiAg
ICAgICAgKi8NCj4+ICAgICAgIG5yX3NwaXMgPSBST1VORFVQKG5yX3NwaXMsIDMyKTsNCj4+ICAg
DQo+PiArI2lmZGVmIENPTkZJR19HSUNWM19FU1BJDQo+PiArICAgIC8qDQo+PiArICAgICAqIER1
cmluZyBkb21haW4gY3JlYXRpb24sIHRoZSBkb20wbGVzcyBEb21VcyBjb2RlIG9yIHRvb2xzdGFj
ayBzcGVjaWZpZXMNCj4+ICsgICAgICogdGhlIG1heGltdW0gSU5USUQsIHdoaWNoIGlzIGRlZmlu
ZWQgaW4gdGhlIGRvbWFpbiBjb25maWcgc3VidHJhY3RlZCBieQ0KPj4gKyAgICAgKiAzMiB0byBj
b3ZlciB0aGUgbG9jYWwgSVJRcyAocGxlYXNlIHNlZSB0aGUgY29tbWVudCB0byBWR0lDX0RFRl9O
Ul9TUElTKS4NCj4+ICsgICAgICogVG8gY29tcHV0ZSB0aGUgYWN0dWFsIG51bWJlciBvZiBlU1BJ
IHRoYXQgd2lsbCBiZSB1c2FibGUgZm9yLA0KPj4gKyAgICAgKiBhZGQgYmFjayAzMi4NCj4+ICsg
ICAgICovDQo+PiArICAgIGlmICggKG5yX3NwaXMgKyAzMikgPiBFU1BJX0lEWDJJTlRJRChOUl9F
U1BJX0lSUVMpICkNCj4+ICsgICAgICAgIHJldHVybiAtRUlOVkFMOw0KPiANCj4gUGFyZW50aGVz
ZXMgYXJvdW5kIG5yX3NwaXMgKyAzMiBhcmUgbm90IHJlcXVpcmVkDQo+IA0KPj4gKw0KPj4gKyAg
ICBpZiAoIChucl9zcGlzICsgMzIpID49IEVTUElfQkFTRV9JTlRJRCApDQo+IA0KPiBUaGUgc2Ft
ZQ0KPiANCj4+ICsgICAgew0KPj4gKyAgICAgICAgZC0+YXJjaC52Z2ljLm5yX2VzcGlzID0gbWlu
KG5yX3NwaXMgLSBFU1BJX0JBU0VfSU5USUQgKyAzMiwgMTAyNFUpOw0KPj4gKyAgICAgICAgLyog
VmVyaWZ5IGlmIEdJQyBIVyBjYW4gaGFuZGxlIHByb3ZpZGVkIElOVElEICovDQo+PiArICAgICAg
ICBpZiAoIGQtPmFyY2gudmdpYy5ucl9lc3BpcyA+IGdpY19udW1iZXJfZXNwaXMoKSApDQo+PiAr
ICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+PiArICAgICAgICAvKg0KPj4gKyAgICAgICAg
ICogU2V0IHRoZSBtYXhpbXVtIGF2YWlsYWJsZSBudW1iZXIgZm9yIHJlZ3VsYXINCj4+ICsgICAg
ICAgICAqIFNQSSB0byBwYXNzIHRoZSBuZXh0IGNoZWNrDQo+PiArICAgICAgICAgKi8NCj4+ICsg
ICAgICAgIG5yX3NwaXMgPSBWR0lDX0RFRl9OUl9TUElTOw0KPj4gKyAgICB9IGVsc2UNCj4gDQo+
IHRoaXMgImVsc2UiIHNob3VsZCBiZSBvbiBzZXBhcmF0ZSBsaW5lDQo+IA0KDQpJIHdpbGwgZml4
IHRoaXMgYW5kIG90aGVyIGZvcm1hdHRpbmcgaXNzdWVzIGluIFY0Lg0KDQo+PiArICAgIHsNCj4+
ICsgICAgICAgIC8qIERvbWFpbiB3aWxsIHVzZSB0aGUgcmVndWxhciBTUEkgcmFuZ2UgKi8NCj4+
ICsgICAgICAgIGQtPmFyY2gudmdpYy5ucl9lc3BpcyA9IDA7DQo+PiArICAgIH0NCj4+ICsjZW5k
aWYNCj4+ICsNCj4+ICAgICAgIC8qIExpbWl0IHRoZSBudW1iZXIgb2YgdmlydHVhbCBTUElzIHN1
cHBvcnRlZCB0byAoMTAyMCAtIDMyKSA9IDk4OCAgKi8NCj4+ICAgICAgIGlmICggbnJfc3BpcyA+
ICgxMDIwIC0gTlJfTE9DQUxfSVJRUykgKQ0KPj4gICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0K
Pj4gQEAgLTE0NSw3ICszMTksNyBAQCBpbnQgZG9tYWluX3ZnaWNfaW5pdChzdHJ1Y3QgZG9tYWlu
ICpkLCB1bnNpZ25lZCBpbnQgbnJfc3BpcykNCj4+ICAgICAgICAgICByZXR1cm4gLUVOT01FTTsN
Cj4+ICAgDQo+PiAgICAgICBkLT5hcmNoLnZnaWMucGVuZGluZ19pcnFzID0NCj4+IC0gICAgICAg
IHh6YWxsb2NfYXJyYXkoc3RydWN0IHBlbmRpbmdfaXJxLCBkLT5hcmNoLnZnaWMubnJfc3Bpcyk7
DQo+PiArICAgICAgICB4emFsbG9jX2FycmF5KHN0cnVjdCBwZW5kaW5nX2lycSwgdmdpY19udW1f
c3BpX2xpbmVzKGQpKTsNCj4+ICAgICAgIGlmICggZC0+YXJjaC52Z2ljLnBlbmRpbmdfaXJxcyA9
PSBOVUxMICkNCj4+ICAgICAgICAgICByZXR1cm4gLUVOT01FTTsNCj4+ICAgDQo+PiBAQCAtMTU2
LDEyICszMzAsMTYgQEAgaW50IGRvbWFpbl92Z2ljX2luaXQoc3RydWN0IGRvbWFpbiAqZCwgdW5z
aWduZWQgaW50IG5yX3NwaXMpDQo+PiAgICAgICBmb3IgKCBpID0gMDsgaSA8IERPTUFJTl9OUl9S
QU5LUyhkKTsgaSsrICkNCj4+ICAgICAgICAgICB2Z2ljX3JhbmtfaW5pdCgmZC0+YXJjaC52Z2lj
LnNoYXJlZF9pcnFzW2ldLCBpICsgMSwgMCk7DQo+PiAgIA0KPj4gKyAgICByZXQgPSBpbml0X3Zn
aWNfZXNwaShkKTsNCj4+ICsgICAgaWYgKCByZXQgKQ0KPj4gKyAgICAgICAgcmV0dXJuIHJldDsN
Cj4+ICsNCj4+ICAgICAgIHJldCA9IGQtPmFyY2gudmdpYy5oYW5kbGVyLT5kb21haW5faW5pdChk
KTsNCj4+ICAgICAgIGlmICggcmV0ICkNCj4+ICAgICAgICAgICByZXR1cm4gcmV0Ow0KPj4gICAN
Cj4+ICAgICAgIGQtPmFyY2gudmdpYy5hbGxvY2F0ZWRfaXJxcyA9DQo+PiAtICAgICAgICB4emFs
bG9jX2FycmF5KHVuc2lnbmVkIGxvbmcsIEJJVFNfVE9fTE9OR1ModmdpY19udW1faXJxcyhkKSkp
Ow0KPj4gKyAgICAgICAgeHphbGxvY19hcnJheSh1bnNpZ25lZCBsb25nLCBCSVRTX1RPX0xPTkdT
KHZnaWNfbnVtX2FsbG9jX2lycXMoZCkpKTsNCj4+ICAgICAgIGlmICggIWQtPmFyY2gudmdpYy5h
bGxvY2F0ZWRfaXJxcyApDQo+PiAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07DQo+PiAgIA0KPj4g
QEAgLTE5NSw5ICszNzMsMjcgQEAgdm9pZCBkb21haW5fdmdpY19mcmVlKHN0cnVjdCBkb21haW4g
KmQpDQo+PiAgICAgICAgICAgfQ0KPj4gICAgICAgfQ0KPj4gICANCj4+ICsjaWZkZWYgQ09ORklH
X0dJQ1YzX0VTUEkNCj4+ICsgICAgZm9yICggaSA9IDA7IGkgPCBkLT5hcmNoLnZnaWMubnJfZXNw
aXM7IGkrKyApDQo+PiArICAgIHsNCj4+ICsgICAgICAgIHN0cnVjdCBwZW5kaW5nX2lycSAqcCA9
IHNwaV90b19wZW5kaW5nKGQsIEVTUElfSURYMklOVElEKGkpKTsNCj4+ICsNCj4+ICsgICAgICAg
IGlmICggcC0+ZGVzYyApDQo+PiArICAgICAgICB7DQo+PiArICAgICAgICAgICAgcmV0ID0gcmVs
ZWFzZV9ndWVzdF9pcnEoZCwgcC0+aXJxKTsNCj4+ICsgICAgICAgICAgICBpZiAoIHJldCApDQo+
PiArICAgICAgICAgICAgICAgIGRwcmludGsoWEVOTE9HX0dfV0FSTklORywgImQldTogRmFpbGVk
IHRvIHJlbGVhc2UgdmlycSAldSByZXQgPSAlZFxuIiwNCj4+ICsgICAgICAgICAgICAgICAgICAg
ICAgICBkLT5kb21haW5faWQsIHAtPmlycSwgcmV0KTsNCj4+ICsgICAgICAgIH0NCj4+ICsgICAg
fQ0KPj4gKyNlbmRpZg0KPj4gKw0KPj4gICAgICAgaWYgKCBkLT5hcmNoLnZnaWMuaGFuZGxlciAp
DQo+PiAgICAgICAgICAgZC0+YXJjaC52Z2ljLmhhbmRsZXItPmRvbWFpbl9mcmVlKGQpOw0KPj4g
ICAgICAgeGZyZWUoZC0+YXJjaC52Z2ljLnNoYXJlZF9pcnFzKTsNCj4+ICsjaWZkZWYgQ09ORklH
X0dJQ1YzX0VTUEkNCj4+ICsgICAgeGZyZWUoZC0+YXJjaC52Z2ljLmV4dF9zaGFyZWRfaXJxcyk7
DQo+PiArI2VuZGlmDQo+PiAgICAgICB4ZnJlZShkLT5hcmNoLnZnaWMucGVuZGluZ19pcnFzKTsN
Cj4+ICAgICAgIHhmcmVlKGQtPmFyY2gudmdpYy5hbGxvY2F0ZWRfaXJxcyk7DQo+PiAgIH0NCj4+
IEBAIC0zMzEsNiArNTI3LDggQEAgdm9pZCBhcmNoX21vdmVfaXJxcyhzdHJ1Y3QgdmNwdSAqdikN
Cj4+ICAgICAgICAgICBpZiAoIHZfdGFyZ2V0ID09IHYgJiYgIXRlc3RfYml0KEdJQ19JUlFfR1VF
U1RfTUlHUkFUSU5HLCAmcC0+c3RhdHVzKSApDQo+PiAgICAgICAgICAgICAgIGlycV9zZXRfYWZm
aW5pdHkocC0+ZGVzYywgY3B1X21hc2spOw0KPj4gICAgICAgfQ0KPj4gKw0KPj4gKyAgICBhcmNo
X21vdmVfZXNwaXModik7DQo+PiAgIH0NCj4+ICAgDQo+PiAgIHZvaWQgdmdpY19kaXNhYmxlX2ly
cXMoc3RydWN0IHZjcHUgKnYsIHVpbnQzMl90IHIsIHVuc2lnbmVkIGludCBuKQ0KPj4gQEAgLTUz
OCw2ICs3MzYsOCBAQCBzdHJ1Y3QgcGVuZGluZ19pcnEgKmlycV90b19wZW5kaW5nKHN0cnVjdCB2
Y3B1ICp2LCB1bnNpZ25lZCBpbnQgaXJxKQ0KPj4gICAgICAgICAgIG4gPSAmdi0+YXJjaC52Z2lj
LnBlbmRpbmdfaXJxc1tpcnFdOw0KPj4gICAgICAgZWxzZSBpZiAoIGlzX2xwaShpcnEpICkNCj4+
ICAgICAgICAgICBuID0gdi0+ZG9tYWluLT5hcmNoLnZnaWMuaGFuZGxlci0+bHBpX3RvX3BlbmRp
bmcodi0+ZG9tYWluLCBpcnEpOw0KPj4gKyAgICBlbHNlIGlmICggaXNfZXNwaShpcnEpICkNCj4+
ICsgICAgICAgIG4gPSBlc3BpX3RvX3BlbmRpbmcodi0+ZG9tYWluLCBpcnEpOw0KPj4gICAgICAg
ZWxzZQ0KPj4gICAgICAgICAgIG4gPSAmdi0+ZG9tYWluLT5hcmNoLnZnaWMucGVuZGluZ19pcnFz
W2lycSAtIDMyXTsNCj4+ICAgICAgIHJldHVybiBuOw0KPj4gQEAgLTU0Nyw2ICs3NDcsOSBAQCBz
dHJ1Y3QgcGVuZGluZ19pcnEgKnNwaV90b19wZW5kaW5nKHN0cnVjdCBkb21haW4gKmQsIHVuc2ln
bmVkIGludCBpcnEpDQo+PiAgIHsNCj4+ICAgICAgIEFTU0VSVChpcnEgPj0gTlJfTE9DQUxfSVJR
Uyk7DQo+PiAgIA0KPj4gKyAgICBpZiAoIGlzX2VzcGkoaXJxKSApDQo+PiArICAgICAgICByZXR1
cm4gZXNwaV90b19wZW5kaW5nKGQsIGlycSk7DQo+PiArDQo+PiAgICAgICByZXR1cm4gJmQtPmFy
Y2gudmdpYy5wZW5kaW5nX2lycXNbaXJxIC0gMzJdOw0KPj4gICB9DQo+PiAgIA0KPj4gQEAgLTY2
OCw2ICs4NzEsOSBAQCBib29sIHZnaWNfcmVzZXJ2ZV92aXJxKHN0cnVjdCBkb21haW4gKmQsIHVu
c2lnbmVkIGludCB2aXJxKQ0KPj4gICAgICAgaWYgKCAhdmdpY19pc192YWxpZF9saW5lKGQsIHZp
cnEpICkNCj4+ICAgICAgICAgICByZXR1cm4gZmFsc2U7DQo+PiAgIA0KPj4gKyAgICBpZiAoIGlz
X2VzcGkodmlycSkgKQ0KPj4gKyAgICAgICAgcmV0dXJuIHZnaWNfcmVzZXJ2ZV9lc3BpX3ZpcnEo
ZCwgdmlycSk7DQo+PiArDQo+PiAgICAgICByZXR1cm4gIXRlc3RfYW5kX3NldF9iaXQodmlycSwg
ZC0+YXJjaC52Z2ljLmFsbG9jYXRlZF9pcnFzKTsNCj4+ICAgfQ0KPj4gICANCj4+IEBAIC02ODUs
NyArODkxLDcgQEAgaW50IHZnaWNfYWxsb2NhdGVfdmlycShzdHJ1Y3QgZG9tYWluICpkLCBib29s
IHNwaSkNCj4+ICAgICAgIGVsc2UNCj4+ICAgICAgIHsNCj4+ICAgICAgICAgICBmaXJzdCA9IDMy
Ow0KPj4gLSAgICAgICAgZW5kID0gdmdpY19udW1faXJxcyhkKTsNCj4+ICsgICAgICAgIGVuZCA9
IHZnaWNfbnVtX2FsbG9jX2lycXMoZCk7DQo+PiAgICAgICB9DQo+PiAgIA0KPj4gICAgICAgLyoN
Cj4gDQoNCkJlc3QgcmVnYXJkcywNCkxlb25pZA==


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 10:26:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 10:26:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095878.1450731 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urDLk-0001Iz-EO; Wed, 27 Aug 2025 10:25:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095878.1450731; Wed, 27 Aug 2025 10: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 1urDLk-0001Is-Aj; Wed, 27 Aug 2025 10:25:52 +0000
Received: by outflank-mailman (input) for mailman id 1095878;
 Wed, 27 Aug 2025 10:25:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=x+iP=3H=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1urDLi-0001Im-7I
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 10:25:50 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c201::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 31fa5ea4-8330-11f0-a32c-13f23c93f187;
 Wed, 27 Aug 2025 12:25:47 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by GV1PR03MB10346.eurprd03.prod.outlook.com (2603:10a6:150:169::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.15; Wed, 27 Aug
 2025 10:25:39 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Wed, 27 Aug 2025
 10:25: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>
X-Inumbo-ID: 31fa5ea4-8330-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UxvgzzvlQSrCapQR7NiKf8NfZ5cwMIBhzR/dDO8RWfiqExp8kcllI72qgJ/qwrOUwTb5wDjCLORkHSpRkqYFl06EbBFc3uxX3SNbAzvqLbl6cV/SZ7Xe+yQpcYa9WzRUzWaFqOMuAOPHUuutRuTrHIUurPkqlaqpiWkfP/v6Z1Nq8ckOCUcfvshjLn0FbWxNnWhYpq3UOU6S+HzeaMahLgYl04eqRGNvdWUvk/kKbuJlA/BLOwtac8LKDc6wD9nfkrWoJj6Ork0BCZgTUZ3x53CWjL6ABr9mIAvcYcZwSvMDKplMJpTFTaGQuk2A8zGI5Ns8cAuBN3DsS+zwK7cpfQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=vVz+9kCFzzk9AbpzYHg+0RLhZCP55dxFvbNML80AX9c=;
 b=kb1kv4lvuK514oajtnkbwDyTg8Zp/C8bn29jcA2NqVqfaOuhPpc9quPqV+iXgiPrpy2zJRmQQrDuLx9tGnCWTl7ITwAr6Q58yqDpsRgr23gPW6j9SiuUSqWCtMyvnZLsI7DaMZYbsPYEISQdfafsZc7Nn3/6UI+DD61zdVXVUn+hXoZ6LyHvNu9khYoxWPx4M50t9Lh/t7AYZot3kiWE/OHrNgiMxhwkXdmmk2iEng9Vi/u+/4AUpRAA6ajE6E3frrdl+i9A0MM8UMFqlxmOVCynYmqBfAgh++7uE28z3QdnMoamC62tJGABN1RvHz2DnyBOhB4PAviGXmjZApm1ZA==
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=vVz+9kCFzzk9AbpzYHg+0RLhZCP55dxFvbNML80AX9c=;
 b=iLEi7JGCf2+OU86I9IyMYoMAupTo4S4KKfML1rqKY5esjWbdRnsSfmO10prUXq7hz2oqSfhPZjGdNVPpqpP0WThzNkEtIUJ5th7bK0LGoAQYFway0rMjwnxTOD9gYs5gOHhyFnMdfDtIbgxXqEgQ1r5K22wYzAM2K29LbSYeCe4KSEaR1v+39GBP6mk8wF+XUkW3rxsKwPzk4G+PuxlHknYPCjsqIwfIqvjyF+XSoBh0i1hWs5LFI1Up7IwkLersA+/0v5vgGALXE4aBXl2lRb7XGeoGs85dqlHPvMKzCCYe/G1nAFRcXT6Rre83FKXEkEe6dwJ3I2hjM+7guGWQqQ==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"olekstysh@gmail.com" <olekstysh@gmail.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v3 09/11] xen/arm: domain_build/dom0less-build: adjust
 domains config to support eSPIs
Thread-Topic: [PATCH v3 09/11] xen/arm: domain_build/dom0less-build: adjust
 domains config to support eSPIs
Thread-Index: AQHcFpKAZWUsU5Sz9EWrJGvlceTbI7R2TLcA
Date: Wed, 27 Aug 2025 10:25:38 +0000
Message-ID: <1cf0a662-b717-458c-8174-6b03187b4b6c@epam.com>
References: <cover.1756216942.git.leonid_komarianskyi@epam.com>
 <bff3d1c4302e8780771abed42f624cafe76776cd.1756216943.git.leonid_komarianskyi@epam.com>
 <874itt4r5t.fsf@epam.com>
In-Reply-To: <874itt4r5t.fsf@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: GV2PR03MB8678:EE_|GV1PR03MB10346:EE_
x-ms-office365-filtering-correlation-id: d7759ffe-bb39-4d68-4e84-08dde5541156
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?YlJLb0h2Y0dGRTJZSy9XWnFLL3B6V0x0cW9ubjFuSld6Z2d5MzBPemplOHhI?=
 =?utf-8?B?UEpadTI0aTBkQm4weUZiNCtnNnNnY2VRSVNrMEVDN3VsbG85NkI1eW5YRi93?=
 =?utf-8?B?eEdyMHR1UkRvUm1pelMzcmlQUlk3aVo3bGdiektJOHBkWDJHcWxER1RSV2o2?=
 =?utf-8?B?cUxORmJ5L0V5eHBkb2NTaFlLOHhrRmducVZpUHdxeThuc1ZTOWZZNmF6YVV6?=
 =?utf-8?B?MjBUY1h1ellJQjVjUzFTMm9tUnpSY2N3a1dvMEJkWGpERld2UVZUa2VNOUtT?=
 =?utf-8?B?VHcrMkhZdm8zSC82c2RxbUF2SFhIN2tWL0NvK1A3OWptYXd0M0ZBQUptYTJx?=
 =?utf-8?B?dzZrNlUxSlhjQjA4N3hsZGtndUlOQjZjUDdTdURiYUtuYWJTcG01MkZmOFla?=
 =?utf-8?B?amtqd0dqWU5rQUt5a3dMNG5uQXNYQ3QwTzN3ZXlpcEhpL3M5RTAzeXZDdmlj?=
 =?utf-8?B?cHlnYWxydFkzbEZIODc2UXJIQ3NxaGNIVVhQOXdWZWhTQzdCYUxVTmRBaFNZ?=
 =?utf-8?B?WStkaHJUQ1JNK0g5aG0xK2xhTENocnVmc2NUQU5lYW9HT3NpV1FyaHUyK0FK?=
 =?utf-8?B?QmFHbmpja1J2WmRPOVFsb2FYblJSbTh2a09wc1dsSHVPT1VHcCtYWHlUSmVr?=
 =?utf-8?B?QVN1YzF2SGltazl5eUpvRDEvS2s2eFgxeUpMcHdDTjBQSVVmRk1XU2pHdWlJ?=
 =?utf-8?B?U1ZmUDQ0QzI2Zm1qMmtnVVhRUTNzZFVJa05OeDFzQk5NS0FMQVZZRlAwTmpa?=
 =?utf-8?B?VEo1YXlsa1NzNnlXSWt4L21qRDh6WEJNMG51b3gyMjYvbGExa3JsN3ZOdGda?=
 =?utf-8?B?azdWcmFhZWRKN0VGcXVLNzlPUG5kTkdIeUttV2hyaks2NTlLYUQ1bjJ5YmtY?=
 =?utf-8?B?N29VYXlJczhQdjV1SU56ckJDb0d5MkhXTjlSR3R4a0ZtUHZzRDI5MjdzQkpi?=
 =?utf-8?B?QnRvYkErNXdMQnBLYlh3endHeUJqSE01K2RzVTI1UXY2ckpSQXRkNytlRWhY?=
 =?utf-8?B?NUd4dUwwN21YdnNET3RXeDVadW82TzI3dDdxK05Ua0g2N080aG5uYUJnWDVH?=
 =?utf-8?B?a0pud0tzUmlYMzA3RWxpTXl2RjAxZzJHVGNZMFIrQWlEZnJ1Rmo0QjFtd0JS?=
 =?utf-8?B?WVNCa2o2RmFhZkQzVndwL29nQWpBRnNyVXlKa2JKZExnQzlEc0NhOHkwamcx?=
 =?utf-8?B?MFdDb25iR09pZFd5dnVLOVZMOURwWHVobzhpeXBjMDQ3ZDhZRTJ3NmoxS3Zl?=
 =?utf-8?B?d1VYclZrR0lRMyt6eDk2UC81aTVHMUFoU0pySWpuMlhnbUw1ZW1kTFZVTlZD?=
 =?utf-8?B?bDh5QXl3aDZPNUdUanZ3eUZReHlkSmpCVnJRaWoxUDFGc1I4TUllREJ4bk5a?=
 =?utf-8?B?TFNJQjBFM0x4dWNZNnFBb01GYkhzcW1oZUF4dzI5VVlDL0VIVnl4SjRENldY?=
 =?utf-8?B?WEoyQXMxMEs5cHNvaGlyQjVGYUdydFFuVjlreFVXTEh0N1g3aklPU3VGSTg3?=
 =?utf-8?B?OVdpaERuMEs4SEJBRmZPVkRrWjZvd20xVHAzbDhUSDNDVVNBZnNWNU1VMkxo?=
 =?utf-8?B?VnhVTUVwVW1LL1Z6b1VnQ2F0MFFuWGQ4akFibmM3MmRYVzlHVTM1ZG9NTG9L?=
 =?utf-8?B?Q3drOG9vcE1KSHJ0V0czelJPMEYrbzBWSVdTS3NjL2JTTXVqdjhqZ0xtVjJl?=
 =?utf-8?B?OFhrUVQzMklxb3RwbVVLeThRZGV0eGQ3ZDRCSndWdmVzemRuaElUckd5bkhw?=
 =?utf-8?B?YWQ5ajlsY21jQXYvRWJsc3o5VUVIUzB0R3V4ZlV6VUtRT2RQQ01NWGE1Qkhn?=
 =?utf-8?B?N3RJUHJGMm8zMXNic3c1aFEzK1NYeXBwZ0hpL25ZcUsxUEYvcWtiMEJmUUpR?=
 =?utf-8?B?Vi9QcFhZS3FEWG82MEx4L2lJcUxldm9LMXBWNVpFMDROendJOGdJZEVNTUVk?=
 =?utf-8?B?NDBBb21oMEJSaE52Y05QaXlOZ1NxTjhBNUszNjRQQk9NMUZJQkJJSFZTeUFu?=
 =?utf-8?B?RmxQeDhRaklnPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?ZUNUZ0tuWEtTSVZhTEk2QWdTaTR6MVdmbE1neTdReWZONGpDbUV5eXpUTmpX?=
 =?utf-8?B?ajNXN2RrbVZxdnQwNHFSUmdhNU1rMzhqdmpwMXhsSi9UOFA0dWxCcmpPSmN0?=
 =?utf-8?B?SnBJRjdiYWJmUlRjdDhjZjFvczh5TjlucllTQ3FpZ21la250U1BkZkhsWlV5?=
 =?utf-8?B?VnZQeGtucFFpUUx0bFZSazAzbkdYaERhM0lMOXhUUm43V3ByWjJxOCthVjFM?=
 =?utf-8?B?V25rQWF3QVBCcXB6cy9MN2VaUkN5NzdKZWh3SnhlbUd3eEFCWTFCWlpvaDZE?=
 =?utf-8?B?UUdBM2ZwcmxVMmFWRmV6cE81L1Bia2NSYXd3ZUxiMXFhZk9ya01YS1BUQjhV?=
 =?utf-8?B?ZmYwc1V5MFZLSnNIOHBvSWxSVFBWdy9SNmtpVzhRdE0zNENvQkNIQU9xQWIy?=
 =?utf-8?B?TDlsb1QrWXJVZVFxbm1Wdk9scXcrelhSa1JES1RtZ2NiOWlmR1ZCRHJHWTV3?=
 =?utf-8?B?QjRZQ0FZaUQ1dHdJSlhXeXYwQXZSVnZ4bmhNTGRQNnJ4dUJtOHREN2ZmTzU2?=
 =?utf-8?B?b0NGNDJHR0lNd283LzZqYS9TbGpqeDl6QmlObGxkN3FFUElDNXZ2MVpDR1FN?=
 =?utf-8?B?RXRzVFU2SjNYRU9DZ1dPZXBrQ3F4Z3hiaTVveDZwNmNZZkszU1JEMnZUeXpJ?=
 =?utf-8?B?NnF2cHZ4WG81SUY5OU4rdkd2VXh3TGtVbUhXenpSVU14cWlOUU82eTBtckRn?=
 =?utf-8?B?UHM5VEhCZzdyK3pYdzBKUWZ5RzRPeHpjbVpqMEQ4bm5MbDVIVlh3NWdUQjZJ?=
 =?utf-8?B?bzR3Znp2UzF2Y1pGczdCTnN0d2MwYTd3UFJyY1J4STFsdnVMaUwyektyaS84?=
 =?utf-8?B?ZnYxTVMwY0JpL1ZhcGxjQjRIU1FkN3duMzd1MlJ1VHhFSHlzdnp0aGZHQUFM?=
 =?utf-8?B?azFhOXFxZmQ3K3VjbnQvS2ZIYkZiNm1ZeG1IcFZuOFl1ZDlRaFlzR1JrRDdq?=
 =?utf-8?B?dnVPVm9Lbm9hWDNseEQ2bm9vNSt3MmxCSUhPbzBiQ0h3YTVRRCtoWWRrSDdC?=
 =?utf-8?B?OFByanRxanM5bDNGM3Uwa1h5SmwrK0lUaC84VVRCTzcrOWJVSU83dzhBOEpr?=
 =?utf-8?B?Uis0Q2wxVTE3YlluSmpwS3NkUHUyUkVsSUoveXpKKzcxN2hrVi8xR1dNSmVZ?=
 =?utf-8?B?bTFRbkR2RVI4UEhWcUFsZkpIZkhlSUcyNzFSb1ZIR3I0MTRHYlZpSlZtUksz?=
 =?utf-8?B?c01zR1VsVlNyRXVhWkh6WlB0S2NhK2trYmRSQUMrdkx0N2JHczRaSjRsaUxK?=
 =?utf-8?B?REVpeTdjUTRqc0NDRFIwSDA3elltRDBPeGFmQjVHUEYwbjkxMkJRZmg5dURC?=
 =?utf-8?B?cGc5S3pjdWd2dTlMc3BqYnBJUEc0cmtBNi9ZSkRJMzBFSmV6K2ZaZ0p5azdT?=
 =?utf-8?B?VmY0RktWK2FNbjVlSzVhb2czcEYrZGxwVlEwZHVsUEY3QnZIaEgzN0ZqVGV0?=
 =?utf-8?B?NTY5c2hydUF4ZW83MDllbUk5ZEo0YUVXaEtVczdzbzRGMVh6RmZlSTBmOVdY?=
 =?utf-8?B?WXk2M0h4Mk5vcVpoUUltUThZTjdKZERwZXBqT3BaSzV1YWxSOE9lRlpvNVA3?=
 =?utf-8?B?U253a0wrK3Y3RWVJeWx2RDZNVTlRWTNvSVJiZW1pM25zaGNsMDZXZVNWVU9N?=
 =?utf-8?B?VHFMVE1Tc09EcGNMYWRkZjZJQ29PVk9ZWnRYUngxUDdMQTFicUhhdG9rOUp6?=
 =?utf-8?B?Qit1NW1kbHhMaDRmVkZOeEJ6Q041bE81ZjdtWnhIVkdtWS8rNWlqNUJaOHVo?=
 =?utf-8?B?czB3RUhSTTUrWThOdUVIbEhXSSt6ZUFCZ0tsZXBmTGM5OXZwMlFvNWwxUnpM?=
 =?utf-8?B?NXRrL3JPWmN0WmNCY1lYZWdmbzhlL05xR1IwVFZJd3M0Y2pDZHRMdEZBODBK?=
 =?utf-8?B?dDV0ZmxTTTF3cEg0WFpqYzdYekJiSjBEb1VhN24vSFRvZUxuQ0NYcUwwN2FP?=
 =?utf-8?B?U2puS282c3JRdTZNbUVuYWRCZ2NqSmpmTUhYT3RGR1pVajRMR1MxVXFLYWpz?=
 =?utf-8?B?cmx6LzZZVVNtY0tjTEhOTlM3aWR5TnB4c3FBK1o3eGNYZkloZDhUeDVpejE3?=
 =?utf-8?B?Z2l2eU1kZlRRZm5LTmorT2w1OFBpM2IwdDhiQXJRUkFueHFWZVpQbVBjYTRv?=
 =?utf-8?B?MXlnMFF1eXErc0pEbGVrRldVaVR5bWxabVJBQWQrejIyTjV1ZzdwY0hXQi8v?=
 =?utf-8?Q?eB0nXwsSmsysLEQPWSPoqho=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <4F869E94F552A646820D45692049AF53@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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d7759ffe-bb39-4d68-4e84-08dde5541156
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Aug 2025 10:25:38.7206
 (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: 4W0ilGX41DOuVJfUFPlTloq0zjGq0r59jmEfkheTKCpDO3m/XXtE8TqH8Ky8pi90cCTJnjvEyLwaN21Dr61lauL47xCLoL/i3aghDcQnFjI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR03MB10346

SGVsbG8gVm9sb2R5bXlyLA0KDQpUaGFuayB5b3UgZm9yIHlvdXIgc3VnZ2VzdGlvbi4NCg0KT24g
MjcuMDguMjUgMDI6MDgsIFZvbG9keW15ciBCYWJjaHVrIHdyb3RlOg0KPiBIaSBMZW9uaWQsDQo+
IA0KPiBMZW9uaWQgS29tYXJpYW5za3lpIDxMZW9uaWRfS29tYXJpYW5za3lpQGVwYW0uY29tPiB3
cml0ZXM6DQo+IA0KPj4gVGhlIERvbTAgYW5kIERvbVVzIGxvZ2ljIGZvciB0aGUgZG9tMGxlc3Mg
Y29uZmlndXJhdGlvbiBpbiBjcmVhdGVfZG9tMCgpDQo+PiBhbmQgYXJjaF9jcmVhdGVfZG9tVXMo
KSBoYXMgYmVlbiB1cGRhdGVkIHRvIGFjY291bnQgZm9yIGV4dGVuZGVkIFNQSXMNCj4+IHdoZW4g
c3VwcG9ydGVkIGJ5IHRoZSBoYXJkd2FyZSBhbmQgZW5hYmxlZCB3aXRoIENPTkZJR19HSUNWM19F
U1BJLiBUaGVzZQ0KPj4gY2hhbmdlcyBlbnN1cmUgdGhlIHByb3BlciBjYWxjdWxhdGlvbiBvZiB0
aGUgbWF4aW11bSBudW1iZXIgb2YgU1BJcyBhbmQNCj4+IGVTUElzIGF2YWlsYWJsZSB0byBEb20w
IGFuZCBEb21VcyBpbiBkb20wbGVzcyBzZXR1cHMuDQo+Pg0KPj4gV2hlbiBlU1BJcyBhcmUgc3Vw
cG9ydGVkIGJ5IHRoZSBoYXJkd2FyZSBhbmQgQ09ORklHX0dJQ1YzX0VTUEkgaXMNCj4+IGVuYWJs
ZWQsIHRoZSBtYXhpbXVtIG51bWJlciBvZiBlU1BJIGludGVycnVwdHMgaXMgY2FsY3VsYXRlZCB1
c2luZyB0aGUNCj4+IEVTUElfQkFTRV9JTlRJRCBvZmZzZXQgKDQwOTYpIGFuZCBpcyBsaW1pdGVk
IHRvIDEwMjQsIHdpdGggMzIgSVJRcw0KPj4gc3VidHJhY3RlZC4gVG8gZW5zdXJlIGNvbXBhdGli
aWxpdHkgd2l0aCBEb21VcyAoRG9tMCBzZXR1cHMpIGRvbWFpbnMsDQo+PiB3aGVyZSB0aGlzIGFk
anVzdG1lbnQgaXMgYXBwbGllZCBieSB0aGUgdG9vbHN0YWNrIGR1cmluZyBkb21haW4NCj4+IGNy
ZWF0aW9uLCB3aGlsZSBmb3IgRG9tMCBvciBEb21VcyBpbiBEb20wLCBpdCBpcyBoYW5kbGVkIGRp
cmVjdGx5IGR1cmluZw0KPj4gVkdJQyBpbml0aWFsaXphdGlvbi4gSWYgZVNQSXMgYXJlIG5vdCBz
dXBwb3J0ZWQsIHRoZSBjYWxjdWxhdGlvbg0KPj4gZGVmYXVsdHMgdG8gdXNpbmcgdGhlIHN0YW5k
YXJkIFNQSSByYW5nZSwgd2l0aCBhIG1heGltdW0gdmFsdWUgb2YNCj4+IDk2MCBpbnRlcnJ1cHQg
bGluZXMsIGFzIGl0IHdvcmtzIGN1cnJlbnRseS4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBMZW9u
aWQgS29tYXJpYW5za3lpIDxsZW9uaWRfa29tYXJpYW5za3lpQGVwYW0uY29tPg0KPj4NCj4+IC0t
LQ0KPj4gQ2hhbmdlcyBpbiBWMjoNCj4+IC0gbm8gY2hhbmdlcw0KPj4NCj4+IENoYW5nZXMgaW4g
VjM6DQo+PiAtIHJlbmFtZWQgbWFjcm8gVkdJQ19ERUZfTlJfRVNQSVMgdG8gbW9yZSBhcHByb3By
aWF0ZSBWR0lDX0RFRl9NQVhfU1BJDQo+IA0KPiBXaWxsIFZHSUNfREVGX01BWF9FU1BJIGJlIGJl
dHRlcj8gV2hlbiBvdGhlciBjb2RlIHJlZmVyIHRvICJTUEkiIGl0IG1lYW4NCj4gImNvbW1vbiBT
UEkiIChsZXNzIHRoYW4gMTAyMiksIHdoaWxlIEVTUEkgaXMgdXNlZCBmb3IgZXh0ZW5kZWQgU1BJ
LiBTbywNCj4gbmF0dXJhbGx5IGl0IGZlZWxzIHRoYXQgVkdJQ19ERUZfTUFYX1NQSSBzaG91bGQg
YmUgZXF1YWwgdG8gMTAyMi4uLg0KPiANCg0KWWVzLCBJIGFncmVlIHdpdGggdGhhdCAtIFZHSUNf
REVGX01BWF9FU1BJIHNvdW5kcyBtb3JlIGFwcHJvcHJpYXRlIGluIA0KdGhpcyBjYXNlLiBJIHdp
bGwgcmVuYW1lIGl0IGluIFY0Lg0KDQo+PiAtIGFkZGVkIGVTUEkgaW5pdGlhbGl6YXRpb24gZm9y
IGRvbTBsZXNzIHNldHVwcw0KPj4gLSBmaXhlZCBjb21tZW50IHdpdGggbWVudGlvbnMgYWJvdXQg
ZG9tMGxlc3MgYnVpbGRzDQo+PiAtIGZpeGVkIGZvcm1hdHRpbmcgZm9yIGxpbmVzIHdpdGggbW9y
ZSB0aGFuIDgwIHN5bWJvbHMNCj4+IC0gdXBkYXRlZCBjb21taXQgbWVzc2FnZQ0KPj4gLS0tDQo+
PiAgIHhlbi9hcmNoL2FybS9kb20wbGVzcy1idWlsZC5jICAgfCAxMiArKysrKysrKysrKysNCj4+
ICAgeGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jICAgICB8IDExICsrKysrKysrKysrDQo+PiAg
IHhlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS92Z2ljLmggfCAxNCArKysrKysrKysrKysrKw0KPj4g
ICAzIGZpbGVzIGNoYW5nZWQsIDM3IGluc2VydGlvbnMoKykNCj4+DQo+PiBkaWZmIC0tZ2l0IGEv
eGVuL2FyY2gvYXJtL2RvbTBsZXNzLWJ1aWxkLmMgYi94ZW4vYXJjaC9hcm0vZG9tMGxlc3MtYnVp
bGQuYw0KPj4gaW5kZXggNjliOWVhMjJjZS4uZjRmOTA3N2RiNSAxMDA2NDQNCj4+IC0tLSBhL3hl
bi9hcmNoL2FybS9kb20wbGVzcy1idWlsZC5jDQo+PiArKysgYi94ZW4vYXJjaC9hcm0vZG9tMGxl
c3MtYnVpbGQuYw0KPj4gQEAgLTI4Niw2ICsyODYsMTggQEAgdm9pZCBfX2luaXQgYXJjaF9jcmVh
dGVfZG9tVXMoc3RydWN0IGR0X2RldmljZV9ub2RlICpub2RlLA0KPj4gICAgICAgICAgIGludCB2
cGwwMTFfdmlycSA9IEdVRVNUX1ZQTDAxMV9TUEk7DQo+PiAgIA0KPj4gICAgICAgICAgIGRfY2Zn
LT5hcmNoLm5yX3NwaXMgPSBWR0lDX0RFRl9OUl9TUElTOw0KPj4gKyNpZmRlZiBDT05GSUdfR0lD
VjNfRVNQSQ0KPj4gKyAgICAgICAgLyoNCj4+ICsgICAgICAgICAqIENoZWNrIGlmIHRoZSBoYXJk
d2FyZSBzdXBwb3J0cyBleHRlbmRlZCBTUElzIChldmVuIGlmIHRoZQ0KPj4gKyAgICAgICAgICog
YXBwcm9wcmlhdGUgY29uZmlnIGlzIHNldCkuIElmIG5vdCwgdGhlIGNvbW1vbiBTUEkgcmFuZ2UN
Cj4+ICsgICAgICAgICAqIHdpbGwgYmUgdXNlZC4gT3RoZXJ3aXNlIG92ZXJ3cml0ZSB0aGUgbnJf
c3BpcyB3aXRoIHRoZSBtYXhpbXVtDQo+PiArICAgICAgICAgKiBhdmFpbGFibGUgSU5USUQgZnJv
bSBlU1BJIHJhbmdlLiBJbiB0aGF0IGNhc2UsIHRoZSBudW1iZXIgb2YNCj4+ICsgICAgICAgICAq
IHJlZ3VsYXIgU1BJcyB3aWxsIGJlIGFkanVzdGVkIHRvIHRoZSBtYXhpbXVtIHZhbHVlIGR1cmlu
ZyB2R0lDDQo+PiArICAgICAgICAgKiBpbml0aWFsaXphdGlvbi4NCj4+ICsgICAgICAgICAqLw0K
Pj4gKyAgICAgICAgaWYgKCBnaWNfbnVtYmVyX2VzcGlzKCkgPiAwICkNCj4+ICsgICAgICAgICAg
ICBkX2NmZy0+YXJjaC5ucl9zcGlzID0gVkdJQ19ERUZfTUFYX1NQSTsNCj4+ICsjZW5kaWYNCj4+
ICAgDQo+PiAgICAgICAgICAgLyoNCj4+ICAgICAgICAgICAgKiBUaGUgVlBMMDExIHZpcnEgaXMg
R1VFU1RfVlBMMDExX1NQSSwgdW5sZXNzIGRpcmVjdC1tYXAgaXMNCj4+IGRpZmYgLS1naXQgYS94
ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMgYi94ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMN
Cj4+IGluZGV4IGQ5MWE3MWFjZmQuLjE0OGE4YmRiNjAgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vYXJj
aC9hcm0vZG9tYWluX2J1aWxkLmMNCj4+ICsrKyBiL3hlbi9hcmNoL2FybS9kb21haW5fYnVpbGQu
Yw0KPj4gQEAgLTIwNTUsNiArMjA1NSwxNyBAQCB2b2lkIF9faW5pdCBjcmVhdGVfZG9tMCh2b2lk
KQ0KPj4gICAgICAgLyogVGhlIHZHSUMgZm9yIERPTTAgaXMgZXhhY3RseSBlbXVsYXRpbmcgdGhl
IGhhcmR3YXJlIEdJQyAqLw0KPj4gICAgICAgZG9tMF9jZmcuYXJjaC5naWNfdmVyc2lvbiA9IFhF
Tl9ET01DVExfQ09ORklHX0dJQ19OQVRJVkU7DQo+PiAgICAgICBkb20wX2NmZy5hcmNoLm5yX3Nw
aXMgPSBWR0lDX0RFRl9OUl9TUElTOw0KPj4gKyNpZmRlZiBDT05GSUdfR0lDVjNfRVNQSQ0KPj4g
KyAgICAvKg0KPj4gKyAgICAgKiBDaGVjayBpZiB0aGUgaGFyZHdhcmUgc3VwcG9ydHMgZXh0ZW5k
ZWQgU1BJcyAoZXZlbiBpZiB0aGUgYXBwcm9wcmlhdGUNCj4+ICsgICAgICogY29uZmlnIGlzIHNl
dCkuIElmIG5vdCwgdGhlIGNvbW1vbiBTUEkgcmFuZ2Ugd2lsbCBiZSB1c2VkLiBPdGhlcndpc2UN
Cj4+ICsgICAgICogb3ZlcndyaXRlIHRoZSBucl9zcGlzIHdpdGggdGhlIG1heGltdW0gYXZhaWxh
YmxlIElOVElEIGZyb20gZVNQSSByYW5nZS4NCj4+ICsgICAgICogSW4gdGhhdCBjYXNlLCB0aGUg
bnVtYmVyIG9mIHJlZ3VsYXIgU1BJcyB3aWxsIGJlIGFkanVzdGVkIHRvIHRoZSBtYXhpbXVtDQo+
PiArICAgICAqIHZhbHVlIGR1cmluZyB2R0lDIGluaXRpYWxpemF0aW9uLg0KPj4gKyAgICAgKi8N
Cj4+ICsgICAgaWYgKCBnaWNfbnVtYmVyX2VzcGlzKCkgPiAwICkNCj4+ICsgICAgICAgIGRvbTBf
Y2ZnLmFyY2gubnJfc3BpcyA9IFZHSUNfREVGX01BWF9TUEk7DQo+PiArI2VuZGlmDQo+PiAgICAg
ICBkb20wX2NmZy5hcmNoLnRlZV90eXBlID0gdGVlX2dldF90eXBlKCk7DQo+PiAgICAgICBkb20w
X2NmZy5tYXhfdmNwdXMgPSBkb20wX21heF92Y3B1cygpOw0KPj4gICANCj4+IGRpZmYgLS1naXQg
YS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vdmdpYy5oIGIveGVuL2FyY2gvYXJtL2luY2x1ZGUv
YXNtL3ZnaWMuaA0KPj4gaW5kZXggMjQ4YjU4NjllMS4uMGJiMDI1ZjVkNSAxMDA2NDQNCj4+IC0t
LSBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS92Z2ljLmgNCj4+ICsrKyBiL3hlbi9hcmNoL2Fy
bS9pbmNsdWRlL2FzbS92Z2ljLmgNCj4+IEBAIC0zNTMsNiArMzUzLDIwIEBAIGV4dGVybiB2b2lk
IHZnaWNfY2hlY2tfaW5mbGlnaHRfaXJxc19wZW5kaW5nKHN0cnVjdCB2Y3B1ICp2LA0KPj4gICAv
KiBEZWZhdWx0IG51bWJlciBvZiB2R0lDIFNQSXMuIDMyIGFyZSBzdWJzdHJhY3RlZCB0byBjb3Zl
ciBsb2NhbCBJUlFzLiAqLw0KPj4gICAjZGVmaW5lIFZHSUNfREVGX05SX1NQSVMgKG1pbihnaWNf
bnVtYmVyX2xpbmVzKCksIFZHSUNfTUFYX0lSUVMpIC0gMzIpDQo+PiAgIA0KPj4gKyNpZmRlZiBD
T05GSUdfR0lDVjNfRVNQSQ0KPj4gKy8qDQo+PiArICogUmV0dXJucyB0aGUgbWF4aW11bSBlU1BJ
IElOVElELCBzdXBwb3J0ZWQgYnkgSFcgR0lDLCBzdWJ0cmFjdGVkIGJ5IDMyLiBGb3INCj4+ICsg
KiBub24tRG9tMCBkb21haW5zLCB0aGUgdG9vbHN0YWNrIG9yIGFyY2hfY3JlYXRlX2RvbVVzIGZ1
bmN0aW9uIGFwcGxpZXMgdGhlDQo+PiArICogc2FtZSBhZGp1c3RtZW50IHRvIGNvdmVyIGxvY2Fs
IElSUXMgKHBsZWFzZSwgc2VlIGNvbW1lbnQgZm9yIG1hY3JvIHRoYXQgaXMNCj4+ICsgKiB1c2Vk
IGZvciByZWd1bGFyIFNQSXMgLSBWR0lDX0RFRl9OUl9TUElTKS4gV2Ugd2lsbCBhZGQgYmFjayB0
aGlzIHZhbHVlDQo+PiArICogZHVyaW5nIFZHSUMgaW5pdGlhbGl6YXRpb24uIFRoaXMgZW5zdXJl
cyBjb25zaXN0ZW50IGhhbmRsaW5nIGZvciBEb20wIGFuZA0KPj4gKyAqIG90aGVyIGRvbWFpbnMu
IEZvciB0aGUgcmVndWxhciBTUEkgcmFuZ2UgaW50ZXJydXB0cyBpbiB0aGlzIGNhc2UsIHRoZQ0K
Pj4gKyAqIG1heGltdW0gdmFsdWUgb2YgVkdJQ19ERUZfTlJfU1BJUyB3aWxsIGJlIHVzZWQuDQo+
PiArICovDQo+PiArI2RlZmluZSBWR0lDX0RFRl9NQVhfU1BJIChFU1BJX0JBU0VfSU5USUQgKyBc
DQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICBtaW4oZ2ljX251bWJlcl9lc3BpcygpLCAx
MDI0VSkgLSAzMikNCj4+ICsjZW5kaWYNCj4+ICsNCj4+ICAgZXh0ZXJuIGJvb2wgdmdpY19pc192
YWxpZF9saW5lKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCB2aXJxKTsNCj4+ICAgDQo+
PiAgIHN0YXRpYyBpbmxpbmUgYm9vbCB2Z2ljX2lzX3NwaShzdHJ1Y3QgZG9tYWluICpkLCB1bnNp
Z25lZCBpbnQgdmlycSkNCj4gDQoNCkJlc3QgcmVnYXJkcywNCkxlb25pZA0K


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 10:26:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 10:26:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095882.1450741 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urDMD-0001in-Ln; Wed, 27 Aug 2025 10:26:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095882.1450741; Wed, 27 Aug 2025 10:26: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 1urDMD-0001ig-Iq; Wed, 27 Aug 2025 10:26:21 +0000
Received: by outflank-mailman (input) for mailman id 1095882;
 Wed, 27 Aug 2025 10:26:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BCET=3H=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1urDMC-0001iL-A4
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 10:26:20 +0000
Received: from mail-lj1-x22a.google.com (mail-lj1-x22a.google.com
 [2a00:1450:4864:20::22a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 389fb8c5-8330-11f0-b898-0df219b8e170;
 Wed, 27 Aug 2025 12:25:58 +0200 (CEST)
Received: by mail-lj1-x22a.google.com with SMTP id
 38308e7fff4ca-3366f102680so27294051fa.3
 for <xen-devel@lists.xenproject.org>; Wed, 27 Aug 2025 03:25:58 -0700 (PDT)
Received: from [192.168.0.110] ([91.123.151.69])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-33672ad74dcsm18579511fa.24.2025.08.27.03.25.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Aug 2025 03:25: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>
X-Inumbo-ID: 389fb8c5-8330-11f0-b898-0df219b8e170
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756290357; x=1756895157; 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=RtTPOToBz1rG1gXUmUOzXdRQVKpyGdZjRT3Zys0huh4=;
        b=ncYZCEcDKEdV8TOKj3RQowR8xGXXqI268oU8WhLDPchcEvha+uk/98co9VzC8nYIH8
         vQTQbJl6now7JjzmGuLH1wHqxeZVBe+BLE65HPgogo1C2aAmsnMmK6sSBw1bOyp4ILrG
         oSNxMzAY5yv28IRuYPWQw5p3ULajWNTIm6G3g4HEP6wWfL99Q4HoIfLwW5c04S1i9xiI
         3F4mif80uUK3KL+47BeO6by1UxSDh1kIdF2BJcMjlgkpljFDNEsE5g9PELgeIHzc3XLz
         0NiF8zTJqFYRsa3h8gAFdCGtEZgcfCy5DqerLqjC/TubnP0w1LDNx52P95VxEsO326Ix
         V26w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756290357; x=1756895157;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=RtTPOToBz1rG1gXUmUOzXdRQVKpyGdZjRT3Zys0huh4=;
        b=vD6rpo+DIEg0qwpIhyP20xt7V4I9J99bF5+nK135xcJWP6r83DZ3EU76r4qjlZQjAc
         FTK5Qb4Fu2n5azpQ5jvYZQDlwQlRzXsnYu2tgmqCPYYV2pJ47D1X1sZyGv23S8LtKgnx
         TUsKWMa9Rh6RtG6QoVxsoH/cVAmYrb/y34pExBynhVaAMfnh//bR5vXonrYs+f491VKK
         BAMdvVNR2b3Klbb9Augks657cFnjFdL0bv0UxMIK+PgbzLWFu4PpLYACG/UKMgKO0CSq
         y6zbiJ2DmgcOFWqPrj5hOfQgKTPyAgR6UJz9ZwPJl0GfeL+lKEOX6nzP2g9cbr0lWT5U
         yT6A==
X-Forwarded-Encrypted: i=1; AJvYcCWGOatBIM0/i7zw3SJ+pAOOYG9+g7Kk6rQ1/RJl0ubhyD+t6iyK8EZDSnq/ImgvxNmLyK4G8glxK3k=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywrswd2575vt9/jVtbdc0xcQcQU54fBLwGc1lYxx2c/yTy3UBXo
	iLVKE9il5Zy3EFPQ8KIwfl1+IEqA5MBGtUJst8MjbSdkNvx4sMpKWuhc
X-Gm-Gg: ASbGnctTODq1Kg77u4QpWxmZsSgCLGvJDPhWjQvaQRJHK5/TsE0jYHDKONDHoo5rmkm
	m4DZ7dV9Iy6x/3y240k6Xtvuwm0OJX9XmFyhXPzaAWK1gCrHoS638VE60AbFYpbuKOtqOGtY+4I
	94W8NVEDDXsdO4nR9/Ulte+Yzy1ibOingOO6EiSGqTpEZfru4tBmNyt/kLehhvj44F7J5GiFS/v
	UnNQVhcT0fGJVYY0IOR+OK8cNdILrMBATfV2dKL15d8d9HNWjj5xjPOg8/DSQ+9dNtW8rYge+jJ
	IFB9woxZN9Zct91qK90ABWleBikPvz/FwKcZnMdRW9yXwj/bZtouPOKrluDMiYAgiTtZOc7L/zg
	L7/gzNkr2T2NSFqT4lt39FfXttQ==
X-Google-Smtp-Source: AGHT+IHLKioI0qA8Wz4DzKYijtk+tudRu/27TPrDMCUMkwCHmtv1Fy3deWkZpmpeaSQmtqtz+yCgfQ==
X-Received: by 2002:a05:651c:31ca:20b0:333:fff0:7d21 with SMTP id 38308e7fff4ca-33650da385fmr32255441fa.10.1756290357169;
        Wed, 27 Aug 2025 03:25:57 -0700 (PDT)
Message-ID: <c9ec5d69-6b2e-4226-aa8f-ee6062c84885@gmail.com>
Date: Wed, 27 Aug 2025 13:25:55 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 05/11] xen/arm: gicv3: implement handling of GICv3.1
 eSPI
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1756216942.git.leonid_komarianskyi@epam.com>
 <398ad09617f4f97d57d13fa9f3771bd2db83916b.1756216943.git.leonid_komarianskyi@epam.com>
Content-Language: en-US
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
In-Reply-To: <398ad09617f4f97d57d13fa9f3771bd2db83916b.1756216943.git.leonid_komarianskyi@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 26.08.25 17:05, Leonid Komarianskyi wrote:


Hello Leonid,

In general patch looks good to me, just one question below ...

> Introduced appropriate register definitions, helper macros,
> and initialization of required GICv3.1 distributor registers
> to support eSPI. This type of interrupt is handled in the
> same way as regular SPI interrupts, with the following
> differences:
> 
> 1) eSPIs can have up to 1024 interrupts, starting from the
> beginning of the range, whereas regular SPIs use INTIDs from
> 32 to 1019, totaling 988 interrupts;
> 2) eSPIs start at INTID 4096, necessitating additional interrupt
> index conversion during register operations.
> 
> In case if appropriate config is disabled, or GIC HW doesn't
> support eSPI, the existing functionality will remain the same.
> 
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
> 
> ---
> Changes in V2:
> - move gic_number_espis function from
>    [PATCH 08/10] xen/arm: vgic: add resource management for extended SPIs
>    to use it in the newly introduced gic_is_valid_espi
> - add gic_is_valid_espi which checks if IRQ number is in supported
>    by HW eSPI range
> - update gic_is_valid_irq conditions to allow operations with eSPIs
> 
> Changes in V3:
> - add __init attribute to gicv3_dist_espi_common_init
> - change open-codded eSPI register initialization to the appropriate
>    gen-mask macro
> - fixed formatting for lines with more than 80 symbols
> - introduced gicv3_dist_espi_init_aff to be able to use stubs in case of
>    CONFIG_GICV3_ESPI disabled
> - renamed parameter in the GICD_TYPER_ESPI_RANGE macro to espi_range
>    (name was taken from GIC specification) to avoid confusion
> - changed type for i variable to unsigned int since it cannot be
>    negative
> ---
>   xen/arch/arm/gic-v3.c                  | 80 ++++++++++++++++++++++++++
>   xen/arch/arm/include/asm/gic.h         | 21 +++++++
>   xen/arch/arm/include/asm/gic_v3_defs.h | 34 +++++++++++
>   3 files changed, 135 insertions(+)
> 
> diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
> index a959fefebe..3aa5cc1765 100644
> --- a/xen/arch/arm/gic-v3.c
> +++ b/xen/arch/arm/gic-v3.c
> @@ -485,6 +485,36 @@ static void __iomem *get_addr_by_offset(struct irq_desc *irqd, u32 offset)
>           default:
>               break;
>           }
> +#ifdef CONFIG_GICV3_ESPI
> +    case ESPI_BASE_INTID ... ESPI_MAX_INTID:
> +    {
> +        u32 irq_index = ESPI_INTID2IDX(irqd->irq);
> +
> +        switch ( offset )
> +        {
> +        case GICD_ISENABLER:
> +            return (GICD + GICD_ISENABLERnE + (irq_index / 32) * 4);
> +        case GICD_ICENABLER:
> +            return (GICD + GICD_ICENABLERnE + (irq_index / 32) * 4);
> +        case GICD_ISPENDR:
> +            return (GICD + GICD_ISPENDRnE + (irq_index / 32) * 4);
> +        case GICD_ICPENDR:
> +            return (GICD + GICD_ICPENDRnE + (irq_index / 32) * 4);
> +        case GICD_ISACTIVER:
> +            return (GICD + GICD_ISACTIVERnE + (irq_index / 32) * 4);
> +        case GICD_ICACTIVER:
> +            return (GICD + GICD_ICACTIVERnE + (irq_index / 32) * 4);
> +        case GICD_ICFGR:
> +            return (GICD + GICD_ICFGRnE + (irq_index / 16) * 4);
> +        case GICD_IROUTER:
> +            return (GICD + GICD_IROUTERnE + irq_index * 8);
> +        case GICD_IPRIORITYR:
> +            return (GICD + GICD_IPRIORITYRnE + irq_index);
> +        default:
> +            break;
> +        }
> +    }
> +#endif
>       default:
>           break;
>       }
> @@ -655,6 +685,52 @@ static void gicv3_set_irq_priority(struct irq_desc *desc,
>       spin_unlock(&gicv3.lock);
>   }
>   
> +#ifdef CONFIG_GICV3_ESPI
> +unsigned int gic_number_espis(void)
> +{
> +    return gic_hw_ops->info->nr_espi;
> +}
> +
> +static void __init gicv3_dist_espi_common_init(uint32_t type)
> +{
> +    unsigned int espi_nr, i;
> +
> +    espi_nr = min(1024U, GICD_TYPER_ESPIS_NUM(type));
> +    gicv3_info.nr_espi = espi_nr;
> +    /* The GIC HW doesn't support eSPI, so we can leave from here */
> +    if ( gicv3_info.nr_espi == 0 )
> +        return;
> +
> +    for ( i = 0; i < espi_nr; i += 16 )
> +        writel_relaxed(0, GICD + GICD_ICFGRnE + (i / 16) * 4);
> +
> +    for ( i = 0; i < espi_nr; i += 4 )
> +        writel_relaxed(GIC_PRI_IRQ_ALL,
> +                       GICD + GICD_IPRIORITYRnE + (i / 4) * 4);
> +
> +    for ( i = 0; i < espi_nr; i += 32 )
> +    {
> +        writel_relaxed(GENMASK(31, 0), GICD + GICD_ICENABLERnE + (i / 32) * 4);
> +        writel_relaxed(GENMASK(31, 0), GICD + GICD_ICACTIVERnE + (i / 32) * 4);
> +    }
> +
> +    for ( i = 0; i < espi_nr; i += 32 )
> +        writel_relaxed(GENMASK(31, 0), GICD + GICD_IGROUPRnE + (i / 32) * 4);
> +}
> +
> +static void __init gicv3_dist_espi_init_aff(uint64_t affinity)
> +{
> +    unsigned int i;
> +
> +    for ( i = 0; i < gicv3_info.nr_espi; i++ )
> +        writeq_relaxed_non_atomic(affinity, GICD + GICD_IROUTERnE + i * 8);
> +}
> +#else
> +static void __init gicv3_dist_espi_common_init(uint32_t type) { }
> +
> +static void __init gicv3_dist_espi_init_aff(uint64_t affinity) { }
> +#endif
> +
>   static void __init gicv3_dist_init(void)
>   {
>       uint32_t type;
> @@ -700,6 +776,8 @@ static void __init gicv3_dist_init(void)
>       for ( i = NR_GIC_LOCAL_IRQS; i < nr_lines; i += 32 )
>           writel_relaxed(GENMASK(31, 0), GICD + GICD_IGROUPR + (i / 32) * 4);


There is a banner in this function (not visible from the patch context), 
that prints nr_lines, etc.

E.g.:
(XEN) GICv3: 288 lines, (IID 0000043b).

What do you think, would it be important/valuable to also print nr_espi 
if non-zero (extended SPI range is supported)?


>   
> +    gicv3_dist_espi_common_init(type);
> +
>       gicv3_dist_wait_for_rwp();
>   
>       /* Turn on the distributor *
> @@ -713,6 +791,8 @@ static void __init gicv3_dist_init(void)
>   
>       for ( i = NR_GIC_LOCAL_IRQS; i < nr_lines; i++ )
>           writeq_relaxed_non_atomic(affinity, GICD + GICD_IROUTER + i * 8);
> +
> +    gicv3_dist_espi_init_aff(affinity);
>   }
> 


[snip]





From xen-devel-bounces@lists.xenproject.org Wed Aug 27 10:31:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 10:31:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095898.1450750 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urDQt-0003Xc-6t; Wed, 27 Aug 2025 10:31:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095898.1450750; Wed, 27 Aug 2025 10:31: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 1urDQt-0003XV-3z; Wed, 27 Aug 2025 10:31:11 +0000
Received: by outflank-mailman (input) for mailman id 1095898;
 Wed, 27 Aug 2025 10:31:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9AuO=3H=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1urDQr-0003XP-Vb
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 10:31:09 +0000
Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com
 [2a00:1450:4864:20::430])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id eec98066-8330-11f0-a32c-13f23c93f187;
 Wed, 27 Aug 2025 12:31:03 +0200 (CEST)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-3c7aa4ce85dso2163683f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 27 Aug 2025 03:31:03 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b6f0c8bedsm26507755e9.1.2025.08.27.03.31.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Aug 2025 03:31: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>
X-Inumbo-ID: eec98066-8330-11f0-a32c-13f23c93f187
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756290663; x=1756895463; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:to:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=umTll9mn8G1OuylrPeOEqFOpl3MPV8hO/E09j/ZFpmM=;
        b=aRbCNb0/4pIOh7GkeDkBwONMsioceiv1VyqCijvFxPyGYEhzJ9ufTvFrZ1HxQpVEc8
         5MdTprDmS7OB1EZQeh3ukHR1KFe1EpBuI0M/CwVCClOL7ml/NKOlRycLZarvQfrs/pze
         9dkNFHHxGRaogm/m8tDRzRqH3bmd7GC5oTL1w=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756290663; x=1756895463;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:to:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=umTll9mn8G1OuylrPeOEqFOpl3MPV8hO/E09j/ZFpmM=;
        b=SGB9z3oBbaOY0QCfQa+evc4+/Ckd4ta/UrP2KVvuKSugBx8B1ZaejzlzK6StRc6dd5
         rZrXl4Y72xZVUZpPfdu55SfbfLwZa0ssbF8kmyPrm5aqUJgZ6hJzHgnZKtUdTrKcMklq
         D/rKePHqphwE4wXj9SwHhNNdcXvjJ1hVkH7rZJ+sf95/VOK4rmXq4/xCfuOQ/otGPXet
         1HYeLvZKAptG9fzQA0zYYK/yzEGx3bhCumRb/TimNP7WnAU8Ly9Vjr+8ZYaisQTEg/xw
         F32dJTq27TTbnCFrfBPNpt0cGen2oxY9KLOsJFIkw1htT3GkbKhvmy3SX46Nw6HQy0LW
         akdg==
X-Forwarded-Encrypted: i=1; AJvYcCXXdFHbBW7X9Iyi/XPATyveQ6fi74ET+3W2QThzfj00iXTclyeOdB1XoxQYfGkT2Sa2+K9h6SNnZgU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx8/6BlGlM0165eF6GKXr3L3wohNs/AnmDsSAywaBjSJ0+1FDhK
	fP4wHI5UdAzzv6p8GzgaZqtewCtnYr6cOZsCjOEYeKt834IBtnlt+e6pDNfVlHO0hSc=
X-Gm-Gg: ASbGncuHFnKHB17a9oRtz9UIL5AdlS5u3VOg5tTWvnOIVV5fX80i6N6fr2BYQO3Rz5P
	WpP6/v1hxc2edHrTvDoPlEL+P9VqD0ODFSJGEAewAx5YVb0TsEavUVBO98hdEdg3og4Y4hBxVqs
	op20r7IgSpuVlRVkfbB91WpmS0EKflZYhE+iKhrsYt3pasa07+DotTU/2dpqYHRNX0+FIF179FO
	Wu3/4C2YcouVYTcaGZqUPUsMzAwShQRL7E+zxR9p/MVL2099tp95LGpIhsEFkQlUTQxn7TBXXK0
	J6n2ee0qvDCtzkXDIui7Tu1BY/fJ6nzttUbavt0haRhAQy7tIO9x7diovgBJKvxs2enZ7iBHT/w
	WqnO9RpF29phlmR+9bphqRgUhydNtsVqYTy0Cg7117PYgjuV8vWyQRRstCSyBWwkNNrG+ozXhGe
	NJPGk=
X-Google-Smtp-Source: AGHT+IGRRTU5x6N44+5mSkcPg15VyR4PNGiZpkgj+gTpAQ9se39dRwqJU6RaDunThpwjOrKCD3rxxQ==
X-Received: by 2002:a5d:64cf:0:b0:3a4:f663:acb9 with SMTP id ffacd0b85a97d-3c5daa27b91mr11273524f8f.9.1756290663042;
        Wed, 27 Aug 2025 03:31:03 -0700 (PDT)
Message-ID: <de3424a5-8525-478e-b108-cbd1e5d1550e@citrix.com>
Date: Wed, 27 Aug 2025 11:31:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [Reminder] Feature Freeze is Fri Aug 29, 2025
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Xen-devel <xen-devel@lists.xenproject.org>,
 Community Manager <community.manager@xenproject.org>,
 "committers@xenproject.org" <committers@xenproject.org>
References: <07fc7122-d0ac-4dbe-800d-89086a07005b@gmail.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <07fc7122-d0ac-4dbe-800d-89086a07005b@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 25/08/2025 4:50 pm, Oleksii Kurochko wrote:
> Hello community,
>
> Iâ€™d like to remind everyone that the Feature Freeze deadline is approaching,
> and we still have some outstanding requests from the community for patch series
> to be merged into 4.21:
>
> 1. Enable guest suspend/resume support on ARM via vPSCI [1]
> 2. Introduce SCI SCMI SMC multi-agent support [2]
> 3. Introduce eSPI support [3]
> 4. FRED work: [4], [5], possibly others (?)
> 5. Introduce CONFIG_DOMCTL [6]
> 6. xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE [7]
> 7. Some other patch series I missed.

Fixes for Intel Fam18/19.Â  These are partly done, with some work
remaining.Â  These are more of a bugfix than a feature anyway, and needed
in order for Xen to function on CPUs being released this year (i.e.
fairly critical for 4.21.)

Cleanup/etc for new toolchains.Â  There's been a lot of work done
already, with a few already-posted patches needing a refresh.

Both of these areas are low risk changes and have been going on (at a
background priority) for most of 4.21.Â  They should be safe into the
first few RCs.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 11:13:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 11:13:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095917.1450781 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urE5d-0000rL-DR; Wed, 27 Aug 2025 11:13:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095917.1450781; Wed, 27 Aug 2025 11:13:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urE5d-0000rE-AO; Wed, 27 Aug 2025 11:13:17 +0000
Received: by outflank-mailman (input) for mailman id 1095917;
 Wed, 27 Aug 2025 11:13:15 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=x+iP=3H=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1urE5b-0000r8-8i
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 11:13:15 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d22e1134-8336-11f0-a32c-13f23c93f187;
 Wed, 27 Aug 2025 13:13:12 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by DB9PR03MB8823.eurprd03.prod.outlook.com (2603:10a6:10:3c4::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Wed, 27 Aug
 2025 11:13:07 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Wed, 27 Aug 2025
 11: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>
X-Inumbo-ID: d22e1134-8336-11f0-a32c-13f23c93f187
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=l1Tpe0CHLI5xPtommzvMx5SvLEpI7IJU6KeYAkVmtaYlZYb8gHb32WChoTEEmS+Y+iHRKoNO+jJldK7VurK5Ooedc3O1Va2auANa+U8QYdiivwBxtWCIANTR2qce7I7Q0mnl/W4fgZTzzt1Fy9OtSJ0yZIJwbiQMuozgcgpkynaeR9eMBuFHLvF65tO93CBIJvfD70+M2gG8tYu24grEkBYrJhxOpCwNR/PrWzsmMu4Cp6hq8rXk2BTOFuEhMQ7Wqv3hWTcCSarRXRJOOeYqCfMiCAoER4fcO+px6IxMRy/iIhDN1pe5wIR54ZHZvyRSrajspq5Ywr5x67aKf3ty+Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cD2i9Yz/SmUHRP653fDciNvSViPIhE06l5qGbcMOs8I=;
 b=MgFL3XJifisd1fKU9Gao4BaIBaB1mFyFMUIIECysuyivnRSLvy7eXgUvL+gM8OvROFfc6Za3eQgq0Ge+asmiYFRHkezNV9Der3yA8mQ4Pq1rcJy3fjwnfz17xvOqjGfBdCgf80htRlJPn1g6biycafC4SNC7IVA/NOwMClaH0oyrtP+u6kcV2cTYmeLRXhRpmWKSsfobOsyzSN3FgUh0NPAz38SLiUVOJepCZu008duNIM0C1ZzRod1nBEHtVC6F1JgFPfivG0IW7ecB17okkSibMYYo0sGjjRiWFP8CL1u9i9WClbg2B6MXIAlJBiaOQ9uq8g+UIr9eCoi3+6Sk8A==
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=cD2i9Yz/SmUHRP653fDciNvSViPIhE06l5qGbcMOs8I=;
 b=jRKc5QTfCStZLVhRIv9uhczfIBimAubnF5Qt1cApNnKpIiV6HJJFSB/9VQxNBulqb1SVRorG/aU/4Cf0Yfg5nk5KqEq0JyvKmbcYjuTNo7DFKniRyatm2bMqmCaRaF1GCNQGM2gMYpbGADrB9yN9dETXQILxH3F7V340ytVoCK9NdrVdU1XAduZ6uAIOVw2cq1Ts2iPheNcpJTr8zzB8o6r4lJMqnwrkltp5r4VNfWv4+JDek4WcWwVTZQK+Iy3TrvHH0vKm2rQq5uWUL3VXTJtoDmxXGAcpq4K5334AVntx9GFoRIbNHoHbpnMcphROzIUTVgJXfDWeyb0AHElKzA==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: Oleksandr Tyshchenko <olekstysh@gmail.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel
	<michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v3 10/11] xen/arm: vgic-v3: add emulation of GICv3.1 eSPI
 registers
Thread-Topic: [PATCH v3 10/11] xen/arm: vgic-v3: add emulation of GICv3.1 eSPI
 registers
Thread-Index: AQHcFpKAKCVIbYC3hEGAz+VsUD3/gbR1WjCAgAD/ygA=
Date: Wed, 27 Aug 2025 11:13:07 +0000
Message-ID: <d71bd33e-ec09-47e5-af68-b8a79c78971d@epam.com>
References: <cover.1756216942.git.leonid_komarianskyi@epam.com>
 <642a994d712a8c9df7aed9dec22124564db83c7e.1756216943.git.leonid_komarianskyi@epam.com>
 <5a84d20c-5136-4151-8801-b0fbccaf23d7@gmail.com>
In-Reply-To: <5a84d20c-5136-4151-8801-b0fbccaf23d7@gmail.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: GV2PR03MB8678:EE_|DB9PR03MB8823:EE_
x-ms-office365-filtering-correlation-id: 7f22248b-bf20-4a6f-6a48-08dde55ab322
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?NUsrcGJ2d2VtRG1YT0FIYXN5R29rOGs4Q1Y2TysxT0lMU1dzUDNSNDFCRFlJ?=
 =?utf-8?B?dzRIc0pBZDRFRUdlR3FXYmNMM05BUCtaY24yMW9XcW9lY1FXbWMxaWNvTjhT?=
 =?utf-8?B?RnA3MzNGRDZneVVsZWxpNmYzR1kraEtUbHJMMWRBcmJ1eHdLaWtKQUlDQWpo?=
 =?utf-8?B?MWxrdTVlc1VZQThjd0lucUJzbWxOWlVEZmRkbFI2NjlqVTgvZWpLSmd4T3gr?=
 =?utf-8?B?MGZuSkduUjlBNENtOGxQUnhoaXBvVXgvem1FaUtRc21PUlZHSTcybCtHaENI?=
 =?utf-8?B?T1dpNzcydTB4U0wzT1lPcDJkV1ZTWS9Jb3dNcnplQzV2S1R0VHlzV0dvNHl6?=
 =?utf-8?B?c3FrVzdPSjUyc0QweWlacjBuYXJBNGdXSkhkakVyMGMxakxUV0lSM0sxdHo0?=
 =?utf-8?B?VnV1NDZXdUh3eTlKRG0wM1A5RXNSc2xMR1YrdU5paFpoeVBRdFBVTFA5ZHdz?=
 =?utf-8?B?cUJJbFIyWGpKMXhUOERUWEpoMmxINVlhRUlSaHR2MjUyTlpHYjJzRlU2R1Y4?=
 =?utf-8?B?bThac09xMFVtdE04a2F1SjhBbEVENzRwWlRVV29qaWEwQjRmMzVLdFhnWlBJ?=
 =?utf-8?B?NXJTeC9WRFozNWlIRStmTk9udlNwOTZ3UUxJNHc2RTNsWTNDNzlLSGRXbEE4?=
 =?utf-8?B?K1JJN2xya3NFQ2NhbVFwc1UrZUZzNjZXK2ZWSytZZWFHQlB4Y0lxTVJSU3ow?=
 =?utf-8?B?SjM5bWd4SHQ5L2lhRlg2RUZSQll4emVzbkFKZUNlY3Z2YzZ6MEZPTEZVSWcw?=
 =?utf-8?B?dWdObzVnRFhJeENNeG5XSkdJNVU1T09udk1iOE45dmlCWFhKV3lVbmpTNGFN?=
 =?utf-8?B?OS9tclkxR3o3RlQ4NW5aVmJ5ZGtmRGtzcHcrZ2Q1TzUzVVR1U2wyRXgyM0d6?=
 =?utf-8?B?VjZGT2ZkbDExVzZST2dwTGZrdWtFRUlzVVorencyR2dWWnBKRGJUSjNWNHFy?=
 =?utf-8?B?VFFsaDdpL2VQNGkzY1BRbjlLaEpvMUJiZjdDWW9GbzllbloxajVRNTUrNzli?=
 =?utf-8?B?WVhSUVpLbjFHUVk0Uy9vbm1yaC9Ya3E3anFjMmViVWp5elBBQ2xEM21sdm9G?=
 =?utf-8?B?NnNoVzQrU1Q5aWxQek13N2xvUW1aWkRNQkNsdmFJUnV5Snowc0REWjBBeGZE?=
 =?utf-8?B?bnBaa3RMUitlb2pnVjkwQUVDZG9RN2lQM2UzZVNiaUNaTWpTUjZIUW8rWWRn?=
 =?utf-8?B?aWNmLzhGb1RrNTZPMVh2RWFHbnI3V2tnank2UjUzSDlMSFc1bGVQeWduTWhK?=
 =?utf-8?B?ZmhQMXdLd3ZrRlRXeldXaHB2bG82K0pzdGVzK0d2OGlrTVFVR0d5RitydTJK?=
 =?utf-8?B?VXRtdkd4OWNMVnV3UDJzWVREZFNjZ3pwUzk4K2VQdU44M3kvaE9IS25IT1NL?=
 =?utf-8?B?ZWFlcW8zOThwNEFXWXoxaHZxWVJid05LK0dwSGRiWE02YTA1L0lFNnV4eGIy?=
 =?utf-8?B?KzA5RjdQY1JHZ1ZHa2JhUUlOVTRITEFpbGtPT0tBcFp1MW9mcnNqdWRMUzBa?=
 =?utf-8?B?UUptTDd0ZWtCcXhZK2xzcHlGY2hHd0lVSmdBb3YrM3kwTUQyV0RmM0FZUVpQ?=
 =?utf-8?B?T0ZrTWdTR2pXQytpMDlvMXZEVVZHdTkwbE1Way9MMThIK01SZTRNN0ZmMEpM?=
 =?utf-8?B?RVBkcU9HcjBOTDc2TjlVdTNqeTBQcFY2VUN2RU41dzdvRmMwWVZvOUNxeExk?=
 =?utf-8?B?aXk1WFdIbGlnREx4VFBJaFBkYklFNnNXcGlqUlZhd0lGTytsSTdWTEdadHlR?=
 =?utf-8?B?MG54RVUvb1p2UnRLMnJ1bHRaQURHWS9COW1scE5XeTFwd0wvVW5WRVllcUtK?=
 =?utf-8?B?MklOVXRlUlZLZ2tmWmNQV2d3eWNmWWFiYUtFV0JIQllkRHJVRFJZZzhMTXI1?=
 =?utf-8?B?WkZDd2ZkRHlXcW5ZdFNaeTRucTRPRnlOMmNEY1dON2lpMlVjQWh0TExXOXpv?=
 =?utf-8?B?Q1FMZkpuRms5Sm0wSXpiYllIUzRsem4zRWlYWHpNdTA5YllzWkw5dWl4c29u?=
 =?utf-8?B?cDN6bjdWV1h3PT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?ZnQ1R0MxVWk2M1U2VElpdFB0eDFxY0h0aWs3a1dMbXQxTXY0Rm5TTi83d0FL?=
 =?utf-8?B?dmlZWjB6UWs5M01jNzdENHhiVWVkQUQxR3lPZlA0YzFvZ3dvZHh6SHplTGlO?=
 =?utf-8?B?aGJvam5pdFk2YndWVXR5WEtkMThIRFIvWmtpWjVwYnhWeEQ5NFJySHdZNDdz?=
 =?utf-8?B?ZUd3dEJXazFwSVZrK2Z3dHBtK2ZLQXppWVNoRngwOC9rSEFWMWtXKzlJM0tn?=
 =?utf-8?B?WFZhVmRlWUxMQzd6NzVMTzZSTTMyZzZydFoxN1pEWVlPbzlJUG92Zk0vZ2xH?=
 =?utf-8?B?T01QN1dheTVJWVJzdkJGMGY0RGU1WjBYZ2dyTUY1VXpraTNteFlVWHhKYmEz?=
 =?utf-8?B?NVJLd3owand6cXIvOUlycWZFZDJheS9LdVZ5ZFhmQWZ0SVo5VGdCWGhERENZ?=
 =?utf-8?B?d3V6amptbG53RnZkS2paUFdPS2w3NXJGek1Zd1pGZ3d0Y09NejRzSFRQNDM1?=
 =?utf-8?B?aHBUdUtSUjJDcWJ3Ly9MR1FZckNvcW1RVGFsLzVTSlhCRm5FTnEvbzdYaHZk?=
 =?utf-8?B?T1Z2Si9BWHNXT0g0Mk5Pd2tZTFdEdFBVKzk1WEpmOHVEMnltbElGLzFBaElu?=
 =?utf-8?B?eWQ2ay9jaDBEVEN4czhFQlhIOXZrSHc3TGdGSlNjVTJKUXZhSEhhTEtCeTdy?=
 =?utf-8?B?a1Y4STRHRm1ENGE4RU9icXh2eXNkR0d3YnZiUnUwbXFMRlBibm9KNlpiUy8x?=
 =?utf-8?B?cTYxajcyaW5BN2RaQ3g5NWRLdGFWREV5UGNiNE5mZmkySll4MGFiUkJibW03?=
 =?utf-8?B?c3V5clc5RStxbHdQNHM2U0NVc0JSaVUxV1FwNndXYXF5QUZ5Tm9JdTFNOVdn?=
 =?utf-8?B?d3JhNnhoeHVjUENNRXM1VlNHV2tUSnFXSmNIMUtaZmNkMzJzdHZCVnprMkp2?=
 =?utf-8?B?MkVIM2N6QW9pbmxqKzdLdnZlVzcvUXMvSGdlQk1sKzRONEhOYUZ6d3hKMENS?=
 =?utf-8?B?WlRScnhqSDR5Q0lURkMzYjV2WG4vV0EyVWtUVjh5QzMwNktpNlFuSjltUGNx?=
 =?utf-8?B?TE82NnY5MGtNUUIzZjA4K1J4OUhoZms1QTVEeXdFMFg5N1hzamZTeUVGQUJ1?=
 =?utf-8?B?cVFSaFlZMWt2eE9Qc1Z5Mnh1MlhWOGJwRVBOK2xWQjdUcW5RQXV4ZGpUdjk1?=
 =?utf-8?B?NkcyTGhrRkVjL3dMcHVUSWhQSW5DODFIY2xNQ2xQUFdkaFpUMXExZUVBbWhW?=
 =?utf-8?B?amdDL0NIbVVuNmdyOTNYNWd0cGFtR0thdmhHUlQzL0M5S2dYdW5DRzlnYWJp?=
 =?utf-8?B?U1ZOZkRoaXhRZzZkZHREcHF3Y0VMRXFlVDE5SGtUYTVMcmgvZXk5cEQ4eldj?=
 =?utf-8?B?eHJrWWJhbVJIbDc0WkVoclhJcTY1aUt1c25sSzBkYi8yS29aQ3dKWWEvYitB?=
 =?utf-8?B?cnp3WjA0Kys4eUx0VHlOVFBhRC9sMFRCc3NhYVM3L1pTcC9ZM3NSajkwWVFF?=
 =?utf-8?B?aklGblhwV1k5dTQyWUJpUko5bGNPRmxISTQ4NlJ0YWdzblVEbGp0a3ljR1lU?=
 =?utf-8?B?em5GdUtoeGRRd0g0OFAxN0YvR2ltM2tDRVQ4dDg4ejlLbVNjTVlDWlhVTEJ6?=
 =?utf-8?B?ZTZPbk4rM0NzNS9UbHUwWGVuV0R0UDlwaWdDd3hjT1ZndVpyZk43YTQyaDQy?=
 =?utf-8?B?eEp6aENndHJmdnNoOVdndnVTcXRaQnlJMG9iMEI3L0FrUzJTNHNEK1N5SmF2?=
 =?utf-8?B?NjhLWmUwZVlXQ1FnL3V0V3pDTUZjbTZQTFZGeDBhQURxTzdpdmNaY3M5cVFO?=
 =?utf-8?B?S0E1NENvNVV3bGdlTWFHczdXb1B0VTlnSy9WOVV4TGRmVUVmRnk3c1pzLzFi?=
 =?utf-8?B?NEFmdCs4OU4vVHZHc1lEQ0FRYW1SWWtYNURvMndOSzFad254ZGtqYndrNDd4?=
 =?utf-8?B?ZmtOS2ZjZDdYNVVPVDBnK1NPb0libFM4ZzlQWnlBR1hmY1pDOUdQRWZEdVJR?=
 =?utf-8?B?N08xTStBOUdlbzlKNFAxMlU0cDF0SGFIQUxCc0pnMW0xUm5wc0R1T0F2RTFz?=
 =?utf-8?B?dDZtcnRDUjJPQjUvM2d2YWFuUTZWOHZINEFrSlFZWmFPYk9HREdzYk41T2VK?=
 =?utf-8?B?ZWQ2RUE5Q2hpVXErYlgrUXM3MWk3Z01zdTNiNWxYek5OeElzY3RXc0NENjZT?=
 =?utf-8?B?WW1ESFVrRHR2dzUxL0VHRS9sSzhkdUg0cStMUmwvK1BKa3dra3FTVVVFeXpP?=
 =?utf-8?Q?UFvDzhgkVrcfGlxXnIgpdQ4=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <879350A994971847B9C150FA75F23B47@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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7f22248b-bf20-4a6f-6a48-08dde55ab322
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Aug 2025 11:13:07.1564
 (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: rgwiLJFiMe0hAxcvgpFBfk/dXyXEtFDlbyaqzijbQ8kRncb/ymvVIxPL6Wc1xk0Yw9HmF6VaPuoPl+IxvFosm5xOoSKiLIp2u554Uk0t+DQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB8823

SGVsbG8gT2xla3NhbmRyLA0KDQpUaGFuayB5b3UgZm9yIHlvdXIgY2xvc2UgcmV2aWV3Lg0KDQpP
biAyNi4wOC4yNSAyMjo1NywgT2xla3NhbmRyIFR5c2hjaGVua28gd3JvdGU6DQo+IA0KPiANCj4g
T24gMjYuMDguMjUgMTc6MDUsIExlb25pZCBLb21hcmlhbnNreWkgd3JvdGU6DQo+IA0KPiBIZWxs
byBMZW9uaWQNCj4gDQo+IA0KPj4gSW1wbGVtZW50ZWQgc3VwcG9ydCBmb3IgR0lDdjMuMSBleHRl
bmRlZCBTUEkgcmVnaXN0ZXJzIGZvciB2R0lDdjMsDQo+PiBhbGxvd2luZyB0aGUgZW11bGF0aW9u
IG9mIGVTUEktc3BlY2lmaWMgYmVoYXZpb3IgZm9yIGd1ZXN0IGRvbWFpbnMuDQo+PiBUaGUgaW1w
bGVtZW50YXRpb24gaW5jbHVkZXMgcmVhZCBhbmQgd3JpdGUgZW11bGF0aW9uIGZvciBlU1BJLXJl
bGF0ZWQNCj4+IHJlZ2lzdGVycyAoZS5nLiwgR0lDRF9JU0VOQUJMRVJuRSwgR0lDRF9JUk9VVEVS
bkUsIGFuZCBvdGhlcnMpLA0KPj4gZm9sbG93aW5nIGEgc2ltaWxhciBhcHByb2FjaCB0byB0aGUg
aGFuZGxpbmcgb2YgcmVndWxhciBTUElzLg0KPj4NCj4+IFRoZSBlU1BJIHJlZ2lzdGVycywgcHJl
dmlvdXNseSBsb2NhdGVkIGluIHJlc2VydmVkIGFkZHJlc3MgcmFuZ2VzLA0KPj4gYXJlIG5vdyBh
ZGp1c3RlZCB0byBzdXBwb3J0IE1NSU8gcmVhZCBhbmQgd3JpdGUgb3BlcmF0aW9ucyBjb3JyZWN0
bHkNCj4+IHdoZW4gQ09ORklHX0dJQ1YzX0VTUEkgaXMgZW5hYmxlZC4NCj4+DQo+PiBUaGUgYXZh
aWxhYmlsaXR5IG9mIGVTUElzIGFuZCB0aGUgbnVtYmVyIG9mIGVtdWxhdGVkIGV4dGVuZGVkIFNQ
SXMNCj4+IGZvciBndWVzdCBkb21haW5zIGlzIHJlcG9ydGVkIGJ5IHNldHRpbmcgdGhlIGFwcHJv
cHJpYXRlIGJpdHMgaW4gdGhlDQo+PiBHSUNEX1RZUEVSIHJlZ2lzdGVyLCBiYXNlZCBvbiB0aGUg
bnVtYmVyIG9mIGVTUElzIHJlcXVlc3RlZCBieSB0aGUNCj4+IGRvbWFpbiBhbmQgc3VwcG9ydGVk
IGJ5IHRoZSBoYXJkd2FyZS4gSW4gY2FzZXMgd2hlcmUgdGhlIGNvbmZpZ3VyYXRpb24NCj4+IG9w
dGlvbiBpcyBkaXNhYmxlZCwgdGhlIGhhcmR3YXJlIGRvZXMgbm90IHN1cHBvcnQgZVNQSXMsIG9y
IHRoZSBkb21haW4NCj4+IGRvZXMgbm90IHJlcXVlc3Qgc3VjaCBpbnRlcnJ1cHRzLCB0aGUgZnVu
Y3Rpb25hbGl0eSByZW1haW5zIHVuY2hhbmdlZC4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBMZW9u
aWQgS29tYXJpYW5za3lpIDxsZW9uaWRfa29tYXJpYW5za3lpQGVwYW0uY29tPg0KPj4NCj4+IC0t
LQ0KPj4gQ2hhbmdlcyBpbiBWMjoNCj4+IC0gYWRkIG1pc3NpbmcgcmFuayBpbmRleCBjb252ZXJz
aW9uIGZvciBwZW5kaW5nIGFuZCBpbmZsaWdodCBpcnFzDQo+Pg0KPj4gQ2hhbmdlcyBpbiBWMzoN
Cj4+IC0gY2hhbmdlZCB2Z2ljX3N0b3JlX2lyb3V0ZXIgcGFyYW1ldGVycyAtIGluc3RlYWQgb2Yg
b2Zmc2V0IHZpcnEgaXMNCj4+IMKgwqAgdXNlZCwgdG8gcmVtb3ZlIHRoZSBhZGRpdGlvbmFsIGJv
b2wgZXNwaSBwYXJhbWV0ZXIgYW5kIHNpbXBsaWZ5DQo+PiDCoMKgIGNoZWNrcy4gQWxzbywgYWRq
dXN0ZWQgcGFyYW1ldGVycyBmb3IgcmVndWxhciBTUEkuIFNpbmNlIHRoZSBvZmZzZXQNCj4+IMKg
wqAgcGFyYW1ldGVyIHdhcyB1c2VkIG9ubHkgZm9yIGNhbGN1bGF0aW5nIHZpcnEgbnVtYmVyIGFu
ZCB0aGVuIHJldXNlZCANCj4+IGZvcg0KPj4gwqDCoCBmaW5kaW5nIHJhbmsgb2Zmc2V0LCBpdCB3
aWxsIG5vdCBhZmZlY3QgZnVuY3Rpb25hbGl0eS4NCj4+IC0gZml4ZWQgZm9ybWF0dGluZyBmb3Ig
Z290byBsYWJsZXMgLSBhZGRlZCBuZXdsaW5lcyBhZnRlciBjb25kaXRpb24NCj4+IC0gZml4ZWQg
bG9ncyBmb3IgR0lDRF9JU0FDVElWRVJuRSBhbmQgR0lDRF9JQ0FDVElWRVJuRSBoYW5kbGVycw0K
Pj4gLSByZW1vdmVkICNpZmRlZnMgaW4gMiBwbGFjZXMgd2hlcmUgdGhleSB3ZXJlIGFkamFjZW50
IGFuZCBjb3VsZCBiZSANCj4+IG1lcmdlZA0KPj4gLS0tDQo+PiDCoCB4ZW4vYXJjaC9hcm0vdmdp
Yy12My5jIHwgMjc1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tDQo+
PiDCoCAxIGZpbGUgY2hhbmdlZCwgMjY2IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pDQo+
Pg0KPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS92Z2ljLXYzLmMgYi94ZW4vYXJjaC9hcm0v
dmdpYy12My5jDQo+PiBpbmRleCA0MzY5YzU1MTc3Li41NmM1MzliYjFiIDEwMDY0NA0KPj4gLS0t
IGEveGVuL2FyY2gvYXJtL3ZnaWMtdjMuYw0KPj4gKysrIGIveGVuL2FyY2gvYXJtL3ZnaWMtdjMu
Yw0KPj4gQEAgLTExMSwxMyArMTExLDEwIEBAIHN0YXRpYyB1aW50NjRfdCB2Z2ljX2ZldGNoX2ly
b3V0ZXIoc3RydWN0IA0KPj4gdmdpY19pcnFfcmFuayAqcmFuaywNCj4+IMKgwqAgKiBOb3RlIHRo
ZSBvZmZzZXQgd2lsbCBiZSBhbGlnbmVkIHRvIHRoZSBhcHByb3ByaWF0ZSBib3VuZGFyeS4NCj4+
IMKgwqAgKi8NCj4+IMKgIHN0YXRpYyB2b2lkIHZnaWNfc3RvcmVfaXJvdXRlcihzdHJ1Y3QgZG9t
YWluICpkLCBzdHJ1Y3QgDQo+PiB2Z2ljX2lycV9yYW5rICpyYW5rLA0KPj4gLcKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1bnNpZ25l
ZCBpbnQgb2Zmc2V0LCB1aW50NjRfdCBpcm91dGVyKQ0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1bnNpZ25lZCBpbnQgdmly
cSwgdWludDY0X3QgaXJvdXRlcikNCj4+IMKgIHsNCj4+IMKgwqDCoMKgwqAgc3RydWN0IHZjcHUg
Km5ld192Y3B1LCAqb2xkX3ZjcHU7DQo+PiAtwqDCoMKgIHVuc2lnbmVkIGludCB2aXJxOw0KPj4g
LQ0KPj4gLcKgwqDCoCAvKiBUaGVyZSBpcyAxIHZJUlEgcGVyIElST1VURVIgKi8NCj4+IC3CoMKg
wqAgdmlycSA9IG9mZnNldCAvIE5SX0JZVEVTX1BFUl9JUk9VVEVSOw0KPj4gK8KgwqDCoCB1bnNp
Z25lZCBpbnQgb2Zmc2V0Ow0KPj4gwqDCoMKgwqDCoCAvKg0KPj4gwqDCoMKgwqDCoMKgICogVGhl
IElST1VURVIwLTMxLCB1c2VkIGZvciBTR0lzL1BQSXMsIGFyZSByZXNlcnZlZCBhbmQgc2hvdWxk
DQo+PiBAQCAtNjg1LDYgKzY4Miw5IEBAIHN0YXRpYyBpbnQgX192Z2ljX3YzX2Rpc3RyX2NvbW1v
bl9tbWlvX3JlYWQoY29uc3QgDQo+PiBjaGFyICpuYW1lLCBzdHJ1Y3QgdmNwdSAqdiwNCj4+IMKg
wqDCoMKgwqAgew0KPj4gwqDCoMKgwqDCoCBjYXNlIFZSQU5HRTMyKEdJQ0RfSUdST1VQUiwgR0lD
RF9JR1JPVVBSTik6DQo+PiDCoMKgwqDCoMKgIGNhc2UgVlJBTkdFMzIoR0lDRF9JR1JQTU9EUiwg
R0lDRF9JR1JQTU9EUk4pOg0KPj4gKyNpZmRlZiBDT05GSUdfR0lDVjNfRVNQSQ0KPj4gK8KgwqDC
oCBjYXNlIFZSQU5HRTMyKEdJQ0RfSUdST1VQUm5FLCBHSUNEX0lHUk9VUFJuRU4pOg0KPj4gKyNl
bmRpZg0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIC8qIFdlIGRvIG5vdCBpbXBsZW1lbnQgc2VjdXJp
dHkgZXh0ZW5zaW9ucyBmb3IgZ3Vlc3RzLCByZWFkIA0KPj4gemVybyAqLw0KPj4gwqDCoMKgwqDC
oMKgwqDCoMKgIGlmICggZGFidC5zaXplICE9IERBQlRfV09SRCApIGdvdG8gYmFkX3dpZHRoOw0K
Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIGdvdG8gcmVhZF9hc196ZXJvOw0KPj4gQEAgLTcxMCwxMSAr
NzEwLDE5IEBAIHN0YXRpYyBpbnQgDQo+PiBfX3ZnaWNfdjNfZGlzdHJfY29tbW9uX21taW9fcmVh
ZChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgdmNwdSAqdiwNCj4+IMKgwqDCoMKgwqAgLyogUmVh
ZCB0aGUgcGVuZGluZyBzdGF0dXMgb2YgYW4gSVJRIHZpYSBHSUNEL0dJQ1IgaXMgbm90IA0KPj4g
c3VwcG9ydGVkICovDQo+PiDCoMKgwqDCoMKgIGNhc2UgVlJBTkdFMzIoR0lDRF9JU1BFTkRSLCBH
SUNEX0lTUEVORFJOKToNCj4+IMKgwqDCoMKgwqAgY2FzZSBWUkFOR0UzMihHSUNEX0lDUEVORFIs
IEdJQ0RfSUNQRU5EUk4pOg0KPj4gKyNpZmRlZiBDT05GSUdfR0lDVjNfRVNQSQ0KPj4gK8KgwqDC
oCBjYXNlIFZSQU5HRTMyKEdJQ0RfSVNQRU5EUm5FLCBHSUNEX0lTUEVORFJuRU4pOg0KPj4gK8Kg
wqDCoCBjYXNlIFZSQU5HRTMyKEdJQ0RfSUNQRU5EUm5FLCBHSUNEX0lDUEVORFJuRU4pOg0KPj4g
KyNlbmRpZg0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGdvdG8gcmVhZF9hc196ZXJvOw0KPj4gwqDC
oMKgwqDCoCAvKiBSZWFkIHRoZSBhY3RpdmUgc3RhdHVzIG9mIGFuIElSUSB2aWEgR0lDRC9HSUNS
IGlzIG5vdCANCj4+IHN1cHBvcnRlZCAqLw0KPj4gwqDCoMKgwqDCoCBjYXNlIFZSQU5HRTMyKEdJ
Q0RfSVNBQ1RJVkVSLCBHSUNEX0lTQUNUSVZFUk4pOg0KPj4gwqDCoMKgwqDCoCBjYXNlIFZSQU5H
RTMyKEdJQ0RfSUNBQ1RJVkVSLCBHSUNEX0lDQUNUSVZFUk4pOg0KPj4gKyNpZmRlZiBDT05GSUdf
R0lDVjNfRVNQSQ0KPj4gK8KgwqDCoCBjYXNlIFZSQU5HRTMyKEdJQ0RfSVNBQ1RJVkVSbkUsIEdJ
Q0RfSVNBQ1RJVkVSbkVOKToNCj4+ICvCoMKgwqAgY2FzZSBWUkFOR0UzMihHSUNEX0lDQUNUSVZF
Um5FLCBHSUNEX0lDQUNUSVZFUm5FTik6DQo+PiArI2VuZGlmDQo+PiDCoMKgwqDCoMKgwqDCoMKg
wqAgZ290byByZWFkX2FzX3plcm87DQo+PiDCoMKgwqDCoMKgIGNhc2UgVlJBTkdFMzIoR0lDRF9J
UFJJT1JJVFlSLCBHSUNEX0lQUklPUklUWVJOKToNCj4+IEBAIC03NTIsNiArNzYwLDY5IEBAIHN0
YXRpYyBpbnQgX192Z2ljX3YzX2Rpc3RyX2NvbW1vbl9tbWlvX3JlYWQoY29uc3QgDQo+PiBjaGFy
ICpuYW1lLCBzdHJ1Y3QgdmNwdSAqdiwNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gMTsN
Cj4+IMKgwqDCoMKgwqAgfQ0KPj4gKyNpZmRlZiBDT05GSUdfR0lDVjNfRVNQSQ0KPj4gK8KgwqDC
oCBjYXNlIFZSQU5HRTMyKEdJQ0RfSVNFTkFCTEVSbkUsIEdJQ0RfSVNFTkFCTEVSbkVOKToNCj4+
ICvCoMKgwqDCoMKgwqDCoCBpZiAoIGRhYnQuc2l6ZSAhPSBEQUJUX1dPUkQgKQ0KPj4gK8KgwqDC
oMKgwqDCoMKgwqDCoMKgwqAgZ290byBiYWRfd2lkdGg7DQo+PiArwqDCoMKgwqDCoMKgwqAgcmFu
ayA9IHZnaWNfZXh0X3Jhbmtfb2Zmc2V0KHYsIDEsIHJlZyAtIEdJQ0RfSVNFTkFCTEVSbkUsIA0K
Pj4gREFCVF9XT1JEKTsNCj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAoIHJhbmsgPT0gTlVMTCApDQo+
PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBnb3RvIHJlYWRfYXNfemVybzsNCj4+ICvCoMKgwqDC
oMKgwqDCoCB2Z2ljX2xvY2tfcmFuayh2LCByYW5rLCBmbGFncyk7DQo+PiArwqDCoMKgwqDCoMKg
wqAgKnIgPSB2cmVnX3JlZzMyX2V4dHJhY3QocmFuay0+aWVuYWJsZSwgaW5mbyk7DQo+PiArwqDC
oMKgwqDCoMKgwqAgdmdpY191bmxvY2tfcmFuayh2LCByYW5rLCBmbGFncyk7DQo+PiArwqDCoMKg
wqDCoMKgwqAgcmV0dXJuIDE7DQo+PiArDQo+PiArwqDCoMKgIGNhc2UgVlJBTkdFMzIoR0lDRF9J
Q0VOQUJMRVJuRSwgR0lDRF9JQ0VOQUJMRVJuRU4pOg0KPj4gK8KgwqDCoMKgwqDCoMKgIGlmICgg
ZGFidC5zaXplICE9IERBQlRfV09SRCApDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBnb3Rv
IGJhZF93aWR0aDsNCj4+ICvCoMKgwqDCoMKgwqDCoCByYW5rID0gdmdpY19leHRfcmFua19vZmZz
ZXQodiwgMSwgcmVnIC0gR0lDRF9JQ0VOQUJMRVJuRSwgDQo+PiBEQUJUX1dPUkQpOw0KPj4gK8Kg
wqDCoMKgwqDCoMKgIGlmICggcmFuayA9PSBOVUxMICkNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgIGdvdG8gcmVhZF9hc196ZXJvOw0KPj4gK8KgwqDCoMKgwqDCoMKgIHZnaWNfbG9ja19yYW5r
KHYsIHJhbmssIGZsYWdzKTsNCj4+ICvCoMKgwqDCoMKgwqDCoCAqciA9IHZyZWdfcmVnMzJfZXh0
cmFjdChyYW5rLT5pZW5hYmxlLCBpbmZvKTsNCj4+ICvCoMKgwqDCoMKgwqDCoCB2Z2ljX3VubG9j
a19yYW5rKHYsIHJhbmssIGZsYWdzKTsNCj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gMTsNCj4+
ICsNCj4+ICvCoMKgwqAgY2FzZSBWUkFOR0UzMihHSUNEX0lQUklPUklUWVJuRSwgR0lDRF9JUFJJ
T1JJVFlSbkVOKToNCj4+ICvCoMKgwqAgew0KPj4gK8KgwqDCoMKgwqDCoMKgIHVpbnQzMl90IGlw
cmlvcml0eXI7DQo+PiArwqDCoMKgwqDCoMKgwqAgdWludDhfdCByYW5rX2luZGV4Ow0KPj4gKw0K
Pj4gK8KgwqDCoMKgwqDCoMKgIGlmICggZGFidC5zaXplICE9IERBQlRfQllURSAmJiBkYWJ0LnNp
emUgIT0gREFCVF9XT1JEICkNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGdvdG8gYmFkX3dp
ZHRoOw0KPj4gK8KgwqDCoMKgwqDCoMKgIHJhbmsgPSB2Z2ljX2V4dF9yYW5rX29mZnNldCh2LCA4
LCByZWcgLSBHSUNEX0lQUklPUklUWVJuRSwgDQo+PiBEQUJUX1dPUkQpOw0KPj4gK8KgwqDCoMKg
wqDCoMKgIGlmICggcmFuayA9PSBOVUxMICkNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGdv
dG8gcmVhZF9hc196ZXJvOw0KPj4gK8KgwqDCoMKgwqDCoMKgIHJhbmtfaW5kZXggPSBSRUdfUkFO
S19JTkRFWCg4LCByZWcgLSBHSUNEX0lQUklPUklUWVJuRSwgDQo+PiBEQUJUX1dPUkQpOw0KPj4g
Kw0KPj4gK8KgwqDCoMKgwqDCoMKgIHZnaWNfbG9ja19yYW5rKHYsIHJhbmssIGZsYWdzKTsNCj4+
ICvCoMKgwqDCoMKgwqDCoCBpcHJpb3JpdHlyID0gQUNDRVNTX09OQ0UocmFuay0+aXByaW9yaXR5
cltyYW5rX2luZGV4XSk7DQo+PiArwqDCoMKgwqDCoMKgwqAgdmdpY191bmxvY2tfcmFuayh2LCBy
YW5rLCBmbGFncyk7DQo+PiArDQo+PiArwqDCoMKgwqDCoMKgwqAgKnIgPSB2cmVnX3JlZzMyX2V4
dHJhY3QoaXByaW9yaXR5ciwgaW5mbyk7DQo+PiArDQo+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJu
IDE7DQo+PiArwqDCoMKgIH0NCj4+ICsNCj4+ICvCoMKgwqAgY2FzZSBWUkFOR0UzMihHSUNEX0lD
RkdSbkUsIEdJQ0RfSUNGR1JuRU4pOg0KPj4gK8KgwqDCoCB7DQo+PiArwqDCoMKgwqDCoMKgwqAg
dWludDMyX3QgaWNmZ3I7DQo+PiArDQo+PiArwqDCoMKgwqDCoMKgwqAgaWYgKCBkYWJ0LnNpemUg
IT0gREFCVF9XT1JEICkNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGdvdG8gYmFkX3dpZHRo
Ow0KPj4gK8KgwqDCoMKgwqDCoMKgIHJhbmsgPSB2Z2ljX2V4dF9yYW5rX29mZnNldCh2LCAyLCBy
ZWcgLSBHSUNEX0lDRkdSbkUsIA0KPj4gREFCVF9XT1JEKTsNCj4+ICvCoMKgwqDCoMKgwqDCoCBp
ZiAoIHJhbmsgPT0gTlVMTCApDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBnb3RvIHJlYWRf
YXNfemVybzsNCj4+ICvCoMKgwqDCoMKgwqDCoCB2Z2ljX2xvY2tfcmFuayh2LCByYW5rLCBmbGFn
cyk7DQo+PiArwqDCoMKgwqDCoMKgwqAgaWNmZ3IgPSByYW5rLT5pY2ZnW1JFR19SQU5LX0lOREVY
KDIsIHJlZyAtIEdJQ0RfSUNGR1JuRSwgDQo+PiBEQUJUX1dPUkQpXTsNCj4+ICvCoMKgwqDCoMKg
wqDCoCB2Z2ljX3VubG9ja19yYW5rKHYsIHJhbmssIGZsYWdzKTsNCj4+ICsNCj4+ICvCoMKgwqDC
oMKgwqDCoCAqciA9IHZyZWdfcmVnMzJfZXh0cmFjdChpY2ZnciwgaW5mbyk7DQo+PiArDQo+PiAr
wqDCoMKgwqDCoMKgwqAgcmV0dXJuIDE7DQo+PiArwqDCoMKgIH0NCj4+ICsjZW5kaWYNCj4+ICsN
Cj4+IMKgwqDCoMKgwqAgZGVmYXVsdDoNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBwcmludGsoWEVO
TE9HX0dfRVJSDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiJXB2OiAlczog
dW5oYW5kbGVkIHJlYWQgciVkIG9mZnNldCAlIzA4eFxuIiwNCj4+IEBAIC03ODIsNiArODUzLDkg
QEAgc3RhdGljIGludCBfX3ZnaWNfdjNfZGlzdHJfY29tbW9uX21taW9fd3JpdGUoY29uc3QgDQo+
PiBjaGFyICpuYW1lLCBzdHJ1Y3QgdmNwdSAqdiwNCj4+IMKgwqDCoMKgwqAgew0KPj4gwqDCoMKg
wqDCoCBjYXNlIFZSQU5HRTMyKEdJQ0RfSUdST1VQUiwgR0lDRF9JR1JPVVBSTik6DQo+PiDCoMKg
wqDCoMKgIGNhc2UgVlJBTkdFMzIoR0lDRF9JR1JQTU9EUiwgR0lDRF9JR1JQTU9EUk4pOg0KPj4g
KyNpZmRlZiBDT05GSUdfR0lDVjNfRVNQSQ0KPj4gK8KgwqDCoCBjYXNlIFZSQU5HRTMyKEdJQ0Rf
SUdST1VQUm5FLCBHSUNEX0lHUk9VUFJuRU4pOg0KPj4gKyNlbmRpZg0KPj4gwqDCoMKgwqDCoMKg
wqDCoMKgIC8qIFdlIGRvIG5vdCBpbXBsZW1lbnQgc2VjdXJpdHkgZXh0ZW5zaW9ucyBmb3IgZ3Vl
c3RzLCB3cml0ZSANCj4+IGlnbm9yZSAqLw0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGdvdG8gd3Jp
dGVfaWdub3JlXzMyOw0KPj4gQEAgLTg3MSw2ICs5NDUsOTkgQEAgc3RhdGljIGludCANCj4+IF9f
dmdpY192M19kaXN0cl9jb21tb25fbW1pb193cml0ZShjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3Qg
dmNwdSAqdiwNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCB2Z2ljX3VubG9ja19yYW5rKHYsIHJhbmss
IGZsYWdzKTsNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gMTsNCj4+ICsjaWZkZWYgQ09O
RklHX0dJQ1YzX0VTUEkNCj4+ICvCoMKgwqAgY2FzZSBWUkFOR0UzMihHSUNEX0lTRU5BQkxFUm5F
LCBHSUNEX0lTRU5BQkxFUm5FTik6DQo+PiArwqDCoMKgwqDCoMKgwqAgaWYgKCBkYWJ0LnNpemUg
IT0gREFCVF9XT1JEICkNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGdvdG8gYmFkX3dpZHRo
Ow0KPj4gK8KgwqDCoMKgwqDCoMKgIHJhbmsgPSB2Z2ljX2V4dF9yYW5rX29mZnNldCh2LCAxLCBy
ZWcgLSBHSUNEX0lTRU5BQkxFUm5FLCANCj4+IERBQlRfV09SRCk7DQo+PiArwqDCoMKgwqDCoMKg
wqAgaWYgKCByYW5rID09IE5VTEwgKQ0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZ290byB3
cml0ZV9pZ25vcmU7DQo+PiArwqDCoMKgwqDCoMKgwqAgdmdpY19sb2NrX3JhbmsodiwgcmFuaywg
ZmxhZ3MpOw0KPj4gK8KgwqDCoMKgwqDCoMKgIHRyID0gcmFuay0+aWVuYWJsZTsNCj4+ICvCoMKg
wqDCoMKgwqDCoCB2cmVnX3JlZzMyX3NldGJpdHMoJnJhbmstPmllbmFibGUsIHIsIGluZm8pOw0K
Pj4gK8KgwqDCoMKgwqDCoMKgIHZnaWNfZW5hYmxlX2lycXModiwgKHJhbmstPmllbmFibGUpICYg
KH50ciksIA0KPj4gRVhUX1JBTktfSURYMk5VTShyYW5rLT5pbmRleCkpOw0KPj4gK8KgwqDCoMKg
wqDCoMKgIHZnaWNfdW5sb2NrX3JhbmsodiwgcmFuaywgZmxhZ3MpOw0KPj4gK8KgwqDCoMKgwqDC
oMKgIHJldHVybiAxOw0KPj4gKw0KPj4gK8KgwqDCoCBjYXNlIFZSQU5HRTMyKEdJQ0RfSUNFTkFC
TEVSbkUsIEdJQ0RfSUNFTkFCTEVSbkVOKToNCj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAoIGRhYnQu
c2l6ZSAhPSBEQUJUX1dPUkQgKQ0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZ290byBiYWRf
d2lkdGg7DQo+PiArwqDCoMKgwqDCoMKgwqAgcmFuayA9IHZnaWNfZXh0X3Jhbmtfb2Zmc2V0KHYs
IDEsIHJlZyAtIEdJQ0RfSUNFTkFCTEVSbkUsIA0KPj4gREFCVF9XT1JEKTsNCj4+ICvCoMKgwqDC
oMKgwqDCoCBpZiAoIHJhbmsgPT0gTlVMTCApDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBn
b3RvIHdyaXRlX2lnbm9yZTsNCj4+ICvCoMKgwqDCoMKgwqDCoCB2Z2ljX2xvY2tfcmFuayh2LCBy
YW5rLCBmbGFncyk7DQo+PiArwqDCoMKgwqDCoMKgwqAgdHIgPSByYW5rLT5pZW5hYmxlOw0KPj4g
K8KgwqDCoMKgwqDCoMKgIHZyZWdfcmVnMzJfY2xlYXJiaXRzKCZyYW5rLT5pZW5hYmxlLCByLCBp
bmZvKTsNCj4+ICvCoMKgwqDCoMKgwqDCoCB2Z2ljX2Rpc2FibGVfaXJxcyh2LCAofnJhbmstPmll
bmFibGUpICYgdHIsIA0KPj4gRVhUX1JBTktfSURYMk5VTShyYW5rLT5pbmRleCkpOw0KPj4gK8Kg
wqDCoMKgwqDCoMKgIHZnaWNfdW5sb2NrX3JhbmsodiwgcmFuaywgZmxhZ3MpOw0KPj4gK8KgwqDC
oMKgwqDCoMKgIHJldHVybiAxOw0KPj4gKw0KPj4gK8KgwqDCoCBjYXNlIFZSQU5HRTMyKEdJQ0Rf
SVNQRU5EUm5FLCBHSUNEX0lTUEVORFJuRU4pOg0KPj4gK8KgwqDCoMKgwqDCoMKgIGlmICggZGFi
dC5zaXplICE9IERBQlRfV09SRCApDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBnb3RvIGJh
ZF93aWR0aDsNCj4+ICvCoMKgwqDCoMKgwqDCoCByYW5rID0gdmdpY19leHRfcmFua19vZmZzZXQo
diwgMSwgcmVnIC0gR0lDRF9JU1BFTkRSbkUsIA0KPj4gREFCVF9XT1JEKTsNCj4+ICvCoMKgwqDC
oMKgwqDCoCBpZiAoIHJhbmsgPT0gTlVMTCApDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBn
b3RvIHdyaXRlX2lnbm9yZTsNCj4+ICsNCj4+ICvCoMKgwqDCoMKgwqDCoCB2Z2ljX3NldF9pcnFz
X3BlbmRpbmcodiwgciwgRVhUX1JBTktfSURYMk5VTShyYW5rLT5pbmRleCkpOw0KPj4gKw0KPj4g
K8KgwqDCoMKgwqDCoMKgIHJldHVybiAxOw0KPj4gKw0KPj4gK8KgwqDCoCBjYXNlIFZSQU5HRTMy
KEdJQ0RfSUNQRU5EUm5FLCBHSUNEX0lDUEVORFJuRU4pOg0KPj4gK8KgwqDCoMKgwqDCoMKgIGlm
ICggZGFidC5zaXplICE9IERBQlRfV09SRCApDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBn
b3RvIGJhZF93aWR0aDsNCj4+ICvCoMKgwqDCoMKgwqDCoCByYW5rID0gdmdpY19leHRfcmFua19v
ZmZzZXQodiwgMSwgcmVnIC0gR0lDRF9JQ1BFTkRSbkUsIA0KPj4gREFCVF9XT1JEKTsNCj4+ICvC
oMKgwqDCoMKgwqDCoCBpZiAoIHJhbmsgPT0gTlVMTCApDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoCBnb3RvIHdyaXRlX2lnbm9yZTsNCj4+ICsNCj4+ICvCoMKgwqDCoMKgwqDCoCB2Z2ljX2No
ZWNrX2luZmxpZ2h0X2lycXNfcGVuZGluZyh2LCBFWFRfUkFOS19JRFgyTlVNKHJhbmstIA0KPj4g
PmluZGV4KSwgcik7DQo+PiArDQo+PiArwqDCoMKgwqDCoMKgwqAgZ290byB3cml0ZV9pZ25vcmU7
DQo+PiArwqDCoMKgIGNhc2UgVlJBTkdFMzIoR0lDRF9JU0FDVElWRVJuRSwgR0lDRF9JU0FDVElW
RVJuRU4pOg0KPj4gK8KgwqDCoMKgwqDCoMKgIGlmICggZGFidC5zaXplICE9IERBQlRfV09SRCAp
DQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBnb3RvIGJhZF93aWR0aDsNCj4+ICvCoMKgwqDC
oMKgwqDCoCBwcmludGsoWEVOTE9HX0dfRVJSDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoCAiJXB2OiAlczogdW5oYW5kbGVkIHdvcmQgd3JpdGUgJSMiUFJJcmVnaXN0ZXIiIHRvIA0K
Pj4gSVNBQ1RJVkVSJWRFXG4iLA0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdiwg
bmFtZSwgciwgcmVnIC0gR0lDRF9JU0FDVElWRVJuRSk7DQo+PiArwqDCoMKgwqDCoMKgwqAgcmV0
dXJuIDA7DQo+IA0KPiBHdWVzdCB3cml0ZSBhY2Nlc3MgdG8gR0lDRF9JU0FDVElWRVI8bj5FIHdp
bGwgbGVhZCB0byBhYm9ydC4gQnV0LCBJIGtub3cgDQo+IHlvdSBqdXN0IHJlcGVhdGVkIHRoZSBs
b2dpYyBmb3IgcmVndWxhciBHSUNEX0lTQUNUSVZFUjxuPi4NCj4gDQo+IA0KDQpDb3VsZCB5b3Ug
cGxlYXNlIGNsYXJpZnkgdGhlIHNjZW5hcmlvIGluIHdoaWNoIGl0IGxlYWRzIHRvIGFuIGFib3J0
PyANClNpbmNlIGl0IGlzIGFjdHVhbGx5IGEgc3R1YiBjYXNlLCBpdCBzaG91bGQganVzdCBwcmlu
dCBhbiBlcnJvciBtZXNzYWdlIA0KYW5kIHRoYXQncyBpdC4uIERvIHlvdSBtZWFuIHRoYXQsIGlu
IHRoaXMgY2FzZSwgd2UgbmVlZCB0byBnb3RvIA0Kd3JpdGVfaWdub3JlXzMyIGxhYmVsIGluc3Rl
YWQgb2YgcmV0dXJuaW5nIDA/DQoNCj4+ICsNCj4+ICvCoMKgwqAgY2FzZSBWUkFOR0UzMihHSUNE
X0lDQUNUSVZFUm5FLCBHSUNEX0lDQUNUSVZFUm5FTik6DQo+PiArwqDCoMKgwqDCoMKgwqAgcHJp
bnRrKFhFTkxPR19HX0VSUg0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIiVwdjog
JXM6IHVuaGFuZGxlZCB3b3JkIHdyaXRlICUjIlBSSXJlZ2lzdGVyIiB0byANCj4+IElDQUNUSVZF
UiVkRVxuIiwNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHYsIG5hbWUsIHIsIHJl
ZyAtIEdJQ0RfSUNBQ1RJVkVSKTsNCj4gDQo+IHMvR0lDRF9JQ0FDVElWRVIvR0lDRF9JQ0FDVElW
RVJuRQ0KPiANCj4gDQoNCkkgd2lsbCBmaXggdGhhdCBpbiBWNC4NCg0KPj4gK8KgwqDCoMKgwqDC
oMKgIGdvdG8gd3JpdGVfaWdub3JlXzMyOw0KPj4gKw0KPj4gK8KgwqDCoCBjYXNlIFZSQU5HRTMy
KEdJQ0RfSVBSSU9SSVRZUm5FLCBHSUNEX0lQUklPUklUWVJuRU4pOg0KPj4gK8KgwqDCoCB7DQo+
PiArwqDCoMKgwqDCoMKgwqAgdWludDMyX3QgKmlwcmlvcml0eXIsIHByaW9yaXR5Ow0KPj4gKw0K
Pj4gK8KgwqDCoMKgwqDCoMKgIGlmICggZGFidC5zaXplICE9IERBQlRfQllURSAmJiBkYWJ0LnNp
emUgIT0gREFCVF9XT1JEICkNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGdvdG8gYmFkX3dp
ZHRoOw0KPj4gK8KgwqDCoMKgwqDCoMKgIHJhbmsgPSB2Z2ljX2V4dF9yYW5rX29mZnNldCh2LCA4
LCByZWcgLSBHSUNEX0lQUklPUklUWVJuRSwgDQo+PiBEQUJUX1dPUkQpOw0KPj4gK8KgwqDCoMKg
wqDCoMKgIGlmICggcmFuayA9PSBOVUxMICkgZ290byB3cml0ZV9pZ25vcmU7DQo+PiArwqDCoMKg
wqDCoMKgwqAgdmdpY19sb2NrX3JhbmsodiwgcmFuaywgZmxhZ3MpOw0KPj4gK8KgwqDCoMKgwqDC
oMKgIGlwcmlvcml0eXIgPSAmcmFuay0+aXByaW9yaXR5cltSRUdfUkFOS19JTkRFWCg4LCByZWcg
LSANCj4+IEdJQ0RfSVBSSU9SSVRZUm5FLA0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgREFCVF9XT1JEKV07DQo+PiArwqDCoMKgwqDCoMKgwqAg
cHJpb3JpdHkgPSBBQ0NFU1NfT05DRSgqaXByaW9yaXR5cik7DQo+PiArwqDCoMKgwqDCoMKgwqAg
dnJlZ19yZWczMl91cGRhdGUoJnByaW9yaXR5LCByLCBpbmZvKTsNCj4+ICvCoMKgwqDCoMKgwqDC
oCBBQ0NFU1NfT05DRSgqaXByaW9yaXR5cikgPSBwcmlvcml0eTsNCj4+ICvCoMKgwqDCoMKgwqDC
oCB2Z2ljX3VubG9ja19yYW5rKHYsIHJhbmssIGZsYWdzKTsNCj4+ICvCoMKgwqDCoMKgwqDCoCBy
ZXR1cm4gMTsNCj4+ICvCoMKgwqAgfQ0KPiANCj4gTklUOiBlbXBseSBsaW5lIHBsZWFzZSAoYW5k
IGluIHNpbWlsYXIgcGxhY2VzKQ0KPiANCg0KSSB3aWxsIHJlY2hlY2sgZm9ybWF0dGluZyBhbmQg
Zml4IGl0IGluIFY0Lg0KDQo+PiArwqDCoMKgIGNhc2UgVlJBTkdFMzIoR0lDRF9JQ0ZHUm5FLCBH
SUNEX0lDRkdSbkVOKToNCj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAoIGRhYnQuc2l6ZSAhPSBEQUJU
X1dPUkQgKQ0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZ290byBiYWRfd2lkdGg7DQo+PiAr
wqDCoMKgwqDCoMKgwqAgcmFuayA9IHZnaWNfZXh0X3Jhbmtfb2Zmc2V0KHYsIDIsIHJlZyAtIEdJ
Q0RfSUNGR1JuRSwgDQo+PiBEQUJUX1dPUkQpOw0KPj4gK8KgwqDCoMKgwqDCoMKgIGlmICggcmFu
ayA9PSBOVUxMICkNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGdvdG8gd3JpdGVfaWdub3Jl
Ow0KPj4gK8KgwqDCoMKgwqDCoMKgIHZnaWNfbG9ja19yYW5rKHYsIHJhbmssIGZsYWdzKTsNCj4+
ICvCoMKgwqDCoMKgwqDCoCB2cmVnX3JlZzMyX3VwZGF0ZSgmcmFuay0+aWNmZ1tSRUdfUkFOS19J
TkRFWCgyLCByZWcgLSANCj4+IEdJQ0RfSUNGR1JuRSwNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBEQUJUX1dPUkQpXSwNCj4+ICvCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByLCBpbmZvKTsNCj4+ICvC
oMKgwqDCoMKgwqDCoCB2Z2ljX3VubG9ja19yYW5rKHYsIHJhbmssIGZsYWdzKTsNCj4+ICvCoMKg
wqDCoMKgwqDCoCByZXR1cm4gMTsNCj4+ICsjZW5kaWYNCj4+ICsNCj4+IMKgwqDCoMKgwqAgZGVm
YXVsdDoNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBwcmludGsoWEVOTE9HX0dfRVJSDQo+PiDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiJXB2OiAlczogdW5oYW5kbGVkIHdyaXRlIHIl
ZD0lIlBSSXJlZ2lzdGVyIiBvZmZzZXQgDQo+PiAlIzA4eFxuIiwNCj4+IEBAIC0xMTI5LDYgKzEy
OTYsMTYgQEAgc3RhdGljIGludCB2Z2ljX3YzX2Rpc3RyX21taW9fcmVhZChzdHJ1Y3QgdmNwdSAN
Cj4+ICp2LCBtbWlvX2luZm9fdCAqaW5mbywNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
IHR5cGVyIHw9IEdJQ0RfVFlQRV9MUElTOw0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHR5cGVyIHw9
ICh2LT5kb21haW4tPmFyY2gudmdpYy5pbnRpZF9iaXRzIC0gMSkgPDwgDQo+PiBHSUNEX1RZUEVf
SURfQklUU19TSElGVDsNCj4+ICsjaWZkZWYgQ09ORklHX0dJQ1YzX0VTUEkNCj4+ICvCoMKgwqDC
oMKgwqDCoCBpZiAoIHYtPmRvbWFpbi0+YXJjaC52Z2ljLm5yX2VzcGlzID4gMCApDQo+PiArwqDC
oMKgwqDCoMKgwqAgew0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLyogU2V0IGVTUEkgc3Vw
cG9ydCBiaXQgZm9yIHRoZSBkb21haW4gKi8NCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHR5
cGVyIHw9IEdJQ0RfVFlQRVJfRVNQSTsNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8qIFNl
dCBFU1BJIHJhbmdlIGJpdHMgKi8NCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHR5cGVyIHw9
IChESVZfUk9VTkRfVVAodi0+ZG9tYWluLT5hcmNoLnZnaWMubnJfZXNwaXMsIDMyKSANCj4+IC0g
MSkNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA8PCBH
SUNEX1RZUEVSX0VTUElfUkFOR0VfU0hJRlQ7DQo+PiArwqDCoMKgwqDCoMKgwqAgfQ0KPj4gKyNl
bmRpZg0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgICpyID0gdnJlZ19yZWczMl9leHRyYWN0KHR5cGVy
LCBpbmZvKTsNCj4+IEBAIC0xMTk0LDYgKzEzNzEsMTggQEAgc3RhdGljIGludCB2Z2ljX3YzX2Rp
c3RyX21taW9fcmVhZChzdHJ1Y3QgdmNwdSANCj4+ICp2LCBtbWlvX2luZm9fdCAqaW5mbywNCj4+
IMKgwqDCoMKgwqAgY2FzZSBWUkFOR0UzMihHSUNEX0lQUklPUklUWVIsIEdJQ0RfSVBSSU9SSVRZ
Uk4pOg0KPj4gwqDCoMKgwqDCoCBjYXNlIFZSQU5HRTMyKEdJQ0RfSUNGR1IsIEdJQ0RfSUNGR1JO
KToNCj4+IMKgwqDCoMKgwqAgY2FzZSBWUkFOR0UzMihHSUNEX0lHUlBNT0RSLCBHSUNEX0lHUlBN
T0RSTik6DQo+PiArDQo+PiArI2lmZGVmIENPTkZJR19HSUNWM19FU1BJDQo+PiArwqDCoMKgIGNh
c2UgVlJBTkdFMzIoR0lDRF9JR1JPVVBSbkUsIEdJQ0RfSUdST1VQUm5FTik6DQo+PiArwqDCoMKg
IGNhc2UgVlJBTkdFMzIoR0lDRF9JU0VOQUJMRVJuRSwgR0lDRF9JU0VOQUJMRVJuRU4pOg0KPj4g
K8KgwqDCoCBjYXNlIFZSQU5HRTMyKEdJQ0RfSUNFTkFCTEVSbkUsIEdJQ0RfSUNFTkFCTEVSbkVO
KToNCj4+ICvCoMKgwqAgY2FzZSBWUkFOR0UzMihHSUNEX0lTUEVORFJuRSwgR0lDRF9JU1BFTkRS
bkVOKToNCj4+ICvCoMKgwqAgY2FzZSBWUkFOR0UzMihHSUNEX0lDUEVORFJuRSwgR0lDRF9JQ1BF
TkRSbkVOKToNCj4+ICvCoMKgwqAgY2FzZSBWUkFOR0UzMihHSUNEX0lTQUNUSVZFUm5FLCBHSUNE
X0lTQUNUSVZFUm5FTik6DQo+PiArwqDCoMKgIGNhc2UgVlJBTkdFMzIoR0lDRF9JQ0FDVElWRVJu
RSwgR0lDRF9JQ0FDVElWRVJuRU4pOg0KPj4gK8KgwqDCoCBjYXNlIFZSQU5HRTMyKEdJQ0RfSVBS
SU9SSVRZUm5FLCBHSUNEX0lQUklPUklUWVJuRU4pOg0KPj4gK8KgwqDCoCBjYXNlIFZSQU5HRTMy
KEdJQ0RfSUNGR1JuRSwgR0lDRF9JQ0ZHUm5FTik6DQo+PiArI2VuZGlmDQo+IA0KPiBHSUNEX0lH
UlBNT0RSPG4+RSBpcyBtaXNzZWQ/IEkgZ3Vlc3MsIGl0IHNob3VsZCBiZSBSQVogYXMgcmVndWxh
ciANCj4gR0lDRF9JR1JQTU9EUjxuPi4NCj4gDQo+IEFsc28gR0lDRF9OU0FDUjxuPkUgaXMgbWlz
c2VkLCBhbHRob3VnaCB0aGUgY2FzZSBmb3IgcmVndWxhciANCj4gR0lDRF9OU0FDUjxuPiBpcyBw
cmVzZW50IChub3QgdmlzaWJsZSBpbiBwYXRjaCBjb250ZXh0KS4NCj4gDQoNClllcywgSSBtaXNz
ZWQgdGhlbSwgc2luY2UgdGhleSBhcmUgbm90IHJlcXVpcmVkIGZvciByZWFsIEdJQyBoYXJkd2Fy
ZS4uDQpJIHdpbGwgdXBkYXRlIHRoZSBwYXRjaCB0aGF0IGFkZHMgZVNQSS1zcGVjaWZpYyBkZWZp
bmVzIGFuZCBtYWtlIHRoZSANCmFwcHJvcHJpYXRlIGNoYW5nZXMgaW4gdGhpcyBwYXRjaC4NCg0K
Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIC8qDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqIEFib3Zl
IGFsbCByZWdpc3RlciBhcmUgY29tbW9uIHdpdGggR0lDUiBhbmQgR0lDRA0KPj4gwqDCoMKgwqDC
oMKgwqDCoMKgwqAgKiBNYW5hZ2UgaW4gY29tbW9uDQo+PiBAQCAtMTIxNiw3ICsxNDA1LDExIEBA
IHN0YXRpYyBpbnQgdmdpY192M19kaXN0cl9tbWlvX3JlYWQoc3RydWN0IHZjcHUgDQo+PiAqdiwg
bW1pb19pbmZvX3QgKmluZm8sDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgLyogUmVwbGFjZWQgd2l0
aCBHSUNSX0lTUEVORFIwLiBTbyBpZ25vcmUgd3JpdGUgKi8NCj4+IMKgwqDCoMKgwqDCoMKgwqDC
oCBnb3RvIHJlYWRfYXNfemVyb18zMjsNCj4+ICsjaWZkZWYgQ09ORklHX0dJQ1YzX0VTUEkNCj4+
ICvCoMKgwqAgY2FzZSBWUkFOR0UzMigweDMxMDAsIDB4NjBGQyk6DQo+PiArI2Vsc2UNCj4+IMKg
wqDCoMKgwqAgY2FzZSBWUkFOR0UzMigweDBGMzAsIDB4NjBGQyk6DQo+PiArI2VuZGlmDQo+PiDC
oMKgwqDCoMKgwqDCoMKgwqAgZ290byByZWFkX3Jlc2VydmVkOw0KPj4gwqDCoMKgwqDCoCBjYXNl
IFZSQU5HRTY0KEdJQ0RfSVJPVVRFUjMyLCBHSUNEX0lST1VURVIxMDE5KToNCj4+IEBAIC0xMjM1
LDggKzE0MjgsMzAgQEAgc3RhdGljIGludCB2Z2ljX3YzX2Rpc3RyX21taW9fcmVhZChzdHJ1Y3Qg
dmNwdSANCj4+ICp2LCBtbWlvX2luZm9fdCAqaW5mbywNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBy
ZXR1cm4gMTsNCj4+IMKgwqDCoMKgwqAgfQ0KPj4gKyNpZmRlZiBDT05GSUdfR0lDVjNfRVNQSQ0K
Pj4gK8KgwqDCoCBjYXNlIFZSQU5HRTY0KEdJQ0RfSVJPVVRFUm5FLCBHSUNEX0lST1VURVJuRU4p
Og0KPj4gK8KgwqDCoCB7DQo+PiArwqDCoMKgwqDCoMKgwqAgdWludDY0X3QgaXJvdXRlcjsNCj4+
ICsNCj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAoICF2Z2ljX3JlZzY0X2NoZWNrX2FjY2VzcyhkYWJ0
KSApDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBnb3RvIGJhZF93aWR0aDsNCj4+ICvCoMKg
wqDCoMKgwqDCoCByYW5rID0gdmdpY19leHRfcmFua19vZmZzZXQodiwgNjQsIGdpY2RfcmVnIC0g
R0lDRF9JUk9VVEVSbkUsDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgREFCVF9ET1VCTEVfV09SRCk7DQo+PiArwqDCoMKg
wqDCoMKgwqAgaWYgKCByYW5rID09IE5VTEwgKQ0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAg
Z290byByZWFkX2FzX3plcm87DQo+PiArwqDCoMKgwqDCoMKgwqAgdmdpY19sb2NrX3Jhbmsodiwg
cmFuaywgZmxhZ3MpOw0KPj4gK8KgwqDCoMKgwqDCoMKgIGlyb3V0ZXIgPSB2Z2ljX2ZldGNoX2ly
b3V0ZXIocmFuaywgZ2ljZF9yZWcgLSBHSUNEX0lST1VURVJuRSk7DQo+PiArwqDCoMKgwqDCoMKg
wqAgdmdpY191bmxvY2tfcmFuayh2LCByYW5rLCBmbGFncyk7DQo+PiArwqDCoMKgwqDCoMKgwqAg
KnIgPSB2cmVnX3JlZzY0X2V4dHJhY3QoaXJvdXRlciwgaW5mbyk7DQo+PiArDQo+PiArwqDCoMKg
wqDCoMKgwqAgcmV0dXJuIDE7DQo+PiArwqDCoMKgIH0NCj4+ICsNCj4+ICvCoMKgwqAgY2FzZSBW
UkFOR0UzMigweEEwMDQsIDB4QkZGQyk6DQo+PiArI2Vsc2UNCj4+IMKgwqDCoMKgwqAgY2FzZSBW
UkFOR0UzMigweDdGRTAsIDB4QkZGQyk6DQo+PiArI2VuZGlmDQo+PiDCoMKgwqDCoMKgwqDCoMKg
wqAgZ290byByZWFkX3Jlc2VydmVkOw0KPj4gwqDCoMKgwqDCoCBjYXNlIFZSQU5HRTMyKDB4QzAw
MCwgMHhGRkNDKToNCj4+IEBAIC0xMzgyLDYgKzE1OTcsMTggQEAgc3RhdGljIGludCB2Z2ljX3Yz
X2Rpc3RyX21taW9fd3JpdGUoc3RydWN0IHZjcHUgDQo+PiAqdiwgbW1pb19pbmZvX3QgKmluZm8s
DQo+PiDCoMKgwqDCoMKgIGNhc2UgVlJBTkdFMzIoR0lDRF9JUFJJT1JJVFlSLCBHSUNEX0lQUklP
UklUWVJOKToNCj4+IMKgwqDCoMKgwqAgY2FzZSBWUkFOR0UzMihHSUNEX0lDRkdSLCBHSUNEX0lD
RkdSTik6DQo+PiDCoMKgwqDCoMKgIGNhc2UgVlJBTkdFMzIoR0lDRF9JR1JQTU9EUiwgR0lDRF9J
R1JQTU9EUk4pOg0KPj4gKw0KPj4gKyNpZmRlZiBDT05GSUdfR0lDVjNfRVNQSQ0KPj4gK8KgwqDC
oCBjYXNlIFZSQU5HRTMyKEdJQ0RfSUdST1VQUm5FLCBHSUNEX0lHUk9VUFJuRU4pOg0KPj4gK8Kg
wqDCoCBjYXNlIFZSQU5HRTMyKEdJQ0RfSVNFTkFCTEVSbkUsIEdJQ0RfSVNFTkFCTEVSbkVOKToN
Cj4+ICvCoMKgwqAgY2FzZSBWUkFOR0UzMihHSUNEX0lDRU5BQkxFUm5FLCBHSUNEX0lDRU5BQkxF
Um5FTik6DQo+PiArwqDCoMKgIGNhc2UgVlJBTkdFMzIoR0lDRF9JU1BFTkRSbkUsIEdJQ0RfSVNQ
RU5EUm5FTik6DQo+PiArwqDCoMKgIGNhc2UgVlJBTkdFMzIoR0lDRF9JQ1BFTkRSbkUsIEdJQ0Rf
SUNQRU5EUm5FTik6DQo+PiArwqDCoMKgIGNhc2UgVlJBTkdFMzIoR0lDRF9JU0FDVElWRVJuRSwg
R0lDRF9JU0FDVElWRVJuRU4pOg0KPj4gK8KgwqDCoCBjYXNlIFZSQU5HRTMyKEdJQ0RfSUNBQ1RJ
VkVSbkUsIEdJQ0RfSUNBQ1RJVkVSbkVOKToNCj4+ICvCoMKgwqAgY2FzZSBWUkFOR0UzMihHSUNE
X0lQUklPUklUWVJuRSwgR0lDRF9JUFJJT1JJVFlSbkVOKToNCj4+ICvCoMKgwqAgY2FzZSBWUkFO
R0UzMihHSUNEX0lDRkdSbkUsIEdJQ0RfSUNGR1JuRU4pOg0KPj4gKyNlbmRpZg0KPiANCj4gR0lD
RF9JR1JQTU9EUjxuPkUgaXMgbWlzc2VkPyBJIGd1ZXNzLCBpdCBzaG91bGQgYmUgV0kgYXMgcmVn
dWxhciANCj4gR0lDRF9JR1JQTU9EUjxuPi4NCj4gDQo+IA0KPiBBbHNvIEdJQ0RfTlNBQ1I8bj5F
IGlzIG1pc3NlZCwgYWx0aG91Z2ggdGhlIGNhc2UgZm9yIHJlZ3VsYXIgDQo+IEdJQ0RfTlNBQ1I8
bj4gaXMgcHJlc2VudCAobm90IHZpc2libGUgaW4gcGF0Y2ggY29udGV4dCkuDQoNCkkgd2lsbCB1
cGRhdGUgdGhlIHBhdGNoIHRoYXQgYWRkcyBlU1BJLXNwZWNpZmljIGRlZmluZXMgYW5kIG1ha2Ug
dGhlIA0KYXBwcm9wcmlhdGUgY2hhbmdlcyBpbiB0aGlzIHBhdGNoLg0KDQo+IA0KPj4gwqDCoMKg
wqDCoMKgwqDCoMKgIC8qIEFib3ZlIHJlZ2lzdGVycyBhcmUgY29tbW9uIHdpdGggR0lDUiBhbmQg
R0lDRA0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqAgKiBNYW5hZ2UgaW4gY29tbW9uICovDQo+PiDC
oMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIF9fdmdpY192M19kaXN0cl9jb21tb25fbW1pb193cml0
ZSgidkdJQ0QiLCB2LCBpbmZvLA0KPj4gQEAgLTE0MDUsMjYgKzE2MzIsNTYgQEAgc3RhdGljIGlu
dCB2Z2ljX3YzX2Rpc3RyX21taW9fd3JpdGUoc3RydWN0IA0KPj4gdmNwdSAqdiwgbW1pb19pbmZv
X3QgKmluZm8sDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKCBkYWJ0LnNpemUgIT0gREFCVF9X
T1JEICkgZ290byBiYWRfd2lkdGg7DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIDA7DQo+
PiArI2lmZGVmIENPTkZJR19HSUNWM19FU1BJDQo+PiArwqDCoMKgIGNhc2UgVlJBTkdFMzIoMHgz
MTAwLCAweDYwRkMpOg0KPj4gKyNlbHNlDQo+PiDCoMKgwqDCoMKgIGNhc2UgVlJBTkdFMzIoMHgw
RjMwLCAweDYwRkMpOg0KPj4gKyNlbmRpZg0KPiANCj4gSSB3b25kZXIsIGNhbiB3ZSBoYXZlICNk
ZWZpbmVzIGZvciB0aGVzZSBtYWdpY3MgKGF0IGxlYXN0IGZvciB0aGUgc3RhcnQgDQo+IG9mIHRo
ZSByZXNlcnZlZCByYW5nZSk/DQo+IA0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGdvdG8gd3JpdGVf
cmVzZXJ2ZWQ7DQo+PiDCoMKgwqDCoMKgIGNhc2UgVlJBTkdFNjQoR0lDRF9JUk9VVEVSMzIsIEdJ
Q0RfSVJPVVRFUjEwMTkpOg0KPj4gwqDCoMKgwqDCoCB7DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAg
dWludDY0X3QgaXJvdXRlcjsNCj4+ICvCoMKgwqDCoMKgwqDCoCB1bnNpZ25lZCBpbnQgb2Zmc2V0
LCB2aXJxOw0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGlmICggIXZnaWNfcmVnNjRfY2hlY2tfYWNj
ZXNzKGRhYnQpICkgZ290byBiYWRfd2lkdGg7DQo+PiAtwqDCoMKgwqDCoMKgwqAgcmFuayA9IHZn
aWNfcmFua19vZmZzZXQodiwgNjQsIGdpY2RfcmVnIC0gR0lDRF9JUk9VVEVSLA0KPj4gLcKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
IERBQlRfRE9VQkxFX1dPUkQpOw0KPj4gK8KgwqDCoMKgwqDCoMKgIG9mZnNldCA9IGdpY2RfcmVn
IC0gR0lDRF9JUk9VVEVSOw0KPj4gK8KgwqDCoMKgwqDCoMKgIHJhbmsgPSB2Z2ljX3Jhbmtfb2Zm
c2V0KHYsIDY0LCBvZmZzZXQsIERBQlRfRE9VQkxFX1dPUkQpOw0KPj4gwqDCoMKgwqDCoMKgwqDC
oMKgIGlmICggcmFuayA9PSBOVUxMICkgZ290byB3cml0ZV9pZ25vcmU7DQo+PiDCoMKgwqDCoMKg
wqDCoMKgwqAgdmdpY19sb2NrX3JhbmsodiwgcmFuaywgZmxhZ3MpOw0KPj4gLcKgwqDCoMKgwqDC
oMKgIGlyb3V0ZXIgPSB2Z2ljX2ZldGNoX2lyb3V0ZXIocmFuaywgZ2ljZF9yZWcgLSBHSUNEX0lS
T1VURVIpOw0KPj4gK8KgwqDCoMKgwqDCoMKgIGlyb3V0ZXIgPSB2Z2ljX2ZldGNoX2lyb3V0ZXIo
cmFuaywgb2Zmc2V0KTsNCj4+ICvCoMKgwqDCoMKgwqDCoCB2cmVnX3JlZzY0X3VwZGF0ZSgmaXJv
dXRlciwgciwgaW5mbyk7DQo+PiArwqDCoMKgwqDCoMKgwqAgdmlycSA9IG9mZnNldCAvIE5SX0JZ
VEVTX1BFUl9JUk9VVEVSOw0KPj4gK8KgwqDCoMKgwqDCoMKgIHZnaWNfc3RvcmVfaXJvdXRlcih2
LT5kb21haW4sIHJhbmssIHZpcnEsIGlyb3V0ZXIpOw0KPj4gK8KgwqDCoMKgwqDCoMKgIHZnaWNf
dW5sb2NrX3JhbmsodiwgcmFuaywgZmxhZ3MpOw0KPj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiAx
Ow0KPj4gK8KgwqDCoCB9DQo+PiArDQo+PiArI2lmZGVmIENPTkZJR19HSUNWM19FU1BJDQo+PiAr
wqDCoMKgIGNhc2UgVlJBTkdFNjQoR0lDRF9JUk9VVEVSbkUsIEdJQ0RfSVJPVVRFUm5FTik6DQo+
PiArwqDCoMKgIHsNCj4+ICvCoMKgwqDCoMKgwqDCoCB1aW50NjRfdCBpcm91dGVyOw0KPj4gK8Kg
wqDCoMKgwqDCoMKgIHVuc2lnbmVkIGludCBvZmZzZXQsIHZpcnE7DQo+PiArDQo+PiArwqDCoMKg
wqDCoMKgwqAgaWYgKCAhdmdpY19yZWc2NF9jaGVja19hY2Nlc3MoZGFidCkgKQ0KPj4gK8KgwqDC
oMKgwqDCoMKgwqDCoMKgwqAgZ290byBiYWRfd2lkdGg7DQo+PiArwqDCoMKgwqDCoMKgwqAgb2Zm
c2V0ID0gZ2ljZF9yZWcgLSBHSUNEX0lST1VURVJuRTsNCj4+ICvCoMKgwqDCoMKgwqDCoCByYW5r
ID0gdmdpY19leHRfcmFua19vZmZzZXQodiwgNjQsIG9mZnNldCwgREFCVF9ET1VCTEVfV09SRCk7
DQo+PiArwqDCoMKgwqDCoMKgwqAgaWYgKCByYW5rID09IE5VTEwgKQ0KPj4gK8KgwqDCoMKgwqDC
oMKgwqDCoMKgwqAgZ290byB3cml0ZV9pZ25vcmU7DQo+PiArwqDCoMKgwqDCoMKgwqAgdmdpY19s
b2NrX3JhbmsodiwgcmFuaywgZmxhZ3MpOw0KPj4gK8KgwqDCoMKgwqDCoMKgIGlyb3V0ZXIgPSB2
Z2ljX2ZldGNoX2lyb3V0ZXIocmFuaywgb2Zmc2V0KTsNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCB2
cmVnX3JlZzY0X3VwZGF0ZSgmaXJvdXRlciwgciwgaW5mbyk7DQo+PiAtwqDCoMKgwqDCoMKgwqAg
dmdpY19zdG9yZV9pcm91dGVyKHYtPmRvbWFpbiwgcmFuaywgZ2ljZF9yZWcgLSBHSUNEX0lST1VU
RVIsIA0KPj4gaXJvdXRlcik7DQo+PiArwqDCoMKgwqDCoMKgwqAgdmlycSA9IEVTUElfSURYMklO
VElEKG9mZnNldCAvIE5SX0JZVEVTX1BFUl9JUk9VVEVSKTsNCj4+ICvCoMKgwqDCoMKgwqDCoCB2
Z2ljX3N0b3JlX2lyb3V0ZXIodi0+ZG9tYWluLCByYW5rLCB2aXJxLCBpcm91dGVyKTsNCj4+IMKg
wqDCoMKgwqDCoMKgwqDCoCB2Z2ljX3VubG9ja19yYW5rKHYsIHJhbmssIGZsYWdzKTsNCj4+IMKg
wqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gMTsNCj4+IMKgwqDCoMKgwqAgfQ0KPj4gK8KgwqDCoCBj
YXNlIFZSQU5HRTMyKDB4QTAwNCwgMHhCRkZDKToNCj4+ICsjZWxzZQ0KPj4gwqDCoMKgwqDCoCBj
YXNlIFZSQU5HRTMyKDB4N0ZFMCwgMHhCRkZDKToNCj4+ICsjZW5kaWYNCj4+IMKgwqDCoMKgwqDC
oMKgwqDCoCBnb3RvIHdyaXRlX3Jlc2VydmVkOw0KPj4gwqDCoMKgwqDCoCBjYXNlIFZSQU5HRTMy
KDB4QzAwMCwgMHhGRkNDKToNCj4gDQoNCkJlc3QgcmVnYXJkcywNCkxlb25pZC4NCg==


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 12:01:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 12:01:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095965.1450790 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urEq1-0007Ge-Up; Wed, 27 Aug 2025 12:01:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095965.1450790; Wed, 27 Aug 2025 12: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 1urEq1-0007GX-Rl; Wed, 27 Aug 2025 12:01:13 +0000
Received: by outflank-mailman (input) for mailman id 1095965;
 Wed, 27 Aug 2025 12:01:12 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BCET=3H=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1urEq0-0007GR-DS
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 12:01:12 +0000
Received: from mail-lf1-x134.google.com (mail-lf1-x134.google.com
 [2a00:1450:4864:20::134])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 85066dd2-833d-11f0-ae26-e363de0e7a9e;
 Wed, 27 Aug 2025 14:01:10 +0200 (CEST)
Received: by mail-lf1-x134.google.com with SMTP id
 2adb3069b0e04-55f3533fd05so4904799e87.0
 for <xen-devel@lists.xenproject.org>; Wed, 27 Aug 2025 05:01:09 -0700 (PDT)
Received: from [192.168.0.110] ([91.123.151.69])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-55f528ce570sm499049e87.120.2025.08.27.05.01.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Aug 2025 05:01: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>
X-Inumbo-ID: 85066dd2-833d-11f0-ae26-e363de0e7a9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756296069; x=1756900869; 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=77JM2ztekbvnP3zJEWNM77vZoV+sSOiR3cC5kFPo0Rw=;
        b=kpfRb45+A8LcAtygafSQ+sh2sHLyNIb8NXNy8gbm21trs/ZuZJQerfXid5gUlAls7t
         Zx7pnKQy7rfFL325xJx5Ai2R9HWYrLQMse0fosXWZgMrubfpIS1TYSsQ3laIhgFC+r+9
         KkHK0+cFQXvbvmD2egLOH4XjM55O13WTm1fD662sRKJXLbtCHQAyhCVf+mLcYV5IkmgT
         69DNtbtNJIk+c+cRpxa7cJXOzxgKTIArPn9yfemhvK+zdbkEvETDavncXKUUHECS6b72
         1iY1v0sJhTFvHRq9T2BPdxfuGsNv7ubgCsZ/Q2ZfXUdqRXrCtX/FBe9T/uJWAzP97wtp
         Ecsw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756296069; x=1756900869;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=77JM2ztekbvnP3zJEWNM77vZoV+sSOiR3cC5kFPo0Rw=;
        b=eDPgLrRpLQSRYCZm5+1sHtNlvYRw+nOS1kLMivLDtc06Yuld+PeKCSMouetbpyQ8QL
         EzMpdyihiD2Lzn+a+iMBKdK88G9XiLx9Sh9VHKDx0utctIVa36Ji0UHDBLAayic1Nwoa
         LNq5fdQ4cvemdr8zEIrQtAcsNCzFkHZzCDtRgFlRgidnE5T0w4mpLtgno1ehx343jMoO
         QPJ10uA1x42wPIf8gnuix1XPJzhQrAi3sM/MP6O9JlsAXSJReoeZRp0GQhr08pMudzx/
         iY9RGKQvFNWQKhoKd7b8PTZzmT7F2nEsUEIGaVuiO14WSRZMiuGBEs1/C5l0BH1ZVewV
         1Tog==
X-Gm-Message-State: AOJu0YzGWZR2unDFYrc+omcxZJOwAbVYKWMisxbxxvIaIrEXs00iwXee
	jHYtQXl5MhOTaq2bJsbR82LhMvYPdhEv9dNlh3Keefin+4Bv0eMVMCslI8ulPA==
X-Gm-Gg: ASbGncv0qCaMRjPxE3HacCrFCbO42IA82AQYCWdm/XwvmwXF2c/9fVXR0TP2C/9lrpJ
	m541YUwA3E1BmIN4uzwtDRw5+eb4Ocm2xi2waG/HL0e+g0qzVfIm2kbvV5vbaRdotiLnpN7Zgmz
	HsRbo4rQcsjdDiebzj7orOK+3sidMg9q71+9ZQhYbkzq6P6swuPBFHpGj82bQgDp/FXZWE3LBIH
	iEFyzog2cNqwlnaxA9icrLFj86N7UtZx7c3AmtRkvLM+F/suF1Li5MJCGRS0qGkZtz08Oa5DJOt
	RaANs2UGYDVt20MxrnfB/hHC48+k6WEhAy5y5OnSm93nmHZulXyFdprDJhsly5V7G803m2MApo4
	DvzyeB4CQw4JT1SYs4MTTgEQeVg==
X-Google-Smtp-Source: AGHT+IHVyYWQb5405VT2roIsRpsyDu9GMnfjdYYD9hee1lYT0NVSSSId6UXqwbNYkqHmUHC5o1Nstg==
X-Received: by 2002:a05:6512:6410:b0:55c:aca3:dd31 with SMTP id 2adb3069b0e04-55f0c6a0cb4mr5202222e87.12.1756296068564;
        Wed, 27 Aug 2025 05:01:08 -0700 (PDT)
Message-ID: <a230ad6c-294d-488f-ac2e-6fc3a7cf33fc@gmail.com>
Date: Wed, 27 Aug 2025 15:01:01 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 09/11] xen/arm: domain_build/dom0less-build: adjust
 domains config to support eSPIs
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>
References: <cover.1756216942.git.leonid_komarianskyi@epam.com>
 <bff3d1c4302e8780771abed42f624cafe76776cd.1756216943.git.leonid_komarianskyi@epam.com>
 <874itt4r5t.fsf@epam.com> <1cf0a662-b717-458c-8174-6b03187b4b6c@epam.com>
Content-Language: en-US
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
In-Reply-To: <1cf0a662-b717-458c-8174-6b03187b4b6c@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 27.08.25 13:25, Leonid Komarianskyi wrote:

Hello Leonid

> Hello Volodymyr,
> 
> Thank you for your suggestion.
> 
> On 27.08.25 02:08, Volodymyr Babchuk wrote:
>> Hi Leonid,
>>
>> Leonid Komarianskyi <Leonid_Komarianskyi@epam.com> writes:
>>
>>> The Dom0 and DomUs logic for the dom0less configuration in create_dom0()
>>> and arch_create_domUs() has been updated to account for extended SPIs
>>> when supported by the hardware and enabled with CONFIG_GICV3_ESPI. These
>>> changes ensure the proper calculation of the maximum number of SPIs and
>>> eSPIs available to Dom0 and DomUs in dom0less setups.
>>>
>>> When eSPIs are supported by the hardware and CONFIG_GICV3_ESPI is
>>> enabled, the maximum number of eSPI interrupts is calculated using the
>>> ESPI_BASE_INTID offset (4096) and is limited to 1024, with 32 IRQs
>>> subtracted. To ensure compatibility with DomUs (Dom0 setups) domains,
>>> where this adjustment is applied by the toolstack during domain
>>> creation, while for Dom0 or DomUs in Dom0, it is handled directly during
>>> VGIC initialization. If eSPIs are not supported, the calculation
>>> defaults to using the standard SPI range, with a maximum value of
>>> 960 interrupt lines, as it works currently.
>>>
>>> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
>>>
>>> ---
>>> Changes in V2:
>>> - no changes
>>>
>>> Changes in V3:
>>> - renamed macro VGIC_DEF_NR_ESPIS to more appropriate VGIC_DEF_MAX_SPI
>>
>> Will VGIC_DEF_MAX_ESPI be better? When other code refer to "SPI" it mean
>> "common SPI" (less than 1022), while ESPI is used for extended SPI. So,
>> naturally it feels that VGIC_DEF_MAX_SPI should be equal to 1022...
>>
> 
> Yes, I agree with that - VGIC_DEF_MAX_ESPI sounds more appropriate in
> this case. I will rename it in V4.
> 
>>> - added eSPI initialization for dom0less setups
>>> - fixed comment with mentions about dom0less builds
>>> - fixed formatting for lines with more than 80 symbols
>>> - updated commit message
>>> ---
>>>    xen/arch/arm/dom0less-build.c   | 12 ++++++++++++
>>>    xen/arch/arm/domain_build.c     | 11 +++++++++++
>>>    xen/arch/arm/include/asm/vgic.h | 14 ++++++++++++++
>>>    3 files changed, 37 insertions(+)
>>>
>>> diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
>>> index 69b9ea22ce..f4f9077db5 100644
>>> --- a/xen/arch/arm/dom0less-build.c
>>> +++ b/xen/arch/arm/dom0less-build.c
>>> @@ -286,6 +286,18 @@ void __init arch_create_domUs(struct dt_device_node *node,
>>>            int vpl011_virq = GUEST_VPL011_SPI;
>>>    
>>>            d_cfg->arch.nr_spis = VGIC_DEF_NR_SPIS;
>>> +#ifdef CONFIG_GICV3_ESPI
>>> +        /*
>>> +         * Check if the hardware supports extended SPIs (even if the
>>> +         * appropriate config is set). If not, the common SPI range
>>> +         * will be used. Otherwise overwrite the nr_spis with the maximum
>>> +         * available INTID from eSPI range. In that case, the number of
>>> +         * regular SPIs will be adjusted to the maximum value during vGIC
>>> +         * initialization.
>>> +         */
>>> +        if ( gic_number_espis() > 0 )
>>> +            d_cfg->arch.nr_spis = VGIC_DEF_MAX_SPI;
>>> +#endif
>>>    
>>>            /*
>>>             * The VPL011 virq is GUEST_VPL011_SPI, unless direct-map is
>>> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
>>> index d91a71acfd..148a8bdb60 100644
>>> --- a/xen/arch/arm/domain_build.c
>>> +++ b/xen/arch/arm/domain_build.c
>>> @@ -2055,6 +2055,17 @@ void __init create_dom0(void)
>>>        /* The vGIC for DOM0 is exactly emulating the hardware GIC */
>>>        dom0_cfg.arch.gic_version = XEN_DOMCTL_CONFIG_GIC_NATIVE;
>>>        dom0_cfg.arch.nr_spis = VGIC_DEF_NR_SPIS;
>>> +#ifdef CONFIG_GICV3_ESPI
>>> +    /*
>>> +     * Check if the hardware supports extended SPIs (even if the appropriate
>>> +     * config is set). If not, the common SPI range will be used. Otherwise
>>> +     * overwrite the nr_spis with the maximum available INTID from eSPI range.
>>> +     * In that case, the number of regular SPIs will be adjusted to the maximum
>>> +     * value during vGIC initialization.
>>> +     */
>>> +    if ( gic_number_espis() > 0 )
>>> +        dom0_cfg.arch.nr_spis = VGIC_DEF_MAX_SPI;
>>> +#endif

So we have almost (?) identical code and big comments in both 
create_dom0() and arch_create_domUs().

I was thinking, wouldn't it be better if we put this into a helper? This 
way, I think, we will reduce the number of GICv3-specific #ifdef-s in 
common domain construction code and will not need to worry about keeping 
these places in sync when updating the check/comment.

Something like below to be applied on top of your patch (not build-tested):

diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index f4f9077db5..02d5559102 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -285,19 +285,7 @@ void __init arch_create_domUs(struct dt_device_node 
*node,
      {
          int vpl011_virq = GUEST_VPL011_SPI;

-        d_cfg->arch.nr_spis = VGIC_DEF_NR_SPIS;
-#ifdef CONFIG_GICV3_ESPI
-        /*
-         * Check if the hardware supports extended SPIs (even if the
-         * appropriate config is set). If not, the common SPI range
-         * will be used. Otherwise overwrite the nr_spis with the maximum
-         * available INTID from eSPI range. In that case, the number of
-         * regular SPIs will be adjusted to the maximum value during vGIC
-         * initialization.
-         */
-        if ( gic_number_espis() > 0 )
-            d_cfg->arch.nr_spis = VGIC_DEF_MAX_SPI;
-#endif
+        d_cfg->arch.nr_spis = vgic_def_nr_spis();

          /*
           * The VPL011 virq is GUEST_VPL011_SPI, unless direct-map is
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 148a8bdb60..39eea0be00 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -2054,18 +2054,7 @@ void __init create_dom0(void)

      /* The vGIC for DOM0 is exactly emulating the hardware GIC */
      dom0_cfg.arch.gic_version = XEN_DOMCTL_CONFIG_GIC_NATIVE;
-    dom0_cfg.arch.nr_spis = VGIC_DEF_NR_SPIS;
-#ifdef CONFIG_GICV3_ESPI
-    /*
-     * Check if the hardware supports extended SPIs (even if the 
appropriate
-     * config is set). If not, the common SPI range will be used. Otherwise
-     * overwrite the nr_spis with the maximum available INTID from eSPI 
range.
-     * In that case, the number of regular SPIs will be adjusted to the 
maximum
-     * value during vGIC initialization.
-     */
-    if ( gic_number_espis() > 0 )
-        dom0_cfg.arch.nr_spis = VGIC_DEF_MAX_SPI;
-#endif
+    dom0_cfg.arch.nr_spis = vgic_def_nr_spis();
      dom0_cfg.arch.tee_type = tee_get_type();
      dom0_cfg.max_vcpus = dom0_max_vcpus();

diff --git a/xen/arch/arm/include/asm/vgic.h 
b/xen/arch/arm/include/asm/vgic.h
index 0bb025f5d5..0350122a74 100644
--- a/xen/arch/arm/include/asm/vgic.h
+++ b/xen/arch/arm/include/asm/vgic.h
@@ -367,6 +367,24 @@ extern void vgic_check_inflight_irqs_pending(struct 
vcpu *v,
                            min(gic_number_espis(), 1024U) - 32)
  #endif

+static inline unsigned int vgic_def_nr_spis(void)
+{
+#ifdef CONFIG_GICV3_ESPI
+    /*
+     * Check if the hardware supports extended SPIs (even if the
+     * appropriate config is set). If not, the common SPI range
+     * will be used. Otherwise overwrite the nr_spis with the maximum
+     * available INTID from eSPI range. In that case, the number of
+     * regular SPIs will be adjusted to the maximum value during vGIC
+     * initialization.
+     */
+    if ( gic_number_espis() > 0 )
+        return VGIC_DEF_MAX_SPI;
+#endif
+
+    return VGIC_DEF_NR_SPIS;
+}
+
  extern bool vgic_is_valid_line(struct domain *d, unsigned int virq);

  static inline bool vgic_is_spi(struct domain *d, unsigned int virq)

******

Also, if VGIC_DEF_MAX_SPI (or whatever name you agreed on) is not 
supposed to be used outside of vgic.h, I would even consider dropping it
and using "ESPI_BASE_INTID + min(gic_number_espis(), 1024U) - 32" (to 
reduce one more #ifdef in the header).


P.S. I might be wrong, but it feels to me, that description for 
"nr_spis" in docs/man/xl.cfg.5.pod.in needs a update within your series 
(it mentions that "Max is 960 SPIs").


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 12:26:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 12:26:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095980.1450800 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urFEV-0001cE-RD; Wed, 27 Aug 2025 12:26:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095980.1450800; Wed, 27 Aug 2025 12:26: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 1urFEV-0001c7-OZ; Wed, 27 Aug 2025 12:26:31 +0000
Received: by outflank-mailman (input) for mailman id 1095980;
 Wed, 27 Aug 2025 12:26:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Mrvt=3H=arm.com=Hari.Limaye@srs-se1.protection.inumbo.net>)
 id 1urFEU-0001ba-LF
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 12:26:31 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0bf52b46-8341-11f0-ae26-e363de0e7a9e;
 Wed, 27 Aug 2025 14:26:24 +0200 (CEST)
Received: from DU2PR04CA0276.eurprd04.prod.outlook.com (2603:10a6:10:28c::11)
 by PAXPR08MB7576.eurprd08.prod.outlook.com (2603:10a6:102:23e::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Wed, 27 Aug
 2025 12:26:22 +0000
Received: from DB1PEPF000509FA.eurprd03.prod.outlook.com
 (2603:10a6:10:28c:cafe::77) by DU2PR04CA0276.outlook.office365.com
 (2603:10a6:10:28c::11) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.15 via Frontend Transport; Wed,
 27 Aug 2025 12:26:22 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB1PEPF000509FA.mail.protection.outlook.com (10.167.242.36) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.11
 via Frontend Transport; Wed, 27 Aug 2025 12:26:21 +0000
Received: from AS2PR08MB8745.eurprd08.prod.outlook.com (2603:10a6:20b:55d::22)
 by DB9PR08MB7558.eurprd08.prod.outlook.com (2603:10a6:10:305::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Wed, 27 Aug
 2025 12:25:45 +0000
Received: from AS2PR08MB8745.eurprd08.prod.outlook.com
 ([fe80::a4bd:fd62:e7f:76d5]) by AS2PR08MB8745.eurprd08.prod.outlook.com
 ([fe80::a4bd:fd62:e7f:76d5%5]) with mapi id 15.20.9031.019; Wed, 27 Aug 2025
 12:25: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>
X-Inumbo-ID: 0bf52b46-8341-11f0-ae26-e363de0e7a9e
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=TT8gz4LpNNm9PGZ3O9Sqi3VUmasrreOIqFb10iZlFM09C9IlK1MOVotA0lZezQP0GXPGEQwn7amttgeeLDaacTRuGsJcPBvsEruTos3OZWJ84+wzXG+T8VBmqwp096Uw511VzCTYSodmhPKIUMsJUxO8GWdhJwU350YVE5Nc1fQ9Crc7rtYPAt1VtPc0NamngELW7R56QV3Qe3ABQcd3tELg/9npIc9Bn4XgcPr7zAj4xoZfqriwGjHQf21d2myVdN3R3A2GoejysZCQAIhOPZyrB0LXb6pWSknPNm+6AUwlvFIBjgK6ysB8gWzIlExUTrwQBQwYf4tyy1V6aY1UeQ==
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=yKmhsdNUzQbr3Ja1zHQ/k6AJXdET1rTC4/GgK9+u1Ts=;
 b=EJ5W4G7ETRvUEmImdh3ajartoslDksez13I3eqDS1sMMzr/H8cZVlhQF5wJf1uGUOtf+VxYHtAslJh8GcnuqoCxpVwJYjuY8DEauFzXdNsUVMCMAbagK2b3+u231rfKmyaJOjzyYTdQA0x6NYhQm1nyLxAoNqZhJWjd5k9z89oQxaPBeNFQ5x1IWvLGLBlLnDPXlzwxuea5UKdUZgm1mjcc6bVfiM74ghayTL9QMfM5HIInmKyImsgAFxotpioUofL/cP56oPn2FmffQI+9o767LKJyO3UH4pPbi1GrJM6A+jk0WUlrZFfH/BPEoHKg2L6Q1eC5sjP+al/YL+eoa1g==
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=yKmhsdNUzQbr3Ja1zHQ/k6AJXdET1rTC4/GgK9+u1Ts=;
 b=Tc7KIypJb/NqvZn1swghK3sz7nNdvLHKzx/ZtyRTwc3/WONEn8ydZuDlmW+xqSyPeFWdqCFYhcHVSXjEy/uce+QJn0vobSLQOaYLPwzoH+vcEvaxbljw5InagbNK/NkazqHvD+dr0P6p4NaJahSGLpFMioCJKQMu0NZQ9wKbSy0=
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=lZEat4D1Ufu/LBe7j5fEI7EA8DvUhGNixFYVR8AhzpTVe7IXrwbcwoh1KJHs2EgZNjze4tg/6wGO4+mr0zNf21D2Zo2xBbswhuxGKIVKvzgv91jrVtm81gQuUm/cnZfq11oAWozUJoZ8wp+KrCZmFxKqjFxbE9clHM5kBUWox2QlYS8z0dzoXvAYRuHChNO6h44RtTTvO3F5nPIKBnhwh9BEc1Mw0FNsr6V9lRKCOJ8/OGWIs2kMZRtufwn1NKBRORDZCvle9uRapXU5gMsp+E+6G2dTXvrzMOaLXntwr40j3NYgzkfJwOMSNQ7bsAN2bhNTaZpOLUaM4tsZCpQ9/Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=yKmhsdNUzQbr3Ja1zHQ/k6AJXdET1rTC4/GgK9+u1Ts=;
 b=GdFBhAPROU/tvfQcviyGYySznWMDRr0J35giTPBZ96BzryND6di4O7eJBb/AZdItTG1e2kxOpD60WxDvIFwzw5aVNUPpcU9pOXQf0CUHGYnWXDW8sNQhf+oHIAGrYKZghu1fqy6dVVAgGUcOgJAWx0epDd/UPhg6GPr1B+jFXGjIJYvnD4D9DhzeqOtsBsKuBCsIpuYsxI50CdQOmb6SwLcMhBDC1zJS3HDQ08LTliSjENk6HqAaYoxdbUCjd8HS+R3ZPv3sQ8ok8fFQ1AqrN7x/U3dB1WESMrgPp6Tzdwwo5OwF+pmiDPKB0DTv67bSkPcsGys+c4XIjTslbcQMmA==
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=yKmhsdNUzQbr3Ja1zHQ/k6AJXdET1rTC4/GgK9+u1Ts=;
 b=Tc7KIypJb/NqvZn1swghK3sz7nNdvLHKzx/ZtyRTwc3/WONEn8ydZuDlmW+xqSyPeFWdqCFYhcHVSXjEy/uce+QJn0vobSLQOaYLPwzoH+vcEvaxbljw5InagbNK/NkazqHvD+dr0P6p4NaJahSGLpFMioCJKQMu0NZQ9wKbSy0=
From: Hari Limaye <Hari.Limaye@arm.com>
To: "Orzel, Michal" <michal.orzel@amd.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Luca
 Fancellu <Luca.Fancellu@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 4/5] arm/mpu: Implement ioremap_attr for MPU
Thread-Topic: [PATCH 4/5] arm/mpu: Implement ioremap_attr for MPU
Thread-Index: AQHcEzkCJOS9/PWe+UmuJdsGAsOPLbR2dO0A
Date: Wed, 27 Aug 2025 12:25:44 +0000
Message-ID: <D815DF92-F23B-4016-84F0-04826A61F684@arm.com>
References: <cover.1753864612.git.hari.limaye@arm.com>
 <ad8cc76fb027efa52e0eb51f6ba7a918fad0ae52.1753864612.git.hari.limaye@arm.com>
 <7b0d40b6-667b-4bce-89b9-397a647b48f2@amd.com>
In-Reply-To: <7b0d40b6-667b-4bce-89b9-397a647b48f2@amd.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	AS2PR08MB8745:EE_|DB9PR08MB7558:EE_|DB1PEPF000509FA:EE_|PAXPR08MB7576:EE_
X-MS-Office365-Filtering-Correlation-Id: d2814177-3fa3-4aa2-da62-08dde564eea0
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|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?bE13ME91RjVuYWdiRi9WSzhRTC9GVWdXS0ppQlhHSDlzMFNCd2IrbG85RGRR?=
 =?utf-8?B?alU0ZlJUeDNNVGVUT2RxYzR6V1N5K1dsT3UvakNPcGFMc1NPd1ZlQ1EwU0Zp?=
 =?utf-8?B?dVk1Y0oxd201cmFzbkNZV0x6ZXU5RDZQSlZRemJsblJrUFNKVDVTUzh5V1FP?=
 =?utf-8?B?dlQrL0I3eFBwdC9DWUt3UllmckFaVG1xS0RIYXNneExrWDRpK3NJZ2RyYkVs?=
 =?utf-8?B?TjZSM1JQZHZoT3UzWEdUdnRCbkVvSTR6M0w1YStreTQ1UEU3Y3M4NWpITzFV?=
 =?utf-8?B?ZnY2QWNRN2xzRi9Ub1ZCY2tScVU1RGZ2RkNaZ1JlTU5SOFByQUZLbEQ0eFZK?=
 =?utf-8?B?dHJ3WmpYY0xOcHYvd3pCeTNaa1dGblFxemZSMk16S1Yyay9YRXdlMEZHb3M0?=
 =?utf-8?B?cXFIbUhMelJOQ0pIcU5CQU9wZXJ5bHduekdiY3NHWHFkbG5rOGJkaEZ4VVZR?=
 =?utf-8?B?RlVXUzUrN2JzNUE1VUFnM3ZsZ1dwekwyQmxENDVkU1pvOExPWkJXaDMrc2xm?=
 =?utf-8?B?TkY3L2VZNERjcU5NV05qZjY2YXNIcTFEZVhjQjdlLzU5QzlwUmplNEgzdnZC?=
 =?utf-8?B?T0RCcEMwbTJNQjd2OUNZOWtZK2RESjRXczk4Q3FaUk5kdHJqc0JCSk9GZ3ZU?=
 =?utf-8?B?Nkt0bGsrdU5FOFJHR2k5TlAwOEFYT3hKR3VXdk03aEdrV2FqZk5rc1hESXVh?=
 =?utf-8?B?ZEZFNjRWSTVIWWM5Y3kyY0o4dlZXQ0NzMGpXSDdXWXcwNW1rRThvd2tXaWlU?=
 =?utf-8?B?VVNUa2hHQnF4QWRpeVZKUWt1VkswRTdneHVCeEZmbGFsVlQ5NmFKc0dFUnNu?=
 =?utf-8?B?SGZWc04zZFB2cGZHRFlBQ25sT3lxUHo0WDZxWGRJLzFhRG43a1Zsb3EvYlNw?=
 =?utf-8?B?ZHBQRVU2MDNDLy9ic0gwa3N1VzNPa1JDdHgxL0dPRVBaZzBWTm9Qa0tabVN6?=
 =?utf-8?B?T1dvNmhNTld6Qi9sQVpWSXM4Qm91Y3BBOGpKRnN5cEY3Nk5xZGJvZXFQMllx?=
 =?utf-8?B?WjVHTVFySitrMEpKell2V0ZDYk1DVDQ1bmMzUWNnd0Q4NjVkYkVGdTYrYXZJ?=
 =?utf-8?B?TFM2WldWaTRhMktZRjNTRW9YNEtzbTZNMkNTN2lFdnM5S2F6R3VrTUZpay9Z?=
 =?utf-8?B?ME9VMjBnOVhHdkxaenJPS3M1bXhpNTZraEhhdWY4cnFkSHNkZksvcDYyYSsw?=
 =?utf-8?B?eXFobk1ZWW8wWE9Eby90NGxyWGxiYjhZTDFqd0NnQm16aTBWRDE2d2JjdlJU?=
 =?utf-8?B?bHRuSHlIZGNuY0Z4VERSWHNGU2xEN2tnM0dQOW01aGRKeFMreTRkbDB6Z1NG?=
 =?utf-8?B?empJSS9EbWRJbndQbEhrUEYwTEROMEhvNTR4S2ZUd0Vqb2R6aWRReWZPTk85?=
 =?utf-8?B?OFNHZnJGVVBsczZmUkZ0SjhoTm9pb3c1dnZucFhadlZ1by9Xc2E2b1d4RnNB?=
 =?utf-8?B?RDEvK3Mydkd2OVJSellRclhkOTkzbTk4UUVXMmpUT0V4Tnpxa1N1SW1mLzR5?=
 =?utf-8?B?eFV1dmkyS1hyM1FHS2lhckZQWmhrcm1XOVdTWnJvS1pBaTdERmJRTVFMQm9P?=
 =?utf-8?B?MkJNZHRubDlOb1VNbytiWDNBK3VBZnhCNDRUV241amtQNUdJU3plVzN1ck5J?=
 =?utf-8?B?M05YMjZOTEFrWkFiQ1hTbmJBOERnMCtBYmRSWStkQjRPWmIxdFB0OUxjQVhu?=
 =?utf-8?B?VTM1RkVqKzNCVVBrekNTUjNuRURFbjBRejE5N0t5NXFPaHpsYmdKVlZEOXFV?=
 =?utf-8?B?b1JFbUQxUDFIQWdLeU1YRktSWlhzUm1ZcHRHZmRoTzFUTFpma0QrTmd3aGZY?=
 =?utf-8?B?RjRoTE9CdFR3UWxOemxZKzNPQ0MvODJQTDg0elg5MnYzd1FLRWlNUUYrTllW?=
 =?utf-8?B?V0NPYmNFaStCLzVhL3lRbUFDeHgzaENWWFVRZnJCUENHcWU5U3YvMUhyTFVH?=
 =?utf-8?B?OUhBYml6TEZGYlJrSmR1dU9vZWxkRHoydEUvaFE0dEYwUE9LRkZUWDlsUHpa?=
 =?utf-8?B?VWhmMEdWOFBRPT0=?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR08MB8745.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <A5FE279E13DF2F4F9C9A310CB50DF90A@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB7558
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB1PEPF000509FA.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	4a12083b-a1d5-4b83-a554-08dde564d8a2
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|35042699022|82310400026|376014|14060799003|1800799024|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?SXpxK1FQaEpZYTBndXJxNi9jUXgxKzlXeldSMVZIQlpPS0daNUVzSlVJYURB?=
 =?utf-8?B?U2JJSFA5Z29jS0ZNcU9na3QzYk9iWFlEdXRjUmpsRmQ5T0t2VmNxaDl5SCtk?=
 =?utf-8?B?TmkxZWdkak13Z0pQbzRXS2xJakhCbGRKR1B1K2p4Rk9ZSW5aTDZBeEVnZGhS?=
 =?utf-8?B?YUlaSDBlaEtlNUoxQ2RWaUR5WmpVY3F6dEFzSFgrUFRTaTlaWnZMRFM3L3BE?=
 =?utf-8?B?MXlRMDF2bjdqTGs5UUppNDI1Q0xCRHNDQWFlU3AvWWtnSzIrd0REa25YUEdB?=
 =?utf-8?B?MVpobGFZVzExaEordml2d1dESkdPWS81eEdSVC9XODdBRG9KQkhtTTR1Wk8w?=
 =?utf-8?B?RENuVGFsTU5qN2tEVXF0emRvWlZJRm5PWWVCQnlXQ1hUSGdGeUdzQ2ZJTVhx?=
 =?utf-8?B?d0R2Y2FUNE5KUW9Cc0VOUXBObHdZN0xvUFM5YmNjeHMzcWN0cFlxRTVyekxh?=
 =?utf-8?B?NVdFbFNSRVM1OE1ZMFF0ZzVQTXBzWmZMd3R3dHA2Tlh2dXVZU3liME96YS9X?=
 =?utf-8?B?Q1hZQ3RXTEYzS3FIa2owdkNneGdJelVES3J4R05rd1BJZk0xS3JXT203V1ho?=
 =?utf-8?B?RjRWNEJsai94Zml5alA0a2V4aGJjOFRkMXpJbE1kbTFkV1pGcFNhNytRaFM5?=
 =?utf-8?B?bkkwVkw2NG9ML0lxK2l2TTJ5M3cxaVNOU2NtQXJ6bHo3ZDRsMEJ6YXZEME5K?=
 =?utf-8?B?dGlLVjVpSVBla1phbHNUcE96Z05YRTlvRDRGWk0ydUQvcDMvbTNnZnFlWE9Z?=
 =?utf-8?B?cFFVTjZLM0liS1VPNHoydFVtb0tsbmR4Q1lHa2lIK1JuYUk4bEdNUVhaY1pq?=
 =?utf-8?B?SU93K0lYdlZCaHF6ZmNCa1N5cEZnREl2dVBGWHJxVUtPbDdGTHBYTFZJYkVD?=
 =?utf-8?B?bkdCa1pNamJWdjJWSnkveU1XeWJNeVpUSCtuWWhwTVVPN2VnL2hVeWRCL0Ro?=
 =?utf-8?B?MkRDQUF4M1krb2lOVkZkdUlzY1g5NWR6b1l1MWQrenFRc0ZHNEw1SzRjaE16?=
 =?utf-8?B?cktRNXIvbk5jYVE1ektZRVp4bzB4MTVTVVFXSU0xVjFBVUthY0tVUmN2TXhz?=
 =?utf-8?B?bVA1S0ZMNFRPV053OWhOdVhhU3p3QlNqMHRJS3hlM2xEdklPdGg4cjZBaXY3?=
 =?utf-8?B?aEJneUgxRDZGdThHa1lBN3ExckFMSS9FVnNkSEdCL0lZayt6Y2dJTHYxakF5?=
 =?utf-8?B?LzhIazJiSWhIaURYZHNPNFU5ajRKUzl6UHc5b0dYN3ZiTzBuK1BZcWxZV2Fl?=
 =?utf-8?B?d2VzNTlPNlM1cm4zSlJla0hpcTFOVElOUVQ4RUpJcmRzYmFGWWlPRjVQQ3Mv?=
 =?utf-8?B?aDFQak9pNldJdi9kSTNKY0RmWGl6My9LdURFbUVvK0JkZlVpOUo1NTUxNmF4?=
 =?utf-8?B?T25HMDhKSWo3MGRkekpCK1VnSG9uQkc0VlA5Wjl6aS9BWHBpNGRhTzNid2dE?=
 =?utf-8?B?N2VwTm1XaE5qQVRpZnBRQUJmaGJwSnlCcXA2UDFVaEppQlhEc1V4Q29Db1pY?=
 =?utf-8?B?WmpXVld2cTR2WW5VUjVsUzZ4QnVYUGhSLy9VZXdVUUVzSVhvN3lxRnhPbHNy?=
 =?utf-8?B?ZUJ4NFAwamw2eUlISDY1aFBRRGUwOXFtbHNldklSYVpXdTFLMzhrME5QalJB?=
 =?utf-8?B?SUdpWnJjOUlWbzNVTk1BU2RMUER2NDVxWHhlQ09XUVAramowZ01taXQ0c1F2?=
 =?utf-8?B?eHFpWHZLUS9CcnpkOXc4S01ENUh0Y3BQRHEweVJQbVRiL3U0bG9ZSzhzam9x?=
 =?utf-8?B?WkhyYkkyOFluN2xwYXZMZkZSWnlwbzZxdVZJVURiTlNwUi9yZ1VxejUvOTY1?=
 =?utf-8?B?aGhMaVd4bHI4aldPZDhReE93enhlWThIczkvRldyd1RuYmM3dmtuMW9kSmNJ?=
 =?utf-8?B?MkRtc1NUSDlsME8rT1Nnc29Gc1dNL3I5bUZTdkJwVHF5aHdYekI3c3k0USsv?=
 =?utf-8?B?V2VtYWdaM3JtcWVCSkVpaGhoZXQrUmhwWkh3dndncXEzR24raUpNMUZjOW9R?=
 =?utf-8?B?Q0h2WUpCbmJkYTFJVFNWS0tNT0RpVitIL1htaFpSMDRQK1B0ZnB6VVNnZTUx?=
 =?utf-8?Q?Aqs4Su?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(35042699022)(82310400026)(376014)(14060799003)(1800799024)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Aug 2025 12:26:21.8510
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d2814177-3fa3-4aa2-da62-08dde564eea0
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:
	DB1PEPF000509FA.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB7576

SGkgTWljaGFsLA0KDQo+PiArICogTWFwcyBhIHRlbXBvcmFyeSByYW5nZSBvZiBtZW1vcnkgd2l0
aCBhdHRyaWJ1dGVzIGBmbGFnc2A7IGlmIHRoZSByYW5nZSBpcw0KPiBXaHkgZG8geW91IGFsd2F5
cyBtZW50aW9uICd0ZW1wb3JhcnknIGluIHRoZSBjb250ZXh0IG9mIHRoZXNlIGZ1bmN0aW9ucz8g
V2hhdA0KPiBwcmV2ZW50cyB1cyBmcm9tIHVzaW5nIHRoZW0gdG8gbWFwIGEgcmVnaW9uIGZvciBh
IGxvbmdlciBwZXJpb2Qgb2YgdGltZT8NCj4gQWxzbywgdGVtcG9yYXJ5IHJhbmdlIGlzIGEgYml0
IGNvbmZ1c2luZyB0ZXJtIGFuZCBzaG91bGQgYmV0dGVyIGJlIHJlcGxhY2VkIHdpdGgNCj4gJ01h
cHMgdGVtcG9yYXJpbHkgYSByYW5nZSBvZiBtZW1vcnkgLi4uJw0KVGhlIGludGVuZGVkIG1lYW5p
bmcgb2Yg4oCZdGVtcG9yYXJ54oCZIGluIHRoZSBjb250ZXh0IG9mIHRoZXNlIGZ1bmN0aW9ucyBp
cyB0aGF0IHRoZSBtYXBwaW5nIGlzIGNyZWF0ZWQsIHVzZWQsIGFuZCB0aGVuIGRlc3Ryb3llZCBp
biBhIHNlcXVlbmNlIGUuZy4gd2hlcmUgbWFwX2RvbWFpbl9wYWdlIGFuZCB1bm1hcF9kb21haW5f
cGFnZSBhcmUgdXNlZC4gVGhlIHRlcm0gdHJhbnNpZW50IGlzIHBvc3NpYmx5IG1vcmUgZml0dGlu
ZyB0aGFuIHRlbXBvcmFyeSwgYW5kIHRoaXMgaXMgdGhlIHRlcm0gdXNlZCBpbiB4ZW4vY29tbW9u
L3BhZ2VfYWxsb2MuYy4gTm90aGluZyBhY3R1YWxseSBwcmV2ZW50cyB1cyBmcm9tIHVzaW5nIHRo
ZW0gdG8gbWFwIGEgcmVnaW9uIGZvciBhIGxvbmdlciBwZXJpb2Qgb2YgdGltZSwgaXQgaXMganVz
dCB0aGF0IHRoZSBpbnRlbmRlZCB1c2Ugb2YgdGhlIEFQSSBpcyBmb3IgdHJhbnNpZW50IG1hcHBp
bmcuIFJlZ2FyZGluZyB0aGUgY29uZnVzaW5nIGNvbW1lbnQgLSBub3RlZCBJIHdpbGwgZml4IHRo
aXMgaW4gdGhlIG5leHQgdmVyc2lvbiBvZiB0aGUgc2VyaWVzLg0KDQo+PiArICogYWxyZWFkeSBt
YXBwZWQgd2l0aCB0aGUgc2FtZSBhdHRyaWJ1dGVzLCBpbmNsdWRpbmcgYW4gaW5jbHVzaXZlIG1h
dGNoLCB0aGUNCj4+ICsgKiBleGlzdGluZyBtYXBwaW5nIGlzIHJldHVybmVkLiBUaGlzIEFQSSBp
cyBpbnRlbmRlZCBmb3IgbWFwcGluZ3MgdGhhdCBleGlzdA0KPiBXaGF0IGFyZSB0aGUgdXNlIGNh
c2VzIHlvdSB3YW50IHRvIGNvdmVyIHRvIHRyeSB0byBtYXAgdGhlIHNhbWUgcmFuZ2Ugd2l0aCB0
aGUNCj4gc2FtZSBhdHRyaWJ1dGVzIG1vcmUgdGhhbiBvbmNlICh3aXRob3V0IHVubWFwcGluZyBp
biB0aGUgbWVhbnRpbWUpPw0KVGhlIHVzZSBjYXNlIGhlcmUgaXMgc29tZSBwbGFjZXMgd2hlcmUg
YSBtZW1vcnkgcmVnaW9uIGlzIHJlcXVlc3RlZCB0aGF0IGhhcyBhbHJlYWR5IGJlZW4gbWFwcGVk
LCBzbyB3ZSB3YW50IHRvIHNpbXBseSByZXR1cm4gdGhlIG1hcHBpbmcuIEZvciBleGFtcGxlIHdo
ZW4gdGhlIGZkdCBpcyByZWxvY2F0ZWQgaW4gc3RhcnRfeGVuIHRoaXMgdXNlcyBhIGNhbGwgdG8g
YHhtYWxsb2NgLCB3aGljaCBldmVudHVhbGx5IGNhbGxzIGBtYXBfZG9tYWluX3BhZ2VgIGZvciBh
biBhZGRyZXNzIGluIHRoZSBzdGF0aWMgaGVhcCB3aGljaCBoYXMgYWxyZWFkeSBiZWVuIG1hcHBl
ZC4NCg0KPj4gKyAqIHRyYW5zaWVudGx5IGZvciBhIHNob3J0IHBlcmlvZCBiZXR3ZWVuIGNhbGxz
IHRvIHRoaXMgZnVuY3Rpb24gYW5kDQo+PiArICogYHVubWFwX21tX3JhbmdlYC4NCj4+ICsgKg0K
Pj4gKyAqIEBwYXJhbSBzdGFydCAgICAgQmFzZSBhZGRyZXNzIG9mIHRoZSByYW5nZSB0byBtYXAg
KGluY2x1c2l2ZSkuDQo+PiArICogQHBhcmFtIGVuZCAgICAgICBMaW1pdCBhZGRyZXNzIG9mIHRo
ZSByYW5nZSB0byBtYXAgKGV4Y2x1c2l2ZSkuDQo+PiArICogQHBhcmFtIGZsYWdzICAgICBGbGFn
cyBmb3IgdGhlIG1lbW9yeSByYW5nZSB0byBtYXAuDQo+PiArICogQHJldHVybiAgICAgICAgICBQ
b2ludGVyIHRvIHN0YXJ0IG9mIHJlZ2lvbiBvbiBzdWNjZXNzLCBOVUxMIG9uIGVycm9yLg0KPj4g
KyAqLw0KPj4gK3ZvaWQgKm1hcF9tbV9yYW5nZShwYWRkcl90IHN0YXJ0LCBwYWRkcl90IGVuZCwg
dW5zaWduZWQgaW50IGZsYWdzKTsNCj4gU28gZmFyLCBhbGwgdGhlIE1QVSByZWxhdGVkIGZ1bmN0
aW9ucyB1c2UgW2Jhc2UsIGxpbWl0KSBpbnN0ZWFkIG9mIFtzdGFydCwgZW5kKS4NCj4gRG8gd2Ug
c2VlIHRoZSBiZW5lZml0IG9mIGRpdmVyZ2luZyBoZXJlPw0KPiANCj4gfk1pY2hhbA0KDQpOb3Rl
ZCwgSSB3aWxsIGFsaWduIHRoaXMgdG8gdXNlIFtiYXNlLCBsaW1pdCkgaW4gdGhlIG5leHQgdmVy
c2lvbiBvZiB0aGUgc2VyaWVzLg0KDQpNYW55IHRoYW5rcywNCkhhcmk=


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 12:31:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 12:31:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1095994.1450811 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urFJg-0003FX-IB; Wed, 27 Aug 2025 12:31:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1095994.1450811; Wed, 27 Aug 2025 12:31: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 1urFJg-0003FQ-F0; Wed, 27 Aug 2025 12:31:52 +0000
Received: by outflank-mailman (input) for mailman id 1095994;
 Wed, 27 Aug 2025 12:31:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Mrvt=3H=arm.com=Hari.Limaye@srs-se1.protection.inumbo.net>)
 id 1urFJe-0003FK-KH
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 12:31:50 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cd93b7aa-8341-11f0-aeb2-fb57b961d000;
 Wed, 27 Aug 2025 14:31:49 +0200 (CEST)
Received: from DUZPR01CA0028.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:46b::7) by DU5PR08MB10703.eurprd08.prod.outlook.com
 (2603:10a6:10:520::12) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.13; Wed, 27 Aug
 2025 12:31:43 +0000
Received: from DB5PEPF00014B96.eurprd02.prod.outlook.com
 (2603:10a6:10:46b:cafe::2b) by DUZPR01CA0028.outlook.office365.com
 (2603:10a6:10:46b::7) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.16 via Frontend Transport; Wed,
 27 Aug 2025 12:31:42 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB5PEPF00014B96.mail.protection.outlook.com (10.167.8.234) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.11
 via Frontend Transport; Wed, 27 Aug 2025 12:31:43 +0000
Received: from AS2PR08MB8745.eurprd08.prod.outlook.com (2603:10a6:20b:55d::22)
 by GVXPR08MB10863.eurprd08.prod.outlook.com (2603:10a6:150:154::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Wed, 27 Aug
 2025 12:31:07 +0000
Received: from AS2PR08MB8745.eurprd08.prod.outlook.com
 ([fe80::a4bd:fd62:e7f:76d5]) by AS2PR08MB8745.eurprd08.prod.outlook.com
 ([fe80::a4bd:fd62:e7f:76d5%5]) with mapi id 15.20.9031.019; Wed, 27 Aug 2025
 12:31: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>
X-Inumbo-ID: cd93b7aa-8341-11f0-aeb2-fb57b961d000
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=oreq64/PJO3gD5HD4KcNWBlJVzSm/pXoZ7mNCNcQBv0Kaw1Npp55W0U5Q7jAfu8wrdZM5w6ZNHEQEqaaPUGxYRrbX5E2BLK0JHMsIrCp4qED6SSc12/KFuzfvgEHeL5Aq8Uj2rB40iJth29CBxg8YmlGGhvCUjcc0gLJUYQsMupWAMjb4TshpAK9qJa1AMuiCTSlcCtUvuVzIyLcWNQCqwt/vl0aM9H4IMSR8mKcH/L7uQE1FKGN91p+Qd/xkH6YIyGcEY2YomRcgcGQEbrZd6fmON8TI+LkiNICPHVebdwmM4K9q092ifEAR8Co2ytAa2vyQa+TRUv0NryinaBmvw==
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=0auZJzDScxk9QiMWFC6lY8/ipGiWJgaq1IQH/u4StOU=;
 b=NtrMjREC2gn6ZjwGGFz53MistWIyq6URaLtByBO1iwzYZzs41rmhNUIf9i9XU+/VlymqbsQT1o6uP9MD4qqdqAXgnuMX1FsPjp1KZ6tT5kOCuS8qAGeK+9HgimSgvvXnVVffFW9H2RsZnUN/pOoTjogbNOCGQn4vHG5VJOUXXB8KM+npjyqqqq3iJTpfdgwxkQ8bXLeLS+99D5yOPABbLrwDRpEJ5Bf4Iai/u+X2Il7lHbWIcU0Afyzg75t4Fs6gcExfWdEO/7zlBI6Pzyd+siYJzHv/t1IVaEbalKhsjaE8+ZmO0bSwlZy0xiaMe2s3TrKNUcdKozEH4sWsvK4rnw==
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=0auZJzDScxk9QiMWFC6lY8/ipGiWJgaq1IQH/u4StOU=;
 b=KYgirwkr35uaLKymyE91tW4UCNB4riM85CiMxkc8S2pjM6R2f2AYlsEugx8GXE11UXUjFFT3NuZIJeedtGtekqNw3Vu0+uDUxsb+BC+yjf+TFz6kFUySjDmKpxETf/27rOzADJLSTZRdWLZyjBbx3SwBp3CK/B3wHpYF7zPSBkQ=
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=mmNo+i8XDnTxoqUVa1TG0SwnhJzhlofS7uGaF91WhYy7v5EISXlK2XH/OUhufVmb+4TW5MIGJkb82RmLeuPgz8BUs8aXu8GQGL4BVw115rXy9TvPXbFHvijR8+CVGN88aaM7gEKVvKwh5oNcPUvleuk/1O4aA749aoQHFc9I1et+jz6FW4xX9Pyboia1cXpKd4ka9YU6WElY4ERNYcsutpE/YnCUHWAy13f8HgKu6Lwhg0t88usf/EVdE4KInJBdomWEt5CcEGVFzLiI9p+oHZCNEonwwahEz4t+S50SzTnedky9pTw9i19nbPiuKz5YWkU6mSaCw65BgSyMPBn84g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0auZJzDScxk9QiMWFC6lY8/ipGiWJgaq1IQH/u4StOU=;
 b=w4pyWlqkvaKcRbCXYwGU1Y+2yi+CoqAYiA0dH5I5sUPe82Sj9WZVoejeTb/JDBfBOPBeP8x6NUXmijBW205ZgKB2+iSG+kLXPkRVqr/YmSDsLw5lO44wnfQzca57yMO2M0xFAUzvHkf9XNtTfev/0ijQRc3wuNcw5gfFhB+TF5QCTkolrhQo5L0XvCanRrbc4jt37hBIXh5K1VTLvI8xnVhYlVhdNEqso/xjSEaUyPykbeeEZI+zazYEDZYtKImiJetRbmKaF2Duxxy29NNbZizbC/oOoj6VwyPIH2ePm8ibKsqqbThTJglN8SEMM/79Vb76p5cZpOu/qFWYR0rn9A==
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=0auZJzDScxk9QiMWFC6lY8/ipGiWJgaq1IQH/u4StOU=;
 b=KYgirwkr35uaLKymyE91tW4UCNB4riM85CiMxkc8S2pjM6R2f2AYlsEugx8GXE11UXUjFFT3NuZIJeedtGtekqNw3Vu0+uDUxsb+BC+yjf+TFz6kFUySjDmKpxETf/27rOzADJLSTZRdWLZyjBbx3SwBp3CK/B3wHpYF7zPSBkQ=
From: Hari Limaye <Hari.Limaye@arm.com>
To: "Orzel, Michal" <michal.orzel@amd.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Luca
 Fancellu <Luca.Fancellu@arm.com>, Penny Zheng <Penny.Zheng@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>, Wei Chen
	<Wei.Chen@arm.com>
Subject: Re: [PATCH 5/5] xen/arm: map static memory on demand
Thread-Topic: [PATCH 5/5] xen/arm: map static memory on demand
Thread-Index: AQHcEzlqos7dHoCXP0W7s7Rjj8N/SbR2dmwA
Date: Wed, 27 Aug 2025 12:31:07 +0000
Message-ID: <7EDCD060-4EC7-4727-B524-225A5FB7A0B7@arm.com>
References: <cover.1753864612.git.hari.limaye@arm.com>
 <c85ac9d6da3c13dabd26627faac90ea95feb3f95.1753864612.git.hari.limaye@arm.com>
 <b12b9c9c-069c-4c45-adc6-5b7026f812f7@amd.com>
In-Reply-To: <b12b9c9c-069c-4c45-adc6-5b7026f812f7@amd.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	AS2PR08MB8745:EE_|GVXPR08MB10863:EE_|DB5PEPF00014B96:EE_|DU5PR08MB10703:EE_
X-MS-Office365-Filtering-Correlation-Id: 0b9676c3-31f5-4dd1-fa73-08dde565ae3c
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|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?iso-8859-1?Q?ADpjoRBy/PaXjB1+Bbh78g7cP819zYqsku9cXHKdcyMxfL79n1slO71AWE?=
 =?iso-8859-1?Q?1ujhzQIuvaB+NOxqmXcua2ooqDskIepn6PM8ZSe8IAZtsrCQ8GAuOGmzLp?=
 =?iso-8859-1?Q?BqN6FLkDcZ3P/OCm6rVQ30m/9G1V/WaXOS3saUPRQ8WRsmzB22HlaY6Anv?=
 =?iso-8859-1?Q?x1L0K8djs9sReewFvFoKup4sRnwQFoXvstXUI2KFHukKSGYk/y7JoDdPtB?=
 =?iso-8859-1?Q?wnqeWhjoNFFuS0iEin6NCEZFCbyqA/iNHpIY5b6ffe4H1g9zVMOmETu9gH?=
 =?iso-8859-1?Q?2DPMZnMcfzLd8kPoslXvj+KIEDgen3irt0Hwdi4aSi+IBHuSBWpji55jYC?=
 =?iso-8859-1?Q?Egc1jtJ9DhsM0GsBa/sYATpdwxvHgChmHCbZAyW8eV2RmMu30zq/bb7qXp?=
 =?iso-8859-1?Q?hg99Ma2QoD0tNw4GBgx6cMdzvnBf7RwqkLLJ+DwecHCJLGxgFbqtj6u3aF?=
 =?iso-8859-1?Q?0gRIcJWJBmCI1BY7/UCw6CnhcY2R7/BFgnDxE/JwCzLJqEj1w1pGFFvsYn?=
 =?iso-8859-1?Q?x02NIfe98oz5kgoiIa4MwKEJMv3V67X50YT7tyr4pqzqEJASu7SE2PHx1B?=
 =?iso-8859-1?Q?pLFu5qruiyqijKFmISYKZn5mK2JYZ2zeCgKuxeBBNXNTrNnWfgSaxvAMvX?=
 =?iso-8859-1?Q?r9ZhrCcq0PSP2w44glFgYiVaoq6VAFVk7711AhKdUmMQj6Fl8Ba5JjWD9/?=
 =?iso-8859-1?Q?QGzX4oRxA0uNfrB2rIsCltZDyAZ3Xbm7BwLpyJBkf76TDWJR48bVDVyoly?=
 =?iso-8859-1?Q?W2sHmeR2AT/73bM7kiTm+3Nse1/sASax5aGZ6Z0Pw9ExRKTUGj18iWZ84g?=
 =?iso-8859-1?Q?8rZRCx1zWjvrz7aprdUXzrFKAP0/d1U2Z1ltFJWaafbjDagZVo7hJaTqaW?=
 =?iso-8859-1?Q?qdcXW8AJkEEG8+a2s6TfIvpRiNx0yZ1ithsOAgvztqISv5LhLLMjGmRrqq?=
 =?iso-8859-1?Q?WIa2TIyQRhLBLDHwRniGXxNSvoKOv7uE3QNhQ15pV0PIfPBdN6bTI2bLUT?=
 =?iso-8859-1?Q?gPTgj+JS866rVvOSyM2/QfF0mi+fpEw6C5KUFhiX6YDbWPa4xmb0eoTnIv?=
 =?iso-8859-1?Q?GdERlnXK3Xx444CKnLJfhET/h2x4RyCtmIPXQQhuX2u/iAjlSL2iHVIv8P?=
 =?iso-8859-1?Q?ktW1F84RGADywItP8P5t23xvomwHbVhvVlWPCQtVjXtFWwdjXZtdTR2vVv?=
 =?iso-8859-1?Q?AHVkIChJCPlgKD+918s24uESdswT2DKJQHAMdzx+HRlTU68Tr6bYEGyxNQ?=
 =?iso-8859-1?Q?XiE2hrrT1GPJuy6pD1xxyU2bjdvh4oxo+lD3MrL2bcJU9jV66UJoTEJGOM?=
 =?iso-8859-1?Q?I2S8mG4fTacrySmQEzvYGhdGJR3vWaebU53baPevnuKMnHgB36AQZJHVOy?=
 =?iso-8859-1?Q?piFqqWGTfhEGpewxH9Zcu6oOM12tkUF0LveS5Rr7rCutDuQbNe5bj1e+Y2?=
 =?iso-8859-1?Q?yIhW4LjazBKIaeVH0Zs4W05Bebln4UnF9ifEbOox7ft2c/ueprYqeTfQCL?=
 =?iso-8859-1?Q?FDous52oE/9FMS7OhPKLQ2gIpcbtBgJL3vK0svGohYHA=3D=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR08MB8745.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <BEA81DF110A0E24FA746DAF73238F3CC@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR08MB10863
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5PEPF00014B96.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	201c0440-9b56-4571-c237-08dde56598cb
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|36860700013|82310400026|35042699022|14060799003|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?iso-8859-1?Q?EhSOn1VegX9lDorN2PwlFNjfeBMeV7SuJF85cFsFHZC1l1yW26d6eNVmS+?=
 =?iso-8859-1?Q?C3P1FxYSWFnVHwfXZ5ZZ/MJihWq+nZO2cR68dRsDGtw4SaWoIx83a2NG/V?=
 =?iso-8859-1?Q?ZVClISDOVe4kRMulYxGTpmREeiavZLw1TmEVpAmKnvNFYVUTbT6KxnSz8X?=
 =?iso-8859-1?Q?sZf8FqR3NvK6V3ihtPoQzBlJpEmT4HtoSnw6Vf8nXmZGcB+Hu8NBag4t9e?=
 =?iso-8859-1?Q?YDjiLpSnIa1bhwwEpFVyc2r77mOHrxDWXTAZT+ZLvx0FQo3MpAwWUloKaR?=
 =?iso-8859-1?Q?2y2ePMLZnmCLdHOtr2ridtuBz98U+dtSp9o9eCVccqTayy9E+gFeZWbsQ7?=
 =?iso-8859-1?Q?Idr0K6Ozpm4+jkcF7n4+0Oxu7UN9oCP+bVUYqbtO52qQ/1ITSdK+BnxrFB?=
 =?iso-8859-1?Q?0gkZiIzEtNbEYZ0t3GidSZ9z/4b5gr9UiAh4PCuwQiqbdQTkWol9E7JhUg?=
 =?iso-8859-1?Q?XEMsXmlmZIZ1axlpAnscUGAyhf8ltM1GRkg7zSbJoHIHCzDOOsNblmpeBY?=
 =?iso-8859-1?Q?4gnpo297iZF9VAnXIq+4S6pr/M3mMaahYFjcp2/v2ojfFbYXJO8IOf0vBk?=
 =?iso-8859-1?Q?aaEM+dGrNK/XJs7zQ1WdjK2SaSgOnPyolnzOWtT9okt1cOoDH8R4COwvq0?=
 =?iso-8859-1?Q?lIP1eaphlf0KVeplT+3Y6LytFVfpdd3Z4F/Npi4T2OZeAe3EIOkDUKv2qv?=
 =?iso-8859-1?Q?7lUxdxxsb6yLp3N9hm3/ShldvM+ju+pY2Sbioyz6dNrls0uZYP4VJbsYU4?=
 =?iso-8859-1?Q?OFi3rObW3Y30IYG9BqMDPHYw9qtL5P2AqQMef+VgJyY66tDmrbjtrwvn6g?=
 =?iso-8859-1?Q?usyqVlGUX5HUtO7+kgYFQiInXPiIQer2CGjMLI7BV84Jp2WrZGyRasSp10?=
 =?iso-8859-1?Q?+0EKv/rJT6BjhP2ppxZK39Vb8Wu797i6ObP7xA0HoZyP9jQLQuOz5aZEvs?=
 =?iso-8859-1?Q?wyMiQE+9J1s3FmE7H0spmR9vkiSIBT3z4cYw8uXtEWcFoYd3RvXh9I6cRY?=
 =?iso-8859-1?Q?tiiEKUrDYSqK8QNA8yAsyhfEtHmbBUipk5erJHnV5Cfgdtz6RAAe9+B9MX?=
 =?iso-8859-1?Q?qkELesUqNNtj9RulFwoggluRHYdR2xs59OysLRmljwKZCfk7zuplRfplUO?=
 =?iso-8859-1?Q?QP964T9MG4P78E49DEDMk5jLw5Ho1q2UstAFYXF4A07qzEiiV9fVfefNAG?=
 =?iso-8859-1?Q?eS34j3iErbOM5Npn6bwhQ9P4qvXsrMfhzK3DwfiEioB5bPPTvFYuwNVz1K?=
 =?iso-8859-1?Q?uT78pti2c0axHBkqTX3B4quERrm6WXtKI9czxzHJRaPPTWa3jSqFa/RB8w?=
 =?iso-8859-1?Q?IYPMJHvYklJHGEgl2kcUn9mG6cbE1hk4SaUdo7/pNW4yLFGbmcEDU+43g5?=
 =?iso-8859-1?Q?ubaF3NQZp/v4wtZEEGkitqma8471+SL3BWUM0ZaGFU6FgSNuxyu0MNE4kh?=
 =?iso-8859-1?Q?0BiUk8T99F+1T5Neu4Fusi7PAjODyNQw/gge0FB7/Yjqwn6ncQ53bMP3Vz?=
 =?iso-8859-1?Q?MDVvSIS3q/ZzNNbc/1AVP3Pgtquh4SB+7D/MDGMQS03V5xtNlS+GW7242C?=
 =?iso-8859-1?Q?OWGsaHbYxttNrMtHfXBFoaDN8SCN?=
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)(36860700013)(82310400026)(35042699022)(14060799003)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Aug 2025 12:31:43.3186
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0b9676c3-31f5-4dd1-fa73-08dde565ae3c
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:
	DB5PEPF00014B96.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU5PR08MB10703

Hi Michal,

> On 22 Aug 2025, at 08:50, Orzel, Michal <michal.orzel@amd.com> wrote:
>=20
>=20
>=20
> On 30/07/2025 10:45, Hari Limaye wrote:
>> From: Penny Zheng <Penny.Zheng@arm.com>
>>=20
>> In the function `init_staticmem_pages` we need to have mapped static
>> memory banks for initialization. Unlike on an MMU system, we cannot map
>> the entire RAM on an MPU system as we have a limited number of MPU
>> memory regions. To solve this, transiently map the static memory banks
>> for initialization.
> How does this correspond to Arm32 MPU (R52), where all of the RAM will be
> covered? I don't think 'transient' mappings will be needed there but all =
of your
> work targets common (i.e. not only Arm64) MPU code.
>=20
> ~Michal
>=20

Hm fair point - when this series was submitted to the ML, I had no knowledg=
e of the intention for all of the RAM to be mapped on Arm32 MPU systems and=
 imagined that things would be more aligned here.=20

Are happy for this to remain common for now? Or would you prefer it to be s=
plit off?

Many thanks,
Hari=


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 12:33:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 12:33:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096004.1450821 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urFLS-0003mq-Sl; Wed, 27 Aug 2025 12:33:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096004.1450821; Wed, 27 Aug 2025 12:33: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 1urFLS-0003mj-Pb; Wed, 27 Aug 2025 12:33:42 +0000
Received: by outflank-mailman (input) for mailman id 1096004;
 Wed, 27 Aug 2025 12:33:41 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=0E1g=3H=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1urFLR-0003md-Gp
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 12:33:41 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0fb2997a-8342-11f0-aeb2-fb57b961d000;
 Wed, 27 Aug 2025 14:33:40 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-45b49f7aaf5so41276295e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 27 Aug 2025 05:33:40 -0700 (PDT)
Received: from localhost.localdomain ([87.114.69.104])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3cb901975adsm6589141f8f.8.2025.08.27.05.33.38
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 27 Aug 2025 05:33: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>
X-Inumbo-ID: 0fb2997a-8342-11f0-aeb2-fb57b961d000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1756298019; x=1756902819; 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=Rbux99ex3cU0nog0VEpdTqXoplhetdpwz/JQ8/H1D5I=;
        b=edoSMQYD6mzRNUBBlYw67XkFNN+W8SfnI93x3iCmPXIPHeImCtJ+vxbEo6zq0NDzQc
         PukyLUJqFEo2tTP/dYQJxEDCQROCVvtL0tnIrbBpaxmgZ0yu0Zr7XF4CRZlrheQ0WPi3
         nFY2a3lDCT+btob+cHzDL3obAe7PFqGI9qg0k=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756298019; x=1756902819;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=Rbux99ex3cU0nog0VEpdTqXoplhetdpwz/JQ8/H1D5I=;
        b=EFRSI92WUC2VNFyzkmsU96oLA3eziZqSVC9kKGjNuqm68YWhgMlAx6AzC5sZq6Bt5C
         nv4QDtoluxPbRZ2cI8UaoAheXtQwZscsn0YUDIGOZxbwsQv5NU0iXdAgTOIzIi8PrpkN
         TlWsgBVQQ/SVX6n3Mr82r1Y2LmTE+eliZ5HrZVnXp+U5gHPgAeMwtuEkzwLaXuknrfW0
         yQ1wEI532vqyx9j7RLP7V1uc9w8YInkHit9HBQzC8wdPXA/yEq7Vbagk1fjCye29DKe7
         9deza/cXu5QX/yNkYEIGBoCEL+fPYfMabXSW80GNBVQOaAtnG5FjLlEl5VRdlxbnyKO2
         XUlg==
X-Gm-Message-State: AOJu0YypGC5L1NO24hWd40Iax4nCuUL0Tr8qUNiIwc2hPOBjFtUqPNVn
	9/fwQMzxpeBQTkh3bm3gOGnZGG9m8tgePcgh0mUVZu9LUswISg88Q8A+xa0JiK2Cdyyd3JF1q/d
	zroT4m+g=
X-Gm-Gg: ASbGncsnrdFXSUrEBqluO0EXfWA0FfYYJN+Dcl7lE2YbB76qL8FNRvfrRuin5lCegDU
	wC2UfNAsLYVX5FpJJCO832Sb9hHwN/s6iCh6ws9SHpg8bkAeNpF2WwDjBSAhRTF2JujGbItJDYg
	eAbKISFENwR3mCn9M2gn8KiOxMhbZOF49p7j37mgsLm+AXvYjTnb5TuZQ0uK2mtQaGi09vYD/Ki
	xvtsZQSvFd5+b8NYGHO5bhh5EQOw3Pld+y8CK0H2474kUqoBmUme43Tnpt3lVdQC+fWJOs18PtR
	TTV8SViTiGvmXr6OuECuP1ovHrR0acP8skuoC4GT5KtBg6hbejQVsPaH8pc/pNnN4VOJw35Ddr8
	2rBq3pKEndbcTawvF0Y+TQLgbqj5Kj1LlmVD4DyxM3Q==
X-Google-Smtp-Source: AGHT+IHGM05F58JjSKkC38WkyurLdSdDS1PUL81n3ViyxrnjEy0FTMLXwETjGGL70b/siJ1Eu3jSyg==
X-Received: by 2002:a05:600c:4348:b0:459:d616:25c5 with SMTP id 5b1f17b1804b1-45b5213bb88mr114852915e9.12.1756298019562;
        Wed, 27 Aug 2025 05:33:39 -0700 (PDT)
From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH] Optimise restore memory allocation
Date: Wed, 27 Aug 2025 13:33:04 +0100
Message-ID: <20250827123309.39699-1-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Try to allocate larger order pages.
With some test memory program stressing TLB (many small random
memory accesses) you can get 15% performance improves.
On the first memory iteration the sender is currently sending
memory in 4mb aligned chunks which allows the receiver to
allocate most pages as 2mb superpages instead of single 4kb pages.

Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
---
 tools/libs/guest/xg_sr_restore.c | 39 ++++++++++++++++++++++++++++----
 1 file changed, 35 insertions(+), 4 deletions(-)

diff --git a/tools/libs/guest/xg_sr_restore.c b/tools/libs/guest/xg_sr_restore.c
index 06231ca826..8dcb1b19c5 100644
--- a/tools/libs/guest/xg_sr_restore.c
+++ b/tools/libs/guest/xg_sr_restore.c
@@ -129,6 +129,8 @@ static int pfn_set_populated(struct xc_sr_context *ctx, xen_pfn_t pfn)
     return 0;
 }
 
+#define IS_POWER_OF_2(n) (((n) & ((n) - 1)) == 0)
+
 /*
  * Given a set of pfns, obtain memory from Xen to fill the physmap for the
  * unpopulated subset.  If types is NULL, no page type checking is performed
@@ -141,6 +143,7 @@ int populate_pfns(struct xc_sr_context *ctx, unsigned int count,
     xen_pfn_t *mfns = malloc(count * sizeof(*mfns)),
         *pfns = malloc(count * sizeof(*pfns));
     unsigned int i, nr_pfns = 0;
+    bool contiguous = true;
     int rc = -1;
 
     if ( !mfns || !pfns )
@@ -159,18 +162,46 @@ int populate_pfns(struct xc_sr_context *ctx, unsigned int count,
             if ( rc )
                 goto err;
             pfns[nr_pfns] = mfns[nr_pfns] = original_pfns[i];
+            if ( pfns[nr_pfns] != pfns[0] + nr_pfns )
+                contiguous = false;
             ++nr_pfns;
         }
     }
 
     if ( nr_pfns )
     {
-        rc = xc_domain_populate_physmap_exact(
-            xch, ctx->domid, nr_pfns, 0, 0, mfns);
+        /* try optimizing using larger order */
+        rc = -1;
+        /*
+         * The "nr_pfns <= (1 << 18)" check is mainly for paranoia, it should
+         * never happen, the sender would have to send a really large packet.
+         */
+        if ( contiguous && nr_pfns <= (1 << 18) &&
+             IS_POWER_OF_2(nr_pfns) && (pfns[0] & (nr_pfns - 1)) == 0 )
+        {
+            const unsigned int extent_order = __builtin_ffs(nr_pfns) - 1;
+
+            rc = xc_domain_populate_physmap_exact(
+                xch, ctx->domid, 1, extent_order, 0, mfns);
+            if ( rc )
+                mfns[0] = pfns[0];
+            else
+            {
+                for ( i = 1; i < nr_pfns; ++i )
+                    mfns[i] = mfns[0] + i;
+            }
+        }
+
+        /* if using larger order fails fall back to single pages */
         if ( rc )
         {
-            PERROR("Failed to populate physmap");
-            goto err;
+            rc = xc_domain_populate_physmap_exact(
+                xch, ctx->domid, nr_pfns, 0, 0, mfns);
+            if ( rc )
+            {
+                PERROR("Failed to populate physmap");
+                goto err;
+            }
         }
 
         for ( i = 0; i < nr_pfns; ++i )
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Aug 27 13:19:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 13:19:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096014.1450831 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urG3f-0000e4-0m; Wed, 27 Aug 2025 13:19:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096014.1450831; Wed, 27 Aug 2025 13: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 1urG3e-0000dx-Tc; Wed, 27 Aug 2025 13:19:22 +0000
Received: by outflank-mailman (input) for mailman id 1096014;
 Wed, 27 Aug 2025 13:19:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=n4tM=3H=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1urG3e-0000dr-2S
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 13:19:22 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on2060e.outbound.protection.outlook.com
 [2a01:111:f403:2418::60e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6f697f89-8348-11f0-aeb2-fb57b961d000;
 Wed, 27 Aug 2025 15:19:19 +0200 (CEST)
Received: from BN1PR10CA0012.namprd10.prod.outlook.com (2603:10b6:408:e0::17)
 by DS0PR12MB8503.namprd12.prod.outlook.com (2603:10b6:8:15a::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Wed, 27 Aug
 2025 13:19:14 +0000
Received: from BN3PEPF0000B36F.namprd21.prod.outlook.com (2603:10b6:408:e0::4)
 by BN1PR10CA0012.outlook.office365.com (2603:10b6:408:e0::17) with
 Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.20
 via Frontend Transport; Wed, 27 Aug 2025 13:19:12 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BN3PEPF0000B36F.mail.protection.outlook.com (10.167.243.166) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9094.0 via Frontend Transport; Wed, 27 Aug 2025 13:19:12 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 27 Aug
 2025 08:19:10 -0500
Received: from [172.31.63.243] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 27 Aug 2025 08:19: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>
X-Inumbo-ID: 6f697f89-8348-11f0-aeb2-fb57b961d000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UGagWUl5drSypdrutre4kNzMKwShZeuzofNAOipfcwLlOEoAkBz0um/bUhOJt/PU4dkykddGM7W6VFssrMvI6laYsRPe9JQPNVWLgcB19Tb9UOPnigpzClENcoXFCzw6+B/XDkqx7x3z0t81REffTlg2XF0NRC/Ln3PPGa8/iewNyCD3NB/h/Fw3AlFeCJIWJC4LszDcDi6LpaGTc8JWYQgf74AlYIQBE8394c65atwX2y4+Ni776qo1CBUn74bsdGT9ws7w4375YIyi12vfKsMxoprFxj3+u0UMV5luH/Iwy4mFs7iP2wcP2vmOtAk3xLqV4vOGr5cmdocbiT63Ww==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=KyjzUob1uy0Vqyna53Q1B04376b7ib8w6l4RLlZvr3I=;
 b=ZRdrTOdaN7TaOjGUAMEfhawrAccSLiTYSfEGPwDd3KytL88gTHN/aiDrkQbcifWebg1yGAArL+4OQLtqwNjy9037VQJwTZ9DG4r27aXIR4yNdbIjLTh5XV2vMzSsdKtI7CjhU6kJ7rZE/CnHL63acNqF/zfUmOcvcX3sWBhzn5nxRk8YsV0gfuAj7fhbgr0VsS3HK74yIPSJFnW8KOtu9G6ZJYYz8Jhd1MUM5HSZ0IyM3Zc77vLumX349guQFojfbvcT4sgDKa099lIhOLkykfX1LJeM9O+BfuuFYsBH/NMaF8dnBt+v9LwEgvdZ+dX32v1gWBagig+iqq4vh7jPsw==
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=KyjzUob1uy0Vqyna53Q1B04376b7ib8w6l4RLlZvr3I=;
 b=LpooXRmJgg6XseuU963V9EVZWRCM3Ou4CbUEFmA1U1KxvkpxYl7Y8lSVV9Qd338/0/9SalpCGfKDqPZ+0dU9Itreijkz20Ygpz7pUyb+XnTaOqtTelcFk9r7J8tRtrlG2PbeZ7AWUpw7bDhhmhCwrl4dFiDuGBwnxXAPAeP87CI=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <efe407de-87e5-4434-a434-4d513b50f52c@amd.com>
Date: Wed, 27 Aug 2025 09:19:42 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 8/8] xen/dom0less: store xenstore event channel in page
To: Jan Beulich <jbeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel
	<michal.orzel@amd.com>, <xen-devel@lists.xenproject.org>
References: <20250826210847.126015-1-jason.andryuk@amd.com>
 <20250826210847.126015-9-jason.andryuk@amd.com>
 <609d686e-a41c-47f4-9e5d-3733e9ec7723@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <609d686e-a41c-47f4-9e5d-3733e9ec7723@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB04.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN3PEPF0000B36F:EE_|DS0PR12MB8503:EE_
X-MS-Office365-Filtering-Correlation-Id: d72ebb20-4d4b-4808-c5c8-08dde56c5089
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?QjhGNVpjdUlSZ0p0WWVzTzRSQUpVUFJhTlg5djFwUDlZYzdneU1va054OHY1?=
 =?utf-8?B?MURFSUtEVzRmWXFpVStLNkhZeHcrQVFxbklnUTI3STFNOHNwMWZzVjBwcWNW?=
 =?utf-8?B?c2VPMUpMYjhUK0h5V3c5dTdNOHF4d29CZkpvTDNCbWRyS2pMMXFVMFpHN1Mx?=
 =?utf-8?B?cmswSkFGSnViMHJPVTZqRW40Qnorb3pkR1lHT0FRKzZNWnZwc2JRRWFwVExy?=
 =?utf-8?B?bGJOUFZRc3BFSEF5bmJKVnFISzVtTDNyNGN0RGRVYW1MM0pKaWg0SE5TdnJC?=
 =?utf-8?B?bEtnL2VHZG5Cc3lmNTVWYW5wSm1PRjVnQzdYMkJBVWlCZ25EVWtkZGp6US90?=
 =?utf-8?B?OWFLNHNvSTNQRU9ERTZId1k2QUN3SDNUKytHVmMrWkdxVERlck5jTnl2SXB5?=
 =?utf-8?B?S2lQVlhjT3JvQ1NiQ3pHc0dkSXdaaXExczZ6TFdZVnFicm14M3oxa2M5SFRi?=
 =?utf-8?B?clMwS1VCK1ZYVFZzU3RUYkNRcklpQnM2blgrcVRKVGxTazRVdndMS1ZkdHR0?=
 =?utf-8?B?bFJJTXlDM25TcTFqMWZ5UHorTHJvckQvM1lORERLNks3WjlTTWJ6eDYyZ3dU?=
 =?utf-8?B?bXZETUR3WjFNUEJPb3dBRXlseEpJOVJ3czN0SnBldGp5TmhxK09RaVJEOVVx?=
 =?utf-8?B?S2loR2FnSnVRN2FnQXJKOUpEZkxYRW5qaENVT1pncWd0d1F5UUlTc2FNR2FE?=
 =?utf-8?B?R0ZOWDFna2dJTGJUNyt0a3VsMHM2enNnVVlqUHNTTmptUXgrNWxuYTFQQWYx?=
 =?utf-8?B?VXJhS1ArR3JVRE9XUHR3R3BLL05EQ0pEOVFEMEUvMXB5RHlia3dTUEdZUlFu?=
 =?utf-8?B?RDhuRW9NSXE2OXo4bStxak1BM0tUbDdxOCsrdnRRMk9JWmpVMHkyNklIOTZo?=
 =?utf-8?B?TEJTbEhTWlZueXJ1ajRpTkhxQlFhVHVzd2dsL0JIMEtjaVp5MXp2VVFDYlg4?=
 =?utf-8?B?OE5WTEd1NTRQWTJ1U3dFZUhjVmY2RGtqejhGRys5cGZxd3R1QUM2UWdvRlJv?=
 =?utf-8?B?YVlaVUtId3VtaXdxcnJDbjlacHpwMzhCT0o3cUZnQUgvQlYzMXNySGtTcy83?=
 =?utf-8?B?T0FZNG4vMWM2UGE2a0s1OXhHSG00QysyMlgrVHhHNHJPWU40OXdzUUZxb3hT?=
 =?utf-8?B?REgraHhJUUF3aXRCM05rckVBbFhiMjdwVUJMOVZLZ29FajIrUWc2ajRkM3o2?=
 =?utf-8?B?R0NBWVlsVkloRXZvQkg1UjgrQjRwNkNSUm9zL2pMOWRlM2Rod2FIMnBINzhK?=
 =?utf-8?B?RWJCdmo2U291U2ZBSitFRG1WM1NmNHRzTFZGKzlOc29Yb3IxWXpwNzAzbm1B?=
 =?utf-8?B?RDNBY1U0akZKSGJma1ZzZ0o3Q1BYUzZrRVJ6TkgwU2taRy9VcElUOUlWSEFY?=
 =?utf-8?B?SzV4UDdmc2tKV2lIYUhUbU1VbXZUWld4VVpJb2g2ZFlmN3h2WDN3WFZsWElB?=
 =?utf-8?B?MitsVEkyekhvSUhrS3o0MUI1akJ4SVY4YTVwRGE2aXBpaGxtRWFGYUxQQnNW?=
 =?utf-8?B?eXdZcUYxRHVLemEvM2tLUmc4L2RYY3BrbGk3WE50a01VSTExa1FJQU1xYkZi?=
 =?utf-8?B?THpPZjAzNGVkQWt4NktZUEZ1WlFXUlVvOTFkM0pWRUlCY0lDbzlSTkVpY0hT?=
 =?utf-8?B?bGZ3NkZLcXJWUUVHS1ZoTjBpdkl6OHRzMGxiUlMvMEF4Znk2U2l6cXpvd0Jt?=
 =?utf-8?B?Y0tzUXk4SWpkSkdPb3lvUFRLb2wvMytyRVhPWXV1MVlVYWhzemcyUHg1UUlD?=
 =?utf-8?B?QkJLVld6cUhBZXpqQVhSMTBHK2pUQVIxUTdyWHc1Z1h5SmpONnphSGJNTkdH?=
 =?utf-8?B?V0lGMjVHZHc3SUw1RUtQSGovcFo5Q3JnTUJ4K2xGVnN0UzZMY3ljNjFrSmRm?=
 =?utf-8?B?ZGowUlQySGlza3JMeHFsODdaZWFwOVlhU0gxMXFLdlV6SE4rWnU3OUxLR1JK?=
 =?utf-8?B?c3puRnRVdTBManJIaTNnRDlORFQ4M3V0MkdoNGQzblJTSWZHWjlObEs0UHVG?=
 =?utf-8?B?OXZQR09IblhCa054bzhTNnA0MXdia2czRzNHc0JQTDJEclJlV2V4WXJvTDJu?=
 =?utf-8?Q?xRFVM7?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(1800799024)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Aug 2025 13:19:12.6502
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d72ebb20-4d4b-4808-c5c8-08dde56c5089
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN3PEPF0000B36F.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB8503

On 2025-08-27 03:58, Jan Beulich wrote:
> On 26.08.2025 23:08, Jason Andryuk wrote:
>> --- a/xen/common/device-tree/dom0less-build.c
>> +++ b/xen/common/device-tree/dom0less-build.c
>> @@ -26,6 +26,7 @@
>>   #include <public/event_channel.h>
>>   #include <public/io/xs_wire.h>
>>   
>> +#include <asm/guest_access.h>
>>   #include <asm/setup.h>
>>   
>>   #include <xen/static-memory.h>
>> @@ -120,8 +121,14 @@ static void __init initialize_domU_xenstore(void)
>>   
>>           if ( gfn != XENSTORE_PFN_LATE_ALLOC && IS_ENABLED(CONFIG_GRANT_TABLE) )
>>           {
>> +            evtchn_port_t port = d->arch.hvm.params[HVM_PARAM_STORE_EVTCHN];
>> +            paddr_t evtchn_gaddr = gfn_to_gaddr(_gfn(gfn)) +
>> +                offsetof(struct xenstore_domain_interface, evtchn_port);
>> +
>>               ASSERT(gfn < UINT32_MAX);
>>               gnttab_seed_entry(d, GNTTAB_RESERVED_XENSTORE, xs_domid, gfn);
>> +            access_guest_memory_by_gpa(d, evtchn_gaddr, &port, sizeof(port),
>> +                                       true /* is_write */);
> 
> Isn't the use of an arch-specific function going to pose yet another issue
> for making this code usable on x86? Can't you use copy_to_guest_phys() here?
> Which may in turn need to be passed in by the caller, see e.g. dtb_load()
> and initrd_load() (i.e. cache flushing may also be necessary for Arm).

Yes, that could be done, but it's not my preferred approach.  Using a 
function pointer to pass a compile time constant seems to me like a 
misuse of a function pointer.

I'd rather each arch using dom0less define:
unsigned long copy_to_guest_phys(struct domain *d,
                                  paddr_t gpa,
                                  void *buf,
                                  unsigned int len);

Which does the correct thing for the arch.

Alejandro was able to re-work things to re-use the dom0less parsing code 
(dom0less-bindings.c), but he has so far kept the x86 domain 
construction separate such that it does not use dom0less-build.c.  So I 
don't know how that will shake out.

But, yeah, I can just pass in a function pointer if that is what is 
agreed upon.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 13:22:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 13:22:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096028.1450841 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urG6V-0002Hz-Jq; Wed, 27 Aug 2025 13:22:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096028.1450841; Wed, 27 Aug 2025 13:22: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 1urG6V-0002Hs-G1; Wed, 27 Aug 2025 13:22:19 +0000
Received: by outflank-mailman (input) for mailman id 1096028;
 Wed, 27 Aug 2025 13:22:18 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=x+iP=3H=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1urG6U-0002Hm-Ih
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 13:22:18 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id da39dbcf-8348-11f0-aeb2-fb57b961d000;
 Wed, 27 Aug 2025 15:22:17 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by DU0PR03MB8670.eurprd03.prod.outlook.com (2603:10a6:10:3ea::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.19; Wed, 27 Aug
 2025 13:22:14 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Wed, 27 Aug 2025
 13:22: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>
X-Inumbo-ID: da39dbcf-8348-11f0-aeb2-fb57b961d000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Vba37Uk/1hQMb5voSJTIGInXQfF/uirv2QNX6SgRTOzhObd+5blLfL74xEAYnZEdmOKu+00v2DN986TfU+wWaXU8c9Nu598uc5R9e+XiH5NTxDBoBfwI4B/ZtiMhwAnp7V6Eoc9pWiOlSPYxWk39kBJAJUfysm4wAG0v0w5lRzr78wobOcV/Smus7ISwnX3FIw3VK+rUTamtYhN3j7QV9xhc5t8CTgGqbJdiZxCo2EQcJTfFj0IkNGcDshTZ1vT0lyA9aeaGlk6D2vrbypGS2OohLUXdSS/iMCIQ3JSfypchfA14UgwSQcT2NERFwtAxSm4qyNOLBAB2ayAQh7/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=6UMzgQsEmCHV6Uq+B6EH0fbibamMVFBenlnQ6uAobVM=;
 b=DQUyFu/Qm+/gDVJ02BCK7muptJkG+blKjQ2igR4p7cr7JeXMH8Co1OKcYMJ2ALwzp4fJ0ZWlK7V3amCiYj65cqgMkVjuvN0bB8+UVa3fjPYuO+JIRLVvCgfIxnN4sXXOGq/vMNOGRfZc4hHfq+ADoPMIZFuXYCI1wSg5gonbzavTPE5iOuMovPwkrinfcwYmi8Y/yneo8YkdHjvfWpO9GsYEODC5TwAikMBjIwcaRlkAuO9ukewt6wIjrdBua1C/yjHAH1tOh/z5E20DhacpDKJZ06+3tTi31DloyBuZUhnTdbq7A8uzBNNj5ibI4rHFKx1CiXzdO8klNY9Qmrs6gQ==
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=6UMzgQsEmCHV6Uq+B6EH0fbibamMVFBenlnQ6uAobVM=;
 b=Gk5dxpr+EZr/dfrlkF/JOnl6II6rwTsf8Fbm+KSGnkEjwSiTgcpVMM9J4KcbL8RfrXdmPa9hZnpJq4iz0rKTCDyzkcU1SRtUTksR1FO9g7mVYoTpeSgdIJa8AV7X15ndYNz57I5fxnRJK3RTexJGC3kvJSco41oAdW/Wy7fuGJADNlN3yJ3wbXoickhhM8Bs4ZJHn1JhEW5mGr+UOiixX9SKGlJ2llcOH3d97WN6OJjUkQ2+2pVKrfdpsw+yb25PpZB6UXakQVmBvXe85X9I7mu0lrE0TkzepB15M4jfq4PmEiNSrXW4QktTp97MPQkfIJH1cnS2Qwqpw8E2gzjxqA==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: Oleksandr Tyshchenko <olekstysh@gmail.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel
	<michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v3 04/11] xen/arm/irq: add handling for IRQs in the eSPI
 range
Thread-Topic: [PATCH v3 04/11] xen/arm/irq: add handling for IRQs in the eSPI
 range
Thread-Index: AQHcFpJ/t39ssss6a0y8SPAQeD5PELR2DE4AgABxwIA=
Date: Wed, 27 Aug 2025 13:22:13 +0000
Message-ID: <1d26daaf-f50d-4199-8c98-520f9828e26e@epam.com>
References: <cover.1756216942.git.leonid_komarianskyi@epam.com>
 <8b42416d779537d6a0ac4902cabc549253b9da9d.1756216943.git.leonid_komarianskyi@epam.com>
 <54db12d6-cee3-4e5a-8fc7-d7686dc52d9d@gmail.com>
In-Reply-To: <54db12d6-cee3-4e5a-8fc7-d7686dc52d9d@gmail.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: GV2PR03MB8678:EE_|DU0PR03MB8670:EE_
x-ms-office365-filtering-correlation-id: bf44ed59-26ff-4e11-f648-08dde56cbc97
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?MDdUSjB6UGkzK1dMdmFVbFc3ZUV1RXZwR3JYVlMrN1lBTU1XNFc1RHMrVkFN?=
 =?utf-8?B?Q2ZZOTVsd3ZNYzhUNmlkSC9lNExjVFI1MEo2T1pMSHBrb2tpRGNQZ2gzKzN2?=
 =?utf-8?B?eDVYSHRyRWFNVTFpTDVKMFRjZDBLZkM0MGRSWWUzV05MRVhLL3F0OG1IaW9T?=
 =?utf-8?B?MkppS3dUbXhVakF3NmpUbmZXM2dBcXF1djRabWM4TUkrejJMelo5REhBMXIx?=
 =?utf-8?B?QWxiM1FyRUgxN3doRHRLVGd3NDhSenBEd0hGRis2NUtFSWRhQXBRTENGQWo0?=
 =?utf-8?B?dXNlank2OUxwanVOMnVka2JUdmNkL0loL25DcnVGZkRkRElUTDRpL2JvNml6?=
 =?utf-8?B?UytsbmVERjRwVnlJMzIvWWw1YXovVUtJNzZkb0FzMERlajREWjE0d0tVaTZ0?=
 =?utf-8?B?YWZjL2xKRUFDMTI5VWhDeWlZMXhITSt1VWxoRzdIWThyaDdodTNwdVhGUlcw?=
 =?utf-8?B?ZFJzMW1FS01ka2RWR2NYR0VYM2pjUVJzdWdqRW40dlRRSGpXVmowZVh3SytW?=
 =?utf-8?B?Sm5tdFovcHBQWVNiN3lISWk1S1I4ZGU3Q25XR2dTRVFUcm5IUkRRRFBxM0dN?=
 =?utf-8?B?M2tUSjdXcitaUnByRXVTZFlwYTZtZFhxdS83WGNFdEJIZmdKOXJvbkZqTmw5?=
 =?utf-8?B?Z21hN1NDVENjdS9mdWVIeDJEajVvTjBhVlk0Uk1YcnprbjZKanlhWmhBVzFD?=
 =?utf-8?B?QU1XUFdaSUZ1UUc0bUYzbVpIZHRBZmhyK2ZNMEpaQWtWRWtFYVF6dFMyWkcy?=
 =?utf-8?B?U0c3OXk5S2Z5TTVWWnMrVTQ1NVo3TlB0MUFBWVhYSmVQd2FTNXVoMERLL052?=
 =?utf-8?B?eGNDd0dkVUlZS21BMkZhNUhKcjR5cE5hVlZ3OGptaWttb1NsOVJ2YlFobTg3?=
 =?utf-8?B?cU03cjAybFI5RnNkYlg3WnZXdFk2YnRsWjFMcUxjS1J5QXBFRTRGYkZwQzVQ?=
 =?utf-8?B?OUdackRhdm1qMmNoOVlhK29FWVp1THpSQTZsaXN6alJjWFVTcFkzOGhqMjhl?=
 =?utf-8?B?emdNOTU0MzJ4cEE4dDAzOVlKajZaampyOVRGVmc5WVJYMUlGbDU4aUpUNHov?=
 =?utf-8?B?dmwrRHRxYUpXSEhSRGFScytMMnhCRS9qc2ZHZXljOG8xRDFsUDlsK2pWd21W?=
 =?utf-8?B?SVoxWHoyTy8wRDBtenFDTDdwY2ZIbFY0UkVBeGpGUmJpbzZKRnlpdFdnVWRJ?=
 =?utf-8?B?STJJYlMwZUV4WFJNaElzVk5KZ0xDRHdoN2NNdklLaVRzbldQdFAxSnJDV255?=
 =?utf-8?B?dkhyeGZId1NqVVo4RWFIUWdySnNOcnQ2MUozZWJCNFprMk5xYXdaUVo4UnVQ?=
 =?utf-8?B?a3B6SmdvNWl2NTNvNEJGdHFNcnI5RDYxeVQ2TENCYzhaUjhHVzB4US9uY1JT?=
 =?utf-8?B?RmY4ODEwOXRYMHBwK3RUWUVxa2tYaFNvWGtheFo5Sm9FQjVqTndHYjVFOUg0?=
 =?utf-8?B?QS9HNnZqLzlVeG1SZEVvYTRUSWREdGlQN2FTMzlOcjhQWVFiTEQ5NGNsdTFF?=
 =?utf-8?B?T2NoQ0F6YjF0anpxUlBFZVNVZXJ5cDJvZkNuT0lyK2RaMU9xNTBmTENvOEdr?=
 =?utf-8?B?TXpaR2QwUklabDJoNGFkNU5UUThrRkg4TndyOGlyUUlsSytYdFdSUC9CVDhs?=
 =?utf-8?B?dmU3bWdVbWI1d2hIdjZjdkNDZ1JOdXU4MXJqTUQxWmIwb1lQTkxYZUQwalYv?=
 =?utf-8?B?dmlpWUpER0FEQUhKTlpwcWF1dnNJMHBhL1BtOUZvcmJnSXMxK0k5WjQydzdM?=
 =?utf-8?B?bUU4WGowb1FHRG1IUlJneGVwWEJqeTBPVHdld3VBUG11dWZrVy85K3IxclZG?=
 =?utf-8?B?T3ZYMEZxV0JBeVhNaE5ZR3lqUFlUYWlmekw4YXFac0lrVDJoNkNvODA2UWlV?=
 =?utf-8?B?a1FQczFacy9abDZFVEhNd1Q2TU11Q0NXV3BPQnZlbTdyQ3p0UXpCSzByN1cy?=
 =?utf-8?B?M0NER2h3c2wwcGdEbk90MGdkWml4THNzakhNWjlkdkpmNW41VGVIS2VYUExE?=
 =?utf-8?B?eWdVRjc2Z1pnPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?eEI5VUQ2eEo0MGhiWjdxME5WMDE2Q04xNWQ3bUYrcWgvMjQ4ZzAxSFo5Vmxl?=
 =?utf-8?B?dVc2UVBPRnVpMUMvZWIvWUlNbDhvUk9YaEsrZUhvalZRTmxjVHoyZStsdGZ6?=
 =?utf-8?B?RU14Q3F4YTM4TWNOaUo2UnphK2UzQkdoWkQ1QTFBWEJyLzJVN01hMmdEN2JL?=
 =?utf-8?B?ZUtqRXFleFBzL2h2QnUzaGZrdnNLTVNTelNzUFBRdXpmYlpSa295ei9hWFVy?=
 =?utf-8?B?N0tMZWVkMWJ1WUFURzdLelhmKzgzNmE3Q0Q0YkkzaS9JZGZjWG5QRFhRV2Jh?=
 =?utf-8?B?Yk9VNVNpYlRNTzQvY1ZYUGpUaEJyWE5iSkNwSFZXRDF3Ri96SEdNUk12YVNr?=
 =?utf-8?B?bEZBQlVIc2hNQW12aDJMcUtGTVVwdXBhUmdRbGlFdm11VHRYQ3U5eERlcHlS?=
 =?utf-8?B?T0M3K2RHeHB1aUZHamhIeFB4RGtlQnk1ZTl0RG5VcGFTN1Q5cWt3S3F5TlBG?=
 =?utf-8?B?U0xSNFNFVm95Y0x2bmRXakU4M2kra08rV2NBNTkzTkhhK0U1OVI3RlBtZXA0?=
 =?utf-8?B?Nm5IazJVeTRpTld3WlIxUExCalpDWkM1d2lIWTJjQ2V5bGZXMWRnZERJNE45?=
 =?utf-8?B?Vk5JSHZhYXdTY0NaSXkxWVJNTE1LZVdxMGRiZDV6dThrcWRVUjZmWG1UUlB3?=
 =?utf-8?B?MGhucktXZkdNTHAvR3FNcXhTc3lxZlNDL0Nqa0xKMHFzVUdueDVSUW1sYitK?=
 =?utf-8?B?OW1zMDV1NFpqZFplSlBHMnhyQ2RES2twaWJ2T3FYU0lzTVhzUDRCSzJ1UGxO?=
 =?utf-8?B?Q0J3aTdobzFZc1Y3SjROVG8xOHp4aitSTEk0cHd3LzhwVlowejU3ajdmN1I5?=
 =?utf-8?B?d3dOc1NGaWluQm1lVzkvbU1FNWs4RUNFTldKQUQ2RVJtOXBRL3FTRGd1WDc5?=
 =?utf-8?B?RkRtbGJ1bElaUTJabG9WSDkwU0t6aGpIZmU2K0tHcUpCSFNIdjBxZWFNVmFZ?=
 =?utf-8?B?NmdhWThxL2xZNDVHK2xUaGFJbU0wWFA0enEweEppaWM5OG1DeUhvV2x2ZzJq?=
 =?utf-8?B?MEhMbVowUXR2bjlHTjRaS0psamt6dU9IR0hsR2FhdmRwUWdvYmd4aWdwWll3?=
 =?utf-8?B?TUtlbElnQUJHSU5JdzNuSXd6YjcxTkUzdUJGTmU5eHpoNHJIWHJjM0tSTDZv?=
 =?utf-8?B?YUxyWUFrdHpCYmZiMWFmZVBkU3h5NGtIUlVTZWc0QWRlQlVLQVJ2TXZzMDUv?=
 =?utf-8?B?S0ZnNEZhUW5QMHlrdFJRSXQzVXVCZXV6S01yTnBKdndBdHRJUkdHTkVuWHZY?=
 =?utf-8?B?bzl4TzFCOXpUMjlRK2VJYVlhV09XUUN1QUExeW55VEJvUHk1T3ZBdXVCRnhG?=
 =?utf-8?B?L2p0WjdkaTE0V0cvbHh1UUpielQ1NG9lK041TGF3RlZvVFREb2NoYi9uL3Za?=
 =?utf-8?B?R1dPc3Rmcy8rdTlFaEprS1U1WVgrUm5JQ3ZYRFV1Wk90eUNVTXJwWGJWZFJ5?=
 =?utf-8?B?ZVdvRzYzQkVPVWV0YTdYUVUwMXFiK2dsM2RSdFlpK2dXaDdUUG9TeStJT1FO?=
 =?utf-8?B?Y1NzQmdxSWwzOGJBTnJmSTV0WHJpNUZ4bEs2NXdWeTJyRjRWZUp4RWM5c09T?=
 =?utf-8?B?OFRZeEtOR0ZXNlRqRU5LYlYxUkNkMXl0UWYyUzBXNG8wYW1BNmRQampqRjRL?=
 =?utf-8?B?VU9FcndQTTF5Qnk1QzNjVWtrVEg4aDhyVnQvaURwcFNoemlkWFJnbHJCcFhm?=
 =?utf-8?B?aWIrZ2MrcXY2YWVZc1lSZ09OVUVSUnA5YlEzMXVNTm9Yc2lhdC95WEZQbkU1?=
 =?utf-8?B?emNobzNXRmxGUTBIY0lQRVVGdmV6WHJoZ2ZBczREbi95a2tNQUdldGxlVWI3?=
 =?utf-8?B?VVJLZFUyVEh1ZVorTktCNURQQlg5Qzc4RThYOGlLc1BkR21pNmkxLzdSeDh3?=
 =?utf-8?B?bmc1OUtHVWw1OFpyMXRQMW11WmJQRllta2tLVU95NHh4bUVHdnpMWk16UVJa?=
 =?utf-8?B?Tlo0V0ZGbWM4UngwRkUxUDA0ZEllTHA4bFNmMW56U0NtWWFEU3FZTDBDeEsv?=
 =?utf-8?B?dmZNZHFNVFpMeE9Uc2x4UWZIZTArRklwQkJGK2xSSmpTZmlGM2xhSmN3VXdh?=
 =?utf-8?B?MHdsdk9KZERUUGdBYlh2UUd2T1hkZXZjbFEvTjlRK0ZDNE9paGhUOXlkOFVa?=
 =?utf-8?B?SzBuUURYZUwyZzd5VWs5MHlOV1pFMm53bGU0ekJFTEowYXhWZ2tJaUhZUnNH?=
 =?utf-8?Q?VzTWBcLNHsX1Sgc31XfFjoA=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <E8D696E2A642314E917E66735EA25CDC@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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: bf44ed59-26ff-4e11-f648-08dde56cbc97
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Aug 2025 13:22:13.9644
 (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: aPs/YRittKq+vpUWndoiv3krfzU2Nd6LUeQdNOjS8KHBXEqEQEtivocBnUfcwFZ9wln5vbaTy6dxop3d7A3vOVtJkEi5wQG38NkOoSPKWQ0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB8670

SGVsbG8gT2xla3NhbmRyLA0KDQpUaGFuayB5b3UgZm9yIHlvdXIgcmV2aWV3Lg0KDQpPbiAyNy4w
OC4yNSAwOTozNSwgT2xla3NhbmRyIFR5c2hjaGVua28gd3JvdGU6DQo+IA0KPiANCj4gT24gMjYu
MDguMjUgMTc6MDUsIExlb25pZCBLb21hcmlhbnNreWkgd3JvdGU6DQo+IA0KPiBIZWxsbyBMZW9u
aWQNCj4gDQo+IA0KPj4gQ3VycmVudGx5LCBYZW4gZG9lcyBub3Qgc3VwcG9ydCBlU1BJIGludGVy
cnVwdHMsIGxlYWRpbmcNCj4+IHRvIGEgZGF0YSBhYm9ydCB3aGVuIHN1Y2ggaW50ZXJydXB0cyBh
cmUgZGVmaW5lZCBpbiB0aGUgRFRTLg0KPj4NCj4+IFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIHNl
cGFyYXRlIGFycmF5IHRvIGluaXRpYWxpemUgdXAgdG8NCj4+IDEwMjQgaW50ZXJydXB0IGRlc2Ny
aXB0b3JzIGluIHRoZSBlU1BJIHJhbmdlIGFuZCBhZGRzIHRoZQ0KPj4gbmVjZXNzYXJ5IGRlZmlu
ZXMgYW5kIGhlbHBlciBmdW5jdGlvbi4gVGhlc2UgY2hhbmdlcyBsYXkgdGhlDQo+PiBncm91bmR3
b3JrIGZvciBmdXR1cmUgaW1wbGVtZW50YXRpb24gb2YgZnVsbCBlU1BJIGludGVycnVwdA0KPj4g
c3VwcG9ydC4gQXMgdGhpcyBHSUN2My4xIGZlYXR1cmUgaXMgbm90IHJlcXVpcmVkIGJ5IGFsbCB2
ZW5kb3JzLA0KPj4gYWxsIGNoYW5nZXMgYXJlIGd1YXJkZWQgYnkgaWZkZWZzLCBkZXBlbmRpbmcg
b24gdGhlIGNvcnJlc3BvbmRpbmcNCj4+IEtjb25maWcgb3B0aW9uLg0KPj4NCj4+IFNpZ25lZC1v
ZmYtYnk6IExlb25pZCBLb21hcmlhbnNreWkgPGxlb25pZF9rb21hcmlhbnNreWlAZXBhbS5jb20+
DQo+Pg0KPj4gLS0tDQo+PiBDaGFuZ2VzIGluIFYyOg0KPj4gLSB1c2UgKEVTUElfTUFYX0lOVElE
ICsgMSkgaW5zdGVhZCBvZiAoRVNQSV9CQVNFX0lOVElEICsgTlJfSVJRUykNCj4+IC0gcmVtb3Zl
IHVubmVjZXNzYXJ5IGNvbW1lbnQgZm9yIG5yX2lycXMgaW5pdGlhbGl6YXRpb24NCj4+DQo+PiBD
aGFuZ2VzIGluIFYzOg0KPj4gLSBpbnRyb2R1Y2VkIGEgbmV3IGRlZmluZSBOUl9FU1BJX0lSUVMg
dG8gYXZvaWQgY29uZnVzaW9uLCBsaWtlIGluIHRoZQ0KPj4gwqDCoCBjYXNlIG9mIHVzaW5nIE5S
X0lSUVMgZm9yIGVzcGlfZGVzYyBhcnJheQ0KPj4gLSBpbXBsZW1lbnRlZCBoZWxwZXIgZnVuY3Rp
b25zIGVzcGlfdG9fZGVzYyBhbmQgaW5pdF9lc3BpX2RhdGEgdG8gbWFrZQ0KPj4gwqDCoCBpdCBw
b3NzaWJsZSB0byBhZGQgc3R1YnMgd2l0aCB0aGUgc2FtZSBuYW1lLCBhbmQgYXMgYSByZXN1bHQs
IHJlZHVjZQ0KPj4gwqDCoCB0aGUgbnVtYmVyIG9mICNpZmRlZnMNCj4+IC0gY2hhbmdlIENPTkZJ
R19HSUNWM19FU1BJIGRlZmF1bHQgdmFsdWUgdG8gbg0KPj4gLS0tDQo+PiDCoCB4ZW4vYXJjaC9h
cm0vS2NvbmZpZ8KgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCA5ICsrKysrKw0KPj4gwqAgeGVuL2Fy
Y2gvYXJtL2luY2x1ZGUvYXNtL2lycS5oIHwgMjYgKysrKysrKysrKysrKysrKysNCj4+IMKgIHhl
bi9hcmNoL2FybS9pcnEuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IDUyICsrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKy0NCj4+IMKgIDMgZmlsZXMgY2hhbmdlZCwgODYgaW5zZXJ0
aW9ucygrKSwgMSBkZWxldGlvbigtKQ0KPj4NCj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0v
S2NvbmZpZyBiL3hlbi9hcmNoL2FybS9LY29uZmlnDQo+PiBpbmRleCAxN2RmMTQ3YjI1Li41ODEz
ZTViMjY3IDEwMDY0NA0KPj4gLS0tIGEveGVuL2FyY2gvYXJtL0tjb25maWcNCj4+ICsrKyBiL3hl
bi9hcmNoL2FybS9LY29uZmlnDQo+PiBAQCAtMTM1LDYgKzEzNSwxNSBAQCBjb25maWcgR0lDVjMN
Cj4+IMKgwqDCoMKgwqDCoMKgIERyaXZlciBmb3IgdGhlIEFSTSBHZW5lcmljIEludGVycnVwdCBD
b250cm9sbGVyIHYzLg0KPj4gwqDCoMKgwqDCoMKgwqAgSWYgdW5zdXJlLCB1c2UgdGhlIGRlZmF1
bHQgc2V0dGluZy4NCj4+ICtjb25maWcgR0lDVjNfRVNQSQ0KPj4gK8KgwqDCoCBib29sICJFeHRl
bmRlZCBTUEkgcmFuZ2Ugc3VwcG9ydCINCj4+ICvCoMKgwqAgZGVwZW5kcyBvbiBHSUNWMyAmJiAh
TkVXX1ZHSUMNCj4+ICvCoMKgwqAgZGVmYXVsdCBuDQo+IA0KPiBQbGVhc2Ugb21pdCByZWR1bmRh
bnQgbGluZQ0KPiANCg0KT2theSwgSSB3aWxsIHJlbW92ZSBpdCBpbiBWNCBhcyBpdCB3aWxsIGJl
IGRpc2FibGVkIGJ5IGRlZmF1bHQsIHdpdGhvdXQgDQpleHBsaWNpdCBzcGVjaWZpY2F0aW9uLg0K
DQo+PiArwqDCoMKgIGhlbHANCj4+ICvCoMKgwqDCoMKgIEFsbG93IFhlbiBhbmQgZG9tYWlucyB0
byB1c2UgaW50ZXJydXB0IG51bWJlcnMgZnJvbSB0aGUgDQo+PiBleHRlbmRlZCBTUEkNCj4+ICvC
oMKgwqDCoMKgIHJhbmdlLCBmcm9tIDQwOTYgdG8gNTExOS4gVGhpcyBmZWF0dXJlIGlzIGludHJv
ZHVjZWQgaW4gR0lDdjMuMQ0KPj4gK8KgwqDCoMKgwqAgYXJjaGl0ZWN0dXJlLg0KPj4gKw0KPiAN
Cj4gW3NuaXBdDQo+IA0KPiANCg0KQmVzdCByZWdhcmRzLA0KTGVvbmlkDQo=


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 13:23:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 13:23:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096043.1450851 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urG7s-0002oE-St; Wed, 27 Aug 2025 13:23:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096043.1450851; Wed, 27 Aug 2025 13: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 1urG7s-0002o7-QE; Wed, 27 Aug 2025 13:23:44 +0000
Received: by outflank-mailman (input) for mailman id 1096043;
 Wed, 27 Aug 2025 13:23:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=n4tM=3H=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1urG7r-0002lA-Nj
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 13:23:43 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20613.outbound.protection.outlook.com
 [2a01:111:f403:2414::613])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0bf78fcc-8349-11f0-ae26-e363de0e7a9e;
 Wed, 27 Aug 2025 15:23:41 +0200 (CEST)
Received: from SJ0PR03CA0193.namprd03.prod.outlook.com (2603:10b6:a03:2ef::18)
 by CH3PR12MB7499.namprd12.prod.outlook.com (2603:10b6:610:142::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Wed, 27 Aug
 2025 13:23:37 +0000
Received: from MWH0EPF000971E6.namprd02.prod.outlook.com
 (2603:10b6:a03:2ef:cafe::a3) by SJ0PR03CA0193.outlook.office365.com
 (2603:10b6:a03:2ef::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.13 via Frontend Transport; Wed,
 27 Aug 2025 13:23:37 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 MWH0EPF000971E6.mail.protection.outlook.com (10.167.243.74) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Wed, 27 Aug 2025 13:23:36 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 27 Aug
 2025 08:23:35 -0500
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.10; Wed, 27 Aug
 2025 06:23:35 -0700
Received: from [172.31.63.243] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 27 Aug 2025 08:23:35 -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>
X-Inumbo-ID: 0bf78fcc-8349-11f0-ae26-e363de0e7a9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=SExRb11X7JXabmdxXpurp/z95J29AwrpeFG7k7M+2MWf8vKsJfbM1iQN/RjlYw1sP4wIVkw3ErQsO7BvG9eZAOuCuX26lyk6LPOATfqxVy12PRv1rFgDy7meOXjbxK9z/E/dbIX4C+PDEOsl60xyFbFd/lM2TZ23gKBuFCaTyDknybpdi1OR+f7IAUqp3MFbbOhelUTCTB6ljoYIaoZ3xJTJw5NGgUljIfa92xlSpeZkKH54La4lVA6tPN8W6I5ZN4sN+fg5GbmU4bLGkKLavu40OVMyyl5l3eZRqjereLAMLb0BuvQEAd3Wm2unw6SNcHT981e0ffCKq1p9SVmRBg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=N1dfsLPEJr6prokg36dJQqYvkdfMPUPgjOr3lyfTFvw=;
 b=XAibtkxvnwlnSyTL3y7ods1MPv/FTUVXz4gb2FYJzAtt4Jg4kskxs3AnpsUJ3Qqpt1w31FDT/pze8heS5bkklS+gngQSh5HU9q0D/d7JLdHcBPf06d7dHZ8fdi4yD8pWtFh0tUziQmoxDHb0GDOdknrz1uz0UE5hbuQEZ8YuN7vIXBRAJ7j9ANt0xnFdDHbOa8OstCI80oKTtEpdgQhB0B0qWPuNbXKBfIBQi1mLOdRNDcRTdkUzzDSzmieIAORjivzEJOZq4E0W9aBlYEACbAcQ43MG85d0v5UU4caWxxwB7lhpxqBwIiGuCN/EOX0L2qCcXQKDuBa2GkHCh0cDCw==
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=N1dfsLPEJr6prokg36dJQqYvkdfMPUPgjOr3lyfTFvw=;
 b=QzWzsx0R7I9tyrWiNdum27JFdjVOcJqRQpX3lEJHhusj039+voonQJ7oEd7sKK+/FuX2mfAXsQlebKwal2qzOHkc2fOvoRawrBiv9iWKDwIJPCKmxRJD6rvzKN619YJtq6Oah1Xe74AwUavPUA2tngsDHTrP+c0e41yPt22DBL8=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <376fa306-1b77-4bf1-ba02-9a8d7946e70c@amd.com>
Date: Wed, 27 Aug 2025 09:24:03 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 8/8] xen/dom0less: store xenstore event channel in page
To: "Orzel, Michal" <michal.orzel@amd.com>, <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>
References: <20250826210847.126015-1-jason.andryuk@amd.com>
 <20250826210847.126015-9-jason.andryuk@amd.com>
 <b59ea812-6c97-49ea-b7a9-c02e3e265800@amd.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <b59ea812-6c97-49ea-b7a9-c02e3e265800@amd.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MWH0EPF000971E6:EE_|CH3PR12MB7499:EE_
X-MS-Office365-Filtering-Correlation-Id: d5e8fd2a-9e7f-420c-5833-08dde56cedf2
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|1800799024|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?VWhsRUt1cU1xSm1QR2YxQWdjSWFOaVdTeFBzZkxrNGM2dytLZ1hmMktDa2VI?=
 =?utf-8?B?SVNibkRmZi9RWGduVmpNNklRT3l3T25SbWEvMDlxS3V4b0tvSndURDBWbWpp?=
 =?utf-8?B?eG1kU3FyTlNoRmJzTUxVMy9wUXlzVDJyd1RXM0pUOW5zNkZHVzM2eFN1WHF4?=
 =?utf-8?B?d1dZUFlsQmRIZ2Q5cVR0amhwdjFDd0tDRkJkVG5NQkZ1aGNFdkRINi90Mldq?=
 =?utf-8?B?RGJsMjFkbkp0KzhVdzdmVi81YVI2WVAvNmduNi9yNGo4RjU0UGVnN0U4cjAz?=
 =?utf-8?B?US9pdHR2R2F3RXhIZm5ORFI1L1MzalFkSWV4c1dmaUp3dCtlWmcxMVAxSC93?=
 =?utf-8?B?NU4zUDVPMGx4OFFZNlJvSm4rc1dEREYzVUJOOEZYVVR6am5xcFl6WnBSVzh4?=
 =?utf-8?B?SkUzc3hNRFJBUnZiM2VhR0NLWmI2TXBqdHZJNXdkY25iYW8veDRsNmNWQ0R1?=
 =?utf-8?B?am5yUUdRTmZFcWdneW5uRWpRZ2g1WlhaSS8wdkZGeStwMzhKYkhMdE1xRnhy?=
 =?utf-8?B?TnZWZ2hnYUF6dHlQejRSSnRlRnpkQTJmODRsTTAwbVF6RHh6b3BuS3NvaVJU?=
 =?utf-8?B?V0xnTVQ5QnZVYkFIQUd2aFVDc2tpWUJpMmdyOGV2ZHpUVDFjb2llWk5aUjJM?=
 =?utf-8?B?Q1JxNU1qNU9nUHk2dnJ1R1VueGJJd20zWHdZY2Y2cG5HQTl3MFlCMWYwYklZ?=
 =?utf-8?B?QngxVXE4dU45WldtVjVpaVEwZlYzb3AwT25SNUJWQnNOa2JLakgrMjl5TEh3?=
 =?utf-8?B?QUUxb3FxZHc0bHg5a1JucGw4NURPSDlUT2ZYSmZuSGxSaVYycWFGSHRLSTRj?=
 =?utf-8?B?QkMwZ2dHZjhLbFpIeWV5TUxFdHdaMjRzZERFNlZtOE95U1cyUUpvak5nemZ0?=
 =?utf-8?B?S0JnU3VLZXhkRGlIVDJ6NVBQaHdrM0hiWnJFam1CWVpFUXFIUFIwaVNCdVow?=
 =?utf-8?B?LytSUjlQOCtLVUVFalJvYlFIQmdpTCtSYWNReFlrN1lvVDdpTkZQVjhDR1B4?=
 =?utf-8?B?S0g5NnpTZkcwQytDQUtwT1M2NlllUk0rNFJ3MmJHREVnMXZyUUJndGQ1ZGxL?=
 =?utf-8?B?NlBqa2I1MS9GbUpkOVBhWVYvUjFyeEg5RDJmYURDUUFLMEp3bzJrSzJFK3c4?=
 =?utf-8?B?cVB4MjdZVUptMUlwWGR6WnMwTUJSKzZBbUZNa3JQcURDN2g4MDJFUE9rS3V5?=
 =?utf-8?B?NU1pczd2UnRkQ1BUd3NrMGxIQVpoVG8rWncwMFBXcGRQMnlTRTRhdnBYaHhx?=
 =?utf-8?B?K0R6bzFsbHdtN3Z4djVvWGxxVExCcHpEczIvUGQ4OHBka0V1U2owYlAzK0E2?=
 =?utf-8?B?emhObEREbjVwRzlpSVF1blA2alFMcFFBbldJR0p5akU5NzBoeEhOZmU1NGtB?=
 =?utf-8?B?Q1JKeXdoSy9OSjkzWlJpcE9wK1oraEZmNjNHb2JBM21IejJ0Q2x2blROd3Jo?=
 =?utf-8?B?WnNiRWRNbE9YVnd6Z2dON3hMeFBRd0FUcFdrZ1JKN1V1bitKMEpPcXNOTTRo?=
 =?utf-8?B?NWtOaGdtWHFBdTBwUCtNSmdWdVBNMW50VWNSaG9aRXYrY1p3d1ArRE5Ya3lL?=
 =?utf-8?B?bElyNkt3dkRjRXNKSk5oMG8vdTZvT2dWcU9LMHZ4bmVWSVNmMXdGaXhLc1NJ?=
 =?utf-8?B?dW1hZlA3WENXdTdKUmMwU1hGNFM4K1pQNHNjMVhQS2tWMVRqVERlbnVZVnI0?=
 =?utf-8?B?RHY3TnJPSGVJQVRGWUVVN2l0NWJrYTlQSElRY1VBRm9VRE5ndVI3cEIrYldw?=
 =?utf-8?B?b1UrR2NBdEg3d2cvWlltS3F0M21uczZad1RWVFh0aXNpd2NWYzhBanIvdnN0?=
 =?utf-8?B?N2tpTGtUcld6SEQ2NUliZnBhMHRxS29lUjhiZzFPSVRCTEE0VW5EWHoySVRG?=
 =?utf-8?B?UXpCdmkvTnFNUmxBaUdvTVhmMWFuSzBPdTdKMU9GV255cVF1cFpSdXhNTndj?=
 =?utf-8?B?U3NOa2p0ZHlzVTIvdkFjSFJOcmsxdTNWMjNGV29CSlhqOXVYREZVWEhCVWsz?=
 =?utf-8?B?OGpYQmdFc2tyTTRCRmFtOFFkcEdvTzR5OXR6bmJnbXE3eTRUcnpLTTF5RW5q?=
 =?utf-8?Q?J0jY5h?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(1800799024)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Aug 2025 13:23:36.6438
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d5e8fd2a-9e7f-420c-5833-08dde56cedf2
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000971E6.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB7499

On 2025-08-27 04:03, Orzel, Michal wrote:
> 
> 
> On 26/08/2025 23:08, Jason Andryuk wrote:
>> Write the associated event channel into the xenstore page so xenstored
>> can read it.  xenstored can map the grant by the reserved grant table
>> entry, and then read out the event channel and bind it.  This eliminates
>> the need for an additional mechanism to discover the event channel.
>>
>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>> ---
>> v2:
>> No change
>>
>> This should go in after the init-dom0less changes so init-dom0less is
>> ready for xenstored automatically introducing domains.
>>
>> I'm looking for feedback.  This is ARM-only for the time being, but that
>> is the only in-tree user of this code.  From the perspective, it is okay
>> to go in.
>>
>> If we want a cross-arch approach, a common function to write to guest
>> physical addresses would be needed for additional arches, but they
>> aren't available yet.
>>
>> Oleksii added a function pointer to dtb_load() and initrd_load() when
>> moving dom0less to common, but I think that isn't necessary.  Just
>> having a common helper would be sufficient.
>>
>> copy_to_guest_phys() or something_copy_to_guest_phys() could be defined
>> or a wrapper for ARM's copy_to_guest_phys_flush_dcache().  Other arches
>> could need to implement it when using dom0less.
>>
>> I'm not an ARM expert, but Stefano said
>> copy_to_guest_phys_flush_dcache() is not necessary since this xenstore
>> page isn't expected to be accessed without caches enabled.
> I'm not sure I understand this point. When copying data *to* the guest, cleaning
> is about Xen's cache, not guest's...

I was trying to highlight that the patch is using 
access_guest_memory_by_gpa(), but dtb_load() and initrd_load() use 
copy_to_guest_phys_flush_dcache().

I assumed from the name, and Stefano's comment, that 
copy_to_guest_phys_flush_dcache() was about ensuring the CPU's cache is 
flushed to RAM.  That way a guest starting with cache disabled would see 
the correct contents.  But I don't really know how it works and may be 
wrong.

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 13:30:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 13:30:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096056.1450861 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urGEn-0004OD-Hn; Wed, 27 Aug 2025 13:30:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096056.1450861; Wed, 27 Aug 2025 13:30: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 1urGEn-0004O6-Er; Wed, 27 Aug 2025 13:30:53 +0000
Received: by outflank-mailman (input) for mailman id 1096056;
 Wed, 27 Aug 2025 13:30:52 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=GEsR=3H=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1urGEm-0004O0-CB
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 13:30:52 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20629.outbound.protection.outlook.com
 [2a01:111:f403:2414::629])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0a6c7a67-834a-11f0-ae26-e363de0e7a9e;
 Wed, 27 Aug 2025 15:30:48 +0200 (CEST)
Received: from PH0PR07CA0096.namprd07.prod.outlook.com (2603:10b6:510:4::11)
 by DM4PR12MB6493.namprd12.prod.outlook.com (2603:10b6:8:b6::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.21; Wed, 27 Aug
 2025 13:30:40 +0000
Received: from CO1PEPF000044F6.namprd21.prod.outlook.com
 (2603:10b6:510:4:cafe::f4) by PH0PR07CA0096.outlook.office365.com
 (2603:10b6:510:4::11) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.13 via Frontend Transport; Wed,
 27 Aug 2025 13:30:39 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CO1PEPF000044F6.mail.protection.outlook.com (10.167.241.196) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9094.0 via Frontend Transport; Wed, 27 Aug 2025 13:30:39 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 27 Aug
 2025 08:30:39 -0500
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.10; Wed, 27 Aug
 2025 06:30:38 -0700
Received: from [10.71.195.192] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 27 Aug 2025 08:30:36 -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>
X-Inumbo-ID: 0a6c7a67-834a-11f0-ae26-e363de0e7a9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jm6DPZWSj5x135IPaoLKOrmpP4keOju77pCMDNqU/L3ZC949wLWI05gx+Q828z4UAo69gJBibAfTTn0uZLgEvZedPBpTwJwLOEfgEsDZ7kycAkdbw0aoDA5L0ljzQjxQEIf2rrWYv0kZ0OeUY4J3pwAM/bwGCI4oDVWLhfyIbqoIbJN4i3kEv+4jXlYy1kufuG41cpIHRPLyEI7KPNh/Ean5gB0wPxXHtnUz1PE8Ndka6LjIjSKpr2Zd1NFM8o9OpYpqyM2Y1M9BCWr72Yt+MSJY3lAsIPUS4PORLOg3Z/JhM7AXIrxsgVFE38NusPzCx22+T0Cr8HeUMdQACIadqQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Vbf0In1LnKfwEYSPb8BqJXhdDpOjyfrFv4TtDjUmTjg=;
 b=bD+kw3edNGk/gKf/coqipUw26gY7EoWnD9x5tQxh2Yc9avhKH5/lRUns5cp/UFRhdfIwrgJloyPQzDUAz6iMAdQ2JMuGorzTdrOgkamv002xe0gg+N7aTFwo56RG1Grf311Z88rCYvSsO+j60OCQaLgmQ2AhF5xsvma9p1T6QLRIQVXdbS/jqfuhAvy1EuQY/SpBo2lG2YEXdZu6jnrLKqt60Zku5dqAZCEizfecMLA5IGDKQkOG2eLkvQxnT75cGF0br+XHzTl4LmiyxF0Pp9Dy9r1l83wYYXMFCDrB+JkRtOLI0nCAuvWlGA/m6d4/P2pXkz3X6tuij2qIlAPFFA==
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=Vbf0In1LnKfwEYSPb8BqJXhdDpOjyfrFv4TtDjUmTjg=;
 b=h0kw99AT5HlGruJ9CEpNyKKIoD2lu0b/FbKQoEnwAzkOsVh6ywaFWK9XkbQw0b/czbPbilCLT0Hupp1yjq6xFCOT0N7SuTWaXWvrZ1OajP3Xmik1R1zQqDbTPZ7uY5eh1HE3Rfo7tIVVyWPHSrex8gjgppdgH9Zs8OEGN//bDiI=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <70d3d5b3-68f7-4c4e-98df-f41176e58582@amd.com>
Date: Wed, 27 Aug 2025 14:30:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 5/5] xen/arm: map static memory on demand
To: Hari Limaye <Hari.Limaye@arm.com>, "Orzel, Michal" <michal.orzel@amd.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, "Luca
 Fancellu" <Luca.Fancellu@arm.com>, Penny Zheng <Penny.Zheng@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>, Wei Chen
	<Wei.Chen@arm.com>
References: <cover.1753864612.git.hari.limaye@arm.com>
 <c85ac9d6da3c13dabd26627faac90ea95feb3f95.1753864612.git.hari.limaye@arm.com>
 <b12b9c9c-069c-4c45-adc6-5b7026f812f7@amd.com>
 <7EDCD060-4EC7-4727-B524-225A5FB7A0B7@arm.com>
Content-Language: en-GB
From: Ayan Kumar Halder <ayankuma@amd.com>
In-Reply-To: <7EDCD060-4EC7-4727-B524-225A5FB7A0B7@arm.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF000044F6:EE_|DM4PR12MB6493:EE_
X-MS-Office365-Filtering-Correlation-Id: 8645c28e-76fb-4ee0-ebe8-08dde56de9f4
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|82310400026|7416014|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?TzNTU292SXVQbW1YKzJPR2V1RHMyRXdCb01mM2xHZEYvdE5PdVpOUTRITDlo?=
 =?utf-8?B?THRnVVpza3JjOVRLZUJGbWY3YitZcmVZVEdpbFVONHQ4TXZlTEtja0E5eWxC?=
 =?utf-8?B?L2dtc3pYRGFBLzBuNW1PNmNkakFkUUlnNFQvQkVQZU0xVm9ZUFl3OHpGdnhW?=
 =?utf-8?B?TFpYNW4yTVBQUDhqeXIwam90QlpYZlhGeGhZUHNFdUJrRzNWaDlYYVpaTWd0?=
 =?utf-8?B?UFFGQW1jN2FlLzM2Y0ptOUR0eHJYbS9CbEdySUZjUVV4YmYvNGdsNmhJSHhw?=
 =?utf-8?B?SFZQdElKb01lRmxGb2dSMFhmdWkrR01LbDdCeGY1TG5qY0Q2cUFMd1YrbzJD?=
 =?utf-8?B?MDY0Um1aUlFjU0l1TzlQQjI1V1YxejdVMzN2WjhYUzBTR3hqNmxKMXF1YzlH?=
 =?utf-8?B?MnVDZm81ZW9DVGpLbXpXODBhMkZIRHBKWTE4VUdWZjBsSjJBdW1pRDQ4Y1BK?=
 =?utf-8?B?VHdBK0lkbkJtWnNMQmJ1YnJmcjNQbWFPTHBjZjY5TXduRDNvQW8zT2NxOXk3?=
 =?utf-8?B?SHJxS1hsWmhiMUhqYzV6RTJkOXdURTdpY3JmUGQreDRwNDBVaGVJRlhYemw4?=
 =?utf-8?B?VlZCMHhDY3gzRUhITUlqQmVhSkUvcHFNNDN1YU9WYXdYVFhHR3gwaTlNZm5m?=
 =?utf-8?B?VUZaZEYvVGlHVVh2UWZBa1UxUHMxUEJNbG1tNTVqQUdhMWdwM09UU3lVa0NX?=
 =?utf-8?B?NlhCZUtzMlNSdE02dUNMRnZWWjZVbGQ2T3MrVVlNZmx3eUw0ZkppdUVjb0Vr?=
 =?utf-8?B?MVpoQnpUbjl4aHEvUkc2QlZQdVFDT2lxMVZ2b2pNYUsyQ25mbzMxSnVZWndG?=
 =?utf-8?B?ZUxOR2UzREJ4L3RaQXcrcmhXbGR6dXZZODBVdCtadnB2TUlIZ0Y1aWpZQUw4?=
 =?utf-8?B?QXkwQ0F5UTZLZUNhNEkzbGVDNXd6eCtTZE9RNHRKUldhdTV1amZ6c2R0U0lS?=
 =?utf-8?B?ZjlwUnVRSnVIMW0rREc4S2FXQmtpWjB1K2RmVnZGU0dVNHhCU1d3R0o0em1B?=
 =?utf-8?B?Z1hHcmx0UlVzMFRWQmxkaVVuTnFaeXBDSmM5Y0FpM1FPbzB6aDJyNXdsTWxN?=
 =?utf-8?B?K3RaVDlXMEM2NzB4MVRJSHlsQ3JWNW5kbSt5Q0FxSW5meDZLbkxoOHU1ajNh?=
 =?utf-8?B?Z010dU15elJKU2h3cnV0TmlzcDZOdkFseDNEVGJiNFNJYS9VdFNhY1Eyb0Fv?=
 =?utf-8?B?elF4MERFMjBJMUhEaUlrZE5pRSsyd0tjbm4xUEhmRjBYVVhDdmZ1emJ0OCto?=
 =?utf-8?B?enBNbGRQU2VuRXg1Mmd2ODZvQ09iY3hreXJqKzBxR3FjTW04VFd3UFJBUDhW?=
 =?utf-8?B?Q3hZRC9NS0k5L3kvVWxLbjB1TGx2K1J4Z1d4S1UyWmRCK3kvMEtiaXNpTi9D?=
 =?utf-8?B?TjdWN3FremMvK053OGo5Ykc4OW5JU0dnV2tsUXh0T3cyWjRCbURoN3NTaHI0?=
 =?utf-8?B?akxlc2NwRS8yOU9SODVpaURENWgzc1NITGpBWi9ncWw1WWtJVkF3L1VEb29j?=
 =?utf-8?B?ZzhtN2haMWlRUjBBOWdmeUZ4NFJSRTErUXFmY1NjdHFZYWh0RThyeXhER3VU?=
 =?utf-8?B?d0dIdVpxd2VhNmpKekFWN0tTeWt2M1dpZzRrdy9CaFpTeHJQaUU5UGJqdVdw?=
 =?utf-8?B?MEVUby8xNXkxSlhPb25Ya1g5OHRnVE9BcnZIalhDUHhheXF5TkxKVmRaamxx?=
 =?utf-8?B?OHQzZGpKaUVFVnFVT25JSUZPQ0lSYU9BbEFCRTRucXh6V1RSZC9vRTQwRlBJ?=
 =?utf-8?B?K2Y4eU1rbVNUdTZ1NEJnTmgyckN6WlRzcU05c3o5eXNWZ0ZYVVVuQU5XYThQ?=
 =?utf-8?B?YWt2M3JvTlJlZlhENFJZNWl2Zm1vVVMvZTZhcnowS3pxRVl6ZERNREh1bUly?=
 =?utf-8?B?QjFMQkFzdURtaWU4a3M3RStaWllBTlpHN01HeENnOFVWcXZVeDBDYUM3OHUv?=
 =?utf-8?B?NXlZSHBxNnBsUmxNUHZMeFVNd0JZc1NMVERseVdIbHdiY09yUW9hS0lobFBq?=
 =?utf-8?B?UnlneVNuM3RpOFNQMDRPUi8rM1FVRkRIeHFyQ0lVbzB2NVlWalZoUGtVVmcx?=
 =?utf-8?Q?3oWedq?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(7416014)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Aug 2025 13:30:39.4447
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8645c28e-76fb-4ee0-ebe8-08dde56de9f4
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF000044F6.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6493


On 27/08/2025 13:31, Hari Limaye wrote:
> CAUTION: This message has originated from an External Source. Please use proper judgment and caution when opening attachments, clicking links, or responding to this email.
>
>
> Hi Michal,
Hi Hari, Michal,
>
>> On 22 Aug 2025, at 08:50, Orzel, Michal <michal.orzel@amd.com> wrote:
>>
>>
>>
>> On 30/07/2025 10:45, Hari Limaye wrote:
>>> From: Penny Zheng <Penny.Zheng@arm.com>
>>>
>>> In the function `init_staticmem_pages` we need to have mapped static
>>> memory banks for initialization. Unlike on an MMU system, we cannot map
>>> the entire RAM on an MPU system as we have a limited number of MPU
>>> memory regions. To solve this, transiently map the static memory banks
>>> for initialization.
>> How does this correspond to Arm32 MPU (R52), where all of the RAM will be
>> covered? I don't think 'transient' mappings will be needed there but all of your
>> work targets common (i.e. not only Arm64) MPU code.
>>
>> ~Michal
>>
> Hm fair point - when this series was submitted to the ML, I had no knowledge of the intention for all of the RAM to be mapped on Arm32 MPU systems and imagined that things would be more aligned here.
>
> Are happy for this to remain common for now? Or would you prefer it to be split off?

Let's split here between Arm_32 and Arm_64.

As discussed on Matrix, for Arm_32 we are mapping the entire static 
memory as a permanent MPU region. In light of Julien's comments and 
Alejandro's patch, I will revisit the approach in some time.
However, I don't want to create a dependency for this series.

We can realign later if needed. :)

- Ayan

>
> Many thanks,
> Hari


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 13:39:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 13:39:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096072.1450872 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urGMj-0005Br-C3; Wed, 27 Aug 2025 13:39:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096072.1450872; Wed, 27 Aug 2025 13:39: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 1urGMj-0005Bk-7s; Wed, 27 Aug 2025 13:39:05 +0000
Received: by outflank-mailman (input) for mailman id 1096072;
 Wed, 27 Aug 2025 13:39:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=x+iP=3H=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1urGMh-0005Be-3r
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 13:39:03 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 304695bd-834b-11f0-ae26-e363de0e7a9e;
 Wed, 27 Aug 2025 15:39:00 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by AS2PR03MB9098.eurprd03.prod.outlook.com (2603:10a6:20b:5f9::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Wed, 27 Aug
 2025 13:38:57 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Wed, 27 Aug 2025
 13:38: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>
X-Inumbo-ID: 304695bd-834b-11f0-ae26-e363de0e7a9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fnhboHYfuDaUCmTujOe61la1A9AbrIK9yzP6dwYlg0qwMMbGRvy2gOb8uVJBuPUWPWjjaZMxAz+iJPFvTb2Rfj5HrDGFkln5cExS1rREACrPAmTqS2Mp7JVgq36zZyyoE0FuINdnSRnP9yoDH7JeGLMVdPUpusRuf3vABzd9dfbyYzJcX2iq93pUleowNuUkHzTAgu2VDiCEksKMnjW6AYdW41cSiQ5QYXOYObNPiZU3ivo+2eR3UppL83fG3+Qbkpl5Dz7Ao3rdHcolc9b9IOzyHtI9/xPY6mA0bwPJJ/R9FirGCYTwoXZvMYXX8A0/WO04eL+c17uTTu8rRM7/3A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jf/itPgkdiDrehnRkDorTFkAS/dBFmFwYFd1J0KAXQI=;
 b=l5x7Khi12VLQTOS/pv12lnpytzknS/b1cX6mCVKBcCOa7jmQPWnZIN6iwm/NkV9e6KCib2yKVXJ0f7KGuCmNS5TozS5GDSdLR3GxK9YPDKlHaQ0scWUwJOe1651utnm4CA9NpB+5koSifqkqlIxvARwjy2NWyufLsZxxRRwwOsqtxEeWIwEXkJQ+ek6HLIT+827NagCOitHYtyPwyi3OseCLnI8410njIut55DFA+dTbOAvHBhxvJoJVkssCNm4Iaw/ByE+dcyhAY7U4RmlMGJrce1P01zgJC2g67tygH9IA5FEMnPmZRqEZaRdu/31NNh1QIvMmXpWnk40ZRQbzgw==
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=jf/itPgkdiDrehnRkDorTFkAS/dBFmFwYFd1J0KAXQI=;
 b=OPpPOJqWFWgYkZaBezN/8YqOSSMXCQalxATlwSiMLCOyHJsyj9RIif9+6D6rjbng9qnEAxDTnUaWuKd5LRcQTlGumb9uftKGUrkO0LzytzJnlLKtSYSDYy3R+K9VWK2t1qQaAqIYv8qExS+MGYIBFug+EfmPYk/5Q5otwaBBL991w0sB77P5fGxfAXAAkkHvnOEsRIZLVve4rMv1QYkzXMKo4P6K7rkIhxvucxODP8B+1TPVcLAZlpqwaorpmaMkKe5qyMlvVW9nABX5H2vsZV5JrgOJLQtBgAm4U+zWEPi9LbPHiPjs5AGVXJ8CAdQGORJ05KQhuk2xghEaDV5ruw==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: Oleksandr Tyshchenko <olekstysh@gmail.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel
	<michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v3 05/11] xen/arm: gicv3: implement handling of GICv3.1
 eSPI
Thread-Topic: [PATCH v3 05/11] xen/arm: gicv3: implement handling of GICv3.1
 eSPI
Thread-Index: AQHcFpJ/0RYrIev2JkmWYheOK3kVZ7R2TMyAgAA17oA=
Date: Wed, 27 Aug 2025 13:38:57 +0000
Message-ID: <bc850218-334b-407e-9008-3c1e8a61c7ba@epam.com>
References: <cover.1756216942.git.leonid_komarianskyi@epam.com>
 <398ad09617f4f97d57d13fa9f3771bd2db83916b.1756216943.git.leonid_komarianskyi@epam.com>
 <c9ec5d69-6b2e-4226-aa8f-ee6062c84885@gmail.com>
In-Reply-To: <c9ec5d69-6b2e-4226-aa8f-ee6062c84885@gmail.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: GV2PR03MB8678:EE_|AS2PR03MB9098:EE_
x-ms-office365-filtering-correlation-id: 65898e35-9beb-4a8c-013d-08dde56f12dd
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?Y1JNREFBR1U5UXljb1VWUWhneTlNbUJFZFJza2RIQUxsYm0yV1I5cllvRHJF?=
 =?utf-8?B?NFFHVkQ5RktKSDhzcmo0T0hGb08rcDRxY2oxUHNiYWRpM3BTS0pmRmFiZUFX?=
 =?utf-8?B?b21ROGVQaUVOL3BsSlZQS3lDUFJuVEEvanZTWm5OWCtnQmRla2lvTFg2SmJq?=
 =?utf-8?B?Ull2R0R1bjdRZGF5YkxDdFpkUktYaFR6VzFpSTBiNFJQSTlJOVgwY1FzQURD?=
 =?utf-8?B?ckNNQVhVTTZpZkJDNWJxVXhQVmMvQzBjaHR2dmpBRFlqeDFCL1hJcER3SnRJ?=
 =?utf-8?B?Ym9jaFFhVzF3MWxtMWtKa1pFOUhoOWtRUzhDbEJUUU9BbzEydzBZcUx3djJX?=
 =?utf-8?B?RXFpYVpFMitPeFUySHlRcGhxRHFaTmVLUDg3UHk3MzR4dHY2RjJBbEo3T0Na?=
 =?utf-8?B?b2p6QUhwWWxHUzZzOVRFNDloTFI0dUZ4alVnVW9pVDFNOHFPdy9SYi8vbEND?=
 =?utf-8?B?K1ZueTgzcDE4bmcvZ0JpOS8rOHZab280Q3kzUmo4emNFQnZnakR1MHNQM1Ex?=
 =?utf-8?B?a0Q2YkFWQnhQemNEcHhXTmRqOFVtOUJ6dUdZcmxNbXFIUFZINVNFalJQV1RS?=
 =?utf-8?B?bU81VGNsbEhPR21sQWpJRU9zRDQrY01HbmNuNnNSSzRvTStqOERkUTlLV0hO?=
 =?utf-8?B?VWdBYkdYck9YRzNSMk16cndRbHBGQjFSZmFHQlR4cnhyMWJPdHlxNVlsNE9w?=
 =?utf-8?B?Skk3RFdGVzh5M09uTXJIRjJFelBubEhMZURNWFpWS0hIZ0ExTm5WM2VXOHUz?=
 =?utf-8?B?bHZ0VVN5YmNrQTRsWWxmYXFLcFU1U0NZTFkwSWxRMVkwajJaVzl3ZmhFUEMw?=
 =?utf-8?B?ZXBLVUNhbEdIbVZJUlcrVkNhY0twSzlwazBuSE4rcWh3dWRZRm41aFhuMHdX?=
 =?utf-8?B?VnE4NThzSFQvOXp2Z0tBQzQvZWJ5MmlwVXU4MG40ZkxQc0dRZDBXSkl2bFdv?=
 =?utf-8?B?ZnByVXdtQkYvNzhwSk55UXRhNE9WRFRwblJpcmkxa3ZXMVk4ekljL0JFUkhH?=
 =?utf-8?B?dXhKVHUzcUdmT09iNXdMZzhESkxUOFBKQnRUdzBCaFE1YTJKTkVuS25CVUl6?=
 =?utf-8?B?cmhUZ2syZ1NERGpDV2paQ0JXYllPSEEvOHlDNEN3MnFFU2J5RHJUby9saGFH?=
 =?utf-8?B?WElrelJ4V0QxS1RlTXgxSXJJdmdkeUtwTVN2bEN5V3pXUUR4UXI4ZVdEa0t3?=
 =?utf-8?B?OFJrSDR1aG0vOGVvMjJPVFAvVnowbUpOdExEQklXMjhuRnF2cS9xK0RHMm5z?=
 =?utf-8?B?S3dweE1EeitCR040RTRjVzJJdTBoU3RQNFpoOWlOK0pJNDBsQ1lMUzVOKzhU?=
 =?utf-8?B?aERxdXN0WFEzeVpnUWduUlZRYnBBWkZ0QWhRbmhja0tJa1VFKzBIeUFyYzJP?=
 =?utf-8?B?bkIxNnhHT3N4WnhSV3NFNzFmVkI0bnNEY3lHVDFYWFJWM3YzcG0rcHBTZnkz?=
 =?utf-8?B?bmJXTTdZUVZMZkdrR2JRMVpIL2c4Z3VWTExtTzczWVNPV3dMVDB1ejA1T1lo?=
 =?utf-8?B?YjBVMkxxK3lYd2ZPRncwb1RwVStOa1hZbEZCZHBGNXlhQ3VNQnhMVWlQRVZK?=
 =?utf-8?B?VEd1SkQ4NVBhOTU4SGZhQWY5ckV3eUV4S21BV0RzQVN2RXZtM3Z4bFYxdW4y?=
 =?utf-8?B?c1RSb3lLaWdXeXRxZk12MlkxTlFZL2VHM2RVZnhJU0l3aERDK0VHaTZnUVFq?=
 =?utf-8?B?NFNjcWxWcmljOHNhbndCMXZWcnRtb3BXbytDajg4ZlZKa3gxNHlVeHRCNW4z?=
 =?utf-8?B?REVQek5PRTVKdnVObFNvTktkMUFRaHdmZHZ5M0pnK1RaakFrdnRqcEd6V2hC?=
 =?utf-8?B?QllRSXl6RzlXRXYrRDlNSnpuTFE1M0lDc3ZwdHNZa2VsMWZqaFRwNHBIZ3g1?=
 =?utf-8?B?K0VVL0tpczZMRlBUTEViZ2xtdnZ5YmNVUnlEb2lHOXdobFRPSXRFeFRXV2dG?=
 =?utf-8?B?NXEwWnZYQjRMa1hGUjViTnhXSjNNOEhNOXh2UnQ0MVp2RlR2ZFFCcUQrWnpw?=
 =?utf-8?B?elBscVhHN1J3PT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?QXl3SzR4NmdFbGp4b1lDaE5CdHhWUlY2SFpzeWgrSjM1eE9UcEpZSU5tV21N?=
 =?utf-8?B?RmFxSTFwekVRcmpiM3Z4VmUxV2pNdDVaNWtvc3Z3N2Vsanp5MHB0b1lONE5r?=
 =?utf-8?B?VmxwTDdPK2tqMk5ZUXh5ZWlkMmZSTHFjays1WStGa1g0QU1wWHRKdE9OVUxF?=
 =?utf-8?B?UWxTSG1TUWRkRmpxdzZDTTdFWGN0NVord0l4L1VjNVZ6N0lVNi9zSU12RDdx?=
 =?utf-8?B?L3R3b0dQL1ZTSkJqajZVTkp2VnBUTSsybEt6dkE2Wi9YU21FdUdRNExoVXVM?=
 =?utf-8?B?N3hBWUVidlhiNlFsekFFQmhQTkJ5UW8veGY2NkxUVjJ5UFU5V09WcUVpS3do?=
 =?utf-8?B?Q2V6cGFjM3lMOXFINVZuMTA4VjM5MjdZMzYzaHhjdUtaRkx2UnloM0M2ZkVH?=
 =?utf-8?B?SEpPSWxDaGxJMlo1S1hBbmpXTG9rUTV1RGJ3ZVBMQ2VsVGJWVit5MHhRWk1n?=
 =?utf-8?B?Tmd2SkJPRE5qVTBRNXRlcDNZS25ia25hbHZhZ1Mrdlc4TTFwckdRVUZXMGxP?=
 =?utf-8?B?Sit6Mk5PQVRjK1dLZzlxUU1teStubXdJNUdyNTk0OGg4R2dOL3ZoOUR2T1du?=
 =?utf-8?B?MSthUHI5VjV2TUpFWnIwZHhWeHpQT0xPdTNkeFVJcW5zaWZVSWZsMWVoWlpF?=
 =?utf-8?B?N0RjK2pOY3NtZkFXalJhOW1WK25WaWhvMEVjc2dVRUxZVFhjUzhaZmZLRGhQ?=
 =?utf-8?B?Nlg3R0RqcUxJZFVJcDZkY3FxNndsUXZtT1dzTTJ4aTFCcDFFZklnUlp1TXoy?=
 =?utf-8?B?d1QwNmp5YThPbUgxaVNkR2tmK2tDZ0FZS1ZFOVh1Y0RUTGlkampVWWV1MFNF?=
 =?utf-8?B?RTZ0NFV5VlFuL0d0R3Fzd1dUdDRTMk9KMVZqRnNVZGw2T1gxWERMbEJ5S2V6?=
 =?utf-8?B?ZVlKYzd4VGdZSWdUL2F6Ym9HSTNMeEIvQlJzVm5MaSthcllNVVF3aGdMSk1Q?=
 =?utf-8?B?eXp2RWhicWh4Vm1wWGk0OXBRaThsMjBiOVFOczVheGRrZGxHV0x4VzYzdHRW?=
 =?utf-8?B?ampWQndWL3RobzdVMjFjbno2cHhEOW42SXhSZEM3YUNhbklNdFlweWlVY2FP?=
 =?utf-8?B?UzBuSlNHMElvcjhqTTF5UTUwTWhXZkg3azhSVlNhMzN6TVFtTnU5b3pWeEo4?=
 =?utf-8?B?dlJ2T0NPNlBURmdLL1lwRm1IZEY5d1U2UDdWbDdyQVRleXBxaTdMSDM4NHJk?=
 =?utf-8?B?dklmeHIrSzBhcEJSbzcyaTF1VlNSZjVZdDlJOEFIOGhjY0pzamFKS2dxeTNj?=
 =?utf-8?B?OFRhOU1JSUFkQlEzVnR2UUd3K2hWZWo4QUlGMFpEVXF5WFBTendRWi9EeHlB?=
 =?utf-8?B?YXczdS9IT2Jnck1qTEJWMTA0ellZT1YzUDdpeVJWYjN3WDlKWkhvSHdWdmYz?=
 =?utf-8?B?aS9KbDZyT3lkMDJ3Qjl1YlMranArQzlXQ3NTSE9ORUU1VzJpVVJscExtRk9E?=
 =?utf-8?B?dUE0bzNJKy9WTTNnNGZxbkl2UTRkbTN6Y1Q2YkNlN1poYnI2bTA4bGxNVUU2?=
 =?utf-8?B?dDdsc0ZmVEttZnNxLzJINUROOVFOWUtrNVlsd3ZlR012b2YrTDd3dVo2eXlu?=
 =?utf-8?B?TW1KMTRvWVRzQzBkMHc1blU3cVFFTFBzUnlYMVlIRytMS08yeTFUVFFzdHVu?=
 =?utf-8?B?TkVCSHF3UUZyREdrclM4RGx6TDBTNEpTMkN3SUdEcjRKUkRocHBKYkV0eWhy?=
 =?utf-8?B?YVFEenpYejlhTlJtUDVRZU5KMEIvbFNLU1YxbTlTSWMvRU9KTjVWV2l6Tk5S?=
 =?utf-8?B?ajVQQTd1eFpTbzNoa0swOXJVM1Q3VE9RSEhsaUxuK2FJS1Uvbkt5elEzVUR4?=
 =?utf-8?B?WGdYenRSRHgySURCekwzYU1KVnV1aWYyVy9vbndUQmNGZERPTEFhcXBhQTJl?=
 =?utf-8?B?d1BPRTg0YmplbEdpSjdSKzFreEIweUd2MWNBdk43Y2FiUWFWU0duZWVMZlh0?=
 =?utf-8?B?d2hsR1JzbEhWTmt3MnRoeE9pM2hOZkp3amliZVNNQ3ZwRC9hK1VUYWpFQzdr?=
 =?utf-8?B?dTlWdnI0M2RJRGt2ZlhLNGY3aFpLK2QyZEt2YXZZWjZIZVFLS3loU2toTzVz?=
 =?utf-8?B?R2FFamg2NEJ5bG9DVDNzZEZFTkllZ1pXVkkwUk9NVXViZ0VBYWJpWjkwMHhn?=
 =?utf-8?B?UHZOMlROWWY5ZGhOWGJXRWtQWTUvQzYxYlNoU29FVSs4bC9aWGNua05hQ3Np?=
 =?utf-8?Q?aNapFlS27WguTPqY/XvUXJo=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <A4718AEF821F28499F8EC7CC3DC6F20E@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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 65898e35-9beb-4a8c-013d-08dde56f12dd
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Aug 2025 13:38:57.6601
 (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: 3tsHxV/CUqblKTIbHUHbsUQY05tfjES33I1Spe0r2oc9HKQ19hL4XI9yBO+x+kcSwhEMncnKyWO2i9zXLJUzgO8nPssDidtdIXAFLs965ao=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB9098

SGVsbG8gT2xla3NhbmRyLA0KDQpUaGFuayB5b3UgZm9yIHlvdXIgZ29vZCBxdWVzdGlvbiwgSSB3
YXMgdGhpbmtpbmcgYWJvdXQgdGhhdCBhcyB3ZWxsLg0KDQpPbiAyNy4wOC4yNSAxMzoyNSwgT2xl
a3NhbmRyIFR5c2hjaGVua28gd3JvdGU6DQo+IA0KPiANCj4gT24gMjYuMDguMjUgMTc6MDUsIExl
b25pZCBLb21hcmlhbnNreWkgd3JvdGU6DQo+IA0KPiANCj4gSGVsbG8gTGVvbmlkLA0KPiANCj4g
SW4gZ2VuZXJhbCBwYXRjaCBsb29rcyBnb29kIHRvIG1lLCBqdXN0IG9uZSBxdWVzdGlvbiBiZWxv
dyAuLi4NCj4gDQo+PiBJbnRyb2R1Y2VkIGFwcHJvcHJpYXRlIHJlZ2lzdGVyIGRlZmluaXRpb25z
LCBoZWxwZXIgbWFjcm9zLA0KPj4gYW5kIGluaXRpYWxpemF0aW9uIG9mIHJlcXVpcmVkIEdJQ3Yz
LjEgZGlzdHJpYnV0b3IgcmVnaXN0ZXJzDQo+PiB0byBzdXBwb3J0IGVTUEkuIFRoaXMgdHlwZSBv
ZiBpbnRlcnJ1cHQgaXMgaGFuZGxlZCBpbiB0aGUNCj4+IHNhbWUgd2F5IGFzIHJlZ3VsYXIgU1BJ
IGludGVycnVwdHMsIHdpdGggdGhlIGZvbGxvd2luZw0KPj4gZGlmZmVyZW5jZXM6DQo+Pg0KPj4g
MSkgZVNQSXMgY2FuIGhhdmUgdXAgdG8gMTAyNCBpbnRlcnJ1cHRzLCBzdGFydGluZyBmcm9tIHRo
ZQ0KPj4gYmVnaW5uaW5nIG9mIHRoZSByYW5nZSwgd2hlcmVhcyByZWd1bGFyIFNQSXMgdXNlIElO
VElEcyBmcm9tDQo+PiAzMiB0byAxMDE5LCB0b3RhbGluZyA5ODggaW50ZXJydXB0czsNCj4+IDIp
IGVTUElzIHN0YXJ0IGF0IElOVElEIDQwOTYsIG5lY2Vzc2l0YXRpbmcgYWRkaXRpb25hbCBpbnRl
cnJ1cHQNCj4+IGluZGV4IGNvbnZlcnNpb24gZHVyaW5nIHJlZ2lzdGVyIG9wZXJhdGlvbnMuDQo+
Pg0KPj4gSW4gY2FzZSBpZiBhcHByb3ByaWF0ZSBjb25maWcgaXMgZGlzYWJsZWQsIG9yIEdJQyBI
VyBkb2Vzbid0DQo+PiBzdXBwb3J0IGVTUEksIHRoZSBleGlzdGluZyBmdW5jdGlvbmFsaXR5IHdp
bGwgcmVtYWluIHRoZSBzYW1lLg0KPj4NCj4+IFNpZ25lZC1vZmYtYnk6IExlb25pZCBLb21hcmlh
bnNreWkgPGxlb25pZF9rb21hcmlhbnNreWlAZXBhbS5jb20+DQo+Pg0KPj4gLS0tDQo+PiBDaGFu
Z2VzIGluIFYyOg0KPj4gLSBtb3ZlIGdpY19udW1iZXJfZXNwaXMgZnVuY3Rpb24gZnJvbQ0KPj4g
wqDCoCBbUEFUQ0ggMDgvMTBdIHhlbi9hcm06IHZnaWM6IGFkZCByZXNvdXJjZSBtYW5hZ2VtZW50
IGZvciBleHRlbmRlZCBTUElzDQo+PiDCoMKgIHRvIHVzZSBpdCBpbiB0aGUgbmV3bHkgaW50cm9k
dWNlZCBnaWNfaXNfdmFsaWRfZXNwaQ0KPj4gLSBhZGQgZ2ljX2lzX3ZhbGlkX2VzcGkgd2hpY2gg
Y2hlY2tzIGlmIElSUSBudW1iZXIgaXMgaW4gc3VwcG9ydGVkDQo+PiDCoMKgIGJ5IEhXIGVTUEkg
cmFuZ2UNCj4+IC0gdXBkYXRlIGdpY19pc192YWxpZF9pcnEgY29uZGl0aW9ucyB0byBhbGxvdyBv
cGVyYXRpb25zIHdpdGggZVNQSXMNCj4+DQo+PiBDaGFuZ2VzIGluIFYzOg0KPj4gLSBhZGQgX19p
bml0IGF0dHJpYnV0ZSB0byBnaWN2M19kaXN0X2VzcGlfY29tbW9uX2luaXQNCj4+IC0gY2hhbmdl
IG9wZW4tY29kZGVkIGVTUEkgcmVnaXN0ZXIgaW5pdGlhbGl6YXRpb24gdG8gdGhlIGFwcHJvcHJp
YXRlDQo+PiDCoMKgIGdlbi1tYXNrIG1hY3JvDQo+PiAtIGZpeGVkIGZvcm1hdHRpbmcgZm9yIGxp
bmVzIHdpdGggbW9yZSB0aGFuIDgwIHN5bWJvbHMNCj4+IC0gaW50cm9kdWNlZCBnaWN2M19kaXN0
X2VzcGlfaW5pdF9hZmYgdG8gYmUgYWJsZSB0byB1c2Ugc3R1YnMgaW4gY2FzZSBvZg0KPj4gwqDC
oCBDT05GSUdfR0lDVjNfRVNQSSBkaXNhYmxlZA0KPj4gLSByZW5hbWVkIHBhcmFtZXRlciBpbiB0
aGUgR0lDRF9UWVBFUl9FU1BJX1JBTkdFIG1hY3JvIHRvIGVzcGlfcmFuZ2UNCj4+IMKgwqAgKG5h
bWUgd2FzIHRha2VuIGZyb20gR0lDIHNwZWNpZmljYXRpb24pIHRvIGF2b2lkIGNvbmZ1c2lvbg0K
Pj4gLSBjaGFuZ2VkIHR5cGUgZm9yIGkgdmFyaWFibGUgdG8gdW5zaWduZWQgaW50IHNpbmNlIGl0
IGNhbm5vdCBiZQ0KPj4gwqDCoCBuZWdhdGl2ZQ0KPj4gLS0tDQo+PiDCoCB4ZW4vYXJjaC9hcm0v
Z2ljLXYzLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwgODAgKysrKysrKysr
KysrKysrKysrKysrKysrKysNCj4+IMKgIHhlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9naWMuaMKg
wqDCoMKgwqDCoMKgwqAgfCAyMSArKysrKysrDQo+PiDCoCB4ZW4vYXJjaC9hcm0vaW5jbHVkZS9h
c20vZ2ljX3YzX2RlZnMuaCB8IDM0ICsrKysrKysrKysrDQo+PiDCoCAzIGZpbGVzIGNoYW5nZWQs
IDEzNSBpbnNlcnRpb25zKCspDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9naWMt
djMuYyBiL3hlbi9hcmNoL2FybS9naWMtdjMuYw0KPj4gaW5kZXggYTk1OWZlZmViZS4uM2FhNWNj
MTc2NSAxMDA2NDQNCj4+IC0tLSBhL3hlbi9hcmNoL2FybS9naWMtdjMuYw0KPj4gKysrIGIveGVu
L2FyY2gvYXJtL2dpYy12My5jDQo+PiBAQCAtNDg1LDYgKzQ4NSwzNiBAQCBzdGF0aWMgdm9pZCBf
X2lvbWVtICpnZXRfYWRkcl9ieV9vZmZzZXQoc3RydWN0IA0KPj4gaXJxX2Rlc2MgKmlycWQsIHUz
MiBvZmZzZXQpDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgZGVmYXVsdDoNCj4+IMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgIGJyZWFrOw0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIH0NCj4+ICsjaWZk
ZWYgQ09ORklHX0dJQ1YzX0VTUEkNCj4+ICvCoMKgwqAgY2FzZSBFU1BJX0JBU0VfSU5USUQgLi4u
IEVTUElfTUFYX0lOVElEOg0KPj4gK8KgwqDCoCB7DQo+PiArwqDCoMKgwqDCoMKgwqAgdTMyIGly
cV9pbmRleCA9IEVTUElfSU5USUQySURYKGlycWQtPmlycSk7DQo+PiArDQo+PiArwqDCoMKgwqDC
oMKgwqAgc3dpdGNoICggb2Zmc2V0ICkNCj4+ICvCoMKgwqDCoMKgwqDCoCB7DQo+PiArwqDCoMKg
wqDCoMKgwqAgY2FzZSBHSUNEX0lTRU5BQkxFUjoNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
IHJldHVybiAoR0lDRCArIEdJQ0RfSVNFTkFCTEVSbkUgKyAoaXJxX2luZGV4IC8gMzIpICogNCk7
DQo+PiArwqDCoMKgwqDCoMKgwqAgY2FzZSBHSUNEX0lDRU5BQkxFUjoNCj4+ICvCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgIHJldHVybiAoR0lDRCArIEdJQ0RfSUNFTkFCTEVSbkUgKyAoaXJxX2luZGV4
IC8gMzIpICogNCk7DQo+PiArwqDCoMKgwqDCoMKgwqAgY2FzZSBHSUNEX0lTUEVORFI6DQo+PiAr
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gKEdJQ0QgKyBHSUNEX0lTUEVORFJuRSArIChp
cnFfaW5kZXggLyAzMikgKiA0KTsNCj4+ICvCoMKgwqDCoMKgwqDCoCBjYXNlIEdJQ0RfSUNQRU5E
UjoNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiAoR0lDRCArIEdJQ0RfSUNQRU5E
Um5FICsgKGlycV9pbmRleCAvIDMyKSAqIDQpOw0KPj4gK8KgwqDCoMKgwqDCoMKgIGNhc2UgR0lD
RF9JU0FDVElWRVI6DQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gKEdJQ0QgKyBH
SUNEX0lTQUNUSVZFUm5FICsgKGlycV9pbmRleCAvIDMyKSAqIDQpOw0KPj4gK8KgwqDCoMKgwqDC
oMKgIGNhc2UgR0lDRF9JQ0FDVElWRVI6DQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1
cm4gKEdJQ0QgKyBHSUNEX0lDQUNUSVZFUm5FICsgKGlycV9pbmRleCAvIDMyKSAqIDQpOw0KPj4g
K8KgwqDCoMKgwqDCoMKgIGNhc2UgR0lDRF9JQ0ZHUjoNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgIHJldHVybiAoR0lDRCArIEdJQ0RfSUNGR1JuRSArIChpcnFfaW5kZXggLyAxNikgKiA0KTsN
Cj4+ICvCoMKgwqDCoMKgwqDCoCBjYXNlIEdJQ0RfSVJPVVRFUjoNCj4+ICvCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgIHJldHVybiAoR0lDRCArIEdJQ0RfSVJPVVRFUm5FICsgaXJxX2luZGV4ICogOCk7
DQo+PiArwqDCoMKgwqDCoMKgwqAgY2FzZSBHSUNEX0lQUklPUklUWVI6DQo+PiArwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoCByZXR1cm4gKEdJQ0QgKyBHSUNEX0lQUklPUklUWVJuRSArIGlycV9pbmRl
eCk7DQo+PiArwqDCoMKgwqDCoMKgwqAgZGVmYXVsdDoNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgIGJyZWFrOw0KPj4gK8KgwqDCoMKgwqDCoMKgIH0NCj4+ICvCoMKgwqAgfQ0KPj4gKyNlbmRp
Zg0KPj4gwqDCoMKgwqDCoCBkZWZhdWx0Og0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGJyZWFrOw0K
Pj4gwqDCoMKgwqDCoCB9DQo+PiBAQCAtNjU1LDYgKzY4NSw1MiBAQCBzdGF0aWMgdm9pZCBnaWN2
M19zZXRfaXJxX3ByaW9yaXR5KHN0cnVjdCANCj4+IGlycV9kZXNjICpkZXNjLA0KPj4gwqDCoMKg
wqDCoCBzcGluX3VubG9jaygmZ2ljdjMubG9jayk7DQo+PiDCoCB9DQo+PiArI2lmZGVmIENPTkZJ
R19HSUNWM19FU1BJDQo+PiArdW5zaWduZWQgaW50IGdpY19udW1iZXJfZXNwaXModm9pZCkNCj4+
ICt7DQo+PiArwqDCoMKgIHJldHVybiBnaWNfaHdfb3BzLT5pbmZvLT5ucl9lc3BpOw0KPj4gK30N
Cj4+ICsNCj4+ICtzdGF0aWMgdm9pZCBfX2luaXQgZ2ljdjNfZGlzdF9lc3BpX2NvbW1vbl9pbml0
KHVpbnQzMl90IHR5cGUpDQo+PiArew0KPj4gK8KgwqDCoCB1bnNpZ25lZCBpbnQgZXNwaV9uciwg
aTsNCj4+ICsNCj4+ICvCoMKgwqAgZXNwaV9uciA9IG1pbigxMDI0VSwgR0lDRF9UWVBFUl9FU1BJ
U19OVU0odHlwZSkpOw0KPj4gK8KgwqDCoCBnaWN2M19pbmZvLm5yX2VzcGkgPSBlc3BpX25yOw0K
Pj4gK8KgwqDCoCAvKiBUaGUgR0lDIEhXIGRvZXNuJ3Qgc3VwcG9ydCBlU1BJLCBzbyB3ZSBjYW4g
bGVhdmUgZnJvbSBoZXJlICovDQo+PiArwqDCoMKgIGlmICggZ2ljdjNfaW5mby5ucl9lc3BpID09
IDAgKQ0KPj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybjsNCj4+ICsNCj4+ICvCoMKgwqAgZm9yICgg
aSA9IDA7IGkgPCBlc3BpX25yOyBpICs9IDE2ICkNCj4+ICvCoMKgwqDCoMKgwqDCoCB3cml0ZWxf
cmVsYXhlZCgwLCBHSUNEICsgR0lDRF9JQ0ZHUm5FICsgKGkgLyAxNikgKiA0KTsNCj4+ICsNCj4+
ICvCoMKgwqAgZm9yICggaSA9IDA7IGkgPCBlc3BpX25yOyBpICs9IDQgKQ0KPj4gK8KgwqDCoMKg
wqDCoMKgIHdyaXRlbF9yZWxheGVkKEdJQ19QUklfSVJRX0FMTCwNCj4+ICvCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBHSUNEICsgR0lDRF9JUFJJT1JJVFlSbkUg
KyAoaSAvIDQpICogNCk7DQo+PiArDQo+PiArwqDCoMKgIGZvciAoIGkgPSAwOyBpIDwgZXNwaV9u
cjsgaSArPSAzMiApDQo+PiArwqDCoMKgIHsNCj4+ICvCoMKgwqDCoMKgwqDCoCB3cml0ZWxfcmVs
YXhlZChHRU5NQVNLKDMxLCAwKSwgR0lDRCArIEdJQ0RfSUNFTkFCTEVSbkUgKyAoaSAvIA0KPj4g
MzIpICogNCk7DQo+PiArwqDCoMKgwqDCoMKgwqAgd3JpdGVsX3JlbGF4ZWQoR0VOTUFTSygzMSwg
MCksIEdJQ0QgKyBHSUNEX0lDQUNUSVZFUm5FICsgKGkgLyANCj4+IDMyKSAqIDQpOw0KPj4gK8Kg
wqDCoCB9DQo+PiArDQo+PiArwqDCoMKgIGZvciAoIGkgPSAwOyBpIDwgZXNwaV9ucjsgaSArPSAz
MiApDQo+PiArwqDCoMKgwqDCoMKgwqAgd3JpdGVsX3JlbGF4ZWQoR0VOTUFTSygzMSwgMCksIEdJ
Q0QgKyBHSUNEX0lHUk9VUFJuRSArIChpIC8gDQo+PiAzMikgKiA0KTsNCj4+ICt9DQo+PiArDQo+
PiArc3RhdGljIHZvaWQgX19pbml0IGdpY3YzX2Rpc3RfZXNwaV9pbml0X2FmZih1aW50NjRfdCBh
ZmZpbml0eSkNCj4+ICt7DQo+PiArwqDCoMKgIHVuc2lnbmVkIGludCBpOw0KPj4gKw0KPj4gK8Kg
wqDCoCBmb3IgKCBpID0gMDsgaSA8IGdpY3YzX2luZm8ubnJfZXNwaTsgaSsrICkNCj4+ICvCoMKg
wqDCoMKgwqDCoCB3cml0ZXFfcmVsYXhlZF9ub25fYXRvbWljKGFmZmluaXR5LCBHSUNEICsgR0lD
RF9JUk9VVEVSbkUgKyBpIA0KPj4gKiA4KTsNCj4+ICt9DQo+PiArI2Vsc2UNCj4+ICtzdGF0aWMg
dm9pZCBfX2luaXQgZ2ljdjNfZGlzdF9lc3BpX2NvbW1vbl9pbml0KHVpbnQzMl90IHR5cGUpIHsg
fQ0KPj4gKw0KPj4gK3N0YXRpYyB2b2lkIF9faW5pdCBnaWN2M19kaXN0X2VzcGlfaW5pdF9hZmYo
dWludDY0X3QgYWZmaW5pdHkpIHsgfQ0KPj4gKyNlbmRpZg0KPj4gKw0KPj4gwqAgc3RhdGljIHZv
aWQgX19pbml0IGdpY3YzX2Rpc3RfaW5pdCh2b2lkKQ0KPj4gwqAgew0KPj4gwqDCoMKgwqDCoCB1
aW50MzJfdCB0eXBlOw0KPj4gQEAgLTcwMCw2ICs3NzYsOCBAQCBzdGF0aWMgdm9pZCBfX2luaXQg
Z2ljdjNfZGlzdF9pbml0KHZvaWQpDQo+PiDCoMKgwqDCoMKgIGZvciAoIGkgPSBOUl9HSUNfTE9D
QUxfSVJRUzsgaSA8IG5yX2xpbmVzOyBpICs9IDMyICkNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCB3
cml0ZWxfcmVsYXhlZChHRU5NQVNLKDMxLCAwKSwgR0lDRCArIEdJQ0RfSUdST1VQUiArIChpIC8g
DQo+PiAzMikgKiA0KTsNCj4gDQo+IA0KPiBUaGVyZSBpcyBhIGJhbm5lciBpbiB0aGlzIGZ1bmN0
aW9uIChub3QgdmlzaWJsZSBmcm9tIHRoZSBwYXRjaCBjb250ZXh0KSwgDQo+IHRoYXQgcHJpbnRz
IG5yX2xpbmVzLCBldGMuDQo+IA0KPiBFLmcuOg0KPiAoWEVOKSBHSUN2MzogMjg4IGxpbmVzLCAo
SUlEIDAwMDAwNDNiKS4NCj4gDQo+IFdoYXQgZG8geW91IHRoaW5rLCB3b3VsZCBpdCBiZSBpbXBv
cnRhbnQvdmFsdWFibGUgdG8gYWxzbyBwcmludCBucl9lc3BpIA0KPiBpZiBub24temVybyAoZXh0
ZW5kZWQgU1BJIHJhbmdlIGlzIHN1cHBvcnRlZCk/DQo+IA0KPiANCg0KSSB0aGluayBzbywgaXQg
d2lsbCBiZSB1c2VmdWwuIEJ5IHRoZSB3YXksIG5hdGl2ZSBMaW51eCBwcmludHMgdGhpcyANCmlu
Zm9ybWF0aW9uLCBzbyBJIHdvdWxkIHByZWZlciB0byBhZGQgYSBtZXNzYWdlIHJpZ2h0IGFmdGVy
IGNoZWNraW5nIGlmIA0KdGhlIGhhcmR3YXJlIHN1cHBvcnRzIGVTUEk6DQogICAgIC8qIFRoZSBH
SUMgSFcgZG9lc24ndCBzdXBwb3J0IGVTUEksIHNvIHdlIGNhbiBsZWF2ZSBmcm9tIGhlcmUgKi8N
CiAgICAgaWYgKCBnaWN2M19pbmZvLm5yX2VzcGkgPT0gMCApDQogICAgICAgICByZXR1cm47DQoN
CiAgICAgcHJpbnRrKCJHSUN2MzogJWQgZVNQSSBsaW5lc1xuIiwgZ2ljdjNfaW5mby5ucl9lc3Bp
KTsNCg0KVGhpcyBsb2cgd2lsbCBhcHBlYXIgcmlnaHQgYWZ0ZXIgdGhlIGNvbW1vbiBvbmUgYW5k
IHdpbGwgbG9vayBsaWtlIHRoaXM6DQooWEVOKSBHSUN2MzogOTg4IGxpbmVzLCAoSUlEIDAwMDAw
NDNiKQ0KKFhFTikgR0lDdjM6IDEwMjQgZVNQSSBsaW5lcw0KDQo+PiArwqDCoMKgIGdpY3YzX2Rp
c3RfZXNwaV9jb21tb25faW5pdCh0eXBlKTsNCj4+ICsNCj4+IMKgwqDCoMKgwqAgZ2ljdjNfZGlz
dF93YWl0X2Zvcl9yd3AoKTsNCj4+IMKgwqDCoMKgwqAgLyogVHVybiBvbiB0aGUgZGlzdHJpYnV0
b3IgKg0KPj4gQEAgLTcxMyw2ICs3OTEsOCBAQCBzdGF0aWMgdm9pZCBfX2luaXQgZ2ljdjNfZGlz
dF9pbml0KHZvaWQpDQo+PiDCoMKgwqDCoMKgIGZvciAoIGkgPSBOUl9HSUNfTE9DQUxfSVJRUzsg
aSA8IG5yX2xpbmVzOyBpKysgKQ0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHdyaXRlcV9yZWxheGVk
X25vbl9hdG9taWMoYWZmaW5pdHksIEdJQ0QgKyBHSUNEX0lST1VURVIgKyBpIA0KPj4gKiA4KTsN
Cj4+ICsNCj4+ICvCoMKgwqAgZ2ljdjNfZGlzdF9lc3BpX2luaXRfYWZmKGFmZmluaXR5KTsNCj4+
IMKgIH0NCj4+DQo+IA0KPiANCj4gW3NuaXBdDQo+IA0KPiANCj4gDQoNCkJlc3QgcmVnYXJkcywN
Ckxlb25pZC4=


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 13:44:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 13:44:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096082.1450881 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urGRw-0006t1-Tx; Wed, 27 Aug 2025 13:44:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096082.1450881; Wed, 27 Aug 2025 13:44: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 1urGRw-0006su-Qj; Wed, 27 Aug 2025 13:44:28 +0000
Received: by outflank-mailman (input) for mailman id 1096082;
 Wed, 27 Aug 2025 13:44:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BCET=3H=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1urGRv-0006so-Op
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 13:44:27 +0000
Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com
 [2a00:1450:4864:20::132])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f276479c-834b-11f0-aeb2-fb57b961d000;
 Wed, 27 Aug 2025 15:44:26 +0200 (CEST)
Received: by mail-lf1-x132.google.com with SMTP id
 2adb3069b0e04-55ce5243f6dso7332173e87.2
 for <xen-devel@lists.xenproject.org>; Wed, 27 Aug 2025 06:44:26 -0700 (PDT)
Received: from [192.168.0.110] ([91.123.151.69])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-55f35c20123sm2830243e87.68.2025.08.27.06.44.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Aug 2025 06:44: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>
X-Inumbo-ID: f276479c-834b-11f0-aeb2-fb57b961d000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756302266; x=1756907066; 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=SQUYcwoWEyv3/kVUqRL3MNbyDx5dY8DehRbYIKGYuCs=;
        b=IiaYVVA+83sZmecF08iW1rdjUxnROk4o564vpJNhIsoBJSSnRsXWD4RfrNRhNlvtq6
         K1wagrW2+aFtyop3SG6dJ+/iuOIWREXJrQj6mHsbQgcyGuQ9YQsNJJ3ffMeZMGnD19W3
         DYMFHGCxRvzDWAlZbR+ZSiO75ctwCMOA85tIvy5aLoHSjjznmFps55NeSoft3Dct+qc5
         bIRRAA9P69RGwZ8f+Wfu1bsAe7iVrZl2+ztt7UywRX6Uoplo9Q1phEwiKEhI9h8ZIuJM
         1p/R2grveJO5jnugT/5i8ouaw8dxkkHXIWjjqz50rRGtJQ8z4IgXN7GJa35nI9wuVx7g
         SM7g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756302266; x=1756907066;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=SQUYcwoWEyv3/kVUqRL3MNbyDx5dY8DehRbYIKGYuCs=;
        b=NYLy3bwphR4bgfJicxhybURRBk+qRN2lbq28U0hHknYyN59oVLOpcH9fdeLPifnh15
         Eh9PWyIm/z3eFLNhILgziQ0BtV+s13aJzzwPRPUemi+rExZqV//XwXa4QjxX3l/OyfSo
         DFujeHrpfJU5GzpxVrUM4WMzKwHYK7ycx/C9SVLLQyto6ZWRhs5zG5AFEzUB8uMQxepq
         qYo9beGkfH4JeFjSYNZ1m5ZENu83z7uqWEO17ZwoNUk8SMQ2gwnl9Ky1cHFVKt6FO8Lz
         Y2NY18u7KXJhW4g2nhUZyY5pnNCu6ZdG0GC7wfU92lBA2Tn0s0cXPdJhc5nGyez4pjBg
         3MqQ==
X-Forwarded-Encrypted: i=1; AJvYcCVNByoBatOR4GMQ/npeUt1kK/NKqsY5rH+710nFl6OmQ2yKJL5otSG+uPtq5rQrGt7rcEg7wQVfpec=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzzLwKOJK7os1xwIHGuIxX+ZnAs91dyiN6GE3bfc3LPicyCgiYu
	LQsK5kMnrBAUaBLTJ/kKrXL9/y1b7oGpIJrKOlnW2WFmI02EssBKgYaX
X-Gm-Gg: ASbGncupwsj7iVTU3moeYSYpUJ85s9bOkxCrO8Bruzw5AbeEGaR2gklYS2ZtbxO9DGy
	2xjmS1cO8+hgIu9izCpSjfNKrjaUY4tYZ8+v+lYka0YXr8zOcVC/SN6bsH2Q793grFDHfTAr/fI
	x+D8kiG0cAAhctyVn0ZM0mdRnzcyovSp2i6nW0aIpZUw5qaaKxt6JJBUIMsTLKt02GE060d7aC3
	NNxAnUwdGyYBN/R8t1OqvRI5w5jayBWftglRbxyhjHa6IhRApcFiNFItIG5K5SIghqkbFbGxU4x
	VOOpBmQJwnTcaoAIjsNnztKAJ6leLVZqoXB2sGEMz2KYLYUlPpZ0N1ojTt7W+yf8yNWKnKve1Ni
	TjSoiFvk7PVQg1P/08vMMuuKEmz4sHGhPqHUNIERPniUiMQA=
X-Google-Smtp-Source: AGHT+IF5OQfuHLS9bx2NxGVm44L1hzyeRBTseXmnUjPy8HHqQDvTnOdShtpnl/eJibjuWTbod1PdmA==
X-Received: by 2002:a05:6512:3e13:b0:55c:e95e:cd63 with SMTP id 2adb3069b0e04-55f0ccce878mr5726122e87.30.1756302265317;
        Wed, 27 Aug 2025 06:44:25 -0700 (PDT)
Message-ID: <7b0e2df4-9666-4f7b-9ada-9f1000200fd3@gmail.com>
Date: Wed, 27 Aug 2025 16:44:23 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 10/11] xen/arm: vgic-v3: add emulation of GICv3.1 eSPI
 registers
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1756216942.git.leonid_komarianskyi@epam.com>
 <642a994d712a8c9df7aed9dec22124564db83c7e.1756216943.git.leonid_komarianskyi@epam.com>
 <5a84d20c-5136-4151-8801-b0fbccaf23d7@gmail.com>
 <d71bd33e-ec09-47e5-af68-b8a79c78971d@epam.com>
Content-Language: en-US
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
In-Reply-To: <d71bd33e-ec09-47e5-af68-b8a79c78971d@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit



On 27.08.25 14:13, Leonid Komarianskyi wrote:
> Hello Oleksandr,

Hello Leonid

> 
> Thank you for your close review.
> 
> On 26.08.25 22:57, Oleksandr Tyshchenko wrote:
>>
>>
>> On 26.08.25 17:05, Leonid Komarianskyi wrote:
>>
>> Hello Leonid
>>
>>
>>> Implemented support for GICv3.1 extended SPI registers for vGICv3,
>>> allowing the emulation of eSPI-specific behavior for guest domains.
>>> The implementation includes read and write emulation for eSPI-related
>>> registers (e.g., GICD_ISENABLERnE, GICD_IROUTERnE, and others),
>>> following a similar approach to the handling of regular SPIs.
>>>
>>> The eSPI registers, previously located in reserved address ranges,
>>> are now adjusted to support MMIO read and write operations correctly
>>> when CONFIG_GICV3_ESPI is enabled.
>>>
>>> The availability of eSPIs and the number of emulated extended SPIs
>>> for guest domains is reported by setting the appropriate bits in the
>>> GICD_TYPER register, based on the number of eSPIs requested by the
>>> domain and supported by the hardware. In cases where the configuration
>>> option is disabled, the hardware does not support eSPIs, or the domain
>>> does not request such interrupts, the functionality remains unchanged.
>>>
>>> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
>>>
>>> ---
>>> Changes in V2:
>>> - add missing rank index conversion for pending and inflight irqs
>>>
>>> Changes in V3:
>>> - changed vgic_store_irouter parameters - instead of offset virq is
>>>  Â Â  used, to remove the additional bool espi parameter and simplify
>>>  Â Â  checks. Also, adjusted parameters for regular SPI. Since the offset
>>>  Â Â  parameter was used only for calculating virq number and then reused
>>> for
>>>  Â Â  finding rank offset, it will not affect functionality.
>>> - fixed formatting for goto lables - added newlines after condition
>>> - fixed logs for GICD_ISACTIVERnE and GICD_ICACTIVERnE handlers
>>> - removed #ifdefs in 2 places where they were adjacent and could be
>>> merged
>>> ---
>>>  Â  xen/arch/arm/vgic-v3.c | 275 +++++++++++++++++++++++++++++++++++++++--
>>>  Â  1 file changed, 266 insertions(+), 9 deletions(-)
>>>
>>> diff --git a/xen/arch/arm/vgic-v3.c b/xen/arch/arm/vgic-v3.c
>>> index 4369c55177..56c539bb1b 100644
>>> --- a/xen/arch/arm/vgic-v3.c
>>> +++ b/xen/arch/arm/vgic-v3.c
>>> @@ -111,13 +111,10 @@ static uint64_t vgic_fetch_irouter(struct
>>> vgic_irq_rank *rank,
>>>  Â Â  * Note the offset will be aligned to the appropriate boundary.
>>>  Â Â  */
>>>  Â  static void vgic_store_irouter(struct domain *d, struct
>>> vgic_irq_rank *rank,
>>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  unsigned int offset, uint64_t irouter)
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  unsigned int virq, uint64_t irouter)
>>>  Â  {
>>>  Â Â Â Â Â  struct vcpu *new_vcpu, *old_vcpu;
>>> -Â Â Â  unsigned int virq;
>>> -
>>> -Â Â Â  /* There is 1 vIRQ per IROUTER */
>>> -Â Â Â  virq = offset / NR_BYTES_PER_IROUTER;
>>> +Â Â Â  unsigned int offset;
>>>  Â Â Â Â Â  /*
>>>  Â Â Â Â Â Â  * The IROUTER0-31, used for SGIs/PPIs, are reserved and should
>>> @@ -685,6 +682,9 @@ static int __vgic_v3_distr_common_mmio_read(const
>>> char *name, struct vcpu *v,
>>>  Â Â Â Â Â  {
>>>  Â Â Â Â Â  case VRANGE32(GICD_IGROUPR, GICD_IGROUPRN):
>>>  Â Â Â Â Â  case VRANGE32(GICD_IGRPMODR, GICD_IGRPMODRN):
>>> +#ifdef CONFIG_GICV3_ESPI
>>> +Â Â Â  case VRANGE32(GICD_IGROUPRnE, GICD_IGROUPRnEN):
>>> +#endif
>>>  Â Â Â Â Â Â Â Â Â  /* We do not implement security extensions for guests, read
>>> zero */
>>>  Â Â Â Â Â Â Â Â Â  if ( dabt.size != DABT_WORD ) goto bad_width;
>>>  Â Â Â Â Â Â Â Â Â  goto read_as_zero;
>>> @@ -710,11 +710,19 @@ static int
>>> __vgic_v3_distr_common_mmio_read(const char *name, struct vcpu *v,
>>>  Â Â Â Â Â  /* Read the pending status of an IRQ via GICD/GICR is not
>>> supported */
>>>  Â Â Â Â Â  case VRANGE32(GICD_ISPENDR, GICD_ISPENDRN):
>>>  Â Â Â Â Â  case VRANGE32(GICD_ICPENDR, GICD_ICPENDRN):
>>> +#ifdef CONFIG_GICV3_ESPI
>>> +Â Â Â  case VRANGE32(GICD_ISPENDRnE, GICD_ISPENDRnEN):
>>> +Â Â Â  case VRANGE32(GICD_ICPENDRnE, GICD_ICPENDRnEN):
>>> +#endif
>>>  Â Â Â Â Â Â Â Â Â  goto read_as_zero;
>>>  Â Â Â Â Â  /* Read the active status of an IRQ via GICD/GICR is not
>>> supported */
>>>  Â Â Â Â Â  case VRANGE32(GICD_ISACTIVER, GICD_ISACTIVERN):
>>>  Â Â Â Â Â  case VRANGE32(GICD_ICACTIVER, GICD_ICACTIVERN):
>>> +#ifdef CONFIG_GICV3_ESPI
>>> +Â Â Â  case VRANGE32(GICD_ISACTIVERnE, GICD_ISACTIVERnEN):
>>> +Â Â Â  case VRANGE32(GICD_ICACTIVERnE, GICD_ICACTIVERnEN):
>>> +#endif
>>>  Â Â Â Â Â Â Â Â Â  goto read_as_zero;
>>>  Â Â Â Â Â  case VRANGE32(GICD_IPRIORITYR, GICD_IPRIORITYRN):
>>> @@ -752,6 +760,69 @@ static int __vgic_v3_distr_common_mmio_read(const
>>> char *name, struct vcpu *v,
>>>  Â Â Â Â Â Â Â Â Â  return 1;
>>>  Â Â Â Â Â  }
>>> +#ifdef CONFIG_GICV3_ESPI
>>> +Â Â Â  case VRANGE32(GICD_ISENABLERnE, GICD_ISENABLERnEN):
>>> +Â Â Â Â Â Â Â  if ( dabt.size != DABT_WORD )
>>> +Â Â Â Â Â Â Â Â Â Â Â  goto bad_width;
>>> +Â Â Â Â Â Â Â  rank = vgic_ext_rank_offset(v, 1, reg - GICD_ISENABLERnE,
>>> DABT_WORD);
>>> +Â Â Â Â Â Â Â  if ( rank == NULL )
>>> +Â Â Â Â Â Â Â Â Â Â Â  goto read_as_zero;
>>> +Â Â Â Â Â Â Â  vgic_lock_rank(v, rank, flags);
>>> +Â Â Â Â Â Â Â  *r = vreg_reg32_extract(rank->ienable, info);
>>> +Â Â Â Â Â Â Â  vgic_unlock_rank(v, rank, flags);
>>> +Â Â Â Â Â Â Â  return 1;
>>> +
>>> +Â Â Â  case VRANGE32(GICD_ICENABLERnE, GICD_ICENABLERnEN):
>>> +Â Â Â Â Â Â Â  if ( dabt.size != DABT_WORD )
>>> +Â Â Â Â Â Â Â Â Â Â Â  goto bad_width;
>>> +Â Â Â Â Â Â Â  rank = vgic_ext_rank_offset(v, 1, reg - GICD_ICENABLERnE,
>>> DABT_WORD);
>>> +Â Â Â Â Â Â Â  if ( rank == NULL )
>>> +Â Â Â Â Â Â Â Â Â Â Â  goto read_as_zero;
>>> +Â Â Â Â Â Â Â  vgic_lock_rank(v, rank, flags);
>>> +Â Â Â Â Â Â Â  *r = vreg_reg32_extract(rank->ienable, info);
>>> +Â Â Â Â Â Â Â  vgic_unlock_rank(v, rank, flags);
>>> +Â Â Â Â Â Â Â  return 1;
>>> +
>>> +Â Â Â  case VRANGE32(GICD_IPRIORITYRnE, GICD_IPRIORITYRnEN):
>>> +Â Â Â  {
>>> +Â Â Â Â Â Â Â  uint32_t ipriorityr;
>>> +Â Â Â Â Â Â Â  uint8_t rank_index;
>>> +
>>> +Â Â Â Â Â Â Â  if ( dabt.size != DABT_BYTE && dabt.size != DABT_WORD )
>>> +Â Â Â Â Â Â Â Â Â Â Â  goto bad_width;
>>> +Â Â Â Â Â Â Â  rank = vgic_ext_rank_offset(v, 8, reg - GICD_IPRIORITYRnE,
>>> DABT_WORD);
>>> +Â Â Â Â Â Â Â  if ( rank == NULL )
>>> +Â Â Â Â Â Â Â Â Â Â Â  goto read_as_zero;
>>> +Â Â Â Â Â Â Â  rank_index = REG_RANK_INDEX(8, reg - GICD_IPRIORITYRnE,
>>> DABT_WORD);
>>> +
>>> +Â Â Â Â Â Â Â  vgic_lock_rank(v, rank, flags);
>>> +Â Â Â Â Â Â Â  ipriorityr = ACCESS_ONCE(rank->ipriorityr[rank_index]);
>>> +Â Â Â Â Â Â Â  vgic_unlock_rank(v, rank, flags);
>>> +
>>> +Â Â Â Â Â Â Â  *r = vreg_reg32_extract(ipriorityr, info);
>>> +
>>> +Â Â Â Â Â Â Â  return 1;
>>> +Â Â Â  }
>>> +
>>> +Â Â Â  case VRANGE32(GICD_ICFGRnE, GICD_ICFGRnEN):
>>> +Â Â Â  {
>>> +Â Â Â Â Â Â Â  uint32_t icfgr;
>>> +
>>> +Â Â Â Â Â Â Â  if ( dabt.size != DABT_WORD )
>>> +Â Â Â Â Â Â Â Â Â Â Â  goto bad_width;
>>> +Â Â Â Â Â Â Â  rank = vgic_ext_rank_offset(v, 2, reg - GICD_ICFGRnE,
>>> DABT_WORD);
>>> +Â Â Â Â Â Â Â  if ( rank == NULL )
>>> +Â Â Â Â Â Â Â Â Â Â Â  goto read_as_zero;
>>> +Â Â Â Â Â Â Â  vgic_lock_rank(v, rank, flags);
>>> +Â Â Â Â Â Â Â  icfgr = rank->icfg[REG_RANK_INDEX(2, reg - GICD_ICFGRnE,
>>> DABT_WORD)];
>>> +Â Â Â Â Â Â Â  vgic_unlock_rank(v, rank, flags);
>>> +
>>> +Â Â Â Â Â Â Â  *r = vreg_reg32_extract(icfgr, info);
>>> +
>>> +Â Â Â Â Â Â Â  return 1;
>>> +Â Â Â  }
>>> +#endif
>>> +
>>>  Â Â Â Â Â  default:
>>>  Â Â Â Â Â Â Â Â Â  printk(XENLOG_G_ERR
>>>  Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "%pv: %s: unhandled read r%d offset %#08x\n",
>>> @@ -782,6 +853,9 @@ static int __vgic_v3_distr_common_mmio_write(const
>>> char *name, struct vcpu *v,
>>>  Â Â Â Â Â  {
>>>  Â Â Â Â Â  case VRANGE32(GICD_IGROUPR, GICD_IGROUPRN):
>>>  Â Â Â Â Â  case VRANGE32(GICD_IGRPMODR, GICD_IGRPMODRN):
>>> +#ifdef CONFIG_GICV3_ESPI
>>> +Â Â Â  case VRANGE32(GICD_IGROUPRnE, GICD_IGROUPRnEN):
>>> +#endif
>>>  Â Â Â Â Â Â Â Â Â  /* We do not implement security extensions for guests, write
>>> ignore */
>>>  Â Â Â Â Â Â Â Â Â  goto write_ignore_32;
>>> @@ -871,6 +945,99 @@ static int
>>> __vgic_v3_distr_common_mmio_write(const char *name, struct vcpu *v,
>>>  Â Â Â Â Â Â Â Â Â  vgic_unlock_rank(v, rank, flags);
>>>  Â Â Â Â Â Â Â Â Â  return 1;
>>> +#ifdef CONFIG_GICV3_ESPI
>>> +Â Â Â  case VRANGE32(GICD_ISENABLERnE, GICD_ISENABLERnEN):
>>> +Â Â Â Â Â Â Â  if ( dabt.size != DABT_WORD )
>>> +Â Â Â Â Â Â Â Â Â Â Â  goto bad_width;
>>> +Â Â Â Â Â Â Â  rank = vgic_ext_rank_offset(v, 1, reg - GICD_ISENABLERnE,
>>> DABT_WORD);
>>> +Â Â Â Â Â Â Â  if ( rank == NULL )
>>> +Â Â Â Â Â Â Â Â Â Â Â  goto write_ignore;
>>> +Â Â Â Â Â Â Â  vgic_lock_rank(v, rank, flags);
>>> +Â Â Â Â Â Â Â  tr = rank->ienable;
>>> +Â Â Â Â Â Â Â  vreg_reg32_setbits(&rank->ienable, r, info);
>>> +Â Â Â Â Â Â Â  vgic_enable_irqs(v, (rank->ienable) & (~tr),
>>> EXT_RANK_IDX2NUM(rank->index));
>>> +Â Â Â Â Â Â Â  vgic_unlock_rank(v, rank, flags);
>>> +Â Â Â Â Â Â Â  return 1;
>>> +
>>> +Â Â Â  case VRANGE32(GICD_ICENABLERnE, GICD_ICENABLERnEN):
>>> +Â Â Â Â Â Â Â  if ( dabt.size != DABT_WORD )
>>> +Â Â Â Â Â Â Â Â Â Â Â  goto bad_width;
>>> +Â Â Â Â Â Â Â  rank = vgic_ext_rank_offset(v, 1, reg - GICD_ICENABLERnE,
>>> DABT_WORD);
>>> +Â Â Â Â Â Â Â  if ( rank == NULL )
>>> +Â Â Â Â Â Â Â Â Â Â Â  goto write_ignore;
>>> +Â Â Â Â Â Â Â  vgic_lock_rank(v, rank, flags);
>>> +Â Â Â Â Â Â Â  tr = rank->ienable;
>>> +Â Â Â Â Â Â Â  vreg_reg32_clearbits(&rank->ienable, r, info);
>>> +Â Â Â Â Â Â Â  vgic_disable_irqs(v, (~rank->ienable) & tr,
>>> EXT_RANK_IDX2NUM(rank->index));
>>> +Â Â Â Â Â Â Â  vgic_unlock_rank(v, rank, flags);
>>> +Â Â Â Â Â Â Â  return 1;
>>> +
>>> +Â Â Â  case VRANGE32(GICD_ISPENDRnE, GICD_ISPENDRnEN):
>>> +Â Â Â Â Â Â Â  if ( dabt.size != DABT_WORD )
>>> +Â Â Â Â Â Â Â Â Â Â Â  goto bad_width;
>>> +Â Â Â Â Â Â Â  rank = vgic_ext_rank_offset(v, 1, reg - GICD_ISPENDRnE,
>>> DABT_WORD);
>>> +Â Â Â Â Â Â Â  if ( rank == NULL )
>>> +Â Â Â Â Â Â Â Â Â Â Â  goto write_ignore;
>>> +
>>> +Â Â Â Â Â Â Â  vgic_set_irqs_pending(v, r, EXT_RANK_IDX2NUM(rank->index));
>>> +
>>> +Â Â Â Â Â Â Â  return 1;
>>> +
>>> +Â Â Â  case VRANGE32(GICD_ICPENDRnE, GICD_ICPENDRnEN):
>>> +Â Â Â Â Â Â Â  if ( dabt.size != DABT_WORD )
>>> +Â Â Â Â Â Â Â Â Â Â Â  goto bad_width;
>>> +Â Â Â Â Â Â Â  rank = vgic_ext_rank_offset(v, 1, reg - GICD_ICPENDRnE,
>>> DABT_WORD);
>>> +Â Â Â Â Â Â Â  if ( rank == NULL )
>>> +Â Â Â Â Â Â Â Â Â Â Â  goto write_ignore;
>>> +
>>> +Â Â Â Â Â Â Â  vgic_check_inflight_irqs_pending(v, EXT_RANK_IDX2NUM(rank-
>>>> index), r);
>>> +
>>> +Â Â Â Â Â Â Â  goto write_ignore;
>>> +Â Â Â  case VRANGE32(GICD_ISACTIVERnE, GICD_ISACTIVERnEN):
>>> +Â Â Â Â Â Â Â  if ( dabt.size != DABT_WORD )
>>> +Â Â Â Â Â Â Â Â Â Â Â  goto bad_width;
>>> +Â Â Â Â Â Â Â  printk(XENLOG_G_ERR
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "%pv: %s: unhandled word write %#"PRIregister" to
>>> ISACTIVER%dE\n",
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â  v, name, r, reg - GICD_ISACTIVERnE);
>>> +Â Â Â Â Â Â Â  return 0;
>>
>> Guest write access to GICD_ISACTIVER<n>E will lead to abort. But, I know
>> you just repeated the logic for regular GICD_ISACTIVER<n>.
>>
>>
> 
> Could you please clarify the scenario in which it leads to an abort?
> Since it is actually a stub case, it should just print an error message
> and that's it..

"return 0;" will lead to injecting a fault into the guest.

  Do you mean that, in this case, we need to goto
> write_ignore_32 label instead of returning 0?

My comment was not a direct request to change anything, but rather 
thinking out loud.

Unfortunally, I cannot answer why regular GICD_ISACTIVER<n> is emulated
in that way, but perhaps the injecting fault into the guest is the 
lesser evil than emulating it incorrectly...

Interestingly, for GICv2 we have a slighly relaxed version; it looks 
like writing 0 will not cause an abort and will be WI.
25f9e80201f3688e0c4d5c4e43e4b6143b441c52
xen/arm: Ignore write to GICD_ISACTIVERn registers (vgic-v2)

Now, with the introduction of extended GICD_ISACTIVER<n>E you retained 
the logic. One thing that needs mentioning is that before your series,
guest write access to extended GICD_ISACTIVER<n>E would be WI, but
with your series and CONFIG_GICV3_ESPI=y it will be an abort even
if running on GIC3 HW where eSPI is not supported.

At least, I would mention that in the patch description.


> 
>>> +
>>> +Â Â Â  case VRANGE32(GICD_ICACTIVERnE, GICD_ICACTIVERnEN):
>>> +Â Â Â Â Â Â Â  printk(XENLOG_G_ERR
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â  "%pv: %s: unhandled word write %#"PRIregister" to
>>> ICACTIVER%dE\n",
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â  v, name, r, reg - GICD_ICACTIVER);
>>
>> s/GICD_ICACTIVER/GICD_ICACTIVERnE
>>
>>
> 
> I will fix that in V4.
> 
>>> +Â Â Â Â Â Â Â  goto write_ignore_32;


[snip]


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 13:46:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 13:46:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096097.1450891 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urGTk-0007TF-Cu; Wed, 27 Aug 2025 13:46:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096097.1450891; Wed, 27 Aug 2025 13:46:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urGTk-0007T8-9z; Wed, 27 Aug 2025 13:46:20 +0000
Received: by outflank-mailman (input) for mailman id 1096097;
 Wed, 27 Aug 2025 13:46:19 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=83xn=3H=yandex.ru=vyacheslav.legoshin@srs-se1.protection.inumbo.net>)
 id 1urGTi-0007Sw-4C
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 13:46:19 +0000
Received: from forward502b.mail.yandex.net (forward502b.mail.yandex.net
 [178.154.239.146]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3417e85b-834c-11f0-aeb2-fb57b961d000;
 Wed, 27 Aug 2025 15:46:16 +0200 (CEST)
Received: from mail-nwsmtp-mxback-production-main-39.sas.yp-c.yandex.net
 (mail-nwsmtp-mxback-production-main-39.sas.yp-c.yandex.net
 [IPv6:2a02:6b8:c28:10dc:0:640:3d32:0])
 by forward502b.mail.yandex.net (Yandex) with ESMTPS id 5A344816A8;
 Wed, 27 Aug 2025 16:46:13 +0300 (MSK)
Received: from mail.yandex.ru (2a02:6b8:c10:2b98:0:640:daad:0
 [2a02:6b8:c10:2b98:0:640:daad:0])
 by mail-nwsmtp-mxback-production-main-39.sas.yp-c.yandex.net (mxback/Yandex)
 with HTTPS id 9kZT9b2xna60-0ASENIeG; Wed, 27 Aug 2025 16:46:12 +0300
Received: by uxaevus5beodspug.sas.yp-c.yandex.net (sendbernar/Yandex) with
 HTTPS id c96e7e7f26969abb109ba87de6241108; 
 Wed, 27 Aug 2025 16:46:11 +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>
X-Inumbo-ID: 3417e85b-834c-11f0-aeb2-fb57b961d000
X-Yandex-Fwd: 1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail;
	t=1756302372; bh=luM0Wbye4pv4wFbpXJiiVrXfyyViUq0dIySfALoVDng=;
	h=Message-Id:References:Date:Cc:Subject:In-Reply-To:To:From;
	b=fJBGDjtnmAafpPSSddO3rPH7C/XFPwA35jqnNMSg3qJEwErK9T1hpECl7Ade8RCst
	 YheAu4onfVrAwkpnygarIB41MPkNAJtWrzkWf8emaYRSldBU+ZzhCAB12R2hae3br7
	 znDKva0KWsPSpVd+WrwJO7QT5dzawb5mT2rnEUog=
Authentication-Results: mail-nwsmtp-mxback-production-main-39.sas.yp-c.yandex.net; dkim=pass header.i=@yandex.ru
From: =?utf-8?B?0JLRj9GH0LXRgdC70LDQsiDQm9C10LPQvtGI0LjQvQ==?= <vyacheslav.legoshin@yandex.ru>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
In-Reply-To: <aK7LTO1Msvm0hDtH@Mac.lan>
References: <faa5eee741a772eba95415ca26f0cdf304486fc3.1756272466.git.vyacheslav.legoshin@yandex.ru> <aK7LTO1Msvm0hDtH@Mac.lan>
Subject: Re: [XEN PATCH] x86/vhpet: Add option to always fire hpet timer on resume
MIME-Version: 1.0
X-Mailer: Yamail [ http://yandex.ru ] 5.0
Date: Wed, 27 Aug 2025 16:46:11 +0300
Message-Id: <87291756300136@mail.yandex.ru>
Content-Transfer-Encoding: base64
Content-Type: text/html; charset=utf-8

PGRpdj7CoDwvZGl2PjxkaXY+MjcuMDguMjAyNSwgMTI6MDksICJSb2dlciBQYXUgTW9ubsOpIiAm
bHQ7cm9nZXIucGF1QGNpdHJpeC5jb20mZ3Q7OjwvZGl2PjxibG9ja3F1b3RlPjxwPk9uIFdlZCwg
QXVnIDI3LCAyMDI1IGF0IDA5OjAxOjA4QU0gKzAzMDAsIFZ5YWNoZXNsYXYgTGVnb3NoaW4gd3Jv
dGU6PC9wPjxibG9ja3F1b3RlPsKgVGhlIGZvbGxvd2luZyBpc3N1ZSB3YXMgb2JzZXJ2ZWQgb24g
V2luZG93cyAxMCAyMUgyIHg2NCs6IHdoZW4gdGhlIGRvbWFpbiBzdGF0ZTxiciAvPsKgaXMgc2F2
ZWQgd2hpbGUgYWxsIGNvcmVzIGFyZSBleGVjdXRpbmcgdGhlICdoYWx0JyBpbnN0cnVjdGlvbiw8
L2Jsb2NrcXVvdGU+PHA+PGJyIC8+SSBhc3N1bWUgdGhpcyB3aGVuIGV4ZWN1dGluZyBgeGwgc2F2
ZWAgb3IgZXF1aXZhbGVudCBjb21tYW5kIGZyb20gYTxiciAvPmRpZmZlcmVudCB0b29sc3RhY2s/
PC9wPjwvYmxvY2txdW90ZT48ZGl2Plllcywgc25hcHNob3Qgd2FzIHRha2VuIHdpdGggJ3hsIHNh
dmUnLjwvZGl2PjxibG9ja3F1b3RlPjxwPklJUkMgaW4gdGhhdCBjYXNlIHRoZSBndWVzdCB3b3Vs
ZCBiZSBwYXVzZWQgd2hpbGUgdGhlIG1lbW9yeSBkdW1wIHRvPGJyIC8+ZGlzayBpcyBkb25lLCBh
bmQgaGVuY2UgZ3Vlc3QgdkNQVXMgd29uJ3QgYmUgZXhlY3V0aW5nIHRoZSBgaGFsdGA8YnIgLz5p
bnN0cnVjdGlvbiwgdGhleSB3b3VsZG4ndCBiZSBleGVjdXRpbmcgYXQgYWxsLjwvcD48L2Jsb2Nr
cXVvdGU+PGRpdj5ZZXMsIHRoZSBkb21haW4gd2FzIHBhdXNlZCwgSSBtYWRlIGEgbWlzdGFrZSBp
biB3b3JkaW5nLjwvZGl2PjxibG9ja3F1b3RlPjxibG9ja3F1b3RlPsKgYW5kIHRoZSBtZW1vcnk8
YnIgLz7CoHNhdmUgdGFrZXMgYSByZWxhdGl2ZWx5IGxvbmcgdGltZSAodGVucyBvZiBzZWNvbmRz
KSwgdGhlIEhQRVQgY291bnRlciBtYXk8YnIgLz7CoG92ZXJmbG93IGFzIGZvbGxvd3M6PGJyIC8+
wqBjb3VudGVyID0gMTEyNDNmM2U0YTxiciAvPsKgY29tcGFyYXRvciA9IDkxMGNiNzBmPGJyIC8+
wqA8YnIgLz7CoEluIHN1Y2ggY2FzZXMsIHRoZSBmaXggaW1wbGVtZW50ZWQgaW4gY29tbWl0PGJy
IC8+wqBiMTQ0Y2Y0NWQ1MGI2MDNjMjkwOWZjMzJjNmFiZjczNTlmODZmMWFhIGRvZXMgbm90IHdv
cmsgKGJlY2F1c2UgdGhlICdkaWZmJyBpczxiciAvPsKgbm90IG5lZ2F0aXZlKSwgcmVzdWx0aW5n
IGluIHRoZSBndWVzdCBWTSBiZWNvbWluZyB1bnJlc3BvbnNpdmUgZm9yPGJyIC8+wqBhcHByb3hp
bWF0ZWx5IDMwIHNlY29uZHMuPGJyIC8+wqA8YnIgLz7CoFRoaXMgcGF0Y2ggYWRkcyBhbiBvcHRp
b24gdG8gYWx3YXlzIGFkanVzdCB0aGUgSFBFVCB0aW1lciB0byBmaXJlIGltbWVkaWF0ZWx5PGJy
IC8+wqBhZnRlciByZXN0b3JlLjwvYmxvY2txdW90ZT48cD48YnIgLz5XaGF0IGhhcHBlbnMgaWYg
dGhlIGd1ZXN0IGlzIGxlZnQgcnVubmluZyBhZnRlciB0aGUgc2F2ZT8gSSBhc3N1bWU8YnIgLz50
aGF0IHVzaW5nIGB4bCBzYXZlIC1jICZsdDtkb21haW4mZ3Q7YCB3b3VsZCBsZWF2ZSB0aGUgZG9t
YWluIGluIGEgc2ltaWxhcmx5PGJyIC8+d2VkZ2VkIHN0YXRlLCBhbmQgeW91ciBwcm9wb3NlZCB3
b3JrYXJvdW5kIHdvbid0IGJlIGVmZmVjdGl2ZSB0aGVyZSw8YnIgLz5zaW5jZSB0aGVyZSdzIG5v
IHJlc3RvcmluZyBwcm9jZXNzPyBPciB0aGF0J3Mgbm90IHRoZSBjYXNlIHRoZXJlPGJyIC8+YmVj
YXVzZSBYZW4gaXMgc3RpbGwga2VlcGluZyB0cmFjayBvZiB0aGUgaW50ZXJuYWwgdGltZXIsIGFu
ZCB3b3VsZDxiciAvPnNldCBhbiBpbnRlcnJ1cHQgYXMgcGVuZGluZyBhbnl3YXk/PC9wPjwvYmxv
Y2txdW90ZT48ZGl2PkkndmUgc2VlbiBicm9rZW4gc25hcHNob3RzLCBidXQgd2FzIG5vdCBwYXlp
bmcgYXR0ZW50aW9uIHRvIHRoZSBzdGF0ZSBvZiB0aGU8L2Rpdj48ZGl2PnJ1bm5pbmcgZG9tYWlu
IGFmdGVyIHRoZSBzYXZlLiBTbyB1bmZvcnR1bmF0ZWx5IEkgY2FuJ3QgYW5zd2VyIHRoaXMgcXVl
c3Rpb24uPC9kaXY+PGRpdj7CoDwvZGl2PjxkaXY+SSdsbCB0cnkgdG8gcmVwcm9kdWNlIGl0LCBi
dXQgaXQgaXMgbGlrZSBvbmUgc25hcHNob3QgcGVyIG1vbnRoIG9yIGxlc3MuPC9kaXY+PGRpdj5B
bHNvLCBpZiB0aGVyZSBpcyBubyAnaGFsdCcgLSB0aGVuIHRoZSBkb21haW4gaXMgcmVzdG9yZWQg
d2l0aG91dCBhbnkgaXNzdWVzPC9kaXY+PGRpdj4oZXZlbiBpZiBJIGJyZWFrIHRoZSBzYXZlZCBI
UEVUIHN0YXRlIGludGVudGlvbmFsbHkpLjwvZGl2PjxibG9ja3F1b3RlPjxwPlNob3VsZCB3ZSBt
YXliZSBzdG9yZSB0aGUgbGFzdCBndWVzdCB0aW1lIGF0IGNvbnRleHQgc2F2ZSwgYW5kIGNoZWNr
PGJyIC8+YWdhaW5zdCB0aGF0IHRvIHNlZSB3aGV0aGVyIGNvbXBhcmF0b3JzIHNob3VsZCBoYXZl
IHRyaWdnZXJlZCwgaW5zdGVhZDxiciAvPm9mIHBsYXlpbmcgdGhpcyBnYW1lcz88L3A+PC9ibG9j
a3F1b3RlPjxkaXY+PGRpdj48ZGl2PkF0IGZpcnN0IEkgdHJpZWQgdG8gY2hhbmdlIG1lbW9yeSBz
YXZlIGFuZCBIVk0gc2F2ZSBvcmRlciAoY3VycmVudGx5IHNhdmUoKTwvZGl2PjxkaXY+ZnJvbSB0
b29scy9saWJzL2d1ZXN0L3hnX3NyX3NhdmUuYyBmaXJzdCBzYXZlcyB0aGUgbWVtb3J5IGFuZCBv
bnkgYWZ0ZXIgdGhhdDwvZGl2PjxkaXY+aXQgc2F2ZXMgSFZNIHN0YXRlIChIUEVUIGluY2x1ZGVk
LCB3aGljaCB3YXMgY291bnRpbmcgZm9yd2FyZCBhbGwgdGhhdCB0aW1lKS48L2Rpdj48ZGl2PkJ1
dCBzaW5jZSB0aGUgZG9tYWluIHBhdXNpbmcgYW5kIEhQRVQgc3RhdGUgc2F2ZSBjYW4ndCBiZSBk
b25lIGF0b21pY2FsbHk8L2Rpdj48ZGl2PihhdCBsZWFzdCBBRkFJSyksIHRoZXJlIGFsd2F5cyB3
aWxsIGJlIGEgY2FzZSBsaWtlOjwvZGl2PjxkaXY+MSkgV2luZG93cyBzZXRzIGNvbXBhdG9yIHRv
IDB4ZmZmZmZmZmY8L2Rpdj48ZGl2PjIpIENvdW50ZXIgcmVhY2hlcyAweDFmZmZmZmZmZTwvZGl2
PjxkaXY+MykgWGVuIHBhdXNlcyB0aGUgZG9tYWluPC9kaXY+PGRpdj40KSBYZW4gc2F2ZXMgSFBF
VCBzdGF0ZTwvZGl2PjxkaXY+wqA8L2Rpdj48ZGl2PkkgdGhpbmsgdGhlcmUgaXMgbm8gd2F5IHRv
IHNheSBmb3Igc3VyZSwgaWYgaXQgaXMgYW4gb3ZlcmZsb3cgb3IgaXQgaXMganVzdDwvZGl2Pjxk
aXY+YSBsb25nIHdhaXQuIFN1Y2ggYSBsb25nIHdhaXQgaXMgYWxtb3N0IGltcG9zc2libGUgKGF0
IGxlYXN0IG9uIFdJbmRvd3MpLDwvZGl2PjxkaXY+YnV0IG5vdGhpbmcgcHJldmVudHMgb3RoZXIg
Z3Vlc3QgT1MgZnJvbSBpdC48L2Rpdj48ZGl2PkFsc28sIGlmIHRoZXJlIGlzIGEgVk0gd2l0aCBo
dWdlIG1lbW9yeSBzcGFjZSBhbmQgdGhlIGRpc2sgZGV2aWNlIGlzIHZlcnkgc2xvdzwvZGl2Pjxk
aXY+wqBvciBidXN5KSAtIEhQRVQgY291bnRlciBtYXkgcmVhY2ggYW55IHZhbHVlLjwvZGl2Pjwv
ZGl2PjwvZGl2Pg==


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 13:47:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 13:47:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096104.1450902 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urGV4-00080c-Nj; Wed, 27 Aug 2025 13:47:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096104.1450902; Wed, 27 Aug 2025 13:47: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 1urGV4-00080V-JO; Wed, 27 Aug 2025 13:47:42 +0000
Received: by outflank-mailman (input) for mailman id 1096104;
 Wed, 27 Aug 2025 13:47:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=x+iP=3H=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1urGV3-00080N-0f
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 13:47:41 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 64fe7f04-834c-11f0-ae26-e363de0e7a9e;
 Wed, 27 Aug 2025 15:47:38 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by PA4PR03MB7310.eurprd03.prod.outlook.com (2603:10a6:102:be::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.16; Wed, 27 Aug
 2025 13:47:36 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Wed, 27 Aug 2025
 13:47: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>
X-Inumbo-ID: 64fe7f04-834c-11f0-ae26-e363de0e7a9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=C444E9iaW3J+Zj0cZQBp40eS7+ZQ2B1WUsNiA9suRJODvwMcE7Z+biKXhWJDrQSaAfCBA/7tmbtPiHLnCbL2JHerJBT2sXIT3FAUuc2hvdl1F2KgBC8UmfOezXNpauohtpfxul9xtn7j46GuB3YVL0YDmeqDAoOsevx40gHJOmhm64sa9oA/37YOzLiYOO5wiY09LYRTZ6o21ztoHUX9dPNMIdCaLWLIZMRFDhdb3uMNCmoPxNX9hDJ6fKohZa0Pk/MMjTIyZ5raMKwE0/RZ6g3cUvW6zGIiX8iBXN2oyurZQ+3GlywrpzGnb08Owv4BngSm9TEFJYEzQqKMA0wh0g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=u+m1KsJfrscCpa14HUMCr3kMou6TSVUTVNKrAVz+/b0=;
 b=M3QpFpmJLhCPpOmiaeUErmtvCJEqkDARG+h7fVqdbm7/vtjjzJQH+3C37U+l3WqHIBpmZzFBFPZWblBz7f1BkdByaLpIYl2jeGeOoOtvWjibpM4leDWIRHQoSbyp3nsMAWr313k6KNLIirov1P1devjOExmMzt1fbwoQFPdIAYUhEZnVKBBmqrG8CCi4/wZ+5yi19nKNOnUxl5izJh/LnBt6hSnfGRU5MqDBT/6lSCAVQlMEg0A5+qayjCpSnRHSiuPkLBUIb6wgz4FGwDCuwMHzjPcxNPU/Rg0JgdisGOXleZLcfGU25JqJlCie25oh3FR/OyIwcA0frHWHRZbA/A==
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=u+m1KsJfrscCpa14HUMCr3kMou6TSVUTVNKrAVz+/b0=;
 b=V8zS5kirRqhnYgTsNgQveQGQtYs54TbRvx8eNorIDvA2zcHLeLGuUd3MyiT3J7jRUkkKtrkdnuXqsqlqLMxP88j/n6CLlhIgLURdEpBlpLCxK+OXqGG5ML8YvJuBo1DIq0FdF51JkLUAbwVmtuYmWhNmrAasRpUVCK0Ysy9jQn+UaThnXNRWKo0K6lX6IC5mBwDCbH3BcBWWDln7ZVKfHnL47H7wkkHYbCIJnWX8Unie4Cx3F4wdI7AIbO+RzeRgnU15FAPhKkaU2u+8llkCqZo+7k8g8cTzg468LEcVYQa8D3V8z6Am00A5q/htfdVeA7Z9kMS9lVnBhJDmeR5cdQ==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: Oleksandr Tyshchenko <olekstysh@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v3 09/11] xen/arm: domain_build/dom0less-build: adjust
 domains config to support eSPIs
Thread-Topic: [PATCH v3 09/11] xen/arm: domain_build/dom0less-build: adjust
 domains config to support eSPIs
Thread-Index: AQHcFpKAZWUsU5Sz9EWrJGvlceTbI7R2TLcAgAAap4CAAB3GgA==
Date: Wed, 27 Aug 2025 13:47:36 +0000
Message-ID: <faab04a8-d4a5-41c5-a213-6a2048c3fbea@epam.com>
References: <cover.1756216942.git.leonid_komarianskyi@epam.com>
 <bff3d1c4302e8780771abed42f624cafe76776cd.1756216943.git.leonid_komarianskyi@epam.com>
 <874itt4r5t.fsf@epam.com> <1cf0a662-b717-458c-8174-6b03187b4b6c@epam.com>
 <a230ad6c-294d-488f-ac2e-6fc3a7cf33fc@gmail.com>
In-Reply-To: <a230ad6c-294d-488f-ac2e-6fc3a7cf33fc@gmail.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: GV2PR03MB8678:EE_|PA4PR03MB7310:EE_
x-ms-office365-filtering-correlation-id: b5f8fed4-630b-4696-3aab-08dde57047fe
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|376014|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?YjFicnFYbEFJcmg4a2hEeDZORmtjWUZSYVkxaElwSDYvUmRKcjRGSTd3NzdF?=
 =?utf-8?B?clpLdVdrREk1Z21OOTZjYlNNY2s5WXMyUFkxOXFON1J0LzJwdE9CMkdTeWRl?=
 =?utf-8?B?MklPRHBONmtEdVN3Wjl3cVE4TGthb3NwOWF0TW9iL2o5SUhtWXI5TGozS2N1?=
 =?utf-8?B?bTZWSHNDdHo1MWppWDZqSzVBUnd5U3lZYjFYMklCeDhaV2Y5QUlPaFVUSDFL?=
 =?utf-8?B?TlRZWklia2h2cHdrQTVGQU5OT1YzU3dPWkFMdm4xRjV3K0FydlFLNEFyUnVJ?=
 =?utf-8?B?TGNDYkp6NUV0djlmY2hidEVhMzRJL2ZQTzV2TXE0cFRERkIvZEVUZkdCcFZP?=
 =?utf-8?B?b1U1b0tWcDZQYzU1YnRTYnJpUnhMc2NGN2kwTDJsK3RnVTNsc0pkQjdjdytu?=
 =?utf-8?B?c081S1lKamdkbzY0L0tMdFU2Z1dVT3R3MkRydUpkVXB6b2k1eGNBWWhOUzc3?=
 =?utf-8?B?bTRmdndEbTkySVIxd1FUTDY2OTdLTVArdzJJei8xbjh6eFk0VU5rUHdZbk5k?=
 =?utf-8?B?Q2RBNnNLWXVyUnM0eTF5OVRMMVJpdXBrc2dZRGlQY3BWbEs1UXpWYTFtNm42?=
 =?utf-8?B?SzRodWVpbzBNYmpsa0hJVHdMYzFtYS9SVDAzK1JlQ2J4SkZ1bThTcXRVWU9S?=
 =?utf-8?B?M3JzdFozYmlIYkV0VGVZYnFaTkptSUdKWkFmTU9jSHdQM1F2UFZuQUp1ZlZP?=
 =?utf-8?B?WFBqK3p3RnZ3TW0xNDN2N0ZLM3gxbnYxTUZ0Ly8vUDllZGloNCtyL2FndVEr?=
 =?utf-8?B?Nk42QkwvcVB2ZHE2Z05lZFZHQkJUUXNVS1kyTG0zMW82VGo3QWthU1QzU3RO?=
 =?utf-8?B?Y3RqMUpsM2g5QTJkWlFPMUhZRUJXelJnVjE5dHZNRUNEd3FGeVdJN1dHSkZx?=
 =?utf-8?B?akYySkFKdTVPM1E5dGlKMGRRbTdLc000L2J1SGovRFkxYlQ3Y2dCQ0FJbngv?=
 =?utf-8?B?VkcyNGYzdlhnUXhYR3ZWcUxwM1ppVU5PVXpEeTdnYnIzUHNwYkh3TzdsS3Zl?=
 =?utf-8?B?RjlIakwwS3RKSEZLUVZZQXhjeDczeFRoNjJFc2lIOGV4YUhrSHBtR0t2S2lK?=
 =?utf-8?B?SnZCVERQNHVhbno0NXVXTHdDSExpK1pQNlJncmlBMncwQ3VDV3RGRG1IbkE0?=
 =?utf-8?B?ZklVaml2LzBPWVFTSGJnbTVxQ3NwbnhncEhvQnI5M1ZDQUI4ZXZ4MHZMemJL?=
 =?utf-8?B?SHRjZDBReXF5VzlzcWZ4TjhYRHZYdGFZNFJkVzA3K0Q1UmdKZU5oSzMwaFFC?=
 =?utf-8?B?N01RQlZydDNwTS90M01sTG9tb3c0a2Z0QWhCMU0xZE1BSUYyeG8vV2RnZEVm?=
 =?utf-8?B?STJzQUgycEVuVGc5SDNpam9qSWd4S2E5bmZPMnpZTGdnMGtHOVdocUZLeU9p?=
 =?utf-8?B?cWIvOTJaNnpYdnV3VGZ4aE9HQW1ublV3d0k3ZVc1UzEzWnoxdDJ1dWxSeUg5?=
 =?utf-8?B?ZWZPZEt3NGttdWlHS2tPaHV5WjhlNmgrNGVGU1pSY1ozU3Q1NU9oR0ErMC9r?=
 =?utf-8?B?K3d0dmxXVFlNUzlmcTJUVTgvZVdyMUcrSHFtSXlvV1ZaaXN1UWdOMjg0cUx1?=
 =?utf-8?B?b2w1WnBUTEFCZklLek9lc2k3U216MjR4eXNmSkNtTERHODR5RlVmMTVvWnBy?=
 =?utf-8?B?Q0NiWVFXUGV2MFVhcmxEVm4wYmJXSldoWXhYUFVqcXY1MjBCYjR4YmI1ekRn?=
 =?utf-8?B?bGI5VitFMFVRR00zWUgxRG84QlBJd2JiQkN3S2w5SjNMdU51MGt3RHpzTFFs?=
 =?utf-8?B?aEhUTlZRd0dwVHR3K1Q4cDNrVndaZWsvRTlCV1Q4UVJuTys5U09YUGRieTlj?=
 =?utf-8?B?Q0VUanlGeEpqMHM5emU5VVhGR0hYNU1MN3lUc1lrMDVpclZKU3VldkNybnk0?=
 =?utf-8?B?VVkyaGd0ZzR1RzZmRGlHa1RyUEduVC9qZXpOTmFpQkJQNHFKOFUzNDdiN0tL?=
 =?utf-8?B?NWpCZmtEMVphVnJIWjM1M2tWZkZaWnZBZndmcHVWK0E3ZHdCdTlvR0RyYlkw?=
 =?utf-8?Q?p1iVdhemLwkj7g8/fT0RzLZnZNI6wc=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?NnRaWURka2ZyM083N2dzNG1IemZsMGVReEJMcmFRWVJaclJESXArc25IZjdu?=
 =?utf-8?B?aVJhQVlubFRWMlRjZWZrVk9JRzVBRUE4V096alVVYjFqYTNndjZDRHdsZStY?=
 =?utf-8?B?RUR6K2ovTlpIdEdlVzZiMlhnOHlaZXYwM1RNbmRXeFVjaWpSRm1EVTBiWW51?=
 =?utf-8?B?VVpmdksvdkEyc1pNTkVadFQ3bEozNjhiNkdWQzlYYnlWOVF0SVZpenNNMDBq?=
 =?utf-8?B?U2ZDb1ZHc0xreVAzVWU0Z25kVFU5WElkQXQyL3dva2VuU3A0WUJYMjlNNW4x?=
 =?utf-8?B?NmN1ak9JcFlMMngxMjBYTDBpeTlOZEV0N0ZzcnMxOUFwVVY0ZFZPN3VFOUwr?=
 =?utf-8?B?TCtlVHRxUDMybmNJR1JvT0lqcXRpVC9lT0NBWldjNHFxeE00bTlSNzZRRit1?=
 =?utf-8?B?WEowUGNSbGZ0ZGJsYWdEWVBaYUl4UERPNmRySnBHNGRqN2VMLzZTcE5PNkhO?=
 =?utf-8?B?UU1TUnp2b0FXMGF2b3d1cEk0UTVGbFNjZVJvZmtOSzRVU3dZQXlweHA0cDdT?=
 =?utf-8?B?K2VJVHJYNkkzWjhXdnRIM2Exd2VkRWd4OWRPTStYVTc3RmhyWEFnSms5b2pS?=
 =?utf-8?B?S2hkMjFBYXpMWmtVT2dyU0x5bXY4R3VZa3NYRVNvL00xdlppNlB0T1dNakpv?=
 =?utf-8?B?bHdnZy9YUFNNenpabnBNYjl5ZzhCQ0RZc0plaUYvWWszVjRLTzMyck1FYWJ5?=
 =?utf-8?B?NCtLcjhtYVNmaUszanBNWHFyNy9iT1hsOHNscnJDRS83cGhDZU5IM2Q4SnJ5?=
 =?utf-8?B?d3paWEFoa0RsLzlLdmNRYlluK3FTdXE0ZXF5emQrcXFGMnpCT00wMUtleWZF?=
 =?utf-8?B?SVdQNmQ3c0lvUmFkZW8zenhKaUptVTJhSmM3MEFBSndITnJkUStBNFhlRWc1?=
 =?utf-8?B?bGEzL3RtdTNPZzhJOXdrOFNvWXY2RGw5MlRTRHV5aDI1eGNhYm9xdzl1R0dH?=
 =?utf-8?B?a093TXpyUFhGRXlUVjc2dzVqdXVwcUZqeWhNWTJRMTkvMW1qUGxJQXVrMUlT?=
 =?utf-8?B?S1I1c0NoZjkvajRWc0hZVksvTnRibGhEOXk1Z1o3aXRVbWpxbXQ0S1FyYVR6?=
 =?utf-8?B?VlpKZ1dRYTI0ZG1zMGx5NWsrWkpFUExMVldWN1FGVHVleVpxcjM1bEFBSjRV?=
 =?utf-8?B?UkIwZnhjWk5JeElIdjVRSC8yS3pJRmlaWVM3NUhkODQxNlVwbjR0RG94UVls?=
 =?utf-8?B?SFFpZE1jRnBYMGJHV2ZpbzdKT2lDNkJHemMxaUNsVnVnVlhIUXhaZzFGa3RF?=
 =?utf-8?B?RjFLSENVenYzdFl0K25hcTJOVjJEV2E4dHZFVlpuYzZRdEdIYlAremZKUUx2?=
 =?utf-8?B?S01HdFM2RkR6MUU3Qy8rcXhNaGxEbWd6RFJkQ0V1bnIvSnMrd1FGeWR4RDkx?=
 =?utf-8?B?R0tENmFTSXlqOGkycTlYSWNDbW1LUnZwV1ZoU3RkaUlCQjRGQzRhc1IwSHBB?=
 =?utf-8?B?S21tMW1XT1VMWDBXdjJ2RmVNWlQrQ0FTREZsUUEyWkxYbGdUN2pyY0pIcVBx?=
 =?utf-8?B?K0FJbVdpOG9CRGNwVkIrYVZKWkptMWJDSnRlZFFrOVZpWVJrd2MwOFQyVWxF?=
 =?utf-8?B?QnJ0ZmhFOUFMRTVLRkEwNXR1cXI1VDFJVFIyUHBib0I4NktFWm5ObktCN2h5?=
 =?utf-8?B?Vk00TWkwR0czU1RIN2NkUzhHMzhWbWxpQ21wUXg5YUFCWHV2Q0hldFhsQmtW?=
 =?utf-8?B?Z3QwMjNIMXFqeUlNZ2JaWFQwZVhMdURyc3I2dWRjalRGekxxZVltQ2lRMUlh?=
 =?utf-8?B?TzMxSCs0Um1FR0h3alBrUlQwc1pqKy9iWWVhY1dLR0R3Mmlmb1Foem9xakxY?=
 =?utf-8?B?c1drdEtmZVR0bWh0MDN1NE1mUkwvVEVEYW9JN3d2OGhHZkNqUkR5ZDlBc0F0?=
 =?utf-8?B?SHV4emJtaVpQOGhQMDhRVlQvbmIrVkxoRlNha01PWkZuZVFQakhCdWw0ZHFZ?=
 =?utf-8?B?YUNmVWtmUDFxaXR1clNvNjlTNG9nVzU2NVhnZlcvRmhGM3ZnOFBwd1Yxc0ZX?=
 =?utf-8?B?QnV6T1p4eTNHKzNZdjFsU1VGekdTb0VMdDYwUWRHKzdzTUFFVzIwNGpsYVEv?=
 =?utf-8?B?em9TQTlUYUFlRVRmbXBZT093d2VSTjlIK1JXT3QxWm9QSEFsREFRTkhaTitl?=
 =?utf-8?B?RlNtczNYSWg5aG56RVZZT0FuRmVSbmdxbWZpZjJob3FZSGE0VkxNNkhUdElJ?=
 =?utf-8?Q?/7Mz4M4pFrOF9+ZsI/7JJIU=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <294C760EFEFF6F4C93827823378C8A51@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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b5f8fed4-630b-4696-3aab-08dde57047fe
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Aug 2025 13:47:36.3350
 (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: SNl0Irvky/HDqmrTUk/NDWPAytUY+CV/JZKll/BBxzNZARa2S1Nv33N7NIGuljpPLNykG4F0zuSJ0PxE8Jijak40JjwEhPjBwI/K5cpeXC8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR03MB7310

SGVsbG8gT2xla3NhbmRyLA0KDQpUaGFuayB5b3UgZm9yIHlvdXIgcmV2aWV3LiBJdCB3YXMgcmVh
bGx5IGhlbHBmdWwuDQoNCk9uIDI3LjA4LjI1IDE1OjAxLCBPbGVrc2FuZHIgVHlzaGNoZW5rbyB3
cm90ZToNCj4gDQo+IA0KPiBPbiAyNy4wOC4yNSAxMzoyNSwgTGVvbmlkIEtvbWFyaWFuc2t5aSB3
cm90ZToNCj4gDQo+IEhlbGxvIExlb25pZA0KPiANCj4+IEhlbGxvIFZvbG9keW15ciwNCj4+DQo+
PiBUaGFuayB5b3UgZm9yIHlvdXIgc3VnZ2VzdGlvbi4NCj4+DQo+PiBPbiAyNy4wOC4yNSAwMjow
OCwgVm9sb2R5bXlyIEJhYmNodWsgd3JvdGU6DQo+Pj4gSGkgTGVvbmlkLA0KPj4+DQo+Pj4gTGVv
bmlkIEtvbWFyaWFuc2t5aSA8TGVvbmlkX0tvbWFyaWFuc2t5aUBlcGFtLmNvbT4gd3JpdGVzOg0K
Pj4+DQo+Pj4+IFRoZSBEb20wIGFuZCBEb21VcyBsb2dpYyBmb3IgdGhlIGRvbTBsZXNzIGNvbmZp
Z3VyYXRpb24gaW4gDQo+Pj4+IGNyZWF0ZV9kb20wKCkNCj4+Pj4gYW5kIGFyY2hfY3JlYXRlX2Rv
bVVzKCkgaGFzIGJlZW4gdXBkYXRlZCB0byBhY2NvdW50IGZvciBleHRlbmRlZCBTUElzDQo+Pj4+
IHdoZW4gc3VwcG9ydGVkIGJ5IHRoZSBoYXJkd2FyZSBhbmQgZW5hYmxlZCB3aXRoIENPTkZJR19H
SUNWM19FU1BJLiANCj4+Pj4gVGhlc2UNCj4+Pj4gY2hhbmdlcyBlbnN1cmUgdGhlIHByb3BlciBj
YWxjdWxhdGlvbiBvZiB0aGUgbWF4aW11bSBudW1iZXIgb2YgU1BJcyBhbmQNCj4+Pj4gZVNQSXMg
YXZhaWxhYmxlIHRvIERvbTAgYW5kIERvbVVzIGluIGRvbTBsZXNzIHNldHVwcy4NCj4+Pj4NCj4+
Pj4gV2hlbiBlU1BJcyBhcmUgc3VwcG9ydGVkIGJ5IHRoZSBoYXJkd2FyZSBhbmQgQ09ORklHX0dJ
Q1YzX0VTUEkgaXMNCj4+Pj4gZW5hYmxlZCwgdGhlIG1heGltdW0gbnVtYmVyIG9mIGVTUEkgaW50
ZXJydXB0cyBpcyBjYWxjdWxhdGVkIHVzaW5nIHRoZQ0KPj4+PiBFU1BJX0JBU0VfSU5USUQgb2Zm
c2V0ICg0MDk2KSBhbmQgaXMgbGltaXRlZCB0byAxMDI0LCB3aXRoIDMyIElSUXMNCj4+Pj4gc3Vi
dHJhY3RlZC4gVG8gZW5zdXJlIGNvbXBhdGliaWxpdHkgd2l0aCBEb21VcyAoRG9tMCBzZXR1cHMp
IGRvbWFpbnMsDQo+Pj4+IHdoZXJlIHRoaXMgYWRqdXN0bWVudCBpcyBhcHBsaWVkIGJ5IHRoZSB0
b29sc3RhY2sgZHVyaW5nIGRvbWFpbg0KPj4+PiBjcmVhdGlvbiwgd2hpbGUgZm9yIERvbTAgb3Ig
RG9tVXMgaW4gRG9tMCwgaXQgaXMgaGFuZGxlZCBkaXJlY3RseSANCj4+Pj4gZHVyaW5nDQo+Pj4+
IFZHSUMgaW5pdGlhbGl6YXRpb24uIElmIGVTUElzIGFyZSBub3Qgc3VwcG9ydGVkLCB0aGUgY2Fs
Y3VsYXRpb24NCj4+Pj4gZGVmYXVsdHMgdG8gdXNpbmcgdGhlIHN0YW5kYXJkIFNQSSByYW5nZSwg
d2l0aCBhIG1heGltdW0gdmFsdWUgb2YNCj4+Pj4gOTYwIGludGVycnVwdCBsaW5lcywgYXMgaXQg
d29ya3MgY3VycmVudGx5Lg0KPj4+Pg0KPj4+PiBTaWduZWQtb2ZmLWJ5OiBMZW9uaWQgS29tYXJp
YW5za3lpIDxsZW9uaWRfa29tYXJpYW5za3lpQGVwYW0uY29tPg0KPj4+Pg0KPj4+PiAtLS0NCj4+
Pj4gQ2hhbmdlcyBpbiBWMjoNCj4+Pj4gLSBubyBjaGFuZ2VzDQo+Pj4+DQo+Pj4+IENoYW5nZXMg
aW4gVjM6DQo+Pj4+IC0gcmVuYW1lZCBtYWNybyBWR0lDX0RFRl9OUl9FU1BJUyB0byBtb3JlIGFw
cHJvcHJpYXRlIFZHSUNfREVGX01BWF9TUEkNCj4+Pg0KPj4+IFdpbGwgVkdJQ19ERUZfTUFYX0VT
UEkgYmUgYmV0dGVyPyBXaGVuIG90aGVyIGNvZGUgcmVmZXIgdG8gIlNQSSIgaXQgbWVhbg0KPj4+
ICJjb21tb24gU1BJIiAobGVzcyB0aGFuIDEwMjIpLCB3aGlsZSBFU1BJIGlzIHVzZWQgZm9yIGV4
dGVuZGVkIFNQSS4gU28sDQo+Pj4gbmF0dXJhbGx5IGl0IGZlZWxzIHRoYXQgVkdJQ19ERUZfTUFY
X1NQSSBzaG91bGQgYmUgZXF1YWwgdG8gMTAyMi4uLg0KPj4+DQo+Pg0KPj4gWWVzLCBJIGFncmVl
IHdpdGggdGhhdCAtIFZHSUNfREVGX01BWF9FU1BJIHNvdW5kcyBtb3JlIGFwcHJvcHJpYXRlIGlu
DQo+PiB0aGlzIGNhc2UuIEkgd2lsbCByZW5hbWUgaXQgaW4gVjQuDQo+Pg0KPj4+PiAtIGFkZGVk
IGVTUEkgaW5pdGlhbGl6YXRpb24gZm9yIGRvbTBsZXNzIHNldHVwcw0KPj4+PiAtIGZpeGVkIGNv
bW1lbnQgd2l0aCBtZW50aW9ucyBhYm91dCBkb20wbGVzcyBidWlsZHMNCj4+Pj4gLSBmaXhlZCBm
b3JtYXR0aW5nIGZvciBsaW5lcyB3aXRoIG1vcmUgdGhhbiA4MCBzeW1ib2xzDQo+Pj4+IC0gdXBk
YXRlZCBjb21taXQgbWVzc2FnZQ0KPj4+PiAtLS0NCj4+Pj4gwqDCoCB4ZW4vYXJjaC9hcm0vZG9t
MGxlc3MtYnVpbGQuY8KgwqAgfCAxMiArKysrKysrKysrKysNCj4+Pj4gwqDCoCB4ZW4vYXJjaC9h
cm0vZG9tYWluX2J1aWxkLmPCoMKgwqDCoCB8IDExICsrKysrKysrKysrDQo+Pj4+IMKgwqAgeGVu
L2FyY2gvYXJtL2luY2x1ZGUvYXNtL3ZnaWMuaCB8IDE0ICsrKysrKysrKysrKysrDQo+Pj4+IMKg
wqAgMyBmaWxlcyBjaGFuZ2VkLCAzNyBpbnNlcnRpb25zKCspDQo+Pj4+DQo+Pj4+IGRpZmYgLS1n
aXQgYS94ZW4vYXJjaC9hcm0vZG9tMGxlc3MtYnVpbGQuYyBiL3hlbi9hcmNoL2FybS9kb20wbGVz
cy0gDQo+Pj4+IGJ1aWxkLmMNCj4+Pj4gaW5kZXggNjliOWVhMjJjZS4uZjRmOTA3N2RiNSAxMDA2
NDQNCj4+Pj4gLS0tIGEveGVuL2FyY2gvYXJtL2RvbTBsZXNzLWJ1aWxkLmMNCj4+Pj4gKysrIGIv
eGVuL2FyY2gvYXJtL2RvbTBsZXNzLWJ1aWxkLmMNCj4+Pj4gQEAgLTI4Niw2ICsyODYsMTggQEAg
dm9pZCBfX2luaXQgYXJjaF9jcmVhdGVfZG9tVXMoc3RydWN0IA0KPj4+PiBkdF9kZXZpY2Vfbm9k
ZSAqbm9kZSwNCj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW50IHZwbDAxMV92aXJxID0gR1VF
U1RfVlBMMDExX1NQSTsNCj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqAgZF9jZmctPmFyY2gubnJf
c3BpcyA9IFZHSUNfREVGX05SX1NQSVM7DQo+Pj4+ICsjaWZkZWYgQ09ORklHX0dJQ1YzX0VTUEkN
Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgIC8qDQo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgICogQ2hlY2sg
aWYgdGhlIGhhcmR3YXJlIHN1cHBvcnRzIGV4dGVuZGVkIFNQSXMgKGV2ZW4gaWYgdGhlDQo+Pj4+
ICvCoMKgwqDCoMKgwqDCoMKgICogYXBwcm9wcmlhdGUgY29uZmlnIGlzIHNldCkuIElmIG5vdCwg
dGhlIGNvbW1vbiBTUEkgcmFuZ2UNCj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqAgKiB3aWxsIGJlIHVz
ZWQuIE90aGVyd2lzZSBvdmVyd3JpdGUgdGhlIG5yX3NwaXMgd2l0aCB0aGUgDQo+Pj4+IG1heGlt
dW0NCj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqAgKiBhdmFpbGFibGUgSU5USUQgZnJvbSBlU1BJIHJh
bmdlLiBJbiB0aGF0IGNhc2UsIHRoZSANCj4+Pj4gbnVtYmVyIG9mDQo+Pj4+ICvCoMKgwqDCoMKg
wqDCoMKgICogcmVndWxhciBTUElzIHdpbGwgYmUgYWRqdXN0ZWQgdG8gdGhlIG1heGltdW0gdmFs
dWUgDQo+Pj4+IGR1cmluZyB2R0lDDQo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgICogaW5pdGlhbGl6
YXRpb24uDQo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgICovDQo+Pj4+ICvCoMKgwqDCoMKgwqDCoCBp
ZiAoIGdpY19udW1iZXJfZXNwaXMoKSA+IDAgKQ0KPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oCBkX2NmZy0+YXJjaC5ucl9zcGlzID0gVkdJQ19ERUZfTUFYX1NQSTsNCj4+Pj4gKyNlbmRpZg0K
Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvKg0KPj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
ICogVGhlIFZQTDAxMSB2aXJxIGlzIEdVRVNUX1ZQTDAxMV9TUEksIHVubGVzcyBkaXJlY3QtbWFw
IGlzDQo+Pj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMgYi94ZW4v
YXJjaC9hcm0vZG9tYWluX2J1aWxkLmMNCj4+Pj4gaW5kZXggZDkxYTcxYWNmZC4uMTQ4YThiZGI2
MCAxMDA2NDQNCj4+Pj4gLS0tIGEveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jDQo+Pj4+ICsr
KyBiL3hlbi9hcmNoL2FybS9kb21haW5fYnVpbGQuYw0KPj4+PiBAQCAtMjA1NSw2ICsyMDU1LDE3
IEBAIHZvaWQgX19pbml0IGNyZWF0ZV9kb20wKHZvaWQpDQo+Pj4+IMKgwqDCoMKgwqDCoCAvKiBU
aGUgdkdJQyBmb3IgRE9NMCBpcyBleGFjdGx5IGVtdWxhdGluZyB0aGUgaGFyZHdhcmUgR0lDICov
DQo+Pj4+IMKgwqDCoMKgwqDCoCBkb20wX2NmZy5hcmNoLmdpY192ZXJzaW9uID0gWEVOX0RPTUNU
TF9DT05GSUdfR0lDX05BVElWRTsNCj4+Pj4gwqDCoMKgwqDCoMKgIGRvbTBfY2ZnLmFyY2gubnJf
c3BpcyA9IFZHSUNfREVGX05SX1NQSVM7DQo+Pj4+ICsjaWZkZWYgQ09ORklHX0dJQ1YzX0VTUEkN
Cj4+Pj4gK8KgwqDCoCAvKg0KPj4+PiArwqDCoMKgwqAgKiBDaGVjayBpZiB0aGUgaGFyZHdhcmUg
c3VwcG9ydHMgZXh0ZW5kZWQgU1BJcyAoZXZlbiBpZiB0aGUgDQo+Pj4+IGFwcHJvcHJpYXRlDQo+
Pj4+ICvCoMKgwqDCoCAqIGNvbmZpZyBpcyBzZXQpLiBJZiBub3QsIHRoZSBjb21tb24gU1BJIHJh
bmdlIHdpbGwgYmUgdXNlZC4gDQo+Pj4+IE90aGVyd2lzZQ0KPj4+PiArwqDCoMKgwqAgKiBvdmVy
d3JpdGUgdGhlIG5yX3NwaXMgd2l0aCB0aGUgbWF4aW11bSBhdmFpbGFibGUgSU5USUQgZnJvbSAN
Cj4+Pj4gZVNQSSByYW5nZS4NCj4+Pj4gK8KgwqDCoMKgICogSW4gdGhhdCBjYXNlLCB0aGUgbnVt
YmVyIG9mIHJlZ3VsYXIgU1BJcyB3aWxsIGJlIGFkanVzdGVkIHRvIA0KPj4+PiB0aGUgbWF4aW11
bQ0KPj4+PiArwqDCoMKgwqAgKiB2YWx1ZSBkdXJpbmcgdkdJQyBpbml0aWFsaXphdGlvbi4NCj4+
Pj4gK8KgwqDCoMKgICovDQo+Pj4+ICvCoMKgwqAgaWYgKCBnaWNfbnVtYmVyX2VzcGlzKCkgPiAw
ICkNCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIGRvbTBfY2ZnLmFyY2gubnJfc3BpcyA9IFZHSUNfREVG
X01BWF9TUEk7DQo+Pj4+ICsjZW5kaWYNCj4gDQo+IFNvIHdlIGhhdmUgYWxtb3N0ICg/KSBpZGVu
dGljYWwgY29kZSBhbmQgYmlnIGNvbW1lbnRzIGluIGJvdGggDQo+IGNyZWF0ZV9kb20wKCkgYW5k
IGFyY2hfY3JlYXRlX2RvbVVzKCkuDQo+IA0KPiBJIHdhcyB0aGlua2luZywgd291bGRuJ3QgaXQg
YmUgYmV0dGVyIGlmIHdlIHB1dCB0aGlzIGludG8gYSBoZWxwZXI/IFRoaXMgDQo+IHdheSwgSSB0
aGluaywgd2Ugd2lsbCByZWR1Y2UgdGhlIG51bWJlciBvZiBHSUN2My1zcGVjaWZpYyAjaWZkZWYt
cyBpbiANCj4gY29tbW9uIGRvbWFpbiBjb25zdHJ1Y3Rpb24gY29kZSBhbmQgd2lsbCBub3QgbmVl
ZCB0byB3b3JyeSBhYm91dCBrZWVwaW5nIA0KPiB0aGVzZSBwbGFjZXMgaW4gc3luYyB3aGVuIHVw
ZGF0aW5nIHRoZSBjaGVjay9jb21tZW50Lg0KPiANCj4gU29tZXRoaW5nIGxpa2UgYmVsb3cgdG8g
YmUgYXBwbGllZCBvbiB0b3Agb2YgeW91ciBwYXRjaCAobm90IGJ1aWxkLXRlc3RlZCk6DQo+IA0K
PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2RvbTBsZXNzLWJ1aWxkLmMgYi94ZW4vYXJjaC9h
cm0vZG9tMGxlc3MtYnVpbGQuYw0KPiBpbmRleCBmNGY5MDc3ZGI1Li4wMmQ1NTU5MTAyIDEwMDY0
NA0KPiAtLS0gYS94ZW4vYXJjaC9hcm0vZG9tMGxlc3MtYnVpbGQuYw0KPiArKysgYi94ZW4vYXJj
aC9hcm0vZG9tMGxlc3MtYnVpbGQuYw0KPiBAQCAtMjg1LDE5ICsyODUsNyBAQCB2b2lkIF9faW5p
dCBhcmNoX2NyZWF0ZV9kb21VcyhzdHJ1Y3QgZHRfZGV2aWNlX25vZGUgDQo+ICpub2RlLA0KPiAg
wqDCoMKgwqAgew0KPiAgwqDCoMKgwqDCoMKgwqDCoCBpbnQgdnBsMDExX3ZpcnEgPSBHVUVTVF9W
UEwwMTFfU1BJOw0KPiANCj4gLcKgwqDCoMKgwqDCoMKgIGRfY2ZnLT5hcmNoLm5yX3NwaXMgPSBW
R0lDX0RFRl9OUl9TUElTOw0KPiAtI2lmZGVmIENPTkZJR19HSUNWM19FU1BJDQo+IC3CoMKgwqDC
oMKgwqDCoCAvKg0KPiAtwqDCoMKgwqDCoMKgwqDCoCAqIENoZWNrIGlmIHRoZSBoYXJkd2FyZSBz
dXBwb3J0cyBleHRlbmRlZCBTUElzIChldmVuIGlmIHRoZQ0KPiAtwqDCoMKgwqDCoMKgwqDCoCAq
IGFwcHJvcHJpYXRlIGNvbmZpZyBpcyBzZXQpLiBJZiBub3QsIHRoZSBjb21tb24gU1BJIHJhbmdl
DQo+IC3CoMKgwqDCoMKgwqDCoMKgICogd2lsbCBiZSB1c2VkLiBPdGhlcndpc2Ugb3ZlcndyaXRl
IHRoZSBucl9zcGlzIHdpdGggdGhlIG1heGltdW0NCj4gLcKgwqDCoMKgwqDCoMKgwqAgKiBhdmFp
bGFibGUgSU5USUQgZnJvbSBlU1BJIHJhbmdlLiBJbiB0aGF0IGNhc2UsIHRoZSBudW1iZXIgb2YN
Cj4gLcKgwqDCoMKgwqDCoMKgwqAgKiByZWd1bGFyIFNQSXMgd2lsbCBiZSBhZGp1c3RlZCB0byB0
aGUgbWF4aW11bSB2YWx1ZSBkdXJpbmcgdkdJQw0KPiAtwqDCoMKgwqDCoMKgwqDCoCAqIGluaXRp
YWxpemF0aW9uLg0KPiAtwqDCoMKgwqDCoMKgwqDCoCAqLw0KPiAtwqDCoMKgwqDCoMKgwqAgaWYg
KCBnaWNfbnVtYmVyX2VzcGlzKCkgPiAwICkNCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZF9j
ZmctPmFyY2gubnJfc3BpcyA9IFZHSUNfREVGX01BWF9TUEk7DQo+IC0jZW5kaWYNCj4gK8KgwqDC
oMKgwqDCoMKgIGRfY2ZnLT5hcmNoLm5yX3NwaXMgPSB2Z2ljX2RlZl9ucl9zcGlzKCk7DQo+IA0K
PiAgwqDCoMKgwqDCoMKgwqDCoCAvKg0KPiAgwqDCoMKgwqDCoMKgwqDCoMKgICogVGhlIFZQTDAx
MSB2aXJxIGlzIEdVRVNUX1ZQTDAxMV9TUEksIHVubGVzcyBkaXJlY3QtbWFwIGlzDQo+IGRpZmYg
LS1naXQgYS94ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMgYi94ZW4vYXJjaC9hcm0vZG9tYWlu
X2J1aWxkLmMNCj4gaW5kZXggMTQ4YThiZGI2MC4uMzllZWEwYmUwMCAxMDA2NDQNCj4gLS0tIGEv
eGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jDQo+ICsrKyBiL3hlbi9hcmNoL2FybS9kb21haW5f
YnVpbGQuYw0KPiBAQCAtMjA1NCwxOCArMjA1NCw3IEBAIHZvaWQgX19pbml0IGNyZWF0ZV9kb20w
KHZvaWQpDQo+IA0KPiAgwqDCoMKgwqAgLyogVGhlIHZHSUMgZm9yIERPTTAgaXMgZXhhY3RseSBl
bXVsYXRpbmcgdGhlIGhhcmR3YXJlIEdJQyAqLw0KPiAgwqDCoMKgwqAgZG9tMF9jZmcuYXJjaC5n
aWNfdmVyc2lvbiA9IFhFTl9ET01DVExfQ09ORklHX0dJQ19OQVRJVkU7DQo+IC3CoMKgwqAgZG9t
MF9jZmcuYXJjaC5ucl9zcGlzID0gVkdJQ19ERUZfTlJfU1BJUzsNCj4gLSNpZmRlZiBDT05GSUdf
R0lDVjNfRVNQSQ0KPiAtwqDCoMKgIC8qDQo+IC3CoMKgwqDCoCAqIENoZWNrIGlmIHRoZSBoYXJk
d2FyZSBzdXBwb3J0cyBleHRlbmRlZCBTUElzIChldmVuIGlmIHRoZSANCj4gYXBwcm9wcmlhdGUN
Cj4gLcKgwqDCoMKgICogY29uZmlnIGlzIHNldCkuIElmIG5vdCwgdGhlIGNvbW1vbiBTUEkgcmFu
Z2Ugd2lsbCBiZSB1c2VkLiANCj4gT3RoZXJ3aXNlDQo+IC3CoMKgwqDCoCAqIG92ZXJ3cml0ZSB0
aGUgbnJfc3BpcyB3aXRoIHRoZSBtYXhpbXVtIGF2YWlsYWJsZSBJTlRJRCBmcm9tIGVTUEkgDQo+
IHJhbmdlLg0KPiAtwqDCoMKgwqAgKiBJbiB0aGF0IGNhc2UsIHRoZSBudW1iZXIgb2YgcmVndWxh
ciBTUElzIHdpbGwgYmUgYWRqdXN0ZWQgdG8gdGhlIA0KPiBtYXhpbXVtDQo+IC3CoMKgwqDCoCAq
IHZhbHVlIGR1cmluZyB2R0lDIGluaXRpYWxpemF0aW9uLg0KPiAtwqDCoMKgwqAgKi8NCj4gLcKg
wqDCoCBpZiAoIGdpY19udW1iZXJfZXNwaXMoKSA+IDAgKQ0KPiAtwqDCoMKgwqDCoMKgwqAgZG9t
MF9jZmcuYXJjaC5ucl9zcGlzID0gVkdJQ19ERUZfTUFYX1NQSTsNCj4gLSNlbmRpZg0KPiArwqDC
oMKgIGRvbTBfY2ZnLmFyY2gubnJfc3BpcyA9IHZnaWNfZGVmX25yX3NwaXMoKTsNCj4gIMKgwqDC
oMKgIGRvbTBfY2ZnLmFyY2gudGVlX3R5cGUgPSB0ZWVfZ2V0X3R5cGUoKTsNCj4gIMKgwqDCoMKg
IGRvbTBfY2ZnLm1heF92Y3B1cyA9IGRvbTBfbWF4X3ZjcHVzKCk7DQo+IA0KPiBkaWZmIC0tZ2l0
IGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3ZnaWMuaCBiL3hlbi9hcmNoL2FybS9pbmNsdWRl
L2FzbS8gDQo+IHZnaWMuaA0KPiBpbmRleCAwYmIwMjVmNWQ1Li4wMzUwMTIyYTc0IDEwMDY0NA0K
PiAtLS0gYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vdmdpYy5oDQo+ICsrKyBiL3hlbi9hcmNo
L2FybS9pbmNsdWRlL2FzbS92Z2ljLmgNCj4gQEAgLTM2Nyw2ICszNjcsMjQgQEAgZXh0ZXJuIHZv
aWQgdmdpY19jaGVja19pbmZsaWdodF9pcnFzX3BlbmRpbmcoc3RydWN0IA0KPiB2Y3B1ICp2LA0K
PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBt
aW4oZ2ljX251bWJlcl9lc3BpcygpLCAxMDI0VSkgLSAzMikNCj4gIMKgI2VuZGlmDQo+IA0KPiAr
c3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgdmdpY19kZWZfbnJfc3Bpcyh2b2lkKQ0KPiArew0K
PiArI2lmZGVmIENPTkZJR19HSUNWM19FU1BJDQo+ICvCoMKgwqAgLyoNCj4gK8KgwqDCoMKgICog
Q2hlY2sgaWYgdGhlIGhhcmR3YXJlIHN1cHBvcnRzIGV4dGVuZGVkIFNQSXMgKGV2ZW4gaWYgdGhl
DQo+ICvCoMKgwqDCoCAqIGFwcHJvcHJpYXRlIGNvbmZpZyBpcyBzZXQpLiBJZiBub3QsIHRoZSBj
b21tb24gU1BJIHJhbmdlDQo+ICvCoMKgwqDCoCAqIHdpbGwgYmUgdXNlZC4gT3RoZXJ3aXNlIG92
ZXJ3cml0ZSB0aGUgbnJfc3BpcyB3aXRoIHRoZSBtYXhpbXVtDQo+ICvCoMKgwqDCoCAqIGF2YWls
YWJsZSBJTlRJRCBmcm9tIGVTUEkgcmFuZ2UuIEluIHRoYXQgY2FzZSwgdGhlIG51bWJlciBvZg0K
PiArwqDCoMKgwqAgKiByZWd1bGFyIFNQSXMgd2lsbCBiZSBhZGp1c3RlZCB0byB0aGUgbWF4aW11
bSB2YWx1ZSBkdXJpbmcgdkdJQw0KPiArwqDCoMKgwqAgKiBpbml0aWFsaXphdGlvbi4NCj4gK8Kg
wqDCoMKgICovDQo+ICvCoMKgwqAgaWYgKCBnaWNfbnVtYmVyX2VzcGlzKCkgPiAwICkNCj4gK8Kg
wqDCoMKgwqDCoMKgIHJldHVybiBWR0lDX0RFRl9NQVhfU1BJOw0KPiArI2VuZGlmDQo+ICsNCj4g
K8KgwqDCoCByZXR1cm4gVkdJQ19ERUZfTlJfU1BJUzsNCj4gK30NCj4gKw0KPiAgwqBleHRlcm4g
Ym9vbCB2Z2ljX2lzX3ZhbGlkX2xpbmUoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IHZp
cnEpOw0KPiANCj4gIMKgc3RhdGljIGlubGluZSBib29sIHZnaWNfaXNfc3BpKHN0cnVjdCBkb21h
aW4gKmQsIHVuc2lnbmVkIGludCB2aXJxKQ0KPiANCj4gKioqKioqDQo+IA0KPiBBbHNvLCBpZiBW
R0lDX0RFRl9NQVhfU1BJIChvciB3aGF0ZXZlciBuYW1lIHlvdSBhZ3JlZWQgb24pIGlzIG5vdCAN
Cj4gc3VwcG9zZWQgdG8gYmUgdXNlZCBvdXRzaWRlIG9mIHZnaWMuaCwgSSB3b3VsZCBldmVuIGNv
bnNpZGVyIGRyb3BwaW5nIGl0DQo+IGFuZCB1c2luZyAiRVNQSV9CQVNFX0lOVElEICsgbWluKGdp
Y19udW1iZXJfZXNwaXMoKSwgMTAyNFUpIC0gMzIiICh0byANCj4gcmVkdWNlIG9uZSBtb3JlICNp
ZmRlZiBpbiB0aGUgaGVhZGVyKS4NCg0KWWVzLCBJIGFncmVlIHdpdGggeW91IC0gaXQgbG9va3Mg
bXVjaCBiZXR0ZXIuIEkgd2lsbCBjaGVjayB5b3VyIGNoYW5nZXMsIA0KYW5kIGlmIGV2ZXJ5dGhp
bmcgaXMgb2theSwgSSB3aWxsIGFwcGx5IHRoZW0gdG8gVjQuDQoNCj4gDQo+IA0KPiBQLlMuIEkg
bWlnaHQgYmUgd3JvbmcsIGJ1dCBpdCBmZWVscyB0byBtZSwgdGhhdCBkZXNjcmlwdGlvbiBmb3Ig
DQo+ICJucl9zcGlzIiBpbiBkb2NzL21hbi94bC5jZmcuNS5wb2QuaW4gbmVlZHMgYSB1cGRhdGUg
d2l0aGluIHlvdXIgc2VyaWVzIA0KPiAoaXQgbWVudGlvbnMgdGhhdCAiTWF4IGlzIDk2MCBTUElz
IikuDQoNCg0KQmVzdCByZWdhcmRzLA0KTGVvbmlkDQo=


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 13:57:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 13:57:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096121.1450911 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urGeU-0001Uy-MN; Wed, 27 Aug 2025 13:57:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096121.1450911; Wed, 27 Aug 2025 13:57: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 1urGeU-0001Ur-JK; Wed, 27 Aug 2025 13:57:26 +0000
Received: by outflank-mailman (input) for mailman id 1096121;
 Wed, 27 Aug 2025 13:57:25 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BCET=3H=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1urGeT-0001Ul-AV
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 13:57:25 +0000
Received: from mail-lj1-x22b.google.com (mail-lj1-x22b.google.com
 [2a00:1450:4864:20::22b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c1fd8859-834d-11f0-aeb2-fb57b961d000;
 Wed, 27 Aug 2025 15:57:24 +0200 (CEST)
Received: by mail-lj1-x22b.google.com with SMTP id
 38308e7fff4ca-3364e945ce7so50133541fa.1
 for <xen-devel@lists.xenproject.org>; Wed, 27 Aug 2025 06:57:23 -0700 (PDT)
Received: from [192.168.0.110] ([91.123.151.69])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-3365e20d2eesm27981471fa.13.2025.08.27.06.57.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Aug 2025 06:57: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>
X-Inumbo-ID: c1fd8859-834d-11f0-aeb2-fb57b961d000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756303043; x=1756907843; 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=ygKfww93ZFknfiJ9bpkuC0SvDA9XslWxx059vdR8FDw=;
        b=VmhIGSEInM5icz1OtokX4vcMpOOOj8+LTi5ecYWTo3L3QSd6insymwBvK3nYLi+lQr
         q0wHLhTwfKdS+IZGw7GqqCyqmqFvm/jYsRu/cVpxDbs1XBtnq0cmEUr1brNZiaWgbVZi
         d+9TzkhiN2aJ5Vyo6C9P4IQILJH4jo0Ua9Mp3hi1wKmu0r5oIN8Qzzu/HqDhPu0NgkRB
         1gnZyFPFCeb5XM66HOXmolbL1T5CUCqFRzQjiAsXtGF6GrzACgs6lJP2D+4Ph0MYWQ1g
         SBwpATmzNK3Un0VF0ZVNJvKSqNGk4PvXNZbxohrPQlCN5pxzNRhbQsEuzFFq1w7fq/va
         GMIg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756303043; x=1756907843;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=ygKfww93ZFknfiJ9bpkuC0SvDA9XslWxx059vdR8FDw=;
        b=d7XNcOFB5xEpKe1DyN5szsNXEmxPjCppUEn1XHFUN6/KuIhU68Tp6FdQCBDGLbfr30
         QlESLMEu1uVWSuhG6ZrIw3K9Z4IXyJhXFGqknlXLmFcQyomZM7o2o3hcb8gnNDR8edXi
         QKJNvpejbv2D4Je3Mqlk7kJjESCdz5F86sXRzAt1+sJZrO+4+aHhp+kZa2pppChkQnch
         InWm8mEWIUQ+aPdVL5up2VLQtCJR2w5FaJ7jVvYNq6UoxrikxbCYr0zkhDXvPe+kyE6y
         iT0Nl4vHo0dabfwIIxV9iNAun8DNylUpL9KIAcdcdWlVTz0UK1vKmbTWzMwmdEhykWk8
         Jx9Q==
X-Forwarded-Encrypted: i=1; AJvYcCWpFeo65pjHyTEopPerkFP/EYLALb0EZL0M2DkwtAekSch0q5U2D4/dd+bBhh61zuQVnyGlCDTil9M=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxyby17TCa1fqCCRI1xstUWlDtSpRV+JCEU6uP3kygo9Noqvzya
	R7JrVCcoXEY9QsuUyyDLaAqwkq6NhX8Ph/Qt2irZv0A+q6qTtqI+pEBX
X-Gm-Gg: ASbGncuDL/mRpe+NjVKVAa18+p24DcJ/AYOQxmrSpJqOgUO38+nF9CHcCxK06Ev47SM
	lhPgp7lcAmSzDUg0yDnmUd16bL71c4QS1XZpfGctuiJarX7TQ1+eCnXz3vvOxLzvQ3sJb+OI5Mk
	4PZ73CZYsL2INNoAfAbKcNGUQtDha1uuCbM7kAoippiMsNs4pqcEsmekAVizFietzO5ETHAbdEq
	Lc1bOv6tXDi1GyfYTivlvGNLk+jwwlzG5E1cEFtlFKTLo/wqYD6U1HYIhL+pAonSL7DvR+3aFKs
	zSiULkTAqkiysYZjj0etUWjlHMPzgc4csp2CgZiCg72VHftI0NHVj+KxQIy9Y2gkL+ZnCXp26T8
	bDWmSNaRlPEPaXHgult2uP+hyWEvZV0TbbccL
X-Google-Smtp-Source: AGHT+IEant2LZmYvRCY+oCNyyVKEcQXTEpoTVYYHvhEWgWH8xM0t1X4khibDstI6vHM0KhemD29pgQ==
X-Received: by 2002:a2e:bea9:0:b0:336:94ec:5d0e with SMTP id 38308e7fff4ca-33694ec6468mr6952471fa.5.1756303042965;
        Wed, 27 Aug 2025 06:57:22 -0700 (PDT)
Message-ID: <7b1e7d3f-3893-4ddf-b352-10541638d12d@gmail.com>
Date: Wed, 27 Aug 2025 16:57:21 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 05/11] xen/arm: gicv3: implement handling of GICv3.1
 eSPI
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1756216942.git.leonid_komarianskyi@epam.com>
 <398ad09617f4f97d57d13fa9f3771bd2db83916b.1756216943.git.leonid_komarianskyi@epam.com>
 <c9ec5d69-6b2e-4226-aa8f-ee6062c84885@gmail.com>
 <bc850218-334b-407e-9008-3c1e8a61c7ba@epam.com>
Content-Language: en-US
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
In-Reply-To: <bc850218-334b-407e-9008-3c1e8a61c7ba@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit



On 27.08.25 16:38, Leonid Komarianskyi wrote:
> Hello Oleksandr,

Hello Leonid

> 
> Thank you for your good question, I was thinking about that as well.
> 
> On 27.08.25 13:25, Oleksandr Tyshchenko wrote:
>>
>>
>> On 26.08.25 17:05, Leonid Komarianskyi wrote:
>>
>>
>> Hello Leonid,
>>
>> In general patch looks good to me, just one question below ...
>>
>>> Introduced appropriate register definitions, helper macros,
>>> and initialization of required GICv3.1 distributor registers
>>> to support eSPI. This type of interrupt is handled in the
>>> same way as regular SPI interrupts, with the following
>>> differences:
>>>
>>> 1) eSPIs can have up to 1024 interrupts, starting from the
>>> beginning of the range, whereas regular SPIs use INTIDs from
>>> 32 to 1019, totaling 988 interrupts;
>>> 2) eSPIs start at INTID 4096, necessitating additional interrupt
>>> index conversion during register operations.
>>>
>>> In case if appropriate config is disabled, or GIC HW doesn't
>>> support eSPI, the existing functionality will remain the same.
>>>
>>> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
>>>
>>> ---
>>> Changes in V2:
>>> - move gic_number_espis function from
>>>  Â Â  [PATCH 08/10] xen/arm: vgic: add resource management for extended SPIs
>>>  Â Â  to use it in the newly introduced gic_is_valid_espi
>>> - add gic_is_valid_espi which checks if IRQ number is in supported
>>>  Â Â  by HW eSPI range
>>> - update gic_is_valid_irq conditions to allow operations with eSPIs
>>>
>>> Changes in V3:
>>> - add __init attribute to gicv3_dist_espi_common_init
>>> - change open-codded eSPI register initialization to the appropriate
>>>  Â Â  gen-mask macro
>>> - fixed formatting for lines with more than 80 symbols
>>> - introduced gicv3_dist_espi_init_aff to be able to use stubs in case of
>>>  Â Â  CONFIG_GICV3_ESPI disabled
>>> - renamed parameter in the GICD_TYPER_ESPI_RANGE macro to espi_range
>>>  Â Â  (name was taken from GIC specification) to avoid confusion
>>> - changed type for i variable to unsigned int since it cannot be
>>>  Â Â  negative
>>> ---
>>>  Â  xen/arch/arm/gic-v3.cÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  | 80 ++++++++++++++++++++++++++
>>>  Â  xen/arch/arm/include/asm/gic.hÂ Â Â Â Â Â Â Â  | 21 +++++++
>>>  Â  xen/arch/arm/include/asm/gic_v3_defs.h | 34 +++++++++++
>>>  Â  3 files changed, 135 insertions(+)
>>>
>>> diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
>>> index a959fefebe..3aa5cc1765 100644
>>> --- a/xen/arch/arm/gic-v3.c
>>> +++ b/xen/arch/arm/gic-v3.c
>>> @@ -485,6 +485,36 @@ static void __iomem *get_addr_by_offset(struct
>>> irq_desc *irqd, u32 offset)
>>>  Â Â Â Â Â Â Â Â Â  default:
>>>  Â Â Â Â Â Â Â Â Â Â Â Â Â  break;
>>>  Â Â Â Â Â Â Â Â Â  }
>>> +#ifdef CONFIG_GICV3_ESPI
>>> +Â Â Â  case ESPI_BASE_INTID ... ESPI_MAX_INTID:
>>> +Â Â Â  {
>>> +Â Â Â Â Â Â Â  u32 irq_index = ESPI_INTID2IDX(irqd->irq);
>>> +
>>> +Â Â Â Â Â Â Â  switch ( offset )
>>> +Â Â Â Â Â Â Â  {
>>> +Â Â Â Â Â Â Â  case GICD_ISENABLER:
>>> +Â Â Â Â Â Â Â Â Â Â Â  return (GICD + GICD_ISENABLERnE + (irq_index / 32) * 4);
>>> +Â Â Â Â Â Â Â  case GICD_ICENABLER:
>>> +Â Â Â Â Â Â Â Â Â Â Â  return (GICD + GICD_ICENABLERnE + (irq_index / 32) * 4);
>>> +Â Â Â Â Â Â Â  case GICD_ISPENDR:
>>> +Â Â Â Â Â Â Â Â Â Â Â  return (GICD + GICD_ISPENDRnE + (irq_index / 32) * 4);
>>> +Â Â Â Â Â Â Â  case GICD_ICPENDR:
>>> +Â Â Â Â Â Â Â Â Â Â Â  return (GICD + GICD_ICPENDRnE + (irq_index / 32) * 4);
>>> +Â Â Â Â Â Â Â  case GICD_ISACTIVER:
>>> +Â Â Â Â Â Â Â Â Â Â Â  return (GICD + GICD_ISACTIVERnE + (irq_index / 32) * 4);
>>> +Â Â Â Â Â Â Â  case GICD_ICACTIVER:
>>> +Â Â Â Â Â Â Â Â Â Â Â  return (GICD + GICD_ICACTIVERnE + (irq_index / 32) * 4);
>>> +Â Â Â Â Â Â Â  case GICD_ICFGR:
>>> +Â Â Â Â Â Â Â Â Â Â Â  return (GICD + GICD_ICFGRnE + (irq_index / 16) * 4);
>>> +Â Â Â Â Â Â Â  case GICD_IROUTER:
>>> +Â Â Â Â Â Â Â Â Â Â Â  return (GICD + GICD_IROUTERnE + irq_index * 8);
>>> +Â Â Â Â Â Â Â  case GICD_IPRIORITYR:
>>> +Â Â Â Â Â Â Â Â Â Â Â  return (GICD + GICD_IPRIORITYRnE + irq_index);
>>> +Â Â Â Â Â Â Â  default:
>>> +Â Â Â Â Â Â Â Â Â Â Â  break;
>>> +Â Â Â Â Â Â Â  }
>>> +Â Â Â  }
>>> +#endif
>>>  Â Â Â Â Â  default:
>>>  Â Â Â Â Â Â Â Â Â  break;
>>>  Â Â Â Â Â  }
>>> @@ -655,6 +685,52 @@ static void gicv3_set_irq_priority(struct
>>> irq_desc *desc,
>>>  Â Â Â Â Â  spin_unlock(&gicv3.lock);
>>>  Â  }
>>> +#ifdef CONFIG_GICV3_ESPI
>>> +unsigned int gic_number_espis(void)
>>> +{
>>> +Â Â Â  return gic_hw_ops->info->nr_espi;
>>> +}
>>> +
>>> +static void __init gicv3_dist_espi_common_init(uint32_t type)
>>> +{
>>> +Â Â Â  unsigned int espi_nr, i;
>>> +
>>> +Â Â Â  espi_nr = min(1024U, GICD_TYPER_ESPIS_NUM(type));
>>> +Â Â Â  gicv3_info.nr_espi = espi_nr;
>>> +Â Â Â  /* The GIC HW doesn't support eSPI, so we can leave from here */
>>> +Â Â Â  if ( gicv3_info.nr_espi == 0 )
>>> +Â Â Â Â Â Â Â  return;
>>> +
>>> +Â Â Â  for ( i = 0; i < espi_nr; i += 16 )
>>> +Â Â Â Â Â Â Â  writel_relaxed(0, GICD + GICD_ICFGRnE + (i / 16) * 4);
>>> +
>>> +Â Â Â  for ( i = 0; i < espi_nr; i += 4 )
>>> +Â Â Â Â Â Â Â  writel_relaxed(GIC_PRI_IRQ_ALL,
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  GICD + GICD_IPRIORITYRnE + (i / 4) * 4);
>>> +
>>> +Â Â Â  for ( i = 0; i < espi_nr; i += 32 )
>>> +Â Â Â  {
>>> +Â Â Â Â Â Â Â  writel_relaxed(GENMASK(31, 0), GICD + GICD_ICENABLERnE + (i /
>>> 32) * 4);
>>> +Â Â Â Â Â Â Â  writel_relaxed(GENMASK(31, 0), GICD + GICD_ICACTIVERnE + (i /
>>> 32) * 4);
>>> +Â Â Â  }
>>> +
>>> +Â Â Â  for ( i = 0; i < espi_nr; i += 32 )
>>> +Â Â Â Â Â Â Â  writel_relaxed(GENMASK(31, 0), GICD + GICD_IGROUPRnE + (i /
>>> 32) * 4);
>>> +}
>>> +
>>> +static void __init gicv3_dist_espi_init_aff(uint64_t affinity)
>>> +{
>>> +Â Â Â  unsigned int i;
>>> +
>>> +Â Â Â  for ( i = 0; i < gicv3_info.nr_espi; i++ )
>>> +Â Â Â Â Â Â Â  writeq_relaxed_non_atomic(affinity, GICD + GICD_IROUTERnE + i
>>> * 8);
>>> +}
>>> +#else
>>> +static void __init gicv3_dist_espi_common_init(uint32_t type) { }
>>> +
>>> +static void __init gicv3_dist_espi_init_aff(uint64_t affinity) { }
>>> +#endif
>>> +
>>>  Â  static void __init gicv3_dist_init(void)
>>>  Â  {
>>>  Â Â Â Â Â  uint32_t type;
>>> @@ -700,6 +776,8 @@ static void __init gicv3_dist_init(void)
>>>  Â Â Â Â Â  for ( i = NR_GIC_LOCAL_IRQS; i < nr_lines; i += 32 )
>>>  Â Â Â Â Â Â Â Â Â  writel_relaxed(GENMASK(31, 0), GICD + GICD_IGROUPR + (i /
>>> 32) * 4);
>>
>>
>> There is a banner in this function (not visible from the patch context),
>> that prints nr_lines, etc.
>>
>> E.g.:
>> (XEN) GICv3: 288 lines, (IID 0000043b).
>>
>> What do you think, would it be important/valuable to also print nr_espi
>> if non-zero (extended SPI range is supported)?
>>
>>
> 
> I think so, it will be useful. By the way, native Linux prints this
> information, so I would prefer to add a message right after checking if
> the hardware supports eSPI:
>       /* The GIC HW doesn't support eSPI, so we can leave from here */
>       if ( gicv3_info.nr_espi == 0 )
>           return;
> 
>       printk("GICv3: %d eSPI lines\n", gicv3_info.nr_espi);
> 
> This log will appear right after the common one and will look like this:
> (XEN) GICv3: 988 lines, (IID 0000043b)
> (XEN) GICv3: 1024 eSPI lines

Looks very good!

> 
>>> +Â Â Â  gicv3_dist_espi_common_init(type);
>>> +
>>>  Â Â Â Â Â  gicv3_dist_wait_for_rwp();
>>>  Â Â Â Â Â  /* Turn on the distributor *
>>> @@ -713,6 +791,8 @@ static void __init gicv3_dist_init(void)
>>>  Â Â Â Â Â  for ( i = NR_GIC_LOCAL_IRQS; i < nr_lines; i++ )
>>>  Â Â Â Â Â Â Â Â Â  writeq_relaxed_non_atomic(affinity, GICD + GICD_IROUTER + i
>>> * 8);
>>> +
>>> +Â Â Â  gicv3_dist_espi_init_aff(affinity);
>>>  Â  }
>>>
>>
>>
>> [snip]
>>
>>
>>
> 
> Best regards,
> Leonid.



From xen-devel-bounces@lists.xenproject.org Wed Aug 27 13:58:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 13:58:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096129.1450921 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urGf1-0001y1-Vo; Wed, 27 Aug 2025 13:57:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096129.1450921; Wed, 27 Aug 2025 13:57:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urGf1-0001xu-S1; Wed, 27 Aug 2025 13:57:59 +0000
Received: by outflank-mailman (input) for mailman id 1096129;
 Wed, 27 Aug 2025 13:57:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=rfRY=3H=redhat.com=david@srs-se1.protection.inumbo.net>)
 id 1urGf0-0001lf-UR
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 13:57:58 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.133.124])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d4b7e734-834d-11f0-ae26-e363de0e7a9e;
 Wed, 27 Aug 2025 15:57:56 +0200 (CEST)
Received: from mail-qv1-f71.google.com (mail-qv1-f71.google.com
 [209.85.219.71]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-542-NTLpCLj5PYaV1_L0QmSchA-1; Wed, 27 Aug 2025 09:57:50 -0400
Received: by mail-qv1-f71.google.com with SMTP id
 6a1803df08f44-70d93f57a7bso124769356d6.1
 for <xen-devel@lists.xenproject.org>; Wed, 27 Aug 2025 06:57:50 -0700 (PDT)
Received: from [10.32.64.156] (nat-pool-muc-t.redhat.com. [149.14.88.26])
 by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-70dc949bcc6sm42209626d6.8.2025.08.27.06.57.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Aug 2025 06:57: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>
X-Inumbo-ID: d4b7e734-834d-11f0-ae26-e363de0e7a9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1756303075;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding:
	 in-reply-to:in-reply-to:references:references:autocrypt:autocrypt;
	bh=0pMMKUGlgiVp4RUtrgX9pnDpZRGAoSX+x85uDyLNVMk=;
	b=Js86veGbd5vwVFhfHFt7JdzoDeGP2aYeNF+9p4bLp8cMOiBOqseixZndpmhv3KdUStsk4W
	Wq1sMkqdUaakZVmBrdClrAbTk2rUSXqBfErtMIlHUsIKK4EFs/EJ+DfVuzqMQkaihJZYW/
	7T3diapazLC+kpjgEbS+JBtBjyHMwDg=
X-MC-Unique: NTLpCLj5PYaV1_L0QmSchA-1
X-Mimecast-MFC-AGG-ID: NTLpCLj5PYaV1_L0QmSchA_1756303070
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756303070; x=1756907870;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :from:references:cc:to:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=0pMMKUGlgiVp4RUtrgX9pnDpZRGAoSX+x85uDyLNVMk=;
        b=Cd97+6VFbzHRHFb6zTXw1AOAlTuwOD5Ou4FSz2a6K00hQTP6ZtEWqOF1nZi7hySbyX
         X8myBlwV4ce7Bj32fu5CSO1NItyHUL0/iCb5AerVPOeNHxgqJUcqAFCxSR6XwqFzCQTB
         o3i24f/oy7dUMajUQjp6lRXFlVBRJyn0zaHfguoGQtk+5Uy0ECTRFd0BdQ7qA2hP3mGY
         EaoA+2f13NIF5bRGD2Bxnd4uBidfcLaIChdC/oQ1xv7+p5styKFhq9R0L88Xk42i2YXu
         74vJTsksnB43uroQ80ZlTuj3m/lzI5ReWtl0vNcgAsRvyNzSlN1HOfBKHeSCNjwwTtIH
         BcoA==
X-Forwarded-Encrypted: i=1; AJvYcCVesm1gsozr1Wkcmc0rNAKIWtneVk94tHmvc2C1ZRtVm9bhhWwEfMjYPXOl09ImHswnNkjYL+K2AIk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyxwoAmi12WfM9J4alFZSPpRySDT4oO8PZ2X2pLdgzrOFs1I8/y
	4eLdWCfrhpN8OkmNzBc4eENad82TBqbNS4h7C7H/8ibtuJmZf4Koa1NAIUqpF+n2kDpV1x2nOp8
	ODN9uY4OI/i+AGlYc0M0R0NT6E3vH8POGVfvoKA32THBD5vS3QHqsp2yQUdS9/+AUOExq
X-Gm-Gg: ASbGncu4NRVlPJHu8JOHHr5G5EZBm0eTe4sx/w1wuzDrLGb6yYxZNZp+pAGLeM78su+
	uqd7GRejrzDXviLAMV91T15ll8rTQtc89kAtcmdRs56VKEmiv3xwHGMs3McWqA4XTqjb3zpWbxY
	6QANyaWjpNPyeJPIpQyOOdJq6Y7hA+aHH1gsA+/RaSvCXX3+Osta76Y9OeHpg85U/dzZRQ7sQWj
	XXtw6h1EXUqoO07xEw8RpScXbB1HSGaKqbO76xEL4nr9JA9mi8PY1R1jZgu/qeJcJatXpSUsbiK
	t50Otyof7JEyr8ENcrCWjYPxBw4ddaWXOXt+Oh6s5Y/9c4JNeqB2H52koeiOkw==
X-Received: by 2002:ad4:5de9:0:b0:704:f7d8:7030 with SMTP id 6a1803df08f44-70d97358f0fmr265013166d6.50.1756303069784;
        Wed, 27 Aug 2025 06:57:49 -0700 (PDT)
X-Google-Smtp-Source: AGHT+IHWXjl5tZ83UA1+ay+aJoeZJMgZd6GNpXCtIp6lIpLZV6EWrRjgPphDax1GYOjslh+fV0VbDw==
X-Received: by 2002:ad4:5de9:0:b0:704:f7d8:7030 with SMTP id 6a1803df08f44-70d97358f0fmr265012716d6.50.1756303069173;
        Wed, 27 Aug 2025 06:57:49 -0700 (PDT)
Message-ID: <0a844460-d898-418c-92b8-671f6156a2db@redhat.com>
Date: Wed, 27 Aug 2025 15:57:41 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 06/11] powerpc/ptdump: rename "struct pgtable_level" to
 "struct ptdump_pglevel"
To: "Ritesh Harjani (IBM)" <ritesh.list@gmail.com>,
 linux-kernel@vger.kernel.org, Andrew Morton <akpm@linux-foundation.org>
Cc: linux-mm@kvack.org, xen-devel@lists.xenproject.org,
 linux-fsdevel@vger.kernel.org, nvdimm@lists.linux.dev,
 linuxppc-dev@lists.ozlabs.org, Madhavan Srinivasan <maddy@linux.ibm.com>,
 Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>,
 Christophe Leroy <christophe.leroy@csgroup.eu>,
 Juergen Gross <jgross@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Dan Williams <dan.j.williams@intel.com>, Matthew Wilcox
 <willy@infradead.org>, Jan Kara <jack@suse.cz>,
 Alexander Viro <viro@zeniv.linux.org.uk>,
 Christian Brauner <brauner@kernel.org>,
 Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
 "Liam R. Howlett" <Liam.Howlett@oracle.com>, Vlastimil Babka
 <vbabka@suse.cz>, Mike Rapoport <rppt@kernel.org>,
 Suren Baghdasaryan <surenb@google.com>, Michal Hocko <mhocko@suse.com>,
 Zi Yan <ziy@nvidia.com>, Baolin Wang <baolin.wang@linux.alibaba.com>,
 Nico Pache <npache@redhat.com>, Ryan Roberts <ryan.roberts@arm.com>,
 Dev Jain <dev.jain@arm.com>, Barry Song <baohua@kernel.org>,
 Jann Horn <jannh@google.com>, Pedro Falcato <pfalcato@suse.de>,
 Hugh Dickins <hughd@google.com>, Oscar Salvador <osalvador@suse.de>,
 Lance Yang <lance.yang@linux.dev>
References: <20250811112631.759341-1-david@redhat.com>
 <20250811112631.759341-7-david@redhat.com> <87a53mqc86.fsf@gmail.com>
From: David Hildenbrand <david@redhat.com>
Autocrypt: addr=david@redhat.com; keydata=
 xsFNBFXLn5EBEAC+zYvAFJxCBY9Tr1xZgcESmxVNI/0ffzE/ZQOiHJl6mGkmA1R7/uUpiCjJ
 dBrn+lhhOYjjNefFQou6478faXE6o2AhmebqT4KiQoUQFV4R7y1KMEKoSyy8hQaK1umALTdL
 QZLQMzNE74ap+GDK0wnacPQFpcG1AE9RMq3aeErY5tujekBS32jfC/7AnH7I0v1v1TbbK3Gp
 XNeiN4QroO+5qaSr0ID2sz5jtBLRb15RMre27E1ImpaIv2Jw8NJgW0k/D1RyKCwaTsgRdwuK
 Kx/Y91XuSBdz0uOyU/S8kM1+ag0wvsGlpBVxRR/xw/E8M7TEwuCZQArqqTCmkG6HGcXFT0V9
 PXFNNgV5jXMQRwU0O/ztJIQqsE5LsUomE//bLwzj9IVsaQpKDqW6TAPjcdBDPLHvriq7kGjt
 WhVhdl0qEYB8lkBEU7V2Yb+SYhmhpDrti9Fq1EsmhiHSkxJcGREoMK/63r9WLZYI3+4W2rAc
 UucZa4OT27U5ZISjNg3Ev0rxU5UH2/pT4wJCfxwocmqaRr6UYmrtZmND89X0KigoFD/XSeVv
 jwBRNjPAubK9/k5NoRrYqztM9W6sJqrH8+UWZ1Idd/DdmogJh0gNC0+N42Za9yBRURfIdKSb
 B3JfpUqcWwE7vUaYrHG1nw54pLUoPG6sAA7Mehl3nd4pZUALHwARAQABzSREYXZpZCBIaWxk
 ZW5icmFuZCA8ZGF2aWRAcmVkaGF0LmNvbT7CwZoEEwEIAEQCGwMCF4ACGQEFCwkIBwICIgIG
 FQoJCAsCBBYCAwECHgcWIQQb2cqtc1xMOkYN/MpN3hD3AP+DWgUCaJzangUJJlgIpAAKCRBN
 3hD3AP+DWhAxD/9wcL0A+2rtaAmutaKTfxhTP0b4AAp1r/eLxjrbfbCCmh4pqzBhmSX/4z11
 opn2KqcOsueRF1t2ENLOWzQu3Roiny2HOU7DajqB4dm1BVMaXQya5ae2ghzlJN9SIoopTWlR
 0Af3hPj5E2PYvQhlcqeoehKlBo9rROJv/rjmr2x0yOM8qeTroH/ZzNlCtJ56AsE6Tvl+r7cW
 3x7/Jq5WvWeudKrhFh7/yQ7eRvHCjd9bBrZTlgAfiHmX9AnCCPRPpNGNedV9Yty2Jnxhfmbv
 Pw37LA/jef8zlCDyUh2KCU1xVEOWqg15o1RtTyGV1nXV2O/mfuQJud5vIgzBvHhypc3p6VZJ
 lEf8YmT+Ol5P7SfCs5/uGdWUYQEMqOlg6w9R4Pe8d+mk8KGvfE9/zTwGg0nRgKqlQXrWRERv
 cuEwQbridlPAoQHrFWtwpgYMXx2TaZ3sihcIPo9uU5eBs0rf4mOERY75SK+Ekayv2ucTfjxr
 Kf014py2aoRJHuvy85ee/zIyLmve5hngZTTe3Wg3TInT9UTFzTPhItam6dZ1xqdTGHZYGU0O
 otRHcwLGt470grdiob6PfVTXoHlBvkWRadMhSuG4RORCDpq89vu5QralFNIf3EysNohoFy2A
 LYg2/D53xbU/aa4DDzBb5b1Rkg/udO1gZocVQWrDh6I2K3+cCs7BTQRVy5+RARAA59fefSDR
 9nMGCb9LbMX+TFAoIQo/wgP5XPyzLYakO+94GrgfZjfhdaxPXMsl2+o8jhp/hlIzG56taNdt
 VZtPp3ih1AgbR8rHgXw1xwOpuAd5lE1qNd54ndHuADO9a9A0vPimIes78Hi1/yy+ZEEvRkHk
 /kDa6F3AtTc1m4rbbOk2fiKzzsE9YXweFjQvl9p+AMw6qd/iC4lUk9g0+FQXNdRs+o4o6Qvy
 iOQJfGQ4UcBuOy1IrkJrd8qq5jet1fcM2j4QvsW8CLDWZS1L7kZ5gT5EycMKxUWb8LuRjxzZ
 3QY1aQH2kkzn6acigU3HLtgFyV1gBNV44ehjgvJpRY2cC8VhanTx0dZ9mj1YKIky5N+C0f21
 zvntBqcxV0+3p8MrxRRcgEtDZNav+xAoT3G0W4SahAaUTWXpsZoOecwtxi74CyneQNPTDjNg
 azHmvpdBVEfj7k3p4dmJp5i0U66Onmf6mMFpArvBRSMOKU9DlAzMi4IvhiNWjKVaIE2Se9BY
 FdKVAJaZq85P2y20ZBd08ILnKcj7XKZkLU5FkoA0udEBvQ0f9QLNyyy3DZMCQWcwRuj1m73D
 sq8DEFBdZ5eEkj1dCyx+t/ga6x2rHyc8Sl86oK1tvAkwBNsfKou3v+jP/l14a7DGBvrmlYjO
 59o3t6inu6H7pt7OL6u6BQj7DoMAEQEAAcLBfAQYAQgAJgIbDBYhBBvZyq1zXEw6Rg38yk3e
 EPcA/4NaBQJonNqrBQkmWAihAAoJEE3eEPcA/4NaKtMQALAJ8PzprBEXbXcEXwDKQu+P/vts
 IfUb1UNMfMV76BicGa5NCZnJNQASDP/+bFg6O3gx5NbhHHPeaWz/VxlOmYHokHodOvtL0WCC
 8A5PEP8tOk6029Z+J+xUcMrJClNVFpzVvOpb1lCbhjwAV465Hy+NUSbbUiRxdzNQtLtgZzOV
 Zw7jxUCs4UUZLQTCuBpFgb15bBxYZ/BL9MbzxPxvfUQIPbnzQMcqtpUs21CMK2PdfCh5c4gS
 sDci6D5/ZIBw94UQWmGpM/O1ilGXde2ZzzGYl64glmccD8e87OnEgKnH3FbnJnT4iJchtSvx
 yJNi1+t0+qDti4m88+/9IuPqCKb6Stl+s2dnLtJNrjXBGJtsQG/sRpqsJz5x1/2nPJSRMsx9
 5YfqbdrJSOFXDzZ8/r82HgQEtUvlSXNaXCa95ez0UkOG7+bDm2b3s0XahBQeLVCH0mw3RAQg
 r7xDAYKIrAwfHHmMTnBQDPJwVqxJjVNr7yBic4yfzVWGCGNE4DnOW0vcIeoyhy9vnIa3w1uZ
 3iyY2Nsd7JxfKu1PRhCGwXzRw5TlfEsoRI7V9A8isUCoqE2Dzh3FvYHVeX4Us+bRL/oqareJ
 CIFqgYMyvHj7Q06kTKmauOe4Nf0l0qEkIuIzfoLJ3qr5UyXc2hLtWyT9Ir+lYlX9efqh7mOY
 qIws/H2t
In-Reply-To: <87a53mqc86.fsf@gmail.com>
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: DhaWWSeabK6yrdO7wkgi_083-knMYsbIDGsfwXC-BZQ_1756303070
X-Mimecast-Originator: redhat.com
Content-Language: en-US
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 26.08.25 18:28, Ritesh Harjani (IBM) wrote:
> David Hildenbrand <david@redhat.com> writes:
> 
>> We want to make use of "pgtable_level" for an enum in core-mm. Other
>> architectures seem to call "struct pgtable_level" either:
>> * "struct pg_level" when not exposed in a header (riscv, arm)
>> * "struct ptdump_pg_level" when expose in a header (arm64)
>>
>> So let's follow what arm64 does.
>>
>> Signed-off-by: David Hildenbrand <david@redhat.com>
>> ---
>>   arch/powerpc/mm/ptdump/8xx.c      | 2 +-
>>   arch/powerpc/mm/ptdump/book3s64.c | 2 +-
>>   arch/powerpc/mm/ptdump/ptdump.h   | 4 ++--
>>   arch/powerpc/mm/ptdump/shared.c   | 2 +-
>>   4 files changed, 5 insertions(+), 5 deletions(-)
> 
> 
> As mentioned in commit msg mostly a mechanical change to convert
> "struct pgtable_level" to "struct ptdump_pg_level" for aforementioned purpose..
> 
> The patch looks ok and compiles fine on my book3s64 and ppc32 platform.
> 
> I think we should fix the subject line.. s/ptdump_pglevel/ptdump_pg_level
> 

Ahh, yes thanks.

@Andrew, can you fix that up?

> Otherwise the changes looks good to me. So please feel free to add -
> Reviewed-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com>

Thanks!

-- 
Cheers

David / dhildenb



From xen-devel-bounces@lists.xenproject.org Wed Aug 27 13:58:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 13:58:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096140.1450930 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urGfe-0002TP-76; Wed, 27 Aug 2025 13:58:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096140.1450930; Wed, 27 Aug 2025 13:58: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 1urGfe-0002TI-3w; Wed, 27 Aug 2025 13:58:38 +0000
Received: by outflank-mailman (input) for mailman id 1096140;
 Wed, 27 Aug 2025 13:58:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=n4tM=3H=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1urGfc-0002CA-Up
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 13:58:37 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20623.outbound.protection.outlook.com
 [2a01:111:f403:2009::623])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ec447a0e-834d-11f0-aeb2-fb57b961d000;
 Wed, 27 Aug 2025 15:58:35 +0200 (CEST)
Received: from CH5PR05CA0017.namprd05.prod.outlook.com (2603:10b6:610:1f0::7)
 by SJ2PR12MB9238.namprd12.prod.outlook.com (2603:10b6:a03:55d::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Wed, 27 Aug
 2025 13:58:30 +0000
Received: from CH3PEPF0000000D.namprd04.prod.outlook.com
 (2603:10b6:610:1f0:cafe::f8) by CH5PR05CA0017.outlook.office365.com
 (2603:10b6:610:1f0::7) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9094.5 via Frontend Transport; Wed,
 27 Aug 2025 13:58:30 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CH3PEPF0000000D.mail.protection.outlook.com (10.167.244.43) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Wed, 27 Aug 2025 13:58:30 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 27 Aug
 2025 08:58:30 -0500
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.10; Wed, 27 Aug
 2025 06:58:30 -0700
Received: from [172.31.63.243] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 27 Aug 2025 08:58: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>
X-Inumbo-ID: ec447a0e-834d-11f0-aeb2-fb57b961d000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FH8spdrE3erGTd8Njk66mnISHky2DCZZkEceK6Zihke2OQYKWo0Er4QJw1xaeXINssfAsmDOJesKXZIKppg7giHHyKlNqKYV3ijZuengg6ySd6+z9c1cnS0XvgpU5hUibxSymW8qUmebXJM77N0US8gi2gg4C2LXp36+3Imth+sKznMaiAR1Me7YxUIZ7aX1GC8hO9B6aM79lrujCM1yyopwajDX9cgm6UFcaW8YCz07wRXzpceEdRXfzogdx+2qp0jRQvGLi2bkDuV5LhQSwBGSKTeW6exBSjuHNc2rvuOYMemNQrA3HHiKmAuG3bMCjBGvfLX9X2hSp6Wr6DWPFQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=O94bgVEIti/iD7TO9AcUNGXlXChxMCiTY0vxoPt7OKw=;
 b=xwbC8T9Fb3cB4v42hwWt+u0qipkwEWy3iWj+4scAGaAkWh/wN4xMAjZkbJnAzZ2dYHfq6i3QxZRFZtEdZ8FNujDSGyO0Ali5nahINdGyfQB1YbF3mpoEOaDNaFlIpTSAggGC362N/617NyuCv/CWFo/UG8x8d2OQh6FGwuLGWowuXN/uOroT/KXMRA0h7BYL5A5O5Qgxca6K1jyUKOPE+K/+L5uuDJKcYJv0x0S9YUeYI6CauObArL2o5eyqBjvL4GNzB3PU0KG5IsMBfqUAXxkPmvpTnhefIhkf2zFppp+zWOaKDgQtwdfq21+eLGxso/9A40nxxu25+rPTX/Qb8w==
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=O94bgVEIti/iD7TO9AcUNGXlXChxMCiTY0vxoPt7OKw=;
 b=ZwR5UJKgU7ma6TNq1Cx6TojVkXKaa0dvSuFgDdy2DXozzekeTUuwcz8+blIp+58e0Y0qaMffGh6j3sQEri4+COoPVXTTOnaiaEgEiGQZZYOLbJCgbyPrC5sG48lWTjizmbUXH3oAJJ/THcQlSi4hh8Adk1bZyPebp3/GhIBzJpQ=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <c6bb835a-40dc-44b6-8f95-4254f10db98a@amd.com>
Date: Wed, 27 Aug 2025 09:59:01 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/3] xen: rework xen_pv_domain()
To: Juergen Gross <jgross@suse.com>, <linux-kernel@vger.kernel.org>,
	<x86@kernel.org>
CC: Boris Ostrovsky <boris.ostrovsky@oracle.com>, Thomas Gleixner
	<tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>, Borislav Petkov
	<bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, "H. Peter Anvin"
	<hpa@zytor.com>, Stefano Stabellini <sstabellini@kernel.org>, "Oleksandr
 Tyshchenko" <oleksandr_tyshchenko@epam.com>, <xen-devel@lists.xenproject.org>
References: <20250826145608.10352-1-jgross@suse.com>
 <20250826145608.10352-2-jgross@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20250826145608.10352-2-jgross@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PEPF0000000D:EE_|SJ2PR12MB9238:EE_
X-MS-Office365-Filtering-Correlation-Id: ceabcf71-b094-4b2c-13ac-08dde571cdfd
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|7416014|82310400026|36860700013|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bC9PMG9kUXllMExxK1ErekZvcVVmdmIrZXFQWXNYR2JhR2RqdnEyT2lpb1V2?=
 =?utf-8?B?MUR2MXZzbTl2dnZidEpjSzhPMWtLNDFjYTZvbnQ4aVlnQitYU2xRNzBSc1h3?=
 =?utf-8?B?VHBkU01EMTBmeEhKRENtYU1BbC9wcXlKSnFzT0FkSHVRUEtwcW1SM09JOG9S?=
 =?utf-8?B?MjA4bjA5a0V0NzlXMHI3OEFsZWVvVWpHeW1zcXBkRzlpNGJpU05uQWcxVUZC?=
 =?utf-8?B?aFJ2K2IxOXcwQ3JETkdobDhxVGVkT2hvT0Q4ck5wVm9VV0R0eTEvUzc5WnVC?=
 =?utf-8?B?UVlXQ2N0VXUrbnlZQ3l4L08rZ0RCQ2o3TjdVd0xvLyt6ckM2elRuZ2ZBbUM0?=
 =?utf-8?B?WEl3NFR2TUVzM2JDWUZWTE91b1p5aTJYK1Y0Y3g4N04vRUU1UGpCQytLbzZu?=
 =?utf-8?B?MzN5ZHN1UWZaSjlNWk5Oa1dEUmFtblBYN1NqcmUvcmkrSWd5bjJHN251R2p5?=
 =?utf-8?B?QjFLSmJDTDNpQ3htVmFoV0tOWGM2Y0ttdktVK0FDTllJcmYzcGFFMzhTYUlm?=
 =?utf-8?B?SFZWZVdLYlFBcnlhcmx3bHRXcTVqRzJISjNKb3JBNC9UeGVMcll0MUlVRFRt?=
 =?utf-8?B?RVBqNjBHV1VSY0ZCa3BuYnhsZ0NOUEhIb0lwY015T1BHdFlJc3RKZ1MreEx5?=
 =?utf-8?B?L0taUnB4SVVyc1ZiWXZhSStSVThMUGsyV09UNjN6YlRTK3dGUENpRTlmKzR6?=
 =?utf-8?B?cTA2SHdPNmE3ZmFGRkNaVnBValN0TE9oT3p6SllZbDRKSHFmNllaaXVUek5L?=
 =?utf-8?B?d0NCaFFFanB5WUlKNXlrNGRndE1udWtCQVRZU0JJNnBJd2xBWTZIVUFBUnZo?=
 =?utf-8?B?d0s3c3pRRWwzRXUwSEtIQ0FvZTVZOTZzRWVwY25ETlFjamdyelE5dDBsQnhZ?=
 =?utf-8?B?YTc2emk4VWlvN2RSemtqZHUvZUUyenE4RHZjMENmRzdnVTZjNkFhSldmVk5M?=
 =?utf-8?B?RkQ4U1JRVmEzTWl5Z0N5eDUyeFhDNFFMZlR0WlpGYVFTU2o3OVNncXpiQ1NI?=
 =?utf-8?B?UUFRMFh0bXZHZkdMdUNMVlB1R2JlZlVRT3BGbGNmd3JVejRTL3F4SkU2Q2ZH?=
 =?utf-8?B?aEJxZ3JiSkhjUVZHOTBvNjhnR1VpQTlSMkpSL1lzZy9lZlFPNGdwMnk0czJL?=
 =?utf-8?B?ZGdjYzNsUzFZZEtoNm1YZyt2U0V2TDNEbERJckFoS1RqY0ZVc2ROQ1RwemMy?=
 =?utf-8?B?L1BDQ09EVGVKek92ZjE5ZnlFMlJjazJ4RkREb1R5OUt4VVRWYndib3dHVW1z?=
 =?utf-8?B?WWZ6TGo2RTVra3JSK1Jrb3N5MFVhWUs2NDdGYUJud1VkNmxaaGtpWDhJM2ZC?=
 =?utf-8?B?bWo3NlI0eUoxbWoxVkpHMUxuV0cvSXdoOW5YOGEvWXFtM1RQK3lodjg4STg3?=
 =?utf-8?B?dEdTY0luZWhvOXBMNlVqY29FSGNBeTlQMTVINmlFNEl6MmJGTmY3ZFRxc2hs?=
 =?utf-8?B?eTBLaXpzdyttK2psZDFxdU5BbTBzY29pTnZZTVNlbTA1SUc5a1NhU1F6aUZ2?=
 =?utf-8?B?QzBUbW1KUm9hZ0RkOEwyTDRMY0xKd2dVcEwwSXpneXhUbTNEMkIxOW9VZEVi?=
 =?utf-8?B?d1JrZ3MydUhNWUFpQnh6Z3ZMRFZ6aDVSQmEyeEJVQXJGUVNzVDQvRzBURG91?=
 =?utf-8?B?VnpkdDZ1eWpaaUMvazlwNG1abHo2dWg1MVpTWTdXdWN6ZTRqc09qbXBsQlhZ?=
 =?utf-8?B?N3Bic3FVMjZTT2gwWUhGbTYxckIrRWFNbENBR2hEb2FyN0ptZ2M4cjZDenlM?=
 =?utf-8?B?UTFyYUx0dUhtay9ib2xZeDN4T3RZM05ZdHgvZENibFFuc0dEOHlvV0JnVlhR?=
 =?utf-8?B?OEtNVTJNcjhGeE05dFM3bzM5aVM3anBTdWZlSEU3aTJkZ1lOakFyUE5PVTg4?=
 =?utf-8?B?ZTBQZXAxeDVmdDU4eW0wVEFGelp1THdXNW16ZUphTnVuWmtBZloyaENkVEl3?=
 =?utf-8?B?UlVVTmdhS3BicHI2TFkvWmdPR0FkR05YMCtUeFJFN2NzSGgxTThEL2xGSFdr?=
 =?utf-8?B?cVNKNm5teHVUSHlGdElkSkk2RUFWdUJIRzE3SjI5S0RKTHp1VkNpdTVJY1FO?=
 =?utf-8?Q?dPB1zL?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(7416014)(82310400026)(36860700013)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Aug 2025 13:58:30.5853
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ceabcf71-b094-4b2c-13ac-08dde571cdfd
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH3PEPF0000000D.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB9238

On 2025-08-26 10:56, Juergen Gross wrote:
> Rework xen_pv_domain() to no longer use the xen_domain_type variable,
> but the artificial X86_FEATURE_XENPV cpu feature.
> 
> On non-x86 architectures xen_pv_domain() can be defined as "0".
> 
> This has the advantage that a kernel not built with CONFIG_XEN_PV
> will be smaller due to dead code elimination.
> 
> Set the X86_FEATURE_XENPV feature very early, as xen_pv_domain() is
> used rather early, too.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 14:00:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 14:00:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096153.1450940 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urGh0-0003HM-Jq; Wed, 27 Aug 2025 14:00:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096153.1450940; Wed, 27 Aug 2025 14:00: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 1urGh0-0003Go-GT; Wed, 27 Aug 2025 14:00:02 +0000
Received: by outflank-mailman (input) for mailman id 1096153;
 Wed, 27 Aug 2025 14:00:01 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=n4tM=3H=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1urGgz-00036L-6y
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 14:00:01 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on2061e.outbound.protection.outlook.com
 [2a01:111:f403:200a::61e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1ded3632-834e-11f0-aeb2-fb57b961d000;
 Wed, 27 Aug 2025 15:59:59 +0200 (CEST)
Received: from BYAPR01CA0020.prod.exchangelabs.com (2603:10b6:a02:80::33) by
 CH3PR12MB7761.namprd12.prod.outlook.com (2603:10b6:610:153::7) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9073.13; Wed, 27 Aug 2025 13:59:55 +0000
Received: from SJ1PEPF00002315.namprd03.prod.outlook.com
 (2603:10b6:a02:80:cafe::69) by BYAPR01CA0020.outlook.office365.com
 (2603:10b6:a02:80::33) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.16 via Frontend Transport; Wed,
 27 Aug 2025 14:00:57 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF00002315.mail.protection.outlook.com (10.167.242.169) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Wed, 27 Aug 2025 13:59:54 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 27 Aug
 2025 08:59:54 -0500
Received: from [172.31.63.243] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 27 Aug 2025 08:59: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>
X-Inumbo-ID: 1ded3632-834e-11f0-aeb2-fb57b961d000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UMtfl8ZaV/sAWiqP2AV3PllARO8engtEJxKYBWykT9lXHvO6Le+hgmJL1RmQPCW+QsvSgytHsoKEIU+2/6RmVlcsHVP58zUCeSKIiR3tEUDFEknREmbh8OgWoUu0KkLN+HIX6reVqx2UnADH+/Lc+NbqWu8zyYSCKyS25QX2/NCc4I0tF1PUCN7mBfIMfnPoKILgUF/weBtZWPK34dTl9qy6Teh4N78aNfBlri2qxGaD1KxEt4dv4NNRu+UahosETH7k2z+cDKjwA+RA7hA1p1kiNZR1ScqTV4TKcDUZkRj+BiAj1OGxqlUManMSRjKioM9sVwf6kwARKD5LsgEHeQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Bl9UBhq5Xzhz6YxyZDO6gE47MqshMlgfDdo4nvt3U14=;
 b=khLFoOYPcCSyQuOHOxClRDB5mSSgnJwtwrFuckbGdaR9IBbAD8DIZyhtVN0o1+BvgDZtOghzdwS6VA1H7F6nlpiQ2htqEAg9tg2tmAJKPxyv0ih7KCy5rWR50OYm/ikYr6kS4oI4kpo/diOQguHgMGAW5oz26pTjv398XpD2EycxHSjSFTS6nkv9heO3MXr0nuU7/zvHsifVEZDgfNU4wztJE0zOSPRcmeAZhSUxvOiSd1Z6+xXBNXIJ8Fqq7dcUjyslcJmi7gpVX7kVqmQc2ZMadUH7FiPttKKLL5XgW3dfmEr4qNtARUlQr9/pfMtWJ+7dhY/I60f2FjC++wtI0w==
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=Bl9UBhq5Xzhz6YxyZDO6gE47MqshMlgfDdo4nvt3U14=;
 b=OTcu6qo4JRgl6bmkmHsWCPS7s6dfte2eC4+4Oy3rb7E1TVfULI3LbHjSnwfcRwCKLqEMqliRwjnBoMPihIrtEMFcJmJKFdW8kuqno7cyilm2awOZUX7YB58GDka++39EJ+qd9RL3WtFjshLqpIOnmDKZp3Ll0memdWjr871B+u0=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <39e7bafa-652c-4ee7-80b6-1edb97640d73@amd.com>
Date: Wed, 27 Aug 2025 10:00:25 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/3] xen: replace XENFEAT_auto_translated_physmap with
 xen_pv_domain()
To: Juergen Gross <jgross@suse.com>, <linux-kernel@vger.kernel.org>,
	<x86@kernel.org>
CC: Boris Ostrovsky <boris.ostrovsky@oracle.com>, Thomas Gleixner
	<tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>, Borislav Petkov
	<bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, "H. Peter Anvin"
	<hpa@zytor.com>, Stefano Stabellini <sstabellini@kernel.org>, Oleksandr
 Tyshchenko <oleksandr_tyshchenko@epam.com>, <xen-devel@lists.xenproject.org>
References: <20250826145608.10352-1-jgross@suse.com>
 <20250826145608.10352-3-jgross@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20250826145608.10352-3-jgross@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB04.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF00002315:EE_|CH3PR12MB7761:EE_
X-MS-Office365-Filtering-Correlation-Id: 9552ac1e-ccb6-4d30-da98-08dde5720047
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|7416014|36860700013|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?VE1kMzB0MWlpeXNYSE5XdmdEYlphakNkWnNFWW5FaGlOYTh2aWZtMCsxanlR?=
 =?utf-8?B?SERkcjVYNjN4SDgxWGtSN3ZLUUNLQjB0QzRjS1VWU1duR0pzbytNNm9JOVl5?=
 =?utf-8?B?YXJQMTQ5ZWovVXJKeUNIbmdidGpCMTdRam85b1FSVnFpZnBYTVBHUWVjNFhP?=
 =?utf-8?B?eDg5bmVWc3R0TkhYVzVEc01QbVNCci9SbkVBQjdLR1pPTGdQN2w1RCtsb1lx?=
 =?utf-8?B?S09OWGFVRHpKQXdvOXNiZzZscGRONWJuUXgycVQzcDJOZG9nTFdtU09IOS95?=
 =?utf-8?B?SkdJbURBZFRBeEJHZjVYMnI0WEZxNDlxOGNZUVZ1YTJIdTdDVkFWZWtRK2hl?=
 =?utf-8?B?NWF4eVd3UGo1RTdaRm82dWVZNCtxdnQySk10cDVYbEl2ZTZLTC9FMFEzQVFO?=
 =?utf-8?B?RTFaUW9nMVpBM1VqdTRRSldyeWVieXFyZ0ZPZHY4RFV0SXhpa2JodHFvd0lE?=
 =?utf-8?B?eTJuaWRGYVJVc3RBY1BrRzAwajRkZ2gxc0lzY01GZm03YVptQVB1Zm5oR0h0?=
 =?utf-8?B?NVUyTHg2Nk1ERFRzVzZybGM2NjlhU3FCR3lkajdKdGo2R3FDVFZkL2VqK0tY?=
 =?utf-8?B?Q08xUXJ5d3ZsdWczdEk5dXM2YlYyeUVhNXNzZGg4cE9WUG0wSHlDV284YnFK?=
 =?utf-8?B?QllqZGo2MXp2alJZTi9qdTk2Skt6Y3cwQXRLSlFjNjhvSHJjYjZneHBTdFdi?=
 =?utf-8?B?UGhSeXlGcXFQNS9wOUsvcDA2amVXK0w2SEV5Rzl5OWtKMUhVMjRweHFtTEx4?=
 =?utf-8?B?WnQyZDM0NEFscnlnWkZEUkZQRm1VRnpxOHJDQW9uRklpYzg3M2Q3Wi9nT0hm?=
 =?utf-8?B?U0kyZGVvVmpTeUZ6bDdTZWEzUFU2eUVnL0Ntb3F3VGV6dTZDaTlTYTRFSFJh?=
 =?utf-8?B?aVJ0SithTU1UdUJlQVQwNXV0S2pLUkFhcVVFUmY5RlpEZlMvY2tvRlpURXFT?=
 =?utf-8?B?eDhUbXpGTklnWkoxTmI1VUdjVzVBR29rN2p6My8xb3RhcC8xN3RMampNMTdz?=
 =?utf-8?B?UDJxSDYwL2hWVnIvb1BMNE9XV04zdkxvVFBCcGgrSnNUdGVZZkluZFpTazE2?=
 =?utf-8?B?NmxCV2c5aVBlanFobzY2M3FaNVgzcDQ2SDBhbUMyM0VxY0htcUkzUTdmeHRl?=
 =?utf-8?B?K1NacnB5K2hpVXF3ZW1IMnVLbEhJcXQzNE1qTDQvbC8xZXZhL3hiT2VEdkRZ?=
 =?utf-8?B?ak5yeVN3SmhheW1YWUxoM0VZSUoxQlNwRjNMVEFYZUZacWdCVlhKcTNvWHFl?=
 =?utf-8?B?c2s1bXhlMTAyZFgwZXUvKzlJSGRXTVAzWGxVS2JBejV3UVgyM1FpaG96Mmxq?=
 =?utf-8?B?ZmFOaWlBc0FNQzlTVFhHZFFwa3pCRUlHbUc1ZGUrOWtFRlhSVjVaYlE2S3Rl?=
 =?utf-8?B?VnlWOHhkNC9OTCtuYWZPSHpXNFlRaHdXaGt5NFMxQmJIRlRDaFNDd2p2ckhB?=
 =?utf-8?B?cFk3R3Y1eUZGb1pQWndDaFBuOHNtMHFOdStLb1RmRm5iQ3JGb3ZMb29VQjZG?=
 =?utf-8?B?RDNuU0dkMmF4K3Q0Sjdkb0xxbE5INEVnVG82NTVweWNUZlZnU3VmamZZM0Nm?=
 =?utf-8?B?Z0QwY3Q4WWZEcDF0V1QreGtWNFFXbDM4eEZTNzhqMGx5UVpaazFCbmQ1MHJ3?=
 =?utf-8?B?bitZMi9RclZDMTFVOFVBOVFZMndQK2U5dnQ1UlgrV0cyM2pYNFlkSkQyd1FB?=
 =?utf-8?B?SnVVOGlnWTRFQTFsaDI4dkFEY2VScUNhekRqOUZBUDVyR1VEZHZVTE51WXhv?=
 =?utf-8?B?NjdObWNNQ01vRjdZZXY3VE1OMFBIR1dpTGtzWWhLcjJwbjZMWUd3N1NUMjNK?=
 =?utf-8?B?dGhXcE80Z1ZZdnYwb2I1bVpiTnc3bUE4dTl2UEJJL2VQdzk2U0lHRHFsZFA3?=
 =?utf-8?B?VTJMNk1FUFdnSzkxRjRaWW1PWHlIUk9UOWJFTVlBdE40RUJkUUxYS1QxWXNS?=
 =?utf-8?B?SFRNd0crUXcvQWdxNktyd280NlJBQVVqVFVrNW5OTnlFMFpIMlhsSmZlYTNB?=
 =?utf-8?B?N0FZVzI5YkdaQ1RnNVQ4cHUyd3ozZDhocUxIcGFWVkV2RkRjd1I3ZURMMmpi?=
 =?utf-8?Q?MUHwAY?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(36860700013)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Aug 2025 13:59:54.8869
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9552ac1e-ccb6-4d30-da98-08dde5720047
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF00002315.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB7761

On 2025-08-26 10:56, Juergen Gross wrote:
> Instead of testing the XENFEAT_auto_translated_physmap feature, just
> use !xen_pv_domain() which is equivalent.
> 
> This has the advantage that a kernel not built with CONFIG_XEN_PV
> will be smaller due to dead code elimination.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 14:00:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 14:00:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096163.1450951 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urGhQ-0004WO-Rq; Wed, 27 Aug 2025 14:00:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096163.1450951; Wed, 27 Aug 2025 14:00: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 1urGhQ-0004WH-Og; Wed, 27 Aug 2025 14:00:28 +0000
Received: by outflank-mailman (input) for mailman id 1096163;
 Wed, 27 Aug 2025 14:00:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Gy2E=3H=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urGhO-00036L-VV
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 14:00:27 +0000
Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com
 [2a00:1450:4864:20::634])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2e926872-834e-11f0-aeb2-fb57b961d000;
 Wed, 27 Aug 2025 16:00:26 +0200 (CEST)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-afead3cf280so249204766b.1
 for <xen-devel@lists.xenproject.org>; Wed, 27 Aug 2025 07:00: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
 a640c23a62f3a-afec55faf24sm140687766b.82.2025.08.27.07.00.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Aug 2025 07:00: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>
X-Inumbo-ID: 2e926872-834e-11f0-aeb2-fb57b961d000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756303225; x=1756908025; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=XxiPTxMIAftH6ubJZkEHfTwXxgMehWYMhpQEvzKk2pU=;
        b=EBEEdsiZ9a+GGkHxF1PeVWfT7kctoXJL2rwjnlZkRo+XPErPinJQ7WSJeQ3Dpwa7/e
         JTo1gin0G0g904JoIobmf/I7mTG3WMrnEHzsLaKVzu7LhkQwgArJiCXo6EFW0PvkmUR9
         cbXfnjepZWtOcWb6L/MT8ziDvh/1fM269hAL7UPXpIA2hwZxxJ4uvXIMcMmui2in9Yfj
         QYRQ0QQQv+T0xFmwXPeRXTSE55EocCuGwcsvY7nz1uc4EssOHYHHwL63RyvZB2l3k1gP
         KVyXmTcylKVADuObUDvbbBzvh5+QYbzbkTcgFEI9uBe7IqNbajaf5RshYAjulQ/E8dY0
         XDag==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756303225; x=1756908025;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XxiPTxMIAftH6ubJZkEHfTwXxgMehWYMhpQEvzKk2pU=;
        b=azVTxBTfZnWEwK27L5LYs4qkcjJs4cQXfOL4OjwXC+22xMQWVNEdhwX+GWbrZHkdqh
         qCCCPryLgk0un12jlrEmOlOrIIK9jmImll2syKvvJ05b4u77+q6y5DKoJwH2bPTNMSFn
         l89hgUGx2TtM7EHe1ZGZUje4UDcDAzzRxG0ROmcGE2zV87rHvTpiAxKVloap9IH8dcBv
         3ZXWAhWGQgrCmCbDz2U35elVS8bB8h+4j4V7XAOUIKsy0kNOXvg7zMNF8Bnn7NGXCYJi
         5mks+qbmmJRDL3KuhPQlmNzTP/dvQFIDLACyREsm3uwGFk0P4xyO57hKm9doefJFj+UU
         RVoQ==
X-Forwarded-Encrypted: i=1; AJvYcCWzMPkGzl57nUP0tKkUMMTO/TdSFFTr/d+I767lXIx12LFhBWb6wy3AFuq8VWle4jdkNP4fzD/s2IM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwO3zXvBh4Az6BTjQIKVmI+PN8Xvrr/+EbURzWeiqkpLR5aWUar
	JYUYa9nYrQrahUiy9kZOSQ02ImKhEtgVSILw7TYh6y0CPSotsSSfTaapjkPMnT4MLA==
X-Gm-Gg: ASbGncvjJPacvKYatZCPEWIf4wVzdomFuoPGKSj1lvNCLAInxwNXwYRcvu2dXx+BS4B
	PR7oTOLkH/1w7lN70jUKWG7O4JHoPUYHUsvAA2X0LTfh1knA6DD5B818/AaBBQUGHX7GRO+bG9x
	7GuMFmryFZOGIIpAmwSct1VLCTZFxGm/57vm7HKSTeGluPfBhfy9Oa7yJQRjgZ+lrIF5L4NOzeh
	KHyuvc8fG5Ry7REc554BGIYKPY7zjb0/F84wp8ujecKNqBPWakAbbwYkOBYz2MFN/m5yJDKPGSy
	V7ftbkYCz3jH9JG+8KPNN0w/bvYelgr6MZ+UjIkmHKLwgeZcquLUEhuyawB84WlVBnXD6A/AiQx
	GW3Nnm4AW0R8t7xnzrKXWNPQRXkyKXnsvE4pk5wi2D4n0ELz4vxuBYs0pCM8NS5bd+MFWbPPP1z
	ohMAsMCCw=
X-Google-Smtp-Source: AGHT+IEGLQ2FHZJ8FZ8N3Qk6mpHSdFOPgJNkK6laLXvhdBoeocbUYz9p4dGYJlNwOtD8CpZ/L678Og==
X-Received: by 2002:a17:907:7f90:b0:afe:82ef:5433 with SMTP id a640c23a62f3a-afe82ef59a0mr1087393466b.10.1756303225397;
        Wed, 27 Aug 2025 07:00:25 -0700 (PDT)
Message-ID: <73e64580-6b67-4aac-8c87-d4d69662b72f@suse.com>
Date: Wed, 27 Aug 2025 16:00:24 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 8/8] xen/dom0less: store xenstore event channel in page
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>, xen-devel@lists.xenproject.org
References: <20250826210847.126015-1-jason.andryuk@amd.com>
 <20250826210847.126015-9-jason.andryuk@amd.com>
 <609d686e-a41c-47f4-9e5d-3733e9ec7723@suse.com>
 <efe407de-87e5-4434-a434-4d513b50f52c@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: <efe407de-87e5-4434-a434-4d513b50f52c@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 27.08.2025 15:19, Jason Andryuk wrote:
> On 2025-08-27 03:58, Jan Beulich wrote:
>> On 26.08.2025 23:08, Jason Andryuk wrote:
>>> --- a/xen/common/device-tree/dom0less-build.c
>>> +++ b/xen/common/device-tree/dom0less-build.c
>>> @@ -26,6 +26,7 @@
>>>   #include <public/event_channel.h>
>>>   #include <public/io/xs_wire.h>
>>>   
>>> +#include <asm/guest_access.h>
>>>   #include <asm/setup.h>
>>>   
>>>   #include <xen/static-memory.h>
>>> @@ -120,8 +121,14 @@ static void __init initialize_domU_xenstore(void)
>>>   
>>>           if ( gfn != XENSTORE_PFN_LATE_ALLOC && IS_ENABLED(CONFIG_GRANT_TABLE) )
>>>           {
>>> +            evtchn_port_t port = d->arch.hvm.params[HVM_PARAM_STORE_EVTCHN];
>>> +            paddr_t evtchn_gaddr = gfn_to_gaddr(_gfn(gfn)) +
>>> +                offsetof(struct xenstore_domain_interface, evtchn_port);
>>> +
>>>               ASSERT(gfn < UINT32_MAX);
>>>               gnttab_seed_entry(d, GNTTAB_RESERVED_XENSTORE, xs_domid, gfn);
>>> +            access_guest_memory_by_gpa(d, evtchn_gaddr, &port, sizeof(port),
>>> +                                       true /* is_write */);
>>
>> Isn't the use of an arch-specific function going to pose yet another issue
>> for making this code usable on x86? Can't you use copy_to_guest_phys() here?
>> Which may in turn need to be passed in by the caller, see e.g. dtb_load()
>> and initrd_load() (i.e. cache flushing may also be necessary for Arm).
> 
> Yes, that could be done, but it's not my preferred approach.  Using a 
> function pointer to pass a compile time constant seems to me like a 
> misuse of a function pointer.
> 
> I'd rather each arch using dom0less define:
> unsigned long copy_to_guest_phys(struct domain *d,
>                                   paddr_t gpa,
>                                   void *buf,
>                                   unsigned int len);
> 
> Which does the correct thing for the arch.

That would be even better, just that I don't know whether Arm folks would
like it.

Jan

> Alejandro was able to re-work things to re-use the dom0less parsing code 
> (dom0less-bindings.c), but he has so far kept the x86 domain 
> construction separate such that it does not use dom0less-build.c.  So I 
> don't know how that will shake out.
> 
> But, yeah, I can just pass in a function pointer if that is what is 
> agreed upon.
> 
> Regards,
> Jason



From xen-devel-bounces@lists.xenproject.org Wed Aug 27 14:01:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 14:01:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096171.1450961 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urGhw-00052b-3g; Wed, 27 Aug 2025 14:01:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096171.1450961; Wed, 27 Aug 2025 14:01: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 1urGhw-00052U-0x; Wed, 27 Aug 2025 14:01:00 +0000
Received: by outflank-mailman (input) for mailman id 1096171;
 Wed, 27 Aug 2025 14:00:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=n4tM=3H=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1urGhu-0004Rw-As
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 14:00:58 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20613.outbound.protection.outlook.com
 [2a01:111:f403:200a::613])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 407f18cc-834e-11f0-ae26-e363de0e7a9e;
 Wed, 27 Aug 2025 16:00:56 +0200 (CEST)
Received: from CH5PR05CA0008.namprd05.prod.outlook.com (2603:10b6:610:1f0::17)
 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.9052.20; Wed, 27 Aug
 2025 14:00:52 +0000
Received: from CH3PEPF0000000D.namprd04.prod.outlook.com
 (2603:10b6:610:1f0:cafe::48) by CH5PR05CA0008.outlook.office365.com
 (2603:10b6:610:1f0::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9094.6 via Frontend Transport; Wed,
 27 Aug 2025 14:00:52 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CH3PEPF0000000D.mail.protection.outlook.com (10.167.244.43) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Wed, 27 Aug 2025 14:00:52 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 27 Aug
 2025 09:00:51 -0500
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 27 Aug
 2025 09:00:51 -0500
Received: from [172.31.63.243] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 27 Aug 2025 09:00:51 -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>
X-Inumbo-ID: 407f18cc-834e-11f0-ae26-e363de0e7a9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NLisXCE+zng0Wt5yHrwoiDfIY2WKk1wiLG1wUEvGYQYZLj6pS7/d+RG+CFvapWt0OoH31KFt5eHWryMttdZi7oPQ4fmKaq8Qu1D7tftmDHljx6oiddolTPpogJjEKRxmYAriTB9XsErxvbTqSvV6M+Ns4fY4Z68GPa0EFBrWu5BH95FteF1ehOUPejYEZtwoMyetNGtdJyzY1zwgOKlnQFOnPY29Na00Qwp24C+V1ItmSSgg1mBB4XGNC7DvngE+6c4usjym4robT4kS+YDUcMBDmlN1mBkDRDWL0v8rjUNTrMjZJSuRz9R8RWPdKXIHpJXU/+2/5w36uPbEgdZiiw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=rFy7EjDhskpnyyqz5KdYr5/BiPtvpffxStEk5hiTMCM=;
 b=cbq8nDkRTFe5OHRjor0sXrJb/4mvve4By7Jf2jLWCBqTuY1vS/48+VQLQWKMElKfe2ivm1HDibVo2PjtqEmfRiIcmTdGED8RflzWZKIUJ46uNZ3VI5L8HOaolzibs5pOGC6arbrsQVq6lq2PMli9id+am02Oge6mUKHBz4gn1fwfP0U7uoEirnE830NngD0qdgNadLAikgmMa7MBsli19e/UNlv5ry9xNkbTxXnuc4+Bv6bUEmSaPpNmnUfgNGSsymOOE1MuTC7Naav+o8GQJdVgJn05/quYA4vgH2GZ1BldOW+cvHjzCrLPUzU2sQR3BFPx1f78XTFwlr7sEadLLQ==
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=rFy7EjDhskpnyyqz5KdYr5/BiPtvpffxStEk5hiTMCM=;
 b=IDoWxh58fHK2Dn/sGzaes+iPT8xyvMdnqxwVxS0DAQY/G6OPwvdKwgdn/RcnjMkRJSKkHAf0Lb7SdX7cC8Ej0AzxblGgmzlD1bAcTBXZzL5Q4eOaPwm2jxYm7uN48K59wSPyZkE68Zs4G9ZuSE1lJ7Z14zx1OCfatZeTlthGL4U=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <9194431b-2178-40df-bcc1-da0faeb9778e@amd.com>
Date: Wed, 27 Aug 2025 10:01:23 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/3] drivers/xen/gntdev: use xen_pv_domain() instead of
 cached value
To: Juergen Gross <jgross@suse.com>, <linux-kernel@vger.kernel.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Oleksandr Tyshchenko
	<oleksandr_tyshchenko@epam.com>, <xen-devel@lists.xenproject.org>
References: <20250826145608.10352-1-jgross@suse.com>
 <20250826145608.10352-4-jgross@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20250826145608.10352-4-jgross@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PEPF0000000D:EE_|DS7PR12MB6238:EE_
X-MS-Office365-Filtering-Correlation-Id: cc817e4c-dad0-46c1-8c5c-08dde5722281
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|36860700013|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?blFPMW56ZFEzWHk2WmpRM2tURlBnVlluNjZxZ1JkTGRHNlIvc1pKNWFuTUp1?=
 =?utf-8?B?bnhSdi9MYkgydm9jT2xNamZSVnltZzZuR0RHNFREQmkrRXVTL3U5MG4rT2w3?=
 =?utf-8?B?RGxnQ1hkbEJwU1FGSzRvc0FVaVJPY3AyWVhyY25PS2o1V2NSR0ozMzJlSkx1?=
 =?utf-8?B?TjFKWEV3aWVhVVA5YUk0K3hWOUtWV1g1d3BxZ1NyVFRaZDlUMnJPcWlOcG94?=
 =?utf-8?B?WW83Z3I5K25sY3MvSXV1VlN2YXZ3VXpBZjFyU2NzOGxmbi9EL0VpbS9uT1NQ?=
 =?utf-8?B?Wm5GUVlGcmJwMGlQVG5QUy9Ec2lYTXFhUVhJUVEvZ09RZk5aT1o3MXY4UlRR?=
 =?utf-8?B?azF5U2J0VE5URHd4azZWNjR6WUt6TmNLWWJ2UnJvMU5kWlFhM1BvQS93VFdW?=
 =?utf-8?B?Y3ZMNkYxcEVlWjRNYytydUtSeWd2SmNuREtsZUhFdWcvQzVxZGRtaTNzUVpN?=
 =?utf-8?B?MHJBd3pzRkRjNW1kTTFQaUdZVGREWVVUdDhSRzAydEJtcU9rTnFLaEVTTUR5?=
 =?utf-8?B?NXVRZFhLN2g3QlJBbnJHcVJFK2x6SXNKN3FFRDhRc1BvdTFSdzM5QjVjNG41?=
 =?utf-8?B?a1ovd29CRDNLRDBkM1BSQlFHZmZWNG9LeEk3ZGFEcFgydzRXcHRaM09Rd3Aw?=
 =?utf-8?B?YldqaTNmSkJwbkpQS21QZzZOUnhtdDNwZHRCOGIxbHRQWm9ZeW9WekE2WWdh?=
 =?utf-8?B?ZktWOEpicnlVOEZqTFphV0tPakR6NjBJOTFjcDQxWFUwOERBTW9mZy8remlm?=
 =?utf-8?B?bDJXUEVqTFExKzdxalBUSitqSXF6WUFuZEJDZ1RaVnF2MlhlZHkwb0pVenVR?=
 =?utf-8?B?RnAzUlNnSkdMOWsyWjdsbURNaHpRYU1LaWxvTzc2QjNBTkRtck9SczZ5MnVh?=
 =?utf-8?B?bU1DVFFtTzVtYUM2aUR2eFdtcWNjZ2RKM3dWM2FqRXQ1RnI2aWwwRmtULytD?=
 =?utf-8?B?WkVHKzJQOUI2RVEwZ2l3eENwaXBneXVONmt4dVFsbHNRLzNvbDNSdm5CRXYz?=
 =?utf-8?B?aXFNUFA0RjhYNTk2aUJRSTQ1NTcwdGZFdUU0Sm81dmxaYmVFV0ZkTVBoeTRY?=
 =?utf-8?B?bnBGMGNDZDZPQU11RGJ2MzRmYng0VDh6Yy8wTVROS3NSSUJiOGNITjlkSkFz?=
 =?utf-8?B?Y1pJZE9BaW1pbHVUZElkZTlaWlJuaGJSeSsrdnRxeGIvUmZad2hvcHJ2RHNG?=
 =?utf-8?B?ZzlGWk1yZk1UeTBmOGhWRVFoR0NRalNyMXBnQXd3MS80QWIyMWFESG9uRk5a?=
 =?utf-8?B?SVBKSUoxZU9CNVUyS1N0bnUxbjI5MGRZS0oxQXg4cFdsRTU2WkxXcDZTdldm?=
 =?utf-8?B?MXZ3V3cvTnZWczFONXVZMjBBYnpJUVIrWG1BbVU2Z2JzcE03RmsyM3pKdXk3?=
 =?utf-8?B?RTAxaEpZMWMvajgwbWFDTGYyUDU0NjRRcDF3Ni9CN043QWpsMHVLMXdJV3Rk?=
 =?utf-8?B?bVByVy9nd1ZROEpCSWlTVDkxT2NFZnhDRE1IMkZmdmdDcmVSSU9jR04rdnY5?=
 =?utf-8?B?RG90WDFDNEdHRFhjMncwSW1mekhRRkhhZGFseEpnSnhvQWVMRXRwRkdjVSta?=
 =?utf-8?B?Si9YVzRLdjBxSEJ6ejJXOFlHTFJSYU9ZZmRvY2RaS3BibUNlRXNIazVYZExy?=
 =?utf-8?B?UEhuMjg3U2FlTk56Q01SM2syL1dGYnVtNFU0ZlFNc0RjVHNGZkNpM1pkSlBJ?=
 =?utf-8?B?ZmxPN2VXcFVucGNMeHBMRlNMM3FYeWlFd1dkZ0RKMnZic3FGREV4UXlCdm5O?=
 =?utf-8?B?alFncWdxbnBaSFpKNUtnT0RDOTA3dUtBVmowNVdsZzhobU5TTjROcndqYUZB?=
 =?utf-8?B?MENSWlhPbUxiVENtQko1WHpHWk1KQ2MzMFlaT0VGKzlvV3JMLzZxMzFjVitU?=
 =?utf-8?B?RXNTV1hxc25rdmxmVGVmR0c2TjRrck81b2crdUlMV1EybVQ1RjNBSFk4aWV0?=
 =?utf-8?B?NldzN2owNXA1bXhuVEk2MjFBSGdqVmkrTlczV2haWG43WkFOQ1BqVVMrZmwz?=
 =?utf-8?B?Qm0rWENac0cxVEREZEhIcHFmcitMcDJkMkhkTHEyZld3R1JNM3hTYVRBa2FQ?=
 =?utf-8?Q?07neBR?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(36860700013)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Aug 2025 14:00:52.2611
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: cc817e4c-dad0-46c1-8c5c-08dde5722281
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH3PEPF0000000D.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB6238

On 2025-08-26 10:56, Juergen Gross wrote:
> Eliminate the use_ptemod variable by replacing its use cases with
> xen_pv_domain().
> 
> Instead of passing the xen_pv_domain() return value to
> gntdev_ioctl_dmabuf_exp_from_refs(), use xen_pv_domain() in that
> function.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 14:41:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 14:41:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096214.1450970 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urHKy-0002zR-24; Wed, 27 Aug 2025 14:41:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096214.1450970; Wed, 27 Aug 2025 14:41: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 1urHKx-0002zK-Vk; Wed, 27 Aug 2025 14:41:19 +0000
Received: by outflank-mailman (input) for mailman id 1096214;
 Wed, 27 Aug 2025 14:41:18 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=x+iP=3H=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1urHKv-0002zE-Rr
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 14:41:18 +0000
Received: from AM0PR83CU005.outbound.protection.outlook.com
 (mail-westeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c201::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e2800ba6-8353-11f0-aeb2-fb57b961d000;
 Wed, 27 Aug 2025 16:41:15 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by AS8PR03MB8417.eurprd03.prod.outlook.com (2603:10a6:20b:521::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Wed, 27 Aug
 2025 14:41:11 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Wed, 27 Aug 2025
 14:41: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>
X-Inumbo-ID: e2800ba6-8353-11f0-aeb2-fb57b961d000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HHIQCzO8l4UlvHS9TwER9bFxNvbmhXZuNu5y4KQWZgSq561/L6YXdNvNwzjFWq0dwNqyajSLCUNRhWXC1BhgUAxN7H6UWfz7jNV5HDurAMEoLg9CxZkU7saqJ6q0RMwixmZxxZV3GAD/DN9haO3GKB2m18IGItWz3wQ6gZsEfJAbM5kKEHAZm9wlBpKaP5ZKn62k8MKP5re1DbGfVw60eoS6l5LSDGHV/g4KXYoWwe3ksq29lCmC84ejfMsX/87TvV5WEHyVAfhOoLsn1Sn3/QHyVyHYgYmQk22p+uUhcUbPubPOvsh9wFoMKg3voCsxIjzTERs1XNy5hjpSs4Lsiw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=dpt+O+ap6vYRT/nHSYycTuyYNmSDUxPs6nHf/avi2aM=;
 b=bB5JxkjsLgK6dVCNGeUCrBAZCqXjCpWsbpvEwkXj0z7J9vuiPbnoOk+LYzxjiXHAOmvs4hvNkC33uYlXHELtKaitE/ahKTGIIgBsH6baj64YfCK8lUTRYicoIOwNwaYXeyj/pAA4/Y05mtM+8DqOJMT70qo3OislBsZT+TwvMG59JdP87AIFF+jzNcjve0UbeQkZ5pjUTpWr4UlQmMc5ghFz4eDSeW5A7PUkwHRVI+qM0kQq7pmRzU3Rf+4Pl685/vvB1kzs6/2QxtQVYR48yeVVtcbVS97vfXwMg/z+HXAa7P3l1ZyM7G/rG6qvmf0lVLcBAlgEtMAHcYk6DYEo3A==
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=dpt+O+ap6vYRT/nHSYycTuyYNmSDUxPs6nHf/avi2aM=;
 b=eZKZmvYoz9sWxujtfb1/P6+xOpLxBkGPix479j6Q5WwGv1rFLsiPi/Vb5gqX4IJs5gkc8MFM3YhtY+CGjf1nf2UnXNTftr4Ku7Huu4t5dWni3H1qtAezLe5UOkIlEhs6EZ+x2v4SmvhpxXq6xu3ElF+23fS06OERJrPRU9KkFRV6OYqMexxyRwWHgYsqg5tcVDj/fycr197LyheCy++oTv7HFaduunZIPkh4PRkFbkuBwGMFUihv4T/vInt3ncsHA7+Qovx+r7if7jXBCm2Mh3ED3LlHSZ3GFCjVmRSJUpNvwe3BnNfzIZz8wJ7Li+ADJrbDAw/1jw++mRCyfmxosQ==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: Oleksandr Tyshchenko <olekstysh@gmail.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel
	<michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v3 10/11] xen/arm: vgic-v3: add emulation of GICv3.1 eSPI
 registers
Thread-Topic: [PATCH v3 10/11] xen/arm: vgic-v3: add emulation of GICv3.1 eSPI
 registers
Thread-Index: AQHcFpKAKCVIbYC3hEGAz+VsUD3/gbR1WjCAgAD/ygCAACpFgIAAD94A
Date: Wed, 27 Aug 2025 14:41:11 +0000
Message-ID: <472cebcd-a5aa-4434-9602-d83082065490@epam.com>
References: <cover.1756216942.git.leonid_komarianskyi@epam.com>
 <642a994d712a8c9df7aed9dec22124564db83c7e.1756216943.git.leonid_komarianskyi@epam.com>
 <5a84d20c-5136-4151-8801-b0fbccaf23d7@gmail.com>
 <d71bd33e-ec09-47e5-af68-b8a79c78971d@epam.com>
 <7b0e2df4-9666-4f7b-9ada-9f1000200fd3@gmail.com>
In-Reply-To: <7b0e2df4-9666-4f7b-9ada-9f1000200fd3@gmail.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: GV2PR03MB8678:EE_|AS8PR03MB8417:EE_
x-ms-office365-filtering-correlation-id: 2abf7b85-437c-4fb1-a294-08dde577c467
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?OXdrSHhLZU9tT1RRTVhRY003N1Q0bnpHREd0Q1RjS1NUTE9QcW5KYnJxZXRk?=
 =?utf-8?B?TTdabDhNWXBXQzA1Nm01UDEzOGVqVTQ2UENvQWx5N1NCUzVmOTM5L0hDVlZh?=
 =?utf-8?B?ZW01VGlmQUVST3FocHU0d29JaW1TYnMvTmwxMjE2SVBGMDJQanRxSjZmTjlT?=
 =?utf-8?B?RC9YU092ODlBU043eWNHR2pOSldpVW9USytoYnBWYUVZbkJxUnlNdTVORzVo?=
 =?utf-8?B?aW5LZlVrMEJFT1dyNStWeDNwdDFLOTJZUGwwdkNaQS9zcGNuRjBOODFTRm1U?=
 =?utf-8?B?cGtxSGJKMjBNdDdqUGRRUEt5RHluM1FUMFllOHJHSzdBOVNsTmVnU01jM3hw?=
 =?utf-8?B?eldqZ2JML0ljVDZNY3ZaVmZyZFlUcmttOWduYW9zQVEzN0VBTVZBbVY2MGg4?=
 =?utf-8?B?VXpBMEpzRXE4d1hEZUhBRHh6bCtMTmMrMTlQY2J1Rk1YRnh3QUZhS3FlTmlL?=
 =?utf-8?B?ZVljdElyUEtBY1g0RCtjSWRHN2FWVlhVQ0pmSnlQSzVVQ2lVMzdvYklmdTg1?=
 =?utf-8?B?SnEyNHNhS1lRSEtBL2x1SDFFWmtRdGF6Qk4zZ1VDc0pLMjlKVlNndWdkZWNl?=
 =?utf-8?B?MVZCUmdsaHRLSzJrc0xabFBrajh3M0FGbi9UNytHK1pUWWdYNHRudU1Kdmp1?=
 =?utf-8?B?N0lOdXBEdFdMUVJ4bE5BMmxzTVRuVEp3NjlTWm1TNWRISk9sckNEVnlnamtN?=
 =?utf-8?B?bHVjVk04WnVFUDNDMlFrT2NBbXc2MzM4ellVdGJaUEZaWGxIT05IdkVwY1Ju?=
 =?utf-8?B?RmNKUG1OeHdvWmR0YVloai9BYzB2cFNwai9STGZURGYxb0FRbUdkOGNIM3Iw?=
 =?utf-8?B?MWRaaHo1Q1ByMm01aWpOVUZ2Y0lSWFRCK0xkS3kvVXpweGNXcnRtK1lEUEkr?=
 =?utf-8?B?UHhaclBNRHpQRWR4Z1N6Ukc3Zkl4VmF5YVVaSTM0SHptRzAyb1NCdmoxS0JK?=
 =?utf-8?B?V0hYOTNaREpBQThUSXgrNURZZktLMExYcEhURmtwZXFScGRQYytWNjJWaVB1?=
 =?utf-8?B?bFBCRFFVM0tpaEFGaldXWlNaVEdIeTNMNVNIOWlxNE85ZVViZTdqQTcxS2w1?=
 =?utf-8?B?eXNPWmlTaVFwTGpFaHd4dHFLbjJHclU1cTBiVGxiNEpzU3UycFY3WVRWNEli?=
 =?utf-8?B?cElkWXUzbnQ0dENqemFqZ2ttLzhVeDh1SUVGSXhDTGptRXJ5VFJtbndKbExV?=
 =?utf-8?B?OTJjMG85Q3Y5TTA1SHBwMHZGUlRGcDlzYWNieno3NkswVzRtQTRZb1dxQnpY?=
 =?utf-8?B?dU45SWNETng3aDZXelBBVWNVamw5QWF0em5LM3llVWxiWUQyNlVXUy8rNVY4?=
 =?utf-8?B?ZGJzUTkrejVidmNrTk10WkNpbEIxcFhHNllrYjlOc1Q3QmhiaXpQeDdOaUVh?=
 =?utf-8?B?d292MWFtNG9jNEJjMTUyTVJVelp0MzR0cUpTTzU1b1NpdnRIQUpDTkZXK05n?=
 =?utf-8?B?N1dDc0hKZWx6cmZOZG1sTThSdXZCaG91OHlTMHhzbnAwMkp5ejVDdmcyLzQv?=
 =?utf-8?B?UlBtWlExSjNyZ25YdGRBWldBWkRFM1J3QXJkVnpOeEU4M1NxeEpRVDducVBa?=
 =?utf-8?B?bS9ZbDFlSHhmRUpRc3BXMzVYbWsyZGl5Wm5zZEcxNERLMTJzQVN1QkI5Ulp1?=
 =?utf-8?B?dzhNK2VvY3NJY3BwZjNxczh6Y0lZWHJUQjlHMXhOdS84aERsczNJK3FhQ2hU?=
 =?utf-8?B?ODYxd21YWVBEb3lWU21uU0p5V2RQeFhXdjZST21mQzN3YWNsY1Z5VEt0ZVhG?=
 =?utf-8?B?a0lUQld2UVZySjByWjZPemU3eHdoS1l6SEVjWnA0Q3JxMUdTTUZmZWdQOVdU?=
 =?utf-8?B?ZGZBaERnalkxa3BjTk84S0pLNW5CNzlPbS8xdDhPVVdDLzAzWStXeGtrUTMx?=
 =?utf-8?B?eDRPYVN0MHdDTCt5M2RQcU11N3VjQWIwMmlhYVpCQVZOR2JSWDdVcGxsNnNo?=
 =?utf-8?B?czlrNDcreVI4NVgzbnZ1N0kydnRpZ3hPclJwS2Zvd3hqbkYzUE1wajdIb3o0?=
 =?utf-8?B?ZDRycGQzcU1BPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?TjBtMlpRTmU2d05ITHdjc1UzSDEyb3VDUUJkdzFnT0VETkM2elhINWRKdjQ0?=
 =?utf-8?B?RHpGNml6Y2RrQklvK2NIZkNaeUlxRXB3QXUzM1dDTHlIYzFkNXN6THdMTTBI?=
 =?utf-8?B?S2ZUZlM1SHQyNFpiR2wxeHh6L0ZRV3Zha0VMSGxRemkxd1puMUNtLzRTYVIy?=
 =?utf-8?B?WnNqbTI3aXRReVBkQ3JXUnl3TlZ2N2YxaG4rUWZqK01XaVV6U1U1clBWejVG?=
 =?utf-8?B?V0VwZEpwTnRtcXU4akVXeEMyMkJmeUhaQU5YMWhJZGpocWM4Y1VUaXRxWGwy?=
 =?utf-8?B?cVdPa1pTb24zMGRjQ0ZtYW5PK3RBNDRzYU45QjJUZktMbThNdUtZS1l5SUJi?=
 =?utf-8?B?SnEzR0ZBSUtJYlorYWc5YkpDV1gvVDc1VWhKYVNoLzJRdmtXSWJKUnJiWU0y?=
 =?utf-8?B?QnFCMTRzSFhMb2F4NXhhWGNSMTJqTlpaRi8xVGpFc0cvYWJvUDhPV3JTS3VL?=
 =?utf-8?B?eW1CV3M1MzhsZWRFK0N4NHZLbkJVeWx2YzN0K20vNUJWQmh5NktHT3hXT2Qr?=
 =?utf-8?B?b2tZSUJjNEFCL2xaSEFNRGVScElXc29ueUJ5c0RJdGh5bHorNmRhZjlLeS8x?=
 =?utf-8?B?Q2dxS1lnc2NNMnk2aGJ5cENpc0xSSkNGV2doaHF1L2dKS2EzY0ZDR21TYWZZ?=
 =?utf-8?B?WUlqZDFpRzd4YWlyamxxM3JsSXNzTzRtU2tGSDM3TGhIWmVySU1hc01iOHkr?=
 =?utf-8?B?RWhEUklWcFNhTSsrOFpweFN4UzlMTWtVRURLTTBtbGc1WXZsSEpQVTJ6bTFH?=
 =?utf-8?B?S0w4NEJ4bEd4dm1ocnFlUkM0eDZPUHFBVDVId3FwTjBJKzVOdW92aE9zWGQw?=
 =?utf-8?B?SDR6OVlDSld5OCtHYTdqZERLRkVXQlFINzRaNkZCelRaNGQ1emxVQVBlcnJO?=
 =?utf-8?B?L3laSVgzbHhLWWJGemo4SmRmMWUvYmRlb2IyOUdMdW1XWTNtcWp0QUpES0Zm?=
 =?utf-8?B?RS80bko5bVZrQkpUeE5ReHYrVWd0NTh6YkRtRmlvRmxsUjJUSmZ4eFNKKzZy?=
 =?utf-8?B?bFZnd25LblFYVjZEbDJ2UmVrb1R0OE9nSENQdTFEMGJRS2RlZHF4SDMrUlZt?=
 =?utf-8?B?dWY0SHFNOWVsZmtOZW5SaHV4V05MUzFtVy9ZSEErc1BQOW5LV2c1RXIxSkx6?=
 =?utf-8?B?Z0ZiWjBzVHFlN0pkbG5tYlV3VTVsUXI2dDFvaERZWjFCMkEzSDR5VGpmRmx4?=
 =?utf-8?B?NzJaeG1ZcnZscktTL1FKQk1RZmhtaWhMaXRqdHMrblBENG1hcC96cXJKOEpV?=
 =?utf-8?B?Z0JDVHBmWG1CZWR1dloxbUQwbEVHTDlIMmtGOUVkemlQNXZOdHFxUGhpN1lh?=
 =?utf-8?B?cDlEMGNuYUFST0Zna0tVUUFZSkFibHpodnBFRDZTbllpN1RETHMrNHBvemlu?=
 =?utf-8?B?Y3g5NXE1T3VpYXhlT09QMkxINnpjTFFieUJaQlFEMnZiK09pWTJlb0czTndO?=
 =?utf-8?B?RVNRM0dCY0puaHhSVDFRT2xDNHROckhaVkVQLzlXVWJSUG0xcFFpalhYVDhm?=
 =?utf-8?B?ZzFITU1kcHRqTWVIUlY0UkRJMGlrSFBtWjlGdUEvUDhZN3VDeHFSRTJabXJ3?=
 =?utf-8?B?ZkNDUGIvQngzeTdzUTl6aG4wb2t1QnlQZSt6TFRhakpvMXVldHE1VVQ5S05B?=
 =?utf-8?B?d3JoeHNHRlVzQlBvWTdhWW9Zd2h4R0NSajhLb2ExWXowZThaQmFnWHdRaHBt?=
 =?utf-8?B?QXB1NnFoa2w4YTdnaVArM2ZvdTU0KzZLK3hpUk8yY0VBRDJxZDN5MG9BaE9y?=
 =?utf-8?B?T0ZTSStkMHpsVFQxVEp3S0ZuK2ZyTEtmNHFEY2dMOThuQWlIa2ZSR0UyWGxp?=
 =?utf-8?B?ZXdDbUx1VXplVFRra1FSU0JmS1pnTGczUkREMTRIeHhiTnJ2SVV5RmRTKzQ5?=
 =?utf-8?B?aWk0WURQdDU1UG51QlUyY2ZYSGswOW9aUjExWWdmTXVwMzhiM0trV0Zva1h3?=
 =?utf-8?B?dWlhT0NqcnJvdHZ2UEEyQ09nQUZaT2dnT3JOMStaaVA1VkpRc1cvekFyNUtJ?=
 =?utf-8?B?UGdYdlNmcVV3S1RHSzVaVlNXWWJRYXo2eFNKV2pnWUw4S2RkL1VMVFFPZEJF?=
 =?utf-8?B?T2pTYzVDM2FHSXdodjgyMjFxTzlMNGFaZHdzV2hYaDNhVkJQWnp1ajc3bldw?=
 =?utf-8?B?RlZmYkdCeDRjUUEzY3JIWnNOVkhCWnVhUTFtUmdCS1FaV2tZWmZHTHpBYW10?=
 =?utf-8?Q?RBSGlxG3sUwZISxJ9KbIaj4=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <8DEF083665080D4FB947EBF67868A9A2@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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2abf7b85-437c-4fb1-a294-08dde577c467
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Aug 2025 14:41:11.5118
 (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: 4BkRjR/gWIdNsJ28YCCPnNo40aHABn+KSBrWOTaZl2pD94kegp4rtwm674AvYN/fa9IIGMJW1/4RsbpQBf0u5cH9pokrBINGe75OqBlskZE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB8417

SGVsbG8gT2xla3NhbmRyLA0KDQpUaGFuayB5b3UgZm9yIHlvdXIgZXhwbGFuYXRpb24uDQoNCk9u
IDI3LjA4LjI1IDE2OjQ0LCBPbGVrc2FuZHIgVHlzaGNoZW5rbyB3cm90ZToNCj4gDQo+IA0KPiBP
biAyNy4wOC4yNSAxNDoxMywgTGVvbmlkIEtvbWFyaWFuc2t5aSB3cm90ZToNCj4+IEhlbGxvIE9s
ZWtzYW5kciwNCj4gDQo+IEhlbGxvIExlb25pZA0KPiANCj4+DQo+PiBUaGFuayB5b3UgZm9yIHlv
dXIgY2xvc2UgcmV2aWV3Lg0KPj4NCj4+IE9uIDI2LjA4LjI1IDIyOjU3LCBPbGVrc2FuZHIgVHlz
aGNoZW5rbyB3cm90ZToNCj4+Pg0KPj4+DQo+Pj4gT24gMjYuMDguMjUgMTc6MDUsIExlb25pZCBL
b21hcmlhbnNreWkgd3JvdGU6DQo+Pj4NCj4+PiBIZWxsbyBMZW9uaWQNCj4+Pg0KPj4+DQo+Pj4+
IEltcGxlbWVudGVkIHN1cHBvcnQgZm9yIEdJQ3YzLjEgZXh0ZW5kZWQgU1BJIHJlZ2lzdGVycyBm
b3IgdkdJQ3YzLA0KPj4+PiBhbGxvd2luZyB0aGUgZW11bGF0aW9uIG9mIGVTUEktc3BlY2lmaWMg
YmVoYXZpb3IgZm9yIGd1ZXN0IGRvbWFpbnMuDQo+Pj4+IFRoZSBpbXBsZW1lbnRhdGlvbiBpbmNs
dWRlcyByZWFkIGFuZCB3cml0ZSBlbXVsYXRpb24gZm9yIGVTUEktcmVsYXRlZA0KPj4+PiByZWdp
c3RlcnMgKGUuZy4sIEdJQ0RfSVNFTkFCTEVSbkUsIEdJQ0RfSVJPVVRFUm5FLCBhbmQgb3RoZXJz
KSwNCj4+Pj4gZm9sbG93aW5nIGEgc2ltaWxhciBhcHByb2FjaCB0byB0aGUgaGFuZGxpbmcgb2Yg
cmVndWxhciBTUElzLg0KPj4+Pg0KPj4+PiBUaGUgZVNQSSByZWdpc3RlcnMsIHByZXZpb3VzbHkg
bG9jYXRlZCBpbiByZXNlcnZlZCBhZGRyZXNzIHJhbmdlcywNCj4+Pj4gYXJlIG5vdyBhZGp1c3Rl
ZCB0byBzdXBwb3J0IE1NSU8gcmVhZCBhbmQgd3JpdGUgb3BlcmF0aW9ucyBjb3JyZWN0bHkNCj4+
Pj4gd2hlbiBDT05GSUdfR0lDVjNfRVNQSSBpcyBlbmFibGVkLg0KPj4+Pg0KPj4+PiBUaGUgYXZh
aWxhYmlsaXR5IG9mIGVTUElzIGFuZCB0aGUgbnVtYmVyIG9mIGVtdWxhdGVkIGV4dGVuZGVkIFNQ
SXMNCj4+Pj4gZm9yIGd1ZXN0IGRvbWFpbnMgaXMgcmVwb3J0ZWQgYnkgc2V0dGluZyB0aGUgYXBw
cm9wcmlhdGUgYml0cyBpbiB0aGUNCj4+Pj4gR0lDRF9UWVBFUiByZWdpc3RlciwgYmFzZWQgb24g
dGhlIG51bWJlciBvZiBlU1BJcyByZXF1ZXN0ZWQgYnkgdGhlDQo+Pj4+IGRvbWFpbiBhbmQgc3Vw
cG9ydGVkIGJ5IHRoZSBoYXJkd2FyZS4gSW4gY2FzZXMgd2hlcmUgdGhlIGNvbmZpZ3VyYXRpb24N
Cj4+Pj4gb3B0aW9uIGlzIGRpc2FibGVkLCB0aGUgaGFyZHdhcmUgZG9lcyBub3Qgc3VwcG9ydCBl
U1BJcywgb3IgdGhlIGRvbWFpbg0KPj4+PiBkb2VzIG5vdCByZXF1ZXN0IHN1Y2ggaW50ZXJydXB0
cywgdGhlIGZ1bmN0aW9uYWxpdHkgcmVtYWlucyB1bmNoYW5nZWQuDQo+Pj4+DQo+Pj4+IFNpZ25l
ZC1vZmYtYnk6IExlb25pZCBLb21hcmlhbnNreWkgPGxlb25pZF9rb21hcmlhbnNreWlAZXBhbS5j
b20+DQo+Pj4+DQo+Pj4+IC0tLQ0KPj4+PiBDaGFuZ2VzIGluIFYyOg0KPj4+PiAtIGFkZCBtaXNz
aW5nIHJhbmsgaW5kZXggY29udmVyc2lvbiBmb3IgcGVuZGluZyBhbmQgaW5mbGlnaHQgaXJxcw0K
Pj4+Pg0KPj4+PiBDaGFuZ2VzIGluIFYzOg0KPj4+PiAtIGNoYW5nZWQgdmdpY19zdG9yZV9pcm91
dGVyIHBhcmFtZXRlcnMgLSBpbnN0ZWFkIG9mIG9mZnNldCB2aXJxIGlzDQo+Pj4+IMKgwqDCoCB1
c2VkLCB0byByZW1vdmUgdGhlIGFkZGl0aW9uYWwgYm9vbCBlc3BpIHBhcmFtZXRlciBhbmQgc2lt
cGxpZnkNCj4+Pj4gwqDCoMKgIGNoZWNrcy4gQWxzbywgYWRqdXN0ZWQgcGFyYW1ldGVycyBmb3Ig
cmVndWxhciBTUEkuIFNpbmNlIHRoZSBvZmZzZXQNCj4+Pj4gwqDCoMKgIHBhcmFtZXRlciB3YXMg
dXNlZCBvbmx5IGZvciBjYWxjdWxhdGluZyB2aXJxIG51bWJlciBhbmQgdGhlbiByZXVzZWQNCj4+
Pj4gZm9yDQo+Pj4+IMKgwqDCoCBmaW5kaW5nIHJhbmsgb2Zmc2V0LCBpdCB3aWxsIG5vdCBhZmZl
Y3QgZnVuY3Rpb25hbGl0eS4NCj4+Pj4gLSBmaXhlZCBmb3JtYXR0aW5nIGZvciBnb3RvIGxhYmxl
cyAtIGFkZGVkIG5ld2xpbmVzIGFmdGVyIGNvbmRpdGlvbg0KPj4+PiAtIGZpeGVkIGxvZ3MgZm9y
IEdJQ0RfSVNBQ1RJVkVSbkUgYW5kIEdJQ0RfSUNBQ1RJVkVSbkUgaGFuZGxlcnMNCj4+Pj4gLSBy
ZW1vdmVkICNpZmRlZnMgaW4gMiBwbGFjZXMgd2hlcmUgdGhleSB3ZXJlIGFkamFjZW50IGFuZCBj
b3VsZCBiZQ0KPj4+PiBtZXJnZWQNCj4+Pj4gLS0tDQo+Pj4+IMKgwqAgeGVuL2FyY2gvYXJtL3Zn
aWMtdjMuYyB8IDI3NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysgDQo+Pj4+
ICsrKy0tDQo+Pj4+IMKgwqAgMSBmaWxlIGNoYW5nZWQsIDI2NiBpbnNlcnRpb25zKCspLCA5IGRl
bGV0aW9ucygtKQ0KPj4+Pg0KPj4+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3ZnaWMtdjMu
YyBiL3hlbi9hcmNoL2FybS92Z2ljLXYzLmMNCj4+Pj4gaW5kZXggNDM2OWM1NTE3Ny4uNTZjNTM5
YmIxYiAxMDA2NDQNCj4+Pj4gLS0tIGEveGVuL2FyY2gvYXJtL3ZnaWMtdjMuYw0KPj4+PiArKysg
Yi94ZW4vYXJjaC9hcm0vdmdpYy12My5jDQo+Pj4+IEBAIC0xMTEsMTMgKzExMSwxMCBAQCBzdGF0
aWMgdWludDY0X3QgdmdpY19mZXRjaF9pcm91dGVyKHN0cnVjdA0KPj4+PiB2Z2ljX2lycV9yYW5r
ICpyYW5rLA0KPj4+PiDCoMKgwqAgKiBOb3RlIHRoZSBvZmZzZXQgd2lsbCBiZSBhbGlnbmVkIHRv
IHRoZSBhcHByb3ByaWF0ZSBib3VuZGFyeS4NCj4+Pj4gwqDCoMKgICovDQo+Pj4+IMKgwqAgc3Rh
dGljIHZvaWQgdmdpY19zdG9yZV9pcm91dGVyKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdA0KPj4+
PiB2Z2ljX2lycV9yYW5rICpyYW5rLA0KPj4+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVuc2lnbmVkIGludCBvZmZzZXQsIHVp
bnQ2NF90IGlyb3V0ZXIpDQo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdW5zaWduZWQgaW50IHZpcnEsIHVpbnQ2NF90IGly
b3V0ZXIpDQo+Pj4+IMKgwqAgew0KPj4+PiDCoMKgwqDCoMKgwqAgc3RydWN0IHZjcHUgKm5ld192
Y3B1LCAqb2xkX3ZjcHU7DQo+Pj4+IC3CoMKgwqAgdW5zaWduZWQgaW50IHZpcnE7DQo+Pj4+IC0N
Cj4+Pj4gLcKgwqDCoCAvKiBUaGVyZSBpcyAxIHZJUlEgcGVyIElST1VURVIgKi8NCj4+Pj4gLcKg
wqDCoCB2aXJxID0gb2Zmc2V0IC8gTlJfQllURVNfUEVSX0lST1VURVI7DQo+Pj4+ICvCoMKgwqAg
dW5zaWduZWQgaW50IG9mZnNldDsNCj4+Pj4gwqDCoMKgwqDCoMKgIC8qDQo+Pj4+IMKgwqDCoMKg
wqDCoMKgICogVGhlIElST1VURVIwLTMxLCB1c2VkIGZvciBTR0lzL1BQSXMsIGFyZSByZXNlcnZl
ZCBhbmQgc2hvdWxkDQo+Pj4+IEBAIC02ODUsNiArNjgyLDkgQEAgc3RhdGljIGludCBfX3ZnaWNf
djNfZGlzdHJfY29tbW9uX21taW9fcmVhZChjb25zdA0KPj4+PiBjaGFyICpuYW1lLCBzdHJ1Y3Qg
dmNwdSAqdiwNCj4+Pj4gwqDCoMKgwqDCoMKgIHsNCj4+Pj4gwqDCoMKgwqDCoMKgIGNhc2UgVlJB
TkdFMzIoR0lDRF9JR1JPVVBSLCBHSUNEX0lHUk9VUFJOKToNCj4+Pj4gwqDCoMKgwqDCoMKgIGNh
c2UgVlJBTkdFMzIoR0lDRF9JR1JQTU9EUiwgR0lDRF9JR1JQTU9EUk4pOg0KPj4+PiArI2lmZGVm
IENPTkZJR19HSUNWM19FU1BJDQo+Pj4+ICvCoMKgwqAgY2FzZSBWUkFOR0UzMihHSUNEX0lHUk9V
UFJuRSwgR0lDRF9JR1JPVVBSbkVOKToNCj4+Pj4gKyNlbmRpZg0KPj4+PiDCoMKgwqDCoMKgwqDC
oMKgwqDCoCAvKiBXZSBkbyBub3QgaW1wbGVtZW50IHNlY3VyaXR5IGV4dGVuc2lvbnMgZm9yIGd1
ZXN0cywgcmVhZA0KPj4+PiB6ZXJvICovDQo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmICgg
ZGFidC5zaXplICE9IERBQlRfV09SRCApIGdvdG8gYmFkX3dpZHRoOw0KPj4+PiDCoMKgwqDCoMKg
wqDCoMKgwqDCoCBnb3RvIHJlYWRfYXNfemVybzsNCj4+Pj4gQEAgLTcxMCwxMSArNzEwLDE5IEBA
IHN0YXRpYyBpbnQNCj4+Pj4gX192Z2ljX3YzX2Rpc3RyX2NvbW1vbl9tbWlvX3JlYWQoY29uc3Qg
Y2hhciAqbmFtZSwgc3RydWN0IHZjcHUgKnYsDQo+Pj4+IMKgwqDCoMKgwqDCoCAvKiBSZWFkIHRo
ZSBwZW5kaW5nIHN0YXR1cyBvZiBhbiBJUlEgdmlhIEdJQ0QvR0lDUiBpcyBub3QNCj4+Pj4gc3Vw
cG9ydGVkICovDQo+Pj4+IMKgwqDCoMKgwqDCoCBjYXNlIFZSQU5HRTMyKEdJQ0RfSVNQRU5EUiwg
R0lDRF9JU1BFTkRSTik6DQo+Pj4+IMKgwqDCoMKgwqDCoCBjYXNlIFZSQU5HRTMyKEdJQ0RfSUNQ
RU5EUiwgR0lDRF9JQ1BFTkRSTik6DQo+Pj4+ICsjaWZkZWYgQ09ORklHX0dJQ1YzX0VTUEkNCj4+
Pj4gK8KgwqDCoCBjYXNlIFZSQU5HRTMyKEdJQ0RfSVNQRU5EUm5FLCBHSUNEX0lTUEVORFJuRU4p
Og0KPj4+PiArwqDCoMKgIGNhc2UgVlJBTkdFMzIoR0lDRF9JQ1BFTkRSbkUsIEdJQ0RfSUNQRU5E
Um5FTik6DQo+Pj4+ICsjZW5kaWYNCj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqAgZ290byByZWFk
X2FzX3plcm87DQo+Pj4+IMKgwqDCoMKgwqDCoCAvKiBSZWFkIHRoZSBhY3RpdmUgc3RhdHVzIG9m
IGFuIElSUSB2aWEgR0lDRC9HSUNSIGlzIG5vdA0KPj4+PiBzdXBwb3J0ZWQgKi8NCj4+Pj4gwqDC
oMKgwqDCoMKgIGNhc2UgVlJBTkdFMzIoR0lDRF9JU0FDVElWRVIsIEdJQ0RfSVNBQ1RJVkVSTik6
DQo+Pj4+IMKgwqDCoMKgwqDCoCBjYXNlIFZSQU5HRTMyKEdJQ0RfSUNBQ1RJVkVSLCBHSUNEX0lD
QUNUSVZFUk4pOg0KPj4+PiArI2lmZGVmIENPTkZJR19HSUNWM19FU1BJDQo+Pj4+ICvCoMKgwqAg
Y2FzZSBWUkFOR0UzMihHSUNEX0lTQUNUSVZFUm5FLCBHSUNEX0lTQUNUSVZFUm5FTik6DQo+Pj4+
ICvCoMKgwqAgY2FzZSBWUkFOR0UzMihHSUNEX0lDQUNUSVZFUm5FLCBHSUNEX0lDQUNUSVZFUm5F
Tik6DQo+Pj4+ICsjZW5kaWYNCj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqAgZ290byByZWFkX2Fz
X3plcm87DQo+Pj4+IMKgwqDCoMKgwqDCoCBjYXNlIFZSQU5HRTMyKEdJQ0RfSVBSSU9SSVRZUiwg
R0lDRF9JUFJJT1JJVFlSTik6DQo+Pj4+IEBAIC03NTIsNiArNzYwLDY5IEBAIHN0YXRpYyBpbnQg
X192Z2ljX3YzX2Rpc3RyX2NvbW1vbl9tbWlvX3JlYWQoY29uc3QNCj4+Pj4gY2hhciAqbmFtZSwg
c3RydWN0IHZjcHUgKnYsDQo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiAxOw0KPj4+
PiDCoMKgwqDCoMKgwqAgfQ0KPj4+PiArI2lmZGVmIENPTkZJR19HSUNWM19FU1BJDQo+Pj4+ICvC
oMKgwqAgY2FzZSBWUkFOR0UzMihHSUNEX0lTRU5BQkxFUm5FLCBHSUNEX0lTRU5BQkxFUm5FTik6
DQo+Pj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAoIGRhYnQuc2l6ZSAhPSBEQUJUX1dPUkQgKQ0KPj4+
PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBnb3RvIGJhZF93aWR0aDsNCj4+Pj4gK8KgwqDCoMKg
wqDCoMKgIHJhbmsgPSB2Z2ljX2V4dF9yYW5rX29mZnNldCh2LCAxLCByZWcgLSBHSUNEX0lTRU5B
QkxFUm5FLA0KPj4+PiBEQUJUX1dPUkQpOw0KPj4+PiArwqDCoMKgwqDCoMKgwqAgaWYgKCByYW5r
ID09IE5VTEwgKQ0KPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBnb3RvIHJlYWRfYXNfemVy
bzsNCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHZnaWNfbG9ja19yYW5rKHYsIHJhbmssIGZsYWdzKTsN
Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgICpyID0gdnJlZ19yZWczMl9leHRyYWN0KHJhbmstPmllbmFi
bGUsIGluZm8pOw0KPj4+PiArwqDCoMKgwqDCoMKgwqAgdmdpY191bmxvY2tfcmFuayh2LCByYW5r
LCBmbGFncyk7DQo+Pj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gMTsNCj4+Pj4gKw0KPj4+PiAr
wqDCoMKgIGNhc2UgVlJBTkdFMzIoR0lDRF9JQ0VOQUJMRVJuRSwgR0lDRF9JQ0VOQUJMRVJuRU4p
Og0KPj4+PiArwqDCoMKgwqDCoMKgwqAgaWYgKCBkYWJ0LnNpemUgIT0gREFCVF9XT1JEICkNCj4+
Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZ290byBiYWRfd2lkdGg7DQo+Pj4+ICvCoMKgwqDC
oMKgwqDCoCByYW5rID0gdmdpY19leHRfcmFua19vZmZzZXQodiwgMSwgcmVnIC0gR0lDRF9JQ0VO
QUJMRVJuRSwNCj4+Pj4gREFCVF9XT1JEKTsNCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIGlmICggcmFu
ayA9PSBOVUxMICkNCj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZ290byByZWFkX2FzX3pl
cm87DQo+Pj4+ICvCoMKgwqDCoMKgwqDCoCB2Z2ljX2xvY2tfcmFuayh2LCByYW5rLCBmbGFncyk7
DQo+Pj4+ICvCoMKgwqDCoMKgwqDCoCAqciA9IHZyZWdfcmVnMzJfZXh0cmFjdChyYW5rLT5pZW5h
YmxlLCBpbmZvKTsNCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHZnaWNfdW5sb2NrX3JhbmsodiwgcmFu
aywgZmxhZ3MpOw0KPj4+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIDE7DQo+Pj4+ICsNCj4+Pj4g
K8KgwqDCoCBjYXNlIFZSQU5HRTMyKEdJQ0RfSVBSSU9SSVRZUm5FLCBHSUNEX0lQUklPUklUWVJu
RU4pOg0KPj4+PiArwqDCoMKgIHsNCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHVpbnQzMl90IGlwcmlv
cml0eXI7DQo+Pj4+ICvCoMKgwqDCoMKgwqDCoCB1aW50OF90IHJhbmtfaW5kZXg7DQo+Pj4+ICsN
Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgIGlmICggZGFidC5zaXplICE9IERBQlRfQllURSAmJiBkYWJ0
LnNpemUgIT0gREFCVF9XT1JEICkNCj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZ290byBi
YWRfd2lkdGg7DQo+Pj4+ICvCoMKgwqDCoMKgwqDCoCByYW5rID0gdmdpY19leHRfcmFua19vZmZz
ZXQodiwgOCwgcmVnIC0gR0lDRF9JUFJJT1JJVFlSbkUsDQo+Pj4+IERBQlRfV09SRCk7DQo+Pj4+
ICvCoMKgwqDCoMKgwqDCoCBpZiAoIHJhbmsgPT0gTlVMTCApDQo+Pj4+ICvCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgIGdvdG8gcmVhZF9hc196ZXJvOw0KPj4+PiArwqDCoMKgwqDCoMKgwqAgcmFua19p
bmRleCA9IFJFR19SQU5LX0lOREVYKDgsIHJlZyAtIEdJQ0RfSVBSSU9SSVRZUm5FLA0KPj4+PiBE
QUJUX1dPUkQpOw0KPj4+PiArDQo+Pj4+ICvCoMKgwqDCoMKgwqDCoCB2Z2ljX2xvY2tfcmFuayh2
LCByYW5rLCBmbGFncyk7DQo+Pj4+ICvCoMKgwqDCoMKgwqDCoCBpcHJpb3JpdHlyID0gQUNDRVNT
X09OQ0UocmFuay0+aXByaW9yaXR5cltyYW5rX2luZGV4XSk7DQo+Pj4+ICvCoMKgwqDCoMKgwqDC
oCB2Z2ljX3VubG9ja19yYW5rKHYsIHJhbmssIGZsYWdzKTsNCj4+Pj4gKw0KPj4+PiArwqDCoMKg
wqDCoMKgwqAgKnIgPSB2cmVnX3JlZzMyX2V4dHJhY3QoaXByaW9yaXR5ciwgaW5mbyk7DQo+Pj4+
ICsNCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiAxOw0KPj4+PiArwqDCoMKgIH0NCj4+Pj4g
Kw0KPj4+PiArwqDCoMKgIGNhc2UgVlJBTkdFMzIoR0lDRF9JQ0ZHUm5FLCBHSUNEX0lDRkdSbkVO
KToNCj4+Pj4gK8KgwqDCoCB7DQo+Pj4+ICvCoMKgwqDCoMKgwqDCoCB1aW50MzJfdCBpY2ZncjsN
Cj4+Pj4gKw0KPj4+PiArwqDCoMKgwqDCoMKgwqAgaWYgKCBkYWJ0LnNpemUgIT0gREFCVF9XT1JE
ICkNCj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZ290byBiYWRfd2lkdGg7DQo+Pj4+ICvC
oMKgwqDCoMKgwqDCoCByYW5rID0gdmdpY19leHRfcmFua19vZmZzZXQodiwgMiwgcmVnIC0gR0lD
RF9JQ0ZHUm5FLA0KPj4+PiBEQUJUX1dPUkQpOw0KPj4+PiArwqDCoMKgwqDCoMKgwqAgaWYgKCBy
YW5rID09IE5VTEwgKQ0KPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBnb3RvIHJlYWRfYXNf
emVybzsNCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHZnaWNfbG9ja19yYW5rKHYsIHJhbmssIGZsYWdz
KTsNCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIGljZmdyID0gcmFuay0+aWNmZ1tSRUdfUkFOS19JTkRF
WCgyLCByZWcgLSBHSUNEX0lDRkdSbkUsDQo+Pj4+IERBQlRfV09SRCldOw0KPj4+PiArwqDCoMKg
wqDCoMKgwqAgdmdpY191bmxvY2tfcmFuayh2LCByYW5rLCBmbGFncyk7DQo+Pj4+ICsNCj4+Pj4g
K8KgwqDCoMKgwqDCoMKgICpyID0gdnJlZ19yZWczMl9leHRyYWN0KGljZmdyLCBpbmZvKTsNCj4+
Pj4gKw0KPj4+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIDE7DQo+Pj4+ICvCoMKgwqAgfQ0KPj4+
PiArI2VuZGlmDQo+Pj4+ICsNCj4+Pj4gwqDCoMKgwqDCoMKgIGRlZmF1bHQ6DQo+Pj4+IMKgwqDC
oMKgwqDCoMKgwqDCoMKgIHByaW50ayhYRU5MT0dfR19FUlINCj4+Pj4gwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoCAiJXB2OiAlczogdW5oYW5kbGVkIHJlYWQgciVkIG9mZnNldCAl
IzA4eFxuIiwNCj4+Pj4gQEAgLTc4Miw2ICs4NTMsOSBAQCBzdGF0aWMgaW50IF9fdmdpY192M19k
aXN0cl9jb21tb25fbW1pb193cml0ZShjb25zdA0KPj4+PiBjaGFyICpuYW1lLCBzdHJ1Y3QgdmNw
dSAqdiwNCj4+Pj4gwqDCoMKgwqDCoMKgIHsNCj4+Pj4gwqDCoMKgwqDCoMKgIGNhc2UgVlJBTkdF
MzIoR0lDRF9JR1JPVVBSLCBHSUNEX0lHUk9VUFJOKToNCj4+Pj4gwqDCoMKgwqDCoMKgIGNhc2Ug
VlJBTkdFMzIoR0lDRF9JR1JQTU9EUiwgR0lDRF9JR1JQTU9EUk4pOg0KPj4+PiArI2lmZGVmIENP
TkZJR19HSUNWM19FU1BJDQo+Pj4+ICvCoMKgwqAgY2FzZSBWUkFOR0UzMihHSUNEX0lHUk9VUFJu
RSwgR0lDRF9JR1JPVVBSbkVOKToNCj4+Pj4gKyNlbmRpZg0KPj4+PiDCoMKgwqDCoMKgwqDCoMKg
wqDCoCAvKiBXZSBkbyBub3QgaW1wbGVtZW50IHNlY3VyaXR5IGV4dGVuc2lvbnMgZm9yIGd1ZXN0
cywgd3JpdGUNCj4+Pj4gaWdub3JlICovDQo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIGdvdG8g
d3JpdGVfaWdub3JlXzMyOw0KPj4+PiBAQCAtODcxLDYgKzk0NSw5OSBAQCBzdGF0aWMgaW50DQo+
Pj4+IF9fdmdpY192M19kaXN0cl9jb21tb25fbW1pb193cml0ZShjb25zdCBjaGFyICpuYW1lLCBz
dHJ1Y3QgdmNwdSAqdiwNCj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqAgdmdpY191bmxvY2tfcmFu
ayh2LCByYW5rLCBmbGFncyk7DQo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiAxOw0K
Pj4+PiArI2lmZGVmIENPTkZJR19HSUNWM19FU1BJDQo+Pj4+ICvCoMKgwqAgY2FzZSBWUkFOR0Uz
MihHSUNEX0lTRU5BQkxFUm5FLCBHSUNEX0lTRU5BQkxFUm5FTik6DQo+Pj4+ICvCoMKgwqDCoMKg
wqDCoCBpZiAoIGRhYnQuc2l6ZSAhPSBEQUJUX1dPUkQgKQ0KPj4+PiArwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoCBnb3RvIGJhZF93aWR0aDsNCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHJhbmsgPSB2Z2lj
X2V4dF9yYW5rX29mZnNldCh2LCAxLCByZWcgLSBHSUNEX0lTRU5BQkxFUm5FLA0KPj4+PiBEQUJU
X1dPUkQpOw0KPj4+PiArwqDCoMKgwqDCoMKgwqAgaWYgKCByYW5rID09IE5VTEwgKQ0KPj4+PiAr
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBnb3RvIHdyaXRlX2lnbm9yZTsNCj4+Pj4gK8KgwqDCoMKg
wqDCoMKgIHZnaWNfbG9ja19yYW5rKHYsIHJhbmssIGZsYWdzKTsNCj4+Pj4gK8KgwqDCoMKgwqDC
oMKgIHRyID0gcmFuay0+aWVuYWJsZTsNCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHZyZWdfcmVnMzJf
c2V0Yml0cygmcmFuay0+aWVuYWJsZSwgciwgaW5mbyk7DQo+Pj4+ICvCoMKgwqDCoMKgwqDCoCB2
Z2ljX2VuYWJsZV9pcnFzKHYsIChyYW5rLT5pZW5hYmxlKSAmICh+dHIpLA0KPj4+PiBFWFRfUkFO
S19JRFgyTlVNKHJhbmstPmluZGV4KSk7DQo+Pj4+ICvCoMKgwqDCoMKgwqDCoCB2Z2ljX3VubG9j
a19yYW5rKHYsIHJhbmssIGZsYWdzKTsNCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiAxOw0K
Pj4+PiArDQo+Pj4+ICvCoMKgwqAgY2FzZSBWUkFOR0UzMihHSUNEX0lDRU5BQkxFUm5FLCBHSUNE
X0lDRU5BQkxFUm5FTik6DQo+Pj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAoIGRhYnQuc2l6ZSAhPSBE
QUJUX1dPUkQgKQ0KPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBnb3RvIGJhZF93aWR0aDsN
Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHJhbmsgPSB2Z2ljX2V4dF9yYW5rX29mZnNldCh2LCAxLCBy
ZWcgLSBHSUNEX0lDRU5BQkxFUm5FLA0KPj4+PiBEQUJUX1dPUkQpOw0KPj4+PiArwqDCoMKgwqDC
oMKgwqAgaWYgKCByYW5rID09IE5VTEwgKQ0KPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBn
b3RvIHdyaXRlX2lnbm9yZTsNCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHZnaWNfbG9ja19yYW5rKHYs
IHJhbmssIGZsYWdzKTsNCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHRyID0gcmFuay0+aWVuYWJsZTsN
Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHZyZWdfcmVnMzJfY2xlYXJiaXRzKCZyYW5rLT5pZW5hYmxl
LCByLCBpbmZvKTsNCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHZnaWNfZGlzYWJsZV9pcnFzKHYsICh+
cmFuay0+aWVuYWJsZSkgJiB0ciwNCj4+Pj4gRVhUX1JBTktfSURYMk5VTShyYW5rLT5pbmRleCkp
Ow0KPj4+PiArwqDCoMKgwqDCoMKgwqAgdmdpY191bmxvY2tfcmFuayh2LCByYW5rLCBmbGFncyk7
DQo+Pj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gMTsNCj4+Pj4gKw0KPj4+PiArwqDCoMKgIGNh
c2UgVlJBTkdFMzIoR0lDRF9JU1BFTkRSbkUsIEdJQ0RfSVNQRU5EUm5FTik6DQo+Pj4+ICvCoMKg
wqDCoMKgwqDCoCBpZiAoIGRhYnQuc2l6ZSAhPSBEQUJUX1dPUkQgKQ0KPj4+PiArwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoCBnb3RvIGJhZF93aWR0aDsNCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHJhbmsg
PSB2Z2ljX2V4dF9yYW5rX29mZnNldCh2LCAxLCByZWcgLSBHSUNEX0lTUEVORFJuRSwNCj4+Pj4g
REFCVF9XT1JEKTsNCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIGlmICggcmFuayA9PSBOVUxMICkNCj4+
Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZ290byB3cml0ZV9pZ25vcmU7DQo+Pj4+ICsNCj4+
Pj4gK8KgwqDCoMKgwqDCoMKgIHZnaWNfc2V0X2lycXNfcGVuZGluZyh2LCByLCBFWFRfUkFOS19J
RFgyTlVNKHJhbmstPmluZGV4KSk7DQo+Pj4+ICsNCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHJldHVy
biAxOw0KPj4+PiArDQo+Pj4+ICvCoMKgwqAgY2FzZSBWUkFOR0UzMihHSUNEX0lDUEVORFJuRSwg
R0lDRF9JQ1BFTkRSbkVOKToNCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIGlmICggZGFidC5zaXplICE9
IERBQlRfV09SRCApDQo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGdvdG8gYmFkX3dpZHRo
Ow0KPj4+PiArwqDCoMKgwqDCoMKgwqAgcmFuayA9IHZnaWNfZXh0X3Jhbmtfb2Zmc2V0KHYsIDEs
IHJlZyAtIEdJQ0RfSUNQRU5EUm5FLA0KPj4+PiBEQUJUX1dPUkQpOw0KPj4+PiArwqDCoMKgwqDC
oMKgwqAgaWYgKCByYW5rID09IE5VTEwgKQ0KPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBn
b3RvIHdyaXRlX2lnbm9yZTsNCj4+Pj4gKw0KPj4+PiArwqDCoMKgwqDCoMKgwqAgdmdpY19jaGVj
a19pbmZsaWdodF9pcnFzX3BlbmRpbmcodiwgRVhUX1JBTktfSURYMk5VTShyYW5rLQ0KPj4+Pj4g
aW5kZXgpLCByKTsNCj4+Pj4gKw0KPj4+PiArwqDCoMKgwqDCoMKgwqAgZ290byB3cml0ZV9pZ25v
cmU7DQo+Pj4+ICvCoMKgwqAgY2FzZSBWUkFOR0UzMihHSUNEX0lTQUNUSVZFUm5FLCBHSUNEX0lT
QUNUSVZFUm5FTik6DQo+Pj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAoIGRhYnQuc2l6ZSAhPSBEQUJU
X1dPUkQgKQ0KPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBnb3RvIGJhZF93aWR0aDsNCj4+
Pj4gK8KgwqDCoMKgwqDCoMKgIHByaW50ayhYRU5MT0dfR19FUlINCj4+Pj4gK8KgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqAgIiVwdjogJXM6IHVuaGFuZGxlZCB3b3JkIHdyaXRlICUjIlBSSXJl
Z2lzdGVyIiB0bw0KPj4+PiBJU0FDVElWRVIlZEVcbiIsDQo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgIHYsIG5hbWUsIHIsIHJlZyAtIEdJQ0RfSVNBQ1RJVkVSbkUpOw0KPj4+PiAr
wqDCoMKgwqDCoMKgwqAgcmV0dXJuIDA7DQo+Pj4NCj4+PiBHdWVzdCB3cml0ZSBhY2Nlc3MgdG8g
R0lDRF9JU0FDVElWRVI8bj5FIHdpbGwgbGVhZCB0byBhYm9ydC4gQnV0LCBJIGtub3cNCj4+PiB5
b3UganVzdCByZXBlYXRlZCB0aGUgbG9naWMgZm9yIHJlZ3VsYXIgR0lDRF9JU0FDVElWRVI8bj4u
DQo+Pj4NCj4+Pg0KPj4NCj4+IENvdWxkIHlvdSBwbGVhc2UgY2xhcmlmeSB0aGUgc2NlbmFyaW8g
aW4gd2hpY2ggaXQgbGVhZHMgdG8gYW4gYWJvcnQ/DQo+PiBTaW5jZSBpdCBpcyBhY3R1YWxseSBh
IHN0dWIgY2FzZSwgaXQgc2hvdWxkIGp1c3QgcHJpbnQgYW4gZXJyb3IgbWVzc2FnZQ0KPj4gYW5k
IHRoYXQncyBpdC4uDQo+IA0KPiAicmV0dXJuIDA7IiB3aWxsIGxlYWQgdG8gaW5qZWN0aW5nIGEg
ZmF1bHQgaW50byB0aGUgZ3Vlc3QuDQo+IA0KPiAgwqBEbyB5b3UgbWVhbiB0aGF0LCBpbiB0aGlz
IGNhc2UsIHdlIG5lZWQgdG8gZ290bw0KPj4gd3JpdGVfaWdub3JlXzMyIGxhYmVsIGluc3RlYWQg
b2YgcmV0dXJuaW5nIDA/DQo+IA0KPiBNeSBjb21tZW50IHdhcyBub3QgYSBkaXJlY3QgcmVxdWVz
dCB0byBjaGFuZ2UgYW55dGhpbmcsIGJ1dCByYXRoZXIgDQo+IHRoaW5raW5nIG91dCBsb3VkLg0K
PiANCj4gVW5mb3J0dW5hbGx5LCBJIGNhbm5vdCBhbnN3ZXIgd2h5IHJlZ3VsYXIgR0lDRF9JU0FD
VElWRVI8bj4gaXMgZW11bGF0ZWQNCj4gaW4gdGhhdCB3YXksIGJ1dCBwZXJoYXBzIHRoZSBpbmpl
Y3RpbmcgZmF1bHQgaW50byB0aGUgZ3Vlc3QgaXMgdGhlIA0KPiBsZXNzZXIgZXZpbCB0aGFuIGVt
dWxhdGluZyBpdCBpbmNvcnJlY3RseS4uLg0KPiANCj4gSW50ZXJlc3RpbmdseSwgZm9yIEdJQ3Yy
IHdlIGhhdmUgYSBzbGlnaGx5IHJlbGF4ZWQgdmVyc2lvbjsgaXQgbG9va3MgDQo+IGxpa2Ugd3Jp
dGluZyAwIHdpbGwgbm90IGNhdXNlIGFuIGFib3J0IGFuZCB3aWxsIGJlIFdJLg0KPiAyNWY5ZTgw
MjAxZjM2ODhlMGM0ZDVjNGU0M2U0YjYxNDNiNDQxYzUyDQo+IHhlbi9hcm06IElnbm9yZSB3cml0
ZSB0byBHSUNEX0lTQUNUSVZFUm4gcmVnaXN0ZXJzICh2Z2ljLXYyKQ0KPiANCj4gTm93LCB3aXRo
IHRoZSBpbnRyb2R1Y3Rpb24gb2YgZXh0ZW5kZWQgR0lDRF9JU0FDVElWRVI8bj5FIHlvdSByZXRh
aW5lZCANCj4gdGhlIGxvZ2ljLiBPbmUgdGhpbmcgdGhhdCBuZWVkcyBtZW50aW9uaW5nIGlzIHRo
YXQgYmVmb3JlIHlvdXIgc2VyaWVzLA0KPiBndWVzdCB3cml0ZSBhY2Nlc3MgdG8gZXh0ZW5kZWQg
R0lDRF9JU0FDVElWRVI8bj5FIHdvdWxkIGJlIFdJLCBidXQNCj4gd2l0aCB5b3VyIHNlcmllcyBh
bmQgQ09ORklHX0dJQ1YzX0VTUEk9eSBpdCB3aWxsIGJlIGFuIGFib3J0IGV2ZW4NCj4gaWYgcnVu
bmluZyBvbiBHSUMzIEhXIHdoZXJlIGVTUEkgaXMgbm90IHN1cHBvcnRlZC4NCj4gDQo+IEF0IGxl
YXN0LCBJIHdvdWxkIG1lbnRpb24gdGhhdCBpbiB0aGUgcGF0Y2ggZGVzY3JpcHRpb24uDQo+IA0K
PiANCg0KVGhpcyBpcyByZWFsbHkgaW50ZXJlc3RpbmcuLg0KSSB0aGluayBpdCBtaWdodCBiZSB3
b3J0aCBpbnRyb2R1Y2luZyBvbmUgbW9yZSBlU1BJLXNwZWNpZmljIGZpZWxkIGZvciANCnZnaWMs
IHN1Y2ggYXMgYSBib29sIGhhc19lcHNpIChvciBieSBjaGVja2luZyBpZiBucl9lc3BpcyBpcyBu
b24temVybykuIA0KSW4gY2FzZXMgd2hlcmUgdGhlIGhhcmR3YXJlIGRvZXMgbm90IHN1cHBvcnQg
ZVNQSXMgKG9yIGVTUElzIGFyZSBub3QgDQphc3NpZ25lZCB0byB0aGUgZ3Vlc3QgZG9tYWluKSwg
YnV0IHRoZSBlU1BJIGNvbmZpZyBpcyBlbmFibGVkLCB3ZSBjb3VsZCANCmdvIHRvIHdyaXRlX3Jl
c2VydmVkIGZvciBhbGwgZVNQSS1zcGVjaWZpYyByZWdpc3RlcnMuIFRoaXMgd291bGQgDQpkZWZp
bml0ZWx5IHdvcmsgdGhlIHNhbWUgd2F5IGl0IGRvZXMgbm93LiBBZGRpdGlvbmFsbHksIHdlIGNv
dWxkIHJldHVybiANClJBWiBpbiB0aGUgc2FtZSBjYXNlIHdoaWxlIHJlYWRpbmcgZVNQSS1zcGVj
aWZpYyByZWdpc3RlcnMuDQoNClRoaXMgY2FuIGJlIGRvbmUgbGlrZSB0aGlzIChmb3IgbW1pb193
cml0ZSk6DQogICAgIGNhc2UgVlJBTkdFMzIoR0lDRF9JU0VOQUJMRVJuRSwgR0lDRF9JU0VOQUJM
RVJuRU4pOg0KICAgICAgICAgaWYgKHYtPmRvbWFpbi0+YXJjaC52Z2ljLm5yX2VzcGkgPT0gMCkN
CiAgICAgICAgICAgICBnb3RvIHdyaXRlX2lnbm9yZTsNCiAgICAgICAgIGlmICggZGFidC5zaXpl
ICE9IERBQlRfV09SRCApDQogICAgICAgICAgICAgZ290byBiYWRfd2lkdGg7DQoNCkFuZCBmb3Ig
bW1pb19yZWFkOg0KICAgICBjYXNlIFZSQU5HRTMyKEdJQ0RfSVNFTkFCTEVSbkUsIEdJQ0RfSVNF
TkFCTEVSbkVOKToNCiAgICAgICAgIGlmICh2LT5kb21haW4tPmFyY2gudmdpYy5ucl9lc3BpID09
IDApDQogICAgICAgICAgICAgZ290byByZWFkX2FzX3plcm87DQogICAgICAgICBpZiAoIGRhYnQu
c2l6ZSAhPSBEQUJUX1dPUkQgKQ0KICAgICAgICAgICAgIGdvdG8gYmFkX3dpZHRoOw0KDQooYW5k
IGZvciBvdGhlciBlU1BJIHJlZ2lzdGVycywgaW5jbHVkaW5nIEdJQ0RfSVNBQ1RJVkVSPG4+RSkN
CkFsc28gd2l0aCBoYXNfZXBzaSwgaXQgd291bGQgYmUgbXVjaCBlYXNpZXI6DQogICAgICAgICBp
ZiAoIXYtPmRvbWFpbi0+YXJjaC52Z2ljLmhhc19lcHNpKQ0KLi4uLg0KDQoNCldoYXQgZG8geW91
IHRoaW5rIGFib3V0IHRoaXM/DQoNCj4+DQo+Pj4+ICsNCj4+Pj4gK8KgwqDCoCBjYXNlIFZSQU5H
RTMyKEdJQ0RfSUNBQ1RJVkVSbkUsIEdJQ0RfSUNBQ1RJVkVSbkVOKToNCj4+Pj4gK8KgwqDCoMKg
wqDCoMKgIHByaW50ayhYRU5MT0dfR19FUlINCj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqAgIiVwdjogJXM6IHVuaGFuZGxlZCB3b3JkIHdyaXRlICUjIlBSSXJlZ2lzdGVyIiB0bw0K
Pj4+PiBJQ0FDVElWRVIlZEVcbiIsDQo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
IHYsIG5hbWUsIHIsIHJlZyAtIEdJQ0RfSUNBQ1RJVkVSKTsNCj4+Pg0KPj4+IHMvR0lDRF9JQ0FD
VElWRVIvR0lDRF9JQ0FDVElWRVJuRQ0KPj4+DQo+Pj4NCj4+DQo+PiBJIHdpbGwgZml4IHRoYXQg
aW4gVjQuDQo+Pg0KPj4+PiArwqDCoMKgwqDCoMKgwqAgZ290byB3cml0ZV9pZ25vcmVfMzI7DQo+
IA0KPiANCj4gW3NuaXBdDQoNCkJlc3QgcmVnYXJkcywNCkxlb25pZA==


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 14:46:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 14:46:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096228.1450982 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urHQ3-0003cr-Q8; Wed, 27 Aug 2025 14:46:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096228.1450982; Wed, 27 Aug 2025 14:46:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urHQ3-0003ck-LF; Wed, 27 Aug 2025 14:46:35 +0000
Received: by outflank-mailman (input) for mailman id 1096228;
 Wed, 27 Aug 2025 14:46:34 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1urHQ2-0003ce-8a
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 14:46:34 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1urHPw-009HEB-1t;
 Wed, 27 Aug 2025 14:46:28 +0000
Received: from [2a01:e0a:1da:8420:b77:bd5:6e45:7633] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1urHPw-004AUL-1c;
 Wed, 27 Aug 2025 14:46: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Transfer-Encoding:
	Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date;
	bh=67Md2EoQIxu9KYmikqABR3avTGnCaj+4vTuii75qCgI=; b=sPo673c7oOD5lZw4pOjv/W8M0h
	3InM0TKrHjmvDP/GT6FFEKbD5ZYofTmCA7Gs5dQPRpk9xeFGI//iCGs1noolfa6+fJXbuANoTfTTJ
	r1LBw0LElNDPaYmGRV4B/36uwEb6YCrT6FrKmyBCEzG5B+SgWL/GgwGgb7AXbI3xU3zI=;
Date: Wed, 27 Aug 2025 16:46:26 +0200
From: Anthony PERARD <anthony@xenproject.org>
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: [Reminder] Feature Freeze is Fri Aug 29, 2025
Message-ID: <aK8aQhpOYWcm3EzR@l14>
References: <07fc7122-d0ac-4dbe-800d-89086a07005b@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <07fc7122-d0ac-4dbe-800d-89086a07005b@gmail.com>

On Mon, Aug 25, 2025 at 05:50:02PM +0200, Oleksii Kurochko wrote:
> Hello community,
> 
> Iâ€™d like to remind everyone that the Feature Freeze deadline is approaching,
> and we still have some outstanding requests from the community for patch series
> to be merged into 4.21:
> 
> 1. Enable guest suspend/resume support on ARM via vPSCI [1]
> 2. Introduce SCI SCMI SMC multi-agent support [2]
> 3. Introduce eSPI support [3]
> 4. FRED work: [4], [5], possibly others (?)
> 5. Introduce CONFIG_DOMCTL [6]
> 6. xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE [7]
> 7. Some other patch series I missed.

Do we want to add this following one to the list?
- Allow to build libxl and other tools with json-c instead of yajl
https://lore.kernel.org/xen-devel/20250808145602.41716-1-anthony@xenproject.org/

Cheers,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 14:48:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 14:48:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096237.1450990 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urHRZ-00048k-1Q; Wed, 27 Aug 2025 14:48:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096237.1450990; Wed, 27 Aug 2025 14:48: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 1urHRY-00048d-V6; Wed, 27 Aug 2025 14:48:08 +0000
Received: by outflank-mailman (input) for mailman id 1096237;
 Wed, 27 Aug 2025 14:48:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9AuO=3H=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1urHRY-00048V-3H
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 14:48:08 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d71e94f0-8354-11f0-ae26-e363de0e7a9e;
 Wed, 27 Aug 2025 16:48:06 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-45a1ac7c066so5953605e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 27 Aug 2025 07:48:06 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b66c383b1sm37866455e9.3.2025.08.27.07.48.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Aug 2025 07:48: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>
X-Inumbo-ID: d71e94f0-8354-11f0-ae26-e363de0e7a9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756306085; x=1756910885; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Obdz0x/yj+Spq5okJ7Np12BJQZUL7mGTKCXXm1j+vN0=;
        b=lEQmn7y/0PulsZn6MbeFp5fb6V8Gn4lJtwDS7/DO9Cvhy99/q+zrnNnxzuqPj0YJgV
         4AcQkezycNIs/k4yYCE+kG1tgw2XTyEhIUu7RjelBbIX815Hk8uDjrQlMCl8kWsV88+A
         8xdOukVEty++TsasVCjbPCZhO9MBE/PWFZofA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756306085; x=1756910885;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Obdz0x/yj+Spq5okJ7Np12BJQZUL7mGTKCXXm1j+vN0=;
        b=dyl/MMNjEZsYVEx8FG8FiaJY0hfP4+w+Zk9u9s5KQQE7im3VLGA4Q1HR8GKXTmk9xr
         WX0Fq3EF3KGHIvDKTKgchpe3VpYcxDfGOFRjlVTTJDg9sRviwBRMqZ6s+zpj9OxX7lMv
         3BUVdkpLMGEsQtLMWIz2Lh02Gkj+Xr6uhiVKLGi0dDmwf1VFX9RiZu1kLGwzzRWtHHEG
         7LoCKe0BSk5ObqKoKjTerhaCP1PcaKLINdIcUncd3m2cpFhAhOfv1S82mH8ZrDsIWjsh
         wbkJmHHN/+FhscZFyMpDfo0nXJBhiBlSxd6VuhRtnQAvNdfOkgjAE8zycaxEE/9MzUSX
         VmmA==
X-Gm-Message-State: AOJu0YyeRoeN7bHoqwj5DxRX5PIeDJ2EgDqCDZ2bOucVCfvNc9Sd8mHT
	fEp/I8JAf89NqkZ6GEa4qe/BdWljkFwjKhw1UPD/tZBFf6+udG0F1ZZvULhSG1wYBdc=
X-Gm-Gg: ASbGnctUaUGZaY+U8NffWMjSsQkt3O3Cc8T5PF17CvBEpKKcxlArn43+TQPeFrO+o4P
	rNBlVx7ZivvT68aAX0I4tT7wy1pDwI60d9MrWzAishMoDbLwcn5I3nTCNj6mC/nkqhxyj5FPTDv
	JGuOP0LlL2KNTNbBlH8hqfgVJz3LN5ZEUqoDlH81KT6udU0rL+q2wOuCvYr/cU4HE9zUaobJQc8
	hYx2LjGFALq/Z4iGjK24FfFrwBDTv6AkwUiVHe17IbaCLGcNiiyjpgL4Xk7OXAurQjvYjkBLGk8
	09TmKrv4wK81HkigWSfNyaY4g8X7oLzqOzaTmJ5ITgnMezevDNKBKeZV2HSP3sLbeAbiT0pI6lJ
	/k01WqS7oLAUgm+DrHmcxGU6zHL25NNZ0432+ufwGz79XgqRwqEknZ7oHVRkXy0OYF+C6YcLcVT
	t9arQ=
X-Google-Smtp-Source: AGHT+IFub5R9LZJw+P2GEqnEbL67YdW5VLMTeyQTpVwVMd2JdrU+RLeGXatI33kuY7tMTcV+Axdhrw==
X-Received: by 2002:a05:600c:4443:b0:459:e39e:e5a5 with SMTP id 5b1f17b1804b1-45b6870e392mr51398765e9.5.1756306085297;
        Wed, 27 Aug 2025 07:48:05 -0700 (PDT)
Message-ID: <55b8dcc0-2d16-467d-9d86-ce2d8a3bc7a4@citrix.com>
Date: Wed, 27 Aug 2025 15:48:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [Reminder] Feature Freeze is Fri Aug 29, 2025
To: Anthony PERARD <anthony@xenproject.org>,
 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>
References: <07fc7122-d0ac-4dbe-800d-89086a07005b@gmail.com>
 <aK8aQhpOYWcm3EzR@l14>
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: <aK8aQhpOYWcm3EzR@l14>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 27/08/2025 3:46 pm, Anthony PERARD wrote:
> On Mon, Aug 25, 2025 at 05:50:02PM +0200, Oleksii Kurochko wrote:
>> Hello community,
>>
>> Iâ€™d like to remind everyone that the Feature Freeze deadline is approaching,
>> and we still have some outstanding requests from the community for patch series
>> to be merged into 4.21:
>>
>> 1. Enable guest suspend/resume support on ARM via vPSCI [1]
>> 2. Introduce SCI SCMI SMC multi-agent support [2]
>> 3. Introduce eSPI support [3]
>> 4. FRED work: [4], [5], possibly others (?)
>> 5. Introduce CONFIG_DOMCTL [6]
>> 6. xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE [7]
>> 7. Some other patch series I missed.
> Do we want to add this following one to the list?
> - Allow to build libxl and other tools with json-c instead of yajl
> https://lore.kernel.org/xen-devel/20250808145602.41716-1-anthony@xenproject.org/

Yes.Â  That was requested by downstreams, and is also bordering on a bugfix.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 14:55:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 14:55:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096247.1451000 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urHYV-0005rp-Ne; Wed, 27 Aug 2025 14:55:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096247.1451000; Wed, 27 Aug 2025 14:55: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 1urHYV-0005ri-Ku; Wed, 27 Aug 2025 14:55:19 +0000
Received: by outflank-mailman (input) for mailman id 1096247;
 Wed, 27 Aug 2025 14:55:18 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=n4tM=3H=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1urHYU-0005rc-4d
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 14:55:18 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20626.outbound.protection.outlook.com
 [2a01:111:f403:2412::626])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d67a2799-8355-11f0-aeb2-fb57b961d000;
 Wed, 27 Aug 2025 16:55:16 +0200 (CEST)
Received: from SA1PR03CA0020.namprd03.prod.outlook.com (2603:10b6:806:2d3::17)
 by DS4PR12MB9633.namprd12.prod.outlook.com (2603:10b6:8:27f::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.24; Wed, 27 Aug
 2025 14:55:08 +0000
Received: from SN1PEPF00036F3D.namprd05.prod.outlook.com
 (2603:10b6:806:2d3:cafe::3) by SA1PR03CA0020.outlook.office365.com
 (2603:10b6:806:2d3::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.16 via Frontend Transport; Wed,
 27 Aug 2025 14:55:08 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SN1PEPF00036F3D.mail.protection.outlook.com (10.167.248.21) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Wed, 27 Aug 2025 14:55:07 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 27 Aug
 2025 09:55:03 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 27 Aug
 2025 09:55:03 -0500
Received: from [172.31.63.243] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 27 Aug 2025 09:55:03 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d67a2799-8355-11f0-aeb2-fb57b961d000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=S/fL032FSEvLMbvzC+B5Mphc8EVRWa1lZwhDdYNIjFElhagNEZMJkLvfrZhPSh8+NHlcRSyAzwIaZiVeAuGvAwGExRF9CMEllpKqsnpcNqzpvUnd821DlUtJNDU1ql18EAKripCRsIH0TMHKhzYRDf2eW+GvoRJ4m7o/eUYixF+HwtvJy3f/LH/7gy6EBKtfY5BIuNGI7euVGbua1aZPftQ9R6SnPEpwLGzvYy+Q8Sez14pVT0khJRsufnwpGaUrgfS4BWeWTViAPag6s5eqCLby3D/H2zNvIivEDeWJFye9dMF5bYHaMv5y+29AcrXjYEF1dujAeUN9JyY/j/ew1w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ADXZcLf9FtXIX2tRMjXLefZLKu9rniHrsyD14pK8KRs=;
 b=vRTQPrxuf+qBC1+a2IivQog5w3KVZ9182lU6yUOVltQqGG+zthMQM8cqOdv5Aal0j9NCed9aUJUdCsqtFszrOpgYmVD0FV9f058N3o3XcXW3j29WbbfKTHtl58Vsakce8IlGr7Obeoc3hCePrrgq4t5C5Le6Top4HO/i42b15SAGXDZaE2hjWTYqyB26L8LIF6eF/4Mf348OQZcPfxKyc9gPhoc9KOlbN5xjosk6vMh14QcoiFg3kAORQs8fd9sGRaWSnoMVHrP4ma2gesSnPI2WmkncwSndKL6gtkwdZfLB7l3sTWbHjwBvmvTZkxlyk46dnHC0hXErlKvSOCS0QQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=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=ADXZcLf9FtXIX2tRMjXLefZLKu9rniHrsyD14pK8KRs=;
 b=cGTQOStP9mb3W6ffUz/cXJUxG6P75EguXU97vMpaWbUc866rvF6QScd/6W2fZTIporOaWscaZnMtpIP07wZeM9I59xSVb5fg4i/HXwkDskzyZg5LbvphQeqCkXLsk4DyFUojxSALfqVF3B52BAwunqqeeNBDVzRA4MtnxFb6FpM=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <ade097f1-af8e-4869-a894-284d8b741d40@amd.com>
Date: Wed, 27 Aug 2025 10:55:35 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 01/11] xl: move printf_info prototype to an header
To: Anthony PERARD <anthony@xenproject.org>, <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@vates.tech>
References: <20250808145602.41716-1-anthony@xenproject.org>
 <20250808145602.41716-2-anthony@xenproject.org>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20250808145602.41716-2-anthony@xenproject.org>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF00036F3D:EE_|DS4PR12MB9633:EE_
X-MS-Office365-Filtering-Correlation-Id: 3f7864be-fbb1-4de3-eefd-08dde579b6e3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|82310400026|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?dUlhcmRiSm5PcGNVdzhkSE1GR3NLT2pESGxBMzF4Mko0VW5UVS9BSFdnMVVw?=
 =?utf-8?B?WUI1MHpSUEQ2bFRrQlJLYjlBbHFzVEFqQkhXeUc5akNUK21LazhIK1ZOSFJ1?=
 =?utf-8?B?WkFhQ094YmFZalc5aTBPZUU0UEZLRGNyQ2tYaldaKy85VDRKQ2pwRjlhb2JP?=
 =?utf-8?B?WGFGTEFnQlMrMGZYemtVTzJqSkQxY2orWWFjS05QcE90Vm5DS3FDRTR5S1hh?=
 =?utf-8?B?TXFUaEN2UFpMV2xoRXVYeDRlYVNJTzJ3UEtHY0JsZm1Tc0hvWHE0VWRTajly?=
 =?utf-8?B?RjJGTmtnbFpyUE5WZzlZdmdueHlxa25KV1RxWisxNUZRL3VDMVEveTdZZGRn?=
 =?utf-8?B?VlFzQU5aenU1RGxZelZsNEFNSUV3akpSbjZhTXBSQ01YQjNDQmlpY1NaY3RK?=
 =?utf-8?B?ZGFoUE1uQ01mOHI0cEhTSVVjaThIaVE4aktuQzlyZ3lnRFlmcXVQZXZscEtK?=
 =?utf-8?B?U2k1L0UyNUZQWVBlNVZGRE9OWFIwbWhaSGpQRUNPckFCalVrTFo0ODR4eW9m?=
 =?utf-8?B?VGRuYlBsdk8vankyaGI1WlNnRDhKSW5EVElIM0ZjVnF6Z2FoZmY0Yk1Dclc4?=
 =?utf-8?B?bW9yTVNiMC9FdWZWT2F4NnIwenlubzhjWGlHYjlaQU5zaEpIcXlOUndnbHQ3?=
 =?utf-8?B?bzkrc3B5T0E1djFHTkJKRC9lc2l6NDN2MHhlbUdlL1VyRDk4MXprVmdlRUxx?=
 =?utf-8?B?UE5VbTI2OStCNXkyalNmakVuY3hiN2M4L3laUWVjNkExdkFYbTl2YVR4Qndo?=
 =?utf-8?B?cjFZTjJJMm9vNURmSEUxYmZZNjFmWDlLVFRLZTRrcjR5anRtMnhCeFlJeWxx?=
 =?utf-8?B?anpMRko3cWNqMTlDTjNXUTgweWc0QWpKZmhHK3dyZkpHK3E4K3MxRkVFMmpO?=
 =?utf-8?B?eFVRN3QyY1ZMa2FnaUp0aTVuajVGbjlDcmdpTW45VFRhWk9QbW5IdzQ2aTVH?=
 =?utf-8?B?ODlkTDcwUzMzUVJTN0dHbE41MjlPNUZDTXhmRDNzNmo3Yk5tSDA3WWpQbUFB?=
 =?utf-8?B?emJLa2psLzZ6ZTlrTXUzWWtLT3VwRXZYZ0NvOW82Wnd0MEhMUGYxNHRrcHhZ?=
 =?utf-8?B?SWZIa3FCVGdlYmxRdXFpNDdEVWIyMi9oZ0hHelJLdjBkaVkyQkMvUk5PMEpm?=
 =?utf-8?B?V0FCY2paZEkyVVNDWTV4SFY4TmMxcnVLRWFCTlpkenhjSFlna0hiYUxGL3BM?=
 =?utf-8?B?blBUOGk4alppbTZ4S1FJb1Y2ckY4RXlNMHp6ak9ENkY1SG9rUTI0cWRyb09X?=
 =?utf-8?B?YXEwa2ovL2lSSUlZZjd2ZzdEMzN3OVg3VzZFVllLdlBmam1LcTlBdG8zVGdF?=
 =?utf-8?B?cllhWEFqVTJjSGlsckd5dFNGL2djN2N3aDBlSlRMME1wZy90bXFzTko3M2h1?=
 =?utf-8?B?QVpZc3dHMys5NVVYUzBTR05jTy9GaWl2cS9leWcvQUg1WU5KaVZ5bnRPY3JS?=
 =?utf-8?B?dy9MQVlVUzVFZmhZS3UvT2doWlBxakVXSStqaFFocWl0RU1vQTdYQmNzREVE?=
 =?utf-8?B?NHdza29ZaDlIejlkR0I0VVhpVGdVRjEwNEw4VUI5clhIRXFpUGtRZlJaZmQv?=
 =?utf-8?B?aFhML0VHZGsxa3JJQ1BlQUh4UUkra2RONm1XL0UrYzNVc0Ywdy9BU1Z0RXd5?=
 =?utf-8?B?UFQ0aEYwbmhLRDVZSWpMSDlINXFWZW9hek95OHd2YjhSSXVtTjdhZFdBVzRJ?=
 =?utf-8?B?cUNaK3BvNXhMcEZ0YTRlQmNFVlBDdVB0dXdtUTh6d2dIYjJKVXRzVW1HYkZE?=
 =?utf-8?B?emJrZ2VJdGovZGU3Z3BMdGZDbk9LZ05KL0thZys1MTIweFgya1NPZWJBcGcr?=
 =?utf-8?B?c2dBZHRubHExaUtOVUJ3dXRiam9OY1NORmR5RTVpU1hHR2MvdnBTYzc0T2Fp?=
 =?utf-8?B?MU1MQ0xBb2pDNWJVbWJYaTlmT2V0dENiMFZOWmw0a3Vmc3BXVEhOQ2tzNEQr?=
 =?utf-8?B?cDlLMnRoL3VCL1ptSE1TNDNyOThmYnJMZ1UyTHEzRlMyekJBZWxiY0dJc0VR?=
 =?utf-8?B?TTUxaU1nb01ZOFkzcE1GNFdUOFovWFkzZVJBem5OUEhTZWdrUEtkaDhwQXZi?=
 =?utf-8?Q?wWkJUb?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Aug 2025 14:55:07.7939
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3f7864be-fbb1-4de3-eefd-08dde579b6e3
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF00036F3D.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR12MB9633

On 2025-08-08 10:55, Anthony PERARD wrote:
> From: Anthony PERARD <anthony.perard@vates.tech>
> 
> In a single place.
> 
> Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 14:55:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 14:55:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096248.1451011 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urHYi-00069v-VW; Wed, 27 Aug 2025 14:55:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096248.1451011; Wed, 27 Aug 2025 14:55: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 1urHYi-00069o-S2; Wed, 27 Aug 2025 14:55:32 +0000
Received: by outflank-mailman (input) for mailman id 1096248;
 Wed, 27 Aug 2025 14:55:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=n4tM=3H=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1urHYg-000691-Rs
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 14:55:30 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on2060b.outbound.protection.outlook.com
 [2a01:111:f403:2412::60b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ddf11d7d-8355-11f0-ae26-e363de0e7a9e;
 Wed, 27 Aug 2025 16:55:28 +0200 (CEST)
Received: from DM6PR11CA0005.namprd11.prod.outlook.com (2603:10b6:5:190::18)
 by CH0PR12MB8463.namprd12.prod.outlook.com (2603:10b6:610:187::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Wed, 27 Aug
 2025 14:55:24 +0000
Received: from SN1PEPF00036F3F.namprd05.prod.outlook.com
 (2603:10b6:5:190:cafe::c2) by DM6PR11CA0005.outlook.office365.com
 (2603:10b6:5:190::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.16 via Frontend Transport; Wed,
 27 Aug 2025 14:55:24 +0000
Received: from SATLEXMB04.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_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Wed, 27 Aug 2025 14:55:23 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 27 Aug
 2025 09:55:22 -0500
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.1748.10; Wed, 27 Aug
 2025 07:55:22 -0700
Received: from [172.31.63.243] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 27 Aug 2025 09:55: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>
X-Inumbo-ID: ddf11d7d-8355-11f0-ae26-e363de0e7a9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ciJe9IKyctf0u77Y+mrCOYR3VljjHgPhBxsj/PraJ9TsBPap1Nf7FhTxgDSInZrLoJLoeFpC8FS5zhl5Uk3MOIbhGYvRc7V0qg8rOeU0NKmL1/IsDUjlI+LZiOwQkK2Ku8o9D8eCiwHMEM2mFlAxWHJo8Fh5LHVfLJVDvn5k7GviRuMVPzbdm34EdZ42vJwG65C09Ro6KsGoqH0Q0MurnsAmoUL6IYRIXREY1e0qDB8UKj/sBkUZg3ALdtRYcznS1VKNJ1DjPRfOl+gaNTSbXxfM8qA49WHJ3AXGzEIImmA+35XIrrU4hXEMOgJehBxr9d6XAu1o1cnOhxGhJ+rxtA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=KNfKU4GWh5flFGI2AzG3Eo3XRpidf3UhFzbgjNHV+sA=;
 b=nhYVJsEgF3CRkpKoKp5sdRr0e+JJ0RJ5Kw72EEngE6GN6vUjRZO8Nw0Ugdb4v0FN3Gkm7w5jHQInVRFdG3LRGF5RMdT1LuDTdnnMjg30bsU7vccZr8vJpO0snADfH51gGXow5urMSmJ+MZ9WSmfHRW68PqLM3jLqvq4CxfcHtz+AVljcPlKnHB4wEP3R/ktwpixpbHD4/SStB8qm7vVZ0w441SUkPt0jsGAFRz/MatK9/KQJlQbJXa9LvOPQTlesJWZ4IdveZXpjPk5vPzvDyDiHHDeRUHe/WxWLW9NcATEbs6F0mvU29SeC9pV7/D60bmTTMKEePpdgY92cOHBlbg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=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=KNfKU4GWh5flFGI2AzG3Eo3XRpidf3UhFzbgjNHV+sA=;
 b=M5nViirZgzwbxGdpaljIr+cv5ygOr8TgXyfcxy0WXjdhLznxL4x3O0Pqjlu81BAjCXWu67pbDkgWvceu3dTb4DLR55mOPvMyeIm5DKp4ffydXW29hHQIM9WP5FAb7h0q6S4SByl/ExSZq8nhWS54Hgo/Tb7hve0492hnCW4N440=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <e3d4960f-935f-4b0b-a987-e6850aa51d63@amd.com>
Date: Wed, 27 Aug 2025 10:55:49 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 02/11] libxl: Remove duplicate
 libxl_domain_config_gen_json prototype
To: Anthony PERARD <anthony@xenproject.org>, <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross
	<jgross@suse.com>
References: <20250808145602.41716-1-anthony@xenproject.org>
 <20250808145602.41716-3-anthony@xenproject.org>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20250808145602.41716-3-anthony@xenproject.org>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF00036F3F:EE_|CH0PR12MB8463:EE_
X-MS-Office365-Filtering-Correlation-Id: 6326eb0f-7f8c-4428-e5d9-08dde579c01d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|82310400026|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?NmNVUEZPeVEyR2hhUXNmZmVTeVFlQ0pRUFRqZUszenhJMUhXS2ZENFhXL2R4?=
 =?utf-8?B?UWRIMUhuTzFqWUxFVjdEYmREcDN5R2NZU0V4Y0tyLzhkdkh5bE5tdjRhSmlu?=
 =?utf-8?B?WGdQSnRTa05QUEdYMFJxbWFuS3BNbTd6b2JENW1wOHZBMHVONnY5dStqa0R3?=
 =?utf-8?B?YVNNZE82ak5tUWRPZUdaejUvWnpMNlBFL2Z5ZFgydVFnVUlrNk9IMWxKYjF3?=
 =?utf-8?B?WTNYK09wUDhJU2NSY1V6QmYwRWpaY2R6R25FRUhaSnVBZEc0K3l3WlpHaXVW?=
 =?utf-8?B?UXd0NjJWTnU5UW9NQ0xJYTl3K1FOMHgyK29xZDVRdldpV2xlbFFiamYxUmtY?=
 =?utf-8?B?cUlKSjlJUGplcXp0Y3Z0MzlkMmxUWmh3S1ZvaWl6Q2l0QUdjRStGQ0NaM0t0?=
 =?utf-8?B?ZjlTa2NQbkhwNjRzc0R4cFMyMnF2dlh6dXF5TDVWN0JYeHcwam1vQ3lPV2ta?=
 =?utf-8?B?Ky8xbmZMdU8vdE9JTXVGWGg2OW9TQkJzTjZpTUl3cENjOGNIUllOVXdyNXd4?=
 =?utf-8?B?YVAxYzRkRlZjdHlBMjVyeTZiMFRwUmU4RzhuUUhlVERTZDZ0ekZpVy9YQ1N3?=
 =?utf-8?B?LzZOY3VDNWtJb3N5QituWFMyRXVvQllNYkxtM1VpWXNIamxQRjRTRWtUeFFM?=
 =?utf-8?B?S05jZFU1aVhqWFNrVlhKZUxuL0JXSkc1N0pKbnNTK09QWVdDb1gvV0pVYTBW?=
 =?utf-8?B?aHpnVGRINElsR2tOZGpJcWs1ZnpNaFFMVmtjZ2pQQm9ucXhTV0JlcWY1Wk9q?=
 =?utf-8?B?bnBuaVpiVXYwS2VOeUg2NmVXYXVmMlppRGR4NFhZREVOM2NUY3RuRC9BbGph?=
 =?utf-8?B?ak9INkg2SVZhYUZ5eUJWNDdEZVQ2MmJqNCttUXltOUZJWlkrT2lrK3lvNGZ5?=
 =?utf-8?B?TFFoWWRxUnZMb2J1M1pKYXBwY0JRZ0dqNWdKM3czYzJRQno1ZW1UNDVIWTB3?=
 =?utf-8?B?WFpSKzE4OC8wZ3VTTjZuVEtDd1dCWE15RW1mYmZibWl3SzF5RDE4RE5TUDh2?=
 =?utf-8?B?NUt3QzlydGU5aWw4RVM5ako0R05OaDZKdUJEUTdIbHRBTllMSzRuVDk4L1R2?=
 =?utf-8?B?bi9rbDUxYkx0L0JTYWhVT0xuWUdBWkdFUkRXUlVDTkFMVkVLU3dkZnM2Zjgr?=
 =?utf-8?B?VVUrRWp3ZW4rcndXejFoaE1QbGY0cEJ0UWNvbkEvMHM2YXozODZNOFI3T0xz?=
 =?utf-8?B?Zkp1RjdZYU1kTlVWM1o0Y29MeWVKUnl6MEhVSVNTNEVENzB5eE83TElEZGJp?=
 =?utf-8?B?eUN4dmwrS2VmZjd0RHh2SjhsVWNXRHdLZnBJUFBEZWJqa1lwUGVQM0d1S2l3?=
 =?utf-8?B?VWFmd3ZJeWJUSnliT3J6L1Y0SENTb05URnZFUjZrSFhCLzBzWDhHUmZadmlk?=
 =?utf-8?B?eHBXYjk3VjdTeG9PV3JqeUYxR0dxNHhnWitvT253U0JEajlvRXU3b3U5Zmpq?=
 =?utf-8?B?VHFwSkJTbGJ0UWJ3QzZURUlLWE1iZy9Fd0lTb09ZOEVYRHdWaWdjOWZjaGUz?=
 =?utf-8?B?cU9McDdlWm9HdVV5NjdScmRaYlRNSTFXQlJkTFZ5Zi8zaFEyS1IxeGFyanFP?=
 =?utf-8?B?dnpESzh2MmlXWTR0cjZtRi9aWlgxTHBqUzlQb3ppbVpYeXU2dS96cW40K3pJ?=
 =?utf-8?B?NW1mN2Y1NTlkOWZOdjRCRWdrYXp1bUZvRDEzUkJOZHh1MlVZYXZjSUprSGg2?=
 =?utf-8?B?YU9BaXMyMnFlVisyMFovd3VaRG5WZE50aVpkU29DNlFZM0h6V3RxcW51WlA5?=
 =?utf-8?B?VWd2aGl3TkxWN3ZZbHFZellKcUk0R0s3dTJaaW11YUNjWnl1RVlWZ01vWnNP?=
 =?utf-8?B?bElSRk1sV0xwMjdVSFNubGo2Tng4OHZSaG0wWHRpK1Zmd1pROFo2aGxldzJi?=
 =?utf-8?B?ei9wREVLSm8yYjh2UXRpWjVmN3pKNDIvWGx4ekJOS29pMmFnRHlRQTF5QVAy?=
 =?utf-8?B?ZC9uM2lIOUtsY1RFelB1UVUvU2dIckdraHlSajdTdUl4UTREdm1WVGNtZzNp?=
 =?utf-8?B?SG04Nzl6S2ZxaTFtcnJxZ2NJMHpUMTdkNzNCejhmUkpwSjhKREc5TXNGajcw?=
 =?utf-8?Q?JCeUHd?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(82310400026)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Aug 2025 14:55:23.2745
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 6326eb0f-7f8c-4428-e5d9-08dde579c01d
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=[SATLEXMB04.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: CH0PR12MB8463

On 2025-08-08 10:55, Anthony PERARD wrote:
> From: Anthony PERARD <anthony.perard@vates.tech>
> 
> Since f9e681d3d1b8, the prototype of libxl_domain_config_gen_json is
> generated from IDL in _libxl_types_json.h.
> 
> Fixes: f9e681d3d1b8 ("libxl: move definition of libxl_domain_config into the IDL")
> Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 14:56:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 14:56:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096269.1451021 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urHZk-0006wg-BB; Wed, 27 Aug 2025 14:56:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096269.1451021; Wed, 27 Aug 2025 14:56:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urHZk-0006wZ-86; Wed, 27 Aug 2025 14:56:36 +0000
Received: by outflank-mailman (input) for mailman id 1096269;
 Wed, 27 Aug 2025 14:56:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=n4tM=3H=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1urHZj-000691-QC
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 14:56:35 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20621.outbound.protection.outlook.com
 [2a01:111:f403:2414::621])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 053bf6a2-8356-11f0-ae26-e363de0e7a9e;
 Wed, 27 Aug 2025 16:56:33 +0200 (CEST)
Received: from MW4PR03CA0165.namprd03.prod.outlook.com (2603:10b6:303:8d::20)
 by DM6PR12MB4171.namprd12.prod.outlook.com (2603:10b6:5:21f::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.24; Wed, 27 Aug
 2025 14:56:24 +0000
Received: from SN1PEPF00036F3C.namprd05.prod.outlook.com
 (2603:10b6:303:8d:cafe::41) by MW4PR03CA0165.outlook.office365.com
 (2603:10b6:303:8d::20) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.17 via Frontend Transport; Wed,
 27 Aug 2025 14:56:23 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SN1PEPF00036F3C.mail.protection.outlook.com (10.167.248.20) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Wed, 27 Aug 2025 14:56:22 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 27 Aug
 2025 09:56:22 -0500
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.1748.10; Wed, 27 Aug
 2025 07:56:22 -0700
Received: from [172.31.63.243] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 27 Aug 2025 09:56:22 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 053bf6a2-8356-11f0-ae26-e363de0e7a9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=eRw9DoQvv/hmSZ/o+FfbC2twQhbjs3WAFpxzGwCl9gRc8ohl84psOzSLc8h8pOkaao1UvqEc+NRhoTUg6RSbgOzHZJvrshubfylJNyGBupgNjaoVwx1WySncp52oP/7WU6ZCR8QglvsG+5Y9gS3cJPDMKLW7igayeYQ552hzeTxjZCEMbyONMHsBwRSG2lDLOSMOSsDqYiTqDmqRHoV0kc2k8k8e3vaaGAqMOqOPI8CsG03opW7lKEWRtCIZmfBUXMigC0vD3/13cKL4Y4jG6ML1P4fHd6g2OAnZ+3kdLC+A9rI5Ajb5kAMN61odAJ8m8noDjgxtEHP6uCwp71vaDw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cho+oUs+S7C8wL8gf68F+liw/ZLX80fv7zLO82Tdep4=;
 b=W+zh0t2HL0hy7Uex+YVbvMxP1WCfAQg6F5NnEsFrmmah4gBLfqVgt1S7kUV7wh586/jD+cQ4KysksQ7nQeKkh+5yExYVOho1Z7TMTWG/eZ/sVplqJXeP6CGRAZMMzRtCj/exbpOp/Iy4iFNhSWVibZfuxNhyEr5nBLb763BPJTScgUd7ZjlZPb9FaYPZaEVyg1UPPf6iWCOyLqQ+7KjLmF6bUXP4QsIsXg4BxtgEqOiaw592xrYEhWvqlPQoWgnHj9EZvZjNbCl+zzWw3iLU+fb1S4YFHaZv5uYJo2tU61KUF4V10vBgWK25RSdRT4XZS8x/xGuYEufwKGIeMf+ldw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=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=cho+oUs+S7C8wL8gf68F+liw/ZLX80fv7zLO82Tdep4=;
 b=qqY0d1dwNmMjhO29QA5kixZzt2MRluMTW83QNKahJu7immIr8bDDsBaFA4QRsCFPcBdLE6fsTfV8igVP0oUe163E6RWuoMIc/RCgEPE6iPRj9PP2F4nnZHHPSaRrCpx/dgO28b4g6r502PckiZz+PcEIq4XXuyDNi3vKe4L/Isc=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <e781aa45-3ad7-4904-b68f-457f6f46476f@amd.com>
Date: Wed, 27 Aug 2025 10:56:53 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 03/11] libxl: remove duplicated
 libxl__yajl_gen_asciiz() prototype
To: Anthony PERARD <anthony@xenproject.org>, <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross
	<jgross@suse.com>
References: <20250808145602.41716-1-anthony@xenproject.org>
 <20250808145602.41716-4-anthony@xenproject.org>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20250808145602.41716-4-anthony@xenproject.org>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF00036F3C:EE_|DM6PR12MB4171:EE_
X-MS-Office365-Filtering-Correlation-Id: fb42233c-0889-4ecb-1f84-08dde579e3b1
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|82310400026|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?S0x2cVdHcmVrcTMvN3YybDFPUzFtdWp4bVVnYU8zRjFaWlMzWnJEWWxJUkJO?=
 =?utf-8?B?ejRJU2x5aW5zMFVMUnNDUlhIY1ErQUNXWDhBeC84aEE3WmttZ0YrM1RqZm54?=
 =?utf-8?B?MDRqRTlYYUNZb3RuSGVNTGNDNDhab1B0YjRtdktXdzhWcXMxU2NMS2V0c1BO?=
 =?utf-8?B?UTVaTXloQWZsWFNoQWxOZHFNMXNOM1dXTERGMnFoOXY2WDZiVnR5STVnUXk4?=
 =?utf-8?B?cW1nSGZpU012SHhMNE1KWlBwMDROT3JhUmxRbElpNDRSYmFpOXlkRmJsOGV4?=
 =?utf-8?B?QlBVU2NUWE9OYnRCMDg5OXRSMURreVI2cjE4dG1uR0dCazNiOU5DMmVXcVBo?=
 =?utf-8?B?TlhVL0NqbStCMG8rYzN2aExOT3JON3ZwZnJLQlp6RUltaHB5bnFJbGRMVjdp?=
 =?utf-8?B?NW9xakxTN21CQjJKeWtYaHc0UkhBR3NMOWlpdUw1QUVvUzI3VE0ycFFDMUNY?=
 =?utf-8?B?RXBrZWU0bjBNR1Z4VlJnckJGeVpreXVzSUt5c2NZTndpQklqN0JQK1NwZ3Jj?=
 =?utf-8?B?cUZmZmViTzRsZUtrZkFjRVgrRHJLRjZtNjd6eG5GM3MzQ2dGOWRLSUFmaUxR?=
 =?utf-8?B?VTR3NWlQSGFuZVU2UDc0N256S3Z1Q1RjSlV1dHdUaUxZdU5VSnlnMnNiMUhG?=
 =?utf-8?B?aWY0dTNSRFgvMlg1eWp1c21kcUhDcFdybktPbk9DK25ocXNlS3VYY25lblVo?=
 =?utf-8?B?VVQyTWYwMnFmcGViS2tKTnYxdVgyMnA4STU0TUUzRmJrb0N2blN1MjZud0E2?=
 =?utf-8?B?SnpHRjBYVjNZeTNKeStXUmdoR0NEeUE0WldFVyswc2RzS0N2b0QrQjhKNE9P?=
 =?utf-8?B?VTZUc0JIUE0yeTk3R1Frdk1hT0tDTmQ5NUFCTG9hcnB3QjFTZC9MOUNVVWN5?=
 =?utf-8?B?NzcxUFlaSEhMK1g1d0Nlcm5oQ1pzaTd2aTJuMlAxY1NMdTRWS2I2VUljd2lK?=
 =?utf-8?B?NWZscHErRjM1SktGbDdON2ZNQi8yRW9QdCt1cjBmcGh5SzkwMmNBRHdFdDJG?=
 =?utf-8?B?ZW9FSUlrMFFBVERUWlk1emlNR3lPcFIrL3o1VG5YMWNvd1dIeG1leFNHZ3M3?=
 =?utf-8?B?UXpMS09mNmRpUE1pZy8rNytKZGNZOVc1V28vbkNuNm5VL0M3d1pxWHg4VFFU?=
 =?utf-8?B?d0twRFk4cnMyQVJDdjkvT0ltOThqbklwM1hMc0pDYXZTaHFlTTBiQ1ZIL2ZC?=
 =?utf-8?B?NFBWK1hPYW10MktHVWlPWkxZSU9ZZGRBZTVUS0cyZjRZMHJacVFOTHRKVk1Z?=
 =?utf-8?B?SUlGcUswOVJIenVUSGxZZkY0MGgxcnpvanE3Tm5pemNhZEdoQ1UwV0pxWGZM?=
 =?utf-8?B?UHpwbGRMQXRuUU1HTUlVbkdqaSt1ZWRXdFB0QU9TWU5KQkc4U0NtOVk3NW5a?=
 =?utf-8?B?N2t6MlhwZWhEWjVsMWc3VDVmQmROdGNLa1RKVDNaUHJyOC82RFh3M1gwS25C?=
 =?utf-8?B?cFJxaDJLMzlKQjNlTnBjc2YzaWF3VW9mcWgyR2I3WGNnenZGdTRreDlJZFpB?=
 =?utf-8?B?Vyt1ZCtXMGlYTXYyd1lqRUpCb3VUWGIrWjMwZWdiSmNmT29xTzRLaWVCcldy?=
 =?utf-8?B?MTViTlc1ZDVLeXJrSHY2V2IxMVowMitjMDNPT1V4M3g3MlJlNnBpUWJVb3pz?=
 =?utf-8?B?UjFVc1UrMUVNcUxXUEFjckRYYUVQd204c0IzbzE1R1lkNkt4VzFsbXdoNWNr?=
 =?utf-8?B?RzRDQW45ZDJNQlFxKzJ5Y1FaWnl3dU1EcThrQTdrV0ZuZjlwSDJMY1ZDdTZQ?=
 =?utf-8?B?MGhFNjJIV0dTM3ByRGhVTkpJWmd1a2Y4SG1paG5mVTlCOHFlQWEydGw1N29w?=
 =?utf-8?B?RXc4VU9TekVuWlg2THlqSjF6V0FVZk1xZnQ4bzdxMk1aUys5WVJyc0Nza25h?=
 =?utf-8?B?dUhDNlFuZmI5TDFhU2wxVkl2WGlqZmZUQjZqbjUvcVNCc0pVSGt5azkxUUtI?=
 =?utf-8?B?RjI5UGl3bm9mdHBQQ1pIcnNKZlFQOXhJZEhHUU50a0lXVkJhc0krZFZRZHN1?=
 =?utf-8?B?TzJVMlVYUVNEQlFENjlGSEo5Y0VFSnVxbEpJVTJRa24xNkpQWEdPY09yMWxx?=
 =?utf-8?Q?PXwbQc?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Aug 2025 14:56:22.9676
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: fb42233c-0889-4ecb-1f84-08dde579e3b1
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF00036F3C.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4171

On 2025-08-08 10:55, Anthony PERARD wrote:
> From: Anthony PERARD <anthony.perard@vates.tech>
> 
> Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 15:01:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 15:01:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096279.1451030 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urHeY-00009F-So; Wed, 27 Aug 2025 15:01:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096279.1451030; Wed, 27 Aug 2025 15:01: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 1urHeY-000098-QI; Wed, 27 Aug 2025 15:01:34 +0000
Received: by outflank-mailman (input) for mailman id 1096279;
 Wed, 27 Aug 2025 15:01:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=n4tM=3H=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1urHeX-00008z-Uv
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 15:01:33 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20608.outbound.protection.outlook.com
 [2a01:111:f403:200a::608])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b77a4a0d-8356-11f0-aeb2-fb57b961d000;
 Wed, 27 Aug 2025 17:01:33 +0200 (CEST)
Received: from BYAPR08CA0060.namprd08.prod.outlook.com (2603:10b6:a03:117::37)
 by DM6PR12MB4355.namprd12.prod.outlook.com (2603:10b6:5:2a3::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.16; Wed, 27 Aug
 2025 15:01:29 +0000
Received: from SN1PEPF00036F3C.namprd05.prod.outlook.com
 (2603:10b6:a03:117:cafe::fe) by BYAPR08CA0060.outlook.office365.com
 (2603:10b6:a03:117::37) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.16 via Frontend Transport; Wed,
 27 Aug 2025 15:01:28 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SN1PEPF00036F3C.mail.protection.outlook.com (10.167.248.20) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Wed, 27 Aug 2025 15:01:28 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 27 Aug
 2025 10:01:27 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 27 Aug
 2025 10:01:27 -0500
Received: from [172.31.63.243] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 27 Aug 2025 10:01:27 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b77a4a0d-8356-11f0-aeb2-fb57b961d000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=VPBYxRAFb09pdqCayRxOQ/4fWwWT6DcjAsHadXt7mt+1+y8aSrDZI47VuCb7bT/qDBl45yhlfkV+QTdsGGgrRJ1s1v2DSp9jCQkF0xfBPGx/MMrlvZb02NYrBPpijcpWJHRJiX416BrHlPV6Ifd+k6ZOzBc8nb0hQ0L1lGfLiA+XP6nwxxEd07N4fd8A+sZS4K3qW6NggG2wb0mVhj1lwAePswFVNLa3YojiqJa8osEiRyarMhFrwXCcQJ7rUiXxR/MXFwfJNyHZLUlLF58fvdfPjRYqDcG8SEVarJa/EWT98j1EEMySvQ67fi8fLVmntvG6ExM/kcSQMqQrzBCGcg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=CxccLamGa+j5seMOs5NnfcvoD5XqIsKra5Dpt0g2S5Y=;
 b=fOeH9y3OR7bHtn0m9JFKYap1HgndV/3pUiriE+skiQ1PjHmptf3g6H1Yb791DnCMt3RENCxnmb647mwWK2GZnTszG2Nn8pOvw93Vzzq26OrL19Xo/Jo45YQdfh8lvD8NLh3/IEWRPAViFVKu2FhllSWifujihXiX4R2hyVkxVbXQn8sgAyjem5fzffEOjJm3mHUsct4Gy0wD7xcaiEjX8G2YxJzHgUqQlkg6fj2D1FK8obwlmhgkO7lyzZt3g20GGuLK4Z8gXLYyCyky4GqbkrMLQTn/Gb4VlN2joQV5ItUsSjySFc6cpMuC053bkhnZJci226Xq0zGD7q7H/TsRgA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=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=CxccLamGa+j5seMOs5NnfcvoD5XqIsKra5Dpt0g2S5Y=;
 b=U9rhBBc6OZ3M0zIoLzCQxxxKrL2HCCNjOEQWZW7+IS0LAb7E2FkiBz3fksYg3+5PHeViFNZ2gpSsj+wDzH4hz6z4e9iUSSVXVLc14Br8QqKfYC9Y60cPjh9pQd7kkzWEX+Cjkrn1cFCAQhX44TgwNLKYe+YHRza4Zeb8WDbQdT0=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <39b2fc9e-44db-4f42-9586-1dcdac118659@amd.com>
Date: Wed, 27 Aug 2025 11:01:59 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 04/11] tools/configure: Introduce deps on json-c lib
 for libxl
To: Anthony PERARD <anthony@xenproject.org>, <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross
	<jgross@suse.com>
References: <20250808145602.41716-1-anthony@xenproject.org>
 <20250808145602.41716-5-anthony@xenproject.org>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20250808145602.41716-5-anthony@xenproject.org>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB05.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF00036F3C:EE_|DM6PR12MB4355:EE_
X-MS-Office365-Filtering-Correlation-Id: 1fe04f88-9326-49cb-135b-08dde57a999c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|82310400026|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?S1E2V1pXNDVUVllJM2tPamQxZGpoMEpjZnkxenBVdWo1MjlqL21Hc3lCem1r?=
 =?utf-8?B?ekV1bW8vK3BnbHRscTN1WGg0MjlVMWJlMjAzMG91elJ4elk4K0FRNnBmUEc4?=
 =?utf-8?B?L1BkV1JkcUpsaUt5YVZTTGZhcDhRWXpXaW9sUTJCUGF1eUQvaEtON29RQnlR?=
 =?utf-8?B?NWNiTVl6QTI2dmdURDJMc2xyL0JnS1loNHpFN2ZCVmh2VDdnT2ZQZWUwdVJK?=
 =?utf-8?B?NThYVTdmWlphU1dIQkxaSFdncW5RUVpMeFZWNzhXUndZU2pick4xSHdVRE5I?=
 =?utf-8?B?VXM2ZWFNWHE3R0tLeS9hQ1BQY0NoRVc5cW1NWXFPMmpXVEZEK0NHeitNaEFx?=
 =?utf-8?B?aG9wWUs2YllDOW9TT3Jnd05nUEV1SVg0c01scW1kdktHMkFray9wdnEvNnl0?=
 =?utf-8?B?RUZJbEM4eWtkSVFzSVpOZGc1OWZ3UkZFandGQVZFYlJvckluanpFUUN1VjVH?=
 =?utf-8?B?YkhKQjZ5TGFEZ0Z2djh6UXFpUWV1cnlPN0JCWExMeVRDZU1zV3FNbGhUUE1E?=
 =?utf-8?B?aHFlck9WZmFNMWUvOHVYS094RE9KZUt3d1hBM1ZYR2dzbmU4WDE0dTFiUnR2?=
 =?utf-8?B?QURmbG1UNnVPYmtLaURaTGNad01kUEdhOEJYME1ad0FzbEpKKzJtRkVidHlF?=
 =?utf-8?B?QS9RWlZ2SGNyTE9KbUdKOWRJT3lEZGw1dDM3QlFWdVhZUnlqUmtHV1M5ZUtz?=
 =?utf-8?B?RXJwK0ZNMDdMMkhxSG8vVU11RFBKb2YrMmdCRUJYaXh3dlNOc3BnVnloUXZl?=
 =?utf-8?B?dm5OZ1J4dDhEZ3RuSG9MM21EZVlBQm9WYkNaVjlqekJBeEtEQmtkUUxIMXRo?=
 =?utf-8?B?aXVRRkJTZUZrUEQrVjJnOGUvTDA3c0dhMkpnQWxPTi94VUg1UGtDV3o0VGxt?=
 =?utf-8?B?eFlBbGRRWXZFeGdwc1lEZ3JiTGorTU1MeEw0SmRRVDhCbVJqa3RBZjhJTktV?=
 =?utf-8?B?Y1puN2QzN0p2Z1RNZGpidmpIUmw5TVRoSG5rV0tkdGpmVjl6VlpoYXZSMk9R?=
 =?utf-8?B?QzNGbXBJek9RRk9QdzRCaFJwMGVzbFVYYmRHQUlmSmpma3NjQ1JnSFZRRU1F?=
 =?utf-8?B?dWw5ZzlhN1JPcUQzZldIbGJJNytZMk9UeVhuajRCYWVZby9tbjhZNWxzNjM1?=
 =?utf-8?B?a0VMT1U0SGZ1SnhBUGxqRmdjbmVybGF4dUFkMnFJd2NEblpneDBPOFhSZ2FX?=
 =?utf-8?B?bG9rN3VmL0NiNmtKSTNTOHNrcE5iVFJUaVFEdE1vS05xTmVzYzFwWDNPTVl2?=
 =?utf-8?B?eW5MNDBxb0wwY2hGN0NjMEk3QUtCeEkwcnM2OUxoOW1rd1lHZDEvRnFzY3Yx?=
 =?utf-8?B?UEFsdGlXT2oyZXgwWGJmWEJneEM0eHpBNVc1WHNIRi9iclF1WlMvNWl2VTBB?=
 =?utf-8?B?VVVlTjNlSlc0N1huYkRmNzloeTVDZWphRHRGZUZySGNqamdLd2pKOUlCV2pE?=
 =?utf-8?B?K1ZJUlRoNnVERHMyQzR0K2g5NVZRRWFybjllL3VHbHMyUk5TOGxKZUgzdEpG?=
 =?utf-8?B?eUNDRG8rdHRwUXMzdXVNV3ljZnZVeDQ1TXBLdmRXcUsrRVVLZUJUUjhMU05p?=
 =?utf-8?B?NFpNV3pyTXhsczhOWTk0M3VIVVhvZGhzVDMvTHhIcjhUMjFrMHltZWs3ekNS?=
 =?utf-8?B?c3lZTjV6dzNaZU9CVGNZT1l6Qm9KaE5mcHd5T1Z6Y3RvdXFUR3ZsZ0ppMkh5?=
 =?utf-8?B?dzZOOS9Oa0hOWlRxblM4MktmVHJWc1VudVcwTjZSQWtWQTBPNTBFOE5xc1Vr?=
 =?utf-8?B?VDFNMUFtb3ptaVlkWFJaVnB2TDZLNXlVZVhpOGk3UUtMcCthNFVESTZ5M0dC?=
 =?utf-8?B?QUdyZmt6eVdQTlRudGwwR3d1YVRNZmd0b3ppL2w5UjNDaWhsQ25VbkUvcjZJ?=
 =?utf-8?B?cWFGTmhUTjhvSlRtQm5DV25sZ3diVjdlTmNUM21yS1kzT0J4dUExU1pqOEJK?=
 =?utf-8?B?a2t3ZlBYMGwrUDNNR0hCblpkL21FRWJiaTVvcUxaSUFDM2V3cUJvYnlLc2xp?=
 =?utf-8?B?K2ZTRkhvVkhTQ0M3T2I0bnlLcnc0TlFaS24yaVNhV3NlTjUxL0ZkSCtZUWxq?=
 =?utf-8?Q?EZg+KT?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Aug 2025 15:01:28.1733
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 1fe04f88-9326-49cb-135b-08dde57a999c
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF00036F3C.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4355

On 2025-08-08 10:55, Anthony PERARD wrote:
> From: Anthony PERARD <anthony.perard@vates.tech>
> 
> To replace yajl.
> 
> Introduce YAJL_LIBS variable, to be able to remove "-lyajl" later.
> 
> Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>

Should the two configure changes be merged and placed at the end of the 
series?  That avoids a half implemented conversion in between.

I think Andrew's XEN_JSON_LIBS suggestion is a good one.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 15:01:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 15:01:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096281.1451040 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urHep-0000VP-4y; Wed, 27 Aug 2025 15:01:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096281.1451040; Wed, 27 Aug 2025 15:01: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 1urHep-0000VI-2M; Wed, 27 Aug 2025 15:01:51 +0000
Received: by outflank-mailman (input) for mailman id 1096281;
 Wed, 27 Aug 2025 15:01:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=x+iP=3H=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1urHen-0000Ud-Q6
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 15:01:49 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c201::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c109aa9e-8356-11f0-ae26-e363de0e7a9e;
 Wed, 27 Aug 2025 17:01:47 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by PAVPR03MB9632.eurprd03.prod.outlook.com (2603:10a6:102:316::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Wed, 27 Aug
 2025 15:01:43 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Wed, 27 Aug 2025
 15:01: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>
X-Inumbo-ID: c109aa9e-8356-11f0-ae26-e363de0e7a9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=cVBvwDaRT2jYfyDcYHQp7A23hZIsgNfbj/lIu6fcreh5MapV8SPMdu0JB0IyKVwNXfzlX1tGMFVWJZSMPVlyK4wQFuhUWT33UwGgnzIig5sageK8ZCyH4rr1CBbnp+stUO4eA1a8drZNWCRQacRLwF1LMIxw19HRmAy9YIcR6VlUUUNhFOKV+gxKTuzXhkhXfm4/tXoq/esikdZPuTP/zdhiBxdZmyfZsV/RL8T9RplInt00X4aG4qmh4TvvReGXVuSwOLK4XnMg+aLpL+uCOYokfBPTvjEmT/pJh4zAx1p6mHUGoLMMMZjwzVj4XjbLcUAtr6rvGNOTs9BUA3chLw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=J2F+TO3ZlI1rrXJ8fHNUz10eNwiQYpS1Ipz5LT58Q6I=;
 b=to59FVwV9rP8FiduX68/sb/a054kn/EtBkCvbjsWxRM+Jz1sE3ENGz03kOyTlKnu+r8YsZF/R53Uq7dWqn05N0EEbWoPZg9W7CcaBkPB/ER3RlzvhWoS15MQfcKFKZ3m8zo95ev7Ki12DEMF2FCPrk65O/Pw6K8wDYxsv6SY1kZBJ3p7FuRhabOMq2JKa/cXxJ+9oV28p6sxdvQ/5AcycQGsIf6ofIPyHXpGnQMKacXogiCE2VryxCBsZ5i0qyW9BjI28V2kFLagec8orgMX+lXCqbhzNstibfC8+WJK0anO+vWKhLI+evCnUQLoRCObd5lJXNh1PKwJrnc/QEjUVQ==
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=J2F+TO3ZlI1rrXJ8fHNUz10eNwiQYpS1Ipz5LT58Q6I=;
 b=ehRWiPg3BnRO43r23HUdqqgfsLPKFqCowLpeLFPIEMuek5JutbrKvvlRuY76xD5Q6RhIHokfWWqC7FXlx6RVuOyByQ10geuPeZL5eRdXp8BpdDk1HPYIkiyA9EgjyZO8lxAChQ+KRnU1MaC/k7Fy0BxTrvPijJKi3wGiPz30tdxD9g6Nu8zuY6lrVZSTBglKkMnfTsUWWO5OSiZL4wedFVlIylGSSa9w2lO92TfksTo+GPnad5K0jnZkS9v9n2YuScXma7aCe8yZgXpOSfvW25iigQqrtgCGahniG2xUeL/3MatWAnJEJBICo8BE+7nJQtPBy/trEV1tlyeqURz/BQ==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: Oleksandr Tyshchenko <olekstysh@gmail.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v3 09/11] xen/arm: domain_build/dom0less-build: adjust
 domains config to support eSPIs
Thread-Topic: [PATCH v3 09/11] xen/arm: domain_build/dom0less-build: adjust
 domains config to support eSPIs
Thread-Index: AQHcFpKAZWUsU5Sz9EWrJGvlceTbI7R2TLcAgAAap4CAADJ7AA==
Date: Wed, 27 Aug 2025 15:01:42 +0000
Message-ID: <120e2675-473d-4cb6-b004-70c22439c3c8@epam.com>
References: <cover.1756216942.git.leonid_komarianskyi@epam.com>
 <bff3d1c4302e8780771abed42f624cafe76776cd.1756216943.git.leonid_komarianskyi@epam.com>
 <874itt4r5t.fsf@epam.com> <1cf0a662-b717-458c-8174-6b03187b4b6c@epam.com>
 <a230ad6c-294d-488f-ac2e-6fc3a7cf33fc@gmail.com>
In-Reply-To: <a230ad6c-294d-488f-ac2e-6fc3a7cf33fc@gmail.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: GV2PR03MB8678:EE_|PAVPR03MB9632:EE_
x-ms-office365-filtering-correlation-id: 67c7bf41-d050-4018-abcc-08dde57aa26f
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?SWszbzJCUTl3RmozMFF5dE1kTU96c21jVzgyM1MrZFVqUDk4WTgwZGRkOGR5?=
 =?utf-8?B?Wm5rRzhBZlVhQ2NRQ3d1MHpKMTYvNHNyNE1BNlB0Sm1RTk9Kc3JCeXBiOUh2?=
 =?utf-8?B?K1EyaU5GcGdUT2x6eEY5R2xIc2JBQUloTlRMQU55YnN6ODFESDNaaFE4VnFa?=
 =?utf-8?B?QzNtWlpNTkNFTXRYbkpyTHZWYnQwYUFRSmYxRjQ5VU1JTTk2WE9FWEZpWnJy?=
 =?utf-8?B?YmMrV1dvcG93QlR4bjVsWFROZXAzOFNrQnk2dWpwU1p2Sy8xalFmd3ZPUjFo?=
 =?utf-8?B?U2kvbEc4dkI5ZXg3QUthd256ZjZZcmlyaHdlQldHRmJpNXFIY216SXRrUzBw?=
 =?utf-8?B?OHNqRVdOZ0gwSlhwbC90OVBaQTZVNEJpQTBEVnQ4ZGF4RkljZlkwKy9RL0Zx?=
 =?utf-8?B?aDVhOUZBMGxVM3VBMFFJWVNqWEVmNWdxQWhiUDI4cnRrV1h1bUE1OFFhcHVK?=
 =?utf-8?B?bXh4K0xaczF1UVcyV2tQMHRCR0pONDlGSzRJWVpUcjk5TkZzelBlazYvZmN6?=
 =?utf-8?B?TThQSVNVUElkU1dZMDlrUEsvdEF1a3lBazJEZWVqd1pMYWNhaGxjeHZDOXFs?=
 =?utf-8?B?TTlTNTVNa09jS3JET2EwSFhnd0hoNkhZMzBlb1g4NmNiY0d4R05SNHcvRlc2?=
 =?utf-8?B?alZ3ZXFrQ0d6VjRIMDByeGRQVStqcGMvejVLUHQrK1pJbi9yR0xWcFYvV2Nz?=
 =?utf-8?B?MGg4aWNJQUJ4amx0YlczOElyb2tJMW9qY09KWmxqbSs4dVg3ZmZkVTl0U0p1?=
 =?utf-8?B?Nmh2bWxSekFtY1hkQnpzd2hRaXJ0clN6TkIzSGRheUM4bDNqQkNSMlBjZzlq?=
 =?utf-8?B?UW9pRnQ5NEVYdTIrdWUxVmgxYncyRTdUR21VaE1EdDJJcktuZjY5T2xQRHF0?=
 =?utf-8?B?aTZvdE0vendLWnlialE1ZzBVMkpLUFN5V1V0WElMb3hWQU5ibG0rWUJMb3ZI?=
 =?utf-8?B?VWVGSXNlamJtc2REOXdiVmNwdmp6djJoRjI3aFJqMWd1UGJTdytnRjFtTmxQ?=
 =?utf-8?B?ZCtrTTRqK1ZKcmxuZjBJVUF4eWU5b2JtYlI2OXJWbFVZT1JjaVY4cEduRE03?=
 =?utf-8?B?aHc4MG1FVVdzcUp0RCtxdS9Vc1pjcEswOTRpNHRzNUdPVGJ2d3dmRFJsRGVI?=
 =?utf-8?B?MWtXVzFaNWJTY3diVmgyZ0dNWVQxcjQ3T0Z0UVNzN2phbVpmMTFkMHBsMks5?=
 =?utf-8?B?d2NXRFZkR2VveS9oUTF5TzI4YTdFcnlBdFVHQUdTOHlUM3Mrbk1GQ1MvZThj?=
 =?utf-8?B?RjBlTTJsamZyeTVpTnJLZmJFbjM3aEd2WllCWXphTm5nNEsyMTU3ekJBZmFk?=
 =?utf-8?B?Syt3Tkh0MG41UGZ5T042dnBvZ01kaFhWMkZmaDZaaEg5eDJmL3FkSnlWY0dD?=
 =?utf-8?B?ZC9hQzRwWlI1WDZzcXVka2xHTERvZFNucDkxOXpzWmpZVktlYThTb004c1RN?=
 =?utf-8?B?MUYzVjgvQjVXTGJJUGZrQkJLQUxETzIwVlo0UG1RbHpTeWZSdzVIbW14S3FG?=
 =?utf-8?B?MENBWnAyZFR1RCttbU0wUjlkRGNMaUsveGM3Zm5oclFDZEp1OWMzODYwaC9B?=
 =?utf-8?B?cDlYUE1mNVhBMUZITzJ0UXdMSFVCWFBvSE9WcEt6OWN6WFFBZXZWSGY3cFNh?=
 =?utf-8?B?TktmOTNiSXk0aGdHYXJqUXRFNkFkSzgxdUcxUUJvaGhFMU5XRE0yTjI3eXJ4?=
 =?utf-8?B?bHA2VTlpZHhmL0lZMzhWRnZiT1FLekZaS01ieVdQcWZVWWY0L1B0ZENnV3RF?=
 =?utf-8?B?SlcwczZmUHJCMkkrdWJSTk0rektLZ0pBcElUSFVGbzBFYTMweTVMbjlYZnFQ?=
 =?utf-8?B?aTF2QzRhdmgwcUpsbmMzOG9oaG93TU1JQWxaRjQ0c0c1aXpvTjVSV3oyVFBm?=
 =?utf-8?B?WGlTNXRNRzUvMkRPbWpTRlU0czNmZTk4SEJuazcySmQ0cGZLaGlJK2xVYktE?=
 =?utf-8?B?YmZpUTVOQXdrcDVlVHhYSDBhM3EvTGFxTkMwV3NaS2pYR1hrOHZCMU5XRVc4?=
 =?utf-8?B?NlVGRkdzNTR3PT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?WCtQN3NScVNCT3owRlNabUV3YW5NY2pYZzJmbHY4NEV0SkhteVZkazlEend1?=
 =?utf-8?B?Sm5xMENQQzZ1bHZsdkkwYUdUMGdnMDRhcElJLzVoQVNoZXpVQW8zUVRycm0w?=
 =?utf-8?B?MzlXaEcyNlZQeSttcklVQk0xTWtwQ2RaRFhpOS8xMVVQZ3pkTzVka3NDWEM4?=
 =?utf-8?B?NTNSczhheHFlRi9zb2JTMkRBc0tBbkFuaVM5enp1Y0NNem5sZ3dMNVQ2VVEw?=
 =?utf-8?B?NXN0ZjFWQ01hRlpaN2tKeUJCK2pKZmR4UmZoM1M3WDhVQllrVkdUMU41VGcz?=
 =?utf-8?B?V1VFRDlkaStmUnNhSnY5Q1JCMjlFb3oreTJPemxSM3dPUDBNcUlPMVVkeHgr?=
 =?utf-8?B?WHhmM0pRQmxpT1NGK2J2UnFYdFVDMnZibkV6SE50K1A1WDBCZDRUYUM0Zzgv?=
 =?utf-8?B?QVRiRWF4L3IrNFEvcm1ld1FsaVR5cFJ6b3B3aStTVmpOdHQxZlphMTI3RmVx?=
 =?utf-8?B?Z1ZiMS9vVFdvU2c5NzNrTE9RM2VSNkZMalR0RTJxWG1Sb3VJZzJYZXVoU1hZ?=
 =?utf-8?B?cjl0WlFLOGJVdjBoSERraVQ3c2IyeW9nTVljejg4WVdIWjMzTnFIMW9LNStj?=
 =?utf-8?B?T3kzM3NYNXNKMU83N05Yc0lhdEVYNVhOK0cwa3d0cVJJVWlSN3hTd3dqajNP?=
 =?utf-8?B?cmxxcW54TkxyZjgvTkJ3ZW1jK3BnWWpMT1dDVGJYNkpFWEpCMERSVTZka0Zn?=
 =?utf-8?B?RjFiNlRHY0hKTytlMVYzMjJMWFBGM3JLMmhOVTdLV1VZQ0dORjJ3WkRlZFFM?=
 =?utf-8?B?eEUrVHBXbUZCYjlrdVc1K0U1NGlkVnV3U05hRkpDTEx5OHM1WTRHelo4YzRG?=
 =?utf-8?B?bXlXNDM3ZXdpaHR1WmV0UkFWaDgrL0pMS0Y1REJCK1BvNllpT0xyOTN1aGFY?=
 =?utf-8?B?WTFkcTJNVERUYkhJVUtmN3hwNG1kQVY1VC9ya28xeHRRY2xjOEtGY1Z4WG9o?=
 =?utf-8?B?b0ZMNFJpbXBQR2Q4eHA5ZDh0ZkZnenZQL0Y3cVA0UlBnQmovMnFlQU9CNmwv?=
 =?utf-8?B?bDREdEo1bjcyTWRTK3FSNDF0eVVMZW1RVkhVT0RoNjdlL1d0MnpaZCtaVU5q?=
 =?utf-8?B?R3M1aklEZm9qNkNPWjlPMnBQM01TZXg2ejNKODhuM1o2dDRLaWpYaEJsY2pW?=
 =?utf-8?B?Y2lreDZKUS9IWUNmYTQzMkFiKzAzU0FNekJCM2VkZnVHOFlWNm50dUtBaUk1?=
 =?utf-8?B?UlNnNGNISFpscnVSelljVVJaYjIzTzFoV0x4QmV1TzNaalU1Q0sydlRRTHRj?=
 =?utf-8?B?Z0NvNzh3N2JQUU0yZXRsQmRaYnZHTGY0SWY0cmxMOWVQRDlFZDdOVXA5ZFAy?=
 =?utf-8?B?ZDhMK29HZDBmTWlnVmhxeHdxMEVzcHRobHRYbThRU2Y2VkJsZnFvOUhJbE4y?=
 =?utf-8?B?am5zNStuR2QvRm5FQ00wTitJYmFuSnZ0K3MycmhVM0JyUElXbTZxSVB2eFZl?=
 =?utf-8?B?clFidTlaTGJuSkNDeWNPL0hGS3RPbkZ0QWJuU3AwM2lvRnl5aTA3dFFKSGE4?=
 =?utf-8?B?RWRmb1VOV2VBM1VrNlk1QzNFckFXWm1OdFdncVMyQTRuUnR1TG9iMEJMUkV0?=
 =?utf-8?B?VGdwS1dIWnk0Tks2VzV4VHVHaVRDMG5WeC82VU5iWlh0WVROSGpBS3VFbFA1?=
 =?utf-8?B?WnlYL3ZmZVk2NjhBVlpEdTVZOUZndVBWdGpWTmptZHgrNlJuYjdycis2dkxm?=
 =?utf-8?B?azd4MERTczNHeDNBN28xeUNSQmtuN0JhRXdrOVdKSXo0SVJnWFhidHlycEQr?=
 =?utf-8?B?QUJFVytIaEtOQ3dyK0lBTW54aEdUR0ZtNnk0MnFUTi9RVHNmeDNSZnNvS2xl?=
 =?utf-8?B?ZEtVaE16cVhqbkpySFR6cnRCeGdiVWh5VWsvNUZiSEF5ejk2Ym9ZQlAvUEJk?=
 =?utf-8?B?Ym0yYzZKcThNWlhld1RvVkw2eEFvbWgwVzVERXRqMnhJQThSeE1vbkdyNytW?=
 =?utf-8?B?TkdnUklXVkJlQmI3Ui9DNTY1eXhIYzZaK0l1aWJ4T3BSMHk2RE1xa1MrVE9a?=
 =?utf-8?B?YXlxaE1MbS9pd2ZJVFdleDdwQ1dJaHY0RlpoMjRhbUtQSDNScTZlZFFxcmFt?=
 =?utf-8?B?Q0w0UDhVd3JDQnFoREp0WWxHRUtVYWdjY3lJRWVDaXVQZkM1aVZMc0lmYXVR?=
 =?utf-8?B?ZTB5ZzNmdWZJaUhWY2o4L1phWlgyanBIL1lsOFhrUFExcmx6a3o0NHZLVVBH?=
 =?utf-8?Q?5vmxHgVM1mxt0ROSzNJmq08=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <223177F90570C14FBB6192B67A177851@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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 67c7bf41-d050-4018-abcc-08dde57aa26f
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Aug 2025 15:01:43.0106
 (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: YrQtISQ2E0RRbjrDPQEF6HhJSjePNIzEeJyEnjIYNugdw2QI/Gbg6xIGEGrfoK/9pJSB0lHyOJ0gE/nsQf8jLW2dIBoVUe/nnLDyi2c17xw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR03MB9632

SGkgT2xla3NhbmRyLA0KDQpTb3JyeSwgSSBtaXNzZWQgdGhlIFAuUy4NCg0KT24gMjcuMDguMjUg
MTU6MDEsIE9sZWtzYW5kciBUeXNoY2hlbmtvIHdyb3RlOg0KPiANCj4gDQo+IE9uIDI3LjA4LjI1
IDEzOjI1LCBMZW9uaWQgS29tYXJpYW5za3lpIHdyb3RlOg0KPiANCj4gSGVsbG8gTGVvbmlkDQo+
IA0KPj4gSGVsbG8gVm9sb2R5bXlyLA0KPj4NCj4+IFRoYW5rIHlvdSBmb3IgeW91ciBzdWdnZXN0
aW9uLg0KPj4NCj4+IE9uIDI3LjA4LjI1IDAyOjA4LCBWb2xvZHlteXIgQmFiY2h1ayB3cm90ZToN
Cj4+PiBIaSBMZW9uaWQsDQo+Pj4NCj4+PiBMZW9uaWQgS29tYXJpYW5za3lpIDxMZW9uaWRfS29t
YXJpYW5za3lpQGVwYW0uY29tPiB3cml0ZXM6DQo+Pj4NCi4uLi4NCg0KPiANCj4gUC5TLiBJIG1p
Z2h0IGJlIHdyb25nLCBidXQgaXQgZmVlbHMgdG8gbWUsIHRoYXQgZGVzY3JpcHRpb24gZm9yIA0K
PiAibnJfc3BpcyIgaW4gZG9jcy9tYW4veGwuY2ZnLjUucG9kLmluIG5lZWRzIGEgdXBkYXRlIHdp
dGhpbiB5b3VyIHNlcmllcyANCj4gKGl0IG1lbnRpb25zIHRoYXQgIk1heCBpcyA5NjAgU1BJcyIp
Lg0KDQpPa2F5LCBJIHdpbGwgYWRkIG9uZSBtb3JlIHBhdGNoIHdpdGggZG9jdW1lbnRhdGlvbiB1
cGRhdGUuDQoNClRoYW5rIHlvdS4NCg0KQmVzdCByZWdhcmRzLA0KTGVvbmlkLg0K


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 15:12:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 15:12:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096303.1451051 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urHpN-0002c9-5Q; Wed, 27 Aug 2025 15:12:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096303.1451051; Wed, 27 Aug 2025 15:12: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 1urHpN-0002c2-1y; Wed, 27 Aug 2025 15:12:45 +0000
Received: by outflank-mailman (input) for mailman id 1096303;
 Wed, 27 Aug 2025 15:12:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=bDd0=3H=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1urHpL-0002bw-Lt
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 15:12:43 +0000
Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com
 [2a00:1450:4864:20::62d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 46ed8038-8358-11f0-aeb2-fb57b961d000;
 Wed, 27 Aug 2025 17:12:42 +0200 (CEST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-afebe21a1a3so152894566b.0
 for <xen-devel@lists.xenproject.org>; Wed, 27 Aug 2025 08:12:42 -0700 (PDT)
Received: from ?IPV6:2003:e5:872d:6400:8c05:37ee:9cf6:6840?
 (p200300e5872d64008c0537ee9cf66840.dip0.t-ipconnect.de.
 [2003:e5:872d:6400:8c05:37ee:9cf6:6840])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afe6fddf163sm798516066b.53.2025.08.27.08.12.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Aug 2025 08:12:40 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 46ed8038-8358-11f0-aeb2-fb57b961d000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756307561; x=1756912361; 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=RxsbYgIsjbQtCJKQ3bzwR5hTOwxYVxpnylNoZaeQefU=;
        b=Ocmps38kC8kW8lWoO+A25xZXzrggVshsD6czveXwrPzgCRrLbSHA2Gh90AhL7HDRW1
         0vtCK/SiDHxe15yroLOL3QBC5Ckpq9HtSUziA6bytxbInzfYQfdjzehwKLkyZQHXImXT
         DbT3gEEGArXzCQUYTczBUKS0N6/0+eWUPpguErq1bQ0P29YZv/D4PuqCLJ1fPYBqS/xs
         FliJblDlsS73dcSGS01XiAeD6C2oC+iEamLRkYl+TqnN3mPIBk3S3iUTDHSkFVeusz/H
         Qw1du25FwY2W8cB00cqOnLZCLYGWDWjC9lNIaWAMOTPdDsgOXrVYr8Y/uL3kDxPZ4W6X
         sHYg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756307561; x=1756912361;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=RxsbYgIsjbQtCJKQ3bzwR5hTOwxYVxpnylNoZaeQefU=;
        b=CAKqVOUK5qnVmAJYk3Q8Dhnqs3kTMZvsMs3VDnOb0So6Cp8I2MJrs08hTJQ/eilnw8
         yt/ed9mI2QX3qIli35oEiE9bON0Fw0+Wa5dnxxJMYJlvE2Hgcy2WAoIg1rf7whVnvImn
         gRPu+6B4dm/0rmegwBK0updy3gn1D7L3qIWtuBYXpXBaKPu6g9+yHtitQXL6XVp+3fZh
         QQu1rofUqmM/5KvMTszRVfPtnZDxGTtQqmqwv7dkh30A8Lp0ASqahfkhgZJMsF4j1FOw
         Yb1lHi5kDwO6uLWJJ6ohe7AgFzOeIraLkTvWtUz3LwCihvDt39IBIySs1UJYhIYg3QJr
         Pjmg==
X-Forwarded-Encrypted: i=1; AJvYcCVc0G5RKCb6JNVANuKh+fb3v2Ptl3MdybSqrTgPXEDfC9baMoUMZhR8eS1UXOehK4DwxJiOXV+/DV4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YywfRv4zJvVqa3lKyVmi4pC+8IHlAEUFfgGmNMcN8beSnPwUq6m
	Vwbxze/p+1Oqk4Hb4xsD+l1HE3g3yH4CUSYifokCiQcwlTsQSYJyAgOb7WyfpdPds2E=
X-Gm-Gg: ASbGnctqUxi13HCwUl/eEKcpV6kfOlnqJxQqyE3eDQOplSs88HbEH/mDVe9O7nfarOe
	fG7OJCXgUxmWWqKmq8s1w7BM6X8XqMFpA398ruII7oGGjYJ5XmRAccJFYIiXhMveaoE4TRM68Su
	76Hq2wvJYIai69EMvyUkJfPBkj6ydsjdvvhX0O1UhdrTcNVBjNLa7W13u6Vt7Le9Hu7r43vfvYE
	BA5H/yVJ7yEr33XXXQNWFG2n8boANjZJ4mYkNp3F9fakl0vNre0oKIuEF+N8VU1C75+Ko//gghv
	jlzAj7lWoe9wOD22vY3imKPSl01QI8RfyuEgJfUv0cmn4QUwewyNiC7urG3iaq5DMH96zqac/0F
	4NqQ0lHzOkidBxH6GwvWjuT/H5TxLhevJegKVryeK9z5YTSEE7yxWqw1q6/Kho+prQpfegyYU5T
	ueNlylNAeWgL6WmuFv/6KtdTjMkLIyog45ywuK1LMm/L44OygQimJIFVJiLQ==
X-Google-Smtp-Source: AGHT+IEQwWYpKvHQmksoFVc9cJkbe3UQCuPnhJ08O6SFuBe6tnk1ktff5iSeRUGybE9aOx0ajeLdnA==
X-Received: by 2002:a17:907:7ba7:b0:af9:479b:8c80 with SMTP id a640c23a62f3a-afeafeccd92mr575636966b.4.1756307561061;
        Wed, 27 Aug 2025 08:12:41 -0700 (PDT)
Message-ID: <df337cd1-eabe-499b-aeff-443f73d5acc0@suse.com>
Date: Wed, 27 Aug 2025 17:12:40 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/8] tools/init-dom0less: Make handles global
To: Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>
References: <20250826210847.126015-1-jason.andryuk@amd.com>
 <20250826210847.126015-2-jason.andryuk@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: <20250826210847.126015-2-jason.andryuk@amd.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------sK08DEPMhpQX0MHcfnkr07t9"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------sK08DEPMhpQX0MHcfnkr07t9
Content-Type: multipart/mixed; boundary="------------a03DW9gAWvJ05ybPod3ywp9S";
 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: Anthony PERARD <anthony.perard@vates.tech>
Message-ID: <df337cd1-eabe-499b-aeff-443f73d5acc0@suse.com>
Subject: Re: [PATCH v3 1/8] tools/init-dom0less: Make handles global
References: <20250826210847.126015-1-jason.andryuk@amd.com>
 <20250826210847.126015-2-jason.andryuk@amd.com>
In-Reply-To: <20250826210847.126015-2-jason.andryuk@amd.com>

--------------a03DW9gAWvJ05ybPod3ywp9S
Content-Type: multipart/mixed; boundary="------------NkLKUHHBZs60k5QoaqZluMl2"

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

T24gMjYuMDguMjUgMjM6MDgsIEphc29uIEFuZHJ5dWsgd3JvdGU6DQo+IGluaXQtZG9tMGxl
c3MgcGFzc2VzIHRoZSBhc3NvcnRlZCB4ZW4gbGlicmFyeSBoYW5kbGVzIGZyb20gbWFpbg0K
PiBkb3dud2FyZC4gIFRoaXMgaXMgYSBsaXR0bGUgZXhjZXNzaXZlIGluIHBsYWNlcyB3aXRo
IDQgaGFuZGxlcyBwYXNzZWQNCj4gaW50byBjb25maWd1cmVfeGVuc3RvcmUoKS4NCj4gDQo+
IFJlcGxhY2UgdGhlIGhhbmRsZSBwYXNzaW5nIHdpdGggZmlsZS1zY29wZWQgdmFyaWFibGVz
Lg0KPiANCj4gVGhlIHhlbnN0b3JlIGhlbHBlcnMgYXJlIG5vdCBjaGFuZ2VkLiAgVGhpcyBr
ZWVwcyB0aGVpciBpbXBsZW1lbnRhdGlvbg0KPiBjb21tb24gd2l0aCB0aGUgbGlieGVuc3Rv
cmUgZnVuY3Rpb25zIHRoYXQgdGFrZSBhIGhhbmRsZSwgdHJhbnNhdGlvbiwNCj4gYW5kIHRo
ZW4gYWRkaXRpb25hbCBhcmd1bWVudHMuDQo+IA0KPiBTdWdnZXN0ZWQtYnk6IEp1ZXJnZW4g
R3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4NCj4gU2lnbmVkLW9mZi1ieTogSmFzb24gQW5kcnl1
ayA8amFzb24uYW5kcnl1a0BhbWQuY29tPg0KDQpSZXZpZXdlZC1ieTogSnVlcmdlbiBHcm9z
cyA8amdyb3NzQHN1c2UuY29tPg0KDQoNCkp1ZXJnZW4NCg==
--------------NkLKUHHBZs60k5QoaqZluMl2
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-----

--------------NkLKUHHBZs60k5QoaqZluMl2--

--------------a03DW9gAWvJ05ybPod3ywp9S--

--------------sK08DEPMhpQX0MHcfnkr07t9
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/Ey8FAmivIGgFAwAAAAAACgkQsN6d1ii/Ey8X
DAf/cOo9mn73LL2DP8ouV92FtBuJCIVDUL/sWiyGUMrHmfkHmS+Zqdyx6UoamSxZyI1gPk/gxKSu
yIDxfXuoHFo1AlmCidoIePm+LE5hHlSs83MR40CJyDQTrfLCZbuf85rcmo952NcPuTUeofu8dtP9
Shkn/N4D9OmNj3SeYbtMTFH6co7L/zAmGuv261vSVOriTqw9nCJIMCFJ6OB25Pu9i/WUby5x3HQX
NqhUvZpC3IbqaRfnQECOw4acKHZoTaotezkv5odYcnDVzj3HXwWY4eXJSZit8waCrbhrXZr6s8zk
hafuzzBH9kjjRcPtcUYfp2L8mQEQ7BIuxBKe/u/BvQ==
=aRae
-----END PGP SIGNATURE-----

--------------sK08DEPMhpQX0MHcfnkr07t9--


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 15:16:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 15:16:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096312.1451076 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urHsa-0003Ye-TK; Wed, 27 Aug 2025 15:16:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096312.1451076; Wed, 27 Aug 2025 15:16: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 1urHsa-0003YX-Qb; Wed, 27 Aug 2025 15:16:04 +0000
Received: by outflank-mailman (input) for mailman id 1096312;
 Wed, 27 Aug 2025 15:16:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=bDd0=3H=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1urHsa-0003DW-2z
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 15:16:04 +0000
Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com
 [2a00:1450:4864:20::42d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id beb06d16-8358-11f0-aeb2-fb57b961d000;
 Wed, 27 Aug 2025 17:16:03 +0200 (CEST)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-3cc3600e5d1so1639979f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 27 Aug 2025 08:16:03 -0700 (PDT)
Received: from ?IPV6:2003:e5:872d:6400:8c05:37ee:9cf6:6840?
 (p200300e5872d64008c0537ee9cf66840.dip0.t-ipconnect.de.
 [2003:e5:872d:6400:8c05:37ee:9cf6:6840])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3cce1724939sm2943229f8f.26.2025.08.27.08.16.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Aug 2025 08:16: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>
X-Inumbo-ID: beb06d16-8358-11f0-aeb2-fb57b961d000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756307762; x=1756912562; 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=mkwwNb4PUU2phyW0XXIgsswHkgN1PSjVOVIVRwzjANE=;
        b=AGbcqArE+ghV//Mm5mi59QPuQNDvoIIPZOLp8yX+/vMWsz8yVD2CL/ICWC87YFpsq3
         B7x/Ig/1+1vMSBv/uQjsMwrUKBzTqHxOKBFJoB36ADkCuiBVrf4Li+J4pb0989caLbcj
         Sh/K4X58b5e5oh1cDGprZ310UFnyCLsVPHKQfE4ddK36Sefjg39AD5QY6+Uq0vue5wzP
         7CK3mXKNcVaWuP2MN32IrIXQOrwYIhtS0dnGwdoK5vUM+UlxZkwPONSh0Q2H/U2LAMKh
         0KBSE8w+RDKZJzJwqgKbWw96I31ba/Pcpg7LGIazVAW2vqnXysRh/buHGpryjlQ9njXB
         iWKA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756307762; x=1756912562;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=mkwwNb4PUU2phyW0XXIgsswHkgN1PSjVOVIVRwzjANE=;
        b=GANO7JyDwhi4rWtCWtTgxxnDa2FviN1Byjy2L26OqESWW/RTm3Fe4qFu/eeuD8LExw
         TJZJK823hKQ/YlNMhpP4tT1zE/u9c3Nxwi47NWqyYoebYOcgSve+IFOv3PmgSw5MIW+X
         EBGNL3AkkG4cqt5c6huKQMnSaiVgah3ToPSSwvV3rKgXUEk9dqPJWCvjlpePMVdPDBxv
         3YZKRU8lhGVyKOr1t0BRfb9GaMgEPIgusq/aSDXTpjoK7aPyi7zXobCGVD0ig3dZlvTr
         nDNt7Mx8soQyDZfgFb2E3rd6uwRXMUeyr8mrDOu/gTMTpZTa/7i4jJ3MRfQXgjzn+wHB
         gSCA==
X-Gm-Message-State: AOJu0YzVyr+I/0RbI0+PZpvMjzMG8JDTztdbXm8oO4ZTwDLZQzw9cKQu
	qy2qP8KS87/IGXRisyJiCcI1Io5qyQX1IVkd5dLZ5pHxIenEVv35cnSkqD/r/q/hu5Y=
X-Gm-Gg: ASbGncsKTWTsidX6jjsFePSR9DNrGpZ4LWI3ebUq7js0SX62DF0zqG5ZS30GMiGMWeU
	l0lit2qvt7Z5TcW8MO3keuF+iTIx1+nh2P0XG3I/7X4oSxTzoSvMtg/a06AcvJ+Bdl46w7t0n0j
	BbPK3pJ4OEmFS90kRjLvaxLhiDOvwRwM1Xlj1IYIA0AIxXxv7AMduoWaWD9HVOux2UANH2hurZ4
	OPKMLddMJJC76OMvt5b2rE+kras1NppNeXXCTiBWEs+9iC9uuYRfjmR8CAOhLCe0BO2Ia4yDaHt
	EEF75sm4dP9T8JADqrbVnagAavV+i55gsUkHLma8c/ArDSMiVTEPn8bHB05yZUvUL68MJX0wQR6
	QS0KZ7UKOHkXK74Ms7464ytuVWKGwGleeQqcheHCJ35l1Gh5QWoQSIyQZe6ry4WbyGdeCz2b70v
	RpqoLKfM4n+7vllMUvpxdMnYBGbcOmIzoYDnyrVB8YpmGJALM=
X-Google-Smtp-Source: AGHT+IGC3x27/9Wz7Q4JF0YzB9FZ/1kNHSA4g27HaFNm2Fi1QrhRtivnaLS1lLxxwqkiJ6Hc2qhMWQ==
X-Received: by 2002:a5d:5f4b:0:b0:3b7:7563:9d59 with SMTP id ffacd0b85a97d-3c5dceff114mr16392120f8f.57.1756307762164;
        Wed, 27 Aug 2025 08:16:02 -0700 (PDT)
Message-ID: <9b66ef8f-c21b-4ad8-9f36-51ce653be661@suse.com>
Date: Wed, 27 Aug 2025 17:16:00 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/3] xen/events: Cleanup find_virq() return codes
To: Jason Andryuk <jason.andryuk@amd.com>, Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
References: <20250826005517.41547-1-jason.andryuk@amd.com>
 <20250826005517.41547-2-jason.andryuk@amd.com>
 <de9005bf-c858-4e7e-bea8-33e5ea2424fc@suse.com>
 <cdbd3849-c366-4d25-bf72-23587d79ab6e@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: <cdbd3849-c366-4d25-bf72-23587d79ab6e@amd.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------35bsTIxa26ft1A61ogRs6brI"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------35bsTIxa26ft1A61ogRs6brI
Content-Type: multipart/mixed; boundary="------------eOB93pMtBWPMxrMPe6LEzvyd";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Jason Andryuk <jason.andryuk@amd.com>, Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Message-ID: <9b66ef8f-c21b-4ad8-9f36-51ce653be661@suse.com>
Subject: Re: [PATCH v2 1/3] xen/events: Cleanup find_virq() return codes
References: <20250826005517.41547-1-jason.andryuk@amd.com>
 <20250826005517.41547-2-jason.andryuk@amd.com>
 <de9005bf-c858-4e7e-bea8-33e5ea2424fc@suse.com>
 <cdbd3849-c366-4d25-bf72-23587d79ab6e@amd.com>
In-Reply-To: <cdbd3849-c366-4d25-bf72-23587d79ab6e@amd.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=

--------------eOB93pMtBWPMxrMPe6LEzvyd
Content-Type: multipart/mixed; boundary="------------wuFqn0L7RqvXg450a0H4e5of"

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

T24gMjYuMDguMjUgMTc6MDMsIEphc29uIEFuZHJ5dWsgd3JvdGU6DQo+IE9uIDIwMjUtMDgt
MjYgMDM6MjIsIEphbiBCZXVsaWNoIHdyb3RlOg0KPj4gT24gMjYuMDguMjAyNSAwMjo1NSwg
SmFzb24gQW5kcnl1ayB3cm90ZToNCj4+PiByYyBpcyBvdmVyd3JpdHRlbiBieSB0aGUgZXZ0
Y2huX3N0YXR1cyBoeXBlcmNhbGwgaW4gZWFjaCBpdGVyYXRpb24sIHNvDQo+Pj4gdGhlIHJl
dHVybiB2YWx1ZSB3aWxsIGJlIHdoYXRldmVyIHRoZSBsYXN0IGl0ZXJhdGlvbiBpcy4NCj4+
DQo+PiBXaGljaCBtYXkgZXZlbiBiZSBhIGZhbHNlICJzdWNjZXNzIi4gRXNwZWNpYWxseSBm
b3IgdGhhdCBpdCBmZWVscyBsaWtlIC4uLg0KPiANCj4gSSdsbCBzdGF0ZSB0aGF0IGhlcmUu
Li4NCj4gDQo+Pg0KPj4+IMKgIENoYW5nZSB0byBhbg0KPj4+IGV4cGxpY2l0IC1FTk9FTlQg
Zm9yIGFuIHVuLWZvdW5kIHZpcnEgYW5kIHJldHVybiAwIG9uIGEgc3VjY2Vzc2Z1bA0KPj4+
IG1hdGNoLg0KPj4+DQo+Pj4gU2lnbmVkLW9mZi1ieTogSmFzb24gQW5kcnl1ayA8amFzb24u
YW5kcnl1a0BhbWQuY29tPg0KPj4NCj4+IC4uLiB0aGlzIGFsc28gd2FudHMgYSBGaXhlczog
dGFnIGFuZCBwZXJoYXBzIGEgQ2M6IHRvIHN0YWJsZUAuDQo+IA0KPiBhbmQgYWRkIHRoZXNl
Lg0KPiANCj4+DQo+Pj4gLS0tIGEvZHJpdmVycy94ZW4vZXZlbnRzL2V2ZW50c19iYXNlLmMN
Cj4+PiArKysgYi9kcml2ZXJzL3hlbi9ldmVudHMvZXZlbnRzX2Jhc2UuYw0KPj4+IEBAIC0x
MzE4LDcgKzEzMTgsNyBAQCBzdGF0aWMgaW50IGZpbmRfdmlycSh1bnNpZ25lZCBpbnQgdmly
cSwgdW5zaWduZWQgaW50IA0KPj4+IGNwdSwgZXZ0Y2huX3BvcnRfdCAqZXZ0Y2huKQ0KPj4+
IMKgIHsNCj4+PiDCoMKgwqDCoMKgIHN0cnVjdCBldnRjaG5fc3RhdHVzIHN0YXR1czsNCj4+
PiDCoMKgwqDCoMKgIGV2dGNobl9wb3J0X3QgcG9ydDsNCj4+PiAtwqDCoMKgIGludCByYyA9
IC1FTk9FTlQ7DQo+Pj4gK8KgwqDCoCBpbnQgcmM7DQo+Pg0KPj4gTWF5YmUgYmVzdCB0byBh
bHNvIG1vdmUgdGhpcyBpbnRvIHRoZSBtb3JlIG5hcnJvdyBzY29wZSAobG9vcCBib2R5KT8N
Cj4gDQo+IFNvdW5kcyBnb29kLg0KPiANCj4+IEVpdGhlciB3YXk6DQo+PiBSZXZpZXdlZC1i
eTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPg0KDQpXaXRoIHRoZSBjaGFuZ2Vz
IHlvdSBwcm9taXNlZCB0byBkbzoNCg0KUmV2aWV3ZWQtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpn
cm9zc0BzdXNlLmNvbT4NCg0KDQpKdWVyZ2VuDQo=
--------------wuFqn0L7RqvXg450a0H4e5of
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-----

--------------wuFqn0L7RqvXg450a0H4e5of--

--------------eOB93pMtBWPMxrMPe6LEzvyd--

--------------35bsTIxa26ft1A61ogRs6brI
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/Ey8FAmivITAFAwAAAAAACgkQsN6d1ii/Ey9t
aQf/Ww/kmBksJ1wFpk47yTbfu6MAIMpQGbB2TRyLlD8iuPWrk/1VS3453T7JQYdzxLSf9FH2/agx
vZRezlYBUgpMbGjER/c6xeE3zls+tvzl6cWtq1IRZkkaEdTy614KtfrGERwZYkEQ2iBBUL04lVFT
k7WhoY7ac73Ra9gSzIOfnvf3MjM9Iu5LwLFqJWf1G87yq0KpF6J5NJjWklRfJDScWahhWg8y5YFS
H8DFz95GbA8Ns6+d0IdqLWGdQCdPnDBI2k6krWUNmj3dd9WXvYtb38jhRUzcQDMqWXftNt0+5O4P
2+51W0zVE2HrwmiLQUrH32k9XcOa+M0Dc3+Su9fdaQ==
=l2gk
-----END PGP SIGNATURE-----

--------------35bsTIxa26ft1A61ogRs6brI--


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 15:19:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 15:19:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096349.1451087 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urHw9-0004cr-CD; Wed, 27 Aug 2025 15:19:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096349.1451087; Wed, 27 Aug 2025 15:19: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 1urHw9-0004ck-9S; Wed, 27 Aug 2025 15:19:45 +0000
Received: by outflank-mailman (input) for mailman id 1096349;
 Wed, 27 Aug 2025 15:19:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=n4tM=3H=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1urHw8-0004cc-93
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 15:19:44 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20619.outbound.protection.outlook.com
 [2a01:111:f403:2415::619])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4112b470-8359-11f0-aeb2-fb57b961d000;
 Wed, 27 Aug 2025 17:19:42 +0200 (CEST)
Received: from BY5PR17CA0027.namprd17.prod.outlook.com (2603:10b6:a03:1b8::40)
 by MN2PR12MB4096.namprd12.prod.outlook.com (2603:10b6:208:1dc::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Wed, 27 Aug
 2025 15:19:37 +0000
Received: from SJ1PEPF0000231E.namprd03.prod.outlook.com
 (2603:10b6:a03:1b8:cafe::1f) by BY5PR17CA0027.outlook.office365.com
 (2603:10b6:a03:1b8::40) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.21 via Frontend Transport; Wed,
 27 Aug 2025 15:19:37 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF0000231E.mail.protection.outlook.com (10.167.242.230) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Wed, 27 Aug 2025 15:19:36 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 27 Aug
 2025 10:19:35 -0500
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.1748.10; Wed, 27 Aug
 2025 08:19:35 -0700
Received: from [172.31.63.243] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 27 Aug 2025 10:19:34 -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>
X-Inumbo-ID: 4112b470-8359-11f0-aeb2-fb57b961d000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=cOFRqn7N7zJm9b2X5u7BViTs0IPX3UzmT9wl61V1tjfrDSjRaGG6ELk/VNgqNWenVIrYre1EfRxweiWTqOVnNX5eRhqivzP4vWftHUn2l1916D/mWb0UKtPe8u7ccq4qFkewU19jFwLmGbYCvJtC52gXfryTV+ESGux/ALl/vS2ryihRI8/9Z+bl8VJ6MmYdHPr4qi7uBYlPaClTLFBrw75t5vDsxKT4nstKDJuJb5ZGqjzsDjGwklqADKEDas94LFSzQySsL10WuzReWYyFUTaNUqHw42eTNEUECb9RuyAeqIylVPckWwKM4092FuRAxooLzMglOsIiIwqbzR1/lQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=qq7t4CFeYpTKx+HpZdNzNTHOoZc/ADz8Ato3v3qUJ8U=;
 b=XTS0s9N3alLyzsDIaNJklxlUTvMw4uORaE+ZmxG6JhUuUrSP8Yi370R6jkplXtHoKuxgFgOqnQH/Ezr4jCJwZZUmn/kXI9B7W30zVhshovawUVOF5dbe2yyqydb/VkhJYelB1jBA3gDRZYhPU8ztd6SshKJ2L/6L3PHueu72TriNf3e4cRsS5meYDRBRT9goOCPb/30uDpqAivvZ20lao1ERSEBblzkFXJdC3vfYQCzgiM8KwrNot8xqG0pK+aC62RW0ozkZA0z20K4YAAbIWNVOcNdwa1qE3MHoSqQQx50m82oCQbu4eEkZVSgVooHOSFyEH0UTLypTY7p5aSwPIA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=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=qq7t4CFeYpTKx+HpZdNzNTHOoZc/ADz8Ato3v3qUJ8U=;
 b=GNoOBw6ZpGi1JPOYfi10S6CrYjgF8lUzcAfuxoWEiUwgwoDcx+4/32IL+c3se+1RtRzMfD5hpYubL+Rx14W9vXx93KT8KjF+y+qHdaHc/9EfZkPN9zkd8kyBlzqP6p0Zct7owPv9OMqVHjDfTTiaAveFqPcXWfg1nGlAGRK7i7I=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <0faeaa8f-7b91-4116-a470-1a313fc08430@amd.com>
Date: Wed, 27 Aug 2025 11:20:02 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 05/11] libxl: Convert libxl__json_parse() to use
 json-c
To: Anthony PERARD <anthony@xenproject.org>, <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross
	<jgross@suse.com>
References: <20250808145602.41716-1-anthony@xenproject.org>
 <20250808145602.41716-6-anthony@xenproject.org>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20250808145602.41716-6-anthony@xenproject.org>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF0000231E:EE_|MN2PR12MB4096:EE_
X-MS-Office365-Filtering-Correlation-Id: 66c05d9b-5378-4932-b579-08dde57d2222
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?dzhrSXMvZFR0M2NFU1drWnhiRkNXOUlybmRFSkFjWUxWVmxad1FZZzgrdllu?=
 =?utf-8?B?UzNSQ200Nm8yWlRHWHRLQStvOW8zWkFzMjNidVhzbXVkRkhNWmlPT1hVMGQ1?=
 =?utf-8?B?S0w4aUpPNjlQSldFYzRDcFdZZ2tyWkRaWXhYMStrYTZaSTlMb0JoM2xVeW8z?=
 =?utf-8?B?eUxqZTlkeGM2d1NOYmMxZ0ZIanUxUU5jbnErcGtLYTgzVVNjc09pTHlONnBw?=
 =?utf-8?B?ZFFwaDlmVDVHZnplY1krbEZHcUFFZ20zN3YyMGE4djlEcXRNZGZ3T1dBTjl6?=
 =?utf-8?B?VEtYWVBQQnp6T1FxNWhoZzFNbDVUbWF2WWhqSDdkMVd4bVhKQ1ZPQngrNWJk?=
 =?utf-8?B?WnJtQkNzcDlZSmRJUVM2S3p2MGJtVmpIVElIajYvVzR6UFd1dzdldzd3WDBq?=
 =?utf-8?B?bGg0bHkzSE84VnJwV1MzeU40MzB1U1F1Qk0wQlJJQlB4b3hyUXYxb3grbnk2?=
 =?utf-8?B?WE1DMEN1Z2t6RXIwb0YwZ21ZUENnQThNSEQxaVl0cUdITGxEd1V1VldXdG9H?=
 =?utf-8?B?dzhDVURIUE8rSFFZbmFOMnV6MW1DTU8yT0FFLzhlblVuQ3c0OHZsakxic3dK?=
 =?utf-8?B?dmNPMTBDQmlWYmc4d2dFUmxjVllrK0dLTm5CbksweDR2U2JwVXUrUSs2aENn?=
 =?utf-8?B?MlZhVnphWkUwWld0U0tSVnNpR0llM1VKN0ppbGxmZ3ZXMDFBVDcrOU1nVWty?=
 =?utf-8?B?ZkYrUFdmQ1d6cWdVVDZ4T3pnTi9qU0YvYVpSMmhrb3MwOVJwVEFWS1hYTWFq?=
 =?utf-8?B?MGtSUTMvZHNjd1duSlBnM3B1d3c1R09NYTN3U2xwZWFtdWkxTFNxOHlNb09y?=
 =?utf-8?B?SVBuWnd6aW8ybk91SEhMNjB6Y3dUQkQ1YmhVamM5eGJxK0JxOTJ5TE1aWnZ3?=
 =?utf-8?B?L3NRcG1nQ2J6b2ZWWWZReWtWVzkvenZYUzhwSm00ZzloRmxBdFZJcHdoQ1FU?=
 =?utf-8?B?ZWdHRTlRdWEyV1ZneXVVam55bERJTDdXMXNMWDdnUVF5N2IvSUcwVmlNUTlC?=
 =?utf-8?B?QjdzWU53NHltZVZsOHd4d01TcVRtUUxXODZKZ2IyMlIyTVphd1NVbTRveGJI?=
 =?utf-8?B?SEhDaUQzL0hzZXZLU3k4OW1WbDI2dU9EeHpkam1sUGU2RGgxSTN1ODhyVzFs?=
 =?utf-8?B?cE9uOEIraUtNNyt2R2R6eHpHdFFMLytuc0ZlT2x6ZnhXR24wTHNYT1lVcHVN?=
 =?utf-8?B?eG9WNEVJSGZ3bUhUWlZ0RGNsYUtiOTJZUGlrbmZQMHVwZXF2Y3QwU3k3dVVL?=
 =?utf-8?B?NDROZ2tYRllud0VlM2E4Tkp1cFB1eld5cWppcUk5TVlqYVJjTnhkdVZXaXdN?=
 =?utf-8?B?emdjMlR5cWM5ZkZadTQ5cEpjZlNLVk9ITy9SZkc5UHdLT2tXbXVENjh0N2ww?=
 =?utf-8?B?M2U2djZYNktkR2VmSkhmRUNCZVcwdXBvODRlRFRRRUVTaHdvalZLRS9DSkRW?=
 =?utf-8?B?by9VU2oyeDBpZTQzamdjaGl2VWZDYjl1dkkxbVc1ZUlNbnlNN2FCeEpTZHc1?=
 =?utf-8?B?VkF0MENoMmMwTlFRSTF2WGVmNDBNZ3RadzZLbCtMenBHWktzbjd2N0hWSmsy?=
 =?utf-8?B?bndsb0Y3b0t0R3hCVjBJYVhVOTIvcUYvbU1ZdGxrekZpM0djZ1FhdE1zOGpW?=
 =?utf-8?B?bURaUnlJcWNvd2xBY05lSDFDZStBOEhudzltRllYNUJSUnd2eHA1WHgrdlJT?=
 =?utf-8?B?Qm02b2c2YjJRd2dYeENoYWlkUTBKQWhxV1grMVFlWGlITGZGK2IrV1kxL3R6?=
 =?utf-8?B?d0NGS0lOcmtzYmJHR0dES3dhamNFRUgvcm9xaG0vL3czVUQyS09xR3lBNjBp?=
 =?utf-8?B?aE5XSC9OeWNOc2hxU3lEMTRMaGFTMHdndnFuSDBzeFBnNHpCeXJKRVJ6NS9B?=
 =?utf-8?B?SDI0Q3FIQzZFSGtlV0dRVzB6VDBaWGRMTjFZc1Zma05DMmRjMW9CeElCVmRC?=
 =?utf-8?B?ZEoyYjMzY0JyTDBnOCtTa2ttR0c3LzZpajgyRU84LysxR2tKdUZTRzhsUVAr?=
 =?utf-8?B?eHRidy9wK29qNU1xWDJ2MlMwVUM1dHVRTnRsMTlHTzdaWVNKSW0yMUtUME5w?=
 =?utf-8?Q?lQ5RxG?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Aug 2025 15:19:36.1507
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 66c05d9b-5378-4932-b579-08dde57d2222
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF0000231E.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4096

On 2025-08-08 10:55, Anthony PERARD wrote:
> From: Anthony PERARD <anthony.perard@vates.tech>
> 
> This reuse the "json_callback_*" implemented for the yajl parser as
> they don't really need to be changed. It's just awkward to have to
> cast between `unsigned char` and `char.`
> 
> Replace few strncpy() by memcpy() to let the compiler know we want to
> copy the string without the terminating nul, as we are adding it just
> after.
> 
> Also, it should be possible to keep using YAJL parser when json-c
> library isn't available.
> 
> Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 15:21:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 15:21:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096368.1451097 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urHxl-0006Mz-Ox; Wed, 27 Aug 2025 15:21:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096368.1451097; Wed, 27 Aug 2025 15:21: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 1urHxl-0006Ms-Lu; Wed, 27 Aug 2025 15:21:25 +0000
Received: by outflank-mailman (input) for mailman id 1096368;
 Wed, 27 Aug 2025 15:21:24 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=bDd0=3H=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1urHxj-0006Mj-UE
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 15:21:24 +0000
Received: from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com
 [2a00:1450:4864:20::42e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7cc4627d-8359-11f0-ae26-e363de0e7a9e;
 Wed, 27 Aug 2025 17:21:21 +0200 (CEST)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-3c79f0a606eso2484557f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 27 Aug 2025 08:21:21 -0700 (PDT)
Received: from ?IPV6:2003:e5:872d:6400:8c05:37ee:9cf6:6840?
 (p200300e5872d64008c0537ee9cf66840.dip0.t-ipconnect.de.
 [2003:e5:872d:6400:8c05:37ee:9cf6:6840])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3c70e4ba390sm22239966f8f.12.2025.08.27.08.21.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Aug 2025 08:21: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>
X-Inumbo-ID: 7cc4627d-8359-11f0-ae26-e363de0e7a9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756308081; x=1756912881; 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=ZJ4Lyh9S68n97ZQMBN60BvENdELiq1GBSuRV257pKsw=;
        b=Fo2ehHX/b0rFk5nRx/sCMQhzCi73TwTylzRbERVW/xW/gpbeUV1aaDyTbA1lydirom
         A8Cic33H+PXWNDG0JVQFwY769dvqKaGZE2iQftH/m+8RqUZt3x+75sWNNX3WuadJOXE4
         pUS3NJF8wCBIpODO1Ag8u7ORG36jHScYVAOOtB8CMRGcN+JDdJnkBhMn8HFMe2B1g+IV
         6+RXQ2GRy51bBYyh1pw+XO3NcMAJGcxBphREZ+1qi4C2yIUV8/G0NGA4CUDvgGXISSvk
         z8hQl4NBWUPfFfx8MIn+OHOXPs0d4Y/CGoXXO5WrfYKuLGkoQBGXJsaQeKW0mlqUNk6E
         P8tA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756308081; x=1756912881;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=ZJ4Lyh9S68n97ZQMBN60BvENdELiq1GBSuRV257pKsw=;
        b=QA60bpk6byq3MOSKJTb7c3Lp2zSZCRcHRYKB98YCN8CNogpVXlBmcBjE+lH57Va625
         OkYSKOWbEQ7U+4X50E+dblxCFxYge/guE/4VtmggfPnU0vlZfJY+s3qIhZI2QTxneZzE
         +nOfx+7tCbb9v/Jtm/a39kQYwZRAU+mYlnGryoC5djWl+InO2fai1DNkYMPP+9Vxcsyg
         mpMjifr78GaoANDC2ufNdJsNfADhc9XIqX8LrpaXbzSUTn8LlVNgx28jBIYo6Y1x/jaW
         5UVAXxBjScOxJPZP2JqbuExZNOfdfWcGzl+UCqJWW5erwNAii2aZ4C+PxAJxNuCs/8VH
         R07g==
X-Gm-Message-State: AOJu0YyJLHsqHsP7YSLLB0XpuYixIxd/BWp8AaAPF1mjPr94idE0UfXV
	KYyYgXZkZOGCfo/p4Shdwb7YYXgLnVaYyu1TliGO7N77KuA3hJANGOztFIMddCcUaHY=
X-Gm-Gg: ASbGncv7yq29+n/GgYf4qpGS9tejnNmCVi8miLEacvyePtmdn9hNsCkUWSSqBvWS6CF
	+J52DMBHp6+DFRlUfWeHSZlTlCd2fR+aemcdc6uC1lFuPkbkmZ97l6uLtQepZ3qaHrMdnPiFVIC
	DbgdhTx0wl04cIW7gTZ4J4oD1AYWB2lIlCPbuspr0XLWgzcI+nMjsfj1bMQJp8ZDqMtJJ2o/etz
	yvLw/dDAOJM6QsCTtniHPRuNrN9nbeNAjInovDWHEN7/GSlkfsno8U4n+bneqCgtLkh5zMzoIQM
	PD1OQDE0CsuR256PRpK/VlWH6pOtQ+9INmzGEof7VRaJc6h9mElSSypIy+4CQgoJcQmkIC03bZm
	hnBpsyGgdJsfF5IY6qzEF/Rg+8LexJPzP7CdAl3x7kpBLoJILpzXgh4/A+lAexfsYyJJBgX3EWQ
	WtHaYmsZY54zxQWDE7zn1XL7JScHYO6gEdhqTBdEzzpZVu3tsF/lkWgoAC+A==
X-Google-Smtp-Source: AGHT+IFKXKZ8cN3iLWN6n8+GBiZKGmyEDPex9uDRHeEYZf4mmSeyQ5c4G4NvKVn2qSQawBYHsXZ4CQ==
X-Received: by 2002:a05:6000:1ac8:b0:3ca:99ad:5191 with SMTP id ffacd0b85a97d-3ca99ad5743mr5990663f8f.8.1756308081046;
        Wed, 27 Aug 2025 08:21:21 -0700 (PDT)
Message-ID: <2d7bceff-d70f-4f17-b833-380ffc06577e@suse.com>
Date: Wed, 27 Aug 2025 17:21:19 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/3] xen/events: Return -EEXIST for bound VIRQs
To: Jason Andryuk <jason.andryuk@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
References: <20250826005517.41547-1-jason.andryuk@amd.com>
 <20250826005517.41547-3-jason.andryuk@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: <20250826005517.41547-3-jason.andryuk@amd.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------yVAY1BcNylNoOBfWz0aii7DJ"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------yVAY1BcNylNoOBfWz0aii7DJ
Content-Type: multipart/mixed; boundary="------------0ny5680ISBnZo4aAVwoi2CT4";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Jason Andryuk <jason.andryuk@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
Message-ID: <2d7bceff-d70f-4f17-b833-380ffc06577e@suse.com>
Subject: Re: [PATCH v2 2/3] xen/events: Return -EEXIST for bound VIRQs
References: <20250826005517.41547-1-jason.andryuk@amd.com>
 <20250826005517.41547-3-jason.andryuk@amd.com>
In-Reply-To: <20250826005517.41547-3-jason.andryuk@amd.com>

--------------0ny5680ISBnZo4aAVwoi2CT4
Content-Type: multipart/mixed; boundary="------------lcecfKkKjQpW638uz1722be8"

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

T24gMjYuMDguMjUgMDI6NTUsIEphc29uIEFuZHJ5dWsgd3JvdGU6DQo+IENoYW5nZSBmaW5k
X3ZpcnEoKSB0byByZXR1cm4gLUVFWElTVCB3aGVuIGEgVklSUSBpcyBib3VuZCB0byBhDQo+
IGRpZmZlcmVudCBDUFUgdGhhbiB0aGUgb25lIHBhc3NlZCBpbi4gIFdpdGggdGhhdCwgcmVt
b3ZlIHRoZSBCVUdfT04oKQ0KPiBmcm9tIGJpbmRfdmlycV90b19pcnEoKSB0byBwcm9wb2dh
dGUgdGhlIGVycm9yIHVwd2FyZHMuDQo+IA0KPiBTb21lIFZJUlFzIGFyZSBwZXItY3B1LCBi
dXQgb3RoZXJzIGFyZSBwZXItZG9tYWluIG9yIGdsb2JhbC4gIFRob3NlIG11c3QNCj4gYmUg
Ym91bmQgdG8gQ1BVMCBhbmQgY2FuIHRoZW4gbWlncmF0ZSBlbHNld2hlcmUuICBUaGUgbG9v
a3VwIGZvcg0KPiBwZXItZG9tYWluIGFuZCBnbG9iYWwgd2lsbCBwcm9iYWJseSBmYWlsIHdo
ZW4gbWlncmF0ZWQgb2ZmIENQVSAwLA0KPiBlc3BlY2lhbGx5IHdoZW4gdGhlIGN1cnJlbnQg
Q1BVIGlzIHRyYWNrZWQuICBUaGlzIG5vdyByZXR1cm5zIC1FRVhJU1QNCj4gaW5zdGVhZCBv
ZiBCVUdfT04oKS4NCj4gDQo+IEEgc2Vjb25kIGNhbGwgdG8gYmluZCBhIHBlci1kb21haW4g
b3IgZ2xvYmFsIFZJUlEgaXMgbm90IGV4cGVjdGVkLCBidXQNCj4gbWFrZSBpdCBub24tZmF0
YWwgdG8gYXZvaWQgdHJ5aW5nIHRvIGxvb2sgdXAgdGhlIGlycSwgc2luY2Ugd2UgZG9uJ3QN
Cj4ga25vdyB3aGljaCBwZXJfY3B1KHZpcnFfdG9faXJxKSBpdCB3aWxsIGJlIGluLg0KPiAN
Cj4gU2lnbmVkLW9mZi1ieTogSmFzb24gQW5kcnl1ayA8amFzb24uYW5kcnl1a0BhbWQuY29t
Pg0KPiAtLS0NCj4gVjI6DQo+IE5ldw0KPiAtLS0NCj4gICBkcml2ZXJzL3hlbi9ldmVudHMv
ZXZlbnRzX2Jhc2UuYyB8IDE3ICsrKysrKysrKysrKy0tLS0tDQo+ICAgMSBmaWxlIGNoYW5n
ZWQsIDEyIGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0
IGEvZHJpdmVycy94ZW4vZXZlbnRzL2V2ZW50c19iYXNlLmMgYi9kcml2ZXJzL3hlbi9ldmVu
dHMvZXZlbnRzX2Jhc2UuYw0KPiBpbmRleCAxOTlhZmU1OWYzNTcuLmE4NWJjNDNmNDM0NCAx
MDA2NDQNCj4gLS0tIGEvZHJpdmVycy94ZW4vZXZlbnRzL2V2ZW50c19iYXNlLmMNCj4gKysr
IGIvZHJpdmVycy94ZW4vZXZlbnRzL2V2ZW50c19iYXNlLmMNCj4gQEAgLTEzMTQsMTAgKzEz
MTQsMTIgQEAgaW50IGJpbmRfaW50ZXJkb21haW5fZXZ0Y2huX3RvX2lycV9sYXRlZW9pKHN0
cnVjdCB4ZW5idXNfZGV2aWNlICpkZXYsDQo+ICAgfQ0KPiAgIEVYUE9SVF9TWU1CT0xfR1BM
KGJpbmRfaW50ZXJkb21haW5fZXZ0Y2huX3RvX2lycV9sYXRlZW9pKTsNCj4gICANCj4gLXN0
YXRpYyBpbnQgZmluZF92aXJxKHVuc2lnbmVkIGludCB2aXJxLCB1bnNpZ25lZCBpbnQgY3B1
LCBldnRjaG5fcG9ydF90ICpldnRjaG4pDQo+ICtzdGF0aWMgaW50IGZpbmRfdmlycSh1bnNp
Z25lZCBpbnQgdmlycSwgdW5zaWduZWQgaW50IGNwdSwgZXZ0Y2huX3BvcnRfdCAqZXZ0Y2hu
LA0KPiArCQkgICAgIGJvb2wgcGVyY3B1KQ0KPiAgIHsNCj4gICAJc3RydWN0IGV2dGNobl9z
dGF0dXMgc3RhdHVzOw0KPiAgIAlldnRjaG5fcG9ydF90IHBvcnQ7DQo+ICsJYm9vbCBleGlz
dHMgPSBmYWxzZTsNCj4gICAJaW50IHJjOw0KPiAgIA0KPiAgIAltZW1zZXQoJnN0YXR1cywg
MCwgc2l6ZW9mKHN0YXR1cykpOw0KPiBAQCAtMTMyOSwxMiArMTMzMSwxNiBAQCBzdGF0aWMg
aW50IGZpbmRfdmlycSh1bnNpZ25lZCBpbnQgdmlycSwgdW5zaWduZWQgaW50IGNwdSwgZXZ0
Y2huX3BvcnRfdCAqZXZ0Y2huKQ0KPiAgIAkJCWNvbnRpbnVlOw0KPiAgIAkJaWYgKHN0YXR1
cy5zdGF0dXMgIT0gRVZUQ0hOU1RBVF92aXJxKQ0KPiAgIAkJCWNvbnRpbnVlOw0KPiAtCQlp
ZiAoc3RhdHVzLnUudmlycSA9PSB2aXJxICYmIHN0YXR1cy52Y3B1ID09IHhlbl92Y3B1X25y
KGNwdSkpIHsNCj4gKwkJaWYgKHN0YXR1cy51LnZpcnEgIT0gdmlycSkNCj4gKwkJCWNvbnRp
bnVlOw0KPiArCQlpZiAoc3RhdHVzLnZjcHUgPT0geGVuX3ZjcHVfbnIoY3B1KSkgew0KPiAg
IAkJCSpldnRjaG4gPSBwb3J0Ow0KPiAgIAkJCXJldHVybiAwOw0KPiArCQl9IGVsc2UgaWYg
KCFwZXJjcHUpIHsNCj4gKwkJCWV4aXN0cyA9IHRydWU7DQo+ICAgCQl9DQo+ICAgCX0NCj4g
LQlyZXR1cm4gLUVOT0VOVDsNCj4gKwlyZXR1cm4gZXhpc3RzID8gLUVFWElTVCA6IC1FTk9F
TlQ7DQo+ICAgfQ0KPiAgIA0KPiAgIC8qKg0KPiBAQCAtMTM4MSw4ICsxMzg3LDkgQEAgaW50
IGJpbmRfdmlycV90b19pcnEodW5zaWduZWQgaW50IHZpcnEsIHVuc2lnbmVkIGludCBjcHUs
IGJvb2wgcGVyY3B1KQ0KPiAgIAkJCWV2dGNobiA9IGJpbmRfdmlycS5wb3J0Ow0KPiAgIAkJ
ZWxzZSB7DQo+ICAgCQkJaWYgKHJldCA9PSAtRUVYSVNUKQ0KPiAtCQkJCXJldCA9IGZpbmRf
dmlycSh2aXJxLCBjcHUsICZldnRjaG4pOw0KPiAtCQkJQlVHX09OKHJldCA8IDApOw0KPiAr
CQkJCXJldCA9IGZpbmRfdmlycSh2aXJxLCBjcHUsICZldnRjaG4sIHBlcmNwdSk7DQo+ICsJ
CQlpZiAocmV0KQ0KPiArCQkJCWdvdG8gb3V0Ow0KDQpJIHRoaW5rIHlvdSBhcmUgbGVha2lu
ZyBpbmZvIGhlcmUuIEkgZ3Vlc3MgYSBjYWxsIG9mIF9fdW5iaW5kX2Zyb21faXJxKCkgaXMN
CndhbnRlZCBsaWtlIGluIHRoZSBlcnJvciBjYXNlIGJlbG93IChub3RlIHRoYXQgdGhlIGNh
c2Ugb2Ygbm8gdmFsaWQgZXZ0Y2huIGlzDQpoYW5kbGVkIHRoZXJlIGp1c3QgZmluZSkuDQoN
Cg0KSnVlcmdlbg0K
--------------lcecfKkKjQpW638uz1722be8
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-----

--------------lcecfKkKjQpW638uz1722be8--

--------------0ny5680ISBnZo4aAVwoi2CT4--

--------------yVAY1BcNylNoOBfWz0aii7DJ
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/Ey8FAmivInAFAwAAAAAACgkQsN6d1ii/Ey9u
nQf/d2Dv3yKWrLHyL84Dft14w1Ylc/XDu3j8B2EBCbORfuQGnulpJHpA3Bf/C67kluGYPk4U3SvT
GWs7HyWg6xQB73aG9pw4No4UbvNdWrFR9YHYPZ57D4icpbMyb0e0xREjeDT5FogUXUL0Y6NUnH+R
qR37bGsxlvLkCQ6FPMs73UJiSWZgRL7hy1KkC9FSiQnTkrI1/Ju7dtyD8boYs6Pzhj5yLQjpm78V
Ev6HA8Zeoe0VDvhbX1o6/0WjeCtWKYE4GRHEUnCGoNRzN422HR6jj38iOuVmRARrMKI/n2Br18it
NjMp+X/TIiAgeIXxz506MnbPv77aD8aZwSVBx/3d5w==
=ygjV
-----END PGP SIGNATURE-----

--------------yVAY1BcNylNoOBfWz0aii7DJ--


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 15:22:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 15:22:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096385.1451107 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urHys-00070h-34; Wed, 27 Aug 2025 15:22:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096385.1451107; Wed, 27 Aug 2025 15:22: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 1urHyr-00070a-Vp; Wed, 27 Aug 2025 15:22:33 +0000
Received: by outflank-mailman (input) for mailman id 1096385;
 Wed, 27 Aug 2025 15:22:32 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1urHyq-00070S-Pe
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 15:22:32 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1urHyq-009I0B-03;
 Wed, 27 Aug 2025 15:22:32 +0000
Received: from [2a01:e0a:1da:8420:b77:bd5:6e45:7633] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1urHyp-004CcG-34;
 Wed, 27 Aug 2025 15:22: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date;
	bh=8srNdS1P6Vamy9xuleAXhqisS5VIfUS7W7O2wA7G5X4=; b=QQw8dzd9USKCvqtguW1JIkLBCd
	7czFHp7cFDAn5UVAXkmPlDUIYS00Ai+WKeiiKhW7cVix3LkGTvgzICDJNSu62ESbNcpJOsc3YTk7g
	s1j0+tw0eKTCj9WSABctSjFo1GY5n8lrmnOeYpl9wNygJsvWP1IFc1+XOWlUkT3knMKw=;
Date: Wed, 27 Aug 2025 17:22:29 +0200
From: Anthony PERARD <anthony@xenproject.org>
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: xen-devel@lists.xenproject.org, ray.huang@amd.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>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v7 11/13] tools/cpufreq: extract CPPC para from cpufreq
 para
Message-ID: <aK8itT5YOUkY21n1@l14>
References: <20250822105218.3601273-1-Penny.Zheng@amd.com>
 <20250822105218.3601273-12-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250822105218.3601273-12-Penny.Zheng@amd.com>

On Fri, Aug 22, 2025 at 06:52:16PM +0800, Penny Zheng wrote:
> diff --git a/tools/misc/xenpm.c b/tools/misc/xenpm.c
> index 6b054b10a4..8fc1d7cc65 100644
> --- a/tools/misc/xenpm.c
> +++ b/tools/misc/xenpm.c
> @@ -898,6 +900,23 @@ static void print_cpufreq_para(int cpuid, struct xc_get_cpufreq_para *p_cpufreq)
>      printf("\n");
>  }
>  
> +/* show cpu cppc parameters information on CPU cpuid */
> +static int show_cppc_para_by_cpuid(xc_interface *xc_handle, unsigned int cpuid)
> +{
> +    int ret;
> +    xc_cppc_para_t cppc_para;
> +
> +    ret = xc_get_cppc_para(xc_handle, cpuid, &cppc_para);
> +    if ( !ret )
> +        print_cppc_para(cpuid, &cppc_para);
> +    else if ( errno == ENODEV )
> +        ret = 0; /* Ignore unsupported platform */
> +    else
> +        fprintf(stderr, "[CPU%u] failed to get cppc parameter\n", cpuid);

You might want to add ": %s" strerror(errno) to the error printed, which
could help figure out why we failed to get the parameters.


The rest of the tool side of the patch, with Jan suggestion, looks good
to me, so Acked-by: Anthony PERARD <anthony.perard@vates.tech> for the
next round.

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 15:28:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 15:28:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096404.1451116 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urI4d-0007dF-Mc; Wed, 27 Aug 2025 15:28:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096404.1451116; Wed, 27 Aug 2025 15: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 1urI4d-0007d8-Jz; Wed, 27 Aug 2025 15:28:31 +0000
Received: by outflank-mailman (input) for mailman id 1096404;
 Wed, 27 Aug 2025 15:28:29 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=bDd0=3H=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1urI4b-0007d2-Ew
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 15:28:29 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7ad020dc-835a-11f0-aeb2-fb57b961d000;
 Wed, 27 Aug 2025 17:28:28 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-45b55ed86b9so27863985e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 27 Aug 2025 08:28:28 -0700 (PDT)
Received: from ?IPV6:2003:e5:872d:6400:8c05:37ee:9cf6:6840?
 (p200300e5872d64008c0537ee9cf66840.dip0.t-ipconnect.de.
 [2003:e5:872d:6400:8c05:37ee:9cf6:6840])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3c70e4ba41bsm22171534f8f.10.2025.08.27.08.28.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Aug 2025 08:28: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>
X-Inumbo-ID: 7ad020dc-835a-11f0-aeb2-fb57b961d000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756308507; x=1756913307; 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=ZHO/YQ+haGNkt9khqU2T0JCsW992oiJXts5vyXlK3HM=;
        b=L/ROvGYz4x27jD9N1uaFHk4RLQ8ACx4asyvs0KgqLBsfR6CrLtUOJDPAyjIefwIq/5
         jlwcW4BlW2Q77WDBaZGVHW8YfcssEMwpOzhZg4lVNI6eZM89tGoVV0+oGMxSMnaiRkhe
         1JfJnfABUzDQRmCA3TH1o9hZU1l5ukudGMvJBnhVr8s3IeDEFi4atCEXzamnohDvKozZ
         IyYSJjvSxkfN2txxErbmKUo1BqawrbaWM2dHhvqSui150Y3yN+qT8ZoJVjYBT6wlNrGb
         QIPTyOAWVoOkHWabHbpTUoJfFrWMkRQ3BkEnoSksNDe4HKcS3Argcn4fnvjOuAgGqA5M
         aGbw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756308507; x=1756913307;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=ZHO/YQ+haGNkt9khqU2T0JCsW992oiJXts5vyXlK3HM=;
        b=aimONLbLsLDfrKc6CjrsdPInZqx12UeAKMUopCyLMt7CoWPn2gF8BGR0BS+53QYuvD
         u0VtGo56ujAiiL6+4te92oZ4C94kDakAzVVIMdA21eAeOHBd8S1h0NFzUU4Dzz391FZL
         9+1TfdWuozjzEiMc6okY6LAY/cX5UdObEuLIwn9X8BI9NELWrZBIuzV6SXOhxA3/stTo
         l0df7qU7rkqjghGUQNUvNvPqelKB8HvU0P2HM2ybdfDAtSI0EMK/UUpCSC3sK9ONLfy3
         z2J05Q63sX5RQpvALMryzxeRd/ieTgMz2fDybe9snm+HL6fCOBC9iPAjnz46I0SuZUZI
         BiSQ==
X-Forwarded-Encrypted: i=1; AJvYcCU7gAhSohf1odjUNRXWCdZJLoemSme85+c8dMYl7dsk/7JwCKpChv4xBnAwF0g05EMzwD/eZifqEsQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzwjYKCZK3H++w8YmuSB8vUeluOMS/aghiTQaCFPp0M7GFOMNDs
	MPDcleBKnddfWa1Xw0lVwgvhpeexnCZm1btgVCxbcM1OS3x+AV5RSc1TB0Pj9q3IJyg=
X-Gm-Gg: ASbGncvOEfXB5eBdOybAKsvlFBLVpu1K+ZSfNYvYL0U72PMX5hLsGVCYYxpjvY5MKfU
	p7+W8WpRJzr4Co3VEdeUa9NUf+NtuVmDLuTOfGWhB28bzGClNPrD20Wmv3HGlXW5Isx+syGPRtO
	83hGDmeTtq9xxdZmVgJOP4qw427opBuwhVHxDoc/vW84NxsFsskVI7xgTQzL09EuDQaYkKO/zGQ
	RJ3xgeqOJKWTqmTpPhWw4hDfBBSqe2NkxRiH3bDC74C5HMCdxWH6AGC+9skQSz8oyLj5NQ2kSbe
	m0nTkTSnxe7z5tK0wirP5elfb/CGuoRf0NzWIqF1y+eOOaSS8pf6fnMcmtcYVDTqHyo0UNwGZlA
	h0kwLgYY6ixhz9xIDzBefS5Xr+z8H+4D54orgxTy63+Y+vjiZCpmT1F1QcYbtQj0/3z3nv/B0rn
	5FqALf4lfvywj3lwFKk5CnKrebJS2wEyrpQ+Cac1z9LIslErqT+Bgbw9MSAOTra8yjQvLX
X-Google-Smtp-Source: AGHT+IEeLGCNsJOtrMU+ti5GRWsMjoLHu9rO9GZ9XlrO0SXAsnmfPKsyHxMW9X1kcm5TzyA+FvqzBQ==
X-Received: by 2002:a05:600c:1ca0:b0:456:2698:d4d9 with SMTP id 5b1f17b1804b1-45b656a81femr61146055e9.3.1756308507273;
        Wed, 27 Aug 2025 08:28:27 -0700 (PDT)
Message-ID: <b57adcd5-59ca-4f0c-b584-e32bb6bf76ca@suse.com>
Date: Wed, 27 Aug 2025 17:28:25 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/3] xen/events: Update virq_to_irq on migration
To: Jason Andryuk <jason.andryuk@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Chris Wright <chrisw@sous-sol.org>,
 Jeremy Fitzhardinge <jeremy@xensource.com>
Cc: stable@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org
References: <20250826005517.41547-1-jason.andryuk@amd.com>
 <20250826005517.41547-4-jason.andryuk@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: <20250826005517.41547-4-jason.andryuk@amd.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------FielMo0vxUF6NqHBXh3OYeI1"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------FielMo0vxUF6NqHBXh3OYeI1
Content-Type: multipart/mixed; boundary="------------fbbiWdt0Ibqsr7Bm5TKakccR";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Jason Andryuk <jason.andryuk@amd.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Chris Wright <chrisw@sous-sol.org>,
 Jeremy Fitzhardinge <jeremy@xensource.com>
Cc: stable@vger.kernel.org, xen-devel@lists.xenproject.org,
 linux-kernel@vger.kernel.org
Message-ID: <b57adcd5-59ca-4f0c-b584-e32bb6bf76ca@suse.com>
Subject: Re: [PATCH v2 3/3] xen/events: Update virq_to_irq on migration
References: <20250826005517.41547-1-jason.andryuk@amd.com>
 <20250826005517.41547-4-jason.andryuk@amd.com>
In-Reply-To: <20250826005517.41547-4-jason.andryuk@amd.com>

--------------fbbiWdt0Ibqsr7Bm5TKakccR
Content-Type: multipart/mixed; boundary="------------t4JMt5F7jtJ5f9n0h2Ibtk09"

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

T24gMjYuMDguMjUgMDI6NTUsIEphc29uIEFuZHJ5dWsgd3JvdGU6DQo+IFZJUlFzIGNvbWUg
aW4gMyBmbGF2b3JzLCBwZXItVlBVLCBwZXItZG9tYWluLCBhbmQgZ2xvYmFsLCBhbmQgdGhl
IFZJUlFzDQo+IGFyZSB0cmFja2VkIGluIHBlci1jcHUgdmlycV90b19pcnEgYXJyYXlzLg0K
PiANCj4gUGVyLWRvbWFpbiBhbmQgZ2xvYmFsIFZJUlFzIG11c3QgYmUgYm91bmQgb24gQ1BV
IDAsIGFuZA0KPiBiaW5kX3ZpcnFfdG9faXJxKCkgc2V0cyB0aGUgcGVyX2NwdSB2aXJxX3Rv
X2lycSBhdCByZWdpc3RyYXRpb24gdGltZQ0KPiBMYXRlciwgdGhlIGludGVycnVwdCBjYW4g
bWlncmF0ZSwgYW5kIGluZm8tPmNwdSBpcyB1cGRhdGVkLiAgV2hlbg0KPiBjYWxsaW5nIF9f
dW5iaW5kX2Zyb21faXJxKCksIHRoZSBwZXItY3B1IHZpcnFfdG9faXJxIGlzIGNsZWFyZWQg
Zm9yIGENCj4gZGlmZmVyZW50IGNwdS4gIElmIGJpbmRfdmlycV90b19pcnEoKSBpcyBjYWxs
ZWQgYWdhaW4gd2l0aCBDUFUgMCwgdGhlDQo+IHN0YWxlIGlycSBpcyByZXR1cm5lZC4gIFRo
ZXJlIHdvbid0IGJlIGFueSBpcnFfaW5mbyBmb3IgdGhlIGlycSwgc28NCj4gdGhpbmdzIGJy
ZWFrLg0KPiANCj4gTWFrZSB4ZW5fcmViaW5kX2V2dGNobl90b19jcHUoKSB1cGRhdGUgdGhl
IHBlcl9jcHUgdmlycV90b19pcnEgbWFwcGluZ3MNCj4gdG8ga2VlcCB0aGVtIHVwZGF0ZSB0
byBkYXRlIHdpdGggdGhlIGN1cnJlbnQgY3B1LiAgVGhpcyBlbnN1cmVzIHRoZQ0KPiBjb3Jy
ZWN0IHZpcnFfdG9faXJxIGlzIGNsZWFyZWQgaW4gX191bmJpbmRfZnJvbV9pcnEoKS4NCj4g
DQo+IEZpeGVzOiBlNDZjZGI2NmM4ZmMgKCJ4ZW46IGV2ZW50IGNoYW5uZWxzIikNCj4gQ2M6
IHN0YWJsZUB2Z2VyLmtlcm5lbC5vcmcNCj4gU2lnbmVkLW9mZi1ieTogSmFzb24gQW5kcnl1
ayA8amFzb24uYW5kcnl1a0BhbWQuY29tPg0KPiAtLS0NCj4gVjI6DQo+IERpZmZlcmVudCBh
cHByb2FjaCBjaGFuZ2luZyB2aXJxX3RvX2lycQ0KPiAtLS0NCj4gICBkcml2ZXJzL3hlbi9l
dmVudHMvZXZlbnRzX2Jhc2UuYyB8IDExICsrKysrKysrKysrDQo+ICAgMSBmaWxlIGNoYW5n
ZWQsIDExIGluc2VydGlvbnMoKykNCj4gDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3hlbi9l
dmVudHMvZXZlbnRzX2Jhc2UuYyBiL2RyaXZlcnMveGVuL2V2ZW50cy9ldmVudHNfYmFzZS5j
DQo+IGluZGV4IGE4NWJjNDNmNDM0NC4uNGU5ZGI3YjkyZGRlIDEwMDY0NA0KPiAtLS0gYS9k
cml2ZXJzL3hlbi9ldmVudHMvZXZlbnRzX2Jhc2UuYw0KPiArKysgYi9kcml2ZXJzL3hlbi9l
dmVudHMvZXZlbnRzX2Jhc2UuYw0KPiBAQCAtMTc3Miw2ICsxNzcyLDcgQEAgc3RhdGljIGlu
dCB4ZW5fcmViaW5kX2V2dGNobl90b19jcHUoc3RydWN0IGlycV9pbmZvICppbmZvLCB1bnNp
Z25lZCBpbnQgdGNwdSkNCj4gICB7DQo+ICAgCXN0cnVjdCBldnRjaG5fYmluZF92Y3B1IGJp
bmRfdmNwdTsNCj4gICAJZXZ0Y2huX3BvcnRfdCBldnRjaG4gPSBpbmZvID8gaW5mby0+ZXZ0
Y2huIDogMDsNCj4gKwlpbnQgb2xkX2NwdSA9IGluZm8gPyBpbmZvLT5jcHUgOiB0Y3B1Ow0K
DQpJJ2QgcHJlZmVyIG5vdCB0byBpbml0aWFsaXplIG9sZF9jcHUganVzdCBoZXJlIC4uLg0K
DQo+ICAgDQo+ICAgCWlmICghVkFMSURfRVZUQ0hOKGV2dGNobikpDQo+ICAgCQlyZXR1cm4g
LTE7DQoNCi4uLiBhcyBoZXJlIGluZm8gaXMgYWx3YXlzIHZhbGlkLCBzbyB5b3UgY2FuIGp1
c3QgdXNlICJvbGRfY3B1ID0gaW5mby0+Y3B1OyINCihwcm9iYWJseSBqdXN0IGFmdGVyIHRo
ZSBoeXBlcmNhbGwpLg0KDQo+IEBAIC0xNzk1LDggKzE3OTYsMTggQEAgc3RhdGljIGludCB4
ZW5fcmViaW5kX2V2dGNobl90b19jcHUoc3RydWN0IGlycV9pbmZvICppbmZvLCB1bnNpZ25l
ZCBpbnQgdGNwdSkNCj4gICAJICogaXQsIGJ1dCBkb24ndCBkbyB0aGUgeGVubGludXgtbGV2
ZWwgcmViaW5kIGluIHRoYXQgY2FzZS4NCj4gICAJICovDQo+ICAgCWlmIChIWVBFUlZJU09S
X2V2ZW50X2NoYW5uZWxfb3AoRVZUQ0hOT1BfYmluZF92Y3B1LCAmYmluZF92Y3B1KSA+PSAw
KQ0KPiArCXsNCg0KS2VybmVsIHN0eWxlLCBwbGVhc2UuDQoNCj4gICAJCWJpbmRfZXZ0Y2hu
X3RvX2NwdShpbmZvLCB0Y3B1LCBmYWxzZSk7DQo+ICAgDQo+ICsJCWlmIChpbmZvLT50eXBl
ID09IElSUVRfVklSUSkgew0KPiArCQkJaW50IHZpcnEgPSBpbmZvLT51LnZpcnE7DQo+ICsJ
CQlpbnQgaXJxID0gcGVyX2NwdSh2aXJxX3RvX2lycSwgb2xkX2NwdSlbdmlycV07DQo+ICsN
Cj4gKwkJCXBlcl9jcHUodmlycV90b19pcnEsIG9sZF9jcHUpW3ZpcnFdID0gLTE7DQo+ICsJ
CQlwZXJfY3B1KHZpcnFfdG9faXJxLCB0Y3B1KVt2aXJxXSA9IGlycTsNCj4gKwkJfQ0KPiAr
CX0NCj4gKw0KPiAgIAlkb191bm1hc2soaW5mbywgRVZUX01BU0tfUkVBU09OX1RFTVBPUkFS
WSk7DQo+ICAgDQo+ICAgCXJldHVybiAwOw0KDQoNCkp1ZXJnZW4NCg==
--------------t4JMt5F7jtJ5f9n0h2Ibtk09
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-----

--------------t4JMt5F7jtJ5f9n0h2Ibtk09--

--------------fbbiWdt0Ibqsr7Bm5TKakccR--

--------------FielMo0vxUF6NqHBXh3OYeI1
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/Ey8FAmivJBoFAwAAAAAACgkQsN6d1ii/Ey9m
hwf6AjJNBsatfMWQviiZt722Ay9fHeeBnJBgJ+YWpzzjmzyvSYgp1PGdJHJfIE7fiZWAkdxls34E
qDjcA+87AMk7V95ekhVBKpnuUwRb+yRTME6SdOoC0YPgBVOzUiVN9wlwqh7v4wArQPx4SuZrRhV9
UBTceKRorxF9wcrIoOmcEGly7hKcY5qoTKZjMTNeAqmKEGE161Mf/j+WssPGJS29GJv0vnmSmjfs
2Na+zy4as7habpJQu/IPBbhqbmW2Gd4iwzyKkhaCTt6iA/tBOGk3AhRa9bX+iETxiNVIgktunUBD
L9luzcfw/C/Fl77UQNPRo4c39tAxT83z1Ppb8xw8Vg==
=fwd3
-----END PGP SIGNATURE-----

--------------FielMo0vxUF6NqHBXh3OYeI1--


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 15:37:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 15:37:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096423.1451127 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urICk-00013A-KP; Wed, 27 Aug 2025 15:36:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096423.1451127; Wed, 27 Aug 2025 15:36: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 1urICk-000133-Gg; Wed, 27 Aug 2025 15:36:54 +0000
Received: by outflank-mailman (input) for mailman id 1096423;
 Wed, 27 Aug 2025 15:36:53 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=n4tM=3H=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1urICj-00012x-9q
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 15:36:53 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20623.outbound.protection.outlook.com
 [2a01:111:f403:2415::623])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a56c1126-835b-11f0-aeb2-fb57b961d000;
 Wed, 27 Aug 2025 17:36:51 +0200 (CEST)
Received: from MW4PR04CA0102.namprd04.prod.outlook.com (2603:10b6:303:83::17)
 by SA1PR12MB8987.namprd12.prod.outlook.com (2603:10b6:806:386::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Wed, 27 Aug
 2025 15:36:44 +0000
Received: from CY4PEPF0000FCC1.namprd03.prod.outlook.com
 (2603:10b6:303:83:cafe::d) by MW4PR04CA0102.outlook.office365.com
 (2603:10b6:303:83::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.16 via Frontend Transport; Wed,
 27 Aug 2025 15:36:43 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CY4PEPF0000FCC1.mail.protection.outlook.com (10.167.242.103) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Wed, 27 Aug 2025 15:36:42 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 27 Aug
 2025 10:36:41 -0500
Received: from [172.31.63.243] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 27 Aug 2025 10:36: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>
X-Inumbo-ID: a56c1126-835b-11f0-aeb2-fb57b961d000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=LX9Ub0LI0CKeK8OuiOYtKCPaoig5Ua7Kq9vrIjWsMy3Np9naSOoIIadj3eM7Vku6dag/pDYjdmYnTaUxDiK/RUsC9MsLjnx/Miy4TjaTxKZIV8p4vM3RPhurMfw3pdff5zoirkw2zIByBhZatcOeovMmcqBiqov9ApOL3yBXfcuz8+GYRQZQKFMGyY/rg4k4LAvFGGIe/F8M+TqmyuazyPiKN4iAdiUuZYKrwzDjBqFCdOxzIN/6zdpbdM300+V80tWXeP7BJaVJACavIYvqJLpBzEdisFg7bV6gKs3/0FuyUVmFC5NF8MvL25NTSTM+mLaHu7ewbutyowMEJX19jQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cauu/1sD6x5Xsm1QY3slDeJ6UwWu5fLIFTlv4uWdWQ0=;
 b=q5Ngb56HzQllnfAf/CB8ERft6HXKAk98XEco24ZMPvNt05fKO7OkQLH3zlSFBbFItvn4pVXANUnxJ3e44+6SLfzlfPEj6dozTlI3IQBeEiSo7xvfAbMh+RlEz5wg/mQGsS1f+HS3M7pxqElqyELK3zs1VKh8ILloaKmbjffcBm/fRKWuUbbYHkeSeWHwqup3/3H38OtbSFy92RK6RAcfmPS9PhoJLtlK36yp3NWZ6dxyGEl+bObPx1dpGP6z0CzUlnN+FaJQmE9Bw+RLWgfu+HXhvPGkDqlc6K95frGG+AB6cJB028rgl7VjQhI1TiIlxA96Q4GmCinLAiLh9POftw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=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=cauu/1sD6x5Xsm1QY3slDeJ6UwWu5fLIFTlv4uWdWQ0=;
 b=SsCwM58lYlKidV1qYVhup/n78vKsJ8zy0um06K445Gn7muCMYGMz0KL9bhitCPt8kUoKB2vR1ToKAXz2gofkkWq8/xfW2S5vjPdEYDw/vEdomBkEWD/wn67y2kWP9yA//a2f6UVpusRAioF6FlCS38L0ENQzZgU8ObJDNwuz55o=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <10a60455-a4d2-4c58-8a80-d8b264d27efd@amd.com>
Date: Wed, 27 Aug 2025 11:37:07 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 06/11] libxl: convert libxl__json_object_to_yajl_gen
 to libxl__json_object_to_libjsonc_object
To: Anthony PERARD <anthony@xenproject.org>, <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross
	<jgross@suse.com>
References: <20250808145602.41716-1-anthony@xenproject.org>
 <20250808145602.41716-7-anthony@xenproject.org>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20250808145602.41716-7-anthony@xenproject.org>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB03.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000FCC1:EE_|SA1PR12MB8987:EE_
X-MS-Office365-Filtering-Correlation-Id: 3e631ab8-2eea-4553-d913-08dde57f860d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|1800799024|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?aG1GbzVLYTVBNnFja2FEK2gyOHZoSUozUnhwZXZwYmFTRjdGc1VjRXM4ZTBy?=
 =?utf-8?B?WU5hc0FISTNNMjRycHRwQ1N2ZmIwT1greFNubXNmeFZXL1BFTURRei8vY0dG?=
 =?utf-8?B?amVVUFdvR1B4TGZNcXFFYXl5RXluMXI3Y1UrUGJqNXdYcU91eHkxT0ZuV0l4?=
 =?utf-8?B?dXRGZWNJZ2M5YnZMc2l4WXowLzJwME9SRXJIczNOUDdHekQ4aGxQZXN5bzBo?=
 =?utf-8?B?QUl3MHB1aXBpR1N0U0NLNkNwQWpNd2M2UjIySFdTVzFNclN0SlZJaHlvbmtE?=
 =?utf-8?B?ZWVCelcwb3dyNDFBWXBlQXB0K05uMnExOFQ3Z0NLUWFJVjZqeEsvZXFyUG9M?=
 =?utf-8?B?WjdkL2puR0lTRm9EYnBPdVdvWFoySm4zK09NV3dvMCs4OG1PV0ZDbnZVY1hj?=
 =?utf-8?B?ZUMyb3g0dUVzUmQ3b0lGZFZjVUZ1c2ROU29XSGpsK1JablhzWVMwOTFLTFB0?=
 =?utf-8?B?T0pJL3U4aVIxS0NTYlhhYjhmU0JrdThrT1VTZmp6OE4wZ1M0UUc1Q0ljZkRV?=
 =?utf-8?B?OVRaSkNnRUU3NXdIbjZQUTdLc2ZvNUpDdy9NaTNhVHlLNWFhNTgxTjczOFg0?=
 =?utf-8?B?THhQU0NFbVYzNGI5bXZONnNWM2RMdGJ3b2dJUDZVbkQ1WTc1ekQxQ3ZQR2Ji?=
 =?utf-8?B?VUhFRWxsT2pESlJhcVhmVm1vL0pKNXRFNFFuVC9YVHR1UHdkMU8yZW43dmVh?=
 =?utf-8?B?ampQdjExWllUbmZ0N3A0UU5YZllJTXEraEZJR2JtYVdpcUlGMVhleDJwNEM1?=
 =?utf-8?B?WGgwWTJjTFZ6SGNXV0FuUkJHUXZGbEdvMXlqVkFBT2dEazEyRzZ5ZCswVmp4?=
 =?utf-8?B?K1VMOFNHSEl5L3lOQ3R1dStiRkFXbmZLRjNDTFZHbzVpdU1IWGFrdnd3eUEz?=
 =?utf-8?B?YXZvcUxEUFMrMUdCUjFCVUcyOUltRko4TFlnWndlM0tlb2JuS1R0NHpRLzVI?=
 =?utf-8?B?SkZBM2Q2NEV6bHNVUmUrRWJaTmhvUy9pUy9xUGp4blFHTVVadSt1aS9rSkFC?=
 =?utf-8?B?eksyWDJGM00vWGN3SEc2M2RtQmxCRVJ5RHloRUhFcy9zMFhidkhmNk9MYURD?=
 =?utf-8?B?WVZKSGhMUVVwSTNvb0VmT0hlR2FFUmtSN1pIRXZZYWEya1ZMNzd6VlV5WldQ?=
 =?utf-8?B?SU82L2tzT1FURTYzOXNpKzV4Y2UydFRCV3J2dEdkVU5sR2dsN3FkNWVDcUc0?=
 =?utf-8?B?M0VHMWh6enJiNlJLQzB1SEFHNkQ0TTZEMTkzdHRDRTR4SHVxa3NTRFRwZ014?=
 =?utf-8?B?aTRkL2RpT0FLMklVOGZxVUVQMWxNN1Y3WU1LVEtReGMvVzU1MUtPTWs3Rk9v?=
 =?utf-8?B?b216c2FoZkNGR1Zhb0tCWWtlY0o0Ulp6VG9nZURKYUZrQnVUT004anIvYURO?=
 =?utf-8?B?MDlHd1AyTUlqYk4yelVXV2RXdHl1QVpWUXVZKzZaVGwyWGxVSENEOGExRWpN?=
 =?utf-8?B?c3psNUo3REFGK2svd3VLMGFKRlVDMDZQTUJMSC9leG5vR1dlamw2Rmx1YXdo?=
 =?utf-8?B?ZTFsSU5UZ0l5OUVVMktaYjR5OWRFbkdSQ25YTWhjTDF3NXBqM2FqM3B0YmR0?=
 =?utf-8?B?UG9SMzd6UlV3a3dvbExOcUk0c3ZmbzdaWU90VHd1NXBPNnpWZG03Wk5tbHJO?=
 =?utf-8?B?K2lJSlk4V3VIUTRFL1lXRkVIVmtWNnRsU1FNV1k5ZWd3emZrUmY5aFNhZ0ZK?=
 =?utf-8?B?VkVLN0g5WHg3TGR1NXgzaDJqWXZFWk4vSktCVzFNQ0JjVjRrQWlERURMV1ZO?=
 =?utf-8?B?TzVneHlpSEVWUmkyOFRaMnpoaUdUc20wVDMxcmtPTVg4dnh0b0hWZ0xrMW5U?=
 =?utf-8?B?SzBLN0tEMWU4djJ1aXIyTTQ4Zk9UYUFmRlIvVExBRGM5bFQ3Tm9LSW1lVjF0?=
 =?utf-8?B?NHZmMCtnRDNIK0xSY3NrYUJVSlFKM0pwcVR5cHNDV0RQWGdFaS90OTM5Si9j?=
 =?utf-8?B?WmxsU1dDek02YWFUUGlLdVk3V1BhZ1MraWswSG9QbHpYZktBQkxWekVSTFIx?=
 =?utf-8?B?WWJyYjY2TVQ3c1JNVGtzdXAxbFc0cVk3TFBFa0dvdENkWjcxa2F0MzZyaDF4?=
 =?utf-8?Q?9HPFMQ?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(1800799024)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Aug 2025 15:36:42.8270
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3e631ab8-2eea-4553-d913-08dde57f860d
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000FCC1.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB8987

On 2025-08-08 10:55, Anthony PERARD wrote:
> From: Anthony PERARD <anthony.perard@vates.tech>
> 
> Convert yajl_gen to json_object from lib json-c.
> 
> And make use of it in qmp_prepare_cmd(), which can be compiled with
> either lib.
> 
> Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>
> ---

> diff --git a/tools/libs/light/libxl_json.c b/tools/libs/light/libxl_json.c
> index 44ee6e213f..b26ac901d6 100644
> --- a/tools/libs/light/libxl_json.c
> +++ b/tools/libs/light/libxl_json.c
> @@ -631,6 +631,100 @@ const libxl__json_object *libxl__json_map_get(const char *key,
>       return NULL;
>   }
>   
> +#ifdef HAVE_LIBJSONC
> +int libxl__json_object_to_json_object(libxl__gc *gc,
> +                                      json_object **jso_out,
> +                                      const libxl__json_object *obj)
> +{
> +    int idx = 0;
> +    int rc, r;
> +
> +    switch (obj->type) {
> +    case JSON_NULL:
> +        *jso_out = json_object_new_null();
> +        return 0;
> +    case JSON_BOOL:
> +        *jso_out = json_object_new_boolean(obj->u.b);
> +        if (!*jso_out)
> +            return ERROR_NOMEM;
> +        return 0;
> +    case JSON_INTEGER:
> +        *jso_out = json_object_new_int64(obj->u.i);
> +        if (!*jso_out)
> +            return ERROR_NOMEM;
> +        return 0;
> +    case JSON_DOUBLE:
> +        *jso_out = json_object_new_double(obj->u.d);
> +        if (!*jso_out)
> +            return ERROR_NOMEM;
> +        return 0;
> +    case JSON_NUMBER:
> +        *jso_out = json_object_new_string(obj->u.string);

Is JSON_NUMBER calling json_object_new_string() correct?  It looks like 
the yajl code falls back to a string, so that is okay but surprising.

So I just want to double check.  If so:

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

Thanks,
Jason

> +        if (!*jso_out)
> +            return ERROR_NOMEM;
> +        return 0;


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 15:38:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 15:38:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096433.1451136 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urIDr-0001Xv-Sh; Wed, 27 Aug 2025 15:38:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096433.1451136; Wed, 27 Aug 2025 15:38: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 1urIDr-0001Xo-Pt; Wed, 27 Aug 2025 15:38:03 +0000
Received: by outflank-mailman (input) for mailman id 1096433;
 Wed, 27 Aug 2025 15:38:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=73cR=3H=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1urIDq-0001Xi-NN
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 15:38:02 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cf4a0f0c-835b-11f0-ae26-e363de0e7a9e;
 Wed, 27 Aug 2025 17:37:59 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 5174560269;
 Wed, 27 Aug 2025 15:37:58 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 17BF3C4CEEB;
 Wed, 27 Aug 2025 15:37:55 +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>
X-Inumbo-ID: cf4a0f0c-835b-11f0-ae26-e363de0e7a9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1756309078;
	bh=VsgLqKKal36rQ5zNj1i0WNfTR9a1aspIQ2u+sy01tp4=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=MUlaiQfxgn2FC2Kp0mmI8ZmRE/EtV1Ma1ZRhXwa5MMrdX2aLkOfcF0BHbfbArbIwW
	 euRk9M6b9MThiHNlSY7Nj7L9YzZbyZc8BqbatqO0Gn55d63hOfeWCNap7WA8cMQmfT
	 Fia4X+FL5/P5W5vwR8qx9NVBLzfn28IKpZ9h2L+ADNkoaYAS9Bk/UZuDB1hH9tJDFK
	 Edjw+rpE6JA/kew/ewrmbj3vEcGJ4blRYxeMIwtFFoLRz6xvpOLvm6PIo4x+JdF7+3
	 GbceZrFYXQS+j0AzmsT5VGHrmNz+sTuYQv7HCKCIJGKY3rKdPMS4iVyabE59siLQzM
	 Vg8WJj1FvggFQ==
Date: Wed, 27 Aug 2025 08:37:53 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Jan Beulich <jbeulich@suse.com>, Juergen Gross <jgross@suse.com>, 
    Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Grygorii Strashko <grygorii_strashko@epam.com>
Subject: Re: [RFC PATCH v5 00/10] xen/arm: scmi: introduce SCI SCMI SMC
 multi-agent support
In-Reply-To: <2eb538a8-aaf6-4d71-9379-40ae0351f0c6@epam.com>
Message-ID: <alpine.DEB.2.22.394.2508270808050.3391208@ubuntu-linux-20-04-desktop>
References: <cover.1753184487.git.oleksii_moisieiev@epam.com> <alpine.DEB.2.22.394.2508221733410.2743087@ubuntu-linux-20-04-desktop> <2eb538a8-aaf6-4d71-9379-40ae0351f0c6@epam.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

I completed the review of the patch series but as you could see from the
comments, the first few patches are far better along than the last two.

The current deadline is on Friday this week. I am happy to review this
series as promptly as I can but I am not sure we'll be able to complete
the last two patches.

Cheers,

Stefano


On Wed, 27 Aug 2025, Oleksii Moisieiev wrote:
> Hi Stefano,
> 
> Our use-case imply using scmi-smc-multiagent to be able to split scmi
> between the domains,
> so we would like to apply all patch series in the release.
> 
> On 23/08/2025 03:34, Stefano Stabellini wrote:
> > I think it should be feasible to commit at least patches 1-4 in time for
> > the release
> >
> > On Tue, 22 Jul 2025, Oleksii Moisieiev wrote:
> >> Inroducing V4 RFC patch series  on top of the Xen version 4.20-rc2
> >> which includes implementation of the SCI SCMI SMC multi-agent support.
> >>
> >> Patch 1 "xen/arm: add generic SCI subsystem"
> >> - rebased and refactored
> >> - introduced DEVICE_ARM_SCI DT device class and used for SCI drivers probing
> >> instead of custom,
> >>    linker sections based implementation.
> >> - added SCI API for Dom0 DT handling, instead of manipulating with ARM arch
> >> dom0 code directly.
> >> - RFC changes in XEN_DOMCTL_assign_device OP processing
> >> - Introduce arch_handle_passthrough_prop call to handle arm specific
> >> nodes
> >>
> >> Patch 2 "xen/arm: scmi-smc: update to be used under sci subsystem"
> >> - update driver introduced by commit 3e322bef8bc0 ("xen/arm: firmware: Add SCMI
> >> over SMC calls
> >> handling layer") be used under sci subsystem.
> >> - no functional changes in general
> >>
> >> Patch 3 "xen/arm: scmi-smc: passthrough SCMI SMC to guest domain
> >> This is new change which allows passthrough SCMI SMC, single agent interface to
> >> guest domain
> >> cover use case "thin Dom0 with guest domain, which serves as Driver domain".
> >> See patch commit message for full description.
> >>
> >> Patch 4 - docs: arm: add docs for SCMI over SMC calls forwarding
> >> driver
> >> - add documentation section for Simple Arm SCMI over SMC/HVC calls
> >> forwarding driver.
> >>
> >> Patch 6 - xen/domctl: extend XEN_DOMCTL_assign_device to handle not
> >> only iommu
> >> - add chainged handling of assigned DT devices to support
> >> access-controller functionality through SCI framework.
> >> Change was done in two parts:
> >>   - update iommu_do_dt_domctl() to check for dt_device_is_protected()
> >>   and not fail if DT device is not protected by IOMMU
> >>   -add chained call to sci_do_domctl() to do_domctl()
> >>
> >> Patch 9 - xen/arm: scmi: introduce SCI SCMI SMC multi-agent driver
> >> - added "scmi-secondary-agents" and "#scmi-secondary-agent-cells"
> >>    property to "xen,config" node in "chosen" to inform SCI SCMI
> >>    multi-agent driver about available agents and their
> >>    configuration. It defines <agent_id> to <smc-id,scmi_shm> map.
> >>    This option is Xen specific as Xen is the only one entry in the
> >>    system which need to know about SCMI multi-agent support and configuration.
> >> - each guest using SCMI should be configured with SCMI agent_id, so SCMI
> >>    FW can implement Agent-specific permission policy.
> >>    -- dom0: dom0_scmi_agent_id=<agent_id> in Xen command line option
> >>    -- toolstack: arm_sci = "type=scmi_smc_multiagent,agent_id=<agent_id>"
> >>    -- dom0less: "xen,sci_type", "xen,sci_agent_id" properties in
> >> "xen,domain" nodes.
> >> - factored out SCMI generic definitions (re-usable)
> >> - factored out SCMI shmem code (re-usable)
> >> - the SCMI passthrough configuration for guest domains is similar to any other
> >> HW passthrough cfg.
> >>
> >> Patch 10 - docs: arm: add SCI SCMI SMC multi-agent driver docs
> >> - add SCI SCMI SMC multi-agent driver documentation.
> >>
> >> Add separate SCMI DT node for Xen management agent under "xen,config"
> >> node under chosen.
> >>
> >> All Xen-specific configuration provided under "/chosen" node. This
> >> approach allows to isolate modifications to Host DT only under
> >> "/chosen" node.
> >>
> >> This approach provides the following device tree (DT)
> >> parameters (placed under xen,config node):
> >>
> >> - "scmi-secondary-agents": A Xen-specific parameter under the
> >>    "/chosen" node, which describes the SCMI agent configuration for
> >>    the domains.
> >> - the SCMI configuration for Xen (privileged agent) and the shared
> >>    memory configuration for all agents are provided under the "/chosen"
> >>    node and are used strictly by Xen for its initial configuration.
> >> - the scmi_shm and SCMI configuration for Dom0 are placed in the
> >>    "/firmware/scmi" node so that they can be moved to Dom0 without
> >>    any changes.
> >>
> >> This configuration allows the use of Xen-specific nodes to provide
> >> information strictly needed by Xen while using the default SCMI
> >> configuration for Dom0 and other domains. As a result, no additional
> >> bindings need to be introduced to the device tree.
> >> This simplifies the Xen SCMI multi-agent configuration and utilizes
> >> generic device tree bindings for the domains.
> >>
> >> NOTE: Haven't added RB tags for patch 1 and 2 because rebase and some
> >> minor changes were done.
> >>
> >> Code can be found at:
> >> https://github.com/oleksiimoisieiev/xen/tree/scmi_upstrv5
> >>
> >> [1] RFC v2:
> >> http://patchwork.kernel.org/project/xen-devel/cover/cover.1644341635.git.oleksii_moisieiev@epam.com/
> >> [2] RFC v3:
> >> https://patchwork.kernel.org/project/xen-devel/patch/20250311111618.1850927-1-grygorii_strashko@epam.com
> >> SCMI spec:
> >> https://developer.arm.com/documentation/den0056/e/?lang=en
> >>
> >> SCMI bindings:
> >> https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/firmware/arm,scmi.yaml
> >> https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/access-controllers/access-controllers.yaml
> >>
> >> Reference EL3 FW:
> >> RPI5: https://github.com/xen-troops/arm-trusted-firmware/commits/rpi5_dev/
> >> Renesas v4h:
> >> https://github.com/GrygiriiS/arm-trusted-firmware/commits/rcar_gen4_v2.7_v4x-scmi_upd/
> >>
> >> base-commit: dbe60f244c (Update Xen to 4.21, 2025-02-21)
> >>
> >> Changes in v5:
> >> - update Maintainers file. Set role as a Reviewer
> >> - rebased on the latest master branch
> >> - Introduce arch_handle_passthrough_prop call to handle arm specific nodes
> >> - rename dom0_scmi_smc_passthrough to scmi_smc_passthrough
> >> - rename dom0_scmi_smc_passthrough in documentation
> >> - set error code to -ENXIO when iommu is disabled
> >> - return -EINVAL if mediator without assign_dt_device was provided
> >> - invert return code check for iommu_do_domctl in
> >> XEN_DOMCTL_assign_device domctl processing to make cleaner code
> >> - change -ENOTSUPP error code to -ENXIO in sci_do_domctl
> >> - handle -ENXIO return comde of iommu_do_domctl
> >> - leave !dt_device_is_protected check in iommu_do_dt_domctl to make
> >> code work the same way it's done in "handle_device" call while
> >> creating hwdom(dom0) and "handle_passthrough_prop" call for dom0less
> >> creation
> >> - drop return check from sci_assign_dt_device call as not needed
> >> - do not return EINVAL when addign_dt_device is not set. That is
> >> because this callback is optional and not implemented in single-agent driver
> >> - move memcpy_toio/fromio to the generic place
> >> - fix device-tree example format in booting.txt, added ";" after "}".
> >> - update define in scmi-proto.h
> >> - update define in scmi-shmem.h file
> >> - scmi_assign_device - do not ignore -EOPNOTSUPP return
> >> code of the do_smc_xfer
> >> - remove overwriting agent_channel->agent_id after
> >> SCMI_BASE_DISCOVER_AGENT call
> >> - add multi-agent files to the MAINTAINERS
> >> - add SCMI multi-agent description to the SUPPORT.md
> >> - handle ARM_SMCCC_INVALID_PARAMETER return code and return -EINVAL
> >> for smc call
> >> - updated collect_agents function. Set agent_id parameter as optional
> >> in scmi-secondary-agents device-tree property
> >> - introduce "#scmi-secondary-agents-cells" parameter to set if
> >> agent_id was provided
> >> - reanme xen,scmi-secondary-agents property to scmi-secondary-agents
> >> - move memcpu_toio/fromio for the generic place
> >> - update Xen to get management channel from /chosen/xen,config node
> >> - get hypervisor channnel from node instead of using hardcoded
> >> - update handling scmi and shmem nodes for the domain
> >> - Set multi-agent driver to support only Arm64
> >> - rework multi-agent driver to leave Host Device-tree unmodified
> >>
> >> Changes in v4:
> >> - fix SPDX-License
> >> - rename DEVICE_ARM_SCI DT device class to FIRMWARE_DEVICE
> >> - move XEN_DOMCTL_assign_device code in separate patch
> >> - Add documentation for SCI SCMI drivers
> >> - xl.cfg doc
> >> - fix comments from Stefano Stabellini
> >> - fix toolstack code as sugested by Anthony PERARD
> >>    - use MATCH_OPTION()
> >>    - move arm_sci struct and cfg params in "arch_arm"
> >> - add SCMI passthrough for dom0less case
> >> - toolstack comments from Anthony PERARD
> >> - added dom0less support
> >> - added doc for "xen,scmi-secondary-agents"
> >>
> >> Grygorii Strashko (5):
> >>    xen/arm: scmi-smc: update to be used under sci subsystem
> >>    xen/arm: scmi-smc: passthrough SCMI SMC to domain, single agent
> >>    docs: arm: add docs for SCMI over SMC calls forwarding driver
> >>    xen/domctl: extend XEN_DOMCTL_assign_device to handle not only iommu
> >>    docs: arm: add SCI SCMI SMC multi-agent driver docs
> >>
> >> Oleksii Moisieiev (5):
> >>    xen/arm: add generic SCI subsystem
> >>    drivers: iommu: change error code when iommu is disabled
> >>    xen: arm: smccc: add INVALID_PARAMETER error code
> >>    lib/arm: Add I/O memory copy helpers
> >>    xen/arm: scmi: introduce SCI SCMI SMC multi-agent driver
> >>
> >>   MAINTAINERS                                   |  10 +
> >>   SUPPORT.md                                    |  11 +
> >>   .../arm/firmware/arm-scmi.rst                 | 516 +++++++++++
> >>   docs/hypervisor-guide/arm/index.rst           |   9 +
> >>   docs/hypervisor-guide/index.rst               |   1 +
> >>   docs/man/xl.cfg.5.pod.in                      |  47 +
> >>   docs/misc/arm/device-tree/booting.txt         | 103 +++
> >>   docs/misc/xen-command-line.pandoc             |  18 +
> >>   tools/include/libxl.h                         |   5 +
> >>   tools/libs/light/libxl_arm.c                  |  18 +
> >>   tools/libs/light/libxl_types.idl              |  12 +
> >>   tools/xl/xl_parse.c                           |  48 ++
> >>   xen/arch/arm/device.c                         |   5 +
> >>   xen/arch/arm/dom0less-build.c                 |  51 ++
> >>   xen/arch/arm/domain.c                         |  12 +-
> >>   xen/arch/arm/domain_build.c                   |  11 +-
> >>   xen/arch/arm/firmware/Kconfig                 |  37 +-
> >>   xen/arch/arm/firmware/Makefile                |   2 +
> >>   xen/arch/arm/firmware/sci.c                   | 189 +++++
> >>   xen/arch/arm/firmware/scmi-proto.h            | 164 ++++
> >>   xen/arch/arm/firmware/scmi-shmem.c            | 112 +++
> >>   xen/arch/arm/firmware/scmi-shmem.h            |  45 +
> >>   xen/arch/arm/firmware/scmi-smc-multiagent.c   | 803 ++++++++++++++++++
> >>   xen/arch/arm/firmware/scmi-smc.c              | 191 ++++-
> >>   xen/arch/arm/include/asm/domain.h             |   5 +
> >>   xen/arch/arm/include/asm/firmware/sci.h       | 214 +++++
> >>   xen/arch/arm/include/asm/firmware/scmi-smc.h  |  41 -
> >>   xen/arch/arm/include/asm/smccc.h              |   1 +
> >>   xen/arch/arm/vsmc.c                           |   4 +-
> >>   xen/common/device-tree/dom0less-build.c       |   4 +
> >>   xen/common/domctl.c                           |  19 +
> >>   xen/drivers/passthrough/device_tree.c         |   6 +
> >>   xen/drivers/passthrough/iommu.c               |   2 +-
> >>   xen/include/asm-generic/device.h              |   1 +
> >>   xen/include/asm-generic/dom0less-build.h      |   9 +
> >>   xen/include/public/arch-arm.h                 |   8 +
> >>   xen/include/xen/lib/arm/io.h                  |  15 +
> >>   xen/lib/Makefile                              |   1 +
> >>   xen/lib/arm/Makefile                          |   1 +
> >>   xen/lib/arm/io.c                              |  80 ++
> >>   40 files changed, 2744 insertions(+), 87 deletions(-)
> >>   create mode 100644 docs/hypervisor-guide/arm/firmware/arm-scmi.rst
> >>   create mode 100644 docs/hypervisor-guide/arm/index.rst
> >>   create mode 100644 xen/arch/arm/firmware/sci.c
> >>   create mode 100644 xen/arch/arm/firmware/scmi-proto.h
> >>   create mode 100644 xen/arch/arm/firmware/scmi-shmem.c
> >>   create mode 100644 xen/arch/arm/firmware/scmi-shmem.h
> >>   create mode 100644 xen/arch/arm/firmware/scmi-smc-multiagent.c
> >>   create mode 100644 xen/arch/arm/include/asm/firmware/sci.h
> >>   delete mode 100644 xen/arch/arm/include/asm/firmware/scmi-smc.h
> >>   create mode 100644 xen/include/xen/lib/arm/io.h
> >>   create mode 100644 xen/lib/arm/Makefile
> >>   create mode 100644 xen/lib/arm/io.c
> >>
> >> --
> >> 2.34.1
> >>
> 


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 15:58:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 15:58:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096444.1451147 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urIXJ-0004ex-Ey; Wed, 27 Aug 2025 15:58:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096444.1451147; Wed, 27 Aug 2025 15:58: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 1urIXJ-0004eq-C2; Wed, 27 Aug 2025 15:58:09 +0000
Received: by outflank-mailman (input) for mailman id 1096444;
 Wed, 27 Aug 2025 15:58:08 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1urIXI-0004eR-5T
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 15:58:08 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1urIXG-009Igt-0N;
 Wed, 27 Aug 2025 15:58:06 +0000
Received: from [2a01:e0a:1da:8420:b77:bd5:6e45:7633] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1urIXF-004FWk-32;
 Wed, 27 Aug 2025 15:58: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date;
	bh=n83R/rRngWIHg1o05rluNflzrTW4r7FqR3kSDLPxz7A=; b=VZ8hYfk02LbM1IZ3f3RNp+S3zL
	NwV/Az2sb8BOlzdGDqDdVASQcyug1SkLpPwpaYG4bDV6ZhaQjzEw8z3FmZ0D4UCFZP/64UGKKS60r
	c6vgzBDjyPEmyduAL51jB8pW6+aWblRS/m0rkKkUwhEoJ834EhS+mpj0xb9UF3Nu84gY=;
Date: Wed, 27 Aug 2025 17:58:03 +0200
From: Anthony PERARD <anthony@xenproject.org>
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: xen-devel@lists.xenproject.org, ray.huang@amd.com,
	Anthony PERARD <anthony.perard@vates.tech>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v7 13/13] xen/cpufreq: Adapt SET/GET_CPUFREQ_CPPC
 xen_sysctl_pm_op for amd-cppc driver
Message-ID: <aK8rC7CLd_7Z9sC8@l14>
References: <20250822105218.3601273-1-Penny.Zheng@amd.com>
 <20250822105218.3601273-14-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250822105218.3601273-14-Penny.Zheng@amd.com>

On Fri, Aug 22, 2025 at 06:52:18PM +0800, Penny Zheng wrote:
> diff --git a/tools/misc/xenpm.c b/tools/misc/xenpm.c
> index 02981c4583..eedb745a46 100644
> --- a/tools/misc/xenpm.c
> +++ b/tools/misc/xenpm.c
> @@ -38,6 +38,13 @@
>  static xc_interface *xc_handle;
>  static unsigned int max_cpu_nr;
>  
> +static const char cpufreq_policy_str[][12] = {

Is it necessary to hard-code an hand calculated size of the literal
strings? Can't we let the compiler do that for us? With this as type:

    static const char *cpufreq_policy_str[] = {

The compiler might not detect an issue if we write "11" instead of "12",
for example.

> +    [CPUFREQ_POLICY_UNKNOWN] = "unknown",
> +    [CPUFREQ_POLICY_POWERSAVE] = "powersave",
> +    [CPUFREQ_POLICY_PERFORMANCE] = "performance",
> +    [CPUFREQ_POLICY_ONDEMAND] = "ondemand",
> +};
> +
>  /* help message */
>  void show_help(void)
>  {

Otherwise the tool side of the patch looks fine to me,
so: Acked-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 16:07:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 16:07:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096468.1451157 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urIgB-00070F-Cx; Wed, 27 Aug 2025 16:07:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096468.1451157; Wed, 27 Aug 2025 16:07: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 1urIgB-000708-9k; Wed, 27 Aug 2025 16:07:19 +0000
Received: by outflank-mailman (input) for mailman id 1096468;
 Wed, 27 Aug 2025 16:07:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=dVpB=3H=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1urIg9-000702-B3
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 16:07:17 +0000
Received: from NAM02-DM3-obe.outbound.protection.outlook.com
 (mail-dm3nam02on2061f.outbound.protection.outlook.com
 [2a01:111:f403:2405::61f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e5a32145-835f-11f0-aeb2-fb57b961d000;
 Wed, 27 Aug 2025 18:07:15 +0200 (CEST)
Received: from CYZPR20CA0010.namprd20.prod.outlook.com (2603:10b6:930:a2::18)
 by PH0PR12MB8774.namprd12.prod.outlook.com (2603:10b6:510:28e::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Wed, 27 Aug
 2025 16:07:10 +0000
Received: from CY4PEPF0000EE3B.namprd03.prod.outlook.com
 (2603:10b6:930:a2:cafe::8f) by CYZPR20CA0010.outlook.office365.com
 (2603:10b6:930:a2::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.24 via Frontend Transport; Wed,
 27 Aug 2025 16:07:10 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CY4PEPF0000EE3B.mail.protection.outlook.com (10.167.242.14) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Wed, 27 Aug 2025 16:07:09 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 27 Aug
 2025 11:07:09 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 27 Aug
 2025 11:07:09 -0500
Received: from [10.252.147.171] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 27 Aug 2025 11:07: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>
X-Inumbo-ID: e5a32145-835f-11f0-aeb2-fb57b961d000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=X3BGrh9Ve32atBDytrATuoNpuuKvgxOH11rQarV5Fo1PcNc3NgLff1JL5WM1zVDF6tM9WeHntnvb20vKVaeMzE1K3I3x7K3+KDpQIDHKQF7JyWIJRUcBLoJCi+k+xeeiLXkRcidnEtAWs902sneJ2iIdJiw5qaaPpcgmB5tEE4FWY9Br5fXDjiMhf/RghdQgDIAoW0E6fzPx2m/EeDbxLee8MF+xWlA1o2SpOp1Hz7h4B9nMG+rL+6lj/UDKtkCoNmGm9t9fPYivniC3+jOPsNnUtMyqF43XqC7dRUiCDnDD34+3jy98p+GzD3MwlidnLKfuaAjdhQaAUPV6CD6xmw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=NLHpF2zNeYT9+317lnCMJPv7NbijK5Wkd9pq9dYrJkw=;
 b=UoA9T85LjcTC0s8EeoqZDkEHgXnVaC77U+5TeiP5nzJ7NL2AhncEa/HnOX6W7KmDf/getLJ854idJwy96xovwYWmJjNBBx5skdSY7NiINjZ7imBIkBLZA2t14+u7/WaVZVnyllRarmdqMWkENpnBURZ/jrHW/JpYz4S2HCPXd90dbLT0Yn/Pm8O16f4rHZCZwOHxsIG+5yFFwtL7rdv2mFhYGmRY8TB4gFEiU0mMHESv7GDsVIuXlvBrK6Thr38YdIy0D9s7ARdyjzEHVQTDpObbyPUoUTdU0N3+2GpwhRZMSaMh3XvtIYAyKAoLZ43K1tth+4hnkAVshWGe/IcooQ==
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=NLHpF2zNeYT9+317lnCMJPv7NbijK5Wkd9pq9dYrJkw=;
 b=xfjuxpSX0D3rGpbZKo7nEaTFQkfCQO4yuVKZm0C1jE16SSlg88LA5nVs3+jlNogvDGdRUpY6C50bPYALdaBDLefoy41k6YCoE5nNcmLVGXohqV2df1uqpuHQwaI9zkh1IsrdKZlYvIX090lpt8007hwzLOpz8C2eocwhAKIQiDU=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <3ae27fc6-dea3-4f61-abd5-4cad45d07b6b@amd.com>
Date: Wed, 27 Aug 2025 18:07:06 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 5/5] xen/arm: map static memory on demand
To: Hari Limaye <Hari.Limaye@arm.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, "Luca
 Fancellu" <Luca.Fancellu@arm.com>, Penny Zheng <Penny.Zheng@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>, Wei Chen
	<Wei.Chen@arm.com>
References: <cover.1753864612.git.hari.limaye@arm.com>
 <c85ac9d6da3c13dabd26627faac90ea95feb3f95.1753864612.git.hari.limaye@arm.com>
 <b12b9c9c-069c-4c45-adc6-5b7026f812f7@amd.com>
 <7EDCD060-4EC7-4727-B524-225A5FB7A0B7@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <7EDCD060-4EC7-4727-B524-225A5FB7A0B7@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000EE3B:EE_|PH0PR12MB8774:EE_
X-MS-Office365-Filtering-Correlation-Id: 3a44ff2b-b1d4-4b19-1522-08dde583c715
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|7416014|376014|1800799024|36860700013|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?VHhxUWVla1U3ajNYcmNBWnJhV3cyeEFzYUVPMVNvbjNUc1c5UjBaaG00dEhj?=
 =?utf-8?B?WlFNNG5nZzZkN3JOZUVPeThndDc5NXJycytLS0hnNjZVMmNCNExzNzhtK29u?=
 =?utf-8?B?RC96VnNwZEkwRWI0VXkxTGV4Vkdwdk5jL2pqamRMcytwd3VUeGtmd2N6QUtm?=
 =?utf-8?B?QndNVlRDUVdqVzRvb3dlZXl4SVY1M0ZwZGQ2bGwrYWY2amswbk1aNUlGcHlS?=
 =?utf-8?B?aDNBbER1ODZXQ2p0TEZRN1FCWVMzYjZmenl4RWNScnI0RFEvSWJ0UHhSbnZ4?=
 =?utf-8?B?RUFwV012ZXdsbG13TU8xdEwvT2RTeWtrSTlhdDBqMkFQVjNkMW5LQjYxbi9Z?=
 =?utf-8?B?S3pEa3NVNVpabUFIQkFvL3hnMzFURzdBbXVIUWxyOGFGUXNUODBQZGZ6eVV6?=
 =?utf-8?B?NGVLa2V3aFpJQjNFb3E0K0pmdGU0N0h5V2lNTG5KT3B5R2FXWmlNK3VaTVB5?=
 =?utf-8?B?a3FGRUdBREs2YUEzSkhDbHRwdkEvNTB0TW80TVZaeXJrU2NSTW9MS0hHNkpY?=
 =?utf-8?B?bi9NOGl6SG5yUCtYSXNMcTl1R3JGNjljOWFoRXNXcWRxRjBTSnNwY3pHWjZa?=
 =?utf-8?B?NTVaa29XLzg3TjNGK2dERGxoaFBPTEFjeElLUU5ySWx5UUJUQnE0NFN3TW1Y?=
 =?utf-8?B?bE9jdUFiTDN3d0s1cFk3c0tabS84YzlOaFBOWm11UWgrV24wdDBrWWZjay9h?=
 =?utf-8?B?TWZqQzFVZFRyZXZjaGhTQ216UGZsS2VOT0I0MSsveUxmS25LL1ZQSFR6S0RL?=
 =?utf-8?B?NEp3Z3pVTm9ZNEtxTGxEQmRZYk9hYWFYK2xHRXlWRzBLSmZyQjJ4MEZlK0tP?=
 =?utf-8?B?aVZpbWxOeWJYNGd5N0YwVjE1bldhSVF5SkZySjVOOW9vRkNaVnNjcmxoUVFX?=
 =?utf-8?B?T0hSZ05sRVYxNm96WTcvbWF5STF0ZnV1TVcrYjVDcmpEZ0gzUDRNMDdseGhr?=
 =?utf-8?B?YktldU4rK0RNZlVGeFJHY2d4TURBcmVFVzlOWXpDanljWU9jZlR2TzdrZ3RN?=
 =?utf-8?B?MVUvQ1lVZEkxQVhPa0MxMEFTNWhMencvZ2c3RnkzZzBEbDQ1UzlxOStrVVVu?=
 =?utf-8?B?cTRKTVZqd2NkRDNSeHVaQitqVkN2VVZrS0lrUWFQU2lJMWpjMWNZS2RZa3RP?=
 =?utf-8?B?RGVVVXFQaG5WaGFWTlova1RVdzVyb0xBa0hNb25wZVVDRDJUakJJOTI1S25p?=
 =?utf-8?B?a0RUa0J3ckkwSWFTRmZ5Q1AvS3d3MVlRU2hsSnJaOTY1Wi9vRkVDMTkxWGF5?=
 =?utf-8?B?ZXVldmFDeE91bGNaWnFPK1hWbWpKZlVJdjVDNzZpMFlPQmpzR1FPTXpWTHVV?=
 =?utf-8?B?SHUyaHhhUTJLVEkvUWNaZ3hmbEcyOHlhc09LbDRjRDI4ajVtdDZUcmlqNTRx?=
 =?utf-8?B?MG8zeHF0Y2drT3BKUnBjUzd6TjA1Ri9OUmlrZkdTdjk4aytya1UyazBPSzc5?=
 =?utf-8?B?VStDYmMyd3lPOXNMb1hWQjI1REtiQzBrT1pZY0dnTDNzdm02Zm9aQ0lyeWJF?=
 =?utf-8?B?ZkNGR0JHK1ZWcDZ4Sm80ZURoZ2RNNU9iR2NVMGRaU0RYUWVVTWZNdHNrd1Fy?=
 =?utf-8?B?Z2FjU1NTeWQxZmJrODBaRXpIeHZmT3VqVXZYSWwwMHBRTFlwY1ozbXZxaW1T?=
 =?utf-8?B?bUdvZXVsUitaYnBKeWQydk1CZDJ1VWEyV2ttYzVYWThmUmkvdXBsK2JDUFBF?=
 =?utf-8?B?MW1MRUswVHlvZEZWMDFCUW9WU3pwR3hmVjZOd3l2Sk8rTVFSZ1lKZ0pGMWZr?=
 =?utf-8?B?eEpBNGZld21aSUMzT3VrL21YTndMWGQvbEZLUE1iK29ZTHEvOVVoTlB0Wi9L?=
 =?utf-8?B?WndKME9pK2pYZkRUSWNRQWh4U0N0LzZPTVIwdFZ4N1QyVVdOYmhNanc0N3ZN?=
 =?utf-8?B?Q0lzcWp0NGZlU0I1MTgyQ3ZyZWFIeWUyRWtmbEV3MCs4ajl5UmtQeFB1S0Iy?=
 =?utf-8?B?bWRRUHd3TEkvZ3FCZjNKOHdyZUpuakxHUnFXaC9LM01iS3RaT3daTDdXMHEx?=
 =?utf-8?B?NkJDMWpKS24yVDkra0E4TmYyeFlJc2xoR0FaWTRzVmNSbUVUem9HeCt5NlZs?=
 =?utf-8?Q?xa6EFJ?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(36860700013)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Aug 2025 16:07:09.9121
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3a44ff2b-b1d4-4b19-1522-08dde583c715
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000EE3B.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB8774



On 27/08/2025 14:31, Hari Limaye wrote:
> Hi Michal,
> 
>> On 22 Aug 2025, at 08:50, Orzel, Michal <michal.orzel@amd.com> wrote:
>>
>>
>>
>> On 30/07/2025 10:45, Hari Limaye wrote:
>>> From: Penny Zheng <Penny.Zheng@arm.com>
>>>
>>> In the function `init_staticmem_pages` we need to have mapped static
>>> memory banks for initialization. Unlike on an MMU system, we cannot map
>>> the entire RAM on an MPU system as we have a limited number of MPU
>>> memory regions. To solve this, transiently map the static memory banks
>>> for initialization.
>> How does this correspond to Arm32 MPU (R52), where all of the RAM will be
>> covered? I don't think 'transient' mappings will be needed there but all of your
>> work targets common (i.e. not only Arm64) MPU code.
>>
>> ~Michal
>>
> 
> Hm fair point - when this series was submitted to the ML, I had no knowledge of the intention for all of the RAM to be mapped on Arm32 MPU systems and imagined that things would be more aligned here. 
> 
> Are happy for this to remain common for now? Or would you prefer it to be split off?
Let it be common for now. We can revisit it after the release to align on the
final approach.

~Michal



From xen-devel-bounces@lists.xenproject.org Wed Aug 27 16:08:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 16:08:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096475.1451166 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urIh6-0007TS-LO; Wed, 27 Aug 2025 16:08:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096475.1451166; Wed, 27 Aug 2025 16:08: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 1urIh6-0007TL-Ij; Wed, 27 Aug 2025 16:08:16 +0000
Received: by outflank-mailman (input) for mailman id 1096475;
 Wed, 27 Aug 2025 16:08:15 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=Gy2E=3H=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urIh5-0007T5-BY
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 16:08:15 +0000
Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com
 [2a00:1450:4864:20::62f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 08faa168-8360-11f0-aeb2-fb57b961d000;
 Wed, 27 Aug 2025 18:08:14 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-afcb731ca8eso1114915266b.0
 for <xen-devel@lists.xenproject.org>; Wed, 27 Aug 2025 09:08: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
 a640c23a62f3a-afe4937a15asm1030536766b.115.2025.08.27.09.08.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Aug 2025 09:08:13 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 08faa168-8360-11f0-aeb2-fb57b961d000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756310893; x=1756915693; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=LxQ3Ssrs/UfwpKo/uQBWRpaavXzwUx9k2rlSk7x3sm8=;
        b=XwSnRRorVLkAl3N/1v+9nu763hMYXVlFcAlPaz7stjLZLNd1cIjIwTI3JLvIM1qxf8
         Pg7x2QuzGpH4GIl5sosuwG74iE+lGxUsm8oxfwpQXjvaigNBqXevC1mjUEKpUN49jZ5j
         pobKIV2SXVq57qcUiPydw0rz5G+H886AunrglBwqBXfbZGNg4h8bmskHytCShR4cZTr/
         tWmFa3wFYGJDoVLN6ncxStt5rzzHF6HZB+NR/tMBGswB9OXNKvitiGI9Gvhc4h5x9Ft3
         mihAWESNIJ8KvRtJ6k3svQYvnKKotL+XrGJG0DTA//lB72wALTmkuH8ARNJvTUOG99Vc
         6ejg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756310893; x=1756915693;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=LxQ3Ssrs/UfwpKo/uQBWRpaavXzwUx9k2rlSk7x3sm8=;
        b=BCgZVGYzb4AJdj+h0IOr0I9+5ClIp3LBhbKemjATEtdO/r/57CAlvl7NFGoGYgBrnT
         5NfMoGcQdcaOg37iyO0LztIStFqsEonfCGNCkxfo99UHNxY11Y+wmD616+ut0MdGgOaB
         B8y2LjH70UzPW7t2sgmnnbd39CX5MnOm5IVDH02ir01sQjQ4y9rp7Y1QtOCq4k5OCBI7
         +6R/VcxFKLdOH2XWHhMEEXKehQjnrPtmQy5j9+sJJmN5iWTO3jkKPkgVRa/LGC37gAbj
         DBq1Kts9ns0ftE9A/kzfFJPs15TQT74qEAytHQmUoNVw+BZLb/Y5/CVH9pO5IArEo441
         3lTQ==
X-Gm-Message-State: AOJu0YzlIwmK/hyqKrCniklHRi8ETkdXBtcBMNFs5TKf0zt9bBCu1HI7
	AJ00CbmWJwWa1Cp+//PCidYlS0Enn/N/+yxSsl4TjI20tPeDoWP4Bm4TR+RjKam99g==
X-Gm-Gg: ASbGnctfVyTpr8lu/IOzb4tq5/LT3QGKC9PqCD8OzYDtBryRkHbBEO+92aX660XHfH4
	QYdJsj1d4Sz/usjuEcejdWNFU7WKq3FpSSjBH91CkSzjJSij+GmkR+TeEBD9bXM2bHmbyHBDSPt
	RcpXLX05DX2acZlYFVeSemdHuKbHufI4JPg3+JtIyTlx0ILNLX0QBb0xBj780PbLrIzTPMPuUFw
	DNPbGRqAxD5mjJ2L5BO5ojEE1EXNMtQkWBsixhZF+fBjSMayEBKAa/EkQtzW30hl/Hg2QSIJXGK
	m5bXx/Bi03TGq++KmrHIN/bKD/1OPfwg3XxbucXTHy6jlbt2U+UXv7HrMCqOGXJacOYQ6AfxUuh
	VaFO52U8lDyhM+ctQ3NqeqafLlEI0oQJq1pfzjGBCt8dNia8tO2qcYqJYbnWPRK9x2l19Y1/gwM
	OjIf0zWK0=
X-Google-Smtp-Source: AGHT+IFGl/JSC5eTtebcxyiXtl2zIhYG2bL2U3Ba3LoDAv7Ko7eGtN6Mx1bPIxL3zXk5keFH6L9xIg==
X-Received: by 2002:a17:907:d8d:b0:afe:a121:c466 with SMTP id a640c23a62f3a-afea121c81dmr699514566b.18.1756310893412;
        Wed, 27 Aug 2025 09:08:13 -0700 (PDT)
Message-ID: <427b81a1-9220-43da-bbcb-ff0cc7a38b73@suse.com>
Date: Wed, 27 Aug 2025 18:08:12 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 13/13] xen/cpufreq: Adapt SET/GET_CPUFREQ_CPPC
 xen_sysctl_pm_op for amd-cppc driver
To: Anthony PERARD <anthony@xenproject.org>
Cc: xen-devel@lists.xenproject.org, ray.huang@amd.com,
 Anthony PERARD <anthony.perard@vates.tech>,
 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>,
 Penny Zheng <Penny.Zheng@amd.com>
References: <20250822105218.3601273-1-Penny.Zheng@amd.com>
 <20250822105218.3601273-14-Penny.Zheng@amd.com> <aK8rC7CLd_7Z9sC8@l14>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aK8rC7CLd_7Z9sC8@l14>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 27.08.2025 17:58, Anthony PERARD wrote:
> On Fri, Aug 22, 2025 at 06:52:18PM +0800, Penny Zheng wrote:
>> diff --git a/tools/misc/xenpm.c b/tools/misc/xenpm.c
>> index 02981c4583..eedb745a46 100644
>> --- a/tools/misc/xenpm.c
>> +++ b/tools/misc/xenpm.c
>> @@ -38,6 +38,13 @@
>>  static xc_interface *xc_handle;
>>  static unsigned int max_cpu_nr;
>>  
>> +static const char cpufreq_policy_str[][12] = {
> 
> Is it necessary to hard-code an hand calculated size of the literal
> strings? Can't we let the compiler do that for us? With this as type:
> 
>     static const char *cpufreq_policy_str[] = {

I think it was me to request this. Your approach has an extra level of
indirection (perhaps not a big problem here), and requires runtime
relocations when building as PIE (maybe also not a big problem here).
The 2nd const that's wanted is also, as can be seen, frequently
omitted. Overall I'm generally striving towards using more efficient
code also where efficiency isn't of primary concern, simply because
code is being copied, often without looking very closely.

What we may want to do is bump to 12 to 16, adding some leeway and
making calculations a little easier.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 16:08:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 16:08:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096486.1451178 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urIhk-0007zL-Uu; Wed, 27 Aug 2025 16:08:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096486.1451178; Wed, 27 Aug 2025 16:08: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 1urIhk-0007zE-Qk; Wed, 27 Aug 2025 16:08:56 +0000
Received: by outflank-mailman (input) for mailman id 1096486;
 Wed, 27 Aug 2025 16:08:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=7rPc=3H=cloud.com=mark.syms@srs-se1.protection.inumbo.net>)
 id 1urIhj-0007jm-Jf
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 16:08:55 +0000
Received: from na1pdmzitismtp01.tibco.com (na1pdmzitismtp01.corp.cloud.com
 [160.101.131.8]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 202c29c6-8360-11f0-ae26-e363de0e7a9e;
 Wed, 27 Aug 2025 18:08:53 +0200 (CEST)
Received: from mewpvdipd1010.corp.cloud.com (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTP id 5B60C40D6683;
 Wed, 27 Aug 2025 12:08:14 -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>
X-Inumbo-ID: 202c29c6-8360-11f0-ae26-e363de0e7a9e
From: Mark Syms <mark.syms@cloud.com>
To: qemu-devel@nongnu.org,
	xen-devel@lists.xenproject.org
Cc: sstabellini@kernel.org,
	anthony@xenproject.org,
	paul@xen.org,
	Mark Syms <mark.syms@cloud.com>
Subject: [PATCH] [xen-block] Return BLKIF_RSP_EOPNOTSUPP for unknown operation
Date: Wed, 27 Aug 2025 17:08:41 +0100
Message-ID: <20250827160841.351707-1-mark.syms@cloud.com>
X-Mailer: git-send-email 2.50.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Returning BLKIF_RSP_ERROR if an operation is not supoprted does not
allow the frontend to exercise any discretion on how to handle the
response and may lead to an operating system crash. As different
backends may support different feature sets and we might, during a
migration, switch backends, an in-flight request might be issued (or
reissued) which is then not supported by this backend.

Signed-off-by: Mark Syms <mark.syms@cloud.com>
---
 hw/block/dataplane/xen-block.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/hw/block/dataplane/xen-block.c b/hw/block/dataplane/xen-block.c
index 48c2e315f3..32cf919a97 100644
--- a/hw/block/dataplane/xen-block.c
+++ b/hw/block/dataplane/xen-block.c
@@ -167,7 +167,8 @@ static int xen_block_parse_request(XenBlockRequest *request)
         return 0;
     default:
         error_report("error: unknown operation (%d)", request->req.operation);
-        goto err;
+        request->status = BLKIF_RSP_EOPNOTSUPP;
+        return -1;
     };
 
     if (request->req.operation != BLKIF_OP_READ &&
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Wed Aug 27 16:41:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 16:41:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096535.1451197 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urJCn-0005BZ-Ec; Wed, 27 Aug 2025 16:41:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096535.1451197; Wed, 27 Aug 2025 16:41:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urJCn-0005BS-BN; Wed, 27 Aug 2025 16:41:01 +0000
Received: by outflank-mailman (input) for mailman id 1096535;
 Wed, 27 Aug 2025 16:41:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Mrvt=3H=arm.com=hari.limaye@srs-se1.protection.inumbo.net>)
 id 1urJCm-0004w9-Db
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 16:41:00 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 9c5b60cd-8364-11f0-aeb2-fb57b961d000;
 Wed, 27 Aug 2025 18:40:59 +0200 (CEST)
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 78A6B152B;
 Wed, 27 Aug 2025 09:40:50 -0700 (PDT)
Received: from PWQ0QT7DJ1.arm.com (unknown [10.57.64.177])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 8546B3F738;
 Wed, 27 Aug 2025 09: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>
X-Inumbo-ID: 9c5b60cd-8364-11f0-aeb2-fb57b961d000
From: Hari Limaye <hari.limaye@arm.com>
To: xen-devel@lists.xenproject.org
Cc: luca.fancellu@arm.com,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v2 1/5] arm/mpu: Implement setup_frametable_mappings for MPU systems
Date: Wed, 27 Aug 2025 17:35:09 +0100
Message-ID: <99af1bac04c89a0c912f7f9c7e134ce79049e2a3.1756312498.git.hari.limaye@arm.com>
X-Mailer: git-send-email 2.42.1
In-Reply-To: <cover.1756312498.git.hari.limaye@arm.com>
References: <cover.1756312498.git.hari.limaye@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Luca Fancellu <luca.fancellu@arm.com>

Implement the MPU variant of `setup_frametable_mappings`. This function
will be called by `setup_mm` when an implementation for MPU systems is
added in a follow up commit.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
Signed-off-by: Hari Limaye <hari.limaye@arm.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>
---
Changes from v1:
- Align ps and pe to page size
- Add sanity checking for frametable size, as in MMU version
- Add Michal's R-b
---
 xen/arch/arm/mpu/mm.c | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
index c6891607ec..3f155b7db2 100644
--- a/xen/arch/arm/mpu/mm.c
+++ b/xen/arch/arm/mpu/mm.c
@@ -168,6 +168,39 @@ int mpumap_contains_region(pr_t *table, uint8_t nr_regions, paddr_t base,
     return MPUMAP_REGION_NOTFOUND;
 }
 
+/* Map a frame table to cover physical addresses ps through pe */
+void __init setup_frametable_mappings(paddr_t ps, paddr_t pe)
+{
+    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
+     * physical address.
+     */
+    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);
+
+    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);
+    frame_table = (struct page_info *)mfn_to_virt(mfn_x(base_mfn));
+
+    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)));
+}
+
 /*
  * Allocate an entry for a new EL2 MPU region in the bitmap xen_mpumap_mask.
  * @param idx   Set to the index of the allocated EL2 MPU region on success.
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Aug 27 16:41:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 16:41:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096534.1451188 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urJCm-0004wH-9H; Wed, 27 Aug 2025 16:41:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096534.1451188; Wed, 27 Aug 2025 16: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 1urJCm-0004wA-53; Wed, 27 Aug 2025 16:41:00 +0000
Received: by outflank-mailman (input) for mailman id 1096534;
 Wed, 27 Aug 2025 16:40:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Mrvt=3H=arm.com=hari.limaye@srs-se1.protection.inumbo.net>)
 id 1urJCk-0004w3-RC
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 16:40:58 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 9a851187-8364-11f0-ae26-e363de0e7a9e;
 Wed, 27 Aug 2025 18:40:56 +0200 (CEST)
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 58C2D152B;
 Wed, 27 Aug 2025 09:40:47 -0700 (PDT)
Received: from PWQ0QT7DJ1.arm.com (unknown [10.57.64.177])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id D98C73F738;
 Wed, 27 Aug 2025 09:40: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>
X-Inumbo-ID: 9a851187-8364-11f0-ae26-e363de0e7a9e
From: Hari Limaye <hari.limaye@arm.com>
To: xen-devel@lists.xenproject.org
Cc: luca.fancellu@arm.com,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 0/5] Third series for R82 MPU support
Date: Wed, 27 Aug 2025 17:35:08 +0100
Message-ID: <cover.1756312498.git.hari.limaye@arm.com>
X-Mailer: git-send-email 2.42.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Hi all,

This series is the third set of patches in the ongoing work to
introduce support for MPU systems and Cortex R82 in Xen.

The patches in this series implement the necessary logic to transiently
map and unmap the static memory banks for initialization.

Changes from v1:
- Changes mentioned in individual patches

Cheers,
Hari

Luca Fancellu (4):
  arm/mpu: Implement setup_frametable_mappings for MPU systems
  arm/mpu: Implement setup_mm for MPU systems
  arm/mpu: Implement transient mapping
  arm/mpu: Implement ioremap_attr for MPU

Penny Zheng (1):
  xen/arm: map static memory on demand

 xen/arch/arm/include/asm/arm32/mpu.h     |   2 +
 xen/arch/arm/include/asm/arm64/mpu.h     |   2 +
 xen/arch/arm/include/asm/mmu/mm.h        |   3 +
 xen/arch/arm/include/asm/mpu/mm.h        |  40 +++-
 xen/arch/arm/include/asm/mpu/regions.inc |  19 +-
 xen/arch/arm/mpu/mm.c                    | 262 +++++++++++++++++++++--
 xen/arch/arm/mpu/setup.c                 |  11 +
 xen/include/xen/static-memory.h          |   8 +
 8 files changed, 328 insertions(+), 19 deletions(-)

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Aug 27 16:41:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 16:41:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096542.1451208 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urJD7-0005kw-NE; Wed, 27 Aug 2025 16:41:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096542.1451208; Wed, 27 Aug 2025 16:41: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 1urJD7-0005kl-J0; Wed, 27 Aug 2025 16:41:21 +0000
Received: by outflank-mailman (input) for mailman id 1096542;
 Wed, 27 Aug 2025 16:41:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Mrvt=3H=arm.com=hari.limaye@srs-se1.protection.inumbo.net>)
 id 1urJD5-0004w3-VG
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 16:41:19 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id a2fada7d-8364-11f0-ae26-e363de0e7a9e;
 Wed, 27 Aug 2025 18:41:10 +0200 (CEST)
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 904CC152B;
 Wed, 27 Aug 2025 09:41:01 -0700 (PDT)
Received: from PWQ0QT7DJ1.arm.com (unknown [10.57.64.177])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 9DD323F77D;
 Wed, 27 Aug 2025 09:41: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>
X-Inumbo-ID: a2fada7d-8364-11f0-ae26-e363de0e7a9e
From: Hari Limaye <hari.limaye@arm.com>
To: xen-devel@lists.xenproject.org
Cc: luca.fancellu@arm.com,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v2 2/5] arm/mpu: Implement setup_mm for MPU systems
Date: Wed, 27 Aug 2025 17:35:10 +0100
Message-ID: <a000dbac8fb8e90eb61882760a2dd84cacfe2eef.1756312498.git.hari.limaye@arm.com>
X-Mailer: git-send-email 2.42.1
In-Reply-To: <cover.1756312498.git.hari.limaye@arm.com>
References: <cover.1756312498.git.hari.limaye@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Luca Fancellu <luca.fancellu@arm.com>

Implement `setup_mm` for MPU systems. This variant doesn't need to set
up the direct map.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
Signed-off-by: Hari Limaye <hari.limaye@arm.com>
---
Changes from v1:
- Fix total_pages dead assignment
- Remove extraneous space
- Remove redundant max_page assignment
---
 xen/arch/arm/mpu/mm.c | 62 ++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 61 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
index 3f155b7db2..4c517d6e43 100644
--- a/xen/arch/arm/mpu/mm.c
+++ b/xen/arch/arm/mpu/mm.c
@@ -8,9 +8,12 @@
 #include <xen/sizes.h>
 #include <xen/spinlock.h>
 #include <xen/types.h>
+#include <xen/static-memory.h>
+#include <xen/static-shmem.h>
 #include <asm/mpu.h>
 #include <asm/mpu/mm.h>
 #include <asm/page.h>
+#include <asm/setup.h>
 #include <asm/sysregs.h>
 
 struct page_info *frame_table;
@@ -378,9 +381,66 @@ int map_pages_to_xen(unsigned long virt, mfn_t mfn, unsigned long nr_mfns,
     return xen_mpumap_update(virt, mfn_to_maddr(mfn_add(mfn, nr_mfns)), flags);
 }
 
+/*
+ * Heap must be statically configured in Device Tree through "xen,static-heap"
+ * on MPU systems.
+ */
+static void __init setup_staticheap_mappings(void)
+{
+    const struct membanks *reserved_mem = bootinfo_get_reserved_mem();
+    unsigned int bank = 0;
+
+    for ( ; bank < reserved_mem->nr_banks; bank++ )
+    {
+        if ( reserved_mem->bank[bank].type == MEMBANK_STATIC_HEAP )
+        {
+            paddr_t bank_start = round_pgup(reserved_mem->bank[bank].start);
+            paddr_t bank_size = round_pgdown(reserved_mem->bank[bank].size);
+            paddr_t bank_end = bank_start + bank_size;
+
+            /* Map static heap with one MPU protection region */
+            if ( xen_mpumap_update(bank_start, bank_end, PAGE_HYPERVISOR) )
+                panic("Failed to map static heap\n");
+
+            break;
+        }
+    }
+
+    if ( bank == reserved_mem->nr_banks )
+        panic("No static heap memory bank found\n");
+}
+
 void __init setup_mm(void)
 {
-    BUG_ON("unimplemented");
+    const struct membanks *mem = bootinfo_get_mem();
+    paddr_t ram_start = INVALID_PADDR, ram_end = 0, ram_size = 0;
+
+    if ( !mem->nr_banks )
+        panic("No memory bank\n");
+
+    init_pdx();
+
+    populate_boot_allocator();
+
+    for ( unsigned int bank = 0; bank < mem->nr_banks; bank++ )
+    {
+        paddr_t bank_start = round_pgup(mem->bank[bank].start);
+        paddr_t bank_size = round_pgdown(mem->bank[bank].size);
+        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);
+    }
+
+    setup_staticheap_mappings();
+
+    total_pages = ram_size >> PAGE_SHIFT;
+
+    setup_frametable_mappings(ram_start, ram_end);
+
+    init_staticmem_pages();
+    init_sharedmem_pages();
 }
 
 int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Aug 27 16:41:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 16:41:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096543.1451213 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urJD8-0005sN-5H; Wed, 27 Aug 2025 16:41:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096543.1451213; Wed, 27 Aug 2025 16:41: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 1urJD8-0005pN-0R; Wed, 27 Aug 2025 16:41:22 +0000
Received: by outflank-mailman (input) for mailman id 1096543;
 Wed, 27 Aug 2025 16:41:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Mrvt=3H=arm.com=hari.limaye@srs-se1.protection.inumbo.net>)
 id 1urJD6-0004w3-VG
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 16:41:20 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id a53ffaa9-8364-11f0-ae26-e363de0e7a9e;
 Wed, 27 Aug 2025 18:41:14 +0200 (CEST)
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 59D832C3A;
 Wed, 27 Aug 2025 09:41:05 -0700 (PDT)
Received: from PWQ0QT7DJ1.arm.com (unknown [10.57.64.177])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 6D9703F738;
 Wed, 27 Aug 2025 09:41: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>
X-Inumbo-ID: a53ffaa9-8364-11f0-ae26-e363de0e7a9e
From: Hari Limaye <hari.limaye@arm.com>
To: xen-devel@lists.xenproject.org
Cc: luca.fancellu@arm.com,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v2 3/5] arm/mpu: Implement transient mapping
Date: Wed, 27 Aug 2025 17:35:11 +0100
Message-ID: <80b0b3f84ae73f7d92d1b1cfe057ffc438882725.1756312498.git.hari.limaye@arm.com>
X-Mailer: git-send-email 2.42.1
In-Reply-To: <cover.1756312498.git.hari.limaye@arm.com>
References: <cover.1756312498.git.hari.limaye@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Luca Fancellu <luca.fancellu@arm.com>

Add a scheme to distinguish transient MPU regions, to identify MPU
regions which will be mapped for a short period of time. This is needed
for the functions which transiently map and unmap memory ranges on
demand which will be introduced in a future commit.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
Signed-off-by: Hari Limaye <hari.limaye@arm.com>
---
Changes from v1:
- Improve commit message
- Mark parameter in read helper as const
---
 xen/arch/arm/include/asm/arm32/mpu.h     |  2 ++
 xen/arch/arm/include/asm/arm64/mpu.h     |  2 ++
 xen/arch/arm/include/asm/mpu/mm.h        | 14 +++++++++++++-
 xen/arch/arm/include/asm/mpu/regions.inc | 19 +++++++++++++++++--
 xen/arch/arm/mpu/mm.c                    | 23 ++++++++++++++---------
 5 files changed, 48 insertions(+), 12 deletions(-)

diff --git a/xen/arch/arm/include/asm/arm32/mpu.h b/xen/arch/arm/include/asm/arm32/mpu.h
index 0a6930b3a0..9906d98809 100644
--- a/xen/arch/arm/include/asm/arm32/mpu.h
+++ b/xen/arch/arm/include/asm/arm32/mpu.h
@@ -39,6 +39,8 @@ typedef union {
 typedef struct {
     prbar_t prbar;
     prlar_t prlar;
+    bool transient;
+    uint8_t pad[7]; /* Pad structure to 16 Bytes */
 } pr_t;
 
 #endif /* __ASSEMBLY__ */
diff --git a/xen/arch/arm/include/asm/arm64/mpu.h b/xen/arch/arm/include/asm/arm64/mpu.h
index f0ce344e78..1d1843eda0 100644
--- a/xen/arch/arm/include/asm/arm64/mpu.h
+++ b/xen/arch/arm/include/asm/arm64/mpu.h
@@ -38,6 +38,8 @@ typedef union {
 typedef struct {
     prbar_t prbar;
     prlar_t prlar;
+    bool transient;
+    uint8_t pad[15]; /* Pad structure to 32 Bytes */
 } pr_t;
 
 #endif /* __ASSEMBLY__ */
diff --git a/xen/arch/arm/include/asm/mpu/mm.h b/xen/arch/arm/include/asm/mpu/mm.h
index e1ded6521d..566d338986 100644
--- a/xen/arch/arm/include/asm/mpu/mm.h
+++ b/xen/arch/arm/include/asm/mpu/mm.h
@@ -55,6 +55,16 @@ static inline void context_sync_mpu(void)
     isb();
 }
 
+static inline bool region_is_transient(const pr_t *pr)
+{
+    return pr->transient;
+}
+
+static inline void region_set_transient(pr_t *pr, bool transient)
+{
+    pr->transient = transient;
+}
+
 /*
  * The following API requires context_sync_mpu() after being used to modify MPU
  * regions:
@@ -75,9 +85,11 @@ void write_protection_region(const pr_t *pr_write, uint8_t sel);
  * @param base      Base address of the range to map (inclusive).
  * @param limit     Limit address of the range to map (exclusive).
  * @param flags     Flags for the memory range to map.
+ * @param transient True for a transient mapping, otherwise False.
  * @return          0 on success, negative on error.
  */
-int xen_mpumap_update(paddr_t base, paddr_t limit, unsigned int flags);
+int xen_mpumap_update(paddr_t base, paddr_t limit, unsigned int flags,
+                      bool transient);
 
 /*
  * Creates a pr_t structure describing a protection region.
diff --git a/xen/arch/arm/include/asm/mpu/regions.inc b/xen/arch/arm/include/asm/mpu/regions.inc
index 23fead3b21..f9892fe3d8 100644
--- a/xen/arch/arm/include/asm/mpu/regions.inc
+++ b/xen/arch/arm/include/asm/mpu/regions.inc
@@ -14,19 +14,31 @@
 #define PRLAR_ELx_EN            0x1
 
 #ifdef CONFIG_ARM_64
-#define XEN_MPUMAP_ENTRY_SHIFT  0x4     /* 16 byte structure */
+#define XEN_MPUMAP_ENTRY_SHIFT        0x5   /* 32 byte structure */
+#define XEN_MPUMAP_ENTRY_ZERO_OFFSET  0x10  /* {PRBAR, PRLAR} is 16 bytes  */
 
 .macro store_pair reg1, reg2, dst
     stp \reg1, \reg2, [\dst]
 .endm
 
+.macro zero_pair dst, offset, tmp1, tmp2
+    stp xzr, xzr, [\dst, \offset]
+.endm
+
 #else
-#define XEN_MPUMAP_ENTRY_SHIFT  0x3     /* 8 byte structure */
+#define XEN_MPUMAP_ENTRY_SHIFT        0x4   /* 16 byte structure */
+#define XEN_MPUMAP_ENTRY_ZERO_OFFSET  0x8   /* {PRBAR, PRLAR} is 8 bytes  */
 
 .macro store_pair reg1, reg2, dst
     strd  \reg1, \reg2, [\dst]
 .endm
 
+.macro zero_pair dst, offset, tmp1, tmp2
+    mov \tmp1, #0
+    mov \tmp2, #0
+    strd \tmp1, \tmp2, [\dst, \offset]
+.endm
+
 #endif
 
 /*
@@ -97,6 +109,9 @@
 
 3:
 
+    /* Clear the rest of the xen_mpumap entry. Clobbers prbar and prlar. */
+    zero_pair \base, #XEN_MPUMAP_ENTRY_ZERO_OFFSET, \prbar, \prlar
+
     add   \sel, \sel, #1
 
 1:
diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
index 4c517d6e43..33333181d5 100644
--- a/xen/arch/arm/mpu/mm.c
+++ b/xen/arch/arm/mpu/mm.c
@@ -265,13 +265,14 @@ static void disable_mpu_region_from_index(uint8_t index)
  * Update the entry in the MPU memory region mapping table (xen_mpumap) for the
  * given memory range and flags, creating one if none exists.
  *
- * @param base  Base address (inclusive).
- * @param limit Limit address (exclusive).
- * @param flags Region attributes (a combination of PAGE_HYPERVISOR_XXX)
+ * @param base      Base address (inclusive).
+ * @param limit     Limit address (exclusive).
+ * @param flags     Region attributes (a combination of PAGE_HYPERVISOR_XXX)
+ * @param transient True for a transient mapping, otherwise False.
  * @return      0 on success, otherwise negative on error.
  */
 static int xen_mpumap_update_entry(paddr_t base, paddr_t limit,
-                                   unsigned int flags)
+                                   unsigned int flags, bool transient)
 {
     bool flags_has_page_present;
     uint8_t idx;
@@ -311,6 +312,7 @@ static int xen_mpumap_update_entry(paddr_t base, paddr_t limit,
             return -ENOENT;
 
         xen_mpumap[idx] = pr_of_addr(base, limit, flags);
+        region_set_transient(&xen_mpumap[idx], transient);
 
         write_protection_region(&xen_mpumap[idx], idx);
     }
@@ -330,7 +332,8 @@ static int xen_mpumap_update_entry(paddr_t base, paddr_t limit,
     return 0;
 }
 
-int xen_mpumap_update(paddr_t base, paddr_t limit, unsigned int flags)
+int xen_mpumap_update(paddr_t base, paddr_t limit, unsigned int flags,
+                      bool transient)
 {
     int rc;
 
@@ -356,7 +359,7 @@ int xen_mpumap_update(paddr_t base, paddr_t limit, unsigned int flags)
 
     spin_lock(&xen_mpumap_lock);
 
-    rc = xen_mpumap_update_entry(base, limit, flags);
+    rc = xen_mpumap_update_entry(base, limit, flags, transient);
     if ( !rc )
         context_sync_mpu();
 
@@ -371,14 +374,15 @@ int destroy_xen_mappings(unsigned long s, unsigned long e)
     ASSERT(IS_ALIGNED(e, PAGE_SIZE));
     ASSERT(s < e);
 
-    return xen_mpumap_update(s, e, 0);
+    return xen_mpumap_update(s, e, 0, false);
 }
 
 int map_pages_to_xen(unsigned long virt, mfn_t mfn, unsigned long nr_mfns,
                      unsigned int flags)
 {
     /* MPU systems have no translation, ma == va, so pass virt directly */
-    return xen_mpumap_update(virt, mfn_to_maddr(mfn_add(mfn, nr_mfns)), flags);
+    return xen_mpumap_update(virt, mfn_to_maddr(mfn_add(mfn, nr_mfns)), flags,
+                             false);
 }
 
 /*
@@ -399,7 +403,8 @@ static void __init setup_staticheap_mappings(void)
             paddr_t bank_end = bank_start + bank_size;
 
             /* Map static heap with one MPU protection region */
-            if ( xen_mpumap_update(bank_start, bank_end, PAGE_HYPERVISOR) )
+            if ( xen_mpumap_update(bank_start, bank_end, PAGE_HYPERVISOR,
+                                   false) )
                 panic("Failed to map static heap\n");
 
             break;
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Aug 27 16:41:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 16:41:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096545.1451227 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urJD9-0006Gj-CL; Wed, 27 Aug 2025 16:41:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096545.1451227; Wed, 27 Aug 2025 16:41: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 1urJD9-0006Fn-9L; Wed, 27 Aug 2025 16:41:23 +0000
Received: by outflank-mailman (input) for mailman id 1096545;
 Wed, 27 Aug 2025 16:41:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Mrvt=3H=arm.com=hari.limaye@srs-se1.protection.inumbo.net>)
 id 1urJD7-0004w3-VK
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 16:41:21 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id a7aa3404-8364-11f0-ae26-e363de0e7a9e;
 Wed, 27 Aug 2025 18:41:18 +0200 (CEST)
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 787E32720;
 Wed, 27 Aug 2025 09:41:09 -0700 (PDT)
Received: from PWQ0QT7DJ1.arm.com (unknown [10.57.64.177])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 8301A3F738;
 Wed, 27 Aug 2025 09:41: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>
X-Inumbo-ID: a7aa3404-8364-11f0-ae26-e363de0e7a9e
From: Hari Limaye <hari.limaye@arm.com>
To: xen-devel@lists.xenproject.org
Cc: luca.fancellu@arm.com,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v2 4/5] arm/mpu: Implement ioremap_attr for MPU
Date: Wed, 27 Aug 2025 17:35:12 +0100
Message-ID: <d2287756e1cd2e7f1cf4ac1bc5de775840c0b0ce.1756312498.git.hari.limaye@arm.com>
X-Mailer: git-send-email 2.42.1
In-Reply-To: <cover.1756312498.git.hari.limaye@arm.com>
References: <cover.1756312498.git.hari.limaye@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Luca Fancellu <luca.fancellu@arm.com>

Introduce helpers (un)map_mm_range() in order to allow the transient
mapping of a range of memory, and use these to implement the function
`ioremap_attr` for MPU systems.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
Signed-off-by: Hari Limaye <hari.limaye@arm.com>
---
Changes from v1:
- Use transient instead of temporary, and improve wording of comments
  regarding transient mapping
- Rename start, end -> base, limit
---
 xen/arch/arm/include/asm/mpu/mm.h |  22 +++++
 xen/arch/arm/mpu/mm.c             | 150 ++++++++++++++++++++++++++++--
 2 files changed, 163 insertions(+), 9 deletions(-)

diff --git a/xen/arch/arm/include/asm/mpu/mm.h b/xen/arch/arm/include/asm/mpu/mm.h
index 566d338986..efb0680e39 100644
--- a/xen/arch/arm/include/asm/mpu/mm.h
+++ b/xen/arch/arm/include/asm/mpu/mm.h
@@ -101,6 +101,28 @@ int xen_mpumap_update(paddr_t base, paddr_t limit, unsigned int flags,
  */
 pr_t pr_of_addr(paddr_t base, paddr_t limit, unsigned int flags);
 
+/*
+ * Maps transiently a range of memory with attributes `flags`; if the range is
+ * already mapped with the same attributes, including an inclusive match, the
+ * existing mapping is returned. This API is intended for mappings that exist
+ * transiently for a short period between calls to this function and
+ * `unmap_mm_range`.
+ *
+ * @param base      Base address of the range to map (inclusive).
+ * @param limit     Limit address of the range to map (exclusive).
+ * @param flags     Flags for the memory range to map.
+ * @return          Pointer to base of region on success, NULL on error.
+ */
+void *map_mm_range(paddr_t base, paddr_t limit, unsigned int flags);
+
+/*
+ * Unmaps a range of memory if it was previously mapped by map_mm_range,
+ * otherwise it does not remove the mapping.
+ *
+ * @param base     Base address of the range to map (inclusive).
+ */
+void unmap_mm_range(paddr_t base);
+
 /*
  * Checks whether a given memory range is present in the provided table of
  * MPU protection regions.
diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
index 33333181d5..52c4c43827 100644
--- a/xen/arch/arm/mpu/mm.c
+++ b/xen/arch/arm/mpu/mm.c
@@ -332,31 +332,39 @@ static int xen_mpumap_update_entry(paddr_t base, paddr_t limit,
     return 0;
 }
 
-int xen_mpumap_update(paddr_t base, paddr_t limit, unsigned int flags,
-                      bool transient)
+static bool check_mpu_mapping(paddr_t base, paddr_t limit, unsigned int flags)
 {
-    int rc;
-
     if ( flags_has_rwx(flags) )
     {
         printk("Mappings should not be both Writeable and Executable\n");
-        return -EINVAL;
+        return false;
     }
 
     if ( base >= limit )
     {
         printk("Base address %#"PRIpaddr" must be smaller than limit address %#"PRIpaddr"\n",
                base, limit);
-        return -EINVAL;
+        return false;
     }
 
     if ( !IS_ALIGNED(base, PAGE_SIZE) || !IS_ALIGNED(limit, PAGE_SIZE) )
     {
         printk("base address %#"PRIpaddr", or limit address %#"PRIpaddr" is not page aligned\n",
                base, limit);
-        return -EINVAL;
+        return false;
     }
 
+    return true;
+}
+
+int xen_mpumap_update(paddr_t base, paddr_t limit, unsigned int flags,
+                      bool transient)
+{
+    int rc;
+
+    if ( !check_mpu_mapping(base, limit, flags) )
+        return -EINVAL;
+
     spin_lock(&xen_mpumap_lock);
 
     rc = xen_mpumap_update_entry(base, limit, flags, transient);
@@ -465,10 +473,134 @@ void free_init_memory(void)
     BUG_ON("unimplemented");
 }
 
+static uint8_t is_mm_range_mapped(paddr_t start, paddr_t end)
+{
+    int rc;
+    uint8_t idx;
+
+    ASSERT(spin_is_locked(&xen_mpumap_lock));
+
+    rc = mpumap_contains_region(xen_mpumap, max_mpu_regions, start, end, &idx);
+    if ( rc < 0 )
+         panic("Cannot handle overlapping MPU memory protection regions\n");
+
+    /*
+     * 'idx' will be INVALID_REGION_IDX for rc == MPUMAP_REGION_NOTFOUND and
+     * it will be a proper region index when rc >= MPUMAP_REGION_FOUND.
+     */
+    return idx;
+}
+
+static bool is_mm_attr_match(pr_t *region, unsigned int attributes)
+{
+    bool ret = true;
+
+    if ( region->prbar.reg.ro != PAGE_RO_MASK(attributes) )
+    {
+        printk(XENLOG_WARNING
+               "Mismatched Access Permission attributes (%#x0 instead of %#x0)\n",
+               region->prbar.reg.ro, PAGE_RO_MASK(attributes));
+        ret = false;
+    }
+
+    if ( region->prbar.reg.xn != PAGE_XN_MASK(attributes) )
+    {
+        printk(XENLOG_WARNING
+               "Mismatched Execute Never attributes (%#x instead of %#x)\n",
+               region->prbar.reg.xn, PAGE_XN_MASK(attributes));
+        ret = false;
+    }
+
+    if ( region->prlar.reg.ai != PAGE_AI_MASK(attributes) )
+    {
+        printk(XENLOG_WARNING
+               "Mismatched Memory Attribute Index (%#x instead of %#x)\n",
+               region->prlar.reg.ai, PAGE_AI_MASK(attributes));
+        ret = false;
+    }
+
+    return ret;
+}
+
+void *map_mm_range(paddr_t base, paddr_t limit, unsigned int flags)
+{
+    paddr_t start_pg = round_pgdown(base);
+    paddr_t end_pg = round_pgup(limit);
+    void *ret = NULL;
+    uint8_t idx;
+
+    if ( !check_mpu_mapping(start_pg, end_pg, flags) )
+        return NULL;
+
+    spin_lock(&xen_mpumap_lock);
+
+    idx = is_mm_range_mapped(start_pg, end_pg);
+    if ( idx != INVALID_REGION_IDX )
+    {
+        /* Already mapped with different attributes */
+        if ( !is_mm_attr_match(&xen_mpumap[idx], flags) )
+        {
+            printk(XENLOG_WARNING
+                   "Range %#"PRIpaddr"-%#"PRIpaddr" already mapped with different flags\n",
+                   start_pg, end_pg);
+            goto out;
+        }
+
+        /* Already mapped with same attributes */
+        ret = maddr_to_virt(base);
+        goto out;
+    }
+
+    if ( !xen_mpumap_update_entry(start_pg, end_pg, flags, true) )
+    {
+        context_sync_mpu();
+        ret = maddr_to_virt(base);
+    }
+
+ out:
+    spin_unlock(&xen_mpumap_lock);
+
+    return ret;
+}
+
+void unmap_mm_range(paddr_t base)
+{
+    uint8_t idx;
+
+    spin_lock(&xen_mpumap_lock);
+
+    /*
+     * Mappings created via map_mm_range are at least PAGE_SIZE. Find the idx
+     * of the MPU memory region containing `start` mapped through map_mm_range.
+     */
+    idx = is_mm_range_mapped(base, base + PAGE_SIZE);
+    if ( idx == INVALID_REGION_IDX )
+    {
+        printk(XENLOG_ERR
+               "Failed to unmap_mm_range MPU memory region at %#"PRIpaddr"\n",
+               base);
+        goto out;
+    }
+
+    /* This API is only meant to unmap transient regions */
+    if ( !region_is_transient(&xen_mpumap[idx]) )
+        goto out;
+
+    /* Disable MPU memory region and clear the associated entry in xen_mpumap */
+    disable_mpu_region_from_index(idx);
+    context_sync_mpu();
+
+ out:
+    spin_unlock(&xen_mpumap_lock);
+}
+
 void __iomem *ioremap_attr(paddr_t start, size_t len, unsigned int flags)
 {
-    BUG_ON("unimplemented");
-    return NULL;
+    if ( !map_mm_range(start, start + len, flags) )
+        return NULL;
+
+    /* Mapped or already mapped */
+    return maddr_to_virt(start);
 }
 
 /*
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Aug 27 16:41:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 16:41:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096549.1451237 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urJDB-0006ZF-Kb; Wed, 27 Aug 2025 16:41:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096549.1451237; Wed, 27 Aug 2025 16:41: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 1urJDB-0006Z5-Gf; Wed, 27 Aug 2025 16:41:25 +0000
Received: by outflank-mailman (input) for mailman id 1096549;
 Wed, 27 Aug 2025 16:41:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Mrvt=3H=arm.com=hari.limaye@srs-se1.protection.inumbo.net>)
 id 1urJDA-0004w9-2a
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 16:41:24 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id aa9a75c2-8364-11f0-aeb2-fb57b961d000;
 Wed, 27 Aug 2025 18:41:23 +0200 (CEST)
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 5D2F8152B;
 Wed, 27 Aug 2025 09:41:14 -0700 (PDT)
Received: from PWQ0QT7DJ1.arm.com (unknown [10.57.64.177])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 857B53F738;
 Wed, 27 Aug 2025 09:41: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>
X-Inumbo-ID: aa9a75c2-8364-11f0-aeb2-fb57b961d000
From: Hari Limaye <hari.limaye@arm.com>
To: xen-devel@lists.xenproject.org
Cc: luca.fancellu@arm.com,
	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>,
	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>,
	Penny Zheng <penny.zheng@arm.com>,
	Wei Chen <wei.chen@arm.com>
Subject: [PATCH v2 5/5] xen/arm: map static memory on demand
Date: Wed, 27 Aug 2025 17:35:13 +0100
Message-ID: <6408f218f3075acd43f5563bff26165091d9f184.1756312498.git.hari.limaye@arm.com>
X-Mailer: git-send-email 2.42.1
In-Reply-To: <cover.1756312498.git.hari.limaye@arm.com>
References: <cover.1756312498.git.hari.limaye@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Penny Zheng <Penny.Zheng@arm.com>

In the function `init_staticmem_pages` we need to have mapped static
memory banks for initialization. Unlike on an MMU system, we cannot map
the entire RAM on an MPU system as we have a limited number of MPU
memory regions. To solve this, transiently map the static memory banks
for initialization.

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>
---
 xen/arch/arm/include/asm/mmu/mm.h |  3 +++
 xen/arch/arm/include/asm/mpu/mm.h |  4 ++++
 xen/arch/arm/mpu/setup.c          | 11 +++++++++++
 xen/include/xen/static-memory.h   |  8 ++++++++
 4 files changed, 26 insertions(+)

diff --git a/xen/arch/arm/include/asm/mmu/mm.h b/xen/arch/arm/include/asm/mmu/mm.h
index 7f4d59137d..645a0ea3cb 100644
--- a/xen/arch/arm/include/asm/mmu/mm.h
+++ b/xen/arch/arm/include/asm/mmu/mm.h
@@ -110,6 +110,9 @@ void dump_pt_walk(paddr_t ttbr, paddr_t addr,
 extern void switch_ttbr(uint64_t ttbr);
 extern void relocate_and_switch_ttbr(uint64_t ttbr);
 
+static inline void map_staticmem_pages_to_xen(paddr_t start, paddr_t end) {}
+static inline void unmap_staticmem_pages_to_xen(paddr_t start, paddr_t end) {}
+
 #endif /* __ARM_MMU_MM_H__ */
 
 /*
diff --git a/xen/arch/arm/include/asm/mpu/mm.h b/xen/arch/arm/include/asm/mpu/mm.h
index efb0680e39..4cc769418e 100644
--- a/xen/arch/arm/include/asm/mpu/mm.h
+++ b/xen/arch/arm/include/asm/mpu/mm.h
@@ -123,6 +123,10 @@ void *map_mm_range(paddr_t base, paddr_t limit, unsigned int flags);
  */
 void unmap_mm_range(paddr_t base);
 
+/* {un}map_staticmem_pages_to_xen used while initializing static memory banks */
+void map_staticmem_pages_to_xen(paddr_t start, paddr_t end);
+void unmap_staticmem_pages_to_xen(paddr_t start, paddr_t end);
+
 /*
  * Checks whether a given memory range is present in the provided table of
  * MPU protection regions.
diff --git a/xen/arch/arm/mpu/setup.c b/xen/arch/arm/mpu/setup.c
index 163573b932..dbc3107333 100644
--- a/xen/arch/arm/mpu/setup.c
+++ b/xen/arch/arm/mpu/setup.c
@@ -83,6 +83,17 @@ void * __init early_fdt_map(paddr_t fdt_paddr)
     return fdt_virt;
 }
 
+void __init map_staticmem_pages_to_xen(paddr_t start, paddr_t end)
+{
+    if ( !map_mm_range(start, end, PAGE_HYPERVISOR) )
+        panic("Unable to map staticmem pages to Xen!");
+}
+
+void __init unmap_staticmem_pages_to_xen(paddr_t start, paddr_t end)
+{
+    unmap_mm_range(start);
+}
+
 /*
  * copy_from_paddr - copy data from a physical address
  * @dst: destination virtual address
diff --git a/xen/include/xen/static-memory.h b/xen/include/xen/static-memory.h
index e445aa8057..d99abac113 100644
--- a/xen/include/xen/static-memory.h
+++ b/xen/include/xen/static-memory.h
@@ -18,7 +18,15 @@ static inline void init_staticmem_bank(const struct membank *bank)
     if ( mfn_x(bank_end) <= mfn_x(bank_start) )
         return;
 
+    /* Map temporarily before initialization */
+    map_staticmem_pages_to_xen(mfn_to_maddr(bank_start),
+                               mfn_to_maddr(bank_end));
+
     unprepare_staticmem_pages(mfn_to_page(bank_start), bank_pages, false);
+
+    /* Unmap immediately after initialization */
+    unmap_staticmem_pages_to_xen(mfn_to_maddr(bank_start),
+                                 mfn_to_maddr(bank_end));
 }
 
 void allocate_static_memory(struct domain *d, struct kernel_info *kinfo,
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Wed Aug 27 17:05:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 17:05:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096600.1451246 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urJZt-00024O-CY; Wed, 27 Aug 2025 17:04:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096600.1451246; Wed, 27 Aug 2025 17:04: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 1urJZt-00024H-9j; Wed, 27 Aug 2025 17:04:53 +0000
Received: by outflank-mailman (input) for mailman id 1096600;
 Wed, 27 Aug 2025 17:04:52 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Mrvt=3H=arm.com=Hari.Limaye@srs-se1.protection.inumbo.net>)
 id 1urJZr-00022Z-QJ
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 17:04:52 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f0dc7a76-8367-11f0-aeb2-fb57b961d000;
 Wed, 27 Aug 2025 19:04:49 +0200 (CEST)
Received: from DB9PR05CA0012.eurprd05.prod.outlook.com (2603:10a6:10:1da::17)
 by GV1PR08MB8330.eurprd08.prod.outlook.com (2603:10a6:150:85::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Wed, 27 Aug
 2025 17:04:38 +0000
Received: from DB3PEPF0000885A.eurprd02.prod.outlook.com
 (2603:10a6:10:1da:cafe::4f) by DB9PR05CA0012.outlook.office365.com
 (2603:10a6:10:1da::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.14 via Frontend Transport; Wed,
 27 Aug 2025 17:04:37 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB3PEPF0000885A.mail.protection.outlook.com (10.167.242.5) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.11
 via Frontend Transport; Wed, 27 Aug 2025 17:04:37 +0000
Received: from AS2PR08MB8745.eurprd08.prod.outlook.com (2603:10a6:20b:55d::22)
 by DU0PR08MB8812.eurprd08.prod.outlook.com (2603:10a6:10:47b::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.18; Wed, 27 Aug
 2025 17:04:01 +0000
Received: from AS2PR08MB8745.eurprd08.prod.outlook.com
 ([fe80::a4bd:fd62:e7f:76d5]) by AS2PR08MB8745.eurprd08.prod.outlook.com
 ([fe80::a4bd:fd62:e7f:76d5%5]) with mapi id 15.20.9031.019; Wed, 27 Aug 2025
 17:04: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>
X-Inumbo-ID: f0dc7a76-8367-11f0-aeb2-fb57b961d000
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=S22iGeVwC469otB4Nesv5Vbx/TDJUY4P7zM0UE/COgpxC1VyHzmAZ4wwCI/vYao34Y0GySKlvSWTgbezrp3+hvGAquX+JqFY0l73K+22g9HhbJg7N6VcqfzPNtGxBsIqQQ6oRdfO71ROMiSwXqoOuPkIPHDsQjN319yotlMCPlkA27LkrzhzPwQrtY2559ljJiEOR8YqSS45aQiVOIYvePWXFh8ofA7w54xv8v8fyqy6NmDj2Eo5j8IgkGMnkPNDuL31eXs4wm+rILZMQ4Hsl86VKSwbCRYIP+DVWheQkmt2JUoCZNeGwpLzEwCcSxCNNKbmNoVgEfZeV/mTmqZsZg==
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=b9sHEG7gC2Akdv5ctBDAO5rlWenbvjbn48R3yIB4cWQ=;
 b=mgyiYDPBeZdRyV2QzAFfJUygBBEJYqcjkkgR+2w/+P5T773kly4Y90y6ULTj7j804AC2m5S7E6IccCKWDBjXt0Ip3llPjWTOjtKnmaH0RxPM9OxSbAnMIXfcn7PvnySn2oPEHEKA10USBg9cNHvkB4o+J/OtMsF55q9hsrzdEQp1BOinUNfGxwXhXNPtFrUeOZvOuSx8JC5+a5XAv0ietnCFx9tLaLQ4avUziG2tpNCTpfgF09L4WQMW5O+wolRoPbtYKt6d6mJKYrMTU4tOIgrqH/J+ekZKenxG+mXNTbUmoCQ5/sdSjIUWvO9Ls3aAhwAibc0X3ATLfJClWi7SHw==
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=b9sHEG7gC2Akdv5ctBDAO5rlWenbvjbn48R3yIB4cWQ=;
 b=okj1kOE7vWhSqJt5Vx37rgw6Dt92nLDox4r8hqiN4HHbNZogBBMLirjhNrygCIVcAsZTS9axIMSPUNLpOFzLHJV5xtUvBNCcHje6fu05FCmomjGnl4tunPExL2jmhp3TJ5kY9jApSWGV2GGIZ+eAY3deoznmzkRU0jr69o7ISi0=
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=rPxL290rB2SPH1g5/a+7sSERRAU1fY6EpHQePVVjkbqLAhUWbP8LOyYIeP/CItjgW80wO9qCaWgMzPDnWSiDhyMGvHXu8HWipsqF2UW5Z0z+Ls2+6o/bUVYA9VSUyxXlSsarlaOwmydgmk+B+NRqaeDW+2cAELlV8CYhUU2lw9G1RCMCilc+UL1XlO7uvCXY0+TyMm+Kn/CcqSn0Z1vB9NPqe8Azv97jpZV1HkbeqXfXAME7Z3S5ePSsuYYaM4/gEgooe6OdPLbpPEh/KQQ9UNPzhzY2jVqngIfUhEbOfQ9SefYV1r4r0Esl7MOev9Y53140Ag9LtEzfuNZDQtNEaw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=b9sHEG7gC2Akdv5ctBDAO5rlWenbvjbn48R3yIB4cWQ=;
 b=XaXewxUgUpqoKGuIIIyEtJREZRhTUYj0CL29KpyM3uvkqhzxjZr01AzmH0Bfe6yzj4SkjL5SKAkPWcjY0nybBo0nRE1/ZnpyQdB/5PXJ2ziF70lXYoFhlYjPJz/YD+/9bFqV2V+muWUDloZBu3D0UTf5Weu8v0N4yuT1/DAMau4z/fjzhlvNZIiAn4zOfkB8S/lZdMLyz+46XxvBjpn1+EIPDN4DjFzXANFCyxuuoazNWqzZOkdbyx37Ah4vaNVmreaIFach2ZxvCUZNqmahp/T1+canE9os0B5x67VC5N3k6aX4Si59yvWHNxistyVeJZsN7VRoSgJRfIIaLQw6nA==
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=b9sHEG7gC2Akdv5ctBDAO5rlWenbvjbn48R3yIB4cWQ=;
 b=okj1kOE7vWhSqJt5Vx37rgw6Dt92nLDox4r8hqiN4HHbNZogBBMLirjhNrygCIVcAsZTS9axIMSPUNLpOFzLHJV5xtUvBNCcHje6fu05FCmomjGnl4tunPExL2jmhp3TJ5kY9jApSWGV2GGIZ+eAY3deoznmzkRU0jr69o7ISi0=
From: Hari Limaye <Hari.Limaye@arm.com>
To: "Orzel, Michal" <michal.orzel@amd.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Luca
 Fancellu <Luca.Fancellu@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 2/5] arm/mpu: Implement setup_mm for MPU systems
Thread-Topic: [PATCH 2/5] arm/mpu: Implement setup_mm for MPU systems
Thread-Index: AQHcEooIjidLhuh6q0+7EX7Ktw8WQ7R2xAoA
Date: Wed, 27 Aug 2025 17:04:01 +0000
Message-ID: <3D9F906F-83FE-47A8-A1FC-A871C1DE069F@arm.com>
References: <cover.1753864612.git.hari.limaye@arm.com>
 <d4dc1be6f581c0c090c0cecb6fd49049a46fefee.1753864612.git.hari.limaye@arm.com>
 <68a74142-667b-4b8e-8340-fd41ec15046c@amd.com>
In-Reply-To: <68a74142-667b-4b8e-8340-fd41ec15046c@amd.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	AS2PR08MB8745:EE_|DU0PR08MB8812:EE_|DB3PEPF0000885A:EE_|GV1PR08MB8330:EE_
X-MS-Office365-Filtering-Correlation-Id: 1b5bcd8d-4b02-4b8e-5ba7-08dde58bce0e
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|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?us-ascii?Q?vzgXaEuse/gUWgj/aTJ1MUxkQPviQEZj1A4Bp7tHJUX4iDOiAeuUi6+xQn35?=
 =?us-ascii?Q?TS+B1yofQrwkNvbiBrBngZaasG3fjTQc7w1BFkVgWKiOyJWKODPZvIVT6qKo?=
 =?us-ascii?Q?+q+8JqR8vkJ7gJlmIcn1I2ij4W6UxMX/PvqlSGg2opREnWK5mZDxFl4RNhAU?=
 =?us-ascii?Q?R25HLMPRjU+Kav/B4Jjt1g+TgvBbSs7eDrQQ57PKeZT1Y4l7DiQWNBuY7noV?=
 =?us-ascii?Q?74R2jHyYeHDfv5s1FMVOvx1I3q7ebmGh4SEM+xyIC/yPvNHhiIeJr2INiKpO?=
 =?us-ascii?Q?TFH44enUwGJ7n9ttBOV8s3LEZnEBiv6EcqpPlasE5DqhV8mGu5VGUPhxQa55?=
 =?us-ascii?Q?y8j+vRp8ItbRfjIrtnyBeu5Z/ipxJ1r1KDCXPI/P4qRjpQa3JjKoHbow4kIq?=
 =?us-ascii?Q?J2sIEUBLkwWE2salisQcqKkyxvDO+AUPdbHYf76P+Day7I8Yfp0X4m4fEF1j?=
 =?us-ascii?Q?vULELpBGgAGF/saf0PiXIVCdk41OL0Qgd4ktOUNTSQvAspLffXzp4r89H0GG?=
 =?us-ascii?Q?R9tRMIGtPGozQqRGn9JwK+TbrBnER58SriirQg51py48LSXHeZ5KF1v8pUGb?=
 =?us-ascii?Q?Nl2eoY4afBZMIBgaXj5mImRNW/w5eYWFE3gcgAGnxD0M73xASLvoGLIYpdBl?=
 =?us-ascii?Q?asB6qtnYZ6sj6DhqVoykmkufZ5WcMJPbit57dXu+77F5h8lvCv7GWmdonrkc?=
 =?us-ascii?Q?FExkv2nvHHZODzNnOhIp0Ucsv1oodx3HAmh/zQ7C5HDj5xs4Pcz/LxPTSpdw?=
 =?us-ascii?Q?oDzfkUI23HCHB10Bg3ZqhC3er3uyzAImwPDmg/2HoRGCHMAwKY1WE/kkhaZd?=
 =?us-ascii?Q?ZDIIHmvkEvllN2YDc3e0dvLUlE3sEJ2f8VTM2asbELOdE3jSktDMOJ9rg5sJ?=
 =?us-ascii?Q?csQprBUPs6AZ6rrnVdWGCk9r5gsyHzyqSlFHe8eTNVgGRYVKPRk5Q4S0Xvvu?=
 =?us-ascii?Q?gE5FPxFrwadjtgNUblXS6K8jdHpVsQi0yg3D4Bu3g7SjWDv8yYTl2SMFuX48?=
 =?us-ascii?Q?tjpu6Rs4E4GD0DkOWTriM9EF133aslq9KkNCtxuDgiCqOC+GQv249oryJ3co?=
 =?us-ascii?Q?EJCZp5QnskTmrtdUhYintU9JQ/+mK+Mm9Hin37jK32JSvg7IgPyw/k4wekoZ?=
 =?us-ascii?Q?M+sWpkeKiQj2bwrHvljje+MjlFqCML/ME0rE8PPqZgpLU08DIU85fUuqbNQp?=
 =?us-ascii?Q?YcDFpRglizJDG2fhGZP4oKiMmDQqv08/lIiNh9m08mKOLsqMVX6Wxc+MO0IO?=
 =?us-ascii?Q?ivfjWTa5Z6sIx2wD4ZFlzC2YHAihdnXayfzxim/DmiYP1UiZt77Ur89Uzl4D?=
 =?us-ascii?Q?BnbMgV9EsD1PKgK2nB4RLvnOkGf0zxEdTAKGINpt6VyYsVEgMrwm9RDles0+?=
 =?us-ascii?Q?ooMtuuGDuur0fy9Ha39xiUtMOYS2lJVI7rJ9lZ2FA1rT1D34FBDA9ILGDZPc?=
 =?us-ascii?Q?o59SFRhPg5gGSJxUDpnExPgwYdEi7GCMHHEVzlevZGfl4MGi1jVmbw=3D=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR08MB8745.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <A083E8B3BFE15642A06B17AD7C4576ED@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB8812
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB3PEPF0000885A.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	fdbaef7c-2caa-4878-6395-08dde58bb849
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|35042699022|36860700013|14060799003|376014|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?xtSlrXVW8cEymydEDx2fNmnocVFBJYeZdkMLt/xW9slW+4Sml8LTF9KNwBeO?=
 =?us-ascii?Q?O5vBN4jXZB7GTCnZ7auYC5VlcBxdEwz2yBIJqb87mCYVuB7nUuqq8LMdxonT?=
 =?us-ascii?Q?sM61WECYhZP4epeRkqwn2fklm45IwyK6OUq1VTroLrV/Bmyul4c3KV3/lXEt?=
 =?us-ascii?Q?xj1HdKkBzocVU9q7LinIf+vfmjxrfyRo/NEVinGT+Hn8hnYEQ+ddf84jFynA?=
 =?us-ascii?Q?zBkKQf7E5rdg++sQxKdK8qoGAAmlJc/VUWvTgHFt6TwQ/OSLrtJX+6rOU8H2?=
 =?us-ascii?Q?riiLAxIHn0Y39W9eSxIToo6nplzit+z35+KZCxveRc1eWt++ndxQu9JhOJza?=
 =?us-ascii?Q?/I1Cuk7RraaDGS3aDbWvDdFyKQnTmkB7cV7ZRe9mSM8h1UW1SPGbdpGLNzNs?=
 =?us-ascii?Q?tgrDaT5TMPBDnWNc3tinwIEjjA4NktZIMsg4dDr2oVkTXFrahvhtJGY8WKRJ?=
 =?us-ascii?Q?vKvi9XQjPjkh4RNeEifGGXlcFo4s6ovpHr5ZG0KAlbJtVNZ3RwK0NjeuwUOz?=
 =?us-ascii?Q?ztVNO8gZamj6/DQId0qv1mzNKz61SZLBaivC0/xYWlAZuA+27yAkLikITVIo?=
 =?us-ascii?Q?756/ycfhG+zFD0QANICDSkTIQfJlfQY9ypu0R8hOCon0djLZ0ZwCkb97FbiA?=
 =?us-ascii?Q?orINA8bHfmTebyP5/M5ziNaUAHujIRSriZfN6r4AzMXYYtAZXfAUJ1JzbY06?=
 =?us-ascii?Q?pGHJlk8UAILBf0u0vUF2c48R6Iv5zgM6RzLwAUqKwDt00gFmD+BTP1ei2DpB?=
 =?us-ascii?Q?0bKpLStbxXJ/CDcfAtrrmi7zK1HBGaIKIW4aW7qH4EN+6HpxwCSHkr9j7xKS?=
 =?us-ascii?Q?OudyuyPxqs0DvrGhlWwjH+iku2TRAZw+BV25uV/nut8UY9ZpMZgA49q9s98W?=
 =?us-ascii?Q?g66gz6/PsgaC0TExA2Fvycq1p4SV72pcp/32+1FSOjvh5RrNjJoWTcN21aYP?=
 =?us-ascii?Q?ndhbMypcYaMePeAgXmvq+ce+XqQ4Lk0HZJokKqv8HizKL84ytC9XOKgt5HB2?=
 =?us-ascii?Q?fzZ+4df/NsUbDrwDWI7J9EPpbRt3eHzhrYiO0drNj5BCJwChd1MY5REbmefj?=
 =?us-ascii?Q?DYlL2KjlAB8EG+3PhkZNIHTCv+S1hJhrZ4jPS34uuMslNOZ7IjNG85f0ri2n?=
 =?us-ascii?Q?fVj1bcws9tI8VqBFBVxqbAYHJ89DoVJeblt6R6GynSsGjZMGtsZ5ECnfS+Yz?=
 =?us-ascii?Q?8V/7a3dN21F9nKS450rqT9laDuiWXH+JhugaYNwgbJUEwkn5lNFINFAmn1jh?=
 =?us-ascii?Q?WPFXPxpfR8vMcxBdzSk5T3X4JJcJ5VIl57tsFwamf6QhmwgnTgJisO3yQXCR?=
 =?us-ascii?Q?OoXwrHrq4NSEMPu/7Xl2qTOwke1Md6t9x6GgrtHTXS1l0nbsdp4LcwzWQj0I?=
 =?us-ascii?Q?kSxYQqsFz8hqxbiaiuWf5ZSQNukzT71P5LuARrsQUrYyAQG3kpsXGDo/mgAp?=
 =?us-ascii?Q?9bAp8e72s3c/a11klj6NMPLEz2bitbAxdAaVCOSi/SRm1qLTPinl0SOpZFrI?=
 =?us-ascii?Q?cPNioLoEuuEHy0le1DuiRi0qZk+BDJJO7/0i?=
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)(35042699022)(36860700013)(14060799003)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Aug 2025 17:04:37.5689
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 1b5bcd8d-4b02-4b8e-5ba7-08dde58bce0e
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:
	DB3PEPF0000885A.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB8330

Hi Michal,

> And actually, this could be calculated
> in init_pdx() next to max_page to avoid requiring each arch (arm32, arm64=
, mpu)
> to set it exactly the same.

I have not implemented this in this series, as it seems like an unrelated c=
hange that should go separately. However if you prefer I can re-spin with t=
his change also?

Cheers,
Hari =


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 17:23:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 17:23:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096614.1451257 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urJra-0004rt-15; Wed, 27 Aug 2025 17:23:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096614.1451257; Wed, 27 Aug 2025 17:23: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 1urJrZ-0004rm-Uh; Wed, 27 Aug 2025 17:23:09 +0000
Received: by outflank-mailman (input) for mailman id 1096614;
 Wed, 27 Aug 2025 17:23:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9AuO=3H=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1urJrY-0004rQ-FV
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 17:23:08 +0000
Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com
 [2a00:1450:4864:20::42d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7e54f0c8-836a-11f0-ae26-e363de0e7a9e;
 Wed, 27 Aug 2025 19:23:06 +0200 (CEST)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-3c6df24f128so37411f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 27 Aug 2025 10:23:05 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3cc56bde919sm4670503f8f.59.2025.08.27.10.23.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Aug 2025 10:23: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>
X-Inumbo-ID: 7e54f0c8-836a-11f0-ae26-e363de0e7a9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756315385; x=1756920185; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=rKUT6Bsr7rbUW+0PY7cmpxUarwaEtBGurh04w59gqvI=;
        b=Tq3ZqB18PwB7Yp8jm2Ofgf1Dux95W/yD65PlgdtgE1HsPPbBBxost0i7OlMtvIfDcd
         I0uL6bBX03tGIzoqh/v6Ps93s1eEcDB7AS1keAJMpiqHb4NJMxNDnLNQiNo0KYWeN8hM
         4XHzDz2X55r/6wIoi0xEWkwnlqFtyGMzGAYR4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756315385; x=1756920185;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rKUT6Bsr7rbUW+0PY7cmpxUarwaEtBGurh04w59gqvI=;
        b=NDXjj1r+ZXWXr32vlg2E9/6/HJiwVoo9pzqtfu34oLIs/ImxEmXk5qiWTMsfYLHtXo
         1H3OwV63rHH9kUgfGTJeENVpTE4x58OtVxaUREwDyVulSXK5josHAHnBA5a1lRjjnYfD
         ZQoGLutp9R3FAHjCwZf6EAyHnvaaVABk/J4ftoSEWjtlV4xfGvQ3UO/DxjEomAb/4NSV
         8M1Olh6blGAZPewcgXyhCBVw8un7cO3ITsUWqNYtlG5SRkhHCs5klduX4GNt+CGQ5O7j
         kHqKbfh94SEPvbLKL4kg60fZVPcPY3s1ipNJQvuDppafa6D3EyVjxy5d2zS4rEmLtWqp
         50Bg==
X-Forwarded-Encrypted: i=1; AJvYcCUeLv/JspyL5uOm1laG+BW+1DrxU11dGI79rYHxGHiW754R5M/pvtYPHGydMS7IiY8qXxCBDl4TWdg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwPFLmnTuL3Y+m/O6uhqaqxGHPJY/n79dQs9OWL+1CwC2ntBeCE
	1MT5FLjJhM4miJvRwTE7L/NgvgdC5EIEAzdEujXZE26tOu4qpjQ+PwUJvjfXQOaeNDk=
X-Gm-Gg: ASbGncvu9acNMSNbT0a6Ru6D22GPDB3oSMnfXTLFlsBfTI/BPjG9TgzTYOyciZSYEmb
	kqRtabyDzTHf8kgJXavbWMYC5onK1+JFFcet7jr6zBbQOzLnEWaGou8+gVWrdf0t685j9ASJioQ
	z9RbFmcVllVgk64DDC3yvUn+km847OahWGbe2Veq2C1DP6+uTSLy2GXQmq4mItnlZNcDfagfhnW
	ohbSWz4pGqdWKY7EZ5EQ6/9Puhp4Qey/ZKqvpH6YdSqgw0oheZBxXbP6LLt8Y7xO0Zx0DDhEfno
	pSmR8n1j6UMJ+p3kShT3g0OIMB1hljD2goX38Z+p0PJqqqObm4cFkdVKZAqY6GnmHFXG+VFOeA1
	gfYugRk45uJnfXForhAkG7pC+3BugAFj7TDYH1jhL7x4iiWHcr1DEuyG5hyL4gmi0Fs5l
X-Google-Smtp-Source: AGHT+IHhernzVhe6h3RPoFwXft05IN1XxSemdib5lx6cZnMB5PULjziY8t4jCQ6nMXtQVt9QnqwnhQ==
X-Received: by 2002:a05:6000:4382:b0:3c8:6200:338d with SMTP id ffacd0b85a97d-3c8620035d8mr10769535f8f.60.1756315385188;
        Wed, 27 Aug 2025 10:23:05 -0700 (PDT)
Message-ID: <3cf8eef1-04e6-44b9-ad41-144de9cbf1d7@citrix.com>
Date: Wed, 27 Aug 2025 18:23:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] Optimise restore memory allocation
To: Frediano Ziglio <frediano.ziglio@cloud.com>,
 xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <20250827123309.39699-1-frediano.ziglio@cloud.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: <20250827123309.39699-1-frediano.ziglio@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Subject wants to be at least tools/libxc, and probably "Use superpages
where possible on migrate/resume"


On 27/08/2025 1:33 pm, Frediano Ziglio wrote:
> Try to allocate larger order pages.
> With some test memory program stressing TLB (many small random
> memory accesses) you can get 15% performance improves.
> On the first memory iteration the sender is currently sending
> memory in 4mb aligned chunks which allows the receiver to
> allocate most pages as 2mb superpages instead of single 4kb pages.

It's critical to say somewhere that this is applicable to HVM guests.

You've eluded to it, but it's important to state clearly that, for HVM
guests, PAGE_DATA records contain metadata about GFNs in aligned 4M
blocks.Â  This is why we don't even need to buffer a second record.

It's also worth stating that 1G superpages are left for later.


CC-ing Oleksii as release manager.Â  This is a fix for a (mis)feature
which has been known for a decade (since Xen 4.6), and for which two
series have been posted but not managed to get in.Â  Unlike those series,
this is a very surgical fix that gets the majority of the perf win back,
without the complexity of trying to guess at 1G pages.

Therefore I'd like to request that it be considered for 4.21 at this
juncture.

>
> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
> ---
>  tools/libs/guest/xg_sr_restore.c | 39 ++++++++++++++++++++++++++++----
>  1 file changed, 35 insertions(+), 4 deletions(-)
>
> diff --git a/tools/libs/guest/xg_sr_restore.c b/tools/libs/guest/xg_sr_restore.c
> index 06231ca826..8dcb1b19c5 100644
> --- a/tools/libs/guest/xg_sr_restore.c
> +++ b/tools/libs/guest/xg_sr_restore.c
> @@ -129,6 +129,8 @@ static int pfn_set_populated(struct xc_sr_context *ctx, xen_pfn_t pfn)
>      return 0;
>  }
>  
> +#define IS_POWER_OF_2(n) (((n) & ((n) - 1)) == 0)
> +
>  /*
>   * Given a set of pfns, obtain memory from Xen to fill the physmap for the
>   * unpopulated subset.  If types is NULL, no page type checking is performed
> @@ -141,6 +143,7 @@ int populate_pfns(struct xc_sr_context *ctx, unsigned int count,
>      xen_pfn_t *mfns = malloc(count * sizeof(*mfns)),
>          *pfns = malloc(count * sizeof(*pfns));
>      unsigned int i, nr_pfns = 0;
> +    bool contiguous = true;
>      int rc = -1;
>  
>      if ( !mfns || !pfns )
> @@ -159,18 +162,46 @@ int populate_pfns(struct xc_sr_context *ctx, unsigned int count,
>              if ( rc )
>                  goto err;
>              pfns[nr_pfns] = mfns[nr_pfns] = original_pfns[i];
> +            if ( pfns[nr_pfns] != pfns[0] + nr_pfns )
> +                contiguous = false;
>              ++nr_pfns;
>          }
>      }
>  
>      if ( nr_pfns )
>      {
> -        rc = xc_domain_populate_physmap_exact(
> -            xch, ctx->domid, nr_pfns, 0, 0, mfns);
> +        /* try optimizing using larger order */
> +        rc = -1;
> +        /*
> +         * The "nr_pfns <= (1 << 18)" check is mainly for paranoia, it should
> +         * never happen, the sender would have to send a really large packet.
> +         */
> +        if ( contiguous && nr_pfns <= (1 << 18) &&

This is an arbitrary limit, and to contradict the prior feedback given
in private, the domain's MAX_ORDER isn't relevant here.Â  It's the
toolstack's choice how to lay out the guest in memory.

> +             IS_POWER_OF_2(nr_pfns) && (pfns[0] & (nr_pfns - 1)) == 0 )
> +        {
> +            const unsigned int extent_order = __builtin_ffs(nr_pfns) - 1;

This (non-)loop isn't great.Â  You'll e.g. use 4k pages for the second 2M
page of an HVM guest simply because the VGA hole exists in the first.

I think you probably want something like:

int populate_physmap_4k(ctx, nr, mfns);
int populate_physmap_2M(ctx, nr, mfns);

as simple wrappers around the raw hypercalls including transforming back
the mfns[] array, and:

int populate_phymap(...);

with logic of the form:

Â Â Â  while ( nr )
Â Â Â  {
Â Â Â  Â Â Â  if ( nr < 512 ) /* Can't be a superpage */
Â Â Â  Â Â Â  {
Â Â Â  Â Â Â  Â Â Â  populate_physmap_4k(ctx, i, mfns);
Â Â Â  Â Â Â  Â Â Â  mfns += i;
Â Â Â  Â Â Â  Â Â Â  nr -= i;
Â Â Â  Â Â Â  Â Â Â  continue;
Â Â Â  Â Â Â  }

Â Â Â  Â Â Â  if ( !ALIGNED_2M(mfn) ) /* Populate up until a point that could be a superpage */
Â Â Â  Â Â Â  {
Â Â Â  Â Â Â  Â Â Â  while ( !ALIGNED_2M(mfn + i) )
Â Â Â  Â Â Â  Â Â Â  Â Â Â  i++;
Â Â Â  Â Â Â  Â Â Â  populate_physmap_4k(ctx, i, mfns);
Â Â Â  Â Â Â  Â Â Â  mfns += i;
Â Â Â  Â Â Â  Â Â Â  nr -= i;
Â Â Â  Â Â Â  }

Â Â Â  Â Â Â  if ( nr >= 512 )
Â Â Â  Â Â Â  {
Â Â Â  Â Â Â  Â Â Â  for ( i = 1; i < 512; ++i )
Â Â Â  Â Â Â  Â Â Â  Â Â Â  if ( mfns[i] != mfns[0] + i )
Â Â Â  Â Â Â  Â Â Â  Â Â Â  Â Â Â  break;
Â Â Â  Â Â Â  Â Â Â  if ( i == 512 )
Â Â Â  Â Â Â  Â Â Â  Â Â Â  populate_physmap_2M(ctx, i, mfns);
            else
                populate_physmap_4k(...);

Â Â Â  Â Â Â  Â Â Â  mfns += i;
Â Â Â  Â Â Â  Â Â Â  nr -= i;
Â Â Â  Â Â Â  }
Â Â Â  }



Obviously with error handling, and whatever boundary conditions I've got
wrong.

2M is the only size that matters (ignoring 1G which we've excluded for
now), and this form will reconstruct more superpages for the guest than
trying to do 4M allocations will.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 17:47:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 17:47:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096629.1451267 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urKF9-0007fs-T3; Wed, 27 Aug 2025 17:47:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096629.1451267; Wed, 27 Aug 2025 17:47: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 1urKF9-0007fl-Pb; Wed, 27 Aug 2025 17:47:31 +0000
Received: by outflank-mailman (input) for mailman id 1096629;
 Wed, 27 Aug 2025 17:47:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9AuO=3H=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1urKF8-0007ff-Lj
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 17:47:30 +0000
Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com
 [2a00:1450:4864:20::32d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e6caca29-836d-11f0-aeb2-fb57b961d000;
 Wed, 27 Aug 2025 19:47:29 +0200 (CEST)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-45b4a25ccceso288915e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 27 Aug 2025 10:47:29 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b73cf86f4sm19403145e9.6.2025.08.27.10.47.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Aug 2025 10:47: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>
X-Inumbo-ID: e6caca29-836d-11f0-aeb2-fb57b961d000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756316849; x=1756921649; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=CJNT2vhJAFsF4KPZ7P2wzJVCIcO8VQrPLsgrkBfwmS8=;
        b=tHuh5KQeydEP4P9IlIhi2c/BypkYK2RP7bga0I6FX4wkh7Yx/lkhvHucr4Jfza/Ut+
         NIt5weqcwQ/c6xSII2ysweP0U95seBxSoMNoIAdpgxwfhxGL7/U+2HN9BscCA58NZEWf
         SO9zyWKGR7/wBqlwcxZhJab91ygtfmm8/V948=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756316849; x=1756921649;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CJNT2vhJAFsF4KPZ7P2wzJVCIcO8VQrPLsgrkBfwmS8=;
        b=cj6ysTaKfvcfQ17qyp5SZH7imeIddpnUZN7YvGDzn2FxKSsvw5Pf/mp+b1HHFV3Tko
         RS3CfuRcgHL33buGpgC8tiPlf9mHCoaAHxeldANntx3t9M0R2+uUw8+eHmRFQS0oypqn
         HdahfWUutml+Mft0Uy+sIiJgDk7W7joVRR+eib3G8GOVtiU9TmtfoTBawfF9/vRxLhP8
         ADuJ+7nw5gpi5FMc6583dAcIkEhj2+WtArkTIdip484xxEjRGur64UEaWZ652u11vhbo
         ohzLehUMI4bxpR5h0PPKHmyd+TiFsIa59WCjqsIeh1a5k3ny/Cw306tA2M/zd9OOxilh
         1WAQ==
X-Forwarded-Encrypted: i=1; AJvYcCWvVwxTSMgai+keMqxSVWjIqRPMDUeg4YnswM+hVJY7u/ZorP1yxYal8dK8y8OAYXty+zXcf2BBhUc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx/u3ddQqchXI8X3cvuFcpL8EXp9eIMXRpMSuJbREmxRb8KgNLP
	zqk5fD4uTkbZXhZIeS5mQYniL3nWY5Cfoyi0hA1jFnoW8SO9O8ztzFp1BVGsHLeYts4=
X-Gm-Gg: ASbGncu2uzVGPC7fYtr9QIsAA4bJ0fTUusFqD2waVbUbnqrCh1ZbTekF8mdC+rBGKwT
	LwRLz4Mv7T4O5tcmANE2jrz7VX8/cORZDHLh9OdIIAf5flNM/Og7MZKtZBzXQB5LObP90L2Rpr+
	25shkteWRB9jXnqzByXV9pJ1XV1Jj6hMfNzKCZpvbmJt56nFOkYRUFFFNjcfabGuML1189NEPQm
	1vwj7gbdOobnRq4eis+v2w5mHO2vVE18lS8LRWi7TbgGV5yOkjwwsqrqfjLwosgyGYDo6qocRjw
	igO//YGPIrlK81UrdWhLG+ZEhzc1hrTrFKzG3JQtvJ67HM3y7hoOl0Fty9bAZBGSqoGCIj0zUlo
	IfMrXt3yR4KtmjEejhsPpabuucmX+BeEgZ5YX/ziiIl7HsMXljrrBCGo+4UYMSUr2gf4A
X-Google-Smtp-Source: AGHT+IE437CduObjRgU4NO167hX6TfD+KN2bcx7DpCyvEhvVIVeJaXyLM4NZN8E6qytkYMBEkdBIuQ==
X-Received: by 2002:a05:600c:1392:b0:453:5a04:b60e with SMTP id 5b1f17b1804b1-45b517d4e23mr164248025e9.26.1756316848975;
        Wed, 27 Aug 2025 10:47:28 -0700 (PDT)
Message-ID: <6e9b7b96-a506-40ed-95b6-6ad00ba9a27a@citrix.com>
Date: Wed, 27 Aug 2025 18:47:27 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] hvmloader: Update to SMBIOS 2.6
To: Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>
References: <b569a298a6270ae04eaf433f7de9ce1f3e248e5f.1755870287.git.teddy.astie@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: <b569a298a6270ae04eaf433f7de9ce1f3e248e5f.1755870287.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 22/08/2025 2:47 pm, Teddy Astie wrote:
> Currently, hvmloader uses SMBIOS 2.4, however, when using OVMF, the
> SMBIOS is patched to 2.8, which has clarified the UUID format (as GUID).
>
> In Linux, if the SMBIOS version is >= 2.6, the GUID format is used, else
> (undefined as per SMBIOS spec), big endian is used (used by Xen). Therefore,
> you have a endian mismatch causing the UUIDs to mismatch in the guest.
>
> $ cat /sys/hypervisor/uuid
> e865e63f-3d30-4f0b-83e0-8fdfc1e30eb7
> $ cat /sys/devices/virtual/dmi/id/product_uuid
> 3fe665e8-303d-0b4f-83e0-8fdfc1e30eb7
> $ cat /sys/devices/virtual/dmi/id/product_serial
> e865e63f-3d30-4f0b-83e0-8fdfc1e30eb7
>
> This patch updates the SMBIOS version from 2.4 to 2.6 and fixup the UUID
> written in the table; which effectively fix this endianness mismatch with
> OVMF; while the UUID displayed by Linux is still the same for SeaBIOS.
>
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
> ---
> This effectively changes the UUID seen with UEFI guests as it was
> actually inconsistent with SeaBIOS and SMBIOS expectations.
> ---

I agree this is a real bug and needs fixing.Â  However, ...


>  tools/firmware/hvmloader/smbios.c | 20 ++++++++++++++++++--
>  1 file changed, 18 insertions(+), 2 deletions(-)
>
> diff --git a/tools/firmware/hvmloader/smbios.c b/tools/firmware/hvmloader/smbios.c
> index 6bcdcc233a..f4822ae6f8 100644
> --- a/tools/firmware/hvmloader/smbios.c
> +++ b/tools/firmware/hvmloader/smbios.c
> @@ -352,7 +352,7 @@ smbios_entry_point_init(void *start,
>      memcpy(ep->anchor_string, "_SM_", 4);
>      ep->length = 0x1f;
>      ep->smbios_major_version = 2;
> -    ep->smbios_minor_version = 4;
> +    ep->smbios_minor_version = 6;
>      ep->max_structure_size = max_structure_size;
>      ep->entry_point_revision = 0;
>      memcpy(ep->intermediate_anchor_string, "_DMI_", 5);
> @@ -462,7 +462,23 @@ smbios_type_1_init(void *start, const char *xen_version,
>      p->version_str = 3;
>      p->serial_number_str = 4;
>  
> -    memcpy(p->uuid, uuid, 16);
> +    /*
> +     * Xen uses OSF DCE UUIDs which is fully big endian, however,
> +     * GUIDs (which requirement is clarified by SMBIOS >= 2.6) has the
> +     * first 3 components appearing as being little endian and the rest
> +     * as still being big endian.

... this is not an accurate statement.

Xen specifically tries to treat a xen_domain_handle_t as an opaque blob.

The only two areas I can see ascribing any structure are the 'q'
debugkey (not exactly a strong ABI statement), and the arinc635
scheduler whose use is buggy (uuids are not unique in Xen; it's the
domid which is).

It is an error that a format isn't stated, but the format comes from the
toolstack.Â  We'd better hope that all toolstacks use OSF DCE UUIDs, or
this is going to badly wrong.

And on that note, the toolstacks are not the same.Â  Xapi for example
uses reads 16 bytes out of /dev/urandom.

Whatever we end up doing, the fix must include a change to
xen/include/public/version.h stating the format of the UUID.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 17:51:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 17:51:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096640.1451277 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urKIa-0000p1-9w; Wed, 27 Aug 2025 17:51:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096640.1451277; Wed, 27 Aug 2025 17:51: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 1urKIa-0000ou-7J; Wed, 27 Aug 2025 17:51:04 +0000
Received: by outflank-mailman (input) for mailman id 1096640;
 Wed, 27 Aug 2025 17:51:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=n4tM=3H=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1urKIY-0000om-L4
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 17:51:02 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on2062e.outbound.protection.outlook.com
 [2a01:111:f403:2418::62e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 63c6e8d5-836e-11f0-ae26-e363de0e7a9e;
 Wed, 27 Aug 2025 19:51:00 +0200 (CEST)
Received: from MN2PR01CA0052.prod.exchangelabs.com (2603:10b6:208:23f::21) by
 LV2PR12MB5750.namprd12.prod.outlook.com (2603:10b6:408:17e::6) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9052.19; Wed, 27 Aug 2025 17:50:56 +0000
Received: from BL6PEPF00020E63.namprd04.prod.outlook.com
 (2603:10b6:208:23f:cafe::c7) by MN2PR01CA0052.outlook.office365.com
 (2603:10b6:208:23f::21) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.21 via Frontend Transport; Wed,
 27 Aug 2025 17:51:23 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BL6PEPF00020E63.mail.protection.outlook.com (10.167.249.24) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Wed, 27 Aug 2025 17:50:54 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 27 Aug
 2025 12:50:53 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 27 Aug
 2025 12:50:53 -0500
Received: from [172.31.63.243] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 27 Aug 2025 12:50: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>
X-Inumbo-ID: 63c6e8d5-836e-11f0-ae26-e363de0e7a9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=SJyu1M/TZ95mwRjFJlwnz/tGDir5tByXWtqge7hAMpIzFjgxZfbdm+9it0eDuJO36MkF+pFPanIeAS2tnhNxRh57+Y338CA9nA1bo0lQssTBDzsoIC3D518GJlTG9nt4i3mX9dQlCAkfF5l5Zq6qXk3IGh2Y18waoCzn9SDrlQt6MsN4+j2QsGXPSkP7WUP2BXTieZuO51Z09UHQ/rp3kpM5BEblaTTlKyDrqgn9q3n0hgoZZHisyl7BqGXyRENlKXBOy/nK5QFTRAdvgazMcyZpCokhnvdXeiqnSL9jricA3Ge0q9f/EA/xtJ8ZXh5Xr4xx7NpReQL+5rGZNAKzKQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=stB7/Muskj3g62ltWLB8R0YUq3th1wmrseeiuYbxT2E=;
 b=sE54pUpmw0i64ia2nfkEcnio7q4aXY9T8zZrVYa4QOCUOVCCh69KF3Db42ewVvbihsetRjfjHPrB71CMLrj4oL4oJad63pIrQaegTFBrM48MUYWozhhCY+EollBg4qQE0MHNaGWgJNS4RBHb6a1CeQszKGZSrA3o4Yk2m1CQj7Os8jhCN4Py4gC/TLByeSNjil5knEix0EPjJNY+dIcCoucbQ4sCbE1Jy3d8T7Jwo0GFJPBNdY9LSGezEW3mLeWfKGbJ8+6N6sSQtnb5kkULxM31b2DaqHTjSqUndGD69rNClWd+leZ3WuaaKQ58V6ECWdpcF+Ziiiiaze5HQ2CHsw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=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=stB7/Muskj3g62ltWLB8R0YUq3th1wmrseeiuYbxT2E=;
 b=Yfz0gCGMx5ZmBoM6sBgn0L6itJ7mb58AA8mi9QVYK0Biac8fWmD2IH9sXUPjr4wBx0TWYi/EitcG/JDphNAa3i/xvBhb1zc4xrD/Xe6byoO/RidNoX/szQa0TFcMF7XSMg5rUMhutsja3f9ywfrvwDUCmBmEag6Vgn1H55kYJ6M=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <05c49cee-d783-40e3-a4ce-da724c308a21@amd.com>
Date: Wed, 27 Aug 2025 13:51:25 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 07/11] libxl: libxl__object_to_json() to json-c
To: Anthony PERARD <anthony@xenproject.org>, <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross
	<jgross@suse.com>
References: <20250808145602.41716-1-anthony@xenproject.org>
 <20250808145602.41716-8-anthony@xenproject.org>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20250808145602.41716-8-anthony@xenproject.org>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF00020E63:EE_|LV2PR12MB5750:EE_
X-MS-Office365-Filtering-Correlation-Id: 94530674-1b51-44c9-adfe-08dde592450e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?cGtqdUNxMjFZM2pwMkVEUjUya0tCQ0hneEhXNG5ONExhSG9ldyt4SWljd0pR?=
 =?utf-8?B?Ym93VVMyaFh6TVhlaGR0YWpQU1FWOGtra0p0Z2d3MjRCRUFHQmRmTzdHWGVL?=
 =?utf-8?B?Z20wUnBtWkVOSzErbk0zclYrREhjaDRpTWkzMzhDUlpwZHE5Uk9ZSGJjd0JQ?=
 =?utf-8?B?S1ZyUWFRR1FSVm9leFVqdEMrbDlZRllxNTBYbHVRN2QxY25FSFM4ajhOYVdw?=
 =?utf-8?B?MDk0RnVSdTliczFjMythdjVBbGZ5VXFjZWpkUVRuMTJodklLZU41N2J3eUNa?=
 =?utf-8?B?QzNobmlpemVUMFI0Qk9ZRzY2VHhhZCs3a2pScDZUbGo2Nk5hU1Ywdk9rQjAy?=
 =?utf-8?B?eUk3ZE9zOUIwd2I3SXRzWG1pTGtCM1pCRi9VbHdzaWlhOXF3bEtaZXhJdzV1?=
 =?utf-8?B?eUZ5RFA3NDh0M0MrN2xiR1RzU2ZIeWRnZWVsT2Q4Sk9XTjByaG91ZXFuRXRS?=
 =?utf-8?B?cWw1R1hWMmRDRHlNNDQ5ODkwa1N2QjlRNlVweWxOZGdKZEFSWFdkbWVaSVVq?=
 =?utf-8?B?eG9PUlJHTnFQaVBLZTZHVWp4aEtTcitGcHZYbFB4QkRIK1oyU2ViaGJBZ094?=
 =?utf-8?B?eVNsZGs2N1ZjbnZ1aHBHY0tpK3ByTk92ZE0zbEp6aWlHeEhsOFRMYTQ2ZlZT?=
 =?utf-8?B?bHE4M0JDVmFadm5adnllTVlWMVNEM1J5bmU5WC92YXpOc21jR0w4UCtxWk0w?=
 =?utf-8?B?NGxIUGo5bkhzUEpJSTVybTFlZ0UvdHJZeU5xaVVVaFBjc21XZGx5THR2c2JF?=
 =?utf-8?B?cFMrdkhRcXh3YkI2M0FDVzFVWXc2ZGZjMTJ2T0dwdkZ3ZFdDUDlBaXFNUEo5?=
 =?utf-8?B?TkNNK2VJQXNTZlNmc2NwVHE0dEtYamNsMUJDcnZzWDlKL3hibFprK2ttWlRN?=
 =?utf-8?B?VnpUd3pGYUVCd0NSM3ZVYWt6akthM1N2NHd0dHZ6R3pKOXlhVUV3WmZSTHlE?=
 =?utf-8?B?TnRWbUlXUEF2ZmsvaS81eStsOXdrayt2NUZ2aE9EVFAzK0Y0WjlXZTMrQzBs?=
 =?utf-8?B?dTcyYnIzaEJoTFVvdjZYNGJJeTBCQ3hSL21tU1RCUkhVL0VSVHdDczc0Z3Jh?=
 =?utf-8?B?YWFjMWZZZmlCbXIvdG1xS0c4NHFjb2pXRkNuOFM3L1FwR2hHSDJDY0R0emdF?=
 =?utf-8?B?dkhEZHBmaXh3ODh4cDVnQWVzeXVpMEVBN0kxYlVOb05jZDkxZzlibGJTR3U5?=
 =?utf-8?B?OGwvY0Y4cWhZTWpwaUVaUk81TDE3c09wUDhUQU5oVDZCS2VGNEc1SHRuTEJr?=
 =?utf-8?B?UE14Z0c2V2pNbUNpbGpYV3RCY0FzcGpSeG9Ha29yVmR3WFNCYTJlaGhaMk5L?=
 =?utf-8?B?VTNhcnkwcEYzY1Z3OFhaZnRZTTNxejd5alN4VzhaRlR6aVpockYxTjBucEhX?=
 =?utf-8?B?dE5BbXFBS3NiNzdXYzYrVitvM2d0VndSKzNWUENJdWhXY2tYdjc1U0h4ak04?=
 =?utf-8?B?WUZqNFVlNnVZaGUvTHpFR0RNSGJyZUlJYVFCR0JUWHB0V0JkSjZoU3orTllP?=
 =?utf-8?B?NlJMRFZWZ1EvL3dKL0VHaHZHZXZqaVZNSm5xc2x6bmFmdmV2Q0EwYUg4NFBG?=
 =?utf-8?B?UGZWUGZ4YnprRmlnYlRMSE0xZnRHT3UzSWFYNEkxcHVtQjBmYUdhcWlNK0J2?=
 =?utf-8?B?S0FPZTBNUEx1aEhmV3NKUTNLQnB5YkNIT2NLWVRlaXJacmVTdG5Vc0NkeUJq?=
 =?utf-8?B?V0J0REE1WmJOZXplNkJpVS9rQ1ptemErQ3gvSFJnUldnK3preHdrM2ppbVhs?=
 =?utf-8?B?NmcyNkdzYjFMWmVRdnpoZnBlZm5yY3h1UkVtUGpsOUtOOWlQOXhTb1kwTi84?=
 =?utf-8?B?TTV0V0FlUmE1K09PaFZXRDk5bnpQakhmRHBLZHFNcVdRdnR2TXRRTXNFZVd0?=
 =?utf-8?B?bHBrVVFsdlgxeHFTQzNjNHQvY2paNkxOWmUrbnVONG8wcHNDWks1SmozRzJN?=
 =?utf-8?B?aHVJUFBqamJway9MbHBKU0RVV2lYbW5xempWS1BZdGRueVJ1OTVVLzR1TE9v?=
 =?utf-8?B?MXpJcVlreWVLd0g5WWJOR01uaDBvS3J1aXUva2Q4QUtnMEtYcko2VVdnV2dU?=
 =?utf-8?Q?FxrvTv?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Aug 2025 17:50:54.2610
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 94530674-1b51-44c9-adfe-08dde592450e
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF00020E63.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV2PR12MB5750

On 2025-08-08 10:55, Anthony PERARD wrote:
> From: Anthony PERARD <anthony.perard@vates.tech>
> 
> - libxl changes:
> 
> While doing so, we rename all "*_gen_json" function to "*_gen_jso" as
> they have different prototype. All the function pointer are been cast
> to (libxl__gen_json_callback) by "gentypes.py" when generating
> "*_to_json()" functions.
> 
> We also introduce a few more "*_gen_jso" functions for "int" and
> "bool" because we can't use json_object_*() functions from json-c
> directly like it's done with yajl.
> 
> To make the generation of _libxl_types*json.[ch] with both YAJL and
> json-c we add "--libjsonc" to gentypes.py so it can generate
> functions/types for both.
> 
> Also introducing "jsonc_json_gen_fn" in the IDL, to be able to point
> to a different function when using json-c.
> 
> Also, don't export any of the new *_gen_jso() function, at the cost of
> having "_hidden" macro in semi-public headers.
> 
> - xl changes:
> 
> Also, rework the implementation of printf_info() in `xl` to avoid
> using libxl_domain_config_gen_json() which isn't available without
> YAJL. The implementation using "json_object" call
> libxl_domain_config_to_json() which generate a plain string of JSON,
> which we parse to add it to our own json; this avoid a dependency on
> the json library used by libxl.
> 
> Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>

> @@ -358,6 +535,36 @@ int libxl__mac_parse_json(libxl__gc *gc, const libxl__json_object *o,
>       return libxl__parse_mac(libxl__json_object_get_string(o), *p);
>   }
>   
> +#ifdef HAVE_LIBJSONC
> +int libxl_hwcap_gen_jso(json_object **jso_r, libxl_hwcap *p)
> +{
> +    json_object *jso;
> +    int i;
> +    int rc = ERROR_FAIL;
> +
> +    jso = json_object_new_array();
> +    if (!jso) goto out;
> +
> +    for(i=0; i<4; i++) {

typedef uint32_t libxl_hwcap[8];

I see this is the same as the yajl implementation, but should this be 8?

The remainder looks good:

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

Thanks,
Jason

> +        json_object *jso_value = json_object_new_int((*p)[i]);
> +        if (!jso_value)
> +            goto out;
> +        int r = json_object_array_add(jso, jso_value);
> +        if (r) {
> +            json_object_put(jso_value);
> +            goto out;
> +        }
> +    }
> +    *jso_r = jso;
> +    jso = NULL;
> +    rc = 0;
> +out:
> +    json_object_put(jso);
> +    return rc;
> +}
> +#endif
> +
> +#ifdef HAVE_LIBYAJL
>   yajl_gen_status libxl_hwcap_gen_json(yajl_gen hand,
>                                        libxl_hwcap *p)
>   {


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 17:54:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 17:54:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096654.1451287 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urKLk-0001Sy-UX; Wed, 27 Aug 2025 17:54:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096654.1451287; Wed, 27 Aug 2025 17:54: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 1urKLk-0001Sr-Rr; Wed, 27 Aug 2025 17:54:20 +0000
Received: by outflank-mailman (input) for mailman id 1096654;
 Wed, 27 Aug 2025 17:54:19 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=n4tM=3H=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1urKLj-0001Sl-SY
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 17:54:19 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20627.outbound.protection.outlook.com
 [2a01:111:f403:2009::627])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d9d9755a-836e-11f0-aeb2-fb57b961d000;
 Wed, 27 Aug 2025 19:54:18 +0200 (CEST)
Received: from SJ0PR13CA0108.namprd13.prod.outlook.com (2603:10b6:a03:2c5::23)
 by SA5PPFE91247D15.namprd12.prod.outlook.com
 (2603:10b6:80f:fc04::8e8) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Wed, 27 Aug
 2025 17:54:14 +0000
Received: from SJ1PEPF000023CB.namprd02.prod.outlook.com
 (2603:10b6:a03:2c5:cafe::a8) by SJ0PR13CA0108.outlook.office365.com
 (2603:10b6:a03:2c5::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.13 via Frontend Transport; Wed,
 27 Aug 2025 17:54:14 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF000023CB.mail.protection.outlook.com (10.167.244.5) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Wed, 27 Aug 2025 17:54:13 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 27 Aug
 2025 12:54:10 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.10; Wed, 27 Aug
 2025 10:54:10 -0700
Received: from [172.31.63.243] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 27 Aug 2025 12:54: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>
X-Inumbo-ID: d9d9755a-836e-11f0-aeb2-fb57b961d000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ARAut7dQncewEtMgIwIz9XBck8UpppYZiTy1ko3mEAq2HHsLTliJ5fI0L0TIk2PNvKINpCpRiBYmZkFq0HVoNFxFKlTBTa+jw64DOwSXWB1FAUcFIYHTDIqB+jHOxn90IM65k6AoT7/edCwQRNN/Jfp5LSV2SYJYKMDAX0aoiYQt3j7K7o81v0ueUVvsPHL4mO8UWdvX+NGjV4JkN9P5KafmkxsVEfHjxMHuvVgrrhUgtQKrw9ECLPKJW8qYD/Q+2GKbWzueqgNA7XaT9xK02LN+sz9yLGg/aLSEvYqE/X+MqelktHW9IcdftvXSyJNrK7KBZ+q3yGihs4DuChLznw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=nPeXV9WecEI1cPsKm6NwAWath1WDYBCeRo9RVpajFCs=;
 b=v2v9NKjTjAsGDgEbfexqsLaS3ulMSfgB6ccr7lFpk+LMa8CfgbDJIz9TW1q8+BF/qUIeFzA/PKrJnmEX2xObAfjbHFmwnBdG8tWc4gtWstU/woeZheWRcv0JxP2LdHtxKBt373BiMSIWdxGrlrg7nDTCkcsStx707cIc/75C8PADByVdEkZ4tV45fUro5JIuJdbGAnrVK3DWgTWKd6yGj6In/Ec+fVHg3DvdKjRe1kjLhzBOddQ6q3hJmw0PUfTnql9lsKw0WZ6RjZRXBaPTMCIJE3TcQiLoX5RvbMwsnlRH4sW5RmbclQkIJSSaBteSuKatAznb54pkpZx0Ry92zw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=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=nPeXV9WecEI1cPsKm6NwAWath1WDYBCeRo9RVpajFCs=;
 b=OTGbFCDz9cAPidZNYV8MuuJ8naNIJeCwmvnDRiCX+tgrCgrUhkX8dTjFjkHxgazvUbECfJie6iRgsZ7z4VzmU+uzaYbTrOgXbe9DGH5g9dEssAKm5uO3OGNpp+gFFM86pQVheIco9Iut/FXAeATHlyzigGbf2FvPpVQXWu82Uc8=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <aac8be7f-8eef-4c19-965b-d5cd9d7d97ce@amd.com>
Date: Wed, 27 Aug 2025 13:54:37 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 08/11] libxl: convert libxl__json_object_to_json() to
 json_object
To: Anthony PERARD <anthony@xenproject.org>, <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross
	<jgross@suse.com>
References: <20250808145602.41716-1-anthony@xenproject.org>
 <20250808145602.41716-9-anthony@xenproject.org>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20250808145602.41716-9-anthony@xenproject.org>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF000023CB:EE_|SA5PPFE91247D15:EE_
X-MS-Office365-Filtering-Correlation-Id: 81bbd66f-f87e-47f8-ceff-08dde592bc16
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|376014|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?SlpiZ3RpemdDelNrdGx0N0VZdVZmaWx0ZGJNOGpLeEpKd091TmUyNmlNMnFM?=
 =?utf-8?B?NERTcm5MYnczZmt2SmdrQnJWcGZPcUJRZTNpWDR1M20rUG9KdzdWb2N0RGZq?=
 =?utf-8?B?WkV6NTZhd2NFbVo4b2NMdGFpVkNOKzZVWHFaYVZUcS9sblNQR2x2Mk12VWdX?=
 =?utf-8?B?SkpZak5xQUplWG9qUXJhNDhwUk55OEh0RDBheitma2lvalUrZ1ZSODl6LzNB?=
 =?utf-8?B?SGIwb1ZuMmhLb2FwbFI1SURNSUhLanl2SUNyVTk4ekRremFYLzVjRDRwWGNo?=
 =?utf-8?B?SmhmN1hUdmxKaUgrT1c1QnYwT2ZYQlBVdnhKN0JKSGNmSjV4VzRKcWlrVWl6?=
 =?utf-8?B?VUZ0ZklJTWNmUVlTUk80d29YK01zWDhFNTNiQnNJNU1lcHdyS09SYUxOZ0Zk?=
 =?utf-8?B?aXBLS3BVcHVtTG1kNDlGd05TVjcyTlhHOUJWcnBLdysrQ1pBTE5uWG14VW1G?=
 =?utf-8?B?L3FKSEFxUUxySEs0UWNEdWE0L3RDVmtqcmQ1ZFpDa2VzbDBXRHRRTmxpTU15?=
 =?utf-8?B?TE1ETlllekRGQnhDTFd6RW1FVnh4bzU5ZVVoVGJqUXdKNnl2ZDhnQ2JsZWNq?=
 =?utf-8?B?TS8vTVB6TWs5NkV1NVpyY0tpZlZjd2pMVG4wcGw3MDlPSHZkbDR0NG1NU2Nh?=
 =?utf-8?B?WXdmOEFiR3FuOGgzNjA0TXBGS3FrMEJqNkxLcTdkbmMxNGxZYThPclhIK3F0?=
 =?utf-8?B?R2ZFSFdQZnlQYkhtWEQrRE9qZkUxZk94dkltN2RxRFlialJ0Q29GYm5OZ0NE?=
 =?utf-8?B?YkRtajJ1VG9QdlNIVEM3YmFBZURYMHpVdWRZelpRa1JBWEdOZzlUYlZuRUtm?=
 =?utf-8?B?dmxaTkhyeTdPYWhyRG5LTVJIdnhlRjJQd1JHTUpSMGpYdmRKZVdkZ2diVmZP?=
 =?utf-8?B?TXBPdXdObHBPckhGODZadnZYejhlRXFXWGpvbGQ4K296YmwyMU9kUFpGYVc5?=
 =?utf-8?B?R2VVTm1yUS93SlUwckt0LzNtbDdxTVFZS1VySnNObDZ0U2RzdS84QXcyTE1O?=
 =?utf-8?B?ZHZkOFZ5czY1M1p1N3ZMOFlwWkJJTGE3TVBnWTJFNUFDbGlrMXEwdFZUOTFv?=
 =?utf-8?B?RWZldzNqeExKQVM3cWRxQXJWb3JJdGxwYTdsSTV4VkRYQTc0RzFqZHRiT0RH?=
 =?utf-8?B?aWFWV2pqS3puTjBPbjVQQWtLbkNsdTVzOWlYYUU5ZDBKRjlVT2U0MXZwZlln?=
 =?utf-8?B?K0xJOEU3YzhmeGlIV0FPbVJzNWtOdUZRSGxMMVlSRjZMWEdzSjE4UDRNdXRk?=
 =?utf-8?B?U2VLRVBUanJ4OUttZlZ1ZXU3dHFqSk4rRTBQM0xINTBkc1JsaGx3U1FEVU9V?=
 =?utf-8?B?aEFoY21udDNCR2oyaktwVTVrTFJ1NEkzS1lIK1g1cVZNSUQ3MlM0S0c0QTBR?=
 =?utf-8?B?M0s1aHdiUStGNFF0RCtiNEV4eDVFYTU4RU1KUE5pR012elFobDI4VGJlZzJ1?=
 =?utf-8?B?Nll5Mk5weWF6ekx6QVd0M0pUTXZvWk85MmVHOWROWDhaK0VLOWh3a0hlUjQv?=
 =?utf-8?B?NzFoTDN3eGwvQjY0Vk9WVWY5bHpmT1pDRTdya3pSZ295NXUwT3NoTno4NWZo?=
 =?utf-8?B?TXg5aDRUaEhpdWJ0L3NyaXd3YkQ2NDR4c1FtNWhBSG9TWTB6cHdkQ1o0NldX?=
 =?utf-8?B?aFFYVUk5WlptYk1EQ3JZdnlweEJXdEJqdUZ1d0duNm9USVhaUHFlZkhjNzZW?=
 =?utf-8?B?NndsQXZtZ0k0MnlMaXFpT3RjUGhsNnhrdTh2aWxLMWtTcHVFMm96Uy9BSUxz?=
 =?utf-8?B?SmExbXRwK3NvQWtKUzFjQk9ERlVybjZJZ0dYZnczcWlNTStOV0tMNXBHQStN?=
 =?utf-8?B?QzdocUhBeDUyclUvSjNRNXlXNmxFTko4SjN6UUoxNkFXZnBxWVc0aVFSaGNW?=
 =?utf-8?B?TzNvVFQ0S29yZ3RUaEZiZ0oxQ005QkY5RWIvNFdFeHlXTW1nbkVnL0FOaW85?=
 =?utf-8?B?Rnc1K1ZWYWtUeEhNbWFobDNoMW9oVkxVN0czVWltRFcrZVhoZTc1Q1EraE5H?=
 =?utf-8?B?Y1g1VXk0WWtiY0JCb3hJWVRrQnpUU3UzYlVLb2hGdXROSWhsUitCazMvL1Ra?=
 =?utf-8?Q?XY6WL9?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Aug 2025 17:54:13.8722
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 81bbd66f-f87e-47f8-ceff-08dde592bc16
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF000023CB.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PPFE91247D15

On 2025-08-08 10:55, Anthony PERARD wrote:
> From: Anthony PERARD <anthony.perard@vates.tech>
> 
> But keep the implementation done for YAJL.
> 
> Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 17:59:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 17:59:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096664.1451296 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urKQZ-00022W-Gi; Wed, 27 Aug 2025 17:59:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096664.1451296; Wed, 27 Aug 2025 17: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 1urKQZ-00022P-Dj; Wed, 27 Aug 2025 17:59:19 +0000
Received: by outflank-mailman (input) for mailman id 1096664;
 Wed, 27 Aug 2025 17:59:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9AuO=3H=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1urKQY-00022J-BW
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 17:59:18 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8bf2480a-836f-11f0-ae26-e363de0e7a9e;
 Wed, 27 Aug 2025 19:59:16 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-45a1b0bd237so467345e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 27 Aug 2025 10:59:16 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3caf9b2190dsm9337215f8f.45.2025.08.27.10.59.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Aug 2025 10: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>
X-Inumbo-ID: 8bf2480a-836f-11f0-ae26-e363de0e7a9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756317556; x=1756922356; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=TSx0gLOeLI3OmpM0gOjKyE3N0RJITp6fwERr5jtp5VA=;
        b=iLZAO7W0P2AMEHwoi6eNqJR5MicUx/kBIkroNVzidE552+zbmSQ/hhKSYAtr0vgZxu
         pKoJfRW3YhFskhGMiZsaOVoUpb+s3RddInv4LihA4nv+Cjwv/WjR98XCZcmQ/qlqw6BY
         +KL/6ZTkA7uyntgUU93EZ81yySKZMI5Zq+BpI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756317556; x=1756922356;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=TSx0gLOeLI3OmpM0gOjKyE3N0RJITp6fwERr5jtp5VA=;
        b=lfAxazKu2Uj2+p9uRomk+zLAAykrpPvNL0cX0r19z9Mram8RFBGtupAsxin4zNHowa
         4C85dGy1v4EQKuFkxP6Gd2ZglVvp9as2tPzVUrgZV2ADkAk+9xxo2tsElKm/dnr4PJgL
         bsxlU6tCth5S9zm3rsZiRLCPQEFbTD3wLe+52W5lLvkmwTQ9twFU0zYmXORkfoONd7/f
         xRQTeCpVN95dinTOCLf4hPOKvWlKGM6XBBYPmeGLsP0nc5KDvH5a5zxmrB1zvkBWekTC
         PGZwtuRJkR2G2VhHYpQZ4lOCoEdClN3LtqTXXd5G/6y7rYIsZJnwwDKlv8A4V7exaTdD
         7Muw==
X-Forwarded-Encrypted: i=1; AJvYcCWsN7+2k/e9Ke45AX5+ILZh+GTKrDdJekTlfpbeTuCyhiLUn7MnSwMhjdDQ0y0/tokJKNUGjSdAMnA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy1NDugkc/cWYEU7jnKQ8P3NtWuX/Evx7mqGWIQWl5UtiPWoU3U
	yoLDucDSozz3IuzWxEEaPen+q/fUKDXGtklDJDazS/DAfGTCAoQWYRda0GIMN8Tg79s=
X-Gm-Gg: ASbGncvtYmz76a9NmlJQwfDH66135cMcmUj+PQMEUq5hqZiTq02WhRCoPBXwfXeLy95
	PF2hqzTVyrVKTZ9QOHO45UFcC97a8Uh+Cl42UuoFX9UMTy08aeTGHIW3io8oNTW4CkonC1fSEPs
	HkQk+JsBYLCR6PEjO5iB9K+MLuUT/Ja9+IR2yXpEw4Zk9GWeBLhJQye2sUThoG9EKPURWYRMgQ/
	94zArVi6kBZTX70y/58n92nTUX8kFeEDvZ56+sgT5kWAK33yM5GjVUYB5eAZPpnZnnb/JTDV5IM
	gmbg7eiEoy0s5p8pbS4CSLVj5kPfAkBSeYdS82CZvFG3omOR5zR/Igk941+IljU3cVZsYZ73J6D
	aV1SC12npZ3mtwlAuCG78ue85CXn3l0OzgC5wZfDIeSYfBxoRYlfCLQSpp0teX8q5c88lPpJf7Q
	nSlhE=
X-Google-Smtp-Source: AGHT+IGKmdlrraertGvlRZkPchDGUneti/cR6b6X7gyOPv7F/SrFWVkostS9gjgaeR1jrCEhDTo80g==
X-Received: by 2002:a05:600c:5493:b0:459:dc81:b189 with SMTP id 5b1f17b1804b1-45b517d3998mr203579225e9.31.1756317555562;
        Wed, 27 Aug 2025 10:59:15 -0700 (PDT)
Message-ID: <eae86371-51f6-4df3-8ca3-723303864126@citrix.com>
Date: Wed, 27 Aug 2025 18:59:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 07/11] libxl: libxl__object_to_json() to json-c
To: Jason Andryuk <jason.andryuk@amd.com>,
 Anthony PERARD <anthony@xenproject.org>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>
References: <20250808145602.41716-1-anthony@xenproject.org>
 <20250808145602.41716-8-anthony@xenproject.org>
 <05c49cee-d783-40e3-a4ce-da724c308a21@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: <05c49cee-d783-40e3-a4ce-da724c308a21@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 27/08/2025 6:51 pm, Jason Andryuk wrote:
> On 2025-08-08 10:55, Anthony PERARD wrote:
>> From: Anthony PERARD <anthony.perard@vates.tech>
>>
>> - libxl changes:
>>
>> While doing so, we rename all "*_gen_json" function to "*_gen_jso" as
>> they have different prototype. All the function pointer are been cast
>> to (libxl__gen_json_callback) by "gentypes.py" when generating
>> "*_to_json()" functions.
>>
>> We also introduce a few more "*_gen_jso" functions for "int" and
>> "bool" because we can't use json_object_*() functions from json-c
>> directly like it's done with yajl.
>>
>> To make the generation of _libxl_types*json.[ch] with both YAJL and
>> json-c we add "--libjsonc" to gentypes.py so it can generate
>> functions/types for both.
>>
>> Also introducing "jsonc_json_gen_fn" in the IDL, to be able to point
>> to a different function when using json-c.
>>
>> Also, don't export any of the new *_gen_jso() function, at the cost of
>> having "_hidden" macro in semi-public headers.
>>
>> - xl changes:
>>
>> Also, rework the implementation of printf_info() in `xl` to avoid
>> using libxl_domain_config_gen_json() which isn't available without
>> YAJL. The implementation using "json_object" call
>> libxl_domain_config_to_json() which generate a plain string of JSON,
>> which we parse to add it to our own json; this avoid a dependency on
>> the json library used by libxl.
>>
>> Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>
>
>> @@ -358,6 +535,36 @@ int libxl__mac_parse_json(libxl__gc *gc, const
>> libxl__json_object *o,
>> Â Â Â Â Â  return libxl__parse_mac(libxl__json_object_get_string(o), *p);
>> Â  }
>> Â  +#ifdef HAVE_LIBJSONC
>> +int libxl_hwcap_gen_jso(json_object **jso_r, libxl_hwcap *p)
>> +{
>> +Â Â Â  json_object *jso;
>> +Â Â Â  int i;
>> +Â Â Â  int rc = ERROR_FAIL;
>> +
>> +Â Â Â  jso = json_object_new_array();
>> +Â Â Â  if (!jso) goto out;
>> +
>> +Â Â Â  for(i=0; i<4; i++) {
>
> typedef uint32_t libxl_hwcap[8];
>
> I see this is the same as the yajl implementation, but should this be 8?
>
> The remainder looks good:
>
> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

A tangent, but physinfo.hw_cap (which libxl_hwcap wraps) is as good as
stack rubble.Â  It's not exactly random data, but it is a view of an
internal Xen structure which has been reformatted multiple times before
we even realised it was exported, then continued being reformatting it
because it's a gross laying violation that noone could possibly be using
anyway.

It needs purging from libxl and the sysctl interface, and if that makes
JSON easier, then lets get it done.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 18:00:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 18:00:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096676.1451307 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urKRe-0003ZQ-Pm; Wed, 27 Aug 2025 18:00:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096676.1451307; Wed, 27 Aug 2025 18: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 1urKRe-0003ZJ-Mu; Wed, 27 Aug 2025 18:00:26 +0000
Received: by outflank-mailman (input) for mailman id 1096676;
 Wed, 27 Aug 2025 18:00:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=n4tM=3H=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1urKRd-0003Z6-Lp
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 18:00:25 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20625.outbound.protection.outlook.com
 [2a01:111:f403:2417::625])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b3904cf6-836f-11f0-ae26-e363de0e7a9e;
 Wed, 27 Aug 2025 20:00:23 +0200 (CEST)
Received: from DM6PR21CA0010.namprd21.prod.outlook.com (2603:10b6:5:174::20)
 by DM4PR12MB7742.namprd12.prod.outlook.com (2603:10b6:8:102::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Wed, 27 Aug
 2025 18:00:16 +0000
Received: from DS1PEPF00017090.namprd03.prod.outlook.com
 (2603:10b6:5:174:cafe::77) by DM6PR21CA0010.outlook.office365.com
 (2603:10b6:5:174::20) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9094.6 via Frontend Transport; Wed,
 27 Aug 2025 18:00:16 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 DS1PEPF00017090.mail.protection.outlook.com (10.167.17.132) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Wed, 27 Aug 2025 18:00:15 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 27 Aug
 2025 13:00:15 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 27 Aug
 2025 13:00:15 -0500
Received: from [172.31.63.243] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 27 Aug 2025 13:00: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>
X-Inumbo-ID: b3904cf6-836f-11f0-ae26-e363de0e7a9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qzrLCUZ2g6FdEegjkq7wJ9IoBL4Wt5TrE156t1PghEQFRvedqim3qQOik0CzbUxUfY0/KNtrsKaosiw5PmZjEarV8J/2di9x+z0kVE01ciV3hksHb/ZrWduCDabhEtwAM/lUsfcmH0Olog8UjZ7oM0dvXPFGWNzWuQQr4SkBHylbNqAzeAkYsKLrsxZBvOamfAdn0Xvfrax+pM6uQ9nySlmha+SRmrV/MEOyd+zJ6paNrD10vXBxeRHfowjHszENbSSNl0C5WuW1ustcHJ7xm2EEisClaRlGqzpipFIr4Z6CxrOPqrYIHATWUj9HTrK/lv6Js7NB/q84vqkWOPJYAg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Ij5/r4B0K3cb02flsbpmmzcS91Y5DTS3nBtZ5KhTF7o=;
 b=XV/8hugfC2Z2wJFAlzgo1HKOowZ5eH0NEWkKCqxz9WolnsBDdqO4AP5a50KpipHbQRUEffUN601ulIOwids9EYxBKRXyXF/JGPdYiZKlOm0nVfilnRNgMXK7iewCjbGvgMGCQCPhMQLGtIdF4wpg3nGOzZW19S0MahVGX2tO/P1mDTu7gcqV/O2D9kj75d3/J9rd/sDiOw9Qww03VJ4E2q6o+idBRR0OMFLgZVWXMhV1LGZEf6hZtcqRpMjMIueuL8Y+leASRafPpk/KPS/UwxbVGs+dLHJfhRr2mVs/wyp9Ky8HfQU2x/RlEfgyjT4rYVcBtHJsDkLPlHoBBj/jZQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=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=Ij5/r4B0K3cb02flsbpmmzcS91Y5DTS3nBtZ5KhTF7o=;
 b=mMfLJLB8yhfIfOHJmd5MqcHmlUN0c+4KBXDIyar1pPVEORvDJx8h2D4bl6f5ShwO3otUn13yj2bmG9t9aLQS1A5gAz7DEfmAPx8wCOMcqd41DVOb5kEt5wT6uS/ze/U75MTZVLbJgdyF8y1GJKQrRIwtNGkHYnYGoM/bCCsLduE=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <c6f33861-7042-457a-8ca7-217293e47d7c@amd.com>
Date: Wed, 27 Aug 2025 14:00:47 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 09/11] tools/libxenstat: Use json-c when available
To: Anthony PERARD <anthony@xenproject.org>, <xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross
	<jgross@suse.com>
References: <20250808145602.41716-1-anthony@xenproject.org>
 <20250808145602.41716-10-anthony@xenproject.org>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20250808145602.41716-10-anthony@xenproject.org>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS1PEPF00017090:EE_|DM4PR12MB7742:EE_
X-MS-Office365-Filtering-Correlation-Id: b57390f3-dea2-4925-6a06-08dde59393c0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|36860700013|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bjhBMVZsK1NwcHBESFJ5TUN5L0VscE9lekQxUXNOQVN2dFdHMU04SjgxcnlQ?=
 =?utf-8?B?TWtDbVlMWVRtRmtNZXZ4UWpJNFpTUjBBSm4ybWtxcWx3a2lna09CSlhzTkVK?=
 =?utf-8?B?N1JyMURCY0NoTnJ1cWpQdWtydmxWMDl0cjVmUjNRblA2cDdQNEdwb0FPMnY5?=
 =?utf-8?B?QlpkUDFaaDIrMXVhbzdOcVZXMjJudlFvV05xN2Y1MGdzM0dNakJXK2pXNjA1?=
 =?utf-8?B?TitzTXNycENJVWhGUmNoWnZYVWl3eXdsdVlhTmlmV0lmZEhNQ0o0N09GWjUw?=
 =?utf-8?B?RnhQT3JkOW4rMTUrK25KUFc2Sk85TS96WFFveVhIbVluOTRybFU1YWZjNlRk?=
 =?utf-8?B?eW1FbGZxTmNyNGpONFdKUWlCM2xqUHJLeDFWQWk0T3IwZ1FINFp1aDErcmwz?=
 =?utf-8?B?dTZvM3hGa0p4QUtTTGlhRStPZHpkZ1hMWVpxVUVTZ1BkVnA0RHVPWEhzT21C?=
 =?utf-8?B?TW5MTXdjemxESmZWb2hoa083SUl3ZktjakJzc0toSENnMUVWUjJLRUxaWVhE?=
 =?utf-8?B?TU52ODlaUTFiQVBsUVVxVStIOWFpczB0MXVlTy91UGJVb2VKYmYwK3R0Mmd1?=
 =?utf-8?B?QlFoQVpHZ0dYUGVtbGxnNDAxeUVKaHo2Y3FxZVIyWXZHZTFGdG10WHdTZFcw?=
 =?utf-8?B?NW1pK2xvTEdtejRwSVRabFNNZ0M3TEZQMUFPTjBWZnY0YnIwSTlZVS82SGhF?=
 =?utf-8?B?K2dGRndBZ0lxaTZTN0VqeHN4WDNaNmR1bW9GNlhUVlE2N2RuL1JoYUN3aUhO?=
 =?utf-8?B?L3hOYjU1NTB0cmd5cW5ZSlhOMUtFMmxyY1JCU3Q1VXliTy9NT2k1L2RoQS9o?=
 =?utf-8?B?R2YyQ2hRbmdKRU9zdk9semo2VFJmOHFhbnNMVlF4SnEwSjB5SVdydTZmSzhk?=
 =?utf-8?B?SG9nVXpnbTZzNHp0dTltVTdXaDlIL3U5bFZYY0pWRkxVU3FnR3lMSndGanQ2?=
 =?utf-8?B?ZUlvRGVwbnlOTHlTU1lCamM0cUpZN0pxb29HNGpqMll5U0lNNzdQUWcwdEZw?=
 =?utf-8?B?cjYzQmtRQ2NaTnRKb2pGQTBHMG9iZ3RBckRuVHE3TXgvSDkyVEFGMC9rOVRY?=
 =?utf-8?B?emVsY1hWTUxZeU5NLzV0L2VGOW93T0xSZndHTU51SDhQR2FxcTVWbWpjNnBB?=
 =?utf-8?B?N1VHcUhHNVJwKzE0TUxPTDJFeW45eS92UTYzd3dRbFBRSFdWcTIxdjYwMysw?=
 =?utf-8?B?a3U4azdmNmxsaHpYVHZibkZ1cFZSWHgwV056RkczUUs2TDZMUnJNN1NhekFo?=
 =?utf-8?B?WGhlbGlsdFNmNGk0a3VCM3IrREJSbDdzY2crL01XWGYvS3p3NWdtejdyQ0pI?=
 =?utf-8?B?Z1dGOTVscGZMZ0dyM01EcUFrMTNheEVtaTJRWTlCdVdiaFVqaDgvU1M4VXlH?=
 =?utf-8?B?OVBmN04rN1VBeGk5MXFTdGxEWXhwU0I2akQ3R1QvSWhvT2xkWnlWSTVERFZ0?=
 =?utf-8?B?dXQvaXlDb20rMFJvOHc2T3VtTVVIcSs0NUZMajU0ZUZXbXVySjFwazB1TVVn?=
 =?utf-8?B?K0lxK0ExSVBWWk5jWHkzZ1BQeVBGL0RuRGtiOEtNN0lqNmR6WVp2UDF5a2dJ?=
 =?utf-8?B?UjVZRmIxRC9qYlltbEdhRTBjYlRhb3FIQVE2cFRxaVMzZHE0NTVLdm1NY2V3?=
 =?utf-8?B?WnltbUpmd3FLd2E3U2V3eFBkVG5ZYVpkaDEvSncwb3NDcDNkUzU3d3M0UHV0?=
 =?utf-8?B?OEdmNUVaS25OSmtLWXN6L1I4SzJTQmFZd1VxQ2o4M01PaUJmdWVXNzF4eVB3?=
 =?utf-8?B?TmV6dnBWTEZwNnByV2tnYTBvZHFIcnVnZUtuYjJLR05INmtCTnJGWGpQMVkv?=
 =?utf-8?B?emx4RkdXUzVSbXFVdUtDZ0l0Z0pxRmI5YzJMSFRSdHU0Y3N0cmxhY1pXZEww?=
 =?utf-8?B?ZnVuVTJxTW9DVDFsdXRxVGJSb2FUbk5qWTA0eVg5djEvUFF1KzVzVTV2bjFI?=
 =?utf-8?B?enB3cXRoTGVKTnVHUTNiSU15K1c5emR0Q0dMQ005WnViNjBPWVNSd0wrdDZX?=
 =?utf-8?B?Q2ZqYm9jOE1nbUhKSGg0eHhVYUZHNTB3bHI5L3cxb2QvSTcxT2VsUHNCa3h4?=
 =?utf-8?Q?cGFXCJ?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(36860700013)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Aug 2025 18:00:15.7434
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b57390f3-dea2-4925-6a06-08dde59393c0
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS1PEPF00017090.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB7742

On 2025-08-08 10:56, Anthony PERARD wrote:
> From: Anthony PERARD <anthony.perard@vates.tech>
> 
> This is mainly a copy of the existing code in yajl and use json-c
> instead.
> 
> Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 18:24:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 18:24:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096715.1451316 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urKoP-0006kv-IU; Wed, 27 Aug 2025 18:23:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096715.1451316; Wed, 27 Aug 2025 18:23: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 1urKoP-0006ko-FQ; Wed, 27 Aug 2025 18:23:57 +0000
Received: by outflank-mailman (input) for mailman id 1096715;
 Wed, 27 Aug 2025 18:23:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=x+iP=3H=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1urKoN-0006ki-RO
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 18:23:56 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fc5e4cdf-8372-11f0-ae26-e363de0e7a9e;
 Wed, 27 Aug 2025 20:23:53 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by MRWPR03MB11023.eurprd03.prod.outlook.com (2603:10a6:501:76::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.15; Wed, 27 Aug
 2025 18:23:51 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Wed, 27 Aug 2025
 18:23: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>
X-Inumbo-ID: fc5e4cdf-8372-11f0-ae26-e363de0e7a9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=brUxORS08+gMhzzxvJezm9cUNieBFF/mCutzD7+RXCojt2NeYLHb5X5TAbSRVJ+R7I+WiqP3tqN0Tk3f/TVg586IfbjhFxXj2tHF+FzSHa7Kp8ByR2OkKWefo3ijpuevU6ebxK6kNJv8yiBViNzYOjFnGLx2K3NwiTw1k3AcEsDHA6XMx3X8pJQsRdMCebiy885VWL69M6Q54P0+EFxbMl8y9wuXVoGKBIJEDIBgzGw0iPObXULoQRB06RIo5Wpm7H/0DxnEIDo3ejby+BBxbqUT7HlM8Gf+hLwr28wMijF11wZH7z6D1fTurcBUWhEvwQv3qxcd3/womPEgC8+CCA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lJHxXQylSp2srW7ixi8KXXk/Rk12wV52xtDh50W86BI=;
 b=AdEINIztj4nIqA7+4TpL/OA1eRTBKPn7dMkuP5xWj34tUYwkvm82xd/DqzB5a3oxv9PkU1BK+Rt4d5Ht/cEHp88Q5gCXh/Wn5HyrcQsgQZbrBa3mGcPaHuXKl3Ro9OpplUaVZ3qvXmE634oavG6ir7U49UN0Qz3HPDwOabAvZkdn0UqHp7pffZftHoezAx+Yf+j65iVq7s1+wpTnvnOUVb5tLmMErwPGE0UCSZ+vZ2ViqFwY67RDdMLXcirRvDXuGZ+kcyV2kkNdcPABrvFuv0vYFs9r720oidc9R2KSVSOnn7TDclrZj17gGYhMXIusI9rQiNtIVCVNfRU9oA8nlA==
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=lJHxXQylSp2srW7ixi8KXXk/Rk12wV52xtDh50W86BI=;
 b=b3qC7gJKTuXjxFU+H1IA/vJt5f4U5pl/vxICFxyQ49/C27NndpecWsItCbUhqedBLYiZBwtwzwzjVfhHSQyclxgrqe3DzQ2NOlcpfqkiRzLLyjdUiBcX6ZaDSXSny9Ne9p5jpdFfkPDFmz1LwsyUa9oLaq5lLpcC/Fi4THgxCAyDqnJv6X7DQRoqeMRRs6kjtaupaBly5V1BUoI0u/M0Oab4k1TlhDu5VrCXHoFabu5WTryAC541+cGAvhiMuw5EvoJFTjnCkahz67eKD8srQpRoOI9IlbzJZndV2jjkRTXHXmCjxlGRUu2cZaYBowX6f9YZ2HcY2C4SHt7v8Xqo8w==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "olekstysh@gmail.com" <olekstysh@gmail.com>, Leonid Komarianskyi
	<Leonid_Komarianskyi@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>, Anthony PERARD <anthony.perard@vates.tech>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>, Community Manager
	<community.manager@xenproject.org>
Subject: [PATCH v4 00/12] Introduce eSPI support
Thread-Topic: [PATCH v4 00/12] Introduce eSPI support
Thread-Index: AQHcF3+8BonB2Qq5TkGkUiLa1lebVQ==
Date: Wed, 27 Aug 2025 18:23:50 +0000
Message-ID: <cover.1756317702.git.leonid_komarianskyi@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: GV2PR03MB8678:EE_|MRWPR03MB11023:EE_
x-ms-office365-filtering-correlation-id: 8d19e805-fb9c-4ed8-f2c5-08dde596df38
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?IvDQ5FtVWsaFed585fXms2P3Ug+oHxxTQ+WIyhYLh7vKph6gApwvf6BOT5?=
 =?iso-8859-1?Q?y8jopALZh/O9rKJr55ZiPUsoowIxphummTZHPdce/zuwB/5k8TTuS+q58P?=
 =?iso-8859-1?Q?+Qg2NgvvHRx0Z/VRhx52mj2VXV355NSgTDVPLtpxdog+ccDgv1YWkxHvue?=
 =?iso-8859-1?Q?pYLjeO1D3MzDxFWZE97PQ61bncIpUWf4VY9wMMjCpWT1r2SiHCSPNMhqu5?=
 =?iso-8859-1?Q?Xg1xhlvUcJgcAN4xXUGrc3viGunPcC3OzrTlDiXFx1/FMZr9XfWw29iGGt?=
 =?iso-8859-1?Q?jEbgmw/siskpBPsB6ZhxGqGFhqQOQnZzplgKPKOPLUnnjDp2BjVZwMKHcv?=
 =?iso-8859-1?Q?6K7qUocHxsBPmuhawNmLJwVPNdubyBcA/hT85E+ngBbd9X5v/44hqdqprV?=
 =?iso-8859-1?Q?fmKXby13ku6lEjr5weGtbtB2/byisKGYXiG3a86f0TxeZhJzoZnapQaihp?=
 =?iso-8859-1?Q?9sLhpBPrHRQ3O0i7ezJdKHDayfHhX0DHVNyp6O0TCHxOkbKYjiRdM+3w2c?=
 =?iso-8859-1?Q?ANihjq0aegNBdSkhocIP87BO7ZbRdb/hmx431gEK1HB76AkGE+GA2a1GIU?=
 =?iso-8859-1?Q?G/q8HQt+SRqA16e8Qn5zcuxeODVcRrjei+0XE4jI+VvOXnRWDmtdFu1Xvt?=
 =?iso-8859-1?Q?M1mq2VdhHLL8FCYLNObs+vZwUlQyjQnyZ37De5iM7QGfQyfA2fdPCEEmz4?=
 =?iso-8859-1?Q?n4b66413Y1GYEtOJqi478ioszQFI+Cyfso3gTNrtSfFrIE1vEhiE0k/1Uo?=
 =?iso-8859-1?Q?ZvlpmY7fmfUb2ipBH3bufRtblH74XO8CxPrzWLZBVTWiArxEWB3J0O5FqD?=
 =?iso-8859-1?Q?/l/+OyDxbRTBEu0+K8AwtNTe8Sv4dDv0VHks8yMA1An63nbfaA336/JIn4?=
 =?iso-8859-1?Q?nZNGuVAnJoaDA/gCOQYOdenaNzVp3+iZqCnmDyYpgiuQBthg/osuGTujjP?=
 =?iso-8859-1?Q?hudkgWm9ntpAD1AlDnhYQnHu/glWEfcqC5pQfiidz6XoAXylE82BDARowf?=
 =?iso-8859-1?Q?zzWWdy13K9ZP0UyYGryxO08Lmzxtn4Mn/nkHmrQpJ55ntLZsyMpjXMD5Ac?=
 =?iso-8859-1?Q?N1rBk78TveMioV9piNSvhErPiSmfrEgMwvQingsu9AnvP8D3B7VaaHRIAl?=
 =?iso-8859-1?Q?k76HLzgP+MR6iyDXVm/z8ysMQjEnGv237c3s05dzQwxXzPJgKZ/eURbihD?=
 =?iso-8859-1?Q?CtnMErZts8y/3xbYj1b4U5rw0ChMA19/LmHd77j37iw47yogMlYTCDh09W?=
 =?iso-8859-1?Q?GGF4SOOVDWR4Kk2LjjTbdRMZu86pGcMlcO/A9VX1Y+M088ARZ7eQcsIydL?=
 =?iso-8859-1?Q?/mo/dsk5cpAHP4/CDaoEKQja20AoHJHvjNdWQmdP7lnKUrgu16tShli2xL?=
 =?iso-8859-1?Q?Y6IZorROjCgWsiG+osyx+qcokT8BUpQVZHgLmDQTtjbFGiI8CYPzIvuo/k?=
 =?iso-8859-1?Q?e68T6LSHfZT8WnAyYG/WnRjWo1FnDJ4WbYyrtCWYDA+wMxxpQepi1+FT9Z?=
 =?iso-8859-1?Q?c=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?i0m6UBjzy/lwW7bKmzmi36MTdA4efMGW0E79bwAMeHzE8MwWKj2lIc7DKE?=
 =?iso-8859-1?Q?2/9JUoyy33PPFEZrk1cMOeXpAgw8Tn3ZrqelpPQWNNUPdjYf9kbOwfojtg?=
 =?iso-8859-1?Q?vMdIowF+c1OxpwFn/kXB88qBQJKKi8c03ZLS2qg2m+rXufn2RDYWwZ4a/1?=
 =?iso-8859-1?Q?FuM/V80tbqs5wxAr4R4I1R5J5kHJ9zjkoy814RaQ/j+IEf6ZO62JTy4TzQ?=
 =?iso-8859-1?Q?O6W+wSt06phTWEuG180Iv6am9jxEL7mI/9eh0ksaGaAkOzJsgzKKKZgIKo?=
 =?iso-8859-1?Q?M9jYT9smPtGhEejOFJXlsNdaJyiKmzysdBfRSDBjZhkWigmL6witLJGQma?=
 =?iso-8859-1?Q?848cAgpqlq1iPN6hl/Ma4zBlR/FU+lrZ2pbItmyxOh5eakW2oxENNIY2Ko?=
 =?iso-8859-1?Q?P3V10Lcb9lXIhvxLhd9GP7QKIcWSh+x8iETyyoLsQlNMGMxQCiPlXAtKOF?=
 =?iso-8859-1?Q?laCLhh9aHe+uemKJmvPX1FkbKQ/LIdZqEm4IJscGivfp6W9ytExVViRxl8?=
 =?iso-8859-1?Q?9o5OQHwdkLxrTOnOoqMhtOo78FcfOr24lgbKhEXLZZrZkH25dR/wKINQZ6?=
 =?iso-8859-1?Q?gzd4VUt4kiizxvgnPR+XZ7sBgBgD2iqmpfRLrk9jxhmUoc2vdFTkST8JKL?=
 =?iso-8859-1?Q?8fgkp59I2Ji9iru1EB78q6Lz5T0dgRTj0qfZzKDCv1hVoXy0zZkzufbaMa?=
 =?iso-8859-1?Q?00CpJj7CVfh4b/43Y057txMT/XWn3h17qfHijiqUza0aujD3IxEgdCzGwp?=
 =?iso-8859-1?Q?4329gk02TIhQpe762h22yMuIkBIvVX9Lx4gI1NzQ3XnMg1srD9ofx4m7uY?=
 =?iso-8859-1?Q?pesYQR1pXRQrP6zTee3s+MVfGHV8cjHFroAOBNsEq6iwNp+MbQLPXc3j57?=
 =?iso-8859-1?Q?Xw8XkpvGlmQf5/rezcH9FrWu60Ui6jtMyr1Ig4WlUW0v0wIFqTfnyWaDdh?=
 =?iso-8859-1?Q?0aqTSuy3yu6K3YdGQK7quumkiHVYANBXT9fuSnFEo9IWubpECfgFymnvLJ?=
 =?iso-8859-1?Q?7zY2r47HFcCBkD+up/qZdkasXwrFARTHIIWUXdJ8i6toxqXYRmtwo5hAtW?=
 =?iso-8859-1?Q?uZdir5Ois4QTgJcX7GrNgdE/d/yi2HUQawGiym3wAadTvPCvgkNiaI28w5?=
 =?iso-8859-1?Q?QaC7MIaID4UfEeSOqzdx2zZMYOV3s6PlAfPssOanR0M3LS27PrN/kqGmPv?=
 =?iso-8859-1?Q?KzDIcQYmgJKNISXqp7s04jAML+N5RvznNTJDGGukGTP1SqmpMYQxQPAEd3?=
 =?iso-8859-1?Q?nsqUp903Duj7PFnFmTfCqkMZUFpvPBhG4i9zrh2jndeAhvF1zDtIYe4DOy?=
 =?iso-8859-1?Q?dMPeONDp+L/s1kbuNPRTR3Xw1flBP5zdwKh4Ph9Q31PeLaQZgR9aAdCneF?=
 =?iso-8859-1?Q?RmgwDZLreLG0AZmRIkbrdLF9vXZsYAbs0EJ2JjAPM68xpVAuUnMIzc2jxb?=
 =?iso-8859-1?Q?OqDSW1oa+b5RZJ3WRkzIOVyNmbFtxXd2CZdfff07t3SQoYo5+xTz5W81QN?=
 =?iso-8859-1?Q?uT8zu20ubCGkd0B2hfmMPRCNE3AskZSMGLYZ9RklU/uXj3YfPXo4xSEct1?=
 =?iso-8859-1?Q?C8d11tYB6ktfA1O0XZenomqbHBLDlTOHPoI58xSYa78bBSnhxBZGqOjxyA?=
 =?iso-8859-1?Q?A7eqntfNDKuoZc5j6K/qmmfqEAalvU/NX10v7/dO0mZxMMBORsu32d9Px7?=
 =?iso-8859-1?Q?dtgVudj+FBs5fZGE3Y8=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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8d19e805-fb9c-4ed8-f2c5-08dde596df38
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Aug 2025 18:23:50.8931
 (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: lptGikKiQKjdgRjfehrTzHSgS67tV43YAh1oc1BROsBrkM9mcO5t+0CL81C7GCHrOqzG06WhMrcT2OF1faBBUj1cPNszMXgkT28G3R2sNSg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MRWPR03MB11023

Hello everyone!

This is the fourth version of the patch series to introduce support, which
contains fixes and improvements based on the feedback received in V3.
Mostly, these are minor changes in individual patches, except for the follo=
wing:
xen/arm: vgic-v3: add emulation of GICv3.1 eSPI registers

Now includes additional checks for domains without eSPI support to ensure t=
hey
behave as they currently do when reading or writing eSPI registers - RAZ or=
 WI
as it also described in the GICv3.1 documentation, when GICD_TYPER.ESPI=3D=
=3D0.

Summarized description:
This patch series adds support for the extended shared peripheral
interrupt (eSPI) range (INTIDs 4096-5119 [2](ranges of INTIDs)) for Xen
and guest domains. The implementation uses a generic approach to handle
eSPIs, similar to regular SPIs, while maintaining compatibility with the
existing SPI range. Functionality remains unchanged for setups that do
not require eSPIs.

The series includes:
1) General refactoring of common IRQ operations with GIC registers to
improve code readability, simplify further maintenance and prepare the
key functions for eSPI implementation.
2) Introducing a new Kconfig option (default n) to enable or disable
eSPI support. Disabling this option prevents unnecessary resource
allocation for setups that do not require eSPIs.
3) Adding additional resources to store required information and operate
with up to 1024 interrupts from eSPI range.
4) Adjusting assertions and checks to pass verification for INTIDs in
the eSPI range.
5) Configuration of eSPI-specific registers during GIC initialization
for systems with GICv3.1+ hardware.
6) Enables eSPI MMIO emulation for vGIC, allowing guest domains to
access and operate within the eSPI's INTIDs.
7) Updating documentation and CHANGELOG to reflect the changes made for eSP=
I
support.

Also, to simplify reviewing, please find below link to unsquashed patches, =
that
are on top of every patch, that is changed in the series, compared to V3:
https://github.com/LKomaryanskiy/xen/commits/espi-support-master-upstream-v=
4-unsquashed/


Changes in V4:
- added a patch for documentation
- individual changes in patches

Link on V3:
- https://lists.xenproject.org/archives/html/xen-devel/2025-08/msg01628.htm=
l

Changes in V3:
- added a patch to update CHANGELOG.md
- individual changes in patches

Link on V2:
- https://lists.xenproject.org/archives/html/xen-devel/2025-08/msg00372.htm=
l

Changes in V2:
- added 2 more patches to implement helper
  functions for gic/vgic:
  xen/arm: gic: implement helper functions for INTID checks
  xen/arm: vgic: implement helper functions for virq checks
- removed 2 patches:
  xen/arm/irq: allow assignment/releasing of eSPI interrupts
  xen/arm: gic/irq: permit routing of eSPI interrupts to Xen and domains
  since their functionality can be moved to appropriate patches after
  introducing patches with helper functions
- individual changes in patches

Link on V1:
- https://lists.xenproject.org/archives/html/xen-devel/2025-07/msg01809.htm=
l


Leonid Komarianskyi (12):
  xen/arm: gicv3: refactor obtaining GIC addresses for common operations
  xen/arm: gic: implement helper functions for INTID checks
  xen/arm: vgic: implement helper functions for virq checks
  xen/arm/irq: add handling for IRQs in the eSPI range
  xen/arm: gicv3: implement handling of GICv3.1 eSPI
  xen/arm/irq: allow eSPI processing in the gic_interrupt function
  xen/arm: gicv3: modify ICH_LR_PHYSICAL_MASK to allow eSPI processing
  xen/arm: vgic: add resource management for extended SPIs
  xen/arm: domain_build/dom0less-build: adjust domains config to support
    eSPIs
  xen/arm: vgic-v3: add emulation of GICv3.1 eSPI registers
  doc/man: update description for nr_spis with eSPI
  CHANGELOG.md: add mention of GICv3.1 eSPI support

 CHANGELOG.md                           |   1 +
 docs/man/xl.cfg.5.pod.in               |  13 +-
 xen/arch/arm/Kconfig                   |   8 +
 xen/arch/arm/dom0less-build.c          |   2 +-
 xen/arch/arm/domain_build.c            |   2 +-
 xen/arch/arm/gic-v3.c                  | 194 +++++++++++---
 xen/arch/arm/gic.c                     |   7 +-
 xen/arch/arm/include/asm/gic.h         |  31 +++
 xen/arch/arm/include/asm/gic_v3_defs.h |  40 ++-
 xen/arch/arm/include/asm/irq.h         |  27 ++
 xen/arch/arm/include/asm/vgic.h        |  48 ++++
 xen/arch/arm/irq.c                     |  58 ++++-
 xen/arch/arm/vgic-v3.c                 | 333 +++++++++++++++++++++++--
 xen/arch/arm/vgic.c                    | 223 ++++++++++++++++-
 xen/arch/arm/vgic/vgic.c               |   5 +
 15 files changed, 924 insertions(+), 68 deletions(-)

--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 18:24:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 18:24:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096716.1451326 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urKoZ-00070w-Ty; Wed, 27 Aug 2025 18:24:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096716.1451326; Wed, 27 Aug 2025 18:24: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 1urKoZ-00070p-RC; Wed, 27 Aug 2025 18:24:07 +0000
Received: by outflank-mailman (input) for mailman id 1096716;
 Wed, 27 Aug 2025 18:24:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=x+iP=3H=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1urKoY-000703-Fw
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 18:24:06 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 02b74e1f-8373-11f0-aeb2-fb57b961d000;
 Wed, 27 Aug 2025 20:24:05 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by MRWPR03MB11023.eurprd03.prod.outlook.com (2603:10a6:501:76::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.15; Wed, 27 Aug
 2025 18:24:01 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Wed, 27 Aug 2025
 18:24: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>
X-Inumbo-ID: 02b74e1f-8373-11f0-aeb2-fb57b961d000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lS3DI0ZzvEijgmjtZDg6u316K/+J1b4Gs6OzU2fOSs60UBQ/0C2QTxRIKp26cux+cVnMHgDlXK48MsGtzDikV3I1JdaxCqjqcQxZOjuHqRUwdlYmt3iite0HrcHNMWayoXzmHNN0EOpi6Cea3QgvUcv6rrhcgPcuIWDHvo5jLEs1IM0+8XIp17rNaIv6AmXwT8Y7s43IggHHGRQarCU5b862Xb68JH/HBfGzKBoPYV+T8sAye+BXeuI2DhkHNSXE5T09SuYrE/6LwWdkQMLnVj7N+7cuJQ/tQ/YVfJUdBo4KlSLU7C6fEolSlu57uFOur+H8MXfPZ213SPoy/9/2rA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=rg0pipsxluNUTLAfrvU29jgR6fAYKaQkc7w6WIEy79k=;
 b=zGu9z4W9JkXU7K400NWSve/Vw9lkvgvf2ELftXJiqht+l+Y10abkUwUInKAYOG5j2B63hKSEwf3YutgQ2LNxuafC1XSxDYu6Kc1JizQ9iRMyP1O0VQyTs+UG7G/gih3QyU+pKxiJlbn/dGB3GGOIAjGC41TqzkrAs7mIGUlVknV02bzK4a868yEb5G6mhUWuPycRo9yfznf+zWPaefUWt1d+l1XXl6tVkd4DVerH7j7ocw74i1+uiaTZJah8I2RlHM/7n7GxlCPSdwGJvZMeipG7txJwUxS6NT+RHfKZDePmdltOuCE8XEECvqmTxqtUM+xuJS9G9HzNtOKu3A8PxA==
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=rg0pipsxluNUTLAfrvU29jgR6fAYKaQkc7w6WIEy79k=;
 b=OQK/vFaK6peWq+j6WaHRTxnIiFB3MghZ8kINLjArDnYB613AgwBJGa+rjh/mlMxYDQp59H48UQzi/05Hr+sWRwYA+vvQhGukxJhxANbRXaCJkl5UIde4Z6vEUr7UK3/DHMd8NShpCsPU3LOokcskFJJ2HGjB4j/Qxfw6vC6pZQoUmtDEPx2+p4MqSAk07x9LQxFJLl9vSkq7x3UYriF/ExjDYTJ6WBPZZJdU3MgChzUa7CZssM4Emm3wJE/7qFaY9iePUNbmbECGG4mSj5bh0S7aXKtBP3P/HKjuZ3U5dCEtfCth7XmwmGhLtUlsgV8TyNG+vszvH8qU8mT3Rd8EZw==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "olekstysh@gmail.com" <olekstysh@gmail.com>, Leonid Komarianskyi
	<Leonid_Komarianskyi@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>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v4 01/12] xen/arm: gicv3: refactor obtaining GIC addresses for
 common operations
Thread-Topic: [PATCH v4 01/12] xen/arm: gicv3: refactor obtaining GIC
 addresses for common operations
Thread-Index: AQHcF3/CtR1KedyUO0e9jC2sdgHn6g==
Date: Wed, 27 Aug 2025 18:24:01 +0000
Message-ID:
 <5f511d386c7f20b09106aa0202e0989477eff498.1756317702.git.leonid_komarianskyi@epam.com>
References: <cover.1756317702.git.leonid_komarianskyi@epam.com>
In-Reply-To: <cover.1756317702.git.leonid_komarianskyi@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: GV2PR03MB8678:EE_|MRWPR03MB11023:EE_
x-ms-office365-filtering-correlation-id: bc26998e-9a49-42e4-dbe3-08dde596e560
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?Q3Nl9aedbjM/3VZ4EjNeL7nsOtr0mKtG19VCxX3rTR/qIvjJ38ze9XUsvf?=
 =?iso-8859-1?Q?VbO0P7Tsci+pLv+IPAX/giYZ0Mdh56Ja9dx7oHX7DrpQZsaZ0sonExKZdf?=
 =?iso-8859-1?Q?cJ3LnVR3Z3R3XsCq1iavYpaQ0ZpBN/86jyMdAnEfyAJiTWATklEW1K/sYZ?=
 =?iso-8859-1?Q?4gRxhen4CdtCT1WCvZ2H8pMhDlnMCEZ6rHCmSClLGE6ArBpkTi2nK+DDSv?=
 =?iso-8859-1?Q?ObMp5R6b7og8lKkG0gLkkg6l/iE8FfvatcS070D19xqTNGeOG4X0YOawIL?=
 =?iso-8859-1?Q?zztfgC+euVvmDkjz2rKmTpChfFmOslRSifegEKMHtk9qPWVd+y1b4OrHec?=
 =?iso-8859-1?Q?RBLvOdADK1lGBIVbh0Oc7ikkd7kelOXKak4qwqsi6Gu7QHLpdiMSbCrKtf?=
 =?iso-8859-1?Q?itd0Yi7YEisT9WBXbMA6Y5rSkKeyhOog4sjPYEcJuNyfV0JRcN29qqybhR?=
 =?iso-8859-1?Q?qAAb8E22hk2y1eq8vJ2P9A3br41t+VTEfahJwHUrqUw61WspKImNBqlnfN?=
 =?iso-8859-1?Q?hPffIftr7wyFhr2wdB3LRXY1xG3Ubz81adrw0iMampB8e3IAcpAIWbinkd?=
 =?iso-8859-1?Q?jvMa5t9V4tcHU/r8xAl6y1dYgFNQtLi3ofzsFV82I4MKWX8cWzVEJJy01R?=
 =?iso-8859-1?Q?vA6Xvl+75oSlbiwpwiUpVsyq5950cbz2F3FSbENc5/YP4C0ZC73Vhpi2O/?=
 =?iso-8859-1?Q?Bg6mS4PEi1JOgKba5RPR0+qo1JaH52CHntgZ9ilzFEYi7WlR1O0o8hsJIw?=
 =?iso-8859-1?Q?Ba9nEsaTW2ItgIoxmBO3nvnVyOy7kerujRSTVuTF+BgE5O2tLYQAetRPXj?=
 =?iso-8859-1?Q?ZFQzdAtTD6BUUA1zdivBtiJebWaMw9zwRAPLiiQ+A80sW2Hyj5rc7wI6Fx?=
 =?iso-8859-1?Q?qs9cR36EBscVyUJRMORi0LxqwunYWQXtR9XsQS1amE7cDtA3q8WU6FNrVu?=
 =?iso-8859-1?Q?nVEktLcORcJo5D2NSo3d3oJIVG+xYlYqDGaPA9yrwOBE/LPqE94z18fzYY?=
 =?iso-8859-1?Q?q+FwVeBj4LEkx4+S0Qkdr7O+G1mwF50DOPnml/PIFEDV9d28ZXhtfgD31F?=
 =?iso-8859-1?Q?gHZopWzTt4JvF4I7Zjumf8cRMxrJ9ZXDMhbk+ivZ5lGDrQ5mUUFFWz+yFQ?=
 =?iso-8859-1?Q?PKvnAfL3Puco0JBog04GWhFqcbIrzJ3uQ0PXnTQba+jEPvGR3je/69GDcX?=
 =?iso-8859-1?Q?Aae8U26XMmvxLm4R9DaOwxNZgv1GtV7DU3RUQCTpw2Wf1ZNM+0kLE7Oxpe?=
 =?iso-8859-1?Q?QiW5/fKOF8aYO35jsiaCgBLs6Q2bOXKz6pg4ZyLAn1CK5V8fAJmDy3XKlR?=
 =?iso-8859-1?Q?1C09onERiES3HwCrZ8K9oYIOg8geV5DC378OOKWSvb/Ife840gmrRi96Sp?=
 =?iso-8859-1?Q?zEHAgkZzhZ+JG5yGuU3Sjt6FQl9LrMgXhFt/9MLSYhKFs6bCQEqJBCddtN?=
 =?iso-8859-1?Q?E10s5eDPCnXW1mlkmEGl+D0ynkbflHwSq6QONX7HNsmWhORtv84391vtLl?=
 =?iso-8859-1?Q?brOVKbjjBtt7jRLFuxEB4z3H5NXgmKWm3truweuolBcw=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?UoBdPHGJM9G6NyFvE2IinF5ZFwf13gOnddbuFagXw5CmxmxZkEvhMVSC8U?=
 =?iso-8859-1?Q?p7m8kMzt0nmRmqBj3BXexhFdUvvxw5r9Sh5mFsoA3onxej1qaQHqjKeXgf?=
 =?iso-8859-1?Q?pa95qN0doPXtw9uGBZflPqLxZnb7OwpQFlR1rW4hlotpvGgn/gOmx6tYa7?=
 =?iso-8859-1?Q?9mInU1BSKDe5Z0q9VKNFJO+CzT1ZWxfw0GTDRO2T+pSC2hWS6m6myfKnjQ?=
 =?iso-8859-1?Q?SYvboIHlAdZ0tQOLvJbFX4yaPRrK+8Y/fOpLWUXbNT/H/J8aiH6+ZTmTHr?=
 =?iso-8859-1?Q?S0kyD4eYi6mAMGft8wt6vuTRWCV89iJowITgNccgElY0PmepEc5Nu6/aC5?=
 =?iso-8859-1?Q?7yTBrqv535doMFE1m7eVlAsM3WvFTA8R+8d6OiKVK6yu4/QdChX36m8tnt?=
 =?iso-8859-1?Q?kd0uEglBAyFaIhrOek4n/OIJiHZVhwRJ/HyGOQXQrupL1+f3lsaLUgJe9K?=
 =?iso-8859-1?Q?/fRHZHeFGmAmuA03ZavHlRbJS5TxyusxUR5BQLEz3ROH1zwhNAPs/Lnf1j?=
 =?iso-8859-1?Q?ivWvJRKM1u58pm6Lm/NXWRMj0b8cKWxgUFMKhoVZ8i0aZLq2Jr8sG96JK/?=
 =?iso-8859-1?Q?58YSi5cT1EFrFhd4pZucZ1YtobkGe00QurVI+hVZsEdJYExCLi99gxUEHm?=
 =?iso-8859-1?Q?ospZ3AmkTXJYI+7/sRc/OPTGjSR6k7GVyCp/Z9aQB7UqJw0p63O3j7xMif?=
 =?iso-8859-1?Q?YszWWJ76PkiTG0jtm0HfT714JmENH1uXX/S0DHD0XIlBQG/ISbapQrgZj2?=
 =?iso-8859-1?Q?9Iv9T5Q3nuoKD6kwTDuS+6Lh6ktisKNMvXeapGD5mZKuK2UGLNcTEO2FZa?=
 =?iso-8859-1?Q?arHddP9hoe07dyiS+9KOxaj5+KDCimaMQwZlcRNwb2NfmIiYOzW72MEFCi?=
 =?iso-8859-1?Q?C/FjoU0G+3CYeXF+RDuq5n4jEiNpPwP3ghWk3KMB/w085TljSyfrhO/wbz?=
 =?iso-8859-1?Q?ivfD3DnEIPMiFxyj7SZAIHj6FBSg7/E6gm4PR0A/JDwZ8gv2uNmGcObywq?=
 =?iso-8859-1?Q?fT0jebTtwZ525gSra5LGoPbzimwV2DHh23mVHBUGMA2EhyFxiq6LOGeHJQ?=
 =?iso-8859-1?Q?SqB0nP2pt8PTXoMRd+VTivR8HyVFcyKCDPF6dDYpInwGQ9eLp2ESJxnnbO?=
 =?iso-8859-1?Q?h4qlBrt1oc7SmveR/0f/ndlYsY9JGSSjE2rUcVcAB/5GBPUF/yrAbQ6QQR?=
 =?iso-8859-1?Q?Xkaim1lmIUiqPbKLNQfB01ek9sUY+1/nHx+gIYSzSg1tRLyt7+RUyn3fJZ?=
 =?iso-8859-1?Q?B+Yug6X4DrliloFs4Sfvyzq/MR7mCb694PLCVcM4MkdGxa4alb+0g8Ty5f?=
 =?iso-8859-1?Q?WCGge9OYotrgeu7BdtEyFapaF7JezPFZUJrsavdM46v+Ghe1zKUqDTfYYf?=
 =?iso-8859-1?Q?4MfqCnbXlDgQ6ylJ/VfbYXEsOzy0sVzGgf8J55R/UszkuG9fD2tETjBjIC?=
 =?iso-8859-1?Q?bVLOgq24wJsli4m9wusw4UHNScQAaQIKhKryCexcqyNRY6lN/1vvaYAJZ1?=
 =?iso-8859-1?Q?Evvwf5RQHUchm/A+D+YsqPklsRQmFMLgLIpqbhV2scRqbokIh8ONos6CDB?=
 =?iso-8859-1?Q?FuJL4XsYAbYZPWBqoRweXBb15oGld0X0lHjt9SkBudJA81eGtOus5mCtKS?=
 =?iso-8859-1?Q?oq2ZxZsPUuSDSRYqf/QuJZev0V9DQ/EcGP4z2H6ZhUvR2z9v1PXgF6s0DM?=
 =?iso-8859-1?Q?RDuR6c+pe+vAZFle2co=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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: bc26998e-9a49-42e4-dbe3-08dde596e560
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Aug 2025 18:24:01.2602
 (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: IMiHFohBLdcb/BzA3kJmKfNQ/5MOfrH1YgBBVlEwv/sCZFhUo7biz6Dqdx798LM329C8beFIrdk0VXCcMfs0PrHRy++oYh0lOhJgjn/1040=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MRWPR03MB11023

Currently, many common functions perform the same operations to calculate
GIC register addresses. This patch consolidates the similar code into
a separate helper function to improve maintainability and reduce duplicatio=
n.
This refactoring also simplifies the implementation of eSPI support in futu=
re
changes.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

---
Changes in V4:
- no changes

Changes in V3:
- changed panic() in get_addr_by_offset() to printing warning and
  ASSERT_UNREACHABLE()
- added verification of return pointer from get_addr_by_offset() in the
  callers
- moved invocation of get_addr_by_offset() from spinlock guards, since
  it is not necessarry
- added RB from Volodymyr Babchuk

Changes in V2:
- no changes
---
 xen/arch/arm/gic-v3.c          | 114 +++++++++++++++++++++++----------
 xen/arch/arm/include/asm/irq.h |   1 +
 2 files changed, 81 insertions(+), 34 deletions(-)

diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
index cd3e1acf79..a959fefebe 100644
--- a/xen/arch/arm/gic-v3.c
+++ b/xen/arch/arm/gic-v3.c
@@ -445,17 +445,67 @@ static void gicv3_dump_state(const struct vcpu *v)
     }
 }
=20
+static void __iomem *get_addr_by_offset(struct irq_desc *irqd, u32 offset)
+{
+    switch ( irqd->irq )
+    {
+    case 0 ... (NR_GIC_LOCAL_IRQS - 1):
+        switch ( offset )
+        {
+        case GICD_ISENABLER:
+        case GICD_ICENABLER:
+        case GICD_ISPENDR:
+        case GICD_ICPENDR:
+        case GICD_ISACTIVER:
+        case GICD_ICACTIVER:
+            return (GICD_RDIST_SGI_BASE + offset);
+        case GICD_ICFGR:
+            return (GICD_RDIST_SGI_BASE + GICR_ICFGR1);
+        case GICD_IPRIORITYR:
+            return (GICD_RDIST_SGI_BASE + GICR_IPRIORITYR0 + irqd->irq);
+        default:
+            break;
+        }
+    case NR_GIC_LOCAL_IRQS ... SPI_MAX_INTID:
+        switch ( offset )
+        {
+        case GICD_ISENABLER:
+        case GICD_ICENABLER:
+        case GICD_ISPENDR:
+        case GICD_ICPENDR:
+        case GICD_ISACTIVER:
+        case GICD_ICACTIVER:
+            return (GICD + offset + (irqd->irq / 32) * 4);
+        case GICD_ICFGR:
+            return (GICD + GICD_ICFGR + (irqd->irq / 16) * 4);
+        case GICD_IROUTER:
+            return (GICD + GICD_IROUTER + irqd->irq * 8);
+        case GICD_IPRIORITYR:
+            return (GICD + GICD_IPRIORITYR + irqd->irq);
+        default:
+            break;
+        }
+    default:
+        break;
+    }
+
+    /* Something went wrong, we shouldn't be able to reach here */
+    printk(XENLOG_WARNING "GICv3: WARNING: Invalid offset 0x%x for IRQ#%d"=
,
+           offset, irqd->irq);
+    ASSERT_UNREACHABLE();
+
+    return NULL;
+}
+
 static void gicv3_poke_irq(struct irq_desc *irqd, u32 offset, bool wait_fo=
r_rwp)
 {
     u32 mask =3D 1U << (irqd->irq % 32);
-    void __iomem *base;
+    void __iomem *addr =3D get_addr_by_offset(irqd, offset);
=20
-    if ( irqd->irq < NR_GIC_LOCAL_IRQS )
-        base =3D GICD_RDIST_SGI_BASE;
-    else
-        base =3D GICD;
+    if ( addr =3D=3D NULL )
+        return;
=20
-    writel_relaxed(mask, base + offset + (irqd->irq / 32) * 4);
+    writel_relaxed(mask, addr);
=20
     if ( wait_for_rwp )
         gicv3_wait_for_rwp(irqd->irq);
@@ -463,15 +513,12 @@ static void gicv3_poke_irq(struct irq_desc *irqd, u32=
 offset, bool wait_for_rwp)
=20
 static bool gicv3_peek_irq(struct irq_desc *irqd, u32 offset)
 {
-    void __iomem *base;
-    unsigned int irq =3D irqd->irq;
+    void __iomem *addr =3D get_addr_by_offset(irqd, offset);
=20
-    if ( irq >=3D NR_GIC_LOCAL_IRQS)
-        base =3D GICD + (irq / 32) * 4;
-    else
-        base =3D GICD_RDIST_SGI_BASE;
+    if ( addr =3D=3D NULL )
+        return false;
=20
-    return !!(readl(base + offset) & (1U << (irq % 32)));
+    return !!(readl(addr) & (1U << (irqd->irq % 32)));
 }
=20
 static void gicv3_unmask_irq(struct irq_desc *irqd)
@@ -558,30 +605,28 @@ static inline uint64_t gicv3_mpidr_to_affinity(int cp=
u)
 static void gicv3_set_irq_type(struct irq_desc *desc, unsigned int type)
 {
     uint32_t cfg, actual, edgebit;
-    void __iomem *base;
-    unsigned int irq =3D desc->irq;
+    void __iomem *addr;
=20
     /* SGI's are always edge-triggered not need to call GICD_ICFGR0 */
-    ASSERT(irq >=3D NR_GIC_SGI);
+    ASSERT(desc->irq >=3D NR_GIC_SGI);
=20
-    spin_lock(&gicv3.lock);
+    addr =3D get_addr_by_offset(desc, GICD_ICFGR);
+    if ( addr =3D=3D NULL )
+        return;
=20
-    if ( irq >=3D NR_GIC_LOCAL_IRQS)
-        base =3D GICD + GICD_ICFGR + (irq / 16) * 4;
-    else
-        base =3D GICD_RDIST_SGI_BASE + GICR_ICFGR1;
+    spin_lock(&gicv3.lock);
=20
-    cfg =3D readl_relaxed(base);
+    cfg =3D readl_relaxed(addr);
=20
-    edgebit =3D 2u << (2 * (irq % 16));
+    edgebit =3D 2u << (2 * (desc->irq % 16));
     if ( type & IRQ_TYPE_LEVEL_MASK )
         cfg &=3D ~edgebit;
     else if ( type & IRQ_TYPE_EDGE_BOTH )
         cfg |=3D edgebit;
=20
-    writel_relaxed(cfg, base);
+    writel_relaxed(cfg, addr);
=20
-    actual =3D readl_relaxed(base);
+    actual =3D readl_relaxed(addr);
     if ( ( cfg & edgebit ) ^ ( actual & edgebit ) )
     {
         printk(XENLOG_WARNING "GICv3: WARNING: "
@@ -600,16 +645,13 @@ static void gicv3_set_irq_type(struct irq_desc *desc,=
 unsigned int type)
 static void gicv3_set_irq_priority(struct irq_desc *desc,
                                    unsigned int priority)
 {
-    unsigned int irq =3D desc->irq;
+    void __iomem *addr =3D get_addr_by_offset(desc, GICD_IPRIORITYR);
=20
-    spin_lock(&gicv3.lock);
-
-    /* Set priority */
-    if ( irq < NR_GIC_LOCAL_IRQS )
-        writeb_relaxed(priority, GICD_RDIST_SGI_BASE + GICR_IPRIORITYR0 + =
irq);
-    else
-        writeb_relaxed(priority, GICD + GICD_IPRIORITYR + irq);
+    if ( addr =3D=3D NULL )
+        return;
=20
+    spin_lock(&gicv3.lock);
+    writeb_relaxed(priority, addr);
     spin_unlock(&gicv3.lock);
 }
=20
@@ -1273,6 +1315,10 @@ static void gicv3_irq_set_affinity(struct irq_desc *=
desc, const cpumask_t *mask)
 {
     unsigned int cpu;
     uint64_t affinity;
+    void __iomem *addr =3D get_addr_by_offset(desc, GICD_IROUTER);
+
+    if ( addr =3D=3D NULL )
+        return;
=20
     ASSERT(!cpumask_empty(mask));
=20
@@ -1284,7 +1330,7 @@ static void gicv3_irq_set_affinity(struct irq_desc *d=
esc, const cpumask_t *mask)
     affinity &=3D ~GICD_IROUTER_SPI_MODE_ANY;
=20
     if ( desc->irq >=3D NR_GIC_LOCAL_IRQS )
-        writeq_relaxed_non_atomic(affinity, (GICD + GICD_IROUTER + desc->i=
rq * 8));
+        writeq_relaxed_non_atomic(affinity, addr);
=20
     spin_unlock(&gicv3.lock);
 }
diff --git a/xen/arch/arm/include/asm/irq.h b/xen/arch/arm/include/asm/irq.=
h
index fce7e42a33..5bc6475eb4 100644
--- a/xen/arch/arm/include/asm/irq.h
+++ b/xen/arch/arm/include/asm/irq.h
@@ -29,6 +29,7 @@ struct arch_irq_desc {
  */
 #define NR_IRQS		1024
=20
+#define SPI_MAX_INTID   1019
 #define LPI_OFFSET      8192
=20
 /* LPIs are always numbered starting at 8192, so 0 is a good invalid case.=
 */
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 18:24:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 18:24:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096717.1451337 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urKob-0007FW-5x; Wed, 27 Aug 2025 18:24:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096717.1451337; Wed, 27 Aug 2025 18:24:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urKob-0007FP-2a; Wed, 27 Aug 2025 18:24:09 +0000
Received: by outflank-mailman (input) for mailman id 1096717;
 Wed, 27 Aug 2025 18:24:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=x+iP=3H=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1urKoa-000703-0r
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 18:24:08 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 04a6d8a6-8373-11f0-aeb2-fb57b961d000;
 Wed, 27 Aug 2025 20:24:07 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by MRWPR03MB11023.eurprd03.prod.outlook.com (2603:10a6:501:76::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.15; Wed, 27 Aug
 2025 18:24:05 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Wed, 27 Aug 2025
 18:24:04 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 04a6d8a6-8373-11f0-aeb2-fb57b961d000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=KeNXKJ/tbWnWTIE9S5rZH44sZY4iy7k+0TFW0KeJm6/2IYLIeKownRU7I05jI251/lf8UsdwmK9tkBfCaoX5KMn9/77glp50JsaJhXap2x3849gD7Bz0qLAl+Gpa3qrdHZPjis4Av3/ha0wxH9rPlR/3z+VI4WHlO9z+i03FP0iZYQH2oXLrV6/hhUg+sGkE/oYuXqTt0hva35cn67ecE0V+kuAswCWvqA0Gi7Bj7LoDrXRNtxnFsfRsH70DiHYasbZKCLY0GM9ICoTbUf8l/jqn9V1xIN4awG42eXlbaebS1Zn2+YHetVU2E4BJxvoC7UXJEVNlPUwen9mw+xqdeA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=nz65tM7PzKVphk+yYvuSYrGmPb7ybjDiWD2dFYW8W1k=;
 b=wPipBqCziiwKz0e6y6E/sFTpLX+PWFiDhtQ2dmlc1J5a/6ULhGLzEMBG3+3sgnum0z4ac3YYnF3985JAU9snCMvbfeetCAyZ/17pw/FsupyACK1t97elYKpT/D5B5F1p6MNxB99GiH+D/L1rOuVSSoJNeepPHCLz1YTujBkfw7iY8YgUgyNOOVhWLji6mAzbNFsry0bkRm/a0HFhcsUAOPsCb39jDwqC5/07CQ/1bNB7WW8sphngdV4a4vTJEoFYICb5b4ro9fZg5X+nlcPktJ8Fh46Ca1mCgIxsA++5mACbgO3hp4H6UQ5zzTCzRaV9xPK2F8e5AUFZiLOyjmkxMg==
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=nz65tM7PzKVphk+yYvuSYrGmPb7ybjDiWD2dFYW8W1k=;
 b=XormrpYkXoBegam7HdPaO3BBxkuhxvryawJGnKRbk2SW3Xzcz4gpHqWOERftixJfFzuc5dbCCpVqT/Ly1LitMuRZpTiW8MDJnIZoPmZlYVIhcePvCFzwJB33ZuY1C3nF0ZFqmF1eNUAOBGOWi1/z4vEQlwAMVpVcIBs/G3fh5jFzTNOQHWcQNEtw2NSfDVGfJfZk4uUnf5akEL7/i+TF+Oa/QPrSpuFqU5CwunfvkoBP+bqrM6ka8mDOwPowIyOEdPVTn2uhN6rHB9CgjQf6qAeSB99IFFctTPZkCJ/+WvsBVbnWZ+S0wpnefgFSVAsg5P16lbTJVjZdtRiRUbgXiA==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "olekstysh@gmail.com" <olekstysh@gmail.com>, Leonid Komarianskyi
	<Leonid_Komarianskyi@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>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v4 02/12] xen/arm: gic: implement helper functions for INTID
 checks
Thread-Topic: [PATCH v4 02/12] xen/arm: gic: implement helper functions for
 INTID checks
Thread-Index: AQHcF3/Ff+oSmGvjakq9bpLMhjgPlA==
Date: Wed, 27 Aug 2025 18:24:04 +0000
Message-ID:
 <684757e6710826200bcc153e4c711b27483ee796.1756317702.git.leonid_komarianskyi@epam.com>
References: <cover.1756317702.git.leonid_komarianskyi@epam.com>
In-Reply-To: <cover.1756317702.git.leonid_komarianskyi@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: GV2PR03MB8678:EE_|MRWPR03MB11023:EE_
x-ms-office365-filtering-correlation-id: eaac357a-d390-435a-73e3-08dde596e780
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?9GyHdcO3HZ6qjOaW6G5Rj3cXJ5qEEOJ80D6077LR+JUxGECgWLLgvyBhYp?=
 =?iso-8859-1?Q?IOzXBsJ8bIjHb2uFb5GCl7DbGsimR0QVKV61yt98rpBJgBETCcXFs9Svw/?=
 =?iso-8859-1?Q?jhyzPMg33I2Lnl3umN0lf7qdwT6Cm/GRWDxe3Jel68ku1YVWq6gMPRqptM?=
 =?iso-8859-1?Q?xV1z7333sdnzhdlUdZoADLLRGU45jfA1HzNWH2MRdvKCePiR6naj5K0gum?=
 =?iso-8859-1?Q?IbUZa6+4P7k3139f8iIsv/+he/V+QBQZJiXhR3k4oKP6XEQK1uugx1GlQn?=
 =?iso-8859-1?Q?3qcP7fCrzHKKBOMgkx52mR1SV9Moj56ijQ4vrRQeeuB0GoriYVFTVfMb/c?=
 =?iso-8859-1?Q?GhVgWb1CQNITwIt/NJt6IBx1DuwNMQYc3+IJX1sHxglDEknhx1oLw5mFob?=
 =?iso-8859-1?Q?d5Vo3gwYO8i1ASptHyI4zkd2oy8UbAXIcgUSQkv+0918N6j2z2vrNjNGba?=
 =?iso-8859-1?Q?zaUkUQ3mxH01RMo6nDFYAPtcPhzmZAtsO3FjLH0N/wqF4iNwPMbyfwTosE?=
 =?iso-8859-1?Q?IYT/ME+WQEUd88Jkuf9+QhpR48mooL+EWVZWHvfAtYYQrRt/Ixfg/3oX14?=
 =?iso-8859-1?Q?oSy9aNjlS/xIX3ZF4vDuxhpU9l12ddINY6uYY4feozCjTDhxdM8wLpN6mT?=
 =?iso-8859-1?Q?4EZhgkauVpEMmi6/zpw1Fl7j0Hi4L+RRsQ3+wVNP3TSRFNLHX1VrLxFCBP?=
 =?iso-8859-1?Q?VzFtOPMllaC9N2ZsoexVxgFStLOS61+sLLc93Hlwm6ndlKbGP2ffEp21RU?=
 =?iso-8859-1?Q?neXCK4Ugwzb/2SxnKLpXTTjQCd7Sy8jFDO7InXiN5fHjssPrgBvGFmJKN9?=
 =?iso-8859-1?Q?fuKj7TEdfsq41IQ1QjP9dpBNiVbl8mHr6jB/p05lvnCCsF441KzSidgnFx?=
 =?iso-8859-1?Q?RIRzcBkXnatTwZ4lomrDY1QpQ55ZIvZz8URDL29ibIaDhgrxGOgpTCKrDM?=
 =?iso-8859-1?Q?iWpuu3iVC9dy5VZGhCiQpLWje43jY62hvDj57+HLgP8boVyxSAQLGI5kqj?=
 =?iso-8859-1?Q?jmK2OovUWIufrauGELy6Px0SGiUFb1FsDsS5nIzzMb18HXcf5v7p2sNQFP?=
 =?iso-8859-1?Q?xawuPSoOqQYWHWCHRGjfTnkxvWpbIIb0C9hKvoZFV1VbH+XgTRbVctgZ1k?=
 =?iso-8859-1?Q?lT1AriimOJgI4qenKUyUmGUTs9Xt4dKde29pbo3HVXg5DLqyg4VzKd2/L+?=
 =?iso-8859-1?Q?di2yIxYK+sd1+6BdBymrr99Ppq10m5gC+WMd75Ar8xC08VsdUSzcyr2DZh?=
 =?iso-8859-1?Q?sARZllRboZCaKiVKW88brRl3BrNmFU9c6qBcFblIhkMoLpixQwfV3F9rCa?=
 =?iso-8859-1?Q?MGEq7hQe0VsvJJTB0WtUqQOfsvM14uMSVEW3VVkQa+fOY0CPDljLiKOoD5?=
 =?iso-8859-1?Q?LO8iwGWEufy2fGtAoJ575bNJ4Bnwc2eMusIA8i7V4clu69XMSd1dHryJQa?=
 =?iso-8859-1?Q?r8Ffd25PEEMkHI9NtI9XuOhvahBNzwCutZ96gWCJX9eKmMK3f6yCTe7JYy?=
 =?iso-8859-1?Q?T0qFh366mD5KC0zWST//nS+jcvnf65BFdCgjZ2T1kPG8lPAsmPObFFANvq?=
 =?iso-8859-1?Q?v71k8kw=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?uENEI1RyGp57m4dsnVCiOcjGaWPK0BTGeWjB1qTTjFXMwvJx97QmcZtEm2?=
 =?iso-8859-1?Q?rzJrGdR/9X8q0Mij7gA04PkmiA5eAzKNRW8fiJQ9IFPhc2VtnC965+5L3+?=
 =?iso-8859-1?Q?DDVz0OrsldvfjIrxaRWZswZ5zLESa5xnITEsLUssQcemI3XLWBlu66wPDj?=
 =?iso-8859-1?Q?VZndB3+EQjm6lh8bPhS7DlNk2//hnMMLxAIMPhzBeclsldRx8ZdRYanXCN?=
 =?iso-8859-1?Q?IiOzoP1lXa191tuR2MMFKZKAegQKwBc6KUxMFlc+gAyWJlltLZ/mZ/b6BI?=
 =?iso-8859-1?Q?dJPcSAMrZCFjClN1g2bxKs7zqJ9v0uzs3mqVbeav0a9IFFciY2AhDX6K4v?=
 =?iso-8859-1?Q?syhHKO8fj7a1AY1PkEoWH3GrsQXVSypNWI5/ULzCim8kjyh3fvzYBs4WyS?=
 =?iso-8859-1?Q?e6uxkeCOfA49Z9KQWGeBSUxcscAcM6e4OqJAiQaKjDhII7waHNVheRj3V3?=
 =?iso-8859-1?Q?kWnmrqaFLqe1sy+BAoMmiY/YAVyx6ccszTOS6kQwRqDN8tEGBcE8OyvFtR?=
 =?iso-8859-1?Q?w2UfMyPDF8ut9HWt8xc40O0goyGjFJdvgAsAbjNtVvo9C8uQid7q0Qcevp?=
 =?iso-8859-1?Q?J17LIifBtSUyhrDmjC/8rG9e6mEuy3UOn3493dN5f0gwQswYI9QakglNld?=
 =?iso-8859-1?Q?0W4RmvU5PUueTSYUDdianAK15vPsXet2cRVAerxvODPZYjUk9bksH7olKU?=
 =?iso-8859-1?Q?L1z8kOrYth2rKiabv2QvIzAYz3VOz+M5CryWQkoS219f9lEV7GGioaM5IM?=
 =?iso-8859-1?Q?Xxw1VfIMgu92L+l0zdRLzeJmL+VoU2+9rlmDb7Y3uJkd3zqad4wS/ifTBV?=
 =?iso-8859-1?Q?my+2d+0MCwnrr3KkRSyF1lKBORXcpyRzZ3/Xao5ZO7ev4uvoIQggzhR8js?=
 =?iso-8859-1?Q?CINJvf+srP8Fk7RI7md3YK9qKiIkJ42czeih67MQsM1ZLfI4IA/omF7T/z?=
 =?iso-8859-1?Q?iIxKeMUSekG4FTM80e2HogZoaGouRgp0MNDahByKmqIIBhpXuX2bZ9xD/T?=
 =?iso-8859-1?Q?nl6wiXgtHK7Xr+1wvlXQ7jg7ssJrxmRc57POJpHRuGGIduQOSYaZIxTUv9?=
 =?iso-8859-1?Q?z+rqUccC3eFfkk0WKLjZvnqlUE5k72JXh/QpNouglIFhCpJxa6jJpnOW34?=
 =?iso-8859-1?Q?OJccq7FuBQa4X23WMafRQB/qlf5vRR9zvOS/W5dPSsxSbqQdsehr7zin+/?=
 =?iso-8859-1?Q?7mdkRGBdixuWGmUhq4DftJ1iYnZ52OlZZKl2KFqJEEM7/04n27IH5+cZ7u?=
 =?iso-8859-1?Q?hI61XVeQqtqVm0dexVf9zSuT4iQSh/X+QidPLjwTrSB3bDNo4OmEMoHrB0?=
 =?iso-8859-1?Q?h2raY7zy3JBzTDsWHiX02bYoTsMQdmPsR6987LvdwAtRT7iYFAPqOPChBP?=
 =?iso-8859-1?Q?AQhm45T6SKnXyev/qdCboKceYBiUBnqwhV/tuVAt+l5K0V/eomWr14eQK3?=
 =?iso-8859-1?Q?z2tgEFaDENMqOUZWi0A6mJoxZA1/G4IiXbMwA/O59nyQ0BKPcwKPu+7NFp?=
 =?iso-8859-1?Q?RJDGU5tuJmiP0wtaSp36wqryIokDgYdL5IEnYm/cStia21erodIXBv5e7m?=
 =?iso-8859-1?Q?dxiMP+NAXo1oLuvbLJGTDfcoWapurLNizV6MAMPbB8uPAkB1OKG5I1RX6w?=
 =?iso-8859-1?Q?O9rwk6yGgTZxvmN4iw4GXYXtcqbf7LRIvicBrJMwAFakW428nAFiGXpBgs?=
 =?iso-8859-1?Q?hvDUHzftIbxkPgzWjMc=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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: eaac357a-d390-435a-73e3-08dde596e780
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Aug 2025 18:24:04.8189
 (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: euKlBioGLFcaZ1wU1FJ5LsTvrb74thoHCGhsYnCQcmiM7caNbN2EHABYnFom7sxL/s5EggxLJsMfjZaEcflQSJha2UdFFLaa79dT15EedOM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MRWPR03MB11023

Introduced two new helper functions: gic_is_valid_line and
gic_is_spi. The first function helps determine whether an IRQ
number is less than the number of lines supported by hardware. The
second function additionally checks if the IRQ number falls within the
SPI range. Also, updated the appropriate checks to use these new helper
functions.

The current checks for the real GIC are very similar to those for the
vGIC but serve a different purpose. For GIC-related code, the interrupt
numbers should be validated based on whether the hardware can operate
with such interrupts. On the other hand, for the vGIC, the indexes must
also be verified to ensure they are available for a specific domain. The
first reason for introducing these helper functions is to avoid
potential confusion with vGIC-related checks. The second reason is to
consolidate similar code into separate functions, which can be more
easily extended by additional conditions, e.g., when implementing
extended SPI interrupts.

The changes, which replace open-coded checks with the use of the new
helper functions, do not introduce any functional changes, as the helper
functions follow the current IRQ index verification logic.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

---
Changes in V4:
- removed redundant parentheses
- added reviewed-by from Volodymyr Babchuk

Changes in V3:
- renamed gic_is_valid_irq to gic_is_valid_line and gic_is_shared_irq to
  gic_is_spi
- updated commit message

Changes in V2:
- introduced this patch

Changes for V4:

Changes in V4:
- removed redundant parentheses
- added reviewed-by from Volodymyr Babchuk
---
 xen/arch/arm/gic.c             | 2 +-
 xen/arch/arm/include/asm/gic.h | 9 +++++++++
 xen/arch/arm/irq.c             | 2 +-
 3 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
index e80fe0ca24..9220eef6ea 100644
--- a/xen/arch/arm/gic.c
+++ b/xen/arch/arm/gic.c
@@ -111,7 +111,7 @@ static void gic_set_irq_priority(struct irq_desc *desc,=
 unsigned int priority)
 void gic_route_irq_to_xen(struct irq_desc *desc, unsigned int priority)
 {
     ASSERT(priority <=3D 0xff);     /* Only 8 bits of priority */
-    ASSERT(desc->irq < gic_number_lines());/* Can't route interrupts that =
don't exist */
+    ASSERT(gic_is_valid_line(desc->irq));/* Can't route interrupts that do=
n't exist */
     ASSERT(test_bit(_IRQ_DISABLED, &desc->status));
     ASSERT(spin_is_locked(&desc->lock));
=20
diff --git a/xen/arch/arm/include/asm/gic.h b/xen/arch/arm/include/asm/gic.=
h
index 541f0eeb80..3fcee42675 100644
--- a/xen/arch/arm/include/asm/gic.h
+++ b/xen/arch/arm/include/asm/gic.h
@@ -306,6 +306,15 @@ extern void gic_dump_vgic_info(struct vcpu *v);
=20
 /* Number of interrupt lines */
 extern unsigned int gic_number_lines(void);
+static inline bool gic_is_valid_line(unsigned int irq)
+{
+    return irq < gic_number_lines();
+}
+
+static inline bool gic_is_spi(unsigned int irq)
+{
+    return irq >=3D NR_LOCAL_IRQS && gic_is_valid_line(irq);
+}
=20
 /* IRQ translation function for the device tree */
 int gic_irq_xlate(const u32 *intspec, unsigned int intsize,
diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
index 03fbb90c6c..7dd5a2a453 100644
--- a/xen/arch/arm/irq.c
+++ b/xen/arch/arm/irq.c
@@ -415,7 +415,7 @@ err:
 bool is_assignable_irq(unsigned int irq)
 {
     /* For now, we can only route SPIs to the guest */
-    return (irq >=3D NR_LOCAL_IRQS) && (irq < gic_number_lines());
+    return gic_is_spi(irq);
 }
=20
 /*
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 18:24:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 18:24:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096718.1451347 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urKod-0007XB-Je; Wed, 27 Aug 2025 18:24:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096718.1451347; Wed, 27 Aug 2025 18:24: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 1urKod-0007X0-Gd; Wed, 27 Aug 2025 18:24:11 +0000
Received: by outflank-mailman (input) for mailman id 1096718;
 Wed, 27 Aug 2025 18:24:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=x+iP=3H=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1urKoc-000703-JN
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 18:24:10 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0636dbd7-8373-11f0-aeb2-fb57b961d000;
 Wed, 27 Aug 2025 20:24:09 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by MRWPR03MB11023.eurprd03.prod.outlook.com (2603:10a6:501:76::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.15; Wed, 27 Aug
 2025 18:24:08 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Wed, 27 Aug 2025
 18:24: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>
X-Inumbo-ID: 0636dbd7-8373-11f0-aeb2-fb57b961d000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ICgT/toCM4iCFcbzr1UGtg6gTNptlI3QqCJNcsCIYGUH6BVVCoB8Xje+LoBi8G+bJW2q4egUMlxyWk88KV7ptExuJOGeDvG+Q22vXYfg1NqFrKHrD5aww+x9P3x5VBd71FhLQ83F9Ucq9+XTRiJtvDp93dXKwguRwD7yfNkAKhXJvLunnvJ6kruj+fDb/h1XXATjy4IDH4kRI1PFyqZnYiJrtt+9nVQAkMH7DzkpgeyaiycWryiOp2PYrmbHvg/s8FJIBtMzjwgTxrY6QnkehX4p04Z9BAuKrLJjU9YqCE/Qc+6vJ9Pk+a6WtusvQXebHm9Mg/VCjb3ojbo+ZqTCvA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=MHYfYbL55imOCCjjrRRn+AUcBXKR1hjc8iKikRGMauo=;
 b=HVDjHHJNLglbId77+ufkOurqYdSfYX6wL8xvVj4YQ9/yAWDegYkhn28TrCbFYrQLK3yN4afKTPfw3D3EDXMeH8tPZZXRSN0tKSFOQOeXJFfWRSftdr5qp0OjBd5WXipNr5jSlwU4wE/QpICxIsBQNbOLeUDe3Erhu07WN99Ohusv6+umG7bzNlkADInLlDdiu0BTX3yRnizJWY6kHujosJ4hXcm3pG0rWzVifR0aHYWS98CEAFKsSI2YDzUOskn2oZX7hu32cVieh5t6qpUtH4dTz29IyEA7WUXFIZ+wf02gAhsDuaBjI/lH5cxy5Z1tyCZSfxOKCcmJbeSrxrpa9g==
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=MHYfYbL55imOCCjjrRRn+AUcBXKR1hjc8iKikRGMauo=;
 b=pwfpQlcGgZypRuOZxeo0o0s3UNoB4Bm3EI/omSYr88x4skZ+0e2gfToaLWfBFMF4LmGO8OWyU5l5ZpMKx+CCBY+pXLbXQSK3Kks2tT8kZEh/7EaVomj6cP4xtF7MLOrAAV5xgZZCnBNOtzvyvCICfFMQOg2NPRFHpbkbZm8zxuPI9CrbMIJC0YMuq7sHjt96jXBl7C0UFxbj68SLZiwo8NWIqtJCjSVZJ3mNhL0vfKmGXu8RruewbXwX73CSQpTEuUQGQJB8aAAF4U7h+TonJT2D225YP5atjsQ8HV/HHmPDSifoj6PevSS+yt1LTB7642eaViz6njD1nyYlNg51VQ==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "olekstysh@gmail.com" <olekstysh@gmail.com>, Leonid Komarianskyi
	<Leonid_Komarianskyi@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 v4 03/12] xen/arm: vgic: implement helper functions for virq
 checks
Thread-Topic: [PATCH v4 03/12] xen/arm: vgic: implement helper functions for
 virq checks
Thread-Index: AQHcF3/Ha+nKa9jlz0+nkOWkY9CitQ==
Date: Wed, 27 Aug 2025 18:24:08 +0000
Message-ID:
 <65b148aea56b1a35fa061b0d8284584da97153a9.1756317702.git.leonid_komarianskyi@epam.com>
References: <cover.1756317702.git.leonid_komarianskyi@epam.com>
In-Reply-To: <cover.1756317702.git.leonid_komarianskyi@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: GV2PR03MB8678:EE_|MRWPR03MB11023:EE_
x-ms-office365-filtering-correlation-id: 54844cb9-4a9b-4ee8-e3f5-08dde596e9ab
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?m8qsv0+bp4QF46g/0g5vYODFL3aFdttb3iGJsaj6oqZuj9DxKSoyqkHba2?=
 =?iso-8859-1?Q?N6ZoHZLjQIqQtu47F9xUT+Jr9oLbBulxwhvFt2PZaF8j/KQ2nPWdITEzqk?=
 =?iso-8859-1?Q?UpePgZ4FDt9owvmPJUwvX3ms2rYqIIDo0kyUvoycvevZ1QGBA6h944DJyx?=
 =?iso-8859-1?Q?MYpWxgQPatqDf97/3dyrbypgzvGKQS1yWlS473a9oOZ9+LDVkSzQAXt3sP?=
 =?iso-8859-1?Q?w7TDlhtp4FwbwqPYrkkbBIsd0oEQye17smE07WDYyI1m/93GcfB4qho+k9?=
 =?iso-8859-1?Q?kLj2THa00Wh6ZNxnfdecZ7f9HU08DKtbDHuRmnZTT3dCiOLUIgIkAgPjrn?=
 =?iso-8859-1?Q?+FJOW3afIIjJAW4qhsZx2Yxa/B38ePZ/jK6Pq5OK7yzibt+QXjRcZNgotX?=
 =?iso-8859-1?Q?pbBtoJoq0NF4T2gPvEMNm5S9w5OHV6maTFe1tM6DH5G55t83HwSSRixRJz?=
 =?iso-8859-1?Q?0oKx8p0N8kLTNQb8rEsmXks7i4J/98Zzw+j89P3J3nLNIJ6x9FHGPTB9+H?=
 =?iso-8859-1?Q?BcPMJozEeJGPGdSBgufl7owqf4XAYFvCJTfl4B1eISPVZHbk4RBSwshvEp?=
 =?iso-8859-1?Q?wZaOor0VeiuA1z8Lk4+dLyt3oV3kQXwjnl3QkP8+IG85hYL1Ofu6W20uVy?=
 =?iso-8859-1?Q?s/jVYKFk9R2zSAEpG3txZLorlcbCwyqlRrHCxcEiNaxRD070+vlyKCIB2O?=
 =?iso-8859-1?Q?rZsxHt4VSaXY/Hjsc8rvuD8KsCS3GgdncFWzRq7SQQRq7JQ9lM9H3FNEM9?=
 =?iso-8859-1?Q?Eh61YyXomxzC702Y2dJMx0OiLu9ILbWMeivVDd+DgspmXn/VwIG7bhqDnf?=
 =?iso-8859-1?Q?visw12FdrhjhGGsKwRVcM+WoSnr76ro91vGKkYzIolhRQchjkhsOeHOUWj?=
 =?iso-8859-1?Q?cb/mu0VVkSF9ZpPXjgbiNT7DET4Fwc5nUU5QhYVtBeCpQ6UrY5a4J3scpY?=
 =?iso-8859-1?Q?td+7u17fepOEoe1fzOTjYqUymTlO7me8ltaDx9f4y7HZT9EkvWVcg7ofPq?=
 =?iso-8859-1?Q?BgG5UBvT38Sipcer4JYLq48Lh8FTFej8zWOmChktJT4uOhvB0Ys4BXFIy0?=
 =?iso-8859-1?Q?o/kLA2exYL2ppmzf3gIrelIu69wip9dF0UsQKJeBPx6DKB6bXvjQdciIE2?=
 =?iso-8859-1?Q?NoMhstX3SVfwGeikBknuDx6JIIgTi7lYWxkXvtDmO5vbfOyNX5y7t5ct6q?=
 =?iso-8859-1?Q?oJRef1IwG9ZjKDyRMZWPwYdRuF98FCO0X5zCpylwKIT/tJS420KCkAzy9t?=
 =?iso-8859-1?Q?U6JTb3ngyRI2MzHBEGhcpdq/oKqaQ8HyVWx+9WbrlEyzVdtG/As/2bCwwK?=
 =?iso-8859-1?Q?wUKhG/57TGjUCXoihNkuWnqrssXKzeWf6anGked8wSSH/UtAAc4XjEcEur?=
 =?iso-8859-1?Q?wMvwT0rSv2QbAdSOyZYybZcy+7xuzr7uV6z59Llup1ofGaqxarqUyK5BTl?=
 =?iso-8859-1?Q?Rcx0V7ym2NQJYf4vW/MRlTa/kO2JYSs4pXRWwuSc0Au+rIKpdvl2tJtymM?=
 =?iso-8859-1?Q?6KcdLXAPBHJxz0/kJXHN7Wj3t2zQFFKv6TqlMyZx1rR0CLDHEP+gIJ8hkS?=
 =?iso-8859-1?Q?m5OknaM=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?tXR7veJTUi4ZC9pRwfAdAE1kEYQ8ttHYMYkzdQauCPoC1iYxdgK+YCbtNb?=
 =?iso-8859-1?Q?rKiMsBF14YTs8INMkB43DkeBFFQSF/6OSNt7daziDIY0mnvw6JGxQ70BnY?=
 =?iso-8859-1?Q?2f665uO/TokIixY6B7Gvgo2B+PmTZ3MP9KaE0tezhED8H5wg3Q7VB5BJcI?=
 =?iso-8859-1?Q?zkRasEFHLl51KYwfeQfH/kuUv4ahhVtEK1RzrvIdNRvz/YzHna20G4TNNJ?=
 =?iso-8859-1?Q?iSCA56RhLBOxPamz2QxwAndd3eM7ZBmJn9vOhe/TXN/yRdixmubDzFnGT7?=
 =?iso-8859-1?Q?Jad2oNTAWGGu9AwCBaTqaS97x5wuhdVySLaO6lhvRV2iUM+PCre5EPAdzP?=
 =?iso-8859-1?Q?hrZzdxU1yTIXhunWBTuN5S5+871YmzNqA1PdVpEK7eBd8ptH0b3vOie8Lt?=
 =?iso-8859-1?Q?H6kzFtkapcndVIc5zD3Dh0bgQ9HnKAUNfv/PiOArZmfCFVPCwo6jUARClY?=
 =?iso-8859-1?Q?13AhtbGjKIfWQ43EsYHYH/mXfVGXaLra565s5VV7kpapciLXYPnRYvSr4N?=
 =?iso-8859-1?Q?+IzhMM6Mk0G8YOueimg5+hxo6iqpVKTfdH9WlpEgWTKFWQFbhiNhk90juu?=
 =?iso-8859-1?Q?Dtb5AEJNBdi11XETrGbasAhDda8vQ/J0IesDk02j4KiybVygI8jPahS5f6?=
 =?iso-8859-1?Q?gMx7GAZ23rXJJ7jumc5ZkHWYbhc6p8GurMj268Z8Qpm/1epMGxYq74dV46?=
 =?iso-8859-1?Q?iMWys44mZUe4z/6zfRhAv+ovnW5dM5v++fZHshId3XIiEFdyefX4vYMTxw?=
 =?iso-8859-1?Q?CZiHSX/zOcVNIhJlk4JWJc1e/yvpEjCf5XL9n00pTdvpfJkSB0UCqayyQj?=
 =?iso-8859-1?Q?CBGSPoaPK+wxbEaTNtBshqE0jKZTYky70jVdZV1pr+5hx6c96aU8BbNSC3?=
 =?iso-8859-1?Q?NXWaG9MybZFOXOCmreiDyI0wNfUCyM/An3aeOQ8/wCJ1sc2qhTxQPndDZm?=
 =?iso-8859-1?Q?ky4w71Xybb/87e2Sh9j1Xp5QAYWCmbopw7sO+7JgxRG1JKFZWycUT6xXmn?=
 =?iso-8859-1?Q?6y1YdOljwqj7QXZ4rLC+zWuCMEesAXtkPiu1jJDVlRTAF6dLRO8e1nzOdd?=
 =?iso-8859-1?Q?rx9J2+BA5IQTU+Zid2zEWzZWJATiG1R3nVLRnsHzoVwpB5fCi+hLP4jskU?=
 =?iso-8859-1?Q?POJ1hjv6dNlb31ulY/+sRzD1AqAD+VHjLVxM1wftN0nLfyw4/E6QdSNx1D?=
 =?iso-8859-1?Q?HQA/Y6np8fff+123aSwv8oqkAu2Ho/q9XyaallxM7u9dfWT1v9F95dCVMq?=
 =?iso-8859-1?Q?2E55AoeAAVvcAAzm73DeB+J6kJant6Psos2c5t5HNxkGfs8m/8QktMfMcC?=
 =?iso-8859-1?Q?6Kc7+IB1A5lpm/xY0yNUbFnkdu+forp34UAo1/9815NP6/PicABK1o5UuR?=
 =?iso-8859-1?Q?68/CjUfArKUVvHrq7l2PlexbCKVZBu1FuAWkvY7VuWsj2Q/VJhsMCII3x6?=
 =?iso-8859-1?Q?Jhb88ePDYMjDsTxy0glE8gMjlesrOMJ0I0FCv65twB3bJ37XDyMyd6ukOk?=
 =?iso-8859-1?Q?rCoQeau3naQBz+Y6aEj46jEKXlsVtJ9df7Y4LJZG5Ic+52dq5LSC6x8OKQ?=
 =?iso-8859-1?Q?suIx4zxOx6EIZiCcPvjY59tPdn+La6W1TmmYz25FpshHtUiCbUC64mGptD?=
 =?iso-8859-1?Q?v16ZiQ2pZczXg0qqXnrjvLK9wz57nP97WhA82KMAFbrbCBwU1tKhvKCXz4?=
 =?iso-8859-1?Q?29p2z7pvTaz9d5U4rxk=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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 54844cb9-4a9b-4ee8-e3f5-08dde596e9ab
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Aug 2025 18:24:08.4142
 (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: YtU2bPhbfRH6XDSrChiLi7LcY764L24d05eQPoRo8vrcC07nAsJIzSjGxchMp9OlfM9HlMvibA19X8xP6b4J1gV/xenFT1A2IeulYemCz84=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MRWPR03MB11023

Introduced two new helper functions for vGIC: vgic_is_valid_line and
vgic_is_spi. The functions are similar to the newly introduced
gic_is_valid_line and gic_is_spi, but they verify whether a vIRQ
is available for a specific domain, while GIC-specific functions
validate INTIDs for the real GIC hardware. For example, the GIC may
support all 992 SPI lines, but the domain may use only some part of them
(e.g., 640), depending on the highest IRQ number defined in the domain
configuration. Therefore, for vGIC-related code and checks, the
appropriate functions should be used. Also, updated the appropriate
checks to use these new helper functions.

The purpose of introducing new helper functions for vGIC is essentially
the same as for GIC: to avoid potential confusion with GIC-related
checks and to consolidate similar code into separate functions, which
can be more easily extended by additional conditions, e.g., when
implementing extended SPI interrupts.

Only the validation change in vgic_inject_irq may affect existing
functionality, as it currently checks whether the vIRQ is less than or
equal to vgic_num_irqs. Since IRQ indexes start from 0 (where 32 is the
first SPI), the check should behave consistently with similar logic in
other places and should check if the vIRQ number is less than
vgic_num_irqs. The remaining changes, which replace open-coded checks
with the use of these new helper functions, do not introduce any
functional changes, as the helper functions follow the current vIRQ
index verification logic.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>

---
Changes in V4:
- removed redundant parentheses

Changes in V3:
- renamed vgic_is_valid_irq to vgic_is_valid_line and vgic_is_shared_irq
  to vgic_is_spi
- added vgic_is_valid_line implementation for new-vgic, because
  vgic_is_valid_line is called from generic code. It is necessary to fix
  the build for new-vgic.
- updated commit message

Changes in V2:
- introduced this patch
---
 xen/arch/arm/gic.c              |  3 +--
 xen/arch/arm/include/asm/vgic.h |  7 +++++++
 xen/arch/arm/irq.c              |  4 ++--
 xen/arch/arm/vgic.c             | 10 ++++++++--
 xen/arch/arm/vgic/vgic.c        |  5 +++++
 5 files changed, 23 insertions(+), 6 deletions(-)

diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
index 9220eef6ea..b88237ccda 100644
--- a/xen/arch/arm/gic.c
+++ b/xen/arch/arm/gic.c
@@ -133,8 +133,7 @@ int gic_route_irq_to_guest(struct domain *d, unsigned i=
nt virq,
=20
     ASSERT(spin_is_locked(&desc->lock));
     /* Caller has already checked that the IRQ is an SPI */
-    ASSERT(virq >=3D 32);
-    ASSERT(virq < vgic_num_irqs(d));
+    ASSERT(vgic_is_spi(d, virq));
     ASSERT(!is_lpi(virq));
=20
     ret =3D vgic_connect_hw_irq(d, NULL, virq, desc, true);
diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/vgi=
c.h
index 35c0c6a8b0..3e7cbbb196 100644
--- a/xen/arch/arm/include/asm/vgic.h
+++ b/xen/arch/arm/include/asm/vgic.h
@@ -335,6 +335,13 @@ extern void vgic_check_inflight_irqs_pending(struct vc=
pu *v,
 /* Default number of vGIC SPIs. 32 are substracted to cover local IRQs. */
 #define VGIC_DEF_NR_SPIS (min(gic_number_lines(), VGIC_MAX_IRQS) - 32)
=20
+extern bool vgic_is_valid_line(struct domain *d, unsigned int virq);
+
+static inline bool vgic_is_spi(struct domain *d, unsigned int virq)
+{
+    return virq >=3D NR_LOCAL_IRQS && vgic_is_valid_line(d, virq);
+}
+
 /*
  * Allocate a guest VIRQ
  *  - spi =3D=3D 0 =3D> allocate a PPI. It will be the same on every vCPU
diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
index 7dd5a2a453..b8eccfc924 100644
--- a/xen/arch/arm/irq.c
+++ b/xen/arch/arm/irq.c
@@ -442,7 +442,7 @@ int route_irq_to_guest(struct domain *d, unsigned int v=
irq,
     unsigned long flags;
     int retval =3D 0;
=20
-    if ( virq >=3D vgic_num_irqs(d) )
+    if ( !vgic_is_valid_line(d, virq) )
     {
         printk(XENLOG_G_ERR
                "the vIRQ number %u is too high for domain %u (max =3D %u)\=
n",
@@ -560,7 +560,7 @@ int release_guest_irq(struct domain *d, unsigned int vi=
rq)
     int ret;
=20
     /* Only SPIs are supported */
-    if ( virq < NR_LOCAL_IRQS || virq >=3D vgic_num_irqs(d) )
+    if ( !vgic_is_spi(d, virq) )
         return -EINVAL;
=20
     desc =3D vgic_get_hw_irq_desc(d, NULL, virq);
diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
index c563ba93af..2bbf4d99aa 100644
--- a/xen/arch/arm/vgic.c
+++ b/xen/arch/arm/vgic.c
@@ -24,6 +24,12 @@
 #include <asm/gic.h>
 #include <asm/vgic.h>
=20
+
+bool vgic_is_valid_line(struct domain *d, unsigned int virq)
+{
+    return virq < vgic_num_irqs(d);
+}
+
 static inline struct vgic_irq_rank *vgic_get_rank(struct vcpu *v,
                                                   unsigned int rank)
 {
@@ -582,7 +588,7 @@ void vgic_inject_irq(struct domain *d, struct vcpu *v, =
unsigned int virq,
     if ( !v )
     {
         /* The IRQ needs to be an SPI if no vCPU is specified. */
-        ASSERT(virq >=3D 32 && virq <=3D vgic_num_irqs(d));
+        ASSERT(vgic_is_spi(d, virq));
=20
         v =3D vgic_get_target_vcpu(d->vcpu[0], virq);
     };
@@ -659,7 +665,7 @@ bool vgic_emulate(struct cpu_user_regs *regs, union hsr=
 hsr)
=20
 bool vgic_reserve_virq(struct domain *d, unsigned int virq)
 {
-    if ( virq >=3D vgic_num_irqs(d) )
+    if ( !vgic_is_valid_line(d, virq) )
         return false;
=20
     return !test_and_set_bit(virq, d->arch.vgic.allocated_irqs);
diff --git a/xen/arch/arm/vgic/vgic.c b/xen/arch/arm/vgic/vgic.c
index 6cabd0496d..b2c0e1873a 100644
--- a/xen/arch/arm/vgic/vgic.c
+++ b/xen/arch/arm/vgic/vgic.c
@@ -718,6 +718,11 @@ bool vgic_reserve_virq(struct domain *d, unsigned int =
virq)
     return !test_and_set_bit(virq, d->arch.vgic.allocated_irqs);
 }
=20
+bool vgic_is_valid_line(struct domain *d, unsigned int virq)
+{
+    return virq < vgic_num_irqs(d);
+}
+
 int vgic_allocate_virq(struct domain *d, bool spi)
 {
     int first, end;
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 18:24:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 18:24:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096722.1451357 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urKoj-0007vl-RT; Wed, 27 Aug 2025 18:24:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096722.1451357; Wed, 27 Aug 2025 18:24: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 1urKoj-0007vc-O2; Wed, 27 Aug 2025 18:24:17 +0000
Received: by outflank-mailman (input) for mailman id 1096722;
 Wed, 27 Aug 2025 18:24:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=x+iP=3H=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1urKoi-000703-7p
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 18:24:16 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 08e80296-8373-11f0-aeb2-fb57b961d000;
 Wed, 27 Aug 2025 20:24:14 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by MRWPR03MB11023.eurprd03.prod.outlook.com (2603:10a6:501:76::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.15; Wed, 27 Aug
 2025 18:24:12 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Wed, 27 Aug 2025
 18:24: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>
X-Inumbo-ID: 08e80296-8373-11f0-aeb2-fb57b961d000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=EYQ6XegoCr2RhXzcTHNLi15iEStY8CXT8JJcOpB4HrKl8EWJpABlF2HF8j4MhIfSEBl+1R1KehKAK5OynO3PFRz8Ju47CDTsAwz33uwycAHIfIHq/I3/HswLolbbNVMcCVq+EZaJW3z7nG0AMJ3Tz1GXuuslFmej9wJXSxKoxm8lTwxSqOLDrHhUnzeR9CYEkNpqagw9jMpVUGRPM7NK1BiOEmBAujOm85V2BDOD7vWIQ38F5shDajxFDoDHwI+cqkQqv3tsBpidN7RBF7Hf39itW4248/DH4vtm8rqcIJjj2jK6dEOjxcEuHDHJ3quopPsTINVBx1ECRDfnyb+ZnA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=MyzvRD3goWG0CAbjT5ybklt5dHwN3er0gQFoa1Mh8U8=;
 b=cBp/lLoT0xhjdy/0ezH55yCZPEdfIPjcZcTf1E8qLTHs/66z73fGTmGCsJCXGEsPPAlSBnoHaux8nnDkKmGChS9whNLlHTl4vZJSpuDRmz3je7vp85gk/a9Fd53HtEePaLo8Z+LSlr28NjVYS8/+37T6C697Q7VVBer1imVHvttZwEdvz06TiHb+x3dc3fJPLOdc6XVaEotNRZQfzBACMla89Ckb0q2efhqNHsgMONcHeyL7dYK/5V587vknmDVaPWbOc8U0aOfpil946ZIX3SOroF9ok7rGv4jAsgWTHKBjTQ6b4BEZ4W3/sTTBZhrbhOVpRuyIEU5TK4irh/FsBQ==
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=MyzvRD3goWG0CAbjT5ybklt5dHwN3er0gQFoa1Mh8U8=;
 b=jPDWb3n39P8dmfBN7KiuiR7KZvdvmy2Qjbh3F14groL3yGjmKjoj8AP82o1dpAj9iWl2nV6++S1ESqkhLL9tB2GJXGKKMfyvqMFZtIXSCvNAGtJqf8+1Jt+5cwYezg9HNyvgVrVPC42snduDUitS130k7qceDnXYgp6+rWxoZNo/By6GhvKTBDzbaomHuo5mcCEa9+wN7GMucoL8uaguIdvi3l2fcxYAI6KSfwjQHSMVlfsWBizW6HeoqCYplMhyMKUCUvDZjNOXKY0/XrFWw0c4CEuLzE9OXFIP+7fjasY8kXXhApMCKfpL7+useBdUYWtr+UCi50xZmgsTBdXLuQ==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "olekstysh@gmail.com" <olekstysh@gmail.com>, Leonid Komarianskyi
	<Leonid_Komarianskyi@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>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v4 04/12] xen/arm/irq: add handling for IRQs in the eSPI range
Thread-Topic: [PATCH v4 04/12] xen/arm/irq: add handling for IRQs in the eSPI
 range
Thread-Index: AQHcF3/JNF+Qat2pckartE+JXKhKmg==
Date: Wed, 27 Aug 2025 18:24:12 +0000
Message-ID:
 <a5570863b6884ac115b8dba320c04eea55005d70.1756317702.git.leonid_komarianskyi@epam.com>
References: <cover.1756317702.git.leonid_komarianskyi@epam.com>
In-Reply-To: <cover.1756317702.git.leonid_komarianskyi@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: GV2PR03MB8678:EE_|MRWPR03MB11023:EE_
x-ms-office365-filtering-correlation-id: 2f0459ad-5133-44c6-799c-08dde596ebd7
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?WibnUA58nXtE1jvedygY8iI8CuIabIUp+WLO2H8xOuNWn8rLHgG4leZb0m?=
 =?iso-8859-1?Q?KpINXo9B2KxogE7LR+U7b4rtmsVupcamvefmispZqcjfPxjnbJ/JZC4ctf?=
 =?iso-8859-1?Q?S7UcHax4mCRbkGRLYEkVcLRf0RjQ5MV7PbJlej0dq2b1afhPVGAIxCPqV+?=
 =?iso-8859-1?Q?Lnosga2JAz1+RJCXYTk6OOaqxpKmHD0zDn/Y6pRwqv3qb+17PMJh/uAaoU?=
 =?iso-8859-1?Q?fujFEwPcrstCGcaUSzXa4vquuZejhJZLrNWheFAavkvLb51rzQ/70ZL20P?=
 =?iso-8859-1?Q?2xzKC2+ENiD1bZ/2KWD+mMm0l0nY0eh42wXXuuniieKh9fukQTb2Gji1Om?=
 =?iso-8859-1?Q?C18oS8bi94po2uHPKJcHb8FeOkK/91gggRsH0bAFwCr/5L+++WNAt/b2+T?=
 =?iso-8859-1?Q?6+sPvIG2cCZpaY38FJaPNE0A9d/1T5Vno9FWwngxovlZpuGNAtPPwXs5Zq?=
 =?iso-8859-1?Q?jofLdGGNK0cJMQC6WE91FjjQkCjcWsHOzL0r48GKKeRM08uX8znMhYfvni?=
 =?iso-8859-1?Q?8W/W4SJMPJBLbg3AZoNXjI+vZnKlLnqXYuvbeNNQMP6I/pkF5+zeAUQwSY?=
 =?iso-8859-1?Q?V7rV4MHOueLMMA1+sXcU3nr4ghiGLhnJA3a3ndvXbn0th8kOQ+7LmTZtvl?=
 =?iso-8859-1?Q?6rlHDAsWElXG79Oq2ZZtHpi5u/iSyC0u6rIRhK/cAJjNyqOZ1n0kA+kayo?=
 =?iso-8859-1?Q?WA9lfFEFzsS0p7aJrF/ZxUfzoS1axUHYKrae6EGrzWjuO3nPNgnwHqaniq?=
 =?iso-8859-1?Q?wyXyE7lLLsVeZgp5q/bDuYa6MFRBYf8Dt6bma+c/K9xQdjGDFhAuXLMZEc?=
 =?iso-8859-1?Q?Q5qV5SBGVb5XMDuoDSUeByQP+dtJ/AsGAB7JrNTi+0suLCRSQRRBRt6DEB?=
 =?iso-8859-1?Q?LLIorTYHBGL2psov66cAW4gopOaZu/CV0PEA+m7SecMdph6mH04Nw4TiqZ?=
 =?iso-8859-1?Q?ceGb90Yqjl0L/QADCrATRoz3cePynKCLt33fFehMNfk1JudSSSuE0mPNgc?=
 =?iso-8859-1?Q?C3RdvOKI8kELNkBIAbDw69D6NFoffa4vlwDyTENoPY3oP6SfsyP54Tw3Wl?=
 =?iso-8859-1?Q?hzh1w2Hp6T5c88qIVCZCOHm4bbLcvd9ODhcYlDabfbEYJGBx7aTMm81YpL?=
 =?iso-8859-1?Q?KcSvx5ZrZ3gVeQ48hLBSEnTVXkJ5QtftZzLEqOjupTKT4Tj4+yztJLTzB2?=
 =?iso-8859-1?Q?Ia1bC5Ks8lA7eLgU7hWoFmA9W1pbqofc8R1Xj0xZeV2hrdhqVHx+cbz+R+?=
 =?iso-8859-1?Q?Pe9tuM5RTYVHjXV9tASE5bnfAtR3CEAIGc85KSMpobI7d4MGrDcn6fJsR/?=
 =?iso-8859-1?Q?m4ySbepHAcp1rqPApvN59nOULz5P5TU8GOnInVgC0XObUgaoARMk+HOMhd?=
 =?iso-8859-1?Q?zOjSR81nFrXA41WCI4n24is6dmBZIQIiDAhe8aIfncrFr0P+aJ0b2zBQwP?=
 =?iso-8859-1?Q?DKvE7cmyGTHjR7nGf+6a1Z/HplGk9HW1K2iaOCS613p7ibAnzI7BruRhaw?=
 =?iso-8859-1?Q?g9WvoEt6OUB9lrg6Wq7/ig6iMlSINcGt9FSucEZ9EtIrdjUn7widvdHXSW?=
 =?iso-8859-1?Q?tLQKiYs=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?Ps+SMne+ZPvXzli+J1EFcLTIhCIDhuoW6g1LLOtjEDg6gDXG0gtmFi2QcT?=
 =?iso-8859-1?Q?cmKziU54LVA5Q1TL9uZBPW1+JvPkPVfXlDbCT1OHL3yYdlQxMqZW9uePy2?=
 =?iso-8859-1?Q?OQHV8mVifkUEbHptI8Q/5lNe8blNEFV+TUKEznUl2i/dgYDaO/oSDCwZYm?=
 =?iso-8859-1?Q?7OW0ffBsl1kpHFTWjJNZd0/3t07rwabqNfOstXvktNRrYAI4QMx/ZDjloe?=
 =?iso-8859-1?Q?fToe0HNX28NLolCNXHfTCO0xaItoAosJ5PWPlpViqlYJHzGAMqDI48DBIZ?=
 =?iso-8859-1?Q?Ssgd6fDTxDzVLaMetIdWlFUS82645s4kBDh6YgKMoiv6pL1RzeTZTR9yy7?=
 =?iso-8859-1?Q?nxvBB/D0nSaDiwaBLyxqx2h2XU+L0kCKqcC4v1Ehol5nWf0UzUc/0vBTfP?=
 =?iso-8859-1?Q?K3uuQNy3DdVJadNo/tZQ1hEagK55xipTStanlCazPIKy2rnMSOkSic0FGh?=
 =?iso-8859-1?Q?iGMdD+EpflxIynecZ6T3vG5J9MwKqGLw8Q2XZ17fInSVl6yKuvn0gyHusz?=
 =?iso-8859-1?Q?680nztvnfx3dYL2XgXMH4wcn0kg+0cI8PiLin46wKnPmmLEkEb9iUCbWUy?=
 =?iso-8859-1?Q?/mHk99rI85wNrSuwikT+77r61f91kz8andBP63E162RGXtcvwLZzEMN4oy?=
 =?iso-8859-1?Q?AKtzv78tPTIqjc5X9B5oH2aqW4zzxGrPFtsMJMe4PCMsMSa3u9zILYfxYH?=
 =?iso-8859-1?Q?7copZetW8ad02y1nYrN1o4q0crzQRPc0ou9ZwOhdQX6O5T+UwT5pauJDC0?=
 =?iso-8859-1?Q?wtNuJcoODYAJELHxIV5ylCNBGjKFw4wRt0ILAVOCeMaxg8D0XD34nSPt8W?=
 =?iso-8859-1?Q?JRotjVQ3wyR/PXGHR3TdWN2GmpBy3RNT8kCIpkjy+uV1x0x8yuJ+y4vrNJ?=
 =?iso-8859-1?Q?hJ/6U94TfndxOpV+Yo/RU1wHepMhsqZ5BFi0h6P4y8whOtGsMAwndIJx7N?=
 =?iso-8859-1?Q?iGMUWX721VEilN58MubzMIvH7M1dnEx2nslfyLb5ILO+GPWUGuw9HaRwjc?=
 =?iso-8859-1?Q?WjCyVh2qesCQPEZSvdYK7v2u4arhqSLlV0JR4GJQSlM1A4HBmKFSfnyRzm?=
 =?iso-8859-1?Q?nQutCrD7qyvPp6AzNpy6p8HwVPU4/jWj87DXtWDC8LS0MYeGxYzxxihHzT?=
 =?iso-8859-1?Q?We4kDFNN2bmpOs7UelOhXKj1SF2ny1n5mrfgZqSRiKYyP4ElftT4TNW51t?=
 =?iso-8859-1?Q?coWOevEu9k6mGvN98x6/No8huE7omwZoKk26cPKWygHydqgrkWtjachwRp?=
 =?iso-8859-1?Q?tofv8HuQ+eeTSiZ1l2Ni8qmPTe1T8/ZqV9QJZ1mM5qf2u0k9C4FOmukb2L?=
 =?iso-8859-1?Q?/PBLA/tUMWqJ4X87em3H7bGsRyKO6C/RIqTcJswZgzYPlsUrUmzeWeiEiB?=
 =?iso-8859-1?Q?kKgfZeMk7phA1BevF9GxOq8zcxgXy3HcqeDc4oebhsKZPO3QZ7h0AdvAeA?=
 =?iso-8859-1?Q?ja3u8QLVy07xtt0k+mq+IJqoQpcXrJasvhhzgslCVySfIp0KG7KYx84vVi?=
 =?iso-8859-1?Q?PNEP4ZMuODagKY72GqwwCadp5U0ZImHCWIKzDk3MqxARq4nBy0tFxRPMmr?=
 =?iso-8859-1?Q?4yTgyE7bfhJ/b5G9KhKEO5zhzYetBMQ7dOkRzyyut18+AtlVFUg3wKtH/+?=
 =?iso-8859-1?Q?1uDs2RYxjDT5CeEM+v05jkib9Xyw3hSC5AKurpEvXeYjVtdTITOKFyRr/s?=
 =?iso-8859-1?Q?j8yW/xWhksSYoaLGEjY=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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2f0459ad-5133-44c6-799c-08dde596ebd7
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Aug 2025 18:24:12.0554
 (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: E9KeFiwjgVGyEE1yYcI9DcwH2XAFBIV20u8i++ynnR8zb36D/XZ/pNz3I0gmWZ6YKTd6m3lNzZGEOOXd7ZzhFDu60WgBzO9/JOqCU5uETRE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MRWPR03MB11023

Currently, Xen does not support eSPI interrupts, leading
to a data abort when such interrupts are defined in the DTS.

This patch introduces a separate array to initialize up to
1024 interrupt descriptors in the eSPI range and adds the
necessary defines and helper function. These changes lay the
groundwork for future implementation of full eSPI interrupt
support. As this GICv3.1 feature is not required by all vendors,
all changes are guarded by ifdefs, depending on the corresponding
Kconfig option.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

---
Changes in V4:
- removed redundant line with 'default n' in Kconfig, as it is disabled
  by default, without explicit specification
- added reviewed-by from Volodymyr Babchuk

Changes in V3:
- introduced a new define NR_ESPI_IRQS to avoid confusion, like in the
  case of using NR_IRQS for espi_desc array
- implemented helper functions espi_to_desc and init_espi_data to make
  it possible to add stubs with the same name, and as a result, reduce
  the number of #ifdefs
- disable CONFIG_GICV3_ESPI default value to n

Changes in V2:
- use (ESPI_MAX_INTID + 1) instead of (ESPI_BASE_INTID + NR_IRQS)
- remove unnecessary comment for nr_irqs initialization
---
 xen/arch/arm/Kconfig           |  8 ++++++
 xen/arch/arm/include/asm/irq.h | 26 +++++++++++++++++
 xen/arch/arm/irq.c             | 52 +++++++++++++++++++++++++++++++++-
 3 files changed, 85 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index 17df147b25..43b05533b1 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -135,6 +135,14 @@ config GICV3
 	  Driver for the ARM Generic Interrupt Controller v3.
 	  If unsure, use the default setting.
=20
+config GICV3_ESPI
+	bool "Extended SPI range support"
+	depends on GICV3 && !NEW_VGIC
+	help
+	  Allow Xen and domains to use interrupt numbers from the extended SPI
+	  range, from 4096 to 5119. This feature is introduced in GICv3.1
+	  architecture.
+
 config HAS_ITS
         bool "GICv3 ITS MSI controller support (UNSUPPORTED)" if UNSUPPORT=
ED
         depends on GICV3 && !NEW_VGIC && !ARM_32
diff --git a/xen/arch/arm/include/asm/irq.h b/xen/arch/arm/include/asm/irq.=
h
index 5bc6475eb4..221dbf23a2 100644
--- a/xen/arch/arm/include/asm/irq.h
+++ b/xen/arch/arm/include/asm/irq.h
@@ -32,6 +32,15 @@ struct arch_irq_desc {
 #define SPI_MAX_INTID   1019
 #define LPI_OFFSET      8192
=20
+#ifdef CONFIG_GICV3_ESPI
+#define ESPI_BASE_INTID 4096
+#define ESPI_MAX_INTID  5119
+#define NR_ESPI_IRQS    1024
+
+#define ESPI_INTID2IDX(intid) ((intid) - ESPI_BASE_INTID)
+#define ESPI_IDX2INTID(idx)   ((idx) + ESPI_BASE_INTID)
+#endif
+
 /* LPIs are always numbered starting at 8192, so 0 is a good invalid case.=
 */
 #define INVALID_LPI     0
=20
@@ -39,7 +48,15 @@ struct arch_irq_desc {
 #define INVALID_IRQ     1023
=20
 extern const unsigned int nr_irqs;
+#ifdef CONFIG_GICV3_ESPI
+/*
+ * This will also cover the eSPI range, as some critical devices
+ * for booting Xen (e.g., serial) may use this type of interrupts.
+ */
+#define nr_static_irqs (ESPI_MAX_INTID + 1)
+#else
 #define nr_static_irqs NR_IRQS
+#endif
=20
 struct irq_desc;
 struct irqaction;
@@ -55,6 +72,15 @@ static inline bool is_lpi(unsigned int irq)
     return irq >=3D LPI_OFFSET;
 }
=20
+static inline bool is_espi(unsigned int irq)
+{
+#ifdef CONFIG_GICV3_ESPI
+    return (irq >=3D ESPI_BASE_INTID && irq <=3D ESPI_MAX_INTID);
+#else
+    return false;
+#endif
+}
+
 #define domain_pirq_to_irq(d, pirq) (pirq)
=20
 bool is_assignable_irq(unsigned int irq);
diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
index b8eccfc924..adb5e49ea3 100644
--- a/xen/arch/arm/irq.c
+++ b/xen/arch/arm/irq.c
@@ -19,7 +19,11 @@
 #include <asm/gic.h>
 #include <asm/vgic.h>
=20
+#ifdef CONFIG_GICV3_ESPI
+const unsigned int nr_irqs =3D ESPI_MAX_INTID + 1;
+#else
 const unsigned int nr_irqs =3D NR_IRQS;
+#endif
=20
 static unsigned int local_irqs_type[NR_LOCAL_IRQS];
 static DEFINE_SPINLOCK(local_irqs_type_lock);
@@ -46,6 +50,49 @@ void irq_end_none(struct irq_desc *irq)
 }
=20
 static irq_desc_t irq_desc[NR_IRQS - NR_LOCAL_IRQS];
+#ifdef CONFIG_GICV3_ESPI
+static irq_desc_t espi_desc[NR_ESPI_IRQS];
+
+static struct irq_desc *espi_to_desc(unsigned int irq)
+{
+    return &espi_desc[ESPI_INTID2IDX(irq)];
+}
+
+static int __init init_espi_data(void)
+{
+    int irq;
+
+    for ( irq =3D ESPI_BASE_INTID; irq <=3D ESPI_MAX_INTID; irq++ )
+    {
+        struct irq_desc *desc =3D irq_to_desc(irq);
+        int rc =3D init_one_irq_desc(desc);
+
+        if ( rc )
+            return rc;
+
+        desc->irq =3D irq;
+        desc->action  =3D NULL;
+    }
+
+    return 0;
+}
+#else
+/*
+ * This function is stub and will not be called if CONFIG_GICV3_ESPI=3Dn,
+ * because in this case, is_espi will always return false.
+ */
+static struct irq_desc *espi_to_desc(unsigned int irq)
+{
+    ASSERT_UNREACHABLE();
+    return NULL;
+}
+
+static int __init init_espi_data(void)
+{
+    return 0;
+}
+#endif
+
 static DEFINE_PER_CPU(irq_desc_t[NR_LOCAL_IRQS], local_irq_desc);
=20
 struct irq_desc *__irq_to_desc(unsigned int irq)
@@ -53,6 +100,9 @@ struct irq_desc *__irq_to_desc(unsigned int irq)
     if ( irq < NR_LOCAL_IRQS )
         return &this_cpu(local_irq_desc)[irq];
=20
+    if ( is_espi(irq) )
+        return espi_to_desc(irq);
+
     return &irq_desc[irq-NR_LOCAL_IRQS];
 }
=20
@@ -79,7 +129,7 @@ static int __init init_irq_data(void)
         desc->action  =3D NULL;
     }
=20
-    return 0;
+    return init_espi_data();
 }
=20
 static int init_local_irq_data(unsigned int cpu)
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 18:24:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 18:24:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096723.1451367 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urKol-0008DQ-6S; Wed, 27 Aug 2025 18:24:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096723.1451367; Wed, 27 Aug 2025 18:24:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urKol-0008DJ-2X; Wed, 27 Aug 2025 18:24:19 +0000
Received: by outflank-mailman (input) for mailman id 1096723;
 Wed, 27 Aug 2025 18:24:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=x+iP=3H=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1urKoj-000703-82
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 18:24:17 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0991623b-8373-11f0-aeb2-fb57b961d000;
 Wed, 27 Aug 2025 20:24:15 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by MRWPR03MB11023.eurprd03.prod.outlook.com (2603:10a6:501:76::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.15; Wed, 27 Aug
 2025 18:24:14 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Wed, 27 Aug 2025
 18:24: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>
X-Inumbo-ID: 0991623b-8373-11f0-aeb2-fb57b961d000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OMvvLHaVv1+8dTLsVvXjhlbJ4qPYkr317PwOfjgN9coDItuOmf4qaalcKb8yB0cKJvghzYoMYfFsNz2C2+PYgTO0KbBPR04O9/xc+cbtOm+c7A0FNS0RP6p1zzeB+XNSmgvAEpOphi9G0XP2zszFTTE24tFgXjaTV8bgucAyhSYBtOA1e+5qnz45Xe4lofAWX9SpIsq91MbfDg+9esIS8OTE2X2FGiHvKIIew+dy03JuU2dk1O6IwaJRJ0nnOvHUfJ2Yuuge38QAEP0q2A+hNNtA1Iy6JeXLPD2pEMsoH2FDb9fOXRMWJO1343hOIrFM4vr2dt6obcFDI+QE0bnXrw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=FM8UwXdPVdtJK8SQjKi99w43kbIEgGw3VBvnMlD7ASg=;
 b=hFN3Ud4LY2tvJeF0vhNxVVVmJRBeMVmELF0fygfsYT8TBt1uetDmK+mWkZWO0BhU3o418BgxwpgkCrnYgSRxhMH5mig5cytucHCq1qap6tg0gMinGUW9Iv6eoEUu8OkowInbpdkkPbw2Bi+gA/5lmVjLckdLFuQkrmDOUZfkYctvY/6kWZHmeHRAIhD9LgMimAfRWCrRmghQcRuE7EFGmy74Uq09xNTVtdW9cVMy5Ti0Z9CivS3w9XzQURUE3OEpE5um8I5Po4WVhLzQo+v2PyBxcqvpV+8zy2kzSg+R3rFJ8x6I8mGtCeLYmXz3YYHVgGh3RebnC5QLWyQP1BH6eQ==
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=FM8UwXdPVdtJK8SQjKi99w43kbIEgGw3VBvnMlD7ASg=;
 b=BNz6j9HpKkaHJE75UO1oMwEUoINypVaxL6zywTolMn9HrmX3uHJuau9r9FGjmVZVRIGeC/hHlBROnulPz0dVuaw0T/8fT/qkDVAHIg7Leg772bVDnnogCe7i4KNog/nYDGuDVn0pwy2bM3iDlx3arPqvTc+cpeL0A5TMd3njMXBPireRqhfCQB/Qltzr2/uGwO3uFUplY3cOwNKtuZpsrIQqZQ9Lx9a/mzOiUtceDNjOvsFplNdQB3r+Qxe5SzfQ6qoxhVLQui4NC1AvAisT6oWnuhaiRq97V1U1LgAsuMoaalaF6NeM7X8V5zy2x9tru7g9FdP43YTOo7mmgE/pEA==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "olekstysh@gmail.com" <olekstysh@gmail.com>, Leonid Komarianskyi
	<Leonid_Komarianskyi@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>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v4 05/12] xen/arm: gicv3: implement handling of GICv3.1 eSPI
Thread-Topic: [PATCH v4 05/12] xen/arm: gicv3: implement handling of GICv3.1
 eSPI
Thread-Index: AQHcF3/KB15KvpnNkEu7nU8vywEQ/Q==
Date: Wed, 27 Aug 2025 18:24:13 +0000
Message-ID:
 <864522724dd6058952cad8b505b0589750b7f8d7.1756317702.git.leonid_komarianskyi@epam.com>
References: <cover.1756317702.git.leonid_komarianskyi@epam.com>
In-Reply-To: <cover.1756317702.git.leonid_komarianskyi@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: GV2PR03MB8678:EE_|MRWPR03MB11023:EE_
x-ms-office365-filtering-correlation-id: 4918f4ac-34c5-4db0-8b07-08dde596ecee
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?nh6rG3yLcj3gO/nwW0JMe9gIxuOVZ0FsdSzhe5Gp4iAlGtUwpJgc4Gro9U?=
 =?iso-8859-1?Q?AI4zu23LPX6XWc63/MNphPvcTip52Y7izpihLRHO41bXnfbE3DnaNeV/CU?=
 =?iso-8859-1?Q?G8eZmcoG+eN9UTOwAu9nx/31ZOoXNnk1VK3U+TRS+m1O7cQki5eCDSMQ+X?=
 =?iso-8859-1?Q?qMxh9RXrTJATT8IAj3mbgwGNwH1uMJ3ghEqDIGJ2wMs7CPpWbnHUsh3ux0?=
 =?iso-8859-1?Q?n1I3TKpGguXHQEjNdVTBj5yvR3O/YaA7ItLFWgVVhq7INqRrMHdzq7pnSc?=
 =?iso-8859-1?Q?m37K3WIT5ruJbSCl8QwLP9+aBVOX3cczZ8nBnvRKzhG1H76Dc3vzM49hc0?=
 =?iso-8859-1?Q?vsUmk2Qtoq52IRD/mebYB3ChBUBXZYaFcCTBdpZgSM8vUrlwH+uFZGZvCY?=
 =?iso-8859-1?Q?rwiqr5opp5FJ8A6QVWyVzcH8fJsPQCcWb5OfbZA9eSDsK7XOQhTVPvqwm0?=
 =?iso-8859-1?Q?E/FKy0teFG0nbXw4E53Nk5BTSwxYlYfJ+snRfnKiDGH1yYqEeD6lbEmDDn?=
 =?iso-8859-1?Q?oKMQXkU/I2wuBIqa+Lx1p/eVzh6LufEkJ1g2LQEQx/NNwGJAfirtY+pEYj?=
 =?iso-8859-1?Q?H5U3P65Bdph53Pg/kDIKddQo0DkECdjCrjmkdm8Bn+fr3USwMPvinTbVeL?=
 =?iso-8859-1?Q?qA9QHAnTd5PAwmY/lBZX8/3zK75KAjjybY6BuDWcdPu56Cb7POJ0NQNgUK?=
 =?iso-8859-1?Q?+CwLLKoG08WscULE9MlUs55kL4cz05XEhfy8/uP5A8AjQkl+/vXDWWqqlA?=
 =?iso-8859-1?Q?SIdk9cxz0BOnJGBrHdzxGXgiXylHnHL9ItTvGscnSyBzSIvYEREXlmGwJI?=
 =?iso-8859-1?Q?gJZqrMujnP4O3IjqWAAhVU3wRreHzVxvGlaSxmlSO9HYi4HHKW6CVrcqRf?=
 =?iso-8859-1?Q?RmN3VRoXwA1/1fQa2w4kMVYPdAbRF+eRgYlt3EaVteXt6ivjp/j4YrLGsG?=
 =?iso-8859-1?Q?eTLGnidSmRjE4o1w3TBf651rF0R6HS031cVaqcLGGNhflA7m79RaGxbfqM?=
 =?iso-8859-1?Q?8WvIXhwdetyyr77H8Kvk9R2gOb1vdnvIfInENxv2fKCwQU7pb2kncFGMWr?=
 =?iso-8859-1?Q?cOb/Zx8N+deJMh2rgicM2CC7ielqW65MokbunVl34toWnEQKfCvs4h2sFH?=
 =?iso-8859-1?Q?O5653tqQafft2ZBBVZBv2ucIy9221E9iZtNRtEvNacB9HCVCfUax7EJH3l?=
 =?iso-8859-1?Q?2U82ZimbmMhQCDKqwlACHImPnan1tkJ60eUCB7PrIA3Z96k3/JDDTdNyib?=
 =?iso-8859-1?Q?0IdDssJzvDNFUz0fq96rS6pCZrhGcDZi9lA0B+DunyeD3BjaHGF7HLIoZ0?=
 =?iso-8859-1?Q?JTQVWzDb57nkr/Sh7y8zUc7vv7PPnnLEfbDsFOLnh0DDVbOGJSRgB4i0Xr?=
 =?iso-8859-1?Q?4dajNEibGuYfjhqO/8dURWyNDA9qx7CMgJX4KyCroWL7sjFODTaAHOALT1?=
 =?iso-8859-1?Q?9hnLhkg8eymJuo/8sRp4US/GbFDApEswhmgLwZxyU/er3SVxUncJjTDwTD?=
 =?iso-8859-1?Q?2G/JaFAX+pZR21ThepOIqJk7fQUEYwN49DsPl3aDEsUtB6Yh22NFPMVgAz?=
 =?iso-8859-1?Q?RinTu38=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?H+e2RKZ9C+/RcgMyLAeC3qne7l8A91hVANgFAwZSTcGNBvYK2lxklvjRSs?=
 =?iso-8859-1?Q?n6rWWpBx1FdV6YE18YUjtPFv1WxE9Q5BVKRdh+QQCLfESQ2P4+0W9gbFx4?=
 =?iso-8859-1?Q?+0iqlUlJXLuEPxcGQwZFSS+xNhlGgnXVsG9oZHH+Ny2g3Ho2PJtC316KLH?=
 =?iso-8859-1?Q?QsX7xWWJNMw4dsvXMpJoJ+AwCNgPDTXMlMmXgbuXA4fri6YKqci3UzUiYR?=
 =?iso-8859-1?Q?m/q726NvmvPxm7GvtDUJoKzd90j913HJ1zXWXLVzbj9fBiuSbs7P5AMjNR?=
 =?iso-8859-1?Q?Gcu/9c/sE7OcTNG7yZOdSWWAhWDk8jB2RcWBYka2ahFcmG3Hm6yw0JPiZX?=
 =?iso-8859-1?Q?GPEydhZCixvb07aLXiIa7EWtTZOOBRR9Hg0C9tQl06RL17X4Uv8qV2XrpO?=
 =?iso-8859-1?Q?yaLkYpUn4aMmlQpTOqNhD4mi2nBTOKcNn1Yf2zs8cKuQb3M5b8t6gfQHzY?=
 =?iso-8859-1?Q?pqbGDV9rZr57HSvLpbUfEKJJbmq40T/T3IpAQKofPs96aLaCnBYrf5F+mO?=
 =?iso-8859-1?Q?qhn8ujDzL1EbpN++AEDd8q+oYXJQjsVQT8IOQfYx1E7gGGyxSUEMFk6h1W?=
 =?iso-8859-1?Q?KSVHIi19hEoJtxxtlE6Us3ZU8i1eLtLh1DvILXCH3iCXJ/KUpGhpT1X00l?=
 =?iso-8859-1?Q?hQ45hPV3VcRlm4ntec1uCU62xCgLneaoPIrxOT1gYluHomKkEvax+kXKqB?=
 =?iso-8859-1?Q?mSFbbfz1nmYzfke7/IA5d5FSFXWqV20cmoHQs44+TEEj5lLu7NbB/o/juX?=
 =?iso-8859-1?Q?NFDzOAasCO8SsZPAWPqj+PNxspZK+Al88agyxgWb4zFadkB+sbbhNZDFeB?=
 =?iso-8859-1?Q?YCkM9iYei50OYBuTBK98HFPcoT16kyRwVlEj2h5UdeVxJIfblRI4T0gPCO?=
 =?iso-8859-1?Q?337lLUwfs6eWkA3A4q8hMWPGggCVltAdwJL0KwMBevVSpjamfc64+aKsat?=
 =?iso-8859-1?Q?FL8J944rU5q6rWpqgygozY0vuvttMxOoyVNEh5ID7TECME8Ke6fjUE/xPW?=
 =?iso-8859-1?Q?z7mt1OdRXE2IgHwr7fid5uo6B+nkvYLUTmlhFL0/0Ra49+gUtdY4svwd2l?=
 =?iso-8859-1?Q?Ba2T6xa5Agzq2paxmbks59ZF6hnEv/VLxx+1oc/BelIBGQHUjzujIUhjHT?=
 =?iso-8859-1?Q?LzLdC7AtQ4yxwbyBDS0zwjRwiBkKdAbhMNDdjfYgiIAEpsN4YTkRrxkpax?=
 =?iso-8859-1?Q?LJU1+0gemCjt+G53h+zY26Um2MbbT6cEGqCkGbXnX1wyihbB9wqS1iTf45?=
 =?iso-8859-1?Q?AmM3wok/IORkE0HQ46n3CiJEw47FQvdZyZUhZdq97A02yeHGnhWrywQGTZ?=
 =?iso-8859-1?Q?3FJ3hieXMYgAOwyPcR0DeXmC+QWiARO+R6cqXN3FSxynvy80SAQM8gIO4Q?=
 =?iso-8859-1?Q?RaPyj3r21DBRNL1vM+EGbHCD6qoD2/Gk/bJV9dnBjQOST8FB730/y28fOT?=
 =?iso-8859-1?Q?+yOCsPqEbqeA/dFQaeBy2PUK11lD+ABHtX4l+Cv8uDAI/fmzcXAQ8t1Rj7?=
 =?iso-8859-1?Q?g60eabw8/JdV5aO8RMtqJD0IFl1gtmJ/mNhFxF43oCBkMXbi37dxFMObFI?=
 =?iso-8859-1?Q?7Lk3mDIrnKm1bbtecZLFv3DIpHT1Ioo5PigWs0k8IqgjI8XT8gExvCOyfg?=
 =?iso-8859-1?Q?vi9/wb8norUZJOkLf6yQhVEb6GqXYIuzajZIdUWNDvLNEvyQz7eAXw9LSk?=
 =?iso-8859-1?Q?GtXlDVfitGFYioZ0uE0=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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4918f4ac-34c5-4db0-8b07-08dde596ecee
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Aug 2025 18:24:13.9069
 (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: vNqf3aV4FEHqxvf48Ty1I3UAdFqc2lCRtxUW4gT0fXmwF9DZWUYI+ACmVmoBBKllvJXASmhEP51IUCiNH2wlM1EMQtmsi/DxWN365D4B6L8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MRWPR03MB11023

Introduced appropriate register definitions, helper macros,
and initialization of required GICv3.1 distributor registers
to support eSPI. This type of interrupt is handled in the
same way as regular SPI interrupts, with the following
differences:

1) eSPIs can have up to 1024 interrupts, starting from the
beginning of the range, whereas regular SPIs use INTIDs from
32 to 1019, totaling 988 interrupts;
2) eSPIs start at INTID 4096, necessitating additional interrupt
index conversion during register operations.

In case if appropriate config is disabled, or GIC HW doesn't
support eSPI, the existing functionality will remain the same.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

---
Changes in V4:
- added offsets for GICD_IGRPMODRnE and GICD_NSACRnE that are required
  for vGIC emulation
- added a log banner with eSPI information, similar to the one for
  regular SPI
- added newline after ifdef and before gic_is_valid_line
- added reviewed-by from Volodymyr Babchuk

Changes in V3:
- add __init attribute to gicv3_dist_espi_common_init
- change open-codded eSPI register initialization to the appropriate
  gen-mask macro
- fixed formatting for lines with more than 80 symbols
- introduced gicv3_dist_espi_init_aff to be able to use stubs in case of
  CONFIG_GICV3_ESPI disabled
- renamed parameter in the GICD_TYPER_ESPI_RANGE macro to espi_range
  (name was taken from GIC specification) to avoid confusion
- changed type for i variable to unsigned int since it cannot be
  negative

Changes in V2:
- move gic_number_espis function from
  [PATCH 08/10] xen/arm: vgic: add resource management for extended SPIs
  to use it in the newly introduced gic_is_valid_espi
- add gic_is_valid_espi which checks if IRQ number is in supported
  by HW eSPI range
- update gic_is_valid_irq conditions to allow operations with eSPIs

Changes for V4:

Changes in V4:
- added offsets for GICD_IGRPMODRnE and GICD_NSACRnE that are required
  for vGIC emulation
- added newline after ifdef and before gic_is_valid_line
- added reviewed-by from Volodymyr Babchuk
- added a log banner with eSPI information, similar to the one for
  regular SPI
---
 xen/arch/arm/gic-v3.c                  | 82 ++++++++++++++++++++++++++
 xen/arch/arm/include/asm/gic.h         | 22 +++++++
 xen/arch/arm/include/asm/gic_v3_defs.h | 38 ++++++++++++
 3 files changed, 142 insertions(+)

diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
index a959fefebe..b939a1f490 100644
--- a/xen/arch/arm/gic-v3.c
+++ b/xen/arch/arm/gic-v3.c
@@ -485,6 +485,36 @@ static void __iomem *get_addr_by_offset(struct irq_des=
c *irqd, u32 offset)
         default:
             break;
         }
+#ifdef CONFIG_GICV3_ESPI
+    case ESPI_BASE_INTID ... ESPI_MAX_INTID:
+    {
+        u32 irq_index =3D ESPI_INTID2IDX(irqd->irq);
+
+        switch ( offset )
+        {
+        case GICD_ISENABLER:
+            return (GICD + GICD_ISENABLERnE + (irq_index / 32) * 4);
+        case GICD_ICENABLER:
+            return (GICD + GICD_ICENABLERnE + (irq_index / 32) * 4);
+        case GICD_ISPENDR:
+            return (GICD + GICD_ISPENDRnE + (irq_index / 32) * 4);
+        case GICD_ICPENDR:
+            return (GICD + GICD_ICPENDRnE + (irq_index / 32) * 4);
+        case GICD_ISACTIVER:
+            return (GICD + GICD_ISACTIVERnE + (irq_index / 32) * 4);
+        case GICD_ICACTIVER:
+            return (GICD + GICD_ICACTIVERnE + (irq_index / 32) * 4);
+        case GICD_ICFGR:
+            return (GICD + GICD_ICFGRnE + (irq_index / 16) * 4);
+        case GICD_IROUTER:
+            return (GICD + GICD_IROUTERnE + irq_index * 8);
+        case GICD_IPRIORITYR:
+            return (GICD + GICD_IPRIORITYRnE + irq_index);
+        default:
+            break;
+        }
+    }
+#endif
     default:
         break;
     }
@@ -655,6 +685,54 @@ static void gicv3_set_irq_priority(struct irq_desc *de=
sc,
     spin_unlock(&gicv3.lock);
 }
=20
+#ifdef CONFIG_GICV3_ESPI
+unsigned int gic_number_espis(void)
+{
+    return gic_hw_ops->info->nr_espi;
+}
+
+static void __init gicv3_dist_espi_common_init(uint32_t type)
+{
+    unsigned int espi_nr, i;
+
+    espi_nr =3D min(1024U, GICD_TYPER_ESPIS_NUM(type));
+    gicv3_info.nr_espi =3D espi_nr;
+    /* The GIC HW doesn't support eSPI, so we can leave from here */
+    if ( gicv3_info.nr_espi =3D=3D 0 )
+        return;
+
+    printk("GICv3: %d eSPI lines\n", gicv3_info.nr_espi);
+
+    for ( i =3D 0; i < espi_nr; i +=3D 16 )
+        writel_relaxed(0, GICD + GICD_ICFGRnE + (i / 16) * 4);
+
+    for ( i =3D 0; i < espi_nr; i +=3D 4 )
+        writel_relaxed(GIC_PRI_IRQ_ALL,
+                       GICD + GICD_IPRIORITYRnE + (i / 4) * 4);
+
+    for ( i =3D 0; i < espi_nr; i +=3D 32 )
+    {
+        writel_relaxed(GENMASK(31, 0), GICD + GICD_ICENABLERnE + (i / 32) =
* 4);
+        writel_relaxed(GENMASK(31, 0), GICD + GICD_ICACTIVERnE + (i / 32) =
* 4);
+    }
+
+    for ( i =3D 0; i < espi_nr; i +=3D 32 )
+        writel_relaxed(GENMASK(31, 0), GICD + GICD_IGROUPRnE + (i / 32) * =
4);
+}
+
+static void __init gicv3_dist_espi_init_aff(uint64_t affinity)
+{
+    unsigned int i;
+
+    for ( i =3D 0; i < gicv3_info.nr_espi; i++ )
+        writeq_relaxed_non_atomic(affinity, GICD + GICD_IROUTERnE + i * 8)=
;
+}
+#else
+static void __init gicv3_dist_espi_common_init(uint32_t type) { }
+
+static void __init gicv3_dist_espi_init_aff(uint64_t affinity) { }
+#endif
+
 static void __init gicv3_dist_init(void)
 {
     uint32_t type;
@@ -700,6 +778,8 @@ static void __init gicv3_dist_init(void)
     for ( i =3D NR_GIC_LOCAL_IRQS; i < nr_lines; i +=3D 32 )
         writel_relaxed(GENMASK(31, 0), GICD + GICD_IGROUPR + (i / 32) * 4)=
;
=20
+    gicv3_dist_espi_common_init(type);
+
     gicv3_dist_wait_for_rwp();
=20
     /* Turn on the distributor */
@@ -713,6 +793,8 @@ static void __init gicv3_dist_init(void)
=20
     for ( i =3D NR_GIC_LOCAL_IRQS; i < nr_lines; i++ )
         writeq_relaxed_non_atomic(affinity, GICD + GICD_IROUTER + i * 8);
+
+    gicv3_dist_espi_init_aff(affinity);
 }
=20
 static int gicv3_enable_redist(void)
diff --git a/xen/arch/arm/include/asm/gic.h b/xen/arch/arm/include/asm/gic.=
h
index 3fcee42675..1e747dcd99 100644
--- a/xen/arch/arm/include/asm/gic.h
+++ b/xen/arch/arm/include/asm/gic.h
@@ -306,8 +306,26 @@ extern void gic_dump_vgic_info(struct vcpu *v);
=20
 /* Number of interrupt lines */
 extern unsigned int gic_number_lines(void);
+#ifdef CONFIG_GICV3_ESPI
+extern unsigned int gic_number_espis(void);
+
+static inline bool gic_is_valid_espi(unsigned int irq)
+{
+    return (irq >=3D ESPI_BASE_INTID &&
+            irq < ESPI_IDX2INTID(gic_number_espis()));
+}
+#else
+static inline bool gic_is_valid_espi(unsigned int irq)
+{
+    return false;
+}
+#endif
+
 static inline bool gic_is_valid_line(unsigned int irq)
 {
+    if ( gic_is_valid_espi(irq) )
+        return true;
+
     return irq < gic_number_lines();
 }
=20
@@ -325,6 +343,10 @@ struct gic_info {
     enum gic_version hw_version;
     /* Number of GIC lines supported */
     unsigned int nr_lines;
+#ifdef CONFIG_GICV3_ESPI
+    /* Number of GIC eSPI supported */
+    unsigned int nr_espi;
+#endif
     /* Number of LR registers */
     uint8_t nr_lrs;
     /* Maintenance irq number */
diff --git a/xen/arch/arm/include/asm/gic_v3_defs.h b/xen/arch/arm/include/=
asm/gic_v3_defs.h
index 2af093e774..c10db9bd05 100644
--- a/xen/arch/arm/include/asm/gic_v3_defs.h
+++ b/xen/arch/arm/include/asm/gic_v3_defs.h
@@ -37,6 +37,44 @@
 #define GICD_IROUTER1019             (0x7FD8)
 #define GICD_PIDR2                   (0xFFE8)
=20
+#ifdef CONFIG_GICV3_ESPI
+/* Additional registers for GICv3.1 */
+#define GICD_IGROUPRnE               (0x1000)
+#define GICD_IGROUPRnEN              (0x107C)
+#define GICD_ISENABLERnE             (0x1200)
+#define GICD_ISENABLERnEN            (0x127C)
+#define GICD_ICENABLERnE             (0x1400)
+#define GICD_ICENABLERnEN            (0x147C)
+#define GICD_ISPENDRnE               (0x1600)
+#define GICD_ISPENDRnEN              (0x167C)
+#define GICD_ICPENDRnE               (0x1800)
+#define GICD_ICPENDRnEN              (0x187C)
+#define GICD_ISACTIVERnE             (0x1A00)
+#define GICD_ISACTIVERnEN            (0x1A7C)
+#define GICD_ICACTIVERnE             (0x1C00)
+#define GICD_ICACTIVERnEN            (0x1C7C)
+#define GICD_IPRIORITYRnE            (0x2000)
+#define GICD_IPRIORITYRnEN           (0x23FC)
+#define GICD_ICFGRnE                 (0x3000)
+#define GICD_ICFGRnEN                (0x30FC)
+#define GICD_IGRPMODRnE              (0x3400)
+#define GICD_IGRPMODRnEN             (0x347C)
+#define GICD_NSACRnE                 (0x3600)
+#define GICD_NSACRnEN                (0x36FC)
+#define GICD_IROUTERnE               (0x8000)
+#define GICD_IROUTERnEN              (0x9FFC)
+
+#define GICD_TYPER_ESPI_SHIFT        8
+#define GICD_TYPER_ESPI_RANGE_SHIFT  27
+#define GICD_TYPER_ESPI_RANGE_MASK   (0x1F)
+#define GICD_TYPER_ESPI              (1U << GICD_TYPER_ESPI_SHIFT)
+#define GICD_TYPER_ESPI_RANGE(espi_range) ((((espi_range) & \
+        GICD_TYPER_ESPI_RANGE_MASK) + 1) * 32)
+#define GICD_TYPER_ESPIS_NUM(typer)    \
+        (((typer) & GICD_TYPER_ESPI) ? \
+        GICD_TYPER_ESPI_RANGE((typer) >> GICD_TYPER_ESPI_RANGE_SHIFT) : 0)
+#endif
+
 /* Common between GICD_PIDR2 and GICR_PIDR2 */
 #define GIC_PIDR2_ARCH_MASK         (0xf0)
 #define GIC_PIDR2_ARCH_GICv3        (0x30)
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 18:24:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 18:24:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096724.1451377 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urKoo-00008o-Dn; Wed, 27 Aug 2025 18:24:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096724.1451377; Wed, 27 Aug 2025 18:24: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 1urKoo-00008X-Ar; Wed, 27 Aug 2025 18:24:22 +0000
Received: by outflank-mailman (input) for mailman id 1096724;
 Wed, 27 Aug 2025 18:24:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=x+iP=3H=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1urKom-0006ki-9Q
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 18:24:20 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0b4580af-8373-11f0-ae26-e363de0e7a9e;
 Wed, 27 Aug 2025 20:24:18 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by MRWPR03MB11023.eurprd03.prod.outlook.com (2603:10a6:501:76::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.15; Wed, 27 Aug
 2025 18:24:16 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Wed, 27 Aug 2025
 18:24:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0b4580af-8373-11f0-ae26-e363de0e7a9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=caOTPuYbSmSZGNZz0sOkiN8aby/w/eVMiaspTw2yf0jydc1jQl9I5TWBmaTx7sc/gWg+j2IzFU/OnNqLxWcU5/t6M9I68GC87J+FAcn7GnsNE2sBtEAVGeG/dSFcA1/RIOG9/osDjyLWGK2INj4FG/ixp2ZcOEP+agvY2fYq6cFLzjyJBC7adWdxtDafT8+kf6IzOOte3XkpbIaYMhi7mxcZ3bMHD2T799SojUR5pDS8ynPXvcWF/x79348HDxJYTUBWI4pXn10R0wZB6EByq6k5nSua+UgH/eMevWRtKfw5j+2Ezh6HlnpoO3jcBbCPvtqr9Us8C5OGpma/tntEOw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=pnzy15kpQUB2aljLQCGM3xkSvJVu3LwpRqowKjns4VU=;
 b=WbzwsnMHPyo416rotW7Ppf669zQHzYFnx8ZEj/jY1P3hnI/xQFDUA+NtGOoI1CCCnwtQBSGZJftSDUpMj89uUlKQQQADO6wVSYMKF78XcggyqdnlnEHwjqRo1/s4MeeJKBNTjj+hN+Q3bFeexn1RXZrMOkGFnytWy4uJaMlaGw1ruuK8SIJ9jgJytnhZ6WY7akZ5uF27M8P9jyb88uHhPB1frrpBqWEhb3gu3DvUbMTpnjT3UHLS5OzMDYGoVuifKWfa1mR7VysqS6Dw3vQdOD+Hgnray7TDDWSeUnFpHpWTULUNCZItPEobIcgDEhlGLw2rfkNwN4vop3iYdpeKiA==
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=pnzy15kpQUB2aljLQCGM3xkSvJVu3LwpRqowKjns4VU=;
 b=QojNKQuZXKbiT/n5uTxVj9XfkiNUvHaoOd/re1TVPxWPS9hOmr3LERAcieH4xJNB1Lwx+O3TyXIXP5AWke8xHdOQWC1n4lf638x0yshulwu3zmiy02pKLzwwfZmwvusmz9aQ173ElrAM2bNMeDDqplzErtWJ6O3xWER0NQIKYFCXDNpE9xsZwmTAmBB7dJU17MdcfQDzDyf3H4FlpMwX+A1nmZBx3SB8lGULWGsSz47bB6QdAX/ttRDXNgNyXC7KF7zYdia8yDvKGvFeXFfDPwihzxqKpv3xYlxsVn6yuGWTs8QQjeFv4LkuneevFbT54/Tz1VHg6SZonb2rhfrRJw==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "olekstysh@gmail.com" <olekstysh@gmail.com>, Leonid Komarianskyi
	<Leonid_Komarianskyi@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>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v4 06/12] xen/arm/irq: allow eSPI processing in the
 gic_interrupt function
Thread-Topic: [PATCH v4 06/12] xen/arm/irq: allow eSPI processing in the
 gic_interrupt function
Thread-Index: AQHcF3/Loedl2G5iukGvdwDJKvr6zw==
Date: Wed, 27 Aug 2025 18:24:16 +0000
Message-ID:
 <f713c2fb1fd42c72d6223af0525c42b81af7d624.1756317702.git.leonid_komarianskyi@epam.com>
References: <cover.1756317702.git.leonid_komarianskyi@epam.com>
In-Reply-To: <cover.1756317702.git.leonid_komarianskyi@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: GV2PR03MB8678:EE_|MRWPR03MB11023:EE_
x-ms-office365-filtering-correlation-id: 9344efa6-74fd-4d89-2777-08dde596ee48
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?qVQoUBaJAntHW6rOogsb28f6bsHsNHRlyx9MB7V/p6lUg1kjRhRcxSkLTR?=
 =?iso-8859-1?Q?oWnqiT8O+9K8OSfHhooiQ/f5OvCX4O2i1Cwoba/2yE4bUmL25EBN58nXf6?=
 =?iso-8859-1?Q?QFWBAisgjTO1MkZ7WaUCWt1VIELgP+qPOTVRpf9JKnvcKOTOG6DhNVGZcP?=
 =?iso-8859-1?Q?WtSD3fVU+HBPXLsFgCrFjHwhNUHAJOq5LhfbGi+DYGqFQDekoqpzdK9gyn?=
 =?iso-8859-1?Q?jmQ+ZTd3bVQhMWAX9Lr5V4IL4xruAVdpIfk/FNU1q06UP/xy7tb8R/JTCf?=
 =?iso-8859-1?Q?UtEW2sbBtG7pFnekFS1uC87D/kOzF+GSUzzr/1i5Vu6xN81FP297cXeNAC?=
 =?iso-8859-1?Q?7v8x4dFoxG+D+1N8LgboYObN50HErXUDfHvfQ77A7bcMW9d+PsIXr3Ta6y?=
 =?iso-8859-1?Q?p5aQ+F0fQcgonJ704wU/ZMExHy7WLurPTAaLSQ9fG4HBpHro++yJqLlV+b?=
 =?iso-8859-1?Q?aqptIF5wBH2OntCR21zXwVMs4KN5a8/HQ6U6DbvKA+UMd0EK+XjykvchPy?=
 =?iso-8859-1?Q?txfLMc6etMbv39EemT7/23CwI8jpiYYj4wFPl/5lJrILnY22n9khSOZjR5?=
 =?iso-8859-1?Q?ZIOvd9iIp6eSIbnhI8ZKvpZ2rXzyO57iOMAsGKlP4a0m2LbV/j33EYacT0?=
 =?iso-8859-1?Q?IWI2gzcmvCGoUipLYele3gPXOQbj8uM5vco804jyRoAnXPV9b9dH9vjzAo?=
 =?iso-8859-1?Q?ma0/FCNPAl903h1aZQkYyrvVz9LwBfH0V/ae52TU9iwk2Zu3rhVkJpMvIR?=
 =?iso-8859-1?Q?HZ9H6GUK/uxkXS1KGgkOC8rVK/PhifEeA1D7JuXYYDzzRb5RVMc418dXh3?=
 =?iso-8859-1?Q?y55/pVO/djxkwRiUm98Y2icrbFoMEPzaDV1dJ5NxA9VXrlSvizKhaGhcGC?=
 =?iso-8859-1?Q?ahwF5X9f959sCoSREXX9oeJNDkgt4yhc0b3dJVJJeadJf0xELNPKOkMeO+?=
 =?iso-8859-1?Q?SbldMsP3A629KkP0lKm3H3mDy+/FE6TruQ7Bqk9No7iLd+YZgsyEEdEIBQ?=
 =?iso-8859-1?Q?/qbKDRv0aNPG+aeo3ewXz5CLFMrhxQSZI3olnMLAaKhENRD1qgat/bDuM7?=
 =?iso-8859-1?Q?mGR8K4YE4dKxyEZPfpL24VMK0YJ+HsjENL6+w9RKHAA9UFafy9pO011p4h?=
 =?iso-8859-1?Q?/dkPx50q4t/bSQXUr1Ytwh11iYvnHNV7MfJbFTwbuTSPucVP1Q3T9vHbhW?=
 =?iso-8859-1?Q?dJ0Xe7yG7SOv3bTCFgpFL3qO2i25SKrLhd8dv9aguhb+43meDWvUOa6dDV?=
 =?iso-8859-1?Q?p44HaNRyvWyfH4sP8adqHykgiH0rdMYGLECBAQlsIUN3CaEIPXMq8pVRgC?=
 =?iso-8859-1?Q?m5Ny1RgxbOmvBvu/86KigHxo47wiDWNb4QdWXhshUppiT6LLqqsaGXdKOZ?=
 =?iso-8859-1?Q?sH5o4sHHXBvwsMMtc0Jv6LIUqtO13BWhT9CGbxMAvy9iLmyoGChG4ABnxo?=
 =?iso-8859-1?Q?I0NDeBLYUvhkSwM3LLwnv4SWsoIVVtQFPQeBdrI1quHRmDq4NvTaZIN/ZK?=
 =?iso-8859-1?Q?FxnLDfCZRGok0mUSNJii84+5f2kzfDDYCJ7WFGkCmk0A=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?/soGEYtSDdA4qda4sBo6Pm0qujdGpXKCGJubRFkYWH1pK6At2lR7LONJFf?=
 =?iso-8859-1?Q?gnTBZxFw+4+r9SY5a67PQeqic1KMlmbM0CfrQG2Ninx2hP+GMCY1xhutMV?=
 =?iso-8859-1?Q?aLYtjEk6taR6y9BG5YLiXj8xBTv4+LPSvLCvbYPUpovb7COLUKgrlT4o1g?=
 =?iso-8859-1?Q?Prn7sM2uv4lY1QyuUegJwli4tYc/IAEljJ9F3KklRFi1Pq/f7PpgpyCL4j?=
 =?iso-8859-1?Q?RaZdoxIygLqxg4/cXENzWfpucKobFDApf/kYl6O1EurLQr/rjf7/ixzxdI?=
 =?iso-8859-1?Q?2Tz+JnkpulvGa4ddbR7k9ikyrpp6THPV8QyzqSmFEZJlrYhKakmtVy8Ilp?=
 =?iso-8859-1?Q?9sdAa4B7zlg26IYFTuMSzW3TLmwxK7pRj7BqUGUfNfOITVq18E+gVxTLSF?=
 =?iso-8859-1?Q?yyKVU8t7Qm+QatHM4pWl6gU58selu9mgvPo0wim5ZuraYAiQJObpBSBr1u?=
 =?iso-8859-1?Q?s9TWkHBj6qWXvBMpgqANrMwg6SGMAdKfV0o3QWDieilNKsg/lEKYQ3TRRz?=
 =?iso-8859-1?Q?MKYFAWK+ZshD7neQSGQK3DopqyADb7hipzv3avy12UdKE1aZyOVswhxWKH?=
 =?iso-8859-1?Q?+Uy9N0/IeUlruK2rqYYxkYUmDCIaVNIBP/mUQhpBK+RxhL8l1R8IA7kTa6?=
 =?iso-8859-1?Q?0pfjc65jOWXZHR6oemsBppGtRYR//Xm5dneFaZGepnvKV1ifVbUdnNAbjr?=
 =?iso-8859-1?Q?ehiKKOP2zc0PsV1BRXfe7HAlyyTSeZ6I+gtfnGC0Ipy+uhqNOcHWFhwLIl?=
 =?iso-8859-1?Q?k5E9724xS63sh6sl0dRm0HdsSUXCE8Bsc531lRfTyr/ZfR+zSrnkkOlvKk?=
 =?iso-8859-1?Q?oxnpnPCYqsg7qP6vDRX5iUbuMe6ScYDcFYCJ+mRXHPDqDIo+5VUBMJBHbv?=
 =?iso-8859-1?Q?+I+MTH/CbIRXm6qnoY/mH8G9uVaX4P3xo3suSlwE+W68auAgexdlWA2CoB?=
 =?iso-8859-1?Q?QQd74O6MtDQUwcTqDJalOV9SMTTml/AGcEaj7zAYGGiUKYZrQj6tzc9xQK?=
 =?iso-8859-1?Q?wPtvcHRDGbfgubD5F92C5j1hak0c60GzLVVE6K+3J65kGbog5RMIXb715P?=
 =?iso-8859-1?Q?CdKoXvorWPnFtgFfJ/qOezoLZ5GTaB1ZG6NJHQYVI4CFjAxQslWjsHTGCL?=
 =?iso-8859-1?Q?89NcHmVXchxofVDodxHLbs3RJF6E8k+pCrfJ4gxOpMRTJlwUnxKoJvK//C?=
 =?iso-8859-1?Q?YbYoVYw09fEP2YOK7jS8EFcKYfO8N5d3p7OCvW7fZXGHD3wkeucUtQeviG?=
 =?iso-8859-1?Q?FBZnoJ6QzVz4Syp67vtWEvUlXycoGvaqwZFGKj8nqEHF4XR7/9e+ooUQ2y?=
 =?iso-8859-1?Q?B+11IP1K0C2opBkrU0QfEfJUVIUMGWJ7InlB19H4E7vLMoI87rFAD+CYEh?=
 =?iso-8859-1?Q?7PVxXk9t/b44F86qq8TF2v/HswE5XpgjNQKIKBbgTDvPzqrtkeM7ZCP9EX?=
 =?iso-8859-1?Q?PNHTlzibza3ssFUtlTYQx/toE5u7lqLYr0kWkycxSSoq8xey1Jt0emmlHI?=
 =?iso-8859-1?Q?8uy5mOLN8YL3U2p6SlWI7ewE0ne9ffKrxA0RDQ2dLtyCPtuYA13lWrjbfZ?=
 =?iso-8859-1?Q?yghjCERO45uNAqPdNczi3EUqBnFWCw69NVQx7DQcItoHH//7BEf6REYWwZ?=
 =?iso-8859-1?Q?OdCIhTYmpkTl6QJqn2eR42gH09WFTV8cz3feW+Jbcyr+zza6vIRgApbQy1?=
 =?iso-8859-1?Q?TAwA/c2GHNsh/nS9bFg=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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9344efa6-74fd-4d89-2777-08dde596ee48
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Aug 2025 18:24:16.1982
 (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: gf0ejP/ASFlV8kSgx5Oy0148USNOQAuQFtprLhu+xwLNL8a08UmYxhLjnEdlWng7c1MYW82rE+ROG1UjoSt5XxrfF44XDCGlcoica0ksnFw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MRWPR03MB11023

The gic_interrupt function is the main handler for processing IRQs.
Currently, due to restrictive checks, it does not process interrupt
numbers greater than 1019. This patch updates the condition to allow
the handling of interrupts from the eSPI range.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

---
Changes in V4:
- fixed commit message
- added reviewed-by from Volodymyr Babchuk

Changes in V3:
- no changes

Changes in V2:
- no changes
---
 xen/arch/arm/gic.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
index b88237ccda..634b77c987 100644
--- a/xen/arch/arm/gic.c
+++ b/xen/arch/arm/gic.c
@@ -341,7 +341,7 @@ void gic_interrupt(struct cpu_user_regs *regs, int is_f=
iq)
         /* Reading IRQ will ACK it */
         irq =3D gic_hw_ops->read_irq();
=20
-        if ( likely(irq >=3D GIC_SGI_STATIC_MAX && irq < 1020) )
+        if ( likely(irq >=3D GIC_SGI_STATIC_MAX && irq < 1020) || is_espi(=
irq) )
         {
             isb();
             do_IRQ(regs, irq, is_fiq);
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 18:24:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 18:24:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096728.1451384 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urKop-0000Hf-59; Wed, 27 Aug 2025 18:24:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096728.1451384; Wed, 27 Aug 2025 18:24: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 1urKoo-0000HJ-Vj; Wed, 27 Aug 2025 18:24:22 +0000
Received: by outflank-mailman (input) for mailman id 1096728;
 Wed, 27 Aug 2025 18:24:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=x+iP=3H=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1urKon-0006ki-RL
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 18:24:21 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0c766d63-8373-11f0-ae26-e363de0e7a9e;
 Wed, 27 Aug 2025 20:24:20 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by MRWPR03MB11023.eurprd03.prod.outlook.com (2603:10a6:501:76::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.15; Wed, 27 Aug
 2025 18:24:18 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Wed, 27 Aug 2025
 18:24: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>
X-Inumbo-ID: 0c766d63-8373-11f0-ae26-e363de0e7a9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=stRNwQiGfgmnifNR4o/pUG8P5CPOGAKq/dS/HjSNuhH2myIDMHglHFYmnn7VwWck2GG4ssevOECy3eng2qbiCDKvjF3WbiCvLMX00GTYMdLuzUdHZSbGqstJEp9dAtx+kQA9yHgKho4sP+nfbjY+fs/5pWLed2Zj1FOxTIdfFUxzd25K36bh5usWHEdBjaqhccSgy/WOrNJpW/rxRFRodySgjqSaLHSiwgS3FaA4ftW56416n4jxV6DvPUMp8pmlj2fkhiSRM8J7I4jNJTn1t9/YX/3sjsbBSu0baV+W15kzIOkeHCnT87BNRrkpdEZsv/n/Kbkr6oz5eXaYxSdCwA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jtL0A0E37mr33YnP99iRQLje8SLn7K4xvKHMnjNefTQ=;
 b=QbHAg8rGQBGD7hSe3/SV75Lh3Z4Nm6dtz95LIu/y+sCXCypEJgCGnyhYaLSLuPmZPv9AHXa3XH87WllB41QqcFrjxCecPt35B63DLGyJYoLlQz/+w5RGos0jJPBQWC2uxvIYOXxm3rRblx+Nt6agbtC8w9UkSSkAPI5BhYo876ITu9Oq3okvBp4/xRs4FktJodGdt6CDirsUcVe+w5i/31pTAxYW4d/GheZk8T0pz0uy7COXCr5OCfklYOZTs2RODCPyiuE0yUw17vUcd3vs+b346+V9JZkHZPywBdrwSvbuLvAKh1nbsYfdvLBPMvuc9y1M68G3hA6lEoY/eMUnTg==
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=jtL0A0E37mr33YnP99iRQLje8SLn7K4xvKHMnjNefTQ=;
 b=k8rsPW75Y5Mqvjwzdfsh4uBS/06EsFWvXIXJLVy06Lsi8lvxAB7nS7ZuRNzFqAR4/rt3ViI7ciU/Z8NbPWTK3fanKRottohsYuXHMnlE3W0UtcCG6Ye9fNLfabi20pEqc0J8wCqbxk8p9lzSKQ6dx5K347qBdJS25k/Fyf50WPVwUrZEQggdpXVXVzXZBs077/TVYxQnHF3SDJkFPeMVCfppyHCsQhTLOY0tedT9sCLimSZJbWsjY1Kn5PBLFEO35Cq0u5mySWjMRF3k71vxjvm0mYSJSrMn/D3nVB2+mH7BkDSnTytDFGQpISGcbLnBzia8g01zBcgAWae6UjDsZg==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "olekstysh@gmail.com" <olekstysh@gmail.com>, Leonid Komarianskyi
	<Leonid_Komarianskyi@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>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v4 07/12] xen/arm: gicv3: modify ICH_LR_PHYSICAL_MASK to allow
 eSPI processing
Thread-Topic: [PATCH v4 07/12] xen/arm: gicv3: modify ICH_LR_PHYSICAL_MASK to
 allow eSPI processing
Thread-Index: AQHcF3/M1ETcfpgi90idtTPd2WZvfg==
Date: Wed, 27 Aug 2025 18:24:18 +0000
Message-ID:
 <2252a686e800a9752cb22473c68236cb27734c26.1756317702.git.leonid_komarianskyi@epam.com>
References: <cover.1756317702.git.leonid_komarianskyi@epam.com>
In-Reply-To: <cover.1756317702.git.leonid_komarianskyi@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: GV2PR03MB8678:EE_|MRWPR03MB11023:EE_
x-ms-office365-filtering-correlation-id: e4d14e36-eb2c-431b-cc0b-08dde596ef6f
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?hinUjiR2lQxHZ+cxsZ5SbdeLz7xNuc6Tcuqd77FwHdfYuC3Ch4g9YuOb06?=
 =?iso-8859-1?Q?0kx/YN5Ir36mQL6ohXM2C2Stb+bE23eW3pwGx1erpOhHwIcVm0ca/OSDJf?=
 =?iso-8859-1?Q?lqkjzTVorZ6w4hZL2dSUbG2+0kzpEgt5AlotCRstOzUTGiLpE8m9JuuL9+?=
 =?iso-8859-1?Q?3GYn58CLKEwiVnXfw+iUHFDQcimVDH9XlgmLRg3+9q8xKp41MI96ZJ8h4Q?=
 =?iso-8859-1?Q?46yxU5oir8ZtzLjOMowGGqjZf6shrVuvHpeXQn0YuoFd8cu7V9alIq53Wh?=
 =?iso-8859-1?Q?OaUXPkzGTq1F4bGArgXGk5t2j5QpWijV0hz8ACE6UpcEuKecmULLfiuD+t?=
 =?iso-8859-1?Q?wuvI0BgKNcoevM73Pal8GxlgKOf/xsyHE40P0oRo8fClYs7kDdBeLv4812?=
 =?iso-8859-1?Q?LkoJeUGqy1Ka+2nLioeKLqJ+KRtHrCf3y2CFLfRmfcL60I8Kua3Pdffg7u?=
 =?iso-8859-1?Q?u6WB06PMEor+OKPEDdJG3k5V2p0z3/5Et99jsTq6DfddqM6tJYksBWBr/b?=
 =?iso-8859-1?Q?zjG1A3VBjbbw8ap3uDPKua21NgUB4bzCuA4cTj61Sarul5xqebZvuCnlz+?=
 =?iso-8859-1?Q?ugzQoGy792K63wHEH2nGVCQShlWnEw/GnoR72XgQ8LyPikySKH1r+7KWwl?=
 =?iso-8859-1?Q?KK0M8SXHprDu/tmCcvOr2U7XfF+4Pgb1S99KdiP8w4v1qSH3qNTRXV1RPE?=
 =?iso-8859-1?Q?ghHmQzYBiBr0n8qCli08gg/9xla5Ajk+UOyw26/tel5HjoCdIzDzP7XWF0?=
 =?iso-8859-1?Q?Ej05xLwQOgqjcgpipGvMqWM/bHZ2770O0lvLy9d+McOkCXKR3V+GbRPODs?=
 =?iso-8859-1?Q?N1XiweqX8x2qur74cVdQ6mN3+QvsTtGHdcmpuUwIYMN6+UXLNxx370h9AJ?=
 =?iso-8859-1?Q?Ka2D7dIZYZqRYTIm8Qgu7+hldn1FGxPxWbGni7H+A4d7E7P3nho+uh3/Vo?=
 =?iso-8859-1?Q?rLXM7m0HVdlFEm//DuCaplCjCHxqeUNSt/gOu2LqFofHyjRcYevwJu+oo2?=
 =?iso-8859-1?Q?z5N6Rvb1c3FV7DOiPi9ps5jPe60OyYsr8ybMHnOlJHI70A/31GhriHNYMx?=
 =?iso-8859-1?Q?7Y53NHwKbNFiAbwwJOiGrqhx6GHyTuGOAVDXNhxMDHH4rvmPAReAph4eY2?=
 =?iso-8859-1?Q?iHbXVCv4jJJhzb870bmZXx4F8L7guEM8lO5NgZP2eqTdAPoGG1ZHPX5KXF?=
 =?iso-8859-1?Q?ebCyF00e/gG8oN7GBBtldwym2BiDx4NoS6Weu0MVKhZvDfMm+U5t25HSLr?=
 =?iso-8859-1?Q?5PSb5ANIrxyqacDVlXK6+zfFMtBDBr2SgML5bgWlxdbvLsw4s8nmuds8Vi?=
 =?iso-8859-1?Q?uVk8XAlb4lxtoRxjThsJ5kulC0vuDFF9ojUyD6+j5xVV2hwH9kj/wNXN0a?=
 =?iso-8859-1?Q?0cI/OKcDYneHvj1qEbYsuYhDuViWUwJX5LP1W4PphOli8u2jGSeenSwSRG?=
 =?iso-8859-1?Q?oRGqrNBgT4pEuLJQ5gMhB1P5UBgRJdPfDtLrUZRIRj15+eAz8kTNygflnV?=
 =?iso-8859-1?Q?APsvs3k8KPZ8PmMQViq+ZWDRxm4fqQsW4LMj29KRh/kw=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?45LZdY0NfjWvD1Icm5PF2X03tsrvzAaa+zHTOtLtlhZkopMgkMnVnfU70m?=
 =?iso-8859-1?Q?Nos5hr1bl9Z71PiZMv5hikpytYmS5bSps5K014mCUgHAjajgdSXv8Jfbp7?=
 =?iso-8859-1?Q?byJwq4OnH86YWO2KEjYORCbTCvyQ8jYuk5K1nFXIAbpMp4wIDMSuHYavjg?=
 =?iso-8859-1?Q?XuqbTLozVDojnIBV0pGBDJuIUcdAfbTUBAgCAgIeM4ldLteLCFzEAdoxs3?=
 =?iso-8859-1?Q?AvyqNWQybysmZBu/jKODOwL7R7ZgfV92ZO2IdVeRciKEjmlOqINydctP0T?=
 =?iso-8859-1?Q?dKgIAuKjBMOIUCsBdR2J4aZfLLSo/Ka4RcTgVPugkAvbKFWHjOzYr2PJp7?=
 =?iso-8859-1?Q?QBuLbUNG/touCOhHjAqBjbW4qdzrJUjvY7p8zmunZSu9a1qk9IE3R/bVHH?=
 =?iso-8859-1?Q?fzNg9DxcqukAPcGrXAGrVwM+yQn+oPHDcpJW2Gr+OZzgi8kAuPG7pCoRE4?=
 =?iso-8859-1?Q?EDRQl6ZY82eG9XD0rC/D/tu9yukazJTJzVHcSii/EKdvPLGPCusBXxPaZy?=
 =?iso-8859-1?Q?K7HUFB0K3iGVl9GBPSfMLd8jY3vg3PQChKn8hG50kFEVNL5d7nctoiBsHi?=
 =?iso-8859-1?Q?KE/lc8amgzO7tPAxdIJ15Uh0Taa08xUxtwqnsVDujFkd91sPnDL0tUQGab?=
 =?iso-8859-1?Q?62B5Qd94lPwIxkf1BiTv21anBv0zM7uNHJ0gzJpK5Qn0BfUFH9dpOIdiHc?=
 =?iso-8859-1?Q?Bm2zOsd8225gAt6i4XAYjxCIvjFFs3F7yd52DDntvlUmLXFEGpXP885SOj?=
 =?iso-8859-1?Q?ARuYgyxy2/Ftmf063SFIck6lAqBO5z7rUJv9UPF+uv32ri778ifAXZf1Vb?=
 =?iso-8859-1?Q?55PHuciIC90LC/rgLFH7z+ow73j+jaPK7wyDI77EiCNCRt8T2OYzanU9/K?=
 =?iso-8859-1?Q?5R1yOmjqxMa0vDRBuOS6DCgUdiA7vB2NzJdGqpgqseTL7PoNid55cTde2C?=
 =?iso-8859-1?Q?RUkXy0IS8xyL1hn7SGZ+oJ5LheE0KCYWHAxjo3Sn/hBaE892rlFHJbJWt8?=
 =?iso-8859-1?Q?i+rjoLbSCb5iYoU1khXRu7YOpSU+Z6Wp/mqmsfjZqmgfvIZ8D6K4O5XbEB?=
 =?iso-8859-1?Q?AMPjieO5lgE9lwr1d8cNHt0erJHFaLVnnvsdSrteqhtRS374Q+KgvlvWIz?=
 =?iso-8859-1?Q?Mztx+EYMWjXaH3wEexR7QrcWkZli66qCaCTgeiCPvQ4cmZA9ri/AeKr7AV?=
 =?iso-8859-1?Q?fuyBa4UPZVuVAyJny+LpJgMloWVno/bS9F+SHdub3EAjYmXk0vGC8hfOZa?=
 =?iso-8859-1?Q?3SMsY9FU5ZVUPIr+9R3HL9v3hZeHts+YmA+Wr+RRsOCw+M5m0HcNMuZGgq?=
 =?iso-8859-1?Q?q7wpkNzlm9CAOu0kxnrquDiI1Be/obpnwnmIKE70+G1Fxt/nrSq2+J0WXM?=
 =?iso-8859-1?Q?o/sVALz1tekTvetLnd7RZYkzWTf2avbs7VJO0lYfpq0K3ek1ecdqArr5PA?=
 =?iso-8859-1?Q?0HlpaipgxsJtqrFpZ9/qTTtboMdmuiGNu55IklqODH8mDgLfvdFMFqGDF6?=
 =?iso-8859-1?Q?sTpbMnruspEUvypg/i6RNWxvwnmYZCIQlU3ptwJo76j1wNGXdBWiA1WMqo?=
 =?iso-8859-1?Q?7Q4KE7JH8B+NTj66gM5VQiwLuBwOyMKgXjhz/PK69GOwV5aOJkLZFtTv5Z?=
 =?iso-8859-1?Q?jhNR3dv1jvo73XNEsbhLN9O50HOPJGQMhpL202bsdgOhc4J8WZEgXiUwBK?=
 =?iso-8859-1?Q?Dvl4SSOpLa4FR0Xh91k=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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e4d14e36-eb2c-431b-cc0b-08dde596ef6f
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Aug 2025 18:24:18.0817
 (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: CTMOeAOqLPxZbbmdTxaJXpbr5l4BCMLomfsDGC4rlSOcE7GR7alxDzzIgHQBU+iRlr/OjzZrH5AGdlNsvKLnKP3v+VYHHysOX4oh+MC5DL0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MRWPR03MB11023

To properly deactivate guest interrupts and allow them to be retriggered
after the initial trigger, the LR needs to be updated. The current
implementation ignores interrupts outside the range specified by the mask
0x3FF, which only covers IRQ numbers up to 1023. To enable processing of
eSPI interrupts, this patch updates the mask to 0x13FF.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

---
Changes in V4:
- added reviewed-by from Volodymyr Babchuk

Changes in V3:
- no changes

Changes in V2:
- remove unnecessary CONFIG_GICV3_ESPI ifdef guard
---
 xen/arch/arm/include/asm/gic_v3_defs.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/arm/include/asm/gic_v3_defs.h b/xen/arch/arm/include/=
asm/gic_v3_defs.h
index c10db9bd05..eedb7af1fe 100644
--- a/xen/arch/arm/include/asm/gic_v3_defs.h
+++ b/xen/arch/arm/include/asm/gic_v3_defs.h
@@ -211,7 +211,7 @@
 #define ICH_LR_VIRTUAL_SHIFT         0
 #define ICH_LR_CPUID_MASK            0x7
 #define ICH_LR_CPUID_SHIFT           10
-#define ICH_LR_PHYSICAL_MASK         0x3ff
+#define ICH_LR_PHYSICAL_MASK         0x13ff
 #define ICH_LR_PHYSICAL_SHIFT        32
 #define ICH_LR_STATE_MASK            0x3
 #define ICH_LR_STATE_SHIFT           62
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 18:24:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 18:24:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096733.1451397 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urKot-0000vU-JM; Wed, 27 Aug 2025 18:24:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096733.1451397; Wed, 27 Aug 2025 18:24: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 1urKot-0000ul-EI; Wed, 27 Aug 2025 18:24:27 +0000
Received: by outflank-mailman (input) for mailman id 1096733;
 Wed, 27 Aug 2025 18:24:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=x+iP=3H=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1urKor-0006ki-AF
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 18:24:25 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0d63a65a-8373-11f0-ae26-e363de0e7a9e;
 Wed, 27 Aug 2025 20:24:21 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by MRWPR03MB11023.eurprd03.prod.outlook.com (2603:10a6:501:76::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.15; Wed, 27 Aug
 2025 18:24:20 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Wed, 27 Aug 2025
 18:24: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>
X-Inumbo-ID: 0d63a65a-8373-11f0-ae26-e363de0e7a9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=w3mDpdBaV9713AyQXLHKmPRuDZ7raRoU8CQqQnVwhNbilNJWU7X9cVQpm92fZG20Q0xjNMILghNcQWW9MnM/9nr1K2I4bW28qjiL8WhyctDBWWlZkLigUpu5iCe5aRZ3b+Tg5oZKZL7KWcLHgQI0AGAp+Mz/Q3F4nMZ9vc2avWojgd7mTz3mNuc/Q90eS5UdWEk0ReGZ/H+QbPQqnwYjDGWVfr/03SE5bwwF2qSl06olfr1nDZjZ2bJGF1hPCb7Yxlw6xCYG14dTdu5u6It6vMMjMQpgbCL4fc7J+rzuqh8hLagpF9/13PO5R+/axTeZNC7gZn3YPHiKeTvgkn6wcg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=F6L4FXvFQbNB8ZhT4YotPvnWrT6H2MRs1xEiJVaPXYI=;
 b=HmIbLjDpSZBVEE4PPVtOW4L8Ar+8/Xtdea3p45R6mfcx2EHvTxkO7t0kWHcqmwaAYG/E1Gopb7rNmgkx4yishvB7eW27liC16BzMGqWIO6PCOIJyMxZxO/J9VY70kVhbsX7oHYD0kTcBT14JgE/JAwhxS7mP1/ZhHlaupyvfY5+2lXcibj4pZjvYBf5ZCB+uRhCnEsULgIi5Yj7H6EVygxEpirN09HxIX8z2wLKqFg3LNFWDrL5yElRk0I9DXRExevDxhgxXWRLAf3+CkRsoyYSYhOGkIZ8YqD1/wqAsAU/bDnPed6HL7qOrobJPeBS8M/vxUGsYzpFig7vqG1yf7w==
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=F6L4FXvFQbNB8ZhT4YotPvnWrT6H2MRs1xEiJVaPXYI=;
 b=ebXhZuQKIJNZpyxof0jisw9TfpHuycZCrQpmGNJA7X35tD20xgMj36nKctvdxaJ8iJc0Xt1S5OzloWaCf8d/eIhPUVP36gEuQO5bPBW4REzxXVAju5jo64LPXTcX2MBweS+JaLCzSXHiFZtq2RY3LmvVNwNVitRT/g8PBVz7le+FUaE5ApCeFp3pArSVIKtpMx8r3KurPnshvhMmuZsYsJov99pIGDojqV5g7h8E4hmQowu1Tfxfm0PVRUtMTTrqHJPaLKwstc8UQ+MCKxUhwIFj62VBb4iCaWiRYEolXeyv4ynh21v8p62wdazbkQQqoUdxhkWNoGt+JWwRQ2Zgeg==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "olekstysh@gmail.com" <olekstysh@gmail.com>, Leonid Komarianskyi
	<Leonid_Komarianskyi@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 v4 08/12] xen/arm: vgic: add resource management for extended
 SPIs
Thread-Topic: [PATCH v4 08/12] xen/arm: vgic: add resource management for
 extended SPIs
Thread-Index: AQHcF3/NodAFMh424U2CquWmKsv0JA==
Date: Wed, 27 Aug 2025 18:24:19 +0000
Message-ID:
 <9e8a11b024833c1b91b8806e7708bf35b04a8f6e.1756317702.git.leonid_komarianskyi@epam.com>
References: <cover.1756317702.git.leonid_komarianskyi@epam.com>
In-Reply-To: <cover.1756317702.git.leonid_komarianskyi@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: GV2PR03MB8678:EE_|MRWPR03MB11023:EE_
x-ms-office365-filtering-correlation-id: e378047f-1755-4721-71b8-08dde596f078
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?d2N6JBLl/4/N9ZhOxtW7e7QEodM0RdFo96W5KUjETxAR5rgvaA2cD8n70Y?=
 =?iso-8859-1?Q?xPXNjHt4VTpnKIoWRyqecZBeZtpQvRrz18LWZv23gDD35CbA2sk6rLJRig?=
 =?iso-8859-1?Q?S9Cr7Gh3iRjzzlOWbF3P9g3LuOuAmbjbNsXdBFLXew1rt605U3YM7havgH?=
 =?iso-8859-1?Q?A7NWUEnworTD3KnSfXiyRNvE3NH7fUvNPYapzgjP+0hXtPHvchG75TZhGy?=
 =?iso-8859-1?Q?/BmWFbH6q6Si4OxFHWCTIG/kuaoaQm2ziVKSrUA/tWsq5Ds+2Iztfjjd9H?=
 =?iso-8859-1?Q?NamyJu6l+KQ3De8DqnwUJ9ojCeRzFBo6vZGFLZUw1sTspVvjhcmcQEBElL?=
 =?iso-8859-1?Q?1wqQPLdc3fzosnkvxATTDFZbP5NXjTX52aXI6nAzErwDczbJwzN0+kOG/S?=
 =?iso-8859-1?Q?JaBAdIyWqqml1b6IUAKNTv9Gp9EY3iXFGe6YaHSKNu1TqH9YejM0z59oWY?=
 =?iso-8859-1?Q?7B7hTmuOBmlZRO5v+OYgINPv97KjW6/omXR9jzjcL0svhJaCeFUPMDNeec?=
 =?iso-8859-1?Q?tfmVooJlEpi5mpVlCiGJ0gKf37fcWDVeTV+BlIuGOXr9qlOstbkISTFoUJ?=
 =?iso-8859-1?Q?1Ej/cgWW7Wl/x4bEXKXekbG0V1/l8agQfrRE0O3iLNwvraahDcmedDurJP?=
 =?iso-8859-1?Q?r8Dy+Tb8Y5S5tyQ1uBHrMfj1rLhexiVMsK0WteU8W3BaN1xqn5Mls0o/6w?=
 =?iso-8859-1?Q?1iOChPoMCiHKRGRTjCz/qDZ5ebPP/gunMVJvVqofJuOWLLlVrrn8lhxykI?=
 =?iso-8859-1?Q?vggjD8fY4xQq+rC/BXjNLdxP/sNkoL6C0aSQQIA9tl2lZZr93bMFq4eTj3?=
 =?iso-8859-1?Q?Wkbs6RYPE/wuYXw3nW+BZqZJqOu+Uck9x2WR/qZwciWWHVvzxTvjm9vfYU?=
 =?iso-8859-1?Q?g7AojVx8UaQy5h+KcNCQ0uVN3ObJsiRvhLMRMl20Ovsj9QyQ0HHKPpnHBF?=
 =?iso-8859-1?Q?IgBy7NLQ8BD+yp3PYxdcnOSTAfCjbXy0zfCkVJnq5hqVSBDiy8YVUBJ6uF?=
 =?iso-8859-1?Q?7T1i4DEvvhRPKc+gxf0VMBC1NqhKSJZBs7guyeQJQN0r1TGQF8mZ1BoNBJ?=
 =?iso-8859-1?Q?7+8IZbTDfqjUT1JVI4Vy09ZvCRcLQTBDZ7VSaQ32VSMMZnNQfeFNnAx1jW?=
 =?iso-8859-1?Q?r4j5Pn2ZLLO+VH9z67RzeDuLcykFMp7X1REak8T4rrDPiPnocZL9ZMFAMc?=
 =?iso-8859-1?Q?DCaXsfnItsW5tUguC20q5oSqs0RMzNtXNutoKFGfh5AnMHWPjC/pG6aRl2?=
 =?iso-8859-1?Q?UKJ1ZZYqQRaPHMg6FUHQqvgdzMhv8XtjxfNWlDYYY4MO0QpUGHfniceA3Y?=
 =?iso-8859-1?Q?A1IulavZBDcHphGoaTykf2khlBxc+zIyKE9ZKwVVe+zZr05+PMELV1MTvV?=
 =?iso-8859-1?Q?S3dpu5yMq0GlikJCLO391wFnHyUQcx0DBNBxmcR/R0DIyh10bdb3Glv79B?=
 =?iso-8859-1?Q?rQSG2J+K2bpSnsRqJWoGbuL6UzGgfvp+UgYGBA/SHS2GYWkjQwM625cABz?=
 =?iso-8859-1?Q?ZvL58WvHgcXZcXHKIMmdM5Gl6ozByeIL4OkC0UNdAFIw=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?dwENzEJFF0cgNtN92m1QeeW8SJWHO8dSVMqbr+kI5RZYiC+6g2MvMUkj9x?=
 =?iso-8859-1?Q?CJc62U8yqXfH4XDlgq0Cbg9WvA0XuKuxnSMuzx+ylxgQToRdUhtQy7t0lm?=
 =?iso-8859-1?Q?jmoc2oVhvHn1uA6kxKFrWpkSaGwmHK6s1tFPBX6oiK5zOBsWXySUkYVJy6?=
 =?iso-8859-1?Q?+7vCKzWeYX1cC65eSr4B4Eh93oBNlOxp0NMubgLFM5ol84hkuNy1FZvKuN?=
 =?iso-8859-1?Q?3sFo3E9iAQ+QkIzHMRdgLwSzps+fvqGfxY4kyEX1CnBdm0+oXgs6+Dx87f?=
 =?iso-8859-1?Q?PKeDPlrorSwcJ7FOaoMQp9Csv/4UNYBSddczGvniK/EYuHSKvSb6J7uKwA?=
 =?iso-8859-1?Q?Y37VlqVZic05jLNpsQ5UP/Fs8SuOggz875cPuqVcEC47+GEJi+sDrRH5ow?=
 =?iso-8859-1?Q?/wn1RHsX/EAcHSrde/R2w4dnsrcScmzMM4GlTxBaonmosaw3ieWHetBGnB?=
 =?iso-8859-1?Q?gzAUxAlkI7kEZIO+C22ift3A/Kc1qHcZRNAAGLu6QBtG9Y5chKrVRVL0n6?=
 =?iso-8859-1?Q?ZQHWplzfMfkfNDt+/eSqA1BJhdfzL+OXagVmZhGFCFGQaR7vDlFQ9ovAKF?=
 =?iso-8859-1?Q?UVpFtt+oPwPR3W0dRR49wPuuIJ06X9dV/ehU+1F1QoufR7GsdhEaFe7Zkr?=
 =?iso-8859-1?Q?7zjtGR5AVYpUt66pIzmAAZIdNIgoaZYJJ6Jk5PbeeI0yWa2FxcNC01V/vP?=
 =?iso-8859-1?Q?sPk7c46IaWYXrJAl5XddAGvEeKG/kdN8xxNFsMpN/0wDlR79YvHL96gzoV?=
 =?iso-8859-1?Q?vT5cCZWyC3ydq0Mw6DtJyGngai1gVT5tXfBumdc6agYVgyt/BCC1I/D+bb?=
 =?iso-8859-1?Q?Do3r/3y9bYs3RMi1sGHmkY0kCE3rBXhZcwO597fdaNQKbIJxPH+61uBA79?=
 =?iso-8859-1?Q?WwcGFA6Obd8ck0eQqe9aGm95Y6AQpihwuu7WkCLHi//jV0Qzek4OlqRgMa?=
 =?iso-8859-1?Q?+HFNjIM58ojy6X3AP5Wo9q6DD4JViUteih6A53rQc8VFDLZBIP0bpoZ+qG?=
 =?iso-8859-1?Q?lnhLG1t5MD2td7wslB39EE7unY+Le2aaRwh+6q9EOKfIWuN0RBnzleOQ3A?=
 =?iso-8859-1?Q?NzYC1KUIkIcb4E8PdhEqEN78mK9kt5/p4U9YciN7KTaji8pGtcgeUkt4Am?=
 =?iso-8859-1?Q?AC6E2sVSUSgnchgHyaOPhOp1fH/kmGd9YI4D6gvYM1VtW8+1JhYKatplUC?=
 =?iso-8859-1?Q?F+/t5TqmfAtHB4IwRH4Mt9Ih8tZuGDBWOppuuqvJKebR7GhqauOjBrPRol?=
 =?iso-8859-1?Q?RUmMLtCPq+exFkxHf/Oq9yYbOMGYuSxOv4vOsU040fgqyK3PV79AzIfdjA?=
 =?iso-8859-1?Q?ZS2e/FlUwzFGWRdZqnI4VvxVVeAdNl25yInM8uwyRRVW9ezL4r+EWqNXfo?=
 =?iso-8859-1?Q?GNt+ZFzwNZUYJQrzmsLMMZ2bTqQ3PpeW3mJijjZfOHviPcMIkIjl8vR6O+?=
 =?iso-8859-1?Q?vGyfN5eYXdDQVbfjLIsWpNet866fmC90ilu3xM6sx5v8p95oRuksuLuvFg?=
 =?iso-8859-1?Q?eYbODjHQUSrSbsemdQv5arFWc/ZjT1mVDfhOHPXbhvLXx9R3xpa0NLO0Yz?=
 =?iso-8859-1?Q?kxVZMm1q4VemAIM+TLhm/9MhwLqRLdhyEf2MkVJzl+GtdRbUN+VjEUp93C?=
 =?iso-8859-1?Q?EJ/FATL6csp/XERVzMxcTLkk22pBRWLlKvNy3ezMPLSiiZdWb/eLbni2cU?=
 =?iso-8859-1?Q?Zoqc5ulEd44HG602rIk=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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e378047f-1755-4721-71b8-08dde596f078
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Aug 2025 18:24:19.8572
 (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: umwuZCqRqeMgAL9AjXzEmFcvskxIjVB9DwIMBYMYNwvLeowBW6QEyV8CVQ18uPgDbA2weIpX5mSGZRpJ58NUOmqaUyyAMJLy7Z/8J9muWp0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MRWPR03MB11023

This change introduces resource management in the VGIC to handle
extended SPIs introduced in GICv3.1. The pending_irqs and
allocated_irqs arrays are resized to support the required
number of eSPIs, based on what is supported by the hardware and
requested by the guest. A new field, ext_shared_irqs, is added
to the VGIC structure to store information about eSPIs, similar
to how shared_irqs is used for regular SPIs.

Since the eSPI range starts at INTID 4096 and INTIDs between 1025
and 4095 are reserved, helper macros are introduced to simplify the
transformation of indices and to enable easier access to eSPI-specific
resources. These changes prepare the VGIC for processing eSPIs as
required by future functionality.

The initialization and deinitialization paths for vgic have been updated
to allocate and free these resources appropriately. Additionally,
updated handling of INTIDs greater than 1024, passed from the toolstack
during domain creation, and verification logic ensures only valid SPI or
eSPI INTIDs are used.

The existing SPI behavior remains unaffected when guests do not request
eSPIs, GIC hardware does not support them, or the CONFIG_GICV3_ESPI
option is disabled.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>

---
Changes in V4:
- added has_espi field to simplify determining whether a domain is able
  to operate with eSPI
- fixed formatting issues and misspellings

Changes in V3:
- fixed formatting for lines with more than 80 symbols
- introduced helper functions to be able to use stubs in case of
  CONFIG_GICV3_ESPI disabled, and as a result, reduce the number of
  #ifdefs
- fixed checks for nr_spis in domain_vgic_init
- updated comment about nr_spis adjustments with dom0less mention
- moved comment with additional explanations before checks
- used unsigned int for indexes since they cannot be negative
- removed unnecessary parentheses
- move vgic_ext_rank_offset to the below ifdef guard, to reduce the
  number of ifdefs

Changes in V2:
- change is_espi_rank to is_valid_espi_rank to verify whether the array
  element ext_shared_irqs exists. The previous version, is_espi_rank,
  only checked if the rank index was less than the maximum possible eSPI
  rank index, but this could potentially result in accessing a
  non-existing array element. To address this, is_valid_espi_rank was
  introduced, which ensures that the required eSPI rank exists
- move gic_number_espis to
  xen/arm: gicv3: implement handling of GICv3.1 eSPI
- update vgic_is_valid_irq checks to allow operating with eSPIs
- remove redundant newline in vgic_allocate_virq
---
 xen/arch/arm/include/asm/vgic.h |  20 +++
 xen/arch/arm/vgic.c             | 213 +++++++++++++++++++++++++++++++-
 2 files changed, 230 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/vgi=
c.h
index 3e7cbbb196..fb4cea73eb 100644
--- a/xen/arch/arm/include/asm/vgic.h
+++ b/xen/arch/arm/include/asm/vgic.h
@@ -146,6 +146,12 @@ struct vgic_dist {
     int nr_spis; /* Number of SPIs */
     unsigned long *allocated_irqs; /* bitmap of IRQs allocated */
     struct vgic_irq_rank *shared_irqs;
+#ifdef CONFIG_GICV3_ESPI
+    struct vgic_irq_rank *ext_shared_irqs;
+    int nr_espis; /* Number of extended SPIs */
+    /* To simplify determining whether a domain is able to operate with eS=
PI */
+    bool has_espi;
+#endif
     /*
      * SPIs are domain global, SGIs and PPIs are per-VCPU and stored in
      * struct arch_vcpu.
@@ -243,6 +249,14 @@ struct vgic_ops {
 /* Number of ranks of interrupt registers for a domain */
 #define DOMAIN_NR_RANKS(d) (((d)->arch.vgic.nr_spis+31)/32)
=20
+#ifdef CONFIG_GICV3_ESPI
+#define DOMAIN_NR_EXT_RANKS(d) (((d)->arch.vgic.nr_espis+31)/32)
+#define EXT_RANK_MIN (ESPI_BASE_INTID/32)
+#define EXT_RANK_MAX ((ESPI_MAX_INTID+31)/32)
+#define EXT_RANK_NUM2IDX(num) ((num)-EXT_RANK_MIN)
+#define EXT_RANK_IDX2NUM(idx) ((idx)+EXT_RANK_MIN)
+#endif
+
 #define vgic_lock(v)   spin_lock_irq(&(v)->domain->arch.vgic.lock)
 #define vgic_unlock(v) spin_unlock_irq(&(v)->domain->arch.vgic.lock)
=20
@@ -302,6 +316,12 @@ extern struct vgic_irq_rank *vgic_rank_offset(struct v=
cpu *v,
                                               unsigned int b,
                                               unsigned int n,
                                               unsigned int s);
+#ifdef CONFIG_GICV3_ESPI
+extern struct vgic_irq_rank *vgic_ext_rank_offset(struct vcpu *v,
+                                                  unsigned int b,
+                                                  unsigned int n,
+                                                  unsigned int s);
+#endif
 extern struct vgic_irq_rank *vgic_rank_irq(struct vcpu *v, unsigned int ir=
q);
 extern void vgic_disable_irqs(struct vcpu *v, uint32_t r, unsigned int n);
 extern void vgic_enable_irqs(struct vcpu *v, uint32_t r, unsigned int n);
diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
index 2bbf4d99aa..f4b80cb05f 100644
--- a/xen/arch/arm/vgic.c
+++ b/xen/arch/arm/vgic.c
@@ -27,9 +27,82 @@
=20
 bool vgic_is_valid_line(struct domain *d, unsigned int virq)
 {
+#ifdef CONFIG_GICV3_ESPI
+    if ( virq >=3D ESPI_BASE_INTID &&
+         virq < ESPI_IDX2INTID(d->arch.vgic.nr_espis) )
+        return true;
+#endif
+
     return virq < vgic_num_irqs(d);
 }
=20
+#ifdef CONFIG_GICV3_ESPI
+/*
+ * Since eSPI indexes start from 4096 and numbers from 1024 to
+ * 4095 are forbidden, we need to check both lower and upper
+ * limits for ranks.
+ */
+static inline bool is_valid_espi_rank(struct domain *d, unsigned int rank)
+{
+    return rank >=3D EXT_RANK_MIN &&
+           EXT_RANK_NUM2IDX(rank) < DOMAIN_NR_EXT_RANKS(d);
+}
+
+static inline struct vgic_irq_rank *vgic_get_espi_rank(struct vcpu *v,
+                                                       unsigned int rank)
+{
+    return &v->domain->arch.vgic.ext_shared_irqs[EXT_RANK_NUM2IDX(rank)];
+}
+
+static inline bool vgic_reserve_espi_virq(struct domain *d, unsigned int v=
irq)
+{
+    return !test_and_set_bit(ESPI_INTID2IDX(virq) + vgic_num_irqs(d),
+                             d->arch.vgic.allocated_irqs);
+}
+
+static void arch_move_espis(struct vcpu *v)
+{
+    const cpumask_t *cpu_mask =3D cpumask_of(v->processor);
+    struct domain *d =3D v->domain;
+    struct pending_irq *p;
+    struct vcpu *v_target;
+    unsigned int i;
+
+    for ( i =3D ESPI_BASE_INTID;
+          i < EXT_RANK_IDX2NUM(d->arch.vgic.nr_espis); i++ )
+    {
+        v_target =3D vgic_get_target_vcpu(v, i);
+        p =3D irq_to_pending(v_target, i);
+
+        if ( v_target =3D=3D v && !test_bit(GIC_IRQ_GUEST_MIGRATING, &p->s=
tatus) )
+            irq_set_affinity(p->desc, cpu_mask);
+    }
+}
+#else
+static inline bool is_valid_espi_rank(struct domain *d, unsigned int rank)
+{
+    return false;
+}
+
+/*
+ * This function is stub and will not be called if CONFIG_GICV3_ESPI=3Dn,
+ * because in this case, is_valid_espi_rank will always return false.
+ */
+static inline struct vgic_irq_rank *vgic_get_espi_rank(struct vcpu *v,
+                                                       unsigned int rank)
+{
+    ASSERT_UNREACHABLE();
+    return NULL;
+}
+
+static inline bool vgic_reserve_espi_virq(struct domain *d, unsigned int v=
irq)
+{
+    return false;
+}
+
+static void arch_move_espis(struct vcpu *v) { }
+#endif
+
 static inline struct vgic_irq_rank *vgic_get_rank(struct vcpu *v,
                                                   unsigned int rank)
 {
@@ -37,6 +110,8 @@ static inline struct vgic_irq_rank *vgic_get_rank(struct=
 vcpu *v,
         return v->arch.vgic.private_irqs;
     else if ( rank <=3D DOMAIN_NR_RANKS(v->domain) )
         return &v->domain->arch.vgic.shared_irqs[rank - 1];
+    else if ( is_valid_espi_rank(v->domain, rank) )
+        return vgic_get_espi_rank(v, rank);
     else
         return NULL;
 }
@@ -117,6 +192,74 @@ int domain_vgic_register(struct domain *d, unsigned in=
t *mmio_count)
     return 0;
 }
=20
+#ifdef CONFIG_GICV3_ESPI
+/*
+ * The function behavior is the same as for regular SPIs (vgic_rank_offset=
),
+ * but it operates with extended SPI ranks.
+ */
+struct vgic_irq_rank *vgic_ext_rank_offset(struct vcpu *v, unsigned int b,
+                                           unsigned int n, unsigned int s)
+{
+    unsigned int rank =3D REG_RANK_NR(b, (n >> s));
+
+    return vgic_get_rank(v, rank + EXT_RANK_MIN);
+}
+
+static unsigned int vgic_num_spi_lines(struct domain *d)
+{
+    return d->arch.vgic.nr_spis + d->arch.vgic.nr_espis;
+}
+
+static int init_vgic_espi(struct domain *d)
+{
+    unsigned int i, idx;
+
+    if ( d->arch.vgic.nr_espis =3D=3D 0 )
+        return 0;
+
+    d->arch.vgic.ext_shared_irqs =3D
+        xzalloc_array(struct vgic_irq_rank, DOMAIN_NR_EXT_RANKS(d));
+    if ( d->arch.vgic.ext_shared_irqs =3D=3D NULL )
+        return -ENOMEM;
+
+    for ( i =3D d->arch.vgic.nr_spis, idx =3D 0;
+          i < vgic_num_spi_lines(d); i++, idx++ )
+        vgic_init_pending_irq(&d->arch.vgic.pending_irqs[i],
+                              ESPI_IDX2INTID(idx));
+
+    for ( i =3D 0; i < DOMAIN_NR_EXT_RANKS(d); i++ )
+        vgic_rank_init(&d->arch.vgic.ext_shared_irqs[i], i, 0);
+
+    return 0;
+}
+
+struct pending_irq *espi_to_pending(struct domain *d, unsigned int irq)
+{
+    irq =3D ESPI_INTID2IDX(irq) + d->arch.vgic.nr_spis;
+    return &d->arch.vgic.pending_irqs[irq];
+}
+#else
+static unsigned int init_vgic_espi(struct domain *d)
+{
+    return 0;
+}
+
+static unsigned int vgic_num_spi_lines(struct domain *d)
+{
+    return d->arch.vgic.nr_spis;
+}
+
+struct pending_irq *espi_to_pending(struct domain *d, unsigned int irq)
+{
+    return NULL;
+}
+#endif
+
+static unsigned int vgic_num_alloc_irqs(struct domain *d)
+{
+    return vgic_num_spi_lines(d) + NR_LOCAL_IRQS;
+}
+
 int domain_vgic_init(struct domain *d, unsigned int nr_spis)
 {
     int i;
@@ -131,6 +274,38 @@ int domain_vgic_init(struct domain *d, unsigned int nr=
_spis)
      */
     nr_spis =3D ROUNDUP(nr_spis, 32);
=20
+#ifdef CONFIG_GICV3_ESPI
+    /*
+     * During domain creation, the dom0less DomUs code or toolstack specif=
ies
+     * the maximum INTID, which is defined in the domain config subtracted=
 by
+     * 32 to cover the local IRQs (please see the comment to VGIC_DEF_NR_S=
PIS).
+     * To compute the actual number of eSPI that will be usable for,
+     * add back 32.
+     */
+    if ( nr_spis + 32 > ESPI_IDX2INTID(NR_ESPI_IRQS) )
+        return -EINVAL;
+
+    if ( nr_spis + 32 >=3D ESPI_BASE_INTID )
+    {
+        d->arch.vgic.nr_espis =3D min(nr_spis - ESPI_BASE_INTID + 32, 1024=
U);
+        /* Verify if GIC HW can handle provided INTID */
+        if ( d->arch.vgic.nr_espis > gic_number_espis() )
+            return -EINVAL;
+        /*
+         * Set the maximum available number for regular
+         * SPI to pass the next check
+         */
+        nr_spis =3D VGIC_DEF_NR_SPIS;
+        d->arch.vgic.has_espi =3D true;
+    }
+    else
+    {
+        /* Domain will use the regular SPI range */
+        d->arch.vgic.nr_espis =3D 0;
+        d->arch.vgic.has_espi =3D false;
+    }
+#endif
+
     /* Limit the number of virtual SPIs supported to (1020 - 32) =3D 988  =
*/
     if ( nr_spis > (1020 - NR_LOCAL_IRQS) )
         return -EINVAL;
@@ -145,7 +320,7 @@ int domain_vgic_init(struct domain *d, unsigned int nr_=
spis)
         return -ENOMEM;
=20
     d->arch.vgic.pending_irqs =3D
-        xzalloc_array(struct pending_irq, d->arch.vgic.nr_spis);
+        xzalloc_array(struct pending_irq, vgic_num_spi_lines(d));
     if ( d->arch.vgic.pending_irqs =3D=3D NULL )
         return -ENOMEM;
=20
@@ -156,12 +331,16 @@ int domain_vgic_init(struct domain *d, unsigned int n=
r_spis)
     for ( i =3D 0; i < DOMAIN_NR_RANKS(d); i++ )
         vgic_rank_init(&d->arch.vgic.shared_irqs[i], i + 1, 0);
=20
+    ret =3D init_vgic_espi(d);
+    if ( ret )
+        return ret;
+
     ret =3D d->arch.vgic.handler->domain_init(d);
     if ( ret )
         return ret;
=20
     d->arch.vgic.allocated_irqs =3D
-        xzalloc_array(unsigned long, BITS_TO_LONGS(vgic_num_irqs(d)));
+        xzalloc_array(unsigned long, BITS_TO_LONGS(vgic_num_alloc_irqs(d))=
);
     if ( !d->arch.vgic.allocated_irqs )
         return -ENOMEM;
=20
@@ -195,9 +374,27 @@ void domain_vgic_free(struct domain *d)
         }
     }
=20
+#ifdef CONFIG_GICV3_ESPI
+    for ( i =3D 0; i < d->arch.vgic.nr_espis; i++ )
+    {
+        struct pending_irq *p =3D spi_to_pending(d, ESPI_IDX2INTID(i));
+
+        if ( p->desc )
+        {
+            ret =3D release_guest_irq(d, p->irq);
+            if ( ret )
+                dprintk(XENLOG_G_WARNING, "d%u: Failed to release virq %u =
ret =3D %d\n",
+                        d->domain_id, p->irq, ret);
+        }
+    }
+#endif
+
     if ( d->arch.vgic.handler )
         d->arch.vgic.handler->domain_free(d);
     xfree(d->arch.vgic.shared_irqs);
+#ifdef CONFIG_GICV3_ESPI
+    xfree(d->arch.vgic.ext_shared_irqs);
+#endif
     xfree(d->arch.vgic.pending_irqs);
     xfree(d->arch.vgic.allocated_irqs);
 }
@@ -331,6 +528,8 @@ void arch_move_irqs(struct vcpu *v)
         if ( v_target =3D=3D v && !test_bit(GIC_IRQ_GUEST_MIGRATING, &p->s=
tatus) )
             irq_set_affinity(p->desc, cpu_mask);
     }
+
+    arch_move_espis(v);
 }
=20
 void vgic_disable_irqs(struct vcpu *v, uint32_t r, unsigned int n)
@@ -538,6 +737,8 @@ struct pending_irq *irq_to_pending(struct vcpu *v, unsi=
gned int irq)
         n =3D &v->arch.vgic.pending_irqs[irq];
     else if ( is_lpi(irq) )
         n =3D v->domain->arch.vgic.handler->lpi_to_pending(v->domain, irq)=
;
+    else if ( is_espi(irq) )
+        n =3D espi_to_pending(v->domain, irq);
     else
         n =3D &v->domain->arch.vgic.pending_irqs[irq - 32];
     return n;
@@ -547,6 +748,9 @@ struct pending_irq *spi_to_pending(struct domain *d, un=
signed int irq)
 {
     ASSERT(irq >=3D NR_LOCAL_IRQS);
=20
+    if ( is_espi(irq) )
+        return espi_to_pending(d, irq);
+
     return &d->arch.vgic.pending_irqs[irq - 32];
 }
=20
@@ -668,6 +872,9 @@ bool vgic_reserve_virq(struct domain *d, unsigned int v=
irq)
     if ( !vgic_is_valid_line(d, virq) )
         return false;
=20
+    if ( is_espi(virq) )
+        return vgic_reserve_espi_virq(d, virq);
+
     return !test_and_set_bit(virq, d->arch.vgic.allocated_irqs);
 }
=20
@@ -685,7 +892,7 @@ int vgic_allocate_virq(struct domain *d, bool spi)
     else
     {
         first =3D 32;
-        end =3D vgic_num_irqs(d);
+        end =3D vgic_num_alloc_irqs(d);
     }
=20
     /*
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 18:24:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 18:24:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096737.1451407 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urKov-0001Lx-Cb; Wed, 27 Aug 2025 18:24:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096737.1451407; Wed, 27 Aug 2025 18:24: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 1urKov-0001LE-1y; Wed, 27 Aug 2025 18:24:29 +0000
Received: by outflank-mailman (input) for mailman id 1096737;
 Wed, 27 Aug 2025 18:24:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=x+iP=3H=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1urKot-0006ki-AL
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 18:24:27 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0e92b5f7-8373-11f0-ae26-e363de0e7a9e;
 Wed, 27 Aug 2025 20:24:23 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by MRWPR03MB11023.eurprd03.prod.outlook.com (2603:10a6:501:76::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.15; Wed, 27 Aug
 2025 18:24:21 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Wed, 27 Aug 2025
 18:24: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>
X-Inumbo-ID: 0e92b5f7-8373-11f0-ae26-e363de0e7a9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=snvsoNxT9MIm7DktgNbN2T7m53F+99+smHpVAx22NRB/eMM5D+OxOeKnu1gIS1D2JcViBOOHhzXn1UFyGYbAT2yZMK4FWcRaO1DI/4ulHXTKSmXK0scIpA5MMliImDb7bo8IMnxWxpiaaxRJEEA7fnJLSs1ilhRyGGikJm+NhnGHK0DWVduACIoQuoTy+vowoli7G7e9BW7Lz2u9SR2riC5RUA3NWRLWzxtONuK03I+nVrhzv6ZFRZ2CgP+uhsGpqrzYf3mrMej9i9xaYix1F8xkKr2WNEgYGxl2FN1xzBMlw4od4v7ZIbWxR0CN01WsJRukvprb6VyV31Ruq+af7A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+PQ9mtfgp+ElDWfvJmhV5S2DGgOIPnn7uteqiPRvflg=;
 b=WfZxLp+yyNYzk4W9eFjd8fNEKs1bOn/2w/gnI5L01vEIk35AXWUgJWiyP8nTqD1BCYYWfSnZgBsP9SD7SIHifj9uP0uBKbpIpWBQpO+zCiy1lCoADq3b3oQXMsJrOB0l9w4cKaSjo5VhlgCkVEKNHnQTDoQ2lieOIFhXJC7OVOArncc5lI0FOoHoIXq1vmL0ouOilDJr8kbXEJfVCoXg8whAKY90CtuebDkWOpE0OHla0GTp2tZJMD0wMqVjUSjyAMzQfivof8FTvcEG3YCQpzrSq/jTrgK6rOVTI9LO2/kVuxuPjFGKh9CG/jlPW2G1pGjCQHTFaRCgSW9nST609w==
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=+PQ9mtfgp+ElDWfvJmhV5S2DGgOIPnn7uteqiPRvflg=;
 b=BqQCLEU9dDROJ+HsOdUH+Wb5Sq8QYTo2ATchpn9pZNvGX4C67PvnYbJqD59eeyZK+Mlu3KNcBKJqXF2qftJKSWpbd4RTSXWfssO6n9sy/dqlw2HTqzNPC0B0VKjuKrg+r/gsZ+mJ3nZWxHkcQh2c/uNs9IRddC5ZLRPaJRLcVMOQhil9QUakDTPaj0CsUgV++ozq47huy23VcOAg+zPD5CGu8xI0t4MTPJGLEFhqczM858R/ceJH3eMIDe85U9jb2+irSDbASG4f1ulS3McwBy+DbrdRWjK6bRaVLjVN6EVP019lcq3R9bYHbYnhAWR74L8F/vc6gDYJ9Jn149KB9Q==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "olekstysh@gmail.com" <olekstysh@gmail.com>, Leonid Komarianskyi
	<Leonid_Komarianskyi@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 v4 09/12] xen/arm: domain_build/dom0less-build: adjust domains
 config to support eSPIs
Thread-Topic: [PATCH v4 09/12] xen/arm: domain_build/dom0less-build: adjust
 domains config to support eSPIs
Thread-Index: AQHcF3/Ont2iCNudZU+HGYrvI6u3EQ==
Date: Wed, 27 Aug 2025 18:24:21 +0000
Message-ID:
 <66b39c4ba25e7a19beeca62ab23f5d3ab3cbae52.1756317702.git.leonid_komarianskyi@epam.com>
References: <cover.1756317702.git.leonid_komarianskyi@epam.com>
In-Reply-To: <cover.1756317702.git.leonid_komarianskyi@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: GV2PR03MB8678:EE_|MRWPR03MB11023:EE_
x-ms-office365-filtering-correlation-id: 83ebfd62-94de-4179-525c-08dde596f14a
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?NsOc4OUFHt+hNoHBbci4vygN09oStk8yXzV12UAZ6rco90Gm9X/wmmO9PG?=
 =?iso-8859-1?Q?CJNUnBKE1NP5pQsFFPHSFQY8nxjMw4urc/6tJnK6+gQ9mrqLGzHSIg3/Ss?=
 =?iso-8859-1?Q?/oLSmGLW4NfrnP6gfu/5Bh4RHgVvLNZReyJqJ+1XvDadASuXUtf24MSQiO?=
 =?iso-8859-1?Q?uzlA/7vcg9YQH+g0vMzQSLydvATFPQ0OIdmLLGjW9ujJEHxiNw+B7N+J+5?=
 =?iso-8859-1?Q?DvQcZU/TozkGnCSz+gurRVT08FdFYvPc1xA7LPbbJ1G8P4ML89GS/HYm3f?=
 =?iso-8859-1?Q?GV0jHBPWHBM5iEtxJ615XihrlWAGU9/0oaDCCaBSeIcF1JwzCERlIT55xV?=
 =?iso-8859-1?Q?03d4qWTUlyz6kp8tY1M8XRnS3e8M0xv2Xpf/m8CVBmADRoNEtrknO4HkOp?=
 =?iso-8859-1?Q?4q2OSDDZpCR1m926IMSmmtRpiqev5tSe6o1q62F62MeCb/E4zZV5AA6LpZ?=
 =?iso-8859-1?Q?UI/TV1XeDC830r2JufJ31jEFPcjhAGv7UWALB6zd5X8I12X2MBC19n7vMm?=
 =?iso-8859-1?Q?4weM1vcspiLG4HE44GhatccnoK904OT38/r5TZ8ZTys91i/6IbdlM+s0R4?=
 =?iso-8859-1?Q?wHlqcwddajsHru5KND4j7ml4UG2Lr+NgHgE0qdFFkFuTvcX4E/H8hhFbvc?=
 =?iso-8859-1?Q?zxopdlbvkCqhiVZbCOz+EKRvuVaNdcUq8lFoHDCFJi5/qT7szQkbdIX52l?=
 =?iso-8859-1?Q?d8LnecKfqF+a/vp0LxegS4s7Xv5ijdvzLAG33NZ37qlPa05akWCoZKE829?=
 =?iso-8859-1?Q?o7jGjpjmy4zxMI2vU1u8G+z1GAB79HNjquP08GADnOK+LJbr3V9gRPorNJ?=
 =?iso-8859-1?Q?OR+g/EtLPL6Z31G8QoHaJl5ICqUVOOBCfbZsP+1ONbc08nuheea0kEF6jr?=
 =?iso-8859-1?Q?U476Vy+HZkp3kCGUa/A5AyaOCbRqhswJt8fqAMosJgwbD5jRJvBxy13I/V?=
 =?iso-8859-1?Q?p4aJ6aZewCxk1KKJi6bv5Yr8OXzGIer4dQIz1/AgdNv4ykZBkyW3Hw6jYp?=
 =?iso-8859-1?Q?+MkTiUpt3R6LxdkNeC1fPB5w47oJ9+EIZcxtMHC1sYCSTNGrVrsB9xLgUL?=
 =?iso-8859-1?Q?5zhixB0yXepHbdQqrQh+JQYoCjQRGR/HJd2NujNuTos3+xBHCVO79yBJqM?=
 =?iso-8859-1?Q?ppAGXNr930MPhXaweUGGix4AYGg0alLMWBIX7jdIUYI9gLo9EcBnhSSSLd?=
 =?iso-8859-1?Q?QpB3J5t2fEDZ7dKpq6GwYI8a0yEBnqc9hE9qFFZD//tvjwvLN1men568FS?=
 =?iso-8859-1?Q?hiWwdFXpNRQi45NfvCqypMbZ4koOwG0s13Ii2hNu7RKNFmjADU9ugVr60+?=
 =?iso-8859-1?Q?29kjTac8eqpdG4bN8w14Za5L8eI5hCLik4WFZNQFKvgllkKxkMobqfQZU4?=
 =?iso-8859-1?Q?7VkdmQKDyOYtRdyKzjWJqY+aUpj7eZ6K3WfFBwDdCSfoB+XsIYlcxLvW7/?=
 =?iso-8859-1?Q?W6hkFsPPqVoqUcZK6Y0i2GewK9Q2Rk9l/3XWen0I3ZcdgSzdkqe1qAovQt?=
 =?iso-8859-1?Q?LWrY/2+NZwW9D+3J1jtKlSeePBK1pUl5WLl2HjyYwIsA=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?bllhr1EbVqTKBG6hHoJ1gch3tvL1ZlpgVqQSqkzc5mKwnGJ2GsWFqWo6FI?=
 =?iso-8859-1?Q?lPqTwPayg2QIV0qrawgarcnLk2OQCSGTPA4HEgSyA4itcaB/qFddon4l6d?=
 =?iso-8859-1?Q?7FTXkfU9/HGWzWIE/Vb76AbX1n7M+jptWe+EzpHmo8c8aY6IcVlDLUBNsL?=
 =?iso-8859-1?Q?GgGIGknIp+WYPL3tw8qH2frfOOvjoiIXQ1H1ND10sGxiohlKOv/zxGLR0t?=
 =?iso-8859-1?Q?JOB/hm6tlVObSzCXJEMakpFCNuYlKLmcwVujiWYdpd2a3zsAU/qDK+E2yc?=
 =?iso-8859-1?Q?6AW0hQ1hOCYK9zq+1XioHoOEImORdKJxIIsjYfsWXJVvVuxz7ICxIq/j2u?=
 =?iso-8859-1?Q?LSPe7H5935L3Atb9LLsVhk+UNzONduLKJsJLXR7wDsl8SzbtvbsEFz+EH9?=
 =?iso-8859-1?Q?PQbJ5S8XH3tpX7IvkDbiiI3JwjFUe0bL+iLNY3hnQJfRVcmgH5eS3nOVz8?=
 =?iso-8859-1?Q?+bmU9oUWlAwLM54ojVLdTQ8P4fuh6drsSjKyOFLDvLGKKZ1Em24ojnERMS?=
 =?iso-8859-1?Q?vGLIMdJQNC4dRQriEo9eRdYHrVwEez74cP6iJR2fD9czbFMM2Vs7RxOfAA?=
 =?iso-8859-1?Q?diaKz3vj4t0k/QblQ1FNB6EoxiNqaDZ2Kp4wZAawjmuz+3HGvKD9RbK+NU?=
 =?iso-8859-1?Q?aqtgNpE1QYKLD4JwNKqkzaM/aTDlX4AIvumi50oJwPYRCU474WhfvUXlLm?=
 =?iso-8859-1?Q?oAUPV2yLbclrnU11ams3eEnGAHelGcoXtFfS+U1i8BWozaCLjZKnYvJ+wV?=
 =?iso-8859-1?Q?TlSJpcpNtseI8wIl9w/WG+SNEifDHhHGcuvUrW28e1c7nSQz2HXczEwxFl?=
 =?iso-8859-1?Q?Dqj0J/c/zvKyqoa6fxTFWRc6xk1oXCRJz0DgpTdQfrpvpcHoS3PihFncxe?=
 =?iso-8859-1?Q?EovmXXTtmh5FMos53QPaf1afpyzo0g/0uGPepTpGq7ksR1Tes9/PRJ8jlQ?=
 =?iso-8859-1?Q?pCmVti9GSS2iPVaj5SO6MJfhcGSz2rl2s+cbpw92WOWHxMq15LP4/Xmfz1?=
 =?iso-8859-1?Q?ee+RbcFQIpQpjaAoLaEl6FrSxlBzTShhTY+jCEa+Sv9uaoc42RNokj7Kan?=
 =?iso-8859-1?Q?rIDwInHcZIb6Z9k6mG45GeDf/gGI3wJIO30LoSKf3JYhmZh88Mp1YLUgY+?=
 =?iso-8859-1?Q?0M5izG6jrobz4vdI6+ThcPBZxUJpldPSpJlvfsPaA83fk8Uj+nvMvcmjhy?=
 =?iso-8859-1?Q?Yvc8eHBNklkpjp38rYGXEUT4t1R9z98+CP0aZ9bh9Y0ve0FfzFFXCNbYPI?=
 =?iso-8859-1?Q?C8BQD/vNAy30MH00CBvsyqYHUKpEiZLyn1jwrm7unmuH2q11NLwginpA8m?=
 =?iso-8859-1?Q?fREsSadhA1/d3fN1W5BG7Gjks8eHbd95t3RA2gMB1cN0rIE8q1MZAE79x6?=
 =?iso-8859-1?Q?o9FH+D7Cb8rDMMI3PssN2kIbMHz8VTM4FNdaiD/MEYUMgmtImbb1BaNrCM?=
 =?iso-8859-1?Q?VuAjjr+zbkNQ2PRRa1wvOfsofVHb4oDLTfRxUXhYJcgbPoUdzVT/1EEQAm?=
 =?iso-8859-1?Q?rxHOUwlXnE3l5a/ybeCqeiPd5sJrCMggB7M86IfnolShuecfrfj8HGPc9T?=
 =?iso-8859-1?Q?UaT7754Gqrs3OoWb0Z0tPdU2D9r3RqHjY35EGUtUASuKpOx8c9GET2feCx?=
 =?iso-8859-1?Q?ah3RQOFAN+Tqzbb/xBqCOt5sxGTtf5lsXQFcxY9fyUyYrSaGm2XG/uQBiU?=
 =?iso-8859-1?Q?HlRsUdb5XLiAewZQnW0=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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 83ebfd62-94de-4179-525c-08dde596f14a
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Aug 2025 18:24:21.2003
 (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: ayW9qOpsl1JpFhNkLEwSyhBDtDF2gMvfIUM34GCnbghLlPDxcJjAv+hzUuhafYTmA7FiEq376zHBXFRIWby5BmZvB1QJujSPMQUw5gwJPbw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MRWPR03MB11023

The Dom0 and DomUs logic for the dom0less configuration in create_dom0() an=
d
arch_create_domUs() has been updated to account for extended SPIs when
supported by the hardware and enabled with CONFIG_GICV3_ESPI. These changes
ensure the proper calculation of the maximum number of SPIs and eSPIs avail=
able
to Dom0 and DomUs in dom0less setups.

When eSPIs are supported by the hardware and CONFIG_GICV3_ESPI is enabled, =
the
maximum number of eSPI interrupts is calculated using the ESPI_BASE_INTID
offset (4096) and is limited to 1024, with 32 IRQs subtracted. To ensure
compatibility with non-Dom0 domains, this adjustment is applied by the
toolstack during domain creation, while for Dom0 or DomUs in Dom0, it is
handled directly during VGIC initialization. If eSPIs are not supported, th=
e
calculation defaults to using the standard SPI range, with a maximum value =
of
992 interrupt lines, as it works currently.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>

---
Changes in V4:
- consolidated the eSPI and SPI logic into a new inline function,
  vgic_def_nr_spis. Without eSPI support (either due to config being
  disabled or hardware not supporting it), it will return the regular SPI
  range, as it works currently. There are no functional changes compared
  with the previous patch version
- removed VGIC_DEF_MAX_SPI macro, to reduce the number of ifdefs

Changes in V3:
- renamed macro VGIC_DEF_NR_ESPIS to more appropriate VGIC_DEF_MAX_SPI
- added eSPI initialization for dom0less setups
- fixed comment with mentions about dom0less builds
- fixed formatting for lines with more than 80 symbols
- updated commit message

Changes in V2:
- no changes
---
 xen/arch/arm/dom0less-build.c   |  2 +-
 xen/arch/arm/domain_build.c     |  2 +-
 xen/arch/arm/include/asm/vgic.h | 21 +++++++++++++++++++++
 3 files changed, 23 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index 69b9ea22ce..02d5559102 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -285,7 +285,7 @@ void __init arch_create_domUs(struct dt_device_node *no=
de,
     {
         int vpl011_virq =3D GUEST_VPL011_SPI;
=20
-        d_cfg->arch.nr_spis =3D VGIC_DEF_NR_SPIS;
+        d_cfg->arch.nr_spis =3D vgic_def_nr_spis();
=20
         /*
          * The VPL011 virq is GUEST_VPL011_SPI, unless direct-map is
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index d91a71acfd..39eea0be00 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -2054,7 +2054,7 @@ void __init create_dom0(void)
=20
     /* The vGIC for DOM0 is exactly emulating the hardware GIC */
     dom0_cfg.arch.gic_version =3D XEN_DOMCTL_CONFIG_GIC_NATIVE;
-    dom0_cfg.arch.nr_spis =3D VGIC_DEF_NR_SPIS;
+    dom0_cfg.arch.nr_spis =3D vgic_def_nr_spis();
     dom0_cfg.arch.tee_type =3D tee_get_type();
     dom0_cfg.max_vcpus =3D dom0_max_vcpus();
=20
diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/vgi=
c.h
index fb4cea73eb..11f9d216eb 100644
--- a/xen/arch/arm/include/asm/vgic.h
+++ b/xen/arch/arm/include/asm/vgic.h
@@ -355,6 +355,27 @@ extern void vgic_check_inflight_irqs_pending(struct vc=
pu *v,
 /* Default number of vGIC SPIs. 32 are substracted to cover local IRQs. */
 #define VGIC_DEF_NR_SPIS (min(gic_number_lines(), VGIC_MAX_IRQS) - 32)
=20
+static inline unsigned int vgic_def_nr_spis(void)
+{
+#ifdef CONFIG_GICV3_ESPI
+    /*
+     * Check if the hardware supports extended SPIs (even if the appropria=
te
+     * config is set). If not, the common SPI range will be used. Otherwis=
e
+     * returns the maximum eSPI INTID, supported by HW GIC, subtracted by =
32.
+     * For non-Dom0 domains, the toolstack or arch_create_domUs function
+     * applies the same adjustment to cover local IRQs (please, see commen=
t
+     * for macro that is used for regular SPIs - VGIC_DEF_NR_SPIS). We wil=
l
+     * add back this value during VGIC initialization. This ensures consis=
tent
+     * handling for Dom0 and other domains. For the regular SPI range inte=
rrupts
+     * in this case, the maximum value of VGIC_DEF_NR_SPIS will be used.
+     */
+    if ( gic_number_espis() > 0 )
+        return ESPI_BASE_INTID + min(gic_number_espis(), 1024U) - 32;
+#endif
+
+    return VGIC_DEF_NR_SPIS;
+}
+
 extern bool vgic_is_valid_line(struct domain *d, unsigned int virq);
=20
 static inline bool vgic_is_spi(struct domain *d, unsigned int virq)
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 18:24:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 18:24:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096740.1451416 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urKow-0001fK-Ox; Wed, 27 Aug 2025 18:24:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096740.1451416; Wed, 27 Aug 2025 18:24: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 1urKow-0001eQ-Ge; Wed, 27 Aug 2025 18:24:30 +0000
Received: by outflank-mailman (input) for mailman id 1096740;
 Wed, 27 Aug 2025 18:24:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=x+iP=3H=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1urKou-0006ki-AI
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 18:24:28 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0f8c82e1-8373-11f0-ae26-e363de0e7a9e;
 Wed, 27 Aug 2025 20:24:25 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by MRWPR03MB11023.eurprd03.prod.outlook.com (2603:10a6:501:76::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.15; Wed, 27 Aug
 2025 18:24:23 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Wed, 27 Aug 2025
 18:24: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>
X-Inumbo-ID: 0f8c82e1-8373-11f0-ae26-e363de0e7a9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HAqwLuIe/9cusClOKPBD9ey2jRYMcr9WOJSPJUooRp9zrYUA4axSCuQd0U/EeHsxxmL2VXeqyZXOrTBcfqObGDC+rFiaRlBh7jB9FROYKcJ9nP9b+5Nj8QJXTU/war38UDJ8t/yqSdWTlyBk9f5WyxKTqpuUE0QMDXdg28w/QJmU1wV+JKpr93L5choFXWCd8sww74hfevy6u2h42SQh45Gq/0p8pf7w1wP6PoMqlyl2RQFJFKk0jBHdLbpckSuJ/BHXOJAdHBofrE60NS3F5SAiQyoDWZCI+VcUDReYcYOtbTBntRBx/V6IJp+vMsYcdYol4VhhSZhqThKsGNljCw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=anilZOdhlS2ZHLYSyDc2Ak0Qj1UUYrMkpewbdPgEXe0=;
 b=PsYRhvTZ9b0n0/PpSPQBmuUm4cL8gbxM64DRTrliwiav00Rev99CD+5d1tHb/BGt1xa9dmbHCvvGCthpuCac5yvY9EzocST/7KBxgqEx4r2xPF1cU9IP5vMdJ9S/RSvoU9yThWRtwPDMQpy3kGJJpc7cZN93U2PqjyaAj/Nl8QquJZam5W8SQ2hr13j4rTAhMz16K4C8IprlLP2JETRTlJHue8xxK00ytDO9CnXF7FeXRcylA1dqUEgDAWsgccEjxXuRXeKb3C+1cPQtgUqKa3dSIOfkxnaTB3pfPDp2XmlLCLNFRhVkhuRR2EN4c49uFqPgvsMx6c5a7wMGL8TS6Q==
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=anilZOdhlS2ZHLYSyDc2Ak0Qj1UUYrMkpewbdPgEXe0=;
 b=WlE9oY0CKmPrH8e0op2MOUjkEmxaRjx+c+7wYY5wByicTfJ97br3b5+MC0DMvInhfUreoMXFU4RItPvkSjowFSRPqm/SALitQAVCSqmcuqxZ4PpMpBt830zaCE3jZ9JBAtdfSp7ju9yohxhBtIgKaLumiHMB2Z+RVnkDns/Yf1bSR81t2SYaKyWjDlUWVZQrdW3bfJNXIqgysAadipNe1IMnGR43xiiTFj0KIprPr4SSUaDpprMtCc0ncvevq+A6rnyXrxj4Ne2QKCoZxD7Vxn1jKAR2GBZI9xSmbLV//YUOhWGiQ/eq1tdRuH6SS/0bwkn67eqtZqP8iUSe+L9vQA==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "olekstysh@gmail.com" <olekstysh@gmail.com>, Leonid Komarianskyi
	<Leonid_Komarianskyi@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 v4 10/12] xen/arm: vgic-v3: add emulation of GICv3.1 eSPI
 registers
Thread-Topic: [PATCH v4 10/12] xen/arm: vgic-v3: add emulation of GICv3.1 eSPI
 registers
Thread-Index: AQHcF3/PMGQJ9ZKjmEOWPrVRdE59HQ==
Date: Wed, 27 Aug 2025 18:24:22 +0000
Message-ID:
 <6b312e1997da5abdf592f66d16067f4330431ded.1756317702.git.leonid_komarianskyi@epam.com>
References: <cover.1756317702.git.leonid_komarianskyi@epam.com>
In-Reply-To: <cover.1756317702.git.leonid_komarianskyi@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: GV2PR03MB8678:EE_|MRWPR03MB11023:EE_
x-ms-office365-filtering-correlation-id: de8081e7-0b1b-45a3-cd37-08dde596f24b
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?e+u4IVGPpXV1olKhW59UZxK+rvtwkteGzSjXofWHFVLVha/Kxj5k8QyG59?=
 =?iso-8859-1?Q?V/CKfbvHggRbYms45/wy4wYn5pvOYIIUbhxq7OYuzst98BOcAMZfGTpRDp?=
 =?iso-8859-1?Q?+9HVSTXqKnGbTIb/0glLl4oOY+Z7sYntmlD2xpUvtYx82Na2YZhSzM9vf7?=
 =?iso-8859-1?Q?V8hB5OeNO1wO4HDZ6ObqHqE/imqc3pJhsSzv+LhC3N6000xN00GjySMuLS?=
 =?iso-8859-1?Q?yOIYRo0b8t/Q20ixTLZs1Z/vQ+eXqHcW96Wqf++0ksON32//7ZjhIUcCW6?=
 =?iso-8859-1?Q?domtkoZnEqejnLTCKcLVjswGzg/WBr5ZPqls3NwZgQzVXcFdFlqX1qrczr?=
 =?iso-8859-1?Q?eadOY6rmtLrIYuKiww0NxiUVjkq/Nj06zhP/TuHFruisqpRrXcaCTtgzC5?=
 =?iso-8859-1?Q?+FhYBiFPCjG2IN2IJk6oLSgjQ9N7E7cCfqcFgKdjHkRR4CLR5X3SnM5LDY?=
 =?iso-8859-1?Q?ijmBkntqo/HSONYKkZ1wt3nsJ5lJ+Uke80r8ajGM4BUcgt7V7itP0VBbC9?=
 =?iso-8859-1?Q?pyhzuRSIH6WsbAmxeyh9iUORpB3Lx8+Hy4LLprrVu6v5X2EAbgffdhEaj1?=
 =?iso-8859-1?Q?wI5V4zIjWccz/ugNpqaDC53mg4CA5nzrOFRxyF2hixKZfppIfKe6b9NCbg?=
 =?iso-8859-1?Q?RKCPSj5eIH/xB7/bRhVKEqmEiAJV7W44Ltn+BUMDMPn424gef82BeQO5yN?=
 =?iso-8859-1?Q?mFy+WG/MS+I743Vv15NMGIp/MiZI35A6l+xC5RmDMpBdF8pYVff4W3uTSR?=
 =?iso-8859-1?Q?1l3xOPcqfdmMs9s28wioKqllvC6ZLIJq5mOtmoEqr/pdawzgzH1GZ4Wrsk?=
 =?iso-8859-1?Q?RjpPORyZFKe/dbJ6tVWcg9L+OMcieAE1GhinIWMUQ3jpy+yZVjrbNtgKOH?=
 =?iso-8859-1?Q?shwIJ6M0K5z5Njy8tbd9jl+JlgYYGgAYWOkgO5CvUWv50c84/8Bs5g7zHI?=
 =?iso-8859-1?Q?4eNdPOz0MqEXolLWC3+DgOXFL6+Og/xprr3hUyAfsRCv4LVdM2yTz+z+Nv?=
 =?iso-8859-1?Q?+jBjAJIoQEvcJlNs25C/ayL/4ZJWYnTcr+Vv8FuxJZ7bm43G0H6ie6SsBy?=
 =?iso-8859-1?Q?Ri2cnktVKMcxWnwt2xIKI7Lvc81M7Db4npvrshjCfXsRjIjEonOFsq21KD?=
 =?iso-8859-1?Q?7SEWTQXVSFqGLXcUfT79tGK2AyF42PwNltso7nU3EeAA+QowgiXdTB5RAG?=
 =?iso-8859-1?Q?Rg2uS3xklpMJWOzKj3ljWGakzJ7g78tUfvtIpQKn1rlWBEZSCtzzSVzCEG?=
 =?iso-8859-1?Q?T4iXO7IK0G1+4qiq8nj7kEYi/GacYpkTccWH7ObF/djaVyOTdRhIOCQeA6?=
 =?iso-8859-1?Q?75KkiS881bRtm3hk6Wubti0RG9yHGeiwhtJMEFXF0KMyPsQu8XWBU0rUnZ?=
 =?iso-8859-1?Q?rGfUCgr+TqRkF9ePp23efvaEa4tMtQAvfjiu2hmw22lri0NDGBalfMF8p0?=
 =?iso-8859-1?Q?HurMkw8qIPYzwWyFcFpEKLTuKj7s/WHBXdtPwq1X4Lhc9Kv0hG7xoCq/rk?=
 =?iso-8859-1?Q?4TREI/B9TNSm6TKbcDhe/9VFqXPUX9WHXdTx/ip/4oag=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?9vGwg9RgUTIqN8GkUiQRu65hy5h0POUjroC40xqbK+LtCp1tbuTmpw8B6h?=
 =?iso-8859-1?Q?i7lJQm86rShWLKHnVBk1LnySmpmd7U0bW9rrq27E1OYgYKKBCsrQvdJ/ti?=
 =?iso-8859-1?Q?xqJ9izcgqj4WpQOFQrnPuaMrmTIrMtyB7nwgVi0tcYJuJSfBKwzXmdpnXs?=
 =?iso-8859-1?Q?K0M3a4mEzXqbeAQqsuwrj8VYAGSMMCXCZI3SmT/iR723e2gu8Z3/gqTara?=
 =?iso-8859-1?Q?yZqUZlegCvApXh6UQ5Ms4kQGPq3j4nF24PEWAqMJlheSeekExsbXO56ZwH?=
 =?iso-8859-1?Q?7j8g+DDfPFlBI5qJEAO+fOCe8AVVHWcjMOk8AYvbDVzoQ8VhniSolYYIpU?=
 =?iso-8859-1?Q?IVlS3SZqUg5d/p79PDCOiENZQv7FLc+nuC34wPS4ajx+aSD2n+wrfzFKB8?=
 =?iso-8859-1?Q?kdmQMofPEbaIQpB0m3iG8SQuPXSTIDkzBgLk+Uw1+RYaL0IigWLiblJJmE?=
 =?iso-8859-1?Q?oceiGtULSEkfF+bDOXV1LjEMytlblugty6FV4wtDWq5+wFxlbKYsPiF3IE?=
 =?iso-8859-1?Q?1To+Lc7+KGsHuoBy1BhxZ3vHEXb8ZlsXSXPlhvi5PXtE8xksLU61ZgDVKr?=
 =?iso-8859-1?Q?GFgqaps/KOHCFl4SVUJKJwog6QYxS6gLsI6PhIZNu3w94v79E3xyiTupSB?=
 =?iso-8859-1?Q?v68+m5ltgK2odDQeHTsf/xCp8QDq80h+OmcRy8xNq4vHW3BFoFpBeIlDQl?=
 =?iso-8859-1?Q?qjd7kfjMYWucaXEuznXha1+Qx/pWVq56AbwjvuOJYZ9DrEKN6Dhc9+Xsd8?=
 =?iso-8859-1?Q?ZI0u7VcYEFhJ36K5NJeOjydNO7m19k8TCLYKn2Z27LqDCN78mrmn2NTf3b?=
 =?iso-8859-1?Q?uOajuMOjogMmDp5xiPm5Q/L9vSvPHga8g5OutULWgAJRrWVTqRS7BNnB+l?=
 =?iso-8859-1?Q?I4+UT8UpAi6itYSc1L2Ii/ZYXsEwY7Rribqg66dX95jUJ0j+nv3zMYKD7n?=
 =?iso-8859-1?Q?B96yKQnVHtSLh08B8dj4B994DLx/6jwYKMEIAziNwFKXZiDuI7RmMQ0BeR?=
 =?iso-8859-1?Q?zH94XAbXh3EB3Xr/mKToDUCHkH85+QY04IvqKP7/LzabPoMX7WbZasBjAS?=
 =?iso-8859-1?Q?XLQ5noSsbMrar74PXBW+hjM8W/CPkPmO3oomZwmTktqeVKSAk7iLDMNJig?=
 =?iso-8859-1?Q?nQvSn9JtGfWJq1hLOEK8cYwvN9Z1zrLL89226KeuhfHbY+az7K2DO8GQeY?=
 =?iso-8859-1?Q?P9ptym1j02k/zPZvMY2+gfNFltQxQ5jYlneAAbjMU1vqbBKWus7vJj2SgD?=
 =?iso-8859-1?Q?/fCTuLY5xrO/9/O7iIgXwoYJVPbFITcsRvhXtIZ7EVtxlUqoWGeUJEu0YJ?=
 =?iso-8859-1?Q?9dy5sDak/vifA0Iz/0zxodbMzci24RDZF8aaNLyxBKbTU4GdcQjt+mKcH+?=
 =?iso-8859-1?Q?fDNJ6i0Aq8PeXkcJUEfMRmQGW+XD6s7yb5pv/e7TbbuUBovN+2QygG9Un+?=
 =?iso-8859-1?Q?WwLgdT7pE16UN1RjZy4/nGvxzB0GLfEWSIjs8Gsa+aMuYk+AiSz4oGN1dc?=
 =?iso-8859-1?Q?2X3mavYuDmFvRpFD8MGR4nzXK1HcGaWwI6dDvQ6YzJnQhxFNWY66tlYekh?=
 =?iso-8859-1?Q?R1e+jX9MRlKQhSKGgM6PdipusNY3AtaG7G7jHI3fG0B3HrRgYyvL5AKMgk?=
 =?iso-8859-1?Q?ELckUgvfMxmoX9hCBr2OLZ6wXY0qZ0IrqksB8TcxGdqvn0KDPMSNO8JblS?=
 =?iso-8859-1?Q?Tm/n5B0rZEu5sCqivSI=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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: de8081e7-0b1b-45a3-cd37-08dde596f24b
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Aug 2025 18:24:22.9072
 (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: GoqBeuoZjLMHB1czKuKjzCPpDuCLgSkYsj6BItliSBQqeiYqbG//L5snxWgDk2WV8fRUwnsER98aTE86lmD+lhr3bLDf+H67Y7QGfPdKJGs=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MRWPR03MB11023

Implemented support for GICv3.1 extended SPI registers for vGICv3,
allowing the emulation of eSPI-specific behavior for guest domains.
The implementation includes read and write emulation for eSPI-related
registers (e.g., GICD_ISENABLERnE, GICD_IROUTERnE, and others),
following a similar approach to the handling of regular SPIs.

The eSPI registers, previously located in reserved address ranges,
are now adjusted to support MMIO read and write operations correctly
when CONFIG_GICV3_ESPI is enabled.

The availability of eSPIs and the number of emulated extended SPIs
for guest domains is reported by setting the appropriate bits in the
GICD_TYPER register, based on the number of eSPIs requested by the
domain and supported by the hardware. In cases where the configuration
option is disabled, the hardware does not support eSPIs, or the domain
does not request such interrupts, the functionality remains unchanged.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>

---
Changes in V4:
- added missing RAZ and write ignore eSPI-specific registers ranges:
  GICD_NSACRnE and GICD_IGRPMODRnE
- changed previously reserved range to cover GICD_NSACRnE and
  GICD_IGRPMODRnE
- introduced GICD_RESERVED_RANGE<n>_START/END defines to remove
  hardcoded values and reduce the number of ifdefs
- fixed reserved ranges with eSPI option enabled: added missing range
  0x0F30-0x0F7C
- updated the logic for domains that do not support eSPI, but Xen is
  compiled with the eSPI option. Now, prior to other MMIO checks, we
  verify whether eSPI is available for the domain or not. If not, it
  behaves as it does currently - RAZ and WI
- fixed print for GICD_ICACTIVERnE
- fixed new lines formatting for switch-case

Changes in V3:
- changed vgic_store_irouter parameters - instead of offset virq is
  used, to remove the additional bool espi parameter and simplify
  checks. Also, adjusted parameters for regular SPI. Since the offset
  parameter was used only for calculating virq number and then reused for
  finding rank offset, it will not affect functionality.
- fixed formatting for goto lables - added newlines after condition
- fixed logs for GICD_ISACTIVERnE and GICD_ICACTIVERnE handlers
- removed #ifdefs in 2 places where they were adjacent and could be merged

Changes in V2:
- add missing rank index conversion for pending and inflight irqs
---
 xen/arch/arm/vgic-v3.c | 333 +++++++++++++++++++++++++++++++++++++++--
 1 file changed, 319 insertions(+), 14 deletions(-)

diff --git a/xen/arch/arm/vgic-v3.c b/xen/arch/arm/vgic-v3.c
index 4369c55177..ca19f24634 100644
--- a/xen/arch/arm/vgic-v3.c
+++ b/xen/arch/arm/vgic-v3.c
@@ -42,6 +42,36 @@
  */
 #define VGICD_CTLR_DEFAULT  (GICD_CTLR_ARE_NS)
=20
+/*
+ * Common start and end of reserved ranges for
+ * both eSPI and non-eSPI builds
+ */
+#define GICD_RESERVED_RANGE1_START (0x0F30)
+#define GICD_RESERVED_RANGE2_END   (0xBFFC)
+
+#ifdef CONFIG_GICV3_ESPI
+
+#define GICD_RESERVED_RANGE1_END   (0x0F7C)
+
+#define GICD_RESERVED_RANGE2_START (0xA004)
+
+/*
+ * In case eSPI is enabled, there is an additional
+ * reserved range after the eSPI-specific registers
+ */
+#define GICD_RESERVED_RANGE3_START (0x3700)
+#define GICD_RESERVED_RANGE3_END   (0x60FC)
+#else
+
+/*
+ * In case eSPI is disabled, the range with eSPI-specific
+ * registers is marked as reserved
+ */
+#define GICD_RESERVED_RANGE1_END   (0x60FC)
+
+#define GICD_RESERVED_RANGE2_START (0x7FE0)
+#endif
+
 static struct {
     bool enabled;
     /* Distributor interface address */
@@ -111,13 +141,10 @@ static uint64_t vgic_fetch_irouter(struct vgic_irq_ra=
nk *rank,
  * Note the offset will be aligned to the appropriate boundary.
  */
 static void vgic_store_irouter(struct domain *d, struct vgic_irq_rank *ran=
k,
-                               unsigned int offset, uint64_t irouter)
+                               unsigned int virq, uint64_t irouter)
 {
     struct vcpu *new_vcpu, *old_vcpu;
-    unsigned int virq;
-
-    /* There is 1 vIRQ per IROUTER */
-    virq =3D offset / NR_BYTES_PER_IROUTER;
+    unsigned int offset;
=20
     /*
      * The IROUTER0-31, used for SGIs/PPIs, are reserved and should
@@ -685,6 +712,10 @@ static int __vgic_v3_distr_common_mmio_read(const char=
 *name, struct vcpu *v,
     {
     case VRANGE32(GICD_IGROUPR, GICD_IGROUPRN):
     case VRANGE32(GICD_IGRPMODR, GICD_IGRPMODRN):
+#ifdef CONFIG_GICV3_ESPI
+    case VRANGE32(GICD_IGROUPRnE, GICD_IGROUPRnEN):
+    case VRANGE32(GICD_IGRPMODRnE, GICD_IGRPMODRnEN):
+#endif
         /* We do not implement security extensions for guests, read zero *=
/
         if ( dabt.size !=3D DABT_WORD ) goto bad_width;
         goto read_as_zero;
@@ -710,11 +741,19 @@ static int __vgic_v3_distr_common_mmio_read(const cha=
r *name, struct vcpu *v,
     /* Read the pending status of an IRQ via GICD/GICR is not supported */
     case VRANGE32(GICD_ISPENDR, GICD_ISPENDRN):
     case VRANGE32(GICD_ICPENDR, GICD_ICPENDRN):
+#ifdef CONFIG_GICV3_ESPI
+    case VRANGE32(GICD_ISPENDRnE, GICD_ISPENDRnEN):
+    case VRANGE32(GICD_ICPENDRnE, GICD_ICPENDRnEN):
+#endif
         goto read_as_zero;
=20
     /* Read the active status of an IRQ via GICD/GICR is not supported */
     case VRANGE32(GICD_ISACTIVER, GICD_ISACTIVERN):
     case VRANGE32(GICD_ICACTIVER, GICD_ICACTIVERN):
+#ifdef CONFIG_GICV3_ESPI
+    case VRANGE32(GICD_ISACTIVERnE, GICD_ISACTIVERnEN):
+    case VRANGE32(GICD_ICACTIVERnE, GICD_ICACTIVERnEN):
+#endif
         goto read_as_zero;
=20
     case VRANGE32(GICD_IPRIORITYR, GICD_IPRIORITYRN):
@@ -752,6 +791,69 @@ static int __vgic_v3_distr_common_mmio_read(const char=
 *name, struct vcpu *v,
         return 1;
     }
=20
+#ifdef CONFIG_GICV3_ESPI
+    case VRANGE32(GICD_ISENABLERnE, GICD_ISENABLERnEN):
+        if ( dabt.size !=3D DABT_WORD )
+            goto bad_width;
+        rank =3D vgic_ext_rank_offset(v, 1, reg - GICD_ISENABLERnE, DABT_W=
ORD);
+        if ( rank =3D=3D NULL )
+            goto read_as_zero;
+        vgic_lock_rank(v, rank, flags);
+        *r =3D vreg_reg32_extract(rank->ienable, info);
+        vgic_unlock_rank(v, rank, flags);
+        return 1;
+
+    case VRANGE32(GICD_ICENABLERnE, GICD_ICENABLERnEN):
+        if ( dabt.size !=3D DABT_WORD )
+            goto bad_width;
+        rank =3D vgic_ext_rank_offset(v, 1, reg - GICD_ICENABLERnE, DABT_W=
ORD);
+        if ( rank =3D=3D NULL )
+            goto read_as_zero;
+        vgic_lock_rank(v, rank, flags);
+        *r =3D vreg_reg32_extract(rank->ienable, info);
+        vgic_unlock_rank(v, rank, flags);
+        return 1;
+
+    case VRANGE32(GICD_IPRIORITYRnE, GICD_IPRIORITYRnEN):
+    {
+        uint32_t ipriorityr;
+        uint8_t rank_index;
+
+        if ( dabt.size !=3D DABT_BYTE && dabt.size !=3D DABT_WORD )
+            goto bad_width;
+        rank =3D vgic_ext_rank_offset(v, 8, reg - GICD_IPRIORITYRnE, DABT_=
WORD);
+        if ( rank =3D=3D NULL )
+            goto read_as_zero;
+        rank_index =3D REG_RANK_INDEX(8, reg - GICD_IPRIORITYRnE, DABT_WOR=
D);
+
+        vgic_lock_rank(v, rank, flags);
+        ipriorityr =3D ACCESS_ONCE(rank->ipriorityr[rank_index]);
+        vgic_unlock_rank(v, rank, flags);
+
+        *r =3D vreg_reg32_extract(ipriorityr, info);
+
+        return 1;
+    }
+
+    case VRANGE32(GICD_ICFGRnE, GICD_ICFGRnEN):
+    {
+        uint32_t icfgr;
+
+        if ( dabt.size !=3D DABT_WORD )
+            goto bad_width;
+        rank =3D vgic_ext_rank_offset(v, 2, reg - GICD_ICFGRnE, DABT_WORD)=
;
+        if ( rank =3D=3D NULL )
+            goto read_as_zero;
+        vgic_lock_rank(v, rank, flags);
+        icfgr =3D rank->icfg[REG_RANK_INDEX(2, reg - GICD_ICFGRnE, DABT_WO=
RD)];
+        vgic_unlock_rank(v, rank, flags);
+
+        *r =3D vreg_reg32_extract(icfgr, info);
+
+        return 1;
+    }
+#endif
+
     default:
         printk(XENLOG_G_ERR
                "%pv: %s: unhandled read r%d offset %#08x\n",
@@ -782,6 +884,10 @@ static int __vgic_v3_distr_common_mmio_write(const cha=
r *name, struct vcpu *v,
     {
     case VRANGE32(GICD_IGROUPR, GICD_IGROUPRN):
     case VRANGE32(GICD_IGRPMODR, GICD_IGRPMODRN):
+#ifdef CONFIG_GICV3_ESPI
+    case VRANGE32(GICD_IGROUPRnE, GICD_IGROUPRnEN):
+    case VRANGE32(GICD_IGRPMODRnE, GICD_IGRPMODRnEN):
+#endif
         /* We do not implement security extensions for guests, write ignor=
e */
         goto write_ignore_32;
=20
@@ -871,6 +977,102 @@ static int __vgic_v3_distr_common_mmio_write(const ch=
ar *name, struct vcpu *v,
         vgic_unlock_rank(v, rank, flags);
         return 1;
=20
+#ifdef CONFIG_GICV3_ESPI
+    case VRANGE32(GICD_ISENABLERnE, GICD_ISENABLERnEN):
+        if ( dabt.size !=3D DABT_WORD )
+            goto bad_width;
+        rank =3D vgic_ext_rank_offset(v, 1, reg - GICD_ISENABLERnE, DABT_W=
ORD);
+        if ( rank =3D=3D NULL )
+            goto write_ignore;
+        vgic_lock_rank(v, rank, flags);
+        tr =3D rank->ienable;
+        vreg_reg32_setbits(&rank->ienable, r, info);
+        vgic_enable_irqs(v, (rank->ienable) & (~tr), EXT_RANK_IDX2NUM(rank=
->index));
+        vgic_unlock_rank(v, rank, flags);
+        return 1;
+
+    case VRANGE32(GICD_ICENABLERnE, GICD_ICENABLERnEN):
+        if ( dabt.size !=3D DABT_WORD )
+            goto bad_width;
+        rank =3D vgic_ext_rank_offset(v, 1, reg - GICD_ICENABLERnE, DABT_W=
ORD);
+        if ( rank =3D=3D NULL )
+            goto write_ignore;
+        vgic_lock_rank(v, rank, flags);
+        tr =3D rank->ienable;
+        vreg_reg32_clearbits(&rank->ienable, r, info);
+        vgic_disable_irqs(v, (~rank->ienable) & tr, EXT_RANK_IDX2NUM(rank-=
>index));
+        vgic_unlock_rank(v, rank, flags);
+        return 1;
+
+    case VRANGE32(GICD_ISPENDRnE, GICD_ISPENDRnEN):
+        if ( dabt.size !=3D DABT_WORD )
+            goto bad_width;
+        rank =3D vgic_ext_rank_offset(v, 1, reg - GICD_ISPENDRnE, DABT_WOR=
D);
+        if ( rank =3D=3D NULL )
+            goto write_ignore;
+
+        vgic_set_irqs_pending(v, r, EXT_RANK_IDX2NUM(rank->index));
+
+        return 1;
+
+    case VRANGE32(GICD_ICPENDRnE, GICD_ICPENDRnEN):
+        if ( dabt.size !=3D DABT_WORD )
+            goto bad_width;
+        rank =3D vgic_ext_rank_offset(v, 1, reg - GICD_ICPENDRnE, DABT_WOR=
D);
+        if ( rank =3D=3D NULL )
+            goto write_ignore;
+
+        vgic_check_inflight_irqs_pending(v, EXT_RANK_IDX2NUM(rank->index),=
 r);
+
+        goto write_ignore;
+
+    case VRANGE32(GICD_ISACTIVERnE, GICD_ISACTIVERnEN):
+        if ( dabt.size !=3D DABT_WORD )
+            goto bad_width;
+        printk(XENLOG_G_ERR
+               "%pv: %s: unhandled word write %#"PRIregister" to ISACTIVER=
%dE\n",
+               v, name, r, reg - GICD_ISACTIVERnE);
+        return 0;
+
+    case VRANGE32(GICD_ICACTIVERnE, GICD_ICACTIVERnEN):
+        printk(XENLOG_G_ERR
+               "%pv: %s: unhandled word write %#"PRIregister" to ICACTIVER=
%dE\n",
+               v, name, r, reg - GICD_ICACTIVERnE);
+        goto write_ignore_32;
+
+    case VRANGE32(GICD_IPRIORITYRnE, GICD_IPRIORITYRnEN):
+    {
+        uint32_t *ipriorityr, priority;
+
+        if ( dabt.size !=3D DABT_BYTE && dabt.size !=3D DABT_WORD )
+            goto bad_width;
+        rank =3D vgic_ext_rank_offset(v, 8, reg - GICD_IPRIORITYRnE, DABT_=
WORD);
+        if ( rank =3D=3D NULL )
+            goto write_ignore;
+        vgic_lock_rank(v, rank, flags);
+        ipriorityr =3D &rank->ipriorityr[REG_RANK_INDEX(8, reg - GICD_IPRI=
ORITYRnE,
+                                                      DABT_WORD)];
+        priority =3D ACCESS_ONCE(*ipriorityr);
+        vreg_reg32_update(&priority, r, info);
+        ACCESS_ONCE(*ipriorityr) =3D priority;
+        vgic_unlock_rank(v, rank, flags);
+        return 1;
+    }
+
+    case VRANGE32(GICD_ICFGRnE, GICD_ICFGRnEN):
+        if ( dabt.size !=3D DABT_WORD )
+            goto bad_width;
+        rank =3D vgic_ext_rank_offset(v, 2, reg - GICD_ICFGRnE, DABT_WORD)=
;
+        if ( rank =3D=3D NULL )
+            goto write_ignore;
+        vgic_lock_rank(v, rank, flags);
+        vreg_reg32_update(&rank->icfg[REG_RANK_INDEX(2, reg - GICD_ICFGRnE=
,
+                                                     DABT_WORD)],
+                          r, info);
+        vgic_unlock_rank(v, rank, flags);
+        return 1;
+#endif
+
     default:
         printk(XENLOG_G_ERR
                "%pv: %s: unhandled write r%d=3D%"PRIregister" offset %#08x=
\n",
@@ -1129,6 +1331,16 @@ static int vgic_v3_distr_mmio_read(struct vcpu *v, m=
mio_info_t *info,
             typer |=3D GICD_TYPE_LPIS;
=20
         typer |=3D (v->domain->arch.vgic.intid_bits - 1) << GICD_TYPE_ID_B=
ITS_SHIFT;
+#ifdef CONFIG_GICV3_ESPI
+        if ( v->domain->arch.vgic.has_espi )
+        {
+            /* Set eSPI support bit for the domain */
+            typer |=3D GICD_TYPER_ESPI;
+            /* Set ESPI range bits */
+            typer |=3D (DIV_ROUND_UP(v->domain->arch.vgic.nr_espis, 32) - =
1)
+                       << GICD_TYPER_ESPI_RANGE_SHIFT;
+        }
+#endif
=20
         *r =3D vreg_reg32_extract(typer, info);
=20
@@ -1184,6 +1396,21 @@ static int vgic_v3_distr_mmio_read(struct vcpu *v, m=
mio_info_t *info,
     case VRANGE32(0x005C, 0x007C):
         goto read_reserved;
=20
+#ifdef CONFIG_GICV3_ESPI
+    case VRANGE32(GICD_IGROUPRnE, GICD_IGROUPRnEN):
+    case VRANGE32(GICD_ISENABLERnE, GICD_ISENABLERnEN):
+    case VRANGE32(GICD_ICENABLERnE, GICD_ICENABLERnEN):
+    case VRANGE32(GICD_ISPENDRnE, GICD_ISPENDRnEN):
+    case VRANGE32(GICD_ICPENDRnE, GICD_ICPENDRnEN):
+    case VRANGE32(GICD_ISACTIVERnE, GICD_ISACTIVERnEN):
+    case VRANGE32(GICD_ICACTIVERnE, GICD_ICACTIVERnEN):
+    case VRANGE32(GICD_IPRIORITYRnE, GICD_IPRIORITYRnEN):
+    case VRANGE32(GICD_ICFGRnE, GICD_ICFGRnEN):
+    case VRANGE32(GICD_IGRPMODRnE, GICD_IGRPMODRnEN):
+        if ( !v->domain->arch.vgic.has_espi )
+            goto read_reserved;
+        return __vgic_v3_distr_common_mmio_read("vGICD", v, info, gicd_reg=
, r);
+#endif
     case VRANGE32(GICD_IGROUPR, GICD_IGROUPRN):
     case VRANGE32(GICD_ISENABLER, GICD_ISENABLERN):
     case VRANGE32(GICD_ICENABLER, GICD_ICENABLERN):
@@ -1200,6 +1427,11 @@ static int vgic_v3_distr_mmio_read(struct vcpu *v, m=
mio_info_t *info,
          */
         return __vgic_v3_distr_common_mmio_read("vGICD", v, info, gicd_reg=
, r);
=20
+#ifdef CONFIG_GICV3_ESPI
+    case VRANGE32(GICD_NSACRnE, GICD_NSACRnEN):
+        if ( !v->domain->arch.vgic.has_espi )
+            goto read_reserved;
+#endif
     case VRANGE32(GICD_NSACR, GICD_NSACRN):
         /* We do not implement security extensions for guests, read zero *=
/
         goto read_as_zero_32;
@@ -1216,7 +1448,7 @@ static int vgic_v3_distr_mmio_read(struct vcpu *v, mm=
io_info_t *info,
         /* Replaced with GICR_ISPENDR0. So ignore write */
         goto read_as_zero_32;
=20
-    case VRANGE32(0x0F30, 0x60FC):
+    case VRANGE32(GICD_RESERVED_RANGE1_START, GICD_RESERVED_RANGE1_END):
         goto read_reserved;
=20
     case VRANGE64(GICD_IROUTER32, GICD_IROUTER1019):
@@ -1235,8 +1467,32 @@ static int vgic_v3_distr_mmio_read(struct vcpu *v, m=
mio_info_t *info,
=20
         return 1;
     }
+#ifdef CONFIG_GICV3_ESPI
+    case VRANGE64(GICD_IROUTERnE, GICD_IROUTERnEN):
+    {
+        uint64_t irouter;
=20
-    case VRANGE32(0x7FE0, 0xBFFC):
+        if ( !v->domain->arch.vgic.has_espi )
+            goto read_reserved;
+
+        if ( !vgic_reg64_check_access(dabt) )
+            goto bad_width;
+        rank =3D vgic_ext_rank_offset(v, 64, gicd_reg - GICD_IROUTERnE,
+                                DABT_DOUBLE_WORD);
+        if ( rank =3D=3D NULL )
+            goto read_as_zero;
+        vgic_lock_rank(v, rank, flags);
+        irouter =3D vgic_fetch_irouter(rank, gicd_reg - GICD_IROUTERnE);
+        vgic_unlock_rank(v, rank, flags);
+
+        *r =3D vreg_reg64_extract(irouter, info);
+
+        return 1;
+    }
+
+    case VRANGE32(GICD_RESERVED_RANGE3_START, GICD_RESERVED_RANGE3_END):
+#endif
+    case VRANGE32(GICD_RESERVED_RANGE2_START, GICD_RESERVED_RANGE2_END):
         goto read_reserved;
=20
     case VRANGE32(0xC000, 0xFFCC):
@@ -1372,6 +1628,23 @@ static int vgic_v3_distr_mmio_write(struct vcpu *v, =
mmio_info_t *info,
     case VRANGE32(0x005C, 0x007C):
         goto write_reserved;
=20
+#ifdef CONFIG_GICV3_ESPI
+    case VRANGE32(GICD_IGROUPRnE, GICD_IGROUPRnEN):
+    case VRANGE32(GICD_ISENABLERnE, GICD_ISENABLERnEN):
+    case VRANGE32(GICD_ICENABLERnE, GICD_ICENABLERnEN):
+    case VRANGE32(GICD_ISPENDRnE, GICD_ISPENDRnEN):
+    case VRANGE32(GICD_ICPENDRnE, GICD_ICPENDRnEN):
+    case VRANGE32(GICD_ISACTIVERnE, GICD_ISACTIVERnEN):
+    case VRANGE32(GICD_ICACTIVERnE, GICD_ICACTIVERnEN):
+    case VRANGE32(GICD_IPRIORITYRnE, GICD_IPRIORITYRnEN):
+    case VRANGE32(GICD_ICFGRnE, GICD_ICFGRnEN):
+    case VRANGE32(GICD_IGRPMODRnE, GICD_IGRPMODRnEN):
+        if ( !v->domain->arch.vgic.has_espi )
+            goto write_reserved;
+        return __vgic_v3_distr_common_mmio_write("vGICD", v, info,
+                                                 gicd_reg, r);
+#endif
+
     case VRANGE32(GICD_IGROUPR, GICD_IGROUPRN):
     case VRANGE32(GICD_ISENABLER, GICD_ISENABLERN):
     case VRANGE32(GICD_ICENABLER, GICD_ICENABLERN):
@@ -1386,7 +1659,11 @@ static int vgic_v3_distr_mmio_write(struct vcpu *v, =
mmio_info_t *info,
          * Manage in common */
         return __vgic_v3_distr_common_mmio_write("vGICD", v, info,
                                                  gicd_reg, r);
-
+#ifdef CONFIG_GICV3_ESPI
+    case VRANGE32(GICD_NSACRnE, GICD_NSACRnEN):
+        if ( !v->domain->arch.vgic.has_espi )
+            goto write_reserved;
+#endif
     case VRANGE32(GICD_NSACR, GICD_NSACRN):
         /* We do not implement security extensions for guests, write ignor=
e */
         goto write_ignore_32;
@@ -1405,26 +1682,54 @@ static int vgic_v3_distr_mmio_write(struct vcpu *v,=
 mmio_info_t *info,
         if ( dabt.size !=3D DABT_WORD ) goto bad_width;
         return 0;
=20
-    case VRANGE32(0x0F30, 0x60FC):
+    case VRANGE32(GICD_RESERVED_RANGE1_START, GICD_RESERVED_RANGE1_END):
         goto write_reserved;
=20
     case VRANGE64(GICD_IROUTER32, GICD_IROUTER1019):
     {
         uint64_t irouter;
+        unsigned int offset, virq;
=20
         if ( !vgic_reg64_check_access(dabt) ) goto bad_width;
-        rank =3D vgic_rank_offset(v, 64, gicd_reg - GICD_IROUTER,
-                                DABT_DOUBLE_WORD);
+        offset =3D gicd_reg - GICD_IROUTER;
+        rank =3D vgic_rank_offset(v, 64, offset, DABT_DOUBLE_WORD);
         if ( rank =3D=3D NULL ) goto write_ignore;
         vgic_lock_rank(v, rank, flags);
-        irouter =3D vgic_fetch_irouter(rank, gicd_reg - GICD_IROUTER);
+        irouter =3D vgic_fetch_irouter(rank, offset);
         vreg_reg64_update(&irouter, r, info);
-        vgic_store_irouter(v->domain, rank, gicd_reg - GICD_IROUTER, irout=
er);
+        virq =3D offset / NR_BYTES_PER_IROUTER;
+        vgic_store_irouter(v->domain, rank, virq, irouter);
         vgic_unlock_rank(v, rank, flags);
         return 1;
     }
=20
-    case VRANGE32(0x7FE0, 0xBFFC):
+#ifdef CONFIG_GICV3_ESPI
+    case VRANGE64(GICD_IROUTERnE, GICD_IROUTERnEN):
+    {
+        uint64_t irouter;
+        unsigned int offset, virq;
+
+        if ( !v->domain->arch.vgic.has_espi )
+            goto write_reserved;
+
+        if ( !vgic_reg64_check_access(dabt) )
+            goto bad_width;
+        offset =3D gicd_reg - GICD_IROUTERnE;
+        rank =3D vgic_ext_rank_offset(v, 64, offset, DABT_DOUBLE_WORD);
+        if ( rank =3D=3D NULL )
+            goto write_ignore;
+        vgic_lock_rank(v, rank, flags);
+        irouter =3D vgic_fetch_irouter(rank, offset);
+        vreg_reg64_update(&irouter, r, info);
+        virq =3D ESPI_IDX2INTID(offset / NR_BYTES_PER_IROUTER);
+        vgic_store_irouter(v->domain, rank, virq, irouter);
+        vgic_unlock_rank(v, rank, flags);
+        return 1;
+    }
+
+    case VRANGE32(GICD_RESERVED_RANGE3_START, GICD_RESERVED_RANGE3_END):
+#endif
+    case VRANGE32(GICD_RESERVED_RANGE2_START, GICD_RESERVED_RANGE2_END):
         goto write_reserved;
=20
     case VRANGE32(0xC000, 0xFFCC):
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 18:31:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 18:31:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096792.1451427 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urKvR-0005NU-MQ; Wed, 27 Aug 2025 18:31:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096792.1451427; Wed, 27 Aug 2025 18: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 1urKvR-0005NN-Je; Wed, 27 Aug 2025 18:31:13 +0000
Received: by outflank-mailman (input) for mailman id 1096792;
 Wed, 27 Aug 2025 18:31:12 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=x+iP=3H=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1urKoz-0006ki-Ax
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 18:24:33 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 11c811e7-8373-11f0-ae26-e363de0e7a9e;
 Wed, 27 Aug 2025 20:24:29 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by MRWPR03MB11023.eurprd03.prod.outlook.com (2603:10a6:501:76::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.15; Wed, 27 Aug
 2025 18:24:26 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Wed, 27 Aug 2025
 18:24:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 11c811e7-8373-11f0-ae26-e363de0e7a9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Zq8I/z3/7Dx1xNkTft5pdwISwjyr6+V4PgueqiAz2hP6g/2JM82Ke6JkgYP9KkDGjsi6m7+9RUpkO2JyhHeTsNwTtWiqK/dyx9qWm5fbdcmg0zHN2XH7n+1bKb53OiAGV7csC8goaMINQgfgNTxJlKoJixNFC5lf4GVpStYF1Nuxw4bhQHer5cOFkXq6BekIiO/qeqJcEnD4nrv0GQu1/12iZb7P1bGkvad329Vs1shKXPyjZHMPQg1WIQa6QU0JW/GQjIgMfH78srYGNDU/dhNq8QX15MN8F+wLz492jCE0J4olhBIj1N+lfavOzxH921Ek9dF23kltlnwQqGgm6Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=W6MIjZW1CBjFKc4mIxF2/dfXj2CJ3BIGOeBCmG7IwAA=;
 b=evwaXSzYY16QWlEIPABZBWaeHi0eCWncUpT+BqcL0Oh/CO+E6RW9pAryGsuf+zG2X3iogShhv/erjsaJrZPrs5Cgym5BNjfLIhXSP2H9FLu2Rp3PD+KrMJzJr4g1OBZ/2BS0JdMr1pAhK8j1WhNSQbUOWaIThXJBP495TUX+m4TZ4u1MKqA7vaOoy4FWGhUgLAHBGqQffV1Ojc5C4VRIwrWw1oTzqPt/Lr7vLCI0B9Tn0FeGB1jwCeBwSHO6wfedSaU1UUBQsyoQ42YSTLOfSiPx/fuTZIACiBkddiAMz5PgHmK8WfmE+MGR9qQ1RFqKCqzFytZY8bC9Hd5xq9hgRg==
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=W6MIjZW1CBjFKc4mIxF2/dfXj2CJ3BIGOeBCmG7IwAA=;
 b=UwoLXNOrH2PnugzQNcTpMGhkBbNY4EaX+J7qjA3SF5CziNGfoF9F8JTOucKqOxboTlVqjL8LzZSgqdq9muQVdW9Oc91DHIFzbg8cpD92tnjwJO7pZmWk85g5OlPU92l0bdsT0GJZyxc9TkJ0l+/ShedW+gYdh9PLqQU2OgrRQsoyWfIjcDdajkkisH1CiFh8RG7lWL9Z4RxzjsDmr2VKQGokXRVdFQVZmhKCGtJxy/H0vV30iAxTlUh28bM7d/qKy4JR0f0uqqR32MR0G1lgVgEQmU8w5V90lp+TSgCqquSrOXwAbrdlR9G1hdFhE52UH8Ax8+yqgw+uJ9rQRlFvIg==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "olekstysh@gmail.com" <olekstysh@gmail.com>, Leonid Komarianskyi
	<Leonid_Komarianskyi@epam.com>, Oleksii Kurochko
	<oleksii.kurochko@gmail.com>, Community Manager
	<community.manager@xenproject.org>
Subject: [PATCH v4 12/12] CHANGELOG.md: add mention of GICv3.1 eSPI support
Thread-Topic: [PATCH v4 12/12] CHANGELOG.md: add mention of GICv3.1 eSPI
 support
Thread-Index: AQHcF3/RJqCaSCtYv0easljTcStgWQ==
Date: Wed, 27 Aug 2025 18:24:26 +0000
Message-ID:
 <735dc5095eab0511384e6c8c14d789e86d3ce300.1756317702.git.leonid_komarianskyi@epam.com>
References: <cover.1756317702.git.leonid_komarianskyi@epam.com>
In-Reply-To: <cover.1756317702.git.leonid_komarianskyi@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: GV2PR03MB8678:EE_|MRWPR03MB11023:EE_
x-ms-office365-filtering-correlation-id: eb214470-6306-4e54-64ef-08dde596f46b
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?oJ5Q5LrAR/c71k3RkApxm1jIZlpDGVQqqJOQFPE9GafzAoiBmb4i7xMJ9U?=
 =?iso-8859-1?Q?Fvr6uZvQ4Ev4esAJe3y69fAZvVS3CDX41cO89VEBSKg/O4hr4GOE7ts5BX?=
 =?iso-8859-1?Q?fEUr3cOfUm8LZAPu8i3MFb+mi6D6RpByZ1SJWi/gDofVEdXPHvZYs6qvlq?=
 =?iso-8859-1?Q?v2IjKi4Jzu2rJGDl1Sw70Z6oFO/Cn1UfzPAftA7G5fnqgsE/DeDtKIUxYd?=
 =?iso-8859-1?Q?XuWawIbgvIqnq97mYTBfQplS7fRXtYMY1lcBEhJF4G3cmS4scyC8lgepzU?=
 =?iso-8859-1?Q?pnbZhcmNRlbINkDHlUt2CX1Vc9TkcxoYAjgsknGcD6pAa+B/Il8/8HCgDc?=
 =?iso-8859-1?Q?l8axPxJQZj7Ek8dyyfSsKrqhTkyMq7ooku4sbe6RhdRrVZckOS+trHfNRw?=
 =?iso-8859-1?Q?E+/TDgWCd+9dxIJ8dG5HAgQ440ItOy44A26P2o4EaG0sGmV4AlzL0tDqUJ?=
 =?iso-8859-1?Q?soT6OUm5gPKPjJciAI56fQciku7PAQhR1ZSqiKyJQpGcyDMWdT1SJR8W5u?=
 =?iso-8859-1?Q?HzfzPL7BtXCFoHcmy9EUpnuhDE4idpVeeibtaPxJTAtiqo83W7T61VwIVO?=
 =?iso-8859-1?Q?psss0TQFdC/YYjOCHZNoo63lGByrv9EW9os0g8PUxtUl1az9JVmcmkoLdN?=
 =?iso-8859-1?Q?7PIhkyWnhj4AjVeFz5DmC5xtMGK1dbXiOo/Fu+fuQxkG7TMCaZPpFJ+Nk2?=
 =?iso-8859-1?Q?cAOcHv8D8KocpA6l2CmiN0hgq3NynKsgKf1VNBxVd4066qSINitAc3lYq0?=
 =?iso-8859-1?Q?whne1Sb3uIYzOhbwbKV7AV7ZvipuR46sWCrcaXE3c+gRvUYCH6jmHNyWr7?=
 =?iso-8859-1?Q?P8pedJuYrTq3//uaJCSH43CAnMXlkwKRBcGc04TtoUOkeHuPG0Wfyb/cpE?=
 =?iso-8859-1?Q?zIxY/XTOyfl3W2ia4sNuL/jMMu8TLobVGbfVUSjSfqhgznFzdquIkioCai?=
 =?iso-8859-1?Q?g7F+MPj74c1izGAJFdRcwYPNSWEzWXvsvYymXbJipbw3d/yXKcwNQOYSQD?=
 =?iso-8859-1?Q?edvjzmMBdbH7zj3QaonP7AO7SJOe+yhrom37N6+wbACzAmdxVARgYt5zlw?=
 =?iso-8859-1?Q?mLFUEuOsXj99XW/tO/rhkzT6tiBUwxWrIZpNTkuU6vwkQhUIP+G9CWqywn?=
 =?iso-8859-1?Q?IlwoZCpphJ3Z5HtBEHZAhksx1jLTkL3rGvZfzYXezMxy/+P8OO8SrZQeFK?=
 =?iso-8859-1?Q?Vd2ighgm8nK9GzjynGNxU1TxzY9Yw69u6OXKJHRmnY91tzTKSeHuhcfxFN?=
 =?iso-8859-1?Q?L5kQBgnHz9FzKYeEvjL33V/mF40Q2nth4X/n4LEaXI9GxpEu1KM6t1V+2s?=
 =?iso-8859-1?Q?X8hnKOhmrgdAPbhVrh4ZMEcM1HF1C7UgVGKW72KDBbuDxolIT5dqbiHRng?=
 =?iso-8859-1?Q?C4vZ01jJK0pLNfMdT4EK5GdX60PxXDW8fIQk29pLjpBb/TqQobCQHDZJCt?=
 =?iso-8859-1?Q?N0IhQO0t1bdWTLRpWvAVEAFwSlCdm2jsb3dRJnEV6UNsZnskiZgDH3Etzf?=
 =?iso-8859-1?Q?E=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?4xlDhsmOOGAlnRhW4M4ywd4+A2aYR4oYWCy4mgs2VXArQzTMhOabaUH03k?=
 =?iso-8859-1?Q?Jg6eEVz/YQjP3YuQc/bgrlh9P83JlmVgzwNPb3Zyx5Dqqtn73BoihXRx6f?=
 =?iso-8859-1?Q?e8hc70cIWimji0uCDAJixwQm83GNxDtHTGKU5RQmYFduoB+ExXyzA1Pleu?=
 =?iso-8859-1?Q?WBRH/CXCV8U/1spNI3eQNkheOLnoLglajoLzoT2ONosIVO7Q2zOZ2QALxf?=
 =?iso-8859-1?Q?/vfn3+l6f4hIAcBKmkj6a7g26LUiMVJ1/4EyNvlTp6IUAqJZE7JynNxKlo?=
 =?iso-8859-1?Q?Yb4JmzoH1YdGypKHaEHHRwgFJLZHNOFM5x9G89G6Z5myoUR6SDVA0v369d?=
 =?iso-8859-1?Q?esfq4iKtmO0UnzCY6VFFlMkDBed61kpftzrNmxy2/SvB62A0wMCjNTIOws?=
 =?iso-8859-1?Q?RLonRhUQ2ygi2fMqYsZY1fhn/FpKG+BZfL2acMkOPnQokAWm3u93mFP8m5?=
 =?iso-8859-1?Q?yYnBTwmtbpizVkVmNJNpmFpRMkbGh5u+h+36HCpcLdd1puCthkaLGPLcIC?=
 =?iso-8859-1?Q?ea5rLGL/pBpJCk7j6HYPiAg9+1mniLS+xmzPHu3/oAM88MMBwqFtc878FM?=
 =?iso-8859-1?Q?8hXRznW6NNztipdHoW4OG6BDM1twl10OGNNgBakCCLkj7JDDDG8PrDcc2o?=
 =?iso-8859-1?Q?Fkv7qqqIao3nTDPs1Vgp8So3xNpy9mveJ47vQTORqTpMj0TdlGcanFl08e?=
 =?iso-8859-1?Q?p/Y3uHx4N0t9v/mUHsREsqChVvBMcSv130YNj/ft0tLZCGVur1RXoX3jn/?=
 =?iso-8859-1?Q?PEDMjW5pn/sCXGBlwKabbqhi8aqVUSANA/opQsYyySWDTa58Ne92iTDarT?=
 =?iso-8859-1?Q?C44ECn1dBFuuCm7Nnt3t9ZKOb5Dul35ZM2tO6b22JtDp1A1GtdvsIQYHhc?=
 =?iso-8859-1?Q?pNAeZGzgVLGyAKm7poxtp/vRy6DNV88zNcV2yLBwFewR/lPaMzw8YNJsw9?=
 =?iso-8859-1?Q?vjA5/fT/ySkqVsQFKYy1ApOACbBI4KkYUEAXXLbR3cbeFdcFb0aGm/Wj7Q?=
 =?iso-8859-1?Q?oirTRzjzGPfu/zbKojItoWlmxL7jC+J+U4Fq4NHTHXp02FCDzZoX0MePvO?=
 =?iso-8859-1?Q?p1jx6VCRtU3TZ5+LfyNSTvgf9iNGB93TSZ43ZlYf/irB+xUDj/sk7kCn57?=
 =?iso-8859-1?Q?zffzEARTW54rKSur8KFQIDsCYtID+hsHcrzMXU39plXD5/0aYyG6qtZ9dR?=
 =?iso-8859-1?Q?3hD2gstGkqW0llUaXYRWVUB6DD7xBb0nptYLwwG3ODgmOkTwyRREuoujmK?=
 =?iso-8859-1?Q?cd4JDiGQn5oKjLwZDpPV5zN6Xrzdozx0lR5tMMDaRZERS9rTqnSRdEI0wp?=
 =?iso-8859-1?Q?K1h5Er6qj4cfVKCTirb3Hga/un+GYY50MppS+E4Xty6kjbmlyyMo0KZzdP?=
 =?iso-8859-1?Q?wZag6ipK0sVwUv7H6veUmr+8qpaiBkKwFdFx+6D+8O0drBpsdL1Q9jysHY?=
 =?iso-8859-1?Q?cyzj+F9RDnkiL6wV938jUYFj1xgbBWjya3rKK4vhr6CMWpos/66wux7QVT?=
 =?iso-8859-1?Q?iTYrRPvkMbiy2NliRw/xS3T0iPj3RWYTiRLUTltX+5e+HCnS4p08BlnJ5q?=
 =?iso-8859-1?Q?zMg6ciYhYu/UwdZExzahgMMCLSTFV2WisB4CNxS6T8QeF8DlqGkN9JverL?=
 =?iso-8859-1?Q?5fzGXQIRchF7rJEmh1i1nUrxAcUBnpXYuJtKiItuMTtp9w6eowiCn4H4La?=
 =?iso-8859-1?Q?ji7jHlxwoi6vVzg+c0c=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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: eb214470-6306-4e54-64ef-08dde596f46b
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Aug 2025 18:24:26.4467
 (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: L+T6t4MSpsmFOgnAqz0VfjK4abphLIblzA2gRq96b3m0e+SaigcV1lkUXwMdc8iI3ew5OWXunKl3Q+2bVEFUyM79COkhJOc33KfUOpvn0kQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MRWPR03MB11023

The GICv3.1 eSPI (Extended Shared Peripheral Interrupts) range is
already supported with CONFIG_GICV3_ESPI enabled, so this feature should
be mentioned in CHANGELOG.md.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>

---
Changes in V3:
- introduced this patch
---
 CHANGELOG.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5f31ca08fe..dc34d29d99 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -29,6 +29,7 @@ The format is based on [Keep a Changelog](https://keepach=
angelog.com/en/1.0.0/)
=20
  - On Arm:
     - Ability to enable stack protector
+    - GICv3.1 eSPI support
=20
 ### Removed
  - On x86:
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 18:31:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 18:31:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096809.1451437 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urKve-0005jg-UX; Wed, 27 Aug 2025 18:31:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096809.1451437; Wed, 27 Aug 2025 18:31: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 1urKve-0005jX-RY; Wed, 27 Aug 2025 18:31:26 +0000
Received: by outflank-mailman (input) for mailman id 1096809;
 Wed, 27 Aug 2025 18:31:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=x+iP=3H=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1urKow-0006ki-Ak
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 18:24:30 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 10da613f-8373-11f0-ae26-e363de0e7a9e;
 Wed, 27 Aug 2025 20:24:27 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by MRWPR03MB11023.eurprd03.prod.outlook.com (2603:10a6:501:76::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.15; Wed, 27 Aug
 2025 18:24:24 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9052.014; Wed, 27 Aug 2025
 18:24: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>
X-Inumbo-ID: 10da613f-8373-11f0-ae26-e363de0e7a9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=af4fTr8gP9KxbRQiOgP90/NUmLwvypl/Ir4GiApeS4oT7t3aIlifsPq0IajoT/p7pQEAh7F3Zm7MuC1Bc5A7+9vdLWJ1q3RnIa8ZDAZ4hSDFRHtG1AZ2mY0ilUErEq9iTi+bemSzTlL+/2FkZ16A179nerVfH8fX4EiMJuQ6TLjmJ0tBgyEUTtTcVdMAJdF5KsHU5xsaLekxpq5e4E+R6t131RLiFXn7ThDDpFJI4YQD+RPTieH3z339WvvWAy3qZVzm4aAfvyMarRY3ac6HqVCH3xWsqFQn20WesSHRagNEfautRTKCBpjc3ptxDod3jrRwExlH0h7EjFN5RKRG5w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=P59BS93ETcKG4P0KEy57U1s5baIHMLjBk3TnuOaGCfU=;
 b=AfoeuotC2PpMOUbDTlDH98Jnmh65kVP0Lgs0MbYJvuCF4IxvyCXmI4tCseiW8d6QKNjC8edbF12owpmwBrblBcBAUIMaAzz4NKNUg3mmZxvj1X1qc+To4Ii/41av5ib8Q/EtU4H4g0SD0KcErFiHrCOgVMMEx5gYCk4QV+Vuqi4x15ZRnpC6v4G66AMWRSwNm1gKZakilrR/DIMqRTT0IuMtYDSUOsyZwVTFPB1r4yW8IkybON9/fi6mZ1sHlY6GaHhVp2skvek3rV0gHFG/p7vCgkD3PaXppYk49JJutdraT6FZZtGnQ1XZrKK4rEiFIis4IWogZoHJVvYrXIfbXA==
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=P59BS93ETcKG4P0KEy57U1s5baIHMLjBk3TnuOaGCfU=;
 b=g4LqAdyD4mT5n6NADjvReW7iFXvwomq0kf+h3CAHhA6HHTvfYaoj00KnPEGQoCRvAUFfXPBsoWvb8QrKRIIl0LOCwfIaFJCO/QwBdyzn6PftcxqnF/0GdHO4yco60EFgxN6k/djeyv10crNLIYH39+6RtcCsC+oCjvcWavRaBdyXe3eikjJxXJ+dCo283k66Sie/WhfcBmGxVmtROjrrV9OaJVLIqXYCpSsu98qHOCQPX36mNWSUHn9dokrMHe0dURoPDUxywpSxYPdX/qZSmUdoiE67O7QuCC6fUibtNrhj4OqIBlDmP9WsQ6E2BXzZxTJxXCyXS7fSWRyPqiCMiA==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "olekstysh@gmail.com" <olekstysh@gmail.com>, Leonid Komarianskyi
	<Leonid_Komarianskyi@epam.com>, Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v4 11/12] doc/man: update description for nr_spis with eSPI
Thread-Topic: [PATCH v4 11/12] doc/man: update description for nr_spis with
 eSPI
Thread-Index: AQHcF3/Q0bamE1jhy06ZtBrEohbynw==
Date: Wed, 27 Aug 2025 18:24:24 +0000
Message-ID:
 <50cd1899b328e82bd517ae0dd0e400e9cfee0999.1756317702.git.leonid_komarianskyi@epam.com>
References: <cover.1756317702.git.leonid_komarianskyi@epam.com>
In-Reply-To: <cover.1756317702.git.leonid_komarianskyi@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: GV2PR03MB8678:EE_|MRWPR03MB11023:EE_
x-ms-office365-filtering-correlation-id: f80c8cf4-721e-445f-8472-08dde596f31d
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?CvrKr9e19yJrHSXUZpIz3BHjDLk8FpAjfbUzBvbsDqX4U5qNDQpEUCFkL4?=
 =?iso-8859-1?Q?9DZa+GuuiDzGL9HiCaEJ+J037biOoaYz7z1eV2fU0ZRpOdAULD8XGCjPDJ?=
 =?iso-8859-1?Q?1DuGQ1NmRmU0edpqiAsS0c+04jBqpp2CjhfQRLVGJk1UQtqtopvgOf2uk0?=
 =?iso-8859-1?Q?Y6Ivx7+0gQbAeTNFuWFCT59CWhelG1zRWS8vcPskXZmUuQUBLa2xbHQMcU?=
 =?iso-8859-1?Q?Yz7/IfK9wT9fWARKPCba7LCQQxO+ox1qkVMZNI0qmS4oyvybfVN21DylcY?=
 =?iso-8859-1?Q?Ar5+ZB2I7nMugWcM3dl7T5Gz3+2rxTiLbC72REgIm/h3WauZy1Kg4b1ta0?=
 =?iso-8859-1?Q?mojdxJhGHRMgv6HhNdgDQxjMpivl0NrLXfbW6GArx/yroY5TXOtuA9tt7d?=
 =?iso-8859-1?Q?zfhUkeq5wnaajjmlAp58/v2lL6Ay68KM+8MmcRgeEcfZc7Ka5eBvEEr7hO?=
 =?iso-8859-1?Q?9HqiN++E+rgGDmGueY7/SyYssvm84Hpn6jAFk/YZg99+IVN62ouYZcJlwV?=
 =?iso-8859-1?Q?1pPeTUHNRnxtbiQANCocMuostLmW5XifKv4SVI7KpwQzca9gcoVvoFL7rA?=
 =?iso-8859-1?Q?9YRFg4cqBQMkG33a6r/5TEahRddtnJO+ydZd2Ugj7bXTFBn/Vmqe7iaxmC?=
 =?iso-8859-1?Q?UUoF19nk9/U7eQGHwgURImYPCWym3DdF2uR3ev6421wGw5gpby0vrOcDcr?=
 =?iso-8859-1?Q?AP2sYD1Ee5p92rt6M8kuFzS0CIt/rHGwg7FyQLp6L5W9xB0nkKurpD63wM?=
 =?iso-8859-1?Q?NbbqyseAGHd5agEGMW4Dw/0HeHDnkWo9w+9tCh6s6rclzgxohFYfjeU/Ph?=
 =?iso-8859-1?Q?uaLocdgFaFiy/OtgTS3czZMx2dqGKf3R5sOC3sjmlgs8PXRioKN1nPghyw?=
 =?iso-8859-1?Q?by+44eQXuQJIt+/EmO6Hi0UDErJNZz4dIcaiOOaNB1bJm6TZiNQMvEHF0z?=
 =?iso-8859-1?Q?/S1gRUJd7ssluzYaexjIDc2chZG/bAdsv7tAz6cKDejejZA37P3cLM6y3E?=
 =?iso-8859-1?Q?5sNKd1L6dIBicgao7DZNKUxYBYvFxpMBUkrST+ViJcU74wH/zpIHtX/xyy?=
 =?iso-8859-1?Q?uU5Z6Tyd1zsZwQgQC0PnbYP5EMOa9JsKF3QlGyoR4CMiFaTl02t/RiCows?=
 =?iso-8859-1?Q?Us+OzBmIeH3kxz3c7EWoZl9I4K4yyQEjYk9rMqXPQVImDpXepY7ncE1j0H?=
 =?iso-8859-1?Q?M6XjHNtvDPEVQj44/8uW5BO+cXRYzYObZ7ZAeuKNdpwcdIcFlx1DOiceQh?=
 =?iso-8859-1?Q?bVcIc/A4/40lsQDDlD+U8LT2dGiu8ThaIuUA80m9GTjR9Xpa5jLYQpjQA1?=
 =?iso-8859-1?Q?TQyzCebHIN3wT2EZBTrGJfu9tHLWE4k9ZRX8bVJ/c8H+DX/MDcpJeBBzAr?=
 =?iso-8859-1?Q?Ry31KCVX8sLMO3c0ejjWWTI0MAp+bDP1EQA+0OEk0ChECZDcWiXgudC971?=
 =?iso-8859-1?Q?EEZQ0G2E6w6osWhsNU5Y5drVfbLPtwEwolwgnf7AV8JVp3ipWBOx5kQ/Ar?=
 =?iso-8859-1?Q?mAqLprZqqvuknxZCQwJKIlRAoAfzLSpfP66sORHVvcsEFMwhuMYJMyYenD?=
 =?iso-8859-1?Q?uTy0hsA=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?I+wtVbNl2X59aXw96xgH8ZywL+TA5BgiT/C61xntblyYWokmhGeC5hXceB?=
 =?iso-8859-1?Q?fG1m3o6uuO/USJ4W6ItIHNFlXF5Si/tjZ1Zs0jneOWeTZNld9DAmRgugl5?=
 =?iso-8859-1?Q?mr58tOaVmtBSgi7LBfmZihPjz+jOdWj2B5SNj7hPUQ1nbBR77GNTAsTyMU?=
 =?iso-8859-1?Q?tGZ+IfH2f/vmzBKj5AMCce1LsRWm4a2Ppr9enzW56yy/Tl6ZQsPGHeMTl8?=
 =?iso-8859-1?Q?oEwKipKWff4/OPUBjkza/gOvIxdjBstIag675mzACNp3+sCRoOAzhGYARL?=
 =?iso-8859-1?Q?3P1Q3EuR+/f3+afG+8UJFZBR5X00vxt7sEhxvdUPDMh81tpVvwuX8o3TMJ?=
 =?iso-8859-1?Q?nShsuQFf9qjUeO71sh1Xk9yO2DG6x2GY/rQEYLCObEo+ANSHzXoTrwcTNj?=
 =?iso-8859-1?Q?ulsfWUdRs2CvG9lQeTfdKcJSB04zK1lJjg9pkjy7I3yv7KHuIf+bFe9XxH?=
 =?iso-8859-1?Q?OCMkPB2ofs812FFH0yfh+HUB3ysexNAagH93mR2xCDxSHhr7+23kFJwn46?=
 =?iso-8859-1?Q?wLs3/QjZZWroLNWnXMulnI7Qz+WW+E1I0EA1cc8rSm70kToB6D2Xu7poRX?=
 =?iso-8859-1?Q?SleEVYe9Lf3VT240OATh6C6Z1TeOaEePO/0/b4BEBNlZtm2u8lnnJfT6jJ?=
 =?iso-8859-1?Q?L5rwFJYcsM3pLMq6uWMFEoPACfQnh7EyNtzcqpKcPvj903IFzZd6vSvLu9?=
 =?iso-8859-1?Q?5K2UXSqZ62rCmj5Dq+LRpfkeYBogDs9N6/ox7MjMM3/2QW5pH4xTAyTC2D?=
 =?iso-8859-1?Q?4NJmlSMzDxmVp9h77iI8y/rkAqblNJP1H85JLRC7fdsKWNrmCQdBkQe/QH?=
 =?iso-8859-1?Q?s2ZWW0YWBrPpb68NbbYUXRH0v2MZHc8/cZgI1hBzlr5NrcktlbI09o+HRV?=
 =?iso-8859-1?Q?1hGnpd5pA1iH1f/PKHY287O12829VSxj4Mu3Uzh3TdTy9HHJz0+Wvu70Dt?=
 =?iso-8859-1?Q?dRWSjOBUa7cSKsgQ31P6Mbe61rcvSfvfMPonh3N0ULtTjXtVM7h1aqaIoe?=
 =?iso-8859-1?Q?C5qQNeZJVaO86uf2p8e7Lb84WuZrW3Kfh0ahzta56TrXUq/lAXj8eNEW3W?=
 =?iso-8859-1?Q?EQyicJ5wm3+/KD2kMuy+qv+N1ZJlVDBAcC76210owia9roXkKa4DkvTqeO?=
 =?iso-8859-1?Q?NeJI9oDWMHX7hHek5gNI9GU+K+mhyjkVvJWsceJu+7oDW6musxrZKc4UoG?=
 =?iso-8859-1?Q?JQldg+iHfc61WkxxfQgV/aKFn5/At+4gVF2Gv442NDKgvDCTAqZJ65qHlI?=
 =?iso-8859-1?Q?JRS1vpiRElKTSNlBBA0iz1B38+MbqEPynJg8n66WE+fDcsK0wD61l8VxL3?=
 =?iso-8859-1?Q?wAwAaEVS+CQCjabpUUAMmbC8eZeb7oglR7ftSNz2Wp4dY6Fh9lWpcrtAjp?=
 =?iso-8859-1?Q?93Yay83dzLbMJV9CbkZC36mb204OF2oh6ZavWFGX88InssWAVmRec/H646?=
 =?iso-8859-1?Q?bKKTc7iUjYVm/Jv7fDGcn8QAWTDTa7lX/CJ+IYn7K4g0VOhlpFxGhZx7fX?=
 =?iso-8859-1?Q?2ZSB+acvXqAUjtfut8A7/OQuN03AhzWDaIlzGXSRnNrF5VTI2MNvM0EZRH?=
 =?iso-8859-1?Q?2foCLc0k79QTVb4X07FE+z/1pbQti4mWWBFxGoo32rCuOMP19bmd45Gu0z?=
 =?iso-8859-1?Q?sQl69Sc2OMdRYjts64Nj8iVZRIWze26hvjZEoV3l/9dzQx+hvMkXNWZVbq?=
 =?iso-8859-1?Q?yRFb0yoc7XWW1d0IXq0=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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f80c8cf4-721e-445f-8472-08dde596f31d
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Aug 2025 18:24:24.2978
 (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: 8GhAX9WUyQ7EzvnkcYFPZYIDxe9oxmTWI+eOssPvBo9B67IUxQ1mV3/CBQ5uoYG9cdiPS1S6JKZ6vBdV3GaSv2AtMpEm/hO9wNsVOfCnVxw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MRWPR03MB11023

Since eSPI support has been introduced, update the documentation with
the appropriate description.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>

---
Changes in V4:
- introduced this patch
---
 docs/man/xl.cfg.5.pod.in | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/docs/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.in
index 5362fb0e9a..292ab10331 100644
--- a/docs/man/xl.cfg.5.pod.in
+++ b/docs/man/xl.cfg.5.pod.in
@@ -3072,11 +3072,14 @@ interval of colors (such as "0-4").
 =3Ditem B<nr_spis=3D"NR_SPIS">
=20
 An optional integer parameter specifying the number of SPIs (Shared
-Peripheral Interrupts) to allocate for the domain. Max is 960 SPIs. If
-the `nr_spis` parameter is not specified, the value calculated by the tool=
stack
-will be used for the domain. Otherwise, the value specified by the `nr_spi=
s`
-parameter will be used. The number of SPIs should match the highest interr=
upt
-ID that will be assigned to the domain.
+Peripheral Interrupts) to allocate for the domain. Max is 960 for regular =
SPIs
+or 5088 for eSPIs (Extended SPIs). The eSPIs includes an additional 1024 S=
PIs
+from the eSPI range (4096 to 5119) if the hardware supports extended SPIs
+(GICv3.1+) and CONFIG_GICV3_ESPI is enabled. If the `nr_spis` parameter is=
 not
+specified, the value calculated by the toolstack will be used for the doma=
in.
+Otherwise, the value specified by the `nr_spis` parameter will be used. Th=
e
+number of SPIs should match the highest interrupt ID that will be assigned=
 to
+the domain.
=20
 =3Ditem B<trap_unmapped_accesses=3DBOOLEAN>
=20
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 19:35:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 19:35:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096880.1451447 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urLvK-00069J-GH; Wed, 27 Aug 2025 19:35:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096880.1451447; Wed, 27 Aug 2025 19:35: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 1urLvK-00069C-Ca; Wed, 27 Aug 2025 19:35:10 +0000
Received: by outflank-mailman (input) for mailman id 1096880;
 Wed, 27 Aug 2025 19:35:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=BCET=3H=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1urLvJ-00068p-9y
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 19:35:09 +0000
Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com
 [2a00:1450:4864:20::12a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ef6e7fbe-837c-11f0-aeb2-fb57b961d000;
 Wed, 27 Aug 2025 21:35:06 +0200 (CEST)
Received: by mail-lf1-x12a.google.com with SMTP id
 2adb3069b0e04-55f3533fd05so241021e87.0
 for <xen-devel@lists.xenproject.org>; Wed, 27 Aug 2025 12:35:06 -0700 (PDT)
Received: from [192.168.0.110] ([91.123.151.69])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-55f3bba5682sm2707191e87.69.2025.08.27.12.35.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Aug 2025 12:35: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>
X-Inumbo-ID: ef6e7fbe-837c-11f0-aeb2-fb57b961d000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756323306; x=1756928106; 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=Wgvs3zCdmcO6eznyzGFu4JO+Xe9R1kWdtg1/e190Zrw=;
        b=K87lFYYW5jWRMIc+HQxfV/Lrfsq5EzEjHCN8T4qPOZr1934Mh0Vn6FG0OpFHzIurWO
         uVUGTEz37uHwrkP8AiGJ20x2qOvzHWse/ik+aTNllDHl89zBHqri7qBhk+wOj2shu6ij
         Y5NVbjZEjORqCCnB6iZ745q0PRC7lQUOAxWvwm6sXwdoIzsi+Pjo/kX65Q/0Dv74ijK5
         i/g1GOy2NFByg6xrEucOKNrctz9+zyPVRvq7v36jFXksaen3REGkXSrxvUc3Vhr3wNT5
         OpyCcvMNSQ7CUVppjOlf2ry/xsSmeormcU/Oxt3p3OAiA5YUmdwQQbJs9gdpwVuReWUs
         N72g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756323306; x=1756928106;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=Wgvs3zCdmcO6eznyzGFu4JO+Xe9R1kWdtg1/e190Zrw=;
        b=xUtS8kKyN090FfZY3EiLpD+Z3Y77PTWfDqc2rEwVDkux+Va/Rak95kzSfScNkvl7ki
         LldJ5sCRGJmgxIuVyULGpnX/IHUP9rShNw+Eo4tY6hnZ0vjejI7W+ayhXEmsDpAj4j5x
         26eet684NKsWLd1Si7HxhPzmp9ZrUsZfV+TmMrFH3XInFNnTKBb63wzaj2ALlEgIUWym
         H/jdiC7oWel6ymFn57cdsdIFSPb9Lh38JfJLR+g4HdSOdHtdTVKLBmr64wtSFeCaRMVK
         6qY3CLgOY9hSGhf9p924vLrZT1rovRolKEmEeEGyoNRScUM05VuyBliyDQWhZkf2fPYr
         RkHw==
X-Forwarded-Encrypted: i=1; AJvYcCVcRIXOLJmZGGmRpcdYOF2xztTo2IEvXUXxZ7l9kL3EHsl+J3GHKlKHgSZEP50sEqKmbuFnYU8JADc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyMRAqv58v0xxV5RVRIN5Yy1kQWoZUdcLsGY9D43PdcigvO+hza
	oxvcL7BP29JTh+NbgrLenZOqJtDxmZl587PsLO4fllm4tXR4YhFLrlbN
X-Gm-Gg: ASbGncsrMF/j/4dvaqZmrA6//Jqso6LQrFumERBj1rEzmzL3WzEIHhsNWFk4FypPEp7
	CuuG1jEyeDhxBRIPJP9bhj7dBn/Yzn1FqHV6HgFZeMk5HAhuyv3+9r3lBlIyBG9R01CwzXOpXNe
	uRR6dj/l1dPX7yL78RungvdYR7zwOBsU8cPy1Qd+mxi+ZOcsmlFZwVvEcI/PadG6RQXIIezYKcx
	y4OqHEojUOSBO06vAsJotQeSOAAy/Uv5m3+yo8zO/IDVsG/QN5slP8ippOITFdgs5B1bnFAPmxa
	4IFdSwSg0XpoXDcAdBYgJFi2S8hXLsn6YfMkEUq5269d60GL63bYNku2jQTP3TfdG0EGvQVZ5ss
	LZ0Gcc6JYqSagDcaSGvcmagJ6Tw==
X-Google-Smtp-Source: AGHT+IGDIMB+YpuQ3vaGe/Iotr3IV9/xHS0oZwrZQ4sTxh7TQpihKwrhI3Mra+yBlH9OOHZQ5+ls6g==
X-Received: by 2002:a05:6512:1244:b0:55f:4400:f2f6 with SMTP id 2adb3069b0e04-55f4400f686mr4226851e87.42.1756323305419;
        Wed, 27 Aug 2025 12:35:05 -0700 (PDT)
Message-ID: <4ad27aeb-4a71-4360-85a2-42f145cca6b6@gmail.com>
Date: Wed, 27 Aug 2025 22:35:02 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v5 09/10] xen/arm: scmi: introduce SCI SCMI SMC
 multi-agent driver
To: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Bertrand Marquis <bertrand.marquis@arm.com>, Jan Beulich
 <jbeulich@suse.com>, Juergen Gross <jgross@suse.com>,
 Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>
References: <cover.1753184487.git.oleksii_moisieiev@epam.com>
 <9f4a137980a0ee72f0f03d55176ca178c4b90126.1753184487.git.oleksii_moisieiev@epam.com>
Content-Language: en-US
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
In-Reply-To: <9f4a137980a0ee72f0f03d55176ca178c4b90126.1753184487.git.oleksii_moisieiev@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 22.07.25 14:41, Oleksii Moisieiev wrote:

Hello Oleksii

[I will try to not repeat comments provided by Stefano in separate letter]


> This patch introduces SCI driver to support for ARM EL3 Trusted Firmware-A
> (TF-A) which provides SCMI interface with multi-agnet support, as shown
> below.
> 
>    +-----------------------------------------+
>    |                                         |
>    | EL3 TF-A SCMI                           |
>    +-------+--+-------+--+-------+--+-------++
>    |shmem1 |  |shmem0 |  |shmem2 |  |shmemX |
>    +-----+-+  +---+---+  +--+----+  +---+---+
> smc-id1 |        |         |           |
> agent1  |        |         |           |
>    +-----v--------+---------+-----------+----+
>    |              |         |           |    |
>    |              |         |           |    |
>    +--------------+---------+-----------+----+
>           smc-id0 |  smc-id2|    smc-idX|
>           agent0  |  agent2 |    agentX |
>                   |         |           |
>              +----v---+  +--v-----+  +--v-----+
>              |        |  |        |  |        |
>              | Dom0   |  | Dom1   |  | DomX   |
>              |        |  |        |  |        |
>              |        |  |        |  |        |
>              +--------+  +--------+  +--------+
> 
> The EL3 SCMI multi-agent firmware expected to provide SCMI SMC/HVC shared
> memory transport for every Agent in the system.
> 
> The SCMI Agent transport channel defined by pair:
>   - smc-id: SMC/HVC id used for Doorbell
>   - shmem: shared memory for messages transfer, Xen page
>   aligned. Shared memort is mapped with the following flags:
>   MT_DEVICE_nGnRE.
> 
> The follwoing SCMI Agents expected to be defined by SCMI FW to enable SCMI
> multi-agent functionality under Xen:
> - Xen manegement agent: trusted agents that accesses to the Base Protocol
> commands to configure agent specific permissions
> - OSPM VM agents: non-trusted agent, one for each Guest domain which is
>    allowed direct HW access. At least one OSPM VM agent has to be provided
>    by FW if HW is handled only by Dom0 or Driver Domain.
> 
> The EL3 SCMI FW expected to implement following Base protocol messages:
> - BASE_DISCOVER_AGENT (optional if agent_id was provided)
> - BASE_RESET_AGENT_CONFIGURATION (optional)
> - BASE_SET_DEVICE_PERMISSIONS (optional)
> 
> The SCI SCMI SMC multi-agent driver implements following
> functionality:
> - The driver is initialized based on the ``xen,config`` node under ``chosen``
>    (only one SCMI interface is supported), which describes the Xen management
>    agent SCMI interface.
> 
> scmi_shm_1: sram@47ff1000 {
>            compatible = "arm,scmi-shmem";
>            reg = <0x0 0x47ff1000 0x0 0x1000>;
> };
> scmi_xen: scmi {
>          compatible = "arm,scmi-smc";
>          arm,smc-id = <0x82000003>; <--- Xen manegement agent smc-id
>          #address-cells = < 1>;
>          #size-cells = < 0>;
>          #access-controller-cells = < 1>;
>          shmem = <&scmi_shm_1>; <--- Xen manegement agent shmem
> };
> 
> - The driver obtains Xen specific SCMI Agent's configuration from the Host DT, probes Agents and
>    builds SCMI Agents list. The Agents configuration is taken from "scmi-secondary-agents"
>    property where first item is "arm,smc-id", second - "arm,scmi-shmem" phandle and third is
>    optional "agent_id":
> 
> chosen {
>    ranges;
>    xen,config {
>      ranges;
>      scmi-secondary-agents = <
>                    0x82000003 &scmi_shm_0 0
>                    0x82000004 &scmi_shm_2 2
>                    0x82000005 &scmi_shm_3 3
>                    0x82000006 &scmi_shm_4 4>;
>      #scmi-secondary-agents-cells = <3>; <--- optional, default 3
> 
>      scmi_shm_0 : sram@47ff0000 {
>          compatible = "arm,scmi-shmem";
>          reg = <0x0 0x47ff0000 0x0 0x1000>;
>      };
> 
>      scmi_shm_2: sram@47ff2000 {
>              compatible = "arm,scmi-shmem";
>              reg = <0x0 0x47ff2000 0x0 0x1000>;
>      };
>      scmi_shm_3: sram@47ff3000 {
>              compatible = "arm,scmi-shmem";
>              reg = <0x0 0x47ff3000 0x0 0x1000>;
>      };
>      scmi_shm_4: sram@47ff4000 {
>              compatible = "arm,scmi-shmem";
>              reg = <0x0 0x47ff4000 0x0 0x1000>;
>      };
> 
>      // Xen SCMI management channel
>      scmi_shm_1: sram@47ff1000 {
>              compatible = "arm,scmi-shmem";
>              reg = <0x0 0x47ff1000 0x0 0x1000>;
>      };
> 
>      scmi_xen: scmi {
>          compatible = "arm,scmi-smc";
>          arm,smc-id = <0x82000002>; <--- Xen manegement agent smc-id
>          #address-cells = < 1>;
>          #size-cells = < 0>;
>          #access-controller-cells = < 1>;
>          shmem = <&scmi_shm_1>; <--- Xen manegement agent shmem
>      };
>    };
> };
> 
> /{
>      // Host SCMI OSPM channel - provided to the Dom0 as is if SCMI enabled for it
>      scmi_shm: sram@47ff0000 {
>              compatible = "arm,scmi-shmem";
>              reg = <0x0 0x47ff0000 0x0 0x1000>;
>      };
> 
>      firmware {
>          scmi: scmi {
>              compatible = "arm,scmi-smc";
>              arm,smc-id = <0x82000002>; <--- Host OSPM agent smc-id
>              #address-cells = < 1>;
>              #size-cells = < 0>;
>              shmem = <&scmi_shm>; <--- Host OSPM agent shmem
> 
>              protocol@X{
>              };
>          };
>      };
> };
> 
> This approach allows defining multiple SCMI Agents by adding Xen-specific properties under
> the ``/chosen`` node to the Host Device Tree, leaving the main part unchanged. The Host DT
> SCMI channel will be passed to Dom0.
> 
> The Xen management agent is described as a ``scmi_xen`` node under the ``/chosen`` node, which
> is used by Xen to control other SCMI Agents in the system.
> 
> All secondary agents' configurations are provided in the ``scmi-secondary-agents`` property with
> an optional ``agent_id`` field.
> 
> The ``agent_id`` from the ``scmi-secondary-agents`` property is used to identify the agent in the
> system and can be omitted by setting ``#scmi-secondary-agents-cells = <2>``, so the Secondary
> Agents configuration will look like this:
> 
> chosen {
>    xen,config {
>      scmi-secondary-agents = <
>                    0x82000003 &scmi_shm_0
>                    0x82000004 &scmi_shm_2
>                    0x82000005 &scmi_shm_3
>                    0x82000006 &scmi_shm_4>;
>      #scmi-secondary-agents-cells = <2>;
>    };
> }
> 
> In this case, Xen will use the ``SCMI_BASE_DISCOVER_AGENT`` call to discover the ``agent_id``
> for each secondary agent. Providing the ``agent_id`` in the ``scmi-secondary-agents`` property
> allows skipping the discovery call, which is useful when the secondary agent's shared memory is
> not accessible by Xen or when boot time is important because it allows skipping the agent
> discovery procedure.
> 
>    Note that Xen is the only one entry in the system which need to know
>    about SCMI multi-agent support.
> 
> - It implements the SCI subsystem interface required for configuring and
> enabling SCMI functionality for Dom0/hwdom and Guest domains. To enable
> SCMI functionality for domain it has to be configured with unique supported
> SCMI Agent_id and use corresponding SCMI SMC/HVC shared memory transport
> [smc-id, shmem] defined for this SCMI Agent_id.
> - Once Xen domain is configured it can communicate with EL3 SCMI FW:
>    -- zero-copy, the guest domain puts SCMI message in shmem;
>    -- the guest triggers SMC/HVC exception with smc-id (doorbell);
>    -- the Xen driver catches exception, do checks and synchronously forwards
>    it to EL3 FW.
> - the Xen driver sends BASE_RESET_AGENT_CONFIGURATION message to Xen
>    management agent channel on domain destroy event. This allows to reset
>    resources used by domain and so implement use-case like domain reboot.
> 
> Dom0 Enable SCMI SMC:
>   - pass dom0_scmi_agent_id=<agent_id> in Xen command line. if not provided
>     SCMI will be disabled for Dom0 and all SCMI nodes removed from Dom0 DT.
>     The driver updates Dom0 DT SCMI node "arm,smc-id" value and fix up shmem
>     node according to assigned agent_id.
> 
> Guest domains enable SCMI SMC:
>   - xl.cfg: add configuration option as below
> 
>     arm_sci = "type=scmi_smc_multiagent,agent_id=2"
> 
>   - xl.cfg: enable access to the "arm,scmi-shmem" which should correspond assigned agent_id for
>     the domain, for example:
> 
> iomem = [
>      "47ff2,1@22001",
> ]
> 
>   - DT: add SCMI nodes to the Driver domain partial device tree as in the
>   below example. The "arm,smc-id" should correspond assigned agent_id for the domain:
> 
> passthrough {
>     scmi_shm_0: sram@22001000 {
>         compatible = "arm,scmi-shmem";
>         reg = <0x0 0x22001000 0x0 0x1000>;
>     };
> 
>     firmware {
>          compatible = "simple-bus";
>              scmi: scmi {
>                  compatible = "arm,scmi-smc";
>                  arm,smc-id = <0x82000004>;
>                  shmem = <&scmi_shm_0>;
>                  ...
>              }
>      }
> }
> 
> SCMI "4.2.1.1 Device specific access control"
> 
> The XEN SCI SCMI SMC multi-agent driver performs "access-controller" provider function
> in case EL3 SCMI FW implements SCMI "4.2.1.1 Device specific access control" and provides the
> BASE_SET_DEVICE_PERMISSIONS command to configure the devices that an agents have access to.
> The DT SCMI node should "#access-controller-cells=<1>" property and DT devices should be bound
> to the Xen SCMI.
> 
> &i2c1 {
> 	access-controllers = <&scmi 0>;
> };
> 
> The Dom0 and dom0less domains DT devices will be processed automatically through
> sci_assign_dt_device() call, but to assign SCMI devices from toolstack the xl.cfg:"dtdev" property
> shell be used:
> 
> dtdev = [
>      "/soc/i2c@e6508000",
> ]
> 
> xl.cfg:dtdev will contain all nodes which are under SCMI management (not only those which are behind IOMMU).
> 
> [1] https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/firmware/arm,scmi.yaml
> [2] https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/access-controllers/access-controllers.yaml
> 
> Signed-off-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> ---
> 
> Changes in v5:
> - fix device-tree example format in booting.txt, added ";" after "}".
> - update define in scmi-proto.h
> - update define in scmi-shmem.h file
> - scmi_assign_device - do not ignore -EOPNOTSUPP return
> code of the do_smc_xfer
> - remove overwriting agent_channel->agent_id after
> SCMI_BASE_DISCOVER_AGENT call
> - add multi-agent files to the MAINTAINERS
> - add SCMI multi-agent description to the SUPPORT.md
> - handle ARM_SMCCC_INVALID_PARAMETER return code and return -EINVAL
> for smc call
> - updated collect_agents function. Set agent_id parameter as optional
> in scmi-secondary-agents device-tree property
> - introduce "#scmi-secondary-agents-cells" parameter to set if
> agent_id was provided
> - reanme xen,scmi-secondary-agents property to scmi-secondary-agents
> - move memcpu_toio/fromio for the generic place
> - update Xen to get management channel from /chosen/xen,config node
> - get hypervisor channnel from node instead of using hardcoded
> - update handling scmi and shmem nodes for the domain
> - Set multi-agent driver to support only Arm64
> 
> Changes in v4:
> - toolstack comments from Anthony PERARD
> - added dom0less support
> - added doc for "xen,scmi-secondary-agents"
> 
>   MAINTAINERS                                 |   4 +
>   SUPPORT.md                                  |  11 +
>   docs/man/xl.cfg.5.pod.in                    |  13 +
>   docs/misc/arm/device-tree/booting.txt       |  88 +++
>   docs/misc/xen-command-line.pandoc           |   9 +
>   tools/libs/light/libxl_arm.c                |   4 +
>   tools/libs/light/libxl_types.idl            |   4 +-
>   tools/xl/xl_parse.c                         |  12 +
>   xen/arch/arm/dom0less-build.c               |  11 +
>   xen/arch/arm/domain_build.c                 |   3 +-
>   xen/arch/arm/firmware/Kconfig               |  12 +
>   xen/arch/arm/firmware/Makefile              |   1 +
>   xen/arch/arm/firmware/scmi-proto.h          | 164 ++++
>   xen/arch/arm/firmware/scmi-shmem.c          | 112 +++
>   xen/arch/arm/firmware/scmi-shmem.h          |  45 ++
>   xen/arch/arm/firmware/scmi-smc-multiagent.c | 803 ++++++++++++++++++++
>   xen/include/public/arch-arm.h               |   3 +
>   17 files changed, 1297 insertions(+), 2 deletions(-)
>   create mode 100644 xen/arch/arm/firmware/scmi-proto.h
>   create mode 100644 xen/arch/arm/firmware/scmi-shmem.c
>   create mode 100644 xen/arch/arm/firmware/scmi-shmem.h
>   create mode 100644 xen/arch/arm/firmware/scmi-smc-multiagent.c
> 

[snip]

> diff --git a/tools/xl/xl_parse.c b/tools/xl/xl_parse.c
> index 68d2ebeb9f..4c05b20c06 100644
> --- a/tools/xl/xl_parse.c
> +++ b/tools/xl/xl_parse.c
> @@ -1306,6 +1306,18 @@ static int parse_arm_sci_config(XLU_Config *cfg, libxl_arm_sci *arm_sci,
>               }
>           }
>   
> +        if (MATCH_OPTION("agent_id", ptr, oparg)) {
> +            unsigned long val = parse_ulong(oparg);
> +
> +            if (!val || val > 255) {
> +                fprintf(stderr, "An invalid ARM_SCI agent_id specified (%lu). Valid range [1..255]\n",
> +                        val);
> +                ret = ERROR_INVAL;
> +                goto parse_error;
> +            }
> +            arm_sci->agent_id = val;
> +        }
> +
>           ptr = strtok(NULL, ",");
>       }
>   
> diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
> index d28143f98b..6ca17b0ce6 100644
> --- a/xen/arch/arm/dom0less-build.c
> +++ b/xen/arch/arm/dom0less-build.c
> @@ -299,6 +299,17 @@ int __init domu_dt_sci_parse(struct dt_device_node *node,
>           d_cfg->arch.arm_sci_type = XEN_DOMCTL_CONFIG_ARM_SCI_NONE;
>       else if ( !strcmp(sci_type, "scmi_smc") )
>           d_cfg->arch.arm_sci_type = XEN_DOMCTL_CONFIG_ARM_SCI_SCMI_SMC;
> +    else if ( !strcmp(sci_type, "scmi_smc_multiagent") )
> +    {
> +        uint32_t agent_id = 0;
> +
> +        if ( !dt_property_read_u32(node, "xen,sci_agent_id", &agent_id) ||
> +             !agent_id )
> +            return -EINVAL;

In toolstack you keep the check for agent_id to be in the range of 1 to 
255. Why do not check here as well?


> +
> +        d_cfg->arch.arm_sci_type = XEN_DOMCTL_CONFIG_ARM_SCI_SCMI_SMC_MA;
> +        d_cfg->arch.arm_sci_agent_id = agent_id;
> +    }
>       else
>       {
>           printk(XENLOG_ERR "xen,sci_type in not valid (%s) for domain %s\n",


[snip]

> diff --git a/xen/arch/arm/firmware/scmi-proto.h b/xen/arch/arm/firmware/scmi-proto.h
> new file mode 100644
> index 0000000000..e290d6630d
> --- /dev/null
> +++ b/xen/arch/arm/firmware/scmi-proto.h
> @@ -0,0 +1,164 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Arm System Control and Management Interface definitions
> + * Version 3.0 (DEN0056C)
> + *
> + * Copyright (c) 2024 EPAM Systems

2025


[snip]


> diff --git a/xen/arch/arm/firmware/scmi-shmem.c b/xen/arch/arm/firmware/scmi-shmem.c
> new file mode 100644
> index 0000000000..8fc8ca356b
> --- /dev/null
> +++ b/xen/arch/arm/firmware/scmi-shmem.c
> @@ -0,0 +1,112 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * SCI SCMI multi-agent driver, using SMC/HVC shmem as transport.

NIT: Is this really a multi-agent driver?

(scmi-smc-multiagent.c has exact the same description).

> + *
> + * Oleksii Moisieiev <oleksii_moisieiev@epam.com>
> + * Copyright (c) 2025 EPAM Systems
> + */
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#include <asm/io.h>
> +#include <xen/err.h>
> +#include <xen/lib/arm/io.h>

NIT: AFAIK, "asm" should be included after "xen"

> +
> +#include "scmi-proto.h"
> +#include "scmi-shmem.h"
> +

[snip]

> +
> +static struct scmi_channel *smc_create_channel(uint32_t agent_id,
> +                                               uint32_t func_id, uint64_t addr)
> +{
> +    struct scmi_channel *channel;
> +
> +    channel = get_channel_by_id(agent_id);
> +    if ( channel )
> +        return ERR_PTR(EEXIST);

missing "-" before EEXIST


> +
> +    channel = xmalloc(struct scmi_channel);
> +    if ( !channel )
> +        return ERR_PTR(ENOMEM);

missing "-" before ENOMEM

> +
> +    spin_lock_init(&channel->lock);
> +    channel->agent_id = agent_id;
> +    channel->func_id = func_id;
> +    channel->domain_id = DOMID_INVALID;
> +    channel->shmem = NULL;
> +    channel->paddr = addr;
> +    list_add_tail(&channel->list, &scmi_data.channel_list);
> +    return channel;
> +}
> +

[snip]

> +
> +static int scmi_dt_hyp_channel_read(struct dt_device_node *scmi_node, struct scmi_data *scmi_data,
> +                                    u64 *addr)

Missing __init?

> +{
> +    int ret;
> +    u64 size;
> +
> +    if ( !dt_property_read_u32(scmi_node, "arm,smc-id", &scmi_data->func_id) )
> +    {
> +        printk(XENLOG_ERR "scmi: unable to read smc-id from DT\n");
> +        return -ENOENT;
> +    }
> +
> +    ret = scmi_dt_read_hyp_channel_addr(scmi_node, addr, &size);
> +    if ( IS_ERR_VALUE(ret) )
> +        return -ENOENT;
> +
> +    if ( !IS_ALIGNED(size, SCMI_SHMEM_MAPPED_SIZE) )
> +    {
> +        printk(XENLOG_ERR "scmi: shmem memory is not aligned\n");
> +        return -EINVAL;
> +    }
> +
> +    return 0;
> +}
> +
> +static __init int scmi_probe(struct dt_device_node *scmi_node, const void *data)
> +{
> +    u64 addr;
> +    int ret;
> +    struct scmi_channel *channel;
> +    int n_agents;

unsigned int please if n_agents cannot be negative

> +    scmi_msg_header_t hdr;
> +    struct scmi_msg_base_attributes_p2a rx;
> +
> +    ASSERT(scmi_node != NULL);
> +
> +    INIT_LIST_HEAD(&scmi_data.channel_list);
> +    spin_lock_init(&scmi_data.channel_list_lock);
> +
> +    if ( !acpi_disabled )
> +    {
> +        printk(XENLOG_WARNING "scmi: is not supported when using ACPI\n");
> +        return -EINVAL;
> +    }
> +
> +    ret = scmi_check_smccc_ver();
> +    if ( ret )
> +        return ret;
> +
> +    ret = scmi_dt_hyp_channel_read(scmi_node, &scmi_data, &addr);
> +    if ( ret )
> +        return ret;
> +
> +    scmi_data.dt_dev = scmi_node;
> +
> +    channel = smc_create_channel(SCMI_BASE_AGENT_ID_OWN, scmi_data.func_id, addr);
> +    if ( IS_ERR(channel) )
> +        goto out;
> +
> +    /* Request agent id for Xen management channel  */
> +    ret = collect_agent_id(channel);
> +    if ( ret )
> +        return ret;

Why just ret? You seem to allocate memory in smc_create_channel() which
needs to be freed. I guess, free_channel_list() is needed.

> +
> +    /* Save the agent id for Xen management channel */
> +    scmi_data.hyp_channel_agent_id = channel->agent_id;
> +
> +    ret = map_channel_memory(channel);
> +    if ( ret )
> +        goto out;

The same question as above, as "goto out;" in your case is equivalent of 
"return ret;"

> +
> +    channel->domain_id = DOMID_XEN;
> +
> +    hdr.id = SCMI_BASE_PROTOCOL_ATTIBUTES;
> +    hdr.type = 0;
> +    hdr.protocol = SCMI_BASE_PROTOCOL;
> +
> +    ret = do_smc_xfer(channel, &hdr, NULL, 0, &rx, sizeof(rx));
> +    if ( ret )
> +        goto error;
> +
> +    n_agents = SCMI_FIELD_GET(SCMI_BASE_ATTR_NUM_AGENT, rx.attributes);
> +    printk(XENLOG_DEBUG "scmi: Got agent count %d\n", n_agents);
> +    ret = collect_agents(scmi_node);
> +    if ( ret )
> +        goto error;
> +
> +    ret = sci_register(&scmi_ops);
> +    if ( ret )
> +    {
> +        printk(XENLOG_ERR "SCMI: mediator already registered (ret = %d)\n",
> +               ret);
> +        return ret;
> +    }
> +
> +    scmi_data.initialized = true;
> +    goto out;
> +
> +error:
> +    unmap_channel_memory(channel);
> +    free_channel_list();
> +out:
> +    return ret;
> +}

[snip]




From xen-devel-bounces@lists.xenproject.org Wed Aug 27 19:39:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 19:39:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096897.1451457 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urLzH-0006mC-4I; Wed, 27 Aug 2025 19:39:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096897.1451457; Wed, 27 Aug 2025 19:39: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 1urLzH-0006m5-1R; Wed, 27 Aug 2025 19:39:15 +0000
Received: by outflank-mailman (input) for mailman id 1096897;
 Wed, 27 Aug 2025 19:39:14 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=73cR=3H=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1urLzG-0006lY-6d
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 19:39:14 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org
 [2600:3c0a:e001:78e:0:1991:8:25])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 80bd914d-837d-11f0-ae26-e363de0e7a9e;
 Wed, 27 Aug 2025 21:39:11 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 8B0164174A;
 Wed, 27 Aug 2025 19:39:09 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id C606CC4CEF4;
 Wed, 27 Aug 2025 19:39:07 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 80bd914d-837d-11f0-ae26-e363de0e7a9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1756323549;
	bh=7Y/0urpoyzwV3W43SVFyUKSuY0dlGUUH2UBFFsep3N4=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=o754VcdPFrl/At3exWgpmM3ttP8fA68+r94whTjsUceJTBAuu82BxTove6Fs8almM
	 9uiIQVkU1QTYr4+wL+R9sfSMhCfOiw6WzLp4jR/bohmrEOWzTJB5f8+F10qBUc3/RF
	 CM25/bYqGGnlsT+XgmRH0FagbSAh4Bf4DMtml2wt0tSmRJa0leigJhQgeiuk1YdAWU
	 KX5VtAg0xA6Kt2TpVA3D9ZimnDDaDHT6akEy9hVmBizWAaTc51eTUT1+mYdMf87kzs
	 MP1xgIpIQvCYOEqJdDR0Zgt4xy5d2zFAySUmBWYdmm83ywwqK5RHdikm6Hk1vHvXwo
	 ppXjSRSoWcmmQ==
Date: Wed, 27 Aug 2025 12:39:06 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Jan Beulich <jbeulich@suse.com>, Juergen Gross <jgross@suse.com>, 
    Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Grygorii Strashko <grygorii_strashko@epam.com>
Subject: Re: [RFC PATCH v5 02/10] xen/arm: scmi-smc: update to be used under
 sci subsystem
In-Reply-To: <1f64aa13-d9d3-4b58-9581-a45f7173430b@epam.com>
Message-ID: <alpine.DEB.2.22.394.2508271239020.3391208@ubuntu-linux-20-04-desktop>
References: <cover.1753184487.git.oleksii_moisieiev@epam.com> <a6a538ca4c02483e745f18db4f74504dad525fe6.1753184487.git.oleksii_moisieiev@epam.com> <alpine.DEB.2.22.394.2508221709020.2743087@ubuntu-linux-20-04-desktop>
 <1f64aa13-d9d3-4b58-9581-a45f7173430b@epam.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 27 Aug 2025, Oleksii Moisieiev wrote:
> On 23/08/2025 03:26, Stefano Stabellini wrote:
> > On Tue, 22 Jul 2025, Oleksii Moisieiev wrote:
> >> From: Grygorii Strashko <grygorii_strashko@epam.com>
> >>
> >> The introduced SCI (System Control Interface) subsystem provides unified
> >> interface to integrate in Xen SCI drivers which adds support for ARM
> >> firmware (EL3, SCP) based software interfaces (like SCMI) that are used in
> >> system management. The SCI subsystem allows to add drivers for different FW
> >> interfaces or have different drivers for the same FW interface (for example,
> >> SCMI with different transports).
> >>
> >> This patch updates SCMI over SMC calls handling layer, introduced by
> >> commit 3e322bef8bc0 ("xen/arm: firmware: Add SCMI over SMC calls handling
> >> layer"), to be SCI driver:
> >> - convert to DT device;
> >> - convert to SCI Xen interface.
> >>
> >> There are no functional changes in general, the driver is just adopted
> >> to the SCI interface.
> >>
> >> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> >> Signed-off-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
> >> ---
> >>
> >>
> >>
> >>   xen/arch/arm/firmware/Kconfig                | 13 ++-
> >>   xen/arch/arm/firmware/scmi-smc.c             | 93 +++++++++++---------
> >>   xen/arch/arm/include/asm/firmware/scmi-smc.h | 41 ---------
> >>   xen/arch/arm/vsmc.c                          |  5 +-
> >>   xen/include/public/arch-arm.h                |  1 +
> >>   5 files changed, 64 insertions(+), 89 deletions(-)
> >>   delete mode 100644 xen/arch/arm/include/asm/firmware/scmi-smc.h
> >>
> >> diff --git a/xen/arch/arm/firmware/Kconfig b/xen/arch/arm/firmware/Kconfig
> >> index fc7918c7fc..bbf88fbb9a 100644
> >> --- a/xen/arch/arm/firmware/Kconfig
> >> +++ b/xen/arch/arm/firmware/Kconfig
> >> @@ -8,9 +8,18 @@ config ARM_SCI
> >>   
> >>   menu "Firmware Drivers"
> >>   
> >> +choice
> >> +	prompt "ARM SCI driver type"
> >> +	default SCMI_SMC
> >> +	help
> >> +	Choose which ARM SCI driver to enable.
> >> +
> >> +config ARM_SCI_NONE
> >> +	bool "none"
> >> +
> >>   config SCMI_SMC
> >>   	bool "Forward SCMI over SMC calls from hwdom to EL3 firmware"
> >> -	default y
> >> +	select ARM_SCI
> >>   	help
> >>   	  This option enables basic awareness for SCMI calls using SMC as
> >>   	  doorbell mechanism and Shared Memory for transport ("arm,scmi-smc"
> >> @@ -18,4 +27,6 @@ config SCMI_SMC
> >>   	  firmware node is used to trap and forward corresponding SCMI SMCs
> >>   	  to firmware running at EL3, for calls coming from the hardware domain.
> >>   
> >> +endchoice
> >> +
> >>   endmenu
> >> diff --git a/xen/arch/arm/firmware/scmi-smc.c b/xen/arch/arm/firmware/scmi-smc.c
> >> index 33473c04b1..13d1137592 100644
> >> --- a/xen/arch/arm/firmware/scmi-smc.c
> >> +++ b/xen/arch/arm/firmware/scmi-smc.c
> >> @@ -9,6 +9,7 @@
> >>    * Copyright 2024 NXP
> >>    */
> >>   
> >> +#include <asm/device.h>
> >>   #include <xen/acpi.h>
> >>   #include <xen/device_tree.h>
> >>   #include <xen/errno.h>
> >> @@ -16,12 +17,11 @@
> >>   #include <xen/sched.h>
> >>   #include <xen/types.h>
> >>   
> >> +#include <asm/firmware/sci.h>
> >>   #include <asm/smccc.h>
> >> -#include <asm/firmware/scmi-smc.h>
> >>   
> >>   #define SCMI_SMC_ID_PROP   "arm,smc-id"
> >>   
> >> -static bool __ro_after_init scmi_enabled;
> >>   static uint32_t __ro_after_init scmi_smc_id;
> >>   
> >>   /*
> >> @@ -41,14 +41,11 @@ static bool scmi_is_valid_smc_id(uint32_t fid)
> >>    *
> >>    * Returns true if SMC was handled (regardless of response), false otherwise.
> >>    */
> >> -bool scmi_handle_smc(struct cpu_user_regs *regs)
> >> +static bool scmi_handle_smc(struct cpu_user_regs *regs)
> >>   {
> >>       uint32_t fid = (uint32_t)get_user_reg(regs, 0);
> >>       struct arm_smccc_res res;
> >>   
> >> -    if ( !scmi_enabled )
> >> -        return false;
> >> -
> >>       if ( !scmi_is_valid_smc_id(fid) )
> >>           return false;
> >>   
> >> @@ -78,49 +75,45 @@ bool scmi_handle_smc(struct cpu_user_regs *regs)
> >>       return true;
> >>   }
> >>   
> >> -static int __init scmi_check_smccc_ver(void)
> >> +static int scmi_smc_domain_init(struct domain *d,
> >> +                                struct xen_domctl_createdomain *config)
> >>   {
> >> -    if ( smccc_ver < ARM_SMCCC_VERSION_1_1 )
> >> -    {
> >> -        printk(XENLOG_WARNING
> >> -               "SCMI: No SMCCC 1.1 support, SCMI calls forwarding disabled\n");
> >> -        return -ENOSYS;
> >> -    }
> >> +    if ( !is_hardware_domain(d) )
> >> +        return 0;
> > Should we also check for config->arch.sci_type ==
> > XEN_DOMCTL_CONFIG_ARM_SCI_SCMI_SMC ?
> >
> Current changes assume that only SCMI_SMC is present. This check was 
> added in the subsequent patch when multiagent was introduced.

In theory ARM_SCI_NONE is possible?



From xen-devel-bounces@lists.xenproject.org Wed Aug 27 20:28:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 20:28:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096943.1451466 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urMkR-0004lc-H2; Wed, 27 Aug 2025 20:27:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096943.1451466; Wed, 27 Aug 2025 20:27: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 1urMkR-0004lV-E9; Wed, 27 Aug 2025 20:27:59 +0000
Received: by outflank-mailman (input) for mailman id 1096943;
 Wed, 27 Aug 2025 20:27:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=USey=3H=bounce.vates.tech=bounce-md_30504962.68af6a4a.v1-2a0aed859c5345c9a2e0e2508231852f@srs-se1.protection.inumbo.net>)
 id 1urMkQ-0004lP-DP
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 20:27:58 +0000
Received: from mail137-3.atl71.mandrillapp.com
 (mail137-3.atl71.mandrillapp.com [198.2.137.3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4ffe7c86-8384-11f0-ae26-e363de0e7a9e;
 Wed, 27 Aug 2025 22:27:55 +0200 (CEST)
Received: from pmta07.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail137-3.atl71.mandrillapp.com (Mailchimp) with ESMTP id 4cBx160pB8zBsV7Vb
 for <xen-devel@lists.xenproject.org>; Wed, 27 Aug 2025 20:27:54 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 2a0aed859c5345c9a2e0e2508231852f; Wed, 27 Aug 2025 20:27: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>
X-Inumbo-ID: 4ffe7c86-8384-11f0-ae26-e363de0e7a9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1756326474; x=1756596474;
	bh=uIgoLoFUdjWJAoXVFFkhpR8DJkcqbSwx4+izNdCQyQ8=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=jus6/bAkC3X98debskjGPHro05CG6oHvpekWgWzFEaj4XEMwH6s4xUx/DUdMX+b8+
	 1sJtvSlPd3lXU3883vED0zuLNbr0AsG2Fi7pIRrN4OS4MgyI7lOezkKEvaEZSeQsmb
	 ZQMjcBkO/nvx5z9CfQRXdTmI2bk7k3ps78j8U3sa2mtEW/yWJzrG1FU8RFSN1Y3nB3
	 Ogl5Gv7D0lDwkTIb9AMv7a91eqgLc2b+rtPJC7RAGpzphX+O2pYipYoGQpIWDHbVEo
	 zMLXSl7Wmydc+rlmfd/e4ZvE7FfenrYE6mQRkrahv2/KIKp/JCwowTqsTi5G2/tjiq
	 y+BgH8KPBM1aA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1756326474; x=1756586974; i=teddy.astie@vates.tech;
	bh=uIgoLoFUdjWJAoXVFFkhpR8DJkcqbSwx4+izNdCQyQ8=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=uE/isnkaO78k73bClge+mQuDYF0+KUEjjYDSZBb6fuTw/Mo9tfpJmO/Ovo0nY5Oj/
	 X5Y0a9pzEXxGnoMeX41c1DVaxk8/JP9+xjGa8+v+3TPF4NAx0Y2SnIFyIjKf7N+6jS
	 fROzVOYfKDXTChj57JLwBZR9+hWpqRsYZguYswsX/Cx2HNSZi3LbeHNHKyiN4aoE0H
	 SdritnJFLQir1MJO88KXFYc7ij7FuLp3gMewKHovTZgCY6oO9j0DezgUUeOXFZXdk0
	 XjW0xC/8XApoKk5lGbsV5WvwaNriuWMPhlwpZai3POoqTNS9l1uge714KomRYQDsbY
	 Qlx+gzEjZpQ4A==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH]=20hvmloader:=20Update=20to=20SMBIOS=202.6?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1756326473096
Message-Id: <74665857-3f0b-43e6-b31f-d498d9e7fdc3@vates.tech>
To: "Andrew Cooper" <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: "Jan Beulich" <jbeulich@suse.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>
References: <b569a298a6270ae04eaf433f7de9ce1f3e248e5f.1755870287.git.teddy.astie@vates.tech> <6e9b7b96-a506-40ed-95b6-6ad00ba9a27a@citrix.com>
In-Reply-To: <6e9b7b96-a506-40ed-95b6-6ad00ba9a27a@citrix.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.2a0aed859c5345c9a2e0e2508231852f?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250827:md
Date: Wed, 27 Aug 2025 20:27:54 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 27/08/2025 =C3=A0 19:49, Andrew Cooper a =C3=A9crit=C2=A0:
> On 22/08/2025 2:47 pm, Teddy Astie wrote:
>> Currently, hvmloader uses SMBIOS 2.4, however, when using OVMF, the
>> SMBIOS is patched to 2.8, which has clarified the UUID format (as GUID).
>>
>> In Linux, if the SMBIOS version is >=3D 2.6, the GUID format is used, el=
se
>> (undefined as per SMBIOS spec), big endian is used (used by Xen). Theref=
ore,
>> you have a endian mismatch causing the UUIDs to mismatch in the guest.
>>
>> $ cat /sys/hypervisor/uuid
>> e865e63f-3d30-4f0b-83e0-8fdfc1e30eb7
>> $ cat /sys/devices/virtual/dmi/id/product_uuid
>> 3fe665e8-303d-0b4f-83e0-8fdfc1e30eb7
>> $ cat /sys/devices/virtual/dmi/id/product_serial
>> e865e63f-3d30-4f0b-83e0-8fdfc1e30eb7
>>
>> This patch updates the SMBIOS version from 2.4 to 2.6 and fixup the UUID
>> written in the table; which effectively fix this endianness mismatch wit=
h
>> OVMF; while the UUID displayed by Linux is still the same for SeaBIOS.
>>
>> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
>> ---
>> This effectively changes the UUID seen with UEFI guests as it was
>> actually inconsistent with SeaBIOS and SMBIOS expectations.
>> ---
> 
> I agree this is a real bug and needs fixing.=C2=A0 However, ...
> 
> 
>>   tools/firmware/hvmloader/smbios.c | 20 ++++++++++++++++++--
>>   1 file changed, 18 insertions(+), 2 deletions(-)
>>
>> diff --git a/tools/firmware/hvmloader/smbios.c b/tools/firmware/hvmloade=
r/smbios.c
>> index 6bcdcc233a..f4822ae6f8 100644
>> --- a/tools/firmware/hvmloader/smbios.c
>> +++ b/tools/firmware/hvmloader/smbios.c
>> @@ -352,7 +352,7 @@ smbios_entry_point_init(void *start,
>>       memcpy(ep->anchor_string, "_SM_", 4);
>>       ep->length =3D 0x1f;
>>       ep->smbios_major_version =3D 2;
>> -    ep->smbios_minor_version =3D 4;
>> +    ep->smbios_minor_version =3D 6;
>>       ep->max_structure_size =3D max_structure_size;
>>       ep->entry_point_revision =3D 0;
>>       memcpy(ep->intermediate_anchor_string, "_DMI_", 5);
>> @@ -462,7 +462,23 @@ smbios_type_1_init(void *start, const char *xen_ver=
sion,
>>       p->version_str =3D 3;
>>       p->serial_number_str =3D 4;
>>   
>> -    memcpy(p->uuid, uuid, 16);
>> +    /*
>> +     * Xen uses OSF DCE UUIDs which is fully big endian, however,
>> +     * GUIDs (which requirement is clarified by SMBIOS >=3D 2.6) has th=
e
>> +     * first 3 components appearing as being little endian and the rest
>> +     * as still being big endian.
> 
> ... this is not an accurate statement.
> 
> Xen specifically tries to treat a xen_domain_handle_t as an opaque blob.
> 
> The only two areas I can see ascribing any structure are the 'q'
> debugkey (not exactly a strong ABI statement), and the arinc635
> scheduler whose use is buggy (uuids are not unique in Xen; it's the
> domid which is).
> 
> It is an error that a format isn't stated, but the format comes from the
> toolstack.=C2=A0 We'd better hope that all toolstacks use OSF DCE UUIDs, =
or
> this is going to badly wrong.
> 

I agree in principle. maybe OSF DCE UUID is not the proper definition 
(even though it implies the same) but I should rather use RFC 9562 UUIDs 
but refering to the string representation rather than the UUID meaning 
itself.

The RFC 9562 defines the UUID as being sequenced as big endian and 
string represented as > UUID     =3D 4hexOctet "-"
>            2hexOctet "-"
>            2hexOctet "-"
>            2hexOctet "-"
>            6hexOctet
> hexOctet =3D HEXDIG HEXDIG
> DIGIT    =3D %x30-39
> HEXDIG   =3D DIGIT / "A" / "B" / "C" / "D" / "E" / "F"

This matches the UUID encoding provided by XEN_DEFINE_UUID and is used 
by libxl, libvirt and XAPI and considered by Linux when reading the 
UUID. However, it may always not be a "valid" UUID strictly speaking but 
it doesn't really matter since we only care about its binary/string 
representation.

> And on that note, the toolstacks are not the same.=C2=A0 Xapi for example
> uses reads 16 bytes out of /dev/urandom.
> 
> Whatever we end up doing, the fix must include a change to
> xen/include/public/version.h stating the format of the UUID.
> 
Something like

diff --git a/xen/include/public/xen.h b/xen/include/public/xen.h
index 04fc891353..3241e8dd2b 100644
--- a/xen/include/public/xen.h
+++ b/xen/include/public/xen.h
@@ -975,6 +975,10 @@ typedef struct dom0_vga_console_info {
  #define xen_vga_console_info dom0_vga_console_info
  #define xen_vga_console_info_t dom0_vga_console_info_t

+/*
+ * The guest handled provided by toolstack encoded as a UUID in
+ * big-endian order. Its string representation follows RFC 9562.
+ */
  typedef uint8_t xen_domain_handle_t[16];

  __DEFINE_XEN_GUEST_HANDLE(uint8,  uint8_t);

?

So that we're converting between big-endian encoded UUID (RFC 9562) and 
Microsoft GUID (which doesn't care about its content but only about its 
endianness regarding formatting).

> ~Andrew
> 

Teddy


Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Wed Aug 27 21:23:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 21:23:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096965.1451484 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urNc4-0003mH-Qc; Wed, 27 Aug 2025 21:23:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096965.1451484; Wed, 27 Aug 2025 21:23:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urNc4-0003lw-Ji; Wed, 27 Aug 2025 21:23:24 +0000
Received: by outflank-mailman (input) for mailman id 1096965;
 Wed, 27 Aug 2025 21:23:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=4G5n=3H=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1urNc3-0003ij-4d
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 21:23:23 +0000
Received: from mail-lj1-x235.google.com (mail-lj1-x235.google.com
 [2a00:1450:4864:20::235])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0f3d0366-838c-11f0-aeb2-fb57b961d000;
 Wed, 27 Aug 2025 23:23:22 +0200 (CEST)
Received: by mail-lj1-x235.google.com with SMTP id
 38308e7fff4ca-333f9160c21so2627631fa.2
 for <xen-devel@lists.xenproject.org>; Wed, 27 Aug 2025 14:23:22 -0700 (PDT)
Received: from yp-VivoBook-ASUSLaptop-M1503QA-M1503QA.. ([95.67.15.120])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-3365e2687acsm29844061fa.32.2025.08.27.14.23.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 27 Aug 2025 14:23: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>
X-Inumbo-ID: 0f3d0366-838c-11f0-aeb2-fb57b961d000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756329801; x=1756934601; 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=0HWTZqa8Ch1iyLOD4xVTbJ8+odwTHS1AHeFEtVf7LN8=;
        b=j2q6cxEy/k1SYW3GYCxyIiY5WTFKGkXLSLCkWSAo+XeI8FS8Fcp7tyiTik1AD7FbCP
         g3O2BkJAnf490RUqjypjo2rUBh8WPvZGuuETMjqjJcdMEcEn6Nhm39/zyS8W04apJCcL
         LkqxTgUEHiKZbBFmCMWtTxr6p90Jlj406UTDKPm5wh1Q8YzXrCgDxAT4z/fkxMmlo2BI
         kk36UlNUmZ3O3m9INuoLX5Z1CjeI40y2prcyz7nrLqmxneecrVlWPR82DhvFPWScuBhh
         HiKnfPQIXWOK1zuqm8wKY4fndjeUvMXPJDMSqjpkzd7dnIz4EYgNhfBLtLLEDZDPSGZ3
         +h5A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756329801; x=1756934601;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=0HWTZqa8Ch1iyLOD4xVTbJ8+odwTHS1AHeFEtVf7LN8=;
        b=qLt+/nV6UHBar9Zk+t3G20OdbosRvtpWNl1fUfHI5FAFP6vjuR1pUkLsSKzSKpMLXN
         D2JwyUY9fdGKF3r51gsXuHNdovSiKZphtNB92kkQMfJYVYnr+K3d0pAPyXRNRTgoVfxW
         +PM6MVR3PGIV97a0IaYpp4HdGx7JDj1cexX1CxKsSyWvFExRR9enTb7HvH1PMOPmR7GQ
         U99nTlB5u8x7D6VoGLX4b9H7huB0WvknOir2uLPy3ISgeExXsoqOOHGxK2yNJLIgFvH8
         Mr1mT6RMfEI7tfmUQhdiZgk8jQALDoYJqHhFj7BdbeA11yablGfTw+ossCiSoDb9RwIT
         ojTA==
X-Gm-Message-State: AOJu0YzER6KE3PIN9elqKwJ1zVyRXGU/z80lBZ2qeu5aBSp49othAOb+
	f+rPv6bnKMzdZRHO4jSd1WIzFjvo5lpkklAdI+ZSRzHaowTfLpFikgR+V3AVfQ==
X-Gm-Gg: ASbGncv44qn/vGrg9iYNOO4cB1/NUq9dlY9701iy9XXtUhqCr6LMtmfN1etKwQ77l1h
	x2cl6c6kN3yD81FwWaNOtpY/R6jGXetqa3u14wxCZ/doH+T7Yh5SJSReFqlW3AVGzwqh/6RXSBS
	sQiVEq6rIxvQnN4aR+D/x3j1v3tIUQcn/ZP+8U7Hzz79RHE9jYs9XBJXXpmyeQVqFQZ341LQYv1
	xLe3Dvzjf2G53so7nhHLnG5nveW+prhoM21tP0P6JCbK0aJR6Ac4o1J/OvuLNz4ykwiUknv/M/Y
	6jaXmzw5k9meOnKNy1XkS+8sgGGalIE1aGLFmh2ZG540pYJzMKnpPhlOH94hJ85kCrowv3ShACR
	cte/egScDEijgEfZsjgSllMn7VxxTy34NgIxwrCUqnYPsLgTe/iAwDu2zPznj0Q==
X-Google-Smtp-Source: AGHT+IGgM0L5TMgX1BM+J3KT83nfAnzaxXWzNduMzISMYfM4SUEpN74M2UFZ8j5d4/Eysb/1nIvUzw==
X-Received: by 2002:a05:651c:23c8:10b0:335:2563:c0ec with SMTP id 38308e7fff4ca-33651024391mr50921231fa.33.1756329801130;
        Wed, 27 Aug 2025 14:23:21 -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 v10 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for guests
Date: Thu, 28 Aug 2025 00:21:33 +0300
Message-ID: <55ff99acd69f9eaf20f077e6b453b54931b541d4.1756329091.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.1756329091.git.mykola_kvach@epam.com>
References: <cover.1756329091.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

Add support for the PSCI SYSTEM_SUSPEND function in the vPSCI interface,
allowing guests to request suspend via the PSCI v1.0 SYSTEM_SUSPEND call
(both 32-bit and 64-bit variants).

Implementation details:
- Add SYSTEM_SUSPEND function IDs to PSCI definitions
- Trap and handle SYSTEM_SUSPEND in vPSCI
- Allow only non-hardware domains to invoke SYSTEM_SUSPEND; return
  PSCI_NOT_SUPPORTED for the hardware domain to avoid halting the system
  in hwdom_shutdown() via domain_shutdown
- Require all secondary VCPUs of the calling domain to be offline before
  suspend, as mandated by the PSCI specification

Additionally, GIC context must be saved when a domain suspends.
LRs are not architecturally preserved across suspend/resume or context
switches, so Xen must explicitly save and restore them. This requirement
is specified in the PSCI specification (DEN0022F.b, section 6.8 "Preserving
the execution context"). The fix is implemented by moving the respective
code in ctxt_switch_from() before the return path taken when the domain
suspends.

Introduce domain_resume_nopause/_helper() to allow resuming a domain from
SYSTEM_SUSPEND without pausing it first. This avoids problematic
domain_pause() calls when resuming from suspend on Arm, particularly in error
paths. The helper is Arm-specific; other architectures continue to use the
original domain_resume().

Usage:

For Linux-based guests, suspend can be initiated with:
    echo mem > /sys/power/state
or via:
    systemctl suspend

Resuming the guest is performed from control domain using:
      xl resume <domain>

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in V10:
- small changes to the commit message reflect updates introduced in this
  version of the patch.
- Comments are improved, clarified, and expanded, especially regarding PSCI
  requirements and context handling.
- An ARM-specific helper (domain_resume_nopause_helper)
- gprintk() and PRIregister are used for logging in vPSCI code.
- An isb() is added before p2m_save_state
- The is_64bit_domain check is dropped when masking the upper part of entry
  point and cid for SMC32 SYSTEM_SUSPEND PSCI calls

Changes in V9:
- no functional changes
- cosmetic chnages after review
- enhance commit message and add extra comment to the code after review

Changes in V8:
- GIC and virtual timer context must be saved when the domain suspends
- rework locking
- minor changes after code review

Changes in V7:
- add proper locking
- minor changes after code review

Changes in V6:
- skip execution of ctxt_switch_from for vcpu that is in paused domain
- add implementation of domain_resume without domain_pause
- add helper function to determine if vcpu is suspended or not
- ignore upper 32 bits of argument values when the domain is 64-bit
  and calls the SMC32 SYSTEM_SUSPEND function
- cosmetic changes after review

Changes in V5:
- don't use standby mode, restore execution in a provided by guest point
- move checking that all CPUs, except current one, are offline to after
  pausing the vCPUs
- provide ret status from arch_domain_shutdown and handle it in
  domain_shutdown
- adjust VPSCI_NR_FUNCS to reflect the number of newly added PSCI functions

Changes in V4:
Dropped all changes related to watchdog, domain is marked as shutting
down in domain_shutdown and watchdog timeout handler won't trigger
because of it.

Previous versions included code to manage Xen watchdog timers during suspend,
but this was removed. When a guest OS starts the Xen watchdog (either via the
kernel driver or xenwatchdogd), it is responsible for managing that state
across suspend/resume. On Linux, the Xen kernel driver properly stops the
watchdog during suspend. However, when xenwatchdogd is used instead, suspend
handling is incomplete, potentially leading to watchdog-triggered resets on
resume. Xen leaves watchdog handling to the guest OS and its services.

Dropped all changes related to VCPU context, because instead domain_shutdown
is used, so we don't need any extra changes for suspending domain.

Changes in V3:
Dropped all domain flags and related code (which touched common functions like
vcpu_unblock), keeping only the necessary changes for Xen suspend/resume, i.e.
suspend/resume is now fully supported only for the hardware domain.
Proper support for domU suspend/resume will be added in a future patch.
This patch does not yet include VCPU context reset or domain context
restoration in VCPU.
---
 xen/arch/arm/domain.c                 |  21 +++++-
 xen/arch/arm/include/asm/domain.h     |   2 +
 xen/arch/arm/include/asm/perfc_defn.h |   1 +
 xen/arch/arm/include/asm/psci.h       |   2 +
 xen/arch/arm/include/asm/vpsci.h      |   2 +-
 xen/arch/arm/vpsci.c                  | 100 ++++++++++++++++++++++----
 xen/common/domain.c                   |  35 +++++++--
 xen/include/xen/sched.h               |   3 +
 8 files changed, 141 insertions(+), 25 deletions(-)

diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index 863ae18157..401106fd67 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -90,6 +90,24 @@ static void ctxt_switch_from(struct vcpu *p)
     if ( is_idle_vcpu(p) )
         return;
 
+    /*
+     * Even if the guest saves and restores its own context, Xen must save
+     * the transient state (such as List Registers) that is not preserved
+     * by hardware across suspend. See PSCI DEN0022F.b, section 6.8
+     * "Preserving the execution context".
+     */
+    gic_save_state(p);
+
+    /*
+     * Skip saving the rest of the context if the VCPU is suspended,
+     * to avoid modifying SCTLR_EL1. This is required by the PSCI
+     * specification, which manages SCTLR_EL1 during SYSTEM_SUSPEND flow.
+     */
+    if ( test_bit(_VPF_suspended, &p->pause_flags) )
+        return;
+
+    isb();
+
     p2m_save_state(p);
 
     /* CP 15 */
@@ -158,9 +176,6 @@ static void ctxt_switch_from(struct vcpu *p)
 
     /* XXX MPU */
 
-    /* VGIC */
-    gic_save_state(p);
-
     isb();
 }
 
diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/domain.h
index a3487ca713..f9577bc9ae 100644
--- a/xen/arch/arm/include/asm/domain.h
+++ b/xen/arch/arm/include/asm/domain.h
@@ -312,6 +312,8 @@ static inline void update_guest_memory_policy(struct vcpu *v,
                                               struct guest_memory_policy *gmp)
 {}
 
+void domain_resume_nopause_helper(struct domain *d);
+
 #endif /* __ASM_DOMAIN_H__ */
 
 /*
diff --git a/xen/arch/arm/include/asm/perfc_defn.h b/xen/arch/arm/include/asm/perfc_defn.h
index effd25b69e..8dfcac7e3b 100644
--- a/xen/arch/arm/include/asm/perfc_defn.h
+++ b/xen/arch/arm/include/asm/perfc_defn.h
@@ -33,6 +33,7 @@ PERFCOUNTER(vpsci_system_reset,        "vpsci: system_reset")
 PERFCOUNTER(vpsci_cpu_suspend,         "vpsci: cpu_suspend")
 PERFCOUNTER(vpsci_cpu_affinity_info,   "vpsci: cpu_affinity_info")
 PERFCOUNTER(vpsci_features,            "vpsci: features")
+PERFCOUNTER(vpsci_system_suspend,      "vpsci: system_suspend")
 
 PERFCOUNTER(vcpu_kick,                 "vcpu: notify other vcpu")
 
diff --git a/xen/arch/arm/include/asm/psci.h b/xen/arch/arm/include/asm/psci.h
index 4780972621..48a93e6b79 100644
--- a/xen/arch/arm/include/asm/psci.h
+++ b/xen/arch/arm/include/asm/psci.h
@@ -47,10 +47,12 @@ void call_psci_system_reset(void);
 #define PSCI_0_2_FN32_SYSTEM_OFF          PSCI_0_2_FN32(8)
 #define PSCI_0_2_FN32_SYSTEM_RESET        PSCI_0_2_FN32(9)
 #define PSCI_1_0_FN32_PSCI_FEATURES       PSCI_0_2_FN32(10)
+#define PSCI_1_0_FN32_SYSTEM_SUSPEND      PSCI_0_2_FN32(14)
 
 #define PSCI_0_2_FN64_CPU_SUSPEND         PSCI_0_2_FN64(1)
 #define PSCI_0_2_FN64_CPU_ON              PSCI_0_2_FN64(3)
 #define PSCI_0_2_FN64_AFFINITY_INFO       PSCI_0_2_FN64(4)
+#define PSCI_1_0_FN64_SYSTEM_SUSPEND      PSCI_0_2_FN64(14)
 
 /* PSCI v0.2 affinity level state returned by AFFINITY_INFO */
 #define PSCI_0_2_AFFINITY_LEVEL_ON      0
diff --git a/xen/arch/arm/include/asm/vpsci.h b/xen/arch/arm/include/asm/vpsci.h
index 0cca5e6830..69d40f9d7f 100644
--- a/xen/arch/arm/include/asm/vpsci.h
+++ b/xen/arch/arm/include/asm/vpsci.h
@@ -23,7 +23,7 @@
 #include <asm/psci.h>
 
 /* Number of function implemented by virtual PSCI (only 0.2 or later) */
-#define VPSCI_NR_FUNCS  12
+#define VPSCI_NR_FUNCS  14
 
 /* Functions handle PSCI calls from the guests */
 bool do_vpsci_0_1_call(struct cpu_user_regs *regs, uint32_t fid);
diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
index 7ba9ccd94b..3371f33b81 100644
--- a/xen/arch/arm/vpsci.c
+++ b/xen/arch/arm/vpsci.c
@@ -10,28 +10,18 @@
 
 #include <public/sched.h>
 
-static int do_common_cpu_on(register_t target_cpu, register_t entry_point,
-                            register_t context_id)
+static int do_setup_vcpu_ctx(struct vcpu *v, register_t entry_point,
+                      register_t context_id)
 {
-    struct vcpu *v;
     struct domain *d = current->domain;
     struct vcpu_guest_context *ctxt;
     int rc;
     bool is_thumb = entry_point & 1;
-    register_t vcpuid;
-
-    vcpuid = vaffinity_to_vcpuid(target_cpu);
-
-    if ( (v = domain_vcpu(d, vcpuid)) == NULL )
-        return PSCI_INVALID_PARAMETERS;
 
     /* THUMB set is not allowed with 64-bit domain */
     if ( is_64bit_domain(d) && is_thumb )
         return PSCI_INVALID_ADDRESS;
 
-    if ( !test_bit(_VPF_down, &v->pause_flags) )
-        return PSCI_ALREADY_ON;
-
     if ( (ctxt = alloc_vcpu_guest_context()) == NULL )
         return PSCI_DENIED;
 
@@ -78,11 +68,32 @@ static int do_common_cpu_on(register_t target_cpu, register_t entry_point,
     if ( rc < 0 )
         return PSCI_DENIED;
 
-    vcpu_wake(v);
-
     return PSCI_SUCCESS;
 }
 
+static int do_common_cpu_on(register_t target_cpu, register_t entry_point,
+                            register_t context_id)
+{
+    int rc;
+    struct vcpu *v;
+    struct domain *d = current->domain;
+    register_t vcpuid;
+
+    vcpuid = vaffinity_to_vcpuid(target_cpu);
+
+    if ( (v = domain_vcpu(d, vcpuid)) == NULL )
+        return PSCI_INVALID_PARAMETERS;
+
+    if ( !test_bit(_VPF_down, &v->pause_flags) )
+        return PSCI_ALREADY_ON;
+
+    rc = do_setup_vcpu_ctx(v, entry_point, context_id);
+    if ( rc == PSCI_SUCCESS )
+        vcpu_wake(v);
+
+    return rc;
+}
+
 static int32_t do_psci_cpu_on(uint32_t vcpuid, register_t entry_point)
 {
     int32_t ret;
@@ -197,6 +208,48 @@ static void do_psci_0_2_system_reset(void)
     domain_shutdown(d,SHUTDOWN_reboot);
 }
 
+static int32_t do_psci_1_0_system_suspend(register_t epoint, register_t cid)
+{
+    int32_t rc;
+    struct vcpu *v;
+    struct domain *d = current->domain;
+
+    /* 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 )
+    {
+        if ( v != current && is_vcpu_online(v) )
+        {
+            domain_unlock(d);
+            return PSCI_DENIED;
+        }
+    }
+    domain_unlock(d);
+
+    rc = domain_shutdown(d, SHUTDOWN_suspend);
+    if ( rc )
+        return PSCI_DENIED;
+
+    rc = do_setup_vcpu_ctx(current, epoint, cid);
+    if ( rc != PSCI_SUCCESS )
+    {
+        domain_resume_nopause_helper(d);
+        return rc;
+    }
+
+    set_bit(_VPF_suspended, &current->pause_flags);
+
+    gprintk(XENLOG_DEBUG,
+            "SYSTEM_SUSPEND requested, epoint=0x%"PRIregister", cid=0x%"PRIregister,
+            epoint, cid);
+
+    return rc;
+}
+
 static int32_t do_psci_1_0_features(uint32_t psci_func_id)
 {
     /* /!\ Ordered by function ID and not name */
@@ -214,6 +267,8 @@ static int32_t do_psci_1_0_features(uint32_t psci_func_id)
     case PSCI_0_2_FN32_SYSTEM_OFF:
     case PSCI_0_2_FN32_SYSTEM_RESET:
     case PSCI_1_0_FN32_PSCI_FEATURES:
+    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
+    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
     case ARM_SMCCC_VERSION_FID:
         return 0;
     default:
@@ -344,6 +399,23 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid)
         return true;
     }
 
+    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
+    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
+    {
+        register_t epoint = PSCI_ARG(regs, 1);
+        register_t cid = PSCI_ARG(regs, 2);
+
+        if ( fid == PSCI_1_0_FN32_SYSTEM_SUSPEND )
+        {
+            epoint &= GENMASK(31, 0);
+            cid &= GENMASK(31, 0);
+        }
+
+        perfc_incr(vpsci_system_suspend);
+        PSCI_SET_RESULT(regs, do_psci_1_0_system_suspend(epoint, cid));
+        return true;
+    }
+
     default:
         return false;
     }
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 104e917f07..e2371549a0 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -1349,16 +1349,10 @@ int domain_shutdown(struct domain *d, u8 reason)
     return 0;
 }
 
-void domain_resume(struct domain *d)
+static void domain_resume_nopause(struct domain *d)
 {
     struct vcpu *v;
 
-    /*
-     * Some code paths assume that shutdown status does not get reset under
-     * their feet (e.g., some assertions make this assumption).
-     */
-    domain_pause(d);
-
     spin_lock(&d->shutdown_lock);
 
     d->is_shutting_down = d->is_shut_down = 0;
@@ -1366,13 +1360,40 @@ void domain_resume(struct domain *d)
 
     for_each_vcpu ( d, v )
     {
+        /*
+         * No need to conditionally clear _VPF_suspended here:
+         * - This bit is only set on Arm, and only after a successful suspend.
+         * - domain_resume_nopause() may also be called from paths other than
+         *   the suspend/resume flow, such as "soft-reset" actions (e.g.,
+         *   on_poweroff), as part of the Xenstore control/shutdown protocol.
+         *   These require guest acknowledgement to complete the operation.
+         * So clearing the bit unconditionally is safe.
+         */
+        clear_bit(_VPF_suspended, &v->pause_flags);
+
         if ( v->paused_for_shutdown )
             vcpu_unpause(v);
         v->paused_for_shutdown = 0;
     }
 
     spin_unlock(&d->shutdown_lock);
+}
 
+#ifdef CONFIG_ARM
+void domain_resume_nopause_helper(struct domain *d)
+{
+    domain_resume_nopause(d);
+}
+#endif
+
+void domain_resume(struct domain *d)
+{
+    /*
+     * Some code paths assume that shutdown status does not get reset under
+     * their feet (e.g., some assertions make this assumption).
+     */
+    domain_pause(d);
+    domain_resume_nopause(d);
     domain_unpause(d);
 }
 
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 02bdc256ce..12429d16b9 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -1014,6 +1014,9 @@ static inline struct domain *next_domain_in_cpupool(
 /* VCPU is parked. */
 #define _VPF_parked          8
 #define VPF_parked           (1UL<<_VPF_parked)
+/* VCPU is suspended. */
+#define _VPF_suspended       9
+#define VPF_suspended        (1UL << _VPF_suspended)
 
 static inline bool vcpu_runnable(const struct vcpu *v)
 {
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Wed Aug 27 21:23:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 21:23:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096966.1451489 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urNc5-0003q9-3S; Wed, 27 Aug 2025 21:23:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096966.1451489; Wed, 27 Aug 2025 21:23: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 1urNc4-0003o3-RA; Wed, 27 Aug 2025 21:23:24 +0000
Received: by outflank-mailman (input) for mailman id 1096966;
 Wed, 27 Aug 2025 21:23:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=4G5n=3H=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1urNc4-0003ij-2w
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 21:23:24 +0000
Received: from mail-lj1-x236.google.com (mail-lj1-x236.google.com
 [2a00:1450:4864:20::236])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0fcbe830-838c-11f0-aeb2-fb57b961d000;
 Wed, 27 Aug 2025 23:23:23 +0200 (CEST)
Received: by mail-lj1-x236.google.com with SMTP id
 38308e7fff4ca-333f8d1cbcdso2561161fa.0
 for <xen-devel@lists.xenproject.org>; Wed, 27 Aug 2025 14:23:23 -0700 (PDT)
Received: from yp-VivoBook-ASUSLaptop-M1503QA-M1503QA.. ([95.67.15.120])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-3365e2687acsm29844061fa.32.2025.08.27.14.23.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 27 Aug 2025 14:23:21 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0fcbe830-838c-11f0-aeb2-fb57b961d000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756329802; x=1756934602; 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=iKQtb2yDXXgVIM20M/9ZKDqMqVSaENj70H3OApwPWOA=;
        b=YQBmqZlvdNOlbS2xu5IXSjrxFAnA/+W/VAoYp3M7/1q7exH5ItRQlFLcFgkduZEmFN
         Q3CkMG9FmoMBVAa0UJW4dwfOlVmWRunr3sDKXqSCvwgbVGgNIoGTlAsdugSr+YYTPZFn
         l4Kv0fDGOnBz5Uj/I/52bWJoc3TpW0kS0Jf7fNkibO0Adtwzf62xPshICRXERXJCAoUC
         Y15H11D283Vxag6wV+XUm/aLHXpwspskf5fgcqvu4++jekiilsXNFmkPHBR0Sxk64jna
         2SyDxOFhcXobbRVLYF3WWsqeV56WRKs0ZsAkBrFB6mKwXDgBjx4b3eg7loIGBlM/T3tx
         srww==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756329802; x=1756934602;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=iKQtb2yDXXgVIM20M/9ZKDqMqVSaENj70H3OApwPWOA=;
        b=cvqbnxf6yAEOGJsgvKvzewvsRqXPWHcneIPczsXNbS19qYL75lmj4XTXvkX9aLROVE
         8TarEE4z4UzxFk+gSxnIAXL5LQuaeuSzt3mnh0LbE5ZeKCS/KjmlKhxJpmLCoSuF3xJe
         xmvTAiwTugzuGfErFIYIHPyjy+0Let3VW5a3xfGxQdR59n1Kf8KWSUYrYeIkBp5PIPsT
         zvRnDkvf/n3w6AzWU8m8RHn6YBwVRR0S/9IRbNZeZBMlL//ik1ekLalEDUZLnYScL0kw
         qg79BJb/SHz+yXuzYxrn0PG+CiuRhtHt99zsQV5zYXNI3aht90eXhT9zczWQ0N6hPfyD
         2HYA==
X-Gm-Message-State: AOJu0Yymy1O+/2/AH5DxHGcDctuzFqNXIJCWMD9Bv9DDqLF3Yh0Z6lIZ
	3W/54ks291I0rIwLj0h+7F7NKSXkqXaeJ4Wf4jZp9xnTjOvu3GRv+1ubThsdMA==
X-Gm-Gg: ASbGnctV+aYlyOzagSU5ipICu92aQPxebawUhofnOdzU8+2kvmyEApmuo6ktTVGJ8Lh
	n8GbnbS/AQ3svpriCWw4t4h5c58eFFqIxWzQXkBNs0LBKefe9KXUP6baZ7K1VxXsC1CgoxX+Jo8
	wt8fj24PlLRNzcz3HHX1o9xeSawDN/YhUV7o6USEGE+tq0takZnRbwJmPl9dNkIMdOmAV8vm0vz
	tzaHxa53GHLtNInjcrcOPKkYsgkOKlbMKhyt/sI7Y5+xnha3pKh6aIRV/KUBHX37cWAPjWAe/u1
	AqPkANCZiFT0d1r6S/b1bKuETKZ4BBGGOufzg52MZi8nbdXccCedSV3L97joAKAHkfICTuC8occ
	FkYR/40ljjTV6u0Ai6H5Nzq6zW5z4eWJklBCiydTV9dEO3COVDI7XVpqz4Z4o79SEZ7Dob8JiQ/
	bPLXYDc68=
X-Google-Smtp-Source: AGHT+IFKD4im2fCSMD6wlT7xxn4p7lUBqI5bQeETy+XGT2HEISXdKhzwjzEGrxwYm1y8W7DGuHZgug==
X-Received: by 2002:a2e:b8d5:0:b0:336:7df1:7616 with SMTP id 38308e7fff4ca-3367df1a4camr27986921fa.44.1756329802044;
        Wed, 27 Aug 2025 14:23:22 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH v10 2/4] tools/xl: Allow compilation of 'xl resume' command on Arm
Date: Thu, 28 Aug 2025 00:21:34 +0300
Message-ID: <d6bfbd7c1e04851e2017783ccd2cacdbe39afa18.1756329091.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.1756329091.git.mykola_kvach@epam.com>
References: <cover.1756329091.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

The "xl resume" command was previously excluded from Arm builds because
system suspend/resume (e.g., SYSTEM_SUSPEND via vPSCI) was not
implemented. On x86, this command is used for resume.

This change enables compilation of `xl resume` on Arm regardless of the
underlying implementation status, making the tool available for testing
and future feature support. The relevant libxl infrastructure and handler
functions are already present and usable.

Note: This does not imply full system suspend/resume support on Arm.
      The `xl suspend` command still does not work on Arm platforms.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
Acked-by: Anthony PERARD <anthony.perard@vates.tech>
---
Changes in v7:
- dropped renaming of LIBXL_HAVE_NO_SUSPEND_RESUME macro

Changes in v6:
- Renamed macro from LIBXL_HAVE_NO_SUSPEND_RESUME to LIBXL_HAVE_NO_SUSPEND
  to better reflect the scope of this change
- Applied cosmetic changes based on review feedback
---
 tools/include/libxl.h     |  1 -
 tools/xl/xl.h             |  4 ++--
 tools/xl/xl_cmdtable.c    |  4 ++--
 tools/xl/xl_migrate.c     |  2 +-
 tools/xl/xl_saverestore.c |  2 +-
 tools/xl/xl_vmcontrol.c   | 12 ++++++------
 6 files changed, 12 insertions(+), 13 deletions(-)

diff --git a/tools/include/libxl.h b/tools/include/libxl.h
index 185f74d8a8..b204fc5e2e 100644
--- a/tools/include/libxl.h
+++ b/tools/include/libxl.h
@@ -1140,7 +1140,6 @@ typedef struct libxl__ctx libxl_ctx;
  * restoring or migrating a domain. In this case the related functions
  * should be expected to return failure. That is:
  *  - libxl_domain_suspend
- *  - libxl_domain_resume
  *  - libxl_domain_remus_start
  */
 #if defined(__arm__) || defined(__aarch64__)
diff --git a/tools/xl/xl.h b/tools/xl/xl.h
index 45745f0dbb..9233b73f85 100644
--- a/tools/xl/xl.h
+++ b/tools/xl/xl.h
@@ -65,7 +65,7 @@ static const char migrate_permission_to_go[]=
     "domain is yours, you are cleared to unpause";
 static const char migrate_report[]=
     "my copy unpause results are as follows";
-#endif
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
 
   /* followed by one byte:
    *     0: everything went well, domain is running
@@ -130,8 +130,8 @@ int main_migrate_receive(int argc, char **argv);
 int main_save(int argc, char **argv);
 int main_migrate(int argc, char **argv);
 int main_suspend(int argc, char **argv);
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
 int main_resume(int argc, char **argv);
-#endif
 int main_dump_core(int argc, char **argv);
 int main_pause(int argc, char **argv);
 int main_unpause(int argc, char **argv);
diff --git a/tools/xl/xl_cmdtable.c b/tools/xl/xl_cmdtable.c
index 06a0039718..bcb2d233cc 100644
--- a/tools/xl/xl_cmdtable.c
+++ b/tools/xl/xl_cmdtable.c
@@ -198,12 +198,12 @@ const struct cmd_spec cmd_table[] = {
       "Suspend a domain to RAM",
       "<Domain>",
     },
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
     { "resume",
       &main_resume, 0, 1,
       "Resume a domain from RAM",
       "<Domain>",
     },
-#endif
     { "dump-core",
       &main_dump_core, 0, 1,
       "Core dump a domain",
@@ -548,7 +548,7 @@ const struct cmd_spec cmd_table[] = {
       "                        checkpoint must be disabled.\n"
       "-p                      Use COLO userspace proxy."
     },
-#endif
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
     { "devd",
       &main_devd, 0, 1,
       "Daemon that listens for devices and launches backends",
diff --git a/tools/xl/xl_migrate.c b/tools/xl/xl_migrate.c
index b8594f44a5..4b4a379aa1 100644
--- a/tools/xl/xl_migrate.c
+++ b/tools/xl/xl_migrate.c
@@ -767,7 +767,7 @@ int main_remus(int argc, char **argv)
     close(send_fd);
     return EXIT_FAILURE;
 }
-#endif
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
 
 
 /*
diff --git a/tools/xl/xl_saverestore.c b/tools/xl/xl_saverestore.c
index 953d791d1a..747094ec7b 100644
--- a/tools/xl/xl_saverestore.c
+++ b/tools/xl/xl_saverestore.c
@@ -270,7 +270,7 @@ int main_save(int argc, char **argv)
     return EXIT_SUCCESS;
 }
 
-#endif /* LIBXL_HAVE_NO_SUSPEND_RESUME */
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
 
 
 
diff --git a/tools/xl/xl_vmcontrol.c b/tools/xl/xl_vmcontrol.c
index c813732838..93766f631b 100644
--- a/tools/xl/xl_vmcontrol.c
+++ b/tools/xl/xl_vmcontrol.c
@@ -38,11 +38,6 @@ static void suspend_domain(uint32_t domid)
     libxl_domain_suspend_only(ctx, domid, NULL);
 }
 
-static void resume_domain(uint32_t domid)
-{
-    libxl_domain_resume(ctx, domid, 1, NULL);
-}
-
 int main_suspend(int argc, char **argv)
 {
     int opt;
@@ -55,6 +50,12 @@ int main_suspend(int argc, char **argv)
 
     return EXIT_SUCCESS;
 }
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
+
+static void resume_domain(uint32_t domid)
+{
+    libxl_domain_resume(ctx, domid, 1, NULL);
+}
 
 int main_resume(int argc, char **argv)
 {
@@ -68,7 +69,6 @@ int main_resume(int argc, char **argv)
 
     return EXIT_SUCCESS;
 }
-#endif
 
 static void pause_domain(uint32_t domid)
 {
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Wed Aug 27 21:23:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 21:23:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096968.1451516 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urNc9-0004f4-Kh; Wed, 27 Aug 2025 21:23:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096968.1451516; Wed, 27 Aug 2025 21:23: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 1urNc9-0004et-HF; Wed, 27 Aug 2025 21:23:29 +0000
Received: by outflank-mailman (input) for mailman id 1096968;
 Wed, 27 Aug 2025 21:23:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=4G5n=3H=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1urNc7-0004Ze-F6
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 21:23:27 +0000
Received: from mail-lj1-x22c.google.com (mail-lj1-x22c.google.com
 [2a00:1450:4864:20::22c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1115eb59-838c-11f0-ae26-e363de0e7a9e;
 Wed, 27 Aug 2025 23:23:25 +0200 (CEST)
Received: by mail-lj1-x22c.google.com with SMTP id
 38308e7fff4ca-3367144d35cso2536521fa.0
 for <xen-devel@lists.xenproject.org>; Wed, 27 Aug 2025 14:23:25 -0700 (PDT)
Received: from yp-VivoBook-ASUSLaptop-M1503QA-M1503QA.. ([95.67.15.120])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-3365e2687acsm29844061fa.32.2025.08.27.14.23.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 27 Aug 2025 14: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>
X-Inumbo-ID: 1115eb59-838c-11f0-ae26-e363de0e7a9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756329805; x=1756934605; 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=hngrpYued6VRjNdXSCXsejFnZ9+NvVTFmNBYrfCV2Ms=;
        b=Cv79Ide2cFFt0s+TvdL6Zs/ahlS00JfhTEz4Oo1tvL7kUrjvw37MEyiTHI33dPlaFu
         dE13PWjjAVz9BgcJiHHhifefyhDiSTcT/IwgxLYqsyWEBvznZX56tLzCNCITa/4xDQn6
         q0vyjH+Yk6mek7SydGsYA8BUMSkw5diNt6JH8Rs7/n0eKdSEUZgiO7BC8Xg3Mg0rSAkV
         4zVu99kQTkOLE/9X4Qg4qPA37lJxBj0aPUAFithTErIAjlpUlRZYVpyH1MJ+OjKmeOZL
         oQb1FPDQ/TQH6B+NB8oJ6myaq3Lovj1bApbrfRCYedZQnVo68vgdDGhHg93iTVTyo+85
         y8fw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756329805; x=1756934605;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=hngrpYued6VRjNdXSCXsejFnZ9+NvVTFmNBYrfCV2Ms=;
        b=lk08IbutyMwZJmzVNIZF3X7ahWnxmiySfO6uiWk9ibj3lXT/I8xFF+sWd5lPRC8zZM
         Pevf1XQmn0h7eBoHFwDDxS+KxGn0ftLW9KHdEClioRA/sj58Wsrh934Qvr5rQLGx04zX
         R4VszUasFIhq1T6mPCjEDWbbCUGHxgd18KTynX241PZDg45EhukljlAjh7Ls+BxcfgJ4
         Ck3OFDuLObx+DiXDwlT4D+1jBtFScdqoMpUeEGRmDPGIHGcht13GIW71lSOZ/YdnNs6J
         du+31WipnroquxcD2dxBQ09nUJUBut4GIZGfozB7OpvK3oAYPMwyGScVokeFFwMDuW0T
         85lA==
X-Gm-Message-State: AOJu0YzX20PMCLuZKtwqBmSttBh+cwPVEQCf9ndYCi9kllAIGPA5uj6X
	m10i4uc84rkxV3oiUNvhHcJtDsDBVhzH16MPWDcvNMxChBepBRsxptNsvaukjQ==
X-Gm-Gg: ASbGncvSV05eC0L19lotiepFor2hlAQFGfH7OmvTApBvTkWvoDfMIGaXZ4Y3tKnSMji
	f8ma9rO0rPU21WG8spUNWSom2+xr4ebAb98TvRzxsphKeh8VgrmSyDxAcX74tKkzor3Cf0QekBv
	bdJ2Dl+ImtqKG9QV+UCBXIDXzSRCO1abrOt+aBggFfoiMtBYGoXvc6Sa2Cy45scCSn617Wpxq0w
	URj4R9ZwnpxT6yGrY7jjOPmKVjHPV+tr9Os9h86sXjwd82zxQ2wzJS6yRgrdC6UN5ESGFf8xSBa
	V3m+m31MQhA0D+WeV5byG03lDHqp2keBoHddt+aFYp9fllDZ0rz25PHcRbM+tSBvLF0JZpp6iCq
	LXNCTMUv7CH7eBqpMXJfldn9XqJKcbHb3QK0jvW88ri6vuuIblxMR0P7jIYiGBpfM77BQVX4s
X-Google-Smtp-Source: AGHT+IFZ7/a+Z4Ya5OFseGv4WAsudiBI8JlgzU95o3FyISDikdMjY/sPmohiGyLSeBFqe21NhR0jRA==
X-Received: by 2002:a2e:a54d:0:b0:336:6be3:2d0b with SMTP id 38308e7fff4ca-3366be3391bmr43153191fa.29.1756329804516;
        Wed, 27 Aug 2025 14:23:24 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Community Manager <community.manager@xenproject.org>
Subject: [PATCH v10 4/4] CHANGELOG: Document guest suspend/resume to RAM support on Arm
Date: Thu, 28 Aug 2025 00:21:36 +0300
Message-ID: <c31fe62632805cdd9c7640a496bfb8ca790346a1.1756329091.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.1756329091.git.mykola_kvach@epam.com>
References: <cover.1756329091.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

Mention the newly added support for guest suspend and resume to/from
RAM via vPSCI on Arm platforms.

This support is limited to non-hardware domain guests.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Chnages in v6:
- removed reduntand explanation that thi support added for
  both arm32 and arm64.

Changes in v5:
- adjustments to the commit title and message
- expanded the changelog entry to include more context about
  suspend/resume support introduced in this patch series
---
 CHANGELOG.md | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index cd34ea87b8..7a75bd37cb 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -36,6 +36,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
 
  - On Arm:
     - Ability to enable stack protector
+    - Support for guest suspend and resume to/from RAM via vPSCI.
+      Applies only to non-hardware domain guests.
 
 ### Removed
  - On x86:
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Wed Aug 27 21:23:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 21:23:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096967.1451507 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urNc6-0004O8-CR; Wed, 27 Aug 2025 21:23:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096967.1451507; Wed, 27 Aug 2025 21: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 1urNc6-0004Nz-97; Wed, 27 Aug 2025 21:23:26 +0000
Received: by outflank-mailman (input) for mailman id 1096967;
 Wed, 27 Aug 2025 21:23:25 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=4G5n=3H=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1urNc5-0003ij-3G
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 21:23:25 +0000
Received: from mail-lj1-x22e.google.com (mail-lj1-x22e.google.com
 [2a00:1450:4864:20::22e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 10759a94-838c-11f0-aeb2-fb57b961d000;
 Wed, 27 Aug 2025 23:23:24 +0200 (CEST)
Received: by mail-lj1-x22e.google.com with SMTP id
 38308e7fff4ca-3366f66a04cso2229151fa.1
 for <xen-devel@lists.xenproject.org>; Wed, 27 Aug 2025 14:23:24 -0700 (PDT)
Received: from yp-VivoBook-ASUSLaptop-M1503QA-M1503QA.. ([95.67.15.120])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-3365e2687acsm29844061fa.32.2025.08.27.14.23.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 27 Aug 2025 14:23: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>
X-Inumbo-ID: 10759a94-838c-11f0-aeb2-fb57b961d000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756329803; x=1756934603; 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=Xe9xi3DaBptNnLW1VEAJiUhAp27nm19FtXNKIdaX+1M=;
        b=CkK+ookKHusTaQJT/GyZYa/4b3OiDXf+xjU9847p4+pa6JHPbyYUZ2SFC4xpZvNUNd
         QgCsnrZ63nbgBtq42aAs3FveN+vWiq3OJVjbGncdqzeCJzbvOVDYnHGRHz82xu36MtWY
         WDxTP+JkI9MDi/Q4aYDD2BL2CmtO1X6azARkg0NUaaU1rI4bDA/svBaOjaN1LLdj6PDU
         rTauDmiwOmNzXhC1Y/2Y3Euqqc1VHkuZ+bYof7dB7ITzIT4hviYk8X0JIoU9OfFOJ11b
         4I6MIVjCgrQOsBU+RtoK4LOjPH6lbohPbTbwS61Zvtoq38FQo8CVPqLYQM3x+D7vYvbl
         FZ5g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756329803; x=1756934603;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=Xe9xi3DaBptNnLW1VEAJiUhAp27nm19FtXNKIdaX+1M=;
        b=ZDMpAUDERFjy7+O4wK1xdI7yM829sgYz0uK12bQEuUjO94Xj5fnWXggJTO371pc0+U
         zl+Wev9ZLbMZp1w5CwzfBX82QBgq+741vhZFXqguB7kNmSaYVNy43tow8TfPjZ6sYAv5
         i0LNiZuPnbJtpOfHU8R4VL2swuth6LMptJsSbklrHiugLq0/UV06PzemwuRVixyHYVzc
         y2N4lAeFcQAIszO8+S9B5/bj+abhrXiXhi4lALHn8tKHpjfTAw3fuPQaecavz4um6QE8
         A1qX9IzRn2SqFdnJgeqkqYekxakWrjOVEYrRl9nQg3Ng1GAPWVzZjELj0Wbpiqc4HD3Y
         D+pw==
X-Gm-Message-State: AOJu0YzXquKLmjjg3YueBDZ8s/+qGYJ9iYsAqLDCTWy3T1JKMmIGcQG1
	+V5HPag40RkngBVahTM2bidhdfw0+5tR8TStfBvs7/7jK83Bqd9AoIhbAEXiOQ==
X-Gm-Gg: ASbGncuEKBZGbU4tBntIfUBdYUo6ZLhJpaNwGT0oLDp6GrbER3j7wZWy5ATeFHHhI1k
	H7EzSnqkVck6qR2YGm7WmvawpcpFsD4zwzTVVTb99Zga1AG6LyXf8mbjZ8KBDxbjM0rNvLecfzK
	zhAAjsqE0BJGKxit71GNWIrJbBbF+csOQUE/Pf1wXAm9iawZLAtE0p9/Uf5UTIn1vPQPTUUOr+3
	UW/PP/mbmHYFBJVQdkj2R+OZCcDa0s2TTmJLbX2FkcpUXzyQjTm5U/JSCUUHoMNDdga44R9+fYC
	lff05GI9XFddkbCL0etVEV9SIbEUhC0Z9bpod7839ECgl+yQYiuqTOoSM5ycO5hQJ7v+1G8Z7re
	sgXOR3dnAiFNMJcb5XFSg+BLWmD4Oz2fd+TK4OkEEM4BSX5mNW+EvzC60fIFNcywA9fpBaqKZ
X-Google-Smtp-Source: AGHT+IE2thsK8SJkpSBPfg+A9AQiZi8tBzk4Te3IKcIhzllL4RZ6lXCnGzo81fwP0ZI4FULSTsc/+g==
X-Received: by 2002:a2e:a556:0:b0:336:8b8e:cc54 with SMTP id 38308e7fff4ca-3368b8ee2e8mr15309371fa.8.1756329802974;
        Wed, 27 Aug 2025 14:23:22 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v10 3/4] SUPPORT.md: Document PSCI SYSTEM_SUSPEND support for guests
Date: Thu, 28 Aug 2025 00:21:35 +0300
Message-ID: <ec71b1dbb766f2d0a87e3b9523b6a1cf869820f3.1756329091.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.1756329091.git.mykola_kvach@epam.com>
References: <cover.1756329091.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

Add a new entry under the "Virtual Hardware, QEMU" section documenting
support for the optional PSCI SYSTEM_SUSPEND function exposed to guests.

This function is available via the virtual PSCI (vPSCI) interface and
allows guest domains (domUs) to initiate system suspend operations.

The feature is currently marked as "Tech Preview".

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in V10:
- Status of vPSCI SYSTEM_SUSPEND changed from "Experimental" to
  "Tech Preview"

Changes in v6:
- Dropped the generic guest PSCI support entry (merged in a separate patch)
- This patch now documents only the SYSTEM_SUSPEND optional function
- Reworded commit message to match the final form after rebase

Changes in v5:
- Dropped ARM/PSCI entry: this refers to internal use of PSCI SMC calls,
  which is not relevant for SUPPORT.md
- Added a dedicated entry for PSCI SYSTEM_SUSPEND instead of generic guest
  PSCI info; guest PSCI support was documented in a separate patch
---
 SUPPORT.md | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/SUPPORT.md b/SUPPORT.md
index 6a82a92189..0ce0903cb1 100644
--- a/SUPPORT.md
+++ b/SUPPORT.md
@@ -962,8 +962,9 @@ Emulated PSCI interface exposed to guests. We support all mandatory
 functions of PSCI 1.1. See below for the list of optional PSCI call
 implemented and their status.
 
-   Status, Mandatory: Supported
-   Status, MIGRATE_INFO_TYPE: Supported
+    Status, Mandatory: Supported
+    Status, MIGRATE_INFO_TYPE: Supported
+    Status, SYSTEM_SUSPEND: Tech Preview
 
 ## Virtual Hardware, QEMU
 
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Wed Aug 27 21:23:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 21:23:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1096964.1451478 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urNc4-0003j6-Ge; Wed, 27 Aug 2025 21:23:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1096964.1451478; Wed, 27 Aug 2025 21:23:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urNc4-0003iz-CH; Wed, 27 Aug 2025 21:23:24 +0000
Received: by outflank-mailman (input) for mailman id 1096964;
 Wed, 27 Aug 2025 21:23:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=4G5n=3H=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1urNc2-0003ij-Ge
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 21:23:22 +0000
Received: from mail-lj1-x22e.google.com (mail-lj1-x22e.google.com
 [2a00:1450:4864:20::22e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0e7645b0-838c-11f0-aeb2-fb57b961d000;
 Wed, 27 Aug 2025 23:23:21 +0200 (CEST)
Received: by mail-lj1-x22e.google.com with SMTP id
 38308e7fff4ca-333f901b2d2so2416591fa.2
 for <xen-devel@lists.xenproject.org>; Wed, 27 Aug 2025 14:23:21 -0700 (PDT)
Received: from yp-VivoBook-ASUSLaptop-M1503QA-M1503QA.. ([95.67.15.120])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-3365e2687acsm29844061fa.32.2025.08.27.14.23.18
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 27 Aug 2025 14:23: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>
X-Inumbo-ID: 0e7645b0-838c-11f0-aeb2-fb57b961d000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756329800; x=1756934600; 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=dIHkATse3Q+6+zG1pS+GXwcrJ8GyErfGpMUy7fqjQQc=;
        b=lXQ2RSyj53aJsXDQ84sv4sTSWUsZwDul53Oj+cjaT5spXt5L6pdCs3tCcF9cNWVfwP
         hS/F3Oz+EeHZLb2k/h/2wl8ew567u27lZ4u/EI/O6Uq0tQgkMdpClRW/ePttJjeKWJh3
         dZDA8NXg1Mz0ocP7pQ29xsBXrC4cMQQCDsCNa5smP2tcn6XFGSTioJwa3cv6i5V0b267
         hCUeGC0ny1JiXJxyNRoqL281NsyBtbHtisFVdTVPusyrMYdRgCWM3Uq/A0FC1mf6fIbT
         al5NByCKZbb7zFV9+AZ38GrJCNDLUkS6alNUcbLd8bFoa9c6F9PfNjzSgh74yY5y7ShV
         1/oA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756329800; x=1756934600;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=dIHkATse3Q+6+zG1pS+GXwcrJ8GyErfGpMUy7fqjQQc=;
        b=gf/YyXyOCcvlIC8rPDSJZqolWyHm03da2q+wT2b1z2RxYgj7i30U0xL51+xnUIiSom
         SPGdQW/yaIWFa0AWTI/0BjsGUYfd9VPU9iiVpxQXmh8QX3hrLg7QbiO67rX8L3EoGSKq
         E76mfGOPFnH6avqKa5jE2VV+Dj4T5aQi9gZrzDR5N2+NznZX/fTZTBB8byQ788Zmts4r
         6F8LkjahPvlntEZjeP8X70XWTO/qC6EcyxIrgsbW3OhHP2HsFdEGAJcfvH5KzBA5pVd7
         ZLgBcheZ/RJ1B0VH8H+Ivq/egfWu8o9K+yxGlf9QgPqZZHOO6VdT1x/KJp0Qec2n/AHU
         ypJw==
X-Gm-Message-State: AOJu0YxXVVsGqd9bh06LAkkGg3YA9AgJl7uJx/4eoIW9GvDX09Lg2gB9
	wPAnBtVz30GfNIIazW0XdR8Yog95EyzWj1SVOIxaehqysWlxSLS441LzNhbY+A==
X-Gm-Gg: ASbGnctBPn98xpbtAjunkyYKmD8+GctVaJkhVq4tnx5TGTd7yGrTMWIHYw0ZCp6t3OH
	No4okF/DxR7V0MGVBS+2pA5kv8l/tkDS4fHLZt9auPmJKtEhJEudLjiTEJAb2ae8qb7NKdNyjTw
	aWCgYYG5sk6IScJ4/Ht1zCC03yBpD348wCjEoUJiexhoed1mu2ofRYncc78H0qYt6g5QaJ8bTrb
	v1YexdDr8pny8E5/CfEftHPPTs4P+8xBKJw765xsrLbGyfXSmyL/AdY6cYCj1XXJU60/FrHUZrd
	ZdURjqWu38qAtRj5XzbM9dsmoaNgRCzosGRQHjSC/hFl2CfZJT7aaDcjp12u6paHUpOoqb61rM6
	EFmsHmwYG1HyMu9KqmMHn2wlE0V/cAglYThiZZasp2+suMToxd6xZAZovqHdR48dZrHGsR6tn
X-Google-Smtp-Source: AGHT+IHVfIk+udn2PYwm7UszF7DIDCHr7OtwJP2/CFKW5HVBGcOQq1qbA5Dy9eR3v3gb628CO9Cr9A==
X-Received: by 2002:a2e:a58d:0:b0:335:34e2:cb8c with SMTP id 38308e7fff4ca-33650fa81e0mr67228331fa.29.1756329799775;
        Wed, 27 Aug 2025 14:23:19 -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>,
	Juergen Gross <jgross@suse.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Community Manager <community.manager@xenproject.org>
Subject: [PATCH v10 0/4] Enable guest suspend/resume support on ARM via vPSCI
Date: Thu, 28 Aug 2025 00:21:32 +0300
Message-ID: <cover.1756329091.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.48.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

This patch series introduces the initial support for guest suspend
and resume on ARM platforms using the PSCI SYSTEM_SUSPEND interface. The main
goal is to allow ARM guests to request suspension using PSCI and be resumed
by the control domain (e.g., via "xl resume").

### Background

The PSCI SYSTEM_SUSPEND call is part of the PSCI v1.0+ specification and is
used by guests to enter the deepest possible power state. On Xen/ARM, we
emulate this interface in the virtual PSCI (vPSCI) layer for guests.

This series includes:

1. A new vPSCI implementation of the PSCI SYSTEM_SUSPEND function for guests
2. Documentation updates to SUPPORT.md to reflect PSCI and vPSCI support status
3. Enabling "xl resume" command compilation for ARM, which was previously disabled

### Usage

For Linux-based guests:
  - Suspend can be triggered using: "echo mem > /sys/power/state" or "systemctl suspend"
  - Resume can be performed from control domain using: "xl resume <domain>"

For more information, refer to the official Linux kernel documentation on power management.

Note that currently, SYSTEM_SUSPEND is supported only for guest domains (not for
the hardware domain).
---

This is the first part of previous patch series and originally consist only
with necessary changes needed for guest domain suspend.

The second part can be found here:
    https://patchew.org/Xen/cover.1754943874.git.mykola._5Fkvach@epam.com/

Changes in V10:
- An ARM-specific helper (domain_resume_nopause_helper)
- An isb() is added before p2m_save_state
- The is_64bit_domain check is dropped when masking the upper part of entry
  point and cid for SMC32 SYSTEM_SUSPEND PSCI calls
- Status of vPSCI SYSTEM_SUSPEND changed from "Experimental" to "Tech Preview"

Changes in V9:
- no functional changes
- enhance commit message and add extra comment to the code after review

Changes in V8:
- GIC and virtual timer context saved when the domain suspends
- rework locking
- minor changes after code review

Changes in V7:
- add proper locking
- minor changes after code review

Main changes in V6:
- Skip execution of ctxt_switch_from for VCPUs in paused domains.
- Implement domain_resume_nopause
- Add a helper to determine if a VCPU is in suspended domain.
- Ignore upper 32 bits of arguments for 64-bit domains calling SMC32 SYSTEM_SUSPEND.
- Macro renamed from LIBXL_HAVE_NO_SUSPEND_RESUME to LIBXL_HAVE_NO_SUSPEND for clarity.
- Documentation now focuses only on the SYSTEM_SUSPEND function, with improved wording and structure.
- Changelog and commit messages refined for clarity and to remove redundant explanations.

Main change in V5:
  - Reverted the logic related to suspending domains. Instead of the standby
    mode introduced in v4, domains now resume execution at the point provided
    during suspend

The rest of the minor changes are described in the changelog of each commit.

Previous versions of this patch series:
  V1: https://lists.xenproject.org/archives/html/xen-devel/2018-11/msg01093.html
  V2: https://marc.info/?l=xen-devel&m=166514782207736&w=2
  V3: https://lists.xenproject.org/archives/html/xen-devel/2025-03/msg00168.html

Mykola Kvach (4):
  xen/arm: Implement PSCI SYSTEM_SUSPEND call for guests
  tools/xl: Allow compilation of 'xl resume' command on Arm
  SUPPORT.md: Document PSCI SYSTEM_SUSPEND support for guests
  CHANGELOG: Document guest suspend/resume to RAM support on Arm

 CHANGELOG.md                          |   2 +
 SUPPORT.md                            |   5 +-
 tools/include/libxl.h                 |   1 -
 tools/xl/xl.h                         |   4 +-
 tools/xl/xl_cmdtable.c                |   4 +-
 tools/xl/xl_migrate.c                 |   2 +-
 tools/xl/xl_saverestore.c             |   2 +-
 tools/xl/xl_vmcontrol.c               |  12 ++--
 xen/arch/arm/domain.c                 |  21 +++++-
 xen/arch/arm/include/asm/domain.h     |   2 +
 xen/arch/arm/include/asm/perfc_defn.h |   1 +
 xen/arch/arm/include/asm/psci.h       |   2 +
 xen/arch/arm/include/asm/vpsci.h      |   2 +-
 xen/arch/arm/vpsci.c                  | 100 ++++++++++++++++++++++----
 xen/common/domain.c                   |  35 +++++++--
 xen/include/xen/sched.h               |   3 +
 16 files changed, 158 insertions(+), 40 deletions(-)

-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Wed Aug 27 21:42:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 21:42:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097025.1451527 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urNuI-0000R9-58; Wed, 27 Aug 2025 21:42:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097025.1451527; Wed, 27 Aug 2025 21:42:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urNuI-0000R2-2A; Wed, 27 Aug 2025 21:42:14 +0000
Received: by outflank-mailman (input) for mailman id 1097025;
 Wed, 27 Aug 2025 21:42:13 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1urNuH-0000Qw-H8
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 21:42:13 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1urNuG-009QBV-0F;
 Wed, 27 Aug 2025 21:42:12 +0000
Received: from [2a02:8012:3a1:0:28ae:5dea:af6b:b961]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1urNuF-004lC7-3D;
 Wed, 27 Aug 2025 21:42: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=jZzG+YOW/6BIeuEgk0i6ENcFU5OgX9uP7NZtfGi9nL4=; b=YPfgWyeW2uZih1N4Jm5RCTw1yN
	4XZlQ9e6FXYedp4IYiIO3yBbt/UtC40ZlffrU+vT5AdStgqxn/RY3K+bTj9gFqhwLr4We4cZr4t0V
	2yWimm60LVquMk1CLkGoPeZ3uZWjClGZc3vr7m3ypq3wjX27UbAs2+ZGxjEUsJ6ka44c=;
Message-ID: <717da388-9382-4eaf-9275-27dd203dd492@xen.org>
Date: Wed, 27 Aug 2025 22:42:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: smmuv3: Add cache maintenance for non-coherent
 SMMU queues
Content-Language: en-GB
To: "Orzel, Michal" <michal.orzel@amd.com>,
 Dmytro Firsov <Dmytro_Firsov@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <24567cc1630b1577c33939ff71d67fb2ebe5572f.1754491424.git.dmytro_firsov@epam.com>
 <cff3e94c-4476-4103-ae7e-19656703e755@amd.com>
 <5d48d927-7e1e-4b11-b429-0b94259154ab@epam.com>
 <e0c2b06e-947a-4d1d-864f-5785cfe00b1c@xen.org>
 <474bffdc-f42e-4727-ab69-b11a67430adf@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <474bffdc-f42e-4727-ab69-b11a67430adf@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Michal,

On 26/08/2025 12:44, Orzel, Michal wrote:
> 
> 
> On 26/08/2025 12:48, Julien Grall wrote:
>> Hi,
>>
>> On 26/08/2025 10:47, Dmytro Firsov wrote:
>>> On 22.08.25 11:12, Orzel, Michal wrote:
>>> On 06/08/2025 16:58, Dmytro Firsov wrote:
>>>
>>>
>>> According to the Arm SMMUv3 spec (ARM IHI 0070), a system may have
>>> SMMU(s) that is/are non-coherent to the PE (processing element). In such
>>> cases, memory accesses from the PE should be either non-cached or be
>>> augmented with manual cache maintenance. SMMU cache coherency is reported
>>> by bit 4 (COHACC) of the SMMU_IDR0 register and is already present in the
>>> Xen driver. However, the current implementation is not aware of cache
>>> maintenance for memory that is shared between the PE and non-coherent
>>> SMMUs. It contains dmam_alloc_coherent() function, that is added during
>>> Linux driver porting. But it is actually a wrapper for _xzalloc(), that
>>> returns normal writeback memory (which is OK for coherent SMMUs).
>>>
>>> During Xen bring-up on a system with non-coherent SMMUs, the driver did
>>> not work properly - the SMMU was not functional and halted initialization
>>> at the very beginning due to a timeout while waiting for CMD_SYNC
>>> completion:
>>>
>>>     (XEN) SMMUv3: /soc/iommu@fa000000: CMD_SYNC timeout
>>>     (XEN) SMMUv3: /soc/iommu@fa000000: CMD_SYNC timeout
>>>
>>> To properly handle such scenarios, add the non_coherent flag to the
>>> arm_smmu_queue struct. It is initialized using features reported by the
>>> SMMU HW and will be used for triggering cache clean/invalidate operations.
>>> This flag is not queue-specific (it is applicable to the whole SMMU), but
>>> adding it to arm_smmu_queue allows us to not change function signatures
>>> and simplify the patch (smmu->features, which contains the required flag,
>>> are not available in code parts that require cache maintenance).
>>>
>>>
>>> There are already a few places advertising the SMMU coherency:
>>> 1) smmu->features
>>> 2) d->iommu->features
>>> 3) platform_features
>>>
>>> All of them are better places than queue struct (that as you pointed out is not
>>> specific to coherency). I'd suggest maybe to use 3) and removing ro_after_init
>>> if you don't have access to 1) and 2). All in all, providing yet another place
>>> for coherency flag seems a bit too much.
>>   > >
>>> First of all, thank you very much for review! I will consider using
>>> "platform_features" in next patch version, it looks more appropriate and
>>> should be available within the whole driver. Also, I believe "ro_after_init"
>>> is also OK, since I have no need to change it (only check if cache
>>> maintenance should be performed).
>>
>> I have to disagree with using "platform_features". Flushing the queue is
>> a per-SMMU decision. But looking at the code, I think passing the SMMU
>> to the caller would look wrong (what if you mistakenly pass the wrong
>> SMMU?). So I think a boolean per queue is the right appraoch.
> For my own understanding: don't we consider SMMU coherency globally, not per
> SMMU (hence why I suggested re-using the global flag)?
 > We set the coherency> feature in the flags if all SMMUs support it. 
Do we want to diverge now and do
> the flushing per SMMU?

The two contexts are quite different.

We need the global flag when cleaning the stage-2 page-tables because we 
don't always know at boot which SMMUs will be used for the devices 
attached (think PCI hotplug).

In the context of this patch, we know the queue is only used by a given 
SMMU. So i tis better to take this decision per-SMMU/queue to reduce the 
number of cache flush. This will be particularly important for the 
2-stage SMMU work because there will be a lot of commands sent on behalf 
of the guest (every TLB flushes will be command).

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Wed Aug 27 22:49:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 22:49:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097075.1451537 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urOxH-0008FM-Pw; Wed, 27 Aug 2025 22:49:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097075.1451537; Wed, 27 Aug 2025 22:49: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 1urOxH-0008FF-MK; Wed, 27 Aug 2025 22:49:23 +0000
Received: by outflank-mailman (input) for mailman id 1097075;
 Wed, 27 Aug 2025 22:49:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=QSw+=3H=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1urOxG-0008F9-Be
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 22:49:22 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 114d6307-8398-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 00:49:20 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by AS8PR03MB7554.eurprd03.prod.outlook.com
 (2603:10a6:20b:348::18) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.14; Wed, 27 Aug
 2025 22:49:16 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9073.016; Wed, 27 Aug 2025
 22:49:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 114d6307-8398-11f0-ae26-e363de0e7a9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=VLJnDpEPcfmSW7pdjRIfpb2kiOKqt+q/n4AHKCxrzbrsBOCBduUdmmJOlR3xUeByhv8A/zhBJFDVgd3KU3IEhHGpfDjcLHjqSW9+7vo14RYbdKI7K8VOz9+vyPiQwZHOTktK9dFufJpahhsksyste59HhUXebs2o0AguqD+vIgNRUyj3wMut8cTG6mK6sHe7hF2YfDiobUI7XCK/l3vIjvDKwOBwKvcdlrTEqrdoXdGDavAWBJhdFmwjAcsvvvhA+NEKZcn3p34vce2XYxf295w3I9p7wmCnjQDRgt7AzUViGk/l4lkpYvHJl8cV6ToSFM+CWMpoUaSu2+esUFblyA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=DWxrr77tRoMk+EJXw30Ji2cuku41C+9iowVH88zxY2Y=;
 b=w7d9DSxnfKilkCJt5aXqGX3kfvFRkNfhtXSINRlXXLNwsD32MSfvka0Nd+Tz25XDjZU1M2OYGX684vYbPYcZ9j0q3A1Rgf7BHs3G3UjS+NeJUC9kj+FacxSXxHziD5E77ITQw9bGh+W4dnniRjdKkpvafWqaDWl3D0am5M+sWsM/bwIYUMBGub9FzDkRYlhXJqnO65croyC4LsvytJnSN+gatyVLy91IvFUAaAGzO26p000csRQAOvWXuYoDfnVJ50EoONqcacV3s4ODnt3o37rEVQbNkb/B+bpcQHDf8rwIALPPsBkC9tkaoq+hiiFNFCzkiCygrPpZunC8N4t4iQ==
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=DWxrr77tRoMk+EJXw30Ji2cuku41C+9iowVH88zxY2Y=;
 b=YYa8W9ir7GJm8ln2X9vXh4i2nhfjpbvCFKgiA6SH4sS+BI52aZcgkij17ElwrDRo2PCECxFuDm5UigzsI7bKAknZNdFJkK4aejzdak3SmmV1AcJqn1pHSuluPTSUfSnIXel6CpWdwyNijS2QyB8tssySS+MTMbK5yXpIO6BIEBUt2vtUQLCdBrruBRgtKZiMUJRI8KO5jShBiOFNHPhjeo1wdCQszbcWfnWcVuQoGrdxS4nZxVPxeJSdLOfgy9PSj9Q6E17F0ji38OiQJL7/9JeznQgAeM2yniWCFoWu8DrQd57QKfhgHIHvxOrUNkM7sPZ/kr7fNU/+vRFNVfnRTA==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"olekstysh@gmail.com" <olekstysh@gmail.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v4 03/12] xen/arm: vgic: implement helper functions for
 virq checks
Thread-Topic: [PATCH v4 03/12] xen/arm: vgic: implement helper functions for
 virq checks
Thread-Index: AQHcF3/Hllj5Y0qHEkeemv3U6Hra1A==
Date: Wed, 27 Aug 2025 22:49:16 +0000
Message-ID: <87o6s01itx.fsf@epam.com>
References: <cover.1756317702.git.leonid_komarianskyi@epam.com>
	<65b148aea56b1a35fa061b0d8284584da97153a9.1756317702.git.leonid_komarianskyi@epam.com>
In-Reply-To:
 <65b148aea56b1a35fa061b0d8284584da97153a9.1756317702.git.leonid_komarianskyi@epam.com>
	(Leonid Komarianskyi's message of "Wed, 27 Aug 2025 18:24:08 +0000")
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_|AS8PR03MB7554:EE_
x-ms-office365-filtering-correlation-id: cb6f7218-f453-48c4-fedb-08dde5bbf389
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|42112799006|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?EPSqEAtwElG5tipEiU7U/oGa5OhcIT9RtxdYzZ5CBusD6xnFruTPIqlcKV?=
 =?iso-8859-1?Q?HIdtuLlJWJIw1VWWS6BUVGUyFlIM0HWZ2FycSfMSClanv5NITxWzO1ZvxK?=
 =?iso-8859-1?Q?GW4ClvI2RM9iHNb6FrQ1H0lYOh/prYMDZHJQ1SCVXbPbBhtGBgeXO4JLD7?=
 =?iso-8859-1?Q?QulJIhDv3sTbyjUZwlzyKmTKQksfFaMmlZce2bMhUpTfay0tEYowD9lLIu?=
 =?iso-8859-1?Q?8d1GpVY5zSKp5Hk/cPKeFCwIVogf62Bce1WhJPa7BkGudxMGGP7eNT40tk?=
 =?iso-8859-1?Q?SMQ/Sya2tYuDn+VawSrpE80fFec6rYX5wIdrmuxtX6T0hY7ikK02rHO24y?=
 =?iso-8859-1?Q?KwFBeMIjG00HBuqwFAJuXtl3ig+/VSLEqiNZZM0vx1ETNhqMDst9u8DrCv?=
 =?iso-8859-1?Q?3n7YOLWeuwx3wMkuheUpS4U1rWxAmjrC20gfbKmv3pp8eQ8NXcWMKhEJoG?=
 =?iso-8859-1?Q?3iwug3nuBl4pQCISi52t8JRqUcK52BNDHFOnnRfFedsvBzJuQ4LHyyr6z2?=
 =?iso-8859-1?Q?Jm0s8Je2O4jRUyZdB5CuVHsDXcEE8A9ZybElSrcjcwbhGRyGs6ZDt0GoaP?=
 =?iso-8859-1?Q?AW76aQnrWt3XG6CSYvjUQfaWWZQft2ZTRT+qRcf7100aAXRnryWrUmGfQf?=
 =?iso-8859-1?Q?ha41s7rLvIYLuU8YUtI8/jzChuEdsVolI9dPO+Gx7i2AkHBFjPQTCgzqtW?=
 =?iso-8859-1?Q?BSSwYT57BWHpRKH/0jz9TK7N2AFQywGKBfLIoWYigC16VRJxDOkwdygcel?=
 =?iso-8859-1?Q?H0xaMOLey/hC77WsyBTcVq9IPl2gryUrMeUdiaLRTd0+V85F6KGzLukVXx?=
 =?iso-8859-1?Q?32Oa5yfybo2WGzKyR4G2tT7gqIGeR1GHWjB9UIZwajsN6lSrs6CaCgl6vJ?=
 =?iso-8859-1?Q?xjHbn98RLXAzuEfLk2kjCVZ7KncdrpjCyLsNJo3aAzqALISj0/DHwW1bkJ?=
 =?iso-8859-1?Q?g5UNN50KeG7KJ90rGwwc+DcergL5/vA8yv7KBh70IqK+Qh6bY60MGw/DEJ?=
 =?iso-8859-1?Q?xLvutRaIOPls5Tx0K2rOzKRaXsXGrPB5OT1pFYLDHrQx5wEHFEYaGw9Nbf?=
 =?iso-8859-1?Q?4xDvsQ4wHejqsgSXD2kB71WfO0a+9tEysYl9HbDUZ5kR/3Cktl/ZwoBwbP?=
 =?iso-8859-1?Q?SPDc/OwIS7btB+3TaZFzkn4beCSxcjvmzFKGBWIVrPOUUwNr5BBzdenr9e?=
 =?iso-8859-1?Q?6VSFtZ0HGGRj06TiBzThBD5eMR4IHGr8fLcRjI8j2Wb6kjc7d+t+jP6PoO?=
 =?iso-8859-1?Q?u2nU00YNj5iUVxXXwwk9ivi+M+WvjlCtC+aDxLlxENFYopVJY1ucQ4iDzy?=
 =?iso-8859-1?Q?/WuyPiW/upfaxGG1p1hSCvqBde1Sf+x1WTz6YBkUO/MywAWXBPbTj31BOI?=
 =?iso-8859-1?Q?BJ58b5VclkO/10Fz6r9g9mEIwV1dbv94wqQuP66RJjf557RsUhnvA+mBTS?=
 =?iso-8859-1?Q?y5hmbOIwUKA64j2Us0okxHRmTaP+/b6yQylOnDX1yrQzRKCkOFQxe0lcvB?=
 =?iso-8859-1?Q?fe+2saxzW34RofE3s8xSJJFz4PX48p2UmBos0Dmkv1sQ=3D=3D?=
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)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?l/Y4YCevVGtlG1PdjyrFLH2rr3NDzpMrfEiSHO118c7upZJwOb6szOPsKV?=
 =?iso-8859-1?Q?3U2W/+K8+Wr114Zw8jUqqnn9VN6dze/vaJTCTP+U180JUuVfDd1xN6Ya5K?=
 =?iso-8859-1?Q?kQAKEot3UvGyiM4tnm+XzNz/8EXnps/lRc4eVPUgJcf0N4DgCiTCxqisO8?=
 =?iso-8859-1?Q?wBcYjlDs7oepRZqbW/pEGHLRebvO6gepnXEIjDxr6n7axtfL8dInfy0rVG?=
 =?iso-8859-1?Q?uRie7OnTs1Eacem6O4wBXXoUFCKKTV3xWrmx4pBGeui6Jrc7eX6503F1eL?=
 =?iso-8859-1?Q?zl3kjYMrzGXvvb3rBhr5mkaFLbra3BMylDQsUs/JYNvQgw1PygP3I65GFG?=
 =?iso-8859-1?Q?k/4XGTB7dWQYRYUU30YCnSVwcGeAfFADgyh+KiWVqW/VoBUmDzv13jqIQi?=
 =?iso-8859-1?Q?Z/N7dN6DJkbg71+5qdPzn3i19rc3WWc4DPl1f30/50fJZoOEs+7iFrNjFz?=
 =?iso-8859-1?Q?eZEreMUCgdGASBrFS8clM0d2Di0Ganb4xnJjsMXFxQHzqni81vcz27h9cK?=
 =?iso-8859-1?Q?EutmoEK1kzPY5fupmXUpbGaAwDerI8u6z46yaCbSJ4Ms2NNuVXxrbIUSSh?=
 =?iso-8859-1?Q?vNCbK2Gf72so7eloZ0F/vAC7bvhr191x8K4Irv8geMDyCnYNu5mZzJCghI?=
 =?iso-8859-1?Q?CSNVhqFYz9eStRrQgeAkuywoHLC/QSnvGJ1If/O4VmH9c/FDTGSXLowZGa?=
 =?iso-8859-1?Q?aRBoCvzDJb2LipL6bSvXA3hklC0TkFj3yish2ugB/FSJ+khWRiTh0DWCI2?=
 =?iso-8859-1?Q?3vyNGpn4D9cz8f+hsOcX7vVW6WB9jlLnCmMLQVk+O//gy3zUIp5hjLsCy1?=
 =?iso-8859-1?Q?xB8PZI7wEBIhuejW5ROc7UhEHvwnUJuDWLbW1OaSwBoWBZXZMELkELMWNx?=
 =?iso-8859-1?Q?veOeQiI+tqRLCKlAZzl2jXodI5kOUZQV7MrJrUnLN8yWJ29IMD97A8RVq/?=
 =?iso-8859-1?Q?pCPW0XnQnmjc3NjkWQgku+tMNAcA0xFNFL5A8NfNfkcn069DtA3n4Su3UI?=
 =?iso-8859-1?Q?wM1OmUE2hHDLTiujEzEJb/Sf3LTgLhyYH4g3vyt2imzSEkpquAFUcNy2iK?=
 =?iso-8859-1?Q?K07kC8VkiKVf5UytOHi+IbqtZsoa9RMJajhVN9vup25TeinmPo/gA0KSPo?=
 =?iso-8859-1?Q?k5gVJB1Atw1yLwSsWMJiTPZmDRUCsMziNUOeY65ePw545L1YRK3dzWFY7v?=
 =?iso-8859-1?Q?ECNvQwVuIjRl/egJi1b8FwFx0IBtdQ3O8fCJJbOXrlPrrsT8J0++/0LEQX?=
 =?iso-8859-1?Q?AwzVF5QAlIbRbL31Ceq7/n8egBkI/BfkXc39K87YmZkx3JKuVwPnvha1IF?=
 =?iso-8859-1?Q?Hb8oYK1FekoMnnSeXTyEMLp8G7BT0mVL9devGZUNRSrx8gIKIoFkHDzfQL?=
 =?iso-8859-1?Q?//cwpRoRoqCMMEyapf2w2uPzP08Opar/biltA1LhH64ANobh7kn6QK3RYd?=
 =?iso-8859-1?Q?YbA8IbzaEPbF0UMOaZ4G9SPIfBHkA1raYVe0U5iSYIs7aoYcYGF+Cz2VM8?=
 =?iso-8859-1?Q?AuCnhAzGg1dp155Hz+wZ5FpiipjcSh/9KWa4H5GkkHWvJQ9+lAaJKoQ+eP?=
 =?iso-8859-1?Q?FXMNu6hUBzDf9SqtRpGAH9JVKD9L1SM/1wE3RddgNsC9CzRTeGZagUL0FV?=
 =?iso-8859-1?Q?Tl/uZCa+mnIOVz+m93RTed2D1LSgh3df8d9aEhzO4SIJWei57PmnPNTQ?=
 =?iso-8859-1?Q?=3D=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: cb6f7218-f453-48c4-fedb-08dde5bbf389
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Aug 2025 22:49:16.3947
 (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: gPEkBAYpdxM3PL7xZ94Hq66MwnrghQ7Vvq1t0xP2300CrVDgVnetFjO3zjLF8cyyy/mxH9pxPub2UVXt8f4KFS9txrVo6BN/212H7K5huK4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7554

Hi Leonid,

Leonid Komarianskyi <Leonid_Komarianskyi@epam.com> writes:

> Introduced two new helper functions for vGIC: vgic_is_valid_line and
> vgic_is_spi. The functions are similar to the newly introduced
> gic_is_valid_line and gic_is_spi, but they verify whether a vIRQ
> is available for a specific domain, while GIC-specific functions
> validate INTIDs for the real GIC hardware. For example, the GIC may
> support all 992 SPI lines, but the domain may use only some part of them
> (e.g., 640), depending on the highest IRQ number defined in the domain
> configuration. Therefore, for vGIC-related code and checks, the
> appropriate functions should be used. Also, updated the appropriate
> checks to use these new helper functions.
>
> The purpose of introducing new helper functions for vGIC is essentially
> the same as for GIC: to avoid potential confusion with GIC-related
> checks and to consolidate similar code into separate functions, which
> can be more easily extended by additional conditions, e.g., when
> implementing extended SPI interrupts.
>
> Only the validation change in vgic_inject_irq may affect existing
> functionality, as it currently checks whether the vIRQ is less than or
> equal to vgic_num_irqs. Since IRQ indexes start from 0 (where 32 is the
> first SPI), the check should behave consistently with similar logic in
> other places and should check if the vIRQ number is less than
> vgic_num_irqs. The remaining changes, which replace open-coded checks
> with the use of these new helper functions, do not introduce any
> functional changes, as the helper functions follow the current vIRQ
> index verification logic.
>
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>

Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

>
> ---
> Changes in V4:
> - removed redundant parentheses
>
> Changes in V3:
> - renamed vgic_is_valid_irq to vgic_is_valid_line and vgic_is_shared_irq
>   to vgic_is_spi
> - added vgic_is_valid_line implementation for new-vgic, because
>   vgic_is_valid_line is called from generic code. It is necessary to fix
>   the build for new-vgic.
> - updated commit message
>
> Changes in V2:
> - introduced this patch
> ---
>  xen/arch/arm/gic.c              |  3 +--
>  xen/arch/arm/include/asm/vgic.h |  7 +++++++
>  xen/arch/arm/irq.c              |  4 ++--
>  xen/arch/arm/vgic.c             | 10 ++++++++--
>  xen/arch/arm/vgic/vgic.c        |  5 +++++
>  5 files changed, 23 insertions(+), 6 deletions(-)
>
> diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
> index 9220eef6ea..b88237ccda 100644
> --- a/xen/arch/arm/gic.c
> +++ b/xen/arch/arm/gic.c
> @@ -133,8 +133,7 @@ int gic_route_irq_to_guest(struct domain *d, unsigned=
 int virq,
> =20
>      ASSERT(spin_is_locked(&desc->lock));
>      /* Caller has already checked that the IRQ is an SPI */
> -    ASSERT(virq >=3D 32);
> -    ASSERT(virq < vgic_num_irqs(d));
> +    ASSERT(vgic_is_spi(d, virq));
>      ASSERT(!is_lpi(virq));
> =20
>      ret =3D vgic_connect_hw_irq(d, NULL, virq, desc, true);
> diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/v=
gic.h
> index 35c0c6a8b0..3e7cbbb196 100644
> --- a/xen/arch/arm/include/asm/vgic.h
> +++ b/xen/arch/arm/include/asm/vgic.h
> @@ -335,6 +335,13 @@ extern void vgic_check_inflight_irqs_pending(struct =
vcpu *v,
>  /* Default number of vGIC SPIs. 32 are substracted to cover local IRQs. =
*/
>  #define VGIC_DEF_NR_SPIS (min(gic_number_lines(), VGIC_MAX_IRQS) - 32)
> =20
> +extern bool vgic_is_valid_line(struct domain *d, unsigned int virq);
> +
> +static inline bool vgic_is_spi(struct domain *d, unsigned int virq)
> +{
> +    return virq >=3D NR_LOCAL_IRQS && vgic_is_valid_line(d, virq);
> +}
> +
>  /*
>   * Allocate a guest VIRQ
>   *  - spi =3D=3D 0 =3D> allocate a PPI. It will be the same on every vCP=
U
> diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
> index 7dd5a2a453..b8eccfc924 100644
> --- a/xen/arch/arm/irq.c
> +++ b/xen/arch/arm/irq.c
> @@ -442,7 +442,7 @@ int route_irq_to_guest(struct domain *d, unsigned int=
 virq,
>      unsigned long flags;
>      int retval =3D 0;
> =20
> -    if ( virq >=3D vgic_num_irqs(d) )
> +    if ( !vgic_is_valid_line(d, virq) )
>      {
>          printk(XENLOG_G_ERR
>                 "the vIRQ number %u is too high for domain %u (max =3D %u=
)\n",
> @@ -560,7 +560,7 @@ int release_guest_irq(struct domain *d, unsigned int =
virq)
>      int ret;
> =20
>      /* Only SPIs are supported */
> -    if ( virq < NR_LOCAL_IRQS || virq >=3D vgic_num_irqs(d) )
> +    if ( !vgic_is_spi(d, virq) )
>          return -EINVAL;
> =20
>      desc =3D vgic_get_hw_irq_desc(d, NULL, virq);
> diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
> index c563ba93af..2bbf4d99aa 100644
> --- a/xen/arch/arm/vgic.c
> +++ b/xen/arch/arm/vgic.c
> @@ -24,6 +24,12 @@
>  #include <asm/gic.h>
>  #include <asm/vgic.h>
> =20
> +
> +bool vgic_is_valid_line(struct domain *d, unsigned int virq)
> +{
> +    return virq < vgic_num_irqs(d);
> +}
> +
>  static inline struct vgic_irq_rank *vgic_get_rank(struct vcpu *v,
>                                                    unsigned int rank)
>  {
> @@ -582,7 +588,7 @@ void vgic_inject_irq(struct domain *d, struct vcpu *v=
, unsigned int virq,
>      if ( !v )
>      {
>          /* The IRQ needs to be an SPI if no vCPU is specified. */
> -        ASSERT(virq >=3D 32 && virq <=3D vgic_num_irqs(d));
> +        ASSERT(vgic_is_spi(d, virq));
> =20
>          v =3D vgic_get_target_vcpu(d->vcpu[0], virq);
>      };
> @@ -659,7 +665,7 @@ bool vgic_emulate(struct cpu_user_regs *regs, union h=
sr hsr)
> =20
>  bool vgic_reserve_virq(struct domain *d, unsigned int virq)
>  {
> -    if ( virq >=3D vgic_num_irqs(d) )
> +    if ( !vgic_is_valid_line(d, virq) )
>          return false;
> =20
>      return !test_and_set_bit(virq, d->arch.vgic.allocated_irqs);
> diff --git a/xen/arch/arm/vgic/vgic.c b/xen/arch/arm/vgic/vgic.c
> index 6cabd0496d..b2c0e1873a 100644
> --- a/xen/arch/arm/vgic/vgic.c
> +++ b/xen/arch/arm/vgic/vgic.c
> @@ -718,6 +718,11 @@ bool vgic_reserve_virq(struct domain *d, unsigned in=
t virq)
>      return !test_and_set_bit(virq, d->arch.vgic.allocated_irqs);
>  }
> =20
> +bool vgic_is_valid_line(struct domain *d, unsigned int virq)
> +{
> +    return virq < vgic_num_irqs(d);
> +}
> +
>  int vgic_allocate_virq(struct domain *d, bool spi)
>  {
>      int first, end;

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 22:55:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 22:55:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097089.1451547 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urP33-0001UR-Hn; Wed, 27 Aug 2025 22:55:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097089.1451547; Wed, 27 Aug 2025 22:55:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urP33-0001UK-Es; Wed, 27 Aug 2025 22:55:21 +0000
Received: by outflank-mailman (input) for mailman id 1097089;
 Wed, 27 Aug 2025 22:55:20 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=QSw+=3H=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1urP32-0001UE-7u
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 22:55:20 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e701ae88-8398-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 00:55:18 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by VI1PR03MB9965.eurprd03.prod.outlook.com
 (2603:10a6:800:1cb::22) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.14; Wed, 27 Aug
 2025 22:55:15 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9073.016; Wed, 27 Aug 2025
 22:55: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>
X-Inumbo-ID: e701ae88-8398-11f0-aeb2-fb57b961d000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=s9UnHTE5VO8iJYi2HRc74sKuk+xlheuCtMTadRqEy/Qb3uHHaJFdPKx0Pthve3953SlPYt/TZ9o8sXEoJ9pR6kKr/7GTmZ0W127dDwDyb/JmoAeFTgIjaaqsXxn4KIEyasJhJEDa5gHO+M0g1F5Yl79cvx/7ZU3SgOaFvzaj4BoZWx9zO24NgOygjr2ARY1ZcfF4PDm9z6k9EMUY8eF572B3LborUcvEvPp8Jdaw5tqDNAubOsvb0lv6Frt3MpwzCcm1/ZJwTslWf66YfKekmprTgYNQqoeooOaal3a7wcffwvIWLdMQECtSeqw5g8OxLXonzPScwTgbXxnzr4RRjA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=09BcVSKWVvp/BpzkL3+e1HiZbKFTLDcfyFCHIvkxsBY=;
 b=se/ihS2ge5DB/8CUi4rWYFsuGsfOoYDBd0AwDuuQ9K8LsxDKaME/ukeE0BZsRxWFRzO9dTmdmDxznIsjfZsTlfcvOLmXg1T9ufsKGNo4PICV1N3tLDInmkqgBKGPdLSRkFf6VIZNJ+fo1N9CTMJONm+m9TPZmi2RskH6InXEGYXgZ3Z/F/RE0gM0TONU7bME3Urj8L17YpVZTL2fGbcGehqax16hRsvJaPbtZa15AqliPJE0iNEyMx+aAqzIKTqCUF7EwkqaHQKFVaLTlTEBMuW6S1nyDs3HdyP3atJL5z4icSOZB0Tb+2M4LN2zSTQMRElH4atqdK0WlP19HsDtEg==
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=09BcVSKWVvp/BpzkL3+e1HiZbKFTLDcfyFCHIvkxsBY=;
 b=hTVIsgLUr1RXEWD6eZDsUYr4L9qHcqYZ7u/3TVxBGwB71AXLyF0B036ZrurmSMb63mUqcQi9Dd4stZbyE2erl2/VxfBmV0rFg2wB57IwqwoUaMLXBQ/jyVQXvtYZGs1PjKh8hkZGdue6F6PXsVSmRvVQL2RJJm0qvbk+19iWLbN7G8cqVpNSfdafL+q/5Jx0aXCj8f8zxIYdJuPdeOUZaxEzRrFRiu2JDgI5KQ02NgVgNY30gJ8Tih0uWyEf0Zgn5voPRlTo/WMGVLI/IxzJJcyhUCyadM8QHAJMWUZI/mr7xbWUDnpA92PTZwC4kdK2J1MnOQidiOOR2bVIDz4pYw==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"olekstysh@gmail.com" <olekstysh@gmail.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v4 05/12] xen/arm: gicv3: implement handling of GICv3.1
 eSPI
Thread-Topic: [PATCH v4 05/12] xen/arm: gicv3: implement handling of GICv3.1
 eSPI
Thread-Index: AQHcF3/LXs7cVtiGJ0aCgPbYXhN1bw==
Date: Wed, 27 Aug 2025 22:55:15 +0000
Message-ID: <87iki81ijx.fsf@epam.com>
References: <cover.1756317702.git.leonid_komarianskyi@epam.com>
	<864522724dd6058952cad8b505b0589750b7f8d7.1756317702.git.leonid_komarianskyi@epam.com>
In-Reply-To:
 <864522724dd6058952cad8b505b0589750b7f8d7.1756317702.git.leonid_komarianskyi@epam.com>
	(Leonid Komarianskyi's message of "Wed, 27 Aug 2025 18:24:13 +0000")
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_|VI1PR03MB9965:EE_
x-ms-office365-filtering-correlation-id: 06791344-7ed4-41d5-ad07-08dde5bcc9ab
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|366016|1800799024|42112799006|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?gurJzrlghhtWldJ2T75zyK5e00qfRMJkLzUUpmadHbmsCTSWROntoK5Pr8?=
 =?iso-8859-1?Q?HrPWEaiFbCNO6unNuhmR7yA9BDGle8o6VyRZNUuItuWtnjqKrhubLvJbRm?=
 =?iso-8859-1?Q?hHkfEtxpx18xKB82w96fyzPEDyeQjfz1gfG04IiRe1cLm/yMaGg8wiw4A+?=
 =?iso-8859-1?Q?h/m5A7ZN0fpBv6KYYAcU6FJRFff9wv6PkXTIbgJQsARC/3ybT/CpNY751x?=
 =?iso-8859-1?Q?EFnGUdwUxtmw6AcuSE2TpQV2BbD6W4WfycnVZntQ89XiiJWoSU1fcRBZF/?=
 =?iso-8859-1?Q?qanSRHqvvVBM2tlq3/v2Hf4vAxGQ/jANB+aJoY4DUiLOO7SZ3AGk57/3gG?=
 =?iso-8859-1?Q?t2EMacK0MGrA9ACzwrAWtX20iq31XEXqwGQM0b1cHuTcmuNcs/BWMnWDOF?=
 =?iso-8859-1?Q?4/b2XcaMxL30h5VPkGOiLbwvAVC6BOrWY76i7GD9uUX54l70x+P0e/9cmT?=
 =?iso-8859-1?Q?4/87nF15FcwRWyfT6fAglK1ISGMZyLAf/6k85gWcVbvsIZAqAgv04oACcd?=
 =?iso-8859-1?Q?mMGqqMLd0RIRolJnganNoG7xodOo85AJqNpFEH4icXGPPs2P5cXgEMVKHb?=
 =?iso-8859-1?Q?SZQsvJQYDvjtgESxUipQhjwhLTC3qDDF2vFjdvUl2KM8e254zi0/LYrKpi?=
 =?iso-8859-1?Q?2ULOdfmhtRXRn1bQwsyjNAClVgK0jS18fozG8rO2H2lw12Qb8w/9qp1Tpa?=
 =?iso-8859-1?Q?WxuEWEaoQqenR1KALybudfybDjno+R7woJHDXO7tytLQO2beKW/aCoSJFc?=
 =?iso-8859-1?Q?i4E37bzel73L/JNQyex7Knm2LS+cyD5htt/hgsAtzyj/iQ3F1LNtCiZmdC?=
 =?iso-8859-1?Q?1EiE0a5Ksl+32CN2f7OnUl481v6yOCA75Kk4SeibTrEGrr0l6WhkxEexQa?=
 =?iso-8859-1?Q?FYGWbACzN38x9/CPNOsSx60dtN86kKt7kPkk24XMBMdJWRF19nZR3SSk0n?=
 =?iso-8859-1?Q?I482LSEKKGCBsYuCwx5pYdsmhG0Sg/1oe5/T/OSOc3LjWdaUixCu7RLHfg?=
 =?iso-8859-1?Q?AWPAO2jJmaWWfu7zka+7q+t8Jkktqvu246vHkeZ945l8PcmslT9A1/v//s?=
 =?iso-8859-1?Q?x3ZlhQovPnfwyeoYIDOtc3cEx8QvrUoweLclFQGEKF3l7CuB57acxFi54W?=
 =?iso-8859-1?Q?rCKAiyMgUVQcnWB9jf73Xo1NEZ5AUMJXeTXysyL9TqGOdHmXbu6ngbFIaw?=
 =?iso-8859-1?Q?QTSOsZK0iI6AGtnj0+OkzPZA+65VeaF8WM8sBvRXFJ0Cf2GMAruc+jtmvr?=
 =?iso-8859-1?Q?C7m1vBoSk87M0HN9D08KA+xoX8SUmlOOaR508ShNNNLVXplreY5unufnq/?=
 =?iso-8859-1?Q?EXehQQsECYCAKSsiy+OFmQmFoWOF8BRA9jtai+iVosBWaAdf/iU83dKwkc?=
 =?iso-8859-1?Q?Qbl/dKw2WrkVPQXuCf+b79xjslHrehOROADHWKHwLhsIrOfA0dTCNMlOKn?=
 =?iso-8859-1?Q?WKF/hsfudrNWiKYLWKGyh3CfOybDuW/EuglqlCZRiL4rCu5vLCFEhizfoU?=
 =?iso-8859-1?Q?Ww+8AkwHKTalw3sWS+cPIkNwSlARqjrhyk75+geSFYaw=3D=3D?=
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)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?7aNXyEU4GhLmi3gNdA8qGMuf089VPE0LmuOPfNxLJm83MalMecnO4pvIZk?=
 =?iso-8859-1?Q?lmZirE/Gz9bss++AHULwvxm6AZhUymLvxqwEJ3YqHURhXznTI/JRzce6te?=
 =?iso-8859-1?Q?koOcITZx7kgj4Lx0NkZRgkvmfYqSPf8T6SwEeZzmT/bOrqP1qpnJMBXGws?=
 =?iso-8859-1?Q?0yc/Q8Aaq15NnSpQjXIhmME3wcL8pNivByr7bdSXjs5puJdcckWVi35rU0?=
 =?iso-8859-1?Q?xVYCW7JfB3ZiII8hOt937cUFPCSb7FlBm0AGjSt5T32UwASnGaZPQJAnjr?=
 =?iso-8859-1?Q?NP8jNh0t2fv73GIMwVX3FnDObuEMjUZIwXYrAkG8nc0OHfrZpHy378Lyh7?=
 =?iso-8859-1?Q?EIXa7CmUgpexfmiXeKvy4NXg4Evc8+H2h53616W1rfSq58/9BFVegUzRht?=
 =?iso-8859-1?Q?ZXG64oNMqEUHnjmlRchFmDk1rJkdjsR0/sil+OiuQ/cHmlge3dhWIilTT7?=
 =?iso-8859-1?Q?Xoz7IctC3CT/DDFBdq7WqZj7jjWyCfo1l7cEcWgQy4oe+IaBeY4nAIycTN?=
 =?iso-8859-1?Q?xkMvucTYgdPh9NMHelsGs4L/C3tmgLJtg65t+S7XPaPq+YbVpPE1xA6oJU?=
 =?iso-8859-1?Q?dgkkWLPhkxL34TMEd30JmDlUdZxatktdoJEBRxphtIKdnaBNkOoh9ySlNO?=
 =?iso-8859-1?Q?BWHgsCShO4m/ldUUSgF3ICgsjWessLhX0LXuO44GupqqJiznmhqPF/MvTn?=
 =?iso-8859-1?Q?9C+8DkDptWg12btlLRwLrBd61R0k2mLSkmA1V7GEZC8TdrCZlmsuFDmWza?=
 =?iso-8859-1?Q?53UFTnId+rO1MZa0BMTBtJkqVd4UFmMG0jwrkynvgSYl38vXhLUZcKKD72?=
 =?iso-8859-1?Q?CCcchR50bzBH/tTLG7/3mqlJZwv9uuKOnmerRdW6RxV7mbSzkZ69PlgtIF?=
 =?iso-8859-1?Q?Jtmu7DpSeRKV6v1raGvKDlhrCNG3F2IzEgNzcEBdvctMWvyHElZdNgtlL5?=
 =?iso-8859-1?Q?XgIT/W490HuwqvxnOOvYpNYYNPm5Wg44Y75CSCzmnIoO96J7s3eqWKgX2S?=
 =?iso-8859-1?Q?O5YLI8h0iOCljTVyfqWHuEKSQISWALUDEDl6g22pPTdXAxaBbY/BaV04KO?=
 =?iso-8859-1?Q?yQem7hatWBup8CkTPZ6ukancWjF52Ve+DCZqgFVj344WhXvcHXLDqmrrut?=
 =?iso-8859-1?Q?mDfM1HlaXBoy1dhbnUqWVYhHayKvKSnPMHK86vkyjVUX8nwoFg14qNo7Eq?=
 =?iso-8859-1?Q?anpCAtFsF7Goy9nvcvRIBGyHRLBwO9kgvN0m0d2yXm7SIC62vT1VHOKOPY?=
 =?iso-8859-1?Q?f2hzm0Qct97ppIHAsrTmhL0stmLeo6UFkDiC2mlvVebpsj1FomzAlqlEY6?=
 =?iso-8859-1?Q?wsm0LlEY+Ki6dVFOJ2sYHlD+QJMopi+T/FD2T4ilMLWW7Ev/UkZV5BSCQz?=
 =?iso-8859-1?Q?uuA8fiZVWzs/89+EbFtqiefwfpv0BvJ8jRaJNY3uIxv56AUQ+BY6TdH0XD?=
 =?iso-8859-1?Q?zRdE9K0hIDqoPjP/FJoH49U9OZG1PcDRY25jsaPgrDD9Ib3f0OmQpE58m1?=
 =?iso-8859-1?Q?DAWhLymAuNBoJprSNV9dPHQN+5d0Z5YhcyMvXJBrT/Ah0lHCBtS8VMxttH?=
 =?iso-8859-1?Q?5mi/sS1fQ4C5MLwKvBDwlyfIjxZ0Xs0Lhzm4md4flqQNM1ctcu0cDE79Dp?=
 =?iso-8859-1?Q?1KzfRc5VDHx1yiiSAqEaRBRasLbNVSHEM3iZog2CxKza1AlMbUFQ8BZA?=
 =?iso-8859-1?Q?=3D=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: 06791344-7ed4-41d5-ad07-08dde5bcc9ab
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Aug 2025 22:55:15.6078
 (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: 5sAEQUudPjIikryXG02UcER0YkcTUHG8MVYtPHvNsVOpyHw9oKPDPSKHWoo/nGBDTmmyVznrp1ncQ/WRpjR8ZRuVEUTNC2IIsLHarCn2flM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR03MB9965

Hi Leonid,

Leonid Komarianskyi <Leonid_Komarianskyi@epam.com> writes:

> Introduced appropriate register definitions, helper macros,
> and initialization of required GICv3.1 distributor registers
> to support eSPI. This type of interrupt is handled in the
> same way as regular SPI interrupts, with the following
> differences:
>
> 1) eSPIs can have up to 1024 interrupts, starting from the
> beginning of the range, whereas regular SPIs use INTIDs from
> 32 to 1019, totaling 988 interrupts;
> 2) eSPIs start at INTID 4096, necessitating additional interrupt
> index conversion during register operations.
>
> In case if appropriate config is disabled, or GIC HW doesn't
> support eSPI, the existing functionality will remain the same.
>
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
> Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

With latest changes:

Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

>
> ---
> Changes in V4:
> - added offsets for GICD_IGRPMODRnE and GICD_NSACRnE that are required
>   for vGIC emulation
> - added a log banner with eSPI information, similar to the one for
>   regular SPI
> - added newline after ifdef and before gic_is_valid_line
> - added reviewed-by from Volodymyr Babchuk
>
> Changes in V3:
> - add __init attribute to gicv3_dist_espi_common_init
> - change open-codded eSPI register initialization to the appropriate
>   gen-mask macro
> - fixed formatting for lines with more than 80 symbols
> - introduced gicv3_dist_espi_init_aff to be able to use stubs in case of
>   CONFIG_GICV3_ESPI disabled
> - renamed parameter in the GICD_TYPER_ESPI_RANGE macro to espi_range
>   (name was taken from GIC specification) to avoid confusion
> - changed type for i variable to unsigned int since it cannot be
>   negative
>
> Changes in V2:
> - move gic_number_espis function from
>   [PATCH 08/10] xen/arm: vgic: add resource management for extended SPIs
>   to use it in the newly introduced gic_is_valid_espi
> - add gic_is_valid_espi which checks if IRQ number is in supported
>   by HW eSPI range
> - update gic_is_valid_irq conditions to allow operations with eSPIs
>
> Changes for V4:
>
> Changes in V4:
> - added offsets for GICD_IGRPMODRnE and GICD_NSACRnE that are required
>   for vGIC emulation
> - added newline after ifdef and before gic_is_valid_line
> - added reviewed-by from Volodymyr Babchuk
> - added a log banner with eSPI information, similar to the one for
>   regular SPI

Looks like your changelog is doubled :)

> ---
>  xen/arch/arm/gic-v3.c                  | 82 ++++++++++++++++++++++++++
>  xen/arch/arm/include/asm/gic.h         | 22 +++++++
>  xen/arch/arm/include/asm/gic_v3_defs.h | 38 ++++++++++++
>  3 files changed, 142 insertions(+)
>
> diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
> index a959fefebe..b939a1f490 100644
> --- a/xen/arch/arm/gic-v3.c
> +++ b/xen/arch/arm/gic-v3.c
> @@ -485,6 +485,36 @@ static void __iomem *get_addr_by_offset(struct irq_d=
esc *irqd, u32 offset)
>          default:
>              break;
>          }
> +#ifdef CONFIG_GICV3_ESPI
> +    case ESPI_BASE_INTID ... ESPI_MAX_INTID:
> +    {
> +        u32 irq_index =3D ESPI_INTID2IDX(irqd->irq);
> +
> +        switch ( offset )
> +        {
> +        case GICD_ISENABLER:
> +            return (GICD + GICD_ISENABLERnE + (irq_index / 32) * 4);
> +        case GICD_ICENABLER:
> +            return (GICD + GICD_ICENABLERnE + (irq_index / 32) * 4);
> +        case GICD_ISPENDR:
> +            return (GICD + GICD_ISPENDRnE + (irq_index / 32) * 4);
> +        case GICD_ICPENDR:
> +            return (GICD + GICD_ICPENDRnE + (irq_index / 32) * 4);
> +        case GICD_ISACTIVER:
> +            return (GICD + GICD_ISACTIVERnE + (irq_index / 32) * 4);
> +        case GICD_ICACTIVER:
> +            return (GICD + GICD_ICACTIVERnE + (irq_index / 32) * 4);
> +        case GICD_ICFGR:
> +            return (GICD + GICD_ICFGRnE + (irq_index / 16) * 4);
> +        case GICD_IROUTER:
> +            return (GICD + GICD_IROUTERnE + irq_index * 8);
> +        case GICD_IPRIORITYR:
> +            return (GICD + GICD_IPRIORITYRnE + irq_index);
> +        default:
> +            break;
> +        }
> +    }
> +#endif
>      default:
>          break;
>      }
> @@ -655,6 +685,54 @@ static void gicv3_set_irq_priority(struct irq_desc *=
desc,
>      spin_unlock(&gicv3.lock);
>  }
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +unsigned int gic_number_espis(void)
> +{
> +    return gic_hw_ops->info->nr_espi;
> +}
> +
> +static void __init gicv3_dist_espi_common_init(uint32_t type)
> +{
> +    unsigned int espi_nr, i;
> +
> +    espi_nr =3D min(1024U, GICD_TYPER_ESPIS_NUM(type));
> +    gicv3_info.nr_espi =3D espi_nr;
> +    /* The GIC HW doesn't support eSPI, so we can leave from here */
> +    if ( gicv3_info.nr_espi =3D=3D 0 )
> +        return;
> +
> +    printk("GICv3: %d eSPI lines\n", gicv3_info.nr_espi);
> +
> +    for ( i =3D 0; i < espi_nr; i +=3D 16 )
> +        writel_relaxed(0, GICD + GICD_ICFGRnE + (i / 16) * 4);
> +
> +    for ( i =3D 0; i < espi_nr; i +=3D 4 )
> +        writel_relaxed(GIC_PRI_IRQ_ALL,
> +                       GICD + GICD_IPRIORITYRnE + (i / 4) * 4);
> +
> +    for ( i =3D 0; i < espi_nr; i +=3D 32 )
> +    {
> +        writel_relaxed(GENMASK(31, 0), GICD + GICD_ICENABLERnE + (i / 32=
) * 4);
> +        writel_relaxed(GENMASK(31, 0), GICD + GICD_ICACTIVERnE + (i / 32=
) * 4);
> +    }
> +
> +    for ( i =3D 0; i < espi_nr; i +=3D 32 )
> +        writel_relaxed(GENMASK(31, 0), GICD + GICD_IGROUPRnE + (i / 32) =
* 4);
> +}
> +
> +static void __init gicv3_dist_espi_init_aff(uint64_t affinity)
> +{
> +    unsigned int i;
> +
> +    for ( i =3D 0; i < gicv3_info.nr_espi; i++ )
> +        writeq_relaxed_non_atomic(affinity, GICD + GICD_IROUTERnE + i * =
8);
> +}
> +#else
> +static void __init gicv3_dist_espi_common_init(uint32_t type) { }
> +
> +static void __init gicv3_dist_espi_init_aff(uint64_t affinity) { }
> +#endif
> +
>  static void __init gicv3_dist_init(void)
>  {
>      uint32_t type;
> @@ -700,6 +778,8 @@ static void __init gicv3_dist_init(void)
>      for ( i =3D NR_GIC_LOCAL_IRQS; i < nr_lines; i +=3D 32 )
>          writel_relaxed(GENMASK(31, 0), GICD + GICD_IGROUPR + (i / 32) * =
4);
> =20
> +    gicv3_dist_espi_common_init(type);
> +
>      gicv3_dist_wait_for_rwp();
> =20
>      /* Turn on the distributor */
> @@ -713,6 +793,8 @@ static void __init gicv3_dist_init(void)
> =20
>      for ( i =3D NR_GIC_LOCAL_IRQS; i < nr_lines; i++ )
>          writeq_relaxed_non_atomic(affinity, GICD + GICD_IROUTER + i * 8)=
;
> +
> +    gicv3_dist_espi_init_aff(affinity);
>  }
> =20
>  static int gicv3_enable_redist(void)
> diff --git a/xen/arch/arm/include/asm/gic.h b/xen/arch/arm/include/asm/gi=
c.h
> index 3fcee42675..1e747dcd99 100644
> --- a/xen/arch/arm/include/asm/gic.h
> +++ b/xen/arch/arm/include/asm/gic.h
> @@ -306,8 +306,26 @@ extern void gic_dump_vgic_info(struct vcpu *v);
> =20
>  /* Number of interrupt lines */
>  extern unsigned int gic_number_lines(void);
> +#ifdef CONFIG_GICV3_ESPI
> +extern unsigned int gic_number_espis(void);
> +
> +static inline bool gic_is_valid_espi(unsigned int irq)
> +{
> +    return (irq >=3D ESPI_BASE_INTID &&
> +            irq < ESPI_IDX2INTID(gic_number_espis()));
> +}
> +#else
> +static inline bool gic_is_valid_espi(unsigned int irq)
> +{
> +    return false;
> +}
> +#endif
> +
>  static inline bool gic_is_valid_line(unsigned int irq)
>  {
> +    if ( gic_is_valid_espi(irq) )
> +        return true;
> +
>      return irq < gic_number_lines();
>  }
> =20
> @@ -325,6 +343,10 @@ struct gic_info {
>      enum gic_version hw_version;
>      /* Number of GIC lines supported */
>      unsigned int nr_lines;
> +#ifdef CONFIG_GICV3_ESPI
> +    /* Number of GIC eSPI supported */
> +    unsigned int nr_espi;
> +#endif
>      /* Number of LR registers */
>      uint8_t nr_lrs;
>      /* Maintenance irq number */
> diff --git a/xen/arch/arm/include/asm/gic_v3_defs.h b/xen/arch/arm/includ=
e/asm/gic_v3_defs.h
> index 2af093e774..c10db9bd05 100644
> --- a/xen/arch/arm/include/asm/gic_v3_defs.h
> +++ b/xen/arch/arm/include/asm/gic_v3_defs.h
> @@ -37,6 +37,44 @@
>  #define GICD_IROUTER1019             (0x7FD8)
>  #define GICD_PIDR2                   (0xFFE8)
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +/* Additional registers for GICv3.1 */
> +#define GICD_IGROUPRnE               (0x1000)
> +#define GICD_IGROUPRnEN              (0x107C)
> +#define GICD_ISENABLERnE             (0x1200)
> +#define GICD_ISENABLERnEN            (0x127C)
> +#define GICD_ICENABLERnE             (0x1400)
> +#define GICD_ICENABLERnEN            (0x147C)
> +#define GICD_ISPENDRnE               (0x1600)
> +#define GICD_ISPENDRnEN              (0x167C)
> +#define GICD_ICPENDRnE               (0x1800)
> +#define GICD_ICPENDRnEN              (0x187C)
> +#define GICD_ISACTIVERnE             (0x1A00)
> +#define GICD_ISACTIVERnEN            (0x1A7C)
> +#define GICD_ICACTIVERnE             (0x1C00)
> +#define GICD_ICACTIVERnEN            (0x1C7C)
> +#define GICD_IPRIORITYRnE            (0x2000)
> +#define GICD_IPRIORITYRnEN           (0x23FC)
> +#define GICD_ICFGRnE                 (0x3000)
> +#define GICD_ICFGRnEN                (0x30FC)
> +#define GICD_IGRPMODRnE              (0x3400)
> +#define GICD_IGRPMODRnEN             (0x347C)
> +#define GICD_NSACRnE                 (0x3600)
> +#define GICD_NSACRnEN                (0x36FC)
> +#define GICD_IROUTERnE               (0x8000)
> +#define GICD_IROUTERnEN              (0x9FFC)
> +
> +#define GICD_TYPER_ESPI_SHIFT        8
> +#define GICD_TYPER_ESPI_RANGE_SHIFT  27
> +#define GICD_TYPER_ESPI_RANGE_MASK   (0x1F)
> +#define GICD_TYPER_ESPI              (1U << GICD_TYPER_ESPI_SHIFT)
> +#define GICD_TYPER_ESPI_RANGE(espi_range) ((((espi_range) & \
> +        GICD_TYPER_ESPI_RANGE_MASK) + 1) * 32)
> +#define GICD_TYPER_ESPIS_NUM(typer)    \
> +        (((typer) & GICD_TYPER_ESPI) ? \
> +        GICD_TYPER_ESPI_RANGE((typer) >> GICD_TYPER_ESPI_RANGE_SHIFT) : =
0)
> +#endif
> +
>  /* Common between GICD_PIDR2 and GICR_PIDR2 */
>  #define GIC_PIDR2_ARCH_MASK         (0xf0)
>  #define GIC_PIDR2_ARCH_GICv3        (0x30)

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 23:02:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 23:02:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097099.1451556 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urP9a-0003Dh-7N; Wed, 27 Aug 2025 23:02:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097099.1451556; Wed, 27 Aug 2025 23:02:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urP9a-0003Da-4j; Wed, 27 Aug 2025 23:02:06 +0000
Received: by outflank-mailman (input) for mailman id 1097099;
 Wed, 27 Aug 2025 23:02:05 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=QSw+=3H=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1urP9Z-0003DT-Nj
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 23:02:05 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d8c6f468-8399-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 01:02:04 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by VI1PR03MB9965.eurprd03.prod.outlook.com
 (2603:10a6:800:1cb::22) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.14; Wed, 27 Aug
 2025 23:01:59 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9073.016; Wed, 27 Aug 2025
 23:01: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>
X-Inumbo-ID: d8c6f468-8399-11f0-aeb2-fb57b961d000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Ui0/caiXpUIuMCeH1P9Ie86ehaD/DCzwF1PlfWmhFM427CkvsrEvOGW6g0YBhxPvJaTgs4Q3Uh2MwZUbTwmFqQgCWVaCD7Fij6YWpcHxpo3ZP/2oyqzvj50Gg7XqxhRvYS3xrcb6fLrFQsrWnqfVgOSkYBjMRXcV/V2hK02ezYXCP9iMFtYR5xBneSc0emZBMgtYqUHdxH15XX6Ya+rGzr2KlHgq9WhhEhZx6FvVY0HimDO3sKwy5y8OLbx0pIgGHIVkbJqwkvLyJycWXZhAILPDqNBb8jV0f9KE0R0QZGB46DpxbowAN0nKDjHHwRmae13IgGXk6IUA9JZCg9cTbA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=DuUwPgy+7Di8KAQZUAo/6G5YyVPcylfnwa49XnKam2o=;
 b=NZA9NLp3X+uywhytod1wGAEUTouZiO2vFYbpWMJq7E2nN6n17OfgQXo3NrDYXDazUi89TvesqlFyIFWDBYvyL7rCqzNE/Qgnscw6Po5c9hFJ82N6YORRcpSioPUEOSJIZAfZJghIlqnX1+Hk5JwzcFsEvATUTV4AJ12Ph61xcCnYoKveX+ZpzZs0f7QnB511+SwnQHnucCiEIA1PCT3jYrZuVz7qJiKOj68yGkDzA6IVg/IUuvdoscI8f1m1ec0fRPWziZhm+tp7Rmnz0Fzo+nG31EalFlrI2UHHGHs1PHkjq9uznsr0EdF5oxjzF8jmSgD3DJsfUe4cQF4lOZRTig==
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=DuUwPgy+7Di8KAQZUAo/6G5YyVPcylfnwa49XnKam2o=;
 b=sP2PZW5cD7T3K2Nrm4tP5e1O4ZYOaLr5P0sAIIDdrqXSDYCpGwR5HU0Vzglbp90qupEyCkwfSkyqlIWlNG4JwfqBNk5pbGZJn0yQM/le/a+ViH0VZwhG9RfaRCGax1GwgoS6HJRvzVlFjlDdehWUT6cQcaq0rvXG4GY8jzG+DyglCR9spBejhxE/NJlOCf8+h1N88DznfmqCV0ilzKxjXdOgWvoBLy+CvPSCmp0iwm2YQ7kJM5bIy9b3Gyw9mys/TP2q1qYCDMRTjjI2iIepsLn2eihBf7PZ+SqKc6eS5tP7dI6dCcyVXD+ig4QyFq7A17SHtoFCLYsZV1oq/gduMA==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"olekstysh@gmail.com" <olekstysh@gmail.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v4 08/12] xen/arm: vgic: add resource management for
 extended SPIs
Thread-Topic: [PATCH v4 08/12] xen/arm: vgic: add resource management for
 extended SPIs
Thread-Index: AQHcF3/OB02ss8SP00K1+48v78FFnQ==
Date: Wed, 27 Aug 2025 23:01:59 +0000
Message-ID: <87cy8g1i8p.fsf@epam.com>
References: <cover.1756317702.git.leonid_komarianskyi@epam.com>
	<9e8a11b024833c1b91b8806e7708bf35b04a8f6e.1756317702.git.leonid_komarianskyi@epam.com>
In-Reply-To:
 <9e8a11b024833c1b91b8806e7708bf35b04a8f6e.1756317702.git.leonid_komarianskyi@epam.com>
	(Leonid Komarianskyi's message of "Wed, 27 Aug 2025 18:24:19 +0000")
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_|VI1PR03MB9965:EE_
x-ms-office365-filtering-correlation-id: 8122c3f1-1b5e-4af6-ecce-08dde5bdba59
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|366016|1800799024|42112799006|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?PW30vkocCdFIWEUbHDOrWRMF1/AcMyGkaBTUhNHrlHIOlgu+79wUhLESUN?=
 =?iso-8859-1?Q?xco5D9waH2UvFkxoRnsFa5PrwsmTEAQh2CyJ8AtG8x6ugPMCbF5NA7gt+X?=
 =?iso-8859-1?Q?7jqUrq2EnFiLwkeGQ0AvDCuYIimvza9cWDiQVqBBO1DveSwFpvlSh0FusN?=
 =?iso-8859-1?Q?G+zQco5uttGjtw+7gYr0/tgzfTGIold1b8TDujQVpAnKsZ16PmCPyeT3Cr?=
 =?iso-8859-1?Q?5y7qNtOs+WFhSBWab5VZ0t09JBdtJSHF9VlXC/qPVWv7+p4lsGp8MpJjSd?=
 =?iso-8859-1?Q?Xi0HViVYL+Pqekqf7uApAIq3TXj4fmVxwAnCaar08U3EQTaUmlzRsYw0I8?=
 =?iso-8859-1?Q?MrfaERdtLh49NvWUSvdyVN5FzMHmanh6Nt63GLaO1XpxeNNiIyrg9t1Avm?=
 =?iso-8859-1?Q?fYZzVY2o6x2CgsJhC5wuugrMJV+1WTyxWh/2F+fp8aOQAscYduFl+2EZS4?=
 =?iso-8859-1?Q?yaNpyxyCHY3ho7svUdLEnhZzX4zG8b2ij5JFoeEXyOP+lt/JMEWGpRPyRi?=
 =?iso-8859-1?Q?0V/MrgfHYEvqmfz32C0Ev6e2gt+SZ576AyHULYYoIn67i/G+lj351BrpD6?=
 =?iso-8859-1?Q?lTj+8Jrc9ZKX2PSg2UrH9MWhZvWLEFy5C+czdntW4P61fZ4qYW8VSNc48/?=
 =?iso-8859-1?Q?/KYwZG3MMwEgha6N7BnFDxvVnh6qTJKwrYyuQCKRDN+grQarG8KXOd23C6?=
 =?iso-8859-1?Q?wmdsn9sDLpyTcKOF6R8//B9y/dSHBgjl3Uu0t5bhBNC2Ym/vOJPbazbRvZ?=
 =?iso-8859-1?Q?uzfymRIy2IKAyGOHcYILmiUblNnG+o+hdLt1PcvOr7CaUcQqgQEKWYpT0d?=
 =?iso-8859-1?Q?60UVTT+kywtPyB0p484FximJO0EUQrT79h6UUYx2r9LhwCMjCiR1jJ15Ya?=
 =?iso-8859-1?Q?eCR7BknrNkesQCXYhtyaLFcN4W/W0sXl5IV1s9+kcqd9v/T4JqAkM4dF+U?=
 =?iso-8859-1?Q?7mPZVDHrN6bcdrevLoC90AKnx3drwRh9TTzpmlkwhe0NZ0Yrl9nMFIaU92?=
 =?iso-8859-1?Q?wjAvdOa4sVtpgvVUqOSigFtfUvYQydcPXx5PrQy/XCsvlYZMHMPq7XRy/B?=
 =?iso-8859-1?Q?3gHQDDDEjTH+Hvvoq1ESM5RnINERPkYAS7Qt/AvV2kV29+7f33v/EZu0mB?=
 =?iso-8859-1?Q?gcjJSIaeCJK/20xEMQAb/zFEiZUcPiPNSUhI2KMDnre1i/9Le8QoFrh9sU?=
 =?iso-8859-1?Q?bQBGkHU7XOe7dWGuJup7rKGNPtsr2K4P8x6XYxV+C69GcKdkI5+OlRY4qK?=
 =?iso-8859-1?Q?rG65jfIOguzZbBt/KXH0dQWH7yRABL2Uht6ZjTVUsBnkAYzxsaVqrT0MN0?=
 =?iso-8859-1?Q?yLgCbkyYBN6qpEqUBJkNLNbVs8n1fvZQKtu5nQvQAwIDklCtlz6ynFYVby?=
 =?iso-8859-1?Q?Bp9g8BEu/eD1cvYOO4sS8j19NUv5dt4IgbhfX07PSJ6tYxroeylV6njR4n?=
 =?iso-8859-1?Q?k044iaIJ5tm1BHMM/1yNtaJmqorvDkitjJLUdwb4F5boTC30HQUbJl3Q4U?=
 =?iso-8859-1?Q?vtt9Nwi3+CGSa2qwmzs9oZyDMhe1t4I+q6co2CczTbWg=3D=3D?=
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)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?RQ1MUmRU+WPpbLUlWKZVaZGkIQpxp2Sz+p078QMk8H7xyYASYuri4qPeIi?=
 =?iso-8859-1?Q?GKnPA15G3xBKQwng7cJ67jjUrWygRiiLBb0ztGH9r4dJN3muOQ8fWbUidM?=
 =?iso-8859-1?Q?bJSiPcWf88/OVZ+r/vHbevTLNv3wogCCNvAEP6TMDPAeD2PX7aFGKhQB2d?=
 =?iso-8859-1?Q?as36nErXP0E23rM+KIHOpTKkWBAfHJoEjeQMzck2dd3o/hO0/FsJfD+P+W?=
 =?iso-8859-1?Q?MtU9F0lCp+D7+xXDkkT+vNkyY0kLieQA7l8bGhZ01S0QlGbmJwzaEt59dD?=
 =?iso-8859-1?Q?bGGCPfDZQvTmIViGbkGXZYT1cyzvzyj0UeD/exygoWf/5O+izPtIXRvAo6?=
 =?iso-8859-1?Q?tJgu3DafK7pYTaQ5cUYYj0YDsSRhmPooXxUUP6l1S4ktpoyrGkTBg5+jNp?=
 =?iso-8859-1?Q?g4aRjsp8IFaF30eq+scSXBZSUM2bauy4yR94S5DTIHBaUYfibMELInMbYA?=
 =?iso-8859-1?Q?6W6uiGZHVzg1R7XxQJmeOfCmvZUUOzSGoo/Knh1FDVCWt5VrVrNFMGDSj7?=
 =?iso-8859-1?Q?QQwVyC4u2zU/tmaD0UVuuaIXSLoIDKs1M32pqNMTDIjHQn8mCvnQ3P5yeN?=
 =?iso-8859-1?Q?dDZdpPBfRJ5xCseHm/rKGnulfhPMEPW1AsZL/wtKT0B7UzdxD0uZ8zUA/o?=
 =?iso-8859-1?Q?u6oRF/O41FvJlY3GYqjYLNQXT7e0fsL+EJ6Cg8q//4SHTA48xj7dF5ln2l?=
 =?iso-8859-1?Q?SMY6Q4uetlAmn0QJQ3oE95xUcRTt5Czmz5gF8Z5UDkKDYwAY2AL8hTFGru?=
 =?iso-8859-1?Q?CZ0+7afmvpMB1ji/amE04DdIDt8IaWODCWf/dwZrJ7MEukgPxKwIcImhXT?=
 =?iso-8859-1?Q?H+YgSY17vsJI8ArqUlv4Jn1z8OQHB/G/vPI7teomozIqzpYHdorSnLASJW?=
 =?iso-8859-1?Q?2u+IzaPwr158RrJLvZbIaB/grFA9JQPcuZsQTg1c3ryzAiAejqKwLm1+0X?=
 =?iso-8859-1?Q?EcXndD3wFd3QUYAHBDavnORQ1MGcsbxWJaZGdRi1n6umr0RWr2HznPw6fU?=
 =?iso-8859-1?Q?mcg+CVLpUWDvGyXT0mxMW4ATn2sK6zaROyp0ggn8c9cGQMxjiO5Yx1Ocm5?=
 =?iso-8859-1?Q?LJEkcCt11C49LwW1JEhYEvsxtl5N+liLR/qxUA0p45BdD8+QAzYA8g27bK?=
 =?iso-8859-1?Q?60yfZXheI9GX//GkD9JzZlDVfvDcNMgjWzj/6VpJBavh5MbNgbrg6kFF79?=
 =?iso-8859-1?Q?v2bLsyCXn9nsPZtkVKNFJbmE9CTWodxpKR2BQ5VNIp5JSscQlgG3AOmQjv?=
 =?iso-8859-1?Q?MVlk6MKPpX+5EcPX5arY6uz+M9EINconaFOId6yEkVWYXcP/s8AKItYHJ0?=
 =?iso-8859-1?Q?8C9RtcGOcC5PwG+cHGb1Qy7bUuU6lK9C6tIzyyi1sfckDoQuf52hcgXsNf?=
 =?iso-8859-1?Q?5gyzeQ1TexTMNTuQWaJWsNV+aQA2YnNOlZt4RuQDCevR4KTxUUXKvhz2jp?=
 =?iso-8859-1?Q?xaAgLyqWQIStyzVx2j4DGjVfH8rSJI7jHIHwQyuY/FBvPcNrKe+6Mtm8Jc?=
 =?iso-8859-1?Q?wKdkFiUnrGvcuifUOXvSVOx9GL9w+wuGgiyLvsbkp+gB4Vuh9MHlPR2VKo?=
 =?iso-8859-1?Q?XTjizY4yxuiIPSsygF8UHaEHi1SJbDXcgGV9iqQjnbegQS2DNdUSL73V8T?=
 =?iso-8859-1?Q?2W98i3F53GBcMmgCPyuIZRg43BCMStZ4NbDdZUSbsCbISs1so6SOFn4Q?=
 =?iso-8859-1?Q?=3D=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: 8122c3f1-1b5e-4af6-ecce-08dde5bdba59
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Aug 2025 23:01:59.4104
 (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: T03REIiA1upsxa6sY/V4CJRCmyNrkI1eTeyNCU4PNj3epRuzS1Hpoahgtd+BFFmC/N+FOWo3uxVv8/BAHHuB1HJAUxdYKs1XMsPTPDhWYt4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR03MB9965

Hi Leonid,

Leonid Komarianskyi <Leonid_Komarianskyi@epam.com> writes:

> This change introduces resource management in the VGIC to handle
> extended SPIs introduced in GICv3.1. The pending_irqs and
> allocated_irqs arrays are resized to support the required
> number of eSPIs, based on what is supported by the hardware and
> requested by the guest. A new field, ext_shared_irqs, is added
> to the VGIC structure to store information about eSPIs, similar
> to how shared_irqs is used for regular SPIs.
>
> Since the eSPI range starts at INTID 4096 and INTIDs between 1025
> and 4095 are reserved, helper macros are introduced to simplify the
> transformation of indices and to enable easier access to eSPI-specific
> resources. These changes prepare the VGIC for processing eSPIs as
> required by future functionality.
>
> The initialization and deinitialization paths for vgic have been updated
> to allocate and free these resources appropriately. Additionally,
> updated handling of INTIDs greater than 1024, passed from the toolstack
> during domain creation, and verification logic ensures only valid SPI or
> eSPI INTIDs are used.
>
> The existing SPI behavior remains unaffected when guests do not request
> eSPIs, GIC hardware does not support them, or the CONFIG_GICV3_ESPI
> option is disabled.
>
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
>
> ---
> Changes in V4:
> - added has_espi field to simplify determining whether a domain is able
>   to operate with eSPI

I don't think that this is a good idea. You already have an invariant that
tells if domain has eSPIs: d->nr_espis !=3D 0. If you introduce a new
field, you now have to keep these two values coherent or deal with possible=
 cases
like d->nr_espis =3D=3D 0 && d->has_espi =3D=3D true

Also, this new field is not used anywhere, so why adding it in the first
place?

> - fixed formatting issues and misspellings
>
> Changes in V3:
> - fixed formatting for lines with more than 80 symbols
> - introduced helper functions to be able to use stubs in case of
>   CONFIG_GICV3_ESPI disabled, and as a result, reduce the number of
>   #ifdefs
> - fixed checks for nr_spis in domain_vgic_init
> - updated comment about nr_spis adjustments with dom0less mention
> - moved comment with additional explanations before checks
> - used unsigned int for indexes since they cannot be negative
> - removed unnecessary parentheses
> - move vgic_ext_rank_offset to the below ifdef guard, to reduce the
>   number of ifdefs
>
> Changes in V2:
> - change is_espi_rank to is_valid_espi_rank to verify whether the array
>   element ext_shared_irqs exists. The previous version, is_espi_rank,
>   only checked if the rank index was less than the maximum possible eSPI
>   rank index, but this could potentially result in accessing a
>   non-existing array element. To address this, is_valid_espi_rank was
>   introduced, which ensures that the required eSPI rank exists
> - move gic_number_espis to
>   xen/arm: gicv3: implement handling of GICv3.1 eSPI
> - update vgic_is_valid_irq checks to allow operating with eSPIs
> - remove redundant newline in vgic_allocate_virq
> ---
>  xen/arch/arm/include/asm/vgic.h |  20 +++
>  xen/arch/arm/vgic.c             | 213 +++++++++++++++++++++++++++++++-
>  2 files changed, 230 insertions(+), 3 deletions(-)
>
> diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/v=
gic.h
> index 3e7cbbb196..fb4cea73eb 100644
> --- a/xen/arch/arm/include/asm/vgic.h
> +++ b/xen/arch/arm/include/asm/vgic.h
> @@ -146,6 +146,12 @@ struct vgic_dist {
>      int nr_spis; /* Number of SPIs */
>      unsigned long *allocated_irqs; /* bitmap of IRQs allocated */
>      struct vgic_irq_rank *shared_irqs;
> +#ifdef CONFIG_GICV3_ESPI
> +    struct vgic_irq_rank *ext_shared_irqs;
> +    int nr_espis; /* Number of extended SPIs */
> +    /* To simplify determining whether a domain is able to operate with =
eSPI */
> +    bool has_espi;
> +#endif
>      /*
>       * SPIs are domain global, SGIs and PPIs are per-VCPU and stored in
>       * struct arch_vcpu.
> @@ -243,6 +249,14 @@ struct vgic_ops {
>  /* Number of ranks of interrupt registers for a domain */
>  #define DOMAIN_NR_RANKS(d) (((d)->arch.vgic.nr_spis+31)/32)
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +#define DOMAIN_NR_EXT_RANKS(d) (((d)->arch.vgic.nr_espis+31)/32)
> +#define EXT_RANK_MIN (ESPI_BASE_INTID/32)
> +#define EXT_RANK_MAX ((ESPI_MAX_INTID+31)/32)
> +#define EXT_RANK_NUM2IDX(num) ((num)-EXT_RANK_MIN)
> +#define EXT_RANK_IDX2NUM(idx) ((idx)+EXT_RANK_MIN)
> +#endif
> +
>  #define vgic_lock(v)   spin_lock_irq(&(v)->domain->arch.vgic.lock)
>  #define vgic_unlock(v) spin_unlock_irq(&(v)->domain->arch.vgic.lock)
> =20
> @@ -302,6 +316,12 @@ extern struct vgic_irq_rank *vgic_rank_offset(struct=
 vcpu *v,
>                                                unsigned int b,
>                                                unsigned int n,
>                                                unsigned int s);
> +#ifdef CONFIG_GICV3_ESPI
> +extern struct vgic_irq_rank *vgic_ext_rank_offset(struct vcpu *v,
> +                                                  unsigned int b,
> +                                                  unsigned int n,
> +                                                  unsigned int s);
> +#endif
>  extern struct vgic_irq_rank *vgic_rank_irq(struct vcpu *v, unsigned int =
irq);
>  extern void vgic_disable_irqs(struct vcpu *v, uint32_t r, unsigned int n=
);
>  extern void vgic_enable_irqs(struct vcpu *v, uint32_t r, unsigned int n)=
;
> diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
> index 2bbf4d99aa..f4b80cb05f 100644
> --- a/xen/arch/arm/vgic.c
> +++ b/xen/arch/arm/vgic.c
> @@ -27,9 +27,82 @@
> =20
>  bool vgic_is_valid_line(struct domain *d, unsigned int virq)
>  {
> +#ifdef CONFIG_GICV3_ESPI
> +    if ( virq >=3D ESPI_BASE_INTID &&
> +         virq < ESPI_IDX2INTID(d->arch.vgic.nr_espis) )
> +        return true;
> +#endif
> +
>      return virq < vgic_num_irqs(d);
>  }
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +/*
> + * Since eSPI indexes start from 4096 and numbers from 1024 to
> + * 4095 are forbidden, we need to check both lower and upper
> + * limits for ranks.
> + */
> +static inline bool is_valid_espi_rank(struct domain *d, unsigned int ran=
k)
> +{
> +    return rank >=3D EXT_RANK_MIN &&
> +           EXT_RANK_NUM2IDX(rank) < DOMAIN_NR_EXT_RANKS(d);
> +}
> +
> +static inline struct vgic_irq_rank *vgic_get_espi_rank(struct vcpu *v,
> +                                                       unsigned int rank=
)
> +{
> +    return &v->domain->arch.vgic.ext_shared_irqs[EXT_RANK_NUM2IDX(rank)]=
;
> +}
> +
> +static inline bool vgic_reserve_espi_virq(struct domain *d, unsigned int=
 virq)
> +{
> +    return !test_and_set_bit(ESPI_INTID2IDX(virq) + vgic_num_irqs(d),
> +                             d->arch.vgic.allocated_irqs);
> +}
> +
> +static void arch_move_espis(struct vcpu *v)
> +{
> +    const cpumask_t *cpu_mask =3D cpumask_of(v->processor);
> +    struct domain *d =3D v->domain;
> +    struct pending_irq *p;
> +    struct vcpu *v_target;
> +    unsigned int i;
> +
> +    for ( i =3D ESPI_BASE_INTID;
> +          i < EXT_RANK_IDX2NUM(d->arch.vgic.nr_espis); i++ )
> +    {
> +        v_target =3D vgic_get_target_vcpu(v, i);
> +        p =3D irq_to_pending(v_target, i);
> +
> +        if ( v_target =3D=3D v && !test_bit(GIC_IRQ_GUEST_MIGRATING, &p-=
>status) )
> +            irq_set_affinity(p->desc, cpu_mask);
> +    }
> +}
> +#else
> +static inline bool is_valid_espi_rank(struct domain *d, unsigned int ran=
k)
> +{
> +    return false;
> +}
> +
> +/*
> + * This function is stub and will not be called if CONFIG_GICV3_ESPI=3Dn=
,
> + * because in this case, is_valid_espi_rank will always return false.
> + */
> +static inline struct vgic_irq_rank *vgic_get_espi_rank(struct vcpu *v,
> +                                                       unsigned int rank=
)
> +{
> +    ASSERT_UNREACHABLE();
> +    return NULL;
> +}
> +
> +static inline bool vgic_reserve_espi_virq(struct domain *d, unsigned int=
 virq)
> +{
> +    return false;
> +}
> +
> +static void arch_move_espis(struct vcpu *v) { }
> +#endif
> +
>  static inline struct vgic_irq_rank *vgic_get_rank(struct vcpu *v,
>                                                    unsigned int rank)
>  {
> @@ -37,6 +110,8 @@ static inline struct vgic_irq_rank *vgic_get_rank(stru=
ct vcpu *v,
>          return v->arch.vgic.private_irqs;
>      else if ( rank <=3D DOMAIN_NR_RANKS(v->domain) )
>          return &v->domain->arch.vgic.shared_irqs[rank - 1];
> +    else if ( is_valid_espi_rank(v->domain, rank) )
> +        return vgic_get_espi_rank(v, rank);
>      else
>          return NULL;
>  }
> @@ -117,6 +192,74 @@ int domain_vgic_register(struct domain *d, unsigned =
int *mmio_count)
>      return 0;
>  }
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +/*
> + * The function behavior is the same as for regular SPIs (vgic_rank_offs=
et),
> + * but it operates with extended SPI ranks.
> + */
> +struct vgic_irq_rank *vgic_ext_rank_offset(struct vcpu *v, unsigned int =
b,
> +                                           unsigned int n, unsigned int =
s)
> +{
> +    unsigned int rank =3D REG_RANK_NR(b, (n >> s));
> +
> +    return vgic_get_rank(v, rank + EXT_RANK_MIN);
> +}
> +
> +static unsigned int vgic_num_spi_lines(struct domain *d)
> +{
> +    return d->arch.vgic.nr_spis + d->arch.vgic.nr_espis;
> +}
> +
> +static int init_vgic_espi(struct domain *d)
> +{
> +    unsigned int i, idx;
> +
> +    if ( d->arch.vgic.nr_espis =3D=3D 0 )
> +        return 0;
> +
> +    d->arch.vgic.ext_shared_irqs =3D
> +        xzalloc_array(struct vgic_irq_rank, DOMAIN_NR_EXT_RANKS(d));
> +    if ( d->arch.vgic.ext_shared_irqs =3D=3D NULL )
> +        return -ENOMEM;
> +
> +    for ( i =3D d->arch.vgic.nr_spis, idx =3D 0;
> +          i < vgic_num_spi_lines(d); i++, idx++ )
> +        vgic_init_pending_irq(&d->arch.vgic.pending_irqs[i],
> +                              ESPI_IDX2INTID(idx));
> +
> +    for ( i =3D 0; i < DOMAIN_NR_EXT_RANKS(d); i++ )
> +        vgic_rank_init(&d->arch.vgic.ext_shared_irqs[i], i, 0);
> +
> +    return 0;
> +}
> +
> +struct pending_irq *espi_to_pending(struct domain *d, unsigned int irq)
> +{
> +    irq =3D ESPI_INTID2IDX(irq) + d->arch.vgic.nr_spis;
> +    return &d->arch.vgic.pending_irqs[irq];
> +}
> +#else
> +static unsigned int init_vgic_espi(struct domain *d)
> +{
> +    return 0;
> +}
> +
> +static unsigned int vgic_num_spi_lines(struct domain *d)
> +{
> +    return d->arch.vgic.nr_spis;
> +}
> +
> +struct pending_irq *espi_to_pending(struct domain *d, unsigned int irq)
> +{
> +    return NULL;
> +}
> +#endif
> +
> +static unsigned int vgic_num_alloc_irqs(struct domain *d)
> +{
> +    return vgic_num_spi_lines(d) + NR_LOCAL_IRQS;
> +}
> +
>  int domain_vgic_init(struct domain *d, unsigned int nr_spis)
>  {
>      int i;
> @@ -131,6 +274,38 @@ int domain_vgic_init(struct domain *d, unsigned int =
nr_spis)
>       */
>      nr_spis =3D ROUNDUP(nr_spis, 32);
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +    /*
> +     * During domain creation, the dom0less DomUs code or toolstack spec=
ifies
> +     * the maximum INTID, which is defined in the domain config subtract=
ed by
> +     * 32 to cover the local IRQs (please see the comment to VGIC_DEF_NR=
_SPIS).
> +     * To compute the actual number of eSPI that will be usable for,
> +     * add back 32.
> +     */
> +    if ( nr_spis + 32 > ESPI_IDX2INTID(NR_ESPI_IRQS) )
> +        return -EINVAL;
> +
> +    if ( nr_spis + 32 >=3D ESPI_BASE_INTID )
> +    {
> +        d->arch.vgic.nr_espis =3D min(nr_spis - ESPI_BASE_INTID + 32, 10=
24U);
> +        /* Verify if GIC HW can handle provided INTID */
> +        if ( d->arch.vgic.nr_espis > gic_number_espis() )
> +            return -EINVAL;
> +        /*
> +         * Set the maximum available number for regular
> +         * SPI to pass the next check
> +         */
> +        nr_spis =3D VGIC_DEF_NR_SPIS;
> +        d->arch.vgic.has_espi =3D true;
> +    }
> +    else
> +    {
> +        /* Domain will use the regular SPI range */
> +        d->arch.vgic.nr_espis =3D 0;
> +        d->arch.vgic.has_espi =3D false;
> +    }
> +#endif
> +
>      /* Limit the number of virtual SPIs supported to (1020 - 32) =3D 988=
  */
>      if ( nr_spis > (1020 - NR_LOCAL_IRQS) )
>          return -EINVAL;
> @@ -145,7 +320,7 @@ int domain_vgic_init(struct domain *d, unsigned int n=
r_spis)
>          return -ENOMEM;
> =20
>      d->arch.vgic.pending_irqs =3D
> -        xzalloc_array(struct pending_irq, d->arch.vgic.nr_spis);
> +        xzalloc_array(struct pending_irq, vgic_num_spi_lines(d));
>      if ( d->arch.vgic.pending_irqs =3D=3D NULL )
>          return -ENOMEM;
> =20
> @@ -156,12 +331,16 @@ int domain_vgic_init(struct domain *d, unsigned int=
 nr_spis)
>      for ( i =3D 0; i < DOMAIN_NR_RANKS(d); i++ )
>          vgic_rank_init(&d->arch.vgic.shared_irqs[i], i + 1, 0);
> =20
> +    ret =3D init_vgic_espi(d);
> +    if ( ret )
> +        return ret;
> +
>      ret =3D d->arch.vgic.handler->domain_init(d);
>      if ( ret )
>          return ret;
> =20
>      d->arch.vgic.allocated_irqs =3D
> -        xzalloc_array(unsigned long, BITS_TO_LONGS(vgic_num_irqs(d)));
> +        xzalloc_array(unsigned long, BITS_TO_LONGS(vgic_num_alloc_irqs(d=
)));
>      if ( !d->arch.vgic.allocated_irqs )
>          return -ENOMEM;
> =20
> @@ -195,9 +374,27 @@ void domain_vgic_free(struct domain *d)
>          }
>      }
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +    for ( i =3D 0; i < d->arch.vgic.nr_espis; i++ )
> +    {
> +        struct pending_irq *p =3D spi_to_pending(d, ESPI_IDX2INTID(i));
> +
> +        if ( p->desc )
> +        {
> +            ret =3D release_guest_irq(d, p->irq);
> +            if ( ret )
> +                dprintk(XENLOG_G_WARNING, "d%u: Failed to release virq %=
u ret =3D %d\n",
> +                        d->domain_id, p->irq, ret);
> +        }
> +    }
> +#endif
> +
>      if ( d->arch.vgic.handler )
>          d->arch.vgic.handler->domain_free(d);
>      xfree(d->arch.vgic.shared_irqs);
> +#ifdef CONFIG_GICV3_ESPI
> +    xfree(d->arch.vgic.ext_shared_irqs);
> +#endif
>      xfree(d->arch.vgic.pending_irqs);
>      xfree(d->arch.vgic.allocated_irqs);
>  }
> @@ -331,6 +528,8 @@ void arch_move_irqs(struct vcpu *v)
>          if ( v_target =3D=3D v && !test_bit(GIC_IRQ_GUEST_MIGRATING, &p-=
>status) )
>              irq_set_affinity(p->desc, cpu_mask);
>      }
> +
> +    arch_move_espis(v);
>  }
> =20
>  void vgic_disable_irqs(struct vcpu *v, uint32_t r, unsigned int n)
> @@ -538,6 +737,8 @@ struct pending_irq *irq_to_pending(struct vcpu *v, un=
signed int irq)
>          n =3D &v->arch.vgic.pending_irqs[irq];
>      else if ( is_lpi(irq) )
>          n =3D v->domain->arch.vgic.handler->lpi_to_pending(v->domain, ir=
q);
> +    else if ( is_espi(irq) )
> +        n =3D espi_to_pending(v->domain, irq);
>      else
>          n =3D &v->domain->arch.vgic.pending_irqs[irq - 32];
>      return n;
> @@ -547,6 +748,9 @@ struct pending_irq *spi_to_pending(struct domain *d, =
unsigned int irq)
>  {
>      ASSERT(irq >=3D NR_LOCAL_IRQS);
> =20
> +    if ( is_espi(irq) )
> +        return espi_to_pending(d, irq);
> +
>      return &d->arch.vgic.pending_irqs[irq - 32];
>  }
> =20
> @@ -668,6 +872,9 @@ bool vgic_reserve_virq(struct domain *d, unsigned int=
 virq)
>      if ( !vgic_is_valid_line(d, virq) )
>          return false;
> =20
> +    if ( is_espi(virq) )
> +        return vgic_reserve_espi_virq(d, virq);
> +
>      return !test_and_set_bit(virq, d->arch.vgic.allocated_irqs);
>  }
> =20
> @@ -685,7 +892,7 @@ int vgic_allocate_virq(struct domain *d, bool spi)
>      else
>      {
>          first =3D 32;
> -        end =3D vgic_num_irqs(d);
> +        end =3D vgic_num_alloc_irqs(d);
>      }
> =20
>      /*

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 23:03:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 23:03:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097114.1451566 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urPB8-0003pW-OV; Wed, 27 Aug 2025 23:03:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097114.1451566; Wed, 27 Aug 2025 23:03: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 1urPB8-0003pP-LZ; Wed, 27 Aug 2025 23:03:42 +0000
Received: by outflank-mailman (input) for mailman id 1097114;
 Wed, 27 Aug 2025 23:03:41 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=QSw+=3H=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1urPB7-0003pH-Be
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 23:03:41 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 120e70de-839a-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 01:03:40 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by AM0PR03MB6324.eurprd03.prod.outlook.com
 (2603:10a6:20b:153::17) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.13; Wed, 27 Aug
 2025 23:03:38 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9073.016; Wed, 27 Aug 2025
 23:03: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>
X-Inumbo-ID: 120e70de-839a-11f0-aeb2-fb57b961d000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=peduJ9WTSu7E+j7iCSxL49JBlP08f1gjaH5MGl5wIPualGeA6iid8c7tW3oNPa5C99f/QSS5fDoEDdtiZRciZmqTaRowQtaR70mHXXUokcTLhDuWn55/XYQcb55DfgyIr3jwlMvwKbph7Tv0UJCx93ycVivuJzqQUdlsvBGpgJYnFwc0tQVNZqBNJXTcLNid4DX8kH0E6KZG/sqZs+KdFmv9+c4Lzn2VvkGMEZl52rlHwvqHgc2kR3codCL70T5R9mlcmK8yIao8ylo6tjyk6ivXSxMppdtcx2yR2VG/qwQqgZwFvmnnfBcgOQx694mkoWrJe0LvJkSBrSJCzpsNtQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=3UHPlJstLob0MZydGFoOrkN1Cbo8Lqz20NSSeNYS/e0=;
 b=Z1Lk4ZGpZBRwp3SEXWwhZtrAPwmfHF6EtZmCaZUL0YsXaFCGIcqCrA/wertmC+/gzG+FRX2r3ZS4ojS6I+ky6FQUlkm6QmfGGg4huucONk0Lvb9r2f8UoaS6shVgAs1addVPKf+i9FiwkI4mTqxvAyo6pEZOend/r+1AIh7hmFrhBi8Bhr6mYXVUDzqGQl4Ndrq1/nKLXguXAc97i3p+W9m0eEdST+CCTKFMi1W4iM2JYIXPQgajs5UsXdkFACub1OQr2kHW/0anYzqBSczV+B092fDVyOckO5y/4lsrdABDMME9f0aEZ5OQsoynEjvEurJTvuKrWKMgpVStDq3EcQ==
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=3UHPlJstLob0MZydGFoOrkN1Cbo8Lqz20NSSeNYS/e0=;
 b=hpo4QzAXPL0vlFC76Ei54pKrAGOdMGqKEpLmGqdnX6Dzr3eYO58IWdSiDZnziaTK5ysgetwYRPvntkX3hnymAgzO/pZmIUPbg3xq47fEhS/G6PYbE1Ub3b2QoxRj1p0fAIxPQt9kJIpCEX5NhcGa9M1KE2tKZFe4qRuiBDpz8lIK6jPH9vx8HU87GjSipjmjC/XwN4jIHPIrfgeGbfXCHoAUYeRHcijGVU9VKkJsbmus54K4lP+LyUg/n6hKZwI184qAGa06KI4lrLbZumwhzl4Sac0sXKkt9Mln+7zqVDQIn89ED3BjT6HKhKpH98D7MUjz6iksUR1qTZ9OZm31mw==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"olekstysh@gmail.com" <olekstysh@gmail.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v4 09/12] xen/arm: domain_build/dom0less-build: adjust
 domains config to support eSPIs
Thread-Topic: [PATCH v4 09/12] xen/arm: domain_build/dom0less-build: adjust
 domains config to support eSPIs
Thread-Index: AQHcF3/PBFIJhCUS+Eih9nfOZZJmpg==
Date: Wed, 27 Aug 2025 23:03:37 +0000
Message-ID: <877byo1i5y.fsf@epam.com>
References: <cover.1756317702.git.leonid_komarianskyi@epam.com>
	<66b39c4ba25e7a19beeca62ab23f5d3ab3cbae52.1756317702.git.leonid_komarianskyi@epam.com>
In-Reply-To:
 <66b39c4ba25e7a19beeca62ab23f5d3ab3cbae52.1756317702.git.leonid_komarianskyi@epam.com>
	(Leonid Komarianskyi's message of "Wed, 27 Aug 2025 18:24:21 +0000")
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_|AM0PR03MB6324:EE_
x-ms-office365-filtering-correlation-id: 22435f30-d8fb-4a26-37d4-08dde5bdf518
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|366016|42112799006|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?HYNSpUJCKzU1a/Jx5OQkuDcfYdofsipbtUYoeSHmcjVym2DKZa9rIVrLnY?=
 =?iso-8859-1?Q?CS18kryB8xCORVQnezbQiiJo4C1UfxKwGyk4oN3N2C967bEz3p7TIjmQbB?=
 =?iso-8859-1?Q?s0z8zP35+fk+BNeNaYNxhqExL38fYLWIELjpksJaOAy/0KtPTXQGu3qzmo?=
 =?iso-8859-1?Q?dzVbRMwcYGBWtADx6F7Y+9BkIt8L/fsB/SzlUAO1ExGAQDo8FjA+4aRObT?=
 =?iso-8859-1?Q?nAZY5qIX8M8PJTRjh+ABGJDBaRQGTuNPxvXhdp+c/6upKdxwCT9CAdvPly?=
 =?iso-8859-1?Q?hB3EhT00F2Pr4aETEqOyrCpN4ix9/X/6Ltt1tdweGJyZoB7CESyh9TkJcM?=
 =?iso-8859-1?Q?IJMp9kxGM646M26ubrnNYT5QxmLGM/OMGgbZRwU5iudVmCZ5CZB3ZO05m9?=
 =?iso-8859-1?Q?5qqI+JS+8wlSGlmU4B1LGYapRi5fUQafIJ6QV0rytUfzl8PsWPZAzkFaDU?=
 =?iso-8859-1?Q?/fpmUBciOR965I3NSGD/PSdSlRfifVyu+0ycZZ0PuCDwBKd45KrOW74xuS?=
 =?iso-8859-1?Q?/GTyF93D8KfwysDv4p+vA1w+K1ZJDhOqhkU2XHtOTy1Mg2Im2SfYT+0CSm?=
 =?iso-8859-1?Q?lSt+PetAqvZ48TkONikO+/fo0i80+l/YuQ+Apslvo9MYX+zCLUGqE7fn9a?=
 =?iso-8859-1?Q?Ykvfum3tR3Es+wxurTR2B+wzaw6MqEpwLxGS3dzUq7jjrbFWV/DGijqT6w?=
 =?iso-8859-1?Q?P72z0RXV3KeqlSXXDzDZ1mTuBJHFLgirTfqmNJOoOp/Ys/ct1mpS49/Ifi?=
 =?iso-8859-1?Q?gHhQ6Wi7DZb3kK0K6BKuKK5i1JoWZ4QF+1OFGNlYUwDJlbQmlaIoGdTnSf?=
 =?iso-8859-1?Q?FusdEg5bGfbRFjfOyib+w9QuEO4iUPeLyhsOIzFlg63NMIGvFXJxxIIBPm?=
 =?iso-8859-1?Q?YLpRMq1sdTK3H6yZrr2ovOWHymsl73bzDPiFdYim3YQuCTRHFkrU7EXKuE?=
 =?iso-8859-1?Q?aBLfwrELX9VT4zqznnTiFjSE7tlpsiCWvnHiaStRKAXqoLLQj9TVEPahYQ?=
 =?iso-8859-1?Q?0eYWH6HV6yH12OEvzzWeku3eMFfRbRy9mItkb5vCSxFGDC1cgB/xfX7h04?=
 =?iso-8859-1?Q?rViJnXuwPOZlRxOFQCNLQ718AohaeWcI7t2qN/SCeOUuj5JUDJXXCNtBz1?=
 =?iso-8859-1?Q?/HGlp/n1yxFXFni3wi/RdicdJ5bJtWIsXtrw7kPBgSmhj2vSwZECHkqEy0?=
 =?iso-8859-1?Q?YwpscUXulGWf8Yn/sGXdv0WHHBDdt0CHot7B+mkVRd0qvS4Wy2T0a52g3l?=
 =?iso-8859-1?Q?llBXrnELeIv9vcYwPS4ZoVIZ1GRhj9XO0MU44ZukMixgP6S2fyH/F8P6BK?=
 =?iso-8859-1?Q?SCz3bx8daneCxQTpluwMyWFIWqeaVOr3OXSVzwGiUgURDX8yBQIZ03F7Ob?=
 =?iso-8859-1?Q?aDP0a++NkbIjiSAQwvZ8ou57DCDTlmHPqqobBOdsRxbEaxqojmrfnqYo4h?=
 =?iso-8859-1?Q?PAHKf9fqKN+Ipyy6JrhR5zte95qLQdGm16G/EgPSCFx4mYBWXTZO7URFqv?=
 =?iso-8859-1?Q?Iwo2XGOwzsMksyQDkSF+r9QRkKOagToakdkYNEFJyynA=3D=3D?=
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)(42112799006)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?Nbyb7jNYc0kLyf+pbiOpqQyZlxcsMbW14SfCSUtbB5lntz1IYabxcPN2Kj?=
 =?iso-8859-1?Q?oj+ee8IzZA+AZ243loPxfBkeH3Z8gPBZ4FGeZ7qbSDA5cY+vERam7PdIvC?=
 =?iso-8859-1?Q?p2egDrb5r2LGQ1M0ZiLz8rM+1+hAJWdDtzbwgXURrwmJ/EoW+AJRGBvJoH?=
 =?iso-8859-1?Q?4uX2AdsLqcA3VSseV+B1Vlx8DKOvECM3JptxmRGDahXmUJfot69olgfSR7?=
 =?iso-8859-1?Q?4sMoiT+l6ePWShkS3eqDib5xNxxmqvuD54OtKsHfTlyge49ruBkfzpQ8sC?=
 =?iso-8859-1?Q?KJMW4tVof6FUa0mDmwRPG3c85Wv0r2AOT6bZOZaqoCrl9tHkOLvnf245Hm?=
 =?iso-8859-1?Q?ly+aZ8cU+RW1hev2Qo5vLhhbfav49eMhtS+3IzZAyCJG+M7V/M2NtGDG+1?=
 =?iso-8859-1?Q?DmKTCHJ1wkjO/47Z97p8cLhwOkphJ/kHeGsxBktNQw+cd5HndzLy4L3Awi?=
 =?iso-8859-1?Q?GOWYG2tfg8SNFMzXVnWJNMV9hdE5njTHqCW+YMaxTcZoP/mXMUdPGkQb4C?=
 =?iso-8859-1?Q?z1F9e9fW/luKYNPviq1rmwtu1jpR6NHFZmgabzgzhvmXrRMeToRUNnnZuC?=
 =?iso-8859-1?Q?/zMGux3xC1W2KerARgWrw1tkb1CjdnXP/w64rnk8L0kbqy+g/MlgFhprYa?=
 =?iso-8859-1?Q?DyHT/gPYxXB5UjLNK6c68EvpFNQhHLnhWCfxom48voiwjDMQZ9HR8In3tc?=
 =?iso-8859-1?Q?Nox0jhSsEmnvZeWvMKe5tFOqIyImSgRvFKhocTEwn3mjF10kBqtixa6whf?=
 =?iso-8859-1?Q?q953D51LmFE9qEUMLT3SUwFyiU6z+2pvRiR5XujpDFN1TR71eOZdEMIRwv?=
 =?iso-8859-1?Q?yk1fodZO3LbF9QoA1aCZ8ja5O5HWgGsSMliAx0YSbfNObHfV0Va1xy+kBy?=
 =?iso-8859-1?Q?7LNNYAHdFoi2QS7C69Bxg7SEUhYWivAlBxVmtuuaBheQEifb6jbG6PHpJg?=
 =?iso-8859-1?Q?AVXaE0MnQBZOPiwL/ftVt9hIOGVQ8tW2SqF2wqnfDNRTQEFDza2S5Q9hQY?=
 =?iso-8859-1?Q?Ll5FvftQ4MjncvHtv/he4OhBHrlUAyQvwm1n24F36JnByDSmg+hG00vEuH?=
 =?iso-8859-1?Q?adkzezDwaUWDhIwkzaXEkd3wZrKQtzFy0nKU8rJ0zk8uBOGrF0kbhTTKhe?=
 =?iso-8859-1?Q?9cpz3F/XahMqVDCgMhxbSn5K0beGNYNuE3KeJLUOAAG9LN4fUb24FFg95b?=
 =?iso-8859-1?Q?3imrU+zktL4Zq8OAF1JwoJivkKAAJ70jurBGxpJn4ud8gebTHQ8MVI8y0p?=
 =?iso-8859-1?Q?oeq4IM/oOr7EplSLn1dWyqd72MUbTg5mT758QwFA70yk87M4c+9sbNaRMJ?=
 =?iso-8859-1?Q?wB7pk5sGn63cjZbxicCxYKtBOG0xS67tykAPnSYyTCHqifpCAHppS/InKJ?=
 =?iso-8859-1?Q?1bQN8BrZoGAGdaDMtZTctNyCtIMnUMgJR7Is66ssINrsmGWIrt0EwqKYCu?=
 =?iso-8859-1?Q?KcPrcWM+ZoFjrN5gWEPYF/z4Za9WIkZFvWxTR/w1DqSCDPSt8XaAcTbvjH?=
 =?iso-8859-1?Q?tKCyWWXa88/wLlQjO+0YlEHCZi0TIYv+qAvZSsQHh0bYgbJuxmYUNIYiLx?=
 =?iso-8859-1?Q?edFdV93CUybnYBMXLJ73v3BrldN0xP4lk3bnkJcwpBYf+wRqEFbQiSr4Gi?=
 =?iso-8859-1?Q?GZ01F0h9DXdpntasq+nc3caiHkyW4DfqFw9dLHlpF0rjUy2zX2aFlw6Q?=
 =?iso-8859-1?Q?=3D=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: 22435f30-d8fb-4a26-37d4-08dde5bdf518
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Aug 2025 23:03:37.9933
 (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: ovdffDZdCFrMEV8Ow9IZ7IUmQhZIBoluhcdJxDxU59dbvOvt79tI9GpKc+mxTMOjS7Qz+fO956xLhhJz3GFOKp0ZrAEsWNGOZHoi2XAo634=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB6324

Hi Loenid,

Leonid Komarianskyi <Leonid_Komarianskyi@epam.com> writes:

> The Dom0 and DomUs logic for the dom0less configuration in create_dom0() =
and
> arch_create_domUs() has been updated to account for extended SPIs when
> supported by the hardware and enabled with CONFIG_GICV3_ESPI. These chang=
es
> ensure the proper calculation of the maximum number of SPIs and eSPIs ava=
ilable
> to Dom0 and DomUs in dom0less setups.
>
> When eSPIs are supported by the hardware and CONFIG_GICV3_ESPI is enabled=
, the
> maximum number of eSPI interrupts is calculated using the ESPI_BASE_INTID
> offset (4096) and is limited to 1024, with 32 IRQs subtracted. To ensure
> compatibility with non-Dom0 domains, this adjustment is applied by the
> toolstack during domain creation, while for Dom0 or DomUs in Dom0, it is
> handled directly during VGIC initialization. If eSPIs are not supported, =
the
> calculation defaults to using the standard SPI range, with a maximum valu=
e of
> 992 interrupt lines, as it works currently.
>
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>

Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

>
> ---
> Changes in V4:
> - consolidated the eSPI and SPI logic into a new inline function,
>   vgic_def_nr_spis. Without eSPI support (either due to config being
>   disabled or hardware not supporting it), it will return the regular SPI
>   range, as it works currently. There are no functional changes compared
>   with the previous patch version
> - removed VGIC_DEF_MAX_SPI macro, to reduce the number of ifdefs
>
> Changes in V3:
> - renamed macro VGIC_DEF_NR_ESPIS to more appropriate VGIC_DEF_MAX_SPI
> - added eSPI initialization for dom0less setups
> - fixed comment with mentions about dom0less builds
> - fixed formatting for lines with more than 80 symbols
> - updated commit message
>
> Changes in V2:
> - no changes
> ---
>  xen/arch/arm/dom0less-build.c   |  2 +-
>  xen/arch/arm/domain_build.c     |  2 +-
>  xen/arch/arm/include/asm/vgic.h | 21 +++++++++++++++++++++
>  3 files changed, 23 insertions(+), 2 deletions(-)
>
> diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.=
c
> index 69b9ea22ce..02d5559102 100644
> --- a/xen/arch/arm/dom0less-build.c
> +++ b/xen/arch/arm/dom0less-build.c
> @@ -285,7 +285,7 @@ void __init arch_create_domUs(struct dt_device_node *=
node,
>      {
>          int vpl011_virq =3D GUEST_VPL011_SPI;
> =20
> -        d_cfg->arch.nr_spis =3D VGIC_DEF_NR_SPIS;
> +        d_cfg->arch.nr_spis =3D vgic_def_nr_spis();
> =20
>          /*
>           * The VPL011 virq is GUEST_VPL011_SPI, unless direct-map is
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index d91a71acfd..39eea0be00 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -2054,7 +2054,7 @@ void __init create_dom0(void)
> =20
>      /* The vGIC for DOM0 is exactly emulating the hardware GIC */
>      dom0_cfg.arch.gic_version =3D XEN_DOMCTL_CONFIG_GIC_NATIVE;
> -    dom0_cfg.arch.nr_spis =3D VGIC_DEF_NR_SPIS;
> +    dom0_cfg.arch.nr_spis =3D vgic_def_nr_spis();
>      dom0_cfg.arch.tee_type =3D tee_get_type();
>      dom0_cfg.max_vcpus =3D dom0_max_vcpus();
> =20
> diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/v=
gic.h
> index fb4cea73eb..11f9d216eb 100644
> --- a/xen/arch/arm/include/asm/vgic.h
> +++ b/xen/arch/arm/include/asm/vgic.h
> @@ -355,6 +355,27 @@ extern void vgic_check_inflight_irqs_pending(struct =
vcpu *v,
>  /* Default number of vGIC SPIs. 32 are substracted to cover local IRQs. =
*/
>  #define VGIC_DEF_NR_SPIS (min(gic_number_lines(), VGIC_MAX_IRQS) - 32)
> =20
> +static inline unsigned int vgic_def_nr_spis(void)
> +{
> +#ifdef CONFIG_GICV3_ESPI
> +    /*
> +     * Check if the hardware supports extended SPIs (even if the appropr=
iate
> +     * config is set). If not, the common SPI range will be used. Otherw=
ise
> +     * returns the maximum eSPI INTID, supported by HW GIC, subtracted b=
y 32.
> +     * For non-Dom0 domains, the toolstack or arch_create_domUs function
> +     * applies the same adjustment to cover local IRQs (please, see comm=
ent
> +     * for macro that is used for regular SPIs - VGIC_DEF_NR_SPIS). We w=
ill
> +     * add back this value during VGIC initialization. This ensures cons=
istent
> +     * handling for Dom0 and other domains. For the regular SPI range in=
terrupts
> +     * in this case, the maximum value of VGIC_DEF_NR_SPIS will be used.
> +     */
> +    if ( gic_number_espis() > 0 )
> +        return ESPI_BASE_INTID + min(gic_number_espis(), 1024U) - 32;
> +#endif
> +
> +    return VGIC_DEF_NR_SPIS;
> +}
> +
>  extern bool vgic_is_valid_line(struct domain *d, unsigned int virq);
> =20
>  static inline bool vgic_is_spi(struct domain *d, unsigned int virq)

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 23:20:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 23:20:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097125.1451576 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urPR7-0006hD-1z; Wed, 27 Aug 2025 23:20:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097125.1451576; Wed, 27 Aug 2025 23:20:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urPR6-0006h6-VE; Wed, 27 Aug 2025 23:20:12 +0000
Received: by outflank-mailman (input) for mailman id 1097125;
 Wed, 27 Aug 2025 23:20:11 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=QSw+=3H=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1urPR5-0006gh-DG
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 23:20:11 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5fd45553-839c-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 01:20:09 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by GV2PR03MB9548.eurprd03.prod.outlook.com
 (2603:10a6:150:da::8) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Wed, 27 Aug
 2025 23:20:04 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9073.016; Wed, 27 Aug 2025
 23:20: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>
X-Inumbo-ID: 5fd45553-839c-11f0-aeb2-fb57b961d000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Fiu6NdorCobLyuWDu7GF0IO0rDCBg6WM1nOsbXrAbrcnar5f6QS0gkR9g5bLCgMoTnnsS3P3gnqIOMaWmMpUTURUtfHER6Ov0TYjPQxaGmRRXICDoR8GxhVWLCGxVfzeJ/8R74X7GpGsaJLJPdu19Rt7uPRl77otBFO76gjQfNG5Ujx1yctIat8AemzyDGKekwybJdfTQp/M2C3g1SFyRLFC3dDf1Bz2c12eN/ue2sG3fqeBy4Y501BMpj5PK9jhXv1cmnIMReTqLE6AmydtmA7XuS7pmLx1hDylXDGlyZ3Rb7m9+29s/KZsZo3859pleB9EXc5GuFATwjfJ3FmUsg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=CNUd878vEBAh3MyxstrYrmEdvXxxtBuPcqoIcDkdPOE=;
 b=KFEqQvCtHDcSnABElloIuyefH/KhsUwbbM4jtHrXks+lhdqQrzJzn0SMvhsA6DzSj+je/cn79WnheWIqmyKYuQzCrdhfHwENG0LMuG04nNHjvrRqH4XDjhMvu6jTZmanPnAR9bHC6ghE9205a3sRH6/whtzSpn5jOjZm9p6erfAkoIO79YtQItLMu31C4IGSZ2cKEoBBkMy1Ix5UDDrkJycxzgJBtaFuJ9aueLyuJuS3GjF48WBHq3ShIQYURHA52kQWIIlt09LXXz7lWszBLoXddbhqeE0rpHi0nV4JHlaTx/EGVT9FBURhrh1U8f1wEyJala1FO1Lcffe2q65yhA==
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=CNUd878vEBAh3MyxstrYrmEdvXxxtBuPcqoIcDkdPOE=;
 b=Wh5J72+LamY3dj/qNIFwMaiQ0hw/deils3jVhGwY4WBrz1HbON2X46+0m8+PQMMcehaIXweEQLyBrpWAPGZ0GPSBcrMwZvl8l0wKZOpeVBe/j8KNTVuuG+cOhi2FQ9ivEr94xOESCd9Lap1LvIXuJ1WdclVPiOKgv9W3eQTk/Cb9Fw7JKv3mory3+0gaFeiGTT/VGWqRFq5jCP7qTbtMlkvVKL//tJKNF6aMUqeoq3RksXtMi8dqnRQ7X9YIfR0rfkslZ2sRf+4qfoX7ovdCwozMZXA1+JaNwVtwO4mAxUThEOl0OE7WAab1LQK4Jh4jbDoNivPPdSxrUjlwPjFJyA==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"olekstysh@gmail.com" <olekstysh@gmail.com>, Anthony PERARD
	<anthony.perard@vates.tech>
Subject: Re: [PATCH v4 11/12] doc/man: update description for nr_spis with
 eSPI
Thread-Topic: [PATCH v4 11/12] doc/man: update description for nr_spis with
 eSPI
Thread-Index: AQHcF4DXobE1p0eyakyyCN/Uk7KDQg==
Date: Wed, 27 Aug 2025 23:20:04 +0000
Message-ID: <87y0r4z717.fsf@epam.com>
References: <cover.1756317702.git.leonid_komarianskyi@epam.com>
	<50cd1899b328e82bd517ae0dd0e400e9cfee0999.1756317702.git.leonid_komarianskyi@epam.com>
In-Reply-To:
 <50cd1899b328e82bd517ae0dd0e400e9cfee0999.1756317702.git.leonid_komarianskyi@epam.com>
	(Leonid Komarianskyi's message of "Wed, 27 Aug 2025 18:24:24 +0000")
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_|GV2PR03MB9548:EE_
x-ms-office365-filtering-correlation-id: e6a1e2e4-84a8-4af5-e4cd-08dde5c04134
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|42112799006|376014|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?7LMBHB/xlzgdMvJcnIVyVUNwt64oKhNrUL9PBkeqxTQZc3AoaKKLoljA4u?=
 =?iso-8859-1?Q?CcVggDgprnBIZp8e6GorP5ZMeypI4wCRcEcYpVPFizaluH4BXw6yIvgBm7?=
 =?iso-8859-1?Q?pJcl5btI8YBU/4GNo+ki0cGPZgjy1hlJOYvU/UWw62+P+8dslxEMLq9cHR?=
 =?iso-8859-1?Q?oz4eYj3QjFDB5rHBT/73NU5BWrW9VK7frV0RISaZ+3H3N1W9Rq+YTLDr3a?=
 =?iso-8859-1?Q?zF3mQbmxezb9ba6UMEbh0z7piue2ORBh6UKs37XcvhQ/tPXorauXHDcGlD?=
 =?iso-8859-1?Q?W+9bft2PhddtOeR946IbGKmd03NTqWPQt/7LYe2i4iTBAo97BHXvSqFGqw?=
 =?iso-8859-1?Q?kTvoFl248e9x6DIwqUgFVRiUX7UtwQeU2hL16LFwuvGfnEeMggHv4+3qTP?=
 =?iso-8859-1?Q?bdI9q8u3QmGN9AHrRh3U5ubwrTT10iIwYEgiQCx1xmqcegV4pfj+R0h8xV?=
 =?iso-8859-1?Q?4+1LuqOVvj53P9UWdWqwVvf4H/u/1ICeM1fItHDi8av0HrOzxfGbH6bKS3?=
 =?iso-8859-1?Q?T+jhWiVPWykOQ7tcB1MU2YNA5J8+t8UTX5WjGdTyu1rTrEMnq7iGCIKwe8?=
 =?iso-8859-1?Q?DcF7nVCDpzIVFaTcC0W5QQ8iezSCkFwSQaFsEVTJYYmY88bGJIV2oqZVI6?=
 =?iso-8859-1?Q?O8I1dsxHXTJ5qkPYMxB6HHs5bYHRfEaLqnN+CFlWaNH2gW/gisLPio6emW?=
 =?iso-8859-1?Q?sH4p5Nlp1L+oiEK+y6Pjd2OCj1ilmGu8FnbD6wDginmhjauOuk6/EKK1uB?=
 =?iso-8859-1?Q?zh3BV2tiWmfVh8v/0KD61fbBTwB4WZ7IcaC5pU86xfO3Oj8HarfutOxR1n?=
 =?iso-8859-1?Q?scvePEefHHDmwiB/epL2cZowswR29C3VRNok6LZNcPMGYOyKerM5G+DOfk?=
 =?iso-8859-1?Q?TAZeEe4MJ7ptO3nrP8y+UWrpWLv7jVP4aOAZzPQ0SY5Jlr4oYHPW0PC3FO?=
 =?iso-8859-1?Q?IOxtB6uJl6dKiLex3yKECr6DiNlL0MJbawgFk4kY7P/eX3FBhLRnmSjoGE?=
 =?iso-8859-1?Q?tap5+vbRvIVtcq/5j+Pdl/atdj/5DI4rlCeRoswNim2TiXdr3dn0fuP4xA?=
 =?iso-8859-1?Q?5K1udMTzWynQ4fSeO3m1izmBY4JobNYyv2ObzLcqlp8W8B3FKxojR8HOhP?=
 =?iso-8859-1?Q?prefLT8RPnWTxtQCRS3zscn7A0R3y0se/1l+smV7VYxLhZv12f6FrYhzmN?=
 =?iso-8859-1?Q?w5sBQ1zKBwVki9XRUi9gxInphmgnBCLqYsk/8ISOL11txarwulI2tC03xJ?=
 =?iso-8859-1?Q?mDGA94v+a9sY0IMpuYKoscSg/VJC9O7bp0+uQ15tg8ynXvSJmpIyFgc5qy?=
 =?iso-8859-1?Q?BEX+CXOb7Jr87TAeT1TwUnRUJ6CLUmQAGJoFaome8/ikaNiXzlG9B/qKAc?=
 =?iso-8859-1?Q?3GsqDUPYxG87TKEIEOCgKoEUKKIXwLw4vyjvX4ZMUy6ta9tiHUWyYKnPIu?=
 =?iso-8859-1?Q?SguyEDdbhZnu8fnFMgegeFsO+24bBtkzBOIfIhJJhD7raRgGx5WzM+BtfZ?=
 =?iso-8859-1?Q?GQfCKwIHJyLvLbW99vNQM6fFgHwaCOo8f0UDHIhDQIanD3IsBhUf2PxEm3?=
 =?iso-8859-1?Q?3HjGzDw=3D?=
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)(42112799006)(376014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?4ieA/psapHkmasNBseBKlILUolFT+PzYxWbOEtGpKFyUWPYcrjMdX3Eknr?=
 =?iso-8859-1?Q?3tV+370J8mB5et+xyeoSvLJ3/Lw+4SOmlfqsMWaN9d4ce5xhsyokT5aTMe?=
 =?iso-8859-1?Q?z6BYzcbw25OAvVmacQw76MTodva4piRGsqA0PJQTQ1rrWClD2mC2jzh/1m?=
 =?iso-8859-1?Q?p8Cr3LnHoir/6ORtTuX4bfeH9kZqTDjst2qeQrRO5IsyUJyDa0hZAQ7wKq?=
 =?iso-8859-1?Q?CpEX4bgju7Rc8nzMlugFxSkDxoVcps+BMQfkzX9PucnwJ7q92drutTlMQS?=
 =?iso-8859-1?Q?JWmeF/nF3UL78E2s5B8uSYLeWXSIAgbMJ7iCaBK2QCbAZX0fOPSnOfQNPd?=
 =?iso-8859-1?Q?TbA4hLR6OQWC9KGM3qvMiZzsV2E5BTK9AbIwOxX99mh0OUmHSzM8yiG9nx?=
 =?iso-8859-1?Q?TGylPLAEN6irxhK7kJkR3hLFd3oiVX0k8lQL+630lOeqPmdppjWLSf3f/u?=
 =?iso-8859-1?Q?U14EtxYezrB8czk7/3Pub14+8NxALyp0SEw8bBQ4vK3Xg/OCp1So1Wkbvx?=
 =?iso-8859-1?Q?F0W898ONyFc9swSkCmmNjvDsyPmWgDNX/ftHLw7fHeMh8kz7kCxoyclx45?=
 =?iso-8859-1?Q?dOiCUrOs7xpXn+VsvJzXdwOTi0C6D5hS6qvaLYUDyGVSHLcOFCBeCiEU69?=
 =?iso-8859-1?Q?UowBiSVAAM9UOJmpnEr7qDbPGABSZbJr4slxxf7seFkqzZMf4po4j2b9rx?=
 =?iso-8859-1?Q?CK7wPhupOJY1i1yn82QtlXB5KHk+T82nHjn0ItEpd0f8GQ1rLC8wC3vpwg?=
 =?iso-8859-1?Q?aXzZ4jd4MiZfYniPtKm0VZoXMoLQWaVVVt9Eu6To8oNFlPoqLkcm9GcBQH?=
 =?iso-8859-1?Q?u8j7qRKSAlYsXjkOh7zTjXVHMnkCKlXB0pr9DQMBD5CLU97ssPShk9LqVK?=
 =?iso-8859-1?Q?XXgW5JYJX6naQkcOMsqyDQo5JOtWSenIBlDAZJbDjKS0JmlI2Id2ie+/sI?=
 =?iso-8859-1?Q?TUJs/PPLrBUxkQ+MTDlWRLRHM/4IQlfByQ5vcXh00C5boaD8EYwlCjcMdy?=
 =?iso-8859-1?Q?LDvJlzx7lRaxtHdTk9cadvYIbKhMkQVv/37qhDF4JtrtuSFX0vhlLUetn4?=
 =?iso-8859-1?Q?9D2v46Zn6aSrb47hOkiABTWJwpBJjGbFkcaXpdN4727CGCUzIwPBuPeTaK?=
 =?iso-8859-1?Q?hGX/glR+E7Fb1a3bq86m2AT6Sbmuco0KU63aRC3YmRX+nY54wh2SI7i7Ne?=
 =?iso-8859-1?Q?xwOcHQRs+fYmUYckUOC5iN4eRT6HGg3RHEHBOYdJFwD+1v5Z3caPlVH9/m?=
 =?iso-8859-1?Q?WT11qF02wE89YCiO0lFNB5DwYpMD3pfPvCQAAx8BX5IhdKAuNafk+hfOnB?=
 =?iso-8859-1?Q?kgvs5gvwzLWPLjiDit63gTb/beAZaSaAFcuOE1uxbw1PcFiADcUlewLqQD?=
 =?iso-8859-1?Q?gTX22yUP4n/8f1TrDGDWQFHwFLw3+9ikyY1c9j0Jvuhf3VE3jiD5UJUbj8?=
 =?iso-8859-1?Q?cTbGW1HNpgvwhhSFCfiqb2r3r1tN5tRwFxbvQ931ApjvwbXzll4jYsSTPi?=
 =?iso-8859-1?Q?60NCJpqssxihaU4QSg6Sa4n1IqmWm+z3XQQK89pVsqVLk/WYraQbtreE5s?=
 =?iso-8859-1?Q?eCl4HBT6uRKKnOxe7GdTwHbBIx3rJPS47HoGvcsJILs2tv10SoL+uU8QMx?=
 =?iso-8859-1?Q?dBjsW/7V06JUSgzbaaUm2m3++kA3tUCIZFoVDbtvPqB9/7avXR0IpC7Q?=
 =?iso-8859-1?Q?=3D=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: e6a1e2e4-84a8-4af5-e4cd-08dde5c04134
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Aug 2025 23:20:04.6693
 (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: JNEkbhi4SdmyDycEvhE6EQ2wc1+ON2wXEazn+mvDKs5jBOFhWVbp+NyfxWdlE3Mjluz5ZZ9ZsJDECuFB0j36il+buxJiXqoB+1Vb4Ja6KY0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR03MB9548

Hi Leonid,

Leonid Komarianskyi <Leonid_Komarianskyi@epam.com> writes:

> Since eSPI support has been introduced, update the documentation with
> the appropriate description.
>
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
>
> ---
> Changes in V4:
> - introduced this patch
> ---
>  docs/man/xl.cfg.5.pod.in | 13 ++++++++-----
>  1 file changed, 8 insertions(+), 5 deletions(-)
>
> diff --git a/docs/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.in
> index 5362fb0e9a..292ab10331 100644
> --- a/docs/man/xl.cfg.5.pod.in
> +++ b/docs/man/xl.cfg.5.pod.in
> @@ -3072,11 +3072,14 @@ interval of colors (such as "0-4").
>  =3Ditem B<nr_spis=3D"NR_SPIS">
> =20
>  An optional integer parameter specifying the number of SPIs (Shared
> -Peripheral Interrupts) to allocate for the domain. Max is 960 SPIs. If
> -the `nr_spis` parameter is not specified, the value calculated by the to=
olstack
> -will be used for the domain. Otherwise, the value specified by the `nr_s=
pis`
> -parameter will be used. The number of SPIs should match the highest inte=
rrupt
> -ID that will be assigned to the domain.
> +Peripheral Interrupts) to allocate for the domain. Max is 960 for regula=
r SPIs
> +or 5088 for eSPIs (Extended SPIs). The eSPIs includes an additional 1024=
 SPIs

Well, this is awkward and confusing now. You can't allocate 5088 SPIs,
because no GIC does not support this. Number of SPIs is
960 (regular SPIs) + 1024 (eSPIs) =3D 1984.

What you are describing is "max SPI number", but the parameter is called
"nr_spis". If we want to leave things consistent, we either need to
deprecate nr_spis in favor of max_spi_nr, or severely rework nr_spi
logic, so it can have values from 0 to 1984...

Personally, I'd prefer max_spi_nr approach, because it will be less
confusing for a user. I am curios what ARM maintainers think about this.


> +from the eSPI range (4096 to 5119) if the hardware supports extended SPI=
s
> +(GICv3.1+) and CONFIG_GICV3_ESPI is enabled. If the `nr_spis` parameter =
is not
> +specified, the value calculated by the toolstack will be used for the do=
main.
> +Otherwise, the value specified by the `nr_spis` parameter will be used. =
The
> +number of SPIs should match the highest interrupt ID that will be assign=
ed to
> +the domain.
> =20
>  =3Ditem B<trap_unmapped_accesses=3DBOOLEAN>

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Wed Aug 27 23:41:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 27 Aug 2025 23:41:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097135.1451586 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urPlS-0001Kx-Lm; Wed, 27 Aug 2025 23:41:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097135.1451586; Wed, 27 Aug 2025 23:41: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 1urPlS-0001Kq-JC; Wed, 27 Aug 2025 23:41:14 +0000
Received: by outflank-mailman (input) for mailman id 1097135;
 Wed, 27 Aug 2025 23:41:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=QSw+=3H=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1urPlQ-0001KK-9m
 for xen-devel@lists.xenproject.org; Wed, 27 Aug 2025 23:41:12 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4f4a7e77-839f-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 01:41:10 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by DB3PR0302MB8918.eurprd03.prod.outlook.com
 (2603:10a6:10:43b::9) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.16; Wed, 27 Aug
 2025 23:41:07 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9073.016; Wed, 27 Aug 2025
 23:41: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>
X-Inumbo-ID: 4f4a7e77-839f-11f0-aeb2-fb57b961d000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=CqEWEEP49BXn7pY4e7PVBn72Ng9O/9e7ccMuz2iKP8zNqs2McW3ySFajuhW8wUjQgolNNIG96Wt/K3Bi1LVlsYwPQQTk4fAGBwKKjxHA/gB5n1OimgdT/jabYW48/ld0+BYu6Q74juYRG8BggUHVRd5+FDdLrNlIKt2H8WDBd+mnaRdaRugkJq14ESc3oUdQhe6JaWyCVKL7DaBZxz6rN31+/AhMRp5Lan0bEOd9n0zghrWlRawipdQKbf3WZsFZAUy8/s9qEjF7jj/e4SMbRzb6He+KfKebW8sA07kCM4/cNcckJhydh4wf5NEP41pJWTnAdywlj+tRlzgQSL0G6g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7gBEZnD5C1vByDiypE+sd+GvYpRu4dkH6i00ftdkXMM=;
 b=Ph4N8fbm1RxF66P1Y+h6U7NcbcFCgwgH0m1bz3YOETv9TK9D5jKZxBBF2FbumvApBsUVx5JjozTKIXnpMr87r98t4r8kek09ndR4k+nNhsew3bxeZU8cCTpDaRVCaXHxGMWDUobYwxWCTcJHJ5LXDOYhmTiGgTR/3z5anl61X3m+Ouh5laVLVHXuYisvM/emk1hKv+0GPYJ+U0XVPl266jCO5SCrDjBY3NVgBPdRgELnXs1+gkEe3mlqdzef7+QObG1x9Q/RfgfBMuZXIC/+xTWcLclzCYtHPtgYwfcji2avO37qnAqktfA/4eVzOU1u+4pAO3V2A6XtU0KgCkPLSA==
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=7gBEZnD5C1vByDiypE+sd+GvYpRu4dkH6i00ftdkXMM=;
 b=a3+ce9jggRcMfRhZKmLLYwnVkmfc6BxkEUb8CZJHLysZW9iOVD3W1+Kza90JWyoJy4KOyktK+HdK1IbuQtNcqCF1CrnQCORg0HibRq5sPNdKzH9ISmcaX9Jusj9zL7YTLeugX30qN1BM5fvSGvmAl8bu8dE+NOGeOb1W/x2yCQbBm+2Ckf8e5i+7hzKIkdK/kVThDixOyYOIojOR5nrbiTYG5gv0CxmILv7NY5Tg8uzWXp9ssWFQe9EJoIqrgi+JwYHRGfj99blWaj7IQl9Qqhm+euXu/1Sggx5pOc2Vrthqa98mLbYgyANvpAeJEHorXnWrYDRlmKEGuMl8c4WIJw==
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>, 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 v10 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for
 guests
Thread-Topic: [PATCH v10 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for
 guests
Thread-Index: AQHcF5jU8coYEy0ljUKI31cktWj1qA==
Date: Wed, 27 Aug 2025 23:41:07 +0000
Message-ID: <87ms7kz625.fsf@epam.com>
References: <cover.1756329091.git.mykola_kvach@epam.com>
	<55ff99acd69f9eaf20f077e6b453b54931b541d4.1756329091.git.mykola_kvach@epam.com>
In-Reply-To:
 <55ff99acd69f9eaf20f077e6b453b54931b541d4.1756329091.git.mykola_kvach@epam.com>
	(Mykola Kvach's message of "Thu, 28 Aug 2025 00:21:33 +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_|DB3PR0302MB8918:EE_
x-ms-office365-filtering-correlation-id: 1a01d9f8-2070-491f-e276-08dde5c33211
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|7416014|376014|42112799006|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?NFkuDJAIG8AxF1RiSTVIxw4mRyU1zNkdqnojs16EtfA9qfC1dq+P2caapQ?=
 =?iso-8859-1?Q?ZD6SD4V+FgbekH51gDd8Q6y3uBTLBlYz1zi5F6YBo02t/C/DatVmqR8PJc?=
 =?iso-8859-1?Q?Wx1HKGrrKaAW09FfgiISD0Fim1dDNy5mWyYvvAr347XGkA0TiNTnwXlMT2?=
 =?iso-8859-1?Q?GhBAdVFUiK+i5foc45CzYWv0EBonaTvux9S811545nQ0DfH95cEkx4Wpzl?=
 =?iso-8859-1?Q?d8vkmYR4DKaHq62QrfpVxnxCE1+p7Wg8vzzhP1BAOW2MKrG7E7FgTFBAl+?=
 =?iso-8859-1?Q?6Rgp4CTK0XDc4ESw1fD4Q9EOu4xxJgfs0O79V3XX1oXzqc46wlHRgiXv5k?=
 =?iso-8859-1?Q?AfZ1jnTfWnSyR59d21fpD7k25YDBYv0dKmI8om3skKOBHC9hYLicQus7aE?=
 =?iso-8859-1?Q?F4lhQsEwy0xSUlVRqnVNp/AOf5WK7QHQwIfyZDtDsplt/rPSGm+kqJsXHs?=
 =?iso-8859-1?Q?PZ2u+xQfxxuGYH8M1stKsfgndlpZpX9dL1kV8ww9RTiWnlorl0zYL/8BTS?=
 =?iso-8859-1?Q?j2yhW0sRv/IYqpYD2V8LLOAdlO/ndqIrO9lyNiv3UHVMaHIKKvuM1YLvPY?=
 =?iso-8859-1?Q?H7o4yNEphjn298CQxBn3ZpKkZI2VBcL3pkmDwTaJUNl22c2/T5KibWwnHW?=
 =?iso-8859-1?Q?BjrFZySIa5F7izmlOod8CSeMxGrsZW3NsDMqktuV6j5+D4mv5Q6NMLR98P?=
 =?iso-8859-1?Q?Z+Xoel145Z473I0rfSI39zBZhu7epv/bB+fU2hjEtxXS5Kn47f+uY+srCI?=
 =?iso-8859-1?Q?bwEgfZcJlzyofgEMBx8hRmSVKKrDJrb2xdQhNklLzX4dc7EGCvdNycgf4I?=
 =?iso-8859-1?Q?/pWOAKN5/A1uSGxbTR8qdd0wfiJG16jICGMstv0FIfXZlYjwlY02xh/rGy?=
 =?iso-8859-1?Q?veya2eVKfLpkyroDAQRJsWXpEYA+F3zrfXRh0PBunsQ8hzAYw9+cxf2+9e?=
 =?iso-8859-1?Q?RS0z9jlJsmyocBpdv/EovXi9Jw6OJjSDid3SMWrmyPopBpuh+vUxNFhCtb?=
 =?iso-8859-1?Q?OKfDDmqGFbJJYXCIBX9Xt54frymK1ninj+EY9SJ2/J2cLmD5QJsgfz+Bs8?=
 =?iso-8859-1?Q?E7n29kuAm8UnQGkOj8SixUbftR7yPAvDSuKQVLk34gABy3sKvm5N0Bepvl?=
 =?iso-8859-1?Q?a7DBRQLWnXNRxQrcLKe2oyTRXanqkNwErnxCDTIzfkKrpnJQEulZNofg8K?=
 =?iso-8859-1?Q?cgD0EWSUDGmj2cdN3qcMEh06/tIe6C6j8g1bdnIoq4ab+kuoETayx3SdEx?=
 =?iso-8859-1?Q?45TrbcuxuTMhEv2lKYd0FF7T9hYwTsHJleKOMX8XSh29/HfBFe1hXFR/j4?=
 =?iso-8859-1?Q?OFtkwsAYeHq6s1wAFNLI/Iz3JPLFmgJdfM0N3BcqsoW8sIgpWcCoP0xzQg?=
 =?iso-8859-1?Q?E8AFmwGjenZXNOV6a879ZKleDF3zP/4nCHMK/LKflphrhVMTSA5bYqYH5A?=
 =?iso-8859-1?Q?XuidBhdGJ5B2mhY0c5Weq9+ZgomnAZcg2BD5OqwHYHfdzbGG5ZveAJ0A1D?=
 =?iso-8859-1?Q?LagRAfUBiYxDp0XCl9VOo6TA29shCbbfYPrrB4yHKZYA=3D=3D?=
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)(1800799024)(7416014)(376014)(42112799006)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?vvXZqnUuU8Ded0RygvFs4ddXqGxbEmzUNacr7TrDSY+X0hDQYbv27wP0oM?=
 =?iso-8859-1?Q?ee7hZ98Oln2C9qzs7EXljDXpe2nlTY0oEf8EbPVkNlUy9BgUuTSR6YWnnU?=
 =?iso-8859-1?Q?iajTDczBawR6P2rwq02Y6qm7UlH1FwpHZSUovT3eQEXRjW+WbcTK9K/tig?=
 =?iso-8859-1?Q?A6OJA7sfLI/GxIGPtwddWE5dMABVxXGjMO7j51Hpgo1dk4jebhfwec7F4o?=
 =?iso-8859-1?Q?POOH3aRJBF428RTSFnPRejlgU33hVuoWJSYPTPoWTvBYW04vTfSsaMrNHd?=
 =?iso-8859-1?Q?BA/4H6XnM8VCTDzR5Ime0qkX4YPUtl/wA28PcZDeTgKX7fBDU2en4BSpYT?=
 =?iso-8859-1?Q?EtVVFrGZQ6mzgwd6Xd2lcb6zXGuIa9Y3+c5vJwm0xKy2Fdwb/OtYF1gMzd?=
 =?iso-8859-1?Q?RSUcq72Uc7P3qpFH7bdlvxbpuAVo2MdbR8R3e0Jt4KtgLFZPPrPkceP1Mz?=
 =?iso-8859-1?Q?tEbMLJsHQ7opCgV6IIIr6zz/71c5Fc5+CvkSwlu1K+MrY91tEbSecMWJ7m?=
 =?iso-8859-1?Q?z47b+vmtNo8K33uDzEGyM7N0LSthBFu3j/XcG67i6TZgfuD+OmkvX8sEDq?=
 =?iso-8859-1?Q?8rPliIhS05g8lo1q61OleHrqZTrsnauE/LzkBQx4RdPq2RFf0HPzu0k2KG?=
 =?iso-8859-1?Q?cQSdzP88ar369e2dDmowars2iXArx3K1nTupRDTkRrEO/LsQCLPGyNb4V7?=
 =?iso-8859-1?Q?EmLlEhxszg11ZHw0HZPb8Kcflq4rZ3r5GgD62gB+WvUZsQvXw3/8Mxxuph?=
 =?iso-8859-1?Q?FeGTDtGLwvhvDefNqxRW9rzJYlGdo7HKEiaCvZ0NQfdxYXeHndZBNmtFu7?=
 =?iso-8859-1?Q?VhJ4AGtrGH53JbCvMa4imZj5xkea13d4fAXN+9GyeSMadEHvOryd+mzuHB?=
 =?iso-8859-1?Q?h5KFqkK+Pr/JB6m92QHOYbS8gDCqtYjCmAkuxjZ8AKR3Pe5vwVz2FJu0n4?=
 =?iso-8859-1?Q?grYnO2zfPpWR0sSbdWWIR6rJPFGld5pcaZXpF7XXljJIjQlWlwQ4E7s5ui?=
 =?iso-8859-1?Q?Dw3ThPL3f+7UAMhqcd5LKYVNJuxQkIXZVc7Pz/gvwfsaSRXfRaxMiDdFZ1?=
 =?iso-8859-1?Q?PdY/yV/H207gYuIp2LnQqKjdf/Nrs9p45GqUJatougigss2Kx+7uLQZpqR?=
 =?iso-8859-1?Q?DRYvCAENWI5fnASLv1Myaznr+5/gxPm766O6ZN8+vpQL7jjP5z2AYw6eUm?=
 =?iso-8859-1?Q?6Q9bdR9rQzFMslzQrdoIw1XsysZSJNuaf/Ed8AvnXlRCJYQKwwqPEjd1Js?=
 =?iso-8859-1?Q?H4+blJgJJSqR5U2d2MQ3zUmTh1DdtWp7EKW6fVfS3Ysm3I2LfjWd6aooUE?=
 =?iso-8859-1?Q?SvjABlEpU82KKB0c4Hm/vbHmTAiHfJP0EATh8WdDfUQ+DbhdvcOCEjIxpE?=
 =?iso-8859-1?Q?m1TObdwKqfDqiiRUFZLhZBt5ec+C5GqxDrFwp4R1K1riMxJh+pGLs8ufkL?=
 =?iso-8859-1?Q?S5AKI1ryG3My9vVwtRUNGf25Q0hbPcU3MeC/d5kH4vNREjmhoH01pqnM2S?=
 =?iso-8859-1?Q?0793NAVsXaVGfatvpWcL+CAgKqV6JxPdkDTxKmE4MHHUVEK525qwhUvdt1?=
 =?iso-8859-1?Q?44NBtvvPTaNFfFdBikvLE5bkuwAEfZ1yzdADewoRHuwMoc7QeVJQCWiWin?=
 =?iso-8859-1?Q?iDNES+oty9zlKVUB/y1vingLbVadpKKtnciJ0SWhvJUDH36nSCDeHcng?=
 =?iso-8859-1?Q?=3D=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: 1a01d9f8-2070-491f-e276-08dde5c33211
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Aug 2025 23:41:07.7792
 (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: p/QbAmP5MVZnZPBTKnQ65Pxvkechypb7R7/vuvNxEpJ9aY+svaPuWfIto8WdU20B3oGMUfPjWCtIZslAKF+LzGh5sc7cDF3q0yBTm7pi8O4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR0302MB8918

Hi Mykola,

Mykola Kvach <xakep.amatop@gmail.com> writes:

> From: Mykola Kvach <mykola_kvach@epam.com>
>
> Add support for the PSCI SYSTEM_SUSPEND function in the vPSCI interface,
> allowing guests to request suspend via the PSCI v1.0 SYSTEM_SUSPEND call
> (both 32-bit and 64-bit variants).
>
> Implementation details:
> - Add SYSTEM_SUSPEND function IDs to PSCI definitions
> - Trap and handle SYSTEM_SUSPEND in vPSCI
> - Allow only non-hardware domains to invoke SYSTEM_SUSPEND; return
>   PSCI_NOT_SUPPORTED for the hardware domain to avoid halting the system
>   in hwdom_shutdown() via domain_shutdown
> - Require all secondary VCPUs of the calling domain to be offline before
>   suspend, as mandated by the PSCI specification
>
> Additionally, GIC context must be saved when a domain suspends.
> LRs are not architecturally preserved across suspend/resume or context
> switches, so Xen must explicitly save and restore them. This requirement
> is specified in the PSCI specification (DEN0022F.b, section 6.8 "Preservi=
ng
> the execution context"). The fix is implemented by moving the respective
> code in ctxt_switch_from() before the return path taken when the domain
> suspends.
>
> Introduce domain_resume_nopause/_helper() to allow resuming a domain from
> SYSTEM_SUSPEND without pausing it first. This avoids problematic
> domain_pause() calls when resuming from suspend on Arm, particularly in e=
rror
> paths. The helper is Arm-specific; other architectures continue to use th=
e
> original domain_resume().
>
> Usage:
>
> For Linux-based guests, suspend can be initiated with:
>     echo mem > /sys/power/state
> or via:
>     systemctl suspend
>
> Resuming the guest is performed from control domain using:
>       xl resume <domain>
>
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> ---
> Changes in V10:
> - small changes to the commit message reflect updates introduced in this
>   version of the patch.
> - Comments are improved, clarified, and expanded, especially regarding PS=
CI
>   requirements and context handling.
> - An ARM-specific helper (domain_resume_nopause_helper)
> - gprintk() and PRIregister are used for logging in vPSCI code.
> - An isb() is added before p2m_save_state
> - The is_64bit_domain check is dropped when masking the upper part of ent=
ry
>   point and cid for SMC32 SYSTEM_SUSPEND PSCI calls
>
> Changes in V9:
> - no functional changes
> - cosmetic chnages after review
> - enhance commit message and add extra comment to the code after review
>
> Changes in V8:
> - GIC and virtual timer context must be saved when the domain suspends
> - rework locking
> - minor changes after code review
>
> Changes in V7:
> - add proper locking
> - minor changes after code review
>
> Changes in V6:
> - skip execution of ctxt_switch_from for vcpu that is in paused domain
> - add implementation of domain_resume without domain_pause
> - add helper function to determine if vcpu is suspended or not
> - ignore upper 32 bits of argument values when the domain is 64-bit
>   and calls the SMC32 SYSTEM_SUSPEND function
> - cosmetic changes after review
>
> Changes in V5:
> - don't use standby mode, restore execution in a provided by guest point
> - move checking that all CPUs, except current one, are offline to after
>   pausing the vCPUs
> - provide ret status from arch_domain_shutdown and handle it in
>   domain_shutdown
> - adjust VPSCI_NR_FUNCS to reflect the number of newly added PSCI functio=
ns
>
> Changes in V4:
> Dropped all changes related to watchdog, domain is marked as shutting
> down in domain_shutdown and watchdog timeout handler won't trigger
> because of it.
>
> Previous versions included code to manage Xen watchdog timers during susp=
end,
> but this was removed. When a guest OS starts the Xen watchdog (either via=
 the
> kernel driver or xenwatchdogd), it is responsible for managing that state
> across suspend/resume. On Linux, the Xen kernel driver properly stops the
> watchdog during suspend. However, when xenwatchdogd is used instead, susp=
end
> handling is incomplete, potentially leading to watchdog-triggered resets =
on
> resume. Xen leaves watchdog handling to the guest OS and its services.
>
> Dropped all changes related to VCPU context, because instead domain_shutd=
own
> is used, so we don't need any extra changes for suspending domain.
>
> Changes in V3:
> Dropped all domain flags and related code (which touched common functions=
 like
> vcpu_unblock), keeping only the necessary changes for Xen suspend/resume,=
 i.e.
> suspend/resume is now fully supported only for the hardware domain.
> Proper support for domU suspend/resume will be added in a future patch.
> This patch does not yet include VCPU context reset or domain context
> restoration in VCPU.
> ---
>  xen/arch/arm/domain.c                 |  21 +++++-
>  xen/arch/arm/include/asm/domain.h     |   2 +
>  xen/arch/arm/include/asm/perfc_defn.h |   1 +
>  xen/arch/arm/include/asm/psci.h       |   2 +
>  xen/arch/arm/include/asm/vpsci.h      |   2 +-
>  xen/arch/arm/vpsci.c                  | 100 ++++++++++++++++++++++----
>  xen/common/domain.c                   |  35 +++++++--
>  xen/include/xen/sched.h               |   3 +
>  8 files changed, 141 insertions(+), 25 deletions(-)
>
> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
> index 863ae18157..401106fd67 100644
> --- a/xen/arch/arm/domain.c
> +++ b/xen/arch/arm/domain.c
> @@ -90,6 +90,24 @@ static void ctxt_switch_from(struct vcpu *p)
>      if ( is_idle_vcpu(p) )
>          return;
> =20
> +    /*
> +     * Even if the guest saves and restores its own context, Xen must sa=
ve
> +     * the transient state (such as List Registers) that is not preserve=
d
> +     * by hardware across suspend. See PSCI DEN0022F.b, section 6.8
> +     * "Preserving the execution context".
> +     */
> +    gic_save_state(p);
> +
> +    /*
> +     * Skip saving the rest of the context if the VCPU is suspended,
> +     * to avoid modifying SCTLR_EL1. This is required by the PSCI
> +     * specification, which manages SCTLR_EL1 during SYSTEM_SUSPEND flow=
.
> +     */
> +    if ( test_bit(_VPF_suspended, &p->pause_flags) )
> +        return;
> +
> +    isb();
> +
>      p2m_save_state(p);

I am pretty sure that Julien told you that you can't skip p2m due to
to some workarounds regarding CPU speculation.

> =20
>      /* CP 15 */
> @@ -158,9 +176,6 @@ static void ctxt_switch_from(struct vcpu *p)
> =20
>      /* XXX MPU */
> =20
> -    /* VGIC */
> -    gic_save_state(p);
> -
>      isb();
>  }
> =20
> diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm=
/domain.h
> index a3487ca713..f9577bc9ae 100644
> --- a/xen/arch/arm/include/asm/domain.h
> +++ b/xen/arch/arm/include/asm/domain.h
> @@ -312,6 +312,8 @@ static inline void update_guest_memory_policy(struct =
vcpu *v,
>                                                struct guest_memory_policy=
 *gmp)
>  {}
> =20
> +void domain_resume_nopause_helper(struct domain *d);

If I am not mistaken, function declarations for xen/common/domain.c
should go into include/xen/domain.h, not arch/arm/include/asm/domain.h

Also, I am honestly don't know is it a good way to expose internal
function from xen/common/domain.c. I do understand why do you need this,
but function naming becomes more and more confusing. I had my
considerations against domain_resume_nopause(), but
domain_resume_nopause_helper() is even worse, because it sounds to
generic.

Lastly, I checked docs/misra/rules.rst. There is no mention of Rule
8.7. So why you can't just make domain_resume_nopause() externally
available?

> +
>  #endif /* __ASM_DOMAIN_H__ */
> =20
>  /*
> diff --git a/xen/arch/arm/include/asm/perfc_defn.h b/xen/arch/arm/include=
/asm/perfc_defn.h
> index effd25b69e..8dfcac7e3b 100644
> --- a/xen/arch/arm/include/asm/perfc_defn.h
> +++ b/xen/arch/arm/include/asm/perfc_defn.h
> @@ -33,6 +33,7 @@ PERFCOUNTER(vpsci_system_reset,        "vpsci: system_r=
eset")
>  PERFCOUNTER(vpsci_cpu_suspend,         "vpsci: cpu_suspend")
>  PERFCOUNTER(vpsci_cpu_affinity_info,   "vpsci: cpu_affinity_info")
>  PERFCOUNTER(vpsci_features,            "vpsci: features")
> +PERFCOUNTER(vpsci_system_suspend,      "vpsci: system_suspend")
> =20
>  PERFCOUNTER(vcpu_kick,                 "vcpu: notify other vcpu")
> =20
> diff --git a/xen/arch/arm/include/asm/psci.h b/xen/arch/arm/include/asm/p=
sci.h
> index 4780972621..48a93e6b79 100644
> --- a/xen/arch/arm/include/asm/psci.h
> +++ b/xen/arch/arm/include/asm/psci.h
> @@ -47,10 +47,12 @@ void call_psci_system_reset(void);
>  #define PSCI_0_2_FN32_SYSTEM_OFF          PSCI_0_2_FN32(8)
>  #define PSCI_0_2_FN32_SYSTEM_RESET        PSCI_0_2_FN32(9)
>  #define PSCI_1_0_FN32_PSCI_FEATURES       PSCI_0_2_FN32(10)
> +#define PSCI_1_0_FN32_SYSTEM_SUSPEND      PSCI_0_2_FN32(14)
> =20
>  #define PSCI_0_2_FN64_CPU_SUSPEND         PSCI_0_2_FN64(1)
>  #define PSCI_0_2_FN64_CPU_ON              PSCI_0_2_FN64(3)
>  #define PSCI_0_2_FN64_AFFINITY_INFO       PSCI_0_2_FN64(4)
> +#define PSCI_1_0_FN64_SYSTEM_SUSPEND      PSCI_0_2_FN64(14)
> =20
>  /* PSCI v0.2 affinity level state returned by AFFINITY_INFO */
>  #define PSCI_0_2_AFFINITY_LEVEL_ON      0
> diff --git a/xen/arch/arm/include/asm/vpsci.h b/xen/arch/arm/include/asm/=
vpsci.h
> index 0cca5e6830..69d40f9d7f 100644
> --- a/xen/arch/arm/include/asm/vpsci.h
> +++ b/xen/arch/arm/include/asm/vpsci.h
> @@ -23,7 +23,7 @@
>  #include <asm/psci.h>
> =20
>  /* Number of function implemented by virtual PSCI (only 0.2 or later) */
> -#define VPSCI_NR_FUNCS  12
> +#define VPSCI_NR_FUNCS  14
> =20
>  /* Functions handle PSCI calls from the guests */
>  bool do_vpsci_0_1_call(struct cpu_user_regs *regs, uint32_t fid);
> diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
> index 7ba9ccd94b..3371f33b81 100644
> --- a/xen/arch/arm/vpsci.c
> +++ b/xen/arch/arm/vpsci.c
> @@ -10,28 +10,18 @@
> =20
>  #include <public/sched.h>
> =20
> -static int do_common_cpu_on(register_t target_cpu, register_t entry_poin=
t,
> -                            register_t context_id)
> +static int do_setup_vcpu_ctx(struct vcpu *v, register_t entry_point,
> +                      register_t context_id)
>  {
> -    struct vcpu *v;
>      struct domain *d =3D current->domain;
>      struct vcpu_guest_context *ctxt;
>      int rc;
>      bool is_thumb =3D entry_point & 1;
> -    register_t vcpuid;
> -
> -    vcpuid =3D vaffinity_to_vcpuid(target_cpu);
> -
> -    if ( (v =3D domain_vcpu(d, vcpuid)) =3D=3D NULL )
> -        return PSCI_INVALID_PARAMETERS;
> =20
>      /* THUMB set is not allowed with 64-bit domain */
>      if ( is_64bit_domain(d) && is_thumb )
>          return PSCI_INVALID_ADDRESS;
> =20
> -    if ( !test_bit(_VPF_down, &v->pause_flags) )
> -        return PSCI_ALREADY_ON;
> -
>      if ( (ctxt =3D alloc_vcpu_guest_context()) =3D=3D NULL )
>          return PSCI_DENIED;
> =20
> @@ -78,11 +68,32 @@ static int do_common_cpu_on(register_t target_cpu, re=
gister_t entry_point,
>      if ( rc < 0 )
>          return PSCI_DENIED;
> =20
> -    vcpu_wake(v);
> -
>      return PSCI_SUCCESS;
>  }
> =20
> +static int do_common_cpu_on(register_t target_cpu, register_t entry_poin=
t,
> +                            register_t context_id)
> +{
> +    int rc;
> +    struct vcpu *v;
> +    struct domain *d =3D current->domain;
> +    register_t vcpuid;
> +
> +    vcpuid =3D vaffinity_to_vcpuid(target_cpu);
> +
> +    if ( (v =3D domain_vcpu(d, vcpuid)) =3D=3D NULL )
> +        return PSCI_INVALID_PARAMETERS;
> +
> +    if ( !test_bit(_VPF_down, &v->pause_flags) )
> +        return PSCI_ALREADY_ON;
> +
> +    rc =3D do_setup_vcpu_ctx(v, entry_point, context_id);
> +    if ( rc =3D=3D PSCI_SUCCESS )
> +        vcpu_wake(v);
> +
> +    return rc;
> +}
> +
>  static int32_t do_psci_cpu_on(uint32_t vcpuid, register_t entry_point)
>  {
>      int32_t ret;
> @@ -197,6 +208,48 @@ static void do_psci_0_2_system_reset(void)
>      domain_shutdown(d,SHUTDOWN_reboot);
>  }
> =20
> +static int32_t do_psci_1_0_system_suspend(register_t epoint, register_t =
cid)
> +{
> +    int32_t rc;
> +    struct vcpu *v;
> +    struct domain *d =3D current->domain;
> +
> +    /* 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 )
> +    {
> +        if ( v !=3D current && is_vcpu_online(v) )
> +        {
> +            domain_unlock(d);
> +            return PSCI_DENIED;
> +        }
> +    }
> +    domain_unlock(d);
> +
> +    rc =3D domain_shutdown(d, SHUTDOWN_suspend);
> +    if ( rc )
> +        return PSCI_DENIED;
> +
> +    rc =3D do_setup_vcpu_ctx(current, epoint, cid);
> +    if ( rc !=3D PSCI_SUCCESS )
> +    {
> +        domain_resume_nopause_helper(d);
> +        return rc;
> +    }
> +
> +    set_bit(_VPF_suspended, &current->pause_flags);
> +
> +    gprintk(XENLOG_DEBUG,
> +            "SYSTEM_SUSPEND requested, epoint=3D0x%"PRIregister", cid=3D=
0x%"PRIregister,
> +            epoint, cid);
> +
> +    return rc;
> +}
> +
>  static int32_t do_psci_1_0_features(uint32_t psci_func_id)
>  {
>      /* /!\ Ordered by function ID and not name */
> @@ -214,6 +267,8 @@ static int32_t do_psci_1_0_features(uint32_t psci_fun=
c_id)
>      case PSCI_0_2_FN32_SYSTEM_OFF:
>      case PSCI_0_2_FN32_SYSTEM_RESET:
>      case PSCI_1_0_FN32_PSCI_FEATURES:
> +    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
> +    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
>      case ARM_SMCCC_VERSION_FID:
>          return 0;
>      default:
> @@ -344,6 +399,23 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *regs, u=
int32_t fid)
>          return true;
>      }
> =20
> +    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);
> +        }
> +
> +        perfc_incr(vpsci_system_suspend);
> +        PSCI_SET_RESULT(regs, do_psci_1_0_system_suspend(epoint, cid));
> +        return true;
> +    }
> +
>      default:
>          return false;
>      }
> diff --git a/xen/common/domain.c b/xen/common/domain.c
> index 104e917f07..e2371549a0 100644
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -1349,16 +1349,10 @@ int domain_shutdown(struct domain *d, u8 reason)
>      return 0;
>  }
> =20
> -void domain_resume(struct domain *d)
> +static void domain_resume_nopause(struct domain *d)
>  {
>      struct vcpu *v;
> =20
> -    /*
> -     * Some code paths assume that shutdown status does not get reset un=
der
> -     * their feet (e.g., some assertions make this assumption).
> -     */
> -    domain_pause(d);
> -
>      spin_lock(&d->shutdown_lock);
> =20
>      d->is_shutting_down =3D d->is_shut_down =3D 0;
> @@ -1366,13 +1360,40 @@ void domain_resume(struct domain *d)
> =20
>      for_each_vcpu ( d, v )
>      {
> +        /*
> +         * No need to conditionally clear _VPF_suspended here:
> +         * - This bit is only set on Arm, and only after a successful su=
spend.
> +         * - domain_resume_nopause() may also be called from paths other=
 than
> +         *   the suspend/resume flow, such as "soft-reset" actions (e.g.=
,
> +         *   on_poweroff), as part of the Xenstore control/shutdown prot=
ocol.
> +         *   These require guest acknowledgement to complete the operati=
on.
> +         * So clearing the bit unconditionally is safe.
> +         */
> +        clear_bit(_VPF_suspended, &v->pause_flags);
> +
>          if ( v->paused_for_shutdown )
>              vcpu_unpause(v);
>          v->paused_for_shutdown =3D 0;
>      }
> =20
>      spin_unlock(&d->shutdown_lock);
> +}
> =20
> +#ifdef CONFIG_ARM
> +void domain_resume_nopause_helper(struct domain *d)
> +{
> +    domain_resume_nopause(d);
> +}
> +#endif
> +
> +void domain_resume(struct domain *d)
> +{
> +    /*
> +     * Some code paths assume that shutdown status does not get reset un=
der
> +     * their feet (e.g., some assertions make this assumption).
> +     */
> +    domain_pause(d);
> +    domain_resume_nopause(d);
>      domain_unpause(d);
>  }
> =20
> diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
> index 02bdc256ce..12429d16b9 100644
> --- a/xen/include/xen/sched.h
> +++ b/xen/include/xen/sched.h
> @@ -1014,6 +1014,9 @@ static inline struct domain *next_domain_in_cpupool=
(
>  /* VCPU is parked. */
>  #define _VPF_parked          8
>  #define VPF_parked           (1UL<<_VPF_parked)
> +/* VCPU is suspended. */
> +#define _VPF_suspended       9
> +#define VPF_suspended        (1UL << _VPF_suspended)
> =20
>  static inline bool vcpu_runnable(const struct vcpu *v)
>  {

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 00:32:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 00:32:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097163.1451598 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urQYS-0008K7-Qv; Thu, 28 Aug 2025 00:31:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097163.1451598; Thu, 28 Aug 2025 00:31: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 1urQYS-0008K0-Mj; Thu, 28 Aug 2025 00:31:52 +0000
Received: by outflank-mailman (input) for mailman id 1097163;
 Thu, 28 Aug 2025 00:31:50 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Rla7=3I=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1urQYQ-0008Ju-LS
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 00:31:50 +0000
Received: from NAM02-BN1-obe.outbound.protection.outlook.com
 (mail-bn1nam02on20622.outbound.protection.outlook.com
 [2a01:111:f403:2407::622])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 61525622-83a6-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 02:31:47 +0200 (CEST)
Received: from BN0PR04CA0158.namprd04.prod.outlook.com (2603:10b6:408:eb::13)
 by LV8PR12MB9083.namprd12.prod.outlook.com (2603:10b6:408:18c::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Thu, 28 Aug
 2025 00:31:44 +0000
Received: from BN2PEPF000044A0.namprd02.prod.outlook.com
 (2603:10b6:408:eb:cafe::c6) by BN0PR04CA0158.outlook.office365.com
 (2603:10b6:408:eb::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.21 via Frontend Transport; Thu,
 28 Aug 2025 00:31:44 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BN2PEPF000044A0.mail.protection.outlook.com (10.167.243.151) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Thu, 28 Aug 2025 00:31:44 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 27 Aug
 2025 19:31:27 -0500
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 27 Aug
 2025 19:31:26 -0500
Received: from [172.31.63.243] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 27 Aug 2025 19:31:25 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 61525622-83a6-11f0-ae26-e363de0e7a9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ocG/bWZ1cyl1GdFkzFI4hCaMVv5j/YPsXE2hSvO8SG7VNd/UW+rs9srsXBiZsGPzV45H1OljjuT7WFzuDdYMQSTV+QmYqLkDSSnw8+Gclmmuo5BE3Pa84HYwjJNeH8jKxjBlY0ewQEwqOG/Y4dkScGLWR7T4dl2znzvWCEe/aAksWBd2bk3LsfWo2lYsnVQttEO/54eROL68F/JKuBtG58VWRYHFf5ZP2yjna68ReI8OnKQ3Tr9e6AOZRRLA2k4MIzBfrLxKEMO/DdFJukT3rs1I3VCw9zsbRr3evcEzwG+IP8qCF+UqukziP+0o0TDDuhFQKxqz2+kajERwE82s+w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/yL0cWFAwGnZZOy5icEJM/ssMktP7OZmP1v5umEmd1s=;
 b=BUX+e8b3gxjVEZRwq8uLUF6dzpBUpsORxdwsQE/3HPQTOn/hnsX6iDe6Zx8En5WSXJUSWEvk6+t+Xisc3OEweWoeWldR/CZIFPCdA2SxFNnweEm3Bq3pn8at2Qn4jX4OXjRFYN0aLWiyycnHBYXerfdQsbm2G1qG7RqR/ow8jh5h3EiEcil2aKgg+U5zW5zApx0Ikd91ION7hg53Xs32lhpYTbpjmnaeQseOlTDwRoHkEaOu5aQq+BpN9kzrGHi9Qlqu3ftQiFmPhOAJz7YfSWIedPtVrOC1GCcqd+sJ12lCgaj2AVjEaDcoOZWtfreKvKm8pJbSWIXjk8kEpprOXg==
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=/yL0cWFAwGnZZOy5icEJM/ssMktP7OZmP1v5umEmd1s=;
 b=nr8Ipk0dtq1W4PrC7gzFGLLA5udVRuxyPFjNGn4oVUFSAqIeUv0UYM9OhYbicdbbBsvFMbmHc7kDAwfA6lDNFO/PK5U8pii15ki7n7Gi+828QP8JOJoNSyUfuhE57GcoJDnZAza1R3qucq9sLkIciD3LPg9p+JJnx57Ivp/sv7A=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <12dbe129-9132-4c8c-8002-5c34ce90d42d@amd.com>
Date: Wed, 27 Aug 2025 18:11:23 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/3] xen/events: Return -EEXIST for bound VIRQs
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Oleksandr Tyshchenko
	<oleksandr_tyshchenko@epam.com>
CC: <xen-devel@lists.xenproject.org>, <linux-kernel@vger.kernel.org>
References: <20250826005517.41547-1-jason.andryuk@amd.com>
 <20250826005517.41547-3-jason.andryuk@amd.com>
 <2d7bceff-d70f-4f17-b833-380ffc06577e@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <2d7bceff-d70f-4f17-b833-380ffc06577e@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN2PEPF000044A0:EE_|LV8PR12MB9083:EE_
X-MS-Office365-Filtering-Correlation-Id: 3cb7338e-5552-4bc8-b485-08dde5ca43d8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|36860700013|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bGQ0ZHJZSUpvbG40OEFoUGtvQnY3OFU5Rm56UEVVdmFNZWJYTE5NRDBodUtK?=
 =?utf-8?B?R0toUE12YWgxbUtiZ2U1OCtzZDVoaVhGY0tkeDRrbTFJTXp6MUhndWg5Rm0w?=
 =?utf-8?B?Y0dWT0Y3WGtVYVNDOWJmUFNsMU4yVlg5bWFpUWxaNWJyK0NRMU9yY2dXaFpr?=
 =?utf-8?B?WlpUTFRrK0FzdGxqUGxDSzQ4eE5oYko1ZzBNS2hRdUJYbUJVekV1aWhISExT?=
 =?utf-8?B?TUtoemhyNjFoR1hRWVdOQWhZRmdiZEdsbUhiR0o3T2I4djljM1h1RWxnOTM2?=
 =?utf-8?B?ZVZYWDRLbFFwbGg4R0xXTjEwZHV2OFYyR1crSThDSm85MUdVQ3MwdVhqb0tz?=
 =?utf-8?B?KzJZUWRXeGQ0YXFvZWFHbnVRVWVoRUtzd1E2ZGo2cnJWTlUwWTlkYXR0QUU3?=
 =?utf-8?B?c1JvSW9NZjNaVHNJZFJHZFVodXY4RGcvV3VrWENzN254VGp3c042dXlJZEg5?=
 =?utf-8?B?R2U0SitlWWIxdGZBYVNlb2N0bWYrR1J6bzZ3aVdmN08vSWVGWGZ2dStJZFFV?=
 =?utf-8?B?M1Q3VXhRSkVHWUFyejRIR1ZhRTF5ck4xODBRR1EySEdnbnh6dGVSYk9VYXcx?=
 =?utf-8?B?RFNiMGRRa0w4bWFZbEpadytVV1dCZzBSTjVac3FmUXRoWTUrSXJTWTlFM0dv?=
 =?utf-8?B?eERIcUltZC92eVJKZkE3V1l2N3Z1MC96ZjBDSUMyRXIzWjFXRVJxSmFVbnJ3?=
 =?utf-8?B?TjRQTXJSdUpiQkZXUGFVa24yUWxHZGw2UjhZYmM2WFprOVJNbXBzMEljd2lG?=
 =?utf-8?B?Y0FveERlUTQvalFaUG5WbVNqb21mcGkyNkVtRHMwY1FhNEJleTVobmpEZXJo?=
 =?utf-8?B?OHhjN1hDWmF5aXFFcS8zNW1yejFTaHJUOGQ2ZmtGTXV5dGk1RmhGS1NKSjJs?=
 =?utf-8?B?ZURkSm9KZUJIb3doeFFjYUdoeUZMOXg0dDlDZEVvTGJkc3dOcDJMUVYyNGhy?=
 =?utf-8?B?ZUxMK2lmKzhwUk5PVTJXSGEzbDFHbXJOMVVjd3lWSXpjcmpId00rYm9PRU5M?=
 =?utf-8?B?bEEwbnc5NFd2dStxVE9CcG5WWXVKNHRvVC91ZWZvOXUwNnd2c3ZVaWVqeWF1?=
 =?utf-8?B?Z0x6TlJlM2dYRnlIMm1pdjQ4VFhkUGRWd0JKMlFsYzVKcDNXbW5BR1hidlJy?=
 =?utf-8?B?V1dYVXBwY0EyV295aklMWGxoek8veXU4aHZya0phQXVkYnpRYjdLanRLUHJm?=
 =?utf-8?B?Vjkxc1prU3lhVUc2QUhNTlNsRXpYNGEvTmtwS2N4L2VwdlVRNEJMWDc4OUpM?=
 =?utf-8?B?NzNsVURTNHd6Q0xkejNleHBzQUN3THNoQkcvUU8rZ052YzFCZ3l3WDVjMnhV?=
 =?utf-8?B?NXh3REtCSkN5ak9PQ2JZcmdEcDZGWmdBZDBpZW81cDN1Umd3VkhNdjhieGVo?=
 =?utf-8?B?bk5yVzhtUWNPSHNkT1V0VlRYeS9PNGJHeW5EdlZIcERTbUJWMVdGTEl3TFYz?=
 =?utf-8?B?VmF5eXUvRVQrWGtYNHNVNmplSUozeDByc01qYmU1NFhBRzhWREI2UndGTlk1?=
 =?utf-8?B?RDRQdDVHWWkvT0RRYWkxajZLRUowVW95d3BtdXZJZ0NJNCtMTVZYZHEvYkZ5?=
 =?utf-8?B?ZkJDaUxlYjBISGxCa2lNaDhYei92VWdnaGlVS2dIOStFTGNpU0RRR1kyb3RY?=
 =?utf-8?B?SGNPQkJWTFQvWXdKdHQ0N0syUm94UE5ZRjN4dEh6cmsxQ2NOZHZzTFhlcGJk?=
 =?utf-8?B?SGdpb2FJbUFlK0xhYjhxMis0MUZFSmpsNlhqU2RhWGN1ZUh0Qk45bGpkZzZY?=
 =?utf-8?B?MVAwVUZQc2xXRy9PTTlyMktPd1NrdGNydXVXS1VQL3pWTHBxNTBCcFIzejdP?=
 =?utf-8?B?Zjg0TllpUWtmbDhuS1ZIWG1ZTnBIclhWdVNnMmdSM2ZxeU1XQXYyMUhCSXJw?=
 =?utf-8?B?YWsrcFhyQi9aYXkyVDVGY3hLOENlOHlYSWNaSHZtVjJGYWdKQi8vS213Yklj?=
 =?utf-8?B?RjdtZ0xIcStGalpGTC9oOFFoUjZmYjZGdnFrc0tLTm5vZXBkSW5zL0RoRU5E?=
 =?utf-8?B?VlRzdVRhVzZnOUxITW9Lc2ZQR0dPc1Y1ZHFpZVN5Lzc4cjd2NDQzaFdORUJM?=
 =?utf-8?Q?vFiqGA?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 00:31:44.0306
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3cb7338e-5552-4bc8-b485-08dde5ca43d8
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN2PEPF000044A0.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9083

On 2025-08-27 11:21, JÃ¼rgen GroÃŸ wrote:
> On 26.08.25 02:55, Jason Andryuk wrote:
>> Change find_virq() to return -EEXIST when a VIRQ is bound to a
>> different CPU than the one passed in.Â  With that, remove the BUG_ON()
>> from bind_virq_to_irq() to propogate the error upwards.
>>
>> Some VIRQs are per-cpu, but others are per-domain or global.Â  Those must
>> be bound to CPU0 and can then migrate elsewhere.Â  The lookup for
>> per-domain and global will probably fail when migrated off CPU 0,
>> especially when the current CPU is tracked.Â  This now returns -EEXIST
>> instead of BUG_ON().
>>
>> A second call to bind a per-domain or global VIRQ is not expected, but
>> make it non-fatal to avoid trying to look up the irq, since we don't
>> know which per_cpu(virq_to_irq) it will be in.
>>
>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>
>> @@ -1381,8 +1387,9 @@ int bind_virq_to_irq(unsigned int virq, unsigned 
>> int cpu, bool percpu)
>> Â Â Â Â Â Â Â Â Â Â Â Â Â  evtchn = bind_virq.port;
>> Â Â Â Â Â Â Â Â Â  else {
>> Â Â Â Â Â Â Â Â Â Â Â Â Â  if (ret == -EEXIST)
>> -Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  ret = find_virq(virq, cpu, &evtchn);
>> -Â Â Â Â Â Â Â Â Â Â Â  BUG_ON(ret < 0);
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  ret = find_virq(virq, cpu, &evtchn, percpu);
>> +Â Â Â Â Â Â Â Â Â Â Â  if (ret)
>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  goto out;
> 
> I think you are leaking info here. I guess a call of __unbind_from_irq() is
> wanted like in the error case below (note that the case of no valid 
> evtchn is
> handled there just fine).

Ok, thanks for catching that.

I'm going to add Cc: stable to the next version of this.  While it 
doesn't have a Fixes associated, we want this as a prerequisite for patch 3.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 00:34:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 00:34:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097179.1451606 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urQb6-0000Pm-5C; Thu, 28 Aug 2025 00:34:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097179.1451606; Thu, 28 Aug 2025 00:34: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 1urQb6-0000Pf-1y; Thu, 28 Aug 2025 00:34:36 +0000
Received: by outflank-mailman (input) for mailman id 1097179;
 Thu, 28 Aug 2025 00:34:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Rla7=3I=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1urQb4-0000Oa-UP
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 00:34:34 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20620.outbound.protection.outlook.com
 [2a01:111:f403:2417::620])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c3ab4660-83a6-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 02:34:33 +0200 (CEST)
Received: from CH5P222CA0001.NAMP222.PROD.OUTLOOK.COM (2603:10b6:610:1ee::15)
 by SA5PPF916D632A9.namprd12.prod.outlook.com
 (2603:10b6:80f:fc04::8d6) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Thu, 28 Aug
 2025 00:34:28 +0000
Received: from CH2PEPF0000014A.namprd02.prod.outlook.com
 (2603:10b6:610:1ee:cafe::86) by CH5P222CA0001.outlook.office365.com
 (2603:10b6:610:1ee::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.17 via Frontend Transport; Thu,
 28 Aug 2025 00:34:27 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CH2PEPF0000014A.mail.protection.outlook.com (10.167.244.107) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Thu, 28 Aug 2025 00:34:27 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 27 Aug
 2025 19:34:26 -0500
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.1748.10; Wed, 27 Aug
 2025 17:34:26 -0700
Received: from amd-BIRMANPLUS.mshome.net (10.180.168.240) by
 SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39
 via Frontend Transport; Wed, 27 Aug 2025 19:34:26 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c3ab4660-83a6-11f0-ae26-e363de0e7a9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PgFgq9xzUG7fSPVPpTxZSxEGhNwBz6erNdjZjX7nwmGv/ktpD03GmQzP8Y2gh6y0ytorRFN6IW5yKHqxZGCgq1/G8OdTxLpK18LENTnnCr4of6ygFNiy+HnLko78yQMjU8UJKHgr3u+/Ojw0Y2Zx6qj3gIe5OVB64AxxaiC2jb7OqbrYSd1sOZeZnrhbjTPAfkVP08l11g9sSIvE71RWwv19RbtAQ+klL0GgsS6jwwnenMy1RLteh5UKDk9btB7PRUgglMjPfqcghRGypq9lIhuiH3oDXPYgXniRBmNhFUIG0ZGVBtvsFDgtQb2Q+oLn0nxGc0M1JDzlCKFweIwz6Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=vn7eBth2oHtJKO07Rys/pSHJpVQ8txr9CkjrO0LbiJ8=;
 b=WNdt4aLhbPG2myj8yjhj9pxMbHdH+g5ZuqJPF4btlSeNx1VbsvNUpPRvdNmp3tiX+PYlu4Ef+5DpimYvRS9FY8moy5uUvNKEgbupWCsgQ1MeLcOgvpuGboBYpqWCut9+tdS6WGqlq1F2HR9A5llnxbj11R+Eoxcr5Q5fmlLDiA9ACwBsr035i4LVG4PgvaYAt5KpYOk2ln0HLGFMyhs09ZOCdDauvpsW0BfpKzt/ZsUPkneQPEA1hQVU1bbNprl/UMIuDUqWP7bzuX3KZeU2gFO9U/DqTXYzZEhIgKdSaLTJYkfrAlklks3e1mm5GtpqqkcyyoEm9hfBgIfQYdKHNQ==
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=vn7eBth2oHtJKO07Rys/pSHJpVQ8txr9CkjrO0LbiJ8=;
 b=rTrrhzsrE9RtT2EjX/exWjhtiCAgMB/T01PxTXZb/ZPml3zuE9iRFCiTM3D/2s9GMBSF3LjK08nP0JBix2o955fMWZ0to37BBHGB356FLtLZV2EchVjXXwPlTfKtKbjwlzaLlmSn67Ar2uhUXWDdEH/fAU6mwXyboFw5GG2QSl4=
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=SATLEXMB03.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: Juergen Gross <jgross@suse.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Oleksandr Tyshchenko
	<oleksandr_tyshchenko@epam.com>
CC: Jason Andryuk <jason.andryuk@amd.com>, <xen-devel@lists.xenproject.org>,
	<linux-kernel@vger.kernel.org>
Subject: [PATCH v3 0/3] xen/events: Fix Global and Domain VIRQ tracking
Date: Wed, 27 Aug 2025 20:36:00 -0400
Message-ID: <20250828003604.8949-1-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH2PEPF0000014A:EE_|SA5PPF916D632A9:EE_
X-MS-Office365-Filtering-Correlation-Id: 76480195-1932-443b-6f10-08dde5caa505
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|376014|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?VrHTUAjHG4P4pVXM8xtR7iUsOX++drKrzrFJTYXrwwa0Wex/7RSQreJdaI9T?=
 =?us-ascii?Q?YBFQGBgCrVJoIu70oaU1Ds8iCBmsQbYbLiP4k9BZ3++tbXAcpbs/ue8XqnL/?=
 =?us-ascii?Q?bcWsCtM4w7eiEgswYpr4PAp+o1qiAXx1C2ffZTv9Q+CXdac2qTqOXgDhI6uT?=
 =?us-ascii?Q?p8YmD/k4TTXcU9WA4JxKV2QqpNf5Ldi4KW+dIMK8Mrg+ze9SGjez6fpxqm8T?=
 =?us-ascii?Q?++15yNbWmJWGRqjuSA5g1Ftp3f5WpqJdi1qvqdP/evkBMJhP1Ucz/KHiSPqL?=
 =?us-ascii?Q?MJqrv1p7I7eRtVpQAUt5XcK4iP0uzUvjp+kEcQae5+d5ZnqYUWdfxn2+2Vq7?=
 =?us-ascii?Q?WTG7I5IgenCAPAd0aUJY7GvoEISohvoPh4frLwh+aIKrTc7jSI6OR7SSD3eN?=
 =?us-ascii?Q?NvnzkVOXD/Q/HWI2HOhCnaAd+x/Lu8qShBctMvjKu4VDiZykKqvRa/zOnkOY?=
 =?us-ascii?Q?As/ez+9OE2CstcGXUmDbgGLtMBiD4kmCQx9ClyNINwopTTZZrF9msGXpyTC8?=
 =?us-ascii?Q?nwkB65yex61s9w6PpEDm58jgg5zQNNETr7mPfr5TDTeSEbQ8YnvtSlvBRRjS?=
 =?us-ascii?Q?j9w7oQCkcAfHadLQwDtU9OnzPsGDdqfSVAqZWJHWeNYXcO//yOXGIlXIeSD4?=
 =?us-ascii?Q?QVoYPesDE3AAUn/hiZmE+r3bsRA+jCBKiaQJfcoJQ3S4T1fU0ATuUhY+I2PR?=
 =?us-ascii?Q?lj8lAa96xHVDgAlP4QlITz3W6lmQ/WjJ8LdkTBPbWJaIMkDFZOgaRl0etGmC?=
 =?us-ascii?Q?1mUZROYTjWRfVDiXZXnxXIobUS+sJ+gY84EEOwY9vOwxrEFPVEhhX37qdoNk?=
 =?us-ascii?Q?jAOmWXEe/GuvjBgzb0KdshpNGPTBrAlwKiM4YFKOZGcXWSxcDSdvDF//38kw?=
 =?us-ascii?Q?bWswicCXAblyJXYSc/9Hhd1b8Txmfc+SPhamjj0OPjVkEX8Qa0kEJf5tBc8R?=
 =?us-ascii?Q?0tzPEK+D1sNbxmFCZsGf4FCBDoNYQ0EHXMUkXOr1LXgIzzv+P6kig6d/vTGU?=
 =?us-ascii?Q?oWKuybBvzB6t8MzeqLJJvqbHh9A+TR70KcaGvLt/wZM8zUEiTJnyuY4As1PP?=
 =?us-ascii?Q?ZjCmau2euGzqWmSzAlfLvWIazM1eeAp9en4XJZ6wIGAtB3I/EqbpfdArE+mY?=
 =?us-ascii?Q?NlgcQ7spL4xA3VH/2sDp8hWlODnSOgwpi18hVyPLP5eRQs9oFejD9731tdfa?=
 =?us-ascii?Q?4f/Gk7ZD2hjboZjD/92lWdaLjhcZOYhSUWx8/KGW8MhuR4mFRvjmvdq+j4HR?=
 =?us-ascii?Q?Vh7jrQBFEcP2bTsZwGovd7HNALMQvlqnbvqdEeu/PpLbdci/jC8JTT8Y3HGD?=
 =?us-ascii?Q?vwszwrXyU3B0r0Iprb7B5UCr+CLGN4bmC8f6RZwBqicoZxNGa5IYISkaBh9I?=
 =?us-ascii?Q?ESkb/aZM3wwkJt/mM51ZEX4xxr/fUZrRtzM8SzvZI/z0XR9oc7hm0G3sxKHI?=
 =?us-ascii?Q?rH0WECKXo3pQ+RFWNllOe/Q8RbrcdIOSrC983SmfHVZV6mO39G0u2FrIqV0L?=
 =?us-ascii?Q?g6IgGn2QsZp0VTj1gyLKsI2HFKuEwGMOuX49?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 00:34:27.0677
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 76480195-1932-443b-6f10-08dde5caa505
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH2PEPF0000014A.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PPF916D632A9

v2 and v3 are now series first changing find_virq() to return -EEXIST in
some cases, and then tracking cpu movement of VIRQs.  This keeps ensures
the cpu is correct when calling unbind_from_irq().

I'm adding Cc stable to all patches.  Patch 2 doesn't have a Fixes, but
it goes together with patch 3.

Jason Andryuk (3):
  xen/events: Cleanup find_virq() return codes
  xen/events: Return -EEXIST for bound VIRQs
  xen/events: Update virq_to_irq on migration

 drivers/xen/events/events_base.c | 37 +++++++++++++++++++++++++-------
 1 file changed, 29 insertions(+), 8 deletions(-)

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 00:34:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 00:34:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097182.1451617 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urQbF-0000hF-Cc; Thu, 28 Aug 2025 00:34:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097182.1451617; Thu, 28 Aug 2025 00:34: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 1urQbF-0000h8-9g; Thu, 28 Aug 2025 00:34:45 +0000
Received: by outflank-mailman (input) for mailman id 1097182;
 Thu, 28 Aug 2025 00:34:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Rla7=3I=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1urQbD-0000Ol-S2
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 00:34:43 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on2061f.outbound.protection.outlook.com
 [2a01:111:f403:2418::61f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c915afd8-83a6-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 02:34:42 +0200 (CEST)
Received: from CH3P221CA0028.NAMP221.PROD.OUTLOOK.COM (2603:10b6:610:1e7::13)
 by MW5PR12MB5598.namprd12.prod.outlook.com (2603:10b6:303:193::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Thu, 28 Aug
 2025 00:34:37 +0000
Received: from CH2PEPF00000143.namprd02.prod.outlook.com
 (2603:10b6:610:1e7:cafe::b) by CH3P221CA0028.outlook.office365.com
 (2603:10b6:610:1e7::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.16 via Frontend Transport; Thu,
 28 Aug 2025 00:34:36 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CH2PEPF00000143.mail.protection.outlook.com (10.167.244.100) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Thu, 28 Aug 2025 00:34:36 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 27 Aug
 2025 19:34:35 -0500
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.1748.10; Wed, 27 Aug
 2025 17:34:35 -0700
Received: from amd-BIRMANPLUS.mshome.net (10.180.168.240) by
 SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39
 via Frontend Transport; Wed, 27 Aug 2025 19:34:34 -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>
X-Inumbo-ID: c915afd8-83a6-11f0-aeb2-fb57b961d000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ejjLK+XOc9zPI16yhics1oosPpPXO2tsfHszLyZ7IYEXvhPTl5iScXN2x5gynfiTivSEOiP71i+jy8kgyyRliC8TALHRBDXGRkQZYNEG1hpfsLFkz8DWrRA4x/t8vZ0OeyKTB0UMPIEGxQUUuOAtd08HDUV2sJvS1jEsCP/0DSs9RWLzQBi9iXeuV9UrfChd7MJCLcuuHGu2yWlbTgG4Mzm4oWO9rwqwbgf6aBEHLR/UqIXoSj9icvs91MUdfWWXTkbp1hnBYFLqf4n9Czm8EHnbhPEvq7+IC7gpryqO88v2U5z7ETCZTcOYxXYccSMp9IPYknvNiLXxAux4cXPyuQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=oACrg1+uNF45UlAHavD66G1T9UliU9PiWyBkteY+IDo=;
 b=LZvsYNNEC4rLVQ2TMCM5ueoAfiTe56E8w9hiNrV6/vHbY5Cx3E1LUeWurjcAn/9iCTcd6YSfrSCMTd2PasZRVK7AG0j1JoMLrvQa2kASoYePsxTpOUnco1Ai1jI0DHA7xNdjaMxo5AhXwMlqNraVzJT2dgvlZ3CfUvREmN71k89vunwYywh8fXby7AZ5cYJ3eEe25ap7/R1cyT2SMtOs6KEYWR/HvuoRK5/qDMp+BfwQQpHH2CfxzbLO4cPLSD7vJPOYu4GKKMwu6dihk9cfhG+inFP2VkE2tfypdoQ2pk862PHnN1iyvbdguwWkAA4AcrXlz0sedlireKOY4o95XQ==
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=oACrg1+uNF45UlAHavD66G1T9UliU9PiWyBkteY+IDo=;
 b=hJG+4HT1w+ZS6YG28mU5lYfd3Xm7psAbvM42wYiWkyBxHEbqnh+83YKiQuQmAH8ZL9kRHW3JcheBrsLZPq3SUe6lOwuuMqcrLUyUmfmcYoGMuRfkYqZrzyLNL/iKbK/7zEbuKQY8CU7iQT+kEmChYQEcDwvJBeZWAbf9fIgbFKs=
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=SATLEXMB03.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: Juergen Gross <jgross@suse.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Oleksandr Tyshchenko
	<oleksandr_tyshchenko@epam.com>
CC: Jason Andryuk <jason.andryuk@amd.com>, <stable@vger.kernel.org>,
	<xen-devel@lists.xenproject.org>, <linux-kernel@vger.kernel.org>
Subject: [PATCH v3 2/3] xen/events: Return -EEXIST for bound VIRQs
Date: Wed, 27 Aug 2025 20:36:02 -0400
Message-ID: <20250828003604.8949-3-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250828003604.8949-1-jason.andryuk@amd.com>
References: <20250828003604.8949-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH2PEPF00000143:EE_|MW5PR12MB5598:EE_
X-MS-Office365-Filtering-Correlation-Id: fbdf9d8d-4b16-48ca-146c-08dde5caaae0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|82310400026|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?cbEPd84mKzjJ/jk29l9LG8pCbg3fjcmzLe2K3kg/wEJVjJf9xhlyVsOKeINn?=
 =?us-ascii?Q?qiEGmT+Ma7fHe55o6oDxpHcCz1wPlP4JumvzbSzSgNxPHyM/zDkWSynsiaXe?=
 =?us-ascii?Q?tiK4yAw17Ue/Si8BdyC5hoAV0DgmHmSQ4hBxmCJpubw9+1Su9wQ/7O7nBWb7?=
 =?us-ascii?Q?4Is+l9yzHCjCTPzXufZUT2Y2SLgOyllIq1563k0n7R/tVE3To7et39FiHh8u?=
 =?us-ascii?Q?v1ArTPiAhcm/ob40/Uj3/mXmJsBoB8/qosFYStvb7qAlYwlqUNSy5d/HmzYN?=
 =?us-ascii?Q?uxS1fyarpeX/7ByiPrw8Ofg2bqsWuEkQK+BboQwpS6DHVcICSFqlcx/C+U5U?=
 =?us-ascii?Q?/p4htfg2jVbD4jReYE39z+ErSJAkj5vCiSvcYNuVYDFVc8ssguPSz5jnjGEp?=
 =?us-ascii?Q?2nA0oPPCIQTAx6Xotsm1MiFDg+iMvtanajOD8ECatf2eRJrV2QMz++VohtMR?=
 =?us-ascii?Q?xpnhz1zLuL3Zrf5Va99xfEXRjUj/RUJdgUfPcvezJYcjZTRWN3ce+x2KkHDY?=
 =?us-ascii?Q?dn153RJV5JyYT0qve7DmHdtOU11+SUzAF22Bj5pakhVUpMTNASu+ZeKX732L?=
 =?us-ascii?Q?HrYzYsuPVPmi7iaPmXhcnqls4h4fYjkLi0VtHRGymboGzhZsQacM3rQZFY/C?=
 =?us-ascii?Q?MriGXJatbYffXiAIGO9aJZWvH+ihP1YgZP7DRPHySxatVu5xRETpb/hhrAiL?=
 =?us-ascii?Q?NEDSiPpPWlm3ktAr7U2FGdkKf429Ell1j1GYuR2kBNlPxKfA5QrDph5fAmBI?=
 =?us-ascii?Q?d104hahHXlyveMHsIrKAuobJSoVZMBgoQvF+T+BsofcwrGZtajlPuOJGo87f?=
 =?us-ascii?Q?xk8i8+wLemuRmH4pBHVj2s7lHbGDcVUWt+oKvcegiJ+K/yswr+ficFB+aXgc?=
 =?us-ascii?Q?VbNxt2EFwDOu5Nrou+5LJQMFT7Qxm9nSeGBukxX+3tZcaPN5tcsZqMtLEazJ?=
 =?us-ascii?Q?zMQtaA6XZ3UwA5lsCVb/I/eun+1LGA+H4FIVkXC6GcuZUlySsqHDWw8QruUf?=
 =?us-ascii?Q?4p75TaS37TTZJbBKohzZ+bYFPv5fEQhkVX3V009D74qppVFFWbUGBKhJaiKg?=
 =?us-ascii?Q?carcSfEzCDMtz4p6ShRhJAVlffGsUb4aJY61OQd/RFNYC1yTwqCa//+8P5Ph?=
 =?us-ascii?Q?ee4pUNnMVQOl+uUusmQsOr3xCj+9saS7hLCqLsj1G26iA6baa4lrwLkgnW+g?=
 =?us-ascii?Q?BV1n12pGz5lMuhoq4fYB+0xxkmS45ACE5E3N4UI8TXrxWGlBPaj3ro4tiKl3?=
 =?us-ascii?Q?T4NPe0V2m722UvWPpP2jcgL+P9F/P5cc8FWOpDdISvUjxqfgQR2Ei4gFXMik?=
 =?us-ascii?Q?Xsk/XdcXZ7+fiKD2/Dy1pkrTbH4sOK2eGwPf2ehR1sfzE8iBozCh4I6xObsy?=
 =?us-ascii?Q?tkBsfxNOhOVJ2d67Dvwne8Tmc9lM06W25npqsHdBWGzJNiuSesSNt+EiSlCc?=
 =?us-ascii?Q?R1bdFsl0xmXb6noIA5nyVVk4lZRNeYIDwJnAz786ZlSM9ne1ZbfZPvioZxIw?=
 =?us-ascii?Q?D4bKjFgmUgtSgEs9BEPyJwsOVJBmXOM83gC+?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(82310400026)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 00:34:36.8896
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: fbdf9d8d-4b16-48ca-146c-08dde5caaae0
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH2PEPF00000143.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW5PR12MB5598

Change find_virq() to return -EEXIST when a VIRQ is bound to a
different CPU than the one passed in.  With that, remove the BUG_ON()
from bind_virq_to_irq() to propogate the error upwards.

Some VIRQs are per-cpu, but others are per-domain or global.  Those must
be bound to CPU0 and can then migrate elsewhere.  The lookup for
per-domain and global will probably fail when migrated off CPU 0,
especially when the current CPU is tracked.  This now returns -EEXIST
instead of BUG_ON().

A second call to bind a per-domain or global VIRQ is not expected, but
make it non-fatal to avoid trying to look up the irq, since we don't
know which per_cpu(virq_to_irq) it will be in.

Cc: stable@vger.kernel.org
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
v3:
Cc: stable as a pre-req for the subsequent virg tracking change
Call __unbind_from_irq() on error ro avoid leaking info

v2:
New
---
 drivers/xen/events/events_base.c | 19 ++++++++++++++-----
 1 file changed, 14 insertions(+), 5 deletions(-)

diff --git a/drivers/xen/events/events_base.c b/drivers/xen/events/events_base.c
index 374231d84e4f..b060b5a95f45 100644
--- a/drivers/xen/events/events_base.c
+++ b/drivers/xen/events/events_base.c
@@ -1314,10 +1314,12 @@ int bind_interdomain_evtchn_to_irq_lateeoi(struct xenbus_device *dev,
 }
 EXPORT_SYMBOL_GPL(bind_interdomain_evtchn_to_irq_lateeoi);
 
-static int find_virq(unsigned int virq, unsigned int cpu, evtchn_port_t *evtchn)
+static int find_virq(unsigned int virq, unsigned int cpu, evtchn_port_t *evtchn,
+		     bool percpu)
 {
 	struct evtchn_status status;
 	evtchn_port_t port;
+	bool exists = false;
 
 	memset(&status, 0, sizeof(status));
 	for (port = 0; port < xen_evtchn_max_channels(); port++) {
@@ -1330,12 +1332,16 @@ static int find_virq(unsigned int virq, unsigned int cpu, evtchn_port_t *evtchn)
 			continue;
 		if (status.status != EVTCHNSTAT_virq)
 			continue;
-		if (status.u.virq == virq && status.vcpu == xen_vcpu_nr(cpu)) {
+		if (status.u.virq != virq)
+			continue;
+		if (status.vcpu == xen_vcpu_nr(cpu)) {
 			*evtchn = port;
 			return 0;
+		} else if (!percpu) {
+			exists = true;
 		}
 	}
-	return -ENOENT;
+	return exists ? -EEXIST : -ENOENT;
 }
 
 /**
@@ -1382,8 +1388,11 @@ int bind_virq_to_irq(unsigned int virq, unsigned int cpu, bool percpu)
 			evtchn = bind_virq.port;
 		else {
 			if (ret == -EEXIST)
-				ret = find_virq(virq, cpu, &evtchn);
-			BUG_ON(ret < 0);
+				ret = find_virq(virq, cpu, &evtchn, percpu);
+			if (ret) {
+				__unbind_from_irq(info, info->irq);
+				goto out;
+			}
 		}
 
 		ret = xen_irq_info_virq_setup(info, cpu, evtchn, virq);
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 00:34:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 00:34:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097183.1451623 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urQbF-0000kV-NN; Thu, 28 Aug 2025 00:34:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097183.1451623; Thu, 28 Aug 2025 00:34: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 1urQbF-0000jO-HX; Thu, 28 Aug 2025 00:34:45 +0000
Received: by outflank-mailman (input) for mailman id 1097183;
 Thu, 28 Aug 2025 00:34:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Rla7=3I=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1urQbE-0000Oa-P0
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 00:34:44 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on2060b.outbound.protection.outlook.com
 [2a01:111:f403:2413::60b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c980addc-83a6-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 02:34:43 +0200 (CEST)
Received: from CH3P221CA0017.NAMP221.PROD.OUTLOOK.COM (2603:10b6:610:1e7::16)
 by PH0PR12MB7981.namprd12.prod.outlook.com (2603:10b6:510:26c::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.13; Thu, 28 Aug
 2025 00:34:35 +0000
Received: from CH2PEPF00000143.namprd02.prod.outlook.com
 (2603:10b6:610:1e7:cafe::7d) by CH3P221CA0017.outlook.office365.com
 (2603:10b6:610:1e7::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.13 via Frontend Transport; Thu,
 28 Aug 2025 00:34:35 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CH2PEPF00000143.mail.protection.outlook.com (10.167.244.100) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Thu, 28 Aug 2025 00:34:34 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 27 Aug
 2025 19:34:31 -0500
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.10; Wed, 27 Aug
 2025 17:34:31 -0700
Received: from amd-BIRMANPLUS.mshome.net (10.180.168.240) by
 SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39
 via Frontend Transport; Wed, 27 Aug 2025 19:34:30 -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>
X-Inumbo-ID: c980addc-83a6-11f0-ae26-e363de0e7a9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OLaKtVP7XF4mQE29CjvSkeTwZTRV00N2FPeSN4Zk1LWqsyWT9Z6APFEjf2dtPI+TWSLjaMa8mqMEZbUZJn1o+OQTQETviTK/thuqV4Ya07nM5Yp01ifjlK0j47z6KUdEjmfex7ntZk3ztuyPt+3l8YNs6Vr/54FSWK3mghf37A3vwiU48dbBwDWqYqIfewuyJfzO3B7ZqCsKE7Sa+oV+zXjE/nizpVnhRu/A/plnPedmvoOabMAkGdR9Jqqi9/WHsfy7H9PYSe9HD41G3ksiRGxc3/XWapFJuvM3YgObsA/6C/70zh7+oOEwYKM2g+pbssGMRlyIzeniIEOiY+827w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=NkpL+bA00dMgKT7xrwZLxxLo891ByJ0bYLULdHYLwb0=;
 b=hC2Emc2p7rPrxdliq/1zLUqYyZxg2t9s7RJYNWRJe1IoAHXTsGznc8RmJ79lZDXF7reapyNJfJWdpx/ZtNfZOKvacSPoetH5CyP2PlXfQA9kQfIJcVqEpZ6R3Zh8FPO3fPei1CiqzRNCv0ZzGX+hwmBc5H5kwzwEocPI/xwK5p1ckKVmwSeTzoHCJi6wAuR1cfvDxOLqALCuDukdV9HtfN4fgoNJzoVm4Qi5xWXg2x3Y2SYlR6sJgWb/vLsFwGryI7XILHDqC2DT3Q4lF1TTWC5G8rWsJ8fSPjUYbXwnLWlptY1BwZbz4LY6S32j/knvAKL0BOTbhIt3TKMtocH1Rw==
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=NkpL+bA00dMgKT7xrwZLxxLo891ByJ0bYLULdHYLwb0=;
 b=hctcPPFZtrcfwWxB+XiCnAeV0qog/4ndjUEjmkTtcZoA60vMD31pCsVgSrCinkPYuvFs2Dve5U7VrkDPjXKdxQiMUNbcn3qPj7LHNXzQup1fynptdw5rjOtUxTUAfv6XUYoymf9nT2ZaMZkIgW1XgN7MkJQ7DLQxh7Wiu/fpQyA=
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=SATLEXMB03.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: Juergen Gross <jgross@suse.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Oleksandr Tyshchenko
	<oleksandr_tyshchenko@epam.com>, Konrad Rzeszutek Wilk
	<konrad.wilk@oracle.com>, Olaf Hering <olaf@aepfle.de>
CC: Jason Andryuk <jason.andryuk@amd.com>, <stable@vger.kernel.org>, "Jan
 Beulich" <jbeulich@suse.com>, <xen-devel@lists.xenproject.org>,
	<linux-kernel@vger.kernel.org>
Subject: [PATCH v3 1/3] xen/events: Cleanup find_virq() return codes
Date: Wed, 27 Aug 2025 20:36:01 -0400
Message-ID: <20250828003604.8949-2-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250828003604.8949-1-jason.andryuk@amd.com>
References: <20250828003604.8949-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH2PEPF00000143:EE_|PH0PR12MB7981:EE_
X-MS-Office365-Filtering-Correlation-Id: 3b1e720b-9986-4dd7-0506-08dde5caa9a8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|36860700013|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?1t93Q+90NaHdIU7KpNaVO3ljLm34OvjZ2gNJi0lifo0Yiid65ksAKnaEy2Uc?=
 =?us-ascii?Q?zDXVwMZP8bkpnlKyBMhxtlD3UnvlKu1Q9Edhs6eCJ0ZJsNYf5CP1CGvN8jqz?=
 =?us-ascii?Q?jokpq2TR3qgr9+hqOfHrPzqrhH2cbxXDVSnwySH4QmGzdQpMcQO9zPgI+0I4?=
 =?us-ascii?Q?6IxDQ/w/9I8ibqZaykU1QiEFDKp9uNAixAfpclIR/eNHjVtsBhAFhgxTNidN?=
 =?us-ascii?Q?7BpfvFmTEx06kZtwlOA17mEov30n4lCSaoy759rwmOI96N2HiYkTCFwB/Mhg?=
 =?us-ascii?Q?f3kF/IgDItAQo6ML+7ZyGLxlrwU02VsljE2HjSW+J7yv6C7l9lsY+V3RNWrr?=
 =?us-ascii?Q?nBz1U3m4ak1rE5pztOocJesJdiwndZmkSwLam/JY+ySp69LofwJuTYhM+WpE?=
 =?us-ascii?Q?bw4QwAxhc0TNu6p/5wZNl+BNV1aeHg9SWcN/Mqy6i9zyBK9jI42Qe4eCkB7C?=
 =?us-ascii?Q?1Abp2h3h7PrjPGFOXdCCaJ4d9neg4e5o3eGpind8YWUKTu6YRW3zXhfMX9+o?=
 =?us-ascii?Q?RfmpXVNVtRTr9fOnBjrf/uSetLksifGUVW4r1XEA43QMYjr7JQ0CoKFjRXDB?=
 =?us-ascii?Q?OHbr0dWMi8F2pkcBqu6LAg8F7yr7IZUaxTUhA9CvdzEugOt01pNIwogG1KXk?=
 =?us-ascii?Q?qox8XJveYewNR7mWf1Xeypo0llbL9OQCWYBom6RjA9tXMHE4pXHyeCZ9h31a?=
 =?us-ascii?Q?YgFrMeJHKLYqjSbqgfKaZr/NQ8jj6ZmdWcGNTPvT8fw1ja1AoQon5pg7tuQG?=
 =?us-ascii?Q?rZtj8ZD9XjLVK6zu1EnvkclZQyArRUhk08UUoqOtM7w2pDapDX8nlsaOEdQt?=
 =?us-ascii?Q?MKEml6V/GUKPkv3KxoyXglCwvaajMsFJdhx9hjq3CZu8fCRz4fIhk3ezP4ps?=
 =?us-ascii?Q?icPm0i5WHyiZ8pD45s+ZUioBgwKyijpc1oFPFXygIDuqDULAgs4BYmqh8It4?=
 =?us-ascii?Q?VksxPT+siDBzobaAQpqx+GbYTAOIKbfzgzJDpyCO0nrOePNYz2piDWk1Nm5u?=
 =?us-ascii?Q?5qxUG5sUogqOyDlf8zwtzeTX6RgCzbwhX1Mmtxe2I3/Og+P6legNsJ7edf93?=
 =?us-ascii?Q?ieuqigfFLU4hRRfA0mss0mec3NxJ6NKvPyhS8ZmW5+ipVWdVhleNdjVlnptY?=
 =?us-ascii?Q?fNEQ91ESnU6A3xa96S6OZUDLkLTIsDQUd5svsaJN+tp/MJNBb7QYCzg4zFZk?=
 =?us-ascii?Q?kWiit25mvW2HvF7q1VWdFS5O/AV1qB8GFbfBV85s05uMKvdEr2UbGJqCTObi?=
 =?us-ascii?Q?flM1+hCiYlLYhb9Q3NxQsOOaMnFhTC1gbQoSW1KUcZQrT5LoRZX6TJ11vnFC?=
 =?us-ascii?Q?ndtXWDesRpAQrb8QtNgq06vAMCFqX9lNO8l/Of0hIs3knM1Mqv8kCQBSG++9?=
 =?us-ascii?Q?ALhc19LGrThz6qEktI4t5iAG07MwtOnBiD83aXBSrFOZPZiB71YJxJNIsLyH?=
 =?us-ascii?Q?PSxBCupvzBVTq3k5E9NjLEKbnre/dxj3sHhjJILzpGKTcWudE6GoNQBT7zz1?=
 =?us-ascii?Q?Yx0IWxocg+ytWMspz0ZE8cVFj72/G+6wt4CK?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700013)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 00:34:34.8450
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3b1e720b-9986-4dd7-0506-08dde5caa9a8
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH2PEPF00000143.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB7981

rc is overwritten by the evtchn_status hypercall in each iteration, so
the return value will be whatever the last iteration is.  This could
incorrectly return success even if the event channel was not found.
Change to an explicit -ENOENT for an un-found virq and return 0 on a
successful match.

Fixes: 62cc5fc7b2e0 ("xen/pv-on-hvm kexec: rebind virqs to existing eventchannel ports")
Cc: stable@vger.kernel.org
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
---
v3:
Reduce rc's scope
Add R-b: Jan
Mention false success in commit message
Add Fixes
Cc: stable
Add R-b: Juergen

v2:
New
---
 drivers/xen/events/events_base.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/xen/events/events_base.c b/drivers/xen/events/events_base.c
index 41309d38f78c..374231d84e4f 100644
--- a/drivers/xen/events/events_base.c
+++ b/drivers/xen/events/events_base.c
@@ -1318,10 +1318,11 @@ static int find_virq(unsigned int virq, unsigned int cpu, evtchn_port_t *evtchn)
 {
 	struct evtchn_status status;
 	evtchn_port_t port;
-	int rc = -ENOENT;
 
 	memset(&status, 0, sizeof(status));
 	for (port = 0; port < xen_evtchn_max_channels(); port++) {
+		int rc;
+
 		status.dom = DOMID_SELF;
 		status.port = port;
 		rc = HYPERVISOR_event_channel_op(EVTCHNOP_status, &status);
@@ -1331,10 +1332,10 @@ static int find_virq(unsigned int virq, unsigned int cpu, evtchn_port_t *evtchn)
 			continue;
 		if (status.u.virq == virq && status.vcpu == xen_vcpu_nr(cpu)) {
 			*evtchn = port;
-			break;
+			return 0;
 		}
 	}
-	return rc;
+	return -ENOENT;
 }
 
 /**
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 00:40:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 00:40:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097205.1451637 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urQgm-00030m-Cl; Thu, 28 Aug 2025 00:40:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097205.1451637; Thu, 28 Aug 2025 00: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 1urQgm-00030f-9b; Thu, 28 Aug 2025 00:40:28 +0000
Received: by outflank-mailman (input) for mailman id 1097205;
 Thu, 28 Aug 2025 00:40:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Rla7=3I=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1urQgk-00030Z-Rb
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 00:40:26 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20618.outbound.protection.outlook.com
 [2a01:111:f403:2413::618])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 95bd4c14-83a7-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 02:40:25 +0200 (CEST)
Received: from MN0PR04CA0020.namprd04.prod.outlook.com (2603:10b6:208:52d::19)
 by SA1PR12MB6918.namprd12.prod.outlook.com (2603:10b6:806:24d::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.23; Thu, 28 Aug
 2025 00:40:20 +0000
Received: from BL02EPF0002992E.namprd02.prod.outlook.com
 (2603:10b6:208:52d:cafe::4c) by MN0PR04CA0020.outlook.office365.com
 (2603:10b6:208:52d::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.16 via Frontend Transport; Thu,
 28 Aug 2025 00:40:20 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BL02EPF0002992E.mail.protection.outlook.com (10.167.249.59) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Thu, 28 Aug 2025 00:40:20 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 27 Aug
 2025 19:40:19 -0500
Received: from [172.31.63.243] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 27 Aug 2025 19:40:19 -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>
X-Inumbo-ID: 95bd4c14-83a7-11f0-aeb2-fb57b961d000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FGTOm1DaAAGqmqGbF+8krHmyGwQyE7BORi1DTQn7EAn/N+j62NJHx0FX74ywMNRfndrVbRVT1ztgZETYDZ7vL8lbu8lA/VTpxeZPfMouW8fIZ2cSkeW49gHNqYLRW5IRsQThQesJEQw3etpMLqNs7qSt4WLyTgucwtMn9OkkZJvnzu9ZI6NPNiyLBkIjtq4RsD7F0Rv2S9xZz2Xfti+rPKBjS+o6ymFBUpjRPp8bjTKvWCx43C4aDwjr3cCGdi3LQZ8dhew4jjCx7cfNugAzQbHpPbD/89NYN7gbWw4tymy46dLf0MktYi5DrxuLVTGBeaISbjO46/0Ey5onWScwIA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=P6LHKjkYLwvIWBYcjiJXOjw7f+H2DQIgoZneHB/DzFQ=;
 b=eQ5NEKD3eLKVWDAC4+c27vMZFEPYk4Rq7Zfje82tWnBOmzS/JuP0GpFupCy/ClVadYLc4nnnCz7jjn4cWP+fjap8+YwAQCkZtD0kI9jo1yKX6/5y/G43t/IkH8NZem1iTaaVcxzLXIGiRUVagT9lfxWVQwo7BUb3IACahLqcrO4DrIulJhuGhJAF0T5BQKQ6p3J+5ebVIFvdmDgQBiN9QdyWxRXIV5l8rR+VYuzThMwMsyPpDhX5f6CS9nlu1Apj2q153bL4OGusmnykUDyGhGMRhtswLb7032seWVdeq3LEIEXdBwLmdHWT/MJhUKGAtI323oxN5aubRaDqOZBWQQ==
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=P6LHKjkYLwvIWBYcjiJXOjw7f+H2DQIgoZneHB/DzFQ=;
 b=vW1QWB1hWgGzzlSZMhguufHWZlGnkmhYaMMWBNjxrmvjIcOIiFiEXIniw8AG0TKxvdvZuakq/uYca/dNYv1iXn4r8sTVkCI1zZUx/yAHkbK5QJQklSTGrD+eC9gDovFg1my6KF9A2AlhKWa8gakAycHEKQS6GNetkgg63JikMcY=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <983361ff-2f92-4c36-96ed-8718cd33b6f6@amd.com>
Date: Wed, 27 Aug 2025 18:20:17 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/5] symbols: add minimal self-test
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: <ceef1876-8759-465c-9a74-309b6b92f773@suse.com>
 <879646dd-b55e-4b42-b637-d3b14570b880@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <879646dd-b55e-4b42-b637-d3b14570b880@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB03.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0002992E:EE_|SA1PR12MB6918:EE_
X-MS-Office365-Filtering-Correlation-Id: 2781f326-c3d9-4972-f424-08dde5cb7796
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|376014|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?UG8vRldMdVNyRGt1TElHSU9LN0lNcWFKbWpPQzVqNUtoZ3QzNDZTM3NvTHAr?=
 =?utf-8?B?NVhVaXRUZWMvYVNxV3loZ040V0lYemprOVNnMWx5c25Fd3RSOWJOV3JudkNH?=
 =?utf-8?B?elczZUxHT0xTRVV0TlJGZTRVSkxpVTYxWi83WmgzWEVnYWtlaUJzMlBkWlA3?=
 =?utf-8?B?dTE4bGpHTjJSbm04UGFQYW96NENjZVBIcnZ5YlFPajBrZ3h4YVl0K0s5QmNn?=
 =?utf-8?B?WHhuSDlOMWFiWWpBajBJeElKTWRBSzhpOWlUREREdnplQkR1ZXYwQi9IbU91?=
 =?utf-8?B?VmRwaEtjZGhlM0svM1I5RktFQjZmNHN0cE5OeGRGam1MNXpFQTdwR3dBSjVU?=
 =?utf-8?B?SVd6Q3czYjMzSEFrNkdLQUFFc2E4eHlDNEFFU0RPalRzL3BkUWVpclFZbGRv?=
 =?utf-8?B?Rm1hcU0zdHlIdk0zdWwyMUxWeFpZd2RDbVVOdjRaeGp5akhiL3RnNDFOOUZ6?=
 =?utf-8?B?WCs5VEpHaGY3VWRvNGQ3ZlIvU1REb3hQUEFybEdJMkdaVkhQaU55U29hOFB2?=
 =?utf-8?B?MXFSd1NHZGRwVzRIRHVOQXdCSFVJRmdxSFhndjVMVTBwdENPQk1yektPdFpY?=
 =?utf-8?B?RWNSNy91YmdZYzd3WlFQdUJEVlFrTVRZZUYvV0NGVlQ1WFJOTkMwWmJRZEtj?=
 =?utf-8?B?MGMyY25hVklIb0VndjZxTEwxS2tKc0h4NEFTRG1kek5BVnVjbHZObHlUNXZM?=
 =?utf-8?B?T280QkNEVFEya0svUElBUXlmNlRwM2J2VHdaaWNTZmNvbm16QTJ1c1pTWDdi?=
 =?utf-8?B?Y2d4T3BkTUhvcGhFL3UrTU5hTVZkUFhFaWxGdEo2VitWbnV5YkdHb0h3VXFN?=
 =?utf-8?B?NXBUNXhiN0JiZ1BWN1hqZkczQzdBTUIwV2psYkJsTjlWOVE2MzI5bWQ2azVD?=
 =?utf-8?B?SXlGeE1nOUhRQUtIY0pFQmVtRksxUkxhVkJMa3pkdkxFS1BGYU9JdnFXRXRD?=
 =?utf-8?B?YlhkcmNkZ3ZVbzN3aVlJT2YxN2JHZHg2dWZvU0FnQ0hMKzlQZTNpWHFXcU1C?=
 =?utf-8?B?Q0dBMmlqM3dTcUxRZ3FMcVlubFVRVG9OMDNvMUhCNnoyejJFK29xaEprOGg3?=
 =?utf-8?B?czVqRmp5UWNXcHJpYU9OVGFVMG1UYWpZRlB4c2xrQUx0dThTd3c5MkpzSVZQ?=
 =?utf-8?B?bENCTHF6R3NGT1JZTXI5QnAxdWtvRytVVWFPdy9qd1Q3Q2hmbHkwbG9sZ3J2?=
 =?utf-8?B?T2t2V281YXd4NVpkVDZrakRQVHZ0TG5FcmpZR3QvOTFOSkpZNEM0TGg5QkNG?=
 =?utf-8?B?RTRqSnlYdS80RlVtbEtaRnAvUkV1RS9yQ05wS25IUG1pOTZScHpqdkVHTXFq?=
 =?utf-8?B?dlZEOTlEd2NXZTB2U1FORnZjYU9XSFY0aG1TVzRGRkFWQ1lzcmlXNW9UejZ1?=
 =?utf-8?B?WWFWY2ptbEcrNStWSXRRMHlzRHpINU1mMTdKVTdzZlMrbSsvQ2twSDc3dGhs?=
 =?utf-8?B?TllLWm0wWUk2bnFmY1M5dkdlVStTV0t6Zk1YejF4UEVzSGVybUhFV2tNMkx6?=
 =?utf-8?B?U0pnTFNYd09ROTBONzljUlc5QzJkZ0lZcHpvRDNPT2pTcWY5L3Z4c0hBY0NR?=
 =?utf-8?B?WXRvaklJZVhOUlltbzh5WWttMy8wMk5mbVZCa09qc0tQQnA4NjVQODFLQ0l0?=
 =?utf-8?B?SFBBQzhiaUIrUkZWdjg2RDczQ2RpRWFCSDVDZ2xjbnh2L21Ub3RmY0l2TFpq?=
 =?utf-8?B?bTFqamVabWJMd0dETGc0VGRBbTBpZUdvdTRjS29tM1NKaWtvay83dDlFMnZF?=
 =?utf-8?B?Ums5YzdqMldiTDRsanFIWk1EZ3F5bDRhK1BZVjA0SUdqTFF2bjQrZEs4Zlh5?=
 =?utf-8?B?Wm41dks1clA1UStqdDJIeVhzYkljbkRwUGdzYUlqMk9ucTJ5a0VNNUJpdlQz?=
 =?utf-8?B?S3ptVnFFR2p0c29INmt5UXVMZXFuSmdZMlNLNkFFSXVKc3pBY0xuVWZlN0J4?=
 =?utf-8?B?STBpOFp1K1RrL3JvYm1jUU9mY1laWHE5Nk9EcGZnblo5cDAzWVphL1lQZTZn?=
 =?utf-8?B?U2k3alVkOEd3VjlWR2F3VXpYcnJqWnRseWFpUXQ0Z2U4YzcrNmxTUlVmclIv?=
 =?utf-8?Q?bWLd6a?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(376014)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 00:40:20.3546
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2781f326-c3d9-4972-f424-08dde5cb7796
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0002992E.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB6918

On 2025-04-02 09:57, Jan Beulich wrote:
> ... before making changes to the involved logic.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 00:40:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 00:40:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097212.1451646 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urQh5-0003Sc-KJ; Thu, 28 Aug 2025 00:40:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097212.1451646; Thu, 28 Aug 2025 00:40: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 1urQh5-0003SR-Hc; Thu, 28 Aug 2025 00:40:47 +0000
Received: by outflank-mailman (input) for mailman id 1097212;
 Thu, 28 Aug 2025 00:40:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Rla7=3I=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1urQh3-0003MP-Dk
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 00:40:45 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on2061a.outbound.protection.outlook.com
 [2a01:111:f403:2414::61a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a09c1ffa-83a7-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 02:40:43 +0200 (CEST)
Received: from PH8P223CA0022.NAMP223.PROD.OUTLOOK.COM (2603:10b6:510:2db::27)
 by SN7PR12MB8819.namprd12.prod.outlook.com (2603:10b6:806:32a::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Thu, 28 Aug
 2025 00:40:39 +0000
Received: from CY4PEPF0000E9DA.namprd05.prod.outlook.com
 (2603:10b6:510:2db:cafe::4) by PH8P223CA0022.outlook.office365.com
 (2603:10b6:510:2db::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.22 via Frontend Transport; Thu,
 28 Aug 2025 00:40:39 +0000
Received: from SATLEXMB04.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_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Thu, 28 Aug 2025 00:40:39 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 27 Aug
 2025 19:40:38 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.10; Wed, 27 Aug
 2025 17:40:38 -0700
Received: from [172.31.63.243] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 27 Aug 2025 19:40: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>
X-Inumbo-ID: a09c1ffa-83a7-11f0-ae26-e363de0e7a9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=IU02y+VEYWn5WbDfS4ID/X+jRKlRxLtFJwmiRqQL1Kb1o7tvypJgQL75PDlDvHkUeRf2i3nD8dUrVGNMfRsTpiOpfzU+VoIn6hIVxH3C2ZYjQjAO9hB9/DKz6ymMUle08GLdKq4jCPzu+//pAjMum2PoVWPQvXrnhNEiBQaUuKLRZ+EVLeonX3Qy2Bbu8CwLPOzSSgMKfXdPqMzqQxehXLoQe+OApxpN/+yb8V59CKmya40q9Z09VyEtEvuWQze1I7Eivf4Xw4EWLraopOfBNiQYe2pXU2JgV16G1+WwLfQzciCR/Valsd/Y+qWQEGQ0lblPZaB5o+zCfsF8/jCDkQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=w4cyw8hU59UlTG59IPAhRC9P7/TjVATwWDM2how3Bfs=;
 b=ScFFTUKlbCbvrZzW+s0lTi3tF58Tm6YHaSQDeWtPJQq2JAIfCbsGCEEwVBtXzwnzjpbCxuMdTezW0BgbzoonHB6HK10/aT2cIqf5rWPA9NjPWmXGcjukYq7n2CrcRp3dahaGIySTJ1dbeCSgmfQXlxm8DMpeZTYtmF9B9StgPOJlE0GsiDg5XI+R2HgzlTomRHEu1pO9x20Ai4N0Zpwa6wH0+yEms6HF4+BVDxa217N1qfQ95CXG7tbpg9hGGMZSbq2U8yaBD3k7nRkvOorvW8L466AwInJK6pTdUwPOxgEOSlsdApIS7nZ0O6IJETYAPgekQwegyNhqnWt3ANVihw==
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=w4cyw8hU59UlTG59IPAhRC9P7/TjVATwWDM2how3Bfs=;
 b=OH1lws662RULuoCICTVRy2XAyHWmDmbZsJ/vjRNYMzuMZ4EfZkJnuR6s+/r/cMTNJPMq98amCFVc1S9HfRwjMHpI/EK3wUj0sc+XVqsiggnqNTcEHaZZWaRV3w9oMtB31zEp2Pg9q6urzPzs8TsWSNU5jDxlSFiBdYGfNwBrc1k=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <9378d846-0e90-4be6-92d5-1a5d639fa137@amd.com>
Date: Wed, 27 Aug 2025 18:20:30 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/5] symbols: split symbols_num_syms
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: <ceef1876-8759-465c-9a74-309b6b92f773@suse.com>
 <5015ce6d-a961-491b-9fe7-f6628329f3f0@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <5015ce6d-a961-491b-9fe7-f6628329f3f0@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9DA:EE_|SN7PR12MB8819:EE_
X-MS-Office365-Filtering-Correlation-Id: e0267803-e595-4519-7080-08dde5cb82bf
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|82310400026|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?WXhSOVpaSzIzRXg2RzJKWUFIOStJYXpJR0xXZVVtbUt5RkRGWXJRZWxXUW4z?=
 =?utf-8?B?L0t3bkFwSnpXT1JGQzN3NGVwSEE0TUdIQ21HTnJiYVRpNGhXNW1SMUQwNVdN?=
 =?utf-8?B?V29WOGwrZ1c4eVFLdzhxZitWd0NUY3hsUm01djFCQjhRRUkzZUlDckMwUUJz?=
 =?utf-8?B?MDdla0RjcVllcTA0RTFaTU4vVkU1NjRMaWlxZ21CK2RoRmVkb2ZFamlqbE9H?=
 =?utf-8?B?YVI4SWZTbERaN3BraTlCWUtQMkhnRDdMdGFldGNFRHZhTkFOck11M1FMQjht?=
 =?utf-8?B?K21ORy9aZ0MzZ2tvREdGSmpVSFhqN2hIYmJRYlI1dVcvLzN1VUZ5aTNYd09T?=
 =?utf-8?B?UHhibFIrV1Zva2ZjRzloSUs1dlhtaGcxYWY1d01PakJPV3JseVJEVHpwL3pp?=
 =?utf-8?B?RUxzOSs5bXlpWnJaM3RJY0JyME9HUC84S0pjemM2cHMzdm04eGJCTEQ4dW56?=
 =?utf-8?B?N2V6eTlxZ0lRZTNVSjBqaUVCbWQ2QzB1TWN0NXhKVmFrdUNSVHU2aWdsbHRa?=
 =?utf-8?B?bnpTaFBLUGNVTnBZczNSNHptMnRTUXNBUmx3d0Q0UGhtdVpYRm0yMVM2UXpj?=
 =?utf-8?B?QXcrS3ZCRXNEMlEySkpQM29UOUMvRDYxd2JWVWFiT0pyVGMxK3hjaWZMU1c4?=
 =?utf-8?B?bHpWcGh3UWZWRWdJcEJwRS81QXRTbWZibXQ1bEtxd0YwclNGZm9idk42dWFu?=
 =?utf-8?B?dzBzY0pmMVErZ0l1VkZlWG8rbVlPRnBVSnY0TmFjTnpoQURhWHExcWpQbVRQ?=
 =?utf-8?B?SnVpaHcvY1grT1lwMlFIc2lDOE1qL1ZTejNDbHVtTU40QU9RRDlFa29Xakh6?=
 =?utf-8?B?NFJnQ3NXZTdJdSt0YVZBK3dCQjNaRW1WWXAwU2ZaYmNZeUtNTDlRWVhSVk9i?=
 =?utf-8?B?bVZwSmoxWjFQZGF1T1h6YWNVeUxaeWlldVdQdklzMTYrdERocGhVWm16cFNV?=
 =?utf-8?B?dGxrYWlRV1I1bzREOUlIaVZHSXErc1JvZ0FtaUZmMDhwZzNlSjNZYTFFamJq?=
 =?utf-8?B?WDcva09zKzhzWHRPb2FVUHFYTW5DSWZleVpGSnYvcWdQM2doT0dTTlhxQVpW?=
 =?utf-8?B?eUt4bWhpOGxRR1JVak10dlhKMmVWWVlMa1VFRUE3cXpDT010eENKT1M0SCtO?=
 =?utf-8?B?V3o4WlFJcEtHdnRNZitSQzFycXVHOVM0SXBVRTBqc3NlT29STmFJWkdQM2RI?=
 =?utf-8?B?a3NiK0VrZWlmSllUdUp3YzlwSDlGWThDbDR5NWJ5Sm1SUnNseVgvY3pXdmQ2?=
 =?utf-8?B?NmRXVHlZdXQ0V3VhVm05UGR1RHFFK0xGYkl6cnlqZWVMdVc5OTRNd2FMVXR6?=
 =?utf-8?B?Nkl3TnFrV1dQYmUwZ2dxb2ZYa3plN2JjMm5GalVXTUlKdTFNMEVRMkE5V3NG?=
 =?utf-8?B?NlZlZlRsKzFnY1NIVlF3YWRkRGJaUmMwNzBHRkpQSElQUStScjVrT082Z2RD?=
 =?utf-8?B?cEVBSnN0aEZicmVaQXQvYVhtdSt5UEFYQjl5U1pZY3hHckhkQUhYMXlvZ3JO?=
 =?utf-8?B?M1RUNk80Ky8vUFB0dXNDSkRMZkVJT2pJNUMxZTlnRStuQkFtbm92Tll2dDUy?=
 =?utf-8?B?Tm9iTWNyOWNHc0hMZVF4UVRDdmpYdXk4ZHI0RWhwSzhpVitnbmp3a2grS0Ra?=
 =?utf-8?B?OTNkM2QrUnE5RDVydFBMY09GdFE2dXZKMldycG1zem9IUlN1eGJUWDFBYjlP?=
 =?utf-8?B?RlpQek9MaGpQVGtLK1BxN3A1M3FHUHF1UFo0L3ozYUZVOXFQTlBFYkFVWTQ0?=
 =?utf-8?B?ZXdva1Z5SDhRTzFJbTJWV1NBZnFTbW1oVVh1YnI1ak9YVlFhRXFVbzdEeHU1?=
 =?utf-8?B?N0I3RURHTmM2TFZOMGhWYXZiQlRscGJvbENodFBuUHFNZWZDVUVhdE1aZldw?=
 =?utf-8?B?UTZrT094bzdOM25qM1pEUlU0cVBTSEMzUk14dXRhTENvOHJtZnlMT05BVzdM?=
 =?utf-8?B?T3dVZG5CSmhzeXRlTVpRZEU0NEJXbXQ0WHlNU3RiY3REeUROTlRMOFpST0Ix?=
 =?utf-8?B?UGRKM2h2b2pLUEYyaVNvWWNuSXo4MjNvVS9rOVlwQUEyWUZyQ2tmNjNvM3I5?=
 =?utf-8?Q?j7e4lT?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(82310400026)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 00:40:39.0307
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e0267803-e595-4519-7080-08dde5cb82bf
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=[SATLEXMB04.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: SN7PR12MB8819

On 2025-04-02 09:58, Jan Beulich wrote:
> In preparation for inserting address entries into symbols_addresses[] /
> symbols_offsets[] without enlarging symbols_sorted_offsets[], split
> symbols_num_syms into symbols_num_addrs (counting entries in the former
> plus symbols_names[] as well as, less directly, symbols_markers[]) and
> symbols_num_names (counting entries in the latter).
> 
> While doing the adjustment move declarations to a new private symbols.h,
> to be used by both symbols.c and symbols-dummy.c. Replace u8/u16 while
> doing so.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 00:40:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 00:40:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097219.1451658 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urQhC-0003pY-2u; Thu, 28 Aug 2025 00:40:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097219.1451658; Thu, 28 Aug 2025 00:40: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 1urQhB-0003pR-Tp; Thu, 28 Aug 2025 00:40:53 +0000
Received: by outflank-mailman (input) for mailman id 1097219;
 Thu, 28 Aug 2025 00:40:52 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Rla7=3I=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1urQbU-0000Ol-6Z
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 00:35:00 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on2062f.outbound.protection.outlook.com
 [2a01:111:f403:2416::62f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d35669e0-83a6-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 02:34:59 +0200 (CEST)
Received: from SJ0PR03CA0216.namprd03.prod.outlook.com (2603:10b6:a03:39f::11)
 by MW5PR12MB5622.namprd12.prod.outlook.com (2603:10b6:303:198::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.13; Thu, 28 Aug
 2025 00:34:54 +0000
Received: from MWH0EPF000989EB.namprd02.prod.outlook.com
 (2603:10b6:a03:39f:cafe::af) by SJ0PR03CA0216.outlook.office365.com
 (2603:10b6:a03:39f::11) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.16 via Frontend Transport; Thu,
 28 Aug 2025 00:34:54 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 MWH0EPF000989EB.mail.protection.outlook.com (10.167.241.138) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Thu, 28 Aug 2025 00:34:53 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 27 Aug
 2025 19:34:49 -0500
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.1748.10; Wed, 27 Aug
 2025 17:34:49 -0700
Received: from amd-BIRMANPLUS.mshome.net (10.180.168.240) by
 SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39
 via Frontend Transport; Wed, 27 Aug 2025 19:34:49 -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>
X-Inumbo-ID: d35669e0-83a6-11f0-aeb2-fb57b961d000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MbN/RmRMHKOBmxDV83GN9CNkjF0OUIOHezWdTttaHjqmSoeGgBLmzGeEDd60XbfrYQVaCmQJUrsMh0ABXS1jgXbGhUZpi0oln1I2PBYPt3JuMzuj+kOXusis/KqP6FKtcnLUYjplf8Ki5pX6U+TeQaTzQqO3yZHwVGNnvVsiOCeOu4Od0SH1U311qaMp8jrgNTbLw3qdqNGlY41yoRALuAqdhq4NAgk4ez1EdyC7BD9pNv87YLDQEC/ZERcrTxeYWEcKnKYwJjm29AjsobQxPjMVsEf64uguTjPh+HXEfCOgu2M6prN+wAJ66nzGLTkc/7yUUpRkvZgZ77qdyTEcFQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=hI0Gbe2mYNcrDAAQZRVPaNZt72D2cNKzUHir1F+hsOI=;
 b=kkdkfnrEGsWTUgDYsBNytx2U/0ccVBsgigBxBsVclUx6Cy+aRO3sO3IY4ErLs5A5wEaUf9NnDBjKKulb8ebVjWfYYB2Pyi8XgItKBynNBFygwBGFIVNs5HUVwnRPix7HZzdPHvpby4K0nc1ss6dm8mtxyaxF+uKbBlDkBFgVsfSmKyzKs52cd9j2BUDcj2rq6bjKqSiBfqebJFp342hskF7Mxi13V9htKF/3UEZ3tMGeAnMXCRXo3acBFw8EMtQf2RAxbmmdml2lknNcKg5wIcSJxkFOdmSAxhhzryxUQYsVOoT5MUMUsZTr27tkHH3bNkOvHXJ6eHpEdle9yDWmgQ==
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=hI0Gbe2mYNcrDAAQZRVPaNZt72D2cNKzUHir1F+hsOI=;
 b=02kL7aHoIIrG89VGrorrae11yVpuDizvbzr1IcOVdnS0OdyZDssCBiwSUdoFkUb+6aOE/8+5GUDnfDmMaZLhxpZPgM1ouyU5l/gL+puo32k3qkHgXPVQospPIZBvjomCQaP5oHMUxuGEUTiicfddHRq7InvgWodYjSrl7yKa7lc=
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=SATLEXMB04.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: Juergen Gross <jgross@suse.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Oleksandr Tyshchenko
	<oleksandr_tyshchenko@epam.com>, Jeremy Fitzhardinge <jeremy@xensource.com>,
	Chris Wright <chrisw@sous-sol.org>
CC: Jason Andryuk <jason.andryuk@amd.com>, <stable@vger.kernel.org>,
	<xen-devel@lists.xenproject.org>, <linux-kernel@vger.kernel.org>
Subject: [PATCH v3 3/3] xen/events: Update virq_to_irq on migration
Date: Wed, 27 Aug 2025 20:36:03 -0400
Message-ID: <20250828003604.8949-4-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250828003604.8949-1-jason.andryuk@amd.com>
References: <20250828003604.8949-1-jason.andryuk@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MWH0EPF000989EB:EE_|MW5PR12MB5622:EE_
X-MS-Office365-Filtering-Correlation-Id: 83ebc60e-547d-40b1-5b18-08dde5cab4ec
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|36860700013|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?Lu8Q4JnOBk00vpR6OekIUJqMS+zv4Wm99SZ2tUtQ+bOqdd2Zc0jwTYWb/UjW?=
 =?us-ascii?Q?cJDhYHxcjy7EfbHlz7+5Gy/Mki0jkWedYkDGRX599Tuj2Fy79OjN/qoirtTQ?=
 =?us-ascii?Q?AqM0UPMOo3VJdyAjn4l2NjOy2lZr9OxENKk2FdI7KStFfu8yAuUbC8iH8xAx?=
 =?us-ascii?Q?SKexhB6CXdhzKrvCHOkVlG17jYTmSr5oU5IIq0QuiKACKfq3831hbvYaXgZK?=
 =?us-ascii?Q?leqZMuBsct9STkSItYG55xg/eCSzIx+J5NHBN57YNuyJzIqin0ewBF99qZqB?=
 =?us-ascii?Q?Z0dB8J2LaRJZUZ8uNrBXiJjeK0yqEb+y3skWn6zQUcb9EymXkIvAxdWqtfoU?=
 =?us-ascii?Q?eJH5G6fNrr79ZzfG00w0Rf/cXecwEAMr8hP+1DJ/VZQErbWQLCZh1qVzY8Ch?=
 =?us-ascii?Q?WXPOPk3sp2dne4OMDsSL7vd6ypmmFc2lA9l7qeWL2oossxvlimJLdDEzJM+j?=
 =?us-ascii?Q?o0+sOxuFmo8NJ8WDtN42NwDjhd9Rp2UPUaeVJ4sBSsbboRlFMQc02S7I4Yej?=
 =?us-ascii?Q?IW5/3ucGIRUYrNwhKN85wVCzjuKV0FpU9mT08AeZeXikbqQQvqdK19048ywr?=
 =?us-ascii?Q?FYHEop3V1E57DSwhPkdcG5iMIucCpbfRaxyaUhS8ZqOg4esJkiabFunZj7LQ?=
 =?us-ascii?Q?y02swfBo08+zGsuMUrnVrq6tLpj05HLCvpp5RnjD0msNHxT+r2PkkVDZGjRU?=
 =?us-ascii?Q?b85N9NVcjMyLIAxdlVDgglOk6z4Vszgou4HQjbhc+9ovGBq8e0F3P9NJZN0i?=
 =?us-ascii?Q?7ttgBsHjzfdvCaSIHVndcm3dpU198D1CWx00RDCJTglz4OiCsK5LhVGxfY/y?=
 =?us-ascii?Q?Ipr9eZmG4O/WI6JSsHswIwgh8xDdkKFSEBdz5RVk4ForkpzcQnnD2jmxzfcC?=
 =?us-ascii?Q?vfsbLXvqwH+AIRaprXiFoayDPzx9YXBMDteyTblgzWKQNhtKUaHlQxn2lFb0?=
 =?us-ascii?Q?YO0hAYOgBRA52JNyrEhh1LScGfRbY/ABG6sqoVcbz0wq6+/ZyGcCDE0e1239?=
 =?us-ascii?Q?gwHzmQO3halk7HqKTuFIM0FcIzIHbqkgnKAzvKvb/8Gsr/XemarapmxZQ0Oh?=
 =?us-ascii?Q?ZBviCdd2nibkr1M8sSidcHZPDOtuAgNOhIkRLRCe9xPMaCoS6eYJN7Sl2hvt?=
 =?us-ascii?Q?XFpYzcwrWywawcxHlZDySJYvjtyPBjBGOoOB5yUAzpIVS4SVJlWQIGO2XvyP?=
 =?us-ascii?Q?KJXTRL53s4bx6pH9ikiQv7hEt7A6zIonFStLr3YEjoQabkTtenyVBwcU71VU?=
 =?us-ascii?Q?Qt+rx4tIBoG1/9uq/6LIvuUame2wx6ySTUBz9s72gbaoFIGXacdoeCi+tpES?=
 =?us-ascii?Q?u4j2k19upQGSdS6BHd3cPyQgRX7F9jMh8cTF/ga+EFdR5eLCqaz/3ZrLrAxB?=
 =?us-ascii?Q?3oMMf/egIUZzcy8+065I5afMbv6dqMFv6XMbetQMfcLRi68s/XSEZOxKnWMJ?=
 =?us-ascii?Q?y0eF51T+uzyy/8Jn77m2fBA8+Uwl8HSEHxRVVn8xGs9BGLk71DlcGTeUu3gC?=
 =?us-ascii?Q?U2hwdHodjRHtS5YvjhdkpM+cYevloTy9oxy4?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700013)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 00:34:53.6683
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 83ebc60e-547d-40b1-5b18-08dde5cab4ec
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000989EB.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW5PR12MB5622

VIRQs come in 3 flavors, per-VPU, per-domain, and global, and the VIRQs
are tracked in per-cpu virq_to_irq arrays.

Per-domain and global VIRQs must be bound on CPU 0, and
bind_virq_to_irq() sets the per_cpu virq_to_irq at registration time
Later, the interrupt can migrate, and info->cpu is updated.  When
calling __unbind_from_irq(), the per-cpu virq_to_irq is cleared for a
different cpu.  If bind_virq_to_irq() is called again with CPU 0, the
stale irq is returned.  There won't be any irq_info for the irq, so
things break.

Make xen_rebind_evtchn_to_cpu() update the per_cpu virq_to_irq mappings
to keep them update to date with the current cpu.  This ensures the
correct virq_to_irq is cleared in __unbind_from_irq().

Fixes: e46cdb66c8fc ("xen: event channels")
Cc: stable@vger.kernel.org
Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
v3:
Kernel style brace placement
Delay setting old_cpu and tighten scope of variable

v2:
Different approach changing virq_to_irq
---
 drivers/xen/events/events_base.c | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/drivers/xen/events/events_base.c b/drivers/xen/events/events_base.c
index b060b5a95f45..9478fae014e5 100644
--- a/drivers/xen/events/events_base.c
+++ b/drivers/xen/events/events_base.c
@@ -1797,9 +1797,20 @@ static int xen_rebind_evtchn_to_cpu(struct irq_info *info, unsigned int tcpu)
 	 * virq or IPI channel, which don't actually need to be rebound. Ignore
 	 * it, but don't do the xenlinux-level rebind in that case.
 	 */
-	if (HYPERVISOR_event_channel_op(EVTCHNOP_bind_vcpu, &bind_vcpu) >= 0)
+	if (HYPERVISOR_event_channel_op(EVTCHNOP_bind_vcpu, &bind_vcpu) >= 0) {
+		int old_cpu = info->cpu;
+
 		bind_evtchn_to_cpu(info, tcpu, false);
 
+		if (info->type == IRQT_VIRQ) {
+			int virq = info->u.virq;
+			int irq = per_cpu(virq_to_irq, old_cpu)[virq];
+
+			per_cpu(virq_to_irq, old_cpu)[virq] = -1;
+			per_cpu(virq_to_irq, tcpu)[virq] = irq;
+		}
+	}
+
 	do_unmask(info, EVT_MASK_REASON_TEMPORARY);
 
 	return 0;
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 00:52:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 00:52:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097248.1451666 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urQsF-00066p-02; Thu, 28 Aug 2025 00:52:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097248.1451666; Thu, 28 Aug 2025 00:52: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 1urQsE-00066i-Tl; Thu, 28 Aug 2025 00:52:18 +0000
Received: by outflank-mailman (input) for mailman id 1097248;
 Thu, 28 Aug 2025 00:52:17 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YsNu=3I=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1urQsD-00066c-G6
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 00:52:17 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3d5f6dc3-83a9-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 02:52:15 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 470DE601D3;
 Thu, 28 Aug 2025 00:52:14 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 94406C4CEEB;
 Thu, 28 Aug 2025 00:52:12 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3d5f6dc3-83a9-11f0-aeb2-fb57b961d000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1756342334;
	bh=OLfCwBee0WLdBrm71XuYIxR4JKqCPyL8S3FZVa2iVnc=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=C4xB2BOFKx4Q3pjnJXNh0GzPT6fIWRlxpwdj1diL537c8AZpvdJeB2kT0Q/F/NMPI
	 QVM4QC1jI0YoyVSEHvqBZnJpokV5BELyLmzSVTAuRMA1LyHfhcNRGqg7Lrk0hhfxE4
	 mAOIKYsN/8OoT0xqwUy8WH4fXmv2S77dmeHtvy4E9THZwMB9Wgkbd0x6lnxt/vTaX0
	 piuzna8RVqpf4vm5E7NeP7p8PpFS1D4I3dP4LZ94VS/Djjf0nNkgmlQHWpG6MCUa+d
	 cH/cmRh2mRgQFkmiQcR5bCp6trlJ4roOvA+S4yZPXbS+mWp4x3hYozDpJc5V2CYGfZ
	 W7XDuUvri4ifg==
Date: Wed, 27 Aug 2025 17:52:09 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Stefano Stabellini <sstabellini@kernel.org>, 
    Oleksii Kurochko <oleksii.kurochko@gmail.com>, ray.huang@amd.com, 
    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>, 
    xen-devel@lists.xenproject.org, Penny Zheng <Penny.Zheng@amd.com>
Subject: Re: [PATCH] xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE
In-Reply-To: <cc8724b6-bb31-4482-a459-156366b7b433@suse.com>
Message-ID: <alpine.DEB.2.22.394.2508271442410.580734@ubuntu-linux-20-04-desktop>
References: <20250815102728.1340505-1-Penny.Zheng@amd.com> <fb6f559a-b2aa-4b25-a6d3-401ecc4b4bd5@suse.com> <d6046b53-9317-43d6-bfda-e30d42c09320@gmail.com> <2035b14e-3836-4e80-9dad-8a49ca90864a@suse.com> <alpine.DEB.2.22.394.2508181646220.923618@ubuntu-linux-20-04-desktop>
 <49416df6-83c8-4fa3-bf81-2d1e504ef31b@suse.com> <alpine.DEB.2.22.394.2508251934200.3391208@ubuntu-linux-20-04-desktop> <alpine.DEB.2.22.394.2508261728250.3391208@ubuntu-linux-20-04-desktop> <cc8724b6-bb31-4482-a459-156366b7b433@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 27 Aug 2025, Jan Beulich wrote:
> On 27.08.2025 02:33, Stefano Stabellini wrote:
> > So I ran a test and the appended change, which is based on [1] and
> > renaming CONFIG_DOMCTL to CONFIG_SYSCTL, is sufficient to resolve the
> > build issue.
> > 
> > For 4.21, I suggest we go with two patches:
> > 1) global rename of CONFIG_SYSCTL to CONFIG_MGMT_HYPERCALLS
> > 2) stub domctl_lock_acquire/release based on CONFIG_MGMT_HYPERCALLS
> > 
> > Jan, are you OK with this?
> 
> Naming if the option aside, no, I fear I dislike the stubbing. What's
> worse though, ...
> 
> > --- a/xen/include/xen/domain.h
> > +++ b/xen/include/xen/domain.h
> > @@ -148,8 +148,17 @@ void arch_dump_domain_info(struct domain *d);
> >  
> >  int arch_vcpu_reset(struct vcpu *v);
> >  
> > +#ifdef CONFIG_SYSCTL
> >  bool domctl_lock_acquire(void);
> >  void domctl_lock_release(void);
> > +#else
> > +static inline bool domctl_lock_acquire(void)
> > +{
> > +    return false;
> 
> ... this will break x86'es HVM_PARAM_IDENT_PT handling. That is, in
> principle I would agree that returning false here is appropriate. But
> for the specific case there it's wrong.

Uhm, that is a good point actually. And while in principle "false"
sounds appropriate, in practice there is no domctl.c to worry about
concurrency so "true" is what we want.


> As said on the call yesterday, until what you call MGMT_HYPERCALLS is
> completely done, the option needs to be prompt-less, always-on.

I do not think this is a good idea, because we would be unable to test
the configuration. Although we have been accepting code without tests,
that is not a good principle. At least with the current approach we can
run manual tests if automated tests are not available. If we make it
silent, we risk introducing broken code, or code soon-to-become broken.

In my view, we need to make gradual progress toward the goal. In this
case, we should move incrementally toward compiling out all the
"management" hypercalls. Also the alternative of waiting until all
patches are ready before committing them is not feasible. An incremental
approach reduces risk, preserves testability, and makes regressions
easier to identify.

An extreme example is that I could write:

static inline bool domctl_lock_acquire(void)
{
    obviously broken
}

and no tests would catch it.

So in short, I think we need to keep the prompt.


> Adding
> a prompt was necessary to be the last thing on the SYSCTL series, and
> it'll need to be last on the follow-on one masking out further
> hypercalls. IOW my take is that 34317c508294 and 568f806cba4c will
> need reverting (the latter being what caused the regression, and the
> former depending on the latter), to allow to cleanly continue that
> work after the rename. If we don't do the reverts now (and take either
> Penny's patch or what you propose), imo we'll need to do them later.
> Else we're risking to introduce new randconfig breakages while the
> further conversion work is ongoing.

My suggestion remains to go forward with 2 patches:
0) keep both 568f806cba4c and 34317c508294
1) rename CONFIG_SYSCTL to CONFIG_MGMT_HYPERCALLS
2) this patch with return true from domctl_lock_acquire

I am open to reverting 568f806cba4c but I don't think it would improve
things. I definitely don't think we should revert 34317c508294. We need
34317c508294 otherwise this patch doesn't fix the build.

This is why I think we need the prompt: otherwise we would not discover
even very basic important build breakages.


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 01:04:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 01:04:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097279.1451677 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urR3T-0007IL-0O; Thu, 28 Aug 2025 01:03:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097279.1451677; Thu, 28 Aug 2025 01:03: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 1urR3S-0007IE-T4; Thu, 28 Aug 2025 01:03:54 +0000
Received: by outflank-mailman (input) for mailman id 1097279;
 Thu, 28 Aug 2025 01:03:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Rla7=3I=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1urR3R-0007I8-GE
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 01:03:53 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on20621.outbound.protection.outlook.com
 [2a01:111:f403:2418::621])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id db64d393-83aa-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 03:03:50 +0200 (CEST)
Received: from SN7PR04CA0160.namprd04.prod.outlook.com (2603:10b6:806:125::15)
 by DS0PR12MB8444.namprd12.prod.outlook.com (2603:10b6:8:128::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.13; Thu, 28 Aug
 2025 01:03:47 +0000
Received: from SN1PEPF0002636D.namprd02.prod.outlook.com
 (2603:10b6:806:125:cafe::54) by SN7PR04CA0160.outlook.office365.com
 (2603:10b6:806:125::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.17 via Frontend Transport; Thu,
 28 Aug 2025 01:03:47 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SN1PEPF0002636D.mail.protection.outlook.com (10.167.241.138) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Thu, 28 Aug 2025 01:03:47 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 27 Aug
 2025 20:03:46 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.10; Wed, 27 Aug
 2025 18:03:46 -0700
Received: from [172.31.63.243] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 27 Aug 2025 20:03: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>
X-Inumbo-ID: db64d393-83aa-11f0-ae26-e363de0e7a9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qxzFWYc7IIlTfS5uwEJDI29JYjUNEwPA9r5bK07Y8o6hZ/Ox3kiSXldfop8p0ZAmY5BbzuLum3A0fqokM4c7VM83Y18oqvLEYmnkmklLxu+UwAJHehZqe6O8PdMCHvmSUufCAF+0gcCKHanoWUv/FJxjsFQSgLwXrEGsnUWrm0RXtDGzqjcW/XNYagIAMEOxzlb68rONV9r/xsyI1e2jnZpF1raqR1HQ3X51LV/ztBbZ06ZYRGOgKcQr4fO8qdFRTTbjEMG5wOmLP2t3MdVZpIiFZbt25LOVEQwqJXRJN5kwZrCkEkZmo7J6qfe38C8iG7nyO/LRHj4888X0yPzgkw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=R1Ciq4GupciWF9egcdPDkIS13U2ubphnBrWufWE0OKA=;
 b=te7sL78JoTxOB14Qr3Zla+qwfoMZZr41ZF+4sh84pO+vc4mD6Vb6KsSkXRMk2GoWKz4cj4yYLai6ITFAVA3BH7TRZP7NeITyfHhPk/0VJ4SNBDv17bjOSCmmfRgJ50u1n36pH1SkjCMX1ivjKda5EwkjpRMT9ubmn1+MOlCx9meC9tdQ3Co2/D6gx814vSPzdknS7uPZDb9rmXa2AwmKOQ5vFXpl4FClhhDIoHS4SoElgGQ/x6DejRXcW5kVyl47hUoBCZe8IlrMfDdOu9Ww2+ZS0aOW5rUC6rA/DxZUqg4+Zaoo6B84vGGeK9e1jy0SyYrCcBf5SYtXeKhoVXsI7w==
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=R1Ciq4GupciWF9egcdPDkIS13U2ubphnBrWufWE0OKA=;
 b=1HRFg/IFe55N9bXgy0Qwr2TSXeowlzLrgvdRRul1KxAqfmEpLPm3zGh3DOt3Eb8IgFu4z6pvZd/hnL0cWxU3k/sxuh1xOVVGR9n1lOzV5JMeg5pdZ7s5/5/vuDofUcpxvSK6FrGO08NsdvJ4JUb1IhM1CgjHYjb1e1kXkrVbw9g=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <24fd00b5-3053-43ae-8342-887eee94869a@amd.com>
Date: Wed, 27 Aug 2025 21:03:42 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/5] symbols: arrange to know where functions end
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: <ceef1876-8759-465c-9a74-309b6b92f773@suse.com>
 <10e116c5-5a62-4abc-a52a-e2ca12118cfe@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <10e116c5-5a62-4abc-a52a-e2ca12118cfe@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF0002636D:EE_|DS0PR12MB8444:EE_
X-MS-Office365-Filtering-Correlation-Id: edecfaf7-b8ae-44fa-a713-08dde5cebe4a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|36860700013|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?ZWFSbnYvSW41a3lhS1Q0cnlsRUxUWXhDOG5HYTV3Z2l2TWFjVnRPek55Y3g4?=
 =?utf-8?B?R2xnNjZIR0tiYkQ0R0tlUER5LzJkV1JUd0FIRWZXdVViYWpnUGJuQlpNMHJN?=
 =?utf-8?B?QW43V01rb2lwNUhaOEhXR0FISFQyMVBXK1UvY2F6bWFoL1pmVXBRcTkrQVhq?=
 =?utf-8?B?V0U3Wlg3U3kvWWJTbHJiWkFXbkNXT2h4N1p6UDR5Z3VMQ1ZDYUZ6Skh5OVp4?=
 =?utf-8?B?RFpYbmxrU044VmNnekZYb0szMTg3ck1IY3Zmc3RyZU45Y0NMZFh0YXRBWi9h?=
 =?utf-8?B?Zi9JOGZuZEVGaGRkNDJKdmEwVnRzWkloZ2QreStmUVJvaXdWcVZlSEVKb0dG?=
 =?utf-8?B?QW5VRXJhQWllN3VMSXZudzdEUE9QWmgwM0hlV0hxTnhVM3JIM1lVWGdaUFFU?=
 =?utf-8?B?RHZEWGZpVHN6MmRBNHJKMkVmTThwSUk3UGc1U2VSQjQyQWdJdnFmdlU2SU5B?=
 =?utf-8?B?SmZ5UWtkbmFaQWJ4TDA5MVlLYzVqam5RSHlvK3ArL2M2OHJlZ3B6dzFkNFFI?=
 =?utf-8?B?L3poWkZHVERzRVVRL3BjUXV0Y1ZLdXh2bHpYcnJyVG00bERSRFVMcW0wY0pr?=
 =?utf-8?B?SU0xVjFjYWdmRkVvN1VFNkVmdEZrSS9JWExVNFp0RUMrcmxYOGpuNjVtS1Ri?=
 =?utf-8?B?dXRlT09VRlJqVlNNcnZsVk1wZkRpR1psR0V1NE8rSzdiZ3YwSTFzMEl4UE9I?=
 =?utf-8?B?OWkycTBWN1VvODJlNXd4NXZCaFNNZldUMDZMVzBjc2ZDWTU1ZE5LdU84YTRu?=
 =?utf-8?B?SDJGVjhkc3k5L01IMk1aWG9xZGd0ZFRZdDhSUU5jQ0dHV0wxMG1OWmY3SHhn?=
 =?utf-8?B?VUIzdjZGaHh2MCtJd3EzRHZZOTdReVJGYVNFNDBsWHh1ZW1yTW45dW9RVEcw?=
 =?utf-8?B?Unlub0hpMXJkZ24vWS8wOGNLRWVqV2NjbFpkWElZcGs0eHNVMHFXeTJjN25a?=
 =?utf-8?B?aHVZMEROSkVZRFRsOTJRY2FqQURVaitlQ2pkQVdsL2dMcVgxcGN1SHlrYXpG?=
 =?utf-8?B?SDgrbGl2VWl6NWRmUm14M1Y3dTl1STdHa04rZjhnNGR4Qm12dTVrcEhtcXNr?=
 =?utf-8?B?UGp0S2paZ2QwOXh2bFZUelgrMDF6S1dCZTU5ejFtT2NMSVBDSmdQZjNCUTJ4?=
 =?utf-8?B?T3l6T29QYldQZGJRWjVWNHdRSGFSUlpuR2JKQTMvVDdCU29VMUErQUEvNTRz?=
 =?utf-8?B?V083LzJ3bUVFSkZSRHY1b2czbFkyQ2MzbjlGVGEzd0FOZFd6ZXNTWFAzRXE4?=
 =?utf-8?B?RGRJbkNSZGl2K25kdU5YcndBdC82ZTBCRE1uOCtjK3ZMSTNIcTE2Y2I2S2FW?=
 =?utf-8?B?eG1uRUc2dGNGZGt2NEdpZlNvN1VjaWJ1b3JFQmR2MVJoa3BaeDl0eHJwVzda?=
 =?utf-8?B?R2JXeWZsSTFuL05IUGs2Z015Sm1qVmhoQnUxVzZvVmpVSFdFTWFJbHlxWmp1?=
 =?utf-8?B?SnA2UjNJQmxXNlJ2NDk4cEJsTzhLR1pqaThLREFHVjVPSldhUDZqckJBQmhJ?=
 =?utf-8?B?R0h3Zm84M2dDUHJmdUZuTjdMTWF2dTJmdG0wRko3bjBTTmNsRE5FNW1pSE1j?=
 =?utf-8?B?M1hzNHJMVlRKc0p2ajMxSTZidkE4T0VOMWI5cEp1c3RHWkQ5SDc5RHM0dWRZ?=
 =?utf-8?B?NFZlRGdEV2VJd0N5SnhIN0w5VWkrd1NMT1c5aXBaMEI2cWVvM0FiaExVTXBO?=
 =?utf-8?B?R0lobWZCaXM0TkhOaFBSV3VZd0V5RlJnY0piZWs1LzRtdXE4aWdmSzlBbHFl?=
 =?utf-8?B?NDZKNVJaSEtnMnlDQjFLZWNxOTk5dVlEaGU3TW1QcWtHa3gxaFE4MThQbllo?=
 =?utf-8?B?dFpKbWp4alFRMnlaWnR0VGFEYWloQWxoWXU1VFhYcXBSa1dXYzVEY3dHc3I3?=
 =?utf-8?B?V2dlcDRvRFVpSDZoOXVQdFhwVnZYcG5YYmZ4M2kzaDlhckxJQWg0cUJkRkRr?=
 =?utf-8?B?RmpXT3NNVTdSTDBBSDN5bTcyMjRGZSt1OTRSV2I0c2NCUXpFWTVTM2gwdnVz?=
 =?utf-8?B?a2lzSWN2VDVua0dtY1A2YzJKNEVydVNwNWRzYXNQYnRxSjBlOU5Xd2FyazA1?=
 =?utf-8?Q?nM9yG8?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(36860700013)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 01:03:47.4328
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: edecfaf7-b8ae-44fa-a713-08dde5cebe4a
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF0002636D.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB8444

On 2025-04-02 09:58, Jan Beulich wrote:
> When determining the symbol for a given address (e.g. for the %pS
> logging format specifier), so far the size of a symbol (function) was
> assumed to be everything until the next symbol. There may be gaps
> though, which would better be recognizable in output (often suggesting
> something odd is going on).
> 
> Insert "fake" end symbols in the address table, accompanied by zero-
> length type/name entries (to keep lookup reasonably close to how it
> was).
> 
> Note however that this, with present GNU binutils, won't work for
> xen.efi: The linker loses function sizes (they're not part of a normal
> symbol table entry), and hence nm has no way of reporting them.
> 
> The address table growth is quite significant on x86 release builds (due
> to functions being aligned to 16-byte boundaries), though: Its size
> almost doubles.
> 
> Requested-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> Note: Style-wise this is a horrible mix. I'm trying to match styles with
>        what's used in the respective functions.
> 
> Older GNU ld retains section symbols, which nm then also lists. Should
> we perhaps strip those as we read in nm's output? They don't provide any
> useful extra information, as our linker scripts add section start
> symbols anyway. (For the purposes here, luckily such section symbols are
> at least emitted without size.)
> 
> Even for section start symbols there is the question of whether they
> really need retaining (except perhaps when producing a map file). The
> main question here likely is whether livepatch may have a need to look
> them up by name. (Section end symbols may actually be slightly more
> useful to keep, but that may also want considering more closely.)
> ---

> --- a/xen/tools/symbols.c
> +++ b/xen/tools/symbols.c

> @@ -318,24 +334,42 @@ static void write_src(void)
>   	printf("#else\n");
>   	output_label("symbols_offsets");
>   	printf("#endif\n");
> -	for (i = 0; i < table_cnt; i++) {
> +	for (i = 0, ends = 0; i < table_cnt; i++) {
>   		printf("\tPTR\t%#llx - SYMBOLS_ORIGIN\n", table[i].addr);
> +
> +		table[i].addr_idx = i + ends;
> +
> +		if (!want_symbol_end(i)) {
> +			/* If there's another symbol at the same address,
> +			 * propagate this symbol's size if the next one has
> +			 * no size, or if the next one's size is larger. */

Why do we want to shrink the next symbol's size?

The code looks good - I just don't understand this condition.

Thanks,
Jason

> +			if (table[i].size &&
> +			    i + 1 < table_cnt &&
> +			    table[i + 1].addr == table[i].addr &&
> +			    (!table[i + 1].size ||
> +			     table[i + 1].size > table[i].size))
> +				table[i + 1].size = table[i].size;
> +			continue;
> +		}
> +
> +		++ends;
> +		printf("\tPTR\t%#llx - SYMBOLS_ORIGIN\n",
> +		       table[i].addr + table[i].size);
>   	}
>   	printf("\n");
>   
>   	output_label("symbols_num_addrs");
> -	printf("\t.long\t%d\n", table_cnt);
> +	printf("\t.long\t%d\n", table_cnt + ends);
>   	printf("\n");
>   
>   	/* table of offset markers, that give the offset in the compressed stream
>   	 * every 256 symbols */
> -	markers = (unsigned int *) malloc(sizeof(unsigned int) * ((table_cnt + 255) / 256));
> +	markers = malloc(sizeof(*markers) * ((table_cnt + ends + 255) >> 8));
>   
>   	output_label("symbols_names");
> -	off = 0;
> -	for (i = 0; i < table_cnt; i++) {
> -		if ((i & 0xFF) == 0)
> -			markers[i >> 8] = off;
> +	for (i = 0, off = 0, ends = 0; i < table_cnt; i++) {
> +		if (((i + ends) & 0xFF) == 0)
> +			markers[(i + ends) >> 8] = off;
>   
>   		printf("\t.byte 0x%02x", table[i].len);
>   		for (k = 0; k < table[i].len; k++)


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 01:06:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 01:06:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097294.1451687 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urR5g-0007vL-FA; Thu, 28 Aug 2025 01:06:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097294.1451687; Thu, 28 Aug 2025 01:06: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 1urR5g-0007vE-CE; Thu, 28 Aug 2025 01:06:12 +0000
Received: by outflank-mailman (input) for mailman id 1097294;
 Thu, 28 Aug 2025 01:06:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Rla7=3I=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1urR5e-0007uM-Fd
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 01:06:10 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on2062f.outbound.protection.outlook.com
 [2a01:111:f403:2413::62f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2dd2d6d6-83ab-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 03:06:08 +0200 (CEST)
Received: from MW4PR03CA0021.namprd03.prod.outlook.com (2603:10b6:303:8f::26)
 by DM6PR12MB4204.namprd12.prod.outlook.com (2603:10b6:5:212::23) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Thu, 28 Aug
 2025 01:06:01 +0000
Received: from SN1PEPF000397B0.namprd05.prod.outlook.com
 (2603:10b6:303:8f:cafe::4f) by MW4PR03CA0021.outlook.office365.com
 (2603:10b6:303:8f::26) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.13 via Frontend Transport; Thu,
 28 Aug 2025 01:06:01 +0000
Received: from SATLEXMB03.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_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Thu, 28 Aug 2025 01:06:00 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 27 Aug
 2025 20:06:00 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.10; Wed, 27 Aug
 2025 18:06:00 -0700
Received: from [172.31.63.243] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 27 Aug 2025 20:05:59 -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>
X-Inumbo-ID: 2dd2d6d6-83ab-11f0-ae26-e363de0e7a9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dKzDbvd/cBnc/qcwWxulJgI325zFOLK6TcuDNd8AR97C7iNXcZs6JxNC5X4qO8GeiLCwhPJUIeFDQflPjRmePXak63wBRh22CBMKiTBpvVf0YucPWYOfiDgCwOjXiHL9taVX7MycDjtTSyN2IQ9lb3pMG4s6GJgJsTXbH4vl4IM5Oe6Ca6ZxY4V2K5tdAAjSHDOYQn/mDmKgS3XR5MyebzPldmyqoQC3bvGWWCtJoCMFCn7uaZAPz2ykCeWvF/Eg/cm5/WZAZFTZyV87M5zq4Le0tiUx3DE1HP+X7SUjeZpj7hd6kRHGAwGxk9UjLnAb2BcQDF7wDX+xHIQ758/NtQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=TZpEeOdQG9IlTs1NOLGnpUnHq5k0oW4WzALCizS45KI=;
 b=JZMFkQeskGOzMWl9nWHvKCou1ieKGjNpBVCV39g1sN7q/tYp2BCT2FPGFXC0RQIWZomWgLIzYPhysp9E+HFUFKeyus3QxfjE2pjdz5OnqEEbIACgAuaiAQ4ItCR3JYAj/hR+3n2Qeqkii2KWxhFN7imch3/ZzbkqzRUqYKiZjkJ4U9zzUmpxtPCek21ORVzB+qbvYQFH1LQi5E95Vbn9kg61BgOveRs4jy7qihEBwVE1PLmRh+UZzxLhQFeZk0uaXSfdh9uIpAYmfZ1aYdXMfVaEhMTNQUqzYw7yUX1aqinAttkcmax3GUGzKdr95kl6FctwRjhIhHSQlRBmcjmpTw==
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=TZpEeOdQG9IlTs1NOLGnpUnHq5k0oW4WzALCizS45KI=;
 b=L3x23RJA8Fkyw88sETbsC+yCb7q/rkZ3GgxmFNMJDwzhBfi2ashU/YvY9CtM0/UoDv1HFilHrnbVLY4b9/ddNTyAwoItXVhPtvrnSZivtDGgexy0bSBfA1H4lTfpO6Gn3lKxM1ZQvcg+T6aH9UHZ7YGBvHHpldmLZoG7zcQpw9Y=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <f44709be-62a9-4932-b550-cf5446d4bf1c@amd.com>
Date: Wed, 27 Aug 2025 21:05:59 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 4/5] symbols: centralize and re-arrange $(all_symbols)
 calculation
To: Jan Beulich <jbeulich@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <volodymyr_babchuk@epam.com>
References: <ceef1876-8759-465c-9a74-309b6b92f773@suse.com>
 <5a77bb51-22d1-4956-8e45-c2412c413766@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <5a77bb51-22d1-4956-8e45-c2412c413766@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF000397B0:EE_|DM6PR12MB4204:EE_
X-MS-Office365-Filtering-Correlation-Id: cb0a2ce7-fabf-4a9a-2746-08dde5cf0de7
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|36860700013|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?T2hTcDNTaXpGVXh0cjVsUXdIRnlnS0Y5VktLUUd3R2JzUTNCenpXSys5REto?=
 =?utf-8?B?UUxibXF1YXRBWExmYlB4UDc0ZkpzaFlwVTd4WU9DYm5SWDlicG03WWhTVGFt?=
 =?utf-8?B?cndVQVJOSUxOWUxSNW9zY3BDZFZtdjN0cXFVNEJrZmtZT1Nab1BhcEJCZi9R?=
 =?utf-8?B?WFY3dmNieVVYUDJmYy95SFhRaDlkU3grRmozTlcrOVU4ZnVsLzVQZDRWeXhV?=
 =?utf-8?B?OVRDMFZ2VzVFemVvY2RqanNNd1FIMG5vZkNRSzVhZGdwWlhhQzIxTnNody9L?=
 =?utf-8?B?OG1lckc1aG5JUVpSSzV4WTBGQTVSV2hXciticFV0MHlRZnBpaktpYlJrd0dV?=
 =?utf-8?B?eFFOVTlSV2ZaVkd4WE5hdm50UEU1VnpVNk9nQTdjUkJtSVlTUFdCR2JtSGxh?=
 =?utf-8?B?OExUc1cwZnQwVnlXK3kyYzlERjY4MWZZKzBFK1dXdlN5YStCb0VvcVdJeTVL?=
 =?utf-8?B?dnpUbWl2NFM2ZjM2UlJSejYybUNaYkVoT0ZBdHJ1d3Voa21ac0RPeW5DdEx5?=
 =?utf-8?B?NWN6ZWxxa0twWEhRZkhZUDVBTEJVMlR3TGxZQWZRZUlxOVFyU21mcFhJQ1VY?=
 =?utf-8?B?RCs1ZGJaamROY0VqWW9zZm9VdnZXS1RCaDUzQXA1ajkzNXNiUjRoQlBkOEY0?=
 =?utf-8?B?c0F3N0x3YUdUc1djS0NkclkxVjk1NDVWSndaR0VFNE1ERktaK1B5T09LZlBl?=
 =?utf-8?B?SlpDUmNDZlBiK0Fid0RKd2QzVVNJZVF3bHMvSHJnTkNxaUdBeXZMdW45OVd1?=
 =?utf-8?B?OENTL0htR0lhdXY0WVdVMUpzT1NDNWxRdFBZYTVMaFJyUG53ZGNVUlloMnFq?=
 =?utf-8?B?OUhqQW9nZUhyUGRySzRYOERJa041eisxN0FuREtyWEsxMzZ0VmpPdWpaK2VE?=
 =?utf-8?B?OWszU3lWZzlvK3Q0RDBSejlwczdUODR2TnlndzExRENIU2lZcnN0TU9jNnRJ?=
 =?utf-8?B?V2lSM3hIY0t5S2F2S0NBRlBUaGNHSE9JN0d4UDRiRGdOQWRBMUdleHNKRkxR?=
 =?utf-8?B?bGFueU1yS3FMblpBQ0lhNGNxcUFwdlBYalVkVEZQM2trQjhXL3hiOU5aeTBK?=
 =?utf-8?B?aExpTWVFQUdtSnRFZnE0cmxrSE1tbjYzRDZwUTdHaXlyUzhreCtSaVhhenl1?=
 =?utf-8?B?MHl3SE5lWHhub2djNDFoWmdLUkYwejZoVWxNYnBaMmVRU2lxNnRJeG5wR2lN?=
 =?utf-8?B?c0xzdi9CajNCbEFRbUZ5Nys2dVNuRmNJUU5Nc1REeFQ3UWcyWDd6Y0w3elJo?=
 =?utf-8?B?ZjQyZkFnODhaZHNtdzQvRko3Vko5cDRxV210eTlGZ2xFd3Q4K2NDL0lPS1Ux?=
 =?utf-8?B?UDdUOWNtT3BjMXl6ajd4SDladytKNVlaZTAyME16blZHdWQ1R0tRdEphcVhS?=
 =?utf-8?B?dTdmMm5CZVF4eHphTW4rR29KSHNzL0lDdVoyZm05cXc1N1JPcXBjNWxtelhZ?=
 =?utf-8?B?N2FxZG9nL0dveTdRRi9KMEFDQll0TWpmSktubUZDRUhsMmUvY3Ira0ZrMFVW?=
 =?utf-8?B?Vm4ybnJTOUFyL2F0V0M5dUhxRVd5R256L3U5eGpWZm13TEtTOSsxYjM3NnpZ?=
 =?utf-8?B?K3NrRXRTa1RVWG9DazVDV004S2x1UWNIQnc0cWNFWm5RMGd6ekk1czhHV1pC?=
 =?utf-8?B?ZU9wTnplRW9QQ0U5aDMxcENRY1R1TnlucXlqaEVoRm9KSVk2aWppL2dBWFlp?=
 =?utf-8?B?VW5mUkNXdmhBcy9BUVBhR3U5YzBzallsUjh3YmhPWWtoUEpaOSthZVlISGFm?=
 =?utf-8?B?SmNKdGk0ZjR6amR4N2RJL3ZOMW1FY0I0ZG5Td211VXNCUlNTN0VSVzllV2tW?=
 =?utf-8?B?SXVqL2xpZTFEMkVvNWpCWHpyQ20vQ1F0OTJxN1RoZVFDbnJaWHEybFhaNW5G?=
 =?utf-8?B?MUZFaVFOeEFSRTdvNUFPdEhES0ovYURNampSL3c2d095TGZRdE5yZHZhbG5k?=
 =?utf-8?B?ZnRtSEtld2Z3N3hFM1MwQXI5N25DU3JuQ3NZOFZRZStLZmRxOTAxMHd5cFJU?=
 =?utf-8?B?UUI5N3BaUVVjMnJmNk1XMDRYemZJZ09td2g3Ylh6LzkvQ3F0eERXNDJyRlJi?=
 =?utf-8?Q?IdEFJ3?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(36860700013)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 01:06:00.9987
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: cb0a2ce7-fabf-4a9a-2746-08dde5cf0de7
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=[SATLEXMB03.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: DM6PR12MB4204

On 2025-04-02 09:59, Jan Beulich wrote:
> For one there's no need for each architecture to have the same logic.
> Move to the root Makefile, also to calculate just once.
> 
> And then re-arrange to permit FAST_SYMBOL_LOOKUP to be independent of
> LIVEPATCH, which may be useful in (at least) debugging.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 01:08:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 01:08:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097304.1451697 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urR7U-0008TV-QU; Thu, 28 Aug 2025 01:08:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097304.1451697; Thu, 28 Aug 2025 01:08: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 1urR7U-0008TO-NZ; Thu, 28 Aug 2025 01:08:04 +0000
Received: by outflank-mailman (input) for mailman id 1097304;
 Thu, 28 Aug 2025 01:08:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Rla7=3I=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1urR7U-0008TG-51
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 01:08:04 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20606.outbound.protection.outlook.com
 [2a01:111:f403:2412::606])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 70ecd452-83ab-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 03:08:02 +0200 (CEST)
Received: from DS7PR03CA0188.namprd03.prod.outlook.com (2603:10b6:5:3b6::13)
 by MN0PR12MB6101.namprd12.prod.outlook.com (2603:10b6:208:3cb::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.18; Thu, 28 Aug
 2025 01:07:57 +0000
Received: from DS1PEPF0001708F.namprd03.prod.outlook.com
 (2603:10b6:5:3b6:cafe::7b) by DS7PR03CA0188.outlook.office365.com
 (2603:10b6:5:3b6::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.17 via Frontend Transport; Thu,
 28 Aug 2025 01:07:56 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 DS1PEPF0001708F.mail.protection.outlook.com (10.167.17.139) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Thu, 28 Aug 2025 01:07:56 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 27 Aug
 2025 20:07:56 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 27 Aug
 2025 20:07:56 -0500
Received: from [172.31.63.243] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 27 Aug 2025 20:07: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>
X-Inumbo-ID: 70ecd452-83ab-11f0-ae26-e363de0e7a9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dkjemc0EyLg02rTD3kJIYW7bbojK13MKpqiiLDkzP+ngJbP/ipL/NFQN6tTFOozDho1exdv493fOwXupsWubO3gMFM2m/5W8NbI4x4Fj3RZmNTW9atNQNQTDeqd+U6Cg6k0uEuDBHX5Rvui3EFW2w24WTg448ja16Df0cYA4t/ckCUimGX3bS6bysjQlLQ6h5UQ6GXnDEXnc/VHnGEqquj+Mi7KZ9UXugUmqYxwvHbnwmXc0eOuCeP/x58KthKOq1eRQRslknoujXKYdHcunXUcev0YZtYJa+WT7pfdfSay2Ixml7JafKhbWSVmeiJ9pz2i0h3MmUkmQmd6EhMpzRQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=J5nlDEQGwljIGzFs/Z+E/hsllWyY+nsXQVnwNFYt9hk=;
 b=fB1hhcctgPY1CsGgnAkZiTXsDLGp7qHi7l6IIRIL9x3/4JeesmCkKO0KOVHjegdhwebgeisDbiIJM3LAxGYhA2Xfa1CyECfI4rDwXdV9bHT+Q+sjuSfeEL0HJCrXu6O4MnYumdWa8G+z6hA29NWPGmmF25eiRv+ENfkCetzdl2s3b4x1S7foVybJop1ABYSe27AOn9ojCYuOqMdQlL2J230fdtPzND4VgXoonaMwkezEpM+bOtsznUoj6qPNPuMl72MeMDDaOtPrNoQyQMVzAYVbjetivYwjyYiwR9YxNzcZFTRFmBQzcIwAD8jeV05CUvGcaA1mDo7UUAruUSk77A==
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=J5nlDEQGwljIGzFs/Z+E/hsllWyY+nsXQVnwNFYt9hk=;
 b=L5wJDehV288/EEX+ncE+JiebtERJBMiKbfFKRib3kcpRREuUOLTPdwsmaPdT81KABl0tPKQIXRu2U78kGiwGm/IlRLfJS/cut9kOMjOVuk/1XJpd3s2Tf1bXXLIrGt2Wjtf6J+QUjoaJCn7Em+war0bb9Sdf9gMnXWUuQmz/fV8=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <8ec4b804-28d0-4f39-8d2e-29d326a6909c@amd.com>
Date: Wed, 27 Aug 2025 21:07:50 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 5/5] symbols: prefer symbols which have a type
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: <ceef1876-8759-465c-9a74-309b6b92f773@suse.com>
 <b7261eaf-b3ce-4b71-aba2-3f40adbbe93e@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <b7261eaf-b3ce-4b71-aba2-3f40adbbe93e@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB05.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS1PEPF0001708F:EE_|MN0PR12MB6101:EE_
X-MS-Office365-Filtering-Correlation-Id: a52498b1-5579-4ef2-555a-08dde5cf52cc
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?ejJNODFQMnpuQUlHNFdKbll3Zks1K1hoTCs2QVk5VDRrVTNYM0U1TElsR20r?=
 =?utf-8?B?OExEMmRiNHdjSEVmbGlEQ0RxVnhmaHhLb3dPN2JsYnVUSnNyL2twa0p4b2k3?=
 =?utf-8?B?NHEzTWQ1QkhxUCtlQWZVbmcvMDJRYmFYVXlyUDZvc0w1NGRHKzk2S0hDdW40?=
 =?utf-8?B?V1lkbitRMWZReUF6Z05qbFZlM3c5R2FNUncwclBDZ0crSVcxYXgzMitrTmlW?=
 =?utf-8?B?ZThUL2sweUlwMUFlTm55VjB1aE9aa3l6WTFxNEJPdDlHYjNtdml1VDZGS3B2?=
 =?utf-8?B?TlVwalB3WUVTR3kvd0wxWWJuNUdSbUNxMnl1bXVseERJUTBacTF4U1dqdE5x?=
 =?utf-8?B?cUlzRjRBanc4VFhjL0poYW5KYWpKRGhNSU9DNWg2aHRnZUtzU2dSQ3c2bFlL?=
 =?utf-8?B?REtSY0VGUCtDeFo4VGJEZ29UZUY1bHBjQUZCeEJEUTMwbFRnbmtZWDVQU3NQ?=
 =?utf-8?B?ajV0OWJwcndwdTdoU3AwUUNjOGlsdE11TkJKQmZobVQycUl0bE9kVWdtSGd2?=
 =?utf-8?B?ZFY3V2JXOWxTTnA3V1JvNkRQUWkxUG5DV0tONXZONUdaRGpNK0YzQlFQa3Bk?=
 =?utf-8?B?YWNvWWJVRWlrYS9lWEtqWlRpdG5BTVhiYmRSSm1yTW1BS3E1WFUzaVoxVDlL?=
 =?utf-8?B?RDBucU4wU2pqbldiWlcwbHhpV25FcnJvZWk1aEVmUFhPYnhic0lHRzNDYjUw?=
 =?utf-8?B?bWVXMXJPdDM0eUpaWHd4OEo0djhqSHdMSHBhUERuS0Z2dVZrN1I2SDNNL2xO?=
 =?utf-8?B?UFdFakljbTA0cDBpUk5JNkNtU2REbGZ5V2dBOFg2b0pPaFp6Q3grL0d5bVp3?=
 =?utf-8?B?azdoSHpiODdtT3gxTW9ha05CdGp6WEIza3R6eXQxVWpvMEd1L1g4dlVFU01X?=
 =?utf-8?B?dFduWjJsZ3dlK3Y4RFFLRjVLMFpaT01yUWxRZGNFQWVuVHNxclM4a2NsMUlm?=
 =?utf-8?B?RXFxa0JTazhtUDlmZXlodzQrUWJTamRRbGZxU1RoN0p4MmJDVlk4S09Bb3Bv?=
 =?utf-8?B?SVUyZnUyeTdOdzlzYnp2SEFnMFl1czFiUkVOOGxMWUQvOERPVE1vNEFjOE5j?=
 =?utf-8?B?dU82cmdKeVJraXllQjlTN3F3YkRUVE1DMzE3dXdvcUFsc29zZ2ZiV1k4ckNU?=
 =?utf-8?B?MXVWcTE4NENwOEl1L24rUzExNzRMNUhuaTJOZy9tT205SnJ4dSsvSFVQWmZJ?=
 =?utf-8?B?OFovS3dLSFJ6aDlwSjQ1QjVlNkNjVldjQUtTWWNYSlQrSytBVWdnNHR0QU5H?=
 =?utf-8?B?MHAwWFIvY3BNZXB6eWE5d1ZPdDQ2Z3VhVHdGeWMrSUh5dVdkMUNMWVVoK0ph?=
 =?utf-8?B?eFBxemxoWUZlTm1waGFFeUpaWmFveGhUbGNXaGtkL0RrZDZzUGNkejQxM2RT?=
 =?utf-8?B?cmIyTld1T05IRVJNc0g2Zkd3cmdPVHBhUUxlUjhOcEtWaVBSMldaM01mSjJN?=
 =?utf-8?B?MkdOdzVNRW5RanZkUVJ2WE55aE4xNGpoMFJrZVRjYU83NEtBL01XbHFJNkRY?=
 =?utf-8?B?QTZGenpHc1UyeHVQNjg3U1FIREZsS2hXMG1yZm51aERDV05yc1ZuMXcxMXhl?=
 =?utf-8?B?K1FMNE1XV0JOYlozY1pqeHJLRDNwUEx5Sjc2WEIwaTFuQytWL1RGOFlhT2o2?=
 =?utf-8?B?QlkyK2dsS3ZtMktPOStKamVuUjY1R0hxcDNwbktoeE8xcUlTZlB4SDYzRi90?=
 =?utf-8?B?NWUxVm03QkpiMGJ5dWxmTDJWV0VlUDN0T1FVU3NTd1pZR1gwckNjWlRtc2VL?=
 =?utf-8?B?b2hPQzZGTHI4eldMNzhuN05mbWZtUjR2aXFGVUV1VmxhbE41YmRydmdORE80?=
 =?utf-8?B?cDloRWx2UVdUYnY0Y01qaWw2MWJxVmFJVFJOTEdHM0ttTGVwenhwenBJNzI0?=
 =?utf-8?B?ZlB4cXhYK1FqSkNLTEFkMEVrVGFQekFiVWhCWUV5SVErUlZqeXJtbU83a094?=
 =?utf-8?B?QXd1enlmajFTbjdFSjNXcGkxWWptVFNsUnYyVCtWVnRKOW1MT0U4dVZkL1RP?=
 =?utf-8?B?aGJTbEdTNFJNYUF0TVRZOWxEWnJIVlhKL3A5elFQcXd4b2VzRHNkQzNjWitH?=
 =?utf-8?Q?9zurke?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 01:07:56.5781
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a52498b1-5579-4ef2-555a-08dde5cf52cc
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS1PEPF0001708F.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB6101

On 2025-04-02 10:00, Jan Beulich wrote:
> ... and thus typically also a size. Using global vs local is undesirable
> in certain situations, e.g. when a "real" symbol is local and at the
> same address as a section start/end one (which are all global).
> 
> Note that for xen.efi the checking for "Function" is only forward-
> looking at this point: The function-ness of symbols (much like their
> size) is lost when linking PE/COFF binaries from ELF objects with GNU ld
> up to at least 2.44.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 01:08:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 01:08:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097310.1451706 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urR7o-0000Sp-1W; Thu, 28 Aug 2025 01:08:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097310.1451706; Thu, 28 Aug 2025 01:08: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 1urR7n-0000Si-V8; Thu, 28 Aug 2025 01:08:23 +0000
Received: by outflank-mailman (input) for mailman id 1097310;
 Thu, 28 Aug 2025 01:08:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Rla7=3I=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1urR7n-0008TG-AF
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 01:08:23 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on2062f.outbound.protection.outlook.com
 [2a01:111:f403:2413::62f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7c854024-83ab-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 03:08:21 +0200 (CEST)
Received: from BY1P220CA0012.NAMP220.PROD.OUTLOOK.COM (2603:10b6:a03:59d::8)
 by MN0PR12MB5859.namprd12.prod.outlook.com (2603:10b6:208:37a::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Thu, 28 Aug
 2025 01:08:13 +0000
Received: from SN1PEPF000397B2.namprd05.prod.outlook.com
 (2603:10b6:a03:59d:cafe::b7) by BY1P220CA0012.outlook.office365.com
 (2603:10b6:a03:59d::8) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.17 via Frontend Transport; Thu,
 28 Aug 2025 01:08:12 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SN1PEPF000397B2.mail.protection.outlook.com (10.167.248.56) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Thu, 28 Aug 2025 01:08:11 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 27 Aug
 2025 20:08:11 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.10; Wed, 27 Aug
 2025 18:08:11 -0700
Received: from [172.31.63.243] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 27 Aug 2025 20:08: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>
X-Inumbo-ID: 7c854024-83ab-11f0-ae26-e363de0e7a9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hkzBmJrs36uoPs58DoR4u+tiE9tP2FXC3RWD+Njegi5UxGNuD8fDb0NCSu4NylBt1DgMighwDD5aCERcS22+qYX/TR52e5hi49huaR/xkUaCUNjEPH0CU2Vce8ZKJHPynpikflBSkqiFZ9wHSr5a4BZxZ2a7FiciUPjJuSk8YwTgLZ57kHG0VVsMtwDsOW5tRALfAtgkaPF3ZRwMgR4q4t2TWN1L8hk1PLRERj2gF9/1PJsDsBrb40AGpjgQnRz3Glz6svb2lAHXhlnOdfbPlMfFgsstYQLXchdWUv1C7w+VlGD3cCPT4hI/wAe5TDItd6w8FJUsgrxOjlbUiZFU1g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=H6+TSKfnk47FVFH3ZkV9Y2lCk/gX6KdWrnRfuVGnpoo=;
 b=T5O/QjnaNMfyWCqyNlKVtM3ptPRE+mRBpaUB6EzPSt9ozgF/qL6XAibAT0PQWXRNc5myMnnqYtHa3xheMZ0f0/9KIP157ebEG8aLcQ7/is9NWgNFgEeFBVe+euGXiH3jP7J5gtaCWtE9uIejpl6BbIFBtNpMs1amWhQ3wNsRbH1ppm8vYbK+sJHwkjc0iDxj9+6VePvz+qSYhwZlIIDJV1T+6zNB3kliQhQ8Mt5Oz5yRruXBOnSJMeHag0rlN9wVS70vy4wdZ+rble4dh79m5mYm7J6/T85588B6ZURC9NMNeDQ1LeDPk9Xd5TWZzLb8rX+qO4fcxmjgenTfPsQHGA==
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=H6+TSKfnk47FVFH3ZkV9Y2lCk/gX6KdWrnRfuVGnpoo=;
 b=SlR1aP++WhXj2Wu2B55hKKxV+qqnalv9qVz+uE3M2Oy0drJPHbzqvBForuF6+F1OHXw2a+caSj/pdVapvV6EUupB8smKnBH9b52mdZFSs9nZ5bbs85RMwqzMYIWN130uVh3D7bw/qe0I8UbaipMn2sTtdDCTJky1x7ttk65fAUA=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <c170f613-c42a-47f7-aae2-3e5bf1238a1c@amd.com>
Date: Wed, 27 Aug 2025 21:08:10 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] libxl: except Dom0 from setting PoD target
To: Jan Beulich <jbeulich@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@vates.tech>
References: <c98069b7-ee38-4f06-bebd-25396f2a210a@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <c98069b7-ee38-4f06-bebd-25396f2a210a@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF000397B2:EE_|MN0PR12MB5859:EE_
X-MS-Office365-Filtering-Correlation-Id: 3a86ecb7-288b-4a35-ea5c-08dde5cf5bdb
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|36860700013|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?NDlTZEtJcldObTZHQmJzbmdiSU5XOWhjMGk3WW9leExOTVAzcTVCV3hkS01T?=
 =?utf-8?B?ZXNnR0tmTTJlMDV1dFlsNXNXNEJiZHNxTXVFRFBLeXpaR2ZiQnhtK00yalRt?=
 =?utf-8?B?S1pEcVVXM0c0aDFabTVWbnIzU2x0S0FSeWJ0MURtc2J5M1R3by91RUZLS3B5?=
 =?utf-8?B?eUZ5dE8rOVg1U3JSNi83TUNzR0FBU05SYUhXdUpIZUVOcUFiOXhXZUllQ2Vj?=
 =?utf-8?B?MjdXZndiNm5OYmVOQWp2bVlaeHNOdGllZnlmM0FwQ0kxQUptSlhLSGFaMFRp?=
 =?utf-8?B?SzFnV3oyK2cvdlNDMndZSWJLL0FoOG16QnZtYVJJZkN1UUY1WXo1bmdzR2FU?=
 =?utf-8?B?TGFKVGIvVWdVdlhrNXNudnVCSHdYbnN0SGgwVldHNllab2pDVE54b0p3TFZJ?=
 =?utf-8?B?RlYwTW9HNXpCMGt0L3duS25GLzdDUEhpSXlGeFlrOUtWMHp6aU1TWjhuQnVP?=
 =?utf-8?B?TGpwbjRaNWxJdjhudEY1Tk9MOFdDTVdCUkxaeXoyL241SUJzYldTYVhDWlQ5?=
 =?utf-8?B?dlZPRllsSEJtVFR6aU9qek5pN0xwNlF2Y1VvbktHeXFWK2I1RXN2ZUZlWG15?=
 =?utf-8?B?RFhTM1RJdjNieWpsNHI2N1JpYm4zeEpWZ0xMRmNRRlphQ25Ibmp6cHhLRzRD?=
 =?utf-8?B?MW5PTU9ndVE1em9IVytWcmh2bDlSZm5KekpBeDJFZVl1TUNvWmJZeUlObTdl?=
 =?utf-8?B?V3ZCNm9pYzV0YmdRRkYzdEFKbmpvZDRvd1Z0cFZiWDh6NHVWcHdTOEJwdGRU?=
 =?utf-8?B?bmZuS3ovY0txWlcrckJBdTcxdk5QUUZteXMzM2oyNkVTZythdURYeXZ2UlJR?=
 =?utf-8?B?WE9vTGt1ZStOamt5VG9aTXNmTWlaYmltelNpR3FYclN3OGx3c2IxRkNUbjFu?=
 =?utf-8?B?R3JMK0hMVUtlK3BVaFhIR3RkLy8zU0JTWjlnMHF1WjRlKzRLa3lyVUE2YXJv?=
 =?utf-8?B?RDVZTTB2YjJ6T1NkbmJqMUtBNkNpQUZINENoeUxFTkZZS0pNR0d1NEQ1Y2dF?=
 =?utf-8?B?NDZ0NWhGR1ZLZHFWZ1R0Um1JTEIwSUNqTzhXOEwyOEpOM3pHMUpmOGh4YnVY?=
 =?utf-8?B?V3AvWDlBc3VHdXJIbXp6dTZ4NUo4bWJWZWt3aEFJSTZYNU1keE95QldMM2hK?=
 =?utf-8?B?TFpRYnl2bkNrRWxibmlKSVgzYTlxMXJocC9Tc1pyQmdrTktpeXJQdExZZjMr?=
 =?utf-8?B?dEQyUUc1OWhTOEdZMHR6bGtQNU9RZE5MOFNaNFA4dy9qWUdDZGRJM2J4ME9z?=
 =?utf-8?B?RzljMXMyY3hZWkdMdkZGZ20vVUdwQlBvQmE4WllKTUROQ0hjYytMUlVDMkt1?=
 =?utf-8?B?NEI2cDU1RU53cTZLbzgvSGsycXJYNXFHTFhhQUpPcGdyWm5seG9LY2gycTZs?=
 =?utf-8?B?YTJ6MThkUzZxNDVReGpqT3daSDJOcEEwMi92Z2NndC8wTHpybFExcVNEdTll?=
 =?utf-8?B?aW5KenRNblAzWDlMSDFEZkYzTlBlUXIwdmVGT3RDYU9SR0pVRHA1OXJkSjIv?=
 =?utf-8?B?SFFOdXlRNWJCOGpUQU9VVko0Z1Q4eFNNSEhBTTZiazRtVUZRR3lzU2hVN3ZN?=
 =?utf-8?B?TFBLcHg0ZlU4bXlaaCt6eHJZVkIyWjQyWjFCSys2ZUFETFVxLzdMMXVYVSs5?=
 =?utf-8?B?WDg5RVZwdk9mL3dVUXlzb1V3UVhJNy9WWThRamE3a3VjOEl2b1hjalRVSUlU?=
 =?utf-8?B?am53OGVGTkFZclRkRFZIVVp2RlM0RjBwQjRram83OEwxa2FMbHZtTml6Wmsr?=
 =?utf-8?B?TDVGR2xrRy9OR1lJUzVkai9walcxWDlxdWJEaFNIakJGckJnSjY4NEIwVXo2?=
 =?utf-8?B?T0ZDLzRtRG5tNDFnTXFxcjZsL1R1enkzNUdUeTJibFRLU2FrODdockxmZVJP?=
 =?utf-8?B?UEtEYi80SGxIbmh3emNVLzhEd2dDS2t0N0U2NlpCc1NZRFFicGVueitMNEpj?=
 =?utf-8?B?enlsdGJINlh1MHpzOXJvcVlDbVEzUllCNUcrK1VMb1lQYXhnaEtwZjQ5RkRR?=
 =?utf-8?B?SWFDRWUrOXVXVkxLUERodUppbnRsbWJYZ3NpY2o2QU5vWjNaUEpia2E2QWRy?=
 =?utf-8?Q?Gy7re+?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 01:08:11.7955
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3a86ecb7-288b-4a35-ea5c-08dde5cf5bdb
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF000397B2.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB5859

On 2025-08-27 01:53, Jan Beulich wrote:
> Dom0 is never started in PoD mode, and hence it can at "best" do harm if
> we try to set a PoD target for it.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

Did you observe an issue, or just notice this when inspecting the code? 
If an issue, please add to the commit message.

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 01:13:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 01:13:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097326.1451717 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urRCI-0002Tm-Ka; Thu, 28 Aug 2025 01:13:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097326.1451717; Thu, 28 Aug 2025 01:13: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 1urRCI-0002Tf-Hw; Thu, 28 Aug 2025 01:13:02 +0000
Received: by outflank-mailman (input) for mailman id 1097326;
 Thu, 28 Aug 2025 01:13:01 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Rla7=3I=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1urRCH-0002TZ-4q
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 01:13:01 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on2062c.outbound.protection.outlook.com
 [2a01:111:f403:2412::62c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 227f0cd4-83ac-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 03:12:59 +0200 (CEST)
Received: from BYAPR07CA0089.namprd07.prod.outlook.com (2603:10b6:a03:12b::30)
 by SJ0PR12MB8138.namprd12.prod.outlook.com (2603:10b6:a03:4e0::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.15; Thu, 28 Aug
 2025 01:12:54 +0000
Received: from SJ5PEPF000001F7.namprd05.prod.outlook.com
 (2603:10b6:a03:12b:cafe::ad) by BYAPR07CA0089.outlook.office365.com
 (2603:10b6:a03:12b::30) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.22 via Frontend Transport; Thu,
 28 Aug 2025 01:12:54 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ5PEPF000001F7.mail.protection.outlook.com (10.167.242.75) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Thu, 28 Aug 2025 01:12:54 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 27 Aug
 2025 20:12:51 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 27 Aug
 2025 20:12:51 -0500
Received: from [172.31.63.243] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 27 Aug 2025 20:12: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>
X-Inumbo-ID: 227f0cd4-83ac-11f0-aeb2-fb57b961d000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=c0xjUS8eveNKkceKVgUl04PTh24OPfVtIvTW/ST7T4GqVpfgRlReiRyKPvNvprethTQsb7gXmXDpfn+hxFcm0yPgDCBhSuPmzB/NkpkxlbzfOy1lLaodMDfFDMA/sfPHmL08dSEq7xHGp6X5uot3xc/EmIFCkq8TfQY1e97ArOh0mSFOMOICGcuuRbEf+H+lIIco7/Ns0WW9W2fU6gNNp2BC+zaMPxnl6U+9CmwgYM1iIDuS+hdMQfKn52L9xC1FcHddEEhX2GenM8LDcVsJ0Qla5eYO1fFOSC7HXjWg9ju7ou1bzs70+DiZD5rUdkV7+muSTVC0Zo7egEIiY2k2WA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=CeWl4L1ejDYaQX9EACJn7a7RUgsq2qYn/ZrHYswGs54=;
 b=n4TRHhw7EpAb1M1CmST20euyhqK2toPTaae9wKos84iK7DptDwwr8NZ0wRnBhZbbFOPK+nnidGQNEXqUHmF8v/BdKQPhcBNHgIH/SFuLn59JiIDHlae+0HhvVjCpkswDNQ6f+ipTADrL1d1euut7kmjqBR4AEPZuZaLSNgC5cOw+9KpqlWDxhgz3X7tsmzV9blA5je6D1S6H4q7o+O+USsuJwuV1W1D7M64j8zcKDir2M7QJst2Z5Q3FDWK59CZ08Agk4244cvXx+n2bheN1bcdCZ/DJAZzRlft2KtuyIO7djKwwQ/BW2P9FzbPseSECO2d6i1RdJtBGJsxvGOx0/A==
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=CeWl4L1ejDYaQX9EACJn7a7RUgsq2qYn/ZrHYswGs54=;
 b=Q++c1rRLv6eW+TTZ5meiH9D6rI0YcTLq5TFg3TAvVgZ83ApIv7R+6ThYefBVsX3DY2u0cMQXRR9vnvIZJjWP+be0UN7mPQ4PjpHLoyIzxX5xrIAIuJphbV4FswGNnvGEa0ZSbfa9QwmsNA64nOEiMtrkSvg9NikBoEy/CHH1H0E=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <01f134a0-46fb-40d8-924d-79ab864352e9@amd.com>
Date: Wed, 27 Aug 2025 21:12:50 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] libxl: respect unset video_memkb for Dom0
To: Jan Beulich <jbeulich@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross
	<jgross@suse.com>
References: <719c456b-927d-41c3-b28d-135a895958dd@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <719c456b-927d-41c3-b28d-135a895958dd@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ5PEPF000001F7:EE_|SJ0PR12MB8138:EE_
X-MS-Office365-Filtering-Correlation-Id: 0f1152dc-4ed7-4f04-4cdb-08dde5d0043f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|82310400026|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bHZlOVhJNWR4SHJqNGw4Q21PS2xLSUpvN2MyVmdtcEdNa0pVZzJudUdHZG5w?=
 =?utf-8?B?VkFDc1UxVFdEcTVGd0prcG5MNDFodVlDWlhGNm9nR28rY1E4RDRUNnVId1lh?=
 =?utf-8?B?Uk05N2NCSDlmZmpyczRoK0hoMHFBdW1nbDlQeit4cVlhRW5URG1abGZpSGtH?=
 =?utf-8?B?RDRGbUNLN3ZhbzA2L09NZUxpbEpyd2k3d3pyWTFDYlBwYmJpNTVYeUpSSHZt?=
 =?utf-8?B?TVcwRnc0cUlBcHNmT3lNSktVaTlVNElqbGt3QlRzd1BYMVBBTkU1d2oyOVdy?=
 =?utf-8?B?ay82SmFMVXgvdTQwWnd3N0J6OUplWGprVlpUbFNWUWJ1S1RkYjF0SUFmWWov?=
 =?utf-8?B?SDlYVTE5Sks5RGNMOEZMdTJsbGJ2SXBmU01IWTA1amR4djJEenNWM25LWTB6?=
 =?utf-8?B?SlRPdWx2T3pWbWpnSVoycVFReFIrN1lNK2owZXNCTTI4MFhNWFVCWGhqOHBN?=
 =?utf-8?B?RndJWXd5TEtLdDExdE9GUGFlV3BIcy9qUFhuRWJuRGtLMzBORmJJSFJQOUll?=
 =?utf-8?B?QUhDTUQ4L0VZSWptclBxMXdwb0t2Zy9RRUxiN2psdU56N0ZGV0NKOENtUmtG?=
 =?utf-8?B?aU1aRWMvSVdmRHd6NWFFbFNOellSSmRHTk1PUFNNVU5SSHcyN3VpQjFMUkI1?=
 =?utf-8?B?eFRYU1FNRjJiSGRvcm10ZjVJOFhTQjJ3NUZiV2wyVmNXWUlGdWlDbTdWRjNB?=
 =?utf-8?B?L1dieUlBdHUrZDRnbmhZZWI3Q3NHcnJqTGFMRWxpUld5eEg1WTFRejRsZ0Ju?=
 =?utf-8?B?ZmlkdkhKb0o1OWlHRUx4MzFoWjlubVRXTlYxY3FlM3ZMd0dvcDBGcGNpdEJL?=
 =?utf-8?B?QnZUV0p5ZngzS2RTOHN4WlVKQmJWK2QrS2dUSEdpRm5xcGhrRXNLQ1VkSU44?=
 =?utf-8?B?YURjNytBLytqcTBCWGNTMU1teEw2VnlaemVIMXU2VDBvdmIzU1NvRXpPdDY1?=
 =?utf-8?B?OEx2Z2FBTVpkZEowaE9LdlA0UTdselBGbXNteFM2eHFNN2phZlhyVXFOeFNT?=
 =?utf-8?B?Wk9adExEWURPRWdxUi9hWjJ0UmNTTG5yOG4xRlRMWmxXU3g4Q0E1MGllUVhK?=
 =?utf-8?B?SzByOFUwQzZhemFQMmlPN1Fxb3pPWk9rNTZHOG9yOThpM3ViVS9EZ0lJMWsw?=
 =?utf-8?B?WVRLMVdGR1JEMjlqRHR6NkhsVkUzTGRUTkowMnVzVGxSYlNnRm93blVhQnZR?=
 =?utf-8?B?Y2pmS3JlNEI3MUFJOUJLb1l3eEVPMHhxaVd6SWFGQjFMeEE2Y3F4WW5hdlR2?=
 =?utf-8?B?b09PWW9OOEI3SlZHNithRUpLRGpFTW94WWVFSWd5R3I0NVN4TFVYODBUQk1F?=
 =?utf-8?B?WVRJd3pxM0FwWGhRVjNadmhxSXdJd05UTUQ0MkZRaTZ5VnhBaE1mT2JYK1RT?=
 =?utf-8?B?WG9ZLzRRKzhuMXZJdnIxbkt6MGRTWldVbnF4N3B4cDdWVVJPMC9EbVhVeDdW?=
 =?utf-8?B?ZDBOYzhKRy9VNGFxbVYxd2FwMFJRM3Q2NFJKNnd1bzJpTVR4NFZDYmlibkdP?=
 =?utf-8?B?TFNQMnJkdWFIaHE1NXIrZkk1SHFMM2paQ1preStSaG5sa0N2czI2ZW5IaGp1?=
 =?utf-8?B?dml6cFJCTzhQR21GMGJ3bEp6STlRck5TdXdoMnhyQ20vNk5pYnliWTAzb0ln?=
 =?utf-8?B?bVljdzJyTlVWOENWREpQMkx1U0g5M1VXcjhXcG9scXhST0I4d2QxZXFDUm9u?=
 =?utf-8?B?WXFKUkN6UnJjVGtPdVlhc0YrSWlXc1hPQ09TYi9MdlVBd3dsR1NzVFJvSjZT?=
 =?utf-8?B?b3dEOFdBMUtZRTlTQllrM3ZhcjZBK1g2bEFOMkFsMXhqbTFla2p4dXZVYnpI?=
 =?utf-8?B?K2Zwd3dLMWtxRllSSGxnNjRsMVc3elJZSGtBV2FTL1pBYkNTLzZJWXNtWHVs?=
 =?utf-8?B?ekFkWWtZSnRGcFR6T0hxYVkyVEtHbGJDZm9nMm1tTXh3UHM3NEdZZTFGa3VM?=
 =?utf-8?B?QmprS0tyRTRhQlBMUThZYVRWMUpTZ2M4K0R6TWJrMmxoanpFRThsSzBoRzNx?=
 =?utf-8?B?OFppMDRIVWdUTkpUU1VRRDdHc054RmhIdkNHSnl2elJOV3hlNFRCd0pDOWg1?=
 =?utf-8?Q?8g7Y99?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(82310400026)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 01:12:54.2325
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0f1152dc-4ed7-4f04-4cdb-08dde5d0043f
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ5PEPF000001F7.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB8138

On 2025-08-27 01:56, Jan Beulich wrote:
> Without this, Dom0 will have have a curiously off-by-1 target_memkb
> value displayed by "xl list -l".
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

In theory, b_info->video_memkb should have been defaulted to 0.  In 
practice you found it isn't.  xen-init-dom0 could probably use some fixing.

> ---
> In retrieve_domain_configuration_end(), isn't it the wrong way round to
> set both ->b_info.target_memkb and ->b_info.max_memkb only after calling
> libxl__get_targetmem_fudge(), when that uses the two fields? This way we
> could as well use ->b_info->video_memkb directly there.

I think it's attempting to read the current values from xenstore, in 
case they changed via xl mem-set, and then putting them into the d_config.

Regards,
Jason

> Of course this may point at a bigger problem, as other fields may
> similarly never be set for Dom0.


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 01:16:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 01:16:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097335.1451727 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urRFv-00032X-2y; Thu, 28 Aug 2025 01:16:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097335.1451727; Thu, 28 Aug 2025 01:16: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 1urRFu-00032Q-WC; Thu, 28 Aug 2025 01:16:47 +0000
Received: by outflank-mailman (input) for mailman id 1097335;
 Thu, 28 Aug 2025 01:16:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Rla7=3I=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1urRFt-00032K-NA
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 01:16:45 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20602.outbound.protection.outlook.com
 [2a01:111:f403:2009::602])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a7d4d4b3-83ac-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 03:16:43 +0200 (CEST)
Received: from SN7PR04CA0061.namprd04.prod.outlook.com (2603:10b6:806:121::6)
 by DS0PR12MB6583.namprd12.prod.outlook.com (2603:10b6:8:d1::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Thu, 28 Aug
 2025 01:16:39 +0000
Received: from SA2PEPF000015CC.namprd03.prod.outlook.com
 (2603:10b6:806:121:cafe::8a) by SN7PR04CA0061.outlook.office365.com
 (2603:10b6:806:121::6) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.21 via Frontend Transport; Thu,
 28 Aug 2025 01:16:39 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SA2PEPF000015CC.mail.protection.outlook.com (10.167.241.202) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Thu, 28 Aug 2025 01:16:39 +0000
Received: from SATLEXMB05.amd.com (10.181.40.146) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 27 Aug
 2025 20:16:39 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com
 (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 27 Aug
 2025 20:16:38 -0500
Received: from [172.31.63.243] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 27 Aug 2025 20:16:38 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a7d4d4b3-83ac-11f0-ae26-e363de0e7a9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=vYfohkLBilHt15ywWWkstnXjriH1PomF3sCF6hIYOEhTFsn6sfQTLMyQFMNWLqC663V0k9vmhQIl+e5rrQcMI6w5il0wffjrzK4pHDBwLMF7HrTLklYIMy8b/JtdAq6h4KN72qht6RRD1HY97xTIwU7ZZm0ydMAahdLICUj5MSS6P5zd9320pk2QVyDgIjgOnkOjytDLJdFjVC+3UEuDo61Qa/KYJlQYzn17xlQPjgDz+ES8zXiQD7RfRCowLVp4htZEOUnIRroRo4A/JacY9KSpozP1Xp8sI8LTHOA0jj1QC7oX4Eg2gdqgaYASETOptFfzYsZEuNolD3JfQOegTQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=vQuakn5Cx43K0xwmprAVCgxQPF9KfmMWgWrhRwDQfMc=;
 b=xB0sJgw1aTP3bkOLL60MsVckCWyvHSKmzLIyJXEX+DFCQRybHL37nBBqMq2tR6HudKKsYoS1fK7/ur+J0Q2x4T+dkjgmAqf+q/RlsqKpoLntxx589UHEEKtHK69ZndmKYMXkwHzxcib2aF98bTfdp2vySlFPfXfB0jhIu2AOt4jbBGTqg36tapDWCGKu4ti77FGfOvsSUUbdMG0hdREOv+KB97pgocxmP1q/GIUMI1ymkUW50jOAmxgNiGL51+wJIxrjuaHQTahyneXcasc01Fmj+gTOZGu8N8+bsELEub7vhqXsz+x3g1RXV4YnheMMxVYt7jNlF5P+qOxfRMjRcg==
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=vQuakn5Cx43K0xwmprAVCgxQPF9KfmMWgWrhRwDQfMc=;
 b=BifLOWcen5d8wZxtLO5YKfWblL9PrgXXOOHUBKGvQtcNtLlRMCMqzgCy3MbtpXLxUaOSkFel4F4VXLtLRSTevit7JUYFtkGDfE2LrpygX/qAdXVmFZbN8N4J6o+a021ubtrhTqgGvufqv1a2+oCiKvLKce4vx6VwkEUqGwFG6+o=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <c4ce1651-3881-4af0-bfe4-294917c31c9d@amd.com>
Date: Wed, 27 Aug 2025 21:16:38 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] libxl: preserve errno in libxl__xcinfo2xlinfo()
To: Jan Beulich <jbeulich@suse.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross
	<jgross@suse.com>
References: <e567c234-473d-40c3-86dc-53317812baf7@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <e567c234-473d-40c3-86dc-53317812baf7@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB05.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF000015CC:EE_|DS0PR12MB6583:EE_
X-MS-Office365-Filtering-Correlation-Id: c4dbd86b-7b74-4f46-4dcb-08dde5d08a8f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|376014|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?RnQ3Y0VTRWtmcTVONFN6MTNIOXI4VS9KM0c5T2U1TXN5VmxUQTliVER3OUdU?=
 =?utf-8?B?N0kwUmg1VnlKTjgrMTNoNGxRclIxNHFWU0Fndkw1Y01WekJmenV3UWRSUU1I?=
 =?utf-8?B?R2FyaXQzc0R4YW5hZ1hld1J6VWtjbjZRdnhudGVLYlEyZWtzbEN0a1UxNG1u?=
 =?utf-8?B?YytmUndLVFhIdlA1b1B0dWRFRTc2RFh0OG9pTnBmaHJuWmZNUENUbmtCazFZ?=
 =?utf-8?B?MUl0VFdjNStMeWVUTE12VHEyTTcraGk2a0tOWW5jWGs5anp1UGU5RTloWUhB?=
 =?utf-8?B?MU5wYnNyOEpoL05xT3JXbW5ZU0U4cTlUZGw1RUREQlNqMWpBNEd3NEYvMVVV?=
 =?utf-8?B?M3pZZDhER1R2RTcveEF5R2hrTTl1WHFMbXFEOEM1b1JDdVdHYUNpMXVFN1ZZ?=
 =?utf-8?B?TVdoNmJHTWFackxEMTZXd05NajUySFgraW04QjhKcU5JOEh5d2UrZHB1OXU0?=
 =?utf-8?B?VHlCS0xlYTR3SzVwajNHQWpsMVpSdlA5Z2l0SjFDWW1UOUF2SGx2YkhLMXNJ?=
 =?utf-8?B?emhoVHZHcWt1RDQvcjJlMWVpanR4dWR1dmNCSVN5a1d5TlhwRi9iYW5PTFdj?=
 =?utf-8?B?N082Y2ZXV2grUHlMbmE0cE1WZ0JMT2VobFluVXlpakxxUFhoN0NENHN1cjds?=
 =?utf-8?B?TUFvM2RYdFVpVDdaUUhONEFHdEswaXMrNHNERW4zMVg2VlhLa3lSdUI3cGIz?=
 =?utf-8?B?VWVROXo0eUJNUC81ZURIVjZleHd5VjR0NlljcDJrbml3QWdnM3RPT2hCaUxK?=
 =?utf-8?B?alFFLzJILzBUREZGSCtNbEhza0IvaGtFb21UaGVNaWJVOG9BSWtWUUpSTUor?=
 =?utf-8?B?QWs1bnB3alB2VldObDBTRjRycUtOSS84bldHOUZ5SXBXbzdnM3hiWnJlc1hQ?=
 =?utf-8?B?VXFlVG0vMGhPMUI5RGMvd01JUnJaaU9rWGN2MXpHTmI5M1gvWWE4WFN2UlJZ?=
 =?utf-8?B?NFhDY1BPTHhRbzJ2Sy9HRlpDb0pzSnk5NHZhRU81ZWhkaEZRa2FUQ0htbW5J?=
 =?utf-8?B?OGJhV1VnMGRZQjVuN09nMG9RL1VESTI0bUZGUlFLc04rZ2lmTEtxVE1PSGZt?=
 =?utf-8?B?V0tnQi9FL2xIQTJKZjNqSjJnTHZUVE1SRHpWQ0xyY0wvTG0xeXhzS1JPaHl4?=
 =?utf-8?B?a1lFVVJNb0E2UklWV3crWUxnUG5GeUpnR1RQOEU2MDRoamFsdmYrZ281MW9h?=
 =?utf-8?B?eExtQ0tNb256S2h0YVlIU1F1NjJJWE9leEhsUUhOWDg0b0dnNEVLRytaQldM?=
 =?utf-8?B?VTlMT2lIY0pSS0RnaFBzNk5lNkdsN2hnckt5cmpjbnc5VUE2OW8rUWUxOG5x?=
 =?utf-8?B?RlRKV203R2w0Zno3SFdEUTdtM29XLzlGY0cwTzI4RlpiUjY0QUUwZEdPU2xU?=
 =?utf-8?B?NFVhdEFhSURmcmNrZVYwZk5FbHRSaENwYzR0OFZNeXplOVM0THBCNjNLTVA1?=
 =?utf-8?B?TWFMVUdORjNKSHBHNXhlWlJ1TmRuallqeC9TcUd2S3IrK1dCTnhlWnVrY0Nh?=
 =?utf-8?B?MzdNUlJKTlhUdmVFZ1dCTE5HVTZsenNLb1l0OTIvaVkyWE9oRS9NQ1hZVU9Q?=
 =?utf-8?B?MFZTcVhDK2JqMVh6N0lmYzErNEhsNExRci9BK0RkYnhlYjc3bWI0eEx4cjlF?=
 =?utf-8?B?a3JTK3krcGlTT296VkxlbVhGWEMvcFIxY1pkdFRBUDVHMlZHaGhXZWZaQUhz?=
 =?utf-8?B?TndDWlJYd3piN2RqMUovZ2crd2NPeVR6cjBkUjNnQ3JaQUlDbmp4NGxlanNl?=
 =?utf-8?B?YWpoMG1PSUVBTUJhRjlRVlcyMGlrdGVlWGRHZ0pBTmlsTHZkMkU4OXpsL1pl?=
 =?utf-8?B?KzlrbEczRCtWZXVvRDF5VjFSQjA3ZU1yMUw2V3BNSndlY1B2TjJ6dkRqczMy?=
 =?utf-8?B?NkdGTVJadlZMSGV4dXlPVHFvdGVsV1E0RU00SDVOWlhIM0ZKalFPREIyQXpa?=
 =?utf-8?B?QW0rL3Rnb1RIRFg1UDNrR0JoZm9GWHZwR2xudnc5Q25VQkYrNFViMTJxT3Y4?=
 =?utf-8?B?cmU0ZWRCM091MDhrdm9Ka2lEeGxDUnVYcVdDeXFsMFVIYSsyRU9kSU1VdlZj?=
 =?utf-8?Q?BAa8jg?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(376014)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 01:16:39.6350
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c4dbd86b-7b74-4f46-4dcb-08dde5d08a8f
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF000015CC.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6583

On 2025-08-27 01:57, Jan Beulich wrote:
> Callers observing errors elsewhere may be confused by the ENOSYS that
> the Flask operation would yield on a Flask-disabled hypervisor.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> Of course I don't know whether clobbering errno is perhaps deemed "fine"
> in libxl.

I wonder if it would be better to special case 
libxl_flask_sid_to_context() to preserve errno on ENOSYS.  flask 
returning ENOSYS is common, but libxl_flask_sid_to_context() can 
legitimately have error.

I guess this is fine if we want to use this approach:

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

> --- a/tools/libs/light/libxl_domain.c
> +++ b/tools/libs/light/libxl_domain.c
> @@ -277,6 +277,7 @@ void libxl__xcinfo2xlinfo(libxl_ctx *ctx
>                             libxl_dominfo *xlinfo)
>   {
>       size_t size;
> +    int saved_errno = errno;
>   
>       memcpy(&(xlinfo->uuid), xcinfo->handle, sizeof(xen_domain_handle_t));
>       xlinfo->domid = xcinfo->domain;
> @@ -284,6 +285,7 @@ void libxl__xcinfo2xlinfo(libxl_ctx *ctx
>       if (libxl_flask_sid_to_context(ctx, xlinfo->ssidref,
>                                      &xlinfo->ssid_label, &size) < 0)
>           xlinfo->ssid_label = NULL;
> +    errno = saved_errno;
>   
>       xlinfo->dying      = !!(xcinfo->flags&XEN_DOMINF_dying);
>       xlinfo->shutdown   = !!(xcinfo->flags&XEN_DOMINF_shutdown);
> 



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 01:49:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 01:49:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097350.1451737 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urRl9-0007Tj-FE; Thu, 28 Aug 2025 01:49:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097350.1451737; Thu, 28 Aug 2025 01:49:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urRl9-0007Tc-Cb; Thu, 28 Aug 2025 01:49:03 +0000
Received: by outflank-mailman (input) for mailman id 1097350;
 Thu, 28 Aug 2025 01:49:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Rla7=3I=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1urRl7-0007TW-IL
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 01:49:01 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on2061c.outbound.protection.outlook.com
 [2a01:111:f403:200a::61c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2810ec60-83b1-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 03:48:56 +0200 (CEST)
Received: from CH0PR03CA0349.namprd03.prod.outlook.com (2603:10b6:610:11a::33)
 by BN7PPFCE25C719B.namprd12.prod.outlook.com
 (2603:10b6:40f:fc02::6e1) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.24; Thu, 28 Aug
 2025 01:48:52 +0000
Received: from DS3PEPF0000C37A.namprd04.prod.outlook.com
 (2603:10b6:610:11a:cafe::b2) by CH0PR03CA0349.outlook.office365.com
 (2603:10b6:610:11a::33) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.15 via Frontend Transport; Thu,
 28 Aug 2025 01:48:51 +0000
Received: from SATLEXMB04.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_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Thu, 28 Aug 2025 01:48:51 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 27 Aug
 2025 20:48:50 -0500
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.1748.10; Wed, 27 Aug
 2025 18:48:50 -0700
Received: from [172.31.63.243] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Wed, 27 Aug 2025 20:48: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>
X-Inumbo-ID: 2810ec60-83b1-11f0-ae26-e363de0e7a9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hoY2XSol/80zaKY2Q3PFNXFs6IODWfQSBG2SsCuIPRiwVKR9AywbttT1F71bghaqKvFHdQ5xbD6iwyDywK/alBSY8n0IeSNT1IKIQoS9dOnC526amK7Mr0NBACHA7wWXN3575yWT1uqNDholmjtj8NNRf3bYBYMgiHROdNZ9cdIZSdKMSBC3S3VFvLbNFr+1ARh8wXvnFrTulx3YebM+o56x6IB8STx5ThgTq2xYPf+V9ZPvJ/+ncH710xr3UAozdVG9DHndpA1W+q1nnhyj4I/98lenK88F+mplAyeuhx8z8E3/pjrvCDJXN71vcQxPhEB6CcUfwEtjIIMER01HXg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=bgWOqHOLeM4Q3C0RrcY09K7HP8O9D6dmQ6CKyFy6wz0=;
 b=g/sAeBRuSufEaS2wsm1M73ysQth//taxmFp+4/hYEb+p8MD8OTjKiTSueseNhifbOjDwBZ3Ub7fX8oI5T64AHW8aSz1Ly7Cjck8dNX/ZmjWPMmFTRRniLWSSrF5a/M8n4ZxhQSwpgGZvwYFTJ9cMBfjjir2cVnQ4j8MsIZ0eGbwadn5MLF9rvBSnPm7UerdQqB4WSLxr0+DhPlJCZ6TYuZHr36lHH5WoJgCjifTzqV/ADJPiVd0hr6eBelibMGLuvho/L5b4GkDByBJUuTa+RlOkp5KREG2PgmG6I/i7WN1EOYNCETz/eFKGaWwCC72o++viaY0oQUhErUW5a7/4fQ==
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=bgWOqHOLeM4Q3C0RrcY09K7HP8O9D6dmQ6CKyFy6wz0=;
 b=a2+Uw2DPmBgmaQTV7b5hNcFZsuMdUH4HWyX7lmZJ52lGHDDQVsxn9fQUVV3RWazAH7N4hJ/48QmxhumsQIsh/wQPHZvK/KD48CvAwUgwBB2NP4Wq/2PwBKO/TtyjM19aaKXdaSulaZMc8CbABBns8p0V3UH0y7d5a0JDlVvAvEc=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <318f8ef3-aa52-421b-b9cb-6cd6139e1dd1@amd.com>
Date: Wed, 27 Aug 2025 21:22:13 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: Xen-devel <xen-devel@lists.xenproject.org>
From: Jason Andryuk <jason.andryuk@amd.com>
Subject: MCA hypercall with PVH
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS3PEPF0000C37A:EE_|BN7PPFCE25C719B:EE_
X-MS-Office365-Filtering-Correlation-Id: dbc3e394-02fc-4b40-a249-08dde5d509e7
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?akp0T1FlWnFSbGJMa0NPZDhGT0ltN2ZRaWZTV3ZaNzNEd2pCdVBwbnFNV1h2?=
 =?utf-8?B?VjlSUWN3MHRZcjJBcjhnUHBRY3ZoRGZPN2puQU1EaTFxQTZzVjRoM1AxS0ls?=
 =?utf-8?B?MklLVEExaWFleUplN29QalkrWG1waGx3bDZBSkhEODd6V0NQcjY5bXU4Z2FV?=
 =?utf-8?B?Rmttdi9Yb1liWXFwQ3RZSEVwb0tLNXpOL3R0YXR0YUxMOXRlQkFKZ1hTRmI2?=
 =?utf-8?B?UWYvdWtDeUNMbGFlRE5rRm8ybWlRVDRabVZ6T1pKdXNSOHVaUzMyU2plM1ZD?=
 =?utf-8?B?Ym85ck1uWXp2ZTQ2UGZReU12dm00ZE16dU11NzJoSm93b1g0eE90MzVuVFE2?=
 =?utf-8?B?NFpyUFNicEo4Mlc1Q2dXY3VVb2hMZHVnbVRTUWFtdHgwa3hRbG5McEFSbE9w?=
 =?utf-8?B?bTE3TWQvR0wxZStRbWNFTjZOMjYraTh4dDNicm9hdm14U09XV1l0VU5GYkR1?=
 =?utf-8?B?UGdzMUVSL092TzloNGJkWEl4YVlzZm5pNWdtRGkxTTREeFJQWVVFVExmUTFO?=
 =?utf-8?B?VWQxcGwxVDAxaXE0NUxoYnNQYVZnOG5TamdYWndZZnN6akZLWEE4Tm84Vlkz?=
 =?utf-8?B?T2JpZzNlay9uVkhsM1M2UTZPTGEzU0ZnWEJJRjNPT1VaM1ppbUs2UDVKcWRl?=
 =?utf-8?B?UWJsVnJWSS9PQVVNcmhybVVPbjBYa2ZVQXBSYkluaGZuQWc4WjZSclNkWVlQ?=
 =?utf-8?B?Ny9BUGVxWW90V3ZRcGNYemdCU01MRHpwb1JsYnIwZW80WFBXckNtSnBUMEdX?=
 =?utf-8?B?TWZlQVF4Sk5pbmREZHltUlhQeEdOYTNWM1RLT2RvZXl1MXBjd296aWZ5QVcx?=
 =?utf-8?B?ZzFwU3lyd2VhT3c0ME4vMjM0SUlJclhlbHQ4aFBKU1JVZnJxelRyd2xwejZJ?=
 =?utf-8?B?blFDOEw2bklWUVppcVNmSDZKdXBkbVBKNjRzbHpCb3A5WDg0MjUwaGNOWVM4?=
 =?utf-8?B?WlVmSytmVlFzMHBpNUVPa1luYnB5UGx0VnhhM2NpbDBnUExxaXVrKzlSNGVn?=
 =?utf-8?B?NjRnMElBR3VFbnhVcXV3czZJSFJEbDV2WFVtY09ZTkxoQTFZWXhQRGExTUFC?=
 =?utf-8?B?aUZxU2pwZytldS8wL0plMWg2eTdFZGVFYjV6NldaU0Yzdld3b29xb3NDY0E2?=
 =?utf-8?B?dmJmQStSbC9ENFQ1aUtsdkNnZWxZcXQwbk5nTVB2dnQzZFBseVM5b3VWN3ly?=
 =?utf-8?B?b3p1QzB3Sk0wK0JNRHV0THJodWlEeXZCYjVyYlJtTVdBcld1UmJKSlVBdXJB?=
 =?utf-8?B?NEwvTTdJMURuZVBFYU5BN29kWFdxVWhmTjhvWDZHb2lsQ3c2SmNTY2hydzd6?=
 =?utf-8?B?aHBQcHpXR1N5dDBiUStBNzI3Z21oNWxjaU91Z0grLzZSNk5PblNjR3BwVUZF?=
 =?utf-8?B?V0U4Vis5ZS9GZ1E5bjFXdVl1ZUhSbzZjWlo3OHZKL1dvQmx3YUE4b0VtUFgz?=
 =?utf-8?B?OHRUSzdpUjArSWxpZHVpYmhZR0tvbVp0TzFwYmR4czdZMGNCZEhMMzJaNmtZ?=
 =?utf-8?B?eW9LTW5TbmI1ZUI3S0JXdUV3dHk2cVNUNVRQK0xrYy9TbHBzTlRQS3I0SHpQ?=
 =?utf-8?B?b1VDakRwQ3NVZE9vSmU5Y2JNdEZZNG5tdnhJNnExVlg0eU1VbEdlVW0yZVJv?=
 =?utf-8?B?V3BEQnJBdVJFbytOeHd4dkIxUnlidWVTaWZZRDhyUVlUNUdVTGRqUDF3djRJ?=
 =?utf-8?B?eW54bjhMcFFvSWZ3RCt1dUVvZW9sdTl0Q1NCaWVqdEFja2JPVElDZzNzaHdq?=
 =?utf-8?B?bXFsQ1B3TEY1eElDR0VTSmNuVUhMK0JBdVRYZ1BJL1oyTHhxeitOY0RwV2FK?=
 =?utf-8?B?VW9ZbnZXdzJJWDBLRXowVm13R2RUL1FkcnJ1NUdzRlZpSEFvU3ZYb1p4N0tN?=
 =?utf-8?B?VWtLSU93a3gveG11NHNUQngvRFM1aVdpWDRBcFhzQkh2WmtBWHFkdWxmRGZr?=
 =?utf-8?B?RUlyR0xtOTNXN2w1NE5NNEJ3R0hvakE1QWtZd1cvTGVTcTgvQlZNV3BzazBC?=
 =?utf-8?B?NE1uRXZpWkZ6bUZpbHUxZ3RaY3RzWDREaGdrRTlwa2JVb1lmNmNpeTJnbDB1?=
 =?utf-8?Q?iBzw3o?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(1800799024)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 01:48:51.1821
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: dbc3e394-02fc-4b40-a249-08dde5d509e7
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=[SATLEXMB04.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: BN7PPFCE25C719B

Hi,

The MCA hypercall, do_mca(), is only available for PV.  That is, it's 
only added to the hypercall table for PV.  Is there a particular reason 
it was omitted from PVH, or did PVH dom0 just not exist?

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 04:06:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 04:06:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097410.1451747 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urTuK-0007mN-Ux; Thu, 28 Aug 2025 04:06:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097410.1451747; Thu, 28 Aug 2025 04:06: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 1urTuK-0007mG-SC; Thu, 28 Aug 2025 04:06:40 +0000
Received: by outflank-mailman (input) for mailman id 1097410;
 Thu, 28 Aug 2025 04:06:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ityt=3I=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1urTuJ-0007mA-40
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 04:06:39 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on2062c.outbound.protection.outlook.com
 [2a01:111:f403:2416::62c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 63457aa1-83c4-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 06:06:36 +0200 (CEST)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 DS2PR12MB9568.namprd12.prod.outlook.com (2603:10b6:8:27c::20) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9052.20; Thu, 28 Aug 2025 04:06:32 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d%7]) with mapi id 15.20.9052.019; Thu, 28 Aug 2025
 04:06: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>
X-Inumbo-ID: 63457aa1-83c4-11f0-aeb2-fb57b961d000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=cnwe7ljv+zReZlxkCUyvJOPdo86fO/+q3GIDM+yTMixU5bVNZ0BJbAT5Tl8bYtShq1+MUWFp+9R/fi8eNhJAvK55cfjR5vbliKu8qCHCWGPhJe/G7HpAWNd/Q02RSSMX/NFM8vgz3m8QPHbg6wRUJaX3f2ZsyuNtQ8I0z5StPnGwipBYn2WSJIL7BxunIcyMNZWxQe2QI+kzjMvTDtgY/c2SH+FYsjajyFVPrZci7CWiJI2mvzncctyvy5xOzNVwqgG1aKliD9lyZWdqbMukwleoQlrhaW7gQABO+Rp9hCJXNTBmMLFvgOJZyJOYkL8BKPKyp/pOXhzd0IHUCQ1c5w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fSlLeeYDhJHR/RwvS2xUqV7ZvJzVthNx3e4DV2yY0f0=;
 b=N5opMK+rk+19qoyRU1kqNYVWZfpglKvq47eoWrZ7ReQzKoxBA9NBgk5dAtizm9tkMTUJHsROb7/rPcMgOobiuA2BU83OvvuB9fuVZGugg9kPc/cfvEl8YEyjMmZk2oMFYqH67PYqpiZMWVemkyUdfxQdnmB6WP5Mleg2rSre31oCfyWfLcLDPxneb9bIsMAA0s6vw1vUUxht4EgmlPE5B6X2OGBExyLkjTU6zR5bLgHKjsoeFSUiF2FwAjnE32nXAkHHWtKDM7MZOZuGnka2AbcLBtMaQUaVogwSFh+nbvj/tAjP+9G9fNsYExZAVu/CcWuVB+oSgh+WkW0Nw2bwGw==
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=fSlLeeYDhJHR/RwvS2xUqV7ZvJzVthNx3e4DV2yY0f0=;
 b=k7vxq1CZxR5khRjBjtkVr1GCXOOmQV2A+i5IxNoYqA5lTREsP/5IgUneXjWNOn+ijKTFbVRRea+hvngH6rXi7jIvkpZ7JuL3L1XrYJqcJqPYQwF2rjoM7D3/4yumiTKakYop3MTBg3xe6yPbPw9e6gkZGngLBO8/UUPXgb8Zri4=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Andrew Cooper <andrew.cooper3@citrix.com>,
	"Orzel, Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Stefano
 Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v7 13/13] xen/cpufreq: Adapt SET/GET_CPUFREQ_CPPC
 xen_sysctl_pm_op for amd-cppc driver
Thread-Topic: [PATCH v7 13/13] xen/cpufreq: Adapt SET/GET_CPUFREQ_CPPC
 xen_sysctl_pm_op for amd-cppc driver
Thread-Index: AQHcE1L0WO8OIJho60KGV8JFR/QspLRzjMCAgAJSvzA=
Date: Thu, 28 Aug 2025 04:06:32 +0000
Message-ID:
 <DM4PR12MB8451CFF93199B96578D96F88E13BA@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20250822105218.3601273-1-Penny.Zheng@amd.com>
 <20250822105218.3601273-14-Penny.Zheng@amd.com>
 <f27c17e6-8c88-42f3-b0e2-874aa02597c5@suse.com>
In-Reply-To: <f27c17e6-8c88-42f3-b0e2-874aa02597c5@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-08-27T06:36:58.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|DS2PR12MB9568:EE_
x-ms-office365-filtering-correlation-id: 719e9424-1446-4282-f6fe-08dde5e845dd
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?cUtVb1Z4M3dINy8wL3l6WU8vbHlNUkRHbzR1RVgzUnprM1Frc0VxNnNhRWh2?=
 =?utf-8?B?S1VWS3RPdFpsZEVZc0hUcTlFK3NXNlQyd3lwbU16d0lRYXkycktKWUErSGYx?=
 =?utf-8?B?allzRW9xU3BVRE5rWStqVGFIdlNUY21JVUo5anNRZnl2THI5K3phNTMrU2lS?=
 =?utf-8?B?OFdIRXRiMUNPS04wVGtDUXQ3dDJCcnlqZm1vUnloOGpVeGx0WENRTk5RdHFq?=
 =?utf-8?B?TGE0K1gyVzNuMGZrTkdxanZhKytITFJzM2lvZE00VlZUVTQ2TFJqdWtWd0VF?=
 =?utf-8?B?L01jRWZsTFZuNWlVaFpBWlZwNlQrWmM3RDRqSEhKWWQvVVI5SUpjUGpPYndn?=
 =?utf-8?B?UG03ZEFQcGR4ODVCM0JrTDl3WXFEVXorWi8wQWpFbWpGQmFhRGtoMEZJcTZT?=
 =?utf-8?B?WC8wUjN6U3JPaGJtcEw0YU8vKzZEVXR3MzU1M1VuWU0yYlNjc2ZSTmZ6dUl4?=
 =?utf-8?B?LzJuR0NBQjM0dERBZnhBWWdLbzZJNUk1V1A4U2RXMWVhK1pOTS8ycmJ2VEVq?=
 =?utf-8?B?MHpvVUFmQ1pUYzdSTXJ1ZGNjNCt2T2V6M0wyWGZsM2VWWER1WlFNSjBtTitP?=
 =?utf-8?B?TlBNRFA2Z29Qb0ZIN0xtU1Zib0FNMjJIYmxRM1VmRHJMYzJDdWNYYW4yRVNn?=
 =?utf-8?B?ZklIY3VSVHhvME0yQ2x3Zkx1Y3NPbHBvaVBsUDBuNjc3SlBkOER2SzlEY2xt?=
 =?utf-8?B?L2xHS1JvQm44by9CeldUTW1HNk9wRkVGbUVXT0piU0ljNXh1czFManZ2UERU?=
 =?utf-8?B?Y2Y0QnloUlFTVTd5M29PMjA5Mmt2VEptSjM1Yk50ckJFOElKcFF3UndhM2pq?=
 =?utf-8?B?Q2lKRmdYdlNxMmZJK0dOWGpxMTZyS3o5RElXSHB1NXdleDdNQS9lZDFsY3da?=
 =?utf-8?B?bEN2WkloOGZybVJQNzBWK2lKNzVicUwwTkVwK2dUdi9INUUzcGZnbHIyZHJB?=
 =?utf-8?B?WHc3bExGOUpJbHBTSWpvRFhWb01ZRU9RTlZxREI0Y3U3VDM2MzMxb1pLOVhq?=
 =?utf-8?B?S0pMWnp2QWUvemtPZGRBNWNaWVBNWjd1T2VxRVVhTlc3OC9EZEtPeElVNXpa?=
 =?utf-8?B?a2trMTdWdktsc0Y5d0R4ZTlxckM5ZXhNOWFlRWpGbm1TSDZqUFljS3Qwd0Iy?=
 =?utf-8?B?MCsxemd1MzNHc3dSOFhOU1F3cExvYlZhak5BMWIva2tWRXNIdmlLM1dBbUYy?=
 =?utf-8?B?aktJdWppajBJakNsRFdzVzVKZ01ZTkRXT3RQaFZmSTg1QXZKd2JZd2pTY2Fm?=
 =?utf-8?B?bGV0WTM3VXZkM1NLZ1JpRVNhWk13Rm9jNXkwMUZFR0Z2TXQ4elJWMVo1YnlL?=
 =?utf-8?B?MTBjd2hzSG1zS0RsdllNd2YyV3ozR1dCRkl2cWZlTGR5SHJUaXZOeTJRZVlT?=
 =?utf-8?B?SkthWXg2bVZudnJ1dEM1dDBRZWpYcUdBZkxZVW5UYzYvOFF2MHJXMmFXN1FB?=
 =?utf-8?B?bzl3MWRvaDNFV3htb21qMHRTWEZBN0lGUTJhMnNiQTVLdnZmYzM4UWdFd3JF?=
 =?utf-8?B?V0NIWnF2empFNEFFMXYzY2lNeC9NaG11WTRFdFVIZVk5M3dKaURjaVJ2QkhP?=
 =?utf-8?B?MW1wc3BqTXBOTDI4SDYzMTZpRHB0Z2tXNjRPdjhZb0VHMzBvYms3bjZuY0ln?=
 =?utf-8?B?UXR3NkVIQlM2ZUVxRTlmdCtodEtYdVFoWS85anJxbVc0Ym95enRQWXB5OXBC?=
 =?utf-8?B?Q0xpMFVMaVZMOUlZd2hIWEFvU3pQM0JFdHJqWkNYREZOWTh2c256SkpwOG9i?=
 =?utf-8?B?MElMMk12bmtrTVZvVEN1azA2Y04rZjRlQXpHblFPVEp6NjRxUklhbFdjMDlm?=
 =?utf-8?B?ZURscGZhUG5tNGtKT21pOGljSTlEQzRzSVFVRzJpcDdrREtJSVlOM0pHUFpY?=
 =?utf-8?B?Y2VVNHMxKzlyWjVKWEtTaUhabnBFM1Nzb2MxWVJzU240ZnEzQ2dwYno0MHZt?=
 =?utf-8?B?eFhqUE5KRkkzdFZ2VC80Q2g2cEQ1MXFvckhGMXNZa1VZVUZnZnRzR3hXb0pR?=
 =?utf-8?B?STF3WGowOVJRPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?bStFUS9pcHNYUnVEYXQ5VEljaWtUMEJLZGlrblNwWTVZOGNYOWwxbVdCWUwv?=
 =?utf-8?B?U2NtY2J5cTN2QTVEc203TFpHTCtIbUt6Qzk4V3plTHVpK1g0NjVyMldEejg5?=
 =?utf-8?B?VUJ0UzlXK2FITmJkRUcrUk4wQjRKS2FlNjZFS05tR2dkRVBpZDFuVFNnTExY?=
 =?utf-8?B?ZS9LUmNkK1lWVVA2OFlUQk9HVVhpeHhIazIyRFI1b2REK2tqOUlqbGZXeFha?=
 =?utf-8?B?NnJtaTQ2aGVpVUhSYjNWWnlFcVRKYUpWdGw5NDJhS2VMcHRvNXR3YXlZVldr?=
 =?utf-8?B?M3JIQmFMSm5MTlVSL0VXQmw5RjRYQmdIWU5LTUJHc1dZZk5ha3crQmswZ0Nu?=
 =?utf-8?B?aFAvV2hVUllGbndSZXhQN2ZPWmlVcTBPUDJIeW1CSFhTenRXR2dTbDZRVUY0?=
 =?utf-8?B?enl0Y3VhTTBnYjBPWnhYTnZJVXdDSG94TFdaZzNBWmwvUEM3L2NDVnFIclZ6?=
 =?utf-8?B?WVV0SDludm5IRSt5TWlWcEliZzhoek43U2dPK3hYNDRpU053YURwZUtBd3ky?=
 =?utf-8?B?S3hmc1VUcUxPN2xtMHJsYVJVaEtDa2kvZ3N4TWF2bG4yelQxYUx6STl3R2VL?=
 =?utf-8?B?WUVYTnlMQmhQUGRKc3dVcUZoWFJ6S2NvWWJhNHdrTUFsNkxPQjk3MGd6VE5k?=
 =?utf-8?B?VTIxT2VRZlVib1c5RW5TS1VqNVJxLzRHZzRhelYvUnZhLzRDZUhxbFZ1bHc5?=
 =?utf-8?B?OFp3ZUxDNWdsWGxrWlhJOVpVV2s5ZXZuUFlUT2VYazFqRS9zbFljSFJPZEp3?=
 =?utf-8?B?MGowT1BuMk1DcXc3ZjNUZVVwOTZheFVDeTRRVHBSaTVmTjVNU3ByMkdSd1Q0?=
 =?utf-8?B?MVRXM1p4Y2hhdW5kUEZuOVQ4UzRScW1JMHF5VG43Y25vdzBPTEtvY245bFF5?=
 =?utf-8?B?SGMvSG8zVEhkZHVsTU0rRW1YUThhRC9kM3pWcXhuYnVRN0l5TDREOGJ6QklW?=
 =?utf-8?B?aTlrSS8vK2lKRTUwTHdLOGQzZHQvL3ZYRm1ldDRqbEkyNDlBbVJBUnhkb2RX?=
 =?utf-8?B?Nm9UUjM0SkxRZmFkQUJTSXhCc2V0YnF4emdFUGoydm9idFlFcFlBSEFrbjJE?=
 =?utf-8?B?N1M0amduV04vYWVrenMrdkQ0WE5pZDF5d1ErNERqL2w2UVpOTXQybXNwcFhS?=
 =?utf-8?B?KzJlMXp3TThsQnpldGpYOWg0bS9wNFZjajErRUE2czRYY0dONC9adFRBa083?=
 =?utf-8?B?aExPRjFZQkt6d0V3RlpZL1FWVTZnYVpOT3Jhamt1V3A2OXBnZFR6bU5kT08w?=
 =?utf-8?B?azdkUzAxc0tGS25LaEVOdWk5WDE4VElaNElCcStJWnJBWWd2NytsamZHNWV3?=
 =?utf-8?B?SlFnRjRKRmloUklEcWxmV3BhK1h3eTI1dHovVlFrVVFuU1BHOFRNSkszbEUv?=
 =?utf-8?B?R00zN2sweE1BNllWTFNTNEs5VmZBZnVkdHphalYvMjhoS3RPVDVPdlRtNXRu?=
 =?utf-8?B?MnVSOHo4Vk91T3A5eW9NSmMvbTl2VjlTN3BnRVFMYUVSVzEzVkl2TTEwbEJ5?=
 =?utf-8?B?bnFJSURHaHJwNUhYUGdzaGhFdUxmVkx2bWpXWFc3WUdvNUZUam5SWkFhaEpt?=
 =?utf-8?B?RWZTb25EWmJiZndqa0FSZ1FEUFoxRWozY0p4YkhHeGVBbU5zcFhjcFNQMUpn?=
 =?utf-8?B?WHpGNjJES3BJM3FsS1JCQnR6TzlpS0txZ01RS2RZTjBMQ3A0NUVUUGZRN1I0?=
 =?utf-8?B?cVBCQlFmRnQrREh2VjM1WEZRdEFrc2c1d05EdnV4REZRSkJCU1lUU3RRMEor?=
 =?utf-8?B?NW5oTHhaWU5QMS81eml0amp0TTl4cktiOXg2N3JzczF3NTNmalFxbWlFcUtB?=
 =?utf-8?B?dDZDanFOQ25QWjYrOVlZOFZ5bGlQWGFlV21XMGpkOFFlL21BNFRBTTdCUC9W?=
 =?utf-8?B?RDB5eGw0Wm50Q0FYUmxsMjdYOVExZHlVNXNHVU9vUTZRc3ExQzh4QTdFcmw3?=
 =?utf-8?B?MDlkdWVsRnlSbzdjODdieExxV0IxRG1PeldnZjJvZUcvVXExN3R1RW9RTGRD?=
 =?utf-8?B?dTYrSkdkeGo4eWRWQ2JwVVJPd1NNZ3RqYk5IVFBIWGEyQXZ4ZzRPWWNIQXk4?=
 =?utf-8?B?cFBnU3lOOXFIK01wdTRwNWZTMmttTlpycDdtTEQzQ2pQUVlndFF1eDQwampI?=
 =?utf-8?Q?F9t0=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 719e9424-1446-4282-f6fe-08dde5e845dd
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Aug 2025 04:06:32.3715
 (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: 7rfkYUABAh7T74AislRwhllOj7vBiQndnccEKaggbrzXb7gBwgiNc8hfK5ZfH/Onibqg+oxgt/XWUiWv6W4mxA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS2PR12MB9568

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFR1ZXNkYXksIEF1Z3VzdCAyNiwgMjAy
NSAxMjowMyBBTQ0KPiBUbzogUGVubnksIFpoZW5nIDxwZW5ueS56aGVuZ0BhbWQuY29tPg0KPiBD
YzogSHVhbmcsIFJheSA8UmF5Lkh1YW5nQGFtZC5jb20+OyBBbnRob255IFBFUkFSRA0KPiA8YW50
aG9ueS5wZXJhcmRAdmF0ZXMudGVjaD47IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNp
dHJpeC5jb20+Ow0KPiBPcnplbCwgTWljaGFsIDxNaWNoYWwuT3J6ZWxAYW1kLmNvbT47IEp1bGll
biBHcmFsbCA8anVsaWVuQHhlbi5vcmc+OyBSb2dlcg0KPiBQYXUgTW9ubsOpIDxyb2dlci5wYXVA
Y2l0cml4LmNvbT47IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz47
DQo+IHhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBTdWJqZWN0OiBSZTogW1BBVENI
IHY3IDEzLzEzXSB4ZW4vY3B1ZnJlcTogQWRhcHQgU0VUL0dFVF9DUFVGUkVRX0NQUEMNCj4geGVu
X3N5c2N0bF9wbV9vcCBmb3IgYW1kLWNwcGMgZHJpdmVyDQo+DQo+IE9uIDIyLjA4LjIwMjUgMTI6
NTIsIFBlbm55IFpoZW5nIHdyb3RlOg0KPiA+IC0tLSBhL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdWZy
ZXEvYW1kLWNwcGMuYw0KPiA+ICsrKyBiL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdWZyZXEvYW1kLWNw
cGMuYw0KPiA+ICsgICAgLyogT25seSBhbGxvdyB2YWx1ZXMgaWYgcGFyYW1zIGJpdCBpcyBzZXQu
ICovDQo+ID4gKyAgICBpZiAoICghKHNldF9jcHBjLT5zZXRfcGFyYW1zICYgWEVOX1NZU0NUTF9D
UFBDX1NFVF9ERVNJUkVEKSAmJg0KPiA+ICsgICAgICAgICAgc2V0X2NwcGMtPmRlc2lyZWQpIHx8
DQo+ID4gKyAgICAgICAgICghKHNldF9jcHBjLT5zZXRfcGFyYW1zICYgWEVOX1NZU0NUTF9DUFBD
X1NFVF9NSU5JTVVNKSAmJg0KPiA+ICsgICAgICAgICAgc2V0X2NwcGMtPm1pbmltdW0pIHx8DQo+
ID4gKyAgICAgICAgICghKHNldF9jcHBjLT5zZXRfcGFyYW1zICYgWEVOX1NZU0NUTF9DUFBDX1NF
VF9NQVhJTVVNKSAmJg0KPiA+ICsgICAgICAgICAgc2V0X2NwcGMtPm1heGltdW0pIHx8DQo+ID4g
KyAgICAgICAgICghKHNldF9jcHBjLT5zZXRfcGFyYW1zICYNCj4gWEVOX1NZU0NUTF9DUFBDX1NF
VF9FTkVSR1lfUEVSRikgJiYNCj4gPiArICAgICAgICAgIHNldF9jcHBjLT5lbmVyZ3lfcGVyZikg
KQ0KPiA+ICsgICAgICAgIHJldHVybiAtRUlOVkFMOw0KPg0KPiAuLi4gYWxsIHRoZSBlcnJvcnMg
Y2hlY2tlZCBoZXJlIGFyZSB0byBiZSBpZ25vcmVkIHdoZW4gbm8gZmxhZyBpcyBzZXQgYXQgYWxs
Pw0KPg0KDQpZZXMsIHZhbHVlcyBhcmUgb25seSBtZWFuaW5nZnVsIHdoZW4gYWNjb3JkaW5nIGZs
YWcgaXMgcHJvcGVybHkgc2V0LCB3aGljaCBoYXMgYmVlbiBkZXNjcmliZWQgaW4gdGhlIGNvbW1l
bnQgZm9yICJzdHJ1Y3QgeGVuX3NldF9jcHBjX3BhcmEiDQoNCj4gPiArICAgIC8qDQo+ID4gKyAg
ICAgKiBWYWxpZGF0ZSBhbGwgcGFyYW1ldGVycw0KPiA+ICsgICAgICogTWF4aW11bSBwZXJmb3Jt
YW5jZSBtYXkgYmUgc2V0IHRvIGFueSBwZXJmb3JtYW5jZSB2YWx1ZSBpbiB0aGUgcmFuZ2UNCj4g
PiArICAgICAqIFtOb25saW5lYXIgTG93ZXN0IFBlcmZvcm1hbmNlLCBIaWdoZXN0IFBlcmZvcm1h
bmNlXSwgaW5jbHVzaXZlIGJ1dA0KPiBtdXN0DQo+ID4gKyAgICAgKiBiZSBzZXQgdG8gYSB2YWx1
ZSB0aGF0IGlzIGxhcmdlciB0aGFuIG9yIGVxdWFsIHRvIG1pbmltdW0gUGVyZm9ybWFuY2UuDQo+
ID4gKyAgICAgKi8NCj4gPiArICAgIGlmICggKHNldF9jcHBjLT5zZXRfcGFyYW1zICYgWEVOX1NZ
U0NUTF9DUFBDX1NFVF9NQVhJTVVNKSAmJg0KPiA+ICsgICAgICAgICAoc2V0X2NwcGMtPm1heGlt
dW0gPiBkYXRhLT5jYXBzLmhpZ2hlc3RfcGVyZiB8fA0KPiA+ICsgICAgICAgICAgc2V0X2NwcGMt
Pm1heGltdW0gPA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAoc2V0X2NwcGMtPnNldF9w
YXJhbXMgJg0KPiBYRU5fU1lTQ1RMX0NQUENfU0VUX01JTklNVU0NCj4gPiArICAgICAgICAgICAg
ICAgICAgICAgICAgID8gc2V0X2NwcGMtPm1pbmltdW0NCj4gPiArICAgICAgICAgICAgICAgICAg
ICAgICAgIDogZGF0YS0+cmVxLm1pbl9wZXJmKSkgKQ0KPg0KPiBUb28gZGVlcCBpbmRlbnRhdGlv
biAobW9yZSBvZiB0aGlzIHRocm91Z2hvdXQgdGhlIGZ1bmN0aW9uKSwgYW5kIHNlZWluZyAuLi4N
Cg0KTWF5YmUgZm91ciBpbmRlbnRpb24gaXMgbW9yZSBwcm9wZXINCmBgYA0KICAgICAgICBpZiAo
IChzZXRfY3BwYy0+c2V0X3BhcmFtcyAmIFhFTl9TWVNDVExfQ1BQQ19TRVRfTUFYSU1VTSkgJiYN
CiAgICAgICAgICAgICAoc2V0X2NwcGMtPm1heGltdW0gPiBkYXRhLT5jYXBzLmhpZ2hlc3RfcGVy
ZiB8fA0KICAgICAgICAgICAgICAoc2V0X2NwcGMtPm1heGltdW0gPA0KICAgICAgICAgICAgICAg
ICAgICAgICAgICAoc2V0X2NwcGMtPnNldF9wYXJhbXMgJiBYRU5fU1lTQ1RMX0NQUENfU0VUX01J
TklNVU0NCiAgICAgICAgICAgICAgICAgICAgPyBzZXRfY3BwYy0+bWluaW11bQ0KICAgICAgICAg
ICAgICAgICAgICA6IGRhdGEtPnJlcS5taW5fcGVyZikpKSApDQpgYGANCg0KPiA+ICsgICAgY2Fz
ZSBYRU5fU1lTQ1RMX0NQUENfU0VUX1BSRVNFVF9OT05FOg0KPiA+ICsgICAgICAgIGlmICggYWN0
aXZlX21vZGUgKQ0KPiA+ICsgICAgICAgICAgICBwb2xpY3ktPnBvbGljeSA9IENQVUZSRVFfUE9M
SUNZX1VOS05PV047DQo+ID4gKyAgICAgICAgYnJlYWs7DQo+ID4gKw0KPiA+ICsgICAgZGVmYXVs
dDoNCj4gPiArICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4gPiArICAgIH0NCj4NCj4gTXVjaCBv
ZiB0aGlzIGxvb2tzIHZlcnkgc2ltaWxhciB0byB3aGF0IHBhdGNoIDA5IGludHJvZHVjZXMgaW4N
Cj4gYW1kX2NwcGNfZXBwX3NldF9wb2xpY3koKS4gSXMgaXQgbm90IHBvc3NpYmxlIHRvIHJlZHVj
ZSB0aGUgcmVkdW5kYW5jeT8NCj4NCg0KSSdsbCBhZGQgYSBuZXcgaGVscGVyIHRvIGFtZF9jcHBj
X3ByZXBhcmVfcG9saWN5KCkgdG8gZXh0cmFjdCBjb21tb24NCg0KPiA+IC0tLSBhL3hlbi9pbmNs
dWRlL3B1YmxpYy9zeXNjdGwuaA0KPiA+ICsrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9zeXNjdGwu
aA0KPiA+IEBAIC0zMzYsOCArMzM2LDE0IEBAIHN0cnVjdCB4ZW5fb25kZW1hbmQgew0KPiA+ICAg
ICAgdWludDMyX3QgdXBfdGhyZXNob2xkOw0KPiA+ICB9Ow0KPiA+DQo+ID4gKyNkZWZpbmUgQ1BV
RlJFUV9QT0xJQ1lfVU5LTk9XTiAgICAgIDANCj4gPiArI2RlZmluZSBDUFVGUkVRX1BPTElDWV9Q
T1dFUlNBVkUgICAgMQ0KPiA+ICsjZGVmaW5lIENQVUZSRVFfUE9MSUNZX1BFUkZPUk1BTkNFICAy
DQo+ID4gKyNkZWZpbmUgQ1BVRlJFUV9QT0xJQ1lfT05ERU1BTkQgICAgIDMNCj4NCj4gV2l0aG91
dCBYRU5fIHByZWZpeGVzIHRoZXkgc2hvdWxkbid0IGFwcGVhciBpbiBhIHB1YmxpYyBoZWFkZXIu
IEJ1dCBkbyB3ZQ0KPiBuZWVkIC4uLg0KPg0KPiA+ICBzdHJ1Y3QgeGVuX2dldF9jcHBjX3BhcmEg
ew0KPiA+ICAgICAgLyogT1VUICovDQo+ID4gKyAgICB1aW50MzJfdCBwb2xpY3k7IC8qIENQVUZS
RVFfUE9MSUNZX3h4eCAqLw0KPg0KPiAuLi4gdGhlIG5ldyBmaWVsZCBhdCBhbGw/IENhbid0IHlv
dSBzeW50aGVzaXplIHRoZSBraW5kLW9mLWdvdmVybm9yIGludG8gc3RydWN0DQo+IHhlbl9nZXRf
Y3B1ZnJlcV9wYXJhJ3MgcmVzcGVjdGl2ZSBmaWVsZD8gWW91IGludm9rZSBib3RoIHN1Yi1vcHMg
ZnJvbSB4ZW5wbQ0KPiBub3cgYW55d2F5IC4uLg0KPg0KDQpNYXliZSBJIGNvdWxkIGJvcnJvdyBn
b3Zlcm5vciBmaWVsZCB0byBpbmRpY2F0ZSBwb2xpY3kgaW5mbywgbGlrZSB0aGUgZm9sbG93aW5n
IGluIHByaW50X2NwdWZyZXFfcGFyYSgpLCB0aGVuIHdlIGRvbid0IG5lZWQgdG8gYWRkIHRoZSBu
ZXcgZmlsZWQgInBvbGljeSINCmBgYA0KKyAgICAvKiBUcmFuc2xhdGUgZ292ZXJub3IgaW5mbyB0
byBwb2xpY3kgaW5mbyBpbiBDUFBDIGFjdGl2ZSBtb2RlICovDQorICAgIGlmICggaXNfY3BwY19h
Y3RpdmUgKQ0KKyAgICB7DQorICAgICAgICBpZiAoICFzdHJuY21wKHBfY3B1ZnJlcS0+dS5zLnNj
YWxpbmdfZ292ZXJub3IsDQorICAgICAgICAgICAgICAgICAgICAgICJvbmRlbWFuZCIsIENQVUZS
RVFfTkFNRV9MRU4pICkNCisgICAgICAgICAgICBwcmludGYoImNwcGMgcG9saWN5ICAgICAgICAg
ICA6IG9uZGVtYW5kXG4iKTsNCisgICAgICAgIGVsc2UgaWYgKCAhc3RybmNtcChwX2NwdWZyZXEt
PnUucy5zY2FsaW5nX2dvdmVybm9yLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJwZXJm
b3JtYW5jZSIsIENQVUZSRVFfTkFNRV9MRU4pICkNCisgICAgICAgICAgICBwcmludGYoImNwcGMg
cG9saWN5ICAgICAgICAgICA6IHBlcmZvcm1hbmNlXG4iKTsNCisNCisgICAgICAgIGVsc2UgaWYg
KCAhc3RybmNtcChwX2NwdWZyZXEtPnUucy5zY2FsaW5nX2dvdmVybm9yLA0KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJwb3dlcnNhdmUiLCBDUFVGUkVRX05BTUVfTEVOKSApDQorICAgICAg
ICAgICAgcHJpbnRmKCJjcHBjIHBvbGljeSAgICAgICAgICAgOiBwb3dlcnNhdmVcbiIpOw0KKyAg
ICAgICAgZWxzZQ0KKyAgICAgICAgICAgIHByaW50ZigiY3BwYyBwb2xpY3kgICAgICAgICAgIDog
dW5rbm93blxuIik7DQorICAgIH0NCisNCmBgYA0KDQo+IEphbg0K


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 04:14:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 04:14:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097420.1451757 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urU1h-00012y-Li; Thu, 28 Aug 2025 04:14:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097420.1451757; Thu, 28 Aug 2025 04:14: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 1urU1h-00012r-Ir; Thu, 28 Aug 2025 04:14:17 +0000
Received: by outflank-mailman (input) for mailman id 1097420;
 Thu, 28 Aug 2025 04:14:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ityt=3I=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1urU1g-00012l-FB
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 04:14:16 +0000
Received: from NAM04-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam04on2060d.outbound.protection.outlook.com
 [2a01:111:f403:2408::60d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 743ebe50-83c5-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 06:14:14 +0200 (CEST)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 CH3PR12MB8852.namprd12.prod.outlook.com (2603:10b6:610:17d::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Thu, 28 Aug
 2025 04:14:10 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d%7]) with mapi id 15.20.9052.019; Thu, 28 Aug 2025
 04:14:10 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 743ebe50-83c5-11f0-ae26-e363de0e7a9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YsqaW92NgQPi3Gn2DAymV+3WrODTtrpZzNW7XCtxPd/GO1dzXDwr/yP1qyR54Tr6PvdwzWn4aEmTP6dgSzd52CZHz03o95xnfPykrJGmIhf+PD+8QC9OM+IP2PWRLShJuCx+waEThOtucpJFiOIIetGO0cTF9cArCsgWo3NF7emNf9vAD53fdsWQBl1sP+uhGnhOFp7lq1onOBRkE+GxK3OHAmevNjuokbAShMIKf5SMDocdieijqU7Pojr8wdvF0km08Cn5AOC5IKQd7xgd/FzA2RtuUrIjWRMBHLnWRqkj6GrJ4oaAKCTsnhKl07P3gXr7NrkpE9jBLYYOKfRBhw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=DTV8hKd1XOVU2S4wsTgIXB7xmNSzrtrOxtg4T6Hdxxk=;
 b=wD1CcrJAa2VVVHdM5pB7lnwI+cKDlsRRs9FpBNpJxBgRlxfhxxa5vJ9MvS+unVNXBWuTg9wO5vZa1G0cr4W9tUZxK46pIcB++8TEKNXIoOSkdlRcgE5lHtYOcYEKcNGXGD3y72C6j9Hfnuzkix6vD/mbv1kJNAg/NdRruDTc9dCen8I0UFWmWbQSIvxUUl48BS8fMVsPvU9TM+NArarPwDTR2w3G+BrIXWKwMow+4KhAhlEKxWitxVOLv3jGD+2SHmN+KNyhlR4CFGtJ7cZbO/Dl1IlE7l9CU5X4dxpYi9OlYiPw1lMswbryfgaDfs2mEg22YdvTFQRTI8fU+dCAHg==
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=DTV8hKd1XOVU2S4wsTgIXB7xmNSzrtrOxtg4T6Hdxxk=;
 b=GBbFvrSujMjH1untLd4sCHtTySwALHWQG18jjgKy6IMUlcYRcT+vn9ryVamYNEKZuJ+3YT1q49nlAbm/VP6WVANtSOWwbKO9yMi3D1LgR+S1On0ELEYQ4Xzmh70oKadhNtLYG3Zz2ZxZD15+XXdTu7AZlSIIvLs/jn385HyBwWc=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Anthony PERARD <anthony@xenproject.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, "Huang,
 Ray" <Ray.Huang@amd.com>, Anthony PERARD <anthony.perard@vates.tech>, Juergen
 Gross <jgross@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>, "Orzel,
 Michal" <Michal.Orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien Grall
	<julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: RE: [PATCH v7 11/13] tools/cpufreq: extract CPPC para from cpufreq
 para
Thread-Topic: [PATCH v7 11/13] tools/cpufreq: extract CPPC para from cpufreq
 para
Thread-Index: AQHcE1LyQ0lYyaNtv02FRdV+NHpcFrR2pieAgADXRwA=
Date: Thu, 28 Aug 2025 04:14:10 +0000
Message-ID:
 <DM4PR12MB845109C741E3E558EC461943E13BA@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20250822105218.3601273-1-Penny.Zheng@amd.com>
 <20250822105218.3601273-12-Penny.Zheng@amd.com> <aK8itT5YOUkY21n1@l14>
In-Reply-To: <aK8itT5YOUkY21n1@l14>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-08-28T04:13:06.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|CH3PR12MB8852:EE_
x-ms-office365-filtering-correlation-id: d24c4489-fc05-43fd-6793-08dde5e956de
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|376014|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?kIhZJJQeLIbboZF49CEVNn+H+bHNouu85wrebGwvxXJDsMWZBrrcwTJRpL?=
 =?iso-8859-1?Q?SxPJwUcnmpzgLk8gNXlM5XFGLfvDIWgkGdTPvz3SOKT6yqJfBcOR68OiF3?=
 =?iso-8859-1?Q?dC0W8rB0b624sICwmB7JzJisMy90Rdpq+xg5+MkDbH6z4cmSJuPpDNGewf?=
 =?iso-8859-1?Q?56N+HQVeXeuM3BxpepwxvkzJtLT37KuEOsyBNHIhXsjka6wO+Vku3e/lWA?=
 =?iso-8859-1?Q?JJvdXeQkUf0w5gibeR8VbYj/rWeyA5HdYO2kGrG11R7GgeG5uz3S3ht8/r?=
 =?iso-8859-1?Q?fd2l1Re+GS/ad5b9JMhbTvHaUsoPc811PoNrlf6V6G/KO4TNECVDmvYxen?=
 =?iso-8859-1?Q?nJXB33n6dNaWceQxReGwCws1lrLuryuytG7CMjfRzgtk84KqwUZu6tLM8n?=
 =?iso-8859-1?Q?wrwN09sL9tvaR0zFNoXCzfsJRuTaeyKPtTkC4IILZte47RY5FcUj6v37oA?=
 =?iso-8859-1?Q?bgU5j/AL8vyRohpGSpP/sEOlqxRw573xr717Rltf+32rTZ8ACqQUXLkDy0?=
 =?iso-8859-1?Q?y+xzs/KzGd+FmAEBjN/IrFH1OhvHpouPuqzSkDx7aaB68WZ4GHZwg13e7Q?=
 =?iso-8859-1?Q?3yln+Xv9MvwUBD/bpXuCKVaGQXHzBBMQRSqKuJ0CbEhoia0o0mgRg+UkVt?=
 =?iso-8859-1?Q?paCjHjxnOBTCs0pKODZuzI6VV7R9sF45o6F/LIePrdsv5KQ4yEIO2SB/L6?=
 =?iso-8859-1?Q?zGqGqcC1JcPRi4v/FQ3dOxm/TuZBxOij2BDjGwhrtu4uupS14G6gVtkyc4?=
 =?iso-8859-1?Q?zIfG64KNDfFtndr35OpZQUgDvgodi/oSDyzfLQMVrltgUcBsdJuIh81zuF?=
 =?iso-8859-1?Q?6HYqB9nkw1W2QUFAQ5LOejoyFMIeE8yj6uPKI8JAW++eDf0UX7mWgIGj67?=
 =?iso-8859-1?Q?4DxODRViUutkAox+xWA+3JQ9b+Gj5p+8b6zWGtKPnDPVHUvoaj7Yqg0+iS?=
 =?iso-8859-1?Q?NHiI3JB3QBSqN2QjAeWIKbWUyzdYXhZhVq6YZIekk9Dhxl/yJoEedP2f+8?=
 =?iso-8859-1?Q?cN3v22AKYPkN+DRD6yr7DYkgsPVwSKdlWjaS/zQMnGerVlf46GpKdVh4D0?=
 =?iso-8859-1?Q?jIn5vNCw6UEXb736nRgE25w8EnayRVpy2gvVyvhj8Tgl/5B/qCr3zlvxm5?=
 =?iso-8859-1?Q?Y2n9BXYEybtMvfpI1wGbS4qS0GTtpAJEb9Qs2ZoDAIfEPkViF7DNX0VAta?=
 =?iso-8859-1?Q?5F8mc1KOo1t8GA9JNBp52YVE2hg9oKr6UPcYe9VxbL0snDZX9E+y+ki0a6?=
 =?iso-8859-1?Q?bJTUsccMV0sh3KNudAIWW3g2qwDHU7VBXV9Lj9XOXPn4U+JuaAmUc1ZmNV?=
 =?iso-8859-1?Q?noB3103LL4fiA+jbuLH+U0qhIytsVfSXgaBWDGv8mh3pcax4FImN6wU5yi?=
 =?iso-8859-1?Q?EqmLh0FK5WDoTFj3toFTF2ohM4qLzF9UggZeBInvyyNXNHe9FbglsBI+Mg?=
 =?iso-8859-1?Q?tQT9DB6vpDck2yKLODE+rg+BUPPDXArkS0jcTM94RA19+rGt/jee6fQWap?=
 =?iso-8859-1?Q?V9C6ABfgWJ+L1FRM//RXo06k7ldDfOdd1K6XHIev1yvg=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?nmBFD4MTXL8g5UZEYhVDtxzB5I6eCYRus/qgxyMzxbeDV+cbuvP86hmFKn?=
 =?iso-8859-1?Q?sKa6CuW+MVSL9NLgORrxVDtsEK/KAhQbL1bSAwTu5AgfOWqV4Ek977UFPw?=
 =?iso-8859-1?Q?UNLeoiBsGdsJ3tdoD2/Hw196/phOjewXqIScB3zIOm3yjfdsMB5H8UThNb?=
 =?iso-8859-1?Q?DVW20wsWINTr2eKMGpvBPyZxRX12GgUFEeeZM6VHKiNdIPbwiev9UXseuL?=
 =?iso-8859-1?Q?PX+EOQpTQLzOGdkHXQIF/VH45iw+owzZaECOmJxT9rWe147DJlmgvcybvb?=
 =?iso-8859-1?Q?g8zBk3go+ZeIRNYvIAfRYCQqwEJ+EA/7fCgdWR8UcQc9bFkGaBXkOqA8ak?=
 =?iso-8859-1?Q?Iefq+r/+yENfLEWiMWdN6bZo/o4ubAeojyrjC4OsjXYmpDe2JEPx+xGWNa?=
 =?iso-8859-1?Q?HDXSiLS7MEwRgAYRthhdKqpq4isxtvgZtS3f5yWVXYMN7ff3sZ38D7Zzvj?=
 =?iso-8859-1?Q?r8739qMo8pKCJaRpXTyq1z63LViFqLLnrG/nBC3TLXucMLRVWwWd5JHqev?=
 =?iso-8859-1?Q?+IywSA6ssY8JV92pFTT3ygAt0rPiz9KwVH/mnqkJPveJqjD49eiOTuTcQA?=
 =?iso-8859-1?Q?xvUVdFf4r0O2sRSzjS5xINNeerRgXmEwfmiaxLV6xl3GHlh95XccBHoZCh?=
 =?iso-8859-1?Q?7/wIYRs6cVAqTRlSJZ06AAPoidLS9QTL+khT3n8o4qU/yUq7d6/gDl0kmo?=
 =?iso-8859-1?Q?tCBKqQXL98aHUS/QoxfsauuZJjc0SXOl5oUc7YgaP2fYbTlxi2GCSQSyD1?=
 =?iso-8859-1?Q?4VyWn3myvfpk9/w04bneATo2sq3EsfD59w9IvfpgWMzUe6ZVszkC5CHHW2?=
 =?iso-8859-1?Q?ILC39tCka4lVKhxXIHjpRBd3r0LI+9s49Q+TSL5XhVqLNMJmA+Kwj+qpZA?=
 =?iso-8859-1?Q?vBh40/jY3qpit9Gkl5gmeSuuEiI2SOadq8qIGZaCfM+iV9NbhA+TO00yT8?=
 =?iso-8859-1?Q?MpRF6cS4feYpzM2wuaIpt8PvoXM4u2Iu5s+7dFVAaTE+mipC5N+WwGmbhn?=
 =?iso-8859-1?Q?kMsBLoyZxuhBQt7hmsLSl3EHDTD6GPzpvCF7LYWOdRCGsNqY8j+OnfbAYW?=
 =?iso-8859-1?Q?fMewgbOTDOWWUA5W4ppC9nfQ7vz0IWECP7CjU4o6jFszAmo4qWHQs6O80P?=
 =?iso-8859-1?Q?gX0oLdUnPY+8aGkAm4SxSDfXCA5rqAtMBLyqSsSEQZJF787QKEx/oobyR2?=
 =?iso-8859-1?Q?Mcr4YOzEverTn0FX7bpJLS7czZfx4/f2X6qihHkqTTlmvP81OAV3XEEaY4?=
 =?iso-8859-1?Q?n8l/OUv4w7GrQcsgo66G93HbiqbF31fX22WsHdy4jteE1G+uDkcxC/1wZl?=
 =?iso-8859-1?Q?Q4m40oeZsCvQGV+pMBKBT4Fm6ZYA6y1Vj58twpaJTMZWNHJ2ccERUBeGBU?=
 =?iso-8859-1?Q?B8In0zytlh3ExPdtXfj8wlv7N4JQafe3iRpYmRuoguyL1qlVNcqQMvEgtg?=
 =?iso-8859-1?Q?UowfFAeb2N7YvNEDDP2ow9wZMB0vT6IfJs297CLroCUrySqbFIzJvRoSrK?=
 =?iso-8859-1?Q?ug0+85qtVcPEskYlkcOAGS2jUujFlQ10b05kHexgHAHxO5LHMgWQKBMFA3?=
 =?iso-8859-1?Q?RbECcfQFqGb/7aYPqIbcKnQzr9p61jvzPWaD6qpBvVFnWLGlEGG8it3m+2?=
 =?iso-8859-1?Q?x72HapSPOFqBQ=3D?=
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d24c4489-fc05-43fd-6793-08dde5e956de
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Aug 2025 04:14:10.3958
 (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: yiecq1SX+LNFT3TudrElFzRvxl1ZYhhYyfly+tzhSLk+Ev/UZNCbRH3meAwwWAt/BLlMHrCNGzSgqCxZNIFCZA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8852

[Public]

> -----Original Message-----
> From: Anthony PERARD <anthony@xenproject.org>
> Sent: Wednesday, August 27, 2025 11:22 PM
> To: Penny, Zheng <penny.zheng@amd.com>
> Cc: xen-devel@lists.xenproject.org; Huang, Ray <Ray.Huang@amd.com>; Antho=
ny
> PERARD <anthony.perard@vates.tech>; Juergen Gross <jgross@suse.com>;
> Andrew Cooper <andrew.cooper3@citrix.com>; Orzel, Michal
> <Michal.Orzel@amd.com>; Jan Beulich <jbeulich@suse.com>; Julien Grall
> <julien@xen.org>; Roger Pau Monn=E9 <roger.pau@citrix.com>; Stefano Stabe=
llini
> <sstabellini@kernel.org>
> Subject: Re: [PATCH v7 11/13] tools/cpufreq: extract CPPC para from cpufr=
eq para
>
> On Fri, Aug 22, 2025 at 06:52:16PM +0800, Penny Zheng wrote:
> > diff --git a/tools/misc/xenpm.c b/tools/misc/xenpm.c index
> > 6b054b10a4..8fc1d7cc65 100644
> > --- a/tools/misc/xenpm.c
> > +++ b/tools/misc/xenpm.c
> > @@ -898,6 +900,23 @@ static void print_cpufreq_para(int cpuid, struct
> xc_get_cpufreq_para *p_cpufreq)
> >      printf("\n");
> >  }
> >
> > +/* show cpu cppc parameters information on CPU cpuid */ static int
> > +show_cppc_para_by_cpuid(xc_interface *xc_handle, unsigned int cpuid)
> > +{
> > +    int ret;
> > +    xc_cppc_para_t cppc_para;
> > +
> > +    ret =3D xc_get_cppc_para(xc_handle, cpuid, &cppc_para);
> > +    if ( !ret )
> > +        print_cppc_para(cpuid, &cppc_para);
> > +    else if ( errno =3D=3D ENODEV )
> > +        ret =3D 0; /* Ignore unsupported platform */
> > +    else
> > +        fprintf(stderr, "[CPU%u] failed to get cppc parameter\n",
> > + cpuid);
>
> You might want to add ": %s" strerror(errno) to the error printed, which =
could help
> figure out why we failed to get the parameters.
>

Ack

>
> The rest of the tool side of the patch, with Jan suggestion, looks good t=
o me, so
> Acked-by: Anthony PERARD <anthony.perard@vates.tech> for the next round.
>

Thanks

> Thanks,
>
> --
> Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 05:49:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 05:49:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097482.1451767 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urVVD-0003u8-DV; Thu, 28 Aug 2025 05:48:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097482.1451767; Thu, 28 Aug 2025 05: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 1urVVD-0003u1-9Y; Thu, 28 Aug 2025 05:48:51 +0000
Received: by outflank-mailman (input) for mailman id 1097482;
 Thu, 28 Aug 2025 05:48:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fCus=3I=epam.com=Oleksii_Moisieiev@srs-se1.protection.inumbo.net>)
 id 1urVVC-0003tq-3w
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 05:48:50 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ab4fa64f-83d2-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 07:48:49 +0200 (CEST)
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com (2603:10a6:102:32e::21)
 by AS8PR03MB10055.eurprd03.prod.outlook.com (2603:10a6:20b:63a::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.14; Thu, 28 Aug
 2025 05:48:46 +0000
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::f12d:7394:bbe3:dfc]) by PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::f12d:7394:bbe3:dfc%6]) with mapi id 15.20.9052.014; Thu, 28 Aug 2025
 05:48: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>
X-Inumbo-ID: ab4fa64f-83d2-11f0-aeb2-fb57b961d000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=S/jUUnveh+obbIuNjgNb2basutzAoQjYkw7J5/tpn85dDkdx19qoZyCmkLNCSkeb5R7Eu9rwufiYHMJnFknsWnrvyx3PJ6UejDqz8WkClfX7yxmfqhNqx0W8orbcH3eLeRb8b+DebPZmGShwP7jqxhiRGrQyEo4rSKUfkcB/jMyJjioV1+hRoLKm3hTZAkf4Tl5UgGvYcckPBYTkSLeD1JEHJVGFa2ThNNcf2+CDguDsIwgRuvm+GniThpvNWtc97rWSjKMEDoGg1r5wnOtdeap8misvTRkQBBHVSQZ3ybEE0KSjjxSx6c4EVEajLciqj04e38aOG+HEAWVctIDr6Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=XqC3N9DMASgfPW6lFP2YNm96SmEdAhjb7HDeJKcvCas=;
 b=O8eqFxFm39g6YmKrU5A5BKppqoIVs6TknqMZKIG4B1E1eaLHuJUUauWVgpCA/nIclbxwH7UjNE0u9ZgfnGMNtEqJmxXuyqAd51FnvqwWUfIwvXRYIKnRcMYB+koOdrwq+Yx//9tOmrNxLWhxR+rx9kil3pwWaVAlkQyw1m2eWhTI2gR8y7ki6rGWh49Cl6b6fMYL4daAFnnyzTJzqPUAu1YNHwyJkxm3ZRkndyh4qQ/F1U5zibiECER6HDwmz8iWLImlcPSwUgDJbAKwDEKP/vrHXT7FgaL8vp8Rcw4LRV78kqQI1VmN5v/wRbXdr6lz94cnX3SbTq9dPHRfnsJ9HQ==
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=XqC3N9DMASgfPW6lFP2YNm96SmEdAhjb7HDeJKcvCas=;
 b=SEG4xOz6gKem+UbOg9621ezzBnU2adsj5D1yAUZ6pgi9B6u7NKKjevJPWTu6vhISOb5hhO7aOWJJVkFJSUJKCO4F4xyB6HZIY5ENe2lIvryIJTRZZwX7g0/C+Wghv+Gav7Yx/WRlZrZTWz4qSzVtHctVHCjUT6qdkmAkh86O7x94vHrRVzvrgky440xWZgvNQR3CtGgo5bLeujIHVdH6pTJRR+XcmcZu59D2C2eZDA5a1jv5W16sFAtkRFQ9CBGI2bX3KzufJZlpCcm+4gWd/cdmCY4GoY9JMKU4QGquUDrowQV9KLnosuiaar+dKt197m7n/MEJnwQY8Lxc41ubrw==
From: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Juergen Gross <jgross@suse.com>, Julien Grall <julien@xen.org>, Michal Orzel
	<michal.orzel@amd.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Grygorii Strashko
	<grygorii_strashko@epam.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [RFC PATCH v5 06/10] xen/domctl: extend XEN_DOMCTL_assign_device
 to handle not only iommu
Thread-Topic: [RFC PATCH v5 06/10] xen/domctl: extend XEN_DOMCTL_assign_device
 to handle not only iommu
Thread-Index: AQHb+v2XIf5rVjN6B0ydmKskjXCNlrQ+E9WAgDm1BAA=
Date: Thu, 28 Aug 2025 05:48:45 +0000
Message-ID: <e214b0b9-1cdb-43c7-a02f-a1b64b3bfb8a@epam.com>
References: <cover.1753184487.git.oleksii_moisieiev@epam.com>
 <aa4bf9a069721ace3b9da7409923455eed2f6896.1753184487.git.oleksii_moisieiev@epam.com>
 <3ff863d9-764c-4478-9bb9-b783ff850185@suse.com>
In-Reply-To: <3ff863d9-764c-4478-9bb9-b783ff850185@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: PAVPR03MB8946:EE_|AS8PR03MB10055:EE_
x-ms-office365-filtering-correlation-id: 9c405a46-26a1-4ffc-ec3f-08dde5f68db0
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|7416014|376014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?MVRlZi9xdS9LZHZNRERSb1c0TTZUbE1oREFxcGJtYW9UOGpaeVJaSUxWT0dH?=
 =?utf-8?B?em1GUGp2c2xHMC9IYkw1SW1VUDJFc09LWDhSMEVyZU05UW54YVJ4anRqM1JB?=
 =?utf-8?B?QkFTU2dBV0FaaThNZFVIelNPVWMxL2NCYXA4d3NRdTdBVC80QVBOQU5tRkF3?=
 =?utf-8?B?ODltSC9uTms1L2wySTFVMjkraXBQMEx6UHh4T0w4Ny9vUEc1YzJFNGNGL3o3?=
 =?utf-8?B?eEYydUxLOGlVblpTb1dWYUM2MHlnUHZ0b3ZjcGhnb2VGZ3BmdmVFUDA5aGN5?=
 =?utf-8?B?WHhaaXlka0RxeXRONVZReEJzUWFRUUVLQmtxd2puSFZMbXRWMDVVM1B4emo3?=
 =?utf-8?B?ZWkwQ2hHVVZhUUs5bWZNZVhXaUx5MlRQcTBoaEtXa3BhKyszWFJma1VmT3Bw?=
 =?utf-8?B?RFMvVzZ1dnZWVjAySjFqSUZMSmk4MGM1NE9ZNlp4amtXaEtjZXRDK2t0Z3JZ?=
 =?utf-8?B?eVA3a2YyU2w1WU51blE0RkUyREZMdlBLRGxFYUxMNmZveFhVMmlOU0d1azI4?=
 =?utf-8?B?cTNzQVIzeVQ2NERmWmxyVXlOMGkyOE5LWVRvV0pSQU1DUFBBdTVjVzVJYk1C?=
 =?utf-8?B?RE13Z1pKKy96UzBWbTNVcnhQMWsxMDlNbjN0OHNDY1d1Q1REdkZMU2JJa2RE?=
 =?utf-8?B?OVcyMWhodDFnN3NvUitJVjIyelBvd2piYzJUWlcrWFdqSU16eVZFZXo3bWY0?=
 =?utf-8?B?aEhISUVFSGJjYzZhMy9yL0xYZVFjQzdvV3RWQVR4cDkzOTFKaXJSYjRRVnJI?=
 =?utf-8?B?MGlaODYxbCtKTXRmbzlzTUkwTmh4ZTY0Sklic1pQSHBsUFl5aFp5TGlsVENj?=
 =?utf-8?B?R1YvYzhFMHdhcVgwcXF6YkVPVXlzeFI3UUV4MkxLbGhFQ05SN2VNc0x1bjhw?=
 =?utf-8?B?ZkNzeDQ5UUNOUDVGRkhsZkxWVS8wWmc2eDk0dm81NEMwY2tkUkhjMkQwTXVD?=
 =?utf-8?B?YS9DajBUVUo0WUpZa2FuVTNVME1sR3lrdEJyUG53U29uVDE5WFhvSlFIYWFY?=
 =?utf-8?B?NkZHdGZkcHlyTlRzSWVUNXdWRVdRR2hkV3E5TStpbk5JeGI2RkpjN0J6SEUv?=
 =?utf-8?B?aXZqaHk0aElnTithNnozRDI0TTJTZVRZMU1oUzdLVlhBblJzQ0lySXMwWHVZ?=
 =?utf-8?B?R1IrSmhIZ2JIcFRQRkVSZzA4dXlqQnBLTFpSanVEOXpiaVFJK244V1F1MnNu?=
 =?utf-8?B?dFExOEJMUjFvVVdJRERwRGt0eko4bVN2SWJqdFBqVytOOUZOY0pHWlBvMmZC?=
 =?utf-8?B?ckdXN20vSklWN1NvUjlwaDJLbEoxZHZoNkFuTVp5L0tRWTg1QkNEWko4WGFs?=
 =?utf-8?B?OURKdGYwaVZPYS9mVkNOamN1ZC9nMFVuZUs2Sjc0dHFRUVFYZzBmWkQwY0Nu?=
 =?utf-8?B?YzVjUXhGbnB0bkxaTmNiSFdMSmVqM3RrZWtaUXRuRHp5VjRmSURZTEkwQlg2?=
 =?utf-8?B?TjJXWnlMS3o0dzQ0UzJwRENXSVhhOGpHU2M1SzZDMmFSWi9vSm9rcVQ2ckFG?=
 =?utf-8?B?bFkvUlFoVEFOV3dMNmJmTDJpMDVPWmZ4ZjRPKytJbDJzMjFZL3hGaUR3N2RX?=
 =?utf-8?B?cEhQaEorSGRMVGptaGF2UXp2UXVnb0ZGQldJbUhyMDdIcjhaaDdwQldnV2Y0?=
 =?utf-8?B?NlpsN0pmeW9WMUtWdHk2NGFDWWVRRmE2S254VGk3SVE4bW9HNm5uSXhYeUpN?=
 =?utf-8?B?c25tY3NWZEhTZ0ZLWmJlM0hSR3dwVm9rRlhnVkpiam5zSlAyWXJXY29IdUEy?=
 =?utf-8?B?S0VuL0dwN21NRkVESXFoU3MyTkJtd2hjM1BaNmpMeXdWc1U0UDlXdHlxMmg1?=
 =?utf-8?B?V3BTMUNvaUJvZ2plQllxZm1Od1lDSGk3cklWOGpkajd5Lys1c1lWYWJFR0h1?=
 =?utf-8?B?bEdwZ0JXT0hBWTJubXV3VTlrNlVBR3BkaUZrNXhxTGJCNzltaUZjQ1RaRFZ3?=
 =?utf-8?B?TzliZ3M5ZWtzL2EzVXhIZUlYR0w1S2VZLzRHRnM2cjR1Vi9UZWd5Q1ZtNFY5?=
 =?utf-8?B?Nkd0eUlJWU5nPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB8946.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?OHNkTlNvTWZqVHBVbUlPNkc4dkUzaWdlcjdrK3c1akZzNlNVMUloM210Nm53?=
 =?utf-8?B?VG13M3JpbDNUUjZyTzV2Z2s3aVRVZXZ3QUVHanZ0Z29XRFVzUFg5Mi9xeHFj?=
 =?utf-8?B?ejR5cXFwVzNOMEpDOFB6azFZdkJVcWpzSzlSdmR2ZktyQkNycXlla0pOYjF2?=
 =?utf-8?B?dEtUWjl4ayttcW1pZDFBcGFpSll3SU8vNlZkY01wQnVNbEV6OVRVQlROUzFo?=
 =?utf-8?B?WmF1ZDBNTnVUZURxc04vclB0VUpqOUdyNkgySWE4WkVYeG1RMm9yekh2RzBO?=
 =?utf-8?B?aGEvK3ZsS3hhOHR3WnhkYTVNcG9SQlBjVE9zekRxUHVRUWQ2R3UwREV3RFpN?=
 =?utf-8?B?QnJIY2tlUWE4eXh5eldPWTAyK3RXN3IvaFZZbC9xb2lQbkZra3BENFF6M1pV?=
 =?utf-8?B?ZktzcVowYXNhQUNldXJ2VnJaU0FhSUM2WnBIY0o2N3laYWtvNS8zNHVPRWU0?=
 =?utf-8?B?THNHbG1rQUhMRkZjbEFBUzNGc1htekhQRlpNQm5TMmhhc1BLQU9NdGdYdnJE?=
 =?utf-8?B?RWc1QXBmeCtJcWFhdlRvRmh5Z2hpUVlTcmt4dHFBZXhKUWwxQTZGdWZua2Qv?=
 =?utf-8?B?dWlhNksrVWJFbjE1aGRIdW1ac1Y2MFFjVWsyYXd1anBza2w4UEF4QXlIajky?=
 =?utf-8?B?VGRsMXBOejVsaUhrMjFIeFhkakNkMHA0RFY5TDRKZjQ4Zk5lRkdQUEpONWpy?=
 =?utf-8?B?bFdBblBiTEc0WUo1Z290SmpBREkxRGhPWDNlczE5UE1qL1g1bEJoTlo2SElC?=
 =?utf-8?B?Q3orc1l5eVkwcGhRNk55U2phOENrS0QxSGxUMHhVU05zSGU5YnRmNzVuL1pu?=
 =?utf-8?B?WWVMcFozZy9MZm85eVlsYnU1cms4OXdhMGc4WWp5TnJid055eTduNHBwbjZj?=
 =?utf-8?B?ZEFpRXBQSjNia2o0NVp0QjR2MDRhanp4ZUNuVi9FbU5NYmV6UmtRZklaakpy?=
 =?utf-8?B?SVhiQUNXVGFKenpIbzZxU1lQY3l0eTZUelpnNndiUi9zY3FGUnBxa3dSVTYx?=
 =?utf-8?B?M2ZQRkx6WnJ4cUM2RVZrZkVoN0xtTHVnVWI4K3ljUW9zTU4zbjVkdFcvbnJv?=
 =?utf-8?B?NGhVZDZBbVVmbzdjajBHd2RvZjBvdWlZcG5TTGNOem4wR29md292TWlBM0pW?=
 =?utf-8?B?VXJ4QmF2bUVvK2x3eWRORnNzZEdzeFBZZm1ITWxPdjlrWjluTUtIb0duTE82?=
 =?utf-8?B?UDBzSTJRQTdYNnJhbVFKREM4R0ZVOXY4cG9VV25LVVl4K21rNTdoMi84cVk5?=
 =?utf-8?B?QlVRYzQ0NDZYL0lRR2lhRS9jYWFsWHZvR0NPdWg0WEFjR29sbWUzYXBUTHRw?=
 =?utf-8?B?OTI4USs5OURxQ04wdFZSOFlzSnRGMDVZbkxac3dzUWJmdE1USmErSkdrbytx?=
 =?utf-8?B?WXJISVlJN0RWU2hHTG9FZ3E0dTVDV2FSZzFDOWVHN050dXpvVm9rREM0WmlV?=
 =?utf-8?B?R2NoUHRQMSt0NDZjWlJGS1gzVnhxMkRjTndRTGZqYU1hWDRjMHdWTFRCWVBX?=
 =?utf-8?B?eWpQcU5VZnV1eE5GNmo3dm04NjdYTGZLcnMyRTdMdHh3TDFHQzV1VkQvR1po?=
 =?utf-8?B?N09tbDdxLzl1Wm5HeFVtZFBIZG80c2d0ZHg1MGtTemMvb1JkeGg5QllBNWUv?=
 =?utf-8?B?ZTlRNzJUTmxndHo2UUxEWVVPL0hwcm5vdnlQbkQvRmVLb29Ta2FIQkdxT1Ji?=
 =?utf-8?B?NUUwR0FTSFpOc25jbzRXTGNDbFdQNzZtb3ZuVFF4NFgrQXVJME1RZk1DL3RO?=
 =?utf-8?B?V1g2NzdNNHdSWm5VRmQ2RGEwak1lWHN1Um5hZHYzMktFd01YRExiSnR2czhD?=
 =?utf-8?B?Rmx5Rno5OGlHY0d4NHBDUzk1bFhMQ3ZicnJGci9QdHhZb2hicDYyUzRoRVhu?=
 =?utf-8?B?TUNQK2V5KzJyK3JxcHQ5YndteGN2ZFZzbGh3UEJ4R3lGYnQvZG5IWVhpNXJw?=
 =?utf-8?B?cFErOWl2ZzAwOVAySlZGaEdmNVh4UzdlL3RrVEl6bTlSRWNVSDNtS2xPZnlH?=
 =?utf-8?B?Q1hiZmMxaVRMRkRTdkExWTlLaE1wM0xDMzBzaXo3cER2VDRRTDNiSUczdVRB?=
 =?utf-8?B?Vzlja3NseEdDaktJVHBOOW5TNXlYRTNWRTRoOEU4ekFaWDErbzRPWGVSQnJ6?=
 =?utf-8?B?M3lsZDJvVytkVThadHVSQ1BXRkxXQy9rQms5N0ppbkpBS1pCZFFFWXJJdjNq?=
 =?utf-8?B?aXc9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <3BE95FF5C09E9E439E60B1157261ACCF@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: PAVPR03MB8946.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9c405a46-26a1-4ffc-ec3f-08dde5f68db0
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Aug 2025 05:48:45.7844
 (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: c1SO9hsjmTpcebGVX3hBLehn9JbbSdyLE9/wGjOV4xM708ocAUObVkIB4fUoowI6WAMFQohxYvQvxzREzNp0RMjnRYoqx7fjAllxjPN0Vbc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB10055

DQoNCk9uIDIyLzA3LzIwMjUgMTU6MzQsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAyMi4wNy4y
MDI1IDEzOjQxLCBPbGVrc2lpIE1vaXNpZWlldiB3cm90ZToNCj4+IEBAIC04NTksNyArODYwLDI1
IEBAIGxvbmcgZG9fZG9tY3RsKFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVuX2RvbWN0bF90KSB1
X2RvbWN0bCkNCj4+ICAgICAgIGNhc2UgWEVOX0RPTUNUTF90ZXN0X2Fzc2lnbl9kZXZpY2U6DQo+
PiAgICAgICBjYXNlIFhFTl9ET01DVExfZGVhc3NpZ25fZGV2aWNlOg0KPj4gICAgICAgY2FzZSBY
RU5fRE9NQ1RMX2dldF9kZXZpY2VfZ3JvdXA6DQo+PiArICAgICAgICBpbnQgcmV0MTsNCj4+ICsN
Cj4+ICAgICAgICAgICByZXQgPSBpb21tdV9kb19kb21jdGwob3AsIGQsIHVfZG9tY3RsKTsNCj4+
ICsgICAgICAgIGlmICggcmV0IDwgMCAmJiByZXQgIT0gLUVOWElPICkNCj4+ICsgICAgICAgICAg
ICByZXR1cm4gcmV0Ow0KPiBJZiB0aGlzIGlzIHdoZXJlIHlvdSB3YW50IHRoZSBFTlhJTyBmb3Ig
dGhhdCB0aGUgcHJldmlvdXMgcGF0Y2ggc3dpdGNoZWQgdG8sDQo+IHRoZW4gSSBzZWUgbm8gcmVh
c29uIGZvciB0aGF0IGVhcmxpZXIgY2hhbmdlIGF0IGFsbC4gSW5zaWRlIHRoZSBoeXBlcnZpc29y
DQo+IHlvdSBjYW4gc2ltcGx5IGZpZ3VyZSBvdXQgd2hhdCB0aGUgcmlnaHQgdGhpbmcgdG8gZG8g
aXM7IHlvdSBjb3VsZCBhdm9pZA0KPiBjYWxsaW5nIGlvbW11X2RvX2RvbWN0bCgpIGFsdG9nZXRo
ZXIgYW5kIGNhbGwgLi4uDQoNCk15IHBvaW50IHdhcyB0byBsZWF2ZSB0aGUgZGVjaXNpb24gbWFr
aW5nIHRvIHRoZSBjYWxscyB0aGVtc2VsdmVzLg0KU28gaW9tbXVfZG9fZG9tY3RsIHdpbGwgbWFr
ZSBhIGRlY2lzaW9uIHdoZXRoZXIgdG8gcHJvY2VzcyB0aGUgbm9kZSBvciANCm5vdCwgc2FtZSBm
b3IgdGhlIHNjbWkgY2FsbC4NCkkgY2FuIGZpZ3VyZSBvdXQgaWYgdGhlcmUgaXMgYSBuZWVkIHRv
IGNhbGwgaW9tbXVfZG9fZG9tY3RsIG9yIA0Kc2NpX2RvX2RvbWN0bCBoZXJlIGJ1dCB0aGlzIG1l
YW5zIG1vdmluZw0KcGFydCBvZiB0aGUgbG9naWMgZnJvbSBzcGVjaWZpYyBjYWxscyB0byB0aGUg
Y29tbW9uIGNvZGUuDQo+PiArICAgICAgICAvKg0KPj4gKyAgICAgICAgICogQWRkIGNoYWluZWQg
aGFuZGxpbmcgb2YgYXNzaWduZWQgRFQgZGV2aWNlcyB0byBzdXBwb3J0DQo+PiArICAgICAgICAg
KiBhY2Nlc3MtY29udHJvbGxlciBmdW5jdGlvbmFsaXR5IHRocm91Z2ggU0NJIGZyYW1ld29yaywg
c28NCj4+ICsgICAgICAgICAqIERUIGRldmljZSBhc3NpZ24gcmVxdWVzdCBjYW4gYmUgcGFzc2Vk
IHRvIEZXIGZvciBwcm9jZXNzaW5nIGFuZA0KPj4gKyAgICAgICAgICogZW5hYmxpbmcgVk0gYWNj
ZXNzIHRvIHJlcXVlc3RlZCBkZXZpY2UuDQo+PiArICAgICAgICAgKiBUaGUgYWNjZXNzLWNvbnRy
b2xsZXIgRFQgZGV2aWNlIHByb2Nlc3NpbmcgaXMgY2hhaW5lZCBhZnRlciBJT01NVQ0KPj4gKyAg
ICAgICAgICogcHJvY2Vzc2luZyBhbmQgZXhwZWN0ZWQgdG8gYmUgZXhlY3V0ZWQgZm9yIGFueSBE
VCBkZXZpY2UNCj4+ICsgICAgICAgICAqIHJlZ2FyZGxlc3MgaWYgRFQgZGV2aWNlIGlzIHByb3Rl
Y3RlZCBieSBJT01NVSBvciBub3QgKG9yIElPTU1VDQo+PiArICAgICAgICAgKiBpcyBkaXNhYmxl
ZCkuDQo+PiArICAgICAgICAgKi8NCj4+ICsgICAgICAgIHJldDEgPSBzY2lfZG9fZG9tY3RsKG9w
LCBkLCB1X2RvbWN0bCk7DQo+IC4uLiB0aGlzIG9uZSByaWdodCBhd2F5LCBmb3IgZXhhbXBsZS4g
KFdoaWNoIG9mIGNvdXJzZSBkb2Vzbid0IGVsaW1pbmF0ZSB0aGUNCj4gcXVlc3Rpb24gdG93YXJk
cyB0aGUgb3ZlcmxvYWRpbmcgZG9uZSBoZXJlLCB3aGljaCBpaXJjIHdhcyByYWlzZWQgYmVmb3Jl
LikNCj4NCj4gSmFuDQo=


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 06:05:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 06:05:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097494.1451777 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urVlg-0006kg-Or; Thu, 28 Aug 2025 06:05:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097494.1451777; Thu, 28 Aug 2025 06:05: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 1urVlg-0006kZ-MG; Thu, 28 Aug 2025 06:05:52 +0000
Received: by outflank-mailman (input) for mailman id 1097494;
 Thu, 28 Aug 2025 06:05:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=pYI3=3I=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urVlf-0006kT-PA
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 06:05:51 +0000
Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com
 [2a00:1450:4864:20::52f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0c276459-83d5-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 08:05:50 +0200 (CEST)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-61c325a4d18so909690a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 27 Aug 2025 23:05: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
 4fb4d7f45d1cf-61cea8ff3dbsm10990a12.13.2025.08.27.23.05.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Aug 2025 23:05: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>
X-Inumbo-ID: 0c276459-83d5-11f0-aeb2-fb57b961d000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756361150; x=1756965950; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4AaCWcjcp6rpMsw1zo35NoV//+IQAapL68T04uuZTgc=;
        b=JQXq26jFZJxXIB4sDmm03Nhr1MPTu3f++cMGjTq6O2q2G3YEuda1g0Xb0gLkUP7TSj
         Fa4Dru2+ewSi9ZHI3YmbL67Q5Ef8Ms82taEcqz+/gpJRB7Pd7s/fqoQKrN/e+75TPSYs
         fgDCjKDa9xUdjq8rFNLclpudWfkmsYIb91ZQrmaEoH+EMTnFQHbuYFBtcA4WJZBvfidL
         C4nru2puroc8uC8wwADadBATw1thXb0Hgmjx1IuNY5atxIQKL8j2h51hqfVLSrZdgY9u
         AVmKHeXCh+4EjmBqgGIkVycLrYkEkuaYp3iWskSq9Mj9vU4Ik+X00muXay2MzXi8tYwt
         GV/Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756361150; x=1756965950;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4AaCWcjcp6rpMsw1zo35NoV//+IQAapL68T04uuZTgc=;
        b=DozZ4dZ43xx7evJIVXBqbY2oU3F4DUxYtu2tSjxcRixiu4cVbO0S8bq268CIMvG/Bu
         QV9gUwArKotfjR6c7qE6xkZxiFTyaWVvx6T6dspY/v7Fbp/RjlY8HtNY4/xW/MNm/3L5
         jjSlTBx4OFTsUMvVKb2OFRZjMd25cEm+AxAtMN9hHHZmugqCKpJviP+VoRqYOMVjql0P
         Q76S1GYfAivApJfjIxaiuhWbqKXusLsTIU5hoS51Zgja2wvsgot11tnOkRusXSmjjOjE
         VmetIdSOYZpupIMIpB5X6c5PVH1gCP8iMd1uFgMm+jleQ3vihKQABdYQ5KqFmpN+IWlb
         0xPw==
X-Forwarded-Encrypted: i=1; AJvYcCUkfsp33r6iAJnvDTcu3V7j8NqRk0gEaMABAQ0Nlkfth8bvNrrfTKSAs+rOMamOmJilcHEQlzurE80=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy+b/IQzJVBvEW/E+FdCLqbevb1zq+4HdDtz68i1IKGg/WAUurw
	rgZUG/1V/IM9eZ6vH7GWEbhmde11Z8rG3Jq2+fa0ht72T1xer55uDwt3Oq+r6Ygyhg==
X-Gm-Gg: ASbGncsWpy34HJJMEO4Fdbwy1pzKgRrL91UMfyTtlf1wkBUgPiXuquwsTCFjZejHGwG
	5Z5KGsAPmeDzgsBUJyOp5l/THuP4l+kniSoX/AofiwqzoQQQyayRZOYDOclMzWBAhMguMgnl7YT
	tT8U9jseexHLTEsBASsFAkMDrLAP9R5r0F9VxIQtgT2Em9lUuqY8Yb1EhcH4MbuzIB9fIDLvNQV
	Ea17Z7I61nDit9ldvRLSrTW852N/0NvBhY57/U7vswl5DyTNAQOUTwM5O4xlF4qkbPFLVP9WWg9
	brO3aF1wGycWIyOXonTaMAJ+ldVLHdMyJNBfR4CalpItYgWCmVDFgMxR7Qd+sAAQvB893rl3ahS
	DC9tLjsa04Cfe+5AyxQdk0uiHQewr4/V5OycF/NyKUWFooFYRyiz6xOSwDSpbNmJfMN9zoHS9df
	tSwXbjwFIP7xoeyZQHA9SHEgFF7Itc
X-Google-Smtp-Source: AGHT+IGuRz3RSQP3OlNGRCImrv/fhgzbXRllyn+LT3Tv1mgr/VWxzZlW0jIBWb+yd4lSJupZoOBPlA==
X-Received: by 2002:a05:6402:84a:b0:61c:1a89:5d71 with SMTP id 4fb4d7f45d1cf-61c1b7056d2mr16386856a12.36.1756361149728;
        Wed, 27 Aug 2025 23:05:49 -0700 (PDT)
Message-ID: <ab9efe09-9e53-4ab0-8259-3e1eff4efa1b@suse.com>
Date: Thu, 28 Aug 2025 08:05:48 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] libxl: except Dom0 from setting PoD target
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <c98069b7-ee38-4f06-bebd-25396f2a210a@suse.com>
 <c170f613-c42a-47f7-aae2-3e5bf1238a1c@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: <c170f613-c42a-47f7-aae2-3e5bf1238a1c@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.08.2025 03:08, Jason Andryuk wrote:
> On 2025-08-27 01:53, Jan Beulich wrote:
>> Dom0 is never started in PoD mode, and hence it can at "best" do harm if
>> we try to set a PoD target for it.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

Thanks.

> Did you observe an issue, or just notice this when inspecting the code? 

It simply caught my eye while investigating the ballooning issue I sent
a mail about.

> If an issue, please add to the commit message.

I would have, sure.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 06:09:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 06:09:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097504.1451787 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urVpA-0007Kw-6y; Thu, 28 Aug 2025 06:09:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097504.1451787; Thu, 28 Aug 2025 06:09: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 1urVpA-0007Kp-3j; Thu, 28 Aug 2025 06:09:28 +0000
Received: by outflank-mailman (input) for mailman id 1097504;
 Thu, 28 Aug 2025 06:09:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=pYI3=3I=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urVp8-0007Kj-GZ
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 06:09:26 +0000
Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com
 [2a00:1450:4864:20::632])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8b0adff1-83d5-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 08:09:23 +0200 (CEST)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-afedbb49c26so83425466b.2
 for <xen-devel@lists.xenproject.org>; Wed, 27 Aug 2025 23:09:23 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afe89bd7acesm743123066b.73.2025.08.27.23.09.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Aug 2025 23:09: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>
X-Inumbo-ID: 8b0adff1-83d5-11f0-ae26-e363de0e7a9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756361363; x=1756966163; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=smG5mKel4W0Oc6sJ0hqJJ7D/H5xsumVTrYUsbzTBZ7k=;
        b=MriQ7ub7YLRbGSk+2gToMrhTCmUY0hTSJZ8XsoB1LcAwiEh+mpIHi3ANUHcgCyLuu8
         yzSCJxcRUaLIEptFMJjfdXShQC19gbAQJS/rIWoCH/L3oY+BXXxEE19N/HysQGhG0tnw
         BaO6CT6H4r+idNN9Re7+XhBYUV4JLXnVLK876P12DA9wuk69sY5k+RguDBf5Aegdz9gI
         JTq0KhbTxgLJOHGfW7XPEKxxCGjV7PZqz81CLwsOcz9TQxwboDsHf/b56jeULIaBbQ6v
         lSkbzqx3dTJ95mYcwyZ9Q17aRbS1q1IP99DJQQpt4DnzO5ipoo78i3NvgYYWskmkKoaB
         QfpA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756361363; x=1756966163;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=smG5mKel4W0Oc6sJ0hqJJ7D/H5xsumVTrYUsbzTBZ7k=;
        b=vMEA/6TK0OJ6C+oHoiut3MfOOLmPsi0H6XdKGAL0Wls5kyiXh5b2PaS+zd7qQnsy2x
         ivAhicKp+93IS1kuyAPelAVyV/FuiETYLAhqPgoURGxXZtdGH5Esk0pyOrhTTYfS/D9K
         KyDhfYzh2p+Hq4i6yNOOJzugZxZFVqyhfjOrmT3fq6yOMwY5zA8UMkXPELslQkiFaoXg
         RKq+NczH3GYZ1H81veOxIjxa9DqmU0OEv+X/Nzu5Yk4H5bGw88A+O4Mkbpnr5TK7+uuX
         MtE622vHLs6zcRHQXlo9t1WbmuiziiihFiGL8IyxwOYsBJuIMj060e3mY8RDgYOEKnpf
         UK4Q==
X-Forwarded-Encrypted: i=1; AJvYcCUOaPXBoNk1Yq8pmP9m0kSz7yfMpjY3eLsAZwIxjTG1tiW1JG78500ogyEfreTTY4q//x1WzL6fM38=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxcubMMgwE4bC1MkOHxyYkiprzdmGnZclOT3ePnhnkLHRBJpAhh
	nhgA5hQz8y3m4xCdRlSbQT/ADuAVkfDQTn7IygsiT2tzWpF/bFTiq04VYgm/sgHYb+rwEILevl3
	oc00=
X-Gm-Gg: ASbGncuRw5gG0T2leADgepIpzHhJkRHXFyyyajPJ5spG5iy7ktmZUwSoYXZsU/RmcMG
	eBLK4tVVi+m12asG3txzByUsr5yaVAL9ym2He3BuDVjgFi8V3WwYghfH+LVjLZH+ZUrnD/rdYqR
	gBgClMjoKs3weFpWg13QanNdjYV/11q+ed4KO0ZL+Ue7o+xwSIGH4UfYm8ll2KNg0YqvThi8BRI
	0OoRCUJS+9RgNHKR7Ju1S2zjtsROlAggFVhaG9S9ndw8LLYQSYqmg/waxRQFZy7nHwLwS7liiX4
	yBloVima+fA4VN4gjX8uKvv6ubId9aY6Pp9+8tZFqqcsBx9+sBhfDZWlezwvtqa8UI9LIOIxoZ6
	5soVhzuUHXbEGDoQefOPSTJwbRegiI1whcwvKTH56Ek35/UgdM4uztz+2lyd1bJ7h30PjwFKtEN
	1EPLFsx3E=
X-Google-Smtp-Source: AGHT+IE4vUgJ57a8eXkc8+Aw1RtU4ZiqqQJOipVfRHCUEdMtWYTthBdLFNj5nxTeHNuuBvnhm/gp9w==
X-Received: by 2002:a17:907:7f27:b0:afd:d994:cac with SMTP id a640c23a62f3a-afe29897202mr1831278266b.62.1756361362719;
        Wed, 27 Aug 2025 23:09:22 -0700 (PDT)
Message-ID: <20d686c7-aa86-4896-a392-947ad7e5838f@suse.com>
Date: Thu, 28 Aug 2025 08:09:21 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] libxl: respect unset video_memkb for Dom0
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <719c456b-927d-41c3-b28d-135a895958dd@suse.com>
 <01f134a0-46fb-40d8-924d-79ab864352e9@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: <01f134a0-46fb-40d8-924d-79ab864352e9@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.08.2025 03:12, Jason Andryuk wrote:
> On 2025-08-27 01:56, Jan Beulich wrote:
>> Without this, Dom0 will have have a curiously off-by-1 target_memkb
>> value displayed by "xl list -l".
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

Thanks.

> In theory, b_info->video_memkb should have been defaulted to 0.

I don't think 0 would be a legitimate default; it might be for Dom0, but
not generally.

>  In 
> practice you found it isn't.  xen-init-dom0 could probably use some fixing.

Right, kind of as per the latter of the two post-commit-message remarks.

>> ---
>> In retrieve_domain_configuration_end(), isn't it the wrong way round to
>> set both ->b_info.target_memkb and ->b_info.max_memkb only after calling
>> libxl__get_targetmem_fudge(), when that uses the two fields? This way we
>> could as well use ->b_info->video_memkb directly there.
> 
> I think it's attempting to read the current values from xenstore, in 
> case they changed via xl mem-set, and then putting them into the d_config.

That's my understanding too, yet it still makes little sense to me to
invoke a function when data it consumes isn't set (yet).

Jan

>> Of course this may point at a bigger problem, as other fields may
>> similarly never be set for Dom0.



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 06:11:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 06:11:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097513.1451796 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urVrJ-0000XH-J2; Thu, 28 Aug 2025 06:11:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097513.1451796; Thu, 28 Aug 2025 06:11: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 1urVrJ-0000XA-GN; Thu, 28 Aug 2025 06:11:41 +0000
Received: by outflank-mailman (input) for mailman id 1097513;
 Thu, 28 Aug 2025 06:11:39 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=pYI3=3I=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urVrH-0000X2-FT
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 06:11:39 +0000
Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com
 [2a00:1450:4864:20::62d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id daef6796-83d5-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 08:11:37 +0200 (CEST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-afcb732eee6so88963966b.0
 for <xen-devel@lists.xenproject.org>; Wed, 27 Aug 2025 23:11: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
 a640c23a62f3a-afe77c2b758sm873434566b.84.2025.08.27.23.11.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Aug 2025 23:11: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>
X-Inumbo-ID: daef6796-83d5-11f0-ae26-e363de0e7a9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756361497; x=1756966297; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=M8Sg9f2cGuFhekkWvLGQGRQLiQcEw8TzFl+k1pmOrl4=;
        b=NAR38e0BiYCE/J+vE2Uz0kbEvYR6kmsyJq6oIGX3mEpqlIUU5kjLjWYzz0IpL7k+1h
         YY2aSTlTMWDHs1FLMjlcgztvX1I1F/TM8bWFYPsvSVef4xgHZ7V1hVNtybfiuF6dDcbH
         cJxTB1iZsml5l5jgaEe+d5cZIQfmtqvxrVXYRh9rVijtCCfxl4Sx5rGBWkspUmVAmIzy
         sruBkNTkgI/dDj8/ZthAmXG+iZuUpHemwEOTZGVCFOwGKqaltSnHBOUJ2ud6Z88l8kMd
         uzp9POvCYWlBSW/DvU5OFvwdbpcSmCuAE1AsecxfI6bkMJ/pf1beU5P8LifeMGNkigBI
         fQlg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756361497; x=1756966297;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=M8Sg9f2cGuFhekkWvLGQGRQLiQcEw8TzFl+k1pmOrl4=;
        b=WL6sd9tObYvGl1yihybWRRmGiqN8rEujRezsD0RpwLErGHoegYCvlmbYQ/x7HrcZ9T
         oF3f+4rwr5RPbUCIoA9Lxm6IjcZGSGBzbC+kjO/2NiK9nR5qhYHO8gBuI5sL8VTlFJ+u
         7HcuHQDhrnLpTTUtt/e001VGOvkIarZD2/OLfuJV+pVh/Lfmr5y+uzFKG+Ifi/oTK9dZ
         7EJHecI809/c3jSMx3Sr2hbX6eqskIyJBJweA3vALFWq7bz0XcMtzQdS0POCiphFQypW
         atnMKrANh1gFontfMae3yONgmyFum8lTnYKvnVwuP6anvRfFgcDW20I11PesJX3eM20N
         wpZA==
X-Forwarded-Encrypted: i=1; AJvYcCWucTsOSivlyKSN+8WzyjpWBtg0aekrlMeoIQr4JMv5rKXBWREhh1a1xQsKjSkg56XCusMV2oyx9yo=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz5Et62aatmLYQvDCp7e0PjIRL7HAATOl4g+lLRfPArImtfbD7T
	PYB1iJgMIYCOMLTCb57Lr1BsrkN5CaiSlG6BAjcfxdNDerKyaTk54mrgfK9EefEM/Q==
X-Gm-Gg: ASbGncvxxYTXE6sOAKlNIxJxCRykR+1GgNjjav1234kOlcCw+C9c7zI7IFhwDYkg7pp
	G72IwZ2Gnlt3L+eGe7iolaWD21zJfV1DVK2kqWT1P/TbVfbU7+RrOV21ejwTDqBEfCEtYG/u4/r
	u0kfhp2Db7YRQCwaQ5o1h8+A+Slx/kfuGqc5j3gcFSTrkJb9MB5icr1M15hgyb0WMehdwgtmbDH
	oNLBsQsNop9U8p/SPXLYaMEyj9cyf/AuFkEIf/R9+VkalS2W8moAbFcvnCnF6zgcuoaMFvGwbyW
	LuCut6TomMbcyJ44CT/fMinItyb+39SFBAUA4wMHsMuiZSl31XtQGZln3i/vINIK+OkyhbQL+0f
	5xHC6E+wce3x0wDxEpTBQj9CArly35Ke/QLJC7gfq/EDVIt1z9L+ZGLl1BgmSLc3vH74AGkBpVF
	leMCDy/g0xX+ioqiXVtw==
X-Google-Smtp-Source: AGHT+IGe3LBHOTwzorR9wCwKkvUQuE2xC5UllzOSjALNq5m7XKSvMKIHI6FUx/TVw6f9AwN09L9Cvw==
X-Received: by 2002:a17:906:aeda:b0:afe:be04:5ce4 with SMTP id a640c23a62f3a-afebe13a7d2mr431300766b.38.1756361496810;
        Wed, 27 Aug 2025 23:11:36 -0700 (PDT)
Message-ID: <c16f3417-4af6-4214-9275-6d3806d29990@suse.com>
Date: Thu, 28 Aug 2025 08:11:35 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] libxl: preserve errno in libxl__xcinfo2xlinfo()
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <e567c234-473d-40c3-86dc-53317812baf7@suse.com>
 <c4ce1651-3881-4af0-bfe4-294917c31c9d@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: <c4ce1651-3881-4af0-bfe4-294917c31c9d@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.08.2025 03:16, Jason Andryuk wrote:
> On 2025-08-27 01:57, Jan Beulich wrote:
>> Callers observing errors elsewhere may be confused by the ENOSYS that
>> the Flask operation would yield on a Flask-disabled hypervisor.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> Of course I don't know whether clobbering errno is perhaps deemed "fine"
>> in libxl.
> 
> I wonder if it would be better to special case 
> libxl_flask_sid_to_context() to preserve errno on ENOSYS.  flask 
> returning ENOSYS is common, but libxl_flask_sid_to_context() can 
> legitimately have error.

But then libxl__xcinfo2xlinfo() also shouldn't (effectively) ignore such
other errors? Question is what it should do in such an event.

> I guess this is fine if we want to use this approach:
> 
> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

Thanks.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 06:17:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 06:17:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097526.1451807 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urVwz-0001Au-BT; Thu, 28 Aug 2025 06:17:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097526.1451807; Thu, 28 Aug 2025 06:17:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urVwz-0001An-8e; Thu, 28 Aug 2025 06:17:33 +0000
Received: by outflank-mailman (input) for mailman id 1097526;
 Thu, 28 Aug 2025 06:17:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=pYI3=3I=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urVwx-0001Ag-V4
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 06:17:31 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id acc83b06-83d6-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 08:17:29 +0200 (CEST)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-afcb7a7bad8so71104766b.3
 for <xen-devel@lists.xenproject.org>; Wed, 27 Aug 2025 23:17: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
 a640c23a62f3a-afe9494b011sm641567766b.39.2025.08.27.23.17.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Aug 2025 23:17: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>
X-Inumbo-ID: acc83b06-83d6-11f0-ae26-e363de0e7a9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756361849; x=1756966649; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=iGT0GH6uxLc9Avte45xwvNZ7VhIMt12PaOFame/Au3U=;
        b=IVVZZhzq/Li0gciLahsxOT1UrDCUpVv55i2b9rQZfJfoAg4TOIFNdvkewGJOjSJKe6
         pP2za+bJEkgVZHT8VSiLtdTDCPeGJDcVTSHKxdDFMhlIuPtz56LVaed9cOmAcL6Y684X
         kD50/2ySLXjg1Ffz0khN+KuNvdYry4Q3a0MCG2q9oCfCIYPZ8EWbZOEDu2TgUElpiCiH
         Ay9XziyPXc4YqBqJJ5bhB/V9oKbtJ930nk+1HQEsTnQITye7nq/KhmuxcFfqk6fMrDIU
         XleYB8l0/K5IBF63GsHAcz75ovBm1vpuUA8uNy/28NSJuXAtRrSaUpL0zy98GAU8hi+Y
         DVqA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756361849; x=1756966649;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=iGT0GH6uxLc9Avte45xwvNZ7VhIMt12PaOFame/Au3U=;
        b=EGzjqRRsHjLpA5zRimdp4IhCxge2My2UJOEDa5xT9Riq5dZg+Sl+67UR1P6O7V0l43
         n5AvpQPzmX/PFJVzKczrmk75VfBrSqotam7xzfjMuAar0pFT2d1WFKJsk9KxqF6w+vzs
         t3NQ9UnN/ADvy5/uoSQoaXjj2LUbwOkSN9DolvVKRuY55awP2oBV9A2CTbz2L9yqQ04Q
         tAWKHBYzNOrqGbxsI4pirzyI/bVa0c68yOMbCwm3PcApvYh6toPrJch0zJgNUH8KdvJk
         fSAsz7jPhwM1kuizUFYBLhZucfC1WUOVkUSNyYq5AOMMV06ngouVaffdDB1DAp0jyyxE
         fjNw==
X-Forwarded-Encrypted: i=1; AJvYcCVIb3yknsgfAl7KJnh90VJawxa0psiM/5VZIfcKktKEYlS9HMB668VGuZOAOTKKa0oDe/wmSW2y4Rw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwHV8H7+Tc5ghhgG3YExM0ScTI92SgJ1Pwj5FwroPaMv2kdLMqO
	+cIBb8UMwlB+xDpYOQbuaSJ0pqJwo3fpxFLWrwdeUcfChtrocVJq3XtPRH/VIJFTXA==
X-Gm-Gg: ASbGnctYWmQxc7bBBB08kH13tcPWMZ9OE+hKNpKPkIX7KPsUq4yheciJ/4M85bMqPHm
	0OReQeikZyAwvbwUzlPksTBVw7rCatw541XfSF5zDsNRX5TwhbLQ2yLPC9r0jOlgbObGO6u9lqf
	JBqKDw4hW0PLDTMBTpZK65gvxXcbW/p0UkMwry6LBnfFtMqBxgUdyLYUGUMNW7FRXC6rkfgIPLJ
	0mDXpdRMUUS+UxN2ALglJp4dcy/682t0oKNMvZBuSbxgox8ZV+SUsfQgumrkYtDyxsyZyOQIblT
	bvq2m3Gk6z7OXZlHbUzzrkZaxIzXqvqiu2bX5ec0BZmldIB+c5d8BTvxIS0Eu7CHQz4GtlIqHyE
	k6EW151UCFFbNhPvvNWOZNeaI7tp4UxvBTf7EFrW5LzmE+4Nz9rhRHcZWO4eYkCGfy5Qqj1CEzk
	VrWBxyvZzTD0IchvbGNw==
X-Google-Smtp-Source: AGHT+IEDJHuI3aMjFbiFbMzEXWDGD3i5k0Bi11AkQ83+lxaZ5Qx9ZlW7NYdZKGTnQ13/Dw0rDNVRBw==
X-Received: by 2002:a17:907:8689:b0:aec:5478:9697 with SMTP id a640c23a62f3a-afe29046f2dmr1942443166b.34.1756361848853;
        Wed, 27 Aug 2025 23:17:28 -0700 (PDT)
Message-ID: <5f5ba1dd-1252-4740-8c64-e4fcd8a7ac32@suse.com>
Date: Thu, 28 Aug 2025 08:17:27 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>, ray.huang@amd.com,
 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>,
 xen-devel@lists.xenproject.org, Penny Zheng <Penny.Zheng@amd.com>
References: <20250815102728.1340505-1-Penny.Zheng@amd.com>
 <fb6f559a-b2aa-4b25-a6d3-401ecc4b4bd5@suse.com>
 <d6046b53-9317-43d6-bfda-e30d42c09320@gmail.com>
 <2035b14e-3836-4e80-9dad-8a49ca90864a@suse.com>
 <alpine.DEB.2.22.394.2508181646220.923618@ubuntu-linux-20-04-desktop>
 <49416df6-83c8-4fa3-bf81-2d1e504ef31b@suse.com>
 <alpine.DEB.2.22.394.2508251934200.3391208@ubuntu-linux-20-04-desktop>
 <alpine.DEB.2.22.394.2508261728250.3391208@ubuntu-linux-20-04-desktop>
 <cc8724b6-bb31-4482-a459-156366b7b433@suse.com>
 <alpine.DEB.2.22.394.2508271442410.580734@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.2508271442410.580734@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.08.2025 02:52, Stefano Stabellini wrote:
> On Wed, 27 Aug 2025, Jan Beulich wrote:
>> On 27.08.2025 02:33, Stefano Stabellini wrote:
>>> So I ran a test and the appended change, which is based on [1] and
>>> renaming CONFIG_DOMCTL to CONFIG_SYSCTL, is sufficient to resolve the
>>> build issue.
>>>
>>> For 4.21, I suggest we go with two patches:
>>> 1) global rename of CONFIG_SYSCTL to CONFIG_MGMT_HYPERCALLS
>>> 2) stub domctl_lock_acquire/release based on CONFIG_MGMT_HYPERCALLS
>>>
>>> Jan, are you OK with this?
>>
>> Naming if the option aside, no, I fear I dislike the stubbing. What's
>> worse though, ...
>>
>>> --- a/xen/include/xen/domain.h
>>> +++ b/xen/include/xen/domain.h
>>> @@ -148,8 +148,17 @@ void arch_dump_domain_info(struct domain *d);
>>>  
>>>  int arch_vcpu_reset(struct vcpu *v);
>>>  
>>> +#ifdef CONFIG_SYSCTL
>>>  bool domctl_lock_acquire(void);
>>>  void domctl_lock_release(void);
>>> +#else
>>> +static inline bool domctl_lock_acquire(void)
>>> +{
>>> +    return false;
>>
>> ... this will break x86'es HVM_PARAM_IDENT_PT handling. That is, in
>> principle I would agree that returning false here is appropriate. But
>> for the specific case there it's wrong.
> 
> Uhm, that is a good point actually. And while in principle "false"
> sounds appropriate, in practice there is no domctl.c to worry about
> concurrency so "true" is what we want.

Except that, as said, conceptually "true" is the wrong value to use in
such a stub.

>> As said on the call yesterday, until what you call MGMT_HYPERCALLS is
>> completely done, the option needs to be prompt-less, always-on.
> 
> I do not think this is a good idea, because we would be unable to test
> the configuration. Although we have been accepting code without tests,
> that is not a good principle. At least with the current approach we can
> run manual tests if automated tests are not available. If we make it
> silent, we risk introducing broken code, or code soon-to-become broken.
> 
> In my view, we need to make gradual progress toward the goal. In this
> case, we should move incrementally toward compiling out all the
> "management" hypercalls. Also the alternative of waiting until all
> patches are ready before committing them is not feasible. An incremental
> approach reduces risk, preserves testability, and makes regressions
> easier to identify.

If that's your view, then why did you not comment on the SYSCTL series,
when I asked the prompt to appear last?

> An extreme example is that I could write:
> 
> static inline bool domctl_lock_acquire(void)
> {
>     obviously broken
> }
> 
> and no tests would catch it.

Tests would catch it at the point the prompt is added. Much like it was
with the SYSCTL series (and why, with the prompt removed, the rest of
the series can stay in).

>> Adding
>> a prompt was necessary to be the last thing on the SYSCTL series, and
>> it'll need to be last on the follow-on one masking out further
>> hypercalls. IOW my take is that 34317c508294 and 568f806cba4c will
>> need reverting (the latter being what caused the regression, and the
>> former depending on the latter), to allow to cleanly continue that
>> work after the rename. If we don't do the reverts now (and take either
>> Penny's patch or what you propose), imo we'll need to do them later.
>> Else we're risking to introduce new randconfig breakages while the
>> further conversion work is ongoing.
> 
> My suggestion remains to go forward with 2 patches:
> 0) keep both 568f806cba4c and 34317c508294
> 1) rename CONFIG_SYSCTL to CONFIG_MGMT_HYPERCALLS
> 2) this patch with return true from domctl_lock_acquire
> 
> I am open to reverting 568f806cba4c but I don't think it would improve
> things. I definitely don't think we should revert 34317c508294. We need
> 34317c508294 otherwise this patch doesn't fix the build.

If "this patch" is the one outlined here, then with the reverts we wouldn't
need it at all. The reverts alone will fix the build issue, according to my
understanding.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 06:36:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 06:36:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097536.1451816 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urWEm-0004ED-O1; Thu, 28 Aug 2025 06:35:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097536.1451816; Thu, 28 Aug 2025 06:35: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 1urWEm-0004E5-LW; Thu, 28 Aug 2025 06:35:56 +0000
Received: by outflank-mailman (input) for mailman id 1097536;
 Thu, 28 Aug 2025 06:35:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=pYI3=3I=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urWEl-0004Dz-5e
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 06:35:55 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3eee3110-83d9-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 08:35:53 +0200 (CEST)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-61c26f3cf6fso986397a12.1
 for <xen-devel@lists.xenproject.org>; Wed, 27 Aug 2025 23:35:53 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afe89bd7acesm747484466b.73.2025.08.27.23.35.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Aug 2025 23:35: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>
X-Inumbo-ID: 3eee3110-83d9-11f0-aeb2-fb57b961d000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756362953; x=1756967753; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=rv5rJBq+BfUlB7x2Nm3tGfV6V5yfJL3FK2im09nUlHU=;
        b=AxzMnncQDVbwzn8s6IQaqiJXTs2wZMlm1YTHRN8oiNufYCVtZyR0ZCh1AYjxlhhraN
         Cdp/Z8GygnF97Ry3g4NFPr+46GC2xLkufffpqbPuA2J5A4/Egy/sXn/u3vyX/tR+s3gK
         9LRhxR1hba3N14ggnkV+zz8F1zF77IMnXgHhyRPXfQW2L8m9gec1hrBRyUt2z4YXoRVx
         bCErB9tgrSDDjKX+mgmanSx8DBQoynxGDZKOzgUIDYRWF7JoqF8c+VFN3EAjhjnAXfct
         m5CSDTN/pcpOt696QxeB+1M8mQXkgfuSmUrTEyAJVboawXqXWg8HTUn7LS9C1H7uHGB/
         tLfw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756362953; x=1756967753;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rv5rJBq+BfUlB7x2Nm3tGfV6V5yfJL3FK2im09nUlHU=;
        b=cXWTxvzLrwMWUctCgCrv5q8nQUlaU1kkZoKKsz15dH1VUbb/t7XeecF+m0rUAVXvNo
         1V/emnxCZsQkcq+CAjFlXDsBvmhmiREb4Jc5QewWxU59vBeaqdYdpdD5LTNxbQcH5bLJ
         6jOMUrEhjE+cYqtG02cvOpdXgBfeM1hUoNFuaDZf14ppGlNxcaXe1y+q5BPl0BUNbX+R
         24hhrcCjc63dp2sqiBz5xk7WDO3AIT8MEXmThwbrpzHbO4qWWeEZ2jcVCik7r0eAL1DE
         KEoMx8vRsXht0a89WkGhQ0tDECmBRGyH3IFnY6u/9e2Ks8pMU6kABMg9Bj7FIfMstklp
         G0sg==
X-Forwarded-Encrypted: i=1; AJvYcCUVhxMBgDyBPUqEzOd0cNbOgzGHl5+RLbzQWghCWIRpHInaTwagx1p5ffdMvhj+su+zxvyHxc9LRkA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxjdSgjq7qxTh1NibpPBNwx3mxfmUt3gvi99R1m1y3DPztLmAI9
	5JpxUrYUd7Yff0tI1vTEFimE0tAzNzcRWs/YSL/8g05todUgJtufzTqJgSrNTmyohw==
X-Gm-Gg: ASbGncst4hXqYZCmTmYscV+HfurPTStENgAJ2FDyGiDcUL1KfP709IyQgY/F7rhSSSy
	ssGYgN6nd7v8uJqQ3jnTrCNhMHnIzjuLMIst3WwNTCKq9eJqFErOoMLUsa8E0es7WnXGllq2TYW
	1OMRucI+/PtWfV/asXmeojIxGSoB3qcYbXh+TiKdRLKiJQjo8WhVRNcP3vehbp6Hgn+yxgK9fBx
	zJ5sPkgQErMT31BASWxQHr6eWXOhhuoKnZaTk712TC4du6sxS2td42eNt8xir63Z2N+fu/CUZ6h
	pWvRRZrNrU/QzwJZvbK0UkYbmzo61+gdYjs8G8O0B4VtMmvsJLupWXu3KKT3qU5YsIAPXSttjCY
	XQXAgrGJuSTZd5jRTFdU3Fdte0jotvmvW3XgbwYQ5JI8KPJ/8FQBDUKx6fxevouGA/n9mmvAdMx
	ywmz9pPpirg/MC3R43Xw==
X-Google-Smtp-Source: AGHT+IF6jNZo5wYka15xPzybPjvNpCmzSMbCAFvjsiIikXslrtJp8U02jHTBW6o0FraqihLOZFvSHQ==
X-Received: by 2002:a17:907:720f:b0:afe:b9e3:2a19 with SMTP id a640c23a62f3a-afeb9e337a9mr582546966b.19.1756362952936;
        Wed, 27 Aug 2025 23:35:52 -0700 (PDT)
Message-ID: <a877ad1b-1628-465b-9b38-dce347ba8ba1@suse.com>
Date: Thu, 28 Aug 2025 08:35:51 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 13/13] xen/cpufreq: Adapt SET/GET_CPUFREQ_CPPC
 xen_sysctl_pm_op for amd-cppc driver
To: "Penny, Zheng" <penny.zheng@amd.com>
Cc: "Huang, Ray" <Ray.Huang@amd.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 "Orzel, Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20250822105218.3601273-1-Penny.Zheng@amd.com>
 <20250822105218.3601273-14-Penny.Zheng@amd.com>
 <f27c17e6-8c88-42f3-b0e2-874aa02597c5@suse.com>
 <DM4PR12MB8451CFF93199B96578D96F88E13BA@DM4PR12MB8451.namprd12.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: <DM4PR12MB8451CFF93199B96578D96F88E13BA@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.08.2025 06:06, Penny, Zheng wrote:
>> -----Original Message-----
>> From: Jan Beulich <jbeulich@suse.com>
>> Sent: Tuesday, August 26, 2025 12:03 AM
>>
>> On 22.08.2025 12:52, Penny Zheng wrote:
>>> --- a/xen/arch/x86/acpi/cpufreq/amd-cppc.c
>>> +++ b/xen/arch/x86/acpi/cpufreq/amd-cppc.c
>>> +    /* Only allow values if params bit is set. */
>>> +    if ( (!(set_cppc->set_params & XEN_SYSCTL_CPPC_SET_DESIRED) &&
>>> +          set_cppc->desired) ||
>>> +         (!(set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MINIMUM) &&
>>> +          set_cppc->minimum) ||
>>> +         (!(set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MAXIMUM) &&
>>> +          set_cppc->maximum) ||
>>> +         (!(set_cppc->set_params &
>> XEN_SYSCTL_CPPC_SET_ENERGY_PERF) &&
>>> +          set_cppc->energy_perf) )
>>> +        return -EINVAL;
>>
>> ... all the errors checked here are to be ignored when no flag is set at all?
> 
> Yes, values are only meaningful when according flag is properly set, which has been described in the comment for "struct xen_set_cppc_para"

Especially since you stripped the initial part of this comment of mine, it feels
as if you misunderstood my request. What it boils down to is the question whether
"if ( set_cppc->set_params == 0 )" shouldn't move after the if() you left in
context above.

>>> +    /*
>>> +     * Validate all parameters
>>> +     * Maximum performance may be set to any performance value in the range
>>> +     * [Nonlinear Lowest Performance, Highest Performance], inclusive but
>> must
>>> +     * be set to a value that is larger than or equal to minimum Performance.
>>> +     */
>>> +    if ( (set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MAXIMUM) &&
>>> +         (set_cppc->maximum > data->caps.highest_perf ||
>>> +          set_cppc->maximum <
>>> +                        (set_cppc->set_params &
>> XEN_SYSCTL_CPPC_SET_MINIMUM
>>> +                         ? set_cppc->minimum
>>> +                         : data->req.min_perf)) )
>>
>> Too deep indentation (more of this throughout the function), and seeing ...
> 
> Maybe four indention is more proper
> ```
>         if ( (set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MAXIMUM) &&
>              (set_cppc->maximum > data->caps.highest_perf ||
>               (set_cppc->maximum <
>                           (set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MINIMUM
>                     ? set_cppc->minimum
>                     : data->req.min_perf))) )
> ```

No. In expressions you always want to indent according to pending open
parentheses:

        if ( (set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MAXIMUM) &&
             (set_cppc->maximum > data->caps.highest_perf ||
              (set_cppc->maximum <
               (set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MINIMUM
                ? set_cppc->minimum
                : data->req.min_perf))) )

>>> +    case XEN_SYSCTL_CPPC_SET_PRESET_NONE:
>>> +        if ( active_mode )
>>> +            policy->policy = CPUFREQ_POLICY_UNKNOWN;
>>> +        break;
>>> +
>>> +    default:
>>> +        return -EINVAL;
>>> +    }
>>
>> Much of this looks very similar to what patch 09 introduces in
>> amd_cppc_epp_set_policy(). Is it not possible to reduce the redundancy?
>>
> 
> I'll add a new helper to amd_cppc_prepare_policy() to extract common
> 
>>> --- a/xen/include/public/sysctl.h
>>> +++ b/xen/include/public/sysctl.h
>>> @@ -336,8 +336,14 @@ struct xen_ondemand {
>>>      uint32_t up_threshold;
>>>  };
>>>
>>> +#define CPUFREQ_POLICY_UNKNOWN      0
>>> +#define CPUFREQ_POLICY_POWERSAVE    1
>>> +#define CPUFREQ_POLICY_PERFORMANCE  2
>>> +#define CPUFREQ_POLICY_ONDEMAND     3
>>
>> Without XEN_ prefixes they shouldn't appear in a public header. But do we
>> need ...
>>
>>>  struct xen_get_cppc_para {
>>>      /* OUT */
>>> +    uint32_t policy; /* CPUFREQ_POLICY_xxx */
>>
>> ... the new field at all? Can't you synthesize the kind-of-governor into struct
>> xen_get_cpufreq_para's respective field? You invoke both sub-ops from xenpm
>> now anyway ...
>>
> 
> Maybe I could borrow governor field to indicate policy info, like the following in print_cpufreq_para(), then we don't need to add the new filed "policy"
> ```
> +    /* Translate governor info to policy info in CPPC active mode */
> +    if ( is_cppc_active )
> +    {
> +        if ( !strncmp(p_cpufreq->u.s.scaling_governor,
> +                      "ondemand", CPUFREQ_NAME_LEN) )
> +            printf("cppc policy           : ondemand\n");
> +        else if ( !strncmp(p_cpufreq->u.s.scaling_governor,
> +                           "performance", CPUFREQ_NAME_LEN) )
> +            printf("cppc policy           : performance\n");
> +
> +        else if ( !strncmp(p_cpufreq->u.s.scaling_governor,
> +                           "powersave", CPUFREQ_NAME_LEN) )
> +            printf("cppc policy           : powersave\n");
> +        else
> +            printf("cppc policy           : unknown\n");
> +    }
> +
> ```

Something like this is what I was thinking of, yes.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 06:37:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 06:37:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097546.1451826 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urWGQ-0004lO-2j; Thu, 28 Aug 2025 06:37:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097546.1451826; Thu, 28 Aug 2025 06:37:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urWGQ-0004lH-0C; Thu, 28 Aug 2025 06:37:38 +0000
Received: by outflank-mailman (input) for mailman id 1097546;
 Thu, 28 Aug 2025 06:37:36 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=pYI3=3I=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urWGO-0004l9-Jq
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 06:37:36 +0000
Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com
 [2a00:1450:4864:20::632])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7bc5b6b8-83d9-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 08:37:35 +0200 (CEST)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-afcb7322da8so101926466b.0
 for <xen-devel@lists.xenproject.org>; Wed, 27 Aug 2025 23:37:35 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afec626692bsm286766066b.71.2025.08.27.23.37.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Aug 2025 23:37: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>
X-Inumbo-ID: 7bc5b6b8-83d9-11f0-aeb2-fb57b961d000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756363055; x=1756967855; 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=noMNMCXUwYiezOUmUNePyHUVBf/nop2qb7uSEobQyc4=;
        b=F07RieGGBcXufjbFho0gCb9X7TsMmM2yF/8xeLq6VvRpyjpXDuMnZRYryBD8rt/Vzw
         BzJHF3qKedCSDDsatnah0Pi945LYSDiNhNiiPioL7fg1dfHWavbK2Qd9p+AIOUN6AG2I
         LEqH9Cl21j8SVXeHCdpTTlYVxMr5WNwT/s3mNNuB1OE1y+Y8/+eLurcae7/7FNXfmNQL
         1bmiO2UK3Wn2v7EEyGg8tDCTcILZwfG3ghw9CWn0t/n9dfwOxJXhUc+3jvzy2NJIwOT7
         GH+BtBlE8259/hpDqxwcrQ/05fjaRA1gKql3hQV/odlPcLe5dPqTa+cS5A4upf+OLQ/N
         4J6g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756363055; x=1756967855;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=noMNMCXUwYiezOUmUNePyHUVBf/nop2qb7uSEobQyc4=;
        b=wDW35CmXEtwyEh23FAKOD0RwjEvuFGObWMdKvw9MuUumQ9/65rEL+b6SVhUWw6GDyW
         YSD33M6ptwRyH5CwLKQFnfObWjyXC5Iygoy3HUFG29u8X5LyGSH2Z2emxl3nwLsmwUHa
         RMNHndPj1/yzZ5BesCMQzlSVzwsLxKIZRzsEcF8G3VqH2zT042XcJO0eydRnx22P+vIC
         WjWT3PV5EpquESp4og9LgsCk/TCg56QYiIwOxtiM/TeIUO0PpaNSL5ktnMI1aA1uDQ0q
         N4ouHmW+pMeOh9poQ8StoqbcZKCDXlWMHY9bponPYQMFcbCds527bFSgE9AwlWPpqlJ9
         9IDQ==
X-Forwarded-Encrypted: i=1; AJvYcCV6M+N2/3VU5+Bakdb6gTJRt7kHNrnH4pvIgwNsXRga1bBiImaAqLmvtdWVvK21A/6yrJWHHe4oeJ8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxzpXPBAy9y6UghXU9gjuCoAW21ByYRG5HAE9UO/ggvWP+J8dBm
	QbuCT18dCUu/N5q+cyQbYH2yk/iOa6Tc+QQhcG8/tIrxn4idrMIbbcB78UZlvilgLQ==
X-Gm-Gg: ASbGncvFWVjybE9ANtle03PEgAF8ol8+knqH9NXC/dP+S04UxKc2Tg9YgfquV7pEaxG
	zICPpqkZ7FvCthSLeHJxUuwlEYOvK5ROmzjGiRBp4El50Rq9QLYJGkCjT1n3q/BS94B2cNuvNyM
	EK7DJw5z1NzsvepTpzx/MTGkmiqJUvhBX3d85WS9HIzhmMp0KkemV/ORAcAELrvD7cRLw7KL90b
	MJKhA2uzmysxsl2LMheCmNKoVwfMsKGZbO8edh6cKXT8Q3TG9fcZEZa7o+o4VP6Xm1CPUgUMsXV
	rSs0Nf6J/YIogmndMZB+J6eFNmNsEaLfcbnco45YG0ckbKr76IqrFvCoJ+VjK/Kt92NhJCoBPB3
	aLMfH0Y1rldHWWt9wF8bHxpYzcNttkdmqCRxp3SH5vFpu0d0BoTVEM6I61FOwGpMhxr7i0/5mH8
	6lq6WGgTXl4B5JX1rTDw==
X-Google-Smtp-Source: AGHT+IFRN7x4zFPcvsfNfxuxISsT367kATawR16iWoBn4Hq0GrSeF6Ar4MTxW8fKRATVYkYudYJu6A==
X-Received: by 2002:a17:906:c149:b0:afe:ec09:2a32 with SMTP id a640c23a62f3a-afeec0934f8mr71220166b.58.1756363055012;
        Wed, 27 Aug 2025 23:37:35 -0700 (PDT)
Message-ID: <fa8f951f-610c-484f-a9c4-9b76b8f399cc@suse.com>
Date: Thu, 28 Aug 2025 08:37:33 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 13/13] xen/cpufreq: Adapt SET/GET_CPUFREQ_CPPC
 xen_sysctl_pm_op for amd-cppc driver
From: Jan Beulich <jbeulich@suse.com>
To: "Penny, Zheng" <penny.zheng@amd.com>
Cc: "Huang, Ray" <Ray.Huang@amd.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 "Orzel, Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20250822105218.3601273-1-Penny.Zheng@amd.com>
 <20250822105218.3601273-14-Penny.Zheng@amd.com>
 <f27c17e6-8c88-42f3-b0e2-874aa02597c5@suse.com>
 <DM4PR12MB8451CFF93199B96578D96F88E13BA@DM4PR12MB8451.namprd12.prod.outlook.com>
 <a877ad1b-1628-465b-9b38-dce347ba8ba1@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: <a877ad1b-1628-465b-9b38-dce347ba8ba1@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.08.2025 08:35, Jan Beulich wrote:
> On 28.08.2025 06:06, Penny, Zheng wrote:
>>> -----Original Message-----
>>> From: Jan Beulich <jbeulich@suse.com>
>>> Sent: Tuesday, August 26, 2025 12:03 AM
>>>
>>> On 22.08.2025 12:52, Penny Zheng wrote:
>>>> --- a/xen/include/public/sysctl.h
>>>> +++ b/xen/include/public/sysctl.h
>>>> @@ -336,8 +336,14 @@ struct xen_ondemand {
>>>>      uint32_t up_threshold;
>>>>  };
>>>>
>>>> +#define CPUFREQ_POLICY_UNKNOWN      0
>>>> +#define CPUFREQ_POLICY_POWERSAVE    1
>>>> +#define CPUFREQ_POLICY_PERFORMANCE  2
>>>> +#define CPUFREQ_POLICY_ONDEMAND     3
>>>
>>> Without XEN_ prefixes they shouldn't appear in a public header. But do we
>>> need ...
>>>
>>>>  struct xen_get_cppc_para {
>>>>      /* OUT */
>>>> +    uint32_t policy; /* CPUFREQ_POLICY_xxx */
>>>
>>> ... the new field at all? Can't you synthesize the kind-of-governor into struct
>>> xen_get_cpufreq_para's respective field? You invoke both sub-ops from xenpm
>>> now anyway ...
>>>
>>
>> Maybe I could borrow governor field to indicate policy info, like the following in print_cpufreq_para(), then we don't need to add the new filed "policy"
>> ```
>> +    /* Translate governor info to policy info in CPPC active mode */
>> +    if ( is_cppc_active )
>> +    {
>> +        if ( !strncmp(p_cpufreq->u.s.scaling_governor,
>> +                      "ondemand", CPUFREQ_NAME_LEN) )
>> +            printf("cppc policy           : ondemand\n");
>> +        else if ( !strncmp(p_cpufreq->u.s.scaling_governor,
>> +                           "performance", CPUFREQ_NAME_LEN) )
>> +            printf("cppc policy           : performance\n");
>> +
>> +        else if ( !strncmp(p_cpufreq->u.s.scaling_governor,
>> +                           "powersave", CPUFREQ_NAME_LEN) )
>> +            printf("cppc policy           : powersave\n");
>> +        else
>> +            printf("cppc policy           : unknown\n");
>> +    }
>> +
>> ```
> 
> Something like this is what I was thinking of, yes.

Albeit - why the complicated if/else sequence? Why not simply print
the field the hypercall returned?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 06:41:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 06:41:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097561.1451837 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urWJi-0006aQ-Lg; Thu, 28 Aug 2025 06:41:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097561.1451837; Thu, 28 Aug 2025 06:41:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urWJi-0006aJ-IX; Thu, 28 Aug 2025 06:41:02 +0000
Received: by outflank-mailman (input) for mailman id 1097561;
 Thu, 28 Aug 2025 06:41:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=pYI3=3I=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urWJg-0006aD-TS
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 06:41:00 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f579d7e2-83d9-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 08:41:00 +0200 (CEST)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-afcb78f5df4so89562266b.1
 for <xen-devel@lists.xenproject.org>; Wed, 27 Aug 2025 23:40: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
 4fb4d7f45d1cf-61c5010e151sm8759012a12.4.2025.08.27.23.40.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Aug 2025 23:40: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>
X-Inumbo-ID: f579d7e2-83d9-11f0-aeb2-fb57b961d000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756363259; x=1756968059; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=OhZ1gZzf44P+/UtcAZrf7/k2gD8+KX3uQL6OE4lJuz8=;
        b=Lc/59148t972J4Xpyl2vggHn+mAzJb4fKM5kmgusFL5v27xgHjXwG1fHUvHMtT3bfJ
         +B50BNMWr0LiNelQMbbuSEa6T2Zic9R7triCvKVtw40P8IDuNJHVk+ZM4Yi12zQpokN7
         g+gvN59cF+nWpTUjbt5W6hrVWs+wleOgbI9m9KgDcioxlmq+iEfcC/2YTJR9q1K+k015
         gvtP6NuxNp6s+BjjSAtyqHFmnXgNRM+lz7fbc7uTu4SoeOXR2B3BXF4eOKmyr721EZT/
         9Zyg9w9z/ROdOO7WqvLLStPy2rk8T3rDppCI1OgiUcnwvFs6PNRyzk8JuR3bPOfl46/L
         Casg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756363259; x=1756968059;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=OhZ1gZzf44P+/UtcAZrf7/k2gD8+KX3uQL6OE4lJuz8=;
        b=imry9+Zm9qOmTXvcQTaGO7hlHGIQu3IImMcvszvTBaSfPLGmPW91l5c+Mltvzg8NYX
         VGNu90eMidwApiHUKZy0po0RM7QDdC8Wc6EESQ5kgVfAMS5b+J24oYIQi07NExfnbNNH
         zz3LVKEGXGO8gJbbYZjeGBJduzxCAB3IV0EhsZdZazAGn1nXRYEGlY1850JRgK938mRe
         vBwwDY/+fs5KTAnX6ifXeEcf2VgBjtT2aFvHxJ92yq6fn26Oafr5aD3OfPRupNj9tWlm
         SWxjjPkgMMwH61zUrbPU1gc6yhhvY58r1ulYL62qq1tKSHbrlYefOauZnVzpOWDcfBJL
         BIsw==
X-Forwarded-Encrypted: i=1; AJvYcCVDEpvyXVo9jMYT7hT8ZUitQ8PE7+Ag5gBETgemWU0FQ68pIdASQ6wf8GQELMq5LRFWCBNntnvWVj0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwwjGGYTjQhr90aTkPPMDmQRk0j2bvEQ9MK9Z3rl3afv4A14Qti
	1akvK0qOwxFToDa5vjw1l3ivO2T/iutt8xBAbhQdQWCnCmpggRxIfFVvRKenWnPD7g==
X-Gm-Gg: ASbGncsyrkZk/Ji5r3hbRKSMlHrxpNJDdHxR86MOwrfiMRuz4ulEc4pql+ewOLr7q00
	JpzTWPDT1Uuf6nlWJyyWEkVl0WBRw3oeoNJOLrg4M/vkFaBIPEvZPtHgfqtSNCIXZAPQuJ5rL0D
	1bDq7M3bK6GjmnMKgkV/4vbEmOnGTU/eU8jH9WxODUqOIsZLCcotrcZGltLrHgmM9XW601Fjij3
	Dw1nrvXexjbutr8AXUmSLBsUbU8OG1vXuWF0Pl2cNlLLOlajEBSNgtBckl4AW91OJcuTEHt96cI
	Iy7NcTeCh0aJji7ZzEPimk9KUIx4xGESID0AQsAfRHR+A8RFwzhk6crmCA7Zn5dcRpfPj6FONA8
	LQ+b7YEyTo2mLT4NvoWbneUzEnlcgLGFaliVsWNUtcW/efrcsTiNRfbQqRYy52FaHEiGivQIXZ4
	CR2N1ur53nyqx0IDSmuQ==
X-Google-Smtp-Source: AGHT+IEFqQO3PhLF/h2v1d0h2I+U+0bR0oOe2pygS2ZMARBWOqcbIT8okxkUDFe4oR6tvGAHsHYQwg==
X-Received: by 2002:a17:907:9725:b0:afe:c7a3:c6a5 with SMTP id a640c23a62f3a-afec7a3c889mr464493866b.26.1756363259257;
        Wed, 27 Aug 2025 23:40:59 -0700 (PDT)
Message-ID: <58b39f4b-51e2-49d9-938b-d8e6b4dbaf73@suse.com>
Date: Thu, 28 Aug 2025 08:40:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v5 06/10] xen/domctl: extend XEN_DOMCTL_assign_device
 to handle not only iommu
To: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Bertrand Marquis <bertrand.marquis@arm.com>, Juergen Gross
 <jgross@suse.com>, Julien Grall <julien@xen.org>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1753184487.git.oleksii_moisieiev@epam.com>
 <aa4bf9a069721ace3b9da7409923455eed2f6896.1753184487.git.oleksii_moisieiev@epam.com>
 <3ff863d9-764c-4478-9bb9-b783ff850185@suse.com>
 <e214b0b9-1cdb-43c7-a02f-a1b64b3bfb8a@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: <e214b0b9-1cdb-43c7-a02f-a1b64b3bfb8a@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.08.2025 07:48, Oleksii Moisieiev wrote:
> 
> 
> On 22/07/2025 15:34, Jan Beulich wrote:
>> On 22.07.2025 13:41, Oleksii Moisieiev wrote:
>>> @@ -859,7 +860,25 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
>>>       case XEN_DOMCTL_test_assign_device:
>>>       case XEN_DOMCTL_deassign_device:
>>>       case XEN_DOMCTL_get_device_group:
>>> +        int ret1;
>>> +
>>>           ret = iommu_do_domctl(op, d, u_domctl);
>>> +        if ( ret < 0 && ret != -ENXIO )
>>> +            return ret;
>> If this is where you want the ENXIO for that the previous patch switched to,
>> then I see no reason for that earlier change at all. Inside the hypervisor
>> you can simply figure out what the right thing to do is; you could avoid
>> calling iommu_do_domctl() altogether and call ...
> 
> My point was to leave the decision making to the calls themselves.
> So iommu_do_domctl will make a decision whether to process the node or 
> not, same for the scmi call.
> I can figure out if there is a need to call iommu_do_domctl or 
> sci_do_domctl here but this means moving
> part of the logic from specific calls to the common code.

To avoid that, maybe it needs doing the other way around? I.e. try ...

>>> +        /*
>>> +         * Add chained handling of assigned DT devices to support
>>> +         * access-controller functionality through SCI framework, so
>>> +         * DT device assign request can be passed to FW for processing and
>>> +         * enabling VM access to requested device.
>>> +         * The access-controller DT device processing is chained after IOMMU
>>> +         * processing and expected to be executed for any DT device
>>> +         * regardless if DT device is protected by IOMMU or not (or IOMMU
>>> +         * is disabled).
>>> +         */
>>> +        ret1 = sci_do_domctl(op, d, u_domctl);

... this first?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 06:48:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 06:48:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097577.1451847 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urWQh-0007Cg-B8; Thu, 28 Aug 2025 06:48:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097577.1451847; Thu, 28 Aug 2025 06:48:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urWQh-0007CZ-7z; Thu, 28 Aug 2025 06:48:15 +0000
Received: by outflank-mailman (input) for mailman id 1097577;
 Thu, 28 Aug 2025 06:48:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=pYI3=3I=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urWQf-0007CT-RP
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 06:48:13 +0000
Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com
 [2a00:1450:4864:20::52c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f6e772cf-83da-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 08:48:11 +0200 (CEST)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-61cb9f6dbe7so1051225a12.0
 for <xen-devel@lists.xenproject.org>; Wed, 27 Aug 2025 23:48: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
 4fb4d7f45d1cf-61cd7bde8fbsm790892a12.11.2025.08.27.23.48.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 27 Aug 2025 23:48: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>
X-Inumbo-ID: f6e772cf-83da-11f0-ae26-e363de0e7a9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756363691; x=1756968491; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=NqV0FpfYO3xPhMgW2ANWtQrW9AWFZJH5js/QVMuzjzE=;
        b=MQdLNGPy2y7S7FAlvtwPyFrOX+CsEjbjqiCTA+70k5Wik5+F7JLh24iDToeSjkyN0+
         WeDOWP9ZAyX3oTm50JBfzPEy21CvXvKZEMojt66fswVmoqen8/Mtw4TaRO2TEiuBi6Tn
         WtH0VMyiaysB0dBruMbbiO7+Tndm+VICxPHg/V6weaptBbG19zl7eM+Yx5DIrEmm20eN
         ECPSrGqGaSw8ZFn60Dt7bpk/QoncRr1xrbiDXUIeSGDfnKDsNiZ46+WgGuXpqTi6Si88
         FJXfu9yZvqvJHgc0crC4M4jOa2CZoWfeGoiVxJ76KWNKrUELtIOv6AP58Z9D04wATou4
         WlmQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756363691; x=1756968491;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NqV0FpfYO3xPhMgW2ANWtQrW9AWFZJH5js/QVMuzjzE=;
        b=UDKjeQ9wcsdlwA/hoKgKp47rZM5XiPhDqIo3wCrgq6kM8+NsqOd9lHX613+UEp2pXX
         SFRNQc8Nmy1+mnzDR+aS0JoTHwOo5UMdBUaYIG0DLZh5tSSXhZerFfrL1FdWjk3wbYsg
         vaBlWG19K20VKadBNxM53FyckbRXmcTvM6V0Uw3TIfEo2QgakvKwhnMxBNJq9aqdvJwd
         RaUJ2W6WJLuQjuu67QtQ25nFpJmEClSByzl6iAO1DGKLL/zddilgVpTYO1QZIsQB9TLU
         V/f1T5jLKRH54Hxm6+Nwwe+8bJRmnUMEHK/rqNGJ3j6vy991p3oIRuubzAnR+o3kKXkn
         M4sQ==
X-Forwarded-Encrypted: i=1; AJvYcCW1MYMCBuIS1X46fZvcIHAV/XGPSxub3rL5rRH3m8PYW0bGUKMVuBeb/qq0aEaDxZzG9U1SNX9Fo9k=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywrq36NrIgMECLZOLLRPSeFCT/aFKmPcbNDxEFu4GOP3WmNtW5X
	CHJeOIXNnGpnteERv6j8RoHD7hL4YjFLqDNmqS6xRugEejA6m6miJyt0PUL97+9CXQ==
X-Gm-Gg: ASbGncvRKoK+AwU8sc0q5PiiLc9y1E4FSk7i6lEgudlrN+9aSr9mrUBJ57WjNknlnch
	3mL+zsThhyMczjoBc6H5gNAvoHKfrYJ9NY7J6jFQUjKOdINRSw1b9CdPxLNM4CYrVs0Ow0v7jx7
	TKx2oLEMJBJRJnMou1Ke3BGMYimIiN3KGPkfAElwzFsvl6O9Ca+EUWPj5uhp6sBL/5mpolD6M5H
	sJri55/gI1WCgK0qfuA1lF+0g0TMVuWECHdGPReLekd3U+kkDEZHpb7n6fsWUxmSQMV1poLx/EJ
	sN8rld5VWYuC39XPGBeSoWYRQbQ/KcgVAj7pyr+hCS1+aavqCcUcTPMCon+C1VlSVDv5XSs6aeB
	lgO7S2g2Hfdx+EIBy0FvcRT3XJLAkDFPXjIUlqhizZekzkdMtqIqBw6DPzIP24e8Z5oUJVnPugs
	3c7vb0NBs=
X-Google-Smtp-Source: AGHT+IFLnF3vHm8WX3RtezZeEG19q22EsHzVKseX4ysa+DeNpTl+i3lyyVHiXXJs6vYz5VpDdbS8Ig==
X-Received: by 2002:a05:6402:2792:b0:61c:bfa7:5d0 with SMTP id 4fb4d7f45d1cf-61cbfa706c9mr2786324a12.30.1756363691226;
        Wed, 27 Aug 2025 23:48:11 -0700 (PDT)
Message-ID: <a1f12ff6-d4b5-4ed9-b943-2b5ceae54472@suse.com>
Date: Thu, 28 Aug 2025 08:48:10 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] hvmloader: Update to SMBIOS 2.6
To: Teddy Astie <teddy.astie@vates.tech>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <b569a298a6270ae04eaf433f7de9ce1f3e248e5f.1755870287.git.teddy.astie@vates.tech>
 <6e9b7b96-a506-40ed-95b6-6ad00ba9a27a@citrix.com>
 <74665857-3f0b-43e6-b31f-d498d9e7fdc3@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: <74665857-3f0b-43e6-b31f-d498d9e7fdc3@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 27.08.2025 22:27, Teddy Astie wrote:
> --- a/xen/include/public/xen.h
> +++ b/xen/include/public/xen.h
> @@ -975,6 +975,10 @@ typedef struct dom0_vga_console_info {
>   #define xen_vga_console_info dom0_vga_console_info
>   #define xen_vga_console_info_t dom0_vga_console_info_t
> 
> +/*
> + * The guest handled provided by toolstack encoded as a UUID in
> + * big-endian order. Its string representation follows RFC 9562.
> + */
>   typedef uint8_t xen_domain_handle_t[16];

Imo at most "is intended to follow".

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 06:55:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 06:55:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097586.1451857 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urWXD-0000cM-Vg; Thu, 28 Aug 2025 06:54:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097586.1451857; Thu, 28 Aug 2025 06: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 1urWXD-0000cF-Sw; Thu, 28 Aug 2025 06:54:59 +0000
Received: by outflank-mailman (input) for mailman id 1097586;
 Thu, 28 Aug 2025 06:54:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ityt=3I=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1urWXD-0000c9-2E
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 06:54:59 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on20603.outbound.protection.outlook.com
 [2a01:111:f403:2413::603])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e79f75ae-83db-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 08:54:56 +0200 (CEST)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 SJ2PR12MB8110.namprd12.prod.outlook.com (2603:10b6:a03:4fc::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Thu, 28 Aug
 2025 06:54:52 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d%7]) with mapi id 15.20.9052.019; Thu, 28 Aug 2025
 06:54: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>
X-Inumbo-ID: e79f75ae-83db-11f0-ae26-e363de0e7a9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=o3hHZyj9wmVtUJzhYvYOpg6Rm6yok5lp4RBYMYH+SmqYJn0xua6iu4tE2SWA+z2pB5+UFXyJvs1JgmVVvOsq38ZcYg+/4jOn9MnO6KGRrqB/D0O0lec4He3EhWRCPRO/WwAC5YCuxUOvQRMLAV7Am0yRqF2/cYBn8MggTXS8B22fR/IyJZj/uJWmPBeuOdZ3n6JGNq1alhVJc2qpHBo9mfcxiq7BwJvFRwzeHr22eZTh4+S597kfxKVhIo0Q3mupdIkR4nEvViWn8Uf4MaQkzXt4Gy7x1EwnIAWr6MxkNIkDdQTSmIJBSccRf9ZBsC8hCkGdZc/TYPPrTwIOAWuNkg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=V5b2RcW5DPXDHKuYhkUTFxeAdka2rwDX+xN0phHlQ8c=;
 b=OTgSh7w6hyz8fjtS9M6Ea12P0ZzdVxgEmVU8inBtWmjyn1yljk8BRms95ik6txmPc2RIdWDu45yXgm0DfswE5sLxorFfyUakd0+sRoCg/TLkDMiwhGXmZmIp8r4/a85OstIBS0GAlIVDf3g8wb/MKOJ5pqJbwcoVQ+1ggJS112GgEKz1ylqKh/12gvZQR5qlAdm651gBHLmBsE+3Ssb5asDYqQ6M3Lr2emCieBYNrbxfZARXb0We8gDFPFC8wtP5MFeqDpemGTt4d3dUCv2jHJuNqRWLTEn5+pZimhvbQE7vc8mRVcBRYh9vn+iBT4n7DBL+M7SaJt0jdGhNRNuidA==
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=V5b2RcW5DPXDHKuYhkUTFxeAdka2rwDX+xN0phHlQ8c=;
 b=UfrUi8JvSKp6c/37t9Xpzni1RlIojw5/6yqWXvP7ezbBCFif3k+wg4zkeya0x7CEifnbfjNPi5/aFCZQjFJ1cf7MoLwHPdhm4z+vLTM3/3OiE+m/p92+x0IC3mKX9WViMwX1xNcRGqANRzWTSXL9vDtc3Sjn/mIr8lV3eMiWetM=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Andrew Cooper <andrew.cooper3@citrix.com>,
	"Orzel, Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Stefano
 Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v7 13/13] xen/cpufreq: Adapt SET/GET_CPUFREQ_CPPC
 xen_sysctl_pm_op for amd-cppc driver
Thread-Topic: [PATCH v7 13/13] xen/cpufreq: Adapt SET/GET_CPUFREQ_CPPC
 xen_sysctl_pm_op for amd-cppc driver
Thread-Index: AQHcE1L0WO8OIJho60KGV8JFR/QspLRzjMCAgAJSvzCAAcXZgIAAAHmAgAACEFA=
Date: Thu, 28 Aug 2025 06:54:51 +0000
Message-ID:
 <DM4PR12MB8451BD022E0150D6D784CDBFE13BA@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20250822105218.3601273-1-Penny.Zheng@amd.com>
 <20250822105218.3601273-14-Penny.Zheng@amd.com>
 <f27c17e6-8c88-42f3-b0e2-874aa02597c5@suse.com>
 <DM4PR12MB8451CFF93199B96578D96F88E13BA@DM4PR12MB8451.namprd12.prod.outlook.com>
 <a877ad1b-1628-465b-9b38-dce347ba8ba1@suse.com>
 <fa8f951f-610c-484f-a9c4-9b76b8f399cc@suse.com>
In-Reply-To: <fa8f951f-610c-484f-a9c4-9b76b8f399cc@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-08-28T06:54:36.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|SJ2PR12MB8110:EE_
x-ms-office365-filtering-correlation-id: 3c53b950-8758-459f-e501-08dde5ffc99d
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?N3hyZnZqRjA2RDlna29JL0lUb0lkTjN0UzcvVm1uakNQV1pTYWlRTENwb2VD?=
 =?utf-8?B?NU5PTVNjUlcwQkliT3ZsUVVzb0c5ZFE0WDBuTEZTNWZwbFZzbFE4S0FraTNC?=
 =?utf-8?B?Zm1CZjY3cXUrZmRoUFhzMlVqaEdTbS9HeW1hVDdRZ1Jhd2dPbUxvWXJ2ZnJp?=
 =?utf-8?B?YzY0SlB5ZWFYcXdLTTZBUjVzS2xXTTg4Um4vbHZaM1JUWnVLd0IwbXZ4cTZU?=
 =?utf-8?B?USs3NzJ2SGRjaVRGa0NFYi9tMXJVTTlDbGdsVjlGSk9HTkNPMk1pTnpvZ1Bn?=
 =?utf-8?B?WUJzUGtJZG56YXlVQVRNSXNIL0QrOWxxLy9paHpUcVBBOVRTeE53TlNpdXhZ?=
 =?utf-8?B?eUFyS2FVMjRsUk1JM3preGZDbFZpSE1OU1A1TTRvMm5IRWJ3Z3BUdEg1bVFy?=
 =?utf-8?B?cmxad0VRa2FBYTkwSU1JQmxmMjBBZWtmR1RIR3M2YjdHOExRUEgxdzVtcmRB?=
 =?utf-8?B?QitXdEEwcWFLdU50WFdkQmtRVWVJQTRYRzBaN3A4T0l6VFh5VHk0NU5ObVNB?=
 =?utf-8?B?Y1gxaGx6R2VIbUNDQ2pyR0RrU2hUSkZydEduVWMwSkpVb1ZuS1RENFIwSGZB?=
 =?utf-8?B?VVNyNkRGOW43YWhvNndBTFQvb0g3U0hlUTVrRDRyajAvTzU5ZVg3bkllb0Fj?=
 =?utf-8?B?MG92YVJYOG1tR09ZbjQ3RlJyWkR5bEwxc2pvSjVsTVBuVEdBYlRIQlNTVWVF?=
 =?utf-8?B?d1ZwVTNXbFR2VGwyNFdkRlVvVXZWNGU5Y2VhYzBObmdDSXZGcGlLTzJIRkxI?=
 =?utf-8?B?MENDUUJ1R2NKbHVRbXNzWUNkWFV4SG01VHlESGZCbG1EWlc3WW43eWV6NnNv?=
 =?utf-8?B?RitKN1Q3YWdBOEZ3clNCUUdNcDhpK1JhMy9rbi9YRXNUVmhJMXJzWmJvbW15?=
 =?utf-8?B?RkxublBoSnV0L1lpOVpyZGFTTm1xOGdSL1dpQjRCRzFtWW4rZGtYVlUrOFEz?=
 =?utf-8?B?cisxbzdBUkFuQkxWS2N6VWZyZ2VMYjFPK21XYnYyTnZSMHRLdWZIODBzRFRV?=
 =?utf-8?B?K0xDUFZlemNKckZqSG83QXkyQ3hLOGkwUTRjUDdLbk02ZjVlNmhZY1lwYi9V?=
 =?utf-8?B?YzZiOXZVaDBTWjdkWUd6bGJEUUFQbGFNaU9MVStzczVINGFYREpjNkcxODAx?=
 =?utf-8?B?QzgzY1lMVUg2UEsvczdtc0lFanBhTGgxQXllRkd4SUpzUXRBSDRqbEV5OHpV?=
 =?utf-8?B?bkwyWktVdnZvZE9TNGVpcjZRUlJ1Nnh2Mm0va0lIQTdESlQ1Q0p2VGRzcDNM?=
 =?utf-8?B?ZEpxMlJjMVd1dXAxZEs3KzFsM05vNHlkaFZHRlNyODFWVjkycXozWThEUVd5?=
 =?utf-8?B?UTQrVUlmYVBSdm0rUDhDcGE3cTlZalVPUmNnL3pENUY1cllMcEYvakhadHZa?=
 =?utf-8?B?aXAzR2FKTVlmbFhVdHFIUU9Kd3pCNVByb2poZnJtWW93YUpoR1doOTNjUkNw?=
 =?utf-8?B?QlpQNVgwN1BlekRIMjU3cnZNQmNwTk1yNjdDQ05YWmgwYXFybUQwMTNKNzlU?=
 =?utf-8?B?QWtjUnh6dVQrOE9PNnBtbWVaaDF3b3lEOTJ1cFBQVUJ4OWI3WFR2SitHTmVy?=
 =?utf-8?B?SWpOOURVUHVtYnpLKy9GV2FsaFhlREhZTUxibjZIUUVQd0UzdGtSdHl0TXVx?=
 =?utf-8?B?em5hTDVISGZEQ3BJU3MvUGwxUk9DT0Y4dXYrUXE3WkNIYkw5OXJwREFiQWFq?=
 =?utf-8?B?Z2VleDZmVkFydE1xL0J6eEduSHFRZ3ZQak5yR2xudk5UZXJwcnJiMEZxdHd0?=
 =?utf-8?B?a01rd0xOYisrYm8wVi8vckxVVzZaTkoxRjh3SzV1UjllZ2xVRWZQTm9mQnRR?=
 =?utf-8?B?RU4vZGhwQXA2OW95LzRKYWR3RnVFd1dwU2J0eGFUeG5RYnFBaWRzLzYyNllT?=
 =?utf-8?B?TFpTM1c2MUVWUkQ5UDBmMXh4SUdZY1h3M09GRklIYWZ1YzNvdXVwVVVwZnli?=
 =?utf-8?B?a2p5dEV2bmhLRkYzVmJkRjBkaFh5R28zdlV1RXJmckZDREVsaUJDRTV6QkYz?=
 =?utf-8?B?UVJ3SDgxNmF3PT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?Q09wbkpjSUZJQ0VHY0MwZjN3UU4rT295bkd3cm12bjBRdWhuNlRXbHQ3ZFNK?=
 =?utf-8?B?TkdJRWVTNm5teXJwNVVxS1BNVlV3TFBVUjFQTEcvSkpCS3RTY1IwejVRdExr?=
 =?utf-8?B?b281RkJpcmh5NzljSWpwM2ZGTkJTNnpGTm1MZnFOTTBGN2hUb2lmVDdwdnZ2?=
 =?utf-8?B?QjFvUE9pWWNZMUs2OU80UVhEWXFmaTBUd3NIdWV4OFNjdlNKell3QXpCRm5Y?=
 =?utf-8?B?VFcxUzY0RkpVNkt2N2habzZ4ZG9nT2xwVXJOYSsxcU1Zd1NYRGZ0dFRsSTJX?=
 =?utf-8?B?SWloOVE1eE5rU004aHdNTWJ6Vy9vbzNLdFl6RlIyTUdhS3lKdjdibmhhOVZX?=
 =?utf-8?B?TlFzancreWhNT1NQTEtNckpPMmxHRHU5MWQ1dWhEcm9xaE5Da2dFZHZENnZj?=
 =?utf-8?B?clZzaXpnTGptTjgwcEtDVEduMEJRYXgxYnE4RkZWcHZOUDkxZFVzRGRaaTJr?=
 =?utf-8?B?bXdwU0pGT3NvR01ESGJiZSsweGkxMTJpZnljTitpTzVCS21LdnJxRDMrcW56?=
 =?utf-8?B?Z2xDRUpTYWthWDBGY3BkNUJITWFYKzVXaFpPbDVYV0htN2E3NWkzdmR0bEYy?=
 =?utf-8?B?VzhEcUppNk9UTXArTlhzaXUxKzJFSVd5Ri9kbmYxclFRTENiTlQwK0lrVm5F?=
 =?utf-8?B?emh0UHlNWTZtQVVkd05zQ1JER01KUkY2MDB6US91cDFaMkVoeTJ2ZXA3WkRS?=
 =?utf-8?B?NGxuYTZRSUI4VzY1clVuaFI0Y0pLRktkYjBWWGExeVhST3ZOaVZFQjA3VVZR?=
 =?utf-8?B?R0FrZ1IwSDNBZklaMWJtTWY0L3lNeWdQR29ZNXNmdC9qUDdkeDRWZ1FjZGkw?=
 =?utf-8?B?ajFFQkJDZ280a0pzZjR2OUxhUnpXT1hDSDBlWkRPNUFCUHFkdmJEeERhc2J0?=
 =?utf-8?B?VzcxbENjcE9nZWVxOCt1a3BDV3FGU0ozcTNBWHVNZFdCUUU1ZGFTK0RVN2s3?=
 =?utf-8?B?K25ZcDJoQUNjd1N4Tit0STgwT0lHUTZjVmgzU3VkV0Nqc2lPelB1ZzhZbE9U?=
 =?utf-8?B?aFdnTG5iaU0rWVhES3RWMDJSVzlrd29obzhCcFFKdnNsV1ZROUx4dHdCbkJ0?=
 =?utf-8?B?RVYrdUNlVzRFYVhoeXJIZ3dJeW1pcWpyODJjN3d4YnZjbHFyYkZwc0dITkVN?=
 =?utf-8?B?TGtyQ00yL1JadHQrT1pGRFJFemY2RUhQVE5MS1ZhR0w5dVEvV2FLWS9EamZm?=
 =?utf-8?B?aXp1bzJUdnFvMHhHTmRtdXZNM0dFMG9YeWpjdlg0S3FPeGhUaGYwYUEybGhS?=
 =?utf-8?B?MUxpWjZMbzlFNTl0REUydldDMUVmcVRyT2RtaDJhTlRBMTEzUDRNdzVxNjNk?=
 =?utf-8?B?TEx2ZGtxMjBYdEgvNXcwb05xb2JMa3dBUXgxWlBDK0o1dUhqTno3WGxXRkw3?=
 =?utf-8?B?MVdQQzdqcGdOU1J6YnYxYjVaTks5MlJ4RUsrVmlCSXd0citKOHZhUCs3Umxk?=
 =?utf-8?B?NEd4UE9XQXB0UmN2enpMMG80Z0ovcUJvRU5oT1loZ0RxZFZaZW9VdXp4SUlj?=
 =?utf-8?B?TVZwZHBSQndsa21TWnVqcGNJQXJ4bUxHZ0lXaDl5VXBtVTNaT09hVUpBanRo?=
 =?utf-8?B?ZlhyNVJUL0RENFAyekRTZTJnQkNMbjRyN2NLamZHcmVYWmpMbXE4WHVLRXcv?=
 =?utf-8?B?RXlzYXUxN0xCNW04Mm9hVnpQMnFXcDlUMGxEUit1VTNBRUkxOUFmZC9qRVJ2?=
 =?utf-8?B?OGYzVE9sckNIaTV6MVludTROV2hEczVQdXZaTTMxOWR0ejRoeHdScnFHYW0r?=
 =?utf-8?B?VnM4MEZibWVnU1RaWThxVGdXcmppa3Arb21MUUtxcllBT3BrYTNGMC84aXF6?=
 =?utf-8?B?RFA0QzQ5SlhNc1JYemRuNnhOV3k0R21kVW5MZGpZNHNmUmRXYy94Z3l6LzRo?=
 =?utf-8?B?bmNKM2xjUStXQlpiaXJkdllOQWdKQ1UxSEdNOFJoKzJIWTk5S1JFRTk0SUk5?=
 =?utf-8?B?V2dzTnVNQWlvVHlwWGIrWkVVc0doQnQ2WW9Pc0YvR2liZ2N6eHd0cGNXS2hq?=
 =?utf-8?B?bm8yam43cFBpWUZ2bjlnRE8vTk4wWEkwVkQ0WldlQ1BiQ0tWbmlMalJnK0pM?=
 =?utf-8?B?V3pUcTJndnAwMGRPZUxyOE5SNS8zUjAyYjBRM3p1K0FUTmhaaUVHMmdyQXND?=
 =?utf-8?Q?BB8g=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3c53b950-8758-459f-e501-08dde5ffc99d
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Aug 2025 06:54:51.8042
 (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: unY4k56JJsv/vKrPHFnzbWe6mm5hJ7ijmOpSLhUvRDQUVWtyMFOf/9BU0nbdiSHs/8l42FseGC9u94XWz8/cUw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB8110

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFRodXJzZGF5LCBBdWd1c3QgMjgsIDIw
MjUgMjozOCBQTQ0KPiBUbzogUGVubnksIFpoZW5nIDxwZW5ueS56aGVuZ0BhbWQuY29tPg0KPiBD
YzogSHVhbmcsIFJheSA8UmF5Lkh1YW5nQGFtZC5jb20+OyBBbnRob255IFBFUkFSRA0KPiA8YW50
aG9ueS5wZXJhcmRAdmF0ZXMudGVjaD47IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNp
dHJpeC5jb20+Ow0KPiBPcnplbCwgTWljaGFsIDxNaWNoYWwuT3J6ZWxAYW1kLmNvbT47IEp1bGll
biBHcmFsbCA8anVsaWVuQHhlbi5vcmc+OyBSb2dlciBQYXUNCj4gTW9ubsOpIDxyb2dlci5wYXVA
Y2l0cml4LmNvbT47IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz47
IHhlbi0NCj4gZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gU3ViamVjdDogUmU6IFtQQVRD
SCB2NyAxMy8xM10geGVuL2NwdWZyZXE6IEFkYXB0IFNFVC9HRVRfQ1BVRlJFUV9DUFBDDQo+IHhl
bl9zeXNjdGxfcG1fb3AgZm9yIGFtZC1jcHBjIGRyaXZlcg0KPg0KPiBPbiAyOC4wOC4yMDI1IDA4
OjM1LCBKYW4gQmV1bGljaCB3cm90ZToNCj4gPiBPbiAyOC4wOC4yMDI1IDA2OjA2LCBQZW5ueSwg
Wmhlbmcgd3JvdGU6DQo+ID4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4gRnJv
bTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPg0KPiA+Pj4gU2VudDogVHVlc2RheSwg
QXVndXN0IDI2LCAyMDI1IDEyOjAzIEFNDQo+ID4+Pg0KPiA+Pj4gT24gMjIuMDguMjAyNSAxMjo1
MiwgUGVubnkgWmhlbmcgd3JvdGU6DQo+ID4+Pj4gLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL3N5
c2N0bC5oDQo+ID4+Pj4gKysrIGIveGVuL2luY2x1ZGUvcHVibGljL3N5c2N0bC5oDQo+ID4+Pj4g
QEAgLTMzNiw4ICszMzYsMTQgQEAgc3RydWN0IHhlbl9vbmRlbWFuZCB7DQo+ID4+Pj4gICAgICB1
aW50MzJfdCB1cF90aHJlc2hvbGQ7DQo+ID4+Pj4gIH07DQo+ID4+Pj4NCj4gPj4+PiArI2RlZmlu
ZSBDUFVGUkVRX1BPTElDWV9VTktOT1dOICAgICAgMA0KPiA+Pj4+ICsjZGVmaW5lIENQVUZSRVFf
UE9MSUNZX1BPV0VSU0FWRSAgICAxDQo+ID4+Pj4gKyNkZWZpbmUgQ1BVRlJFUV9QT0xJQ1lfUEVS
Rk9STUFOQ0UgIDINCj4gPj4+PiArI2RlZmluZSBDUFVGUkVRX1BPTElDWV9PTkRFTUFORCAgICAg
Mw0KPiA+Pj4NCj4gPj4+IFdpdGhvdXQgWEVOXyBwcmVmaXhlcyB0aGV5IHNob3VsZG4ndCBhcHBl
YXIgaW4gYSBwdWJsaWMgaGVhZGVyLiBCdXQNCj4gPj4+IGRvIHdlIG5lZWQgLi4uDQo+ID4+Pg0K
PiA+Pj4+ICBzdHJ1Y3QgeGVuX2dldF9jcHBjX3BhcmEgew0KPiA+Pj4+ICAgICAgLyogT1VUICov
DQo+ID4+Pj4gKyAgICB1aW50MzJfdCBwb2xpY3k7IC8qIENQVUZSRVFfUE9MSUNZX3h4eCAqLw0K
PiA+Pj4NCj4gPj4+IC4uLiB0aGUgbmV3IGZpZWxkIGF0IGFsbD8gQ2FuJ3QgeW91IHN5bnRoZXNp
emUgdGhlIGtpbmQtb2YtZ292ZXJub3INCj4gPj4+IGludG8gc3RydWN0IHhlbl9nZXRfY3B1ZnJl
cV9wYXJhJ3MgcmVzcGVjdGl2ZSBmaWVsZD8gWW91IGludm9rZSBib3RoDQo+ID4+PiBzdWItb3Bz
IGZyb20geGVucG0gbm93IGFueXdheSAuLi4NCj4gPj4+DQo+ID4+DQo+ID4+IE1heWJlIEkgY291
bGQgYm9ycm93IGdvdmVybm9yIGZpZWxkIHRvIGluZGljYXRlIHBvbGljeSBpbmZvLCBsaWtlIHRo
ZSBmb2xsb3dpbmcgaW4NCj4gcHJpbnRfY3B1ZnJlcV9wYXJhKCksIHRoZW4gd2UgZG9uJ3QgbmVl
ZCB0byBhZGQgdGhlIG5ldyBmaWxlZCAicG9saWN5Ig0KPiA+PiBgYGANCj4gPj4gKyAgICAvKiBU
cmFuc2xhdGUgZ292ZXJub3IgaW5mbyB0byBwb2xpY3kgaW5mbyBpbiBDUFBDIGFjdGl2ZSBtb2Rl
ICovDQo+ID4+ICsgICAgaWYgKCBpc19jcHBjX2FjdGl2ZSApDQo+ID4+ICsgICAgew0KPiA+PiAr
ICAgICAgICBpZiAoICFzdHJuY21wKHBfY3B1ZnJlcS0+dS5zLnNjYWxpbmdfZ292ZXJub3IsDQo+
ID4+ICsgICAgICAgICAgICAgICAgICAgICAgIm9uZGVtYW5kIiwgQ1BVRlJFUV9OQU1FX0xFTikg
KQ0KPiA+PiArICAgICAgICAgICAgcHJpbnRmKCJjcHBjIHBvbGljeSAgICAgICAgICAgOiBvbmRl
bWFuZFxuIik7DQo+ID4+ICsgICAgICAgIGVsc2UgaWYgKCAhc3RybmNtcChwX2NwdWZyZXEtPnUu
cy5zY2FsaW5nX2dvdmVybm9yLA0KPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgInBl
cmZvcm1hbmNlIiwgQ1BVRlJFUV9OQU1FX0xFTikgKQ0KPiA+PiArICAgICAgICAgICAgcHJpbnRm
KCJjcHBjIHBvbGljeSAgICAgICAgICAgOiBwZXJmb3JtYW5jZVxuIik7DQo+ID4+ICsNCj4gPj4g
KyAgICAgICAgZWxzZSBpZiAoICFzdHJuY21wKHBfY3B1ZnJlcS0+dS5zLnNjYWxpbmdfZ292ZXJu
b3IsDQo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAicG93ZXJzYXZlIiwgQ1BVRlJF
UV9OQU1FX0xFTikgKQ0KPiA+PiArICAgICAgICAgICAgcHJpbnRmKCJjcHBjIHBvbGljeSAgICAg
ICAgICAgOiBwb3dlcnNhdmVcbiIpOw0KPiA+PiArICAgICAgICBlbHNlDQo+ID4+ICsgICAgICAg
ICAgICBwcmludGYoImNwcGMgcG9saWN5ICAgICAgICAgICA6IHVua25vd25cbiIpOw0KPiA+PiAr
ICAgIH0NCj4gPj4gKw0KPiA+PiBgYGANCj4gPg0KPiA+IFNvbWV0aGluZyBsaWtlIHRoaXMgaXMg
d2hhdCBJIHdhcyB0aGlua2luZyBvZiwgeWVzLg0KPg0KPiBBbGJlaXQgLSB3aHkgdGhlIGNvbXBs
aWNhdGVkIGlmL2Vsc2Ugc2VxdWVuY2U/IFdoeSBub3Qgc2ltcGx5IHByaW50IHRoZSBmaWVsZCB0
aGUNCj4gaHlwZXJjYWxsIHJldHVybmVkPw0KPg0KDQp1c2Vyc3BhY2UgZ292ZXJub3IgZG9lc24n
dCBoYXZlIGFjY29yZGluZyBwb2xpY3kuIEkgY291bGQgc2ltcGxpZnkgaXQgdG8NCmBgYA0KICAg
ICAgICBpZiAoICFzdHJuY21wKHBfY3B1ZnJlcS0+dS5zLnNjYWxpbmdfZ292ZXJub3IsDQogICAg
ICAgICAgICAgInVzZXJzcGFjZSIsIENQVUZSRVFfTkFNRV9MRU4pICkNCiAgICAgICAgICAgICAg
ICBwcmludGYoInBvbGljeSAgICAgICAgICAgICAgIDogdW5rbm93blxuIik7DQogICAgICAgIGVs
c2UNCiAgICAgICAgICAgICAgICBwcmludGYoInBvbGljeSAgICAgICAgICAgICAgIDogJXNcbiIs
DQogICAgICAgICAgICAgICAgICAgICAgICAgIHBfY3B1ZnJlcS0+dS5zLnNjYWxpbmdfZ292ZXJu
b3IpOw0KYGBgDQoNCg0KPiBKYW4NCg==


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 06:57:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 06:57:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097603.1451868 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urWa1-0001Ep-H6; Thu, 28 Aug 2025 06:57:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097603.1451868; Thu, 28 Aug 2025 06:57: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 1urWa1-0001Ei-CZ; Thu, 28 Aug 2025 06:57:53 +0000
Received: by outflank-mailman (input) for mailman id 1097603;
 Thu, 28 Aug 2025 06:57:52 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lRvb=3I=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1urWa0-0001Ea-5N
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 06:57:52 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4f4da7b8-83dc-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 08:57:49 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by AS2PR03MB9837.eurprd03.prod.outlook.com (2603:10a6:20b:60a::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.14; Thu, 28 Aug
 2025 06:57:47 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9052.019; Thu, 28 Aug 2025
 06:57: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>
X-Inumbo-ID: 4f4da7b8-83dc-11f0-ae26-e363de0e7a9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=vtN+WICcO+jVbPCki5tHYxUZairXtjtFskdSThW6UFUF/JZ+Rsup2jgDNUn2iJswWfsw03rccueh6vnieUTy9oO0pPPkS+/8s9KnnAoG5GG3oWFypdsF/ud3MGP6zGIs6ulXSZs6Tzk8Rzn5GWf9vXEd1fyUUVcFYaI1/MI48lhIHPxU0VHDexHRsVkutFedisCajCR+53UU8dNsOEMMOVGJCbZphh46vAlfknNWsytGEKkIL/v2kx4F5xdpszV4TuXIxGwudja/xaMki9b4iZzMZZ6KEIaQyfd9y7y5qHX+cSTqn5SkCStfistBfMBV83z/yZG4tDlzkrGFHDN5Rw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=CZsbZ24vS3rG+xfPUBb489470z9KNa3fH6cDTw3lSxc=;
 b=itxa9Um2uoaRo3vyX995vbT7705tSI+AQJ3uejFbygz+j48j+bVjq8FO2kGOpo0F6VI/DMtT6qU6KnYvWD8HxqXAmTfRUgHvfvZE+4RuSL+6tZVLUtTxl9TQf3iaP+hYY2sXGPcfEKGYfch+YdVt2DUUuPnkjMUdSoTZirYENAsFd6MLivtSnLDcomnuoGSBNMLZFgciEaA85PL/LhKFmOcMcvV6RfHCM3XEttYzUHZHFxyCY0AGQ9ktX+jR/bSud15PB7ci6FwFHshHytQm1I3xTlbJFDsloH1cMwKjLWrFAvyzM3iW/dmK+XWgTdcnE8LAbrud9LZQok1F6qms6g==
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=CZsbZ24vS3rG+xfPUBb489470z9KNa3fH6cDTw3lSxc=;
 b=O+qKiXzMTAgUeqOjHI3j1yG0f14dBzpUmRuhQrWPRb3uLRC4dNnUDicumdHxaNcOio6dvvMwfYjzk4MZq2d7RWRw7jAKnulMcvyRPXjZZ9RsfBH8n3ephGh1/2/Q8uPfBV56K+pv/1r5pQL4alY6d9jznOk4HgStzWuTpPzZ7k2brEoSY9xL9w7TfD/DM3IekduZOAe+pX98X9DkzseMSDJztw6Lhz8IlXZ9A+Du5n+fmDc0oUH9vyXM2gXlMzSWPpRg4rYM24KxCGIS+JiQakUBH4Y4PhFApiDBMX5CvZdccTSscq6I2KsmYrPXjpAhszW0lXAB1w0ilaKocOGj4w==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, Nicola Vetrini
	<nicola.vetrini@bugseng.com>, Doug Goldstein <cardoe@cardoe.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, Julien
 Grall <julien@xen.org>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>
Subject: [PATCH v3] misra: add deviation of Rule 17.7
Thread-Topic: [PATCH v3] misra: add deviation of Rule 17.7
Thread-Index: AQHcF+kPfUt2YGXFDECwb77KUjWXzg==
Date: Thu, 28 Aug 2025 06:57:46 +0000
Message-ID:
 <5e4d56c195119b2aed48db8ee85aa283c024ebdd.1756364138.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: GV2PR03MB9572:EE_|AS2PR03MB9837:EE_
x-ms-office365-filtering-correlation-id: efe988ef-71e2-476f-0ed1-08dde6003205
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|7416014|376014|1800799024|42112799006|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?6sRsR8ejCeAhc87YNyEqLr7UYUWtMhsF+3opMqv7yAwZXYLzvDg5zQfRGZ?=
 =?iso-8859-1?Q?yjlFbnYjXXB0W9ZsNI24vrzcOJo218urEYHl+tIddnHh66Jg4Ukx5iKRGw?=
 =?iso-8859-1?Q?ehstfyL9zqZ7GX/55cgxYROzr8BgXczexMkJR1YOnoFPXSWks/ryeboO2R?=
 =?iso-8859-1?Q?DlhGxE9jfWSM7JX7nG0UY+2ME3QKmfsNkzMu1XRL6hb6v3LJE2/jKftaIx?=
 =?iso-8859-1?Q?DCx+uboWg4I5tw/iMtTvVWjc6OoMwjCo4zut8ZyX/1vkXm52gknBMj7Z3a?=
 =?iso-8859-1?Q?B4kc03HPERRTvfbQQ3RxXRAp+3tJpARwT3BFfGuGDQp6GB6PbaYZSW4D0s?=
 =?iso-8859-1?Q?PLmb9oe2vxh6onIgZN9TA+CjNMvmcAk+Y7L3MF+6N1qopemTgc9d6W7Bhh?=
 =?iso-8859-1?Q?GZO+OvNXkKk3vm6mZG85UXzrW1TsOTTKdiH4K9WDKtqHdDiUXQ+sBZh8on?=
 =?iso-8859-1?Q?mHjnR3cpQR8O9y24ixKEvD6JJgt6M1utLYc9+edXlvpR61qtrPeVDP78jj?=
 =?iso-8859-1?Q?AC7WxyaYvaryp5uZKuXEIszGlXU1/7SywbpXVR4pJAKe2jCNxH5OxPyOBr?=
 =?iso-8859-1?Q?0de2RtCDkRIp7nIxX3+ANkU8xpTW9SD8/HttUFBcBrFYc7zC6qLXqZflVK?=
 =?iso-8859-1?Q?wgba+G4WC9KzAEIJhQxwmZmnuhID+XlYTCQZkRpKcNy5QrbT6Oj5O+SChI?=
 =?iso-8859-1?Q?qlfaZ9HhgGmXxHnF2HKxmVrLmZstz6PLjJ78tYOUKOfRdOLOHm9Qq+jMLe?=
 =?iso-8859-1?Q?HXZkpVbm3DALhOAbfupJ6iHog47Wg8mcvuhT8xcFg/XM/VTCt14Y9N8zxO?=
 =?iso-8859-1?Q?2ZPJz7QXkCme2AH23UC6Y6QszLpWE+jQz3lwusUH3etyW5Pk6UxdoRMrlI?=
 =?iso-8859-1?Q?IbcwkY7GNgGWVQ/+LE29F9UIGEfaC/Q27ViWtVCMFhD37KZMKYy9OhYbEa?=
 =?iso-8859-1?Q?A5MwNNAZbrwzXY2crqTibrKRBDtIZPQKi0Gn+fgSxXrIaTUY7GJp92+rNb?=
 =?iso-8859-1?Q?KIHNbfzJ3LUpxDYln3wuGZ7zkFhtyoPmGFtrfqAOqb3CJk0Po0MuWHKynV?=
 =?iso-8859-1?Q?oR4pblbpzS88aLA7VR+7kUJfkPG8MTAhVHSyT/pcni3PqTyxMyJ3bW9OM6?=
 =?iso-8859-1?Q?9fRw7/MHQOoJG2Y7Bbx/5Ar1q78hPkRUm8+LYw6CgoG/3iXR78gByE/KVk?=
 =?iso-8859-1?Q?/9S0YyrvUMgjzYaoNQ3TsIXaM7Tk8Lk+y1hnrQRc944AS82fXUK4KhgAx7?=
 =?iso-8859-1?Q?Rt1zJRHX+Rl3VOH9Noe0yc4aCQdYm0ElHEg28NQpEd/3YKrOrH/tvCUgTf?=
 =?iso-8859-1?Q?Z7k6qPGUQqTW94N0ihmAhFIExTfr8kAaABYoBQjENmlnJvrz1ZDW0GyVqn?=
 =?iso-8859-1?Q?I70RxVLnUYODSl9wYgBtxAa2h37MJUKqfxP2q6VUuXTiT5Z6oOKI6edIeu?=
 =?iso-8859-1?Q?ItXTrxscOTRw9lel4gt/R4S1ZrhcLN2bINF3F9cvI5uGEtET5YNAg5E2dU?=
 =?iso-8859-1?Q?s=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(1800799024)(42112799006)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?iDiEPSijQUvmesOW3NM1DDx2Xn+xfdn7+16eLZHhPLM0MrOwz2EV4MNjnP?=
 =?iso-8859-1?Q?nfPbHc1cHEsS4AXGsVbbA8+uZXRrKyu+kTzpUZE8XpPb+46bXv+lt6YWMw?=
 =?iso-8859-1?Q?cSjjz0/gfVjzybq8nDw3NjKRvp3ftC5np1bFyoJ5/j2nj6dc7r59xZHyEH?=
 =?iso-8859-1?Q?zEvJboIoafpmHBjt/qznZXyugrwC4naJ4zECC5ryc6uQKK/Mn1jsI0x0xQ?=
 =?iso-8859-1?Q?BiVug7n2MAvAN/fib4IpWPcEXpFDsRxgyUtLX3YI2M1lVCHK/i/msIrAcm?=
 =?iso-8859-1?Q?6TcPd0NLigiwd30OHiewDtYvclyVH9c3t4n2KSNuZav0VsfiD262p/8oHw?=
 =?iso-8859-1?Q?MBv4oiGj9WixU7aZqNBIMn30c2LLd1YR0k+xb6KcB4ZtbQC3PrApXk2Fay?=
 =?iso-8859-1?Q?vtLPZWlmUaE1EBdkhox2+mCqgT010Q3to63ZesL69CW+EzuST2/9+A4pBt?=
 =?iso-8859-1?Q?Abu9mXGGPXbRWCfVPFq/Rb2Io1DdPUT2EUUzr8XOq+1+7trCEQGFVnoNoU?=
 =?iso-8859-1?Q?gNXrtHoaBz+78i7RGQHGNaddIsAymoYlBX/8HYK8S8JUHQlJYLUSxPBLOC?=
 =?iso-8859-1?Q?m8qo6V1DwdMy/7Abu5gz9RkkE48EKUjTBWiyS97zcefiEqSJkdm6KTiXSE?=
 =?iso-8859-1?Q?17OPCsubNAtrS2f919VtSwH97ZCa8ZK7JT1RqGNUEu5yu1np3BMtlGYoGf?=
 =?iso-8859-1?Q?unmLuHZlXGzUbbuLpMnqr/l+mNAn+CXth5KVUE0WyJMg9bsy2dwc66wNKM?=
 =?iso-8859-1?Q?xiXo2vLL9jD7clUXTTFcaLmcFVD965wvbpr7WWhzcjs43UAxK/znC+6KBS?=
 =?iso-8859-1?Q?PPrmj7gVgLtjkb8O6pWRQQxdOox77/xgxySMUu6LiC6kRSbMc47dP9mOaL?=
 =?iso-8859-1?Q?LYyjfjGW3ZQw53f8FypRVOj74jh7nVll2ZnpjTw79NxW+4LNkFkGfd+G6V?=
 =?iso-8859-1?Q?PHwrYa5XgpK7Eaz64+LrlG5Kj9OOVDQ8DkFMY2Tu8ge0TUHDWWcoNQ9eJS?=
 =?iso-8859-1?Q?s86BAvaiZZgNU7lHpCLhJhBivRMYw06ACllWUL2bn29oxmLM3cvxLC0tS5?=
 =?iso-8859-1?Q?kUlU0AOKEapauqtsr9ls4E1cqU/s+8XW2J1z1+yFZwddzx8+QmI5qCOMoU?=
 =?iso-8859-1?Q?VHwvSR52AevjCCVoHA8pBbYk3ccgK37UNkzD+I8cTP6A0UbDKdxeKuyakg?=
 =?iso-8859-1?Q?+Rqo2QYwdaWmlj7UB6scfWg9ucTOasqGWBs7sM/iLeuiqH7aJB9gR5A8wr?=
 =?iso-8859-1?Q?M1h3tFWrgN6WUmp8dlhNhyga5pmxPqMooeJ286WECOFgPY6mfRV9dTQOS/?=
 =?iso-8859-1?Q?hzUcm4DzabjONHMXWbsQVHfFCGZqpGH4sc74WkY5Uk3vA5Fio+bNF1Y8aC?=
 =?iso-8859-1?Q?gAvrrHf6sioaN7ULp6G80b/eHR0hBCA8DbfWnMQiXvBvAd0GMEhU/IpZSk?=
 =?iso-8859-1?Q?/6t5Huj2hpherxwD7tDoemVZityYxurvKlfTWE84XGfJZO3NRP2Jkr9Uyb?=
 =?iso-8859-1?Q?zM9nVqTEfbYpDwlqQ5e5n1Y6dUgq4XR4BiimMeb6YlyEVzHqy+JSKcRvsV?=
 =?iso-8859-1?Q?+SqqLzL7esD4trc0v/nhdqDYPHEONC2kybS5wfu4ndCS6+tMtHcEnS5ryy?=
 =?iso-8859-1?Q?mYTlBUmL3MYeNb38iCczyEij5V0Czq9jBxDZL37Tky+LjEL/06CJrwxw?=
 =?iso-8859-1?Q?=3D=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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: efe988ef-71e2-476f-0ed1-08dde6003205
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Aug 2025 06:57:46.9811
 (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: 0IpGfybdlxX2kGu+l76f/pspGmlbHjVwo02T1U5kG8lSnlZkNriADVjbrap1sIj1GLAxl4XODBIUgOpmS9YvnFZt7ZgjmkAzZvKhOQk1mqU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB9837

MISRA C Rule 17.7 states: "The value returned by a function having
non-void return type shall be used."

The functions 'memcpy()', 'memset()', and 'memmove()' return values
primarily for convenience. The core functionality of these functions
(memory manipulation) remains unaffected, and their return values
are generally non-critical and seldom relied upon. Therefore,
violations of this rule due to these functions are deemed safe.

Update 'deviations.rst' file accordingly. No functional changes.

Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
Changes in v3:
- changed the last sentence in wording
- added Nicola's Reviewed-by tag

Link to v2:
https://patchew.org/Xen/812b78119cee801662a31d39b556cb453aa69508.1756192362=
.git.dmytro._5Fprokopchuk1@epam.com/
---
 automation/eclair_analysis/ECLAIR/deviations.ecl | 7 +++++++
 docs/misra/deviations.rst                        | 8 ++++++++
 2 files changed, 15 insertions(+)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/=
eclair_analysis/ECLAIR/deviations.ecl
index 7f3fd35a33..f410eafad6 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -575,6 +575,13 @@ safe."
 -config=3DMC3A2.R17.7,calls+=3D{safe, "any()", "decl(name(__builtin_memcpy=
||__builtin_memmove||__builtin_memset||cpumask_check))"}
 -doc_end
=20
+-doc_begin=3D"The functions 'memcpy()', 'memset()', and 'memmove()' return=
 values primarily for convenience.
+The core functionality of these functions (memory manipulation) remains un=
affected, and their return values
+are generally non-critical and seldom relied upon. Therefore, violations o=
f this rule due to these functions
+are deemed safe."
+-config=3DMC3A2.R17.7,calls+=3D{safe, "any()", "decl(name(memcpy||memset||=
memmove))"}
+-doc_end
+
 #
 # Series 18.
 #
diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
index 2119066531..8e086d989f 100644
--- a/docs/misra/deviations.rst
+++ b/docs/misra/deviations.rst
@@ -576,6 +576,14 @@ Deviations related to MISRA C:2012 Rules:
          - __builtin_memset()
          - cpumask_check()
=20
+   * - R17.7
+     - The functions 'memcpy()', 'memset()', and 'memmove()' return values
+       primarily for convenience. The core functionality of these function=
s
+       (memory manipulation) remains unaffected, and their return values a=
re
+       generally non-critical and seldom relied upon. Therefore, violation=
s
+       of this rule due to these functions are deemed safe.
+     - Tagged as `safe` for ECLAIR.
+
    * - R18.2
      - Subtractions between pointers where at least one of the operand is =
a
        pointer to a symbol defined by the linker are safe.
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 07:03:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 07:03:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097620.1451877 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urWfP-0003Bl-0y; Thu, 28 Aug 2025 07:03:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097620.1451877; Thu, 28 Aug 2025 07:03: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 1urWfO-0003Be-UV; Thu, 28 Aug 2025 07:03:26 +0000
Received: by outflank-mailman (input) for mailman id 1097620;
 Thu, 28 Aug 2025 07:03:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=pYI3=3I=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urWfN-0003B2-Md
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 07:03:25 +0000
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com
 [2a00:1450:4864:20::62c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1653d881-83dd-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 09:03:23 +0200 (CEST)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-afcb78f5df4so92349466b.1
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 00:03:23 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afe73cf6d76sm902478566b.83.2025.08.28.00.03.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 00:03: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>
X-Inumbo-ID: 1653d881-83dd-11f0-ae26-e363de0e7a9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756364603; x=1756969403; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=cQTCE7Z5MB0ik/FmGzrhyVCKK4u+nY66QEhYyl/fWEw=;
        b=apaV/EGYadqnoAbCq4UjE9jQefotkHZFAYsmjjH/vW2tkTJURmYXc/7XZpsgDtRzUp
         gn9jcWYLM0+8LCJh/D5QKgC31UFKqQx0Cmo9FrlukzU/hrZsd7yY3h8YdgJ/vbfIjvkR
         XEKSjd0vS+ghpZYxfi3x+28PPZruTRHKhwiC2Eu0HeYUPY4X3f/Z9ZP5njHXu78whzTL
         IQNbOcm/H3B+Zaniz05QNPrBY78jOKYoVtmplsxW8YaBGudMuRNl0M0Nn8BocFZ3Re7R
         Hyu69qyvTT/ORbTFdrwVR023rvcHArWdpKDEFCQb1rb61qsm6dUTBiR47DPhuM3kw/v2
         IT0Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756364603; x=1756969403;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=cQTCE7Z5MB0ik/FmGzrhyVCKK4u+nY66QEhYyl/fWEw=;
        b=QIFuqBsOhaEF+CbY827s813xh6TO+p4BEhRDUy/I040lWCIV7BD5q9n3ga1U5KsAUx
         B1FN3GGHKqrbOxB4EG+w/fRsZxtPntXc86OxIu+8rqOYkFToK/qLTAfUt4KWQUNU28gn
         /PAwNcoq0la944JDB+fU6K5vCQQJ6outfxqoyVlFETf8MBRDyf9/r1MqIOKMsITG9ARk
         25qeIN5cY61Yuc/Z1DTviXeJvi6VHknR94g5MiKmg2doIfXFMxDJ1i1owG7/pTzQfipK
         6ZGCr+lUhYzt+G4p1VQqURyiUUJqk4VcNBCSyRl36rwUk0Wbj+0PNnROO/ra1q6M1zv7
         8rBw==
X-Forwarded-Encrypted: i=1; AJvYcCWQbrZny4ehlrwmKPmb1Xu9c4GtalfS/NwkA/1E3l7xLXh3RTNJjD74CpClXyC/FivnAA/i0fwxvt8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxkvwhkzZpJDhwGka8a/DotMkB7Wk8COJ02i0QN8R2FQ+A+ZlRg
	5OqacOrV1JjJoBvh8O4EbHaxCJ7aqQuYvTLs9+y1g0pGI2qJ4UslnHpRgOU27GjA7A==
X-Gm-Gg: ASbGncsJqiB+Z/qrZs/pB1uIPav19ZBzTe9uZ+hPsfEXKESBN5ALloJdSKEzZ3JUdtL
	3NLKb0a/G69QjI2+qzC2BExUx2SkamLqbAjfErv6rLZulr0RR9ilAg+EXloKFdHTLeXhanmgvAn
	97zQxf1aRmwtldeUMWqm76tAZoPRBskz/yabGh+v4I1zTEOb5nUac6pp3fSjEE3SwusM1/uUtsu
	RaoBxr4RaQlYx+zo6l9R472yfGWqUufpHao1XjMJOkRgGBMgk+Iq9Vk/R7IB9ufavQZtAowkHzx
	faz1NCXRL9DmvKrNANGT1CvxEMeLL4A5rcya9C1qLgDFeS6NXeOdVgFRSW3PDRKfZbJXBqc2vXL
	/+qYTWtM1xyWXjWa5wkfhEg6lnyfQ719j12e1ky9QzLWwZYefT6dfeMu8t/vTMh3h/Yuij/IJpc
	lLA0p6gd5600YDnHi5fQ==
X-Google-Smtp-Source: AGHT+IGeuWhApvaa9bBlYP3r1M2X2GFsYve3L/UKBlUrxplwTR5jVoM1tpuASK0PObkm9xlbqXbgrQ==
X-Received: by 2002:a17:907:3c91:b0:ae0:c355:2140 with SMTP id a640c23a62f3a-afe295c0d96mr2132240166b.45.1756364602926;
        Thu, 28 Aug 2025 00:03:22 -0700 (PDT)
Message-ID: <89400b8f-0acf-49c6-979a-ecf608ec00d4@suse.com>
Date: Thu, 28 Aug 2025 09:03:21 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 2/3] hvmloader: fix SMBIOS table length checks
To: =?UTF-8?Q?Petr_Bene=C5=A1?= <w1benny@gmail.com>
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: <cover.1753869323.git.w1benny@gmail.com>
 <1f452cde49cd9cfa949affe6061fc628de434e18.1753869323.git.w1benny@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: <1f452cde49cd9cfa949affe6061fc628de434e18.1753869323.git.w1benny@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 30.07.2025 11:56, Petr BeneÅ¡ wrote:
> --- a/tools/firmware/hvmloader/smbios_types.h
> +++ b/tools/firmware/hvmloader/smbios_types.h
> @@ -90,13 +90,13 @@ struct smbios_type_2 {
>      uint8_t product_name_str;
>      uint8_t version_str;
>      uint8_t serial_number_str;
> -    uint8_t asset_tag_str;
> -    uint8_t feature_flags;
> -    uint8_t location_in_chassis_str;
> -    uint16_t chassis_handle;
> -    uint8_t board_type;
> -    uint8_t contained_handle_count;
> -    uint16_t contained_handles[];
> +    uint8_t asset_tag_str;                  /* Optional */
> +    uint8_t feature_flags;                  /* Optional */
> +    uint8_t location_in_chassis_str;        /* Optional */
> +    uint16_t chassis_handle;                /* Optional */
> +    uint8_t board_type;                     /* Optional */
> +    uint8_t contained_handle_count;         /* Optional */
> +    uint16_t contained_handles[];           /* Optional */
>  } __attribute__ ((packed));
>  
>  /* System Enclosure - Contained Elements */
> @@ -118,12 +118,12 @@ struct smbios_type_3 {
>      uint8_t power_supply_state;
>      uint8_t thermal_state;
>      uint8_t security_status;
> -    uint32_t oem_specific;
> -    uint8_t height;
> -    uint8_t number_of_power_cords;
> -    uint8_t contained_element_count;
> -    uint8_t contained_element_length;
> -    struct smbios_contained_element contained_elements[];
> +    uint32_t oem_specific;                  /* Optional */
> +    uint8_t height;                         /* Optional */
> +    uint8_t number_of_power_cords;          /* Optional */
> +    uint8_t contained_element_count;        /* Optional */
> +    uint8_t contained_element_length;       /* Optional */
> +    struct smbios_contained_element contained_elements[]; /* Optional */
>  } __attribute__ ((packed));
>  
>  /* SMBIOS type 4 - Processor Information */
> @@ -252,9 +252,9 @@ struct smbios_type_39 {
>      uint8_t revision_level_str;
>      uint16_t max_capacity;
>      uint16_t characteristics;
> -    uint16_t input_voltage_probe_handle;
> -    uint16_t cooling_device_handle;
> -    uint16_t input_current_probe_handle;
> +    uint16_t input_voltage_probe_handle;    /* Optional */
> +    uint16_t cooling_device_handle;         /* Optional */
> +    uint16_t input_current_probe_handle;    /* Optional */
>  } __attribute__ ((packed));
>  
>  /* SMBIOS type 127 -- End-of-table */

I regret now that I didn't look more closely before offering my ack. May I
ask where these "Optional" (and also the ones in patch 3) are taken from?
While looking at Teddy's patch to bump the version to 2.6 I considered it
necessary to check whether other adjustments (fields becoming non-optional
for example) would be required, and to my surprise and couldn't find proof
of any of the above being optional in 2.4.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 07:06:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 07:06:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097635.1451888 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urWi5-0003m8-EY; Thu, 28 Aug 2025 07:06:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097635.1451888; Thu, 28 Aug 2025 07:06: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 1urWi5-0003m1-Ah; Thu, 28 Aug 2025 07:06:13 +0000
Received: by outflank-mailman (input) for mailman id 1097635;
 Thu, 28 Aug 2025 07:06:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=pYI3=3I=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urWi4-0003lv-7F
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 07:06:12 +0000
Received: from mail-ej1-x631.google.com (mail-ej1-x631.google.com
 [2a00:1450:4864:20::631])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 75702524-83dd-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 09:06:03 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-afcb72d5409so97333066b.0
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 00:06: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
 a640c23a62f3a-afe91744bcesm682110466b.81.2025.08.28.00.06.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 00:06: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>
X-Inumbo-ID: 75702524-83dd-11f0-aeb2-fb57b961d000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756364762; x=1756969562; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=KyATRfxTFTaic50PhjktpwSqtLAZL7ebszpPG7VAP5o=;
        b=QEBj6bJFX4ZNMarDjsY0Scl5KYfjODLRwHSl6TI0ENgSFfUzAiMUq/eyokAjDV9/so
         9CjlxGmVuIujynOp1hoGZ1yJdsZOl147y3SK+9HUpZZLhI2xujexWb6jCEMEn4HYVUxb
         arLtafU53lLVhPi87vV97cvMUz5s8xNg5vWRQxgyxdA/b15RyjSD76XJGzePNtKuDV9k
         cfLa65asDIzC+n4J/wutMvaM4+/1834brJpvIfpTWlAHvg/O9r/llO5h74zMiSbS4HSx
         Vux551xSISBPnwnDj+dJxZxMY6Xuot3YEiFr1Cn89EQ+sP6quXjPgDXmq4Sr+zo3q+tO
         sW0g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756364762; x=1756969562;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=KyATRfxTFTaic50PhjktpwSqtLAZL7ebszpPG7VAP5o=;
        b=QiTk+uPmsphX19t2XwN67oDm2jzy9azyiDkc3rKXeq4naFEfqK/GB8hDL0+Emt9JrG
         Juur4gTGNbNZwqIx8oKCMkTAoCVAwJRf6l/RWW5FmiejLgGRwVkQE/FyKQSEJNUetYYk
         pjmASiTm0YeQ4tcTOrM9Ks+nZdOQjcCnsHymon5gyaRzjl5YBxHmyonXz5fKT71q7XOU
         41XjD5kyX7H56ei/GXLv+zidmHfCjCmZwlnw+Mkyp3c+k5OPG6L0PAXLSNwl30GbV5sq
         uZXomJXpNXpuLNQdMsgU3Fgt4O19j2PcRDxLE+yf+u138c8huguVgBaRELovIpEckamt
         Ohnw==
X-Forwarded-Encrypted: i=1; AJvYcCUlqR8KeNsbAo1JylfJ4DNwC7hUw5Mreqh6SVSE6xFHnK0MgvaXd6j16NdHhOAUg3VNBJ2KDEj6xgk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyZ4E3+krQyLHz1Sn7A16IYBr+my3UlYKPbF5Lr5wPH1XgcVPG3
	Igo71MLAyhyZT3lRYMtZWepNlR9pYBhA9UeKV2HLMpXP9cmseoCUL1nmzuvXiuMYoQ==
X-Gm-Gg: ASbGnctijojMERmG8/IYZhEutYxtOk4kMWnrEZzR5NdkLNbHRHdR24v71jCh9HVQYLW
	jXQKQ7JWi7LuSAD5t5w5FrSiWSjc9kQOhH2byUDtIsgi1kfma9mBk9WBPA1t4P/Cvv5ea42edxK
	uq2gezgJL+1Jr3zyIH0JdRM250dWKKZ3HvH7OaRXU9TMqCuECxSy2FbuAMJ9QrfBdcX76Lbwu6R
	VqlHo9s2G4UyrQvCrNKhYr9Sys4kp5k4JWkk7MtHYKRH12kPXn2Om2uFHfo/wnGmv9rMFyAI4XI
	n4iGasAqvIpAxpiDfYFT54Rj2RtpmyONOpQfQvKD7wB1J2vIvuakwC4982x5kHaqDGyS9hQW7HC
	LAthB+xY1Zq0DvdUvag91l/3PnlVeKXv6O04g5bwjdoMIdFMITHTObDRom05viwGptR1QghiDFj
	azkm/BmOs=
X-Google-Smtp-Source: AGHT+IG86qDfFCS95HLsvV9+dBDsWykmZ7eT0R/UpJw1eK3sEO3lsRUMNj4dGuaFRw4KBvji0IrJ4g==
X-Received: by 2002:a17:907:6eab:b0:afe:ef8a:ac69 with SMTP id a640c23a62f3a-afeef8b9573mr48925466b.43.1756364762378;
        Thu, 28 Aug 2025 00:06:02 -0700 (PDT)
Message-ID: <0e47cfed-75e6-4cd3-8ee2-ed8ea000a376@suse.com>
Date: Thu, 28 Aug 2025 09:06:01 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] hvmloader: Update to SMBIOS 2.6
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>,
 Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <b569a298a6270ae04eaf433f7de9ce1f3e248e5f.1755870287.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: <b569a298a6270ae04eaf433f7de9ce1f3e248e5f.1755870287.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.08.2025 15:47, Teddy Astie wrote:
> Currently, hvmloader uses SMBIOS 2.4, however, when using OVMF, the
> SMBIOS is patched to 2.8, which has clarified the UUID format (as GUID).
> 
> In Linux, if the SMBIOS version is >= 2.6, the GUID format is used, else
> (undefined as per SMBIOS spec), big endian is used (used by Xen). Therefore,
> you have a endian mismatch causing the UUIDs to mismatch in the guest.
> 
> $ cat /sys/hypervisor/uuid
> e865e63f-3d30-4f0b-83e0-8fdfc1e30eb7
> $ cat /sys/devices/virtual/dmi/id/product_uuid
> 3fe665e8-303d-0b4f-83e0-8fdfc1e30eb7
> $ cat /sys/devices/virtual/dmi/id/product_serial
> e865e63f-3d30-4f0b-83e0-8fdfc1e30eb7
> 
> This patch updates the SMBIOS version from 2.4 to 2.6 and fixup the UUID
> written in the table; which effectively fix this endianness mismatch with
> OVMF; while the UUID displayed by Linux is still the same for SeaBIOS.

To update to 2.6, fields new in 2.6 (compared to 2.4) need adding to the
various structures. First example I ran into is type 4, gaining 5 new
fields in 2.5.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 07:07:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 07:07:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097644.1451896 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urWjT-0004IY-Mu; Thu, 28 Aug 2025 07:07:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097644.1451896; Thu, 28 Aug 2025 07:07: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 1urWjT-0004IR-Jv; Thu, 28 Aug 2025 07:07:39 +0000
Received: by outflank-mailman (input) for mailman id 1097644;
 Thu, 28 Aug 2025 07:07:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=pYI3=3I=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urWjR-0004IJ-Ha
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 07:07:37 +0000
Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com
 [2a00:1450:4864:20::52b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ac7bf9cb-83dd-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 09:07:35 +0200 (CEST)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-61c26f3cf0dso1026786a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 00:07: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
 4fb4d7f45d1cf-61ceaf6ec7bsm58887a12.17.2025.08.28.00.07.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 00:07: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>
X-Inumbo-ID: ac7bf9cb-83dd-11f0-ae26-e363de0e7a9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756364855; x=1756969655; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=m42sx7qU7u6WWcPc/suLWzmTZmdMTViFYKj3+YjUiPQ=;
        b=BcsGD7Usd5CspMUpSW5brrpheNfmEmrSb3T4wJGwXKYuphNLuAyHh5ZxJJ3JkDjtIV
         +q/HoWDanW87uHwM0Zoi0sg5aMjp8ErQibVTKX1xPMemU1Ru2ovP7NDmNkePq//Iq46k
         Pwfm8ZutfXpowS0s1d+WQgwNqhccK+KiQ2pguptGvrGIW+lCqn3T2j4dBdg4f8iJeUel
         FGL2bPAKopaAAJdecsAGgX5RYOUEggRXLz13J1ht00DrVyo4h/vgJ6GGh0JJgTJHuskv
         AnZV/aIFCxyiewgxQ0g1K7KMBrC1im4i8RxST6CxW29lSYV/9w9uYwvN3aXFSwVGsWm5
         DHsQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756364855; x=1756969655;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=m42sx7qU7u6WWcPc/suLWzmTZmdMTViFYKj3+YjUiPQ=;
        b=kif3GdDn9AsJiVKpfHN6KKaje39HITiaJ6YYpGgfcwa1j0avC5A7qWKJjxJWhu3Ur9
         89GpKwYQfXrVOlpXvQrEsadOU2d7HIZnf4NGtJXnIcDMmYCEUfyJNoDsx206LkGn9mVY
         9tGICVRqiFEvJ4IKKG+wcE1b14QZLGfFAKQIbKlUbDIIVPBrnOnaHiSvFeKYPdWYmmiM
         JweXM6mHPwPV/5dXomoWTBWpIaiMtHLnU1CPIaEdoneHln+rB3BqpppWMvJ3dmwSpSEb
         CX1XvaM1oh3P8c1luJnoGTQisM+1ax6BWXa1uk6RZHIKCE1M9pErB4c63PElGAGXZ28a
         pnIw==
X-Forwarded-Encrypted: i=1; AJvYcCXOTv1WRjx3gEjJvu7XEESUNExwVu5Zn14mp6g/HIdjQU7be4kjm/B4TiMv4cOG0k3CN7m6X2rm9pw=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz0vZ/u3FRoMRM6FiPVMptlViaYeO1xQ05u4wggO2MtrJF617bL
	6+/F+catq/DO085urliloP5Hna/EgAgP5wXMRtIm/WOkBWtiJQ92Qy+nSwdWDaHFtw==
X-Gm-Gg: ASbGncvx2qrEhT/POQvl+pISPIbfqO3UkzO0Fx6i+2QAIiB+2ILqv+pE4UOg3OdPSdy
	AMQ9aFS4yZDIeF4t0TVatFJkqx9+xBmNZ0YOmHgd8x0D4GjbubjO2vd+R3nClT02EL1JoUSOp7P
	CMvmJCugNKhsYfWVRrlYA+p36WMOzFnrulcLbQyODvGdynbf03RH9KIAkM+WYi0ShVcjz6YsPRt
	LXGBIL9SQSu9Ad3iv/IW2TDfUjFw2srpmeU61HnZrPhgWuSuMjEhQQNvODPK0eOU0YpyeFw2Alp
	PpkU9dje3/0VjcnOcwfEri+gL7Hr8LitdYu/SjYlnHtmlmRkLVYWSwui4qGHQ3uGb9pTRAxNLGU
	FWyp9MSOrtAXjp6LqbmUDCVSeNiRbkVK/mrwFcvnp22Q7mNxdHNb1txyQPs2ItnCbD2sEQ4Ecc6
	52uoa43qM=
X-Google-Smtp-Source: AGHT+IHzWo8V14hZvbSK7dIKnSoUmXiI4Nq+33hnLBA6Gmrhltk1UiaCloTfyw3E1buUdiAY8sEBOg==
X-Received: by 2002:a05:6402:26d0:b0:61c:5474:ffbf with SMTP id 4fb4d7f45d1cf-61c5474ffdamr12248127a12.33.1756364854855;
        Thu, 28 Aug 2025 00:07:34 -0700 (PDT)
Message-ID: <1901e764-9725-4e9e-895a-54c704473510@suse.com>
Date: Thu, 28 Aug 2025 09:07:33 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] hvmloader: Update to SMBIOS 2.6
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <b569a298a6270ae04eaf433f7de9ce1f3e248e5f.1755870287.git.teddy.astie@vates.tech>
 <6e9b7b96-a506-40ed-95b6-6ad00ba9a27a@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: <6e9b7b96-a506-40ed-95b6-6ad00ba9a27a@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 27.08.2025 19:47, Andrew Cooper wrote:
> On 22/08/2025 2:47 pm, Teddy Astie wrote:
>> Currently, hvmloader uses SMBIOS 2.4, however, when using OVMF, the
>> SMBIOS is patched to 2.8, which has clarified the UUID format (as GUID).
>>
>> In Linux, if the SMBIOS version is >= 2.6, the GUID format is used, else
>> (undefined as per SMBIOS spec), big endian is used (used by Xen). Therefore,
>> you have a endian mismatch causing the UUIDs to mismatch in the guest.
>>
>> $ cat /sys/hypervisor/uuid
>> e865e63f-3d30-4f0b-83e0-8fdfc1e30eb7
>> $ cat /sys/devices/virtual/dmi/id/product_uuid
>> 3fe665e8-303d-0b4f-83e0-8fdfc1e30eb7
>> $ cat /sys/devices/virtual/dmi/id/product_serial
>> e865e63f-3d30-4f0b-83e0-8fdfc1e30eb7
>>
>> This patch updates the SMBIOS version from 2.4 to 2.6 and fixup the UUID
>> written in the table; which effectively fix this endianness mismatch with
>> OVMF; while the UUID displayed by Linux is still the same for SeaBIOS.
>>
>> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
>> ---
>> This effectively changes the UUID seen with UEFI guests as it was
>> actually inconsistent with SeaBIOS and SMBIOS expectations.
>> ---
> 
> I agree this is a real bug and needs fixing.

Hmm, I didn't realize this is a bug, and hence put the patch off as 4.22
material. If there is a bug being fixed: Teddy, please add a Fixes: tag.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 07:09:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 07:09:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097657.1451907 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urWkt-0004tb-64; Thu, 28 Aug 2025 07:09:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097657.1451907; Thu, 28 Aug 2025 07: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 1urWkt-0004tU-2k; Thu, 28 Aug 2025 07:09:07 +0000
Received: by outflank-mailman (input) for mailman id 1097657;
 Thu, 28 Aug 2025 07:09:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=pYI3=3I=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urWkr-0004tI-VP
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 07:09:05 +0000
Received: from mail-ed1-x531.google.com (mail-ed1-x531.google.com
 [2a00:1450:4864:20::531])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e1f792dd-83dd-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 09:09:05 +0200 (CEST)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-6188b72b7caso667607a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 00:09: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
 4fb4d7f45d1cf-61cbabf816dsm2296032a12.21.2025.08.28.00.09.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 00:09: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>
X-Inumbo-ID: e1f792dd-83dd-11f0-aeb2-fb57b961d000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756364944; x=1756969744; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=cV3Q76bXg7MihJiyAIy5mzVA4fG0oZeVyeuLPus4FRg=;
        b=KMEqQB/0xe1VUEBGQtIZaWQrLt/DWZP9JCVPGhrisS5+Kt3AYR1KY5FKMxJaxWfAL0
         KB/2FxSujFXzeDRpU30qGY8aRKIu6EjRyTd9DPABIoAZ5jE+fgv34MjzQykwk2U/9HAg
         xTCB1wq06lSyI0WtNr003qVgh1I4HPMiioswIypeKxQrLjEXYIt6YnMCl6T6kZxt+qz7
         Mi6IqWb44FdpdrXlhwNqg3DWo44ndVE/h6Cq5RSiWGHyIQOz1E68hFHPAPcg8yTnzd7C
         p40+oipmZifZ3Y1xotmyo48j3PF8JCijZC0SC/ktFADZXoaP86d0tK0gl2TLwb6OL1P/
         awVw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756364944; x=1756969744;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=cV3Q76bXg7MihJiyAIy5mzVA4fG0oZeVyeuLPus4FRg=;
        b=bhHquESTw8HV+ww5FnUQklueVtPi2udZewK9ucQxltuGuSZzvAoGVSm/XnGhqRiWoJ
         6CzZ3DOZmQJeMNQQpwvhjqQXpBqfjfvU/vrM0hxGnyWS889Bce7dhW0x6SEvlqx+9Owj
         BnuX38+PAAi5EHJo5fJ5Mi636ok4F5AiV86JvAkfWRqiLd0CdA/F1qVuJwO1+zxqF3nn
         DQw1TXI541BiM3tGqRFmy9R+RHzIWWOoxZG3t6vHCmG8X06HWCS9Y2XZxXYs6IKR7RMT
         shCTwn2u6XYmDr6zk6eJZO9zSJwfCnuwcdc5JqDFvcuz0m2UMcW2vp7/xvGh8S1zMIOV
         8cGw==
X-Forwarded-Encrypted: i=1; AJvYcCX/W307le2+bvdzTetEeOvFLdxsiFejaD3mwS/1v0ofmJzULOC3CaUdFm5DLDWokMkw927ZRXSS+TU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzkJ3QbnnupXnBYFPDrrNA8pwJavLYKajwKqEke00lurQtEa+O2
	pc5Us37J4vNz31xZUN2uCUykRhNNRKhZn9WiMm7q4nMxzYtMgJu2QiGS9kN2CSpflQ==
X-Gm-Gg: ASbGncsO45X3OHfNH3VZ+9OraZ1oNd8mnYPvJgjHz2XFcs+QEfXjTi7aKBA2L6Yafkn
	Xto/Rpj19d6ABzpUcKLAQo/zPtfcl65iayQ6sdfQOMypeF+DEOfksfemt6qownSS/vrIkh9QAmt
	YvTX2D86V3RoDmAenNWntdFaG+Xu86A2qfqj6rGQ5I5Gd5Ah9VN+B55BJYq179CXsI5ON6rKSG0
	pw/8cgLS4/NkTsgtlIPTHNXD/1mOvhFhC4b9DKyhF/74yDPzlD4JnSPfuJxJQWDygbUfZCNSlvG
	D3MKEMvsyZJDqXm+FXelFE7DK1r8Qg8W8RjSfSsaCE6k8r/KIh0+l532zOF9wCxfEIwYe5u7y/k
	Qj/dUyFpqYpfbY8VDNI+evI3Y0cjmNamYAuZqDgtBkL5ekJhZVPeD/dxlyadefjipwTv1B1CEjq
	UnNjoKJBE=
X-Google-Smtp-Source: AGHT+IFBOMhj8Vhaz4m6cMWDktDd2yqXSfqjKCtNLcF5MQ358B0jCJGZPJScWl6VlgDjRdBr2Ehcaw==
X-Received: by 2002:a05:6402:1e96:b0:61c:b798:a14 with SMTP id 4fb4d7f45d1cf-61cb7980c01mr3709138a12.36.1756364944447;
        Thu, 28 Aug 2025 00:09:04 -0700 (PDT)
Message-ID: <8d591b74-5ff0-451a-b8ca-a8c71c0e2871@suse.com>
Date: Thu, 28 Aug 2025 09:09:03 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 13/13] xen/cpufreq: Adapt SET/GET_CPUFREQ_CPPC
 xen_sysctl_pm_op for amd-cppc driver
To: "Penny, Zheng" <penny.zheng@amd.com>
Cc: "Huang, Ray" <Ray.Huang@amd.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 "Orzel, Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <20250822105218.3601273-1-Penny.Zheng@amd.com>
 <20250822105218.3601273-14-Penny.Zheng@amd.com>
 <f27c17e6-8c88-42f3-b0e2-874aa02597c5@suse.com>
 <DM4PR12MB8451CFF93199B96578D96F88E13BA@DM4PR12MB8451.namprd12.prod.outlook.com>
 <a877ad1b-1628-465b-9b38-dce347ba8ba1@suse.com>
 <fa8f951f-610c-484f-a9c4-9b76b8f399cc@suse.com>
 <DM4PR12MB8451BD022E0150D6D784CDBFE13BA@DM4PR12MB8451.namprd12.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: <DM4PR12MB8451BD022E0150D6D784CDBFE13BA@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 28.08.2025 08:54, Penny, Zheng wrote:
> [Public]
> 
>> -----Original Message-----
>> From: Jan Beulich <jbeulich@suse.com>
>> Sent: Thursday, August 28, 2025 2:38 PM
>> To: Penny, Zheng <penny.zheng@amd.com>
>> Cc: Huang, Ray <Ray.Huang@amd.com>; Anthony PERARD
>> <anthony.perard@vates.tech>; Andrew Cooper <andrew.cooper3@citrix.com>;
>> Orzel, Michal <Michal.Orzel@amd.com>; Julien Grall <julien@xen.org>; Roger Pau
>> MonnÃ© <roger.pau@citrix.com>; Stefano Stabellini <sstabellini@kernel.org>; xen-
>> devel@lists.xenproject.org
>> Subject: Re: [PATCH v7 13/13] xen/cpufreq: Adapt SET/GET_CPUFREQ_CPPC
>> xen_sysctl_pm_op for amd-cppc driver
>>
>> On 28.08.2025 08:35, Jan Beulich wrote:
>>> On 28.08.2025 06:06, Penny, Zheng wrote:
>>>>> -----Original Message-----
>>>>> From: Jan Beulich <jbeulich@suse.com>
>>>>> Sent: Tuesday, August 26, 2025 12:03 AM
>>>>>
>>>>> On 22.08.2025 12:52, Penny Zheng wrote:
>>>>>> --- a/xen/include/public/sysctl.h
>>>>>> +++ b/xen/include/public/sysctl.h
>>>>>> @@ -336,8 +336,14 @@ struct xen_ondemand {
>>>>>>      uint32_t up_threshold;
>>>>>>  };
>>>>>>
>>>>>> +#define CPUFREQ_POLICY_UNKNOWN      0
>>>>>> +#define CPUFREQ_POLICY_POWERSAVE    1
>>>>>> +#define CPUFREQ_POLICY_PERFORMANCE  2
>>>>>> +#define CPUFREQ_POLICY_ONDEMAND     3
>>>>>
>>>>> Without XEN_ prefixes they shouldn't appear in a public header. But
>>>>> do we need ...
>>>>>
>>>>>>  struct xen_get_cppc_para {
>>>>>>      /* OUT */
>>>>>> +    uint32_t policy; /* CPUFREQ_POLICY_xxx */
>>>>>
>>>>> ... the new field at all? Can't you synthesize the kind-of-governor
>>>>> into struct xen_get_cpufreq_para's respective field? You invoke both
>>>>> sub-ops from xenpm now anyway ...
>>>>>
>>>>
>>>> Maybe I could borrow governor field to indicate policy info, like the following in
>> print_cpufreq_para(), then we don't need to add the new filed "policy"
>>>> ```
>>>> +    /* Translate governor info to policy info in CPPC active mode */
>>>> +    if ( is_cppc_active )
>>>> +    {
>>>> +        if ( !strncmp(p_cpufreq->u.s.scaling_governor,
>>>> +                      "ondemand", CPUFREQ_NAME_LEN) )
>>>> +            printf("cppc policy           : ondemand\n");
>>>> +        else if ( !strncmp(p_cpufreq->u.s.scaling_governor,
>>>> +                           "performance", CPUFREQ_NAME_LEN) )
>>>> +            printf("cppc policy           : performance\n");
>>>> +
>>>> +        else if ( !strncmp(p_cpufreq->u.s.scaling_governor,
>>>> +                           "powersave", CPUFREQ_NAME_LEN) )
>>>> +            printf("cppc policy           : powersave\n");
>>>> +        else
>>>> +            printf("cppc policy           : unknown\n");
>>>> +    }
>>>> +
>>>> ```
>>>
>>> Something like this is what I was thinking of, yes.
>>
>> Albeit - why the complicated if/else sequence? Why not simply print the field the
>> hypercall returned?
> 
> userspace governor doesn't have according policy. I could simplify it to
> ```
>         if ( !strncmp(p_cpufreq->u.s.scaling_governor,
>              "userspace", CPUFREQ_NAME_LEN) )
>                 printf("policy               : unknown\n");
>         else
>                 printf("policy               : %s\n",
>                           p_cpufreq->u.s.scaling_governor);
> ```

But the hypervisor shouldn't report back "userspace" when the CPPC driver
is in use. ANd I think the tool is okay to trust the hypervisor.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 07:29:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 07:29:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097679.1451917 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urX43-0008Am-NF; Thu, 28 Aug 2025 07:28:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097679.1451917; Thu, 28 Aug 2025 07:28: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 1urX43-0008Af-K8; Thu, 28 Aug 2025 07:28:55 +0000
Received: by outflank-mailman (input) for mailman id 1097679;
 Thu, 28 Aug 2025 07:28:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=pYI3=3I=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urX42-0008AZ-Rs
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 07:28:54 +0000
Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com
 [2a00:1450:4864:20::532])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a65e58af-83e0-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 09:28:53 +0200 (CEST)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-61c4f73cf20so1115404a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 00:28:53 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-61ceaf6ec7bsm90774a12.17.2025.08.28.00.28.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 00:28: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>
X-Inumbo-ID: a65e58af-83e0-11f0-aeb2-fb57b961d000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756366133; x=1756970933; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=YzcA84XKtwet83OL92pxWRFd0zZdBBIDsiQhHJpx8iw=;
        b=fohVFhYgJPznWUC9EyrlCLqjFlsd1dzY2ObryjyORw2hcgteSIGDaeZOSN1wumm+Wq
         /ErQozSajzMsfdW5NWnSUzNF9DJZj0ctss8E3V004wftS8XwET76gx6hTNft09vs+hhz
         1BMpkmWaQ/pr597aZuBBKDjrW3fs27dRrmPq+uLwO4Wh9x2iuoxz0zgKHmap3op0qhEE
         eKNrUwpnvWanc7hcqz1ee475vz+42mNO34mvUolqqvgi12GJy4QRv1Yc8qjIjKReTpi0
         0Od21nyU5ffwvbzN7Y3XWhHUvPWYcadUJEa0/Sj5T9nEz5LIJy9B9rSzhB5gkiravStK
         g+Ow==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756366133; x=1756970933;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YzcA84XKtwet83OL92pxWRFd0zZdBBIDsiQhHJpx8iw=;
        b=Zvume2XOrC85sP8zlfImzglWsl6tFczJghMLb1vBIIqqEbBAS78Kel8XhAfUkvwsJo
         HNYfoiDzwo6anMFAHeyqVcmoyDON1wVmSCYLyfZzthZREJOnsjTJvbIhnz0xgkyAA9ZV
         JP2vXOem7jVXdKpu3hVpukfsx+pnwFXp5tYNFgM07Lm1NOFp6RpZBDGZxTRMMIvBaIL4
         e3raRIf8UeYiRfgYrADICyyoJ4h3dBlHUpmvymRhROkxP6D2GyT4welRyQy33a4z8Sap
         nyQGto9yz+dzATjc/SpG6HpekhTU1a0iYc3UB8jhGrCnJ4jmQzmh/fM/qPhJwbnLKFUg
         wzXA==
X-Forwarded-Encrypted: i=1; AJvYcCVdy9QvYx/jQSL2IqeD4PSuQUcKVVFHsCRSvq6bWssONSlP6SyXArJURQXN29tVipLEzhrIbnAuP5k=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy+Vo5vGXRLNfYh7t6yGyU7STv1Dk2pD+vSA2tjKogSEsFIKWfz
	2Ch1SHN4v5D62Eeu7MYU0VlOUnpSL21RahKzQxlk1q3rFLdAYRJKbWnWlt+3mCz62g==
X-Gm-Gg: ASbGnctXZqz8wJpc1Y3bNKWGD6uTBaVf/MIaL/0vxqzmIxGMbcfH5D3Nj207siNlPBl
	oEhZmLq+eKaN46bl3LCny7xUu6Q7la9SnmocKEnc5M96cTvyJVlxYYoHQcTsNg2Tzd4Z7oQgzL8
	NwsS6VDo3Q1Wx5u7gV7PGGtLLAFM1AhiRI7cWtoWGcrir/dL8IL/F36GkzoYUSw9wjEN2lSKwsn
	yeBPFC3qkvK7/bDQArnfvvgu6P3rCXOFVPQUuSlkanVTmY4N/WqoS7MCOVAo7ES1RTEc4fRl/SZ
	dCjgZQPPVmgE5Cg5sNhjD+0ah/vsSTOxkPhwJKgTZb9FwLkGU8PSXZBtMaOuN+3niV7eQ0VevjZ
	PAPLn4AA0ySHC+Gh4OXbuqFykU2ygInuyfl58BvAtsbjykzMyE9i2kkE523XXadUgeulsPJQ63g
	+BG7/mzAmlVEShZtN/gA==
X-Google-Smtp-Source: AGHT+IH+EZoAXuezwAHh9ufDa4xEsMpn2SA1rDjSdjLbdXaT708kPsGwDJ3ocatL65Ic0FwphF3Ehw==
X-Received: by 2002:a05:6402:44d2:b0:618:19d2:7251 with SMTP id 4fb4d7f45d1cf-61c1b3d8dfdmr16021472a12.10.1756366132978;
        Thu, 28 Aug 2025 00:28:52 -0700 (PDT)
Message-ID: <d934d8a8-93c0-4cb6-baa4-f2aedb719f25@suse.com>
Date: Thu, 28 Aug 2025 09:28:51 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/5] symbols: arrange to know where functions end
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <ceef1876-8759-465c-9a74-309b6b92f773@suse.com>
 <10e116c5-5a62-4abc-a52a-e2ca12118cfe@suse.com>
 <24fd00b5-3053-43ae-8342-887eee94869a@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: <24fd00b5-3053-43ae-8342-887eee94869a@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.08.2025 03:03, Jason Andryuk wrote:
> On 2025-04-02 09:58, Jan Beulich wrote:
>> When determining the symbol for a given address (e.g. for the %pS
>> logging format specifier), so far the size of a symbol (function) was
>> assumed to be everything until the next symbol. There may be gaps
>> though, which would better be recognizable in output (often suggesting
>> something odd is going on).
>>
>> Insert "fake" end symbols in the address table, accompanied by zero-
>> length type/name entries (to keep lookup reasonably close to how it
>> was).
>>
>> Note however that this, with present GNU binutils, won't work for

Btw, I've updated this to say "with GNU binutils prior to 2.45".

>> --- a/xen/tools/symbols.c
>> +++ b/xen/tools/symbols.c
> 
>> @@ -318,24 +334,42 @@ static void write_src(void)
>>   	printf("#else\n");
>>   	output_label("symbols_offsets");
>>   	printf("#endif\n");
>> -	for (i = 0; i < table_cnt; i++) {
>> +	for (i = 0, ends = 0; i < table_cnt; i++) {
>>   		printf("\tPTR\t%#llx - SYMBOLS_ORIGIN\n", table[i].addr);
>> +
>> +		table[i].addr_idx = i + ends;
>> +
>> +		if (!want_symbol_end(i)) {
>> +			/* If there's another symbol at the same address,
>> +			 * propagate this symbol's size if the next one has
>> +			 * no size, or if the next one's size is larger. */
> 
> Why do we want to shrink the next symbol's size?

First (see related post-commit-message remarks): In principle section symbols
could come with a size, too. That would break everything as long as we don't
strip those.

The main reason though is that imo smallest granularity is what we want here,
together with predictability. One symbol with a huge size could cover
multiple other symbols with smaller sizes. We could omit that part of the
change here, but then the processing in the hypervisor would need to change,
to fish out the "best suitable" symbol when dealing with multiple ones at the
same address. Other changes may then also be needed to the tool, to have such
symbols come in a well-defined order (to keep the then-new code in the
hypervisor as simple as possible). Look for "aliased symbol" in
common/symbols.c to see how simplistic respective code is right now.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 07:39:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 07:39:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097708.1451932 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urXE7-0001gX-Mr; Thu, 28 Aug 2025 07:39:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097708.1451932; Thu, 28 Aug 2025 07:39: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 1urXE7-0001gQ-Iz; Thu, 28 Aug 2025 07:39:19 +0000
Received: by outflank-mailman (input) for mailman id 1097708;
 Thu, 28 Aug 2025 07:39:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=tukF=3I=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1urXE6-0001g3-2s
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 07:39:18 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 190e55df-83e2-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 09:39:15 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-45a1b05a59fso4422125e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 00:39:15 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-45b66b6985bsm54411745e9.2.2025.08.28.00.39.14
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 28 Aug 2025 00:39: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>
X-Inumbo-ID: 190e55df-83e2-11f0-ae26-e363de0e7a9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756366755; x=1756971555; 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=p7y1pXqs8Qboeyi6xLd7khLJJ/lz+M3UYVy7YPrYBQ8=;
        b=lH8r4MHVsTZB13qhJfIYIa87A51fUnbvSfpaRjxd2H5PYjC7GJx0qEfF3kkMgPACjh
         8F+s+JHoj1MRmt1xZQBf9LI3OQX5JjRaiWQvURc1C8yBivX0qL18pPN2/dCJ7sRLTMI7
         q0ymWptH4RGQ2n5+OH2JHf4Ven4aDixc0JrDY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756366755; x=1756971555;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=p7y1pXqs8Qboeyi6xLd7khLJJ/lz+M3UYVy7YPrYBQ8=;
        b=TP9MZnUCFe4uNvaO+tDMbIa4WArVMi1D3YVpcnLlsk6NxkMFDApVeCrnhHPylFQqu9
         mRr5pV6yXXmLsyDM0Mm2gLYIFuRqvWCgg7oiWvkAjpOQtmCv9PBKanZLiKGi71yuTJfi
         /jmRk6/7RWwG2v0N7ohNmnuRqVVpIEci9SBxvzAE0k66ZYqV/j6/fVcFJt1rvvhZ70uX
         ihmZyBhQj5VeC+ANJekOqBjkAeahqGN6DtLQZ6uhCkKJ6IMbluqHcYKV/yK+BQ22W6O8
         6ziX/Yu7z1xVeH8vqc0UGyIrN/nHKv3PprYPs4rUauDDk/Q3eHPghvL82RVIdjx45lmD
         CQ2g==
X-Forwarded-Encrypted: i=1; AJvYcCXhJOVRBD0czzQeje5qHhJYsq+vwSc477EydlO8sdLsVSs2Jsy7M48IerHbsMVTKMxemKEziM4H8QE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw3LRVkfhRpOp3ZZVX/42o3v7+BzHAieOPfd6NmGoo1D98FTlpK
	Cl18VnV3cFULYZV6baAbR0zxAT+lDNRiODJAxoheQz8DGylbrCX8Rrw6E/nIXWate1WFR9b4Qdx
	wVcnM
X-Gm-Gg: ASbGncsfgnrULVoAo5VDh9ot9Txmp2MDHYs5JE3wGj9G4HYUa3O00RetBiVU/u+TpAk
	HrkgG+KyLpuDE9xthNCK178S/lXyouevW4lLS777wDLQpNwLfJw2WIxEIZ42EkQOnPeH+rw1Nbg
	jovleZU5j224V6vHyLy0nQHKRCMnpoNfZ2/NTVwEYfW0Uymp7uOfZsmOBnSTrAwkFk5sjV2u1+Y
	/vCUKJj2yFS+i9LSe8PztaoMjMkhmPa+8QHFGU+og7hkJ/xLdygKvM9xnJ0LWEPN0U5E8GoTFNW
	+0eGjKgMsjytYFQ/P2IBmFAfom8WobAZ5ExitHUOZRbD6LvohaO+PDdLXS3xQJTqaotCUdBgk3Z
	nUDSqecQ5+Q6JVaPYKsGeApn4e83eS4ZBrXA5Io6qUQD7AYjKcHCGV7sa+6jUNaHtRr2bAiYbgH
	S1
X-Google-Smtp-Source: AGHT+IF/qerpWkSJLtedLgTezRR9OurNxz0AUUbm/plI/17+q7CkqC5pjccRmdIn+bquSalrWAoNDA==
X-Received: by 2002:a05:600c:1389:b0:455:f59e:fd9b with SMTP id 5b1f17b1804b1-45b517c584cmr219260515e9.24.1756366754927;
        Thu, 28 Aug 2025 00:39:14 -0700 (PDT)
Date: Thu, 28 Aug 2025 09:39:13 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Mark Syms <mark.syms@cloud.com>
Cc: qemu-devel@nongnu.org, xen-devel@lists.xenproject.org,
	sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org
Subject: Re: [PATCH] [xen-block] Return BLKIF_RSP_EOPNOTSUPP for unknown
 operation
Message-ID: <aLAHoR3BtBz9G9Q0@Mac.lan>
References: <20250827160841.351707-1-mark.syms@cloud.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20250827160841.351707-1-mark.syms@cloud.com>

On Wed, Aug 27, 2025 at 05:08:41PM +0100, Mark Syms via wrote:
> Returning BLKIF_RSP_ERROR if an operation is not supoprted does not
> allow the frontend to exercise any discretion on how to handle the
> response and may lead to an operating system crash. As different
> backends may support different feature sets and we might, during a
> migration, switch backends, an in-flight request might be issued (or
> reissued) which is then not supported by this backend.

Linux blkfront at least will empty the ring on resume, and re-process
and queue the requests after having negotiated the (possibly) new set
of features with the backend.  That however doesn't avoid finding
flush requests that might not longer be supported by the new backend,
in which case Linux blkfront will drop such requests.

I assume the fixes done here are not targeted at dealing with a Linux
blkfront?

> Signed-off-by: Mark Syms <mark.syms@cloud.com>
> ---
>  hw/block/dataplane/xen-block.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/hw/block/dataplane/xen-block.c b/hw/block/dataplane/xen-block.c
> index 48c2e315f3..32cf919a97 100644
> --- a/hw/block/dataplane/xen-block.c
> +++ b/hw/block/dataplane/xen-block.c
> @@ -167,7 +167,8 @@ static int xen_block_parse_request(XenBlockRequest *request)
>          return 0;
>      default:
>          error_report("error: unknown operation (%d)", request->req.operation);
> -        goto err;
> +        request->status = BLKIF_RSP_EOPNOTSUPP;
> +        return -1;

The comment in blkif.h contains:

 /* Operation not supported (only happens on barrier writes). */
#define BLKIF_RSP_EOPNOTSUPP  -2

So in principle BLKIF_RSP_EOPNOTSUPP is only to be used as a response
for BLKIF_OP_WRITE_BARRIER or BLKIF_OP_FLUSH_DISKCACHE requests,
however blkback already uses it as a response to unknown request
types (like you propose here).

Would you mind also sending a patch to adjust blkif.h in Xen to remove
the "(only happens on barrier writes)" part of the comment?

Thanks Roger.


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 07:40:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 07:40:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097718.1451942 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urXFJ-000376-0o; Thu, 28 Aug 2025 07:40:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097718.1451942; Thu, 28 Aug 2025 07:40: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 1urXFI-00036z-T1; Thu, 28 Aug 2025 07:40:32 +0000
Received: by outflank-mailman (input) for mailman id 1097718;
 Thu, 28 Aug 2025 07:40:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=pYI3=3I=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urXFG-00036r-R9
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 07:40:30 +0000
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com
 [2a00:1450:4864:20::52a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 44a5f33e-83e2-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 09:40:28 +0200 (CEST)
Received: by mail-ed1-x52a.google.com with SMTP id
 4fb4d7f45d1cf-61cb4370e7bso992549a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 00:40:28 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-61c877af155sm5826108a12.49.2025.08.28.00.40.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 00:40: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>
X-Inumbo-ID: 44a5f33e-83e2-11f0-ae26-e363de0e7a9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756366828; x=1756971628; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=e9pt9kkdReGExvhV9Mq8jmKVRYRzcK3A97jhjVAoMNg=;
        b=PllehoSLJuLoxMlPahEjc+W4ai1Gl7BGLbvpgb7EWWxJA0HTYc9pR6PAUljQgxaCVC
         xv8n2moag6uS8fha27XsMMUV8EhVmQVCnXX9/HywgNTUTk8R6fgxwIXVVySGsPTREJXl
         GazHRt80gecUXXQf7X1TRH+hYpK3J2A2PvSVp+trOF8yQ0X4nkhf4o0hY4kx2leg7npY
         FXGlV2QMJyEUGEtYYkrCuAVkjuepqNiQnESF7nkbXTzQr1FF7f5ksTUhv/Db+jRjSWsM
         Kanaxt6QgG9jzvt30aFJBJWLC4MyWc6J72LEKpXQxuiGamGzVuNkMUTDF8v6evpCW5KU
         0a/w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756366828; x=1756971628;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=e9pt9kkdReGExvhV9Mq8jmKVRYRzcK3A97jhjVAoMNg=;
        b=wliSeGK1wwVq9QKFjKYc3ovEJTa69cUUWPEuAoo9it8JSSjUztwijyHgY18ukVCN7Q
         z0ttVBr7TY3tVk+BrFQjkcBlCTjeYiP1QJaIArcTRJpGZuTUL0cpXhOyh/Bh27AW3Vux
         M5d1+pmGICoZRtjliPCbwW855gt7QIDysqhWQnWBbO3eqXZX1Ayt86xXyh4JDPZ+93Xc
         QInqDKul5eqbmb9cCughbU4WhPM99uLYtFARbgujgMEU15ZrpRgthzEpDzRYygiY/BL+
         2b9sLn3F5HoP86VEIBYruElQPVt+l+OmqoIx10ilKBKjsBEN3h4cWEq4QpwHajYynEng
         rvsw==
X-Forwarded-Encrypted: i=1; AJvYcCVBiE7WhKVMFI6dwf54qRxoC4Ly42YtyxPWdTj90al21RB7N/q8sF2F/sxdIhcgUwPY6S3vIxpKcPc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YytFXETBl/ruuZG2qvZXl1BWcExmL2RblMG0Ygx5AhSmpKYx0KG
	i0cfR/rFPaLcowB9Pt+JH8NpJhrL86qHXmWbLk5nOF4QjYwylRYpx8tVpwJcujIROA==
X-Gm-Gg: ASbGncvm/UQ4Lqy74obBQKgnpAhFpjg0OcTMGCKdrw2vf0vexZ2Yw5Ztg+e+SOIK8kv
	bO9u2OFx/oWWliWK2OmGLvqSQXPJFE8G/cdQdtjaK+sdS0ofWfNa4KJun6cs09T304UxPzJcPgv
	lsNWw2Fw8wOF8LsF/y+OPys9DBHsbs+L4ySWdu12HIa+WZqx+V+YGkgvNU4XYj1gFjh7/c1UgNt
	sEOGBhySGt9rG0NliQS31/BagYoEIhlngAMAgRe/wjnrqp2Bnd4MSJe5LO1p/YSv0LxPm4p99FV
	ul3sNHFcPlYV13JcfcKKd1eYNbv8uJg/xBEn1CnWVI64dj6ZUK3poV+bgJhXbnNpN3NkBrlNRF4
	0TqkcgbhLo+tRLKecY8GtiC13Ut3Hms/S2HqOLBaMfcBh1X8USjubMpP9ES8k5yDpw5/Uh46ni9
	SA+nqWquznkxbk/LoNYQ==
X-Google-Smtp-Source: AGHT+IGWdNFwwBpkq+v/Gndzf0SxwMi1IyeAHvhT9iynrgAZu7Rc1eh1YBLIcNsnD7avvLQVzMKVcQ==
X-Received: by 2002:a05:6402:280c:b0:618:4a41:80b2 with SMTP id 4fb4d7f45d1cf-61c1b70a459mr17840140a12.33.1756366828046;
        Thu, 28 Aug 2025 00:40:28 -0700 (PDT)
Message-ID: <a132f2fe-124b-45ec-9444-42c1840cc29c@suse.com>
Date: Thu, 28 Aug 2025 09:40:26 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v10 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for
 guests
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: Mykola Kvach <mykola_kvach@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1756329091.git.mykola_kvach@epam.com>
 <55ff99acd69f9eaf20f077e6b453b54931b541d4.1756329091.git.mykola_kvach@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <55ff99acd69f9eaf20f077e6b453b54931b541d4.1756329091.git.mykola_kvach@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 27.08.2025 23:21, Mykola Kvach wrote:
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -1349,16 +1349,10 @@ int domain_shutdown(struct domain *d, u8 reason)
>      return 0;
>  }
>  
> -void domain_resume(struct domain *d)
> +static void domain_resume_nopause(struct domain *d)
>  {
>      struct vcpu *v;
>  
> -    /*
> -     * Some code paths assume that shutdown status does not get reset under
> -     * their feet (e.g., some assertions make this assumption).
> -     */
> -    domain_pause(d);
> -
>      spin_lock(&d->shutdown_lock);
>  
>      d->is_shutting_down = d->is_shut_down = 0;
> @@ -1366,13 +1360,40 @@ void domain_resume(struct domain *d)
>  
>      for_each_vcpu ( d, v )
>      {
> +        /*
> +         * No need to conditionally clear _VPF_suspended here:
> +         * - This bit is only set on Arm, and only after a successful suspend.

How likely do you think it is that, if e.g. RISC-V or PPC clone Arm's
code, this comment would then be updated accordingly? IOW I don't think
a justification like this one should be written in such terms.

> +         * - domain_resume_nopause() may also be called from paths other than
> +         *   the suspend/resume flow, such as "soft-reset" actions (e.g.,
> +         *   on_poweroff), as part of the Xenstore control/shutdown protocol.
> +         *   These require guest acknowledgement to complete the operation.

I'm having trouble connecting "require guest acknowledgement" to ...

> +         * So clearing the bit unconditionally is safe.

... the safety of the unconditional clearing.

> +         */
> +        clear_bit(_VPF_suspended, &v->pause_flags);
> +
>          if ( v->paused_for_shutdown )
>              vcpu_unpause(v);
>          v->paused_for_shutdown = 0;
>      }
>  
>      spin_unlock(&d->shutdown_lock);
> +}
>  
> +#ifdef CONFIG_ARM
> +void domain_resume_nopause_helper(struct domain *d)

This is an odd name to use from code meaning to invoke domain_resume_nopause().
Why isn't this called domain_resume_nopause(), and ...

> +{
> +    domain_resume_nopause(d);

... the static function simply _domain_resume_nopause() (in full accordance
to the C standard's naming rules)?

> +}
> +#endif
> +
> +void domain_resume(struct domain *d)
> +{
> +    /*
> +     * Some code paths assume that shutdown status does not get reset under
> +     * their feet (e.g., some assertions make this assumption).
> +     */
> +    domain_pause(d);

As you move the comment - no such assumptions exist when the code path
through domain_resume_nopause_helper() is taken?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 07:52:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 07:52:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097734.1451952 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urXQq-00057W-31; Thu, 28 Aug 2025 07:52:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097734.1451952; Thu, 28 Aug 2025 07:52: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 1urXQq-00057P-0C; Thu, 28 Aug 2025 07:52:28 +0000
Received: by outflank-mailman (input) for mailman id 1097734;
 Thu, 28 Aug 2025 07:52:27 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ityt=3I=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1urXQp-00057J-6k
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 07:52:27 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on2061e.outbound.protection.outlook.com
 [2a01:111:f403:200a::61e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id edce28c0-83e3-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 09:52:24 +0200 (CEST)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 CH0PR12MB8507.namprd12.prod.outlook.com (2603:10b6:610:189::5) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9073.13; Thu, 28 Aug 2025 07:52:14 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d%7]) with mapi id 15.20.9052.019; Thu, 28 Aug 2025
 07:52:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: edce28c0-83e3-11f0-ae26-e363de0e7a9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Bas9Xs8U9spsyO/5/87hZhAVhR4AAxfz6tR3q7oVBABzDQ62Nrr9YKUFiy5X5pxTXEBaYBZbtHWRo9k19HOzpE+oU0uHhL16J8O/lwtwfQ9malMIQNYlJVHJtO2SaxPXRS6CfJtbQq9wx4tQ/HQ4dEaF2kIdU+RGB1tAilDSwTSgfLIan777H5NbkVnp5raR0oaZxw5m9SYDS4jxynPHnLfk13dNvr6MYIMzU+lo9MiiGzNMrlZ8Bwi16re2MOoOOq2pE0ZgBch2gbvm+7IxLVl0KP5G8emdUsIwjS/f5mYbm2UNhIPSOWWAAah84Y2Q6jZrgui75KNaNAFdN1HBaQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=JhOBOTLX6ttaW+KVs+rgnEKj0WR1O2TRaV0AFdt4qU4=;
 b=AkdjYyzORtS9UhzLTxbptjzwsp87K7unu9lJMofBZl3/E+6V76qWy/ABkTlCw5MfZsGFFqGFeYe8c5Utiz0ajnm3hJTFy1u1lRI87KA5klfh87V6zSScLJW3DoKWTFXLR2domRmvpyiNUC/GblfbNDZ+uYQeM+2cTg8nt6S82Un97Z/isPFT2pf3a19uHgmznlDpUQNstwDRGW8gZbTj0evZEhDV+oI9Y3WJI/kfsV2nZnlSNcM1Dymk+7qoIGGlAIZSJqHsa/hCw2nsWUrEQvec87ajM1yIH1/Pq7gimD2aScUqrDLTAtfVNA3jNkDLx4lJ/wuiw3IuxUP0vp1Dvg==
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=JhOBOTLX6ttaW+KVs+rgnEKj0WR1O2TRaV0AFdt4qU4=;
 b=Cz8/lA0fKnoT5gzJ/x6TDsUbddJ4YRBoY4khTe/lepxp/jDI3KHVlxlMzmNLTZVcNnDBg7z8mMPtjja4zMlfKs0QvZwqzHB7xM5ajSnteIbhULhBRdvfSaVEGJmwz3ZlJH9e/zVdKOmGcAuk95kj4oJoMwYVt9T1k1fLey3upp4=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Andrew Cooper <andrew.cooper3@citrix.com>,
	"Orzel, Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Stefano
 Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v7 13/13] xen/cpufreq: Adapt SET/GET_CPUFREQ_CPPC
 xen_sysctl_pm_op for amd-cppc driver
Thread-Topic: [PATCH v7 13/13] xen/cpufreq: Adapt SET/GET_CPUFREQ_CPPC
 xen_sysctl_pm_op for amd-cppc driver
Thread-Index:
 AQHcE1L0WO8OIJho60KGV8JFR/QspLRzjMCAgAJSvzCAAcXZgIAAAHmAgAACEFCAAAa+gIAAC74w
Date: Thu, 28 Aug 2025 07:52:14 +0000
Message-ID:
 <DM4PR12MB84511AC25786F17F2AB2C2ABE13BA@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20250822105218.3601273-1-Penny.Zheng@amd.com>
 <20250822105218.3601273-14-Penny.Zheng@amd.com>
 <f27c17e6-8c88-42f3-b0e2-874aa02597c5@suse.com>
 <DM4PR12MB8451CFF93199B96578D96F88E13BA@DM4PR12MB8451.namprd12.prod.outlook.com>
 <a877ad1b-1628-465b-9b38-dce347ba8ba1@suse.com>
 <fa8f951f-610c-484f-a9c4-9b76b8f399cc@suse.com>
 <DM4PR12MB8451BD022E0150D6D784CDBFE13BA@DM4PR12MB8451.namprd12.prod.outlook.com>
 <8d591b74-5ff0-451a-b8ca-a8c71c0e2871@suse.com>
In-Reply-To: <8d591b74-5ff0-451a-b8ca-a8c71c0e2871@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_0fec2151-cbe0-4586-8a3f-997880a38a28_Enabled=True;MSIP_Label_0fec2151-cbe0-4586-8a3f-997880a38a28_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_0fec2151-cbe0-4586-8a3f-997880a38a28_SetDate=2025-08-28T07:52:07.0000000Z;MSIP_Label_0fec2151-cbe0-4586-8a3f-997880a38a28_Name=Published
 AMD
 Product;MSIP_Label_0fec2151-cbe0-4586-8a3f-997880a38a28_ContentBits=3;MSIP_Label_0fec2151-cbe0-4586-8a3f-997880a38a28_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|CH0PR12MB8507:EE_
x-ms-office365-filtering-correlation-id: 6146a601-282c-4fe0-1cc4-08dde607cd86
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?d01WU3hQZDl1US95R2tlY3I1L250ODFWT2QzeSs0K3RKUjQ1ZmdibmdjcXBT?=
 =?utf-8?B?Ry9xczR4ZnNRSXRtaCtjMGNybUdna1AzNnlBN3MxTEc5bm9OMGVocjlqRkJZ?=
 =?utf-8?B?d25JemZWYTd1VkhlaVpwWGpsREt6NEhNcHg0dHM0SEpaZDJVa2hmSUI2Y0tz?=
 =?utf-8?B?TlZpYWpGakFESjlOT2oxZ0QzMG81UllYYUhadW5MZ0FhdmxPZk4yelpEWm9R?=
 =?utf-8?B?c0tYcXVjUUI1Rkp1Rm5nYmtISndnMitvZzM3UzN0Wnk1bkxNaGRkYTBLREc5?=
 =?utf-8?B?cFpKaHZwek0vUFEzVTZ6bGxLVVd1T0VqU0JmeCtTRTl1M2h6MkxPUjRnWmpP?=
 =?utf-8?B?MlNSek9haGtiZkRTUVJlSTFwZkNTaU9qc25hZTFlTkgyT1g2cW5TS3pJMmhD?=
 =?utf-8?B?aEprNm5GUU9kSUlBSVdzMTBxUktlQmxhMW9selBYQnIxVWpuMEVKVHZlRFhW?=
 =?utf-8?B?Y243MmJTNTVHZk1iWjlEY1R5WklWbUVndUlxb21JK3RzbHEwWUNqTUtGdWxo?=
 =?utf-8?B?TDBVVDZ4bnNuNlhTNHpHT0VRZzcwbzlPUGxiK1dzMXExTk5laEFIR3AvNlIr?=
 =?utf-8?B?dFFIa3BGTzhIbmoyTmtxVHNCNFVId1RsNHJlUklqTkdaSlQ4bjVmUWpzUVFH?=
 =?utf-8?B?MS9uc0lySkdWcjVscVhXeXFlalFwOGZZZDROU1JOTDBLOFd1cnRFUVdLTGpV?=
 =?utf-8?B?QVlWUWxhSkczN3orYWRDSklxNzQ2V3VHZGJmVUUzWkFVWVJmejRYMDE3d2FR?=
 =?utf-8?B?dkRIVnBqTGZFcGh3QXFaZlphemlYUTBuR0RJT25UWkVLcEgvcUo0ZkRkMEdT?=
 =?utf-8?B?OFp4ZTB2MEpWckxQYVk2SUFRaVRPSUhpb3pRNHErNVJjcFBWTVJZTVpZOXE0?=
 =?utf-8?B?QlJ4U2YxcDNGTUxIWm5WMU5kRCt2Vk16VWhKbWNuUUtiN2I5OHo4aHNxOXor?=
 =?utf-8?B?REY1UkdUTUl4QVhKbE5Velc0dkFGVkh3a2h3RXdIUzRidUJuZHRXV251SXMy?=
 =?utf-8?B?YzJxNFRMTG1BemFkNmsrUFlCYzh2ckFrZUdESi9KUGxkYTY2cGFId0MzdDBq?=
 =?utf-8?B?U09nQ3ArcWVMSjJhbU1MUUNoMmVBVGFxM2l1Y29PQm9Ob0ZhVW12RHJ5QTBn?=
 =?utf-8?B?Z0tyaTJJS25ER3FnOHRjWloyRTNKRUtBRFVWL21NWFdSZ0hvYlk4Wnl0cmJK?=
 =?utf-8?B?Tno4RDJza050QWJ6eWRkRkQyWWkrd0ZDTTV4M3M2SWFKNm5WNVAzR0dVbUo3?=
 =?utf-8?B?OEVlTHc3b2hqa3VrY21pOHNkQXJIM3k3TXc4TG5BZ1VjRGhmdVB4UktoMWlp?=
 =?utf-8?B?b1lFMXo5UmwyaFZFbnZCc3ZFb0d0Q2Y5Q3NncW93KzlMU3AxWWdXOHFKYmRN?=
 =?utf-8?B?dFk2RXlBeE9sODFGQ2Nld0tQTUpiVmRRK1o5TEoyUE5qcmxsTlptV3NtZEFr?=
 =?utf-8?B?TG82RWswWHhZaG1CdXFiSzlJMjdweUlLUkh6Mld6NUJQWjZTalIyOUpXSUZX?=
 =?utf-8?B?T2ovY0taQmM5T3d2NlVpcmFRZVV4aHVTT1pnSjh5UFRXYVovM3NoOHF4SzFy?=
 =?utf-8?B?YUNlTnRZK1psZ00rLzhmZEI3V1Q2b0JxbWtRUlNBVEZjSXNpR3JJOENoUC9C?=
 =?utf-8?B?LzBaNFluaHd4ZkgyQytrOWFUbHU2dlRzQi9vU0ErRTJUUUFFUGlDMENsN3BP?=
 =?utf-8?B?ZEgzS2NZeGRMU3R5eTdSVklRNUl1b0tuem5pNTFRU3VKcGJzRG01c3MwMEZW?=
 =?utf-8?B?UzVJK0IybVRVcitqZ3BlUnFWQjRRTzNkWi9Qb2RZckJXRXVnc1R6YjRDVjFE?=
 =?utf-8?B?ZVBONkhrNi9WZ2x5MjFDMlY5ZXBJWmozbWc2ZU8wTzBnMUFMaFRndHI3RzNi?=
 =?utf-8?B?MFcwZ1kxNSttaHk2R013UHdvSGVJVkZYaGttK1pleW5SbTF2SDRxK1NCWCtI?=
 =?utf-8?B?TGh4d3FZVXBoUUR6dHFxMEg0YTJXMTgwS200K1JuYXNpTi9Dam1Va2xSSVhZ?=
 =?utf-8?B?bEJTR1pWc2t3PT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?Umt2T0FnV3ZZTWdWLzYxN0libXFSUmhNN0ltc09lS3QrMUROUmlnK0Q2bm1t?=
 =?utf-8?B?WFJrWXJHV0E0ZzVreERCVzQxUHBHWDEvWEFDbUtKTXl6TkNsZ1RkVWdIREdY?=
 =?utf-8?B?NXQzVGsySUt4WWlsK0ZBdjU2R0xkc01DNXN1YUI4cjZrUmEyamRHaFhQN1Fw?=
 =?utf-8?B?K0FseFRxQjVPaVRERlQ5VTdzNHJqNGJhWURQbGY3UzNYM3d0bjY3NmpVNWdM?=
 =?utf-8?B?T09rbEVrTFplbWJYTDUyaEtMaXk1NzJOM3RhN2hhU1ljeXVJM0tINDhoUnNK?=
 =?utf-8?B?NGdJTk40SzQweXFRRkxUK1dodm1iNFBzQUdTL3B5OWk2dk5EMWkyVmZBSytl?=
 =?utf-8?B?WVhwdW5UZmFscHBTRHBjTGVZMVQxR3RyaEk3dnMyK3BYNk1rTEpkcDJEZFls?=
 =?utf-8?B?eldrZmVOa0Q0VkVhd1c3aXE0SXY5VVVWN2RwYXJabStqc0pKWHI0YU02RU5J?=
 =?utf-8?B?b2tLSEdNQWw3ZjlpZVVZbXVMRGx6amFjaytMeTIwN05Xak43RlMwMUNrMDRz?=
 =?utf-8?B?cXR6WWMxWTBKQTM2NVdSaStLUlZKRWJoc040OEdqdHlGTEYyTnI4MFMza2Ey?=
 =?utf-8?B?QkM0L0lEd1dCN3RrNWtSTGNtMGx2QytmTkhoa1lXdXdhbWNCT0JUa3ZjSmlV?=
 =?utf-8?B?aGRrMVRiSXZWN0VMVVB2TXprS3lnVldQMTlVNjJlWHNwTWp6dWlTaWhJV2Jq?=
 =?utf-8?B?ZkExYWROQWF5djIrOFB6UEJBUDZvcmdvRnFYUDhmeDFwMFliekx4U1UvZzN6?=
 =?utf-8?B?bU5SODBrNXlEaHYvRjluY096cEFCZWJHM2E1QVdINytSaXdxaTJoZ3NTN0V1?=
 =?utf-8?B?OXh4WXY0TjhMSWJkMktUK2JDdnpjc3dWOU5YU3RzZFAydHpOSFFIY0IyMUZo?=
 =?utf-8?B?TW5ES3RMRzJtc2tkVXdpUVhIUDhtbmluVHdrSDVOR1RJTWpyYWttVTJ0anVl?=
 =?utf-8?B?NDc4SmtpSHVtRGtkU0ROWTVwT2hUOTlaa0RoZDYzVDdpWVpGU04wcTBCSFox?=
 =?utf-8?B?MWFwY2FJbW9FUEZzdzcxOFdlQ1N2NEJzYUFIS0N4L1FqU25yS01XdnY3aUMx?=
 =?utf-8?B?ZmZKWDdNQjVHRGxvVkMya3BsTFE0U0ovS3ovL1lUcVppL0VVeTllTmxjYzN3?=
 =?utf-8?B?THdqZFhqd0svR2dPUjF3cWdvMU51c0VDMzlqcmwrSjJUODRDVGVjRmpWTUc3?=
 =?utf-8?B?dXVUYTJ5L0NoTE95UER5TlNCd25MSU9GQkpIaUdnNWkrMDRmdzZ3Vkl4TGkx?=
 =?utf-8?B?ZWVrUlFFUlBFVEJNYWVQSnhpYmxwSU02YmFhd2JBUkpCV3FpWlB0OTNYODZu?=
 =?utf-8?B?Z2h3ZUdqOGJNU2JneHR5SEVnUEoxcjV5ZnVrMmpvaEZqRDgwY3JVRjdJbDBC?=
 =?utf-8?B?akZFZjJRY3Y4cE9BQmw2UFdmTzFQWWFEWGREN2NMMjRTUDFFb3VhMHJPRzNJ?=
 =?utf-8?B?Sjh6QlNuVHY5V2gvV2d4R292MUxLdHU0ZUg4NEJXV3N6d1BzU04yWDBxYy8z?=
 =?utf-8?B?QW83eHhUaFROM3o0dk5sdzNzYmc4Z1ptcjFzYkVuRzloVlJ6YkovbU80NXdj?=
 =?utf-8?B?bmZFWWZYOTZ2eUhKVE12cUhYK1hSS1FzSDZQOXBDZzRUZDVWaHdLNzNjazAz?=
 =?utf-8?B?MkV1NWZ4OGNBT3NhUUw2ZWk5T1JWbVpaRDZQUE1UY3dubDBkc2dlWGxGOVJT?=
 =?utf-8?B?SkZtWm8zbk9ic2FiSGNzNzJoME00OE9wdWkrazRkdWpiR01TR2N4MVVpeUp3?=
 =?utf-8?B?bkJOTkVxbFdtNlJ0am5xY01lV1pTRlkwaVlNVGh3Z0FXc0VxTXp1SWt3TU5r?=
 =?utf-8?B?L2ZTQ0ZWUjc4YUZ4T1BVZndlcEsyOEYvbEMza2RCOHF4b2JIV3FsdUJidkZ6?=
 =?utf-8?B?QVVPdnVRK2FNVW5ydUR0V0F0dzdGZWI1MXd6cnJzY3JjRzRpRE44ankwY2pj?=
 =?utf-8?B?WXhXWjBlUW9SOHNBRVVjR0NuaFZDeXFKWWFzRFNmZDU3am8ydkZ4WkRNYUZp?=
 =?utf-8?B?UGJzV2hENzUwZERMMlp5bzJUdDlGb0ZkZWRLbGJTT1A0Qk8yaUswTUhOSmg4?=
 =?utf-8?B?YU1tcHo1c2p1VTNiQ1lFOUJ5SVZWZmdHQTlzUjdYSEtpbSt2S1I3WGpYUHh3?=
 =?utf-8?Q?tMus=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6146a601-282c-4fe0-1cc4-08dde607cd86
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Aug 2025 07:52:14.3713
 (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: cUYEbVhYLEQMDIPuae7bg3csVIoqtqjGTbSL2aXBvRJvj/3IQ5o9VPiwhK9rEGaazVavXs+Kmf3hSRY0ewccHw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR12MB8507

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFRodXJzZGF5LCBBdWd1c3QgMjgsIDIw
MjUgMzowOSBQTQ0KPiBUbzogUGVubnksIFpoZW5nIDxwZW5ueS56aGVuZ0BhbWQuY29tPg0KPiBD
YzogSHVhbmcsIFJheSA8UmF5Lkh1YW5nQGFtZC5jb20+OyBBbnRob255IFBFUkFSRA0KPiA8YW50
aG9ueS5wZXJhcmRAdmF0ZXMudGVjaD47IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNp
dHJpeC5jb20+Ow0KPiBPcnplbCwgTWljaGFsIDxNaWNoYWwuT3J6ZWxAYW1kLmNvbT47IEp1bGll
biBHcmFsbCA8anVsaWVuQHhlbi5vcmc+OyBSb2dlciBQYXUNCj4gTW9ubsOpIDxyb2dlci5wYXVA
Y2l0cml4LmNvbT47IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz47
IHhlbi0NCj4gZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gU3ViamVjdDogUmU6IFtQQVRD
SCB2NyAxMy8xM10geGVuL2NwdWZyZXE6IEFkYXB0IFNFVC9HRVRfQ1BVRlJFUV9DUFBDDQo+IHhl
bl9zeXNjdGxfcG1fb3AgZm9yIGFtZC1jcHBjIGRyaXZlcg0KPg0KPiBPbiAyOC4wOC4yMDI1IDA4
OjU0LCBQZW5ueSwgWmhlbmcgd3JvdGU6DQo+ID4gW1B1YmxpY10NCj4gPg0KPiA+PiAtLS0tLU9y
aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiBGcm9tOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3Vz
ZS5jb20+DQo+ID4+IFNlbnQ6IFRodXJzZGF5LCBBdWd1c3QgMjgsIDIwMjUgMjozOCBQTQ0KPiA+
PiBUbzogUGVubnksIFpoZW5nIDxwZW5ueS56aGVuZ0BhbWQuY29tPg0KPiA+PiBDYzogSHVhbmcs
IFJheSA8UmF5Lkh1YW5nQGFtZC5jb20+OyBBbnRob255IFBFUkFSRA0KPiA+PiA8YW50aG9ueS5w
ZXJhcmRAdmF0ZXMudGVjaD47IEFuZHJldyBDb29wZXINCj4gPj4gPGFuZHJldy5jb29wZXIzQGNp
dHJpeC5jb20+OyBPcnplbCwgTWljaGFsIDxNaWNoYWwuT3J6ZWxAYW1kLmNvbT47DQo+ID4+IEp1
bGllbiBHcmFsbCA8anVsaWVuQHhlbi5vcmc+OyBSb2dlciBQYXUgTW9ubsOpDQo+ID4+IDxyb2dl
ci5wYXVAY2l0cml4LmNvbT47IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVs
Lm9yZz47DQo+ID4+IHhlbi0gZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gPj4gU3ViamVj
dDogUmU6IFtQQVRDSCB2NyAxMy8xM10geGVuL2NwdWZyZXE6IEFkYXB0DQo+IFNFVC9HRVRfQ1BV
RlJFUV9DUFBDDQo+ID4+IHhlbl9zeXNjdGxfcG1fb3AgZm9yIGFtZC1jcHBjIGRyaXZlcg0KPiA+
Pg0KPiA+PiBPbiAyOC4wOC4yMDI1IDA4OjM1LCBKYW4gQmV1bGljaCB3cm90ZToNCj4gPj4+IE9u
IDI4LjA4LjIwMjUgMDY6MDYsIFBlbm55LCBaaGVuZyB3cm90ZToNCj4gPj4+Pj4gLS0tLS1Pcmln
aW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4+Pj4gRnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1
c2UuY29tPg0KPiA+Pj4+PiBTZW50OiBUdWVzZGF5LCBBdWd1c3QgMjYsIDIwMjUgMTI6MDMgQU0N
Cj4gPj4+Pj4NCj4gPj4+Pj4gT24gMjIuMDguMjAyNSAxMjo1MiwgUGVubnkgWmhlbmcgd3JvdGU6
DQo+ID4+Pj4+PiAtLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvc3lzY3RsLmgNCj4gPj4+Pj4+ICsr
KyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9zeXNjdGwuaA0KPiA+Pj4+Pj4gQEAgLTMzNiw4ICszMzYs
MTQgQEAgc3RydWN0IHhlbl9vbmRlbWFuZCB7DQo+ID4+Pj4+PiAgICAgIHVpbnQzMl90IHVwX3Ro
cmVzaG9sZDsNCj4gPj4+Pj4+ICB9Ow0KPiA+Pj4+Pj4NCj4gPj4+Pj4+ICsjZGVmaW5lIENQVUZS
RVFfUE9MSUNZX1VOS05PV04gICAgICAwDQo+ID4+Pj4+PiArI2RlZmluZSBDUFVGUkVRX1BPTElD
WV9QT1dFUlNBVkUgICAgMQ0KPiA+Pj4+Pj4gKyNkZWZpbmUgQ1BVRlJFUV9QT0xJQ1lfUEVSRk9S
TUFOQ0UgIDINCj4gPj4+Pj4+ICsjZGVmaW5lIENQVUZSRVFfUE9MSUNZX09OREVNQU5EICAgICAz
DQo+ID4+Pj4+DQo+ID4+Pj4+IFdpdGhvdXQgWEVOXyBwcmVmaXhlcyB0aGV5IHNob3VsZG4ndCBh
cHBlYXIgaW4gYSBwdWJsaWMgaGVhZGVyLg0KPiA+Pj4+PiBCdXQgZG8gd2UgbmVlZCAuLi4NCj4g
Pj4+Pj4NCj4gPj4+Pj4+ICBzdHJ1Y3QgeGVuX2dldF9jcHBjX3BhcmEgew0KPiA+Pj4+Pj4gICAg
ICAvKiBPVVQgKi8NCj4gPj4+Pj4+ICsgICAgdWludDMyX3QgcG9saWN5OyAvKiBDUFVGUkVRX1BP
TElDWV94eHggKi8NCj4gPj4+Pj4NCj4gPj4+Pj4gLi4uIHRoZSBuZXcgZmllbGQgYXQgYWxsPyBD
YW4ndCB5b3Ugc3ludGhlc2l6ZSB0aGUNCj4gPj4+Pj4ga2luZC1vZi1nb3Zlcm5vciBpbnRvIHN0
cnVjdCB4ZW5fZ2V0X2NwdWZyZXFfcGFyYSdzIHJlc3BlY3RpdmUNCj4gPj4+Pj4gZmllbGQ/IFlv
dSBpbnZva2UgYm90aCBzdWItb3BzIGZyb20geGVucG0gbm93IGFueXdheSAuLi4NCj4gPj4+Pj4N
Cj4gPj4+Pg0KPiA+Pj4+IE1heWJlIEkgY291bGQgYm9ycm93IGdvdmVybm9yIGZpZWxkIHRvIGlu
ZGljYXRlIHBvbGljeSBpbmZvLCBsaWtlDQo+ID4+Pj4gdGhlIGZvbGxvd2luZyBpbg0KPiA+PiBw
cmludF9jcHVmcmVxX3BhcmEoKSwgdGhlbiB3ZSBkb24ndCBuZWVkIHRvIGFkZCB0aGUgbmV3IGZp
bGVkICJwb2xpY3kiDQo+ID4+Pj4gYGBgDQo+ID4+Pj4gKyAgICAvKiBUcmFuc2xhdGUgZ292ZXJu
b3IgaW5mbyB0byBwb2xpY3kgaW5mbyBpbiBDUFBDIGFjdGl2ZSBtb2RlICovDQo+ID4+Pj4gKyAg
ICBpZiAoIGlzX2NwcGNfYWN0aXZlICkNCj4gPj4+PiArICAgIHsNCj4gPj4+PiArICAgICAgICBp
ZiAoICFzdHJuY21wKHBfY3B1ZnJlcS0+dS5zLnNjYWxpbmdfZ292ZXJub3IsDQo+ID4+Pj4gKyAg
ICAgICAgICAgICAgICAgICAgICAib25kZW1hbmQiLCBDUFVGUkVRX05BTUVfTEVOKSApDQo+ID4+
Pj4gKyAgICAgICAgICAgIHByaW50ZigiY3BwYyBwb2xpY3kgICAgICAgICAgIDogb25kZW1hbmRc
biIpOw0KPiA+Pj4+ICsgICAgICAgIGVsc2UgaWYgKCAhc3RybmNtcChwX2NwdWZyZXEtPnUucy5z
Y2FsaW5nX2dvdmVybm9yLA0KPiA+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAicGVy
Zm9ybWFuY2UiLCBDUFVGUkVRX05BTUVfTEVOKSApDQo+ID4+Pj4gKyAgICAgICAgICAgIHByaW50
ZigiY3BwYyBwb2xpY3kgICAgICAgICAgIDogcGVyZm9ybWFuY2VcbiIpOw0KPiA+Pj4+ICsNCj4g
Pj4+PiArICAgICAgICBlbHNlIGlmICggIXN0cm5jbXAocF9jcHVmcmVxLT51LnMuc2NhbGluZ19n
b3Zlcm5vciwNCj4gPj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvd2Vyc2F2ZSIs
IENQVUZSRVFfTkFNRV9MRU4pICkNCj4gPj4+PiArICAgICAgICAgICAgcHJpbnRmKCJjcHBjIHBv
bGljeSAgICAgICAgICAgOiBwb3dlcnNhdmVcbiIpOw0KPiA+Pj4+ICsgICAgICAgIGVsc2UNCj4g
Pj4+PiArICAgICAgICAgICAgcHJpbnRmKCJjcHBjIHBvbGljeSAgICAgICAgICAgOiB1bmtub3du
XG4iKTsNCj4gPj4+PiArICAgIH0NCj4gPj4+PiArDQo+ID4+Pj4gYGBgDQo+ID4+Pg0KPiA+Pj4g
U29tZXRoaW5nIGxpa2UgdGhpcyBpcyB3aGF0IEkgd2FzIHRoaW5raW5nIG9mLCB5ZXMuDQo+ID4+
DQo+ID4+IEFsYmVpdCAtIHdoeSB0aGUgY29tcGxpY2F0ZWQgaWYvZWxzZSBzZXF1ZW5jZT8gV2h5
IG5vdCBzaW1wbHkgcHJpbnQNCj4gPj4gdGhlIGZpZWxkIHRoZSBoeXBlcmNhbGwgcmV0dXJuZWQ/
DQo+ID4NCj4gPiB1c2Vyc3BhY2UgZ292ZXJub3IgZG9lc24ndCBoYXZlIGFjY29yZGluZyBwb2xp
Y3kuIEkgY291bGQgc2ltcGxpZnkgaXQNCj4gPiB0byBgYGANCj4gPiAgICAgICAgIGlmICggIXN0
cm5jbXAocF9jcHVmcmVxLT51LnMuc2NhbGluZ19nb3Zlcm5vciwNCj4gPiAgICAgICAgICAgICAg
InVzZXJzcGFjZSIsIENQVUZSRVFfTkFNRV9MRU4pICkNCj4gPiAgICAgICAgICAgICAgICAgcHJp
bnRmKCJwb2xpY3kgICAgICAgICAgICAgICA6IHVua25vd25cbiIpOw0KPiA+ICAgICAgICAgZWxz
ZQ0KPiA+ICAgICAgICAgICAgICAgICBwcmludGYoInBvbGljeSAgICAgICAgICAgICAgIDogJXNc
biIsDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICBwX2NwdWZyZXEtPnUucy5zY2FsaW5n
X2dvdmVybm9yKTsgYGBgDQo+DQo+IEJ1dCB0aGUgaHlwZXJ2aXNvciBzaG91bGRuJ3QgcmVwb3J0
IGJhY2sgInVzZXJzcGFjZSIgd2hlbiB0aGUgQ1BQQyBkcml2ZXIgaXMgaW4NCj4gdXNlLiBBTmQg
SSB0aGluayB0aGUgdG9vbCBpcyBva2F5IHRvIHRydXN0IHRoZSBoeXBlcnZpc29yLg0KDQpUcnVl
LCB3ZSBzaGFsbCBtYWtlIHN1cmUgZ292ZXJub3IgaXMgc2V0IHByb3Blcmx5IGluIGh5cGVydmlz
b3Igc2lkZSBldmVuIGluIGNwcGMgbW9kZQ0KDQo+DQo+IEphbg0K


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 08:01:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 08:01:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097747.1451962 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urXZQ-0007Sa-Vd; Thu, 28 Aug 2025 08:01:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097747.1451962; Thu, 28 Aug 2025 08:01: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 1urXZQ-0007ST-SY; Thu, 28 Aug 2025 08:01:20 +0000
Received: by outflank-mailman (input) for mailman id 1097747;
 Thu, 28 Aug 2025 08:01:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=pYI3=3I=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urXZP-0007SL-Gd
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 08:01:19 +0000
Received: from mail-ed1-x535.google.com (mail-ed1-x535.google.com
 [2a00:1450:4864:20::535])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2cd22b88-83e5-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 10:01:17 +0200 (CEST)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-61a8c134609so848414a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 01:01: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
 4fb4d7f45d1cf-61cb4370f23sm2811705a12.38.2025.08.28.01.01.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 01:01: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>
X-Inumbo-ID: 2cd22b88-83e5-11f0-ae26-e363de0e7a9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756368077; x=1756972877; 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=Lue0KBH1Y1XLRRUJLm28J7POfbn3BL1GZPFnlMT/oEM=;
        b=c5q+CEpwcEesQNXtYZOEi+UDXq8vczAIai++ryMZAIWbrRjxqpv5imguRTnxxVuHE+
         xrAgl/yv9ENMMsEpdjSzEHjn6alSHPWemsyz5ApoYTXhRxzVqvyIXsm0zfcu3W7WQqUj
         DSy9Xmq/AcQq3udwL6F2WvYJTtc6piItCEt31nCmqhawcAqkWlJO/G8QHFJSwxspcjGW
         tHZEWv9bPqzCaPV91lgstWmWFVJw3L3Ih1wftSVxCWbYKT5hPRnTHSXx2hLZNh1a+ECj
         n4vEYBdHskdu+2BKpHdXiv+rNBY8/RBPozZwFqAfNSyBKv0on1bt9+4tnFHqGjbW2kIp
         9JKQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756368077; x=1756972877;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=Lue0KBH1Y1XLRRUJLm28J7POfbn3BL1GZPFnlMT/oEM=;
        b=RsypcuuDpiBz5LYj4DMS+518HNz6CZOpRY1AOm5O9a2yfgvZZHYGbj/D1S36bAUZAo
         LOjk1ag9/U7rLQauBi9kBDHvPjb7ZGpG7xKzVrtG8b4W6w4sjUFb4Kgu2XykTX6c+HGC
         COCJkyGUJxDn/iHelRE3JhRDBRgVhMyjZ/emZrc0n3Uzay8IbZEkPkWq/nblgnttJIUN
         sGWA5j5iy4f5gwT3jbH5ZyN0KYG4px65uSjJnHf8soPkK+af3aKH+vq6WWvJ6pwdcMnK
         GoswrWh0uSBXAuEyjZbD6nU7Mb1+hCiW3y1LNsPkVDfoOF8Y5rF+yUk4NYAmf0V8uqQ3
         +PTQ==
X-Forwarded-Encrypted: i=1; AJvYcCXnxuKL8ggTYZCMKjDvCvRrxSkp1QssoerBN8eQnWSrtO9fyis4DMCcZ1dNFqy95w6iGvEI1z3Rk1o=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwqW1KoMhwFwd3FzO4sqQeL0zUZYuy0ivyAUBQk4jBAHTl9yK/y
	Q5XZm2tyTfwkHi7BmvQU+gHLi0YKt+YJx/n4AHu3l9hJ+J64mOyT7QqRatKiR+WP/A==
X-Gm-Gg: ASbGncuxg9gZyvSzalPHy2hmYivWHC4rf0zZSx9unFEv4fBe3pyLCCGvItwxHsdwjvs
	LuKjx7TdJJIwuPotUISLe/72P5ZUYEmoo9O8pNxuYv2w4Hi3SSRhMVP5LXvHlf+vKS/g5HDKOMx
	gXTVuzb1iEHRzrxPXaMFzcGlRDW9ZV5UjKozWdPxxUtI2XdeKzAaRPFCal805KCpW1i+l+j+6SJ
	ZqgOehFDJW8ImOW/H5HjnzyJgIkp7wDPA7h6KPOVZzEnb+WzBjoY5eynOm4mXaMQ26sV0Q0cMFA
	7HZEPHArXWcNBJQuKjifTofgAWN5Pj8LdjL2/G4PMEgMc1fLjBzRaAuJjQSzJis8gd0SpJYuWJd
	A1OjEC4x/uN1x767Pgjfw8lKEy1kq1I7t1hWqN/0LK9+8AMXfsiflME0lWnaMKVJUsFIom+NrNR
	d4J+eVXILBBw7CPtXEDwuMj7x6PnFX
X-Google-Smtp-Source: AGHT+IEEkzUIVR5gietJORlBXuAwfbw5wQ1jOvEdeQRy3RajdzRjUC5dsLLi/i/lwILVaoIzv3Ig+Q==
X-Received: by 2002:a05:6402:26d3:b0:61c:7f7e:1e with SMTP id 4fb4d7f45d1cf-61c7f7e2182mr9313559a12.22.1756368076570;
        Thu, 28 Aug 2025 01:01:16 -0700 (PDT)
Message-ID: <f0a6a30d-251b-4836-a374-e358a174a356@suse.com>
Date: Thu, 28 Aug 2025 10:01:15 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 2/3] hvmloader: fix SMBIOS table length checks
From: Jan Beulich <jbeulich@suse.com>
To: =?UTF-8?Q?Petr_Bene=C5=A1?= <w1benny@gmail.com>
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: <cover.1753869323.git.w1benny@gmail.com>
 <1f452cde49cd9cfa949affe6061fc628de434e18.1753869323.git.w1benny@gmail.com>
 <89400b8f-0acf-49c6-979a-ecf608ec00d4@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: <89400b8f-0acf-49c6-979a-ecf608ec00d4@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 28.08.2025 09:03, Jan Beulich wrote:
> On 30.07.2025 11:56, Petr BeneÅ¡ wrote:
>> --- a/tools/firmware/hvmloader/smbios_types.h
>> +++ b/tools/firmware/hvmloader/smbios_types.h
>> @@ -90,13 +90,13 @@ struct smbios_type_2 {
>>      uint8_t product_name_str;
>>      uint8_t version_str;
>>      uint8_t serial_number_str;
>> -    uint8_t asset_tag_str;
>> -    uint8_t feature_flags;
>> -    uint8_t location_in_chassis_str;
>> -    uint16_t chassis_handle;
>> -    uint8_t board_type;
>> -    uint8_t contained_handle_count;
>> -    uint16_t contained_handles[];
>> +    uint8_t asset_tag_str;                  /* Optional */
>> +    uint8_t feature_flags;                  /* Optional */
>> +    uint8_t location_in_chassis_str;        /* Optional */
>> +    uint16_t chassis_handle;                /* Optional */
>> +    uint8_t board_type;                     /* Optional */
>> +    uint8_t contained_handle_count;         /* Optional */
>> +    uint16_t contained_handles[];           /* Optional */
>>  } __attribute__ ((packed));
>>  
>>  /* System Enclosure - Contained Elements */
>> @@ -118,12 +118,12 @@ struct smbios_type_3 {
>>      uint8_t power_supply_state;
>>      uint8_t thermal_state;
>>      uint8_t security_status;
>> -    uint32_t oem_specific;
>> -    uint8_t height;
>> -    uint8_t number_of_power_cords;
>> -    uint8_t contained_element_count;
>> -    uint8_t contained_element_length;
>> -    struct smbios_contained_element contained_elements[];
>> +    uint32_t oem_specific;                  /* Optional */
>> +    uint8_t height;                         /* Optional */
>> +    uint8_t number_of_power_cords;          /* Optional */
>> +    uint8_t contained_element_count;        /* Optional */
>> +    uint8_t contained_element_length;       /* Optional */
>> +    struct smbios_contained_element contained_elements[]; /* Optional */
>>  } __attribute__ ((packed));
>>  
>>  /* SMBIOS type 4 - Processor Information */
>> @@ -252,9 +252,9 @@ struct smbios_type_39 {
>>      uint8_t revision_level_str;
>>      uint16_t max_capacity;
>>      uint16_t characteristics;
>> -    uint16_t input_voltage_probe_handle;
>> -    uint16_t cooling_device_handle;
>> -    uint16_t input_current_probe_handle;
>> +    uint16_t input_voltage_probe_handle;    /* Optional */
>> +    uint16_t cooling_device_handle;         /* Optional */
>> +    uint16_t input_current_probe_handle;    /* Optional */
>>  } __attribute__ ((packed));
>>  
>>  /* SMBIOS type 127 -- End-of-table */
> 
> I regret now that I didn't look more closely before offering my ack. May I
> ask where these "Optional" (and also the ones in patch 3) are taken from?
> While looking at Teddy's patch to bump the version to 2.6 I considered it
> necessary to check whether other adjustments (fields becoming non-optional
> for example) would be required, and to my surprise and couldn't find proof
> of any of the above being optional in 2.4.

I take this back. This is written down in the spec, just not as clearly and
uniformly as one might wish.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 08:17:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 08:17:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097761.1451972 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urXpP-0000tg-9x; Thu, 28 Aug 2025 08:17:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097761.1451972; Thu, 28 Aug 2025 08:17: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 1urXpP-0000tZ-6q; Thu, 28 Aug 2025 08:17:51 +0000
Received: by outflank-mailman (input) for mailman id 1097761;
 Thu, 28 Aug 2025 08:17:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lRvb=3I=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1urXpN-0000tT-Jc
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 08:17:49 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 791e7e8e-83e7-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 10:17:45 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by AS8PR03MB6901.eurprd03.prod.outlook.com (2603:10a6:20b:29e::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Thu, 28 Aug
 2025 08:17:40 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9052.019; Thu, 28 Aug 2025
 08:17: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>
X-Inumbo-ID: 791e7e8e-83e7-11f0-ae26-e363de0e7a9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yMECBYxrXNebxk3ni77NJ+V+jYvnwUbOa1yn1JhwKHmThV8wIGs3WSqxLI/QilN6nROt0a/3+sAQfqBHKA+bonTlYTB60qewLkgDdkDLsQZx3aRLTb2GBXBCytFejJPTlo9NKW5dG7DQbTkhAs/W0E2PT21fZNnx6t9NFHtdDljIZAgN3J5ClsZKwu92kC9BXSukKl5ZdaKThLadgRDWjL1OTuhNtwtSG7O/2PeBFVavkk9Dq3t3zL7J9iJM8+kXKpyWp+BE29tCywf2kYN4VHvqu0PfSEhMiv4vR9IaxLXo3LLrQz5JdMRWqWJPNq3TPb2kkQbZEdJcTi1VPhHvug==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=FjoIr7lFyfFpDbEr/04MtKkgMC5IM9Adq0/W0rKKUFE=;
 b=v/ZkOI+Mt9JYUPSe5C1ETYDOuofxVA7Wy569Q+GQup6r7GlSJJQuqaP0YVODpxxEi+dzBmE0o11maTWYKOlJgRsFIKoGeUTMw7G5dd8jcSFs7EAW5oSjywP3nAhJsnQxnjX+EXtGcxoYoWHPK3kZLlTUAWrFeN5yjPcTlPuCxZY8i9BUbbmpzeZr/VjoXGcJteRIbzD6foHvh/RtXVEul7WBZa0FZffrgzZ+hsLyiZuVfspu5jyaLGNa3QaiZuxiJR71rqsSil3MOCVhpmiWnbCiHUO1d4URpc2OIRy7xxsYkVzRpXlEgcu/3HnkVjryaFvvYKfNmre/xm/y+obegg==
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=FjoIr7lFyfFpDbEr/04MtKkgMC5IM9Adq0/W0rKKUFE=;
 b=Y9CYhtQvrsfewMnabz7tTMhLi/Q0Ek2bKfgi61axCR9YG8VW7wbcZ11VNNCcnLpnrvwwwzgdqGyy2MZUmQKWOeRHuvckJjcBClIIbSKj+EwBcn7GYF+Lsr67Qz7UGbvsDZU8lEXvu9dXVU5i2lQHx2PIWysx+8zhuuJuFqAY1A/Gl5FEA5qSUszzLKw62DVATDXY2LuGDj2ggdG86Lpo1NjQI/gmq+IVBJdA398B5aHYFWUH7CvAAFAjnVGSjBYJ1L1Ex/HLl+1P3eMhd/bDVvYrJF5kORASMWI24+fitSMufZvxPpR8ER7CtaW26CwwzW5HYKGMBOfllQDY3gUpYQ==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH] device-tree: fix infinite loop issue in
 'assign_shared_memory()'
Thread-Topic: [PATCH] device-tree: fix infinite loop issue in
 'assign_shared_memory()'
Thread-Index: AQHcF/Q482rbLahQD0qhywmRaenDcQ==
Date: Thu, 28 Aug 2025 08:17:40 +0000
Message-ID:
 <d7768394209c65cfef4006c3ffc0a0f5d82c4c18.1756368997.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: GV2PR03MB9572:EE_|AS8PR03MB6901:EE_
x-ms-office365-filtering-correlation-id: c8b9da9f-a374-4f9e-3cba-08dde60b5b33
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|42112799006|376014|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?VeOxaq7kLxps/i/DtiD7qqIAqxon9ewJ4v3SKFXOEk618qrD9Ncg0RpT5y?=
 =?iso-8859-1?Q?gNvV6brx2Oaf/DF7Jktf2AQ5sHPzHyD/uqcsvwPS6abHyQRlXH2yTtpYTO?=
 =?iso-8859-1?Q?yF3JjLn+lWAvYmBpvwSZTtJD7I+5qpl1U+KUUe3p7iNxYvYvQQua4ZsxDO?=
 =?iso-8859-1?Q?DJUcbBk8zobeyCppV/hII7nI8DST+KgPksorDhDbJd7xV2Z1/SnLoj19sn?=
 =?iso-8859-1?Q?HL/J2BdDuGSFPN9uPNvJ3abD25cXLcocsynp2FbsMO6VsNfx5u4VuSipLv?=
 =?iso-8859-1?Q?JcfclRIaRievXQSPwGBpT/rkEOh/31a5NOMxaAIkidvCRQeH9KZe7rIPOq?=
 =?iso-8859-1?Q?f1YuC8HwuLU4Tbx7cv7S6v9BKvDTlBcHk/aSx9sfD7gXdD2Bh+5sKvIQj7?=
 =?iso-8859-1?Q?FjPKddKPxpHDb5akrdafbqMEY51DtYHngYvFbXHF5MiJ2dGJQw2LK0+TA4?=
 =?iso-8859-1?Q?PMp2UeFG+ZoIHDIbOSrWbGK4cblo83a8cinP3l8QQ7CSkrBmm4FkPXJF51?=
 =?iso-8859-1?Q?z8axAAqig2PH3jwRFl5o/qVfjDCNw02WK4GXhDyexfEsPkkESyP+dAk4I0?=
 =?iso-8859-1?Q?GWoC5UWffcGCg3AhOszfhQx8njHg0M502ytwMh9E6CC4oHkFutlwwCDt+h?=
 =?iso-8859-1?Q?T5jO7KAyx+vjTgUTmZrqgxI4MbwiTKv4kOlgRTZt6p/9s1+vLnV4rxDHe2?=
 =?iso-8859-1?Q?CyUJSW2mBbaoYAtl2DCt5FYUSequRgwOPj2ndxfic5eJ5Thc7bypKZGRPn?=
 =?iso-8859-1?Q?+0bf91iu66pOxTyn07zcuc3yZd8f/xXtzrz0ukTYjhtJsyyszwzNxG8nLo?=
 =?iso-8859-1?Q?QoiX8k04s3DyDnFL3hODghwCAAcpboYK8ccMPQJJkF0dXB/ttbHMTVbHaV?=
 =?iso-8859-1?Q?pso2i7tD0hSmY7T6E6i4NiUSn+27bX9PMP5hGuopf8pQJnHH/FV9DP3emQ?=
 =?iso-8859-1?Q?pwm603BEj2R74c70UY116gFj7x5oTdERXPIGkyz5YFYka4FMgwfqhHXzmn?=
 =?iso-8859-1?Q?0eSyRwDXEwlRQLA2R8lAu5tmjX3w+2RxRPm+JBcKxRn9TGDvzUQn99YoMa?=
 =?iso-8859-1?Q?wvoaYaRdgQmtnwc9r98wId5T/l9dXF5RRwY8EKPTr67f9pgJ66eepOL1XF?=
 =?iso-8859-1?Q?MkOOa2wrZf4ht46fhcOt5+/rEf/Lpm5NnANVIoRRq4SwfnAxGQQ+NwGUMq?=
 =?iso-8859-1?Q?v+FPh/EK0QTj5XZxDU5wIrXQZgNz0yDMT7bN58EbxNpjK1eB9m6KO132sE?=
 =?iso-8859-1?Q?jt+V+kyFfU2L4Td1Ov44rfHDLe7JyO8OX7u8PZtQ1YY2Q7Tt8AbET6RaS2?=
 =?iso-8859-1?Q?8a6VIsWpYdqd+4+hIATBB7Js+Rw+p053PGi320cE6k7QH9av+A2b7kxOfP?=
 =?iso-8859-1?Q?feSDqxT51oiLVkBCQ1tcfjZLM95bz/et1kDKJRM2D1iEuP/+W8VmYNnokO?=
 =?iso-8859-1?Q?0eoH30UJ56lV1vl0bzV+ju7sQvv4EPZ8TuNfI6Vcinj7aLp4h0/U7VeJwW?=
 =?iso-8859-1?Q?2vY7dW3epiEc8dSsPRv67IbnMeGOmG1D0iok8wGAX4WQ=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(42112799006)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?UjfGqYX5HSOsDV9dcQIcrtiznfIhJVpf7M3DDJlo0g3CVUYUt/Jk/R8ibx?=
 =?iso-8859-1?Q?hguqd/hwuKz3qhjFrJb1CBh3UHUAigm+b/LUK48BCxuJ4F9b/oqENuZhU8?=
 =?iso-8859-1?Q?iDK4s4GEzdw9Pd5AsIA77Elng8pizcc+CW3EW47rJRzOW0fOqKy+IAq1f2?=
 =?iso-8859-1?Q?EFqw32Ydo+xbtBg7eE5qSJmXsVTiLWRo3IDGPkoQGHZQbxwzMl9nJ421x9?=
 =?iso-8859-1?Q?RWc+CYKBaqyQ/ts2xH3TKqFipGzZKjnv7m3fQZaK0RZPlZIGeEOQD5ts3J?=
 =?iso-8859-1?Q?8Z82LJJGl0j4AVydyZgoZakFclwJ4aT5nrCqNQtkppUoAuY+1WTwxwuN3J?=
 =?iso-8859-1?Q?3IJnU7SFcuxen5YxnS23XKqvvJJubhqsQcaUwgzQtcKdXMSnFlI2K+mIb6?=
 =?iso-8859-1?Q?Rq5QrhMsDUgpRH2DJkkGDdWWHDj9L6c/SQZdl2naiJNK+OMhjeRz6Dtf+V?=
 =?iso-8859-1?Q?2x7NIOt7qQQsOx/TCCVVWorKxnz4ren4JeYqLt68XO4JP2WdOnR0am1Cwv?=
 =?iso-8859-1?Q?0E+mSItI8OwshJrKtZNTA2JygNZNcMy6N2slkC0UYgfD4LSFEFbLUe9MVg?=
 =?iso-8859-1?Q?YPT9GM2i3AAjls72y7wiODuRyWvGhar2tAyeu/IMb8NZ9/FHe9h9XiOQxF?=
 =?iso-8859-1?Q?5WdDVzV4ZzM2BRaoiFPKABwzunHOZbF3hqaZFGpZasoZZ5UNfaABo2P3z/?=
 =?iso-8859-1?Q?YTu04NDS6Cv4en+PVKn5kIiM3jShI4UZXFwzXmp26QXsqonfBGuM1Y0l3y?=
 =?iso-8859-1?Q?Wpb5+WS52wTDn6TIMkt29DnLgG/BPgRCkyRu5AA2fJp6PKA3pQmI6vSADR?=
 =?iso-8859-1?Q?nBCI/CPSgBU2hXbMK9MNkONbK4WYEUGYSdFNd7nyGOBMqB3oO0s1/wQf+y?=
 =?iso-8859-1?Q?on+l0w+9SgHAwtBkC7wK8sSQvKhBm5JfXdLK1l0cDtiZyKcxTkMGbjJmAj?=
 =?iso-8859-1?Q?QX17t1hhS7IDnhgGK8ef+tTdkmtBs8JIyvlot9OHw7gWxvyUjnMsZgXhRL?=
 =?iso-8859-1?Q?ANX7vA7h13Zc1reTIOUaV7iZhyK86kngdmEkK1DqrEq7FlWXb8Yj3Rn9tv?=
 =?iso-8859-1?Q?NlzOFNIdT1S2epa5JrYXrcf1tek+1GC1ERo/5BVFuv+H423uX3SuePiLsR?=
 =?iso-8859-1?Q?WBOgMyR5R59RnUtAjnxdGe3Idljpd99xh4Wth3aqrKuMBqUUAEfXDIpWsf?=
 =?iso-8859-1?Q?jSlGeB+yX1UTfWsvDZjbDM+JfWmxH9nZ7X0YFhHPUhM0KX8yfBY5xnzNTO?=
 =?iso-8859-1?Q?Jv6Vk4fErYlgWA2871Ff67HjYPeY9V118dgedklkwYP/yU9RA/CAJMP0Xk?=
 =?iso-8859-1?Q?wTilwc4qsOiMtpqwiqC3PZfuH3ZISKurLaUbuLiEOdgiXkclax0X1g5MAw?=
 =?iso-8859-1?Q?27SNjvOo03/vo5HiueGZ8gjCHkVXFwEjP/zSySWKshz8U1TUxl46TIumNs?=
 =?iso-8859-1?Q?c9ntF8R/615BQbMcZaYFseqE/q/wxybxCAKO6DsjxQ06tR2tqbdHUICnhl?=
 =?iso-8859-1?Q?VhhzBse0KQBkQG6sZrSYmSXrQXakG7L3ovSJRJFgNSVjzJBAh+tHbwm7RU?=
 =?iso-8859-1?Q?ZbctysW8ol5llJ05z3gmGXTmCmkJBPWF+wJ+B+XJmPQtoL4Gp27E8Poblp?=
 =?iso-8859-1?Q?+JLymuWCLmtqQJrwUYqBuliQkeRJ5KW9q10gXR5zycuCtguSIyAle/ug?=
 =?iso-8859-1?Q?=3D=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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c8b9da9f-a374-4f9e-3cba-08dde60b5b33
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Aug 2025 08:17:40.5200
 (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: w+DJMZozOhr+pGWWs1JhanrktNyKQyjdRmB1f6b9PHyA9ud/lWfuni/G73h9ciKnb2DWK9GQdtFGEXjq6JtkDxDhX5qXsLtWrJy5gWjMUIk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB6901

Resolve infinite loop issue in the 'fail:' cleanup path of the function
'assign_shared_memory()'. The issue was caused by an 'unsigned long' type
for the loop counter 'i', which could underflow and wrap around, violating
termination conditions.
Change 'i' to a signed data type ('long') to ensure safe termination of
the 'while (--i >=3D 0)' loop.

This change adheres to MISRA Rule R14.3: "Controlling expressions shall
not be invariant."

Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
 xen/common/device-tree/static-shmem.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/xen/common/device-tree/static-shmem.c b/xen/common/device-tree=
/static-shmem.c
index 8023c0a484..b4c772466c 100644
--- a/xen/common/device-tree/static-shmem.c
+++ b/xen/common/device-tree/static-shmem.c
@@ -134,7 +134,8 @@ static int __init assign_shared_memory(struct domain *d=
, paddr_t gbase,
 {
     mfn_t smfn;
     int ret =3D 0;
-    unsigned long nr_pages, nr_borrowers, i;
+    unsigned long nr_pages, nr_borrowers;
+    long i;
     struct page_info *page;
     paddr_t pbase, psize;
=20
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 08:31:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 08:31:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097774.1451981 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urY2W-0003of-Fs; Thu, 28 Aug 2025 08:31:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097774.1451981; Thu, 28 Aug 2025 08: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 1urY2W-0003oY-DK; Thu, 28 Aug 2025 08:31:24 +0000
Received: by outflank-mailman (input) for mailman id 1097774;
 Thu, 28 Aug 2025 08:31:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+YJy=3I=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1urY2T-0003oS-Vo
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 08:31:22 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5ec4e100-83e9-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 10:31:19 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id C4CB84EE3C0D;
 Thu, 28 Aug 2025 10:31:17 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5ec4e100-83e9-11f0-ae26-e363de0e7a9e
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=1756369877;
	b=ytu0Kq6bdMjTQCPv8Qw7amP68diu3a31xTuRtwt8z2ajKSOJZ/Cx6zQv+KDODZCk6/BR
	 NvEpHspFGynhnTuiIIzY9xLzK6rhZP32E1aGdQDvFKLYb43NTKFL6qXQdhxKHBHYFTgVD
	 rvbdHfnZRBB6WFCNtw4EztWgEVuoTLI6CCJlNJ11WdeB8FupcUYoVA0X8CJyx34FtSPVz
	 CYFycthVNiSCpSj8fxSfffL/l2EPaGMtNvW026fbsnZLFzE/5QIqusZWx96apdZpBcvwi
	 UDcJPu1DLA17OsRqkn2JhS0fNgQe/TSUiCIA8mksAasGMZwc9Cc2GVzY7joQSKse40rio
	 +9H7yLI3F5LZpWxqxO2YC+/wcH93joJ9P0aRi5njWh64zbT5OdFR/kdp5drsq7c2CHvuf
	 IK5Jime7XCKhypBc91pRGZKzk9up85kv/QxgofXWImBITTXj60c5l8KhPw3uE6s9Llk9x
	 D5tnsNPKG5WifdKRR2CKKv1mMY7QZdRhEocaru3gJDh8F1gIlUEpe4weqdFjfwLXki7pG
	 tLiB9wy6ahwlcaZg2ayXsBIfuvOL/xDybXF6cZi+vWzZMDAokxWs9LG3UkAigW6Yd39zn
	 Zkm8vtZBTfBkeSgfeJB598x0loIOcMh8RIMzsFvjndHzqq9eLXu4oDoPuy15btI=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1756369877;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=RIg1iHkhHRg+2G6u/bDaBlzal/A0QpfpstAn580hB7Q=;
	b=aWMXpG211UJFz9KnU1niBfaNUEeH/uHmpsF9CoVDDPDjnY0QK9XSEjEuy4bctXIVIfr4
	 v0dV+U5trhVaDSCD4O55zNQRx+qXV4nTMAMmrIqQI8lkC4LWUo88TGS74rP7CXOvaFViP
	 oiPq8aA8V+R/LGeqlmFNuVZp9j8HJ2LtNsu5TdxSJrYh/zrifaoRddWt1tCUhF0XPVzdn
	 KIPxx8vJAlG/qnI0nJCvMdTtWKPp3EY23BJTrtnUAd6poVDJKIWWKwcw5DEwxSj9uz17l
	 u3zw54GPcQa3+CXwcM3+dUSZ0O943+bACsITFODqRt+UeALhuLhKAQ8ZUKre/iOcWqIGt
	 0eH90wkc0cEUqSW+tC95UKf9/sdlEL0Ja86+FH8TLfSkBqG/EAF/Q4+u2Vf+WdoB/LcbK
	 /jfnB2kfKzd46iUbqE6coX7iz7z635qvEs0w5rsMCj1/JJo4ZzeiTqq1su1Cqj3cj7EXI
	 9coUi/Y+PTCeIdf9UmtzqExCn/vNfoVdy2D77HymkBfakgvZ4uqC66xANHjEfGszwLLx9
	 vVi60xFM3otX8tDxfZpkzr2Bpp88QaaxHChr0Raq0rF8rTCxP3klWM3t6BSyzxjnijMzE
	 KPMfy59gWhS3e0TNSFW9wu10N0B2ASWo2FqcFjsR0PSlSNaAuoTZC3G/IHacing=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1756369877; bh=trYydJGVq8W8ebPlExm1SiYOWJ97EqVkq+SDQS5SKSw=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=R7SR1GqtB5lSOXp/OeQArqQJylVV6lvBMRgh3qHDbd0Vjk8e4D8D3hzkIngPPCNTZ
	 VzV1BdIsyBPFIMy350wWsP6lbfe/ylpc0z3m4hYS9vecsIWetViRDAieYx+9arlJna
	 fz+fYg9yc/cGGpcFroXWyhgiWtdxsCC54GcTXfvRfspg9p463aCgoWS+0nHX/vosMG
	 d7Clneff8g1for2mf88qDMF9tDQw1vfL5AB4Q1l5kPczQ/WlqNXWBahlP6PNHbug/q
	 Fv00NnOIFFURljO5OPORoLV0OeiR0+R88P4YOkbQK1hkMJwCHpmYCtLdhlIJ1TQaYr
	 rFsUD+UMBfCSw==
MIME-Version: 1.0
Date: Thu, 28 Aug 2025 10:31:17 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: xen-devel@lists.xenproject.org, Stefano Stabellini
 <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
 <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH] device-tree: fix infinite loop issue in
 'assign_shared_memory()'
In-Reply-To: <d7768394209c65cfef4006c3ffc0a0f5d82c4c18.1756368997.git.dmytro_prokopchuk1@epam.com>
References: <d7768394209c65cfef4006c3ffc0a0f5d82c4c18.1756368997.git.dmytro_prokopchuk1@epam.com>
Message-ID: <185dce3ba4762d4528866f2e50e45371@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

On 2025-08-28 10:17, Dmytro Prokopchuk1 wrote:
> Resolve infinite loop issue in the 'fail:' cleanup path of the function
> 'assign_shared_memory()'. The issue was caused by an 'unsigned long' 
> type
> for the loop counter 'i', which could underflow and wrap around, 
> violating
> termination conditions.
> Change 'i' to a signed data type ('long') to ensure safe termination of
> the 'while (--i >= 0)' loop.
> 

Then this likely should have Fixes tag. The R14.3 violation was found 
after adding CONFIG_UNSUPPORTED=y to analyze.yaml?

> This change adheres to MISRA Rule R14.3: "Controlling expressions shall
> not be invariant."
> 
> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
> ---
>  xen/common/device-tree/static-shmem.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/xen/common/device-tree/static-shmem.c 
> b/xen/common/device-tree/static-shmem.c
> index 8023c0a484..b4c772466c 100644
> --- a/xen/common/device-tree/static-shmem.c
> +++ b/xen/common/device-tree/static-shmem.c
> @@ -134,7 +134,8 @@ static int __init assign_shared_memory(struct 
> domain *d, paddr_t gbase,
>  {
>      mfn_t smfn;
>      int ret = 0;
> -    unsigned long nr_pages, nr_borrowers, i;
> +    unsigned long nr_pages, nr_borrowers;
> +    long i;
>      struct page_info *page;
>      paddr_t pbase, psize;

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 08:42:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 08:42:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097785.1451991 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urYCr-0005Tw-DP; Thu, 28 Aug 2025 08:42:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097785.1451991; Thu, 28 Aug 2025 08: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 1urYCr-0005Tp-AB; Thu, 28 Aug 2025 08:42:05 +0000
Received: by outflank-mailman (input) for mailman id 1097785;
 Thu, 28 Aug 2025 08:42:03 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=pYI3=3I=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urYCp-0005Tj-Te
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 08:42:03 +0000
Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com
 [2a00:1450:4864:20::52f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id de611f6d-83ea-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 10:42:02 +0200 (CEST)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-61cebce2f78so209689a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 01:42:02 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-61cbabf816dsm2454376a12.21.2025.08.28.01.42.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 01:42:01 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: de611f6d-83ea-11f0-aeb2-fb57b961d000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756370522; x=1756975322; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4Wcpp0vQrg94lHJGRgm8P/44drSFfisXzKQaSwMvnVg=;
        b=CiHxdEUk6xjoduP8lOkaMwULDxOldstiulQu+d2sXLdM/xFZ2VoSjyT1dhNBNsQJuS
         bYG4W0fqiZ2I61Jva8OSYZPvtPnl0qknolQrHkQT7zDb2vSq9Fzb/C3VWtGai4QulRMv
         +4Eo9xf7C+KxB0oVXcsx9v2XSK7mnCepZn3+32/oS8WjtK96fcg3cWYYDfEZQQqt/Gi0
         FItb7OERumImp3A3I13SDdMVQss4IYSm9YWze9LDbhFvF2wG0l4zRZ4r5wsJ2St0entr
         8W8JRqPaogzyZH9Ae0a68Cx2Oi3b1qVIr2vz/Gi7bjK/wfrZF8Brqwm5xZF2d1rna4M4
         2pKQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756370522; x=1756975322;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4Wcpp0vQrg94lHJGRgm8P/44drSFfisXzKQaSwMvnVg=;
        b=ou8b7MFJzxsUm7b34/Mqn2NPPScJbcQ/W873qtUCHLVM1xk3JXRzoL3NjlR4pgQR61
         zaXsgPlVL/TvxP2V3ksTiCRONt5AoCjB5kP9WDaGw+F9qRoueHp8skZL3QnKgRoH5D0a
         inQ5sbc86caNRW5MLrF3BS8TQnu7BSmsagpOw2pM5Z1RmbbJbKRzRdCZN84CYGkh4Mms
         D70qToCiFigMt/MpZLXqcc/2fODEuygOW6JydQucladmzVNg7kqKvWFpV6pAsh0QisAB
         oxQgOpxnXZ29gh5VftxCIvFy26YURlXzYMEaxD3/XqZs6LmBL4hj5eioKcsb7H7jGUA0
         uJ6A==
X-Forwarded-Encrypted: i=1; AJvYcCXP6+i2x/cxKfG9wNSVKyrTuUTbDIw3u77HH1bCsPIW1PNXXkHRse82AVG0Txb1uPUWv0Cdow5DyVw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxoSmpEJj3solggG5DIDrpe8QReuTOePuClXaM/OJmIOAVVM2UE
	L4TkLcz8PIlWDGtp+0GqDdvQ9AzxGT3OOZ6jlXSEkrFXwwweTvC+BoDAE3GKMUbuLQ==
X-Gm-Gg: ASbGncsNMrB5eVHSe755JndQ+gyIE/DSirXxW1wXkZs1vpfZkQBmemHdE27/1D6ek3y
	A2tYmr9p3Jg03t/c2PL91d/jVJkD5eCbvFsZmpW5hgIhIAe1cLFQj2O1B/zoXbzynKyHupM8X3x
	p1vpueM06nGfsqYyIvrcjtZ11PUE+Hjr6z4lpEtUv8qgUzTteUY4IO7SnWUQMUeGOSsItlPhciW
	gpuC8JB+brLmyGNxmOg4mkoBvRioD0HkJVxgEfboDGN1kKoDvyCEMQ4rxRmz2xLP0PZIGhS9xcF
	At8cSJs24TqyT3LhPmvUlS6h0aJ65EMda3HwRbiASpmMbIFESbxiCMkx81k966qhf68udYdg922
	BR2cXEuwSrkEURlaF6qqZeqBVmUXuFLwkiLGcKrnDORLHq2rCddGHZLeGv65Fy5sA4Jhuh7+FBa
	uTTVq59Ug=
X-Google-Smtp-Source: AGHT+IG9V2/H1qp97Ban48596nKW2MJX8cuOPXDfodb0WGr2R7tZd8uqgZFZBRolR6ZddHlBzj9DTw==
X-Received: by 2002:a05:6402:2549:b0:61c:9852:bbbd with SMTP id 4fb4d7f45d1cf-61c9852beb9mr6595245a12.34.1756370521970;
        Thu, 28 Aug 2025 01:42:01 -0700 (PDT)
Message-ID: <72b403be-bfaf-497f-90c8-d1cc9ff84ce8@suse.com>
Date: Thu, 28 Aug 2025 10:42:00 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] device-tree: fix infinite loop issue in
 'assign_shared_memory()'
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <d7768394209c65cfef4006c3ffc0a0f5d82c4c18.1756368997.git.dmytro_prokopchuk1@epam.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <d7768394209c65cfef4006c3ffc0a0f5d82c4c18.1756368997.git.dmytro_prokopchuk1@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.08.2025 10:17, Dmytro Prokopchuk1 wrote:
> Resolve infinite loop issue in the 'fail:' cleanup path of the function
> 'assign_shared_memory()'. The issue was caused by an 'unsigned long' type
> for the loop counter 'i', which could underflow and wrap around, violating
> termination conditions.
> Change 'i' to a signed data type ('long') to ensure safe termination of
> the 'while (--i >= 0)' loop.

If I was a maintainer of this code, I would strongly object to such a change.
A signed type variable used as (effectively) an array index is almost always
conceptually wrong. Plus i continues to be compared to nr_pages, which still
is of an unsigned type.

What imo wants changing instead is the use of the variable:

 fail:
    while ( i-- > 0 )
        put_page_nr(page + i, nr_borrowers);

or yet more simply

 fail:
    while ( i-- )
        put_page_nr(page + i, nr_borrowers);

See e.g. prepare_staticmem_pages() for a similar case.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 08:48:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 08:48:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097795.1452002 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urYJR-00064S-2a; Thu, 28 Aug 2025 08:48:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097795.1452002; Thu, 28 Aug 2025 08:48:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urYJQ-00064L-Uv; Thu, 28 Aug 2025 08:48:52 +0000
Received: by outflank-mailman (input) for mailman id 1097795;
 Thu, 28 Aug 2025 08:48:52 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=pYI3=3I=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urYJQ-00064B-6g
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 08:48:52 +0000
Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com
 [2a00:1450:4864:20::52b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d1f4034d-83eb-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 10:48:51 +0200 (CEST)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-61c7942597fso3653143a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 01:48:51 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-61ceaf6ec7bsm209840a12.17.2025.08.28.01.48.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 01:48:50 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d1f4034d-83eb-11f0-aeb2-fb57b961d000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756370930; x=1756975730; 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=AUXfFX48DAEakyXfVCtOI1S9lZ6zGyuY1xECWIH7rRg=;
        b=edCugN43TaDAhhSgp4nnFXDT0UqHqxv9R9+s1sQ2Mg8Jy3dokwqXvPw5dq4Ko/WnR6
         cc5vhPS0HlH6WWUgXEInOhNfb8J7vsH4doLk24kjfDqnSux9ft2foYl5OWYVNQwu/AyH
         LUz+TIcMn0auxGHn0Gus68p+vE9lKL7DrdoukhilN+22kwVlMoLQWF1/nBVc2tCy+WaY
         RPBL2eF1dksDLj6MdDPyxYwpqMFho3j7cE0LWTybULchf5hfzUsQHmD5eqsdebNJajFX
         VueTaYKF14pNlFvmq5IK7BNlI/WT3t66uaRWpQxOXYN47tsX0pxGK2tEraDJ//ANiOlM
         sfrA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756370930; x=1756975730;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc
         :content-language:references:to:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=AUXfFX48DAEakyXfVCtOI1S9lZ6zGyuY1xECWIH7rRg=;
        b=V/Au21Fddak2dDWdr1HM/RUO5+GSdVCloux1nmNc1VYMVejLzjoNgAgDDJmAcfWPpv
         oE0VmwK+akemsMnTMU65l7hIgVt8KzS9Iy3ynZG4mKxxGlGFwvyV0NffQZ1SZrqSokDg
         cylLILD5y+sXJv9ZmNUM5VtkM4GUnynoW1pwSMXcsPzl7wrgoO6u5afAadxnf3CO/NG5
         i3x4GaeAjAPRNXnpEv31jpCD9+sGipvgZJPFVp9U0XdrByXmqL8ojsEhrqt94fmac2re
         COighjgj4SMyLj/VV45N84PqiD6BYxeSjmPqAmbzM4T9/qD+Aj0yhXlHIeSNOH2bJrbX
         F83g==
X-Gm-Message-State: AOJu0YxzTVL53tmQly1rJ9+tsBB23ZpxFEE76hN/aMsSCs+koby0fi81
	IHc7YKyPuEkkZZGTNGo5yybVasGFobiTJ0jbg6IpoCxjVyVcd+NlBVV7gsK3ESFBKI0ZA5ga4cl
	Yfp0=
X-Gm-Gg: ASbGncudnHoUVawbxj653E147qWSyu6BGS7XWqPkYVFlJtAguOuyLQ3BK8auvln+BdH
	Ex2BlCXpIh6jXW7qpXYuGrp81DIHu3UQi0en/ceF5MPNnu9yQVxfFv9xVdTwEKB0JL3Nj92kysV
	pSZxzxu00wwfSiDEi+/ILsttcgE8TMVZdnIaHelE61SXDRua3vLxhMbU3LBwh2KmzsCzIAk4ENI
	/FZSnKScaLl22x+OU3RwEtSw08TPUQxtMAZ8whL1HT8NvGyHqXfGSo6GQYjb3qml/DEPpjrSlDq
	Bxbrf/xhZtJ5VAhbCsZHUG33VFcRJ4OIIQ5UFLTGYKsciZJDzSUoo9NfXLOE7dbQJsBnktZlpxR
	BkUEjp/8KRvU9fa0ycO9kqwEnUQMbV03hme0ARU2EQc9L4EQ+xo2Q8449Smnk6SRJhi51mRPDZg
	1RoPPrfvxzbNrmoZdaCw==
X-Google-Smtp-Source: AGHT+IFi17hjAqIQtSfcvgHE49zU/tZKoGL/xD2ybCk39ZycbUkS55Xj2/0kgfCTQ+oXzDE2jEUiug==
X-Received: by 2002:a05:6402:5247:b0:61c:bf9f:fefe with SMTP id 4fb4d7f45d1cf-61cbfa03e42mr3196921a12.10.1756370930549;
        Thu, 28 Aug 2025 01:48:50 -0700 (PDT)
Message-ID: <c011bc78-4ce0-4c43-9638-f03aee41816e@suse.com>
Date: Thu, 28 Aug 2025 10:48:49 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: MCA hypercall with PVH
To: Jason Andryuk <jason.andryuk@amd.com>
References: <318f8ef3-aa52-421b-b9cb-6cd6139e1dd1@amd.com>
Content-Language: en-US
Cc: Xen-devel <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: <318f8ef3-aa52-421b-b9cb-6cd6139e1dd1@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.08.2025 03:22, Jason Andryuk wrote:
> The MCA hypercall, do_mca(), is only available for PV.  That is, it's 
> only added to the hypercall table for PV.  Is there a particular reason 
> it was omitted from PVH, or did PVH dom0 just not exist?

PVH Dom0 didn't exist back at the time, yes, but it's more than this. The
hypercall, in some places, deals with MFNs, which aren't "visible" to PVH
Dom0. IOW enabling it (perhaps just partly) would need to be done with
extra care.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 08:59:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 08:59:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097816.1452012 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urYTM-0007ob-VW; Thu, 28 Aug 2025 08:59:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097816.1452012; Thu, 28 Aug 2025 08:59: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 1urYTM-0007oU-Rf; Thu, 28 Aug 2025 08:59:08 +0000
Received: by outflank-mailman (input) for mailman id 1097816;
 Thu, 28 Aug 2025 08:59:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lRvb=3I=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1urYTL-0007nz-Q0
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 08:59:08 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4108774f-83ed-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 10:59:07 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by PAVPR03MB9020.eurprd03.prod.outlook.com (2603:10a6:102:329::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Thu, 28 Aug
 2025 08:59:04 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9052.019; Thu, 28 Aug 2025
 08:59:03 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4108774f-83ed-11f0-aeb2-fb57b961d000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HFg9KiH7N3mFdIdh9JZ89PhhAgCn65AZRPqWrIKteCUAhlLXk7q2h/71bsmMq2EZ+qOIsWqX6FrSHpamgg5iMw4Aqe4rjtCnj70z8+gmxiG5jVzA0qFMo8n7Ew1QIkIw8hHo/RCTyx/fBFpvB5bCtkMpoKH2IyaWRAOks/Ew0fFPJFosRl4XFgqjV5kndx/eEIszvobH8eEmPUOB1SJyBSknqZ5TKiew/f3kRUpVdEN1yeGD5uBEep1BFSpuI8Q6oNwwmHFXbJ0bISWAWyuxjIOsoplC/E0+lKvrH/UJJ1yMiVtvWBE7gZELP60EjrmIijkxxzjIaIcDw8J7+2oQfQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=A0lXEm6g+lwJ0lk7JxnilHnI3CE2LfVstsxIveYN5zA=;
 b=BW6z1xboP3xArRsdxLb4UEUXmbP5ntyTil/hc6qy9KoiuaZ1HhIcBtbwEVelaqiBKcSjobxsTgCvproBUjdV2JXrQk9vnjM5ppJgs/mtcAfoQuQk/advDuNEytUWYLCqACoR6M0HOenqGRnv/tX2u2NF+vZL3smk2va+8dHBhu8sSAzrxBOdyP1Wak+NojSjE6ISsLoQMDSXs68+pXLczaRIgZiAgCVW/VTo6lPwOwle2d93fN4b+WHP9aY13iNZlX9cbgWlETUhta1f/5z/+IKvIzK037xm33Pv/w07VBWbCrIbf04fQbBkfJRmkfiXERk2M82RjjSMTBPriLYt/g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=A0lXEm6g+lwJ0lk7JxnilHnI3CE2LfVstsxIveYN5zA=;
 b=KesIn38ym6t/8zW+f1tfEqwQ0fL1FHZ7yyaSrmSsdQ3wjTdV/p3xGQWq/KW7h3kPBo+ccL8AsAr6V2h0UFqhNYNVtsQLCwJGLbECXl/7L6li4Mfzg42Wc2mgIBZhrIyS5F77tWRnXMwTwbGHnJn8qEhLA2ApLlCyklxYRrBasNs2xSdFZyy/PfWapgQUFLyL2Pr4eoGYbR72qt5qMrEYs4Wo44HgeLynCSuYTUs/7loWgErKyb/qOoE1D57OrsvZTnPkVMjvMsn96H8w/zAsVoEYSrnIafFrIdIj/fbWo5IxFb7+tJCGy3Iau+LYZFaARkz/0sctkTMUQq2Dx3aS1w==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 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] device-tree: fix infinite loop issue in
 'assign_shared_memory()'
Thread-Topic: [PATCH] device-tree: fix infinite loop issue in
 'assign_shared_memory()'
Thread-Index: AQHcF/Q482rbLahQD0qhywmRaenDcbR3vFaAgAAHwoA=
Date: Thu, 28 Aug 2025 08:59:03 +0000
Message-ID: <50c98f8f-d3d0-4827-87ed-e1c99ef4fec7@epam.com>
References:
 <d7768394209c65cfef4006c3ffc0a0f5d82c4c18.1756368997.git.dmytro_prokopchuk1@epam.com>
 <185dce3ba4762d4528866f2e50e45371@bugseng.com>
In-Reply-To: <185dce3ba4762d4528866f2e50e45371@bugseng.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV2PR03MB9572:EE_|PAVPR03MB9020:EE_
x-ms-office365-filtering-correlation-id: 876a45fb-1960-4098-b2ff-08dde6112352
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|42112799006|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?cVl4dStmTmpFUWdSdzVhK0hSWjJrZGU5V2VyNjQ0SHB2bDhVR2N3bjd2T0hT?=
 =?utf-8?B?c1A3WEU0T2lBMmprTUNLS3JSMEVzZndqanNFeDlsL3hmNDg0SmJNY3NxM1FO?=
 =?utf-8?B?dWZWdlBUSDZiVWJESlNoYjc5MmdOSjJmbDRXNERFODdPV21ySzUvckxMUkxC?=
 =?utf-8?B?aEZOVWFOcXQwYWNLcHlEaUd6U2FqdFdTTitJZXZSdGlKYVRUZnBzTSt1NUJl?=
 =?utf-8?B?SXhtZDNweFZXV05CUkx5Y01GZVd1MHBoVGdMRkoyd0lTM2cyYnU2Q3pjWnRm?=
 =?utf-8?B?RlZZcXZVczJFeVhabk9COWRsWFBualVtVTRHLzBmWGV2bjV0OFpLNVdINnpN?=
 =?utf-8?B?QmtkbnFvcVBrTTB6Q0Q4NmErdXF3SGVzRjF6NkZtZmxhSWRxbHFiVmgvcUh2?=
 =?utf-8?B?VzF0WnFKM3U4TGlFdDZrVE4wYVIybHRWRmgwdUdTN0ppaWYrK3dCM3BtR3Rm?=
 =?utf-8?B?dXptRjhGWE1yRGhhOUxDMXlVWDhMdjFkRTRYQmpFQ0ZaTEtMWXBhWW5wb2hX?=
 =?utf-8?B?VjZTSFZ6MmFGdDlML2xCdVVHUVZTaFpxaG9kaEdiNzFCS3dyZXhOendWVVlj?=
 =?utf-8?B?Z1JGTkJGd2VOMHppLzZzZXhFZFJieVIyTGNaYW81SThEWTRjZXRYWUdoSXF6?=
 =?utf-8?B?NWxSaTU5MUJTZkdIYW0xSWRsa1dkcExjRFRYd2VhYVY5YmsyTi9WajVVaHp1?=
 =?utf-8?B?VTZoMHBZdDBlcHF3VlVJenNjaFNlS3hTOUpLdjE5bC9UWTlLUUxOakZsVU1Q?=
 =?utf-8?B?L3RWSHBiVWpwSlNDdW1IVWk3Y1ZHSk85U1FZRE93ancxdEJra2U2U3laZ1Fv?=
 =?utf-8?B?Vmw5a1c3MnBPbmN3T1hiUGxpMWNvRVM5TmlleXVDVGxIUlFXN05URWlzRnNj?=
 =?utf-8?B?MWtob21CbzVwL2s5QTlwRDQ3TXVVb1BNbllkOHM5T0RkZXBkaHlxSWVMOExw?=
 =?utf-8?B?NTA3alVyQW5HVUQ1U09PL3NpSjJvd0pzOHM0Vnd2bDU5NzRQck9aZ3QrV21x?=
 =?utf-8?B?SCtTL1o4eVVMNkNCWWhVajBHcXNGZ1hDVjE1eFFVcCtDK2tDcHkrSUJCWkxQ?=
 =?utf-8?B?TDFPY3BQd0huVFh4TDQzT1I2ZUhUZUptMGNlMGpqTWpMNGZNODRUeEtidmlC?=
 =?utf-8?B?cUwzM1RHMXU5Y3pydnRjM2ZhLzNCMXp0Qm5TbTZSdHlwZmhBSGYyZys5WERJ?=
 =?utf-8?B?TW9oVkFQKzR5WUU3cDZ5dWd3T29wbHJKSDhTWHNkdk1tdHVBcVc4a2E5ajhh?=
 =?utf-8?B?TFJBb25WTnJnMzVzT1hVK0hBVGoxWTFTYmpiUFl2TVB3K00raWxXVy9xdTRB?=
 =?utf-8?B?bFo5SXp2U0c0RU9jUFRqdHlZaVJsMzJjYXFTbkRmK0pQc0RCb0NxYjlGY2JQ?=
 =?utf-8?B?WHF0aEowakJWd2lZZU8wTWZiOGV2V2RIYW4zUlVveExJZ0hTUnp4T1hDcGpI?=
 =?utf-8?B?RTZ1amw2UEx6elliMVgvanJjRnVHdmZrQzBFN1ZJc1RONkltYTNveHhTYUhH?=
 =?utf-8?B?OUp5amloeW1ZemZoZlZUMzkxRHpzT0xsZUUvWDdVM3ZXVUJQQVBXYWlZUXB2?=
 =?utf-8?B?SkhraGRVL0VwTG1Md1lUdVowaFIwVVlXZnFFckU0d3I3Ty9HNXpVcnZ2QlEy?=
 =?utf-8?B?MWsyMDBucmF5YmFIYjNqWU5nSEMwMG5lbGt5VGhGcGplcmNNUStGVTRWRjEx?=
 =?utf-8?B?Qk44T3ZKQUxBdkVEdkhwRVk3aWVjRjRLVnRpMjNtNUVsYmEyTTBiaU56Sksv?=
 =?utf-8?B?cmxkcmRDMWljWlJpblFMRWlZMk5VZmhURzZnSzFWcFA3cEZva1FuWWw1YmMv?=
 =?utf-8?B?WWZPV1BWd3kwS1N3YXplQ0NYUWtMZDFyQU44T2ZJR2RRTnViWDdXdWNJbE8r?=
 =?utf-8?B?ZDZTU29hekZldDQ5Q0Z5WTQwdjhoMGI1YTIwT0Z3ajRJeVlnWW9IYWlFSUtx?=
 =?utf-8?B?TGF6QmxHUzB4bmphSmRMNzE2bzg1SGJtMG5qQ1B3L1hMM1RySWFTOUdSS242?=
 =?utf-8?B?VSt2dThyWnhBPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(42112799006)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?eWpMb1BhdEhWMnhFalBGLzN4Rmt3VnZuZTdUZmZ4ZFBhbEN0WG9nT2ZtZysy?=
 =?utf-8?B?ZytwelF5NDNIK0FqTzd5dWNuTGx3a2NOblNybVRVRGtSNjY4bXZmMnZ3V1Rw?=
 =?utf-8?B?VWpWR2Zhc2V6RmNJY2JTdHNQNnNZUEVPUnhRYXUzQ0R6UlE1QjF1MDdWZXdN?=
 =?utf-8?B?aTh0SXptSThzOXkwTXl1MnVZRzF4MUVmOTBJV1BuWTNoVjl6UlVlc1dib0w3?=
 =?utf-8?B?cU42alY2WmZ0SGp3eWJHMTN4bmFaN0paS3FKeCtFaEJ6d050Y2ZrMjRRYWtW?=
 =?utf-8?B?azBjR1U0Q1dpSng4UTAwbjdnL3F0T1ZCVGFnUmViU0VJc2E2cFNxbkFnYjc2?=
 =?utf-8?B?R0UrUnYyaXF0RDZiQ2FpR3p3Z2RtM2ZJUmprTlI4WG5qbG8vTG11TE0vSzB6?=
 =?utf-8?B?THdOYWEvaFJxcU9oSkowWW9rMzkybnl4Ymxqck9PMUw1SmU3Q1dBMEdlNlVy?=
 =?utf-8?B?OHBINDQ3TzF4alJ0ZXlRcDhta05rTDZseXBnWnhNMWgxZ1Uxbm9oTWVjZHVC?=
 =?utf-8?B?M3ZxcGJPbGkxQStjVUR2UjBYUWthSXFtRVNMaE9uRUd4aDc3by9HNXVnajdW?=
 =?utf-8?B?ekJkbEZTWTV6bGQ0alpLTUlQcm50MlZkNTYzNURhbXlzbGtsNTNvL1dkeFRJ?=
 =?utf-8?B?SWx4Nlh5N2ZUd3ZSQ2diNGxiRmNnVFNuZjRDRXBNU0hSL2FRRytOQno3VWEw?=
 =?utf-8?B?WWMvamFNd0tVcFJCeDB2aVV2OFJpN28razN4bkhlUHdrbUZ1YUpKOE1qVm9Z?=
 =?utf-8?B?YTIzN0pKSGVzQXFVYmVGSVFuRXB0QnpPR2YxeUVwbEJjcEhvTnFud2tPbm1n?=
 =?utf-8?B?L1ZXT0Y5eWlqZk5rL1ZjdTdSYSt3cENacjdocVRtVTVkRnFRV3FyZUM3Y281?=
 =?utf-8?B?Z3BLK2N6MkNET1lrZDN0VkhOYThsYjFReEc4SU9GUERScDFOalFmYXUrajdI?=
 =?utf-8?B?VlZBWGxVME1IWlBQWVc1VjlyWWlTUDdJM1hJd0FGQUhiaWlBZVhnVzF5dUlx?=
 =?utf-8?B?TEdHT093QVpyM3hjcHdzNFlETjladHR1TUt1VlZQQzR6ZmdvdG5TajRPK2Yr?=
 =?utf-8?B?ZS9WU2taVThDY3BzWWNVU1lTSHEvMjFaejdqY2QzU2FvT01ReEo2YVFXd2ZG?=
 =?utf-8?B?eGxZcnM4MUt3V1hWVzFQRFh0c3JHaTRQR0ZpRlpZVUV1c3lraEloa2lGdVEy?=
 =?utf-8?B?ZHJKNG80Sjk0WWRXUTgrRXNhRncwVk4yVjFUdUZUUnhLanY3SjBnSzNMOExv?=
 =?utf-8?B?T3ZOQXVDVXBha3FaN2pvcHdRNllkWFAvNXhhSUluOUNtRDN0N3FTN1VtNVA3?=
 =?utf-8?B?TXNXRTdIelRtMm56aUtGTzJJa3BSNy8zckxsTEoxSlRPZ0s4OUJUdklDcFFP?=
 =?utf-8?B?ZVlPajRJWFRxMFpDTENBZmwwUkl4YmJIMWFvYkJzUDRJUE9welczVWF1UkNq?=
 =?utf-8?B?NnpIWFJaS0V1QUlWNlZiVGZqSm5GSG1SSFVmeHdWRkN5SEYybXU3cWZhQUdM?=
 =?utf-8?B?bVE1UHZ0dkZaS0J1YmxFSWNKeDU2TWg2RTJsSkdjek0xZXFLcDlJNjcrTXFv?=
 =?utf-8?B?T3I0VXZZdkVwM1NmMmdQNjd1eHdZRFVQR2JGaDhZV1plUEM4WFVHU2NrOHlE?=
 =?utf-8?B?azlVRm5xaU9reEtiYy83Um13NnAzL2NocmJJci9wbTZmWmIySmN0bzY4SS9K?=
 =?utf-8?B?S3NwcDZ5M0JGTDFaa0xXVzNsZUNxdk01VHQydDZMRmVVZFFDWWxFaUlRYXN5?=
 =?utf-8?B?Tk1DVG1FRWIrQXhGY1cwem5PaHNVYkJ2cG13d3pla1grelZBemZ6NnEvcVVW?=
 =?utf-8?B?cEpQOUFmNGZWZnNvL3RiNWkwdmhXekU3SFhGc1BUWlJTbkFSSmtSY1JaeVB3?=
 =?utf-8?B?QW01WStJQjVZWWhmdnRUankvbFkzU2FkOVBINytEYXEySmZEbStsaFJmNDFK?=
 =?utf-8?B?ZC9UTS95akNNOHNPL2dDbGVlN0V1Qk4renJxSGFZM0xkdVVlK3BFazJIcE1L?=
 =?utf-8?B?bEhTdVZBcE1qdEF6SVZsa1ptSG5WcE5tdmN4aVpjdGxqNmFYeDVKZktwK0NF?=
 =?utf-8?B?czVZV3VYSEg4a1RDMWtyRlpUdldWcVdObFkyUEFkSjVZWGpzNDcwbDVETnQ0?=
 =?utf-8?B?L002YkU1bnNnampGV2p2VVZFcnIxQ0FjVmRWU3FkY2dZNWh6Wkdabng3TU5a?=
 =?utf-8?B?eUE9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <5917905B4B638C4C96A3D1D8E766EFD6@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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 876a45fb-1960-4098-b2ff-08dde6112352
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Aug 2025 08:59:03.7511
 (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: SsE1HmWDRZ+8eFaogfHC6oB5XPXuena6fVzwTIF/GPTsFqnmQCOG27dOCKEpA7FBsVOSxPdjL3XLu+8TUd4WuHMOf/XG4hgxO9xV8fbbrwU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR03MB9020

DQoNCk9uIDgvMjgvMjUgMTE6MzEsIE5pY29sYSBWZXRyaW5pIHdyb3RlOg0KPiBPbiAyMDI1LTA4
LTI4IDEwOjE3LCBEbXl0cm8gUHJva29wY2h1azEgd3JvdGU6DQo+PiBSZXNvbHZlIGluZmluaXRl
IGxvb3AgaXNzdWUgaW4gdGhlICdmYWlsOicgY2xlYW51cCBwYXRoIG9mIHRoZSBmdW5jdGlvbg0K
Pj4gJ2Fzc2lnbl9zaGFyZWRfbWVtb3J5KCknLiBUaGUgaXNzdWUgd2FzIGNhdXNlZCBieSBhbiAn
dW5zaWduZWQgbG9uZycgdHlwZQ0KPj4gZm9yIHRoZSBsb29wIGNvdW50ZXIgJ2knLCB3aGljaCBj
b3VsZCB1bmRlcmZsb3cgYW5kIHdyYXAgYXJvdW5kLCANCj4+IHZpb2xhdGluZw0KPj4gdGVybWlu
YXRpb24gY29uZGl0aW9ucy4NCj4+IENoYW5nZSAnaScgdG8gYSBzaWduZWQgZGF0YSB0eXBlICgn
bG9uZycpIHRvIGVuc3VyZSBzYWZlIHRlcm1pbmF0aW9uIG9mDQo+PiB0aGUgJ3doaWxlICgtLWkg
Pj0gMCknIGxvb3AuDQo+Pg0KPiANCj4gVGhlbiB0aGlzIGxpa2VseSBzaG91bGQgaGF2ZSBGaXhl
cyB0YWcuIFRoZSBSMTQuMyB2aW9sYXRpb24gd2FzIGZvdW5kIA0KPiBhZnRlciBhZGRpbmcgQ09O
RklHX1VOU1VQUE9SVEVEPXkgdG8gYW5hbHl6ZS55YW1sPw0KV2lsbCBhZGQgIkZpeGVzIi4NClll
cywgd2l0aCAiQ09ORklHX1VOU1VQUE9SVEVEPXkiLg0KPiANCj4+IFRoaXMgY2hhbmdlIGFkaGVy
ZXMgdG8gTUlTUkEgUnVsZSBSMTQuMzogIkNvbnRyb2xsaW5nIGV4cHJlc3Npb25zIHNoYWxsDQo+
PiBub3QgYmUgaW52YXJpYW50LiINCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBEbXl0cm8gUHJva29w
Y2h1ayA8ZG15dHJvX3Byb2tvcGNodWsxQGVwYW0uY29tPg0KPj4gLS0tDQo+PiDCoHhlbi9jb21t
b24vZGV2aWNlLXRyZWUvc3RhdGljLXNobWVtLmMgfCAzICsrLQ0KPj4gwqAxIGZpbGUgY2hhbmdl
ZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL3hl
bi9jb21tb24vZGV2aWNlLXRyZWUvc3RhdGljLXNobWVtLmMgYi94ZW4vY29tbW9uLyANCj4+IGRl
dmljZS10cmVlL3N0YXRpYy1zaG1lbS5jDQo+PiBpbmRleCA4MDIzYzBhNDg0Li5iNGM3NzI0NjZj
IDEwMDY0NA0KPj4gLS0tIGEveGVuL2NvbW1vbi9kZXZpY2UtdHJlZS9zdGF0aWMtc2htZW0uYw0K
Pj4gKysrIGIveGVuL2NvbW1vbi9kZXZpY2UtdHJlZS9zdGF0aWMtc2htZW0uYw0KPj4gQEAgLTEz
NCw3ICsxMzQsOCBAQCBzdGF0aWMgaW50IF9faW5pdCBhc3NpZ25fc2hhcmVkX21lbW9yeShzdHJ1
Y3QgDQo+PiBkb21haW4gKmQsIHBhZGRyX3QgZ2Jhc2UsDQo+PiDCoHsNCj4+IMKgwqDCoMKgIG1m
bl90IHNtZm47DQo+PiDCoMKgwqDCoCBpbnQgcmV0ID0gMDsNCj4+IC3CoMKgwqAgdW5zaWduZWQg
bG9uZyBucl9wYWdlcywgbnJfYm9ycm93ZXJzLCBpOw0KPj4gK8KgwqDCoCB1bnNpZ25lZCBsb25n
IG5yX3BhZ2VzLCBucl9ib3Jyb3dlcnM7DQo+PiArwqDCoMKgIGxvbmcgaTsNCj4+IMKgwqDCoMKg
IHN0cnVjdCBwYWdlX2luZm8gKnBhZ2U7DQo+PiDCoMKgwqDCoCBwYWRkcl90IHBiYXNlLCBwc2l6
ZTsNCj4gDQo=


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 08:59:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 08:59:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097822.1452022 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urYTg-0008CK-9w; Thu, 28 Aug 2025 08:59:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097822.1452022; Thu, 28 Aug 2025 08: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 1urYTg-0008CD-6z; Thu, 28 Aug 2025 08:59:28 +0000
Received: by outflank-mailman (input) for mailman id 1097822;
 Thu, 28 Aug 2025 08:59:27 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1urYTf-0008Bi-1Z
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 08:59:27 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1urYTZ-00AqRq-18;
 Thu, 28 Aug 2025 08:59:21 +0000
Received: from [15.248.2.24] (helo=[10.24.67.148])
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1urYTZ-005XNc-10;
 Thu, 28 Aug 2025 08:59: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=UdmYXuvlq2RhkD9sTNBC/CZn9tcfG0l7cBtkAb1AF4o=; b=PKJ8ZKvbh7P1L9FzbU0Qku9GpZ
	3ICO3WZoLhqrU9szu24iGQ28YBH5tLzk0pbOFDGgc0T2Nzpls6VUyLZQLii/cDKEj1a8u/jD9dTMz
	wkkY2H+cmdgEgZJR6UTKKwp+ugC89J3XgW5J9kpDF7koKFbO81K9ZLv3JTTxWD/Uw9qM=;
Message-ID: <fa4ceec0-64f5-4462-9d84-def71cf12cf0@xen.org>
Date: Thu, 28 Aug 2025 09:59:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] device-tree: fix infinite loop issue in
 'assign_shared_memory()'
Content-Language: en-GB
To: Jan Beulich <jbeulich@suse.com>,
 Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <d7768394209c65cfef4006c3ffc0a0f5d82c4c18.1756368997.git.dmytro_prokopchuk1@epam.com>
 <72b403be-bfaf-497f-90c8-d1cc9ff84ce8@suse.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <72b403be-bfaf-497f-90c8-d1cc9ff84ce8@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 28/08/2025 09:42, Jan Beulich wrote:
> On 28.08.2025 10:17, Dmytro Prokopchuk1 wrote:
>> Resolve infinite loop issue in the 'fail:' cleanup path of the function
>> 'assign_shared_memory()'. The issue was caused by an 'unsigned long' type
>> for the loop counter 'i', which could underflow and wrap around, violating
>> termination conditions.
>> Change 'i' to a signed data type ('long') to ensure safe termination of
>> the 'while (--i >= 0)' loop.
> 
> If I was a maintainer of this code, I would strongly object to such a change.
> A signed type variable used as (effectively) an array index is almost always
> conceptually wrong. Plus i continues to be compared to nr_pages, which still
> is of an unsigned type.
> 
> What imo wants changing instead is the use of the variable:
> 
>   fail:
>      while ( i-- > 0 )
>          put_page_nr(page + i, nr_borrowers);
> 
> or yet more simply
> 
>   fail:
>      while ( i-- )
>          put_page_nr(page + i, nr_borrowers);
> 
> See e.g. prepare_staticmem_pages() for a similar case.

+1 with Jan's comment.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 09:01:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 09:01:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097846.1452031 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urYVi-0001iq-Mh; Thu, 28 Aug 2025 09:01:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097846.1452031; Thu, 28 Aug 2025 09:01: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 1urYVi-0001ij-Jg; Thu, 28 Aug 2025 09:01:34 +0000
Received: by outflank-mailman (input) for mailman id 1097846;
 Thu, 28 Aug 2025 09:01:33 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lRvb=3I=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1urYVh-0001id-9i
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 09:01:33 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 96e7ca68-83ed-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 11:01:31 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by VI2PR03MB10668.eurprd03.prod.outlook.com (2603:10a6:800:270::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Thu, 28 Aug
 2025 09:01:28 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9052.019; Thu, 28 Aug 2025
 09:01: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>
X-Inumbo-ID: 96e7ca68-83ed-11f0-ae26-e363de0e7a9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=T4T60U8wv6A+s414rsQXU2pD7Ol6BMWAgENtVECm4LA491jYVeOVnngbObAN5a3zhAZ6idW3CnellSMfAWg+hgNt6rQcs/KrvOJxoADNoYxLaKlQ1INW6gT8A8J1Eb3Vx8bKIPJ78vZn8p1L+I7Uho0tmPM5M+xP1cl/qMZya77mZajfQlrnb8f/kd+NZPk7KyOubZ8f1MwRn/FbkaaaVVrn1uL65AWHBO0C8vpzIkxCK0jhEULsdVSCRoZKsp6n6F8jLEMQkzusUot/ZvV46IzqTIui05Oz/r7ikSLKvhhG0PPoS4+c1+vHvSbLa9Jk7wwwVNeGy1PE6ZYNU2FXPQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=m1pVTqEwqo04a7XIAi1BP6JzpupGuwX7dTZeMjUnZoo=;
 b=LSq1OP0V+fJoUi3T+R+E6S9Qly1ss+SCEkaGHvk29sGKZaGv4yDRaUDSMdp1Nk8P5z7R2fRARnwIeFqloQqurFJANPdJ+xrDTcvcsNQVCulhzlPeOBKV51zOIdI8h1yZwRHiOXHuaBd7XebcxZlKbrdgRUDQR1EVI85m//a5u+Hv+doG8Fj5j2Y+pEdOilQCJdlCuFjdPSzQE4B09E5yhF3vu6wYIsobvuUWgJUKQEYk5N9eXh2hJHHu1EEvVETHwUTS/za9RlivFCS+idIQo2PQTyTjbwlt0lMY3fbk/QxCdCL2kBr45S2YEaLfCQvBboZhLmPMYL3uwH0bFMbLyQ==
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=m1pVTqEwqo04a7XIAi1BP6JzpupGuwX7dTZeMjUnZoo=;
 b=vMTwIBngZoL5wRtB2h6PBHBwRC9Yl7KDVzgjtJ60XFmMasu9wFTbaRHjkLBmm5kr9PXxWUDogfnO+r09hALZ/EPUT9TNZkmrAnPnBpCO92ToH4xcQEM8LaZIx+47IVSSpHsKtGrRSLqtt7FhWAXJk8JCwrpca8yS1hrXmif4Z3sfQj0ZBNkD3PZqbRT8M3F0tBYK0rGKvAUeuiACi6VTUoU899hEXrqe7Cv0493zv+8baxly1Rgonl7GiW/6OlvNKRHBqmp3rA3KbXsMHD4ebj6HSsAkvI3NueNaML4Qvbyoj1fCXKd0uB2M24t68yILKAzAsKIW+ZqWNsQiRSaVWQ==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel
	<michal.orzel@amd.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] device-tree: fix infinite loop issue in
 'assign_shared_memory()'
Thread-Topic: [PATCH] device-tree: fix infinite loop issue in
 'assign_shared_memory()'
Thread-Index: AQHcF/Q482rbLahQD0qhywmRaenDcbR3v1QAgAAFb4A=
Date: Thu, 28 Aug 2025 09:01:28 +0000
Message-ID: <a668a520-ad19-45d4-9de6-30f67f7c2a8b@epam.com>
References:
 <d7768394209c65cfef4006c3ffc0a0f5d82c4c18.1756368997.git.dmytro_prokopchuk1@epam.com>
 <72b403be-bfaf-497f-90c8-d1cc9ff84ce8@suse.com>
In-Reply-To: <72b403be-bfaf-497f-90c8-d1cc9ff84ce8@suse.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV2PR03MB9572:EE_|VI2PR03MB10668:EE_
x-ms-office365-filtering-correlation-id: a9d1e115-27b0-4ce1-f7e3-08dde61179b0
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|42112799006|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?V0t2dE9PY1Exc0dua3I1Y2Zobno1ZXFBRE43UkljcjlxVGg5NlNVcG5EbGk2?=
 =?utf-8?B?cW1sb0VvdHJFMFVyOEdoRGFkYUtta09JSnBWNWFBcU1Ba0R4a3g5c3hpcGgv?=
 =?utf-8?B?a3FNNkF6UWJRWEVnM0JuR2MwTWlFd3dXVjE2SmlVNHo0aGFsZStJbjBnOUtI?=
 =?utf-8?B?UEw3NlJRZ25DYlNMbFFJOVFuZ25yWGhDNm9ZVGJuQ3V4elZoMFhWajF3RFQy?=
 =?utf-8?B?YUF1ZSs0Q1ppV3Z5S2VDbzNWY2ZvUzFLcENTVG43amtzR1BMMzNsT2FkZEJq?=
 =?utf-8?B?bWQwdVVrTlNLRzZNZkdiVVdqRU5zTmU1RnFTTlhibnVubldOYTZ3R1V0Vm9v?=
 =?utf-8?B?dWpXL29UdFdMTTNkNDRlMXVrZFVLbmR5NzBlcjcxYUJDM1RHcFlUdWJ5VWhE?=
 =?utf-8?B?VTE1eUw4OE96MDF1RVNLMG1HSW5JQWZSNkw2NGVHdzlSL3JqanJJWUkyWTc5?=
 =?utf-8?B?SUEwUHVxeXRtbEI4RDI3YnlSS1BrOTRRcTdpbm1Gd2xHMWhLeWN4aS8yQkh5?=
 =?utf-8?B?akdRcWlZb3ZPQTFBQy9nVFd5OVhCMUR2eXNjYmZvemcyaHpoNnU5L1pyaUdz?=
 =?utf-8?B?bndheHZXam5UUHRUaTVPRHNUbFJJSTVCWW5DUXZBaGtPNUhNVmxNK0h0RWhN?=
 =?utf-8?B?QzZnQklSSEhTMy9ieUt3eW5sZVdBbDBMdC9ISk1YL0doeXF6RGNNUnord2U1?=
 =?utf-8?B?dGJwMWJ3QlJWVlM0VVZNZExGdEZaRlljY2xXeGV4L2tmTE4yYXdlN1dkeVJx?=
 =?utf-8?B?YUxVbFJsTitVYkswR1ZMbnBwSXhWYlhtYTBXUVl0QkZOUU44Q3M1eGh5Qk9T?=
 =?utf-8?B?NUhsUmp4RGdONkh3VFNYTWlkS08xVlRVLzF1UTZpT25XdGlRbWY5cGYyVjQy?=
 =?utf-8?B?QlloVWFjY1pPczM3NGZSQ1VIbHZqZEQzNHphQURXazA5U2NRSG1BSng3T05D?=
 =?utf-8?B?cFQzZ1R0akhWemgvaWJUdVpmUGx5QzhGZUFpZ2xTZXJxVS9ldFh2R2lnMy9F?=
 =?utf-8?B?clQrbDl3dVJtOFZqdFZqWE0wZmhJNEZRdk5DZXhhUjluOStDajg1K1RHeVk5?=
 =?utf-8?B?YXZ1MVVwTm9kUmpLVEpHZ1pCd0tuamV3MDFBTjB2RzAvNi9na3JKMTZGcHpa?=
 =?utf-8?B?dGFYTnZVTU1vbk12S3p3MWg0dW4xdnl0ZnVVMEpHb2kzYkt2NlR4RERpcFo4?=
 =?utf-8?B?Y1dGcGZDWENndUhtWGxCVFRKOFMwM3E3UjRMUG5nSDF2cCtYbUVEYWRRZmRX?=
 =?utf-8?B?S3FnaEFaUXE2MmNVSWloVFFQU2pOK3o5VE9sR2NzTCs2VDRNeGoyQkFUNHpY?=
 =?utf-8?B?TGJJNVFVQVRLa0RrY3ZoMUZZamh4TFhYc2h4VzJIUWpyWWlPSHBZaWRRVUVC?=
 =?utf-8?B?U1V2b1B1dmROTGtUdEMrUGtQbHBZMXZmWUJ3KyttODlPWVMyeWRnQmhJZHBW?=
 =?utf-8?B?S2RQVHFDSEpFemxuajZ1SlhuekVhL1JBaUlvdnJaekNZNFRTREd5RGw2T0Rs?=
 =?utf-8?B?eExEWnRKWWh5SFRiV3ZIdGFJV2FFUko3blVVdXcwU2djZWNwdm52K1NFUk44?=
 =?utf-8?B?ZlNUWUxQUHl3R0thc1p0RU5aSnJ2aDNyK2NXdWZCcUJJdWdQeHVjMzUwa0dp?=
 =?utf-8?B?UjJlcnJwTjh3dHNMWGRMWEpFRjIwem9OMmRlcEJYeVpERUFSa29MeldmZ0VO?=
 =?utf-8?B?VE0zWVVudHVzYy9SY1A4cU1FTHFxbkdSV3dqcEVyRDRqMHZ3OS9sSk9KQ3RU?=
 =?utf-8?B?MkJMR1VjL1B3V1RFVnhxRjhRZHgzUlV0ZHIvdnBseVZPSEFBNFByNnpnNEh2?=
 =?utf-8?B?R3hIanRQQXZlbDluNnpBUHhHaGdFV3RxMmppUFdBRWhaa2E0WTBWYVhhZElT?=
 =?utf-8?B?eUFWWjJvTHU4K0h2R2hmejZ4YmtGd1F5YTI1MHcvZkVSOXhUb2VLb3F4Z3V4?=
 =?utf-8?B?VjI4VmpSRi8rSmhqRkNFaStSaWxSL2VNNmQ4Q2U0REg5M3Y0eUczUW5IRUwx?=
 =?utf-8?B?ZVNxRjBEQ2dRPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(42112799006)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?WHV1TlI3S0NZeFlVdkMxbmNtc3I1d3V2WUVxWUg3bDRJOXJNaFczRzhxb29W?=
 =?utf-8?B?WFk2RG9tNkdoT0YzNzlvWDluWFJzODBYSkE3K2pWVVN3R0tmUm1YQW14TER0?=
 =?utf-8?B?eXc2d0VwQzlCOGZoVTF6WVZSUzZrbThjZVdjb09USzkvZzFsYTRpSEoxMTFs?=
 =?utf-8?B?NlZwQ0FnQ25WSlk1QWRmS1loY3J2N0t0UEZOYlB0VE53NFhibDZKR0hqYkpF?=
 =?utf-8?B?QStxMGUzTmZXaWl6Vk5VeEJuY3pkU3kvSGlaVUw0MFBGNkR4cXUwWjlDNVJ5?=
 =?utf-8?B?a3AxU3FNekhtMitvbWhaTGJhSWhCcVRNL0hNRUdDWjBZdHRsWlFkVnJjYUNq?=
 =?utf-8?B?TXR4OTlUamhabkJSUDVYeWVYY1QzSGEvT2JoZFBBa3k4cEhiT0NIb0F6VFB6?=
 =?utf-8?B?UlVNckppNFJHMUt0eWt3cXdOaTlCNTRtZEpWeXZqRzRGUDl4TXZGMlkwOW9B?=
 =?utf-8?B?OE9ickw4NUoxSzg5MkdBNlYvcU51RG5XSnJ6bVRmYWxuZTB5TWFhZDd0alBD?=
 =?utf-8?B?Qld5UGdJYXpkTG5QQTFXMzB2ZDlGbzA1dnlBUXYwZnk0MXhyVEV4OTJIekZw?=
 =?utf-8?B?Y0V6aEpkd21mU09ndWg3RWpjbXhvMVlnckczczBEejdEYWtycDVPMkM0UjZl?=
 =?utf-8?B?dmN1cXlqSTgxVW4rMEZuSkw1S3hITTNUNTA5bG9VMzJFUGxQRkdhV1hSbFJG?=
 =?utf-8?B?dDhzNU0yS0UrRkZ4R1RNVVlkR0FVeitlOTJtd1RpMzhYOEovQlRFZFk2SDBO?=
 =?utf-8?B?MU82VWtqZE5oSmZTR1VsajdFQTR6Y2dTNUQ5bkRjMm54Y2JyekZucjBJVnJC?=
 =?utf-8?B?eWw2U2d6VU5sQ2wyVmd3Vy96b2RMckFNQ1Z0OHVvZ01OcXR2QU1yWi9EMTcv?=
 =?utf-8?B?MDJrb3hkdnY4VytEckkzRzd6Zi9QVktTcytMaXJMMkViQjVtckJzc0xFWXVv?=
 =?utf-8?B?alhscXBwSG9nRzhNKzdkZUJwK2VkZC91RWhVZlc3Tk1pOERZQ29QTGtmcS8v?=
 =?utf-8?B?eUE5MWp2Skx4WDFaREpsamY3eFpjbkxTQzdzRmF5RHpWQnAyeitjUTAvNXMz?=
 =?utf-8?B?bTZhUVNNdWp2cHpuRXArUS9LaG96ZHNqWHFraGJRMjB6NnBrT1crWGVYVGtU?=
 =?utf-8?B?aEdZcFVva09LZ1U2QVlobGNTbENUcU9DdmpWNG5WWUsyalNselNmS212MXM1?=
 =?utf-8?B?akYyV3hOYlN6bGhNWFFHRlBOZnZwVitmSXIvN2FRcWgwbWlaUFBOUnl3Y3Nx?=
 =?utf-8?B?ZHlxU3hXZ2h2Y0JtdEJkTkwzQzJQcWprZHdMSVVqZDFyYmtENVFYa1VZOFNr?=
 =?utf-8?B?WXhQY2JlSVBVQnhsTUd6WCtoZXIvTmpFQUswNUFzRm0zSWJJbzZFSHpES1g5?=
 =?utf-8?B?ZFR2eUx0Zit1M2REcVJBRkZVQ3JFRG5BTFJBTFArSVlBUjdxWE04MWFBdHRa?=
 =?utf-8?B?SjkvSHc2WmY2U3RsRDQwMmU5SFhVbTdGVWhQeG5MZUxiTXBLdVU5NWg0UURx?=
 =?utf-8?B?WW9Zb0E5MTdjcjRJeXo4TUp3SmdsaWdGK2ZLRVVLVnUya1JGQ1dXS29pUHVF?=
 =?utf-8?B?R3hVL0k2RlUyRmRqSzNFaVBYZWo4RGVtRG55VXhVZmpDODBMclhxcEwySllV?=
 =?utf-8?B?TTUrcmVlZnQ2WjNUT0M4ZHJoOXZsa3pyUEtyc3lzcUlKbnhwSFN2Q09NZm93?=
 =?utf-8?B?amZpS2g3dEwxL2ROa2xZajVaOCtaRWJETlA2K2hNQ1lCdXR5TDR5a09nbE84?=
 =?utf-8?B?WHp6eS9kZTdKK29LVGMxZzg0SVJXN01rdDJ1bGx1Q08zbW43aUpobDFhRS9X?=
 =?utf-8?B?Slg0RW1DTmsrS0FwWkJMVDNxT2lFQ1NBMVFuL2MvZ284UVB2cFlISjBsczhl?=
 =?utf-8?B?Z2pNWVc3NHdTaTY4d1U0cnRMZC9HTWJzWXNJODI2RENWd0ZrdGo3RG5OWEti?=
 =?utf-8?B?WDJQTkM4Rjdna0tibU5GaG81OVk3bzF1cnhDOStGOWhLZWJxRFJkOUFaVklZ?=
 =?utf-8?B?UzJrd2p0K0RuREZZTWUyUFBweUo4U3BibTU4czBPdVhIZ0FWUXR0eUF4U01t?=
 =?utf-8?B?NHZvdGxHQzRSeTFBMFRlMFhTcFRham9NdnZyWmFRNXpDM3JvK3pBVEhFbHdw?=
 =?utf-8?B?L1ptV25aMWVxRS9YclF1Yk5pTnlEWVhBYWVmeGEzajlIdXlmSVU2MUxjdkYz?=
 =?utf-8?B?VUE9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <DB43CACBC1ACC74FB7BA6D937F610039@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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a9d1e115-27b0-4ce1-f7e3-08dde61179b0
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Aug 2025 09:01:28.6346
 (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: EcdxCrhGanGSkiduJftvYaOuVAvlCvjVwgXvaVVSkHgSzRRav5Uo+nYmV6NwHqpTdWBtFImQv+/iRF7axHvm49tZ41oB18xLRbhaRiyRo6Y=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI2PR03MB10668

DQoNCk9uIDgvMjgvMjUgMTE6NDIsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAyOC4wOC4yMDI1
IDEwOjE3LCBEbXl0cm8gUHJva29wY2h1azEgd3JvdGU6DQo+PiBSZXNvbHZlIGluZmluaXRlIGxv
b3AgaXNzdWUgaW4gdGhlICdmYWlsOicgY2xlYW51cCBwYXRoIG9mIHRoZSBmdW5jdGlvbg0KPj4g
J2Fzc2lnbl9zaGFyZWRfbWVtb3J5KCknLiBUaGUgaXNzdWUgd2FzIGNhdXNlZCBieSBhbiAndW5z
aWduZWQgbG9uZycgdHlwZQ0KPj4gZm9yIHRoZSBsb29wIGNvdW50ZXIgJ2knLCB3aGljaCBjb3Vs
ZCB1bmRlcmZsb3cgYW5kIHdyYXAgYXJvdW5kLCB2aW9sYXRpbmcNCj4+IHRlcm1pbmF0aW9uIGNv
bmRpdGlvbnMuDQo+PiBDaGFuZ2UgJ2knIHRvIGEgc2lnbmVkIGRhdGEgdHlwZSAoJ2xvbmcnKSB0
byBlbnN1cmUgc2FmZSB0ZXJtaW5hdGlvbiBvZg0KPj4gdGhlICd3aGlsZSAoLS1pID49IDApJyBs
b29wLg0KPiANCj4gSWYgSSB3YXMgYSBtYWludGFpbmVyIG9mIHRoaXMgY29kZSwgSSB3b3VsZCBz
dHJvbmdseSBvYmplY3QgdG8gc3VjaCBhIGNoYW5nZS4NCj4gQSBzaWduZWQgdHlwZSB2YXJpYWJs
ZSB1c2VkIGFzIChlZmZlY3RpdmVseSkgYW4gYXJyYXkgaW5kZXggaXMgYWxtb3N0IGFsd2F5cw0K
PiBjb25jZXB0dWFsbHkgd3JvbmcuIFBsdXMgaSBjb250aW51ZXMgdG8gYmUgY29tcGFyZWQgdG8g
bnJfcGFnZXMsIHdoaWNoIHN0aWxsDQo+IGlzIG9mIGFuIHVuc2lnbmVkIHR5cGUuDQo+IA0KPiBX
aGF0IGltbyB3YW50cyBjaGFuZ2luZyBpbnN0ZWFkIGlzIHRoZSB1c2Ugb2YgdGhlIHZhcmlhYmxl
Og0KPiANCj4gICBmYWlsOg0KPiAgICAgIHdoaWxlICggaS0tID4gMCApDQo+ICAgICAgICAgIHB1
dF9wYWdlX25yKHBhZ2UgKyBpLCBucl9ib3Jyb3dlcnMpOw0KPiANCj4gb3IgeWV0IG1vcmUgc2lt
cGx5DQo+IA0KPiAgIGZhaWw6DQo+ICAgICAgd2hpbGUgKCBpLS0gKQ0KPiAgICAgICAgICBwdXRf
cGFnZV9ucihwYWdlICsgaSwgbnJfYm9ycm93ZXJzKTsNCj4gDQo+IFNlZSBlLmcuIHByZXBhcmVf
c3RhdGljbWVtX3BhZ2VzKCkgZm9yIGEgc2ltaWxhciBjYXNlLg0KPiANCj4gSmFuDQoNCkkgaGFk
IHRoZSBzdWNoIHRob3VnaHQuLi4NClRoYW5rcyBmb3IgYWR2aWNlLiBJIHdpbGwgY2hhbmdlIGl0
Lg0KDQpEbXl0cm8u


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 09:16:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 09:16:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097874.1452041 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urYjt-0003hZ-TC; Thu, 28 Aug 2025 09:16:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097874.1452041; Thu, 28 Aug 2025 09:16: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 1urYjt-0003hS-QN; Thu, 28 Aug 2025 09:16:13 +0000
Received: by outflank-mailman (input) for mailman id 1097874;
 Thu, 28 Aug 2025 09:16:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FxJR=3I=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1urYjr-0003fF-TR
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 09:16:11 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a33ca7e5-83ef-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 11:16:11 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by AS4PR03MB8153.eurprd03.prod.outlook.com (2603:10a6:20b:4e0::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.24; Thu, 28 Aug
 2025 09:16:08 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9073.016; Thu, 28 Aug 2025
 09:16: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>
X-Inumbo-ID: a33ca7e5-83ef-11f0-aeb2-fb57b961d000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BcFTR1aEC5TzyH0zoReMFzjka54+gF35r2yC0km6VUW3tKAMQQ26wogQ7bY7MGHJTsK5+YT7EyHlg7lpMGSxk77o8aAVYOxETXPLKr7qo7EIokXT+tu8cqVkoNU6yTcX9t/y3dUgr74tXODP+Cbh2ZnmqvqeU/LGk3KZnkhGd/TaZPbAxkAFKDDm06Je+q42MEEmSSNa+uAzUosVIx4HsEvGxVPDB8w8JkthPzVywdarYL/MfYrx6txndBKBKe3Cgz2BwZxMQESZjzuHBNKdFgCDDb81OubDpG7T2QcWoA2Hx6Ee2NYQI9iMMx7EUwtwywnjn9UbuxTWNRmXAI9jhw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LNlVm3BEpT3u5zlQF2L1wKKSsJoAkdl16LtfV7J6BIc=;
 b=ZNTRA4DEYGEI1mG8gKTBTDys3GKGgM+F/wfRZ2RUsRcqF9Y+r+WdmGf5RJ5Bwuxk9u6gtJxxxUe1BaS/BaZix0GUTMKN89KJIbpgOAvXWQOaTTBsc4oy5GAiJTdTphiSrE/I96kx3BE4tTTN+N0t0DanmyCEV5mPL2xRgQBRpjpQpz7DLUMnedGACfT0vY+YY+pevcRv0dr3NgLrkn+huORCe61HKwZJfxZHXGEVpIOC5yeZsoWX8xq6slSsjxQPGDpKGsrxZyWpTjYQYdrAsz91t6GtFGAiTm7b263Ulsr0Ey6Q65Xwe/LURoCfeEMTiLjoPkP9gJ6P32Mc/Dwfbw==
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=LNlVm3BEpT3u5zlQF2L1wKKSsJoAkdl16LtfV7J6BIc=;
 b=FsgXd9rHjpjGrHbFHuaV0Nu7aYYiycstS6T7bWXxtwZT+tQtUxSRTkmtSx/lCzqe+MR1apjrxPVD8hJWm8G+myMNUi6yprlidFh74sMUA1E45WYQMOTTH4BqkNHqB/11gXxB8RiecADKxuhMV/W+DV9oecpJ+3jwFe04D1ECbq7JUpndwaTEiBk0/n7ptYIx8Rup7XedvzI7E2ovW4hA/LLc4K/F1w2haCqh+ObIa9MFjF2DeJQuPmauJ1WH2ka/OXtBeY/8E56P/Nno+O6r4NBoogc0rDBv2i9j5M5pROf6udLolEDE6Hd0LHENbNvGDZthjnTJO7LfSj1ZMatNkA==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"olekstysh@gmail.com" <olekstysh@gmail.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v4 08/12] xen/arm: vgic: add resource management for
 extended SPIs
Thread-Topic: [PATCH v4 08/12] xen/arm: vgic: add resource management for
 extended SPIs
Thread-Index: AQHcF3/NodAFMh424U2CquWmKsv0JLR3ycWA
Date: Thu, 28 Aug 2025 09:16:08 +0000
Message-ID: <1e53adc2-216e-4760-a910-f62a8648911b@epam.com>
References: <cover.1756317702.git.leonid_komarianskyi@epam.com>
 <9e8a11b024833c1b91b8806e7708bf35b04a8f6e.1756317702.git.leonid_komarianskyi@epam.com>
 <87cy8g1i8p.fsf@epam.com>
In-Reply-To: <87cy8g1i8p.fsf@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: GV2PR03MB8678:EE_|AS4PR03MB8153:EE_
x-ms-office365-filtering-correlation-id: 14be27f4-c8ae-4d81-73d2-08dde61385e0
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|376014|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?SDZrMUpEaFVmdlBXV0hEZW5ZZUtRZkJ0aGg2Q3lvQmxBWjBVYTVPU3BPbDQ2?=
 =?utf-8?B?RnpZNlZtWnR2Q21NNkRFTEdwdFdkLzQrTy9Rb2NCRHEyTm9FVHpWTjEwTTVE?=
 =?utf-8?B?Wmw1dHR5K0ZORVNldFZSc3ZPcGM3UjdJb2ZqNmU0VDY2U3MrbTBnUFRMaW5x?=
 =?utf-8?B?RnRWamZJMXVnclkzQjF6TEJVMEJaaW40M1NkbG9MNEtkTzkvWFA5cVZKRjl1?=
 =?utf-8?B?RjA0OVNkcm15eUtPbWRpVVM3UHBrdTROZHRJS0s2blpSWEVrMDVHbCtqbThZ?=
 =?utf-8?B?SFdCUkVWZ0g4TXVFVDNnUklaMVVycGVRM0YvVDZDV2dKNE00ZDJIbHRNUW5a?=
 =?utf-8?B?RjRBNVlBNnJ6NFRaS1FhbFR4cTk5djE4dWhJWW1RNFNRZEUzNVRVZUxKci9R?=
 =?utf-8?B?cjc5RVFJZ05lNkZPWDBHZGxBMXpVRktoTytGQkhra25XTG5Zbjc3UW5qMDh1?=
 =?utf-8?B?UVlQNFhoalNHK0hVTFZRTWlkQUkyeThTWVFyc3Mxd3pkVzMwSUtrckIrYjI1?=
 =?utf-8?B?SU5IeUYrUGFoa0pKT1RlL3VaK0puQ2MwVEVFaGhkK1VaMjNxb0hwL01WVkQv?=
 =?utf-8?B?ZlFrVGdtblVHdXR6VkVWNWswQXFTM0hjOVJJUGc0ZnUzQjcrQzNwODk4RUZ3?=
 =?utf-8?B?UHZuVW9rdmpjTFZ3YnM2U0RsREEyOWh4bXJKYmYvVnpnc3Z3TGx2cWlVM0Nk?=
 =?utf-8?B?aGZlSDVzMDR2R0s1WVZDanpJWEo5cTNPdzVUc1ByOFJaQzRqU3pRTGVIRjBY?=
 =?utf-8?B?a2JySVRCZVJtZEdRT25RSFJCY3NSUVdNWmExMWJQYWtYL2FSN1JtQ21hVUJC?=
 =?utf-8?B?UHB0VnlzTXlCMmR5by9sUFZuYmROdFQzSlhVNldXUDRZMWg1ZmYzRWxpVW1P?=
 =?utf-8?B?Q2JVbnZQRXVFdkFPOVlUVEhWc1Njd3JGZjVtUFVUOTVXazg1QUNlZG9BWTJL?=
 =?utf-8?B?dERJTFJNNitXRFlkSGhXY2hwUFZXYnlySGhrZnhTSi9XVElkb1lLOHlOUnNo?=
 =?utf-8?B?ZWRTVVBEOHczeVk0VmJJNlgxWUExN0lOSzNybWgzUS9oM1JxSGc5T0xldFdo?=
 =?utf-8?B?eGhIN0FEOG5kMGJ1ZDIyVzIxeFRRb3FWYitlTTR5QU1sajZQanhpRS9oUXNR?=
 =?utf-8?B?TFVmSHBRcWNWbVlkWTVaeExxd0Y1Rlp6V3k5LzN1N2NkMFFLZEJFdVhjVlFJ?=
 =?utf-8?B?bEFUYkdrRGFuR3dtZE1Jck5QaVgvbUFoWGVFaWtEM1NhL3dNb0RHQjNzSmht?=
 =?utf-8?B?SW1lS25kM29zT2VjUG5VVG1nc0dxOUlzaEdrbFJRU1RCaTBZeDRNSmg0b3pZ?=
 =?utf-8?B?QS94N0VJWG5UVUVLWU9CSGJ2V0hiRFZCRGswb3J2MlM5MFp1UVlIVktLNlBQ?=
 =?utf-8?B?SnA5VWlhYXVDQVJVdFVRWWZVcjJRdHVpU3FtMFg4a204UVFyeTJTZUpDZHlQ?=
 =?utf-8?B?aTFhRWp0eWtvK2hqRVphRnRkOGp1Vm9xd3ViUTB4WWhmWDc4cWZDdFhrcDhi?=
 =?utf-8?B?RmYxSUF5REhtVnF0UElKbGJIbWU1SHpLRG0rTTFoUEF6QXZZVnVmRU1xUm9S?=
 =?utf-8?B?RmV2SUNvTlFqNWJMRUNYYjYwWWNoOGQ3NFpHdzRiajlLaENtaVRhdVJURSta?=
 =?utf-8?B?M1p0bytieGhWd3JKdjdZQi9oWitnYXZFeFEwNDd6VmlJNkpIMzBOYnpURGpX?=
 =?utf-8?B?Z282bG1BUE1VM3FvY3pGUy9xUU9ndmwxRDN6UElPNER6d0VoVU9tVnJuYmVD?=
 =?utf-8?B?VUxOV1Q1WjVneG1BS1RuYzhOaEJxRzYzQU81SHV1UzZNMVY0RUw1dUNndGc1?=
 =?utf-8?B?ejBGVW5wMXFUWnppa0tya1A1Y1FBVGM3eWxXemJ5RkJVTFdoanlsbCtFakFK?=
 =?utf-8?B?a2xMTU5uR0RhK0hVaFRKZGVRWG5pVWN3d1BLZ2FzaFNFUHpEbUtFTFNVM3ky?=
 =?utf-8?Q?epteuY8peI0=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?cnl6cEpPbjBDUnZNeGZHZ1dMeURYRzdlZ3haYmpsNSs3dkVkbDU2UHZpN3V2?=
 =?utf-8?B?T3ZCZVNncUEwYkk1Nnkya0tRTENOQ0ZmbGliN2xHU1o5cXJCOEowbm4wSlVD?=
 =?utf-8?B?SmR4N3V6akZpdFNDSGNWOER3Ny8wakRudkUyNWNRTUtrUEZWalNlbTZIdlZS?=
 =?utf-8?B?QzRRS1RWakhoMml5UUJibzdWUENYNG5mZ3VwT3kyV1JxMXhEK0lxMlM1NjBl?=
 =?utf-8?B?UW5DdHhtUWJ3NTZLOHNFWk43N2hPeS9sbFoyRmtsRnkxeHRrTzhaa3lVWkpR?=
 =?utf-8?B?UHJHMzlpd202bkJ2RlBHWDVMMXAvQlYzbi81elNMYmxWY2M1NHhnTXRoS2NT?=
 =?utf-8?B?dWtZRTdzOWp3UTB6c0poa1FtVVJPL2ZadmlzWmp2YUx2NkRCUk96RVBCdkZ5?=
 =?utf-8?B?NUxKd3lEM1V2bWZUcGxOYlNjOGpSbEVnTElZamxjSDFqL3VjK0ZpSS96bFZ5?=
 =?utf-8?B?NEt0cFZCL3JtbHVEMmIxZlZUQ3dSbVFFdFREYXlCWDlPaVY1c2QxM0JIcklp?=
 =?utf-8?B?cnVrTkVNNmQ5Q2tyT2J3TDNyeDlIYUhTUjRYVW54STNybFg3K0VkRk1YNHlN?=
 =?utf-8?B?REJwdG5QUzB6NVRjYUt6eFN0WEk0Znk0d3FVTGQydXhrdHN4TDdseWd1cVV2?=
 =?utf-8?B?SVhXZXVKT0M2L3MzSHRESjdWeGxQbGloeDI4VGhuSXBtSU9jd1Y0ejFxREVv?=
 =?utf-8?B?ZGNoUVFjMnRBTU1vTU5uVlJUd2pnUEFuMTh0SHZmWXkxL1RqT1lTMzE5cWkx?=
 =?utf-8?B?RjlBT0l4UGdEc0xPekFVV0hGYVdYa1BVU2lnZ1kxQTlnNGhuNEFkRlFLMU5v?=
 =?utf-8?B?NVpDcitkNGV3c2wrRGZRd0hDbFZyUXROeU9ESm4waXpBNVRUbDhCcGt6bE85?=
 =?utf-8?B?Vjd0d0xXRk1qWUNzRDhQc0liT1N3a3BVR1loL3AyZ2hzRmUxaXcvR2tSbnlN?=
 =?utf-8?B?OWJkSllYRUNSekluSndsWW5jcEFWT2hUdFdxOXI0b3JpZ0gySUovd3FLeDJl?=
 =?utf-8?B?a2JHZXV5ZjNIanZ5ZVQzT1RKSWQzb0k5Z25KV3ZKQnlYTDJ4dFIvOGhQUHJv?=
 =?utf-8?B?WUJwVk8rK3kyRDNJVWZVbWZjeW91OUlodDdMblhwd1E4UXR1M0k1QUZaQjZG?=
 =?utf-8?B?Q3V6V0xJU3hXa0NybXJkSlhHZ3I5ZVdWVSt1MEYrcVJuQ0NnazNhL0g3aW96?=
 =?utf-8?B?VFhnRk1uWWJXdzV3QndCVGtDM2dXZlVad05QUlcwTHlNTGY1Sm5ydmwzNnUy?=
 =?utf-8?B?YUFEV1dhc3orYlFZYkFNeXVNUXlyL3VPMlArcUU4MEVmVzNsSmxZd000MTJm?=
 =?utf-8?B?TU5WYm9jdDA5QytyRFVGdENtSTdrOHNWc1czSXJ5UGs2RUFwMXRCSnpVTE5X?=
 =?utf-8?B?V0tWakE2L2M1N3B3UkdST2VJTlRVRU9WWVJ3anUwbW5ieFRxeUc3M2d5V2dP?=
 =?utf-8?B?UExqZVRVQkl1RmxvSVptQnJHOElYdHNiNzNZMWZOQ3ZMVnMvYzNvVU42MytV?=
 =?utf-8?B?OUltOXNRNkhuRDdEdXFJQXBpb2ptV3lpcWMxMWlTTjI1bUpwQ0FpL0dSQjJX?=
 =?utf-8?B?S0E3cm9RbTZEOVVCVWYvZGdUZFlCT0xvbjlNNzhtR0Q0aEowcTNmTVdkUGMw?=
 =?utf-8?B?NjY0d0ZWQkE1ZkFZU2tTNDhtVVpvSXVNK0hLc2lNd3RHK09ETExDT095ZXBn?=
 =?utf-8?B?eGdDbGtWc1pEcFFicGQ5dUNteTQvOU8vcVVJVDJPdWtkM2NEOXF5Sit5YTh1?=
 =?utf-8?B?WlA1SzBLV2tPcWdpVmg5UVJQN2ZrSnpYYlpYVUxBeGZPa3c2NEFodlBId2g1?=
 =?utf-8?B?Vk0yM0x0YUs1SWRCbXlzNHZKTHN3OFp5akp5UFJhZE9qWThCM2FVQmVIdnJy?=
 =?utf-8?B?aldjS3lRTFJoZmpjaHZvc0E5RzF6ano3emFDKytZcnFFeUtLck5FY2dna2F4?=
 =?utf-8?B?VzZqOEVIaXZpaGZZMjduMlVwbmM5aWVoL096RE92dDMzZmZ4akFLR1V4RUxt?=
 =?utf-8?B?dis0SFJmRHhmRVExNzNoZjM3b1loN1MxdWMwSDZ6Q3pNN2JBaHJ4SXhhQ1Rl?=
 =?utf-8?B?NlBEQXhZZFdMYU11bGFIeitsNXYwdGdlTFZZOHBUVWdaM09lZ2dNZVdhV2ZV?=
 =?utf-8?B?RTJxS0dXTFFONm5FVzBKcWdKOVgyMEVhTWtDSnJzZFE2V1RmeEJWQkVTaDNU?=
 =?utf-8?Q?DBBVzwFidPoc3QokZHiGRak=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <8106EE024A6F9645BE79671BA671D2EA@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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 14be27f4-c8ae-4d81-73d2-08dde61385e0
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Aug 2025 09:16:08.0725
 (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: iuKRkcAt/jppPzd03QjIOmSCmhvap6LKMm6oh392ju4PmEFxtp+xdJZCv/s4CS6kVZtTdJ+yMnSx79J1xWj1qfCaxA0qcT2B4X/9FpkJn9E=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR03MB8153

SGkgVm9sb2R5bXlyLA0KDQpUaGFuayB5b3UgZm9yIHlvdXIgcmV2aWV3IGNvbW1lbnQuDQoNCk9u
IDI4LjA4LjI1IDAyOjAxLCBWb2xvZHlteXIgQmFiY2h1ayB3cm90ZToNCj4gSGkgTGVvbmlkLA0K
PiANCj4gTGVvbmlkIEtvbWFyaWFuc2t5aTxMZW9uaWRfS29tYXJpYW5za3lpQGVwYW0uY29tPiB3
cml0ZXM6DQo+IA0KPj4gVGhpcyBjaGFuZ2UgaW50cm9kdWNlcyByZXNvdXJjZSBtYW5hZ2VtZW50
IGluIHRoZSBWR0lDIHRvIGhhbmRsZQ0KPj4gZXh0ZW5kZWQgU1BJcyBpbnRyb2R1Y2VkIGluIEdJ
Q3YzLjEuIFRoZSBwZW5kaW5nX2lycXMgYW5kDQo+PiBhbGxvY2F0ZWRfaXJxcyBhcnJheXMgYXJl
IHJlc2l6ZWQgdG8gc3VwcG9ydCB0aGUgcmVxdWlyZWQNCj4+IG51bWJlciBvZiBlU1BJcywgYmFz
ZWQgb24gd2hhdCBpcyBzdXBwb3J0ZWQgYnkgdGhlIGhhcmR3YXJlIGFuZA0KPj4gcmVxdWVzdGVk
IGJ5IHRoZSBndWVzdC4gQSBuZXcgZmllbGQsIGV4dF9zaGFyZWRfaXJxcywgaXMgYWRkZWQNCj4+
IHRvIHRoZSBWR0lDIHN0cnVjdHVyZSB0byBzdG9yZSBpbmZvcm1hdGlvbiBhYm91dCBlU1BJcywg
c2ltaWxhcg0KPj4gdG8gaG93IHNoYXJlZF9pcnFzIGlzIHVzZWQgZm9yIHJlZ3VsYXIgU1BJcy4N
Cj4+DQo+PiBTaW5jZSB0aGUgZVNQSSByYW5nZSBzdGFydHMgYXQgSU5USUQgNDA5NiBhbmQgSU5U
SURzIGJldHdlZW4gMTAyNQ0KPj4gYW5kIDQwOTUgYXJlIHJlc2VydmVkLCBoZWxwZXIgbWFjcm9z
IGFyZSBpbnRyb2R1Y2VkIHRvIHNpbXBsaWZ5IHRoZQ0KPj4gdHJhbnNmb3JtYXRpb24gb2YgaW5k
aWNlcyBhbmQgdG8gZW5hYmxlIGVhc2llciBhY2Nlc3MgdG8gZVNQSS1zcGVjaWZpYw0KPj4gcmVz
b3VyY2VzLiBUaGVzZSBjaGFuZ2VzIHByZXBhcmUgdGhlIFZHSUMgZm9yIHByb2Nlc3NpbmcgZVNQ
SXMgYXMNCj4+IHJlcXVpcmVkIGJ5IGZ1dHVyZSBmdW5jdGlvbmFsaXR5Lg0KPj4NCj4+IFRoZSBp
bml0aWFsaXphdGlvbiBhbmQgZGVpbml0aWFsaXphdGlvbiBwYXRocyBmb3IgdmdpYyBoYXZlIGJl
ZW4gdXBkYXRlZA0KPj4gdG8gYWxsb2NhdGUgYW5kIGZyZWUgdGhlc2UgcmVzb3VyY2VzIGFwcHJv
cHJpYXRlbHkuIEFkZGl0aW9uYWxseSwNCj4+IHVwZGF0ZWQgaGFuZGxpbmcgb2YgSU5USURzIGdy
ZWF0ZXIgdGhhbiAxMDI0LCBwYXNzZWQgZnJvbSB0aGUgdG9vbHN0YWNrDQo+PiBkdXJpbmcgZG9t
YWluIGNyZWF0aW9uLCBhbmQgdmVyaWZpY2F0aW9uIGxvZ2ljIGVuc3VyZXMgb25seSB2YWxpZCBT
UEkgb3INCj4+IGVTUEkgSU5USURzIGFyZSB1c2VkLg0KPj4NCj4+IFRoZSBleGlzdGluZyBTUEkg
YmVoYXZpb3IgcmVtYWlucyB1bmFmZmVjdGVkIHdoZW4gZ3Vlc3RzIGRvIG5vdCByZXF1ZXN0DQo+
PiBlU1BJcywgR0lDIGhhcmR3YXJlIGRvZXMgbm90IHN1cHBvcnQgdGhlbSwgb3IgdGhlIENPTkZJ
R19HSUNWM19FU1BJDQo+PiBvcHRpb24gaXMgZGlzYWJsZWQuDQo+Pg0KPj4gU2lnbmVkLW9mZi1i
eTogTGVvbmlkIEtvbWFyaWFuc2t5aTxsZW9uaWRfa29tYXJpYW5za3lpQGVwYW0uY29tPg0KPj4N
Cj4+IC0tLQ0KPj4gQ2hhbmdlcyBpbiBWNDoNCj4+IC0gYWRkZWQgaGFzX2VzcGkgZmllbGQgdG8g
c2ltcGxpZnkgZGV0ZXJtaW5pbmcgd2hldGhlciBhIGRvbWFpbiBpcyBhYmxlDQo+PiAgICB0byBv
cGVyYXRlIHdpdGggZVNQSQ0KPiBJIGRvbid0IHRoaW5rIHRoYXQgdGhpcyBpcyBhIGdvb2QgaWRl
YS4gWW91IGFscmVhZHkgaGF2ZSBhbiBpbnZhcmlhbnQgdGhhdA0KPiB0ZWxscyBpZiBkb21haW4g
aGFzIGVTUElzOiBkLT5ucl9lc3BpcyAhPSAwLiBJZiB5b3UgaW50cm9kdWNlIGEgbmV3DQo+IGZp
ZWxkLCB5b3Ugbm93IGhhdmUgdG8ga2VlcCB0aGVzZSB0d28gdmFsdWVzIGNvaGVyZW50IG9yIGRl
YWwgd2l0aCBwb3NzaWJsZSBjYXNlcw0KPiBsaWtlIGQtPm5yX2VzcGlzID09IDAgJiYgZC0+aGFz
X2VzcGkgPT0gdHJ1ZQ0KPiANCj4gQWxzbywgdGhpcyBuZXcgZmllbGQgaXMgbm90IHVzZWQgYW55
d2hlcmUsIHNvIHdoeSBhZGRpbmcgaXQgaW4gdGhlIGZpcnN0DQo+IHBsYWNlPw0KDQpJIGp1c3Qg
d2FudGVkIHRvIHNpbXBsaWZ5IHRoZSBjaGVja3MgaW4gdGhlIG5leHQgcGF0Y2g6DQpodHRwczov
L3BhdGNoZXcub3JnL1hlbi9jb3Zlci4xNzU2MzE3NzAyLmdpdC5sZW9uaWQuXzVGa29tYXJpYW5z
a3lpQGVwYW0uY29tLzZiMzEyZTE5OTdkYTVhYmRmNTkyZjY2ZDE2MDY3ZjQzMzA0MzFkZWQuMTc1
NjMxNzcwMi5naXQubGVvbmlkLl81RmtvbWFyaWFuc2t5aUBlcGFtLmNvbS8NCmUuZy46DQoNCisg
ICAgICAgIGlmICggIXYtPmRvbWFpbi0+YXJjaC52Z2ljLmhhc19lc3BpICkNCisgICAgICAgICAg
ICBnb3RvIHJlYWRfcmVzZXJ2ZWQ7DQoNCkJ1dCB5ZXMsIEkgYWdyZWUgdGhhdCBpdCBsb29rcyBy
ZWR1bmRhbnQuIFdvdWxkIGl0IGJlIG9rYXkgaWYgSSBkcm9wIA0KdGhpcyBjaGFuZ2UgaW4gVjUg
YW5kIG1vZGlmeSB0aGUgY2hlY2tzIGluIHRoZSBuZXh0IHBhdGNoIHRvIHNvbWV0aGluZyANCmxp
a2UgdGhpcz8NCg0KKyAgICAgICAgaWYgKCB2LT5kb21haW4tPmFyY2gudmdpYy5ucl9lc3BpcyA9
PSAwICkNCisgICAgICAgICAgICBnb3RvIHJlYWRfcmVzZXJ2ZWQ7DQoNCkJlc3QgcmVnYXJkcywN
Ckxlb25pZA0K


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 09:17:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 09:17:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097887.1452052 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urYlI-0004Gd-Ag; Thu, 28 Aug 2025 09:17:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097887.1452052; Thu, 28 Aug 2025 09:17: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 1urYlI-0004GW-7J; Thu, 28 Aug 2025 09:17:40 +0000
Received: by outflank-mailman (input) for mailman id 1097887;
 Thu, 28 Aug 2025 09:17:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=V9g1=3I=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1urYlG-0004GO-SE
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 09:17:39 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20619.outbound.protection.outlook.com
 [2a01:111:f403:2417::619])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d63713e4-83ef-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 11:17:37 +0200 (CEST)
Received: from CH5P221CA0010.NAMP221.PROD.OUTLOOK.COM (2603:10b6:610:1f2::28)
 by LV8PR12MB9134.namprd12.prod.outlook.com (2603:10b6:408:180::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Thu, 28 Aug
 2025 09:17:30 +0000
Received: from CH2PEPF0000009F.namprd02.prod.outlook.com
 (2603:10b6:610:1f2:cafe::b6) by CH5P221CA0010.outlook.office365.com
 (2603:10b6:610:1f2::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.18 via Frontend Transport; Thu,
 28 Aug 2025 09:17:30 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH2PEPF0000009F.mail.protection.outlook.com (10.167.244.21) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Thu, 28 Aug 2025 09:17:30 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) 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; Thu, 28 Aug
 2025 03:35:49 -0500
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.10; Thu, 28 Aug
 2025 01:35:49 -0700
Received: from [10.252.147.171] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Thu, 28 Aug 2025 03:35:47 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d63713e4-83ef-11f0-aeb2-fb57b961d000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PHIODNYLkhJE248MQuMesoGiiK9w268QDqKiymtfULxFFevf56SLsVdnIFBXwZIv1HYOlGPJHn6RwLwk4VaDD3vGdSL255IflXZwxLA63M3IqFGpr8CDvI4JQAO+lUnw7qGcEmzVQ9JmSDBtUxxG6aEf5/WVNEr6BDPke1nPjIvJd8BJjykJPk2FJaSaZiNupnWhlMp3FElIvT0DwURuaRAY5/S9Ti3aRn65JUyf76V/LjTUwQg7z0Q3iFINhqN4AXqqAa+Cxq21t5+uQF7OCMZoc3bRDD7lUpgRquoRc6/7TNftaC0W6gIvAc8V+iAdEVOETzSb0bR7S+NboKKY+Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=o+SLfARXbkKOK8PKGRKXE0ANDWtDGwvSC4XkgK5PmFA=;
 b=rtuIJGPATxpN0KvUY8MeiOIOmMvIA1RbdtXR8yeo3nS+DxbRQcbJTH9idPEj+sNmqzzCCQ5sjhZrUrijMmL9DeNEqabJtZuOaZvNvhFhcwTVTrnk/1AQIKMSFnppeCMZlSSlSX+JQuB+LTNY/i9it80v5GfdB8FuI6LptnBzP4WVX4hdhu/y2/mrIRkppB009p05YH15MSdxzdnR7EujfdGKlr9Y7lkcXzoKjJxFjKTjF4a5xZi/AmgC8tFlqCxQw3qjgMOL4khc8FXCq/uLIbFVefqz1OWOaDlu/wbBfx7va3joVJC7EjuAzYFoKWfYbbHqjMsE/dyfMyia+BZbqA==
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=o+SLfARXbkKOK8PKGRKXE0ANDWtDGwvSC4XkgK5PmFA=;
 b=h/DEs0bacwDb+WtUWFskwy6pi0RLdGhQTo42fFdNV6Q+LPIOFjF7jIc/6nBef5pYt5iY6qzemjtkY0sM2xzOSvtq53+XC9am+hnASQbHWxEd4PyfvGYfHTwsePPuwDQf2lWyFdw1pSVi1Q+csrx8VtcqBHsOixUdRLXw0NCcUn0=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <3f59b4ff-31f0-4801-96ba-83df139af081@amd.com>
Date: Thu, 28 Aug 2025 10:35:42 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 4/5] arm/mpu: Implement ioremap_attr for MPU
To: Hari Limaye <hari.limaye@arm.com>, <xen-devel@lists.xenproject.org>
CC: <luca.fancellu@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: <cover.1756312498.git.hari.limaye@arm.com>
 <d2287756e1cd2e7f1cf4ac1bc5de775840c0b0ce.1756312498.git.hari.limaye@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <d2287756e1cd2e7f1cf4ac1bc5de775840c0b0ce.1756312498.git.hari.limaye@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH2PEPF0000009F:EE_|LV8PR12MB9134:EE_
X-MS-Office365-Filtering-Correlation-Id: ea1d2b8d-f160-4196-a66d-08dde613b6b6
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|36860700013|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?anFUcmoxQzNaQXozdDFYZlc3Q245MkZmdnFDUENIV2NMVkx4dUdWMDY4cEp3?=
 =?utf-8?B?V25iRE43UTN4ZE5DYWRqeGw5Nys1NTcxMW1CTllUOWphS2dSSUwyNDhJd2RR?=
 =?utf-8?B?ZUU3ZWZDZ3pwaWVJS3RnamV2b05uUWZQYy9xWFBESWp4d2p3YklQaEN2TTNB?=
 =?utf-8?B?UmdTTzhCOGNFemsxbmtubGloSlhZbE9wZmFsZEFwU1dXYXRTUU1FbUpXcG01?=
 =?utf-8?B?NlFkSEdramVPVGg1eXYzMGZGcHVQaHdxMitEZjdXRUI0NHhDVTA4OEtodGo5?=
 =?utf-8?B?ZG5POUxESmd3VUVTZktyY09nMzhDcW42NE5rbng4OUc3WGdRdTFvRDFtRTB4?=
 =?utf-8?B?aE1NalNxODRwd29pOUJZRmZTOEYrdDZSS284YlRKOFpsWGJhckRGNzN3TU9Z?=
 =?utf-8?B?NW5NSUFaZEl6aUpqdUU4WHhxRXdDSkg0VmxpRmwyODZuVkZZYk43eTlYcERq?=
 =?utf-8?B?WS9zQ2RNbDFiS29lVFplTkhncytaWDlZVUl4M2pyVlFRNEY2b1RhZ1JCajFt?=
 =?utf-8?B?RGw4Z3Zzck1VdXVMQXJualZ4R2NmUm9rbFpVQ2pWYlFuUDUwMHhIMHh6OUYw?=
 =?utf-8?B?TEZQT2IzbEY4ZTBlVDBFZVpYdnVYYkYvTDcxOUc4Q0NwVXdzaUJ1a3krWFF3?=
 =?utf-8?B?YTVtWnhPOENKTC9tS1NvQmNnUVRudGxXSDdycEFPLzZWbkl1T05JcVdZcmpO?=
 =?utf-8?B?S3IxMno1Y016MWd2ZWtBeEZxK2FwWUsxVHpJL1FtbkRHbnMycDlMTUVXV2Ez?=
 =?utf-8?B?ZVM5ZXJPN1p5b0x1TGFpQi9qRnpNcW8ySElFNDlxbVNzc0FQaHJYMzlYL1hM?=
 =?utf-8?B?Qm96N0FJRWQrOFpYZFVzOEYwc2RIbTdiSWRQK3NnWVlwQnY4Tm4rdUlTV21a?=
 =?utf-8?B?WTF1aW1YNzdhRzgwMXpldEVYVm12bDFiUSsySnNLQWFlSVVoUUlOZVFkSEQy?=
 =?utf-8?B?QU9XdHlQRU9nMFcyVTEzdm1oVzhDUzdRcGlWRWtJbSs5UEEwTFNaeEFKZzNo?=
 =?utf-8?B?Y25sbGl0Z0RXUE9DOCtSUVlnNXkyMFBwbGg5TTF2ZVlMVmozdmlvV3MwQ2VR?=
 =?utf-8?B?bkhsdTZnaVhmMlZJMWtVUytLemdQSzVkRHlROThYdHdwN051b2gxYUZ5ZjZv?=
 =?utf-8?B?TUcxRUFwQU4zbDBHM1ZDTktuK2MrTzMvRDZ0MW91S0lRdnlMRWRwaTlNSFJr?=
 =?utf-8?B?N0txcEUxNXlDWTRKRE1aYVBueExsS2xIUHc2aTJta29WbWZXUURlM1RuRTEx?=
 =?utf-8?B?OFM3MnZuZmNuVFF3a0lnNzhURldaYmdqWUhsZXgreGZ1TlhpM3Z2QW9wYXdx?=
 =?utf-8?B?TnhBUE9lWmt5Rmp6TDZhSG5IYVRYQU5LdkFxeFRNbDZ3UzF6aVdqZUxBcXZy?=
 =?utf-8?B?ZXVJVVBKeVFicTM2cXBDQ1BGZ0J4eWZGQkRsQ3c0ZWppMHR3ZG1ickdWU0Vh?=
 =?utf-8?B?SUtVNGtpWWhISmQvU3hSY2tkcW5TSDhVSmFhZzJxNUhpVFhRc1RacjRpUEM3?=
 =?utf-8?B?cjVQaXByUkNGeXFLSVNmMTVjbXU0dTdCa0xWUWhYRnN6QzJxeThJcFFyYmwr?=
 =?utf-8?B?MUdhZ0ZTT3FCWEZyTklyeFVDbHhBTVFYNHpmRFNQOHJLV0Z0MlQ2Rmx2LzZD?=
 =?utf-8?B?a0pDU3JaK2svSTlRUEcrTnNxZkNGRHdVRTRLSHdWTnhLYzZNQTJFWlFldmtX?=
 =?utf-8?B?R1NpWWZDQnFwbWFkcElyRElMazVBY25NcW9Manh5d0YwTmZJN3FLdlNnOGJ0?=
 =?utf-8?B?Z1JWVEFTRDlSckVTNEhMQWJHL2lhNGg0V0pnTEQ0RVI5TFlGcG5xK3pta0Er?=
 =?utf-8?B?eFYyUm1xbEZNRVdHTjczRy9YRWtEcjhjakNoRmlSa3FCRGhvNzhmVEtBK1NR?=
 =?utf-8?B?VWpGUExzc1FrWmV1ZGx3QU0zSWo3YVNJSUhPRXdlMm9jeDdlaFdiVHk5QzVH?=
 =?utf-8?B?N2x3ZURPTHFvOSt1cUY4NEpvand5em5aaHdZcTdadU05UkdpWEwwbklmZlJp?=
 =?utf-8?B?TmZvM0hoWDRUTWNOMkVKVjdpVndPWlcwWEdEcDZPQ0ZLZDBhMUxkOVJUK0Jv?=
 =?utf-8?Q?j0rpRT?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(36860700013)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 09:17:30.0383
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ea1d2b8d-f160-4196-a66d-08dde613b6b6
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH2PEPF0000009F.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9134



On 27/08/2025 18:35, Hari Limaye wrote:
> From: Luca Fancellu <luca.fancellu@arm.com>
> 
> Introduce helpers (un)map_mm_range() in order to allow the transient
> mapping of a range of memory, and use these to implement the function
> `ioremap_attr` for MPU systems.
> 
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> Signed-off-by: Hari Limaye <hari.limaye@arm.com>
> ---
> Changes from v1:
> - Use transient instead of temporary, and improve wording of comments
>   regarding transient mapping
> - Rename start, end -> base, limit
> ---
>  xen/arch/arm/include/asm/mpu/mm.h |  22 +++++
>  xen/arch/arm/mpu/mm.c             | 150 ++++++++++++++++++++++++++++--
>  2 files changed, 163 insertions(+), 9 deletions(-)
> 
> diff --git a/xen/arch/arm/include/asm/mpu/mm.h b/xen/arch/arm/include/asm/mpu/mm.h
> index 566d338986..efb0680e39 100644
> --- a/xen/arch/arm/include/asm/mpu/mm.h
> +++ b/xen/arch/arm/include/asm/mpu/mm.h
> @@ -101,6 +101,28 @@ int xen_mpumap_update(paddr_t base, paddr_t limit, unsigned int flags,
>   */
>  pr_t pr_of_addr(paddr_t base, paddr_t limit, unsigned int flags);
>  
> +/*
> + * Maps transiently a range of memory with attributes `flags`; if the range is
> + * already mapped with the same attributes, including an inclusive match, the
> + * existing mapping is returned. This API is intended for mappings that exist
> + * transiently for a short period between calls to this function and
> + * `unmap_mm_range`.
> + *
> + * @param base      Base address of the range to map (inclusive).
> + * @param limit     Limit address of the range to map (exclusive).
> + * @param flags     Flags for the memory range to map.
> + * @return          Pointer to base of region on success, NULL on error.
> + */
> +void *map_mm_range(paddr_t base, paddr_t limit, unsigned int flags);
> +
> +/*
> + * Unmaps a range of memory if it was previously mapped by map_mm_range,
> + * otherwise it does not remove the mapping.
> + *
> + * @param base     Base address of the range to map (inclusive).
> + */
> +void unmap_mm_range(paddr_t base);
> +
>  /*
>   * Checks whether a given memory range is present in the provided table of
>   * MPU protection regions.
> diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
> index 33333181d5..52c4c43827 100644
> --- a/xen/arch/arm/mpu/mm.c
> +++ b/xen/arch/arm/mpu/mm.c
> @@ -332,31 +332,39 @@ static int xen_mpumap_update_entry(paddr_t base, paddr_t limit,
>      return 0;
>  }
>  
> -int xen_mpumap_update(paddr_t base, paddr_t limit, unsigned int flags,
> -                      bool transient)
> +static bool check_mpu_mapping(paddr_t base, paddr_t limit, unsigned int flags)
>  {
> -    int rc;
> -
>      if ( flags_has_rwx(flags) )
>      {
>          printk("Mappings should not be both Writeable and Executable\n");
> -        return -EINVAL;
> +        return false;
>      }
>  
>      if ( base >= limit )
>      {
>          printk("Base address %#"PRIpaddr" must be smaller than limit address %#"PRIpaddr"\n",
>                 base, limit);
> -        return -EINVAL;
> +        return false;
>      }
>  
>      if ( !IS_ALIGNED(base, PAGE_SIZE) || !IS_ALIGNED(limit, PAGE_SIZE) )
>      {
>          printk("base address %#"PRIpaddr", or limit address %#"PRIpaddr" is not page aligned\n",
>                 base, limit);
> -        return -EINVAL;
> +        return false;
>      }
>  
> +    return true;
> +}
> +
> +int xen_mpumap_update(paddr_t base, paddr_t limit, unsigned int flags,
> +                      bool transient)
> +{
> +    int rc;
> +
> +    if ( !check_mpu_mapping(base, limit, flags) )
> +        return -EINVAL;
> +
>      spin_lock(&xen_mpumap_lock);
>  
>      rc = xen_mpumap_update_entry(base, limit, flags, transient);
> @@ -465,10 +473,134 @@ void free_init_memory(void)
>      BUG_ON("unimplemented");
>  }
>  
> +static uint8_t is_mm_range_mapped(paddr_t start, paddr_t end)
> +{
> +    int rc;
> +    uint8_t idx;
> +
> +    ASSERT(spin_is_locked(&xen_mpumap_lock));
> +
> +    rc = mpumap_contains_region(xen_mpumap, max_mpu_regions, start, end, &idx);
> +    if ( rc < 0 )
> +         panic("Cannot handle overlapping MPU memory protection regions\n");
Why panic? This function is not used only at boot time and should propagate
error to the caller, it's also within a spin lock.

> +
> +    /*
> +     * 'idx' will be INVALID_REGION_IDX for rc == MPUMAP_REGION_NOTFOUND and
> +     * it will be a proper region index when rc >= MPUMAP_REGION_FOUND.
> +     */
> +    return idx;
> +}
> +
> +static bool is_mm_attr_match(pr_t *region, unsigned int attributes)
> +{
> +    bool ret = true;
> +
> +    if ( region->prbar.reg.ro != PAGE_RO_MASK(attributes) )
> +    {
> +        printk(XENLOG_WARNING
> +               "Mismatched Access Permission attributes (%#x0 instead of %#x0)\n",
> +               region->prbar.reg.ro, PAGE_RO_MASK(attributes));
> +        ret = false;
> +    }
> +
> +    if ( region->prbar.reg.xn != PAGE_XN_MASK(attributes) )
> +    {
> +        printk(XENLOG_WARNING
> +               "Mismatched Execute Never attributes (%#x instead of %#x)\n",
> +               region->prbar.reg.xn, PAGE_XN_MASK(attributes));
> +        ret = false;
> +    }
> +
> +    if ( region->prlar.reg.ai != PAGE_AI_MASK(attributes) )
> +    {
> +        printk(XENLOG_WARNING
> +               "Mismatched Memory Attribute Index (%#x instead of %#x)\n",
> +               region->prlar.reg.ai, PAGE_AI_MASK(attributes));
> +        ret = false;
> +    }
> +
> +    return ret;
> +}
> +
> +void *map_mm_range(paddr_t base, paddr_t limit, unsigned int flags)
> +{
> +    paddr_t start_pg = round_pgdown(base);
> +    paddr_t end_pg = round_pgup(limit);
> +    void *ret = NULL;
> +    uint8_t idx;
> +
> +    if ( !check_mpu_mapping(start_pg, end_pg, flags) )
> +        return NULL;
> +
> +    spin_lock(&xen_mpumap_lock);
> +
> +    idx = is_mm_range_mapped(start_pg, end_pg);
> +    if ( idx != INVALID_REGION_IDX )
> +    {
> +        /* Already mapped with different attributes */
> +        if ( !is_mm_attr_match(&xen_mpumap[idx], flags) )
> +        {
> +            printk(XENLOG_WARNING
> +                   "Range %#"PRIpaddr"-%#"PRIpaddr" already mapped with different flags\n",
> +                   start_pg, end_pg);
> +            goto out;
> +        }
> +
> +        /* Already mapped with same attributes */
> +        ret = maddr_to_virt(base);
> +        goto out;
> +    }
> +
> +    if ( !xen_mpumap_update_entry(start_pg, end_pg, flags, true) )
> +    {
> +        context_sync_mpu();
> +        ret = maddr_to_virt(base);
> +    }
> +
> + out:
> +    spin_unlock(&xen_mpumap_lock);
> +
> +    return ret;
> +}
> +
> +void unmap_mm_range(paddr_t base)
> +{
> +    uint8_t idx;
> +
> +    spin_lock(&xen_mpumap_lock);
> +
> +    /*
> +     * Mappings created via map_mm_range are at least PAGE_SIZE. Find the idx
> +     * of the MPU memory region containing `start` mapped through map_mm_range.
> +     */
> +    idx = is_mm_range_mapped(base, base + PAGE_SIZE);
> +    if ( idx == INVALID_REGION_IDX )
> +    {
> +        printk(XENLOG_ERR
> +               "Failed to unmap_mm_range MPU memory region at %#"PRIpaddr"\n",
> +               base);
> +        goto out;
> +    }
> +
> +    /* This API is only meant to unmap transient regions */
> +    if ( !region_is_transient(&xen_mpumap[idx]) )
So is this the only purpose of the transient flag? To check that unmap_mm_range
is used on the range that was mapped with map_mm_range? What would happen
without introducing this flag? You already check for the matching attributes.

~Michal



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 09:18:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 09:18:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097892.1452062 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urYle-0004gg-H7; Thu, 28 Aug 2025 09:18:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097892.1452062; Thu, 28 Aug 2025 09:18: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 1urYle-0004gZ-EE; Thu, 28 Aug 2025 09:18:02 +0000
Received: by outflank-mailman (input) for mailman id 1097892;
 Thu, 28 Aug 2025 09:18:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=pYI3=3I=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urYlc-0004GO-RI
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 09:18:00 +0000
Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com
 [2a00:1450:4864:20::532])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e46463fc-83ef-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 11:18:00 +0200 (CEST)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-61cd3748c6dso1168406a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 02:18:00 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-61c78e49c90sm6823590a12.45.2025.08.28.02.17.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 02:17: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>
X-Inumbo-ID: e46463fc-83ef-11f0-aeb2-fb57b961d000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756372679; x=1756977479; 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=9Ejc5qhFi3Y+WR23KFs1THvG3yLExcxbqfEf/Pm+WWY=;
        b=ZQtfWLQwxc9GsoIZHmZ7v70GUI96jOCOi6K+JBVGaO9rhiAcuDBiRoYkCmNy1FUCLU
         a4Z1kvtzNPnS/w4Bw6xZOWr+kzsnwb1ujZIydSyhcKPtX/+0kkltFz1BwxB5yt2TtM4Q
         YVAWFxTz2Uto5XGrcqGoSTTNy6wxWJ/lv/gGCGe9A6/1pbdYNs8aoDI4W16GnArYS1aI
         8qETpTWlGRKMy3mhptQKyQxlpzhbIUkrMwqmGmJlOsETuAkcUQycfEAWTfqE+2j8TGNE
         Y1qvJZMbTMD9+tTix7tNRvqsMlSM51fPQhMmnNS4Xo23WgHiHL9j6uISxQCGSRwuH+52
         Uozw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756372679; x=1756977479;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=9Ejc5qhFi3Y+WR23KFs1THvG3yLExcxbqfEf/Pm+WWY=;
        b=JEyM09aRu1yTJj/IYbaVOzecGRisy/YCSmt2V26mmtuIo7u9Ks9HnKQ0z3hmxMLDLA
         FlDDm/bsgQs/AblogzdPRIVIzO5YJk+IBMLtm93vV7D2sfnVxBl3i249felijFsl+kEt
         LZJaQt+Rrd5YNZJugq1i98ksJdftixHMPP+BQCZ8+gzMn2dqV9ugj6eScWb7adx81HcJ
         ryIPA7Vrr6371wa4091IRLvKLP9kUJFknWjelfafT5Idbc/xqIRryfYEt9tmuGoumtGj
         nNwdukuGUMT+vThjP/5dAMN0MN3IKaXIPSfLedCR1CTEKmxPxMQZrYwDmdcEULA3CJ5T
         TfMA==
X-Gm-Message-State: AOJu0YzEV+gb6LzVj3yWX4ZpHgcTWeqcBhuCK4/BMCemURYa3gq+r5tS
	YmZgJaDfpTtCT23Ca43M3H0MqjASe/cjKlItmT+ale5/zrbAyyo4xYKBGmDkDJosJ4cZVywa5/s
	infg=
X-Gm-Gg: ASbGncuQEGJ1L0+IQM2bJRidlM8dyxM8cymIyUAM/Wq0Ptj1BGIGPx4sKn76/2+nzPN
	NuDjJnaA57BZyEo3f4Lj1ExIlJ0nwh4x31LOrGAVWB7ZZF304WfJKr/R5P8t0nYR8nWEEHj6w5K
	5vcZSZib1oDfsPwzr7cWgUJUZgBr0NJY43YPIRV88QGmTRLRncWg9uQHrLAvql/eYBptiRyuCCP
	9sIhEwqZDs94lFjqUeqUZ5EkseAW049IvRUHtYB9+mpDZjJpuOLl5P7Q+n6Y3MVM8A909grO5ig
	0aUaPuQ/5mI5wGTJF/hYMnJrl0QAuCkvEgbApKMSQM7LtcoROtU2d3OyLKj26EcwCCg6VGR5ThR
	4581ao2FGkcA9zHp07nzdnH7hXo6UE1yqOTfXMuePTRl5UEyCI4QCde7AuMDkqyoz7JJtjcwz0c
	m4uFiJV2M9xFaA2VRWOg==
X-Google-Smtp-Source: AGHT+IH2g0kcaN/GjgsiJ7pnxa1/kaSv4EqRVsl5G22g3dykZUuSMxQVrEVEYjKOoYh4E4RXsh9whw==
X-Received: by 2002:a05:6402:524c:b0:61c:73cb:9849 with SMTP id 4fb4d7f45d1cf-61c73cb9dccmr9968275a12.14.1756372679557;
        Thu, 28 Aug 2025 02:17:59 -0700 (PDT)
Message-ID: <1b9e5d46-20a8-4b5f-b938-e28a0429c770@suse.com>
Date: Thu, 28 Aug 2025 11:17:58 +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>,
 Jason Andryuk <jason.andryuk@amd.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] x86: introduce "hot" and "cold" page copying functions
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

The present copy_page_sse2() is useful in case the destination page isn't
going to get touched again soon, or if we want to limit churn on the
caches. Just rename it, to fit the corresponding {clear,scrub}_page_*()
naming scheme.

For cases where latency is the most important aspect, or when it is
expected that sufficiently large parts of a destination page will get
accessed again soon after the copying, introduce a "hot" alternative.
Again use alternatives patching to select between a "legacy" and an ERMS
variant.

Don't switch any callers just yet - this will be the subject of subsequent
changes.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Of course both pages can be independently hot/cold, and hence more flavors
may be necessary here.

To avoid the NOP padding (also in clear_page_hot()) we could use a double
REP prefix in the replacement code (accounting for the REX one in the code
being replaced).

--- a/xen/arch/x86/copy_page.S
+++ b/xen/arch/x86/copy_page.S
@@ -13,7 +13,7 @@
 #define tmp3_reg %r10
 #define tmp4_reg %r11
 
-FUNC(copy_page_sse2)
+FUNC(copy_page_cold)
         mov     $PAGE_SIZE/(4*WORD_SIZE)-3, %ecx
 
         prefetchnta 2*4*WORD_SIZE(src_reg)
@@ -44,4 +44,19 @@ FUNC(copy_page_sse2)
 
         sfence
         RET
-END(copy_page_sse2)
+END(copy_page_cold)
+
+        .macro copy_page_movsb
+        mov     $PAGE_SIZE, %ecx
+        rep movsb
+        .endm
+
+        .macro copy_page_movsq
+        mov     $PAGE_SIZE/8, %ecx
+        rep movsq
+        .endm
+
+FUNC(copy_page_hot)
+        ALTERNATIVE copy_page_movsq, copy_page_movsb, X86_FEATURE_ERMS
+        RET
+END(copy_page_hot)
--- a/xen/arch/x86/include/asm/page.h
+++ b/xen/arch/x86/include/asm/page.h
@@ -221,10 +221,11 @@ typedef struct { u64 pfn; } pagetable_t;
 
 void clear_page_hot(void *pg);
 void clear_page_cold(void *pg);
-void copy_page_sse2(void *to, const void *from);
+void copy_page_hot(void *to, const void *from);
+void copy_page_cold(void *to, const void *from);
 
 #define clear_page(_p)      clear_page_cold(_p)
-#define copy_page(_t, _f)   copy_page_sse2(_t, _f)
+#define copy_page(_t, _f)   copy_page_cold(_t, _f)
 
 #ifdef CONFIG_DEBUG
 void scrub_page_hot(void *ptr);


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 09:20:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 09:20:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097906.1452072 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urYo6-0006Fi-T0; Thu, 28 Aug 2025 09:20:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097906.1452072; Thu, 28 Aug 2025 09:20:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urYo6-0006Fb-QF; Thu, 28 Aug 2025 09:20:34 +0000
Received: by outflank-mailman (input) for mailman id 1097906;
 Thu, 28 Aug 2025 09:20:33 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=V9g1=3I=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1urYo5-0006FV-Ts
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 09:20:33 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20618.outbound.protection.outlook.com
 [2a01:111:f403:2414::618])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3e6809ea-83f0-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 11:20:32 +0200 (CEST)
Received: from BL6PEPF00013E06.NAMP222.PROD.OUTLOOK.COM
 (2603:10b6:22e:400:0:1001:0:7) by LV3PR12MB9215.namprd12.prod.outlook.com
 (2603:10b6:408:1a0::21) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.14; Thu, 28 Aug
 2025 09:20:28 +0000
Received: from BL6PEPF00020E62.namprd04.prod.outlook.com
 (2a01:111:f403:f901::5) by BL6PEPF00013E06.outlook.office365.com
 (2603:1036:903:4::4) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.21 via Frontend Transport; Thu,
 28 Aug 2025 09:20:28 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BL6PEPF00020E62.mail.protection.outlook.com (10.167.249.23) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Thu, 28 Aug 2025 09:20:27 +0000
Received: from satlexmb10.amd.com (10.181.42.219) 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; Thu, 28 Aug
 2025 01:50:33 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.10; Wed, 27 Aug
 2025 23:51:04 -0700
Received: from [10.252.147.171] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Thu, 28 Aug 2025 01:50: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>
X-Inumbo-ID: 3e6809ea-83f0-11f0-aeb2-fb57b961d000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=VlbTQzRXDT0BUPb+xjjcER/mY21iHfKiLju00zXIi7CLqZxF4UrDmLca8VHc/0p6+GXeeLbgD1vNwb+oXsdOA4UU1MgfzJw2gViRfu56IZVdG4mXK4S+K5MBVb0qEvxbMVGJupUz3JP8tVV45SI0nGyAXsGPPLbou/cCZsrxRIVBBZG3+XrkqnWhfmC+gWzD75HC+QtskjyjC6F6bb7e54PdFj1/+wPA7srzceNpcGwq4GOnU2o8GF0Euxup/rwU1hBoo84MZrBdyNu8JYuzbTdQEV+PiIf1vG1PXe/nXWSCGVbn/pNoMVoX5qC+de0dxtsv5TfhMLzUXurjPNLkBg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cv1nu7YeMLlbUCh3IBtACtKcGVI4E7GP1bFWkOMxR/k=;
 b=jJFl7jXyBmH1QCkFfRv+k/XweAZ5rAVzWyDanRya5IhVhi121gyCApJS7JqrFWzIpgTDSK/UgrIxtHFw4CoKhPKw6KmWqVvdsGHkix7ZMPchf1wUbgGfU4HUSNFsHomQxI1qx0quzCV1PWUNnM01+JRv55EFoz2pOI0ktDS0di64DaKWJtDqdd9Qc+ny7SzmHG+cSBKxBe8pNcHvv+VkTHEBkXfiWrgMdmzQoYBclEWl72fPwzCpPcv2CUD6EWBaEXuRDAp0e0ZndjAoN+xGGd2J0IIOYJAS28wVSe3bXWxhRA3rN7oOjxVe0Q00vGt979HnYZrAxRa0f7n2h3sxFw==
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=cv1nu7YeMLlbUCh3IBtACtKcGVI4E7GP1bFWkOMxR/k=;
 b=DZuppGZuX8jrkIQ4PzVQQO6qfWDensm1bp7WFozCbzbYzag5fR+4icQ0TrpwYuIxwM++/QKQ6NGFjQ6B/ccJNW/Eqgopica9H8XcufGzUb2mUW7myK0RrTPUzEYbvEgtrY5wmLFwuzgh+1NzE+UM8X5DMR+jNQn381+0mP98QZw=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <71a52a02-f5bd-4325-8990-440bf557389c@amd.com>
Date: Thu, 28 Aug 2025 08:50:31 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/5] arm/mpu: Implement setup_mm for MPU systems
To: Hari Limaye <Hari.Limaye@arm.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, "Luca
 Fancellu" <Luca.Fancellu@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: <cover.1753864612.git.hari.limaye@arm.com>
 <d4dc1be6f581c0c090c0cecb6fd49049a46fefee.1753864612.git.hari.limaye@arm.com>
 <68a74142-667b-4b8e-8340-fd41ec15046c@amd.com>
 <3D9F906F-83FE-47A8-A1FC-A871C1DE069F@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <3D9F906F-83FE-47A8-A1FC-A871C1DE069F@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF00020E62:EE_|LV3PR12MB9215:EE_
X-MS-Office365-Filtering-Correlation-Id: 84cbd22a-e992-4a08-23d1-08dde61420b4
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|1800799024|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?eWYrdWxiMHZKNy9QU0VCNU1yaDUxbFNQRUdINHpJMUFWN3NXMU1zQ0t5Q2lD?=
 =?utf-8?B?cU45cmo1Q05NNE4zOWUzeC9aQUwxaFVlR2NIWmdiajJ3cUFEbHZiTmpTeHF0?=
 =?utf-8?B?YXh5d0FIN0oyMW84VXZaRnhUUlpjeUFLZnFISlE5bWNlTitxUEcvSnBEVWpo?=
 =?utf-8?B?VXZyZFRGTDdqOW9WdTlobjFZdnBsdU5HMWd1QVgrZitrSEZqUHNmODJRd1Qw?=
 =?utf-8?B?L2hHcFZJS0wzbStrc2FjZEVPbUR2Y3cyT2FrL3h4aTFjYkg4NlJQc1hJSUM0?=
 =?utf-8?B?Vm12R2kwanpNd2IvV1NjVFdZUXc3T3cyRFJGNDFIQmxtUTdQUDhQS0pCUVlt?=
 =?utf-8?B?aXNFZ0R2KzRmTlNrTHE5TXZIOWFuVzV6TExVS1pEYzREOWF4NlBEcnhORDkr?=
 =?utf-8?B?L1EwSExWVEdaUURzM2lEQU5MaHJxbVNCK0NRSllMK0NEWW1ZQ1lLSTZYb0Fr?=
 =?utf-8?B?VmJqRFczYitNRk5PUittanNpTHQvaExvazQ2ZE4xVVNMd09CS3dzVkJWOWdn?=
 =?utf-8?B?aEJHa1V6Y08ySzQ1aU1xSWd4UXd5c2FlMVErSSt4WjhVWHB0LzFtNFhreE55?=
 =?utf-8?B?VzhFU3pua2pxbXBwUDRuRFhqVkN1bHF6Y3hZNmZhNVl6MFJUZXRTK3Fpc0Zq?=
 =?utf-8?B?b0RWYS9rUDFnaEY5bXNpYmR0UG93MUZTandDZnZUNEZXRVArV3ZQY3VWMVhY?=
 =?utf-8?B?OHM1SGZ1Y3o5bHF6N2h1c3RqT0o2MWZZUXE1a2JlUHBpdHdyWEhOU3hEWnE5?=
 =?utf-8?B?SFRlcyt1Yjk4S3RGWVcxazFaVm9XQkQwSElYeVg0Y0czdGtNaXhHckdXbk8w?=
 =?utf-8?B?VE1ka3dEdUxDNG1MNWZBKzdjV1BhdUlabzBpaGhyTEs4b255R05EOEw1ZlBo?=
 =?utf-8?B?bVF6THV5aWFyUEZOc013MW0vWEZEcTFHS0RZZUh3YUdsNU1teWZEMjh0NlFu?=
 =?utf-8?B?bTBNK2Y3dW1LNndROURpMEdWY3ErUVVrZXVtb0E0Qmg3d2x6SlNuaVdlak9R?=
 =?utf-8?B?d0Y3NGhHUmhCNXBxMUxiaVR6MXd5UGJqUVJDYWJtS3ZhRzBGbzFQaEQrL0I4?=
 =?utf-8?B?TkVVVXZUa3F5Nk80OXEwcmdzL09SanhGR1F3MlRXb3JpenFVWGR6djBxNTZL?=
 =?utf-8?B?aW1qTVFNUTBzdFVMS1AzSEFVWFBjMnhsWCtQWGxNdXBva1RDLzAxMytqbUts?=
 =?utf-8?B?NUZFdVJkcU5VZTg0eC9wVlBCeXJMREltSFJJaFFmbHdIU1hLRDNCS3dWS2N5?=
 =?utf-8?B?VXlGZmI5bGdtWFhuSUZEOFRnRlF5RTJNb2Z1cGwxaWg5Qk5HSGZuYzNnV0Nr?=
 =?utf-8?B?N240YVd5MUU3TXFDMHRPSVJoVExKL0tZalVUTi9hY3YzMkREZTBRSlZTTGpj?=
 =?utf-8?B?SVZnenA3czNtV2pOMUZ1UHQ4bFh0dmx2NXNsMzk1cGVoeDc3dDRXa3Q3ZXIw?=
 =?utf-8?B?UUdBOUpZaURCWDZOQ0NtOTVxdmtwSjB3L0t3QWM3bExSSVRxdEN4Z3BvcHNK?=
 =?utf-8?B?REt3T0pZZUdTc3V5dU5VS0toZTd1SC9LanR4bWxyQ1FmVFcra2R0VkhMaDA3?=
 =?utf-8?B?eUFjZXdkYXlJNzRaVzJaWTZuZ29LdURJckUzYUkrTWx1Wk9SNllibS93c1VP?=
 =?utf-8?B?cXpPQW1NN1oxK2xLakZNRkJ5c0RBejFRQXZJTGd5bld3RzBqaGxIa2kranhI?=
 =?utf-8?B?UGQ5ZDRDSjNzMzBJTjBrcUVxQ09xVDN1M3lkNk50OUpjZ0xOaHJmZHVNNE9R?=
 =?utf-8?B?Z0dCOXNKeVNsYkY0VmZjQ3pnT1NvRTBuOVdiaExLZ2RjOGhZeWdnUWZ4dHEx?=
 =?utf-8?B?aEhBTGVXcWxHRkEybmlWejBteU5qNCtwVEdPbmlsaW9tL25pMWVYdHBYdzhP?=
 =?utf-8?B?VzVLWjRrME9XQU1BTW8ybGJyTDQwUUZnQTExOS82ckFDZEVHa0p5U2hJMEx4?=
 =?utf-8?B?YzlYWVA0UzZ1ZWxKVEpIV0QzbUY2R3VLTkQxeGQweTN0STdmb0xuV055VDRa?=
 =?utf-8?B?b2o0R3JtT3lCRmRNUkdrY2MxdU1yTStMMUczVVNNc1FmcTVQMVE5ZzBXQzc5?=
 =?utf-8?Q?46QC8B?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(1800799024)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 09:20:27.8458
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 84cbd22a-e992-4a08-23d1-08dde61420b4
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF00020E62.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR12MB9215



On 27/08/2025 19:04, Hari Limaye wrote:
> Hi Michal,
> 
>> And actually, this could be calculated
>> in init_pdx() next to max_page to avoid requiring each arch (arm32, arm64, mpu)
>> to set it exactly the same.
> 
> I have not implemented this in this series, as it seems like an unrelated change that should go separately. However if you prefer I can re-spin with this change also?
No need, it can be done in the future.

~Michal



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 09:22:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 09:22:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097920.1452083 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urYpT-00075z-Cu; Thu, 28 Aug 2025 09:21:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097920.1452083; Thu, 28 Aug 2025 09:21: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 1urYpT-00075s-8X; Thu, 28 Aug 2025 09:21:59 +0000
Received: by outflank-mailman (input) for mailman id 1097920;
 Thu, 28 Aug 2025 09:21:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=pYI3=3I=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urYpS-00075k-50
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 09:21:58 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 710952bc-83f0-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 11:21:56 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-afeee20b7c0so38829766b.3
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 02:21: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
 a640c23a62f3a-afe88c76f61sm767852266b.10.2025.08.28.02.21.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 02:21: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>
X-Inumbo-ID: 710952bc-83f0-11f0-ae26-e363de0e7a9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756372915; x=1756977715; 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=PhAETet/NUuM0sqs3tNFEUe+QcAOBFWiCNrKqtqFYx0=;
        b=Mdbfd/BaYwjVmNoBAFxQqxiggMF6Sx5+k84rasdDH3EH7XvHUUcatc7ZzJGUpZiQJC
         Uh37RwUIcgckTbQeY1t9cKnA93P51pIEpVztuGK1KV5x0+HLDuxLmXoFmQHv6p5JVVev
         kTzs4lY8/N71nRlLXgeLyZ5ZeDH6l8yA6KYHXAp60aciNkiA45spbM2a+mxpItQ29UzD
         oLi98eGD09BChdilZX8VvrZsCrPasAxlLbkivwlIuFDTPwbetxHRSdmEzcUL3XRgySrW
         dG1usEtdTVMiCdeXJILBnQVaIJ+gguQGJ99pk5QpVjGM3H6uEWwKURAnsqZ4VX35aHgE
         HXhg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756372915; x=1756977715;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=PhAETet/NUuM0sqs3tNFEUe+QcAOBFWiCNrKqtqFYx0=;
        b=JiESh66omOERBXi5nAHAUrceTTQbArbuEgNvrzxDttJxI7PWIPyLgF37NXpJZ+Gbv0
         jQptL+Kik/WD8mkkhTSIb7Awv5CRfwfQ45LT6EZSaX/pDkXN8lDX8ebpZlfpvDpSviYH
         fbnnuX9Z7qIrZqxd6lfB3MrDpPNwme3mTg65pIPRmgEL4elhpPTjzsMoT2QoKzydnBld
         xuw64E47KU4b7bRMqje71iYaTtva3hHIhAZhppJ4i0hdgoXxudrinTP1Lpo5glgQKM5n
         RF7uGhT/A+UrvCLeaqIL9nr+1T8oI9uJp0gFcalDm25DR40TPffMO2+vKVJSqikvuJ7X
         ++5Q==
X-Gm-Message-State: AOJu0YzhsF2fOjy1QRYY+PRKkad7xqQzPPhMvs4aJ2BGMzWyx3wFBrqz
	eN/BVCtzwdSUZ5libLt+1YpVk7fnAs6DAyUHLjtg92KBlOPjnzOiple67aZzIZy4r42rx4jNO6F
	d4ZE=
X-Gm-Gg: ASbGnctFLoc1wR/diUZCCed3hcSMJqj4dCDwJwEhJrKfOVrL7BhYIFPdT9J58VWotWs
	zGrwza0pUYYGn+7c4ipUaXu+jGW4D/3kftkFd7fJ9sVO5AtwD6OIUUKkwIKLCaw4QOluR+yeSId
	QnLWNCJA3FqrNCuDwDLEN2GOxUzd5NTugDcs2F1j+1ojIn0LtxMv5c6nXjshVRzTU8rUY/ndNkV
	3L2jwofVupaUNR++pbwtYvLKUWqaHuJCZ59AHZa7C/XLQvAMsGCLYGxwTxqQoDBaXSMLVx3X91p
	/iUhikUM9h+v5p5QTvu6my5581YPnmtlAtJsMuzmlhCXShU/DHkaMk47NDiVNg5G1pGp4KI5vel
	Cx1m9mufvlXKlbAnfDO6uYCLJZaWIUwT5OInh4ylgNXh/+a5CwRXZACEFE7wzbt1lxYwShirU5J
	wMbN1w0iyBBrn2OqymAw==
X-Google-Smtp-Source: AGHT+IFUwVxiNEz1zNG4BZUgHn+fQ+nnNoJpXOs5lXBwUaX0GUd2gePahm2ziEQwUsMAhWwQ7b4nHw==
X-Received: by 2002:a17:907:7b8c:b0:ae0:cadc:e745 with SMTP id a640c23a62f3a-afe295c0671mr1825202466b.40.1756372915530;
        Thu, 28 Aug 2025 02:21:55 -0700 (PDT)
Message-ID: <8e4b3946-f132-464e-8974-7fd6cb2b6619@suse.com>
Date: Thu, 28 Aug 2025 11:21:54 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86: introduce "hot" and "cold" page copying functions
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>,
 Jason Andryuk <jason.andryuk@amd.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <1b9e5d46-20a8-4b5f-b938-e28a0429c770@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: <1b9e5d46-20a8-4b5f-b938-e28a0429c770@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.08.2025 11:17, Jan Beulich wrote:
> The present copy_page_sse2() is useful in case the destination page isn't
> going to get touched again soon, or if we want to limit churn on the
> caches. Just rename it, to fit the corresponding {clear,scrub}_page_*()
> naming scheme.
> 
> For cases where latency is the most important aspect, or when it is
> expected that sufficiently large parts of a destination page will get
> accessed again soon after the copying, introduce a "hot" alternative.
> Again use alternatives patching to select between a "legacy" and an ERMS
> variant.
> 
> Don't switch any callers just yet - this will be the subject of subsequent
> changes.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

The ERMS series had been pending for so long that I had forgotten that this
further change was yet to be done. I think this patch should be considered
part of that earlier series. Yet then it may of course require some more
discussion to get it into final shape. Would be nice though to have a
consistent set in 4.21 ...

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 09:22:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 09:22:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097922.1452092 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urYpd-0007No-J7; Thu, 28 Aug 2025 09:22:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097922.1452092; Thu, 28 Aug 2025 09:22: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 1urYpd-0007Nh-Fh; Thu, 28 Aug 2025 09:22:09 +0000
Received: by outflank-mailman (input) for mailman id 1097922;
 Thu, 28 Aug 2025 09:22:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=V9g1=3I=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1urYpd-0007NL-36
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 09:22:09 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on2060c.outbound.protection.outlook.com
 [2a01:111:f403:2413::60c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 774e442c-83f0-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 11:22:07 +0200 (CEST)
Received: from MN2PR03CA0002.namprd03.prod.outlook.com (2603:10b6:208:23a::7)
 by SN7PR12MB7323.namprd12.prod.outlook.com (2603:10b6:806:29a::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.19; Thu, 28 Aug
 2025 09:21:59 +0000
Received: from BL6PEPF00020E66.namprd04.prod.outlook.com
 (2603:10b6:208:23a:cafe::ea) by MN2PR03CA0002.outlook.office365.com
 (2603:10b6:208:23a::7) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.17 via Frontend Transport; Thu,
 28 Aug 2025 09:21:59 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BL6PEPF00020E66.mail.protection.outlook.com (10.167.249.27) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Thu, 28 Aug 2025 09:21:58 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) 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; Thu, 28 Aug
 2025 02:54:55 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Thu, 28 Aug
 2025 02:54:54 -0500
Received: from [10.252.147.171] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Thu, 28 Aug 2025 02:54: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>
X-Inumbo-ID: 774e442c-83f0-11f0-aeb2-fb57b961d000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=IjazLjFpBeQIf3tBy0726Wb+oVR5UBSTyMY7OvJ+QYEf1Pi/knr9mLDFiHoJKzzHn2K9y30mfxFEh588UnYmU68TjAT74BG6K2QnWDGA2XaOQJ29iJAJFGW/DY2t7UKnPDvqm6fJUKOY4p6gi6REUewyCsVNUN6rTLT+FR6hA8VBaj02pH0RqpeZbpgiPmnRBSt/CWbpsvYaMuOvxO3dsAvwmIgWiv2IuVLTHb2ahPfLtZCITc1e5Nq9KLF+rboZSKYqBOfQQd4moXBo0xtm5zmP4/HBfFGe+lx4a3CIBmvyJpdLQy0Cp7CC9smSsca2aRKruV3Iy5wxT+rSraEm4Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=GDw4qFH2GiTyqRXwV3/79RMiCK2Tf45dqdB61FAL9nk=;
 b=Fz3CiBkDieGfXh1k91ragX6JTbPCEBHCw57hY9vrMpunaLuItbHUIH/6h9ZIUshKGXg4Pob9AcX+vn0Ot3571K8+H1My73RZ9E1D+HO1pDXTyWFdtX7W0GF0O+yQpO3uQIHUs1Af5407AW/EeYjFcu17ElkBG38th3xL5vRs0dvFR//ZT+dwFMl+MJc7E/X62tpSS2uVkrlUnT1TfI5URxcxNXRTtCbfuCehRzWwWEZMMs8crDDTE4kimwgLCyxhnh2R5oERPqvWHMdNlE2TBQa0yPO2qo1iR/w8rFbF1EDxWOIpNxFvAeQB6FWE9Y4xmH5HNRBuwYX99Z3UusCpdg==
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=GDw4qFH2GiTyqRXwV3/79RMiCK2Tf45dqdB61FAL9nk=;
 b=zFJ6f2WAJ1xzVAtc8Gk1rwPIN89tf2HTEDIDK0LLZa9IBwr4iIMkEN13SMM1jrehdCNGtxF1Y2J3a61KSkmLdRucoBvTwU38aKqtNovkA3iHG/HZ+xCIp/qrj/ZiD1r+/aOwYWLwRUkM2ZgPG8Fv4yotzJc9LmFQPk5XUg326ho=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <6d433de5-168c-467e-af6d-2de69114dbd7@amd.com>
Date: Thu, 28 Aug 2025 09:54:52 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/5] arm/mpu: Implement setup_mm for MPU systems
To: Hari Limaye <hari.limaye@arm.com>, <xen-devel@lists.xenproject.org>
CC: <luca.fancellu@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: <cover.1756312498.git.hari.limaye@arm.com>
 <a000dbac8fb8e90eb61882760a2dd84cacfe2eef.1756312498.git.hari.limaye@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <a000dbac8fb8e90eb61882760a2dd84cacfe2eef.1756312498.git.hari.limaye@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF00020E66:EE_|SN7PR12MB7323:EE_
X-MS-Office365-Filtering-Correlation-Id: b198bcc9-41c4-46c9-faf3-08dde61456ec
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|82310400026|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bDd1eHVTdDR3SldxUHZFRlJUZUxPMkowWVM4WUdPZVZ5TE13SEJJNGEzSkdu?=
 =?utf-8?B?TXRhMWdBTElaVGFsVGZMcjVPRVY4Rys3NjJvbzdaeXBicTdTamlIbDJ4dVhV?=
 =?utf-8?B?QjJMK1hBV1FLNzJaS3BhMzRJYXdvRmhGOFUvVklkay9salhDeWJFMGhXY0NZ?=
 =?utf-8?B?S2xrNTFrSDNDL1pnTDBGTFJoMnlkeE5nN2Fncm9saXZ3MFh3aVpFdjlwK01w?=
 =?utf-8?B?RWxuQ2Erb1plRzM5b0J5eC95TTJITkZXeXpwRmJweE94TTdCYXRuWlFFZ2ps?=
 =?utf-8?B?c0x5eU4rMnVLdk1jamhBSEgxS054VEpsRXBoNlI3cnZISzBlbml6TkNVODlV?=
 =?utf-8?B?ZjlHcUFsR2U2NTcvaExYajc5TGFwWTdsR3Bmbmg4eitFdkNzYU5MaThiQ3gw?=
 =?utf-8?B?U2txWEFMQTNZU05rWFVzRUE0cUtMK0tZV0pBUmZ3WWxhQTNUUlVVNmtuRE5q?=
 =?utf-8?B?c1MwemtZQzRIa0FmQllKYk1XUXRKVUFYQlRXUGs4aDFFS2tCdDNSeGcyaVNJ?=
 =?utf-8?B?RGJRRjVDRW1mR2RBVHJ5dENMQ0VOeUVMNnRONzBFMDBFQ2dNcnFJNVh5Q0VR?=
 =?utf-8?B?VldrbmMrQlphK0prb3NleDI4RVlHQ1oxdXJJbUxJMU9XTUV6SGVzWHNnUzBF?=
 =?utf-8?B?WHNBWmpRMFpBVldlTzF6ZEI2T0R4TnkvaVV1OTJ2Um1SMEs4VHBmRUliOHRx?=
 =?utf-8?B?OUw2eFJpd0c4M0R5Zjc2OUJUM3BrOEN1MGdmYmViZ3RJYUxGWDZCWXgweGg1?=
 =?utf-8?B?eThRQ2ZXYjVVVnA1WTF4NXMvdDRnVlNVR05vd0Z1dnFGYVhoeDJnVHMzUlI1?=
 =?utf-8?B?ajdPYzI5MEptdEFpZC9aTEU2djBNcTlaZWc3dXpKanhJSThaeXlxOVlTc2RT?=
 =?utf-8?B?S2tSaUFvejlBdEszb1lyMjdrakdaUFRyem5wYUIzTnk4MU1lS29rTngzaHQ3?=
 =?utf-8?B?dDVWN2djOVd3QTBIRTU0VWVZVjVIemRLVy9uUjFOVnA5UDFyVkFSZ2w5NjJk?=
 =?utf-8?B?ZXdoOVVWRmJ6SVVQQ0NFWHpTN0pLeHJ3ajF4eG5aMHorTHRaNDgyWWIxUWFv?=
 =?utf-8?B?N0pqZkZMcXBYdHExeDE1Zi9EajAybWFNdE5WUnppYlllYXF3eGZlT0c0MkhW?=
 =?utf-8?B?cGptMDlYWVczKytDRWtLVTRBeXVmZ054NEdNSmUvU1BjNlN2bkkyOWhVMkpM?=
 =?utf-8?B?YkZQTzQrSHFpcVZCUmFqQVl1MldEZDdVYlBTZ3BmelA3U2ZDbFhURnkwZFlV?=
 =?utf-8?B?V2lER2ZCcTR3SG14MlFPYXdFWDdGTnk3eXRVcnhUVlVhYnM1NnFnc3djeTd2?=
 =?utf-8?B?SUdzOTlxSEd2d0k4N1drWjJ5cHNOVWwydm9maWJPbjFnZVI3bnNzMHFaM25j?=
 =?utf-8?B?Nk5BUGVWeng4b2krY3VxMzI0L3d4Ry9Qb0NOQnNRUjZyR1RGUFZSM2dhU3NG?=
 =?utf-8?B?aUdTMDdONUFQcjdQVE8xVTdkR1V2Q3BlK0lUb3dMWGgxNkdzajNiTkg1eDNM?=
 =?utf-8?B?WDZUNU9ERjRnT3VvVU5sQWE2V1E4NGJaWC9PZDgrTEs4RUxtNmFIb0x1L250?=
 =?utf-8?B?TUFUaDR4R1owK2pYeWRXcC9vT3VQM1l4b21DQkJITW1COE85QmRTYTEycVNz?=
 =?utf-8?B?SzlaQW1paVp0VjVPY05YblJ3eEZQRGFIZkpNY1ZvSVNnY1JTNDlvb1YzcTJv?=
 =?utf-8?B?Y1A1dHJTbmpNZXJQNnJ4QVBZL2E3WGpiMHhsaHJobCtPd2FobXhSd2VGTUpE?=
 =?utf-8?B?NkZjbTNqeU95SGhyMk42ek1VTmJLWDh3VnpoTC9uQ2dlaEtMc0dJYmFDS1dZ?=
 =?utf-8?B?WnlVbVFjRHFaeVl1YnBEaEx6TkZONTU2dWMvbDZ3b2ViQmpGeDErYTVtdWti?=
 =?utf-8?B?anBKVGtxU1dCN3BkVHlEMm1sS3ZBdVcwSFd6VXpQdWtRNWU4YU5YWmdPT0Ru?=
 =?utf-8?B?SzhUVXhkeGVicHBzQTVqV012YmZLdENhZTZMd1ZyVDQyYzJmby91V296eDlM?=
 =?utf-8?B?YTJHQUpGL3ZMcEpzRXdsOWYrMDcyNmhVZzRIM3BHNzVyd1pXWE5Md09weSsy?=
 =?utf-8?Q?65tudu?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(82310400026)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 09:21:58.8112
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b198bcc9-41c4-46c9-faf3-08dde61456ec
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF00020E66.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7323



On 27/08/2025 18:35, Hari Limaye wrote:
> From: Luca Fancellu <luca.fancellu@arm.com>
> 
> Implement `setup_mm` for MPU systems. This variant doesn't need to set
> up the direct map.
> 
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> Signed-off-by: Hari Limaye <hari.limaye@arm.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 09:22:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 09:22:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097935.1452102 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urYpz-0007yv-SL; Thu, 28 Aug 2025 09:22:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097935.1452102; Thu, 28 Aug 2025 09:22: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 1urYpz-0007yo-P5; Thu, 28 Aug 2025 09:22:31 +0000
Received: by outflank-mailman (input) for mailman id 1097935;
 Thu, 28 Aug 2025 09:22:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=V9g1=3I=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1urYpy-00075k-9h
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 09:22:30 +0000
Received: from NAM02-BN1-obe.outbound.protection.outlook.com
 (mail-bn1nam02on2062d.outbound.protection.outlook.com
 [2a01:111:f403:2407::62d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 83d5b6e2-83f0-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 11:22:28 +0200 (CEST)
Received: from BL0PR05CA0023.namprd05.prod.outlook.com (2603:10b6:208:91::33)
 by DS7PR12MB6095.namprd12.prod.outlook.com (2603:10b6:8:9c::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.24; Thu, 28 Aug
 2025 09:22:19 +0000
Received: from BL6PEPF00020E63.namprd04.prod.outlook.com
 (2603:10b6:208:91:cafe::60) by BL0PR05CA0023.outlook.office365.com
 (2603:10b6:208:91::33) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9094.6 via Frontend Transport; Thu,
 28 Aug 2025 09:22:19 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BL6PEPF00020E63.mail.protection.outlook.com (10.167.249.24) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Thu, 28 Aug 2025 09:22:18 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) 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; Thu, 28 Aug
 2025 03:20:49 -0500
Received: from [10.252.147.171] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Thu, 28 Aug 2025 03:20: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>
X-Inumbo-ID: 83d5b6e2-83f0-11f0-ae26-e363de0e7a9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=j5054ixvzRJXYVLuTyyDN5UjMpXii+K3fY69Nux+3gYiNA4Su0YuIUFlUM21wmSWfwyDkNpih+OetknMDcOryiTsfBXul+YsW6Ukb3uvd1JT95yqmr02KJ7f4ESrY4klXDcnrcEO7I28qWggm6mso8PfBZaIApIVwKeBWx1+0T1OsFTX3JhTd5pIV5Gi1QKMGKGH+DvCsk8SgrzLKC9gmI3KV9YMA46LuLRFOsKjaroVg2X0tih+37xcJyAAbrmPyt6s2UE54uP9C+eRsRtTxQx5G93niWiUoVslNmvuawYtlzPI8ek+WGGKdZ4aIo84eEiRdvtA+AYD4Tr+7vv4lg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=gN9WxuNeVeFM020pOXHfTK99mFiHauGuY5Rz0z1jXsc=;
 b=xO1UFHrqo1LAaMi6wqM8/P4nL2VhtvxD6F7sRSBaKV1gcUIFy3fSSVCU4d13rlbS6KPLFhBGsOd/G3Ni9zI7GRB2QNsKvyUByjHZpoYq2K0t9wTtw0k9dqstnDZ+5Gbx1dUjSwTq4bQf4g1p0UZKO7c8nls2FT5cKgTXbfvLycZ8oFaT/8QpO0xYi4z1rZ9rW9mc6gSqStURrZBol2ZtBcrDtVvIfegIlKLNESCX895oN/MLEsHSV3NxhBVuyLdxuksp9xu3N9rnyMF8BnUBBZtL5OYwrjLqzjXDObkkunsDr3oWbLjM2zYDy7yKnUcgEZDCyLSBOOCRKZ0D4X4wrw==
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=gN9WxuNeVeFM020pOXHfTK99mFiHauGuY5Rz0z1jXsc=;
 b=NExReYyY8pQbOhSpi6U69EWfCKnZyR7SJrrTP2lNY8JzZvEYTKKrG7Et0cYRj0QKUVEgu0hJk5ygLyjay/DaAg4MlygS9mb96iuj5QxTdx5v6b/Z02Cf1Da93UCr+XcnWjZ0dvBDn3oZnOMIF893jGYu352FPEiS2LkBMPuCeIQ=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <b9e9a44b-c718-468b-993b-419658c44667@amd.com>
Date: Thu, 28 Aug 2025 10:20:47 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/5] arm/mpu: Implement transient mapping
To: Hari Limaye <hari.limaye@arm.com>, <xen-devel@lists.xenproject.org>
CC: <luca.fancellu@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: <cover.1756312498.git.hari.limaye@arm.com>
 <80b0b3f84ae73f7d92d1b1cfe057ffc438882725.1756312498.git.hari.limaye@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <80b0b3f84ae73f7d92d1b1cfe057ffc438882725.1756312498.git.hari.limaye@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB03.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF00020E63:EE_|DS7PR12MB6095:EE_
X-MS-Office365-Filtering-Correlation-Id: 8f34ad4c-3f28-4ce1-6d9c-08dde61462ef
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|82310400026|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?MEhBeTNOTUNNekVSdmRnR3kwUFByZ3hxSlU0TWt1ai9FbGNxZVROQjJVRHVQ?=
 =?utf-8?B?QU5wRnZBTmFGc1hvRURkVlppSGVKNmJJdGN5eHZxZGFHYkpGT0w3c0RPeTZt?=
 =?utf-8?B?MDh4RndLSGg4Wk0zOGFSSTFNL1NHR0kwUkJCMHBMbEh5NHdqNldKWDU5UHJ5?=
 =?utf-8?B?bFZlRkVyWk5ncWNydml4ZUtxeXFWMWczb3B3RDB5VTdkblNidC9IVEU5UUV2?=
 =?utf-8?B?RUMzQUJwS211ZkJmb0lxQUhocHNBN2k5RXRiTmNsajZHT2FnSnhGcUlSOURV?=
 =?utf-8?B?TXlHS3h0dC82SlVoMjliVEhBWUExMzdjdmFWVmdPYU0wWU9GYXQ4OVkyVldI?=
 =?utf-8?B?US9HTXZkckVSK3Q5a1ZpcFdoc20xYlZOKzR6WklUeEpRMEVYaDJOaEYyNTlr?=
 =?utf-8?B?RHJIUzZDd3ZWdVlOQTZwa25oMEJMcEpjakt5SGl2TGhJbGM4T3U0QjZGZW01?=
 =?utf-8?B?Vy9UQUJYVDFkRmtURWsraE56VFRHYnBMbUplLzRyTmNFcExNMUpzeHRTaTZu?=
 =?utf-8?B?MUxTNE1HTzR5Y1VkL2pxRzUzMmRFU2M1Q1k5djlnd1JiTVY0ZnA2QUU5VEhi?=
 =?utf-8?B?Qzkrdy9mN2pHaUdlcVBabkJRVzhJVENNTk1lZXlhYlduYWEyS3pKVTRYZDZE?=
 =?utf-8?B?MzB2TnE4a3g2WEMwMUtsR2lhUm0vbzRmYnFMVmlXUDRiNlFaNUppVkRkempR?=
 =?utf-8?B?SDNoRDQrSDdidStyRGNmNmlIZlVnYWQ3U2tBZ3IxOUo5RDZBR3hCdW0vVHox?=
 =?utf-8?B?dmFYTUVBc3FQUTQ3ZWJpM25VNFQwaGp0SXB2c1JMUzRzYUd5eFNWZk8wQlE2?=
 =?utf-8?B?MUZPOWM2L0RHVkx3eml2YU1Ha3JQcVVKTFo4L3duSHZUd0MxUG8vREpiUUp3?=
 =?utf-8?B?emx3eWZTcTBCczN0WklYWXVTK1U5VkdnLzExbXpEbUtXMWI3SkJtT2VDcWVh?=
 =?utf-8?B?Rk56K1YxLzRlNXVPMW8ybHV1emhvQmJHQXVRQ0NxNzE2WnppZllDM1ZCSWJW?=
 =?utf-8?B?bnNYbHNKVXFzVGNrSnYzOXVCblZpb0VyMVRYOU0xMGZpSXVNai9rNmNKZ3g4?=
 =?utf-8?B?U0p2QS9OQlBBMHhiMWtNOEJCcUR4ZDgrKzV5aGJNbzZTZ0VObFkwZmdEZWxq?=
 =?utf-8?B?TkY1Nytod29pTDBpT0tjMkFycUJRNmo1TVNzT0ZOYnFVZWZkTWd0TktHZjdv?=
 =?utf-8?B?Z0dlbHdXaEd5NjlnUjlEMGk4RXEzS2FhMlR4enU4NDAzekV3MzFsb0creEdL?=
 =?utf-8?B?M1p2NW1OVjJxVzBjK3JRdXo5RTJQSUdhaDMxNEVraW9Wb2hYSTRoUVhGVFBL?=
 =?utf-8?B?aUJQdm5ua3JYbXVMRU5sQXFrMytUYmVodGNQdUhhUzFYbTcydmRNYVVxSlVs?=
 =?utf-8?B?aG4vYkowREZkMkMxemRpZXcrR3orSFFOWDJaaDhhTVJ1UWRKekNjOVhKYjN1?=
 =?utf-8?B?K01tVUsvQlpKdFZkK2pZbmJRTHpCTFRGcnBSdkdKZWVuSTZRWEFvaDNQSldC?=
 =?utf-8?B?Q1ZybUpXRFp4LzhSdnhCZWltaHJxeDlDRnl1WjZocWNybkd1MWRPMEpEY1RK?=
 =?utf-8?B?b1BxSVpZTytvS20rRXpDUXZtTktyNDRVaGllVXRPcGZZam9xWlN4YUJzdVUy?=
 =?utf-8?B?dVI1T0RPMERFa0ZhWHJtUU9jeEJJVjJ4dThmK0o1ekNYQWVyVG13elVTMEpz?=
 =?utf-8?B?S2tjSHN3RXBoSHZOenpWM2JONjFtMTlOUzNidW04MVpuSU52VkQrRGVlVDRi?=
 =?utf-8?B?VnZoeGhwNVZWOFBoZlcxL1poSFdieG43dUdqKzZGdkhSK2ZNblY1QWo1SllS?=
 =?utf-8?B?eXhIaGZ5c005a3NLS1Z0T2hVYitEV3JlZGJhcmJ0ZXFLSUQ0Tm5pVWRxVDlT?=
 =?utf-8?B?M2pTYytXdkpWWmJwQ01HanhwS1BoSzE2VTYxY2pXQjYxdjBkWVAyZ1dpV0dT?=
 =?utf-8?B?WW85RkxUZk5VcVlLMlhLY2ZtU3k3TVVUaWU4UDloNEgzTlpwT01wZXpmNjFh?=
 =?utf-8?B?QklKb3VOemdFa3dLYlJYMStINnpIRXJkaGJDUkoxamNHWWNDSksraURiZWFv?=
 =?utf-8?Q?tbzmC7?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(82310400026)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 09:22:18.9621
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8f34ad4c-3f28-4ce1-6d9c-08dde61462ef
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF00020E63.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB6095



On 27/08/2025 18:35, Hari Limaye wrote:
> From: Luca Fancellu <luca.fancellu@arm.com>
> 
> Add a scheme to distinguish transient MPU regions, to identify MPU
> regions which will be mapped for a short period of time. This is needed
> for the functions which transiently map and unmap memory ranges on
> demand which will be introduced in a future commit.
> 
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> Signed-off-by: Hari Limaye <hari.limaye@arm.com>
> ---
> Changes from v1:
> - Improve commit message
> - Mark parameter in read helper as const
> ---
>  xen/arch/arm/include/asm/arm32/mpu.h     |  2 ++
>  xen/arch/arm/include/asm/arm64/mpu.h     |  2 ++
>  xen/arch/arm/include/asm/mpu/mm.h        | 14 +++++++++++++-
>  xen/arch/arm/include/asm/mpu/regions.inc | 19 +++++++++++++++++--
>  xen/arch/arm/mpu/mm.c                    | 23 ++++++++++++++---------
>  5 files changed, 48 insertions(+), 12 deletions(-)
> 
> diff --git a/xen/arch/arm/include/asm/arm32/mpu.h b/xen/arch/arm/include/asm/arm32/mpu.h
> index 0a6930b3a0..9906d98809 100644
> --- a/xen/arch/arm/include/asm/arm32/mpu.h
> +++ b/xen/arch/arm/include/asm/arm32/mpu.h
> @@ -39,6 +39,8 @@ typedef union {
>  typedef struct {
>      prbar_t prbar;
>      prlar_t prlar;
> +    bool transient;
Do we expect to have any other flags? If so, it could make sense to use a
bitfield right away.

> +    uint8_t pad[7]; /* Pad structure to 16 Bytes */
>  } pr_t;
>  
>  #endif /* __ASSEMBLY__ */
> diff --git a/xen/arch/arm/include/asm/arm64/mpu.h b/xen/arch/arm/include/asm/arm64/mpu.h
> index f0ce344e78..1d1843eda0 100644
> --- a/xen/arch/arm/include/asm/arm64/mpu.h
> +++ b/xen/arch/arm/include/asm/arm64/mpu.h
> @@ -38,6 +38,8 @@ typedef union {
>  typedef struct {
>      prbar_t prbar;
>      prlar_t prlar;
> +    bool transient;
> +    uint8_t pad[15]; /* Pad structure to 32 Bytes */
>  } pr_t;
>  
>  #endif /* __ASSEMBLY__ */
> diff --git a/xen/arch/arm/include/asm/mpu/mm.h b/xen/arch/arm/include/asm/mpu/mm.h
> index e1ded6521d..566d338986 100644
> --- a/xen/arch/arm/include/asm/mpu/mm.h
> +++ b/xen/arch/arm/include/asm/mpu/mm.h
> @@ -55,6 +55,16 @@ static inline void context_sync_mpu(void)
>      isb();
>  }
>  
> +static inline bool region_is_transient(const pr_t *pr)
> +{
> +    return pr->transient;
> +}
> +
> +static inline void region_set_transient(pr_t *pr, bool transient)
> +{
> +    pr->transient = transient;
> +}
> +
>  /*
>   * The following API requires context_sync_mpu() after being used to modify MPU
>   * regions:
> @@ -75,9 +85,11 @@ void write_protection_region(const pr_t *pr_write, uint8_t sel);
>   * @param base      Base address of the range to map (inclusive).
>   * @param limit     Limit address of the range to map (exclusive).
>   * @param flags     Flags for the memory range to map.
> + * @param transient True for a transient mapping, otherwise False.
>   * @return          0 on success, negative on error.
>   */
> -int xen_mpumap_update(paddr_t base, paddr_t limit, unsigned int flags);
> +int xen_mpumap_update(paddr_t base, paddr_t limit, unsigned int flags,
> +                      bool transient);
>  
>  /*
>   * Creates a pr_t structure describing a protection region.
> diff --git a/xen/arch/arm/include/asm/mpu/regions.inc b/xen/arch/arm/include/asm/mpu/regions.inc
> index 23fead3b21..f9892fe3d8 100644
> --- a/xen/arch/arm/include/asm/mpu/regions.inc
> +++ b/xen/arch/arm/include/asm/mpu/regions.inc
> @@ -14,19 +14,31 @@
>  #define PRLAR_ELx_EN            0x1
>  
>  #ifdef CONFIG_ARM_64
> -#define XEN_MPUMAP_ENTRY_SHIFT  0x4     /* 16 byte structure */
> +#define XEN_MPUMAP_ENTRY_SHIFT        0x5   /* 32 byte structure */
> +#define XEN_MPUMAP_ENTRY_ZERO_OFFSET  0x10  /* {PRBAR, PRLAR} is 16 bytes  */
To avoid having to update this over and over again, maybe define a macro using
OFFSET?

Other than that:
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 09:22:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 09:22:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097942.1452112 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urYqG-0008Va-8c; Thu, 28 Aug 2025 09:22:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097942.1452112; Thu, 28 Aug 2025 09:22:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urYqG-0008VR-5s; Thu, 28 Aug 2025 09:22:48 +0000
Received: by outflank-mailman (input) for mailman id 1097942;
 Thu, 28 Aug 2025 09:22:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=V9g1=3I=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1urYqE-00075k-L7
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 09:22:46 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20625.outbound.protection.outlook.com
 [2a01:111:f403:2009::625])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8d8c523f-83f0-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 11:22:45 +0200 (CEST)
Received: from BN9PR03CA0735.namprd03.prod.outlook.com (2603:10b6:408:110::20)
 by DM6PR12MB4186.namprd12.prod.outlook.com (2603:10b6:5:21b::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.15; Thu, 28 Aug
 2025 09:22:38 +0000
Received: from BL6PEPF00020E61.namprd04.prod.outlook.com
 (2603:10b6:408:110:cafe::88) by BN9PR03CA0735.outlook.office365.com
 (2603:10b6:408:110::20) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.20 via Frontend Transport; Thu,
 28 Aug 2025 09:22:37 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BL6PEPF00020E61.mail.protection.outlook.com (10.167.249.22) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Thu, 28 Aug 2025 09:22:37 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Thu, 28 Aug
 2025 03:51:55 -0500
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.1748.10; Thu, 28 Aug
 2025 01:51:55 -0700
Received: from [10.252.147.171] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Thu, 28 Aug 2025 03:51: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>
X-Inumbo-ID: 8d8c523f-83f0-11f0-ae26-e363de0e7a9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uQ+iE0U9z+PK9It8SnvRKkYNgRK4i8H0Mn6Weu3zoXrPRAMsQnNvhcCjREF7mD8UurFLZo2sBnAfla1HASVpAT21rjv+gLBvgk38cFMxV+XsIrmkaYLfplQ7guYLRwTGHgw+Pd/e35BLyE3B/BEvqTWlel5tcEIizjA7NV5W6nUy0PFXcwBn8qNFEwfSXCQMGIbW9aExqsOlR7fCibujl1Nt/oFru7iNFmbI9C8bSvvphy43tyUeIBInQVUaScGyu3lPpM5ewybwEkQedXtU3lQmFitC99XyhboacHEHe8Mr+Dmh4REEaL3Urx1yioZo/IN9rMJFSDjEXZA30uitJg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Ro0Cf3wEN6SFb2YNnM7oWhgHK9wMhiZt0j9W9EEwXyU=;
 b=JSMetj4joezhxYUIk5SiDBKX3AKg6/fvEKUW3kqc1u/pprK8J0WuRacPMJ78RTPxg4OjjFTZ4HeqHTp2/6lE9zhf7X+29XubMRLpbnXlEK/giI8RW8KrO+drNdqiUIgMNLUbw9QYhTMdEgcGTdAdTnKAUJCJIF5YOpsnRx7Kt3nsQjYyVA80titdCYxBmZ7CpT1NrjiXGQ1gc+/Vw+RPUGP4SXFtSTLxuY0jiXm9SEJfavmRpciU+nSNvtZxCYHlpp/Ga8sE9LnbZbAGkZvG/x1UNZHwVtrO536jPva5QfZpgc5VV77WCYKx1zxkYnFtmfV8gaRE3d6ZSgN443t63w==
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=Ro0Cf3wEN6SFb2YNnM7oWhgHK9wMhiZt0j9W9EEwXyU=;
 b=5MZNC0Bx81pzfbKgEt0hWdUs9zBBcS7xuC1Fx8KQZTZboov9/BQGufMmgOiFtWxZIlmAVbeOR3Eo1TGtrWTz38OPBpT/OkyB4GyDbCX4dILF0/O6rfraOJIXBRmnEzaPUSwJL0K1Zbdwm+a2406Ln3Wwqww/N6zbiL9sUpRj6mU=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <a4fc373b-5fe9-4c10-a60d-ce57a6df9af4@amd.com>
Date: Thu, 28 Aug 2025 10:51:51 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 5/5] xen/arm: map static memory on demand
To: Hari Limaye <hari.limaye@arm.com>, <xen-devel@lists.xenproject.org>
CC: <luca.fancellu@arm.com>, Penny Zheng <Penny.Zheng@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>, Wei Chen
	<wei.chen@arm.com>
References: <cover.1756312498.git.hari.limaye@arm.com>
 <6408f218f3075acd43f5563bff26165091d9f184.1756312498.git.hari.limaye@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <6408f218f3075acd43f5563bff26165091d9f184.1756312498.git.hari.limaye@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF00020E61:EE_|DM6PR12MB4186:EE_
X-MS-Office365-Filtering-Correlation-Id: 2aa730fb-c3ab-4dca-71ea-08dde6146e01
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|7416014|36860700013|1800799024|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?NzZaYTUxY0h0Q3lRSUcxeDlzTmpzR05FMWNKRHlCZkpJRHlRUGJManFxTGgx?=
 =?utf-8?B?T1Jwc3REUzNrMkNWRi85UVNzd0R5akVMV1plQXRBYkF0U3dRZTlJVUhPNlZz?=
 =?utf-8?B?U0liUnZ0VEM5OEc0ZjdyUU52ZjV4emxOd0kvaFp0TGEzSU1HdkE5R0pIbXg2?=
 =?utf-8?B?d0dGb1haeVJPSFp6WFlEVG1zeUpVcjFUOENONTgzUS9ONjJEakdxL2ltSmVW?=
 =?utf-8?B?ck5IV0ZyZzFqZldhYmlwU3lEWllXZTBxK0hyWmxOclJmRWp2K0h4WlhSUVNV?=
 =?utf-8?B?Y1FFMkJOTm41anpwRk41bmVoVUl2d2xUd2hJQ1k3Nk9rU3pzZFdWVldLVzRv?=
 =?utf-8?B?NDRCTVVQZFlGQk9FdnJNbHdpOE4vcEFNTXdJSmxwVHMrYW9abzVYWWdBT3g2?=
 =?utf-8?B?STNoVFcvQWhQL0t3ODg3ME9Fb21iNTgyVnIrZFlsYWt2N0tKcWxvOUZ4KzNy?=
 =?utf-8?B?MGx0UEMxV2J2SStyWSsyc0pTcTRzZjhDL25TemcvckQva3JudzZKUXhTVm5I?=
 =?utf-8?B?MjJxcFdJY0YyNWxKeVRiU0VFQUc1ZEVkb05obklEazNhZHN3SnE3YUNXeEln?=
 =?utf-8?B?cGs3Y0dRUVdueE1Pdzl5QisvWDEyamQyYUJJTWV5TU5uSjA0NnZXUTdpREZX?=
 =?utf-8?B?aWxpYXRTQzd5c2NlNzRwWU1MekZRMVQ5SmlsSUhJN2JjaTVta2ZDRHpudW1t?=
 =?utf-8?B?UGxFR0xtWmsrcGdvSTgxcHlYOE42OXZEWkRTa3pmZ3JPdkFoWndMNWFLSTYr?=
 =?utf-8?B?UGJJTCswSGl3WFcvc016Y3VjOW52SlBEZ3oxckdvSm1ZTDdTb0ZTeGw2Z09T?=
 =?utf-8?B?TkI5NWwrVXB4NFRXQ0N6ZS9VVm1VSjd4MWgwNldqRWd4Z0VZRDRmNFJhV2VO?=
 =?utf-8?B?ZkN0WDloQURpWkswMUxoVmZnTGpuZmxHeVZadU15YXQ0V2RLcTljdFFqRXFE?=
 =?utf-8?B?NXI3dnNYN1Z6VkEwV0k1UGQ5d1NYZUN1cVFkNmtVZzR0MTBhdFlzcW1lei9D?=
 =?utf-8?B?SnY2UU9LUzU2Vk1JMm9LaWUxWDI2RXB1YUdMWFJDSHRXZ3VUOUJwa2l2N3F6?=
 =?utf-8?B?Vk5uNmx2cC91R1IzVHJlUmVJZkJScGl0SVdVTHVoem1SbjV4YUhRZGR0WXpv?=
 =?utf-8?B?V09jdmpzMjdWK0Q5K1FSK0lYVVhhWnJFazQ5bHJ3RjhPajVOYTVTdGl3VWpW?=
 =?utf-8?B?eXRMdk1POVM2dGRHeVlOeXBIRXpqcDZ3Q244d0U2ZmdiNWpudWRBYjJuUk5w?=
 =?utf-8?B?QlV3bVVmVTN2VnAxL1V3eGJnaGoxK3IySDlNZW9uY0lxaHRJdmxmQVM4clBW?=
 =?utf-8?B?RHBLQ1VNN3Y1aW1Lejc0OTEycitZM21jY0YwcnFGR3crd3ljUEhSbFp2N0ho?=
 =?utf-8?B?Tm95NmNCNEdydkRqeHRmSUZqeldwNmdZVmNHRy82WTFDbDk4aDRZZ24xa3NE?=
 =?utf-8?B?Q1JXanpyT3YyQ2hJbnE5aVlhNGxFS0hzemRRM2g1NDlkRnFxcUxWVytkc3Bn?=
 =?utf-8?B?bklKRlZKK1dwd2RqUUxQQzhRRXBPbEF6N1JPVm5LNjdzR1lkRFFCYXAyMnNB?=
 =?utf-8?B?NzNKbGRkSllubkVTUm5QMVJrVEhoOHFqTENub1VGUXFHNElJME1YTkQ3ZUJQ?=
 =?utf-8?B?bUs0bUdSZ2ZTeGkvRDVmSG9zOUlqQWpsUGdUY0xGdVg2V2o3RFRMUHNrb01P?=
 =?utf-8?B?RDJxVU5OVGFscVRJWEN6dWFwWFlNeUYyQzNRRDdVUWdNcTdtcGR4RisyMHVT?=
 =?utf-8?B?cmF1R08yUlloNmFMYU5YVE52b2RkcDB6aXpXbm9nS3RwOUx0OHlhL2hCTEVS?=
 =?utf-8?B?b3gvaDNDNllZTHV2K0p5TUszcHNIbHdWb0cxMmJCVjdQWW1Vb3REZTZ0SHJr?=
 =?utf-8?B?cUlJSkJrOEU0M1piNU9yVzRyNWIwMmN4c0Nqc1JnVldqZmhlSDBVK0tYNzFB?=
 =?utf-8?B?akRUc2MxOElTaU9DUGprT0NQeElrdzJZTGRIbys5blZYU0hYZzZFMkxVQ0pJ?=
 =?utf-8?B?RVM0eWhSZGYzcmE1OHQvY3BuRldrWUlZV0RtRXRQdFZ1aEJWZzBKRXdhNDZX?=
 =?utf-8?Q?oW4MeU?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(7416014)(36860700013)(1800799024)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 09:22:37.5356
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2aa730fb-c3ab-4dca-71ea-08dde6146e01
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF00020E61.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4186



On 27/08/2025 18:35, Hari Limaye wrote:
> From: Penny Zheng <Penny.Zheng@arm.com>
> 
> In the function `init_staticmem_pages` we need to have mapped static
> memory banks for initialization. Unlike on an MMU system, we cannot map
> the entire RAM on an MPU system as we have a limited number of MPU
> memory regions. To solve this, transiently map the static memory banks
> for initialization.
> 
> 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>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 09:24:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 09:24:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097957.1452122 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urYrm-0000mk-In; Thu, 28 Aug 2025 09:24:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097957.1452122; Thu, 28 Aug 2025 09:24: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 1urYrm-0000md-Fa; Thu, 28 Aug 2025 09:24:22 +0000
Received: by outflank-mailman (input) for mailman id 1097957;
 Thu, 28 Aug 2025 09:24:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FrxM=3I=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1urYrl-0000mP-9r
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 09:24:21 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c65de450-83f0-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 11:24:19 +0200 (CEST)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-45b65469a5bso6642205e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 02:24:19 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b6f0d3073sm72564665e9.7.2025.08.28.02.24.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 02:24: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>
X-Inumbo-ID: c65de450-83f0-11f0-ae26-e363de0e7a9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756373059; x=1756977859; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=FZw2ZxIJ5DAXQzu7ckQMG1wjL3HXSja6gTGUzO3hL+0=;
        b=E6fxw+Novtx8RWnr6G4YNbWs8qAjwETQmb7ob7tz3AI5CxlVLMNElfcmcBKbD3zs+4
         fu3dMk+LTdKmCEg1UPnVRb15qlBVuWgr+p7c9h9El72jv24Ikwv6cKFcMfgOJgHdZqM0
         pwaKJsWzWRbZQJbum3uvXfMlFY5R4FrVOfAUg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756373059; x=1756977859;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=FZw2ZxIJ5DAXQzu7ckQMG1wjL3HXSja6gTGUzO3hL+0=;
        b=YmH4Nl5KdvdepgTYax9QlamhJT702AH2y/XXm+C/dRDoAHzfPQeGYZLCeI7i5WC6JQ
         s7vvdMIZbA0R9OLXT/zVQFAgep2hnY78VE/PefWlLVTRaoETrmqCIbKmWOTBuoYURe0A
         h6q6ddTdCNJ2qROopI1/RXC7Gh51G+a/v6NWvkY8cs/beOZlqkzs4cGTQ/1RNTNkUjjC
         uhzatXx4aLR5r5ody5d9Jgr1q4dLsAQ+8tDxYeR4+MZk8vIHVLOCslx16Rq1Ir+kndtr
         7GgKI/hRHiqrqRGoJDZNumD3/kptVeaikZmJUitwNNfZcK57pXEsrpJfTxZoupfDWAgo
         joFA==
X-Forwarded-Encrypted: i=1; AJvYcCVd6FLosxbz2+NnTzKYDjAwHgr4ejiK01w7YRsMyHZ4pfcmy9kaOAureci7gMrHcmERFD7kQusUQaw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxZ4ODlMXmgCZcdYa06xwXl0HcrdXR7e/Riim9j5ec1e355UhQq
	nsB9YZj6743uhRydSJGUUfKm4iexMVQLbFSkGs2Fd690VBWFb7CSTVfl+gXEWkaGa+Q=
X-Gm-Gg: ASbGncvN1V1ofsxxhypUJ1GXSxZU3m9UATbrd5IFZ0g01nY4R8UBqupEyApBYESjytD
	99vQ2Yh8k57MireDMEdn15kgTNJuR5FKQ1zY3cQbDm8fzSIoTNwe6od2NwjEYK6kDwbg1MM1cHs
	jhe7PrKa3nRkLe2dnfy/1Jld4GDXPf7YCrASkI18hV5hUt1SmWKNeJ+JQLK1lD3jR6Br7ev1zFz
	UkjzjrpxlHvKavWbdtJhLQ6ZrADPf23HosDExkhlsFXomxRv/QjL2wbkDlcS940VVJNhExqbmem
	5rZyfUidG5E9HuTP2R47T9QspAsXg8i8mtwN5n25C5lZKhwglnBf3TmpwCrqQBgYGydwkdrVvpk
	EZhYTFO6QNpFa64nm0dGRsAEaHXuCZH44rQFnSNYvMrnDoizFWO3VENAuS6S2P+mKZchnPREe91
	MCGeGV6G2i/Qzknw==
X-Google-Smtp-Source: AGHT+IFDDOijsnN8SE+0T963JMJJQw5DOkjWTXJSF3x2ew99cUFaB5kskZvP3AuqPHWQVvlK7LEh1g==
X-Received: by 2002:a05:600c:1d09:b0:45b:6b0f:caee with SMTP id 5b1f17b1804b1-45b6c58c26bmr54655055e9.6.1756373058703;
        Thu, 28 Aug 2025 02:24:18 -0700 (PDT)
Message-ID: <0bdc4472-8395-4110-a2c1-a7388472d9a6@citrix.com>
Date: Thu, 28 Aug 2025 10:24:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/PSR: move CPUID level check
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <a3c768bc-c99f-484e-9e36-f8e03930496e@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: <a3c768bc-c99f-484e-9e36-f8e03930496e@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 27/08/2025 9:16 am, Jan Beulich wrote:
> At the first (and maybe second) glance the call to setup_clear_cpu_cap()
> (which is __init) from psr_cpu_init() (which isn't) looks wrong. The
> earlier cpu_has_pqe makes it safe, though. Nevertheless we can do better,
> by simply moving the check ahead of the BSP invocation of the function.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

This is still terribly convoluted code.


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 09:27:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 09:27:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097966.1452131 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urYv2-0001LN-Ve; Thu, 28 Aug 2025 09:27:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097966.1452131; Thu, 28 Aug 2025 09:27: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 1urYv2-0001LG-St; Thu, 28 Aug 2025 09:27:44 +0000
Received: by outflank-mailman (input) for mailman id 1097966;
 Thu, 28 Aug 2025 09:27:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=vzch=3I=bounce.vates.tech=bounce-md_30504962.68b0210a.v1-947482cc2ddd4de2adb74fda615c2dfb@srs-se1.protection.inumbo.net>)
 id 1urYv1-0001LA-4N
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 09:27:43 +0000
Received: from mail137-3.atl71.mandrillapp.com
 (mail137-3.atl71.mandrillapp.com [198.2.137.3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3db32db5-83f1-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 11:27:40 +0200 (CEST)
Received: from pmta07.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail137-3.atl71.mandrillapp.com (Mailchimp) with ESMTP id 4cCGJp4hxQzBsTy7V
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 09:27:38 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 947482cc2ddd4de2adb74fda615c2dfb; Thu, 28 Aug 2025 09:27: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>
X-Inumbo-ID: 3db32db5-83f1-11f0-ae26-e363de0e7a9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1756373258; x=1756643258;
	bh=I8D5/yrOObDbnAapnurzQSp9tBHvRWSwFBG3zm8syfw=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=MYE0Z6WgAg2+MOEl1M2DJFvq+EL3MGXh9K4v05z7HWmNv6kdrPhPdVg/0NdItPIu2
	 G4LTq7eYpjMStcL6zh2KwacJu2oa+yanW8s+hb1LMUTo+afyFJnIIq/0QmkDyj9KC6
	 Lgj4zg4tzdbOrTeOjeSVKYUVs2OtOnVTGsJW2LbjER7i3JAdRUHLKiHVmIwz+xJHza
	 KBRzUVAO3UJGDzyd8fdASNOrJUXquqOtMq9xhBkAPPRxkjRwB9HjAkm8Wn/T6mRxwP
	 HdniRJVYhOd9qAtZQC2BbYagxv9NtE4oMi2WDxBgTRI2LgFrPjyvLH6IOHjQw2xJV1
	 fM6B4fIfRaqPg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1756373258; x=1756633758; i=teddy.astie@vates.tech;
	bh=I8D5/yrOObDbnAapnurzQSp9tBHvRWSwFBG3zm8syfw=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=hz5fwKIQjsz/LFVchIETU3VPn3nC1cGrfuJH+ZH+cUP1biOCe5zfkJ+DZ7+GOSahl
	 HJVaOf3u1dUUL6VqIuOUd8jPI3/fb/V81ugPVD+gXazKvGzHVPswg/wnVKj5OCpUUH
	 8fpapZkBZg0usJnPdYhtA6pvt6zgNN4m0Te3E7lDnAFfV2o/YdDir6XBjh3kUmnxSQ
	 y5Ta0l9qrp764WQA+qWKYgzHXeiPjTnYZ8XXoCJa1lU1MVBb9MY4XpodNpGpi4d3BA
	 hNeWbZoBs+2pLB6FsuWMoBSJGGY+OmRzoJDJ572VX58r62GuQFmdcML+CgMu+ktcsf
	 aq+APBWn3Blkg==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH]=20hvmloader:=20Update=20to=20SMBIOS=202.6?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1756373257509
Message-Id: <64f08648-4ef2-457f-a81f-0c003e3e9601@vates.tech>
To: "Jan Beulich" <jbeulich@suse.com>
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <b569a298a6270ae04eaf433f7de9ce1f3e248e5f.1755870287.git.teddy.astie@vates.tech> <0e47cfed-75e6-4cd3-8ee2-ed8ea000a376@suse.com>
In-Reply-To: <0e47cfed-75e6-4cd3-8ee2-ed8ea000a376@suse.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.947482cc2ddd4de2adb74fda615c2dfb?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250828:md
Date: Thu, 28 Aug 2025 09:27:38 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 28/08/2025 =C3=A0 09:08, Jan Beulich a =C3=A9crit=C2=A0:
> On 22.08.2025 15:47, Teddy Astie wrote:
>> Currently, hvmloader uses SMBIOS 2.4, however, when using OVMF, the
>> SMBIOS is patched to 2.8, which has clarified the UUID format (as GUID).
>>
>> In Linux, if the SMBIOS version is >=3D 2.6, the GUID format is used, el=
se
>> (undefined as per SMBIOS spec), big endian is used (used by Xen). Theref=
ore,
>> you have a endian mismatch causing the UUIDs to mismatch in the guest.
>>
>> $ cat /sys/hypervisor/uuid
>> e865e63f-3d30-4f0b-83e0-8fdfc1e30eb7
>> $ cat /sys/devices/virtual/dmi/id/product_uuid
>> 3fe665e8-303d-0b4f-83e0-8fdfc1e30eb7
>> $ cat /sys/devices/virtual/dmi/id/product_serial
>> e865e63f-3d30-4f0b-83e0-8fdfc1e30eb7
>>
>> This patch updates the SMBIOS version from 2.4 to 2.6 and fixup the UUID
>> written in the table; which effectively fix this endianness mismatch wit=
h
>> OVMF; while the UUID displayed by Linux is still the same for SeaBIOS.
> 
> To update to 2.6, fields new in 2.6 (compared to 2.4) need adding to the
> various structures. First example I ran into is type 4, gaining 5 new
> fields in 2.5.
> 

Yes, I add them in a new version along with 2.6 entries for the newly 
introduced SMBIOS tables (notably type 9).

> Jan
> 

Teddy


Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Thu Aug 28 09:29:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 09:29:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1097977.1452141 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urYwF-0001qg-8u; Thu, 28 Aug 2025 09:28:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1097977.1452141; Thu, 28 Aug 2025 09: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 1urYwF-0001qZ-62; Thu, 28 Aug 2025 09:28:59 +0000
Received: by outflank-mailman (input) for mailman id 1097977;
 Thu, 28 Aug 2025 09:28:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UDiq=3I=cloud.com=mark.syms@srs-se1.protection.inumbo.net>)
 id 1urYwE-0001qT-9i
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 09:28:58 +0000
Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com
 [2a00:1450:4864:20::62a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6b5d08f0-83f1-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 11:28:56 +0200 (CEST)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-afec5651966so120653766b.2
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 02:28: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>
X-Inumbo-ID: 6b5d08f0-83f1-11f0-ae26-e363de0e7a9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1756373335; x=1756978135; darn=lists.xenproject.org;
        h=cc:subject:message-id:date:from:in-reply-to:references:mime-version
         :from:to:cc:subject:date:message-id:reply-to;
        bh=AOdA+ChG2OJRi9GeaHFeK6eceIsji99wtnfgd+DpFZg=;
        b=QGsGj0OIa2I1+RZUn2OujC/RfGE2azP/MpBzkgfvtNPrVF+13vKHtiOLqzZ07wlGhF
         Z6eB5PQj05OLK/8yjUwvjEVu32X3PM0MLV6M7qNcvdt47ao8dELwUZ4MLNxTBWC1uohd
         eAQx5RSiHhXvDV5CVUYVB5wt/mATrbSwltVZw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756373335; x=1756978135;
        h=cc:subject:message-id:date:from:in-reply-to:references:mime-version
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=AOdA+ChG2OJRi9GeaHFeK6eceIsji99wtnfgd+DpFZg=;
        b=fw1NFPxcu44u/GR17gWVt3s+Dr1shTYDMxZFq3kz4zTshjcXGDBwWZF3PjKZSDOT9C
         kSK5k32kOoSgbhGsLkDBfT2zfJQIhDKOdAWX04r/11TzFlsafLTX8f7qrfYKVhmFmNlh
         3TwCTlZAGXecUmi8ohL/7nINXiZHYpdAoE+BshLfUKdW3b5JOqoGjL3KlIp+/NXJEEnf
         mAaLhLqVOxmhHYTb1oGN++Ja9d/B/S01glAZGJ7i+D8iHWH/EjMktuQ9RxuKqZtZaq3R
         EqA34zuHXwv0rlkYlYmASGsHHB7qvJL2tJPy627vuapgZKBljipr8pBGATRsv1XfSF4m
         YnBg==
X-Forwarded-Encrypted: i=1; AJvYcCU5q5ztSUYCAMzddxiyHA6FAqdlJn7PcIjxrQYd2qb8v80LnIYI6hKYxgCyW97JCQH7gY13+Mk3tjg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxyZgyXsCENR05Vfv/3606PZbFOpLbA8DtTZIXlHgUIvYUqFUVB
	eJYzEXdhIGan6tA5KvY0XCQeWdm4lh5KJf14D3SDSlHH5S8AOLm/unxKmVonmS4R5ag43LfsSiP
	VTRiTYK7flyqezRHUz2l39WehZE07hYM6Nww1A4LnYA==
X-Gm-Gg: ASbGncv2qd06IwBnIOBeYcgWNu45pcmfvIMCK2UOyY1oQrEKv1B1ivvYOrTaIYvCiHw
	PmFp+a7Isa2F4qHQQcTbSWSO6s4T05MpvoVr6WUbqe+QrHsl+s7LDPbpBrf3c1y0RbndtqkA8JN
	qk3wxgB71DctlxwVqjZRwZPepFHaxvPl/yGyuyW8eW7A6Wo5WOoxRNiDgzlVHHI+KAM/z4fa6RL
	coD6MjR
X-Received: by 2002:a17:907:846:b0:ae0:c690:1bed with SMTP id
 a640c23a62f3a-afe2954f636mt1705321166b.51.1756373335437; Thu, 28 Aug 2025
 02:28:55 -0700 (PDT)
MIME-Version: 1.0
References: <20250827160841.351707-1-mark.syms@cloud.com> <aLAHoR3BtBz9G9Q0@Mac.lan>
In-Reply-To: <aLAHoR3BtBz9G9Q0@Mac.lan>
From: Mark Syms <mark.syms@cloud.com>
Date: Thu, 28 Aug 2025 10:28:44 +0100
X-Gm-Features: Ac12FXymndS46AxopGxYj9mkgbXiK1MJvc3NVcHdjpqTRtoppZ-Zsa6da0bUJvI
Message-ID: <CAPYKksW6df6cAf6fcH_gKj6+0tVADGtyKw-2weryr1pPfTqHsQ@mail.gmail.com>
Subject: Re: [PATCH] [xen-block] Return BLKIF_RSP_EOPNOTSUPP for unknown operation
Cc: qemu-devel@nongnu.org, xen-devel@lists.xenproject.org, 
	sstabellini@kernel.org, anthony@xenproject.org, paul@xen.org
Content-Type: text/plain; charset="UTF-8"

> The comment in blkif.h contains:
>
>  /* Operation not supported (only happens on barrier writes). */
> #define BLKIF_RSP_EOPNOTSUPP  -2
>
> So in principle BLKIF_RSP_EOPNOTSUPP is only to be used as a response
> for BLKIF_OP_WRITE_BARRIER or BLKIF_OP_FLUSH_DISKCACHE requests,
> however blkback already uses it as a response to unknown request
> types (like you propose here).
>
> Would you mind also sending a patch to adjust blkif.h in Xen to remove
> the "(only happens on barrier writes)" part of the comment?

Sure, no problem


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 09:37:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 09:37:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098004.1452152 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urZ4q-0003tz-3h; Thu, 28 Aug 2025 09:37:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098004.1452152; Thu, 28 Aug 2025 09:37: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 1urZ4q-0003ts-08; Thu, 28 Aug 2025 09:37:52 +0000
Received: by outflank-mailman (input) for mailman id 1098004;
 Thu, 28 Aug 2025 09:37:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=zjrZ=3I=arm.com=Hari.Limaye@srs-se1.protection.inumbo.net>)
 id 1urZ4o-0003tX-TW
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 09:37:51 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a89e092e-83f2-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 11:37:48 +0200 (CEST)
Received: from DUZPR01CA0080.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:46a::9) by DU0PR08MB9874.eurprd08.prod.outlook.com
 (2603:10a6:10:422::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.19; Thu, 28 Aug
 2025 09:37:46 +0000
Received: from DB1PEPF000509E6.eurprd03.prod.outlook.com
 (2603:10a6:10:46a:cafe::c5) by DUZPR01CA0080.outlook.office365.com
 (2603:10a6:10:46a::9) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.17 via Frontend Transport; Thu,
 28 Aug 2025 09:37:43 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB1PEPF000509E6.mail.protection.outlook.com (10.167.242.56) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.11
 via Frontend Transport; Thu, 28 Aug 2025 09:37:45 +0000
Received: from AS2PR08MB8745.eurprd08.prod.outlook.com (2603:10a6:20b:55d::22)
 by AS8PR08MB7942.eurprd08.prod.outlook.com (2603:10a6:20b:53a::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.19; Thu, 28 Aug
 2025 09:37:13 +0000
Received: from AS2PR08MB8745.eurprd08.prod.outlook.com
 ([fe80::a4bd:fd62:e7f:76d5]) by AS2PR08MB8745.eurprd08.prod.outlook.com
 ([fe80::a4bd:fd62:e7f:76d5%5]) with mapi id 15.20.9031.019; Thu, 28 Aug 2025
 09:37: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>
X-Inumbo-ID: a89e092e-83f2-11f0-ae26-e363de0e7a9e
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=eGmKPxkIUgI2sr19E8ncF7m4KistwoHn8yETAhLq9wWUdZpMGx/C1BFThPH9U9881tFIgzC9+cBkaq4zHhure9wof2ZrH5oDePLDy39xVuc9uzJ4j98r/xbMJG7nGnNxeCX/3cKTxfV7UOv56tvjDXLDuuGrspb2Phq4T4YY37hXAQkpV5JHFsrkmIOMxYrJ376NspYuDXum7peLw6rt20D1ZeBczR72GrF776/spY+qytHeIbthR/cuPhfmCtOg2JcMVIjn1xaN65LWG4ko2b97nuESbU7Mv1Yg034UY9EDxoHYKCx62BLy8vj87G6IOW7lZxMpymIL5KSlsQ+uZw==
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=prWRnuWXjw4uKYXEOoFp+eEuHp91/jO9Azj03WRAcBs=;
 b=tPcI09R1UO+UXDEcvnEZHSj9joh0bfsR3eryi1LGtSIUJwlXisCu78QrUDmqpzDosB4uKdDp8VK6iBW+7gVOVGswtMAM7ghYoXqh/JTdPiAGR+BktuSlAh3rJbTFN4YbrkUQkNODTuBZxtu7v1GPxco6ZrZ/zD4UPgbM7P/vw8wGJglcsxofq8DdxRxoO2XaV8JrzB86uK/RziktEt86bVqoJyTnNX7R8tk/BkUX7XP5jWDNL8a43uxpbAx33guTNj7/2mUNlgq77AVVy0VjeAd7hpX/W4rAbbnGw6X9fiqkhSEKLNxnY9NWrAkE5lteJvC7krg5Gm6a20rVUOmHYQ==
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=prWRnuWXjw4uKYXEOoFp+eEuHp91/jO9Azj03WRAcBs=;
 b=LHkdglYjEcNlDFWSFSWAcAdUdcYwwTVUYoudSLirtTOZsYMVSRfcle8vrSlPbw93aN36PJ2rO7SkiyGmOunwEWfsAddDE045xbSphQp1SHaNqczRGPOJViT1GjRSqoVXxpFv58xMH2AfF1w3rlSt1TFSN6Atu5EJ3eSx2odTCxQ=
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=bFA1vZnG8CpI9iISRXetuI1vFvj5IHP6dVPuBbfxlT/DtrVwRL5DJHTExcXr6ordUAt42QllhFarpc8mxJRdEJQL6JA3QDc2Tp44EUTPtKicsi1R1MD08fETSoprX1qdvRTrjNzNV4kKi11N2w87DjuVG/cFFriX2svFUaNPXVHDtLzZBZFVtV5kafydZmXfOUS3rrzL1QoEROq0Bu0QuxIzLNfqsY0yQ1GnzRqZOKOVWOnkzDMMQq8USDJ//wmunQE6nmgMsscT3b4S4Y6yKDmVwEALpo2uYS0DUM+7lNncRFZFBFa4Du+F8Pol9W7Gg6MmcWPUufHrXfnpaLzFdg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=prWRnuWXjw4uKYXEOoFp+eEuHp91/jO9Azj03WRAcBs=;
 b=e+sCGDiFB9yOGg9DqfkS3afk851LeQXaNqsCel0pgvCrt1bTa4gQ87YnloPNEO5raMWn4cWR8viVbM8TtmogSncX3ODJEeAFfnA88Dhnum3T07quyWNKvm0Gthb5Hcip9KNrGkJrX1TVgx8n9Gem9zjqN0fY/cykt4dWUCz2eODICzhiHl38MHbvJ5Ovp1VS6Sv9n3nhMGtxRcIF9VrkV/oVWemRKKN01WLyxDIcaDM1wbbyNjxENmD0Kxqlklr0PG5WBhQyJ45iv7V6DLgfkKGJcbjam9H1MaXSbygzh+uftfXnkoXighuow/ZY548u1I3/AOfAG10J3baw8FR1ZA==
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=prWRnuWXjw4uKYXEOoFp+eEuHp91/jO9Azj03WRAcBs=;
 b=LHkdglYjEcNlDFWSFSWAcAdUdcYwwTVUYoudSLirtTOZsYMVSRfcle8vrSlPbw93aN36PJ2rO7SkiyGmOunwEWfsAddDE045xbSphQp1SHaNqczRGPOJViT1GjRSqoVXxpFv58xMH2AfF1w3rlSt1TFSN6Atu5EJ3eSx2odTCxQ=
From: Hari Limaye <Hari.Limaye@arm.com>
To: "Orzel, Michal" <michal.orzel@amd.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Luca
 Fancellu <Luca.Fancellu@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 v2 4/5] arm/mpu: Implement ioremap_attr for MPU
Thread-Topic: [PATCH v2 4/5] arm/mpu: Implement ioremap_attr for MPU
Thread-Index: AQHcF/ycst5ZxM1WdEyQIzD/TwjB3bR3zqQA
Date: Thu, 28 Aug 2025 09:37:12 +0000
Message-ID: <DD8D8334-6973-47BD-907F-D7E621A44E38@arm.com>
References: <cover.1756312498.git.hari.limaye@arm.com>
 <d2287756e1cd2e7f1cf4ac1bc5de775840c0b0ce.1756312498.git.hari.limaye@arm.com>
 <3f59b4ff-31f0-4801-96ba-83df139af081@amd.com>
In-Reply-To: <3f59b4ff-31f0-4801-96ba-83df139af081@amd.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	AS2PR08MB8745:EE_|AS8PR08MB7942:EE_|DB1PEPF000509E6:EE_|DU0PR08MB9874:EE_
X-MS-Office365-Filtering-Correlation-Id: e6e65609-af52-4b6f-dae8-08dde6168b66
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|10070799003|1800799024|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?us-ascii?Q?CjvexDXa1O9/BzD0Z/w+a5ae0L9NTRJKsFeBjaj3roH1goOsE1+NEKF65h/3?=
 =?us-ascii?Q?goNHpxPK2eGkItMebrl1h3kP1Jx4sVSs4x2n0tRv26SAdA8nUKA7qioFPY6h?=
 =?us-ascii?Q?/k/oiXXA75+yKtXtDgK3n7nHPH0D+iWNEjM2krA5L6fxzhhcwNVNRK2hwRz6?=
 =?us-ascii?Q?DPC+Ntz7FtDE9El4v/rtzVM7Wr043GVYh6XmWaQz/XnPl3zgQyDC3ahcJ69+?=
 =?us-ascii?Q?vI4xiK/NaFGLLPcir9Zy2mFYMBwrk8aj5wGvkWeOkrCYaXt+dGc5UQSyjMXO?=
 =?us-ascii?Q?dQpS9MRuQq1EQ1r6NSOxkhq8KuO8PSpQajLHYNPDP9FRxEsRTJGKmAR44Yol?=
 =?us-ascii?Q?M2tPk3O/rUlQv+xlQSvU5gS7XGrdgLL9hCwDnhJFaxl+JCAL1x145mccMzUa?=
 =?us-ascii?Q?ln3pVjGqcwYYue+xs6oj1RcJ0g+AOdn5SI8jrpnI6o1Xsd8KhDpb9V/lW3Mw?=
 =?us-ascii?Q?IjLy7auVUBHUvwZgtTANCIeu9Sk20lTsKnpM4CywhretLNjKJoxT32foDxJX?=
 =?us-ascii?Q?u/vRIWvI1Bno5EYXjUeSukQjIMdan4K+i7m2lHsWkZwVGaZtz1NVlHNuF9XQ?=
 =?us-ascii?Q?oRVpy1mdbn8zhF/cmWNctBgv9WFO4yg24RFlErZzyEerACfOU6GCXKcy8s0H?=
 =?us-ascii?Q?svZvaQgCXppSsY4V33bEMzW6ZzZP4LvYvXgieUtkT3l2NGoaNF9Qs+YlokVk?=
 =?us-ascii?Q?t0KA56yFXtfsjZkAXyjfXX4+mkTK03R2Ww3pMrbGcnKoVJkMQi0yFy4A1/g6?=
 =?us-ascii?Q?1qfqmOTftceqV9gu2LPpwqfnd3jtADnpF1eDCvonRlEoAbt/2llwj7wciAl5?=
 =?us-ascii?Q?MhWJbk+ZYs6PxtO5SKQhTllonu2g9pL33r3cXgTrhxR6D01lKeA8hys2ON7H?=
 =?us-ascii?Q?TPrIYDq/s58oqaNXpjaXEtqOvCyWKZ7RIvhf5twN2WXGeuvqjf6Dtg1nmi4i?=
 =?us-ascii?Q?TVf/DEPsnHKsY5un2jjg1EllrCw6WcqVikDlHRJji4Cf3gVg3c3XyViW25ic?=
 =?us-ascii?Q?P33Z2I+m6vzka2FrsQrzXBI/7IIE2U/9VbDoAYL9ZFzQK20wMpFJK3H2Bxbk?=
 =?us-ascii?Q?6T3b/1giYYKqMTThyf1F3DVGbJPyfxnhHnY+xrF0vDTFroXm072Eau8Sa9u0?=
 =?us-ascii?Q?WSDQNvdVLqmegr4RE2JBwMiRyeASLvWotQ3Rdy5NhLWz2/SIWJ+axZokdRL1?=
 =?us-ascii?Q?iNPyeRtbb99vsEhisyoPkLDWbBOhJCLwS7FsYOoS5ImC8iFPDrpsugMgbtw2?=
 =?us-ascii?Q?SiYYlWITZrZ55Up25EiLcbncbj6OlygA4T5kszatVccQjWPy5di7Rky4yOhK?=
 =?us-ascii?Q?/6+w2CDcvSqnSqf+fG7utDhM8Up3qNU0imUUL80dBg+qish3i+TwY2HhJtOJ?=
 =?us-ascii?Q?khjoE2FaqQLVPRhd0SLgyhbAREmn+ExqZXhX3Ntecf+zMLxW5S+r5fcd4f2+?=
 =?us-ascii?Q?hvnF+IZpD7xOmGcdsTKuXzJbbq7GAqEYFp9yEaP2V3/jwRIvQfVMpg=3D=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR08MB8745.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(10070799003)(1800799024)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <F6BE6BC0DF228C4DA470F83E53BFC9FD@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB7942
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB1PEPF000509E6.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	aad9417f-b695-44ed-4f88-08dde61677a7
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|35042699022|376014|36860700013|82310400026|1800799024|14060799003;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?czIUPcUO5nhWAlfVlFZ34oHuwzbUrUJ2QPMgrWpQr7FrhJzzuNPdkCpFsS/j?=
 =?us-ascii?Q?Z+FFp4AhyaV6XhatZMv4lmID8h2XHeVFts88YAar/vKpoA1ZhCNPchnjw9Nu?=
 =?us-ascii?Q?oXwPIRORPa46LoDZEeBv/XtH2uCAF4E8Hz7XgEX+ZHCl8iAeQJDmnCf3gdCN?=
 =?us-ascii?Q?ohCbr+9LWUn1p7i+gy6SlVXc1PpwZrLbpIaJko5J4kDy8ayj2p+6rxBZaK5B?=
 =?us-ascii?Q?bZuBCfBUeAnyD2CvL7zQNZeEJ0sQyOaxzgQcLLOYLKKIE+7ytIipAoixSXig?=
 =?us-ascii?Q?PZgu5zf2YoUoHrR+T2/umUHuSr636Bfq+4OrlH7bMoKLmrBFpL30J1F+GQZE?=
 =?us-ascii?Q?81EdS59qFh78bXTvujRn/Z6CY1F7dvbCdTR1fiHbund5KnNzW9tCjgpYL+cj?=
 =?us-ascii?Q?bXI/7vF7GKfRRTFLef35E89iX7bVLLwTLIBcJNRafrJWxGC/Bv6SoTeoBz28?=
 =?us-ascii?Q?PMlWmpDsShVLhJSkLrlxJ8PI05W772PhcPPu4qW70XMQ5ze5lNq2Wvjguf8V?=
 =?us-ascii?Q?wObndq0cn/VX4gwscbJLNL9xbJbV5c2O/NI67Kd6sfb/hr/tt6nMxnUUhUT1?=
 =?us-ascii?Q?+UvFBzAe0dfsPq9XxRZ8tiiqPk+hnOqcDAYeEagNULpi0COSycgud+mem3Qa?=
 =?us-ascii?Q?SkaYHy0HOOALNpJsAHQEeBPP3dj3oTN/ZShNMac7gcHhqFW6Rr5ybwI/5k8M?=
 =?us-ascii?Q?PEWjdSNoWkohCdUEhLWtW2pZssqhQ6LQbu1Y8ZB08piGkwJqrE1jp9QB8xnM?=
 =?us-ascii?Q?6w4fUpL+cdPjyW1n+nJeB8l0x08nYehZJMXNeYvIxDVogV3dRn97nINUjX0d?=
 =?us-ascii?Q?lMC9F91vVL5jYYFSZVhWyZ1IhvskGT95m2CYFmYl2V+W9u2oFBv08IgN/D1t?=
 =?us-ascii?Q?qmKtzMU7Tu0zTBeUycILLEMuGJIHQmGDtD+3Esw2VcDT6kb+GuhkIA6cCEJZ?=
 =?us-ascii?Q?99b3Nn0h3xy2iU8HHdMOk1Yp64QqoEioNhDFHDsFWx1fwYAn1gfmQEd43wlZ?=
 =?us-ascii?Q?ztPre3m4liFfoHK8a5OofTskkk8HJHbM4fONNAhnugL8HCXF/obU1pBdD/2D?=
 =?us-ascii?Q?ngn18XGdT4a4F8ZA135mTpgE9N2L5ItYd9J8J5j75I/CEpGMz0Ud2mG1Ejr8?=
 =?us-ascii?Q?eWbwZtiyM+kOjBskdl1258SwlZD6r7SC/yM5KMqY1RFY2AYSwYPVKJkcaqHR?=
 =?us-ascii?Q?FpDNMJuMvUEq25ze/vSKCRnShU86s7LntSD6JyQV7/ghR+LZYWD/oX5r9wLK?=
 =?us-ascii?Q?JagiAlilNue9hkROlMh/uRoaraTXRCezwPYPTLxWk+2nLLU1PZi5c6WM/aqA?=
 =?us-ascii?Q?HREMCYJxizKpCvAKVhA3pPddRHg7RHZTrgg8f5AlJuS67l6o53DJKZvfGaal?=
 =?us-ascii?Q?xWDJiZlLp7PQow0srEnzM4PiCeABQlNTx0XVClZKAg9gW16RC3oSTbItgHg5?=
 =?us-ascii?Q?BsUf4QFe2AjOXID4hwcJR5tYHB2WU0HwUxjjbgErMZqLD7VVVxD4VPjuDgHN?=
 =?us-ascii?Q?ZfTkIDC5X1s+qiRef1qnr0aXRKYHdHGYBPGi?=
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)(376014)(36860700013)(82310400026)(1800799024)(14060799003);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 09:37:45.7938
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e6e65609-af52-4b6f-dae8-08dde6168b66
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:
	DB1PEPF000509E6.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB9874

Hi Michal,

>>=20
>> +    rc =3D mpumap_contains_region(xen_mpumap, max_mpu_regions, start, e=
nd, &idx);
>> +    if ( rc < 0 )
>> +         panic("Cannot handle overlapping MPU memory protection regions=
\n");
> Why panic? This function is not used only at boot time and should propaga=
te
> error to the caller, it's also within a spin lock.

Good point - I will update this to propagate the error in the next version =
of the series.

>> +    /* This API is only meant to unmap transient regions */
>> +    if ( !region_is_transient(&xen_mpumap[idx]) )
> So is this the only purpose of the transient flag? To check that unmap_mm=
_range
> is used on the range that was mapped with map_mm_range? What would happen
> without introducing this flag? You already check for the matching attribu=
tes.
>=20
> ~Michal
>=20

Yes this is the purpose of the transient flag - we want to ensure that a ca=
ll to unmap_mm_range only destroys a mapping that was created by a matching=
 call to map_mm_range. Due to the fact that map_mm_range may not create a m=
apping in the instance that one already exists - `/* Already mapped with sa=
me attributes */` - we need this check to ensure that unmap_mm_range will n=
ot destroy a pre-existing mapping.

Many thanks,
Hari



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 09:38:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 09:38:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098016.1452162 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urZ5Q-0004Qa-EL; Thu, 28 Aug 2025 09:38:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098016.1452162; Thu, 28 Aug 2025 09:38:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urZ5Q-0004QT-BW; Thu, 28 Aug 2025 09:38:28 +0000
Received: by outflank-mailman (input) for mailman id 1098016;
 Thu, 28 Aug 2025 09:38:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UDiq=3I=cloud.com=mark.syms@srs-se1.protection.inumbo.net>)
 id 1urZ5P-0004Jm-FN
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 09:38:27 +0000
Received: from na1pdmzitismtp01.tibco.com (na1pdmzitismtp01.tibco.com
 [160.101.131.8]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bf3b23a7-83f2-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 11:38:27 +0200 (CEST)
Received: from mewpvdipd1010.corp.cloud.com (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTP id B641840C75C8;
 Thu, 28 Aug 2025 05:37: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>
X-Inumbo-ID: bf3b23a7-83f2-11f0-aeb2-fb57b961d000
From: Mark Syms <mark.syms@cloud.com>
To: jgross@suse.com,
	roger.pau@citrix.com,
	andrew.cooper3@citrix.com,
	xen-devel@lists.xenproject.org
Cc: Mark Syms <mark.syms@cloud.com>
Subject: [PATCH] Clarify the cases where BLKIF_RSP_EOPNOTSUPP can be returned.
Date: Thu, 28 Aug 2025 10:38:21 +0100
Message-ID: <20250828093821.372024-1-mark.syms@cloud.com>
X-Mailer: git-send-email 2.50.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Previously this said it would only happen on barrier writes. Except
the documentation blocks for
 * feature-flush-cache
 * feature-discard

Also say that they can return this error.

Signed-off-by: Mark Syms <mark.syms@cloud.com>
---
 xen/include/public/io/blkif.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/include/public/io/blkif.h b/xen/include/public/io/blkif.h
index 8407453324..5e617b0c67 100644
--- a/xen/include/public/io/blkif.h
+++ b/xen/include/public/io/blkif.h
@@ -710,7 +710,7 @@ typedef struct blkif_response blkif_response_t;
 /*
  * STATUS RETURN CODES.
  */
- /* Operation not supported (only happens on barrier writes). */
+ /* Operation not supported, see feature-barrier, feature-flush-cache, feature-discard. */
 #define BLKIF_RSP_EOPNOTSUPP  -2
  /* Operation failed for some unspecified reason (-EIO). */
 #define BLKIF_RSP_ERROR       -1
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 09:39:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 09:39:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098033.1452171 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urZ6h-0004z9-NZ; Thu, 28 Aug 2025 09:39:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098033.1452171; Thu, 28 Aug 2025 09:39: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 1urZ6h-0004z2-Kt; Thu, 28 Aug 2025 09:39:47 +0000
Received: by outflank-mailman (input) for mailman id 1098033;
 Thu, 28 Aug 2025 09:39:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lRvb=3I=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1urZ6g-0004yu-1p
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 09:39:46 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ed72a425-83f2-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 11:39:44 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by GV1PR03MB8094.eurprd03.prod.outlook.com (2603:10a6:150:1d::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.17; Thu, 28 Aug
 2025 09:39:40 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9052.019; Thu, 28 Aug 2025
 09:39: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>
X-Inumbo-ID: ed72a425-83f2-11f0-ae26-e363de0e7a9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=kk0cCSPTwqLbmS2Ft2j7oHCPUUsd9edHmdwFXWZCiUSHSxMdwpkXsfq+hIZm4JU6CcZ0R8hhYw6VYlh8+SEdxSC7FdmzngehQgH7p3Q/nEDHIqN+SYiEqs8piOUpiMqElDeL+Cg1inhkWrYzlphekCncBNHJJ5f/oHfNhj7wT6mXs1sWyM7ugKNsuYkyiAuK1O1IcCS6tU0BHzffgE3euem0sqki8N/9vXi9lzWBze4maJ/d+QD25l9Jrgn4FI/5fKckTC8EUQ+RfXtg4N+zxGOWgxXJBd8PFPer7l9Xu2ESg4N+2BIrH/jd9Ie+K4TMKYH85pAWZkQEi9ZYE3A37Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=rC+z1m3Xqg9BGv69p4gUCcMrc5tPT/9elUP1cYDguXI=;
 b=Me0tKKBUYVKVKsKSQaey30pjfiuxm4XjtkWeOFKHq1ljBLoZCU8SfQHuBKWLB/FczXm0GV8/Of51CmumQpEqO97TpAyKyJIuB2/DEuZ7Vm5DasRGVe2Tt8eU2IsYk+7Y/nbiZ6t64c4U7zMbWUl5Lg2M+5oPtLuZKIouTswm2zXW9T9gx7yKx5gMzOmVyHs8nAA4fiioicJJJx0LzZO1plctILjcSxmzeZeaVFlURIA3SeYuLmJpvwxZEZu1N6Gn2Yd/FFpFhn/K6Kdx/gdN7lr1c04s4PfwZwxjBS4uYzJe4gwC+sqKT5nr8N+p+/L39O/wmPQhixlquFv2b62zrg==
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=rC+z1m3Xqg9BGv69p4gUCcMrc5tPT/9elUP1cYDguXI=;
 b=cxs+hTD1U2xxNiwDI3uOfqEktYKEBWid8ln2x43XybtxCX9UdyTXiIpzBPyBzj539cx+blyW8x1g2sPU6tM4DRFO4gn7waGPBh8fd8x6J+xKScVvCzgxaYdWORCzIYRA+XNtrg9Bql4kJUGBFrQQ32MF/XLnvVoWZJgDlEVpbJblti1ubgvCVkX7FAlh9WIT3DKi4kebMyktAszJ4bJcLcKhho2NHlkc2ryQPovffyY9TJwP8a3NUVXK6X3O64+hdP9VhL5iPV7RyYWDZ9nqirYD2ou0YN8otzwBdULLLjp9cgKRmtLztOQfPParSqHUIPiJoFXsThi4dXZpL1eecA==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v2] device-tree: fix infinite loop issue in
 'assign_shared_memory()'
Thread-Topic: [PATCH v2] device-tree: fix infinite loop issue in
 'assign_shared_memory()'
Thread-Index: AQHcF/+t4SQcUfz6iUq+nv3WfuhiHA==
Date: Thu, 28 Aug 2025 09:39:40 +0000
Message-ID:
 <0e562f695e5db87ab80dde69cbcc0cfa14f94b21.1756373770.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: GV2PR03MB9572:EE_|GV1PR03MB8094:EE_
x-ms-office365-filtering-correlation-id: 950d4b6c-f7bb-480f-9b8d-08dde616cf99
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|42112799006|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?0ORMxPqDLBUsep5f0gcBoLZI8iKBC/Ub1VQEx0eNvwaqkS+S8N5N4ddzcX?=
 =?iso-8859-1?Q?fFAkL4t1n0cV/qzTUYMK7UmvmtICSbZNaeSfzA9LRqU7/CdEyF5o5jI6yA?=
 =?iso-8859-1?Q?HmOIIC74M+yptF1j38trDMIw8moxM3RZIjZwO+m/XYxjOFzgmla8UUzSDs?=
 =?iso-8859-1?Q?g9MpwiIktrKU9GLcFv15c/2kIpXIythWYfPRS8/bU8OTKpdtHWUQaX+gLr?=
 =?iso-8859-1?Q?fkcKZo3sBsk0MsFdaZg+xfiwybrv0bHvGK6TC5SuU/GGhjgNsOYxz37KPd?=
 =?iso-8859-1?Q?hx9as+6EEuIRnu09vH6djwjConUS8IuJ1aQGf/DWYlwm8rXHWRjRrkBonL?=
 =?iso-8859-1?Q?oI3R54MH4sZSRjKvRpag/EOmOBI/mQuYDkn4KvEryHSFVuYQ2xicc2Nsty?=
 =?iso-8859-1?Q?n4poMtz1cAiYi4vzJ7Eaja2G4oULJeLuNCI1FJmHDPpka2ADaDQw/0rncZ?=
 =?iso-8859-1?Q?izO0PtXTEryRjglBd5hXiomqnoRXP4r0IrCgoTscKw/o6ydPiErPzjor0b?=
 =?iso-8859-1?Q?7zcC7zQxqW2naLNbSf3OW4LlZoi1Gh+RmGtrm1zhQZa+YAEyQIkcNDle38?=
 =?iso-8859-1?Q?foM+3d5vhKdKXqYGtUDtgMlhCaP+/D4B/d1PREAo9FH90HGmeQGWLer3he?=
 =?iso-8859-1?Q?RwI1cEFOdutUXpl1Ha2pJridQY1C3XlvlZ1GHLSbWZCsPIxdQCnWBerEAq?=
 =?iso-8859-1?Q?sRpgCNoynqosJV4PtWhxZPQKzUa0OxCo3DwgSzNLzFsTiFy9YKbbGgH2P4?=
 =?iso-8859-1?Q?kuhw8X7LuyXcOg3fR8ocWBTb/IPr/E6ZPE+QbND8B+oBnqDcHHdE6gq3Gz?=
 =?iso-8859-1?Q?Rl5OAq2VnjVaEx+LYOyh5ELjPQjfiRw5AWIr/VBdnM0PBEd3PRNLCwTggC?=
 =?iso-8859-1?Q?5c/QdbGl94JMTQYyU5uc+tCFlmvqwr0A3teIOKT9/n5P0RQk2mq6Tb+Ecq?=
 =?iso-8859-1?Q?pgTzA290+FG+WPNKcj9I/1NzNGdjPIsHQNQAGD2+jUjERmWed1Avrwvoza?=
 =?iso-8859-1?Q?1tGmgkighdvctG3GmyeJ0dTrRb94GezlDcRswMF10+9/XE4KwVpn/2h7XT?=
 =?iso-8859-1?Q?G+3TEllg2XWayrObksMEjwUoaeqjPa906fqzzmupoRUKVwcNaKaP6K4rGP?=
 =?iso-8859-1?Q?u87iQVhCsmLyXMBMbdLsRu9nWQlOssn3dbjOjcnUU2L4qLpNTjNsEfiYym?=
 =?iso-8859-1?Q?uZEEOSI1J6wQ4Cd+k+/qffUJzHGBHQVpKKj7eWY2mqAUDuvJ229Okvr1Mf?=
 =?iso-8859-1?Q?bZ+wxIkbvDtquMge1e/nTvPZCNmEC3wBmIJ382jVGYT+av0UkVezkSZ3wQ?=
 =?iso-8859-1?Q?cleDGhGYtQHIrjbDK0ha2SHprUWNKb7s75graoQyzTz4iVfSlb6oUZmfsN?=
 =?iso-8859-1?Q?8i2d4x0MXVeRpkuWGTAtN1Ux0LfsG1Nn7blENQ+8qmkJKqZFCwQmfOgXKH?=
 =?iso-8859-1?Q?57Hg09zovuKmvFeUmA+y2MCGnuGgy4mR/PFuTd5l6EYcR31uG12IjyFV+z?=
 =?iso-8859-1?Q?g=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(42112799006)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?WsxxVL+vpS0YqvM7UGEAdTJTxNy0lrLsN8XIMGGXLVM2nZsh5ALRqHERRX?=
 =?iso-8859-1?Q?0znwvrFSUC5APvfG6YwIFTyuC5+HEQju5B4L2XO0In8kEfbszzhVWyAcN/?=
 =?iso-8859-1?Q?oTAAXAmTrIRngjMA51eec7uUtDDKY+NViuH6Lo/hg9Bq0SjNk7am8MqTZe?=
 =?iso-8859-1?Q?uwcC3JhP1ZoyUmZ4Heger4Qj2eLe+h0XE5Z/YgrYEqbHuTv42qwaxqz7a7?=
 =?iso-8859-1?Q?JrjdZU6eNROEkFhU2iCPjFrPvaiB7OTbmdPV+hAArKa3ciPP6D0p+u4ZL8?=
 =?iso-8859-1?Q?mT0h5P7YAXmr3u5QvHgHur74QqrVH19Nk2nWqg2ySW0z//31vLV90rPahu?=
 =?iso-8859-1?Q?ugiE8kW9t8zc0vZymBdAP5IqmX1pq0U6iz0i00v12QVd+/as/QfgrtNbm4?=
 =?iso-8859-1?Q?u3cWMb8JOLvSJfGNFiBhllnHnH4juCERifDdww4SIzK/teF1L7X3pmzBSk?=
 =?iso-8859-1?Q?GzuoFKcZ/Q90MRAy3WLUcKyCcNKd+OC5dNzBUb1EoMb3zvHPJ6+NwFApzd?=
 =?iso-8859-1?Q?1M1XkMZGNKxHkFSe3BPFAbPZh477v8eGe4XkFEBoffE3a+RGvWKJr319TE?=
 =?iso-8859-1?Q?UiYjBGM4HZR6XRf6kYUh31hb+4+YSwWzgFrTbKKeUNQdd2D6AdgBJosfQl?=
 =?iso-8859-1?Q?TA51FFFWrkuNr5R5Ix1/7Cu6u++eoXLMPThQ3Kng4d9q+PIO8JT+B7S6Bl?=
 =?iso-8859-1?Q?Bdsab1363Oaf7BasqLtDYjt6Pxjl5HS1fz8e4WCEWT0ANhYaKh3yS/BKc9?=
 =?iso-8859-1?Q?pcBmaLUaMkArMc+CvRIQwMQ8rIuuH6tMyaghIngU2jpi8QkK+W2aZUiIF5?=
 =?iso-8859-1?Q?RXiKbokYN7D0g/HBG1juh4BdeqXCBeOAeijMeZZDd/b/NvcNSJh9dm3+Ko?=
 =?iso-8859-1?Q?alTR25L9azC7cZt5nHN0B0rtowqMoFyMBzgMG+Sa5N4ER0Lbuz2qKbG7S4?=
 =?iso-8859-1?Q?EUDiVXnX8Tbpeqpbk13jkZwtVyzZ+Nu3EPE5hzQ74ChCiu2wXuFhhOsU/B?=
 =?iso-8859-1?Q?ZLKq8cFqywgRS/5r/NsDuHSi6aBJVsVO3zZu5EG2cRzFs1x7xT5g1XV5Xi?=
 =?iso-8859-1?Q?6UpffJr8jvZCQ80SuLws3zTW93cl/RIpamUwIeZiBbXtDuYBJsyZL7onEI?=
 =?iso-8859-1?Q?LpCOXz4rIrzZ5OS1cTaoWAmr6gGu6cao3AB5ZF0MvleQj3p7oMZwip1D+d?=
 =?iso-8859-1?Q?9F2fRLOTSuKYbJyvWxeDpndPPG4KhMxrX0gOH40y3m5amqk7QYDXmuHYLF?=
 =?iso-8859-1?Q?f3SO6oRLmLGdqZN//iXq8rcB4atfvdcOB8KcKMYtRj5M5e60lwwjrk/lwm?=
 =?iso-8859-1?Q?F9ahoji63yH3reg/VPAC7XjI6a85aIAaiVgJTH/Dsm4zdOJrJEJBGdmijB?=
 =?iso-8859-1?Q?57x469XsLcpxCyoCiZ00B6fZ5gfeWZdmUocFAs8U/qiwogN2LxhxgHHz+G?=
 =?iso-8859-1?Q?29hyw/g8vTv6p4XscQcBcvMssYPBGmQ0sxoAJisRM3FvV3B+mpsEJSJMZv?=
 =?iso-8859-1?Q?kIVZjeaBbM9lBC/YVbqenqODnc2AT2f50rnzdIBOeqOeX84SmQ5gkuksdw?=
 =?iso-8859-1?Q?dpO659WZhCGsZVBISI5S2P3Yxl8eR8+YYP+SL/mFAv74hDYIHiFxV1EcaE?=
 =?iso-8859-1?Q?/FxTKV1s+ZjDotiFMiC3V9ovQuspNroULAjneTqcAqo9w+dLUyJacB6g?=
 =?iso-8859-1?Q?=3D=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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 950d4b6c-f7bb-480f-9b8d-08dde616cf99
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Aug 2025 09:39:40.2635
 (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: z0JZjmboeBzhwNMG4aq81xwxR8uQscTWbpETxmVI3nbUvoj1LUzZUjdX+1+p8aWHxZi5GuuUjjeX01vhNvO4zCTc+AhorW1kuKsjU4T7gz8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR03MB8094

Fix an issue in the 'fail:' cleanup path of the 'assign_shared_memory()'
function where the use of an unsigned long 'i' with the condition
'--i >=3D 0' caused an infinite loop. Update the loop to use 'i--',
ensuring correct loop termination.

This change adheres to MISRA C Rule 14.3: "Controlling expressions shall
not be invariant."

Fixes: 72c5fa2208 (device-tree: Move Arm's static-shmem feature to common, =
2025-06-03)
Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
---
Changes to v2:
- added Fixes tag
- updated the loop to use 'i--'
- updated commit message accordingly

Link to v1:
https://patchew.org/Xen/d7768394209c65cfef4006c3ffc0a0f5d82c4c18.1756368997=
.git.dmytro._5Fprokopchuk1@epam.com/
---
 xen/common/device-tree/static-shmem.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/common/device-tree/static-shmem.c b/xen/common/device-tree=
/static-shmem.c
index 8023c0a484..79f23caa77 100644
--- a/xen/common/device-tree/static-shmem.c
+++ b/xen/common/device-tree/static-shmem.c
@@ -185,7 +185,7 @@ static int __init assign_shared_memory(struct domain *d=
, paddr_t gbase,
     return 0;
=20
  fail:
-    while ( --i >=3D 0 )
+    while ( i-- )
         put_page_nr(page + i, nr_borrowers);
     return ret;
 }
--=20
2.43.0


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 09:41:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 09:41:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098054.1452181 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urZ7w-0006ba-1R; Thu, 28 Aug 2025 09:41:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098054.1452181; Thu, 28 Aug 2025 09:41: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 1urZ7v-0006bT-V2; Thu, 28 Aug 2025 09:41:03 +0000
Received: by outflank-mailman (input) for mailman id 1098054;
 Thu, 28 Aug 2025 09:41:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=zjrZ=3I=arm.com=Hari.Limaye@srs-se1.protection.inumbo.net>)
 id 1urZ7u-0004yu-G2
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 09:41:02 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1b3de217-83f3-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 11:41:00 +0200 (CEST)
Received: from DBBPR09CA0029.eurprd09.prod.outlook.com (2603:10a6:10:d4::17)
 by VI1PR08MB5503.eurprd08.prod.outlook.com (2603:10a6:803:137::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Thu, 28 Aug
 2025 09:40:53 +0000
Received: from DB5PEPF00014B97.eurprd02.prod.outlook.com
 (2603:10a6:10:d4:cafe::2c) by DBBPR09CA0029.outlook.office365.com
 (2603:10a6:10:d4::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.22 via Frontend Transport; Thu,
 28 Aug 2025 09:40:53 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB5PEPF00014B97.mail.protection.outlook.com (10.167.8.235) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.11
 via Frontend Transport; Thu, 28 Aug 2025 09:40:51 +0000
Received: from AS2PR08MB8745.eurprd08.prod.outlook.com (2603:10a6:20b:55d::22)
 by AM8PR08MB6403.eurprd08.prod.outlook.com (2603:10a6:20b:355::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.24; Thu, 28 Aug
 2025 09:40:19 +0000
Received: from AS2PR08MB8745.eurprd08.prod.outlook.com
 ([fe80::a4bd:fd62:e7f:76d5]) by AS2PR08MB8745.eurprd08.prod.outlook.com
 ([fe80::a4bd:fd62:e7f:76d5%5]) with mapi id 15.20.9031.019; Thu, 28 Aug 2025
 09:40: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>
X-Inumbo-ID: 1b3de217-83f3-11f0-ae26-e363de0e7a9e
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=fSaftOncjEI2DuZ/r0S96IfFvUFmtpMu5H7pGzECS0TivcyAlSpWpCeUOENkajnw1LktDJFSy2LuEPnvf3j4/77eLza6ybUrT3+PYlf76NTtcxM2eoqtuCSoMq9TwRMA8PJj9yT+nWcH6T3SBz9jSiKtIJ4qmvYx8k9g4o8U+E2DtxvJY+y3UUd0mxfM7Cf6J/BTbU9G044jDDZBvSC7H7JPUxk0ePXrru8daiM7Nuz90yWYdAJjgUfaZY4CFIoXEEVXjnHVOINRl27L8b2kAIkb0LYlTrYwUkO0RNAuyUmQjiZCUb8wQqrbEBRdHMMKGVqQOmmU6mTiNuI8TiNRmQ==
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=n52Ym4k8awErauqtN8zpuL5y/bRLdy0wyKuADI0mL8w=;
 b=qXi9T52ucw49NUAgB7hhJ9c6RKpHg+Mx+e0EDEhBBspyY/RzOLYdbE0jsbatcHaKPrnSSJuVC7Rv4Oi5Mb2oB0vwaMhB90pgdKvCysYGuZFHDevH0st2aKv1Y9mFvhYTuE0asluXHRfybtPzQDHwrWbh8iN6D/tbszGqzWDHiRXrCkowdYPNEnmh3HSwMfSH1tUCdrFwUcVyf4+pIna3T1LEGCgg35Ab02cif6fuCG9o8FrJvlqqthLgEStiF1lEjOFFXfatOz7gu0MxRXu6HfxNeViCiGq0IJ8GcVKk68EQEBDlMRAgO14f9CsHSdcKjQIrMHYOwc2n0uRYRiGqEQ==
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=n52Ym4k8awErauqtN8zpuL5y/bRLdy0wyKuADI0mL8w=;
 b=Elxva6QzTapiGr/3uNbuG/MAqJB6aSGZv128vVSjfL+yBF5acbLkUMgfdJ+XCU6uC4k9iD3Dbs/HIUTfeev2yOjWAXtZOAn+3wphc0Gi56e0a/tm0+5fdzOt36vc2ijT/3q1ZJzgnncio+MnU8e88lTyqgcKxygqsfvwK90hw/A=
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=a6B1PtggluCRANcGYLZnL73Shfl3pdL0dw0Jq/fcVWXfuiwJtmxqFzvEcqREtkFbO0tczIM6qEv4bQsFm/0WZbqmvhPqOKWqLXTtEM+TZecpdoEIeienA/2aPeacod2l8wrNHcAAKgEY08Pj0CWOOks5S85GH2PxSdQnUeLbXZaKZEqGQeGQCSrbxygibdxU35+jHxzySU8fUCCThOHCGOCWUDPLi3bcBnxhn/2oQT6IJ9OPlYv0vqRaFpPal6YIHXgEjRhG77Dj3nZQP0oHh2xCTh/NHBb4yXAFtJOdTysFC84xNNp+xn3s/D0sycCnyHsiOwFdTgGW+HuuDH3pLA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=n52Ym4k8awErauqtN8zpuL5y/bRLdy0wyKuADI0mL8w=;
 b=SxV2+NjGt10wLC8YDM38NJwpLKgnz8CvBgxOd+2igcE9x3c/OfbyM5Y4ZDb/ZtxQqDHE1gz7Vsqe9K7VP41lHkmHDE1N+XxeaRQYBZjREIYcOqIhFZyFu6EHeZ2NINSVOc+RS2MUrh+a1AxCvP5ASbxbyGcd2T5NUfMXHgUBD3S1qCtQAsRJKjkhF//DT+XjTqeiLlayubCeAQuTZArZkv3jk5MzYU6naQb9x2e4dvM7KWUmSHKXWMObRlmDXUhuzguFw9MlGVIy+WKRnSx8JfuHCOFWrvNPzStPukVi5trgOFDfe6d/K5tCgSuFgagRafPWHUUKRYV+jsv1KN2Eew==
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=n52Ym4k8awErauqtN8zpuL5y/bRLdy0wyKuADI0mL8w=;
 b=Elxva6QzTapiGr/3uNbuG/MAqJB6aSGZv128vVSjfL+yBF5acbLkUMgfdJ+XCU6uC4k9iD3Dbs/HIUTfeev2yOjWAXtZOAn+3wphc0Gi56e0a/tm0+5fdzOt36vc2ijT/3q1ZJzgnncio+MnU8e88lTyqgcKxygqsfvwK90hw/A=
From: Hari Limaye <Hari.Limaye@arm.com>
To: "Orzel, Michal" <michal.orzel@amd.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Luca
 Fancellu <Luca.Fancellu@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 v2 3/5] arm/mpu: Implement transient mapping
Thread-Topic: [PATCH v2 3/5] arm/mpu: Implement transient mapping
Thread-Index: AQHcF/1H84gXhbGzU0K5yIusBBold7R3z2EA
Date: Thu, 28 Aug 2025 09:40:19 +0000
Message-ID: <4FA3E89D-A3F1-4A80-9E76-CF7544FD5795@arm.com>
References: <cover.1756312498.git.hari.limaye@arm.com>
 <80b0b3f84ae73f7d92d1b1cfe057ffc438882725.1756312498.git.hari.limaye@arm.com>
 <b9e9a44b-c718-468b-993b-419658c44667@amd.com>
In-Reply-To: <b9e9a44b-c718-468b-993b-419658c44667@amd.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	AS2PR08MB8745:EE_|AM8PR08MB6403:EE_|DB5PEPF00014B97:EE_|VI1PR08MB5503:EE_
X-MS-Office365-Filtering-Correlation-Id: dcbf449b-fc91-4d0a-2067-08dde616fa32
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|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?us-ascii?Q?0WwKcycxSDTLb823x9BmMHb3AaFkq2JZXFFtocF7aozvfxPcK2MsdgB5eAGs?=
 =?us-ascii?Q?yB02RNu16sccfB49Sq6/YDHMA9zVO7W4oleud8g/nfAK+KWM4WTCCpY0dMla?=
 =?us-ascii?Q?4vcUMvPCH2nksRvacvrCpNsXxGGTxlSinpScENJdnB2RaXEm5ooHlbf1WqNB?=
 =?us-ascii?Q?NtQfS51PHYVz56my2RQcgRl9Ab1HNFdFXC0iy7sDG0swLke0+PsYfUiXlMQY?=
 =?us-ascii?Q?j6KLetdxJXwNXn3w+8owm6MAxBK8VyTEh2KuO6Cxq5I9UJsMHtsvnnzYdIZt?=
 =?us-ascii?Q?vF4DzJloFpa/vWQXSZ2LWuaWMOgIihBDt5dAr8Redtnub2vp5AN1bhewEA3b?=
 =?us-ascii?Q?1EqUeB9VvOzHGGGp4uG+FNQBIOvg06TrkLHEg7aPP0ouddkZ/4BKt1isIgYZ?=
 =?us-ascii?Q?iFseYJMbftiskYeTjZHeqOh5ZS4TTHNIhdyaLQe5JoHIR7Vvd7r9Mbecn/0U?=
 =?us-ascii?Q?AbdldNyRTY2cHmHWYFcz5KaF4oDTzZ3Rozz6eEe5qLXWudJDNDbHFgJtgTdt?=
 =?us-ascii?Q?EwrJqYo+EtS9BLhPcz+tLZBCdw8r/O5YTqgvoIk3kNHHuN9LpiISjDpaokbL?=
 =?us-ascii?Q?mwVhMrDX91fG5gnbIdFsvbz4u23V2zlqOjiVpqdhjYM2xzuEeTzxJ9YMNmU/?=
 =?us-ascii?Q?MqGiqXhcyMTR8LWQs9ioAP3F3LpEbmcH9TNOonOAA2lMdSslFBeu/zSOw4Go?=
 =?us-ascii?Q?jPlRFZj+GBdezGoMxCWvAgF3Ls+WAPp8zgeh58ORkvrmF3tZtcLjL7ZQnmRL?=
 =?us-ascii?Q?WinGRkE7O7hRSEsCTRxtfjB70JYioBMVgUjdglwG1/Fa3lK5dHlftdG3BpM8?=
 =?us-ascii?Q?7YuW0/ExGpxgU/1aa4n9PwsKII+G01wYXgg4Edbg74BCFerJuGjjCs1e9O1K?=
 =?us-ascii?Q?OQ6wC13MCe7UeQjnHcgE5lu4JluGI7of94tP+odSVAUqwDD1UJfNCNJaAwvi?=
 =?us-ascii?Q?jAvWWQ8eskVS4DRnW9jzzD1zxxowun9KSWI4bMl0wpd5x223ae5t2GXyWXeO?=
 =?us-ascii?Q?aA2N4rZRNTTKSqZ7p8eiEFNUEIayqJlAfUWroLZJE3XiJcjPjIfTmeKdO2mC?=
 =?us-ascii?Q?UfdFvzc9Jgrww5WJHTRHP2ZWrBydTZx2/d4fuJ5zIze2BqBz+DXDxD3qZ6v6?=
 =?us-ascii?Q?6Gyg/nczT4Zs6qwNM7mWpSK9vwJuwVjwz+T0MhGtAXha8dYBWGnayOuTuyFg?=
 =?us-ascii?Q?JMxEcQyZvutGXPuIE5x3fjozC2xVPGsPxRxnIluKDGo2nn2ss41qQR5/LTUu?=
 =?us-ascii?Q?pzWZ+6W1mJOklQxBGdZxRpCpz7a61LECBJZUyY2JuawwO6HzKxBTPbcWwxCq?=
 =?us-ascii?Q?U0DjG6PM5/b5IS/vRGWCd8Ol36937i+pQUNWBe3+5F9Ak+Ax75pYaNtprD+D?=
 =?us-ascii?Q?wsiKSFU1IPb0ZCpZ2TE0gVcMqvs0gzthCAZtRNfM6afngZ0qUZuttiBr3cBW?=
 =?us-ascii?Q?wq5JdipGwwFaWmKeaG6kLxA/Y0M22l+N9ClXHWah6u6CG0JkOeG+mg=3D=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS2PR08MB8745.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <038234FAA12130498D2EC1F25762016F@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB6403
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5PEPF00014B97.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	c6fcb658-4445-4cdf-5e76-08dde616e71d
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|14060799003|376014|36860700013|35042699022|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?VCHghIGmOExRiI0BcFID2uz9N0V+u1bTQ+2ENNJrq0Ba46oTzEvqw72vdjOn?=
 =?us-ascii?Q?7PX6N+l1bKtyHRcfVEPF9FzBVIbsZpwGtiuw1Rm6pg+meFVapyOsR0dw1dvz?=
 =?us-ascii?Q?1wiNDYYs6JzBdosyUVOB2lz6GrvD/M5Plas3HO2f5WJ3DjlBvAw5DJ4JXYDe?=
 =?us-ascii?Q?lay92WRP3N9Ak2dIOgY2fZqBuvSFlhEWeS/gv7OocP7AuKzzyu47MOxiHk6i?=
 =?us-ascii?Q?2GhKx+B9qVg3FYMlvDNUHlEbECYdk5woBuJ0s9CBj5tFOLJG9zcvwEBMr7Re?=
 =?us-ascii?Q?2bQa8N8inwV+0cS8h6GinaV6iXTR6acAR3v5+5+FW6mj8HT09lEasGwVTSvn?=
 =?us-ascii?Q?ULeGabIHaq2f6iRojULwUtQrLW1v9dhE0hm756uNtX20olkbhiy5klbnpSUX?=
 =?us-ascii?Q?3MumLvC6waMAQ1jEivs98/LG6IpKBpz80PGavJ57iDZnaknkxSRPeZk0B/Jc?=
 =?us-ascii?Q?xatVlolu82b+Y+yOcTypBMhFVQ/nTk/r7Sreap+jNmol5vGk+yFYtKKYlsVR?=
 =?us-ascii?Q?JRlrfOzASnwJGaZPjc9wpbg0BadddcCnjbMZtRBQATvBCxkcODMlFfaHGrB0?=
 =?us-ascii?Q?I1Cjlb/OJoYyc7+NngVG37xXWcj+mD21uWnNozsOzsUoOjxmutZjs/+ruxOb?=
 =?us-ascii?Q?G3Pe+FNZJHcG1+f3YN3yS5w/eQv+pdZ/Z2CaIT349fN2qOammkik3wZ4VFW1?=
 =?us-ascii?Q?O50kR8f0raqHoGenztdzc6o07cnZsSjvxJWVRI9FBaa+KSVmyknW1s+9p0iZ?=
 =?us-ascii?Q?VOssMXnbg36gKASV+z2zYU04Wq0OXajyyqKPHjbmiNN5O3sUoI1lIlEFqlyn?=
 =?us-ascii?Q?hRlu+4yFvQIoGJPrKGevwOv7o2kHzRzG+PjItAklLfDU40tocHrlDjn458US?=
 =?us-ascii?Q?4V6ghHDn1BjsaUCSPl9Cp0m+obFO3zcw5g3FBxHWFdsDA8PXBKqXju5KURJW?=
 =?us-ascii?Q?BOHIctZ8tYlQudCsJmd7wN7hVApbtoyExYqxHU/mAvp0fCiIlHfixeXsT+Vv?=
 =?us-ascii?Q?bOinpgkYw5eYBANJ/nP46wbu1QpW7ObE395dIPFiVkV9fGA29CiI5gXWmVif?=
 =?us-ascii?Q?aiaFSiBHhKt+XzQjUTBLMFceUJbKQ+j3MydTWsRgrCM6XXf7nhfoCteDmA2D?=
 =?us-ascii?Q?QuecotZZIChirGT71DcZPKFQbuShWW7AYp0cM6hylyYnu51K+8JZvSta0mSm?=
 =?us-ascii?Q?dJA9fBhHvurFC4U8T4fCqMm7aH6uDJ4SXALPsEmDGXY8qGNpXVUhl1bDwxBC?=
 =?us-ascii?Q?iG+/p4kgf3vqPGesWBnDEzs9ca9tIXZj0t3iyGRuclnX8qS6ctcg8Cypvri2?=
 =?us-ascii?Q?JN6cwADv69u6/tTatbqsniUtpx7hYJJ9zYxvqUs5H/Ug+p0BKy9LwCGwbRi9?=
 =?us-ascii?Q?/TjQHkvyQcd3gsyH8rUHuYK2XtnQXDS6xxmwl8uxcW1kHbYVI3A/nhp7wxz/?=
 =?us-ascii?Q?TIqW382qbnygc38elyZG2wZTP/EWuRgrmQyOG9Mfix1h6KO+C+YJo0Drj2cb?=
 =?us-ascii?Q?BnybQp2DyMbL0TKkrIbYeW8RhrfHhhuuRd+B?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(14060799003)(376014)(36860700013)(35042699022)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 09:40:51.6770
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: dcbf449b-fc91-4d0a-2067-08dde616fa32
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DB5PEPF00014B97.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB5503

Hi Michal,

>> +++ b/xen/arch/arm/include/asm/arm32/mpu.h
>> @@ -39,6 +39,8 @@ typedef union {
>> typedef struct {
>>     prbar_t prbar;
>>     prlar_t prlar;
>> +    bool transient;
> Do we expect to have any other flags? If so, it could make sense to use a
> bitfield right away.
Yes, at least one more flag at present - I will update this to use a bitfie=
ld in the next version of the series.


>> #ifdef CONFIG_ARM_64
>> -#define XEN_MPUMAP_ENTRY_SHIFT  0x4     /* 16 byte structure */
>> +#define XEN_MPUMAP_ENTRY_SHIFT        0x5   /* 32 byte structure */
>> +#define XEN_MPUMAP_ENTRY_ZERO_OFFSET  0x10  /* {PRBAR, PRLAR} is 16 byt=
es  */
> To avoid having to update this over and over again, maybe define a macro =
using
> OFFSET?
>=20
> Other than that:
> Reviewed-by: Michal Orzel <michal.orzel@amd.com>
>=20
> ~Michal

Good point - I will do this in the next version of the series.

Many thanks,
Hari=


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 09:42:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 09:42:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098061.1452192 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urZ8q-0007Cm-BD; Thu, 28 Aug 2025 09:42:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098061.1452192; Thu, 28 Aug 2025 09:42: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 1urZ8q-0007Cf-8R; Thu, 28 Aug 2025 09:42:00 +0000
Received: by outflank-mailman (input) for mailman id 1098061;
 Thu, 28 Aug 2025 09:41:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=V9g1=3I=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1urZ8p-0007CX-AQ
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 09:41:59 +0000
Received: from NAM04-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam04on2061b.outbound.protection.outlook.com
 [2a01:111:f403:2409::61b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3cddc6ec-83f3-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 11:41:58 +0200 (CEST)
Received: from SJ0PR03CA0224.namprd03.prod.outlook.com (2603:10b6:a03:39f::19)
 by DM4PR12MB6592.namprd12.prod.outlook.com (2603:10b6:8:8a::9) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9052.20; Thu, 28 Aug 2025 09:41:50 +0000
Received: from CY4PEPF0000EE35.namprd05.prod.outlook.com
 (2603:10b6:a03:39f:cafe::db) by SJ0PR03CA0224.outlook.office365.com
 (2603:10b6:a03:39f::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.17 via Frontend Transport; Thu,
 28 Aug 2025 09:41:50 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CY4PEPF0000EE35.mail.protection.outlook.com (10.167.242.41) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Thu, 28 Aug 2025 09:41:49 +0000
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; Thu, 28 Aug
 2025 04:41:49 -0500
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.1748.10; Thu, 28 Aug
 2025 02:41:49 -0700
Received: from [10.252.147.171] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Thu, 28 Aug 2025 04:41:47 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3cddc6ec-83f3-11f0-aeb2-fb57b961d000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=B0UZuCteC4Xx42uxEAvuJnwAfht6CeUikq7BoLhyDwHTPJWfdU+PfDV6YI9kp5xuvr+awU0UWt4daG899i07bGUrWCYSIXoJhJULMUwD7CNwN0U+B1lUiv8JC92DWq713DAQ2aLrY/a5OS1uWFLpKtUqVO8kXa/FuKsbJCs66crPeL3m5OSSDkgyCO9zUGd1HjA0WjhZ+1Arhao4Dqj2Mq7aBVQjizCub6buUq+dgY3z0KzEco0lZfj/wGVaFNP63sJZmri9fMiz9XksTvCKjyPOZnfZcZHTwzk5N9NPfpQdMZsZJc5jv6kg1d2LmjdoRlP28at4Ez7IgofJ+p2E8A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/wtlJM1S8+cvOPbwuOh4GOQdJo1AYMqBzooFprWDJtE=;
 b=UfsUS6K0mB02HkZk6re6jrLhHioT8iAmd2OzLR7jHDd2YafMLBsYVIJBGXlh9m8Ai8l0vRLyIlHId2SDqbF/z1n0QXv1HRxtzKtzbusAya2SKqr9uRgV9wuQ9sXkHOSso7Eopt35NVyMvRC8/GQat+hnVC6ScBkqDo/ZN31GfRPlj492O7zJXhUKBAN77NT3dZ+vbELdE+sHGIspdsu8C7pUCeI7R/JcEqmkNOs3KTMtSqsk5wLd0a/2XY5b0nRGJEWlTpFQ+jcxUSifxgVIrYFAU+hOZZnU9deUbM/ppyQjfye3LSdAQ/qL81QCcE9YiNNowJqKZHZzIRU8dB85Zg==
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=/wtlJM1S8+cvOPbwuOh4GOQdJo1AYMqBzooFprWDJtE=;
 b=OaUC1ea2F190zP0V5xHTDMDl49ejvxNHDQkqT174/b4+bi0Z1cGBC3QDxK70xuHpT3Iq4tOFlUX2+osL7uvk8oY+R8AccCo9rRd3wZVjlgnUpub300s3F8xRbf68yCYbarhT5Vwr7jUlDgssuv3RVRYomCObXHo7MFF8Z1ff7uk=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <212bf8b1-136e-4b96-80d0-c82d94b9845d@amd.com>
Date: Thu, 28 Aug 2025 11:41:47 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 4/5] arm/mpu: Implement ioremap_attr for MPU
To: Hari Limaye <Hari.Limaye@arm.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, "Luca
 Fancellu" <Luca.Fancellu@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: <cover.1756312498.git.hari.limaye@arm.com>
 <d2287756e1cd2e7f1cf4ac1bc5de775840c0b0ce.1756312498.git.hari.limaye@arm.com>
 <3f59b4ff-31f0-4801-96ba-83df139af081@amd.com>
 <DD8D8334-6973-47BD-907F-D7E621A44E38@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <DD8D8334-6973-47BD-907F-D7E621A44E38@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000EE35:EE_|DM4PR12MB6592:EE_
X-MS-Office365-Filtering-Correlation-Id: 9d3fca30-97e4-4069-5bf3-08dde6171cce
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|376014|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Rlp2RkdVMFhIM1hqclExVVpqU1F1SU1jR2dab2VWZVFxTHRqb3pWbDg0ZW41?=
 =?utf-8?B?Qllwd0xmeVJSUll6UVFFcUtNclBtOFZnZU9VVWd0N0FUT0F4WXljUGxmUzAy?=
 =?utf-8?B?R1NjclBjdExmSkRWc0hNU0xOL1Jya0NmZitiTUcyK2s1eExQbTFaZWNGNFE4?=
 =?utf-8?B?NkFUT2JPSmpLUUc1MHdnb0F5M1ZkeExjWGdrQWdTSUdBaDJWdy9ZSWZ6ZHFu?=
 =?utf-8?B?ZzZqdGZmVTVUVlRLM0xpUEQ4RTU2dWN3QTlVYUx2eFBOSm50VXZGaU9Dclkr?=
 =?utf-8?B?WTlKUWlzMEFYNXM0SXB6NWdVRDZWYnlXSXBwdkZkb0luelVsYUw2b3JMSCsx?=
 =?utf-8?B?bHlLVTArNk5IT21XS0lZa2d0d0RNaGhpUnBCM0xjanRXMjBDMDlCVGlrQkJU?=
 =?utf-8?B?Rmo3ZzcxckdQdXhuZ1NJTzFrdjljNHZ4TkJmcmRUeEFxNWYyd045WDlMM0Jq?=
 =?utf-8?B?aUpYOUVHZm5vbUdxMzlMeUdNemxGdDJaajlJY0tid09nK3E3aU1qYWdYWEt4?=
 =?utf-8?B?eWppWTRDY2J3bmtFZmhLRk9jN2tsVTViYVVIajB1K2RqL2ViWDRJNHZCdVhk?=
 =?utf-8?B?NzMyMGRTMFFrR2hhbW05MU9GSWUzQWFTd3FmNlhUZG1OcDlNdTRiNCt2R0FR?=
 =?utf-8?B?Z2c1TW9RSXhXY05XNlRjREE0Q3JUeGJmY2Q5bGpTUmM5WDIwUUZKSDZZQ3ZH?=
 =?utf-8?B?cFVmb1YzUHJQbzlsSjNUdUdZK0VRT29FZy9EQmV1Z2Y5ME1XQTlZT2lHUzB3?=
 =?utf-8?B?MFhDUEUxTGN2K2xMaUdKZ0t2MDY5SUkrbndGRk9iaE9xemR5cWlFUGw1RUhQ?=
 =?utf-8?B?V1A0eFJneEZiMVZDMlM1UEY3SzRRUUNUcFFOMHB1NXR6UHZlYnRiVnI3dFZw?=
 =?utf-8?B?K2NULzRNbEg2bHJUMlNCazh4TlBpbStTSEtPWmxiWlRmNUN4N2RkbXJsZHZw?=
 =?utf-8?B?ZTBFSm11bXR3SWlaYVp6NXNieStvNnloc3hoMWxoVkZPZW9qdkNybThlSFRp?=
 =?utf-8?B?TjVJWk5QWWlCWDh1MTZ4bGQ1elpYWW55ckFBaFRsRnRrK045d1BCeEJHZmlS?=
 =?utf-8?B?NGI3bkJTT2ROazhDUEQxVEQyOFVxUGZ2RkIyWUlNU1BpZ3dzNkpmMDVFTTJx?=
 =?utf-8?B?RlZmMk9wRzN4MUlYTkdBWWR5WlVVeGxBWWMxZlluVHEyNVlHTGFmYVF5b3Z1?=
 =?utf-8?B?SGk4WExpTUQvVHBSc1kyUzdDSDBzT0FMYmdOSHh5b3Y3U0hjMktCZ00zQ2JF?=
 =?utf-8?B?aGJDaFFjeFNiV2RpU3VYWmdvYVBJclV0MzZ6MkZ0ZllwMS9xbDl0RlRXaktx?=
 =?utf-8?B?Y0IvcnZORkRtaWVCbzdNK0h1QnpnYlRReDVuODRYUW9MbHFUUUxhUThabHhZ?=
 =?utf-8?B?eC9ybFM2cDE5cHZsbmVQQnhjQ3lEOUdlOUFUZSswMjdQNGpXNVFSQnFxMzdG?=
 =?utf-8?B?QTZTdHVIbHVmT29wZHlMUGVnNk91MGx6cjdxcWNqRnF2WHRqT0l6U0s1SWVP?=
 =?utf-8?B?bHVGUHpSRkVLK29ScSs0Uk8zbXhycVVTejQxMHd5VWxEMXJmdTZFT203Zi9Q?=
 =?utf-8?B?VU5MRnVsTm1VY1F4WFI3bXNwTzVLQjIzK0VKeDgzdzVLU2xla2tVUmZoTWxO?=
 =?utf-8?B?dTFONllsVHNHTnV0NFV1aFdvRkZzcVJiS1NlNllwdFByaXI4UlF3S3J2bkd6?=
 =?utf-8?B?QTZmYUVPaElkemR0RFNnL0RyQ3dVblRBUk9PcVlpb2VMbXVwU05sLzFFdGFG?=
 =?utf-8?B?aXM0ckcrRmlqOG43bXNNNVNVa3FWNkxkZXN3eDF0L2tzRUlQR0Iwc1FyalVN?=
 =?utf-8?B?RkVWQWJWSm4wK3J4L3ZJQ3RwMDU4NUhwWXQ2QWtPUDdnT1RjcmEyZktHSE5p?=
 =?utf-8?B?WE00d3ArVzJnNTNtdTJvK0ttRUdIRUcvV1dEVHR5M0ZRQTZVd0J3cVMwRmN1?=
 =?utf-8?B?SHRnbGE5cTlBNFV5eWlWRmJjUStZTzdVVXpEZ1hlRXArcnQybnd0eWxuNTJ3?=
 =?utf-8?B?bVlmTERhQiswdzRtQkhKTTlhaG5aaEcvbGM1RjRPcEVNeEYydS93UjQzL3p0?=
 =?utf-8?Q?e5RPBP?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(376014)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 09:41:49.7525
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9d3fca30-97e4-4069-5bf3-08dde6171cce
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000EE35.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6592



On 28/08/2025 11:37, Hari Limaye wrote:
> Hi Michal,
> 
>>>
>>> +    rc = mpumap_contains_region(xen_mpumap, max_mpu_regions, start, end, &idx);
>>> +    if ( rc < 0 )
>>> +         panic("Cannot handle overlapping MPU memory protection regions\n");
>> Why panic? This function is not used only at boot time and should propagate
>> error to the caller, it's also within a spin lock.
> 
> Good point - I will update this to propagate the error in the next version of the series.
> 
>>> +    /* This API is only meant to unmap transient regions */
>>> +    if ( !region_is_transient(&xen_mpumap[idx]) )
>> So is this the only purpose of the transient flag? To check that unmap_mm_range
>> is used on the range that was mapped with map_mm_range? What would happen
>> without introducing this flag? You already check for the matching attributes.
>>
>> ~Michal
>>
> 
> Yes this is the purpose of the transient flag - we want to ensure that a call to unmap_mm_range only destroys a mapping that was created by a matching call to map_mm_range. Due to the fact that map_mm_range may not create a mapping in the instance that one already exists - `/* Already mapped with same attributes */` - we need this check to ensure that unmap_mm_range will not destroy a pre-existing mapping.
Ok, understood.

~Michal



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 09:47:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 09:47:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098079.1452201 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urZDq-0007xE-0o; Thu, 28 Aug 2025 09:47:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098079.1452201; Thu, 28 Aug 2025 09:47:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urZDp-0007x7-Tu; Thu, 28 Aug 2025 09:47:09 +0000
Received: by outflank-mailman (input) for mailman id 1098079;
 Thu, 28 Aug 2025 09:47:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=+YJy=3I=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1urZDo-0007x1-Ay
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 09:47:08 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f53c7eaa-83f3-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 11:47:06 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 16F5B4EE3C0D;
 Thu, 28 Aug 2025 11:47:05 +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>
X-Inumbo-ID: f53c7eaa-83f3-11f0-aeb2-fb57b961d000
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=1756374425;
	b=Wk0VSLG0oladDHdTFGaNFJRuhH4/cDhTKkhK8006zxhvMN6fGnMeYQr0MLkNcDItqcdb
	 0doSXjlosZyWMrnhEURl9nmDMMbfzA7b5Ntv216QtTcLdlvGEIBnjZY3ki3Awj9+zmUI/
	 7aJesBlIB9Zh+DGFFtS/uMLjxJ5X/KWlYcgew4QaL5owU9E/mIi6lx0DrRtsaf8nmI13F
	 SWdP46iEznKokaxLeEJ/VgJL5Uqh69ZuLn9MXoCrwuqsquEHA7uupQ9LyXtNroXRWHTPY
	 P/UdUgodWIlWE6xfzj0oXIqDGG9mB/4VfsjliUqLaSt7bPpGHwC0xFqa468GkryefzBHV
	 VLVNS/fb1FvBujCbLKQ0Y/NT4B2LTNHGwAxuvgUjMrEH1+wJvSQQ0r+JS7pR0ecRBvWAW
	 /vz9yR7BpqTpxqSRmqbt0p/Qw9fdCYdIJ5aMckWWHk2dv5iN/3q/2WeVMWDrzEvBaTZ9H
	 zUisFN8EpVe36/pd0rZJIlfQ76n4WbIH3OUFzp2124+E7sWak8WRWI0/74YqqzWFlvL7n
	 1DRYB3Ff23+V7TaAAZRHbNGVJUw/DyxKTsxcljqewuxQHKznPIGeyhaxuBJhs6vz5USYR
	 g7HuZvq0ytCyZg33gb3jL6ugCVU/NSmBjKyGY2T4zZ1jhytn3joTBekjgUqWgC0=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1756374425;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=k8u/y/zcCwUh/VCOQj0590vl7KVi9uYN70b/lnDcouA=;
	b=tt1Aizn1Fy44XypiylC6+lamra05MfbzLL641oV+eSXEWbBaTf0iRslCrkrVzar8VFUe
	 9qu3VxDBjOJGB7tiFf3/GqjmRgPztu3dANqJR53lDCA1iLSOc+pj4n05aPYwteg82qNtc
	 pzcMfDfwteFCRBe/cJocrnULBybRYmNisS5jpvUPQMZDIfmHlmoo++AwKeYw9VzgElfYc
	 /92wU6mJe6PX3t5bkSx4xL+l0eLlwbhwFRfwIEtyr4WOC/sNRRtkuALuffDajt1Gt3XMU
	 7k4EeMStlD1kO8s5hpV0M8M56Qo3ES99xhGVu7rk+7J2Eignl6rIPIUOOzbHBy8H2cU+A
	 AcjoaG+wNRxXjEkQUE//XpMmMp6dmzNw37P54XB1xH+fL97ETWXOVklEASPjhyOBAV8B4
	 d+NSY05rcv0C0+G/YCHAtzbNN84iQb8gTsbO8Em/WJQlbDSYLbtp1tP6T0KcQqTTkdGlh
	 P9ad+PXj0t52oOfg9zQYGDvAHSRy8XE2QvEO2c4/p1ypqFjt9njoRmyg0CFda/+FEOqJd
	 jpL644oA8dmUj+Y6Ie3xynRpxnEqkUJCClz5wpf07IGVnW5X0CFcZIkXybbnq4VX2fMFZ
	 48TTwJwFzFpgP/o6hNM3GSGabRWQSjQG5dMM8eJ+WjGFCJlCsdxLjDSFGKGXjsQ=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1756374425; bh=y1tW11NzB5ssqxp7Tp1PihDpVcFpHzNLhL7uXLckTvA=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=L1LBao0h8c76m6YtRHot3OKEwPDY2yFohPCzJV9hmSZMoOCdTtce5z75kYb3uIpEi
	 Dt5dphO5HDcuPRbY5dPOJzUyny2G1uhRpavvBhKV61+p4gdf5kGhUgmbD0n8OoVwYY
	 oIWWtz1VoCoHLavIgczLaSO82AfoaWDux6PQPPSzyLdumqxa1P6AfM7OS6AfUrO+FJ
	 XdjMmGylMOk2wGLFZM4/ZRPQVBmLbdXqaV3VdPRS7BKWOqCTyYglZPmksskDBoLKRb
	 hmMfSDu7O+fojKKkOP4BoXt3ZEDjS+ob8DYo03tGwEYfS0h421miVCyv4sKk53G8cE
	 yUyckF+jV4ggg==
MIME-Version: 1.0
Date: Thu, 28 Aug 2025 11:47:05 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: xen-devel@lists.xenproject.org, Stefano Stabellini
 <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
 <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v2] device-tree: fix infinite loop issue in
 'assign_shared_memory()'
In-Reply-To: <0e562f695e5db87ab80dde69cbcc0cfa14f94b21.1756373770.git.dmytro_prokopchuk1@epam.com>
References: <0e562f695e5db87ab80dde69cbcc0cfa14f94b21.1756373770.git.dmytro_prokopchuk1@epam.com>
Message-ID: <861c88c005b041fa622310d6bef63c25@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

On 2025-08-28 11:39, Dmytro Prokopchuk1 wrote:
> Fix an issue in the 'fail:' cleanup path of the 
> 'assign_shared_memory()'
> function where the use of an unsigned long 'i' with the condition
> '--i >= 0' caused an infinite loop. Update the loop to use 'i--',
> ensuring correct loop termination.
> 
> This change adheres to MISRA C Rule 14.3: "Controlling expressions 
> shall
> not be invariant."
> 
> Fixes: 72c5fa2208 (device-tree: Move Arm's static-shmem feature to 
> common, 2025-06-03)

The format should be

Fixes: 72c5fa220804 ("device-tree: Move Arm's static-shmem feature to 
common")

can be fixed on commit probably

> Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@epam.com>
> ---
> Changes to v2:
> - added Fixes tag
> - updated the loop to use 'i--'
> - updated commit message accordingly
> 
> Link to v1:
> https://patchew.org/Xen/d7768394209c65cfef4006c3ffc0a0f5d82c4c18.1756368997.git.dmytro._5Fprokopchuk1@epam.com/
> ---
>  xen/common/device-tree/static-shmem.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/xen/common/device-tree/static-shmem.c 
> b/xen/common/device-tree/static-shmem.c
> index 8023c0a484..79f23caa77 100644
> --- a/xen/common/device-tree/static-shmem.c
> +++ b/xen/common/device-tree/static-shmem.c
> @@ -185,7 +185,7 @@ static int __init assign_shared_memory(struct 
> domain *d, paddr_t gbase,
>      return 0;
> 
>   fail:
> -    while ( --i >= 0 )
> +    while ( i-- )
>          put_page_nr(page + i, nr_borrowers);
>      return ret;
>  }

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 09:50:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 09:50:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098089.1452211 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urZH6-0000zG-EX; Thu, 28 Aug 2025 09:50:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098089.1452211; Thu, 28 Aug 2025 09:50: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 1urZH6-0000z9-By; Thu, 28 Aug 2025 09:50:32 +0000
Received: by outflank-mailman (input) for mailman id 1098089;
 Thu, 28 Aug 2025 09:50:30 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=tukF=3I=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1urZH4-0000z3-Qz
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 09:50:30 +0000
Received: from mail-wr1-x42a.google.com (mail-wr1-x42a.google.com
 [2a00:1450:4864:20::42a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6e8a72ee-83f4-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 11:50:30 +0200 (CEST)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-3c79f0a5fe0so400137f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 02:50:29 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-45b6f0e048asm66453795e9.11.2025.08.28.02.50.28
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 28 Aug 2025 02:50: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>
X-Inumbo-ID: 6e8a72ee-83f4-11f0-aeb2-fb57b961d000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756374629; x=1756979429; 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=AowjuzowhAVvFqRe//4JCE/JkahUZ56c3z60l+dexI8=;
        b=tvrfgTcEjfHi8VLFh4wWAUOyRDejwvPTsPx8HMzKPdjkmMSUTj9QS/v7//zMUwJy0i
         flPFQUdl4Hd2AlysrNCh6rhj/Yq/geFakb9rg/OwipGrXt9JFS+cnmlNzv1ccxclSw4X
         AFdw3XHKPXO1B785dJioYqhAaxVTge8opNnD8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756374629; x=1756979429;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=AowjuzowhAVvFqRe//4JCE/JkahUZ56c3z60l+dexI8=;
        b=u4XJvnNuhxvTBXdzyERuT6D+V4MZtURC/r1n/+qVbXCt7WOCMawpkD8S6vSgoyUmol
         iVSMNfNx49Y34YTc2B3O0DsEfxenP5Z9zwdPDGoDkm5rCz4DFa8uWkU8MTUZhQUygdnm
         rhUN74l6mVSCCbiU0QR/3jhWAOgEKNb4FdgP6nazJIj3t6UY2QC5XpomtuGl8mCaMGii
         Llz/OiYtlYJPOqXH0/cwK2rLJdEQv8xdxBI8bujAyjXUXyu+drwIyEj6WahSs3koCSgX
         iBE85+VXN0pWrhcuKxN3rCpmncmYgL73rs3NA7JP0ZPdjpoj8nE/sa4V1Chl9GJoANWw
         Q1mA==
X-Gm-Message-State: AOJu0Yw8AyWQDBpbt/E9tPQa+AB6qDTwEby7490UXLqmedb+oVLsNgZ+
	ubkMQGGZxaqEOudJyvmr7w/EojS+BRTCNXwa4yRRD8ZslKtATqbreOnfoZnHdquaAF4=
X-Gm-Gg: ASbGncswtRbslsT+eJtYIeIBWAms+j7xE9jjw2m1ACz8AAccY7fzYjN4kvPdgNU6+8w
	6XJv4FZ3BTvzKdYF65K7/E1kctT3OHDPvDHm3t0FQ3mmrsG3ws3OskfAg2ytXG73n89ageG4A3R
	0OUGxmSj3HgY8CuqVCr69V2UDXuOCottpAtiSdxeARfA5W+HUJC6GL/jj88AHkLfIfUPpmBjpN/
	BQf22PYTYxo2hd39v/hrY/ZuAVDf/rQ8oUiN90aHQ2UksQUeKehQtKeH612VdYdTeCoyewMNXz1
	kZhk9yKYxa6+8ZZUnpCXwJaMKh7lhadSCkZWbDhDIRRDPfRtEctnBuNYRyvJ80FryuGeENdFRvI
	8JyovPeSNV8UNHJFRrY7ebVyghDcUpHTYA08EnoKn1GPRxN4PUSl4+i6KpxuIyYrLxo2zS8mKNZ
	4a
X-Google-Smtp-Source: AGHT+IFx6+x07A1dt1I/iL7cZYWcqUFQHEzA+dKpdJWwLb6V3G0UHxhAO9Xbz8Dr82ejZiw7uz5JKQ==
X-Received: by 2002:a05:6000:1788:b0:3cc:8a73:315c with SMTP id ffacd0b85a97d-3cc8a827ae2mr4623333f8f.31.1756374629282;
        Thu, 28 Aug 2025 02:50:29 -0700 (PDT)
Date: Thu, 28 Aug 2025 11:50:28 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>, Jason Andryuk <jason.andryuk@amd.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: MCA hypercall with PVH
Message-ID: <aLAmZGDn9QsBZWrb@Mac.lan>
References: <318f8ef3-aa52-421b-b9cb-6cd6139e1dd1@amd.com>
 <c011bc78-4ce0-4c43-9638-f03aee41816e@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <c011bc78-4ce0-4c43-9638-f03aee41816e@suse.com>

On Thu, Aug 28, 2025 at 10:48:49AM +0200, Jan Beulich wrote:
> On 28.08.2025 03:22, Jason Andryuk wrote:
> > The MCA hypercall, do_mca(), is only available for PV.  That is, it's 
> > only added to the hypercall table for PV.  Is there a particular reason 
> > it was omitted from PVH, or did PVH dom0 just not exist?
> 
> PVH Dom0 didn't exist back at the time, yes, but it's more than this. The
> hypercall, in some places, deals with MFNs, which aren't "visible" to PVH
> Dom0. IOW enabling it (perhaps just partly) would need to be done with
> extra care.

I think there's also a question of whether we want to use a PV
interface here, or try for Xen to mediate between the hardware domain
and the native interface, possibly exposing some kind of partially
emulated view that matches the native interface, and thus avoids
having to use a PV driver in the hardware domain.

I've opened a GitLab ticket long ago about MCE:

https://gitlab.com/xen-project/xen/-/issues/101

But didn't look into it.  I think we need some prior investigation to
figure out whether it would be feasible to expose a native MCA
interface to the hardware domain, as that would be the preference for
PVH (rather than re-using the classic PV interfaces).

The main barrier here is the disassociation between the hardware
domain physical memory map versus the host one, as the MCE/MCA
drivers will need to operate based on the host memory map, not the
one used by the hardware domain.

I think (some?) of the MSRs also contain CPU specific status/errors,
and hence using a native interface would require the hardware domain
vCPU count to be equal to the host pCPU count.

Nit: I've just taken a quick look at do_mca() but it looked like the
sharing of the data would be better done using acquire_resource if
possible, as to avoid repeated hypercalls.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 09:52:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 09:52:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098100.1452222 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urZIe-0001vg-Q3; Thu, 28 Aug 2025 09:52:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098100.1452222; Thu, 28 Aug 2025 09:52: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 1urZIe-0001vZ-MC; Thu, 28 Aug 2025 09:52:08 +0000
Received: by outflank-mailman (input) for mailman id 1098100;
 Thu, 28 Aug 2025 09:52:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FrxM=3I=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1urZId-0001vO-2n
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 09:52:07 +0000
Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com
 [2a00:1450:4864:20::32d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a809c97c-83f4-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 11:52:06 +0200 (CEST)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-45a1b0c82eeso6022255e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 02:52:06 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b7271cd01sm58257585e9.23.2025.08.28.02.52.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 02:52: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>
X-Inumbo-ID: a809c97c-83f4-11f0-aeb2-fb57b961d000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756374726; x=1756979526; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=aAgP6HHVwZSc6aUEkqepqPH6CHzDsa0ey6wespW87DI=;
        b=K9CX9v5E02ksszNmCRucY04YdVzI3eH+ZnFI+0x6p5LXo18a1um8SmZWcX/IAz4Co2
         ze5yaHr1B8aYItrB/KoVaNH2uuXVuS8Nh78R+pu/A/kCxbnfxmaCzBzHppy08DtviCug
         w7mOBnKCOH7XT+SazVy2nJV1mr3LSdHYUSBmg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756374726; x=1756979526;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=aAgP6HHVwZSc6aUEkqepqPH6CHzDsa0ey6wespW87DI=;
        b=N5qWc2GkkjvZmdWCsPK6QKoWnCT+ktkQhlQq3C3y9e+6j+ls9fUt+gpsbjCopjqSqJ
         kal3IFRU1OcJjAuUU+BWidi7D8ceS2ds35t1HWSM6/htf1YL3/7LAg6KBVu6N2h0VFQa
         TI8JgmaOw8RWkOjFFg8BBS98cx32Cgn3cFNB0XISkBDYCwEtnSKG+OgIY9ln9hwU4+TB
         3F6Tnx0oVE40Liej3Scnz+JBEWhKJv346Kiw34ys3LGD9owR9YlKZOSZQtbWivT0xOPX
         k3iAE+YfhN+KNtGyi3gMY7V4AElOQz5DUOj/7JYYqqT21dGSxHGU/uTJKzg84HDqzVnZ
         6nIQ==
X-Gm-Message-State: AOJu0Yw1GXanNl3fTYzptJnZ5BPoDog9SO16/C5dyLlgLAwuPnAm6Cmv
	K8+ankA2/4nYH6bDiPbynHoavj7fzEp1jdGhnSAcB43zHWvP7HA5x185RZgEtMDIbYI=
X-Gm-Gg: ASbGnct5q1dU9unD01PXsEEhBzr5AS2SHrF45d907iYfMJMjHYQhuiQ3ql5tF14tp0/
	GmQcqeROilaHOhgN/N1LuWs0MjM/e+5gEG9A5F5bKb3AYi5GPzB/gxzqWBEaMlHN5NtlEhUAw8E
	SfCG47lG8Im591xFhoBUhjWy2NuPXmfUiGtNjMu6sytBMv1M6vuxJMZ60Ex/UYykrdRIl5GegXS
	41pa6Tm5VpXhbzsE2ErCmjSSzoNGfonz7q/ROHN6mKHKiZlfw7mNIOfWaK/pvYYzd8VwNzX2e5h
	pviSLLLwBaF22n4UCGHXRqzSsdkd8EY7+bAZxi4hOAMFtDq/xfLiV7DjpDEOEgk7bUCKbmwJWh0
	d903kQd+yRLIRrVo+C4pylX+lp7OX7VkEGKRZ/RfwcQ95tmLE4XOXXOmlM00umMBsHGwgDDtm2+
	uGvoY676vcqKFR+w==
X-Google-Smtp-Source: AGHT+IHSy+Nq5KvJcq+YF63WP67WFwav0t5DY8udfC//b4di1YLi4NxwNgxB1oywF244siCWrpP9IQ==
X-Received: by 2002:a05:600c:4685:b0:458:bfe1:4a91 with SMTP id 5b1f17b1804b1-45b517c5551mr201936645e9.20.1756374725733;
        Thu, 28 Aug 2025 02:52:05 -0700 (PDT)
Message-ID: <8e476186-d78a-429d-ae1f-16907c3ec7b2@citrix.com>
Date: Thu, 28 Aug 2025 10:52:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] device-tree: fix infinite loop issue in
 'assign_shared_memory()'
To: Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: xen-devel@lists.xenproject.org,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>
References: <0e562f695e5db87ab80dde69cbcc0cfa14f94b21.1756373770.git.dmytro_prokopchuk1@epam.com>
 <861c88c005b041fa622310d6bef63c25@bugseng.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
Autocrypt: addr=andrew.cooper3@citrix.com; keydata=
 xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp
 VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn
 srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR
 Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E
 ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5
 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe
 LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV
 e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5
 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ
 ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v
 cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI
 CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO
 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh
 IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4
 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z
 JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK
 mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET
 ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy
 RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi
 dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF
 /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt
 TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4
 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn
 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p
 vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU
 g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy
 wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd
 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i
 kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1
 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk
 uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB
 XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ
 HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd
 pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA
 vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk
 b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg
 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP
 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i
 nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ
 B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo
 d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs
 6+ahAA==
In-Reply-To: <861c88c005b041fa622310d6bef63c25@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 28/08/2025 10:47 am, Nicola Vetrini wrote:
> On 2025-08-28 11:39, Dmytro Prokopchuk1 wrote:
>> Fix an issue in the 'fail:' cleanup path of the 'assign_shared_memory()'
>> function where the use of an unsigned long 'i' with the condition
>> '--i >= 0' caused an infinite loop. Update the loop to use 'i--',
>> ensuring correct loop termination.
>>
>> This change adheres to MISRA C Rule 14.3: "Controlling expressions shall
>> not be invariant."
>>
>> Fixes: 72c5fa2208 (device-tree: Move Arm's static-shmem feature to
>> common, 2025-06-03)
>
> The format should be
>
> Fixes: 72c5fa220804 ("device-tree: Move Arm's static-shmem feature to
> common")
>
> can be fixed on commit probably

It can, but that's the wrong Fixes tag.Â  That commit simply moved the
bad logic.

Commit 041957bad382 ("xen/arm: Add additional reference to owner domain
when the owner is allocated") is the one that introduced the bad expression.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 10:01:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 10:01:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098111.1452231 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urZRg-0003eL-Kx; Thu, 28 Aug 2025 10:01:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098111.1452231; Thu, 28 Aug 2025 10:01: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 1urZRg-0003eE-I6; Thu, 28 Aug 2025 10:01:28 +0000
Received: by outflank-mailman (input) for mailman id 1098111;
 Thu, 28 Aug 2025 10:01:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FrxM=3I=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1urZRe-0003e5-Fi
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 10:01:26 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f4510c6e-83f5-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 12:01:23 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-45a1b0c82eeso6103055e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 03:01:23 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b797ce2b8sm26527205e9.12.2025.08.28.03.01.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 03:01: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>
X-Inumbo-ID: f4510c6e-83f5-11f0-ae26-e363de0e7a9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756375283; x=1756980083; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Pgzn98Bf9jvAbIg45OxQt97Bwj6IaTgN1vtbEO85Mkc=;
        b=VwzirF+6t6HNiU6LxLyXa4to7WnYR2FpQJ7SUGoSjv/xn1hmI1uF5+GXo2OuXSwBQ4
         iW/2A5oNoI0JW9YAfWsKJcH7R43f4gOHgYInwbneYOtP7iUIfBSGCUVseLdOXLRatN+n
         gVS0axLBXQdEboTv6I6Uyzk4vSB3QpJc+wqGU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756375283; x=1756980083;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Pgzn98Bf9jvAbIg45OxQt97Bwj6IaTgN1vtbEO85Mkc=;
        b=iG6jCGrqusbIw7o53n5sIPeJgGrJS9M8wnmECisy7tYCThtIrqiDojPUKspYBEZtvp
         0kRgoWcnFj+wP7QGuhuRcf+qojKLRQsvfAdtwUrJaGXcVU5uCuliy0+Jiue4+KMCHjcX
         UUk5qZmQQ0JZDIyAGClCilXfdvpWKnijzqMG2Zd7xo80CxYHOZ4Ph7If+dl8Phx8EERw
         9+EoNZ3yzkuq2nKeWo76bJzQZLeIjrGQ7mZ113z/Ss5RJreoE0gdCWn+l2iPnB8kSG2x
         rNnDw28Sq2eza5MHl9couIEMm+KGBfGL71ufj8ZwKR2orsIkzjwZuD7Y9/75/h6oFBNX
         p35A==
X-Forwarded-Encrypted: i=1; AJvYcCUf6OWVVDQg3TXiRN/jCgsdHu0l1zWBSLJF57rxlddv2Vc9DPTcTcwW5hOPWHGtSqKO4KGS1lCLlAQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwpZlyZiWaE2TtvzemaBa8LeBpe3apyhLEEIfnYJy22wvpOS8ok
	fTynVccDIguUo/GP/Yknd0Y+3eBsyXo/PvS5vhBi0PdQeMQQ24CTB6Ckz5PiZ5Wx4RI=
X-Gm-Gg: ASbGncvKQ2Hxa+HOecAeMJy2/FRWc+iWENzNCvx+PBJJVntCSpKCBMaQW7ZAxs0keIS
	zDo20lKpH974rVz3m3tHH7UYK65HR9SNhWAciFmHoym1nXRT5GcnWVcCF1vfOAyZfJUDyKX96cy
	Si262SJvg2+2IRpC5IxrrQnilTVBeUaK8+raPlL2JI+wpzbgtZBKT9uMdKmo9GkU+9P+4aJHKkI
	GwVa2+iu4MgY4DOAhAkZoTz0xC1z+NZykZ5V4WiE5xu0AllrEa2L8DeWHGDxsgWL5iQcg/F7IMk
	M5e19hv22XOADMM+V/Bi42TnqDvgxPuPgfZoLmFJ1u4cifrCvupJ/PpZSxXULNsdAXfiCgoN4hW
	UrbAwt9mBghWqloMO3kH7cd8AchrUjNeO+mWQBXjG3JlJnKX6JzOX3pcrgzvodOZp8wzIRQF4fh
	1fiHA=
X-Google-Smtp-Source: AGHT+IHu8a9TqXqB+DhNZBig9Ly6oWd4Tjbn4YE5nha8xmVUDy3F8hSvIAPOvHSpAVRQEDXXpPfW1A==
X-Received: by 2002:a05:600c:45d4:b0:459:e3a1:a0c4 with SMTP id 5b1f17b1804b1-45b517d27b2mr220906075e9.30.1756375283144;
        Thu, 28 Aug 2025 03:01:23 -0700 (PDT)
Message-ID: <50c15166-b3b5-4e17-8bcc-cb37ad03f0ad@citrix.com>
Date: Thu, 28 Aug 2025 11:01:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] hvmloader: Update to SMBIOS 2.6
To: Jan Beulich <jbeulich@suse.com>, Teddy Astie <teddy.astie@vates.tech>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <b569a298a6270ae04eaf433f7de9ce1f3e248e5f.1755870287.git.teddy.astie@vates.tech>
 <6e9b7b96-a506-40ed-95b6-6ad00ba9a27a@citrix.com>
 <1901e764-9725-4e9e-895a-54c704473510@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: <1901e764-9725-4e9e-895a-54c704473510@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28/08/2025 8:07 am, Jan Beulich wrote:
> On 27.08.2025 19:47, Andrew Cooper wrote:
>> On 22/08/2025 2:47 pm, Teddy Astie wrote:
>>> Currently, hvmloader uses SMBIOS 2.4, however, when using OVMF, the
>>> SMBIOS is patched to 2.8, which has clarified the UUID format (as GUID).
>>>
>>> In Linux, if the SMBIOS version is >= 2.6, the GUID format is used, else
>>> (undefined as per SMBIOS spec), big endian is used (used by Xen). Therefore,
>>> you have a endian mismatch causing the UUIDs to mismatch in the guest.
>>>
>>> $ cat /sys/hypervisor/uuid
>>> e865e63f-3d30-4f0b-83e0-8fdfc1e30eb7
>>> $ cat /sys/devices/virtual/dmi/id/product_uuid
>>> 3fe665e8-303d-0b4f-83e0-8fdfc1e30eb7
>>> $ cat /sys/devices/virtual/dmi/id/product_serial
>>> e865e63f-3d30-4f0b-83e0-8fdfc1e30eb7
>>>
>>> This patch updates the SMBIOS version from 2.4 to 2.6 and fixup the UUID
>>> written in the table; which effectively fix this endianness mismatch with
>>> OVMF; while the UUID displayed by Linux is still the same for SeaBIOS.
>>>
>>> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
>>> ---
>>> This effectively changes the UUID seen with UEFI guests as it was
>>> actually inconsistent with SeaBIOS and SMBIOS expectations.
>>> ---
>> I agree this is a real bug and needs fixing.
> Hmm, I didn't realize this is a bug, and hence put the patch off as 4.22
> material. If there is a bug being fixed: Teddy, please add a Fixes: tag.

I'm not sure if this has a reasonable Fixes tag.

It's a combination of an ill-specified domain handle format, and using
an ill-specified version of the SMBios spec.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 10:02:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 10:02:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098125.1452252 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urZSm-0004bd-A0; Thu, 28 Aug 2025 10:02:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098125.1452252; Thu, 28 Aug 2025 10:02:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urZSm-0004bT-6T; Thu, 28 Aug 2025 10:02:36 +0000
Received: by outflank-mailman (input) for mailman id 1098125;
 Thu, 28 Aug 2025 10:02:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ityt=3I=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1urZSk-0003xr-N7
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 10:02:34 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on2060e.outbound.protection.outlook.com
 [2a01:111:f403:2415::60e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1d6d6e39-83f6-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 12:02:33 +0200 (CEST)
Received: from MN2PR13CA0017.namprd13.prod.outlook.com (2603:10b6:208:160::30)
 by CH3PR12MB8710.namprd12.prod.outlook.com (2603:10b6:610:173::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.15; Thu, 28 Aug
 2025 10:02:26 +0000
Received: from BL6PEPF0001AB56.namprd02.prod.outlook.com
 (2603:10b6:208:160:cafe::38) by MN2PR13CA0017.outlook.office365.com
 (2603:10b6:208:160::30) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.15 via Frontend Transport; Thu,
 28 Aug 2025 10:02:26 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL6PEPF0001AB56.mail.protection.outlook.com (10.167.241.8) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Thu, 28 Aug 2025 10:02:25 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) 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; Thu, 28 Aug
 2025 05:02:25 -0500
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb09.amd.com (10.181.42.218) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.2.1748.10; Thu, 28 Aug 2025 03:02:22 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1d6d6e39-83f6-11f0-aeb2-fb57b961d000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=oWog7YzwkY5ucx5OL5nmp5QiX7aFSopu+jwdeNoPKaiQiaP1WN1wNCb5T+jnOVaf+VThkYPmvkNbP6mXORyK4T785lMHBiOGQol9YqRobYDz4e0Jvbs01dySkNbXALYnO+n+7FIyqbF0lvNLkThZtNrly6I/MeRgh8Vq1L4aTFKHWyXxTV5+S1C1sNutVd/jjOa14ueI1gNyQIh5ZyTDqzQhtoTcst9QUSHZC0FmTtHCYRehrf03yr1Nj5qlsv8Un5mlIGMyoUOWSNhhktbEo7nLgsOJnlXwFfPYP6OJfgrkPWxrljM9bypGgg77Q7yFA1z9RAFPiXmRbo6dpgsQCg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cFow82ppPAxmI3VLc61oBcj1GCRPcjquAW8F/RqbHEo=;
 b=G/KEEnWbmtjjKw037PwAKNT6qXgHLsWhzPw6/B0g+wD5tnzeuuJt3uiuk/NBEMj2tkPa+lSwXcM0kqC/fGnj0b/JG3T6G4Os34wGJRC6hf6+8b6K+jmnw1OkFYbHZ9YRNCAmoH/y7E7y08wuVn1wfr7jvOom3o/Hx0OQf12a6nvupLqp21drABwQtFfi3otkxH/u83PtaVQ+TBsn9OfQEse1VAAr9Sex0OsG1zlLfZFuYJQaQxdHtWv6ARrlayKBm+Xe0ZLVk32ppNhB6PRr4KhgkVstMPZcVJkTgIKk2jBDqlvJYFBfoHh52VppyofZENmAF4/8rBMr+l2se/HCyg==
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=cFow82ppPAxmI3VLc61oBcj1GCRPcjquAW8F/RqbHEo=;
 b=xEq/ZerqsB4GZTAzhvgd1R9xgwpVziuFZbMbij4CzCLYL3PFBRrg+sQmQbu+P8IE1i/uPpSfZeVHBCt6viFjDO/SR65GavF4FfdBQ7Ab6IrNIJDaBLIXPdME0WVh0dWCrl01/Dy0WIusvfSZiLbuD7wuXSdillTVHXZhKV4EBZA=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v8 1/8] xen/cpufreq: introduce new sub-hypercall to propagate CPPC data
Date: Thu, 28 Aug 2025 18:01:58 +0800
Message-ID: <20250828100205.1775636-2-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250828100205.1775636-1-Penny.Zheng@amd.com>
References: <20250828100205.1775636-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: SATLEXMB03.amd.com (10.181.40.144) To satlexmb09.amd.com
 (10.181.42.218)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB56:EE_|CH3PR12MB8710:EE_
X-MS-Office365-Filtering-Correlation-Id: dbd69065-2fdb-4dbb-3d33-08dde619fda1
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|1800799024|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?UGd/ocvBTxLY8R66C9UC0isi8xpKUBhnwP0JPkDJK7RI5vYx7RuK9S1mCIap?=
 =?us-ascii?Q?gAv81OkP+BcOrzNKBnSGeWArCCYnCMwcB8fBK6+n4Tva7bh7v2/vLWRp3HdC?=
 =?us-ascii?Q?QX/wSfdGgcrWespl3c9ASb0wGQn/iM3YXFm8BWTApdiu1s+d49YG4aYmrqo7?=
 =?us-ascii?Q?kC7wmhkz8er8umPFrdupE2AlWCVAh6TK5pY/2ikmLeHlc3M/UNgx9v04Fsh1?=
 =?us-ascii?Q?dyP54ugGGj0CwIFnYURmpE2fSGx28gMN0bCI1HhH0x4vE6kqimZp+8llxRQv?=
 =?us-ascii?Q?BsD+9+KOD6NA0CDl70/3u0QpeqaN/4wxDYHZ5g7ogIoAhQurkBhhd3CsUAzK?=
 =?us-ascii?Q?ybiS6+EafGQ1ICPwuV6rmxx1KquLD83Ty4BCyuG9y2LVJVbJer+XKJUOqYFr?=
 =?us-ascii?Q?iBeTGjdAvngxPF4VsSOLHfjNh0kx8dcRQpPfz7gw7F6hjJFbSM2jOeU4iNHj?=
 =?us-ascii?Q?17TKsXhTwBkgswzf5CySyaSPfUoQb4VnL5IWubDrSdYPBpw/PkPNKTSLSVXy?=
 =?us-ascii?Q?5uKynFBn/R8jel2AaxH0nDz6ScUAXJN0eheA0ZzmXfg6yc8d7jLqFsnz9BMT?=
 =?us-ascii?Q?V3Q6wI0jMug+/xgdPLbkNyQyHV8I6s9XO/C0rYU8yBXCSiMGSi2WuKi4OS3k?=
 =?us-ascii?Q?EPSG5rQnMgXNF/xIPg8tyKXkSZDQwOIgGIAjIFlmgiutVbC2qUWmC1qii4FC?=
 =?us-ascii?Q?/MqNHWz8NBBE4ZuuXtt5OKZwuX6MTwLLqAYXHYPcg1l7U9kLyWs2IQfu7CEQ?=
 =?us-ascii?Q?8o6dl4mFCZVBNewZsUtpCGJeNjtPpzjPHp7zFZ9ZMi5PjIZ1+PJ+vqcVEjvF?=
 =?us-ascii?Q?FX7ifXrd8yp1zq0GEh7HLiy4+hl3xGa9RwyPDhfyFOJWjtpoeiO2zBG2h+n+?=
 =?us-ascii?Q?2dtHv3vSsrXfOezX88RlMPelKmo8BaW/BCumBy6rQ7KGwGiQgy9qb9Y5n+Yp?=
 =?us-ascii?Q?XReZ2oPT59XZu3I7oVaQDE3zKAa+5DBs4BKTq87h7oil7+CKo6U9THLInou+?=
 =?us-ascii?Q?QGpGE0p36Md5exLhMiBFAljkvaG76RnlHZsRLJKBekTPni9H4FnEVlGS4BTj?=
 =?us-ascii?Q?D0KVeFqSvYIuINAJ7uE1mQiDVjcc0IxNWY6L5AdZJ3k77lb5y3Yi8Lgbuzw4?=
 =?us-ascii?Q?7oxfyQ76Lek0NHDtbn3w51OMEpyBo4txFPj3kp1nxK89+r92+rnMYWv+DBLi?=
 =?us-ascii?Q?0NiWa39SbwpFjLqIQi8yb7TgA2aKuyTBrSNGZiXxw1L1uGht0B9g7Iw6E/v/?=
 =?us-ascii?Q?Z19M91RyvtrRtwkU1CpZB9Miwouk55c92n+C4rILIrVdlo2+bam/P3Zuu8GU?=
 =?us-ascii?Q?+vc69n5gOVGnpHyQLh3szk7gtSgQufGEmuSJRnPTmpF3owPlmj/fKtRR5YDE?=
 =?us-ascii?Q?56qtwy3RdxdhxYDrKui68gy367z5PvcvQD1u+lVlnpCurpNrqsiQ/nUz5Iae?=
 =?us-ascii?Q?TBmU6vWz9Nr4SRPHdg5PWJDH15Qw0KHO4P7+naij1W4bPrRyubb/yTqTih7f?=
 =?us-ascii?Q?zmJY/SqfNw3tB5Xxso43AbLId/Zr+jgLhMNI?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 10:02:25.9814
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: dbd69065-2fdb-4dbb-3d33-08dde619fda1
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF0001AB56.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8710

In order to provide backward compatibility with existing governors
that represent performance as frequency, like ondemand, the _CPC
table can optionally provide processor frequency range values, Lowest
frequency and Nominal frequency, to let OS use Lowest Frequency/
Performance and Nominal Frequency/Performance as anchor points to
create linear mapping of CPPC performance to CPU frequency.

As Xen is uncapable of parsing the ACPI dynamic table, we'd like to
introduce a new sub-hypercall "XEN_PM_CPPC" to propagate required CPPC
data from dom0 kernel to Xen.
In the according handler set_cppc_pminfo(), we do _CPC and _PSD
sanitization check, as both _PSD and _CPC info are necessary for correctly
initializing cpufreq cores in CPPC mode.
Users shall be warned that if we failed at this point,
no fallback scheme, like legacy P-state could be switched to.

A new flag "XEN_CPPC_INIT" is also introduced for cpufreq core initialised in
CPPC mode. Then all .init flag checking shall be updated to
consider "XEN_CPPC_INIT" too.

We want to bypass construction of px statistic info in cpufreq_statistic_init()
for CPPC mode, while not bypassing cpufreq_statistic_lock initialization for a
good reason. The same check is unnecessary for cpufreq_statistic_exit(),
since it has already been covered by px statistic variable
"cpufreq_statistic_data" check

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v1 -> v2:
- Give the variable des_perf an initializer of 0
- Use the strncmp()s directly in the if()
---
v3 -> v4
- refactor comments
- remove double blank lines
- replace amd_cppc_in_use flag with XEN_PROCESSOR_PM_CPPC
---
v4 -> v5:
- add new field "policy" in "struct xen_cppc_para"
- add new performamce policy XEN_CPUFREQ_POLICY_BALANCE
- drop string comparisons with "processor_pminfo[cpuid]->init & XEN_CPPC_INIT"
and "cpufreq.setpolicy == NULL"
- Blank line ahead of the main "return" of a function
- refactor comments, commit message and title
---
v5 -> v6:
- remove duplicated manifest constants, and just move it to public header
- use "else if" to avoid confusion that it looks as if both paths could be taken
- add check for legitimate perf values
- use "unknown" instead of "none"
- introduce "CPUFREQ_POLICY_END" for array overrun check in user space tools
---
v6 -> v7:
- use ARRAY_SIZE() instead
- ->policy print is avoided in passive mode and print "unknown" in invalid
cases
- let cpufreq_is_governorless() being the variable's initializer
- refactor with the conditional operator to increase readability
- move duplicated defination ahead and use local variable
- avoid using "else-condition" to bring "dead code" in Misra's nomeclature
- move the comment out of public header and into the respective internal
struct field
- wrap set{,get}_amd_cppc_para() with CONFIG_PM_OP
- add symmetry scenario for maximum check
---
v7 -> v8:
- replace -EFAULT with -ENOMEM
- indent fix
- add comment for state_count check for CPPC mode
---
 xen/arch/x86/platform_hypercall.c         |   5 +
 xen/arch/x86/x86_64/cpufreq.c             |  19 ++++
 xen/arch/x86/x86_64/platform_hypercall.c  |   3 +
 xen/drivers/acpi/pm-op.c                  |   7 +-
 xen/drivers/acpi/pmstat.c                 |   4 +
 xen/drivers/cpufreq/cpufreq.c             | 124 +++++++++++++++++++++-
 xen/include/acpi/cpufreq/processor_perf.h |   4 +-
 xen/include/public/platform.h             |  26 +++++
 xen/include/xen/pmstat.h                  |   5 +
 xen/include/xlat.lst                      |   1 +
 10 files changed, 193 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hypercall.c
index 21f9f795c1..fafc176475 100644
--- a/xen/arch/x86/platform_hypercall.c
+++ b/xen/arch/x86/platform_hypercall.c
@@ -577,6 +577,11 @@ ret_t do_platform_op(
             break;
         }
 
+        case XEN_PM_CPPC:
+            ret = set_cppc_pminfo(op->u.set_pminfo.id,
+                                  &op->u.set_pminfo.u.cppc_data);
+            break;
+
         default:
             ret = -EINVAL;
             break;
diff --git a/xen/arch/x86/x86_64/cpufreq.c b/xen/arch/x86/x86_64/cpufreq.c
index e4f3d5b436..525b29da71 100644
--- a/xen/arch/x86/x86_64/cpufreq.c
+++ b/xen/arch/x86/x86_64/cpufreq.c
@@ -54,3 +54,22 @@ int compat_set_px_pminfo(uint32_t acpi_id,
 
     return set_px_pminfo(acpi_id, xen_perf);
 }
+
+int compat_set_cppc_pminfo(unsigned int acpi_id,
+                           const struct compat_processor_cppc *cppc_data)
+
+{
+    struct xen_processor_cppc *xen_cppc;
+    unsigned long xlat_page_current;
+
+    xlat_malloc_init(xlat_page_current);
+
+    xen_cppc = xlat_malloc_array(xlat_page_current,
+                                 struct xen_processor_cppc, 1);
+    if ( unlikely(xen_cppc == NULL) )
+        return -ENOMEM;
+
+    XLAT_processor_cppc(xen_cppc, cppc_data);
+
+    return set_cppc_pminfo(acpi_id, xen_cppc);
+}
diff --git a/xen/arch/x86/x86_64/platform_hypercall.c b/xen/arch/x86/x86_64/platform_hypercall.c
index 9ab631c17f..0288f68df9 100644
--- a/xen/arch/x86/x86_64/platform_hypercall.c
+++ b/xen/arch/x86/x86_64/platform_hypercall.c
@@ -14,6 +14,9 @@ EMIT_FILE;
 #define efi_get_info        efi_compat_get_info
 #define efi_runtime_call(x) efi_compat_runtime_call(x)
 
+#define xen_processor_cppc  compat_processor_cppc
+#define set_cppc_pminfo     compat_set_cppc_pminfo
+
 #define xen_processor_performance compat_processor_performance
 #define set_px_pminfo       compat_set_px_pminfo
 
diff --git a/xen/drivers/acpi/pm-op.c b/xen/drivers/acpi/pm-op.c
index 9a1970df34..e3b5c8bcaa 100644
--- a/xen/drivers/acpi/pm-op.c
+++ b/xen/drivers/acpi/pm-op.c
@@ -91,7 +91,10 @@ static int get_cpufreq_para(struct xen_sysctl_pm_op *op)
     pmpt = processor_pminfo[op->cpuid];
     policy = per_cpu(cpufreq_cpu_policy, op->cpuid);
 
-    if ( !pmpt || !pmpt->perf.states ||
+    if ( !pmpt ||
+         ((pmpt->init & XEN_PX_INIT) && !pmpt->perf.states) ||
+         /* Avoid NULL deref of pmpt->perf.states[] */
+         ((pmpt->init & XEN_CPPC_INIT) && pmpt->perf.state_count) ||
          !policy || !policy->governor )
         return -EINVAL;
 
@@ -351,7 +354,7 @@ int do_pm_op(struct xen_sysctl_pm_op *op)
     case CPUFREQ_PARA:
         if ( !(xen_processor_pmbits & XEN_PROCESSOR_PM_PX) )
             return -ENODEV;
-        if ( !pmpt || !(pmpt->init & XEN_PX_INIT) )
+        if ( !pmpt || !(pmpt->init & (XEN_PX_INIT | XEN_CPPC_INIT)) )
             return -EINVAL;
         break;
     }
diff --git a/xen/drivers/acpi/pmstat.c b/xen/drivers/acpi/pmstat.c
index 4fae0c14af..0f31736df2 100644
--- a/xen/drivers/acpi/pmstat.c
+++ b/xen/drivers/acpi/pmstat.c
@@ -108,6 +108,10 @@ int cpufreq_statistic_init(unsigned int cpu)
     if ( !pmpt )
         return -EINVAL;
 
+    /* Only need to initialize in Px mode */
+    if ( !(pmpt->init & XEN_PX_INIT) )
+        return 0;
+
     spin_lock(cpufreq_statistic_lock);
 
     pxpt = per_cpu(cpufreq_statistic_data, cpu);
diff --git a/xen/drivers/cpufreq/cpufreq.c b/xen/drivers/cpufreq/cpufreq.c
index 267e4d3f3b..c6ce31c0ac 100644
--- a/xen/drivers/cpufreq/cpufreq.c
+++ b/xen/drivers/cpufreq/cpufreq.c
@@ -40,6 +40,7 @@
 #include <xen/domain.h>
 #include <xen/cpu.h>
 #include <xen/pmstat.h>
+#include <xen/xvmalloc.h>
 #include <asm/io.h>
 #include <asm/processor.h>
 
@@ -234,6 +235,11 @@ static int get_psd_info(unsigned int cpu, unsigned int *shared_type,
         *domain_info = &processor_pminfo[cpu]->perf.domain_info;
         break;
 
+    case XEN_CPPC_INIT:
+        *shared_type = processor_pminfo[cpu]->cppc_data.shared_type;
+        *domain_info = &processor_pminfo[cpu]->cppc_data.domain_info;
+        break;
+
     default:
         ret = -EINVAL;
         break;
@@ -259,7 +265,7 @@ int cpufreq_add_cpu(unsigned int cpu)
     if ( !processor_pminfo[cpu] || !cpu_online(cpu) )
         return -EINVAL;
 
-    if ( !(processor_pminfo[cpu]->init & XEN_PX_INIT) )
+    if ( !(processor_pminfo[cpu]->init & (XEN_PX_INIT | XEN_CPPC_INIT)) )
         return -EINVAL;
 
     if (!cpufreq_driver.init)
@@ -434,7 +440,7 @@ int cpufreq_del_cpu(unsigned int cpu)
     if ( !processor_pminfo[cpu] || !cpu_online(cpu) )
         return -EINVAL;
 
-    if ( !(processor_pminfo[cpu]->init & XEN_PX_INIT) )
+    if ( !(processor_pminfo[cpu]->init & (XEN_PX_INIT | XEN_CPPC_INIT)) )
         return -EINVAL;
 
     if (!per_cpu(cpufreq_cpu_policy, cpu))
@@ -693,6 +699,120 @@ int acpi_set_pdc_bits(unsigned int acpi_id, XEN_GUEST_HANDLE(uint32) pdc)
     return ret;
 }
 
+static void print_CPPC(const struct xen_processor_cppc *cppc_data)
+{
+    printk("\t_CPC: highest_perf=%u, lowest_perf=%u, "
+           "nominal_perf=%u, lowest_nonlinear_perf=%u, "
+           "nominal_mhz=%uMHz, lowest_mhz=%uMHz\n",
+           cppc_data->cpc.highest_perf, cppc_data->cpc.lowest_perf,
+           cppc_data->cpc.nominal_perf, cppc_data->cpc.lowest_nonlinear_perf,
+           cppc_data->cpc.nominal_mhz, cppc_data->cpc.lowest_mhz);
+}
+
+int set_cppc_pminfo(unsigned int acpi_id,
+                    const struct xen_processor_cppc *cppc_data)
+{
+    int ret = 0, cpuid;
+    struct processor_pminfo *pm_info;
+
+    cpuid = get_cpu_id(acpi_id);
+    if ( cpuid < 0 )
+    {
+        ret = -EINVAL;
+        goto out;
+    }
+
+    if ( cppc_data->pad[0] || cppc_data->pad[1] || cppc_data->pad[2] )
+    {
+        ret = -EINVAL;
+        goto out;
+    }
+
+    if ( cpufreq_verbose )
+        printk("Set CPU%d (ACPI ID %u) CPPC state info:\n",
+               cpuid, acpi_id);
+
+    pm_info = processor_pminfo[cpuid];
+    if ( !pm_info )
+    {
+        pm_info = xvzalloc(struct processor_pminfo);
+        if ( !pm_info )
+        {
+            ret = -ENOMEM;
+            goto out;
+        }
+        processor_pminfo[cpuid] = pm_info;
+    }
+    pm_info->acpi_id = acpi_id;
+    pm_info->id = cpuid;
+    pm_info->cppc_data = *cppc_data;
+
+    if ( (cppc_data->flags & XEN_CPPC_PSD) &&
+          !check_psd_pminfo(cppc_data->shared_type) )
+    {
+            ret = -EINVAL;
+            goto out;
+    }
+
+    if ( cppc_data->flags & XEN_CPPC_CPC )
+    {
+        if ( cppc_data->cpc.highest_perf == 0 ||
+             cppc_data->cpc.highest_perf > UINT8_MAX ||
+             cppc_data->cpc.nominal_perf == 0 ||
+             cppc_data->cpc.lowest_nonlinear_perf == 0 ||
+             cppc_data->cpc.lowest_perf == 0 ||
+             cppc_data->cpc.lowest_perf >
+                 cppc_data->cpc.lowest_nonlinear_perf ||
+             cppc_data->cpc.lowest_nonlinear_perf >
+                 cppc_data->cpc.nominal_perf ||
+             cppc_data->cpc.nominal_perf > cppc_data->cpc.highest_perf )
+            /*
+             * Right now, Xen doesn't actually use highest_perf/nominal_perf/
+             * lowest_nonlinear_perf/lowest_perf values read from ACPI _CPC
+             * table. Xen reads CPPC capability MSR to get these four values.
+             * So warning is enough.
+             */
+            printk_once(XENLOG_WARNING
+                        "Broken CPPC perf values: lowest(%u), nonlinear_lowest(%u), nominal(%u), highest(%u)\n",
+                        cppc_data->cpc.lowest_perf,
+                        cppc_data->cpc.lowest_nonlinear_perf,
+                        cppc_data->cpc.nominal_perf,
+                        cppc_data->cpc.highest_perf);
+
+        /* lowest_mhz and nominal_mhz are optional value */
+        if ( cppc_data->cpc.nominal_mhz &&
+             cppc_data->cpc.lowest_mhz > cppc_data->cpc.nominal_mhz )
+        {
+            printk_once(XENLOG_WARNING
+                        "Broken CPPC freq values: lowest(%u), nominal(%u)\n",
+                        cppc_data->cpc.lowest_mhz,
+                        cppc_data->cpc.nominal_mhz);
+            /* Re-set with zero values, instead of keeping invalid values */
+            pm_info->cppc_data.cpc.nominal_mhz = 0;
+            pm_info->cppc_data.cpc.lowest_mhz = 0;
+        }
+    }
+
+    if ( cppc_data->flags == (XEN_CPPC_PSD | XEN_CPPC_CPC) )
+    {
+        if ( cpufreq_verbose )
+        {
+            print_PSD(&pm_info->cppc_data.domain_info);
+            print_CPPC(&pm_info->cppc_data);
+        }
+
+        pm_info->init = XEN_CPPC_INIT;
+        ret = cpufreq_cpu_init(cpuid);
+        if ( ret )
+            printk_once(XENLOG_WARNING
+                        "CPU%d failed amd-cppc mode init; use \"cpufreq=xen\" instead",
+                        cpuid);
+    }
+
+ out:
+    return ret;
+}
+
 static void cpufreq_cmdline_common_para(struct cpufreq_policy *new_policy)
 {
     if (usr_max_freq)
diff --git a/xen/include/acpi/cpufreq/processor_perf.h b/xen/include/acpi/cpufreq/processor_perf.h
index 4e045da983..e6576314f0 100644
--- a/xen/include/acpi/cpufreq/processor_perf.h
+++ b/xen/include/acpi/cpufreq/processor_perf.h
@@ -5,7 +5,8 @@
 #include <public/sysctl.h>
 #include <xen/acpi.h>
 
-#define XEN_PX_INIT 0x80000000U
+#define XEN_CPPC_INIT 0x40000000U
+#define XEN_PX_INIT   0x80000000U
 
 unsigned int powernow_register_driver(void);
 unsigned int get_measured_perf(unsigned int cpu, unsigned int flag);
@@ -43,6 +44,7 @@ struct processor_pminfo {
     uint32_t acpi_id;
     uint32_t id;
     struct processor_performance    perf;
+    struct xen_processor_cppc cppc_data;
 
     uint32_t init;
 };
diff --git a/xen/include/public/platform.h b/xen/include/public/platform.h
index 2725b8d104..94349fc5f5 100644
--- a/xen/include/public/platform.h
+++ b/xen/include/public/platform.h
@@ -363,6 +363,7 @@ DEFINE_XEN_GUEST_HANDLE(xenpf_getidletime_t);
 #define XEN_PM_PX   1
 #define XEN_PM_TX   2
 #define XEN_PM_PDC  3
+#define XEN_PM_CPPC 4
 
 /* Px sub info type */
 #define XEN_PX_PCT   1
@@ -370,6 +371,10 @@ DEFINE_XEN_GUEST_HANDLE(xenpf_getidletime_t);
 #define XEN_PX_PPC   4
 #define XEN_PX_PSD   8
 
+/* CPPC sub info type */
+#define XEN_CPPC_PSD   (1U << 0)
+#define XEN_CPPC_CPC   (1U << 1)
+
 struct xen_power_register {
     uint32_t     space_id;
     uint32_t     bit_width;
@@ -457,6 +462,26 @@ struct xen_processor_performance {
 typedef struct xen_processor_performance xen_processor_performance_t;
 DEFINE_XEN_GUEST_HANDLE(xen_processor_performance_t);
 
+struct xen_processor_cppc {
+    uint8_t flags; /* IN: XEN_CPPC_xxx */
+    uint8_t pad[3];
+    /*
+     * IN: Subset _CPC fields useful for CPPC-compatible cpufreq
+     * driver's initialization
+     */
+    struct {
+        uint32_t highest_perf;
+        uint32_t nominal_perf;
+        uint32_t lowest_nonlinear_perf;
+        uint32_t lowest_perf;
+        uint32_t lowest_mhz;
+        uint32_t nominal_mhz;
+    } cpc;
+    uint32_t shared_type; /* IN: XEN_CPUPERF_SHARED_TYPE_xxx */
+    struct xen_psd_package domain_info; /* IN: _PSD */
+};
+typedef struct xen_processor_cppc xen_processor_cppc_t;
+
 struct xenpf_set_processor_pminfo {
     /* IN variables */
     uint32_t id;    /* ACPI CPU ID */
@@ -465,6 +490,7 @@ struct xenpf_set_processor_pminfo {
         struct xen_processor_power          power;/* Cx: _CST/_CSD */
         struct xen_processor_performance    perf; /* Px: _PPC/_PCT/_PSS/_PSD */
         XEN_GUEST_HANDLE(uint32)            pdc;  /* _PDC */
+        xen_processor_cppc_t                cppc_data; /* CPPC: _CPC and _PSD */
     } u;
 };
 typedef struct xenpf_set_processor_pminfo xenpf_set_processor_pminfo_t;
diff --git a/xen/include/xen/pmstat.h b/xen/include/xen/pmstat.h
index 8350403e95..6096560d3c 100644
--- a/xen/include/xen/pmstat.h
+++ b/xen/include/xen/pmstat.h
@@ -7,12 +7,17 @@
 
 int set_px_pminfo(uint32_t acpi_id, struct xen_processor_performance *perf);
 long set_cx_pminfo(uint32_t acpi_id, struct xen_processor_power *power);
+int set_cppc_pminfo(unsigned int acpi_id,
+                    const struct xen_processor_cppc *cppc_data);
 
 #ifdef CONFIG_COMPAT
 struct compat_processor_performance;
 int compat_set_px_pminfo(uint32_t acpi_id, struct compat_processor_performance *perf);
 struct compat_processor_power;
 long compat_set_cx_pminfo(uint32_t acpi_id, struct compat_processor_power *power);
+struct compat_processor_cppc;
+int compat_set_cppc_pminfo(unsigned int acpi_id,
+                           const struct compat_processor_cppc *cppc_data);
 #endif
 
 uint32_t pmstat_get_cx_nr(unsigned int cpu);
diff --git a/xen/include/xlat.lst b/xen/include/xlat.lst
index 6d6c6cfab2..9d08dcc4bb 100644
--- a/xen/include/xlat.lst
+++ b/xen/include/xlat.lst
@@ -160,6 +160,7 @@
 
 !	pct_register			platform.h
 !	power_register			platform.h
+!	processor_cppc			platform.h
 ?	processor_csd			platform.h
 !	processor_cx			platform.h
 !	processor_flags			platform.h
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 10:02:38 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 10:02:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098122.1452242 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urZSh-0004Mb-3z; Thu, 28 Aug 2025 10:02:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098122.1452242; Thu, 28 Aug 2025 10:02:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urZSg-0004MU-WF; Thu, 28 Aug 2025 10:02:31 +0000
Received: by outflank-mailman (input) for mailman id 1098122;
 Thu, 28 Aug 2025 10:02:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ityt=3I=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1urZSf-0003e5-Ba
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 10:02:29 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on2062b.outbound.protection.outlook.com
 [2a01:111:f403:2413::62b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1970d746-83f6-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 12:02:27 +0200 (CEST)
Received: from BL0PR01CA0026.prod.exchangelabs.com (2603:10b6:208:71::39) by
 DS0PR12MB7971.namprd12.prod.outlook.com (2603:10b6:8:14e::5) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9073.13; Thu, 28 Aug 2025 10:02:23 +0000
Received: from BL02EPF0002992C.namprd02.prod.outlook.com
 (2603:10b6:208:71:cafe::f9) by BL0PR01CA0026.outlook.office365.com
 (2603:10b6:208:71::39) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.17 via Frontend Transport; Thu,
 28 Aug 2025 10:01:42 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BL02EPF0002992C.mail.protection.outlook.com (10.167.249.57) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Thu, 28 Aug 2025 10:02:23 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) 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; Thu, 28 Aug
 2025 05:02:22 -0500
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb09.amd.com (10.181.42.218) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.2.1748.10; Thu, 28 Aug 2025 03:02:19 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1970d746-83f6-11f0-ae26-e363de0e7a9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bQBDCkcSJsEpGyHvAlyl15EyIYWPzP/jmhGz9eEikQnDDuFXBpZWfheBBc7kf60C+4l1yn3DJ4pT4FaTbekafgAak93ahHT6UaVF5iPx+iyMp0rLEl6HBK5bQ/G2MIGtYDlB9cyJVRNYVIoh2Nr+zXNxGSyhKRlC9EsSW8tIZxiVj+eC0Gm9+B3Vat0eiDS7n/q5hDNmQy+fl5VK2cmUFtIAloywvl3/KbjVxZePFe2SZ4DwGEACJnloAW8MqB+a0Zwlf11UIdH+06MZaF+pt2sERUrSZ+sUileNqoaY8hzDQKLL8XB355STlc9B2Ng2xcZOjigY358xk0Bm0Bx0iA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=BqftR8SVfaahbiyQTZJlgdrm2kmXnJFHb+pxdOaArlQ=;
 b=LgWXH9Tdpt0MFjNYHwEKasPYnNDCIbzQUOalMXaJNpeUtA+EEa89x5HhnP3psaWIerGaEvMiyqbbGOLtx/uJeBc4yR+VJhhWYtltIAS0svzUqyiytoTXgw2hwnd6tenZ0cIGHpcrf7qEM65kjZXivRjHb0zwCrRd88LAEEg60g2IfxrSI6JDIfMcwLbXWKhGWpA58QZIkKnqizpDTNxEBcdsNDNpu9qD1y1rOmgdzMLu/vDzRmTahwkaa44y/htAWCPfZbMTPdVF2/7SpqFSOs8P6xW6zYsRa6loulATEfJNVEGMtu1Hvdo7og3qTjwiDI80ZqEZkr93AUmWE9ElCQ==
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=BqftR8SVfaahbiyQTZJlgdrm2kmXnJFHb+pxdOaArlQ=;
 b=FmvSyIXpbGdrvQbElByVsiRTqWo6QXxqqlglpaKiF6c8oQkOQbfw4oH1LREi4DS1HNtzHLO4euwUG5+2KjqPHupI2jL7qcFQmVyAQIosLEJnM5RwyywBF2nmLCJwyJl0KJOstrFYVY7z81TLHjdnnWmeg7f8/P6AgoLQ53ZsztM=
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=SATLEXMB03.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, 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: [PATCH v8 0/8] amd-cppc CPU Performance Scaling Driver
Date: Thu, 28 Aug 2025 18:01:57 +0800
Message-ID: <20250828100205.1775636-1-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To satlexmb09.amd.com
 (10.181.42.218)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0002992C:EE_|DS0PR12MB7971:EE_
X-MS-Office365-Filtering-Correlation-Id: 725d4809-ba04-4084-af9f-08dde619fbe3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|82310400026|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?TanVG1VaUzehgEj5mEcJXaJOpdKejPRdzjlP6A6vcK5KGBuHachTZ5uRWZj5?=
 =?us-ascii?Q?cFL8m/bwCtnNO8cvh5POxsamLuftACCm4+fKWb1qIZ9OpnEEgTWL7hRhPsih?=
 =?us-ascii?Q?Odqt3NU1bUuJZGSoDJcDo9BNr0V0y9ewVUvd+GOsQfd1SdteNmEGqSaZfbgr?=
 =?us-ascii?Q?Po71JFZHGaKMoQmkjPPTRQDgw9lhcmuJxe3BzCHkM/87qPU+UT7KEXYVcHl1?=
 =?us-ascii?Q?dGOHAPbbKtR3P/FSBftz8iT3Z3YPSnxGcLT0vVBoAZx4h6R97GNRfebYssm2?=
 =?us-ascii?Q?/tMfCBHV2OcmUjSCqqzeMssVxGf+6bwo9jQgfEhCQNGUOb2xBmm5jy4MzPkD?=
 =?us-ascii?Q?+DaY6S44QYj5bV7w65Hq8PmWBJ5uvn7DHhrFIWusCeiPkxukA4qmizRZKuiC?=
 =?us-ascii?Q?Gopf2NJEFtXQZb8I6wwRWvP26HTNY+GrTnBCwulUqR4AhzXr95L8mnbbM0na?=
 =?us-ascii?Q?SckDG5lnVYYvPmWy0Ua9b4rxSbgBzh5MiKN5K+QdUpM7pH3/fiu7VhwIp33E?=
 =?us-ascii?Q?kfhbuFRIBIsLvuOWuaJDCpf9Orp2KtpNIvWTygIG1/Y/dpe27VHeJcrLQhwG?=
 =?us-ascii?Q?jqwVkm8CppLIq35BkrifVktu5D4I4ddm51NsJ+QaFBF089avtXqPLKOZ7/0x?=
 =?us-ascii?Q?hmghUigeunMEUokUhPna1NRub8ZepyPLvgkImPoLSBxoUhh0bgsnSlsAo7I+?=
 =?us-ascii?Q?nzpj9Ex0gjHOjrRAGR6QQC/HzcKoue836fdVAjrANUmhOx4ZX8GnKHCgPdCb?=
 =?us-ascii?Q?6lZBVer5M3mS6fATHlYg3zETnVZxkovG+ZJTm1TnCObmpTOHYUwVPyORONWH?=
 =?us-ascii?Q?iQkGA62OSsexl70K3QxyD1ekBsYvQvaFSGIEbGiRYrd/b7PZpfxMsHHUC4dP?=
 =?us-ascii?Q?2j2DLpR4VnthNt5ErceQMNFTHcPCFVXGFfYbUFkRP30HSfsWq5cQxDnEVXVa?=
 =?us-ascii?Q?gAJIxRGaht40Vb31pIDx0ygz0uWguXzN7caJKlGISwOh3hDCoJKpN7GePC8D?=
 =?us-ascii?Q?WqHIkCdbMfjZZTWOddsQhIzzpZJjPT61rl4AC8WRepREYvo9RsuIryV04Pb4?=
 =?us-ascii?Q?ELHiL2EjV/11rgFkdxDnBQlpEj4c4q6XYoHTgIxz6nDTI/ttVQq9uEad+ha4?=
 =?us-ascii?Q?x2L8qaZJr3s4QsrIxt8jX6SDOjgzhRS/VVp+yPJXhvZLZKldN+eVYbhIfz7V?=
 =?us-ascii?Q?reHWWfNzcdOum3qpodkzMRZwUsHvl7rcM68Bokp2eAh8qrbbAEVdiYBc1grq?=
 =?us-ascii?Q?kxTf+5Y4Cx9iGPIy0RCOAQvU7Y7kSeWNnfWbT+rv3b0+E5hXVz+89iQFNXa5?=
 =?us-ascii?Q?7Puiiww3f18uCBqADfQjEnKvdxSbgcNS/Tf+q7+h+psqbMTFc/tuft0C4BC+?=
 =?us-ascii?Q?RBsdPVxjy/FQJrxoP9i7V6TusH4uXXPZMBcxhG9ETN02ACQRGKNwFRT9K/k9?=
 =?us-ascii?Q?Ep/YRhOnBuz/BUOMCv9Gsm3zL/qybmbbp1c413FPOt9k7bmDZXWAdnBqCp3e?=
 =?us-ascii?Q?uDCx+sMOLOPOEnb+CMhyxNBwiBYjOpgjgHdh?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 10:02:23.0609
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 725d4809-ba04-4084-af9f-08dde619fbe3
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0002992C.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7971

amd-cppc is the AMD CPU performance scaling driver that introduces a
new CPU frequency control mechanism on modern AMD APU and CPU series in
Xen. The new mechanism is based on Collaborative Processor Performance
Control (CPPC) which provides finer grain frequency management than
legacy ACPI hardware P-States. Current AMD CPU/APU platforms are using
the ACPI P-states driver to manage CPU frequency and clocks with
switching only in 3 P-states. CPPC replaces the ACPI P-states controls
and allows a flexible, low-latency interface for Xen to directly
communicate the performance hints to hardware.

amd_cppc driver has 2 operation modes: autonomous (active) mode,
and non-autonomous (passive) mode. We register different CPUFreq driver
for different modes, "amd-cppc" for passive mode and "amd-cppc-epp"
for active mode.

The passive mode leverages common governors such as *ondemand*,
*performance*, etc, to manage the performance tuning. While the active mode
uses epp to provides a hint to the hardware if software wants to bias
toward performance (0x0) or energy efficiency (0xff). CPPC power algorithm
in hardware will automatically calculate the runtime workload and adjust the
realtime cpu cores frequency according to the power supply and thermal, core
voltage and some other hardware conditions.

amd-cppc is enabled on passive mode with a top-level `cpufreq=amd-cppc` option,
while users add extra `active` flag to select active mode.

With `cpufreq=amd-cppc,active`, we did a 60s sampling test to see the CPU
frequency change, through tweaking the energy_perf preference from
`xenpm set-cpufreq-cppc powersave` to `xenpm set-cpufreq-cppc performance`.
The outputs are as follows:
```
Setting CPU in powersave mode
Sampling and Outputs:
  Avg freq      580000 KHz
  Avg freq      580000 KHz
  Avg freq      580000 KHz
Setting CPU in performance mode
Sampling and Outputs:
  Avg freq      4640000 KHz
  Avg freq      4220000 KHz
  Avg freq      4640000 KHz
```

Penny Zheng (8):
  xen/cpufreq: introduce new sub-hypercall to propagate CPPC data
  xen/cpufreq: introduce "cpufreq=amd-cppc" xen cmdline and amd-cppc
    driver
  xen/cpufreq: implement amd-cppc driver for CPPC in passive mode
  xen/cpufreq: implement amd-cppc-epp driver for CPPC in active mode
  xen/cpufreq: get performance policy from governor set via xenpm
  tools/cpufreq: extract CPPC para from cpufreq para
  xen/cpufreq: bypass governor-related para for amd-cppc-epp
  xen/cpufreq: Adapt SET/GET_CPUFREQ_CPPC xen_sysctl_pm_op for amd-cppc
    driver

 docs/misc/xen-command-line.pandoc         |  14 +-
 tools/include/xenctrl.h                   |   3 +-
 tools/libs/ctrl/xc_pm.c                   |  25 +-
 tools/misc/xenpm.c                        |  94 ++-
 xen/arch/x86/acpi/cpufreq/Makefile        |   1 +
 xen/arch/x86/acpi/cpufreq/amd-cppc.c      | 766 ++++++++++++++++++++++
 xen/arch/x86/acpi/cpufreq/cpufreq.c       |  69 +-
 xen/arch/x86/cpu/amd.c                    |   8 +-
 xen/arch/x86/include/asm/amd.h            |   2 +
 xen/arch/x86/include/asm/msr-index.h      |   6 +
 xen/arch/x86/platform_hypercall.c         |  19 +
 xen/arch/x86/x86_64/cpufreq.c             |  19 +
 xen/arch/x86/x86_64/platform_hypercall.c  |   3 +
 xen/drivers/acpi/pm-op.c                  |  68 +-
 xen/drivers/acpi/pmstat.c                 |   4 +
 xen/drivers/cpufreq/cpufreq.c             | 137 +++-
 xen/drivers/cpufreq/utility.c             |  15 +
 xen/include/acpi/cpufreq/cpufreq.h        |  40 +-
 xen/include/acpi/cpufreq/processor_perf.h |  14 +-
 xen/include/public/platform.h             |  26 +
 xen/include/public/sysctl.h               |   5 +-
 xen/include/xen/pmstat.h                  |   5 +
 xen/include/xlat.lst                      |   1 +
 23 files changed, 1283 insertions(+), 61 deletions(-)
 create mode 100644 xen/arch/x86/acpi/cpufreq/amd-cppc.c

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 10:03:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 10:03:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098142.1452262 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urZTp-0005dp-Ly; Thu, 28 Aug 2025 10:03:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098142.1452262; Thu, 28 Aug 2025 10:03: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 1urZTp-0005dg-Iz; Thu, 28 Aug 2025 10:03:41 +0000
Received: by outflank-mailman (input) for mailman id 1098142;
 Thu, 28 Aug 2025 10:03:40 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ityt=3I=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1urZTo-0005cC-9B
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 10:03:40 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20607.outbound.protection.outlook.com
 [2a01:111:f403:200a::607])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4443714e-83f6-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 12:03:39 +0200 (CEST)
Received: from MN2PR17CA0024.namprd17.prod.outlook.com (2603:10b6:208:15e::37)
 by SJ1PR12MB6217.namprd12.prod.outlook.com (2603:10b6:a03:458::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Thu, 28 Aug
 2025 10:03:28 +0000
Received: from BL6PEPF0001AB59.namprd02.prod.outlook.com
 (2603:10b6:208:15e:cafe::63) by MN2PR17CA0024.outlook.office365.com
 (2603:10b6:208:15e::37) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.22 via Frontend Transport; Thu,
 28 Aug 2025 10:03:28 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL6PEPF0001AB59.mail.protection.outlook.com (10.167.241.11) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Thu, 28 Aug 2025 10:03:28 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) 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; Thu, 28 Aug
 2025 05:03:26 -0500
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb09.amd.com (10.181.42.218) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.2.1748.10; Thu, 28 Aug 2025 03:03:23 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4443714e-83f6-11f0-aeb2-fb57b961d000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UN4nRiaYXXQ9m1CC1Tx+wOnpH80TlsndAKm8Vgz4GDK5PUMIAdg4Spmm8h1aypzMGnUvBeJxEvCqLztm1Q2DC48yme41yshCuOGC4q2RJgjBte5sf7+2sNEB0FmaL5HeN+uqimEiBsAD7et2mj1PAdpMEyBnAvcwIXcWI4siqgwiVSVu4Qe9jsjgl5iTp6rMCzbsvTBGLl0PbceBlj6pxVREW5I+2P92buMyz+wR213358PYY0G3pgquZHuThsW7LTsFK10xl1xDqiqm+wgkazS0OzMxxEDGvAamLVY9Y2pvyy2rm1h+dl6EY8u2ZXlAG/6BlkoshaBE61aD/uKMiw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=BqftR8SVfaahbiyQTZJlgdrm2kmXnJFHb+pxdOaArlQ=;
 b=KjwU6vbefinKZj5zQOVL6uSrTKhp4boY8/RdCU4WExFMl7AEqOt2K6pYOqt/uXUZOsTPJ0U73SQmJSX72v2Oqgjrr7twjBYJfNe7ZV82eUt0Ksft+ulzKdR1z9581zTc9cfY0xQ0ocqYj5X0jRh8LnqYhkaWoTPEKv1mYzVqSl0q2tU0TgLjKZnVHAoy5M8S3JMTQnAHPstij3psGtOoSNKtWyh0HE4uGy10AQvr16juBOymIaOSmF963EfV28/nS1ni5Znpeel3OCgStFUn6jQ1vxxMjPA7okxZDuSYGUMaOxp/ARaq5fuHt/+ZToJg+WZu+jBkhAkPJDqw67A4AQ==
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=BqftR8SVfaahbiyQTZJlgdrm2kmXnJFHb+pxdOaArlQ=;
 b=2HxDIXUxTK2pHcmk1qjB4HMvBSGzxAvAB2s5iC/ylfK6UT/PIPYAmO/FAK6+flmhiMCos4jmwt95N+kd3yOL+tZUZK5DR8VtsWbqcyKDctayAiztDYyHfgNSTN4xe4uPYgxhEFFgDFea29H6z1ipbCVN6wmFKISzr/hQwl58mXU=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, 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: [PATCH v8 0/8] amd-cppc CPU Performance Scaling Driver
Date: Thu, 28 Aug 2025 18:02:58 +0800
Message-ID: <20250828100306.1776031-1-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To satlexmb09.amd.com
 (10.181.42.218)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB59:EE_|SJ1PR12MB6217:EE_
X-MS-Office365-Filtering-Correlation-Id: fa54b867-6f0c-4dc4-f1cc-08dde61a22a0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?gm3BUIo4oHPbfAsmK2NNtgXICZcMxvles0yIb+7o3BMHdzlNkfptdY1OPae8?=
 =?us-ascii?Q?aJamPt9DRY2jxzK+VkaMThfQAx/dXjEF9CVQ9jpZlP4dtQGhT8ZGc5PhaGRX?=
 =?us-ascii?Q?fb02/KfPjJXVR6rU+o3CertfgIn/THEgcJ2vPEVscxTjlLWuDjSzlqH7egCY?=
 =?us-ascii?Q?dhlXWUWWNI7gGlNYYEI3xMlTRyjt6RI52uvaSypEzhgm96BmXesrPSznKdFZ?=
 =?us-ascii?Q?SgwBFquyQc7fhaoRodDEWlLjzAM4gOh1d7b2yw4NcfCRe3rIZle4Pplu+1Zp?=
 =?us-ascii?Q?9iKo3GejK5tBi+xr/ajRclkyQvXZMuZzwk3fwv69hP9rINEkP8LZo9wPYyxe?=
 =?us-ascii?Q?7YO28nm1jQXXXKak0RcyeojHi54/UewiuTiD8qhNFjzLMx2n6mhIyS00PKW7?=
 =?us-ascii?Q?XHysqMZEQXP1x4urQfc/obW6Zqs2CIYGGekvuBT+zsSjQafQAf33zj62oYZ+?=
 =?us-ascii?Q?LncMcoy6QkppYPGiG100+NsB6plnfiRHLKRbiNeoOQOPzIfbxMsVOwZX/04N?=
 =?us-ascii?Q?R7GnKhLHEbNm9RBmgdIAUD4wZPukhZMO1w4CP1bxk/E+g5QygD4Ilh6TUv9t?=
 =?us-ascii?Q?CZ63ZRXc6RZAUbfF/yfI7McCpIL0BLbDjtQ7/Dhtbvx8hbOh+vVE036VsxhP?=
 =?us-ascii?Q?u4FYfPdtwFkckLzEBFE4dYfQeczxgATxg9YEDMFhe3WLn5JqtX53EzVGEIcB?=
 =?us-ascii?Q?1GKLhUwKhQB2Zjp6I9tLu+Kk889OqDe68FmiEjNv5qeAS5K7eCWQM/vUzJkH?=
 =?us-ascii?Q?bwQ0NLxDey18R9RkuvLeUM7TXlMxhCKxYOsSYBYpj2LefrCKFPa1IZVoujgB?=
 =?us-ascii?Q?1efT+wt3Pe1e/AX08zzqiZVqrrxg571cGX8UDVslLWgaq6yGiJ9ZyTPY9KHu?=
 =?us-ascii?Q?ndOtU6e9b7rZW3R9UFzUTHh+5P6oO3xQq6QjE7I7FU4xXtr+fmUqe514HBVW?=
 =?us-ascii?Q?UnrzIHvKOfBeHnA3clnKwvxx3fGWqSsF7/jZUkAgyWn6oo6dKeg9PwFK3Zzt?=
 =?us-ascii?Q?j9iSbCCah0GQc8I6BUGRmbJc4V/vp+llefaCyPp0ErQA6bqM7nPzBH5zUV4V?=
 =?us-ascii?Q?KBdQqEtyV25ch10jOgl9bhGM9Owr8ihrUgTRR+MqzJ72RVy10VfpxdnK4zJV?=
 =?us-ascii?Q?0B6yE9hHku2sQHeF4ZxKgmvLpTWoxvGhFufHCOOv0ewtX1PYgiVC6RDIFHOk?=
 =?us-ascii?Q?X1eE0DZHCc5W42SeOpp24OiXgFZVHEKiEgynaARtNF8ppe+3CUhGTzjTjmXt?=
 =?us-ascii?Q?DbA8yn5Ks+nE/KubGiHcur1zYbhFdIZdIysBpFKCJ5nrZjmgS1Lx3gTiOWKn?=
 =?us-ascii?Q?4/nhvGCGdpj4ZdPdWxzJDIqS32AUn9HWhLDk0GDAXU0w++LEEtOq2tAkMoTD?=
 =?us-ascii?Q?9p2+xEKOs4adk0E5wTyJNONZ30Vh9WvD9GWrEZQjXM2InpntEnqqFFSxS/pC?=
 =?us-ascii?Q?a7Eif/57Jcu4NoH3HuM6oPw5mrMuVAmmdc81mNxzFSImHN0Jx8MimAKahaBM?=
 =?us-ascii?Q?Eh09IdZfB7WyJqpAnORCgZSX9THtBf+QwWvM?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(1800799024)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 10:03:28.0538
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: fa54b867-6f0c-4dc4-f1cc-08dde61a22a0
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF0001AB59.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ1PR12MB6217

amd-cppc is the AMD CPU performance scaling driver that introduces a
new CPU frequency control mechanism on modern AMD APU and CPU series in
Xen. The new mechanism is based on Collaborative Processor Performance
Control (CPPC) which provides finer grain frequency management than
legacy ACPI hardware P-States. Current AMD CPU/APU platforms are using
the ACPI P-states driver to manage CPU frequency and clocks with
switching only in 3 P-states. CPPC replaces the ACPI P-states controls
and allows a flexible, low-latency interface for Xen to directly
communicate the performance hints to hardware.

amd_cppc driver has 2 operation modes: autonomous (active) mode,
and non-autonomous (passive) mode. We register different CPUFreq driver
for different modes, "amd-cppc" for passive mode and "amd-cppc-epp"
for active mode.

The passive mode leverages common governors such as *ondemand*,
*performance*, etc, to manage the performance tuning. While the active mode
uses epp to provides a hint to the hardware if software wants to bias
toward performance (0x0) or energy efficiency (0xff). CPPC power algorithm
in hardware will automatically calculate the runtime workload and adjust the
realtime cpu cores frequency according to the power supply and thermal, core
voltage and some other hardware conditions.

amd-cppc is enabled on passive mode with a top-level `cpufreq=amd-cppc` option,
while users add extra `active` flag to select active mode.

With `cpufreq=amd-cppc,active`, we did a 60s sampling test to see the CPU
frequency change, through tweaking the energy_perf preference from
`xenpm set-cpufreq-cppc powersave` to `xenpm set-cpufreq-cppc performance`.
The outputs are as follows:
```
Setting CPU in powersave mode
Sampling and Outputs:
  Avg freq      580000 KHz
  Avg freq      580000 KHz
  Avg freq      580000 KHz
Setting CPU in performance mode
Sampling and Outputs:
  Avg freq      4640000 KHz
  Avg freq      4220000 KHz
  Avg freq      4640000 KHz
```

Penny Zheng (8):
  xen/cpufreq: introduce new sub-hypercall to propagate CPPC data
  xen/cpufreq: introduce "cpufreq=amd-cppc" xen cmdline and amd-cppc
    driver
  xen/cpufreq: implement amd-cppc driver for CPPC in passive mode
  xen/cpufreq: implement amd-cppc-epp driver for CPPC in active mode
  xen/cpufreq: get performance policy from governor set via xenpm
  tools/cpufreq: extract CPPC para from cpufreq para
  xen/cpufreq: bypass governor-related para for amd-cppc-epp
  xen/cpufreq: Adapt SET/GET_CPUFREQ_CPPC xen_sysctl_pm_op for amd-cppc
    driver

 docs/misc/xen-command-line.pandoc         |  14 +-
 tools/include/xenctrl.h                   |   3 +-
 tools/libs/ctrl/xc_pm.c                   |  25 +-
 tools/misc/xenpm.c                        |  94 ++-
 xen/arch/x86/acpi/cpufreq/Makefile        |   1 +
 xen/arch/x86/acpi/cpufreq/amd-cppc.c      | 766 ++++++++++++++++++++++
 xen/arch/x86/acpi/cpufreq/cpufreq.c       |  69 +-
 xen/arch/x86/cpu/amd.c                    |   8 +-
 xen/arch/x86/include/asm/amd.h            |   2 +
 xen/arch/x86/include/asm/msr-index.h      |   6 +
 xen/arch/x86/platform_hypercall.c         |  19 +
 xen/arch/x86/x86_64/cpufreq.c             |  19 +
 xen/arch/x86/x86_64/platform_hypercall.c  |   3 +
 xen/drivers/acpi/pm-op.c                  |  68 +-
 xen/drivers/acpi/pmstat.c                 |   4 +
 xen/drivers/cpufreq/cpufreq.c             | 137 +++-
 xen/drivers/cpufreq/utility.c             |  15 +
 xen/include/acpi/cpufreq/cpufreq.h        |  40 +-
 xen/include/acpi/cpufreq/processor_perf.h |  14 +-
 xen/include/public/platform.h             |  26 +
 xen/include/public/sysctl.h               |   5 +-
 xen/include/xen/pmstat.h                  |   5 +
 xen/include/xlat.lst                      |   1 +
 23 files changed, 1283 insertions(+), 61 deletions(-)
 create mode 100644 xen/arch/x86/acpi/cpufreq/amd-cppc.c

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 10:03:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 10:03:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098143.1452271 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urZTu-0005ua-T8; Thu, 28 Aug 2025 10:03:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098143.1452271; Thu, 28 Aug 2025 10: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 1urZTu-0005uT-Q1; Thu, 28 Aug 2025 10:03:46 +0000
Received: by outflank-mailman (input) for mailman id 1098143;
 Thu, 28 Aug 2025 10:03:44 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ityt=3I=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1urZTs-0005st-Q1
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 10:03:44 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20614.outbound.protection.outlook.com
 [2a01:111:f403:2009::614])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 464fc64b-83f6-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 12:03:42 +0200 (CEST)
Received: from BN8PR15CA0040.namprd15.prod.outlook.com (2603:10b6:408:80::17)
 by IA0PPFFEC453979.namprd12.prod.outlook.com
 (2603:10b6:20f:fc04::beb) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.19; Thu, 28 Aug
 2025 10:03:37 +0000
Received: from BL6PEPF0001AB55.namprd02.prod.outlook.com
 (2603:10b6:408:80:cafe::30) by BN8PR15CA0040.outlook.office365.com
 (2603:10b6:408:80::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.16 via Frontend Transport; Thu,
 28 Aug 2025 10:03:37 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL6PEPF0001AB55.mail.protection.outlook.com (10.167.241.7) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Thu, 28 Aug 2025 10:03:37 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) 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; Thu, 28 Aug
 2025 05:03:34 -0500
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb09.amd.com (10.181.42.218) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.2.1748.10; Thu, 28 Aug 2025 03:03:31 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 464fc64b-83f6-11f0-ae26-e363de0e7a9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FmX7q+4G1Bg7nrEVEcTzh+121YPjZh47tXnbZ/Sl/hjfYUkIN45OAfJkMVCICRJhbvx6yMzkeez1aNT8+xFGA1E05dN83oWK1LIua1pQfYlrUIX1vnoWi7agt51YKrnyfv5x8qaO6ktn2R1JF+9LGzxXrf61M1y3fi0AwVKrsw96/gOETZRO1/2L1TryHtomZHyeh9eA5eJNy11V4Q2DmTVvKQOM0GCbubNw/igpzlf6OoR3uj0jRI2Zpwh42miBydfxMTlI4lyqoJmrWTyxM1JxV+uHhts8940zxP10+JjOzaPB6A8kHQ6ehmWUU4q2Kn/vi7vkrkUDFC1mour+Aw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cFow82ppPAxmI3VLc61oBcj1GCRPcjquAW8F/RqbHEo=;
 b=JI81o417deEpG88/M9syXpm0gzqxtkyxaFhWHUL1+xfEkrKfuGr7QL6bCvljjxNLGVSv4PMcxWxhA7NppVU9C232EpUL/tgOjJtPFZ+AMZIbNHrUGwJ/f54RoEi8VJPOyQYzvXhE/8Syh7C3JSQ/rZYS9GCX34/owTESwabbz540XA7VUkgLEzsmliqPUJe02DPsmhE56Q7yBPuTuetzKiEFS75KY17MP6jxdqQ2rMnICEgw8HszY7w7I7Z5B1itJ2n6jbg/aSFHUWrL145qyefFf2SgkpDDyw/PBsYcdgYsJkYcGj1iNr9wjlx3ID1es7UcOrNXylc4i2uLUMbduQ==
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=cFow82ppPAxmI3VLc61oBcj1GCRPcjquAW8F/RqbHEo=;
 b=SmFxPWx8bUYlMwLTFNw1C28Tpyc+Q4vrtbyS1oipvPTpO8hO7yJo+Z+mfFfOysvj+dGn4ZkS29TtCdTUtjN8+abIkG8cWhKgs43TOTMj0euKk/lIuBz0787HI6xjLmBsxjFYNk1GLX+oZewhu5v9gAYp4ZavgEVJ1Zzms+/naRA=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v8 1/8] xen/cpufreq: introduce new sub-hypercall to propagate CPPC data
Date: Thu, 28 Aug 2025 18:02:59 +0800
Message-ID: <20250828100306.1776031-2-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250828100306.1776031-1-Penny.Zheng@amd.com>
References: <20250828100306.1776031-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: SATLEXMB03.amd.com (10.181.40.144) To satlexmb09.amd.com
 (10.181.42.218)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB55:EE_|IA0PPFFEC453979:EE_
X-MS-Office365-Filtering-Correlation-Id: 7ad50036-3c73-44c6-d29f-08dde61a2828
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|36860700013|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?hI5npg3yTVtOIFi9S+Pcc7JVA9yq0ZeCQ8xPSt5oPFa+ap074bo+3NSoCFZV?=
 =?us-ascii?Q?keAiOKHzSRfY3Pnd4kXrajw+HRzmZlDqOShmxIsUyCbR6GeIbROr2Va1NlMP?=
 =?us-ascii?Q?SPpJ01MK5DRcWeKQKiCdNduklra0/lCuwcqApwJ522tqYj3Bw4SgBXPi+oA1?=
 =?us-ascii?Q?yQeYOSIiW4SNrMomeDZlkvjICirIhIKDgx/Hc9Ln3PzPpigsfokwMM0mt+Rj?=
 =?us-ascii?Q?Bb3vL54udpw86bVP3TLu1QVjQGjW1xfOT//NLtq8L96U5yLtNe7adZg7/3P8?=
 =?us-ascii?Q?BdOkls47Gt+8ec//myQ5sngjkw1jIM4Fa5vMP3ZuZXvtt+ox13NtT2kXB9Vk?=
 =?us-ascii?Q?DQEILrBmoL0hBJtMdRyUovF5kinqfa6Asz2POleYSzCn/F3Eahev9Hp+tIoR?=
 =?us-ascii?Q?mAouQ5bHkbiPeXJsBWkrAYCcE4x8LPAltBsgNjH2m5hUMeBV3YVlyWl1ONpb?=
 =?us-ascii?Q?ioDJ0tb8bpj0mwL8gLOboQoToSHzaeI2roj5Dt6bhVX4uKyBYiqwrn93nCM2?=
 =?us-ascii?Q?26VI1xiQDypgv8T2m2EimK2TZ2mxlEFMXpnvXnuCkxVXCApUKdO3lW6hnbPm?=
 =?us-ascii?Q?GF54JHC7baIDo9trz0W6nVaz+l2O0gjvWosbmynrbXCCAt1m6kycM6k5Q77N?=
 =?us-ascii?Q?Ty8AgRjjHz/Ngbpnh4Iv3pPbOQCHnxPxGY76dG9NVsq66tQOdPKZo9Cocp6W?=
 =?us-ascii?Q?quE024vTWU+1QD5j7zDmtyDWoo+mzERRfQx9U4C4jyADcjrwBYdn5Yvhu3RU?=
 =?us-ascii?Q?75M4PQsTmlWlP7x9OcGBGbdNKIg7EsEXQ70emlJCs95/LswI+gDt0jS0FgiO?=
 =?us-ascii?Q?g371A87/Lm6exCXdc6aGZArZJmUVwv31coVU45oXMAtYLZzofc5t7LdhnLtU?=
 =?us-ascii?Q?nSsWkpOeOaQk+pEyRhkBZ2reh/gfo33n7b0WmaczywfZrq3geYCsi/Dw+1Qf?=
 =?us-ascii?Q?jzF2IgnMMkQ6QUXYeU1at2bShubHu/sDoOvhRpkSlq5YXkhgk66STMfBgg6A?=
 =?us-ascii?Q?Xqo5sK6VfswvsvCl9Qik1h4c/KswUbRkxDcn/sDbCc58N1QCUKDLBI6HYPIV?=
 =?us-ascii?Q?z/kSiQmX7XNm2rgvAdRVnHh05GtGpL1AvwH7fCk+5VyrQh2Zp4PH7zoP8jdd?=
 =?us-ascii?Q?CpkrXPMUOyt7ULXew/xzVY5OapryLcRTFI8Ul0imdZMU/THiyNEBq9wxIXtG?=
 =?us-ascii?Q?bp6GZ0k/U5hyTuhQdWAHcHTHE5bv9DC9BdNtiehU3k2bOirUWcwCrNsTpRcU?=
 =?us-ascii?Q?LpHIyGsgcBP+pDq7fKtaC9Cw2szJGdC6rdbd9YvU4ellNOQycrVye6ubawjR?=
 =?us-ascii?Q?/uq9ThWEnL5zzSegzGt9xxU7HLKSPgY/vroct98BiIU4rgc9pGE2ynpZQImi?=
 =?us-ascii?Q?Q1xEIU6KGJ4eVhMKFIR0h2IMO2iUFUu+4+Sycsiga45uTwmYatmuGVzlGWBg?=
 =?us-ascii?Q?6Ksc5v3OE2a2Cxlv6O/c0qY2pqlCtuKiHcC2MXiCuAMD+AivjmaccEJes7CG?=
 =?us-ascii?Q?NjHqw/1vMwpVSBNN+1tfQ0Nsl7EiY63DZeQo?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700013)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 10:03:37.3330
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7ad50036-3c73-44c6-d29f-08dde61a2828
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF0001AB55.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PPFFEC453979

In order to provide backward compatibility with existing governors
that represent performance as frequency, like ondemand, the _CPC
table can optionally provide processor frequency range values, Lowest
frequency and Nominal frequency, to let OS use Lowest Frequency/
Performance and Nominal Frequency/Performance as anchor points to
create linear mapping of CPPC performance to CPU frequency.

As Xen is uncapable of parsing the ACPI dynamic table, we'd like to
introduce a new sub-hypercall "XEN_PM_CPPC" to propagate required CPPC
data from dom0 kernel to Xen.
In the according handler set_cppc_pminfo(), we do _CPC and _PSD
sanitization check, as both _PSD and _CPC info are necessary for correctly
initializing cpufreq cores in CPPC mode.
Users shall be warned that if we failed at this point,
no fallback scheme, like legacy P-state could be switched to.

A new flag "XEN_CPPC_INIT" is also introduced for cpufreq core initialised in
CPPC mode. Then all .init flag checking shall be updated to
consider "XEN_CPPC_INIT" too.

We want to bypass construction of px statistic info in cpufreq_statistic_init()
for CPPC mode, while not bypassing cpufreq_statistic_lock initialization for a
good reason. The same check is unnecessary for cpufreq_statistic_exit(),
since it has already been covered by px statistic variable
"cpufreq_statistic_data" check

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v1 -> v2:
- Give the variable des_perf an initializer of 0
- Use the strncmp()s directly in the if()
---
v3 -> v4
- refactor comments
- remove double blank lines
- replace amd_cppc_in_use flag with XEN_PROCESSOR_PM_CPPC
---
v4 -> v5:
- add new field "policy" in "struct xen_cppc_para"
- add new performamce policy XEN_CPUFREQ_POLICY_BALANCE
- drop string comparisons with "processor_pminfo[cpuid]->init & XEN_CPPC_INIT"
and "cpufreq.setpolicy == NULL"
- Blank line ahead of the main "return" of a function
- refactor comments, commit message and title
---
v5 -> v6:
- remove duplicated manifest constants, and just move it to public header
- use "else if" to avoid confusion that it looks as if both paths could be taken
- add check for legitimate perf values
- use "unknown" instead of "none"
- introduce "CPUFREQ_POLICY_END" for array overrun check in user space tools
---
v6 -> v7:
- use ARRAY_SIZE() instead
- ->policy print is avoided in passive mode and print "unknown" in invalid
cases
- let cpufreq_is_governorless() being the variable's initializer
- refactor with the conditional operator to increase readability
- move duplicated defination ahead and use local variable
- avoid using "else-condition" to bring "dead code" in Misra's nomeclature
- move the comment out of public header and into the respective internal
struct field
- wrap set{,get}_amd_cppc_para() with CONFIG_PM_OP
- add symmetry scenario for maximum check
---
v7 -> v8:
- replace -EFAULT with -ENOMEM
- indent fix
- add comment for state_count check for CPPC mode
---
 xen/arch/x86/platform_hypercall.c         |   5 +
 xen/arch/x86/x86_64/cpufreq.c             |  19 ++++
 xen/arch/x86/x86_64/platform_hypercall.c  |   3 +
 xen/drivers/acpi/pm-op.c                  |   7 +-
 xen/drivers/acpi/pmstat.c                 |   4 +
 xen/drivers/cpufreq/cpufreq.c             | 124 +++++++++++++++++++++-
 xen/include/acpi/cpufreq/processor_perf.h |   4 +-
 xen/include/public/platform.h             |  26 +++++
 xen/include/xen/pmstat.h                  |   5 +
 xen/include/xlat.lst                      |   1 +
 10 files changed, 193 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hypercall.c
index 21f9f795c1..fafc176475 100644
--- a/xen/arch/x86/platform_hypercall.c
+++ b/xen/arch/x86/platform_hypercall.c
@@ -577,6 +577,11 @@ ret_t do_platform_op(
             break;
         }
 
+        case XEN_PM_CPPC:
+            ret = set_cppc_pminfo(op->u.set_pminfo.id,
+                                  &op->u.set_pminfo.u.cppc_data);
+            break;
+
         default:
             ret = -EINVAL;
             break;
diff --git a/xen/arch/x86/x86_64/cpufreq.c b/xen/arch/x86/x86_64/cpufreq.c
index e4f3d5b436..525b29da71 100644
--- a/xen/arch/x86/x86_64/cpufreq.c
+++ b/xen/arch/x86/x86_64/cpufreq.c
@@ -54,3 +54,22 @@ int compat_set_px_pminfo(uint32_t acpi_id,
 
     return set_px_pminfo(acpi_id, xen_perf);
 }
+
+int compat_set_cppc_pminfo(unsigned int acpi_id,
+                           const struct compat_processor_cppc *cppc_data)
+
+{
+    struct xen_processor_cppc *xen_cppc;
+    unsigned long xlat_page_current;
+
+    xlat_malloc_init(xlat_page_current);
+
+    xen_cppc = xlat_malloc_array(xlat_page_current,
+                                 struct xen_processor_cppc, 1);
+    if ( unlikely(xen_cppc == NULL) )
+        return -ENOMEM;
+
+    XLAT_processor_cppc(xen_cppc, cppc_data);
+
+    return set_cppc_pminfo(acpi_id, xen_cppc);
+}
diff --git a/xen/arch/x86/x86_64/platform_hypercall.c b/xen/arch/x86/x86_64/platform_hypercall.c
index 9ab631c17f..0288f68df9 100644
--- a/xen/arch/x86/x86_64/platform_hypercall.c
+++ b/xen/arch/x86/x86_64/platform_hypercall.c
@@ -14,6 +14,9 @@ EMIT_FILE;
 #define efi_get_info        efi_compat_get_info
 #define efi_runtime_call(x) efi_compat_runtime_call(x)
 
+#define xen_processor_cppc  compat_processor_cppc
+#define set_cppc_pminfo     compat_set_cppc_pminfo
+
 #define xen_processor_performance compat_processor_performance
 #define set_px_pminfo       compat_set_px_pminfo
 
diff --git a/xen/drivers/acpi/pm-op.c b/xen/drivers/acpi/pm-op.c
index 9a1970df34..e3b5c8bcaa 100644
--- a/xen/drivers/acpi/pm-op.c
+++ b/xen/drivers/acpi/pm-op.c
@@ -91,7 +91,10 @@ static int get_cpufreq_para(struct xen_sysctl_pm_op *op)
     pmpt = processor_pminfo[op->cpuid];
     policy = per_cpu(cpufreq_cpu_policy, op->cpuid);
 
-    if ( !pmpt || !pmpt->perf.states ||
+    if ( !pmpt ||
+         ((pmpt->init & XEN_PX_INIT) && !pmpt->perf.states) ||
+         /* Avoid NULL deref of pmpt->perf.states[] */
+         ((pmpt->init & XEN_CPPC_INIT) && pmpt->perf.state_count) ||
          !policy || !policy->governor )
         return -EINVAL;
 
@@ -351,7 +354,7 @@ int do_pm_op(struct xen_sysctl_pm_op *op)
     case CPUFREQ_PARA:
         if ( !(xen_processor_pmbits & XEN_PROCESSOR_PM_PX) )
             return -ENODEV;
-        if ( !pmpt || !(pmpt->init & XEN_PX_INIT) )
+        if ( !pmpt || !(pmpt->init & (XEN_PX_INIT | XEN_CPPC_INIT)) )
             return -EINVAL;
         break;
     }
diff --git a/xen/drivers/acpi/pmstat.c b/xen/drivers/acpi/pmstat.c
index 4fae0c14af..0f31736df2 100644
--- a/xen/drivers/acpi/pmstat.c
+++ b/xen/drivers/acpi/pmstat.c
@@ -108,6 +108,10 @@ int cpufreq_statistic_init(unsigned int cpu)
     if ( !pmpt )
         return -EINVAL;
 
+    /* Only need to initialize in Px mode */
+    if ( !(pmpt->init & XEN_PX_INIT) )
+        return 0;
+
     spin_lock(cpufreq_statistic_lock);
 
     pxpt = per_cpu(cpufreq_statistic_data, cpu);
diff --git a/xen/drivers/cpufreq/cpufreq.c b/xen/drivers/cpufreq/cpufreq.c
index 267e4d3f3b..c6ce31c0ac 100644
--- a/xen/drivers/cpufreq/cpufreq.c
+++ b/xen/drivers/cpufreq/cpufreq.c
@@ -40,6 +40,7 @@
 #include <xen/domain.h>
 #include <xen/cpu.h>
 #include <xen/pmstat.h>
+#include <xen/xvmalloc.h>
 #include <asm/io.h>
 #include <asm/processor.h>
 
@@ -234,6 +235,11 @@ static int get_psd_info(unsigned int cpu, unsigned int *shared_type,
         *domain_info = &processor_pminfo[cpu]->perf.domain_info;
         break;
 
+    case XEN_CPPC_INIT:
+        *shared_type = processor_pminfo[cpu]->cppc_data.shared_type;
+        *domain_info = &processor_pminfo[cpu]->cppc_data.domain_info;
+        break;
+
     default:
         ret = -EINVAL;
         break;
@@ -259,7 +265,7 @@ int cpufreq_add_cpu(unsigned int cpu)
     if ( !processor_pminfo[cpu] || !cpu_online(cpu) )
         return -EINVAL;
 
-    if ( !(processor_pminfo[cpu]->init & XEN_PX_INIT) )
+    if ( !(processor_pminfo[cpu]->init & (XEN_PX_INIT | XEN_CPPC_INIT)) )
         return -EINVAL;
 
     if (!cpufreq_driver.init)
@@ -434,7 +440,7 @@ int cpufreq_del_cpu(unsigned int cpu)
     if ( !processor_pminfo[cpu] || !cpu_online(cpu) )
         return -EINVAL;
 
-    if ( !(processor_pminfo[cpu]->init & XEN_PX_INIT) )
+    if ( !(processor_pminfo[cpu]->init & (XEN_PX_INIT | XEN_CPPC_INIT)) )
         return -EINVAL;
 
     if (!per_cpu(cpufreq_cpu_policy, cpu))
@@ -693,6 +699,120 @@ int acpi_set_pdc_bits(unsigned int acpi_id, XEN_GUEST_HANDLE(uint32) pdc)
     return ret;
 }
 
+static void print_CPPC(const struct xen_processor_cppc *cppc_data)
+{
+    printk("\t_CPC: highest_perf=%u, lowest_perf=%u, "
+           "nominal_perf=%u, lowest_nonlinear_perf=%u, "
+           "nominal_mhz=%uMHz, lowest_mhz=%uMHz\n",
+           cppc_data->cpc.highest_perf, cppc_data->cpc.lowest_perf,
+           cppc_data->cpc.nominal_perf, cppc_data->cpc.lowest_nonlinear_perf,
+           cppc_data->cpc.nominal_mhz, cppc_data->cpc.lowest_mhz);
+}
+
+int set_cppc_pminfo(unsigned int acpi_id,
+                    const struct xen_processor_cppc *cppc_data)
+{
+    int ret = 0, cpuid;
+    struct processor_pminfo *pm_info;
+
+    cpuid = get_cpu_id(acpi_id);
+    if ( cpuid < 0 )
+    {
+        ret = -EINVAL;
+        goto out;
+    }
+
+    if ( cppc_data->pad[0] || cppc_data->pad[1] || cppc_data->pad[2] )
+    {
+        ret = -EINVAL;
+        goto out;
+    }
+
+    if ( cpufreq_verbose )
+        printk("Set CPU%d (ACPI ID %u) CPPC state info:\n",
+               cpuid, acpi_id);
+
+    pm_info = processor_pminfo[cpuid];
+    if ( !pm_info )
+    {
+        pm_info = xvzalloc(struct processor_pminfo);
+        if ( !pm_info )
+        {
+            ret = -ENOMEM;
+            goto out;
+        }
+        processor_pminfo[cpuid] = pm_info;
+    }
+    pm_info->acpi_id = acpi_id;
+    pm_info->id = cpuid;
+    pm_info->cppc_data = *cppc_data;
+
+    if ( (cppc_data->flags & XEN_CPPC_PSD) &&
+          !check_psd_pminfo(cppc_data->shared_type) )
+    {
+            ret = -EINVAL;
+            goto out;
+    }
+
+    if ( cppc_data->flags & XEN_CPPC_CPC )
+    {
+        if ( cppc_data->cpc.highest_perf == 0 ||
+             cppc_data->cpc.highest_perf > UINT8_MAX ||
+             cppc_data->cpc.nominal_perf == 0 ||
+             cppc_data->cpc.lowest_nonlinear_perf == 0 ||
+             cppc_data->cpc.lowest_perf == 0 ||
+             cppc_data->cpc.lowest_perf >
+                 cppc_data->cpc.lowest_nonlinear_perf ||
+             cppc_data->cpc.lowest_nonlinear_perf >
+                 cppc_data->cpc.nominal_perf ||
+             cppc_data->cpc.nominal_perf > cppc_data->cpc.highest_perf )
+            /*
+             * Right now, Xen doesn't actually use highest_perf/nominal_perf/
+             * lowest_nonlinear_perf/lowest_perf values read from ACPI _CPC
+             * table. Xen reads CPPC capability MSR to get these four values.
+             * So warning is enough.
+             */
+            printk_once(XENLOG_WARNING
+                        "Broken CPPC perf values: lowest(%u), nonlinear_lowest(%u), nominal(%u), highest(%u)\n",
+                        cppc_data->cpc.lowest_perf,
+                        cppc_data->cpc.lowest_nonlinear_perf,
+                        cppc_data->cpc.nominal_perf,
+                        cppc_data->cpc.highest_perf);
+
+        /* lowest_mhz and nominal_mhz are optional value */
+        if ( cppc_data->cpc.nominal_mhz &&
+             cppc_data->cpc.lowest_mhz > cppc_data->cpc.nominal_mhz )
+        {
+            printk_once(XENLOG_WARNING
+                        "Broken CPPC freq values: lowest(%u), nominal(%u)\n",
+                        cppc_data->cpc.lowest_mhz,
+                        cppc_data->cpc.nominal_mhz);
+            /* Re-set with zero values, instead of keeping invalid values */
+            pm_info->cppc_data.cpc.nominal_mhz = 0;
+            pm_info->cppc_data.cpc.lowest_mhz = 0;
+        }
+    }
+
+    if ( cppc_data->flags == (XEN_CPPC_PSD | XEN_CPPC_CPC) )
+    {
+        if ( cpufreq_verbose )
+        {
+            print_PSD(&pm_info->cppc_data.domain_info);
+            print_CPPC(&pm_info->cppc_data);
+        }
+
+        pm_info->init = XEN_CPPC_INIT;
+        ret = cpufreq_cpu_init(cpuid);
+        if ( ret )
+            printk_once(XENLOG_WARNING
+                        "CPU%d failed amd-cppc mode init; use \"cpufreq=xen\" instead",
+                        cpuid);
+    }
+
+ out:
+    return ret;
+}
+
 static void cpufreq_cmdline_common_para(struct cpufreq_policy *new_policy)
 {
     if (usr_max_freq)
diff --git a/xen/include/acpi/cpufreq/processor_perf.h b/xen/include/acpi/cpufreq/processor_perf.h
index 4e045da983..e6576314f0 100644
--- a/xen/include/acpi/cpufreq/processor_perf.h
+++ b/xen/include/acpi/cpufreq/processor_perf.h
@@ -5,7 +5,8 @@
 #include <public/sysctl.h>
 #include <xen/acpi.h>
 
-#define XEN_PX_INIT 0x80000000U
+#define XEN_CPPC_INIT 0x40000000U
+#define XEN_PX_INIT   0x80000000U
 
 unsigned int powernow_register_driver(void);
 unsigned int get_measured_perf(unsigned int cpu, unsigned int flag);
@@ -43,6 +44,7 @@ struct processor_pminfo {
     uint32_t acpi_id;
     uint32_t id;
     struct processor_performance    perf;
+    struct xen_processor_cppc cppc_data;
 
     uint32_t init;
 };
diff --git a/xen/include/public/platform.h b/xen/include/public/platform.h
index 2725b8d104..94349fc5f5 100644
--- a/xen/include/public/platform.h
+++ b/xen/include/public/platform.h
@@ -363,6 +363,7 @@ DEFINE_XEN_GUEST_HANDLE(xenpf_getidletime_t);
 #define XEN_PM_PX   1
 #define XEN_PM_TX   2
 #define XEN_PM_PDC  3
+#define XEN_PM_CPPC 4
 
 /* Px sub info type */
 #define XEN_PX_PCT   1
@@ -370,6 +371,10 @@ DEFINE_XEN_GUEST_HANDLE(xenpf_getidletime_t);
 #define XEN_PX_PPC   4
 #define XEN_PX_PSD   8
 
+/* CPPC sub info type */
+#define XEN_CPPC_PSD   (1U << 0)
+#define XEN_CPPC_CPC   (1U << 1)
+
 struct xen_power_register {
     uint32_t     space_id;
     uint32_t     bit_width;
@@ -457,6 +462,26 @@ struct xen_processor_performance {
 typedef struct xen_processor_performance xen_processor_performance_t;
 DEFINE_XEN_GUEST_HANDLE(xen_processor_performance_t);
 
+struct xen_processor_cppc {
+    uint8_t flags; /* IN: XEN_CPPC_xxx */
+    uint8_t pad[3];
+    /*
+     * IN: Subset _CPC fields useful for CPPC-compatible cpufreq
+     * driver's initialization
+     */
+    struct {
+        uint32_t highest_perf;
+        uint32_t nominal_perf;
+        uint32_t lowest_nonlinear_perf;
+        uint32_t lowest_perf;
+        uint32_t lowest_mhz;
+        uint32_t nominal_mhz;
+    } cpc;
+    uint32_t shared_type; /* IN: XEN_CPUPERF_SHARED_TYPE_xxx */
+    struct xen_psd_package domain_info; /* IN: _PSD */
+};
+typedef struct xen_processor_cppc xen_processor_cppc_t;
+
 struct xenpf_set_processor_pminfo {
     /* IN variables */
     uint32_t id;    /* ACPI CPU ID */
@@ -465,6 +490,7 @@ struct xenpf_set_processor_pminfo {
         struct xen_processor_power          power;/* Cx: _CST/_CSD */
         struct xen_processor_performance    perf; /* Px: _PPC/_PCT/_PSS/_PSD */
         XEN_GUEST_HANDLE(uint32)            pdc;  /* _PDC */
+        xen_processor_cppc_t                cppc_data; /* CPPC: _CPC and _PSD */
     } u;
 };
 typedef struct xenpf_set_processor_pminfo xenpf_set_processor_pminfo_t;
diff --git a/xen/include/xen/pmstat.h b/xen/include/xen/pmstat.h
index 8350403e95..6096560d3c 100644
--- a/xen/include/xen/pmstat.h
+++ b/xen/include/xen/pmstat.h
@@ -7,12 +7,17 @@
 
 int set_px_pminfo(uint32_t acpi_id, struct xen_processor_performance *perf);
 long set_cx_pminfo(uint32_t acpi_id, struct xen_processor_power *power);
+int set_cppc_pminfo(unsigned int acpi_id,
+                    const struct xen_processor_cppc *cppc_data);
 
 #ifdef CONFIG_COMPAT
 struct compat_processor_performance;
 int compat_set_px_pminfo(uint32_t acpi_id, struct compat_processor_performance *perf);
 struct compat_processor_power;
 long compat_set_cx_pminfo(uint32_t acpi_id, struct compat_processor_power *power);
+struct compat_processor_cppc;
+int compat_set_cppc_pminfo(unsigned int acpi_id,
+                           const struct compat_processor_cppc *cppc_data);
 #endif
 
 uint32_t pmstat_get_cx_nr(unsigned int cpu);
diff --git a/xen/include/xlat.lst b/xen/include/xlat.lst
index 6d6c6cfab2..9d08dcc4bb 100644
--- a/xen/include/xlat.lst
+++ b/xen/include/xlat.lst
@@ -160,6 +160,7 @@
 
 !	pct_register			platform.h
 !	power_register			platform.h
+!	processor_cppc			platform.h
 ?	processor_csd			platform.h
 !	processor_cx			platform.h
 !	processor_flags			platform.h
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 10:03:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 10:03:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098146.1452282 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urZU3-0006Jz-7y; Thu, 28 Aug 2025 10:03:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098146.1452282; Thu, 28 Aug 2025 10:03: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 1urZU3-0006Js-5C; Thu, 28 Aug 2025 10:03:55 +0000
Received: by outflank-mailman (input) for mailman id 1098146;
 Thu, 28 Aug 2025 10:03:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ityt=3I=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1urZU2-0005cC-Jk
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 10:03:54 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on2060d.outbound.protection.outlook.com
 [2a01:111:f403:2412::60d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4c9dac2c-83f6-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 12:03:53 +0200 (CEST)
Received: from BN9PR03CA0927.namprd03.prod.outlook.com (2603:10b6:408:107::32)
 by IA1PR12MB6308.namprd12.prod.outlook.com (2603:10b6:208:3e4::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.20; Thu, 28 Aug
 2025 10:03:41 +0000
Received: from BL02EPF00029928.namprd02.prod.outlook.com
 (2603:10b6:408:107:cafe::bc) by BN9PR03CA0927.outlook.office365.com
 (2603:10b6:408:107::32) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.21 via Frontend Transport; Thu,
 28 Aug 2025 10:03:41 +0000
Received: from SATLEXMB03.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_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Thu, 28 Aug 2025 10:03:40 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) 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; Thu, 28 Aug
 2025 05:03:40 -0500
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb09.amd.com (10.181.42.218) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.2.1748.10; Thu, 28 Aug 2025 03:03:37 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4c9dac2c-83f6-11f0-aeb2-fb57b961d000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Oxhqf+/Xp+Y+JslVCSThxTIcW38CtGdxth1wYMbRviAxGmRcxFUKN+pKweTTJ/FQWu9nHTgMaG3WZEyLUcD8sW7VyAoN2Fm380vyVE+jJWxdgbeD86/G8lUE7JwjzTBO7N5inZyW4nczQWd2yiIBz8p7C3u7Y+d2eBsgE2kbAh2eYDey0SDVh6h2tqsKMO/FkIx6XKRIzQCr57nbnU5WP3xMV6EE8zKRtM5QjKBbRY3QCv3P6mqFEXQiLtPMzcNvGPIOUOiwUqvnd6IK1AIu4FE0Mb57ZZ2ADIFNllqeuzRo1yqBmkdAmRnFIunRd4KQKouPeuizVqNWf00RVYQqog==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jW79G82BpkewH90NVqtXSWV0LisGw5ntTqLPIdgd3Ow=;
 b=QgsYuL+NFVFNFhDaj3dUfhwMft7bFoKDNc5TCSTE+MPDIHfr1Z7q6pqbBRtgwAIPzp5oTDZ5v/tydXKVk7W3+j2ErI4tbOHQqmdp2fEKw2EOSzO3HsuLNPzwUqakK0lRPjPrURkiIbSDhUCc2xb+wuLYShRYSZnL2nQUSxM+/+idnGrU0NfoKQUoitUxa/kGBYXwkQLI0uUkfosPlB02cz3CWvvJKvdbFgW7Q8ANX75aFiVr20EMxyQ5RAPBtiIZ42AyR9JZnWkj8CVjwaq9gk9n3p4RspHPutC32Ms1NVN+A/lAhW1J1/z+J/dJjEds4ERPbnrmWQt6e4DpTWJ0Aw==
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=jW79G82BpkewH90NVqtXSWV0LisGw5ntTqLPIdgd3Ow=;
 b=H0x0RFxIBGgbOHWlhnC14+qk93IfoqLABf6kTHQ2ygDG2fx8sRGYjsD8SaMOfNkCCyGWGfJcsLpm0QYkD3PlDG/jju54KV7YN6ageTvf1p79LoRduSPSgYr4tv9mYpFNCCSiVp1auHgDcg3axPvrU7g+3jZiiWou0YeCEjxCM+s=
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=SATLEXMB03.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v8 2/8] xen/cpufreq: introduce "cpufreq=amd-cppc" xen cmdline and amd-cppc driver
Date: Thu, 28 Aug 2025 18:03:00 +0800
Message-ID: <20250828100306.1776031-3-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250828100306.1776031-1-Penny.Zheng@amd.com>
References: <20250828100306.1776031-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: SATLEXMB03.amd.com (10.181.40.144) To satlexmb09.amd.com
 (10.181.42.218)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF00029928:EE_|IA1PR12MB6308:EE_
X-MS-Office365-Filtering-Correlation-Id: 1f298020-fef3-4aa0-606c-08dde61a2a41
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|1800799024|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?jfzwqyTuzCdBE52Vtor/FHBeJ1Ts22Qm0F5ilCDU7JFdLWXWsTNLHyk45ZpE?=
 =?us-ascii?Q?PX3lBxCch8UlV+9uZaJEc546ZE4U2vJh7YNJLkpsORQHOvSScfwya8jZweNS?=
 =?us-ascii?Q?EqAkJiXFZ1rhlGp8DMxlKwS/tH/tVJCp0r+eDNOnx/ah1jXHWbgFxrFedQo/?=
 =?us-ascii?Q?OtXbvvGAhZdocDNgTDQFYKdLZCNCn8PGko1TYEw36mQMOLJUEzw12EeeIADX?=
 =?us-ascii?Q?IrIVDU2Lgorr7U17qWHdab4hq0FDWBSOFUxHE5KAmz72fxdvHLksOHKEI7G6?=
 =?us-ascii?Q?tN+wfTjWzLtz2InbVj0TzAQzlQn16bV5T5NaHzfLVKIi0wPsVJA6TwXM6+U3?=
 =?us-ascii?Q?yREU7yHIpQfsS4a9j/rLU/7KMzKA5ZeKUlXeG9HOd6fR7YY1YewVS9zzLfTM?=
 =?us-ascii?Q?oc/Bo0UvGym5/tHylw/AIbu6gDtDuijFhK2LmeQysnbCg/XBeunpUayzTPCK?=
 =?us-ascii?Q?uE8vQ2wmGjWuWuIybtfmky7Gf4mPkWC552AznmMVzQeb0rLgVXJx3Rv/AvnH?=
 =?us-ascii?Q?fsf0uC4gINk346K0GcF1P4etbDG5scib83wX06B/Pi4s15hgRb41PnyCrGJi?=
 =?us-ascii?Q?/R28HPZYbc2mzVx+6XJ4i85sY3cPkHvnPfZ83FPqM1fZF6l8WHByk2mgDfsW?=
 =?us-ascii?Q?7w4+1ycAAs8svf56Y5eKHEX6y49xMXsWr/5H7gdd4rg9I8iVxEbxmFcKXSvv?=
 =?us-ascii?Q?Vnfy45QS+WU2wkKeiXmDxSUuQAFWnn8Mv2HR1PGVVW+SCdEQ5UUF46y+YpUJ?=
 =?us-ascii?Q?A8m8Qxpo81Lfw2ogoC4k3cRWqmwcxLDMr+1KzLaSH001kozgle7Qs/prmasJ?=
 =?us-ascii?Q?8JxhKkkmWxXtWP0ntWLbfih0t4u6y41f7jsj2zfwozcANf0qvZ53snngEnwb?=
 =?us-ascii?Q?cw9snHxIuigLP8TjFLFPmm8GDjQTxCYIb2h0qb9cQTR+azU02gJkWGjwTo73?=
 =?us-ascii?Q?U2HWlh3oKrleKWZM5PaT5bTjle6a6f+Y8qIsQJ7U+AIGX/9rwmj91nvUaNt3?=
 =?us-ascii?Q?Xliam4lDuIfXY7IKoGMFfXic2nZw2xztrJNkeQrsQbf7Zm7Y1g/Nsorm2ea2?=
 =?us-ascii?Q?Rz5shf1MKUS7bpqhA3idrsUKk+1l9e6fEZKx57tiVb3N7j2bI7IyPzHcqyRf?=
 =?us-ascii?Q?ZkSWtHcjm0PPjbnEXWe22IoeXoOkN8evB6fJuVK5q0wJUThu/rSNwJZw4rlr?=
 =?us-ascii?Q?dNbVvsrDZ/W/xTcRv60+5CWWBVi9+eUpsUpV8zIWiq8wcDOtEEP7vo9cXBFd?=
 =?us-ascii?Q?VeSGZU28fDfp7mBU52No3y3VYaR4PVlICaMZnsKcxFlhhNKXu7BGcm9tEewG?=
 =?us-ascii?Q?lgV/+0v0z06c7Wm1GkY37l/1eGX/CL5MO3pFav2CldpqDyETBwGtFkdvtqby?=
 =?us-ascii?Q?O7J+45TLYvZI0//JpjYyuSk0vfZs3jRQbtJP9luXBLyXGxbxxiGARppznq2O?=
 =?us-ascii?Q?PyT9OfRg1Nh8+pC8PpJXauJ2v99T9IMxyrP4muABSIBdOSmFfkdhxM0YeVgg?=
 =?us-ascii?Q?P/TYsn/EOvtXPTKnGAkYoKVVOSTDC3dXIp0u?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 10:03:40.8519
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 1f298020-fef3-4aa0-606c-08dde61a2a41
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=[SATLEXMB03.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: IA1PR12MB6308

Users need to set "cpufreq=amd-cppc" in xen cmdline to enable amd-cppc driver,
which selects ACPI Collaborative Performance and Power Control (CPPC) on
supported AMD hardware to provide a finer grained frequency control mechanism.
`verbose` option can also be included to support verbose print.

When users setting "cpufreq=amd-cppc", a new amd-cppc driver
shall be registered and used. All hooks for amd-cppc driver are transiently
missing, and we temporarily make registration fail with -EOPNOTSUPP here. It
will be fixed along with the implementation.

New xen-pm internal flag XEN_PROCESSOR_PM_CPPC is introduced, to stand for
cpufreq driver in CPPC mode. We define XEN_PROCESSOR_PM_CPPC 0x100, as it is
the next value to use after 8-bits wide public xen-pm options. We also add
sanity check on compile time. All XEN_PROCESSOR_PM_xxx checking shall be
updated to consider "XEN_PROCESSOR_PM_CPPC" too.

XEN_PROCESSOR_PM_CPPC and XEN_PROCESSOR_PM_PX are firstly set when Xen parsed
relative driver signature from xen cmdline, and will become exclusive after
cpufreq driver registration. It is because that platform could not support
both or mixed mode (CPPC & legacy Px) operations, and only one cpufreq driver
could be registerd in Xen at one time, such as on AMD, it is either amd-cppc
or legacy P-states driver.
Xen rely on XEN_PROCESSOR_PM_CPPC flag to tell current cpufreq driver is in
CPPC mode, and accepts relative hypercall. It will neglect Px request and
yields success.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
---
v1 -> v2:
- Obey to alphabetic sorting and also strict it with CONFIG_AMD
- Remove unnecessary empty comment line
- Use __initconst_cf_clobber for pre-filled structure cpufreq_driver
- Make new switch-case code apply to Hygon CPUs too
- Change ENOSYS with EOPNOTSUPP
- Blanks around binary operator
- Change all amd_/-pstate defined values to amd_/-cppc
---
v2 -> v3
- refactor too long lines
- Make sure XEN_PROCESSOR_PM_PX and XEN_PROCESSOR_PM_CPPC incompatible flags
after cpufreq register registrantion
---
v3 -> v4:
- introduce XEN_PROCESSOR_PM_CPPC in xen internal header
- complement "Hygon" in log message
- remove unnecessary if()
- grow cpufreq_xen_opts[] array
---
v4 -> v5:
- remove XEN_PROCESSOR_PM_xxx flag sanitization from individual driver
- prefer ! over "== 0" in purely boolean contexts
- Blank line between non-fall-through case blocks
- add build-time checking between internal and public XEN_PROCESSOR_PM_*
values
- define XEN_PROCESSOR_PM_CPPC with 0x100, as it is the next value to use
after public interface, and public mask SIF_PM_MASK is 8 bits wide.
- as Dom0 will send the CPPC/Px data whenever it could, the return value shall
be 0 instead of -ENOSYS/EOPNOTSUP when platform doesn't require these data.
---
v5 -> v6:
- do not register the driver when all hooks are NULL
- refactor the subject and commit message
- move pruning of xen_processor_pmbits into generic space
- add comment and build-time check for XEN_PROCESSOR_PM_CPPC
---
v6 -> v7:
- reomove pointless initializer for "unsigned int i"
- move closing brace into its own line
- insertion always at the bottom
- change to use #ifdef CONFIG_AMD code wrapping
---
v7 -> v8:
- Blank line between declaration(s) and statement(s)
---
 docs/misc/xen-command-line.pandoc         |  7 ++-
 xen/arch/x86/acpi/cpufreq/Makefile        |  1 +
 xen/arch/x86/acpi/cpufreq/amd-cppc.c      | 59 +++++++++++++++++++
 xen/arch/x86/acpi/cpufreq/cpufreq.c       | 69 ++++++++++++++++++++++-
 xen/arch/x86/platform_hypercall.c         | 14 +++++
 xen/drivers/acpi/pm-op.c                  |  3 +-
 xen/drivers/cpufreq/cpufreq.c             | 13 ++++-
 xen/include/acpi/cpufreq/cpufreq.h        |  6 +-
 xen/include/acpi/cpufreq/processor_perf.h | 10 ++++
 9 files changed, 175 insertions(+), 7 deletions(-)
 create mode 100644 xen/arch/x86/acpi/cpufreq/amd-cppc.c

diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
index a75b6c9301..3916cc81f6 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -515,7 +515,7 @@ If set, force use of the performance counters for oprofile, rather than detectin
 available support.
 
 ### cpufreq
-> `= none | {{ <boolean> | xen } { [:[powersave|performance|ondemand|userspace][,[<maxfreq>]][,[<minfreq>]]] } [,verbose]} | dom0-kernel | hwp[:[<hdc>][,verbose]]`
+> `= none | {{ <boolean> | xen } { [:[powersave|performance|ondemand|userspace][,[<maxfreq>]][,[<minfreq>]]] } [,verbose]} | dom0-kernel | hwp[:[<hdc>][,verbose]] | amd-cppc[:[verbose]]`
 
 > Default: `xen`
 
@@ -526,7 +526,7 @@ choice of `dom0-kernel` is deprecated and not supported by all Dom0 kernels.
 * `<maxfreq>` and `<minfreq>` are integers which represent max and min processor frequencies
   respectively.
 * `verbose` option can be included as a string or also as `verbose=<integer>`
-  for `xen`.  It is a boolean for `hwp`.
+  for `xen`.  It is a boolean for `hwp` and `amd-cppc`.
 * `hwp` selects Hardware-Controlled Performance States (HWP) on supported Intel
   hardware.  HWP is a Skylake+ feature which provides better CPU power
   management.  The default is disabled.  If `hwp` is selected, but hardware
@@ -534,6 +534,9 @@ choice of `dom0-kernel` is deprecated and not supported by all Dom0 kernels.
 * `<hdc>` is a boolean to enable Hardware Duty Cycling (HDC).  HDC enables the
   processor to autonomously force physical package components into idle state.
   The default is enabled, but the option only applies when `hwp` is enabled.
+* `amd-cppc` selects ACPI Collaborative Performance and Power Control (CPPC)
+  on supported AMD hardware to provide finer grained frequency control
+  mechanism. The default is disabled.
 
 There is also support for `;`-separated fallback options:
 `cpufreq=hwp;xen,verbose`.  This first tries `hwp` and falls back to `xen` if
diff --git a/xen/arch/x86/acpi/cpufreq/Makefile b/xen/arch/x86/acpi/cpufreq/Makefile
index e7dbe434a8..a2ba34bda0 100644
--- a/xen/arch/x86/acpi/cpufreq/Makefile
+++ b/xen/arch/x86/acpi/cpufreq/Makefile
@@ -1,4 +1,5 @@
 obj-$(CONFIG_INTEL) += acpi.o
+obj-$(CONFIG_AMD) += amd-cppc.o
 obj-y += cpufreq.o
 obj-$(CONFIG_INTEL) += hwp.o
 obj-$(CONFIG_AMD) += powernow.o
diff --git a/xen/arch/x86/acpi/cpufreq/amd-cppc.c b/xen/arch/x86/acpi/cpufreq/amd-cppc.c
new file mode 100644
index 0000000000..3377783f7e
--- /dev/null
+++ b/xen/arch/x86/acpi/cpufreq/amd-cppc.c
@@ -0,0 +1,59 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * amd-cppc.c - AMD Processor CPPC Frequency Driver
+ *
+ * Copyright (C) 2025 Advanced Micro Devices, Inc. All Rights Reserved.
+ *
+ * Author: Penny Zheng <penny.zheng@amd.com>
+ *
+ * AMD CPPC cpufreq driver introduces a new CPU performance scaling design
+ * for AMD processors using the ACPI Collaborative Performance and Power
+ * Control (CPPC) feature which provides finer grained frequency control range.
+ */
+
+#include <xen/domain.h>
+#include <xen/init.h>
+#include <xen/param.h>
+#include <acpi/cpufreq/cpufreq.h>
+
+static bool __init amd_cppc_handle_option(const char *s, const char *end)
+{
+    int ret;
+
+    ret = parse_boolean("verbose", s, end);
+    if ( ret >= 0 )
+    {
+        cpufreq_verbose = ret;
+        return true;
+    }
+
+    return false;
+}
+
+int __init amd_cppc_cmdline_parse(const char *s, const char *e)
+{
+    do {
+        const char *end = strpbrk(s, ",;");
+
+        if ( !amd_cppc_handle_option(s, end) )
+        {
+            printk(XENLOG_WARNING
+                   "cpufreq/amd-cppc: option '%.*s' not recognized\n",
+                   (int)((end ?: e) - s), s);
+
+            return -EINVAL;
+        }
+
+        s = end ? end + 1 : NULL;
+    } while ( s && s < e );
+
+    return 0;
+}
+
+int __init amd_cppc_register_driver(void)
+{
+    if ( !cpu_has_cppc )
+        return -ENODEV;
+
+    return -EOPNOTSUPP;
+}
diff --git a/xen/arch/x86/acpi/cpufreq/cpufreq.c b/xen/arch/x86/acpi/cpufreq/cpufreq.c
index e227376bab..94e8e11c15 100644
--- a/xen/arch/x86/acpi/cpufreq/cpufreq.c
+++ b/xen/arch/x86/acpi/cpufreq/cpufreq.c
@@ -131,12 +131,14 @@ static int __init cf_check cpufreq_driver_init(void)
 
     if ( cpufreq_controller == FREQCTL_xen )
     {
+        unsigned int i;
+
         ret = -ENOENT;
 
         switch ( boot_cpu_data.x86_vendor )
         {
         case X86_VENDOR_INTEL:
-            for ( unsigned int i = 0; i < cpufreq_xen_cnt; i++ )
+            for ( i = 0; i < cpufreq_xen_cnt; i++ )
             {
                 switch ( cpufreq_xen_opts[i] )
                 {
@@ -151,6 +153,11 @@ static int __init cf_check cpufreq_driver_init(void)
                 case CPUFREQ_none:
                     ret = 0;
                     break;
+
+                default:
+                    printk(XENLOG_WARNING
+                           "Unsupported cpufreq driver for vendor Intel\n");
+                    break;
                 }
 
                 if ( !ret || ret == -EBUSY )
@@ -160,13 +167,71 @@ static int __init cf_check cpufreq_driver_init(void)
 
         case X86_VENDOR_AMD:
         case X86_VENDOR_HYGON:
-            ret = IS_ENABLED(CONFIG_AMD) ? powernow_register_driver() : -ENODEV;
+#ifdef CONFIG_AMD
+            for ( i = 0; i < cpufreq_xen_cnt; i++ )
+            {
+                switch ( cpufreq_xen_opts[i] )
+                {
+                case CPUFREQ_xen:
+                    ret = powernow_register_driver();
+                    break;
+
+                case CPUFREQ_amd_cppc:
+                    ret = amd_cppc_register_driver();
+                    break;
+
+                case CPUFREQ_none:
+                    ret = 0;
+                    break;
+
+                default:
+                    printk(XENLOG_WARNING
+                           "Unsupported cpufreq driver for vendor AMD or Hygon\n");
+                    break;
+                }
+
+                if ( !ret || ret == -EBUSY )
+                    break;
+            }
+#else
+            ret = -ENODEV;
+#endif /* CONFIG_AMD */
             break;
 
         default:
             printk(XENLOG_ERR "Cpufreq: unsupported x86 vendor\n");
             break;
         }
+
+        /*
+         * After successful cpufreq driver registeration, XEN_PROCESSOR_PM_CPPC
+         * and XEN_PROCESSOR_PM_PX shall become exclusive flags.
+         */
+        if ( !ret )
+        {
+            ASSERT(i < cpufreq_xen_cnt);
+            switch ( cpufreq_xen_opts[i] )
+            {
+            case CPUFREQ_amd_cppc:
+                xen_processor_pmbits &= ~XEN_PROCESSOR_PM_PX;
+                break;
+
+            case CPUFREQ_hwp:
+            case CPUFREQ_xen:
+                xen_processor_pmbits &= ~XEN_PROCESSOR_PM_CPPC;
+                break;
+
+            default:
+                break;
+            }
+        }
+        else if ( ret != -EBUSY )
+            /*
+             * No cpufreq driver gets registered, clear both
+             * XEN_PROCESSOR_PM_CPPC and XEN_PROCESSOR_PM_PX
+             */
+             xen_processor_pmbits &= ~(XEN_PROCESSOR_PM_CPPC |
+                                       XEN_PROCESSOR_PM_PX);
     }
 
     return ret;
diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hypercall.c
index fafc176475..79bb99e0b6 100644
--- a/xen/arch/x86/platform_hypercall.c
+++ b/xen/arch/x86/platform_hypercall.c
@@ -546,6 +546,8 @@ ret_t do_platform_op(
                 ret = 0;
                 break;
             }
+            /* Xen doesn't support mixed mode */
+            ASSERT(!(xen_processor_pmbits & XEN_PROCESSOR_PM_CPPC));
 
             ret = set_px_pminfo(op->u.set_pminfo.id, &op->u.set_pminfo.u.perf);
             break;
@@ -578,6 +580,18 @@ ret_t do_platform_op(
         }
 
         case XEN_PM_CPPC:
+            if ( !(xen_processor_pmbits & XEN_PROCESSOR_PM_CPPC) )
+            {
+                /*
+                 * Neglect CPPC-info when registered cpufreq driver
+                 * isn't in CPPC mode
+                 */
+                ret = 0;
+                break;
+            }
+            /* Xen doesn't support mixed mode */
+            ASSERT(!(xen_processor_pmbits & XEN_PROCESSOR_PM_PX));
+
             ret = set_cppc_pminfo(op->u.set_pminfo.id,
                                   &op->u.set_pminfo.u.cppc_data);
             break;
diff --git a/xen/drivers/acpi/pm-op.c b/xen/drivers/acpi/pm-op.c
index e3b5c8bcaa..2f516e62b1 100644
--- a/xen/drivers/acpi/pm-op.c
+++ b/xen/drivers/acpi/pm-op.c
@@ -352,7 +352,8 @@ int do_pm_op(struct xen_sysctl_pm_op *op)
     switch ( op->cmd & PM_PARA_CATEGORY_MASK )
     {
     case CPUFREQ_PARA:
-        if ( !(xen_processor_pmbits & XEN_PROCESSOR_PM_PX) )
+        if ( !(xen_processor_pmbits & (XEN_PROCESSOR_PM_PX |
+                                       XEN_PROCESSOR_PM_CPPC)) )
             return -ENODEV;
         if ( !pmpt || !(pmpt->init & (XEN_PX_INIT | XEN_CPPC_INIT)) )
             return -EINVAL;
diff --git a/xen/drivers/cpufreq/cpufreq.c b/xen/drivers/cpufreq/cpufreq.c
index c6ce31c0ac..52b7ff71ad 100644
--- a/xen/drivers/cpufreq/cpufreq.c
+++ b/xen/drivers/cpufreq/cpufreq.c
@@ -65,7 +65,7 @@ LIST_HEAD_READ_MOSTLY(cpufreq_governor_list);
 /* set xen as default cpufreq */
 enum cpufreq_controller cpufreq_controller = FREQCTL_xen;
 
-enum cpufreq_xen_opt __initdata cpufreq_xen_opts[2] = { [0] = CPUFREQ_xen };
+enum cpufreq_xen_opt __initdata cpufreq_xen_opts[3] = { [0] = CPUFREQ_xen };
 unsigned int __initdata cpufreq_xen_cnt = 1;
 
 static int __init cpufreq_cmdline_parse(const char *s, const char *e);
@@ -99,6 +99,10 @@ static int __init handle_cpufreq_cmdline(enum cpufreq_xen_opt option)
         xen_processor_pmbits |= XEN_PROCESSOR_PM_PX;
         break;
 
+    case CPUFREQ_amd_cppc:
+        xen_processor_pmbits |= XEN_PROCESSOR_PM_CPPC;
+        break;
+
     default:
         ASSERT_UNREACHABLE();
         ret = -EINVAL;
@@ -162,6 +166,13 @@ static int __init cf_check setup_cpufreq_option(const char *str)
             if ( !ret && arg[0] && arg[1] )
                 ret = hwp_cmdline_parse(arg + 1, end);
         }
+        else if ( IS_ENABLED(CONFIG_AMD) && choice < 0 &&
+                  !cmdline_strcmp(str, "amd-cppc") )
+        {
+            ret = handle_cpufreq_cmdline(CPUFREQ_amd_cppc);
+            if ( !ret && arg[0] && arg[1] )
+                ret = amd_cppc_cmdline_parse(arg + 1, end);
+        }
         else
             ret = -EINVAL;
 
diff --git a/xen/include/acpi/cpufreq/cpufreq.h b/xen/include/acpi/cpufreq/cpufreq.h
index fd530632b4..5d4881eea8 100644
--- a/xen/include/acpi/cpufreq/cpufreq.h
+++ b/xen/include/acpi/cpufreq/cpufreq.h
@@ -26,8 +26,9 @@ enum cpufreq_xen_opt {
     CPUFREQ_none,
     CPUFREQ_xen,
     CPUFREQ_hwp,
+    CPUFREQ_amd_cppc,
 };
-extern enum cpufreq_xen_opt cpufreq_xen_opts[2];
+extern enum cpufreq_xen_opt cpufreq_xen_opts[3];
 extern unsigned int cpufreq_xen_cnt;
 struct cpufreq_governor;
 
@@ -272,4 +273,7 @@ int set_hwp_para(struct cpufreq_policy *policy,
 
 int acpi_cpufreq_register(void);
 
+int amd_cppc_cmdline_parse(const char *s, const char *e);
+int amd_cppc_register_driver(void);
+
 #endif /* __XEN_CPUFREQ_PM_H__ */
diff --git a/xen/include/acpi/cpufreq/processor_perf.h b/xen/include/acpi/cpufreq/processor_perf.h
index e6576314f0..0a87bc0384 100644
--- a/xen/include/acpi/cpufreq/processor_perf.h
+++ b/xen/include/acpi/cpufreq/processor_perf.h
@@ -5,6 +5,16 @@
 #include <public/sysctl.h>
 #include <xen/acpi.h>
 
+/*
+ * Internal xen-pm options
+ * They are extension to public xen-pm options (XEN_PROCESSOR_PM_xxx) defined
+ * in public/platform.h, guarded by SIF_PM_MASK
+ */
+#define XEN_PROCESSOR_PM_CPPC   0x100
+#if XEN_PROCESSOR_PM_CPPC & MASK_EXTR(~0, SIF_PM_MASK)
+# error "XEN_PROCESSOR_PM_CPPC shall not occupy bits reserved for public xen-pm options"
+#endif
+
 #define XEN_CPPC_INIT 0x40000000U
 #define XEN_PX_INIT   0x80000000U
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 10:03:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 10:03:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098147.1452292 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urZU4-0006ZU-Gf; Thu, 28 Aug 2025 10:03:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098147.1452292; Thu, 28 Aug 2025 10:03:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urZU4-0006Z6-Cv; Thu, 28 Aug 2025 10:03:56 +0000
Received: by outflank-mailman (input) for mailman id 1098147;
 Thu, 28 Aug 2025 10:03:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ityt=3I=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1urZU3-0005cC-Jz
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 10:03:55 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20622.outbound.protection.outlook.com
 [2a01:111:f403:2416::622])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4dc98375-83f6-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 12:03:54 +0200 (CEST)
Received: from MN2PR17CA0012.namprd17.prod.outlook.com (2603:10b6:208:15e::25)
 by DS4PR12MB9562.namprd12.prod.outlook.com (2603:10b6:8:27e::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Thu, 28 Aug
 2025 10:03:46 +0000
Received: from BL6PEPF0001AB59.namprd02.prod.outlook.com
 (2603:10b6:208:15e:cafe::eb) by MN2PR17CA0012.outlook.office365.com
 (2603:10b6:208:15e::25) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.21 via Frontend Transport; Thu,
 28 Aug 2025 10:03:45 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 BL6PEPF0001AB59.mail.protection.outlook.com (10.167.241.11) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Thu, 28 Aug 2025 10:03:45 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) 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; Thu, 28 Aug
 2025 05:03:44 -0500
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb09.amd.com (10.181.42.218) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.2.1748.10; Thu, 28 Aug 2025 03:03:41 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4dc98375-83f6-11f0-aeb2-fb57b961d000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Y00EPWuJewgLz3F0d+rXZYTdrRfQaVOriL1I2vP4ZSJmSWqda9nxuwdluwoSLBgnSVwriY1F0kN5+KE/i3t93AHnGHYeB1jWgKjlvvz8N9R47Dd2MtuOv//hV8ncg/CkCtcberTYl8xqRa5WkmB2NOefrfWxRMBaT4Kpv0yXunfV1JeWexP++mIlkV7z7OXQtTm030uZNPM2vxV7Zt+VMriUu2/+eLvMghWPz6ojeYJ/EjsbITuWBEUZFAhnsWsspwg1Z/ZoQxS6zpJvF5BkZ3BcdedZ/aNF/aDkJKVnvK01d3EeT7a9KAdiwCvWlA1Z6ZsgGDDkeHA4+u2c/EpX7Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=JrV4RgW5JNSPWiJYFOgw2plxIEpaWhTla8i2lcxDHLQ=;
 b=G7Mqe99OGcJj2yeGwEuFKYe7dMTZHDnYIDoYyqZO731Xb5n42g/TZE4Pd4yFst060dg/cxA5ebee9freHFPf8kT8ZGBXSM688fB4Pyzlrzn3YVnva3hkfchSuN0HmDr1rdfCtiUnQr55iLVqiVeik+aY7+HoNfVuRjAhPZ8ilhqGi5eCTYgocTWWrdUu9wNNtPsyUrJqg3JfQGxJV13sudUZrJb74P9KsyQbH+OmkdURtYNq00KtcAyhQ7AXj7DRJUEqcOZJtp6C8SrFieHURsib5FrmJSgAeJ7aN+LSvIroSmQxBBP6JZOQrlfeLPdsW2cYmqo939aEb+YErhzvPA==
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=JrV4RgW5JNSPWiJYFOgw2plxIEpaWhTla8i2lcxDHLQ=;
 b=PQCwrsNsHd9R5VV9pxBZln37Ti8xJicOFooITmgVOlOLvfn7M3XJRVBmk52TBw4ofeLUqWHmZgayc07/HdHIZSAlWGEuCkRBRm/gLTno/xhPIergINfhk94+z9+MZdMn6O7cHwF2MNPDy/nMM3PtUAlYdsMJ07Snumc96IHpfDc=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v8 3/8] xen/cpufreq: implement amd-cppc driver for CPPC in passive mode
Date: Thu, 28 Aug 2025 18:03:01 +0800
Message-ID: <20250828100306.1776031-4-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
In-Reply-To: <20250828100306.1776031-1-Penny.Zheng@amd.com>
References: <20250828100306.1776031-1-Penny.Zheng@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To satlexmb09.amd.com
 (10.181.42.218)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB59:EE_|DS4PR12MB9562:EE_
X-MS-Office365-Filtering-Correlation-Id: 3a015a96-eb5f-496e-1d85-08dde61a2d3c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?UVhRNXkwWXVNVGpsdFNsWHBIdEdybXVwR0NzQ0VrRjJQMHkvRjdBZ2J5MERB?=
 =?utf-8?B?djdJcWZvd1BZL2RuRzFLWGttcHdISCtRcmJ4N2Y5TTZpclVhOXlRazRTU1l0?=
 =?utf-8?B?ZUNyZk9pOHl1bFE3RGVJUWFxT3RBcDREeUlsb2MwNmFTYWxPb01SenM0YmhT?=
 =?utf-8?B?UDNZeERSaEloSDA1eS80Q2xFZnFoTmxGSU5xRXdoRS9uR1Q4NUtCWlNFWVlC?=
 =?utf-8?B?VTd6SlZUb1ZTT1BrMXQrQzgvSmVVMk9qVGptUDZ5dEtEdU5CMkRhUVhrdmh3?=
 =?utf-8?B?d2dEeDBBemZRb3hkM3pVYVBwdjFDME5YMHBoOFgyUEpiS25FbklrTkdReUd4?=
 =?utf-8?B?Wm9VdWJNajVEUWx1UU1WWFlOOTVpUWpRbGRvNXRvaTcvWFR1cjdVaWFtZnJH?=
 =?utf-8?B?aUtUOG9qaEFyd1VhZ3BIOElqMG13WmdoWkl3WlM0US9pNzNIVm10aG0zUldH?=
 =?utf-8?B?dXFUcTJOSEczVWZVSHlHNWI0L084WlVEZHRtS2x4K3VUbkxiVmRBTUF5WUNX?=
 =?utf-8?B?UUJaK0V0c2dCZG50dXJxenZEWTlTcXRZNWtYS3Q3VVFNYk5RbStKd2l6Q3Vy?=
 =?utf-8?B?QzNXTlk2Y2tvVWFmNVZnekF0SlExMThyZkZINk9JVGo5RXoxNEYwV3EwUkpT?=
 =?utf-8?B?QlJRYisxeEtiMFBtTlp5elNERnNVTG5TSjIyYThtWWxaS3RkSGozMlo0VHZV?=
 =?utf-8?B?VjAxZFJLQ0RabGQzYVdFK1ZjV3RDZlA2SzVpZmZaZGtPeGUxbWxYU01zNjZu?=
 =?utf-8?B?WkVNYk00bjV1cHU0cXQvSHNJd3pXOW4wdXplOFVnKzF3V0s4Y1N3VFBkSTYr?=
 =?utf-8?B?MjJGcG1oUFhoUVB5Y1cyeTRXK2k2eWZsQ0R1cFZtNk1OOXZDTHNhQVNzMFFl?=
 =?utf-8?B?bE5iUE1zZkJKWnM5ekFVdnBGZEFHS0EyV3ZsR0djQ0QyTllWMnB1bnJKWTBl?=
 =?utf-8?B?M2UxSDl6bUE1SFdUemduTyttQk9nRC83NzZGSkJOd1RxYWdtT1pEYTZ1clJX?=
 =?utf-8?B?WTBjM2R1N0QxQmxXUWlNNUN3emVYOGk0bUthYUdJc044blNjSUFmYjd6UWkr?=
 =?utf-8?B?ZUVkeWE0aHZXUmFEbzJNa2p2d1RsNm1ja1NWQnNKNHNWbFFKcWlVdlYxRCs4?=
 =?utf-8?B?b0krN1FJalJod2NNV3RIOTJGbjB4T09Db1V0ZGdsaUh2WTFVYnpGbHhTVDlz?=
 =?utf-8?B?WG5oRzdFSzNnKzJRemRQL2hCWkRpZVFpekM4cGd6STdxc3JCUzBMcWhqNlcx?=
 =?utf-8?B?Vzk5U0J1T295ZTlaTUhuY3JwdTE1NGdHZ2x4eFM5R0FZMFErSVRTQmROaHU0?=
 =?utf-8?B?SlZsRHNlRlBmME9nV0xwNGZGMExKVFNMUVpxOVZ0UUMrRGdkcU1OL3dpNHZK?=
 =?utf-8?B?M25TN0VpaCs2N2d3TEI1QUUwR1FDK1N1OE01RDM2UGFEZTRPZ2FHeXArc0xa?=
 =?utf-8?B?LzA0ejNsanRaRk9RSmdLMzc5aWxvQlpydTI5L1N1eUI3Q0k0MFJsVWNjK1Nz?=
 =?utf-8?B?WTZ0dkZaNnJKOXFydFVjUzRvUFNSdlI2OWg4K2YrclRPUURhTjRHb1F5N2x4?=
 =?utf-8?B?cHJrM21NbHJEMGlUMGZlRkxWZmpqazd4ZSt6MldaOWlGUU1SSnJ3Y2hLTTN4?=
 =?utf-8?B?SGpCNDE5L2tmNzdaK2hHR0d1cFVreDg3Q1NJblVjeWF0RzhMTnN0Q2FHUlBh?=
 =?utf-8?B?NkttMVBwZVJZSGR4OUkycitXV3VzejAyWGNDb0Z4UTlqcUN2UDJBVGJ1djlM?=
 =?utf-8?B?VGdIdzNKWGRZZ2NjbnB4bUp5c1BRRTkwMnpxQUhzQ0FIbXRxa0p6WHBOMEtW?=
 =?utf-8?B?Z1grK2g0M1FSRUdkTGtHVG8vdVJlK2haVUlhcVdUMm5Ic0k0a2twQXNRZThO?=
 =?utf-8?B?cFNWZ2ZsNnowM1h1Nmp3bTZ1c2FLOUczdm5veGc1b3NtUUYvb3ZEM2NvdVdt?=
 =?utf-8?B?RnNsd3ZEYnhUSDR6ZXZwUVROT2NtUFVFZEdqRmFUZlFSd2M1dG5uZ0krOGRm?=
 =?utf-8?B?aGU3cWNhZ2pSZ3g3ZGhtaXhxL3NYNWNYVStmMkcwRzZNbnJ3SU1MYzdRTXR0?=
 =?utf-8?Q?Ry3QLS?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 10:03:45.8492
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3a015a96-eb5f-496e-1d85-08dde61a2d3c
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF0001AB59.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR12MB9562

amd-cppc is the AMD CPU performance scaling driver that introduces a
new CPU frequency control mechanism. The new mechanism is based on
Collaborative Processor Performance Control (CPPC) which is a finer grain
frequency management than legacy ACPI hardware P-States.
Current AMD CPU platforms are using the ACPI P-states driver to
manage CPU frequency and clocks with switching only in 3 P-states, while the
new amd-cppc allows a more flexible, low-latency interface for Xen
to directly communicate the performance hints to hardware.

"amd-cppc" driver is responsible for implementing CPPC in passive mode, which
still leverages Xen governors such as *ondemand*, *performance*, etc, to
calculate the performance hints. In the future, we will introduce an advanced
active mode to enable autonomous performence level selection.

Field epp, energy performance preference, which only has meaning when active
mode is enabled and will be introduced later in details, so we read
pre-defined BIOS value for it in passive mode.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
---
v1 -> v2:
- re-construct union caps and req to have anonymous struct instead
- avoid "else" when the earlier if() ends in an unconditional control flow statement
- Add check to avoid chopping off set bits from cast
- make pointers pointer-to-const wherever possible
- remove noisy log
- exclude families before 0x17 before CPPC-feature MSR op
- remove useless variable helpers
- use xvzalloc and XVFREE
- refactor error handling as ENABLE bit can only be cleared by reset
---
v2 -> v3:
- Move all MSR-definations to msr-index.h and follow the required style
- Refactor opening figure braces for struct/union
- Sort overlong lines throughout the series
- Make offset/res int covering underflow scenario
- Error out when amd_max_freq_mhz isn't set
- Introduce amd_get_freq(name) macro to decrease redundancy
- Supported CPU family checked ahead of smp-function
- Nominal freq shall be checked between the [min, max]
- Use APERF/MPREF to calculate current frequency
- Use amd_cppc_cpufreq_cpu_exit() to tidy error path
---
v3 -> v4:
- verbose print shall come with a CPU number
- deal with res <= 0 in amd_cppc_khz_to_perf()
- introduce a single helper amd_get_lowest_or_nominal_freq() to cover both
lowest and nominal scenario
- reduce abuse of wrmsr_safe()/rdmsr_safe() with wrmsrl()/rdmsrl()
- move cf_check from amd_cppc_write_request() to amd_cppc_write_request_msrs()
- add comment to explain why setting non_linear_lowest in passive mode
- add check to ensure perf values in
lowest <= non_linear_lowest <= nominal <= highset
- refactor comment for "data->err != 0" scenario
- use "data->err" instead of -ENODEV
- add U suffixes for all msr macro
---
v4 -> v5:
- all freq-values shall be unsigned int type
- remove shortcuts as it is rarely taken
- checking cpc.nominal_mhz and cpc.lowest_mhz are non-zero values is enough
- drop the explicit type cast
- null pointer check is in no need for internal functions
- change amd_get_lowest_or_nominal_freq() to amd_get_cpc_freq()
- clarifying function-wide that the calculated frequency result is to be in kHz
- use array notation
- with cpu_has_cppc check, no need to do cpu family check
---
v5 -> v6
- replace "AMD_CPPC" with "AMD-CPPC" in message
- add equation(mul,div) non-zero check
- replace -EINVAL with -EOPNOTSUPP
- refactor comment
---
v6 -> v7
- used > in place of !=, to not only serve a doc aspect, but also allow to
drop one part
- unify with UINT8_MAX
- return -ERANGE as we reject perf values of 0 as invalid
- replace uint32_t with unsigned int
- Move some epp introduction here, otherwise we will mis-handle this field here
by always clearing it
---
v7 -> v8:
- refine message text by removing 0
---
 xen/arch/x86/acpi/cpufreq/amd-cppc.c | 418 ++++++++++++++++++++++++++-
 xen/arch/x86/cpu/amd.c               |   8 +-
 xen/arch/x86/include/asm/amd.h       |   2 +
 xen/arch/x86/include/asm/msr-index.h |   6 +
 xen/include/public/sysctl.h          |   1 +
 5 files changed, 430 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/acpi/cpufreq/amd-cppc.c b/xen/arch/x86/acpi/cpufreq/amd-cppc.c
index 3377783f7e..5b99b86fb7 100644
--- a/xen/arch/x86/acpi/cpufreq/amd-cppc.c
+++ b/xen/arch/x86/acpi/cpufreq/amd-cppc.c
@@ -14,7 +14,98 @@
 #include <xen/domain.h>
 #include <xen/init.h>
 #include <xen/param.h>
+#include <xen/percpu.h>
+#include <xen/xvmalloc.h>
 #include <acpi/cpufreq/cpufreq.h>
+#include <asm/amd.h>
+#include <asm/msr.h>
+
+#define amd_cppc_err(cpu, fmt, args...)                             \
+    printk(XENLOG_ERR "AMD-CPPC: CPU%u error: " fmt, cpu, ## args)
+#define amd_cppc_warn(cpu, fmt, args...)                            \
+    printk(XENLOG_WARNING "AMD-CPPC: CPU%u warning: " fmt, cpu, ## args)
+#define amd_cppc_verbose(cpu, fmt, args...)                         \
+({                                                                  \
+    if ( cpufreq_verbose )                                          \
+        printk(XENLOG_DEBUG "AMD-CPPC: CPU%u " fmt, cpu, ## args);  \
+})
+
+/*
+ * Field highest_perf, nominal_perf, lowest_nonlinear_perf, and lowest_perf
+ * contain the values read from CPPC capability MSR. They represent the limits
+ * of managed performance range as well as the dynamic capability, which may
+ * change during processor operation
+ * Field highest_perf represents highest performance, which is the absolute
+ * maximum performance an individual processor may reach, assuming ideal
+ * conditions. This performance level may not be sustainable for long
+ * durations and may only be achievable if other platform components
+ * are in a specific state; for example, it may require other processors be
+ * in an idle state. This would be equivalent to the highest frequencies
+ * supported by the processor.
+ * Field nominal_perf represents maximum sustained performance level of the
+ * processor, assuming ideal operating conditions. All cores/processors are
+ * expected to be able to sustain their nominal performance state
+ * simultaneously.
+ * Field lowest_nonlinear_perf represents Lowest Nonlinear Performance, which
+ * is the lowest performance level at which nonlinear power savings are
+ * achieved. Above this threshold, lower performance levels should be
+ * generally more energy efficient than higher performance levels. So in
+ * traditional terms, this represents the P-state range of performance levels.
+ * Field lowest_perf represents the absolute lowest performance level of the
+ * platform. Selecting it may cause an efficiency penalty but should reduce
+ * the instantaneous power consumption of the processor. So in traditional
+ * terms, this represents the T-state range of performance levels.
+ *
+ * Field max_perf, min_perf, des_perf store the values for CPPC request MSR.
+ * Software passes performance goals through these fields.
+ * Field max_perf conveys the maximum performance level at which the platform
+ * may run. And it may be set to any performance value in the range
+ * [lowest_perf, highest_perf], inclusive.
+ * Field min_perf conveys the minimum performance level at which the platform
+ * may run. And it may be set to any performance value in the range
+ * [lowest_perf, highest_perf], inclusive but must be less than or equal to
+ * max_perf.
+ * Field des_perf conveys performance level Xen governor is requesting. And it
+ * may be set to any performance value in the range [min_perf, max_perf],
+ * inclusive.
+ * Field epp represents energy performance preference, which only has meaning
+ * when active mode is enabled.
+ */
+struct amd_cppc_drv_data
+{
+    const struct xen_processor_cppc *cppc_data;
+    union {
+        uint64_t raw;
+        struct {
+            unsigned int lowest_perf:8;
+            unsigned int lowest_nonlinear_perf:8;
+            unsigned int nominal_perf:8;
+            unsigned int highest_perf:8;
+            unsigned int :32;
+        };
+    } caps;
+    union {
+        uint64_t raw;
+        struct {
+            unsigned int max_perf:8;
+            unsigned int min_perf:8;
+            unsigned int des_perf:8;
+            unsigned int epp:8;
+            unsigned int :32;
+        };
+    } req;
+
+    int err;
+};
+
+static DEFINE_PER_CPU_READ_MOSTLY(struct amd_cppc_drv_data *,
+                                  amd_cppc_drv_data);
+/*
+ * Core max frequency read from PstateDef as anchor point
+ * for freq-to-perf transition
+ */
+static DEFINE_PER_CPU_READ_MOSTLY(unsigned int, pxfreq_mhz);
+static DEFINE_PER_CPU_READ_MOSTLY(uint8_t, epp_init);
 
 static bool __init amd_cppc_handle_option(const char *s, const char *end)
 {
@@ -50,10 +141,335 @@ int __init amd_cppc_cmdline_parse(const char *s, const char *e)
     return 0;
 }
 
+/*
+ * If CPPC lowest_freq and nominal_freq registers are exposed then we can
+ * use them to convert perf to freq and vice versa. The conversion is
+ * extrapolated as an linear function passing by the 2 points:
+ *  - (Low perf, Low freq)
+ *  - (Nominal perf, Nominal freq)
+ * Parameter freq is always in kHz.
+ */
+static int amd_cppc_khz_to_perf(const struct amd_cppc_drv_data *data,
+                                unsigned int freq, uint8_t *perf)
+{
+    const struct xen_processor_cppc *cppc_data = data->cppc_data;
+    unsigned int mul, div;
+    int offset = 0, res;
+
+    if ( cppc_data->cpc.lowest_mhz &&
+         data->caps.nominal_perf > data->caps.lowest_perf &&
+         cppc_data->cpc.nominal_mhz > cppc_data->cpc.lowest_mhz )
+    {
+        mul = data->caps.nominal_perf - data->caps.lowest_perf;
+        div = cppc_data->cpc.nominal_mhz - cppc_data->cpc.lowest_mhz;
+
+        /*
+         * We don't need to convert to kHz for computing offset and can
+         * directly use nominal_mhz and lowest_mhz as the division
+         * will remove the frequency unit.
+         */
+        offset = data->caps.nominal_perf -
+                 (mul * cppc_data->cpc.nominal_mhz) / div;
+    }
+    else
+    {
+        /* Read Processor Max Speed(MHz) as anchor point */
+        mul = data->caps.highest_perf;
+        div = this_cpu(pxfreq_mhz);
+        if ( !div )
+            return -EOPNOTSUPP;
+    }
+
+    res = offset + (mul * freq) / (div * 1000);
+    if ( res > UINT8_MAX )
+    {
+        printk_once(XENLOG_WARNING
+                    "Perf value exceeds maximum value 255: %d\n", res);
+        *perf = UINT8_MAX;
+        return 0;
+    }
+    if ( res <= 0 )
+    {
+        printk_once(XENLOG_WARNING
+                    "Perf value smaller than minimum value: %d\n", res);
+        return -ERANGE;
+    }
+    *perf = res;
+
+    return 0;
+}
+
+/*
+ * _CPC may define nominal frequecy and lowest frequency, if not, use
+ * Processor Max Speed as anchor point to calculate.
+ * Output freq stores cpc frequency in kHz
+ */
+static int amd_get_cpc_freq(const struct amd_cppc_drv_data *data,
+                            unsigned int cpc_mhz, uint8_t perf,
+                            unsigned int *freq)
+{
+    unsigned int mul, div, res;
+
+    if ( cpc_mhz )
+    {
+        /* Switch to kHz */
+        *freq = cpc_mhz * 1000;
+        return 0;
+    }
+
+    /* Read Processor Max Speed(MHz) as anchor point */
+    mul = this_cpu(pxfreq_mhz);
+    if ( !mul )
+        return -EOPNOTSUPP;
+    div = data->caps.highest_perf;
+    res = (mul * perf * 1000) / div;
+    if ( unlikely(!res) )
+        return -EOPNOTSUPP;
+
+    return 0;
+}
+
+/* Output max_freq stores calculated maximum frequency in kHz */
+static int amd_get_max_freq(const struct amd_cppc_drv_data *data,
+                            unsigned int *max_freq)
+{
+    unsigned int nom_freq = 0;
+    int res;
+
+    res = amd_get_cpc_freq(data, data->cppc_data->cpc.nominal_mhz,
+                           data->caps.nominal_perf, &nom_freq);
+    if ( res )
+        return res;
+
+    *max_freq = (data->caps.highest_perf * nom_freq) / data->caps.nominal_perf;
+
+    return 0;
+}
+
+static int cf_check amd_cppc_cpufreq_verify(struct cpufreq_policy *policy)
+{
+    cpufreq_verify_within_limits(policy, policy->cpuinfo.min_freq,
+                                 policy->cpuinfo.max_freq);
+
+    return 0;
+}
+
+static void cf_check amd_cppc_write_request_msrs(void *info)
+{
+    const struct amd_cppc_drv_data *data = info;
+
+    wrmsrl(MSR_AMD_CPPC_REQ, data->req.raw);
+}
+
+static void amd_cppc_write_request(unsigned int cpu, uint8_t min_perf,
+                                   uint8_t des_perf, uint8_t max_perf,
+                                   uint8_t epp)
+{
+    struct amd_cppc_drv_data *data = per_cpu(amd_cppc_drv_data, cpu);
+    uint64_t prev = data->req.raw;
+
+    data->req.min_perf = min_perf;
+    data->req.max_perf = max_perf;
+    data->req.des_perf = des_perf;
+    data->req.epp = epp;
+
+    if ( prev == data->req.raw )
+        return;
+
+    on_selected_cpus(cpumask_of(cpu), amd_cppc_write_request_msrs, data, 1);
+}
+
+static int cf_check amd_cppc_cpufreq_target(struct cpufreq_policy *policy,
+                                            unsigned int target_freq,
+                                            unsigned int relation)
+{
+    unsigned int cpu = policy->cpu;
+    const struct amd_cppc_drv_data *data = per_cpu(amd_cppc_drv_data, cpu);
+    uint8_t des_perf;
+    int res;
+
+    if ( unlikely(!target_freq) )
+        return 0;
+
+    res = amd_cppc_khz_to_perf(data, target_freq, &des_perf);
+    if ( res )
+        return res;
+
+    /*
+     * Having a performance level lower than the lowest nonlinear
+     * performance level, such as, lowest_perf <= perf <= lowest_nonliner_perf,
+     * may actually cause an efficiency penalty, So when deciding the min_perf
+     * value, we prefer lowest nonlinear performance over lowest performance.
+     */
+    amd_cppc_write_request(policy->cpu, data->caps.lowest_nonlinear_perf,
+                           des_perf, data->caps.highest_perf,
+                           /* Pre-defined BIOS value for passive mode */
+                           per_cpu(epp_init, policy->cpu));
+    return 0;
+}
+
+static void cf_check amd_cppc_init_msrs(void *info)
+{
+    struct cpufreq_policy *policy = info;
+    struct amd_cppc_drv_data *data = this_cpu(amd_cppc_drv_data);
+    uint64_t val;
+    unsigned int min_freq = 0, nominal_freq = 0, max_freq;
+
+    /* Package level MSR */
+    rdmsrl(MSR_AMD_CPPC_ENABLE, val);
+    /*
+     * Only when Enable bit is on, the hardware will calculate the processorâ€™s
+     * performance capabilities and initialize the performance level fields in
+     * the CPPC capability registers.
+     */
+    if ( !(val & AMD_CPPC_ENABLE) )
+    {
+        val |= AMD_CPPC_ENABLE;
+        wrmsrl(MSR_AMD_CPPC_ENABLE, val);
+    }
+
+    rdmsrl(MSR_AMD_CPPC_CAP1, data->caps.raw);
+
+    if ( data->caps.highest_perf == 0 || data->caps.lowest_perf == 0 ||
+         data->caps.nominal_perf == 0 || data->caps.lowest_nonlinear_perf == 0 ||
+         data->caps.lowest_perf > data->caps.lowest_nonlinear_perf ||
+         data->caps.lowest_nonlinear_perf > data->caps.nominal_perf ||
+         data->caps.nominal_perf > data->caps.highest_perf )
+    {
+        amd_cppc_err(policy->cpu,
+                     "Out of range values: highest(%u), lowest(%u), nominal(%u), lowest_nonlinear(%u)\n",
+                     data->caps.highest_perf, data->caps.lowest_perf,
+                     data->caps.nominal_perf, data->caps.lowest_nonlinear_perf);
+        goto err;
+    }
+
+    amd_process_freq(&cpu_data[policy->cpu],
+                     NULL, NULL, &this_cpu(pxfreq_mhz));
+
+    data->err = amd_get_cpc_freq(data, data->cppc_data->cpc.lowest_mhz,
+                                 data->caps.lowest_perf, &min_freq);
+    if ( data->err )
+        return;
+
+    data->err = amd_get_cpc_freq(data, data->cppc_data->cpc.nominal_mhz,
+                                 data->caps.nominal_perf, &nominal_freq);
+    if ( data->err )
+        return;
+
+    data->err = amd_get_max_freq(data, &max_freq);
+    if ( data->err )
+        return;
+
+    if ( min_freq > nominal_freq || nominal_freq > max_freq )
+    {
+        amd_cppc_err(policy->cpu,
+                     "min(%u), or max(%u), or nominal(%u) freq value is incorrect\n",
+                     min_freq, max_freq, nominal_freq);
+        goto err;
+    }
+
+    policy->min = min_freq;
+    policy->max = max_freq;
+
+    policy->cpuinfo.min_freq = min_freq;
+    policy->cpuinfo.max_freq = max_freq;
+    policy->cpuinfo.perf_freq = nominal_freq;
+    /*
+     * Set after policy->cpuinfo.perf_freq, as we are taking
+     * APERF/MPERF average frequency as current frequency.
+     */
+    policy->cur = cpufreq_driver_getavg(policy->cpu, GOV_GETAVG);
+
+    /* Store pre-defined BIOS value for passive mode */
+    rdmsrl(MSR_AMD_CPPC_REQ, val);
+    this_cpu(epp_init) = MASK_EXTR(val, AMD_CPPC_EPP_MASK);
+
+    return;
+
+ err:
+    /*
+     * No fallback shceme is available here, see more explanation at call
+     * site in amd_cppc_cpufreq_cpu_init().
+     */
+    data->err = -EINVAL;
+}
+
+/*
+ * AMD CPPC driver is different than legacy ACPI hardware P-State,
+ * which has a finer grain frequency range between the highest and lowest
+ * frequency. And boost frequency is actually the frequency which is mapped on
+ * highest performance ratio. The legacy P0 frequency is actually mapped on
+ * nominal performance ratio.
+ */
+static void amd_cppc_boost_init(struct cpufreq_policy *policy,
+                                const struct amd_cppc_drv_data *data)
+{
+    if ( data->caps.highest_perf <= data->caps.nominal_perf )
+        return;
+
+    policy->turbo = CPUFREQ_TURBO_ENABLED;
+}
+
+static int cf_check amd_cppc_cpufreq_cpu_exit(struct cpufreq_policy *policy)
+{
+    XVFREE(per_cpu(amd_cppc_drv_data, policy->cpu));
+
+    return 0;
+}
+
+static int cf_check amd_cppc_cpufreq_cpu_init(struct cpufreq_policy *policy)
+{
+    unsigned int cpu = policy->cpu;
+    struct amd_cppc_drv_data *data;
+
+    data = xvzalloc(struct amd_cppc_drv_data);
+    if ( !data )
+        return -ENOMEM;
+
+    data->cppc_data = &processor_pminfo[cpu]->cppc_data;
+
+    per_cpu(amd_cppc_drv_data, cpu) = data;
+
+    on_selected_cpus(cpumask_of(cpu), amd_cppc_init_msrs, policy, 1);
+
+    /*
+     * The enable bit is sticky, as we need to enable it at the very first
+     * begining, before CPPC capability values sanity check.
+     * If error path is taken effective, not only amd-cppc cpufreq core fails
+     * to initialize, but also we could not fall back to legacy P-states
+     * driver, irrespective of the command line specifying a fallback option.
+     */
+    if ( data->err )
+    {
+        amd_cppc_err(cpu, "Could not initialize cpufreq core in CPPC mode\n");
+        amd_cppc_cpufreq_cpu_exit(policy);
+        return data->err;
+    }
+
+    policy->governor = cpufreq_opt_governor ? : CPUFREQ_DEFAULT_GOVERNOR;
+
+    amd_cppc_boost_init(policy, data);
+
+    amd_cppc_verbose(policy->cpu,
+                     "CPU initialized with amd-cppc passive mode\n");
+
+    return 0;
+}
+
+static const struct cpufreq_driver __initconst_cf_clobber
+amd_cppc_cpufreq_driver =
+{
+    .name   = XEN_AMD_CPPC_DRIVER_NAME,
+    .verify = amd_cppc_cpufreq_verify,
+    .target = amd_cppc_cpufreq_target,
+    .init   = amd_cppc_cpufreq_cpu_init,
+    .exit   = amd_cppc_cpufreq_cpu_exit,
+};
+
 int __init amd_cppc_register_driver(void)
 {
     if ( !cpu_has_cppc )
         return -ENODEV;
 
-    return -EOPNOTSUPP;
+    return cpufreq_register_driver(&amd_cppc_cpufreq_driver);
 }
diff --git a/xen/arch/x86/cpu/amd.c b/xen/arch/x86/cpu/amd.c
index 567b992a9f..9767f63539 100644
--- a/xen/arch/x86/cpu/amd.c
+++ b/xen/arch/x86/cpu/amd.c
@@ -613,10 +613,10 @@ static unsigned int attr_const amd_parse_freq(unsigned int family,
 	return freq;
 }
 
-static void amd_process_freq(const struct cpuinfo_x86 *c,
-			     unsigned int *low_mhz,
-			     unsigned int *nom_mhz,
-			     unsigned int *hi_mhz)
+void amd_process_freq(const struct cpuinfo_x86 *c,
+		      unsigned int *low_mhz,
+		      unsigned int *nom_mhz,
+		      unsigned int *hi_mhz)
 {
 	unsigned int idx = 0, h;
 	uint64_t hi, lo, val;
diff --git a/xen/arch/x86/include/asm/amd.h b/xen/arch/x86/include/asm/amd.h
index 9c9599a622..72df42a6f6 100644
--- a/xen/arch/x86/include/asm/amd.h
+++ b/xen/arch/x86/include/asm/amd.h
@@ -173,5 +173,7 @@ extern bool amd_virt_spec_ctrl;
 bool amd_setup_legacy_ssbd(void);
 void amd_set_legacy_ssbd(bool enable);
 void amd_set_cpuid_user_dis(bool enable);
+void amd_process_freq(const struct cpuinfo_x86 *c, unsigned int *low_mhz,
+                      unsigned int *nom_mhz, unsigned int *hi_mhz);
 
 #endif /* __AMD_H__ */
diff --git a/xen/arch/x86/include/asm/msr-index.h b/xen/arch/x86/include/asm/msr-index.h
index 428d993ee8..6abf154887 100644
--- a/xen/arch/x86/include/asm/msr-index.h
+++ b/xen/arch/x86/include/asm/msr-index.h
@@ -241,6 +241,12 @@
 
 #define MSR_AMD_CSTATE_CFG                  0xc0010296U
 
+#define MSR_AMD_CPPC_CAP1                   0xc00102b0U
+#define MSR_AMD_CPPC_ENABLE                 0xc00102b1U
+#define  AMD_CPPC_ENABLE                    (_AC(1, ULL) << 0)
+#define MSR_AMD_CPPC_REQ                    0xc00102b3U
+#define  AMD_CPPC_EPP_MASK                  (_AC(0xff, ULL) << 24)
+
 /*
  * Legacy MSR constants in need of cleanup.  No new MSRs below this comment.
  */
diff --git a/xen/include/public/sysctl.h b/xen/include/public/sysctl.h
index aafa7fcf2b..aa29a5401c 100644
--- a/xen/include/public/sysctl.h
+++ b/xen/include/public/sysctl.h
@@ -453,6 +453,7 @@ struct xen_set_cppc_para {
     uint32_t activity_window;
 };
 
+#define XEN_AMD_CPPC_DRIVER_NAME "amd-cppc"
 #define XEN_HWP_DRIVER_NAME "hwp"
 
 /*
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 10:05:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 10:05:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098177.1452302 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urZVQ-0007sF-0O; Thu, 28 Aug 2025 10:05:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098177.1452302; Thu, 28 Aug 2025 10:05: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 1urZVP-0007s8-Th; Thu, 28 Aug 2025 10:05:19 +0000
Received: by outflank-mailman (input) for mailman id 1098177;
 Thu, 28 Aug 2025 10:05:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ityt=3I=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1urZVO-0007re-Lj
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 10:05:18 +0000
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on20612.outbound.protection.outlook.com
 [2a01:111:f403:2406::612])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7e673ea6-83f6-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 12:05:16 +0200 (CEST)
Received: from CH0PR04CA0048.namprd04.prod.outlook.com (2603:10b6:610:77::23)
 by SA0PR12MB4432.namprd12.prod.outlook.com (2603:10b6:806:98::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Thu, 28 Aug
 2025 10:05:09 +0000
Received: from CH1PEPF0000A34C.namprd04.prod.outlook.com
 (2603:10b6:610:77:cafe::fd) by CH0PR04CA0048.outlook.office365.com
 (2603:10b6:610:77::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.17 via Frontend Transport; Thu,
 28 Aug 2025 10:05:09 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH1PEPF0000A34C.mail.protection.outlook.com (10.167.244.6) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Thu, 28 Aug 2025 10:05:09 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) 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; Thu, 28 Aug
 2025 05:05:03 -0500
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb09.amd.com (10.181.42.218) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.2.1748.10; Thu, 28 Aug 2025 03:05:02 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7e673ea6-83f6-11f0-ae26-e363de0e7a9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tTuG5AONUt1+xtynw5AhCYGu/WoyI14yUehycG0SjLHyNIUXFcyMRhqmv+pvDzR7+eeTGhPUNDGw4QX7I2J4bx3T9bdLsWaeYyyyYxQeFKaFIQRF67wqgAyRwbVY85brXJOcnfqjxI7+9MzaGrAQKWKxOTcwczTOwXna8HM5hBSBIJdfBTOMZi8taPFp8vW3NtPsFHUhcwhv0g0zv2MXryvvWaWQlVlQ5hPJKuWln9O36NqxH20dWhTgVGOQjQyzRAugOPybgyR2NQQsYni60Qhy8AiyBygYCCQI79tLnVyCKmQ1r3M/GJtpCXzZU8L9y9ykLM3tZX2/+az6u8Udcg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=SGXRU6OOlfIx4vW48sL+1I8w8ruvVFPQAhs++IqOvzU=;
 b=B4VpCPAuVMdg64ShLt3jpMv/BjZgWUN8BxCRUkWzLG/BpH6v/3ZPbnZZLQeCsZXxgGc6hc5PNmFwKFBPn6+G9jiS7r56cByr9QKEbj78jnvJ1+bnbVrrnUtFAvUAcnxxNiTgpYbh5Bb/whLnpE6F/Av0AafIt8Bg9RmPT91dPS8aIWz94GTBhsjb5RNghixxZT3bvsel5/49XrDNkKmUVL8MwGIqIUxGHa9iXmlJql1M0ppNzser9NBSBrJ1lektiikzFIAA8VXp7nlzJmz6LUyvxeaXfBbl1k4OMCrhpgm0tNR93WVNwKNPXYOH5bX18UzK7ERLJ8oFZw3N4Kmtzw==
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=SGXRU6OOlfIx4vW48sL+1I8w8ruvVFPQAhs++IqOvzU=;
 b=y0+R/8862otG+WRloRPA+tyGWx1tdSWMP53lp4K4iQuoCI6wLZGyIexlFutkd6B3g8hhOuv77WhiUe1eAYZzAYeE5tfTjaGgg84QQNzCyuUmRjuwmZcyruTf8E2nHcwkDvVyIWp6bqdps7G9t9jnESF2shadDscVMWTQpupmh1Y=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Jan Beulich
	<jbeulich@suse.com>
Subject: [PATCH v8 5/8] xen/cpufreq: get performance policy from governor set via xenpm
Date: Thu, 28 Aug 2025 18:04:43 +0800
Message-ID: <20250828100443.1776675-1-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To satlexmb09.amd.com
 (10.181.42.218)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH1PEPF0000A34C:EE_|SA0PR12MB4432:EE_
X-MS-Office365-Filtering-Correlation-Id: e4117e5f-63db-49b1-5e63-08dde61a5ed2
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|376014|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?KPmU22SrPM3QidHzAZ8ikf9cAQeSRdw9zQPUWLGoHYW0azIEmcQ6FUsYJNmv?=
 =?us-ascii?Q?UAz0+vNAxNYoAmGqqWUW/lLFQyHYIxRqs8H+iw5mIpKage8+ji2xHRRh5i/s?=
 =?us-ascii?Q?ljnsPMNvQtn+Wy1Z6WgitcuQlF0LKLytEqnnJwXRkbSrDW8mCVB+DlvMMYls?=
 =?us-ascii?Q?1FzdhCUntzPU1047ONDhcpCeILOhMJBzCME7jejni2SlBGEYyqTfEiu4xqMx?=
 =?us-ascii?Q?vPBWmT/CeOMagUriIv1p+GspHKmcZETvXMzqcN0r1lFR8f61qAm/vEOr7ITa?=
 =?us-ascii?Q?PBFPw28o+3cLAwxyMuLl6oUwQwpjV/bZQvCvo+5FRto7VRa95uNpXyv0FXXw?=
 =?us-ascii?Q?ge1cz1DlVU4+REPpzG70+rASXfPMByDJxh2KmgWFRCfTrYexw2CcG1MZU33V?=
 =?us-ascii?Q?T97cdCXfyBwsO5okkuqAP4zjTJbMDNX13PxGuyeFR0yubMv/YSG3EyX1spbG?=
 =?us-ascii?Q?Q7LerZ4K8uUhqVlvhTDYjFAeW2PJp8QwZxVA50Roa0nTjLw/LYiTOpeF8Bk/?=
 =?us-ascii?Q?QAbG4JMgwrI3MsSU1qkWpnqeeLouMF+RH6VYqlP/OXo9n4qXH2tM2tGInFn7?=
 =?us-ascii?Q?T2P2KECNE0U9+m7lDh/Fm/C0MYtob+oD1Rh0W/1gSqtSywf0MQDZHk7UuNd/?=
 =?us-ascii?Q?Ql3xXlF3ijINwIAUUO89qTXRMDlUebbqYu1r9KTYWyFQdsNPlrPCQjOrXRgC?=
 =?us-ascii?Q?H4Rb1o/4DCfX2JbaGXbK0o3CpunAOI76c2gmYLs9LcXcOqpWyhGrXNQbePAG?=
 =?us-ascii?Q?6snx/myBPfdQqGSwGZwe8lqWd0VrhO7h8Loc/W6IcVasIhS8KfIoi5jnB5eN?=
 =?us-ascii?Q?cLBCYI674VKI3VfL3DG0pN0367j2M8g9gqWza4rXZxLdekGNwL4dyZbvEtZR?=
 =?us-ascii?Q?KgjsijjzrWAZ8pYlSW+VbTm6ZowAB7U/X4fitJ4xMb+xFzl6VfaWVEO2in/S?=
 =?us-ascii?Q?e0hdjLvJdo6NMQVSPXg/IPpgdaA0nEQi2opszYz5gQUc81rXOfbsoLrKV9sv?=
 =?us-ascii?Q?A9Qi+uVNrIbCpL4BCyhBUHEns1Vy9i445x0paVc69wr+bWeUGpy5zqle7Zid?=
 =?us-ascii?Q?ZIEGX9aLHt1twMXqKpuW0yj0z3pGzOh9xNV6Iy+n9hO/rfbsyZkZIX6kMnnx?=
 =?us-ascii?Q?CKy0R6c77eMmYTgdX5IuWWgSECXTSY+Ncein5eKPieh5jIu+nQME7ligUzPU?=
 =?us-ascii?Q?zJZJzTsZMCjvjDBlQo8Wx509WDmSm0q7TwOiy4heND8zAPt1G9MKJHhQNLR9?=
 =?us-ascii?Q?WwwF+IRYD5fONKchePTSo7Kv/NDmUGhwNAGH8glQSqQWK8OGBGBw7zjfmluj?=
 =?us-ascii?Q?/U/EBFKRU4kaLY6PvW8iF1E/JTiiIvKRHhdC92ph7z0tcSSzK6Gpn8aLyPLS?=
 =?us-ascii?Q?T4oSAwXtJlJnEwA1Kd9TRo/CxX7HgaebRfuKfokGgr8EcQKZlCqvA/YTkwjW?=
 =?us-ascii?Q?Q0V/cCe3x/HMOm4nZYnp/CHttR+nE3SyPyRE6V7aNNPWsOsXeBddVSF18/h1?=
 =?us-ascii?Q?uN4/x5oBZ7ndsi5K8BDrEBA2N5vpl8/6GvKQ?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 10:05:09.0314
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e4117e5f-63db-49b1-5e63-08dde61a5ed2
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH1PEPF0000A34C.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB4432

Even if Xen governor is not used in amd-cppc active mode, we could
somehow deduce which performance policy (CPUFREQ_POLICY_xxx) user wants to
apply through which governor they choose, such as:
If user chooses performance governor, they want maximum performance, then
the policy shall be CPUFREQ_POLICY_PERFORMANCE
If user chooses powersave governor, they want the least power consumption,
then the policy shall be CPUFREQ_POLICY_POWERSAVE
Function cpufreq_policy_from_governor() is responsible for above transition,
and it shall be also effective when users setting new governor through xenpm.

Userspace is a forbidden choice, and if users specify such option, we shall
not only give warning message to suggest using "xenpm set-cpufreq-cppc", but
also error out.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v4 -> v5:
- new commit
---
v5 -> v6:
- refactor warning message
---
v6 -> v7:
- move policy->policy set where it firstly gets introduced
- refactor commit message
---
v7 -> v8:
- policy transition is only limited in CPPC mode
---
 xen/drivers/acpi/pm-op.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/xen/drivers/acpi/pm-op.c b/xen/drivers/acpi/pm-op.c
index 2f516e62b1..a7eaf29c31 100644
--- a/xen/drivers/acpi/pm-op.c
+++ b/xen/drivers/acpi/pm-op.c
@@ -207,6 +207,17 @@ static int set_cpufreq_gov(struct xen_sysctl_pm_op *op)
     if ( new_policy.governor == NULL )
         return -EINVAL;
 
+    if ( processor_pminfo[op->cpuid]->init & XEN_CPPC_INIT )
+    {
+        new_policy.policy = cpufreq_policy_from_governor(new_policy.governor);
+        if ( new_policy.policy == CPUFREQ_POLICY_UNKNOWN )
+        {
+            printk("Failed to get performance policy from %s, Try \"xenpm set-cpufreq-cppc\"\n",
+                   new_policy.governor->name);
+            return -EINVAL;
+        }
+    }
+
     return __cpufreq_set_policy(old_policy, &new_policy);
 }
 
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 10:05:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 10:05:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098180.1452311 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urZVg-0008Gl-6y; Thu, 28 Aug 2025 10:05:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098180.1452311; Thu, 28 Aug 2025 10:05: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 1urZVg-0008Ge-3v; Thu, 28 Aug 2025 10:05:36 +0000
Received: by outflank-mailman (input) for mailman id 1098180;
 Thu, 28 Aug 2025 10:05:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ityt=3I=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1urZVe-0008DS-Ek
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 10:05:34 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on2060b.outbound.protection.outlook.com
 [2a01:111:f403:2413::60b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8854376e-83f6-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 12:05:33 +0200 (CEST)
Received: from CH0PR03CA0409.namprd03.prod.outlook.com (2603:10b6:610:11b::17)
 by DM6PR12MB4107.namprd12.prod.outlook.com (2603:10b6:5:218::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Thu, 28 Aug
 2025 10:05:28 +0000
Received: from CH1PEPF0000A349.namprd04.prod.outlook.com
 (2603:10b6:610:11b:cafe::c4) by CH0PR03CA0409.outlook.office365.com
 (2603:10b6:610:11b::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.17 via Frontend Transport; Thu,
 28 Aug 2025 10:05:28 +0000
Received: from SATLEXMB04.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_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Thu, 28 Aug 2025 10:05:28 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) 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; Thu, 28 Aug
 2025 05:05:27 -0500
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb09.amd.com (10.181.42.218) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.2.1748.10; Thu, 28 Aug 2025 03:05:25 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8854376e-83f6-11f0-aeb2-fb57b961d000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Vbf8McWGeW2dqLMQ2AtvO6vuWz6kM4KisNQyhW0y7j++fkw4W0i2TYeM8epA4qHqGLyJuEzZuoH5yjb1+p3IkpT+4p/YCF6n5kkIcN4mMDgQpdqs3zYvpSA4ddRrYz1uaJgDsep9PwSl0eHQten2k/byzUpglcPTWxKXw/YRsNEDTyin6HK0XcPMRMtse6H34VvwoEsvpsQm46VaCNoI6bfaVdPTVVIuW5S+VmEEiNnoUFewGvXgN1niGW63koRVnOwmXSQRObpl8r2G817ErOWRq8dPVZuad4GPPulJxQLygLBmxragGviKpTfwHYeKCBULvnwJemAEzh7/Eltp/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=Toe6Isc8jD267iNGh3XLoNGxPPh/1SU1rDpbA94F4Os=;
 b=FroFL342Fi0V5rw4LAx1uOXHpAU5jq46Z6p7Gtdc2yQAYnumaMCrXb8+kjxNtiUKVhJ7+7ko5ysTAvJKm2YOEuycA6WjA2MY+olRlkZEAjUqqhchVEQMZYv2PIvBBIlUruaVVMLjK3g6I/JvU3jaLywaCglUMOr0puwZW3+EFhLw+haUIaADLrDV5SXM9ZljREBdpFVSpaOpmgMF76DfWZ7MutRIGeSTDvlVBcozWb8pDk4mB4m3jSdCSZQ6fB9RUdkR+NH3dW5wcVIOHiY++7Is4ltmZELlUjBFnkHgFBnNtQ7Sz7LvtNKpo84PqhQIBMuZ2bhK7bnjhsKSUZ/Kkw==
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=Toe6Isc8jD267iNGh3XLoNGxPPh/1SU1rDpbA94F4Os=;
 b=vwLFQFkLvymwFeavOKzRlAjvtorK9n3IwcneL1qQFAHInRrN9qMPJ7Yze/92ypJ1JmE80okqjzng2HFAEJ+Zd3BitFeXejyXeY8DJ+Q1JupDUKheMIKHGZclET4SF8siDsjDQFlTBas2NfT+9luvM8DVYyHBNKPG7sW/BVzyd4w=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.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>
Subject: [PATCH v8 6/8] tools/cpufreq: extract CPPC para from cpufreq para
Date: Thu, 28 Aug 2025 18:05:10 +0800
Message-ID: <20250828100510.1776855-1-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To satlexmb09.amd.com
 (10.181.42.218)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH1PEPF0000A349:EE_|DM6PR12MB4107:EE_
X-MS-Office365-Filtering-Correlation-Id: 49bde12a-5deb-4fe6-898a-08dde61a6a74
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|1800799024|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?mT4lIxnOwhitJNi1D9JaP0LqGREqvyoE/Ulo1OeCO7sFzaQuXPDj456Vm4JG?=
 =?us-ascii?Q?Ed0hCgvUgPvWdgjOrIVxo1SQgRMfdBd2aZgEo9PXFFbupFDHb3vCceR/7wCK?=
 =?us-ascii?Q?VzuiSogPke+Spi/U5NnqWPJ4YAgzyvW8W+41Z/yUuaNwC188HGMYPgeQzANE?=
 =?us-ascii?Q?CAXlaEkHFx4CwvGIaPVNH7u9xQJ6CCa+5h2u8/1ANMmdiyhKtIj2ZTbH/I+x?=
 =?us-ascii?Q?STweqdTG0Bsl3LnIduoRZ657nG3mhHE0mvoPq9xjFIUnADoI8bpm4+ZrXcKF?=
 =?us-ascii?Q?k6kMZzH93Td2Q/QEuF8K7Mj/UvJvCVFqR50xbDr04XK81UhyycO4Kc90pcQF?=
 =?us-ascii?Q?nu470ngf6agoirK5rnLLhoBAfQ8QSenRjwBlrw4D3Yc94w60vVRKLN13p2//?=
 =?us-ascii?Q?0paE/Ka9Ca4bFF7njGRk4oZO3HaQAB7VCVxo2YEB1Q7jSLYNPz/ZETF7fm5t?=
 =?us-ascii?Q?x1HBIW8KFwQJTRZNzC5FVSiGrF3jAtV8/Meq9dnZmM4HYH0pDwQFsc4b8sMk?=
 =?us-ascii?Q?Bbcq1XEXG2UdkGa0O/hqHjbuMtmzMGRCCUXyZbbB1dRN4jTJlUXquD6TSOjk?=
 =?us-ascii?Q?182W/aBSSNVg1ANO//D2h85/BsUsYcmB749N/20bKQNiyNOnsIX3oDzxWJPB?=
 =?us-ascii?Q?Sh8rdw9btklHXoQJaH+Y/M7lnTk2bDprz/nno7onC42XCE6J+kBjg0jjxBnD?=
 =?us-ascii?Q?0W4DNJU4bmnUrd280NZ4tABZ680Fljke3Nd5y8b7rlunFpHuCeRFWE6QUPlI?=
 =?us-ascii?Q?9NDK/gGhJWqemszlQmBOA1zDpnJCdh55dLkj3/O2dTJBlYu+7qMhI+/NQ/98?=
 =?us-ascii?Q?EcJUlfrUwzu4DZQsjCfQdatd6ck2sPW/JpESkBrXNVHeGnegbZv17WO2lY2n?=
 =?us-ascii?Q?WDKtGWy0RVIpvi+7Bbwj2npsRRyLVtjuH5hwe8UluN9N8Do1jujVn25tV0S3?=
 =?us-ascii?Q?2ssZV51lzSvcsb79O3hPq8vNr1zgy41s9OCN4nCwRk2WpzU2YnrircEvHoCZ?=
 =?us-ascii?Q?KyfT+7J+8FqIr3sGhLKiQxcqHJobpgXJdqZcGXnXyMk61ZUU9v/wJlP5eMZw?=
 =?us-ascii?Q?E+aBBjLt9wr2o/kcYUsjPnLJuMumfo60gpa2e8zrBdYnymSt2KBhLBwjtk87?=
 =?us-ascii?Q?nEA5ZUyrYPXnWKfXc2XRrVzECVsDX3VJYzqcNeXr1Y3jOCdcOe318HigChHL?=
 =?us-ascii?Q?0S10rpZMhYaGFwZLPMUQE9SkytkdZudQzvCcfN8DB2td6VpAT6aK9vaMfnw1?=
 =?us-ascii?Q?ruCRp7+PpIt2f3SW64RDIApdHy39iq1n71+nn1vgYRQ3dWqPfNLOc4Jb1OR3?=
 =?us-ascii?Q?D0EKtDjQSjKEDbbBEd0GPRPBBhjeCeiAPI2ygHPUtHGTYoFvscX8aw2Fa9f0?=
 =?us-ascii?Q?j2hDke1I/Ol2GE+t50xzCecel8o2/qPOKF5+8kICrJjRus96KSOzATC3j/wt?=
 =?us-ascii?Q?ijiGd1Ks4tZRi9ZzntMD4QWbE+Q/GhvnyzxYmaDfVenvhEouOI2NRfq3MALe?=
 =?us-ascii?Q?vKx/aXmSsZw5x02v2AQbCyQD0gHu0tvom1Nm?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(1800799024)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 10:05:28.5487
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 49bde12a-5deb-4fe6-898a-08dde61a6a74
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=[SATLEXMB04.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: DM6PR12MB4107

We extract cppc info from "struct xen_get_cpufreq_para", where it acts as
a member of union, and share the space with governor info.
However, it may fail in amd-cppc passive mode, in which governor info and
CPPC info could co-exist, and both need to be printed together via xenpm tool.
If we tried to still put it in "struct xen_get_cpufreq_para" (e.g. just move
out of union), "struct xen_get_cpufreq_para" will enlarge too much to further
make xen_sysctl.u exceed 128 bytes.

So we introduce a new sub-field GET_CPUFREQ_CPPC to dedicatedly acquire
CPPC-related para, and make get-cpufreq-para invoke GET_CPUFREQ_CPPC
if available.
New helpers print_cppc_para() and get_cpufreq_cppc() are introduced to
extract CPPC-related parameters process from cpufreq para.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Acked-by: Jan Beulich <jbeulich@suse.com> # hypervisor
Acked-by: Anthony PERARD <anthony.perard@vates.tech>
---
v4 -> v5:
- new commit
---
v5 -> v6:
- remove the changes for get-cpufreq-para
---
v6 -> v7:
- make get-cpufreq-para invoke GET_CPUFREQ_CPPC
---
v7 -> v8:
- use structure assignment as it is a alias
- add errno info to the error print
---
 tools/include/xenctrl.h     |  3 +-
 tools/libs/ctrl/xc_pm.c     | 25 +++++++++++-
 tools/misc/xenpm.c          | 79 ++++++++++++++++++++++++-------------
 xen/drivers/acpi/pm-op.c    | 19 +++++++--
 xen/include/public/sysctl.h |  3 +-
 5 files changed, 96 insertions(+), 33 deletions(-)

diff --git a/tools/include/xenctrl.h b/tools/include/xenctrl.h
index 965d3b585a..e5103453a9 100644
--- a/tools/include/xenctrl.h
+++ b/tools/include/xenctrl.h
@@ -1938,7 +1938,6 @@ struct xc_get_cpufreq_para {
                 xc_ondemand_t ondemand;
             } u;
         } s;
-        xc_cppc_para_t cppc_para;
     } u;
 
     int32_t turbo_enabled;
@@ -1953,6 +1952,8 @@ int xc_set_cpufreq_para(xc_interface *xch, int cpuid,
                         int ctrl_type, int ctrl_value);
 int xc_set_cpufreq_cppc(xc_interface *xch, int cpuid,
                         xc_set_cppc_para_t *set_cppc);
+int xc_get_cppc_para(xc_interface *xch, unsigned int cpuid,
+                     xc_cppc_para_t *cppc_para);
 int xc_get_cpufreq_avgfreq(xc_interface *xch, int cpuid, int *avg_freq);
 
 int xc_set_sched_opt_smt(xc_interface *xch, uint32_t value);
diff --git a/tools/libs/ctrl/xc_pm.c b/tools/libs/ctrl/xc_pm.c
index 6fda973f1f..56e213018a 100644
--- a/tools/libs/ctrl/xc_pm.c
+++ b/tools/libs/ctrl/xc_pm.c
@@ -288,7 +288,6 @@ int xc_get_cpufreq_para(xc_interface *xch, int cpuid,
         CHK_FIELD(s.scaling_min_freq);
         CHK_FIELD(s.u.userspace);
         CHK_FIELD(s.u.ondemand);
-        CHK_FIELD(cppc_para);
 
 #undef CHK_FIELD
 
@@ -366,6 +365,30 @@ int xc_set_cpufreq_cppc(xc_interface *xch, int cpuid,
     return ret;
 }
 
+int xc_get_cppc_para(xc_interface *xch, unsigned int cpuid,
+                     xc_cppc_para_t *cppc_para)
+{
+    int ret;
+    struct xen_sysctl sysctl = {};
+
+    if ( !xch  || !cppc_para )
+    {
+        errno = EINVAL;
+        return -1;
+    }
+
+    sysctl.cmd = XEN_SYSCTL_pm_op;
+    sysctl.u.pm_op.cmd = GET_CPUFREQ_CPPC;
+    sysctl.u.pm_op.cpuid = cpuid;
+
+    ret = xc_sysctl(xch, &sysctl);
+    if ( ret )
+        return ret;
+
+    *cppc_para = sysctl.u.pm_op.u.get_cppc;
+    return ret;
+}
+
 int xc_get_cpufreq_avgfreq(xc_interface *xch, int cpuid, int *avg_freq)
 {
     int ret = 0;
diff --git a/tools/misc/xenpm.c b/tools/misc/xenpm.c
index 6b054b10a4..e83dd0d80c 100644
--- a/tools/misc/xenpm.c
+++ b/tools/misc/xenpm.c
@@ -801,6 +801,34 @@ static unsigned int calculate_activity_window(const xc_cppc_para_t *cppc,
     return mantissa * multiplier;
 }
 
+/* print out parameters about cpu cppc */
+static void print_cppc_para(unsigned int cpuid,
+                            const xc_cppc_para_t *cppc)
+{
+    printf("cppc variables       :\n");
+    printf("  hardware limits    : lowest [%"PRIu32"] lowest nonlinear [%"PRIu32"]\n",
+           cppc->lowest, cppc->lowest_nonlinear);
+    printf("                     : nominal [%"PRIu32"] highest [%"PRIu32"]\n",
+           cppc->nominal, cppc->highest);
+    printf("  configured limits  : min [%"PRIu32"] max [%"PRIu32"] energy perf [%"PRIu32"]\n",
+           cppc->minimum, cppc->maximum, cppc->energy_perf);
+
+    if ( cppc->features & XEN_SYSCTL_CPPC_FEAT_ACT_WINDOW )
+    {
+        unsigned int activity_window;
+        const char *units;
+
+        activity_window = calculate_activity_window(cppc, &units);
+        printf("                     : activity_window [%"PRIu32" %s]\n",
+               activity_window, units);
+    }
+
+    printf("                     : desired [%"PRIu32"%s]\n",
+           cppc->desired,
+           cppc->desired ? "" : " hw autonomous");
+    printf("\n");
+}
+
 /* print out parameters about cpu frequency */
 static void print_cpufreq_para(int cpuid, struct xc_get_cpufreq_para *p_cpufreq)
 {
@@ -826,33 +854,7 @@ static void print_cpufreq_para(int cpuid, struct xc_get_cpufreq_para *p_cpufreq)
 
     printf("scaling_driver       : %s\n", p_cpufreq->scaling_driver);
 
-    if ( hwp )
-    {
-        const xc_cppc_para_t *cppc = &p_cpufreq->u.cppc_para;
-
-        printf("cppc variables       :\n");
-        printf("  hardware limits    : lowest [%"PRIu32"] lowest nonlinear [%"PRIu32"]\n",
-               cppc->lowest, cppc->lowest_nonlinear);
-        printf("                     : nominal [%"PRIu32"] highest [%"PRIu32"]\n",
-               cppc->nominal, cppc->highest);
-        printf("  configured limits  : min [%"PRIu32"] max [%"PRIu32"] energy perf [%"PRIu32"]\n",
-               cppc->minimum, cppc->maximum, cppc->energy_perf);
-
-        if ( cppc->features & XEN_SYSCTL_CPPC_FEAT_ACT_WINDOW )
-        {
-            unsigned int activity_window;
-            const char *units;
-
-            activity_window = calculate_activity_window(cppc, &units);
-            printf("                     : activity_window [%"PRIu32" %s]\n",
-                   activity_window, units);
-        }
-
-        printf("                     : desired [%"PRIu32"%s]\n",
-               cppc->desired,
-               cppc->desired ? "" : " hw autonomous");
-    }
-    else
+    if ( !hwp )
     {
         if ( p_cpufreq->gov_num )
             printf("scaling_avail_gov    : %s\n",
@@ -898,6 +900,24 @@ static void print_cpufreq_para(int cpuid, struct xc_get_cpufreq_para *p_cpufreq)
     printf("\n");
 }
 
+/* show cpu cppc parameters information on CPU cpuid */
+static int show_cppc_para_by_cpuid(xc_interface *xc_handle, unsigned int cpuid)
+{
+    int ret;
+    xc_cppc_para_t cppc_para;
+
+    ret = xc_get_cppc_para(xc_handle, cpuid, &cppc_para);
+    if ( !ret )
+        print_cppc_para(cpuid, &cppc_para);
+    else if ( errno == ENODEV )
+        ret = 0; /* Ignore unsupported platform */
+    else
+        fprintf(stderr, "[CPU%u] failed to get cppc parameter: %s\n",
+                cpuid, strerror(errno));
+
+    return ret;
+}
+
 /* show cpu frequency parameters information on CPU cpuid */
 static int show_cpufreq_para_by_cpuid(xc_interface *xc_handle, int cpuid)
 {
@@ -957,7 +977,12 @@ static int show_cpufreq_para_by_cpuid(xc_interface *xc_handle, int cpuid)
     } while ( ret && errno == EAGAIN );
 
     if ( ret == 0 )
+    {
         print_cpufreq_para(cpuid, p_cpufreq);
+
+        /* Show CPPC parameters if available */
+        ret = show_cppc_para_by_cpuid(xc_handle, cpuid);
+    }
     else if ( errno == ENODEV )
     {
         ret = -ENODEV;
diff --git a/xen/drivers/acpi/pm-op.c b/xen/drivers/acpi/pm-op.c
index a7eaf29c31..19aedf6b0b 100644
--- a/xen/drivers/acpi/pm-op.c
+++ b/xen/drivers/acpi/pm-op.c
@@ -77,6 +77,17 @@ static int read_scaling_available_governors(char *scaling_available_governors,
     return 0;
 }
 
+static int get_cpufreq_cppc(unsigned int cpu,
+                            struct xen_get_cppc_para *cppc_para)
+{
+    int ret = -ENODEV;
+
+    if ( hwp_active() )
+        ret = get_hwp_para(cpu, cppc_para);
+
+    return ret;
+}
+
 static int get_cpufreq_para(struct xen_sysctl_pm_op *op)
 {
     uint32_t ret = 0;
@@ -143,9 +154,7 @@ static int get_cpufreq_para(struct xen_sysctl_pm_op *op)
     else
         strlcpy(op->u.get_para.scaling_driver, "Unknown", CPUFREQ_NAME_LEN);
 
-    if ( hwp_active() )
-        ret = get_hwp_para(policy->cpu, &op->u.get_para.u.cppc_para);
-    else
+    if ( !hwp_active() )
     {
         if ( !(scaling_available_governors =
                xzalloc_array(char, gov_num * CPUFREQ_NAME_LEN)) )
@@ -385,6 +394,10 @@ int do_pm_op(struct xen_sysctl_pm_op *op)
         ret = set_cpufreq_para(op);
         break;
 
+    case GET_CPUFREQ_CPPC:
+        ret = get_cpufreq_cppc(op->cpuid, &op->u.get_cppc);
+        break;
+
     case SET_CPUFREQ_CPPC:
         ret = set_cpufreq_cppc(op);
         break;
diff --git a/xen/include/public/sysctl.h b/xen/include/public/sysctl.h
index eb3a23b038..3f654f98ab 100644
--- a/xen/include/public/sysctl.h
+++ b/xen/include/public/sysctl.h
@@ -492,7 +492,6 @@ struct xen_get_cpufreq_para {
                 struct  xen_ondemand ondemand;
             } u;
         } s;
-        struct xen_get_cppc_para cppc_para;
     } u;
 
     int32_t turbo_enabled;
@@ -523,6 +522,7 @@ struct xen_sysctl_pm_op {
     #define SET_CPUFREQ_PARA           (CPUFREQ_PARA | 0x03)
     #define GET_CPUFREQ_AVGFREQ        (CPUFREQ_PARA | 0x04)
     #define SET_CPUFREQ_CPPC           (CPUFREQ_PARA | 0x05)
+    #define GET_CPUFREQ_CPPC           (CPUFREQ_PARA | 0x06)
 
     /* set/reset scheduler power saving option */
     #define XEN_SYSCTL_pm_op_set_sched_opt_smt    0x21
@@ -547,6 +547,7 @@ struct xen_sysctl_pm_op {
     uint32_t cpuid;
     union {
         struct xen_get_cpufreq_para get_para;
+        struct xen_get_cppc_para    get_cppc;
         struct xen_set_cpufreq_gov  set_gov;
         struct xen_set_cpufreq_para set_para;
         struct xen_set_cppc_para    set_cppc;
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 10:06:05 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 10:06:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098194.1452322 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urZW9-0000Nm-Fu; Thu, 28 Aug 2025 10:06:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098194.1452322; Thu, 28 Aug 2025 10:06: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 1urZW9-0000Nf-Cz; Thu, 28 Aug 2025 10:06:05 +0000
Received: by outflank-mailman (input) for mailman id 1098194;
 Thu, 28 Aug 2025 10:06:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ityt=3I=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1urZW8-0008DS-Gh
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 10:06:04 +0000
Received: from NAM11-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam11on20629.outbound.protection.outlook.com
 [2a01:111:f403:2415::629])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9b32648c-83f6-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 12:06:03 +0200 (CEST)
Received: from CH5P223CA0021.NAMP223.PROD.OUTLOOK.COM (2603:10b6:610:1f3::22)
 by MN2PR12MB4470.namprd12.prod.outlook.com (2603:10b6:208:260::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Thu, 28 Aug
 2025 10:05:55 +0000
Received: from CH1PEPF0000A34A.namprd04.prod.outlook.com
 (2603:10b6:610:1f3:cafe::b6) by CH5P223CA0021.outlook.office365.com
 (2603:10b6:610:1f3::22) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.18 via Frontend Transport; Thu,
 28 Aug 2025 10:05:55 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH1PEPF0000A34A.mail.protection.outlook.com (10.167.244.5) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Thu, 28 Aug 2025 10:05:55 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) 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; Thu, 28 Aug
 2025 05:05:53 -0500
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb09.amd.com (10.181.42.218) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.2.1748.10; Thu, 28 Aug 2025 03:05:51 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9b32648c-83f6-11f0-aeb2-fb57b961d000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=RsQT0rmiaABOmcohSWKiBAi2i2eEUuKJmizoFTALGjKue0+y/bex2PjTKxUhmoMyaLhqh7NKiXfAqibuniY5SLgozyCNE75zWr5aBYzFGt13lLznQlThlYzDvlscVjPggy0QUpyvgdMr+alRcKayR8EIlwk4APFQ3Kp4QEidQVD3NDQ3whBe689krAEHMyAawkcAmiLwhpo+98sPvk129ZUeaYP0wFLqieOYoAw2M7Y45JLzvlUueM/tWcyy3QJRZCrUskTkeQLum1TRvH/p/pzfcejIiEccn8Pbo6SuOkbNvzvFUEPfiaa+tX0d0/iDIHxgmoLldTNdp1Yxe8C0Yw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Sr/8ELtfeheb63woL4g3CYLQa/Js9kgQh/H0SwSl4PE=;
 b=uW+i6VXn4tqL/alVBLclQ2Ajk8mExcqzl9BZTkEk1xR6g7ngf7ZuA85yVhk7zGtI7utR1nqXwWkd3Q4pMTZaXQsK7KxLskxHUMTcHiiENdR3K6KE8PPtYR0frwNk0KBgJUUXRzQlx6wYUGD5ljQBf93HKHhcAvqmPFyx27wtCYJHE1BNyAy9g7XGDkno7rBJ3GCu68jmr6r+mwZ4FBSa1ILdqlb9qyULA+OIhMzgDMQu61VeHrJAp2hk2pu/nmEKrambDtfXSsYpJtQpJ29MDB3BQDmwohcRkzWcAUtV1xowFDf8pG6S9rpIelUyX+XhceSd4VT4/401LR7JTW5sPw==
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=Sr/8ELtfeheb63woL4g3CYLQa/Js9kgQh/H0SwSl4PE=;
 b=npKnH2wl8sPO/NP2dSmKqoCDL9ls/0DheOPXxm0NSYDXbGEN3g7UWncLDRP5q2+2OccEYZC5b6RRTQFgOoQggN8jqm0N8HQINOR5SewSCMrcDNdNZakgNK7qEZiOXb33PXJh43ZJ2PPEIZMr9KgAcHID5JDN1L7K/bRVG1E2Xfs=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v8 7/8] xen/cpufreq: bypass governor-related para for amd-cppc-epp
Date: Thu, 28 Aug 2025 18:05:34 +0800
Message-ID: <20250828100534.1777023-1-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To satlexmb09.amd.com
 (10.181.42.218)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH1PEPF0000A34A:EE_|MN2PR12MB4470:EE_
X-MS-Office365-Filtering-Correlation-Id: 66262697-d78f-4f78-8138-08dde61a7a40
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?RA7G4lmnZUk9FmEwgEwTvG4xou62pI7Y1Vrx5LUjnpQHRhZqG5E9X/T5jhnW?=
 =?us-ascii?Q?XK/T/VeW5tWj2xwKsI1Du0UAmNVeSfAV9iabEh9zkTj150sndSFyPerSfSei?=
 =?us-ascii?Q?Z0vYNNaf9xcSL4Zl9Bs2fxQr/vWZPCxPmugy8Fb+kKHnytAUgzlkY0ZHo2CA?=
 =?us-ascii?Q?h9ackvL3YG7rMZEEZiWHEj0olrO0FtO7GuUeDbrAOk+qdn2bLLZdDxkS8TQX?=
 =?us-ascii?Q?Z5vmc0ZH03tijBoBJ4Boj4XqcwWBLQJNhs1aMTM2gRQPFgAivxvXPlMo7qAZ?=
 =?us-ascii?Q?Vm9MZ0dM/FszJPDugw5dvmxuOzr23BFctwudLAcxyA6PRFNTZ6FbU7eY7sn2?=
 =?us-ascii?Q?KfTDw74fFHQ8TEUNlz0xoTwWPlrJTXapU6EWUaBKr6JVGkcHJKSOBKY8Zopj?=
 =?us-ascii?Q?4+2UGOwNPi6m2WkNHk8nGBP6H7i0ut4mzv5CjnLrghhrmR+FWW6fQnAsqyY8?=
 =?us-ascii?Q?5qln1xt088qCIvbeD8Tnv8R0XCg/vpRagml5iOJ/T9MWcStZlifvUELrLSMM?=
 =?us-ascii?Q?S2RIFnp005qUL4OEMTleWBLkp2J/VzyDAqfyQRF9ml9TAWLtCAfE3Jhd2sQJ?=
 =?us-ascii?Q?GzODsStjufNpEffSrIkiJYqnwV+wGADKyofMNdyRHkQFIwp9Lj0N0ETTF7ro?=
 =?us-ascii?Q?pnblib85AASoS3BsfS14ACr6DwjtzoGmdlZhHp6T/0neKdhEgBmgthhNr08d?=
 =?us-ascii?Q?HDukdu+M3178KrKF4HYXVrDAOBspEcCSWJDeKqAJrm4OEl+YqPwihO3y8K9t?=
 =?us-ascii?Q?nwxR4SI2E8J7aMANlImq7ajlI/cjmtAV1q1KXPS44062rEBDydl9J+UJYlk5?=
 =?us-ascii?Q?j9g5IC/qGLbj2ZNwfwAs1sQ7gkjOwhMV1yETsC5B2KSs+Nmn7OL7QJuBqvWC?=
 =?us-ascii?Q?Qr9AJI+L9LhhVFCVHFiEWEyOFjjWYUnUFQUrgYkcPDb+niysznf/5cDQvlaf?=
 =?us-ascii?Q?Q2nHp3+vuFYOjYwcENiuYfdHXUBXq8Rk5WQ2Kkbh9FdvczAr+sLfR4zt8YRh?=
 =?us-ascii?Q?/5DCV8YL9mkpiMjtbEZN2/50IjzJxpVKkqv+7oA2MV0ImZYyAzDxQVcG+ilZ?=
 =?us-ascii?Q?IqkO9c/xM8+s5kKXtG6LhJVps/HwR730AvVc4crXWGKWd6wxrNjtZ7hsT0xN?=
 =?us-ascii?Q?tgONe0hZ9qGH205vXxWBF+PuhTVkDA004YWHsKVeIlqqxwWtRuEDTR8ywqqv?=
 =?us-ascii?Q?HUbR+5ylD1E5L56QM+hYmgjZf8h8y6Bv6SYIRJLrpXK1dA5TNmHF861rFQpd?=
 =?us-ascii?Q?5KNaUaVZVzUXToEtuV9rMyknyBS/g03BBuHBHQO9uR20O1Vkoi5i75X2f6JQ?=
 =?us-ascii?Q?unbZ5Etwz2VMX0j0qtS6KhK1vJpJZyDc354X0DlCYhR3r4bN33Dy/xcCxh+T?=
 =?us-ascii?Q?UIqSyIMcgbNRsmdPvJPD/tMDIZ8VC2ALsZmQWJb4E64tRbS+0eK3m1OdHxii?=
 =?us-ascii?Q?k9zjsyrWWZ1+losA8EEAeSgF9JYtpqytZ1t1ZPV93HtPpMCpAh2IgkhjB5SE?=
 =?us-ascii?Q?rP1k53bB5GhNBA0x1hfdl/nshR8OnEPgPzlD?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 10:05:55.0530
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 66262697-d78f-4f78-8138-08dde61a7a40
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH1PEPF0000A34A.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4470

HWP and amd-cppc-epp are both governor-less driver, so we introduce
"is_governor_less" flag and cpufreq_is_governorless() to help bypass
governor-related info on dealing with cpufreq para.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
---
v3 -> v4:
- Include validation check fix here
---
v4 -> v5:
- validation check has beem moved to where XEN_PROCESSOR_PM_CPPC and
XEN_CPPC_INIT have been firstly introduced
- adding "cpufreq_driver.setpolicy == NULL" check to exclude governor-related
para for amd-cppc-epp driver in get/set_cpufreq_para()
---
v5 -> v6:
- add helper cpufreq_is_governorless() to tell whether cpufreq driver is
governor-less
---
v6 -> v7:
- change "hw_auto" to "is_goverless"
- complement comment
- wrap around with PM_OP to avoid violating Misra rule 2.1
---
v7 -> v8:
- change "is_goverless" to "is_governor_less"
- make cpufreq_is_governorless() inline function
---
 tools/misc/xenpm.c                 | 10 +++++++---
 xen/drivers/acpi/pm-op.c           |  4 ++--
 xen/include/acpi/cpufreq/cpufreq.h | 12 ++++++++++++
 3 files changed, 21 insertions(+), 5 deletions(-)

diff --git a/tools/misc/xenpm.c b/tools/misc/xenpm.c
index e83dd0d80c..893a0afe11 100644
--- a/tools/misc/xenpm.c
+++ b/tools/misc/xenpm.c
@@ -832,9 +832,13 @@ static void print_cppc_para(unsigned int cpuid,
 /* print out parameters about cpu frequency */
 static void print_cpufreq_para(int cpuid, struct xc_get_cpufreq_para *p_cpufreq)
 {
-    bool hwp = strcmp(p_cpufreq->scaling_driver, XEN_HWP_DRIVER_NAME) == 0;
+    bool is_governor_less = false;
     int i;
 
+    if ( !strcmp(p_cpufreq->scaling_driver, XEN_HWP_DRIVER_NAME) ||
+         !strcmp(p_cpufreq->scaling_driver, XEN_AMD_CPPC_EPP_DRIVER_NAME) )
+        is_governor_less = true;
+
     printf("cpu id               : %d\n", cpuid);
 
     printf("affected_cpus        :");
@@ -842,7 +846,7 @@ static void print_cpufreq_para(int cpuid, struct xc_get_cpufreq_para *p_cpufreq)
         printf(" %d", p_cpufreq->affected_cpus[i]);
     printf("\n");
 
-    if ( hwp )
+    if ( is_governor_less )
         printf("cpuinfo frequency    : base [%"PRIu32"] max [%"PRIu32"]\n",
                p_cpufreq->cpuinfo_min_freq,
                p_cpufreq->cpuinfo_max_freq);
@@ -854,7 +858,7 @@ static void print_cpufreq_para(int cpuid, struct xc_get_cpufreq_para *p_cpufreq)
 
     printf("scaling_driver       : %s\n", p_cpufreq->scaling_driver);
 
-    if ( !hwp )
+    if ( !is_governor_less )
     {
         if ( p_cpufreq->gov_num )
             printf("scaling_avail_gov    : %s\n",
diff --git a/xen/drivers/acpi/pm-op.c b/xen/drivers/acpi/pm-op.c
index 19aedf6b0b..371deaf678 100644
--- a/xen/drivers/acpi/pm-op.c
+++ b/xen/drivers/acpi/pm-op.c
@@ -154,7 +154,7 @@ static int get_cpufreq_para(struct xen_sysctl_pm_op *op)
     else
         strlcpy(op->u.get_para.scaling_driver, "Unknown", CPUFREQ_NAME_LEN);
 
-    if ( !hwp_active() )
+    if ( !cpufreq_is_governorless(op->cpuid) )
     {
         if ( !(scaling_available_governors =
                xzalloc_array(char, gov_num * CPUFREQ_NAME_LEN)) )
@@ -240,7 +240,7 @@ static int set_cpufreq_para(struct xen_sysctl_pm_op *op)
     if ( !policy || !policy->governor )
         return -EINVAL;
 
-    if ( hwp_active() )
+    if ( cpufreq_is_governorless(op->cpuid) )
         return -EOPNOTSUPP;
 
     switch( op->u.set_para.ctrl_type )
diff --git a/xen/include/acpi/cpufreq/cpufreq.h b/xen/include/acpi/cpufreq/cpufreq.h
index 9ef7c4683a..7caeae26cf 100644
--- a/xen/include/acpi/cpufreq/cpufreq.h
+++ b/xen/include/acpi/cpufreq/cpufreq.h
@@ -294,4 +294,16 @@ int acpi_cpufreq_register(void);
 int amd_cppc_cmdline_parse(const char *s, const char *e);
 int amd_cppc_register_driver(void);
 
+/*
+ * Governor-less cpufreq driver indicates the driver doesn't rely on Xen
+ * governor to do performance tuning, mostly it has hardware built-in
+ * algorithm to calculate runtime workload and adjust cores frequency
+ * automatically, like Intel HWP, or CPPC in AMD.
+ */
+static inline bool cpufreq_is_governorless(unsigned int cpuid)
+{
+    return processor_pminfo[cpuid]->init && (hwp_active() ||
+                                             cpufreq_driver.setpolicy);
+}
+
 #endif /* __XEN_CPUFREQ_PM_H__ */
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 10:11:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 10:11:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098226.1452332 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urZbH-0002aZ-53; Thu, 28 Aug 2025 10:11:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098226.1452332; Thu, 28 Aug 2025 10:11: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 1urZbH-0002aS-1O; Thu, 28 Aug 2025 10:11:23 +0000
Received: by outflank-mailman (input) for mailman id 1098226;
 Thu, 28 Aug 2025 10:11:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ityt=3I=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1urZUt-0005st-O7
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 10:04:47 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20624.outbound.protection.outlook.com
 [2a01:111:f403:2412::624])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6b63bb78-83f6-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 12:04:45 +0200 (CEST)
Received: from BN0PR04CA0189.namprd04.prod.outlook.com (2603:10b6:408:e9::14)
 by SN7PR12MB8103.namprd12.prod.outlook.com (2603:10b6:806:355::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Thu, 28 Aug
 2025 10:04:35 +0000
Received: from BL02EPF0002992B.namprd02.prod.outlook.com
 (2603:10b6:408:e9:cafe::ae) by BN0PR04CA0189.outlook.office365.com
 (2603:10b6:408:e9::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.17 via Frontend Transport; Thu,
 28 Aug 2025 10:04:35 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BL02EPF0002992B.mail.protection.outlook.com (10.167.249.56) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Thu, 28 Aug 2025 10:04:35 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) 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; Thu, 28 Aug
 2025 05:04:34 -0500
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb09.amd.com (10.181.42.218) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.2.1748.10; Thu, 28 Aug 2025 03:04:31 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6b63bb78-83f6-11f0-ae26-e363de0e7a9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=TrOgmmMyjEtzF8o/w4sULIM5LoVYOwBzdUwIAP677Txh3HHXxf6/0Vimq85CjahMS+eZ+wpPfCLupZhramdgiTtRLUpuUM+bGHNpGdZrGZdxXGqbSQLq+kTFcdKx3FmDDdgY0y28GYgPY1gicfWnsd/6F7uFOQlWbybi6k7zC7ycHuah3sEtjgC5ACOMuPJk2wh9kIbvaHS+51F8yHDYh1sZlHlg0rpUxJ73zwbfxbIl7Ln3hvYygWAJcX8CqznsfZmosVUu1fg6kkxe8z9O3wGnb4fETXYqILq3I6bgIZtYlCVzT12d73zGrbqhsG/l/muVhZ19hOdoiVP/PK5x4w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=l3wJsdKEQ0/FfsHKNJUyknRMD5aaBJHflkJkUE966MY=;
 b=WV9K0O9PEMYrepGyJARM8KaOU6yDxar1bG6Gy0nnD+c5V6Hks+l1DtV3p5nortZDoUlq2C3K2nxJ/IktzZwq/9qvUjI/gFHVgyCk/W+lXKraydZGfiFaSmNc8LZtusfdUmlCaDOXDDGMK2Vt3BxK48dMbQ5NXJUHDLpSMrmyWjSq1aJ3Q88Ye6xQB7fWYX/Q2kmNHP3jaQLAHuMvRUZgXITxo7dAFNgGp3V49+joDEMWI2n0YkjBSFZKKNPv62wrr/Aq+sKl52NdJQr2YZVJFXVVZgAs1B3TuxMZbIme/sfUn+eApjw4GLg04Gr8Eky7Yg6jdnvkdSezBcxCWjS5Zw==
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=l3wJsdKEQ0/FfsHKNJUyknRMD5aaBJHflkJkUE966MY=;
 b=30oyPPWhPrKIJD+kTjmiCwVEkVBKkvSzbYPGS1l1WSKlwVlb7FqJC1/GispbhEmNny85dNnbOvZqLEoDTONmz0pAi3tLTQY9YAF9wF9HJyCrNDon8/osl0bwaxcwwskssqnNI7IU0csF1SBKTT7KG75NtIzXudXZ5XqUMPAdGNI=
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=SATLEXMB03.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>, "Julien
 Grall" <julien@xen.org>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v8 4/8] xen/cpufreq: implement amd-cppc-epp driver for CPPC in active mode
Date: Thu, 28 Aug 2025 18:04:16 +0800
Message-ID: <20250828100416.1776501-1-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To satlexmb09.amd.com
 (10.181.42.218)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0002992B:EE_|SN7PR12MB8103:EE_
X-MS-Office365-Filtering-Correlation-Id: e1068fec-f619-467c-5539-08dde61a4a8c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|1800799024|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?VjQXIwgtyVs7bITMFRlRybko8u1OtZQZxtF5BtS4eHUA+T9V432f/2VGF98a?=
 =?us-ascii?Q?/p3FKyLZkAta/lTcEXlMhU6Zby9jAYHcb0zq2dGfPJvL+vd0Or4vEQpq51sy?=
 =?us-ascii?Q?Rx1ABD3PKfdH35VUGDTbtbLZ1jc4Nlgzx+15Y5YcnATzb7avbTCz6npqodLS?=
 =?us-ascii?Q?qzWQkaKr52Pn5Vu7QY+iPoiMUCoDQO51Jr8A7fRryzFkkBEueXI7oD3JbRWw?=
 =?us-ascii?Q?MN5WOGXkM5LBujeJvO2yC72m9mKbgmDBvf4Aw4NQfNkNG9ACMRJCbb+xaNj2?=
 =?us-ascii?Q?wsZBmWiCWaxeaYwlGGOJ7fdpEbf1czWE3OQ52T0ja5d57loew7p+RUQ1TBrV?=
 =?us-ascii?Q?EIyjcHMWmegc543kKRAUE27y1ViBl7iuhOm7fv8ZccXQjYBT6Z3bEBXMDwH6?=
 =?us-ascii?Q?cI/k4P69+87Ddl4/aL7nohgs+jijBDBMjka5e2qLF7VCi5zvC2vPpTTT+1gq?=
 =?us-ascii?Q?pW2e09WmlzJ6vJEdWABhUWrdRKO/5NYvJgkJUTWTZuPIZL168JlqbIkqiHr0?=
 =?us-ascii?Q?cGc+BckK5KcooytBIvJQIyzk/Cn2WTDecoMA3hUJhfStCDDp/oW/6ZBd3yyb?=
 =?us-ascii?Q?tGgBFK/fRwNwyEX7dkf+bKFdvukKmjnJpw/fNhHc9aVm8d6M+PpEK3GqJlVv?=
 =?us-ascii?Q?BF/VCadw1OfVGkJESpmin2HeP37noEFErawre/MHGSOxbt650849A0AWzDdc?=
 =?us-ascii?Q?J2L47FNxoOTE9aXDCFKr5rpKrFN7ai5AopyLX6XOGLBqmETBYpWrlE4oGFBH?=
 =?us-ascii?Q?bVo6phW8fazfutrcWBlN1tE7waDARoC4ylmWaQq5P0p3WPkucjTfl/O1cGQu?=
 =?us-ascii?Q?o4Ngsh5ZNukVRfe8wVqf/yFYfHmV+RYIp9J+j1OS0yqlcJPjJwDO3XSDdPos?=
 =?us-ascii?Q?1PfpUVqAtVmUdhO8UwhLqKaW3PhFLSmDolTulWM0YiCI0wEiv+VAI8mfmrYE?=
 =?us-ascii?Q?sAugHEzqSsqiAPINvUx2N7+SIPXIiPosq54CY9HKIyunLcbUdDFxBaaZVtwI?=
 =?us-ascii?Q?qa1kOnQV1te4CJW+T/bQpEBOJq6HCIFupvH5+5R4Bo5UFMIFDUDnz/ygQvKp?=
 =?us-ascii?Q?Jht3JrvBC8hG9JLc1Ec3kJbuu+dNTPBUj319B4XsCCkEGqFXID/vSuEExEjd?=
 =?us-ascii?Q?3B/BqZstiTw9rvALyEi5446jtju/esSO5d2UNyTOsy+moHw/By7LJjMPc24R?=
 =?us-ascii?Q?lOKAsZVxeoKyqUY6FP73NU6rEZe/cvPXWvib1fFVgsLfAW2RM5pAr3iXuT9f?=
 =?us-ascii?Q?4sue/hTD+4HA4VqGrKCKywu+JJYyeWdhFa6y9MGyepw0HITVFCFvnJT97vsT?=
 =?us-ascii?Q?9Rp93eyWCPkAgQDvZ0YKIgMjUBn33szwkydUF3b3OAZdsgrXWO/onCPb6GEv?=
 =?us-ascii?Q?VVaofSHlmtaNXVlf3+bOuU/Lyn+YQAgrEieGe/g84jq3vWFlVlDSviwRimOB?=
 =?us-ascii?Q?YBchS+bo0TT+rtD/HzxczDlbvWnwpO3BXEJQnbQSUNEtCE+SfDCPquwNWmB/?=
 =?us-ascii?Q?IJwEZVE4Rgn92IJUWurTp0psgU6m8a2TRa2C?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(1800799024)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 10:04:35.0291
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e1068fec-f619-467c-5539-08dde61a4a8c
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0002992B.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB8103

amd-cppc has 2 operation modes: autonomous (active) mode and
non-autonomous (passive) mode.
In active mode, we don't need Xen governor to calculate and tune the cpu
frequency, while hardware built-in CPPC power algorithm will calculate the
runtime workload and adjust cores frequency automatically according to the
power supply, thermal, core voltage and some other hardware conditions.
In active mode, CPPC ignores requests done in the desired performance field,
and takes into account only the values set to the minimum performance, maximum
performance, and energy performance preference registers.

A new field EPP (energy performance preference), in CPPC request register, is
introduced. It will be used in the CCLK DPM controller to drive the frequency
that a core is going to operate during short periods of activity, called
minimum active frequency, It could contatin a range of values from 0 to 0xff.
An EPP of zero sets the min active frequency to maximum frequency, while
an EPP of 0xff sets the min active frequency to approxiately Idle frequency.

We implement a new AMD CPU frequency driver `amd-cppc-epp` for active mode.
It requires `active` tag in Xen cmdline for users to explicitly select active
mode.
In driver `active-cppc-epp`, ->setpolicy() is hooked, not the ->target(), as
it does not depend on xen governor to do performance tuning.

We also introduce a new field "policy" (CPUFREQ_POLICY_xxx) to represent
performance policy. Right now, it supports three values:
CPUFREQ_POLICY_PERFORMANCE as maximum performance, CPUFREQ_POLICY_POWERSAVE
as the least power consumption, and CPUFREQ_POLICY_ONDEMAND as no preference,
just corresponding to "performance", "powersave" and "ondemand" Xen governor,
which benefit users from re-using "governor" in Xen cmdline to deliver
which performance policy they want to apply.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
v1 -> v2:
- Remove redundant epp_mode
- Remove pointless initializer
- Define sole caller read_epp_init_once and epp_init value to read
pre-defined BIOS epp value only once
- Combine the commit "xen/cpufreq: introduce policy type when
cpufreq_driver->setpolicy exists"
---
v2 -> v3:
- Combined with commit "x86/cpufreq: add "cpufreq=amd-cppc,active" para"
- Refactor doc about "active mode"
- Change opt_cpufreq_active to opt_active_mode
- Let caller pass epp_init when unspecified to allow the function parameter
to be of uint8_t
- Make epp_init per-cpu value
---
v3 -> v4:
- doc refinement
- use MASK_EXTR() to get epp value
- fix indentation
- replace if-else() with switch()
- combine successive comments and do refinement
- no need to introduce amd_cppc_epp_update_limit() as a wrapper
- rename cpufreq_parse_policy() with cpufreq_policy_from_governor()
- no need to use case-insensitive comparison
---
v4 -> v5:
- refine doc to state what the default is for "active" sub-option and it's of
boolean nature
- excess blank after << for AMD_CPPC_EPP_MASK
- set max_perf with lowest_perf to get utmost powersave
- refine commit message to include description about relation between "policy"
and "governor"
---
v5 -> v6:
- expand comment for "epp" field
- let min_perf set with lowest_nonliner_perf, not lowest_perf, to constrain
  performance tuning in P-states range
- refactor doc and comments
- blank lines between non-fall-through case blocks
- introduce and add entry for "CPUFREQ_POLICY_ONDEMAND"
---
v6 -> v7
- make opt_active_mode __initdata when NDEBUG=y
- add assertion check for must-zero des_perf in active mode
- use the local variable max_perf and min_perf
- read_epp_init() doesn't worth a separate function
---
v7 -> v8:
- use "ASSERT(!opt_active_mode || !des_perf);" to remove #ifndef NDEBUG
- add a new helper amd_cppc_prepare_policy()
---
 docs/misc/xen-command-line.pandoc    |   9 +-
 xen/arch/x86/acpi/cpufreq/amd-cppc.c | 135 ++++++++++++++++++++++++++-
 xen/drivers/cpufreq/utility.c        |  15 +++
 xen/include/acpi/cpufreq/cpufreq.h   |  18 ++++
 xen/include/public/sysctl.h          |   1 +
 5 files changed, 173 insertions(+), 5 deletions(-)

diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
index 3916cc81f6..c029a6e053 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -515,7 +515,7 @@ If set, force use of the performance counters for oprofile, rather than detectin
 available support.
 
 ### cpufreq
-> `= none | {{ <boolean> | xen } { [:[powersave|performance|ondemand|userspace][,[<maxfreq>]][,[<minfreq>]]] } [,verbose]} | dom0-kernel | hwp[:[<hdc>][,verbose]] | amd-cppc[:[verbose]]`
+> `= none | {{ <boolean> | xen } { [:[powersave|performance|ondemand|userspace][,[<maxfreq>]][,[<minfreq>]]] } [,verbose]} | dom0-kernel | hwp[:[<hdc>][,verbose]] | amd-cppc[:[active][,verbose]]`
 
 > Default: `xen`
 
@@ -537,6 +537,13 @@ choice of `dom0-kernel` is deprecated and not supported by all Dom0 kernels.
 * `amd-cppc` selects ACPI Collaborative Performance and Power Control (CPPC)
   on supported AMD hardware to provide finer grained frequency control
   mechanism. The default is disabled.
+* `active` is a boolean to enable amd-cppc driver in active(autonomous) mode.
+  In this mode, users don't rely on Xen governor to do performance monitoring
+  and tuning. Hardware built-in CPPC power algorithm will calculate the runtime
+  workload and adjust cores frequency automatically according to the power
+  supply, thermal, core voltage and some other hardware conditions.
+  The default is disabled, and the option only applies when `amd-cppc` is
+  enabled.
 
 There is also support for `;`-separated fallback options:
 `cpufreq=hwp;xen,verbose`.  This first tries `hwp` and falls back to `xen` if
diff --git a/xen/arch/x86/acpi/cpufreq/amd-cppc.c b/xen/arch/x86/acpi/cpufreq/amd-cppc.c
index 5b99b86fb7..bb7f4e4a9e 100644
--- a/xen/arch/x86/acpi/cpufreq/amd-cppc.c
+++ b/xen/arch/x86/acpi/cpufreq/amd-cppc.c
@@ -67,9 +67,14 @@
  * max_perf.
  * Field des_perf conveys performance level Xen governor is requesting. And it
  * may be set to any performance value in the range [min_perf, max_perf],
- * inclusive.
+ * inclusive. In active mode, des_perf must be zero.
  * Field epp represents energy performance preference, which only has meaning
- * when active mode is enabled.
+ * when active mode is enabled. The EPP is used in the CCLK DPM controller
+ * to drive the frequency that a core is going to operate during short periods
+ * of activity, called minimum active frequency, It could contatin a range of
+ * values from 0 to 0xff. An EPP of zero sets the min active frequency to
+ * maximum frequency, while an EPP of 0xff sets the min active frequency to
+ * approxiately Idle frequency.
  */
 struct amd_cppc_drv_data
 {
@@ -106,6 +111,12 @@ static DEFINE_PER_CPU_READ_MOSTLY(struct amd_cppc_drv_data *,
  */
 static DEFINE_PER_CPU_READ_MOSTLY(unsigned int, pxfreq_mhz);
 static DEFINE_PER_CPU_READ_MOSTLY(uint8_t, epp_init);
+#ifndef NDEBUG
+static bool __ro_after_init opt_active_mode;
+#else
+static bool __initdata opt_active_mode;
+#endif
+
 
 static bool __init amd_cppc_handle_option(const char *s, const char *end)
 {
@@ -118,6 +129,13 @@ static bool __init amd_cppc_handle_option(const char *s, const char *end)
         return true;
     }
 
+    ret = parse_boolean("active", s, end);
+    if ( ret >= 0 )
+    {
+        opt_active_mode = ret;
+        return true;
+    }
+
     return false;
 }
 
@@ -270,6 +288,7 @@ static void amd_cppc_write_request(unsigned int cpu, uint8_t min_perf,
 
     data->req.min_perf = min_perf;
     data->req.max_perf = max_perf;
+    ASSERT(!opt_active_mode || !des_perf);
     data->req.des_perf = des_perf;
     data->req.epp = epp;
 
@@ -417,7 +436,7 @@ static int cf_check amd_cppc_cpufreq_cpu_exit(struct cpufreq_policy *policy)
     return 0;
 }
 
-static int cf_check amd_cppc_cpufreq_cpu_init(struct cpufreq_policy *policy)
+static int amd_cppc_cpufreq_init_perf(struct cpufreq_policy *policy)
 {
     unsigned int cpu = policy->cpu;
     struct amd_cppc_drv_data *data;
@@ -450,12 +469,103 @@ static int cf_check amd_cppc_cpufreq_cpu_init(struct cpufreq_policy *policy)
 
     amd_cppc_boost_init(policy, data);
 
+    return 0;
+}
+
+static int cf_check amd_cppc_cpufreq_cpu_init(struct cpufreq_policy *policy)
+{
+    int ret;
+
+    ret = amd_cppc_cpufreq_init_perf(policy);
+    if ( ret )
+        return ret;
+
     amd_cppc_verbose(policy->cpu,
                      "CPU initialized with amd-cppc passive mode\n");
 
     return 0;
 }
 
+static int cf_check amd_cppc_epp_cpu_init(struct cpufreq_policy *policy)
+{
+    int ret;
+
+    ret = amd_cppc_cpufreq_init_perf(policy);
+    if ( ret )
+        return ret;
+
+    policy->policy = cpufreq_policy_from_governor(policy->governor);
+
+    amd_cppc_verbose(policy->cpu,
+                     "CPU initialized with amd-cppc active mode\n");
+
+    return 0;
+}
+
+static void amd_cppc_prepare_policy(struct cpufreq_policy *policy,
+                                    uint8_t *max_perf, uint8_t *min_perf,
+                                    uint8_t *epp)
+{
+    const struct amd_cppc_drv_data *data = per_cpu(amd_cppc_drv_data,
+                                                   policy->cpu);
+
+    /*
+     * On default, set min_perf with lowest_nonlinear_perf, and max_perf
+     * with the highest, to ensure performance scaling in P-states range.
+     */
+    *max_perf = data->caps.highest_perf;
+    *min_perf = data->caps.lowest_nonlinear_perf;
+
+    /*
+     * In policy CPUFREQ_POLICY_PERFORMANCE, increase min_perf to
+     * highest_perf to achieve ultmost performance.
+     * In policy CPUFREQ_POLICY_POWERSAVE, decrease max_perf to
+     * lowest_nonlinear_perf to achieve ultmost power saving.
+     * Set governor only to help print proper policy info to users.
+     */
+    switch ( policy->policy )
+    {
+    case CPUFREQ_POLICY_PERFORMANCE:
+        /* Force the epp value to be zero for performance policy */
+        *epp = CPPC_ENERGY_PERF_MAX_PERFORMANCE;
+        *min_perf = *max_perf;
+        policy->governor = &cpufreq_gov_performance;
+        break;
+
+    case CPUFREQ_POLICY_POWERSAVE:
+        /* Force the epp value to be 0xff for powersave policy */
+        *epp = CPPC_ENERGY_PERF_MAX_POWERSAVE;
+        *max_perf = *min_perf;
+        policy->governor = &cpufreq_gov_powersave;
+        break;
+
+    case CPUFREQ_POLICY_ONDEMAND:
+        /*
+         * Set epp with medium value to show no preference over performance
+         * or powersave
+         */
+        *epp = CPPC_ENERGY_PERF_BALANCE;
+        policy->governor = &cpufreq_gov_dbs;
+        break;
+
+    default:
+        *epp = per_cpu(epp_init, policy->cpu);
+        break;
+    }
+}
+
+static int cf_check amd_cppc_epp_set_policy(struct cpufreq_policy *policy)
+{
+    uint8_t max_perf, min_perf, epp;
+
+    amd_cppc_prepare_policy(policy, &max_perf, &min_perf, &epp);
+
+    amd_cppc_write_request(policy->cpu, min_perf,
+                           0 /* no des_perf in active mode */,
+                           max_perf, epp);
+    return 0;
+}
+
 static const struct cpufreq_driver __initconst_cf_clobber
 amd_cppc_cpufreq_driver =
 {
@@ -466,10 +576,27 @@ amd_cppc_cpufreq_driver =
     .exit   = amd_cppc_cpufreq_cpu_exit,
 };
 
+static const struct cpufreq_driver __initconst_cf_clobber
+amd_cppc_epp_driver =
+{
+    .name       = XEN_AMD_CPPC_EPP_DRIVER_NAME,
+    .verify     = amd_cppc_cpufreq_verify,
+    .setpolicy  = amd_cppc_epp_set_policy,
+    .init       = amd_cppc_epp_cpu_init,
+    .exit       = amd_cppc_cpufreq_cpu_exit,
+};
+
 int __init amd_cppc_register_driver(void)
 {
+    int ret;
+
     if ( !cpu_has_cppc )
         return -ENODEV;
 
-    return cpufreq_register_driver(&amd_cppc_cpufreq_driver);
+    if ( opt_active_mode )
+        ret = cpufreq_register_driver(&amd_cppc_epp_driver);
+    else
+        ret = cpufreq_register_driver(&amd_cppc_cpufreq_driver);
+
+    return ret;
 }
diff --git a/xen/drivers/cpufreq/utility.c b/xen/drivers/cpufreq/utility.c
index 987c3b5929..e2cc9ff2af 100644
--- a/xen/drivers/cpufreq/utility.c
+++ b/xen/drivers/cpufreq/utility.c
@@ -250,6 +250,7 @@ int __cpufreq_set_policy(struct cpufreq_policy *data,
     data->min = policy->min;
     data->max = policy->max;
     data->limits = policy->limits;
+    data->policy = policy->policy;
     if (cpufreq_driver.setpolicy)
         return alternative_call(cpufreq_driver.setpolicy, data);
 
@@ -281,3 +282,17 @@ int __cpufreq_set_policy(struct cpufreq_policy *data,
 
     return __cpufreq_governor(data, CPUFREQ_GOV_LIMITS);
 }
+
+unsigned int cpufreq_policy_from_governor(const struct cpufreq_governor *gov)
+{
+    if ( !strncmp(gov->name, "performance", CPUFREQ_NAME_LEN) )
+        return CPUFREQ_POLICY_PERFORMANCE;
+
+    if ( !strncmp(gov->name, "powersave", CPUFREQ_NAME_LEN) )
+        return CPUFREQ_POLICY_POWERSAVE;
+
+    if ( !strncmp(gov->name, "ondemand", CPUFREQ_NAME_LEN) )
+        return CPUFREQ_POLICY_ONDEMAND;
+
+    return CPUFREQ_POLICY_UNKNOWN;
+}
diff --git a/xen/include/acpi/cpufreq/cpufreq.h b/xen/include/acpi/cpufreq/cpufreq.h
index 5d4881eea8..9ef7c4683a 100644
--- a/xen/include/acpi/cpufreq/cpufreq.h
+++ b/xen/include/acpi/cpufreq/cpufreq.h
@@ -81,6 +81,7 @@ struct cpufreq_policy {
     int8_t              turbo;  /* tristate flag: 0 for unsupported
                                  * -1 for disable, 1 for enabled
                                  * See CPUFREQ_TURBO_* below for defines */
+    unsigned int        policy; /* CPUFREQ_POLICY_* */
 };
 DECLARE_PER_CPU(struct cpufreq_policy *, cpufreq_cpu_policy);
 
@@ -131,6 +132,23 @@ extern int cpufreq_register_governor(struct cpufreq_governor *governor);
 extern struct cpufreq_governor *__find_governor(const char *governor);
 #define CPUFREQ_DEFAULT_GOVERNOR &cpufreq_gov_dbs
 
+/*
+ * Performance Policy
+ * If cpufreq_driver->target() exists, the ->governor decides what frequency
+ * within the limits is used. If cpufreq_driver->setpolicy() exists, these
+ * following policies are available:
+ * CPUFREQ_POLICY_PERFORMANCE represents maximum performance
+ * CPUFREQ_POLICY_POWERSAVE represents least power consumption
+ * CPUFREQ_POLICY_ONDEMAND represents no preference over performance or
+ * powersave
+ */
+#define CPUFREQ_POLICY_UNKNOWN      0
+#define CPUFREQ_POLICY_POWERSAVE    1
+#define CPUFREQ_POLICY_PERFORMANCE  2
+#define CPUFREQ_POLICY_ONDEMAND     3
+
+unsigned int cpufreq_policy_from_governor(const struct cpufreq_governor *gov);
+
 /* pass a target to the cpufreq driver */
 extern int __cpufreq_driver_target(struct cpufreq_policy *policy,
                                    unsigned int target_freq,
diff --git a/xen/include/public/sysctl.h b/xen/include/public/sysctl.h
index aa29a5401c..eb3a23b038 100644
--- a/xen/include/public/sysctl.h
+++ b/xen/include/public/sysctl.h
@@ -454,6 +454,7 @@ struct xen_set_cppc_para {
 };
 
 #define XEN_AMD_CPPC_DRIVER_NAME "amd-cppc"
+#define XEN_AMD_CPPC_EPP_DRIVER_NAME "amd-cppc-epp"
 #define XEN_HWP_DRIVER_NAME "hwp"
 
 /*
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 10:11:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 10:11:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098229.1452342 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urZbN-0002vS-Bp; Thu, 28 Aug 2025 10:11:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098229.1452342; Thu, 28 Aug 2025 10:11: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 1urZbN-0002vL-8i; Thu, 28 Aug 2025 10:11:29 +0000
Received: by outflank-mailman (input) for mailman id 1098229;
 Thu, 28 Aug 2025 10:11:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ityt=3I=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1urZWV-0008DS-Pm
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 10:06:27 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on2060b.outbound.protection.outlook.com
 [2a01:111:f403:2412::60b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a82384a0-83f6-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 12:06:27 +0200 (CEST)
Received: from CH0PR04CA0013.namprd04.prod.outlook.com (2603:10b6:610:76::18)
 by BL3PR12MB6474.namprd12.prod.outlook.com (2603:10b6:208:3ba::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.21; Thu, 28 Aug
 2025 10:06:18 +0000
Received: from CH1PEPF0000A34A.namprd04.prod.outlook.com
 (2603:10b6:610:76:cafe::c) by CH0PR04CA0013.outlook.office365.com
 (2603:10b6:610:76::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.21 via Frontend Transport; Thu,
 28 Aug 2025 10:06:18 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CH1PEPF0000A34A.mail.protection.outlook.com (10.167.244.5) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Thu, 28 Aug 2025 10:06:18 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) 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; Thu, 28 Aug
 2025 05:06:18 -0500
Received: from penny-System-Product-Name.amd.com (10.180.168.240) by
 satlexmb09.amd.com (10.181.42.218) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.2.1748.10; Thu, 28 Aug 2025 03:06:16 -0700
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a82384a0-83f6-11f0-aeb2-fb57b961d000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=H6MDdO3lNzgXpfvdqZ1dpv2k/nIQpdXINaKryd+WiRTvhb6fT2RKR1lK0ILK8sc+whaUwd7xEHslyTP4uTuTxdgoJdhBV1sVVGnGR71d8dUiMopMykevtY5U5GXmhLFmfihKaV8VYhu7zaPBqSR8KAah1/K6e9P+w3KcGbwESf0z30RupgfGzuS0Qkg4Dt8iG3HIP6DH/X4a42r/lF5sSNcRnnn30OBNsUKZwEV76iwvAeHYQ9DUgJqIg6/fSi9aUnjl8CR4GFCXE2NOeEjmKv6v7h4Gb7V0BXsfHXx6ENQAxwu8XIj+MPRAx2MuxLzCOHeFYZ7mBhUDcLHNxwYd3w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=HwmF82IQ0gCZiWGuQ44M3PhUcguFvpm2RtKCzU1jWB4=;
 b=B1/hxdFMLJHeKzIp73Gceh/vLD5gqHtTj3VUTT9MrXPZKmxs5AnAw/9ah3HzPT5PxdzpEc236h0ZzJiw3JjufNW/R6C952081KM+G4ePvi2wPphlepl3pH9ZSAqrjLc69VjCrowSFfIcKkB0zRZwcjFM0oQS2N7J3Za5cXqRedpQatnfjh+t8YrWqiP9hgnmpgp66RO5VzP3wCG4GjRxOzIfWHD6g2ekCwS5YohGQdxT9nPMx5KgluQCoD9pJVWTlUC6uA/jRebcm91KxS2v/BPCCjzIrBjX+2jpCaCqJUbFTfND+NcFuj+feNh37p+tJt+yecPgFhcUKVal+WpxMA==
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=HwmF82IQ0gCZiWGuQ44M3PhUcguFvpm2RtKCzU1jWB4=;
 b=F2JDwxwQryYhSYGFyOmRgFRFMCuPNU8Y+Rj3gY8ZE509r5s1cq4Q8Vj32DySPWcIEftQUd5iqxQViPSIO7+7XRxbSUVuK3+4Fg5CG4c2DVaZuZoC++LCFEKZty29Vi1k6kS8Gnuwxlq3VK46KkJcAXHbQx90v+/bJsOGolmVChQ=
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=SATLEXMB04.amd.com; pr=C
From: Penny Zheng <Penny.Zheng@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <ray.huang@amd.com>, Penny Zheng <Penny.Zheng@amd.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>
Subject: [PATCH v8 8/8] xen/cpufreq: Adapt SET/GET_CPUFREQ_CPPC xen_sysctl_pm_op for amd-cppc driver
Date: Thu, 28 Aug 2025 18:06:01 +0800
Message-ID: <20250828100601.1777197-1-Penny.Zheng@amd.com>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To satlexmb09.amd.com
 (10.181.42.218)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH1PEPF0000A34A:EE_|BL3PR12MB6474:EE_
X-MS-Office365-Filtering-Correlation-Id: b7b54236-2d3a-4e87-c0fb-08dde61a8843
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|1800799024|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?169UKZUHuKBqAMowogzOiK5bKVvM1ycbQIhsS8CQabj13R18RjnX+SMjdk9y?=
 =?us-ascii?Q?7cj1AL8tYI83o/SsXA6a0OoEBz/JW4fwtKeR4D2NcQgwNyai+RUS8JMCNnYB?=
 =?us-ascii?Q?Zcuhyhr1vQMe66Qj+2CV9h2C3RYUlDN/GoW02gqq+UqkV50ja51Vwwjh0tbV?=
 =?us-ascii?Q?NP365mqkUXisUXZylZTa0gz+tZP0NO6g4XOSaQfepxi8vQh/dtXwax4yDgdI?=
 =?us-ascii?Q?ORwORyZ3XTnlvp2BVtFwgoyXZ++AQumiwkrr8XIvaN5MJS/oLv9hvCcBa4YD?=
 =?us-ascii?Q?UHkypcr354iaCef/U/EJQ95pv0dSICtlBDYoF6Fkb2KHSeFqCjTpWk+0YPa2?=
 =?us-ascii?Q?82Bo4GGHxcucycNWIuA9RtmcV2U5ep38k9HnA8RmekFoYP00wHhB3o+Pi7TO?=
 =?us-ascii?Q?Y1NqlAEoi6FwwzoQzIBfGTv6yG9mln8F76v4H6NdwxghUr1Krhm/lpG2lJRr?=
 =?us-ascii?Q?41sxkGQzZoWJpJ0jCBM3EIh242Hy8beFOZ5jHWr1tG2ZwY3vqlZWCOO4lHG+?=
 =?us-ascii?Q?CBE1QnZ0Dg6QCrt8S2xRnU6tR4T5oVke47WKv26sTlGyc5NngjNzQMox06oR?=
 =?us-ascii?Q?mw3ItepmskfeHlDvuP3vwZftxMlRnO7n1KJpgKN4vVdEC6Nsqmv8xPoDoIOM?=
 =?us-ascii?Q?pOQGuPd/QTVRr/3D04HJeUHeGLPbukmYTJ78FYOX/0dJhGT+au2LqYeOQwA5?=
 =?us-ascii?Q?ZWD4klMhrGTsNyEjFoOXh1HX8eqLXgiejFdmOJTmwaaqYRbcqXeCzhm8aEAS?=
 =?us-ascii?Q?skGHdnwg3AhxHBh93fMyJcOfeSwy7r+rOXyec+6xLsurWk0Zx7NQMpoWus0r?=
 =?us-ascii?Q?ma5zObkANLL9jq7dWd+97SLPAnTYtPZ15Q5AKSNse52oxMy8iT0Dr2XFI6k1?=
 =?us-ascii?Q?+MWOECD64fxlNtn2z1T2gjRSOHs3A4jCePVtMVQy6Ql0buOO48M2p4jT6fX0?=
 =?us-ascii?Q?4A6AyXVNapzF84iGrTPFDWZiwiHW87ZXAOSRTlXlojrp4Iqx+jQt0hJPA/F4?=
 =?us-ascii?Q?HWFlnbohVIk5lFwjhW1k+wOgoKCkLnG0uZYYYEzDLjEhOExuXqdU7LyxPvrx?=
 =?us-ascii?Q?cJPPgdxpIb/f5T6ZUtJQfLsl6h4y+8XysN805U4qRRT80J7RXUmx3THcvOnY?=
 =?us-ascii?Q?cvNSWKW/5Gjp7e/VIUP5kSfbnbxxx6txnRVbKqPRP1jBlSmcaNby8RfLOmSh?=
 =?us-ascii?Q?fK+BaA2OtuSfFNwQ0i9TPkbmpYYq2nQ/gpKJOL24m99O3sWh1N+0q18ek59l?=
 =?us-ascii?Q?RLMiV/FhJhjJgc1fb4p0sEGNwgceJsO6Chl0097DhoSGojnaVFsWFajE32I3?=
 =?us-ascii?Q?UCknYdwWzZrw/fFQ3puP8xX/RkPP7r9jdX/lt4rpPVz5o8JsIFwDyeQ7GUwr?=
 =?us-ascii?Q?VwwVG1ouZOSQhyNkyFrON3M2LpWHYAWJfobt1WIr6OvubKDws8p+JN9pziqp?=
 =?us-ascii?Q?BU90LrxAknA8TAsqfK9KJNhiQeu0WP+TXf7+cyWNwdDlzBmnZbeTtt+Rg52+?=
 =?us-ascii?Q?jkH62u3agWrmk6LzysMFs/ZU7c7rfVTCLB8B?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 10:06:18.5594
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b7b54236-2d3a-4e87-c0fb-08dde61a8843
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH1PEPF0000A34A.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR12MB6474

Introduce helper set_amd_cppc_para() and get_amd_cppc_para() to
SET/GET CPPC-related para for amd-cppc/amd-cppc-epp driver.

In get_cpufreq_cppc()/set_cpufreq_cppc(), we include
"processor_pminfo[cpuid]->init & XEN_CPPC_INIT" condition check to deal with
cpufreq driver in amd-cppc.
We also borrow governor field to indicate policy info for CPPC active mode.

Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Acked-by: Anthony PERARD <anthony.perard@vates.tech>
---
v1 -> v2:
- Give the variable des_perf an initializer of 0
- Use the strncmp()s directly in the if()
---
v3 -> v4
- refactor comments
- remove double blank lines
- replace amd_cppc_in_use flag with XEN_PROCESSOR_PM_CPPC
---
v4 -> v5:
- add new field "policy" in "struct xen_cppc_para"
- add new performamce policy XEN_CPUFREQ_POLICY_BALANCE
- drop string comparisons with "processor_pminfo[cpuid]->init & XEN_CPPC_INIT"
and "cpufreq.setpolicy == NULL"
- Blank line ahead of the main "return" of a function
- refactor comments, commit message and title
---
v5 -> v6:
- remove duplicated manifest constants, and just move it to public header
- use "else if" to avoid confusion that it looks as if both paths could be taken
- add check for legitimate perf values
- use "unknown" instead of "none"
- introduce "CPUFREQ_POLICY_END" for array overrun check in user space tools
---
v6 -> v7:
- use ARRAY_SIZE() instead
- ->policy print is avoided in passive mode and print "unknown" in invalid
cases
- let cpufreq_is_governorless() being the variable's initializer
- refactor with the conditional operator to increase readability
- move duplicated defination ahead and use local variable
- avoid using "else-condition" to bring "dead code" in Misra's nomeclature
- move the comment out of public header and into the respective internal
struct field
- wrap set{,get}_amd_cppc_para() with CONFIG_PM_OP
- add symmetry scenario for maximum check
---
v7 -> v8:
- change function name to amd_cppc_get{,set}_para()
- fix too deep indentation, and indent according to pending open parentheses
- missing -EINVAL when no flag is set at all
- use new helper amd_cppc_prepare_policy() to reduce redundancy
- borrow governor field to indicate policy info
---
 tools/misc/xenpm.c                   |  13 ++-
 xen/arch/x86/acpi/cpufreq/amd-cppc.c | 164 +++++++++++++++++++++++++++
 xen/drivers/acpi/pm-op.c             |  28 +++--
 xen/include/acpi/cpufreq/cpufreq.h   |   4 +
 4 files changed, 196 insertions(+), 13 deletions(-)

diff --git a/tools/misc/xenpm.c b/tools/misc/xenpm.c
index 893a0afe11..bda9c62aa0 100644
--- a/tools/misc/xenpm.c
+++ b/tools/misc/xenpm.c
@@ -832,11 +832,14 @@ static void print_cppc_para(unsigned int cpuid,
 /* print out parameters about cpu frequency */
 static void print_cpufreq_para(int cpuid, struct xc_get_cpufreq_para *p_cpufreq)
 {
-    bool is_governor_less = false;
+    bool is_governor_less = false, is_cppc_active = false;
     int i;
 
-    if ( !strcmp(p_cpufreq->scaling_driver, XEN_HWP_DRIVER_NAME) ||
-         !strcmp(p_cpufreq->scaling_driver, XEN_AMD_CPPC_EPP_DRIVER_NAME) )
+    if ( !strcmp(p_cpufreq->scaling_driver, XEN_AMD_CPPC_EPP_DRIVER_NAME) )
+        is_cppc_active = true;
+
+    if ( is_cppc_active ||
+         !strcmp(p_cpufreq->scaling_driver, XEN_HWP_DRIVER_NAME) )
         is_governor_less = true;
 
     printf("cpu id               : %d\n", cpuid);
@@ -899,6 +902,10 @@ static void print_cpufreq_para(int cpuid, struct xc_get_cpufreq_para *p_cpufreq)
                p_cpufreq->u.s.scaling_cur_freq);
     }
 
+    /* Translate governor info to policy info in CPPC active mode */
+    if ( is_cppc_active )
+        printf("policy               : %s\n", p_cpufreq->u.s.scaling_governor);
+
     printf("turbo mode           : %s\n",
            p_cpufreq->turbo_enabled ? "enabled" : "disabled or n/a");
     printf("\n");
diff --git a/xen/arch/x86/acpi/cpufreq/amd-cppc.c b/xen/arch/x86/acpi/cpufreq/amd-cppc.c
index bb7f4e4a9e..eca455240f 100644
--- a/xen/arch/x86/acpi/cpufreq/amd-cppc.c
+++ b/xen/arch/x86/acpi/cpufreq/amd-cppc.c
@@ -566,6 +566,170 @@ static int cf_check amd_cppc_epp_set_policy(struct cpufreq_policy *policy)
     return 0;
 }
 
+#ifdef CONFIG_PM_OP
+int amd_cppc_get_para(const struct cpufreq_policy *policy,
+                      struct xen_get_cppc_para *cppc_para)
+{
+    const struct amd_cppc_drv_data *data = per_cpu(amd_cppc_drv_data,
+                                                   policy->cpu);
+
+    if ( data == NULL )
+        return -ENODATA;
+
+    cppc_para->lowest           = data->caps.lowest_perf;
+    cppc_para->lowest_nonlinear = data->caps.lowest_nonlinear_perf;
+    cppc_para->nominal          = data->caps.nominal_perf;
+    cppc_para->highest          = data->caps.highest_perf;
+    cppc_para->minimum          = data->req.min_perf;
+    cppc_para->maximum          = data->req.max_perf;
+    cppc_para->desired          = data->req.des_perf;
+    cppc_para->energy_perf      = data->req.epp;
+
+    return 0;
+}
+
+int amd_cppc_set_para(struct cpufreq_policy *policy,
+                      const struct xen_set_cppc_para *set_cppc)
+{
+    unsigned int cpu = policy->cpu;
+    struct amd_cppc_drv_data *data = per_cpu(amd_cppc_drv_data, cpu);
+    uint8_t max_perf, min_perf, des_perf, epp;
+    bool active_mode = cpufreq_is_governorless(cpu);
+
+    if ( data == NULL )
+        return -ENOENT;
+
+    /* Only allow values if params bit is set. */
+    if ( (!(set_cppc->set_params & XEN_SYSCTL_CPPC_SET_DESIRED) &&
+          set_cppc->desired) ||
+         (!(set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MINIMUM) &&
+          set_cppc->minimum) ||
+         (!(set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MAXIMUM) &&
+          set_cppc->maximum) ||
+         (!(set_cppc->set_params & XEN_SYSCTL_CPPC_SET_ENERGY_PERF) &&
+          set_cppc->energy_perf) )
+        return -EINVAL;
+
+    /* Return if there is nothing to do. */
+    if ( set_cppc->set_params == 0 )
+        return 0;
+
+    /*
+     * Validate all parameters
+     * Maximum performance may be set to any performance value in the range
+     * [Nonlinear Lowest Performance, Highest Performance], inclusive but must
+     * be set to a value that is larger than or equal to minimum Performance.
+     */
+    if ( (set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MAXIMUM) &&
+         (set_cppc->maximum > data->caps.highest_perf ||
+          (set_cppc->maximum <
+           (set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MINIMUM
+            ? set_cppc->minimum
+            : data->req.min_perf))) )
+        return -EINVAL;
+    /*
+     * Minimum performance may be set to any performance value in the range
+     * [Nonlinear Lowest Performance, Highest Performance], inclusive but must
+     * be set to a value that is less than or equal to Maximum Performance.
+     */
+    if ( (set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MINIMUM) &&
+         (set_cppc->minimum < data->caps.lowest_nonlinear_perf ||
+          (set_cppc->minimum >
+           (set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MAXIMUM
+            ? set_cppc->maximum
+            : data->req.max_perf))) )
+        return -EINVAL;
+    /*
+     * Desired performance may be set to any performance value in the range
+     * [Minimum Performance, Maximum Performance], inclusive.
+     */
+    if ( set_cppc->set_params & XEN_SYSCTL_CPPC_SET_DESIRED )
+    {
+        if ( active_mode )
+            return -EOPNOTSUPP;
+
+        if ( (set_cppc->desired >
+              (set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MAXIMUM
+               ? set_cppc->maximum
+               : data->req.max_perf)) ||
+             (set_cppc->desired <
+              (set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MINIMUM
+               ? set_cppc->minimum
+               : data->req.min_perf)) )
+            return -EINVAL;
+    }
+    /*
+     * Energy Performance Preference may be set with a range of values
+     * from 0 to 0xFF
+     */
+    if ( set_cppc->set_params & XEN_SYSCTL_CPPC_SET_ENERGY_PERF )
+    {
+        if ( !active_mode )
+            return -EOPNOTSUPP;
+
+        if ( set_cppc->energy_perf > UINT8_MAX )
+            return -EINVAL;
+    }
+
+    /* Activity window not supported in MSR */
+    if ( set_cppc->set_params & XEN_SYSCTL_CPPC_SET_ACT_WINDOW )
+        return -EOPNOTSUPP;
+
+    des_perf = data->req.des_perf;
+    /*
+     * Apply presets:
+     * XEN_SYSCTL_CPPC_SET_PRESET_POWERSAVE/PERFORMANCE/ONDEMAND are
+     * only available when CPPC in active mode
+     */
+    switch ( set_cppc->set_params & XEN_SYSCTL_CPPC_SET_PRESET_MASK )
+    {
+    case XEN_SYSCTL_CPPC_SET_PRESET_POWERSAVE:
+        if ( !active_mode )
+            return -EINVAL;
+        policy->policy = CPUFREQ_POLICY_POWERSAVE;
+        break;
+
+    case XEN_SYSCTL_CPPC_SET_PRESET_PERFORMANCE:
+        if ( !active_mode )
+            return -EINVAL;
+        policy->policy = CPUFREQ_POLICY_PERFORMANCE;
+        break;
+
+    case XEN_SYSCTL_CPPC_SET_PRESET_ONDEMAND:
+        if ( !active_mode )
+            return -EINVAL;
+        policy->policy = CPUFREQ_POLICY_ONDEMAND;
+        break;
+
+    case XEN_SYSCTL_CPPC_SET_PRESET_NONE:
+        if ( active_mode )
+            policy->policy = CPUFREQ_POLICY_UNKNOWN;
+        break;
+
+    default:
+        return -EINVAL;
+    }
+    amd_cppc_prepare_policy(policy, &max_perf, &min_perf, &epp);
+
+    /* Further customize presets if needed */
+    if ( set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MINIMUM )
+        min_perf = set_cppc->minimum;
+
+    if ( set_cppc->set_params & XEN_SYSCTL_CPPC_SET_MAXIMUM )
+        max_perf = set_cppc->maximum;
+
+    if ( set_cppc->set_params & XEN_SYSCTL_CPPC_SET_ENERGY_PERF )
+        epp = set_cppc->energy_perf;
+
+    if ( set_cppc->set_params & XEN_SYSCTL_CPPC_SET_DESIRED )
+        des_perf = set_cppc->desired;
+
+    amd_cppc_write_request(cpu, min_perf, des_perf, max_perf, epp);
+
+    return 0;
+}
+#endif /* CONFIG_PM_OP */
+
 static const struct cpufreq_driver __initconst_cf_clobber
 amd_cppc_cpufreq_driver =
 {
diff --git a/xen/drivers/acpi/pm-op.c b/xen/drivers/acpi/pm-op.c
index 371deaf678..bcb3b9b2a7 100644
--- a/xen/drivers/acpi/pm-op.c
+++ b/xen/drivers/acpi/pm-op.c
@@ -84,6 +84,8 @@ static int get_cpufreq_cppc(unsigned int cpu,
 
     if ( hwp_active() )
         ret = get_hwp_para(cpu, cppc_para);
+    else if ( processor_pminfo[cpu]->init & XEN_CPPC_INIT )
+        ret = amd_cppc_get_para(per_cpu(cpufreq_cpu_policy, cpu), cppc_para);
 
     return ret;
 }
@@ -154,6 +156,17 @@ static int get_cpufreq_para(struct xen_sysctl_pm_op *op)
     else
         strlcpy(op->u.get_para.scaling_driver, "Unknown", CPUFREQ_NAME_LEN);
 
+    /*
+     * In CPPC active mode, we are borrowing governor field to indicate
+     * policy info.
+     */
+    if ( policy->governor->name[0] )
+        strlcpy(op->u.get_para.u.s.scaling_governor,
+                policy->governor->name, CPUFREQ_NAME_LEN);
+    else
+        strlcpy(op->u.get_para.u.s.scaling_governor, "Unknown",
+                CPUFREQ_NAME_LEN);
+
     if ( !cpufreq_is_governorless(op->cpuid) )
     {
         if ( !(scaling_available_governors =
@@ -178,13 +191,6 @@ static int get_cpufreq_para(struct xen_sysctl_pm_op *op)
         op->u.get_para.u.s.scaling_max_freq = policy->max;
         op->u.get_para.u.s.scaling_min_freq = policy->min;
 
-        if ( policy->governor->name[0] )
-            strlcpy(op->u.get_para.u.s.scaling_governor,
-                    policy->governor->name, CPUFREQ_NAME_LEN);
-        else
-            strlcpy(op->u.get_para.u.s.scaling_governor, "Unknown",
-                    CPUFREQ_NAME_LEN);
-
         /* governor specific para */
         if ( !strncasecmp(op->u.get_para.u.s.scaling_governor,
                           "userspace", CPUFREQ_NAME_LEN) )
@@ -321,10 +327,12 @@ static int set_cpufreq_cppc(struct xen_sysctl_pm_op *op)
     if ( !policy || !policy->governor )
         return -ENOENT;
 
-    if ( !hwp_active() )
-        return -EOPNOTSUPP;
+    if ( hwp_active() )
+        return set_hwp_para(policy, &op->u.set_cppc);
+    if ( processor_pminfo[op->cpuid]->init & XEN_CPPC_INIT )
+        return amd_cppc_set_para(policy, &op->u.set_cppc);
 
-    return set_hwp_para(policy, &op->u.set_cppc);
+    return -EOPNOTSUPP;
 }
 
 int do_pm_op(struct xen_sysctl_pm_op *op)
diff --git a/xen/include/acpi/cpufreq/cpufreq.h b/xen/include/acpi/cpufreq/cpufreq.h
index 7caeae26cf..e8b4e955a2 100644
--- a/xen/include/acpi/cpufreq/cpufreq.h
+++ b/xen/include/acpi/cpufreq/cpufreq.h
@@ -293,6 +293,10 @@ int acpi_cpufreq_register(void);
 
 int amd_cppc_cmdline_parse(const char *s, const char *e);
 int amd_cppc_register_driver(void);
+int amd_cppc_get_para(const struct cpufreq_policy *policy,
+                      struct xen_get_cppc_para *cppc_para);
+int amd_cppc_set_para(struct cpufreq_policy *policy,
+                      const struct xen_set_cppc_para *set_cppc);
 
 /*
  * Governor-less cpufreq driver indicates the driver doesn't rely on Xen
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 10:18:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 10:18:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098258.1452352 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urZhg-0003zv-4I; Thu, 28 Aug 2025 10:18:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098258.1452352; Thu, 28 Aug 2025 10:18:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urZhg-0003zo-1V; Thu, 28 Aug 2025 10:18:00 +0000
Received: by outflank-mailman (input) for mailman id 1098258;
 Thu, 28 Aug 2025 10:17:58 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=pYI3=3I=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urZhe-0003zi-2x
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 10:17:58 +0000
Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com
 [2a00:1450:4864:20::633])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 43761dc2-83f8-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 12:17:55 +0200 (CEST)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-afec56519c4so91248166b.0
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 03:17: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
 a640c23a62f3a-afef34bdc53sm41645866b.26.2025.08.28.03.17.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 03:17: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>
X-Inumbo-ID: 43761dc2-83f8-11f0-ae26-e363de0e7a9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756376275; x=1756981075; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=otpGHBbvUAq5mC7d429NbrV6+mzS05fO2sCUjHWLPXY=;
        b=UWHseiE+tu1IsIB7oHGcb24Kr4UT1gpDRsLGomkSR9EsCdvWJRMvhDEs2a+Dck4BX8
         dqpFAthhIHJSHDfLXn5q/UPR2McygBlRg5cnuZWGHMnyH68zhlavSl8laeS5xGzypnyf
         wCMvIHABI+4EzQdOQribA8fmV5l1d1gCwXXwEhlQ3qNg1sTxaGf/s7bxTLSm+eYyb+Kh
         PvofGBlZ55+/+Pzglrfsw+nIoh/c/c+FxaTBqkeJ5iMJ5Mr+GztqdKphsJrpMZMi5Rbm
         T/a+SNg3fTOr34vyi2t1EjICzFLfRsP+z+6MgX7acjIXCAlH3NQW+c92LYF7WEOPrg9P
         Lz+w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756376275; x=1756981075;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=otpGHBbvUAq5mC7d429NbrV6+mzS05fO2sCUjHWLPXY=;
        b=BuAr9WcMGzBURYweN5b2OVoFOxSRcDXqvpVu/5PId7ExYkc1aOvLCjHbsxCp3mfytu
         7bX2Qykr3IszN3Ke/nSzid//8Jsohvw8rQfX3qY7NCdtG+Ney2rUU7xPqOuYkywToQKr
         0AQiGStFJYEG1t+wQEXpGes4mFaSMZmbBx81GV6W90WqmfzkHknQxXCHWrNJfROf3G8H
         iEhnmHzpJx2wcYj8svch5IhADB6U0DfL0NO1YFhGPoVhIZYIFkp5kPEPtJI5nR50UrhF
         ZlIP+m1b1d9Q1ney4MaZ1hDaKEHOlBnqAN6HxxB7l2+w4jcuk4iXrzu0pkJc0SJdXO3F
         hemw==
X-Gm-Message-State: AOJu0Yzw0z03pNVEqtYqnYnxE+NRf86Z2Jj3BCJ2c2FHF0htrD2A7J+P
	19qsRA+xihXHAFV2TC341KVRLxqSwf+4xqczM0tITHq6YpFc53fssfoPH14mSFu7tPW3mDhBvQY
	sqr8=
X-Gm-Gg: ASbGnctKNQCMm2ITbNg+5aLI62uwXO2zS/gWiyDRqbDR3TudvKPrVzUmh4HhruKWRw/
	tyzNuJ/RS/G/brdCJL8IyBw8JlczrCQrd2axzJtitZKxq7Xf5RUr7ATHEneyb6VZcZQoVdfvxYr
	LiIk2zdEmqCRfnY3Y010cSTH7cG3Dh+q8lP1ryg23qPWNFD8d1wEqaY6jUbpL9vBcC9nlXBu8I/
	tjLvLjvhXuMWltE/BiFYyQ/VWo7eeBO12n2F/ni4hhMN9Y+ZXJI1Fvk0Rh3kkymf4679yn68gjl
	aGx/krPsB6/OAQKegiEi/Iw07FKjVdPSFHuuzjZDc41C3oo/zVQT6MJA7KWvJqZziBsLuXh9KnH
	h1MKYCBTZ3wVsINeEkOd4H0462pzYX3u8GW1cx4LlEiLhLpUUhaykDdB0NP4KpsZQpBM3aTGXuL
	AxbVDnbk+m50sx2Ei+5g==
X-Google-Smtp-Source: AGHT+IFdm4ctR1loWwODO43SldozgQ5l75xIYStqeZXDSJo5paZ4TbIjCWcdBe8kKZBKFjVeU3vlwQ==
X-Received: by 2002:a17:907:3f94:b0:afe:caf7:6dea with SMTP id a640c23a62f3a-afecaf7724cmr451468666b.3.1756376275011;
        Thu, 28 Aug 2025 03:17:55 -0700 (PDT)
Message-ID: <7172dc7c-575c-45f0-9cd9-1aaf067e0e46@suse.com>
Date: Thu, 28 Aug 2025 12:17:53 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: MCA hypercall with PVH
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
 Jason Andryuk <jason.andryuk@amd.com>
References: <318f8ef3-aa52-421b-b9cb-6cd6139e1dd1@amd.com>
 <c011bc78-4ce0-4c43-9638-f03aee41816e@suse.com> <aLAmZGDn9QsBZWrb@Mac.lan>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aLAmZGDn9QsBZWrb@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 28.08.2025 11:50, Roger Pau MonnÃ© wrote:
> On Thu, Aug 28, 2025 at 10:48:49AM +0200, Jan Beulich wrote:
>> On 28.08.2025 03:22, Jason Andryuk wrote:
>>> The MCA hypercall, do_mca(), is only available for PV.  That is, it's 
>>> only added to the hypercall table for PV.  Is there a particular reason 
>>> it was omitted from PVH, or did PVH dom0 just not exist?
>>
>> PVH Dom0 didn't exist back at the time, yes, but it's more than this. The
>> hypercall, in some places, deals with MFNs, which aren't "visible" to PVH
>> Dom0. IOW enabling it (perhaps just partly) would need to be done with
>> extra care.
> 
> I think there's also a question of whether we want to use a PV
> interface here, or try for Xen to mediate between the hardware domain
> and the native interface, possibly exposing some kind of partially
> emulated view that matches the native interface, and thus avoids
> having to use a PV driver in the hardware domain.
> 
> I've opened a GitLab ticket long ago about MCE:
> 
> https://gitlab.com/xen-project/xen/-/issues/101
> 
> But didn't look into it.  I think we need some prior investigation to
> figure out whether it would be feasible to expose a native MCA
> interface to the hardware domain, as that would be the preference for
> PVH (rather than re-using the classic PV interfaces).
> 
> The main barrier here is the disassociation between the hardware
> domain physical memory map versus the host one, as the MCE/MCA
> drivers will need to operate based on the host memory map, not the
> one used by the hardware domain.

Right. Obtaining the host memory map alone already requires some level
of PV-ness. Associating memory addresses (necessarily surfaced as MFNs,
as not all MFNs have an associated GFN in Dom0) back to Dom0's own
memory would further require exposure of the M2P. That's getting pretty
heavily PV already, imo. And we haven't arrived at DomU-owned pages,
yet.

Jan

> I think (some?) of the MSRs also contain CPU specific status/errors,
> and hence using a native interface would require the hardware domain
> vCPU count to be equal to the host pCPU count.
> 
> Nit: I've just taken a quick look at do_mca() but it looked like the
> sharing of the data would be better done using acquire_resource if
> possible, as to avoid repeated hypercalls.
> 
> Thanks, Roger.



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 10:22:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 10:22:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098269.1452361 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urZmD-00067T-Kd; Thu, 28 Aug 2025 10:22:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098269.1452361; Thu, 28 Aug 2025 10:22: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 1urZmD-00067M-Hl; Thu, 28 Aug 2025 10:22:41 +0000
Received: by outflank-mailman (input) for mailman id 1098269;
 Thu, 28 Aug 2025 10:22:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FrxM=3I=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1urZmB-00065w-QO
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 10:22:39 +0000
Received: from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com
 [2a00:1450:4864:20::42c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ebbe72b0-83f8-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 12:22:38 +0200 (CEST)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-3c7aa4ce85dso568480f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 03:22:38 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3ca6240b4ecsm13912713f8f.43.2025.08.28.03.22.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 03:22: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>
X-Inumbo-ID: ebbe72b0-83f8-11f0-aeb2-fb57b961d000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756376557; x=1756981357; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=rLgtaLuwsQZE1xgf7YgtslFO7X/R3/bx7xuoEEzHVUU=;
        b=nJsDRS7FlbWumQ3bY3g6XzH5xD2FCu3GQ/ByqFVqqsAxlZaMDJyrC0cuZ4iqINlT55
         Foy01hrx7xT8ewDMO4bIJlG+sn6yvaJGaFadYyVLL6HtAzV6kfpQbpBh14rQVjkrYPL5
         tSS5kW2+leL2IswtSryBjrS1ZxiCDsfpE8gr8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756376557; x=1756981357;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rLgtaLuwsQZE1xgf7YgtslFO7X/R3/bx7xuoEEzHVUU=;
        b=qtTyfCxykyi36bvtcu5cHUZE7/jp+91QKRunWotdoxdAY72MMPUgBWpligwxZW5OI4
         BLX0zd3C/wJHZyjicYo4a/BbtdwjIV5hj75aUD8Xn1izL6QMh2Fp3n3v0Im/Py/26kMG
         FhJUwoF6Satox+32ThTt2Oo+C7YAHZF5g9Gp8SKxldFinheXK3rFOyjQ88QsDF40DW2v
         hFn/Lj1iC1LG7ZsxL3e6oAiQFmAyoKumLurpdluhpHyp0pQs9PHo7RoHMU9YNhkEEyHE
         Zgz14jebmo+puGqk5/aQRUOZs+fnvgxEZRCrBgWo6OvnD3nmWQb6VmyN/IOwTUSV8MW6
         POWg==
X-Forwarded-Encrypted: i=1; AJvYcCUwYRJRAJn7sMtrFEYzy6uixwYY2LKTwKX+0jKeyXd28NkUFdfIk8RKcSidBFcdCJa1PxmBdbc/CQU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyzmjo2NcxaLFfN5d71MOeMTqNiNWtcbnaszDo/rBsM3MZY8Wn/
	BeaCQCZQhG2klojJPZsdYQ7aTVo/orJehEY4AduRVgIiNDbjvDPVMSOChsRG6WSpqkQ=
X-Gm-Gg: ASbGncvpKaGxwFMUDlCHTUfQdbR4cRubtvtSHy/izG3CaxcJK01893p5SdownHtJ2uy
	whSMap43hgUsC2hLv0B7LhOHoY9hcRXvamjkSY7FCgzWQbdYZN31TaSQSq66dEbVsE2/NvcSXny
	tiM0yXBJCc2K/VfpzAcvBZdq+EED6nkfKBdFipoYGVbX+b4TQWcWiTHTdLYoZbLfHgwENiHoR3E
	lbW7skGv2blGp3H62mLl03WgfbgWOdJfKjNyg6DuIQPPVbXKycIqxoI/i4OrZYCpj6uZiOpBg/k
	SJt52+oHTxBmoF9sP+ujayw1G5tPbfRyaHd09A+MBkK8XEcvs6uaaY/nphaPfznDwXuAVTEk37R
	AwnUqQlyzKuE8ITHE+hz043HXSB496yPg7xCg+d0zg8Nb7/3PnFNzmkF0jL01pI4O9cNjH8XxJ3
	5U3sE=
X-Google-Smtp-Source: AGHT+IG/UlaOaQoNYPhixBjUfCeqLXurU0SfylPOEP3Q+fCcAzLiRrnjH6Ja2u7krbT80MYFc8h0Wg==
X-Received: by 2002:a05:6000:238a:b0:3b8:d79a:6a60 with SMTP id ffacd0b85a97d-3c5daa27b08mr17093996f8f.3.1756376557224;
        Thu, 28 Aug 2025 03:22:37 -0700 (PDT)
Message-ID: <8e126855-ed0b-4046-a018-8fca6d20db49@citrix.com>
Date: Thu, 28 Aug 2025 11:22:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] hvmloader: Update to SMBIOS 2.6
To: Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>
References: <b569a298a6270ae04eaf433f7de9ce1f3e248e5f.1755870287.git.teddy.astie@vates.tech>
 <6e9b7b96-a506-40ed-95b6-6ad00ba9a27a@citrix.com>
 <74665857-3f0b-43e6-b31f-d498d9e7fdc3@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: <74665857-3f0b-43e6-b31f-d498d9e7fdc3@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 27/08/2025 9:27 pm, Teddy Astie wrote:
> Le 27/08/2025 Ã  19:49, Andrew Cooper a Ã©critÂ :
>> On 22/08/2025 2:47 pm, Teddy Astie wrote:
>>> Currently, hvmloader uses SMBIOS 2.4, however, when using OVMF, the
>>> SMBIOS is patched to 2.8, which has clarified the UUID format (as GUID).
>>>
>>> In Linux, if the SMBIOS version is >= 2.6, the GUID format is used, else
>>> (undefined as per SMBIOS spec), big endian is used (used by Xen). Therefore,
>>> you have a endian mismatch causing the UUIDs to mismatch in the guest.
>>>
>>> $ cat /sys/hypervisor/uuid
>>> e865e63f-3d30-4f0b-83e0-8fdfc1e30eb7
>>> $ cat /sys/devices/virtual/dmi/id/product_uuid
>>> 3fe665e8-303d-0b4f-83e0-8fdfc1e30eb7
>>> $ cat /sys/devices/virtual/dmi/id/product_serial
>>> e865e63f-3d30-4f0b-83e0-8fdfc1e30eb7
>>>
>>> This patch updates the SMBIOS version from 2.4 to 2.6 and fixup the UUID
>>> written in the table; which effectively fix this endianness mismatch with
>>> OVMF; while the UUID displayed by Linux is still the same for SeaBIOS.
>>>
>>> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
>>> ---
>>> This effectively changes the UUID seen with UEFI guests as it was
>>> actually inconsistent with SeaBIOS and SMBIOS expectations.
>>> ---
>> I agree this is a real bug and needs fixing.Â  However, ...
>>
>>
>>>   tools/firmware/hvmloader/smbios.c | 20 ++++++++++++++++++--
>>>   1 file changed, 18 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/tools/firmware/hvmloader/smbios.c b/tools/firmware/hvmloader/smbios.c
>>> index 6bcdcc233a..f4822ae6f8 100644
>>> --- a/tools/firmware/hvmloader/smbios.c
>>> +++ b/tools/firmware/hvmloader/smbios.c
>>> @@ -352,7 +352,7 @@ smbios_entry_point_init(void *start,
>>>       memcpy(ep->anchor_string, "_SM_", 4);
>>>       ep->length = 0x1f;
>>>       ep->smbios_major_version = 2;
>>> -    ep->smbios_minor_version = 4;
>>> +    ep->smbios_minor_version = 6;
>>>       ep->max_structure_size = max_structure_size;
>>>       ep->entry_point_revision = 0;
>>>       memcpy(ep->intermediate_anchor_string, "_DMI_", 5);
>>> @@ -462,7 +462,23 @@ smbios_type_1_init(void *start, const char *xen_version,
>>>       p->version_str = 3;
>>>       p->serial_number_str = 4;
>>>   
>>> -    memcpy(p->uuid, uuid, 16);
>>> +    /*
>>> +     * Xen uses OSF DCE UUIDs which is fully big endian, however,
>>> +     * GUIDs (which requirement is clarified by SMBIOS >= 2.6) has the
>>> +     * first 3 components appearing as being little endian and the rest
>>> +     * as still being big endian.
>> ... this is not an accurate statement.
>>
>> Xen specifically tries to treat a xen_domain_handle_t as an opaque blob.
>>
>> The only two areas I can see ascribing any structure are the 'q'
>> debugkey (not exactly a strong ABI statement), and the arinc635
>> scheduler whose use is buggy (uuids are not unique in Xen; it's the
>> domid which is).
>>
>> It is an error that a format isn't stated, but the format comes from the
>> toolstack.Â  We'd better hope that all toolstacks use OSF DCE UUIDs, or
>> this is going to badly wrong.
>>
> I agree in principle. maybe OSF DCE UUID is not the proper definition 
> (even though it implies the same) but I should rather use RFC 9562 UUIDs 
> but refering to the string representation rather than the UUID meaning 
> itself.
>
> The RFC 9562 defines the UUID as being sequenced as big endian and 
> string represented as > UUID     = 4hexOctet "-"
>>            2hexOctet "-"
>>            2hexOctet "-"
>>            2hexOctet "-"
>>            6hexOctet
>> hexOctet = HEXDIG HEXDIG
>> DIGIT    = %x30-39
>> HEXDIG   = DIGIT / "A" / "B" / "C" / "D" / "E" / "F"
> This matches the UUID encoding provided by XEN_DEFINE_UUID and is used 
> by libxl, libvirt and XAPI and considered by Linux when reading the 
> UUID. However, it may always not be a "valid" UUID strictly speaking but 
> it doesn't really matter since we only care about its binary/string 
> representation.
>
>> And on that note, the toolstacks are not the same.Â  Xapi for example
>> uses reads 16 bytes out of /dev/urandom.
>>
>> Whatever we end up doing, the fix must include a change to
>> xen/include/public/version.h stating the format of the UUID.
>>
> Something like
>
> diff --git a/xen/include/public/xen.h b/xen/include/public/xen.h
> index 04fc891353..3241e8dd2b 100644
> --- a/xen/include/public/xen.h
> +++ b/xen/include/public/xen.h
> @@ -975,6 +975,10 @@ typedef struct dom0_vga_console_info {
>   #define xen_vga_console_info dom0_vga_console_info
>   #define xen_vga_console_info_t dom0_vga_console_info_t
>
> +/*
> + * The guest handled provided by toolstack encoded as a UUID in
> + * big-endian order. Its string representation follows RFC 9562.
> + */
>   typedef uint8_t xen_domain_handle_t[16];
>
>   __DEFINE_XEN_GUEST_HANDLE(uint8,  uint8_t);
>
> ?
>
> So that we're converting between big-endian encoded UUID (RFC 9562) and 
> Microsoft GUID (which doesn't care about its content but only about its 
> endianness regarding formatting).

I'd be tempted to be rather more explicit.

diff --git a/xen/include/public/xen.h b/xen/include/public/xen.h
index 82b9c05a76b7..f1592dc059e2 100644
--- a/xen/include/public/xen.h
+++ b/xen/include/public/xen.h
@@ -973,6 +973,13 @@ typedef struct dom0_vga_console_info {
Â #define xen_vga_console_info dom0_vga_console_info
Â #define xen_vga_console_info_t dom0_vga_console_info_t
Â 
+/*
+ * The domain handle is chosen by the toolstack, and intended to hold a UUID
+ * conforming to RFC 9562 (i.e. big endian).
+ *
+ * Certain cases (e.g. SMBios) transform it to a Microsoft GUID (little
+ * endian) for presentation to the guest.
+ */
Â typedef uint8_t xen_domain_handle_t[16];
Â 
Â __DEFINE_XEN_GUEST_HANDLE(uint8,Â  uint8_t);


~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 10:22:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 10:22:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098270.1452372 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urZmR-0006Tv-SS; Thu, 28 Aug 2025 10:22:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098270.1452372; Thu, 28 Aug 2025 10:22:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urZmR-0006Tm-Of; Thu, 28 Aug 2025 10:22:55 +0000
Received: by outflank-mailman (input) for mailman id 1098270;
 Thu, 28 Aug 2025 10:22:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=pYI3=3I=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urZmR-0006T1-7M
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 10:22:55 +0000
Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com
 [2a00:1450:4864:20::630])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f3f77c8b-83f8-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 12:22:51 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-afcb72d5409so124120266b.0
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 03:22:51 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afe48fae316sm1192724966b.28.2025.08.28.03.22.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 03:22: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>
X-Inumbo-ID: f3f77c8b-83f8-11f0-ae26-e363de0e7a9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756376571; x=1756981371; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Vm6cv1gGUZ3A0uXurCraASbs5FzNHb1Xfq1F0okRa7o=;
        b=Axr8NplIgku8yrjsmBWtEShZYsfMOChRP+0XoDpq4XBQhPRHQBcVQxUJiC1PprFpb3
         ctM2ns9jlwa7bdVFtbelFN3g6YnQtLjumnejuBcM3U1J29hcuyRU1G23SxkmLhMPuhTF
         CM2t1DgyLTbWON514AVqOQxuqHy9HPJmgbaDBxDwmzwi/XEldQjQPpBAGdsZBvZkM6ew
         vGFDZRklGhKqjr1Zq+ZcPgENmGftcDZn3D1dst4kkMwWCmkatr6c5ALaAjyLcWjx+GZx
         SQxz2Bmn5pFMQOnZs2PqaAGKEfOAsbSpqYCiDxaLwoDdP4Pmi9nOApQRQfMccpY1KDvD
         bsaA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756376571; x=1756981371;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Vm6cv1gGUZ3A0uXurCraASbs5FzNHb1Xfq1F0okRa7o=;
        b=uUjyq8jgJXxTO66A/hI7pQl6AXQ0SUL9gpTVxWiDdK+f0nNHsZp1ltxqzPFa+KX8l2
         kwV8UEqMzYeGfuBCof5nRhXKVyqaKYAn+JXXPtcJJB5L+YAqJzzcAsSk6LyLGjD/n7h0
         POdStHiuZdYCmfgmSfmxYYw3hc0E5wVMQOTLkp1CSyci/zlgEvMZF5qsdWWw+Zj1LheU
         VfXMH0bRY9wtyTnAXericTFWW2O0EivBOoB13CEgAc2SreSK+ISzKAMzb7ys09CQCLw5
         uj4KoFw4kS80vtKqdzcW4vbeC76XJIgu4xpFVLPXHT8Ik3z/AGVpGZYgtDXJ+Pw3Wo6e
         2pRA==
X-Forwarded-Encrypted: i=1; AJvYcCU66rOZn14rms5JuCKOO0UVC62LQZPvY0votal/1uPrwl3Hi5QBx04eyD/pj6VJedGOE5PVRXarqiI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyg+8T3BBwJeRlYkJi8Md7D05t3pkU92wnG1wNptUxgTgmVPVVe
	eHwF2JLh3NSgnCK9zXjDG5swpR/ibZHJCPVL3WCsG0ijg5hLwuWdFXUZGcMt/ce93IFw0NxCmsF
	DPow=
X-Gm-Gg: ASbGncvhrhUvoHn87+EXqNFsLDmrh5qHqPJayvtci9mvdZiaJQlEsh/1CU8dHLUefTE
	SfSML/i7+l+/1aLRimMoZXd/mb2tYA96DiCglTUy31B/JJcCC5CgoZoxHbRAHxEcZc/RvxzAg3T
	IxDyFbkjBdXzKZwl+pavcwS+wuCAKeT4cEZ4G66hvJ8o3Z0Xf2adUIDX3VQlCXwb7Wrrv4nLlV7
	cRvLLqQyrGbXY+KaOJHdotXslsgXCKtoWwVUTA72zCIGCRYlhJOD8mKrUAwl+8eeSpAwV+Nu9RD
	M+kDk5TqJQ0+UV5ni6JqzdTzgol3R7lp7SaD1mlhphmxLw0cLL/Lvg7tNlNE/tv/KP7iBphr79H
	SSiu+1+fTBQfLwaajNuUVt64boRjhuInxauEw5zRKX6Gl+49jc3FmXa4wiNFe3M5XimUUysdj3d
	drRMduqcrH2JSPKolByg==
X-Google-Smtp-Source: AGHT+IERrzQBpK8ysC/61spHwnCrLQtiiKyb97SpY5lU20V1pMXnWDfFEGOhSbuZixPomBJfXyCzyQ==
X-Received: by 2002:a17:906:4ec3:b0:afe:74a3:f76d with SMTP id a640c23a62f3a-afe74a3fda1mr1194550166b.16.1756376571186;
        Thu, 28 Aug 2025 03:22:51 -0700 (PDT)
Message-ID: <e24606c1-3f54-44aa-a78c-6cb36be3d5f3@suse.com>
Date: Thu, 28 Aug 2025 12:22:49 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] hvmloader: Update to SMBIOS 2.6
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <b569a298a6270ae04eaf433f7de9ce1f3e248e5f.1755870287.git.teddy.astie@vates.tech>
 <6e9b7b96-a506-40ed-95b6-6ad00ba9a27a@citrix.com>
 <1901e764-9725-4e9e-895a-54c704473510@suse.com>
 <50c15166-b3b5-4e17-8bcc-cb37ad03f0ad@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: <50c15166-b3b5-4e17-8bcc-cb37ad03f0ad@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.08.2025 12:01, Andrew Cooper wrote:
> On 28/08/2025 8:07 am, Jan Beulich wrote:
>> On 27.08.2025 19:47, Andrew Cooper wrote:
>>> On 22/08/2025 2:47 pm, Teddy Astie wrote:
>>>> Currently, hvmloader uses SMBIOS 2.4, however, when using OVMF, the
>>>> SMBIOS is patched to 2.8, which has clarified the UUID format (as GUID).
>>>>
>>>> In Linux, if the SMBIOS version is >= 2.6, the GUID format is used, else
>>>> (undefined as per SMBIOS spec), big endian is used (used by Xen). Therefore,
>>>> you have a endian mismatch causing the UUIDs to mismatch in the guest.
>>>>
>>>> $ cat /sys/hypervisor/uuid
>>>> e865e63f-3d30-4f0b-83e0-8fdfc1e30eb7
>>>> $ cat /sys/devices/virtual/dmi/id/product_uuid
>>>> 3fe665e8-303d-0b4f-83e0-8fdfc1e30eb7
>>>> $ cat /sys/devices/virtual/dmi/id/product_serial
>>>> e865e63f-3d30-4f0b-83e0-8fdfc1e30eb7
>>>>
>>>> This patch updates the SMBIOS version from 2.4 to 2.6 and fixup the UUID
>>>> written in the table; which effectively fix this endianness mismatch with
>>>> OVMF; while the UUID displayed by Linux is still the same for SeaBIOS.
>>>>
>>>> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
>>>> ---
>>>> This effectively changes the UUID seen with UEFI guests as it was
>>>> actually inconsistent with SeaBIOS and SMBIOS expectations.
>>>> ---
>>> I agree this is a real bug and needs fixing.
>> Hmm, I didn't realize this is a bug, and hence put the patch off as 4.22
>> material. If there is a bug being fixed: Teddy, please add a Fixes: tag.
> 
> I'm not sure if this has a reasonable Fixes tag.
> 
> It's a combination of an ill-specified domain handle format, and using
> an ill-specified version of the SMBios spec.

But the problem was still introduced into the code base at some point. Afaict
in c683914ef913 ("Add code to generate SMBIOS tables to hvmloader"), i.e. when
smbios.c was first added.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 10:28:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 10:28:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098294.1452381 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urZrI-0007Kd-Gw; Thu, 28 Aug 2025 10:27:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098294.1452381; Thu, 28 Aug 2025 10:27: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 1urZrI-0007KW-EU; Thu, 28 Aug 2025 10:27:56 +0000
Received: by outflank-mailman (input) for mailman id 1098294;
 Thu, 28 Aug 2025 10:27:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=pYI3=3I=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urZrG-0007KQ-UX
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 10:27:54 +0000
Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com
 [2a00:1450:4864:20::52b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a8007f21-83f9-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 12:27:53 +0200 (CEST)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-6188b5ae1e8so807965a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 03:27:53 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-61c78e49ca4sm6885779a12.47.2025.08.28.03.27.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 03:27: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>
X-Inumbo-ID: a8007f21-83f9-11f0-aeb2-fb57b961d000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756376873; x=1756981673; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=HL94KxyFJYc9B8+8KlZ8ezNhRhzjF24IdvuCgVkbmxc=;
        b=bH4ywbhh7GJ744sCxXLHermmI6OHJ1o3RKnAQy8ahCooZ05fj43pAfr7XLLq2U2BZp
         fbN0EbHLG1Fze00Sx32jC3VH9HsePh66Q4qA6+P6hju35USJHC23y/ugkULJtMCGsWft
         zblPBNkl5PprEvCLjrVOPtspkW98QyogPygt3DkQjvvhNSnTee+RlzUKZwr0uYxi8FZe
         Z2dfrSDFQj/pYsuVV/OcgThy39J8cs1s0PNFGBw2sLcgSFlphFyKkPSvyRbT7bIS1rW9
         bieboWiwxGg/fDIQ9pTZnj4IRo0xd2KHVCY85xReNDDLAkK/wlW1xnQesjh78nh0WqPG
         7lrw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756376873; x=1756981673;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HL94KxyFJYc9B8+8KlZ8ezNhRhzjF24IdvuCgVkbmxc=;
        b=rsp+X1EZnLJrdARPi/6SsdwAlGqgHxBAxxTMVHX7UNb4F4DPsEVruULr2wZKAvIaRc
         3t0hnh2MHrmdVdb2Y9hXfwmYIlrkIiiuHUY1Ur3xdDLK/iM+JFwtSOHjB11wAxoBLYe2
         tvJBN6V6qguqeZb4vyswfhGutXGGQU01qRfB67NWBOqjTnk7UD0LoghT1thua4z46X+H
         0YboW/Emd6C45qADBwYq+sT2EAjVwZYNE6g6RcGKbcKfYKH6veT7DeneiN4nLN9U9uEK
         l9wE1m/O6moNFCD93ARrLdjPTGodaGMXSaLdc2qDoPcmmaFzOnjMVeSw0pLtO+ugMsiN
         FJmQ==
X-Forwarded-Encrypted: i=1; AJvYcCVpEqC9yBbF4Tatmx+QDagb9PfgCAuQybRsqUXuYnfMJyYejrexI7y/INhwHkq80+BdsxEXKyczVmY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx2E8FJ3X7IvrgcMpBkkrvgr5qmqwbKZbs1XRMVIFX4PUdST0Rd
	Ok3jEqw/cgEASTCF+MCAcawh1Q9QwPEG6s8PDygEMuWL2w/urgmDQtq1A+DzFx40pw==
X-Gm-Gg: ASbGnct3re1CVvcIiWUN8xS1gmLwqHe56tOsgqih79GdKPHqQWcXlmmSErRkyi3IBuW
	dwygIyG7jcA8eLm75MbdX61pjeON62TE97Xp7axLWLVhaUIglkcB9ZAAXYi4CWYb+ZfG5JSZpoI
	AjxIc+ox8PyEleWtB6feqAgVqC+ZslMhqizrh6PxSyCMIGZr3q7mpppfQt/YnXbRjIr3NtKbHPc
	Bdh3KaKt3F1awLeqCdkNzXTbG5r7FTxzFEiLGYCFf14DZfcXBEYXjL4BdrcU0ly5BC6Venvdxjh
	8E7CyOJyDu1O+YWZYrYANeD5qzFwSQv/opei6Gmm1B6cxK1AURndAdhRM5HQmuXUT7inS3lEK1f
	zFDCR/MpeAt1aZDxGz7RfBeoIzZsHLYG1CSsFqbfTbHZaF9158dIK6H3m3jU6uM8NwKmRfVvYPz
	Vdi4nxX4Qyo/Rs7kxGew==
X-Google-Smtp-Source: AGHT+IEM+N69YXN6xi84/RX4fUvBXZWNWGqUSFrfyzc1O3L2LlUM3na38seFYCGQ7+8XdsWVrrKi8g==
X-Received: by 2002:a05:6402:34d6:b0:61c:6ca1:1a8c with SMTP id 4fb4d7f45d1cf-61c6ca1237fmr11306935a12.20.1756376873162;
        Thu, 28 Aug 2025 03:27:53 -0700 (PDT)
Message-ID: <255a5906-ffa8-4fb6-89b5-23605a17b38c@suse.com>
Date: Thu, 28 Aug 2025 12:27:51 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8 0/8] amd-cppc CPU Performance Scaling Driver
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, 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>, Juergen Gross
 <jgross@suse.com>, xen-devel@lists.xenproject.org
References: <20250828100306.1776031-1-Penny.Zheng@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: <20250828100306.1776031-1-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.08.2025 12:02, Penny Zheng wrote:
> amd-cppc is the AMD CPU performance scaling driver that introduces a
> new CPU frequency control mechanism on modern AMD APU and CPU series in
> Xen. The new mechanism is based on Collaborative Processor Performance
> Control (CPPC) which provides finer grain frequency management than
> legacy ACPI hardware P-States. Current AMD CPU/APU platforms are using
> the ACPI P-states driver to manage CPU frequency and clocks with
> switching only in 3 P-states. CPPC replaces the ACPI P-states controls
> and allows a flexible, low-latency interface for Xen to directly
> communicate the performance hints to hardware.
> 
> amd_cppc driver has 2 operation modes: autonomous (active) mode,
> and non-autonomous (passive) mode. We register different CPUFreq driver
> for different modes, "amd-cppc" for passive mode and "amd-cppc-epp"
> for active mode.
> 
> The passive mode leverages common governors such as *ondemand*,
> *performance*, etc, to manage the performance tuning. While the active mode
> uses epp to provides a hint to the hardware if software wants to bias
> toward performance (0x0) or energy efficiency (0xff). CPPC power algorithm
> in hardware will automatically calculate the runtime workload and adjust the
> realtime cpu cores frequency according to the power supply and thermal, core
> voltage and some other hardware conditions.
> 
> amd-cppc is enabled on passive mode with a top-level `cpufreq=amd-cppc` option,
> while users add extra `active` flag to select active mode.
> 
> With `cpufreq=amd-cppc,active`, we did a 60s sampling test to see the CPU
> frequency change, through tweaking the energy_perf preference from
> `xenpm set-cpufreq-cppc powersave` to `xenpm set-cpufreq-cppc performance`.
> The outputs are as follows:
> ```
> Setting CPU in powersave mode
> Sampling and Outputs:
>   Avg freq      580000 KHz
>   Avg freq      580000 KHz
>   Avg freq      580000 KHz
> Setting CPU in performance mode
> Sampling and Outputs:
>   Avg freq      4640000 KHz
>   Avg freq      4220000 KHz
>   Avg freq      4640000 KHz
> ```
> 
> Penny Zheng (8):
>   xen/cpufreq: introduce new sub-hypercall to propagate CPPC data
>   xen/cpufreq: introduce "cpufreq=amd-cppc" xen cmdline and amd-cppc
>     driver
>   xen/cpufreq: implement amd-cppc driver for CPPC in passive mode
>   xen/cpufreq: implement amd-cppc-epp driver for CPPC in active mode
>   xen/cpufreq: get performance policy from governor set via xenpm
>   tools/cpufreq: extract CPPC para from cpufreq para
>   xen/cpufreq: bypass governor-related para for amd-cppc-epp
>   xen/cpufreq: Adapt SET/GET_CPUFREQ_CPPC xen_sysctl_pm_op for amd-cppc
>     driver

I'm somewhat confused by the submission: Both my mailbox and
https://lists.xen.org/archives/html/xen-devel/2025-08/threads.html agree that
cover letter and patch 1 were submitted twice, while patches 4 through 8 came
through un-threaded. I can only assume that the duplicates are identical.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 10:31:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 10:31:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098305.1452391 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urZuL-0000bp-Uq; Thu, 28 Aug 2025 10:31:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098305.1452391; Thu, 28 Aug 2025 10: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 1urZuL-0000bi-SE; Thu, 28 Aug 2025 10:31:05 +0000
Received: by outflank-mailman (input) for mailman id 1098305;
 Thu, 28 Aug 2025 10:31:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FrxM=3I=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1urZuK-0000a2-54
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 10:31:04 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 18e7481a-83fa-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 12:31:03 +0200 (CEST)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-45b6b5ccad6so4063125e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 03:31:03 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3c70ea81d38sm25050829f8f.17.2025.08.28.03.31.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 03:31: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>
X-Inumbo-ID: 18e7481a-83fa-11f0-aeb2-fb57b961d000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756377063; x=1756981863; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ZPM8AkYtXLXH+CNRhXcUGcMq/7mlT3bYJ0nkmw1ljd8=;
        b=F0CP0+Lb5h26vvbWwEMddtouDYSSz9LujcOGVBN9hVdv1Jb3vftQtIGDFR1BBxciye
         rxET93vhnzemnB1Y1LtTuliKWncRyt7OB+H2u1c1EMHLtoe8OqrJM1IH211UgeFF7OFJ
         WE9Cx77Spb+90PV/qV3jMcIVgprFiO6LBu70U=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756377063; x=1756981863;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ZPM8AkYtXLXH+CNRhXcUGcMq/7mlT3bYJ0nkmw1ljd8=;
        b=G+Xh3ktis2gw8CNvhaABZVSCsnK/Pe/6U2Jp1kj5u1djSD1Y9i8GRWZV3L3ORDniLJ
         lIjAXjSQbvuwCRKoIBhU4fRr62es/kYl4PL0lvf2Y58fLOOqgtxc6QTEKv/p7361g6Ec
         gUI3Yr2qgqPekH3Oik4Jj7kvmTgTJaXvyD5Bp+iWqET9rBkGoGguSyu77FSIW9iBbi2J
         fP/cdyzztch3+jpI8SV90NMIxz4P9oFOPDS6eYpruOMi10KX81S4rrY9zirPLQvAJHd4
         fTyam9c3RNmmL+6Lx/L5p2ho9LPwrkd4YAgm0mKL/ya9BtI5f4eAe46HXtiZl/H2MImk
         XH6Q==
X-Forwarded-Encrypted: i=1; AJvYcCV0y+h2Jmzq4u7eyD4sq6e6QpQUfaLfE9oBWy0B6CCv5ooknmtBBTYxcavsW8coMD5E6Qu17R/Wg9I=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyEJ9QSk0eSXFQG0jB1VYu68JyjpKfYkBKJNZQvqZZcZE3/d6Xr
	GWVnR9SYWOU5CUKDIKpPuo9qSrKi1pprtIcUkosV0q8RmKGussJXFYh95TkBbqDSTBQ=
X-Gm-Gg: ASbGncvOs/zskxfng243Aq0NRJRyA39zK32m0eDhHCxCg+UNWMstASbMudEVTLRIsQV
	yRnvKrDlO66jDdAxVTwlptmjrpIoz5kwAhtEtjCczc4PHi8L4vCJ4fktOjaEGmh4JQ8dLa9O+hi
	d4eDvrsHyc5ROWQIS7ISH2CSaLikhBVO/D93j+r8lRiuzhPCWspw1kRktn+9w43niOkC6R2Bph7
	cyxeLPCwx1M7KOVDuO3KRNTR0cFsC4CEn9TC53e7Jd91UnWvRy+m8Ebwy3OJhgLfNDXBrJX0JPj
	j92EbXYHjCRqC429GMMDmCNOa0BRV5Unzp5yg27FDMvf6XjysZhl/ikJCzeVH8OCffryY3aj/jy
	VTPE3VwRPssqQ0QVjz5KADfrT7BIEghYfP+tSCebjNfAboCuE9YngkgWLHz/1hXVso1IFgMJwAO
	Fshe0=
X-Google-Smtp-Source: AGHT+IF7gU1fWTKNirWq4ph+Hp5Z7m5IImEMoHsugUuN39l+nbwYnMrKeRMZymR7pxBXxzKGrBuRJA==
X-Received: by 2002:a05:600c:4748:b0:45b:47e1:ef66 with SMTP id 5b1f17b1804b1-45b517dae4fmr191672425e9.37.1756377062577;
        Thu, 28 Aug 2025 03:31:02 -0700 (PDT)
Message-ID: <bad9ece4-a95d-4fc1-83b2-dc382f9db438@citrix.com>
Date: Thu, 28 Aug 2025 11:31:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] hvmloader: Update to SMBIOS 2.6
To: Jan Beulich <jbeulich@suse.com>, Teddy Astie <teddy.astie@vates.tech>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <b569a298a6270ae04eaf433f7de9ce1f3e248e5f.1755870287.git.teddy.astie@vates.tech>
 <6e9b7b96-a506-40ed-95b6-6ad00ba9a27a@citrix.com>
 <1901e764-9725-4e9e-895a-54c704473510@suse.com>
 <50c15166-b3b5-4e17-8bcc-cb37ad03f0ad@citrix.com>
 <e24606c1-3f54-44aa-a78c-6cb36be3d5f3@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: <e24606c1-3f54-44aa-a78c-6cb36be3d5f3@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 28/08/2025 11:22 am, Jan Beulich wrote:
> On 28.08.2025 12:01, Andrew Cooper wrote:
>> On 28/08/2025 8:07 am, Jan Beulich wrote:
>>> On 27.08.2025 19:47, Andrew Cooper wrote:
>>>> On 22/08/2025 2:47 pm, Teddy Astie wrote:
>>>>> Currently, hvmloader uses SMBIOS 2.4, however, when using OVMF, the
>>>>> SMBIOS is patched to 2.8, which has clarified the UUID format (as GUID).
>>>>>
>>>>> In Linux, if the SMBIOS version is >= 2.6, the GUID format is used, else
>>>>> (undefined as per SMBIOS spec), big endian is used (used by Xen). Therefore,
>>>>> you have a endian mismatch causing the UUIDs to mismatch in the guest.
>>>>>
>>>>> $ cat /sys/hypervisor/uuid
>>>>> e865e63f-3d30-4f0b-83e0-8fdfc1e30eb7
>>>>> $ cat /sys/devices/virtual/dmi/id/product_uuid
>>>>> 3fe665e8-303d-0b4f-83e0-8fdfc1e30eb7
>>>>> $ cat /sys/devices/virtual/dmi/id/product_serial
>>>>> e865e63f-3d30-4f0b-83e0-8fdfc1e30eb7
>>>>>
>>>>> This patch updates the SMBIOS version from 2.4 to 2.6 and fixup the UUID
>>>>> written in the table; which effectively fix this endianness mismatch with
>>>>> OVMF; while the UUID displayed by Linux is still the same for SeaBIOS.
>>>>>
>>>>> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
>>>>> ---
>>>>> This effectively changes the UUID seen with UEFI guests as it was
>>>>> actually inconsistent with SeaBIOS and SMBIOS expectations.
>>>>> ---
>>>> I agree this is a real bug and needs fixing.
>>> Hmm, I didn't realize this is a bug, and hence put the patch off as 4.22
>>> material. If there is a bug being fixed: Teddy, please add a Fixes: tag.
>> I'm not sure if this has a reasonable Fixes tag.
>>
>> It's a combination of an ill-specified domain handle format, and using
>> an ill-specified version of the SMBios spec.
> But the problem was still introduced into the code base at some point. Afaict
> in c683914ef913 ("Add code to generate SMBIOS tables to hvmloader"), i.e. when
> smbios.c was first added.

The thing that changed was the SMBios spec, in version 2.6.Â  It went
from having an ill-defined statement of what a UUID was (and for which
Xen's code was a valid interpretation), to stating a MSFT GUID format.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 10:37:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 10:37:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098319.1452401 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ura0g-0001Zg-KN; Thu, 28 Aug 2025 10:37:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098319.1452401; Thu, 28 Aug 2025 10:37:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ura0g-0001ZZ-Hj; Thu, 28 Aug 2025 10:37:38 +0000
Received: by outflank-mailman (input) for mailman id 1098319;
 Thu, 28 Aug 2025 10:37:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=pYI3=3I=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ura0f-0001ZN-3q
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 10:37:37 +0000
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com
 [2a00:1450:4864:20::636])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 031e2c59-83fb-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 12:37:36 +0200 (CEST)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-afcb7ae31caso134824566b.3
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 03:37: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
 a640c23a62f3a-afe7aad5d61sm882311066b.105.2025.08.28.03.37.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 03:37:35 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 031e2c59-83fb-11f0-aeb2-fb57b961d000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756377455; x=1756982255; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=nY/zdm4mVfn+USRj1Q9/2U0cRyYqFbRAvd04hLe4x3Q=;
        b=LCfa13gJLpPhK0hSN86DE7bsITRgB+0Rhofd9ozbuoo+iXCOn5hu+Zn0ICI7eB176u
         kBGMXyfp7V1D7fWDHnICFMNecOYNh8Bkx+brXZmrxLEUFU5//YEF4RXTRACk4RB4fwDB
         3gG6+8CzkNm9jYmL3euPFlR0qljUg6Kd6vSYuxvWhbJwiCXIGwUiv0YIUPQqxC9ZDsXw
         VxSDS0SiaQRaq6pi8yNkesc8yMAQ3lUr2A70vp1H+rIVabXkUCykPq+6i6M6Vi7EQNfw
         1KagMLLNxGWWBftTyjX3kPiCCa4Ga83wyUpWaKOma0eddfyxKMI8V1hfWMSjm1TtyzfL
         Vnpw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756377455; x=1756982255;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nY/zdm4mVfn+USRj1Q9/2U0cRyYqFbRAvd04hLe4x3Q=;
        b=euh019MW626NejxnPO4rg+tfgJskpyF3/MoAkcgtW0um9Msc5h8Y6I/14xojKEuTgU
         lSLmYGiLNQ6lszu0NWRjb7DpyT55i8kZDZ7lyE9jr9NxBY8fG0x++d0r6Nrnv7+tDoYt
         4NkYs8KphZXn05g9ZXlCNMvq1truHszjeY5kHDrmDPzfZcFf9WugCd7yY88gA1qEBu9d
         aihYKxMx0t3DpvbqKPl5HwIBCiOZjvfwDIlDl7EqWQWWC25y54R7J+MaKe8vU/UGRNGN
         OZMAoNZvlPr1x8OX5bA3ItZnv/9SrrUQGwE2/zl1awTWLwPObkr3AxHPx84n1cG983Nx
         6dtQ==
X-Forwarded-Encrypted: i=1; AJvYcCVAwKNE83fBx66KqGJwsq4jkmVh11SWzZjXkkcxoJ7cVtMnTVai7lTD6PFOmKcRk61dLWmOPEZ/fbA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywv4DnZ1ZsLhvLU5PCWWRS9V7RkuBwSabenlXkw7n6GqAbJ7TDs
	B3ddRJ/GFBBVwybE4mILBcvYozLAOi3JJiVCo/3KlZofS7XUcBB4O1FtXswI+VmgWA==
X-Gm-Gg: ASbGnct77UTvUB07Jrzrnx3LT2t60SnRGWZg/752FWi7AGN8gIYh5jAXJ0eWhjjBa64
	DvZ+S1R54BcEottsMaJk1voTQALV2TZdpEwVtOyaWn/SdSwduhXNE1feYRpidSr2HcajFgqFFkK
	4bXoidwEeaaXDYYIf+wJIXtwdjrgsPt8wsjPc1fB2fyO3q2YTMEPFhtsXD4WDD1N6sEB868zXOS
	O4RPwX+D8Dp3tjJGH58DgBJ+ukYfsoB4FZECzOVSP6AZ09VYvb6BMaJA6nZt0H5WnaNFCQ1YOx3
	ZBP3jbwjvpU6uw4K9bgvDUEovxFg4P1sbXfTOcmCQqxF3yoXkuLCPhb93CAFHHa0yyWvhoZRm8n
	78YfsNA68ARHMBdYI1fdwIvonmYvwxAxMZm+tHzn/3QPnsAeGkjjl30GDuiGqP/xyzrJvR8/dbv
	fuqJ8NN9I=
X-Google-Smtp-Source: AGHT+IFm/aEgD/qwq26PK3mwB+1Y5O7IqjYAG+elJMDo7zCPcb3MyZpNumI7r4RhbH8A+Dex1pVQOw==
X-Received: by 2002:a17:907:60ca:b0:aeb:3df1:2e75 with SMTP id a640c23a62f3a-afe29748f87mr2205302666b.46.1756377455494;
        Thu, 28 Aug 2025 03:37:35 -0700 (PDT)
Message-ID: <8f01edef-a766-4211-903b-e064b36ce27c@suse.com>
Date: Thu, 28 Aug 2025 12:37:34 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] hvmloader: Update to SMBIOS 2.6
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <b569a298a6270ae04eaf433f7de9ce1f3e248e5f.1755870287.git.teddy.astie@vates.tech>
 <6e9b7b96-a506-40ed-95b6-6ad00ba9a27a@citrix.com>
 <1901e764-9725-4e9e-895a-54c704473510@suse.com>
 <50c15166-b3b5-4e17-8bcc-cb37ad03f0ad@citrix.com>
 <e24606c1-3f54-44aa-a78c-6cb36be3d5f3@suse.com>
 <bad9ece4-a95d-4fc1-83b2-dc382f9db438@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: <bad9ece4-a95d-4fc1-83b2-dc382f9db438@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 28.08.2025 12:31, Andrew Cooper wrote:
> On 28/08/2025 11:22 am, Jan Beulich wrote:
>> On 28.08.2025 12:01, Andrew Cooper wrote:
>>> On 28/08/2025 8:07 am, Jan Beulich wrote:
>>>> On 27.08.2025 19:47, Andrew Cooper wrote:
>>>>> On 22/08/2025 2:47 pm, Teddy Astie wrote:
>>>>>> Currently, hvmloader uses SMBIOS 2.4, however, when using OVMF, the
>>>>>> SMBIOS is patched to 2.8, which has clarified the UUID format (as GUID).
>>>>>>
>>>>>> In Linux, if the SMBIOS version is >= 2.6, the GUID format is used, else
>>>>>> (undefined as per SMBIOS spec), big endian is used (used by Xen). Therefore,
>>>>>> you have a endian mismatch causing the UUIDs to mismatch in the guest.
>>>>>>
>>>>>> $ cat /sys/hypervisor/uuid
>>>>>> e865e63f-3d30-4f0b-83e0-8fdfc1e30eb7
>>>>>> $ cat /sys/devices/virtual/dmi/id/product_uuid
>>>>>> 3fe665e8-303d-0b4f-83e0-8fdfc1e30eb7
>>>>>> $ cat /sys/devices/virtual/dmi/id/product_serial
>>>>>> e865e63f-3d30-4f0b-83e0-8fdfc1e30eb7
>>>>>>
>>>>>> This patch updates the SMBIOS version from 2.4 to 2.6 and fixup the UUID
>>>>>> written in the table; which effectively fix this endianness mismatch with
>>>>>> OVMF; while the UUID displayed by Linux is still the same for SeaBIOS.
>>>>>>
>>>>>> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
>>>>>> ---
>>>>>> This effectively changes the UUID seen with UEFI guests as it was
>>>>>> actually inconsistent with SeaBIOS and SMBIOS expectations.
>>>>>> ---
>>>>> I agree this is a real bug and needs fixing.
>>>> Hmm, I didn't realize this is a bug, and hence put the patch off as 4.22
>>>> material. If there is a bug being fixed: Teddy, please add a Fixes: tag.
>>> I'm not sure if this has a reasonable Fixes tag.
>>>
>>> It's a combination of an ill-specified domain handle format, and using
>>> an ill-specified version of the SMBios spec.
>> But the problem was still introduced into the code base at some point. Afaict
>> in c683914ef913 ("Add code to generate SMBIOS tables to hvmloader"), i.e. when
>> smbios.c was first added.
> 
> The thing that changed was the SMBios spec, in version 2.6.Â  It went
> from having an ill-defined statement of what a UUID was (and for which
> Xen's code was a valid interpretation), to stating a MSFT GUID format.

Fair enough. I'd still prefer to have the (slightly questionable) Fixes:
tag, to serve as an indication that there will be a need for backporting.
Or else at the very least a statement to the effect of there not being
any good Fixes: tag to use.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 10:52:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 10:52:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098341.1452412 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uraEd-00050K-QZ; Thu, 28 Aug 2025 10:52:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098341.1452412; Thu, 28 Aug 2025 10:52: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 1uraEd-00050D-NW; Thu, 28 Aug 2025 10:52:03 +0000
Received: by outflank-mailman (input) for mailman id 1098341;
 Thu, 28 Aug 2025 10:52:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=pYI3=3I=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uraEc-0004fh-Lk
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 10:52:02 +0000
Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com
 [2a00:1450:4864:20::634])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 067bbb5d-83fd-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 12:52:00 +0200 (CEST)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-afcb7ae31caso137073266b.3
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 03:52:00 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afe90c8f85fsm722647266b.8.2025.08.28.03.51.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 03:51: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>
X-Inumbo-ID: 067bbb5d-83fd-11f0-ae26-e363de0e7a9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756378320; x=1756983120; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=KeWcAesFxLhz0BEXlg3cbbcQKqFYzdCTHZlccJodaT8=;
        b=a3H9i+tEW2OPFn26M04gHIoqoCtXaczpPV0Zz3RQ6eTKYQpPvl27hcbZmIWpmrnhQ+
         zvetXp8jKuuEYwqjRQ+2IJo2AX6TSBfq1Ghnf0KuO9dIJXdou3kQAwd0rX1Ht/nOiSOr
         W+cOVCVxzZ5i+pxe/hpMxIE4VAGdA/fHN7Xd6mdE5SZDpBb/k4ZbuVK52kuBTsT+9OzW
         NlT7eel7w/5PZY1Q5Ee8iGe1tgSfmRAoEecbpYO8te5mm5Imu1yD3JkdmpQpcFHa6Mzy
         z1w2A50q6nY3iKHxs0lHtfzg5VjzkbIdccsnXKrsYceTSI0A7q7lpgGCLenA4eyAWjog
         qZdw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756378320; x=1756983120;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=KeWcAesFxLhz0BEXlg3cbbcQKqFYzdCTHZlccJodaT8=;
        b=pmJbJOGtsySE5fr5PYzKkqOP2eOjnHisfLtJM/21clcnWdcCh3l+Bdbr5iVMUyik3f
         RTsgImne1N62D3casdJ8rEPm0mOGro7G7JJpgzNA465vneHuUuE/7dBjfZVJOcI+pP5x
         jw9MtrpBe60fx2ierXKEGFSiVOGnTJ19NiX4LcTXVvGX4TPcmNA/iYFRfmucSTZCWoSF
         tsNsDD7Ae9MR2gWztKsnyPvo2naU1YDo9FxQJJonE1wgoMawNFnvRw0wPcdoOpJHPGRt
         TR5Uu84wpBKYKITeMpFfdLcirlB2NQMM+2U5IMzKnIStvg/XTHIjElYWfYQWkb9cJhi+
         toPg==
X-Forwarded-Encrypted: i=1; AJvYcCUJT/jE50SDZbdj1gbSPT1SlDSySm0M4gw0qypsRAXmg1KIMz+p+rlSsns/oqMmo539cUjn1sZrhtA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxIEnEg6prBirgSwekqTvfFXjpoSOaO9JvbacEZgwl8jLBvT/UC
	JdjD4zHNaxwOHSzt3WpqZwdhg+1KHw42xvn1uk82RjZI7iPEqhqtAqQFiD2yMVzq6A==
X-Gm-Gg: ASbGncvjCq7Z5/jOi5WXPAGqXTqfnTIaBeiGC2LaDS4cgOUL1/6KCbO0uYV1EZT13Rz
	H2FPzufArPBR/BcuRdwGb4gln5sroYyZndYa0juP/lNO6nEwQ9GGglwWbNs7K7b3CLz57ablqzU
	4USeqO/S2lgWOEkgRyeKGcbJhFb9R+HiF40YxbqvEJ36uKd26ON3zpVm84BhiukyWHeZf2++kyE
	RnUgSdZQ2kCUlaxtXIoM75/inKn5lWhtM1Bf9O4PbajagutVqNX1mp7aeStja21KJltNLNCmVVz
	ydOixnOKEWE/Njulem5sN6QY8YYhBiHVfIY8DWdlYP5z1/Ra3Me1hXSZeRdXvNHrMsruMfnInhM
	vj1oMAxmC2xLPoBa5go1xbsUywOKLwvLQ6+FHsBYCV8x3X8kLbT5NHuDx6L7iCkd5/r33fruULG
	5QLPrD4E4=
X-Google-Smtp-Source: AGHT+IErYtjBzS3Vdo7NSSFjcHlzjNDmXdUMuGDNkS9dc3gyA9OE64/lln18l1tn3+dThnsmkvW9dQ==
X-Received: by 2002:a17:906:7308:b0:afe:e1e3:36a2 with SMTP id a640c23a62f3a-afee1e33b4cmr228329466b.31.1756378320242;
        Thu, 28 Aug 2025 03:52:00 -0700 (PDT)
Message-ID: <c3d5b257-e9fc-476b-a025-67b2f7e70c9e@suse.com>
Date: Thu, 28 Aug 2025 12:51:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8 1/8] xen/cpufreq: introduce new sub-hypercall to
 propagate CPPC data
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, 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: <20250828100306.1776031-1-Penny.Zheng@amd.com>
 <20250828100306.1776031-2-Penny.Zheng@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: <20250828100306.1776031-2-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.08.2025 12:02, Penny Zheng wrote:
> In order to provide backward compatibility with existing governors
> that represent performance as frequency, like ondemand, the _CPC
> table can optionally provide processor frequency range values, Lowest
> frequency and Nominal frequency, to let OS use Lowest Frequency/
> Performance and Nominal Frequency/Performance as anchor points to
> create linear mapping of CPPC performance to CPU frequency.
> 
> As Xen is uncapable of parsing the ACPI dynamic table, we'd like to
> introduce a new sub-hypercall "XEN_PM_CPPC" to propagate required CPPC
> data from dom0 kernel to Xen.
> In the according handler set_cppc_pminfo(), we do _CPC and _PSD
> sanitization check, as both _PSD and _CPC info are necessary for correctly
> initializing cpufreq cores in CPPC mode.
> Users shall be warned that if we failed at this point,
> no fallback scheme, like legacy P-state could be switched to.
> 
> A new flag "XEN_CPPC_INIT" is also introduced for cpufreq core initialised in
> CPPC mode. Then all .init flag checking shall be updated to
> consider "XEN_CPPC_INIT" too.
> 
> We want to bypass construction of px statistic info in cpufreq_statistic_init()
> for CPPC mode, while not bypassing cpufreq_statistic_lock initialization for a
> good reason. The same check is unnecessary for cpufreq_statistic_exit(),
> since it has already been covered by px statistic variable
> "cpufreq_statistic_data" check
> 
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>

Acked-by: Jan Beulich <jbeulich@suse.com>
with two cosmetic issues taken care of (which I'll do while committing):

> @@ -693,6 +699,120 @@ int acpi_set_pdc_bits(unsigned int acpi_id, XEN_GUEST_HANDLE(uint32) pdc)
>      return ret;
>  }
>  
> +static void print_CPPC(const struct xen_processor_cppc *cppc_data)
> +{
> +    printk("\t_CPC: highest_perf=%u, lowest_perf=%u, "
> +           "nominal_perf=%u, lowest_nonlinear_perf=%u, "
> +           "nominal_mhz=%uMHz, lowest_mhz=%uMHz\n",
> +           cppc_data->cpc.highest_perf, cppc_data->cpc.lowest_perf,
> +           cppc_data->cpc.nominal_perf, cppc_data->cpc.lowest_nonlinear_perf,
> +           cppc_data->cpc.nominal_mhz, cppc_data->cpc.lowest_mhz);
> +}
> +
> +int set_cppc_pminfo(unsigned int acpi_id,
> +                    const struct xen_processor_cppc *cppc_data)
> +{
> +    int ret = 0, cpuid;
> +    struct processor_pminfo *pm_info;
> +
> +    cpuid = get_cpu_id(acpi_id);
> +    if ( cpuid < 0 )
> +    {
> +        ret = -EINVAL;
> +        goto out;
> +    }
> +
> +    if ( cppc_data->pad[0] || cppc_data->pad[1] || cppc_data->pad[2] )
> +    {
> +        ret = -EINVAL;
> +        goto out;
> +    }
> +
> +    if ( cpufreq_verbose )
> +        printk("Set CPU%d (ACPI ID %u) CPPC state info:\n",
> +               cpuid, acpi_id);
> +
> +    pm_info = processor_pminfo[cpuid];
> +    if ( !pm_info )
> +    {
> +        pm_info = xvzalloc(struct processor_pminfo);
> +        if ( !pm_info )
> +        {
> +            ret = -ENOMEM;
> +            goto out;
> +        }
> +        processor_pminfo[cpuid] = pm_info;
> +    }
> +    pm_info->acpi_id = acpi_id;
> +    pm_info->id = cpuid;
> +    pm_info->cppc_data = *cppc_data;
> +
> +    if ( (cppc_data->flags & XEN_CPPC_PSD) &&
> +          !check_psd_pminfo(cppc_data->shared_type) )

Nit: Indentation is off by 1.

> +    {
> +            ret = -EINVAL;
> +            goto out;

Indentation is still wrong here.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 10:56:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 10:56:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098354.1452422 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uraJE-0005di-ER; Thu, 28 Aug 2025 10:56:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098354.1452422; Thu, 28 Aug 2025 10:56: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 1uraJE-0005db-Ad; Thu, 28 Aug 2025 10:56:48 +0000
Received: by outflank-mailman (input) for mailman id 1098354;
 Thu, 28 Aug 2025 10:56:47 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=pYI3=3I=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uraJD-0005dV-Au
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 10:56:47 +0000
Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com
 [2a00:1450:4864:20::52c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b0ab542e-83fd-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 12:56:46 +0200 (CEST)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-61caa266828so1651930a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 03:56: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
 4fb4d7f45d1cf-61c78e49c90sm6982983a12.45.2025.08.28.03.56.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 03:56: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>
X-Inumbo-ID: b0ab542e-83fd-11f0-aeb2-fb57b961d000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756378606; x=1756983406; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=5KQGDpdyzpGsq3yrgJsk2OobwzHfCnLsR4h/xFJ1OAI=;
        b=JmYierkZQfDFtyVM3ex5xMxHbK+TxhBxzHpg7xBuHeoSBDymfeB2zOI0LKHw80YfS+
         WuizZBxMOx5s0HUctag2i9X/akeNLYI6WreuYqRjRB9bh3q00G+oJ1eHXf367mJreXJl
         r6Z5jiDpCTSSdwD3n8cKWTzU8PLqYsfRGl42ZlFa4uSWnHq9//ahjbEWC/2l+ACn3GNd
         +9aaf7oSm/zii4+ncmyUHjbow45Yrr4T2TEnBc8nlXMhUprSc9Cze5D12dbuHfFevXwf
         O2pbXmcouN/sR8eO2bL1p86PsC+vAeTw8Ex/ZAnbVLjvOfwjF9IpYaBRpKk/aGmrQ7+5
         uv2w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756378606; x=1756983406;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5KQGDpdyzpGsq3yrgJsk2OobwzHfCnLsR4h/xFJ1OAI=;
        b=RMp2HEwTcB/6BET2UGkqPUKRQjvREfTxH7J9Ap4wMPOBxHOVLcBeN0SwzHBjYuc8pZ
         jlRtAFKyVGtq5l+joXC9f6EoQATmBW0EV3r5Emv4dqZ8n3WEe8dyYr6JdG7d9RhVnnPB
         kLUeZY/VvUC97L87MaOQJTWZAuaJsKhCXhhEPQHjdN0AJKnBn0JjMzJF0lcVSm17IbfC
         OuZHiiaRuhQ5fC62eZIPXWPLxZKZYpHDTiKP5qcFvsGdRZBLl7Ozj7DSjOoH7O+Jt9/z
         7W++3JydrSEEUxrDgNwqTSKtFpOxCGUTLh+Lc9LZmS1TTdLXfnHGP4/3rJiXtZTCVBj7
         jQ5w==
X-Forwarded-Encrypted: i=1; AJvYcCX7CIq+DGc15HVKacjQOAUoO371Q9Ebk3TGTs2rwfUplsNB9CzI8hukhMuC2Ywpgv4OSUk8G4PNOGE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxQ6k2Nj2vwA6LBCtDZtW+A+94RpPy4nTKLw2Mz3vrpNVi3VnDg
	/i4PVh5R2onP33DXDPYP1C1AkgsguUpB4gCEy78NMplU0KAm7q+P7V2Eqy5VLXAZ+w==
X-Gm-Gg: ASbGnctt/QaN3xcLQimkVx+F58HEigXLdv/E6ozKcZZJAs/v4yLoSROXy2LsZKR7dLt
	S4A1D+2kdENeBKQe8YK/j9wziBqS77jP+PPJvr9tAghgpS8/hr3BThAuQwMRIQxwKiHJKcx+/aO
	cS4gCg7NWdiA68xaRRMNE1qFWFoifKXj0GiLAH6JsHx75tJ/6pGJaMY2l7DGQoiwsVcVArWtHCb
	k/DP3UvbsfgbKNhSrCCxb2lr+H4H/K0F6xOYyrgBB9YROg8s1KZ9n4y4RDGo3BMdGcjHlFMOab2
	iJfQynoXMGwyctNGWbqNSwHp0XT0ZItgdXCjNTtM6ioitdwAmnQS95fJsw/8TBnKRP2jzO8ea6g
	QiYRv1Z9kwTFpw2KQvfXrEFDS+bZOoPdWTle0RcePDhfU/fys0mNVjYuT2PTY/CleFxOfANG4NM
	QUs7VNbL0=
X-Google-Smtp-Source: AGHT+IGre8su64e+qOiYVUnqCE7iWSPXaQC07YK0hn7/9R6c+CFydWljel0af6TTWheJ9UWlILEVUg==
X-Received: by 2002:a05:6402:42cf:b0:618:bc4:5777 with SMTP id 4fb4d7f45d1cf-61c1b48f533mr19057785a12.9.1756378605766;
        Thu, 28 Aug 2025 03:56:45 -0700 (PDT)
Message-ID: <bc500e36-30fd-4231-ace9-697e5644e12d@suse.com>
Date: Thu, 28 Aug 2025 12:56:44 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8 5/8] xen/cpufreq: get performance policy from governor
 set via xenpm
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, xen-devel@lists.xenproject.org
References: <20250828100443.1776675-1-Penny.Zheng@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: <20250828100443.1776675-1-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.08.2025 12:04, Penny Zheng wrote:
> Even if Xen governor is not used in amd-cppc active mode, we could
> somehow deduce which performance policy (CPUFREQ_POLICY_xxx) user wants to
> apply through which governor they choose, such as:
> If user chooses performance governor, they want maximum performance, then
> the policy shall be CPUFREQ_POLICY_PERFORMANCE
> If user chooses powersave governor, they want the least power consumption,
> then the policy shall be CPUFREQ_POLICY_POWERSAVE
> Function cpufreq_policy_from_governor() is responsible for above transition,
> and it shall be also effective when users setting new governor through xenpm.
> 
> Userspace is a forbidden choice, and if users specify such option, we shall
> not only give warning message to suggest using "xenpm set-cpufreq-cppc", but
> also error out.
> 
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>

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



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 10:58:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 10:58:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098363.1452431 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uraKW-00068i-Mu; Thu, 28 Aug 2025 10:58:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098363.1452431; Thu, 28 Aug 2025 10:58: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 1uraKW-00068b-KM; Thu, 28 Aug 2025 10:58:08 +0000
Received: by outflank-mailman (input) for mailman id 1098363;
 Thu, 28 Aug 2025 10:58:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=pYI3=3I=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uraKV-00068T-Qs
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 10:58:07 +0000
Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com
 [2a00:1450:4864:20::62a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e008b47c-83fd-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 12:58:05 +0200 (CEST)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-afcb7a16441so107875866b.2
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 03:58: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
 4fb4d7f45d1cf-61caae5fc3fsm3785196a12.51.2025.08.28.03.58.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 03:58:04 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e008b47c-83fd-11f0-ae26-e363de0e7a9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756378685; x=1756983485; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=WtohK9f0LMbOuqZ8A/KDlfL+M1uy2XxklyzjfRyM06g=;
        b=UBpWR3KfcNj1yEtD7XFN2jL5ORQglp44w0NvI0h4w0SwHJWXZMTNlTc/wH8+WUimoO
         iedhui7fRLj5RJ8arCEKBnZWjdZ3K51x2aBoVhnszXdIrPeqcC/Z++Ze1tw7S09oKBMB
         WCVG8Z/cwJ6Tbd/l1KDFQKdekwHDyPC7JQ3/q+zLztgciE/vHmRldTo+rG1dML92FflD
         PLiboBHTC2r4Z9E0yxM8F7yTZP9th60MfcUAYTi6GpCa5E159wUOBjB0P5HBA71J7uvn
         FkNkCFWvk2QPvDHGBvZ+yDG2vRdWGCZ8Wbwn5YH9RiSVAxAemtPFIAOSU1WGYPQhKILt
         of3A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756378685; x=1756983485;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WtohK9f0LMbOuqZ8A/KDlfL+M1uy2XxklyzjfRyM06g=;
        b=qGQRmqqBnaozdkV6i0tufwzslbOiAbNWIWajDhnD5QLW+9dJiDb+MsdR8/4x4x5mYD
         OlvCWM9KMeIWTJae7B+D8DvBdBsspDGXyNAAXtmlA98hJiBGWEZ/PKpbgX27GlU2iPlL
         lsKC0d7z8bym4yU1Eiyr234d9cSYLFS79VknmJWmmPQgS+x3fyCwOOJxIPvIf+GigVjr
         wL9zEqGOyoWPmRZWp63IKQqRsQPU93JzTeBmHMLb46/HjWC+GPeUYx3PxYOfZ3ZrFIF0
         g+ZDyEuCIBgmjd7NgCmq+8/Q1IlPWlpteky9Dlshbh4qtAF/QoZ0xiReixB54vAKOuIT
         urQQ==
X-Forwarded-Encrypted: i=1; AJvYcCWEA6fAmMt5DPfWgvVoGcyBUfV5qP6T0vDS9gZNXgJRczCLgHgN/ilH2IxV+c243nLVCKaA4ipIWSk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxVBwxUoaBjj7YhUQ9DjIDJWPCoRl56mNnSpZrVwQv7pLj6Vxqs
	cy1f1sIFoW0Ku3NQjC4qKzn01ZkpERGJ1JoFLKRFIGTG1GO7azlMOgDbBKoOVep0GKO7iTRqPtV
	kFdk=
X-Gm-Gg: ASbGncuIoK1/QGwtcV215rc5twGPGSApA7yvSDxps7+3keCdbflZAFceYXQo41bYzgU
	jBWwlGvBjedPvxhamu+xOlKPcPdR9rSbcQ2rRceZTBm13AEtBDHgTEL0cikz78dr7XzNlfN8y8f
	64mLlxg9qlYTGdtf77aVn87rHySF3XsX+seC9JVP3ABuHk51sAh+zVxjC0KY6VEw29PiCj34rHu
	a3b7xgtg1qXqTWWKxhUe43OyhIMbW2qO5XuqXHTzr68fmDu+KM7qfk1EkAUmFBSuYd8rlYbuKjW
	3vUHfOGO8tOAom9x9MCVo15aUnUCaPEa5Lo4FaLsbwE0uuOruERzR4EsCY0ZsTntSTeHsZHugjM
	FGmddQEIPhhyCQ8YCbbPltYeFHR4Dm07AXuRJvo/TkORBgimbBvq8F9rDmTtBDxhjPYo7oDUYa1
	fPWcHxPTmbMsk5XWCJ9Q==
X-Google-Smtp-Source: AGHT+IGVMRrGsDLiMwUQd0+/BX+xQJiTjr69AQd8SQFn4mDWjNo3IH16pvNvMinBkLlvUneX7E1LEQ==
X-Received: by 2002:a17:907:7206:b0:afe:b097:e1db with SMTP id a640c23a62f3a-afeb097e673mr838876566b.45.1756378685204;
        Thu, 28 Aug 2025 03:58:05 -0700 (PDT)
Message-ID: <eed6afd9-a4ae-4d98-a807-e443848d5c14@suse.com>
Date: Thu, 28 Aug 2025 12:58:04 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8 7/8] xen/cpufreq: bypass governor-related para for
 amd-cppc-epp
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, Anthony PERARD <anthony.perard@vates.tech>,
 xen-devel@lists.xenproject.org
References: <20250828100534.1777023-1-Penny.Zheng@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: <20250828100534.1777023-1-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.08.2025 12:05, Penny Zheng wrote:
> HWP and amd-cppc-epp are both governor-less driver, so we introduce
> "is_governor_less" flag and cpufreq_is_governorless() to help bypass
> governor-related info on dealing with cpufreq para.
> 
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>

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



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 11:07:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 11:07:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098374.1452442 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uraTB-00085v-GL; Thu, 28 Aug 2025 11:07:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098374.1452442; Thu, 28 Aug 2025 11:07:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uraTB-00085o-Dg; Thu, 28 Aug 2025 11:07:05 +0000
Received: by outflank-mailman (input) for mailman id 1098374;
 Thu, 28 Aug 2025 11:07:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=pYI3=3I=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uraTA-00085i-Bx
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 11:07:04 +0000
Received: from mail-ed1-x535.google.com (mail-ed1-x535.google.com
 [2a00:1450:4864:20::535])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 20268edd-83ff-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 13:07:03 +0200 (CEST)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-61cf429f4c2so26102a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 04:07: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
 a640c23a62f3a-afe48fae316sm1200443066b.28.2025.08.28.04.07.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 04:07:01 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 20268edd-83ff-11f0-aeb2-fb57b961d000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756379222; x=1756984022; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=GrzoxHK+mLw4uoFvsR+XZmrG3Uwsuzz/FFHMVbsnUxg=;
        b=L+3U299MwAAzkFYfnDD3t0R8qVrfit7DlrgKdTkew6ivGSjHszDVb0kmG8dTO7RDAJ
         5ijiY7LzZfQxdB+bgpbxXWCQ6W91naggMv7JaPppEBR6f3L6SLPG0yni+oAqdaQj4iRx
         himfo/qYCCw/KQZbxEpwTIrwLmUFb+EVJXFSThxFaagYuaLg98DAdIhmAg2WFURz7zSk
         KDlOczPvag6ZFzP9Q9zJdin4/PIp8KwJKAN/bdzREidu0IXQ0tt/j6okVO/YW9h5Fjn0
         Wu0ESZ8sFVqvBwOJRrAQ25lArNJIA9k/kiOI/g/dWvvKRPit4jZL4uuKmKXv4yGsp4Wr
         6h5A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756379222; x=1756984022;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=GrzoxHK+mLw4uoFvsR+XZmrG3Uwsuzz/FFHMVbsnUxg=;
        b=OqU6+xfoKv8/H52uxWy7WSJ1Bbpe3UWqjrsyh3JeoKLgEpqPXyIC0HLbRW3zBtVZ2N
         vMwtfgf3G25myyaW+MR9MlDwAKm07iyZAJBzNeTiuO6UYfuRpHiX+lSCc1+YZEDkY/gR
         uxyA28Ef7CXDMXBU+6FDdEojm8UVnu3cEt30Us9OI2sisBg1LU7mgdR5HPu0F+RgMmZY
         7xAA2WhG6vT7k49CKJyx5nR2kYrpUFcbjG9/A/zw89+BRUfFeAQGWw1Ejl0RzqVr90DP
         SdLc8sL2NZVFoKNuePkw8wnxBj+zXqHs4G4Lz2e9ZdNsaXJ76NJZfMvIfrczliU0T/On
         /UQw==
X-Forwarded-Encrypted: i=1; AJvYcCV7yXPiz3dAgC3TsZPrUe93hcae3rE335hQKNi8YcpV24ax+Dz7aWON6Gm/gUk4FC+2XqnkPbsvNSc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz6CqKAgQ27A7vEtNmTlj3amG2VwfSG1tDowhZ2TtRCwpIYddVl
	j5rxOHwhe+BZNM2eRs16hAdDZfqrYj2+bcMyIJQYygE8QP/VCxdQRm7/4F3foYKH/g==
X-Gm-Gg: ASbGnct+qRcnNON9JMV4l05DHgA2DJ0C6CJFWPRfMRvZZV1sZeH5XAbx8/hYl/ndgda
	ITxJ9B6BNgi+8CXzZpfN/jvYXfoj54qnoI/WcJM+BWa5d7SzGs1NYSoyuaFviai1KDJUKeJcVfp
	r8+Yb8NQK4yqbuut/a57wfdzikmPZLLRiuPoWYVdgtQlt/N4c3gcaWcxqsdJmauOQlcDm8LAvX1
	Ywaz5sBwp2efced5OKSO3yJOcGWnSXBMSNV7ghMDLf4vwcqy/6+2aY2W8l7Lxtc7amP06V5f2xp
	yb8t0IRdQy4e0ykUDFdtCVb3/TielHIWBmvevPgSp+FtDE2h4NOj7iKzHykwqTzfNznxihukMQ9
	Kio0RLSq8GjU5/lqLlPpTyYLKil9rHw/rKx8C4e6cnGg/Ytmiz5wmIyDhGgdjoHGqRZ3Y2HMF7x
	wmxg6ptr4=
X-Google-Smtp-Source: AGHT+IHEl8mz72gukoVg3FDINC+7qGQqmugM7v+7BCl1fQ3rpyZs2XPkaRjpHEzU4WzFEpxkIVzjcA==
X-Received: by 2002:a17:907:3f9a:b0:afe:d3b2:8b2c with SMTP id a640c23a62f3a-afed3b2972amr348492266b.52.1756379222240;
        Thu, 28 Aug 2025 04:07:02 -0700 (PDT)
Message-ID: <a855a0b4-21dc-4f63-9849-6e5c7ec2e6b3@suse.com>
Date: Thu, 28 Aug 2025 13:07:00 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8 8/8] xen/cpufreq: Adapt SET/GET_CPUFREQ_CPPC
 xen_sysctl_pm_op for amd-cppc driver
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, Anthony PERARD <anthony.perard@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20250828100601.1777197-1-Penny.Zheng@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: <20250828100601.1777197-1-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.08.2025 12:06, Penny Zheng wrote:
> @@ -154,6 +156,17 @@ static int get_cpufreq_para(struct xen_sysctl_pm_op *op)
>      else
>          strlcpy(op->u.get_para.scaling_driver, "Unknown", CPUFREQ_NAME_LEN);
>  
> +    /*
> +     * In CPPC active mode, we are borrowing governor field to indicate
> +     * policy info.
> +     */
> +    if ( policy->governor->name[0] )
> +        strlcpy(op->u.get_para.u.s.scaling_governor,
> +                policy->governor->name, CPUFREQ_NAME_LEN);
> +    else
> +        strlcpy(op->u.get_para.u.s.scaling_governor, "Unknown",
> +                CPUFREQ_NAME_LEN);

Isn't pulling this ...

>      if ( !cpufreq_is_governorless(op->cpuid) )
>      {
>          if ( !(scaling_available_governors =

... out of this if()'s body going to affect HWP? It's not clear to me whether
that would be entirely benign.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 11:13:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 11:13:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098392.1452461 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uraZY-0001ns-Ba; Thu, 28 Aug 2025 11:13:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098392.1452461; Thu, 28 Aug 2025 11:13: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 1uraZY-0001nj-8T; Thu, 28 Aug 2025 11:13:40 +0000
Received: by outflank-mailman (input) for mailman id 1098392;
 Thu, 28 Aug 2025 11:13:38 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=zjrZ=3I=arm.com=hari.limaye@srs-se1.protection.inumbo.net>)
 id 1uraZW-0001Z0-RA
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 11:13:38 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 0bb0fe47-8400-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 13:13:38 +0200 (CEST)
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 29D4B1688;
 Thu, 28 Aug 2025 04:13:29 -0700 (PDT)
Received: from PWQ0QT7DJ1.emea.arm.com (PWQ0QT7DJ1.cambridge.arm.com
 [10.1.33.71])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 0D7CE3F694;
 Thu, 28 Aug 2025 04:13: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>
X-Inumbo-ID: 0bb0fe47-8400-11f0-aeb2-fb57b961d000
From: Hari Limaye <hari.limaye@arm.com>
To: xen-devel@lists.xenproject.org
Cc: luca.fancellu@arm.com,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v3 1/5] arm/mpu: Implement setup_frametable_mappings for MPU systems
Date: Thu, 28 Aug 2025 12:12:03 +0100
Message-ID: <99af1bac04c89a0c912f7f9c7e134ce79049e2a3.1756379422.git.hari.limaye@arm.com>
X-Mailer: git-send-email 2.42.1
In-Reply-To: <cover.1756379422.git.hari.limaye@arm.com>
References: <cover.1756379422.git.hari.limaye@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Luca Fancellu <luca.fancellu@arm.com>

Implement the MPU variant of `setup_frametable_mappings`. This function
will be called by `setup_mm` when an implementation for MPU systems is
added in a follow up commit.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
Signed-off-by: Hari Limaye <hari.limaye@arm.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>
---
Changes from v1:
- Align ps and pe to page size
- Add sanity checking for frametable size, as in MMU version
- Add Michal's R-b
---
 xen/arch/arm/mpu/mm.c | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
index c6891607ec..3f155b7db2 100644
--- a/xen/arch/arm/mpu/mm.c
+++ b/xen/arch/arm/mpu/mm.c
@@ -168,6 +168,39 @@ int mpumap_contains_region(pr_t *table, uint8_t nr_regions, paddr_t base,
     return MPUMAP_REGION_NOTFOUND;
 }
 
+/* Map a frame table to cover physical addresses ps through pe */
+void __init setup_frametable_mappings(paddr_t ps, paddr_t pe)
+{
+    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
+     * physical address.
+     */
+    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);
+
+    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);
+    frame_table = (struct page_info *)mfn_to_virt(mfn_x(base_mfn));
+
+    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)));
+}
+
 /*
  * Allocate an entry for a new EL2 MPU region in the bitmap xen_mpumap_mask.
  * @param idx   Set to the index of the allocated EL2 MPU region on success.
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 11:13:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 11:13:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098391.1452452 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uraZT-0001ZD-4V; Thu, 28 Aug 2025 11:13:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098391.1452452; Thu, 28 Aug 2025 11:13:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uraZT-0001Z6-1Z; Thu, 28 Aug 2025 11:13:35 +0000
Received: by outflank-mailman (input) for mailman id 1098391;
 Thu, 28 Aug 2025 11:13:33 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=zjrZ=3I=arm.com=hari.limaye@srs-se1.protection.inumbo.net>)
 id 1uraZR-0001Z0-JS
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 11:13:33 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 07ec0d55-8400-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 13:13:32 +0200 (CEST)
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 CCC2D1688;
 Thu, 28 Aug 2025 04:13:22 -0700 (PDT)
Received: from PWQ0QT7DJ1.emea.arm.com (PWQ0QT7DJ1.cambridge.arm.com
 [10.1.33.71])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 1AE063F694;
 Thu, 28 Aug 2025 04:13: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>
X-Inumbo-ID: 07ec0d55-8400-11f0-aeb2-fb57b961d000
From: Hari Limaye <hari.limaye@arm.com>
To: xen-devel@lists.xenproject.org
Cc: luca.fancellu@arm.com,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v3 0/5] Third series for R82 MPU support
Date: Thu, 28 Aug 2025 12:12:02 +0100
Message-ID: <cover.1756379422.git.hari.limaye@arm.com>
X-Mailer: git-send-email 2.42.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Hi all,

This series is the third set of patches in the ongoing work to
introduce support for MPU systems and Cortex R82 in Xen.

The patches in this series implement the necessary logic to transiently
map and unmap the static memory banks for initialization.

Changes from v2:
- Changes mentioned in individual patches

Cheers,
Hari

Luca Fancellu (4):
  arm/mpu: Implement setup_frametable_mappings for MPU systems
  arm/mpu: Implement setup_mm for MPU systems
  arm/mpu: Implement transient mapping
  arm/mpu: Implement ioremap_attr for MPU

Penny Zheng (1):
  xen/arm: map static memory on demand

 xen/arch/arm/arm32/asm-offsets.c         |   3 +-
 xen/arch/arm/arm64/asm-offsets.c         |   2 +
 xen/arch/arm/include/asm/arm32/mpu.h     |   2 +
 xen/arch/arm/include/asm/arm64/mpu.h     |   2 +
 xen/arch/arm/include/asm/mmu/mm.h        |   3 +
 xen/arch/arm/include/asm/mpu/mm.h        |  40 +++-
 xen/arch/arm/include/asm/mpu/regions.inc |  17 +-
 xen/arch/arm/mpu/mm.c                    | 269 +++++++++++++++++++++--
 xen/arch/arm/mpu/setup.c                 |  11 +
 xen/include/xen/static-memory.h          |   8 +
 10 files changed, 335 insertions(+), 22 deletions(-)

-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 11:13:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 11:13:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098393.1452472 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uraZb-00024f-KF; Thu, 28 Aug 2025 11:13:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098393.1452472; Thu, 28 Aug 2025 11:13: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 1uraZb-00024Y-HF; Thu, 28 Aug 2025 11:13:43 +0000
Received: by outflank-mailman (input) for mailman id 1098393;
 Thu, 28 Aug 2025 11:13:42 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=zjrZ=3I=arm.com=hari.limaye@srs-se1.protection.inumbo.net>)
 id 1uraZa-00023f-SW
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 11:13:42 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 0d2e73b9-8400-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 13:13:40 +0200 (CEST)
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 A72952944;
 Thu, 28 Aug 2025 04:13:31 -0700 (PDT)
Received: from PWQ0QT7DJ1.emea.arm.com (PWQ0QT7DJ1.cambridge.arm.com
 [10.1.33.71])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 7D8053F694;
 Thu, 28 Aug 2025 04:13:38 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0d2e73b9-8400-11f0-ae26-e363de0e7a9e
From: Hari Limaye <hari.limaye@arm.com>
To: xen-devel@lists.xenproject.org
Cc: luca.fancellu@arm.com,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v3 2/5] arm/mpu: Implement setup_mm for MPU systems
Date: Thu, 28 Aug 2025 12:12:04 +0100
Message-ID: <2d41ab5c2bd45f788e96a93659595d66c258c8df.1756379422.git.hari.limaye@arm.com>
X-Mailer: git-send-email 2.42.1
In-Reply-To: <cover.1756379422.git.hari.limaye@arm.com>
References: <cover.1756379422.git.hari.limaye@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Luca Fancellu <luca.fancellu@arm.com>

Implement `setup_mm` for MPU systems. This variant doesn't need to set
up the direct map.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
Signed-off-by: Hari Limaye <hari.limaye@arm.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>
---
Changes from v2:
- Add Michal's R-b

Changes from v1:
- Fix total_pages dead assignment
- Remove extraneous space
- Remove redundant max_page assignment
---
 xen/arch/arm/mpu/mm.c | 62 ++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 61 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
index 3f155b7db2..4c517d6e43 100644
--- a/xen/arch/arm/mpu/mm.c
+++ b/xen/arch/arm/mpu/mm.c
@@ -8,9 +8,12 @@
 #include <xen/sizes.h>
 #include <xen/spinlock.h>
 #include <xen/types.h>
+#include <xen/static-memory.h>
+#include <xen/static-shmem.h>
 #include <asm/mpu.h>
 #include <asm/mpu/mm.h>
 #include <asm/page.h>
+#include <asm/setup.h>
 #include <asm/sysregs.h>
 
 struct page_info *frame_table;
@@ -378,9 +381,66 @@ int map_pages_to_xen(unsigned long virt, mfn_t mfn, unsigned long nr_mfns,
     return xen_mpumap_update(virt, mfn_to_maddr(mfn_add(mfn, nr_mfns)), flags);
 }
 
+/*
+ * Heap must be statically configured in Device Tree through "xen,static-heap"
+ * on MPU systems.
+ */
+static void __init setup_staticheap_mappings(void)
+{
+    const struct membanks *reserved_mem = bootinfo_get_reserved_mem();
+    unsigned int bank = 0;
+
+    for ( ; bank < reserved_mem->nr_banks; bank++ )
+    {
+        if ( reserved_mem->bank[bank].type == MEMBANK_STATIC_HEAP )
+        {
+            paddr_t bank_start = round_pgup(reserved_mem->bank[bank].start);
+            paddr_t bank_size = round_pgdown(reserved_mem->bank[bank].size);
+            paddr_t bank_end = bank_start + bank_size;
+
+            /* Map static heap with one MPU protection region */
+            if ( xen_mpumap_update(bank_start, bank_end, PAGE_HYPERVISOR) )
+                panic("Failed to map static heap\n");
+
+            break;
+        }
+    }
+
+    if ( bank == reserved_mem->nr_banks )
+        panic("No static heap memory bank found\n");
+}
+
 void __init setup_mm(void)
 {
-    BUG_ON("unimplemented");
+    const struct membanks *mem = bootinfo_get_mem();
+    paddr_t ram_start = INVALID_PADDR, ram_end = 0, ram_size = 0;
+
+    if ( !mem->nr_banks )
+        panic("No memory bank\n");
+
+    init_pdx();
+
+    populate_boot_allocator();
+
+    for ( unsigned int bank = 0; bank < mem->nr_banks; bank++ )
+    {
+        paddr_t bank_start = round_pgup(mem->bank[bank].start);
+        paddr_t bank_size = round_pgdown(mem->bank[bank].size);
+        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);
+    }
+
+    setup_staticheap_mappings();
+
+    total_pages = ram_size >> PAGE_SHIFT;
+
+    setup_frametable_mappings(ram_start, ram_end);
+
+    init_staticmem_pages();
+    init_sharedmem_pages();
 }
 
 int modify_xen_mappings(unsigned long s, unsigned long e, unsigned int nf)
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 11:13:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 11:13:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098394.1452482 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uraZe-0002Mm-W0; Thu, 28 Aug 2025 11:13:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098394.1452482; Thu, 28 Aug 2025 11:13: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 1uraZe-0002MV-RR; Thu, 28 Aug 2025 11:13:46 +0000
Received: by outflank-mailman (input) for mailman id 1098394;
 Thu, 28 Aug 2025 11:13:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=zjrZ=3I=arm.com=hari.limaye@srs-se1.protection.inumbo.net>)
 id 1uraZd-00023f-6Z
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 11:13:45 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 0e9b443f-8400-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 13:13:43 +0200 (CEST)
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 24F051688;
 Thu, 28 Aug 2025 04:13:34 -0700 (PDT)
Received: from PWQ0QT7DJ1.emea.arm.com (PWQ0QT7DJ1.cambridge.arm.com
 [10.1.33.71])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 050173F694;
 Thu, 28 Aug 2025 04:13: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>
X-Inumbo-ID: 0e9b443f-8400-11f0-ae26-e363de0e7a9e
From: Hari Limaye <hari.limaye@arm.com>
To: xen-devel@lists.xenproject.org
Cc: luca.fancellu@arm.com,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v3 3/5] arm/mpu: Implement transient mapping
Date: Thu, 28 Aug 2025 12:12:05 +0100
Message-ID: <6dc15f5279ea76ac52e89b75d56e3bd2063e91f3.1756379422.git.hari.limaye@arm.com>
X-Mailer: git-send-email 2.42.1
In-Reply-To: <cover.1756379422.git.hari.limaye@arm.com>
References: <cover.1756379422.git.hari.limaye@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Luca Fancellu <luca.fancellu@arm.com>

Add a scheme to distinguish transient MPU regions, to identify MPU
regions which will be mapped for a short period of time. This is needed
for the functions which transiently map and unmap memory ranges on
demand which will be introduced in a future commit.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
Signed-off-by: Hari Limaye <hari.limaye@arm.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>
---
Changes from v2:
- Define offsets programmatically, rather than hard-coding these
- Add Michal's R-b

Changes from v1:
- Improve commit message
- Mark parameter in read helper as const
---
 xen/arch/arm/arm32/asm-offsets.c         |  3 ++-
 xen/arch/arm/arm64/asm-offsets.c         |  2 ++
 xen/arch/arm/include/asm/arm32/mpu.h     |  2 ++
 xen/arch/arm/include/asm/arm64/mpu.h     |  2 ++
 xen/arch/arm/include/asm/mpu/mm.h        | 14 +++++++++++++-
 xen/arch/arm/include/asm/mpu/regions.inc | 17 +++++++++++++----
 xen/arch/arm/mpu/mm.c                    | 23 ++++++++++++++---------
 7 files changed, 48 insertions(+), 15 deletions(-)

diff --git a/xen/arch/arm/arm32/asm-offsets.c b/xen/arch/arm/arm32/asm-offsets.c
index c203ce269d..f354bf374d 100644
--- a/xen/arch/arm/arm32/asm-offsets.c
+++ b/xen/arch/arm/arm32/asm-offsets.c
@@ -43,7 +43,6 @@ void __dummy__(void)
    OFFSET(UREGS_SP_und, struct cpu_user_regs, sp_und);
    OFFSET(UREGS_LR_und, struct cpu_user_regs, lr_und);
    OFFSET(UREGS_SPSR_und, struct cpu_user_regs, spsr_und);
-
    OFFSET(UREGS_SP_irq, struct cpu_user_regs, sp_irq);
    OFFSET(UREGS_LR_irq, struct cpu_user_regs, lr_irq);
    OFFSET(UREGS_SPSR_irq, struct cpu_user_regs, spsr_irq);
@@ -79,6 +78,8 @@ void __dummy__(void)
 #ifdef CONFIG_MPU
    DEFINE(XEN_MPUMAP_MASK_sizeof, sizeof(xen_mpumap_mask));
    DEFINE(XEN_MPUMAP_sizeof, sizeof(xen_mpumap));
+   DEFINE(XEN_MPUMAP_ENTRY_SHIFT, ilog2(sizeof(pr_t)));
+   DEFINE(XEN_MPUMAP_ENTRY_ZERO_OFFSET, sizeof(prbar_t) + sizeof(prlar_t));
    BLANK();
 #endif
 }
diff --git a/xen/arch/arm/arm64/asm-offsets.c b/xen/arch/arm/arm64/asm-offsets.c
index 320289b281..38a3894a3b 100644
--- a/xen/arch/arm/arm64/asm-offsets.c
+++ b/xen/arch/arm/arm64/asm-offsets.c
@@ -73,6 +73,8 @@ void __dummy__(void)
 #ifdef CONFIG_MPU
    DEFINE(XEN_MPUMAP_MASK_sizeof, sizeof(xen_mpumap_mask));
    DEFINE(XEN_MPUMAP_sizeof, sizeof(xen_mpumap));
+   DEFINE(XEN_MPUMAP_ENTRY_SHIFT, ilog2(sizeof(pr_t)));
+   DEFINE(XEN_MPUMAP_ENTRY_ZERO_OFFSET, sizeof(prbar_t) + sizeof(prlar_t));
    BLANK();
 #endif
 }
diff --git a/xen/arch/arm/include/asm/arm32/mpu.h b/xen/arch/arm/include/asm/arm32/mpu.h
index 0a6930b3a0..9906d98809 100644
--- a/xen/arch/arm/include/asm/arm32/mpu.h
+++ b/xen/arch/arm/include/asm/arm32/mpu.h
@@ -39,6 +39,8 @@ typedef union {
 typedef struct {
     prbar_t prbar;
     prlar_t prlar;
+    bool transient;
+    uint8_t pad[7]; /* Pad structure to 16 Bytes */
 } pr_t;
 
 #endif /* __ASSEMBLY__ */
diff --git a/xen/arch/arm/include/asm/arm64/mpu.h b/xen/arch/arm/include/asm/arm64/mpu.h
index f0ce344e78..1d1843eda0 100644
--- a/xen/arch/arm/include/asm/arm64/mpu.h
+++ b/xen/arch/arm/include/asm/arm64/mpu.h
@@ -38,6 +38,8 @@ typedef union {
 typedef struct {
     prbar_t prbar;
     prlar_t prlar;
+    bool transient;
+    uint8_t pad[15]; /* Pad structure to 32 Bytes */
 } pr_t;
 
 #endif /* __ASSEMBLY__ */
diff --git a/xen/arch/arm/include/asm/mpu/mm.h b/xen/arch/arm/include/asm/mpu/mm.h
index e1ded6521d..566d338986 100644
--- a/xen/arch/arm/include/asm/mpu/mm.h
+++ b/xen/arch/arm/include/asm/mpu/mm.h
@@ -55,6 +55,16 @@ static inline void context_sync_mpu(void)
     isb();
 }
 
+static inline bool region_is_transient(const pr_t *pr)
+{
+    return pr->transient;
+}
+
+static inline void region_set_transient(pr_t *pr, bool transient)
+{
+    pr->transient = transient;
+}
+
 /*
  * The following API requires context_sync_mpu() after being used to modify MPU
  * regions:
@@ -75,9 +85,11 @@ void write_protection_region(const pr_t *pr_write, uint8_t sel);
  * @param base      Base address of the range to map (inclusive).
  * @param limit     Limit address of the range to map (exclusive).
  * @param flags     Flags for the memory range to map.
+ * @param transient True for a transient mapping, otherwise False.
  * @return          0 on success, negative on error.
  */
-int xen_mpumap_update(paddr_t base, paddr_t limit, unsigned int flags);
+int xen_mpumap_update(paddr_t base, paddr_t limit, unsigned int flags,
+                      bool transient);
 
 /*
  * Creates a pr_t structure describing a protection region.
diff --git a/xen/arch/arm/include/asm/mpu/regions.inc b/xen/arch/arm/include/asm/mpu/regions.inc
index 23fead3b21..09e1dcf03f 100644
--- a/xen/arch/arm/include/asm/mpu/regions.inc
+++ b/xen/arch/arm/include/asm/mpu/regions.inc
@@ -14,19 +14,25 @@
 #define PRLAR_ELx_EN            0x1
 
 #ifdef CONFIG_ARM_64
-#define XEN_MPUMAP_ENTRY_SHIFT  0x4     /* 16 byte structure */
-
 .macro store_pair reg1, reg2, dst
     stp \reg1, \reg2, [\dst]
 .endm
 
-#else
-#define XEN_MPUMAP_ENTRY_SHIFT  0x3     /* 8 byte structure */
+.macro zero_pair dst, offset, tmp1, tmp2
+    stp xzr, xzr, [\dst, \offset]
+.endm
 
+#else
 .macro store_pair reg1, reg2, dst
     strd  \reg1, \reg2, [\dst]
 .endm
 
+.macro zero_pair dst, offset, tmp1, tmp2
+    mov \tmp1, #0
+    mov \tmp2, #0
+    strd \tmp1, \tmp2, [\dst, \offset]
+.endm
+
 #endif
 
 /*
@@ -97,6 +103,9 @@
 
 3:
 
+    /* Clear the rest of the xen_mpumap entry. Clobbers prbar and prlar. */
+    zero_pair \base, #XEN_MPUMAP_ENTRY_ZERO_OFFSET, \prbar, \prlar
+
     add   \sel, \sel, #1
 
 1:
diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
index 4c517d6e43..33333181d5 100644
--- a/xen/arch/arm/mpu/mm.c
+++ b/xen/arch/arm/mpu/mm.c
@@ -265,13 +265,14 @@ static void disable_mpu_region_from_index(uint8_t index)
  * Update the entry in the MPU memory region mapping table (xen_mpumap) for the
  * given memory range and flags, creating one if none exists.
  *
- * @param base  Base address (inclusive).
- * @param limit Limit address (exclusive).
- * @param flags Region attributes (a combination of PAGE_HYPERVISOR_XXX)
+ * @param base      Base address (inclusive).
+ * @param limit     Limit address (exclusive).
+ * @param flags     Region attributes (a combination of PAGE_HYPERVISOR_XXX)
+ * @param transient True for a transient mapping, otherwise False.
  * @return      0 on success, otherwise negative on error.
  */
 static int xen_mpumap_update_entry(paddr_t base, paddr_t limit,
-                                   unsigned int flags)
+                                   unsigned int flags, bool transient)
 {
     bool flags_has_page_present;
     uint8_t idx;
@@ -311,6 +312,7 @@ static int xen_mpumap_update_entry(paddr_t base, paddr_t limit,
             return -ENOENT;
 
         xen_mpumap[idx] = pr_of_addr(base, limit, flags);
+        region_set_transient(&xen_mpumap[idx], transient);
 
         write_protection_region(&xen_mpumap[idx], idx);
     }
@@ -330,7 +332,8 @@ static int xen_mpumap_update_entry(paddr_t base, paddr_t limit,
     return 0;
 }
 
-int xen_mpumap_update(paddr_t base, paddr_t limit, unsigned int flags)
+int xen_mpumap_update(paddr_t base, paddr_t limit, unsigned int flags,
+                      bool transient)
 {
     int rc;
 
@@ -356,7 +359,7 @@ int xen_mpumap_update(paddr_t base, paddr_t limit, unsigned int flags)
 
     spin_lock(&xen_mpumap_lock);
 
-    rc = xen_mpumap_update_entry(base, limit, flags);
+    rc = xen_mpumap_update_entry(base, limit, flags, transient);
     if ( !rc )
         context_sync_mpu();
 
@@ -371,14 +374,15 @@ int destroy_xen_mappings(unsigned long s, unsigned long e)
     ASSERT(IS_ALIGNED(e, PAGE_SIZE));
     ASSERT(s < e);
 
-    return xen_mpumap_update(s, e, 0);
+    return xen_mpumap_update(s, e, 0, false);
 }
 
 int map_pages_to_xen(unsigned long virt, mfn_t mfn, unsigned long nr_mfns,
                      unsigned int flags)
 {
     /* MPU systems have no translation, ma == va, so pass virt directly */
-    return xen_mpumap_update(virt, mfn_to_maddr(mfn_add(mfn, nr_mfns)), flags);
+    return xen_mpumap_update(virt, mfn_to_maddr(mfn_add(mfn, nr_mfns)), flags,
+                             false);
 }
 
 /*
@@ -399,7 +403,8 @@ static void __init setup_staticheap_mappings(void)
             paddr_t bank_end = bank_start + bank_size;
 
             /* Map static heap with one MPU protection region */
-            if ( xen_mpumap_update(bank_start, bank_end, PAGE_HYPERVISOR) )
+            if ( xen_mpumap_update(bank_start, bank_end, PAGE_HYPERVISOR,
+                                   false) )
                 panic("Failed to map static heap\n");
 
             break;
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 11:13:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 11:13:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098395.1452492 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uraZg-0002eF-6a; Thu, 28 Aug 2025 11:13:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098395.1452492; Thu, 28 Aug 2025 11:13: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 1uraZg-0002ds-3g; Thu, 28 Aug 2025 11:13:48 +0000
Received: by outflank-mailman (input) for mailman id 1098395;
 Thu, 28 Aug 2025 11:13:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=zjrZ=3I=arm.com=hari.limaye@srs-se1.protection.inumbo.net>)
 id 1uraZe-0001Z0-85
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 11:13:46 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 0ffe6a7e-8400-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 13:13:45 +0200 (CEST)
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 6B77C2944;
 Thu, 28 Aug 2025 04:13:36 -0700 (PDT)
Received: from PWQ0QT7DJ1.emea.arm.com (PWQ0QT7DJ1.cambridge.arm.com
 [10.1.33.71])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 72A483F694;
 Thu, 28 Aug 2025 04:13: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>
X-Inumbo-ID: 0ffe6a7e-8400-11f0-aeb2-fb57b961d000
From: Hari Limaye <hari.limaye@arm.com>
To: xen-devel@lists.xenproject.org
Cc: luca.fancellu@arm.com,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v3 4/5] arm/mpu: Implement ioremap_attr for MPU
Date: Thu, 28 Aug 2025 12:12:06 +0100
Message-ID: <53c6aa61bc0cefce369ffc3a9ff5a7060b5f4b20.1756379422.git.hari.limaye@arm.com>
X-Mailer: git-send-email 2.42.1
In-Reply-To: <cover.1756379422.git.hari.limaye@arm.com>
References: <cover.1756379422.git.hari.limaye@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Luca Fancellu <luca.fancellu@arm.com>

Introduce helpers (un)map_mm_range() in order to allow the transient
mapping of a range of memory, and use these to implement the function
`ioremap_attr` for MPU systems.

Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
Signed-off-by: Hari Limaye <hari.limaye@arm.com>
---
Changes from v2:
- Propagate error to caller of is_mm_range_mapped, rather than panic

Changes from v1:
- Use transient instead of temporary, and improve wording of comments
  regarding transient mapping
- Rename start, end -> base, limit
---
 xen/arch/arm/include/asm/mpu/mm.h |  22 +++++
 xen/arch/arm/mpu/mm.c             | 157 ++++++++++++++++++++++++++++--
 2 files changed, 170 insertions(+), 9 deletions(-)

diff --git a/xen/arch/arm/include/asm/mpu/mm.h b/xen/arch/arm/include/asm/mpu/mm.h
index 566d338986..efb0680e39 100644
--- a/xen/arch/arm/include/asm/mpu/mm.h
+++ b/xen/arch/arm/include/asm/mpu/mm.h
@@ -101,6 +101,28 @@ int xen_mpumap_update(paddr_t base, paddr_t limit, unsigned int flags,
  */
 pr_t pr_of_addr(paddr_t base, paddr_t limit, unsigned int flags);
 
+/*
+ * Maps transiently a range of memory with attributes `flags`; if the range is
+ * already mapped with the same attributes, including an inclusive match, the
+ * existing mapping is returned. This API is intended for mappings that exist
+ * transiently for a short period between calls to this function and
+ * `unmap_mm_range`.
+ *
+ * @param base      Base address of the range to map (inclusive).
+ * @param limit     Limit address of the range to map (exclusive).
+ * @param flags     Flags for the memory range to map.
+ * @return          Pointer to base of region on success, NULL on error.
+ */
+void *map_mm_range(paddr_t base, paddr_t limit, unsigned int flags);
+
+/*
+ * Unmaps a range of memory if it was previously mapped by map_mm_range,
+ * otherwise it does not remove the mapping.
+ *
+ * @param base     Base address of the range to map (inclusive).
+ */
+void unmap_mm_range(paddr_t base);
+
 /*
  * Checks whether a given memory range is present in the provided table of
  * MPU protection regions.
diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
index 33333181d5..337573f9d7 100644
--- a/xen/arch/arm/mpu/mm.c
+++ b/xen/arch/arm/mpu/mm.c
@@ -332,31 +332,39 @@ static int xen_mpumap_update_entry(paddr_t base, paddr_t limit,
     return 0;
 }
 
-int xen_mpumap_update(paddr_t base, paddr_t limit, unsigned int flags,
-                      bool transient)
+static bool check_mpu_mapping(paddr_t base, paddr_t limit, unsigned int flags)
 {
-    int rc;
-
     if ( flags_has_rwx(flags) )
     {
         printk("Mappings should not be both Writeable and Executable\n");
-        return -EINVAL;
+        return false;
     }
 
     if ( base >= limit )
     {
         printk("Base address %#"PRIpaddr" must be smaller than limit address %#"PRIpaddr"\n",
                base, limit);
-        return -EINVAL;
+        return false;
     }
 
     if ( !IS_ALIGNED(base, PAGE_SIZE) || !IS_ALIGNED(limit, PAGE_SIZE) )
     {
         printk("base address %#"PRIpaddr", or limit address %#"PRIpaddr" is not page aligned\n",
                base, limit);
-        return -EINVAL;
+        return false;
     }
 
+    return true;
+}
+
+int xen_mpumap_update(paddr_t base, paddr_t limit, unsigned int flags,
+                      bool transient)
+{
+    int rc;
+
+    if ( !check_mpu_mapping(base, limit, flags) )
+        return -EINVAL;
+
     spin_lock(&xen_mpumap_lock);
 
     rc = xen_mpumap_update_entry(base, limit, flags, transient);
@@ -465,10 +473,141 @@ void free_init_memory(void)
     BUG_ON("unimplemented");
 }
 
+static int is_mm_range_mapped(paddr_t start, paddr_t end, uint8_t *idx)
+{
+    ASSERT(spin_is_locked(&xen_mpumap_lock));
+
+    /*
+     * 'idx' will be INVALID_REGION_IDX for rc == MPUMAP_REGION_NOTFOUND and
+     * it will be a proper region index when rc >= MPUMAP_REGION_FOUND.
+     */
+    return mpumap_contains_region(xen_mpumap, max_mpu_regions, start, end, idx);
+}
+
+static bool is_mm_attr_match(pr_t *region, unsigned int attributes)
+{
+    bool ret = true;
+
+    if ( region->prbar.reg.ro != PAGE_RO_MASK(attributes) )
+    {
+        printk(XENLOG_WARNING
+               "Mismatched Access Permission attributes (%#x0 instead of %#x0)\n",
+               region->prbar.reg.ro, PAGE_RO_MASK(attributes));
+        ret = false;
+    }
+
+    if ( region->prbar.reg.xn != PAGE_XN_MASK(attributes) )
+    {
+        printk(XENLOG_WARNING
+               "Mismatched Execute Never attributes (%#x instead of %#x)\n",
+               region->prbar.reg.xn, PAGE_XN_MASK(attributes));
+        ret = false;
+    }
+
+    if ( region->prlar.reg.ai != PAGE_AI_MASK(attributes) )
+    {
+        printk(XENLOG_WARNING
+               "Mismatched Memory Attribute Index (%#x instead of %#x)\n",
+               region->prlar.reg.ai, PAGE_AI_MASK(attributes));
+        ret = false;
+    }
+
+    return ret;
+}
+
+void *map_mm_range(paddr_t base, paddr_t limit, unsigned int flags)
+{
+    paddr_t start_pg = round_pgdown(base);
+    paddr_t end_pg = round_pgup(limit);
+    void *ret = NULL;
+    uint8_t idx;
+    int rc;
+
+    if ( !check_mpu_mapping(start_pg, end_pg, flags) )
+        return NULL;
+
+    spin_lock(&xen_mpumap_lock);
+
+    rc = is_mm_range_mapped(start_pg, end_pg, &idx);
+    if ( rc < 0 ) {
+        printk(XENLOG_WARNING
+               "Cannot handle overlapping MPU memory protection regions\n");
+        goto out;
+    }
+
+    if ( idx != INVALID_REGION_IDX )
+    {
+        /* Already mapped with different attributes */
+        if ( !is_mm_attr_match(&xen_mpumap[idx], flags) )
+        {
+            printk(XENLOG_WARNING
+                   "Range %#"PRIpaddr"-%#"PRIpaddr" already mapped with different flags\n",
+                   start_pg, end_pg);
+            goto out;
+        }
+
+        /* Already mapped with same attributes */
+        ret = maddr_to_virt(base);
+        goto out;
+    }
+
+    if ( !xen_mpumap_update_entry(start_pg, end_pg, flags, true) )
+    {
+        context_sync_mpu();
+        ret = maddr_to_virt(base);
+    }
+
+ out:
+    spin_unlock(&xen_mpumap_lock);
+
+    return ret;
+}
+
+void unmap_mm_range(paddr_t base)
+{
+    uint8_t idx;
+    int rc;
+
+    spin_lock(&xen_mpumap_lock);
+
+    /*
+     * Mappings created via map_mm_range are at least PAGE_SIZE. Find the idx
+     * of the MPU memory region containing `start` mapped through map_mm_range.
+     */
+    rc = is_mm_range_mapped(base, base + PAGE_SIZE, &idx);
+    if ( rc < 0 ) {
+        printk(XENLOG_WARNING
+               "Cannot handle overlapping MPU memory protection regions\n");
+        goto out;
+    }
+
+    if ( idx == INVALID_REGION_IDX )
+    {
+        printk(XENLOG_ERR
+               "Failed to unmap_mm_range MPU memory region at %#"PRIpaddr"\n",
+               base);
+        goto out;
+    }
+
+    /* This API is only meant to unmap transient regions */
+    if ( !region_is_transient(&xen_mpumap[idx]) )
+        goto out;
+
+    /* Disable MPU memory region and clear the associated entry in xen_mpumap */
+    disable_mpu_region_from_index(idx);
+    context_sync_mpu();
+
+ out:
+    spin_unlock(&xen_mpumap_lock);
+}
+
 void __iomem *ioremap_attr(paddr_t start, size_t len, unsigned int flags)
 {
-    BUG_ON("unimplemented");
-    return NULL;
+    if ( !map_mm_range(start, start + len, flags) )
+        return NULL;
+
+    /* Mapped or already mapped */
+    return maddr_to_virt(start);
 }
 
 /*
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 11:13:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 11:13:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098399.1452502 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uraZj-000302-GR; Thu, 28 Aug 2025 11:13:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098399.1452502; Thu, 28 Aug 2025 11: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 1uraZj-0002zq-Cw; Thu, 28 Aug 2025 11:13:51 +0000
Received: by outflank-mailman (input) for mailman id 1098399;
 Thu, 28 Aug 2025 11:13:49 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=zjrZ=3I=arm.com=hari.limaye@srs-se1.protection.inumbo.net>)
 id 1uraZh-0001Z0-Nr
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 11:13:49 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 12166935-8400-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 13:13:49 +0200 (CEST)
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 E987E1688;
 Thu, 28 Aug 2025 04:13:39 -0700 (PDT)
Received: from PWQ0QT7DJ1.emea.arm.com (PWQ0QT7DJ1.cambridge.arm.com
 [10.1.33.71])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id BDE5E3F694;
 Thu, 28 Aug 2025 04:13: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>
X-Inumbo-ID: 12166935-8400-11f0-aeb2-fb57b961d000
From: Hari Limaye <hari.limaye@arm.com>
To: xen-devel@lists.xenproject.org
Cc: luca.fancellu@arm.com,
	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>,
	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>,
	Penny Zheng <penny.zheng@arm.com>,
	Wei Chen <wei.chen@arm.com>
Subject: [PATCH v3 5/5] xen/arm: map static memory on demand
Date: Thu, 28 Aug 2025 12:12:07 +0100
Message-ID: <30cbc79f765c21759d74377e55cc471210fc2575.1756379422.git.hari.limaye@arm.com>
X-Mailer: git-send-email 2.42.1
In-Reply-To: <cover.1756379422.git.hari.limaye@arm.com>
References: <cover.1756379422.git.hari.limaye@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Penny Zheng <Penny.Zheng@arm.com>

In the function `init_staticmem_pages` we need to have mapped static
memory banks for initialization. Unlike on an MMU system, we cannot map
the entire RAM on an MPU system as we have a limited number of MPU
memory regions. To solve this, transiently map the static memory banks
for initialization.

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>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>
---
Changes from v2:
- Add Michal's R-b
---
 xen/arch/arm/include/asm/mmu/mm.h |  3 +++
 xen/arch/arm/include/asm/mpu/mm.h |  4 ++++
 xen/arch/arm/mpu/setup.c          | 11 +++++++++++
 xen/include/xen/static-memory.h   |  8 ++++++++
 4 files changed, 26 insertions(+)

diff --git a/xen/arch/arm/include/asm/mmu/mm.h b/xen/arch/arm/include/asm/mmu/mm.h
index 7f4d59137d..645a0ea3cb 100644
--- a/xen/arch/arm/include/asm/mmu/mm.h
+++ b/xen/arch/arm/include/asm/mmu/mm.h
@@ -110,6 +110,9 @@ void dump_pt_walk(paddr_t ttbr, paddr_t addr,
 extern void switch_ttbr(uint64_t ttbr);
 extern void relocate_and_switch_ttbr(uint64_t ttbr);
 
+static inline void map_staticmem_pages_to_xen(paddr_t start, paddr_t end) {}
+static inline void unmap_staticmem_pages_to_xen(paddr_t start, paddr_t end) {}
+
 #endif /* __ARM_MMU_MM_H__ */
 
 /*
diff --git a/xen/arch/arm/include/asm/mpu/mm.h b/xen/arch/arm/include/asm/mpu/mm.h
index efb0680e39..4cc769418e 100644
--- a/xen/arch/arm/include/asm/mpu/mm.h
+++ b/xen/arch/arm/include/asm/mpu/mm.h
@@ -123,6 +123,10 @@ void *map_mm_range(paddr_t base, paddr_t limit, unsigned int flags);
  */
 void unmap_mm_range(paddr_t base);
 
+/* {un}map_staticmem_pages_to_xen used while initializing static memory banks */
+void map_staticmem_pages_to_xen(paddr_t start, paddr_t end);
+void unmap_staticmem_pages_to_xen(paddr_t start, paddr_t end);
+
 /*
  * Checks whether a given memory range is present in the provided table of
  * MPU protection regions.
diff --git a/xen/arch/arm/mpu/setup.c b/xen/arch/arm/mpu/setup.c
index 163573b932..dbc3107333 100644
--- a/xen/arch/arm/mpu/setup.c
+++ b/xen/arch/arm/mpu/setup.c
@@ -83,6 +83,17 @@ void * __init early_fdt_map(paddr_t fdt_paddr)
     return fdt_virt;
 }
 
+void __init map_staticmem_pages_to_xen(paddr_t start, paddr_t end)
+{
+    if ( !map_mm_range(start, end, PAGE_HYPERVISOR) )
+        panic("Unable to map staticmem pages to Xen!");
+}
+
+void __init unmap_staticmem_pages_to_xen(paddr_t start, paddr_t end)
+{
+    unmap_mm_range(start);
+}
+
 /*
  * copy_from_paddr - copy data from a physical address
  * @dst: destination virtual address
diff --git a/xen/include/xen/static-memory.h b/xen/include/xen/static-memory.h
index e445aa8057..d99abac113 100644
--- a/xen/include/xen/static-memory.h
+++ b/xen/include/xen/static-memory.h
@@ -18,7 +18,15 @@ static inline void init_staticmem_bank(const struct membank *bank)
     if ( mfn_x(bank_end) <= mfn_x(bank_start) )
         return;
 
+    /* Map temporarily before initialization */
+    map_staticmem_pages_to_xen(mfn_to_maddr(bank_start),
+                               mfn_to_maddr(bank_end));
+
     unprepare_staticmem_pages(mfn_to_page(bank_start), bank_pages, false);
+
+    /* Unmap immediately after initialization */
+    unmap_staticmem_pages_to_xen(mfn_to_maddr(bank_start),
+                                 mfn_to_maddr(bank_end));
 }
 
 void allocate_static_memory(struct domain *d, struct kernel_info *kinfo,
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 11:22:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 11:22:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098463.1452511 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uraiN-0005yR-Bx; Thu, 28 Aug 2025 11:22:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098463.1452511; Thu, 28 Aug 2025 11:22: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 1uraiN-0005yK-9P; Thu, 28 Aug 2025 11:22:47 +0000
Received: by outflank-mailman (input) for mailman id 1098463;
 Thu, 28 Aug 2025 11:22:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=pYI3=3I=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uraiM-0005yE-Gf
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 11:22:46 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 51044f91-8401-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 13:22:44 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-afcb7ace3baso138158066b.3
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 04: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
 a640c23a62f3a-afef7ae440dsm9984066b.15.2025.08.28.04.22.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 04:22: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>
X-Inumbo-ID: 51044f91-8401-11f0-ae26-e363de0e7a9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756380163; x=1756984963; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=nBCVT5U94Er3pg7O9/74HcAnrt+R1bIOSOvLf3bbG8Y=;
        b=dJ3UwlmHvj5YKg6mJPycPR4DmP92gm2u6ulsY3RkEPeBE0MjhpkHZB8w+iVjkFR/uu
         0CNx6N7gGt2+1T0+ob40a1sX2u/1nqsUll6gCrcE6xboai1VpgU/fOTUw1/gdoHmp4gd
         qPV+zlU5+v0bGVJ8IoWkyBGVKgJJAvp9xOrcoHYz6XT3spWYx8UrviS4ValyTIX0BzkR
         qXAJrUoOuyQUEY708t2kAI9G56QBWRi+JoxEQzHCVMyYd7sKCreP7HeZ/Nsm0t58C8e6
         +u7qxtqQaDyGrug7eXaqO3yjk5JmXTQaLWnNaEw4Gok81Up5WAVGNQXLPN4Tj/Phr+n7
         SiNQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756380163; x=1756984963;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nBCVT5U94Er3pg7O9/74HcAnrt+R1bIOSOvLf3bbG8Y=;
        b=QRRWpM2hjY5aIqclvyqlfEHY2bqGR5Kl8vdGVbxlIk+JHf/QTuojcQdoQlgyy11tnC
         zRqvdSGffILvwO5gyxnW2oJT49ACzjbEDM5opXEph7/CGYctXRQqkJMprCbYRd+xtJ80
         74Vw8m0LjYnQk+XF0Z5wklWqRdEJQbrigSGuGTPLIgnu2t32G6uYcWh3LHFXcxDv+rqh
         3f3YK7s2HSoMm6L/KrmdhJJrHcphJN5r1R6TzYymILiVP4JwdyPIOPL1JDK8b1a0RDvB
         vkhSbx0iMUWT4Ei6rOvHAP1BXtredVTlxkdV1isxE0G/jKcgtQ5piaAHuYRwpaRhr5dk
         Jv9Q==
X-Forwarded-Encrypted: i=1; AJvYcCXET1olI9I9EsBJr4g5ISObUWVG243hOhC4cuMPql1q1vveYRtmtXGHTXF3pBuUD7+gWnmpG91AELk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyseIE19Cj2uUOtHIQzbmd+ikjchLFSj0/0ie1axImxcCoQbCXK
	NZi0xuj4lslfEDdHKSnbeM0MlYCaHKC67jG5P5z63C0n3KGdDhbudHh0elTWot+pHw==
X-Gm-Gg: ASbGncsEjlr2o4mseOazZpGdJvStnZG6hb8cNVUdAFWxtf1DWYaMN3sBvRLsVv6aeFQ
	tGHfVXfweey0gQCCP/C6NU6dGeb0YEVp0Yg8GNtcKuHH2WtTm8KNK+zdYAFtpIu+DaaTwhAJxtU
	KNl40GCcALghhWJwO2QRAVw0m3fcxOUhkGKTpZwA61Bol9zvaHcrEL8mb0y6UV/aFup8XQtOvZe
	sbjn9njeJnPHC0wEAwiNicjlK4k4TJSD63O1v1yNHX1ZbrIgVsHKckQiCUFo3w5o2kJmUW0IlS6
	5gl/4LnHTe4YXF0HRSNqNdg6CgidA0HFmafn1wq5qBzbcEjucEBCeGqhQ1O2dEQxKG6iuC91Cee
	YHlD7qmq3hJaadJ7YHAV43z/MMQSy8kLnKXSnsN4QLwfJxpsX5kPg3ePe/zB5HKD0q3L4jTmIww
	a1l2zpDROCyUxQaKfidw==
X-Google-Smtp-Source: AGHT+IF35LgoQS/DsKAz81cTp6qGwPeqvNkwfHW3rl0rODbDgb6AwoEfsXyeLbYaXgeiWIspwWKJbA==
X-Received: by 2002:a17:907:805:b0:afd:d993:9f2b with SMTP id a640c23a62f3a-afe29638000mr2174948666b.65.1756380163143;
        Thu, 28 Aug 2025 04:22:43 -0700 (PDT)
Message-ID: <b2712815-97c2-4473-bcf6-aae8517aad37@suse.com>
Date: Thu, 28 Aug 2025 13:22:41 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8 3/8] xen/cpufreq: implement amd-cppc driver for CPPC in
 passive mode
To: Penny Zheng <Penny.Zheng@amd.com>, Jason Andryuk <jason.andryuk@amd.com>
Cc: ray.huang@amd.com, 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: <20250828100306.1776031-1-Penny.Zheng@amd.com>
 <20250828100306.1776031-4-Penny.Zheng@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: <20250828100306.1776031-4-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.08.2025 12:03, Penny Zheng wrote:
> +static int cf_check amd_cppc_cpufreq_target(struct cpufreq_policy *policy,
> +                                            unsigned int target_freq,
> +                                            unsigned int relation)
> +{
> +    unsigned int cpu = policy->cpu;
> +    const struct amd_cppc_drv_data *data = per_cpu(amd_cppc_drv_data, cpu);

I fear there's a problem here that I so far overlooked. As it happens, just
yesterday I made a patch to eliminate cpufreq_drv_data[] global. In the
course of doing so it became clear that in principle the CPU denoted by
policy->cpu can be offline. Hence its per-CPU data is also unavailable. See
cpufreq_add_cpu()'s invocation of .init() and cpufreq_del_cpu()'s invocation
of .exit(). Is there anything well-hidden (and likely lacking some suitable
comment) which guarantees that no two CPUs (threads) will be in the same
domain? If not, I fear you simply can't use per-CPU data here.

Since initially I was thinking of using per-CPU data also in my patch, I'm
reproducing this in raw form below, for your reference. It's generally only
4.22 material now, of course. Yet in turn for your driver the new drv_data
field may want to become a union, with an "acpi" and a "cppc" sub-struct.
And possibly a "hwp" one: Jason, looks like the HWP driver has a similar
issue (unless again something guarantees that no two CPUs / threads will
be in the same domain).

Jan

cpufreq: eliminate cpufreq_drv_data[]

Possibly many slots of it may be unused (all of them when the HWP or CPPC
drivers are in use), as it's always strictly associated with the CPU
recorded in a policy (irrespective of that CPU intermediately being taken
offline). It is shared by all CPUs sharing a policy. We could therefore
put the respective pointers in struct cpufreq_policy, but even that level
of indirection is pointless. Embed the driver data structure directly in
the policy one.

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

--- a/xen/arch/x86/acpi/cpufreq/acpi.c
+++ b/xen/arch/x86/acpi/cpufreq/acpi.c
@@ -174,17 +174,18 @@ static u32 get_cur_val(const cpumask_t *
         return 0;
 
     policy = per_cpu(cpufreq_cpu_policy, cpu);
-    if (!policy || !cpufreq_drv_data[policy->cpu])
+    if ( !policy )
         return 0;
 
-    switch (cpufreq_drv_data[policy->cpu]->arch_cpu_flags) {
+    switch ( policy->drv_data.arch_cpu_flags )
+    {
     case SYSTEM_INTEL_MSR_CAPABLE:
         cmd.type = SYSTEM_INTEL_MSR_CAPABLE;
         cmd.addr.msr.reg = MSR_IA32_PERF_STATUS;
         break;
     case SYSTEM_IO_CAPABLE:
         cmd.type = SYSTEM_IO_CAPABLE;
-        perf = cpufreq_drv_data[policy->cpu]->acpi_data;
+        perf = policy->drv_data.acpi_data;
         cmd.addr.io.port = perf->control_register.address;
         cmd.addr.io.bit_width = perf->control_register.bit_width;
         break;
@@ -210,9 +211,8 @@ static unsigned int cf_check get_cur_fre
     if (!policy)
         return 0;
 
-    data = cpufreq_drv_data[policy->cpu];
-    if (unlikely(data == NULL ||
-        data->acpi_data == NULL || data->freq_table == NULL))
+    data = &policy->drv_data;
+    if ( !data->acpi_data || !data->freq_table )
         return 0;
 
     return extract_freq(get_cur_val(cpumask_of(cpu)), data);
@@ -255,7 +255,7 @@ static int cf_check acpi_cpufreq_target(
     struct cpufreq_policy *policy,
     unsigned int target_freq, unsigned int relation)
 {
-    struct acpi_cpufreq_data *data = cpufreq_drv_data[policy->cpu];
+    struct acpi_cpufreq_data *data = &policy->drv_data;
     struct processor_performance *perf;
     struct cpufreq_freqs freqs;
     cpumask_t online_policy_cpus;
@@ -265,10 +265,8 @@ static int cf_check acpi_cpufreq_target(
     unsigned int j;
     int result = 0;
 
-    if (unlikely(data == NULL ||
-        data->acpi_data == NULL || data->freq_table == NULL)) {
+    if ( !data->acpi_data || !data->freq_table )
         return -ENODEV;
-    }
 
     if (policy->turbo == CPUFREQ_TURBO_DISABLED)
         if (target_freq > policy->cpuinfo.second_max_freq)
@@ -334,11 +332,9 @@ static int cf_check acpi_cpufreq_target(
 
 static int cf_check acpi_cpufreq_verify(struct cpufreq_policy *policy)
 {
-    struct acpi_cpufreq_data *data;
     struct processor_performance *perf;
 
-    if (!policy || !(data = cpufreq_drv_data[policy->cpu]) ||
-        !processor_pminfo[policy->cpu])
+    if ( !policy || !processor_pminfo[policy->cpu] )
         return -EINVAL;
 
     perf = &processor_pminfo[policy->cpu]->perf;
@@ -346,7 +342,7 @@ static int cf_check acpi_cpufreq_verify(
     cpufreq_verify_within_limits(policy, 0,
         perf->states[perf->platform_limit].core_frequency * 1000);
 
-    return cpufreq_frequency_table_verify(policy, data->freq_table);
+    return cpufreq_frequency_table_verify(policy, policy->drv_data.freq_table);
 }
 
 static unsigned long
@@ -382,17 +378,11 @@ static int cf_check acpi_cpufreq_cpu_ini
     unsigned int i;
     unsigned int valid_states = 0;
     unsigned int cpu = policy->cpu;
-    struct acpi_cpufreq_data *data;
+    struct acpi_cpufreq_data *data = &policy->drv_data;
     unsigned int result = 0;
     struct cpuinfo_x86 *c = &cpu_data[policy->cpu];
     struct processor_performance *perf;
 
-    data = xzalloc(struct acpi_cpufreq_data);
-    if (!data)
-        return -ENOMEM;
-
-    cpufreq_drv_data[cpu] = data;
-
     data->acpi_data = &processor_pminfo[cpu]->perf;
 
     perf = data->acpi_data;
@@ -409,23 +399,18 @@ static int cf_check acpi_cpufreq_cpu_ini
         if (cpufreq_verbose)
             printk("xen_pminfo: @acpi_cpufreq_cpu_init,"
                    "HARDWARE addr space\n");
-        if (!cpu_has(c, X86_FEATURE_EIST)) {
-            result = -ENODEV;
-            goto err_unreg;
-        }
+        if ( !cpu_has(c, X86_FEATURE_EIST) )
+            return -ENODEV;
         data->arch_cpu_flags = SYSTEM_INTEL_MSR_CAPABLE;
         break;
     default:
-        result = -ENODEV;
-        goto err_unreg;
+        return -ENODEV;
     }
 
     data->freq_table = xmalloc_array(struct cpufreq_frequency_table,
                                     (perf->state_count+1));
-    if (!data->freq_table) {
-        result = -ENOMEM;
-        goto err_unreg;
-    }
+    if ( !data->freq_table )
+        return -ENOMEM;
 
     /* detect transition latency */
     policy->cpuinfo.transition_latency = 0;
@@ -483,23 +468,14 @@ static int cf_check acpi_cpufreq_cpu_ini
     return result;
 
 err_freqfree:
-    xfree(data->freq_table);
-err_unreg:
-    xfree(data);
-    cpufreq_drv_data[cpu] = NULL;
+    XFREE(data->freq_table);
 
     return result;
 }
 
 static int cf_check acpi_cpufreq_cpu_exit(struct cpufreq_policy *policy)
 {
-    struct acpi_cpufreq_data *data = cpufreq_drv_data[policy->cpu];
-
-    if (data) {
-        cpufreq_drv_data[policy->cpu] = NULL;
-        xfree(data->freq_table);
-        xfree(data);
-    }
+    XFREE(policy->drv_data.freq_table);
 
     return 0;
 }
--- a/xen/arch/x86/acpi/cpufreq/cpufreq.c
+++ b/xen/arch/x86/acpi/cpufreq/cpufreq.c
@@ -35,8 +35,6 @@
 
 #include <acpi/cpufreq/cpufreq.h>
 
-struct acpi_cpufreq_data *cpufreq_drv_data[NR_CPUS];
-
 struct perf_pair {
     union {
         struct {
--- a/xen/arch/x86/acpi/cpufreq/powernow.c
+++ b/xen/arch/x86/acpi/cpufreq/powernow.c
@@ -84,16 +84,14 @@ static int cf_check powernow_cpufreq_tar
     struct cpufreq_policy *policy,
     unsigned int target_freq, unsigned int relation)
 {
-    struct acpi_cpufreq_data *data = cpufreq_drv_data[policy->cpu];
+    struct acpi_cpufreq_data *data = &policy->drv_data;
     struct processor_performance *perf;
     unsigned int next_state; /* Index into freq_table */
     unsigned int next_perf_state; /* Index into perf table */
     int result;
 
-    if (unlikely(data == NULL ||
-        data->acpi_data == NULL || data->freq_table == NULL)) {
+    if ( !data->acpi_data || !data->freq_table )
         return -ENODEV;
-    }
 
     perf = data->acpi_data;
     result = cpufreq_frequency_table_target(policy,
@@ -185,11 +183,9 @@ static void cf_check get_cpu_data(void *
 
 static int cf_check powernow_cpufreq_verify(struct cpufreq_policy *policy)
 {
-    struct acpi_cpufreq_data *data;
     struct processor_performance *perf;
 
-    if (!policy || !(data = cpufreq_drv_data[policy->cpu]) ||
-        !processor_pminfo[policy->cpu])
+    if ( !policy || !processor_pminfo[policy->cpu] )
         return -EINVAL;
 
     perf = &processor_pminfo[policy->cpu]->perf;
@@ -197,7 +193,7 @@ static int cf_check powernow_cpufreq_ver
     cpufreq_verify_within_limits(policy, 0, 
         perf->states[perf->platform_limit].core_frequency * 1000);
 
-    return cpufreq_frequency_table_verify(policy, data->freq_table);
+    return cpufreq_frequency_table_verify(policy, policy->drv_data.freq_table);
 }
 
 static int cf_check powernow_cpufreq_cpu_init(struct cpufreq_policy *policy)
@@ -205,18 +201,12 @@ static int cf_check powernow_cpufreq_cpu
     unsigned int i;
     unsigned int valid_states = 0;
     unsigned int cpu = policy->cpu;
-    struct acpi_cpufreq_data *data;
+    struct acpi_cpufreq_data *data = &policy->drv_data;
     unsigned int result = 0;
     struct processor_performance *perf;
     struct amd_cpu_data info;
     struct cpuinfo_x86 *c = &cpu_data[policy->cpu];
 
-    data = xzalloc(struct acpi_cpufreq_data);
-    if (!data)
-        return -ENOMEM;
-
-    cpufreq_drv_data[cpu] = data;
-
     data->acpi_data = &processor_pminfo[cpu]->perf;
 
     info.perf = perf = data->acpi_data;
@@ -228,8 +218,7 @@ static int cf_check powernow_cpufreq_cpu
         if (cpumask_weight(policy->cpus) != 1) {
             printk(XENLOG_WARNING "Unsupported sharing type %d (%u CPUs)\n",
                    policy->shared_type, cpumask_weight(policy->cpus));
-            result = -ENODEV;
-            goto err_unreg;
+            return -ENODEV;
         }
     } else {
         cpumask_copy(policy->cpus, cpumask_of(cpu));
@@ -238,21 +227,16 @@ static int cf_check powernow_cpufreq_cpu
     /* capability check */
     if (perf->state_count <= 1) {
         printk("No P-States\n");
-        result = -ENODEV;
-        goto err_unreg;
+        return -ENODEV;
     }
 
-    if (perf->control_register.space_id != perf->status_register.space_id) {
-        result = -ENODEV;
-        goto err_unreg;
-    }
+    if ( perf->control_register.space_id != perf->status_register.space_id )
+        return -ENODEV;
 
     data->freq_table = xmalloc_array(struct cpufreq_frequency_table, 
                                     (perf->state_count+1));
-    if (!data->freq_table) {
-        result = -ENOMEM;
-        goto err_unreg;
-    }
+    if ( !data->freq_table )
+        return -ENOMEM;
 
     /* detect transition latency */
     policy->cpuinfo.transition_latency = 0;
@@ -298,23 +282,14 @@ static int cf_check powernow_cpufreq_cpu
     return result;
 
 err_freqfree:
-    xfree(data->freq_table);
-err_unreg:
-    xfree(data);
-    cpufreq_drv_data[cpu] = NULL;
+    XFREE(data->freq_table);
 
     return result;
 }
 
 static int cf_check powernow_cpufreq_cpu_exit(struct cpufreq_policy *policy)
 {
-    struct acpi_cpufreq_data *data = cpufreq_drv_data[policy->cpu];
-
-    if (data) {
-        cpufreq_drv_data[policy->cpu] = NULL;
-        xfree(data->freq_table);
-        xfree(data);
-    }
+    XFREE(policy->drv_data.freq_table);
 
     return 0;
 }
--- a/xen/include/acpi/cpufreq/cpufreq.h
+++ b/xen/include/acpi/cpufreq/cpufreq.h
@@ -37,8 +37,6 @@ struct acpi_cpufreq_data {
     unsigned int arch_cpu_flags;
 };
 
-extern struct acpi_cpufreq_data *cpufreq_drv_data[NR_CPUS];
-
 struct cpufreq_cpuinfo {
     unsigned int        max_freq;
     unsigned int        second_max_freq;    /* P1 if Turbo Mode is on */
@@ -80,6 +78,8 @@ struct cpufreq_policy {
     int8_t              turbo;  /* tristate flag: 0 for unsupported
                                  * -1 for disable, 1 for enabled
                                  * See CPUFREQ_TURBO_* below for defines */
+
+    struct acpi_cpufreq_data drv_data;
 };
 DECLARE_PER_CPU(struct cpufreq_policy *, cpufreq_cpu_policy);
 



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 11:42:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 11:42:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098487.1452521 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urb11-0000c1-Ok; Thu, 28 Aug 2025 11:42:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098487.1452521; Thu, 28 Aug 2025 11:42: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 1urb11-0000bu-Lx; Thu, 28 Aug 2025 11:42:03 +0000
Received: by outflank-mailman (input) for mailman id 1098487;
 Thu, 28 Aug 2025 11:42:02 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FxJR=3I=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1urb10-0000bo-6Z
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 11:42:02 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 02d22f1c-8404-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 13:42:01 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by AM0PR03MB6292.eurprd03.prod.outlook.com (2603:10a6:20b:15e::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.16; Thu, 28 Aug
 2025 11:41:58 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9073.016; Thu, 28 Aug 2025
 11:41: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>
X-Inumbo-ID: 02d22f1c-8404-11f0-aeb2-fb57b961d000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gFbUp/t636ZVfnqlOxU8KE1pKsmbyhmuwD8LKbO3rKgY5lGp/nLP8BQ1KKjfXNydCcFfhRPo0f7f7n2a0yjMkWEcRSS9+q7PH+6vD42lnt9cz3+/ZcmhFJtsORA88Zru95lvJli5DRS+mKpv0DOJ7cW676J3rdzbhmDKlLnVNd2+92jsrZ0E3WZPcJ+Wk3W78wiPkl4x2XPZ1c35Dw4EcIrlAk3WrvHFTjzQcRvXsUltPGna3ccUB6v2SVkx5k6YyEE7a8bb9MJwEdUb3Ok1V+ypBO8bS4EeS0J5j3jxwfSxPg2/3cSzNpyJAH/kch4xGrkHX+zeLiCDA8uj19gWkA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=QTzp5VISobobGwGhn9exeFnV0sYw1kkyUMhxzo6dQOM=;
 b=y84kK9oQvuq73DK6mNJwfBIhtvCkRUUml2L2bvBZNgwvBAmGgM7iQKN2W8oamA3ohZ5sTGaWUa+zghqZyDmN6C79/rUGff+Exqvj9Y6gWKpZ1Nl+YeCBrhxrGFCe9QtyjLhc+XMhw+2erorf1Jvu/70Ad0eswz7D7Fkvi2L0+NOwIBa8T0Ixdwaji8y+QxLXaNtzg+bB/gSmEze4GSQgdR3hV7avkPaw/QMl/u+pKEEyen4wzIejPOcYxdiV9jHvgUoq5wwxJi2xn3rtrDigjyQhu1SmdfRuU0ZqGab8NFUyCcm26odctbUv140XsKv3ItexGVpqYXoVt4UB9yGz4w==
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=QTzp5VISobobGwGhn9exeFnV0sYw1kkyUMhxzo6dQOM=;
 b=oeU97eBLJGYslGzXRGg2/KhYuH9dndoxWG//ePE+VZ0eZsBi2dLtecUNNfqzxyJRFpb+tLeKnRjP0PyCRWoOG1lzgFGyLECuNxmeeL0MoE0kQz5cSurgnM9UYDr5g8zLOqm5c3NFfY4z1/UpSkLXIphvXG/PHZYb2mdFjpDxXmLk+sMQadeohqTmMRDq5DcQmavPVNOFi615wYT4dQYQ9dYNCCAT4BKKWBDM0Int/2OuTFAzscXM7pmy9WfUhDtdTRAXLSukvjpSfYigtbCwSIM79biLRvWuiZmiNTdG/1OcGB5c5eKnz2rMiDQO9duLC6VrkgnlDq0pfyhtULcWnA==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "olekstysh@gmail.com" <olekstysh@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>
Subject: Re: [PATCH v4 10/12] xen/arm: vgic-v3: add emulation of GICv3.1 eSPI
 registers
Thread-Topic: [PATCH v4 10/12] xen/arm: vgic-v3: add emulation of GICv3.1 eSPI
 registers
Thread-Index: AQHcF3/PMGQJ9ZKjmEOWPrVRdE59HbR38oSA
Date: Thu, 28 Aug 2025 11:41:57 +0000
Message-ID: <0c55c943-55f5-4033-8d82-f85338221465@epam.com>
References: <cover.1756317702.git.leonid_komarianskyi@epam.com>
 <6b312e1997da5abdf592f66d16067f4330431ded.1756317702.git.leonid_komarianskyi@epam.com>
In-Reply-To:
 <6b312e1997da5abdf592f66d16067f4330431ded.1756317702.git.leonid_komarianskyi@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: GV2PR03MB8678:EE_|AM0PR03MB6292:EE_
x-ms-office365-filtering-correlation-id: f50ee0f0-4bbc-43bb-f098-08dde627e502
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?VzUwaTYxRWhsT05MNng0dktMckFCcXhtMGJXWVJJSjdRWFhwZ29VclN0dkFQ?=
 =?utf-8?B?TVhYb2lxa0J5QmxkeUd1QmRvMGF6VWticEdldFg4OTQxbEUzSjZ0ZWdVM09D?=
 =?utf-8?B?ZndjN1hQbVpMUllzWi9nVytTV0ZZZkZYNklkd0x5ZVUwR3JheGpKZ1VRdGps?=
 =?utf-8?B?b0N1cmdWc2FFbnFZalMvT205MExPY0Uwb3g0c29Ba1ZnRmdqbTFYcVNHQkox?=
 =?utf-8?B?Zy9mQk5DUWZ0VTYyWWV2ajgzSTRmZlk3dFlHbituNTlSVlA5OGppVkdicXhE?=
 =?utf-8?B?RW8rbEpOblZXeFJOS3d5b0lOMmlSdUZldGE5VktLQkxQYmFVT3ZKUUdPWHpT?=
 =?utf-8?B?dEFGbG9lMXF4NHJnb1ZoOWtuaFhRczFjajR1TXpNUVVvb3lpNXF2S3JkeGp6?=
 =?utf-8?B?MlYrTXVJMEwyd1BvcG9rcm1aaFhDcnVqbzl6aHdXMmZ3VzA0ZjhEWUlDbFVs?=
 =?utf-8?B?aVpYK2RKeDVsUVkweWpOYTNOUFh4WDdUamI1dUsvZU9oZVJUWER4YjhLVjdP?=
 =?utf-8?B?a0VBaEJMeGF6WVM1VHFVTlZtZW5JeFdWVEtkbmR0RzJ0OEF5bDdEUm04YXdy?=
 =?utf-8?B?a2wwR3pieEFFRkxMU2Q1a212OW1wSGUvMFRqcWNzMUVqc0gxajg2cm1CQmcy?=
 =?utf-8?B?VThrbUFWanZldkpOejdEVm5YaDVZVDhTYnAwbCt1NjVrMDR1SS84T2t3cEd4?=
 =?utf-8?B?QWpSVEhVTGZ4djY4bnZucm1DSFkxRk96d3NhMjdKb3RpbFhvN1ppTGtxS3kr?=
 =?utf-8?B?dVo5SjY4Nm9jdnJUQkFGdnhYZStOUzR4QTdVQmhMMWU5RzNwQnFYSnAxWmxN?=
 =?utf-8?B?S05xaG4vRDNUQzMzUzJ2eEp0WVoyOThRa2N1clBkK0N4VDVOYjl2Wlo2NDF4?=
 =?utf-8?B?RUtCZ3M1STBaMFhlckZ3b2JyWVJVU2RUZlFjSmJqSjEwd1ovY2llbWNzbW0v?=
 =?utf-8?B?SVJIOHhaMDVnMDRHZWNCb05EMFNKZTFtQW9tR3FGbUNISFFQT0ZPa1JZV3NM?=
 =?utf-8?B?Q0kxcUxjQzBEUFNYV2tIdUF3R1lWS0lQSXYrcGZhNEptK0VhMWlOb0RiM0lu?=
 =?utf-8?B?Y0JNVyt6WE9nczhpcXk1YlI3WVhGdHJqVEZ3eHlRVzcwVWtJUUpYbGprMjFp?=
 =?utf-8?B?MjVlNzY4ZzdVaE9JamJiQnBUdzRwQThqSDBkaFNOQzNNbjR6U1JMOVRJWGpF?=
 =?utf-8?B?UzVxNUE1d0hPd29qckJKMk1uVktKeXp1ZTh1UVVZUWk0SmYxcFFRZ2R1OU13?=
 =?utf-8?B?QThYZEJvb1dOcDVGeWkvVkQzY0hoNEhiNWJXTnRkc0FpNzBiRHZTaGljMkNW?=
 =?utf-8?B?WVFGeHNXM1JZRXhlR0sxWkZnYXRGNmRxT1ZYZmhKcGtIaDRuR1ZYTjl5em9G?=
 =?utf-8?B?MFRYbTJaTVlxMjVFYWhoMFF1eERjMXJXdlMxQU9aMkcxMWwrejRSanU3Z1ow?=
 =?utf-8?B?VU1lMmFTQUZsVHd6YmJkRlZub2VWeGtVa0V5WmNyb1NWWXQ0Um1sY0Vpcnli?=
 =?utf-8?B?cWEwMyswb2JseVRGVE9VRkNkaFZNcnY0RE1XSkpLNmJwWitLa2V4VFYxSktJ?=
 =?utf-8?B?V3kyd3pPeFFXMUIwdTZPWEJTb0loQjRyM3UvVHJNZGVqNVNPUThaam13VnQ4?=
 =?utf-8?B?UUY4Wk5RVlVRSHBBdktzQzN6RTNFZ0RvamFQc3EyTWlUWUk5Sy9OZytFaVJ2?=
 =?utf-8?B?TzhPNmRqb0xET0JtbkREeWU5QXdHbFVxeGErZ2FzNEVVZDh5emhVeFVYK0Nl?=
 =?utf-8?B?am1xWWxTUFFZT2FIQm5TWlZkK291clZ6SEIzQWFmbXZoNGdVMDNyWFRXcVox?=
 =?utf-8?B?a3hSY0tkdXJWR2FLR2JHWU9uZWRYa0ZMVHQrMXJxYUFhcmI2M2ZWVm12NjFF?=
 =?utf-8?B?eE5pcHJoUmhNNVZsdWdYR2Z4SVBqeER6QlAzcmsvRjI0cHFiK1Q2a29DVi90?=
 =?utf-8?Q?RV/P3qDJHJI=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?OE1DdmYzNmVyeE5XVGdyVXpsQ0Q4YkF3UE0zSHR1UGFQc0R1NEdhZnNTR21o?=
 =?utf-8?B?SVBxZE1DOGNoeW1oTWhES1I0YWR3Z2tWRDhwR25aNE9ZK0dnQVRhaTIxL2Ju?=
 =?utf-8?B?L29rY0JpbjFOeXZVTlI1M0lqbGx4UjZrZHYzZUE2dFJ0NHNrdzNoelJFRmpX?=
 =?utf-8?B?alRhWVFKVWN3aEVBUHFYUy9CTWtocm1DU0YyNTQxTThveEp0YzZodDlLYzV3?=
 =?utf-8?B?ODhKK3paQVEyQVJ2ZVVKdGllRDdleGl0aWRXaGJYSmhmekVTaEtwckY5VVVy?=
 =?utf-8?B?TEp4ZEhHaDVnRHQ1anZyOUFNUXAyNzMyOUFlYVlwOG1xM05nZ2RETGNHRlhu?=
 =?utf-8?B?dW9xNXB2NmQyWi9VWHByUHMrQkVUYTZ3OUpzQkk2MmpJNGZmbFBSN3BsYXZM?=
 =?utf-8?B?QTZTck1KRVRXNWtUQjlHcXoxUmJEV1pXVnUxOVZnenJrOE80aDVqbjB0M3lI?=
 =?utf-8?B?cExTZy8yWXorQ1FGeG1OUE9MYkgrZGNxb2QzQ2xyMVd2YVZlWE9HRjFzelJQ?=
 =?utf-8?B?ZTRaZzI4NDU2OEZxUFE3a1FrWHpuaFh4MDBrUzUxR3VGb2N6ODFGeFpSQ3Fq?=
 =?utf-8?B?RFl2RlNIT1BDNUQ5N0E4elZWenVvY2JGTDlVYTdBZHpEeDl1NTVtK2haUW04?=
 =?utf-8?B?dU91VE9ob1JrckxnZks1RWtFdVRycW5CTzhITzVkS1dVRDJza1FRUXZwdExO?=
 =?utf-8?B?b1dvbW9iRUxXOXE0cDBPMFdZb0FraklZU0UxK0g2bDlJc2pkRWE4UU5kTzZ5?=
 =?utf-8?B?ajJBaEhYdTdyQmhZYVJKWWppZkJRVFFhMkVscEVKNnVlTmdhN3NMS3VDcy8v?=
 =?utf-8?B?czdsSHFkZkd4S29pdlc1OG1Wc281SnpTditkcDg3QUtpTHJ6SkxmUlVmc1hp?=
 =?utf-8?B?dncycVdVMHdZWXZCL1Y3OHFNNVpCRTFEM2lMUWdYb3dRMEM2bllOSFpZVzJF?=
 =?utf-8?B?RnZkRHNsaUJybnhIN2RnZG5tb2hYOE12dFhlNC9rY1hmWmRXTGU2OWFmKytu?=
 =?utf-8?B?RGpoQXgvcyt0enU3R2hqVTV4V013eEYyUkVnTkhOU3FWK3dCeGcrd1RwUTQy?=
 =?utf-8?B?dDRqZkUvVWlsVTI0UC9MV3pnTDRNVElzWlBOZ3JPS0JCT0g1aEkvUDdzOWhX?=
 =?utf-8?B?RnJBdVEzdERoUjYxRWJmLzhrM0ZVeGd3T2dVWCtQKy9xeWlHWHBQQ0JLTDF4?=
 =?utf-8?B?MG9iT3ZNMFdBMHNLb2dSKzV1ZzVKWVhENWk3cnNaMkthUVQyYkVOVWtrTzc1?=
 =?utf-8?B?emdyMVpQMmozRHN4TkIxbFV4aUhCSVlWUGhkSWx5Z1pZNStsK2hWaThXVDZ2?=
 =?utf-8?B?SHg1MDJqTk4rOHZ6aWJ5TElqdzArcXJudWJqTUYweGttWitkaU9uVTJnODRv?=
 =?utf-8?B?OGhyYmZ4Y0FNNmV1MVZFTGUySXpFQjNkTllkeWtJMGYwMTFUTkIrdjZwcmJq?=
 =?utf-8?B?bXhiN2MvNDRFUS9aN1JvS1pjMjRoYzlIcmJieDkxR2d1T3VBVmxvSWd0b3lN?=
 =?utf-8?B?Z3JKT3hkU29FQnN3UHhCRUJrVXZBeGRiUDFkZSsvdG9kenZ3Y1VDeUZJeUE1?=
 =?utf-8?B?c2R6dUo1ZzRUeW9hcGw4M3dGSENaRlFaMlU5Z3dBZm9scWhlditVWG9ZKy9K?=
 =?utf-8?B?cVlqZFUyN3MvcVVCcHU3Mi9hYjE5MWZzTnRmV3dnTFVWU2k4SDdrZzNnSWtU?=
 =?utf-8?B?a1lSc2R1d3RCSytRbzV5MXFrMUlIYjdzZTd1Z1JSaWhkVFFNcXc3aUdkaEQ1?=
 =?utf-8?B?RWhNR0VUK0Jzd2NkZHFzeFBlZ0dVZVF4Mk9YNFpQd1dkZGZSU0c1WGtLR0c0?=
 =?utf-8?B?ekFtZmtmbkIxVmNLUG9kb3AvRE9yb1BGS1RnTE9LQ3lXT0dlSW9NcjVBcnZJ?=
 =?utf-8?B?QWtjNm8yMWVPQUprRzlobzFic21HZ3QzUnVpZ1pVNWk4RlQ5Y0RhU0F5SmQ2?=
 =?utf-8?B?eUlkdG9mV1QycjFTUityMzhaQlZUUjZ0NmliREVNditudVA5VVFqNytmUXJI?=
 =?utf-8?B?ZVIwV05VTVdhcHA2MHJqN2ZwVnZVMmJNc2V2eXRMVzRTemlHVWN5KzJhdzFk?=
 =?utf-8?B?bytHVGc3THRobGJkeTBSSXlwb3Y3MU16TFJ4V2tjNFBuZFpOYVkzK2NYWVpH?=
 =?utf-8?B?V0praGQwdFp5dUZERWlucVdVTVl3anBmeTBVL0llQ2hoSk9hL1ZGUmdaVldT?=
 =?utf-8?Q?VGBHLtX4cOU4m66ytxejlNI=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <06E659504BBB394B9B7C3360FBF0439E@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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f50ee0f0-4bbc-43bb-f098-08dde627e502
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Aug 2025 11:41: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: nsW5TaKC39mIE/Fwsic2CbUnt2BwsT7jBM4bA6HIxuJ5T7Q46sMzmED0wF3JiNMhOZW5uxeIX1TJfKY4kMOdznQQYaMLULCEpYgH8C0ZVw8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR03MB6292

SGVsbG8gZXZlcnlvbmUsDQoNClNvcnJ5IGZvciBzcGFtbWluZywgYnV0IGFjY29yZGluZyB0byB0
aGUgY29tbWVudHMgb24gdGhlIDh0aCBwYXRjaCBvZiANCnRoZSBzZXJpZXM6DQpodHRwczovL3Bh
dGNoZXcub3JnL1hlbi9jb3Zlci4xNzU2MzE3NzAyLmdpdC5sZW9uaWQuXzVGa29tYXJpYW5za3lp
QGVwYW0uY29tLzllOGExMWIwMjQ4MzNjMWI5MWI4ODA2ZTc3MDhiZjM1YjA0YThmNmUuMTc1NjMx
NzcwMi5naXQubGVvbmlkLl81RmtvbWFyaWFuc2t5aUBlcGFtLmNvbS8NCg0KQXMgaGFzX2VzcGkg
ZmllbGQgd2lsbCBiZSByZW1vdmVkLCB0aGUgZm9sbG93aW5nOg0KDQpPbiAyNy4wOC4yNSAyMToy
NCwgTGVvbmlkIEtvbWFyaWFuc2t5aSB3cm90ZToNCj4gQEAgLTExODQsNiArMTM5NiwyMSBAQCBz
dGF0aWMgaW50IHZnaWNfdjNfZGlzdHJfbW1pb19yZWFkKHN0cnVjdCB2Y3B1ICp2LCBtbWlvX2lu
Zm9fdCAqaW5mbywNCj4gICAgICAgY2FzZSBWUkFOR0UzMigweDAwNUMsIDB4MDA3Qyk6DQo+ICAg
ICAgICAgICBnb3RvIHJlYWRfcmVzZXJ2ZWQ7DQo+ICAgDQo+ICsjaWZkZWYgQ09ORklHX0dJQ1Yz
X0VTUEkNCj4gKyAgICBjYXNlIFZSQU5HRTMyKEdJQ0RfSUdST1VQUm5FLCBHSUNEX0lHUk9VUFJu
RU4pOg0KPiArICAgIGNhc2UgVlJBTkdFMzIoR0lDRF9JU0VOQUJMRVJuRSwgR0lDRF9JU0VOQUJM
RVJuRU4pOg0KPiArICAgIGNhc2UgVlJBTkdFMzIoR0lDRF9JQ0VOQUJMRVJuRSwgR0lDRF9JQ0VO
QUJMRVJuRU4pOg0KPiArICAgIGNhc2UgVlJBTkdFMzIoR0lDRF9JU1BFTkRSbkUsIEdJQ0RfSVNQ
RU5EUm5FTik6DQo+ICsgICAgY2FzZSBWUkFOR0UzMihHSUNEX0lDUEVORFJuRSwgR0lDRF9JQ1BF
TkRSbkVOKToNCj4gKyAgICBjYXNlIFZSQU5HRTMyKEdJQ0RfSVNBQ1RJVkVSbkUsIEdJQ0RfSVNB
Q1RJVkVSbkVOKToNCj4gKyAgICBjYXNlIFZSQU5HRTMyKEdJQ0RfSUNBQ1RJVkVSbkUsIEdJQ0Rf
SUNBQ1RJVkVSbkVOKToNCj4gKyAgICBjYXNlIFZSQU5HRTMyKEdJQ0RfSVBSSU9SSVRZUm5FLCBH
SUNEX0lQUklPUklUWVJuRU4pOg0KPiArICAgIGNhc2UgVlJBTkdFMzIoR0lDRF9JQ0ZHUm5FLCBH
SUNEX0lDRkdSbkVOKToNCj4gKyAgICBjYXNlIFZSQU5HRTMyKEdJQ0RfSUdSUE1PRFJuRSwgR0lD
RF9JR1JQTU9EUm5FTik6DQo+ICsgICAgICAgIGlmICggIXYtPmRvbWFpbi0+YXJjaC52Z2ljLmhh
c19lc3BpICkNCg0KLi4uYW5kIHNpbWlsYXIgY29kZSB3aWxsIGJlIGNoYW5nZWQgdG8gdGhlIG1h
Y3JvOg0KDQojZGVmaW5lIGhhc19lc3BpKHYpICgodiktPmRvbWFpbi0+YXJjaC52Z2ljLm5yX2Vz
cGlzICE9IDApDQoNCkl0IHdpbGwgYmVoYXZlIGluIGEgc2ltaWxhciB3YXksIHdpdGhvdXQgYW55
IGZ1bmN0aW9uYWwgY2hhbmdlcywgDQphc3N1bWluZyB0aGlzIHNvbHV0aW9uIGlzIGFjY2VwdGFi
bGUuDQoNCkJlc3QgcmVnYXJkcywNCkxlb25pZA==


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 11:57:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 11:57:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098504.1452533 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urbG7-0002Nh-Qh; Thu, 28 Aug 2025 11:57:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098504.1452533; Thu, 28 Aug 2025 11:57: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 1urbG7-0002Na-M1; Thu, 28 Aug 2025 11:57:39 +0000
Received: by outflank-mailman (input) for mailman id 1098504;
 Thu, 28 Aug 2025 11:57:38 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=J8r6=3I=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1urbG6-0002NU-IS
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 11:57:38 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2f70eae9-8406-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 13:57:36 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id EABC440888;
 Thu, 28 Aug 2025 11:57:33 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id E94ADC4CEEB;
 Thu, 28 Aug 2025 11:57: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>
X-Inumbo-ID: 2f70eae9-8406-11f0-ae26-e363de0e7a9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1756382253;
	bh=n8QXY5YRm9nQQBYQQGaxgrl8XdTmVTKFna/oqVl/xhQ=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=OqLtXq0gi9UBzAMP2wcXlT2cBb1dLghW49oEfniFZWmFDZ8XrTzjet3Se+cK+4Enz
	 bUcas58K9zqJYJO8K1xC/lojuRYXP35XvwWJ9XYIMcJRmRtfzd1ENQlyeWdM0r06Gk
	 0iGSQIedtJXaN5EXHSKxCaObLHf9f2/iEhzMO/91YHWTXC+kQV5HZRzX+s7pvZgTMs
	 /wX7b7wyAX9BAZbCT37OSLoaEdenWMo5h/NWko9aq0V1TzuE+BMc75vbwrCyO1DV2e
	 WdS++dKThCK37gVl5uHk3NBx12J9+O+GbVUmIbjagbvOKAeDIwhduPUosVAdqLdX7n
	 wfEu8DIXf5M5g==
Date: Thu, 28 Aug 2025 14:57:29 +0300
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 00/16] dma-mapping: migrate to physical address-based
 API
Message-ID: <20250828115729.GA10073@unreal>
References: <cover.1755624249.git.leon@kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <cover.1755624249.git.leon@kernel.org>

On Tue, Aug 19, 2025 at 08:36:44PM +0300, Leon Romanovsky wrote:
> Changelog:
> v4:
>  * Fixed kbuild error with mismatch in kmsan function declaration due to
>    rebase error.
> v3: https://lore.kernel.org/all/cover.1755193625.git.leon@kernel.org
>  * Fixed typo in "cacheable" word
>  * Simplified kmsan patch a lot to be simple argument refactoring
> v2: https://lore.kernel.org/all/cover.1755153054.git.leon@kernel.org
>  * Used commit messages and cover letter from Jason
>  * Moved setting IOMMU_MMIO flag to dma_info_to_prot function
>  * Micro-optimized the code
>  * Rebased code on v6.17-rc1
> v1: https://lore.kernel.org/all/cover.1754292567.git.leon@kernel.org
>  * Added new DMA_ATTR_MMIO attribute to indicate
>    PCI_P2PDMA_MAP_THRU_HOST_BRIDGE path.
>  * Rewrote dma_map_* functions to use thus new attribute
> v0: https://lore.kernel.org/all/cover.1750854543.git.leon@kernel.org/
> ------------------------------------------------------------------------
> 
> This series refactors the DMA mapping to use physical addresses
> as the primary interface instead of page+offset parameters. This
> change aligns the DMA API with the underlying hardware reality where
> DMA operations work with physical addresses, not page structures.
> 
> The series maintains export symbol backward compatibility by keeping
> the old page-based API as wrapper functions around the new physical
> address-based implementations.
> 
> This series refactors the DMA mapping API to provide a phys_addr_t
> based, and struct-page free, external API that can handle all the
> mapping cases we want in modern systems:
> 
>  - struct page based cachable DRAM
>  - struct page MEMORY_DEVICE_PCI_P2PDMA PCI peer to peer non-cachable
>    MMIO
>  - struct page-less PCI peer to peer non-cachable MMIO
>  - struct page-less "resource" MMIO
> 
> Overall this gets much closer to Matthew's long term wish for
> struct-pageless IO to cachable DRAM. The remaining primary work would
> be in the mm side to allow kmap_local_pfn()/phys_to_virt() to work on
> phys_addr_t without a struct page.
> 
> The general design is to remove struct page usage entirely from the
> DMA API inner layers. For flows that need to have a KVA for the
> physical address they can use kmap_local_pfn() or phys_to_virt(). This
> isolates the struct page requirements to MM code only. Long term all
> removals of struct page usage are supporting Matthew's memdesc
> project which seeks to substantially transform how struct page works.
> 
> Instead make the DMA API internals work on phys_addr_t. Internally
> there are still dedicated 'page' and 'resource' flows, except they are
> now distinguished by a new DMA_ATTR_MMIO instead of by callchain. Both
> flows use the same phys_addr_t.
> 
> When DMA_ATTR_MMIO is specified things work similar to the existing
> 'resource' flow. kmap_local_pfn(), phys_to_virt(), phys_to_page(),
> pfn_valid(), etc are never called on the phys_addr_t. This requires
> rejecting any configuration that would need swiotlb. CPU cache
> flushing is not required, and avoided, as ATTR_MMIO also indicates the
> address have no cachable mappings. This effectively removes any
> DMA API side requirement to have struct page when DMA_ATTR_MMIO is
> used.
> 
> In the !DMA_ATTR_MMIO mode things work similarly to the 'page' flow,
> except on the common path of no cache flush, no swiotlb it never
> touches a struct page. When cache flushing or swiotlb copying
> kmap_local_pfn()/phys_to_virt() are used to get a KVA for CPU
> usage. This was already the case on the unmap side, now the map side
> is symmetric.
> 
> Callers are adjusted to set DMA_ATTR_MMIO. Existing 'resource' users
> must set it. The existing struct page based MEMORY_DEVICE_PCI_P2PDMA
> path must also set it. This corrects some existing bugs where iommu
> mappings for P2P MMIO were improperly marked IOMMU_CACHE.
> 
> Since ATTR_MMIO is made to work with all the existing DMA map entry
> points, particularly dma_iova_link(), this finally allows a way to use
> the new DMA API to map PCI P2P MMIO without creating struct page. The
> VFIO DMABUF series demonstrates how this works. This is intended to
> replace the incorrect driver use of dma_map_resource() on PCI BAR
> addresses.
> 
> This series does the core code and modern flows. A followup series
> will give the same treatment to the legacy dma_ops implementation.
> 
> Thanks
> 
> Leon Romanovsky (16):
>   dma-mapping: introduce new DMA attribute to indicate MMIO memory
>   iommu/dma: implement DMA_ATTR_MMIO for dma_iova_link().
>   dma-debug: refactor to use physical addresses for page mapping
>   dma-mapping: rename trace_dma_*map_page to trace_dma_*map_phys
>   iommu/dma: rename iommu_dma_*map_page to iommu_dma_*map_phys
>   iommu/dma: extend iommu_dma_*map_phys API to handle MMIO memory
>   dma-mapping: convert dma_direct_*map_page to be phys_addr_t based
>   kmsan: convert kmsan_handle_dma to use physical addresses
>   dma-mapping: handle MMIO flow in dma_map|unmap_page
>   xen: swiotlb: Open code map_resource callback
>   dma-mapping: export new dma_*map_phys() interface
>   mm/hmm: migrate to physical address-based DMA mapping API
>   mm/hmm: properly take MMIO path
>   block-dma: migrate to dma_map_phys instead of map_page
>   block-dma: properly take MMIO path
>   nvme-pci: unmap MMIO pages with appropriate interface
> 
>  Documentation/core-api/dma-api.rst        |   4 +-
>  Documentation/core-api/dma-attributes.rst |  18 ++++
>  arch/powerpc/kernel/dma-iommu.c           |   4 +-
>  block/blk-mq-dma.c                        |  15 ++-
>  drivers/iommu/dma-iommu.c                 |  61 +++++------
>  drivers/nvme/host/pci.c                   |  18 +++-
>  drivers/virtio/virtio_ring.c              |   4 +-
>  drivers/xen/swiotlb-xen.c                 |  21 +++-
>  include/linux/blk-mq-dma.h                |   6 +-
>  include/linux/blk_types.h                 |   2 +
>  include/linux/dma-direct.h                |   2 -
>  include/linux/dma-map-ops.h               |   8 +-
>  include/linux/dma-mapping.h               |  33 ++++++
>  include/linux/iommu-dma.h                 |  11 +-
>  include/linux/kmsan.h                     |   9 +-
>  include/trace/events/dma.h                |   9 +-
>  kernel/dma/debug.c                        |  71 ++++---------
>  kernel/dma/debug.h                        |  37 ++-----
>  kernel/dma/direct.c                       |  22 +---
>  kernel/dma/direct.h                       |  52 ++++++----
>  kernel/dma/mapping.c                      | 117 +++++++++++++---------
>  kernel/dma/ops_helpers.c                  |   6 +-
>  mm/hmm.c                                  |  19 ++--
>  mm/kmsan/hooks.c                          |   5 +-
>  rust/kernel/dma.rs                        |   3 +
>  tools/virtio/linux/kmsan.h                |   2 +-
>  26 files changed, 305 insertions(+), 254 deletions(-)

Marek,

So what are the next steps here? This series is pre-requirement for the
VFIO MMIO patches.

Thanks

> 
> -- 
> 2.50.1
> 
> 


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 11:59:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 11:59:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098514.1452541 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urbHe-0002t2-2T; Thu, 28 Aug 2025 11:59:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098514.1452541; Thu, 28 Aug 2025 11:59: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 1urbHd-0002sv-W6; Thu, 28 Aug 2025 11:59:13 +0000
Received: by outflank-mailman (input) for mailman id 1098514;
 Thu, 28 Aug 2025 11:59:12 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=RXqL=3I=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1urbHc-0002sn-P5
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 11:59:12 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 681a4296-8406-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 13:59:10 +0200 (CEST)
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com (2603:10a6:102:ea::23)
 by PA4PR03MB7437.eurprd03.prod.outlook.com (2603:10a6:102:10d::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.24; Thu, 28 Aug
 2025 11:59:06 +0000
Received: from PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f]) by PA4PR03MB7136.eurprd03.prod.outlook.com
 ([fe80::36fa:728b:e216:6f6f%6]) with mapi id 15.20.9073.016; Thu, 28 Aug 2025
 11:59: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>
X-Inumbo-ID: 681a4296-8406-11f0-ae26-e363de0e7a9e
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wO/9QslGs1CFgtQNDsnZxKr86xOAkrq0fG3gUuiVf9tMc1f+BPZrO/J7cUHq7/XqdA/AtFTAig5WGdmO3DneiV9N4jT2OfmBpENwmNIOuY4FenPKtQIrVzDn4VseGJNGcWGAtfv+P33RhXo9pRpJ4odyz7DFdZsC/zEl024S5o4AEACyvnp6v7pycoW0R369CdpZLfYDDbUQOypnvOiPe41uYDHYpNjKgU/gY2NJ0dBzxPPkfu8HV8eo7MY9RVygjmaQNQyQ6J2a5WvIvGvhwOAsJvB1UrFCBnMNb4pNfWVWJ/Qk3+fsE+gVoxdIGgaHEeBPGMp0MejdCHykZUDCtg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=78pfezx16sWB3zQSCVJQOjWAN1FiAutGi4kNy8HGDWQ=;
 b=rdVmvNJwsVFK/7D+AzVwI7JL9S11aotM0LkgZvuM70VDiGP5AjwUb445/lnqk045SsHF9ti2H8MSZzmkamk+UDXtVaTOtrc7wiDx9sWcrjsKAknouhtodixsV8fSpVdt0yMdAOy74tSNcFMBnfI6d5FCmmxwq0EUMRIe25uPxlc+/1RqO9/5Bhkj63eZckFaqa68WYpetTZVAgjntpBBj53h85jbRKJxyQ7t6e5248L2XbX4nZlhzbdJKIrHhCVT7CcK5tVGU3+KQaPF0VMTQdUytZ+SYG/ZLLOw7C5vNf+KGaiqaesd9RsjIaUjaeU84RPxa4vOExvab2jB9YFj3Q==
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=78pfezx16sWB3zQSCVJQOjWAN1FiAutGi4kNy8HGDWQ=;
 b=ZezUEhrEBWoRyfPlltW/Ss5pemhDzpvZpeWvxK/JmXC1A09nAtr6mDlowMP3dlFaJoOx5TypP/b9eFzv5Pl0WG8rQW0/YXCKC2MYu5PglCZtuWg1VFVmFI+wej3EPYfGLA2gIM6dsxJc5OUMO0hyFIc9gRas1iidRvSd4Azi2uKy/Mke8T+vmLlOXNJe5m24BxQ7SHIWCJJN1js8v4SAoZfTOg3GdcH0fpoj8JFe8CMwjRiWgCFbwx6lxXI+yjaYbBirVgZL+jxs0AIv8a9MPSynADHjXiANHhGGt7aE0EifGcudMOzX7i1SR7mhMrPiaQYMTFEsVmdyrAP4zK/Amg==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <6c80a929-8139-4461-b11c-e6ac67c3d2e4@epam.com>
Date: Thu, 28 Aug 2025 13:59:03 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 00/20] Add SMMUv3 Stage 1 Support for XEN guests
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Julien Grall <julien@xen.org>, Julien Grall <julien.grall.oss@gmail.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Rahul Singh <rahul.singh@arm.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Nick Rosbrook
 <enr0n@ubuntu.com>, George Dunlap <gwd@xenproject.org>,
 Juergen Gross <jgross@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>
References: <cover.1754580687.git.milan_djokic@epam.com>
 <CAJ=z9a1eM6M+Gagond9TiFtF7c7EEQKOKHANcvDWDhW_3JzqOA@mail.gmail.com>
 <12ba4388-ee23-4e17-910f-9702271865ad@epam.com>
 <b1f79b84-d0c4-4807-87a7-1cf94e58ecee@xen.org>
 <a5943713-85fa-48ad-86fe-5698604ed8c9@epam.com> <87v7m93bo0.fsf@epam.com>
Content-Language: en-US
From: Milan Djokic <milan_djokic@epam.com>
In-Reply-To: <87v7m93bo0.fsf@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: FR4P281CA0447.DEUP281.PROD.OUTLOOK.COM
 (2603:10a6:d10:c6::13) To PA4PR03MB7136.eurprd03.prod.outlook.com
 (2603:10a6:102:ea::23)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: PA4PR03MB7136:EE_|PA4PR03MB7437:EE_
X-MS-Office365-Filtering-Correlation-Id: 314fbca5-b58a-4d23-df95-08dde62a4a15
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|7416014|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?WkdWeDJUcUkwMTJ0U3l6cU13VFUxcmxzNzJobGNJTnUxcnAzUDRLbE9ydGZt?=
 =?utf-8?B?azdwT2xoOFBOTitCNnpEK2xCNjVHdnRERStoN0txVXlaZWx0MFRjc1EzVktL?=
 =?utf-8?B?Vno4WlFyb0gxbDA0OFQrNGxZOGpqWEROTFdaQUdsbHl4dExsc0FobG82ZDk5?=
 =?utf-8?B?OTlUdktGc3dHSVdMMXhaOXZnVzVGalZKcmpjYmlIMi9MeG84bnBZNzZjSlJm?=
 =?utf-8?B?Q0NDQnNxeUwrQlFUcVhQb1N1VHpUOVpQajBOWGlIVE9pU2VPUTlnZEtYT0tw?=
 =?utf-8?B?MlVTOFRBVER0UnRzZU9nd0oxSGZKQmlqZEJLYjZpVVp4MWVnVFE3VVlQcTJB?=
 =?utf-8?B?c0V0UGd4NzdFdVpVLzJLMk9hWjM3TXNQL2p3SXBhTEFXcjlmcmdScHU0NFRL?=
 =?utf-8?B?Y2hwSktaSjZRbVZQVGpZRE91b0gzUzhpUE5XaXdGbmpKUWRzVzQ4a1lQQysw?=
 =?utf-8?B?RUJOTzVsNHFvdC9YUWZtZlNPa2c1WEtXeE1mRGFMdDNPaHp3ZjJBdEdMMmwy?=
 =?utf-8?B?WjM5V0YrdGg0aURGNzZ5SzVmVzMyUmhFdkk5RjBXVHBBclBNdzUrdkVjWlpY?=
 =?utf-8?B?UXBudENaWk1IWmpOTHd4N0lZb0hjZFIvbkhkeHZVWWhoSkdWSGE4RFNIUXYy?=
 =?utf-8?B?N2xPYnhKdk4wNjRETFlCWmwzM0pGSkVaeWYvN3dQNWJUTVNsZmxHcVVOTmg4?=
 =?utf-8?B?TytpTG9ITlNRNTlmMm5GRjg0M2xkZmh4SG9uZVBjcFhxbml1MXpTeFdydzNZ?=
 =?utf-8?B?YldaV2ZNNG96Tlp4SU92QjdwQzd4K0lRMkovTzBvUGw5dVhzdGJsSmtxd0FB?=
 =?utf-8?B?dEZMeWZHY2JrZmh6VlNZZ0c1dmlNelFtYkpTbUs0RHFLRTZseWFoOHpDZDFj?=
 =?utf-8?B?L2tGMEFMelh4ZWloS01rRTdzRTdzZzVkbjdwcXdheG81MjlvZ00zakpkNkt6?=
 =?utf-8?B?S0RqbklzMm5FKzlrSndITGltYjA5enFwTGV6V3RuN1JZbXVLYlE3VFRuY2xu?=
 =?utf-8?B?cWp4RlIvQXFtdlpudGNQbWd1WWdCYS9TSnVkazZ6RlVYUXprK2xqMUNXNTNI?=
 =?utf-8?B?V0NaeHNnK1hjckQ5NE1sZkV6OWdYSlhZRDVpbFZGZFNZQ0RTeDRGQXdEN3dK?=
 =?utf-8?B?VnZFWGtWOFlsOFFnN0VpbkVlN0NTSlVsS2hKcWZKWGZjNWN2RHlDOFRiZk5h?=
 =?utf-8?B?M0tETjhWUDUxb3lxcnNzQldMR1NRZXh1ajJjcm5QV3k1Z0ZXY2VNcGFzNVdl?=
 =?utf-8?B?TVB4c012ck5IcThPblNtbkJKM3dGZjhDRWZycm9DNXpmc0VjdlNZMDRTSWpT?=
 =?utf-8?B?VHYvWDJieG00RzZDNWdycFNydE5NZFZDN0VPZlplWHJNVUVzbGRtNWxiNFB4?=
 =?utf-8?B?cFFtUkhjbUEyZ1l6ZDhycVF1dFRvNmJXenMyeTk3MlNFSk9kWHZyaUM3Vy9N?=
 =?utf-8?B?b3E5RmwyU05oQnNmeklHZVVLbzhSMjFJVFZGZ243bWdFQzRXSDlpdjJ2S3ZH?=
 =?utf-8?B?Vzd4VTlHUk5uTk1ya1dvcFV2UHRjNlhxSGN0V0s0SGR3UlhxUFZDSVVGMU9X?=
 =?utf-8?B?RDl2emkwSXg0SHpVUy9JYlhoWGpIUDVVelByTFA0NWs1SjN4R1hiR0FIN1ZM?=
 =?utf-8?B?UzlrMm9YNGowbnJjNTIxRzlFK2lrTHpTN1cxWU5kSm9QU1NjNG9xK01GK25D?=
 =?utf-8?B?cCtzZ0ZSd1owL1JFTVhkcU1mczdDUVhyU2huS1hkMlFGbFFZL3p1RytkaVE2?=
 =?utf-8?B?OGFpbGY5dlNkaU8ydUhLQVRIcGp5c1Q1TzBjbm4zT1hnS0k3NjhTc0Jab2Rl?=
 =?utf-8?B?QjlCVlNYSkxMTDcvY1RYZTlia241bGZKU1QreFB6TjNkV0haZ1NmSXl4UExY?=
 =?utf-8?B?VmVyT0hFZFJwUytZS0RDOUxWa1lmOVJmY2tHVGlDNWkyM29remJVVE9mMVpD?=
 =?utf-8?Q?DNhgHH6G++k=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR03MB7136.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TEFrMGRXYjNrVWJpUHpJVWh3S21aMXdBNUNPTmRrQUphbHpYa0prTUtIbTcx?=
 =?utf-8?B?N3k5bFhvUER2em1LUis0OFF4MGd0SUUyTkJLeEdHVDY5cUhhMVBLY05aWklY?=
 =?utf-8?B?OXNEVDYvRGErT200dHAzWVc0SEN0MWVJRmp2WTNsUGpFRVZzSE9WNzAwYzQz?=
 =?utf-8?B?Um1oS0srdHljZG02WDFiUnVDR09TN3cyUnlnWm5aY3NNcFdtYitiVXdUWDNv?=
 =?utf-8?B?WlE1TWs1Vk9wSkkrSzhJQk1WcjJUVVVFUVErNDZ6RHpRMjJrUnVJWEFsZE5L?=
 =?utf-8?B?R1VEQ2NUaHhyY0dVZS9Db1MvbE9tSUZQM2V5MUVLTDYzdS8zM0R6MnQ4MG8x?=
 =?utf-8?B?OUpTMzB1ekdoZXpwZlFMRDY0U1V2UU1YNWN4WHlMWDVtQlVqSHp2VTREeFZE?=
 =?utf-8?B?VEJockd3MkJ5bGVQYkF0SU1JNE1hWkMvTWtaK2JJZVJ0SGpTcDJiRi9ZNnpr?=
 =?utf-8?B?Y3VrRnkxQ3FacmVUT3l5NHp6eEErMlI3SUVGYjZjODF6QmhNa1RaSlBlVllo?=
 =?utf-8?B?UmdaWTJIRFRwSG5GRjh4U1R5S3Y4NnBNU2UvV3RKZjZsMUNpcTNQZitmOVVl?=
 =?utf-8?B?ZmUrZzBySXB1Zi9LMjlBRks0Zm0vOFpyZEhmV1lZeC9ST2xVNWx2QXhCSWww?=
 =?utf-8?B?MSs2VytJdkhFcHJZV09OZEx0OUVQZjFlbnluSTJ6N3V4Tkxra05IY1FWbzg5?=
 =?utf-8?B?ck5OTmNaYmlWSjkvNEVTSndIeG5lSDRhSXEyZmxXK2lkNGExYS9YL2pRa2VR?=
 =?utf-8?B?WmdwRk9LZ1Y4MjFxbWVueG5SVGlCbzBEbWd4UEtkVFFXRUhYRlA0bFBhZmFN?=
 =?utf-8?B?REpWQTh0S1V4WC91WnFiWFVSR0w1bG9DZHhkSngxWHExTEVPM21lR3B1Wkw1?=
 =?utf-8?B?UkFWaGkvVEk5VlNKUGJLQVF1R2sxakU2azN5SkJhd2lyS1EwNlhsRlFnM2xz?=
 =?utf-8?B?RmErdnZSY3EwZ21ldDdVZk1ad0RHbFphTW40NHFoS01ob0J2Q0JodjZTRG93?=
 =?utf-8?B?ZFlZU29qL2FLd2Z0ZlpRQS8vNEJmL1pZZnpPV1VoeUF3d0k0THI5UDVsNjlU?=
 =?utf-8?B?UDBHQldFVEZiRXhMVFk2ZUdIRkZUTStiQnBHU0ZNS2NvS0lIMmRTaFNMREND?=
 =?utf-8?B?QUxrMDkrYkJlMEVrRkUzNEQ3M0RlZFRCdmtvUk9qRktndGhQQkdHY3JQbDlm?=
 =?utf-8?B?QzU2QmV4dWhqNFZuUERaTmg1QmtOL2dCSURMRnVhdCt6czNON3dXdStxZ0tY?=
 =?utf-8?B?UUdvUEM3Z0U5RWxtbEpjVHRNUC8yVHcwTnRFY1A0ckdDNFNJcUNnbDJXMTVQ?=
 =?utf-8?B?Y3QxMldWdWd2ZG51dzVJUXpUQWpabldHM21JWmFqVXE2QUtvRm1SbnUrQUFC?=
 =?utf-8?B?VFd1M2FSdDR0RTNpYmFoT29MYkVqeWM0VVNKeUo1SUNjQ09wdENOdVozZEhz?=
 =?utf-8?B?TXVCOHNkZjVUTDVVK0xSK1MyKzVqMURnNTREYk1ubFVsbGpPK0RNTEpSK0s0?=
 =?utf-8?B?bTQyWFpVSUVTckg0cHlOeWdHM0psSjNEZkxHMDJwT29xZnYyOS8wZTBMeWt0?=
 =?utf-8?B?TVBGNzY0cnRzVzloVDhlNXAvOEN2djB0U053T0RtV0ZxTG9jSG5oLzZxdzZo?=
 =?utf-8?B?NkJkeExGYnpxQjFrN3JONmd2VzZOekE1Wlkxcm9JMFczcUY4ZHFCbXBtZHZG?=
 =?utf-8?B?STdZU3E0d1cvbFlQZHdaT3lsODVkckRqWXR2aEhMZXFNblI2Y0FPOHNJMzVv?=
 =?utf-8?B?U0htcjhSRUsrT05YYkRsdDJqU2xIWGZIbStiNW5aUzJTdjFEbjNibE1SVkps?=
 =?utf-8?B?aThKQ2dlSWtHWHBQTHVzalRLeWhZOVdUZjNpbi9FN0tHL1owVUZCVUVBbU9o?=
 =?utf-8?B?Y2RJZktaU0hMakgwNkJmMmw5T1BhQkY2NGhmS1MvcnJ1SlZFMzFTdytmSFMx?=
 =?utf-8?B?UUxlRSs2cHUwTVRnVWJ5c3pkKy80dENzb05SQTFEMVVoc25WQk5zVjVoZ3Zp?=
 =?utf-8?B?b0tJQ3pZbWkxTHY5djVVcDd0cGhGSTY0bUgxQitqaFN0SzJFVlBQK2VNWWor?=
 =?utf-8?B?UElNdEJEbnZJOE5CcHpTRHdtOXJZbGxZOVF3a2U3MVl6eUR3eG4wZE9NYVZQ?=
 =?utf-8?Q?ssgXHlwOCKLm/iqEnnrakc7HQ?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 314fbca5-b58a-4d23-df95-08dde62a4a15
X-MS-Exchange-CrossTenant-AuthSource: PA4PR03MB7136.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 11:59:06.5509
 (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: OYimghbCUs4B1V7Lf5Bb2itLooS01f1AWMfOVza6zYZ7vykxPnuZF+kFCA2GdUVIcVrdsrdFMZz+J3xRnO8BFg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR03MB7437

Hello Julien, Volodymyr

On 8/27/25 01:28, Volodymyr Babchuk wrote:
> 
> Hi Milan,
> 
> Milan Djokic <milan_djokic@epam.com> writes:
> 
>> Hello Julien,
>>
>> On 8/13/25 14:11, Julien Grall wrote:
>>> On 13/08/2025 11:04, Milan Djokic wrote:
>>>> Hello Julien,
>>> Hi Milan,
>>>
>>>>
>>>> We have prepared a design document and it will be part of the updated
>>>> patch series (added in docs/design). I'll also extend cover letter with
>>>> details on implementation structure to make review easier.
>>> I would suggest to just iterate on the design document for now.
>>>
>>>> Following is the design document content which will be provided in
>>>> updated patch series:
>>>>
>>>> Design Proposal: Add SMMUv3 Stage-1 Support for XEN Guests
>>>> ==========================================================
>>>>
>>>> Author: Milan Djokic <milan_djokic@epam.com>
>>>> Date:Â Â  2025-08-07
>>>> Status: Draft
>>>>
>>>> Introduction
>>>> ------------
>>>>
>>>> The SMMUv3 supports two stages of translation. Each stage of translation
>>>> can be independently enabled. An incoming address is logically
>>>> translated from VA to IPA in stage 1, then the IPA is input to stage 2
>>>> which translates the IPA to the output PA. Stage 1 translation support
>>>> is required to provide isolation between different devices within the OS.
>>>>
>>>> Xen already supports Stage 2 translation but there is no support for
>>>> Stage 1 translation. This design proposal outlines the introduction of
>>>> Stage-1 SMMUv3 support in Xen for ARM guests.
>>>>
>>>> Motivation
>>>> ----------
>>>>
>>>> ARM systems utilizing SMMUv3 require Stage-1 address translation to
>>>> ensure correct and secure DMA behavior inside guests.
>>> Can you clarify what you mean by "correct"? DMA would still work
>>> without
>>> stage-1.
>>
>> Correct in terms of working with guest managed I/O space. I'll
>> rephrase this statement, it seems ambiguous.
>>
>>>>
>>>> This feature enables:
>>>> - Stage-1 translation in guest domain
>>>> - Safe device passthrough under secure memory translation
>>>>
>>>> Design Overview
>>>> ---------------
>>>>
>>>> These changes provide emulated SMMUv3 support:
>>>>
>>>> - SMMUv3 Stage-1 Translation: stage-1 and nested translation support in
>>>>    Â  SMMUv3 driver
>>>> - vIOMMU Abstraction: virtual IOMMU framework for guest Stage-1 handling
>>> So what are you planning to expose to a guest? Is it one vIOMMU per
>>> pIOMMU? Or a single one?
>>
>> Single vIOMMU model is used in this design.
>>
>>> Have you considered the pros/cons for both?
>>>> - Register/Command Emulation: SMMUv3 register emulation and command
>>>>    Â  queue handling
>>>
>>
>> That's a point for consideration.
>> single vIOMMU prevails in terms of less complex implementation and a
>> simple guest iommmu model - single vIOMMU node, one interrupt path,
>> event queue, single set of trap handlers for emulation, etc.
>> Cons for a single vIOMMU model could be less accurate hw
>> representation and a potential bottleneck with one emulated queue and
>> interrupt path.
>> On the other hand, vIOMMU per pIOMMU provides more accurate hw
>> modeling and offers better scalability in case of many IOMMUs in the
>> system, but this comes with more complex emulation logic and device
>> tree, also handling multiple vIOMMUs on guest side.
>> IMO, single vIOMMU model seems like a better option mostly because
>> it's less complex, easier to maintain and debug. Of course, this
>> decision can and should be discussed.
>>
> 
> Well, I am not sure that this is possible, because of StreamID
> allocation. The biggest offender is of course PCI, as each Root PCI
> bridge will require own SMMU instance with own StreamID space. But even
> without PCI you'll need some mechanism to map vStremID to
> <pSMMU, pStreamID>, because there will be overlaps in SID space.
> 
> 
> Actually, PCI/vPCI with vSMMU is its own can of worms...
> 
>>> For each pSMMU, we have a single command queue that will receive command
>>> from all the guests. How do you plan to prevent a guest hogging the
>>> command queue?
>>> In addition to that, AFAIU, the size of the virtual command queue is
>>> fixed by the guest rather than Xen. If a guest is filling up the queue
>>> with commands before notifying Xen, how do you plan to ensure we don't
>>> spend too much time in Xen (which is not preemptible)?
>>>
>>
>> We'll have to do a detailed analysis on these scenarios, they are not
>> covered by the design (as well as some others which is clear after
>> your comments). I'll come back with an updated design.
> 
> I think that can be handled akin to hypercall continuation, which is
> used in similar places, like P2M code
> 
> [...]
> 

I have updated vIOMMU design document with additional security topics 
covered and performance impact results. Also added some additional 
explanations for vIOMMU components following your comments.
Updated document content:

===============================================
Design Proposal: Add SMMUv3 Stage-1 Support for XEN Guests
===============================================

:Author:     Milan Djokic <milan_djokic@epam.com>
:Date:       2025-08-07
:Status:     Draft

Introduction
========

The SMMUv3 supports two stages of translation. Each stage of translation 
can be
independently enabled. An incoming address is logically translated from 
VA to
IPA in stage 1, then the IPA is input to stage 2 which translates the IPA to
the output PA. Stage 1 translation support is required to provide 
isolation between different
devices within OS. XEN already supports Stage 2 translation but there is no
support for Stage 1 translation.
This design proposal outlines the introduction of Stage-1 SMMUv3 support 
in Xen for ARM guests.

Motivation
==========

ARM systems utilizing SMMUv3 require stage-1 address translation to 
ensure secure DMA and guest managed I/O memory mappings.
This feature enables:

- Stage-1 translation in guest domain
- Safe device passthrough under secure memory translation

Design Overview
===============

These changes provide emulated SMMUv3 support:

- **SMMUv3 Stage-1 Translation**: stage-1 and nested translation support 
in SMMUv3 driver.
- **vIOMMU Abstraction**: Virtual IOMMU framework for guest stage-1 
handling.
- **Register/Command Emulation**: SMMUv3 register emulation and command 
queue handling.
- **Device Tree Extensions**: Adds `iommus` and virtual SMMUv3 nodes to 
device trees for dom0 and dom0less scenarios.
- **Runtime Configuration**: Introduces a `viommu` boot parameter for 
dynamic enablement.

vIOMMU is exposed to guest as a single device with predefined 
capabilities and commands supported. Single vIOMMU model abstracts the 
details of an actual IOMMU hardware, simplifying usage from the guest 
point of view. Guest OS handles only a single IOMMU, even if multiple 
IOMMU units are available on the host system.

Security Considerations
=======================

**viommu security benefits:**

- Stage-1 translation ensures guest devices cannot perform unauthorized DMA.
- Emulated IOMMU removes guest dependency on IOMMU hardware while 
maintaining domains isolation.


1. Observation:
---------------
Support for Stage-1 translation in SMMUv3 introduces new data structures 
(`s1_cfg` alongside `s2_cfg`) and logic to write both Stage-1 and 
Stage-2 entries in the Stream Table Entry (STE), including an `abort` 
field to handle partial configuration states.

**Risk:**
Without proper handling, a partially applied Stage-1 configuration might 
leave guest DMA mappings in an inconsistent state, potentially enabling 
unauthorized access or causing cross-domain interference.

**Mitigation:** *(Handled by design)*
This feature introduces logic that writes both `s1_cfg` and `s2_cfg` to 
STE and manages the `abort` field-only considering Stage-1 configuration 
if fully attached. This ensures incomplete or invalid guest 
configurations are safely ignored by the hypervisor.

2. Observation:
---------------
Guests can now invalidate Stage-1 caches; invalidation needs forwarding 
to SMMUv3 hardware to maintain coherence.

**Risk:**
Failing to propagate cache invalidation could allow stale mappings, 
enabling access to old mappings and possibly data leakage or misrouting.

**Mitigation:** *(Handled by design)*
This feature ensures that guest-initiated invalidations are correctly 
forwarded to the hardware, preserving IOMMU coherency.

3. Observation:
---------------
This design introduces substantial new functionality, including the 
`vIOMMU` framework, virtual SMMUv3 devices (`vsmmuv3`), command queues, 
event queues, domain management, and Device Tree modifications (e.g., 
`iommus` nodes and `libxl` integration).

**Risk:**
Large feature expansions increase the attack surfaceâ€”potential for race 
conditions, unchecked command inputs, or Device Tree-based 
misconfigurations.

**Mitigation:**

- Sanity checks and error-handling improvements have been introduced in 
this feature.
- Further audits have to be performed for this feature and its 
dependencies in this area. Currently, feature is marked as *Tech 
Preview* and is self-contained, reducing the risk to unrelated components.

4. Observation:
---------------
The code includes transformations to handle nested translation versus 
standard modes and uses guest-configured command queues (e.g., 
`CMD_CFGI_STE`) and event notifications.

**Risk:**
Malicious or malformed queue commands from guests could bypass 
validation, manipulate SMMUv3 state, or cause Dom0 instability.

**Mitigation:** *(Handled by design)*
Built-in validation of command queue entries and sanitization mechanisms 
ensure only permitted configurations are applied. This is supported via 
additions in `vsmmuv3` and `cmdqueue` handling code.

5. Observation:
---------------
Device Tree modifications enable device assignment and 
configurationâ€”guest DT fragments (e.g., `iommus`) are added via `libxl`.

**Risk:**
Erroneous or malicious Device Tree injection could result in device 
misbinding or guest access to unauthorized hardware.

**Mitigation:**

- `libxl` perform checks of guest configuration and parse only 
predefined dt fragments and nodes, reducing risc.
- The system integrator must ensure correct resource mapping in the 
guest Device Tree (DT) fragments.

6. Observation:
---------------
Introducing optional per-guest enabled features (`viommu` argument in xl 
guest config) means some guests may opt-out.

**Risk:**
Differences between guests with and without `viommu` may cause 
unexpected behavior or privilege drift.

**Mitigation:**
Verify that downgrade paths are safe and well-isolated; ensure missing 
support doesn't cause security issues. Additional audits on emulation 
paths and domains interference need to be performed in a multi-guest 
environment.

7. Observation:
---------------
Guests have the ability to issue Stage-1 IOMMU commands like cache 
invalidation, stream table entries configuration, etc. An adversarial 
guest may issue a high volume of commands in rapid succession.

**Risk**
Excessive commands requests can cause high hypervisor CPU consumption 
and disrupt scheduling, leading to degraded system responsiveness and 
potential denial-of-service scenarios.

**Mitigation**

- Xen credit scheduler limits guest vCPU execution time, securing basic 
guest rate-limiting.
- Batch multiple commands of same type to reduce overhead on the virtual 
SMMUv3 hardware emulation.
- Implement vIOMMU commands execution restart and continuation support

8. Observation:
---------------
Some guest commands issued towards vIOMMU are propagated to pIOMMU 
command queue (e.g. TLB invalidate). For each pIOMMU, only one command 
queue is
available for all domains.

**Risk**
Excessive commands requests from abusive guest can cause flooding of 
physical IOMMU command queue, leading to degraded pIOMMU responsivness 
on commands issued from other guests.

**Mitigation**

- Xen credit scheduler limits guest vCPU execution time, securing basic 
guest rate-limiting.
- Batch commands which should be propagated towards pIOMMU cmd queue and 
enable support for batch execution pause/continuation
- If possible, implement domain penalization by adding a per-domain cost 
counter for vIOMMU/pIOMMU usage.

9. Observation:
---------------
vIOMMU feature includes event queue used for forwarding IOMMU events to 
guest (e.g. translation faults, invalid stream IDs, permission errors). 
A malicious guest can misconfigure its SMMU state or intentionally 
trigger faults with high frequency.

**Risk**
Occurance of IOMMU events with high frequency can cause Xen to flood the 
event queue and disrupt scheduling with high hypervisor CPU load for 
events handling.

**Mitigation**

- Implement fail-safe state by disabling events forwarding when faults 
are occured with high frequency and not processed by guest.
- Batch multiple events of same type to reduce overhead on the virtual 
SMMUv3 hardware emulation.
- Consider disabling event queue for untrusted guests

Performance Impact
==================

With iommu stage-1 and nested translation inclusion, performance 
overhead is introduced comparing to existing, stage-2 only usage in Xen.
Once mappings are established, translations should not introduce 
significant overhead.
Emulated paths may introduce moderate overhead, primarily affecting 
device initialization and event handling.
Performance impact highly depends on target CPU capabilities. Testing is 
performed on cortex-a53 based platform.
Performance is mostly impacted by emulated vIOMMU operations, results 
shown in the following table.

+-------------------------------+---------------------------------+
| vIOMMU Operation              | Execution time in guest         |
+===============================+=================================+
| Reg read                      | median: 30Î¼s, worst-case: 250Î¼s |
+-------------------------------+---------------------------------+
| Reg write                     | median: 35Î¼s, worst-case: 280Î¼s |
+-------------------------------+---------------------------------+
| Invalidate TLB                | median: 90Î¼s, worst-case: 1ms+  |
+-------------------------------+---------------------------------+
| Invalidate STE                | median: 450Î¼s worst_case: 7ms+  |
+-------------------------------+---------------------------------+

With vIOMMU exposed to guest, guest OS has to initialize IOMMU device 
and configure stage-1 mappings for devices attached to it.
Following table shows initialization stages which impact stage-1 enabled 
guest boot time and compares it with stage-1 disabled guest.

"NOTE: Device probe execution time varies significantly depending on 
device complexity. virtio-gpu was selected as a test case due to its 
extensive use of dynamic DMA allocations and IOMMU mappings, making it a 
suitable candidate for benchmarking stage-1 vIOMMU behavior."

+---------------------+-----------------------+------------------------+
| Stage               | Stage-1 Enabled Guest | Stage-1 Disabled Guest |
+=====================+=======================+========================+
| IOMMU Init          | ~25ms                 | /                      |
+---------------------+-----------------------+------------------------+
| Dev Attach / Mapping| ~220ms                | ~200ms                 |
+---------------------+-----------------------+------------------------+

For devices configured with dynamic DMA mappings, DMA allocate/map/unmap 
operations performance is also impacted on stage-1 enabled guests.
Dynamic DMA mapping operation issues emulated IOMMU functions like mmio 
write/read and TLB invalidations.
As a reference, following table shows performance results for runtime 
dma operations for virtio-gpu device.

+---------------+-------------------------+----------------------------+
| DMA Op        | Stage-1 Enabled Guest   | Stage-1 Disabled Guest     |
+===============+=========================+============================+
| dma_alloc     | median: 27Î¼s, worst: 7ms| median: 2.5Î¼s, worst: 360Î¼s|
+---------------+-------------------------+----------------------------+
| dma_free      | median: 1ms, worst: 14ms| median: 2.2Î¼s, worst: 85Î¼s |
+---------------+-------------------------+----------------------------+
| dma_map       | median: 25Î¼s, worst: 7ms| median: 1.5Î¼s, worst: 336Î¼s|
+---------------+-------------------------+----------------------------+
| dma_unmap     | median: 1ms, worst: 13ms| median: 1.3Î¼s, worst: 65Î¼s |
+---------------+-------------------------+----------------------------+

Testing
============

- QEMU-based ARM system tests for Stage-1 translation and nested 
virtualization.
- Actual hardware validation on platforms such as Renesas to ensure 
compatibility with real SMMUv3 implementations.
- Unit/Functional tests validating correct translations (not implemented).

Migration and Compatibility
===========================

This optional feature defaults to disabled (`viommu=""`) for backward 
compatibility.

References
==========

- Original feature implemented by Rahul Singh: 
https://patchwork.kernel.org/project/xen-devel/cover/cover.1669888522.git.rahul.singh@arm.com/ 

- SMMUv3 architecture documentation
- Existing vIOMMU code patterns








From xen-devel-bounces@lists.xenproject.org Thu Aug 28 12:00:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 12:00:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098532.1452553 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urbIi-0004TT-Pr; Thu, 28 Aug 2025 12:00:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098532.1452553; Thu, 28 Aug 2025 12:00:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urbIi-0004TM-Kp; Thu, 28 Aug 2025 12:00:20 +0000
Received: by outflank-mailman (input) for mailman id 1098532;
 Thu, 28 Aug 2025 12:00:19 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1urbIh-0004Se-1K
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 12:00:19 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1urbIf-00AuCj-3B;
 Thu, 28 Aug 2025 12:00:18 +0000
Received: from [15.248.2.24] (helo=[10.24.67.148])
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1urbIf-005kd4-37;
 Thu, 28 Aug 2025 12:00:18 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=nvp+Xi3IhPq4YNQKaeTUffwnqur+Ykho8yU2oIlmhvY=; b=DWPRRkJ864QislcHvQWwcnRwWX
	LYLjka5ajP1rwgINQwU9OoMb24B6zK/WTc431hWDoYBkwDY2n0mQIDERyPI0yc7NX7cgk5BemS4Pu
	HMcLp6Ttk09+TfgdlAjyWqTD5odT2ixZPYkvmH2rIWod4aJ0zfpqyfoDGdKWZrchCO8s=;
Message-ID: <69bdbdac-4876-47de-b8db-ce6f3e1b7a24@xen.org>
Date: Thu, 28 Aug 2025 13:00:15 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 01/12] xen/arm: gicv3: refactor obtaining GIC addresses
 for common operations
Content-Language: en-GB
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: "olekstysh@gmail.com" <olekstysh@gmail.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1756317702.git.leonid_komarianskyi@epam.com>
 <5f511d386c7f20b09106aa0202e0989477eff498.1756317702.git.leonid_komarianskyi@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <5f511d386c7f20b09106aa0202e0989477eff498.1756317702.git.leonid_komarianskyi@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Leonid,

On 27/08/2025 19:24, Leonid Komarianskyi wrote:
> Currently, many common functions perform the same operations to calculate
> GIC register addresses. This patch consolidates the similar code into
> a separate helper function to improve maintainability and reduce duplication.
> This refactoring also simplifies the implementation of eSPI support in future
> changes.
> 
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
> Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
> 
> ---
> Changes in V4:
> - no changes
> 
> Changes in V3:
> - changed panic() in get_addr_by_offset() to printing warning and
>    ASSERT_UNREACHABLE()
> - added verification of return pointer from get_addr_by_offset() in the
>    callers
> - moved invocation of get_addr_by_offset() from spinlock guards, since
>    it is not necessarry
> - added RB from Volodymyr Babchuk

Procces remark, here you said the Reviewed-by from Volodymyr was added 
in v3. However, given the changes you made this should have been 
invalidated (reviewed-by means the person read the code and confirmed it 
is correct).

I see Volodymyr confirmed his reviewed-by on v3. So no issue, but this 
should have been clarified in the changelog.

> 
> Changes in V2:
> - no changes
> ---
>   xen/arch/arm/gic-v3.c          | 114 +++++++++++++++++++++++----------
>   xen/arch/arm/include/asm/irq.h |   1 +
>   2 files changed, 81 insertions(+), 34 deletions(-)
> 
> diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
> index cd3e1acf79..a959fefebe 100644
> --- a/xen/arch/arm/gic-v3.c
> +++ b/xen/arch/arm/gic-v3.c
> @@ -445,17 +445,67 @@ static void gicv3_dump_state(const struct vcpu *v)
>       }
>   }
>   
> +static void __iomem *get_addr_by_offset(struct irq_desc *irqd, u32 offset)
> +{
> +    switch ( irqd->irq )
> +    {
> +    case 0 ... (NR_GIC_LOCAL_IRQS - 1):
> +        switch ( offset )
> +        {
> +        case GICD_ISENABLER:
> +        case GICD_ICENABLER:
> +        case GICD_ISPENDR:
> +        case GICD_ICPENDR:
> +        case GICD_ISACTIVER:
> +        case GICD_ICACTIVER:
> +            return (GICD_RDIST_SGI_BASE + offset);
> +        case GICD_ICFGR:
> +            return (GICD_RDIST_SGI_BASE + GICR_ICFGR1);
> +        case GICD_IPRIORITYR:
> +            return (GICD_RDIST_SGI_BASE + GICR_IPRIORITYR0 + irqd->irq);
> +        default:
> +            break;
> +        }
> +    case NR_GIC_LOCAL_IRQS ... SPI_MAX_INTID:
> +        switch ( offset )
> +        {
> +        case GICD_ISENABLER:
> +        case GICD_ICENABLER:
> +        case GICD_ISPENDR:
> +        case GICD_ICPENDR:
> +        case GICD_ISACTIVER:
> +        case GICD_ICACTIVER:
> +            return (GICD + offset + (irqd->irq / 32) * 4);
> +        case GICD_ICFGR:
> +            return (GICD + GICD_ICFGR + (irqd->irq / 16) * 4);
> +        case GICD_IROUTER:
> +            return (GICD + GICD_IROUTER + irqd->irq * 8);
> +        case GICD_IPRIORITYR:
> +            return (GICD + GICD_IPRIORITYR + irqd->irq);
> +        default:
> +            break;
> +        }
> +    default:
> +        break;
> +    }
> +
> +    /* Something went wrong, we shouldn't be able to reach here */
> +    printk(XENLOG_WARNING "GICv3: WARNING: Invalid offset 0x%x for IRQ#%d",

NIT: I am not expecting the interrupt to be < 0. So it would be 
preferable to use %u.

Acked-by: Julien Grall <jgrall@amazon.com>

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 12:00:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 12:00:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098539.1452562 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urbJG-0004xq-W8; Thu, 28 Aug 2025 12:00:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098539.1452562; Thu, 28 Aug 2025 12:00: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 1urbJG-0004xj-So; Thu, 28 Aug 2025 12:00:54 +0000
Received: by outflank-mailman (input) for mailman id 1098539;
 Thu, 28 Aug 2025 12:00:52 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=SuvV=3I=bounce.vates.tech=bounce-md_30504962.68b044f1.v1-df3a85872148444bb6c948ffe100776a@srs-se1.protection.inumbo.net>)
 id 1urbJE-0004wm-Rc
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 12:00:52 +0000
Received: from mail137-3.atl71.mandrillapp.com
 (mail137-3.atl71.mandrillapp.com [198.2.137.3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a3edcf64-8406-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 14:00:51 +0200 (CEST)
Received: from pmta07.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail137-3.atl71.mandrillapp.com (Mailchimp) with ESMTP id 4cCKjY2wcDzBsV4FP
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 12:00:49 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 df3a85872148444bb6c948ffe100776a; Thu, 28 Aug 2025 12:00:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a3edcf64-8406-11f0-ae26-e363de0e7a9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1756382449; x=1756652449;
	bh=6pPB/ZeNPl1z+pjHy/cFU8hENtGb2xGrwEILtNQ4pDY=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=RsJQxCnKrYOJcWpHoTZgNA9csEdowu7d7ZQlD/1YeYO1Udy0AiDd4X86PHTh9O3c2
	 15iczAVs6seRPgsX630AKHW43zpEGiOwpLyof7HzAyWatbNhB+FkHzcqtkoJPtvSBx
	 5OwtuLHwSSPTWBUcmsleU1ThQfrxkBMgcGt8sx+DJqQY0ANR4+q+zUzgzFLca255Xs
	 Piuq8eE1UegupM4f52zeYe3gPGUYc7c2N+xmyTjalFcyyzcXPjit8KN/7QK6jBAziw
	 +qGT8fqNiApRijVkylrdtuaqT2wwyu5YCVfc2UOukuFULV05ykDcf7JtNPt53G7Jn0
	 tkNMLragAq+xA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1756382449; x=1756642949; i=teddy.astie@vates.tech;
	bh=6pPB/ZeNPl1z+pjHy/cFU8hENtGb2xGrwEILtNQ4pDY=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=yOwlcl7Sd9xMNWlwGjXJ79pIsAvCEOv+rDrSEhRsR/US+YQMKfYLStj76TWaAumVG
	 YlbcZowNsBD9zBen7Bw6TAKW/n4oHc5k3uV2XkG2wtcPnOqbbGnZMrqg05GT9oPALX
	 3l4UwIpRAZU1o3TZylwlGNVpvVpj2nRMdIrFVlWSW5EItNqHP/lmFsyLlstzOwwQhB
	 AU84+zNAKbnypGvtdPLCYOAMXFLBHso+68D1kixljv0z7Yd9SPxyRyLhZKk5D6qA8c
	 eD6Tn5YZQsqAW1CAufLew5ezz9ar+ab/3EY3zP7vC4MbqX964yNEhNpTlYvRlZF70l
	 fwTsDj2aLIR7w==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH]=20hvmloader:=20Update=20to=20SMBIOS=202.6?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1756382448088
Message-Id: <6e90b1af-57d6-4c3c-8e23-078309bef63c@vates.tech>
To: "Andrew Cooper" <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
Cc: "Jan Beulich" <jbeulich@suse.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>
References: <b569a298a6270ae04eaf433f7de9ce1f3e248e5f.1755870287.git.teddy.astie@vates.tech> <6e9b7b96-a506-40ed-95b6-6ad00ba9a27a@citrix.com> <74665857-3f0b-43e6-b31f-d498d9e7fdc3@vates.tech> <8e126855-ed0b-4046-a018-8fca6d20db49@citrix.com>
In-Reply-To: <8e126855-ed0b-4046-a018-8fca6d20db49@citrix.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.df3a85872148444bb6c948ffe100776a?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250828:md
Date: Thu, 28 Aug 2025 12:00:49 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 28/08/2025 =C3=A0 12:24, Andrew Cooper a =C3=A9crit=C2=A0:
> I'd be tempted to be rather more explicit.
> 
> diff --git a/xen/include/public/xen.h b/xen/include/public/xen.h
> index 82b9c05a76b7..f1592dc059e2 100644
> --- a/xen/include/public/xen.h
> +++ b/xen/include/public/xen.h
> @@ -973,6 +973,13 @@ typedef struct dom0_vga_console_info {
>  =C2=A0#define xen_vga_console_info dom0_vga_console_info
>  =C2=A0#define xen_vga_console_info_t dom0_vga_console_info_t
>   
> +/*
> + * The domain handle is chosen by the toolstack, and intended to hold a =
UUID
> + * conforming to RFC 9562 (i.e. big endian).
> + *
> + * Certain cases (e.g. SMBios) transform it to a Microsoft GUID (little
> + * endian) for presentation to the guest.
> + */
>  =C2=A0typedef uint8_t xen_domain_handle_t[16];
>   
>  =C2=A0__DEFINE_XEN_GUEST_HANDLE(uint8,=C2=A0 uint8_t);

I'm ok with it, although it sounds a bit like this UUID could be a 
little endian GUID in some cases.


Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Thu Aug 28 12:04:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 12:04:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098559.1452571 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urbMg-00060g-CS; Thu, 28 Aug 2025 12:04:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098559.1452571; Thu, 28 Aug 2025 12:04: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 1urbMg-00060Z-9l; Thu, 28 Aug 2025 12:04:26 +0000
Received: by outflank-mailman (input) for mailman id 1098559;
 Thu, 28 Aug 2025 12:04:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=pYI3=3I=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urbMf-000601-Du
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 12:04:25 +0000
Received: from mail-ej1-x62e.google.com (mail-ej1-x62e.google.com
 [2a00:1450:4864:20::62e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 222d5b05-8407-11f0-ae26-e363de0e7a9e;
 Thu, 28 Aug 2025 14:04:22 +0200 (CEST)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-afeceee8bb1so118881666b.3
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 05:04: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
 a640c23a62f3a-afea7ad4f27sm602354366b.11.2025.08.28.05.04.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 05:04: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>
X-Inumbo-ID: 222d5b05-8407-11f0-ae26-e363de0e7a9e
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756382662; x=1756987462; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ieW4Xwt/28K3xF2jXxv0qf9BsQsT1sKflS39wdwBuP0=;
        b=doWg0tsDcE4Zmjaq2JMAGslbeJgeXnpg+tX3qnbalj2OMmG/pGTOwyl4n/JipvyWAA
         KM1qeODvSwNncoyZBbP67QVrgUlcbCmF5OWdx/jCLejlPJR9yX6wTdb5USC1GQhOQATV
         7CqH9KJIt7rGjkQVl3stwWk0gwG2m7uuTym7CC+WL5OPgHVErNhH7aE40Y6LLJsc3kgX
         Q74GrnaT27NgTwLDYw7KBw/IvcWOOooVwEa9s/ZfIJSrYHQEAqZiVDU2NE5AIjVKocp/
         lZcsE3cA2Dbtls2g8jhk4dbC8HqNCDG+3HL/9WTDTve6S1FXHQpemeXvBuHw+2i4X72S
         d8OQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756382662; x=1756987462;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ieW4Xwt/28K3xF2jXxv0qf9BsQsT1sKflS39wdwBuP0=;
        b=HCu2uNDIKuts2C1lSnIMC699qVOUwmOw5uZyQCDWP3MVZYC7hpiIe7qWno7ihgGyNg
         SRk20MLpHBZedl5sr6AgO4baBEzDlaRrQi66htoGILhPg4TP4LYooV3j73wCKNfPsEce
         P4aDyIGMchHVp6H5FTcQDI/60TFlWVmSDpnmuRbu82Q4JFrENyKx2AgPY7+CMYTyRBF7
         m+8lyCDkpRXnBjyu1q94xDYHMbcjddBYxj77eycGNyJgYa5YqZqnbsYOk84pq5PYjs1l
         jsLU86Gu3UyA+PiA8ikfGDKEPuvgb4oXtcWS4Jpv8XQl7X4+NbcA2m6JIk5EPAt9mY98
         +y5g==
X-Forwarded-Encrypted: i=1; AJvYcCUOK2h/z9r++TyXwyDQRB3dzHLaHnRc1zBqKEWu8uVYMnB/CdvMPrVhdmVEDsQ+YklBMT2spG1Ho/I=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyT3jNsue+BvhjcQjEKKX2RLbXeS7d6PQeA4loo+LStHYqxZDr0
	qWB0M9R/CVNwABnyQGzZzra/1WRPBucRUCIzLsp6qnAGeYcA2P9XSL1uQz0B7WoqZA==
X-Gm-Gg: ASbGncueXQMQmNwc1p8jIzP4dtpVvaMoqUaGSM7pvHbP4+cErMmuUBQqd3YsgW7xKpj
	aGrL5VHyK8T9oVqPx5Mex6X6x02+lwIts08MMZVfj+oK4on9jYd3WidnxaIVFTWQ3KnOvXX6CZ/
	pl/BlSzbpbQkylv59zJo3vgJ24F+wH+LbXYqCja4m4ZQuXS0olK4G8VLsGTsp9Hp/MKxOMvlgoi
	Pb/KvaNLzT0G1I1AvFwrsOK6Eni2ohBpHz/Nq2hRyDICn6P2h0+uUd08jg1F0bC1nrXFTfsggbc
	DDwnl/13NjwwXofybZ7r2zx+4z51I/xwEXtM4+CFLWCtERqX9NHT3OiseGzngiL+HV3oIarsVE3
	bZWLlEsFNLR9FsjGtSGpPST7QTNXJ5AdZhtvbz+e5km0jlpbxjbFBWvBqIHKEs3Su4z5LkEWSCm
	7ehG9mi2ZWabEiUGKGyg==
X-Google-Smtp-Source: AGHT+IFon2Alfa6rdJsd3d2O8b8ToEhpMe1EPU78alTWDCytGpdMrEuLzsqUAAFDy9A/NILaWeedGw==
X-Received: by 2002:a17:907:60ca:b0:af9:35f0:7a0f with SMTP id a640c23a62f3a-afe28ffb668mr2077432666b.28.1756382661430;
        Thu, 28 Aug 2025 05:04:21 -0700 (PDT)
Message-ID: <3a3675a3-68fc-4917-ad7a-9b31e7e56937@suse.com>
Date: Thu, 28 Aug 2025 14:04:19 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v1 05/10] pmu.h: introduce a stacktrace area
To: =?UTF-8?B?RWR3aW4gVMO2csO2aw==?= <edwin.torok@cloud.com>
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>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, andriy.sultanov@vates.tech,
 boris.ostrovsky@oracle.com, xen-devel@lists.xenproject.org
References: <cover.1753372928.git.edwin.torok@cloud.com>
 <49cbbacdc5f4fec624ae164a01eaa574aa771854.1753372928.git.edwin.torok@cloud.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: <49cbbacdc5f4fec624ae164a01eaa574aa771854.1753372928.git.edwin.torok@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 25.07.2025 17:06, Edwin TÃ¶rÃ¶k wrote:
> The guest always allocates a full page that is mapped for 'struct
> xen_pmu_data' (there is no smaller mapping granularity).
> 
> The existing struct contains a flexible array member that is used to
> store architectural performance counters on Intel (their number is
> dynamically determined from CPUID).
> 
> AFAICT their number is currently limited to 32 due to the bitmap in the
> CPUID only having 32 bits defined for this, although the cpuid has 8
> bits reserved to specify the number of these counters, so this may grow.
> 
> For backwards compatibility and to leave as much room for future growth
> in these counters as possible: the newly introduced hypervisor
> stacktrace area will be stored at the end of the page.
> 
> Conceptually this would've been:
> ```
> struct xen_pmu_data_v2 {
>     union {
>         struct xen_pmu_data v1;
>         uint8_t pad[PAGE_SIZE - sizeof(struct xen_pmu_hv_stacktrace)];
>     };
>     struct xen_pmu_hv_stacktrace pmu_stack;
> };
> ```
> 
> But that is not valid C due to the flexible array member in v1.

And I fear it's not a good interface anyway. What's wrong with the caller
dedicating another page to holding the stack trace related data?

> There is code duplication in 'struct xen_pmu_arch_guest',
> but xlat.h checker fails if I try to reuse that in the definition of
> xen_pmu_arch_t.

What exactly is this referring to?

> --- a/xen/include/public/arch-x86/pmu.h
> +++ b/xen/include/public/arch-x86/pmu.h
> @@ -74,6 +74,23 @@ DEFINE_XEN_GUEST_HANDLE(xen_pmu_regs_t);
>  #define PMU_SAMPLE_REAL    (1<<2) /* Sample is from realmode */
>  #define PMU_SAMPLE_PV      (1<<3) /* Sample from a PV guest */
>  
> +/*
> + * Architecture-specific information describing the state of the guest at
> + * the time of a PMU interrupt.
> + */
> +struct xen_pmu_arch_guest {
> +    union {
> +        /*
> +         * Processor's registers at the time of interrupt.
> +         * WO for hypervisor, RO for guests.
> +         */
> +        xen_pmu_regs_t regs;

How's this related to stack traces?

> @@ -129,67 +146,86 @@ struct xen_pmu_arch {
>  typedef struct xen_pmu_arch xen_pmu_arch_t;
>  DEFINE_XEN_GUEST_HANDLE(xen_pmu_arch_t);
>  
> +

Stray double blank lines.

>  /* Memory layout:
> -*                â•­â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â•®
> -*                â”‚ struct xen_pmu_data â”‚
> -* â•’â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•§â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•§â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•• â—â•®
> -* â”‚ vcpu_id                                                    â”‚  â”‚
> -* â”œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”¤  â”‚
> -* â”‚ pcpu_id                                                    â”‚  â”‚
> -* â”œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”¤  â”‚
> -* â”‚ domain_id                                                  â”‚  â”‚
> -* â”œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”¤  â”‚
> -* â”‚â–ˆâ–ˆpadâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> -* â•žâ•â•â•â•â•¤â•â•¤â•â•â•â•¤â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•¤â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•¡  â”‚
> -* â”‚ pmuâ”‚ â”‚ r â”‚ regs             â”‚â–ˆâ–ˆpadâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> -* â”œâ”€â”€â”€â”€â•¯ â”œâ”€â”€â”€â•¯ (xen or guest)   â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> -* â”‚      â•žâ•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•§â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•¡  â”‚
> -* â”‚      â”‚ pmu_flags                                           â”‚  â”‚
> -* â”‚      â•žâ•â•â•â•¤â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•¤â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•¡  â”‚
> -* â”‚      â”‚ l â”‚ lapic_lvtpc        â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> -* â”‚      â”œâ”€â”€â”€â•¯ â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚â–ˆâ–ˆpadâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> -* â”‚      â”‚     â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> -* â”‚      â•žâ•â•â•â•¤â•â•¤â•â•â•â•â•â•â•â•¤â•â•â•â•â•â•¤â•â•â•â•â•ªâ•â•â•â•â•¤â•â•â•â•â•â•â•â•¤â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•¡  â”‚
> -* â”‚      â”‚ c â”‚ â”‚       â”‚ amd â”‚    â”‚    â”‚ intel â”‚         â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> -* â”‚      â”œâ”€â”€â”€â”˜ â”‚       â•°â”€â”€â”€â”€â”€â•¯    â”‚    â•°â”€â”€â”€â”€â”€â”€â”€â•¯         â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> -* â”‚      â”‚     â”‚ counter          â”‚ fixed_counters       â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> -* â”‚      â”‚     â”œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”¼â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”¤â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> -* â”‚      â”‚     â”‚ ctrls            â”‚ arch_counters        â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> -* â”‚      â”‚     â•žâ•â•â•â•â•â•¤â•â•â•â•â•â•â•â•â•¤â•â•â•â”œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”¤â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> -* â”‚      â”‚     â”‚     â”‚ regs[] â”‚  â”†â”‚ global_ctrl          â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> -* â”‚      â”‚     â”‚     â””â”€â”€â”€â”€â”€â”€â”€â”€â•¯  â”†â”œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”¤â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> -* â”‚      â”‚     â”‚struct           â”†â”‚ global_ovf_ctrl      â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> -* â”‚      â”‚     â”‚xen_pmu_cntr_pairâ”†â”œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”¤â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> -* â”‚      â”‚     â”‚[counters]       â”†â”‚ global_status        â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> -* â”‚      â”‚     â”‚                 â”†â”œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”¤â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> -* â”‚      â”‚     â”‚                 â”†â”‚ fixed_ctrl           â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> -* â”‚      â”‚     â”‚                 â”†â”œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”¤â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> -* â”‚      â”‚     â”‚                 â”†â”‚ ds_area              â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> -* â”‚      â”‚     â”‚                 â”†â”œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”¤â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> -* â”‚      â”‚     â”‚                 â”†â”‚ pebs_enable          â”‚â–ˆpadâ–ˆâ”‚  â”‚
> -* â”‚      â”‚     â”‚                 â”†â”œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”¤â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> -* â”‚      â”‚     â”‚                 â–½â”‚ debugctl             â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> -* â”‚      â”‚     â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ•žâ•â•â•â•â•â•â•â•¤â•â•â•â•â•â•â•â•â•¤â•â•â•â•â•â•¡â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> -* â”‚      â”‚     â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚       â”‚ regs[] â”‚ â”†[0]â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> -* â”‚      â”‚     â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚       â””â”€â”€â”€â”€â”€â”€â”€â”€â•¯ â”†   â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> -* â”‚      â”‚     â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚ uint64_t         â”†   â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> -* â”‚      â”‚     â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚ [fixed_counters] â”†   â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> -* â”‚      â”‚     â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚                  â”†   â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> -* â”‚      â”‚     â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚                  â”†   â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> -* â”‚      â”‚     â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚ â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”†   â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> -* â”‚      â”‚     â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  struct          â”†   â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> -* â”‚      â”‚     â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚ xen_pmu_cntr_pairâ”†   â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> -* â”‚      â”‚     â•˜â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•¡ [arch_counters]  â”†   â•žâ•â•â•â•â•â•¡  â”‚
> -* â”‚      â”‚                        â”‚                  â”†   â”‚     â”‚  â”‚
> -* â”‚      â”‚                        â”‚                  â–½   â”‚     â”‚  â”‚
> -* â”‚      â”‚                        â•˜â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•›     â”‚  â”‚
> -* â”‚      â•˜â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•¡  â”‚
> -* â•žâ•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•¡  â”‚
> -* â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> -* â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†  â”†
> -* â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†  â”†
> -* â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚ PAGE_SIZE
> -* â•˜â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•› â—â•¯
> + *                â•­â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â•®
> + *                â”‚ struct xen_pmu_data â”‚
> + * â•’â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•§â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•§â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•• â—â•®
> + * â”‚ vcpu_id                                                    â”‚  â”‚
> + * â”œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”¤  â”‚
> + * â”‚ pcpu_id                                                    â”‚  â”‚
> + * â”œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”¤  â”‚
> + * â”‚ domain_id                                                  â”‚  â”‚
> + * â”œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”¤  â”‚
> + * â”‚â–ˆâ–ˆpadâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> + * â•žâ•â•â•â•â•¤â•â•¤â•â•â•â•¤â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•¤â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•¡  â”‚
> + * â”‚ pmuâ”‚ â”‚ r â”‚ regs             â”‚â–ˆâ–ˆpadâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> + * â”œâ”€â”€â”€â”€â•¯ â”œâ”€â”€â”€â•¯ (xen or guest)   â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> + * â”‚      â•žâ•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•§â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•¡  â”‚
> + * â”‚      â”‚ pmu_flags                                           â”‚  â”‚
> + * â”‚      â•žâ•â•â•â•¤â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•¤â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•¡  â”‚
> + * â”‚      â”‚ l â”‚ lapic_lvtpc        â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> + * â”‚      â”œâ”€â”€â”€â•¯ â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚â–ˆâ–ˆpadâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> + * â”‚      â”‚     â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> + * â”‚      â•žâ•â•â•â•¤â•â•¤â•â•â•â•â•â•â•â•¤â•â•â•â•â•â•¤â•â•â•â•â•ªâ•â•â•â•â•¤â•â•â•â•â•â•â•â•¤â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•¡  â”‚
> + * â”‚      â”‚ c â”‚ â”‚       â”‚ amd â”‚    â”‚    â”‚ intel â”‚         â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> + * â”‚      â”œâ”€â”€â”€â”˜ â”‚       â•°â”€â”€â”€â”€â”€â•¯    â”‚    â•°â”€â”€â”€â”€â”€â”€â”€â•¯         â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> + * â”‚      â”‚     â”‚ counter          â”‚ fixed_counters       â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> + * â”‚      â”‚     â”œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”¼â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”¤â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> + * â”‚      â”‚     â”‚ ctrls            â”‚ arch_counters        â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> + * â”‚      â”‚     â•žâ•â•â•â•â•â•¤â•â•â•â•â•â•â•â•â•¤â•â•â•â”œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”¤â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> + * â”‚      â”‚     â”‚     â”‚ regs[] â”‚  â”†â”‚ global_ctrl          â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> + * â”‚      â”‚     â”‚     â””â”€â”€â”€â”€â”€â”€â”€â”€â•¯  â”†â”œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”¤â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> + * â”‚      â”‚     â”‚struct           â”†â”‚ global_ovf_ctrl      â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> + * â”‚      â”‚     â”‚xen_pmu_cntr_pairâ”†â”œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”¤â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> + * â”‚      â”‚     â”‚[counters]       â”†â”‚ global_status        â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> + * â”‚      â”‚     â”‚                 â”†â”œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”¤â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> + * â”‚      â”‚     â”‚                 â”†â”‚ fixed_ctrl           â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> + * â”‚      â”‚     â”‚                 â”†â”œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”¤â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> + * â”‚      â”‚     â”‚                 â”†â”‚ ds_area              â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> + * â”‚      â”‚     â”‚                 â”†â”œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”¤â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> + * â”‚      â”‚     â”‚                 â”†â”‚ pebs_enable          â”‚â–ˆpadâ–ˆâ”‚  â”‚
> + * â”‚      â”‚     â”‚                 â”†â”œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”¤â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> + * â”‚      â”‚     â”‚                 â–½â”‚ debugctl             â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> + * â”‚      â”‚     â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ•žâ•â•â•â•â•â•â•â•¤â•â•â•â•â•â•â•â•â•¤â•â•â•â•â•â•¡â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> + * â”‚      â”‚     â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚       â”‚ regs[] â”‚ â”†[0]â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> + * â”‚      â”‚     â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚       â””â”€â”€â”€â”€â”€â”€â”€â”€â•¯ â”†   â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> + * â”‚      â”‚     â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚ uint64_t         â”†   â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> + * â”‚      â”‚     â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚ [fixed_counters] â”†   â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> + * â”‚      â”‚     â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚                  â”†   â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> + * â”‚      â”‚     â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚                  â”†   â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> + * â”‚      â”‚     â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚ â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”†   â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> + * â”‚      â”‚     â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  struct          â”†   â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> + * â”‚      â”‚     â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚ xen_pmu_cntr_pairâ”†   â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> + * â”‚      â”‚     â•˜â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•¡ [arch_counters]  â”†   â•žâ•â•â•â•â•â•¡  â”‚
> + * â”‚      â”‚                        â”‚                  â”†   â”‚     â”‚  â”‚
> + * â”‚      â”‚                        â”‚                  â–½   â”‚     â”‚  â”‚
> + * â”‚      â”‚                        â•˜â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•›     â”‚  â”‚
> + * â”‚      â•˜â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•¡  â”‚
> + * â•žâ•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•¡  â”‚
> + * â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> + * â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†  â”†
> + * â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†â”†  â”†
> + * â”‚â–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ–ˆâ”‚  â”‚
> + * |############################################################|  |
> + * |##########.------------------------------.##################|  |
> + * |##########| struct xen_pmu_hv_stacktrace |##################|  |
> + * +==========+==============================+==================+  |
> + * |                              ^ [stacktrace_nr-1]           |  |
> + * |                              :                             |  |
> + * | stacktrace[stacktrace_nr]    : [0]                         |  |
> + * +------------------------------------------------------------+  |
> + * | stacktrace_nr                                              |  |
> + * +------------------------------------------------------------+  |
> + * | guest_domain_id                                            |  |
> + * +------------------------------------------------------------+  |
> + * |##pad#######################################################|  |
> + * +=======+=+===+==================+===========================+  |
> + * | guest | | r | regs             |##pad######################|  |
> + * +-------. +---. (xen or guest)   |###########################|  |
> + * |         +======================+===========================+  |
> + * |         |##pad2############################################|  | PAGE_SIZE
> + * +=========+==================================================+ <.
>  */
>  
>  #endif /* __XEN_PUBLIC_ARCH_X86_PMU_H__ */
> @@ -202,4 +238,3 @@ DEFINE_XEN_GUEST_HANDLE(xen_pmu_arch_t);
>   * indent-tabs-mode: nil
>   * End:
>   */
> -

Stray change?

> @@ -120,6 +120,40 @@ struct xen_pmu_data {
>      xen_pmu_arch_t pmu;
>  };
>  
> +/* stacktrace entry populated from the end,
> + * so stacktrace_nr == 1, means that stacktrace[PMU_MAX_STACKTRCE-1] is valid.
> + * This is done, so that PMU_MAX_STACKTRACE can be changed in the future, without breaking the ABI.
> + * The struct itself (and thus the stacktrace_nr field) will always be placed at the end of a page.
> + *
> + * See arch-x86/pmu.h for an example memory layout on x86.
> + *
> + * */
> +#define PMU_MAX_STACKTRACE 127
> +
> +/* WO for hypervisor, RO for guest */
> +struct xen_pmu_hv_stacktrace {
> +    uint64_t stacktrace[PMU_MAX_STACKTRACE];
> +    uint64_t stacktrace_nr;
> +
> +    /* Like xen_pmu_data.domain_id, but instead of DOMID_XEN always contains the
> +     * domain that was interrupted (DOMID_SELF if it matches the sampling
> +     * domain).
> +     */
> +    domid_t guest_domain_id;

How's this related to stack traces? And how would it help associating back
what vCPU the data belongs to?

> +    uint8_t pad[6];
> +
> +    /* When xen_pmu_data.domain_id == DOMID_XEN, this will contain
> +    * the registers of the guest that was interrupted.
> +    * This is useful for Dom0 kernel stacktraces, even if the interrupt
> +    * arrives while in Xen.
> +    * */

Nit: Indentation.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 12:05:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 12:05:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098573.1452582 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urbNa-0006ZS-Qb; Thu, 28 Aug 2025 12:05:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098573.1452582; Thu, 28 Aug 2025 12:05: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 1urbNa-0006ZL-Nm; Thu, 28 Aug 2025 12:05:22 +0000
Received: by outflank-mailman (input) for mailman id 1098573;
 Thu, 28 Aug 2025 12:05:21 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FxJR=3I=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1urbNZ-0006Gw-FQ
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 12:05:21 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4500bb8a-8407-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 14:05:20 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by AS2PR03MB9221.eurprd03.prod.outlook.com (2603:10a6:20b:5fd::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.16; Thu, 28 Aug
 2025 12:05:17 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9073.016; Thu, 28 Aug 2025
 12:05:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4500bb8a-8407-11f0-aeb2-fb57b961d000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YC6dNnT3Nc4hThgioGD8uoEagwFrvHHC9VcOOmZCQgHOG8GdjpueEK8QVsmPiIjNi7cZEcwI+kI3GO/pqOZ2+O02/B7BlXFLznItnPQ9lMZoM2en5PaG3b6j8II55NkCKEoo9Vcr4HAELqo6D+Jt26B/PrxKMikSjs1sW6j7pPiHHU/gP5blTzC41W8I7/2yv/LCXNujC+pPnHZtKrAmsilBJcu7TnjpRQjIo3TAgzXzKJz7w5zPkXMRZs8HVcnk0rpJdpcDzv0LY7IA1QQG2hG8PBPlHiLfB/9b+EmpXwyN/K9gHL0WtDgvgEf9LyiFRSIReIklw9ZZMnHAI7gyUw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fAfh/hIesi+y4fr/7jM3iQqJ05X/iVMVOe+kLHUzlG0=;
 b=Osy/Su/YN84GVbz2x0xklP3p4GzSkKVCDmj/krnNDYlxMCNHSEC0o2q+BECwceveyum1cWrQrSI3jPFmFFWoexN1pW3BmWfTWmL7k0vCBwgJ9NPzV3GgK2cb4YkgRaLNObT7egBiJM0urWw/ZV20Yvxue2u2K787ef/jqJs3TVq5dtjhhgZPtpAHaHQaYv2zNk+veQRf2i03w0OC5swt4951cFG7B57RFoDj1fRhm9oxCtq6RC3gojC54t+f6xzUxSjxbtZm/c8zDzpqU2eMf4fTXczyr1Wrbj/OdefZCtPV/dpfSs2eqty0PmsmnlLNHM7InbQAAb++l4GuzWLMxQ==
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=fAfh/hIesi+y4fr/7jM3iQqJ05X/iVMVOe+kLHUzlG0=;
 b=nk92V5kTobtm11x8QRtdsAlT4adBn0cGq/Cz3L7GQA1xtQyMoRd4heDLm8+POQRBsTBcv2HF3NNWGOgqZl+yTLu4/LznpqnWVhSBFak+ppddaWXIu4+pbRkr7pwzBEBXJwNCXOTMK5U389vC2JpZ2Q93p6yHtadT6RYM9gAaQJ5sBNcnZUlBrLpHIJOlo2xLiF25rEUvnn+7DPdveR8vfU/1gAE3GP3HSuiDnWijTUy+ASPocO8YqrEYIHStOpSQekr+W3hhHkWpssZ53c6z5CoR8/5DTh4cbNfZDaURibKB3fsgIQ8vspczsYRlJaFiFb5mQ2o7t/tPtO0HnchxoA==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"olekstysh@gmail.com" <olekstysh@gmail.com>, Anthony PERARD
	<anthony.perard@vates.tech>
Subject: Re: [PATCH v4 11/12] doc/man: update description for nr_spis with
 eSPI
Thread-Topic: [PATCH v4 11/12] doc/man: update description for nr_spis with
 eSPI
Thread-Index: AQHcF3/Q0bamE1jhy06ZtBrEohbyn7R3+QgA
Date: Thu, 28 Aug 2025 12:05:16 +0000
Message-ID: <92c16f59-80d3-457e-896c-199a8f9cc6a7@epam.com>
References: <cover.1756317702.git.leonid_komarianskyi@epam.com>
 <50cd1899b328e82bd517ae0dd0e400e9cfee0999.1756317702.git.leonid_komarianskyi@epam.com>
 <87y0r4z717.fsf@epam.com>
In-Reply-To: <87y0r4z717.fsf@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: GV2PR03MB8678:EE_|AS2PR03MB9221:EE_
x-ms-office365-filtering-correlation-id: e8dc87bc-3334-4f88-cc8b-08dde62b26f4
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?cm9qYVN6S1lDT2plNGozc3Z4WjJ1NFMyRmFHdHlUcDRISjBGQWIxUW1UYllL?=
 =?utf-8?B?cFpuaTJhYmRETTFPczlsdW50QTk1R0hDejlGTlRSdHFReFd3Ui96VTF0aUtW?=
 =?utf-8?B?T3BHVE5iWXZ0MUs0WWsvQnhNUDZpeFl2a2FiM1Y1SG0rZ3BKWHdEWG5UNG5i?=
 =?utf-8?B?RnlKUFJPdG5LaGErNm9Dc0MxYlUzSXNMS0RpaWYwTXVDckNTU2Y3ZzNVSHBD?=
 =?utf-8?B?eEZWdWpFZjM3Y283VW00MU1RUEc5dWNMZDNLRHkrdFhLZjhtQmJuRFJDa0xM?=
 =?utf-8?B?dTlPSURibkRyNEZzcFcxZjQvYTFCSkJ3Y3o4YmtNTFMzSlNGczREcnlzWWQy?=
 =?utf-8?B?a1MzWHUreTJ1NG1NTEMxNGhzY1p2RFlpTnJ6QUt1dU02c0NBMi8wZWs2N2hV?=
 =?utf-8?B?UjUzNnJuTmtGWW5yby8zdGNTemlmYzVkMjRoTldiQ0hNUVMzWjlXd01JRmtO?=
 =?utf-8?B?R0NGblk3bytsOGx6UDNTSFNXV20zQWZyMzVwcjFCTEkrTE15dFdvZGVEaS9F?=
 =?utf-8?B?Z0NNMkdicmRCVi84dVJiU09kemt1a2Q5cUFoNFF5VlY2Wjl3aWdtc0dIZW5n?=
 =?utf-8?B?M3hYc0FUdy9FYWJhNEN2ZHBITzFsSVNzQlpjanF1SXZLQ0lKQWxEQnVQU3Q3?=
 =?utf-8?B?KzhGUnFHcUVoWVB1Z2M5RVNUUE9wcGF3TzBabFNtYmE3a2VaOThPQUFGNlg1?=
 =?utf-8?B?Tjk2eGZJRW9xZzhScDEvL3I2Z1dpM2xyemlpanhOOE0rZUIvb1Y3dCs0NnRC?=
 =?utf-8?B?U0xicG44MHlMYk9BenhuejNZSDdGNWxvVzdUQll0eFUxVkxQZ09BS1lWeGVq?=
 =?utf-8?B?QmhNSUY2akFjanVmemxnZ2h2Y3dyQlhKWVdOWVQvdk5waWRCQlZLaHhaMjUw?=
 =?utf-8?B?VGVkejJiSWlaeGlCaFNldTdZTW1ZSFI3V3lOWmNqem1TK1A3OFFKK1cyM3Js?=
 =?utf-8?B?NWloOFgzTll2RHBIakI3bWN4QUJBYWJ0ZUs4UmtLcFhMeHFBU2N6emRDTU1M?=
 =?utf-8?B?YkVYYXp2Nm1lb1ViTWpzWndzM2RrWnFQUDVWS2tYTzlsRG1iN1FoazMwTTM3?=
 =?utf-8?B?N2lHbEdLN043eWxsbXpGVDNVbVNsNzhmUVNWWGtNVndKdFR5Q3YwR2p0QUVn?=
 =?utf-8?B?enYrTTYwa09wenZuaUR2ZWN6c25iSjh5MkloaDIxYUlydnBrS1NlQndkcUtE?=
 =?utf-8?B?WVJOTFA2NFBxdGJoeVU0b3lNNy9RTCt1NVg4eUNuWnMzWGVua1MzWEtpQ0NL?=
 =?utf-8?B?Q3dodEtLaC82TUtCQ0NFZ00vMEdXQkF0TCtmUGJ3RHlOcm9TbUE0K2N0dDAw?=
 =?utf-8?B?b3hTTlpBM1k0Rm10OVg5ZjRCNFh4SjRsWS9oNCtmYjRzdkI0Y1BoY0xHWlR3?=
 =?utf-8?B?bGtLVzUwMVgydHdHVCtYQkFJRGxjaGZxa001ck9oTWRNVVRUMldNOTRmT0Qx?=
 =?utf-8?B?b3F3MzltczdESVlwTDNIelQ1UnpZbEl1TUdpRzMybHVSVzVUcXF0aGxmcmQr?=
 =?utf-8?B?R0JtYzAwSEtwS2xSc0NuWmdoZlZnZEl5d0pxUzdwQUtDekdUU05tUGdValM2?=
 =?utf-8?B?MmdaNStBQjBhM0VIUS9sK1B1WlBFbjZjV2hOWE9rSEhoMU40VkNhOWwxVVY5?=
 =?utf-8?B?VXlaenBhL2g4b2U1VnhHYVUrOGRnZlNlSUlLSkJjWm1vRE5lbU1lTEQ1TWtp?=
 =?utf-8?B?bzFYUEFHZi9Yb2tCUFhjQXJER1V3c2JDaXozcU14VWFrNzJMOFVCeHp2NGNO?=
 =?utf-8?B?YUJwTGRvcEd4VmFqSzFLSjJ4QmkwRUxiZ3ZvNlA1N2pMODVUaDNBblVobzhv?=
 =?utf-8?B?Qit4akduL3NMQkdtMXBlSVVHdDZPWXhNdG9YRGxnQURTbjhHOUx3ZkwvOWJO?=
 =?utf-8?B?NTRMNloxZzd3bXg4dGFuazgvMkhrWlJXMnhFbThJblpVTTkzWjJNbnp1ZFVQ?=
 =?utf-8?B?aGNIUkhoZEZEV1ZpdVlDYUlvdFJHWHl5Z3U5d2FibG5zeEtIUCt5NXpmbjN2?=
 =?utf-8?B?QzhNVzZ3TjV3PT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?VXlPZnNIck4wTXpZR3dveUhOak9wWm9rYm4wall1WkVrQ3FOWEJGcUlWVmJm?=
 =?utf-8?B?SGhlWjBLd1JObzd2djZqMlorTjVJV1c0bENZYUpWTEtWeUxEcmtGSDR2YXNR?=
 =?utf-8?B?a2xmQzlxSWNXSXRFdTdUTTlEbyt2U01wT1ZMS1RwNHhxOVhVNUYyaGRsMHRO?=
 =?utf-8?B?SWIreVJNL0UzRWF3eGswbjBsTTZiek5GNkRyOUFIOTBCRWc0QkM5QUttTFZT?=
 =?utf-8?B?QUVMWU1IalFsdWl1bWtvcWxTNU43MlZqWC83aWs3czdvSXB2Z3NHOUFweldv?=
 =?utf-8?B?U2NKd2NPQjEzREZTU296aWMrRFQ5eGdGRXRxNjNtZ2grL0twWVN2Yi9DU0R6?=
 =?utf-8?B?bi9TaTFSYmpaUGtEN1lmSnMybVdLS0xaMTdSOW1UWjhoSjduZjRxN0liOWRL?=
 =?utf-8?B?MTQ5dzloRWxtY3ljTk05WkJmV3c4OTFWeWpZM09UcGtBdkNhTkpWMGVjUDlK?=
 =?utf-8?B?WVprR2laQjZJUDA1Y0htV2lmalVyWnpBcCsyeUZwRzh2UEE1OUx5T3AzT3NI?=
 =?utf-8?B?Y2EwZ3RYbWxUOWJvVXIvTVJkUFAyYWFYbmxZMFhDQjJPdm0yVnRNWlN5ZmlC?=
 =?utf-8?B?REJWWTFsN1hUb0xJK2FrL2I3dUxJSzM1a2pjU1F4d0UxUm1ramZMZ1JBR0I5?=
 =?utf-8?B?OTVoN0xmWDNYZTF0U3ZNZUVQLzF3cndVV05Xa1JsUmNlY0pwNnJ5b0gzdStR?=
 =?utf-8?B?bkc5V2ZLbmt0dFB6cGVuaXUzMjlXYlFOcUJQMnFjVHdVdjZQWmVHZGV2RDlo?=
 =?utf-8?B?akZ4UDdiRlpjZm1kSTE2QUJBLzVkOG1rbTI4RytZWUZxMGMyTlpibHVIVTJK?=
 =?utf-8?B?bkx3S1ZDMzVuTUVnNGtGMHVra1VOQThzZlhkVHV1cmJGVkxpQlNpZWczekd3?=
 =?utf-8?B?eEZUQ2NUWUtwM0FLT21razcvMThqZG1uTWJtUXIyK3JFQU9iWGRaUU9XNXEv?=
 =?utf-8?B?V01mbHFnNG1TK0lWaGdZenpaSDNrWlJ0TXhIRG1yRTBsbFk5S2FuYklWZDh3?=
 =?utf-8?B?S3ZqeCtVaHBLNlo0WFd1YTU3RERFaHYvVGlGNjdDRC9tMTNVZ0Y4OWphWHJp?=
 =?utf-8?B?aVZESU51R1hyU3d5cTVzekVrRjM3VmcxMGFabnlIbWRWb3hMTnlKSlF5V3Ja?=
 =?utf-8?B?Y2M1UXNkdXVyYnpXNGxQeWZGd3FGaStoUGxOekFpYWlLZXJzV1VNUHYrdU9L?=
 =?utf-8?B?cXA1WGRja2tSU253VW5NTTFSYmtkRHBoUUxGNk8yMGpmZFpISDNFem5nZ0x6?=
 =?utf-8?B?UGxHdXoxQmVScWVEQ3RFNlFaRlB5eUlVYXhuVXBaSmxWREl4ZXZJK3A1UUEr?=
 =?utf-8?B?UWo0THNxdVZvUkhuVkp5YmIwZnNMVU9WbTlsYkRWOVE5YmRoaVJnSzlJaHps?=
 =?utf-8?B?ZkdpTUQwbnI3Y1pLUklWYlNYUTlQMDk1aHNqSk9mcEpNdTZ1RnluR3o4Tm03?=
 =?utf-8?B?STlTOHovb3ZrWGxEdEt6MnMxdStYTG10UlNzR3R2Ly9zdUFtbjIwU2U2YXVl?=
 =?utf-8?B?eSswQ2wva1FZaUFYYmFWdkNSdXViZTljci9OeTlpM1ZlcHkwaHpXODVEc1JH?=
 =?utf-8?B?M1BnZ3QvcVNpK2U2SklTcHE2bWpLblVIUkZ5dW02Vmo0djVMVExZUHBvVUJK?=
 =?utf-8?B?VEdWL2FoZDJIYk91VkY2NDQ3c3FsazlLdGZWQ0pJY3ZNNlI3WmZWQWJjeUJO?=
 =?utf-8?B?U1RtNjloWHFQSncyd0lFbkh5a1ZkdEhRNlZReUQwbTNBMTNvMzJ0QlcxQW5m?=
 =?utf-8?B?eFlFaE9jcVRBVVBMRnpkQnFiQ2NhYWRrdzRkbEVTaFhYSmFMQ3A5N3k2aXNF?=
 =?utf-8?B?OU1HVkdDdHJvZXNlM2sraTJZek9LbHZiOFl2WEhuN0txY3FVbkNPK2xZWnNk?=
 =?utf-8?B?OEdRQStoejdpQmJsTEhrbzdLbkwxUVlKYmF3cy9xNXB1Y0lqVjZJQWJSTnc1?=
 =?utf-8?B?Vm5VVEN3b0pGRE54QnZKZXlYVWpCYU5QZGgwaE5ocVc2dHJCMWFVcVozZHZP?=
 =?utf-8?B?NkN6RmVNM0hod2FVeExIbkZ0UHZhbTNDZFkzMlY0RkI0WUljTWxRdE00TnVw?=
 =?utf-8?B?SzVmeWdoaUcwS0JQbXg3dC9ZTzJhRnJBWjdSS29tWnhNMVZCWXhwdWlsWkVl?=
 =?utf-8?B?TlhLUUtJZDQ2Wm4xUmRIU0V5bUZZbzFtVjZWT2NPc2o0UUNocDUya3JFUnRr?=
 =?utf-8?Q?As4dEHoJMXYwGjkvKnRgJIM=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <C2FFDAE5EEBBA747B4D1169E71C6D800@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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e8dc87bc-3334-4f88-cc8b-08dde62b26f4
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Aug 2025 12:05:16.7963
 (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: SV553qnpYN3n2Qizm0Fhj221yzO1LYc6kZBFWX+Ys9qwt/lY3tJYKvZQmfj9kn8UfKVx+kTJLSuA/W96Qumq91mXxuWObDdc4mKtyJvTvBo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB9221

SGkgVm9sb2R5bXlyLA0KDQpUaGFuayB5b3UgZm9yIHlvdXIgcmV2aWV3IGNvbW1lbnQgYW5kIHN1
Z2dlc3Rpb25zLg0KDQpPbiAyOC4wOC4yNSAwMjoyMCwgVm9sb2R5bXlyIEJhYmNodWsgd3JvdGU6
DQo+IEhpIExlb25pZCwNCj4gDQo+IExlb25pZCBLb21hcmlhbnNreWkgPExlb25pZF9Lb21hcmlh
bnNreWlAZXBhbS5jb20+IHdyaXRlczoNCj4gDQo+PiBTaW5jZSBlU1BJIHN1cHBvcnQgaGFzIGJl
ZW4gaW50cm9kdWNlZCwgdXBkYXRlIHRoZSBkb2N1bWVudGF0aW9uIHdpdGgNCj4+IHRoZSBhcHBy
b3ByaWF0ZSBkZXNjcmlwdGlvbi4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBMZW9uaWQgS29tYXJp
YW5za3lpIDxsZW9uaWRfa29tYXJpYW5za3lpQGVwYW0uY29tPg0KPj4NCj4+IC0tLQ0KPj4gQ2hh
bmdlcyBpbiBWNDoNCj4+IC0gaW50cm9kdWNlZCB0aGlzIHBhdGNoDQo+PiAtLS0NCj4+ICAgZG9j
cy9tYW4veGwuY2ZnLjUucG9kLmluIHwgMTMgKysrKysrKystLS0tLQ0KPj4gICAxIGZpbGUgY2hh
bmdlZCwgOCBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQ0KPj4NCj4+IGRpZmYgLS1naXQg
YS9kb2NzL21hbi94bC5jZmcuNS5wb2QuaW4gYi9kb2NzL21hbi94bC5jZmcuNS5wb2QuaW4NCj4+
IGluZGV4IDUzNjJmYjBlOWEuLjI5MmFiMTAzMzEgMTAwNjQ0DQo+PiAtLS0gYS9kb2NzL21hbi94
bC5jZmcuNS5wb2QuaW4NCj4+ICsrKyBiL2RvY3MvbWFuL3hsLmNmZy41LnBvZC5pbg0KPj4gQEAg
LTMwNzIsMTEgKzMwNzIsMTQgQEAgaW50ZXJ2YWwgb2YgY29sb3JzIChzdWNoIGFzICIwLTQiKS4N
Cj4+ICAgPWl0ZW0gQjxucl9zcGlzPSJOUl9TUElTIj4NCj4+ICAgDQo+PiAgIEFuIG9wdGlvbmFs
IGludGVnZXIgcGFyYW1ldGVyIHNwZWNpZnlpbmcgdGhlIG51bWJlciBvZiBTUElzIChTaGFyZWQN
Cj4+IC1QZXJpcGhlcmFsIEludGVycnVwdHMpIHRvIGFsbG9jYXRlIGZvciB0aGUgZG9tYWluLiBN
YXggaXMgOTYwIFNQSXMuIElmDQo+PiAtdGhlIGBucl9zcGlzYCBwYXJhbWV0ZXIgaXMgbm90IHNw
ZWNpZmllZCwgdGhlIHZhbHVlIGNhbGN1bGF0ZWQgYnkgdGhlIHRvb2xzdGFjaw0KPj4gLXdpbGwg
YmUgdXNlZCBmb3IgdGhlIGRvbWFpbi4gT3RoZXJ3aXNlLCB0aGUgdmFsdWUgc3BlY2lmaWVkIGJ5
IHRoZSBgbnJfc3Bpc2ANCj4+IC1wYXJhbWV0ZXIgd2lsbCBiZSB1c2VkLiBUaGUgbnVtYmVyIG9m
IFNQSXMgc2hvdWxkIG1hdGNoIHRoZSBoaWdoZXN0IGludGVycnVwdA0KPj4gLUlEIHRoYXQgd2ls
bCBiZSBhc3NpZ25lZCB0byB0aGUgZG9tYWluLg0KPj4gK1BlcmlwaGVyYWwgSW50ZXJydXB0cykg
dG8gYWxsb2NhdGUgZm9yIHRoZSBkb21haW4uIE1heCBpcyA5NjAgZm9yIHJlZ3VsYXIgU1BJcw0K
Pj4gK29yIDUwODggZm9yIGVTUElzIChFeHRlbmRlZCBTUElzKS4gVGhlIGVTUElzIGluY2x1ZGVz
IGFuIGFkZGl0aW9uYWwgMTAyNCBTUElzDQo+IA0KPiBXZWxsLCB0aGlzIGlzIGF3a3dhcmQgYW5k
IGNvbmZ1c2luZyBub3cuIFlvdSBjYW4ndCBhbGxvY2F0ZSA1MDg4IFNQSXMsDQo+IGJlY2F1c2Ug
bm8gR0lDIGRvZXMgbm90IHN1cHBvcnQgdGhpcy4gTnVtYmVyIG9mIFNQSXMgaXMNCj4gOTYwIChy
ZWd1bGFyIFNQSXMpICsgMTAyNCAoZVNQSXMpID0gMTk4NC4NCj4gDQoNCkkgYWdyZWUgd2l0aCB0
aGlzLCBidXQgZXZlbiBpZiBJIHdlcmUgdG8gdXBkYXRlIHRoZSB0b29sc3RhY2sgbG9naWMgd2l0
aCANCnBhcnNpbmcgSVJRIHBhcnQgb2YgZG9tYWluIGNvbmZpZywgaXQgd291bGQgc3RpbGwgYmUg
Y29uZnVzaW5nIGFuZCANCmF3a3dhcmQuIFRoaXMgaXMgYmVjYXVzZSwgaW4gdGhhdCBjYXNlLCB3
ZSB3b3VsZCBuZWVkIHRvIGRlZmluZSBzb21lIA0KcmFuZ2UgZm9yIGVTUElzLCBzdWNoIGFzIGEg
bnVtYmVyIGZyb20gOTYwIHRvIDE5ODQsIHdoaWxlIGluIHRoZSBEVFMgDQpmaWxlLCB3ZSB3b3Vs
ZCBkZWZpbmUgdGhlIElOVElEIG9mIGVTUElzIGFzIGJlaW5nIGZyb20gNDA2NCAoMHhGRTApIHRv
IA0KNTA4OCAoMHgxM0RGKS4gQWRkaXRpb25hbGx5LCB0aGUgY3VycmVudCBtYWlubGluZSBkZXNj
cmlwdGlvbjoNCg0KID4gVGhlIG51bWJlciBvZiBTUElzIHNob3VsZCBtYXRjaCB0aGUgaGlnaGVz
dCBpbnRlcnJ1cHQgSUQgdGhhdCB3aWxsIGJlDQogPiBhc3NpZ25lZCB0byB0aGUgZG9tYWluLg0K
DQp3aWxsIGFsc28gYmUgaW5jb3JyZWN0IGluIHRoaXMgY2FzZS4NCg0KPiBXaGF0IHlvdSBhcmUg
ZGVzY3JpYmluZyBpcyAibWF4IFNQSSBudW1iZXIiLCBidXQgdGhlIHBhcmFtZXRlciBpcyBjYWxs
ZWQNCj4gIm5yX3NwaXMiLiBJZiB3ZSB3YW50IHRvIGxlYXZlIHRoaW5ncyBjb25zaXN0ZW50LCB3
ZSBlaXRoZXIgbmVlZCB0bw0KPiBkZXByZWNhdGUgbnJfc3BpcyBpbiBmYXZvciBvZiBtYXhfc3Bp
X25yLCBvciBzZXZlcmVseSByZXdvcmsgbnJfc3BpDQo+IGxvZ2ljLCBzbyBpdCBjYW4gaGF2ZSB2
YWx1ZXMgZnJvbSAwIHRvIDE5ODQuLi4NCj4gDQo+IFBlcnNvbmFsbHksIEknZCBwcmVmZXIgbWF4
X3NwaV9uciBhcHByb2FjaCwgYmVjYXVzZSBpdCB3aWxsIGJlIGxlc3MNCj4gY29uZnVzaW5nIGZv
ciBhIHVzZXIuIEkgYW0gY3VyaW9zIHdoYXQgQVJNIG1haW50YWluZXJzIHRoaW5rIGFib3V0IHRo
aXMuDQo+IA0KDQpJIGFsc28gYWdyZWUgdGhhdCBucl9zcGlzIGlzIG5vdCBwcm9wZXIgbmFtaW5n
IGluIHRoZSBjb250ZXh0IG9mIGVTUElzLiANCkludHJvZHVjaW5nIG1heF9zcGlfbnIgYW5kIGRl
cHJlY2F0aW5nIG5yX3NwaXMgaXMgYSBnb29kIG9wdGlvbiwgYnV0IA0KdGhpcyB3b3VsZCByZXF1
aXJlIGFkZGl0aW9uYWwgdXBkYXRlcyB0byB0aGUgdG9vbHN0YWNrLCBkb2N1bWVudGF0aW9uLCBl
dGMuLg0KDQpUaHVzLCBJIHByb3ZpZGVkIGFkZGl0aW9uYWwgdGVjaG5pY2FsIGRldGFpbHMgaW4g
dGhlIGNvbnRleHQgb2YgZVNQSXMsIA0Kd2hpY2ggd2lsbCBiZSBoZWxwZnVsIGZvciB1c2VycyBl
dmVuIHdoaWxlIHVzaW5nIHRoZSBjdXJyZW50IG5yX3NwaXM6DQoNCiA+IFRoZSBlU1BJcyBpbmNs
dWRlcyBhbiBhZGRpdGlvbmFsIDEwMjQgU1BJcyBmcm9tIHRoZSBlU1BJIHJhbmdlICg0MDk2DQog
PiB0byA1MTE5KSBpZiB0aGUgaGFyZHdhcmUgc3VwcG9ydHMgZXh0ZW5kZWQgU1BJcyAoR0lDdjMu
MSspIGFuZA0KID4gQ09ORklHX0dJQ1YzX0VTUEkgaXMgZW5hYmxlZC4NCg0KVGhpcyBkZWZpbml0
ZWx5IG5lZWRzIHRvIGJlIGFncmVlZCB1cG9uIHdpdGggQVJNIG1haW50YWluZXJzLg0KDQo+IA0K
Pj4gK2Zyb20gdGhlIGVTUEkgcmFuZ2UgKDQwOTYgdG8gNTExOSkgaWYgdGhlIGhhcmR3YXJlIHN1
cHBvcnRzIGV4dGVuZGVkIFNQSXMNCj4+ICsoR0lDdjMuMSspIGFuZCBDT05GSUdfR0lDVjNfRVNQ
SSBpcyBlbmFibGVkLiBJZiB0aGUgYG5yX3NwaXNgIHBhcmFtZXRlciBpcyBub3QNCj4+ICtzcGVj
aWZpZWQsIHRoZSB2YWx1ZSBjYWxjdWxhdGVkIGJ5IHRoZSB0b29sc3RhY2sgd2lsbCBiZSB1c2Vk
IGZvciB0aGUgZG9tYWluLg0KPj4gK090aGVyd2lzZSwgdGhlIHZhbHVlIHNwZWNpZmllZCBieSB0
aGUgYG5yX3NwaXNgIHBhcmFtZXRlciB3aWxsIGJlIHVzZWQuIFRoZQ0KPj4gK251bWJlciBvZiBT
UElzIHNob3VsZCBtYXRjaCB0aGUgaGlnaGVzdCBpbnRlcnJ1cHQgSUQgdGhhdCB3aWxsIGJlIGFz
c2lnbmVkIHRvDQo+PiArdGhlIGRvbWFpbi4NCj4+ICAgDQo+PiAgID1pdGVtIEI8dHJhcF91bm1h
cHBlZF9hY2Nlc3Nlcz1CT09MRUFOPg0KPiANCg0KQmVzdCByZWdhcmRzLA0KTGVvbmlkDQo=


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 12:07:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 12:07:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098585.1452592 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urbPB-00079h-5U; Thu, 28 Aug 2025 12:07:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098585.1452592; Thu, 28 Aug 2025 12:07: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 1urbPB-00079a-2P; Thu, 28 Aug 2025 12:07:01 +0000
Received: by outflank-mailman (input) for mailman id 1098585;
 Thu, 28 Aug 2025 12:06:59 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=V9g1=3I=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1urbP8-00079T-T5
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 12:06:59 +0000
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on2062d.outbound.protection.outlook.com
 [2a01:111:f403:2413::62d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7d03e0f3-8407-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 14:06:57 +0200 (CEST)
Received: from MW4P221CA0029.NAMP221.PROD.OUTLOOK.COM (2603:10b6:303:8b::34)
 by CY8PR12MB8316.namprd12.prod.outlook.com (2603:10b6:930:7a::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Thu, 28 Aug
 2025 12:06:45 +0000
Received: from CO1PEPF000044F6.namprd21.prod.outlook.com
 (2603:10b6:303:8b:cafe::43) by MW4P221CA0029.outlook.office365.com
 (2603:10b6:303:8b::34) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.22 via Frontend Transport; Thu,
 28 Aug 2025 12:06:45 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CO1PEPF000044F6.mail.protection.outlook.com (10.167.241.196) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9094.0 via Frontend Transport; Thu, 28 Aug 2025 12:06:45 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) 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; Thu, 28 Aug
 2025 07:06:44 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.10; Thu, 28 Aug
 2025 05:06:44 -0700
Received: from [10.252.147.171] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Thu, 28 Aug 2025 07:06:43 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7d03e0f3-8407-11f0-aeb2-fb57b961d000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Cwq6WgU26K3xP3DbHKRUKbtzm5BzoaBUYK6rKxVJITZ82nRa/qHdPX5h1exOJw43s73ICoDd6D67ATmipT4nuutQ0mnP9HlHJp7Mr9FbZwKvtM7OttHgDrHMW/dowT0Ll71oBALlfIynq7HFc8tnacd9BR4Vg1bIVcZVC7jeT7X/g3pcf/ilCgf5S/kKfrWzebzcmXSFHDZEaEWgqP53aprcOHhxHltD04SiyURPLZU/8SLIfJvfitf7ON+uZ2ThCmyyB+ZQpUZx0yO4hF0iN6fF6PiVLsG3WK9Wv2BUdTRZix494JWcheZq0UxifMnSbdsvVInsi7eYGL6YbGF70g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=g6uk79BzOFG6ztMhZHyXNzM3hDEv7cxKeUVQLzfQR8o=;
 b=CwGRzZhDCXcwA4Z3Ovx8bKfBbaYRwDTK/ylrX1JxO0g3GxHyt07wYa7pjBZOf/MDfTMz8uAhBvdcPoRw+FC4SxhdD2NPZHpNOifBb4RxGu/tjK3YDRti+sfWPCLG0AY1nGPvew/ua8A+9ORYmk4tE/gqMWnBw70GBvDNrOsdUrwDu63ReKwX2ntdl7a46l7b0PrxiIomWL98jA5MaSUo6fZ20/Yug/AGlA+gbKq0szo7WvhciWc4hKszRupyv5r6z5YWaTgdgazQ0ZviXiUGa1Wy/jnysjOSwYkyhaiZK3BoM2xb0nr2osCFT6vCxW5ptNoizdSJwZ4zdAXhDWw5DA==
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=g6uk79BzOFG6ztMhZHyXNzM3hDEv7cxKeUVQLzfQR8o=;
 b=NTtZy2xX2FDoLCXwBCRwPv/hUNnGAtdarY6D8DauLzlPUTnlxt97elX7jsOD7Yuti0w3RdGQRl9ptzIi0WoB6UfTuG2gNq7i3H06BBkxAx26bPSUudErCmpZmC/otEMKi1/v6AAaXNp2WklKSy1L/7hiWmkCP0ecbP33A0BAVDg=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <d9ff0746-2198-4b08-ad02-a616360c83e1@amd.com>
Date: Thu, 28 Aug 2025 14:06:42 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 4/5] arm/mpu: Implement ioremap_attr for MPU
To: Hari Limaye <hari.limaye@arm.com>, <xen-devel@lists.xenproject.org>
CC: <luca.fancellu@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: <cover.1756379422.git.hari.limaye@arm.com>
 <53c6aa61bc0cefce369ffc3a9ff5a7060b5f4b20.1756379422.git.hari.limaye@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <53c6aa61bc0cefce369ffc3a9ff5a7060b5f4b20.1756379422.git.hari.limaye@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF000044F6:EE_|CY8PR12MB8316:EE_
X-MS-Office365-Filtering-Correlation-Id: 42c0a247-beed-4a8d-f0f9-08dde62b5bbf
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|36860700013|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bksvM0dPNzZTbFZRRXEvQWxIRHBSaURUREh3cjd5b3h0OERpUmpEWElIa3NZ?=
 =?utf-8?B?MWdaT2VFM3ovSUtYWkNwTXdhL0ZCRmdzVDA0dkRqM3Y2SjZ5RmRmcG5ROTRU?=
 =?utf-8?B?UHB6UkRaQTAvWGtna09EZnVvYUo3Z000L2xGWmtCRk53c3hhRTBXcUxyUDJi?=
 =?utf-8?B?VGlPcWRYZ3VRWlk5VGJ0eFF2cHFsR0dnMWtndzk0WGcybFlSR0lnNGVLRHZs?=
 =?utf-8?B?YmQxZlFwMThKbEowUkw4RjUrZGIxWDd2YXg1SVQ1TDIramRxV1VRY29sejFJ?=
 =?utf-8?B?ZkpibCtsMm80ZGU2c3hhb2ZlRVVDaUlMOGJZVjlycFV1a0ZMYVcxVHJ2SVdN?=
 =?utf-8?B?dXJRcHRwb2JWdTltOERoVVpSZjREQ0Q4NW5XTGVWSHRaeisyd0JscGhTdTVp?=
 =?utf-8?B?Q1ZvQ0RMcEVjd2JhZmVqWHpXYXhmbUxRdnl2cys2STJlNGozZmNXSE4vRnNC?=
 =?utf-8?B?Ny80Z2YwSXN1MFFOYTF0STR2cHgrUWlWeHgzMlRjcEErenNOTVB5L25SeUJM?=
 =?utf-8?B?WFUvdFRQSEJnV0x5OCtaSEFORmcyTi96c040Wkh2akZIUTJnMHpGTmFNOU1Q?=
 =?utf-8?B?QzgwSERmUlZYazZON2ZvVE1GQkt4TlRuNHI1T3hKRnVSZEY5OGl6ZVlpcThJ?=
 =?utf-8?B?aVArNmhLcURxRkpzeURpMkZhTi9ZRW02U1ZNZDk2a0RnVXdFakV5RytrOW96?=
 =?utf-8?B?UXJpRjRxTFpFaXQrYjduUUhQWFI4YXIzWE5GejN4WEhCKzZnemNlaVdRdWZD?=
 =?utf-8?B?WVhXNUtLN2lPMG9PZXZCTW1GcVNrbUpoZTNxcFQrOGFGbyszN05rSnhRQk52?=
 =?utf-8?B?SXJZNGFxU1ZVeXRqV3BXWDVuOC9NbElsNndORWx5Q25kOGtBb0I4OFlTUER4?=
 =?utf-8?B?M29qbDJHMDNLWWNkbHp2WkRvL0VpSE1ZVjFzSnpuSEtpdEJMZW8vVXpET0Q4?=
 =?utf-8?B?Tmt5aHFiSXhMOVl0cHpjcGFuazhWMWIzU0o0bGhqamlkcjc3ZkNPWHBIN1JO?=
 =?utf-8?B?djB3MjlyNmY5VWJQU2MvTVNZYmtRVjZiZ2UxWFFHV0xwSlY5NDYvaHdPVXFW?=
 =?utf-8?B?K0pWRmQ0ZFVrV21RRmlqc1dFd01ybDNsS3dDQmVKTXJ6enFVUzJPMmpScUZL?=
 =?utf-8?B?RW9SRUZZRnpuTWpDR0pDWTZoVnRnOUV1eGV4ZkZZRGFZT25MamlpSlNVbG00?=
 =?utf-8?B?aGlXYnpFZHhiZWR6Z3pMSlN6OS9oZ3grNnZlK0grbkhHY04ydUFSWUFEN2hT?=
 =?utf-8?B?TVNweVFoSjBncG5rdGVKcWo2a3p6ZWN2cUNkdUZVNWdZYWZXMFZvbnFSY1dT?=
 =?utf-8?B?M3RTQWVtWEswc2RLMlJSMFdqY05UZ0YyUklVdmRKY3E0Wlh5aUxGK0R4ZE4x?=
 =?utf-8?B?N2h1ZWszc0U2T3Q3V0dGL29YNEZlRnB1MDRqUzN3MkxXN0g1aGNQV090dnRY?=
 =?utf-8?B?azh6RzNrd3hsbGdSS0piOEFKVjJxNEsybnZ3dXZwdGQ3TklOOW5GbVpIQ0hR?=
 =?utf-8?B?TUFvZDJ3VXAwM09xbENSTll0d1djTFI4K2FUV0lBSVlFbkxNaDlMc1AzREJP?=
 =?utf-8?B?bVZEYWZaUUhJSnl1U2lBZUU5THlMbWd0Q1M5aFMyUDNRS05iQ25GVVdXZExI?=
 =?utf-8?B?eUg1VGJRSngxUnUvZWdpUm11dGFTOGp1Um5FYXFpZkpGTFY4cU4ycFRKQXlL?=
 =?utf-8?B?dEZxQXRJQUkzSHNNWXdwRjdkcHpCWEo1Z1lFL3VuUWJibjdYMFBYNytZVDlm?=
 =?utf-8?B?akhMSm1pZlEvLzVCaFc3NEtVM2FyVWVDaXk4YitZazBRS3F2NnJEcXhjOHRD?=
 =?utf-8?B?NWlHL0hyczdJVlZnQXc5UFBrbTR6SS93WEIyUVFzM2dIYlZZcTZNVjZHRFNp?=
 =?utf-8?B?QUR6Syt6Ykx3MWRDazR3ektEMW1EbXdCQ2dDMHlrNmlkSFQyWm1QN3A2UlYw?=
 =?utf-8?B?WkhkTE9mWnRHZlB2R1hsTURteHNGUW02N3Izb2h0a2hPVUhnY2ZxWWZvMHE1?=
 =?utf-8?B?UlVNK0pFRUNsN3F0bWh3cHJaY09lbEphWUJYUGZaTHNSOVFZZmdaTjZYcU9S?=
 =?utf-8?Q?gxmsIm?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(36860700013)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 12:06:45.2428
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 42c0a247-beed-4a8d-f0f9-08dde62b5bbf
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF000044F6.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB8316



On 28/08/2025 13:12, Hari Limaye wrote:
> From: Luca Fancellu <luca.fancellu@arm.com>
> 
> Introduce helpers (un)map_mm_range() in order to allow the transient
> mapping of a range of memory, and use these to implement the function
> `ioremap_attr` for MPU systems.
> 
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> Signed-off-by: Hari Limaye <hari.limaye@arm.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 12:10:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 12:10:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098599.1452602 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urbSD-0000Gf-IF; Thu, 28 Aug 2025 12:10:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098599.1452602; Thu, 28 Aug 2025 12:10: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 1urbSD-0000GY-FX; Thu, 28 Aug 2025 12:10:09 +0000
Received: by outflank-mailman (input) for mailman id 1098599;
 Thu, 28 Aug 2025 12:10:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=pYI3=3I=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urbSB-0007kk-V6
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 12:10:07 +0000
Received: from mail-ed1-x531.google.com (mail-ed1-x531.google.com
 [2a00:1450:4864:20::531])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id efea690f-8407-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 14:10:07 +0200 (CEST)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-61cb9f6dbe7so1554436a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 05:10: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
 4fb4d7f45d1cf-61cd59d6ff5sm1456301a12.25.2025.08.28.05.10.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 05:10: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>
X-Inumbo-ID: efea690f-8407-11f0-aeb2-fb57b961d000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756383007; x=1756987807; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=2Ix2NySS9r3VEUHyFHBqvwy8adJrs4J+hBt/gltIKQM=;
        b=PSXCUQNkxLGGji1/s2YI8uDG/T24B6GML2kPesJeTNO8flv20Efa8GGhrpMOIpt+kG
         2sPUEXV831PYWZBJHXVM2Jtmz1Jai8045e29Do9V7Fu7k01moOQsNlNHYCwY1uSN9snD
         8Js1Dime0zPzmj3e/2Z1Y0sIYnlYSYkwEDJI83PEi2ut18tDGG+3GK/i3o8XpGH9CdeU
         dSnq76YyEciK3UDE5aG8cLHIM+JOhS5W8N6cpsbJlOizvWIpcYreVxDZ8BEgntkkCLNQ
         IC18pyH0vk2YssJn7XVmbBcpYZJ6RTk8Oa90iKyko3JOfYJGuPPuOSlQY+XOZxVrrm9V
         KBwQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756383007; x=1756987807;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2Ix2NySS9r3VEUHyFHBqvwy8adJrs4J+hBt/gltIKQM=;
        b=r9yMVQAEc+q0oDiN4KgRnaeMy9WhEh10uCIr0R/Kr6E+ecwa7o8M+aM7Kcsiwiotq7
         byV4NEaKKew71izkHQNEBl5jeqAfE9UQ7FyghftxSFM5fkpT8Y9dhtWhb4RkVI0rWC6+
         Zn5vlmWsGIPJD9BPW+MKoq1vfPIXkwTCUkDlFXeQ8muFFiO8fXzNCT6QQeVcv19EX/Ls
         qwhpr0O7MrGlIJ04mLu1ETrn2o7/kynTLM+IsdzBoBTZ155Aoa6foudLCFYKE68Yfk4+
         5D+oz1GzWq8jtzORUObYjzDT/czh0tdNrZUtVjwzhnllpKy3oQs28bCLLSn7dHFBwY2O
         Xhaw==
X-Forwarded-Encrypted: i=1; AJvYcCX+eGk5cJqEtD7RPwoVYA+CNNSh8SI8C0BXTo6mfuNjjUz6cHgjdvtq+U55sfPcYsckZQQAvM6iVKg=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxf82Qn/4mDkH7iZ9sjCL7pGbr1jeqWezAqMKIDoBE6/NNl4Naz
	/qpX8KFgGEP1tEjEd/p+Hb6Q6MYS2+NFjEz1nvPAsHSInhwFSDV3ckHE+21fw/DrCA==
X-Gm-Gg: ASbGncv6hM4l9JfjaTFrd/jzTRQkP2ZMKaDCA2Wc/7fS4VrE24MdTeMgCmK2yNfGuRH
	dk0oRNhHFXM967ztOH9zLKCqgaGijNV4NqroDPnFSBN9ZqO7v9q4m3jUIMWAf3zAEcy1QNXf+DY
	w8WNnjx4WrMRVA9K+fDNkWsLSbYtXbiCKf1OQo/3toc9hNitKHX4ogr/+9j7jNy66XO8lXxLMIA
	KqcWJh0wz3y1QB7kiBZE/OKdLkCmjzwmGcKLjEPxwpXy02GusUuMcJU2UFTuF7I5+BqYfOo1tEH
	3mWbDaX7zDbrpshElJMAdTa+SUJI2qDaweN7QRsHY+RCFd3/2YSvYVRUg/ZtnVa5k4G3UFb1xnb
	F3QORAuhm1tJaPE2Sn0oWu59UV2kmzqqkSO65Mp9zWEOQ2qUdlqa+ldPHuLbDcjTPDHzDgiYhrL
	3cs6mr8D6pdpxm1zX9pA==
X-Google-Smtp-Source: AGHT+IE7HwbEx1dPNJJA1NmqU7wKzVE6ZSer28jgVK4+ImjmFMvl+btEBrFEYlQuH9ZY3RizRhpA8Q==
X-Received: by 2002:a05:6402:52c4:b0:607:28c9:c3c9 with SMTP id 4fb4d7f45d1cf-61c1b453182mr20917367a12.6.1756383006737;
        Thu, 28 Aug 2025 05:10:06 -0700 (PDT)
Message-ID: <a84ed680-9e19-4f35-bd9e-c3effd05ff5b@suse.com>
Date: Thu, 28 Aug 2025 14:10:04 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8 0/8] amd-cppc CPU Performance Scaling Driver
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, 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>, Juergen Gross
 <jgross@suse.com>, xen-devel@lists.xenproject.org
References: <20250828100306.1776031-1-Penny.Zheng@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: <20250828100306.1776031-1-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.08.2025 12:02, Penny Zheng wrote:
> amd-cppc is the AMD CPU performance scaling driver that introduces a
> new CPU frequency control mechanism on modern AMD APU and CPU series in
> Xen. The new mechanism is based on Collaborative Processor Performance
> Control (CPPC) which provides finer grain frequency management than
> legacy ACPI hardware P-States. Current AMD CPU/APU platforms are using
> the ACPI P-states driver to manage CPU frequency and clocks with
> switching only in 3 P-states. CPPC replaces the ACPI P-states controls
> and allows a flexible, low-latency interface for Xen to directly
> communicate the performance hints to hardware.
> 
> amd_cppc driver has 2 operation modes: autonomous (active) mode,
> and non-autonomous (passive) mode. We register different CPUFreq driver
> for different modes, "amd-cppc" for passive mode and "amd-cppc-epp"
> for active mode.
> 
> The passive mode leverages common governors such as *ondemand*,
> *performance*, etc, to manage the performance tuning. While the active mode
> uses epp to provides a hint to the hardware if software wants to bias
> toward performance (0x0) or energy efficiency (0xff). CPPC power algorithm
> in hardware will automatically calculate the runtime workload and adjust the
> realtime cpu cores frequency according to the power supply and thermal, core
> voltage and some other hardware conditions.
> 
> amd-cppc is enabled on passive mode with a top-level `cpufreq=amd-cppc` option,
> while users add extra `active` flag to select active mode.
> 
> With `cpufreq=amd-cppc,active`, we did a 60s sampling test to see the CPU
> frequency change, through tweaking the energy_perf preference from
> `xenpm set-cpufreq-cppc powersave` to `xenpm set-cpufreq-cppc performance`.
> The outputs are as follows:
> ```
> Setting CPU in powersave mode
> Sampling and Outputs:
>   Avg freq      580000 KHz
>   Avg freq      580000 KHz
>   Avg freq      580000 KHz
> Setting CPU in performance mode
> Sampling and Outputs:
>   Avg freq      4640000 KHz
>   Avg freq      4220000 KHz
>   Avg freq      4640000 KHz
> ```
> 
> Penny Zheng (8):
>   xen/cpufreq: introduce new sub-hypercall to propagate CPPC data
>   xen/cpufreq: introduce "cpufreq=amd-cppc" xen cmdline and amd-cppc
>     driver
>   xen/cpufreq: implement amd-cppc driver for CPPC in passive mode
>   xen/cpufreq: implement amd-cppc-epp driver for CPPC in active mode
>   xen/cpufreq: get performance policy from governor set via xenpm
>   tools/cpufreq: extract CPPC para from cpufreq para
>   xen/cpufreq: bypass governor-related para for amd-cppc-epp
>   xen/cpufreq: Adapt SET/GET_CPUFREQ_CPPC xen_sysctl_pm_op for amd-cppc
>     driver
> 
>  docs/misc/xen-command-line.pandoc         |  14 +-
>  tools/include/xenctrl.h                   |   3 +-
>  tools/libs/ctrl/xc_pm.c                   |  25 +-
>  tools/misc/xenpm.c                        |  94 ++-
>  xen/arch/x86/acpi/cpufreq/Makefile        |   1 +
>  xen/arch/x86/acpi/cpufreq/amd-cppc.c      | 766 ++++++++++++++++++++++
>  xen/arch/x86/acpi/cpufreq/cpufreq.c       |  69 +-
>  xen/arch/x86/cpu/amd.c                    |   8 +-
>  xen/arch/x86/include/asm/amd.h            |   2 +
>  xen/arch/x86/include/asm/msr-index.h      |   6 +
>  xen/arch/x86/platform_hypercall.c         |  19 +
>  xen/arch/x86/x86_64/cpufreq.c             |  19 +
>  xen/arch/x86/x86_64/platform_hypercall.c  |   3 +
>  xen/drivers/acpi/pm-op.c                  |  68 +-
>  xen/drivers/acpi/pmstat.c                 |   4 +
>  xen/drivers/cpufreq/cpufreq.c             | 137 +++-
>  xen/drivers/cpufreq/utility.c             |  15 +
>  xen/include/acpi/cpufreq/cpufreq.h        |  40 +-
>  xen/include/acpi/cpufreq/processor_perf.h |  14 +-
>  xen/include/public/platform.h             |  26 +
>  xen/include/public/sysctl.h               |   5 +-
>  xen/include/xen/pmstat.h                  |   5 +
>  xen/include/xlat.lst                      |   1 +
>  23 files changed, 1283 insertions(+), 61 deletions(-)
>  create mode 100644 xen/arch/x86/acpi/cpufreq/amd-cppc.c

Oh, and - what is still missing is a CHANGELOG.md entry.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 12:10:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 12:10:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098609.1452611 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urbSs-0000sx-TD; Thu, 28 Aug 2025 12:10:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098609.1452611; Thu, 28 Aug 2025 12:10: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 1urbSs-0000sq-Qg; Thu, 28 Aug 2025 12:10:50 +0000
Received: by outflank-mailman (input) for mailman id 1098609;
 Thu, 28 Aug 2025 12:10:49 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1urbSr-0000rb-N3
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 12:10:49 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1urbSq-00AuPg-35;
 Thu, 28 Aug 2025 12:10:49 +0000
Received: from [15.248.2.24] (helo=[10.24.67.148])
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1urbSq-005lJn-2k;
 Thu, 28 Aug 2025 12:10:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=vNuInm1iRMHm4Qfo1IxLpf2Ro3owrA/EYLJyBF7LeKc=; b=v3EQ+16r+hiEiZZwr0PwLtGOpG
	GBamKaseFhn+p0EfzgfR7RxJo0shEX3bog/kNVv8ykRBHaUVi05vz8XQXUPTIdCw3kF50ZPlMFDCB
	v4HRNrrZp1xKI1SjYNCvg+NNcACqXeDsdHNqnhZgn3xf//uksbuXtIB4mfjnrqjbCk1A=;
Message-ID: <1221fa50-0e17-405e-88fe-c57db905fa4a@xen.org>
Date: Thu, 28 Aug 2025 13:10:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 02/12] xen/arm: gic: implement helper functions for
 INTID checks
Content-Language: en-GB
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: "olekstysh@gmail.com" <olekstysh@gmail.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1756317702.git.leonid_komarianskyi@epam.com>
 <684757e6710826200bcc153e4c711b27483ee796.1756317702.git.leonid_komarianskyi@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <684757e6710826200bcc153e4c711b27483ee796.1756317702.git.leonid_komarianskyi@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Leonid,

On 27/08/2025 19:24, Leonid Komarianskyi wrote:
> Introduced two new helper functions: gic_is_valid_line and
> gic_is_spi. The first function helps determine whether an IRQ
> number is less than the number of lines supported by hardware. The
> second function additionally checks if the IRQ number falls within the
> SPI range. Also, updated the appropriate checks to use these new helper
> functions.
> 
> The current checks for the real GIC are very similar to those for the
> vGIC but serve a different purpose. For GIC-related code, the interrupt
> numbers should be validated based on whether the hardware can operate
> with such interrupts. On the other hand, for the vGIC, the indexes must
> also be verified to ensure they are available for a specific domain. The
> first reason for introducing these helper functions is to avoid
> potential confusion with vGIC-related checks. The second reason is to
> consolidate similar code into separate functions, which can be more
> easily extended by additional conditions, e.g., when implementing
> extended SPI interrupts.
> 
> The changes, which replace open-coded checks with the use of the new
> helper functions, do not introduce any functional changes, as the helper
> functions follow the current IRQ index verification logic.
> 
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
> Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

With one remark below:

Acked-by: Julien Grall <jgrall@amazon.com>

> ---
> Changes in V4:
> - removed redundant parentheses
> - added reviewed-by from Volodymyr Babchuk
> 
> Changes in V3:
> - renamed gic_is_valid_irq to gic_is_valid_line and gic_is_shared_irq to
>    gic_is_spi
> - updated commit message
> 
> Changes in V2:
> - introduced this patch
> 
> Changes for V4:
> 
> Changes in V4:
> - removed redundant parentheses
> - added reviewed-by from Volodymyr Babchuk
> ---
>   xen/arch/arm/gic.c             | 2 +-
>   xen/arch/arm/include/asm/gic.h | 9 +++++++++
>   xen/arch/arm/irq.c             | 2 +-
>   3 files changed, 11 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
> index e80fe0ca24..9220eef6ea 100644
> --- a/xen/arch/arm/gic.c
> +++ b/xen/arch/arm/gic.c
> @@ -111,7 +111,7 @@ static void gic_set_irq_priority(struct irq_desc *desc, unsigned int priority)
>   void gic_route_irq_to_xen(struct irq_desc *desc, unsigned int priority)
>   {
>       ASSERT(priority <= 0xff);     /* Only 8 bits of priority */
> -    ASSERT(desc->irq < gic_number_lines());/* Can't route interrupts that don't exist */
> +    ASSERT(gic_is_valid_line(desc->irq));/* Can't route interrupts that don't exist */

As you are touching the line. It is over 80 characters. Can you move the 
command in a separate line?

>       ASSERT(test_bit(_IRQ_DISABLED, &desc->status));
>       ASSERT(spin_is_locked(&desc->lock));

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 12:14:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 12:14:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098620.1452621 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urbWU-0001ow-BM; Thu, 28 Aug 2025 12:14:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098620.1452621; Thu, 28 Aug 2025 12:14: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 1urbWU-0001op-8o; Thu, 28 Aug 2025 12:14:34 +0000
Received: by outflank-mailman (input) for mailman id 1098620;
 Thu, 28 Aug 2025 12:14:33 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1urbWT-0001oj-IZ
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 12:14:33 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1urbWT-00AuSq-02;
 Thu, 28 Aug 2025 12:14:33 +0000
Received: from [15.248.2.24] (helo=[10.24.67.148])
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1urbWT-005lcG-02;
 Thu, 28 Aug 2025 12:14: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=jOTzAeGVYjpq5jUAsknJhDwW82hwsLFiSmK2taft3WA=; b=f2B8dEgolqrOHFnoEojlCb/44p
	6HdxPf9gJH7UDJx9gk+jGZ+WXOgmp1aaEIsiTdDemo6dzZqkV9aShST5aZjvpho0Y/X5CAXvYZBhd
	MFJmmWF7WsnAS++Ent3GZE8C4Vzxr1XGOFx/7d4clJ/VATs8uOTIeRSIviDSjlD3Xi1M=;
Message-ID: <de8af641-6b65-4cb6-9ae8-64ada41dc8f9@xen.org>
Date: Thu, 28 Aug 2025 13:14:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 03/12] xen/arm: vgic: implement helper functions for
 virq checks
Content-Language: en-GB
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: "olekstysh@gmail.com" <olekstysh@gmail.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1756317702.git.leonid_komarianskyi@epam.com>
 <65b148aea56b1a35fa061b0d8284584da97153a9.1756317702.git.leonid_komarianskyi@epam.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <65b148aea56b1a35fa061b0d8284584da97153a9.1756317702.git.leonid_komarianskyi@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Leonid,

On 27/08/2025 19:24, Leonid Komarianskyi wrote:
> Introduced two new helper functions for vGIC: vgic_is_valid_line and
> vgic_is_spi. The functions are similar to the newly introduced
> gic_is_valid_line and gic_is_spi, but they verify whether a vIRQ
> is available for a specific domain, while GIC-specific functions
> validate INTIDs for the real GIC hardware. For example, the GIC may
> support all 992 SPI lines, but the domain may use only some part of them
> (e.g., 640), depending on the highest IRQ number defined in the domain
> configuration. Therefore, for vGIC-related code and checks, the
> appropriate functions should be used. Also, updated the appropriate
> checks to use these new helper functions.
> 
> The purpose of introducing new helper functions for vGIC is essentially
> the same as for GIC: to avoid potential confusion with GIC-related
> checks and to consolidate similar code into separate functions, which
> can be more easily extended by additional conditions, e.g., when
> implementing extended SPI interrupts.
> 
> Only the validation change in vgic_inject_irq may affect existing
> functionality, as it currently checks whether the vIRQ is less than or
> equal to vgic_num_irqs. Since IRQ indexes start from 0 (where 32 is the
> first SPI), the check should behave consistently with similar logic in
> other places and should check if the vIRQ number is less than
> vgic_num_irqs. The remaining changes, which replace open-coded checks
> with the use of these new helper functions, do not introduce any
> functional changes, as the helper functions follow the current vIRQ
> index verification logic.
> 
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>

Acked-by: Julien Grall <jgrall@amazon.com>

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 12:17:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 12:17:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098630.1452632 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urbYs-0002Mr-Ny; Thu, 28 Aug 2025 12:17:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098630.1452632; Thu, 28 Aug 2025 12:17: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 1urbYs-0002Mk-KS; Thu, 28 Aug 2025 12:17:02 +0000
Received: by outflank-mailman (input) for mailman id 1098630;
 Thu, 28 Aug 2025 12:17:01 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=pYI3=3I=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urbYr-0002Me-MH
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 12:17:01 +0000
Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com
 [2a00:1450:4864:20::52e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e648a41d-8408-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 14:17:00 +0200 (CEST)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-6188b6f501cso1088347a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 05:17:00 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-61c311a02b5sm10810852a12.1.2025.08.28.05.16.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 05:16: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>
X-Inumbo-ID: e648a41d-8408-11f0-aeb2-fb57b961d000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756383420; x=1756988220; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=zQh2JZtFVRMc4Oq8/jNGlceVOcPkc1UDRC4lZ4c/vf0=;
        b=CV0J0bdtcP5ZSVR04UvJRvTxHSsSi0KNsZB179JUlhLViTsM8ZLNEpHKTBSpkG9OXb
         8dYTwQInl/EhyukyyI7aexL7diSc795SflO3jtJRhpZuJDrhBHBpKghwOgGtd1yd0uLC
         NpyvwJdCNa8RTgoYnIFgEyhpXX6dRvz7ttpmZyDWfZSymp+J9/LBtOUVR0NwOWdwl0VO
         0t+bGXEkEg31cZXkGr208+YHPYodalsbu7aPgb+vlYhihN2dcCRvLNK7Vxy5jt0xwe7/
         UCe250Je8bjWvMhKvT501pJDFp2ZlYcrxLlJo9+syv00OgmZqcIEWglDayKfQaBG0j5H
         MCWA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756383420; x=1756988220;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zQh2JZtFVRMc4Oq8/jNGlceVOcPkc1UDRC4lZ4c/vf0=;
        b=pFQbc1ONXhZExjNvx5DksoUeiYMwqjM3JoVPppHuOpe1QsvUptET4BuOfr4YTkZwEB
         cO92yr5maoBjbhmhDFXpqR9hP4121fv/qQ+amRPnAsuPb0KcNZiaeRRPprr/2qwJQO5Q
         0O1HYgMSpBiKkCMUewZJpYASeiPpKmHnqVSEd21VkvFnhw28ckmxfqnqgpP8rT26KY0f
         r8ejJiwms47LHxjubmvhMf1Q78ywuwOjwcK0vlK34T9WA2QYjRGeaZjxDeLeLB9tvVWV
         Qy7706mrYERV/zrCYTQwDo9cwkRlbgfNCCrsdzoi+rvmWiH36+77zbiVt2AK3G3MiDot
         Nm9g==
X-Forwarded-Encrypted: i=1; AJvYcCWHBNCCHcGMX6pPHxqWn0EIqH4glFNcALJbeJ53z7y1JF3i6Qkbz8Kw4GHOhfan7bxEJ4Ag3uLmhrE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz1CNL0tb9oHk91UsZDObBP+cDHuxSgAe1s8I88Ksk9H5f3yo0x
	oTeOLjzvP5rXJ+JaLIyxVED4DgQD/TjqLf4SQk4+s3ZQxNV03hdkrWW8aOQM1YZOlw==
X-Gm-Gg: ASbGncupDN+xxO18hYB3zGUxOWxB+h9oHsSUNdDScupCwr7BWIRWIPoJKGMgEe+BETd
	OpdR+o16KRfvNoXf9FObSKBpmqaVdMeimPF2zKVNgjNta7fh7M1JcbQAQZvNLkN8HqPt0Sv+w6V
	nzeZc9oLAb7gBhNBlZWEjUYtpXAxwsxOUbv/8x4rxzm3Sj2fk9i+uMf8KmMKklwQcRlPe3875u0
	x6mqf1xL+mjCogPh5Tuz1O2ZuT458KiUA3lESYG79KimxxBdkTLpcvzzHdsfpcERpjvW5wFKyYI
	tQC2w2wrITGqBLRc6c45XThXZzs6HOZHsznYOCjLNzsMMOzbM05UFXSOt2b38epO/MTACvPdksS
	HOnV8fyKlRftRHx2VkUocXGiotJTRTBuOlxQVd0dYvEpBtM2eKHUbEdHE4MiIVGSxwcs5LF9lXT
	zQethoBmvzElvUoS+mLg==
X-Google-Smtp-Source: AGHT+IGK7RJKGiiMDLf6hyY59X6poOsi//7aEb4tHPvsU08qcdA74qsJNtm9TL97s/a1HF4UgDK4NQ==
X-Received: by 2002:a05:6402:52c4:b0:617:b662:2272 with SMTP id 4fb4d7f45d1cf-61c1b6f9d31mr19268044a12.33.1756383414766;
        Thu, 28 Aug 2025 05:16:54 -0700 (PDT)
Message-ID: <d934464e-03f5-4133-8b87-d5bb1b031d9b@suse.com>
Date: Thu, 28 Aug 2025 14:16:53 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 1/9] x86/hvm: Use direct structures instead of guest
 handles
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.1755785258.git.teddy.astie@vates.tech>
 <de595114d532e0fa6c885c47cf2b3551ad495525.1755785258.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: <de595114d532e0fa6c885c47cf2b3551ad495525.1755785258.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.08.2025 17:25, Teddy Astie wrote:
> Make these functions work with hypervisor-owned pointer rather than
> guest handles, so the function parameters don't have to live in guest memory.

This is odd to read - the function parameters (arguments) didn't live in
guest memory before either.

> No functional changes intended.
> 
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
> ---
>  xen/arch/x86/hvm/hvm.c | 126 +++++++++++++++++++++++------------------
>  1 file changed, 70 insertions(+), 56 deletions(-)
> 
> diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
> index 56c7de3977..8bf59c63fe 100644
> --- a/xen/arch/x86/hvm/hvm.c
> +++ b/xen/arch/x86/hvm/hvm.c
> @@ -4142,19 +4142,14 @@ static int hvmop_flush_tlb_all(void)
>      return paging_flush_tlb(NULL) ? 0 : -ERESTART;
>  }
>  
> -static int hvmop_set_evtchn_upcall_vector(
> -    XEN_GUEST_HANDLE_PARAM(xen_hvm_evtchn_upcall_vector_t) uop)
> +static int hvmop_set_evtchn_upcall_vector(xen_hvm_evtchn_upcall_vector_t op)

Please can we avoid passing structures by value?

More generally: This one-by-one adjustment is what I'd really like to avoid
with any new interface. It would be far better if ...

>  {
> -    xen_hvm_evtchn_upcall_vector_t op;
>      struct domain *d = current->domain;
>      struct vcpu *v;
>  
>      if ( !is_hvm_domain(d) )
>          return -EINVAL;
>  
> -    if ( copy_from_guest(&op, uop, 1) )
> -        return -EFAULT;

... copy_from_guest() could transparantly handle both cases (virtual and
physical addresses being used). And yes, this would exclude an "everying in
registers" approach.

> @@ -5115,28 +5087,70 @@ long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) arg)
>      switch ( op )
>      {
>      case HVMOP_set_evtchn_upcall_vector:
> -        rc = hvmop_set_evtchn_upcall_vector(
> -            guest_handle_cast(arg, xen_hvm_evtchn_upcall_vector_t));
> +    {
> +        struct xen_hvm_evtchn_upcall_vector op;
> +
> +        if ( copy_from_guest(&op, arg, 1) )
> +        {
> +            rc = -EFAULT;
> +            break;
> +        }
> +
> +        rc = hvmop_set_evtchn_upcall_vector(op);
>          break;
> +    }
>      
>      case HVMOP_set_param:
> -        rc = hvmop_set_param(
> -            guest_handle_cast(arg, xen_hvm_param_t));
> +    {
> +        struct xen_hvm_param op;
> +        
> +        if ( copy_from_guest(&op, arg, 1) )
> +        {
> +            rc = -EFAULT;
> +            break;
> +        }
> +
> +        rc = hvmop_set_param(op);
>          break;
> +    }
>  
>      case HVMOP_get_param:
> -        rc = hvmop_get_param(
> -            guest_handle_cast(arg, xen_hvm_param_t));
> +    {
> +        struct xen_hvm_param op;
> +        
> +        if ( copy_from_guest(&op, arg, 1) )
> +        {
> +            rc = -EFAULT;
> +            break;
> +        }
> +
> +        rc = hvmop_get_param(&op);
> +
> +        if ( !rc && copy_to_guest(arg, &op, 1) )

Why would the original __copy_to_guest() need to change to copy_to_guest()?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 12:18:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 12:18:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098640.1452641 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urbaj-0002tK-1Y; Thu, 28 Aug 2025 12:18:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098640.1452641; Thu, 28 Aug 2025 12:18: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 1urbai-0002tD-VB; Thu, 28 Aug 2025 12:18:56 +0000
Received: by outflank-mailman (input) for mailman id 1098640;
 Thu, 28 Aug 2025 12:18:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=pYI3=3I=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urbai-0002sx-2I
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 12:18:56 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2a8c9730-8409-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 14:18:55 +0200 (CEST)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-61cb4370e7bso1382025a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 05:18: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
 4fb4d7f45d1cf-61cbabf816dsm2846910a12.21.2025.08.28.05.18.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 05:18: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>
X-Inumbo-ID: 2a8c9730-8409-11f0-aeb2-fb57b961d000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756383535; x=1756988335; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=5/IgVI9LIXTuqwP0pjMkgoXDdOYNSaGQGfB3D+ISpG4=;
        b=WQE1gUactPwCLCFD9yb4yofyxCSme+M+YfLpMeHc8q2F31ax5dQwND7UwrxaMigXgz
         amWbfsGzsyCq2vRgT2hbwUx3R6lh4CrY3A4kPgoF6cNgNdyX2LYzcg1ar0RItZymNXRK
         iMTVotleNKce7W0eTYK3tjuhmlZEG12f7nxMUbjVFgtO05BomYX4VmXfuUWqanOxesFB
         iwYV5qMABCQvRstOeLvbi1HQpLlL6Olfgeip6z7puL9ajjKwKgOAnZeypsoKZ3gyh0cw
         JZlrroBAw3jj0r0DDnOIAuBStBY7DdVZBbqtslL3I9NeIqWD3S8kp29xTcsJ6UQJvJwg
         Tobg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756383535; x=1756988335;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5/IgVI9LIXTuqwP0pjMkgoXDdOYNSaGQGfB3D+ISpG4=;
        b=TjsOICR0KTspfAEvN6Smq4/xHD5NJZixFgEhv07Z1bNIIQz9Ys/dBnnRwdKRtwp939
         yOkF+uWBGfDfM8lJV4Jgjcz5bTzkUDcxh7q88uKm0AuBJEqv+W9dHhEevsD7HNxFwEw+
         hS3E0EsgJxPV1DM2XWlZK7Jol32y9MIqDW9+UIyLxNeXfxt13EKVgtjo4pnuzJl4shTC
         +J5NQNWgtvZtqhCipvI4QQJGNIMaAe3SKTjUY2kaMtpDSK7RqOBpTMqXsd4khQhF8E8j
         EaBv3uHsWGe+C3X4O3af6yi57eAWTwRWL9I4qEcIGMVfWZgnHPFfdcsCKyA4PH5kRFbX
         2TuA==
X-Forwarded-Encrypted: i=1; AJvYcCW5Ga4iNOxZ9HYVgCsQJSb+MBHy2Iq90bnPwZnwMsqO2VedxJdYBi0vUEgSGDP5XpUvCKFbfm5HXdw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxGugRZGyABA64iXixgARlSv9rEy3WNInOcQSocuf5b7B16XVqP
	3SzKJ/BU0QN1jBz0+tFLkVlBlsXMDIVkd6JV7AhCal4+wtDF5RXAOG4G8GhFEgdFfw==
X-Gm-Gg: ASbGncu3+Zm56YVWs96yeI2cBwEcOjuy1f2Jjl51BHbdgHktlUebNsoWVSScLvD4Gau
	BuiMyas1Dz/JIT4H3YMzl3qyse1oGMOmzcTLK1VdttR+DiE8eYoMbs1rpFCepvFO/uy/KuaObsG
	X8YwmGlO8oWJ/SlEReh+XZXaQpnysCEB5MnXfYVjlnAnF/C3R575cDKF0rNKnfezQjQi9cx0zCP
	UFtDTjRO2KWOYYNrdT+uznug0+5WIT/6EnH2phsSI4CfGzwXgR6A9vf0PieO623jpcSns92kSPu
	CZ2h9vABrPsW4qUpcT+2/2VVf36jsZiu2oypq7L78olCnz3hvkKEEyVkG4tL+wiaxuTp9T0ZeSn
	5zKdbHBPIlYi1XI51AUV+OrPnRoOomGXcuNPZQCwwTYNgFzMKOI90B93D2vOinxEVNJPkvsrsVH
	WpLnXza5TxmA1tWk2PLQ==
X-Google-Smtp-Source: AGHT+IHJW0YcvbMS3ZjUUSmcnQX1eEVseNdd8tXdVSlhMaOjAYHhXPGEpo+eSyFg2OgYFi9YEBt5DA==
X-Received: by 2002:a05:6402:358a:b0:61c:6fb9:c83d with SMTP id 4fb4d7f45d1cf-61c6fb9d0c6mr10762379a12.7.1756383534649;
        Thu, 28 Aug 2025 05:18:54 -0700 (PDT)
Message-ID: <0354ddce-6607-4921-bb16-809322f3792f@suse.com>
Date: Thu, 28 Aug 2025 14:18:53 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 2/9] common: Isolate XENVER_get_features into a
 separate function
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: <cover.1755785258.git.teddy.astie@vates.tech>
 <0bbc0f2df1853bb60f4e93c55d1a0953c6a72496.1755785258.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: <0bbc0f2df1853bb60f4e93c55d1a0953c6a72496.1755785258.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.08.2025 17:25, Teddy Astie wrote:
> Make do_xen_version more readable by moving the main XENVER_get_features
> into a separate function.

I can't spot much of a readability gain, to be honest.

> --- a/xen/common/kernel.c
> +++ b/xen/common/kernel.c
> @@ -569,6 +569,50 @@ static long xenver_varbuf_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>      return sz;
>  }
>  
> +static long xenver_get_features(struct domain *d, uint32_t submap_idx, uint32_t *submap)

Why "long", when you only return "int" -errno values?

Speaking of "long", why such long a line?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 12:21:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 12:21:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098658.1452652 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urbdT-0004ha-ED; Thu, 28 Aug 2025 12:21:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098658.1452652; Thu, 28 Aug 2025 12:21:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urbdT-0004hT-Bc; Thu, 28 Aug 2025 12:21:47 +0000
Received: by outflank-mailman (input) for mailman id 1098658;
 Thu, 28 Aug 2025 12:21:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=pYI3=3I=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urbdS-0004g4-0R
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 12:21:46 +0000
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com
 [2a00:1450:4864:20::636])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 90063bb1-8409-11f0-aeb2-fb57b961d000;
 Thu, 28 Aug 2025 14:21:45 +0200 (CEST)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-afcb72d51dcso122045166b.0
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 05:21: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
 4fb4d7f45d1cf-61cc944f1e1sm1849377a12.19.2025.08.28.05.21.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 05:21:08 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 90063bb1-8409-11f0-aeb2-fb57b961d000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756383669; x=1756988469; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=VAbveMvrYakX2Q6GB3F/CnIDOavA7tm+QqoN5PlXxf0=;
        b=FxArF13PLzfhhIyRTQGsEBm692h2yprur+moDqK0pmJ5n3ZAQaMQv/DuEbcRgd7Ynx
         kI/ZZoteV7+S47zLtWieTuCkNo5iWtwYhJEi9rchpacSkHwG5aGueDwxMgu+BaUa5GTl
         zOj45eaWD6K1xU1ZL1OqgBub3gfYXwX1vGJJLZQngCHwnJY574sYgY5DAz70J2H1wbjB
         ZisRnoddaO4lEMZM91NmXoY+FFcEK+QCT80/ThFqBFmE/Z3/4RTFb5CAburtBcwXe8F4
         jU6e0Re494ZwluFcjh7+taISxLmEWO8I5y/gKShD2at5lXAcIAOk2C04Rb8kwv+0Dagx
         BDNg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756383669; x=1756988469;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=VAbveMvrYakX2Q6GB3F/CnIDOavA7tm+QqoN5PlXxf0=;
        b=ZIu06Ubjxa8sXELpFnZKfK6nKw3atTHDV1dS9tjvAywAVXqHiaCzcCIhG8vxCPFo6Y
         +I20Pb8cAxfgQF4HrCQgZ8WX2iak4cnQeqgO8ynqdFOzpCYfFW+8aLaFvE98cnsVcvK+
         GAlfi5mH2W0XB8I38smFuvAPI6Ec9cbdvShlMWC3LpHA11PGdNkCoL2Vk+hEhPDLSjm5
         EUa6Pkn+Hov/2dTdD8EqinR76fxgKIJKhWtzPRKI4LMnAfMm6rkzTMFdJVJAsST/g4Cd
         3ExYCEItRaaYZ/O1uEE7+mvoniHZ9qihgMOtyhCwFhyk4TkZgOeNplU7E+o3IYmVS6qO
         JHVw==
X-Forwarded-Encrypted: i=1; AJvYcCWpWw1li7451jki8qKQUwIo/zA8RTAuq6dthefv+iY8FVI3EDeEGX3OlEyy4FS8DClFUT5eGLMzpC8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxMMagXMdHjKntZf/ojvHB1CdbdeyMIVZ5IF0rquDI0cS4gZBOt
	xszSv6vSJrzf5TCL3IC7hK9SAEudAYDxFTzPlC6GTFbeOs9wjyWZUjbOUcPvtNpqbg==
X-Gm-Gg: ASbGncvTWR0gGmv27pTBYQwdBb2YGjSXYHYITahy8QnsNORlm8ca4+Jw/ruWCNEGpB1
	y4jZp8Or7ksYll4hBjSVIT7THmse5UWk6OT5gUObEMCLzi0xyU/lOApb1AoTJ3JZd816XniJzrp
	v6YAZPDpxxjrGU0y/Z7wKxu/GLzVYMXeNGVGSefryVZ6QX7089dw8/ddEhMGa4rgYP6srZzmGrP
	IixdLj70ER52Pb9D+C4jq6CtNmJPmAnWfQ4uT4hDmIRyuHpUAjs4uvpMssxGvF30exGZU/0gxmD
	00qoSnoaSNloRBaldMbvTFzQuMG/UyiJzw7A/YspZ4q7cT6qhIVNAeLhZS/xBpoMt8TWKKBszIJ
	8tm0xRRI3ng5k4QZWA2gA7wExUDxYFOe3x+AxQN+0HY4VdYnNySiEo/tvwtKushJloyIv3gzNCa
	b05bCo+L8=
X-Google-Smtp-Source: AGHT+IG9C5PEdqGY7hK4L95H/n+2P8NFHyMlOJQgzHmWDsi/fsFovCsIX5wyKxg6Ld1MMMPkJyL35g==
X-Received: by 2002:a17:907:985:b0:afe:6648:a24c with SMTP id a640c23a62f3a-afe6648c0damr1393627566b.52.1756383668817;
        Thu, 28 Aug 2025 05:21:08 -0700 (PDT)
Message-ID: <478ab6ba-1ae9-4be0-bdf3-a62ae4b54acc@suse.com>
Date: Thu, 28 Aug 2025 14:21:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 3/9] common/grant_table: Use direct structures instead
 of guest handles
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: <cover.1755785258.git.teddy.astie@vates.tech>
 <3443dc8528075ce8ed8dd89ee5d0b78515c81e8e.1755785258.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: <3443dc8528075ce8ed8dd89ee5d0b78515c81e8e.1755785258.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.08.2025 17:25, Teddy Astie wrote:
> Make these functions work with hypervisor-owned pointer rather than
> guest handles, so the function parameters don't have to live in guest memory.
> 
> No functional changes.
> 
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>

Unlike title/description suggest, this only touched two out of many sub-ops.
As others don't lend themselves to your goal, that makes things overall
inconsistent, for a questionable gain.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 12:27:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 12:27:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098671.1452662 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urbiU-0005Y4-5Y; Thu, 28 Aug 2025 12:26:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098671.1452662; Thu, 28 Aug 2025 12:26:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urbiU-0005Xx-23; Thu, 28 Aug 2025 12:26:58 +0000
Received: by outflank-mailman (input) for mailman id 1098671;
 Thu, 28 Aug 2025 12:26:57 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=LvL0=3I=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1urbiT-0005Xr-BI
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 12:26:57 +0000
Received: from mail-lf1-x12f.google.com (mail-lf1-x12f.google.com
 [2a00:1450:4864:20::12f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 482b5bda-840a-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 14:26:55 +0200 (CEST)
Received: by mail-lf1-x12f.google.com with SMTP id
 2adb3069b0e04-55f39c0a22dso999401e87.1
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 05:26:54 -0700 (PDT)
Received: from [192.168.0.110] ([91.123.151.69])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-55f35c9a21fsm3307228e87.128.2025.08.28.05.26.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 05:26: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>
X-Inumbo-ID: 482b5bda-840a-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756384014; x=1756988814; 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=WIUl6jzlU4kobRnbqVovL8x7qcBFxpRgts/Sh7PKryo=;
        b=njDCYXcuQpkoT3HE1RonKwKiK6tRAUBnjIhKueX6IsjCNwd14vczPfaDfg0Y8oOcyK
         gkjIdY4KonjBnNk7ezhDeZusxkHhYCnO5y8+3+pB+mmsOI41lsu7p9ozl86VjzgtBV7I
         52fG4eCFpmxfAsfrfXJ21r0UP2Zl9Ndufs6B7whTIhbUWdBlq5pNLdAsu/dJ2GD3KMgl
         3WhSMdHyxYvXKaQllVdsCrEzx5xjUrqSOwaoFXtYyvZwlSxQW9Xdpc0O4KU/nbfIxFgo
         17R/TZwkh7dD93PCfwJv+ZTB2aK4MAALp78A/dUg16bLdFV39mFesqBbuffoy2n5TbD2
         jzQQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756384014; x=1756988814;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=WIUl6jzlU4kobRnbqVovL8x7qcBFxpRgts/Sh7PKryo=;
        b=N83r3hepjJdb63rvt0mpYLguDwAVBjM18waI1dveW7kLCDKtL7/Mxj0+4OhPvX65u1
         2UwXfAEq540z67kicILsfWD/P2OC7965CLiCyKBSbtieY+4ZTQzXTSEHA4Ox0MboH1RB
         k9diDyedH7F/yO3XGCqpSp9NSTriGFqffxxjudcvWjxyjClqRtwI9nH6miAMNnKc6byh
         ZxbyIkPw5dm9hj/7pjdw9PHbFL8jFmfoj6Cz58s8kwCPwvanJIcRdfo9vEJyatqXc0Wb
         zSfj9h26oB9kJGzK/2izcDxWFakk8YDVh5xd7JQi2KRAD2kn+h3FsI3SejD3khQhZ7SA
         4MUA==
X-Forwarded-Encrypted: i=1; AJvYcCVH9jN3WVF3MklxmdhkTRf/nf16Qx0FzJ1RA3rKOVyncnhwRxqs/LnhuGl+etDIgF2TNNgwphFyXYo=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yws7AqRpc/nVtO9yYNdkJcw6orSMKPdTUy5RDElPI58bsRxzS2b
	wxwHfBUwC8bVWpK/9xZkAYZCLl3cF75zV4E56fiIl4n90Ij9u9nSSo3z
X-Gm-Gg: ASbGncvCjVsdaq/q830NF26S0H8T5hZ3T1+BzSyHptuMx2z+g4ndkPVr8q+5zP3hY2W
	+DU+tPTI+VuSpJ+0ugd/fGZgsyxs4Y/uabeSzFymlmTfBf069fuwhZsORm9nda1Yv6zgx2N2BSh
	sAxwdhDslOYEifJ7LHwZnQteopVPOlrB9i9NRpp6b0JcGE68nzNC+DWP3+xC/cq0Kuun+LHUsrV
	diXnmqnZaeujc0IYb+zJOxCLh484QgqPrC7GUsnWkPJOouCRByCmuZDoOwhn8eAS7fN3mypJBzc
	SxW8NOWmTsy5kzJ6ESSzD+fusmaX9+d77GTMc265ply0kp7xahtI0GLhRCpF/0GKfWZs4MJer1H
	4h2k4/Uplm+ApjqTTs4ERL/aaaA==
X-Google-Smtp-Source: AGHT+IG6ZZX8dIHtyQxamVbeZl/7OEn6mJ2rOHEHQzdM1+XhFSRatDhklwKbSPydGqnWFFKE4DeT1Q==
X-Received: by 2002:a05:6512:4201:b0:55f:49af:d5 with SMTP id 2adb3069b0e04-55f49af0492mr3827924e87.20.1756384013533;
        Thu, 28 Aug 2025 05:26:53 -0700 (PDT)
Message-ID: <75c4a280-cdb0-4004-8793-2d6cadd50c25@gmail.com>
Date: Thu, 28 Aug 2025 15:26:52 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 03/12] xen/arm: vgic: implement helper functions for
 virq checks
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1756317702.git.leonid_komarianskyi@epam.com>
 <65b148aea56b1a35fa061b0d8284584da97153a9.1756317702.git.leonid_komarianskyi@epam.com>
Content-Language: en-US
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
In-Reply-To: <65b148aea56b1a35fa061b0d8284584da97153a9.1756317702.git.leonid_komarianskyi@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 27.08.25 21:24, Leonid Komarianskyi wrote:

Hello Leonid


> Introduced two new helper functions for vGIC: vgic_is_valid_line and
> vgic_is_spi. The functions are similar to the newly introduced
> gic_is_valid_line and gic_is_spi, but they verify whether a vIRQ
> is available for a specific domain, while GIC-specific functions
> validate INTIDs for the real GIC hardware. For example, the GIC may
> support all 992 SPI lines, but the domain may use only some part of them
> (e.g., 640), depending on the highest IRQ number defined in the domain
> configuration. Therefore, for vGIC-related code and checks, the
> appropriate functions should be used. Also, updated the appropriate
> checks to use these new helper functions.
> 
> The purpose of introducing new helper functions for vGIC is essentially
> the same as for GIC: to avoid potential confusion with GIC-related
> checks and to consolidate similar code into separate functions, which
> can be more easily extended by additional conditions, e.g., when
> implementing extended SPI interrupts.
> 
> Only the validation change in vgic_inject_irq may affect existing
> functionality, as it currently checks whether the vIRQ is less than or
> equal to vgic_num_irqs. Since IRQ indexes start from 0 (where 32 is the
> first SPI), the check should behave consistently with similar logic in
> other places and should check if the vIRQ number is less than
> vgic_num_irqs. The remaining changes, which replace open-coded checks
> with the use of these new helper functions, do not introduce any
> functional changes, as the helper functions follow the current vIRQ
> index verification logic.
> 
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
> 
> ---
> Changes in V4:
> - removed redundant parentheses
> 
> Changes in V3:
> - renamed vgic_is_valid_irq to vgic_is_valid_line and vgic_is_shared_irq
>    to vgic_is_spi
> - added vgic_is_valid_line implementation for new-vgic, because
>    vgic_is_valid_line is called from generic code. It is necessary to fix
>    the build for new-vgic.

The comments I provided are addressed (thanks), so you can add my:

Reviewed-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

[snip]


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 12:30:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 12:30:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098680.1452672 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urbm1-00071B-Kh; Thu, 28 Aug 2025 12:30:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098680.1452672; Thu, 28 Aug 2025 12:30: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 1urbm1-000714-Gn; Thu, 28 Aug 2025 12:30:37 +0000
Received: by outflank-mailman (input) for mailman id 1098680;
 Thu, 28 Aug 2025 12:30:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=pYI3=3I=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urbm0-00070y-HI
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 12:30:36 +0000
Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com
 [2a00:1450:4864:20::632])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cb2efa58-840a-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 14:30:34 +0200 (CEST)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-afebe21a1a3so154360766b.0
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 05:30: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
 a640c23a62f3a-afe91744c66sm730667266b.88.2025.08.28.05.30.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 05:30: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>
X-Inumbo-ID: cb2efa58-840a-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756384234; x=1756989034; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=bsrTc/lA0Nn9E7khQt++ebnJPcbrN258ahuu2t+++8s=;
        b=HHK9o4eUP/D09u8xikoiODK0A5c2XEBXVZgickLuF5dmYc83oOPLyfuEQSkKjJzOmr
         ZpW5u5BbopmsEgeKO6abfoc44QJRDjeSFlq6cyUeGsz5D87iEkGdS4BL+6YsYrUQfgIe
         93eIkwswSWR950lRCZPy2N5vr5Tjdv1DOYMo/kOCUXoceWCTFcHRTVr6WAb0OCOwDsLR
         1BykrZY7tz91wbOBAVZdWt0geEhWzcfzYXdus8hQNejE0aK40DgEbY4UQ4Ko/nZIKko2
         pVoIaChINBkDwOoSU5/Ng9+6FWfiDouNB36Y+BRFbn5B1C0glfIYO7EyG7VZnGGa+jo9
         wozg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756384234; x=1756989034;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bsrTc/lA0Nn9E7khQt++ebnJPcbrN258ahuu2t+++8s=;
        b=MOzeBfnNFGkpnrXJxCChhX+d+GvVAPAT5fF17KOh2bb/7EG9yvDJdGMdyINzSUB+/d
         9T2MuzRs2MEDT0LhjWjBn0v0I7zMiV3jWCnJuz1QUzHxMKT4l8SzRMUDKoEBeSads8os
         UlIBXdOPRZqNY/oKfihjvFciNhANs43AGWi1lbkZP4SfeKf1VRIxYnlj2lQuqMMExMX7
         2jYIBrm+QBLifr5/WWUMbHuRAlyaa91HidrccJ8qMKlb78w7EVlErCzsIFJa7fmwo814
         ngCnJoZIQUqGfaVl+LEZSAIAo29nWsquAt3s79w8d+M3ZPru5ZqJ+H0/Ay9mXjtvStna
         CooA==
X-Forwarded-Encrypted: i=1; AJvYcCUL7ZAnYjDSBE88bGCxHq6PvjxZElZ3OyiAMwClGPB21Ok6q5TJz6uRdLXsqxTCCWFyk1J/CPHTWuc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxHFsIzjZ3x2U1tK+2gZGLWhNpygf2u7rjE32sl/p4N6VIMnEjM
	EViB+XxzJ7fYkby6FoKwszqPDlXNiWIoX+gWBhhkgzkBo6b06Mu7C298jDWqj09rEA==
X-Gm-Gg: ASbGnctODhhFsWo860K0ucNRetP3fgHh4ktn+HfKqZh9kXzLjjJia5PXgr68+YLRqjv
	q7V41j/JNn5mszBw4c6xN6iIirPvGHnzt5DomfEsckCKbulErxmeCXc6iY+mhIn/xB65CgITb3e
	De/Ks0bPKjwuyPSkZuXKMufpOSb84hChBtyy13bA4slMBOte53nGsqyMJBXxWj0TSqRGGgHp4mL
	JrmiaSI1ionWLlo9zONlrnw13LDjTOo9Hbs+2tV/Gb4CA5swkCrnL2JOUxg5CxuBBP2GP/nHLkt
	iSvrc1namKvDc9Lf3AHgEpo4pg6b8NoztVST7yc6I8ZUWFeLxvVP8W0mrTaLiCzo6RsCo8yDwoo
	D4WrzngAS+LONIg1J6hDfaTVBB3vTQXNg0/3IYo+U2tmss4bwbGfwOd7DFQZameV5GHYO889ms8
	/Y0+urBa2DVqDXeFuyHQ==
X-Google-Smtp-Source: AGHT+IGl/VOwfBb3yrz4uQ7aDoEFj66G4Ki8YemkEegpypeMpHi3M6jS7MZr5BwFxkS0brp3t6G3pg==
X-Received: by 2002:a17:907:7ba7:b0:af9:c31c:15fb with SMTP id a640c23a62f3a-afeafecc71cmr913736366b.12.1756384233805;
        Thu, 28 Aug 2025 05:30:33 -0700 (PDT)
Message-ID: <5ba550db-5e36-4d98-bce7-cbb3e2d874b9@suse.com>
Date: Thu, 28 Aug 2025 14:30:32 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 4/9] hvm: Introduce "fixed memory layout" feature
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>, Juergen Gross
 <jgross@suse.com>, xen-devel@lists.xenproject.org
References: <cover.1755785258.git.teddy.astie@vates.tech>
 <640223e5e7ee18a73f62152dd27883bf5978fbfe.1755785258.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: <640223e5e7ee18a73f62152dd27883bf5978fbfe.1755785258.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.08.2025 17:25, Teddy Astie wrote:
> @@ -686,10 +691,31 @@ static int domain_construct_memmap(libxl__gc *gc,
>      /* We always own at least one lowmem entry. */
>      unsigned int e820_entries = 1;
>      struct e820entry *e820 = NULL;
> +    uint64_t highmem_start = ((uint64_t)1 << 32);
>      uint64_t highmem_size =
>                      dom->highmem_end ? dom->highmem_end - (1ull << 32) : 0;
>      uint32_t lowmem_start = dom->device_model ? GUEST_LOW_MEM_START_DEFAULT : 0;
>      unsigned page_size = XC_DOM_PAGE_SIZE(dom);
> +    /* Special region starts at the first 1G boundary after the highmem */
> +    uint64_t special_region_start =
> +        (highmem_start + highmem_size + GB(1) - 1) & ~(GB(1) - 1);

That is, inaccessible before entering PAE mode?

The open-coding of ROUNDUP() also isn't nice, but sadly unavoidable as long
the the macro works in terms of unsigned long.

> @@ -769,6 +805,40 @@ static int domain_construct_memmap(libxl__gc *gc,
>          e820[nr].type = E820_RAM;
>      }
>  
> +    /* Special regions */
> +    if (libxl_defbool_val(d_config->b_info.arch_x86.fixed_mem_layout))
> +    {
> +        e820[nr].type = XEN_HVM_MEMMAP_TYPE_SHARED_INFO;
> +        e820[nr].addr = special_region_offset;
> +        e820[nr].size = page_size;
> +        special_region_offset += e820[nr].size;
> +        nr++;
> +
> +        if ( gnttab_frame_count )
> +        {
> +            e820[nr].type = XEN_HVM_MEMMAP_TYPE_GRANT_TABLE;
> +            e820[nr].addr = special_region_offset;
> +            e820[nr].size = gnttab_frame_count * page_size;
> +            special_region_offset += e820[nr].size;
> +            nr++;
> +        }
> +
> +        if (d_config->b_info.max_grant_version >= 2 && gnttab_status_frame_count)
> +        {
> +            e820[nr].type = XEN_HVM_MEMMAP_TYPE_GNTTAB_STATUS;
> +            e820[nr].addr = special_region_offset;
> +            e820[nr].size = gnttab_status_frame_count * page_size;
> +            special_region_offset += e820[nr].size;
> +            nr++;
> +        }
> +
> +        e820[nr].type = XEN_HVM_MEMMAP_TYPE_FOREIGN_REG;
> +        e820[nr].addr = special_region_offset;
> +        e820[nr].size = MB(512);

Can we really know this is going to be enough for all use cases?

> --- a/xen/include/public/arch-x86/hvm/start_info.h
> +++ b/xen/include/public/arch-x86/hvm/start_info.h
> @@ -99,6 +99,13 @@
>  #define XEN_HVM_MEMMAP_TYPE_DISABLED  6
>  #define XEN_HVM_MEMMAP_TYPE_PMEM      7
>  
> +/* Xen-specific types (OEM-specific range of the ACPI spec) */
> +#define XEN_HVM_MEMMAP_TYPE_SHARED_INFO   0xF0000001 /* Shared info page */
> +#define XEN_HVM_MEMMAP_TYPE_GRANT_TABLE   0xF0000002 /* Grant table pages */
> +#define XEN_HVM_MEMMAP_TYPE_GNTTAB_STATUS 0xF0000003 /* Grant table status page (v2) */
> +#define XEN_HVM_MEMMAP_TYPE_FOREIGN_REG   0xF0000004 /* Suitable region for grant mappings */
> +                                                     /* and foreign mappings */

I question it being legitimate for us to introduce new E820 types.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 12:33:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 12:33:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098693.1452681 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urboK-00086w-Vu; Thu, 28 Aug 2025 12:33:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098693.1452681; Thu, 28 Aug 2025 12: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 1urboK-00086p-TJ; Thu, 28 Aug 2025 12:33:00 +0000
Received: by outflank-mailman (input) for mailman id 1098693;
 Thu, 28 Aug 2025 12:33:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=pYI3=3I=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urboK-00086j-4h
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 12:33:00 +0000
Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com
 [2a00:1450:4864:20::536])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 210f8c1c-840b-11f0-9491-8750323bac66;
 Thu, 28 Aug 2025 14:32:59 +0200 (CEST)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-61c325a4d18so1472476a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 05:32: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
 4fb4d7f45d1cf-61cb77ec864sm3170381a12.37.2025.08.28.05.32.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 05:32: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>
X-Inumbo-ID: 210f8c1c-840b-11f0-9491-8750323bac66
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756384378; x=1756989178; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=vqpQLK0KXFsen3u58tnxuWjnhzKAl1RM+ZSnXpY3+7o=;
        b=MjBBSqT9xOeAjMBtqxcBrtwCT+9wiwkKdg2SiPb9XXJa2jQNsNzWO1RXWfFnVWlGaj
         hjzwCvK/cOYkyhkIU+KNGjVv35WT5nUQ72LVKlbSNciTezZoasgwDzZo8doq1zc1dlGp
         T5N5FzndqZpx/nmo9XCWhnkQmIGgfpoh7pNuuzB0E5Vsy2ad3oSzJ2ULsKwnl25CDF8U
         8NkvCAl5Rhq8RRgZs2L2EbRnggP0RkLN7At8+OqiY8p8lfjz4zOKrTpf5qa1NTk2+kxb
         Xblh4jhP1tlgcMr4odvWBPZSzKyJFRiVnzLdSd5WdoeB/JYGELtqAkQE6rAz0NOt5E4O
         QFgA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756384378; x=1756989178;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vqpQLK0KXFsen3u58tnxuWjnhzKAl1RM+ZSnXpY3+7o=;
        b=plo9Rw3OB86KW3Fklyhtq353HfMCAvpSAXs41GVrxsLT4C7DF5refSZlyOhTVulm0j
         0BI6iQcnzDbFjqqouG4rbeUGCCU8BBH1BWDEB4bqInr0WPZlVmvvIYssr8HmaTN4JJ+8
         0p8qWatmGYlUC2tHarTMfGSoy1AVOkOhwCkcsTxT3ypgxBUIZY+3o75lWVF6k17orfAi
         35pNAF1YgqamKBOVNrUdWSN+1PuzybDamdTGLt+bhpijxWojFaf2plWtW1UnbOxm1x4a
         nL/pvHJ37LT/2NaE9AOyekSzUysO+5NGQiVtwd3+10wySjGgE/ecnf6e/PmKspJ7FwfZ
         dWYw==
X-Forwarded-Encrypted: i=1; AJvYcCX5XcaKFnsDto9xJ1V+wBZ/aBubdPvb8ttnZfaDTmeIbCsz9DpBDLuugMH25Q3/AsOARA3eRwn28i0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzHufLPvvFQhOBhlo4+6t1mzf5Dbo5L9TjaVKbeM/en1qs4QicM
	F+4Zk7nyQZ+Axybgc8HPIJGt2/j7i7X8qrLGcC6E0Ao4zrjVikfyah5ucCc3mbZR8Q==
X-Gm-Gg: ASbGncv190lqhivGp/L88Bt3vtvuhCplcCqkapTjiLiTZei9CsyVwc5wXiyB8/5fiwu
	S3tcSlUihkolxFl4+FMQow9PoyxlwazhYTcKqwcxrsju9LiaAI0jLs/CfG4HMrN66rYt+1XvM5g
	QKgfEp9QAhN6k/Vl8WSfq58sLcZ4oq32tIACRq3HWGJyFnTlr1HQmXuPmfIy19mk7H3/kIE3BSC
	QjR14upIp8Z49ayEZCnacrTe6xGpQXp//+sF+sFdyi86X+vHatUWGMA0VLc4Xsd50h1QVe4+9UL
	sWkVhM9l28/2wVh8jYSt5P0R6Rkird7aqqQaq0/ACuDO2xnPEfhs3rRfnv4k5+rJPv5U3dqqurq
	yemfyY8yhaK03m4JVH2ENFzEfxAkBdGE1yehUl0wh+vnINpxLjZZXbqEZVPOXqOagjwcs16jwm6
	o0lq/vWEAnlX5mxlbyGA==
X-Google-Smtp-Source: AGHT+IF8t+njEW28EbojKSCWJ6XRIIGGTM05NZVz4ZayJs+svhSEYxn88F0A7ySqAEz+P/CT9v3Tow==
X-Received: by 2002:a05:6402:26d3:b0:61c:7f7e:1e with SMTP id 4fb4d7f45d1cf-61c7f7e2182mr9985022a12.22.1756384377815;
        Thu, 28 Aug 2025 05:32:57 -0700 (PDT)
Message-ID: <2fcdb264-15a3-47f7-915d-83d1c1e06765@suse.com>
Date: Thu, 28 Aug 2025 14:32:56 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 5/9] docs/x86: Introduce FastABI
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: <cover.1755785258.git.teddy.astie@vates.tech>
 <64800d22220f31bf052713ce61ecedeaa8a36b6f.1755785258.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: <64800d22220f31bf052713ce61ecedeaa8a36b6f.1755785258.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.08.2025 17:25, Teddy Astie wrote:
> FastABI is a alternative ABI designed with performance and coco-enabled
> guest in mind. It is register-oriented instead of refering to C structures
> in the guest memory (through a virtual memory pointer).
> 
> It only focuses on kernel-side hypercalls, it doesn't aim to provide toolstack
> operations.

And even there it excludes certain pretty relevant ones, like many of the
gnttabop sub-ops. As alluded to by a reply to an earlier patch, I don't
think having an ABI for just a subset of the hypercalls is going to help.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 12:36:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 12:36:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098703.1452692 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urbrO-0000Db-EU; Thu, 28 Aug 2025 12:36:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098703.1452692; Thu, 28 Aug 2025 12: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 1urbrO-0000DU-AZ; Thu, 28 Aug 2025 12:36:10 +0000
Received: by outflank-mailman (input) for mailman id 1098703;
 Thu, 28 Aug 2025 12:36:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=pYI3=3I=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urbrN-0000Cd-BM
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 12:36:09 +0000
Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com
 [2a00:1450:4864:20::52b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9129f939-840b-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 14:36:06 +0200 (CEST)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-61cbc8259fbso1334602a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 05:36: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
 4fb4d7f45d1cf-61cb77ec864sm3175065a12.37.2025.08.28.05.36.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 05:36: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>
X-Inumbo-ID: 9129f939-840b-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756384566; x=1756989366; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=tLCP8SA5dpRIIPjCzuLJhZmjGW4fmF8XmRZ+tuHCizs=;
        b=BklZ9t8fCEBWqo2AFDbvc3bFOFo/MbcpsaGeg5Goo+PkreDcpReXic5ChNZdIV5XpD
         2hVAvWOVamp/FCyitioh4UhQUGlfv6NfgvbCD0ivJE7vFli65yHNG5KNyTPHWIU0Vcb7
         Naq17xyHnQzIBOZnMbRfcERDGiFf84pnMy2WSQD/rADiIkECg5GaixNz17w8+xUc2VL7
         zBpWVSBTuG1wbDEAdqf9kXoJZrfjQ+xWiGO2J4yz6yUodv+luR9klskhtJVtBZIaFcKK
         12jH8XdkpfoqwzurgfX7IMT4NEZNBW+tbit2jHY5bfB33d3wK+kAD9DbQyWRvRrOPDZY
         TTug==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756384566; x=1756989366;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tLCP8SA5dpRIIPjCzuLJhZmjGW4fmF8XmRZ+tuHCizs=;
        b=nZZw1Au/VAyMQeRM1Qw/jTJXpCioPoQpLOxrFssWiIeSYHXlQY89oIn6MG9G4GYDbb
         vSvcwHwN0h4RbCxzgejMZT9FRa2oFbpK9o3OkL8qSwMEbpSNi1WGSdGFFVvu8/iik3Jx
         yuuzYk+Zny4acpAHZC6dGLwZ+jW1p5kKzzR527Krx6ftAWtAFT4t5h4byq0lQNt5lqtO
         +jgCHEYCudSkWxRD34lh+hWcv9oTciIzvke0sdm9EeI9fOlsWtOm2J4KmGYUxusEv9RJ
         iSDfRlbqb52x0v66t1pjDEm7e0t7xwb44+U8VPUZTSZ4UboIpqq/KPHYshUVaHONI25/
         xcuQ==
X-Forwarded-Encrypted: i=1; AJvYcCWqu6r2xklQyTeEnFdHa3L/5B+4H4XDOdkxuo7liNpFLWpeDKxeV3hu3A9TFwpukA3DPiRhJPKhz70=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzRXrb9BiS947lReszJYtKzrIEHS7Czt445Hl4YWDGMrlsLvSrx
	+HzqoqSYJQCQrtv6mvbZ3bomIurXCrgJlvG+Uh6IUKskpHLavmUsyDDXQLAjAuvAVeOVwofgNBu
	/7zs=
X-Gm-Gg: ASbGncvnwjDAWlXLEau3rYXXmHcW7wxt6d7or5Vr1Hh76uyBi04mcYCzcjCmq/Oxg1G
	zQWhjM8cFUmHBauZ3o5wgehu3OAEFkJA3tv8YU8HKmNGSj8Xcu7c3wyaouPLkcbSKi/1Zw2yd35
	Gfpsw8BXc9N7MxQM5h/++RT5nQ5jHApFC+IQhEla43O2R2wEJM3LzvC7f2VFKYqIv2SqfxVgIo4
	yZnyhsE4afSWqAbr1DneL5yZdEXS3Y3utYDson/1SGMiz423SEuUVod/YyfBEdegcXzIix9zabk
	ZkCxxD97DaDiXbqOkeSOmTjIrZettLDkIJWS1cKHvB/1BMt15z982/PeKEb07Prt0W4MfxKUjBA
	68c0YB7NFZ1DujTXQBgglDwP0z1I5VMaRJf309ZtUKsaje54mg5komVkvt4BOYYpQaYnJLv+Ve7
	7g4mIwwKo=
X-Google-Smtp-Source: AGHT+IHtd1867US+I8nqSqJAAMzWsBtOABEERJ6Zl+aJI4yIJ8DJBJdKTq1FwRIdgayv1YJh+vlZNQ==
X-Received: by 2002:a05:6402:3492:b0:61c:6b3a:ce88 with SMTP id 4fb4d7f45d1cf-61c6b3ad602mr11748404a12.8.1756384565344;
        Thu, 28 Aug 2025 05:36:05 -0700 (PDT)
Message-ID: <24124bb1-c03d-469f-b668-3945c35e05c1@suse.com>
Date: Thu, 28 Aug 2025 14:36:04 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 6/9] sched: Extract do_poll main logic into vcpu_poll
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Dario Faggioli <dfaggioli@suse.com>, Juergen Gross <jgross@suse.com>,
 George Dunlap <gwd@xenproject.org>, xen-devel@lists.xenproject.org
References: <cover.1755785258.git.teddy.astie@vates.tech>
 <812a818e263cb8287634cea5241fe076beacc39f.1755785258.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: <812a818e263cb8287634cea5241fe076beacc39f.1755785258.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.08.2025 17:25, Teddy Astie wrote:
> do_poll takes sched_poll* as parameter, but that's actually in guest memory
> (so it's more a guest handle).

No, it's not, or else ...

> --- a/xen/common/sched/core.c
> +++ b/xen/common/sched/core.c
> @@ -1437,21 +1437,13 @@ static void vcpu_block_enable_events(void)
>      vcpu_block();
>  }
>  
> -static long do_poll(const struct sched_poll *sched_poll)
> +static long vcpu_poll(unsigned int nr_ports, uint64_t timeout, evtchn_port_t *ports)
>  {
>      struct vcpu   *v = current;
>      struct domain *d = v->domain;
> -    evtchn_port_t  port = 0;
>      long           rc;
>      unsigned int   i;
>  
> -    /* Fairly arbitrary limit. */
> -    if ( sched_poll->nr_ports > 128 )

... this access would be a security issue. The handle is ...

> -        return -EINVAL;
> -
> -    if ( !guest_handle_okay(sched_poll->ports, sched_poll->nr_ports) )

... seen here, the ->ports member.

Here as well as for patch 1 and 3 what is entirely lacking from the description
is the mentioning of why the change is actually going to be useful.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 12:39:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 12:39:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098716.1452702 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urbuL-0000pA-Uc; Thu, 28 Aug 2025 12:39:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098716.1452702; Thu, 28 Aug 2025 12: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 1urbuL-0000p3-RG; Thu, 28 Aug 2025 12:39:13 +0000
Received: by outflank-mailman (input) for mailman id 1098716;
 Thu, 28 Aug 2025 12:39:12 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=pYI3=3I=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urbuK-0000ow-Oh
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 12:39:12 +0000
Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com
 [2a00:1450:4864:20::635])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fdb1a26f-840b-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 14:39:08 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-afeec747e60so75733766b.0
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 05:39: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
 a640c23a62f3a-afeae4ca4bdsm574880366b.5.2025.08.28.05.38.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 05:38: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>
X-Inumbo-ID: fdb1a26f-840b-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756384712; x=1756989512; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=RiMbH07W8Ix/UhvaopBy/0jMJ0gRe8Zewj6uCvPu7dc=;
        b=bNSfEEut5ZvkaOgZCFplg8cnemJQ3xIEDhBMnMOZUJKWbNYPT04xkoOpfbswOFBPAj
         Vt+Kd7KalMiMbzcqVo0b4mP9IiR20zdx3f/avMGY9UKEXJ5jhnNX2kh/H+QNp6PwvKvN
         V6rvqWWaAcZSXwLg/G0hhnkA3+6P2FaR+FHI0zDRB1kzQjpYa23qcUI9jCrZlbWWF+vK
         i7P+o68ZtZCgm0e/8zzEIZaMso7VmWEsuDJOhxq1E9COkzdFu/N0M1RPhNzpdHc5IRp6
         IuX+cqoQC0Y6EXd8noWhbZJBGjBpvHQQLmH37+9QZXgkJzXvzKrkaUfWSR0O/zx3OsuY
         Xm8g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756384712; x=1756989512;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RiMbH07W8Ix/UhvaopBy/0jMJ0gRe8Zewj6uCvPu7dc=;
        b=aY8jNQW90VfmuQ+tEWSLtNBGZ+7mS1jtoGdX/ZWFeQx6i1430zKggEP6xXpsdyY0Be
         t7f+VSWioFQ7LynAHpTw0h+FbDbzRrXjo4r2W0QeeIBPuGrn3mLHDNF3IGzGW74d77vB
         1hfUKH6JX9roAzGPhBFJzwrlAcF3JJ97/cO7lDRZuFe3n2inArFaz1uso4Qhx7bo/pNK
         59+HdynLhSF56Fu94sCc37NEqJE6YhFQTxUcMHnaqlBOXfN77MlWRAVZM8qq+43RyQXd
         CMfO5UqrIKJRU1BAlfbDOFRP34P9TZCDMuiS7tPO4ZiMRdqW3pXq+L/txMTyOQJXsEX1
         ztPQ==
X-Forwarded-Encrypted: i=1; AJvYcCV5O7vRaXJ+Kw2dr/I/pXPN1fdWYefbrH1lg7jcdovwm2gwd2SLIAg4Rf0Oec0djM+AdbrkhjmgZfE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzBqoj7JYeNxqHhYy6sW067g8R/6aTxJ94KV4kDdf79pHEUl+K2
	zN76mNaJHMrXQRfEgJnubQmQwiVxWZGk/+dfeAZJlTeVQUBp054yH1uq5uLUmCTMTg==
X-Gm-Gg: ASbGncsY9ZrFI8YXVdjv5uPVNIjqTNXg0CJztQz1yQh78VKZ7t8M9YkNyasU2ycr4in
	5cxmJvGiGdrKZlpGceIrUV21jnVTfiDf5KsiNdzciXkMAJQNyhg07HOHNlwv5/krXfIC2HOGjbS
	0TbNdg+NcWauYA8KspXi/T4m/3LXF1A128mSFi5qprQS7iAIerXqMwt/u/WKuWN9J0cfVFiLSUP
	fZQ4fkXsYrrjxJY7McOUgZZT7G7RQnZ2Iq5o47hMkN5K2cJ0JGW6B8q//ebSmWEdNybSFyTfCSL
	kNFNy7rSLvLf4roB50k6k+o/GKzFrPOAKmPhnkeBVivcyConlQGZ6yWJeFr/nMLeVzDKziId2QG
	UQDSWyJ6ipMqHU+crH5Dp+Bt98HvJxgvARrv16P+F1sOeGTLSPVU6anmhZM4V18c3kdyynAjjgd
	TKbJ376vGiyrxoCXLABg==
X-Google-Smtp-Source: AGHT+IGQdXPS3x6/DcZ8Ubj9HVB5LJq32uWzD7ls49+8F05rXtGlWT4aEJyicF1blY24xdIoVPi7cg==
X-Received: by 2002:a17:907:3cc3:b0:af9:7f4f:775e with SMTP id a640c23a62f3a-afe295ca548mr2187879166b.51.1756384708691;
        Thu, 28 Aug 2025 05:38:28 -0700 (PDT)
Message-ID: <43c65b51-ed9b-4ec5-b1dd-ae3a047cba86@suse.com>
Date: Thu, 28 Aug 2025 14:38:27 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 8/9] hvm: Introduce XEN_HVM_MEMMAP_TYPE_HOTPLUG_ZONE
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.1755785258.git.teddy.astie@vates.tech>
 <3fe81c78b95f60353a84b8394883ecfeee066732.1755785258.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: <3fe81c78b95f60353a84b8394883ecfeee066732.1755785258.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 21.08.2025 17:25, Teddy Astie wrote:
> Allow specifying in memory map a region which can be hotplugged.
> 
> This will be used by a future memory hotplug feature.

Why could this not be done the ACPI way, with the regions properly specified
in SRAT?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 12:50:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 12:50:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098728.1452711 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urc5C-0003na-Ry; Thu, 28 Aug 2025 12:50:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098728.1452711; Thu, 28 Aug 2025 12:50: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 1urc5C-0003nT-PH; Thu, 28 Aug 2025 12:50:26 +0000
Received: by outflank-mailman (input) for mailman id 1098728;
 Thu, 28 Aug 2025 12:50:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=pYI3=3I=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urc5B-0003nN-6N
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 12:50:25 +0000
Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com
 [2a00:1450:4864:20::52d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8faaa2d6-840d-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 14:50:22 +0200 (CEST)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-6188b72b7caso938058a12.2
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 05:50: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
 a640c23a62f3a-afef701f173sm34772766b.16.2025.08.28.05.50.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 05:50: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>
X-Inumbo-ID: 8faaa2d6-840d-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756385422; x=1756990222; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=KzNP+ayyNRAdeVR3KvAYoBn1/S6xf/6spDFJZf4N3Vg=;
        b=I8GnTfGOijhQHaOVSKG9V5R2vSz5QKVLfhsr8I9Qcwlix+X1cw7P8U2f7Fo/YS7FDx
         22q03f4wEQQ3byPnrM59DW8r/wz9mksYPk4I6Ztom/WGjzdMk0XzPzB8UjZ1u9mJHRko
         BCdMwBnuFy/lGa5Im9V2IFKiKD4h9aBoeXmH9wq2HkcVwGdS/2JK04KEDYmb4GEw3JkO
         5cwaSzebVijSALKwjAkexMHasvhTjswS//DndDUBehZ7LDZUC96PVKrxpjnaKtb+Fgkg
         okcTXOfY2yxBonkljPIKFqTWoEMYvQW+ys+y1WCNdoUsUwemr2lvS1YMYoCmV5nkmbCV
         0ovQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756385422; x=1756990222;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=KzNP+ayyNRAdeVR3KvAYoBn1/S6xf/6spDFJZf4N3Vg=;
        b=e26+ZkMXTh+lv2pGVLWJ09Ky9wiFGxL/QZV7fvlYHB1wMtwpJOGx6FcJIEA9dU3nkY
         NmdkmJpmIOT7JjBayjk5fwmHWQKtH2IXmYiXgVWDw+md+2UVFwSjKNf1byyzUp2vXz6y
         UcCPZ+FNAEz1D+ECbdTP9elcwciRkF974Rp95+pZq0vPWXRhpCusI3Un4Fwl0zqoIfcQ
         hfuxlqxdPkJClT5gdz8JenjtLfsTNE/cLozYBBVWIlEVfQnDELgxPgLg2MqweyXI+e/K
         8Qnf2nBW2/DdPbnngMvcBQm9OuJAdlYKeTDFmFUQ7Qp9vMVz/EKaud4Z6Soi+rPJB7It
         6Hzw==
X-Forwarded-Encrypted: i=1; AJvYcCUYOlCl0y//4cOyaU7h7eENjSDyFx9PILMPyueBUV+Cw2hXFxzjLSMlfPz2VRubr8aPKoawZNb5Lww=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyHkN0tOGsGZmwWa0s0SVOhowqIZmdd6YK7uM2ut+vM7SQGgnTb
	J9L19bYKiorBfXFEnwlmOYNcmyFucZ+JiUMmkRWUIpGYsRPaffROAZh3rVPtVPv97A==
X-Gm-Gg: ASbGncvKm5ExQNlIsaIzpGPYARROkWJJ+H1YVZpXH/PP1hmO6+VzRWfsaZDQkr/cPmY
	fVva30n0wb4PiYkRKMKm4DqqCCqw8olRsuiooFk0aLYyw05wIugK9geb+48gQLxBTFfKxUwPT7r
	VlXm5NBLfoVarBh3ykSlsrfi/eqDmA6+xlPiogdiYM6l6vwdYcuN74DklGxefJlOXdAIHiWJNvN
	f0vY5BSyPeV88/OxdhHS6MuHKsjoISV/PzHCo5Q9InbZWovyvPLNxIQ76ksV1akm7SUlpG7GnGf
	G0dVYy6Y8Rgx8hJtHFby/c09zcZPftV+xbiC5KMLu0+8I5nbQYZRKvWHVzOOQA/Vu4ZW4kiokXY
	OZTszAPTtcVOj58TkVyMpDbEtMw6NGJnxQQPERHFiJWIQzzJIOyWyRB7wCbG7bKLjxR8RQ77r8K
	eepFgUQNc7UpccXFztXw==
X-Google-Smtp-Source: AGHT+IHf7WXzdBVxWf60pg65hh/irVJV2Vh8fcfvXbcvaxUG6hCCf9zTLjRXKXWNnzpDPLfS1hqncg==
X-Received: by 2002:a17:907:c1f:b0:afe:e0f2:759 with SMTP id a640c23a62f3a-afee0f208f8mr253603066b.38.1756385422329;
        Thu, 28 Aug 2025 05:50:22 -0700 (PDT)
Message-ID: <00e4af60-6916-4a71-b797-757c1163579a@suse.com>
Date: Thu, 28 Aug 2025 14:50:21 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8 1/8] xen/cpufreq: introduce new sub-hypercall to
 propagate CPPC data
To: Penny Zheng <Penny.Zheng@amd.com>
Cc: ray.huang@amd.com, 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: <20250828100306.1776031-1-Penny.Zheng@amd.com>
 <20250828100306.1776031-2-Penny.Zheng@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: <20250828100306.1776031-2-Penny.Zheng@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.08.2025 12:02, Penny Zheng wrote:
> @@ -693,6 +699,120 @@ int acpi_set_pdc_bits(unsigned int acpi_id, XEN_GUEST_HANDLE(uint32) pdc)
>      return ret;
>  }
>  
> +static void print_CPPC(const struct xen_processor_cppc *cppc_data)
> +{
> +    printk("\t_CPC: highest_perf=%u, lowest_perf=%u, "
> +           "nominal_perf=%u, lowest_nonlinear_perf=%u, "
> +           "nominal_mhz=%uMHz, lowest_mhz=%uMHz\n",
> +           cppc_data->cpc.highest_perf, cppc_data->cpc.lowest_perf,
> +           cppc_data->cpc.nominal_perf, cppc_data->cpc.lowest_nonlinear_perf,
> +           cppc_data->cpc.nominal_mhz, cppc_data->cpc.lowest_mhz);
> +}
> +
> +int set_cppc_pminfo(unsigned int acpi_id,
> +                    const struct xen_processor_cppc *cppc_data)
> +{
> +    int ret = 0, cpuid;

Eclair doesn't like this:

Reports for service MC3A2.R5.3

service MC3A2.R5.3: (required) An identifier declared in an inner scope shall not hide an identifier declared in an outer scope (1 of 1 violation)

 violation for MC3A2.R5.3 untagged
xen/arch/x86/include/asm/processor.h:130.20-130.24:
non-compliant function `cpuid(unsigned, unsigned*, unsigned*, unsigned*, unsigned*)' (unit `xen/drivers/cpufreq/cpufreq.c' with target `xen/drivers/cpufreq/.cpufreq.o.tmp'): there is another identifier `cpuid'
xen/drivers/cpufreq/cpufreq.c:726.18-726.22:
non-compliant local variable `cpuid': there is another identifier `cpuid'

I'm fixing this up for you, but I have to admit that I'm getting tired of
doing such cleanups for supposedly-ready-to-commit patches.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 13:02:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 13:02:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098749.1452722 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urcH7-0005ve-QA; Thu, 28 Aug 2025 13:02:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098749.1452722; Thu, 28 Aug 2025 13:02: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 1urcH7-0005vX-N1; Thu, 28 Aug 2025 13:02:45 +0000
Received: by outflank-mailman (input) for mailman id 1098749;
 Thu, 28 Aug 2025 13:02:45 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=pYI3=3I=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urcH7-0005vR-B7
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 13:02:45 +0000
Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com
 [2a00:1450:4864:20::62f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 495b7dc3-840f-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 15:02:44 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-afcb7a8dd3dso58999366b.3
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 06:02: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
 a640c23a62f3a-afebac31532sm443771766b.86.2025.08.28.06.02.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 06:02: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>
X-Inumbo-ID: 495b7dc3-840f-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756386163; x=1756990963; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=2MHhUN7PYKt8aq7ePrzbS2Dv7+ER5OqQwu3bW3pKF1U=;
        b=SEb/3FPg1kOQRegMdszFe3NtssV20OsntkLeRxZC9bvkDPEJoICcp5rtZQe5Xb5i6Y
         SH8p96s2+95V7MNWBpu3pSsMltN0FVJ8FOedFAWmxD7Q9FAZ7aOdomrAPnI/zQhgAS2y
         8QQpNdvI+6Yy0WoFGjpH0XVQaH/uodIZYuyUz/1KwFF0/3VckJ7tcRRpvQ3QtGiw+i1C
         lX7mZtqV72yhELDfM7k0/0t2moezhSzCe3hrWH8i3iCof31i5MY1Fwimgbc0TVbhoVdD
         6If1nhE0XeNOsio1S4F/wgY1nfuT0njy/LuvEIH9uX87jDGjMjbfWy8als/gmb4MFPqw
         2ScQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756386163; x=1756990963;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2MHhUN7PYKt8aq7ePrzbS2Dv7+ER5OqQwu3bW3pKF1U=;
        b=gsqJtXn6uL5k7FGna+jTauzC/hqIyUqt4FFLOqn5bcJDP7o3zUvSmjcy8kFP5SNLCx
         iGkPgDAkjnmVwLwtTS/tvYmNaDkk1Uu0kzhedkNb8ZO5nKenveA7fSX4FvIs05yPv9Dj
         dnJyPGf/lwE9o789c1uvz/liYj6sPDVgQofQFR/ZlQKa+qs38A0PelxQM5E+WJy+FqS0
         ZlCzmp1uWGDw0oEJjEK/2IkP9TT8pUPZhpgRuFOGjt9DVVZObfM4ypU9yoSDMDkQzOfj
         JvHhskf90ODIo1OQeUzh496zY9knhPRnFFiLCWnZyEYj4MlKZuHRwFpMpClekVq0NtHv
         xcIg==
X-Forwarded-Encrypted: i=1; AJvYcCV92NEX+6czq/diDo/mi17NOqpBO3G7dRmZkkRcD6XShEMs+PlR8BH8QrXafGUJ8W1/4qYC1sNXCqo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzjncmQ8sh0s0HDfssXV/trcnCS4LxnmiuUTEM4bKJXU5WzADB8
	Tw//urU2wuRrt2Rjip/QGAZfT8v7eqfZMOOU81/qpRZaUq2pqysKx5UA48/x4l9VxA==
X-Gm-Gg: ASbGncuq644sQtoddYqEg6E9l3F/zjoH37qkAowc6IAgOLmA7tRKWPZcgXqVpp/Ipkk
	xwOagY1xBxVZz5ci5wh9qp7eDzmxb86TT3XO5LlPUZofP+4eLa7arsVU5IMKq/UNPghlptf1c7L
	/6vhWaqvo+6ULvAUcbfwIvcGNxd13QU7BwANYMAAlGk66xj6jD/n3jXfGk9i3dgEzo19jvRBan7
	uzGI4sv4W8EWN8woKwLLJyZg5ieKet7D5yOOh3URcG5gPWV+/wIxMcLn+jDUoE0dZ3kK0lDG/hh
	1imRAxYTaiPdIlWFgczHkYtcncl6Bu60f2wmZ83Jdynpy9L/C6tV0C/NnyKM8m3h6ChHOSocG34
	GK+RB70OK7EmcFMjp6oLbW/ro2WcAUSk50MjsfBZh7wUdhUXsUbGhEuMQeQce3Z4DfzeFUYgk2p
	COvHSk+qE=
X-Google-Smtp-Source: AGHT+IEpH9Zi8nsBgYONSHDUBQKf8jMM3Ga5LTyKP5sEyiChGi80bxc/rE4lz6HTkk4o6ESxVUU4fg==
X-Received: by 2002:a17:907:1c28:b0:afe:d0c9:8f50 with SMTP id a640c23a62f3a-afed0c99961mr380213566b.44.1756386163251;
        Thu, 28 Aug 2025 06:02:43 -0700 (PDT)
Message-ID: <7d9fd72a-39b7-43b0-875f-859a7a45c4fb@suse.com>
Date: Thu, 28 Aug 2025 15:02:41 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH v3 3/3] x86/hvm: Introduce Xen-wide ASID allocator
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>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Vaishali Thakkar <vaishali.thakkar@suse.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>, xen-devel@lists.xenproject.org
References: <cover.1750770621.git.teddy.astie@vates.tech>
 <81169a40fdc8c124b1656e451ac2e81f4e8edd2d.1750770621.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: <81169a40fdc8c124b1656e451ac2e81f4e8edd2d.1750770621.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.06.2025 16:01, Teddy Astie wrote:
> From: Vaishali Thakkar <vaishali.thakkar@suse.com> (formely vates.tech)
> 
> Currently ASID generation and management is done per-PCPU. This
> scheme is incompatible with SEV technologies as SEV VMs need to
> have a fixed ASID associated with all vcpus of the VM throughout
> it's lifetime.
> 
> This commit introduces a Xen-wide allocator which initializes
> the asids at the start of xen and allows to have a fixed asids
> throughout the lifecycle of all domains. Having a fixed asid
> for non-SEV domains also presents us with the opportunity to
> further take use of AMD instructions like TLBSYNC and INVLPGB
> for broadcasting the TLB invalidations.
> 
> Introduce vcpu->needs_tlb_flush attribute to schedule a guest TLB
> flush for the next VMRUN/VMENTER. This will be later be done using
> either TLB_CONTROL field (AMD) or INVEPT (Intel). This flush method
> is used in place of the current ASID swapping logic.
> 
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
> Signed-off-by: Vaishali Thakkar <vaishali.thakkar@suse.com> (formely vates.tech)

Not sure whether you may legitimately alter pre-existing S-o-b. In
any event the two S-o-b looks to be in the wrong order; like most
other tags they want to be sorted chronologically.

> ---
> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> 
> Should the ASID/VPID/VMID management logic code being shared accross
> x86/ARM/RISC-V ?

If all present and future architectures agree on how exactly they want
to use these IDs. Which I'm unsure of. RISC-V is now vaguely following
the original x86 model.

> Is it possible to have multiples vCPUs of a same domain simultaneously
> scheduled on top of a single pCPU ? If so, it would need a special
> consideration for this corner case, such as we don't miss a TLB flush
> in such cases.

No, how would two entities be able to run on a single pCPU at any single
point in time?

> I get various stability when testing shadow paging in these patches, unsure
> what's the exact root case. HAP works perfectly fine though.
> 
> TODO:
> - Intel: Don't assign the VPID at each VMENTER, though we need
>   to rethink how we manage VMCS with nested virtualization / altp2m
>   for changing this behavior.
> - AMD: Consider hot-plug of CPU with ERRATA_170. (is it possible ?)
> - Consider cases where we don't have enough ASIDs (e.g Xen as nested guest)
> - Nested virtualization ASID management

For these last two points - maybe we really need a mixed model?

> ---
>  xen/arch/x86/flushtlb.c                |  31 +++---
>  xen/arch/x86/hvm/asid.c                | 148 +++++++++----------------
>  xen/arch/x86/hvm/emulate.c             |   2 +-
>  xen/arch/x86/hvm/hvm.c                 |  14 ++-
>  xen/arch/x86/hvm/nestedhvm.c           |   6 +-
>  xen/arch/x86/hvm/svm/asid.c            |  77 ++++++++-----
>  xen/arch/x86/hvm/svm/nestedsvm.c       |   1 -
>  xen/arch/x86/hvm/svm/svm.c             |  36 +++---
>  xen/arch/x86/hvm/svm/svm.h             |   4 -
>  xen/arch/x86/hvm/vmx/vmcs.c            |   5 +-
>  xen/arch/x86/hvm/vmx/vmx.c             |  68 ++++++------
>  xen/arch/x86/hvm/vmx/vvmx.c            |   5 +-
>  xen/arch/x86/include/asm/flushtlb.h    |   7 --
>  xen/arch/x86/include/asm/hvm/asid.h    |  25 ++---
>  xen/arch/x86/include/asm/hvm/domain.h  |   1 +
>  xen/arch/x86/include/asm/hvm/hvm.h     |  15 +--
>  xen/arch/x86/include/asm/hvm/svm/svm.h |   5 +
>  xen/arch/x86/include/asm/hvm/vcpu.h    |  10 +-
>  xen/arch/x86/include/asm/hvm/vmx/vmx.h |   4 +-
>  xen/arch/x86/mm/hap/hap.c              |   6 +-
>  xen/arch/x86/mm/p2m.c                  |   7 +-
>  xen/arch/x86/mm/paging.c               |   2 +-
>  xen/arch/x86/mm/shadow/hvm.c           |   1 +
>  xen/arch/x86/mm/shadow/multi.c         |  12 +-
>  xen/include/xen/sched.h                |   2 +
>  25 files changed, 227 insertions(+), 267 deletions(-)

I think I said this to Vaishali already: This really wants splitting up some,
to become halfway reviewable.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 13:03:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 13:03:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098759.1452732 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urcI2-0006XN-3v; Thu, 28 Aug 2025 13:03:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098759.1452732; Thu, 28 Aug 2025 13:03: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 1urcI2-0006XG-0f; Thu, 28 Aug 2025 13:03:42 +0000
Received: by outflank-mailman (input) for mailman id 1098759;
 Thu, 28 Aug 2025 13:03:40 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=AInb=3I=nvidia.com=jgg@srs-se1.protection.inumbo.net>)
 id 1urcI0-0005vR-Gw
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 13:03:40 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on2061d.outbound.protection.outlook.com
 [2a01:111:f403:2414::61d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6a0be515-840f-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 15:03:39 +0200 (CEST)
Received: from CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13)
 by CY1PR12MB9583.namprd12.prod.outlook.com (2603:10b6:930:fe::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.13; Thu, 28 Aug
 2025 13:03:31 +0000
Received: from CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732]) by CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732%4]) with mapi id 15.20.9073.010; Thu, 28 Aug 2025
 13:03:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6a0be515-840f-11f0-8adc-4578a1afcccb
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=RK2boCbuG8+THudRPPBnz2BVqcPYNNmsZyx6ar7cyi1lJcWMGtn/ODmZOffdT7qr3h/4lPrOQHsyY0CzZyoXlH3KOo8fq3J/HKXq/eqAPshsEvv8YSYqfMsroBxHgj34lnK0rmecBfSBeQz5+oCEtxl/1Nn22bBVz1yHfe44eZVE5G9Ojmrf2vMxAyujQbF3+V68y9Q+yG9nQJPhEt+KuMx2MNwNHStPV0a56gCrM0dCvTyf6B7qlLqlvQGTcF0wxRVMFUd+09dOJ8bvoSNPLhXE28LxX7xbHWbbK5imu4qfBVrlX0MMEuby46JVtyi1JCRp/F//MobtUQ+GdES3+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=lb1aBSrT7FmXIFNg2GsFQ9EVeTQg1mhe6sX7cdRiThE=;
 b=QNE/q3aD/UhQyoArlwBvT6pR78ENgDH6SthcNwV2RzXCPOlWNTfJcH3icSZ4l0uhf6Fyb+axnIji94LsLZkCJhlsF53MITYJ8SYoPZY011pKsGidejJBAQ0tbmuGbFIz4dccEIw+0fZDlg3Yxc+oQoCDIWESr/CyrE2c4DcC938qFUmzyPCRGKI7Uwk3ivluL4NxAgtFCcSBYwxQS/r33nvygfw2jJrpV1U73jzZQ8nXk4em9We9fxr6L5U5UY3QCewrgOHTnOxd6B5lJhcXMtfXit0+pRdHr2wfBSw/pctbtVtPldJawM/erewW4h+9CtsOVnzzahYOWIFNOo7hvw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com;
 dkim=pass header.d=nvidia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=lb1aBSrT7FmXIFNg2GsFQ9EVeTQg1mhe6sX7cdRiThE=;
 b=fMOHKVpYuCuv+ambfjY9KDMvSz059JfbWmFFJ2vP1G843jbMFTDv4HXQFLi8Qe2tlJMTaTUYiizwAG7J9J7p4vzPz2O1twGnyXYVM/HwCpTCqoonrr+Vo35/IhGzeN31s+NwUwIKGMEbZ0G7qt2Q7y/9P+5Cs2lQAnMDCoA6xWK00jUNOfxA7GM7IstzQyEg0DkohfxFnoedCFgCzVcxoL8YbkfHpP8uALzotkp87NZNt40HWCoYA2/hcZzfw1PI7Xs7CeDJ1xMLECgM51aS4D6GOsJoZHIAt/X7AtBwmkwhD9FSpO9RNvh7P5KdAIReLcydUtVFz+Ue/D7PC1uahg==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=nvidia.com;
Date: Thu, 28 Aug 2025 10:03:29 -0300
From: Jason Gunthorpe <jgg@nvidia.com>
To: Leon Romanovsky <leon@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Leon Romanovsky <leonro@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 01/16] dma-mapping: introduce new DMA attribute to
 indicate MMIO memory
Message-ID: <20250828130329.GA9469@nvidia.com>
References: <cover.1755624249.git.leon@kernel.org>
 <08e044a00a872932e106f7e27449a8eab2690dbc.1755624249.git.leon@kernel.org>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <08e044a00a872932e106f7e27449a8eab2690dbc.1755624249.git.leon@kernel.org>
X-ClientProxiedBy: YT4PR01CA0331.CANPRD01.PROD.OUTLOOK.COM
 (2603:10b6:b01:10a::27) To CH3PR12MB8659.namprd12.prod.outlook.com
 (2603:10b6:610:17c::13)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PR12MB8659:EE_|CY1PR12MB9583:EE_
X-MS-Office365-Filtering-Correlation-Id: 2e8ce38d-1495-4e9c-fbd5-08dde633497c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|1800799024|376014|366016;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?js25oaDOXC1PcXJuXby3MQJZ3I26MTRuNb2Mzk6+4y5rkgGrDvohXSlf/qIm?=
 =?us-ascii?Q?BoL/lRuUSmmk6jDV4j9TNDCZVuU+mk9bgVAHZ3LPGwfZ3JluaHL4Njb/BxTX?=
 =?us-ascii?Q?5Cw9YeJSXbEjnuCzrd9NW2mbFh0etMT4jm/SfC/4K4X5J3jOUg//9oRaOLIU?=
 =?us-ascii?Q?+A6sDEgKzo5AbemFCiD56LnQc/ViOBLF4Lbugl70oHH2Qf2N1Armg4SLLxMH?=
 =?us-ascii?Q?lOnumEAoTZZkBv9S79uAObcb1Db8Eeyr+MiL/xNHuxs7xxVKjZCLMSJvvIbK?=
 =?us-ascii?Q?Gq3tEoSfg5wVXzDGYdVRICaGPvRC5DkyrRokbcKMJz9RLG6BQI+Py69KHOM9?=
 =?us-ascii?Q?kUb8lRnRKtv20kXjar1fS5jPwxIxJdqwnDEvqph1YC3G3nlXhX13PsorJ89V?=
 =?us-ascii?Q?LF4U9f6A510WkPbyjMqe9Z5X5gloGfieT5ojgSRR5aidoskVFEPhSg05EfeW?=
 =?us-ascii?Q?St4cblaAlN/p/UZn9RLg5E4n2RjOitB9j5DOPqfgo/v9oSO8v5snnUxdfpYy?=
 =?us-ascii?Q?tOAVVGha6SaMNGhdSQTaoyIRsG+70sUscfdsLQzwWOXznwzQDMZSHt2jbYY+?=
 =?us-ascii?Q?0GRIIw8+iliUtb9Opvh572fs714cbkIlX/MwkZ3HrpERdGzgyIgI6Kwue1yt?=
 =?us-ascii?Q?P5x2GL+6Ck41N/fCcJkIt/BlZJFQj+NBBgTeDyENWfl0H7yOZ1+UlBkBsvYN?=
 =?us-ascii?Q?A93YXE2aoIb/oEQ3tn70Wtj2oCOkuUyN1ClVwy2MhB2OI12cRU3WCF9XImtH?=
 =?us-ascii?Q?ZGQ2wAgmsf6MLHhLrmbcbDm7G8aOR0OKPyCs+7oLdpapYokRbTFB6kp5XQm6?=
 =?us-ascii?Q?PGSeS0/RdtYTXI0u9w0HTmUGyWXe+nP7YjJvft6vWvmorxNA1JQf4zrBdisM?=
 =?us-ascii?Q?mhHZnlb9uKPCzP4++8fl/BWkUPrxNCrlA7Y48ad1QrCxpNP4hBbKhbPIaENQ?=
 =?us-ascii?Q?sFOBi17yp3lndZrOr8mR34QqIfShd8+qw8ynE9/A/S0j91f4laQXx0uugGiy?=
 =?us-ascii?Q?YUaEupYaD07R14df//37cpWUPUT2YcNEu43MQp3FttrYinCkfXL+QEmpxvXx?=
 =?us-ascii?Q?pbkeA4qcaGgg3Q8vWl94dSmA+vedIspxIM+C9kOBGA6vju3Uh/uCz9VsHTcw?=
 =?us-ascii?Q?hgg96ayEx8J3Vg+qqO2qN3/mtuMU0tw5ZbG//3lXqwyDJ9AfnEba4wj0rGz/?=
 =?us-ascii?Q?HL8ZOJ/L1EKxYSDyKDUq+aZnQsBzsfKuYb3UH8jlN/cTXcJa7l2fvMPlaDnC?=
 =?us-ascii?Q?YRLi5e09+b2ERDgeihK0w2U8HRnze+77o97+MPX9DPr/Ka+qZYSsrUYot4QB?=
 =?us-ascii?Q?Uv1IjWIFxYm62bJMpF0gdD2rckJ6RVhfz/A4QXBAWTAvPrQmYe1+t6Qm2G6Z?=
 =?us-ascii?Q?D71WfPVmpCfQH+S92jhbuixwQiPV6Z0PTEOvCgIGjIzLPFdzQFwGNM3JbQpk?=
 =?us-ascii?Q?CzpsWKvkBKU=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR12MB8659.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?1ckjCiMh3aH7YHuAcYKILzSmiSeqWlaX0cjU6lr4SyHlEcJpmEAmCeyOV40z?=
 =?us-ascii?Q?9e1fR89T7j6Xp4z815rEDhXVCgZIIo5/9Sb04mNpuRfGYPRBY9zvqpgOkh35?=
 =?us-ascii?Q?/IOPcsnkEdYIiouJI/wlLh7BnCc/nEB/fa3oJleLj3SXEa/1YouLRDZ/ieHd?=
 =?us-ascii?Q?Fhgn69Lu1zSjAD4cDL8F4xerway++pdKYp7fMh6cIZ+VlW6jycFV1P5MXmgS?=
 =?us-ascii?Q?mGoV98JXp74/ppnciUAThGSQzIxV/501z03pCA1eCrV3j/v+1Br3yDy4QJxW?=
 =?us-ascii?Q?frMzh866Wke8P8HGgSkgaXpOEwgWy3NKvZOWom5IlZaQ7STgDF21n3deg2Bn?=
 =?us-ascii?Q?smMK5qJYmUv/jkHZMtLRoXgBwR9hcu6+SvkgrewPkzyqBlRl6GTkMCr3k5VU?=
 =?us-ascii?Q?Giq4WnZqwKFeLOQps32EJCGUMPry83QrPBaNQL6gWIPmnMvFyZSyAVDm33RB?=
 =?us-ascii?Q?Nsr45KQ1aoLyewrNb+mw5B+uzTtLwjFV+N2mOUGeVFIHf75PqWqyy4eoQWco?=
 =?us-ascii?Q?wsPshiiaB2TYJsV+YT+NrgZovS94Jcb5smuzQLTnPPYLsbEfZgq8vP23JNE5?=
 =?us-ascii?Q?0oIZWVjvcbOUXUQ2nxNg9O6CsRDFOnW6vwXQ8hIeYJ0z7OlEC4uo+6X9hqsK?=
 =?us-ascii?Q?y4Gl1D9IPDsnjZEc5PABOo7nWuuY9OkIfi+DzpgT6SH8PGC8O9gsn12QD9iD?=
 =?us-ascii?Q?VHCXBZ/dky8PMllRareAMm9eiICY+eX+htBuOVv6YHLr+eHCDo5EzEJso+ZA?=
 =?us-ascii?Q?DvjhpqVdbeaZwt7TnBuqzgfG4taKsF9UKdhPYrjQQNQ/d/iHvMNy0gtC9jDv?=
 =?us-ascii?Q?A8wYHhwRWc07lOdovRO6IA4mL9B02+icHfZr1/KGehCEHBqrBFbeO6zOVurf?=
 =?us-ascii?Q?ISrwNfw+VWQFC2e2Jxr7QeagvEtwLbOPYlUsVvv5ouP/fmLkb9L+vQsiADaQ?=
 =?us-ascii?Q?0KFF0SxzmH8inER9VlRkWQj0uNmQsVFoU7A7VEop+6CPD+kMmtDkfsXixQKw?=
 =?us-ascii?Q?2IiT0TOhGwzqVh1hNf2+uFaw4c9EhIXWPBB8fpLj+KDyJZCRxevz6pgajGiD?=
 =?us-ascii?Q?6e7tp4RsiOIP/Xavv4sXZ1KwcKti2bFyaaRW9q3aE5/5bOj7YvQSlvTJyFcy?=
 =?us-ascii?Q?kpYDF/yTAwhXZyFXDbgZ9IjCIjLtGugtDk4bAJjQ/gr1GrnLqqhzXPE57QWJ?=
 =?us-ascii?Q?tvusWzcZabNSlAxrYhLQt9cEh/6g/IXqiyuBEp/8uUB53JY5tovj1FwY7dBa?=
 =?us-ascii?Q?POWqTvzzR9OjJNSNOYA1vFMFL0NX1qP4KFiAOxEPvZl/bNot7SBXmSsUqQRb?=
 =?us-ascii?Q?i2roYAb0OOObJ5qpVpyF/VUBMiTm/Ffg65Y6dDlp3oYLtb98fMfrqLNlir5o?=
 =?us-ascii?Q?69dWufR7H944Ebi7jgYNTTnrOi+apHLvwcBfiNyXb6pO8LPkL+toURxOapMC?=
 =?us-ascii?Q?txtSAZPvR0gYWoN6ASv0OhUDjZNkxjBzocQbB3nXsjABL9de5niWUn4J1UsY?=
 =?us-ascii?Q?1AM2M6EZA2k2+hd/hd6eZSjh1JlTWb6QuWfgRP1wqdgQbsfEPseK/hCvJ0i4?=
 =?us-ascii?Q?kzEeLZAg6e2kdvXAlIY=3D?=
X-OriginatorOrg: Nvidia.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2e8ce38d-1495-4e9c-fbd5-08dde633497c
X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8659.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 13:03:31.1146
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: RspixjdFPbAilZf2tLBPnkO+nFqvF4XSCsFdPZ/SEHIuDVu4IvPjaklp3X5pg66+
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR12MB9583

On Tue, Aug 19, 2025 at 08:36:45PM +0300, Leon Romanovsky wrote:
> From: Leon Romanovsky <leonro@nvidia.com>
> 
> This patch introduces the DMA_ATTR_MMIO attribute to mark DMA buffers
> that reside in memory-mapped I/O (MMIO) regions, such as device BARs
> exposed through the host bridge, which are accessible for peer-to-peer
> (P2P) DMA.
> 
> This attribute is especially useful for exporting device memory to other
> devices for DMA without CPU involvement, and avoids unnecessary or
> potentially detrimental CPU cache maintenance calls.
> 
> DMA_ATTR_MMIO is supposed to provide dma_map_resource() functionality
> without need to call to special function and perform branching by
> the callers.

'branching when processing generic containers like bio_vec by the callers'

Many of the existing dma_map_resource() users already know the thing
is MMIO and don't have branching..

> Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
> ---
>  Documentation/core-api/dma-attributes.rst | 18 ++++++++++++++++++
>  include/linux/dma-mapping.h               | 20 ++++++++++++++++++++
>  include/trace/events/dma.h                |  3 ++-
>  rust/kernel/dma.rs                        |  3 +++
>  4 files changed, 43 insertions(+), 1 deletion(-)

Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>

Jason


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 13:05:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 13:05:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098774.1452741 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urcJm-0007FY-HU; Thu, 28 Aug 2025 13:05:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098774.1452741; Thu, 28 Aug 2025 13:05:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urcJm-0007FR-Eq; Thu, 28 Aug 2025 13:05:30 +0000
Received: by outflank-mailman (input) for mailman id 1098774;
 Thu, 28 Aug 2025 13:05:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mzUP=3I=bounce.vates.tech=bounce-md_30504962.68b05415.v1-bb730c600fb745a18f24acc3e53d69ed@srs-se1.protection.inumbo.net>)
 id 1urcJl-0007FL-Gk
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 13:05:29 +0000
Received: from mail187-26.suw11.mandrillapp.com
 (mail187-26.suw11.mandrillapp.com [198.2.187.26])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id aa2f069a-840f-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 15:05:27 +0200 (CEST)
Received: from pmta09.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail187-26.suw11.mandrillapp.com (Mailchimp) with ESMTP id
 4cCM855CslzKsbJFY
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 13:05:25 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 bb730c600fb745a18f24acc3e53d69ed; Thu, 28 Aug 2025 13:05: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>
X-Inumbo-ID: aa2f069a-840f-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1756386325; x=1756656325;
	bh=bLf4NKVOUkSqKMIgZHeiAJLxmQjpcJ5xR/S//EIkS48=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=g8HOdoayQH6npFCmb8Hp65leuKoGgJZ8fj3zyGumJHzwCPoxzb7LcYszc2e2pKkuW
	 PN0BdYeS+boLXob7uiZKZRA32OSN+AAMbZQf8J0wIUWTZ3sX7uG5Nb3EEbB/7lpSJ8
	 bSFCDVIBtXnFzbnwU+/RNdyoGZHKiWAXwLIDFB/MFes7Zsj/iARg/lmqTB/ekrmS/G
	 zDFYZ+jnhRQFvqvJ29/+JFpliYUZokKUXsQfNrr4PSD03gLAUT4CYRZbLBiZ16fxSl
	 vAVRIMjcOZkLt53D4++5Goq8Ox3oE79rTWTunbAwNN6POBKU0JoiySSXXrTGq/a2pj
	 DFV/PXEYS71gg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1756386325; x=1756646825; i=anthony.perard@vates.tech;
	bh=bLf4NKVOUkSqKMIgZHeiAJLxmQjpcJ5xR/S//EIkS48=;
	h=From:Subject:To:Cc:Message-Id:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=saoBxs9L0ga9/iQxXoMTOcuDNCiAviCoe5VACEOthI3iK1H859njKt2s/qhaPwQQ/
	 IvGcU5hKavxdfwX+IfU/Glote+cKu/3jR0rJp1/ZKhrIrncEFW/Nr0fFTrMtA8zZo7
	 kqVI4qYvQZ4LjTdf5/FfXRX3hOUGTk2rOz6fcT4oBxFvJ4CajlZhPycHENQnADYRfq
	 CY7xUcJZh9rH262C4iuyx8Rwp7M0BbDMAWW1/G8LdFryWlYjYjZgzNlG114bzZiVfO
	 5HRt/y1vQa/BMt0u0x7HK1FySwA9sp/aruhCfSN5ZiBcZvFnOosKfXqFQxPt2cXhPc
	 cRhVd7dd4Xvyw==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v8=207/8]=20xen/cpufreq:=20bypass=20governor-related=20para=20for=20amd-cppc-epp?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1756386324425
To: "Penny Zheng" <Penny.Zheng@amd.com>
Cc: xen-devel@lists.xenproject.org, ray.huang@amd.com, "Jan Beulich" <jbeulich@suse.com>
Message-Id: <aLBUFCXg_6k503nm@l14>
References: <20250828100534.1777023-1-Penny.Zheng@amd.com>
In-Reply-To: <20250828100534.1777023-1-Penny.Zheng@amd.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.bb730c600fb745a18f24acc3e53d69ed?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250828:md
Date: Thu, 28 Aug 2025 13:05:25 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Thu, Aug 28, 2025 at 06:05:34PM +0800, Penny Zheng wrote:
> HWP and amd-cppc-epp are both governor-less driver, so we introduce
> "is_governor_less" flag and cpufreq_is_governorless() to help bypass
> governor-related info on dealing with cpufreq para.
> 
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>

Acked-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks,

-- 

 | Vates

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Thu Aug 28 13:20:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 13:20:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098792.1452762 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urcXp-00011D-VS; Thu, 28 Aug 2025 13:20:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098792.1452762; Thu, 28 Aug 2025 13:20: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 1urcXp-00010u-SF; Thu, 28 Aug 2025 13:20:01 +0000
Received: by outflank-mailman (input) for mailman id 1098792;
 Thu, 28 Aug 2025 13:20:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=AInb=3I=nvidia.com=jgg@srs-se1.protection.inumbo.net>)
 id 1urcXo-0000nC-9N
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 13:20:00 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20604.outbound.protection.outlook.com
 [2a01:111:f403:2414::604])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b1f4881c-8411-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 15:19:59 +0200 (CEST)
Received: from CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13)
 by MN2PR12MB4454.namprd12.prod.outlook.com (2603:10b6:208:26c::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Thu, 28 Aug
 2025 13:19:55 +0000
Received: from CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732]) by CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732%4]) with mapi id 15.20.9073.010; Thu, 28 Aug 2025
 13:19: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>
X-Inumbo-ID: b1f4881c-8411-11f0-8adc-4578a1afcccb
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZzQY3SPMdzJcRH2NaxYMCUGh1smdZKe5L1ToOK2d+c3BXvnXfTQDM35T/Q3uhNGL36zhEdenj1cLdMClD2+iZh4KFqGkZNkiQZ2N8JUDIwUQ9okBuaw2OSkjbhghzIoHzKm64CMiG9/C8ucCVaVWJV2GRqFjN1NHXxcWIfMYMpoe5Vq13pqNPugBJKczxq35lRwELJr4DE2PKbxg1Rg8wpaJqYPcJXTAXnjHT5hCovxdCI9E51l5ZJGgVtojuHZNFpkDxvqah9v+qTFfwpTuotJ4W/g+E2BbMgfvgBUIQZEMUwfeXoEruOzImto5RVR02ev/tJBtk9Rh7acwOOc4tw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4bzh3sRdiHvsU1MRn50H4G6O6O5GsLWJ8BJxu5aE6rE=;
 b=e2cbz7pe7MKWyTsnjrApM9DHOpl9dWJrgSkd/hXfh+yV+uKAOPQycuD9KJASCjdg0UPuvnvqF9NAqmJQfD9CfpaJSbuvThqe/+OTMpqryG6GUy4QnS3AiRTBT+KlZ095atJlI9301Qo4BhOg0SmQdcmbAknVVF5lKyc6u3pVUhUH6VZBbhAzpJzvMpgNrDxi7bGrTtUsOshPcFj/PFNDt5R3jowHwUNY/NKROJQRoFpq44cpRqQE+mp/Tm1yzN1RF8LHYfA8ZhR5If9xVmqHU61luaXAMqTuATkWh0c5tZXNOaKxXwGWOsSstptqQX6TYsQHBOgRDZxE/pt1/tGj1g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com;
 dkim=pass header.d=nvidia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4bzh3sRdiHvsU1MRn50H4G6O6O5GsLWJ8BJxu5aE6rE=;
 b=JT+bc4m8nf5E/FOgPdn2yt8zhutW+dCc9U+CSeZ2qK8kjEhNaXFXlwym3w5UT5hWb97vNrtmUWDsptdNgcX6c7rdcUt9/DpCHd7sI+7IWl6fK5NUz77AKN5150SyR7+kktKk1I/AhdkgLxJXVyZHxJn7ZdMcDIvSKhkPzAsA1NVuijwD1WrwDasZ3qrVURMZJ2PugsvHYTxkvcxt8BC/ZBRVuuebucnvKYrqeHdwDxBf41VJ+22pu9NBuo6hF9SlMxxm3+MaGmWBwNyalmNK0dLTA5kid5Wu5a3Tk5leGjKWvbMZ1afA8UXuW4ezKTTVvtecVjTGiRBUYDms1jHRug==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=nvidia.com;
Date: Thu, 28 Aug 2025 10:19:54 -0300
From: Jason Gunthorpe <jgg@nvidia.com>
To: Leon Romanovsky <leon@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Leon Romanovsky <leonro@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 03/16] dma-debug: refactor to use physical addresses
 for page mapping
Message-ID: <20250828131954.GB9469@nvidia.com>
References: <cover.1755624249.git.leon@kernel.org>
 <478d5b7135008b3c82f100faa9d3830839fc6562.1755624249.git.leon@kernel.org>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <478d5b7135008b3c82f100faa9d3830839fc6562.1755624249.git.leon@kernel.org>
X-ClientProxiedBy: YT3PR01CA0117.CANPRD01.PROD.OUTLOOK.COM
 (2603:10b6:b01:85::35) To CH3PR12MB8659.namprd12.prod.outlook.com
 (2603:10b6:610:17c::13)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PR12MB8659:EE_|MN2PR12MB4454:EE_
X-MS-Office365-Filtering-Correlation-Id: 98e0bd0e-7a54-443c-025d-08dde635944f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?k+8dDmD8jCsh/xvM6iISMbsAkoTdIU5KrL7/zcpYogAL+67glalk5Ih8gQuz?=
 =?us-ascii?Q?oLJxhj8wo+YkIIdJ6hvDjHstEHxz0urruEcYWpLQ7JeySOnkFx0/+F8fZ9Oq?=
 =?us-ascii?Q?r7ujl+dhCvU+5I5EbziGGjIv3pP6VJkVJqAQkddiJihCj81f/ho17bVZQgid?=
 =?us-ascii?Q?aaE+dT4UUjC3LoMDYFboLmrN8qBPFQXMCNGSdtWsO3wZ7AYIo9seC0jFdzEZ?=
 =?us-ascii?Q?jxazmREApbwCqrq4GwCkfKd7dI/+VR707BG483jwbiu7l8NHS9gt7tpuWOL0?=
 =?us-ascii?Q?Bh0tVbGJ+QdljSOx2D7QJy6VPT/7+GS5iO3DVFAhRCGNrFWU+XYQWoT5YUpl?=
 =?us-ascii?Q?7dPtAx+5VWBvQxOgCjofme3WBrzNtI2p5kdMldEmMY0G8qhFY5zZXta5qyF3?=
 =?us-ascii?Q?tpThNBuITD1WVtZymQ+eRIvJqc5lf8zJDB73/4EQcQHoVpG6I50V4IamNga8?=
 =?us-ascii?Q?N1CZvd5DhIuu8yia7ZWBKaF8JgZUebrITgfiPgjuYXYA9WPcmIJ1uBqnvUHZ?=
 =?us-ascii?Q?7QlfKq+0cOxlE/JzwuZQsdo2/mAl3gV+FrPXE6NHxEZVmcbZLpazPU7hMZwo?=
 =?us-ascii?Q?yzCCjjKG1L33ioCNKBIq6eyS4Sdt5g1YWTGFbV6Ze28CskqsSPcvnyXXXiAA?=
 =?us-ascii?Q?7Hz+qWxlupJE2hiMPNq/zLPwEc1pyTE6MLslknxXk83UpJ6NW/Wfc4qbrYwj?=
 =?us-ascii?Q?0A6DfteJIY8r4uRZzYnQksc320P0cLHfNIHL7kBaqKCmDIIStWIiy7+FTY/b?=
 =?us-ascii?Q?TFtsVGsVY9x/dgo4fdbbRxdHdDRmJUVGejeD/UehSuPYSl3BLnOHoX2a5JFy?=
 =?us-ascii?Q?WtSNsS5JzyWDjyVO6VkSu9XwNFL7Zt4acd3zBlGaCzo7bpz9Pxa7yEnPvzF8?=
 =?us-ascii?Q?viqiTCDo7mJyiSldpo91TyvV1w98iIdpeUFJ8a6ZKgh0AO2nCTNa8Cy7uIOp?=
 =?us-ascii?Q?GRkVxtAXNdtCmp8yfjxreP/plGfzufiB2cxzHNEx5aWvsSUZlM6fSfhYD3fJ?=
 =?us-ascii?Q?bGNuGc7xFkNw1vp3GRzrm3KRk5tKxe8puue7Vm0CInGyxoPCN2/z1ynXRRjW?=
 =?us-ascii?Q?FZ6le2i02YbHWqh925/Aq6MdIp455kADNHJEuQkbDynujsviI92USMG58SFC?=
 =?us-ascii?Q?qQif0FLJBZxFbVS219j5LfraP8gfnA51s61vsM650No/ecfrcTH+HhmbJKM3?=
 =?us-ascii?Q?L3r7RNFrRABjgxvOSLmIbRAySkSoaaTBPEH5ycKt7u8BDQ8aT/dTIvbw1dvB?=
 =?us-ascii?Q?l0l7gBDdAJRW14UubUajha5bqYMOjc7LWNPJD3gUVGSp38Bug+svKZaM0cAd?=
 =?us-ascii?Q?hgSd4S4h5UBUEn1oI+mt73c/+KayUGL7xTfGoTK44Wn6Tu1aGC58Z8bAAN57?=
 =?us-ascii?Q?ld1x5ylpJco4tPeQ9miQKs4p3tYFtzTb/xoK1yJ8VmjHocwnI7rtnd6g6136?=
 =?us-ascii?Q?lllLg9etUOI=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR12MB8659.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?G49m0TxMaCSR9+sEhQY4qbirLMqcHfa7aWh9Pb5nBUAj3+Jf8PRe5VZdJ8eK?=
 =?us-ascii?Q?skj0tb9amp0ku1st9QwxXegm1XcHOVAbA6yIVLsYZyLL84jj4zBhZWQBCw+S?=
 =?us-ascii?Q?nwCGf7bTuE6nOet9Z1OxpAMwpcWqIBCxTvPTOPuVvaGLaJ/pHNqHd8gG/kAa?=
 =?us-ascii?Q?u3g7uHSvwML6mIIwWWceBUQ99oG7rOSC6Du9DuyWoaVUmSWkJDyfZz5HUW+Z?=
 =?us-ascii?Q?BxtMv9/l21mo+96FOwaCV2QxVYxVltihhZoSlvI+2J+4GJwU3oHCR6ID82fh?=
 =?us-ascii?Q?Q9vLYwN5xyKc5tBYwvf7VKijbnSyzT8bJJRugnZjAqU1kc7MQjb+/+Tpwnv5?=
 =?us-ascii?Q?lzMR6SVDi5Z/6h7OV5VKt8kYJ8eIk38G8vCTlhZYfA6DFc4BhtrYg8HLtRf1?=
 =?us-ascii?Q?N6E8Ad9VT/oS48kgXFc1wbrhqbyPNxA+OkeMjEbs11DCqD6QDds+OrHYsWQk?=
 =?us-ascii?Q?yih85IVfFagRSVADbCYxntfxSuXeRgrzKkYjnvaLGNy0/6rvwLeS2c5qPwN0?=
 =?us-ascii?Q?0EZG92eD1Zr6eKoaFYnZrd4gcLSYOyTk+jmBrD3NrEcZYtnyTUSgQuhIdwW2?=
 =?us-ascii?Q?G9IMgG/+M83mhPvjdgSTuYxVX9shYm9UQFcVY00wKCJvkNhNx0jMKqJ85HrV?=
 =?us-ascii?Q?MPULToD73DvqB+0i2F7j3MQOaJNnqw5jOK199TFM1xpZxBY9WnczApuUEMzH?=
 =?us-ascii?Q?cBuZjJVhtOalLTXim+p2lS2phyeACB0K2NbJngATxOyNvf5W3FZ9xQRtC4bw?=
 =?us-ascii?Q?zHf1AV3hcXIR+DJLaocdT1I5MokwvvnqknEzb3ZrIJxMKdzlJB8OWPsO20K+?=
 =?us-ascii?Q?dmudEfNTS7OxBBjA/x/x0/PmNf5HNNoSeTaia2U1P7TsY0Toeo+bO119FOy9?=
 =?us-ascii?Q?M279qAiM3G9I+J/c9DJXru3Iy6UTvxADrbfQ+RFz2Qg/XXFEdM8yS/TCDD4I?=
 =?us-ascii?Q?N5PmLWdUgV/LO9lzoRtKgdkQGoOkAjoMcDXJRuYtDS3KR6nqY3xSWhYTSVxY?=
 =?us-ascii?Q?0UHMKubB881KtR75rVblPrN6RezbxQfGbTBlkattBZKe1/iDTca6w5rLV+8b?=
 =?us-ascii?Q?e0Ay4TLuK3C3HGm0vsf8DhqFW5V0GU3cX6v8W9oY9S9QudiMzs73xsT7zzWG?=
 =?us-ascii?Q?1gS+SHfO2887AHfz4EhjsY8OdtNxszD1uRCIZ6eBwA++BMeUvSjhqTPemG13?=
 =?us-ascii?Q?I1DrfQi1k/yXNHkrg0ynt8FoiobhBBFDCLQiQGN+CfasucIGRIJCLoXhYil+?=
 =?us-ascii?Q?ouk16WqTTQjFH2PNlv/jWYi83XV9YO2V1YJMYFDLxAM/ycX3ztfjalAYXfCN?=
 =?us-ascii?Q?vblNawnFDJG8UnqBI/LQpoekB7zGkcmXbAjU7Eon9BeHzwybxlHoDLjRUHTB?=
 =?us-ascii?Q?TQq0IbiwnjmjKPa0cIx4L43qmwMcPn+h3D+okBvd7Hwu4h53wFGX9kU1lNdH?=
 =?us-ascii?Q?Nnu7JmD2+ljRcOUGZscwfzlv0qyfWQ9+oUpewrOA5syqhvI9WfSNNsKZ298q?=
 =?us-ascii?Q?kjydLlwrld7DdisTxnbc9HAM6tSaRbPJ+yB/IuiE7cOS9iRAKd5/jkNy/zKh?=
 =?us-ascii?Q?sixdG//PUfxq5oWPwPQ=3D?=
X-OriginatorOrg: Nvidia.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 98e0bd0e-7a54-443c-025d-08dde635944f
X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8659.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 13:19:55.4513
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: bfVAJKqjXmKqW2jIhU81Ah+D38AfCDhv/W/9SURBzpKwO4cwIbxbEnM4n+rS62qC
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4454

On Tue, Aug 19, 2025 at 08:36:47PM +0300, Leon Romanovsky wrote:
> @@ -1218,19 +1219,24 @@ void debug_dma_map_page(struct device *dev, struct page *page, size_t offset,
>  		return;
>  
>  	entry->dev       = dev;
> -	entry->type      = dma_debug_single;
> -	entry->paddr	 = page_to_phys(page) + offset;
> +	entry->type      = dma_debug_phy;
> +	entry->paddr	 = phys;
>  	entry->dev_addr  = dma_addr;
>  	entry->size      = size;
>  	entry->direction = direction;
>  	entry->map_err_type = MAP_ERR_NOT_CHECKED;
>  
> -	check_for_stack(dev, page, offset);
> +	if (!(attrs & DMA_ATTR_MMIO)) {
> +		struct page *page = phys_to_page(phys);
> +		size_t offset = offset_in_page(page);
>  
> -	if (!PageHighMem(page)) {
> -		void *addr = page_address(page) + offset;
> +		check_for_stack(dev, page, offset);
>  
> -		check_for_illegal_area(dev, addr, size);
> +		if (!PageHighMem(page)) {
> +			void *addr = page_address(page) + offset;
> +
> +			check_for_illegal_area(dev, addr, size);
> +		}
>  	}

Not anything to change in this series, but I was looking at what it
would take to someday remove the struct page here and it looks
reasonable.

diff --git a/kernel/dma/debug.c b/kernel/dma/debug.c
index 06e31fd216e38e..0d6dd3eb9860ac 100644
--- a/kernel/dma/debug.c
+++ b/kernel/dma/debug.c
@@ -1051,28 +1051,28 @@ static void check_unmap(struct dma_debug_entry *ref)
 	dma_entry_free(entry);
 }
 
-static void check_for_stack(struct device *dev,
-			    struct page *page, size_t offset)
+static void check_for_stack(struct device *dev, phys_addr_t phys)
 {
 	void *addr;
 	struct vm_struct *stack_vm_area = task_stack_vm_area(current);
 
 	if (!stack_vm_area) {
 		/* Stack is direct-mapped. */
-		if (PageHighMem(page))
+		if (PhysHighMem(phys))
 			return;
-		addr = page_address(page) + offset;
+		addr = phys_to_virt(phys);
 		if (object_is_on_stack(addr))
 			err_printk(dev, NULL, "device driver maps memory from stack [addr=%p]\n", addr);
 	} else {
 		/* Stack is vmalloced. */
+		unsigned long pfn = phys >> PAGE_SHIFT;
 		int i;
 
 		for (i = 0; i < stack_vm_area->nr_pages; i++) {
-			if (page != stack_vm_area->pages[i])
+			if (pfn != page_to_pfn(stack_vm_area->pages[i]))
 				continue;
 
-			addr = (u8 *)current->stack + i * PAGE_SIZE + offset;
+			addr = (u8 *)current->stack + i * PAGE_SIZE + (phys % PAGE_SIZE);
 			err_printk(dev, NULL, "device driver maps memory from stack [probable addr=%p]\n", addr);
 			break;
 		}
@@ -1225,16 +1225,10 @@ void debug_dma_map_phys(struct device *dev, phys_addr_t phys, size_t size,
 	entry->map_err_type = MAP_ERR_NOT_CHECKED;
 
 	if (!(attrs & DMA_ATTR_MMIO)) {
-		struct page *page = phys_to_page(phys);
-		size_t offset = offset_in_page(page);
+		check_for_stack(dev, phys);
 
-		check_for_stack(dev, page, offset);
-
-		if (!PageHighMem(page)) {
-			void *addr = page_address(page) + offset;
-
-			check_for_illegal_area(dev, addr, size);
-		}
+		if (!PhysHighMem(phys))
+			check_for_illegal_area(dev, phys_to_virt(phys), size);
 	}
 
 	add_dma_entry(entry, attrs);


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 13:20:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 13:20:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098791.1452752 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urcXn-0000nP-O3; Thu, 28 Aug 2025 13:19:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098791.1452752; Thu, 28 Aug 2025 13:19: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 1urcXn-0000nI-LB; Thu, 28 Aug 2025 13:19:59 +0000
Received: by outflank-mailman (input) for mailman id 1098791;
 Thu, 28 Aug 2025 13:19:58 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=LvL0=3I=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1urcXm-0000nC-DN
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 13:19:58 +0000
Received: from mail-lf1-x133.google.com (mail-lf1-x133.google.com
 [2a00:1450:4864:20::133])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b15f763e-8411-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 15:19:57 +0200 (CEST)
Received: by mail-lf1-x133.google.com with SMTP id
 2adb3069b0e04-55f4bcceed0so1076958e87.1
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 06:19:57 -0700 (PDT)
Received: from [192.168.0.110] ([91.123.151.69])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-55f6130b6d7sm235684e87.50.2025.08.28.06.19.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 06:19: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>
X-Inumbo-ID: b15f763e-8411-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756387197; x=1756991997; 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=AM7gvUipPUx/j+JSi0YmT8LY4xKZWt/f7rA6CmPb1ao=;
        b=EzKXhv3ulKXiwZYfkuLB3vhT4bokAwRzrN4Dl+t3g8CrcWjqjKZu2LYEqSDH4FNHIY
         sPFOGv/FP6997tZYHrIE+RXDBwGj+Sg7CZv3sa0RcX1TCR816YlUYKLuc5ArcVbzxlaO
         fhdUu7GUqrFFILZo7v0yOQxsqwGbCzTwx08swl9iNleERzlNPv4nkacQG4+zxGWvPPNr
         qHTw1HyFSpIRuHAHUutSaysXbYaEn6SMtpC70BOkOxuPc4yPHi3x4G/pqVNbnBWLdqtN
         p48lSgJ7ofPDCv7ofdCjXGbETXnIo5wbaAQETwzZmnnqOFApLg7Vm5nMC5HVpGuychn2
         Q/rg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756387197; x=1756991997;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=AM7gvUipPUx/j+JSi0YmT8LY4xKZWt/f7rA6CmPb1ao=;
        b=NwSkbk3/DULuuUmSyFyjf7W8+NxZMI4N6bPIe4Rb3P7wiqSltzB4MIzzrS4lzNpsOF
         t+Q7yUInvkxNIx7cKqcFnhT2ZClNIWvSUchTuT5eU+657QUmMTcvpTUrc4BtpO7bZ36T
         qEixBHo8yNUwb2iMPXpBwr4OMINzh73STl4Oh5h6Lz/N4+ulFQTHYaJyzvIZheVKjN46
         PApW1FgaabAzBXdoTAbzfpGsfD2NZp7P4DLtuy/kA4C86CAh405fMciSclyx+jp9jm+p
         7WL0T/1W9+hJim9baL7GEiLAx+n8EHz4uiUhKA0s5IdimUlCJ8StEXEOEhiHjWa+NCCt
         XwgA==
X-Forwarded-Encrypted: i=1; AJvYcCUeRT59PqOxbkOkSQnXPl92WHTHjXt4xWB+Hem93uo1sh+t9n37Jb1TJOk9tKru3NEP90tFglrum4U=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyf5DvrgeUKZlWcCD55NdQ12ale6KKp7rLHWfGQ+U4CtRQjkil+
	nz773mKCcsHKn8wlN/qJLFktWKHi9z8cRBZYWCH1wDQoPjW7eleuU1k2
X-Gm-Gg: ASbGncueK/p6Pog+RoRg7P3CUCm+g/LVp+uFsBfx4c3et2AWomTImEc7AfDfGbPXHsn
	pfU2sXk7nap1zAM9iW03asCYTawknLMZ7xLtlZSCdOurMwsqhjKJ0hknJlNE8zZBZqwKXNMuIhi
	JcAnVtGU0Tt51vZmvVgOP+rnzUnXxLHXJ/dcP8r41znZe9K4GVZ62C4VMgds7xIv+XyaYCFn2I/
	onvHmkLoH5wdrT4ohTR8SCcJQNW28POTML5Qz742C124SMetPTTr0gbSaWDZ+5gO403qnaENYii
	2gwP5RFna2NfUxF0T3g0KRIirOA6yVkDwmBAVXqlu2BCpdDgjGmzPtW1bT7p+Q0wkg4f9ORuBue
	DCaOHn4BO00ZqLwKjRfeVPO9qpg==
X-Google-Smtp-Source: AGHT+IH9FVuT3lNC4MyskKRKMIAMIadp3Ve8E7QgimLvPaEGJk7pPS9Hzx4Nv+0i4iEjs0yj2xyvGA==
X-Received: by 2002:a05:6512:110d:b0:55f:452b:9c15 with SMTP id 2adb3069b0e04-55f452ba194mr5094229e87.17.1756387196405;
        Thu, 28 Aug 2025 06:19:56 -0700 (PDT)
Message-ID: <1f4c921d-5c0d-46f6-b4c9-c7bf0e41330f@gmail.com>
Date: Thu, 28 Aug 2025 16:19:54 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 09/12] xen/arm: domain_build/dom0less-build: adjust
 domains config to support eSPIs
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1756317702.git.leonid_komarianskyi@epam.com>
 <66b39c4ba25e7a19beeca62ab23f5d3ab3cbae52.1756317702.git.leonid_komarianskyi@epam.com>
Content-Language: en-US
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
In-Reply-To: <66b39c4ba25e7a19beeca62ab23f5d3ab3cbae52.1756317702.git.leonid_komarianskyi@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 27.08.25 21:24, Leonid Komarianskyi wrote:

Hello Leonid

> The Dom0 and DomUs logic for the dom0less configuration in create_dom0() and
> arch_create_domUs() has been updated to account for extended SPIs when
> supported by the hardware and enabled with CONFIG_GICV3_ESPI. These changes
> ensure the proper calculation of the maximum number of SPIs and eSPIs available
> to Dom0 and DomUs in dom0less setups.
> 
> When eSPIs are supported by the hardware and CONFIG_GICV3_ESPI is enabled, the
> maximum number of eSPI interrupts is calculated using the ESPI_BASE_INTID
> offset (4096) and is limited to 1024, with 32 IRQs subtracted. To ensure
> compatibility with non-Dom0 domains, this adjustment is applied by the
> toolstack during domain creation, while for Dom0 or DomUs in Dom0, it is
> handled directly during VGIC initialization. If eSPIs are not supported, the
> calculation defaults to using the standard SPI range, with a maximum value of
> 992 interrupt lines, as it works currently.
> 
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
> 
> ---
> Changes in V4:
> - consolidated the eSPI and SPI logic into a new inline function,
>    vgic_def_nr_spis. Without eSPI support (either due to config being
>    disabled or hardware not supporting it), it will return the regular SPI
>    range, as it works currently. There are no functional changes compared
>    with the previous patch version
> - removed VGIC_DEF_MAX_SPI macro, to reduce the number of ifdefs

very good, thanks, only NIT below

Reviewed-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>



> 
> Changes in V3:
> - renamed macro VGIC_DEF_NR_ESPIS to more appropriate VGIC_DEF_MAX_SPI
> - added eSPI initialization for dom0less setups
> - fixed comment with mentions about dom0less builds
> - fixed formatting for lines with more than 80 symbols
> - updated commit message
> 
> Changes in V2:
> - no changes
> ---
>   xen/arch/arm/dom0less-build.c   |  2 +-
>   xen/arch/arm/domain_build.c     |  2 +-
>   xen/arch/arm/include/asm/vgic.h | 21 +++++++++++++++++++++
>   3 files changed, 23 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
> index 69b9ea22ce..02d5559102 100644
> --- a/xen/arch/arm/dom0less-build.c
> +++ b/xen/arch/arm/dom0less-build.c
> @@ -285,7 +285,7 @@ void __init arch_create_domUs(struct dt_device_node *node,
>       {
>           int vpl011_virq = GUEST_VPL011_SPI;
>   
> -        d_cfg->arch.nr_spis = VGIC_DEF_NR_SPIS;
> +        d_cfg->arch.nr_spis = vgic_def_nr_spis();
>   
>           /*
>            * The VPL011 virq is GUEST_VPL011_SPI, unless direct-map is
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index d91a71acfd..39eea0be00 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -2054,7 +2054,7 @@ void __init create_dom0(void)
>   
>       /* The vGIC for DOM0 is exactly emulating the hardware GIC */
>       dom0_cfg.arch.gic_version = XEN_DOMCTL_CONFIG_GIC_NATIVE;
> -    dom0_cfg.arch.nr_spis = VGIC_DEF_NR_SPIS;
> +    dom0_cfg.arch.nr_spis = vgic_def_nr_spis();
>       dom0_cfg.arch.tee_type = tee_get_type();
>       dom0_cfg.max_vcpus = dom0_max_vcpus();
>   
> diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/vgic.h
> index fb4cea73eb..11f9d216eb 100644
> --- a/xen/arch/arm/include/asm/vgic.h
> +++ b/xen/arch/arm/include/asm/vgic.h
> @@ -355,6 +355,27 @@ extern void vgic_check_inflight_irqs_pending(struct vcpu *v,
>   /* Default number of vGIC SPIs. 32 are substracted to cover local IRQs. */
>   #define VGIC_DEF_NR_SPIS (min(gic_number_lines(), VGIC_MAX_IRQS) - 32)
>   
> +static inline unsigned int vgic_def_nr_spis(void)
> +{
> +#ifdef CONFIG_GICV3_ESPI
> +    /*
> +     * Check if the hardware supports extended SPIs (even if the appropriate
> +     * config is set). If not, the common SPI range will be used. Otherwise
> +     * returns the maximum eSPI INTID, supported by HW GIC, subtracted by 32.

NIT: s/returns/return ...


> +     * For non-Dom0 domains, the toolstack or arch_create_domUs function
> +     * applies the same adjustment to cover local IRQs (please, see comment
> +     * for macro that is used for regular SPIs - VGIC_DEF_NR_SPIS).

  ... I am not 100% sure, that I follow the wording "For non-Dom0 
domains, the toolstack or arch_create_domUs ...". Did you perhaps mean:

For Dom0 and started at boot time DomUs ...?

  We will
> +     * add back this value during VGIC initialization. This ensures consistent
> +     * handling for Dom0 and other domains. For the regular SPI range interrupts
> +     * in this case, the maximum value of VGIC_DEF_NR_SPIS will be used.
> +     */
> +    if ( gic_number_espis() > 0 )
> +        return ESPI_BASE_INTID + min(gic_number_espis(), 1024U) - 32;
> +#endif
> +
> +    return VGIC_DEF_NR_SPIS;
> +}
> +
>   extern bool vgic_is_valid_line(struct domain *d, unsigned int virq);
>   
>   static inline bool vgic_is_spi(struct domain *d, unsigned int virq)



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 13:27:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 13:27:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098817.1452771 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urcer-000362-Ki; Thu, 28 Aug 2025 13:27:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098817.1452771; Thu, 28 Aug 2025 13:27: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 1urcer-00035v-I3; Thu, 28 Aug 2025 13:27:17 +0000
Received: by outflank-mailman (input) for mailman id 1098817;
 Thu, 28 Aug 2025 13:27:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=AInb=3I=nvidia.com=jgg@srs-se1.protection.inumbo.net>)
 id 1urceq-00035j-HX
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 13:27:16 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on20622.outbound.protection.outlook.com
 [2a01:111:f403:2414::622])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b4bb78a4-8412-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 15:27:15 +0200 (CEST)
Received: from CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13)
 by CYXPR12MB9280.namprd12.prod.outlook.com (2603:10b6:930:e4::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Thu, 28 Aug
 2025 13:27:04 +0000
Received: from CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732]) by CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732%4]) with mapi id 15.20.9073.010; Thu, 28 Aug 2025
 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>
X-Inumbo-ID: b4bb78a4-8412-11f0-8adc-4578a1afcccb
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Gd9eEAx6A2rAYOyJozqfEX4RV8pU71nHjjF8ahljVKWx1NQMvRardEdElvB/WLJWdGfh1iWphfsop7gmU4O83xGqhwKe9CMp2i5e2ww7gtcmDzTPUhIKFGmVqq5F2Y/aY4iyTFcqZReAKNjmRMEtEXVaenDa1+AR0NhN6rqkys7BYzP5lU8Jxd7NWmd9eR+pKxlYB7YeT/MTZ9ecVbk4NAIjOvBSqjE4QBOl9F8HkU75w8bfq2ymm9BUHal42r04VkHnkOsARFDL4T73ds0O89kh1jHQP40/eugTRr53dwFEuVUo2NbjhoAq98tw99MHu0qQEymri61OZ8Pg4KEuEw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=TLwGmU6h1uV0qCtV4HRWJIIn0VTSZ/dqI+IK434meUc=;
 b=coRESzXsKw6oIUoaQOkD/Z2Hb/qmwWanRcWqsFG/bil84hSJg2sWTljACrFB20kddSUSHDJ6RDvQNZsJJNejQE6C3asVyiCy+RLXL+nAD+VZSxLSgOlZ0KHoCmX3fmjAV7NWkAZ+dWR5dwLYJKd+2REngROjN+WlYAdMbdJ/yBCKUX/ZvH0aLUDOdwqXs9oA9IM9o/xgthMbD6qAQO395y0BF4TGMKTzBqprQ/1AoidryjoluftRdfCK3fGNLWuZ5IbImpCh2bzBeEjm6+zxXvLIN/yqrFhDKd8maQ84tmqsPUV3ig6nvXgIt9BcnHnGm9yqB6EpLk/MPpCEITFOMA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com;
 dkim=pass header.d=nvidia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=TLwGmU6h1uV0qCtV4HRWJIIn0VTSZ/dqI+IK434meUc=;
 b=rQpn04c6Ye9UKItxO6SXH14Ix8cRtL2UDHs4ISRAWIIqMelceLywwl8MMECLUBEUSVsX8JNQAHJ9BjCdev2psJbKyCBRJgiXxbxP5n4S6irWwHUo4Kyha2w5jeoWEkqtzb5b60BgXLyGLq1w3pI4tCxJyyMMA3hlOo/2v61c5neNn+vGhy1FO0+SQBm+aV2rN56fd3v3X0WWne1zDGq1WGRGT/zTQEXRga0PySUWzy/D/eFx9qrUphcqSrkh3CyGi7/wQBvVHa5kHMvyxipnh9THsyTDw9nEDUIDvEiN3VUAKnfO7kQJXrXL+wODlONxrGiGsTo0NxZu59wsBKAiDA==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=nvidia.com;
Date: Thu, 28 Aug 2025 10:27:03 -0300
From: Jason Gunthorpe <jgg@nvidia.com>
To: Leon Romanovsky <leon@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Leon Romanovsky <leonro@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 04/16] dma-mapping: rename trace_dma_*map_page to
 trace_dma_*map_phys
Message-ID: <20250828132703.GC9469@nvidia.com>
References: <cover.1755624249.git.leon@kernel.org>
 <d7c9b5bedd4bacd78490799917948192dd537ca7.1755624249.git.leon@kernel.org>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <d7c9b5bedd4bacd78490799917948192dd537ca7.1755624249.git.leon@kernel.org>
X-ClientProxiedBy: YT4PR01CA0293.CANPRD01.PROD.OUTLOOK.COM
 (2603:10b6:b01:10e::21) To CH3PR12MB8659.namprd12.prod.outlook.com
 (2603:10b6:610:17c::13)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PR12MB8659:EE_|CYXPR12MB9280:EE_
X-MS-Office365-Filtering-Correlation-Id: 297629e9-d6a0-4274-26f4-08dde63693cc
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7416014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?czdNvlljPZsTPbzSSuugKdYWnNsYJthpm6ajyxrlWHCasD/3QUWoECGQ1E0T?=
 =?us-ascii?Q?jRhPZXNnjd9X2r7rXqWMakMIm3CMLyQzWXxiji5gNdlJvrMkg9r2sHbwk70d?=
 =?us-ascii?Q?EJTKr6t7B1UHuLxbuGZ89kzikre2Sg1AcVozknNd7eo+XihYfGlGj+b4MrP6?=
 =?us-ascii?Q?VGriNtg77zKiRNfyrOfRDm6XTZjEPiZW4w1tCqc1+I4XdGR+NZjPbUUqIbhA?=
 =?us-ascii?Q?XTl7CdVtpHFrzdIFiKePkXujr5QyRYFspeVDWq1tRTJUO3w0UJ/B3jfYNkvU?=
 =?us-ascii?Q?PSiC+7tyCX6m9QO8TKAgMUXNsA6uj51FE/YlyI23728UMh6Tb5/lhs5rwnyJ?=
 =?us-ascii?Q?FviOLoEdR0Gysx1R+sLsVQ+QFCkb7h5br+DAjgW/dz837ikefNnNDvxnI50f?=
 =?us-ascii?Q?WWkyqwA8hF4HbkP+v6ZtQZwiMiJFHKUc82muWM9mrCU+CYGmkmYiHe9cF+Nu?=
 =?us-ascii?Q?cq63AcRoVoumS5h61MMx2QaBkGg0y24V8DNYrWP8lms78qrS/Bgisik5aYtm?=
 =?us-ascii?Q?1qIAP7bvtoBqMYXfNRPdBi6UO1uA/U47dWUojABKhRrTiz45gRhyNz6ra/Lu?=
 =?us-ascii?Q?U22LAfdCRgdDD+bcIWfVTdSPNjO37bg6EjKQz7x2lpo1Aborn4roOKrC5oTn?=
 =?us-ascii?Q?r1hIFhETU8+TYUi7U2X9alkuuss1FxJRxiHsJ4C1pc696ZDJiLb9tGGzAOno?=
 =?us-ascii?Q?SJ1Z3Z/5OK6GQkzSIfrh4TxN9DAOLxDF8491hljTgmQrMWki1eVYjfrQElE4?=
 =?us-ascii?Q?hU3yqGMsWsgTnda4ZD6iFniASa2cqo6hOcDSTW7TzjYiXdMY9NMZH8S9xT2i?=
 =?us-ascii?Q?ZItA0IwZQylPwLeZWr5EDDWLxmk9LHYpw3kTCSIqAKaU00dt4MWV8m4sXZIh?=
 =?us-ascii?Q?h4I6rPAJUth0U2gcJjonT0PwsrQV/NxHbV4VZi+GyB7jZsCEe6JVGoswD3yu?=
 =?us-ascii?Q?KG3hkuEiHT28V3bsajfefAdO5ti3/kqmhYJ55asM7+edmB6rhH7+IRXXZXd+?=
 =?us-ascii?Q?f+KVlyoR5IdWUtw6ScaV0SSH94eUXDrOflNMU/qaYsQWFVufY7xOXl+6P9N7?=
 =?us-ascii?Q?FSCMzGhv+nz80nqIIInjMYZ7v3/FP4A2vbGJ/Mcl1JkF0701tFtRJQHyEo2M?=
 =?us-ascii?Q?rM+Mu44UFIpfiaiVKVELFHCf12vjrW3ddKIsMhWWMKvvhsiveTG8OxjPEZnq?=
 =?us-ascii?Q?Yv0oD1SWyaeynNQZ6rpJAFtHMYy47sl3akZOs653VcHl1qcODZ4LPbnsRg/8?=
 =?us-ascii?Q?C6f9IdwM6mgY6zLzaj09wJV+LDYIZEWNBZLZSEjA6e/Pz417sBpIVWU9nzsP?=
 =?us-ascii?Q?rEeKG92slLYu+hEPVkPg6Rb8U53kZ7oCm3UzgsrX6SX+sFnEwCuBuvH+vocQ?=
 =?us-ascii?Q?kpQPVWVQgBdWZ1AdnmVFfX4C+IUR8D4PDIQLI69skou5Vw0Tw44kgP9KPXLm?=
 =?us-ascii?Q?sOiL6Nbe9uk=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR12MB8659.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7416014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?ZAKmjLWoSz34gFmZnK/Uz5xPsr89Vcmg6Q1YT77QQxenOMeXPtDZ02X0k3T6?=
 =?us-ascii?Q?DG3OI34wAP5iIQkS/U4S7ya39155iSFgLhzJmeQnOBEKzOhR4Pi9Ozjg4pY+?=
 =?us-ascii?Q?K6hiepGCVodIn8tdfiCuf6a+SrWI5EHPVfkXoFQIILjJrYBQwzTa7jm+AgWY?=
 =?us-ascii?Q?9kS4Td7ddLAue+67qgmUTRv8BFFBwAi7h+AGAvo/y4rbGi3rR7hAXom6Y7cT?=
 =?us-ascii?Q?eFwMu+2o7uDeQNo/9sd7PkYcNvwVTSm5IgyNd5ZUXuz2nueFL1YKn+arh9K+?=
 =?us-ascii?Q?HjvkxOsaq9RFsWke+hB/3LA1kWO49y7DdJJGvnAcs7N9w2t2GNjY4Pv93wIk?=
 =?us-ascii?Q?6ilj+2AGI8nvTTX5HWUyJPZ/d1MO/TLKQe9rB55cleSlIT6E69RJgCyOLKeN?=
 =?us-ascii?Q?60xwGpNkCePzmIV5KYEJMcdDDYe4doYTMNRX/kzkNzNWrV3zIDY1vCwWgvnW?=
 =?us-ascii?Q?WG4mUE4bvSW170WTSDPb6V2ZnkUX9qhtaqoOjqeDc6QosbMHfXxt1hYKHPjt?=
 =?us-ascii?Q?rEJ9Dl1+hS04/VOmMqitUchhBJREEVoCd1amnMKOgT9PZnb3KBmTgeTQYbw0?=
 =?us-ascii?Q?54HrYK4YEoxB/6rpPe6KuGlcOFFgOCyN1IS3IQpz6g5aDOVPxRfvpA6WBVWy?=
 =?us-ascii?Q?UvkNDmlEquMYXfd1jCBc69iKHCqS3JBIZWCkOBaxm+YEjhORgByTuEZaj3zN?=
 =?us-ascii?Q?K/iIsUPmXRzUn8xIzuw9tuDHO2DKkNZohFrxVd0XxEtuid+tteoYGS64L1/k?=
 =?us-ascii?Q?oXeMH2ze0CXia91priLXtYAS822ItxYkcGe/mXIRc3YwMnnzXYmLddBBGzox?=
 =?us-ascii?Q?0ua445bUBZxYG3XpnJHW5se02szr4kukMu8xMA+S94P3No78I0o8wGKfOMgW?=
 =?us-ascii?Q?4/Pu/ZvxzE3RZICBYBH35cdT+UdXe2koKMnO06xwLEMu3QhLGo6RpB2Av66q?=
 =?us-ascii?Q?rxaoMAyQr7jlpLC8FS4+bpv1m46ptOYSnMLqZhw0dG1Ur5epxtL3CZTuFF67?=
 =?us-ascii?Q?zMQFAIVQus4PusJbVFUfWViaM9z2LdUb8qOKEVc9yHFSKZVhY4tMXQU4uelB?=
 =?us-ascii?Q?WIno3jK6BDm6Hzf/NrwDDsUXAFiQH5N5gDla1kh5yXNWssmvSKyR6nO1hKL4?=
 =?us-ascii?Q?lRngphKojir5/gDZy7DhPndm3G/Hoj46qaOo59FgXNnY+z0h4gTWwbEmLhDh?=
 =?us-ascii?Q?ZQKNRj8hEJEJqtv0MACzJMQI1tvS8G0CIw+ilHS+5uArgY4VKhcrNoZhCqiB?=
 =?us-ascii?Q?5MnnBDvglG+IfHWu6IMcX9t0KZ1728gzLjB833lLBE4qYcpD9cnES7T3Tuw5?=
 =?us-ascii?Q?dQeW9DjxbqE1ILRGOLB0/CsOFrKncHc6CxXHX6kxfO4QDESQ6qzHoD6bAHkr?=
 =?us-ascii?Q?P8nlsRBhh+eaPtkNqgtA/azmq6TpNKZxMQnn8eN8V5KuLioq7n4cjlOx0rNb?=
 =?us-ascii?Q?LFdNRJMc5g+0l5xLl7wWc/W7AnMpocDfyVDwUtkhrEY/S+Q5FoWzIL+ayFwE?=
 =?us-ascii?Q?VmTpKTDRNfqHN7SR91nghMOKa3EZk/r3karcJCmOXukZez9mlZ/4F6IgFrlH?=
 =?us-ascii?Q?ZO6xPcvjZRXhs6E3ap8=3D?=
X-OriginatorOrg: Nvidia.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 297629e9-d6a0-4274-26f4-08dde63693cc
X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8659.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 13:27:04.5221
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: QGO/7rFcEAJDfFVtKqdLW+l6RopuuLnfoyI6/MoVuOOAhziHFak0TU6alJ+R6uUz
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYXPR12MB9280

On Tue, Aug 19, 2025 at 08:36:48PM +0300, Leon Romanovsky wrote:
> From: Leon Romanovsky <leonro@nvidia.com>
> 
> As a preparation for following map_page -> map_phys API conversion,
> let's rename trace_dma_*map_page() to be trace_dma_*map_phys().
> 
> Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
> ---
>  include/trace/events/dma.h | 4 ++--
>  kernel/dma/mapping.c       | 4 ++--
>  2 files changed, 4 insertions(+), 4 deletions(-)

Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>

Jason


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 13:30:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 13:30:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098830.1452782 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urciB-0004dm-6F; Thu, 28 Aug 2025 13:30:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098830.1452782; Thu, 28 Aug 2025 13:30:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urciB-0004df-3G; Thu, 28 Aug 2025 13:30:43 +0000
Received: by outflank-mailman (input) for mailman id 1098830;
 Thu, 28 Aug 2025 13:30:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fCus=3I=epam.com=Oleksii_Moisieiev@srs-se1.protection.inumbo.net>)
 id 1urci9-0004d7-HI
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 13:30:41 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3002a8f9-8413-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 15:30:39 +0200 (CEST)
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com (2603:10a6:102:32e::21)
 by DU7PR03MB10945.eurprd03.prod.outlook.com (2603:10a6:10:5b2::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.16; Thu, 28 Aug
 2025 13:30:35 +0000
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::f12d:7394:bbe3:dfc]) by PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::f12d:7394:bbe3:dfc%6]) with mapi id 15.20.9052.014; Thu, 28 Aug 2025
 13:30: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>
X-Inumbo-ID: 3002a8f9-8413-11f0-8dd7-1b34d833f44b
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hJ2o53RPn+iZP6K3L2wQsLZGvjuuQbrgBIFp7ZP7WgTwMY2hIugmi+zgnK0UHhglq2A0wOIwzLq/g0a8JGlwqUayq5k2rtXaTF8eUqK0lg3+KlfjmKarILL7ga5wSaxpgUvW9SzXh/ryNlBZEwGAKj43Ih8A0MbbNBw39ThWIn8rW5hfmOeDgCJglAqs3V05bk8jBe73HR++q4z+RgdS8t5xt3p/XnUuj2f9XUZafo5Bp7rU2oQfbui+EioACqneFK0my3ePlWeCpjy7cEJn23Khekvn8G6JagxA2cSO/1Kmcyy4n8zJTi5uHP/+sThNT6bmj2N78HnzanNZQHqmNQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=rm0yVg8vleStWIYb3XGZ4+MQnADbqmPVnNiSbaXYdfQ=;
 b=xi27NwpW7wpwXZPzyZIrgdigBzRMnZSZWwPFnp+41pTgyWtuMiSSeOQem+QcnqPIp2IE6f2mneauIBrjf5F5swKsdj2bQKWb18Xfwn2uiWc+jpxY8DhLdJZMQ+4S7ukrplRdq+kvzIsWFIN/9DMtcD2mIWHFQ6pDVQKSMR7RDef3RpT4POq3TpEjSKGzzTPAb21qwKyMkpVkeLw4l1a/SSRw2QJYsNhb18tQfYBIUfIxFvF9S68PiTpNe7Oy36weiocDqVLv3RsTkTUzc2TeafzWFdR5BYiqhc4vWEslYgg2BFhLSZdkYeS/jq8r85KzB9BMeqJGKTf79SPetg061A==
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=rm0yVg8vleStWIYb3XGZ4+MQnADbqmPVnNiSbaXYdfQ=;
 b=A9J4a9re1Jf4truOVfrTJjyhUmWuIbHS3Osjn/QL96Br3mb19USe4F33Lk/xLejpV7jZvW1ABki++Bgp53EG2H28tbwkchjzxmd3dWt4qd04uy2mS4s7F0kNSVxnoX5kDDkhnbAHDaGQ+5DIJyOE+rGvYvb4ocAzgmsxRWVCQz+s2yzao6cxPbGn3pXY3JJ7BSUlVTcTC3HFEseoCgDIKoOLb0GmjiPoVFkWTc+hre9vsEyZrkuXuQ+fwqdJlvV2MPbhtxLP9+3kt8i0nOWfeaPWqDm7L4+E2AFNWypPxJlgfKXS5myvzcmPMOb2sVFeK2tSMJsNcDeq/A8kmQFwPw==
From: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
To: Stefano Stabellini <sstabellini@kernel.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Bertrand Marquis <bertrand.marquis@arm.com>, Jan
 Beulich <jbeulich@suse.com>, Juergen Gross <jgross@suse.com>, Julien Grall
	<julien@xen.org>, Michal Orzel <michal.orzel@amd.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Grygorii Strashko
	<grygorii_strashko@epam.com>
Subject: Re: [RFC PATCH v5 02/10] xen/arm: scmi-smc: update to be used under
 sci subsystem
Thread-Topic: [RFC PATCH v5 02/10] xen/arm: scmi-smc: update to be used under
 sci subsystem
Thread-Index: AQHb+v2VN6PNmY5o9E6echLDtYWg47RvkxgAgAbZdoCAALH2AIABK1sA
Date: Thu, 28 Aug 2025 13:30:34 +0000
Message-ID: <22a4bcef-9665-4758-b81c-0361fed1e4e4@epam.com>
References: <cover.1753184487.git.oleksii_moisieiev@epam.com>
 <a6a538ca4c02483e745f18db4f74504dad525fe6.1753184487.git.oleksii_moisieiev@epam.com>
 <alpine.DEB.2.22.394.2508221709020.2743087@ubuntu-linux-20-04-desktop>
 <1f64aa13-d9d3-4b58-9581-a45f7173430b@epam.com>
 <alpine.DEB.2.22.394.2508271239020.3391208@ubuntu-linux-20-04-desktop>
In-Reply-To:
 <alpine.DEB.2.22.394.2508271239020.3391208@ubuntu-linux-20-04-desktop>
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: PAVPR03MB8946:EE_|DU7PR03MB10945:EE_
x-ms-office365-filtering-correlation-id: 02564bd6-6de0-4f89-1e4b-08dde6371195
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|376014|7416014|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?eUFRK3pINlpQTEhMYkRQK0hCZi9JZGhXMGZPSHQ3VXlYdGxHSkNRaWNNL1A4?=
 =?utf-8?B?Y0sycDMvWnhGQUxjUngzYUFRZjErY2RKQXp5UXpHZEF1ZDF2L0VVeXJxQktt?=
 =?utf-8?B?WUR1NXFtcmVCOXRaWUNSWnNxMHdxMVI3RDYzUjFSQlJhMkR2Z1phTU9VSmtG?=
 =?utf-8?B?TVVTUkcyNHcvcnpUU3ZCYTRvbGV0cDZUUDE1S1JMWGhrUTg3eExLbzVkZ3Fz?=
 =?utf-8?B?MGV0SlgrdGUyT3plMjBYRXlOL3AxT0VMWUI0akFVTXI5dVpyRVc3eCttRzY1?=
 =?utf-8?B?NVR1cUxxVGVNRmVOOVF5Z0VhRS9rVUIyeXhYQzBEdjhIV1gxMC9wVkw3eGZP?=
 =?utf-8?B?QTBHTVQxZXl1VGc5eW9STkRzYTV0ZStMSWw5V0FrMHNyT3Nzc2hJcCtnOUdk?=
 =?utf-8?B?TXh5eGRjSzlqMlloYnU0Z2kzOUxmbzVVNm1tdmM2Nml6eVdkTzNpWVJRUE1W?=
 =?utf-8?B?UW96ZldHR0ZiVXI0SExha1N5UFRWdEEraThZaW03aElvZ2Z3QWk1VlhPWG14?=
 =?utf-8?B?Z3VyMWpuQmVsbGlOZkxiOTNHSmhVYnh5dmJoS29OaEdiakpYaEE3L0dObEJv?=
 =?utf-8?B?UWUzTjZqWXJHcFZ6T1IxeWZXQUUySmF3SDI4M3VBbVB5cjZvbXVQczR2MHZZ?=
 =?utf-8?B?WU5uUHg3cERId0o1VU5UZXAxTG1EbWlHR09VV1piWWF5ZXUxYklrUlZrS1dD?=
 =?utf-8?B?TitaOGVPSi8xMHptanZXeUp1OG5sbmVkMHRpRzUwN3lDSGhFMDk4M2JaSDVK?=
 =?utf-8?B?NGcvVlppR3ZMdjBtSGRMelRoQm1NNWhoVkhrOS8zTHdVbGlrVWxwRCtJVVhM?=
 =?utf-8?B?cWc1MjhpRTQ5bnQ5NDNZMFVMY2dkekFqdktoM1k0dU4vUWVCSUJLQ3JCUlJr?=
 =?utf-8?B?YTRTN3RNdFFoZitlQjBIMGtlNzhTelFjbkZoTHNZMDdLRE9yT0lZd2JwT2hz?=
 =?utf-8?B?eHRmRU9WSkU5QlREcytLNGxpU0JuWnRxb3pTUTFHektBdTlVTEdCVnRjSjJB?=
 =?utf-8?B?c0ZEWXh6T1h2ODBHZkNGTnk4Rnlpb3FDU2xiRjBHTThPY1RSUXNqUmp2U3M0?=
 =?utf-8?B?UUxYUjB6TUk3TmJ1VS8vMmpXOGZobCsvSFlLTVEwd0I1Z3oyalQ0MmcrditZ?=
 =?utf-8?B?K1F0RUhDcDZLYnFDeXJ2ZXNoQ25OOTIzV2ZkWmh5L2czV0pPMnNJQ3pVUHFy?=
 =?utf-8?B?MVlHM0VaQkFjQ3crL2Y0cWVpejFIUytyOUw0bkxuLzZibmF3SGJKRkdENDVa?=
 =?utf-8?B?ZmZZUkRDZW1WcjJQdVNwK3JKL3JXcXZqT2JVempsa1BMd2NDRGJXejJMOG5N?=
 =?utf-8?B?d0tZTHlRcVVvOVgwVi95eDBnU0NaWkx0Nkp3amN4MDcyQzNCR1VHdUhVU1Jy?=
 =?utf-8?B?Y2QrZld6ZlREY05lTTBFR1VPYngrVGJ1b1FZaWJMV0ZQeUZRZ0grVFhKZXlj?=
 =?utf-8?B?aDYyMXFWWm9pdzdreFhyRG80ckYrajJoOTlocCtIZnlZeGtGS1gwcUlLSEFU?=
 =?utf-8?B?anJpT1l0UUhvdlRBbEpINzdvT1AveENVWVpBaEswVmtKc3RyWUhrS2NLWExL?=
 =?utf-8?B?R1ZwU0ZsUWYrcTZpdE56bEVJdkNMUTZkcmtOeG9hd1BZQzVUclYvSWV1VEY2?=
 =?utf-8?B?MTBDcGRSRDBQNU1xbWdETkszVnVsNW91Z1dZazBVaHdkcnBoNDgyaEJXc1Jo?=
 =?utf-8?B?N29GU2NHS3V3TEkrRjJHRmtmWjhFUzRiZUhYbFgwY2JzcHpxN2pPMjVDWERu?=
 =?utf-8?B?bzYvUDRDTndFa3Z1dmxGdFBpNHFybm5lRCtoTVk1b3pMc2YvajMyV3o4V1hs?=
 =?utf-8?B?Tk92RW9hczV2SHNpeUNCVXlYZTcwZlZFS1R1MXcwbkpnU0ZSLzVMbXNyYkdy?=
 =?utf-8?B?OFo2bi9peVJvVFlwT1JPb0lzSUg0YmE1OE1GRmdyRy96dDhRNGRMa0ZUTTUz?=
 =?utf-8?B?OFVwYUZNMThrRHhtWCtXaFNxTWpsbklBK3BwTTRUODVTYUwwUEZmVFB4U2Vk?=
 =?utf-8?B?dHhlbHpXVHBnPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB8946.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?VzNSNVBDTHpCajhBdzA5RGFhVkJqZkNPdFB1S3BFN1lpTDZmSmhMVC9ibXRp?=
 =?utf-8?B?MWlaK1lTVm5hMEJSMXdydHJoTHk5OWtHOUpaWlhoR0loUEdLUnBaRTFkSHVU?=
 =?utf-8?B?NWhhVmNlOWdDcVk2WXR2WEFWMUErY0doUlcyL2U4NXJHS2JMc3pjVTZudWxT?=
 =?utf-8?B?d3Z0UHBVSWxyc2JMY1hrblcwK1g3eElJUzFTdlovbEh1OFdCOW01TmR0aUF3?=
 =?utf-8?B?Qmt3U0plQ1hrYkpBWktoRjcycFFQaVZUWGNmSHlSZnhUUHRTd1VzWXBwYldZ?=
 =?utf-8?B?Q3JDWVZiTk1TSmV4K0F2dmNzL2F4aUF5OGhnN0tsbjhYMzBtRjQrMnhReEZF?=
 =?utf-8?B?T0RRMGhkaW4yL1R6cyttWUN0Qm9PSlk2dmY2MHZ5U2c1NnNoVEZoWU1UbjB3?=
 =?utf-8?B?MU1jRXVKZmkrcllLY292b3VZU2k4b0RnVXRiZjJETVBEMWhLOCtzMCtidmQ5?=
 =?utf-8?B?RUlZU0JPOWlERnFTY3ZHZ1JGNmE1ckF6VWlQWjFoeHVHRnFyNnU1SVJpb0do?=
 =?utf-8?B?dWJoR3NDMzFZNlRRZWFzUlNUWDNYb0FYalRSR04waFlkNUdENjkxbEFQMHB3?=
 =?utf-8?B?NThiY2Q3V24ySXQyZVhhdEQzQnVpN0FOcURqMTh0WHA3QytSNWhNYWx0ZVM4?=
 =?utf-8?B?aVE0aW5wZHJGZTA4d3pxdUljdmc4b3MrbjFMRXNhSnYrUWNaTGVHMlFhWEVS?=
 =?utf-8?B?eDdhUVNPNE45V1FnMUgydVpqWlg4VjVYN01PVVNkbG94SWQ2YXZVMXdnbnAy?=
 =?utf-8?B?RTZENGhiMUY0WmM0UGZtOElKUzlSKzgxTFJiOWhlZEQ4VzFBeGtVczZoMFox?=
 =?utf-8?B?eDJtQUUzQ2VDbk4rUktqTG9tQ1M3em42VWtFbFpzL0RuT0szRFpLa1NEZlpE?=
 =?utf-8?B?R2wvNHhzbWNzZlNsK3I1VnRzcnpvSnFqNVpTYnBuTXRGZlZUbDdiT2U0YzdN?=
 =?utf-8?B?U3JhempSWlI3V3dkZHlEZlJMWHAzQTJ4MVA2NWhZanVlOFE4UW9vSDh3UENR?=
 =?utf-8?B?Zmg2SXA5ZmRKVTE5dHRrMnIwcXRweG9WdGF0TW00bzg4cVhHQmR3MmJwR0xw?=
 =?utf-8?B?ZlYyNmtwQks1bkNZSHNBaUtrQ1pNWk5DeG9BMTZCV3MrazkrWVdIRGtZb0V0?=
 =?utf-8?B?VlpJcTUxNzNlNENrMWt1NHBHTjhwR3MvUEI4bGFlTk5ESzZ0Ly9CTEQ1Tkt0?=
 =?utf-8?B?Y3FKZ0tGa0dKdnZGWFJQU1VCbFN0RXVnVDVNc2FkaG50SUxscEZhQ3d2Wm1V?=
 =?utf-8?B?SkJzY29SaVM1Mm94Ykg5RnIwaU9USE5OZ0Zoc1V3NGxXWjVvWlZ2dnIwNVhh?=
 =?utf-8?B?b0srakFHTDA1ams5V3JicjFLZzFhQ0c0c3FscGNkU0xKY3l2MG5HdXZxYTNO?=
 =?utf-8?B?NzllZXNhZ0FJeSthMXY2UkhWNDZYR1ZnWlhIcDZBTjFYK0I2UzlzWktoNjRM?=
 =?utf-8?B?c0JPaGNUTmJub1dFVFNDMld6NGw0eXpINTJaczVLYUtPNFhVN2R5Z29KY082?=
 =?utf-8?B?VFNvRWlNV1dxL3hOSmNKcnYzQjlPRURIN0d0a0tEdjRtQ29OeExnM3N2V1FX?=
 =?utf-8?B?TlROZ3FaVkdHSjVsNmxFQklBcHRqSkJMTkhxNFBnWUU0ZXQxREF2Znd4VWpa?=
 =?utf-8?B?VlMrUTc3RXRyTWNIdzE0UVE3c3QxLzFLajUvRDBhM29QeHdISmQ5ZVhJc3dh?=
 =?utf-8?B?OURlZkU4akpPbDhtUnhmVU5keVFRcWF0VlZhK1U5YlFSbDBvOXFmenNwMGlw?=
 =?utf-8?B?OU53QmVZWG0wWEx1SnRwS0pPL0Z5OGswd2JuRlMzcnBkOWZ0QVcyUHJVbnpF?=
 =?utf-8?B?ZXJNc1lXMmRrTmNhYkVjakx4eHIxOGNQbCttZXdjSEtXYjVXYXdIZWRkSlRV?=
 =?utf-8?B?N04yMWwyalgrejczenRnTUhFSkhCMC82S0s3T09BbDAwZG5tQmswYS81eGxk?=
 =?utf-8?B?bDBvdHVLUzB3SEFyNmw2QTkwS241TlpNdFZKT2Z0dmp5MW5ONmxZU044SG5r?=
 =?utf-8?B?RjV1WTR4ZU9Yd3hZR3NqNkFPTm5vYlpyRnRzdUkzN0ZuaDR6Q1VHQUdWUGtx?=
 =?utf-8?B?OERYeWpMOXlGME9TTW9aanZsenk4NWJSMEh4aHRiSGxRRFJxV3JuU3Y3K05X?=
 =?utf-8?B?UzhqNE84a1lWT2E3YkE3VmhnYUhRRkVjbTNPenlDRis4ayt0Y25VMUZ5TFgv?=
 =?utf-8?B?Q2c9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <B2980D032881064FAF315DFB29F0222C@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: PAVPR03MB8946.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 02564bd6-6de0-4f89-1e4b-08dde6371195
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Aug 2025 13:30:34.8910
 (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: azH9PB6g7s4/ZPLK9XG0YFrRfpjO+Biy6djH2UKKKcPz2HA/hej0YNIoRUNCKJpNn9opAI7gz+2tZ2WEOxkbuE77lrQBxhzCc+Q8Ux4gcT8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU7PR03MB10945

DQoNCk9uIDI3LzA4LzIwMjUgMjI6MzksIFN0ZWZhbm8gU3RhYmVsbGluaSB3cm90ZToNCj4gT24g
V2VkLCAyNyBBdWcgMjAyNSwgT2xla3NpaSBNb2lzaWVpZXYgd3JvdGU6DQo+PiBPbiAyMy8wOC8y
MDI1IDAzOjI2LCBTdGVmYW5vIFN0YWJlbGxpbmkgd3JvdGU6DQo+Pj4gT24gVHVlLCAyMiBKdWwg
MjAyNSwgT2xla3NpaSBNb2lzaWVpZXYgd3JvdGU6DQo+Pj4+IEZyb206IEdyeWdvcmlpIFN0cmFz
aGtvIDxncnlnb3JpaV9zdHJhc2hrb0BlcGFtLmNvbT4NCj4+Pj4NCj4+Pj4gVGhlIGludHJvZHVj
ZWQgU0NJIChTeXN0ZW0gQ29udHJvbCBJbnRlcmZhY2UpIHN1YnN5c3RlbSBwcm92aWRlcyB1bmlm
aWVkDQo+Pj4+IGludGVyZmFjZSB0byBpbnRlZ3JhdGUgaW4gWGVuIFNDSSBkcml2ZXJzIHdoaWNo
IGFkZHMgc3VwcG9ydCBmb3IgQVJNDQo+Pj4+IGZpcm13YXJlIChFTDMsIFNDUCkgYmFzZWQgc29m
dHdhcmUgaW50ZXJmYWNlcyAobGlrZSBTQ01JKSB0aGF0IGFyZSB1c2VkIGluDQo+Pj4+IHN5c3Rl
bSBtYW5hZ2VtZW50LiBUaGUgU0NJIHN1YnN5c3RlbSBhbGxvd3MgdG8gYWRkIGRyaXZlcnMgZm9y
IGRpZmZlcmVudCBGVw0KPj4+PiBpbnRlcmZhY2VzIG9yIGhhdmUgZGlmZmVyZW50IGRyaXZlcnMg
Zm9yIHRoZSBzYW1lIEZXIGludGVyZmFjZSAoZm9yIGV4YW1wbGUsDQo+Pj4+IFNDTUkgd2l0aCBk
aWZmZXJlbnQgdHJhbnNwb3J0cykuDQo+Pj4+DQo+Pj4+IFRoaXMgcGF0Y2ggdXBkYXRlcyBTQ01J
IG92ZXIgU01DIGNhbGxzIGhhbmRsaW5nIGxheWVyLCBpbnRyb2R1Y2VkIGJ5DQo+Pj4+IGNvbW1p
dCAzZTMyMmJlZjhiYzAgKCJ4ZW4vYXJtOiBmaXJtd2FyZTogQWRkIFNDTUkgb3ZlciBTTUMgY2Fs
bHMgaGFuZGxpbmcNCj4+Pj4gbGF5ZXIiKSwgdG8gYmUgU0NJIGRyaXZlcjoNCj4+Pj4gLSBjb252
ZXJ0IHRvIERUIGRldmljZTsNCj4+Pj4gLSBjb252ZXJ0IHRvIFNDSSBYZW4gaW50ZXJmYWNlLg0K
Pj4+Pg0KPj4+PiBUaGVyZSBhcmUgbm8gZnVuY3Rpb25hbCBjaGFuZ2VzIGluIGdlbmVyYWwsIHRo
ZSBkcml2ZXIgaXMganVzdCBhZG9wdGVkDQo+Pj4+IHRvIHRoZSBTQ0kgaW50ZXJmYWNlLg0KPj4+
Pg0KPj4+PiBTaWduZWQtb2ZmLWJ5OiBHcnlnb3JpaSBTdHJhc2hrbyA8Z3J5Z29yaWlfc3RyYXNo
a29AZXBhbS5jb20+DQo+Pj4+IFNpZ25lZC1vZmYtYnk6IE9sZWtzaWkgTW9pc2llaWV2IDxvbGVr
c2lpX21vaXNpZWlldkBlcGFtLmNvbT4NCj4+Pj4gLS0tDQo+Pj4+DQo+Pj4+DQo+Pj4+DQo+Pj4+
ICAgIHhlbi9hcmNoL2FybS9maXJtd2FyZS9LY29uZmlnICAgICAgICAgICAgICAgIHwgMTMgKyst
DQo+Pj4+ICAgIHhlbi9hcmNoL2FybS9maXJtd2FyZS9zY21pLXNtYy5jICAgICAgICAgICAgIHwg
OTMgKysrKysrKysrKystLS0tLS0tLS0NCj4+Pj4gICAgeGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNt
L2Zpcm13YXJlL3NjbWktc21jLmggfCA0MSAtLS0tLS0tLS0NCj4+Pj4gICAgeGVuL2FyY2gvYXJt
L3ZzbWMuYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNSArLQ0KPj4+PiAgICB4ZW4vaW5j
bHVkZS9wdWJsaWMvYXJjaC1hcm0uaCAgICAgICAgICAgICAgICB8ICAxICsNCj4+Pj4gICAgNSBm
aWxlcyBjaGFuZ2VkLCA2NCBpbnNlcnRpb25zKCspLCA4OSBkZWxldGlvbnMoLSkNCj4+Pj4gICAg
ZGVsZXRlIG1vZGUgMTAwNjQ0IHhlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9maXJtd2FyZS9zY21p
LXNtYy5oDQo+Pj4+DQo+Pj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZmlybXdhcmUvS2Nv
bmZpZyBiL3hlbi9hcmNoL2FybS9maXJtd2FyZS9LY29uZmlnDQo+Pj4+IGluZGV4IGZjNzkxOGM3
ZmMuLmJiZjg4ZmJiOWEgMTAwNjQ0DQo+Pj4+IC0tLSBhL3hlbi9hcmNoL2FybS9maXJtd2FyZS9L
Y29uZmlnDQo+Pj4+ICsrKyBiL3hlbi9hcmNoL2FybS9maXJtd2FyZS9LY29uZmlnDQo+Pj4+IEBA
IC04LDkgKzgsMTggQEAgY29uZmlnIEFSTV9TQ0kNCj4+Pj4gICAgDQo+Pj4+ICAgIG1lbnUgIkZp
cm13YXJlIERyaXZlcnMiDQo+Pj4+ICAgIA0KPj4+PiArY2hvaWNlDQo+Pj4+ICsJcHJvbXB0ICJB
Uk0gU0NJIGRyaXZlciB0eXBlIg0KPj4+PiArCWRlZmF1bHQgU0NNSV9TTUMNCj4+Pj4gKwloZWxw
DQo+Pj4+ICsJQ2hvb3NlIHdoaWNoIEFSTSBTQ0kgZHJpdmVyIHRvIGVuYWJsZS4NCj4+Pj4gKw0K
Pj4+PiArY29uZmlnIEFSTV9TQ0lfTk9ORQ0KPj4+PiArCWJvb2wgIm5vbmUiDQo+Pj4+ICsNCj4+
Pj4gICAgY29uZmlnIFNDTUlfU01DDQo+Pj4+ICAgIAlib29sICJGb3J3YXJkIFNDTUkgb3ZlciBT
TUMgY2FsbHMgZnJvbSBod2RvbSB0byBFTDMgZmlybXdhcmUiDQo+Pj4+IC0JZGVmYXVsdCB5DQo+
Pj4+ICsJc2VsZWN0IEFSTV9TQ0kNCj4+Pj4gICAgCWhlbHANCj4+Pj4gICAgCSAgVGhpcyBvcHRp
b24gZW5hYmxlcyBiYXNpYyBhd2FyZW5lc3MgZm9yIFNDTUkgY2FsbHMgdXNpbmcgU01DIGFzDQo+
Pj4+ICAgIAkgIGRvb3JiZWxsIG1lY2hhbmlzbSBhbmQgU2hhcmVkIE1lbW9yeSBmb3IgdHJhbnNw
b3J0ICgiYXJtLHNjbWktc21jIg0KPj4+PiBAQCAtMTgsNCArMjcsNiBAQCBjb25maWcgU0NNSV9T
TUMNCj4+Pj4gICAgCSAgZmlybXdhcmUgbm9kZSBpcyB1c2VkIHRvIHRyYXAgYW5kIGZvcndhcmQg
Y29ycmVzcG9uZGluZyBTQ01JIFNNQ3MNCj4+Pj4gICAgCSAgdG8gZmlybXdhcmUgcnVubmluZyBh
dCBFTDMsIGZvciBjYWxscyBjb21pbmcgZnJvbSB0aGUgaGFyZHdhcmUgZG9tYWluLg0KPj4+PiAg
ICANCj4+Pj4gK2VuZGNob2ljZQ0KPj4+PiArDQo+Pj4+ICAgIGVuZG1lbnUNCj4+Pj4gZGlmZiAt
LWdpdCBhL3hlbi9hcmNoL2FybS9maXJtd2FyZS9zY21pLXNtYy5jIGIveGVuL2FyY2gvYXJtL2Zp
cm13YXJlL3NjbWktc21jLmMNCj4+Pj4gaW5kZXggMzM0NzNjMDRiMS4uMTNkMTEzNzU5MiAxMDA2
NDQNCj4+Pj4gLS0tIGEveGVuL2FyY2gvYXJtL2Zpcm13YXJlL3NjbWktc21jLmMNCj4+Pj4gKysr
IGIveGVuL2FyY2gvYXJtL2Zpcm13YXJlL3NjbWktc21jLmMNCj4+Pj4gQEAgLTksNiArOSw3IEBA
DQo+Pj4+ICAgICAqIENvcHlyaWdodCAyMDI0IE5YUA0KPj4+PiAgICAgKi8NCj4+Pj4gICAgDQo+
Pj4+ICsjaW5jbHVkZSA8YXNtL2RldmljZS5oPg0KPj4+PiAgICAjaW5jbHVkZSA8eGVuL2FjcGku
aD4NCj4+Pj4gICAgI2luY2x1ZGUgPHhlbi9kZXZpY2VfdHJlZS5oPg0KPj4+PiAgICAjaW5jbHVk
ZSA8eGVuL2Vycm5vLmg+DQo+Pj4+IEBAIC0xNiwxMiArMTcsMTEgQEANCj4+Pj4gICAgI2luY2x1
ZGUgPHhlbi9zY2hlZC5oPg0KPj4+PiAgICAjaW5jbHVkZSA8eGVuL3R5cGVzLmg+DQo+Pj4+ICAg
IA0KPj4+PiArI2luY2x1ZGUgPGFzbS9maXJtd2FyZS9zY2kuaD4NCj4+Pj4gICAgI2luY2x1ZGUg
PGFzbS9zbWNjYy5oPg0KPj4+PiAtI2luY2x1ZGUgPGFzbS9maXJtd2FyZS9zY21pLXNtYy5oPg0K
Pj4+PiAgICANCj4+Pj4gICAgI2RlZmluZSBTQ01JX1NNQ19JRF9QUk9QICAgImFybSxzbWMtaWQi
DQo+Pj4+ICAgIA0KPj4+PiAtc3RhdGljIGJvb2wgX19yb19hZnRlcl9pbml0IHNjbWlfZW5hYmxl
ZDsNCj4+Pj4gICAgc3RhdGljIHVpbnQzMl90IF9fcm9fYWZ0ZXJfaW5pdCBzY21pX3NtY19pZDsN
Cj4+Pj4gICAgDQo+Pj4+ICAgIC8qDQo+Pj4+IEBAIC00MSwxNCArNDEsMTEgQEAgc3RhdGljIGJv
b2wgc2NtaV9pc192YWxpZF9zbWNfaWQodWludDMyX3QgZmlkKQ0KPj4+PiAgICAgKg0KPj4+PiAg
ICAgKiBSZXR1cm5zIHRydWUgaWYgU01DIHdhcyBoYW5kbGVkIChyZWdhcmRsZXNzIG9mIHJlc3Bv
bnNlKSwgZmFsc2Ugb3RoZXJ3aXNlLg0KPj4+PiAgICAgKi8NCj4+Pj4gLWJvb2wgc2NtaV9oYW5k
bGVfc21jKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQ0KPj4+PiArc3RhdGljIGJvb2wgc2Nt
aV9oYW5kbGVfc21jKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQ0KPj4+PiAgICB7DQo+Pj4+
ICAgICAgICB1aW50MzJfdCBmaWQgPSAodWludDMyX3QpZ2V0X3VzZXJfcmVnKHJlZ3MsIDApOw0K
Pj4+PiAgICAgICAgc3RydWN0IGFybV9zbWNjY19yZXMgcmVzOw0KPj4+PiAgICANCj4+Pj4gLSAg
ICBpZiAoICFzY21pX2VuYWJsZWQgKQ0KPj4+PiAtICAgICAgICByZXR1cm4gZmFsc2U7DQo+Pj4+
IC0NCj4+Pj4gICAgICAgIGlmICggIXNjbWlfaXNfdmFsaWRfc21jX2lkKGZpZCkgKQ0KPj4+PiAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsNCj4+Pj4gICAgDQo+Pj4+IEBAIC03OCw0OSArNzUsNDUg
QEAgYm9vbCBzY21pX2hhbmRsZV9zbWMoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpDQo+Pj4+
ICAgICAgICByZXR1cm4gdHJ1ZTsNCj4+Pj4gICAgfQ0KPj4+PiAgICANCj4+Pj4gLXN0YXRpYyBp
bnQgX19pbml0IHNjbWlfY2hlY2tfc21jY2NfdmVyKHZvaWQpDQo+Pj4+ICtzdGF0aWMgaW50IHNj
bWlfc21jX2RvbWFpbl9pbml0KHN0cnVjdCBkb21haW4gKmQsDQo+Pj4+ICsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0cnVjdCB4ZW5fZG9tY3RsX2NyZWF0ZWRvbWFpbiAqY29uZmln
KQ0KPj4+PiAgICB7DQo+Pj4+IC0gICAgaWYgKCBzbWNjY192ZXIgPCBBUk1fU01DQ0NfVkVSU0lP
Tl8xXzEgKQ0KPj4+PiAtICAgIHsNCj4+Pj4gLSAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5H
DQo+Pj4+IC0gICAgICAgICAgICAgICAiU0NNSTogTm8gU01DQ0MgMS4xIHN1cHBvcnQsIFNDTUkg
Y2FsbHMgZm9yd2FyZGluZyBkaXNhYmxlZFxuIik7DQo+Pj4+IC0gICAgICAgIHJldHVybiAtRU5P
U1lTOw0KPj4+PiAtICAgIH0NCj4+Pj4gKyAgICBpZiAoICFpc19oYXJkd2FyZV9kb21haW4oZCkg
KQ0KPj4+PiArICAgICAgICByZXR1cm4gMDsNCj4+PiBTaG91bGQgd2UgYWxzbyBjaGVjayBmb3Ig
Y29uZmlnLT5hcmNoLnNjaV90eXBlID09DQo+Pj4gWEVOX0RPTUNUTF9DT05GSUdfQVJNX1NDSV9T
Q01JX1NNQyA/DQo+Pj4NCj4+IEN1cnJlbnQgY2hhbmdlcyBhc3N1bWUgdGhhdCBvbmx5IFNDTUlf
U01DIGlzIHByZXNlbnQuIFRoaXMgY2hlY2sgd2FzDQo+PiBhZGRlZCBpbiB0aGUgc3Vic2VxdWVu
dCBwYXRjaCB3aGVuIG11bHRpYWdlbnQgd2FzIGludHJvZHVjZWQuDQo+IEluIHRoZW9yeSBBUk1f
U0NJX05PTkUgaXMgcG9zc2libGU/DQo+DQpJdCBpcy4gV2hlbiAic2NtaS1zbWMtcGFzc3Rocm91
Z2giIHBhcmFtZXRlciB3YXMgcHJvdmlkZWQgdGhlbiB4ZW4gd2lsbCANCnNraXAgImZpcm13YXJl
L3NjbWkiIG5vZGUgZm9yIHRoZSBkb20wLg0KDQotLQ0KT2xla3NpaQ==


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 13:30:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 13:30:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098832.1452792 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urciP-0004wb-Co; Thu, 28 Aug 2025 13:30:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098832.1452792; Thu, 28 Aug 2025 13:30:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urciP-0004wU-AA; Thu, 28 Aug 2025 13:30:57 +0000
Received: by outflank-mailman (input) for mailman id 1098832;
 Thu, 28 Aug 2025 13:30:56 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Q4L6=3I=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1urciO-0004d7-0o
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 13:30:56 +0000
Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com
 [2a00:1450:4864:20::62d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 384769f3-8413-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 15:30:53 +0200 (CEST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-afcb7322da8so169731966b.0
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 06:30:53 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-61cdb01d515sm1339449a12.28.2025.08.28.06.30.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 06:30: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>
X-Inumbo-ID: 384769f3-8413-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756387853; x=1756992653; darn=lists.xenproject.org;
        h=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=poU9btkk5ywisyID3Ow7xqH6Y903F6RfLqIY7KynyGY=;
        b=hklWAX9OEIztHLTYbmv7cd4rvmVfkAAAUFBb5ai8RRO31XHChExboaheup8KbD/12w
         Y322PzqjmPEgIgAtRb+ZA16nMtt0aL6qYKujIGBHBoccydZ8IxgiPe4NZcit0WzBZmux
         NBbktUFHoDCienB3sp//QcG8zsPScVqj62v/f45UaIj4TnATUi3y141bXXspkAunfM6/
         UMdL/A607I8F/JCN7QjX2C/MqIt6huPYqr3t35bcro2K4z54f3PtiYARUgdbLqZxzAJH
         QhR23z7hAV9iINZhy0jo6g07DWBzkKO1880l/D/tqUcxENMhitiWiW3a5SORu1THn955
         D0Wg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756387853; x=1756992653;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=poU9btkk5ywisyID3Ow7xqH6Y903F6RfLqIY7KynyGY=;
        b=c+liNVPepy/6kHuBm8xGNH42Og7o4mext7veiJbOrc4eLtTz3jM3Cwrur0VMY6aggT
         8pfFiK/gTbg1rCt2y/7rKJtVhnpPAakRZiIiUJyEew/uL8LS94ocxdKBd9ZQyI6dw0i2
         uaGGrBBha8UsgqqDAPSISSBfXMa2e291na+R20CAfim9TynNuwtHF4y1wzdg++0MRyPj
         ZS4BM+84L98wAuiXubLwUABBt1rgtw2qFqZbTPp0Hw3/TbM/rgjluyr0IC27TmHPeQpq
         8cGO3rNZb8TFb0Ngj9Ho7UGXFX5xTVAwsY4Ms2UkWSiew3SV744dz3ToLMWLmvmtjvRR
         OxNQ==
X-Forwarded-Encrypted: i=1; AJvYcCX6y8PQ7wkFZ8XRKJL5zk6pbDPchC9k5fLTcONfbB5vjHlmzHtv60Kw1n8443B0q4vGkXnrTMIklwU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YySoIhJFtAG95DaZdl3ZSuo/xFKmG10+jjVSD9mxWDIINwr7yVR
	4U5u0B3YfBdv8eBuGc+mOnJMKVpmL/Jy301RhBjG/1zi6g9QGVyhANin
X-Gm-Gg: ASbGncvw88b8kkGKVpJzi+jhsSxpn76FrZ/RZ59+1HowQp1K88ZNpGDAeyygMFxBcrM
	31LxrQBUcQeMamGdnlBjs4OORJ5fO+ktUaj27Nu9+Wr1NVp2eRlWw5BDM6hPjrfOaaaBrkRLUTN
	N4K4vZNsMAPogl6U6PIaTUm9PPNpyuqFY5SmhBNa3zZWNQqlT/FOr/N0WCarEBSdRl+ue1Ive/n
	37Al0IqRqTkc+81KGbzguQz20S+NEOzlcgvEe/MtJmB0REYG4MtQd48hDYHNJTLz/2W2RbMciKO
	PwzRzyUBhMwmSvyoxMarOEtBeNqDpXlhVZulMpoTaN5NbgLWyX3lD3hz9s/iQRDXjCLGCyDym0Z
	SmKIuAsMg2t7Xb6eeGm+xZsFYh3SBFWvQhCdTpgkrnThEl2zOSIH4QAYa3eeIoRvQHyAW/rp1vA
	3RnSK1pg==
X-Google-Smtp-Source: AGHT+IGDU4fmaLq9wpLWM0wkbIQqC8pN5iL2cnv3AcXtSdFJMOmTXdQ6kQYsPHQVeh107h2sWsGWUA==
X-Received: by 2002:a17:907:1ca2:b0:afe:bbeb:1f61 with SMTP id a640c23a62f3a-afebbeb25d6mr630929766b.16.1756387852346;
        Thu, 28 Aug 2025 06:30:52 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------UE91rRe1RLfqhJu1GwWz81oz"
Message-ID: <33c8fa6d-5cd0-463f-bc7f-2671ca9fa571@gmail.com>
Date: Thu, 28 Aug 2025 15:30:50 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] Optimise restore memory allocation
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Frediano Ziglio <frediano.ziglio@cloud.com>, xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <20250827123309.39699-1-frediano.ziglio@cloud.com>
 <3cf8eef1-04e6-44b9-ad41-144de9cbf1d7@citrix.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <3cf8eef1-04e6-44b9-ad41-144de9cbf1d7@citrix.com>

This is a multi-part message in MIME format.
--------------UE91rRe1RLfqhJu1GwWz81oz
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 8/27/25 7:23 PM, Andrew Cooper wrote:
> Subject wants to be at least tools/libxc, and probably "Use superpages
> where possible on migrate/resume"
>
>
> On 27/08/2025 1:33 pm, Frediano Ziglio wrote:
>> Try to allocate larger order pages.
>> With some test memory program stressing TLB (many small random
>> memory accesses) you can get 15% performance improves.
>> On the first memory iteration the sender is currently sending
>> memory in 4mb aligned chunks which allows the receiver to
>> allocate most pages as 2mb superpages instead of single 4kb pages.
> It's critical to say somewhere that this is applicable to HVM guests.
>
> You've eluded to it, but it's important to state clearly that, for HVM
> guests, PAGE_DATA records contain metadata about GFNs in aligned 4M
> blocks.Â  This is why we don't even need to buffer a second record.
>
> It's also worth stating that 1G superpages are left for later.
>
>
> CC-ing Oleksii as release manager.Â  This is a fix for a (mis)feature
> which has been known for a decade (since Xen 4.6), and for which two
> series have been posted but not managed to get in.Â  Unlike those series,
> this is a very surgical fix that gets the majority of the perf win back,
> without the complexity of trying to guess at 1G pages.
>
> Therefore I'd like to request that it be considered for 4.21 at this
> juncture.
>
Such a significant performance increase is a good reason to include this
in 4.21. We also still have enough time to test it properly.

If there are no objections:Release-Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com> Thanks. 
~ Oleksii

>> Signed-off-by: Frediano Ziglio<frediano.ziglio@cloud.com>
>> ---
>>   tools/libs/guest/xg_sr_restore.c | 39 ++++++++++++++++++++++++++++----
>>   1 file changed, 35 insertions(+), 4 deletions(-)
>>
>> diff --git a/tools/libs/guest/xg_sr_restore.c b/tools/libs/guest/xg_sr_restore.c
>> index 06231ca826..8dcb1b19c5 100644
>> --- a/tools/libs/guest/xg_sr_restore.c
>> +++ b/tools/libs/guest/xg_sr_restore.c
>> @@ -129,6 +129,8 @@ static int pfn_set_populated(struct xc_sr_context *ctx, xen_pfn_t pfn)
>>       return 0;
>>   }
>>   
>> +#define IS_POWER_OF_2(n) (((n) & ((n) - 1)) == 0)
>> +
>>   /*
>>    * Given a set of pfns, obtain memory from Xen to fill the physmap for the
>>    * unpopulated subset.  If types is NULL, no page type checking is performed
>> @@ -141,6 +143,7 @@ int populate_pfns(struct xc_sr_context *ctx, unsigned int count,
>>       xen_pfn_t *mfns = malloc(count * sizeof(*mfns)),
>>           *pfns = malloc(count * sizeof(*pfns));
>>       unsigned int i, nr_pfns = 0;
>> +    bool contiguous = true;
>>       int rc = -1;
>>   
>>       if ( !mfns || !pfns )
>> @@ -159,18 +162,46 @@ int populate_pfns(struct xc_sr_context *ctx, unsigned int count,
>>               if ( rc )
>>                   goto err;
>>               pfns[nr_pfns] = mfns[nr_pfns] = original_pfns[i];
>> +            if ( pfns[nr_pfns] != pfns[0] + nr_pfns )
>> +                contiguous = false;
>>               ++nr_pfns;
>>           }
>>       }
>>   
>>       if ( nr_pfns )
>>       {
>> -        rc = xc_domain_populate_physmap_exact(
>> -            xch, ctx->domid, nr_pfns, 0, 0, mfns);
>> +        /* try optimizing using larger order */
>> +        rc = -1;
>> +        /*
>> +         * The "nr_pfns <= (1 << 18)" check is mainly for paranoia, it should
>> +         * never happen, the sender would have to send a really large packet.
>> +         */
>> +        if ( contiguous && nr_pfns <= (1 << 18) &&
> This is an arbitrary limit, and to contradict the prior feedback given
> in private, the domain's MAX_ORDER isn't relevant here.Â  It's the
> toolstack's choice how to lay out the guest in memory.
>
>> +             IS_POWER_OF_2(nr_pfns) && (pfns[0] & (nr_pfns - 1)) == 0 )
>> +        {
>> +            const unsigned int extent_order = __builtin_ffs(nr_pfns) - 1;
> This (non-)loop isn't great.Â  You'll e.g. use 4k pages for the second 2M
> page of an HVM guest simply because the VGA hole exists in the first.
>
> I think you probably want something like:
>
> int populate_physmap_4k(ctx, nr, mfns);
> int populate_physmap_2M(ctx, nr, mfns);
>
> as simple wrappers around the raw hypercalls including transforming back
> the mfns[] array, and:
>
> int populate_phymap(...);
>
> with logic of the form:
>
>  Â Â Â  while ( nr )
>  Â Â Â  {
>  Â Â Â  Â Â Â  if ( nr < 512 ) /* Can't be a superpage */
>  Â Â Â  Â Â Â  {
>  Â Â Â  Â Â Â  Â Â Â  populate_physmap_4k(ctx, i, mfns);
>  Â Â Â  Â Â Â  Â Â Â  mfns += i;
>  Â Â Â  Â Â Â  Â Â Â  nr -= i;
>  Â Â Â  Â Â Â  Â Â Â  continue;
>  Â Â Â  Â Â Â  }
>
>  Â Â Â  Â Â Â  if ( !ALIGNED_2M(mfn) ) /* Populate up until a point that could be a superpage */
>  Â Â Â  Â Â Â  {
>  Â Â Â  Â Â Â  Â Â Â  while ( !ALIGNED_2M(mfn + i) )
>  Â Â Â  Â Â Â  Â Â Â  Â Â Â  i++;
>  Â Â Â  Â Â Â  Â Â Â  populate_physmap_4k(ctx, i, mfns);
>  Â Â Â  Â Â Â  Â Â Â  mfns += i;
>  Â Â Â  Â Â Â  Â Â Â  nr -= i;
>  Â Â Â  Â Â Â  }
>
>  Â Â Â  Â Â Â  if ( nr >= 512 )
>  Â Â Â  Â Â Â  {
>  Â Â Â  Â Â Â  Â Â Â  for ( i = 1; i < 512; ++i )
>  Â Â Â  Â Â Â  Â Â Â  Â Â Â  if ( mfns[i] != mfns[0] + i )
>  Â Â Â  Â Â Â  Â Â Â  Â Â Â  Â Â Â  break;
>  Â Â Â  Â Â Â  Â Â Â  if ( i == 512 )
>  Â Â Â  Â Â Â  Â Â Â  Â Â Â  populate_physmap_2M(ctx, i, mfns);
>              else
>                  populate_physmap_4k(...);
>
>  Â Â Â  Â Â Â  Â Â Â  mfns += i;
>  Â Â Â  Â Â Â  Â Â Â  nr -= i;
>  Â Â Â  Â Â Â  }
>  Â Â Â  }
>
>
>
> Obviously with error handling, and whatever boundary conditions I've got
> wrong.
>
> 2M is the only size that matters (ignoring 1G which we've excluded for
> now), and this form will reconstruct more superpages for the guest than
> trying to do 4M allocations will.
>
> ~Andrew
--------------UE91rRe1RLfqhJu1GwWz81oz
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/27/25 7:23 PM, Andrew Cooper
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:3cf8eef1-04e6-44b9-ad41-144de9cbf1d7@citrix.com">
      <pre wrap="" class="moz-quote-pre">Subject wants to be at least tools/libxc, and probably "Use superpages
where possible on migrate/resume"


On 27/08/2025 1:33 pm, Frediano Ziglio wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">Try to allocate larger order pages.
With some test memory program stressing TLB (many small random
memory accesses) you can get 15% performance improves.
On the first memory iteration the sender is currently sending
memory in 4mb aligned chunks which allows the receiver to
allocate most pages as 2mb superpages instead of single 4kb pages.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
It's critical to say somewhere that this is applicable to HVM guests.

You've eluded to it, but it's important to state clearly that, for HVM
guests, PAGE_DATA records contain metadata about GFNs in aligned 4M
blocks.Â  This is why we don't even need to buffer a second record.

It's also worth stating that 1G superpages are left for later.


CC-ing Oleksii as release manager.Â  This is a fix for a (mis)feature
which has been known for a decade (since Xen 4.6), and for which two
series have been posted but not managed to get in.Â  Unlike those series,
this is a very surgical fix that gets the majority of the perf win back,
without the complexity of trying to guess at 1G pages.

Therefore I'd like to request that it be considered for 4.21 at this
juncture.

</pre>
    </blockquote>
    <pre>Such a significant performance increase is a good reason to include this
in 4.21. We also still have enough time to test it properly.

If there are no objections:<span class="Y2IQFc" lang="en">
 Release-Acked-by: Oleksii Kurochko <a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>

Thanks.

~ Oleksii
</span></pre>
    <blockquote type="cite"
      cite="mid:3cf8eef1-04e6-44b9-ad41-144de9cbf1d7@citrix.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">
Signed-off-by: Frediano Ziglio <a class="moz-txt-link-rfc2396E" href="mailto:frediano.ziglio@cloud.com">&lt;frediano.ziglio@cloud.com&gt;</a>
---
 tools/libs/guest/xg_sr_restore.c | 39 ++++++++++++++++++++++++++++----
 1 file changed, 35 insertions(+), 4 deletions(-)

diff --git a/tools/libs/guest/xg_sr_restore.c b/tools/libs/guest/xg_sr_restore.c
index 06231ca826..8dcb1b19c5 100644
--- a/tools/libs/guest/xg_sr_restore.c
+++ b/tools/libs/guest/xg_sr_restore.c
@@ -129,6 +129,8 @@ static int pfn_set_populated(struct xc_sr_context *ctx, xen_pfn_t pfn)
     return 0;
 }
 
+#define IS_POWER_OF_2(n) (((n) &amp; ((n) - 1)) == 0)
+
 /*
  * Given a set of pfns, obtain memory from Xen to fill the physmap for the
  * unpopulated subset.  If types is NULL, no page type checking is performed
@@ -141,6 +143,7 @@ int populate_pfns(struct xc_sr_context *ctx, unsigned int count,
     xen_pfn_t *mfns = malloc(count * sizeof(*mfns)),
         *pfns = malloc(count * sizeof(*pfns));
     unsigned int i, nr_pfns = 0;
+    bool contiguous = true;
     int rc = -1;
 
     if ( !mfns || !pfns )
@@ -159,18 +162,46 @@ int populate_pfns(struct xc_sr_context *ctx, unsigned int count,
             if ( rc )
                 goto err;
             pfns[nr_pfns] = mfns[nr_pfns] = original_pfns[i];
+            if ( pfns[nr_pfns] != pfns[0] + nr_pfns )
+                contiguous = false;
             ++nr_pfns;
         }
     }
 
     if ( nr_pfns )
     {
-        rc = xc_domain_populate_physmap_exact(
-            xch, ctx-&gt;domid, nr_pfns, 0, 0, mfns);
+        /* try optimizing using larger order */
+        rc = -1;
+        /*
+         * The "nr_pfns &lt;= (1 &lt;&lt; 18)" check is mainly for paranoia, it should
+         * never happen, the sender would have to send a really large packet.
+         */
+        if ( contiguous &amp;&amp; nr_pfns &lt;= (1 &lt;&lt; 18) &amp;&amp;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
This is an arbitrary limit, and to contradict the prior feedback given
in private, the domain's MAX_ORDER isn't relevant here.Â  It's the
toolstack's choice how to lay out the guest in memory.

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+             IS_POWER_OF_2(nr_pfns) &amp;&amp; (pfns[0] &amp; (nr_pfns - 1)) == 0 )
+        {
+            const unsigned int extent_order = __builtin_ffs(nr_pfns) - 1;
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
This (non-)loop isn't great.Â  You'll e.g. use 4k pages for the second 2M
page of an HVM guest simply because the VGA hole exists in the first.

I think you probably want something like:

int populate_physmap_4k(ctx, nr, mfns);
int populate_physmap_2M(ctx, nr, mfns);

as simple wrappers around the raw hypercalls including transforming back
the mfns[] array, and:

int populate_phymap(...);

with logic of the form:

Â Â Â  while ( nr )
Â Â Â  {
Â Â Â  Â Â Â  if ( nr &lt; 512 ) /* Can't be a superpage */
Â Â Â  Â Â Â  {
Â Â Â  Â Â Â  Â Â Â  populate_physmap_4k(ctx, i, mfns);
Â Â Â  Â Â Â  Â Â Â  mfns += i;
Â Â Â  Â Â Â  Â Â Â  nr -= i;
Â Â Â  Â Â Â  Â Â Â  continue;
Â Â Â  Â Â Â  }

Â Â Â  Â Â Â  if ( !ALIGNED_2M(mfn) ) /* Populate up until a point that could be a superpage */
Â Â Â  Â Â Â  {
Â Â Â  Â Â Â  Â Â Â  while ( !ALIGNED_2M(mfn + i) )
Â Â Â  Â Â Â  Â Â Â  Â Â Â  i++;
Â Â Â  Â Â Â  Â Â Â  populate_physmap_4k(ctx, i, mfns);
Â Â Â  Â Â Â  Â Â Â  mfns += i;
Â Â Â  Â Â Â  Â Â Â  nr -= i;
Â Â Â  Â Â Â  }

Â Â Â  Â Â Â  if ( nr &gt;= 512 )
Â Â Â  Â Â Â  {
Â Â Â  Â Â Â  Â Â Â  for ( i = 1; i &lt; 512; ++i )
Â Â Â  Â Â Â  Â Â Â  Â Â Â  if ( mfns[i] != mfns[0] + i )
Â Â Â  Â Â Â  Â Â Â  Â Â Â  Â Â Â  break;
Â Â Â  Â Â Â  Â Â Â  if ( i == 512 )
Â Â Â  Â Â Â  Â Â Â  Â Â Â  populate_physmap_2M(ctx, i, mfns);
            else
                populate_physmap_4k(...);

Â Â Â  Â Â Â  Â Â Â  mfns += i;
Â Â Â  Â Â Â  Â Â Â  nr -= i;
Â Â Â  Â Â Â  }
Â Â Â  }



Obviously with error handling, and whatever boundary conditions I've got
wrong.

2M is the only size that matters (ignoring 1G which we've excluded for
now), and this form will reconstruct more superpages for the guest than
trying to do 4M allocations will.

~Andrew
</pre>
    </blockquote>
  </body>
</html>

--------------UE91rRe1RLfqhJu1GwWz81oz--


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 13:38:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 13:38:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098856.1452802 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urcpG-00060Z-3B; Thu, 28 Aug 2025 13:38:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098856.1452802; Thu, 28 Aug 2025 13:38: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 1urcpG-00060S-0G; Thu, 28 Aug 2025 13:38:02 +0000
Received: by outflank-mailman (input) for mailman id 1098856;
 Thu, 28 Aug 2025 13:38:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Q4L6=3I=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1urcpE-00060M-Av
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 13:38:00 +0000
Received: from mail-ej1-x631.google.com (mail-ej1-x631.google.com
 [2a00:1450:4864:20::631])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 35ed0508-8414-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 15:37:58 +0200 (CEST)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-afcb7ace3baso162748866b.3
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 06:37:58 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afe87c2a0cesm837980766b.2.2025.08.28.06.37.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 06:37: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>
X-Inumbo-ID: 35ed0508-8414-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756388278; x=1756993078; darn=lists.xenproject.org;
        h=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=G2k7yaop0MLfoyLNOezkX+kI4vdKHL8dcVdO3goHqPM=;
        b=FkwnEgyqDN/5Gliado+w/0P9LhQb0zklESu9tJxk2ILtdUTa0hfgnxVWfPiCAZGs1l
         2Dy8YJ29ufGcwPRgfXj9yTFFE8u/TxVCOOYwRdEvPFEVoHiUpLeQUpFxWbxcG8I78skF
         rGOST+G1J2nn/hm9/fq993tNVSz8JPkC1F/nKoI/eAGs+9lGrTxCWL4Ke7VRGi+wAPoL
         hZ8W9dXqQDjGZnW4Uc/JnS7Ic665jjImx3195wdnk5x/A9MkGYUEjwU32Rg6K+Lp/fZp
         eIGRkI/9HMq6piA6M3K7cVauWVVgY+JqLSY/gyQYSi17yN3FTrEgDon0YoL4mTEooopR
         DyZg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756388278; x=1756993078;
        h=in-reply-to:from:content-language:references:cc:to:subject
         :user-agent:mime-version:date:message-id:x-gm-message-state:from:to
         :cc:subject:date:message-id:reply-to;
        bh=G2k7yaop0MLfoyLNOezkX+kI4vdKHL8dcVdO3goHqPM=;
        b=ZI+Ggn/Ac2D2XHS8/n69frHHUFw7n6UxgJzHFEEBwqYc3dprI/FfffvowL3N7sgWsI
         goCTHXPJnm6LnJ79L07mVzUSrTruRzWWFW25CWT9Nm9T7w7lWHcAdzWgthc/OOxfnMFr
         H+UGL9Nc/VJ1XzQfx9jJkBdzYsrgwFX1LibdavTUUvdvhj3PTdP5LBX2ywdUnZK9nz/f
         wfOUiBwhGUkEzP07Bk9ZI0xoEvIBRHnxkpBJziWi5B8+/BKoRnp6ojLLkFX1rirPkcRb
         IazAyeEeO5kwYCoZpo3Sqc6xMI+FzTGFnbBm0iod4DRUjvRT9bNNi4wCbgMLTPURxD/M
         sPiw==
X-Forwarded-Encrypted: i=1; AJvYcCWuzRMGFy3f21ocYpq2s6z8umwCJ0V6FaJjpti1WJwyAXEB3GW6kf4ANh7qBMj5ebLu1fPHV1m/S08=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyWKR3NEy1P14pkhMlZWBIWSpqyY+dlWBzxVSMkgR//nhC37Cnp
	wJhc1iWKzBa21J/35mxD+wcBLSQqK4XYFiPzHKD1QsXxlKIzYP7CnfHY
X-Gm-Gg: ASbGnctRHB5oQbac8HrPvaqBWgCV5PNvJ1WMfS3qBsWyb352Sb0wOtdbTUacznhM5WN
	eXU0VUsDG81cnihc6Ibc//u8tn4wzwhtEqn5l26qbp4az38csZ8PlwrIteCrCi6F1rVcIBWecep
	SD++hy9Jp8+Vzkxc+BXtmKhovc6GgrZ1TaqXanx/Eh5PTVJU7d5mCYa9eXM5SZmAqcKR0AjaCkx
	rrc8BCDY1StYEuzJqEM2C90uAJrYHWzH21W7lrsoZ21KQAzgU5Bz7mBjKfmvGrldKM/j9nRhMZp
	vJMAsJo4NITn7AShs1hom0MowZyEYLuoGfR99yEEn3QKL+0bi9YKelPQRlxtm4bNTjdA/2G7dNU
	9lBZih6iGQAhKKzSQ9Ih4cbC3HtMYOaQsgduRrnuKjdvLyQiPPy8a636baufryEbs31L4tdPNw4
	qSSZdWIQ==
X-Google-Smtp-Source: AGHT+IGgnoajMfFBJTc0JX76+b/JYKRVyIdC+RZin33f1jVYVKReD0y76V9yqDJZhKWsY2gWRwlXyg==
X-Received: by 2002:a17:907:d88:b0:ae6:c154:8059 with SMTP id a640c23a62f3a-afe294dfe9emr2246251166b.37.1756388277882;
        Thu, 28 Aug 2025 06:37:57 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------Gzdbc9YdzMmQLtURME1Zr1r0"
Message-ID: <bce5e07c-eee7-481b-a833-4d5d8bbce78f@gmail.com>
Date: Thu, 28 Aug 2025 15:37:56 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 11/11] CHANGELOG.md: add mention of GICv3.1 eSPI
 support
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: "olekstysh@gmail.com" <olekstysh@gmail.com>,
 Community Manager <community.manager@xenproject.org>
References: <cover.1756216942.git.leonid_komarianskyi@epam.com>
 <9dc68c29751aeacf37b51d3bd345e87e9a0f0ccf.1756216943.git.leonid_komarianskyi@epam.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <9dc68c29751aeacf37b51d3bd345e87e9a0f0ccf.1756216943.git.leonid_komarianskyi@epam.com>

This is a multi-part message in MIME format.
--------------Gzdbc9YdzMmQLtURME1Zr1r0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 8/26/25 4:05 PM, Leonid Komarianskyi wrote:
> The GICv3.1 eSPI (Extended Shared Peripheral Interrupts) range is
> already supported with CONFIG_GICV3_ESPI enabled, so this feature should
> be mentioned in CHANGELOG.md.
>
> Signed-off-by: Leonid Komarianskyi<leonid_komarianskyi@epam.com>
>
> ---
> Changes in V3:
> - introduced this patch
> ---
>   CHANGELOG.md | 1 +
>   1 file changed, 1 insertion(+)
>
> diff --git a/CHANGELOG.md b/CHANGELOG.md
> index 5f31ca08fe..dc34d29d99 100644
> --- a/CHANGELOG.md
> +++ b/CHANGELOG.md
> @@ -29,6 +29,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>   
>    - On Arm:
>       - Ability to enable stack protector
> +    - GICv3.1 eSPI support

For clarity, I think it would be helpful to add a brief explanation of what eSPI is
(as you did in the commit message) and also mention â€œfor Xen and guest domainsâ€ or
something similar.

With that:
  Acked-by: Oleksii Kurochko<oleksii.kurochko@gmail.com>

Thanks.

~ Oleksii


>   
>   ### Removed
>    - On x86:
--------------Gzdbc9YdzMmQLtURME1Zr1r0
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/26/25 4:05 PM, Leonid Komarianskyi
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:9dc68c29751aeacf37b51d3bd345e87e9a0f0ccf.1756216943.git.leonid_komarianskyi@epam.com">
      <pre wrap="" class="moz-quote-pre">The GICv3.1 eSPI (Extended Shared Peripheral Interrupts) range is
already supported with CONFIG_GICV3_ESPI enabled, so this feature should
be mentioned in CHANGELOG.md.

Signed-off-by: Leonid Komarianskyi <a class="moz-txt-link-rfc2396E" href="mailto:leonid_komarianskyi@epam.com">&lt;leonid_komarianskyi@epam.com&gt;</a>

---
Changes in V3:
- introduced this patch
---
 CHANGELOG.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5f31ca08fe..dc34d29d99 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -29,6 +29,7 @@ The format is based on [Keep a Changelog](<a class="moz-txt-link-freetext" href="https://keepachangelog.com/en/1.0.0/">https://keepachangelog.com/en/1.0.0/</a>)
 
  - On Arm:
     - Ability to enable stack protector
+    - GICv3.1 eSPI support</pre>
    </blockquote>
    <pre>For clarity, I think it would be helpful to add a brief explanation of what eSPI is
(as you did in the commit message) and also mention â€œfor Xen and guest domainsâ€ or
something similar.

With that:
 Acked-by: Oleksii Kurochko <a class="moz-txt-link-rfc2396E" href="mailto:oleksii.kurochko@gmail.com">&lt;oleksii.kurochko@gmail.com&gt;</a>

Thanks.

~ Oleksii

</pre>
    <p><br>
    </p>
    <blockquote type="cite"
cite="mid:9dc68c29751aeacf37b51d3bd345e87e9a0f0ccf.1756216943.git.leonid_komarianskyi@epam.com">
      <pre wrap="" class="moz-quote-pre">
 
 ### Removed
  - On x86:
</pre>
    </blockquote>
  </body>
</html>

--------------Gzdbc9YdzMmQLtURME1Zr1r0--


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 13:39:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 13:39:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098865.1452812 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urcqN-0006VF-B7; Thu, 28 Aug 2025 13:39:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098865.1452812; Thu, 28 Aug 2025 13:39: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 1urcqN-0006V8-8O; Thu, 28 Aug 2025 13:39:11 +0000
Received: by outflank-mailman (input) for mailman id 1098865;
 Thu, 28 Aug 2025 13:39:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=AInb=3I=nvidia.com=jgg@srs-se1.protection.inumbo.net>)
 id 1urcqL-00060M-CU
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 13:39:09 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20617.outbound.protection.outlook.com
 [2a01:111:f403:2416::617])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5eb54952-8414-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 15:39:08 +0200 (CEST)
Received: from CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13)
 by PH8PR12MB7327.namprd12.prod.outlook.com (2603:10b6:510:215::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.15; Thu, 28 Aug
 2025 13:38:59 +0000
Received: from CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732]) by CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732%4]) with mapi id 15.20.9073.010; Thu, 28 Aug 2025
 13:38: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>
X-Inumbo-ID: 5eb54952-8414-11f0-8adc-4578a1afcccb
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ev398O6wquh2AiQLxZk9PGdgprIHSlw2lsyFHLwb8nR93kzHtQZuQjIhav3rK6dmuK+bOLOqy0ukJ1OnAlJ4cy5IZGUemxjraE+fuHpFjSuNnZJ8FYrK4sASgJFkq3RNpqN2CTSlED8YXFqEg2hoSenJH2X1OrvVCkhRMF8o/0s/AehzD/K4E7ThGw9dtNdqRxYFLi7Pfo9ihRkKv87znCJ6vKKeHt7u2D3zG8bzu4MExZ8bgOQRq2+n8wAbBMauwOc/t28UazzoyB5Wn4mA7PEnDfnshvaZsCuC+t1gYX0beVcKJpCC/AzyQESl2j4H8I4u2Jkdw5gjp1tGwxbGeQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=m7AfCSXAadbxG/aew2Ojhvg4gXP7xfhklC/4unfqPHY=;
 b=trC59ke2qYBVJmiClsvssbtB4mDyban4Dp7fytHOzQbqaTwWpNik8VtUa5hGssGBz1H8pdGcjCqbf1yLkTUFE7oC3leFJYR2PUbRfG9W915s4zvgoTIG6E4nutsD0WOBhjFeyxWtkpegIgwwkqFlvI9+CAiAb70URSIpHVaAEkr50sfPu6H1l1QOJN1E4O2oOFy0VTpWGl9s4/F8Mzs0WWP9isJnzsyzUYD2Ly0YR2lfclMP0bIAa/DBU/lw+YHayHNOY/i8R0mJ/mcB6EgJeejiG8fekLB/NLiL+xerwIZRV7TA26h10kAijuibmqadbcVPhwgrdCfyY9HWhAjjHA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com;
 dkim=pass header.d=nvidia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=m7AfCSXAadbxG/aew2Ojhvg4gXP7xfhklC/4unfqPHY=;
 b=Z70A6z/HNNeICWuf/sdzNklCgd/Cy5uQNbSeQnPp5JpQC1te/AofkwsM8juU4YC/aq6sBNNeSX5IrYYN6Adxg94dYkFurzEPmtsODMjsXIH8okOsQ/AVYfo1Di0XW8bbLJARRB/nKmSpO2XVC6OT8eiWvUeeZHUC3TB9ZBhyQasKuUu3BHLJAhsurx5Ii+gT2pNrErfzzed3JEEtiM/squA8YA7jl7gdQMA5uVPppL+xInuUmWL3xQdvzRzLm+p2anjhW4+DPWq+LTQffgLi3NUt1aVe7xtBQJH1AaTgEyM1KIq3/LcPSG9uRtfWaaHtbMlzWv07Puf5Lx6a/GW4sw==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=nvidia.com;
Date: Thu, 28 Aug 2025 10:38:57 -0300
From: Jason Gunthorpe <jgg@nvidia.com>
To: Leon Romanovsky <leon@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Leon Romanovsky <leonro@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 05/16] iommu/dma: rename iommu_dma_*map_page to
 iommu_dma_*map_phys
Message-ID: <20250828133857.GD9469@nvidia.com>
References: <cover.1755624249.git.leon@kernel.org>
 <66e7cc6854e4e40278b598b38e0c4d49d7fcec91.1755624249.git.leon@kernel.org>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <66e7cc6854e4e40278b598b38e0c4d49d7fcec91.1755624249.git.leon@kernel.org>
X-ClientProxiedBy: YT4PR01CA0354.CANPRD01.PROD.OUTLOOK.COM
 (2603:10b6:b01:fc::14) To CH3PR12MB8659.namprd12.prod.outlook.com
 (2603:10b6:610:17c::13)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PR12MB8659:EE_|PH8PR12MB7327:EE_
X-MS-Office365-Filtering-Correlation-Id: 327bde10-38f8-4ed1-1028-08dde6383df7
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7416014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?qyX7RmTJFt/trf+nELkaslku7hVi97mGwRrTyOzTuAD7y7pUkhh0J2DdclFx?=
 =?us-ascii?Q?UoI6wLfE+X/fHqopVxXxaRGcrv5lq8PB2XN6qW+u6bZR3qopEDG+in5UY7+m?=
 =?us-ascii?Q?2E0NT4a01/viv0z/nVT8CLjWigxAA6NQj4LXaHRUFlxSiTVveWX+pb2TCW/n?=
 =?us-ascii?Q?IiVC5E47ShiLZKE7oY/GKFJqGUl7d1cTKxWgTgrwnltQClVlH1OvB0zV6/sd?=
 =?us-ascii?Q?jVrdQzdMQH52Ex+g7HiAVYckVQZMICHWGcWzK27Ijp53lW3SMNgwwidibE+z?=
 =?us-ascii?Q?M5ua2KznnyItj+1wsPHLmcU4J8Uk8nxhPY3RhiBd3fRMJvqaEDmUeQs4yi1n?=
 =?us-ascii?Q?QT07c8qV7ZMKCNKFdI72Iw43pjlKLG7TRaOutiQxJBeEvvZRMvZlhhNGksdN?=
 =?us-ascii?Q?Fp+fqB+TuqMtiuJL6mZFqHc0DkMK69v4fd5TBqmDUpUfm0kid2bEcc+uxkK+?=
 =?us-ascii?Q?YMYpmXFbi8BNMlJnegsCg/IxZS6sty/ZD+3IatIJ1S9UVajVFjOnE01/7mKV?=
 =?us-ascii?Q?fXKLoLRXQXDYSVmw/nk2SK7qMEnxSP8AUL0We8VexlzxcL3B0o1GmdSX5jcE?=
 =?us-ascii?Q?xgjuYc/hUoqhAtPxwsbTVnEpHie3BjoHkrcC2jP/BbzVsJKO8mcdmiNZGu3l?=
 =?us-ascii?Q?QnU99623FTBrw06pwvp+mQ2EruBFFo4P1ezXaGTBaD5sNK2mA3ue/7LC2mtf?=
 =?us-ascii?Q?dVj24FtAyFL6Y1O7aDrnk0ysOBrv0EUyCsWqsAXMkEG8XH700yZdYb7DZxvQ?=
 =?us-ascii?Q?7xBc75xC/L2jTMgqqpdhWyAjaWj4NPOZQ6EGDNA55k7nrDhIZrNAMqzMns5P?=
 =?us-ascii?Q?qwgGq29xja6R2S4+chFRryNp7vjVqnslN4f3pH/u6HMPdwmyFcr5x8Nlk/nb?=
 =?us-ascii?Q?ObYf+b9ZOjnCdRgxt5ANktUKu+3YCBqb0tXoOxtBnSUi/k30noh+8MSl2Jul?=
 =?us-ascii?Q?usSlhPZ+OmO5UoAeyub9zTorkc2I7mBamYicF09Xp0WqRs468KIr7xUjFgka?=
 =?us-ascii?Q?vFHU3b6BMo6PaGIjQsbh/432X7SAg2phxLvrey0SJ0H5LcOok3+Mnn6KWLcS?=
 =?us-ascii?Q?kfFEL/Ydfhr5jiSJU5n46DXZFcmESGPzCTVgGDkXvhX0eYDToPiYUci0+mWv?=
 =?us-ascii?Q?6Cr1nEGpyl4P0hgoZc/rV43Ge5oft7nbE1hj1BjHyn7dH+q9WdpjlHQlNjVK?=
 =?us-ascii?Q?Rg+F8OUQPFeagcs3UrRdSNj2aLvBR51AItvE7eAI4Iz6WzmeEbw0I5n7uN8o?=
 =?us-ascii?Q?wf5HUjZHS4GK9BuOikUkeCtk8iHKPeulp2eOJfGeW6OvRXuEzeM4UhURpYyr?=
 =?us-ascii?Q?hG1V7RiF0T0Q9NNsGkHrRAyKd4zRJfdsNBz7tEfHJe6vzEpg7mJTKJei54Ad?=
 =?us-ascii?Q?R2GB4jrsjdiszV6HvqUhOFWCrZdPKmj9xcCU4ua+lMWMDLEVQ/luBBjST6Wq?=
 =?us-ascii?Q?TW5gUJl5o3g=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR12MB8659.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7416014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?itLD+5DwcFtLqSk9sUyLawPtsxRiLXpuZEl99bkg/2+zesenK4WOIS5Uxp2S?=
 =?us-ascii?Q?9uskNBEKQ9g0Lcp9B/aD06akTvgAZLXkWoYZPMH295aoMV90TBaA8/qx5y5D?=
 =?us-ascii?Q?hbdsmHkfCaHoz/MiPyuWIbQKcwoRtF1aZJXKNEf5D08pastXzJ8kkEWo5hR1?=
 =?us-ascii?Q?JGTDlXYOhtuzgs+92Yph4ILubenz+ooIjdNsEhUQUp6NNxGTkxqq0Y39LtN+?=
 =?us-ascii?Q?bfmkdODMGTqo/PkPSZmaKe8rzH5USK/uVFXCRHYog1g48EVDAa8ETrp+vTVk?=
 =?us-ascii?Q?hPo+sfHsZ+2936Ra8tI3RHwdjP8wseThBVcFKDf+jJNN7X0zHsSzJwW+RCs9?=
 =?us-ascii?Q?rI5MXK/NxTdiA35QZPuCFlD0XvEi2RyO6JcW2oPvrsrI11x+nZCzvU1PMmYQ?=
 =?us-ascii?Q?VyoLmCQ/F2Ft5elp8i00RUPKOfxOyKFr8u/BXU7pw22Q63HqtpuV/6EViE//?=
 =?us-ascii?Q?FvxGKBVOvAG/8MuIcFcguLp3yl4lNoh5RU+TmKqwWx0nYFcqJ4wZC5j3asS3?=
 =?us-ascii?Q?Q5Px0T2aVAXmslrKAhwf4D5z2u+xExEL9XywmiohQ7h2C6aMLkRwPHvsUAg3?=
 =?us-ascii?Q?OYoX53IUo/DFls1qILwmuNJL0YQ0QYP1ghLzDq63WLbzC9qKTQDVAFOkq70M?=
 =?us-ascii?Q?Q8S7OzHKaEDNN7jfkzTgFBzZrM2EaTWGR6Cp6+R2CuCUcasfTvYGGEbD30CW?=
 =?us-ascii?Q?Gz6RxH0WX5H46pdV3qklBnL5esy1TGmhV/4Nr9vm1mCKZ+Ixyufo4grqve0Y?=
 =?us-ascii?Q?b+NUxqHtwl23Nl5usDMqM5JcTb2k/vpEiLjYwsUHvC57RP+ZTIRNqTF1VIaa?=
 =?us-ascii?Q?BBSfiN0tFOhQYn+gFVlw6nweL7LL/vDiQtYh/0vP9oTDzbnfW2gr+VRwEb7J?=
 =?us-ascii?Q?A8nedaqu30CcPzdfVQUlDQngfviV4PeWpjEbZOpK6PJaelTznhGIOWtvkrLS?=
 =?us-ascii?Q?2huLl4duSSDA+qZi5zM/mxo5/79aCI+aNCmimBgMFoK3lVr7WdSthv1gCvo+?=
 =?us-ascii?Q?Lsu0zqg9TuhoI31XtNsyAyutnPxMLpS0aU0nrOLFFl4S0XDS4rNsF6UqHmPL?=
 =?us-ascii?Q?DjLF7tESM8Hkc6uG0HnlGyFquu3mFiixMNfzaqK8Cnh0OCei7nxWCVLV9UKY?=
 =?us-ascii?Q?/UcVOhS4ZheTXWw1KVOPh+J5DGEAjGI3EFcUaRXPSifY1WUffLwxwVeFPblr?=
 =?us-ascii?Q?0ET3zvpDHsKI1qNq/mjDa3gC3zjHwXPyg+QUMRJqb3unk6EpeO4pYBaXmMs9?=
 =?us-ascii?Q?dRaN0qVLxlKmPgtaewwdKrLpHqNCSl5l9Huy6hXjzGOyrP+5Pif3GW4O2Ld3?=
 =?us-ascii?Q?J4pBGtD0KilojbWY7JEPPoaGzxtLMeHuxmejp4qO9IU16R8pRnbOnfWCgc1z?=
 =?us-ascii?Q?RpqatsPHmGIUt+oGcVcAFZOWRhpOlFzW/j6RtsYVyctbrnPTwXUoNiWhu+re?=
 =?us-ascii?Q?HOskqN7Bkrh7+4/JKGx730gAqPEfi47jTP3f82HrK2kXkJ2p5L6iMhBB+VqR?=
 =?us-ascii?Q?KYcnQiw2/6oYH/j2w66+5EioqdBwK/KBn8kurncSJUoxV79oDfhYzvmp5ZF7?=
 =?us-ascii?Q?KuKeTvSfTtAk/fU8j+I=3D?=
X-OriginatorOrg: Nvidia.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 327bde10-38f8-4ed1-1028-08dde6383df7
X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8659.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 13:38:59.0983
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 6rfKa8rVYKwrh5cW7XkPc0kzZEP71J5rSBMbqytNTa/OLLKC3oOSgUlFk8Cj7ZoO
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB7327

On Tue, Aug 19, 2025 at 08:36:49PM +0300, Leon Romanovsky wrote:
> From: Leon Romanovsky <leonro@nvidia.com>
> 
> Rename the IOMMU DMA mapping functions to better reflect their actual
> calling convention. The functions iommu_dma_map_page() and
> iommu_dma_unmap_page() are renamed to iommu_dma_map_phys() and
> iommu_dma_unmap_phys() respectively, as they already operate on physical
> addresses rather than page structures.
> 
> The calling convention changes from accepting (struct page *page,
> unsigned long offset) to (phys_addr_t phys), which eliminates the need
> for page-to-physical address conversion within the functions. This
> renaming prepares for the broader DMA API conversion from page-based
> to physical address-based mapping throughout the kernel.
> 
> All callers are updated to pass physical addresses directly, including
> dma_map_page_attrs(), scatterlist mapping functions, and DMA page
> allocation helpers. The change simplifies the code by removing the
> page_to_phys() + offset calculation that was previously done inside
> the IOMMU functions.
> 
> Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
> ---
>  drivers/iommu/dma-iommu.c | 14 ++++++--------
>  include/linux/iommu-dma.h |  7 +++----
>  kernel/dma/mapping.c      |  4 ++--
>  kernel/dma/ops_helpers.c  |  6 +++---
>  4 files changed, 14 insertions(+), 17 deletions(-)

This looks fine

Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>

But related to other patches..

iommu_dma_map_phys() ends up like this:

	if (dev_use_swiotlb(dev, size, dir) &&
	    iova_unaligned(iovad, phys, size)) {
		if (attrs & DMA_ATTR_MMIO)
			return DMA_MAPPING_ERROR;

		phys = iommu_dma_map_swiotlb(dev, phys, size, dir, attrs);

But attrs is passed all the way down to swiotlb_tbl_map_single(),
maybe the DMA_ATTR_MMIO check should be moved there?

There are a few call chains with this redundancy:

dma_iova_link()
 -> iommu_dma_iova_link_swiotlb
  -> iommu_dma_iova_bounce_and_link
   -> iommu_dma_map_swiotlb
    -> swiotlb_tbl_map_single()

iommu_dma_map_phys() 
   -> iommu_dma_map_swiotlb
    -> swiotlb_tbl_map_single()

dma_direct_map_phys()
 -> swiotlb_map()
  -> swiotlb_tbl_map_single()

It makes alot of sense to put the check for MMIO when
slots[].orig_addr is stored because that is the point where we start
to require a pfn_to_page().

Jason


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 13:43:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 13:43:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098883.1452822 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urcuC-0008P4-Qg; Thu, 28 Aug 2025 13:43:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098883.1452822; Thu, 28 Aug 2025 13:43: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 1urcuC-0008Ox-NZ; Thu, 28 Aug 2025 13:43:08 +0000
Received: by outflank-mailman (input) for mailman id 1098883;
 Thu, 28 Aug 2025 13:43:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Q4L6=3I=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1urcuA-0008Ok-J7
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 13:43:06 +0000
Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com
 [2a00:1450:4864:20::62f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ecd009c7-8414-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 15:43:05 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-afcb78ead12so152057766b.1
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 06:43:05 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afe8a9f0c81sm796976866b.22.2025.08.28.06.43.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 06:43: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>
X-Inumbo-ID: ecd009c7-8414-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756388585; x=1756993385; darn=lists.xenproject.org;
        h=in-reply-to:from:content-language:references:to:subject:user-agent
         :mime-version:date:message-id:from:to:cc:subject:date:message-id
         :reply-to;
        bh=p08cG2EJ9QuAUBqLPYqinbjdVcdwpL6KV8C8p+HyE8E=;
        b=iSM8XOQJ2JG1PTFs6xrhHmx3Wp+zJiLIGR0UTEJYXggARYbMFUhjKkG7pFYR93RqpW
         XPo1BexBjN0mTfJ4lCr8D2/m/3Y+PrROC2U8tRSKPx75/gjoiJsxD14d4EeQCXqjHC7F
         ix+nnnbB1ui0JsIYcVptLR61sGTgpfzDbsTvSjSg1n25dj0iWE1XS1GItLRtv3993pDB
         NI4RNAHf7c2sBFy7DFmSvXx2l7hf3MAWTjxrEcdLuam5RP7tn7z3jqiYss5l6NgDTkSC
         zhsw+LbqXQpIffNrQMsmmUPcvsJyAxI6IebelSJ9E7f9byBgVoNw8gznDd30pobzVE1w
         klrQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756388585; x=1756993385;
        h=in-reply-to:from:content-language:references:to:subject:user-agent
         :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject
         :date:message-id:reply-to;
        bh=p08cG2EJ9QuAUBqLPYqinbjdVcdwpL6KV8C8p+HyE8E=;
        b=GfNdXHQjHBU8j52Dthbfgl6ILmBCziv1/qb5Lf5+sgs++ezyRzSnYHo+769nX/Xskw
         j4Me7ANPZ5cVvG9TXkhCJH6vx+A3eU60WLcAEDgl4tmL1oR15yq+lcOVPkUcYcCFJVvR
         F3cjyEfdZnGufewj+JdfGBAujD/3K77KIclh6SRe6oVfB9QWItvNFZKdaQW7/pqC9ssO
         WOgILd9f4fQ91kZwsGoG8OmxBLuP6Y/s9WnXKQ8b25Gt8FKYcbCYyiA3apgBcqdBT4xW
         4iAvudncQ0NtQC7/sXmBxQu+4a2Y85frSB9sqgr5ODaGCODXTtldX1g/VPVLgL8w2act
         7wRA==
X-Forwarded-Encrypted: i=1; AJvYcCUaB7WZYUC6XZaZqfi9r46ok3n5nNwuFYPbM6UzPeJpYYtD80blexlfBWm5MopsIpRLRWJRiGUSRSg=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx9EEy35A2u8V2W8qLH/MEtM1u/vigdmzbQZOGNWtfDFyIDPeay
	GTIn3EDhiTYBdX+nqXy9ke17HD1NyQqFSPne3tOf1hN3dG0/jFjYVw54
X-Gm-Gg: ASbGncsY7O/XOF0nbM7jH1yL8ewytY+DlY6GgZrgxfTq8MFoH3lP7L7fdy6c206x/bp
	bbfivI3+QvVpFJEmZHTxy22DJzY+rQqNdD/KlL4EavDhnJhCOFzCu4hibb9tVLqXD1a7gndRBpT
	17l6kwUwUWSKeypR16T+P5CEXksZtqlx6tgc0nvCokkndkti1kmUOosLdL0BpC4PwOHhqpsB4T3
	Bwj19CgmDb4iYWvWmo2ezRGFd9FADHXrTvGqITAIrTMAPb+iX+aA7PzDWwZNlUEYjcumhJC7104
	SvW6Iqx+YghInS8MEaDXbJ+CdT+FmAOaa1IQ0POL8dJSvJzZkfuQ6akrXUrlyIhiDAFN3yWzgBb
	cqJ4Du4UC+F4Oqwf883cEDhkty/KY3ivJKHuz5fgk5yaNc8MNbv8ET1PAcLcqoMrXfSLaQxpbzl
	LKstdwtQ==
X-Google-Smtp-Source: AGHT+IHSScj9ulx10Lu/FIS90qteHxu4c2+3gEzyD8Axq8ts7HEgWw+75PKPfoK/kY9XQKi9WMwgpQ==
X-Received: by 2002:a17:907:6096:b0:afe:8037:bc7d with SMTP id a640c23a62f3a-afe8037c1a3mr1368827766b.2.1756388584742;
        Thu, 28 Aug 2025 06:43:04 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------mvC54Y60ARKGqTcDKCs3snMe"
Message-ID: <3c365d64-939e-489f-ba78-ac9ea5311a6b@gmail.com>
Date: Thu, 28 Aug 2025 15:43:03 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [Reminder] Feature Freeze is Fri Aug 29, 2025
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>,
 Community Manager <community.manager@xenproject.org>,
 "committers@xenproject.org" <committers@xenproject.org>
References: <07fc7122-d0ac-4dbe-800d-89086a07005b@gmail.com>
 <e31bcf2b-50f9-42ca-ad17-e746652c1dd2@citrix.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <e31bcf2b-50f9-42ca-ad17-e746652c1dd2@citrix.com>

This is a multi-part message in MIME format.
--------------mvC54Y60ARKGqTcDKCs3snMe
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 8/26/25 9:12 PM, Andrew Cooper wrote:
> On 25/08/2025 4:50 pm, Oleksii Kurochko wrote:
>> Hello community,
>>
>> Iâ€™d like to remind everyone that the Feature Freeze deadline is approaching,
>> and we still have some outstanding requests from the community for patch series
>> to be merged into 4.21:
>>
>> 1. Enable guest suspend/resume support on ARM via vPSCI [1]
>> 2. Introduce SCI SCMI SMC multi-agent support [2]
>> 3. Introduce eSPI support [3]
>> 4. FRED work: [4], [5], possibly others (?)
> For FRED, That's all that's out on the list.
>
> I've got an update to 4 almost ready to post, this time getting to dev
> complete.
>
> Unfortunately, I've still not managed to get any time on real hardware
> yet, so FRED will still be experimental in my series.Â  (The timelines
> were originally compatible with Xen 4.21, but access to hardware has not
> been as forthcoming as hoped.)
>
> When I can test on real hardware, there may be bugfixes, and I may be
> able to upgrade the status if we're not too far into the RCs.

Sounds good to me. Letâ€™s wait until youâ€™re able to test it on real hardware.
Weâ€™ll have some extra time during the Feature Freeze period, and the RCs
will be moved as well. Iâ€™ll announce this a little later today.

~ Oleksii

>
> ~Andrew
--------------mvC54Y60ARKGqTcDKCs3snMe
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 8/26/25 9:12 PM, Andrew Cooper
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:e31bcf2b-50f9-42ca-ad17-e746652c1dd2@citrix.com">
      <pre wrap="" class="moz-quote-pre">On 25/08/2025 4:50 pm, Oleksii Kurochko wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">Hello community,

Iâ€™d like to remind everyone that the Feature Freeze deadline is approaching,
and we still have some outstanding requests from the community for patch series
to be merged into 4.21:

1. Enable guest suspend/resume support on ARM via vPSCI [1]
2. Introduce SCI SCMI SMC multi-agent support [2]
3. Introduce eSPI support [3]
4. FRED work: [4], [5], possibly others (?)
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
For FRED, That's all that's out on the list.

I've got an update to 4 almost ready to post, this time getting to dev
complete.

Unfortunately, I've still not managed to get any time on real hardware
yet, so FRED will still be experimental in my series.Â  (The timelines
were originally compatible with Xen 4.21, but access to hardware has not
been as forthcoming as hoped.)

When I can test on real hardware, there may be bugfixes, and I may be
able to upgrade the status if we're not too far into the RCs.</pre>
    </blockquote>
    <pre>Sounds good to me. Letâ€™s wait until youâ€™re able to test it on real hardware.
Weâ€™ll have some extra time during the Feature Freeze period, and the RCs
will be moved as well. Iâ€™ll announce this a little later today.

~ Oleksii

</pre>
    <blockquote type="cite"
      cite="mid:e31bcf2b-50f9-42ca-ad17-e746652c1dd2@citrix.com">
      <pre wrap="" class="moz-quote-pre">

~Andrew
</pre>
    </blockquote>
  </body>
</html>

--------------mvC54Y60ARKGqTcDKCs3snMe--


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 13:44:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 13:44:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098893.1452831 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urcv6-0000SZ-33; Thu, 28 Aug 2025 13:44:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098893.1452831; Thu, 28 Aug 2025 13: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 1urcv6-0000SS-0O; Thu, 28 Aug 2025 13:44:04 +0000
Received: by outflank-mailman (input) for mailman id 1098893;
 Thu, 28 Aug 2025 13:44:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=eAWs=3I=bounce.vates.tech=bounce-md_30504962.68b05d1f.v1-0a5675d16cee438c9c6b712c18ac4b49@srs-se1.protection.inumbo.net>)
 id 1urcv4-0000IL-N6
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 13:44:02 +0000
Received: from mail187-26.suw11.mandrillapp.com
 (mail187-26.suw11.mandrillapp.com [198.2.187.26])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0d61ceaf-8415-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 15:44:00 +0200 (CEST)
Received: from pmta09.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail187-26.suw11.mandrillapp.com (Mailchimp) with ESMTP id
 4cCN0b3W1bzKsbkbp
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 13:43:59 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 0a5675d16cee438c9c6b712c18ac4b49; Thu, 28 Aug 2025 13:43: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>
X-Inumbo-ID: 0d61ceaf-8415-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1756388639; x=1756658639;
	bh=my3luyqKo2dZnHOOYOj+LdonnR4q/KH6ynAakgWYZ8I=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=zDvxCdIec3aaPPDdt6kwOZ/KVkLBPI5vbUSPzTaPPswPIBRzcfC8CGz1nT0mShtV8
	 HjlVw9E1Rx4r6ghMJoJP7AxsoX0Ohnpmjx/nfHqg2YzaM/743a0Bu/r8GJUm3kHISC
	 J/mXeexqiz2A2YHJdXYSqKndPXcn1NZXZV1prtWu2KRezLILDDie7wH3inhtXH2ywE
	 rayMvR0XDSCqFoci4lW/ktAJN7Cs26b9YG99d6ByNWtnXYV5m6GJ1TDgYflE9ZhHLO
	 EM8qyXp1rxcs2/lhoIIpVvjlFkQmdFC/O/ud7HoZJZsqRf/4PW9/mVmJNOZ6LRWiXu
	 q7kZnPpfY4caQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1756388639; x=1756649139; i=teddy.astie@vates.tech;
	bh=my3luyqKo2dZnHOOYOj+LdonnR4q/KH6ynAakgWYZ8I=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=H8JdT3M7jl+nUX9YOQVPe5U3PqRSm1kh5dKYlaXWmZiXzggMLZgm1lCDhDLhagzZb
	 DAF7xnhAdnqr4umqjAm7OXvnNbJwG13MeEkEqWH5sNvzQ0yORSBhJwyZ2tesqb8KBD
	 xsdYPhPUnh9H54qG81t9hw+6Dp5V1Zce8i6xVANmRtB3aMtnnQPjwWNsbEAL0jxQDF
	 6ZN9YB0s2a/gpOSO7omABMMoSqaZieMqtrXsMmFgZkZ07qUPwYZPqDMqriin7MotQ/
	 DJ85ta/K1LeC6b0Ob3I/4uh8htIZNeFyaVd2Jwfvuuo5gIN3C1/Tj6u36D1+RwMrcS
	 8LFeBTUFBtSOQ==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v2=200/3]=20Update=20to=20SMBIOS=202.6?=
X-Mailer: git-send-email 2.50.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1756388637901
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "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>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Stefano Stabellini" <sstabellini@kernel.org>
Message-Id: <cover.1756388405.git.teddy.astie@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.0a5675d16cee438c9c6b712c18ac4b49?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250828:md
Date: Thu, 28 Aug 2025 13:43:59 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

First patch clarify the Xen guest handle definition as being a big
endian UUID. The second does update to SMBIOS 2.6, writing a proper
UUID in the table.

Teddy Astie (3):
  xen: Define xen_domain_handle_t encoding and formatting
  hvmloader: Update to SMBIOS 2.6
  CHANGELOG.md: Add SMBIOS 2.6 update statement

 CHANGELOG.md                            |  2 +
 tools/firmware/hvmloader/smbios.c       | 50 ++++++++++++++++++++-----
 tools/firmware/hvmloader/smbios_types.h |  9 +++++
 xen/include/public/xen.h                |  7 ++++
 4 files changed, 59 insertions(+), 9 deletions(-)

-- 
2.50.1



Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 13:44:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 13:44:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098894.1452842 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urcvA-0000iY-Do; Thu, 28 Aug 2025 13:44:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098894.1452842; Thu, 28 Aug 2025 13: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 1urcvA-0000iR-Ae; Thu, 28 Aug 2025 13:44:08 +0000
Received: by outflank-mailman (input) for mailman id 1098894;
 Thu, 28 Aug 2025 13:44:07 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kSDy=3I=bounce.vates.tech=bounce-md_30504962.68b05d24.v1-1a43149b149342c9b5eb50ae1b69afb3@srs-se1.protection.inumbo.net>)
 id 1urcv9-0000IL-Lc
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 13:44:07 +0000
Received: from mail187-26.suw11.mandrillapp.com
 (mail187-26.suw11.mandrillapp.com [198.2.187.26])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 105bc283-8415-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 15:44:05 +0200 (CEST)
Received: from pmta09.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail187-26.suw11.mandrillapp.com (Mailchimp) with ESMTP id
 4cCN0h70QTzKsbkb5
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 13:44:04 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 1a43149b149342c9b5eb50ae1b69afb3; Thu, 28 Aug 2025 13:44: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>
X-Inumbo-ID: 105bc283-8415-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1756388645; x=1756658645;
	bh=749WZuQSD3RJ4fQfzKGkAT09RJssRy+QRzxpooPcevY=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=Uiv9zFK7MT96K8N2iXAvWx7wEHEqWn/UbwTER7CsKtBQAgI7nPDah5c+aDuoqjfi7
	 Ze0UlSC/ePg1aSdmvaRRkyUk2ENJkXk0omXewMHydSMLtJcti5V/VjO1FOqHv5On1r
	 +BNFsrWFydX9/bL8vPuc1qIfjdPqVBwOxOfSvt8QpR1vX1N5+/WfW8pBx4V/ZVtBkn
	 XvlIs/mpMSEY1NVbRRpgHUpKLvGwx6haFyjNJsnw5cz55rIUIB88fgGmngNZb8tuZi
	 fWYtFi6YyhHV3COkSPNDNiJLmxPyEmr97NNCMWTA04WHIAOn08iK9+DtyxHUYEQwxs
	 0fzi9WICgLrXA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1756388645; x=1756649145; i=teddy.astie@vates.tech;
	bh=749WZuQSD3RJ4fQfzKGkAT09RJssRy+QRzxpooPcevY=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=nWgWWhRAMxW6JDVZTSr5VP/7gFnXWdzjkrnd43MNCbcXSENODltKyYb+LofCEuEdQ
	 uWheI6yAlXhUmBfq27jRTbbhSY8yR+xIIh3xDla0JtgUBSQxK9J/ohYiPVwxOmjWVx
	 /lXspsxdkz4d4DvkSNGYSYK3uVqqCUREZH731d0wfmLulagfWancYtYRe8fFN/kgsH
	 Y6sy7xig/objdC0d1jIaJQS8+TvCgp1+NFyBzn5US6+UsS1uE3BnDfFA9q4mvElVXp
	 dWISAyO5XuUTZy+hjO9kzou7WKPbLrIJTrwb5OqEcHP0xJ0JgoZ9J/i+gFmQHYH+dk
	 psOudV28xzGqg==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v2=201/3]=20xen:=20Define=20xen=5Fdomain=5Fhandle=5Ft=20encoding=20and=20formatting?=
X-Mailer: git-send-email 2.50.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1756388642648
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "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>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Stefano Stabellini" <sstabellini@kernel.org>
Message-Id: <8c36ee844f69c59cf2c504b411e6cf9c5617511b.1756386004.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1756388405.git.teddy.astie@vates.tech>
References: <cover.1756388405.git.teddy.astie@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.1a43149b149342c9b5eb50ae1b69afb3?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250828:md
Date: Thu, 28 Aug 2025 13:44:04 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

xen_domain_handle_t is defined as a opaque 16-bytes blob, but is
commonly used by toolstack and guest as a big-endian encoded and
formatted UUID (alike RFC 9562).

Clarify the definition of the type to ensure the guest and toolstack
interprets this value correctly in a way consistent with existing users
(at least with XAPI, xl, libvirt, hvmloader and Linux).

Fixes: 30ce2a9295a5 ("Store an opaque handle (tools uuid) in the domain structure")
Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
v2:
 - introduced
---
 CHANGELOG.md             | 1 +
 xen/include/public/xen.h | 7 +++++++
 2 files changed, 8 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index cd34ea87b8..8c4435c181 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,6 +11,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
    - For x86, GCC 5.1 and Binutils 2.25, or Clang/LLVM 11
    - For ARM32 and ARM64, GCC 5.1 and Binutils 2.25
  - Linux based device model stubdomains are now fully supported.
+ - Clarify guest UUIDs as being big-endian encoded.
 
  - On x86:
    - Restrict the cache flushing done as a result of guest physical memory map
diff --git a/xen/include/public/xen.h b/xen/include/public/xen.h
index 82b9c05a76..a219ef870f 100644
--- a/xen/include/public/xen.h
+++ b/xen/include/public/xen.h
@@ -973,6 +973,13 @@ typedef struct dom0_vga_console_info {
 #define xen_vga_console_info dom0_vga_console_info
 #define xen_vga_console_info_t dom0_vga_console_info_t
 
+/*
+ * The domain handle is chosen by the toolstack, and intended to hold a UUID
+ * conforming to RFC 9562 (i.e. big endian).
+ *
+ * Certain cases (e.g. SMBios) transform it to a Microsoft GUID (little
+ * endian) for presentation to the guest.
+ */
 typedef uint8_t xen_domain_handle_t[16];
 
 __DEFINE_XEN_GUEST_HANDLE(uint8,  uint8_t);
-- 
2.50.1



Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 13:44:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 13:44:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098895.1452852 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urcvB-0000xW-Jp; Thu, 28 Aug 2025 13:44:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098895.1452852; Thu, 28 Aug 2025 13:44: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 1urcvB-0000xL-H8; Thu, 28 Aug 2025 13:44:09 +0000
Received: by outflank-mailman (input) for mailman id 1098895;
 Thu, 28 Aug 2025 13:44:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=m9nx=3I=bounce.vates.tech=bounce-md_30504962.68b05d26.v1-9758e5427ca4410c85cf6709beb84b08@srs-se1.protection.inumbo.net>)
 id 1urcvA-0008Ok-Dg
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 13:44:08 +0000
Received: from mail180-6.suw31.mandrillapp.com
 (mail180-6.suw31.mandrillapp.com [198.2.180.6])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 116293e4-8415-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 15:44:07 +0200 (CEST)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-6.suw31.mandrillapp.com (Mailchimp) with ESMTP id 4cCN0k53frz2K248f
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 13:44:06 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 9758e5427ca4410c85cf6709beb84b08; Thu, 28 Aug 2025 13:44: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>
X-Inumbo-ID: 116293e4-8415-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1756388646; x=1756658646;
	bh=t+8UDjui/0POj7TE6by/B9mlUFOByI158R8Z7T4sNR0=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=r0CkLooVb+a643pZXlxqRoK9GJYwlZnwCJKZfaT+nGi3utL4q1IUgEtR1wohYrFy6
	 U9wor5bfKHofx28ofdaArU7XpX/a5NmotIkpLAxP8Gsxdtb0Ft2/L5t5DkyF/ud8Oi
	 I7anBt9+KJQqZGkJqJEFkZJppiG4lyo93uoBtxG4iAIqX44ivAk/Y5RUZmlWnBhuhX
	 Oh2CqV89EdYh92qrwvJeQWsv1echEC+tyFgLU/l+7aJtt7CLbSEEi07sqNySJXPlkR
	 CXP2frJA7e2JO+m84K02oTMSeW7C7cGd+hju2XtvZZ/eIFHnKq8iR77e+fkbT+Bnp4
	 TPKad4SJrCj2Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1756388646; x=1756649146; i=teddy.astie@vates.tech;
	bh=t+8UDjui/0POj7TE6by/B9mlUFOByI158R8Z7T4sNR0=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=FpUM6JvHJBOckJx10koqXzfHza1Mms+mwY7pumQxJHYgZ+29qxz4Rr1Imx33CgPwq
	 ek1m82OmIxNOQ5aQrMOJW5/X6uJ41pjQMp/bONPiGV7Sy8XHkTRkOtTo0M6RAPMq9O
	 /5CUk6XdDQEHC9UV1zYMRBmUtuWOhNHoZTQEHWKVZIdQtKOamHzB7e4IPnlIkqgetq
	 61oRKDoWTkgU3ucAykECSQcDTK8O4lLN4FVLDqC4QDXRna+zvTIswUXqVIBhpPBMYe
	 ZPLHtUOWB6rsH50yT/B6lh8oKxLwT6UBmFyXTwxwODdxZWfkEznY5m5QcXXmHSprBM
	 FJeERYEJT3qsw==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v2=202/3]=20hvmloader:=20Update=20to=20SMBIOS=202.6?=
X-Mailer: git-send-email 2.50.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1756388645698
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>
Message-Id: <94d8932680f60a8f34a420b4d57ea42f7a97c550.1756386155.git.teddy.astie@vates.tech>
In-Reply-To: <8c36ee844f69c59cf2c504b411e6cf9c5617511b.1756386155.git.teddy.astie@vates.tech>
References: <8c36ee844f69c59cf2c504b411e6cf9c5617511b.1756386155.git.teddy.astie@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.9758e5427ca4410c85cf6709beb84b08?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250828:md
Date: Thu, 28 Aug 2025 13:44:06 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Currently, hvmloader uses SMBIOS 2.4, however, when using OVMF, the
SMBIOS is patched to 2.8, which has clarified the UUID format (as GUID).

In Linux, if the SMBIOS version is >= 2.6, the GUID format is used, else
(undefined as per SMBIOS spec), big endian is used (used by Xen). Therefore,
you have a endian mismatch causing the UUIDs to mismatch in the guest.

$ cat /sys/hypervisor/uuid
e865e63f-3d30-4f0b-83e0-8fdfc1e30eb7
$ cat /sys/devices/virtual/dmi/id/product_uuid
3fe665e8-303d-0b4f-83e0-8fdfc1e30eb7
$ cat /sys/devices/virtual/dmi/id/product_serial
e865e63f-3d30-4f0b-83e0-8fdfc1e30eb7

This patch updates the SMBIOS version from 2.4 to 2.6 and does the appropriate
modifications of the table. This effectively fix this endianness mismatch with
OVMF; while the UUID displayed by Linux is still the same for SeaBIOS.

Fixes: c683914ef913 ("Add code to generate SMBIOS tables to hvmloader.")
(SMBIOS versions before 2.6 has a ill-defined UUID definition)
Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
v2:
 - rebase onto staging
 - introduce missing SMBIOS 2.5-2.6 fields
 - check for new SMBIOS 2.6 table lengths
 - update UUID conversion comment
 - add Fixes: note
---
 tools/firmware/hvmloader/smbios.c       | 50 ++++++++++++++++++++-----
 tools/firmware/hvmloader/smbios_types.h |  9 +++++
 2 files changed, 50 insertions(+), 9 deletions(-)

diff --git a/tools/firmware/hvmloader/smbios.c b/tools/firmware/hvmloader/smbios.c
index 76c7090d16..e445475d78 100644
--- a/tools/firmware/hvmloader/smbios.c
+++ b/tools/firmware/hvmloader/smbios.c
@@ -396,7 +396,7 @@ smbios_entry_point_init(void *start,
     memcpy(ep->anchor_string, "_SM_", 4);
     ep->length = 0x1f;
     ep->smbios_major_version = 2;
-    ep->smbios_minor_version = 4;
+    ep->smbios_minor_version = 6;
     ep->max_structure_size = max_structure_size;
     ep->entry_point_revision = 0;
     memcpy(ep->intermediate_anchor_string, "_DMI_", 5);
@@ -505,7 +505,22 @@ smbios_type_1_init(void *start, const char *xen_version,
     p->version_str = 3;
     p->serial_number_str = 4;
 
-    memcpy(p->uuid, uuid, 16);
+    /*
+     * Xen toolstack uses big endian UUIDs, however GUIDs (which requirement
+     * is clarified by SMBIOS >= 2.6) has the first 3 components appearing as
+     * being little endian and the rest as still being big endian.
+     */
+    /* First component */
+    for ( unsigned int i = 0; i < 4; i++ )
+        p->uuid[i] = uuid[4 - i - 1];
+    /* Second component */
+    p->uuid[4] = uuid[5];
+    p->uuid[5] = uuid[4];
+    /* Third component */
+    p->uuid[6] = uuid[7];
+    p->uuid[7] = uuid[6];
+    /* Rest */
+    memcpy(p->uuid + 8, uuid + 8, 8);
 
     p->wake_up_type = 0x06; /* power switch */
     p->sku_str = 0;
@@ -705,8 +720,8 @@ smbios_type_4_init(
     struct smbios_type_4 *p = start;
     uint32_t eax, ebx, ecx, edx;
 
-    /* Specification says Type 4 table has length of 23h for v2.3+. */
-    BUILD_BUG_ON(sizeof(*p) != 35);
+    /* Specification says Type 4 table has length of 2Ah for v2.6. */
+    BUILD_BUG_ON(sizeof(*p) != 42);
 
     memset(p, 0, sizeof(*p));
 
@@ -716,7 +731,7 @@ smbios_type_4_init(
 
     p->socket_designation_str = 1;
     p->processor_type = 0x03; /* CPU */
-    p->processor_family = 0x01; /* other */
+    p->processor_family = p->processor_family_2 = 0x01; /* other */
     p->manufacturer_str = 2;
 
     cpuid(1, &eax, &ebx, &ecx, &edx);
@@ -736,6 +751,22 @@ smbios_type_4_init(
     p->l2_cache_handle = 0xffff; /* No cache information structure provided. */
     p->l3_cache_handle = 0xffff; /* No cache information structure provided. */
 
+    /*
+     * We have a smbios type 4 table per vCPU (which is per socket),
+     * which means here that we have 1 socket per vCPU.
+     */
+    p->core_count = p->core_enabled = p->thread_count = 1;
+
+    /*
+     * We set 64-bits, execute protection and enhanced virtualization.
+     * We don't set Multi-Core (bit 3) because this individual processor
+     * (as being a single vCPU) is only having one core.
+     *
+     * SMBIOS specification says that these bits don't state anything
+     * regarding the actual availability of such features.
+     */
+    p->processor_characteristics = 0x64;
+
     start += sizeof(*p);
 
     strncpy(buf, "CPU ", sizeof(buf));
@@ -780,8 +811,8 @@ smbios_type_8_init(void *start)
 static void *
 smbios_type_9_init(void *start)
 {
-    /* Specification says Type 9 table has length of 0Dh for v2.1-2.5. */
-    BUILD_BUG_ON(sizeof(struct smbios_type_9) != 13);
+    /* Specification says Type 9 table has length of 11h for v2.6+. */
+    BUILD_BUG_ON(sizeof(struct smbios_type_9) != 17);
 
     /* Only present when passed in. */
     return smbios_pt_copy(start, 9, SMBIOS_HANDLE_TYPE9,
@@ -870,8 +901,8 @@ smbios_type_17_init(void *start, uint32_t memory_size_mb, int instance)
     char buf[16];
     struct smbios_type_17 *p = start;
 
-    /* Specification says Type 17 table has length of 1Bh for v2.3-2.6. */
-    BUILD_BUG_ON(sizeof(*p) != 27);
+    /* Specification says Type 17 table has length of 1Ch for v2.6. */
+    BUILD_BUG_ON(sizeof(*p) != 28);
 
     memset(p, 0, sizeof(*p));
 
@@ -890,6 +921,7 @@ smbios_type_17_init(void *start, uint32_t memory_size_mb, int instance)
     p->bank_locator_str = 0;
     p->memory_type = 0x07; /* RAM */
     p->type_detail = 0;
+    p->attributes = 0;
 
     start += sizeof(*p);
     strcpy(start, "DIMM ");
diff --git a/tools/firmware/hvmloader/smbios_types.h b/tools/firmware/hvmloader/smbios_types.h
index c04b435d31..860617d86a 100644
--- a/tools/firmware/hvmloader/smbios_types.h
+++ b/tools/firmware/hvmloader/smbios_types.h
@@ -147,6 +147,11 @@ struct smbios_type_4 {
     uint8_t serial_number_str;
     uint8_t asset_tag_str;
     uint8_t part_number_str;
+    uint8_t core_count;
+    uint8_t core_enabled;
+    uint8_t thread_count;
+    uint16_t processor_characteristics;
+    uint16_t processor_family_2;
 } __attribute__ ((packed));
 
 /* SMBIOS type 7 - Cache Information */
@@ -185,6 +190,9 @@ struct smbios_type_9 {
     uint16_t slot_id;
     uint8_t slot_characteristics_1;
     uint8_t slot_characteristics_2;
+    uint16_t sgn_base;
+    uint8_t bus_number_base;
+    uint8_t devfn_base;
 } __attribute__ ((packed));
 
 /* SMBIOS type 11 - OEM Strings */
@@ -227,6 +235,7 @@ struct smbios_type_17 {
     uint8_t serial_number_str;
     uint8_t asset_tag_str;
     uint8_t part_number_str;
+    uint8_t attributes;
 } __attribute__ ((packed));
 
 /* SMBIOS type 19 - Memory Array Mapped Address */
-- 
2.50.1



Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 13:44:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 13:44:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098896.1452861 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urcvE-0001Fs-Rt; Thu, 28 Aug 2025 13:44:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098896.1452861; Thu, 28 Aug 2025 13: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 1urcvE-0001Fl-OY; Thu, 28 Aug 2025 13:44:12 +0000
Received: by outflank-mailman (input) for mailman id 1098896;
 Thu, 28 Aug 2025 13:44:11 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=eArr=3I=bounce.vates.tech=bounce-md_30504962.68b05d28.v1-c0fa1d0cf4064c84899b1ef9bfdfb85b@srs-se1.protection.inumbo.net>)
 id 1urcvD-0000IL-5j
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 13:44:11 +0000
Received: from mail180-6.suw31.mandrillapp.com
 (mail180-6.suw31.mandrillapp.com [198.2.180.6])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1292fa90-8415-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 15:44:09 +0200 (CEST)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-6.suw31.mandrillapp.com (Mailchimp) with ESMTP id 4cCN0m4zzWz2K22BX
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 13:44:08 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 c0fa1d0cf4064c84899b1ef9bfdfb85b; Thu, 28 Aug 2025 13:44:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1292fa90-8415-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1756388648; x=1756658648;
	bh=JA+/yfk9Af6wY74EpBXK3E5RVQRYRs4jfDuZX0QuHCg=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=YicXwdNJk3iA5Stv0Ge2sMhZpQLkbo3xKq9fnHqkpw3+DfQ/IJ5rvs6KpdpSwwO/m
	 1AcVRXc3OYe0izsI7p/P36oLpEsUM5qKJCyGUdReoYW1oZIwAAWVz2BCmu8x6jt1Ia
	 RbHUqqZoPQBFSvRVqFR2EfL0IPkUE6xD569uWYFTvV4SHXWpK9+GzNcrK5UG1TArkV
	 Eji9D5+v9NMmI6WPfXcfGswrCEUvs6BPrHpZZwugaUcFPCoRoC2BQGvlDRU1cwG6Jt
	 Xv4Ol6F2i6MXX+fIKp5fDpk1/vmBKTmDiXOsVmDaswlO2z9PUt3ZdPPIfzJvXzTpt+
	 8RyAj9t/cruIw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1756388648; x=1756649148; i=teddy.astie@vates.tech;
	bh=JA+/yfk9Af6wY74EpBXK3E5RVQRYRs4jfDuZX0QuHCg=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=kUnHqb+cou97i8ychepgLOMS8D2sJGoCdlM3wIvmqQ+ZnO2O67+rTV1H3DPgPHDqK
	 tw4tJEaQsyTj3ZBn9KneA8qrD6vfBpynInPqcA3in6kxEReogu+xUXPeQTMiYZLDC0
	 jAhalROmYtZXPOda71/t3ulE+BTMplK40k0Ly3vOChaaVjtRH48Y7y4T6TslO00OnF
	 bnFHyEI9lESmsDQTf0NVZzZ8U30QNrIqbqFMbPuNFa18Aak/RCgVeqzmYy7KWeW5Kn
	 HEwVUyzFVqBBPP20HNymz3l2U7em88mUjhFU+WIOQG2pLPHgNaQAUC5BViTHjdI+sf
	 89JSYJQ0ZdIOA==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v2=203/3]=20CHANGELOG.md:=20Add=20SMBIOS=202.6=20update=20statement?=
X-Mailer: git-send-email 2.50.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1756388647890
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Oleksii Kurochko" <oleksii.kurochko@gmail.com>, "Community Manager" <community.manager@xenproject.org>
Message-Id: <189aa906a1061a209f982f68291df12194a4f6fe.1756386155.git.teddy.astie@vates.tech>
In-Reply-To: <8c36ee844f69c59cf2c504b411e6cf9c5617511b.1756386155.git.teddy.astie@vates.tech>
References: <8c36ee844f69c59cf2c504b411e6cf9c5617511b.1756386155.git.teddy.astie@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.c0fa1d0cf4064c84899b1ef9bfdfb85b?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250828:md
Date: Thu, 28 Aug 2025 13:44:08 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
v2:
 - introduced
---
 CHANGELOG.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8c4435c181..80a8273d7e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -34,6 +34,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
    - Support in hvmloader for new SMBIOS tables: 7 (Cache Info), 8 (Port
      Connector), 9 (System Slots), 26 (Voltage Probe), 27 (Cooling Device),
      and 28 (Temperature Probe).
+   - Updated SMBIOS version to 2.6.
 
  - On Arm:
     - Ability to enable stack protector
-- 
2.50.1



Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 13:46:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 13:46:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098929.1452872 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urcxf-0002cp-9v; Thu, 28 Aug 2025 13:46:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098929.1452872; Thu, 28 Aug 2025 13:46: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 1urcxf-0002ci-79; Thu, 28 Aug 2025 13:46:43 +0000
Received: by outflank-mailman (input) for mailman id 1098929;
 Thu, 28 Aug 2025 13:46:42 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fCus=3I=epam.com=Oleksii_Moisieiev@srs-se1.protection.inumbo.net>)
 id 1urcxe-0002a7-9Y
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 13:46:42 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6d38b4f1-8415-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 15:46:41 +0200 (CEST)
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com (2603:10a6:102:32e::21)
 by DU4PR03MB10719.eurprd03.prod.outlook.com (2603:10a6:10:58e::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.14; Thu, 28 Aug
 2025 13:46:39 +0000
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::f12d:7394:bbe3:dfc]) by PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::f12d:7394:bbe3:dfc%6]) with mapi id 15.20.9052.014; Thu, 28 Aug 2025
 13:46: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>
X-Inumbo-ID: 6d38b4f1-8415-11f0-8adc-4578a1afcccb
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Fi7RaQXizu9+qtfPc7mnLaPukTnJkXgfSZ5vFLeUy30ENZ/TrAZfCpjroTICmOl4xRXAVVS388gapeg/9z7tO6n1tepn723XozTCnleldke/Y1DB+0J4n4+SafcxfNRPKMfSnSIcucBc7fyzgJRlWvphjKiMwSMBnXL5+o1iTnPK7QFruFWxn5t2oAR6UZ9+ogNbxW7eTy4kU1wa7Xb2yuNTzUgisaVjHyhZHW7tT55V4U45ZcX4xIdMQKu0eeHAjwLTsG77HMi/KtVqJXhliY+C9sGxsFDB7X6aF3JRWcBeELvDje7EZbPgEuxNxF5UWzWuB3WBn5rkUO2ZnPtvdw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=zpZFXLlc8ZAo7nCfMOKEHeB6sK6661vTJ7av/U8Fxf8=;
 b=nrY43mak/YfqtS8ZVgwadS30PwL2PJnXg7lf7NHti/qk8ix1Mr1+LtkmaxiyAWyc4UhXhC2Rza3JoWKiKPSSPimG1fP4DZHB8SqfOIWOhGTluNej6dbqkjOhYvp+kIlvdQCvXTfx0D5/1Y0NUsF/rOohq4iqM6vNWYDGPXcGlPBRDTi91c70+58WZokAsEz2351v+2A8ArlsLxSMOQ0YWOrnNhHoFrUJtdF2yfPwcGuIaZ3hlXlY3wlrZ56PZwMBEU9hOSNjfsGJPM87xQjiHEqCeut0dKPke3XYzmhm8rEuWmMg4KKTZNTd/3/TN0bkzWITvrxiwxHdysjFkCVR0g==
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=zpZFXLlc8ZAo7nCfMOKEHeB6sK6661vTJ7av/U8Fxf8=;
 b=rCYlK5bm8A7VFI/mC6D8wJJ6JBNJHt02hZTb309HmFsvWqEpnMIFEKnWMB+Pn/0EK3ubXjlp7xiojk3Xjuv9hpkp/gX9APoGOjBiEHzP52dVo5B0JX5xGwbHhx4783SwGJLxrQ7/mzDQ9ZQ2823kk1hX+7sdg3TFbKeRsSFvF48be1mqMehbwy6DVzTl8k8e8QyNvHpKmH0irt11Atj4f2TbYq4V+ba5Ph6wyaMIxqC3kLx6+wE8eMyjEGdLde8NTaIb4LHQPUzbCIWZK4N+lw+dl57zjDzvq/yZ+sR68OFrMaj+Zsln6KxrKe0jWghgBmSOFs90xI9+X7Y5R9c8uw==
From: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
To: Stefano Stabellini <sstabellini@kernel.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Bertrand Marquis <bertrand.marquis@arm.com>, Jan
 Beulich <jbeulich@suse.com>, Juergen Gross <jgross@suse.com>, Julien Grall
	<julien@xen.org>, Michal Orzel <michal.orzel@amd.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Grygorii Strashko
	<grygorii_strashko@epam.com>
Subject: Re: [RFC PATCH v5 01/10] xen/arm: add generic SCI subsystem
Thread-Topic: [RFC PATCH v5 01/10] xen/arm: add generic SCI subsystem
Thread-Index: AQHb+v2VIVqDwzw580eWg2MNhp5UUrRvkxEAgAi7TgA=
Date: Thu, 28 Aug 2025 13:46:38 +0000
Message-ID: <6d0cf3fb-2e51-491f-98a3-94d7ee48f881@epam.com>
References: <cover.1753184487.git.oleksii_moisieiev@epam.com>
 <a690ea9c64ca224a8fb1b0771de220f594824151.1753184487.git.oleksii_moisieiev@epam.com>
 <alpine.DEB.2.22.394.2508221643200.2743087@ubuntu-linux-20-04-desktop>
In-Reply-To:
 <alpine.DEB.2.22.394.2508221643200.2743087@ubuntu-linux-20-04-desktop>
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: PAVPR03MB8946:EE_|DU4PR03MB10719:EE_
x-ms-office365-filtering-correlation-id: a28d7630-cd53-43d0-b30e-08dde639503d
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|376014|7416014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?Sng2SGcrbEJvemc5eFg4VXMzM1JlcDhxa3RVVmN0OCtSYVlpZGtuZGtqdEtS?=
 =?utf-8?B?MFhWSnMrN01XZTR4MkpPT0o4d1l4TzNTYUF5N2JaS3htNWJ4K2FzK2RIVTdT?=
 =?utf-8?B?bFJLWEVlNDlwdnFFS1JxdDhVeE53b2RScndmRVJpSnFTOFRDR1ltU2F0a1Iw?=
 =?utf-8?B?b2x0SFJMNnRMcVgvbE41a2FQbUVOQTM2Qnd1WGhGVGFFZHJ0QTZESGVQNmZ4?=
 =?utf-8?B?andVdjJCZjk5RmY5QzFZZExVVHRmU2dCa05zVVJsdFVIdlZuTmxqTm5BbEkx?=
 =?utf-8?B?SXpwQ2M1a1dXM25DaWlaakg4cWNSQVZKMjFXTlVSZWRTUVdETTF4ekhBcXcz?=
 =?utf-8?B?VytmZWEzcksxb05wUEYyMzFwS0p6cEQ3OFprWmdkcGd3dVM5VkJDWkFtNmtp?=
 =?utf-8?B?VXlMcW5menhueG5MbkhNV2lQM3lxQ1A5dXVHck1paWluYnpiVzR6eDAwNVdv?=
 =?utf-8?B?OUg2akxmNnJZL3RlT3dNT3BTM3cyRFdyaFladXpSYzNTVS94cFh3cDNsdGZ4?=
 =?utf-8?B?akpHM1JMZjNzTjh1MHFJWWVoQlZlM2JFbCtZRi9Qd0xJK25XdUZaZzhNU2Jn?=
 =?utf-8?B?eXd1enFHUHBuc3hhZFBWRGJlVk5WQzFiMXl3ZEVQQlZScnJNYmhGK3RhdjRs?=
 =?utf-8?B?T0VON1BpVmRlWnZpNUIvaWVTWkZWcnh0RzJaOVZ5ZXFqTzVvU1ZkaUJKcDli?=
 =?utf-8?B?RnRkbWZ4VCtDNkp3azkvZURvVmdESzVhdmJpZEEyRC9PbGFrT3hCMWpDc0pi?=
 =?utf-8?B?SGNBSDJKeGYyclNqQ3FuQml3UFN5ZTV2eXZMQ2laNjlYc1NrbjNiSVE4TnQ0?=
 =?utf-8?B?cU5FNkczalp2UFlLREdyNmFxUDIwNTRoWG95RzgrWmZ0MVN3TWZVWGlRKzg1?=
 =?utf-8?B?cU43Vi9ubmpkTWErdHZCL0cwMVduZC9VVEpIZFVwWnFtemNaajRtVTBwOHlB?=
 =?utf-8?B?QnY4R016N0lhNmQzSXdVTVpnaE5TUlVkTzgzZVhWRUQwTVBMMm5VOU1vS3Ay?=
 =?utf-8?B?aGhuU241SnlJeHpVd3ZJWUxhbmlCUWdQUlU5NUErNk9HVzJJWDRGanZQV1pr?=
 =?utf-8?B?UHZzT3VFa1YxZDFKS0p5UEdYTWNONFhhRFBEVndWWkszdCs4M0FaMURYYUcr?=
 =?utf-8?B?UXJudVB4d1oyVlU5MlowYWVhRkR5NkttTkpyUVBld3IwWkV0ZkNUMkRweEsv?=
 =?utf-8?B?ckpmNmhwMnFqTXlUcE5RSW55QTdjbThvMkhxbmloRzRtNkUzUDJoeG9ZVSt2?=
 =?utf-8?B?ZGFvUm4ySDZuTXkvZ0VNZzl5NkxSMitnQnRQK2IwYjdvRmI0TW1qMURlQ2dE?=
 =?utf-8?B?eHFHVTNrMGlGczNwS09EWWJ0SVJzL3hMT1d1bTNmbmIzdmt0NXRZUnhZUVZW?=
 =?utf-8?B?bDRPbmdCcjA4bzB1Mmd6cmUxYlh3aUFxQTYyZ1JtVUxyQ3d1MDN5YUYyTjJu?=
 =?utf-8?B?ZDRuVVowRGlPS2lWYWw1dUhiQkRreHVEeTBicGpNRWoyaHlmZjhWcVorUzda?=
 =?utf-8?B?VVE1M05PL25valFvd2E2Nk9TQVg4UFhxQnh5YTN3WWRZbFY3eVVxb1VCYjNF?=
 =?utf-8?B?dmg2MFQzUXBnU1hvRmpZNGJHYVQvK29vZFp2ZFZObk1SaGVMTVRzcDl5aTlF?=
 =?utf-8?B?RzF6QnVzOWxSUnVLczZVUXRKN2NBQVNGbThlYlFnUStWamlzTzkzWTVKZ2RM?=
 =?utf-8?B?VmNBOU1QdzMwMWppeTFXeWx0ZE9uRnNyK3JVVWhQOTBRQU9FYzBHa3dRQ2Jp?=
 =?utf-8?B?Z0wxRE03NWZ1TWdRMHpMSTlMMFVQSnJwRUlHRC8xM1J0WVM0MHJ4UkR3WFFj?=
 =?utf-8?B?eERFYjg0RFJYZ2tRVEVMa0RUWFZKOGlvNG5RcmJxbzMyOHBZajlsMFZCUEpi?=
 =?utf-8?B?SC9SNEJBQktzemg5a2RFRjlFNzBvNTVNU3l5S2hXRmI1NTkvSVVUUDgvWFBT?=
 =?utf-8?B?UEcwMUtUT1N6T2VDSzZHWnNYdXM2cWYvclhSM3lBQjBPc05IYit4N0thMVA4?=
 =?utf-8?B?czNVc3ZLeVFRPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB8946.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?TldsalRDbjNEazUvSDFNYXU0QnpEQXZ0TFJIZkUwK1lSNWtWUUc1U0w2SVdD?=
 =?utf-8?B?SXoyQ1RwV3cydmsxdG1wMEtiNzBBczhoK3FGVndmWDc1RWpKcGo5NjRWVUY1?=
 =?utf-8?B?cytVOGJTTVJuUUIzQmVmMkMreXZCZTZIN0pvcHp4Q2JmTDdMRVBuT3U2N2JY?=
 =?utf-8?B?NXd6blJxcWErMHMvMXhPOWFNa3RyTDdTQVY5TWdvTHNYVkhaZlhQUWZMai9B?=
 =?utf-8?B?SEF1L0ptSVdmM3gzVmNRangwU1V3ZFBETS9nM2lnT2VoNkM2QlMwL0wzNjd4?=
 =?utf-8?B?dWhXTFU0NVJoOGI3bWJIYzVFc1BKQWtta3c4ODl1dmlGbkFPclF4QWJEZVho?=
 =?utf-8?B?T3lvUEJPYlJlZlVXMmVqb3NkZzJxOGVIYjFWUnUvQUgyRTlGcGVzQVFUZmJh?=
 =?utf-8?B?YmlaT041MHF1dUNJdDQvT1dxZ0hCbFltcnBlRUxkQloxbDBiZWYwOHJ6b05x?=
 =?utf-8?B?TTN2WGFYQ05EUlRjYzg0R2FBYTRpM3FNQjBSSFYwbE9ZUlRWWWhNMjNWMThB?=
 =?utf-8?B?SElCZEMrZDJBOFV5azEvRVZHbk85UGRmbW1YcmpobVdNV1VyMllOWkZaVzhr?=
 =?utf-8?B?RVpmN0cvb0ZNeWFrZHo3clhYN2dVZFdWVGJMaXNEME5TdEkxNzA1WFc4OUdW?=
 =?utf-8?B?bkUzKzVaQ0laQlVTOGJNRU9mN1FwU3U3UHRjT0xrdDZTUjVZWnVOaWdpY29u?=
 =?utf-8?B?N296VXJVYmZhenZ6ODZKLysvYnVlU0RBUllxd1luNjQrVUNvdjVVdjhXTGZl?=
 =?utf-8?B?N1lZaVk0Ui9EQnZJNkk2TG0xcU1OeTQ5WmhvNVJpWnE3SEVleU1GMkpKeGtE?=
 =?utf-8?B?WHNjM0FNSVNCcVU5TmtXMEQ0UDJ2QVp4R0huSjdjL2tpZ3kycDFFRUNIQmVO?=
 =?utf-8?B?dHA0NFUxTVo5VUpqQ2ZnWmk3dDJqbDRqbjZoZytQbTNvK1RhZURzSEJIQTUy?=
 =?utf-8?B?emN6WUNiTEdMVGltNDFVWU5vTlc5QVovR3lnbUg4bGxiRm9JRVJPRFpybTZF?=
 =?utf-8?B?enUrRjNIKzlZc091RXo3MXlFNUtKVFpVU3lZWlNUamZXSURqYkRycm9TVGdD?=
 =?utf-8?B?cU5LN3JXUmRVbGlkZHRnYnREdUtkdDM0TzhycmRGNTI2ZGhiRmdRYmZIblNr?=
 =?utf-8?B?d1FlZnYwVFp4Nlo2aW8zNGU5Vjk2TjVNTUgvZDY5cEhOeHdla24vUFYxaU1I?=
 =?utf-8?B?RXlqazhHY3dMTTFDY1YrYVV5VEhZVzRxeTZjN28rWmZsdXpqeUhTVDhWZjNz?=
 =?utf-8?B?cVZ6OWQ4Qmdpc3VJL0VRaWRDcVdPUmJ1RmQyZEs0TlMvdGRiTitqMFV5ZVhv?=
 =?utf-8?B?SkpYM1o1V3NrcjlYS1Z2YWtDeTNXanJCMFZXZldsRzRJVEtRTjlycTZQdFFO?=
 =?utf-8?B?MFROV0dIL3l1ODV1ei9WeTZlelNQMHc1YXpyYjB1dlFoQWlWK05Ib0N3MkdS?=
 =?utf-8?B?OEZEWXpKbWNRZytOeVNDLzNtYlAwS29yNkNTdXFCaUNEakc2ckgzRnI5RUdX?=
 =?utf-8?B?em5DOGg3czdobGF6RGR2RUZ1V1RLLzBVaWVKL2UzTE4yd0l5VEpEZ3JsSmg1?=
 =?utf-8?B?bC9md2FNWWpURVVTelFBRytZb3Z3UFRSdklYaDVZSDVKZldDZHZaWG85eE1B?=
 =?utf-8?B?Sm1sSkFmcmZxS3k4cVJNRUJyeEFYMXhyMVlOQytVeHFkck9vdWN0RWNUdHpT?=
 =?utf-8?B?ZlpzRVdZc1h6K1l0UXlxakc5RCtqYjF6Y0pwTUlCeUFzSVFZUG1Ydk1ycGlB?=
 =?utf-8?B?RXNIN2Z1K2FnQ1d5ZEtUaVZlbVl3SldOZDk0a1Z3Y1BVSGhVLzlpMnFUZ0lB?=
 =?utf-8?B?eDFrU1Q4VWdIWVFPRWt0bHpDeFpTNzE3bmJFNjNFbFpnQjlMODY3VXUxWTRT?=
 =?utf-8?B?TUxiTm5hVFQxZ0M0MklVbnFyMzJKVGtVKzlFY29vZDNnWG9CdWQwTW9ycVRx?=
 =?utf-8?B?dms3VUxqb1JBS3JiYmJ3Q3EzbTlTM20xVWgrM29iVCtZM2J2R3NPUE1pTmt2?=
 =?utf-8?B?d2dqMjZHdFoyc3YxOE5UQ0EyM01rTkE0cVNKSFpJNm5mSzFBMkhkNWg2cjgv?=
 =?utf-8?B?OXZjQTl1RUk0bUx2MEt4SlVxMFEwOVZhOUM3QWNpTkNVT3ducjVZMUJUL29S?=
 =?utf-8?B?VEw2UUxaVS9paEs0QTdMY1ZlYmgwRGF4cXZ3Q283VDh2bG5rK3RuZk1seU9Q?=
 =?utf-8?B?N3c9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <8E0117CDD21DCF48B2A9AA881A226E68@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: PAVPR03MB8946.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a28d7630-cd53-43d0-b30e-08dde639503d
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Aug 2025 13:46:38.9830
 (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: rgKvi6e3tdaG9PpukeH7Cpx9MKDA71LoayfhkHPKK9UIzjPVuzOi5tiRbgUvYznHH7kz43crRF5rR76du4qkZdhLKyDeShjKw5S4gOhPOxc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR03MB10719

DQoNCk9uIDIzLzA4LzIwMjUgMDM6MjYsIFN0ZWZhbm8gU3RhYmVsbGluaSB3cm90ZToNCj4gT24g
VHVlLCAyMiBKdWwgMjAyNSwgT2xla3NpaSBNb2lzaWVpZXYgd3JvdGU6DQo+PiBUaGlzIHBhdGNo
IGFkZHMgdGhlIGJhc2ljIGZyYW1ld29yayBmb3IgQVJNIFNDSSBtZWRpYXRvci4gU0NJIGlzIFN5
c3RlbQ0KPj4gQ29udHJvbCBJbnRlcmZhY2UsIHdoaWNoIGlzIGRlc2lnbmVkIHRvIHJlZGlyZWN0
IHJlcXVlc3RzIGZyb20gdGhlIERvbWFpbnMNCj4+IHRvIEFSTSBzcGVjaWZpYyBGaXJtd2FyZSAo
Zm9yIGV4YW1wbGUgU0NNSSkuIFRoaXMgd2lsbCBhbGxvdyB0aGUgZGV2aWNlcywNCj4+IHBhc3Nl
ZC10aHJvdWdoIHRvIHRoZSBkaWZmZXJlbnQgRG9tYWlucywgdG8gYWNjZXNzIHRvIHRoZSBTeXN0
ZW0gcmVzb3VyY2VzDQo+PiAoc3VjaCBhcyBjbG9ja3MvcmVzZXRzIGV0YykgYnkgc2VuZGluZyBy
ZXF1ZXN0cyB0byB0aGUgZmlybXdhcmUuDQo+Pg0KPj4gQVJNIFNDSSBzdWJzeXN0ZW0gYWxsb3dz
IHRvIGltcGxlbWVudCBkaWZmZXJlbnQgU0NJIGRyaXZlcnMgdG8gaGFuZGxlDQo+PiBzcGVjaWZp
YyBBUk0gZmlybXdhcmUgaW50ZXJmYWNlcyAobGlrZSBBUk0gU0NNSSkgYW5kIG1lZGlhdGUgcmVx
dWVzdHMNCj4+IC1iZXR3ZWVuIHRoZSBEb21haW5zIGFuZCB0aGUgRmlybXdhcmUuIEFsc28gaXQg
YWxsb3dzIFNDSSBkcml2ZXJzIHRvIHBlcmZvcm0NCj4+IHByb3BlciBhY3Rpb24gZHVyaW5nIERv
bWFpbiBjcmVhdGlvbi9kZXN0cnVjdGlvbiB3aGljaCBpcyB2aXRhbCBmb3INCj4+IGhhbmRsaW5n
IHVzZSBjYXNlcyBsaWtlIERvbWFpbiByZWJvb3QuDQo+Pg0KPj4gVGhpcyBwYXRjaCBpbnRyb2R1
Y2VzIG5ldyBERVZJQ0VfRklSTVdBUkUgZGV2aWNlIHN1YmNsYXNzIGZvciBwcm9iaW5nIFNDSQ0K
Pj4gZHJpdmVycyBiYXNpbmcgb24gZGV2aWNlIHRyZWUsIFNDSSBkcml2ZXJzIHJlZ2lzdGVyIGl0
c2VsZiB3aXRoDQo+PiBEVF9ERVZJQ0VfU1RBUlQvRU5EIG1hY3JvLiBPbiBpbml0IC0gdGhlIFND
SSBkcml2ZXJzIHNob3VsZCByZWdpc3RlciBpdHMNCj4+IFNDSSBvcHMgd2l0aCBzY2lfcmVnaXN0
ZXIoKS4gT25seSBvbmUgU0NJIGRyaXZlciBjYW4gYmUgc3VwcG9ydGVkLg0KPj4NCj4+IEF0IHJ1
bi10aW1lLCB0aGUgZm9sbG93aW5nIFNDSSBBUEkgY2FsbHMgYXJlIGludHJvZHVjZWQ6DQo+Pg0K
Pj4gLSBzY2lfZG9tYWluX3Nhbml0aXNlX2NvbmZpZygpIGNhbGxlZCBmcm9tIGFyY2hfc2FuaXRp
c2VfZG9tYWluX2NvbmZpZygpDQo+PiAtIHNjaV9kb21haW5faW5pdCgpIGNhbGxlZCBmcm9tIGFy
Y2hfZG9tYWluX2NyZWF0ZSgpDQo+PiAtIHNjaV9yZWxpbnF1aXNoX3Jlc291cmNlcygpIGNhbGxl
ZCBmcm9tIGRvbWFpbl9yZWxpbnF1aXNoX3Jlc291cmNlcygpDQo+PiAtIHNjaV9kb21haW5fZGVz
dHJveSgpIGNhbGxlZCBmcm9tIGFyY2hfZG9tYWluX2Rlc3Ryb3koKQ0KPj4gLSBzY2lfaGFuZGxl
X2NhbGwoKSBjYWxsZWQgZnJvbSB2c21jY2NfaGFuZGxlX2NhbGwoKQ0KPj4gLSBzY2lfZHRfaGFu
ZGxlX25vZGUoKQ0KPj4gLSBzY2lfZHRfZmluYWxpemUoKSBjYWxsZWQgZnJvbSBoYW5kbGVfbm9k
ZSgpIChEb20wIERUKQ0KPj4NCj4+IFNpZ25lZC1vZmYtYnk6IE9sZWtzaWkgTW9pc2llaWV2IDxv
bGVrc2lpX21vaXNpZWlldkBlcGFtLmNvbT4NCj4+IFNpZ25lZC1vZmYtYnk6IEdyeWdvcmlpIFN0
cmFzaGtvIDxncnlnb3JpaV9zdHJhc2hrb0BlcGFtLmNvbT4NCj4gVGhlIHBhdGNoIG5lZWRzIHJl
YmFzaW5nDQo+DQo+DQo+PiAtLS0NCj4+DQo+PiBDaGFuZ2VzIGluIHY1Og0KPj4gLSB1cGRhdGUg
TWFpbnRhaW5lcnMgZmlsZS4gU2V0IHJvbGUgYXMgYSBSZXZpZXdlcg0KPj4gLSByZWJhc2VkIG9u
IHRoZSBsYXRlc3QgbWFzdGVyIGJyYW5jaA0KPj4gLSBJbnRyb2R1Y2UgYXJjaF9oYW5kbGVfcGFz
c3Rocm91Z2hfcHJvcCBjYWxsIHRvIGhhbmRsZSBhcm0gc3BlY2lmaWMgbm9kZXMNCj4+DQo+PiBD
aGFuZ2VzIGluIHY0Og0KPj4gLSBmaXggU1BEWC1MaWNlbnNlDQo+PiAtIHJlbmFtZSBERVZJQ0Vf
QVJNX1NDSSBEVCBkZXZpY2UgY2xhc3MgdG8gRklSTVdBUkVfREVWSUNFDQo+PiAtIG1vdmUgWEVO
X0RPTUNUTF9hc3NpZ25fZGV2aWNlIGNvZGUgaW4gc2VwYXJhdGUgcGF0Y2gNCj4+IC0gQWRkIGRv
Y3VtZW50YXRpb24gZm9yIFNDSSBTQ01JIGRyaXZlcnMNCj4+DQo+PiAgIE1BSU5UQUlORVJTICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKw0KPj4gICB4ZW4vYXJjaC9hcm0vZGV2
aWNlLmMgICAgICAgICAgICAgICAgICAgIHwgICA1ICsNCj4+ICAgeGVuL2FyY2gvYXJtL2RvbTBs
ZXNzLWJ1aWxkLmMgICAgICAgICAgICB8ICAgOCArDQo+PiAgIHhlbi9hcmNoL2FybS9kb21haW4u
YyAgICAgICAgICAgICAgICAgICAgfCAgMTIgKy0NCj4+ICAgeGVuL2FyY2gvYXJtL2RvbWFpbl9i
dWlsZC5jICAgICAgICAgICAgICB8ICAgOCArDQo+PiAgIHhlbi9hcmNoL2FybS9maXJtd2FyZS9L
Y29uZmlnICAgICAgICAgICAgfCAgIDggKw0KPj4gICB4ZW4vYXJjaC9hcm0vZmlybXdhcmUvTWFr
ZWZpbGUgICAgICAgICAgIHwgICAxICsNCj4+ICAgeGVuL2FyY2gvYXJtL2Zpcm13YXJlL3NjaS5j
ICAgICAgICAgICAgICB8IDE1NCArKysrKysrKysrKysrKysrKw0KPj4gICB4ZW4vYXJjaC9hcm0v
aW5jbHVkZS9hc20vZG9tYWluLmggICAgICAgIHwgICA1ICsNCj4+ICAgeGVuL2FyY2gvYXJtL2lu
Y2x1ZGUvYXNtL2Zpcm13YXJlL3NjaS5oICB8IDIwMCArKysrKysrKysrKysrKysrKysrKysrKw0K
Pj4gICB4ZW4vYXJjaC9hcm0vdnNtYy5jICAgICAgICAgICAgICAgICAgICAgIHwgICAzICsNCj4+
ICAgeGVuL2NvbW1vbi9kZXZpY2UtdHJlZS9kb20wbGVzcy1idWlsZC5jICB8ICAgNCArDQo+PiAg
IHhlbi9pbmNsdWRlL2FzbS1nZW5lcmljL2RldmljZS5oICAgICAgICAgfCAgIDEgKw0KPj4gICB4
ZW4vaW5jbHVkZS9hc20tZ2VuZXJpYy9kb20wbGVzcy1idWlsZC5oIHwgICA5ICsNCj4+ICAgeGVu
L2luY2x1ZGUvcHVibGljL2FyY2gtYXJtLmggICAgICAgICAgICB8ICAgNCArDQo+PiAgIDE1IGZp
bGVzIGNoYW5nZWQsIDQyNyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pDQo+PiAgIGNyZWF0
ZSBtb2RlIDEwMDY0NCB4ZW4vYXJjaC9hcm0vZmlybXdhcmUvc2NpLmMNCj4+ICAgY3JlYXRlIG1v
ZGUgMTAwNjQ0IHhlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9maXJtd2FyZS9zY2kuaA0KPj4NCj4+
IGRpZmYgLS1naXQgYS9NQUlOVEFJTkVSUyBiL01BSU5UQUlORVJTDQo+PiBpbmRleCBjNDg4NmMx
MTU5Li4zMWRiYmE1NGJiIDEwMDY0NA0KPj4gLS0tIGEvTUFJTlRBSU5FUlMNCj4+ICsrKyBiL01B
SU5UQUlORVJTDQo+PiBAQCAtNTA5LDYgKzUwOSwxMiBAQCBSOglHZW9yZ2UgRHVubGFwIDxnd2RA
eGVucHJvamVjdC5vcmc+DQo+PiAgIFM6CVN1cHBvcnRlZA0KPj4gICBGOgl4ZW4vY29tbW9uL3Nj
aGVkLw0KPj4gICANCj4+ICtTQ0kgTUVESUFUT1JTDQo+PiArUjoJT2xla3NpaSBNb2lzaWVpZXYg
PG9sZWtzaWlfbW9pc2llaWV2QGVwYW0uY29tPg0KPj4gK1M6CVN1cHBvcnRlZA0KPj4gK0Y6CXhl
bi9hcmNoL2FybS9maXJtd2FyZS9zY2kuYw0KPj4gK0Y6CXhlbi9hcmNoL2FybS9pbmNsdWRlL2Fz
bS9maXJtd2FyZS9zY2kuaA0KPj4gKw0KPj4gICBTRUFCSU9TIFVQU1RSRUFNDQo+PiAgIE06CVdl
aSBMaXUgPHdsQHhlbi5vcmc+DQo+PiAgIFM6CVN1cHBvcnRlZA0KPj4gZGlmZiAtLWdpdCBhL3hl
bi9hcmNoL2FybS9kZXZpY2UuYyBiL3hlbi9hcmNoL2FybS9kZXZpY2UuYw0KPj4gaW5kZXggMTE1
MjM3NTBhZS4uNzRiNTRjYWQzNCAxMDA2NDQNCj4+IC0tLSBhL3hlbi9hcmNoL2FybS9kZXZpY2Uu
Yw0KPj4gKysrIGIveGVuL2FyY2gvYXJtL2RldmljZS5jDQo+PiBAQCAtMTMsNiArMTMsNyBAQA0K
Pj4gICAjaW5jbHVkZSA8eGVuL2lvY2FwLmg+DQo+PiAgICNpbmNsdWRlIDx4ZW4vbGliLmg+DQo+
PiAgIA0KPj4gKyNpbmNsdWRlIDxhc20vZmlybXdhcmUvc2NpLmg+DQo+PiAgICNpbmNsdWRlIDxh
c20vc2V0dXAuaD4NCj4+ICAgDQo+PiAgIGludCBtYXBfaXJxX3RvX2RvbWFpbihzdHJ1Y3QgZG9t
YWluICpkLCB1bnNpZ25lZCBpbnQgaXJxLA0KPj4gQEAgLTMwMyw2ICszMDQsMTAgQEAgaW50IGhh
bmRsZV9kZXZpY2Uoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGR0X2RldmljZV9ub2RlICpkZXYs
IHAybV90eXBlX3QgcDJtdCwNCj4+ICAgICAgICAgICAgICAgICAgIHJldHVybiByZXM7DQo+PiAg
ICAgICAgICAgICAgIH0NCj4+ICAgICAgICAgICB9DQo+PiArDQo+PiArICAgICAgICByZXMgPSBz
Y2lfYXNzaWduX2R0X2RldmljZShkLCBkZXYpOw0KPj4gKyAgICAgICAgaWYgKCByZXMgKQ0KPj4g
KyAgICAgICAgICAgIHJldHVybiByZXM7DQo+PiAgICAgICB9DQo+PiAgIA0KPj4gICAgICAgcmVz
ID0gbWFwX2RldmljZV9pcnFzX3RvX2RvbWFpbihkLCBkZXYsIG93bl9kZXZpY2UsIGlycV9yYW5n
ZXMpOw0KPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9kb20wbGVzcy1idWlsZC5jIGIveGVu
L2FyY2gvYXJtL2RvbTBsZXNzLWJ1aWxkLmMNCj4+IGluZGV4IDRiMjg1Y2ZmNWUuLjJhMGJmODE3
YmEgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vYXJjaC9hcm0vZG9tMGxlc3MtYnVpbGQuYw0KPj4gKysr
IGIveGVuL2FyY2gvYXJtL2RvbTBsZXNzLWJ1aWxkLmMNCj4+IEBAIC0yMiw2ICsyMiw3IEBADQo+
PiAgICNpbmNsdWRlIDxhc20vYXJtNjQvc3ZlLmg+DQo+PiAgICNpbmNsdWRlIDxhc20vZG9tMGxl
c3MtYnVpbGQuaD4NCj4+ICAgI2luY2x1ZGUgPGFzbS9kb21haW5fYnVpbGQuaD4NCj4+ICsjaW5j
bHVkZSA8YXNtL2Zpcm13YXJlL3NjaS5oPg0KPj4gICAjaW5jbHVkZSA8YXNtL2dyYW50X3RhYmxl
Lmg+DQo+PiAgICNpbmNsdWRlIDxhc20vc2V0dXAuaD4NCj4+ICAgDQo+PiBAQCAtMjcyLDYgKzI3
MywxMiBAQCBpbnQgX19pbml0IGluaXRfdnVhcnQoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGtl
cm5lbF9pbmZvICpraW5mbywNCj4+ICAgICAgIHJldHVybiByYzsNCj4+ICAgfQ0KPj4gICANCj4+
ICtpbnQgX19pbml0IGFyY2hfaGFuZGxlX3Bhc3N0aHJvdWdoX3Byb3Aoc3RydWN0IGtlcm5lbF9p
bmZvICpraW5mbywNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c3RydWN0IGR0X2RldmljZV9ub2RlICpub2RlKQ0KPj4gK3sNCj4+ICsgICAgcmV0dXJuIHNjaV9h
c3NpZ25fZHRfZGV2aWNlKGtpbmZvLT5kLCBub2RlKTsNCj4+ICt9DQo+PiArDQo+PiAgIHZvaWQg
X19pbml0IGFyY2hfY3JlYXRlX2RvbVVzKHN0cnVjdCBkdF9kZXZpY2Vfbm9kZSAqbm9kZSwNCj4+
ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9jcmVhdGVkb21haW4g
KmRfY2ZnLA0KPj4gICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBmbGFncykN
Cj4+IEBAIC0yODAsNiArMjg3LDcgQEAgdm9pZCBfX2luaXQgYXJjaF9jcmVhdGVfZG9tVXMoc3Ry
dWN0IGR0X2RldmljZV9ub2RlICpub2RlLA0KPj4gICANCj4+ICAgICAgIGRfY2ZnLT5hcmNoLmdp
Y192ZXJzaW9uID0gWEVOX0RPTUNUTF9DT05GSUdfR0lDX05BVElWRTsNCj4+ICAgICAgIGRfY2Zn
LT5mbGFncyB8PSBYRU5fRE9NQ1RMX0NERl9odm0gfCBYRU5fRE9NQ1RMX0NERl9oYXA7DQo+PiAr
ICAgIGRfY2ZnLT5hcmNoLmFybV9zY2lfdHlwZSA9IFhFTl9ET01DVExfQ09ORklHX0FSTV9TQ0lf
Tk9ORTsNCj4+ICAgDQo+PiAgICAgICBpZiAoICFkdF9wcm9wZXJ0eV9yZWFkX3UzMihub2RlLCAi
bnJfc3BpcyIsICZkX2NmZy0+YXJjaC5ucl9zcGlzKSApDQo+PiAgICAgICB7DQo+PiBkaWZmIC0t
Z2l0IGEveGVuL2FyY2gvYXJtL2RvbWFpbi5jIGIveGVuL2FyY2gvYXJtL2RvbWFpbi5jDQo+PiBp
bmRleCA3OWExNDRlNjFiLi5kMDE0NmRhNWRhIDEwMDY0NA0KPj4gLS0tIGEveGVuL2FyY2gvYXJt
L2RvbWFpbi5jDQo+PiArKysgYi94ZW4vYXJjaC9hcm0vZG9tYWluLmMNCj4+IEBAIC0yNCw2ICsy
NCw3IEBADQo+PiAgICNpbmNsdWRlIDxhc20vcGxhdGZvcm0uaD4NCj4+ICAgI2luY2x1ZGUgPGFz
bS9wcm9jaW5mby5oPg0KPj4gICAjaW5jbHVkZSA8YXNtL3JlZ3MuaD4NCj4+ICsjaW5jbHVkZSA8
YXNtL2Zpcm13YXJlL3NjaS5oPg0KPj4gICAjaW5jbHVkZSA8YXNtL3RlZS90ZWUuaD4NCj4+ICAg
I2luY2x1ZGUgPGFzbS92ZnAuaD4NCj4+ICAgI2luY2x1ZGUgPGFzbS92Z2ljLmg+DQo+PiBAQCAt
Njk5LDcgKzcwMCw3IEBAIGludCBhcmNoX3Nhbml0aXNlX2RvbWFpbl9jb25maWcoc3RydWN0IHhl
bl9kb21jdGxfY3JlYXRlZG9tYWluICpjb25maWcpDQo+PiAgICAgICAgICAgcmV0dXJuIC1FSU5W
QUw7DQo+PiAgICAgICB9DQo+PiAgIA0KPj4gLSAgICByZXR1cm4gMDsNCj4+ICsgICAgcmV0dXJu
IHNjaV9kb21haW5fc2FuaXRpc2VfY29uZmlnKGNvbmZpZyk7DQo+PiAgIH0NCj4+ICAgDQo+PiAg
IGludCBhcmNoX2RvbWFpbl9jcmVhdGUoc3RydWN0IGRvbWFpbiAqZCwNCj4+IEBAIC03OTEsNiAr
NzkyLDkgQEAgaW50IGFyY2hfZG9tYWluX2NyZWF0ZShzdHJ1Y3QgZG9tYWluICpkLA0KPj4gICAg
ICAgZC0+YXJjaC5zdmVfdmwgPSBjb25maWctPmFyY2guc3ZlX3ZsOw0KPj4gICAjZW5kaWYNCj4+
ICAgDQo+PiArICAgIGlmICggKHJjID0gc2NpX2RvbWFpbl9pbml0KGQsIGNvbmZpZykpICE9IDAg
KQ0KPj4gKyAgICAgICAgZ290byBmYWlsOw0KPj4gKw0KPj4gICAgICAgcmV0dXJuIDA7DQo+PiAg
IA0KPj4gICBmYWlsOg0KPj4gQEAgLTg1MSw2ICs4NTUsNyBAQCB2b2lkIGFyY2hfZG9tYWluX2Rl
c3Ryb3koc3RydWN0IGRvbWFpbiAqZCkNCj4+ICAgICAgIGRvbWFpbl92Z2ljX2ZyZWUoZCk7DQo+
PiAgICAgICBkb21haW5fdnVhcnRfZnJlZShkKTsNCj4+ICAgICAgIGZyZWVfeGVuaGVhcF9wYWdl
KGQtPnNoYXJlZF9pbmZvKTsNCj4+ICsgICAgc2NpX2RvbWFpbl9kZXN0cm95KGQpOw0KPj4gICAj
aWZkZWYgQ09ORklHX0FDUEkNCj4+ICAgICAgIGZyZWVfeGVuaGVhcF9wYWdlcyhkLT5hcmNoLmVm
aV9hY3BpX3RhYmxlLA0KPj4gICAgICAgICAgICAgICAgICAgICAgICAgIGdldF9vcmRlcl9mcm9t
X2J5dGVzKGQtPmFyY2guZWZpX2FjcGlfbGVuKSk7DQo+PiBAQCAtMTA0NCw2ICsxMDQ5LDcgQEAg
ZW51bSB7DQo+PiAgICAgICBQUk9HX3AybV9yb290LA0KPj4gICAgICAgUFJPR19wMm0sDQo+PiAg
ICAgICBQUk9HX3AybV9wb29sLA0KPj4gKyAgICBQUk9HX3NjaSwNCj4+ICAgICAgIFBST0dfZG9u
ZSwNCj4+ICAgfTsNCj4+ICAgDQo+PiBAQCAtMTEwMyw2ICsxMTA5LDEwIEBAIGludCBkb21haW5f
cmVsaW5xdWlzaF9yZXNvdXJjZXMoc3RydWN0IGRvbWFpbiAqZCkNCj4+ICAgICAgICAgICByZXQg
PSByZWxpbnF1aXNoX3AybV9tYXBwaW5nKGQpOw0KPj4gICAgICAgICAgIGlmICggcmV0ICkNCj4+
ICAgICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4+ICsgICAgUFJPR1JFU1Moc2NpKToNCj4+ICsg
ICAgICAgIHJldCA9IHNjaV9yZWxpbnF1aXNoX3Jlc291cmNlcyhkKTsNCj4+ICsgICAgICAgIGlm
ICggcmV0ICkNCj4+ICsgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPj4gICANCj4+ICAgICAgIFBS
T0dSRVNTKHAybV9yb290KToNCj4+ICAgICAgICAgICAvKg0KPj4gZGlmZiAtLWdpdCBhL3hlbi9h
cmNoL2FybS9kb21haW5fYnVpbGQuYyBiL3hlbi9hcmNoL2FybS9kb21haW5fYnVpbGQuYw0KPj4g
aW5kZXggZWQ2NjhiZDYxYy4uOTIwMzljZjIxMyAxMDA2NDQNCj4+IC0tLSBhL3hlbi9hcmNoL2Fy
bS9kb21haW5fYnVpbGQuYw0KPj4gKysrIGIveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jDQo+
PiBAQCAtMjYsNiArMjYsNyBAQA0KPj4gICAjaW5jbHVkZSA8YXNtL3NldHVwLmg+DQo+PiAgICNp
bmNsdWRlIDxhc20vdGVlL3RlZS5oPg0KPj4gICAjaW5jbHVkZSA8YXNtL3BjaS5oPg0KPj4gKyNp
bmNsdWRlIDxhc20vZmlybXdhcmUvc2NpLmg+DQo+PiAgICNpbmNsdWRlIDxhc20vcGxhdGZvcm0u
aD4NCj4+ICAgI2luY2x1ZGUgPGFzbS9wc2NpLmg+DQo+PiAgICNpbmNsdWRlIDxhc20vc2V0dXAu
aD4NCj4+IEBAIC0xNjM5LDYgKzE2NDAsOSBAQCBzdGF0aWMgaW50IF9faW5pdCBoYW5kbGVfbm9k
ZShzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3Qga2VybmVsX2luZm8gKmtpbmZvLA0KPj4gICAgICAg
ICAgIHJldHVybiAwOw0KPj4gICAgICAgfQ0KPj4gICANCj4+ICsgICAgaWYgKCBzY2lfZHRfaGFu
ZGxlX25vZGUoZCwgbm9kZSkgKQ0KPj4gKyAgICAgICAgcmV0dXJuIDA7DQo+PiArDQo+PiAgICAg
ICAvKg0KPj4gICAgICAgICogVGhlIHZHSUMgZG9lcyBub3Qgc3VwcG9ydCByb3V0aW5nIGhhcmR3
YXJlIFBQSXMgdG8gZ3Vlc3QuIFNvDQo+PiAgICAgICAgKiB3ZSBuZWVkIHRvIHNraXAgYW55IG5v
ZGUgdXNpbmcgUFBJcy4NCj4+IEBAIC0xNzM5LDYgKzE3NDMsMTAgQEAgc3RhdGljIGludCBfX2lu
aXQgaGFuZGxlX25vZGUoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGtlcm5lbF9pbmZvICpraW5m
bywNCj4+ICAgICAgICAgICBpZiAoIHJlcyApDQo+PiAgICAgICAgICAgICAgIHJldHVybiByZXM7
DQo+PiAgIA0KPj4gKyAgICAgICAgcmVzID0gc2NpX2R0X2ZpbmFsaXplKGQsIGtpbmZvLT5mZHQp
Ow0KPj4gKyAgICAgICAgaWYgKCByZXMgKQ0KPj4gKyAgICAgICAgICAgIHJldHVybiByZXM7DQo+
PiArDQo+PiAgICAgICAgICAgLyoNCj4+ICAgICAgICAgICAgKiBDcmVhdGUgYSBzZWNvbmQgbWVt
b3J5IG5vZGUgdG8gc3RvcmUgdGhlIHJhbmdlcyBjb3ZlcmluZw0KPj4gICAgICAgICAgICAqIHJl
c2VydmVkLW1lbW9yeSByZWdpb25zLg0KPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9maXJt
d2FyZS9LY29uZmlnIGIveGVuL2FyY2gvYXJtL2Zpcm13YXJlL0tjb25maWcNCj4+IGluZGV4IDgx
N2RhNzQ1ZmQuLmZjNzkxOGM3ZmMgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vYXJjaC9hcm0vZmlybXdh
cmUvS2NvbmZpZw0KPj4gKysrIGIveGVuL2FyY2gvYXJtL2Zpcm13YXJlL0tjb25maWcNCj4+IEBA
IC0xLDMgKzEsMTEgQEANCj4+ICtjb25maWcgQVJNX1NDSQ0KPj4gKwlib29sDQo+PiArCWRlcGVu
ZHMgb24gQVJNDQo+PiArCWhlbHANCj4+ICsJICBUaGlzIG9wdGlvbiBlbmFibGVzIGdlbmVyaWMg
QXJtIFNDSSAoU3lzdGVtIENvbnRyb2wgSW50ZXJmYWNlKSBtZWRpYXRvcnMNCj4+ICsJICBzdXBw
b3J0LiBJdCBhbGxvd3MgZG9tYWlucyB0byBjb250cm9sIHN5c3RlbSByZXNvdXJjZXMgdmlhIG9u
ZSBvZg0KPj4gKwkgIEFybSBTQ0kgbWVkaWF0b3JzIGRyaXZlcnMgaW1wbGVtZW50ZWQgaW4gWEVO
LCBsaWtlIFNDTUkuDQo+PiArDQo+PiAgIG1lbnUgIkZpcm13YXJlIERyaXZlcnMiDQo+PiAgIA0K
Pj4gICBjb25maWcgU0NNSV9TTUMNCj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZmlybXdh
cmUvTWFrZWZpbGUgYi94ZW4vYXJjaC9hcm0vZmlybXdhcmUvTWFrZWZpbGUNCj4+IGluZGV4IGE1
ZTQ1NDI2NjYuLjcxYmRlZmMyNGEgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vYXJjaC9hcm0vZmlybXdh
cmUvTWFrZWZpbGUNCj4+ICsrKyBiL3hlbi9hcmNoL2FybS9maXJtd2FyZS9NYWtlZmlsZQ0KPj4g
QEAgLTEgKzEsMiBAQA0KPj4gK29iai0kKENPTkZJR19BUk1fU0NJKSArPSBzY2kubw0KPj4gICBv
YmotJChDT05GSUdfU0NNSV9TTUMpICs9IHNjbWktc21jLm8NCj4+IGRpZmYgLS1naXQgYS94ZW4v
YXJjaC9hcm0vZmlybXdhcmUvc2NpLmMgYi94ZW4vYXJjaC9hcm0vZmlybXdhcmUvc2NpLmMNCj4+
IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+PiBpbmRleCAwMDAwMDAwMDAwLi5lMTUyMmUxMGUyDQo+
PiAtLS0gL2Rldi9udWxsDQo+PiArKysgYi94ZW4vYXJjaC9hcm0vZmlybXdhcmUvc2NpLmMNCj4+
IEBAIC0wLDAgKzEsMTU0IEBADQo+PiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0y
LjAtb25seSAqLw0KPj4gKy8qDQo+PiArICogR2VuZXJpYyBwYXJ0IG9mIHRoZSBTQ0kgKFN5c3Rl
bSBDb250cm9sIEludGVyZmFjZSkgc3Vic3lzdGVtLg0KPj4gKyAqDQo+PiArICogT2xla3NpaSBN
b2lzaWVpZXYgPG9sZWtzaWlfbW9pc2llaWV2QGVwYW0uY29tPg0KPj4gKyAqIENvcHlyaWdodCAo
YykgMjAyNSBFUEFNIFN5c3RlbXMNCj4+ICsgKi8NCj4+ICsNCj4+ICsjaW5jbHVkZSA8eGVuL2Fj
cGkuaD4NCj4+ICsjaW5jbHVkZSA8eGVuL2Vycm5vLmg+DQo+PiArI2luY2x1ZGUgPHhlbi9pbml0
Lmg+DQo+PiArI2luY2x1ZGUgPHhlbi9zY2hlZC5oPg0KPj4gKyNpbmNsdWRlIDx4ZW4vdHlwZXMu
aD4NCj4+ICsNCj4+ICsjaW5jbHVkZSA8YXNtL2Zpcm13YXJlL3NjaS5oPg0KPj4gKw0KPj4gK3N0
YXRpYyBjb25zdCBzdHJ1Y3Qgc2NpX21lZGlhdG9yX29wcyBfX3JlYWRfbW9zdGx5ICpjdXJfbWVk
aWF0b3I7DQo+PiArDQo+PiAraW50IHNjaV9yZWdpc3Rlcihjb25zdCBzdHJ1Y3Qgc2NpX21lZGlh
dG9yX29wcyAqb3BzKQ0KPj4gK3sNCj4+ICsgICAgaWYgKCBjdXJfbWVkaWF0b3IgKQ0KPj4gKyAg
ICAgICAgcmV0dXJuIC1FRVhJU1Q7DQo+PiArDQo+PiArICAgIGlmICggIW9wcy0+ZG9tYWluX2lu
aXQgfHwgIW9wcy0+ZG9tYWluX2Rlc3Ryb3kgfHwgIW9wcy0+aGFuZGxlX2NhbGwgKQ0KPj4gKyAg
ICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+PiArDQo+PiArICAgIGN1cl9tZWRpYXRvciA9IG9wczsN
Cj4+ICsNCj4+ICsgICAgcmV0dXJuIDA7DQo+PiArfTsNCj4+ICsNCj4+ICtib29sIHNjaV9oYW5k
bGVfY2FsbChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqYXJncykNCj4+ICt7DQo+PiArICAgIGlmICgg
dW5saWtlbHkoIWN1cl9tZWRpYXRvcikgKQ0KPj4gKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KPiBz
aG91bGQgd2UgY2hlY2sgdGhhdCBzY2lfZG9tYWluX2lzX2VuYWJsZWQgPw0KPg0KSSB0aGluayB0
aGVyZSBpcyBubyBuZWVkIHRvIGRvIHRoaXMgY2hlY2sgaGVyZSBhbmQgZ2l2ZSBhYmlsaXR5IHRv
IA0KZHJpdmVyIGl0c2VsZiB0byBkZWNpZGUgd2hhdCBhY3Rpb25zIHNob3VsZCBiZSBkb25lLiBG
b3IgZXhhbXBsZSANCmRvbWFpbl9pbml0IGNhbGwgZm9yIFNDTUktU01DIHNpbmdsZSBkb21haW4g
d2lsbCByZW1vdmUgL2Zpcm13YXJlL3NjbWkgDQpub2RlIGZyb20gRG9tMCBkZXZpY2UgdHJlZSB3
aGVuICJzY21pLXNtYy1wYXNzdGhyb3VnaCIgd2FzIHByb3ZpZGVkLg0KPj4gKyAgICByZXR1cm4g
Y3VyX21lZGlhdG9yLT5oYW5kbGVfY2FsbChhcmdzKTsNCj4+ICt9DQo+PiArDQo+PiAraW50IHNj
aV9kb21haW5faW5pdChzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgeGVuX2RvbWN0bF9jcmVhdGVk
b21haW4gKmNvbmZpZykNCj4+ICt7DQo+PiArICAgIGlmICggIWN1cl9tZWRpYXRvciApDQo+PiAr
ICAgICAgICByZXR1cm4gMDsNCj4+ICsNCj4+ICsgICAgcmV0dXJuIGN1cl9tZWRpYXRvci0+ZG9t
YWluX2luaXQoZCwgY29uZmlnKTsNCj4+ICt9DQo+PiArDQo+PiAraW50IHNjaV9kb21haW5fc2Fu
aXRpc2VfY29uZmlnKHN0cnVjdCB4ZW5fZG9tY3RsX2NyZWF0ZWRvbWFpbiAqY29uZmlnKQ0KPj4g
K3sNCj4+ICsgICAgaWYgKCAhY3VyX21lZGlhdG9yICkNCj4+ICsgICAgICAgIHJldHVybiAwOw0K
Pj4gKw0KPj4gKyAgICBpZiAoICFjdXJfbWVkaWF0b3ItPmRvbWFpbl9zYW5pdGlzZV9jb25maWcg
KQ0KPj4gKyAgICAgICAgcmV0dXJuIDA7DQo+PiArDQo+PiArICAgIHJldHVybiBjdXJfbWVkaWF0
b3ItPmRvbWFpbl9zYW5pdGlzZV9jb25maWcoY29uZmlnKTsNCj4+ICt9DQo+PiArDQo+PiArdm9p
ZCBzY2lfZG9tYWluX2Rlc3Ryb3koc3RydWN0IGRvbWFpbiAqZCkNCj4+ICt7DQo+PiArICAgIGlm
ICggIWN1cl9tZWRpYXRvciApDQo+PiArICAgICAgICByZXR1cm47DQo+PiArDQo+PiArICAgIGN1
cl9tZWRpYXRvci0+ZG9tYWluX2Rlc3Ryb3koZCk7DQo+PiArfQ0KPj4gKw0KPj4gK2ludCBzY2lf
cmVsaW5xdWlzaF9yZXNvdXJjZXMoc3RydWN0IGRvbWFpbiAqZCkNCj4+ICt7DQo+PiArICAgIGlm
ICggIWN1cl9tZWRpYXRvciApDQo+PiArICAgICAgICByZXR1cm4gMDsNCj4+ICsNCj4+ICsgICAg
aWYgKCAhY3VyX21lZGlhdG9yLT5yZWxpbnF1aXNoX3Jlc291cmNlcyApDQo+PiArICAgICAgICBy
ZXR1cm4gMDsNCj4+ICsNCj4+ICsgICAgcmV0dXJuIGN1cl9tZWRpYXRvci0+cmVsaW5xdWlzaF9y
ZXNvdXJjZXMoZCk7DQo+PiArfQ0KPj4gKw0KPj4gK2Jvb2wgc2NpX2R0X2hhbmRsZV9ub2RlKHN0
cnVjdCBkb21haW4gKmQsIHN0cnVjdCBkdF9kZXZpY2Vfbm9kZSAqbm9kZSkNCj4+ICt7DQo+PiAr
ICAgIGlmICggIWN1cl9tZWRpYXRvciApDQo+PiArICAgICAgICByZXR1cm4gMDsNCj4+ICsNCj4+
ICsgICAgaWYgKCAhY3VyX21lZGlhdG9yLT5kb20wX2R0X2hhbmRsZV9ub2RlICkNCj4+ICsgICAg
ICAgIHJldHVybiAwOw0KPj4gKw0KPj4gKyAgICByZXR1cm4gY3VyX21lZGlhdG9yLT5kb20wX2R0
X2hhbmRsZV9ub2RlKGQsIG5vZGUpOw0KPj4gK30NCj4+ICsNCj4+ICtpbnQgc2NpX2R0X2ZpbmFs
aXplKHN0cnVjdCBkb21haW4gKmQsIHZvaWQgKmZkdCkNCj4+ICt7DQo+PiArICAgIGlmICggIWN1
cl9tZWRpYXRvciApDQo+PiArICAgICAgICByZXR1cm4gMDsNCj4+ICsNCj4+ICsgICAgaWYgKCAh
Y3VyX21lZGlhdG9yLT5kb20wX2R0X2ZpbmFsaXplICkNCj4+ICsgICAgICAgIHJldHVybiAwOw0K
Pj4gKw0KPj4gKyAgICByZXR1cm4gY3VyX21lZGlhdG9yLT5kb20wX2R0X2ZpbmFsaXplKGQsIGZk
dCk7DQo+PiArfQ0KPj4gKw0KPj4gK2ludCBzY2lfYXNzaWduX2R0X2RldmljZShzdHJ1Y3QgZG9t
YWluICpkLCBzdHJ1Y3QgZHRfZGV2aWNlX25vZGUgKmRldikNCj4+ICt7DQo+PiArICAgIHN0cnVj
dCBkdF9waGFuZGxlX2FyZ3MgYWNfc3BlYzsNCj4+ICsgICAgaW50IGluZGV4ID0gMDsNCj4+ICsg
ICAgaW50IHJldDsNCj4+ICsNCj4+ICsgICAgaWYgKCAhY3VyX21lZGlhdG9yICkNCj4+ICsgICAg
ICAgIHJldHVybiAwOw0KPj4gKw0KPj4gKyAgICBpZiAoICFjdXJfbWVkaWF0b3ItPmFzc2lnbl9k
dF9kZXZpY2UgKQ0KPj4gKyAgICAgICAgcmV0dXJuIDA7DQo+PiArDQo+PiArICAgIHdoaWxlICgg
IWR0X3BhcnNlX3BoYW5kbGVfd2l0aF9hcmdzKGRldiwgImFjY2Vzcy1jb250cm9sbGVycyIsDQo+
PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIjYWNjZXNzLWNvbnRy
b2xsZXItY2VsbHMiLCBpbmRleCwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJmFjX3NwZWMpICkNCj4+ICsgICAgew0KPj4gKyAgICAgICAgcHJpbnRrKFhFTkxP
R19ERUJVRyAic2NpOiBhc3NpZ24gZGV2aWNlICVzIHRvICVwZFxuIiwNCj4+ICsgICAgICAgICAg
ICAgICBkdF9ub2RlX2Z1bGxfbmFtZShkZXYpLCBkKTsNCj4+ICsNCj4+ICsgICAgICAgIHJldCA9
IGN1cl9tZWRpYXRvci0+YXNzaWduX2R0X2RldmljZShkLCAmYWNfc3BlYyk7DQo+PiArICAgICAg
ICBpZiAoIHJldCApDQo+PiArICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4+ICsNCj4+ICsgICAg
ICAgIGluZGV4Kys7DQo+PiArICAgIH0NCj4+ICsNCj4+ICsgICAgcmV0dXJuIDA7DQo+PiArfQ0K
Pj4gKw0KPj4gK3N0YXRpYyBpbnQgX19pbml0IHNjaV9pbml0KHZvaWQpDQo+PiArew0KPj4gKyAg
ICBzdHJ1Y3QgZHRfZGV2aWNlX25vZGUgKm5wOw0KPj4gKyAgICB1bnNpZ25lZCBpbnQgbnVtX3Nj
aSA9IDA7DQo+PiArICAgIGludCByYzsNCj4+ICsNCj4+ICsgICAgZHRfZm9yX2VhY2hfZGV2aWNl
X25vZGUoZHRfaG9zdCwgbnApDQo+PiArICAgIHsNCj4+ICsgICAgICAgIHJjID0gZGV2aWNlX2lu
aXQobnAsIERFVklDRV9GSVJNV0FSRSwgTlVMTCk7DQo+PiArICAgICAgICBpZiAoICFyYyAmJiBu
dW1fc2NpICkNCj4+ICsgICAgICAgIHsNCj4+ICsgICAgICAgICAgICBwcmludGsoWEVOTE9HX0VS
Ug0KPj4gKyAgICAgICAgICAgICAgICAgICAiU0NNSTogT25seSBvbmUgU0NJIGNvbnRyb2xsZXIg
aXMgc3VwcG9ydGVkLiBmb3VuZCBzZWNvbmQgJXNcbiIsDQo+PiArICAgICAgICAgICAgICAgICAg
IG5wLT5uYW1lKTsNCj4+ICsgICAgICAgICAgICByZXR1cm4gLUVPUE5PVFNVUFA7DQo+PiArICAg
ICAgICB9DQo+PiArICAgICAgICBlbHNlIGlmICggIXJjICkNCj4+ICsgICAgICAgICAgICBudW1f
c2NpKys7DQo+PiArICAgICAgICBlbHNlIGlmICggcmMgIT0gLUVCQURGICYmIHJjICE9IC1FTk9E
RVYgKQ0KPj4gKyAgICAgICAgICAgIHJldHVybiByYzsNCj4+ICsgICAgfQ0KPj4gKw0KPj4gKyAg
ICByZXR1cm4gMDsNCj4+ICt9DQo+PiArDQo+PiArX19pbml0Y2FsbChzY2lfaW5pdCk7DQo+PiBk
aWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2RvbWFpbi5oIGIveGVuL2FyY2gv
YXJtL2luY2x1ZGUvYXNtL2RvbWFpbi5oDQo+PiBpbmRleCBhMzQ4N2NhNzEzLi5hZjNlMTY4Mzc0
IDEwMDY0NA0KPj4gLS0tIGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2RvbWFpbi5oDQo+PiAr
KysgYi94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vZG9tYWluLmgNCj4+IEBAIC0xMjAsNiArMTIw
LDExIEBAIHN0cnVjdCBhcmNoX2RvbWFpbg0KPj4gICAjaWZkZWYgQ09ORklHX1RFRQ0KPj4gICAg
ICAgdm9pZCAqdGVlOw0KPj4gICAjZW5kaWYNCj4+ICsjaWZkZWYgQ09ORklHX0FSTV9TQ0kNCj4+
ICsgICAgYm9vbCBzY2lfZW5hYmxlZDsNCj4+ICsgICAgLyogQVJNIFNDSSBkcml2ZXIncyBzcGVj
aWZpYyBkYXRhICovDQo+PiArICAgIHZvaWQgKnNjaV9kYXRhOw0KPj4gKyNlbmRpZg0KPj4gICAN
Cj4+ICAgfSAgX19jYWNoZWxpbmVfYWxpZ25lZDsNCj4+ICAgDQo+PiBkaWZmIC0tZ2l0IGEveGVu
L2FyY2gvYXJtL2luY2x1ZGUvYXNtL2Zpcm13YXJlL3NjaS5oIGIveGVuL2FyY2gvYXJtL2luY2x1
ZGUvYXNtL2Zpcm13YXJlL3NjaS5oDQo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPj4gaW5kZXgg
MDAwMDAwMDAwMC4uNzFmYjU0ODUyZQ0KPj4gLS0tIC9kZXYvbnVsbA0KPj4gKysrIGIveGVuL2Fy
Y2gvYXJtL2luY2x1ZGUvYXNtL2Zpcm13YXJlL3NjaS5oDQo+PiBAQCAtMCwwICsxLDIwMCBAQA0K
Pj4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkgKi8NCj4+ICsvKg0K
Pj4gKyAqIEdlbmVyaWMgQVJNIFNDSSAoU3lzdGVtIENvbnRyb2wgSW50ZXJmYWNlKSBzdWJzeXN0
ZW0uDQo+PiArICoNCj4+ICsgKiBPbGVrc2lpIE1vaXNpZWlldiA8b2xla3NpaV9tb2lzaWVpZXZA
ZXBhbS5jb20+DQo+PiArICogQ29weXJpZ2h0IChjKSAyMDI1IEVQQU0gU3lzdGVtcw0KPj4gKyAq
Lw0KPj4gKw0KPj4gKyNpZm5kZWYgX19BU01fQVJNX1NDSV9IDQo+PiArI2RlZmluZSBfX0FTTV9B
Uk1fU0NJX0gNCj4+ICsNCj4+ICsjaW5jbHVkZSA8eGVuL2xpYi5oPg0KPj4gKyNpbmNsdWRlIDx4
ZW4vdHlwZXMuaD4NCj4+ICsjaW5jbHVkZSA8eGVuL2RldmljZV90cmVlLmg+DQo+PiArI2luY2x1
ZGUgPHhlbi9lcnJuby5oPg0KPj4gKyNpbmNsdWRlIDx4ZW4vc2NoZWQuaD4NCj4+ICsNCj4+ICsj
aWZkZWYgQ09ORklHX0FSTV9TQ0kNCj4+ICsNCj4+ICtzdHJ1Y3Qgc2NpX21lZGlhdG9yX29wcyB7
DQo+PiArICAgIC8qDQo+PiArICAgICAqIENhbGxlZCBkdXJpbmcgZG9tYWluIGNvbnN0cnVjdGlv
bi4gSWYgaXQgaXMgcmVxdWVzdGVkIHRvIGVuYWJsZQ0KPj4gKyAgICAgKiBTQ0kgc3VwcG9ydCwg
c28gU0NJIGRyaXZlciBjYW4gY3JlYXRlIG93biBzdHJ1Y3R1cmVzIGZvciB0aGUgbmV3IGRvbWFp
bg0KPj4gKyAgICAgKiBhbmQgaW5mb3JtIGZpcm13YXJlIGFib3V0IG5ldyBkb21haW4gKGlmIHJl
cXVpcmVkKS4NCj4+ICsgICAgICogTWFuZGF0b3J5Lg0KPj4gKyAgICAgKi8NCj4+ICsgICAgaW50
ICgqZG9tYWluX2luaXQpKHN0cnVjdCBkb21haW4gKmQsDQo+PiArICAgICAgICAgICAgICAgICAg
ICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9jcmVhdGVkb21haW4gKmNvbmZpZyk7DQo+PiArDQo+PiAr
ICAgIC8qDQo+PiArICAgICAqIENhbGxlZCBkdXJpbmcgZG9tYWluIGNvbnN0cnVjdGlvbi4gVGhl
IFNDSSBkcml2ZXIgdXNlcw0KPj4gKyAgICAgKiBpdCB0byBzYW5pdGl6ZSBkb21haW4gU0NJIGNv
bmZpZ3VyYXRpb24gcGFyYW1ldGVycy4NCj4+ICsgICAgICogT3B0aW9uYWwuDQo+PiArICAgICAq
Lw0KPj4gKyAgICBpbnQgKCpkb21haW5fc2FuaXRpc2VfY29uZmlnKShzdHJ1Y3QgeGVuX2RvbWN0
bF9jcmVhdGVkb21haW4gKmNvbmZpZyk7DQo+PiArDQo+PiArICAgIC8qDQo+PiArICAgICAqIENh
bGxlZCBkdXJpbmcgZG9tYWluIGRlc3RydWN0aW9uLCByZWxlYXNlcyBhbGwgcmVzb3VyY2VzLCB0
aGF0DQo+PiArICAgICAqIHdlcmUgYWxsb2NhdGVkIGZvciBkb21haW4uDQo+PiArICAgICAqIE1h
bmRhdG9yeS4NCj4+ICsgICAgICovDQo+PiArICAgIHZvaWQgKCpkb21haW5fZGVzdHJveSkoc3Ry
dWN0IGRvbWFpbiAqZCk7DQo+PiArDQo+PiArICAgIC8qDQo+PiArICAgICAqIENhbGxlZCBkdXJp
bmcgZG9tYWluIGRlc3RydWN0aW9uIHRvIHJlbGlucXVpc2ggcmVzb3VyY2VzIHVzZWQNCj4+ICsg
ICAgICogYnkgU0NJIGRyaXZlciBpdHNlbGYgYW5kIHJlcXVlc3QgcmVzb3VyY2VzIHJlbGVhc2lu
ZyBmcm9tIGZpcm13YXJlLg0KPj4gKyAgICAgKiBPcHRpb25hbC4NCj4+ICsgICAgICovDQo+PiAr
ICAgIGludCAoKnJlbGlucXVpc2hfcmVzb3VyY2VzKShzdHJ1Y3QgZG9tYWluICpkKTsNCj4+ICsN
Cj4+ICsgICAgLyogU01DL0hWQyBIYW5kbGUgY2FsbGJhY2sgKi8NCj4+ICsgICAgYm9vbCAoKmhh
bmRsZV9jYWxsKShzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncyk7DQo+PiArDQo+PiArICAgIC8q
DQo+PiArICAgICAqIERvbTAgRFQgbm9kZXMgaGFuZGxpbmcgY2FsbGJhY2sgc28gU0NJIGRyaXZl
ciBjYW4gZGV0ZWN0IERUIG5vZGVzIGl0DQo+PiArICAgICAqIG5lZWQgdG8gaGFuZGxlIGFuZCBk
ZWNpZGUgaWYgdGhvc2Ugbm9kZXMgbmVlZCB0byBiZSBwcm92aWRlZCB0byBEb20wLg0KPj4gKyAg
ICAgKiBPcHRpb25hbC4NCj4+ICsgICAgICovDQo+PiArICAgIGJvb2wgKCpkb20wX2R0X2hhbmRs
ZV9ub2RlKShzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgZHRfZGV2aWNlX25vZGUgKm5vZGUpOw0K
Pj4gKw0KPj4gKyAgICAvKg0KPj4gKyAgICAgKiBTQ0kgZHJpdmVyIGNhbGxiYWNrIGNhbGxlZCBh
dCB0aGUgZW5kIG9mIERvbTAgRFQgZ2VuZXJhdGlvbiwgc28NCj4+ICsgICAgICogaXQgY2FuIHBl
cmZvcm0gc3RlcHMgdG8gbW9kaWZ5IERUIHRvIGVuYWJsZS9kaXNhYmxlIFNDSQ0KPj4gKyAgICAg
KiBmdW5jdGlvbmFsaXR5IGZvciBEb20wLg0KPj4gKyAgICAgKi8NCj4+ICsgICAgaW50ICgqZG9t
MF9kdF9maW5hbGl6ZSkoc3RydWN0IGRvbWFpbiAqZCwgdm9pZCAqZmR0KTsNCj4+ICsNCj4+ICsg
ICAgLyoNCj4+ICsgICAgICogU0NJIGRyaXZlciBjYWxsYmFjayBjYWxsZWQgd2hlbiBEVCBkZXZp
Y2UgaXMgcGFzc2VkIHRocm91Z2ggdG8gZ3Vlc3QsDQo+PiArICAgICAqIHNvIFNDSSBkcml2ZXIg
Y2FuIGVuYWJsZSBkZXZpY2UgYWNjZXNzIHRvIHRoZSBkb21haW4gaWYgU0NJIEZXIHByb3ZpZGVz
DQo+PiArICAgICAqIERldmljZSBzcGVjaWZpYyBhY2Nlc3MgY29udHJvbCBmdW5jdGlvbmFsaXR5
Lg0KPj4gKyAgICAgKiBPcHRpb25hbC4NCj4+ICsgICAgICovDQo+PiArICAgIGludCAoKmFzc2ln
bl9kdF9kZXZpY2UpKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBkdF9waGFuZGxlX2FyZ3MgKmFj
X3NwZWMpOw0KPj4gK307DQo+PiArDQo+PiArDQo+PiArc3RhdGljIGlubGluZSBib29sIHNjaV9k
b21haW5faXNfZW5hYmxlZChzdHJ1Y3QgZG9tYWluICpkKQ0KPj4gK3sNCj4+ICsgICAgcmV0dXJu
IGQtPmFyY2guc2NpX2VuYWJsZWQ7DQo+PiArfQ0KPj4gKw0KPj4gKy8qDQo+PiArICogUmVnaXN0
ZXIgU0NJIHN1YnN5c3RlbSBvcHMuDQo+PiArICoNCj4+ICsgKiBSZWdpc3RlciBTQ0kgZHJpdmVy
cyBvcGVyYXRpb24gYW5kIHNvIGVuYWJsZSBTQ0kgZnVuY3Rpb25hbGl0eS4NCj4+ICsgKiBPbmx5
IG9uZSBTQ0kgZHJpdmVyIGlzIHN1cHBvcnRlZC4NCj4+ICsgKi8NCj4+ICtpbnQgc2NpX3JlZ2lz
dGVyKGNvbnN0IHN0cnVjdCBzY2lfbWVkaWF0b3Jfb3BzICpvcHMpOw0KPj4gKw0KPj4gKy8qDQo+
PiArICogSW5pdGlhbGl6ZSBTQ0kgZnVuY3Rpb25hbGl0eSBmb3IgZG9tYWluIGlmIGNvbmZpZ3Vy
ZWQuDQo+PiArICoNCj4+ICsgKiBJbml0aWFsaXphdGlvbiByb3V0aW5lIHRvIGVuYWJsZSBTQ0kg
ZnVuY3Rpb25hbGl0eSBmb3IgdGhlIGRvbWFpbi4NCj4+ICsgKiBUaGUgU0NJIGNvbmZpZ3VyYXRp
b24gZGF0YSBhbmQgZGVjaXNpb24gYWJvdXQgZW5hYmxpbmcgU0NJIGZ1bmN0aW9uYWxpdHkNCj4+
ICsgKiBmb3IgdGhlIGRvbWFpbiBpcyBTQ0kgZHJpdmVyIHNwZWNpZmljLg0KPj4gKyAqLw0KPj4g
K2ludCBzY2lfZG9tYWluX2luaXQoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IHhlbl9kb21jdGxf
Y3JlYXRlZG9tYWluICpjb25maWcpOw0KPj4gKw0KPj4gKy8qDQo+PiArICogU2FuaXRpc2UgZG9t
YWluIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycy4NCj4+ICsgKg0KPj4gKyAqLw0KPj4gK2ludCBz
Y2lfZG9tYWluX3Nhbml0aXNlX2NvbmZpZyhzdHJ1Y3QgeGVuX2RvbWN0bF9jcmVhdGVkb21haW4g
KmNvbmZpZyk7DQo+PiArDQo+PiArLyoNCj4+ICsgKiBEZXN0cm95IFNDSSBkb21haW4gaW5zdGFu
Y2UuDQo+PiArICovDQo+PiArdm9pZCBzY2lfZG9tYWluX2Rlc3Ryb3koc3RydWN0IGRvbWFpbiAq
ZCk7DQo+PiArDQo+PiArLyoNCj4+ICsgKiBGcmVlIHJlc291cmNlcyBhc3NpZ25lZCB0byB0aGUg
Y2VydGFpbiBkb21haW4uDQo+PiArICovDQo+PiAraW50IHNjaV9yZWxpbnF1aXNoX3Jlc291cmNl
cyhzdHJ1Y3QgZG9tYWluICpkKTsNCj4+ICsNCj4+ICsvKg0KPj4gKyAqIFNNQy9IVkMgSGFuZGxl
IGNhbGxiYWNrLg0KPj4gKyAqDQo+PiArICogU0NJIGRyaXZlciBhY3RzIGFzIFNNQy9IVkMgc2Vy
dmVyIGZvciB0aGUgcmVnaXN0ZXJlZCBkb21haW5zIGFuZA0KPj4gKyAqIGRvZXMgcmVkaXJlY3Rp
b24gb2YgdGhlIGRvbWFpbiBjYWxscyB0byB0aGUgU0NJIGZpcm13YXJlLA0KPj4gKyAqIHN1Y2gg
YXMgQVJNIFRGLUEgb3Igc2ltaWxhci4NCj4+ICsgKi8NCj4+ICtib29sIHNjaV9oYW5kbGVfY2Fs
bChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncyk7DQo+PiArDQo+PiArLyoNCj4+ICsgKiBEb20w
IERUIG5vZGVzIGhhbmRsaW5nIGZ1bmN0aW9uLg0KPj4gKyAqDQo+PiArICogQWxsb3dzIFNDSSBk
cml2ZXIgdG8gZGV0ZWN0IERUIG5vZGVzIGl0IG5lZWQgdG8gaGFuZGxlIGFuZCBkZWNpZGUgaWYN
Cj4+ICsgKiB0aG9zZSBub2RlcyBuZWVkIHRvIGJlIHByb3ZpZGVkIHRvIERvbTAuDQo+PiArICov
DQo+PiArYm9vbCBzY2lfZHRfaGFuZGxlX25vZGUoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGR0
X2RldmljZV9ub2RlICpub2RlKTsNCj4+ICsNCj4+ICsvKg0KPj4gKyAqIERvbTAgRFQgZ2VuZXJh
dGlvbiBmaW5hbGl6ZS4NCj4+ICsgKg0KPj4gKyAqIENhbGxlZCBhdCB0aGUgZW5kIG9mIERvbTAg
RFQgZ2VuZXJhdGlvbiwgc28gU0NJIGRyaXZlciBjYW4gcGVyZm9ybSBzdGVwcw0KPj4gKyAqIHRv
IG1vZGlmeSBEVCB0byBlbmFibGUvZGlzYWJsZSBTQ0kgZnVuY3Rpb25hbGl0eSBmb3IgRG9tMC4N
Cj4+ICsgKi8NCj4+ICtpbnQgc2NpX2R0X2ZpbmFsaXplKHN0cnVjdCBkb21haW4gKmQsIHZvaWQg
KmZkdCk7DQo+PiArDQo+PiArLyoNCj4+ICsgKiBBc3NpZ24gRFQgZGV2aWNlIHRvIGRvbWFpbi4N
Cj4+ICsgKg0KPj4gKyAqIENhbGxlZCB3aGVuIERUIGRldmljZSBpcyBwYXNzZWQgdGhyb3VnaCB0
byBndWVzdCwgc28gU0NJIGRyaXZlciBjYW4gZW5hYmxlDQo+PiArICogZGV2aWNlIGFjY2VzcyB0
byB0aGUgZG9tYWluIGlmIFNDSSBGVyBwcm92aWRlcyAiRGV2aWNlIHNwZWNpZmljIGFjY2Vzcw0K
Pj4gKyAqIGNvbnRyb2wiIGZ1bmN0aW9uYWxpdHkuDQo+PiArICovDQo+PiAraW50IHNjaV9hc3Np
Z25fZHRfZGV2aWNlKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBkdF9kZXZpY2Vfbm9kZSAqZGV2
KTsNCj4+ICsjZWxzZQ0KPj4gKw0KPj4gK3N0YXRpYyBpbmxpbmUgYm9vbCBzY2lfZG9tYWluX2lz
X2VuYWJsZWQoc3RydWN0IGRvbWFpbiAqZCkNCj4+ICt7DQo+PiArICAgIHJldHVybiBmYWxzZTsN
Cj4+ICt9DQo+PiArDQo+PiArc3RhdGljIGlubGluZSBpbnQgc2NpX2RvbWFpbl9pbml0KHN0cnVj
dCBkb21haW4gKmQsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVj
dCB4ZW5fZG9tY3RsX2NyZWF0ZWRvbWFpbiAqY29uZmlnKQ0KPj4gK3sNCj4+ICsgICAgcmV0dXJu
IDA7DQo+PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyBpbmxpbmUgaW50DQo+PiArc2NpX2RvbWFpbl9z
YW5pdGlzZV9jb25maWcoc3RydWN0IHhlbl9kb21jdGxfY3JlYXRlZG9tYWluICpjb25maWcpDQo+
PiArew0KPj4gKyAgICByZXR1cm4gMDsNCj4+ICt9DQo+PiArDQo+PiArc3RhdGljIGlubGluZSB2
b2lkIHNjaV9kb21haW5fZGVzdHJveShzdHJ1Y3QgZG9tYWluICpkKQ0KPj4gK3t9DQo+PiArDQo+
PiArc3RhdGljIGlubGluZSBpbnQgc2NpX3JlbGlucXVpc2hfcmVzb3VyY2VzKHN0cnVjdCBkb21h
aW4gKmQpDQo+PiArew0KPj4gKyAgICByZXR1cm4gMDsNCj4+ICt9DQo+PiArDQo+PiArc3RhdGlj
IGlubGluZSBib29sIHNjaV9oYW5kbGVfY2FsbChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqYXJncykN
Cj4+ICt7DQo+PiArICAgIHJldHVybiBmYWxzZTsNCj4+ICt9DQo+PiArDQo+PiArc3RhdGljIGlu
bGluZSBib29sIHNjaV9kdF9oYW5kbGVfbm9kZShzdHJ1Y3QgZG9tYWluICpkLA0KPj4gKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGR0X2RldmljZV9ub2RlICpu
b2RlKQ0KPj4gK3sNCj4+ICsgICAgcmV0dXJuIGZhbHNlOw0KPj4gK30NCj4+ICsNCj4+ICtzdGF0
aWMgaW5saW5lIGludCBzY2lfZHRfZmluYWxpemUoc3RydWN0IGRvbWFpbiAqZCwgdm9pZCAqZmR0
KQ0KPj4gK3sNCj4+ICsgICAgcmV0dXJuIGZhbHNlOw0KPiBzaG91bGQgcmV0dXJuIGludCwgbm90
IGJvb2wNCj4NCj4NCj4+ICt9DQo+PiArDQo+PiArc3RhdGljIGlubGluZSBpbnQgc2NpX2Fzc2ln
bl9kdF9kZXZpY2Uoc3RydWN0IGRvbWFpbiAqZCwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHRfZGV2aWNlX25vZGUgKmRldikNCj4+ICt7DQo+PiAr
ICAgIHJldHVybiAwOw0KPj4gK30NCj4+ICsNCj4+ICsjZW5kaWYgLyogQ09ORklHX0FSTV9TQ0kg
Ki8NCj4+ICsNCj4+ICsjZW5kaWYgLyogX19BU01fQVJNX1NDSV9IICovDQo+PiBkaWZmIC0tZ2l0
IGEveGVuL2FyY2gvYXJtL3ZzbWMuYyBiL3hlbi9hcmNoL2FybS92c21jLmMNCj4+IGluZGV4IDYw
ODFmMTRlZDAuLjI0Njk3MzhmY2MgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vYXJjaC9hcm0vdnNtYy5j
DQo+PiArKysgYi94ZW4vYXJjaC9hcm0vdnNtYy5jDQo+PiBAQCAtMTIsNiArMTIsNyBAQA0KPj4g
ICAjaW5jbHVkZSA8cHVibGljL2FyY2gtYXJtL3NtY2NjLmg+DQo+PiAgICNpbmNsdWRlIDxhc20v
Y3B1ZXJyYXRhLmg+DQo+PiAgICNpbmNsdWRlIDxhc20vY3B1ZmVhdHVyZS5oPg0KPj4gKyNpbmNs
dWRlIDxhc20vZmlybXdhcmUvc2NpLmg+DQo+PiAgICNpbmNsdWRlIDxhc20vbW9uaXRvci5oPg0K
Pj4gICAjaW5jbHVkZSA8YXNtL3JlZ3MuaD4NCj4+ICAgI2luY2x1ZGUgPGFzbS9zbWNjYy5oPg0K
Pj4gQEAgLTMwMCw2ICszMDEsOCBAQCBzdGF0aWMgYm9vbCB2c21jY2NfaGFuZGxlX2NhbGwoc3Ry
dWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpDQo+PiAgICAgICAgICAgICAgIGJyZWFrOw0KPj4gICAg
ICAgICAgIGNhc2UgQVJNX1NNQ0NDX09XTkVSX1NJUDoNCj4+ICAgICAgICAgICAgICAgaGFuZGxl
ZCA9IGhhbmRsZV9zaXAocmVncyk7DQo+PiArICAgICAgICAgICAgaWYgKCAhaGFuZGxlZCApDQo+
PiArICAgICAgICAgICAgICAgIGhhbmRsZWQgPSBzY2lfaGFuZGxlX2NhbGwocmVncyk7DQo+PiAg
ICAgICAgICAgICAgIGJyZWFrOw0KPj4gICAgICAgICAgIGNhc2UgQVJNX1NNQ0NDX09XTkVSX1RS
VVNURURfQVBQIC4uLiBBUk1fU01DQ0NfT1dORVJfVFJVU1RFRF9BUFBfRU5EOg0KPj4gICAgICAg
ICAgIGNhc2UgQVJNX1NNQ0NDX09XTkVSX1RSVVNURURfT1MgLi4uIEFSTV9TTUNDQ19PV05FUl9U
UlVTVEVEX09TX0VORDoNCj4+IGRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2RldmljZS10cmVlL2Rv
bTBsZXNzLWJ1aWxkLmMgYi94ZW4vY29tbW9uL2RldmljZS10cmVlL2RvbTBsZXNzLWJ1aWxkLmMN
Cj4+IGluZGV4IDAwMTIwNDY1NzQuLmYyOTY1NmEyN2UgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vY29t
bW9uL2RldmljZS10cmVlL2RvbTBsZXNzLWJ1aWxkLmMNCj4+ICsrKyBiL3hlbi9jb21tb24vZGV2
aWNlLXRyZWUvZG9tMGxlc3MtYnVpbGQuYw0KPj4gQEAgLTIyOCw2ICsyMjgsMTAgQEAgc3RhdGlj
IGludCBfX2luaXQgaGFuZGxlX3Bhc3N0aHJvdWdoX3Byb3Aoc3RydWN0IGtlcm5lbF9pbmZvICpr
aW5mbywNCj4+ICAgICAgIGlmICggcmVzIDwgMCApDQo+PiAgICAgICAgICAgcmV0dXJuIHJlczsN
Cj4+ICAgDQo+PiArICAgIHJlcyA9IGFyY2hfaGFuZGxlX3Bhc3N0aHJvdWdoX3Byb3Aoa2luZm8s
IG5vZGUpOw0KPj4gKyAgICBpZiAoIHJlcyApDQo+PiArICAgICAgICByZXR1cm4gcmVzOw0KPj4g
Kw0KPj4gICAgICAgLyogSWYgeGVuX2ZvcmNlLCB3ZSBhbGxvdyBhc3NpZ25tZW50IG9mIGRldmlj
ZXMgd2l0aG91dCBJT01NVSBwcm90ZWN0aW9uLiAqLw0KPj4gICAgICAgaWYgKCB4ZW5fZm9yY2Ug
JiYgIWR0X2RldmljZV9pc19wcm90ZWN0ZWQobm9kZSkgKQ0KPj4gICAgICAgICAgIHJldHVybiAw
Ow0KPj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS1nZW5lcmljL2RldmljZS5oIGIveGVu
L2luY2x1ZGUvYXNtLWdlbmVyaWMvZGV2aWNlLmgNCj4+IGluZGV4IDFhY2QxYmExZDguLmU5NmM1
NTU4YzIgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vaW5jbHVkZS9hc20tZ2VuZXJpYy9kZXZpY2UuaA0K
Pj4gKysrIGIveGVuL2luY2x1ZGUvYXNtLWdlbmVyaWMvZGV2aWNlLmgNCj4+IEBAIC0xOCw2ICsx
OCw3IEBAIGVudW0gZGV2aWNlX2NsYXNzDQo+PiAgICAgICBERVZJQ0VfSU9NTVUsDQo+PiAgICAg
ICBERVZJQ0VfSU5URVJSVVBUX0NPTlRST0xMRVIsDQo+PiAgICAgICBERVZJQ0VfUENJX0hPU1RC
UklER0UsDQo+PiArICAgIERFVklDRV9GSVJNV0FSRSwNCj4+ICAgICAgIC8qIFVzZSBmb3IgZXJy
b3IgKi8NCj4+ICAgICAgIERFVklDRV9VTktOT1dOLA0KPj4gICB9Ow0KPj4gZGlmZiAtLWdpdCBh
L3hlbi9pbmNsdWRlL2FzbS1nZW5lcmljL2RvbTBsZXNzLWJ1aWxkLmggYi94ZW4vaW5jbHVkZS9h
c20tZ2VuZXJpYy9kb20wbGVzcy1idWlsZC5oDQo+PiBpbmRleCBlMGFkMDQyOWVjLi4xYzU2NDQx
YzMzIDEwMDY0NA0KPj4gLS0tIGEveGVuL2luY2x1ZGUvYXNtLWdlbmVyaWMvZG9tMGxlc3MtYnVp
bGQuaA0KPj4gKysrIGIveGVuL2luY2x1ZGUvYXNtLWdlbmVyaWMvZG9tMGxlc3MtYnVpbGQuaA0K
Pj4gQEAgLTYxLDYgKzYxLDkgQEAgdm9pZCBzZXRfZG9tYWluX3R5cGUoc3RydWN0IGRvbWFpbiAq
ZCwgc3RydWN0IGtlcm5lbF9pbmZvICpraW5mbyk7DQo+PiAgIGludCBpbml0X2ludGNfcGhhbmRs
ZShzdHJ1Y3Qga2VybmVsX2luZm8gKmtpbmZvLCBjb25zdCBjaGFyICpuYW1lLA0KPj4gICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgaW50IG5vZGVfbmV4dCwgY29uc3Qgdm9pZCAqcGZkdCk7
DQo+PiAgIA0KPj4gK2ludCBhcmNoX2hhbmRsZV9wYXNzdGhyb3VnaF9wcm9wKHN0cnVjdCBrZXJu
ZWxfaW5mbyAqa2luZm8sDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry
dWN0IGR0X2RldmljZV9ub2RlICpub2RlKTsNCj4+ICsNCj4+ICAgI2Vsc2UgLyogIUNPTkZJR19E
T00wTEVTU19CT09UICovDQo+PiAgIA0KPj4gICBzdGF0aWMgaW5saW5lIHZvaWQgY3JlYXRlX2Rv
bVVzKHZvaWQpIHt9DQo+PiBAQCAtNzAsNiArNzMsMTIgQEAgc3RhdGljIGlubGluZSBib29sIGlz
X2RvbTBsZXNzX21vZGUodm9pZCkNCj4+ICAgfQ0KPj4gICBzdGF0aWMgaW5saW5lIHZvaWQgc2V0
X3hzX2RvbWFpbihzdHJ1Y3QgZG9tYWluICpkKSB7fQ0KPj4gICANCj4+ICtzdGF0aWMgaW5saW5l
IGludCBhcmNoX2hhbmRsZV9wYXNzdGhyb3VnaF9wcm9wKHN0cnVjdCBrZXJuZWxfaW5mbyAqa2lu
Zm8sDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
dHJ1Y3QgZHRfZGV2aWNlX25vZGUgKm5vZGUpDQo+PiArew0KPj4gKyAgICByZXR1cm4gMDsNCj4+
ICt9DQo+PiArDQo+PiAgICNlbmRpZiAvKiBDT05GSUdfRE9NMExFU1NfQk9PVCAqLw0KPj4gICAN
Cj4+ICAgI2VuZGlmIC8qIF9fQVNNX0dFTkVSSUNfRE9NMExFU1NfQlVJTERfSF9fICovDQo+PiBk
aWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL2FyY2gtYXJtLmggYi94ZW4vaW5jbHVkZS9w
dWJsaWMvYXJjaC1hcm0uaA0KPj4gaW5kZXggMjQ4NDBlZWFhNi4uNTVlZWQ5OTkyYyAxMDA2NDQN
Cj4+IC0tLSBhL3hlbi9pbmNsdWRlL3B1YmxpYy9hcmNoLWFybS5oDQo+PiArKysgYi94ZW4vaW5j
bHVkZS9wdWJsaWMvYXJjaC1hcm0uaA0KPj4gQEAgLTMyNyw2ICszMjcsOCBAQCBERUZJTkVfWEVO
X0dVRVNUX0hBTkRMRSh2Y3B1X2d1ZXN0X2NvbnRleHRfdCk7DQo+PiAgICNkZWZpbmUgWEVOX0RP
TUNUTF9DT05GSUdfVEVFX09QVEVFICAgICAxDQo+PiAgICNkZWZpbmUgWEVOX0RPTUNUTF9DT05G
SUdfVEVFX0ZGQSAgICAgICAyDQo+PiAgIA0KPj4gKyNkZWZpbmUgWEVOX0RPTUNUTF9DT05GSUdf
QVJNX1NDSV9OT05FICAgICAgMA0KPj4gKw0KPj4gICBzdHJ1Y3QgeGVuX2FyY2hfZG9tYWluY29u
ZmlnIHsNCj4+ICAgICAgIC8qIElOL09VVCAqLw0KPj4gICAgICAgdWludDhfdCBnaWNfdmVyc2lv
bjsNCj4+IEBAIC0zNTAsNiArMzUyLDggQEAgc3RydWN0IHhlbl9hcmNoX2RvbWFpbmNvbmZpZyB7
DQo+PiAgICAgICAgKg0KPj4gICAgICAgICovDQo+PiAgICAgICB1aW50MzJfdCBjbG9ja19mcmVx
dWVuY3k7DQo+PiArICAgIC8qIElOICovDQo+PiArICAgIHVpbnQ4X3QgYXJtX3NjaV90eXBlOw0K
Pj4gICB9Ow0KPj4gICAjZW5kaWYgLyogX19YRU5fXyB8fCBfX1hFTl9UT09MU19fICovDQo+PiAg
IA0KPj4gLS0gDQo+PiAyLjM0LjENCj4+DQo=


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 13:49:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 13:49:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098945.1452882 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urd0Z-0003E4-Sa; Thu, 28 Aug 2025 13:49:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098945.1452882; Thu, 28 Aug 2025 13: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 1urd0Z-0003Dx-Ok; Thu, 28 Aug 2025 13:49:43 +0000
Received: by outflank-mailman (input) for mailman id 1098945;
 Thu, 28 Aug 2025 13:49:43 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=AInb=3I=nvidia.com=jgg@srs-se1.protection.inumbo.net>)
 id 1urd0Z-0003Do-0j
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 13:49:43 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on2062c.outbound.protection.outlook.com
 [2a01:111:f403:2412::62c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d8247a31-8415-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 15:49:42 +0200 (CEST)
Received: from CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13)
 by LV8PR12MB9336.namprd12.prod.outlook.com (2603:10b6:408:208::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.13; Thu, 28 Aug
 2025 13:49:29 +0000
Received: from CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732]) by CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732%4]) with mapi id 15.20.9073.010; Thu, 28 Aug 2025
 13:49: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>
X-Inumbo-ID: d8247a31-8415-11f0-8adc-4578a1afcccb
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mOyYTJbjsO9NCf8rOgy6Inz8ZGlaJmXwbgUjLmipwRKc9+8RwUUalO4/vmuNQn9F/I0tOlrhG67B/DZQndJn9k3oKOWnEz4rDTyQ23POEHnWbu8toQRA3Yd6DxHWksoIcjBBBsmnbXg7nmAcg/ClbSGZzfn6Ykx8D1tWNCYIgFb4n9BEfZRWMVvLmJR/z72ufCX5BDs7RFXlOyQK+zKvjzH2hELYS9KfN0QCuw5I5QtTsM1r2iohhAGeUgTJvRZQLHthlNlzB/FW8F2GZsIZxqMLww1+iH03v56Lqvg6kbMOP4lmQmbbLrRSnlDQU4ml63nfcn1Qb7X6yjvP3akG7g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=tmf5+3EpnHgeIhjFkX6hdDPoeYYCVpHZKSkOYrOxExM=;
 b=ZZlZTyrwHmzgwzgCSCYXcsv+D/spl2cxkcuiGgwqtUzBH4BxtzFl3cnN4cDOSIcjA4ZvP6QsG8kdu+w4w6DKqaZKbOUv/H6/UJ7a0Oe+R/gpbZLe2ZSD/TTyNZbtrEDB8u3SnoHHKuNklxx2Nj23e7oEXKdBDWcJQ9ZKhK51YgDDiozBHHFp9B7s1664Jb3+MWSQ7cDDYzulWoUElteLRPoOFwQrEUWmiJw7A6HW3X3Tt303cr8V5m6pq/NldilyHOdD91SYfszt+sMG8wlX0RvwOKqBlZ0Msr2b97VESpbo+ETWD//0TGKSzDYZN1EH0c0ZZbDpAYsBbIngEvX4RQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com;
 dkim=pass header.d=nvidia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=tmf5+3EpnHgeIhjFkX6hdDPoeYYCVpHZKSkOYrOxExM=;
 b=aykgNITyuWdx25Vhw+lXn6KBQYJ8yEmlrz5q69YYWlv4+2QIdxKW7xeYV9l4QVSZdJIYFYIfrJGG5x7AIDhTVisX21GRv/GAmAy5tjvtqFO8p/SFxHFxwurrg1WrZ5+21aUwNnek24kZTL5DOTvriaAkoxiQlbSXK0wJQe5NMPgfoo+hQetjZxQCl6szeGQDt0KD6U7dFoda/Me7dZ7dtrA9m7NNI2r2hU7qX6YmBhYxw/Q1OG6g9LsD9mwJns42nORjUYqnsQ3lylOGft1PjLuzTRQwmfJW9tWDmuXo+fzSpEanNt7K0Caq7X9ctkCaMR6m1GozrU/7daOhMbrwZQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=nvidia.com;
Date: Thu, 28 Aug 2025 10:49:27 -0300
From: Jason Gunthorpe <jgg@nvidia.com>
To: Leon Romanovsky <leon@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Leon Romanovsky <leonro@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 06/16] iommu/dma: extend iommu_dma_*map_phys API to
 handle MMIO memory
Message-ID: <20250828134927.GE9469@nvidia.com>
References: <cover.1755624249.git.leon@kernel.org>
 <4f84639baf6d5d0e107fd2001dff91b6538ff9ae.1755624249.git.leon@kernel.org>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <4f84639baf6d5d0e107fd2001dff91b6538ff9ae.1755624249.git.leon@kernel.org>
X-ClientProxiedBy: YT4PR01CA0489.CANPRD01.PROD.OUTLOOK.COM
 (2603:10b6:b01:10c::8) To CH3PR12MB8659.namprd12.prod.outlook.com
 (2603:10b6:610:17c::13)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PR12MB8659:EE_|LV8PR12MB9336:EE_
X-MS-Office365-Filtering-Correlation-Id: 10e3762c-9d9f-41d7-cb18-08dde639b556
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?ho/h4y0ux9joF8qU9L34AmpmcnS+9JVoSS3ehxuqmJIPmZ10QIBkBvTZAqvV?=
 =?us-ascii?Q?hIKq/J5YNFLUw3H5lBVc1B09vk5J2Ea+EYUUlwJ07CnvdIpjL3SDHj9iSBoq?=
 =?us-ascii?Q?eTkXoWwjU5DUHZtftR/yoCL2133rJ/U4CaAnFZio4Nc/yJwHTp6Yll1Ivofl?=
 =?us-ascii?Q?QCnqx8RsPNZnzlFJu/O3i9vziusVf5l5bAXjcRQ5DEbCGOBZZTLs75rNxYi6?=
 =?us-ascii?Q?D6U2hPpRb2ctl4vsYs3JZEa7eEs1oGWyk5dbtfbhdvCFUUFjVPGYQmci3hjb?=
 =?us-ascii?Q?Px4G2d15pjehZlDSFxm+65Tm2CX8kKotwIQdqEMbUFj/PofJ4tPvxbapucF5?=
 =?us-ascii?Q?KH3LLtmjZaASk8H1LsJD6/qOFEHHxdaDvjiZqzbj3wnpfREdjLaifSYOgDbr?=
 =?us-ascii?Q?JDcilP1Th7UoPeQGU+ALwb0+v+PcBTf1sJc5i/CGel/Gk//7BU1skEv0PmWT?=
 =?us-ascii?Q?JLX2UXhuV6Sbq3I9mkeb74f9YtIp5H6VhfjYYH4K5Oc3n7JCLa2vEJlI2sz3?=
 =?us-ascii?Q?Bp9LAgJX+VolivAYMuAgheKgmUakULCM6eXqSM9ByFTbB+RLklJwVwYPB7/Y?=
 =?us-ascii?Q?T5nv6qI16UzYfSKQOVOj3Q8pIrC84M+KvyNGUIlCdqWmXepCw6vk7udUkjC+?=
 =?us-ascii?Q?2sdfbzwfgQE0hlFn04Y/h2GiXKyu8LVQqTvxX/vum44/QcSNf/waq2nUgh9u?=
 =?us-ascii?Q?s4dIM/UKqQl1Wydk7+8dr52Fn29EF1aG9HtX6Kes6fRwQ+b/NbjQCFTaumzz?=
 =?us-ascii?Q?6kJwxa1sd1dapLYVsEpMEPYMla5I9LdBYfFt6g5r5vRg8JDye+edCgNO1ac5?=
 =?us-ascii?Q?qCrXbId6DMcb3kCCmEL63qlLBlbmRusaN9MC0GK4NbTAMK/geki4HiHqIhaX?=
 =?us-ascii?Q?ZYDIUxD9UxTV3/8N8jFy/3rLuwpxz/zaZgTBotm3Go5eHYf7N4Au3ScMvPyo?=
 =?us-ascii?Q?GJtOlyD8rTSMTq6ov/HU3KLtq9QTBdyYh+mo0c6k8yBstaMFkOVfjPgx+RTQ?=
 =?us-ascii?Q?T8rjtPShvqynrDx7cej+uOiGIKz/71BRjcqLc3m9VIqZQd8g31cVtlEJ9yKF?=
 =?us-ascii?Q?Shgpj6PyiDFXICPZ+lkM+N381jIDNvESQmJkT42+Xom2LCMxJk/vrZ6+nyuj?=
 =?us-ascii?Q?XNBAS3C5soC1enzLogesRYL0wxxSm+m0v0tLrEX2kBmpB9sZq6cd4c8D2Arw?=
 =?us-ascii?Q?jfwaOQJjW0a4uE8Ub3dpTuZoJlkox9Db0ENO+AEQzpjQICsEjvw2Cy26pBp/?=
 =?us-ascii?Q?6BEeKO8nkpajz8EO1ll52RC49xW/VL/xMInGx91anXKvTnumco0wbpP6z126?=
 =?us-ascii?Q?nBEFo89b4fT8t0r0XUqF0ZEt6akuBOG06yghEYZxpgbtb7Tn2v+fw7Ug461d?=
 =?us-ascii?Q?oiR/7FI/LdRACc3DUAd2+mt7DyMIaaAChZNtx9bz2NScH+q90qG7oTdC4eyp?=
 =?us-ascii?Q?mlRVDPFKoGU=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR12MB8659.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?RnwI07pU9MhS3fcj6ZjxhKBugYZeOXHf7yczQcXDk5Kxm6tSkU2JFVdCQgSf?=
 =?us-ascii?Q?poBjKBrW54ONXTEgj5vJcSLdueLOBEgoHLDUbM8D092uLdIHdWjUy32VwSyp?=
 =?us-ascii?Q?lwqpffHv5JPwiFqYYdTJ/8bGBrAqhXLfkcIEVHOdY3T92WsyQZk2adqD/ZIz?=
 =?us-ascii?Q?siknKLCQDcUAsoMn6Hcu6mam/lMrbvIhL9Q3xV9jiYVVvPaT9WOkINbLSErr?=
 =?us-ascii?Q?DAn7cj6Ke3+ARrFp60MOhkyoMUE5Y31wm7/EKyGOWv4GNkms3tUi+L+kZ9du?=
 =?us-ascii?Q?28iT4kPOFvVOXjH8aPsfL9Vz0DqBKtIEmvW3JVWGjuDUcVUt/QA7Jwrsy6GK?=
 =?us-ascii?Q?/FFxGgRsPDluK/debsNuL86P3mvlhafZTim0nbfW3+eWjit1XUk72n7Hna2n?=
 =?us-ascii?Q?PMN/STHypoiTR1UsNqcts4esOtF4xvrFmlD8QJcvv/TXymNWZ+fxlXevmVBV?=
 =?us-ascii?Q?a0HtfN3wmILiWcfhCu7SepBuDI9pXKHaJ+qH2+zqtqBWb5tIGeXMqx3uT5ME?=
 =?us-ascii?Q?ipy1xI/DjxJXMQrBoicmp1lF6lBD7BHfqR14hXwXy3Y9F/FpqinD1DZ3n7iH?=
 =?us-ascii?Q?yfZkAT+fq/RaKLZPKAKa4wPxjyzPE1kdXUSs6ueFCml6w3Po89qDduHyZcS2?=
 =?us-ascii?Q?Eh5BpE2GHDnkMRyTJbt+G3aR5ksrDMGf45eUGZkeZZZlVzhghbaqFMU2qArk?=
 =?us-ascii?Q?MpCAA0bg8TdC8PFeVu6Q+2jYebMoL/D4IjiaboXIBf/IDkaJkfIxDzAo1K0n?=
 =?us-ascii?Q?uHpjjjWQeG39f45Y9rr2E07WFfrbTzJY1bDNUXm/PFaKTJkiSzwE8M2f1fQK?=
 =?us-ascii?Q?CXxYeiREeo1yMg0ktCcpkJaYMMAg7pngvccQW0xqDfwdv6omIul/ykfvoovh?=
 =?us-ascii?Q?2VuIJ5s5sm2hx50JFkstQ+y/ppnwN9OgFLxImLg8DFIddHC8Nk9j1fpbYHYz?=
 =?us-ascii?Q?XNtJAzUE2oK9+yD0+34wOEfzoG9/OcVv8tqEz5Nzw7vipUsQ+6OG0Hv3saBS?=
 =?us-ascii?Q?lER25hBAuYh1wSkE2TPBY67aaCtRqm3j34SgnFJZJ6ZWvxGkxPpbX9fRkfwD?=
 =?us-ascii?Q?ESkioC7HMJ3dnBC5e3hhmbcAU7vx14RcEVglsgs/wN9GHYhY4zt5nRcsPcfK?=
 =?us-ascii?Q?gqmd89a3WYDRl/Qb9AP2TIfsgrCv86HmsiLgh2JhktltINwAntOtuLmRZR0r?=
 =?us-ascii?Q?7b5T11hGwVCtx1sepX3Qui1af2VlYXNppiXQYfYaw8XL9QNExZgpwUBE4OKS?=
 =?us-ascii?Q?TVG1rBdAtxDmQsO0C9uiovD5O2y9qou2ZXDL0fzmofi0Nuc2DEtm4lAvGsvu?=
 =?us-ascii?Q?fpAv7PeWh4U+/RmGaNi1/97hfeuQg+nY84qgOiNmwX6IUo7YvXi+TQL09p2y?=
 =?us-ascii?Q?qd7e+Z5B8u9UXUvGmE+ELI6bu4CD1Y4Lf97N02RDxSbqlE+0/2Y3Nr2qoHgd?=
 =?us-ascii?Q?zjIyeI72fYtKuI8QrXiG0eTi/hpTt+k1rfiBFbBo9gMfnnaeECQyUZvm1aeR?=
 =?us-ascii?Q?fVrR4C7hcO1ffd2v8PMuhgCy39AOCVI82CZFCIdR1smzs2YCUVr9xpilMHSY?=
 =?us-ascii?Q?9vdGc6Gnanm4xzcJClM=3D?=
X-OriginatorOrg: Nvidia.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 10e3762c-9d9f-41d7-cb18-08dde639b556
X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8659.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 13:49:28.8832
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: TbARRk5NFlGpGAaiLFsgPVLVB+j1BOxQvd6Cpogz3hVgGWkgsHzBUyp4/HAjIla7
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9336

On Tue, Aug 19, 2025 at 08:36:50PM +0300, Leon Romanovsky wrote:
> From: Leon Romanovsky <leonro@nvidia.com>
> 
> Combine iommu_dma_*map_phys with iommu_dma_*map_resource interfaces in
> order to allow single phys_addr_t flow.
> 
> In the following patches, the iommu_dma_map_resource() will be removed
> in favour of iommu_dma_map_phys(..., attrs | DMA_ATTR_MMIO) flow.

I would reword this a little bit

iommu/dma: implement DMA_ATTR_MMIO for iommu_dma_(un)map_phys()

Make iommu_dma_map_phys() and iommu_dma_unmap_phys() respect
DMA_ATTR_MMIO.

DMA_ATTR_MMIO makes the functions behave the same as
iommu_dma_(un)map_resource():
 - No swiotlb is possible
 - No cache flushing is done (ATTR_MMIO should not be cached memory)
 - prot for iommu_map() has IOMMU_MMIO not IOMMU_CACHE 

This is preperation for replacing iommu_dma_map_resource() callers
with iommu_dma_map_phys(DMA_ATTR_MMIO) and removing
iommu_dma_(un)map_resource().

Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>

Jason


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 13:51:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 13:51:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1098963.1452892 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urd1q-0004tx-5L; Thu, 28 Aug 2025 13:51:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1098963.1452892; Thu, 28 Aug 2025 13:51:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urd1q-0004tq-2K; Thu, 28 Aug 2025 13:51:02 +0000
Received: by outflank-mailman (input) for mailman id 1098963;
 Thu, 28 Aug 2025 13:51:00 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Q4L6=3I=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1urd1o-0004tk-LU
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 13:51:00 +0000
Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com
 [2a00:1450:4864:20::636])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 06b3687b-8416-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 15:50:58 +0200 (CEST)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-afcb78ead12so153649566b.1
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 06:50:58 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afe91744c3asm756270766b.91.2025.08.28.06.50.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 06:50:57 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 06b3687b-8416-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756389058; x=1756993858; darn=lists.xenproject.org;
        h=in-reply-to:content-language:references:to:from:subject:user-agent
         :mime-version:date:message-id:from:to:cc:subject:date:message-id
         :reply-to;
        bh=owzOugVXmwrfQeOMKG+42O3kjCvc3VpLYb1xqovq5Z4=;
        b=iB/vLfOjUF4qJpOtZBqoHsMDlo9fhrJ2f+3mHJLBvSiiauMn5pdRPBbkfYvTPcJhvM
         +P06GR1MF67UlIxd3JocjLr/tNxkMlmMES4D918OC3/rEuKiH+Yz/7y9uqDsWed5/jz6
         pKRs2ye1J4Vpkqz+mcYiRCAKZDVn79GEZxERwk9c1TNmN4iUt1XB49G/CQ+JzRoM30bW
         MAGLSy1OIlRFEvtCdzWCTqsHsA5XQzvcp7DWDYhJHTRTdGxx6wtJiegvietdR2Q/4seP
         K/R+k/i5nnkP+zGiunjRumyX+E8RgVV/LwHBPeGSCrTvCcNpKKPtDz1UtaaHfLS+uQ6n
         FgDQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756389058; x=1756993858;
        h=in-reply-to:content-language:references:to:from:subject:user-agent
         :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject
         :date:message-id:reply-to;
        bh=owzOugVXmwrfQeOMKG+42O3kjCvc3VpLYb1xqovq5Z4=;
        b=aAk63vktl+jytag3dqXlVjimIWMV1tZ5O3MsOCnZSWq3qGGGUOGvcSFKcRl6Lkarbi
         zYKxPxGOeFDjLa64UehWZx5y1/pkJjl3w52d9lij08xx4dj8btbj/qpekSOf+cEd79X2
         fNBR0pR/baYXU9TQR1jCFEkdT2VAIlIZksmrntuhNAs3Va49yDxK/oq4FWKrbT68xEL0
         5laG0J05XHb6sECejP3GQdBZ+VgjMxKB9XByIvzk4ybeQ225dd3zZ2UaNCfeiHi2qwTo
         XpL1Ql2qsN/6JGER/qd+fwhKsVlaCQ+p/sol00X+ymUftdyUoLobtN4Mg3c4GrxAKmEY
         AxgA==
X-Gm-Message-State: AOJu0Yyv63CWCJE79OAbOLXZlQmPxZQRXbjdqt96KUs6qNT09qfeLl1a
	xKq0wUvjwS+o+YKqPeACwOkxWM4r7zxrY1IcERHBynxXlT0gH2fzal1uqt5muQ==
X-Gm-Gg: ASbGncs06BaW+Nj2NVvXvl/+OsvbZnGFbLCm9u35hgBszdJ28awcCxdejrmqPo/349j
	ciNjbNKXzk9n3aLBw+T5NtzsZC7WuzONR9evIfw8ZfLCwXR5G8okQxVqEfZF52tAeM2rBa667U5
	123zLovJo5LTzDQyFC/sJ2CES5HgY3q3uIySPsx7MxwFYNlUlAQ7OvL0IVcAbocYw6nWZvaGUrR
	85icP4AatnvdKLQt4spdn38A4LYk0IQYEqJwNVON4Z3IcyDCv/T0+DxnXWhL8bkYLhbIy2IG7Vg
	1rsKSh1NLSG/J2J/E/Ni44PSJzYDnALjL1BgVVhQurLrIBzqPeUXl4teO6t1SVLfwn9PiJY+mAg
	hAi2/X1LaTr7w/rYlFfAFHaFQtG8zJjDPUXsaXpTHDMTobuys//YQvf0O5QrP7CQrurvWg5APe6
	KdJgcB9OyvYH38ONKs
X-Google-Smtp-Source: AGHT+IHa9BAqdTXTjlzmBe5Z8BI623r/z2VJ9BbFM3raGCXYSJYJj9UihVjokoDP/hrDCyXmPbCi+Q==
X-Received: by 2002:a17:907:7e9c:b0:af9:8c1f:b290 with SMTP id a640c23a62f3a-afe28f6a866mr1843387466b.29.1756389057602;
        Thu, 28 Aug 2025 06:50:57 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------lvBzz3KMKY0YXl6XLxXq5XHg"
Message-ID: <01e3f4e6-696f-47f8-884c-0f90bf19aada@gmail.com>
Date: Thu, 28 Aug 2025 15:50:56 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [Reminder] Feature Freeze is Fri Aug 29, 2025
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: Xen-devel <xen-devel@lists.xenproject.org>,
 Community Manager <community.manager@xenproject.org>,
 "committers@xenproject.org" <committers@xenproject.org>
References: <07fc7122-d0ac-4dbe-800d-89086a07005b@gmail.com>
Content-Language: en-US
In-Reply-To: <07fc7122-d0ac-4dbe-800d-89086a07005b@gmail.com>

This is a multi-part message in MIME format.
--------------lvBzz3KMKY0YXl6XLxXq5XHg
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hello Community,

Considering the number of requests in this mailing thread,
I think it makes sense to extend the Feature Freeze period
by at least one week, moving the deadline to September 5th.

I will send a separate e-mail with that information.

Thanks, everyone, for your responses.

~ Oleksii

On 8/25/25 5:50 PM, Oleksii Kurochko wrote:
> Hello community,
>
> Iâ€™d like to remind everyone that the Feature Freeze deadline is approaching,
> and we still have some outstanding requests from the community for patch series
> to be merged into 4.21:
>
> 1. Enable guest suspend/resume support on ARM via vPSCI [1]
> 2. Introduce SCI SCMI SMC multi-agent support [2]
> 3. Introduce eSPI support [3]
> 4. FRED work: [4], [5], possibly others (?)
> 5. Introduce CONFIG_DOMCTL [6]
> 6. xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE [7]
> 7. Some other patch series I missed.
>
> It looks like some of these patch series still require additional work,
> and Iâ€™m not sure there is enough time left before the end of this week.
>
> Could I kindly ask for an estimation of whether these tasks can be completed in time?
>
> [1]https://lore.kernel.org/xen-devel/87jz2vaq9h.fsf@epam.com/
> [2]https://lore.kernel.org/xen-devel/cover.1753184487.git.oleksii_moisieiev@epam.com/
> [3]https://lore.kernel.org/xen-devel/7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com/
>
> [4]https://lore.kernel.org/xen-devel/20250808202314.1045968-1-andrew.cooper3@citrix.com/
> [5]https://lore.kernel.org/xen-devel/20250815204117.3312742-1-andrew.cooper3@citrix.com/
>
> [6]https://lore.kernel.org/xen-devel/20250803094738.3625269-6-Penny.Zheng@amd.com/
> [7]https://lore.kernel.org/xen-devel/20250815102728.1340505-1-Penny.Zheng@amd.com/
>
> Thanks in advance.
>
> Best regards,
>    Oleksii
--------------lvBzz3KMKY0YXl6XLxXq5XHg
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <pre data-start="48" data-end="66">Hello Community,</pre>
    <pre data-start="68" data-end="247">Considering the number of requests in this mailing thread,
I think it makes sense to extend the Feature Freeze period
by at least one week, moving the deadline to September 5th.</pre>
    <pre data-start="249" data-end="303">I will send a separate e-mail with that information.</pre>
    <pre data-start="305" data-end="344">Thanks, everyone, for your responses.</pre>
    <pre data-start="346" data-end="357">~ Oleksii</pre>
    <pre></pre>
    <div class="moz-cite-prefix">On 8/25/25 5:50 PM, Oleksii Kurochko
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:07fc7122-d0ac-4dbe-800d-89086a07005b@gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <pre>Hello community,

Iâ€™d like to remind everyone that the Feature Freeze deadline is approaching,
and we still have some outstanding requests from the community for patch series
to be merged into 4.21:

1. Enable guest suspend/resume support on ARM via vPSCI [1]
2. Introduce SCI SCMI SMC multi-agent support [2]
3. Introduce eSPI support [3]
4. FRED work: [4], [5], possibly others (?)
5. Introduce CONFIG_DOMCTL [6]
6. xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE [7]
7. Some other patch series I missed.

It looks like some of these patch series still require additional work,
and Iâ€™m not sure there is enough time left before the end of this week.

Could I kindly ask for an estimation of whether these tasks can be completed in time?

[1] <a class="moz-txt-link-freetext"
      href="https://lore.kernel.org/xen-devel/87jz2vaq9h.fsf@epam.com/"
      moz-do-not-send="true">https://lore.kernel.org/xen-devel/87jz2vaq9h.fsf@epam.com/</a>
[2] <a class="moz-txt-link-freetext"
href="https://lore.kernel.org/xen-devel/cover.1753184487.git.oleksii_moisieiev@epam.com/"
      moz-do-not-send="true">https://lore.kernel.org/xen-devel/cover.1753184487.git.oleksii_moisieiev@epam.com/</a>
[3] <a class="moz-txt-link-freetext"
href="https://lore.kernel.org/xen-devel/7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com/"
      moz-do-not-send="true">https://lore.kernel.org/xen-devel/7e6477a83ab65220ef1c5dd22f4ef3536fbbdd5c.1754568795.git.leonid_komarianskyi@epam.com/</a>

[4] <a class="moz-txt-link-freetext"
href="https://lore.kernel.org/xen-devel/20250808202314.1045968-1-andrew.cooper3@citrix.com/"
      moz-do-not-send="true">https://lore.kernel.org/xen-devel/20250808202314.1045968-1-andrew.cooper3@citrix.com/</a>
[5] <a class="moz-txt-link-freetext"
href="https://lore.kernel.org/xen-devel/20250815204117.3312742-1-andrew.cooper3@citrix.com/"
      moz-do-not-send="true">https://lore.kernel.org/xen-devel/20250815204117.3312742-1-andrew.cooper3@citrix.com/</a>

[6] <a class="moz-txt-link-freetext"
href="https://lore.kernel.org/xen-devel/20250803094738.3625269-6-Penny.Zheng@amd.com/"
      moz-do-not-send="true">https://lore.kernel.org/xen-devel/20250803094738.3625269-6-Penny.Zheng@amd.com/</a>
[7] <a class="moz-txt-link-freetext"
href="https://lore.kernel.org/xen-devel/20250815102728.1340505-1-Penny.Zheng@amd.com/"
      moz-do-not-send="true">https://lore.kernel.org/xen-devel/20250815102728.1340505-1-Penny.Zheng@amd.com/</a>

Thanks in advance.

Best regards,
  Oleksii
</pre>
    </blockquote>
  </body>
</html>

--------------lvBzz3KMKY0YXl6XLxXq5XHg--


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 14:15:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 14:15:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099004.1452918 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urdPr-0000fm-5n; Thu, 28 Aug 2025 14:15:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099004.1452918; Thu, 28 Aug 2025 14:15: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 1urdPr-0000ff-2v; Thu, 28 Aug 2025 14:15:51 +0000
Received: by outflank-mailman (input) for mailman id 1099004;
 Thu, 28 Aug 2025 14:15:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=LvL0=3I=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1urdPp-0000fZ-V4
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 14:15:49 +0000
Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com
 [2a00:1450:4864:20::12b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7f1af208-8419-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 16:15:49 +0200 (CEST)
Received: by mail-lf1-x12b.google.com with SMTP id
 2adb3069b0e04-55f4cf36c00so1046215e87.1
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 07:15:49 -0700 (PDT)
Received: from [192.168.0.110] ([91.123.151.69])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-55f35bffaa6sm3325030e87.32.2025.08.28.07.15.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 07:15: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>
X-Inumbo-ID: 7f1af208-8419-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756390548; x=1756995348; 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=yn7QQsyNuU8SddtSSajSgw4g05yv92+Y7Z5YpM/sUsY=;
        b=RQTF1wLLEEfRKHsg98Z+DUY/rTgrAlQkyUv6yij20v115MULlYTgxTJrjke7C5yhZD
         3QFgGkpER92V0ZWd/E0FXo5nN71bYLZBKCf4tpiw3VAhe7i8v5E5wgeR8HFHaW9s/Y2a
         7L+21thCsK3MXC/90yKijI3Kunf2VGY3ggwZeqKqRolEQrR7zhMxW5noe5YRvWwkMBsK
         JFyzi1U9WlVG+xwSuu1QmGirIy9qyxPVRlv8aJ9rWgDXxnPZGKB/mKHYhfxtzBzk7yFK
         FGs6GbVey5pc+Yj4cmGKV8Hnn4Hu14qnWQvBmdqOuTJTqX7FWCfrG3lymIX3dxTAJP7q
         VcQg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756390548; x=1756995348;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=yn7QQsyNuU8SddtSSajSgw4g05yv92+Y7Z5YpM/sUsY=;
        b=OxFYRY9WzW+GlJZFppIoCTWxSYm+kfQjLWf136O4tuePXC8uaCZFIDMox0bM7gA9vy
         /rS2BW4uHF/qEolIGmJHflVK6iGeXKKWJj1yTF7VjYwuIlpdLr/WzCp5Dfo0D8jf+qJS
         5Gse65rrCTiyXmnu9Z7MUmeQwU37nwnBJXL0s9PTGvai/nWGqgEavtMvsVM6I3OGkhGB
         ffL80zbrScWVuLic0zXMlZn804vC6c2VFN7rF1VTf+GQlL4zh8Z2xqKP1S7OnCNT53de
         GJro5ua2W7gifQZS9Ke+0vkjkBouj4KihK23o/3ctXlA7lM1mQtNQH6CPnTbt5hMCldw
         JCRg==
X-Forwarded-Encrypted: i=1; AJvYcCW3hUpI4s2nLRJhoJ+VEvOTlUMwBZzvv+z8fkOkE6W8qG7n9NITFjJI0oVohIOzV+klmBi+Kmeur3E=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwShsYRUgnJr2CR+NxlwTu+LZJ2EcZGWJPvS5TyGwN9xAxSqXh8
	MSuHNqFh21AImvcLfMsupT/WGQWCkZ+Zvw5G1gG3V9VYcQM+aG60VI6woCe6tA==
X-Gm-Gg: ASbGncu+uIpucOUooTEpYcy4QfHV2Z9hQ1k06RHVkFZmy2mNcRu8ENDc0bBQXWdGdtq
	kjSzRkfPf9RaTPw+EhBwsK6ioKuq4XJGwP4Zsgd7LPM7VYbuDekCibG8xghvRmuCYvfgOvQHqQJ
	dIUmRXUPIjKEff+Yuhgsialbh9+vU1C3PVfimJNi79vHhgzPngo9U5HLr+n47DUAUFuuC6RPYCz
	DboDoN+zcGPpx2GrgDRs80SZ51p/5AQg6zAmqbUlhjcpS+N5Z7Q/nmsE11pWLZk7cO8cmQbad6l
	5aahWcqpZa8tptXHBeUR2bVZIYRJcJKdauKgXWDMY7Mk/KqZ8kjNkrEf5GTQ1n98x91uaE5xNnV
	6aSKNVadhxI2y4XUFEXxjaOJxaA==
X-Google-Smtp-Source: AGHT+IEovbtRTjKgHTnCtsVwKqkJLut7pLL06xZzEMnbw18UYeV2Zh8/16RgpFQUV5Jy5bJm0DTpaA==
X-Received: by 2002:a05:6512:4403:b0:55f:4d51:7ee8 with SMTP id 2adb3069b0e04-55f4d518088mr3210990e87.38.1756390547624;
        Thu, 28 Aug 2025 07:15:47 -0700 (PDT)
Message-ID: <a759fb03-002a-4de4-993e-ad7a7f86017a@gmail.com>
Date: Thu, 28 Aug 2025 17:15:46 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 05/12] xen/arm: gicv3: implement handling of GICv3.1
 eSPI
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1756317702.git.leonid_komarianskyi@epam.com>
 <864522724dd6058952cad8b505b0589750b7f8d7.1756317702.git.leonid_komarianskyi@epam.com>
Content-Language: en-US
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
In-Reply-To: <864522724dd6058952cad8b505b0589750b7f8d7.1756317702.git.leonid_komarianskyi@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 27.08.25 21:24, Leonid Komarianskyi wrote:

Hello Leonid


> Introduced appropriate register definitions, helper macros,
> and initialization of required GICv3.1 distributor registers
> to support eSPI. This type of interrupt is handled in the
> same way as regular SPI interrupts, with the following
> differences:
> 
> 1) eSPIs can have up to 1024 interrupts, starting from the
> beginning of the range, whereas regular SPIs use INTIDs from
> 32 to 1019, totaling 988 interrupts;
> 2) eSPIs start at INTID 4096, necessitating additional interrupt
> index conversion during register operations.
> 
> In case if appropriate config is disabled, or GIC HW doesn't
> support eSPI, the existing functionality will remain the same.
> 
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
> Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
> 
> ---
> Changes in V4:
> - added offsets for GICD_IGRPMODRnE and GICD_NSACRnE that are required
>    for vGIC emulation
> - added a log banner with eSPI information, similar to the one for
>    regular SPI
> - added newline after ifdef and before gic_is_valid_line
> - added reviewed-by from Volodymyr Babchuk

only NITs below

Reviewed-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

> 
> Changes in V3:
> - add __init attribute to gicv3_dist_espi_common_init
> - change open-codded eSPI register initialization to the appropriate
>    gen-mask macro
> - fixed formatting for lines with more than 80 symbols
> - introduced gicv3_dist_espi_init_aff to be able to use stubs in case of
>    CONFIG_GICV3_ESPI disabled
> - renamed parameter in the GICD_TYPER_ESPI_RANGE macro to espi_range
>    (name was taken from GIC specification) to avoid confusion
> - changed type for i variable to unsigned int since it cannot be
>    negative
> 
> Changes in V2:
> - move gic_number_espis function from
>    [PATCH 08/10] xen/arm: vgic: add resource management for extended SPIs
>    to use it in the newly introduced gic_is_valid_espi
> - add gic_is_valid_espi which checks if IRQ number is in supported
>    by HW eSPI range
> - update gic_is_valid_irq conditions to allow operations with eSPIs
> 
> Changes for V4:
> 
> Changes in V4:
> - added offsets for GICD_IGRPMODRnE and GICD_NSACRnE that are required
>    for vGIC emulation
> - added newline after ifdef and before gic_is_valid_line
> - added reviewed-by from Volodymyr Babchuk
> - added a log banner with eSPI information, similar to the one for
>    regular SPI
> ---
>   xen/arch/arm/gic-v3.c                  | 82 ++++++++++++++++++++++++++
>   xen/arch/arm/include/asm/gic.h         | 22 +++++++
>   xen/arch/arm/include/asm/gic_v3_defs.h | 38 ++++++++++++
>   3 files changed, 142 insertions(+)
> 
> diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
> index a959fefebe..b939a1f490 100644
> --- a/xen/arch/arm/gic-v3.c
> +++ b/xen/arch/arm/gic-v3.c
> @@ -485,6 +485,36 @@ static void __iomem *get_addr_by_offset(struct irq_desc *irqd, u32 offset)
>           default:
>               break;
>           }
> +#ifdef CONFIG_GICV3_ESPI
> +    case ESPI_BASE_INTID ... ESPI_MAX_INTID:
> +    {
> +        u32 irq_index = ESPI_INTID2IDX(irqd->irq);

NIT: I have heard that no uN for new code, but uintN_t (sorry for didn't 
spot this before), so I would use uint32_t


> +
> +        switch ( offset )
> +        {
> +        case GICD_ISENABLER:
> +            return (GICD + GICD_ISENABLERnE + (irq_index / 32) * 4);
> +        case GICD_ICENABLER:
> +            return (GICD + GICD_ICENABLERnE + (irq_index / 32) * 4);
> +        case GICD_ISPENDR:
> +            return (GICD + GICD_ISPENDRnE + (irq_index / 32) * 4);
> +        case GICD_ICPENDR:
> +            return (GICD + GICD_ICPENDRnE + (irq_index / 32) * 4);
> +        case GICD_ISACTIVER:
> +            return (GICD + GICD_ISACTIVERnE + (irq_index / 32) * 4);
> +        case GICD_ICACTIVER:
> +            return (GICD + GICD_ICACTIVERnE + (irq_index / 32) * 4);
> +        case GICD_ICFGR:
> +            return (GICD + GICD_ICFGRnE + (irq_index / 16) * 4);
> +        case GICD_IROUTER:
> +            return (GICD + GICD_IROUTERnE + irq_index * 8);
> +        case GICD_IPRIORITYR:
> +            return (GICD + GICD_IPRIORITYRnE + irq_index);
> +        default:
> +            break;
> +        }
> +    }
> +#endif
>       default:
>           break;
>       }
> @@ -655,6 +685,54 @@ static void gicv3_set_irq_priority(struct irq_desc *desc,
>       spin_unlock(&gicv3.lock);
>   }
>   
> +#ifdef CONFIG_GICV3_ESPI
> +unsigned int gic_number_espis(void)
> +{
> +    return gic_hw_ops->info->nr_espi;
> +}
> +
> +static void __init gicv3_dist_espi_common_init(uint32_t type)
> +{
> +    unsigned int espi_nr, i;
> +
> +    espi_nr = min(1024U, GICD_TYPER_ESPIS_NUM(type));
> +    gicv3_info.nr_espi = espi_nr;
> +    /* The GIC HW doesn't support eSPI, so we can leave from here */
> +    if ( gicv3_info.nr_espi == 0 )
> +        return;
> +
> +    printk("GICv3: %d eSPI lines\n", gicv3_info.nr_espi);
> +
> +    for ( i = 0; i < espi_nr; i += 16 )
> +        writel_relaxed(0, GICD + GICD_ICFGRnE + (i / 16) * 4);
> +
> +    for ( i = 0; i < espi_nr; i += 4 )
> +        writel_relaxed(GIC_PRI_IRQ_ALL,
> +                       GICD + GICD_IPRIORITYRnE + (i / 4) * 4);
> +
> +    for ( i = 0; i < espi_nr; i += 32 )
> +    {
> +        writel_relaxed(GENMASK(31, 0), GICD + GICD_ICENABLERnE + (i / 32) * 4);
> +        writel_relaxed(GENMASK(31, 0), GICD + GICD_ICACTIVERnE + (i / 32) * 4);
> +    }
> +
> +    for ( i = 0; i < espi_nr; i += 32 )
> +        writel_relaxed(GENMASK(31, 0), GICD + GICD_IGROUPRnE + (i / 32) * 4);

NIT: From what I see, the eSPIs are configured exactly as regular SPIs 
in gicv3_dist_init() (i.e. the eSPIs are level-triggered, disabled and 
deactivated, belong to the same group, etc). In gicv3_dist_init() we 
have comments clarying the actions, but here we do not. I would at least 
write a sentence in patch description/in-code comment saying that eSPIs 
configuration is the same as for regular SPIs.


> +}
> +
> +static void __init gicv3_dist_espi_init_aff(uint64_t affinity)
> +{
> +    unsigned int i;
> +
> +    for ( i = 0; i < gicv3_info.nr_espi; i++ )
> +        writeq_relaxed_non_atomic(affinity, GICD + GICD_IROUTERnE + i * 8);
> +}
> +#else
> +static void __init gicv3_dist_espi_common_init(uint32_t type) { }
> +
> +static void __init gicv3_dist_espi_init_aff(uint64_t affinity) { }
> +#endif
> +
>   static void __init gicv3_dist_init(void)
>   {
>       uint32_t type;
> @@ -700,6 +778,8 @@ static void __init gicv3_dist_init(void)
>       for ( i = NR_GIC_LOCAL_IRQS; i < nr_lines; i += 32 )
>           writel_relaxed(GENMASK(31, 0), GICD + GICD_IGROUPR + (i / 32) * 4);
>   
> +    gicv3_dist_espi_common_init(type);
> +
>       gicv3_dist_wait_for_rwp();
>   
>       /* Turn on the distributor */
> @@ -713,6 +793,8 @@ static void __init gicv3_dist_init(void)
>   
>       for ( i = NR_GIC_LOCAL_IRQS; i < nr_lines; i++ )
>           writeq_relaxed_non_atomic(affinity, GICD + GICD_IROUTER + i * 8);
> +
> +    gicv3_dist_espi_init_aff(affinity);
>   }
>   
>   static int gicv3_enable_redist(void)


[snip]



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 14:20:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 14:20:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099018.1452927 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urdU3-0002EO-QN; Thu, 28 Aug 2025 14:20:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099018.1452927; Thu, 28 Aug 2025 14:20: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 1urdU3-0002EH-NH; Thu, 28 Aug 2025 14:20:11 +0000
Received: by outflank-mailman (input) for mailman id 1099018;
 Thu, 28 Aug 2025 14:20:11 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=AInb=3I=nvidia.com=jgg@srs-se1.protection.inumbo.net>)
 id 1urdU3-0002EB-24
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 14:20:11 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20620.outbound.protection.outlook.com
 [2a01:111:f403:2417::620])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 194ddeed-841a-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 16:20:08 +0200 (CEST)
Received: from CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13)
 by CH1PPF4C9628624.namprd12.prod.outlook.com
 (2603:10b6:61f:fc00::60d) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.13; Thu, 28 Aug
 2025 14:20:00 +0000
Received: from CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732]) by CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732%4]) with mapi id 15.20.9073.010; Thu, 28 Aug 2025
 14:20: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>
X-Inumbo-ID: 194ddeed-841a-11f0-8dd7-1b34d833f44b
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jXFlyb8zuu/paS1ZawJ1ZJ1MoYZI9MLnsy1iQRbHVJqVh0OMUxaG8sKXQ9gUCvAmgpV1v8+TxTBEvGBqt41EVUhZjJsJ8xQQf4+cQiifYq6e688dR1E4l+DbzpHWHGlXiFI6tQR39Fc3jFsrQZ0KQU0LXMUS8snCsy5VYFMbglCunUMqSDxqGG7B9qwHJtVHKzu/6qah8xlWSq1+dkTDwCpXovBkSPvriF9V+FcfL6oZyLZfJtx7AyfIu4mvXo+IZgyWbdaOd0nI/bbQiiM6e7X0p5Jx9sBWiUoQFwQt7jhbHb8Cuc4I6WhJxJ+Q++yK05JNtdpvxZ3HFsTR+d+T6Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=kQVNpin3YPzO6syYTrDj2tSQysPubw+YKna9LrX2ZNY=;
 b=vqBL+8iwISAvFAQi32rutRIDaee8G4QXtxMQDjSV/DujYuKdVZjsiXFWkC/PUu74TXfCI8Rb7+6HXdyzo2KHR1HAwpznQ3qfgclNfOeZhrGkDnohJDxP2thouVnCLHhNd+K2rR/jix9XQE0sTVT4IcZXMNFUJJpAMXZ2PZsmAu4q6am5QzEG9sB8EOtKTxg/KzXO81htlhie6Uez48NGNf6/+dnvyrZknwh5ZuQPwn9Sk4xqdnvmWmKuq79H0f//30GCIg46/bNgouKf92uSSxCtvCTu/4gPKSpTKFTuodCXYQryGE42epJCswqNeumNoF74pBLYZLqdQWDrv55afQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com;
 dkim=pass header.d=nvidia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=kQVNpin3YPzO6syYTrDj2tSQysPubw+YKna9LrX2ZNY=;
 b=SHVyRQqxbnE8x5sXZFHYgdSh9gMgMYhrg8yQEA1uYaWj/7/MaG0hgHqYAfEXft1qTfGjKhNsG7Vc51nfNJ1qsCz5HcprFeDpR8TPEvjWZzATxCR3HnoYyBeQKie+HIk73SdCxArm+8p4ib4+F1YWAKZyyc4FrwrGogPFWXSSjz+wWYG/dvpiyJNhKI8WQEITG2Tx1ZUxzKxKh0expT9vQt/t4XihBOW+YCXthtRY6Hp93yitlnQPfrAQUtx8pUqIarwd8oXWTZyshskuugEsv4RRZFzqy/Dvb8YAfAUsgVVlFIkf0lEmJkMLRsFI9zwy34B4f8Imx1asqF4v+lWOuQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=nvidia.com;
Date: Thu, 28 Aug 2025 11:19:58 -0300
From: Jason Gunthorpe <jgg@nvidia.com>
To: Leon Romanovsky <leon@kernel.org>,
	Suzuki K Poulose <suzuki.poulose@arm.com>,
	Alexey Kardashevskiy <aik@amd.com>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Leon Romanovsky <leonro@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 07/16] dma-mapping: convert dma_direct_*map_page to be
 phys_addr_t based
Message-ID: <20250828141958.GF9469@nvidia.com>
References: <cover.1755624249.git.leon@kernel.org>
 <3faa9c978e243a904ffe01496148c4563dc9274e.1755624249.git.leon@kernel.org>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <3faa9c978e243a904ffe01496148c4563dc9274e.1755624249.git.leon@kernel.org>
X-ClientProxiedBy: YT1PR01CA0055.CANPRD01.PROD.OUTLOOK.COM
 (2603:10b6:b01:2e::24) To CH3PR12MB8659.namprd12.prod.outlook.com
 (2603:10b6:610:17c::13)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PR12MB8659:EE_|CH1PPF4C9628624:EE_
X-MS-Office365-Filtering-Correlation-Id: ee25c9d4-a894-4ec6-2322-08dde63df8ba
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016|7416014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?9ABT6QTC3/4LJlsORe9ECLURm5FPgYglzP4U8WaOSREO8cESJY67mpBgPEgf?=
 =?us-ascii?Q?MkjBrlOeWvd+Wx5sAHlUUxAypsE3sfz8tRKkX9INneWs2ZUhCuiL+xViVKT/?=
 =?us-ascii?Q?rfMpRQymx+irdvSIp4qZHv0it0sFIEnAypUowzkTqVzqCSgFEN9wpsDQUbug?=
 =?us-ascii?Q?qCBBjuZxvzOKP1cE3SXz7NfTZkR7c2f/KeWbfYAVmhwF+JdwiEsfdIKiKGfu?=
 =?us-ascii?Q?KFOGSgoJegWT/eiZ0MFRxjbwCG+FwEkg81Ukc1BsCPF+8jXdZtJVeXhv7+VW?=
 =?us-ascii?Q?h698g2uohrUxw5kkLDmqSBPVhg8ilvnXIutPYKjCAt1bMWYT3SVpW+eR99yn?=
 =?us-ascii?Q?V2hYNiLmkVaSAtGxDbv2FjU7DY4TWALSxOsgPymNrMjpcwvEPmg9iRhe/Kak?=
 =?us-ascii?Q?emtDF8WNI0h8UDSBKFdP2kmXFiGT9OpfHXOUDXYc0EyyoNYemlSR/WNEP8fw?=
 =?us-ascii?Q?iIxBcNn90ffR5b7+rVNjGlKo0XU81sqQRBi8X8mYq2jkXCEO/peYXNNRemHT?=
 =?us-ascii?Q?42p6fIV0eogpg/mvjNqfDzp3ArXrvuenVv/BvlLC0kDzmZAIOPwN3QdIOuyi?=
 =?us-ascii?Q?W5TJnKzgtNhmJnfCWp3jVysjCXd9dWeG7RuRghEbc2RH3Uy7bXU9SMn8dmf9?=
 =?us-ascii?Q?gpARsIUsJQqV2u91jnjSMUrFMRwiOwFxNW/y14lTJM8Zm18iTTRBjdBArogn?=
 =?us-ascii?Q?l32UDaIh3XzO+DR3xPn3Mja3Jzx3n01d+9vrDjvg/iV+yhn+FTJR9fY3oHV6?=
 =?us-ascii?Q?DMkOurjB5PukWMJDHBEc7Wi/WC2myrLMwYL9/39GprTbNLrTUexGld9LH1qM?=
 =?us-ascii?Q?rwGb7NwkfSSKgaz8lA0b45FLXa2uJCydXEhmG+J9Khp9uo0cnJ6Q+DBykbAO?=
 =?us-ascii?Q?W+/IAB/HpcrmMyzu3DIe1rXsJEZWw68SSNF1TDZgDOTQJovBXejmtt4GBExT?=
 =?us-ascii?Q?arBrV3XY04TZtmkEMb/4I8MSuMhMRiOd8CpHcvT/+tYP1p2QFOBQ1gIgGsPW?=
 =?us-ascii?Q?P3ICz7+xrw2/1SWkrb+ev8szOepdpDazVU32e+meayOMKWf575XW3D3a0gxq?=
 =?us-ascii?Q?Qfm5CLQQ0CT0QRq/f8LXBnRon+W9NZws9+kPQjiW4Y4ZZFuQVA1NXi9RXK2i?=
 =?us-ascii?Q?7d109Wx8+biBFpwcU3HOHUEZ0TsZ/y610sjQ45jorO+034WU0/zvgFG06Jxf?=
 =?us-ascii?Q?V2d72ZQL2rkiFbwKS0iOquz664r6LYn8VYdwO3xjMZ19nsn4SoO/cQQ7u1g6?=
 =?us-ascii?Q?kdNWoNUZZHdwDj1fesG0YxnkIrkDOakzRSpKryPitAhtawRRPfI+hNpj9aWh?=
 =?us-ascii?Q?ZS5rVojaCrIdUpbyZMPEv6trU4xPtIfIjmPI+hbXqgQadAMblXKCk6rKTX5S?=
 =?us-ascii?Q?a1ybeGPwK4NZcscvfiQySo2DML0nC9zFVon4MrwW6ODFN3spzuJrWfsrMo/u?=
 =?us-ascii?Q?4dmb68jk8Mk=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR12MB8659.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(7416014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?0GKUUMy2Zjj7bShx559KxLONxcEVScGItWUxoqpIFyh6XEjUtYEUSckAJ+VS?=
 =?us-ascii?Q?kRzeLOB37iyFXOukUG7mg8GSDXvLhCpRyfX2Oh2Fb45BNBhk2yEjnScpepNz?=
 =?us-ascii?Q?860jrVAdoO7ibpqBpfTD7zWlzqL9z/qjFMO22UMNfFrKPDrgiAnj//751W0f?=
 =?us-ascii?Q?WgWHubeAyDqwC5yntQuyj6PL5b2TYt2qobichzmcR75vrk+NM/omSaTnnokd?=
 =?us-ascii?Q?Hpd1UapkTBcfXsLjl7nMedjcjweiDkFLayWNjFiWrakgqmPVW7dziEmj43Wk?=
 =?us-ascii?Q?7ArwEpDKMyEo29afjiHg1veE1ewj9ao/+zS/WtDRHR1jDAwjoReLgRQDv+F0?=
 =?us-ascii?Q?03Z6s0dGmQsGMrJf/HltN2mTRCQ6IwYE0bHRLWqs9WMzd3WYTc5uuEBjZP53?=
 =?us-ascii?Q?0Enqlh+gVu673+0LDZ68ct+H3O6Unvf5NGCys5nRPF5LdDs/ahP6EB99/Sv3?=
 =?us-ascii?Q?UFTwKOm1WhdIHaBjc1VXOw2aJRSVENv8PLKhMa//9GsecikRKp1NDpBOxs5R?=
 =?us-ascii?Q?VPYBNKjffDK4iBHlfTrKx8n+pHYtwF/RsOlJTwF7Mpnktir+QiyPsxOBdldw?=
 =?us-ascii?Q?vUqPHod1VFyNkRyEFzZ9eTFEE7l5VqNTzRnWvivcB3TE9LxmDNQEjYDF7nFM?=
 =?us-ascii?Q?GP9LZ5v0U2yHhLn1RIXToR0xKkZ0BFh5+Y9ybZHAnURd4i104GJKlScvbreR?=
 =?us-ascii?Q?Q9BMdB37xbvftod+QfrHsm0p9YOsqOyVEDjNYTvAWUyFia2Ey7evm4ywkYTx?=
 =?us-ascii?Q?h+sIu07+uvh7racJKS/Z/xCUkTsr4GbLeZUv1lS4aPyxO96g0VfYbHgVQzcD?=
 =?us-ascii?Q?k5c0Vl3y01qhuqDwv+Nsth7/Rzh+5Hqakc84qx1CzTkWbf7bqkXsOWx/2Hsh?=
 =?us-ascii?Q?NN6DB6HizNh+TeKEGIgD42nteot86FM/EEGHVHo7x/qcGaj/but4TVQk/K1v?=
 =?us-ascii?Q?vRMaWoZ5Tmk15q3Tp3aP1129Cnt+dMu5WSWbuAEwJnbnczgt4XViE/ZqKX5V?=
 =?us-ascii?Q?nAApv4rOScsaCsker2ICS1EVqZ3/ze2jwu35ywe5GC/sKyuryKQx7p/CPCZW?=
 =?us-ascii?Q?1FkX4ls0qo86wW9mXmendEiz8R5CBLzpFzYmyhMM0O4v5MSi+lhX1rjl576J?=
 =?us-ascii?Q?UDlXc1RprnpiHUBQpT/3CTXFW0R4q/D1rdUPqFnFegBGw8wLZl1G9kZrzPjV?=
 =?us-ascii?Q?kyIwSDxl+GlmU8WG9ODPPzMraHCdju/SEdV5nGXP+idSzYNyGyCRO16YHz+c?=
 =?us-ascii?Q?sgsQzLW+SQbh3kOfIDKy7AnP8apjMad3QeUKs5Vbxiws6DJVnk+kC1U9aI6W?=
 =?us-ascii?Q?bv+N+M2QWywysxu5/R5s9QqPWKcCLYpk9UwU6vOhXOGTx/8ehEeRZMTzpc95?=
 =?us-ascii?Q?gXE9x0w7K4qqhLJQQoZNDRAdSzebrIqL+phygzWYqpV7kOpxvx9KOWMs5uNs?=
 =?us-ascii?Q?XS1HhwwV9Kh2B/aqy05LWXl9uY8kXMVVN6K12dkxOz15Hc7B5X6BfCCDydhP?=
 =?us-ascii?Q?fQxez10fHoATxU0Sj/6J8X7LHHevla7d3+DBz+Oze7OmFlVBqnJJsa2/UxPp?=
 =?us-ascii?Q?uT3klxfrEJzyDMyljFs=3D?=
X-OriginatorOrg: Nvidia.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ee25c9d4-a894-4ec6-2322-08dde63df8ba
X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8659.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 14:19:59.9859
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: MleWSaT+fPMApu6hDDjuoGGeeHk6jrZi5TxdTZ3vJyLRcRpsAXuDhi0ZC+bhq47a
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH1PPF4C9628624

On Tue, Aug 19, 2025 at 08:36:51PM +0300, Leon Romanovsky wrote:
> +static inline dma_addr_t dma_direct_map_phys(struct device *dev,
> +		phys_addr_t phys, size_t size, enum dma_data_direction dir,
> +		unsigned long attrs)
>  {
> -	phys_addr_t phys = page_to_phys(page) + offset;
> -	dma_addr_t dma_addr = phys_to_dma(dev, phys);
> +	dma_addr_t dma_addr;
> +	bool capable;
>  
>  	if (is_swiotlb_force_bounce(dev)) {
> -		if (is_pci_p2pdma_page(page))
> -			return DMA_MAPPING_ERROR;
> +		if (attrs & DMA_ATTR_MMIO)
> +			goto err_overflow;
> +
>  		return swiotlb_map(dev, phys, size, dir, attrs);
>  	}
>  
> -	if (unlikely(!dma_capable(dev, dma_addr, size, true)) ||
> -	    dma_kmalloc_needs_bounce(dev, size, dir)) {
> -		if (is_pci_p2pdma_page(page))
> -			return DMA_MAPPING_ERROR;
> -		if (is_swiotlb_active(dev))
> +	if (attrs & DMA_ATTR_MMIO)
> +		dma_addr = phys;
> +	else
> +		dma_addr = phys_to_dma(dev, phys);

I've been trying to unpuzzle this CC related mess for a while and
still am unsure what is right here... But judging from the comments I
think this should always call phys_to_dma(). Though I understand the
existing map_resource path didn't call it so it would also be fine to
leave it like this..

Alexey do you know?

The only time this seems to do anything is on AMD and I have no idea
what AMD has done to their CC memory map with the iommu..

On ARM at least I would expect the DMA API to be dealing only with
canonical IPA, ie if the memory is encrpyted it is in the protect IPA
region, if it is decrypted then it is in the unprotected IPA region.

I think some of this 'dma encrypted' 'dma unencrypted' stuff is a bit
confused, at least on ARM, as I would expect the caller to have a
correct phys_addr_t with the correct IPA aliases already. Passing in
an ambiguous struct page for DMA mapping and then magically fixing it
seems really weird to me. I would expect that a correct phys_addr_t
should just translate 1:1 to a dma_addr_t or an iopte. Suzuki is that
the right idea for ARM?

To that end this series seems like a big improvment for CCA as the
caller can now specify either the protected or unprotected IPA
directly instead of an ambiguous struct page.

One of the things we are going to need for bounce buffering devices
like RDMA is to be able to allocate unencrypted folios, mmap them to
userspace, come back and then dma map them as unencrypted into a
MR.

So it looks to me like this series will be important for this use case
as well.

It looks OK though:

Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>

Jason


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 14:54:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 14:54:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099033.1452962 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ure1B-0007Ex-9j; Thu, 28 Aug 2025 14:54:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099033.1452962; Thu, 28 Aug 2025 14:54: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 1ure1B-0007DZ-0u; Thu, 28 Aug 2025 14:54:25 +0000
Received: by outflank-mailman (input) for mailman id 1099033;
 Thu, 28 Aug 2025 14:54:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Mimg=3I=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1ure19-00074Y-KN
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 14:54:23 +0000
Received: from mail-lf1-x131.google.com (mail-lf1-x131.google.com
 [2a00:1450:4864:20::131])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e14836fd-841e-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 16:54:21 +0200 (CEST)
Received: by mail-lf1-x131.google.com with SMTP id
 2adb3069b0e04-55f3fc15e09so1120092e87.3
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 07:54:21 -0700 (PDT)
Received: from yp-VivoBook-ASUSLaptop-M1503QA-M1503QA.. ([95.67.15.120])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-55f42101509sm2635661e87.106.2025.08.28.07.54.19
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 28 Aug 2025 07:54: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>
X-Inumbo-ID: e14836fd-841e-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756392860; x=1756997660; 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=iKQtb2yDXXgVIM20M/9ZKDqMqVSaENj70H3OApwPWOA=;
        b=DlfdhW2hY/jl+/E7YN1CemCzvKyI8PiPPZT8Iy4tc6IE6SZKmf/KgfqECreNHr6OE9
         daInHWuqgH8ozXF21JWu7T3ACmUiT2sz8U9EzHUrWUdlHuw333hVxVIkaF5hZuMbZjRr
         ED7NZyPWIfukpco9rnPiyKWFeBBgP7nu4/V+E48BSbAQtt+de5TUGfgcPZDbpjIQVWIs
         cw3dGnqB9ggIUy9RPlXto4P+mgNdSQfU5KXhFDnv2wBQnviXZLTSyjixp/oa97DuF+6p
         yTMVDQhQ20tR63psAaChrqrq7mosYWMyThEUyKHOtXmYagIhnjQLhRpMnjYc5+XHZtqs
         ZuRg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756392860; x=1756997660;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=iKQtb2yDXXgVIM20M/9ZKDqMqVSaENj70H3OApwPWOA=;
        b=m/8Ovwv89IZrY6Ky7yk9uXlEU1Q6yO0FyHYNsRjQheEBXgzrvUbPyRm0DaKYORT1NQ
         Rv6PdE45w4vjGaR3+1n8as1hRJUrSj6/Va5Sdo/k5hFbKb99Vozs5OjHR7GaochDhA+S
         sUSofTkk8zULQnTv262zfvAiHJaBtR7sKTN1R8xGdBvujg/IFrP8ukavBcLLtujHa7vO
         ZzvgGfLH+JKnafmFtsrkr9+LU8+9fMVnhyKXVnHhMWGtOZmeAguanp7+cGvGWSB0ML+i
         sIUiofSK8dYAIywAtsox7/rWG0OCuQ2bL+VqEWCwUMmrPf6Uw6hDR4z2i8EiOcGuYEEk
         mdYg==
X-Gm-Message-State: AOJu0YwWyIAnTsgOzbvfAE7p17LBb7KpU6bsERzqWL4O0klk9VgDCoqt
	CZ8e/FZxeDVYpkdFfyPBUjLGQGkod33gwnn0NQlf1geuMjqySPUSz6UMmjYYgw==
X-Gm-Gg: ASbGncuPFwV4zxrtG7U9Dk+2xXLb7d6DulQoqtc01BOwVV19fAumPMDhtTQDO3pg2aO
	C0y/+C7Z83y+JVwpMgqrQZFe8HulMMW1gfAetkkfvPtEB5BDnyRxdbHrVYmapq5pPA8ZeX9CFT1
	PmFEZA1bHVNMt6gkVM5lu1+5Q6aDGQBGGNW4MdftIsu3+LbL2RZDlZr5WbS5sTGhVDlsK27H7iE
	SaOcZA9fG2jQp9mQMTJ6gaAkz04/3CGbbo1czXoTPnhySkhVIMgPXJ5GhEdmLHV+8Jp6A+GVcHf
	SKqADCEiiOwlclRbsjwM1u5wsKorerjfJsNUJmBf3OMVIAebwbQu3b4FI9064B2hn7bw4axDnrh
	nTPuDA8DPQsoCalB7DuL37qxuJMzSHO723MIdXMOKjDqqX5NDuU0lKlc/1sPnhQ==
X-Google-Smtp-Source: AGHT+IF0KzeE8Ug4viy9lY6uK85pKNO5bQ1smWxObDJalZkHecuTFyErGv1hdcu99okAdQfuqdIvwQ==
X-Received: by 2002:a05:6512:438b:b0:55f:4bf6:efeb with SMTP id 2adb3069b0e04-55f4bf6f674mr4119534e87.43.1756392860229;
        Thu, 28 Aug 2025 07:54:20 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH v11 2/4] tools/xl: Allow compilation of 'xl resume' command on Arm
Date: Thu, 28 Aug 2025 17:54:05 +0300
Message-ID: <71189bf8f220b678829b8d58f4aa9a4877156eb4.1756392094.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.1756392094.git.mykola_kvach@epam.com>
References: <cover.1756392094.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

The "xl resume" command was previously excluded from Arm builds because
system suspend/resume (e.g., SYSTEM_SUSPEND via vPSCI) was not
implemented. On x86, this command is used for resume.

This change enables compilation of `xl resume` on Arm regardless of the
underlying implementation status, making the tool available for testing
and future feature support. The relevant libxl infrastructure and handler
functions are already present and usable.

Note: This does not imply full system suspend/resume support on Arm.
      The `xl suspend` command still does not work on Arm platforms.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
Acked-by: Anthony PERARD <anthony.perard@vates.tech>
---
Changes in v7:
- dropped renaming of LIBXL_HAVE_NO_SUSPEND_RESUME macro

Changes in v6:
- Renamed macro from LIBXL_HAVE_NO_SUSPEND_RESUME to LIBXL_HAVE_NO_SUSPEND
  to better reflect the scope of this change
- Applied cosmetic changes based on review feedback
---
 tools/include/libxl.h     |  1 -
 tools/xl/xl.h             |  4 ++--
 tools/xl/xl_cmdtable.c    |  4 ++--
 tools/xl/xl_migrate.c     |  2 +-
 tools/xl/xl_saverestore.c |  2 +-
 tools/xl/xl_vmcontrol.c   | 12 ++++++------
 6 files changed, 12 insertions(+), 13 deletions(-)

diff --git a/tools/include/libxl.h b/tools/include/libxl.h
index 185f74d8a8..b204fc5e2e 100644
--- a/tools/include/libxl.h
+++ b/tools/include/libxl.h
@@ -1140,7 +1140,6 @@ typedef struct libxl__ctx libxl_ctx;
  * restoring or migrating a domain. In this case the related functions
  * should be expected to return failure. That is:
  *  - libxl_domain_suspend
- *  - libxl_domain_resume
  *  - libxl_domain_remus_start
  */
 #if defined(__arm__) || defined(__aarch64__)
diff --git a/tools/xl/xl.h b/tools/xl/xl.h
index 45745f0dbb..9233b73f85 100644
--- a/tools/xl/xl.h
+++ b/tools/xl/xl.h
@@ -65,7 +65,7 @@ static const char migrate_permission_to_go[]=
     "domain is yours, you are cleared to unpause";
 static const char migrate_report[]=
     "my copy unpause results are as follows";
-#endif
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
 
   /* followed by one byte:
    *     0: everything went well, domain is running
@@ -130,8 +130,8 @@ int main_migrate_receive(int argc, char **argv);
 int main_save(int argc, char **argv);
 int main_migrate(int argc, char **argv);
 int main_suspend(int argc, char **argv);
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
 int main_resume(int argc, char **argv);
-#endif
 int main_dump_core(int argc, char **argv);
 int main_pause(int argc, char **argv);
 int main_unpause(int argc, char **argv);
diff --git a/tools/xl/xl_cmdtable.c b/tools/xl/xl_cmdtable.c
index 06a0039718..bcb2d233cc 100644
--- a/tools/xl/xl_cmdtable.c
+++ b/tools/xl/xl_cmdtable.c
@@ -198,12 +198,12 @@ const struct cmd_spec cmd_table[] = {
       "Suspend a domain to RAM",
       "<Domain>",
     },
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
     { "resume",
       &main_resume, 0, 1,
       "Resume a domain from RAM",
       "<Domain>",
     },
-#endif
     { "dump-core",
       &main_dump_core, 0, 1,
       "Core dump a domain",
@@ -548,7 +548,7 @@ const struct cmd_spec cmd_table[] = {
       "                        checkpoint must be disabled.\n"
       "-p                      Use COLO userspace proxy."
     },
-#endif
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
     { "devd",
       &main_devd, 0, 1,
       "Daemon that listens for devices and launches backends",
diff --git a/tools/xl/xl_migrate.c b/tools/xl/xl_migrate.c
index b8594f44a5..4b4a379aa1 100644
--- a/tools/xl/xl_migrate.c
+++ b/tools/xl/xl_migrate.c
@@ -767,7 +767,7 @@ int main_remus(int argc, char **argv)
     close(send_fd);
     return EXIT_FAILURE;
 }
-#endif
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
 
 
 /*
diff --git a/tools/xl/xl_saverestore.c b/tools/xl/xl_saverestore.c
index 953d791d1a..747094ec7b 100644
--- a/tools/xl/xl_saverestore.c
+++ b/tools/xl/xl_saverestore.c
@@ -270,7 +270,7 @@ int main_save(int argc, char **argv)
     return EXIT_SUCCESS;
 }
 
-#endif /* LIBXL_HAVE_NO_SUSPEND_RESUME */
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
 
 
 
diff --git a/tools/xl/xl_vmcontrol.c b/tools/xl/xl_vmcontrol.c
index c813732838..93766f631b 100644
--- a/tools/xl/xl_vmcontrol.c
+++ b/tools/xl/xl_vmcontrol.c
@@ -38,11 +38,6 @@ static void suspend_domain(uint32_t domid)
     libxl_domain_suspend_only(ctx, domid, NULL);
 }
 
-static void resume_domain(uint32_t domid)
-{
-    libxl_domain_resume(ctx, domid, 1, NULL);
-}
-
 int main_suspend(int argc, char **argv)
 {
     int opt;
@@ -55,6 +50,12 @@ int main_suspend(int argc, char **argv)
 
     return EXIT_SUCCESS;
 }
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
+
+static void resume_domain(uint32_t domid)
+{
+    libxl_domain_resume(ctx, domid, 1, NULL);
+}
 
 int main_resume(int argc, char **argv)
 {
@@ -68,7 +69,6 @@ int main_resume(int argc, char **argv)
 
     return EXIT_SUCCESS;
 }
-#endif
 
 static void pause_domain(uint32_t domid)
 {
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 14:54:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 14:54:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099032.1452952 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ure1A-00077v-Rd; Thu, 28 Aug 2025 14:54:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099032.1452952; Thu, 28 Aug 2025 14: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 1ure1A-00077C-MI; Thu, 28 Aug 2025 14:54:24 +0000
Received: by outflank-mailman (input) for mailman id 1099032;
 Thu, 28 Aug 2025 14:54:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Mimg=3I=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1ure18-00074Y-V8
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 14:54:23 +0000
Received: from mail-lf1-x129.google.com (mail-lf1-x129.google.com
 [2a00:1450:4864:20::129])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e0ef5779-841e-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 16:54:20 +0200 (CEST)
Received: by mail-lf1-x129.google.com with SMTP id
 2adb3069b0e04-55f53efe803so1299038e87.2
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 07:54:20 -0700 (PDT)
Received: from yp-VivoBook-ASUSLaptop-M1503QA-M1503QA.. ([95.67.15.120])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-55f42101509sm2635661e87.106.2025.08.28.07.54.18
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 28 Aug 2025 07:54: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>
X-Inumbo-ID: e0ef5779-841e-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756392860; x=1756997660; 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=S4lER6DNHsySwTielX62U8g1kuJabDKfu70gF2FH154=;
        b=QxshJCM6sEhi2A17ECx8ZlkdQeqoV/P2rR5vhvimhvfvozs5lSIsUh2v9ea/MsBUb4
         pCZw3PVJch27ZdZ0y6EEImz0CFbgrNLxBQr+ByXCUDbte+T5TA1qyl0pps1YWe+8SQOZ
         2BPL2lvYD63sP2poooEkozLdfhG2KCGxiugRBaZryqWdH9Cm7j2Ue2o8sN0Fld7qA7qp
         WHGKCg3H0AGxUdrccjmtSXB9qtjbGRVNs79gIe1VKPyGR3LZf7gf5/NbWz11lzSP4ygm
         GVM5PPYReoaxlFtFtiRrNYh/KsZCB/EixHvwxqZj2hnqgI5xZ8TX5knBzQ6c8oZOj53V
         GvBw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756392860; x=1756997660;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=S4lER6DNHsySwTielX62U8g1kuJabDKfu70gF2FH154=;
        b=LQcq+hiICcIC6xkHJEV3D/cuRdEAL28TmOZb1MwIxswEJ6wdhk66wXXvfiyp5n3aBX
         K8vP6bIelRgL/rS3PO895mtt8nDLIKmyg5q2FA7DW9hEomOa9fdUviVkXOY70zRQvHEH
         bbfKkqORa80Me7MYmTKiuRdwRwIHkyGQEXZCgJI8JnulLAt3jTWGbxkTbL1nmZHO2hM6
         SibLGSfuOcN2iYz1hHnmi3Tqcp/D8WALvJR4FarIis1XL5kYbOB7CHLMTfa8+ZPfAPBg
         inOJhWiM7EZbwWHxmMOzyAbvMxonFJdXBOIbiGfWAgxikJQiuJ2Vbw1qQbxsr98xvwEN
         A7Vg==
X-Gm-Message-State: AOJu0YwBjWFgtk6oV+PSDhUZ1gcCM0cEwtQRgulLH2pVjHl8fRvRK31N
	XI7Ypmo8oH/iOxAsjaQBAcCAXrDILuwgq7EhdifO07pzGshZfXEoxtk3nrvIoA==
X-Gm-Gg: ASbGncuCG0Pl/zcPzy+ZfPIcz1uvP2XjrrHBkBdTL94pz4US9gp9ofHS4+cjhUaFvIM
	rI2UV22wfQ3XpxS2JmwB232CSr4fS02+VGRDBvfJ41h0uSXSU+pTdk1XPBX1Ytkrw6cGdUjH2rh
	Juv7Xp9EkKJz5NZLFj/BjkU1ilViyXs8mm4n63LlNxTxstWwRrTThH4ujjPshY78pyso2S0/GlV
	nzgf3NLYLDJmQgn6tO0fiTMcBndQDe/yunqMszYCPCzEcPfuRhfw3jqfHHZfCM4EEcKXjXKzHfQ
	vrDnRK77NyvQGUGe6RZ0LhzHqqu3kLNJBjBT0obzaDWSVSzaySZ8RelvsAVovjH0offt2HQZwOs
	zrG1LDHOw2Gu+8oojQ1SmbS+kMyXv40NKQzIqe+wJF1vp6IV8IPx9vpRQLLCbjOEcFGdJcxox
X-Google-Smtp-Source: AGHT+IHtUeIVd/8Nbo5GH96HIPV40RpO2yd2qVsB7lrX/xGBFur/Av92L5jW1fRdTQ/fydSa8/ibPA==
X-Received: by 2002:a05:6512:3d87:b0:55f:3d7c:387b with SMTP id 2adb3069b0e04-55f3d7c3badmr5706905e87.12.1756392859434;
        Thu, 28 Aug 2025 07:54:19 -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>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH v11 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for guests
Date: Thu, 28 Aug 2025 17:54:04 +0300
Message-ID: <bb53d9911b00879c7b25f5258d0e3e48005671f9.1756392094.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.1756392094.git.mykola_kvach@epam.com>
References: <cover.1756392094.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

Add support for the PSCI SYSTEM_SUSPEND function in the vPSCI interface,
allowing guests to request suspend via the PSCI v1.0 SYSTEM_SUSPEND call
(both 32-bit and 64-bit variants).

Implementation details:
- Add SYSTEM_SUSPEND function IDs to PSCI definitions
- Trap and handle SYSTEM_SUSPEND in vPSCI
- Allow only non-hardware domains to invoke SYSTEM_SUSPEND; return
  PSCI_NOT_SUPPORTED for the hardware domain to avoid halting the system
  in hwdom_shutdown() via domain_shutdown
- Require all secondary VCPUs of the calling domain to be offline before
  suspend, as mandated by the PSCI specification

The arch_domain_resume() function is an architecture-specific hook that is
invoked during domain resume to perform any necessary setup or restoration
steps required by the platform.

The new vpsci_vcpu_up_prepare() helper is called on the resume path to set up
the vCPU context (such as entry point, some system regs and context ID) before
resuming a suspended guest. This keeps ARM/vPSCI-specific logic out of common
code and avoids intrusive changes to the generic resume flow.

Usage:

For Linux-based guests, suspend can be initiated with:
    echo mem > /sys/power/state
or via:
    systemctl suspend

Resuming the guest is performed from control domain using:
      xl resume <domain>

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in V11:
- introduce arch_domain_resume() and vpsci_vcpu_up_prepare(), which are now
called on the resume path to avoid extra modifications to common code.
The vCPU context is now updated during domain resume.

Changes in V10:
- small changes to the commit message reflect updates introduced in this
  version of the patch.
- Comments are improved, clarified, and expanded, especially regarding PSCI
  requirements and context handling.
- An ARM-specific helper (domain_resume_nopause_helper)
- gprintk() and PRIregister are used for logging in vPSCI code.
- An isb() is added before p2m_save_state
- The is_64bit_domain check is dropped when masking the upper part of entry
  point and cid for SMC32 SYSTEM_SUSPEND PSCI calls

Changes in V9:
- no functional changes
- cosmetic chnages after review
- enhance commit message and add extra comment to the code after review

Changes in V8:
- GIC and virtual timer context must be saved when the domain suspends
- rework locking
- minor changes after code review

Changes in V7:
- add proper locking
- minor changes after code review

Changes in V6:
- skip execution of ctxt_switch_from for vcpu that is in paused domain
- add implementation of domain_resume without domain_pause
- add helper function to determine if vcpu is suspended or not
- ignore upper 32 bits of argument values when the domain is 64-bit
  and calls the SMC32 SYSTEM_SUSPEND function
- cosmetic changes after review

Changes in V5:
- don't use standby mode, restore execution in a provided by guest point
- move checking that all CPUs, except current one, are offline to after
  pausing the vCPUs
- provide ret status from arch_domain_shutdown and handle it in
  domain_shutdown
- adjust VPSCI_NR_FUNCS to reflect the number of newly added PSCI functions

Changes in V4:
Dropped all changes related to watchdog, domain is marked as shutting
down in domain_shutdown and watchdog timeout handler won't trigger
because of it.

Previous versions included code to manage Xen watchdog timers during suspend,
but this was removed. When a guest OS starts the Xen watchdog (either via the
kernel driver or xenwatchdogd), it is responsible for managing that state
across suspend/resume. On Linux, the Xen kernel driver properly stops the
watchdog during suspend. However, when xenwatchdogd is used instead, suspend
handling is incomplete, potentially leading to watchdog-triggered resets on
resume. Xen leaves watchdog handling to the guest OS and its services.

Dropped all changes related to VCPU context, because instead domain_shutdown
is used, so we don't need any extra changes for suspending domain.

Changes in V3:
Dropped all domain flags and related code (which touched common functions like
vcpu_unblock), keeping only the necessary changes for Xen suspend/resume, i.e.
suspend/resume is now fully supported only for the hardware domain.
Proper support for domU suspend/resume will be added in a future patch.
This patch does not yet include VCPU context reset or domain context
restoration in VCPU.
---
 xen/arch/arm/domain.c                 |  22 +++++
 xen/arch/arm/include/asm/domain.h     |   6 ++
 xen/arch/arm/include/asm/perfc_defn.h |   1 +
 xen/arch/arm/include/asm/psci.h       |   2 +
 xen/arch/arm/include/asm/vpsci.h      |   5 +-
 xen/arch/arm/vpsci.c                  | 114 +++++++++++++++++++++-----
 xen/arch/ppc/stubs.c                  |   5 ++
 xen/arch/riscv/stubs.c                |   5 ++
 xen/arch/x86/domain.c                 |   5 ++
 xen/common/domain.c                   |   9 ++
 xen/include/xen/domain.h              |   2 +
 11 files changed, 156 insertions(+), 20 deletions(-)

diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index 863ae18157..6fd73eedde 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -12,6 +12,8 @@
 #include <xen/softirq.h>
 #include <xen/wait.h>
 
+#include <public/sched.h>
+
 #include <asm/arm64/sve.h>
 #include <asm/cpuerrata.h>
 #include <asm/cpufeature.h>
@@ -27,6 +29,7 @@
 #include <asm/tee/tee.h>
 #include <asm/vfp.h>
 #include <asm/vgic.h>
+#include <asm/vpsci.h>
 #include <asm/vtimer.h>
 
 #include "vpci.h"
@@ -880,6 +883,25 @@ void arch_domain_creation_finished(struct domain *d)
     p2m_domain_creation_finished(d);
 }
 
+int arch_domain_resume(struct domain *d)
+{
+    int rc;
+    typeof(d->arch.resume_ctx) *ctx = &d->arch.resume_ctx;
+
+    if ( !d->is_shutting_down || d->shutdown_code != SHUTDOWN_suspend )
+    {
+        dprintk(XENLOG_WARNING,
+                "%pd: Invalid domain state for resume: is_shutting_down=%d, shutdown_code=%d\n",
+                d, d->is_shutting_down, d->shutdown_code);
+        return -EINVAL;
+    }
+
+    rc = vpsci_vcpu_up_prepare(ctx->wake_cpu , ctx->ep, ctx->cid);
+    memset(ctx, 0, sizeof(*ctx));
+
+    return rc;
+}
+
 static int is_guest_pv32_psr(uint32_t psr)
 {
     switch (psr & PSR_MODE_MASK)
diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/domain.h
index a3487ca713..68185fc4d6 100644
--- a/xen/arch/arm/include/asm/domain.h
+++ b/xen/arch/arm/include/asm/domain.h
@@ -121,6 +121,12 @@ struct arch_domain
     void *tee;
 #endif
 
+    struct resume_info {
+        register_t ep;
+        register_t cid;
+        struct vcpu *wake_cpu;
+    } resume_ctx;
+
 }  __cacheline_aligned;
 
 struct arch_vcpu
diff --git a/xen/arch/arm/include/asm/perfc_defn.h b/xen/arch/arm/include/asm/perfc_defn.h
index effd25b69e..8dfcac7e3b 100644
--- a/xen/arch/arm/include/asm/perfc_defn.h
+++ b/xen/arch/arm/include/asm/perfc_defn.h
@@ -33,6 +33,7 @@ PERFCOUNTER(vpsci_system_reset,        "vpsci: system_reset")
 PERFCOUNTER(vpsci_cpu_suspend,         "vpsci: cpu_suspend")
 PERFCOUNTER(vpsci_cpu_affinity_info,   "vpsci: cpu_affinity_info")
 PERFCOUNTER(vpsci_features,            "vpsci: features")
+PERFCOUNTER(vpsci_system_suspend,      "vpsci: system_suspend")
 
 PERFCOUNTER(vcpu_kick,                 "vcpu: notify other vcpu")
 
diff --git a/xen/arch/arm/include/asm/psci.h b/xen/arch/arm/include/asm/psci.h
index 4780972621..48a93e6b79 100644
--- a/xen/arch/arm/include/asm/psci.h
+++ b/xen/arch/arm/include/asm/psci.h
@@ -47,10 +47,12 @@ void call_psci_system_reset(void);
 #define PSCI_0_2_FN32_SYSTEM_OFF          PSCI_0_2_FN32(8)
 #define PSCI_0_2_FN32_SYSTEM_RESET        PSCI_0_2_FN32(9)
 #define PSCI_1_0_FN32_PSCI_FEATURES       PSCI_0_2_FN32(10)
+#define PSCI_1_0_FN32_SYSTEM_SUSPEND      PSCI_0_2_FN32(14)
 
 #define PSCI_0_2_FN64_CPU_SUSPEND         PSCI_0_2_FN64(1)
 #define PSCI_0_2_FN64_CPU_ON              PSCI_0_2_FN64(3)
 #define PSCI_0_2_FN64_AFFINITY_INFO       PSCI_0_2_FN64(4)
+#define PSCI_1_0_FN64_SYSTEM_SUSPEND      PSCI_0_2_FN64(14)
 
 /* PSCI v0.2 affinity level state returned by AFFINITY_INFO */
 #define PSCI_0_2_AFFINITY_LEVEL_ON      0
diff --git a/xen/arch/arm/include/asm/vpsci.h b/xen/arch/arm/include/asm/vpsci.h
index 0cca5e6830..d790ab3715 100644
--- a/xen/arch/arm/include/asm/vpsci.h
+++ b/xen/arch/arm/include/asm/vpsci.h
@@ -23,12 +23,15 @@
 #include <asm/psci.h>
 
 /* Number of function implemented by virtual PSCI (only 0.2 or later) */
-#define VPSCI_NR_FUNCS  12
+#define VPSCI_NR_FUNCS  14
 
 /* Functions handle PSCI calls from the guests */
 bool do_vpsci_0_1_call(struct cpu_user_regs *regs, uint32_t fid);
 bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid);
 
+int vpsci_vcpu_up_prepare(struct vcpu *v, register_t entry_point,
+                          register_t context_id);
+
 #endif /* __ASM_VPSCI_H__ */
 
 /*
diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
index 7ba9ccd94b..50cf5fd96c 100644
--- a/xen/arch/arm/vpsci.c
+++ b/xen/arch/arm/vpsci.c
@@ -10,30 +10,16 @@
 
 #include <public/sched.h>
 
-static int do_common_cpu_on(register_t target_cpu, register_t entry_point,
-                            register_t context_id)
+int vpsci_vcpu_up_prepare(struct vcpu *v, register_t entry_point,
+                   register_t context_id)
 {
-    struct vcpu *v;
-    struct domain *d = current->domain;
-    struct vcpu_guest_context *ctxt;
     int rc;
+    struct domain *d = current->domain;
     bool is_thumb = entry_point & 1;
-    register_t vcpuid;
-
-    vcpuid = vaffinity_to_vcpuid(target_cpu);
-
-    if ( (v = domain_vcpu(d, vcpuid)) == NULL )
-        return PSCI_INVALID_PARAMETERS;
-
-    /* THUMB set is not allowed with 64-bit domain */
-    if ( is_64bit_domain(d) && is_thumb )
-        return PSCI_INVALID_ADDRESS;
-
-    if ( !test_bit(_VPF_down, &v->pause_flags) )
-        return PSCI_ALREADY_ON;
+    struct vcpu_guest_context *ctxt;
 
     if ( (ctxt = alloc_vcpu_guest_context()) == NULL )
-        return PSCI_DENIED;
+        return -ENOMEM;
 
     vgic_clear_pending_irqs(v);
 
@@ -76,8 +62,37 @@ static int do_common_cpu_on(register_t target_cpu, register_t entry_point,
     free_vcpu_guest_context(ctxt);
 
     if ( rc < 0 )
+        return rc;
+
+    return 0;
+}
+
+static int do_common_cpu_on(register_t target_cpu, register_t entry_point,
+                            register_t context_id)
+{
+    struct vcpu *v;
+    struct domain *d = current->domain;
+    int rc;
+    bool is_thumb = entry_point & 1;
+    register_t vcpuid;
+
+    vcpuid = vaffinity_to_vcpuid(target_cpu);
+
+    if ( (v = domain_vcpu(d, vcpuid)) == NULL )
+        return PSCI_INVALID_PARAMETERS;
+
+    /* THUMB set is not allowed with 64-bit domain */
+    if ( is_64bit_domain(d) && is_thumb )
+        return PSCI_INVALID_ADDRESS;
+
+    if ( !test_bit(_VPF_down, &v->pause_flags) )
+        return PSCI_ALREADY_ON;
+
+    rc = vpsci_vcpu_up_prepare(v, entry_point, context_id);
+    if ( rc )
         return PSCI_DENIED;
 
+    vgic_clear_pending_irqs(v);
     vcpu_wake(v);
 
     return PSCI_SUCCESS;
@@ -197,6 +212,48 @@ static void do_psci_0_2_system_reset(void)
     domain_shutdown(d,SHUTDOWN_reboot);
 }
 
+static int32_t do_psci_1_0_system_suspend(register_t epoint, register_t cid)
+{
+    int32_t rc;
+    struct vcpu *v;
+    struct domain *d = current->domain;
+    bool is_thumb = epoint & 1;
+
+    /* THUMB set is not allowed with 64-bit domain */
+    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 )
+    {
+        if ( v != current && is_vcpu_online(v) )
+        {
+            domain_unlock(d);
+            return PSCI_DENIED;
+        }
+    }
+    domain_unlock(d);
+
+    rc = domain_shutdown(d, SHUTDOWN_suspend);
+    if ( rc )
+        return PSCI_DENIED;
+
+    d->arch.resume_ctx.ep = epoint;
+    d->arch.resume_ctx.cid = cid;
+    d->arch.resume_ctx.wake_cpu = current;
+
+    gprintk(XENLOG_DEBUG,
+            "SYSTEM_SUSPEND requested, epoint=0x%"PRIregister", cid=0x%"PRIregister,
+            epoint, cid);
+
+    return rc;
+}
+
 static int32_t do_psci_1_0_features(uint32_t psci_func_id)
 {
     /* /!\ Ordered by function ID and not name */
@@ -214,6 +271,8 @@ static int32_t do_psci_1_0_features(uint32_t psci_func_id)
     case PSCI_0_2_FN32_SYSTEM_OFF:
     case PSCI_0_2_FN32_SYSTEM_RESET:
     case PSCI_1_0_FN32_PSCI_FEATURES:
+    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
+    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
     case ARM_SMCCC_VERSION_FID:
         return 0;
     default:
@@ -344,6 +403,23 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid)
         return true;
     }
 
+    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
+    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
+    {
+        register_t epoint = PSCI_ARG(regs, 1);
+        register_t cid = PSCI_ARG(regs, 2);
+
+        if ( fid == PSCI_1_0_FN32_SYSTEM_SUSPEND )
+        {
+            epoint &= GENMASK(31, 0);
+            cid &= GENMASK(31, 0);
+        }
+
+        perfc_incr(vpsci_system_suspend);
+        PSCI_SET_RESULT(regs, do_psci_1_0_system_suspend(epoint, cid));
+        return true;
+    }
+
     default:
         return false;
     }
diff --git a/xen/arch/ppc/stubs.c b/xen/arch/ppc/stubs.c
index bdaf474c5c..0db0627b5c 100644
--- a/xen/arch/ppc/stubs.c
+++ b/xen/arch/ppc/stubs.c
@@ -224,6 +224,11 @@ void arch_domain_creation_finished(struct domain *d)
     BUG_ON("unimplemented");
 }
 
+int arch_domain_resume(struct domain *d)
+{
+    return 0;
+}
+
 int arch_set_info_guest(struct vcpu *v, vcpu_guest_context_u c)
 {
     BUG_ON("unimplemented");
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index 1a8c86cd8d..52532ae14d 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -198,6 +198,11 @@ void arch_domain_creation_finished(struct domain *d)
     BUG_ON("unimplemented");
 }
 
+int arch_domain_resume(struct domain *d)
+{
+    return 0;
+}
+
 int arch_set_info_guest(struct vcpu *v, vcpu_guest_context_u c)
 {
     BUG_ON("unimplemented");
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 19fd86ce88..94a06bc697 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -1138,6 +1138,11 @@ void arch_domain_creation_finished(struct domain *d)
         hvm_domain_creation_finished(d);
 }
 
+int arch_domain_resume(struct domain *d)
+{
+    return 0;
+}
+
 #ifdef CONFIG_COMPAT
 #define xen_vcpu_guest_context vcpu_guest_context
 #define fpu_ctxt fpu_ctxt.x
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 104e917f07..d73a88ced5 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -1352,6 +1352,7 @@ int domain_shutdown(struct domain *d, u8 reason)
 void domain_resume(struct domain *d)
 {
     struct vcpu *v;
+    int rc;
 
     /*
      * Some code paths assume that shutdown status does not get reset under
@@ -1359,6 +1360,14 @@ void domain_resume(struct domain *d)
      */
     domain_pause(d);
 
+    rc = arch_domain_resume(d);
+    if ( rc )
+    {
+        domain_unpause(d);
+        printk("%pd: Failed to resume domain (ret %d)\n", d, rc);
+        return;
+    }
+
     spin_lock(&d->shutdown_lock);
 
     d->is_shutting_down = d->is_shut_down = 0;
diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
index e10baf2615..5f77ffadf1 100644
--- a/xen/include/xen/domain.h
+++ b/xen/include/xen/domain.h
@@ -109,6 +109,8 @@ int arch_domain_soft_reset(struct domain *d);
 
 void arch_domain_creation_finished(struct domain *d);
 
+int arch_domain_resume(struct domain *d);
+
 void arch_p2m_set_access_required(struct domain *d, bool access_required);
 
 int arch_set_info_guest(struct vcpu *v, vcpu_guest_context_u c);
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 14:54:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 14:54:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099031.1452948 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ure1A-00075W-Hz; Thu, 28 Aug 2025 14:54:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099031.1452948; Thu, 28 Aug 2025 14: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 1ure1A-00075P-Et; Thu, 28 Aug 2025 14:54:24 +0000
Received: by outflank-mailman (input) for mailman id 1099031;
 Thu, 28 Aug 2025 14:54:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Mimg=3I=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1ure18-0006qt-SH
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 14:54:22 +0000
Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com
 [2a00:1450:4864:20::12a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e1fc3c3f-841e-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 16:54:22 +0200 (CEST)
Received: by mail-lf1-x12a.google.com with SMTP id
 2adb3069b0e04-55f39c0a22dso1183868e87.1
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 07:54:22 -0700 (PDT)
Received: from yp-VivoBook-ASUSLaptop-M1503QA-M1503QA.. ([95.67.15.120])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-55f42101509sm2635661e87.106.2025.08.28.07.54.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 28 Aug 2025 07: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>
X-Inumbo-ID: e1fc3c3f-841e-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756392862; x=1756997662; 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=Xe9xi3DaBptNnLW1VEAJiUhAp27nm19FtXNKIdaX+1M=;
        b=anHfLvhzUkFp3Cyr9/EWhwPzi65yWCNhY/jcHNq8MRsY9Ae5kaD0L4oUaOBa3jX7vU
         IQTqbF/80Pu632oirdHBje2301NF9cxipf5MV/pZFWjnb6RRPL5QVvdg/Vn5BupiU1HG
         zEznJjw5HyVC5OSZm1gzgiLo1XdfTMiJWs7V1Sw0LDaHE5NIBhiofE5k2zs4d0jWKJ8X
         +/g2PcUFrTbnKkpbj3pU1VeKtrLD4pW9SeoCpnsQXNF8hkLTEBxJP7gUrBb6B2MBcOsB
         kis/e6IRK2R7/Hg4B4JDaZ5w/QG/WqZkDyasgQhg9La2PBWUAKBSiEZR8a72vmmmmDq4
         wf/w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756392862; x=1756997662;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=Xe9xi3DaBptNnLW1VEAJiUhAp27nm19FtXNKIdaX+1M=;
        b=W1zU+C1rtP8W4h3cO+D1vYNsmMeh0uyFnaV55aVWn2SOiuyYcnx0MnbbicExaTQ34z
         rlPD+WwN6X9fwLtYzotsOsFO9ZeMZhhRJYc8ygfjn/fe2EQT42YQ9/tR8cox3lZknuwt
         uJMzoOZBPakVx/AzsuooOttHbcAeYlbuBWn41ouyydiR2+i/qMosauF66coHumzNzoSZ
         avpWWBxAnsUEU6YnBfsGIqVEEqVoIBgOLd25c93Jqgg40ml6Y3g0dpyxwIdD3djk5au/
         XEJGQ9CG3D3IiDAMeBpW2GMqswwc0Bb0RXauFEhH6dzGogyfHM1GTUtCJrnK+AETxohc
         SNww==
X-Gm-Message-State: AOJu0Yzqa+CKhIDiextRmfKRB1OegZAAMiiDNP7TSCCvzMs2yiZmeGYe
	sckLDhEanqHnCZLZISlqrEFPOVZVW5yg5IWA1p/j4FUEoiEgCJzWDw3MNiAc1w==
X-Gm-Gg: ASbGnctbXsS9V+P4qM5nVkIaHTSMkMoiFV53KuLCuFWbG4jM5yFTdKsTOTsfaaacgzL
	RPNNihcKPCAwHuPosEANWnbo0zvhUmr9EwFfFsGKm8JTEt4s8pTitHNC9yE4iLrWecwRM1wLRAK
	tsPpwtpnlosXnUQ9vau0cHrfF6RqtQrm9UgRL1gDfysnVC1T7UA7hJ/XOp2mQ/PUKdHHA8Xj5SA
	6je3ivx9DjTHW9UDC1xlUR1aCYgm8jkYglD228JU8t7Wo4oZXy1nheMUcXymSs9HIomYUu6vLJv
	NKo9cwwLqvnuvn233fvgRWDBimsnQ22zqHuVC2jAcFU++pfSPRBnyCXKqEqpo2QaEMTEmaT3RDU
	PhOOkqmzOpg0BHKP0mU0c1S31RntLD4C96mysNvE68a9z8N5wqlB/aKOLe4ZX0Q==
X-Google-Smtp-Source: AGHT+IGVn3t8FI8KDXGmDy918ObNgpZToIWSeInq3sskv+8OmyDF6huIydUyHV112csuE+SHQHdo6w==
X-Received: by 2002:ac2:4c53:0:b0:55f:595f:9a37 with SMTP id 2adb3069b0e04-55f595f9c84mr1409346e87.27.1756392861379;
        Thu, 28 Aug 2025 07:54:21 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v11 3/4] SUPPORT.md: Document PSCI SYSTEM_SUSPEND support for guests
Date: Thu, 28 Aug 2025 17:54:06 +0300
Message-ID: <9173ec351b88ad04e6ea13053dd785eb7f0e9b53.1756392094.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.1756392094.git.mykola_kvach@epam.com>
References: <cover.1756392094.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

Add a new entry under the "Virtual Hardware, QEMU" section documenting
support for the optional PSCI SYSTEM_SUSPEND function exposed to guests.

This function is available via the virtual PSCI (vPSCI) interface and
allows guest domains (domUs) to initiate system suspend operations.

The feature is currently marked as "Tech Preview".

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in V10:
- Status of vPSCI SYSTEM_SUSPEND changed from "Experimental" to
  "Tech Preview"

Changes in v6:
- Dropped the generic guest PSCI support entry (merged in a separate patch)
- This patch now documents only the SYSTEM_SUSPEND optional function
- Reworded commit message to match the final form after rebase

Changes in v5:
- Dropped ARM/PSCI entry: this refers to internal use of PSCI SMC calls,
  which is not relevant for SUPPORT.md
- Added a dedicated entry for PSCI SYSTEM_SUSPEND instead of generic guest
  PSCI info; guest PSCI support was documented in a separate patch
---
 SUPPORT.md | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/SUPPORT.md b/SUPPORT.md
index 6a82a92189..0ce0903cb1 100644
--- a/SUPPORT.md
+++ b/SUPPORT.md
@@ -962,8 +962,9 @@ Emulated PSCI interface exposed to guests. We support all mandatory
 functions of PSCI 1.1. See below for the list of optional PSCI call
 implemented and their status.
 
-   Status, Mandatory: Supported
-   Status, MIGRATE_INFO_TYPE: Supported
+    Status, Mandatory: Supported
+    Status, MIGRATE_INFO_TYPE: Supported
+    Status, SYSTEM_SUSPEND: Tech Preview
 
 ## Virtual Hardware, QEMU
 
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 14:54:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 14:54:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099030.1452938 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ure17-0006r6-Az; Thu, 28 Aug 2025 14:54:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099030.1452938; Thu, 28 Aug 2025 14:54: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 1ure17-0006qz-83; Thu, 28 Aug 2025 14:54:21 +0000
Received: by outflank-mailman (input) for mailman id 1099030;
 Thu, 28 Aug 2025 14:54:20 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Mimg=3I=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1ure16-0006qt-7d
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 14:54:20 +0000
Received: from mail-lj1-x233.google.com (mail-lj1-x233.google.com
 [2a00:1450:4864:20::233])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e00b63bb-841e-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 16:54:19 +0200 (CEST)
Received: by mail-lj1-x233.google.com with SMTP id
 38308e7fff4ca-3366f102680so8633431fa.3
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 07:54:19 -0700 (PDT)
Received: from yp-VivoBook-ASUSLaptop-M1503QA-M1503QA.. ([95.67.15.120])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-55f42101509sm2635661e87.106.2025.08.28.07.54.16
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 28 Aug 2025 07:54: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>
X-Inumbo-ID: e00b63bb-841e-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756392858; x=1756997658; 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=NR6yXtdSNOXfRuoowRl1lmRlIoUAXhFkxOLUpv1u/tQ=;
        b=Fq4UXxwUOgkK+IkSMpj0AcQdWRGLr+Y3mUUGlqSDv1up2oleoCsZUsNPlrvmFd5hoD
         lIYY0xgdl/iSNTMIb+IHCBJ1GO5FgAv/wfw8Cp3Zn3ryH1yFq/ea/gTqhNd2D7NZzu7h
         ggH4UrNdkT0EdH7J12Mq4p3TpJCVX1R6Reso9gDC0XsO3YdG8bGHgvm83TKXWw2AgB/e
         3WybJPYKpHQ0M/o85sDkZdugKOQBTl8VtNkdBrSoArfmIvcJpEqGev43iezt49w2035e
         glg7rlyhMHIi3yzI82xRpFbyS7qobXNBu/Xa6GrHZfrqrk/KAyDvlfWTUd0Ek6JWa5Hd
         6rXQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756392858; x=1756997658;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=NR6yXtdSNOXfRuoowRl1lmRlIoUAXhFkxOLUpv1u/tQ=;
        b=m1udT6cjG/Zc94kA98Udn9xzHR3pB93KhqZsvkc0y83eZ21MktndfA9BEfolXwg5LS
         kI0LwL0m3G42C2MvcMRUHxUxtDQKnHur1hS3R95s6rp4p4+dsNW+NugxAxFD6+f0jkw0
         R0wv7u/i2+4l45Ax1EVEHOtPxl2x4h7yk50yfjUgoU6u1Uo5p6W1Hi9sALLVjYZn3wbb
         1rUL39UqGgFn4knL5meriWXRe7C2BX4XkImJXgPl0zryDZj4jy4X5MNUFWFUxBNIZxuc
         eTrf+x4UTMP90cY61aCc0MEJQDliKOH5mxWJT7/59K8VY5On90VuaFMYVal64QNdlk4g
         YRbw==
X-Gm-Message-State: AOJu0YzzEI+AK7pe7EbC7Eu7sSri6wk7tDmGVbr8/p2+rx/OUhMbTwNF
	9gFYz+5cBgt4n1EtyjJrLC6sD9yuv1JDZeIGkQJosRgClmo19GaGTbAXaM3bVQ==
X-Gm-Gg: ASbGncvRNboFjihhSUtrk6pzO4NcKznb65tiG+fTYRHYQcU3A3zO56VvLGpAv9BqgvF
	+RKk4ZAZnLbfPDDPHcoUksGJWBOwwkWBOhfi8P/7tqixR1o0giYFRm2FVHgKG+wTz7mXsExrKdA
	dGa4VklSk7X3nOfLI/pLv9yLWIAoWumu/U+lbNkRatdHGGWDEk79Nw2tvgVemgeWZQdCCw3lPXZ
	Q1tLaSq2OocEDVxif3L+ceP0OwOWI7hL+w9ptiwBcS2o/Q8m/2sILE3ORWpAXaAbPO3FpH468UF
	kdbuJ1udSKev7bjsJ6GiEQAfyZiaEZUsx2hWMWKXpM20xhZ3iscWFHo6mpP6D8oowxYekTR7rBQ
	Q7pBWnc4bk+vjhyICHYejAzXkVymt7SxEsf56GFRKUHB4xSMB8MAxdHfpMRUzfUsNTNIKROp3
X-Google-Smtp-Source: AGHT+IHJS2p+0ZjSH2rIBbIBZThwx6bQoH9lf8LKcqGXG0Nk0pkAOQZrm3tvWojiQkTj9fR7to0u5Q==
X-Received: by 2002:a05:651c:1505:b0:336:91c7:535d with SMTP id 38308e7fff4ca-33691c78ea0mr18375571fa.45.1756392858014;
        Thu, 28 Aug 2025 07:54:18 -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>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Juergen Gross <jgross@suse.com>,
	Community Manager <community.manager@xenproject.org>
Subject: [PATCH v11 0/4] Enable guest suspend/resume support on ARM via vPSCI
Date: Thu, 28 Aug 2025 17:54:03 +0300
Message-ID: <cover.1756392094.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.48.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

This patch series introduces the initial support for guest suspend
and resume on ARM platforms using the PSCI SYSTEM_SUSPEND interface. The main
goal is to allow ARM guests to request suspension using PSCI and be resumed
by the control domain (e.g., via "xl resume").

### Background

The PSCI SYSTEM_SUSPEND call is part of the PSCI v1.0+ specification and is
used by guests to enter the deepest possible power state. On Xen/ARM, we
emulate this interface in the virtual PSCI (vPSCI) layer for guests.

This series includes:

1. A new vPSCI implementation of the PSCI SYSTEM_SUSPEND function for guests
2. Documentation updates to SUPPORT.md to reflect PSCI and vPSCI support status
3. Enabling "xl resume" command compilation for ARM, which was previously disabled

### Usage

For Linux-based guests:
  - Suspend can be triggered using: "echo mem > /sys/power/state" or "systemctl suspend"
  - Resume can be performed from control domain using: "xl resume <domain>"

For more information, refer to the official Linux kernel documentation on power management.

Note that currently, SYSTEM_SUSPEND is supported only for guest domains (not for
the hardware domain).
---

This is the first part of previous patch series and originally consist only
with necessary changes needed for guest domain suspend.

The second part can be found here:
    https://patchew.org/Xen/cover.1754943874.git.mykola._5Fkvach@epam.com/

Changes in V11:
- introduce arch_domain_resume() and vpsci_vcpu_up_prepare(), which are now
called on the resume path to avoid extra modifications to common code.
The vCPU context is now updated during domain resume.

Changes in V10:
- An ARM-specific helper (domain_resume_nopause_helper)
- An isb() is added before p2m_save_state
- The is_64bit_domain check is dropped when masking the upper part of entry
  point and cid for SMC32 SYSTEM_SUSPEND PSCI calls
- Status of vPSCI SYSTEM_SUSPEND changed from "Experimental" to "Tech Preview"

Changes in V9:
- no functional changes
- enhance commit message and add extra comment to the code after review

Changes in V8:
- GIC and virtual timer context saved when the domain suspends
- rework locking
- minor changes after code review

Changes in V7:
- add proper locking
- minor changes after code review

Main changes in V6:
- Skip execution of ctxt_switch_from for VCPUs in paused domains.
- Implement domain_resume_nopause
- Add a helper to determine if a VCPU is in suspended domain.
- Ignore upper 32 bits of arguments for 64-bit domains calling SMC32 SYSTEM_SUSPEND.
- Macro renamed from LIBXL_HAVE_NO_SUSPEND_RESUME to LIBXL_HAVE_NO_SUSPEND for clarity.
- Documentation now focuses only on the SYSTEM_SUSPEND function, with improved wording and structure.
- Changelog and commit messages refined for clarity and to remove redundant explanations.

Main change in V5:
  - Reverted the logic related to suspending domains. Instead of the standby
    mode introduced in v4, domains now resume execution at the point provided
    during suspend

The rest of the minor changes are described in the changelog of each commit.

Previous versions of this patch series:
  V1: https://lists.xenproject.org/archives/html/xen-devel/2018-11/msg01093.html
  V2: https://marc.info/?l=xen-devel&m=166514782207736&w=2
  V3: https://lists.xenproject.org/archives/html/xen-devel/2025-03/msg00168.html

Mykola Kvach (4):
  xen/arm: Implement PSCI SYSTEM_SUSPEND call for guests
  tools/xl: Allow compilation of 'xl resume' command on Arm
  SUPPORT.md: Document PSCI SYSTEM_SUSPEND support for guests
  CHANGELOG: Document guest suspend/resume to RAM support on Arm

 CHANGELOG.md                          |   2 +
 SUPPORT.md                            |   5 +-
 tools/include/libxl.h                 |   1 -
 tools/xl/xl.h                         |   4 +-
 tools/xl/xl_cmdtable.c                |   4 +-
 tools/xl/xl_migrate.c                 |   2 +-
 tools/xl/xl_saverestore.c             |   2 +-
 tools/xl/xl_vmcontrol.c               |  12 +--
 xen/arch/arm/domain.c                 |  22 +++++
 xen/arch/arm/include/asm/domain.h     |   6 ++
 xen/arch/arm/include/asm/perfc_defn.h |   1 +
 xen/arch/arm/include/asm/psci.h       |   2 +
 xen/arch/arm/include/asm/vpsci.h      |   5 +-
 xen/arch/arm/vpsci.c                  | 114 +++++++++++++++++++++-----
 xen/arch/ppc/stubs.c                  |   5 ++
 xen/arch/riscv/stubs.c                |   5 ++
 xen/arch/x86/domain.c                 |   5 ++
 xen/common/domain.c                   |   9 ++
 xen/include/xen/domain.h              |   2 +
 19 files changed, 173 insertions(+), 35 deletions(-)

-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 14:54:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 14:54:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099034.1452977 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ure1C-0007nI-MR; Thu, 28 Aug 2025 14:54:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099034.1452977; Thu, 28 Aug 2025 14:54: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 1ure1C-0007mi-J9; Thu, 28 Aug 2025 14:54:26 +0000
Received: by outflank-mailman (input) for mailman id 1099034;
 Thu, 28 Aug 2025 14:54:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Mimg=3I=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1ure1B-00074Y-Bu
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 14:54:25 +0000
Received: from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com
 [2a00:1450:4864:20::12e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e2b3d3d1-841e-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 16:54:23 +0200 (CEST)
Received: by mail-lf1-x12e.google.com with SMTP id
 2adb3069b0e04-55f42e4c3ebso1107934e87.3
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 07:54:23 -0700 (PDT)
Received: from yp-VivoBook-ASUSLaptop-M1503QA-M1503QA.. ([95.67.15.120])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-55f42101509sm2635661e87.106.2025.08.28.07.54.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 28 Aug 2025 07:54:21 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e2b3d3d1-841e-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756392863; x=1756997663; 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=hngrpYued6VRjNdXSCXsejFnZ9+NvVTFmNBYrfCV2Ms=;
        b=ceYJLsAzje1QUHsMJBeLXUVxlnPLL2nAjl9WRViQIiT0J0ARGHuObrtoM7kPVJ1+9+
         j+4agPiW/xrRrOh27GF9mDN9OFnauv/Qztc1Mxc1or8aksPABAz3w4uAh/5dp8iUSXgG
         fumj72DjkiXxJu3Ns5L4fmRRXSuwhwUA6IykIFicvdYfoxnbueSr7MkPnr1IZ+kBZo9u
         fKTocmjXcHW3sp/21sPe4XKxG3IobJs0zLfr1MQtRI0gWDGVtPjB6RfQOSpsd7gU0ZT8
         WNkbARGcIfGK1ToBt4xJYuQcGV3vxGQZmKuVxvTwN6zo/5ErfHIYSIm95X2xiP7O55On
         wxOg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756392863; x=1756997663;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=hngrpYued6VRjNdXSCXsejFnZ9+NvVTFmNBYrfCV2Ms=;
        b=V/RY2uQQzo4tBpmZVz8PPJeew0EjDMJLXz+g/1rY8MgOTlO3DM0aCbo7wuNTsz/EpP
         3rfh+OpQehHvwZlOrVhDmlrLJL3ezC1Y3ezLZlpvQj7l2gHFvQ7kkietVccSo+z1StRt
         LEritl385qeiFVLc1vfYees+dvFM3AtAOzN0USL+APDEuv5HeT11x4eQV8rLxpCjJurR
         ArWK3VGLVz28dKC+1HyoXEJgLbom6C1kZH8v2TDikpGf28qr2mv5kItQi1AVwtTYqSXV
         cPV4Xv0dMHVy9FCHFeXEx/KfxnKN/dO0z5Zxbp0GD+Yk8f9tW/zI26VGhbZafc3xYZsK
         PaKg==
X-Gm-Message-State: AOJu0YxkxpWVi0Ev57fYKWQ8PsH+hWRMjtZ0Z+BXEEKVfwpIVXmLEKJR
	Yd2Eg0RT4DqwJKjHJTG5dBw8UfUcXUzcfW+sKtfdQhvop/m2EgazCmhkZ4bjbg==
X-Gm-Gg: ASbGncuabFKOajMQEbSbGcYU+h8yoX8UKaJ19KjhtrvpWJ0YIWtqwSjvQs5FablphIM
	UCE6qCLE9No8OmIVSd+/kjX6xfxhcElF5DcKVfz/ueQZc0L6Zn4F7FpHw1wBNmoc+lZNQwbNN9K
	1ZeuUxIZLIvf7XOdQ70SLZq++a7mcaet26Kpin08ox4X3gnQ4dZPbF2+awmmjrfwe0CG0kgeiKp
	yj24kyJ33I4cYbnorVT3BhcAum5B3KF22mTxXpQv5yhoD+pb0P1RBc+rtbJm/A/HNj3Rrww8y95
	Fh8mY5Ph34CjSrwGnogD+wf2IZ5Er230N1NLA+uZd0JTgtbOEiYRbx/t/PfRGER5/J3iMyuykMl
	I3R2nbbhEojp34j6AL3MOrk7EDofgsP2ky3cXCrvB++SLtUoGSpgQDS1EJx02sBSUwmiC3YbG
X-Google-Smtp-Source: AGHT+IF1HeaKj2cz2cnnr0EE+aGs2CLKOQzVrtI+RGDtiy5IgEELvtKlOaKXC3CZjCTvrGIn+BQwWQ==
X-Received: by 2002:a05:6512:3181:b0:553:2c58:f96f with SMTP id 2adb3069b0e04-55f0c6a0f73mr6639899e87.1.1756392862710;
        Thu, 28 Aug 2025 07:54:22 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Community Manager <community.manager@xenproject.org>
Subject: [PATCH v11 4/4] CHANGELOG: Document guest suspend/resume to RAM support on Arm
Date: Thu, 28 Aug 2025 17:54:07 +0300
Message-ID: <6fa6038c90109a2e9990a691fbcf2aceb5aa9694.1756392094.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.1756392094.git.mykola_kvach@epam.com>
References: <cover.1756392094.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

Mention the newly added support for guest suspend and resume to/from
RAM via vPSCI on Arm platforms.

This support is limited to non-hardware domain guests.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Chnages in v6:
- removed reduntand explanation that thi support added for
  both arm32 and arm64.

Changes in v5:
- adjustments to the commit title and message
- expanded the changelog entry to include more context about
  suspend/resume support introduced in this patch series
---
 CHANGELOG.md | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index cd34ea87b8..7a75bd37cb 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -36,6 +36,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
 
  - On Arm:
     - Ability to enable stack protector
+    - Support for guest suspend and resume to/from RAM via vPSCI.
+      Applies only to non-hardware domain guests.
 
 ### Removed
  - On x86:
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 15:01:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 15:01:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099075.1453004 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ure7a-0002FM-HY; Thu, 28 Aug 2025 15:01:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099075.1453004; Thu, 28 Aug 2025 15:01: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 1ure7a-0002FF-Es; Thu, 28 Aug 2025 15:01:02 +0000
Received: by outflank-mailman (input) for mailman id 1099075;
 Thu, 28 Aug 2025 15:01:01 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=AInb=3I=nvidia.com=jgg@srs-se1.protection.inumbo.net>)
 id 1ure7Z-0002F9-Ex
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 15:01:01 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on2062b.outbound.protection.outlook.com
 [2a01:111:f403:2414::62b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cdd7a201-841f-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 17:00:59 +0200 (CEST)
Received: from CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13)
 by CH2PR12MB4312.namprd12.prod.outlook.com (2603:10b6:610:af::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.16; Thu, 28 Aug
 2025 15:00:51 +0000
Received: from CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732]) by CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732%4]) with mapi id 15.20.9073.010; Thu, 28 Aug 2025
 15:00: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>
X-Inumbo-ID: cdd7a201-841f-11f0-8dd7-1b34d833f44b
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NS6QF9PmkhPSetggaII5CehTlNqOJP7vlZ3U1FhtbEJxV7OqYGAMEImFhkSEkVt8p4tMk12Kq+qkyt9hkXaA3hNTw0Q/M8JsOk89YCE34YUJMbwpcSbThpcPNb8wLgyaPwW6ZGVpAgcGi41Oc/cey8aZQgz7mbUCOQ7tc/sczz3afaA2QRRBbuXquufQAmJf9sL/A6SD/TF4rdhqnMo48S2K6UzD9pSyjxqV2sqNVzD6z6Ip+oi/OabsECcItshuq8tNhBlbjP1tEj2lLzx0DCeMCiupm+JXR4h6uE9VaT/OtZ88vfpoUxv15tHzMBQ9qGXmW0QvuV+wNoRl6Z0AFA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=YhYgIuXMPDyneIixgb3ayDngq33diPvUwzKhingnZUs=;
 b=L6kKIA+cyA334TB+HD6KAb0poZQRgfS+mi0YyYxUih9dP8c8uDGCwry1fq5E3IAs3r0+l134PJ+M+RHZ/x8HD7Yt+f0tP6ddNZ2aQLxcz/QkPJ+dRs7igP+u5glEEt8uY2/L+weMU5UCN+OPkEvsRWXhb/OIZ9rh4KubDEOvFUoAIj1k+4YBSjFfvNJLXgwILa1QnbgC65cHcHmZFKcKirSMgnxZcz9ybBWbtd1/tFdgT4E9kgmr5rYCWQyGWRJD+FZmq1hKglllDlaj100v7wtivgG8yRUcVXZh49dztnslaMANyvHcOUx+C7KrcwIl/VaOfumTn7GnMsKKVVxsHg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com;
 dkim=pass header.d=nvidia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=YhYgIuXMPDyneIixgb3ayDngq33diPvUwzKhingnZUs=;
 b=qkezqVMzVT99jJQz5M/PGYi6BFwhFdorcFX4nk8XC3yr/uRWXxB6KzsAKoOE4GJgOzKfcnz3wm7ks69mL1QnYz6lWl6fGk2FqtTEsADsI9tDC0gBUny76ogXICGsiXeF4Tdm1k8iNvLwaRl2aSeMULoKHlkXhnk6VBhaR97BpE7FQljWxhk64RLUekpCMpzP6ZjvgbpSpgalw0RFZI6wBTTTCx+PjZqmqSes0JXPnN1R2rSbS3YoHbeswtL/3eG9cxNd9xQuVrhnMh5RRJFdZ2GqU0Yv5DWHI9tL0Sthc9UIMXJDdQlqYhdwIx2MHfr5sv+sg5Unmy4c+jKesWCk7g==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=nvidia.com;
Date: Thu, 28 Aug 2025 12:00:49 -0300
From: Jason Gunthorpe <jgg@nvidia.com>
To: Leon Romanovsky <leon@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Leon Romanovsky <leonro@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 08/16] kmsan: convert kmsan_handle_dma to use physical
 addresses
Message-ID: <20250828150049.GG9469@nvidia.com>
References: <cover.1755624249.git.leon@kernel.org>
 <f52ab055c9ffa4da854afe47232c7d06d109d8ce.1755624249.git.leon@kernel.org>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <f52ab055c9ffa4da854afe47232c7d06d109d8ce.1755624249.git.leon@kernel.org>
X-ClientProxiedBy: YT3PR01CA0138.CANPRD01.PROD.OUTLOOK.COM
 (2603:10b6:b01:83::25) To CH3PR12MB8659.namprd12.prod.outlook.com
 (2603:10b6:610:17c::13)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PR12MB8659:EE_|CH2PR12MB4312:EE_
X-MS-Office365-Filtering-Correlation-Id: cd324a99-7b50-48f0-b0b3-08dde643ad87
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?F3t8pjxGuYiqQXVRHHoABfhe3+nJCLYfL6dfMX6OVHmrSntXdCx5WtVVMFHz?=
 =?us-ascii?Q?yIevAB0p9919JudsrpMU6LZXPwxOeB9F3UoThU3jOmE7GG9uxOE5qnMerxlg?=
 =?us-ascii?Q?AN/UIs/2Eg+OivcbbHEpPHCi39auQu/YZ8nvFxeTPjZk3Ada64JLqqgnkSht?=
 =?us-ascii?Q?543bGq64xQ4iKEYNxa2ok61AsVkpvnT+Uw7NMsRGYJRPYMAsP5PBjypPdUBf?=
 =?us-ascii?Q?81RH4ul4DOiq5i+njO8K39Sfezmnlh6jHSbM73vKdx78Kp2e/lXKQOCqkfKk?=
 =?us-ascii?Q?GqW+8ek12Sua17KiSbBLTYD6OHXBdB/KEbLwIUYy46n4iVYEXrek8Peoq5/7?=
 =?us-ascii?Q?K+OpIeuHCsarMY09f/7Ske6UqL3X2966rZkUOyW8bBJeXZF/5QntDeEXO5H4?=
 =?us-ascii?Q?XSu/AU+Smc0Gu9vuwbA7xN8mb7/fUJw4zfSDUaI1WXJhnh4aqcraj1hcO4O+?=
 =?us-ascii?Q?EDIwkRaibNorWjRo2KD1Xm308/+ExCCE+H5o+9DL6CvUSuvGuEjPZWHGWh1L?=
 =?us-ascii?Q?Qk88DLWsKxzmwnorlRypDjuSrRJbB5gLNQthol57IcMc3Cup1IIXsKyPmYSk?=
 =?us-ascii?Q?IWH2yF8gaH0SdOuca7KzzBqW+S4YE/EC12HojfMnvk09W6nqqb4fF7aaQ/Zu?=
 =?us-ascii?Q?Orj1BFeugwUPXkm2LQeGmgm0hEB3oh/qLZnJS4cA1KO9cp3oYLx+FJayhERl?=
 =?us-ascii?Q?sjLXgnd1db4hPQgzuFmeXwoGL7Iy+wcTnr2oP90fVeq+t38aAtCMB/BRHQjs?=
 =?us-ascii?Q?x9O83XsAWqorEs0kwmGsD/wWNCY3rfNgCxM3Jg6wm7FkAkUfXd8ZQV52+779?=
 =?us-ascii?Q?a5jofWus3cV8yAr4swvRu8HqzElhF00CvUSewWnDVPEETGebx85qNIZFxgS2?=
 =?us-ascii?Q?KYtd1Vqd+kAd8m/rG/y21hHXjwA8HyOBgkLV1oW/H3l+Q5F9Zj358PhlumsN?=
 =?us-ascii?Q?ZBkEOrfZg0VQFTj0dry4OGp4HYTN4KEMh+yianvgfkREmfLiYJNy0xLGrvfP?=
 =?us-ascii?Q?zRNYmHb1BhypYX+XMP4ZqHYhe5wqD9omzX6FhepSaws2mnbL6V/h0843bI7f?=
 =?us-ascii?Q?9J/g7OWg2AkezlH5prpTFen+dMQMWjPHAXqZuMW/hT5Bz4/etFPDwTgv/L7X?=
 =?us-ascii?Q?1NCwRIzvfKHFkhIYGOBODZrs8NLb5i8KHZ0YEMreb3KDZuZNRvRHMXnP2Il0?=
 =?us-ascii?Q?pGtu9m8/4F1vowQ4SUYg8H+QpznU8ztibiwxlnVAl9Y6dbfkoYvwnTb2kVxl?=
 =?us-ascii?Q?CGBs07j5ssRf0PygNTBsuIRc+MoGCDkoaxHNF41xLXDg1HMby8oaNi/d+Z+F?=
 =?us-ascii?Q?/jiqKkjDyWZSULX/+ZIfD5k5Z3aNv7sQTvoozJTNKQf+hutgN9PNPqMM3aps?=
 =?us-ascii?Q?QY+hwbAR76MfSkDtNGbY8H+YtiEZvOwrF73u/2Lko0T85eWLr9f3kbMsUy8S?=
 =?us-ascii?Q?1FKnLopyHwI=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR12MB8659.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?uvpwli8oU8wOvJLyl3NwVP+TQsbxubD0QEkBmRvQ2Jh4ZZJP5qipOjZamH69?=
 =?us-ascii?Q?B+PbjhWcvbtpGKlhIxRiDqqYfHFPEPCBZqhYcM3T3ZJCwQw82zG9G2Rke9q4?=
 =?us-ascii?Q?CHgav7pRRa8j+o2jKanzZWaj+WSOMGZy5DY+0AHtPYJI0nJ5hOZvUn3SDpkt?=
 =?us-ascii?Q?0Lj6tDEn2MUr7dn/mRi5s+tS4G54SGWL1gmMMjbn3782+tcgUScunIc00GN0?=
 =?us-ascii?Q?3pRE8QnZ3QHE9tNZwhIa7y+X0nMffa4WSZUKiKe5KdNA8VOOl+TOtsOWaCd1?=
 =?us-ascii?Q?jcHChVqL0T/rslHr4WXAO0p+c3Z1RyNIMo03ObYJYsT182PvejTMDMYVcPW2?=
 =?us-ascii?Q?TxkEmh8HQJHQ4C1zp5n+5QiKUrbxiqY9ujbKvp0SZsFyrXRl0y9aGhqFKY7c?=
 =?us-ascii?Q?s4JSDoQbvQ6HGj3v7qDJDWH0FLS7fYF1+N6yLGUyrTyqzOSuJuDY+7aUoI2N?=
 =?us-ascii?Q?rOZahLnSaGGsH9jYN/jH2gyt3RIa/wpjbTeaGNfIaNMmv4ypGsc7LxZ4a5i4?=
 =?us-ascii?Q?qPt6RFV0Ln+5onDrvs+VTLORC18S6Tu2yzJcwprZV/lJEtiCP5kZ0uWmoXqs?=
 =?us-ascii?Q?Zu+lwyG4f1mD8rOfNV+DnPl4KlKRekyau5weSSnPlOVlVYPg/gRl8KLZCEJ4?=
 =?us-ascii?Q?qIbh1Rs8xBJ8wOG1jy8byWrqFGCUVvzZZROHHnuwjFw0P5z3CDGu9b1s1NRa?=
 =?us-ascii?Q?l0Hj1TmoiopLBTq6x8wbyh2ilDgffTBbrmu+042g58KDcRxv7nui3UD/+nJI?=
 =?us-ascii?Q?yOM9GnMdDPLDOgrfrL7iMO5SEjt83MxpwQoxdnZ0851+375n+sQrnKKouUza?=
 =?us-ascii?Q?5tdZqUIRyEgSx00YK7nwXErvHKgJfWsAsz0+vEnKoOPzwQuo/j+3VMvxzvLE?=
 =?us-ascii?Q?COndN5Wm1bXxccaF9kAf/g40DSjFJPH67o4ODthM9e12YFPj/IxsCaJUDVZg?=
 =?us-ascii?Q?GQhSbzT1xXF2YdalACMmlmSTrucAzSSmwfbiNfM6aElZNJ6NWZgO6ORB0u37?=
 =?us-ascii?Q?G9RgeLWXQ1bv9FUe0PmKyv4Q9COG32CMNhjHgqSML+tgId1eianjVIc3N0HU?=
 =?us-ascii?Q?dcf5rlhw0KvJ/WcSFLUrcXS4Hq10eLpBr9YnU3iGxkE/Z6mqccKBwxjAHxku?=
 =?us-ascii?Q?GTufKt69kT3PxhVdyKrwpZOER+7hmU7Tb6AOxxFAmRiGqOM9Y5JoMuQtA+gQ?=
 =?us-ascii?Q?TQs8oD7Ni9Msd5adVQqHsRdc0ni8RZkTR+IrDWPZiBkkABiDKLMRbpQR9dA5?=
 =?us-ascii?Q?7BSW1ESHp3r7W789bDbU8cdpRR5rKVroZ3TE3SsFAHi/jckiLl3IbxxKZt/d?=
 =?us-ascii?Q?IaISd75BGpc4lxeH8Achj5wt8e/8Q8Qxttl9cgpN9M0ijzLoSIx07nLAJkTy?=
 =?us-ascii?Q?FNG58ONb0+qKUHcGPeSkaO9cE8SCYUNrtCPXl6/aDaEFD2ZIhouLTLWqXE+3?=
 =?us-ascii?Q?cYw6VCnPhOlZhYR/jfb4PjNOvSOX6aokxBVUQa86yqNxMH4vzfOMMQZLHTUc?=
 =?us-ascii?Q?sV4Yc109BXOL/IFth93oiQUr8pcDxVyh5M3fp7VE3fHzDVMUx2C49eAGfDzY?=
 =?us-ascii?Q?u6BMG3n/8GgM7hjb++E=3D?=
X-OriginatorOrg: Nvidia.com
X-MS-Exchange-CrossTenant-Network-Message-Id: cd324a99-7b50-48f0-b0b3-08dde643ad87
X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8659.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 15:00:50.9010
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Z15O0VvpBrGAOGITkb5/Y05ckWmkWXcBfnra5oKm94y8bsDpfspUxCq/SnlW4BPn
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4312

On Tue, Aug 19, 2025 at 08:36:52PM +0300, Leon Romanovsky wrote:
>  /* Helper function to handle DMA data transfers. */
> -void kmsan_handle_dma(struct page *page, size_t offset, size_t size,
> +void kmsan_handle_dma(phys_addr_t phys, size_t size,
>  		      enum dma_data_direction dir)
>  {
> +	struct page *page = phys_to_page(phys);
>  	u64 page_offset, to_go, addr;
>  
>  	if (PageHighMem(page))
>  		return;
> -	addr = (u64)page_address(page) + offset;
> +	addr = (u64)page_address(page) + offset_in_page(phys);

addr = phys_to_virt(phys);

And make addr a void *

Otherwise looks fine

Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>

Jason


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 15:04:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 15:04:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099102.1453015 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ureAr-00035N-0e; Thu, 28 Aug 2025 15:04:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099102.1453015; Thu, 28 Aug 2025 15:04: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 1ureAq-00035G-SX; Thu, 28 Aug 2025 15:04:24 +0000
Received: by outflank-mailman (input) for mailman id 1099102;
 Thu, 28 Aug 2025 15:04:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FrxM=3I=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ureAp-00035A-Lo
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 15:04:23 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 46ec08b8-8420-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 17:04:21 +0200 (CEST)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-45b7722ea37so3400495e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 08:04:21 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b6f0c6fe5sm78394535e9.5.2025.08.28.08.04.13
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 28 Aug 2025 08:04:16 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 46ec08b8-8420-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756393460; x=1756998260; 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=HXugFQ1kN97ZDaQOJM1fKNzcNCNTk1kE4o03Nu2zqzc=;
        b=gyVlIvn0ZbMY+MNtcD7FmEIUAlVXO0+pyDG8tjoaH0ZSAos+Ek35ETqn9raQXcxlay
         c4CU1i0AUxPmAEfoeXUfilXGYuaNU22nhScE3n0ZHb0PLn4uFaYu8+gLujaPbadSipEt
         CCFD56kUq4RPSo5WwtdjmA+68enuyo3f8U1CE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756393460; x=1756998260;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=HXugFQ1kN97ZDaQOJM1fKNzcNCNTk1kE4o03Nu2zqzc=;
        b=KBvFX2r8iqZHqByLutUbTYO8Zu/ShLzkXwsIXtn7B6qAgedGK8/Zxnortsz8nfCUWF
         PUwG01NPPkzemS4+f5yjAaRsyYuTzmJIqPX/IvhxGk4nQw1R9vyqzcNVGHUyg8K46m9N
         kBTezOusJL1Ib5E2JAMMo8+iSqY05dk/TVne7WkKDwGPYrUH604NRjJnkKO0/+AlU5p7
         +kByTA5deDAwTveYFlgvwYIrNGvFgvrG7FUPzJs26tsTQh7WzRHPu/2MSOF2USK1dYnK
         4VJLzn6wKFYo+IFrHcG+BCqrlWudVyX5bP/q6rWImb82fCf4uswO9ApiTlNhwgbOeexM
         UgaA==
X-Gm-Message-State: AOJu0YxAIELLfZUCr3KS28fEs9HfL1G7drYIttejov0X15WPycX8Q7V8
	9xTKHb7OKjuPmAvaLiSPxb0QqAvcEXei9D3uBXfbeEL5v7+O/df9uoQ8Yl89+AHfguYyMTM4WoD
	xhU4U
X-Gm-Gg: ASbGnctvAAS0Czvw2ovXwLZeHw1rgPFHb9lssSwSXsWyTTfwieUWfsIWoBCHU1sv8HR
	xhzSYKnXXneOUqEWlQMd4jRBti5Dz2qfZb4dVM+M+8mJJXmI/OSdKqiTanmM+i+RkLMc09neEW8
	C2KOULsE9DOkwGDCXRs4Fipt+BDNAPWTBaTUnVTlx9Pi8qL1Ye0NhlYpdbOsgQ9pAzlDQPFQ5/S
	PxaRpWsNLJswDjLC3RH/S2/IrUQ50XmHneOZ/irnncQ0tVg8z4Za3uFAFY85mK8CZORA8f1dShn
	uFlWYGvNW1DNjJkD+Ve0Sb7mZknyNCftSFPMb/WAU3vAp1F+ab9z0J7ttGDJpwaP3RapJ35SkVy
	xX58E6oqITmK0o74Qsrt8uhknXYFOpA3GQVSWWRV48x3IikZhJZ1Cn9ngpw0583ggwxFincBkBW
	64ceNaxxybDtTgQeYCuw4Fcw==
X-Google-Smtp-Source: AGHT+IGsdXrb+peDgu2F84j2mNK+m626Mp3bowMqBIz3fylH0WxOThKixTC1tLEmUUzT9WmOt42mGQ==
X-Received: by 2002:a05:600c:a593:b0:45b:7580:6f34 with SMTP id 5b1f17b1804b1-45b75807d02mr26847625e9.12.1756393460388;
        Thu, 28 Aug 2025 08:04:20 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 00/23] x86: FRED support
Date: Thu, 28 Aug 2025 16:03:46 +0100
Message-Id: <20250828150409.901315-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

This is now everything to get to tech preview, except for the caveat that it's
still not been tried on real hardware yet, so is staying experimental for now.

The first few patches have been seen before but the latter half of the series
is new, adding support for running PV guests when Xen is using FRED.  Some
work here has influenced earlier patches.

See patches for details.

https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2009286102

This series is still based on the MSR cleaup series posted previously.

Andrew Cooper (23):
  x86: FRED enumerations
  x86/traps: Extend struct cpu_user_regs/cpu_info with FRED fields
  x86/traps: Introduce opt_fred
  x86/boot: Adjust CR4 handling around percpu_early_traps_init()
  x86/S3: Switch to using RSTORSSP to recover SSP on resume
  x86/traps: Set MSR_PL0_SSP in load_system_tables()
  x86/boot: Use RSTORSSP to establish SSP
  x86/traps: Alter switch_stack_and_jump() for FRED mode
  x86/traps: Skip Supervisor Shadow Stack tokens in FRED mode
  x86/traps: Make an IDT-specific #DB helper
  x86/traps: Make an IDT-specific #PF helper
  x86/fsgsbase: Make gskern accesses safe under FRED
  x86/traps: Introduce FRED entrypoints
  x86/traps: Enable FRED when requested
  x86/pv: Deduplicate is_canonical_address() in do_set_segment_base()
  x86/entry: Alter how IRET faults are recognised
  x86/entry: Drop the pre exception table infrastructure
  x86/entry: Rework the comment about SYSCALL and DF
  x86/pv: Adjust GS handling for FRED mode
  x86/pv: Exception handling in FRED mode
  x86/pv: ERETU error handling
  x86/pv: System call handling in FRED mode
  x86/pv: Adjust eflags handling for FRED mode

 docs/misc/xen-command-line.pandoc           |  10 +
 xen/arch/x86/acpi/wakeup_prot.S             |  52 +-
 xen/arch/x86/boot/x86_64.S                  |  48 +-
 xen/arch/x86/domain.c                       |  26 +-
 xen/arch/x86/extable.c                      |  14 -
 xen/arch/x86/hvm/domain.c                   |   4 +-
 xen/arch/x86/include/asm/asm-defns.h        |   8 +
 xen/arch/x86/include/asm/asm_defns.h        |  76 ++-
 xen/arch/x86/include/asm/cpu-user-regs.h    |  71 ++-
 xen/arch/x86/include/asm/cpufeature.h       |   3 +
 xen/arch/x86/include/asm/cpufeatures.h      |   2 +-
 xen/arch/x86/include/asm/current.h          |   9 +-
 xen/arch/x86/include/asm/domain.h           |   5 +
 xen/arch/x86/include/asm/fsgsbase.h         |   8 +-
 xen/arch/x86/include/asm/hypercall.h        |   5 +
 xen/arch/x86/include/asm/msr-index.h        |  11 +
 xen/arch/x86/include/asm/traps.h            |   6 +
 xen/arch/x86/include/asm/uaccess.h          |   2 -
 xen/arch/x86/include/asm/x86-defns.h        |   8 +
 xen/arch/x86/mm.c                           |  12 +-
 xen/arch/x86/pv/dom0_build.c                |   2 +-
 xen/arch/x86/pv/domain.c                    |  22 +-
 xen/arch/x86/pv/iret.c                      |   8 +-
 xen/arch/x86/pv/misc-hypercalls.c           |  42 +-
 xen/arch/x86/pv/traps.c                     |  33 ++
 xen/arch/x86/setup.c                        |  35 +-
 xen/arch/x86/traps-setup.c                  | 127 ++++-
 xen/arch/x86/traps.c                        | 511 ++++++++++++++++++--
 xen/arch/x86/x86_64/Makefile                |   1 +
 xen/arch/x86/x86_64/compat/entry.S          |   3 +-
 xen/arch/x86/x86_64/entry-fred.S            |  57 +++
 xen/arch/x86/x86_64/entry.S                 |  46 +-
 xen/arch/x86/xen.lds.S                      |   5 -
 xen/include/public/arch-x86/cpufeatureset.h |   3 +
 34 files changed, 1106 insertions(+), 169 deletions(-)
 create mode 100644 xen/arch/x86/x86_64/entry-fred.S

-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 15:04:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 15:04:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099105.1453024 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ureBB-0003SU-DG; Thu, 28 Aug 2025 15:04:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099105.1453024; Thu, 28 Aug 2025 15:04: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 1ureBB-0003SN-99; Thu, 28 Aug 2025 15:04:45 +0000
Received: by outflank-mailman (input) for mailman id 1099105;
 Thu, 28 Aug 2025 15:04:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FrxM=3I=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ureBA-0003MD-1b
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 15:04:44 +0000
Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com
 [2a00:1450:4864:20::333])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 540174e8-8420-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 17:04:43 +0200 (CEST)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-45b4d89217aso6671005e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 08:04:43 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b6f0c6fe5sm78394535e9.5.2025.08.28.08.04.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 28 Aug 2025 08:04: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>
X-Inumbo-ID: 540174e8-8420-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756393482; x=1756998282; 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=J2EVmmjqFS7PYu/ShHATpZ9lvd3vIceWFHS6NTUacMY=;
        b=s/TpVH4pbFVI3DZ9l1uap3T4yBgtYzZ8XvIMJvvm+Wbszs8Z9iTiY0QGO7Z1QfDUop
         5M0UBPsAcNWvTsE7gIw8Zpcsjzqg3vhtrBsHHcVWhMCpa2j2Mbv/96LNL29IbK0CuK+e
         Y6WKHUBqm8oPLIdvSlmOK1M/WAxH28jF/Dme0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756393482; x=1756998282;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=J2EVmmjqFS7PYu/ShHATpZ9lvd3vIceWFHS6NTUacMY=;
        b=jVdzgwcfdGQsmm/0OL4zQqESqC5y7s27CL9JeXk83Gmthp4WXcX0WIBcrrQ27PLsAV
         NvYAuSBfPteacgZI5ph/djILOgDL24d1TO8alHERFH8+aieGuPlGvwAqnF8mV+OJ1+ib
         5iGveAxILLP+obp+EosX5snAMrMTw5XhZPdS9s3oiAf9ZhuZ23MN4CeKjmXOwBekxsSq
         iHvBYNKq84Vj0ogsC1QFcG3m3iCSqiEpruSvVBSOJ/eMZW7G8Fvd0tVCq1/8wVaoRgMr
         jEuYcruqRiAaVLERNdS91DaY0Kn86iO6qcLQhhJ98ORLM1jcVIbx95RYUEDCNT5tnXP9
         nsEQ==
X-Gm-Message-State: AOJu0Yx4qyq+SBB8p1yz5WSySTtGh7Psv+SqisR3XARNVOH0CFCVUi1y
	OCWW6ayVquR3ZVNoTGiKHLSz3t2tMfl4rcFDDp0TTg+xwq1gCSI9T8SG+Aav48gW4Z3UDpTtI/i
	5C2d3
X-Gm-Gg: ASbGncslNTLvefhlHpY4GU6t1ViG7A51kmdXrlm7orFktnhkGYgMZU4GZhyPcktTS/p
	E2+sti3K/S7NW3bYMdpVbkoxaRvNpP4UxAmRZMNxYSsO46N95z7pzJDZboCzfddXwLAdluzu+t5
	ZNr3iyXcKMc/NDHv9T6MkQnsagAvuUNWw42LMSncQ6ZZyC4JOVt6d7o/3Dk5PYWEi8kGaWI5nuu
	qPuUS0OpRvGLoWKmZMXLdO9L5VdfxhCAEPU8VaYwkvkk/qRkwLpA1jX7gTDACxHx0L89D4Z0QF4
	geI+2y5qVlOm23S56u6cKtCQkr+4vBikjbaHFXQokUcsoRxM2M0TAA9vxzcPO+tObnPjELM4FG6
	i4XN/QrLFZn0BWj7sLf0NL7bhfArvVaQFFzGflT0OHY3ufV3ZgpJE/KTF+qHPW+7jLsPST04C5h
	o5
X-Google-Smtp-Source: AGHT+IEPs/ZTjczuKDfvvXkzmN25aXndPliXOGIOW9IGVxC+zz1AXw1vRurpUBoJLJcmgAcuN476jw==
X-Received: by 2002:a05:600c:5254:b0:45b:7bba:c7b5 with SMTP id 5b1f17b1804b1-45b7bbacbe5mr16434855e9.28.1756393482338;
        Thu, 28 Aug 2025 08:04:42 -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>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 01/23] x86: FRED enumerations
Date: Thu, 28 Aug 2025 16:03:47 +0100
Message-Id: <20250828150409.901315-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250828150409.901315-1-andrew.cooper3@citrix.com>
References: <20250828150409.901315-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Of note, CR4.FRED is bit 32 and cannot enabled outside of 64bit mode.

Most supported toolchains don't understand the FRED instructions yet.  ERETU
and ERETS are easy to wrap (they encoded as REPZ/REPNE CLAC), while LKGS is
more complicated and deferred for now.

I have intentionally named the FRED MSRs differently to the spec.  In the
spec, the stack pointer names alias the TSS fields of the same name, despite
very different semantics.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

v2:
 * Drop CONFIG_HAS_AS_FRED
---
 xen/arch/x86/include/asm/asm-defns.h        |  8 ++++++++
 xen/arch/x86/include/asm/cpufeature.h       |  3 +++
 xen/arch/x86/include/asm/cpufeatures.h      |  2 +-
 xen/arch/x86/include/asm/msr-index.h        | 11 +++++++++++
 xen/arch/x86/include/asm/x86-defns.h        |  1 +
 xen/include/public/arch-x86/cpufeatureset.h |  3 +++
 6 files changed, 27 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/include/asm/asm-defns.h b/xen/arch/x86/include/asm/asm-defns.h
index 61a5faf90446..239dc3af096c 100644
--- a/xen/arch/x86/include/asm/asm-defns.h
+++ b/xen/arch/x86/include/asm/asm-defns.h
@@ -4,6 +4,14 @@
     .byte 0x0f, 0x01, 0xfc
 .endm
 
+/* binutils >= 2.41 or LLVM >= 19 */
+.macro eretu
+    .byte 0xf3, 0x0f, 0x01, 0xca
+.endm
+.macro erets
+    .byte 0xf2, 0x0f, 0x01, 0xca
+.endm
+
 /*
  * Call a noreturn function.  This could be JMP, but CALL results in a more
  * helpful backtrace.  BUG is to catch functions which do decide to return...
diff --git a/xen/arch/x86/include/asm/cpufeature.h b/xen/arch/x86/include/asm/cpufeature.h
index 441a7ecc494b..b6cf0c8dfc7c 100644
--- a/xen/arch/x86/include/asm/cpufeature.h
+++ b/xen/arch/x86/include/asm/cpufeature.h
@@ -246,6 +246,9 @@ static inline bool boot_cpu_has(unsigned int feat)
 #define cpu_has_avx_vnni        boot_cpu_has(X86_FEATURE_AVX_VNNI)
 #define cpu_has_avx512_bf16     boot_cpu_has(X86_FEATURE_AVX512_BF16)
 #define cpu_has_cmpccxadd       boot_cpu_has(X86_FEATURE_CMPCCXADD)
+#define cpu_has_fred            boot_cpu_has(X86_FEATURE_FRED)
+#define cpu_has_lkgs            boot_cpu_has(X86_FEATURE_LKGS)
+#define cpu_has_nmi_src         boot_cpu_has(X86_FEATURE_NMI_SRC)
 #define cpu_has_avx_ifma        boot_cpu_has(X86_FEATURE_AVX_IFMA)
 
 /* CPUID level 0x80000021.eax */
diff --git a/xen/arch/x86/include/asm/cpufeatures.h b/xen/arch/x86/include/asm/cpufeatures.h
index 71308d9dafc8..0a98676c1604 100644
--- a/xen/arch/x86/include/asm/cpufeatures.h
+++ b/xen/arch/x86/include/asm/cpufeatures.h
@@ -18,7 +18,7 @@ XEN_CPUFEATURE(ARCH_PERFMON,      X86_SYNTH( 3)) /* Intel Architectural PerfMon
 XEN_CPUFEATURE(TSC_RELIABLE,      X86_SYNTH( 4)) /* TSC is known to be reliable */
 XEN_CPUFEATURE(XTOPOLOGY,         X86_SYNTH( 5)) /* cpu topology enum extensions */
 XEN_CPUFEATURE(CPUID_FAULTING,    X86_SYNTH( 6)) /* cpuid faulting */
-/* Bit 7 unused */
+XEN_CPUFEATURE(XEN_FRED,          X86_SYNTH( 7)) /* Xen uses FRED */
 XEN_CPUFEATURE(APERFMPERF,        X86_SYNTH( 8)) /* APERFMPERF */
 XEN_CPUFEATURE(MFENCE_RDTSC,      X86_SYNTH( 9)) /* MFENCE synchronizes RDTSC */
 XEN_CPUFEATURE(XEN_SMEP,          X86_SYNTH(10)) /* SMEP gets used by Xen itself */
diff --git a/xen/arch/x86/include/asm/msr-index.h b/xen/arch/x86/include/asm/msr-index.h
index 428d993ee89b..bb48d16f0c6d 100644
--- a/xen/arch/x86/include/asm/msr-index.h
+++ b/xen/arch/x86/include/asm/msr-index.h
@@ -115,6 +115,17 @@
 #define  MCU_OPT_CTRL_GDS_MIT_DIS           (_AC(1, ULL) <<  4)
 #define  MCU_OPT_CTRL_GDS_MIT_LOCK          (_AC(1, ULL) <<  5)
 
+#define MSR_FRED_RSP_SL0                    0x000001cc
+#define MSR_FRED_RSP_SL1                    0x000001cd
+#define MSR_FRED_RSP_SL2                    0x000001ce
+#define MSR_FRED_RSP_SL3                    0x000001cf
+#define MSR_FRED_STK_LVLS                   0x000001d0
+#define MSR_FRED_SSP_SL0                    MSR_PL0_SSP
+#define MSR_FRED_SSP_SL1                    0x000001d1
+#define MSR_FRED_SSP_SL2                    0x000001d2
+#define MSR_FRED_SSP_SL3                    0x000001d3
+#define MSR_FRED_CONFIG                     0x000001d4
+
 #define MSR_RTIT_OUTPUT_BASE                0x00000560
 #define MSR_RTIT_OUTPUT_MASK                0x00000561
 #define MSR_RTIT_CTL                        0x00000570
diff --git a/xen/arch/x86/include/asm/x86-defns.h b/xen/arch/x86/include/asm/x86-defns.h
index 23579c471f4a..0a0ba83de786 100644
--- a/xen/arch/x86/include/asm/x86-defns.h
+++ b/xen/arch/x86/include/asm/x86-defns.h
@@ -75,6 +75,7 @@
 #define X86_CR4_PKE        0x00400000 /* enable PKE */
 #define X86_CR4_CET        0x00800000 /* Control-flow Enforcement Technology */
 #define X86_CR4_PKS        0x01000000 /* Protection Key Supervisor */
+#define X86_CR4_FRED       (_AC(1, ULL) << 32) /* Fast Return and Event Delivery */
 
 #define X86_CR8_VALID_MASK 0xf
 
diff --git a/xen/include/public/arch-x86/cpufeatureset.h b/xen/include/public/arch-x86/cpufeatureset.h
index 990b1d13f301..af69cf3822eb 100644
--- a/xen/include/public/arch-x86/cpufeatureset.h
+++ b/xen/include/public/arch-x86/cpufeatureset.h
@@ -310,7 +310,10 @@ XEN_CPUFEATURE(ARCH_PERF_MON, 10*32+8) /*   Architectural Perfmon */
 XEN_CPUFEATURE(FZRM,         10*32+10) /*A  Fast Zero-length REP MOVSB */
 XEN_CPUFEATURE(FSRS,         10*32+11) /*A  Fast Short REP STOSB */
 XEN_CPUFEATURE(FSRCS,        10*32+12) /*A  Fast Short REP CMPSB/SCASB */
+XEN_CPUFEATURE(FRED,         10*32+17) /*   Fast Return and Event Delivery */
+XEN_CPUFEATURE(LKGS,         10*32+18) /*   Load Kernel GS instruction */
 XEN_CPUFEATURE(WRMSRNS,      10*32+19) /*S  WRMSR Non-Serialising */
+XEN_CPUFEATURE(NMI_SRC,      10*32+20) /*   NMI-Source Reporting */
 XEN_CPUFEATURE(AMX_FP16,     10*32+21) /*   AMX FP16 instruction */
 XEN_CPUFEATURE(AVX_IFMA,     10*32+23) /*A  AVX-IFMA Instructions */
 XEN_CPUFEATURE(LAM,          10*32+26) /*   Linear Address Masking */
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 15:05:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 15:05:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099113.1453034 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ureBT-0003vn-KZ; Thu, 28 Aug 2025 15:05:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099113.1453034; Thu, 28 Aug 2025 15: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 1ureBT-0003vg-Hs; Thu, 28 Aug 2025 15:05:03 +0000
Received: by outflank-mailman (input) for mailman id 1099113;
 Thu, 28 Aug 2025 15:05:02 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FrxM=3I=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ureBS-0003MD-PK
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 15:05:02 +0000
Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com
 [2a00:1450:4864:20::435])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5f61a8a2-8420-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 17:05:02 +0200 (CEST)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-3ceb9c3d98cso214393f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 08:05:02 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b6f0c6fe5sm78394535e9.5.2025.08.28.08.04.42
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 28 Aug 2025 08:04: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>
X-Inumbo-ID: 5f61a8a2-8420-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756393501; x=1756998301; 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=+rSETqeO7pVr8yy1cJ/ZWYHDSUYISCFYWWC8z2uEGqY=;
        b=s1y4p8s8gpwaraOGPhh6cfXANRwXp0lCvnM8lN2IeU6naGWhP/M9xN7yMpwkZ5L/ee
         4cyGs5KDLDs3nUltJuQnu4KMwW/6xrJ3OKLNdsPt4OILFsN5qWq/28y23GO2pftfCDtQ
         oznHy0owz9r+jLqG/nwDjdx7RZgFEwDQpSNHc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756393501; x=1756998301;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=+rSETqeO7pVr8yy1cJ/ZWYHDSUYISCFYWWC8z2uEGqY=;
        b=COekTV6Ruvt2jsAmu/eIfF7dK/lmIxDF3ojS2uPV+jALQgKwoFZOpkrU70OuSGvO/7
         4Y1I2OdYj4+e8VBLtThTRvuNLOE7WbqGLTHH4xJFKWfE9GVXRqgfegUmgHDfo0F0TrqS
         IgTla8yMwGlrj05a/+mOSkIsGvB8T4ER3IYfxsEewVS+w+Z5KA02nD1aBJaoRTHtIwHX
         2I3Fd6g5yCN30anPEVF83JW9X7v1wh5Pb4eYgZNT0T3pO56I5bYBcr7UDNJ+YVMD9Eef
         dXAYN147TjswOSKxratg+3CKVskOUcfiNve7cVQ5sb7mDNvegANnii07SxXRWPh7JcIl
         8Xzg==
X-Gm-Message-State: AOJu0YzzAUnsOh0nral3tQgvxfiFkDj00ya+2cxpB5ln98cEoAxrtn9R
	BaTfP+pW2xGt3y8PaCmVIFxSOs2pTVux18r/O2i3h2sDkeOmqjqnLZJnP1xDsRvmtktCXYhxxRh
	2actg
X-Gm-Gg: ASbGncuY5gM1KVLSA7y3nc0ciKOnVGlekz+D3krEBKK8wOZYw5k5FLdPk31S9iWLA1m
	rCX7yR2L7e6X0cZ1D6QGgzc3GsTK45Wco9mdeQF4tZ7j7/ObdsfZueW3pSJLms0pRO1jDP2BKzL
	abAS25JAGR4jXHg3I1xDs7H8mDcEh08sdWdjwaNMD1IlOIOHDtqdQmCXSWulHmm+16NZia6Rfhq
	25viA8BUnRaYuGN5UObf/r6Rs0gh5AIs+kDn80pt7fJgasDfpgj/Gbg26zg6n+1GQqyce+5jGso
	EG5ir/PCTneCG/fnWVPkihz10LOPhdpYz/1kS/xTl1eJLjZWZNcIReuiQtz1xls03WqOQkGqejy
	hoNwBcQK1cmH13EVMr7Gxhd8w/s+mABDD58Fvy6YzRXTWQseeXhXmdTe1rSpgXg/QQUCaicGTzF
	uK
X-Google-Smtp-Source: AGHT+IH/I0EVRtsS4rmnlkXBd0cW4yUXcVS7/meIAdWpnRmRiOw5O46mXL/RvZVuCXPD8xHKQbG5bg==
X-Received: by 2002:a5d:5847:0:b0:3cb:3490:6b82 with SMTP id ffacd0b85a97d-3cb34906dc2mr8471495f8f.55.1756393501354;
        Thu, 28 Aug 2025 08:05:01 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 02/23] x86/traps: Extend struct cpu_user_regs/cpu_info with FRED fields
Date: Thu, 28 Aug 2025 16:03:48 +0100
Message-Id: <20250828150409.901315-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250828150409.901315-1-andrew.cooper3@citrix.com>
References: <20250828150409.901315-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The FRED on-stack format is larger than the IDT format, but is by and large
compatible.  FRED reuses space above cs and ss for extra metadata, some of
which is purely informational, and some of which causes additional effects in
ERET{U,S}.

Follow Linux's choice of naming for fred_{c,s}s structures, to make it very
clear at the point of use that it's dependent on FRED.

There is also the event data field and reserved fields, but we cannot include
these in struct cpu_user_regs without reintroducing OoB structure accesses in
the non-FRED case.  See commit 6065a05adf15 ("x86/traps: 'Fix' safety of
read_registers() in #DF path"). for more details.

Instead, use a new struct fred_info and position it suitably in struct
cpu_info.  This boundary will be loaded into MSR_FRED_RSP_SL0, and must be
64-byte aligned.

This does add 16 bytes back into struct cpu_info, undoing the saving we made
by dropping the vm86 data segment selectors.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

v2:
 * .lm -> .l
 * Tweak comments
---
 xen/arch/x86/include/asm/cpu-user-regs.h | 71 ++++++++++++++++++++++--
 xen/arch/x86/include/asm/current.h       |  2 +
 xen/arch/x86/traps-setup.c               |  5 ++
 3 files changed, 74 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/include/asm/cpu-user-regs.h b/xen/arch/x86/include/asm/cpu-user-regs.h
index 5b283a2f6d02..92aeca0aaa88 100644
--- a/xen/arch/x86/include/asm/cpu-user-regs.h
+++ b/xen/arch/x86/include/asm/cpu-user-regs.h
@@ -30,6 +30,10 @@ struct cpu_user_regs
     /*
      * During IDT delivery for exceptions with an error code, hardware pushes
      * to this point.  Entry_vector is filled in by software.
+     *
+     * During FRED delivery, hardware always pushes to this point.  Software
+     * copies fred_ss.vector into entry_vector so most interrupt/exception
+     * handling can be FRED-agnostic.
      */
 
     uint32_t error_code;
@@ -42,18 +46,77 @@ struct cpu_user_regs
      */
 
     union { uint64_t rip;    uint32_t eip;    uint16_t ip; };
-    uint16_t cs, _pad0[1];
-    uint8_t  saved_upcall_mask; /* PV (v)rflags.IF == !saved_upcall_mask */
-    uint8_t  _pad1[3];
+    union {
+        struct {
+            uint16_t      cs;
+            unsigned long :16;
+            uint8_t       saved_upcall_mask; /* PV (v)rflags.IF == !saved_upcall_mask */
+        };
+        unsigned long     csx;
+        struct {
+            /*
+             * Bits 0 to 31 control ERET{U,S} behaviour, and are state of the
+             * interrupted context.
+             */
+            uint16_t      cs;
+            unsigned int  sl:2;      /* Stack Level */
+            bool          wfe:1;     /* Wait-for-ENDBRANCH state */
+        } fred_cs;
+    };
     union { uint64_t rflags; uint32_t eflags; uint16_t flags; };
     union { uint64_t rsp;    uint32_t esp;    uint16_t sp;    uint8_t spl; };
-    uint16_t ss, _pad2[3];
+    union {
+        uint16_t          ss;
+        unsigned long     ssx;
+        struct {
+            /*
+             * Bits 0 to 31 control ERET{U,S} behaviour, and are state about
+             * the event which occured.
+             */
+            uint16_t      ss;
+            bool          sti:1;     /* Was blocked-by-STI, and not cancelled */
+            bool          swint:1;   /* Was a SYSCALL/SYSENTER/INT $N.  On ERETx, pend_DB iff TF */
+            bool          nmi:1;     /* Was an NMI. */
+            unsigned long :13;
+
+            /*
+             * Bits 32 to 63 are ignored by ERET{U,S} and are informative
+             * only.
+             */
+            uint8_t       vector;
+            unsigned long :8;
+            unsigned int  type:4;    /* X86_ET_* */
+            unsigned long :4;
+            bool          enclave:1; /* Event taken in SGX mode */
+            bool          l:1;       /* Event taken in 64bit mode (old %cs.l) */
+            bool          nested:1;  /* Exception during event delivery (clear for #DF) */
+            unsigned long :1;
+            unsigned int  insnlen:4; /* .type >= SW_INT */
+        } fred_ss;
+    };
 
     /*
      * For IDT delivery, tss->rsp0 points to this boundary as embedded within
      * struct cpu_info.  It must be 16-byte aligned.
      */
 };
+struct fred_info
+{
+    /*
+     * Event Data.  For:
+     *   #DB: PENDING_DBG (%dr6 with positive polarity)
+     *   NMI: NMI-Source Bitmap (on capable hardware)
+     *   #PF: %cr2
+     *   #NM: MSR_XFD_ERR (only XFD-induced #NMs)
+     */
+    uint64_t edata;
+    uint64_t _rsvd;
+
+    /*
+     * For FRED delivery, MSR_FRED_RSP_SL0 points to this boundary as embedded
+     * within struct cpu_info.  It must be 64-byte aligned.
+     */
+};
 
 static inline uint64_t msr_fold(const struct cpu_user_regs *regs)
 {
diff --git a/xen/arch/x86/include/asm/current.h b/xen/arch/x86/include/asm/current.h
index fd30422707d9..c1eb27b1c4c2 100644
--- a/xen/arch/x86/include/asm/current.h
+++ b/xen/arch/x86/include/asm/current.h
@@ -38,6 +38,8 @@ struct vcpu;
 
 struct cpu_info {
     struct cpu_user_regs guest_cpu_user_regs;
+    struct fred_info _fred; /* Only used when FRED is active. */
+
     unsigned int processor_id;
     unsigned int verw_sel;
     struct vcpu *current_vcpu;
diff --git a/xen/arch/x86/traps-setup.c b/xen/arch/x86/traps-setup.c
index 25581acf1158..c89280270fbb 100644
--- a/xen/arch/x86/traps-setup.c
+++ b/xen/arch/x86/traps-setup.c
@@ -354,7 +354,12 @@ static void __init __maybe_unused build_assertions(void)
      *
      * tss->rsp0, pointing at the end of cpu_info.guest_cpu_user_regs, must be
      * 16-byte aligned.
+     *
+     * MSR_FRED_RSP_SL0, pointing to the end of cpu_info._fred must be 64-byte
+     * aligned.
      */
     BUILD_BUG_ON((sizeof(struct cpu_info) -
                   endof_field(struct cpu_info, guest_cpu_user_regs)) & 15);
+    BUILD_BUG_ON((sizeof(struct cpu_info) -
+                  endof_field(struct cpu_info, _fred)) & 63);
 }
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 15:10:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 15:10:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099145.1453043 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ureH1-0005sV-6r; Thu, 28 Aug 2025 15:10:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099145.1453043; Thu, 28 Aug 2025 15:10: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 1ureH1-0005sO-46; Thu, 28 Aug 2025 15:10:47 +0000
Received: by outflank-mailman (input) for mailman id 1099145;
 Thu, 28 Aug 2025 15:10:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FrxM=3I=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ureCq-00035A-M8
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 15:06:28 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 91cee1a5-8420-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 17:06:27 +0200 (CEST)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-45b7d485173so3264665e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 08:06:27 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b6f0c6fe5sm78394535e9.5.2025.08.28.08.06.24
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 28 Aug 2025 08:06: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>
X-Inumbo-ID: 91cee1a5-8420-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756393586; x=1756998386; 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=c80DOGuq8CPTWDIJ0qD4mtXdtGhG3XkzJOyU46644UY=;
        b=BPEd304GUE1uVIQ23kc8xBUVMVc3v8OFxN7DQLBNojYtqw6PcNyZp32D/yHTgMzY2/
         5n5uBpW0SbH3fG4h78ylW7qNYoVCbhCQwAE8inV70MPMqobGdq6RwfSKboAEuQHybbY4
         DHxeZPdNVqYrXdEG/Wtf+I1bN6vGNzAjgBcmk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756393586; x=1756998386;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=c80DOGuq8CPTWDIJ0qD4mtXdtGhG3XkzJOyU46644UY=;
        b=mmc8L1aCvZC1t9R/jQH+3C9i8krByO8kIbO6DuBtEWsS77j4SilcgBDqF3KK3GMHFR
         FPHw6MsYPknqB/QRaQ5EK8b0ch0Pb/n33qJsy+onWtV+OqzvxHJ/is0DcOnsIObLejZR
         bS62HY2Sgy8eGyr9wdZZZ737qXA3taZju4W4WnzzP53/FfwSuYbmXoGSUJYp3pTsp/qW
         wus3dhKtT+P0YQ6fgvMO26oVyvA4c5+OOx97gzv1EO/t9GzsKPNI0ZDzNXnJWB0Ik/nF
         eNtmdgHUsJseY3pc0lQidkgAKDryJbKeaQD8qKMbC3TvJ/KJWU5RWSqoRYkxe1IX3Ilm
         NzyQ==
X-Gm-Message-State: AOJu0Ywo/yfs/X2OvyWLK1+DhI7pVthA00dWSvoMYbC45NiDyHzSjtb9
	y6LndrhLp4aMCNPQEIBDpE8zdrCww2ATtrqRalcWiyeZjgB9O+4sXsFlXyWUupaop/Eqr5XbYLo
	E0rfy
X-Gm-Gg: ASbGncsCC9DTEjHVnSTpUMfUIaFhXKo7psd73efpN6zohQp5TutqaW2yeXFBNlw+hDc
	gQoN0fDb8ZXpg/nIqSQvJOFLvAZdPUuOOEHOWQO6Nhbf5DNl/AGwTkgyBskRhHG8oaYWzUgJoDc
	q8vuyU3uATxjfPKD3Hlz8no9/CjdrVzdONSAHdHRFg8uY+lk3XvTJeK+MRSUoJjvIyKeUdXv0sw
	IsoIAkx2P7S8a5NY7+72+b1qD+z1qtnA2qucOAlpoE2KnrNYQXChoS4KlJoKGjkkDUfZcV8L0E8
	6dfMBPaOxXfyGht7wa7EITCxlz2PbVVdfsxRgkJD9r8WDAXspOpmbins8GWUFOpOkAOvyV49Hak
	ULxOs63d6La/0OtA+yWwMDmwVFt4frOMM3cw1OQcIOaSHDAtLo3RP34/JEMi0vVlomBSifI+9da
	4gWITu/MHXLVw=
X-Google-Smtp-Source: AGHT+IHUFasaK56jScMDuhEnUt52GbGlkRE4OxBQO+dhONEeL5IJ4iJgXFm4HUfslJuRdZOFX47vhg==
X-Received: by 2002:a05:600c:1d1f:b0:45b:7ce0:fb8a with SMTP id 5b1f17b1804b1-45b7ce0fc25mr15400215e9.35.1756393585694;
        Thu, 28 Aug 2025 08:06: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>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 22/23] x86/pv: System call handling in FRED mode
Date: Thu, 28 Aug 2025 16:04:08 +0100
Message-Id: <20250828150409.901315-23-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250828150409.901315-1-andrew.cooper3@citrix.com>
References: <20250828150409.901315-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Under FRED, entry_from_pv() handles everything, even system calls.  This means
more of our logic is written in C now, rather than assembly.

In order to facilitate this, introduce pv_inject_callback(), which reuses
struct trap_bounce infrastructure to inject the syscall/sysenter callbacks.
This in turns requires some !PV compatibility for pv_inject_callback() and
pv_hypercall() which can both be ASSERT_UNREACHABLE().

For each of INT $N, SYSCALL and SYSENTER, FRED gives us interrupted context
which was previously lost.  As the guest can't see FRED, Xen has to lose state
in the same way to maintain the prior behaviour.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

v2:
 * New
---
 xen/arch/x86/include/asm/domain.h    |   5 ++
 xen/arch/x86/include/asm/hypercall.h |   5 ++
 xen/arch/x86/pv/traps.c              |  33 +++++++++
 xen/arch/x86/traps.c                 | 107 +++++++++++++++++++++++++++
 4 files changed, 150 insertions(+)

diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
index 5df8c7825333..b374decccc9c 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -712,11 +712,16 @@ int arch_set_info_hvm_guest(struct vcpu *v, const struct vcpu_hvm_context *ctx);
 
 #ifdef CONFIG_PV
 void pv_inject_event(const struct x86_event *event);
+void pv_inject_callback(unsigned int type);
 #else
 static inline void pv_inject_event(const struct x86_event *event)
 {
     ASSERT_UNREACHABLE();
 }
+static inline void pv_inject_callback(unsigned int type)
+{
+    ASSERT_UNREACHABLE();
+}
 #endif
 
 static inline void pv_inject_hw_exception(unsigned int vector, int errcode)
diff --git a/xen/arch/x86/include/asm/hypercall.h b/xen/arch/x86/include/asm/hypercall.h
index f6e9e2313b3c..1010332a47e9 100644
--- a/xen/arch/x86/include/asm/hypercall.h
+++ b/xen/arch/x86/include/asm/hypercall.h
@@ -20,6 +20,11 @@
 
 #ifdef CONFIG_PV
 void pv_hypercall(struct cpu_user_regs *regs);
+#else
+static inline void pv_hypercall(struct cpu_user_regs *regs)
+{
+    ASSERT_UNREACHABLE();
+}
 #endif
 
 void pv_ring1_init_hypercall_page(void *ptr);
diff --git a/xen/arch/x86/pv/traps.c b/xen/arch/x86/pv/traps.c
index c3c0976c440f..e7314d8703d9 100644
--- a/xen/arch/x86/pv/traps.c
+++ b/xen/arch/x86/pv/traps.c
@@ -19,6 +19,8 @@
 #include <asm/shared.h>
 #include <asm/traps.h>
 
+#include <public/callback.h>
+
 void pv_inject_event(const struct x86_event *event)
 {
     struct vcpu *curr = current;
@@ -95,6 +97,37 @@ void pv_inject_event(const struct x86_event *event)
     }
 }
 
+void pv_inject_callback(unsigned int type)
+{
+    struct vcpu *curr = current;
+    struct trap_bounce *tb = &curr->arch.pv.trap_bounce;
+    unsigned long rip = 0;
+    bool irq = false;
+
+    ASSERT(is_pv_64bit_vcpu(curr));
+
+    switch ( type )
+    {
+    case CALLBACKTYPE_syscall:
+        rip = curr->arch.pv.syscall_callback_eip;
+        irq = curr->arch.pv.vgc_flags & VGCF_syscall_disables_events;
+        break;
+
+    case CALLBACKTYPE_syscall32:
+        rip = curr->arch.pv.syscall32_callback_eip;
+        irq = curr->arch.pv.syscall32_disables_events;
+        break;
+
+    case CALLBACKTYPE_sysenter:
+        rip = curr->arch.pv.sysenter_callback_eip;
+        irq = curr->arch.pv.sysenter_disables_events;
+        break;
+    }
+
+    tb->flags = TBF_EXCEPTION | (irq ? TBF_INTERRUPT : 0);
+    tb->eip = rip;
+}
+
 /*
  * Called from asm to set up the MCE trapbounce info.
  * Returns false no callback is set up, else true.
diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index e10b4e771824..9211067cd688 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -18,6 +18,7 @@
 #include <xen/delay.h>
 #include <xen/domain_page.h>
 #include <xen/guest_access.h>
+#include <xen/hypercall.h>
 #include <xen/init.h>
 #include <xen/mm.h>
 #include <xen/paging.h>
@@ -52,6 +53,8 @@
 #include <asm/uaccess.h>
 #include <asm/xenoprof.h>
 
+#include <public/callback.h>
+
 /*
  * opt_nmi: one of 'ignore', 'dom0', or 'fatal'.
  *  fatal:  Xen prints diagnostic message and then hangs.
@@ -2266,6 +2269,7 @@ void asmlinkage check_ist_exit(const struct cpu_user_regs *regs, bool ist_exit)
 void asmlinkage entry_from_pv(struct cpu_user_regs *regs)
 {
     struct fred_info *fi = cpu_regs_fred_info(regs);
+    struct vcpu *curr = current;
     uint8_t type = regs->fred_ss.type;
     uint8_t vec = regs->fred_ss.vector;
 
@@ -2305,6 +2309,27 @@ void asmlinkage entry_from_pv(struct cpu_user_regs *regs)
 
     switch ( type )
     {
+    case X86_ET_SW_INT:
+        /*
+         * INT $3/4 are indistinguishable from INT3/INTO under IDT, and are
+         * permitted by Xen without the guest kernel having a choice.  Let
+         * them fall through into X86_ET_HW_EXC, as #BP in particular needs
+         * handling by do_int3() in case an external debugger is attached.
+         */
+        if ( vec != X86_EXC_BP && vec != X86_EXC_OF )
+        {
+            const struct trap_info *ti = &curr->arch.pv.trap_ctxt[vec];
+
+            if ( permit_softint(TI_GET_DPL(ti), curr, regs) )
+                pv_inject_sw_interrupt(vec);
+            else
+            {
+                regs->rip -= 2;
+                pv_inject_hw_exception(X86_EXC_GP, (vec << 3) | X86_XEC_IDT);
+            }
+            break;
+        }
+        fallthrough;
     case X86_ET_HW_EXC:
     case X86_ET_PRIV_SW_EXC:
     case X86_ET_SW_EXC:
@@ -2335,6 +2360,88 @@ void asmlinkage entry_from_pv(struct cpu_user_regs *regs)
         }
         break;
 
+    case X86_ET_OTHER:
+        switch ( regs->fred_ss.vector )
+        {
+        case 1: /* SYSCALL */
+        {
+            /*
+             * FRED delivery preserves the interrupted %cs/%ss, but previously
+             * SYSCALL lost the interrupted selectors, and SYSRET forced the
+             * use of the ones in MSR_STAR.
+             *
+             * The guest isn't aware of FRED, so recreate the legacy
+             * behaviour, including the guess of instruction length for
+             * faults.
+             *
+             * The non-FRED SYSCALL path sets TRAP_syscall in entry_vector to
+             * signal that SYSRET can be used, but this isn't relevant in FRED
+             * mode.
+             *
+             * When setting the selectors, clear all upper metadata again for
+             * backwards compatibility.  In particular fred_ss.swint becomes
+             * pend_DB on ERETx, and nothing else in the pv_hypercall() would
+             * clean up.
+             */
+            bool l = regs->fred_ss.l;
+
+            regs->ssx = l ? FLAT_KERNEL_SS   : FLAT_USER_SS32;
+            regs->csx = l ? FLAT_KERNEL_CS64 : FLAT_USER_CS32;
+
+            if ( guest_kernel_mode(curr, regs) )
+                pv_hypercall(regs);
+            else if ( (l ? curr->arch.pv.syscall_callback_eip
+                         : curr->arch.pv.syscall32_callback_eip) == 0 )
+            {
+                regs->rip -= 2;
+                pv_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
+            }
+            else
+            {
+                /*
+                 * The PV ABI, given no virtual SYSCALL_MASK, hardcodes that
+                 * DF is cleared.  Other flags are handled in the same way as
+                 * interrupts and exceptions in create_bounce_frame().
+                 */
+                regs->eflags &= ~X86_EFLAGS_DF;
+                pv_inject_callback(l ? CALLBACKTYPE_syscall
+                                     : CALLBACKTYPE_syscall32);
+            }
+            break;
+        }
+
+        case 2: /* SYSENTER */
+            /*
+             * FRED delivery preserves the interrupted state, but previously
+             * SYSENTER discarded almost everything.
+             *
+             * The guest isn't aware of FRED, so recreate the legacy
+             * behaviour, including the guess of instruction length for
+             * faults.
+             *
+             * When setting the selectors, clear all upper metadata.  In
+             * particular fred_ss.swint becomes pend_DB on ERETx.
+             */
+            regs->ssx = FLAT_USER_SS;
+            regs->rsp = 0;
+            regs->eflags &= ~(X86_EFLAGS_VM | X86_EFLAGS_IF);
+            regs->csx = 3;
+            regs->rip = 0;
+
+            if ( !curr->arch.pv.sysenter_callback_eip )
+            {
+                regs->rip -= 2;
+                pv_inject_hw_exception(X86_EXC_GP, 0);
+            }
+            else
+                pv_inject_callback(CALLBACKTYPE_sysenter);
+            break;
+
+        default:
+            goto fatal;
+        }
+        break;
+
     default:
         goto fatal;
     }
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 15:10:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 15:10:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099146.1453053 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ureH2-00067p-Hz; Thu, 28 Aug 2025 15:10:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099146.1453053; Thu, 28 Aug 2025 15:10: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 1ureH2-00067i-FL; Thu, 28 Aug 2025 15:10:48 +0000
Received: by outflank-mailman (input) for mailman id 1099146;
 Thu, 28 Aug 2025 15:10:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FrxM=3I=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ureCU-00035A-Ad
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 15:06:06 +0000
Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com
 [2a00:1450:4864:20::329])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8499c332-8420-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 17:06:04 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-45b79ec2fbeso6064855e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 08:06:04 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b6f0c6fe5sm78394535e9.5.2025.08.28.08.06.02
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 28 Aug 2025 08:06: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>
X-Inumbo-ID: 8499c332-8420-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756393564; x=1756998364; 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=3oinKrjQdYUcRvt6fT6/XeocW4MeJM2zndzH0mNM5NI=;
        b=SijzbCZrMnvrVgsYqe9mXQ1UfCvjKvbGt5ZPg2MQAMY15LnViXWVbfbO3WKjHbCr0O
         7YHLV+2iVbPINjwr0ARPYa7B/O7/XXtevJjpnAj3oO8O/bnwZL1tc+toeeovd2tVCqsS
         6K/FdDp4aYmuBWiUkkcGGIkpWaOv6ksrhPJM4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756393564; x=1756998364;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=3oinKrjQdYUcRvt6fT6/XeocW4MeJM2zndzH0mNM5NI=;
        b=UNbhEccSbl/bBdffzOtmaLA8pvlNk4uG6EXDHTc4PTRHdXGVIs6pAz9KI3+9CVDS7D
         jQrZzwcvuTplwj+I2g+Pv6knL5RMLQT14x1fq+OA8AwOKL0BqBjl8lsAirT3F0cEwV3r
         QrNHshyI8WHvzdaiqF1yFYgYXSQHT5AeAvV3e6toYWNKdXZqFPdrv5PoDTZpbR5ceqIJ
         dxA8voMFQwQcnBVUs6X1ANj1spO+9n49xqH6xQf3hT1N8jL6dGwWixHBjOGYgAMKGA1+
         69dNHnM394scRBMPi0fKTibAKaf/OmujVMEESqz1WwYBacq/Kb1rACEhYVGI8xpbFb2L
         GE0g==
X-Gm-Message-State: AOJu0Yxd41n5BGrnvy/cqV4+zPSetnv1ez79EOxt3EDD8VQm+LoxDUwS
	VJ7mQ9SjVun/gILxk1ihyxrxpCG+0UHu/mDErHVGBL/7TvtQXd+MvgGjZeHXpi9p6egQchCPOvp
	SI9KH
X-Gm-Gg: ASbGnctrEti9qvDgMEgpsrz+ZJT+OOQdtXBtLnYuCqFjxC7b4GT9JNSvYYY2AY5S4dL
	dFPyG4ht1JN3ekxHf9pelEc+W0+Y3ZpIvLDhUqpwrv0uRVke+vXoYcs2wkOlES0rCNBarefLuyM
	4NG5QOsHUpGWRTQUGBQoxMs8Lznyvpv4MVygHUwIRXL5uKW00VJ9FTugXKF+IaDu10Zvl6kYLTI
	13d2zcubB4ysufzZDLVHSwx5+oXxgWIRmGdkMaxRmRM2inPUw/nS4XoBbRQYe5/je17OTp6cuom
	+fyn6kX2kU/RxeGbQrCGB6GNck/W2HEuSRQAWweQtuEXL7nYfoPigS8Yt7hDBsSp4+DHbP9NCd3
	A+oJoB+5lvI3KDdDdwJpkoU8eK+C+1oFyn4LMd0GOWAFR6Dopnw686oxp3A7jU4+AszbKbZUSye
	iv
X-Google-Smtp-Source: AGHT+IHDTEoKNAOXhRhKSKxrjU5qG48yI9E+MjaVBQpEEcJGPR4F8Ob0cGzg1BSxM3ny2Nv/ouqDyA==
X-Received: by 2002:a05:600c:c48f:b0:459:dfa8:b854 with SMTP id 5b1f17b1804b1-45b5fbee605mr132566925e9.5.1756393563755;
        Thu, 28 Aug 2025 08:06:03 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 11/23] x86/traps: Make an IDT-specific #PF helper
Date: Thu, 28 Aug 2025 16:03:57 +0100
Message-Id: <20250828150409.901315-12-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250828150409.901315-1-andrew.cooper3@citrix.com>
References: <20250828150409.901315-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

FRED provides %cr2 in the the stack frame, avoiding the need to read %cr2
manually.

Rename do_page_fault() to handle_PF(), and update it to take cr2, still named
addr for consistency.

Introduce a new handle_PF_IDT() which reads %cr2 and conditionally re-enables
interrupts.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

v2:
 * New
---
 xen/arch/x86/traps.c        | 26 ++++++++++++++------------
 xen/arch/x86/x86_64/entry.S |  2 +-
 2 files changed, 15 insertions(+), 13 deletions(-)

diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index 0372f1c386a8..c11d72d47027 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -1670,21 +1670,10 @@ static int fixup_page_fault(unsigned long addr, struct cpu_user_regs *regs)
     return 0;
 }
 
-void asmlinkage do_page_fault(struct cpu_user_regs *regs)
+static void handle_PF(struct cpu_user_regs *regs, unsigned long addr /* cr2 */)
 {
-    unsigned long addr;
     unsigned int error_code;
 
-    addr = read_cr2();
-
-    /*
-     * Don't re-enable interrupts if we were running an IRQ-off region when
-     * we hit the page fault, or we'll break that code.
-     */
-    ASSERT(!local_irq_is_enabled());
-    if ( regs->flags & X86_EFLAGS_IF )
-        local_irq_enable();
-
     /* fixup_page_fault() might change regs->error_code, so cache it here. */
     error_code = regs->error_code;
 
@@ -1745,6 +1734,19 @@ void asmlinkage do_page_fault(struct cpu_user_regs *regs)
     pv_inject_page_fault(regs->error_code, addr);
 }
 
+/*
+ * When using IDT delivery, it is our responsibility to read %cr2.
+ */
+void asmlinkage handle_PF_IDT(struct cpu_user_regs *regs)
+{
+    unsigned long addr = read_cr2();
+
+    if ( regs->flags & X86_EFLAGS_IF )
+        local_irq_enable();
+
+    handle_PF(regs, addr);
+}
+
 /*
  * Early #PF handler to print CR2, error code, and stack.
  *
diff --git a/xen/arch/x86/x86_64/entry.S b/xen/arch/x86/x86_64/entry.S
index 789687488c5f..c02245ac064c 100644
--- a/xen/arch/x86/x86_64/entry.S
+++ b/xen/arch/x86/x86_64/entry.S
@@ -871,7 +871,7 @@ handle_exception_saved:
          * reading %cr2. Otherwise a page fault in the nested interrupt handler
          * would corrupt %cr2.
          */
-        DISPATCH(X86_EXC_PF, do_page_fault)
+        DISPATCH(X86_EXC_PF, handle_PF_IDT)
 
         /* Only re-enable IRQs if they were active before taking the fault */
         testb $X86_EFLAGS_IF >> 8, UREGS_eflags + 1(%rsp)
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 15:10:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 15:10:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099147.1453059 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ureH2-00069k-RW; Thu, 28 Aug 2025 15:10:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099147.1453059; Thu, 28 Aug 2025 15:10: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 1ureH2-00069F-MX; Thu, 28 Aug 2025 15:10:48 +0000
Received: by outflank-mailman (input) for mailman id 1099147;
 Thu, 28 Aug 2025 15:10:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FrxM=3I=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ureCm-00035A-Nm
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 15:06:24 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8f7a945b-8420-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 17:06:23 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-45a1b0cbbbaso9178255e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 08:06:23 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b6f0c6fe5sm78394535e9.5.2025.08.28.08.06.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 28 Aug 2025 08:06:21 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8f7a945b-8420-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756393582; x=1756998382; 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=1g7fXJwyTmagQ+fUZI3KocvezPB5n0D5eI066AmNuaE=;
        b=e40UnWakUmICyJ3pgdWjAez32Xs2J8sJVM2c7HjLii+GhaWcZn6eK24J20LuH2QRvy
         EWmYnAlGG5jZAilVjtrWSPVB5lf8A5HgrJh71h/fO4b9+7OAdCvWnX9kTrKN/wWQ8l3s
         LoqxjghvSqwgQRay1a7REwyTWspU9a3N/F8nA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756393582; x=1756998382;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=1g7fXJwyTmagQ+fUZI3KocvezPB5n0D5eI066AmNuaE=;
        b=XPxRVazyl+pEnLtPsIEM2X2W8/b8bnP3xlAxdSkI8Xor7dXHCHH9g8OH9RIJ7etTBs
         Fgc5AtewBvF0PEfjTswN8yVxLCyyLvi/6w9SzAbr9l/anadmF5rjFkvLOTO1DqoxGUB4
         ZHpwCLhsVQVqUaxFlQj3EN0IeWO+XZZR6Z9OtpkTQwpZd9KueClzQz7IbvfWGhvhocF/
         aFJJlK8zaWpUBjzM6CF4AOMOrRrMVvyCbFbIkkeMSJDIkneFPYQKaVFJkX4mcW5n8SRd
         2qt4tBm0x4jmAaU8tuyqSikjGhbHpyPZ2P4Gye3IUb6nRHDeYwZOHHpVC82lp/VwN5g4
         aTDA==
X-Gm-Message-State: AOJu0YwggQWQZa/Tknqc4onzYLrtPqPXF8kkgkmcgrWZEDUkNiJTpP9L
	ucRsaFFTXWQ//cZVl4/oQvvkr7HpTrY0J/P47XL6IvlaZmbeSeQjhLw+Z9naEUDTqP09z7zVYEP
	NJiNb
X-Gm-Gg: ASbGncvgPQc0Ls3bCZlgSr/0KJg+9KPR4ToZnGQbSrnjU2yYRIgLJSlszT62GfqpCmm
	JtgHS8tyIHYRP/tHtt9i8wvHDw1KzttzCB+pGC8DoMXJ0kql8L0U9htMVnUD9pWl3jZRL7J3pKv
	9Wc8VJy2ipjZhbSpo3ESYoppHSCescz2OzcR3M8sNJotDbghOcMXUHSrHGm16FTiredYi4qAHsV
	UEgi8crdA1flvgkoCzDPRyAnz6ZibLOZ9+4J0mv940CTkgxYzyTs4cE/vTLAlLWA1ujBPCzHcvE
	lDNEgQTnxed6AzAjFZeToMyvfK79I3z2Ffk5XoDgnpnGriPRoFvTt9vMot4SiMFUYsSGzkILEkD
	POB3V7uN8qt7PTQu6Emqt2TZT4LqwOGxGnCNLTY/UE/MsdMzR2zAyxHJaKfEl/bR4w/UqT3Vffd
	lOAEhZvuGVeE4hU4bJe6igSA==
X-Google-Smtp-Source: AGHT+IGFUp4xpm3RLbeJfkywplsFAa8MLRkbelyLTQZbgnqQvj2Y2geapjX8W3GoRwIA0s3EEF5aCg==
X-Received: by 2002:a05:600c:190e:b0:459:e3f8:9308 with SMTP id 5b1f17b1804b1-45b517ad4bbmr217773045e9.11.1756393581895;
        Thu, 28 Aug 2025 08:06:21 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 19/23] x86/pv: Adjust GS handling for FRED mode
Date: Thu, 28 Aug 2025 16:04:05 +0100
Message-Id: <20250828150409.901315-20-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250828150409.901315-1-andrew.cooper3@citrix.com>
References: <20250828150409.901315-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

When FRED is active, hardware automatically swaps GS when changing privilege,
and the SWAPGS instruction is disallowed.

For native OSes using GS as the thread local pointer this is a massive
improvement on the pre-FRED architecture, but under Xen it makes handling PV
guests more complicated.  Specifically, it means that GS_BASE and GS_SHADOW
are the opposite way around in FRED mode, as opposed to IDT mode.

This leads to the following changes:

  * In load_segments(), we have to load both GSes.  Account for this in the
    SWAP() condition and avoid the path with SWAGS.

  * In save_segments(), we need to read GS_KERN rather than GS_BASE.

  * In toggle_guest_mode(), we need to emulate SWAPGS.

  * In do_set_segment_base(), merge the SEGBASE_GS_{USER,KERNEL} cases and
    take FRED into account when choosing which base to update.

    SEGBASE_GS_USER_SEL was already an LKGS invocation (decades before FRED)
    so under FRED needs to be a simple MOV %gs.  Simply skip the SWAPGSes.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

v2:
 * New

I think this functions, but it's not ideal.  The conditions are asymmetric and
awkward.

In principle, MSR_IMM can be as performant as FSGSBASE.  They can literally be
the the same microcode if the microline indexing allows.

Otherwise, the FSGSBASE instructions will be more performant than MSR
accesses (no need to decode %ecx), even with non-serialising writes (which all
FRED hardware should have).  However, use of FSGSBASE often comes with SWAPGS
and that can't be used under FRED.
---
 xen/arch/x86/domain.c             | 22 +++++++++++++++++-----
 xen/arch/x86/pv/domain.c          | 22 ++++++++++++++++++++--
 xen/arch/x86/pv/misc-hypercalls.c | 16 ++++++++++------
 3 files changed, 47 insertions(+), 13 deletions(-)

diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 8089ff929bf7..64922869a625 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -1819,9 +1819,10 @@ static void load_segments(struct vcpu *n)
 
         /*
          * Figure out which way around gsb/gss want to be.  gsb needs to be
-         * the active context, and gss needs to be the inactive context.
+         * the active context, and gss needs to be the inactive context,
+         * unless we're in FRED mode where they're reversed.
          */
-        if ( !(n->arch.flags & TF_kernel_mode) )
+        if ( !(n->arch.flags & TF_kernel_mode) ^ opt_fred )
             SWAP(gsb, gss);
 
         if ( using_svm() && (n->arch.pv.fs | n->arch.pv.gs) <= 3 )
@@ -1842,7 +1843,9 @@ static void load_segments(struct vcpu *n)
 
     if ( !fs_gs_done && !compat )
     {
-        if ( read_cr4() & X86_CR4_FSGSBASE )
+        unsigned long cr4 = read_cr4();
+
+        if ( !(cr4 & X86_CR4_FRED) && (cr4 & X86_CR4_FSGSBASE) )
         {
             __wrgsbase(gss);
             __wrfsbase(n->arch.pv.fs_base);
@@ -1959,6 +1962,9 @@ static void load_segments(struct vcpu *n)
  * Guests however cannot use SWAPGS, so there is no mechanism to modify the
  * inactive GS base behind Xen's back.  Therefore, Xen's copy of the inactive
  * GS base is still accurate, and doesn't need reading back from hardware.
+ *
+ * Under FRED, hardware automatically swaps GS for us, so GS_KERN is the
+ * active GS from the guest's point of view.
  */
 static void save_segments(struct vcpu *v)
 {
@@ -1974,12 +1980,18 @@ static void save_segments(struct vcpu *v)
         if ( read_cr4() & X86_CR4_FSGSBASE )
         {
             fs_base = __rdfsbase();
-            gs_base = __rdgsbase();
+            if ( opt_fred )
+                gs_base = rdmsr(MSR_SHADOW_GS_BASE);
+            else
+                gs_base = __rdgsbase();
         }
         else
         {
             fs_base = rdmsr(MSR_FS_BASE);
-            gs_base = rdmsr(MSR_GS_BASE);
+            if ( opt_fred )
+                gs_base = rdmsr(MSR_SHADOW_GS_BASE);
+            else
+                gs_base = rdmsr(MSR_GS_BASE);
         }
 
         v->arch.pv.fs_base = fs_base;
diff --git a/xen/arch/x86/pv/domain.c b/xen/arch/x86/pv/domain.c
index 9c4785c187dd..5a7b69da5000 100644
--- a/xen/arch/x86/pv/domain.c
+++ b/xen/arch/x86/pv/domain.c
@@ -14,9 +14,10 @@
 #include <asm/cpufeature.h>
 #include <asm/fsgsbase.h>
 #include <asm/invpcid.h>
-#include <asm/spec_ctrl.h>
 #include <asm/pv/domain.h>
 #include <asm/shadow.h>
+#include <asm/spec_ctrl.h>
+#include <asm/traps.h>
 
 #ifdef CONFIG_PV32
 int8_t __read_mostly opt_pv32 = -1;
@@ -480,11 +481,28 @@ void toggle_guest_mode(struct vcpu *v)
      * subsequent context switch won't bother re-reading it.
      */
     gs_base = read_gs_base();
+
+    /*
+     * In FRED mode, not only are the two GSes the other way around (i.e. we
+     * want to read GS_KERN here), the SWAPGS instruction is disallowed so we
+     * have to emulate it.
+     */
+    if ( opt_fred )
+    {
+        unsigned long gs_kern = rdmsr(MSR_SHADOW_GS_BASE);
+
+        wrmsrns(MSR_SHADOW_GS_BASE, gs_base);
+        write_gs_base(gs_kern);
+
+        gs_base = gs_kern;
+    }
+    else
+        asm volatile ( "swapgs" );
+
     if ( v->arch.flags & TF_kernel_mode )
         v->arch.pv.gs_base_kernel = gs_base;
     else
         v->arch.pv.gs_base_user = gs_base;
-    asm volatile ( "swapgs" );
 
     _toggle_guest_pt(v);
 
diff --git a/xen/arch/x86/pv/misc-hypercalls.c b/xen/arch/x86/pv/misc-hypercalls.c
index 4c2abeb4add8..2c9cf50638db 100644
--- a/xen/arch/x86/pv/misc-hypercalls.c
+++ b/xen/arch/x86/pv/misc-hypercalls.c
@@ -11,6 +11,7 @@
 
 #include <asm/debugreg.h>
 #include <asm/fsgsbase.h>
+#include <asm/traps.h>
 
 long do_set_debugreg(int reg, unsigned long value)
 {
@@ -192,11 +193,12 @@ long do_set_segment_base(unsigned int which, unsigned long base)
 
         case SEGBASE_GS_USER:
             v->arch.pv.gs_base_user = base;
-            write_gs_shadow(base);
-            break;
-
+            fallthrough;
         case SEGBASE_GS_KERNEL:
-            write_gs_base(base);
+            if ( (which == SEGBASE_GS_KERNEL) ^ opt_fred )
+                write_gs_base(base);
+            else
+                write_gs_shadow(base);
             break;
         }
         break;
@@ -209,7 +211,8 @@ long do_set_segment_base(unsigned int which, unsigned long base)
          * We wish to update the user %gs from the GDT/LDT.  Currently, the
          * guest kernel's GS_BASE is in context.
          */
-        asm volatile ( "swapgs" );
+        if ( !opt_fred )
+            asm volatile ( "swapgs" );
 
         if ( sel > 3 )
             /* Fix up RPL for non-NUL selectors. */
@@ -247,7 +250,8 @@ long do_set_segment_base(unsigned int which, unsigned long base)
         /* Update the cache of the inactive base, as read from the GDT/LDT. */
         v->arch.pv.gs_base_user = read_gs_base();
 
-        asm volatile ( safe_swapgs );
+        if ( !opt_fred )
+            asm volatile ( safe_swapgs );
         break;
     }
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 15:11:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 15:11:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099155.1453074 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ureHH-0006x9-0v; Thu, 28 Aug 2025 15:11:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099155.1453074; Thu, 28 Aug 2025 15:11: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 1ureHG-0006x0-Tz; Thu, 28 Aug 2025 15:11:02 +0000
Received: by outflank-mailman (input) for mailman id 1099155;
 Thu, 28 Aug 2025 15:11:02 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FrxM=3I=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ureCq-0003MD-0q
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 15:06:28 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9239f747-8420-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 17:06:27 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-45b618b7d33so8990915e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 08:06:27 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b6f0c6fe5sm78394535e9.5.2025.08.28.08.06.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 28 Aug 2025 08:06: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>
X-Inumbo-ID: 9239f747-8420-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756393587; x=1756998387; 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=R5UHi3JKZZBSQAjqQRZMwCcvh6WCJ8lexuxviuRt49A=;
        b=vZkCzojuoL6rd7ozEovLvwhzM9jV5jezsIHKzopIEEE7PJTA+Iqu43V08Gj+JkRUIk
         Z2YDpccObe94mP3ccBCcWoFQoAedpyQr0YD3RZ53TyWIAxE+73Azj7oOdVE+dJRZiYpU
         fGQl+m1991DbXjw1WTnFNrBjkmppVKU/mkekk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756393587; x=1756998387;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=R5UHi3JKZZBSQAjqQRZMwCcvh6WCJ8lexuxviuRt49A=;
        b=F+zQ5HaF3toE4Ik3eVTFNO676S+t9R9HY+AAaAMMCYYDZh6FkIP+tjLx4yGm6/oGRS
         6XAkiIXm8sBZOooo56X0wqg0/Hio8dTAq1SJhJGbhcIqnnlbfK/vmFci73teApPsikgY
         RmKuZeRzDZiA7xx0HWQB/cDMwcJKWRlNtfbx/JjAizGBv11YEnoaqzqKaZH9WKhWyW/y
         dO+KrkTFcJCNcmJiuZ0jBlny/gbx91OIC7iOmQeRW5xEszIK8qTjcsdIb2sAH67UbaBB
         +eC+pxeOoMYmai7lQXMWub2GwxYDcmDzMZ9dnyLoy3LprAlP2hRgeEZSIODiJEnJfkEh
         Eyhg==
X-Gm-Message-State: AOJu0Yxyl5akXLvmuCBFmDjWibPpJ6i43moU205SYPfyWZMVl9A8k5Es
	zRCXGs1Hifi4bGPMOZqybXnSt7oPLmHrF0JmE4VZsvbaM6KB+ZJtDWLCn0n7Vg6JZCPVnVRsZyp
	IReWD
X-Gm-Gg: ASbGncsadCPPmfm/VGH3Ry9o7rJCov6DgGOVbeiAcSUrkYP6l+sCHowceSbKtX+adx7
	7JtwqUd+vJdh2BoyJP+9HA96c17ECePZjCgVxiAtSKKnLShYdTbBovL1UzQW4qMhzP071ZTu8ho
	QMXXOaHFKrB93WTEIXlbqVnuNa85ULyw8JvEmPyUwx/fKyjxgg21YpNgeYnqAjDsmlCnMgiWbbP
	LVIZeHexGQFT/VL6UweYcCHdIDhVq/qJ38LV77X4NbCgtcwHpof+DPITYFEpDB87hytbj3h/+k9
	OWdPIluN0GpcfPhAZlglk2Vn91+4UrdPK3Nvtl6wisEaMZx91MJXm8mGDEHn41n94QYaOlRlutm
	VlnOJs8RIwBIyq/3iRcj0yd4LYOyKpFaAHeWkIP3RJbzw+rDuv5BTDkcfwfYQdoz+BLzENQPlJx
	H9All+tGjl7WrI1zaaO/hOrg==
X-Google-Smtp-Source: AGHT+IFGoJ2SLBkL/auKF9GRrFDbj7sPaf7iO5HhIpsN8Hs1nYMPp9x3mhpXNFRUZ+kyFnEcjie0cA==
X-Received: by 2002:a05:600c:314a:b0:45b:7aae:7a92 with SMTP id 5b1f17b1804b1-45b7aae7dcemr20439225e9.21.1756393586589;
        Thu, 28 Aug 2025 08:06:26 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 23/23] x86/pv: Adjust eflags handling for FRED mode
Date: Thu, 28 Aug 2025 16:04:09 +0100
Message-Id: <20250828150409.901315-24-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250828150409.901315-1-andrew.cooper3@citrix.com>
References: <20250828150409.901315-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

ERETU, unlike IRET, requires the sticky-1 bit (bit 2) be set, and reserved
bits to be clear.  Notably this means that dom0_construct() must set
X86_EFLAGS_MBS it in order for a PV dom0 to start.

Adjust arch_set_info_guest*() and hypercall_iret() which consume flags to
clamp the reserved bits.

This is a minor ABI change, but by the same argument as commit
9f892f84c279 ("x86/domctl: Stop using XLAT_cpu_user_regs()"), this change will
happen naturally when the vCPU schedules.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

v2:
 * New

The handling of VM is complicated.

It turns out that it's simply ignored by IRET in Long Mode (i.e. clearing it
commit 0e47f92b0725 ("x86: force EFLAGS.IF on when exiting to PV guests")
wasn't actually necessary) but ERETU does care.

But, it's unclear how to handle this in in arch_set_info().  We must preserve
it for HVM guests (whih can use vm86 mode).  PV32 has special handling but
only in hypercall_iret(), not in arch_set_info().
---
 xen/arch/x86/domain.c                | 4 ++--
 xen/arch/x86/hvm/domain.c            | 4 ++--
 xen/arch/x86/include/asm/x86-defns.h | 7 +++++++
 xen/arch/x86/pv/dom0_build.c         | 2 +-
 xen/arch/x86/pv/iret.c               | 8 +++++---
 5 files changed, 17 insertions(+), 8 deletions(-)

diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 64922869a625..c1880324f7a9 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -1273,7 +1273,7 @@ int arch_set_info_guest(
         v->arch.user_regs.rax               = c.nat->user_regs.rax;
         v->arch.user_regs.rip               = c.nat->user_regs.rip;
         v->arch.user_regs.cs                = c.nat->user_regs.cs;
-        v->arch.user_regs.rflags            = c.nat->user_regs.rflags;
+        v->arch.user_regs.rflags            = (c.nat->user_regs.rflags & X86_EFLAGS_ALL) | X86_EFLAGS_MBS;
         v->arch.user_regs.rsp               = c.nat->user_regs.rsp;
         v->arch.user_regs.ss                = c.nat->user_regs.ss;
         v->arch.pv.es                       = c.nat->user_regs.es;
@@ -1297,7 +1297,7 @@ int arch_set_info_guest(
         v->arch.user_regs.eax               = c.cmp->user_regs.eax;
         v->arch.user_regs.eip               = c.cmp->user_regs.eip;
         v->arch.user_regs.cs                = c.cmp->user_regs.cs;
-        v->arch.user_regs.eflags            = c.cmp->user_regs.eflags;
+        v->arch.user_regs.eflags            = (c.cmp->user_regs.eflags & X86_EFLAGS_ALL) | X86_EFLAGS_MBS;
         v->arch.user_regs.esp               = c.cmp->user_regs.esp;
         v->arch.user_regs.ss                = c.cmp->user_regs.ss;
         v->arch.pv.es                       = c.cmp->user_regs.es;
diff --git a/xen/arch/x86/hvm/domain.c b/xen/arch/x86/hvm/domain.c
index 048f29ae4911..1e874d598952 100644
--- a/xen/arch/x86/hvm/domain.c
+++ b/xen/arch/x86/hvm/domain.c
@@ -194,7 +194,7 @@ int arch_set_info_hvm_guest(struct vcpu *v, const struct vcpu_hvm_context *ctx)
         uregs->rsi    = regs->esi;
         uregs->rdi    = regs->edi;
         uregs->rip    = regs->eip;
-        uregs->rflags = regs->eflags;
+        uregs->rflags = (regs->eflags & X86_EFLAGS_ALL) | X86_EFLAGS_MBS;
 
         v->arch.hvm.guest_cr[0] = regs->cr0;
         v->arch.hvm.guest_cr[3] = regs->cr3;
@@ -245,7 +245,7 @@ int arch_set_info_hvm_guest(struct vcpu *v, const struct vcpu_hvm_context *ctx)
         uregs->rsi    = regs->rsi;
         uregs->rdi    = regs->rdi;
         uregs->rip    = regs->rip;
-        uregs->rflags = regs->rflags;
+        uregs->rflags = (regs->rflags & X86_EFLAGS_ALL) | X86_EFLAGS_MBS;
 
         v->arch.hvm.guest_cr[0] = regs->cr0;
         v->arch.hvm.guest_cr[3] = regs->cr3;
diff --git a/xen/arch/x86/include/asm/x86-defns.h b/xen/arch/x86/include/asm/x86-defns.h
index 0a0ba83de786..edeb0b4ff95a 100644
--- a/xen/arch/x86/include/asm/x86-defns.h
+++ b/xen/arch/x86/include/asm/x86-defns.h
@@ -27,6 +27,13 @@
     (X86_EFLAGS_CF | X86_EFLAGS_PF | X86_EFLAGS_AF |   \
      X86_EFLAGS_ZF | X86_EFLAGS_SF | X86_EFLAGS_OF)
 
+#define X86_EFLAGS_ALL                                          \
+    (X86_EFLAGS_ARITH_MASK | X86_EFLAGS_TF | X86_EFLAGS_IF |    \
+     X86_EFLAGS_DF | X86_EFLAGS_OF | X86_EFLAGS_IOPL |          \
+     X86_EFLAGS_NT | X86_EFLAGS_RF | X86_EFLAGS_VM |            \
+     X86_EFLAGS_AC | X86_EFLAGS_VIF | X86_EFLAGS_VIP |          \
+     X86_EFLAGS_ID)
+
 /*
  * Intel CPU flags in CR0
  */
diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index 21158ce1812e..f9bbbea2ff70 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -1021,7 +1021,7 @@ static int __init dom0_construct(const struct boot_domain *bd)
     regs->rip = parms.virt_entry;
     regs->rsp = vstack_end;
     regs->rsi = vstartinfo_start;
-    regs->eflags = X86_EFLAGS_IF;
+    regs->eflags = X86_EFLAGS_IF | X86_EFLAGS_MBS;
 
     /*
      * We don't call arch_set_info_guest(), so some initialisation needs doing
diff --git a/xen/arch/x86/pv/iret.c b/xen/arch/x86/pv/iret.c
index d3a1fb2c685b..39ce316b8d91 100644
--- a/xen/arch/x86/pv/iret.c
+++ b/xen/arch/x86/pv/iret.c
@@ -80,8 +80,9 @@ long do_iret(void)
 
     regs->rip    = iret_saved.rip;
     regs->cs     = iret_saved.cs | 3; /* force guest privilege */
-    regs->rflags = ((iret_saved.rflags & ~(X86_EFLAGS_IOPL|X86_EFLAGS_VM))
-                    | X86_EFLAGS_IF);
+    regs->rflags = ((iret_saved.rflags & X86_EFLAGS_ALL &
+                     ~(X86_EFLAGS_IOPL | X86_EFLAGS_VM)) |
+                    X86_EFLAGS_IF | X86_EFLAGS_MBS);
     regs->rsp    = iret_saved.rsp;
     regs->ss     = iret_saved.ss | 3; /* force guest privilege */
 
@@ -143,7 +144,8 @@ int compat_iret(void)
     if ( VM_ASSIST(v->domain, architectural_iopl) )
         v->arch.pv.iopl = eflags & X86_EFLAGS_IOPL;
 
-    regs->eflags = (eflags & ~X86_EFLAGS_IOPL) | X86_EFLAGS_IF;
+    regs->eflags = ((eflags & X86_EFLAGS_ALL & ~X86_EFLAGS_IOPL) |
+                    X86_EFLAGS_IF | X86_EFLAGS_MBS);
 
     if ( unlikely(eflags & X86_EFLAGS_VM) )
     {
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 15:11:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 15:11:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099156.1453081 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ureHH-00070f-GT; Thu, 28 Aug 2025 15:11:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099156.1453081; Thu, 28 Aug 2025 15:11: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 1ureHH-0006zr-5i; Thu, 28 Aug 2025 15:11:03 +0000
Received: by outflank-mailman (input) for mailman id 1099156;
 Thu, 28 Aug 2025 15:11:02 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FrxM=3I=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ureCm-0003MD-Qb
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 15:06:24 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 904c730d-8420-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 17:06:24 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-45a1b065d59so7219705e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 08:06:24 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b6f0c6fe5sm78394535e9.5.2025.08.28.08.06.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 28 Aug 2025 08:06: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>
X-Inumbo-ID: 904c730d-8420-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756393583; x=1756998383; 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=LcUNjSmRE8zrBdNfJ83+ye8WTIwfGJ+o51CvT8zs2YM=;
        b=A0TiPBD7EUGGlJ2Mgeg5s3yiAOeVJEF+0T6AT44NO++MWOYOQIYWLX7mqvF7qg9SMB
         G0x9AmbKlkP4jU5Vnac45fmxP7k3MuVuI27k1rPvh+LgAx/2kXdvR6N6blHueXnITDeU
         kU/+Lx88es9TBBX61x0j9919kNM64FyUF9rUM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756393583; x=1756998383;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=LcUNjSmRE8zrBdNfJ83+ye8WTIwfGJ+o51CvT8zs2YM=;
        b=ffBU7BMDyQ1pIW40h7t9mOWMBJueyNWL9fKZBrAhPvlxY+ZYbU2byUAgrHmC1y8Fgy
         WZ23yzV8aIST0UQ0+Ix4HX+5IK/vnnGUAOFIYtt7NFJwl+8Bv0kYpxQUCOR9RarKsXGf
         +K2reFp4M4V8xlHjo0kd1WdPI9dvsmL6Ss1kxRe+BerGY96E6r9sNHf3FSbX7M3AhxI6
         nNOmp/8Ph+h/r+7Tr7cnNyhWjKLqMuX13qdcDxySiqFiqDBreq0/faCG6wI843VJVmSP
         5hmuagDsCm2Dhn6O8RuhC+cbZU/aG7aHM2XBsPH4kwN30DrMBq1LCxEwC+/A6uCJe2ae
         JXRA==
X-Gm-Message-State: AOJu0YxSM++k+Il5EkItIVfFFZCVi2yR95LwBEWkghrUiMKpWjNw051d
	tTAMgBuislPMx0RwHDIp/VRQENBnlCOTejfkbPOCXj9K/e9SBbrscMDFPlUxW9qEjH32khDf1Df
	XbBiX
X-Gm-Gg: ASbGnctmj+yCPRqllr0Aj3eTsRom2G0J+ey2EmbucXX60qHldcJcQxwgEssmAc+BQ3R
	AdOaqmQRNCCZafUMvpO0MlKM1In68leufN8qV2zYLJI3lS8gNI/LCv98x9NelJznWjXL+5NT6QX
	/0v2Q/T6Stq7tLhtPziNLYXFV9sq9LRr3qghGpiFiPS5ET7ULHzJsy5tSu73AtyJoCiB7suD/re
	1NLjBrWyrcoH+Nn9LHGwsfUAwzAWGmvx5i/0bAKgfHuo4C8078cqnzX7lpCCZ3R0s3Uu8GgS6P8
	SJVTBIKLRqBkSsKv+MVFvgf8+5D/Ac6m7wltYqDFHeJYIdJp8X/aeDHLULkciDsSAf0RWHqaxzd
	WGn6ZTccdPG2Qytp9WiEKAa7XBhBymkvp+WZGIZ4QSO7ZzuOvZFsoIqK67Nj/SVuT1/RVAL49dM
	HO
X-Google-Smtp-Source: AGHT+IGQffCxU2zMYu+MQa1R3h5Bc5ZyjQroxmWWfsryOtQ1GbfkVA7yfgV6Ah9VyQdpRWl6Ga3HZA==
X-Received: by 2002:a05:600c:1caa:b0:458:bbed:a806 with SMTP id 5b1f17b1804b1-45b6503919emr85513525e9.22.1756393583190;
        Thu, 28 Aug 2025 08:06:23 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 20/23] x86/pv: Exception handling in FRED mode
Date: Thu, 28 Aug 2025 16:04:06 +0100
Message-Id: <20250828150409.901315-21-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250828150409.901315-1-andrew.cooper3@citrix.com>
References: <20250828150409.901315-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Under FRED, entry_from_pv() handles everything.  To start with, implement
exception handling in the same manner as entry_from_xen(), although we can
unconditionally enable interrupts after the async/fatal events.

After entry_from_pv() returns, test_all_events() needs to run to perform
exception and interrupt injection.  Split entry_FRED_R3() into two and
introduce eretu_exit_to_guest() as the latter half, coming unilaterally from
restore_all_guest().

For all of this, there is a slightly complicated relationship with CONFIG_PV.
entry_FRED_R3() must exist irrespective of CONFIG_PV, because it's the
entrypoint registered with hardware.  For simplicity, entry_from_pv() is
always called, but it collapses into fatal_trap() in the !PV case.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

v2:
 * New
---
 xen/arch/x86/traps.c             | 76 +++++++++++++++++++++++++++++++-
 xen/arch/x86/x86_64/entry-fred.S | 13 +++++-
 xen/arch/x86/x86_64/entry.S      |  4 +-
 3 files changed, 90 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index 67763bec0dc5..72df446a6a78 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -2265,9 +2265,83 @@ void asmlinkage check_ist_exit(const struct cpu_user_regs *regs, bool ist_exit)
 
 void asmlinkage entry_from_pv(struct cpu_user_regs *regs)
 {
+    struct fred_info *fi = cpu_regs_fred_info(regs);
+    uint8_t type = regs->fred_ss.type;
+    uint8_t vec = regs->fred_ss.vector;
+
     /* Copy fred_ss.vector into entry_vector as IDT delivery would have done. */
-    regs->entry_vector = regs->fred_ss.vector;
+    regs->entry_vector = vec;
+
+    if ( !IS_ENABLED(CONFIG_PV) )
+        goto fatal;
+
+    /*
+     * First, handle the asynchronous or fatal events.  These are either
+     * unrelated to the interrupted context, or may not have valid context
+     * recorded, and all have special rules on how/whether to re-enable IRQs.
+     */
+    switch ( type )
+    {
+    case X86_ET_EXT_INTR:
+        return do_IRQ(regs);
 
+    case X86_ET_NMI:
+        return do_nmi(regs);
+
+    case X86_ET_HW_EXC:
+        switch ( vec )
+        {
+        case X86_EXC_DF: return do_double_fault(regs);
+        case X86_EXC_MC: return do_machine_check(regs);
+        }
+        break;
+    }
+
+    /*
+     * With the asynchronous events handled, what remains are the synchronous
+     * ones.  Guest context always had interrupts enabled.
+     */
+    local_irq_enable();
+
+    switch ( type )
+    {
+    case X86_ET_HW_EXC:
+    case X86_ET_PRIV_SW_EXC:
+    case X86_ET_SW_EXC:
+        switch ( vec )
+        {
+        case X86_EXC_PF:  handle_PF(regs, fi->edata); break;
+        case X86_EXC_GP:  do_general_protection(regs); break;
+        case X86_EXC_UD:  do_invalid_op(regs); break;
+        case X86_EXC_NM:  do_device_not_available(regs); break;
+        case X86_EXC_BP:  do_int3(regs); break;
+        case X86_EXC_DB:  handle_DB(regs, fi->edata); break;
+
+        case X86_EXC_DE:
+        case X86_EXC_OF:
+        case X86_EXC_BR:
+        case X86_EXC_NP:
+        case X86_EXC_SS:
+        case X86_EXC_MF:
+        case X86_EXC_AC:
+        case X86_EXC_XM:
+            do_trap(regs);
+            break;
+
+        case X86_EXC_CP:  do_entry_CP(regs); break;
+
+        default:
+            goto fatal;
+        }
+        break;
+
+    default:
+        goto fatal;
+    }
+
+    return;
+
+ fatal:
     fatal_trap(regs, false);
 }
 
diff --git a/xen/arch/x86/x86_64/entry-fred.S b/xen/arch/x86/x86_64/entry-fred.S
index 3c3320df22cb..07684f38a078 100644
--- a/xen/arch/x86/x86_64/entry-fred.S
+++ b/xen/arch/x86/x86_64/entry-fred.S
@@ -15,9 +15,20 @@ FUNC(entry_FRED_R3, 4096)
         mov     %rsp, %rdi
         call    entry_from_pv
 
+#ifndef CONFIG_PV
+        BUG     /* Not Reached */
+#else
+        GET_STACK_END(14)
+        movq    STACK_CPUINFO_FIELD(current_vcpu)(%r14), %rbx
+
+        jmp     test_all_events
+#endif
+END(entry_FRED_R3)
+
+FUNC(eretu_exit_to_guest)
         POP_GPRS
         eretu
-END(entry_FRED_R3)
+END(eretu_exit_to_guest)
 
         /* The Ring0 entrypoint is at Ring3 + 0x100. */
         .org entry_FRED_R3 + 0x100, 0xcc
diff --git a/xen/arch/x86/x86_64/entry.S b/xen/arch/x86/x86_64/entry.S
index ca446c6ff0ce..0692163faa44 100644
--- a/xen/arch/x86/x86_64/entry.S
+++ b/xen/arch/x86/x86_64/entry.S
@@ -63,7 +63,7 @@ UNLIKELY_END(syscall_no_callback)
         /* Conditionally clear DF */
         and   %esi, UREGS_eflags(%rsp)
 /* %rbx: struct vcpu */
-test_all_events:
+LABEL(test_all_events, 0)
         ASSERT_NOT_IN_ATOMIC
         cli                             # tests must not race interrupts
 /*test_softirqs:*/
@@ -152,6 +152,8 @@ END(switch_to_kernel)
 FUNC_LOCAL(restore_all_guest)
         ASSERT_INTERRUPTS_DISABLED
 
+        ALTERNATIVE "", "jmp eretu_exit_to_guest", X86_FEATURE_XEN_FRED
+
         /* Stash guest SPEC_CTRL value while we can read struct vcpu. */
         mov VCPU_arch_msrs(%rbx), %rdx
         mov VCPUMSR_spec_ctrl_raw(%rdx), %r15d
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 15:11:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 15:11:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099157.1453086 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ureHH-00075s-QS; Thu, 28 Aug 2025 15:11:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099157.1453086; Thu, 28 Aug 2025 15:11: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 1ureHH-00074x-FN; Thu, 28 Aug 2025 15:11:03 +0000
Received: by outflank-mailman (input) for mailman id 1099157;
 Thu, 28 Aug 2025 15:11:02 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FrxM=3I=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ureCB-0003MD-7Z
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 15:05:47 +0000
Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com
 [2a00:1450:4864:20::434])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 79d61b1e-8420-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 17:05:46 +0200 (CEST)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-3c6743a10e3so571431f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 08:05:46 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b6f0c6fe5sm78394535e9.5.2025.08.28.08.05.44
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 28 Aug 2025 08:05: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>
X-Inumbo-ID: 79d61b1e-8420-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756393546; x=1756998346; 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=uyoRKmd85lnptHe4KkVk9SzU0cCZF0BFObgSAUexGuc=;
        b=nRFWgBW9wZRysTPUVFb6XPMSUMrpM2uFH6RUjp4o8RaN0yopA7JOqE7xMvFM66rq0U
         3NnxjB47YOBpB/MpXSLAYQA5FHYWMPIxpiwCBtu1FNyDe+s2GJjNZB0XuQ2ZyU36H1X8
         Y4KZe5u3Z8WNf/6P+8GkOWZb6mf1zwLpNpFIA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756393546; x=1756998346;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=uyoRKmd85lnptHe4KkVk9SzU0cCZF0BFObgSAUexGuc=;
        b=J+umaYijWECLcUC9cOSef5CWDns/Sh9gPF6gItv3eFvS0rLyqeB0+sDCQLC/2lp34C
         2gRm97fqR944o4nTs+3a2iHS0v6EIQvMHr9QyAQh+PzwYmDWH1DqnAd/bafzGbduFr3L
         R9D8tMw9K52+AXrzlVcADyLE3kMSmiOtaX+xvpeOVu82DF8Wp5y+aKqaVDl1rB2cCT6m
         i5Z4S5sq6NmxClk7bLm/26eegrCCZElIPL2l9UemXgo6Nyj8ZVQXHrE6aT8r1rZ11rMh
         PF7q51+k3CCZXocep/QKGhdFMpZ7chJsdVokNxplPU0588CwnuvQdMrOV6Bw5ZesvPCw
         lkyg==
X-Gm-Message-State: AOJu0YwWChoyq1J11kjWucS0yjJTBThZs3Lj19xKRfUYKccPZkwvEmfY
	QXPtBGh+QYHeBZ5aTytrH5z/klUr1VLyV9cyKkPkgQ8WxA/Wv5lBGqT5PRP2Bg0pqh1LazeMR74
	VRcW7
X-Gm-Gg: ASbGncspW8CksPvDy02xbzVlWVOhLWiH7jGlClVH39e8BR7yFZ5vq/rSJzxY9B8JxwK
	DDY3iO0wJj7eQbBj8dBRCLpnpDDAi9BzrGrLHPioVoSuST0/WetVxwXAK2pC+ekH9ujpTMzW+DX
	n1CT/ljueKzV9OOoTREak+bNJtD3qxJlFFQBkv5Y/UV6THaxTbxZNMfUt1oMWNDYvlhLaLMgWG5
	A41YUb3e3IGVH5iaN1evFMZ3m4z89S4sbTe/5Zu2E5x4YlbqVE4c30Mek8kiBJ81yhO6NRxSgGF
	J65/xb9wtFSMQDxQJZW6lDH4SYwidmK6wS2BZ6ew9gvKVXz+NQJ6adJxxwAXtN3l+Ip4rFNMjbb
	ADEDsOYRm4BJliXDoYpAX76TX6jPS7zXcesOx2F7cPYmdXmUeue6i77JkeaaBZKPjxHs+ANmoPs
	zPQH2GHWwHSOAl95qv1b8sdg==
X-Google-Smtp-Source: AGHT+IFnwmBxsqBYVYVLE7cVnGwKmyAM64jmOocrbPJsDrYMVP8sWXOmeLFkWvIym0QdfvkcIZEViQ==
X-Received: by 2002:a05:6000:2892:b0:3ce:a06e:f248 with SMTP id ffacd0b85a97d-3cea06ef646mr1200453f8f.17.1756393545770;
        Thu, 28 Aug 2025 08:05:45 -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>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 05/23] x86/S3: Switch to using RSTORSSP to recover SSP on resume
Date: Thu, 28 Aug 2025 16:03:51 +0100
Message-Id: <20250828150409.901315-6-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250828150409.901315-1-andrew.cooper3@citrix.com>
References: <20250828150409.901315-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Under FRED, SETSSBSY is disallowed, and we want to be setting up FRED prior to
setting up shadow stacks.  Luckily, RSTORSSP will also work in this case.

This involves a new type of shadow stack token, the Restore Token, which is
distinguished from the Supervisor Token by pointing to the adjacent slot on
the shadow stack rather than pointing at itself.

In the short term, this logic still needs to load MSR_PL0_SSP.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/acpi/wakeup_prot.S | 31 +++++++++++++++----------------
 1 file changed, 15 insertions(+), 16 deletions(-)

diff --git a/xen/arch/x86/acpi/wakeup_prot.S b/xen/arch/x86/acpi/wakeup_prot.S
index 0f02ea7b4b9a..fceb4ca353f7 100644
--- a/xen/arch/x86/acpi/wakeup_prot.S
+++ b/xen/arch/x86/acpi/wakeup_prot.S
@@ -90,7 +90,7 @@ LABEL(s3_resume)
         mov     %rcx, STACK_CPUINFO_FIELD(cr4)(%r15)
         mov     %rcx, %cr4
 
-        /* WARNING! call/ret now fatal (iff SHSTK) until SETSSBSY loads SSP */
+        /* WARNING! CALL/RET now fatal (iff SHSTK) until RSTORSSP loads SSP */
 
 #if defined(CONFIG_XEN_SHSTK)
         test    $CET_SHSTK_EN, %al
@@ -98,32 +98,31 @@ LABEL(s3_resume)
 
         /*
          * Restoring SSP is a little complicated, because we are intercepting
-         * an in-use shadow stack.  Write a temporary token under the stack,
-         * so SETSSBSY will successfully load a value useful for us, then
-         * reset MSR_PL0_SSP to its usual value and pop the temporary token.
+         * an in-use shadow stack.  Write a Restore Token under the stack, and
+         * use RSTORSSP to load it.  RSTORSSP converts the token to a
+         * Previous-SSP Token, which we discard.
          */
         mov     saved_ssp(%rip), %rdi
 
-        /* Construct the temporary supervisor token under SSP. */
-        sub     $8, %rdi
-
-        /* Load it into MSR_PL0_SSP. */
+        /* Calculate MSR_PL0_SSP from SSP. */
         mov     $MSR_PL0_SSP, %ecx
         mov     %rdi, %rdx
         shr     $32, %rdx
         mov     %edi, %eax
-        wrmsr
-
-        /* Write the temporary token onto the shadow stack, and activate it. */
-        wrssq   %rdi, (%rdi)
-        setssbsy
-
-        /* Reset MSR_PL0_SSP back to its normal value. */
         and     $~(STACK_SIZE - 1), %eax
         or      $(PRIMARY_SHSTK_SLOT + 1) * PAGE_SIZE - 8, %eax
         wrmsr
 
-        /* Pop the temporary token off the stack. */
+        /*
+         * A Restore Token's value is &token + 8 + 64BIT (bit 0).
+         * We want to put this on the shstk at SSP - 8.
+         */
+        lea     1(%rdi), %rax
+        sub     $8, %rdi
+        wrssq   %rax, (%rdi)
+        rstorssp (%rdi)
+
+        /* Discard the Previous-SSP Token from the shstk. */
         mov     $2, %eax
         incsspd %eax
 #endif /* CONFIG_XEN_SHSTK */
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 15:11:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 15:11:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099158.1453091 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ureHI-0007Dq-6h; Thu, 28 Aug 2025 15:11:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099158.1453091; Thu, 28 Aug 2025 15:11: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 1ureHH-0007CY-U9; Thu, 28 Aug 2025 15:11:03 +0000
Received: by outflank-mailman (input) for mailman id 1099158;
 Thu, 28 Aug 2025 15:11:02 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FrxM=3I=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ureCc-0003MD-T9
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 15:06:14 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8a3de1a5-8420-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 17:06:14 +0200 (CEST)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-45b618e067eso15236585e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 08:06:14 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b6f0c6fe5sm78394535e9.5.2025.08.28.08.06.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 28 Aug 2025 08:06: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>
X-Inumbo-ID: 8a3de1a5-8420-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756393573; x=1756998373; 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=MY3lQ3Gg5F0xoJy8yGYu7zB1wis52ZSXOTHimYFvGOs=;
        b=Q9uOCq3fIQPBMWjLXoy5eDvPyqZpzxqVQqauARJAyzbP+b5wNNedbaaCWSSZJNjygS
         ySylziICJpVLxJG4BSBeAtuuxpzY0FJb/TIVctWfB91p15BvtaMnhJFyo8gtoBI4JmZ8
         ls94S/r83XnUzYznHpyi74SHdkQSKkvao54zo=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756393573; x=1756998373;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=MY3lQ3Gg5F0xoJy8yGYu7zB1wis52ZSXOTHimYFvGOs=;
        b=UmwJtB1eIkgHrn+07ZlmZp64iyLKKwsz/kV5hOYptDT6MVqlKYVC0SIffxaLSVWTuD
         XngujIzqcaTDa8NGLLZ4TnDX0OCWECKS3KJdyywceI/eQEObD550n+tAVvAJ5yvpwkpH
         +tk/fAbLWYJtvs6JL5L6v+hdas19FcowQO3XE/b8bIDl2tGbRecl+nsznhcDl6tBHXap
         OASVVeekA69S/OQyaULvzU0t38iLs4GU4HIie2lpMgYvVj0YJNqgaFi12RHR2GTMTC+y
         QdBbqeo34SWOeOXKRBvWTnjLAqm9vT2LgT+TvkJmDG4ZhifO5m4svF6RQpdzuvhCdi3A
         PFkg==
X-Gm-Message-State: AOJu0YxZSRMVGQGmorklsuxfG5o4Ibfm56F7JKOrON3DaZ9lY+T8cDWn
	ECU+VSpTtaagHfe75zoETbmSOr78vEG933ssvi5I57OYI3DFLMaYm+d9IdN1o6PhTc6x0PfbSWH
	KAZBX
X-Gm-Gg: ASbGncsFaZxd+Qx2jvgoukj5DMhWBLXE+WUlA0bEzMYKhoXp5tJnCipEItrjxCiy2+5
	RyVQAAUJDDDIvUv5jMaYQrF4243yHf+rlBVFwXobKEMKo8ZPQUoy+aqk5o6hjh6HX87cgD5zSSr
	O2B9boCHsJFSh9dGxa7WB0kgeMfhiaIXVy8ft1FZ6h5AeOy2iv2ja6dn3TRgESpVkxbldQ2iVX+
	Q0trzIL9ZuKOke45OZZEiiss3Xp2NIyaz29YStopGqMqm5o7aPP7NB5K6Gv+xyhFisI8kbsxPow
	EqHxJx8myBeD0DqEduBgd/dkPQN1qQlCnnnkFV2o6czY0nvheBLrc3lLonspMS30aT1K7My8PkK
	eP+aJW13+y4nq22tdtX3RVlmRR7FkHfv1ao2cqeT+0AAqpTj66VpwmSg8RRUREoJpR3EU1Uvj7U
	is
X-Google-Smtp-Source: AGHT+IFQVvC2/C4PiSOWq/sn2hG6BV8Q8EC4V59JjEG6KGMP3c4wfKe9Oiz9FcakG4VgHBJE4PBv4A==
X-Received: by 2002:a05:600c:5246:b0:458:6f13:aa4a with SMTP id 5b1f17b1804b1-45b68b79262mr94975525e9.6.1756393573084;
        Thu, 28 Aug 2025 08:06:13 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 14/23] x86/traps: Enable FRED when requested
Date: Thu, 28 Aug 2025 16:04:00 +0100
Message-Id: <20250828150409.901315-15-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250828150409.901315-1-andrew.cooper3@citrix.com>
References: <20250828150409.901315-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

With the shadow stack and exception handling adjustements in place, we can now
activate FRED when appropriate.  Note that opt_fred is still disabled by
default.

Introduce init_fred() to set up all the MSRs relevant for FRED.  FRED uses
MSR_STAR (entries from Ring3 only), and MSR_FRED_SSP_SL0 aliases MSR_PL0_SSP
when CET-SS is active.  Otherwise, they're all new MSRs.

With init_fred() existing, load_system_tables() and legacy_syscall_init()
should only be used when setting up IDT delivery.  Insert ASSERT()s to this
effect, and adjust the various *_init() functions to make this property true.

Per the documentation, ap_early_traps_init() is responsible for switching off
the boot GDT, which needs doing even in FRED mode.

Finally, set CR4.FRED in {bsp,ap}_early_traps_init().

Xen can now boot in FRED mode up until starting a PV guest, where it faults
because IRET is not permitted to change privilege.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

v2:
 * Explain the lack of BUG_ON()
 * Posion SL1

In principle we can stop allocating the IDT and TSS for CPUs now, although I
want to get shutdown and kexec working before making this optimisation, in
case there's something I've overlooked.
---
 xen/arch/x86/include/asm/current.h |  3 ++
 xen/arch/x86/include/asm/traps.h   |  2 +
 xen/arch/x86/traps-setup.c         | 86 +++++++++++++++++++++++++++---
 3 files changed, 85 insertions(+), 6 deletions(-)

diff --git a/xen/arch/x86/include/asm/current.h b/xen/arch/x86/include/asm/current.h
index 35cc61fa88e7..53b0d3cf143d 100644
--- a/xen/arch/x86/include/asm/current.h
+++ b/xen/arch/x86/include/asm/current.h
@@ -23,6 +23,9 @@
  * 2 - NMI IST stack
  * 1 - #MC IST stack
  * 0 - IST Shadow Stacks (4x 1k, read-only)
+ *
+ * In FRED mode, #DB and NMI do not need special stacks, so their IST stacks
+ * are unused.
  */
 
 /*
diff --git a/xen/arch/x86/include/asm/traps.h b/xen/arch/x86/include/asm/traps.h
index 73097e957d05..5d7504bc44d1 100644
--- a/xen/arch/x86/include/asm/traps.h
+++ b/xen/arch/x86/include/asm/traps.h
@@ -16,6 +16,8 @@ void traps_init(void);
 void bsp_traps_reinit(void);
 void percpu_traps_init(void);
 
+void nocall entry_FRED_R3(void);
+
 extern unsigned int ler_msr;
 
 const char *vector_name(unsigned int vec);
diff --git a/xen/arch/x86/traps-setup.c b/xen/arch/x86/traps-setup.c
index d77be8f83921..535b53969678 100644
--- a/xen/arch/x86/traps-setup.c
+++ b/xen/arch/x86/traps-setup.c
@@ -59,6 +59,8 @@ static void load_system_tables(void)
         .limit = sizeof(bsp_idt) - 1,
     };
 
+    ASSERT(opt_fred == 0);
+
     /*
      * Set up the TSS.  Warning - may be live, and the NMI/#MC must remain
      * valid on every instruction boundary.  (Note: these are all
@@ -191,6 +193,8 @@ static void legacy_syscall_init(void)
     unsigned char *stub_page;
     unsigned int offset;
 
+    ASSERT(opt_fred == 0);
+
     /* No PV guests?  No need to set up SYSCALL/SYSENTER infrastructure. */
     if ( !IS_ENABLED(CONFIG_PV) )
         return;
@@ -268,6 +272,52 @@ static void __init init_ler(void)
     setup_force_cpu_cap(X86_FEATURE_XEN_LBR);
 }
 
+/*
+ * Set up all MSRs relevant for FRED event delivery.
+ *
+ * Xen does not use any of the optional config in MSR_FRED_CONFIG, so all that
+ * is needed is the entrypoint.
+ *
+ * Because FRED always provides a good stack, NMI and #DB do not need any
+ * special treatment.  Only #DF needs another stack level, and #MC for the
+ * offchance that Xen's main stack suffers an uncorrectable error.
+ *
+ * This makes Stack Level 1 unused, but we use #DB's stacks, and with the
+ * regular and shadow stacks reversed as posion to guarantee that any use
+ * escalates to #DF.
+ *
+ * FRED reuses MSR_STAR to provide the segment selector values to load on
+ * entry from Ring3.  Entry from Ring0 leave %cs and %ss unmodified.
+ */
+static void init_fred(void)
+{
+    unsigned long stack_top = get_stack_bottom() & ~(STACK_SIZE - 1);
+
+    ASSERT(opt_fred == 1);
+
+    wrmsrns(MSR_STAR, XEN_MSR_STAR);
+    wrmsrns(MSR_FRED_CONFIG, (unsigned long)entry_FRED_R3);
+
+    /*
+     * MSR_FRED_RSP_* all come with an 64-byte alignment check, avoiding the
+     * need for an explicit BUG_ON().
+     */
+    wrmsrns(MSR_FRED_RSP_SL0, (unsigned long)(&get_cpu_info()->_fred + 1));
+    wrmsrns(MSR_FRED_RSP_SL1, stack_top + (IST_DB * IST_SHSTK_SIZE)); /* Poison */
+    wrmsrns(MSR_FRED_RSP_SL2, stack_top + (1 + IST_MCE)  * PAGE_SIZE);
+    wrmsrns(MSR_FRED_RSP_SL3, stack_top + (1 + IST_DF)   * PAGE_SIZE);
+    wrmsrns(MSR_FRED_STK_LVLS, ((2UL << (X86_EXC_MC * 2)) |
+                                (3UL << (X86_EXC_DF * 2))));
+
+    if ( cpu_has_xen_shstk )
+    {
+        wrmsrns(MSR_FRED_SSP_SL0, stack_top + (PRIMARY_SHSTK_SLOT + 1) * PAGE_SIZE);
+        wrmsrns(MSR_FRED_RSP_SL1, stack_top + (1 + IST_DF)  * PAGE_SIZE); /* Poison */
+        wrmsrns(MSR_FRED_SSP_SL2, stack_top + (IST_MCE * IST_SHSTK_SIZE));
+        wrmsrns(MSR_FRED_SSP_SL3, stack_top + (IST_DF  * IST_SHSTK_SIZE));
+    }
+}
+
 /*
  * Configure basic exception handling.  This is prior to parsing the command
  * line or configuring a console, and needs to be as simple as possible.
@@ -329,16 +379,20 @@ void __init traps_init(void)
             printk(XENLOG_INFO "Disabling PV32 due to FRED\n");
         }
 #endif
+
+        init_fred();
+        set_in_cr4(X86_CR4_FRED);
+
         setup_force_cpu_cap(X86_FEATURE_XEN_FRED);
         printk("Using FRED event delivery\n");
     }
     else
     {
+        load_system_tables();
+
         printk("Using IDT event delivery\n");
     }
 
-    load_system_tables();
-
     init_ler();
 
     /* Cache {,compat_}gdt_l1e now that physically relocation is done. */
@@ -356,8 +410,13 @@ void __init traps_init(void)
  */
 void __init bsp_traps_reinit(void)
 {
-    load_system_tables();
-    percpu_traps_init();
+    if ( opt_fred )
+        init_fred();
+    else
+    {
+        load_system_tables();
+        percpu_traps_init();
+    }
 }
 
 /*
@@ -366,7 +425,8 @@ void __init bsp_traps_reinit(void)
  */
 void percpu_traps_init(void)
 {
-    legacy_syscall_init();
+    if ( !opt_fred )
+        legacy_syscall_init();
 
     if ( cpu_has_xen_lbr )
         wrmsrl(MSR_IA32_DEBUGCTLMSR, IA32_DEBUGCTLMSR_LBR);
@@ -381,7 +441,21 @@ void percpu_traps_init(void)
  */
 void asmlinkage percpu_early_traps_init(void)
 {
-    load_system_tables();
+    if ( opt_fred )
+    {
+        const seg_desc_t *gdt = this_cpu(gdt) - FIRST_RESERVED_GDT_ENTRY;
+        const struct desc_ptr gdtr = {
+            .base = (unsigned long)gdt,
+            .limit = LAST_RESERVED_GDT_BYTE,
+        };
+
+        lgdt(&gdtr);
+
+        init_fred();
+        write_cr4(read_cr4() | X86_CR4_FRED);
+    }
+    else
+        load_system_tables();
 }
 
 static void __init __maybe_unused build_assertions(void)
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 15:11:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 15:11:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099162.1453114 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ureHL-00086M-O3; Thu, 28 Aug 2025 15:11:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099162.1453114; Thu, 28 Aug 2025 15:11: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 1ureHL-00086F-KD; Thu, 28 Aug 2025 15:11:07 +0000
Received: by outflank-mailman (input) for mailman id 1099162;
 Thu, 28 Aug 2025 15:11:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FrxM=3I=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ureCL-0003MD-IN
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 15:05:57 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7ffa07de-8420-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 17:05:57 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-45b7c01a708so2680865e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 08:05:57 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b6f0c6fe5sm78394535e9.5.2025.08.28.08.05.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 28 Aug 2025 08:05: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>
X-Inumbo-ID: 7ffa07de-8420-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756393556; x=1756998356; 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=dKpIj9bqUmtKs7mXRO2v3eu13OoXBJj1yRgQ0Bu+CNs=;
        b=trub9oXRG40USDNfmQe/S66OHDB/eL2/AdSHiO0BJ81ZsJa1M9stVE+rxy6n5QFPpA
         wB/ctM8Lw0y8pn/ZRQEafPp4J3RueBqTkguDGwDNE+wV3Gac6QfxpAx4yUdlY3RJrveY
         DwwztRonCaF1VWxUWFGZq9RFV/j/H0Pdp/xns=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756393556; x=1756998356;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=dKpIj9bqUmtKs7mXRO2v3eu13OoXBJj1yRgQ0Bu+CNs=;
        b=Cb/PoqLnBWQsx7uMz29SBGkmlTJ3O8jP4reb1/rVgjciE5t8STYufRA/9uB5EK/5zV
         gJA7jA8WOegTfc8873qk8PVVjROBQ9Yq0aXpg+BpBZdXeHuPjutWM4e7AWScMNu04yTj
         DCJrw1NbgFuttXmpZMaWT8aid7KSNPkD8rqJt0B2Kn+CAP46+wwVmhsh1Uv0LFGqN1G2
         WbLoxw08BNosiNnnLw58pZJQG2ZVGQ1g8ToUy0fyqUI0NXmNHJrSm36aeePHQQfLx2NA
         edRnViuk3/ZXKgsFv4JLFMiqz3VQERjMaTXtWlRBl2kFTPXfIhmXx86aKrNvITgR0cZT
         2cbQ==
X-Gm-Message-State: AOJu0YypJEMHWje6dwu5oPG0QysFKbU7XJ4EPCP5fd3Z/LUgj4yWHSAt
	vwJTJ20TbuiPA/FdcNRPJM2zUBwgd/ElWrqnTvdJ3zvlPv+d2vrdxXQpXRY6mX7SuKulGLrTAw5
	Lzf1g
X-Gm-Gg: ASbGncuWJ/dZ6VCm0keJrN4/q2WNYjEECCNcuJ1dhbsjXxf33FVtqS3ZObzf10fFdQD
	l0nXHbpPNBo53SaBGWEKLxJpDC7gg+XLNKBCzQYb5O/K9k6jzAS3chlb/xo6hHJ865tu/Ukrvta
	ku62xX/q/8wsuj8V2ctK0lTOVaWUzXzAY/zqG7BncuEKmV7osTe+qAKSQEEsclQEVHZj7Ev4Tey
	f9/3mhItojWn2RE1gJ+EKVN6kw8GjvIDQvOYr/AS6ug9dHcbAh5EIpbaDYA0DUWWZ3HB29s/U2q
	JN9W/5WcJ3MQ7wessJFolxb6GQ5af+CcuZaLHy4FYlxRIzSnRdpB7EHPuwFw1THdDAvPNzJwOPd
	ctoc0TZ4tnrNa4rJtFLeSAVYCODUrPjx4vRVzoPZ+1ihkRHfkUNYIZdO6L7Agw6t+Djw9+TUU7F
	9FRIseR4gxTCY=
X-Google-Smtp-Source: AGHT+IGjwOZvhe7pZAV6rD1bE2ftxSOuC7NqPE5eevsN4MS/YuWHjsfoJ8djoBPtoThYs1Bxl8p3aQ==
X-Received: by 2002:a05:600c:1f0d:b0:458:bbed:a812 with SMTP id 5b1f17b1804b1-45b517b961cmr216033595e9.17.1756393556209;
        Thu, 28 Aug 2025 08:05:56 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 07/23] x86/boot: Use RSTORSSP to establish SSP
Date: Thu, 28 Aug 2025 16:03:53 +0100
Message-Id: <20250828150409.901315-8-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250828150409.901315-1-andrew.cooper3@citrix.com>
References: <20250828150409.901315-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Under FRED, SETSSBSY is disallowed, and we want to be setting up FRED prior to
setting up shadow stacks.  As we still need Supervisor Tokens in IDT mode, we
need mode-specific logic to establish SSP.

In FRED mode, write a Restore Token, RSTORSSP it, and discard the resulting
Previous-SSP token.

No change outside of FRED mode.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

v2:
 * Some logic moved into prior patch.
---
 xen/arch/x86/boot/x86_64.S | 23 +++++++++++++++++++++--
 xen/arch/x86/setup.c       | 25 ++++++++++++++++++++++++-
 2 files changed, 45 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/boot/x86_64.S b/xen/arch/x86/boot/x86_64.S
index 11a7e9d3bd23..9705d03f849c 100644
--- a/xen/arch/x86/boot/x86_64.S
+++ b/xen/arch/x86/boot/x86_64.S
@@ -53,17 +53,21 @@ ENTRY(__high_start)
         mov     %rcx, STACK_CPUINFO_FIELD(cr4)(%r15)
         mov     %rcx, %cr4
 
-        /* WARNING! call/ret now fatal (iff SHSTK) until SETSSBSY loads SSP */
+        /* WARNING! CALL/RET now fatal (iff SHSTK) until SETSSBSY/RSTORSSP loads SSP */
 
 #if defined(CONFIG_XEN_SHSTK)
         test    $CET_SHSTK_EN, %al
         jz      .L_ap_cet_done
 
-        /* Derive the supervisor token address from %rsp. */
+        /* Derive the token address from %rsp. */
         mov     %rsp, %rdx
         and     $~(STACK_SIZE - 1), %rdx
         or      $(PRIMARY_SHSTK_SLOT + 1) * PAGE_SIZE - 8, %rdx
 
+        /* Establishing SSP differs between IDT or FRED mode. */
+        bt      $32 /* ilog2(X86_CR4_FRED) */, %rcx
+        jc      .L_fred_shstk
+
         /*
          * Write a new Supervisor Token.  It doesn't matter the first time a
          * CPU boots, but for S3 resume or hotplug this clears the busy bit so
@@ -71,6 +75,21 @@ ENTRY(__high_start)
          */
         wrssq   %rdx, (%rdx)
         setssbsy
+        jmp     .L_ap_cet_done
+
+.L_fred_shstk:
+
+        /*
+         * Write a Restore Token, value: &token + 8 + 64BIT (bit 0) at the
+         * base of the shstk (which isn't in use yet).
+         */
+        lea     9(%rdx), %rdi
+        wrssq   %rdi, (%rdx)
+        rstorssp (%rdx)
+
+        /* Discard the Previous-SSP Token from the shstk. */
+        mov     $2, %edx
+        incsspd %edx
 
 #endif /* CONFIG_XEN_SHSTK */
 .L_ap_cet_done:
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index a810bdf6d352..73799fcc684c 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -49,6 +49,7 @@
 #include <asm/prot-key.h>
 #include <asm/pv/domain.h>
 #include <asm/setup.h>
+#include <asm/shstk.h>
 #include <asm/smp.h>
 #include <asm/spec_ctrl.h>
 #include <asm/stubs.h>
@@ -908,7 +909,29 @@ static void __init noreturn reinit_bsp_stack(void)
     if ( cpu_has_xen_shstk )
     {
         wrmsrl(MSR_S_CET, xen_msr_s_cet_value());
-        asm volatile ("setssbsy" ::: "memory");
+
+        /*
+         * IDT and FRED differ by a Supervisor Token on the shadow stack, and
+         * therefore by the value in MSR_PL0_SSP.
+         *
+         * In IDT mode, we use SETSSBSY to mark the Supervisor Token as busy.
+         * In FRED mode, there is no token, so we need to create a temporary
+         * Restore Token to establish SSP.
+         */
+        if ( opt_fred )
+        {
+            unsigned long *token =
+                (void *)stack + (PRIMARY_SHSTK_SLOT + 1) * PAGE_SIZE - 8;
+
+            wrss((unsigned long)token + 9, token);
+            asm volatile ( "rstorssp %0" : "+m" (*token) );
+            /*
+             * We need to discard the resulting Previous-SSP Token, but
+             * reset_stack_and_jump() will do that for us.
+             */
+        }
+        else
+            asm volatile ( "setssbsy" ::: "memory" );
     }
 
     reset_stack_and_jump(init_done);
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 15:11:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 15:11:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099163.1453119 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ureHM-0008A2-5Q; Thu, 28 Aug 2025 15:11:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099163.1453119; Thu, 28 Aug 2025 15:11: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 1ureHL-00088o-Ts; Thu, 28 Aug 2025 15:11:07 +0000
Received: by outflank-mailman (input) for mailman id 1099163;
 Thu, 28 Aug 2025 15:11:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FrxM=3I=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ureCP-00035A-CQ
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 15:06:01 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 81a0a4e7-8420-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 17:05:59 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-45b4d8921f2so9342025e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 08:05:59 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b6f0c6fe5sm78394535e9.5.2025.08.28.08.05.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 28 Aug 2025 08:05: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>
X-Inumbo-ID: 81a0a4e7-8420-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756393559; x=1756998359; 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=RHqFRCTtzO6UfroeczTN/RrC/BWZwTDXn4irJ5OSRMs=;
        b=Q7Mj1+rM6Ftd8gjMrg7iSIgSOnS9YbprmliTZNc+Vh+7Fu8S3AJ9aX4WWY/fuJF1zQ
         WO9HMtF9GQ6FoQ4PUIanwY9nYhcRlWo3JYcPdzZ0eQoTsow9Eo4Au94+L/kknEb7VUyg
         7mw5dxotvH2AWneVK4IDXrrJEAOQJri7cFKjI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756393559; x=1756998359;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=RHqFRCTtzO6UfroeczTN/RrC/BWZwTDXn4irJ5OSRMs=;
        b=DN2lYHBmKiBnAfmQXAS9RBR+HtUebvSKp+KRWHxY3f+IylqjScmICK/UHBpisLi8dH
         2F1n2UH5F02YgEoYMm6YtFUzxnQMF2oqw4cWlFEKSL1nUExkUM/o2q1LyHkeWaRMViN6
         UAq1WNUzN+SBm4NXjZc8L/JiwYfp9Di3DnFQBa3h9a4w2qT/+9CL+EObem/OATRMtRtS
         conO6vef1g86OaMD0uSfsMAoR0dZcHZA0TjXo9YbOqzXKTapPHzhdkipDB/RoSAKuvO0
         eck2DLGGSWEn88uoih5/K/SfiZTA3iH36SMwNKRrXNYcmNr3dIowVufoFv6/qhGUI9sp
         lC/Q==
X-Gm-Message-State: AOJu0YxSftK1BJIPTAe3l8XPwdKEPT6DYaCQh/bjbB+xc3I2817rBucF
	8IJXjwcBkddpLTouNhUOOb/zC2FzyiV2BBVcn7bv90QHx/1is2DvNhu57cPm50EY30/PF4KpTuX
	rWh/n
X-Gm-Gg: ASbGncsGELQNw+UCrRBLvSdQf8JVDBfCHbaczcfuiNnOUuLRvf3/UzTjLSl9DJlsVbH
	MZJ93YO/3x/YCADfm1qnXiNF013pY5k6bp2jZH8nl/cXOYj1uxK99fCWQ2zJULu4ZXGGAU3ev/5
	5jghRu1j2H7QjTEmrjv/ufXJyO8t1522Ti3xwpnoktq+SXBiBLcBfvY1dH1UJewqKHxjKW7VPbd
	8gxPI4U7DjgcOzc8t4O8WhYK9bqQTOccou+Q3fOZRiguU7qWYreByaQZgXaXNSnySl7QiNjE2so
	Ti40bjde52HmfD30rILuIVG93NDwol2ia0YqVBcCuy69N8yyq6sCytZUaP/iITLooW4EB7MNxpg
	+cZK82CQEKwiKYcHHDczsQOdk12mSeKVvGHXSB0K5c+0ERlRd3Xipc25jGrUlsjwIHsfbPqS4HW
	Ccp1KLMOjHojNSIqnEgnhwJQ==
X-Google-Smtp-Source: AGHT+IHWDZ+fqC72FcKzNTwvcG4VHFpkMyXlSzAgwlhtw10HW152wao9+hYXyrlb1/LS4P6qJn8hYA==
X-Received: by 2002:a05:600c:4caa:b0:45b:7185:9f0 with SMTP id 5b1f17b1804b1-45b71850b69mr43457575e9.31.1756393558917;
        Thu, 28 Aug 2025 08:05:58 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 08/23] x86/traps: Alter switch_stack_and_jump() for FRED mode
Date: Thu, 28 Aug 2025 16:03:54 +0100
Message-Id: <20250828150409.901315-9-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250828150409.901315-1-andrew.cooper3@citrix.com>
References: <20250828150409.901315-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

FRED and IDT differ by a Supervisor Token on the base of the shstk.  This
means that switch_stack_and_jump() needs to discard one extra word when FRED
is active.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

v2:
 * Use X86_FEATURE_XEN_FRED
---
 xen/arch/x86/include/asm/current.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/include/asm/current.h b/xen/arch/x86/include/asm/current.h
index c1eb27b1c4c2..35cc61fa88e7 100644
--- a/xen/arch/x86/include/asm/current.h
+++ b/xen/arch/x86/include/asm/current.h
@@ -154,7 +154,9 @@ unsigned long get_stack_dump_bottom (unsigned long sp);
     "rdsspd %[ssp];"                                            \
     "cmp $1, %[ssp];"                                           \
     "je .L_shstk_done.%=;" /* CET not active?  Skip. */         \
-    "mov $%c[skstk_base], %[val];"                              \
+    ALTERNATIVE("mov $%c[skstk_base], %[val];",                 \
+                "mov $%c[skstk_base] + 8, %[val];",             \
+                X86_FEATURE_XEN_FRED)                           \
     "and $%c[stack_mask], %[ssp];"                              \
     "sub %[ssp], %[val];"                                       \
     "shr $3, %[val];"                                           \
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 15:11:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 15:11:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099166.1453134 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ureHP-0000Sz-R0; Thu, 28 Aug 2025 15:11:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099166.1453134; Thu, 28 Aug 2025 15:11: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 1ureHP-0000SG-M8; Thu, 28 Aug 2025 15:11:11 +0000
Received: by outflank-mailman (input) for mailman id 1099166;
 Thu, 28 Aug 2025 15:11:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FrxM=3I=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ureCb-0003MD-Sq
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 15:06:14 +0000
Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com
 [2a00:1450:4864:20::42f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 89c35107-8420-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 17:06:13 +0200 (CEST)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-3c46686d1e6so661800f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 08:06:13 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b6f0c6fe5sm78394535e9.5.2025.08.28.08.06.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 28 Aug 2025 08:06:11 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 89c35107-8420-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756393572; x=1756998372; 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=nPXs+w8WmryJgY5GvLzGRtsQ1zYMjyMOMmErZdbk9MM=;
        b=k1bYDhbb/of0VskcoSxHTtl+n2oR6zAc2+B7t83OIyCjpqtLxtkVpeINnCeEJ1Z5bD
         Jqe9haOFPPRBVK2LkOvkH+UuqiBDBKvSOkskNx1TkxPMi503qvjAYJ+Sci+GBsUXUdDD
         Yl+Dqkul3RIjAm8qlJgodXi/m0lhcQyyGYJgk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756393572; x=1756998372;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=nPXs+w8WmryJgY5GvLzGRtsQ1zYMjyMOMmErZdbk9MM=;
        b=JZqU4SpjNW7VkoSYC/wEE1gu8L9Hl9AfcgZ2nyxroWC36fDzyLgTf3jN7UP7F3IM3t
         x7wBIlgdpAvlDNKdxh5k0N54CQ5+uJhC5+xCdmI+W4rnZMxGd+A7YxYYgX5QJQ8Tl/pY
         VPHE+vJM55zH+4Gli8cDajFQInQH/7zjk5s4GVxM6TS2Ew5XrApWFy1QDlq2yNjKHqAB
         dRMDTQGvw3bVpIFlqZmdvdGNF/sm3o4rULioMJAHR7KdomzVYXeqHUwp/hm5JP8SprO+
         PCg3H8OhLVoaGDKRruxdHuohLjvEhunQ3csUi31Iue5flSvEiRW3OiN48zGKr+ryCdbN
         UIAg==
X-Gm-Message-State: AOJu0YyyaSz+GavH232doiWkdFzQPQDFJ5sBuxV4+n/QKammPAL3bg9C
	9jbJl2xFeoNC/KCoEDuGv3Z/XUyV3zxGxuP5T/o+RbcdjTia/crr5WoW0RMaxZwt7Yj39/AgUHc
	SRSa6
X-Gm-Gg: ASbGnctLPdBQ6+vKtiIiWayjQbuo0Tuh5A2U9xRLhlU7J3B2DqkCmZxZFySjfrN/abN
	Bnlm8fLJ0C+38BGfNGzR3xIgqJqwoQA8MyERhPmDqn3wgrHi57Z5kB1UKkgYQ8RNGHi2kRRwxxI
	trde9qc7stQLzBKM1CvBBz3ZxxMWE3ZSq9L+gO8d69xBPSV78kMqnEg0HSLPkYLsUK/7qgADfbC
	LB4fYqh/0gnQR6e952EZG1O+RfAIYwbvrETPfzDuw5JOdTGFr91F2GceL7qvX69Hk+rY/K8ekZU
	WtYDOSC48GGKlXIfLHWiqlXIHv+78nzqgm6Qsvf75zsw02shNFTA5k+8FK7zBDiFrIGKABwQ8pq
	RV0ZC83LexhYgkUqgyboxFFpUJfFV6D62E3QfWE9jwVqxhZrzWzH1OlJssat2YCP72REjmvQEeK
	oCSu/ex3EpaOQ=
X-Google-Smtp-Source: AGHT+IEJzy7vjhFl2NnJSLmlSTeasU53OfZ9J+lWcUnj0PPsFBQ65565gGLfR9PHviZPsH+33N033A==
X-Received: by 2002:a05:6000:991:b0:3c6:df53:6968 with SMTP id ffacd0b85a97d-3c6df536b93mr17459262f8f.13.1756393572278;
        Thu, 28 Aug 2025 08:06: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>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 13/23] x86/traps: Introduce FRED entrypoints
Date: Thu, 28 Aug 2025 16:03:59 +0100
Message-Id: <20250828150409.901315-14-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250828150409.901315-1-andrew.cooper3@citrix.com>
References: <20250828150409.901315-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Under FRED, there's one entrypoint from Ring 3, and one from Ring 0.

FRED gives us a good stack (even for SYSCALL/SYSENTER), and a unified event
frame on the stack, meaing that all software needs to do is spill the GPRs
with a line of PUSHes.  Introduce PUSH_AND_CLEAR_GPRS and POP_GPRS for this
purpose.

Introduce entry_FRED_R0() which to a first appoximation is complete for all
event handling within Xen.

entry_FRED_R0() needs deriving from entry_FRED_R3(), so introduce a basic
handler.  There is more work required to make the return-to-guest path work
under FRED, so leave a BUG clearly in place.

Also introduce entry_from_{xen,pv}() to be the C level handlers.  By simply
copying regs->fred_ss.vector into regs->entry_vector, we can reuse all the
existing fault handlers.

Extend fatal_trap() to render the event type, including by name, when FRED is
active.  This is slightly complicated, because X86_ET_OTHER must not use
vector_name() or SYSCALL and SYSENTER get rendered as #BP and #DB.  Also,
{read,write}_gs_shadow() needs modifying to avoid the SWAPGS instruction,
which is disallowed in FRED mode.

This is sufficient to handle all interrupts and exceptions encountered during
development, including plenty of Double Faults.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

v2:
 * Don't render a vector name for X86_ET_SW_INT
 * Fix typos in names[]
 * Link entry-fred.o first

SIMICS hasn't been updated to the FRED v9, and still wants ENDBR instructions
at the entrypoints.
---
 xen/arch/x86/include/asm/asm_defns.h |  65 +++++++++++
 xen/arch/x86/traps.c                 | 159 ++++++++++++++++++++++++++-
 xen/arch/x86/x86_64/Makefile         |   1 +
 xen/arch/x86/x86_64/entry-fred.S     |  33 ++++++
 4 files changed, 255 insertions(+), 3 deletions(-)
 create mode 100644 xen/arch/x86/x86_64/entry-fred.S

diff --git a/xen/arch/x86/include/asm/asm_defns.h b/xen/arch/x86/include/asm/asm_defns.h
index 72a0082d319d..a81a4043d0f1 100644
--- a/xen/arch/x86/include/asm/asm_defns.h
+++ b/xen/arch/x86/include/asm/asm_defns.h
@@ -315,6 +315,71 @@ static always_inline void stac(void)
         subq  $-(UREGS_error_code-UREGS_r15+\adj), %rsp
 .endm
 
+/*
+ * Push and clear GPRs
+ */
+.macro PUSH_AND_CLEAR_GPRS
+        push  %rdi
+        xor   %edi, %edi
+        push  %rsi
+        xor   %esi, %esi
+        push  %rdx
+        xor   %edx, %edx
+        push  %rcx
+        xor   %ecx, %ecx
+        push  %rax
+        xor   %eax, %eax
+        push  %r8
+        xor   %r8d, %r8d
+        push  %r9
+        xor   %r9d, %r9d
+        push  %r10
+        xor   %r10d, %r10d
+        push  %r11
+        xor   %r11d, %r11d
+        push  %rbx
+        xor   %ebx, %ebx
+        push  %rbp
+#ifdef CONFIG_FRAME_POINTER
+/* Indicate special exception stack frame by inverting the frame pointer. */
+        mov   %rsp, %rbp
+        notq  %rbp
+#else
+        xor   %ebp, %ebp
+#endif
+        push  %r12
+        xor   %r12d, %r12d
+        push  %r13
+        xor   %r13d, %r13d
+        push  %r14
+        xor   %r14d, %r14d
+        push  %r15
+        xor   %r15d, %r15d
+.endm
+
+/*
+ * POP GPRs from a UREGS_* frame on the stack.  Does not modify flags.
+ *
+ * @rax: Alternative destination for the %rax value on the stack.
+ */
+.macro POP_GPRS rax=%rax
+        pop   %r15
+        pop   %r14
+        pop   %r13
+        pop   %r12
+        pop   %rbp
+        pop   %rbx
+        pop   %r11
+        pop   %r10
+        pop   %r9
+        pop   %r8
+        pop   \rax
+        pop   %rcx
+        pop   %rdx
+        pop   %rsi
+        pop   %rdi
+.endm
+
 #ifdef CONFIG_PV32
 #define CR4_PV32_RESTORE                               \
     ALTERNATIVE_2 "",                                  \
diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index 66308e7c9edf..67763bec0dc5 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -89,6 +89,13 @@ const unsigned int nmi_cpu;
 #define stack_words_per_line 4
 #define ESP_BEFORE_EXCEPTION(regs) ((unsigned long *)(regs)->rsp)
 
+/* Only valid to use when FRED is active. */
+static inline struct fred_info *cpu_regs_fred_info(struct cpu_user_regs *regs)
+{
+    ASSERT(read_cr4() & X86_CR4_FRED);
+    return (void *)(regs + 1);
+}
+
 struct extra_state
 {
     unsigned long cr0, cr2, cr3, cr4;
@@ -1023,6 +1030,32 @@ void show_execution_state_nmi(const cpumask_t *mask, bool show_all)
         printk("Non-responding CPUs: {%*pbl}\n", CPUMASK_PR(&show_state_mask));
 }
 
+static const char *x86_et_name(unsigned int type)
+{
+    static const char *const names[] = {
+        [X86_ET_EXT_INTR]    = "EXT_INTR",
+        [X86_ET_NMI]         = "NMI",
+        [X86_ET_HW_EXC]      = "HW_EXC",
+        [X86_ET_SW_INT]      = "SW_INT",
+        [X86_ET_PRIV_SW_EXC] = "PRIV_SW_EXC",
+        [X86_ET_SW_EXC]      = "SW_EXC",
+        [X86_ET_OTHER]       = "OTHER",
+    };
+
+    return (type < ARRAY_SIZE(names) && names[type]) ? names[type] : "???";
+}
+
+static const char *x86_et_other_name(unsigned int what)
+{
+    static const char *const names[] = {
+        [0] = "MTF",
+        [1] = "SYSCALL",
+        [2] = "SYSENTER",
+    };
+
+    return (what < ARRAY_SIZE(names) && names[what]) ? names[what] : "???";
+}
+
 const char *vector_name(unsigned int vec)
 {
     static const char names[][4] = {
@@ -1101,9 +1134,41 @@ void fatal_trap(const struct cpu_user_regs *regs, bool show_remote)
         }
     }
 
-    panic("FATAL TRAP: vec %u, %s[%04x]%s\n",
-          trapnr, vector_name(trapnr), regs->error_code,
-          (regs->eflags & X86_EFLAGS_IF) ? "" : " IN INTERRUPT CONTEXT");
+    if ( read_cr4() & X86_CR4_FRED )
+    {
+        bool render_ec = false;
+        const char *vec_name = NULL;
+
+        switch ( regs->fred_ss.type )
+        {
+        case X86_ET_HW_EXC:
+        case X86_ET_PRIV_SW_EXC:
+        case X86_ET_SW_EXC:
+            render_ec = true;
+            vec_name = vector_name(regs->fred_ss.vector);
+            break;
+
+        case X86_ET_OTHER:
+            vec_name = x86_et_other_name(regs->fred_ss.vector);
+            break;
+        }
+
+        if ( render_ec )
+            panic("Fatal TRAP: type %u, %s, vec %u, %s[%04x]%s\n",
+                  regs->fred_ss.type, x86_et_name(regs->fred_ss.type),
+                  regs->fred_ss.vector, vec_name ?: "",
+                  regs->error_code,
+                  (regs->eflags & X86_EFLAGS_IF) ? "" : " IN INTERRUPT CONTEXT");
+        else
+            panic("Fatal TRAP: type %u, %s, vec %u, %s%s\n",
+                  regs->fred_ss.type, x86_et_name(regs->fred_ss.type),
+                  regs->fred_ss.vector, vec_name ?: "",
+                  (regs->eflags & X86_EFLAGS_IF) ? "" : " IN INTERRUPT CONTEXT");
+    }
+    else
+        panic("FATAL TRAP: vec %u, %s[%04x]%s\n",
+              trapnr, vector_name(trapnr), regs->error_code,
+              (regs->eflags & X86_EFLAGS_IF) ? "" : " IN INTERRUPT CONTEXT");
 }
 
 void asmlinkage noreturn do_unhandled_trap(struct cpu_user_regs *regs)
@@ -2198,6 +2263,94 @@ void asmlinkage check_ist_exit(const struct cpu_user_regs *regs, bool ist_exit)
 }
 #endif
 
+void asmlinkage entry_from_pv(struct cpu_user_regs *regs)
+{
+    /* Copy fred_ss.vector into entry_vector as IDT delivery would have done. */
+    regs->entry_vector = regs->fred_ss.vector;
+
+    fatal_trap(regs, false);
+}
+
+void asmlinkage entry_from_xen(struct cpu_user_regs *regs)
+{
+    struct fred_info *fi = cpu_regs_fred_info(regs);
+    uint8_t type = regs->fred_ss.type;
+
+    /* Copy fred_ss.vector into entry_vector as IDT delivery would have done. */
+    regs->entry_vector = regs->fred_ss.vector;
+
+    /*
+     * First, handle the asynchronous or fatal events.  These are either
+     * unrelated to the interrupted context, or may not have valid context
+     * recorded, and all have special rules on how/whether to re-enable IRQs.
+     */
+    switch ( type )
+    {
+    case X86_ET_EXT_INTR:
+        return do_IRQ(regs);
+
+    case X86_ET_NMI:
+        return do_nmi(regs);
+
+    case X86_ET_HW_EXC:
+        switch ( regs->fred_ss.vector )
+        {
+        case X86_EXC_DF: return do_double_fault(regs);
+        case X86_EXC_MC: return do_machine_check(regs);
+        }
+        break;
+    }
+
+    /*
+     * With the asynchronous events handled, what remains are the synchronous
+     * ones.  If we interrupted an IRQs-on region, we should re-enable IRQs
+     * now; for #PF and #DB, %cr2 and %dr6 are on the stack in edata.
+     */
+    if ( regs->eflags & X86_EFLAGS_IF )
+        local_irq_enable();
+
+    switch ( type )
+    {
+    case X86_ET_HW_EXC:
+    case X86_ET_PRIV_SW_EXC:
+    case X86_ET_SW_EXC:
+        switch ( regs->fred_ss.vector )
+        {
+        case X86_EXC_PF:  handle_PF(regs, fi->edata); break;
+        case X86_EXC_GP:  do_general_protection(regs); break;
+        case X86_EXC_UD:  do_invalid_op(regs); break;
+        case X86_EXC_NM:  do_device_not_available(regs); break;
+        case X86_EXC_BP:  do_int3(regs); break;
+        case X86_EXC_DB:  handle_DB(regs, fi->edata); break;
+
+        case X86_EXC_DE:
+        case X86_EXC_OF:
+        case X86_EXC_BR:
+        case X86_EXC_NP:
+        case X86_EXC_SS:
+        case X86_EXC_MF:
+        case X86_EXC_AC:
+        case X86_EXC_XM:
+            do_trap(regs);
+            break;
+
+        case X86_EXC_CP:  do_entry_CP(regs); break;
+
+        default:
+            goto fatal;
+        }
+        break;
+
+    default:
+        goto fatal;
+    }
+
+    return;
+
+ fatal:
+    fatal_trap(regs, false);
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/arch/x86/x86_64/Makefile b/xen/arch/x86/x86_64/Makefile
index f20763088740..c0a0b6603221 100644
--- a/xen/arch/x86/x86_64/Makefile
+++ b/xen/arch/x86/x86_64/Makefile
@@ -1,5 +1,6 @@
 obj-$(CONFIG_PV32) += compat/
 
+obj-bin-y += entry-fred.o
 obj-bin-y += entry.o
 obj-$(CONFIG_KEXEC) += machine_kexec.o
 obj-y += pci.o
diff --git a/xen/arch/x86/x86_64/entry-fred.S b/xen/arch/x86/x86_64/entry-fred.S
new file mode 100644
index 000000000000..3c3320df22cb
--- /dev/null
+++ b/xen/arch/x86/x86_64/entry-fred.S
@@ -0,0 +1,33 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+        .file "x86_64/entry-fred.S"
+
+#include <asm/asm_defns.h>
+#include <asm/page.h>
+
+        .section .text.entry, "ax", @progbits
+
+        /* The Ring3 entry point is required to be 4k aligned. */
+
+FUNC(entry_FRED_R3, 4096)
+        PUSH_AND_CLEAR_GPRS
+
+        mov     %rsp, %rdi
+        call    entry_from_pv
+
+        POP_GPRS
+        eretu
+END(entry_FRED_R3)
+
+        /* The Ring0 entrypoint is at Ring3 + 0x100. */
+        .org entry_FRED_R3 + 0x100, 0xcc
+
+FUNC_LOCAL(entry_FRED_R0, 0)
+        PUSH_AND_CLEAR_GPRS
+
+        mov     %rsp, %rdi
+        call    entry_from_xen
+
+        POP_GPRS
+        erets
+END(entry_FRED_R0)
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 15:11:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 15:11:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099188.1453143 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ureHa-0001Vu-4P; Thu, 28 Aug 2025 15:11:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099188.1453143; Thu, 28 Aug 2025 15:11:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ureHa-0001Vi-0N; Thu, 28 Aug 2025 15:11:22 +0000
Received: by outflank-mailman (input) for mailman id 1099188;
 Thu, 28 Aug 2025 15:11:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FrxM=3I=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ureCS-00035A-9Z
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 15:06:04 +0000
Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com
 [2a00:1450:4864:20::331])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 833b9e54-8420-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 17:06:02 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-45a1b0c8867so8922895e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 08:06:02 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b6f0c6fe5sm78394535e9.5.2025.08.28.08.05.59
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 28 Aug 2025 08:06: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>
X-Inumbo-ID: 833b9e54-8420-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756393561; x=1756998361; 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=2et+2oZD9rWfaE5nLOfIkpTesEtTkjTqJrxIqC+gq64=;
        b=V6j4bQ/3NwFRUcz+IvRAcG1zn+jeOjEyx6oIuGpPzLJHjOhtDp4LDt1vVT9U9ktrSh
         cQgyfgIB1Rv5SKVUYswTHejf7jXHDp9JXQgX9UnMQFKXCiFRuA5HTCIuHNvQ3i/B2is/
         2V0+dGDzcdvjwkUsoCyH+4hHrNTtpcLJ5KI0I=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756393561; x=1756998361;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=2et+2oZD9rWfaE5nLOfIkpTesEtTkjTqJrxIqC+gq64=;
        b=hgKJPi9HClcKzpYvvmCc8B+bxFuzCSHcoS68qPQV9CpXyuV3UuoxD90kJ34SASR+cZ
         PrVqnrZElfHO2snD5V7ZJhLEQ+uknMRx/zNa3SikxSyegeWZueLfuQL4/b+njFgePyqh
         +M6YfYOfTlnDn4f/YsnLO19Tqo/t0mtTZVQKv25thGdqB+UPFUpdusos1moe/hNsRMaH
         zRLS7Yg4WQ7xBcMnm83+gexkfXe8pfvf/GOmbsEdIznN/3U64ngZAxYeqV/3Pg2iMehe
         AYzna/Gqqgz0tVtwxZfDzyY3XZ5H0n27Pnt4Sj8h5G2L/iQ7KwCq+SkyY8CyICDKUXUA
         e83w==
X-Gm-Message-State: AOJu0YxhKGCuzZFDUdpWgqKQ6Tyyx7uBvKQiPQe+SMbBiEzWUj614vn0
	kljiDLrwRFzbUazJvOaJRQ+LxCS1sSPNf+7GSJEfK9kLXAHWqrlOnh0685b/Gtv7iWq5QSTiQEe
	yX2Tr
X-Gm-Gg: ASbGncv/gGE2mrURZRlH3FkimkNxi9S8rbTOHW/l6FtKHpc/41RFZ50u7Ewa0/Xi2V5
	yTmQ0MKjS3HaleEV3l5l3g17ZNCDSNz9t624bwUmIk59Fi0e4m2PrYf4Ov6c8JSCFFJSQ/7G/ol
	/q/Z/GrCsKIHBRSEftbADTi0DUSCooV1dKOvvN9PJlbq1EBECXVVZ95RpW3VJJ8qqM4rgM2r/ig
	iioS+m1RGrfvxaldekZ2Uc3WSC9/RCOf962SD+ldqphf/nB499i3IJCWCTVEF716MvjPwN9rj9v
	ty6SPg3/ZTELzArOruVRk3A9F5FXD/k1sNv09MYf2IYPlgrQM8p7U/GLAX6urquG8zz+/5UKORd
	g8G8G9sm8inQUSy4PbHfAeGMMwdDegdJI9bdDVhUkvgXcqf9Sa2mP9OE5tKkVESrXLEU18zZhyT
	m5tcPFFfpNtOw=
X-Google-Smtp-Source: AGHT+IHH+zJV5UfrsUeom95ghPAsaEWKEmHh1kjer9oxDwGRi33LJwB66/dHYyJMRP3i1Dq40aeeQw==
X-Received: by 2002:a05:600c:4715:b0:459:db54:5f34 with SMTP id 5b1f17b1804b1-45b517d902bmr246207235e9.31.1756393561452;
        Thu, 28 Aug 2025 08:06:01 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 09/23] x86/traps: Skip Supervisor Shadow Stack tokens in FRED mode
Date: Thu, 28 Aug 2025 16:03:55 +0100
Message-Id: <20250828150409.901315-10-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250828150409.901315-1-andrew.cooper3@citrix.com>
References: <20250828150409.901315-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

FRED doesn't use Supervisor Shadow Stack tokens.  Skip setting them up.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

v2:
 * New
---
 xen/arch/x86/mm.c    | 12 +++++++++---
 xen/arch/x86/setup.c |  8 ++++----
 2 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index b929d15d0050..043e6aa9d73a 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -129,6 +129,7 @@
 #include <asm/shadow.h>
 #include <asm/shared.h>
 #include <asm/trampoline.h>
+#include <asm/traps.h>
 #include <asm/x86_emulate.h>
 
 #include <public/memory.h>
@@ -6441,8 +6442,13 @@ static void write_sss_token(unsigned long *ptr)
 
 void memguard_guard_stack(void *p)
 {
-    /* IST Shadow stacks.  4x 1k in stack page 0. */
-    if ( IS_ENABLED(CONFIG_XEN_SHSTK) )
+    /*
+     * IST Shadow stacks.  4x 1k in stack page 0.
+     *
+     * With IDT delivery, we need Supervisor Shadow Stack tokens at the base
+     * of each stack.  With FRED delivery, these no longer exist.
+     */
+    if ( IS_ENABLED(CONFIG_XEN_SHSTK) && !opt_fred )
     {
         write_sss_token(p + (IST_MCE * IST_SHSTK_SIZE) - 8);
         write_sss_token(p + (IST_NMI * IST_SHSTK_SIZE) - 8);
@@ -6453,7 +6459,7 @@ void memguard_guard_stack(void *p)
 
     /* Primary Shadow Stack.  1x 4k in stack page 5. */
     p += PRIMARY_SHSTK_SLOT * PAGE_SIZE;
-    if ( IS_ENABLED(CONFIG_XEN_SHSTK) )
+    if ( IS_ENABLED(CONFIG_XEN_SHSTK) && !opt_fred )
         write_sss_token(p + PAGE_SIZE - 8);
 
     map_pages_to_xen((unsigned long)p, virt_to_mfn(p), 1, PAGE_HYPERVISOR_SHSTK);
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 73799fcc684c..c767d0451574 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1920,10 +1920,6 @@ void asmlinkage __init noreturn __start_xen(void)
 
     system_state = SYS_STATE_boot;
 
-    bsp_stack = cpu_alloc_stack(0);
-    if ( !bsp_stack )
-        panic("No memory for BSP stack\n");
-
     console_init_ring();
     vesa_init();
 
@@ -2077,6 +2073,10 @@ void asmlinkage __init noreturn __start_xen(void)
 
     traps_init(); /* Needs stubs allocated. */
 
+    bsp_stack = cpu_alloc_stack(0); /* Needs to know IDT vs FRED */
+    if ( !bsp_stack )
+        panic("No memory for BSP stack\n");
+
     cpu_init();
 
     rcu_init();
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 15:11:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 15:11:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099193.1453153 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ureHd-00021g-BN; Thu, 28 Aug 2025 15:11:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099193.1453153; Thu, 28 Aug 2025 15:11: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 1ureHd-00021F-7l; Thu, 28 Aug 2025 15:11:25 +0000
Received: by outflank-mailman (input) for mailman id 1099193;
 Thu, 28 Aug 2025 15:11:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FrxM=3I=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ureCe-0003MD-EB
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 15:06:16 +0000
Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com
 [2a00:1450:4864:20::435])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8b5178ae-8420-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 17:06:16 +0200 (CEST)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-3b9edf4cf6cso795791f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 08:06:16 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b6f0c6fe5sm78394535e9.5.2025.08.28.08.06.14
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 28 Aug 2025 08:06: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>
X-Inumbo-ID: 8b5178ae-8420-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756393575; x=1756998375; 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=PgmHnEeI6SxfsGeG6rRdPzhs3Pr505V+8fvY4mIUQ20=;
        b=UeFH2KrrwcE369wqLpu8KeZinEjyJ9eeV2Op4IeYmpcOLV60sFN3vYf8efxAWDMcbL
         pvzQX+x2/DgQt1h2++DNrHSMVVFh+MdVnCsDNFqxnklVO1zkRxGEkxqYSL8TQENjM3KZ
         X4ZWlAcOjU0xuKVK7DzaM541EPT9Fkyuz9Y8w=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756393575; x=1756998375;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=PgmHnEeI6SxfsGeG6rRdPzhs3Pr505V+8fvY4mIUQ20=;
        b=MblAlRFz7uR9eXruGW0Zf1ZGjZijJb82ZCXgCSexSab3LD6YkHwAwXl1PEKc0DykZV
         +RjCt8WSLllhJaFf3AVRcAWi276yetAnKsCMHcg5VJ3EihCqwXwn7kiG+apIDLKMb0sw
         +I+GrN4WthG+tIFB8Bh1yeuPsYKmtZ/jLvXRyG1jfdYpNJE22dR/TNnencLKUh38E1ZG
         gNlVVNKDwwp452ySMJY8F1yOPDRkf342wpx1aZ5SwpD4CvxEzJtqgqcu5rL2toMgjurH
         EfMmhdy7hwTQ/Qbp9bxNZchB8eOE2N8f3Xq00Wln9nSSd9Wfe9rGJwnQVbB6HbVGbVAD
         4yxQ==
X-Gm-Message-State: AOJu0YxEYFfarcDhQyRc4EU0mlbnNd0arQZjva250d1opl9c4ScPA2NS
	/e9nu4bge4XbXuNp4f2X++L6GWu+9mDcGBGzFEkM6o36SRfrFP7JuoRIPxAvno/tZVihAo/+OAn
	GXWpu
X-Gm-Gg: ASbGnctlN2IJklEDjcZ8BInqdOWJa9mQsZqvcwx9tkcxqi9k27PoId9oxzxjKwc1Lef
	6DvDzKwQIs8qpxXe5TVOj7ZxbI0ATqmZVksRknevlhu/AHlDiYc+MjC5qp4l8JtTwErjjLnOD4U
	cmPwn+kjC7foPcOE6pOCdwXuBk1kMXs4X/yDGDvGvMA7m9FRy/sYT9wlxYfQdK6fiMA4fLvt2QB
	y++GCkbCT0HewXLRb+YoxsLiFrJ6ofuIamHQoplAY2DWmY0xlm21dN2NJKPbYPCj2AdueOXAPnN
	wt7PEg2GYk8DyzoGE341yL0ghdxBIFsiC/ztPg+STWSZgFHP4gtbUnWEz10yYnbChgwMeNNWTbY
	c5d36j+xdih7j/POeUFNIgYPN5RUrA+afN/qeaxMGiCyJo8drOWnG+zbr5ys9/n+sG8POborDaG
	Fl
X-Google-Smtp-Source: AGHT+IE6wkCmxSjZlDLFodx9e+bViG30EvRU7WG/WSSoEBbdFGwMfQm59jtAuWXGzfWmgd420HIOxg==
X-Received: by 2002:a05:6000:250e:b0:3b9:55a:9d0c with SMTP id ffacd0b85a97d-3c5da54e97dmr17845560f8f.3.1756393575031;
        Thu, 28 Aug 2025 08:06:15 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 16/23] x86/entry: Alter how IRET faults are recognised
Date: Thu, 28 Aug 2025 16:04:02 +0100
Message-Id: <20250828150409.901315-17-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250828150409.901315-1-andrew.cooper3@citrix.com>
References: <20250828150409.901315-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Right now we have two IRET instructions that can fault for guest reasons, and
the pre exception table gives handle_exception as the fixup for both.

Instead, we can have compat_restore_all_guest() use restore_all_guest()'s IRET
which gives us just a single position to handle specially.

In exception_with_ints_disabled(), remove search_pre_exception_table() and use
a simpler check.  Explain how the recovery works, because this isn't the first
time I've had to figure it out.

The reference to iret_to_guest highlights that any checking here is specific
to CONFIG_PV, so exclude it in !PV builds.

Later in exception_with_ints_disabled(), it suffices to load %ecx rather than
%rcx, and remove a stray semi-colon from the rep movsq.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

v2:
 * New
---
 xen/arch/x86/x86_64/compat/entry.S |  3 +--
 xen/arch/x86/x86_64/entry.S        | 31 ++++++++++++++++++++++--------
 2 files changed, 24 insertions(+), 10 deletions(-)

diff --git a/xen/arch/x86/x86_64/compat/entry.S b/xen/arch/x86/x86_64/compat/entry.S
index d7b381ea546d..39925d80a677 100644
--- a/xen/arch/x86/x86_64/compat/entry.S
+++ b/xen/arch/x86/x86_64/compat/entry.S
@@ -167,8 +167,7 @@ FUNC(compat_restore_all_guest)
             scf=STK_REL(CPUINFO_scf,      CPUINFO_rip), \
             sel=STK_REL(CPUINFO_verw_sel, CPUINFO_rip)
 
-.Lft0:  iretq
-        _ASM_PRE_EXTABLE(.Lft0, handle_exception)
+        jmp     iret_to_guest
 END(compat_restore_all_guest)
 
 /* Callers can cope with both %rax and %rcx being clobbered. */
diff --git a/xen/arch/x86/x86_64/entry.S b/xen/arch/x86/x86_64/entry.S
index c02245ac064c..01b431793b7b 100644
--- a/xen/arch/x86/x86_64/entry.S
+++ b/xen/arch/x86/x86_64/entry.S
@@ -241,8 +241,9 @@ iret_exit_to_guest:
         SPEC_CTRL_COND_VERW     /* Req: %rsp=eframe                    Clob: efl */
 
         addq  $8,%rsp
-.Lft0:  iretq
-        _ASM_PRE_EXTABLE(.Lft0, handle_exception)
+
+LABEL(iret_to_guest, 0)
+        iretq
 END(restore_all_guest)
 
 /*
@@ -920,10 +921,23 @@ handle_exception_saved:
 exception_with_ints_disabled:
         testb $3,UREGS_cs(%rsp)         # interrupts disabled outside Xen?
         jnz   FATAL_exception_with_ints_disabled
-        movq  %rsp,%rdi
-        call  search_pre_exception_table
-        testq %rax,%rax                 # no fixup code for faulting EIP?
-        jz    .Ldispatch_exceptions
+
+#ifndef CONFIG_PV
+        /* No PV?  No IRETs-to-guest to worry about. */
+        jmp .Ldispatch_exceptions
+#else
+        /* Check to see if the exception was on the IRET to guest context. */
+        lea   iret_to_guest(%rip), %rax
+        cmp   %rax, UREGS_rip(%rsp)
+        jne   .Ldispatch_exceptions
+
+        /*
+         * Recovery is at handle_exception.  It may be necessary to make space
+         * on the interrupted stack for ec/ev, after which the current ec/ev
+         * is copied to make it appear as if this exception occurred in guest
+         * context.
+         */
+        lea   handle_exception(%rip), %rax
         movq  %rax,UREGS_rip(%rsp)      # fixup regular stack
 
 #ifdef CONFIG_XEN_SHSTK
@@ -940,13 +954,14 @@ exception_with_ints_disabled:
         movq  %rsp,%rsi
         subq  $8,%rsp
         movq  %rsp,%rdi
-        movq  $UREGS_kernel_sizeof/8,%rcx
-        rep;  movsq                     # make room for ec/ev
+        mov   $UREGS_kernel_sizeof/8, %ecx
+        rep movsq                       # make room for ec/ev
 1:      movq  UREGS_error_code(%rsp),%rax # ec/ev
         movq  %rax,UREGS_kernel_sizeof(%rsp)
         mov   %r15, STACK_CPUINFO_FIELD(xen_cr3)(%r14)
         mov   %r13b, STACK_CPUINFO_FIELD(use_pv_cr3)(%r14)
         jmp   restore_all_xen           # return to fixup code
+#endif /* !CONFIG_PV */
 
 /* No special register assumptions. */
 FATAL_exception_with_ints_disabled:
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 15:11:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 15:11:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099194.1453159 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ureHd-00024U-PM; Thu, 28 Aug 2025 15:11:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099194.1453159; Thu, 28 Aug 2025 15:11: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 1ureHd-00023u-HY; Thu, 28 Aug 2025 15:11:25 +0000
Received: by outflank-mailman (input) for mailman id 1099194;
 Thu, 28 Aug 2025 15:11:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FrxM=3I=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ureCA-00035A-HP
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 15:05:46 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 783d1277-8420-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 17:05:44 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-45b618e067eso15231085e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 08:05:44 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b6f0c6fe5sm78394535e9.5.2025.08.28.08.05.01
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 28 Aug 2025 08:05: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>
X-Inumbo-ID: 783d1277-8420-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756393543; x=1756998343; 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=z66lRYN/mLU8duIBhkfKFbwOLnIKPi9ItG27/8oZ5BQ=;
        b=SyQsKjPGw2at6leSnUtAc+cnBr6YsLN5MDqLXMBpPRI/NWnUo8H+uwGTxQqurXKxoQ
         VsMpp0gA2wEWId5Zd0Ok4PlkIEI9w35L0ISLkLDop34csUaoTkPXFmZ9SfDmx03jX9vQ
         su+IoaVgMLga6luC2FJOMonHQYFWLNiPcDy4g=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756393543; x=1756998343;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=z66lRYN/mLU8duIBhkfKFbwOLnIKPi9ItG27/8oZ5BQ=;
        b=plpAwRYgN4obrANnIRrVW9qLWDQ5Ikulnh7OnOmy4MUmhSY+AHwQpt36+JU43Wu1i3
         v7la7toeR5rlqYK2u471LIThMyvC7Jt2zqm5ouTq/kNdH96A59HmaNCUM2ENeIAxy/nA
         PfLnUPiAr7lT8/+QZL5nBri9p70RmVtl/d5RdRXugZKh/+0Jh5lxotfEP87pkSbX5yGG
         56zwtV22P88CmWMCkm7y8UX5qAJftHDFnbFS8lyVDeBgEUu15wIxkGxCieA/VglUMpIy
         JjKZwmKOUx7XevKBuB/yhO+sMxT8pcVm/EJPpbGfqKTs6vB/585iryI8b9hIAPeYlbdQ
         FWHA==
X-Gm-Message-State: AOJu0Yy8jGFz41ht9eqtw0wDtxn88eluk9fLXxZHnhSOj6RYbbXdI28U
	q80w/urxX6qMVbmHUPT/ezulP2TbMMuMAq8KZ60ii8e3gSsbU7un6dREyWao0ku2QDcgZ2pNwgd
	KRcEs
X-Gm-Gg: ASbGncs+LeUAxNjdQ/TlPHNCMe18GyY6l3wrSpYrQ3r0qnKF0sameKd5j8VSPngJiUx
	Xpv/KOr2zwhKSXEOmlE0LfAgx5Q27p/y0eOcTJfIQaBykqdAGjJ/EV+k+u214F/hU69IDH/wnJ3
	CHI+ff9q1H0gT6ZZcPt1IxMVASJipjULKOlPHZuvTl7Teooa6Tmnb9ISK3huD2vT0Y6ylevVQtH
	J5pVWOjMBXZqGnxTc7Qhx9Q3z2M9YOAlxGctXSHnLq5e6IrFsySbGX6EBDT8Ln8b+WIM7R1rgtk
	6pZDafr02uXI2bHSVNW0FRHrhXDQ1wVnovYzxdK1Lg5rmg4ed6/vg1ku54WR7RwbMVjgFniyYgQ
	Vx2iF8d/Ruya2T3y0WcYWrlU0mWQHQtLPPVL5Gfef9iBVxUuRMYiZd6ITj/3MgC3GbG8fkOhaMD
	+imAq6wyYivBaEvSivsPTurg==
X-Google-Smtp-Source: AGHT+IHfMVVaWeyLXjy86sncGtaY/J1QtG6GWfYEL+UhEdGettgAeC+4Hrq5ntkug4w9b7Cp3bC1JQ==
X-Received: by 2002:a05:600c:8b21:b0:456:189e:223a with SMTP id 5b1f17b1804b1-45b6f48575amr57939235e9.10.1756393543201;
        Thu, 28 Aug 2025 08:05:43 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 03/23] x86/traps: Introduce opt_fred
Date: Thu, 28 Aug 2025 16:03:49 +0100
Message-Id: <20250828150409.901315-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250828150409.901315-1-andrew.cooper3@citrix.com>
References: <20250828150409.901315-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

... disabled by default.  There is a lot of work before FRED can be enabled by
default.

One part of FRED, the LKGS (Load Kernel GS) instruction, is enumerated
separately but is mandatory as FRED disallows the SWAPGS instruction.
Normally, we'd have to check both CPUID bits, but Xen does not use GS like
most other software, and can manage without the LKGS instruction.

FRED formally removes the use of Ring1 and Ring2, meaning we cannot run 32bit
PV guests.  Therefore, don't enable FRED by default in shim mode.  OTOH, if
FRED is active, then PV32 needs disabling like with CET.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

v2:
 * Fix check for warning.
 * Drop check for LKGS.
---
 docs/misc/xen-command-line.pandoc | 10 +++++++++
 xen/arch/x86/include/asm/traps.h  |  4 ++++
 xen/arch/x86/traps-setup.c        | 36 +++++++++++++++++++++++++++++++
 3 files changed, 50 insertions(+)

diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
index a75b6c930195..25cebdc1110f 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -1284,6 +1284,16 @@ requirement can be relaxed.  This option is particularly useful for nested
 virtualization, to allow the L1 hypervisor to use EPT even if the L0 hypervisor
 does not provide `VM_ENTRY_LOAD_GUEST_PAT`.
 
+### fred (x86)
+> `= <bool>`
+
+> Default: `false`
+
+Flexible Return and Event Delivery is an overhaul of interrupt, exception and
+system call handling, fixing many corner cases in the x86 architecture, and
+expected in hardware from 2025.  Support in Xen is a work in progress and
+disabled by default.
+
 ### gnttab
 > `= List of [ max-ver:<integer>, transitive=<bool>, transfer=<bool> ]`
 
diff --git a/xen/arch/x86/include/asm/traps.h b/xen/arch/x86/include/asm/traps.h
index 6ae451d3fc70..73097e957d05 100644
--- a/xen/arch/x86/include/asm/traps.h
+++ b/xen/arch/x86/include/asm/traps.h
@@ -7,6 +7,10 @@
 #ifndef ASM_TRAP_H
 #define ASM_TRAP_H
 
+#include <xen/types.h>
+
+extern int8_t opt_fred;
+
 void bsp_early_traps_init(void);
 void traps_init(void);
 void bsp_traps_reinit(void);
diff --git a/xen/arch/x86/traps-setup.c b/xen/arch/x86/traps-setup.c
index c89280270fbb..6e2af58ba0a5 100644
--- a/xen/arch/x86/traps-setup.c
+++ b/xen/arch/x86/traps-setup.c
@@ -9,6 +9,8 @@
 #include <asm/endbr.h>
 #include <asm/idt.h>
 #include <asm/msr.h>
+#include <asm/pv/domain.h>
+#include <asm/pv/shim.h>
 #include <asm/shstk.h>
 #include <asm/stubs.h>
 #include <asm/traps.h>
@@ -20,6 +22,9 @@ unsigned int __ro_after_init ler_msr;
 static bool __initdata opt_ler;
 boolean_param("ler", opt_ler);
 
+int8_t __ro_after_init opt_fred = 0;
+boolean_param("fred", opt_fred);
+
 void nocall entry_PF(void);
 void nocall lstar_enter(void);
 void nocall cstar_enter(void);
@@ -299,6 +304,37 @@ void __init traps_init(void)
     /* Replace early pagefault with real pagefault handler. */
     _update_gate_addr_lower(&bsp_idt[X86_EXC_PF], entry_PF);
 
+    /*
+     * Xen doesn't use GS like most software does, and doesn't need the LKGS
+     * instruction in order to manage PV guests.  No need to check for it.
+     */
+    if ( !cpu_has_fred )
+    {
+        if ( opt_fred == 1 )
+            printk(XENLOG_WARNING "FRED not available, ignoring\n");
+        opt_fred = 0;
+    }
+
+    if ( opt_fred == -1 )
+        opt_fred = !pv_shim;
+
+    if ( opt_fred )
+    {
+#ifdef CONFIG_PV32
+        if ( opt_pv32 )
+        {
+            opt_pv32 = 0;
+            printk(XENLOG_INFO "Disabling PV32 due to FRED\n");
+        }
+#endif
+        setup_force_cpu_cap(X86_FEATURE_XEN_FRED);
+        printk("Using FRED event delivery\n");
+    }
+    else
+    {
+        printk("Using IDT event delivery\n");
+    }
+
     load_system_tables();
 
     init_ler();
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 15:11:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 15:11:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099195.1453175 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ureHf-0002Z6-Ac; Thu, 28 Aug 2025 15:11:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099195.1453175; Thu, 28 Aug 2025 15:11: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 1ureHf-0002XG-2H; Thu, 28 Aug 2025 15:11:27 +0000
Received: by outflank-mailman (input) for mailman id 1099195;
 Thu, 28 Aug 2025 15:11:25 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FrxM=3I=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ureCn-0003MD-Ee
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 15:06:25 +0000
Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
 [2a00:1450:4864:20::332])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 90b17f2f-8420-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 17:06:25 +0200 (CEST)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-45b7d497ab9so3838295e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 08:06:25 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b6f0c6fe5sm78394535e9.5.2025.08.28.08.06.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 28 Aug 2025 08:06: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>
X-Inumbo-ID: 90b17f2f-8420-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756393584; x=1756998384; 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=b9VifVPyRYNO8P2YadoE86GWM+l9cyVgWHH3NXrObOM=;
        b=SHeYSmSKmPgVrzBzLTPjUGPRZqRznzDjsolGLM72xFs07LKTztj7gaRW/hEMlMWnB+
         XATKnaKtJ45M8zXAOJoD5f9fPU11w9ibQyfTLqYlTV3qJ6UsVigsEqwTjIPSPv3JiOzZ
         mPCsLo493DJJ9fzODYmDU5HeeaRbOtvVwpGok=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756393584; x=1756998384;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=b9VifVPyRYNO8P2YadoE86GWM+l9cyVgWHH3NXrObOM=;
        b=nMVgf8qu1T1pWEB7chfF2sM5F6vRqJ3zMWTacG1xOmp32ZV56Lq5RUk2TAdzRqHKh9
         dYUSnKV+NpYl/fflrtCSdaRhKd870vNCl0xndnJ4jnvRzR2+qxgI0OPzgAmpp8XdDqqS
         wQKTCOAIxzCxdcSFyBomfpySqHWaSNJjxLN2/DT5dDErpOWD1ZMEuuATsIKk9epGDtdA
         XbmOf7xa1d48Uj2Lw3a8QN0GVdJzszWY3M7fDIhXwRUKnp8c+9RFUi/xYbEfK0294WC+
         bfToxkWBkC+/Y3uBuDAFVE0Izk6NpR/50zpMsEs1u/7aCdVpRhcbZ9NqvYElQmfF2zNd
         lCyQ==
X-Gm-Message-State: AOJu0YwnDGoQ3lFtvhBXjavWutnCQT7lVYiolPyaXTJvr3K81QU5rzjG
	iY9VlE7lITwHT1zQGANuC/Wb40AfpB5+A0jtgMcHaeGKaihXfxZfO3dyPJ10AjfH6STDXWrfgUY
	yCgPC
X-Gm-Gg: ASbGnctQxv/HdmFvxmbNCm6LTug3f1RcYv6u18JoZl2yUkv00e3KtMxtGD/jCIsT7ju
	vGE599Qc2/b8qP+rjRCSwTLpc0ZBGJ+2fmYD7AOh2HAypyWboZ8F30v3COznlElNu49r2a3mfJ3
	MpMdZTEojDSYeVtef3LJQCR/W61GZfA98l/3EVYiFZC2Qqs6UpcxyJ4V4l8pnNNx/XGutESStW+
	sTlW6vs7mbGHWydYBFFaNaFdiN/W6MR8ZeCxFdQxrea4/S9j5raGDppjYr044OESNoj717aK+VA
	utI5ACZDNs6JFVHziEi6jgerICzqbZZhFIHz1UKU2W7NnxQT0sRJD+8NsHfXHlp2XutfZYjwjqQ
	jGvJLF0ziXxmoVpU0j0tdD4eYNSMDPM+CSMFBvKGq3/gmAzCr5ksJpRsLxry+NdkYOwD/uS0xy4
	RMGFZMGrpuDzU=
X-Google-Smtp-Source: AGHT+IGNDVxoec5ifGp7ItTPWwPLlGe9Bl9ZKPx+k7h/X2UHoruYrK5FmiyPA21+6coxA0yX15wV1w==
X-Received: by 2002:a05:600c:1c92:b0:458:bfe1:4a81 with SMTP id 5b1f17b1804b1-45b6193c94dmr140920095e9.17.1756393584033;
        Thu, 28 Aug 2025 08:06:24 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 21/23] x86/pv: ERETU error handling
Date: Thu, 28 Aug 2025 16:04:07 +0100
Message-Id: <20250828150409.901315-22-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250828150409.901315-1-andrew.cooper3@citrix.com>
References: <20250828150409.901315-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

ERETU can fault for guest reasons, and like IRET needs special handling to
forward the error into the guest.

As this is largely written in C, take the opportunity to better classify the
sources of error, and in particilar, not forward errors that are actually
Xen's fault into the guest, opting for a domain crash instead.

Because ERETU does not enable NMIs if it faults, a corner case exists if an
NMI was taken while in guest context, and the ERETU back out faults.  Recovery
must involve an ERETS with the interrupted context's NMI flag.

See the comments for full details.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

v2:
 * New
---
 xen/arch/x86/traps.c             | 115 +++++++++++++++++++++++++++++++
 xen/arch/x86/x86_64/entry-fred.S |  13 ++++
 2 files changed, 128 insertions(+)

diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index 72df446a6a78..e10b4e771824 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -2345,6 +2345,113 @@ void asmlinkage entry_from_pv(struct cpu_user_regs *regs)
     fatal_trap(regs, false);
 }
 
+void nocall eretu_error_dom_crash(void);
+
+/*
+ * Classify an event at the ERETU instruction, and handle if possible.
+ * Returns @true if handled, @false if the event should continue down the
+ * normal handlers.
+ */
+static bool handle_eretu_event(struct cpu_user_regs *regs)
+{
+    unsigned long recover;
+
+    /*
+     * WARNING: The GPRs in gregs overlaps with regs.  Only gregs->error_code
+     *          and later are legitimate to access.
+     */
+    struct cpu_user_regs *gregs =
+        _p(regs->rsp - offsetof(struct cpu_user_regs, error_code));
+
+    /*
+     * The asynchronous or fatal events (INTR, NMI, #MC, #DF) have been dealt
+     * with, meaning we only have syncrhonous ones to consider.  Anything
+     * which isn't a hardware exception wants handling normally.
+     */
+    if ( regs->fred_ss.type != X86_ET_HW_EXC )
+        return false;
+
+    /*
+     * Guests are permitted to write non-present GDT/LDT entries.  Therefore
+     * #NP[sel] (%cs) and #SS[sel] (%ss) must be handled as guest errors.  The
+     * only other source of #SS is for a bad %ss-relative memory access in
+     * Xen, and if the stack is that bad, we'll have escalated to #DF.
+     *
+     * #PF can happen from ERETU accessing the GDT/LDT.  Xen may translate
+     * these into #GP for the guest, so must be handled as guest errors.  In
+     * theory we can get #PF for a bad instruction fetch or bad stack access,
+     * but either of these will be fatal and not end up here.
+     */
+    switch ( regs->fred_ss.vector )
+    {
+    case X86_EXC_GP:
+        /*
+         * #GP[0] can occur because of a NULL %cs or %ss (which are a guest
+         * error), but some #GP[0]'s are errors in Xen (ERETU at SL != 0), or
+         * errors of Xen handling guest state (bad metadata).  These magic
+         * numbers came from the FRED Spec; they check that ERETU is trying to
+         * return to Ring 3, and that reserved or inapplicable bits are 0.
+         */
+        if ( regs->error_code == 0 && (gregs->cs & ~3) && (gregs->ss & ~3) &&
+             (regs->fred_cs.sl != 0 ||
+              (gregs->csx    & 0xffffffffffff0003UL) != 3 ||
+              (gregs->rflags & 0xffffffffffc2b02aUL) != 2 ||
+              (gregs->ssx    &         0xfff80003UL) != 3) )
+        {
+            recover = (unsigned long)eretu_error_dom_crash;
+
+            if ( regs->fred_cs.sl )
+                gprintk(XENLOG_ERR, "ERETU at SL %u\n", regs->fred_cs.sl);
+            else
+                gprintk(XENLOG_ERR, "Bad return state: csx %#lx, rflags %#lx, ssx %#x\n",
+                        gregs->csx, gregs->rflags, (unsigned int)gregs->ssx);
+            break;
+        }
+        fallthrough;
+    case X86_EXC_NP:
+    case X86_EXC_SS:
+    case X86_EXC_PF:
+        recover = (unsigned long)entry_FRED_R3;
+        break;
+
+        /*
+         * Handle everything else normally.  #BP and #DB would be debugging
+         * activities in Xen.  In theory we can get #UD if CR4.FRED gets
+         * cleared, but in practice if that were the case we wouldn't be here
+         * handling the result.
+         */
+    default:
+        return false;
+    }
+
+    this_cpu(last_extable_addr) = regs->rip;
+
+    /*
+     * Everything else is recoverable, one way or another.
+     *
+     * If an NMI was taken in guest context and the ERETU faulted, NMIs will
+     * still be blocked.  Therefore we copy the interrupted frame's NMI status
+     * into our own, and must ERETS as part of recovery.
+     */
+    regs->fred_ss.nmi = gregs->fred_ss.nmi;
+
+    /*
+     * Next, copy the exception information from the current frame back onto
+     * the interrupted frame, preserving the interrupted frame's %cs and %ss.
+     */
+    *cpu_regs_fred_info(regs) = *cpu_regs_fred_info(gregs);
+    gregs->ssx = (regs->ssx & ~0xffff) | gregs->ss;
+    gregs->csx = (regs->csx & ~0xffff) | gregs->cs;
+    gregs->error_code   = regs->error_code;
+    gregs->entry_vector = regs->entry_vector;
+
+    fixup_exception_return(regs, recover, 0);
+
+    return true;
+}
+
+void nocall eretu(void);
+
 void asmlinkage entry_from_xen(struct cpu_user_regs *regs)
 {
     struct fred_info *fi = cpu_regs_fred_info(regs);
@@ -2383,6 +2490,14 @@ void asmlinkage entry_from_xen(struct cpu_user_regs *regs)
     if ( regs->eflags & X86_EFLAGS_IF )
         local_irq_enable();
 
+    /*
+     * An event taken at the ERETU instruction may be because of guest state
+     * and in that case will need special handling.
+     */
+    if ( unlikely(regs->rip == (unsigned long)eretu) &&
+         handle_eretu_event(regs) )
+        return;
+
     switch ( type )
     {
     case X86_ET_HW_EXC:
diff --git a/xen/arch/x86/x86_64/entry-fred.S b/xen/arch/x86/x86_64/entry-fred.S
index 07684f38a078..8b5cafb866e2 100644
--- a/xen/arch/x86/x86_64/entry-fred.S
+++ b/xen/arch/x86/x86_64/entry-fred.S
@@ -27,9 +27,22 @@ END(entry_FRED_R3)
 
 FUNC(eretu_exit_to_guest)
         POP_GPRS
+
+        /*
+         * Exceptions here are handled by redirecting either to
+         * entry_FRED_R3() (for an error to be passed to the guest), or to
+         * eretu_error_dom_crash() (for a Xen error handling guest state).
+         */
+LABEL(eretu, 0)
         eretu
 END(eretu_exit_to_guest)
 
+FUNC(eretu_error_dom_crash)
+        PUSH_AND_CLEAR_GPRS
+        sti
+        call    asm_domain_crash_synchronous  /* Does not return */
+END(eretu_error_dom_crash)
+
         /* The Ring0 entrypoint is at Ring3 + 0x100. */
         .org entry_FRED_R3 + 0x100, 0xcc
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 15:11:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 15:11:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099196.1453179 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ureHf-0002ew-Nq; Thu, 28 Aug 2025 15:11:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099196.1453179; Thu, 28 Aug 2025 15:11: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 1ureHf-0002d6-Cj; Thu, 28 Aug 2025 15:11:27 +0000
Received: by outflank-mailman (input) for mailman id 1099196;
 Thu, 28 Aug 2025 15:11:25 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FrxM=3I=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ureCe-00035A-Fs
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 15:06:16 +0000
Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com
 [2a00:1450:4864:20::42d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8a9d1b23-8420-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 17:06:14 +0200 (CEST)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-3cd59c5a953so693956f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 08:06:14 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b6f0c6fe5sm78394535e9.5.2025.08.28.08.06.13
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 28 Aug 2025 08:06: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>
X-Inumbo-ID: 8a9d1b23-8420-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756393574; x=1756998374; 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=qKqcLDxlG1mGiL4nQNT2c4TkVXSyMWLCBmIFBffr14U=;
        b=IBOAy2llDm3I0eNGNdVzHeuGdaPwKmkze4+GvV28Pu4RDXS7M0OFGJWRWVs8FEbvgQ
         9OiZ1bugIWS+VVpWoTBpDvHl+AC/WdREbOe6SDgS/Ju5aSejEFyjn/yzfbxm5wusCanc
         GbC0Z6vOUThU3Xf3KoonYwrdrf03i2W8T2SbQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756393574; x=1756998374;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=qKqcLDxlG1mGiL4nQNT2c4TkVXSyMWLCBmIFBffr14U=;
        b=K8+v/E17SfWEe4pTDSdZkBTfabKCydh5cjBo1oP3LKbkgfP6C75UpYof9ium0fDdQS
         Y93+mbozI8bZBe/g58XSoEaNZ72vSCggBOddXvYZ6+YGVTTYJI1yzyn+OhrKTaN5d55u
         R/3LSukJKy6IeCB/5rS41BWKjP35i+Mew6TS3mQlA3ziPcOiO9lDu2GGYnXDk7sDwSh/
         9i/pXqOhVVkouGi2nZJcBwqlpzd27dar16FQt/YLkPYLGqhblUpXPMrx0O3ycQWZUFhi
         6zISkj4An8ZlT1oVZ9yvwGPhlzq/ZeixRU/DGAE1Nr00TGwtL0RoDyX+L2G9v2FGnjsx
         w61Q==
X-Gm-Message-State: AOJu0YyfPFqn0TAir/3lxGYuz/K3bcIOvhCqpsN5qpiT6zItaK21Zb/J
	sqJNrlwnWrZQsM+3rG+xkUFwWsntVOYXn+eJI91LJRDYkk83uBJB75Tw/jeO0Nx8l4RzO0CNvJm
	GUFvx
X-Gm-Gg: ASbGncvxMTrZhECIPUhoA7087BTom4phIb4a5BBitUgZ9x4m4aLPpetA3LAxZhL0cv9
	sgDRri1G9dsY45E8Qcvhr8l+bUvJX/pY+wv3VPZMxrfSEvnRL7YqhXufDJ8rQQZvNbP17iJN9gG
	d9noN7kxqcRV2apiMS+97Cu4n7OYYcOB1jQ/MMsjUwrV7Xi7NvBvkraRs2gzS01xpqkIRP7f/s2
	xRfXwAvwytjJ0vWog/QZiEuYfWK8Tg4Hm49Jhy7x0lOx29muYFZ0eFskjtgFE1uQ/2p7Rk61UeB
	BTcZYp62dvT6YPjZ+pTubRj+43L6Pyro7iEPVxCyFEpVds73d3y+YBRt1VIDJqG5Gpli7tPH8QB
	7H8b25mNojLv7+FLn1mxxYXek83LQkUoQbFk99gRRxsZAy2UaZEV0YRyywqx94v5TxnA1c8mj7x
	KVN3Lu7mylQ38=
X-Google-Smtp-Source: AGHT+IF8N9XSxD0PQESmtZKfFtRr1vtWoJ4TLrpN191W3gdZj8NisuWwnrpE2c7KJGLHlE+VMVGfYQ==
X-Received: by 2002:a5d:5d08:0:b0:3c5:20d3:6041 with SMTP id ffacd0b85a97d-3c5dc54071emr19642035f8f.41.1756393573895;
        Thu, 28 Aug 2025 08:06:13 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 15/23] x86/pv: Deduplicate is_canonical_address() in do_set_segment_base()
Date: Thu, 28 Aug 2025 16:04:01 +0100
Message-Id: <20250828150409.901315-16-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250828150409.901315-1-andrew.cooper3@citrix.com>
References: <20250828150409.901315-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This is really a rearrangement to make adding FRED support easier.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

v2:
 * New

There is a marginal code size improvement:

  add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-46 (-46)
  Function                                     old     new   delta
  do_set_segment_base                          496     450     -46

but it does get undone by the FRED support.
---
 xen/arch/x86/pv/misc-hypercalls.c | 32 ++++++++++++++++---------------
 1 file changed, 17 insertions(+), 15 deletions(-)

diff --git a/xen/arch/x86/pv/misc-hypercalls.c b/xen/arch/x86/pv/misc-hypercalls.c
index 7a37f16bf038..4c2abeb4add8 100644
--- a/xen/arch/x86/pv/misc-hypercalls.c
+++ b/xen/arch/x86/pv/misc-hypercalls.c
@@ -176,27 +176,29 @@ long do_set_segment_base(unsigned int which, unsigned long base)
     switch ( which )
     {
     case SEGBASE_FS:
-        if ( is_canonical_address(base) )
-            write_fs_base(base);
-        else
+    case SEGBASE_GS_USER:
+    case SEGBASE_GS_KERNEL:
+        if ( !is_canonical_address(base) )
+        {
             ret = -EINVAL;
-        break;
+            break;
+        }
 
-    case SEGBASE_GS_USER:
-        if ( is_canonical_address(base) )
+        switch ( which )
         {
-            write_gs_shadow(base);
+        case SEGBASE_FS:
+            write_fs_base(base);
+            break;
+
+        case SEGBASE_GS_USER:
             v->arch.pv.gs_base_user = base;
-        }
-        else
-            ret = -EINVAL;
-        break;
+            write_gs_shadow(base);
+            break;
 
-    case SEGBASE_GS_KERNEL:
-        if ( is_canonical_address(base) )
+        case SEGBASE_GS_KERNEL:
             write_gs_base(base);
-        else
-            ret = -EINVAL;
+            break;
+        }
         break;
 
     case SEGBASE_GS_USER_SEL:
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 15:11:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 15:11:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099203.1453194 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ureHo-0003wW-RS; Thu, 28 Aug 2025 15:11:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099203.1453194; Thu, 28 Aug 2025 15:11: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 1ureHo-0003wK-O1; Thu, 28 Aug 2025 15:11:36 +0000
Received: by outflank-mailman (input) for mailman id 1099203;
 Thu, 28 Aug 2025 15:11:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FrxM=3I=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ureCk-00035A-2Z
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 15:06:22 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8deb692b-8420-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 17:06:20 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-45b7c56a987so2491995e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 08:06:20 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b6f0c6fe5sm78394535e9.5.2025.08.28.08.06.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 28 Aug 2025 08:06: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>
X-Inumbo-ID: 8deb692b-8420-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756393576; x=1756998376; 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=FrDLZojjpeEcCCCwufcD7E82gZIQTbD6hJlojBPfd1Y=;
        b=fx4jO1u5Pe6DfGf8/niOGST7PfBD1ZP6gknEMjQKVeyiHVWD7um7A2GwFdlk0s6rlU
         R1uUCcwAlWAu2k/OomExuPy7TRcZsH2bQ4GGR4fFoHPlZf4D0UKAWxYukJ0H02dS3U+i
         DznaUcYX4rUVuk+SpO7ZNuJD5+sStmw+aYY58=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756393576; x=1756998376;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=FrDLZojjpeEcCCCwufcD7E82gZIQTbD6hJlojBPfd1Y=;
        b=sFNJlJT8c0gluWLsskFdvnPsEBcfRkwAge7ql1XhMjZoCwn8rBeBf4nU7ursiSLb7W
         iQ9Kj4LPPl0b1IALoNRFHlNcIGM/jGM9gHB8iQA3st/2uNxXw1P9bvnJ6zsljKc3wtac
         Ul+LcqDvDh8eVULW6e77ClTPZN/lr1WIHfBVBke3r6am9HHQdfyAX+xggRK/B96R1WWz
         CMgP9kTmRcYG6SCOFo5WCvVtMgQrAxnAkbIHv/DYhpOtAc8V0ObghYVjISr7BEjUS7KK
         an0gU2ZpXF1isKIs7ZLoMPFjCy1bJ/LJhDZha60GIKeQNjavADGgJK8HPEcsxKGG4fee
         IFEQ==
X-Gm-Message-State: AOJu0YxFSAjzVuM4keZK2+K0fTz6eXNSAzPtKKtMd5dbt2D6qlW8BSVf
	lRRD/dIDxuHY17BYZronQ7yk0/hz+5233AeHYlWKjGbkQ9RCWMKQG9zSqqFQbYcikKt6EUYgDnb
	weN72
X-Gm-Gg: ASbGncvJkH+M+XWsLQzFCNR1W7VcKnUo1YFGbmBw96SKBCKMPIIQnllBV404Kok6/ce
	83f+srsUGvCI0kiA7kDbJTbO4TJUkyTvNzH1xnoBQLEik4Y/whFR7bSnM8SgAP7/P+Rl9Y4720P
	i2ZfC5agqCPMZEOyMx3EF+TqX5nHCKI7nKBHfpxetK89Hs6kEizbLznj/vf0FINyEf2A1nJr1+B
	Qd12dmA9pCpCDl+32d8vca7iFD/gWoW0ch/RMDsINFj1+P2H1E9L+iEvJle+1bm/LgOXfJH6XkW
	ZBKsOY8vv/cReqpaLvcOWepqK0ToTi8vHG5a2+4WtB03s14IKb3RZt+zAaKNt/1Lxgm35xN/55d
	ImrSF/aZjm3F8eepgI/yvn/ULOf0HZUIyvXzmwq7ujEMQGkbN0AGZVuKmYAkcxuXH27S46LOnhh
	WoumBaen5Kzmo=
X-Google-Smtp-Source: AGHT+IFXn2lu5/qDMrHuLeebtuu84azm8XvndGfqNIgKY0Ef4fMOu6/+AjthmwWQxQOQbXtUwhhZTQ==
X-Received: by 2002:a05:600c:3b15:b0:458:c059:7db1 with SMTP id 5b1f17b1804b1-45b517d4580mr230098655e9.30.1756393576217;
        Thu, 28 Aug 2025 08:06:16 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 17/23] x86/entry: Drop the pre exception table infrastructure
Date: Thu, 28 Aug 2025 16:04:03 +0100
Message-Id: <20250828150409.901315-18-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250828150409.901315-1-andrew.cooper3@citrix.com>
References: <20250828150409.901315-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

It is no longer used.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

v2:
 * New
---
 xen/arch/x86/extable.c               | 14 --------------
 xen/arch/x86/include/asm/asm_defns.h | 11 ++++-------
 xen/arch/x86/include/asm/uaccess.h   |  2 --
 xen/arch/x86/xen.lds.S               |  5 -----
 4 files changed, 4 insertions(+), 28 deletions(-)

diff --git a/xen/arch/x86/extable.c b/xen/arch/x86/extable.c
index cf637d0921e4..a9b6c6b904f5 100644
--- a/xen/arch/x86/extable.c
+++ b/xen/arch/x86/extable.c
@@ -61,7 +61,6 @@ void init_or_livepatch sort_exception_table(struct exception_table_entry *start,
 void __init sort_exception_tables(void)
 {
     sort_exception_table(__start___ex_table, __stop___ex_table);
-    sort_exception_table(__start___pre_ex_table, __stop___pre_ex_table);
 }
 
 static unsigned long
@@ -219,16 +218,3 @@ int __init cf_check stub_selftest(void)
 }
 __initcall(stub_selftest);
 #endif /* CONFIG_SELF_TESTS */
-
-unsigned long asmlinkage search_pre_exception_table(struct cpu_user_regs *regs)
-{
-    unsigned long addr = regs->rip;
-    unsigned long fixup = search_one_extable(
-        __start___pre_ex_table, __stop___pre_ex_table, addr);
-    if ( fixup )
-    {
-        dprintk(XENLOG_INFO, "Pre-exception: %p -> %p\n", _p(addr), _p(fixup));
-        perfc_incr(exception_fixed);
-    }
-    return fixup;
-}
diff --git a/xen/arch/x86/include/asm/asm_defns.h b/xen/arch/x86/include/asm/asm_defns.h
index a81a4043d0f1..d7eafedf0e4c 100644
--- a/xen/arch/x86/include/asm/asm_defns.h
+++ b/xen/arch/x86/include/asm/asm_defns.h
@@ -65,22 +65,19 @@ register unsigned long current_stack_pointer asm("rsp");
 
 /* Exception table entry */
 #ifdef __ASSEMBLY__
-# define _ASM__EXTABLE(sfx, from, to)             \
-    .section .ex_table##sfx, "a" ;                \
+# define _ASM_EXTABLE(from, to)                   \
+    .section .ex_table, "a" ;                     \
     .balign 4 ;                                   \
     .long _ASM_EX(from), _ASM_EX(to) ;            \
     .previous
 #else
-# define _ASM__EXTABLE(sfx, from, to)             \
-    " .section .ex_table" #sfx ",\"a\"\n"         \
+# define _ASM_EXTABLE(from, to)                   \
+    " .section .ex_table,\"a\"\n"                 \
     " .balign 4\n"                                \
     " .long " _ASM_EX(from) ", " _ASM_EX(to) "\n" \
     " .previous\n"
 #endif
 
-#define _ASM_EXTABLE(from, to)     _ASM__EXTABLE(, from, to)
-#define _ASM_PRE_EXTABLE(from, to) _ASM__EXTABLE(.pre, from, to)
-
 #ifdef __ASSEMBLY__
 
 .macro BUILD_BUG_ON condstr, cond:vararg
diff --git a/xen/arch/x86/include/asm/uaccess.h b/xen/arch/x86/include/asm/uaccess.h
index 719d053936b9..4c41a0fe0426 100644
--- a/xen/arch/x86/include/asm/uaccess.h
+++ b/xen/arch/x86/include/asm/uaccess.h
@@ -410,8 +410,6 @@ struct exception_table_entry
 };
 extern struct exception_table_entry __start___ex_table[];
 extern struct exception_table_entry __stop___ex_table[];
-extern struct exception_table_entry __start___pre_ex_table[];
-extern struct exception_table_entry __stop___pre_ex_table[];
 
 union stub_exception_token {
     struct {
diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
index 966e514f2034..66075bc0ae6d 100644
--- a/xen/arch/x86/xen.lds.S
+++ b/xen/arch/x86/xen.lds.S
@@ -119,11 +119,6 @@ SECTIONS
        *(.ex_table)
        __stop___ex_table = .;
 
-       /* Pre-exception table */
-       __start___pre_ex_table = .;
-       *(.ex_table.pre)
-       __stop___pre_ex_table = .;
-
        . = ALIGN(PAGE_SIZE);
        __ro_after_init_end = .;
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 15:11:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 15:11:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099204.1453200 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ureHp-00040o-DD; Thu, 28 Aug 2025 15:11:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099204.1453200; Thu, 28 Aug 2025 15: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 1ureHp-000406-4C; Thu, 28 Aug 2025 15:11:37 +0000
Received: by outflank-mailman (input) for mailman id 1099204;
 Thu, 28 Aug 2025 15:11:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FrxM=3I=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ureCJ-00035A-4T
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 15:05:55 +0000
Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com
 [2a00:1450:4864:20::429])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7ddc10b7-8420-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 17:05:53 +0200 (CEST)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-3ceb9c3d98cso215222f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 08:05:53 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b6f0c6fe5sm78394535e9.5.2025.08.28.08.05.45
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 28 Aug 2025 08:05: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>
X-Inumbo-ID: 7ddc10b7-8420-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756393553; x=1756998353; 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=1vizQ3VHS0of9WutZZfkzSTT2z1DRqiDuoluptA3qSA=;
        b=nkIBD8WGDj7dnhIH2NU5aTkt5cnbxTARO4bB1Dc32UPMDohSm5oG/e4mqvzzshOSOY
         93qIIt5JU8JUSHe6CLm2v2Q4yZDHyJFNnm8muy0t91ETNfImgdp+xy75Wa4BXo5FJ7FS
         y6Ai1iVHQb4yDKETHoiUaT5o8s+4IL20mq0mk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756393553; x=1756998353;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=1vizQ3VHS0of9WutZZfkzSTT2z1DRqiDuoluptA3qSA=;
        b=Ct41BrvE8Ix+Ana7WdNvah+4rHvr4tdcpy6WITHIrJ5K6dgXc2ihHHBEhivCzRus+5
         5IExWjo76E3nEwrdOjohfWW8gPvCx7x7luFoM7GHUn7Z70DqARBkplWnE7gN62j6jF2B
         kXyz4SYvod6NZFMDPmilFS7JwSvsCt+7deYMWo8Lnpe8Ex+dEEtemj3QD7C8AjHR87A8
         aYzy67WoBtmzqviVzjzSWOo3mysI8BA4wcJGQi1pt5f38LEElulCvnTtKRhKKXWrjW3j
         FcAcCffOk6v7qLzwzsHP7kuqfsHDMUx2ARkw0QP02BwJx66XbeqNMubMFQWQijXsStPz
         IaJA==
X-Gm-Message-State: AOJu0YxBvgx86LLYsBwl6uzrFnkj9SWSftase+1C8INSyybew/C80ga2
	uJqNpPFMYfvaxQCqHYG61hJdLGm0SnxEIo2rsdHU2x2dG8yRqS9U5w7Cq/dw3nYNidjL4QrQ8rC
	87fbr
X-Gm-Gg: ASbGncv6F7NVEAiZh2a7rhQ3QBDFpASarTkz3h5ukLUayfnRZfD7xCEwVXVO2m9xyMd
	Oo0/V7kVxTBEaP/lt6+0MlMmk0z2cBoBw4/5BinpvL/zES0mVoHMNdEIrP1SecOi9ofIeXOOflG
	S+5/iZfHEYocS9MUkhcbCTt+fdAcCiBQFXa4rq5Dv3iHZBrLDPq663WXfuBM/FKqchJ9+wS6eF/
	5yHXNHPG+6qpMsy02aLti+UOzVvzo6JNaJB0bsI7cKYSi168hQQgMix5qPEAXoXh3WJ232zKyLP
	JUjiAR8CE+BgAHONM3gj7d4g2dBgky6gMZOvzQqoh4Pv+xy51bRW2dt4nK6DENtpYvwrGAKTIvN
	GgP5/z9w4n3TjdCYaNunzyHlA2oVPDkjryisy/zpEd5qHevlw0hCQEYBIU3t0B79Zb5EVnuynff
	ukqrqRu6lTcdk=
X-Google-Smtp-Source: AGHT+IH4TSYOu4ulE2SxpWCdHmHAm0UgFrckax4DFki9Vf47jObf43Xdd6Kpzocq1jeZJDmlPW+QhA==
X-Received: by 2002:a05:6000:2709:b0:3cd:5815:68d4 with SMTP id ffacd0b85a97d-3cd58156b71mr2638060f8f.57.1756393552645;
        Thu, 28 Aug 2025 08:05:52 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 06/23] x86/traps: Set MSR_PL0_SSP in load_system_tables()
Date: Thu, 28 Aug 2025 16:03:52 +0100
Message-Id: <20250828150409.901315-7-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250828150409.901315-1-andrew.cooper3@citrix.com>
References: <20250828150409.901315-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

FRED and IDT differ by a Supervisor Token on the base of the shstk.  This
means that the value they load into MSR_PL0_SSP differs by 8.

s3_resume() in particular has logic which is otherwise invariant of FRED mode,
and must not clobber a FRED MSR_PL0_SSP with an IDT one.

This also simplifies the AP path too.  Updating reinit_bsp_stack() is deferred
until later.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

v2:
 * Extend comment about clearing the busy bit.
 * Move reinit_bsp_stack() hunk into this patch.
---
 xen/arch/x86/acpi/wakeup_prot.S |  9 ---------
 xen/arch/x86/boot/x86_64.S      | 12 +++---------
 xen/arch/x86/setup.c            |  2 --
 xen/arch/x86/traps-setup.c      |  2 ++
 4 files changed, 5 insertions(+), 20 deletions(-)

diff --git a/xen/arch/x86/acpi/wakeup_prot.S b/xen/arch/x86/acpi/wakeup_prot.S
index fceb4ca353f7..ba0bd77806b8 100644
--- a/xen/arch/x86/acpi/wakeup_prot.S
+++ b/xen/arch/x86/acpi/wakeup_prot.S
@@ -104,15 +104,6 @@ LABEL(s3_resume)
          */
         mov     saved_ssp(%rip), %rdi
 
-        /* Calculate MSR_PL0_SSP from SSP. */
-        mov     $MSR_PL0_SSP, %ecx
-        mov     %rdi, %rdx
-        shr     $32, %rdx
-        mov     %edi, %eax
-        and     $~(STACK_SIZE - 1), %eax
-        or      $(PRIMARY_SHSTK_SLOT + 1) * PAGE_SIZE - 8, %eax
-        wrmsr
-
         /*
          * A Restore Token's value is &token + 8 + 64BIT (bit 0).
          * We want to put this on the shstk at SSP - 8.
diff --git a/xen/arch/x86/boot/x86_64.S b/xen/arch/x86/boot/x86_64.S
index 3a5ad2764448..11a7e9d3bd23 100644
--- a/xen/arch/x86/boot/x86_64.S
+++ b/xen/arch/x86/boot/x86_64.S
@@ -65,17 +65,11 @@ ENTRY(__high_start)
         or      $(PRIMARY_SHSTK_SLOT + 1) * PAGE_SIZE - 8, %rdx
 
         /*
-         * Write a new supervisor token.  Doesn't matter on boot, but for S3
-         * resume this clears the busy bit.
+         * Write a new Supervisor Token.  It doesn't matter the first time a
+         * CPU boots, but for S3 resume or hotplug this clears the busy bit so
+         * SETSSBSY can set it again.
          */
         wrssq   %rdx, (%rdx)
-
-        /* Point MSR_PL0_SSP at the token. */
-        mov     $MSR_PL0_SSP, %ecx
-        mov     %edx, %eax
-        shr     $32, %rdx
-        wrmsr
-
         setssbsy
 
 #endif /* CONFIG_XEN_SHSTK */
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 6c81841426a4..a810bdf6d352 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -907,8 +907,6 @@ static void __init noreturn reinit_bsp_stack(void)
 
     if ( cpu_has_xen_shstk )
     {
-        wrmsrl(MSR_PL0_SSP,
-               (unsigned long)stack + (PRIMARY_SHSTK_SLOT + 1) * PAGE_SIZE - 8);
         wrmsrl(MSR_S_CET, xen_msr_s_cet_value());
         asm volatile ("setssbsy" ::: "memory");
     }
diff --git a/xen/arch/x86/traps-setup.c b/xen/arch/x86/traps-setup.c
index 6e2af58ba0a5..d77be8f83921 100644
--- a/xen/arch/x86/traps-setup.c
+++ b/xen/arch/x86/traps-setup.c
@@ -92,6 +92,7 @@ static void load_system_tables(void)
     {
         volatile uint64_t *ist_ssp = tss_page->ist_ssp;
         unsigned long
+            ssp = stack_top + (PRIMARY_SHSTK_SLOT + 1) * PAGE_SIZE - 8,
             mce_ssp = stack_top + (IST_MCE * IST_SHSTK_SIZE) - 8,
             nmi_ssp = stack_top + (IST_NMI * IST_SHSTK_SIZE) - 8,
             db_ssp  = stack_top + (IST_DB  * IST_SHSTK_SIZE) - 8,
@@ -118,6 +119,7 @@ static void load_system_tables(void)
         }
 
         wrmsrns(MSR_ISST, (unsigned long)ist_ssp);
+        wrmsrns(MSR_PL0_SSP, (unsigned long)ssp);
     }
 
     _set_tssldt_desc(gdt + TSS_ENTRY, (unsigned long)tss,
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 15:11:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 15:11:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099207.1453214 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ureHs-0004mH-UL; Thu, 28 Aug 2025 15:11:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099207.1453214; Thu, 28 Aug 2025 15:11:40 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ureHs-0004lt-QF; Thu, 28 Aug 2025 15:11:40 +0000
Received: by outflank-mailman (input) for mailman id 1099207;
 Thu, 28 Aug 2025 15:11:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FrxM=3I=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ureCc-00035A-5l
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 15:06:14 +0000
Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com
 [2a00:1450:4864:20::331])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 894594af-8420-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 17:06:12 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-45a1b05fe23so6562535e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 08:06:12 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b6f0c6fe5sm78394535e9.5.2025.08.28.08.06.03
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 28 Aug 2025 08:06: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>
X-Inumbo-ID: 894594af-8420-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756393571; x=1756998371; 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=tlSs33LyasAlNvUysj+jB74IjU0ubI6AuvZz0rNj+kg=;
        b=cm4HMhPFdlqTCjzXMqvEOl8+j7BieUIA96bpN5uxoD7N4Ky8scLcHiJac0KxDqUhOT
         YZZ2aYlbfcAHIQso5jzkYAZ+pN9fPwVLFNG+HxMfiBUVXo8gzWcns1UcYqIvx5kGja18
         twgkbUjC4fcFBgchMasqV67C3Dv/FX2+1zqZE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756393571; x=1756998371;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=tlSs33LyasAlNvUysj+jB74IjU0ubI6AuvZz0rNj+kg=;
        b=I+Pwdf07tU3zHCv1UAjiDFiI20BHmeyduaU46znW5q4bA6JCgz8Cv4xkuWKDjZQcDu
         ZFhW6o6v8Omr+FGS2+tkvDTL3uWtY4rMCwztOMc3jd5WMiPrVl9Obn/reTwpMcZx0fdS
         trExLS9FN1Yyyt4clJ6A0BwqDxSyfAzrHemjWcOgpthuY4ihG976zpIvsfCNi7Yblo3E
         hlf17bqhmsKX6rYJjRDAswfLiXFtVfoHG6IKQjwSOYJWc1b/+aUoWmKhwQPYSkXevTRZ
         N41pDkz1Gebfb9xL4oRQTIJtZN6pJSmbBXhD60rDXGWEWQcfr5nSYzXxEpujkb5h3scd
         bZzg==
X-Gm-Message-State: AOJu0YwZD/9wSVPnuPFY0lrfMvcZP2eL0qlYCHSL+AzPUwwQDhLi9B05
	qGoycxo1liOMibGQgN/tK0ngxikzubdBnpKOahsao9s5vEWq6XKWRJRJEVyaWk0f+ZFoqniCXAc
	kB/7a
X-Gm-Gg: ASbGncvWmTEs5U+vKGn9v6FSu3EDCGiIwqENPUbUss+o5dYrkfvLp7W9M2CaHhZQkGQ
	0/nw2TDLzZ6TjZhc5F7EYswysyHhkGj7VMdD+lSOSDEDZRou3hzinl8iZuiEwjwh1sQNudKTGhY
	dnG+m2Mh5P06PEB3LaTsHdvX7jkurQwMEEARDavUW6yxL6a4HEymsrtrgS/Rp2Uh6cqJxmXaeLn
	voyRnrPbEZOOXp/alcdN/wQ6Is9jZMkch4A3jF8czIudTOgBzRXpHmnW0JjWGVpf8rDLHy0pQvp
	GSuYLlHEDFXAHSVQQw+0SBxXnoUfzUdcIjTw7DeE5XK4PZWnH2qqME0OKcoaQ2uxKAJBpXNQXmK
	aw5S5VAuYICh/OAVXOtvK+hjPaijbuNEOqZl9IFFpALMl50bVUD2fVoNYfjgwkr9IklC4CZZdhl
	3c3Vfw1UERSz0=
X-Google-Smtp-Source: AGHT+IFAX/vmHjMJ8gCNh990nkuEzkfpCXYnyMoxCc0laDfZpJMLkpKrX3A0hZU27T5NEi99fqCP+A==
X-Received: by 2002:a05:600c:1f83:b0:43c:f8fc:f697 with SMTP id 5b1f17b1804b1-45b517adfacmr197222375e9.9.1756393571177;
        Thu, 28 Aug 2025 08:06: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>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 12/23] x86/fsgsbase: Make gskern accesses safe under FRED
Date: Thu, 28 Aug 2025 16:03:58 +0100
Message-Id: <20250828150409.901315-13-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250828150409.901315-1-andrew.cooper3@citrix.com>
References: <20250828150409.901315-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Under FRED, the SWAPGS instructions is disallowed.  Therefore we must use the
MSR path instead.

read_registers() is in the show_registers() path, so this allows Xen to render
it's current state without suffering #UD (and recursing until the stack guard
page is hit).

All hardware with FRED is expected to have some kind of non-serialising access
to these registers.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

v2:
 * Broken out of subsequent patch.  Rebased over MSR cleanup.

In principle, the following can also be used for read_registers()

    diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
    index 5799770a2f71..0b0fdf2c5ac4 100644
    --- a/xen/arch/x86/traps.c
    +++ b/xen/arch/x86/traps.c
    @@ -125,16 +125,21 @@ static void read_registers(struct extra_state *state)
         state->cr3 = read_cr3();
         state->cr4 = read_cr4();

    -    if ( !(state->cr4 & X86_CR4_FRED) && (state->cr4 & X86_CR4_FSGSBASE) )
    +    if ( state->cr4 & X86_CR4_FSGSBASE )
         {
             state->fsb = __rdfsbase();
             state->gsb = __rdgsbase();
    +
    +        if ( state->cr4 & X86_CR4_FRED )
    +            goto gskern_fred;
    +
             state->gss = __rdgskern();
         }
         else
         {
             state->fsb = rdmsr(MSR_FS_BASE);
             state->gsb = rdmsr(MSR_GS_BASE);
    +    gskern_fred:
             state->gss = rdmsr(MSR_SHADOW_GS_BASE);
         }

but I'm not sure that it's a good enough improvement to warrant the
complexity.
---
 xen/arch/x86/include/asm/fsgsbase.h | 8 ++++++--
 xen/arch/x86/traps.c                | 2 +-
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/include/asm/fsgsbase.h b/xen/arch/x86/include/asm/fsgsbase.h
index 24862a6bfea7..5faa3a324332 100644
--- a/xen/arch/x86/include/asm/fsgsbase.h
+++ b/xen/arch/x86/include/asm/fsgsbase.h
@@ -79,7 +79,9 @@ static inline unsigned long read_gs_base(void)
 
 static inline unsigned long read_gs_shadow(void)
 {
-    if ( read_cr4() & X86_CR4_FSGSBASE )
+    unsigned long cr4 = read_cr4();
+
+    if ( !(cr4 & X86_CR4_FRED) && (cr4 & X86_CR4_FSGSBASE) )
         return __rdgs_shadow();
     else
         return rdmsr(MSR_SHADOW_GS_BASE);
@@ -103,7 +105,9 @@ static inline void write_gs_base(unsigned long base)
 
 static inline void write_gs_shadow(unsigned long base)
 {
-    if ( read_cr4() & X86_CR4_FSGSBASE )
+    unsigned long cr4 = read_cr4();
+
+    if ( !(cr4 & X86_CR4_FRED) && (cr4 & X86_CR4_FSGSBASE) )
         __wrgs_shadow(base);
     else
         wrmsrns(MSR_SHADOW_GS_BASE, base);
diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index c11d72d47027..66308e7c9edf 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -118,7 +118,7 @@ static void read_registers(struct extra_state *state)
     state->cr3 = read_cr3();
     state->cr4 = read_cr4();
 
-    if ( state->cr4 & X86_CR4_FSGSBASE )
+    if ( !(state->cr4 & X86_CR4_FRED) && (state->cr4 & X86_CR4_FSGSBASE) )
     {
         state->fsb = __rdfsbase();
         state->gsb = __rdgsbase();
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 15:11:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 15:11:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099224.1453224 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ureI8-00067r-5j; Thu, 28 Aug 2025 15:11:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099224.1453224; Thu, 28 Aug 2025 15: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 1ureI8-000674-2Y; Thu, 28 Aug 2025 15:11:56 +0000
Received: by outflank-mailman (input) for mailman id 1099224;
 Thu, 28 Aug 2025 15:11:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FrxM=3I=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ureCk-0003MD-5B
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 15:06:22 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8eb3cfff-8420-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 17:06:21 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-45b7d497abaso3186235e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 08:06:21 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b6f0c6fe5sm78394535e9.5.2025.08.28.08.06.16
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 28 Aug 2025 08:06: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>
X-Inumbo-ID: 8eb3cfff-8420-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756393581; x=1756998381; 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=GmwgODjPN6nPKRNPSq/p+SO1nUaITBGwAJt/YgiqGwc=;
        b=jwy1oQwNYRcL62irk0oR2Em6Gx2HkHqaK27NB6pxQB2Wm68MKZdXofT6zzjcVEPboS
         SRZU89Fhtx1IHMIpEheMplS18BgRFuWz4ZSYiLnXaQK44qGOPWF3SvSNg8qBWXcumnIw
         cm2AZuStNKm/x6SrDJK/4QUrrOC6lra9GgHxQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756393581; x=1756998381;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=GmwgODjPN6nPKRNPSq/p+SO1nUaITBGwAJt/YgiqGwc=;
        b=CqvQL7L/qG6ugpGBRy7CtanRwRLLYpmRSA+lrg2qUH7BmwV+r7VDlrWRMXwn45tZSE
         KpT6JrEcqDXYGw9SwM3WSmOittxCeEeQi9jJ9OlIrx3Qi4VD9hiWMKY0+woEHCcsulRX
         SQ7qb+pIR7HbOL5AFR8rrv3Wn/KrKoUGfMAqW4mHO15WYB+GqHfcq9s3h8LF3CoYCfky
         9Uat/5oXBSaFANz3uxBuOvxj23pasx689djOGfBqGIEku+HbM7kZ5EBm3t73SEqydAmf
         CC2JcKytS8jzZpQ0vFiYWVc7+Vym6DVqvUc/waVF2R0TfgB4Ed3WBFdDMN9XuQRYNoXb
         02oQ==
X-Gm-Message-State: AOJu0YwIu7MpxttmshVmejfxO8UM7Ex3CarW/sQVK0HH9UNPoDO+m2Rs
	0FPWiYPiMU9do/wsMZtHeeCbGJs21Mo6WT9br8GSoMHXVOY7RkKkyfr/H6HXfekXmXFZosP+1U9
	e2mbb
X-Gm-Gg: ASbGncuQXoUhgTkljWyIjUWJy+YycaU94OR3IvUlDTOBNpe1FQCPTHtiyVz7+KNuL7Y
	IM+Qaj3XMcrDcxPGlrIrJN80FRrkF00dPUfNvqjb4wXHseqNgfWT/OCnVIxlQuLslIIqGMMdsUp
	0BqVmNtCEt8NIQhO7CdYHclRoeibY1bAOG4S6iOU87F5APWR5vq+gvBoJOSNVYutRKw1Wg/UxLQ
	tlcw4xFW0l+qi+0hjGK+jV0uLygj6WqTMnYEl06CQ/aS2tTZMbqWTSNFVUV9Q4kmFLAuYfEG6iW
	qHk0Bx+DEQlYbGaMADh9dnfXgL5JC96WmtWmqHWmqzAtCD0Jh5DB74xZRVIzXXFLF9vjwQn7yUT
	6Wd4JB8FuGLruLHRP9AxZCx7NHitWTWbWF74teFsnD7HNxkKdX6nac6pjB1dUJDYIBGWf1kE9fM
	XM+GA3XSgZ+8ZdSE82XCixQw==
X-Google-Smtp-Source: AGHT+IGYh6/Uc8RXOHSJi5GjnOH/Z0GuayX2Ml2I360nZld1z/zCtY4UfPV1EvgM6x+1eGb0VNNZvg==
X-Received: by 2002:a05:600c:3544:b0:45b:7c4c:cfbf with SMTP id 5b1f17b1804b1-45b7c4cd1e7mr19748025e9.23.1756393580707;
        Thu, 28 Aug 2025 08:06:20 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 18/23] x86/entry: Rework the comment about SYSCALL and DF
Date: Thu, 28 Aug 2025 16:04:04 +0100
Message-Id: <20250828150409.901315-19-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250828150409.901315-1-andrew.cooper3@citrix.com>
References: <20250828150409.901315-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

It's soon going to be needed in a second location.

Right now it's misleading saying that nothing else would be cleared.  It's
missing the more important point that SYSCALLs are treated like all other
interrupts and exceptions, and undergo normal flags handling there.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

v2:
 * New
---
 xen/arch/x86/x86_64/entry.S | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/x86_64/entry.S b/xen/arch/x86/x86_64/entry.S
index 01b431793b7b..ca446c6ff0ce 100644
--- a/xen/arch/x86/x86_64/entry.S
+++ b/xen/arch/x86/x86_64/entry.S
@@ -39,10 +39,9 @@ FUNC_LOCAL(switch_to_kernel)
         leal  (,%rcx,TBF_INTERRUPT),%ecx
 
         /*
-         * The PV ABI hardcodes the (guest-inaccessible and virtual)
-         * SYSCALL_MASK MSR such that DF (and nothing else) would be cleared.
-         * Note that the equivalent of IF (VGCF_syscall_disables_events) is
-         * dealt with separately above.
+         * The PV ABI, given no virtual SYSCALL_MASK, hardcodes that DF is
+         * cleared.  Other flags are handled in the same way as interrupts and
+         * exceptions in create_bounce_frame().
          */
         mov   $~X86_EFLAGS_DF, %esi
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 15:11:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 15:11:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099225.1453229 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ureI8-0006Ao-G8; Thu, 28 Aug 2025 15:11:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099225.1453229; Thu, 28 Aug 2025 15: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 1ureI8-0006AH-AR; Thu, 28 Aug 2025 15:11:56 +0000
Received: by outflank-mailman (input) for mailman id 1099225;
 Thu, 28 Aug 2025 15:11:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FrxM=3I=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ureCT-00035A-9A
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 15:06:05 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 83e94ca9-8420-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 17:06:03 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-45b618e067eso15234705e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 08:06:03 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b6f0c6fe5sm78394535e9.5.2025.08.28.08.06.01
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 28 Aug 2025 08:06: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>
X-Inumbo-ID: 83e94ca9-8420-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756393563; x=1756998363; 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=4DynKY6t4eG496mBBC39U8RWm4bWhTy2jBJs5lw0EOc=;
        b=u9boWzKpFPPHpEufPl+6c1Q5ujpHLMH+krTvAkfi6VOItQv6O9z2KEn/oFpTlwD5QT
         nAQF7cyA2gDQytJpHrleeuu5DUA/hTWdbUjmPmUQ1Suj54dkEmBoQl/RC4Ks+qvjRKWT
         TSwVPx2WJCMOSKFeViFzRS3+QMiST0RMHo4sE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756393563; x=1756998363;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=4DynKY6t4eG496mBBC39U8RWm4bWhTy2jBJs5lw0EOc=;
        b=t57AoKquGkXxx7NoErbr8Ad+QH1bh6kXhhGKcAep8stclNn0YHcpYJYMldDtx8nzXu
         VNiLN3S+P//VkOuidh10A3t7Rb80DpzottNxcC7VoqInmW3/xOG8v1QDpZxtcOC+v9xH
         7d/frcpzmWrpa7dN+Xs5gtE6EBR2tvPgUzXRSCFPtTcPBQLRyEX1exQmZ6Zb8iHOI++V
         JB3bKekbU35W7QSTzBR5yWCU1iMn0msnYpvcBZJ+O4XKtq0k9VjQfV5135pBkHZesHii
         doIkITLlSubjYPQ6+hBwR2kiz2/mNzpb7svEpD8MF+3m2umzoFaMkIrbxs2ucuX/Ov8F
         9ErQ==
X-Gm-Message-State: AOJu0YwkhKvMe8jO2NzVxhL2RY8IuxyvUH81akVzsxJKbgCsJh3KHPVR
	tbIoTavqwB4s0mg3m5B90/JruCJ13tTze6By4k4XAljQNIy6IXmV8KxlmCbAMTyoaseVMA0j+J5
	mk9E9
X-Gm-Gg: ASbGncuy7NscJ8/Zoh8tZ1DLb/dPyDfM5kmGcHchrghVNZyvetuySR2yA00RvRVpwux
	V+aFyc2gaiFnL+CmkD9C5AyaE/7zm7czw5nN9VPoGxL0YW8bk6f4ts+1eR/2Zjrp/GMPkBHjkgF
	qc64TDeM6amr3XWfo+uFj22ZdYQDSlUmoQoXiHOdTPLsbj4RVVO/VqrE62JwTB7V8zTqrPpGb8R
	CDGjhKLZsxAEfJUJBoa3fNv8YAsPsoJIKJeJ64e8DptKEELSq+QGavWeZ6tl7SqC9MGZ0+Maefa
	zx/3bNBIem0Un7N1WUKZkTIXyZGBtjkNyEP/eN7Uio7vzQltqVM2lTxgeEVMVjNNU4Gm9h1RF2O
	4QJmzqnxbj95E93KNgDcB0LnMYjqPyaTIzJPm0wqBsfd3Z8eqZ9jvA7o7ihlMAMOkJGXje6BUGk
	z6KK/ghrmhYng=
X-Google-Smtp-Source: AGHT+IGIg69RaxPXalNtvgdkDfZzuEgN/maUA0NU09ZfV4DXuJGacLH+Dnaxa6jb0/6qldNxuvJkVA==
X-Received: by 2002:a05:600c:a402:b0:45b:7510:4042 with SMTP id 5b1f17b1804b1-45b75104244mr37200115e9.17.1756393562644;
        Thu, 28 Aug 2025 08:06:02 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 10/23] x86/traps: Make an IDT-specific #DB helper
Date: Thu, 28 Aug 2025 16:03:56 +0100
Message-Id: <20250828150409.901315-11-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250828150409.901315-1-andrew.cooper3@citrix.com>
References: <20250828150409.901315-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

FRED provides PENDING_DBG in the the stack frame, avoiding the need to read
%dr6 manually.

Rename do_debug() to handle_DB(), and update it to take a dbg field using
positive polarity.

Introduce a new handle_DB_IDT() which reads %dr6.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

v2:
 * New
---
 xen/arch/x86/traps.c        | 28 +++++++++++++++++-----------
 xen/arch/x86/x86_64/entry.S |  2 +-
 2 files changed, 18 insertions(+), 12 deletions(-)

diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index 7ae46ae20f98..0372f1c386a8 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -1992,14 +1992,11 @@ void asmlinkage do_device_not_available(struct cpu_user_regs *regs)
 
 void nocall sysenter_eflags_saved(void);
 
-void asmlinkage do_debug(struct cpu_user_regs *regs)
+/* Handle #DB.  @dbg is PENDING_DBG, a.k.a. %dr6 with positive polarity. */
+static void handle_DB(struct cpu_user_regs *regs, unsigned long dbg)
 {
-    unsigned long dr6;
     struct vcpu *v = current;
 
-    /* Stash dr6 as early as possible. */
-    dr6 = read_debugreg(6);
-
     /*
      * At the time of writing (March 2018), on the subject of %dr6:
      *
@@ -2066,13 +2063,13 @@ void asmlinkage do_debug(struct cpu_user_regs *regs)
          * If however we do, safety measures need to be enacted.  Use a big
          * hammer and clear all debug settings.
          */
-        if ( dr6 & (DR_TRAP3 | DR_TRAP2 | DR_TRAP1 | DR_TRAP0) )
+        if ( dbg & (DR_TRAP3 | DR_TRAP2 | DR_TRAP1 | DR_TRAP0) )
         {
             unsigned int bp, dr7 = read_debugreg(7);
 
             for ( bp = 0; bp < 4; ++bp )
             {
-                if ( (dr6 & (1u << bp)) && /* Breakpoint triggered? */
+                if ( (dbg & (1u << bp)) && /* Breakpoint triggered? */
                      (dr7 & (3u << (bp * DR_ENABLE_SIZE))) && /* Enabled? */
                      ((dr7 & (3u << ((bp * DR_CONTROL_SIZE) + /* Insn? */
                                      DR_CONTROL_SHIFT))) == DR_RW_EXECUTE) )
@@ -2093,9 +2090,9 @@ void asmlinkage do_debug(struct cpu_user_regs *regs)
          * so ensure the message is ratelimited.
          */
         gprintk(XENLOG_WARNING,
-                "Hit #DB in Xen context: %04x:%p [%ps], stk %04x:%p, dr6 %lx\n",
+                "Hit #DB in Xen context: %04x:%p [%ps], stk %04x:%p, dbg %lx\n",
                 regs->cs, _p(regs->rip), _p(regs->rip),
-                regs->ss, _p(regs->rsp), dr6);
+                regs->ss, _p(regs->rsp), dbg);
 
         return;
     }
@@ -2107,7 +2104,7 @@ void asmlinkage do_debug(struct cpu_user_regs *regs)
      * by debugging actions completed behind it's back.
      */
     v->arch.dr6 = x86_merge_dr6(v->domain->arch.cpu_policy,
-                                v->arch.dr6, dr6 ^ X86_DR6_DEFAULT);
+                                v->arch.dr6, dbg);
 
     if ( guest_kernel_mode(v, regs) && v->domain->debugger_attached )
     {
@@ -2115,7 +2112,16 @@ void asmlinkage do_debug(struct cpu_user_regs *regs)
         return;
     }
 
-    pv_inject_DB(dr6 ^ X86_DR6_DEFAULT);
+    pv_inject_DB(dbg);
+}
+
+/*
+ * When using IDT delivery, it is our responsibility to read %dr6.  Convert it
+ * to positive polarity.
+ */
+void asmlinkage handle_DB_IDT(struct cpu_user_regs *regs)
+{
+    handle_DB(regs, read_debugreg(6) ^ X86_DR6_DEFAULT);
 }
 
 void asmlinkage do_entry_CP(struct cpu_user_regs *regs)
diff --git a/xen/arch/x86/x86_64/entry.S b/xen/arch/x86/x86_64/entry.S
index 39c7b9d17f9e..789687488c5f 100644
--- a/xen/arch/x86/x86_64/entry.S
+++ b/xen/arch/x86/x86_64/entry.S
@@ -1171,7 +1171,7 @@ FUNC(handle_ist_exception)
 .L_ ## vec ## _done:
 
         DISPATCH(X86_EXC_NMI, do_nmi)
-        DISPATCH(X86_EXC_DB,  do_debug)
+        DISPATCH(X86_EXC_DB,  handle_DB_IDT)
         DISPATCH(X86_EXC_MC,  do_machine_check)
 #undef DISPATCH
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 15:11:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 15:11:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099226.1453236 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ureI9-0006IM-0F; Thu, 28 Aug 2025 15:11:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099226.1453236; Thu, 28 Aug 2025 15: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 1ureI8-0006HD-Lg; Thu, 28 Aug 2025 15:11:56 +0000
Received: by outflank-mailman (input) for mailman id 1099226;
 Thu, 28 Aug 2025 15:11:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FrxM=3I=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1ureCB-00035A-HT
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 15:05:47 +0000
Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com
 [2a00:1450:4864:20::329])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7912cd7a-8420-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 17:05:45 +0200 (CEST)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-45a1b00f23eso7067165e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 08:05:45 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b6f0c6fe5sm78394535e9.5.2025.08.28.08.05.43
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 28 Aug 2025 08:05: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>
X-Inumbo-ID: 7912cd7a-8420-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756393545; x=1756998345; 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=wp5Ao2JF9SiNp1dV4sf74WMjn/dBY90/S0pUt68oOqo=;
        b=wWhjJYUL6iUUbcAtllYVy7hIFH9WbgTmU+oul+ZUvHcRVtwz+GPbCJjEPn3PBjDwvt
         MzPw/2Ty/6sZiYl+Qf4yPb5rI8l6LJTmBvdWcBTFW5AOM8pvdCLzTE563bRatWVjVzMc
         YOGatqzncXML4hg7zOrMPX2B8J9o/4AnkLXHg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756393545; x=1756998345;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=wp5Ao2JF9SiNp1dV4sf74WMjn/dBY90/S0pUt68oOqo=;
        b=Hsz84qSPzp6hqBbV6IjhI2c7L2+BskF6jKYPEjewGns3cdiz7MwWR4zS7ykeb3YBfw
         xAVmM23iubR9F6Q6/KyAwEx4mwFlNoxfGwZ0lGyru5gAChJjFtkhszpc3V7dC4q8AdmF
         yq5OokFSCNzfF1b896I4LRTQqCo7r1i1F3xYPy8wwe7+5zpfbdGbkNWj/865CTEobHuu
         52EQPpv5EybapM/adV/f5hB0LxRhAOZQq0q+H31AzUaUoTlAuPIsFdfg4ilLnp93rDVH
         sWdY0mXe5KqhH66JYHSoIsPAtWC0bc4EnoQgHvJXvuKM/PAnzMkgO+O6iU3poHeEnCix
         KA1g==
X-Gm-Message-State: AOJu0Yy+guPjvqxR/Bm6DhTcsAmXCt1312dOV4/I0KwPx+cuy424ga+p
	runRFEENXHdoCCeah2PkV8A+sEEjhI/3C++7W8he+eFipSzqumZDLzZYAwih1MpbCUBOh7dBMyg
	GV9hZ
X-Gm-Gg: ASbGncvHaB9Zkb9zrUj+s6GcqcNyCtG5wePIpYtQLb4r4d9zVc+tOLGqrIcp7L9it/C
	ZaaGLapwhD1S/zhvG2uo05cZACcYr+mSlRXDe6y3hUxUGaC6fphAGbnEHm46DbnwmDsl6rNaWjI
	In9ekxso+Jp2j0nxXTpWFbY4a5o2VlzKr9wzLk9DywKaW/jAjnCJpngwgPT0BUE5A0mBEG+ZPVq
	/9VfoX34odCMUBVW4Klh2v9wt+/7GunT8KvKtL6vHjJt6aN7CSk4ihfR/abWkW7KDcre1CXktCg
	lCshM8jGk41ge3jXBaPb6nv7WN+3RQ9ZYek5GpgUViWp9D2j5QEP6sNUY78ANr2ckrzMQ8pSkO8
	CxvMP9Ifk/mT/XkNHfAKjRWaQDNnTJndD/OY2fZXi9JLrKCnJrMJkRVWYVJEFbzZKL4AA7a2XC1
	pTmm0dgzBDoGQ=
X-Google-Smtp-Source: AGHT+IF7hXOcAj2k1kdTWbZDnHe2i2swNCPBNOS2g6Z9lsG3n/J6g13KEv6Z7zdBR196Rvr/1VVwlw==
X-Received: by 2002:a05:600c:190a:b0:453:5c30:a1fd with SMTP id 5b1f17b1804b1-45b517954bfmr233867805e9.8.1756393544555;
        Thu, 28 Aug 2025 08:05:44 -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>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2 04/23] x86/boot: Adjust CR4 handling around percpu_early_traps_init()
Date: Thu, 28 Aug 2025 16:03:50 +0100
Message-Id: <20250828150409.901315-5-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250828150409.901315-1-andrew.cooper3@citrix.com>
References: <20250828150409.901315-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

percpu_early_traps_init() will shortly be setting CR4.FRED.  This requires that
cpu_info->cr4 is already set up, and that the enablement of CET doesn't
truncate X86_CR4_FRED back out because of 32bit logic.

For __high_start(), defer re-loading XEN_MINIMAL_CR4 until after %rsp is set
up and we can store the result in the cr4 field too.

For s3_resume(), explicitly re-load XEN_MINIMAL_CR4.  Later when loading all
features, use the mmu_cr4_features variable which is how the rest of Xen
performs this operation.

No functional change, yet.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

v2:
 * Extend comments
---
 xen/arch/x86/acpi/wakeup_prot.S | 18 ++++++++++++++----
 xen/arch/x86/boot/x86_64.S      | 15 ++++++++++-----
 2 files changed, 24 insertions(+), 9 deletions(-)

diff --git a/xen/arch/x86/acpi/wakeup_prot.S b/xen/arch/x86/acpi/wakeup_prot.S
index cc40fddc38d4..0f02ea7b4b9a 100644
--- a/xen/arch/x86/acpi/wakeup_prot.S
+++ b/xen/arch/x86/acpi/wakeup_prot.S
@@ -63,6 +63,14 @@ LABEL(s3_resume)
         pushq   %rax
         lretq
 1:
+
+        GET_STACK_END(15)
+
+        /* Enable minimal CR4 features, sync cached state. */
+        mov     $XEN_MINIMAL_CR4, %eax
+        mov     %rax, STACK_CPUINFO_FIELD(cr4)(%r15)
+        mov     %rax, %cr4
+
         /* Set up early exceptions and CET before entering C properly. */
         call    percpu_early_traps_init
 
@@ -77,7 +85,9 @@ LABEL(s3_resume)
         wrmsr
 
         /* Enable CR4.CET. */
-        mov     $XEN_MINIMAL_CR4 | X86_CR4_CET, %ecx
+        mov     $X86_CR4_CET, %ecx
+        or      STACK_CPUINFO_FIELD(cr4)(%r15), %rcx
+        mov     %rcx, STACK_CPUINFO_FIELD(cr4)(%r15)
         mov     %rcx, %cr4
 
         /* WARNING! call/ret now fatal (iff SHSTK) until SETSSBSY loads SSP */
@@ -120,9 +130,9 @@ LABEL(s3_resume)
 .L_cet_done:
 #endif /* CONFIG_XEN_SHSTK || CONFIG_XEN_IBT */
 
-        /* Restore CR4 from the cpuinfo block. */
-        GET_STACK_END(bx)
-        mov     STACK_CPUINFO_FIELD(cr4)(%rbx), %rax
+        /* Load all CR4 settings. */
+        mov     mmu_cr4_features(%rip), %rax
+        mov     %rax, STACK_CPUINFO_FIELD(cr4)(%r15)
         mov     %rax, %cr4
 
         call    mtrr_bp_restore
diff --git a/xen/arch/x86/boot/x86_64.S b/xen/arch/x86/boot/x86_64.S
index d0e7449a149f..3a5ad2764448 100644
--- a/xen/arch/x86/boot/x86_64.S
+++ b/xen/arch/x86/boot/x86_64.S
@@ -11,16 +11,19 @@ ENTRY(__high_start)
         mov     %ecx,%gs
         mov     %ecx,%ss
 
-        /* Enable minimal CR4 features. */
-        mov     $XEN_MINIMAL_CR4,%rcx
-        mov     %rcx,%cr4
-
         mov     stack_start(%rip),%rsp
 
         /* Reset EFLAGS (subsumes CLI and CLD). */
         pushq   $0
         popf
 
+        GET_STACK_END(15)
+
+        /* Enable minimal CR4 features, sync cached state. */
+        mov     $XEN_MINIMAL_CR4, %eax
+        mov     %rax, STACK_CPUINFO_FIELD(cr4)(%r15)
+        mov     %rax, %cr4
+
         /* Reload code selector. */
         pushq   $__HYPERVISOR_CS
         leaq    1f(%rip),%rax
@@ -45,7 +48,9 @@ ENTRY(__high_start)
         wrmsr
 
         /* Enable CR4.CET. */
-        mov     $XEN_MINIMAL_CR4 | X86_CR4_CET, %ecx
+        mov     $X86_CR4_CET, %ecx
+        or      STACK_CPUINFO_FIELD(cr4)(%r15), %rcx
+        mov     %rcx, STACK_CPUINFO_FIELD(cr4)(%r15)
         mov     %rcx, %cr4
 
         /* WARNING! call/ret now fatal (iff SHSTK) until SETSSBSY loads SSP */
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 15:18:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 15:18:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099272.1453253 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ureNp-0000OQ-Ql; Thu, 28 Aug 2025 15:17:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099272.1453253; Thu, 28 Aug 2025 15:17: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 1ureNp-0000OJ-OC; Thu, 28 Aug 2025 15:17:49 +0000
Received: by outflank-mailman (input) for mailman id 1099272;
 Thu, 28 Aug 2025 15:17:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=AInb=3I=nvidia.com=jgg@srs-se1.protection.inumbo.net>)
 id 1ureNo-0000NO-SI
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 15:17:48 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20603.outbound.protection.outlook.com
 [2a01:111:f403:200a::603])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 24f8de7b-8422-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 17:17:47 +0200 (CEST)
Received: from CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13)
 by CH3PR12MB9342.namprd12.prod.outlook.com (2603:10b6:610:1cb::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.13; Thu, 28 Aug
 2025 15:17:31 +0000
Received: from CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732]) by CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732%4]) with mapi id 15.20.9073.010; Thu, 28 Aug 2025
 15:17:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 24f8de7b-8422-11f0-8dd7-1b34d833f44b
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=DeFisRlfdtskQJuokSZMY5Xg0kP2ri832SWOoOxZmFyfr1hQfzKObwTm+dZ/jmzAp7YiYKcameskckoFkgeqeKsJxR2M86hxVxefTFJbbHlbo89kJvMWfHWDSwK/7Xbo0GP+iu1sr0X8F7X9m2WKLIg4t6QznLNFOH/MxS6vCOK3IPW3oyYLUg9yK0etWTT2a+s/dKUyjQ88tELxataJ7E5iLzNbugrf5kkulSCJGU/EvDMBusPgZ8cjI4kdKgZrWBT8VeRErl8D8Ri5s/0qX+BTGAQoUlsRXJ/0BnVyew7Z3j3iM+QlgZObIGJGnjVP1RNDkbX2v1H7YIjLyIISSQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=9Gj2EZNRr0DPgaVxIhfrzZTloYAFkHlRSLQ88RnkN/Y=;
 b=dJXQVVIKxoWlQmbSqqZra4WL6Kz2zfSDPLs05lcSjOU93g6u6C66YMMC8Lt3Gk8wFzCpFvCT5ecVUr69Yz9PvqCgt8QZlH+B83dzj16RIDYQMsoCT04lKTgWQTCPY1rNP6GnD9WyIvwDUgafnL0bPZdm8DCw5ABjQBMBINbCBaiLuf7hCYi52ryeathkd22iFVq6j6zhCh3E5CMa04us5TUS23R+FIpNb8rlNq78JyS1RQyYFtZ99/2WNmCca3aanZ1jIYmPQ/OkZg+Wvu8mWT96SktYVKQjqsH52wQNa9gpzJz/G0n/q5JG6ysHSnvUGNNYmzoeUJKVqVuN27ktMw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com;
 dkim=pass header.d=nvidia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=9Gj2EZNRr0DPgaVxIhfrzZTloYAFkHlRSLQ88RnkN/Y=;
 b=UIZ0GZxLWq96gYKdBE/P4lQCZJ/U53VWHTY3ryAUhjy0X1E+7u9oiu3k5AoUiMUDaa8eL1b1Wdk5oukxyOCLIGxGWfEqpGWwD0WnuQqK0CWUk4Pjv6sZATLWHy3VvkAz1N6i0ZIuB2gSyRBKH3ged5fEf/orLDC4hWPRCFed0nYiRGEAkC1JX6QMt+qgnmMkpflTk5txVNqxo17dOPUe5QdVM6bbYWPbF1aOsOZApv4G9Ez+qUarJEoHsl2dH5FPFKLe1FDSweTA21KHqzfcelVf5uDwFPAMt74wpsbdBW+zyizr+r4458egUOpiKxlVc2I7emXXunUtZG0jyRuMsw==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=nvidia.com;
Date: Thu, 28 Aug 2025 12:17:30 -0300
From: Jason Gunthorpe <jgg@nvidia.com>
To: Leon Romanovsky <leon@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Leon Romanovsky <leonro@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 09/16] dma-mapping: handle MMIO flow in
 dma_map|unmap_page
Message-ID: <20250828151730.GH9469@nvidia.com>
References: <cover.1755624249.git.leon@kernel.org>
 <ba5b6525bb8d49ca356a299aa63b0a495d3c74ca.1755624249.git.leon@kernel.org>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <ba5b6525bb8d49ca356a299aa63b0a495d3c74ca.1755624249.git.leon@kernel.org>
X-ClientProxiedBy: YT4PR01CA0001.CANPRD01.PROD.OUTLOOK.COM
 (2603:10b6:b01:d1::11) To CH3PR12MB8659.namprd12.prod.outlook.com
 (2603:10b6:610:17c::13)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PR12MB8659:EE_|CH3PR12MB9342:EE_
X-MS-Office365-Filtering-Correlation-Id: ac16ca3a-0c04-4c85-d3ef-08dde64601de
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?njO48yMTkw5FBTMUHcU9RfdwduyPEqfYr5sDmRvb6M70ofOoeXEHGdq1KNf4?=
 =?us-ascii?Q?QnOK8yoCKTiN54zd+3Ivy4vhFI07qsRdXAtVykVph5TO913t+GGI3xiUDVb+?=
 =?us-ascii?Q?jdnd66i9zxJkY2od5xp8XaKem47dhOkzbyqZTg0QSTIE1Kl+JtwAQuGucH+T?=
 =?us-ascii?Q?WjnqVfoyqNqJyAXe7F4pk/eGqkOCR+KiacAhMEjzezrQL3MBdzW1NdVzexOQ?=
 =?us-ascii?Q?4JoB0upSpmTOokwwxt2bakEPV0ltEhyRe9dYQxfuSK2Ni5IBHIpgyw9/GjgO?=
 =?us-ascii?Q?rNdkK/h3qoZxtMvYY2QtRdUSkPrc4Xxm4GIfjB32jEXKmfR0gmsX86ipkdSl?=
 =?us-ascii?Q?+ImevhWLNt2q31YwRfzliMD7KZSG0HsQjlY1SSVnmAUUf82tnmqrimbEPDLg?=
 =?us-ascii?Q?eSdVfVKj7cOEAAq1+leLcYkCxGBZl12n84VymHT0KYsqW8wleBoLujozvOqc?=
 =?us-ascii?Q?zmgLDEGRinBrPJDXwZuGq2f9BT4fJm0zdrIJfns1LtxKDEMqVmDAWNh8/SgO?=
 =?us-ascii?Q?9V2fUyO5leN0oa/4AVwYmWXV3aV4V2gUOzu1EVUlutMPRpfmeGz2vW1gub/D?=
 =?us-ascii?Q?ki9V01NbOn8YGcJiX8wDYnKzaK4aqlnnVuZH9YRSeCaaRm1Muo77Uhd5L3LH?=
 =?us-ascii?Q?INl61YEAVQO0z56Kjz68QZSheFaG3KDVD5f5BEn1oRj0PzThcoCsU2k9tWIq?=
 =?us-ascii?Q?UxNTSR+Pb4sW53wbVO7DgnW1qURzXATYaVpNa00mg1Yy1LSGgkQQCjRYGBHq?=
 =?us-ascii?Q?27O1T4Jx5AHYP3cBB6ymsreMfcb/Ta+gxBBQAtwbjxMsJVU7jz88CVvQn7/z?=
 =?us-ascii?Q?+WKSsy1NKee+3h6bbDYWAOH4FdM2Y7eQx41AvGBe13AgWiTDC0b+ZD+eRZWx?=
 =?us-ascii?Q?ZwsdUsxeIZx+zEvtrxiMU5OhJJlwBlTPBOjO5wSkKX3WqPUSpjaxR8BDV2VU?=
 =?us-ascii?Q?1wx3mUKsBiRWWhdj7HUjQN53bDZFnAWV7CUSCUt1EO/Y/VTP3xsRgujjSe/+?=
 =?us-ascii?Q?BSLh/DT/4OCuihxSMkTch9BW7a3YK/5gJJyPDDblqNZ0pcDTobHcfz8DTYJn?=
 =?us-ascii?Q?Ck8DUdWdRnBvLdNHEaGz8HiqeczuoebVoyqnxnVuNzA+nxR3ymb+d0uKw4uZ?=
 =?us-ascii?Q?iKR+taHPMsQ2WzJ7cabBlBYVSqX63f6H5dMGHIn9K44bU/MW0BOeJY4BhkwA?=
 =?us-ascii?Q?QHSqhhpxargIpwGhK1abMW0zmR+qJVJuDoXc3rIZSpt8N3mkfHnb0ikI8p48?=
 =?us-ascii?Q?CwJzWANXRtAbCp8qfDMvPDcUQuWlZvAVE8yRoHDUNhguvACqUuTu6nDAg/vQ?=
 =?us-ascii?Q?t5GGhsyS4K6VUdYb16hY8nIS2UJkrMLqTASPdhZdqWPT/P3qqDThBqsezU7w?=
 =?us-ascii?Q?ckjS0OwVRy8YboJ9/UkMDTqTRY5Q2TSeLuYkVmRNbBTZUYbRAwnlOakGXQWO?=
 =?us-ascii?Q?xKNTVNVhIIc=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR12MB8659.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?jdNZg78XP2T9TUtHO4FrQOYHXwTm5pXMXy4+gH+6XrSX7+gSRUdR6SOGtYEH?=
 =?us-ascii?Q?HBth39Oc9aLRJBNWgk7O8lPEICHVy+pfoNIpyct5Rj3WezAlVOXAvl4iRCzg?=
 =?us-ascii?Q?VRcyxl9TvcvDq4wWiG56ZTJlx7IDlObxlQ9JuyPvdbibioMEpVIfgfJGHkB/?=
 =?us-ascii?Q?B5MPYLJACoNIJH3MHSn0DW2KwM+6yeEyfC9LQ4PqD9PeN7fmLX3u/JSRbXIy?=
 =?us-ascii?Q?NAXdRpAs3wuONAvSTzn+75geHNCvqxmuFmZLoEz/AqX61KOtRvg93Ee78uND?=
 =?us-ascii?Q?peUCkwk8Oy09PptlLWkstUOcVdOS4my9pSfWso3H/0IROqZIFLkKoDoNkwcv?=
 =?us-ascii?Q?kILYeC7kNf+VH6z19s6jkr1t2zH4PtxftHk+sUqKCeX4wQV7ZJ8w6+ko2CqB?=
 =?us-ascii?Q?iEXLEDSYPg85+Njc5Kaw6p7ej/9nB5LQvS3L9gSNVGzPX7fiPT0jfn+sbDwA?=
 =?us-ascii?Q?zDo1NrvIGE8yJgrURQyQGI8NGl/gmac6MSrfKEyE2wYOwuihBg+52zpOsKDT?=
 =?us-ascii?Q?zVPQGuknFn6xhw0ULIhgilBdsMTevgwlb8qik+1gJ43vwHxDHCa2Anp9iHQk?=
 =?us-ascii?Q?TJLSt9NQ1qSa8R2ssZqykd9si9z9ihI5/MiAuuMbmYKUqklCS2wrGtcSAl9t?=
 =?us-ascii?Q?f7B56uwj1x2ObZAI4STPBh9GoCG0cjFA0CDbaCzesWcfTbERSpM84j599A3A?=
 =?us-ascii?Q?7/pOpboO/5AzqdZXmgN3iusPK4ZsGs3PawOZNUKRjdOoMirfvjsNjGaAu3e9?=
 =?us-ascii?Q?mHR5nsa+ehX36f5u+5vBZKoaCd7cliPg1DxHMnaRcEKCzF/+WOoA7I23qLG9?=
 =?us-ascii?Q?WWME2fMxQsO5zwF5c0bzvTXVO6Hi2XAQfd98biDYJK17A7m5+17+VtkU5337?=
 =?us-ascii?Q?YjFKF/V5Pq6THGrsvVlUSNoNyIG/X0vgCedtyw+iebNuNTKeWWOyklAbORXt?=
 =?us-ascii?Q?2JUO+pW6trCpPpIAfhnlNn4EQ8nX8WAiUMIdLmvdkP5pQpAQ2ATG30U5vkJI?=
 =?us-ascii?Q?MhRMHPJ1FVQgx7yYaRYurqh8qUxc8NDRXR1mXSAO19NQo+k9y1rbWR+JlkLG?=
 =?us-ascii?Q?FuzY4iQ4QiaZwAIKT2jv0ZXztWs+nnlZ2aIG7UdiTK++Sl77Fx1AvE65Amt+?=
 =?us-ascii?Q?Y1875MWrBCt+Wn7UE95WSo+fXxDYboAE+E8BZ++FSd91hEpKBaTazy5qHd5F?=
 =?us-ascii?Q?GvYxoLDevzvJgY7AqRGDY6RqRTMaSAgYOTnWAXVJEqiXjStCFQ2xk2mhoZ/9?=
 =?us-ascii?Q?4O3blNpfVskby8PNMgxF4LDXhmAmGIZ97qQgKAQhEvx9H7K+lpUR9d5i4ctY?=
 =?us-ascii?Q?UMUIVKh1YqIgWJ7ftzcTNKMbIvuAu44IA5qQLDK357xwY6CzE+ywzliWXGJm?=
 =?us-ascii?Q?L6KnQLr6kD1VXrLjSmlzT9MhabxD2MryJs7/a9RtUr/RmwVnntoTXxdp1NJG?=
 =?us-ascii?Q?IZzy0C2fDKu4I01dJA/qvtIZRvPDzy/WptVch3Jg08J+u7E1GsZKopGv3DLM?=
 =?us-ascii?Q?lCw0VQ+/cSQbw0BhTD4bvNTf8wfDSAMKWNhgcNrXutwByTrAMqSyv26wVxme?=
 =?us-ascii?Q?1DqU5O6tlVCU/VrZBMg=3D?=
X-OriginatorOrg: Nvidia.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ac16ca3a-0c04-4c85-d3ef-08dde64601de
X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8659.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 15:17:31.2708
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: PZwuEXlW337UFGaRmTgrOOZ86hQJ0hssTlhNBI9xQ+44PM8OwEdLJrn8oa/w6/tN
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB9342

On Tue, Aug 19, 2025 at 08:36:53PM +0300, Leon Romanovsky wrote:
> From: Leon Romanovsky <leonro@nvidia.com>
> 
> Extend base DMA page API to handle MMIO flow and follow
> existing dma_map_resource() implementation to rely on dma_map_direct()
> only to take DMA direct path.

I would reword this a little bit too

dma-mapping: implement DMA_ATTR_MMIO for dma_(un)map_page_attrs()

Make dma_map_page_attrs() and dma_map_page_attrs() respect
DMA_ATTR_MMIO.

DMA_ATR_MMIO makes the functions behave the same as dma_(un)map_resource():
 - No swiotlb is possible
 - Legacy dma_ops arches use ops->map_resource()
 - No kmsan
 - No arch_dma_map_phys_direct()

The prior patches have made the internl funtions called here support
DMA_ATTR_MMIO.

This is also preparation for turning dma_map_resource() into an inline
calling dma_map_phys(DMA_ATTR_MMIO) to consolidate the flows.

> @@ -166,14 +167,25 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
>  		return DMA_MAPPING_ERROR;
>  
>  	if (dma_map_direct(dev, ops) ||
> -	    arch_dma_map_phys_direct(dev, phys + size))
> +	    (!is_mmio && arch_dma_map_phys_direct(dev, phys + size)))
>  		addr = dma_direct_map_phys(dev, phys, size, dir, attrs);

PPC is the only user of arch_dma_map_phys_direct() and it looks like
it should be called on MMIO memory. Seems like another inconsistency
with map_resource. I'd leave it like the above though for this series.

>  	else if (use_dma_iommu(dev))
>  		addr = iommu_dma_map_phys(dev, phys, size, dir, attrs);
> -	else
> +	else if (is_mmio) {
> +		if (!ops->map_resource)
> +			return DMA_MAPPING_ERROR;

Probably written like:

		if (ops->map_resource)
			addr = ops->map_resource(dev, phys, size, dir, attrs);
		else
			addr = DMA_MAPPING_ERROR;

As I think some of the design here is to run the trace even on the
failure path?

Otherwise looks OK

Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>

Jason


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 15:18:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 15:18:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099283.1453265 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ureON-0000r7-54; Thu, 28 Aug 2025 15:18:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099283.1453265; Thu, 28 Aug 2025 15:18: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 1ureON-0000r0-04; Thu, 28 Aug 2025 15:18:23 +0000
Received: by outflank-mailman (input) for mailman id 1099283;
 Thu, 28 Aug 2025 15:18:21 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=AInb=3I=nvidia.com=jgg@srs-se1.protection.inumbo.net>)
 id 1ureOL-0000NU-He
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 15:18:21 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on2061b.outbound.protection.outlook.com
 [2a01:111:f403:200a::61b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3a691532-8422-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 17:18:20 +0200 (CEST)
Received: from CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13)
 by CH3PR12MB9342.namprd12.prod.outlook.com (2603:10b6:610:1cb::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.13; Thu, 28 Aug
 2025 15:18:08 +0000
Received: from CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732]) by CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732%4]) with mapi id 15.20.9073.010; Thu, 28 Aug 2025
 15:18: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>
X-Inumbo-ID: 3a691532-8422-11f0-8adc-4578a1afcccb
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FkSjHrXPQJ5QevAHuZHJ/1ZwysYAMlC7WLt2JCr7Ib0Dydjs7sKLrTxQSSaq9nl+JVVSxyHw0Kfpfu/Z4GIRbSJCKw3HQMGLAItWwxkac7jZhJ3Nl3dGY0Yir2Oc/Pp09/aLRfP4lc+mpPwSeMadoqiTX3csI9w5yHYRwmvFEp6CnmJurYj1hK2HH7XM4NwqCT9iGJfNmr1p3RPibLOhjbmZeJJmv0q6RYwXGKrZkxbIFS3nw+VChZJ6yEp5vffLQbvxcrNfAv4jRN5WhS32p6E/KS7CGL/Lb97c+Mccf9SrP+3+3W8rSj3q10nK2ztu0H2pf/pO5QE9DqexMha15A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ShzJl56LtBJiyc6AvhGBzUtrjJqdBYzQ4xRpuGpa/mA=;
 b=OHiOqUdHm0E05MtpTY4RH3OHpFQ5fKxczpNO/mQKtc3e+nGtntYnzGc164HvBvuMoAuYQGr6pa4n1fmav+/ZZ9nWSVTWg7qtZdITSOP4bWOtxk3CAcIQ8bCx13rcVCsyfMzsbx0g7ea+wa2uT2I8TM2zHa/K36+CM5zUYVZS7u57MAIXobqtceaR8Srk3Wr9EWFy9HZI90DNDBZ+JJ/G73Q5qwNts0s9rr7R6Qnf9J+3Jbg4QPIpHYDDw/3fhdJanulZo/2E2I8I2OrLpt126W+b26WnCHm3kcip0J1VuJdh4JIFxLtP7Qwe1y5i5wqVoNJp17Kfijn0H4c9LlJd4g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com;
 dkim=pass header.d=nvidia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ShzJl56LtBJiyc6AvhGBzUtrjJqdBYzQ4xRpuGpa/mA=;
 b=KsbQQi04w5SQpVCOeNANBYpgQiyJY62prH1NVBUsc3pYx5vRLata6nrv/vv2k3tUQ3jolIs+3wyqpZyd109pNKsOm/RoBjXIPUnjkjruSXm51GRvNIqLfrTreD71AwGnYRVoCkdvUchnnqwFiBHo+r6jcXRLV2IHAIR7r5cTKRKzlsLD8SCHF2ws873zlwnW5E7qXKXY3zDF/eoLUDDN8ckhJXGzqG5sYHPIr0GXcq1UQOK48ePgeERnTjl59WGDe/TdDNgWaaFrkDFHTi7HksLDKlxb2eb2gQFhxRvFEw0YuxZktFZyeZIpKTiJBQUEFLHpBIPrVLTOuXZvfHwPgA==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=nvidia.com;
Date: Thu, 28 Aug 2025 12:18:06 -0300
From: Jason Gunthorpe <jgg@nvidia.com>
To: Leon Romanovsky <leon@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Leon Romanovsky <leonro@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 10/16] xen: swiotlb: Open code map_resource callback
Message-ID: <20250828151806.GI9469@nvidia.com>
References: <cover.1755624249.git.leon@kernel.org>
 <babeeb62fcfbafa39f352da1040a5dfa9d2a2719.1755624249.git.leon@kernel.org>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <babeeb62fcfbafa39f352da1040a5dfa9d2a2719.1755624249.git.leon@kernel.org>
X-ClientProxiedBy: YT4PR01CA0049.CANPRD01.PROD.OUTLOOK.COM
 (2603:10b6:b01:111::14) To CH3PR12MB8659.namprd12.prod.outlook.com
 (2603:10b6:610:17c::13)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PR12MB8659:EE_|CH3PR12MB9342:EE_
X-MS-Office365-Filtering-Correlation-Id: c9a8fe0e-ab8a-4b0e-9c1c-08dde64617ae
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?oqSoLix/bZqS47pHIAGHVakZEvG5PSc8iYv/rmXgsfkYORsMBVjbq18sAgdd?=
 =?us-ascii?Q?JpJDdM8tXa0kdShcYqB6KAwmvHTd4TLJKGG9vtlxgEO1gTJES3Xope2wf0+Z?=
 =?us-ascii?Q?PurpTn8Tim2ec0HMoXDAc102Gz1jtY/GxQJplLKGRIK5/+fJ2Xs3f0zlNONR?=
 =?us-ascii?Q?TgLDEJb8NPzYuAbfx+RH9/zLE4goolhrIRCy0dS/lp+0hdeoc9tqjswL1SBi?=
 =?us-ascii?Q?4y0mtVWW1XyTOchcXnnp166l23c63mi6lAfJdTYe4038WfjF+wSslahP9C+n?=
 =?us-ascii?Q?l7H4E0Hwyr8/BkA47Tdf6r9BR6g7L4wCmJGjg8kU2fW2zd1vZ8u59bZvYRg1?=
 =?us-ascii?Q?b0nci2jQ4l7SgbZISC4v7IaQG+L/FM48n2mTlMJ1Lqv//SNV3EOwWpcGVvIl?=
 =?us-ascii?Q?9dOrHg6H0jqvwdiuoGZtBKqGlfgW+d3puwbsSKM1FN1gufdZoWMODRLpzZBg?=
 =?us-ascii?Q?8gk30CXhiEcPevSP62jWIcbBB73Pb8MipOf90GU+al4rHVY2110H1bkpHAmO?=
 =?us-ascii?Q?tV2WHUrcGblYKtPx6XqVy13zUlx9h4oFp5yCou+IIkzHBbNG49La+0V4o8Z4?=
 =?us-ascii?Q?JovufQO8cfEC/Mm2Nl+qSv//iVYD0UUaBAIZP3toe5MIHuDCZO3NlVmhrF4U?=
 =?us-ascii?Q?qr7vpAnE+SqHmn+2uygfOLj23NMar/5tgQFmJM+2PuULLcKpiu3/72y2JzP6?=
 =?us-ascii?Q?wzG8IaDPhSttMjbCg5ERwNV4hD7FD6nDv940DhboyiTG4Ebn/VPraIJiByzj?=
 =?us-ascii?Q?Fzpq9eN1HHRjJN0C9UH+J3ZZFHGe6POmqmFxHM4yhpni818t3EnbXfpIH1Lv?=
 =?us-ascii?Q?u+6DerHqDv6jwhJmbS1ppHca8CFNpY9SUlnh4biMi9MdR+U/7+a6UAQP+fy5?=
 =?us-ascii?Q?oLkD3TV+3SE+TUI+7FewYdStGaIMoSZt9VmzG+85mTMd3beXQochnuiSnFpD?=
 =?us-ascii?Q?Vmo+stGI/evpj/N/zUidySQ9BF/rJ51OsyEjlxjm/2kLdCFfgtOx/L1aIU8G?=
 =?us-ascii?Q?psXNMQq6GGRtFbwB/iniuxeOOdh7YrNJJ4TnQzd7HgneLiNYK8BEG/1cxSSI?=
 =?us-ascii?Q?rn+GY9vx2shgiIrTMQR3kveX65m1rFdDc68dIWEuXKAv/t4LvsBv+Moj0sxL?=
 =?us-ascii?Q?zaXzbz6QiETi/sLmzDdbMGJrQIrUv9CAJCDQCYSWQrbywJ+vM4ha4mL2RK+V?=
 =?us-ascii?Q?s+s0zDyzB/ZsdtDN9ZotHVPK1OLNBoSUBfc36/qc2VEj3gVwTpKeEIJ4hEL4?=
 =?us-ascii?Q?y0hxqabJCAktbd+Ijp5Ep9uAD284Qw3QRc3cU4pbyzo3cZMrpqs4m2aKaE2J?=
 =?us-ascii?Q?F6iXkFZyIz96/Hb8GvidWBUzgeOslT9ItcOu+fYmCCfn1x4tR1Ke0JrQuSdf?=
 =?us-ascii?Q?49Qav6F45JGc19e7b3PJyyArLIqH3b/CpnICeVdUyDis9UgfrENHRcpMufqe?=
 =?us-ascii?Q?2KLbDfqMUXI=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR12MB8659.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?LwdE8kNQDkMKKJ5rXqpqVvkwqMB9l8K6/oWhNiANt6Z4Y/ZnePMfu5HEFkyy?=
 =?us-ascii?Q?jr0zoaTniBJgxtRnfrumXkBdLmv0ru7UodNZcWt/DsTkdWUu7rAs80J6BqMp?=
 =?us-ascii?Q?ZywTLUTGmDBZcc4DewUK0cI1XvolLo3ttcm62/7P53kAgoHnyWx5sTIC/zxK?=
 =?us-ascii?Q?59UMpMQa6t4SfM6gkDIcHfYyXWtVetuYZGNufECsCocFaRCYnhXNYXets9t5?=
 =?us-ascii?Q?f2QSuV1zoSPS4FjfR9frHj5v/uFOg62C/QTnnk9/lDP53nlPUBNWI4GlqoKV?=
 =?us-ascii?Q?ULi1kWY4kczaRMaQb8WL59uqp4eKbAYVEuX0qG5W3NvgVSapHXBctoUaweS0?=
 =?us-ascii?Q?fEEscsNkUj3m6y5zyzJRUj5Zd7MTM2ZU5BXJ5s1VehJx/879JXa9ZpGVTLPl?=
 =?us-ascii?Q?PbJ+1zwxyje7KkOavPstP+NHmbykhHHCu+8NKq2MqXxjfqA/g8KDa4c+xzS8?=
 =?us-ascii?Q?rUrlw7xa/KCbyrd0EULbUiq4ZoyE99ja+zyfmXRgR8aivNjyV4TQvr/r6FWv?=
 =?us-ascii?Q?gMLMFyyT0Kbvcw2HYc5uzKdmXmd8/V9NAJt68riy5pVEFXbHFTzKFHVMTGrM?=
 =?us-ascii?Q?4FSfkJvP6AZClojotovAHVkOTxQ6snacKtW04e6OAVUiZghnrzLhRH2uD0XD?=
 =?us-ascii?Q?fkwvh/6SHZ2liUnfaEAgVYCmF0akKHWE7z6t/cqgVeE25ZBpyoh+VYtsrVkE?=
 =?us-ascii?Q?B1jexYP1TfS0wWvroBwMOU9DysMREcTgJrsaI/M+9wXtV192ss1eyFvTyUPF?=
 =?us-ascii?Q?CzvS8ZmGi+W1pk0HiYa1GQf2K6Zwk8lBZQwuhnYQ0BJ4aC0jZ0piHGHbJCXb?=
 =?us-ascii?Q?2uz9v+PZ7LWh0TnXJ6pp3aHS4u221oipY7ZBQpRD88E7m+hoO/Pq5TZp5/wf?=
 =?us-ascii?Q?PXRKbUtKTKij/2LQTlKt5Y6jFQs+oX7lGX9zh6PX4nD6PX/Uso9uvc6xfkLU?=
 =?us-ascii?Q?hH4skOlX0nlTlRdaMFmAHFbGVOwouiR2Zb/fgBdPf2UC7t6t7MyfSrn4jtbM?=
 =?us-ascii?Q?SkQgkI6xJdj14vpV2mvZV2PG6H2hmA4P2efJdbDDUZu0ihpxbiFsMs7Jrg/b?=
 =?us-ascii?Q?i5m5kZpgtu0v51alc0DPrdiae7NqRYJ2TX5U/MNkkcurCXarEm2GO9ppw4CX?=
 =?us-ascii?Q?nU0n4A7Pe8dTlZdfyiNyM/DcRz5zWwevHv4Of71DTuy0lBvjgJlYs4Bn8602?=
 =?us-ascii?Q?rgSYtsV55kMA7oikMFgn/IKtaOvvm673iFH0LKD1jWXtaRHU0o/LJjgosaXN?=
 =?us-ascii?Q?Fjpkk2QJwpavQgK52/mzYeKO5Fs5GFIxuEAPVe7xbV7DUM8nSGwhb1KyH8ey?=
 =?us-ascii?Q?nMcop9oYFaDdb7bGQ6yAcbmvyNAfnkDI6Zz6dPZGjm1oUkIowdZZxBFIipK1?=
 =?us-ascii?Q?6/T1GJrlZg7nfwJ2AJRsVkV/ASnPv4XVMMdYSg1x/uR6MPlWHiHnFWiVOfPd?=
 =?us-ascii?Q?xOFz3rHVyyL8ahYblMs+6Tyg3a7m8ftAa2CIxmxwFhsCa8F+e0qQFI4S3ovv?=
 =?us-ascii?Q?ZZXC8Wy6N04pOM6MFqtIQ4rPl1tUAj2YLUxVA8rGFk3n29eQcDnW0rsr4HWJ?=
 =?us-ascii?Q?8nmuh6lwpWFzoV5Zk/I=3D?=
X-OriginatorOrg: Nvidia.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c9a8fe0e-ab8a-4b0e-9c1c-08dde64617ae
X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8659.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 15:18:07.8386
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: QlZhJ6HzsDCusgLC65y89JvqHplC/ffmSYiANNkGEgk5HivPxH1g+zuer3/GiDLW
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB9342

On Tue, Aug 19, 2025 at 08:36:54PM +0300, Leon Romanovsky wrote:
> From: Leon Romanovsky <leonro@nvidia.com>
> 
> General dma_direct_map_resource() is going to be removed
> in next patch, so simply open-code it in xen driver.
> 
> Reviewed-by: Juergen Gross <jgross@suse.com>
> Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
> ---
>  drivers/xen/swiotlb-xen.c | 21 ++++++++++++++++++++-
>  1 file changed, 20 insertions(+), 1 deletion(-)

Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>

Jason


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 15:19:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 15:19:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099291.1453274 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ureP1-0001Mh-C2; Thu, 28 Aug 2025 15:19:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099291.1453274; Thu, 28 Aug 2025 15:19: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 1ureP1-0001Ma-9P; Thu, 28 Aug 2025 15:19:03 +0000
Received: by outflank-mailman (input) for mailman id 1099291;
 Thu, 28 Aug 2025 15:19:02 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=pYI3=3I=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ureP0-0000NU-0T
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 15:19:02 +0000
Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com
 [2a00:1450:4864:20::62a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 536dc354-8422-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 17:19:01 +0200 (CEST)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-afcb7ae31caso192127066b.3
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 08:19: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
 a640c23a62f3a-afe7fd59b00sm892289666b.106.2025.08.28.08.18.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 08:19: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>
X-Inumbo-ID: 536dc354-8422-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756394341; x=1756999141; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=qSlBg9tSAzI4MLuXRtLQVNaynsbTN9TPBSCDAcWxyeA=;
        b=Y0AqK49tZ9F9n8C+kqCILaxg9GHba+JZb+5ayA0griPBQTUmG/IEvLOuHIckvRD6Bb
         M4JT62kMdyHm8aaWuYSJzaoG2TAsAfTQ3KU+l09+D+wzO7PWvyFUhvy10r+JRhyn84Bv
         8giHCqhuHRokJ45KI+br5J1CIJJTQPwBPQq/EObRSjd8bWCfLOQnYSPhV66Hwszun4z0
         2cH+3qQ6gBV1lMcBRo98QCB6Zk5NMJu5cEE6i7d5L41mGUDhY647eWCJju8EY/n///Ym
         6FNRUvlm9o8JXQXd/Fc1taP/tWDmYx07UfdaZYXSAgF7kXlXRC+dt4FYALd4T+ZAFx/t
         38YA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756394341; x=1756999141;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qSlBg9tSAzI4MLuXRtLQVNaynsbTN9TPBSCDAcWxyeA=;
        b=QhuTMcjV4DWLBN8cFOfwymhq+eyTfevnbBuB+1+zJS2s32Bq7KLPTmgNUr2tvif3X5
         tGjHt5RhxYsRXOpcoEngzxA8TBwPxokRV2lph4ZdAhXflEOaa99kbTO/H536UWribvoa
         91BKAmmOulH4fEZXCZ1z+A3GqCXZtapwrILcoKQ7eJMeMuyNm1TsSqmVNe4cgfODaHs4
         aOIlCkTNXTXBifs/GoKFF16jEE4i9WZvJQgTGJ4EdZvZJf1vN5BwiVv2ZMsQk+5aPujY
         20F/07dDJN31gFCPdk3spMDQtjpx4H/4vTQrAcc+f7FXQjmQxxKNb9oqfnUyYOcYi/fa
         2X6A==
X-Forwarded-Encrypted: i=1; AJvYcCUxBLBVds8ftE+H2Tjcgsh88kJMKL/qLwC/lXf4SFbCL1Fpr5Lpc7S17GKt8NMB/s1UM5yeiQZeF0o=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw0e2IQu22KzmnU+rtitU8VVfYA1vNJRScFqiR9NWOwY98Rsys0
	A3UVg9YhErL+36H8sYjjiw+HtBPfiYpGlgshXd8RmYhVaHCtRatwfKu6ds6SUm3TEw==
X-Gm-Gg: ASbGncvNDMXW2iba54K8H1tOHIpCDBQr7+SiSFosu7bWc/NGww4bkoQfxrgzuqLvffL
	Qru2KPEzo/2gYQtrSgehl7IZoZtTS00A5nuApHIDTkfapMlTLjUDXT83yLujPEF18V3GXULxvPE
	+hkJyMvfCDwwriliWDb2zSYgF9xxkQCdygoPKVjKO06ee+T8DBhYk+GilCJ0T9kR+0L7JTG/UxA
	+A/4FzINX1ecmR05IOQUGqsdD0iotuwsxaCKvablT/6v8H7k8rlqKm0oCbI2nERM2DozV7gxL0o
	88hNIwJ2faAM2W2YxdJ2zpMtWz5ZCSN1lLENpexWCoYgb+LPqZJydGTJNrazrLT6w+V4YxvG5gU
	weCMZk1XSPZLBb/Fw/8p+2aW4E+KVTsJn2KMPgKI50yf+VS/aapS7ln6H1S1lFCCKtCFiz8zgGC
	xOtFotcL4=
X-Google-Smtp-Source: AGHT+IEwBIUHtZzqcRLzpdI7f+mHOo9XnlyQfZFTDjjtNzfzCElMeN3yKcj0f1F/tkWx/9m5ovN4ww==
X-Received: by 2002:a17:907:3f0f:b0:af9:706d:1e3e with SMTP id a640c23a62f3a-afe294417b5mr2168342466b.2.1756394340678;
        Thu, 28 Aug 2025 08:19:00 -0700 (PDT)
Message-ID: <6752a3b5-f012-4bcf-9f04-b1c1accb6024@suse.com>
Date: Thu, 28 Aug 2025 17:18:59 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 02/23] x86/traps: Extend struct cpu_user_regs/cpu_info
 with FRED fields
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250828150409.901315-1-andrew.cooper3@citrix.com>
 <20250828150409.901315-3-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: <20250828150409.901315-3-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.08.2025 17:03, Andrew Cooper wrote:
> The FRED on-stack format is larger than the IDT format, but is by and large
> compatible.  FRED reuses space above cs and ss for extra metadata, some of
> which is purely informational, and some of which causes additional effects in
> ERET{U,S}.
> 
> Follow Linux's choice of naming for fred_{c,s}s structures, to make it very
> clear at the point of use that it's dependent on FRED.
> 
> There is also the event data field and reserved fields, but we cannot include
> these in struct cpu_user_regs without reintroducing OoB structure accesses in
> the non-FRED case.  See commit 6065a05adf15 ("x86/traps: 'Fix' safety of
> read_registers() in #DF path"). for more details.
> 
> Instead, use a new struct fred_info and position it suitably in struct
> cpu_info.  This boundary will be loaded into MSR_FRED_RSP_SL0, and must be
> 64-byte aligned.
> 
> This does add 16 bytes back into struct cpu_info, undoing the saving we made
> by dropping the vm86 data segment selectors.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 15:19:37 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 15:19:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099299.1453283 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urePP-0001oq-NN; Thu, 28 Aug 2025 15:19:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099299.1453283; Thu, 28 Aug 2025 15:19: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 1urePP-0001oj-KZ; Thu, 28 Aug 2025 15:19:27 +0000
Received: by outflank-mailman (input) for mailman id 1099299;
 Thu, 28 Aug 2025 15:19:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=e5LM=3I=kernel.org=kbusch@srs-se1.protection.inumbo.net>)
 id 1urePO-0000NU-Dp
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 15:19:26 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 613fb139-8422-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 17:19:25 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 8EB99404AA;
 Thu, 28 Aug 2025 15:19:23 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id D216BC4CEEB;
 Thu, 28 Aug 2025 15:19:21 +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>
X-Inumbo-ID: 613fb139-8422-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1756394363;
	bh=nTKrcpDsshWT34MR4DBCaPN8mPA7gJtcVOPD1NWA+qw=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=Fiz/IFX/cbprksFrwcYLPDvY3Zj3oM+9xj/s3otiwCFW0WEBrDAgB6JRjK+IdqZnC
	 OFN4Z0AL7m05VQmwPYApcrLewjZzB+NKCYXZOIU9ibwe7/P/cr26ecTqFmQEgaS6pv
	 89DgMHR/jfK9TG7bugNXs7ta3ON2u0FFPpRcZMhF8LuBBzR8fYiYNcrkRaeoqL84Pa
	 vG8dcgdTqIBhIwwgWFEaigYJZlxM0LDruE+7Hf8BMGaT2uPwEeDcL2AHvfnUbMmlQ1
	 qic40gUjOmMG1Ib24qu6/1eYpqYTDcYO5/R+Bonh5umwbDCeb4/lCZ33BnqzYEikCq
	 EOso5xuGJTjTg==
Date: Thu, 28 Aug 2025 09:19:20 -0600
From: Keith Busch <kbusch@kernel.org>
To: Leon Romanovsky <leon@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Leon Romanovsky <leonro@nvidia.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-mm@kvack.org, linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org, linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 15/16] block-dma: properly take MMIO path
Message-ID: <aLBzeMNT3WOrjprC@kbusch-mbp>
References: <cover.1755624249.git.leon@kernel.org>
 <642dbeb7aa94257eaea71ec63c06e3f939270023.1755624249.git.leon@kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <642dbeb7aa94257eaea71ec63c06e3f939270023.1755624249.git.leon@kernel.org>

On Tue, Aug 19, 2025 at 08:36:59PM +0300, Leon Romanovsky wrote:
> diff --git a/include/linux/blk_types.h b/include/linux/blk_types.h
> index 09b99d52fd36..283058bcb5b1 100644
> --- a/include/linux/blk_types.h
> +++ b/include/linux/blk_types.h
> @@ -387,6 +387,7 @@ enum req_flag_bits {
>  	__REQ_FS_PRIVATE,	/* for file system (submitter) use */
>  	__REQ_ATOMIC,		/* for atomic write operations */
>  	__REQ_P2PDMA,		/* contains P2P DMA pages */
> +	__REQ_MMIO,		/* contains MMIO memory */
>  	/*
>  	 * Command specific flags, keep last:
>  	 */
> @@ -420,6 +421,7 @@ enum req_flag_bits {
>  #define REQ_FS_PRIVATE	(__force blk_opf_t)(1ULL << __REQ_FS_PRIVATE)
>  #define REQ_ATOMIC	(__force blk_opf_t)(1ULL << __REQ_ATOMIC)
>  #define REQ_P2PDMA	(__force blk_opf_t)(1ULL << __REQ_P2PDMA)
> +#define REQ_MMIO	(__force blk_opf_t)(1ULL << __REQ_MMIO)

Now that my integrity metadata DMA series is staged, I don't think we
can use REQ flags like this because data and metadata may have different
mapping types. I think we should add a flags field to the dma_iova_state
instead.


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 15:23:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 15:23:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099374.1453293 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ureTS-0004Sm-6j; Thu, 28 Aug 2025 15:23:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099374.1453293; Thu, 28 Aug 2025 15:23: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 1ureTS-0004Sf-49; Thu, 28 Aug 2025 15:23:38 +0000
Received: by outflank-mailman (input) for mailman id 1099374;
 Thu, 28 Aug 2025 15:23:37 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=pYI3=3I=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ureQY-0001fQ-FK
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 15:20:38 +0000
Received: from mail-ed1-x535.google.com (mail-ed1-x535.google.com
 [2a00:1450:4864:20::535])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8c4e748c-8422-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 17:20:36 +0200 (CEST)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-61ca9a5b41bso1462984a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 08:20: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
 4fb4d7f45d1cf-61cdfdbdfb5sm1356631a12.26.2025.08.28.08.20.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 08:20:35 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8c4e748c-8422-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756394436; x=1756999236; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=QWDYiFAarRKODteWl1qYxxxipU2nJpzo64SYg4tsrg4=;
        b=ShNti9l6ELpkf9K3cAqmnmmTxwCyyRW2gxSe0cbMb2L9iTKIwOwSlvjNtaL6SGUrlq
         M58u4SejiOb1lkhguALzWCVzs7GyvBoPoyLhb6vypEHuin3u6lf66axjPbWvGYxQJBCn
         yIHFF7kNdKq6V9Ha33yklHys024Ecp9Zl6Ud539wMiyVwxy+pmwy5SxqgA6aKks2eEkd
         3DSsa8xzFdu8UfFzTlpMxwcPX9TnvI9kZlYNmEyu4L78ZsgcDY/yaeh/XILPs9eon+8F
         xWCt/q5cVkmIYIQMnZsyDla7+h3vFcDGg3aoIIxCCKPyiyHQC5GgMjiVsHeX2gsJA2Pc
         L1QA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756394436; x=1756999236;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QWDYiFAarRKODteWl1qYxxxipU2nJpzo64SYg4tsrg4=;
        b=h2+ej5NqcX+Ou4RmumAWq8N7GMcybqwT7RcxknMd+pHmFxnyRtGEC3g/hbo9EL0G2m
         BhEZ628mjPsYewCjhHCm13LWpkaPBWP2BeFk5S9g0B7r/L86D54qFvsYIISjueYrIUL4
         mqgTRE11LzP32s7toJ+kwjc4P6rt7do7Dj3JNiC6iIyVhMUb/8uI23MxzV4/1La+0Ypl
         rKtew/78tyhDQShZxyi1pUXmQbMGt2S+BbfsJ/Ff4OCvzE7yPZs8r/cbNYlvN73/H6T8
         B3lvsqdzWzN0qu8mZqrZep/zCZgmAj1/BaWaXLuOg4Df5qJSDBE4bXtvIr0asXi/2Z6Z
         wL3w==
X-Forwarded-Encrypted: i=1; AJvYcCUdOZkY2c6zJIVQhzRPBxHga5XibJoIZ+pySEKVDyAspYuxwB23NSdEV/l2+D5sm1jasZ4SVPxKPMU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxTc4PbIpdmP8SJHHEuMGuy0I1pkEVVjVPNLKqRdYzLrJiETytl
	8/wCWrF9uYy/S8Okbte7ahbGBfD3x5y7AhD7Er8Aeu3tZIodZExuaZXzxKW+9iR116S8rmdDLqh
	vKMs=
X-Gm-Gg: ASbGnctcbpCD2i9NC86gN6vbz9nJehQe5qx+rln+lxAwitnUaVB+i2WW6ybGwfi1nzg
	pTXAvJ9WbwVL0fC6YD3RN3s6YuO8tyJY4z/TgRmFuYy1FbUVCWXhRfgCze1r9Im691T93TkZnpn
	OBdtXcV3lMPx/7st+Vj+fx4SqCKw1wsjY5SLAmC2tfYe4LVIMzSmbnrztvhWKulVm6ZFk8Vp4wD
	rW6gi1omsyExUs6iyVj5JH0AurtUfQL9uqowmN6dSsGyYarmUmmbFMJVhGfzaK3bd3XtQveQMp/
	tlNOC3NEDjMm0Ti924ZOqZp+09/gC183+xnrX8q2uxieSExEXoEJiTVJYDHw5eSONqNbPBr6sGX
	qMg4QZOkwel7ZzLQSzqSDizbQcULGidhOy6t6zG7Z7USmws5olV74KvEVIGuz3PRb6a35NdiIze
	+i/vJ8bEtrLw0/0jQwMA==
X-Google-Smtp-Source: AGHT+IGwoyzLrVKAPt42aEBKMzDn+ZjiriLervyoE+4KxPsQ6u1VjQ+avADnL3uiaGm7F2PtjWjMgQ==
X-Received: by 2002:a05:6402:50d3:b0:61c:7a45:5866 with SMTP id 4fb4d7f45d1cf-61c7a4560b6mr9749036a12.11.1756394436034;
        Thu, 28 Aug 2025 08:20:36 -0700 (PDT)
Message-ID: <28c1d8ae-18f3-4b10-956d-d14693db9f66@suse.com>
Date: Thu, 28 Aug 2025 17:20:34 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 03/23] x86/traps: Introduce opt_fred
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20250828150409.901315-1-andrew.cooper3@citrix.com>
 <20250828150409.901315-4-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: <20250828150409.901315-4-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.08.2025 17:03, Andrew Cooper wrote:
> ... disabled by default.  There is a lot of work before FRED can be enabled by
> default.
> 
> One part of FRED, the LKGS (Load Kernel GS) instruction, is enumerated
> separately but is mandatory as FRED disallows the SWAPGS instruction.
> Normally, we'd have to check both CPUID bits, but Xen does not use GS like
> most other software, and can manage without the LKGS instruction.
> 
> FRED formally removes the use of Ring1 and Ring2, meaning we cannot run 32bit
> PV guests.  Therefore, don't enable FRED by default in shim mode.  OTOH, if
> FRED is active, then PV32 needs disabling like with CET.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 15:24:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 15:24:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099413.1453304 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ureUg-0005Hj-IO; Thu, 28 Aug 2025 15:24:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099413.1453304; Thu, 28 Aug 2025 15:24:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ureUg-0005Hc-Dy; Thu, 28 Aug 2025 15:24:54 +0000
Received: by outflank-mailman (input) for mailman id 1099413;
 Thu, 28 Aug 2025 15:24:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=zcYL=3I=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1ureUe-00056P-Sg
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 15:24:53 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20631.outbound.protection.outlook.com
 [2a01:111:f403:2417::631])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 234c38ad-8423-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 17:24:50 +0200 (CEST)
Received: from CH2PR08CA0016.namprd08.prod.outlook.com (2603:10b6:610:5a::26)
 by DS0PR12MB8219.namprd12.prod.outlook.com (2603:10b6:8:de::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.25; Thu, 28 Aug
 2025 15:24:46 +0000
Received: from CH1PEPF0000AD75.namprd04.prod.outlook.com
 (2603:10b6:610:5a:cafe::f3) by CH2PR08CA0016.outlook.office365.com
 (2603:10b6:610:5a::26) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.17 via Frontend Transport; Thu,
 28 Aug 2025 15:24:46 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 CH1PEPF0000AD75.mail.protection.outlook.com (10.167.244.54) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Thu, 28 Aug 2025 15:24:45 +0000
Received: from satlexmb10.amd.com (10.181.42.219) 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; Thu, 28 Aug
 2025 10:24:45 -0500
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.10; Thu, 28 Aug
 2025 08:24:45 -0700
Received: from [172.20.185.149] (10.180.168.240) 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 via Frontend
 Transport; Thu, 28 Aug 2025 10:24:44 -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>
X-Inumbo-ID: 234c38ad-8423-11f0-8dd7-1b34d833f44b
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Qd795vfGt+npyF8Gmth+tyClRemcXg8E2fTs+jK7kA0YxQ3o5x2zo30po9tW1sYbvYlvZmzSGi/ZFIW/yQ/BeUPKGxu3qwFi5iZfvnxUmDCdlyFR2eTrk4WMq4pMaMqq8sni48jzB4EshhuPOxbgeryRgon2AHAj3Az5hW71sF7IaRXNiYUiRiLb2jtIFVe/itaqfeCOXZL6uoYhmGzFM3WxoMXTmPaIBBoVoRPq1u81zzSliskvsJcVFpxL2z9yllJTfVOKXIRjW8EYU1V8NZt+G/pRVKyJu1LvvoUPdMI4p2MBBzmG0lvdXarybhPaotUwiP5cwT0Mu2Sbb0rIkw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jsjStin+qEOYqvova+nacGlf0aAi2wYHMPXpupURFgU=;
 b=TwGxZ6bw5Zt3YrSmTS7edrWURK4xQvAgBHGwR/BVZ7zs9foH+qWtqdyzhjDk3W/Xqr2y9SKQf5CcQmLRiWHzVXnrrDYJUtNbKD6UpbXmZ0S7A5oTRjhjVuR41zEi/a8CuWDI7RbE4cjnLe4ZqXp5T9vsiYKnpoOw2TZRLiZakdyiYPsTfluDlA6rnjc7aEGju6mTVzthYNzMCBkDp0vskSxcv11ogWntAXk4Ou294wfQYgj1agIlueSEDlTaVkpf2FNi9Y8BU1pXVQLViLY/aeJXYX6yqQLpM8dvEoF8qG2PnY7yodA+7MGyywQ9DCiw5lZxOnEZZCRBq/yt+RcaKA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=epam.com smtp.mailfrom=amd.com; dmarc=pass
 (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;
 dkim=none (message not signed); arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=jsjStin+qEOYqvova+nacGlf0aAi2wYHMPXpupURFgU=;
 b=VsHIB54FYN6jxzFV/wQdrGuJof7uyjJh8AzPvLTTLrgedxKaxPOlFoXAKNpYBqzXjnd5iFFDQUSuOYbm/bHXJWnb7tXgM5q5qwoCI56SIxV3lbtuqxrQxuiSgo/MgFZX5sq1iQiSzEphN4g8Zv05k8l+2lIfbKnXRw31gF0Zekc=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <c7efc9ee-d2ab-4960-9670-d2a63b992141@amd.com>
Date: Thu, 28 Aug 2025 11:24:43 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] device-tree: fix infinite loop issue in
 'assign_shared_memory()'
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel
	<michal.orzel@amd.com>
References: <0e562f695e5db87ab80dde69cbcc0cfa14f94b21.1756373770.git.dmytro_prokopchuk1@epam.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <0e562f695e5db87ab80dde69cbcc0cfa14f94b21.1756373770.git.dmytro_prokopchuk1@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH1PEPF0000AD75:EE_|DS0PR12MB8219:EE_
X-MS-Office365-Filtering-Correlation-Id: 44f2aba2-39b2-466e-0642-08dde6470522
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|1800799024|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?L0EzVjZLenVKeUlRbEZFOE5mcmZPdzQ2MGJGb0IzZG95cy9NMWFubjdUMkpo?=
 =?utf-8?B?RFBTRnJ0RmFtYmczUWl0Z3hSV3FHTlNWLzNITG13d0hIbWFta2M4OXRxVjBa?=
 =?utf-8?B?U3FXQ3lBdlQ2TVVkNWNFRW95MkNBUkhDN05LVWloU3VZRnVuUURLcVQ4NGd1?=
 =?utf-8?B?cHRvMytPSlhMOUg1Z2w1Tjk3V1VLTlNiTFpWVHFzY0hsOXhScDhiQW83bTAv?=
 =?utf-8?B?dmMvTHRWTXlGbjgrVFdob0FLaW1VTExPQXh0SXdrdjh0cVpCenMzU2xsQ0I5?=
 =?utf-8?B?QzNEMTB0RFFMTjRIeTVYbit4c2E1OVBsVjMvUkt2aWpyZVF4QnV2c253Tm5C?=
 =?utf-8?B?TDZTTUM5TkJPSk9Lc1VvNEJDbExlUVZXaGk3aXpDbTJLdkFmVlhqMHB2ZTVV?=
 =?utf-8?B?dUZVTk5uLy82Mlo2RGJGc1p2UVhHMUZWeHpxa2U1ajJaYmh4NkFQUUoyaGJ6?=
 =?utf-8?B?T1pZbkt5MW4wQTZDRVRrTGFJZG12L0p2LzkxV2MrY3M5WHE3Njk2N3U1THpL?=
 =?utf-8?B?YlllVFBCUkU1aXQ2UGgvb3Rrb3J2R0dyVEVxU3RQWmNneU9oSVZRNVBSUjBX?=
 =?utf-8?B?NklZQzZlcjE4L2JNL2EvOWNjVlExbktnSWcxeFZNUHlGYzc3ZExCS25vWk54?=
 =?utf-8?B?ZWFRbUo3c3p4bEpNMzB3V1ZFSXZpM1B1MHFCdUJzNE94YzRWLzhXS25Ra2V0?=
 =?utf-8?B?N2hMQitRdFJhOFNhZWxobTBsZTl2SEV0Z0VDRmRkODNvSjFiL2c5TGp3TDBu?=
 =?utf-8?B?UlBSaGcwaW8yUWJwOWZQQnN2STNVTlpuMjN0bGM2R0VYRVI1cXlwWFE5S3Ru?=
 =?utf-8?B?YVRmaVpLbXNIMldVdVRXOVZJUndhSUpLY0ttNDgxOFFlSjZFLzY3bUNPZjBw?=
 =?utf-8?B?UlAzQWI4UjJob1hhQXBXeHVJWTU5Tkdzc3dRMy9odEtrMkU4bENuUTRsdXhs?=
 =?utf-8?B?dWFxVmQvck52UFpiRWRiK2s2eStILzhHdW1CalNRSElYaURWa0FBOGtGVlB6?=
 =?utf-8?B?a3Q1ZjdGc05HbFo2K1k0T0J6dkhudWljdmR1ekNNMkhmM0FCTUsrejBJT3M4?=
 =?utf-8?B?RnM0eWw4cnRkcFptREk1SzFibndsVVZaUGRrQjJEVWVCSjZiQk10VnlhaElr?=
 =?utf-8?B?RU5DZDZWV1BOeTNEdjF4R1Nod0dKNlZSSDVZbzVRMXR2aGNucGkzOGNkeERO?=
 =?utf-8?B?QTc4MmVHT1Zic1pYcFg1Ui80eVlHZlpvV3JxSzJyay9ITzB6cW5uTTdrNTRC?=
 =?utf-8?B?QWxRTTRPMUowNFN1NVc4MVc2Q0lhYTVPSk9WcDZlVXgybGd0LzhYeHo2TTd1?=
 =?utf-8?B?ZnRma1dDZktVcUdsbjVMNkUwbzh0bDdjNEk1MGptQUNRSWVRdHJwaXg3amJU?=
 =?utf-8?B?eXJBQ3paMU1WQ3hKY25QTEVtQVpVQ3JFUGlrUUowYkVTRnFWd0tvdmtETlBN?=
 =?utf-8?B?TXR2ejFZNzRWM1F4aHI5ciszVVVFeXR2cHJhT0RCdjhZaXh5ZnFMNU45aWlD?=
 =?utf-8?B?Mlh1WlFPVFZzWW95emtudVJFQkJOZmhzVGdld3NGOC9NMkpiT0Vzd3M2VkJr?=
 =?utf-8?B?Q3hYTUU5OEFNaFdMazhnTzBvOGZMc3BRUS90VGdBM2c4SGFkM2EvT1UrUjQy?=
 =?utf-8?B?S0xSbjZHZWNlUm1sRWZESCtwRlArbEpZWTN6UXcxK3lHRGpMYkgvZjQ4RVdx?=
 =?utf-8?B?cmRHN1RiQ0lHQnk0Z3krYU91bHZpWTYxaFV6eEFjS2Z4UVlMQVJkcms0SFR3?=
 =?utf-8?B?WWZUL2ZwV2M1Z3g1eWg0MGhjTlh2Yi9xTmJ1VjNRdmwycWx6R29uOXZnMWlo?=
 =?utf-8?B?WXpDSTBWRDVTSDFTc3Q3VjNuWjdMVnJzVmdSYmlvNVdKOEhlTjVWd0lwQmpO?=
 =?utf-8?B?a0o2ZXdIMGEzSW5kdlZMYjluYytTbzE4bkszRTJjQmk2ckhRZ00yQnRwSTRU?=
 =?utf-8?B?UklxcEZVQmJLSFRNZkVqdjJOaXIwczBGU1BJQ1ZNQ1ZJYkxaQnVDdFlvQUwx?=
 =?utf-8?B?NDRleVJJcTllVnhBZ2daamEybXZNblZLSXJDOERDajlVaUVNdGt6ek52Zys4?=
 =?utf-8?Q?EQcp0C?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 15:24:45.9104
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 44f2aba2-39b2-466e-0642-08dde6470522
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH1PEPF0000AD75.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB8219

On 8/28/25 05:39, Dmytro Prokopchuk1 wrote:
> Fix an issue in the 'fail:' cleanup path of the 'assign_shared_memory()'
> function where the use of an unsigned long 'i' with the condition
> '--i >= 0' caused an infinite loop.

I'm not requesting any changes to this patch, but as a separate discussion this
could have been caught with -Wtype-limits:

arch/arm/static-shmem.c: In function â€˜assign_shared_memoryâ€™:
arch/arm/static-shmem.c:188:17: warning: comparison of unsigned expression in â€˜>= 0â€™ is always true [-Wtype-limits]
  188 |     while ( --i >= 0 )
      |                 ^~

It might be nice to add this warning flag into the build by default, but there
may be other issues that would need to be addressed first. Having the flag at
least for the release build would be nice, since the debug build may (or may
not) have justifiable occurrences inside of ASSERTs. Again, I don't mean to
increase the scope of work, I'm just making an observation.

If you're curious try it out, add this to your make command:
EXTRA_CFLAGS_XEN_CORE="-Wtype-limits -Wno-error=type-limits"


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 15:33:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 15:33:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099469.1453314 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uredF-0008Nj-BP; Thu, 28 Aug 2025 15:33:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099469.1453314; Thu, 28 Aug 2025 15:33: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 1uredF-0008Nc-8f; Thu, 28 Aug 2025 15:33:45 +0000
Received: by outflank-mailman (input) for mailman id 1099469;
 Thu, 28 Aug 2025 15:33:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FrxM=3I=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1uredD-0008M9-PC
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 15:33:43 +0000
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com
 [2a00:1450:4864:20::32b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6011de1c-8424-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 17:33:41 +0200 (CEST)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-45b7d485173so3535175e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 08:33:41 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3cc4b102889sm8713190f8f.51.2025.08.28.08.33.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 08:33: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>
X-Inumbo-ID: 6011de1c-8424-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756395220; x=1757000020; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=JjqoTxNmSOot+C9zcD0O1M60t5R3BdVvIcEped/y03s=;
        b=vDoIhAR+hacu1x9aUxldl3ApnqHpPXSN3dVXpAXgorEkyDor4JoFWMO9zT1k8095jC
         FDFEgjsFA9ufdIuFpFUVI5zeg0ELuQDpqQrQZK+91HCZSCZFgs6tA4LzVpN95vYlDGj7
         fUY7RAS94MjUbLxd7Z4l4SJqHFOMdHj/pjlGY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756395220; x=1757000020;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=JjqoTxNmSOot+C9zcD0O1M60t5R3BdVvIcEped/y03s=;
        b=c7UwPtFrZxxu+qINVpX4WBvxGNOpY/OM64l1jCh0U2cJQJQlS99B5GVJNjTB+0xjRD
         MJbZ8tQKpe2AwNX5y0uK8CPxwaB526fK12S8EdHwlhWlxmHjzcw26f+QpQ0xBvED1E11
         ++uJEepMNln8LlgVVfeis5kt94oRYuLAU0Cp4awX86955co3HtU479/QrCARZY7TQHcA
         i0U1KnpVC9HZ81tmW+WJ3v3R+/J9NbRVPWTM4eX5/wOXHa0TNsbk8785w+IKITHPhqcT
         dehcSTzfRKl2ScrbloJg/mE8XK6Lsf6Zal6C3Yi+6oVYt0aQ6XPQHXIGUNKA4fioJy1h
         7FPQ==
X-Gm-Message-State: AOJu0YzxL6g7FXDXDb6RUINU6c/DFikLjX46jyRHeSV/E6nHbMCI+cbb
	MfJYhisvP80dH6xz5lCW7KA+VRgQwm8Gx5ygAAViWQYklLb+mzkmPaq38CwBu5eStegynB4WABC
	ZPZor
X-Gm-Gg: ASbGncuKrSWpodjEd/CdYTtrfCg0MtmwwHOsMJcQkjS1UVf5PmLixQzYQdBCH08KG0J
	FKhJ+vqQHXh7+ZRHQ0hTUqg2053PzFEsqt+eByyhy9rSPm0Dx3IqK9SMbRETZ0kC5Z1cfRv4LUn
	EVv/EGB8lo0L6fw9VAm/LcC4Kv6j4VJ2APdwKGWzOHQje3iT4+tgyb1lF+gU6ssmMbqYWXVTsjg
	kT3W6LCUpSKD+9xX2FCmAghltrUFenfQsAO2+CDfQyXHtW76DWYiDyrbuFUxGRDoqdOTbXkmX5Y
	BLjxZIWndapgjc7w56X/g1sg0VnOhq60DAdwZo9VUPhyJtNT8KXgdC2wB/E5xmyT8pw08hZj0Pj
	mT3c752CECVDpe5Snm5vpfozNbo3xh9NXEwnwZhbAzPxCXRVQwwuYK5sDr7FV3cZ6UTNQC3NWnk
	MkSf0=
X-Google-Smtp-Source: AGHT+IF9Y8jrWU/mAbqW22fY3hiUfejtYoNkiFgb+3rllFokT3+kNJfITYXUXUnYLTAuFpEIDogUoA==
X-Received: by 2002:a05:6000:18aa:b0:3cd:7de0:729f with SMTP id ffacd0b85a97d-3cd7de074a5mr3186867f8f.4.1756395220451;
        Thu, 28 Aug 2025 08:33:40 -0700 (PDT)
Message-ID: <cb6b027c-f944-4a7b-8939-b58b957dcfff@citrix.com>
Date: Thu, 28 Aug 2025 16:33:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 01/23] x86: FRED enumerations
To: 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: <20250828150409.901315-1-andrew.cooper3@citrix.com>
 <20250828150409.901315-2-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: <20250828150409.901315-2-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 28/08/2025 4:03 pm, Andrew Cooper wrote:
> Of note, CR4.FRED is bit 32 and cannot enabled outside of 64bit mode.
>
> Most supported toolchains don't understand the FRED instructions yet.  ERETU
> and ERETS are easy to wrap (they encoded as REPZ/REPNE CLAC), while LKGS is
> more complicated and deferred for now.

I've realised this is stale now.Â  I'll replace with:

Most supported toolchains don't understand the FRED instructions yet.Â 
ERETU and ERETS are easy to wrap (they encoded as REPZ/REPNE CLAC),
while Xen turns out to have no need for LKGS.

>
> I have intentionally named the FRED MSRs differently to the spec.  In the
> spec, the stack pointer names alias the TSS fields of the same name, despite
> very different semantics.
>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
>
> v2:
>  * Drop CONFIG_HAS_AS_FRED

I should have also noted "Add X86_FEATURE_XEN_FRED" here.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 15:36:57 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 15:36:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099482.1453327 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uregK-0001pT-5A; Thu, 28 Aug 2025 15:36:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099482.1453327; Thu, 28 Aug 2025 15:36:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uregK-0001oG-0z; Thu, 28 Aug 2025 15:36:56 +0000
Received: by outflank-mailman (input) for mailman id 1099482;
 Thu, 28 Aug 2025 15:36:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FyLT=3I=xenbits.xen.org=andrewcoop@srs-se1.protection.inumbo.net>)
 id 1uregH-0001nh-7Z
 for xen-devel@lists.xen.org; Thu, 28 Aug 2025 15:36:54 +0000
Received: from mail.xenproject.org (mail.xenproject.org [104.130.215.37])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ce44c706-8424-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 17:36:48 +0200 (CEST)
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 1ureg2-00AysH-1G;
 Thu, 28 Aug 2025 15:36:38 +0000
Received: from andrewcoop by xenbits.xenproject.org with local (Exim 4.96)
 (envelope-from <andrewcoop@xenbits.xen.org>) id 1ureg2-0061NO-1d;
 Thu, 28 Aug 2025 15:36: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>
X-Inumbo-ID: ce44c706-8424-11f0-8dd7-1b34d833f44b
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 471 v2 (CVE-2024-36350,CVE-2024-36357) -
 x86: Transitive Scheduler Attacks
Message-Id: <E1ureg2-0061NO-1d@xenbits.xenproject.org>
Date: Thu, 28 Aug 2025 15:36:38 +0000

--=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-2024-36350,CVE-2024-36357 / XSA-471
                              version 2

                   x86: Transitive Scheduler Attacks

UPDATES IN VERSION 2
====================

The fix for this issue uncovered a pre-existing bug with the handling of
timers and broke S3 suspend on certain systems.  The following patch in
xen.git#master resolves the issue:

757abedabbb6 x86/suspend: unconditionally raise a timer softirq on resume

ISSUE DESCRIPTION
=================

Researchers from Microsoft and ETH Zurich have discovered several new
speculative sidechannel attacks which bypass current protections.  They
are detailed in a paper titled "Enter, Exit, Page Fault, Leak: Testing
Isolation Boundaries for Microarchitectural Leaks".

Two issues, which AMD have named Transitive Scheduler Attacks, utilise
timing information from instruction execution.  These are:

  * CVE-2024-36350: TSA-SQ (TSA in the Store Queues)
  * CVE-2024-36357: TSA-L1 (TSA in the L1 data cache)

For more information, see:
  https://www.amd.com/content/dam/amd/en/documents/resources/bulletin/technical-guidance-for-mitigating-transient-scheduler-attacks.pdf
  https://www.amd.com/en/resources/product-security/bulletin/amd-sb-7029.html
  https://aka.ms/enter-exit-leak

The paper also details other speculative attacks.  See below.

IMPACT
======

An attacker might be able to infer data belonging to other contexts,
including data belonging to other guests.

VULNERABLE SYSTEMS
==================

Systems running all versions of Xen are affected.

Only AMD Fam19h CPUs (Zen3/4 microarchitectures) 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
==========

AMD are producing microcode to address TSA, which adds scrubbing side
effects to the VERW instruction.  This was included in the firmware
fixes for the Entrysign signature vulnerability from ~December 2024, but
are also available in an OS-loadable form on older firmware.  Consult
your dom0 OS vendor and/or hardware vendor for updated microcode.

In addition to the microcode, changes are required to Xen to make use of
VERW scrubbing at suitable points.

Applying the appropriate set of attached patches resolves this issue.

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.

xsa471/xsa471-??.patch           xen-unstable
xsa471/xsa471-4.20-??.patch      Xen 4.20.x
xsa471/xsa471-4.19-??.patch      Xen 4.19.x
xsa471/xsa471-4.18-??.patch      Xen 4.18.x
xsa471/xsa471-4.17-??.patch      Xen 4.17.x

$ sha256sum xsa471*/*
4cc8b54d3cae4864053c4d608061675564cc322c6cd362e33ac59ac4c9371358  xsa471/xsa471-01.patch
9bdfd0ad8d34114e69bb0e264ffdcb176e54211753cc1eed247e73cd3fe752e9  xsa471/xsa471-02.patch
62706c1593cb64bfd053f5ee2e8fa26f5414835c6ef5f694c52a61e18017aa1d  xsa471/xsa471-03.patch
e06162c55de0b3ca79302ea47c8169079b0f2cd65a48d3e0509677452c9887da  xsa471/xsa471-4.17-01.patch
742c59d776c73993c44e72ceada2b83b61fa77a988f5c2c593b6594b4f4078de  xsa471/xsa471-4.17-02.patch
a8ed5e90e405273115d6a06199de3190319ba12aac33bea17495db42b6a9becc  xsa471/xsa471-4.17-03.patch
855c9528d93109a1a673dd8f4feb87a688457908c9dd821d0e1a3326efb19257  xsa471/xsa471-4.17-04.patch
f8dbe5c8dbdf921c7f9b4bc7d8234b9bb291df6a4a8cef604284bf4f36947d4e  xsa471/xsa471-4.17-05.patch
fa2682955663e0966cf285bf79770fe76b387fbf449e1ac64206a6ae4bf79bc4  xsa471/xsa471-4.17-06.patch
dc4695aced6ba65e8b16088aefe817e8e4d965cd94e9e3340bd48d77c1369902  xsa471/xsa471-4.17-07.patch
0393a8711805f40eeb936dcca56f5bea174ff94098ffaee7064cd6801eb55099  xsa471/xsa471-4.17-08.patch
346493cc12d9a0fa4154968bc0c8dca9d87e583a25ae9ecd22b8ae2c7bdeae19  xsa471/xsa471-4.17-09.patch
0d652e9a6bb89782036b39160f2db9c1fd1dfc0e659fb4e351f04eb66ffbdba8  xsa471/xsa471-4.17-10.patch
ff3ae74f6cfccfaee55f007b2410813068928d20a23729ae2766ddcc65d2e82b  xsa471/xsa471-4.17-11.patch
5c6d133f626fdcbc148b596bf3cee1c46260d73fd833aeb6c59cf7c1b315f2b8  xsa471/xsa471-4.17-12.patch
acbdca53d713122545ba210a795c4185e842d4cca71802775adc1a4ce971bf3a  xsa471/xsa471-4.17-13.patch
4a7fa23b7f501cb88100b55fab13b7315a01fc1e4a3eff46b5d0c867fcc03ca8  xsa471/xsa471-4.17-14.patch
164d626a2f446ad7692bd70ab7e109f8b6259aaea34bfb9f51df68def98a2e62  xsa471/xsa471-4.17-15.patch
35699b19590ccf1872c8da8731b4c47e95cc38d119510e182d196427ea4455f8  xsa471/xsa471-4.17-16.patch
296c95410b6dbf55fa092d15e0eee66125a87b012095f84c550eea54078d0490  xsa471/xsa471-4.17-17.patch
0212aec278afe0dcc6479b756a0c1821d2bfba646fa9ec56f1b9b37ff51756f4  xsa471/xsa471-4.17-18.patch
4e05073bc960b7f43dd383356d1b56fa9c55dc021205678bd8ac456f3a1d00f0  xsa471/xsa471-4.17-19.patch
0d4166420a9e69afe3303d6d3232ee43cf27e88e5bbd8a52a17521934455ed65  xsa471/xsa471-4.18-01.patch
3ff24a622a8ef97af7dddf480dd8c6c12efb8a2dc74ae8d68836543a6cdb8329  xsa471/xsa471-4.18-02.patch
fe69ab8c1d45e0d23f58126b22e9914d2269d416cd802619000dc3933c49129e  xsa471/xsa471-4.18-03.patch
60b563119ed38a052ed6e6a261b56db5e7b8b40befacd4904d5ce50b2d75d280  xsa471/xsa471-4.18-04.patch
864643c643cfe1f03d28bb36aadcd5bdd1dc7276c30357ea8be1cd1d20ef6f69  xsa471/xsa471-4.18-05.patch
9d5c58339aea8afbeea0bdf34c34cbeb4178ac0a475a32e688317b9810d0f148  xsa471/xsa471-4.18-06.patch
38347e4d096a880cc6d91f09d60277914ad6aa8a6b588913f211097574714ab0  xsa471/xsa471-4.18-07.patch
f0db078f811b5c06170f0016fec84a4bbd958b9f8a8d999567c5680d90141c2c  xsa471/xsa471-4.18-08.patch
6d2f9de12d113790bbc74327cf94ae08234bec95d88468767462d3a11d0c40d4  xsa471/xsa471-4.18-09.patch
04f63468fca093f8fb5716c0ecafd1ef0be14dd5a464cddc20e719e0c2979980  xsa471/xsa471-4.18-10.patch
5c6e030d1258ce703ddf27fb48ee7b33ca0dbb09657cb38fc7d5b432d215322e  xsa471/xsa471-4.18-11.patch
18b17089aa643ae2d6d9d394137a7fe21bf6b8f9743f2237481b68920f3f8f06  xsa471/xsa471-4.18-12.patch
d2c35d0a93e9a98fa04623c024a6e152f4d4d6568e6b603ee0cf7f4e4c9dca82  xsa471/xsa471-4.18-13.patch
f5b3f0aa8a59033bad4f221709eb4f6f14c82f75ab229ff53ef52b917d0f4021  xsa471/xsa471-4.18-14.patch
dc5c0da74f4a6faba0b2af5539cb38a44525379a2f9cafdff18f71cda5280d42  xsa471/xsa471-4.18-15.patch
296c95410b6dbf55fa092d15e0eee66125a87b012095f84c550eea54078d0490  xsa471/xsa471-4.18-16.patch
04c5587d19749a261ca9edc5212d606f2bf577e890c8f4474c55a9c5fe9605d7  xsa471/xsa471-4.18-17.patch
1b10f901d218bafc35d21366e57be89191c0b7c3bcc9def4da5c79bcf93a2e9d  xsa471/xsa471-4.18-18.patch
d8b010138f5a2773a07902617c65f5d419bae6445410251c9dc1a777b6bf3378  xsa471/xsa471-4.19-01.patch
d72ab177637179cccbd32d2dbedfbb399ff4ba59360391e898e3c5fc069803a9  xsa471/xsa471-4.19-02.patch
365ee7e6fb3da83e6238cd4f9138de2018fddb65c1604bbd968e73ce97451fe9  xsa471/xsa471-4.19-03.patch
690cbd2b4b5ce5a855e75cf44c098ca2e231a272d2ebdc1e68d267c5c4e50db0  xsa471/xsa471-4.19-04.patch
82ac6bbca376e33fe1e03569ed76f559f18066000aec6dc72f1722245f5e9a54  xsa471/xsa471-4.19-05.patch
06c475bbb74d86375c17e183bdf74e1ef145a49af2aa237ce69f6ca8e6f78a7c  xsa471/xsa471-4.19-06.patch
03bacbdb4cabb3e9eee079a847fa2eda3ff30c86bbfc5d5b1987ee028774a507  xsa471/xsa471-4.19-07.patch
b144cea707793e73d6dcbaa0e0ef268bb3cd389e12c080ec687a64a8a3e6ad61  xsa471/xsa471-4.19-08.patch
df35ded3dfe5ca84d459eda720699a35e3e49d4b4d461a3f834d05c30b0bcf59  xsa471/xsa471-4.19-09.patch
6719417c0ead056d83ef003cc3b08bf95a3430560fd8f27357c09ca55b6a3993  xsa471/xsa471-4.19-10.patch
b7c6ff2f529c6d6cc656b42142d06e5462e652ade57cc2ff5d90320af1234a27  xsa471/xsa471-4.19-11.patch
4b8a05edf04f5b43b1edcf44412ec4be734b011a7b8d2d739ffe0bdc04abce82  xsa471/xsa471-4.19-12.patch
e2bca0cd6f66465fdae9e3d251e67ba8a28a96a05201ac939a599dd95a0b3bc6  xsa471/xsa471-4.19-13.patch
8dc65ba84572a090d1bf8ffeb9b5871d9533e4da324fbcdfb1ab32ed83b10fad  xsa471/xsa471-4.19-14.patch
2cb102830a29c6c2a898f8f580a9d554c332d6c31dd1608af0fb22b7340f650b  xsa471/xsa471-4.19-15.patch
2a873ae56866b9986183e18ea9b70712a15f6df3af299b2d583cbda40a816f58  xsa471/xsa471-4.19-16.patch
77c7634a7d59056f92de619e034f31e63fd6ac6b26dc6e6af65e80fe3e4e5feb  xsa471/xsa471-4.20-01.patch
22db1def1859cc7c742b79fee78c994ac4c9cc63daa3663533f324e93e9ef9e0  xsa471/xsa471-4.20-02.patch
fb9a103c606552188c05c14092cce084b52b4df75659f4d8013aa30978708ee8  xsa471/xsa471-4.20-03.patch
6930b94a1997b118692a2e0bd5e32bba2e0269b66de4019e3e870304d695c315  xsa471/xsa471-4.20-04.patch
4a67ef27f84eced8fa9cf3ae42d9f79f74a16659ab004fd79a7ee09fce823cf6  xsa471/xsa471-4.20-05.patch
9c62b492be0f1961d5d8062b7d4ac95b9d120e44ca4bf7e009a499fad9c0fcc3  xsa471/xsa471-4.20-06.patch
511728ef65068fa8bda25c31e3fd578aebc8400597d117f31fd2ba436fbb3776  xsa471/xsa471-4.20-07.patch
9a66742ec752a9f58a02f170a4213a22d32bd487e49bfff799800851ba9650e1  xsa471/xsa471-4.20-08.patch
5a02afd655d29b7eba7ac24a8665d64db39994d84e5125a7511f3e5fb7cafacf  xsa471/xsa471-4.20-09.patch
f55ba571fa668a1ba9fb318c082e684780cc9b8d3c4e7f33db17bf7cc2afcdb3  xsa471/xsa471-4.20-10.patch
4cc8b54d3cae4864053c4d608061675564cc322c6cd362e33ac59ac4c9371358  xsa471/xsa471-4.20-11.patch
b180fec77659ce67d24c076301a3d10486afe0c1f224c30b5af7f22f678e8834  xsa471/xsa471-4.20-12.patch
60155cf04e25ad5c95f744dced34c530e0606150e1ca7617e38a9e3d8933eff3  xsa471/xsa471-4.20-13.patch
3d4eb5835d331581fd5c502ea77a0bf3f35c8e12ff9a95d38d32acfed735fefa  xsa471/xsa471-4.20-14.patch
bc8590f2187d52a727f2354fda9d006087eaae17c34899bec0257ed7e870e7b6  xsa471/xsa471-4.20-15.patch
91c9100a964b0ecaae5ed019e2c846ea0a8a1e5d734e01853be737bb1799d5dd  xsa471/xsa471-04.patch
5fce1dfbf084ccabbba9fcb7a8f758cffc1c8ca93a4f1d2a1c6ad49b4fe9e5da  xsa471/xsa471-05.patch
$

NOTE CONCERNING OTHER SPECULATIVE ATTACKS
=========================================

The paper describes two further attack:

 * CVE-2024-36348: Rogue execution of SMSW
 * CVE-2045-36349: Rogue read of MSR_TSC_AUX

which are both examples of Rogue System Register Read (sometimes called
Spectre-v3a).  No fix is planned, because these registers do not
typically contain sensitive information.
-----BEGIN PGP SIGNATURE-----

iQFABAEBCAAqFiEEI+MiLBRfRHX6gGCng/4UyVfoK9kFAmiwdxIMHHBncEB4ZW4u
b3JnAAoJEIP+FMlX6CvZuDgIAJBfOoZft1bBbdDkgVuyuxzdvZHPHqENABOoWi7P
1phCJ20Aq4ZA9hezEzWpy2i84zAoJuxyZUAKfi86uPIlTfOjAhvaTC6jcabdKYHA
IGC3ldZTXe2X9z5EQKAzkUiD0GslP2SBnFwtUq+G84USNNT7ZlwV9f5ECW3WvRFA
R5YvH3s8UT7aZKelUy07GM246eFXj+PjFE5mZTlRdu0n1gZzwvrtALKrTS7bt806
XwA7Iz/W1R53DoPrvKhop/bzGb8L8i+UMHwzSAgWfi7n5PHq0dQjACwBY7ktIfQK
F+yky+M3LG+9xxWCkjXnPMUjEwFRxlsNuJiLe2QQ5et7TLM=
=wkVe
-----END PGP SIGNATURE-----

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-01.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-01.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogRnJpLCAyNyBKdW4gMjAyNSAxNzoxOToxOSArMDEwMApTdWJq
ZWN0OiB4ODYvY3B1LXBvbGljeTogUmVhcnJhbmdlIGd1ZXN0X2NvbW1vbl8q
X2ZlYXR1cmVfYWRqdXN0bWVudHMoKQoKVHVybiB0aGUgaWYoKXMgaW50byBz
d2l0Y2goKWVzLCBhcyB3ZSdyZSBnb2luZyB0byBuZWVkIEFNRCBzZWN0aW9u
cy4KCk1vdmUgdGhlIFJUTSBhZGp1c3RtZW50cyBpbnRvIHRoZSBJbnRlbCBz
ZWN0aW9uLCB3aGVyZSB0aGV5IG91Z2h0IHRvIGxpdmUuCgpObyBmdW5jdGlv
bmFsIGNoYW5nZS4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFu
ZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5OiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+CgpkaWZmIC0tZ2l0IGEveGVuL2Fy
Y2gveDg2L2NwdS1wb2xpY3kuYyBiL3hlbi9hcmNoL3g4Ni9jcHUtcG9saWN5
LmMKaW5kZXggYzNhYWFjODYxZDE1Li40N2VlMWZmNDc0NjAgMTAwNjQ0Ci0t
LSBhL3hlbi9hcmNoL3g4Ni9jcHUtcG9saWN5LmMKKysrIGIveGVuL2FyY2gv
eDg2L2NwdS1wb2xpY3kuYwpAQCAtNDE4LDggKzQxOCw5IEBAIHN0YXRpYyB2
b2lkIF9faW5pdCBndWVzdF9jb21tb25fZGVmYXVsdF9sZWF2ZXMoc3RydWN0
IGNwdV9wb2xpY3kgKnApCiAKIHN0YXRpYyB2b2lkIF9faW5pdCBndWVzdF9j
b21tb25fbWF4X2ZlYXR1cmVfYWRqdXN0bWVudHModWludDMyX3QgKmZzKQog
ewotICAgIGlmICggYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yID09IFg4Nl9W
RU5ET1JfSU5URUwgKQorICAgIHN3aXRjaCAoIGJvb3RfY3B1X2RhdGEueDg2
X3ZlbmRvciApCiAgICAgeworICAgIGNhc2UgWDg2X1ZFTkRPUl9JTlRFTDoK
ICAgICAgICAgLyoKICAgICAgICAgICogTVNSX0FSQ0hfQ0FQUyBpcyBqdXN0
IGZlYXR1cmUgZGF0YSwgYW5kIHdlIGNhbiBvZmZlciBpdCB0byBndWVzdHMK
ICAgICAgICAgICogdW5jb25kaXRpb25hbGx5LCBhbHRob3VnaCBsaW1pdCBp
dCB0byBJbnRlbCBzeXN0ZW1zIGFzIGl0IGlzIGhpZ2hseQpAQCAtNDY0LDYg
KzQ2NSwyMiBAQCBzdGF0aWMgdm9pZCBfX2luaXQgZ3Vlc3RfY29tbW9uX21h
eF9mZWF0dXJlX2FkanVzdG1lbnRzKHVpbnQzMl90ICpmcykKICAgICAgICAg
ICAgICBib290X2NwdV9kYXRhLng4Nl9tb2RlbCA9PSBJTlRFTF9GQU02X1NL
WUxBS0VfWCAmJgogICAgICAgICAgICAgIHJhd19jcHVfcG9saWN5LmZlYXQu
Y2x3YiApCiAgICAgICAgICAgICBfX3NldF9iaXQoWDg2X0ZFQVRVUkVfQ0xX
QiwgZnMpOworCisgICAgICAgIC8qCisgICAgICAgICAqIFRvIG1pdGlnYXRl
IE5hdGl2ZS1CSEksIG9uZSBvcHRpb24gaXMgdG8gdXNlIGEgVFNYIEFib3J0
IG9uIGNhcGFibGUKKyAgICAgICAgICogc3lzdGVtcy4gIFRoaXMgaXMgc2Fm
ZSBldmVuIGlmIFJUTSBoYXMgYmVlbiBkaXNhYmxlZCBmb3Igb3RoZXIKKyAg
ICAgICAgICogcmVhc29ucyB2aWEgTVNSX1RTWF97Q1RSTCxGT1JDRV9BQk9S
VH0uICBIb3dldmVyLCBhIGd1ZXN0IGtlcm5lbAorICAgICAgICAgKiBkb2Vz
bid0IGdldCB0byBrbm93IHRoaXMgdHlwZSBvZiBpbmZvcm1hdGlvbi4KKyAg
ICAgICAgICoKKyAgICAgICAgICogVGhlcmVmb3JlIHRoZSBtZWFuaW5nIG9m
IFJUTV9BTFdBWVNfQUJPUlQgaGFzIGJlZW4gYWRqdXN0ZWQsIHRvCisgICAg
ICAgICAqIGluc3RlYWQgbWVhbiAiWEJFR0lOIHdvbid0IGZhdWx0Ii4gIFRo
aXMgaXMgZW5vdWdoIGZvciBhIGd1ZXN0CisgICAgICAgICAqIGtlcm5lbCB0
byBtYWtlIGFuIGluZm9ybWVkIGNob2ljZSBXUlQgbWl0aWdhdGluZyBOYXRp
dmUtQkhJLgorICAgICAgICAgKgorICAgICAgICAgKiBJZiBSVE0tY2FwYWJs
ZSwgd2UgY2FuIHJ1biBhIFZNIHdoaWNoIGhhcyBzZWVuIFJUTV9BTFdBWVNf
QUJPUlQuCisgICAgICAgICAqLworICAgICAgICBpZiAoIHRlc3RfYml0KFg4
Nl9GRUFUVVJFX1JUTSwgZnMpICkKKyAgICAgICAgICAgIF9fc2V0X2JpdChY
ODZfRkVBVFVSRV9SVE1fQUxXQVlTX0FCT1JULCBmcyk7CisgICAgICAgIGJy
ZWFrOwogICAgIH0KIAogICAgIC8qCkBAIC00NzUsMjcgKzQ5MiwxMyBAQCBz
dGF0aWMgdm9pZCBfX2luaXQgZ3Vlc3RfY29tbW9uX21heF9mZWF0dXJlX2Fk
anVzdG1lbnRzKHVpbnQzMl90ICpmcykKICAgICAgKi8KICAgICBfX3NldF9i
aXQoWDg2X0ZFQVRVUkVfSFRULCBmcyk7CiAgICAgX19zZXRfYml0KFg4Nl9G
RUFUVVJFX0NNUF9MRUdBQ1ksIGZzKTsKLQotICAgIC8qCi0gICAgICogVG8g
bWl0aWdhdGUgTmF0aXZlLUJISSwgb25lIG9wdGlvbiBpcyB0byB1c2UgYSBU
U1ggQWJvcnQgb24gY2FwYWJsZQotICAgICAqIHN5c3RlbXMuICBUaGlzIGlz
IHNhZmUgZXZlbiBpZiBSVE0gaGFzIGJlZW4gZGlzYWJsZWQgZm9yIG90aGVy
IHJlYXNvbnMKLSAgICAgKiB2aWEgTVNSX1RTWF97Q1RSTCxGT1JDRV9BQk9S
VH0uICBIb3dldmVyLCBhIGd1ZXN0IGtlcm5lbCBkb2Vzbid0IGdldCB0bwot
ICAgICAqIGtub3cgdGhpcyB0eXBlIG9mIGluZm9ybWF0aW9uLgotICAgICAq
Ci0gICAgICogVGhlcmVmb3JlIHRoZSBtZWFuaW5nIG9mIFJUTV9BTFdBWVNf
QUJPUlQgaGFzIGJlZW4gYWRqdXN0ZWQsIHRvIGluc3RlYWQKLSAgICAgKiBt
ZWFuICJYQkVHSU4gd29uJ3QgZmF1bHQiLiAgVGhpcyBpcyBlbm91Z2ggZm9y
IGEgZ3Vlc3Qga2VybmVsIHRvIG1ha2UKLSAgICAgKiBhbiBpbmZvcm1lZCBj
aG9pY2UgV1JUIG1pdGlnYXRpbmcgTmF0aXZlLUJISS4KLSAgICAgKgotICAg
ICAqIElmIFJUTS1jYXBhYmxlLCB3ZSBjYW4gcnVuIGEgVk0gd2hpY2ggaGFz
IHNlZW4gUlRNX0FMV0FZU19BQk9SVC4KLSAgICAgKi8KLSAgICBpZiAoIHRl
c3RfYml0KFg4Nl9GRUFUVVJFX1JUTSwgZnMpICkKLSAgICAgICAgX19zZXRf
Yml0KFg4Nl9GRUFUVVJFX1JUTV9BTFdBWVNfQUJPUlQsIGZzKTsKIH0KIAog
c3RhdGljIHZvaWQgX19pbml0IGd1ZXN0X2NvbW1vbl9kZWZhdWx0X2ZlYXR1
cmVfYWRqdXN0bWVudHModWludDMyX3QgKmZzKQogewotICAgIGlmICggYm9v
dF9jcHVfZGF0YS54ODZfdmVuZG9yID09IFg4Nl9WRU5ET1JfSU5URUwgKQor
ICAgIHN3aXRjaCAoIGJvb3RfY3B1X2RhdGEueDg2X3ZlbmRvciApCiAgICAg
eworICAgIGNhc2UgWDg2X1ZFTkRPUl9JTlRFTDoKICAgICAgICAgLyoKICAg
ICAgICAgICogSXZ5QnJpZGdlIGNsaWVudCBwYXJ0cyBzdWZmZXIgZnJvbSBs
ZWFrYWdlIG9mIFJEUkFORCBkYXRhIGR1ZSB0byBTUkJEUwogICAgICAgICAg
KiAoWFNBLTMyMCAvIENWRS0yMDIwLTA1NDMpLCBhbmQgd29uJ3QgYmUgcmVj
ZWl2aW5nIG1pY3JvY29kZSB0bwpAQCAtNTM5LDYgKzU0MiwyMyBAQCBzdGF0
aWMgdm9pZCBfX2luaXQgZ3Vlc3RfY29tbW9uX2RlZmF1bHRfZmVhdHVyZV9h
ZGp1c3RtZW50cyh1aW50MzJfdCAqZnMpCiAgICAgICAgICAgICAgYm9vdF9j
cHVfZGF0YS54ODZfbW9kZWwgPT0gSU5URUxfRkFNNl9TS1lMQUtFX1ggJiYK
ICAgICAgICAgICAgICByYXdfY3B1X3BvbGljeS5mZWF0LmNsd2IgKQogICAg
ICAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVfQ0xXQiwgZnMpOwor
CisgICAgICAgIC8qCisgICAgICAgICAqIE9uIGNlcnRhaW4gaGFyZHdhcmUs
IHNwZWN1bGF0aXZlIG9yIGVycmF0YSB3b3JrYXJvdW5kcyBjYW4gcmVzdWx0
CisgICAgICAgICAqIGluIFRTWCBiZWluZyBwbGFjZWQgaW4gImZvcmNlLWFi
b3J0IiBtb2RlLCB3aGVyZSBpdCBkb2Vzbid0CisgICAgICAgICAqIGFjdHVh
bGx5IGZ1bmN0aW9uIGFzIGV4cGVjdGVkLCBidXQgaXMgdGVjaG5pY2FsbHkg
Y29tcGF0aWJsZSB3aXRoCisgICAgICAgICAqIHRoZSBJU0EuCisgICAgICAg
ICAqCisgICAgICAgICAqIERvIG5vdCBhZHZlcnRpc2UgUlRNIHRvIGd1ZXN0
cyBieSBkZWZhdWx0IGlmIGl0IHdvbid0IGFjdHVhbGx5CisgICAgICAgICAq
IHdvcmsuICBJbnN0ZWFkLCBhZHZlcnRpc2UgUlRNX0FMV0FZU19BQk9SVCBp
bmRpY2F0aW5nIHRoYXQgVFNYCisgICAgICAgICAqIEFib3J0cyBhcmUgc2Fm
ZSB0byB1c2UsIGUuZy4gZm9yIG1pdGlnYXRpbmcgTmF0aXZlLUJISS4KKyAg
ICAgICAgICovCisgICAgICAgIGlmICggcnRtX2Rpc2FibGVkICkKKyAgICAg
ICAgeworICAgICAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVfUlRN
LCBmcyk7CisgICAgICAgICAgICBfX3NldF9iaXQoWDg2X0ZFQVRVUkVfUlRN
X0FMV0FZU19BQk9SVCwgZnMpOworICAgICAgICB9CisgICAgICAgIGJyZWFr
OwogICAgIH0KIAogICAgIC8qCkBAIC01NTAsMjEgKzU3MCw2IEBAIHN0YXRp
YyB2b2lkIF9faW5pdCBndWVzdF9jb21tb25fZGVmYXVsdF9mZWF0dXJlX2Fk
anVzdG1lbnRzKHVpbnQzMl90ICpmcykKIAogICAgIGlmICggIWNwdV9oYXNf
Y21wX2xlZ2FjeSApCiAgICAgICAgIF9fY2xlYXJfYml0KFg4Nl9GRUFUVVJF
X0NNUF9MRUdBQ1ksIGZzKTsKLQotICAgIC8qCi0gICAgICogT24gY2VydGFp
biBoYXJkd2FyZSwgc3BlY3VsYXRpdmUgb3IgZXJyYXRhIHdvcmthcm91bmRz
IGNhbiByZXN1bHQgaW4KLSAgICAgKiBUU1ggYmVpbmcgcGxhY2VkIGluICJm
b3JjZS1hYm9ydCIgbW9kZSwgd2hlcmUgaXQgZG9lc24ndCBhY3R1YWxseQot
ICAgICAqIGZ1bmN0aW9uIGFzIGV4cGVjdGVkLCBidXQgaXMgdGVjaG5pY2Fs
bHkgY29tcGF0aWJsZSB3aXRoIHRoZSBJU0EuCi0gICAgICoKLSAgICAgKiBE
byBub3QgYWR2ZXJ0aXNlIFJUTSB0byBndWVzdHMgYnkgZGVmYXVsdCBpZiBp
dCB3b24ndCBhY3R1YWxseSB3b3JrLgotICAgICAqIEluc3RlYWQsIGFkdmVy
dGlzZSBSVE1fQUxXQVlTX0FCT1JUIGluZGljYXRpbmcgdGhhdCBUU1ggQWJv
cnRzIGFyZSBzYWZlCi0gICAgICogdG8gdXNlLCBlLmcuIGZvciBtaXRpZ2F0
aW5nIE5hdGl2ZS1CSEkuCi0gICAgICovCi0gICAgaWYgKCBydG1fZGlzYWJs
ZWQgKQotICAgIHsKLSAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVf
UlRNLCBmcyk7Ci0gICAgICAgIF9fc2V0X2JpdChYODZfRkVBVFVSRV9SVE1f
QUxXQVlTX0FCT1JULCBmcyk7Ci0gICAgfQogfQogCiBzdGF0aWMgdm9pZCBf
X2luaXQgZ3Vlc3RfY29tbW9uX2ZlYXR1cmVfYWRqdXN0bWVudHModWludDMy
X3QgKmZzKQo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-02.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-02.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxMCBTZXAgMjAyNCAxOTo1NToxNSArMDEwMApTdWJq
ZWN0OiB4ODYvY3B1LXBvbGljeTogSW5mcmFzdHJ1Y3R1cmUgZm9yIENQVUlE
IGxlYWYgMHg4MDAwMDAyMS5lY3gKClNpZ25lZC1vZmYtYnk6IEFuZHJldyBD
b29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5
OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CgpkaWZmIC0tZ2l0
IGEvdG9vbHMvbGlicy9saWdodC9saWJ4bF9jcHVpZC5jIGIvdG9vbHMvbGli
cy9saWdodC9saWJ4bF9jcHVpZC5jCmluZGV4IDA2M2ZlODZlYjcyZi4uZjcz
OGUxN2IxOWU0IDEwMDY0NAotLS0gYS90b29scy9saWJzL2xpZ2h0L2xpYnhs
X2NwdWlkLmMKKysrIGIvdG9vbHMvbGlicy9saWdodC9saWJ4bF9jcHVpZC5j
CkBAIC0zNDIsNiArMzQyLDcgQEAgaW50IGxpYnhsX2NwdWlkX3BhcnNlX2Nv
bmZpZyhsaWJ4bF9jcHVpZF9wb2xpY3lfbGlzdCAqcG9saWN5LCBjb25zdCBj
aGFyKiBzdHIpCiAgICAgICAgIENQVUlEX0VOVFJZKDB4MDAwMDAwMDcsICAx
LCBDUFVJRF9SRUdfRURYKSwKICAgICAgICAgTVNSX0VOVFJZKDB4MTBhLCBD
UFVJRF9SRUdfRUFYKSwKICAgICAgICAgTVNSX0VOVFJZKDB4MTBhLCBDUFVJ
RF9SRUdfRURYKSwKKyAgICAgICAgQ1BVSURfRU5UUlkoMHg4MDAwMDAyMSwg
TkEsIENQVUlEX1JFR19FQ1gpLAogI3VuZGVmIE1TUl9FTlRSWQogI3VuZGVm
IENQVUlEX0VOVFJZCiAgICAgfTsKZGlmZiAtLWdpdCBhL3Rvb2xzL21pc2Mv
eGVuLWNwdWlkLmMgYi90b29scy9taXNjL3hlbi1jcHVpZC5jCmluZGV4IDRj
NDU5MzUyOGRmZS4uOGUzNmI4ZTY5NjAwIDEwMDY0NAotLS0gYS90b29scy9t
aXNjL3hlbi1jcHVpZC5jCisrKyBiL3Rvb2xzL21pc2MveGVuLWNwdWlkLmMK
QEAgLTM3LDYgKzM3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB7CiAgICAg
eyAiQ1BVSUQgMHgwMDAwMDAwNzoxLmVkeCIsICAgICAiN2QxIiB9LAogICAg
IHsgIk1TUl9BUkNIX0NBUFMubG8iLCAgICAgICAgICJtMTBBbCIgfSwKICAg
ICB7ICJNU1JfQVJDSF9DQVBTLmhpIiwgICAgICAgICAibTEwQWgiIH0sCisg
ICAgeyAiQ1BVSUQgMHg4MDAwMDAyMS5lY3giLCAgICAgICJlMjFjIiB9LAog
fTsKIAogI2RlZmluZSBDT0xfQUxJR04gIjI0IgpkaWZmIC0tZ2l0IGEveGVu
L2FyY2gveDg2L2NwdS1wb2xpY3kuYyBiL3hlbi9hcmNoL3g4Ni9jcHUtcG9s
aWN5LmMKaW5kZXggNDdlZTFmZjQ3NDYwLi45ZDFmZjYyNjhkNzkgMTAwNjQ0
Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUtcG9saWN5LmMKKysrIGIveGVuL2Fy
Y2gveDg2L2NwdS1wb2xpY3kuYwpAQCAtMzMwLDcgKzMzMCw2IEBAIHN0YXRp
YyB2b2lkIHJlY2FsY3VsYXRlX21pc2Moc3RydWN0IGNwdV9wb2xpY3kgKnAp
CiAgICAgICAgIHAtPmV4dGQucmF3WzB4MWZdID0gRU1QVFlfTEVBRjsgLyog
U0VWICovCiAgICAgICAgIHAtPmV4dGQucmF3WzB4MjBdID0gRU1QVFlfTEVB
RjsgLyogUGxhdGZvcm0gUW9TICovCiAgICAgICAgIHAtPmV4dGQucmF3WzB4
MjFdLmIgPSAwOwotICAgICAgICBwLT5leHRkLnJhd1sweDIxXS5jID0gMDsK
ICAgICAgICAgcC0+ZXh0ZC5yYXdbMHgyMV0uZCA9IDA7CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9jcHUvY29t
bW9uLmMgYi94ZW4vYXJjaC94ODYvY3B1L2NvbW1vbi5jCmluZGV4IGI5MzRj
ZTdjYTQ4Ny4uNzczNjRmZDcyOGRiIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94
ODYvY3B1L2NvbW1vbi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9jcHUvY29tbW9u
LmMKQEAgLTQ4MCw3ICs0ODAsOSBAQCBzdGF0aWMgdm9pZCBnZW5lcmljX2lk
ZW50aWZ5KHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKIAlpZiAoYy0+ZXh0ZW5k
ZWRfY3B1aWRfbGV2ZWwgPj0gMHg4MDAwMDAwOCkKIAkJYy0+eDg2X2NhcGFi
aWxpdHlbRkVBVFVSRVNFVF9lOGJdID0gY3B1aWRfZWJ4KDB4ODAwMDAwMDgp
OwogCWlmIChjLT5leHRlbmRlZF9jcHVpZF9sZXZlbCA+PSAweDgwMDAwMDIx
KQotCQljLT54ODZfY2FwYWJpbGl0eVtGRUFUVVJFU0VUX2UyMWFdID0gY3B1
aWRfZWF4KDB4ODAwMDAwMjEpOworCQljcHVpZCgweDgwMDAwMDIxLAorCQkg
ICAgICAmYy0+eDg2X2NhcGFiaWxpdHlbRkVBVFVSRVNFVF9lMjFhXSwgJnRt
cCwKKwkJICAgICAgJmMtPng4Nl9jYXBhYmlsaXR5W0ZFQVRVUkVTRVRfZTIx
Y10sICZ0bXApOwogCiAJLyogSW50ZWwtZGVmaW5lZCBmbGFnczogbGV2ZWwg
MHgwMDAwMDAwNyAqLwogCWlmIChjLT5jcHVpZF9sZXZlbCA+PSA3KSB7CmRp
ZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC14ODYvY3B1ZmVh
dHVyZXNldC5oIGIveGVuL2luY2x1ZGUvcHVibGljL2FyY2gteDg2L2NwdWZl
YXR1cmVzZXQuaAppbmRleCAwNDQyMzBiZmU4NTQuLjQ4MGQ1ZjU4Y2UwOSAx
MDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2FyY2gteDg2L2NwdWZl
YXR1cmVzZXQuaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC14ODYv
Y3B1ZmVhdHVyZXNldC5oCkBAIC0zOTUsNiArMzk1LDggQEAgWEVOX0NQVUZF
QVRVUkUoTU9OX1VNT05fTUlURywgICAgICAxNiozMiszMCkgLyogICBNQ1Vf
T1BUX0NUUkwuTU9OX1VNT05fTUlURyAqLwogWEVOX0NQVUZFQVRVUkUoUEJf
T1BUX0NUUkwsICAgICAgICAxNiozMiszMikgLyogICBNU1JfUEJfT1BUX0NU
UkwuSUJQQl9BTFQgKi8KIFhFTl9DUFVGRUFUVVJFKElUU19OTywgICAgICAg
ICAgICAgMTYqMzIrNjIpIC8qIUEgTm8gSW5kaXJlY3QgVGFyZ2V0IFNlbGVj
dGlvbiAqLwogCisvKiBBTUQtZGVmaW5lZCBDUFUgZmVhdHVyZXMsIENQVUlE
IGxldmVsIDB4ODAwMDAwMjEuZWN4LCB3b3JkIDE4ICovCisKICNlbmRpZiAv
KiBYRU5fQ1BVRkVBVFVSRSAqLwogCiAvKiBDbGVhbiB1cCBmcm9tIGEgZGVm
YXVsdCBpbmNsdWRlLiAgQ2xvc2UgdGhlIGVudW0gKGZvciBDKS4gKi8KZGlm
ZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9saWIveDg2L2NwdS1wb2xpY3ku
aCBiL3hlbi9pbmNsdWRlL3hlbi9saWIveDg2L2NwdS1wb2xpY3kuaAppbmRl
eCBmMDhmMzBhZmVjYTMuLmRkMjA0YTgyNWIwNyAxMDA2NDQKLS0tIGEveGVu
L2luY2x1ZGUveGVuL2xpYi94ODYvY3B1LXBvbGljeS5oCisrKyBiL3hlbi9p
bmNsdWRlL3hlbi9saWIveDg2L2NwdS1wb2xpY3kuaApAQCAtMjIsNiArMjIs
NyBAQAogI2RlZmluZSBGRUFUVVJFU0VUXzdkMSAgICAgICAxNSAvKiAweDAw
MDAwMDA3OjEuZWR4ICAgICovCiAjZGVmaW5lIEZFQVRVUkVTRVRfbTEwQWwg
ICAgIDE2IC8qIDB4MDAwMDAxMGEuZWF4ICAgICAgKi8KICNkZWZpbmUgRkVB
VFVSRVNFVF9tMTBBaCAgICAgMTcgLyogMHgwMDAwMDEwYS5lZHggICAgICAq
LworI2RlZmluZSBGRUFUVVJFU0VUX2UyMWMgICAgICAxOCAvKiAweDgwMDAw
MDIxLmVjeCAgICAgICovCiAKIHN0cnVjdCBjcHVpZF9sZWFmCiB7CkBAIC0z
MjgsNyArMzI5LDExIEBAIHN0cnVjdCBjcHVfcG9saWN5CiAgICAgICAgICAg
ICB1aW50MTZfdCB1Y29kZV9zaXplOyAvKiBVbml0cyBvZiAxNiBieXRlcyAq
LwogICAgICAgICAgICAgdWludDhfdCAgcmFwX3NpemU7ICAgLyogVW5pdHMg
b2YgOCBlbnRyaWVzICovCiAgICAgICAgICAgICB1aW50OF90ICA6ODsKLSAg
ICAgICAgICAgIHVpbnQzMl90IC8qIGMgKi86MzIsIC8qIGQgKi86MzI7Cisg
ICAgICAgICAgICB1bmlvbiB7CisgICAgICAgICAgICAgICAgdWludDMyX3Qg
ZTIxYzsKKyAgICAgICAgICAgICAgICBzdHJ1Y3QgeyBERUNMX0JJVEZJRUxE
KGUyMWMpOyB9OworICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIHVpbnQz
Ml90IC8qIGQgKi86MzI7CiAgICAgICAgIH07CiAgICAgfSBleHRkOwogCmRp
ZmYgLS1naXQgYS94ZW4vbGliL3g4Ni9jcHVpZC5jIGIveGVuL2xpYi94ODYv
Y3B1aWQuYwppbmRleCBlYjc2OThkYzczMjUuLjYyOThkMDUxZjJhNiAxMDA2
NDQKLS0tIGEveGVuL2xpYi94ODYvY3B1aWQuYworKysgYi94ZW4vbGliL3g4
Ni9jcHVpZC5jCkBAIC04MSw2ICs4MSw3IEBAIHZvaWQgeDg2X2NwdV9wb2xp
Y3lfdG9fZmVhdHVyZXNldCgKICAgICBmc1tGRUFUVVJFU0VUXzdkMV0gICAg
ICAgPSBwLT5mZWF0Ll83ZDE7CiAgICAgZnNbRkVBVFVSRVNFVF9tMTBBbF0g
ICAgID0gcC0+YXJjaF9jYXBzLmxvOwogICAgIGZzW0ZFQVRVUkVTRVRfbTEw
QWhdICAgICA9IHAtPmFyY2hfY2Fwcy5oaTsKKyAgICBmc1tGRUFUVVJFU0VU
X2UyMWNdICAgICAgPSBwLT5leHRkLmUyMWM7CiB9CiAKIHZvaWQgeDg2X2Nw
dV9mZWF0dXJlc2V0X3RvX3BvbGljeSgKQEAgLTEwNCw2ICsxMDUsNyBAQCB2
b2lkIHg4Nl9jcHVfZmVhdHVyZXNldF90b19wb2xpY3koCiAgICAgcC0+ZmVh
dC5fN2QxICAgICAgICAgICAgID0gZnNbRkVBVFVSRVNFVF83ZDFdOwogICAg
IHAtPmFyY2hfY2Fwcy5sbyAgICAgICAgICA9IGZzW0ZFQVRVUkVTRVRfbTEw
QWxdOwogICAgIHAtPmFyY2hfY2Fwcy5oaSAgICAgICAgICA9IGZzW0ZFQVRV
UkVTRVRfbTEwQWhdOworICAgIHAtPmV4dGQuZTIxYyAgICAgICAgICAgICA9
IGZzW0ZFQVRVUkVTRVRfZTIxY107CiB9CiAKIHZvaWQgeDg2X2NwdV9wb2xp
Y3lfcmVjYWxjX3N5bnRoKHN0cnVjdCBjcHVfcG9saWN5ICpwKQo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-03.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-03.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogRnJpLCAyNyBTZXAgMjAyNCAxMToyODozOSArMDEwMApTdWJq
ZWN0OiB4ODYvdWNvZGU6IERpZ2VzdHMgZm9yIFRTQSBtaWNyb2NvZGUKCkFN
RCBhcmUgcmVsZWFzaW5nIG1pY3JvY29kZSBmb3IgVFNBLCBzbyBleHRlbmQg
dGhlIGtub3duLXByb3ZlbmFuY2UgbGlzdCB3aXRoCnRoZWlyIGhhc2hlcy4g
IFRoZXNlIHdlcmUgcHJvZHVjZWQgYmVmb3JlIHRoZSByZW1lZGlhdGlvbiBv
ZiB0aGUgbWljcm9jb2RlCnNpZ25hdHVyZSBpc3N1ZXMgKHRoZSBlbnRyeXNp
Z24gdnVsbmVyYWJpbGl0eSksIHNvIGNhbiBiZSBPUy1sb2FkZWQgb24Kb3V0
LW9mLWRhdGUgZmlybXdhcmUuCgpJbmNsdWRlIGFuIG9mZi1ieS1kZWZhdWx0
IGNoZWNrIGZvciB0aGUgc29ydGVkLW5lc3Mgb2YgcGF0Y2hfZGlnZXN0c1td
LiAgSXQncwpub3Qgd29ydGggcnVubmluZyBnZW5lcmFsbHkgdW5kZXIgU0VM
Rl9URVNUUywgYnV0IGlzIHVzZWZ1bCB3aGVuIGVkaXRpbmcgdGhlCmRpZ2Vz
dCBsaXN0LgoKVGhpcyBpcyBwYXJ0IG9mIFhTQS00NzEgLyBDVkUtMjAyNC0z
NjM1MCAvIENWRS0yMDI0LTM2MzU3LgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3
IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KQWNrZWQtYnk6
IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KCmRpZmYgLS1naXQg
YS94ZW4vYXJjaC94ODYvY3B1L21pY3JvY29kZS9hbWQtcGF0Y2gtZGlnZXN0
cy5jIGIveGVuL2FyY2gveDg2L2NwdS9taWNyb2NvZGUvYW1kLXBhdGNoLWRp
Z2VzdHMuYwppbmRleCBkMzI3NjEyMjY3MTIuLmQyYzRlMDE3OGExZSAxMDA2
NDQKLS0tIGEveGVuL2FyY2gveDg2L2NwdS9taWNyb2NvZGUvYW1kLXBhdGNo
LWRpZ2VzdHMuYworKysgYi94ZW4vYXJjaC94ODYvY3B1L21pY3JvY29kZS9h
bWQtcGF0Y2gtZGlnZXN0cy5jCkBAIC04MCw2ICs4MCwxNSBAQAogICAgICAg
ICAweDBkLCAweDViLCAweDY1LCAweDM0LCAweDY5LCAweGIyLCAweDYyLCAw
eDIxLAogICAgIH0sCiB9LAoreworICAgIC5wYXRjaF9pZCA9IDB4MGEwMDEx
ZDcsCisgICAgLmRpZ2VzdCA9IHsKKyAgICAgICAgMHgzNSwgMHgwNywgMHhj
ZCwgMHg0MCwgMHg5NCwgMHhiYywgMHg4MSwgMHg2YiwKKyAgICAgICAgMHhm
YywgMHg2MSwgMHg1NiwgMHgxYSwgMHhlMiwgMHhkYiwgMHg5NiwgMHgxMiwK
KyAgICAgICAgMHgxYywgMHgxYywgMHgzMSwgMHhiMSwgMHgwMiwgMHg2Ziwg
MHhlNSwgMHhkMiwKKyAgICAgICAgMHhmZSwgMHgxYiwgMHgwNCwgMHgwMywg
MHgyYywgMHg4ZiwgMHg0YywgMHgzNiwKKyAgICB9LAorfSwKIHsKICAgICAu
cGF0Y2hfaWQgPSAweDBhMDAxMjM4LAogICAgIC5kaWdlc3QgPSB7CkBAIC04
OSw2ICs5OCwxNSBAQAogICAgICAgICAweGMwLCAweGNkLCAweDMzLCAweGYy
LCAweDhkLCAweGY5LCAweGVmLCAweDU5LAogICAgIH0sCiB9LAoreworICAg
IC5wYXRjaF9pZCA9IDB4MGEwMDEyM2IsCisgICAgLmRpZ2VzdCA9IHsKKyAg
ICAgICAgMHhlZiwgMHhhMSwgMHgxZSwgMHg3MSwgMHhmMSwgMHhjMywgMHgy
YywgMHhlMiwKKyAgICAgICAgMHhjMywgMHhlZiwgMHg2OSwgMHg0MSwgMHg3
YSwgMHg1NCwgMHhjYSwgMHhjMywKKyAgICAgICAgMHg4ZiwgMHg2MiwgMHg4
NCwgMHhlZSwgMHhjMiwgMHgzOSwgMHhkOSwgMHgyOCwKKyAgICAgICAgMHg5
NSwgMHhhNywgMHgxMiwgMHg0OSwgMHgxZSwgMHgzMCwgMHg3MSwgMHg3MiwK
KyAgICB9LAorfSwKIHsKICAgICAucGF0Y2hfaWQgPSAweDBhMDA4MjBjLAog
ICAgIC5kaWdlc3QgPSB7CkBAIC05OCw2ICsxMTYsMTUgQEAKICAgICAgICAg
MHhlMSwgMHgzYiwgMHg4ZCwgMHhiMiwgMHhmOCwgMHgyMiwgMHgwMywgMHhl
MiwKICAgICB9LAogfSwKK3sKKyAgICAucGF0Y2hfaWQgPSAweDBhMDA4MjBk
LAorICAgIC5kaWdlc3QgPSB7CisgICAgICAgIDB4ZjksIDB4MmEsIDB4YzAs
IDB4ZjQsIDB4OWUsIDB4YTQsIDB4ODcsIDB4YTQsCisgICAgICAgIDB4N2Qs
IDB4ODcsIDB4MDAsIDB4ZmQsIDB4YWIsIDB4ZGEsIDB4MTksIDB4Y2EsCisg
ICAgICAgIDB4MjYsIDB4NTEsIDB4MzIsIDB4YzEsIDB4NTcsIDB4OTEsIDB4
ZGYsIDB4YzEsCisgICAgICAgIDB4MDUsIDB4ZWIsIDB4MDEsIDB4N2MsIDB4
NWEsIDB4OTUsIDB4MjEsIDB4YjcsCisgICAgfSwKK30sCiB7CiAgICAgLnBh
dGNoX2lkID0gMHgwYTEwMTE0OCwKICAgICAuZGlnZXN0ID0gewpAQCAtMTA3
LDYgKzEzNCwxNSBAQAogICAgICAgICAweGYxLCAweDVlLCAweGIwLCAweGRl
LCAweGI0LCAweDk4LCAweGFlLCAweGM0LAogICAgIH0sCiB9LAoreworICAg
IC5wYXRjaF9pZCA9IDB4MGExMDExNGMsCisgICAgLmRpZ2VzdCA9IHsKKyAg
ICAgICAgMHg5ZSwgMHhiNiwgMHhhMiwgMHhkOSwgMHg4NywgMHgzOCwgMHhj
NSwgMHg2NCwKKyAgICAgICAgMHhkOCwgMHg4OCwgMHhmYSwgMHg3OCwgMHg5
OCwgMHhmOSwgMHg2ZiwgMHg3NCwKKyAgICAgICAgMHgzOSwgMHg5MCwgMHgx
YiwgMHhhNSwgMHhjZiwgMHg1ZSwgMHhiNCwgMHgyYSwKKyAgICAgICAgMHgw
MiwgMHhmZiwgMHhkNCwgMHg4YywgMHg3MSwgMHg4YiwgMHhlMiwgMHhjMCwK
KyAgICB9LAorfSwKIHsKICAgICAucGF0Y2hfaWQgPSAweDBhMTAxMjQ4LAog
ICAgIC5kaWdlc3QgPSB7CkBAIC0xMTYsNiArMTUyLDE1IEBACiAgICAgICAg
IDB4MWIsIDB4N2QsIDB4NjQsIDB4OWQsIDB4NGIsIDB4NTMsIDB4MTMsIDB4
NzUsCiAgICAgfSwKIH0sCit7CisgICAgLnBhdGNoX2lkID0gMHgwYTEwMTI0
YywKKyAgICAuZGlnZXN0ID0geworICAgICAgICAweDI5LCAweGVhLCAweGYx
LCAweDJjLCAweGIyLCAweGU0LCAweGVmLCAweDkwLAorICAgICAgICAweGE0
LCAweGNkLCAweDFkLCAweDg2LCAweDk3LCAweDE3LCAweDYxLCAweDQ2LAor
ICAgICAgICAweGZjLCAweDIyLCAweGNiLCAweDU3LCAweDc1LCAweDE5LCAw
eGM4LCAweGNjLAorICAgICAgICAweDBjLCAweGY1LCAweGJjLCAweGFjLCAw
eDgxLCAweDlkLCAweDlhLCAweGQyLAorICAgIH0sCit9LAogewogICAgIC5w
YXRjaF9pZCA9IDB4MGExMDgxMDgsCiAgICAgLmRpZ2VzdCA9IHsKQEAgLTEy
NSw2ICsxNzAsMTUgQEAKICAgICAgICAgMHgyOCwgMHgxZSwgMHg5YywgMHg1
OSwgMHg2OSwgMHg5OSwgMHg0ZCwgMHgxNiwKICAgICB9LAogfSwKK3sKKyAg
ICAucGF0Y2hfaWQgPSAweDBhMTA4MTA5LAorICAgIC5kaWdlc3QgPSB7Cisg
ICAgICAgIDB4ODUsIDB4YjQsIDB4YmQsIDB4N2MsIDB4NDksIDB4YTcsIDB4
YmQsIDB4ZmEsCisgICAgICAgIDB4NDksIDB4MzYsIDB4ODAsIDB4ODEsIDB4
YzUsIDB4YjcsIDB4MzksIDB4MWIsCisgICAgICAgIDB4OWEsIDB4YWEsIDB4
NTAsIDB4ZGUsIDB4OWIsIDB4ZTksIDB4MzIsIDB4MzUsCisgICAgICAgIDB4
NDIsIDB4N2UsIDB4NTEsIDB4NGYsIDB4NTIsIDB4MmMsIDB4MjgsIDB4NTks
CisgICAgfSwKK30sCiB7CiAgICAgLnBhdGNoX2lkID0gMHgwYTIwMTAyZCwK
ICAgICAuZGlnZXN0ID0gewpAQCAtMTM0LDYgKzE4OCwxNSBAQAogICAgICAg
ICAweDhjLCAweGU5LCAweDE5LCAweDNlLCAweGNjLCAweDNmLCAweDdiLCAw
eGI0LAogICAgIH0sCiB9LAoreworICAgIC5wYXRjaF9pZCA9IDB4MGEyMDEw
MmUsCisgICAgLmRpZ2VzdCA9IHsKKyAgICAgICAgMHhiZSwgMHgxZiwgMHgz
MiwgMHgwNCwgMHgwZCwgMHgzYywgMHg5YywgMHhkZCwKKyAgICAgICAgMHhl
MSwgMHhhNCwgMHhiZiwgMHg3NiwgMHgzYSwgMHhlYywgMHhjMiwgMHhmNiwK
KyAgICAgICAgMHgxMSwgMHgwMCwgMHhhNywgMHhhZiwgMHgwZiwgMHhlNSwg
MHgwMiwgMHhjNSwKKyAgICAgICAgMHg1NCwgMHgzYSwgMHgxZiwgMHg4Yywg
MHgxNiwgMHhiNSwgMHhmZiwgMHhiZSwKKyAgICB9LAorfSwKIHsKICAgICAu
cGF0Y2hfaWQgPSAweDBhMjAxMjEwLAogICAgIC5kaWdlc3QgPSB7CkBAIC0x
NDMsNiArMjA2LDE1IEBACiAgICAgICAgIDB4ZjcsIDB4NTUsIDB4ZjAsIDB4
MTMsIDB4YmIsIDB4MjIsIDB4ZjYsIDB4NDEsCiAgICAgfSwKIH0sCit7Cisg
ICAgLnBhdGNoX2lkID0gMHgwYTIwMTIxMSwKKyAgICAuZGlnZXN0ID0gewor
ICAgICAgICAweDY5LCAweGExLCAweDE3LCAweGVjLCAweGQwLCAweGY2LCAw
eDZjLCAweDk1LAorICAgICAgICAweGUyLCAweDFlLCAweGM1LCAweDU5LCAw
eDFhLCAweDUyLCAweDBhLCAweDI3LAorICAgICAgICAweGM0LCAweGVkLCAw
eGQ1LCAweDU5LCAweDFmLCAweGJmLCAweDAwLCAweGZmLAorICAgICAgICAw
eDA4LCAweDg4LCAweGI1LCAweGUxLCAweDEyLCAweGI2LCAweGNjLCAweDI3
LAorICAgIH0sCit9LAogewogICAgIC5wYXRjaF9pZCA9IDB4MGE0MDQxMDcs
CiAgICAgLmRpZ2VzdCA9IHsKQEAgLTE1Miw2ICsyMjQsMTUgQEAKICAgICAg
ICAgMHgxMywgMHhiYywgMHhjNSwgMHgyNSwgMHhlNCwgMHhjNSwgMHhjMywg
MHg5OSwKICAgICB9LAogfSwKK3sKKyAgICAucGF0Y2hfaWQgPSAweDBhNDA0
MTA4LAorICAgIC5kaWdlc3QgPSB7CisgICAgICAgIDB4NjksIDB4NjcsIDB4
NDMsIDB4MDYsIDB4ZjgsIDB4MGMsIDB4NjIsIDB4ZGMsCisgICAgICAgIDB4
YTQsIDB4MjEsIDB4MzAsIDB4NGYsIDB4MGYsIDB4MjEsIDB4MmMsIDB4Y2Is
CisgICAgICAgIDB4Y2MsIDB4MzcsIDB4ZjEsIDB4MWMsIDB4YzMsIDB4Zjgs
IDB4MmYsIDB4MTksCisgICAgICAgIDB4ZGYsIDB4NTMsIDB4NTMsIDB4NDYs
IDB4YjEsIDB4MTUsIDB4ZWEsIDB4MDAsCisgICAgfSwKK30sCiB7CiAgICAg
LnBhdGNoX2lkID0gMHgwYTUwMDAxMSwKICAgICAuZGlnZXN0ID0gewpAQCAt
MTYxLDYgKzI0MiwxNSBAQAogICAgICAgICAweDExLCAweDVlLCAweDk2LCAw
eDdlLCAweDcxLCAweGU5LCAweGZjLCAweDc0LAogICAgIH0sCiB9LAorewor
ICAgIC5wYXRjaF9pZCA9IDB4MGE1MDAwMTIsCisgICAgLmRpZ2VzdCA9IHsK
KyAgICAgICAgMHhlYiwgMHg3NCwgMHgwZCwgMHg0NywgMHhhMSwgMHg4ZSwg
MHgwOSwgMHhlNCwKKyAgICAgICAgMHg5MywgMHg0YywgMHhhZCwgMHgwMywg
MHgzMiwgMHg0YywgMHgzOCwgMHgxNiwKKyAgICAgICAgMHgxMCwgMHgzOSwg
MHhkZCwgMHgwNiwgMHhhYSwgMHhjZSwgMHhkNiwgMHgwZiwKKyAgICAgICAg
MHg2MiwgMHg4MywgMHg5ZCwgMHg4ZSwgMHg2NCwgMHg1NSwgMHhiZSwgMHg2
MywKKyAgICB9LAorfSwKIHsKICAgICAucGF0Y2hfaWQgPSAweDBhNjAxMjA5
LAogICAgIC5kaWdlc3QgPSB7CkBAIC0xNzAsNiArMjYwLDE1IEBACiAgICAg
ICAgIDB4ZTgsIDB4NzMsIDB4ZTIsIDB4ZDYsIDB4ZGIsIDB4ZDIsIDB4Nzcs
IDB4MWQsCiAgICAgfSwKIH0sCit7CisgICAgLnBhdGNoX2lkID0gMHgwYTYw
MTIwYSwKKyAgICAuZGlnZXN0ID0geworICAgICAgICAweDBjLCAweDhiLCAw
eDNkLCAweGZkLCAweDUyLCAweDUyLCAweDg1LCAweDdkLAorICAgICAgICAw
eDIwLCAweDNhLCAweGUxLCAweDdlLCAweGE0LCAweDIxLCAweDNiLCAweDdi
LAorICAgICAgICAweDE3LCAweDg2LCAweGFlLCAweGFjLCAweDEzLCAweGI4
LCAweDYzLCAweDlkLAorICAgICAgICAweDA2LCAweDAxLCAweGQwLCAweGEw
LCAweDUxLCAweDlhLCAweDkxLCAweDJjLAorICAgIH0sCit9LAogewogICAg
IC5wYXRjaF9pZCA9IDB4MGE3MDQxMDcsCiAgICAgLmRpZ2VzdCA9IHsKQEAg
LTE3OSw2ICsyNzgsMTUgQEAKICAgICAgICAgMHg2NCwgMHgzOSwgMHg3MSwg
MHg4YywgMHhjZSwgMHhlNywgMHg0MSwgMHgzOSwKICAgICB9LAogfSwKK3sK
KyAgICAucGF0Y2hfaWQgPSAweDBhNzA0MTA4LAorICAgIC5kaWdlc3QgPSB7
CisgICAgICAgIDB4ZDcsIDB4NTUsIDB4MTUsIDB4MmIsIDB4ZmUsIDB4YzQs
IDB4YmMsIDB4OTMsCisgICAgICAgIDB4ZWMsIDB4OTEsIDB4YTAsIDB4YWUs
IDB4NDUsIDB4YjcsIDB4YzMsIDB4OTgsCisgICAgICAgIDB4NGUsIDB4ZmYs
IDB4NjEsIDB4NzcsIDB4ODgsIDB4YzIsIDB4NzAsIDB4NDksCisgICAgICAg
IDB4ZTAsIDB4M2EsIDB4MWQsIDB4ODQsIDB4MzgsIDB4NTIsIDB4YmYsIDB4
NWEsCisgICAgfSwKK30sCiB7CiAgICAgLnBhdGNoX2lkID0gMHgwYTcwNTIw
NiwKICAgICAuZGlnZXN0ID0gewpAQCAtMTg4LDYgKzI5NiwxNSBAQAogICAg
ICAgICAweDAzLCAweDM1LCAweGU5LCAweGJlLCAweGZiLCAweDA2LCAweGRm
LCAweGZjLAogICAgIH0sCiB9LAoreworICAgIC5wYXRjaF9pZCA9IDB4MGE3
MDUyMDgsCisgICAgLmRpZ2VzdCA9IHsKKyAgICAgICAgMHgzMCwgMHgxZCwg
MHg1NSwgMHgyNCwgMHhiYywgMHg2YiwgMHg1YSwgMHgxOSwKKyAgICAgICAg
MHgwYywgMHg3ZCwgMHgxZCwgMHg3NCwgMHhhYSwgMHhkMSwgMHhlYiwgMHhk
MiwKKyAgICAgICAgMHgxNiwgMHg2MiwgMHhmNywgMHg1YiwgMHhlMSwgMHgx
ZiwgMHgxOCwgMHgxMSwKKyAgICAgICAgMHg1YywgMHhmMCwgMHg5NCwgMHg5
MCwgMHgyNiwgMHhlYywgMHg2OSwgMHhmZiwKKyAgICB9LAorfSwKIHsKICAg
ICAucGF0Y2hfaWQgPSAweDBhNzA4MDA3LAogICAgIC5kaWdlc3QgPSB7CkBA
IC0xOTcsNiArMzE0LDE1IEBACiAgICAgICAgIDB4ZGYsIDB4OTIsIDB4NzMs
IDB4ODQsIDB4ODcsIDB4M2MsIDB4NzMsIDB4OTMsCiAgICAgfSwKIH0sCit7
CisgICAgLnBhdGNoX2lkID0gMHgwYTcwODAwOCwKKyAgICAuZGlnZXN0ID0g
eworICAgICAgICAweDA4LCAweDZlLCAweGYwLCAweDIyLCAweDRiLCAweDhl
LCAweGM0LCAweDQ2LAorICAgICAgICAweDU4LCAweDM0LCAweGU2LCAweDQ3
LCAweGEyLCAweDI4LCAweGZkLCAweGFiLAorICAgICAgICAweDIyLCAweDNk
LCAweGRkLCAweGQ4LCAweDUyLCAweDllLCAweDFkLCAweDE2LAorICAgICAg
ICAweGZhLCAweDAxLCAweDY4LCAweDE0LCAweDc5LCAweDNlLCAweGU4LCAw
eDZiLAorICAgIH0sCit9LAogewogICAgIC5wYXRjaF9pZCA9IDB4MGE3MGMw
MDUsCiAgICAgLmRpZ2VzdCA9IHsKQEAgLTIwNiw2ICszMzIsMTUgQEAKICAg
ICAgICAgMHhlZSwgMHg0OSwgMHhhYywgMHhlMSwgMHg4YiwgMHgxMywgMHhj
NSwgMHgxMywKICAgICB9LAogfSwKK3sKKyAgICAucGF0Y2hfaWQgPSAweDBh
NzBjMDA4LAorICAgIC5kaWdlc3QgPSB7CisgICAgICAgIDB4MGYsIDB4ZGIs
IDB4MzcsIDB4YTEsIDB4MTAsIDB4YWYsIDB4ZDQsIDB4MjEsCisgICAgICAg
IDB4OTQsIDB4MGQsIDB4YTQsIDB4YTIsIDB4ZTksIDB4ODYsIDB4NmMsIDB4
MGUsCisgICAgICAgIDB4ODUsIDB4N2MsIDB4MzYsIDB4MzAsIDB4YTMsIDB4
M2EsIDB4NzgsIDB4NjYsCisgICAgICAgIDB4MTgsIDB4MTAsIDB4NjAsIDB4
MGQsIDB4NzgsIDB4M2QsIDB4NDQsIDB4ZDAsCisgICAgfSwKK30sCiB7CiAg
ICAgLnBhdGNoX2lkID0gMHgwYWEwMDExNiwKICAgICAuZGlnZXN0ID0gewpA
QCAtMjI0LDMgKzM1OSwxMiBAQAogICAgICAgICAweDY4LCAweDJmLCAweDQ2
LCAweGVlLCAweGZlLCAweGM2LCAweDZkLCAweGVmLAogICAgIH0sCiB9LAor
eworICAgIC5wYXRjaF9pZCA9IDB4MGFhMDAyMTYsCisgICAgLmRpZ2VzdCA9
IHsKKyAgICAgICAgMHg3OSwgMHhmYiwgMHg1YiwgMHg5ZiwgMHhiNiwgMHhl
NiwgMHhhOCwgMHhmNSwKKyAgICAgICAgMHg0ZSwgMHg3YywgMHg0ZiwgMHg4
ZSwgMHgxZCwgMHhhZCwgMHhkMCwgMHgwOCwKKyAgICAgICAgMHhjMiwgMHg0
MywgMHg3YywgMHg4YiwgMHhlNiwgMHhkYiwgMHhkMCwgMHhkMiwKKyAgICAg
ICAgMHhlOCwgMHgzOSwgMHgyNiwgMHhjMSwgMHhlNSwgMHg1YSwgMHg0OCwg
MHhmMSwKKyAgICB9LAorfSwKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9j
cHUvbWljcm9jb2RlL2FtZC5jIGIveGVuL2FyY2gveDg2L2NwdS9taWNyb2Nv
ZGUvYW1kLmMKaW5kZXggZWJkOWVjYmVlZjBmLi44YjA5MjMxYzZjNjYgMTAw
NjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvbWljcm9jb2RlL2FtZC5jCisr
KyBiL3hlbi9hcmNoL3g4Ni9jcHUvbWljcm9jb2RlL2FtZC5jCkBAIC01Mjgs
MyArNTI4LDE4IEBAIHZvaWQgX19pbml0IHVjb2RlX3Byb2JlX2FtZChzdHJ1
Y3QgbWljcm9jb2RlX29wcyAqb3BzKQogCiAgICAgKm9wcyA9IGFtZF91Y29k
ZV9vcHM7CiB9CisKKyNpZiAwIC8qIE1hbnVhbCBDT05GSUdfU0VMRl9URVNU
UyAqLworc3RhdGljIHZvaWQgX19pbml0IF9fY29uc3RydWN0b3IgdGVzdF9k
aWdlc3RzX3NvcnRlZCh2b2lkKQoreworICAgIGZvciAoIHVuc2lnbmVkIGlu
dCBpID0gMTsgaSA8IEFSUkFZX1NJWkUocGF0Y2hfZGlnZXN0cyk7ICsraSAp
CisgICAgeworICAgICAgICBpZiAoIHBhdGNoX2RpZ2VzdHNbaSAtIDFdLnBh
dGNoX2lkIDwgcGF0Y2hfZGlnZXN0c1tpXS5wYXRjaF9pZCApCisgICAgICAg
ICAgICBjb250aW51ZTsKKworICAgICAgICBwYW5pYygicGF0Y2hfZGlnZXN0
c1tdIG5vdCBzb3J0ZWQ6ICUwOHggPj0gJTA4eFxuIiwKKyAgICAgICAgICAg
ICAgcGF0Y2hfZGlnZXN0c1tpIC0gMV0ucGF0Y2hfaWQsCisgICAgICAgICAg
ICAgIHBhdGNoX2RpZ2VzdHNbaV0ucGF0Y2hfaWQpOworICAgIH0KK30KKyNl
bmRpZiAvKiBDT05GSUdfU0VMRl9URVNUUyAqLwo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.17-01.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.17-01.patch"
Content-Transfer-Encoding: base64

RnJvbTogUm9nZXIgUGF1IE1vbm5lIDxyb2dlci5wYXVAY2l0cml4LmNvbT4K
RGF0ZTogVGh1LCAxNyBBcHIgMjAyNSAxMjozNToyOCArMDIwMApTdWJqZWN0
OiB4ODYvaW50ZWw6IHdvcmthcm91bmQgc2V2ZXJhbCBNT05JVE9SL01XQUlU
IGVycmF0YQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQv
cGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGlu
ZzogOGJpdAoKVGhlcmUgYXJlIHNldmVyYWwgZXJyYXRhIG9uIEludGVsIHJl
Z2FyZGluZyB0aGUgdXNhZ2Ugb2YgdGhlIE1PTklUT1IvTVdBSVQKaW5zdHJ1
Y3Rpb25zLCBhbGwgaGF2aW5nIGluIGNvbW1vbiB0aGF0IHN0b3JlcyB0byB0
aGUgbW9uaXRvcmVkIHJlZ2lvbgptaWdodCBub3Qgd2FrZSB1cCB0aGUgQ1BV
LgoKRml4IHRoZW0gYnkgZm9yY2luZyB0aGUgc2VuZGluZyBvZiBhbiBJUEkg
Zm9yIHRoZSBhZmZlY3RlZCBtb2RlbHMuCgpUaGUgSWNlIExha2UgaXNzdWUg
aGFzIGJlZW4gcmVwcm9kdWNlZCBpbnRlcm5hbGx5IG9uIFhlblNlcnZlciBo
YXJkd2FyZSwKYW5kIHRoZSBmaXggZG9lcyBzZWVtIHRvIHByZXZlbnQgaXQu
ICBUaGUgc3ltcHRvbSB3YXMgQVBzIGdldHRpbmcgc3R1Y2sgaW4KdGhlIGlk
bGUgbG9vcCBpbW1lZGlhdGVseSBhZnRlciBicmluZyB1cCwgd2hpY2ggaW4g
dHVybiBwcmV2ZW50ZWQgdGhlIEJTUApmcm9tIG1ha2luZyBwcm9ncmVzcy4g
IFRoaXMgd291bGQgaGFwcGVuIGJlZm9yZSB0aGUgd2F0Y2hkb2cgd2FzCmlu
aXRpYWxpemVkLCBhbmQgaGVuY2UgdGhlIHdob2xlIHN5c3RlbSB3b3VsZCBn
ZXQgc3R1Y2suCgpTaWduZWQtb2ZmLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxy
b2dlci5wYXVAY2l0cml4LmNvbT4KQWNrZWQtYnk6IEphbiBCZXVsaWNoIDxq
YmV1bGljaEBzdXNlLmNvbT4KQWNrZWQtYnk6IEFuZHJldyBDb29wZXIgPGFu
ZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CihjaGVycnkgcGlja2VkIGZyb20g
Y29tbWl0IDRhYWU0NDUyZWZlZWUzZDNiYmEwOTJiODc1ZTM3ZDFlN2M4ZjZk
YjkpCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUu
YyBiL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKaW5kZXggNTU3YmM2
ZWY4NjQyLi4yZDhiNjZjOTEwMGEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4
Ni9hY3BpL2NwdV9pZGxlLmMKKysrIGIveGVuL2FyY2gveDg2L2FjcGkvY3B1
X2lkbGUuYwpAQCAtNDUzLDggKzQ1MywxNCBAQCB2b2lkIGNwdWlkbGVfd2Fr
ZXVwX213YWl0KGNwdW1hc2tfdCAqbWFzaykKICAgICBjcHVtYXNrX2FuZG5v
dChtYXNrLCBtYXNrLCAmdGFyZ2V0KTsKIH0KIAorLyogRm9yY2Ugc2VuZGlu
ZyBvZiBhIHdha2V1cCBJUEkgcmVnYXJkbGVzcyBvZiBtd2FpdCB1c2FnZS4g
Ki8KK2Jvb2wgX19yb19hZnRlcl9pbml0IGZvcmNlX213YWl0X2lwaV93YWtl
dXA7CisKIGJvb2wgYXJjaF9za2lwX3NlbmRfZXZlbnRfY2hlY2sodW5zaWdu
ZWQgaW50IGNwdSkKIHsKKyAgICBpZiAoIGZvcmNlX213YWl0X2lwaV93YWtl
dXAgKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICAvKgogICAgICAq
IFRoaXMgcmVsaWVzIG9uIHNvZnRpcnFfcGVuZGluZygpIGFuZCBtd2FpdF93
YWtldXAoKSB0byBhY2Nlc3MgZGF0YQogICAgICAqIG9uIHRoZSBzYW1lIGNh
Y2hlIGxpbmUuCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1L2ludGVs
LmMgYi94ZW4vYXJjaC94ODYvY3B1L2ludGVsLmMKaW5kZXggNDkwZjdmZjZm
MWZlLi5jNmNhNDJkMDdhZDggMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9j
cHUvaW50ZWwuYworKysgYi94ZW4vYXJjaC94ODYvY3B1L2ludGVsLmMKQEAg
LTcsNiArNyw3IEBACiAjaW5jbHVkZSA8YXNtL2ludGVsLWZhbWlseS5oPgog
I2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KICNpbmNsdWRlIDxhc20vbXNy
Lmg+CisjaW5jbHVkZSA8YXNtL213YWl0Lmg+CiAjaW5jbHVkZSA8YXNtL3Vh
Y2Nlc3MuaD4KICNpbmNsdWRlIDxhc20vbXBzcGVjLmg+CiAjaW5jbHVkZSA8
YXNtL2FwaWMuaD4KQEAgLTM2Myw3ICszNjQsNiBAQCBzdGF0aWMgdm9pZCBw
cm9iZV9jM19lcnJhdGEoY29uc3Qgc3RydWN0IGNwdWluZm9feDg2ICpjKQog
ICAgICAgICBJTlRFTF9GQU02X01PREVMKDB4MjUpLAogICAgICAgICB7IH0K
ICAgICB9OwotI3VuZGVmIElOVEVMX0ZBTTZfTU9ERUwKIAogICAgIC8qIFNl
cmlhbGl6ZWQgYnkgdGhlIEFQIGJyaW5ndXAgY29kZS4gKi8KICAgICBpZiAo
IG1heF9jc3RhdGUgPiAxICYmIChjLT5hcGljaWQgJiAoYy0+eDg2X251bV9z
aWJsaW5ncyAtIDEpKSAmJgpAQCAtMzc1LDYgKzM3NSwzOCBAQCBzdGF0aWMg
dm9pZCBwcm9iZV9jM19lcnJhdGEoY29uc3Qgc3RydWN0IGNwdWluZm9feDg2
ICpjKQogICAgIH0KIH0KIAorLyoKKyAqIEFQTDMwOiBPbmUgdXNlIG9mIHRo
ZSBNT05JVE9SL01XQUlUIGluc3RydWN0aW9uIHBhaXIgaXMgdG8gYWxsb3cg
YSBsb2dpY2FsCisgKiBwcm9jZXNzb3IgdG8gd2FpdCBpbiBhIHNsZWVwIHN0
YXRlIHVudGlsIGEgc3RvcmUgdG8gdGhlIGFybWVkIGFkZHJlc3MgcmFuZ2UK
KyAqIG9jY3Vycy4gRHVlIHRvIHRoaXMgZXJyYXR1bSwgc3RvcmVzIHRvIHRo
ZSBhcm1lZCBhZGRyZXNzIHJhbmdlIG1heSBub3QKKyAqIHRyaWdnZXIgTVdB
SVQgdG8gcmVzdW1lIGV4ZWN1dGlvbi4KKyAqCisgKiBJQ1gxNDM6IFVuZGVy
IGNvbXBsZXggbWljcm9hcmNoaXRlY3R1cmFsIGNvbmRpdGlvbnMsIGEgbW9u
aXRvciB0aGF0IGlzIGFybWVkCisgKiB3aXRoIHRoZSBNV0FJVCBpbnN0cnVj
dGlvbiBtYXkgbm90IGJlIHRyaWdnZXJlZCwgbGVhZGluZyB0byBhIHByb2Nl
c3NvcgorICogaGFuZy4KKyAqCisgKiBMTkwwMzA6IFByb2JsZW0gUC1jb3Jl
cyBtYXkgbm90IGV4aXQgcG93ZXIgc3RhdGUgQ29yZSBDNiBvbiBtb25pdG9y
IGhpdC4KKyAqCisgKiBGb3JjZSB0aGUgc2VuZGluZyBvZiBhbiBJUEkgaW4g
dGhvc2UgY2FzZXMuCisgKi8KK3N0YXRpYyB2b2lkIF9faW5pdCBwcm9iZV9t
d2FpdF9lcnJhdGEodm9pZCkKK3sKKyAgICBzdGF0aWMgY29uc3Qgc3RydWN0
IHg4Nl9jcHVfaWQgX19pbml0Y29uc3QgbW9kZWxzW10gPSB7CisgICAgICAg
IElOVEVMX0ZBTTZfTU9ERUwoSU5URUxfRkFNNl9BVE9NX0dPTERNT05UKSwg
LyogQVBMMzAgICovCisgICAgICAgIElOVEVMX0ZBTTZfTU9ERUwoSU5URUxf
RkFNNl9JQ0VMQUtFX1gpLCAgICAgLyogSUNYMTQzICovCisgICAgICAgIElO
VEVMX0ZBTTZfTU9ERUwoSU5URUxfRkFNNl9MVU5BUkxBS0VfTSksICAgLyog
TE5MMDMwICovCisgICAgICAgIHsgfQorICAgIH07CisjdW5kZWYgSU5URUxf
RkFNNl9NT0RFTAorCisgICAgaWYgKCBib290X2NwdV9oYXMoWDg2X0ZFQVRV
UkVfTU9OSVRPUikgJiYgeDg2X21hdGNoX2NwdShtb2RlbHMpICkKKyAgICB7
CisgICAgICAgIHByaW50ayhYRU5MT0dfV0FSTklORworICAgICAgICAgICAg
ICAgIkZvcmNpbmcgSVBJIE1XQUlUIHdha2V1cCBkdWUgdG8gQ1BVIGVycmF0
dW1cbiIpOworICAgICAgICBmb3JjZV9td2FpdF9pcGlfd2FrZXVwID0gdHJ1
ZTsKKyAgICB9Cit9CisKIC8qCiAgKiBQNCBYZW9uIGVycmF0YSAwMzcgd29y
a2Fyb3VuZC4KICAqIEhhcmR3YXJlIHByZWZldGNoZXIgbWF5IGNhdXNlIHN0
YWxlIGRhdGEgdG8gYmUgbG9hZGVkIGludG8gdGhlIGNhY2hlLgpAQCAtNDAx
LDYgKzQzMyw4IEBAIHN0YXRpYyB2b2lkIEludGVsX2VycmF0YV93b3JrYXJv
dW5kcyhzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCiAJCV9fc2V0X2JpdChYODZf
RkVBVFVSRV9DTEZMVVNIX01PTklUT1IsIGMtPng4Nl9jYXBhYmlsaXR5KTsK
IAogCXByb2JlX2MzX2VycmF0YShjKTsKKwlpZiAoc3lzdGVtX3N0YXRlIDwg
U1lTX1NUQVRFX3NtcF9ib290KQorCQlwcm9iZV9td2FpdF9lcnJhdGEoKTsK
IH0KIAogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20v
bXdhaXQuaCBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9td2FpdC5oCmlu
ZGV4IGYzNzdkOWZkY2FkNC4uOTdiZjM2MTUwNWYwIDEwMDY0NAotLS0gYS94
ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vbXdhaXQuaAorKysgYi94ZW4vYXJj
aC94ODYvaW5jbHVkZS9hc20vbXdhaXQuaApAQCAtMTMsNiArMTMsOSBAQAog
CiAjZGVmaW5lIE1XQUlUX0VDWF9JTlRFUlJVUFRfQlJFQUsJMHgxCiAKKy8q
IEZvcmNlIHNlbmRpbmcgb2YgYSB3YWtldXAgSVBJIHJlZ2FyZGxlc3Mgb2Yg
bXdhaXQgdXNhZ2UuICovCitleHRlcm4gYm9vbCBmb3JjZV9td2FpdF9pcGlf
d2FrZXVwOworCiB2b2lkIG13YWl0X2lkbGVfd2l0aF9oaW50cyh1bnNpZ25l
ZCBpbnQgZWF4LCB1bnNpZ25lZCBpbnQgZWN4KTsKIGJvb2wgbXdhaXRfcGMx
MF9zdXBwb3J0ZWQodm9pZCk7CiAK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.17-02.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.17-02.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxMCBTZXAgMjAyNCAyMDo1OTozNyArMDEwMApTdWJq
ZWN0OiB4ODYvY3B1ZmVhdHVyZTogUmVwb3NpdGlvbiBjcHVfaGFzX3tsZmVu
Y2VfZGlzcGF0Y2gsbnNjYn0KCkxGRU5DRV9ESVNQQVRDSCB1c2VkIHRvIGJl
IGEgc3ludGhldGljIGZlYXR1cmUsIGJ1dCB3YXMgZ2l2ZW4gYSByZWFsIENQ
VUlEIGJpdApieSBBTUQuICBUaGUgZGVmaW5lIHdhc24ndCBtb3ZlZCB3aGVu
IHRoaXMgd2FzIGNoYW5nZWQuCgpOU0NCIGhhcyBhbHdheXMgYmVlbiBhIHJl
YWwgQ1BVSUQgYml0LCBhbmQgd2FzIG1pc3BsYWNlZCB3aGVuIGludHJvZHVj
ZWQgaW4KdGhlIHN5bnRoZXRpYyBibG9jayBhbG9uZ3NpZGUgTEZFTkNFX0RJ
U1BBVENILgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3
LmNvb3BlcjNAY2l0cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEphbiBCZXVsaWNo
IDxqYmV1bGljaEBzdXNlLmNvbT4KKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21t
aXQgNmEwMzliMDUwMDcxZWJhNjQ0YWI0MTRkNzZhYzVkNWZjOWUwNjdhNSkK
CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vY3B1ZmVh
dHVyZS5oIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmUu
aAppbmRleCBkOWFlZGZjMjVhYjAuLjAyMDQxNGU5OGM0ZCAxMDA2NDQKLS0t
IGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmUuaAorKysg
Yi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vY3B1ZmVhdHVyZS5oCkBAIC0x
NDgsNiArMTQ4LDEwIEBACiAjZGVmaW5lIGNwdV9oYXNfYXZ4X3ZubmkgICAg
ICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9BVlhfVk5OSSkKICNkZWZp
bmUgY3B1X2hhc19hdng1MTJfYmYxNiAgICAgYm9vdF9jcHVfaGFzKFg4Nl9G
RUFUVVJFX0FWWDUxMl9CRjE2KQogCisvKiBDUFVJRCBsZXZlbCAweDgwMDAw
MDIxLmVheCAqLworI2RlZmluZSBjcHVfaGFzX2xmZW5jZV9kaXNwYXRjaCBi
b290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfTEZFTkNFX0RJU1BBVENIKQorI2Rl
ZmluZSBjcHVfaGFzX25zY2IgICAgICAgICAgICBib290X2NwdV9oYXMoWDg2
X0ZFQVRVUkVfTlNDQikKKwogLyogTVNSX0FSQ0hfQ0FQUyAqLwogI2RlZmlu
ZSBjcHVfaGFzX3JkY2xfbm8gICAgICAgICBib290X2NwdV9oYXMoWDg2X0ZF
QVRVUkVfUkRDTF9OTykKICNkZWZpbmUgY3B1X2hhc19laWJycyAgICAgICAg
ICAgYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0VJQlJTKQpAQCAtMTcwLDgg
KzE3NCw2IEBACiAjZGVmaW5lIGNwdV9oYXNfYXJjaF9wZXJmbW9uICAgIGJv
b3RfY3B1X2hhcyhYODZfRkVBVFVSRV9BUkNIX1BFUkZNT04pCiAjZGVmaW5l
IGNwdV9oYXNfY3B1aWRfZmF1bHRpbmcgIGJvb3RfY3B1X2hhcyhYODZfRkVB
VFVSRV9DUFVJRF9GQVVMVElORykKICNkZWZpbmUgY3B1X2hhc19hcGVyZm1w
ZXJmICAgICAgYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0FQRVJGTVBFUkYp
Ci0jZGVmaW5lIGNwdV9oYXNfbGZlbmNlX2Rpc3BhdGNoIGJvb3RfY3B1X2hh
cyhYODZfRkVBVFVSRV9MRkVOQ0VfRElTUEFUQ0gpCi0jZGVmaW5lIGNwdV9o
YXNfbnNjYiAgICAgICAgICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9O
U0NCKQogI2RlZmluZSBjcHVfaGFzX3hlbl9sYnIgICAgICAgICBib290X2Nw
dV9oYXMoWDg2X0ZFQVRVUkVfWEVOX0xCUikKICNkZWZpbmUgY3B1X2hhc194
ZW5fc2hzdGsgICAgICAgYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX1hFTl9T
SFNUSykKICNkZWZpbmUgY3B1X2hhc194ZW5faWJ0ICAgICAgICAgYm9vdF9j
cHVfaGFzKFg4Nl9GRUFUVVJFX1hFTl9JQlQpCg==

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.17-03.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.17-03.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEFwciAyMDI1IDE0OjU5OjAxICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBNb3ZlIG1vbml0b3IoKS9td2FpdCgpIHdyYXBwZXJz
IGludG8gY3B1LWlkbGUuYwoKVGhleSdyZSBub3QgdXNlZCBieSBhbnkgb3Ro
ZXIgdHJhbnNsYXRpb24gdW5pdCwgc28gc2hvdWxkbid0IGxpdmUgaW4KYXNt
L3Byb2Nlc3Nvci5oLCB3aGljaCBpcyBpbmNsdWRlZCBhbG1vc3QgZXZlcnl3
aGVyZS4KCk91ciBuZXcgdG9vbGNoYWluIGJhc2VsaW5lIGtub3dzIHRoZSBN
T05JVE9SL01XQUlUIGluc3RydWN0aW9ucywgc28gdXNlIHRoZW0KZGlyZWN0
bHkgcmF0aGVyIHRoYW4gdXNpbmcgcmF3IGhleC4KCkNoYW5nZSB0aGUgaGlu
dC9leHRlbnRpb24gcGFyYW1ldGVycyBmcm9tIGxvbmcgdG8gaW50LiAgVGhl
eSdyZSBzcGVjaWZpZWQgdG8KcmVtYWluIDMyYml0IG9wZXJhbmRzIGV2ZW4g
NjQtYml0IG1vZGUuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxh
bmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpSZXZpZXdlZC1ieTogSmFuIEJl
dWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgooY2hlcnJ5IHBpY2tlZCBmcm9t
IGNvbW1pdCA2MWUxMGZjMjhjY2RkZmY3YzcyYzE0YWNlYzU2ZGM3ZWYyYjE1
NWQxKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxl
LmMgYi94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jCmluZGV4IDJkOGI2
NmM5MTAwYS4uNzczZWFlY2MyYmJmIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94
ODYvYWNwaS9jcHVfaWRsZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9hY3BpL2Nw
dV9pZGxlLmMKQEAgLTU5LDYgKzU5LDE5IEBACiAKIC8qI2RlZmluZSBERUJV
R19QTV9DWCovCiAKK3N0YXRpYyBhbHdheXNfaW5saW5lIHZvaWQgbW9uaXRv
cigKKyAgICBjb25zdCB2b2lkICphZGRyLCB1bnNpZ25lZCBpbnQgZWN4LCB1
bnNpZ25lZCBpbnQgZWR4KQoreworICAgIGFzbSB2b2xhdGlsZSAoICJtb25p
dG9yIgorICAgICAgICAgICAgICAgICAgIDo6ICJhIiAoYWRkciksICJjIiAo
ZWN4KSwgImQiIChlZHgpICk7Cit9CisKK3N0YXRpYyBhbHdheXNfaW5saW5l
IHZvaWQgbXdhaXQodW5zaWduZWQgaW50IGVheCwgdW5zaWduZWQgaW50IGVj
eCkKK3sKKyAgICBhc20gdm9sYXRpbGUgKCAibXdhaXQiCisgICAgICAgICAg
ICAgICAgICAgOjogImEiIChlYXgpLCAiYyIgKGVjeCkgKTsKK30KKwogI2Rl
ZmluZSBHRVRfSFdfUkVTX0lOX05TKG1zciwgdmFsKSBcCiAgICAgZG8geyBy
ZG1zcmwobXNyLCB2YWwpOyB2YWwgPSB0c2NfdGlja3MybnModmFsKTsgfSB3
aGlsZSggMCApCiAjZGVmaW5lIEdFVF9NQzZfUkVTKHZhbCkgIEdFVF9IV19S
RVNfSU5fTlMoMHg2NjQsIHZhbCkKQEAgLTQ4Miw3ICs0OTUsNyBAQCB2b2lk
IG13YWl0X2lkbGVfd2l0aF9oaW50cyh1bnNpZ25lZCBpbnQgZWF4LCB1bnNp
Z25lZCBpbnQgZWN4KQogICAgICAgICBtYigpOwogICAgIH0KIAotICAgIF9f
bW9uaXRvcihtb25pdG9yX2FkZHIsIDAsIDApOworICAgIG1vbml0b3IobW9u
aXRvcl9hZGRyLCAwLCAwKTsKICAgICBzbXBfbWIoKTsKIAogICAgIC8qCkBA
IC00OTYsNyArNTA5LDcgQEAgdm9pZCBtd2FpdF9pZGxlX3dpdGhfaGludHMo
dW5zaWduZWQgaW50IGVheCwgdW5zaWduZWQgaW50IGVjeCkKICAgICAgICAg
Y3B1bWFza19zZXRfY3B1KGNwdSwgJmNwdWlkbGVfbXdhaXRfZmxhZ3MpOwog
CiAgICAgICAgIHNwZWNfY3RybF9lbnRlcl9pZGxlKGluZm8pOwotICAgICAg
ICBfX213YWl0KGVheCwgZWN4KTsKKyAgICAgICAgbXdhaXQoZWF4LCBlY3gp
OwogICAgICAgICBzcGVjX2N0cmxfZXhpdF9pZGxlKGluZm8pOwogCiAgICAg
ICAgIGNwdW1hc2tfY2xlYXJfY3B1KGNwdSwgJmNwdWlkbGVfbXdhaXRfZmxh
Z3MpOwpAQCAtOTI3LDkgKzk0MCw5IEBAIHZvaWQgY2ZfY2hlY2sgYWNwaV9k
ZWFkX2lkbGUodm9pZCkKICAgICAgICAgICAgICAqLwogICAgICAgICAgICAg
bWIoKTsKICAgICAgICAgICAgIGNsZmx1c2gobXdhaXRfcHRyKTsKLSAgICAg
ICAgICAgIF9fbW9uaXRvcihtd2FpdF9wdHIsIDAsIDApOworICAgICAgICAg
ICAgbW9uaXRvcihtd2FpdF9wdHIsIDAsIDApOwogICAgICAgICAgICAgbWIo
KTsKLSAgICAgICAgICAgIF9fbXdhaXQoY3gtPmFkZHJlc3MsIDApOworICAg
ICAgICAgICAgbXdhaXQoY3gtPmFkZHJlc3MsIDApOwogICAgICAgICB9CiAg
ICAgfQogICAgIGVsc2UgaWYgKCAoY3VycmVudF9jcHVfZGF0YS54ODZfdmVu
ZG9yICYKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9w
cm9jZXNzb3IuaCBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNz
b3IuaAppbmRleCA4ZmY5NjM4OGU4YjMuLjA3MzI4ZDQ0YmY0ZSAxMDA2NDQK
LS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oCisr
KyBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaApAQCAt
NDA1LDIzICs0MDUsNiBAQCBzdGF0aWMgaW5saW5lIGJvb2xfdCByZWFkX3Br
cnVfd2QodWludDMyX3QgcGtydSwgdW5zaWduZWQgaW50IHBrZXkpCiAgICAg
cmV0dXJuIChwa3J1ID4+IChwa2V5ICogUEtSVV9BVFRSUyArIFBLUlVfV1JJ
VEUpKSAmIDE7CiB9CiAKLXN0YXRpYyBhbHdheXNfaW5saW5lIHZvaWQgX19t
b25pdG9yKGNvbnN0IHZvaWQgKmVheCwgdW5zaWduZWQgbG9uZyBlY3gsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBs
b25nIGVkeCkKLXsKLSAgICAvKiAibW9uaXRvciAlZWF4LCVlY3gsJWVkeDsi
ICovCi0gICAgYXNtIHZvbGF0aWxlICgKLSAgICAgICAgIi5ieXRlIDB4MGYs
MHgwMSwweGM4OyIKLSAgICAgICAgOiA6ICJhIiAoZWF4KSwgImMiIChlY3gp
LCAiZCIoZWR4KSApOwotfQotCi1zdGF0aWMgYWx3YXlzX2lubGluZSB2b2lk
IF9fbXdhaXQodW5zaWduZWQgbG9uZyBlYXgsIHVuc2lnbmVkIGxvbmcgZWN4
KQotewotICAgIC8qICJtd2FpdCAlZWF4LCVlY3g7IiAqLwotICAgIGFzbSB2
b2xhdGlsZSAoCi0gICAgICAgICIuYnl0ZSAweDBmLDB4MDEsMHhjOTsiCi0g
ICAgICAgIDogOiAiYSIgKGVheCksICJjIiAoZWN4KSApOwotfQotCiAjZGVm
aW5lIElPQk1QX0JZVEVTICAgICAgICAgICAgIDgxOTIKICNkZWZpbmUgSU9C
TVBfSU5WQUxJRF9PRkZTRVQgICAgMHg4MDAwCiAK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.17-04.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.17-04.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEFwciAyMDI1IDE1OjU1OjI5ICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBSZW1vdmUgTUZFTkNFcyBmb3IgQ0xGTFVTSF9NT05J
VE9SCgpDb21taXQgNDhkMzI0NThiY2Q0ICgieDg2LCBpZGxlOiBhZGQgYmFy
cmllcnMgdG8gQ0xGTFVTSCB3b3JrYXJvdW5kIikgd2FzCmluaGVyaXRlZCBm
cm9tIExpbnV4IGFuZCBhZGRlZCBNRkVOQ0VzIGFyb3VuZCB0aGUgQUFJNjUg
ZXJyYXRhIGZpeC4KClRoZSBTRE0gbm93IHN0YXRlczoKCiAgRXhlY3V0aW9u
cyBvZiB0aGUgQ0xGTFVTSCBpbnN0cnVjdGlvbiBhcmUgb3JkZXJlZCB3aXRo
IHJlc3BlY3QgdG8gZWFjaAogIG90aGVyIGFuZCB3aXRoIHJlc3BlY3QgdG8g
d3JpdGVzLCBsb2NrZWQgcmVhZC1tb2RpZnktd3JpdGUgaW5zdHJ1Y3Rpb25z
LAogIGFuZCBmZW5jZSBpbnN0cnVjdGlvbnNbMV0uCgp3aXRoIGZvb3Rub3Rl
IDEgcmVhZGluZzoKCiAgRWFybGllciB2ZXJzaW9ucyBvZiB0aGlzIG1hbnVh
bCBzcGVjaWZpZWQgdGhhdCBleGVjdXRpb25zIG9mIHRoZSBDTEZMVVNICiAg
aW5zdHJ1Y3Rpb24gd2VyZSBvcmRlcmVkIG9ubHkgYnkgdGhlIE1GRU5DRSBp
bnN0cnVjdGlvbi4gIEFsbCBwcm9jZXNzb3JzCiAgaW1wbGVtZW50aW5nIHRo
ZSBDTEZMVVNIIGluc3RydWN0aW9uIGFsc28gb3JkZXIgaXQgcmVsYXRpdmUg
dG8gdGhlIG90aGVyCiAgb3BlcmF0aW9ucyBlbnVtZXJhdGVkIGFib3ZlLgoK
SS5lLiB0aGUgTUZFTkNFcyBjYW1lIGFib3V0IGJlY2F1c2Ugb2YgYW4gaW5j
b3JyZWN0IHN0YXRlbWVudCBpbiB0aGUgU0RNLgoKVGhlIFNwZWMgVXBkYXRl
IChubyBsb25nZXIgYXZhaWxhYmxlIG9uIEludGVsJ3Mgd2Vic2l0ZSkgc2lt
cGx5IHNheXMgImlzc3VlIGEKQ0xGTFVTSCIsIHdpdGggbm8gbWVudGlvbiBv
ZiBNRkVOQ0VzLgoKQXMgdGhpcyBlcnJhdHVtIGlzIHNwZWNpZmljIHRvIElu
dGVsLCBpdCdzIGZpbmUgdG8gcmVtb3ZlIHRoZSB0aGUgTUZFTkNFczsgQU1E
CkNQVXMgb2YgYSBzaW1pbGFyIHZpbnRhZ2UgZG8gc3BvcnQgb3RoZXJ3aXNl
LXVub3JkZXJlZCBDTEZMVVNIcy4KCk1vdmUgdGhlIGZlYXR1cmUgYml0IGlu
dG8gdGhlIEJVRyByYW5nZSAocmF0aGVyIHRoYW4gRkVBVFVSRSksIGFuZCBt
b3ZlIHRoZQp3b3JrYXJvdW5kIGludG8gbW9uaXRvcigpIGl0c2VsZi4KClRo
ZSBlcnJhdHVtIGNoZWNrIGl0c2VsZiBtdXN0IHVzZSBzZXR1cF9mb3JjZV9j
cHVfY2FwKCkuICBJdCBuZWVkcyBhY3RpdmF0aW5nCmlmIGFueSBDUFUgbmVl
ZHMgaXQsIG5vdCBpZiBhbGwgb2YgdGhlbSBuZWVkIGl0LgoKRml4ZXM6IDQ4
ZDMyNDU4YmNkNCAoIng4NiwgaWRsZTogYWRkIGJhcnJpZXJzIHRvIENMRkxV
U0ggd29ya2Fyb3VuZCIpCkZpeGVzOiA5NmQxYjIzN2FlOWIgKCJ4ODYvSW50
ZWw6IHdvcmsgYXJvdW5kIFhlb24gNzQwMCBzZXJpZXMgZXJyYXR1bSBBQUk2
NSIpCkxpbms6IGh0dHBzOi8vd2ViLmFyY2hpdmUub3JnL3dlYi8yMDA5MDIx
OTA1NDg0MS9odHRwOi8vZG93bmxvYWQuaW50ZWwuY29tL2Rlc2lnbi94ZW9u
L3NwZWN1cGR0LzMyMDMzNjAxLnBkZgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcg
Q29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpSZXZpZXdlZC1i
eTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgooY2hlcnJ5IHBp
Y2tlZCBmcm9tIGNvbW1pdCBmNzdlZjM0NDM1NDJhMmMyYmJkNTllZTY2MTc4
Mjg3ZDRmYTViNDNmKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9hY3Bp
L2NwdV9pZGxlLmMgYi94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jCmlu
ZGV4IDc3M2VhZWNjMmJiZi4uMTEwZTQ2N2Q2Mzc1IDEwMDY0NAotLS0gYS94
ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jCisrKyBiL3hlbi9hcmNoL3g4
Ni9hY3BpL2NwdV9pZGxlLmMKQEAgLTYyLDYgKzYyLDkgQEAKIHN0YXRpYyBh
bHdheXNfaW5saW5lIHZvaWQgbW9uaXRvcigKICAgICBjb25zdCB2b2lkICph
ZGRyLCB1bnNpZ25lZCBpbnQgZWN4LCB1bnNpZ25lZCBpbnQgZWR4KQogewor
ICAgIGFsdGVybmF0aXZlX2lucHV0KCIiLCAiY2xmbHVzaCAoJVthZGRyXSki
LCBYODZfQlVHX0NMRkxVU0hfTU9OSVRPUiwKKyAgICAgICAgICAgICAgICAg
ICAgICBbYWRkcl0gImEiIChhZGRyKSk7CisKICAgICBhc20gdm9sYXRpbGUg
KCAibW9uaXRvciIKICAgICAgICAgICAgICAgICAgICA6OiAiYSIgKGFkZHIp
LCAiYyIgKGVjeCksICJkIiAoZWR4KSApOwogfQpAQCAtNDg4LDEzICs0OTEs
NiBAQCB2b2lkIG13YWl0X2lkbGVfd2l0aF9oaW50cyh1bnNpZ25lZCBpbnQg
ZWF4LCB1bnNpZ25lZCBpbnQgZWN4KQogICAgIHNfdGltZV90IGV4cGlyZXMg
PSBwZXJfY3B1KHRpbWVyX2RlYWRsaW5lLCBjcHUpOwogICAgIGNvbnN0IHZv
aWQgKm1vbml0b3JfYWRkciA9ICZtd2FpdF93YWtldXAoY3B1KTsKIAotICAg
IGlmICggYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0NMRkxVU0hfTU9OSVRP
UikgKQotICAgIHsKLSAgICAgICAgbWIoKTsKLSAgICAgICAgY2xmbHVzaCht
b25pdG9yX2FkZHIpOwotICAgICAgICBtYigpOwotICAgIH0KLQogICAgIG1v
bml0b3IobW9uaXRvcl9hZGRyLCAwLCAwKTsKICAgICBzbXBfbWIoKTsKIApA
QCAtOTI5LDE5ICs5MjUsNyBAQCB2b2lkIGNmX2NoZWNrIGFjcGlfZGVhZF9p
ZGxlKHZvaWQpCiAKICAgICAgICAgd2hpbGUgKCAxICkKICAgICAgICAgewot
ICAgICAgICAgICAgLyoKLSAgICAgICAgICAgICAqIDEuIFRoZSBDTEZMVVNI
IGlzIGEgd29ya2Fyb3VuZCBmb3IgZXJyYXR1bSBBQUk2NSBmb3IKLSAgICAg
ICAgICAgICAqIHRoZSBYZW9uIDc0MDAgc2VyaWVzLiAgCi0gICAgICAgICAg
ICAgKiAyLiBUaGUgV0JJTlZEIGlzIGluc3VmZmljaWVudCBkdWUgdG8gdGhl
IHNwdXJpb3VzLXdha2V1cAotICAgICAgICAgICAgICogY2FzZSB3aGVyZSB3
ZSByZXR1cm4gYXJvdW5kIHRoZSBsb29wLgotICAgICAgICAgICAgICogMy4g
VW5saWtlIHdiaW52ZCwgY2xmbHVzaCBpcyBhIGxpZ2h0IHdlaWdodCBidXQg
bm90IHNlcmlhbGl6aW5nIAotICAgICAgICAgICAgICogaW5zdHJ1Y3Rpb24s
IGhlbmNlIG1lbW9yeSBmZW5jZSBpcyBuZWNlc3NhcnkgdG8gbWFrZSBzdXJl
IGFsbCAKLSAgICAgICAgICAgICAqIGxvYWQvc3RvcmUgdmlzaWJsZSBiZWZv
cmUgZmx1c2ggY2FjaGUgbGluZS4KLSAgICAgICAgICAgICAqLwotICAgICAg
ICAgICAgbWIoKTsKLSAgICAgICAgICAgIGNsZmx1c2gobXdhaXRfcHRyKTsK
ICAgICAgICAgICAgIG1vbml0b3IobXdhaXRfcHRyLCAwLCAwKTsKLSAgICAg
ICAgICAgIG1iKCk7CiAgICAgICAgICAgICBtd2FpdChjeC0+YWRkcmVzcywg
MCk7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94
ODYvY3B1L2ludGVsLmMgYi94ZW4vYXJjaC94ODYvY3B1L2ludGVsLmMKaW5k
ZXggYzZjYTQyZDA3YWQ4Li4zYzk2YmFmZTM5NWYgMTAwNjQ0Ci0tLSBhL3hl
bi9hcmNoL3g4Ni9jcHUvaW50ZWwuYworKysgYi94ZW4vYXJjaC94ODYvY3B1
L2ludGVsLmMKQEAgLTQxMyw2ICs0MTMsNyBAQCBzdGF0aWMgdm9pZCBfX2lu
aXQgcHJvYmVfbXdhaXRfZXJyYXRhKHZvaWQpCiAgKgogICogWGVvbiA3NDAw
IGVycmF0dW0gQUFJNjUgKGFuZCBmdXJ0aGVyIG5ld2VyIFhlb25zKQogICog
TU9OSVRPUi9NV0FJVCBtYXkgaGF2ZSBleGNlc3NpdmUgZmFsc2Ugd2FrZXVw
cworICogaHR0cHM6Ly93ZWIuYXJjaGl2ZS5vcmcvd2ViLzIwMDkwMjE5MDU0
ODQxL2h0dHA6Ly9kb3dubG9hZC5pbnRlbC5jb20vZGVzaWduL3hlb24vc3Bl
Y3VwZHQvMzIwMzM2MDEucGRmCiAgKi8KIHN0YXRpYyB2b2lkIEludGVsX2Vy
cmF0YV93b3JrYXJvdW5kcyhzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCiB7CkBA
IC00MzAsNyArNDMxLDcgQEAgc3RhdGljIHZvaWQgSW50ZWxfZXJyYXRhX3dv
cmthcm91bmRzKHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKIAogCWlmIChjLT54
ODYgPT0gNiAmJiBjcHVfaGFzX2NsZmx1c2ggJiYKIAkgICAgKGMtPng4Nl9t
b2RlbCA9PSAyOSB8fCBjLT54ODZfbW9kZWwgPT0gNDYgfHwgYy0+eDg2X21v
ZGVsID09IDQ3KSkKLQkJX19zZXRfYml0KFg4Nl9GRUFUVVJFX0NMRkxVU0hf
TU9OSVRPUiwgYy0+eDg2X2NhcGFiaWxpdHkpOworCQlzZXR1cF9mb3JjZV9j
cHVfY2FwKFg4Nl9CVUdfQ0xGTFVTSF9NT05JVE9SKTsKIAogCXByb2JlX2Mz
X2VycmF0YShjKTsKIAlpZiAoc3lzdGVtX3N0YXRlIDwgU1lTX1NUQVRFX3Nt
cF9ib290KQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNt
L2NwdWZlYXR1cmVzLmggYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vY3B1
ZmVhdHVyZXMuaAppbmRleCA5ZTNlZDIxYzAyNmQuLjg0YzkzMjkyYzgwYyAx
MDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1
cmVzLmgKKysrIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1
cmVzLmgKQEAgLTE5LDcgKzE5LDcgQEAgWEVOX0NQVUZFQVRVUkUoQVJDSF9Q
RVJGTU9OLCAgICAgIFg4Nl9TWU5USCggMykpIC8qIEludGVsIEFyY2hpdGVj
dHVyYWwgUGVyZk1vbgogWEVOX0NQVUZFQVRVUkUoVFNDX1JFTElBQkxFLCAg
ICAgIFg4Nl9TWU5USCggNCkpIC8qIFRTQyBpcyBrbm93biB0byBiZSByZWxp
YWJsZSAqLwogWEVOX0NQVUZFQVRVUkUoWFRPUE9MT0dZLCAgICAgICAgIFg4
Nl9TWU5USCggNSkpIC8qIGNwdSB0b3BvbG9neSBlbnVtIGV4dGVuc2lvbnMg
Ki8KIFhFTl9DUFVGRUFUVVJFKENQVUlEX0ZBVUxUSU5HLCAgICBYODZfU1lO
VEgoIDYpKSAvKiBjcHVpZCBmYXVsdGluZyAqLwotWEVOX0NQVUZFQVRVUkUo
Q0xGTFVTSF9NT05JVE9SLCAgIFg4Nl9TWU5USCggNykpIC8qIGNsZmx1c2gg
cmVxZCB3aXRoIG1vbml0b3IgKi8KKy8qIEJpdCA3IHVudXNlZCAqLwogWEVO
X0NQVUZFQVRVUkUoQVBFUkZNUEVSRiwgICAgICAgIFg4Nl9TWU5USCggOCkp
IC8qIEFQRVJGTVBFUkYgKi8KIFhFTl9DUFVGRUFUVVJFKE1GRU5DRV9SRFRT
QywgICAgICBYODZfU1lOVEgoIDkpKSAvKiBNRkVOQ0Ugc3luY2hyb25pemVz
IFJEVFNDICovCiBYRU5fQ1BVRkVBVFVSRShYRU5fU01FUCwgICAgICAgICAg
WDg2X1NZTlRIKDEwKSkgLyogU01FUCBnZXRzIHVzZWQgYnkgWGVuIGl0c2Vs
ZiAqLwpAQCAtNTIsNiArNTIsNyBAQCBYRU5fQ1BVRkVBVFVSRShVU0VfVk1D
QUxMLCAgICAgICAgWDg2X1NZTlRIKDMwKSkgLyogVXNlIFZNQ0FMTCBpbnN0
ZWFkIG9mIFZNTUNBTAogI2RlZmluZSBYODZfQlVHX05VTExfU0VHICAgICAg
ICAgIFg4Nl9CVUcoIDEpIC8qIE5VTEwtaW5nIGEgc2VsZWN0b3IgcHJlc2Vy
dmVzIHRoZSBiYXNlIGFuZCBsaW1pdC4gKi8KICNkZWZpbmUgWDg2X0JVR19D
TEZMVVNIX01GRU5DRSAgICBYODZfQlVHKCAyKSAvKiBNRkVOQ0UgbmVlZGVk
IHRvIHNlcmlhbGlzZSBDTEZMVVNIICovCiAjZGVmaW5lIFg4Nl9CVUdfSUJQ
Ql9OT19SRVQgICAgICAgWDg2X0JVRyggMykgLyogSUJQQiBkb2Vzbid0IGZs
dXNoIHRoZSBSU0IvUkFTICovCisjZGVmaW5lIFg4Nl9CVUdfQ0xGTFVTSF9N
T05JVE9SICAgWDg2X0JVRyggNCkgLyogTU9OSVRPUiByZXF1aXJlcyBDTEZM
VVNIICovCiAKICNkZWZpbmUgWDg2X1NQRUNfTk9fTEZFTkNFX0VOVFJZX1BW
IFg4Nl9CVUcoMTYpIC8qIChObykgc2FmZXR5IExGRU5DRSBmb3IgU1BFQ19D
VFJMX0VOVFJZX1BWLiAqLwogI2RlZmluZSBYODZfU1BFQ19OT19MRkVOQ0Vf
RU5UUllfSU5UUiBYODZfQlVHKDE3KSAvKiAoTm8pIHNhZmV0eSBMRkVOQ0Ug
Zm9yIFNQRUNfQ1RSTF9FTlRSWV9JTlRSLiAqLwo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.17-05.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.17-05.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAyNCBKdW4gMjAyNSAxNToyMDo1MiArMDEwMApTdWJq
ZWN0OiBSZXZlcnQgcGFydCBvZiAieDg2L213YWl0LWlkbGU6IGRpc2FibGUg
SUJSUyBkdXJpbmcgbG9uZyBpZGxlIgoKTW9zdCBvZiB0aGUgcGF0Y2ggKGhh
bmRsaW5nIG9mIENQVUlETEVfRkxBR19JQlJTKSBpcyBmaW5lLCBidXQgdGhl
CmFkanVzdGVtZW50cyB0byBtd2FpdF9pZGxlKCkgYXJlIG5vdDsgc3BlY19j
dHJsX2VudGVyX2lkbGUoKSBkb2VzIG1vcmUgdGhhbgpqdXN0IGFsdGVyIE1T
Ul9TUEVDX0NUUkwuSUJSUy4KClRoZSBvbmx5IHJlYXNvbiB0aGlzIGRvZXNu
J3QgbmVlZCBhbiBYU0EgaXMgYmVjYXVzZSB0aGUgdW5jb25kaXRpb25hbApz
cGVjX2N0cmxfe2VudGVyLGV4aXR9X2lkbGUoKSBpbiBtd2FpdF9pZGxlX3dp
dGhfaGludHMoKSB3ZXJlIGxlZnQgdW5hbHRlcmVkLAphbmQgdGh1cyB0aGUg
TVdBSVQgcmVtYWluZWQgcHJvcGVybHkgcHJvdGVjdGVkLgoKVGhlcmUgKHdv
dWxkIGhhdmUgYmVlbikgdHdvIHByb2JsZW1zLiAgSW4gdGhlIGlicnNfZGlz
YWJsZSAoPT0gZGVlcCBDKSBjYXNlOgoKICogT24gZW50cnksIFZFUlcgYW5k
IFJTQi1zdHVmZmluZyBhcmUgYXJjaGl0ZWN0dXJhbGx5IHNraXBwZWQuCiAq
IE9uIGV4aXQsIHRoZXJlJ3MgYSBicmFuY2ggY3Jvc3NpbmcgdGhlIFdSTVNS
IHdoaWNoIHJlaW5zdGF0ZXMgdGhlCiAgIHNwZWN1bGF0aXZlIHNhZmV0eSBm
b3IgaW5kaXJlY3QgYnJhbmNoZXMuCgpBbGwgdGhpcyBjaGFuZ2UgZGlkIHdh
cyBkb3VibGUgdXAgdGhlIGV4cGVuc2l2ZSBvcGVyYXRpb25zIGluIHRoZSBk
ZWVwIEMgY2FzZSwKYW5kIGZhaWwgdG8gb3B0aW1pc2UgdGhlIGludGVuZGVk
IGNhc2UuCgpJIGhhdmUgYW4gaWRlYSBvZiBob3cgdG8gcGx1bWIgdGhpcyBt
b3JlIG5pY2VseSwgYnV0IGl0IHJlcXVpcmVzIGxhcmdlcgpjaGFuZ2VzIHRv
IGxlZ2FjeSBJQlJTIGhhbmRsaW5nIHRvIG5vdCBtYWtlIHNwZWNfY3RybF9l
bnRlcl9pZGxlKCkgdnVsbmVyYWJsZQppbiBvdGhlciB3YXlzLiAgSW4gdGhl
IHNob3J0IHRlcm0sIHNpbXBseSB0YWtlIG91dCB0aGUgcGVyZiBoaXQuCgpG
aXhlczogMDhhY2RmOWEyNjE1ICgieDg2L213YWl0LWlkbGU6IGRpc2FibGUg
SUJSUyBkdXJpbmcgbG9uZyBpZGxlIikKU2lnbmVkLW9mZi1ieTogQW5kcmV3
IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KUmV2aWV3ZWQt
Ynk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KKGNoZXJyeSBw
aWNrZWQgZnJvbSBjb21taXQgMDdkNzE2MzMzNGE3NTA3ZDMyOTk1OGIxOWQ5
NzZiZTc2OTU4MDk5OSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1
L213YWl0LWlkbGUuYyBiL3hlbi9hcmNoL3g4Ni9jcHUvbXdhaXQtaWRsZS5j
CmluZGV4IGZmZGM2ZmIyZmMwZS4uMTJjMzYyNTdiN2JlIDEwMDY0NAotLS0g
YS94ZW4vYXJjaC94ODYvY3B1L213YWl0LWlkbGUuYworKysgYi94ZW4vYXJj
aC94ODYvY3B1L213YWl0LWlkbGUuYwpAQCAtOTAyLDcgKzkwMiw2IEBAIHN0
YXRpYyBjb25zdCBzdHJ1Y3QgY3B1aWRsZV9zdGF0ZSBzbnJfY3N0YXRlc1td
ID0gewogc3RhdGljIHZvaWQgY2ZfY2hlY2sgbXdhaXRfaWRsZSh2b2lkKQog
ewogCXVuc2lnbmVkIGludCBjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7Ci0J
c3RydWN0IGNwdV9pbmZvICppbmZvID0gZ2V0X2NwdV9pbmZvKCk7CiAJc3Ry
dWN0IGFjcGlfcHJvY2Vzc29yX3Bvd2VyICpwb3dlciA9IHByb2Nlc3Nvcl9w
b3dlcnNbY3B1XTsKIAlzdHJ1Y3QgYWNwaV9wcm9jZXNzb3JfY3ggKmN4ID0g
TlVMTDsKIAl1bnNpZ25lZCBpbnQgbmV4dF9zdGF0ZTsKQEAgLTkyOSw2ICs5
MjgsOCBAQCBzdGF0aWMgdm9pZCBjZl9jaGVjayBtd2FpdF9pZGxlKHZvaWQp
CiAJCQlwbV9pZGxlX3NhdmUoKTsKIAkJZWxzZQogCQl7CisJCQlzdHJ1Y3Qg
Y3B1X2luZm8gKmluZm8gPSBnZXRfY3B1X2luZm8oKTsKKwogCQkJc3BlY19j
dHJsX2VudGVyX2lkbGUoaW5mbyk7CiAJCQlzYWZlX2hhbHQoKTsKIAkJCXNw
ZWNfY3RybF9leGl0X2lkbGUoaW5mbyk7CkBAIC05NTUsMTEgKzk1Niw2IEBA
IHN0YXRpYyB2b2lkIGNmX2NoZWNrIG13YWl0X2lkbGUodm9pZCkKIAlpZiAo
KGN4LT50eXBlID49IDMpICYmIGVycmF0YV9jNl93b3JrYXJvdW5kKCkpCiAJ
CWN4ID0gcG93ZXItPnNhZmVfc3RhdGU7CiAKLQlpZiAoY3gtPmlicnNfZGlz
YWJsZSkgewotCQlBU1NFUlQoIWN4LT5pcnFfZW5hYmxlX2Vhcmx5KTsKLQkJ
c3BlY19jdHJsX2VudGVyX2lkbGUoaW5mbyk7Ci0JfQotCiAjaWYgMCAvKiBY
WFggQ2FuIHdlL2RvIHdlIG5lZWQgdG8gZG8gc29tZXRoaW5nIHNpbWlsYXIg
b24gWGVuPyAqLwogCS8qCiAJICogbGVhdmVfbW0oKSB0byBhdm9pZCBjb3N0
bHkgYW5kIG9mdGVuIHVubmVjZXNzYXJ5IHdha2V1cHMKQEAgLTk5MSwxMCAr
OTg3LDYgQEAgc3RhdGljIHZvaWQgY2ZfY2hlY2sgbXdhaXRfaWRsZSh2b2lk
KQogCiAJLyogTm93IGJhY2sgaW4gQzAuICovCiAJdXBkYXRlX2lkbGVfc3Rh
dHMocG93ZXIsIGN4LCBiZWZvcmUsIGFmdGVyKTsKLQotCWlmIChjeC0+aWJy
c19kaXNhYmxlKQotCQlzcGVjX2N0cmxfZXhpdF9pZGxlKGluZm8pOwotCiAJ
bG9jYWxfaXJxX2VuYWJsZSgpOwogCiAJVFJBQ0VfNkQoVFJDX1BNX0lETEVf
RVhJVCwgY3gtPnR5cGUsIGFmdGVyLAo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.17-06.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.17-06.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogRnJpLCAyNyBKdW4gMjAyNSAxNDo0NjowMSArMDEwMApTdWJq
ZWN0OiB4ODYvY3B1LXBvbGljeTogU2ltcGxpZnkgbG9naWMgaW4KIGd1ZXN0
X2NvbW1vbl9kZWZhdWx0X2ZlYXR1cmVfYWRqdXN0bWVudHMoKQoKRm9yIGZl
YXR1cmVzIHdoaWNoIGFyZSB1bmNvbmRpdGlvbmFsbHkgc2V0IGluIHRoZSBt
YXggcG9saWNpZXMsIG1ha2luZyB0aGUKZGVmYXVsdCBwb2xpY3kgdG8gbWF0
Y2ggdGhlIGhvc3QgY2FuIGJlIGRvbmUgd2l0aCBhIGNvbmRpdGlvbmFsIGNs
ZWFyLgoKVGhpcyBpcyBzaW1wbGVyIHRoYW4gdGhlIHVuY29uZGl0aW9uYWwg
Y2xlYXIsIGNvbmRpdGlvbmFsIHNldCBjdXJyZW50bHkKcGVyZm9ybWVkLgoK
U2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNA
Y2l0cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGlj
aEBzdXNlLmNvbT4KKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgMzBmOGZl
ZDY4ZjNjMmU2MzU5NGZmOTIwMmIzZDA1Yjk3MTc4MWUzNikKCmRpZmYgLS1n
aXQgYS94ZW4vYXJjaC94ODYvY3B1LXBvbGljeS5jIGIveGVuL2FyY2gveDg2
L2NwdS1wb2xpY3kuYwppbmRleCBjODEzZGYzNWNiYjAuLjQyYmQwMzllN2My
ZSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2NwdS1wb2xpY3kuYworKysg
Yi94ZW4vYXJjaC94ODYvY3B1LXBvbGljeS5jCkBAIC01MTEsMTcgKzUxMSwx
NCBAQCBzdGF0aWMgdm9pZCBfX2luaXQgZ3Vlc3RfY29tbW9uX2RlZmF1bHRf
ZmVhdHVyZV9hZGp1c3RtZW50cyh1aW50MzJfdCAqZnMpCiAgICAgICAgICAq
IHJlYXNvbnMsIHNvIHJlc2V0IHRoZSBkZWZhdWx0IHBvbGljeSBiYWNrIHRv
IHRoZSBob3N0IHZhbHVlcyBpbgogICAgICAgICAgKiBjYXNlIHdlJ3JlIHVu
YWZmZWN0ZWQuCiAgICAgICAgICAqLwotICAgICAgICBfX2NsZWFyX2JpdChY
ODZfRkVBVFVSRV9NRF9DTEVBUiwgZnMpOwotICAgICAgICBpZiAoIGNwdV9o
YXNfbWRfY2xlYXIgKQotICAgICAgICAgICAgX19zZXRfYml0KFg4Nl9GRUFU
VVJFX01EX0NMRUFSLCBmcyk7CisgICAgICAgIGlmICggIWNwdV9oYXNfbWRf
Y2xlYXIgKQorICAgICAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVf
TURfQ0xFQVIsIGZzKTsKIAotICAgICAgICBfX2NsZWFyX2JpdChYODZfRkVB
VFVSRV9GQl9DTEVBUiwgZnMpOwotICAgICAgICBpZiAoIGNwdV9oYXNfZmJf
Y2xlYXIgKQotICAgICAgICAgICAgX19zZXRfYml0KFg4Nl9GRUFUVVJFX0ZC
X0NMRUFSLCBmcyk7CisgICAgICAgIGlmICggIWNwdV9oYXNfZmJfY2xlYXIg
KQorICAgICAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVfRkJfQ0xF
QVIsIGZzKTsKIAotICAgICAgICBfX2NsZWFyX2JpdChYODZfRkVBVFVSRV9S
RkRTX0NMRUFSLCBmcyk7Ci0gICAgICAgIGlmICggY3B1X2hhc19yZmRzX2Ns
ZWFyICkKLSAgICAgICAgICAgIF9fc2V0X2JpdChYODZfRkVBVFVSRV9SRkRT
X0NMRUFSLCBmcyk7CisgICAgICAgIGlmICggIWNwdV9oYXNfcmZkc19jbGVh
ciApCisgICAgICAgICAgICBfX2NsZWFyX2JpdChYODZfRkVBVFVSRV9SRkRT
X0NMRUFSLCBmcyk7CiAKICAgICAgICAgLyoKICAgICAgICAgICogVGhlIEdh
dGhlciBEYXRhIFNhbXBsaW5nIG1pY3JvY29kZSBtaXRpZ2F0aW9uIChBdWd1
c3QgMjAyMykgaGFzIGFuCkBAIC01NDEsMTMgKzUzOCwxMSBAQCBzdGF0aWMg
dm9pZCBfX2luaXQgZ3Vlc3RfY29tbW9uX2RlZmF1bHRfZmVhdHVyZV9hZGp1
c3RtZW50cyh1aW50MzJfdCAqZnMpCiAgICAgICogVG9wb2xvZ3kgaW5mb3Jt
YXRpb24gaXMgYXQgdGhlIHRvb2xzdGFjaydzIGRpc2NyZXRpb24gc28gdGhl
c2UgYXJlCiAgICAgICogdW5jb25kaXRpb25hbGx5IHNldCBpbiBtYXgsIGJ1
dCBwaWNrIGEgZGVmYXVsdCB3aGljaCBtYXRjaGVzIHRoZSBob3N0LgogICAg
ICAqLwotICAgIF9fY2xlYXJfYml0KFg4Nl9GRUFUVVJFX0hUVCwgZnMpOwot
ICAgIGlmICggY3B1X2hhc19odHQgKQotICAgICAgICBfX3NldF9iaXQoWDg2
X0ZFQVRVUkVfSFRULCBmcyk7CisgICAgaWYgKCAhY3B1X2hhc19odHQgKQor
ICAgICAgICBfX2NsZWFyX2JpdChYODZfRkVBVFVSRV9IVFQsIGZzKTsKIAot
ICAgIF9fY2xlYXJfYml0KFg4Nl9GRUFUVVJFX0NNUF9MRUdBQ1ksIGZzKTsK
LSAgICBpZiAoIGNwdV9oYXNfY21wX2xlZ2FjeSApCi0gICAgICAgIF9fc2V0
X2JpdChYODZfRkVBVFVSRV9DTVBfTEVHQUNZLCBmcyk7CisgICAgaWYgKCAh
Y3B1X2hhc19jbXBfbGVnYWN5ICkKKyAgICAgICAgX19jbGVhcl9iaXQoWDg2
X0ZFQVRVUkVfQ01QX0xFR0FDWSwgZnMpOwogCiAgICAgLyoKICAgICAgKiBP
biBjZXJ0YWluIGhhcmR3YXJlLCBzcGVjdWxhdGl2ZSBvciBlcnJhdGEgd29y
a2Fyb3VuZHMgY2FuIHJlc3VsdCBpbgo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.17-07.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.17-07.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDExOjMzOjQxICswMTAwClN1Ympl
Y3Q6IHg4Ni9jcHUtcG9saWN5OiBGaXggaGFuZGxpbmcgb2YgbGVhZiAweDgw
MDAwMDIxCgpXaGVuIHN1cHBvcnQgd2FzIG9yaWdpbmFsbHkgaW50cm9kdWNl
ZCwgZWJ4LCBlY3ggYW5kIGVkeCB3ZXJlIHJlc2VydmVkIGFuZApzaG91bGQg
aGF2ZSBiZWVuIHplcm9lZCBpbiByZWNhbGN1bGF0ZV9taXNjKCkgdG8gYXZv
aWQgbGVha2luZyBpbnRvIGd1ZXN0cy4KClNpbmNlIHRoZW4sIGZpZWxkcyBo
YXZlIGJlZW4gYWRkZWQgaW50byBlYnguICBHdWVzdHMgY2FuJ3QgbG9hZCBt
aWNyb2NvZGUsIHNvCnNob3VsZG4ndCBzZWUgdWNvZGVfc2l6ZSwgYW5kIHdo
aWxlIGluIHByaW5jaXBsZSB3ZSBkbyB3YW50IHRvIHN1cHBvcnQgbGFyZ2Vy
ClJBUCBzaXplcyBpbiBndWVzdHMsIHZpcnR1YWxpc2luZyB0aGlzIGZvciBn
dWVzdHMgZGVwZW5kcyBvbiBBTUQgcHJvY3VkaW5nIGFueQpvZmZpY2lhbCBk
b2N1bWVudGF0aW9uIGZvciBFUkFQUywgd2hpY2ggaXMgbG9uZyBvdmVyZHVl
IGFuZCB3aXRoIG5vIEVUQS4KClRoaXMgcGF0Y2ggd2lsbCBjYXVzZSBhIGRp
ZmZlcmVuY2UgaW4gZ3Vlc3RzIG9uIFplbjUgQ1BVcywgYnV0IGFzIHRoZSBt
YWluCkVSQVBTIGZlYXR1cmUgaXMgaGlkZGVuLCBndWVzdHMgc2hvdWxkIGJl
IGlnbm9yaW5nIHRoZSByYXBfc2l6ZSBmaWVsZCB0b28uCgpGaXhlczogZTli
NGZlMjYzNjQ5ICgieDg2L2NwdWlkOiBzdXBwb3J0IExGRU5DRSBhbHdheXMg
c2VyaWFsaXNpbmcgQ1BVSUQgYml0IikKU2lnbmVkLW9mZi1ieTogQW5kcmV3
IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KUmV2aWV3ZWQt
Ynk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KKGNoZXJyeSBw
aWNrZWQgZnJvbSBjb21taXQgMTBkYzM1YzUxNmY3YjkyMjQ1OTBhN2E0ZTI3
MjJiYmZkNzBmYTg3YSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1
LXBvbGljeS5jIGIveGVuL2FyY2gveDg2L2NwdS1wb2xpY3kuYwppbmRleCA0
MmJkMDM5ZTdjMmUuLjhmMDA2ZmUwOGFjYiAxMDA2NDQKLS0tIGEveGVuL2Fy
Y2gveDg2L2NwdS1wb2xpY3kuYworKysgYi94ZW4vYXJjaC94ODYvY3B1LXBv
bGljeS5jCkBAIC0zNDAsNiArMzQwLDkgQEAgc3RhdGljIHZvaWQgcmVjYWxj
dWxhdGVfbWlzYyhzdHJ1Y3QgY3B1X3BvbGljeSAqcCkKICAgICAgICAgcC0+
ZXh0ZC5yYXdbMHgxZV0gPSBFTVBUWV9MRUFGOyAvKiBUb3BvRXh0IEFQSUMg
SUQvQ29yZS9Ob2RlICovCiAgICAgICAgIHAtPmV4dGQucmF3WzB4MWZdID0g
RU1QVFlfTEVBRjsgLyogU0VWICovCiAgICAgICAgIHAtPmV4dGQucmF3WzB4
MjBdID0gRU1QVFlfTEVBRjsgLyogUGxhdGZvcm0gUW9TICovCisgICAgICAg
IHAtPmV4dGQucmF3WzB4MjFdLmIgPSAwOworICAgICAgICBwLT5leHRkLnJh
d1sweDIxXS5jID0gMDsKKyAgICAgICAgcC0+ZXh0ZC5yYXdbMHgyMV0uZCA9
IDA7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL3hl
bi9pbmNsdWRlL3hlbi9saWIveDg2L2NwdS1wb2xpY3kuaCBiL3hlbi9pbmNs
dWRlL3hlbi9saWIveDg2L2NwdS1wb2xpY3kuaAppbmRleCA2ZDVlOWVkZDI2
OWIuLmJhMjliZmU5YjQxNCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVu
L2xpYi94ODYvY3B1LXBvbGljeS5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9s
aWIveDg2L2NwdS1wb2xpY3kuaApAQCAtMzI0LDcgKzMyNCwxMCBAQCBzdHJ1
Y3QgY3B1X3BvbGljeQogICAgICAgICAgICAgICAgIHVpbnQzMl90IGUyMWE7
CiAgICAgICAgICAgICAgICAgc3RydWN0IHsgREVDTF9CSVRGSUVMRChlMjFh
KTsgfTsKICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICB1aW50MzJfdCAv
KiBiICovOjMyLCAvKiBjICovOjMyLCAvKiBkICovOjMyOworICAgICAgICAg
ICAgdWludDE2X3QgdWNvZGVfc2l6ZTsgLyogVW5pdHMgb2YgMTYgYnl0ZXMg
Ki8KKyAgICAgICAgICAgIHVpbnQ4X3QgIHJhcF9zaXplOyAgIC8qIFVuaXRz
IG9mIDggZW50cmllcyAqLworICAgICAgICAgICAgdWludDhfdCAgOjg7Cisg
ICAgICAgICAgICB1aW50MzJfdCAvKiBjICovOjMyLCAvKiBkICovOjMyOwog
ICAgICAgICB9OwogICAgIH0gZXh0ZDsKIAo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.17-08.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.17-08.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDE1OjUxOjUzICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBSZW1vdmUgYnJva2VuIE1XQUlUIGltcGxlbWVudGF0
aW9uCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFp
bjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4
Yml0CgpjcHVpZGxlX3dha2V1cF9td2FpdCgpIGlzIGEgVE9DVE9VIHJhY2Uu
ICBUaGUgY3B1bWFza19hbmQoKSBzYW1wbGluZwpjcHVpZGxlX213YWl0X2Zs
YWdzIGNhbiB0YWtlIGEgYXJiaXRyYXJ5IHBlcmlvZCBvZiB0aW1lLCBhbmQg
dGhlcmUncyBubwpndWFyYW50ZWUgdGhhdCB0aGUgdGFyZ2V0IENQVXMgYXJl
IHN0aWxsIGluIE1XQUlUIHdoZW4gd3JpdGluZyBpbnRvCm13YWl0X3dha2V1
cChjcHUpLgoKVGhlIGNvbnNlcXVlbmNlIG9mIHRoZSByYWNlIGlzIHRoYXQg
d2UnbGwgZmFpbCB0byBJUEkgY2VydGFpbiB0YXJnZXRzLiAgQWxzbywKdGhl
cmUncyBubyBndWFyYW50ZWUgdGhhdCBtd2FpdF9pZGxlX3dpdGhfaGludHMo
KSB3aWxsIHJhaXNlIGEgVElNRVJfU09GVElSUQpvbiBpdCdzIHdheSBvdXQu
CgpUaGUgZnVuZGFtZW50YWwgYnVnIGlzIHRoYXQgdGhlICJpbl9td2FpdCIg
dmFyaWFibGUgbmVlZHMgdG8gYmUgaW4gdGhlCm1vbml0b3JlZCBsaW5lLCBh
bmQgbm90IGluIGEgc2VwYXJhdGUgY3B1aWRsZV9td2FpdF9mbGFncyB2YXJp
YWJsZSwgaW4gb3JkZXIKdG8gZG8gdGhpcyBpbiBhIHJhY2UtZnJlZSB3YXku
CgpBcnJhbmdpbmcgdG8gZml4IHRoaXMgd2hpbGUga2VlcGluZyB0aGUgb2xk
IGltcGxlbWVudGF0aW9uIGlzIHByb2hpYml0aXZlLCBzbwpzdHJpcCB0aGUg
Y3VycmVudCBvbmUgb3V0IGluIG9yZGVyIHRvIGltcGxlbWVudCB0aGUgbmV3
IG9uZSBjbGVhbmx5LiAgSW4gdGhlCmludGVyaW0sIHRoaXMgY2F1c2VzIElQ
SXMgdG8gYmUgdXNlZCB1bmNvbmRpdGlvbmFsbHkgd2hpY2ggaXMgc2FmZSBh
bGJlaXQKc3Vib3B0aW1hbC4KCkZpeGVzOiAzZDUyMWU5MzNlMWIgKCJjcHVp
ZGxlOiBtd2FpdCBvbiBzb2Z0aXJxX3BlbmRpbmcgJiByZW1vdmUgd2FrZXVw
IGlwaXMiKQpGaXhlczogMWFkYjM0ZWE4NDZkICgiQ1BVSURMRTogcmUtaW1w
bGVtZW50IG13YWl0IHdha2V1cCBwcm9jZXNzIikKU2lnbmVkLW9mZi1ieTog
QW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KUmV2
aWV3ZWQtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXgu
Y29tPgooY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCAzZmFmMDg2NmEzMzA3
MGI5MjZhYjc4ZTYyOTgyOTA0MDNmODVlNzZjKQoKZGlmZiAtLWdpdCBhL3hl
bi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMgYi94ZW4vYXJjaC94ODYvYWNw
aS9jcHVfaWRsZS5jCmluZGV4IDExMGU0NjdkNjM3NS4uN2UzYjNkNzU0M2Jm
IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jCisr
KyBiL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKQEAgLTQ0OCwyNyAr
NDQ4LDYgQEAgc3RhdGljIGludCBfX2luaXQgY2ZfY2hlY2sgY3B1X2lkbGVf
a2V5X2luaXQodm9pZCkKIH0KIF9faW5pdGNhbGwoY3B1X2lkbGVfa2V5X2lu
aXQpOwogCi0vKgotICogVGhlIGJpdCBpcyBzZXQgaWZmIGNwdSB1c2UgbW9u
aXRvci9td2FpdCB0byBlbnRlciBDIHN0YXRlCi0gKiB3aXRoIHRoaXMgZmxh
ZyBzZXQsIENQVSBjYW4gYmUgd2FrZW4gdXAgZnJvbSBDIHN0YXRlCi0gKiBi
eSB3cml0aW5nIHRvIHNwZWNpZmljIG1lbW9yeSBhZGRyZXNzLCBpbnN0ZWFk
IG9mIHNlbmRpbmcgYW4gSVBJLgotICovCi1zdGF0aWMgY3B1bWFza190IGNw
dWlkbGVfbXdhaXRfZmxhZ3M7Ci0KLXZvaWQgY3B1aWRsZV93YWtldXBfbXdh
aXQoY3B1bWFza190ICptYXNrKQotewotICAgIGNwdW1hc2tfdCB0YXJnZXQ7
Ci0gICAgdW5zaWduZWQgaW50IGNwdTsKLQotICAgIGNwdW1hc2tfYW5kKCZ0
YXJnZXQsIG1hc2ssICZjcHVpZGxlX213YWl0X2ZsYWdzKTsKLQotICAgIC8q
IENQVSBpcyBNV0FJVGluZyBvbiB0aGUgY3B1aWRsZV9td2FpdF93YWtldXAg
ZmxhZy4gKi8KLSAgICBmb3JfZWFjaF9jcHUoY3B1LCAmdGFyZ2V0KQotICAg
ICAgICBtd2FpdF93YWtldXAoY3B1KSA9IDA7Ci0KLSAgICBjcHVtYXNrX2Fu
ZG5vdChtYXNrLCBtYXNrLCAmdGFyZ2V0KTsKLX0KLQogLyogRm9yY2Ugc2Vu
ZGluZyBvZiBhIHdha2V1cCBJUEkgcmVnYXJkbGVzcyBvZiBtd2FpdCB1c2Fn
ZS4gKi8KIGJvb2wgX19yb19hZnRlcl9pbml0IGZvcmNlX213YWl0X2lwaV93
YWtldXA7CiAKQEAgLTQ3Nyw0MiArNDU2LDI1IEBAIGJvb2wgYXJjaF9za2lw
X3NlbmRfZXZlbnRfY2hlY2sodW5zaWduZWQgaW50IGNwdSkKICAgICBpZiAo
IGZvcmNlX213YWl0X2lwaV93YWtldXAgKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSAgICAvKgotICAgICAqIFRoaXMgcmVsaWVzIG9uIHNvZnRpcnFf
cGVuZGluZygpIGFuZCBtd2FpdF93YWtldXAoKSB0byBhY2Nlc3MgZGF0YQot
ICAgICAqIG9uIHRoZSBzYW1lIGNhY2hlIGxpbmUuCi0gICAgICovCi0gICAg
c21wX21iKCk7Ci0gICAgcmV0dXJuICEhY3B1bWFza190ZXN0X2NwdShjcHUs
ICZjcHVpZGxlX213YWl0X2ZsYWdzKTsKKyAgICByZXR1cm4gZmFsc2U7CiB9
CiAKIHZvaWQgbXdhaXRfaWRsZV93aXRoX2hpbnRzKHVuc2lnbmVkIGludCBl
YXgsIHVuc2lnbmVkIGludCBlY3gpCiB7CiAgICAgdW5zaWduZWQgaW50IGNw
dSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKLSAgICBzX3RpbWVfdCBleHBpcmVz
ID0gcGVyX2NwdSh0aW1lcl9kZWFkbGluZSwgY3B1KTsKLSAgICBjb25zdCB2
b2lkICptb25pdG9yX2FkZHIgPSAmbXdhaXRfd2FrZXVwKGNwdSk7CisgICAg
Y29uc3QgdW5zaWduZWQgaW50ICp0aGlzX3NvZnRpcnFfcGVuZGluZyA9ICZz
b2Z0aXJxX3BlbmRpbmcoY3B1KTsKIAotICAgIG1vbml0b3IobW9uaXRvcl9h
ZGRyLCAwLCAwKTsKKyAgICBtb25pdG9yKHRoaXNfc29mdGlycV9wZW5kaW5n
LCAwLCAwKTsKICAgICBzbXBfbWIoKTsKIAotICAgIC8qCi0gICAgICogVGlt
ZXIgZGVhZGxpbmUgcGFzc2luZyBpcyB0aGUgZXZlbnQgb24gd2hpY2ggd2Ug
d2lsbCBiZSB3b2tlbiB2aWEKLSAgICAgKiBjcHVpZGxlX213YWl0X3dha2V1
cC4gU28gY2hlY2sgaXQgbm93IHRoYXQgdGhlIGxvY2F0aW9uIGlzIGFybWVk
LgotICAgICAqLwotICAgIGlmICggKGV4cGlyZXMgPiBOT1coKSB8fCBleHBp
cmVzID09IDApICYmICFzb2Z0aXJxX3BlbmRpbmcoY3B1KSApCisgICAgaWYg
KCAhKnRoaXNfc29mdGlycV9wZW5kaW5nICkKICAgICB7CiAgICAgICAgIHN0
cnVjdCBjcHVfaW5mbyAqaW5mbyA9IGdldF9jcHVfaW5mbygpOwogCi0gICAg
ICAgIGNwdW1hc2tfc2V0X2NwdShjcHUsICZjcHVpZGxlX213YWl0X2ZsYWdz
KTsKLQogICAgICAgICBzcGVjX2N0cmxfZW50ZXJfaWRsZShpbmZvKTsKICAg
ICAgICAgbXdhaXQoZWF4LCBlY3gpOwogICAgICAgICBzcGVjX2N0cmxfZXhp
dF9pZGxlKGluZm8pOwotCi0gICAgICAgIGNwdW1hc2tfY2xlYXJfY3B1KGNw
dSwgJmNwdWlkbGVfbXdhaXRfZmxhZ3MpOwogICAgIH0KLQotICAgIGlmICgg
ZXhwaXJlcyA8PSBOT1coKSAmJiBleHBpcmVzID4gMCApCi0gICAgICAgIHJh
aXNlX3NvZnRpcnEoVElNRVJfU09GVElSUSk7CiB9CiAKIHN0YXRpYyB2b2lk
IGFjcGlfcHJvY2Vzc29yX2ZmaF9jc3RhdGVfZW50ZXIoc3RydWN0IGFjcGlf
cHJvY2Vzc29yX2N4ICpjeCkKQEAgLTkxMyw3ICs4NzUsNyBAQCB2b2lkIGNm
X2NoZWNrIGFjcGlfZGVhZF9pZGxlKHZvaWQpCiAKICAgICBpZiAoIGN4LT5l
bnRyeV9tZXRob2QgPT0gQUNQSV9DU1RBVEVfRU1fRkZIICkKICAgICB7Ci0g
ICAgICAgIHZvaWQgKm13YWl0X3B0ciA9ICZtd2FpdF93YWtldXAoc21wX3By
b2Nlc3Nvcl9pZCgpKTsKKyAgICAgICAgdm9pZCAqbXdhaXRfcHRyID0gJnNv
ZnRpcnFfcGVuZGluZyhzbXBfcHJvY2Vzc29yX2lkKCkpOwogCiAgICAgICAg
IC8qCiAgICAgICAgICAqIENhY2hlIG11c3QgYmUgZmx1c2hlZCBhcyB0aGUg
bGFzdCBvcGVyYXRpb24gYmVmb3JlIHNsZWVwaW5nLgpkaWZmIC0tZ2l0IGEv
eGVuL2FyY2gveDg2L2hwZXQuYyBiL3hlbi9hcmNoL3g4Ni9ocGV0LmMKaW5k
ZXggNTBkNzg4Y2I2ZTcyLi4zMGZmM2RlMDI5YTQgMTAwNjQ0Ci0tLSBhL3hl
bi9hcmNoL3g4Ni9ocGV0LmMKKysrIGIveGVuL2FyY2gveDg2L2hwZXQuYwpA
QCAtMTg3LDggKzE4Nyw2IEBAIHN0YXRpYyB2b2lkIGV2dF9kb19icm9hZGNh
c3QoY3B1bWFza190ICptYXNrKQogICAgIGlmICggX19jcHVtYXNrX3Rlc3Rf
YW5kX2NsZWFyX2NwdShjcHUsIG1hc2spICkKICAgICAgICAgcmFpc2Vfc29m
dGlycShUSU1FUl9TT0ZUSVJRKTsKIAotICAgIGNwdWlkbGVfd2FrZXVwX213
YWl0KG1hc2spOwotCiAgICAgaWYgKCAhY3B1bWFza19lbXB0eShtYXNrKSAp
CiAgICAgICAgY3B1bWFza19yYWlzZV9zb2Z0aXJxKG1hc2ssIFRJTUVSX1NP
RlRJUlEpOwogfQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL2hhcmRpcnEuaCBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9oYXJk
aXJxLmgKaW5kZXggMjc2ZTM0MTlkNzc4Li5mM2U5M2NjOWI1MDcgMTAwNjQ0
Ci0tLSBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9oYXJkaXJxLmgKKysr
IGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2hhcmRpcnEuaApAQCAtNSwx
MSArNSwxMCBAQAogI2luY2x1ZGUgPHhlbi90eXBlcy5oPgogCiB0eXBlZGVm
IHN0cnVjdCB7Ci0JdW5zaWduZWQgaW50IF9fc29mdGlycV9wZW5kaW5nOwot
CXVuc2lnbmVkIGludCBfX2xvY2FsX2lycV9jb3VudDsKLQl1bnNpZ25lZCBp
bnQgbm1pX2NvdW50OwotCXVuc2lnbmVkIGludCBtY2VfY291bnQ7Ci0JYm9v
bF90IF9fbXdhaXRfd2FrZXVwOworICAgIHVuc2lnbmVkIGludCBfX3NvZnRp
cnFfcGVuZGluZzsKKyAgICB1bnNpZ25lZCBpbnQgX19sb2NhbF9pcnFfY291
bnQ7CisgICAgdW5zaWduZWQgaW50IG5taV9jb3VudDsKKyAgICB1bnNpZ25l
ZCBpbnQgbWNlX2NvdW50OwogfSBfX2NhY2hlbGluZV9hbGlnbmVkIGlycV9j
cHVzdGF0X3Q7CiAKICNpbmNsdWRlIDx4ZW4vaXJxX2NwdXN0YXQuaD4JLyog
U3RhbmRhcmQgbWFwcGluZ3MgZm9yIGlycV9jcHVzdGF0X3QgYWJvdmUgKi8K
ZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9jcHVpZGxlLmggYi94ZW4v
aW5jbHVkZS94ZW4vY3B1aWRsZS5oCmluZGV4IDUyMWE4ZGViMDRjMi4uZGRk
MzdmZTI3YTJlIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vY3B1aWRs
ZS5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9jcHVpZGxlLmgKQEAgLTkyLDgg
KzkyLDYgQEAgZXh0ZXJuIHN0cnVjdCBjcHVpZGxlX2dvdmVybm9yICpjcHVp
ZGxlX2N1cnJlbnRfZ292ZXJub3I7CiBib29sIGNwdWlkbGVfdXNpbmdfZGVl
cF9jc3RhdGUodm9pZCk7CiB2b2lkIGNwdWlkbGVfZGlzYWJsZV9kZWVwX2Nz
dGF0ZSh2b2lkKTsKIAotZXh0ZXJuIHZvaWQgY3B1aWRsZV93YWtldXBfbXdh
aXQoY3B1bWFza190ICptYXNrKTsKLQogI2RlZmluZSBDUFVJRExFX0RSSVZF
Ul9TVEFURV9TVEFSVCAgMQogCiBleHRlcm4gdm9pZCBtZW51X2dldF90cmFj
ZV9kYXRhKHUzMiAqZXhwZWN0ZWQsIHUzMiAqcHJlZCk7CmRpZmYgLS1naXQg
YS94ZW4vaW5jbHVkZS94ZW4vaXJxX2NwdXN0YXQuaCBiL3hlbi9pbmNsdWRl
L3hlbi9pcnFfY3B1c3RhdC5oCmluZGV4IGI5NjI5ZjI1YzI2Ni4uNWYwMzli
NGI5YTc2IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vaXJxX2NwdXN0
YXQuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vaXJxX2NwdXN0YXQuaApAQCAt
MjQsNiArMjQsNSBAQCBleHRlcm4gaXJxX2NwdXN0YXRfdCBpcnFfc3RhdFtd
OwogICAvKiBhcmNoIGluZGVwZW5kZW50IGlycV9zdGF0IGZpZWxkcyAqLwog
I2RlZmluZSBzb2Z0aXJxX3BlbmRpbmcoY3B1KQlfX0lSUV9TVEFUKChjcHUp
LCBfX3NvZnRpcnFfcGVuZGluZykKICNkZWZpbmUgbG9jYWxfaXJxX2NvdW50
KGNwdSkJX19JUlFfU1RBVCgoY3B1KSwgX19sb2NhbF9pcnFfY291bnQpCi0j
ZGVmaW5lIG13YWl0X3dha2V1cChjcHUpCV9fSVJRX1NUQVQoKGNwdSksIF9f
bXdhaXRfd2FrZXVwKQogCiAjZW5kaWYJLyogX19pcnFfY3B1c3RhdF9oICov
Cg==

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.17-09.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.17-09.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDE4OjEzOjI3ICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBEcm9wIGluY29ycmVjdCBzbXBfbWIoKSBpbiBtd2Fp
dF9pZGxlX3dpdGhfaGludHMoKQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50
LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFu
c2Zlci1FbmNvZGluZzogOGJpdAoKV2l0aCB0aGUgcmVjZW50IHNpbXBsaWZp
Y2F0aW9ucywgaXQgYmVjb21lcyBvYnZpb3VzIHRoYXQgc21wX21iKCkgaXNu
J3QgdGhlCnJpZ2h0IGJhcnJpZXIuICBTdHJpY3RseSBzcGVha2luZywgTU9O
SVRPUiBpcyBvcmRlcmVkIGFzIGEgbG9hZCwgYnV0IHNtcF9ybWIoKQppc24n
dCBjb3JyZWN0IGVpdGhlciwgYXMgdGhpcyBvbmx5IHBlcnRhaW5zIHRvIGxv
Y2FsIG9yZGVyaW5nLiAgQWxsIHdlIG5lZWQgaXMKYSBjb21waWxlciBiYXJy
aWVyKCkuCgpNZXJnZSB0aGUgYmFyaWVyKCkgaW50byB0aGUgbW9uaXRvcigp
IGl0c2VsZiwgYWxvbmcgd2l0aCBhbiBleHBsYW50aW9uLgoKTm8gZnVuY3Rp
b25hbCBjaGFuZ2UuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxh
bmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpBY2tlZC1ieTogUm9nZXIgUGF1
IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CihjaGVycnkgcGlja2Vk
IGZyb20gY29tbWl0IGU3NzEwZGQ4NDNiYTlkMjA0ZjZlZTI5NzNkNjEyMGMx
OTg0OTU4YTYpCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2FjcGkvY3B1
X2lkbGUuYyBiL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKaW5kZXgg
N2UzYjNkNzU0M2JmLi4zM2QxZmJiMDI4NTUgMTAwNjQ0Ci0tLSBhL3hlbi9h
cmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKKysrIGIveGVuL2FyY2gveDg2L2Fj
cGkvY3B1X2lkbGUuYwpAQCAtNjUsOCArNjUsMTIgQEAgc3RhdGljIGFsd2F5
c19pbmxpbmUgdm9pZCBtb25pdG9yKAogICAgIGFsdGVybmF0aXZlX2lucHV0
KCIiLCAiY2xmbHVzaCAoJVthZGRyXSkiLCBYODZfQlVHX0NMRkxVU0hfTU9O
SVRPUiwKICAgICAgICAgICAgICAgICAgICAgICBbYWRkcl0gImEiIChhZGRy
KSk7CiAKKyAgICAvKgorICAgICAqIFRoZSBtZW1vcnkgY2xvYmJlciBpcyBh
IGNvbXBpbGVyIGJhcnJpZXIuICBTdWJzZXFldW50IHJlYWRzIGZyb20gdGhl
CisgICAgICogbW9uaXRvcmVkIGNhY2hlbGluZSBtdXN0IG5vdCBiZSByZW9y
ZGVyZWQgb3ZlciBNT05JVE9SLgorICAgICAqLwogICAgIGFzbSB2b2xhdGls
ZSAoICJtb25pdG9yIgotICAgICAgICAgICAgICAgICAgIDo6ICJhIiAoYWRk
ciksICJjIiAoZWN4KSwgImQiIChlZHgpICk7CisgICAgICAgICAgICAgICAg
ICAgOjogImEiIChhZGRyKSwgImMiIChlY3gpLCAiZCIgKGVkeCkgOiAibWVt
b3J5IiApOwogfQogCiBzdGF0aWMgYWx3YXlzX2lubGluZSB2b2lkIG13YWl0
KHVuc2lnbmVkIGludCBlYXgsIHVuc2lnbmVkIGludCBlY3gpCkBAIC00NjUs
NyArNDY5LDYgQEAgdm9pZCBtd2FpdF9pZGxlX3dpdGhfaGludHModW5zaWdu
ZWQgaW50IGVheCwgdW5zaWduZWQgaW50IGVjeCkKICAgICBjb25zdCB1bnNp
Z25lZCBpbnQgKnRoaXNfc29mdGlycV9wZW5kaW5nID0gJnNvZnRpcnFfcGVu
ZGluZyhjcHUpOwogCiAgICAgbW9uaXRvcih0aGlzX3NvZnRpcnFfcGVuZGlu
ZywgMCwgMCk7Ci0gICAgc21wX21iKCk7CiAKICAgICBpZiAoICEqdGhpc19z
b2Z0aXJxX3BlbmRpbmcgKQogICAgIHsK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.17-10.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.17-10.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDIxOjQwOjUxICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBDb252ZXJ0IGZvcmNlX213YWl0X2lwaV93YWtldXAg
dG8gWDg2X0JVR19NT05JVE9SCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQt
VHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5z
ZmVyLUVuY29kaW5nOiA4Yml0CgpXZSdyZSBnb2luZyB0byB3YW50IGFsdGVy
bmF0aXZlLXBhdGNoIGJhc2VkIG9uIGl0LgoKTm8gZnVuY3Rpb25hbCBjaGFu
Z2UuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29v
cGVyM0BjaXRyaXguY29tPgpBY2tlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8
cm9nZXIucGF1QGNpdHJpeC5jb20+CihjaGVycnkgcGlja2VkIGZyb20gY29t
bWl0IGIwY2EwZjkzZjQ3YzQzZjg5ODQ5ODExMzdhZjA3Y2EzZDE2MWUzZWMp
CgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYyBi
L3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKaW5kZXggMzNkMWZiYjAy
ODU1Li5iMDg1ZjM2ZGYyMTkgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9h
Y3BpL2NwdV9pZGxlLmMKKysrIGIveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lk
bGUuYwpAQCAtNDUyLDE0ICs0NTIsOCBAQCBzdGF0aWMgaW50IF9faW5pdCBj
Zl9jaGVjayBjcHVfaWRsZV9rZXlfaW5pdCh2b2lkKQogfQogX19pbml0Y2Fs
bChjcHVfaWRsZV9rZXlfaW5pdCk7CiAKLS8qIEZvcmNlIHNlbmRpbmcgb2Yg
YSB3YWtldXAgSVBJIHJlZ2FyZGxlc3Mgb2YgbXdhaXQgdXNhZ2UuICovCi1i
b29sIF9fcm9fYWZ0ZXJfaW5pdCBmb3JjZV9td2FpdF9pcGlfd2FrZXVwOwot
CiBib29sIGFyY2hfc2tpcF9zZW5kX2V2ZW50X2NoZWNrKHVuc2lnbmVkIGlu
dCBjcHUpCiB7Ci0gICAgaWYgKCBmb3JjZV9td2FpdF9pcGlfd2FrZXVwICkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotCiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1L2ludGVsLmMgYi94
ZW4vYXJjaC94ODYvY3B1L2ludGVsLmMKaW5kZXggM2M5NmJhZmUzOTVmLi5h
ZjRhNTJlYzFiYTUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvaW50
ZWwuYworKysgYi94ZW4vYXJjaC94ODYvY3B1L2ludGVsLmMKQEAgLTQwMyw3
ICs0MDMsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgcHJvYmVfbXdhaXRfZXJy
YXRhKHZvaWQpCiAgICAgewogICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5J
TkcKICAgICAgICAgICAgICAgICJGb3JjaW5nIElQSSBNV0FJVCB3YWtldXAg
ZHVlIHRvIENQVSBlcnJhdHVtXG4iKTsKLSAgICAgICAgZm9yY2VfbXdhaXRf
aXBpX3dha2V1cCA9IHRydWU7CisgICAgICAgIHNldHVwX2ZvcmNlX2NwdV9j
YXAoWDg2X0JVR19NT05JVE9SKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBh
L3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlcy5oIGIveGVu
L2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmVzLmgKaW5kZXggODRj
OTMyOTJjODBjLi41NjIzMWIwMGYxNWQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlcy5oCisrKyBiL3hlbi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlcy5oCkBAIC01Myw2ICs1Myw3
IEBAIFhFTl9DUFVGRUFUVVJFKFVTRV9WTUNBTEwsICAgICAgICBYODZfU1lO
VEgoMzApKSAvKiBVc2UgVk1DQUxMIGluc3RlYWQgb2YgVk1NQ0FMCiAjZGVm
aW5lIFg4Nl9CVUdfQ0xGTFVTSF9NRkVOQ0UgICAgWDg2X0JVRyggMikgLyog
TUZFTkNFIG5lZWRlZCB0byBzZXJpYWxpc2UgQ0xGTFVTSCAqLwogI2RlZmlu
ZSBYODZfQlVHX0lCUEJfTk9fUkVUICAgICAgIFg4Nl9CVUcoIDMpIC8qIElC
UEIgZG9lc24ndCBmbHVzaCB0aGUgUlNCL1JBUyAqLwogI2RlZmluZSBYODZf
QlVHX0NMRkxVU0hfTU9OSVRPUiAgIFg4Nl9CVUcoIDQpIC8qIE1PTklUT1Ig
cmVxdWlyZXMgQ0xGTFVTSCAqLworI2RlZmluZSBYODZfQlVHX01PTklUT1Ig
ICAgICAgICAgIFg4Nl9CVUcoIDUpIC8qIE1PTklUT1IgZG9lc24ndCBhbHdh
eXMgbm90aWNlIHdyaXRlcyAoZm9yY2UgSVBJcykgKi8KIAogI2RlZmluZSBY
ODZfU1BFQ19OT19MRkVOQ0VfRU5UUllfUFYgWDg2X0JVRygxNikgLyogKE5v
KSBzYWZldHkgTEZFTkNFIGZvciBTUEVDX0NUUkxfRU5UUllfUFYuICovCiAj
ZGVmaW5lIFg4Nl9TUEVDX05PX0xGRU5DRV9FTlRSWV9JTlRSIFg4Nl9CVUco
MTcpIC8qIChObykgc2FmZXR5IExGRU5DRSBmb3IgU1BFQ19DVFJMX0VOVFJZ
X0lOVFIuICovCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9h
c20vbXdhaXQuaCBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9td2FpdC5o
CmluZGV4IDk3YmYzNjE1MDVmMC4uZjM3N2Q5ZmRjYWQ0IDEwMDY0NAotLS0g
YS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vbXdhaXQuaAorKysgYi94ZW4v
YXJjaC94ODYvaW5jbHVkZS9hc20vbXdhaXQuaApAQCAtMTMsOSArMTMsNiBA
QAogCiAjZGVmaW5lIE1XQUlUX0VDWF9JTlRFUlJVUFRfQlJFQUsJMHgxCiAK
LS8qIEZvcmNlIHNlbmRpbmcgb2YgYSB3YWtldXAgSVBJIHJlZ2FyZGxlc3Mg
b2YgbXdhaXQgdXNhZ2UuICovCi1leHRlcm4gYm9vbCBmb3JjZV9td2FpdF9p
cGlfd2FrZXVwOwotCiB2b2lkIG13YWl0X2lkbGVfd2l0aF9oaW50cyh1bnNp
Z25lZCBpbnQgZWF4LCB1bnNpZ25lZCBpbnQgZWN4KTsKIGJvb2wgbXdhaXRf
cGMxMF9zdXBwb3J0ZWQodm9pZCk7CiAK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.17-11.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.17-11.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDIxOjA0OjE3ICswMTAwClN1Ympl
Y3Q6IHhlbi9zb2Z0aXJxOiBSZXdvcmsgYXJjaF9za2lwX3NlbmRfZXZlbnRf
Y2hlY2soKSBpbnRvCiBhcmNoX3NldF9zb2Z0aXJxKCkKTUlNRS1WZXJzaW9u
OiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04
CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKCng4NiBpcyB0aGUg
b25seSBhcmNoaXRlY3R1cmUgd2FudGluZyBhbiBvcHRpbWlzYXRpb24gaGVy
ZSwgYnV0IHRoZQp0ZXN0X2FuZF9zZXRfYml0KCkgaXMgYSBzdG9yZSBpbnRv
IHRoZSBtb25pdG9yZWQgbGluZSAoaS5lLiB3aWxsIHdha2UgdXAgdGhlCnRh
cmdldCkgYW5kLCBwcmlvciB0byB0aGUgcmVtb3ZhbCBvZiB0aGUgYnJva2Vu
IElQSS1lbGlzaW9uIGFsZ29yaXRobSwgd2FzCnJhY3ksIGNhdXNpbmcgdW5u
ZWNlc3NhcnkgSVBJcyB0byBiZSBzZW50LgoKVG8gZG8gdGhpcyBpbiBhIHJh
Y2UtZnJlZSB3YXksIHRoZSBzdG9yZSB0byB0aGUgbW9uaXRlZCBsaW5lIG5l
ZWRzIHRvIGFsc28Kc2FtcGxlIHRoZSBzdGF0dXMgb2YgdGhlIHRhcmdldCBp
biBvbmUgYXRvbWljIGFjdGlvbi4gIEltcGxlbWVudCBhIG5ldyBhcmNoCmhl
bHBlciB3aXRoIGRpZmZlcmVudCBzZW1hbnRpY3M7IHRvIG1ha2UgdGhlIHNv
ZnRpcnEgcGVuZGluZyBhbmQgZGVjaWRlIGFib3V0CklQSXMgdG9nZXRoZXIu
ICBGb3Igbm93LCBpbXBsZW1lbnQgdGhlIGRlZmF1bHQgaGVscGVyLiAgSXQg
d2lsbCBiZSBvdmVycmlkZGVuCmJ5IHg4NiBpbiBhIHN1YnNlcXVlbnQgY2hh
bmdlLgoKTm8gZnVuY3Rpb25hbCBjaGFuZ2UuCgpTaWduZWQtb2ZmLWJ5OiBB
bmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpSZXZp
ZXdlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5j
b20+CihjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IGI0NzNlNWUyMTJlNDQ1
ZDNjMTkzYzFjODNiNTJiMTI5YWY1NzFiMTkpCgpkaWZmIC0tZ2l0IGEveGVu
L2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYyBiL3hlbi9hcmNoL3g4Ni9hY3Bp
L2NwdV9pZGxlLmMKaW5kZXggYjA4NWYzNmRmMjE5Li43Yzc2NzZlOWNlOTEg
MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKKysr
IGIveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYwpAQCAtNDUyLDExICs0
NTIsNiBAQCBzdGF0aWMgaW50IF9faW5pdCBjZl9jaGVjayBjcHVfaWRsZV9r
ZXlfaW5pdCh2b2lkKQogfQogX19pbml0Y2FsbChjcHVfaWRsZV9rZXlfaW5p
dCk7CiAKLWJvb2wgYXJjaF9za2lwX3NlbmRfZXZlbnRfY2hlY2sodW5zaWdu
ZWQgaW50IGNwdSkKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KIHZvaWQg
bXdhaXRfaWRsZV93aXRoX2hpbnRzKHVuc2lnbmVkIGludCBlYXgsIHVuc2ln
bmVkIGludCBlY3gpCiB7CiAgICAgdW5zaWduZWQgaW50IGNwdSA9IHNtcF9w
cm9jZXNzb3JfaWQoKTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9zb2Z0aXJxLmggYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20v
c29mdGlycS5oCmluZGV4IDQxNWVlODY2Yzc5ZC4uZTRiMTk0ZjA2OWZiIDEw
MDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vc29mdGlycS5o
CisrKyBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zb2Z0aXJxLmgKQEAg
LTksNiArOSw0IEBACiAjZGVmaW5lIEhWTV9EUENJX1NPRlRJUlEgICAgICAg
KE5SX0NPTU1PTl9TT0ZUSVJRUyArIDQpCiAjZGVmaW5lIE5SX0FSQ0hfU09G
VElSUVMgICAgICAgNQogCi1ib29sIGFyY2hfc2tpcF9zZW5kX2V2ZW50X2No
ZWNrKHVuc2lnbmVkIGludCBjcHUpOwotCiAjZW5kaWYgLyogX19BU01fU09G
VElSUV9IX18gKi8KZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vc29mdGlycS5j
IGIveGVuL2NvbW1vbi9zb2Z0aXJxLmMKaW5kZXggMDYzZTkzY2JlMzNiLi44
OTY4NWIzODFkODUgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vc29mdGlycS5j
CisrKyBiL3hlbi9jb21tb24vc29mdGlycS5jCkBAIC05NCw5ICs5NCw3IEBA
IHZvaWQgY3B1bWFza19yYWlzZV9zb2Z0aXJxKGNvbnN0IGNwdW1hc2tfdCAq
bWFzaywgdW5zaWduZWQgaW50IG5yKQogICAgICAgICByYWlzZV9tYXNrID0g
JnBlcl9jcHUoYmF0Y2hfbWFzaywgdGhpc19jcHUpOwogCiAgICAgZm9yX2Vh
Y2hfY3B1KGNwdSwgbWFzaykKLSAgICAgICAgaWYgKCAhdGVzdF9hbmRfc2V0
X2JpdChuciwgJnNvZnRpcnFfcGVuZGluZyhjcHUpKSAmJgotICAgICAgICAg
ICAgIGNwdSAhPSB0aGlzX2NwdSAmJgotICAgICAgICAgICAgICFhcmNoX3Nr
aXBfc2VuZF9ldmVudF9jaGVjayhjcHUpICkKKyAgICAgICAgaWYgKCAhYXJj
aF9zZXRfc29mdGlycShuciwgY3B1KSAmJiBjcHUgIT0gdGhpc19jcHUgKQog
ICAgICAgICAgICAgX19jcHVtYXNrX3NldF9jcHUoY3B1LCByYWlzZV9tYXNr
KTsKIAogICAgIGlmICggcmFpc2VfbWFzayA9PSAmc2VuZF9tYXNrICkKQEAg
LTEwNyw5ICsxMDUsNyBAQCB2b2lkIGNwdV9yYWlzZV9zb2Z0aXJxKHVuc2ln
bmVkIGludCBjcHUsIHVuc2lnbmVkIGludCBucikKIHsKICAgICB1bnNpZ25l
ZCBpbnQgdGhpc19jcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7CiAKLSAgICBp
ZiAoIHRlc3RfYW5kX3NldF9iaXQobnIsICZzb2Z0aXJxX3BlbmRpbmcoY3B1
KSkKLSAgICAgICAgIHx8IChjcHUgPT0gdGhpc19jcHUpCi0gICAgICAgICB8
fCBhcmNoX3NraXBfc2VuZF9ldmVudF9jaGVjayhjcHUpICkKKyAgICBpZiAo
IGFyY2hfc2V0X3NvZnRpcnEobnIsIGNwdSkgfHwgY3B1ID09IHRoaXNfY3B1
ICkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKCAhcGVyX2NwdShiYXRj
aGluZywgdGhpc19jcHUpIHx8IGluX2lycSgpICkKZGlmZiAtLWdpdCBhL3hl
bi9pbmNsdWRlL3hlbi9zb2Z0aXJxLmggYi94ZW4vaW5jbHVkZS94ZW4vc29m
dGlycS5oCmluZGV4IDFmNmM0NzgzZGE4Ny4uNWI0YzAzYmZlMzdjIDEwMDY0
NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vc29mdGlycS5oCisrKyBiL3hlbi9p
bmNsdWRlL3hlbi9zb2Z0aXJxLmgKQEAgLTIxLDYgKzIxLDIyIEBAIGVudW0g
ewogCiAjZGVmaW5lIE5SX1NPRlRJUlFTIChOUl9DT01NT05fU09GVElSUVMg
KyBOUl9BUkNIX1NPRlRJUlFTKQogCisvKgorICogRW5zdXJlIHNvZnRpcnEg
QG5yIGlzIHBlbmRpbmcgb24gQGNwdS4gIFJldHVybiB0cnVlIGlmIGFuIElQ
SSBjYW4gYmUKKyAqIHNraXBwZWQsIGZhbHNlIGlmIHRoZSBJUEkgY2Fubm90
IGJlIHNraXBwZWQuCisgKi8KKyNpZm5kZWYgYXJjaF9zZXRfc29mdGlycQor
c3RhdGljIGFsd2F5c19pbmxpbmUgYm9vbCBhcmNoX3NldF9zb2Z0aXJxKHVu
c2lnbmVkIGludCBuciwgdW5zaWduZWQgaW50IGNwdSkKK3sKKyAgICAvKgor
ICAgICAqIFRyeSB0byBzZXQgdGhlIHNvZnRpcnEgcGVuZGluZy4gIElmIHdl
IHNldCB0aGUgYml0IChpLmUuIHRoZSBvbGQgYml0CisgICAgICogd2FzIDAp
LCB3ZSdyZSByZXNwb25zaWJsZSB0byBzZW5kIHRoZSBJUEkuICBJZiB0aGUg
c29mdGlycSB3YXMgYWxyZWFkeQorICAgICAqIHBlbmRpbmcgKGkuZS4gdGhl
IG9sZCBiaXQgd2FzIDEpLCBubyBJUEkgaXMgbmVlZGVkLgorICAgICAqLwor
ICAgIHJldHVybiB0ZXN0X2FuZF9zZXRfYml0KG5yLCAmc29mdGlycV9wZW5k
aW5nKGNwdSkpOworfQorI2VuZGlmCisKIHR5cGVkZWYgdm9pZCAoKnNvZnRp
cnFfaGFuZGxlcikodm9pZCk7CiAKIHZvaWQgZG9fc29mdGlycSh2b2lkKTsK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.17-12.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.17-12.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDIxOjI2OjI0ICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBJbXBsZW1lbnQgYSBuZXcgTVdBSVQgSVBJLWVsaXNp
b24gYWxnb3JpdGhtCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTog
dGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVu
Y29kaW5nOiA4Yml0CgpJbiBvcmRlciBlbGlkZSBJUElzLCB3ZSBtdXN0IGJl
IGFibGUgdG8gaWRlbnRpZnkgd2hldGhlciBhIHRhcmdldCBDUFUgaXMgaW4K
TVdBSVQgYXQgdGhlIHBvaW50IGl0IGlzIHdva2VuIHVwLiAgaS5lLiB0aGUg
c3RvcmUgdG8gd2FrZSBpdCB1cCBtdXN0IGFsc28KaWRlbnRpZnkgdGhlIHN0
YXRlLgoKQ3JlYXRlIGEgbmV3IGluX213YWl0IHZhcmlhYmxlIGJlc2lkZSBf
X3NvZnRpcnFfcGVuZGluZywgc28gd2UgY2FuIHVzZSBhCkNNUFhDSEcgdG8g
c2V0IHRoZSBzb2Z0aXJxIHdoaWxlIGFsc28gb2JzZXJ2aW5nIHRoZSBzdGF0
dXMgc2FmZWx5LiAgSW1wbGVtZW50CmFuIHg4NiB2ZXJzaW9uIG9mIGFyY2hf
cGVuZF9zb2Z0aXJxKCkgd2hpY2ggZG9lcyB0aGlzLgoKSW4gbXdhaXRfaWRs
ZV93aXRoX2hpbnRzKCksIGFkdmVydGlzZSBpbl9td2FpdCwgd2l0aCBhbiBl
eHBsYW5hdGlvbiBvZgpwcmVjaXNlbHkgd2hhdCBpdCBtZWFucy4gIFg4Nl9C
VUdfTU9OSVRPUiBjYW4gYmUgYWNjb3VudGVkIGZvciBzaW1wbHkgYnkgbm90
CmFkdmVydGlzaW5nIGluX213YWl0LgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3
IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KQWNrZWQtYnk6
IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgooY2hl
cnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCAzZTBiYzRiNTAzNTBiZDM1NzMwNGZk
NzlhNWRjMDQ3Mjc5MGRiYTkxKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4
Ni9hY3BpL2NwdV9pZGxlLmMgYi94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRs
ZS5jCmluZGV4IDdjNzY3NmU5Y2U5MS4uYjg3NmM3NzgxZWVmIDEwMDY0NAot
LS0gYS94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jCisrKyBiL3hlbi9h
cmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKQEAgLTQ1NSw3ICs0NTUsMjEgQEAg
X19pbml0Y2FsbChjcHVfaWRsZV9rZXlfaW5pdCk7CiB2b2lkIG13YWl0X2lk
bGVfd2l0aF9oaW50cyh1bnNpZ25lZCBpbnQgZWF4LCB1bnNpZ25lZCBpbnQg
ZWN4KQogewogICAgIHVuc2lnbmVkIGludCBjcHUgPSBzbXBfcHJvY2Vzc29y
X2lkKCk7Ci0gICAgY29uc3QgdW5zaWduZWQgaW50ICp0aGlzX3NvZnRpcnFf
cGVuZGluZyA9ICZzb2Z0aXJxX3BlbmRpbmcoY3B1KTsKKyAgICBpcnFfY3B1
c3RhdF90ICpzdGF0ID0gJmlycV9zdGF0W2NwdV07CisgICAgY29uc3QgdW5z
aWduZWQgaW50ICp0aGlzX3NvZnRpcnFfcGVuZGluZyA9ICZzdGF0LT5fX3Nv
ZnRpcnFfcGVuZGluZzsKKworICAgIC8qCisgICAgICogQnkgc2V0dGluZyBp
bl9td2FpdCwgd2UgcHJvbWlzZSB0byBvdGhlciBDUFVzIHRoYXQgd2UnbGwg
bm90aWNlIGNoYW5nZXMKKyAgICAgKiB0byBfX3NvZnRpcnFfcGVuZGluZyB3
aXRob3V0IGJlaW5nIHNlbnQgYW4gSVBJLiAgV2UgYWNoaWV2ZSB0aGlzIGJ5
CisgICAgICogZWl0aGVyIG5vdCBnb2luZyB0byBzbGVlcCwgb3IgYnkgaGF2
aW5nIGhhcmR3YXJlIG5vdGljZSBvbiBvdXIgYmVoYWxmLgorICAgICAqCisg
ICAgICogU29tZSBlcnJhdGEgZXhpc3Qgd2hlcmUgTU9OSVRPUiBkb2Vzbid0
IHdvcmsgcHJvcGVybHksIGFuZCB0aGUKKyAgICAgKiB3b3JrYXJvdW5kIGlz
IHRvIGZvcmNlIHRoZSB1c2Ugb2YgYW4gSVBJLiAgQ2F1c2UgdGhpcyB0byBo
YXBwZW4gYnkKKyAgICAgKiBzaW1wbHkgbm90IGFkdmVydGlzaW5nIG91cnNl
bHZlcyBhcyBiZWluZyBpbl9td2FpdC4KKyAgICAgKi8KKyAgICBhbHRlcm5h
dGl2ZV9pbygibW92YiAkMSwgJVtpbl9td2FpdF0iLAorICAgICAgICAgICAg
ICAgICAgICIiLCBYODZfQlVHX01PTklUT1IsCisgICAgICAgICAgICAgICAg
ICAgW2luX213YWl0XSAiPW0iIChzdGF0LT5pbl9td2FpdCkpOwogCiAgICAg
bW9uaXRvcih0aGlzX3NvZnRpcnFfcGVuZGluZywgMCwgMCk7CiAKQEAgLTQ2
Nyw2ICs0ODEsMTAgQEAgdm9pZCBtd2FpdF9pZGxlX3dpdGhfaGludHModW5z
aWduZWQgaW50IGVheCwgdW5zaWduZWQgaW50IGVjeCkKICAgICAgICAgbXdh
aXQoZWF4LCBlY3gpOwogICAgICAgICBzcGVjX2N0cmxfZXhpdF9pZGxlKGlu
Zm8pOwogICAgIH0KKworICAgIGFsdGVybmF0aXZlX2lvKCJtb3ZiICQwLCAl
W2luX213YWl0XSIsCisgICAgICAgICAgICAgICAgICAgIiIsIFg4Nl9CVUdf
TU9OSVRPUiwKKyAgICAgICAgICAgICAgICAgICBbaW5fbXdhaXRdICI9bSIg
KHN0YXQtPmluX213YWl0KSk7CiB9CiAKIHN0YXRpYyB2b2lkIGFjcGlfcHJv
Y2Vzc29yX2ZmaF9jc3RhdGVfZW50ZXIoc3RydWN0IGFjcGlfcHJvY2Vzc29y
X2N4ICpjeCkKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9oYXJkaXJxLmggYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaGFyZGly
cS5oCmluZGV4IGYzZTkzY2M5YjUwNy4uMTY0N2NmZjA0ZGM4IDEwMDY0NAot
LS0gYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaGFyZGlycS5oCisrKyBi
L3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9oYXJkaXJxLmgKQEAgLTUsNyAr
NSwxOSBAQAogI2luY2x1ZGUgPHhlbi90eXBlcy5oPgogCiB0eXBlZGVmIHN0
cnVjdCB7Ci0gICAgdW5zaWduZWQgaW50IF9fc29mdGlycV9wZW5kaW5nOwor
ICAgIC8qCisgICAgICogVGhlIGxheW91dCBpcyBpbXBvcnRhbnQuICBBbnkg
Q1BVIGNhbiBzZXQgYml0cyBpbiBfX3NvZnRpcnFfcGVuZGluZywKKyAgICAg
KiBidXQgaW5fbXdhaXQgaXMgYSBzdGF0dXMgYml0IG93bmVkIGJ5IHRoZSBD
UFUuICBzb2Z0aXJxX213YWl0X3JhdyBtdXN0CisgICAgICogY292ZXIgYm90
aCwgYW5kIG11c3QgYmUgaW4gYSBzaW5nbGUgY2FjaGVsaW5lLgorICAgICAq
LworICAgIHVuaW9uIHsKKyAgICAgICAgc3RydWN0IHsKKyAgICAgICAgICAg
IHVuc2lnbmVkIGludCBfX3NvZnRpcnFfcGVuZGluZzsKKyAgICAgICAgICAg
IGJvb2wgaW5fbXdhaXQ7CisgICAgICAgIH07CisgICAgICAgIHVpbnQ2NF90
IHNvZnRpcnFfbXdhaXRfcmF3OworICAgIH07CisKICAgICB1bnNpZ25lZCBp
bnQgX19sb2NhbF9pcnFfY291bnQ7CiAgICAgdW5zaWduZWQgaW50IG5taV9j
b3VudDsKICAgICB1bnNpZ25lZCBpbnQgbWNlX2NvdW50OwpkaWZmIC0tZ2l0
IGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NvZnRpcnEuaCBiL3hlbi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9zb2Z0aXJxLmgKaW5kZXggZTRiMTk0ZjA2
OWZiLi41NWI2NWM5NzQ3YjEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9zb2Z0aXJxLmgKKysrIGIveGVuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL3NvZnRpcnEuaApAQCAtMSw2ICsxLDggQEAKICNpZm5kZWYgX19B
U01fU09GVElSUV9IX18KICNkZWZpbmUgX19BU01fU09GVElSUV9IX18KIAor
I2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4KKwogI2RlZmluZSBOTUlfU09GVElS
USAgICAgICAgICAgIChOUl9DT01NT05fU09GVElSUVMgKyAwKQogI2RlZmlu
ZSBUSU1FX0NBTElCUkFURV9TT0ZUSVJRIChOUl9DT01NT05fU09GVElSUVMg
KyAxKQogI2RlZmluZSBWQ1BVX0tJQ0tfU09GVElSUSAgICAgIChOUl9DT01N
T05fU09GVElSUVMgKyAyKQpAQCAtOSw0ICsxMSw1MCBAQAogI2RlZmluZSBI
Vk1fRFBDSV9TT0ZUSVJRICAgICAgIChOUl9DT01NT05fU09GVElSUVMgKyA0
KQogI2RlZmluZSBOUl9BUkNIX1NPRlRJUlFTICAgICAgIDUKIAorLyoKKyAq
IEVuc3VyZSBzb2Z0aXJxIEBuciBpcyBwZW5kaW5nIG9uIEBjcHUuICBSZXR1
cm4gdHJ1ZSBpZiBhbiBJUEkgY2FuIGJlCisgKiBza2lwcGVkLCBmYWxzZSBp
ZiB0aGUgSVBJIGNhbm5vdCBiZSBza2lwcGVkLgorICoKKyAqIFdlIHVzZSBh
IENNUFhDSEcgY292ZXJpbmcgYm90aCBfX3NvZnRpcnFfcGVuZGluZyBhbmQg
aW5fbXdhaXQsIGluIG9yZGVyIHRvCisgKiBzZXQgc29mdGlycSBAbnIgd2hp
bGUgYWxzbyBvYnNlcnZpbmcgaW5fbXdhaXQgaW4gYSByYWNlLWZyZWUgd2F5
LgorICovCitzdGF0aWMgYWx3YXlzX2lubGluZSBib29sIGFyY2hfc2V0X3Nv
ZnRpcnEodW5zaWduZWQgaW50IG5yLCB1bnNpZ25lZCBpbnQgY3B1KQorewor
ICAgIHVpbnQ2NF90ICpwdHIgPSAmaXJxX3N0YXRbY3B1XS5zb2Z0aXJxX213
YWl0X3JhdzsKKyAgICB1aW50NjRfdCBwcmV2LCBvbGQsIG5ldzsKKyAgICB1
bnNpZ25lZCBpbnQgc29mdGlycSA9IDFVIDw8IG5yOworCisgICAgb2xkID0g
QUNDRVNTX09OQ0UoKnB0cik7CisKKyAgICBmb3IgKCA7OyApCisgICAgewor
ICAgICAgICBpZiAoIG9sZCAmIHNvZnRpcnEgKQorICAgICAgICAgICAgLyog
U29mdGlycSBhbHJlYWR5IHBlbmRpbmcsIG5vdGhpbmcgdG8gZG8uICovCisg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICBuZXcgPSBvbGQg
fCBzb2Z0aXJxOworCisgICAgICAgIHByZXYgPSBjbXB4Y2hnKHB0ciwgb2xk
LCBuZXcpOworICAgICAgICBpZiAoIHByZXYgPT0gb2xkICkKKyAgICAgICAg
ICAgIGJyZWFrOworCisgICAgICAgIG9sZCA9IHByZXY7CisgICAgfQorCisg
ICAgLyoKKyAgICAgKiBXZSBoYXZlIGNhdXNlZCB0aGUgc29mdGlycSB0byBi
ZWNvbWUgcGVuZGluZy4gIElmIGluX213YWl0IHdhcyBzZXQsIHRoZQorICAg
ICAqIHRhcmdldCBDUFUgd2lsbCBub3RpY2UgdGhlIG1vZGlmaWNhdGlvbiBh
bmQgYWN0IG9uIGl0LgorICAgICAqCisgICAgICogV2UgY2FuJ3QgYWNjZXNz
IHRoZSBpbl9td2FpdCBmaWVsZCBuaWNlbHksIHNvIHVzZSBzb21lIEJVSUxE
X0JVR19PTigpJ3MKKyAgICAgKiB0byBjcm9zcy1jaGVjayB0aGUgKDFVTCA8
PCAzMikgb3BlbmNvZGluZy4KKyAgICAgKi8KKyAgICBCVUlMRF9CVUdfT04o
c2l6ZW9mKGlycV9zdGF0WzBdLnNvZnRpcnFfbXdhaXRfcmF3KSAhPSA4KTsK
KyAgICBCVUlMRF9CVUdfT04oKG9mZnNldG9mKGlycV9jcHVzdGF0X3QsIGlu
X213YWl0KSAtCisgICAgICAgICAgICAgICAgICBvZmZzZXRvZihpcnFfY3B1
c3RhdF90LCBzb2Z0aXJxX213YWl0X3JhdykpICE9IDQpOworCisgICAgcmV0
dXJuIG5ldyAmICgxVUwgPDwgMzIpIC8qIGluX213YWl0ICovOworCit9Cisj
ZGVmaW5lIGFyY2hfc2V0X3NvZnRpcnEgYXJjaF9zZXRfc29mdGlycQorCiAj
ZW5kaWYgLyogX19BU01fU09GVElSUV9IX18gKi8K

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.17-13.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.17-13.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogV2VkLCAyIEp1bCAyMDI1IDE0OjUxOjM4ICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBGaXggYnVnZ3kgIng4Ni9td2FpdC1pZGxlOiBlbmFi
bGUgaW50ZXJydXB0cyBiZWZvcmUgQzEgb24KIFhlb25zIgoKVGhlIGNoZWNr
IG9mIHRoaXNfc29mdGlycV9wZW5kaW5nIG11c3QgYmUgcGVyZm9ybWVkIHdp
dGggaXJxcyBkaXNhYmxlZCwgYnV0CnRoaXMgcHJvcGVydHkgd2FzIGJyb2tl
biBieSBhbiBhdHRlbXB0IHRvIG9wdGltaXNlIGVudHJ5L2V4aXQgbGF0ZW5j
eS4KCkNvbW1pdCBjMjI3MjMzYWQ2NGMgaW4gTGludXggKHdoaWNoIHdlIGNv
cGllZCBpbnRvIFhlbikgd2FzIGZpeGVkIHVwIGJ5CmVkYzhmYzAxZjYwOCBp
biBMaW51eCwgd2hpY2ggd2UgaGF2ZSBzbyBmYXIgbWlzc2VkLgoKR29pbmcg
dG8gc2xlZXAgd2l0aG91dCB3YWtpbmcgb24gaW50ZXJydXB0cyBpcyBub25z
ZW5zaWNhbCBvdXRzaWRlIG9mCnBsYXlfZGVhZCgpLCBzbyBvdmVybG9hZCB0
aGlzIHRvIHNlbGVjdCBiZXR3ZWVuIHR3byBwb3NzaWJsZSBNV0FJVHMsIHRo
ZQpzZWNvbmQgdXNpbmcgdGhlIFNUSSBzaGFkb3cgdG8gY292ZXIgTVdBSVQg
Zm9yIGV4YWN0bHkgdGhlIHNhbWUgcmVhc29uIGFzIHdlCmRvIGluIHNhZmVf
aGFsdCgpLgoKRml4ZXM6IGIxN2UwZWM3MmVkZSAoIng4Ni9td2FpdC1pZGxl
OiBlbmFibGUgaW50ZXJydXB0cyBiZWZvcmUgQzEgb24gWGVvbnMiKQpTaWdu
ZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRy
aXguY29tPgpSZXZpZXdlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1
c2UuY29tPgooY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA5YjBmMGY2ZTIz
NTYxOGMyNzY0ZTkyNWI1OGM0YmZlNDEyNzMwY2VkKQoKZGlmZiAtLWdpdCBh
L3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMgYi94ZW4vYXJjaC94ODYv
YWNwaS9jcHVfaWRsZS5jCmluZGV4IGI4NzZjNzc4MWVlZi4uMGI3ZTc2MzZi
YzBjIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5j
CisrKyBiL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKQEAgLTc5LDYg
Kzc5LDEzIEBAIHN0YXRpYyBhbHdheXNfaW5saW5lIHZvaWQgbXdhaXQodW5z
aWduZWQgaW50IGVheCwgdW5zaWduZWQgaW50IGVjeCkKICAgICAgICAgICAg
ICAgICAgICA6OiAiYSIgKGVheCksICJjIiAoZWN4KSApOwogfQogCitzdGF0
aWMgYWx3YXlzX2lubGluZSB2b2lkIHN0aV9td2FpdF9jbGkodW5zaWduZWQg
aW50IGVheCwgdW5zaWduZWQgaW50IGVjeCkKK3sKKyAgICAvKiBTVEkgc2hh
ZG93IGNvdmVycyBNV0FJVC4gKi8KKyAgICBhc20gdm9sYXRpbGUgKCAic3Rp
OyBtd2FpdDsgY2xpIgorICAgICAgICAgICAgICAgICAgIDo6ICJhIiAoZWF4
KSwgImMiIChlY3gpICk7Cit9CisKICNkZWZpbmUgR0VUX0hXX1JFU19JTl9O
Uyhtc3IsIHZhbCkgXAogICAgIGRvIHsgcmRtc3JsKG1zciwgdmFsKTsgdmFs
ID0gdHNjX3RpY2tzMm5zKHZhbCk7IH0gd2hpbGUoIDAgKQogI2RlZmluZSBH
RVRfTUM2X1JFUyh2YWwpICBHRVRfSFdfUkVTX0lOX05TKDB4NjY0LCB2YWwp
CkBAIC00NzMsMTIgKzQ4MCwxOSBAQCB2b2lkIG13YWl0X2lkbGVfd2l0aF9o
aW50cyh1bnNpZ25lZCBpbnQgZWF4LCB1bnNpZ25lZCBpbnQgZWN4KQogCiAg
ICAgbW9uaXRvcih0aGlzX3NvZnRpcnFfcGVuZGluZywgMCwgMCk7CiAKKyAg
ICBBU1NFUlQoIWxvY2FsX2lycV9pc19lbmFibGVkKCkpOworCiAgICAgaWYg
KCAhKnRoaXNfc29mdGlycV9wZW5kaW5nICkKICAgICB7CiAgICAgICAgIHN0
cnVjdCBjcHVfaW5mbyAqaW5mbyA9IGdldF9jcHVfaW5mbygpOwogCiAgICAg
ICAgIHNwZWNfY3RybF9lbnRlcl9pZGxlKGluZm8pOwotICAgICAgICBtd2Fp
dChlYXgsIGVjeCk7CisKKyAgICAgICAgaWYgKCBlY3ggJiBNV0FJVF9FQ1hf
SU5URVJSVVBUX0JSRUFLICkKKyAgICAgICAgICAgIG13YWl0KGVheCwgZWN4
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc3RpX213YWl0X2NsaShl
YXgsIGVjeCk7CisKICAgICAgICAgc3BlY19jdHJsX2V4aXRfaWRsZShpbmZv
KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9jcHUvbXdh
aXQtaWRsZS5jIGIveGVuL2FyY2gveDg2L2NwdS9td2FpdC1pZGxlLmMKaW5k
ZXggMTJjMzYyNTdiN2JlLi5hZDQyMWQ4YmI3NmEgMTAwNjQ0Ci0tLSBhL3hl
bi9hcmNoL3g4Ni9jcHUvbXdhaXQtaWRsZS5jCisrKyBiL3hlbi9hcmNoL3g4
Ni9jcHUvbXdhaXQtaWRsZS5jCkBAIC05NzMsMTIgKzk3Myw4IEBAIHN0YXRp
YyB2b2lkIGNmX2NoZWNrIG13YWl0X2lkbGUodm9pZCkKIAogCXVwZGF0ZV9s
YXN0X2N4X3N0YXQocG93ZXIsIGN4LCBiZWZvcmUpOwogCi0JaWYgKGN4LT5p
cnFfZW5hYmxlX2Vhcmx5KQotCQlsb2NhbF9pcnFfZW5hYmxlKCk7Ci0KLQlt
d2FpdF9pZGxlX3dpdGhfaGludHMoY3gtPmFkZHJlc3MsIE1XQUlUX0VDWF9J
TlRFUlJVUFRfQlJFQUspOwotCi0JbG9jYWxfaXJxX2Rpc2FibGUoKTsKKwlt
d2FpdF9pZGxlX3dpdGhfaGludHMoY3gtPmFkZHJlc3MsCisJCQkgICAgICBj
eC0+aXJxX2VuYWJsZV9lYXJseSA/IDAgOiBNV0FJVF9FQ1hfSU5URVJSVVBU
X0JSRUFLKTsKIAogCWFmdGVyID0gYWx0ZXJuYXRpdmVfY2FsbChjcHVpZGxl
X2dldF90aWNrKTsKIAo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.17-14.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.17-14.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogRnJpLCA0IEp1bCAyMDI1IDE3OjUzOjE1ICswMTAwClN1Ympl
Y3Q6IHg4Ni94ZW4tY3B1aWQ6IEZpeCBiYWNrcG9ydHMgb2YgbmV3IGZlYXR1
cmVzCgpYZW4gNC4xOCBkb2Vzbid0IGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUg
ZmVhdHVyZSBuYW1lcyBsaWtlIFhlbiA0LjE5IGRvZXMsIGFuZAp0aGVzZSBo
dW5rcyB3ZXJlIG1pc3NlZCBvbiBwcmlvciBzZWN1cml0eSBmaXhlcy4KCkZp
eGVzOiA4YmNlZDlhMTVjOGMgKCJ4ODYvc3BlYy1jdHJsOiBTdXBwb3J0IGZv
ciBTUlNPX1UvU19OTyBhbmQgU1JTT19NU1JfRklYIikKRml4ZXM6IGYxMzJj
ODJmYTY1ZCAoIng4Ni9zcGVjLWN0cmw6IFN5bnRoZXNpc2UgSVRTX05PIHRv
IGd1ZXN0cyBvbiB1bmFmZmVjdGVkIGhhcmR3YXJlIikKRml4ZXM6IGRiYTA1
NTY2MTI5MiAoIng4Ni9zcGVjLWN0cmw6IFN1cHBvcnQgSW50ZWwncyBuZXcg
UEItT1BUIikKU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3
LmNvb3BlcjNAY2l0cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEphbiBCZXVsaWNo
IDxqYmV1bGljaEBzdXNlLmNvbT4KW0ZvciA0LjE3LCBQQi1PUFQgd2Fzbid0
IGJhY2twb3J0ZWRdCgpkaWZmIC0tZ2l0IGEvdG9vbHMvbWlzYy94ZW4tY3B1
aWQuYyBiL3Rvb2xzL21pc2MveGVuLWNwdWlkLmMKaW5kZXggNWNlZWE4YmUw
NzNiLi5iMjc3Yjc4YjY1NGYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL21pc2MveGVu
LWNwdWlkLmMKKysrIGIvdG9vbHMvbWlzYy94ZW4tY3B1aWQuYwpAQCAtMTk5
LDYgKzE5OSw3IEBAIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBzdHJfZTIx
YVszMl0gPQogCiAgICAgLyogMjYgKi8gICAgICAgICAgICAgICAgWzI3XSA9
ICJzYnBiIiwKICAgICBbMjhdID0gImlicGItYnJ0eXBlIiwgICBbMjldID0g
InNyc28tbm8iLAorICAgIFszMF0gPSAic3Jzby11cy1ubyIsICAgIFszMV0g
PSAic3Jzby1tc3ItZml4IiwKIH07CiAKIHN0YXRpYyBjb25zdCBjaGFyICpj
b25zdCBzdHJfN2IxWzMyXSA9CkBAIC0yMjIsNyArMjIzLDcgQEAgc3RhdGlj
IGNvbnN0IGNoYXIgKmNvbnN0IHN0cl83ZDJbMzJdID0KICAgICBbIDRdID0g
ImJoaS1jdHJsIiwgICAgICBbIDVdID0gIm1jZHQtbm8iLAogfTsKIAotc3Rh
dGljIGNvbnN0IGNoYXIgKmNvbnN0IHN0cl9tMTBBbFszMl0gPQorc3RhdGlj
IGNvbnN0IGNoYXIgKmNvbnN0IHN0cl9tMTBBbFs2NF0gPQogewogICAgIFsg
MF0gPSAicmRjbC1ubyIsICAgICAgICAgICAgIFsgMV0gPSAiZWlicnMiLAog
ICAgIFsgMl0gPSAicnNiYSIsICAgICAgICAgICAgICAgIFsgM10gPSAic2tp
cC1sMWRmbCIsCkBAIC0yMzksMTAgKzI0MCw4IEBAIHN0YXRpYyBjb25zdCBj
aGFyICpjb25zdCBzdHJfbTEwQWxbMzJdID0KICAgICBbMjRdID0gInBicnNi
LW5vIiwgICAgICAgICAgICBbMjVdID0gImdkcy1jdHJsIiwKICAgICBbMjZd
ID0gImdkcy1ubyIsICAgICAgICAgICAgICBbMjddID0gInJmZHMtbm8iLAog
ICAgIFsyOF0gPSAicmZkcy1jbGVhciIsCi19OwogCi1zdGF0aWMgY29uc3Qg
Y2hhciAqY29uc3Qgc3RyX20xMEFoWzMyXSA9Ci17CisgICAgWzYyXSA9ICJp
dHMtbm8iLAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCB7CkBAIC0yNjgs
NyArMjY3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB7CiAgICAgeyAiQ1BV
SUQgMHgwMDAwMDAwNzoxLmVjeCIsICAgICAiN2MxIiwgc3RyXzdjMSB9LAog
ICAgIHsgIkNQVUlEIDB4MDAwMDAwMDc6MS5lZHgiLCAgICAgIjdkMSIsIHN0
cl83ZDEgfSwKICAgICB7ICJNU1JfQVJDSF9DQVBTLmxvIiwgICAgICAgICAi
bTEwQWwiLCBzdHJfbTEwQWwgfSwKLSAgICB7ICJNU1JfQVJDSF9DQVBTLmhp
IiwgICAgICAgICAibTEwQWgiLCBzdHJfbTEwQWggfSwKKyAgICB7ICJNU1Jf
QVJDSF9DQVBTLmhpIiwgICAgICAgICAibTEwQWgiLCBzdHJfbTEwQWwgKyAz
MiB9LAogfTsKIAogI2RlZmluZSBDT0xfQUxJR04gIjI0Igo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.17-15.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.17-15.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogRnJpLCAyNyBKdW4gMjAyNSAxNzoxOToxOSArMDEwMApTdWJq
ZWN0OiB4ODYvY3B1LXBvbGljeTogUmVhcnJhbmdlIGd1ZXN0X2NvbW1vbl8q
X2ZlYXR1cmVfYWRqdXN0bWVudHMoKQoKVHVybiB0aGUgaWYoKXMgaW50byBz
d2l0Y2goKWVzLCBhcyB3ZSdyZSBnb2luZyB0byBuZWVkIEFNRCBzZWN0aW9u
cy4KCk1vdmUgdGhlIFJUTSBhZGp1c3RtZW50cyBpbnRvIHRoZSBJbnRlbCBz
ZWN0aW9uLCB3aGVyZSB0aGV5IG91Z2h0IHRvIGxpdmUuCgpObyBmdW5jdGlv
bmFsIGNoYW5nZS4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFu
ZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5OiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+CgpkaWZmIC0tZ2l0IGEveGVuL2Fy
Y2gveDg2L2NwdS1wb2xpY3kuYyBiL3hlbi9hcmNoL3g4Ni9jcHUtcG9saWN5
LmMKaW5kZXggOGYwMDZmZTA4YWNiLi40OThmYTRmOTk1N2MgMTAwNjQ0Ci0t
LSBhL3hlbi9hcmNoL3g4Ni9jcHUtcG9saWN5LmMKKysrIGIveGVuL2FyY2gv
eDg2L2NwdS1wb2xpY3kuYwpAQCAtNDE0LDggKzQxNCw5IEBAIHN0YXRpYyB2
b2lkIF9faW5pdCBjYWxjdWxhdGVfaG9zdF9wb2xpY3kodm9pZCkKIAogc3Rh
dGljIHZvaWQgX19pbml0IGd1ZXN0X2NvbW1vbl9tYXhfZmVhdHVyZV9hZGp1
c3RtZW50cyh1aW50MzJfdCAqZnMpCiB7Ci0gICAgaWYgKCBib290X2NwdV9k
YXRhLng4Nl92ZW5kb3IgPT0gWDg2X1ZFTkRPUl9JTlRFTCApCisgICAgc3dp
dGNoICggYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yICkKICAgICB7CisgICAg
Y2FzZSBYODZfVkVORE9SX0lOVEVMOgogICAgICAgICAvKgogICAgICAgICAg
KiBNU1JfQVJDSF9DQVBTIGlzIGp1c3QgZmVhdHVyZSBkYXRhLCBhbmQgd2Ug
Y2FuIG9mZmVyIGl0IHRvIGd1ZXN0cwogICAgICAgICAgKiB1bmNvbmRpdGlv
bmFsbHksIGFsdGhvdWdoIGxpbWl0IGl0IHRvIEludGVsIHN5c3RlbXMgYXMg
aXQgaXMgaGlnaGx5CkBAIC00NjAsNiArNDYxLDIyIEBAIHN0YXRpYyB2b2lk
IF9faW5pdCBndWVzdF9jb21tb25fbWF4X2ZlYXR1cmVfYWRqdXN0bWVudHMo
dWludDMyX3QgKmZzKQogICAgICAgICAgICAgIGJvb3RfY3B1X2RhdGEueDg2
X21vZGVsID09IElOVEVMX0ZBTTZfU0tZTEFLRV9YICYmCiAgICAgICAgICAg
ICAgcmF3X2NwdV9wb2xpY3kuZmVhdC5jbHdiICkKICAgICAgICAgICAgIF9f
c2V0X2JpdChYODZfRkVBVFVSRV9DTFdCLCBmcyk7CisKKyAgICAgICAgLyoK
KyAgICAgICAgICogVG8gbWl0aWdhdGUgTmF0aXZlLUJISSwgb25lIG9wdGlv
biBpcyB0byB1c2UgYSBUU1ggQWJvcnQgb24gY2FwYWJsZQorICAgICAgICAg
KiBzeXN0ZW1zLiAgVGhpcyBpcyBzYWZlIGV2ZW4gaWYgUlRNIGhhcyBiZWVu
IGRpc2FibGVkIGZvciBvdGhlcgorICAgICAgICAgKiByZWFzb25zIHZpYSBN
U1JfVFNYX3tDVFJMLEZPUkNFX0FCT1JUfS4gIEhvd2V2ZXIsIGEgZ3Vlc3Qg
a2VybmVsCisgICAgICAgICAqIGRvZXNuJ3QgZ2V0IHRvIGtub3cgdGhpcyB0
eXBlIG9mIGluZm9ybWF0aW9uLgorICAgICAgICAgKgorICAgICAgICAgKiBU
aGVyZWZvcmUgdGhlIG1lYW5pbmcgb2YgUlRNX0FMV0FZU19BQk9SVCBoYXMg
YmVlbiBhZGp1c3RlZCwgdG8KKyAgICAgICAgICogaW5zdGVhZCBtZWFuICJY
QkVHSU4gd29uJ3QgZmF1bHQiLiAgVGhpcyBpcyBlbm91Z2ggZm9yIGEgZ3Vl
c3QKKyAgICAgICAgICoga2VybmVsIHRvIG1ha2UgYW4gaW5mb3JtZWQgY2hv
aWNlIFdSVCBtaXRpZ2F0aW5nIE5hdGl2ZS1CSEkuCisgICAgICAgICAqCisg
ICAgICAgICAqIElmIFJUTS1jYXBhYmxlLCB3ZSBjYW4gcnVuIGEgVk0gd2hp
Y2ggaGFzIHNlZW4gUlRNX0FMV0FZU19BQk9SVC4KKyAgICAgICAgICovCisg
ICAgICAgIGlmICggdGVzdF9iaXQoWDg2X0ZFQVRVUkVfUlRNLCBmcykgKQor
ICAgICAgICAgICAgX19zZXRfYml0KFg4Nl9GRUFUVVJFX1JUTV9BTFdBWVNf
QUJPUlQsIGZzKTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgLyoK
QEAgLTQ3MSwyNyArNDg4LDEzIEBAIHN0YXRpYyB2b2lkIF9faW5pdCBndWVz
dF9jb21tb25fbWF4X2ZlYXR1cmVfYWRqdXN0bWVudHModWludDMyX3QgKmZz
KQogICAgICAqLwogICAgIF9fc2V0X2JpdChYODZfRkVBVFVSRV9IVFQsIGZz
KTsKICAgICBfX3NldF9iaXQoWDg2X0ZFQVRVUkVfQ01QX0xFR0FDWSwgZnMp
OwotCi0gICAgLyoKLSAgICAgKiBUbyBtaXRpZ2F0ZSBOYXRpdmUtQkhJLCBv
bmUgb3B0aW9uIGlzIHRvIHVzZSBhIFRTWCBBYm9ydCBvbiBjYXBhYmxlCi0g
ICAgICogc3lzdGVtcy4gIFRoaXMgaXMgc2FmZSBldmVuIGlmIFJUTSBoYXMg
YmVlbiBkaXNhYmxlZCBmb3Igb3RoZXIgcmVhc29ucwotICAgICAqIHZpYSBN
U1JfVFNYX3tDVFJMLEZPUkNFX0FCT1JUfS4gIEhvd2V2ZXIsIGEgZ3Vlc3Qg
a2VybmVsIGRvZXNuJ3QgZ2V0IHRvCi0gICAgICoga25vdyB0aGlzIHR5cGUg
b2YgaW5mb3JtYXRpb24uCi0gICAgICoKLSAgICAgKiBUaGVyZWZvcmUgdGhl
IG1lYW5pbmcgb2YgUlRNX0FMV0FZU19BQk9SVCBoYXMgYmVlbiBhZGp1c3Rl
ZCwgdG8gaW5zdGVhZAotICAgICAqIG1lYW4gIlhCRUdJTiB3b24ndCBmYXVs
dCIuICBUaGlzIGlzIGVub3VnaCBmb3IgYSBndWVzdCBrZXJuZWwgdG8gbWFr
ZQotICAgICAqIGFuIGluZm9ybWVkIGNob2ljZSBXUlQgbWl0aWdhdGluZyBO
YXRpdmUtQkhJLgotICAgICAqCi0gICAgICogSWYgUlRNLWNhcGFibGUsIHdl
IGNhbiBydW4gYSBWTSB3aGljaCBoYXMgc2VlbiBSVE1fQUxXQVlTX0FCT1JU
LgotICAgICAqLwotICAgIGlmICggdGVzdF9iaXQoWDg2X0ZFQVRVUkVfUlRN
LCBmcykgKQotICAgICAgICBfX3NldF9iaXQoWDg2X0ZFQVRVUkVfUlRNX0FM
V0FZU19BQk9SVCwgZnMpOwogfQogCiBzdGF0aWMgdm9pZCBfX2luaXQgZ3Vl
c3RfY29tbW9uX2RlZmF1bHRfZmVhdHVyZV9hZGp1c3RtZW50cyh1aW50MzJf
dCAqZnMpCiB7Ci0gICAgaWYgKCBib290X2NwdV9kYXRhLng4Nl92ZW5kb3Ig
PT0gWDg2X1ZFTkRPUl9JTlRFTCApCisgICAgc3dpdGNoICggYm9vdF9jcHVf
ZGF0YS54ODZfdmVuZG9yICkKICAgICB7CisgICAgY2FzZSBYODZfVkVORE9S
X0lOVEVMOgogICAgICAgICAvKgogICAgICAgICAgKiBJdnlCcmlkZ2UgY2xp
ZW50IHBhcnRzIHN1ZmZlciBmcm9tIGxlYWthZ2Ugb2YgUkRSQU5EIGRhdGEg
ZHVlIHRvIFNSQkRTCiAgICAgICAgICAqIChYU0EtMzIwIC8gQ1ZFLTIwMjAt
MDU0MyksIGFuZCB3b24ndCBiZSByZWNlaXZpbmcgbWljcm9jb2RlIHRvCkBA
IC01MzUsNiArNTM4LDIzIEBAIHN0YXRpYyB2b2lkIF9faW5pdCBndWVzdF9j
b21tb25fZGVmYXVsdF9mZWF0dXJlX2FkanVzdG1lbnRzKHVpbnQzMl90ICpm
cykKICAgICAgICAgICAgICBib290X2NwdV9kYXRhLng4Nl9tb2RlbCA9PSBJ
TlRFTF9GQU02X1NLWUxBS0VfWCAmJgogICAgICAgICAgICAgIHJhd19jcHVf
cG9saWN5LmZlYXQuY2x3YiApCiAgICAgICAgICAgICBfX2NsZWFyX2JpdChY
ODZfRkVBVFVSRV9DTFdCLCBmcyk7CisKKyAgICAgICAgLyoKKyAgICAgICAg
ICogT24gY2VydGFpbiBoYXJkd2FyZSwgc3BlY3VsYXRpdmUgb3IgZXJyYXRh
IHdvcmthcm91bmRzIGNhbiByZXN1bHQKKyAgICAgICAgICogaW4gVFNYIGJl
aW5nIHBsYWNlZCBpbiAiZm9yY2UtYWJvcnQiIG1vZGUsIHdoZXJlIGl0IGRv
ZXNuJ3QKKyAgICAgICAgICogYWN0dWFsbHkgZnVuY3Rpb24gYXMgZXhwZWN0
ZWQsIGJ1dCBpcyB0ZWNobmljYWxseSBjb21wYXRpYmxlIHdpdGgKKyAgICAg
ICAgICogdGhlIElTQS4KKyAgICAgICAgICoKKyAgICAgICAgICogRG8gbm90
IGFkdmVydGlzZSBSVE0gdG8gZ3Vlc3RzIGJ5IGRlZmF1bHQgaWYgaXQgd29u
J3QgYWN0dWFsbHkKKyAgICAgICAgICogd29yay4gIEluc3RlYWQsIGFkdmVy
dGlzZSBSVE1fQUxXQVlTX0FCT1JUIGluZGljYXRpbmcgdGhhdCBUU1gKKyAg
ICAgICAgICogQWJvcnRzIGFyZSBzYWZlIHRvIHVzZSwgZS5nLiBmb3IgbWl0
aWdhdGluZyBOYXRpdmUtQkhJLgorICAgICAgICAgKi8KKyAgICAgICAgaWYg
KCBydG1fZGlzYWJsZWQgKQorICAgICAgICB7CisgICAgICAgICAgICBfX2Ns
ZWFyX2JpdChYODZfRkVBVFVSRV9SVE0sIGZzKTsKKyAgICAgICAgICAgIF9f
c2V0X2JpdChYODZfRkVBVFVSRV9SVE1fQUxXQVlTX0FCT1JULCBmcyk7Cisg
ICAgICAgIH0KKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgLyoKQEAg
LTU0NiwyMSArNTY2LDYgQEAgc3RhdGljIHZvaWQgX19pbml0IGd1ZXN0X2Nv
bW1vbl9kZWZhdWx0X2ZlYXR1cmVfYWRqdXN0bWVudHModWludDMyX3QgKmZz
KQogCiAgICAgaWYgKCAhY3B1X2hhc19jbXBfbGVnYWN5ICkKICAgICAgICAg
X19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVfQ01QX0xFR0FDWSwgZnMpOwotCi0g
ICAgLyoKLSAgICAgKiBPbiBjZXJ0YWluIGhhcmR3YXJlLCBzcGVjdWxhdGl2
ZSBvciBlcnJhdGEgd29ya2Fyb3VuZHMgY2FuIHJlc3VsdCBpbgotICAgICAq
IFRTWCBiZWluZyBwbGFjZWQgaW4gImZvcmNlLWFib3J0IiBtb2RlLCB3aGVy
ZSBpdCBkb2Vzbid0IGFjdHVhbGx5Ci0gICAgICogZnVuY3Rpb24gYXMgZXhw
ZWN0ZWQsIGJ1dCBpcyB0ZWNobmljYWxseSBjb21wYXRpYmxlIHdpdGggdGhl
IElTQS4KLSAgICAgKgotICAgICAqIERvIG5vdCBhZHZlcnRpc2UgUlRNIHRv
IGd1ZXN0cyBieSBkZWZhdWx0IGlmIGl0IHdvbid0IGFjdHVhbGx5IHdvcmsu
Ci0gICAgICogSW5zdGVhZCwgYWR2ZXJ0aXNlIFJUTV9BTFdBWVNfQUJPUlQg
aW5kaWNhdGluZyB0aGF0IFRTWCBBYm9ydHMgYXJlIHNhZmUKLSAgICAgKiB0
byB1c2UsIGUuZy4gZm9yIG1pdGlnYXRpbmcgTmF0aXZlLUJISS4KLSAgICAg
Ki8KLSAgICBpZiAoIHJ0bV9kaXNhYmxlZCApCi0gICAgewotICAgICAgICBf
X2NsZWFyX2JpdChYODZfRkVBVFVSRV9SVE0sIGZzKTsKLSAgICAgICAgX19z
ZXRfYml0KFg4Nl9GRUFUVVJFX1JUTV9BTFdBWVNfQUJPUlQsIGZzKTsKLSAg
ICB9CiB9CiAKIHN0YXRpYyB2b2lkIF9faW5pdCBndWVzdF9jb21tb25fZmVh
dHVyZV9hZGp1c3RtZW50cyh1aW50MzJfdCAqZnMpCg==

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.17-16.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.17-16.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxMCBTZXAgMjAyNCAxOTo1NToxNSArMDEwMApTdWJq
ZWN0OiB4ODYvY3B1LXBvbGljeTogSW5mcmFzdHJ1Y3R1cmUgZm9yIENQVUlE
IGxlYWYgMHg4MDAwMDAyMS5lY3gKClNpZ25lZC1vZmYtYnk6IEFuZHJldyBD
b29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5
OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CgpkaWZmIC0tZ2l0
IGEvdG9vbHMvbGlicy9saWdodC9saWJ4bF9jcHVpZC5jIGIvdG9vbHMvbGli
cy9saWdodC9saWJ4bF9jcHVpZC5jCmluZGV4IDVjNjZkMDk0YjJkYy4uNDkz
ZjYxNWM5ZDM1IDEwMDY0NAotLS0gYS90b29scy9saWJzL2xpZ2h0L2xpYnhs
X2NwdWlkLmMKKysrIGIvdG9vbHMvbGlicy9saWdodC9saWJ4bF9jcHVpZC5j
CkBAIC0zNDQsNiArMzQ0LDcgQEAgaW50IGxpYnhsX2NwdWlkX3BhcnNlX2Nv
bmZpZyhsaWJ4bF9jcHVpZF9wb2xpY3lfbGlzdCAqcG9saWN5LCBjb25zdCBj
aGFyKiBzdHIpCiAgICAgICAgIENQVUlEX0VOVFJZKDB4MDAwMDAwMDcsICAx
LCBDUFVJRF9SRUdfRURYKSwKICAgICAgICAgTVNSX0VOVFJZKDB4MTBhLCBD
UFVJRF9SRUdfRUFYKSwKICAgICAgICAgTVNSX0VOVFJZKDB4MTBhLCBDUFVJ
RF9SRUdfRURYKSwKKyAgICAgICAgQ1BVSURfRU5UUlkoMHg4MDAwMDAyMSwg
TkEsIENQVUlEX1JFR19FQ1gpLAogI3VuZGVmIE1TUl9FTlRSWQogI3VuZGVm
IENQVUlEX0VOVFJZCiAgICAgfTsKZGlmZiAtLWdpdCBhL3Rvb2xzL21pc2Mv
eGVuLWNwdWlkLmMgYi90b29scy9taXNjL3hlbi1jcHVpZC5jCmluZGV4IGIy
NzdiNzhiNjU0Zi4uNzcwNDk4MGI4YTliIDEwMDY0NAotLS0gYS90b29scy9t
aXNjL3hlbi1jcHVpZC5jCisrKyBiL3Rvb2xzL21pc2MveGVuLWNwdWlkLmMK
QEAgLTI0NCw2ICsyNDQsMTAgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0
IHN0cl9tMTBBbFs2NF0gPQogICAgIFs2Ml0gPSAiaXRzLW5vIiwKIH07CiAK
K3N0YXRpYyBjb25zdCBjaGFyICpjb25zdCBzdHJfZTIxY1szMl0gPQorewor
fTsKKwogc3RhdGljIGNvbnN0IHN0cnVjdCB7CiAgICAgY29uc3QgY2hhciAq
bmFtZTsKICAgICBjb25zdCBjaGFyICphYmJyOwpAQCAtMjY4LDYgKzI3Miw3
IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgewogICAgIHsgIkNQVUlEIDB4MDAw
MDAwMDc6MS5lZHgiLCAgICAgIjdkMSIsIHN0cl83ZDEgfSwKICAgICB7ICJN
U1JfQVJDSF9DQVBTLmxvIiwgICAgICAgICAibTEwQWwiLCBzdHJfbTEwQWwg
fSwKICAgICB7ICJNU1JfQVJDSF9DQVBTLmhpIiwgICAgICAgICAibTEwQWgi
LCBzdHJfbTEwQWwgKyAzMiB9LAorICAgIHsgIkNQVUlEIDB4ODAwMDAwMjEu
ZWN4IiwgICAgICAiZTIxYyIsIHN0cl9lMjFjIH0sCiB9OwogCiAjZGVmaW5l
IENPTF9BTElHTiAiMjQiCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1
LXBvbGljeS5jIGIveGVuL2FyY2gveDg2L2NwdS1wb2xpY3kuYwppbmRleCA0
OThmYTRmOTk1N2MuLmI0ZDNmYTgyNDM2MyAxMDA2NDQKLS0tIGEveGVuL2Fy
Y2gveDg2L2NwdS1wb2xpY3kuYworKysgYi94ZW4vYXJjaC94ODYvY3B1LXBv
bGljeS5jCkBAIC0zNDEsNyArMzQxLDYgQEAgc3RhdGljIHZvaWQgcmVjYWxj
dWxhdGVfbWlzYyhzdHJ1Y3QgY3B1X3BvbGljeSAqcCkKICAgICAgICAgcC0+
ZXh0ZC5yYXdbMHgxZl0gPSBFTVBUWV9MRUFGOyAvKiBTRVYgKi8KICAgICAg
ICAgcC0+ZXh0ZC5yYXdbMHgyMF0gPSBFTVBUWV9MRUFGOyAvKiBQbGF0Zm9y
bSBRb1MgKi8KICAgICAgICAgcC0+ZXh0ZC5yYXdbMHgyMV0uYiA9IDA7Ci0g
ICAgICAgIHAtPmV4dGQucmF3WzB4MjFdLmMgPSAwOwogICAgICAgICBwLT5l
eHRkLnJhd1sweDIxXS5kID0gMDsKICAgICAgICAgYnJlYWs7CiAgICAgfQpk
aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2NwdS9jb21tb24uYyBiL3hlbi9h
cmNoL3g4Ni9jcHUvY29tbW9uLmMKaW5kZXggMTRhM2E5NzgwNmYwLi41ZDY0
ODYyMmZlNmYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvY29tbW9u
LmMKKysrIGIveGVuL2FyY2gveDg2L2NwdS9jb21tb24uYwpAQCAtNDY5LDcg
KzQ2OSw5IEBAIHN0YXRpYyB2b2lkIGdlbmVyaWNfaWRlbnRpZnkoc3RydWN0
IGNwdWluZm9feDg2ICpjKQogCWlmIChjLT5leHRlbmRlZF9jcHVpZF9sZXZl
bCA+PSAweDgwMDAwMDA4KQogCQljLT54ODZfY2FwYWJpbGl0eVtGRUFUVVJF
U0VUX2U4Yl0gPSBjcHVpZF9lYngoMHg4MDAwMDAwOCk7CiAJaWYgKGMtPmV4
dGVuZGVkX2NwdWlkX2xldmVsID49IDB4ODAwMDAwMjEpCi0JCWMtPng4Nl9j
YXBhYmlsaXR5W0ZFQVRVUkVTRVRfZTIxYV0gPSBjcHVpZF9lYXgoMHg4MDAw
MDAyMSk7CisJCWNwdWlkKDB4ODAwMDAwMjEsCisJCSAgICAgICZjLT54ODZf
Y2FwYWJpbGl0eVtGRUFUVVJFU0VUX2UyMWFdLCAmdG1wLAorCQkgICAgICAm
Yy0+eDg2X2NhcGFiaWxpdHlbRkVBVFVSRVNFVF9lMjFjXSwgJnRtcCk7CiAK
IAkvKiBJbnRlbC1kZWZpbmVkIGZsYWdzOiBsZXZlbCAweDAwMDAwMDA3ICov
CiAJaWYgKGMtPmNwdWlkX2xldmVsID49IDcpIHsKZGlmZiAtLWdpdCBhL3hl
bi9pbmNsdWRlL3B1YmxpYy9hcmNoLXg4Ni9jcHVmZWF0dXJlc2V0LmggYi94
ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC14ODYvY3B1ZmVhdHVyZXNldC5oCmlu
ZGV4IDk5YzRkYzFmZmQ0MC4uMDNjZDE0MTljNWNiIDEwMDY0NAotLS0gYS94
ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC14ODYvY3B1ZmVhdHVyZXNldC5oCisr
KyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9hcmNoLXg4Ni9jcHVmZWF0dXJlc2V0
LmgKQEAgLTMzNyw2ICszMzcsOCBAQCBYRU5fQ1BVRkVBVFVSRShSRkRTX0NM
RUFSLCAgICAgICAgIDE2KjMyKzI4KSAvKiFBIFJlZ2lzdGVyIEZpbGUocykg
Y2xlYXJlZCBieSBWRQogLyogSW50ZWwtZGVmaW5lZCBDUFUgZmVhdHVyZXMs
IE1TUl9BUkNIX0NBUFMgMHgxMGEuZWR4LCB3b3JkIDE3IChleHByZXNzIGlu
IHRlcm1zIG9mIHdvcmQgMTYpICovCiBYRU5fQ1BVRkVBVFVSRShJVFNfTk8s
ICAgICAgICAgICAgIDE2KjMyKzYyKSAvKiFBIE5vIEluZGlyZWN0IFRhcmdl
dCBTZWxlY3Rpb24gKi8KIAorLyogQU1ELWRlZmluZWQgQ1BVIGZlYXR1cmVz
LCBDUFVJRCBsZXZlbCAweDgwMDAwMDIxLmVjeCwgd29yZCAxOCAqLworCiAj
ZW5kaWYgLyogWEVOX0NQVUZFQVRVUkUgKi8KIAogLyogQ2xlYW4gdXAgZnJv
bSBhIGRlZmF1bHQgaW5jbHVkZS4gIENsb3NlIHRoZSBlbnVtIChmb3IgQyku
ICovCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vbGliL3g4Ni9jcHUt
cG9saWN5LmggYi94ZW4vaW5jbHVkZS94ZW4vbGliL3g4Ni9jcHUtcG9saWN5
LmgKaW5kZXggYmEyOWJmZTliNDE0Li43YmI5MGVkZjgzMGQgMTAwNjQ0Ci0t
LSBhL3hlbi9pbmNsdWRlL3hlbi9saWIveDg2L2NwdS1wb2xpY3kuaAorKysg
Yi94ZW4vaW5jbHVkZS94ZW4vbGliL3g4Ni9jcHUtcG9saWN5LmgKQEAgLTIy
LDYgKzIyLDcgQEAKICNkZWZpbmUgRkVBVFVSRVNFVF83ZDEgICAgICAgMTUg
LyogMHgwMDAwMDAwNzoxLmVkeCAgICAqLwogI2RlZmluZSBGRUFUVVJFU0VU
X20xMEFsICAgICAxNiAvKiAweDAwMDAwMTBhLmVheCAgICAgICovCiAjZGVm
aW5lIEZFQVRVUkVTRVRfbTEwQWggICAgIDE3IC8qIDB4MDAwMDAxMGEuZWR4
ICAgICAgKi8KKyNkZWZpbmUgRkVBVFVSRVNFVF9lMjFjICAgICAgMTggLyog
MHg4MDAwMDAyMS5lY3ggICAgICAqLwogCiBzdHJ1Y3QgY3B1aWRfbGVhZgog
ewpAQCAtMzI3LDcgKzMyOCwxMSBAQCBzdHJ1Y3QgY3B1X3BvbGljeQogICAg
ICAgICAgICAgdWludDE2X3QgdWNvZGVfc2l6ZTsgLyogVW5pdHMgb2YgMTYg
Ynl0ZXMgKi8KICAgICAgICAgICAgIHVpbnQ4X3QgIHJhcF9zaXplOyAgIC8q
IFVuaXRzIG9mIDggZW50cmllcyAqLwogICAgICAgICAgICAgdWludDhfdCAg
Ojg7Ci0gICAgICAgICAgICB1aW50MzJfdCAvKiBjICovOjMyLCAvKiBkICov
OjMyOworICAgICAgICAgICAgdW5pb24geworICAgICAgICAgICAgICAgIHVp
bnQzMl90IGUyMWM7CisgICAgICAgICAgICAgICAgc3RydWN0IHsgREVDTF9C
SVRGSUVMRChlMjFjKTsgfTsKKyAgICAgICAgICAgIH07CisgICAgICAgICAg
ICB1aW50MzJfdCAvKiBkICovOjMyOwogICAgICAgICB9OwogICAgIH0gZXh0
ZDsKIApkaWZmIC0tZ2l0IGEveGVuL2xpYi94ODYvY3B1aWQuYyBiL3hlbi9s
aWIveDg2L2NwdWlkLmMKaW5kZXggMDdlNTUwMTkxNDQ4Li4yMmZkMTYyYzlk
Y2EgMTAwNjQ0Ci0tLSBhL3hlbi9saWIveDg2L2NwdWlkLmMKKysrIGIveGVu
L2xpYi94ODYvY3B1aWQuYwpAQCAtODEsNiArODEsNyBAQCB2b2lkIHg4Nl9j
cHVfcG9saWN5X3RvX2ZlYXR1cmVzZXQoCiAgICAgZnNbRkVBVFVSRVNFVF83
ZDFdICAgICAgID0gcC0+ZmVhdC5fN2QxOwogICAgIGZzW0ZFQVRVUkVTRVRf
bTEwQWxdICAgICA9IHAtPmFyY2hfY2Fwcy5sbzsKICAgICBmc1tGRUFUVVJF
U0VUX20xMEFoXSAgICAgPSBwLT5hcmNoX2NhcHMuaGk7CisgICAgZnNbRkVB
VFVSRVNFVF9lMjFjXSAgICAgID0gcC0+ZXh0ZC5lMjFjOwogfQogCiB2b2lk
IHg4Nl9jcHVfZmVhdHVyZXNldF90b19wb2xpY3koCkBAIC0xMDQsNiArMTA1
LDcgQEAgdm9pZCB4ODZfY3B1X2ZlYXR1cmVzZXRfdG9fcG9saWN5KAogICAg
IHAtPmZlYXQuXzdkMSAgICAgICAgICAgICA9IGZzW0ZFQVRVUkVTRVRfN2Qx
XTsKICAgICBwLT5hcmNoX2NhcHMubG8gICAgICAgICAgPSBmc1tGRUFUVVJF
U0VUX20xMEFsXTsKICAgICBwLT5hcmNoX2NhcHMuaGkgICAgICAgICAgPSBm
c1tGRUFUVVJFU0VUX20xMEFoXTsKKyAgICBwLT5leHRkLmUyMWMgICAgICAg
ICAgICAgPSBmc1tGRUFUVVJFU0VUX2UyMWNdOwogfQogCiB2b2lkIHg4Nl9j
cHVfcG9saWN5X3JlY2FsY19zeW50aChzdHJ1Y3QgY3B1X3BvbGljeSAqcCkK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.17-17.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.17-17.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogRnJpLCAyNyBTZXAgMjAyNCAxMToyODozOSArMDEwMApTdWJq
ZWN0OiB4ODYvdWNvZGU6IERpZ2VzdHMgZm9yIFRTQSBtaWNyb2NvZGUKCkFN
RCBhcmUgcmVsZWFzaW5nIG1pY3JvY29kZSBmb3IgVFNBLCBzbyBleHRlbmQg
dGhlIGtub3duLXByb3ZlbmFuY2UgbGlzdCB3aXRoCnRoZWlyIGhhc2hlcy4g
IFRoZXNlIHdlcmUgcHJvZHVjZWQgYmVmb3JlIHRoZSByZW1lZGlhdGlvbiBv
ZiB0aGUgbWljcm9jb2RlCnNpZ25hdHVyZSBpc3N1ZXMgKHRoZSBlbnRyeXNp
Z24gdnVsbmVyYWJpbGl0eSksIHNvIGNhbiBiZSBPUy1sb2FkZWQgb24Kb3V0
LW9mLWRhdGUgZmlybXdhcmUuCgpJbmNsdWRlIGFuIG9mZi1ieS1kZWZhdWx0
IGNoZWNrIGZvciB0aGUgc29ydGVkLW5lc3Mgb2YgcGF0Y2hfZGlnZXN0c1td
LiAgSXQncwpub3Qgd29ydGggcnVubmluZyBnZW5lcmFsbHkgdW5kZXIgU0VM
Rl9URVNUUywgYnV0IGlzIHVzZWZ1bCB3aGVuIGVkaXRpbmcgdGhlCmRpZ2Vz
dCBsaXN0LgoKVGhpcyBpcyBwYXJ0IG9mIFhTQS00NzEgLyBDVkUtMjAyNC0z
NjM1MCAvIENWRS0yMDI0LTM2MzU3LgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3
IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KQWNrZWQtYnk6
IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KCmRpZmYgLS1naXQg
YS94ZW4vYXJjaC94ODYvY3B1L21pY3JvY29kZS9hbWQtcGF0Y2gtZGlnZXN0
cy5jIGIveGVuL2FyY2gveDg2L2NwdS9taWNyb2NvZGUvYW1kLXBhdGNoLWRp
Z2VzdHMuYwppbmRleCBkMzI3NjEyMjY3MTIuLmQyYzRlMDE3OGExZSAxMDA2
NDQKLS0tIGEveGVuL2FyY2gveDg2L2NwdS9taWNyb2NvZGUvYW1kLXBhdGNo
LWRpZ2VzdHMuYworKysgYi94ZW4vYXJjaC94ODYvY3B1L21pY3JvY29kZS9h
bWQtcGF0Y2gtZGlnZXN0cy5jCkBAIC04MCw2ICs4MCwxNSBAQAogICAgICAg
ICAweDBkLCAweDViLCAweDY1LCAweDM0LCAweDY5LCAweGIyLCAweDYyLCAw
eDIxLAogICAgIH0sCiB9LAoreworICAgIC5wYXRjaF9pZCA9IDB4MGEwMDEx
ZDcsCisgICAgLmRpZ2VzdCA9IHsKKyAgICAgICAgMHgzNSwgMHgwNywgMHhj
ZCwgMHg0MCwgMHg5NCwgMHhiYywgMHg4MSwgMHg2YiwKKyAgICAgICAgMHhm
YywgMHg2MSwgMHg1NiwgMHgxYSwgMHhlMiwgMHhkYiwgMHg5NiwgMHgxMiwK
KyAgICAgICAgMHgxYywgMHgxYywgMHgzMSwgMHhiMSwgMHgwMiwgMHg2Ziwg
MHhlNSwgMHhkMiwKKyAgICAgICAgMHhmZSwgMHgxYiwgMHgwNCwgMHgwMywg
MHgyYywgMHg4ZiwgMHg0YywgMHgzNiwKKyAgICB9LAorfSwKIHsKICAgICAu
cGF0Y2hfaWQgPSAweDBhMDAxMjM4LAogICAgIC5kaWdlc3QgPSB7CkBAIC04
OSw2ICs5OCwxNSBAQAogICAgICAgICAweGMwLCAweGNkLCAweDMzLCAweGYy
LCAweDhkLCAweGY5LCAweGVmLCAweDU5LAogICAgIH0sCiB9LAoreworICAg
IC5wYXRjaF9pZCA9IDB4MGEwMDEyM2IsCisgICAgLmRpZ2VzdCA9IHsKKyAg
ICAgICAgMHhlZiwgMHhhMSwgMHgxZSwgMHg3MSwgMHhmMSwgMHhjMywgMHgy
YywgMHhlMiwKKyAgICAgICAgMHhjMywgMHhlZiwgMHg2OSwgMHg0MSwgMHg3
YSwgMHg1NCwgMHhjYSwgMHhjMywKKyAgICAgICAgMHg4ZiwgMHg2MiwgMHg4
NCwgMHhlZSwgMHhjMiwgMHgzOSwgMHhkOSwgMHgyOCwKKyAgICAgICAgMHg5
NSwgMHhhNywgMHgxMiwgMHg0OSwgMHgxZSwgMHgzMCwgMHg3MSwgMHg3MiwK
KyAgICB9LAorfSwKIHsKICAgICAucGF0Y2hfaWQgPSAweDBhMDA4MjBjLAog
ICAgIC5kaWdlc3QgPSB7CkBAIC05OCw2ICsxMTYsMTUgQEAKICAgICAgICAg
MHhlMSwgMHgzYiwgMHg4ZCwgMHhiMiwgMHhmOCwgMHgyMiwgMHgwMywgMHhl
MiwKICAgICB9LAogfSwKK3sKKyAgICAucGF0Y2hfaWQgPSAweDBhMDA4MjBk
LAorICAgIC5kaWdlc3QgPSB7CisgICAgICAgIDB4ZjksIDB4MmEsIDB4YzAs
IDB4ZjQsIDB4OWUsIDB4YTQsIDB4ODcsIDB4YTQsCisgICAgICAgIDB4N2Qs
IDB4ODcsIDB4MDAsIDB4ZmQsIDB4YWIsIDB4ZGEsIDB4MTksIDB4Y2EsCisg
ICAgICAgIDB4MjYsIDB4NTEsIDB4MzIsIDB4YzEsIDB4NTcsIDB4OTEsIDB4
ZGYsIDB4YzEsCisgICAgICAgIDB4MDUsIDB4ZWIsIDB4MDEsIDB4N2MsIDB4
NWEsIDB4OTUsIDB4MjEsIDB4YjcsCisgICAgfSwKK30sCiB7CiAgICAgLnBh
dGNoX2lkID0gMHgwYTEwMTE0OCwKICAgICAuZGlnZXN0ID0gewpAQCAtMTA3
LDYgKzEzNCwxNSBAQAogICAgICAgICAweGYxLCAweDVlLCAweGIwLCAweGRl
LCAweGI0LCAweDk4LCAweGFlLCAweGM0LAogICAgIH0sCiB9LAoreworICAg
IC5wYXRjaF9pZCA9IDB4MGExMDExNGMsCisgICAgLmRpZ2VzdCA9IHsKKyAg
ICAgICAgMHg5ZSwgMHhiNiwgMHhhMiwgMHhkOSwgMHg4NywgMHgzOCwgMHhj
NSwgMHg2NCwKKyAgICAgICAgMHhkOCwgMHg4OCwgMHhmYSwgMHg3OCwgMHg5
OCwgMHhmOSwgMHg2ZiwgMHg3NCwKKyAgICAgICAgMHgzOSwgMHg5MCwgMHgx
YiwgMHhhNSwgMHhjZiwgMHg1ZSwgMHhiNCwgMHgyYSwKKyAgICAgICAgMHgw
MiwgMHhmZiwgMHhkNCwgMHg4YywgMHg3MSwgMHg4YiwgMHhlMiwgMHhjMCwK
KyAgICB9LAorfSwKIHsKICAgICAucGF0Y2hfaWQgPSAweDBhMTAxMjQ4LAog
ICAgIC5kaWdlc3QgPSB7CkBAIC0xMTYsNiArMTUyLDE1IEBACiAgICAgICAg
IDB4MWIsIDB4N2QsIDB4NjQsIDB4OWQsIDB4NGIsIDB4NTMsIDB4MTMsIDB4
NzUsCiAgICAgfSwKIH0sCit7CisgICAgLnBhdGNoX2lkID0gMHgwYTEwMTI0
YywKKyAgICAuZGlnZXN0ID0geworICAgICAgICAweDI5LCAweGVhLCAweGYx
LCAweDJjLCAweGIyLCAweGU0LCAweGVmLCAweDkwLAorICAgICAgICAweGE0
LCAweGNkLCAweDFkLCAweDg2LCAweDk3LCAweDE3LCAweDYxLCAweDQ2LAor
ICAgICAgICAweGZjLCAweDIyLCAweGNiLCAweDU3LCAweDc1LCAweDE5LCAw
eGM4LCAweGNjLAorICAgICAgICAweDBjLCAweGY1LCAweGJjLCAweGFjLCAw
eDgxLCAweDlkLCAweDlhLCAweGQyLAorICAgIH0sCit9LAogewogICAgIC5w
YXRjaF9pZCA9IDB4MGExMDgxMDgsCiAgICAgLmRpZ2VzdCA9IHsKQEAgLTEy
NSw2ICsxNzAsMTUgQEAKICAgICAgICAgMHgyOCwgMHgxZSwgMHg5YywgMHg1
OSwgMHg2OSwgMHg5OSwgMHg0ZCwgMHgxNiwKICAgICB9LAogfSwKK3sKKyAg
ICAucGF0Y2hfaWQgPSAweDBhMTA4MTA5LAorICAgIC5kaWdlc3QgPSB7Cisg
ICAgICAgIDB4ODUsIDB4YjQsIDB4YmQsIDB4N2MsIDB4NDksIDB4YTcsIDB4
YmQsIDB4ZmEsCisgICAgICAgIDB4NDksIDB4MzYsIDB4ODAsIDB4ODEsIDB4
YzUsIDB4YjcsIDB4MzksIDB4MWIsCisgICAgICAgIDB4OWEsIDB4YWEsIDB4
NTAsIDB4ZGUsIDB4OWIsIDB4ZTksIDB4MzIsIDB4MzUsCisgICAgICAgIDB4
NDIsIDB4N2UsIDB4NTEsIDB4NGYsIDB4NTIsIDB4MmMsIDB4MjgsIDB4NTks
CisgICAgfSwKK30sCiB7CiAgICAgLnBhdGNoX2lkID0gMHgwYTIwMTAyZCwK
ICAgICAuZGlnZXN0ID0gewpAQCAtMTM0LDYgKzE4OCwxNSBAQAogICAgICAg
ICAweDhjLCAweGU5LCAweDE5LCAweDNlLCAweGNjLCAweDNmLCAweDdiLCAw
eGI0LAogICAgIH0sCiB9LAoreworICAgIC5wYXRjaF9pZCA9IDB4MGEyMDEw
MmUsCisgICAgLmRpZ2VzdCA9IHsKKyAgICAgICAgMHhiZSwgMHgxZiwgMHgz
MiwgMHgwNCwgMHgwZCwgMHgzYywgMHg5YywgMHhkZCwKKyAgICAgICAgMHhl
MSwgMHhhNCwgMHhiZiwgMHg3NiwgMHgzYSwgMHhlYywgMHhjMiwgMHhmNiwK
KyAgICAgICAgMHgxMSwgMHgwMCwgMHhhNywgMHhhZiwgMHgwZiwgMHhlNSwg
MHgwMiwgMHhjNSwKKyAgICAgICAgMHg1NCwgMHgzYSwgMHgxZiwgMHg4Yywg
MHgxNiwgMHhiNSwgMHhmZiwgMHhiZSwKKyAgICB9LAorfSwKIHsKICAgICAu
cGF0Y2hfaWQgPSAweDBhMjAxMjEwLAogICAgIC5kaWdlc3QgPSB7CkBAIC0x
NDMsNiArMjA2LDE1IEBACiAgICAgICAgIDB4ZjcsIDB4NTUsIDB4ZjAsIDB4
MTMsIDB4YmIsIDB4MjIsIDB4ZjYsIDB4NDEsCiAgICAgfSwKIH0sCit7Cisg
ICAgLnBhdGNoX2lkID0gMHgwYTIwMTIxMSwKKyAgICAuZGlnZXN0ID0gewor
ICAgICAgICAweDY5LCAweGExLCAweDE3LCAweGVjLCAweGQwLCAweGY2LCAw
eDZjLCAweDk1LAorICAgICAgICAweGUyLCAweDFlLCAweGM1LCAweDU5LCAw
eDFhLCAweDUyLCAweDBhLCAweDI3LAorICAgICAgICAweGM0LCAweGVkLCAw
eGQ1LCAweDU5LCAweDFmLCAweGJmLCAweDAwLCAweGZmLAorICAgICAgICAw
eDA4LCAweDg4LCAweGI1LCAweGUxLCAweDEyLCAweGI2LCAweGNjLCAweDI3
LAorICAgIH0sCit9LAogewogICAgIC5wYXRjaF9pZCA9IDB4MGE0MDQxMDcs
CiAgICAgLmRpZ2VzdCA9IHsKQEAgLTE1Miw2ICsyMjQsMTUgQEAKICAgICAg
ICAgMHgxMywgMHhiYywgMHhjNSwgMHgyNSwgMHhlNCwgMHhjNSwgMHhjMywg
MHg5OSwKICAgICB9LAogfSwKK3sKKyAgICAucGF0Y2hfaWQgPSAweDBhNDA0
MTA4LAorICAgIC5kaWdlc3QgPSB7CisgICAgICAgIDB4NjksIDB4NjcsIDB4
NDMsIDB4MDYsIDB4ZjgsIDB4MGMsIDB4NjIsIDB4ZGMsCisgICAgICAgIDB4
YTQsIDB4MjEsIDB4MzAsIDB4NGYsIDB4MGYsIDB4MjEsIDB4MmMsIDB4Y2Is
CisgICAgICAgIDB4Y2MsIDB4MzcsIDB4ZjEsIDB4MWMsIDB4YzMsIDB4Zjgs
IDB4MmYsIDB4MTksCisgICAgICAgIDB4ZGYsIDB4NTMsIDB4NTMsIDB4NDYs
IDB4YjEsIDB4MTUsIDB4ZWEsIDB4MDAsCisgICAgfSwKK30sCiB7CiAgICAg
LnBhdGNoX2lkID0gMHgwYTUwMDAxMSwKICAgICAuZGlnZXN0ID0gewpAQCAt
MTYxLDYgKzI0MiwxNSBAQAogICAgICAgICAweDExLCAweDVlLCAweDk2LCAw
eDdlLCAweDcxLCAweGU5LCAweGZjLCAweDc0LAogICAgIH0sCiB9LAorewor
ICAgIC5wYXRjaF9pZCA9IDB4MGE1MDAwMTIsCisgICAgLmRpZ2VzdCA9IHsK
KyAgICAgICAgMHhlYiwgMHg3NCwgMHgwZCwgMHg0NywgMHhhMSwgMHg4ZSwg
MHgwOSwgMHhlNCwKKyAgICAgICAgMHg5MywgMHg0YywgMHhhZCwgMHgwMywg
MHgzMiwgMHg0YywgMHgzOCwgMHgxNiwKKyAgICAgICAgMHgxMCwgMHgzOSwg
MHhkZCwgMHgwNiwgMHhhYSwgMHhjZSwgMHhkNiwgMHgwZiwKKyAgICAgICAg
MHg2MiwgMHg4MywgMHg5ZCwgMHg4ZSwgMHg2NCwgMHg1NSwgMHhiZSwgMHg2
MywKKyAgICB9LAorfSwKIHsKICAgICAucGF0Y2hfaWQgPSAweDBhNjAxMjA5
LAogICAgIC5kaWdlc3QgPSB7CkBAIC0xNzAsNiArMjYwLDE1IEBACiAgICAg
ICAgIDB4ZTgsIDB4NzMsIDB4ZTIsIDB4ZDYsIDB4ZGIsIDB4ZDIsIDB4Nzcs
IDB4MWQsCiAgICAgfSwKIH0sCit7CisgICAgLnBhdGNoX2lkID0gMHgwYTYw
MTIwYSwKKyAgICAuZGlnZXN0ID0geworICAgICAgICAweDBjLCAweDhiLCAw
eDNkLCAweGZkLCAweDUyLCAweDUyLCAweDg1LCAweDdkLAorICAgICAgICAw
eDIwLCAweDNhLCAweGUxLCAweDdlLCAweGE0LCAweDIxLCAweDNiLCAweDdi
LAorICAgICAgICAweDE3LCAweDg2LCAweGFlLCAweGFjLCAweDEzLCAweGI4
LCAweDYzLCAweDlkLAorICAgICAgICAweDA2LCAweDAxLCAweGQwLCAweGEw
LCAweDUxLCAweDlhLCAweDkxLCAweDJjLAorICAgIH0sCit9LAogewogICAg
IC5wYXRjaF9pZCA9IDB4MGE3MDQxMDcsCiAgICAgLmRpZ2VzdCA9IHsKQEAg
LTE3OSw2ICsyNzgsMTUgQEAKICAgICAgICAgMHg2NCwgMHgzOSwgMHg3MSwg
MHg4YywgMHhjZSwgMHhlNywgMHg0MSwgMHgzOSwKICAgICB9LAogfSwKK3sK
KyAgICAucGF0Y2hfaWQgPSAweDBhNzA0MTA4LAorICAgIC5kaWdlc3QgPSB7
CisgICAgICAgIDB4ZDcsIDB4NTUsIDB4MTUsIDB4MmIsIDB4ZmUsIDB4YzQs
IDB4YmMsIDB4OTMsCisgICAgICAgIDB4ZWMsIDB4OTEsIDB4YTAsIDB4YWUs
IDB4NDUsIDB4YjcsIDB4YzMsIDB4OTgsCisgICAgICAgIDB4NGUsIDB4ZmYs
IDB4NjEsIDB4NzcsIDB4ODgsIDB4YzIsIDB4NzAsIDB4NDksCisgICAgICAg
IDB4ZTAsIDB4M2EsIDB4MWQsIDB4ODQsIDB4MzgsIDB4NTIsIDB4YmYsIDB4
NWEsCisgICAgfSwKK30sCiB7CiAgICAgLnBhdGNoX2lkID0gMHgwYTcwNTIw
NiwKICAgICAuZGlnZXN0ID0gewpAQCAtMTg4LDYgKzI5NiwxNSBAQAogICAg
ICAgICAweDAzLCAweDM1LCAweGU5LCAweGJlLCAweGZiLCAweDA2LCAweGRm
LCAweGZjLAogICAgIH0sCiB9LAoreworICAgIC5wYXRjaF9pZCA9IDB4MGE3
MDUyMDgsCisgICAgLmRpZ2VzdCA9IHsKKyAgICAgICAgMHgzMCwgMHgxZCwg
MHg1NSwgMHgyNCwgMHhiYywgMHg2YiwgMHg1YSwgMHgxOSwKKyAgICAgICAg
MHgwYywgMHg3ZCwgMHgxZCwgMHg3NCwgMHhhYSwgMHhkMSwgMHhlYiwgMHhk
MiwKKyAgICAgICAgMHgxNiwgMHg2MiwgMHhmNywgMHg1YiwgMHhlMSwgMHgx
ZiwgMHgxOCwgMHgxMSwKKyAgICAgICAgMHg1YywgMHhmMCwgMHg5NCwgMHg5
MCwgMHgyNiwgMHhlYywgMHg2OSwgMHhmZiwKKyAgICB9LAorfSwKIHsKICAg
ICAucGF0Y2hfaWQgPSAweDBhNzA4MDA3LAogICAgIC5kaWdlc3QgPSB7CkBA
IC0xOTcsNiArMzE0LDE1IEBACiAgICAgICAgIDB4ZGYsIDB4OTIsIDB4NzMs
IDB4ODQsIDB4ODcsIDB4M2MsIDB4NzMsIDB4OTMsCiAgICAgfSwKIH0sCit7
CisgICAgLnBhdGNoX2lkID0gMHgwYTcwODAwOCwKKyAgICAuZGlnZXN0ID0g
eworICAgICAgICAweDA4LCAweDZlLCAweGYwLCAweDIyLCAweDRiLCAweDhl
LCAweGM0LCAweDQ2LAorICAgICAgICAweDU4LCAweDM0LCAweGU2LCAweDQ3
LCAweGEyLCAweDI4LCAweGZkLCAweGFiLAorICAgICAgICAweDIyLCAweDNk
LCAweGRkLCAweGQ4LCAweDUyLCAweDllLCAweDFkLCAweDE2LAorICAgICAg
ICAweGZhLCAweDAxLCAweDY4LCAweDE0LCAweDc5LCAweDNlLCAweGU4LCAw
eDZiLAorICAgIH0sCit9LAogewogICAgIC5wYXRjaF9pZCA9IDB4MGE3MGMw
MDUsCiAgICAgLmRpZ2VzdCA9IHsKQEAgLTIwNiw2ICszMzIsMTUgQEAKICAg
ICAgICAgMHhlZSwgMHg0OSwgMHhhYywgMHhlMSwgMHg4YiwgMHgxMywgMHhj
NSwgMHgxMywKICAgICB9LAogfSwKK3sKKyAgICAucGF0Y2hfaWQgPSAweDBh
NzBjMDA4LAorICAgIC5kaWdlc3QgPSB7CisgICAgICAgIDB4MGYsIDB4ZGIs
IDB4MzcsIDB4YTEsIDB4MTAsIDB4YWYsIDB4ZDQsIDB4MjEsCisgICAgICAg
IDB4OTQsIDB4MGQsIDB4YTQsIDB4YTIsIDB4ZTksIDB4ODYsIDB4NmMsIDB4
MGUsCisgICAgICAgIDB4ODUsIDB4N2MsIDB4MzYsIDB4MzAsIDB4YTMsIDB4
M2EsIDB4NzgsIDB4NjYsCisgICAgICAgIDB4MTgsIDB4MTAsIDB4NjAsIDB4
MGQsIDB4NzgsIDB4M2QsIDB4NDQsIDB4ZDAsCisgICAgfSwKK30sCiB7CiAg
ICAgLnBhdGNoX2lkID0gMHgwYWEwMDExNiwKICAgICAuZGlnZXN0ID0gewpA
QCAtMjI0LDMgKzM1OSwxMiBAQAogICAgICAgICAweDY4LCAweDJmLCAweDQ2
LCAweGVlLCAweGZlLCAweGM2LCAweDZkLCAweGVmLAogICAgIH0sCiB9LAor
eworICAgIC5wYXRjaF9pZCA9IDB4MGFhMDAyMTYsCisgICAgLmRpZ2VzdCA9
IHsKKyAgICAgICAgMHg3OSwgMHhmYiwgMHg1YiwgMHg5ZiwgMHhiNiwgMHhl
NiwgMHhhOCwgMHhmNSwKKyAgICAgICAgMHg0ZSwgMHg3YywgMHg0ZiwgMHg4
ZSwgMHgxZCwgMHhhZCwgMHhkMCwgMHgwOCwKKyAgICAgICAgMHhjMiwgMHg0
MywgMHg3YywgMHg4YiwgMHhlNiwgMHhkYiwgMHhkMCwgMHhkMiwKKyAgICAg
ICAgMHhlOCwgMHgzOSwgMHgyNiwgMHhjMSwgMHhlNSwgMHg1YSwgMHg0OCwg
MHhmMSwKKyAgICB9LAorfSwK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.17-18.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.17-18.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogV2VkLCAyIEFwciAyMDI1IDAzOjE4OjU5ICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBSZWFycmFuZ2UgVkVSVyBhbmQgTU9OSVRPUiBpbiBt
d2FpdF9pZGxlX3dpdGhfaGludHMoKQoKSW4gb3JkZXIgdG8gbWl0aWdhdGUg
VFNBLCBYZW4gd2lsbCBuZWVkIHRvIGlzc3VlIFZFUlcgYmVmb3JlIGdvaW5n
IGlkbGUuCgpPbiBBTUQgQ1BVcywgdGhlIFZFUlcgc2NydWJiaW5nIHNpZGUg
ZWZmZWN0cyBjYW5jZWwgYW4gYWN0aXZlIE1PTklUT1IsIGNhdXNpbmcKdGhl
IE1XQUlUIHRvIGV4aXQgd2l0aG91dCBlbnRlcmluZyBhbiBpZGxlIHN0YXRl
LiAgVGhlcmVmb3JlIHRoZSBWRVJXIG11c3QgYmUKYWhlYWQgb2YgTU9OSVRP
Ui4KClNwbGl0IHNwZWNfY3RybF9lbnRlcl9pZGxlKCkgaW4gdHdvIGFuZCBh
bGxvdyB0aGUgVkVSVyBhc3BlY3QgdG8gYmUgaGFuZGxlZApzZXBhcmF0ZWx5
LiAgV2hpbGUgYWRqdXN0aW5nLCB1cGRhdGUgYSBzdGFsZSBjb21tZW50IGNv
bmNlcm5pbmcgTVNCRFM7IG1vcmUKaXNzdWVzIGhhdmUgYmVlbiBtaXRpZ2F0
ZWQgdXNpbmcgVkVSVyBzaW5jZSBpdCB3YXMgd3JpdHRlbi4KCkJ5IG1vdmlu
ZyBWRVJXIGVhcmxpZXIsIGl0IGlzIGFoZWFkIG9mIHRoZSBkZXRlcm1pbmF0
aW9uIG9mIHdoZXRoZXIgdG8gZ28KaWRsZS4gIFdlIGNhbid0IG1vdmUgdGhl
IGNoZWNrIG9uIHNvZnRpcnFfcGVuZGluZyAoZm9yIGNvcnJlY3RuZXNzIHJl
YXNvbnMpLApidXQgd2UgY2FuIGR1cGxpY2F0ZSBpdCBlYXJsaWVyIGFzIGEg
YmVzdCBlZmZvcnQgYXR0ZW1wdCB0byBza2lwIHRoZQpzcGVjdWxhdGl2ZSBv
dmVyaGVhZC4KClRoaXMgaXMgcGFydCBvZiBYU0EtNDcxIC8gQ1ZFLTIwMjQt
MzYzNTAgLyBDVkUtMjAyNC0zNjM1Ny4KClNpZ25lZC1vZmYtYnk6IEFuZHJl
dyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2Vk
LWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CgpkaWZmIC0t
Z2l0IGEveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYyBiL3hlbi9hcmNo
L3g4Ni9hY3BpL2NwdV9pZGxlLmMKaW5kZXggMGI3ZTc2MzZiYzBjLi4zYmEx
YmQ1MDBkYWQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9p
ZGxlLmMKKysrIGIveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYwpAQCAt
NDYyLDkgKzQ2MiwxOCBAQCBfX2luaXRjYWxsKGNwdV9pZGxlX2tleV9pbml0
KTsKIHZvaWQgbXdhaXRfaWRsZV93aXRoX2hpbnRzKHVuc2lnbmVkIGludCBl
YXgsIHVuc2lnbmVkIGludCBlY3gpCiB7CiAgICAgdW5zaWduZWQgaW50IGNw
dSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKKyAgICBzdHJ1Y3QgY3B1X2luZm8g
KmluZm8gPSBnZXRfY3B1X2luZm8oKTsKICAgICBpcnFfY3B1c3RhdF90ICpz
dGF0ID0gJmlycV9zdGF0W2NwdV07CiAgICAgY29uc3QgdW5zaWduZWQgaW50
ICp0aGlzX3NvZnRpcnFfcGVuZGluZyA9ICZzdGF0LT5fX3NvZnRpcnFfcGVu
ZGluZzsKIAorICAgIC8qCisgICAgICogSGV1cmlzdGljOiBpZiB3ZSdyZSBk
ZWZpbml0ZWx5IG5vdCBnb2luZyB0byBpZGxlLCBiYWlsIGVhcmx5IGFzIHRo
ZQorICAgICAqIHNwZWN1bGF0aXZlIHNhZmV0eSBjYW4gYmUgZXhwZW5zaXZl
LiAgVGhpcyBpcyBhIHBlcmZvcm1hbmNlCisgICAgICogY29uc2lkZXJhdGlv
biBub3QgYSBjb3JyZWN0bmVzcyBpc3N1ZS4KKyAgICAgKi8KKyAgICBpZiAo
ICp0aGlzX3NvZnRpcnFfcGVuZGluZyApCisgICAgICAgIHJldHVybjsKKwog
ICAgIC8qCiAgICAgICogQnkgc2V0dGluZyBpbl9td2FpdCwgd2UgcHJvbWlz
ZSB0byBvdGhlciBDUFVzIHRoYXQgd2UnbGwgbm90aWNlIGNoYW5nZXMKICAg
ICAgKiB0byBfX3NvZnRpcnFfcGVuZGluZyB3aXRob3V0IGJlaW5nIHNlbnQg
YW4gSVBJLiAgV2UgYWNoaWV2ZSB0aGlzIGJ5CkBAIC00NzgsMTUgKzQ4Nywx
OSBAQCB2b2lkIG13YWl0X2lkbGVfd2l0aF9oaW50cyh1bnNpZ25lZCBpbnQg
ZWF4LCB1bnNpZ25lZCBpbnQgZWN4KQogICAgICAgICAgICAgICAgICAgICIi
LCBYODZfQlVHX01PTklUT1IsCiAgICAgICAgICAgICAgICAgICAgW2luX213
YWl0XSAiPW0iIChzdGF0LT5pbl9td2FpdCkpOwogCisgICAgLyoKKyAgICAg
KiBPbiBBTUQgc3lzdGVtcywgc2lkZSBlZmZlY3RzIGZyb20gVkVSVyBjYW5j
ZWwgTU9OSVRPUiwgY2F1c2luZyBNV0FJVCB0bworICAgICAqIHdha2UgdXAg
aW1tZWRpYXRlbHkuICBUaGVyZWZvcmUsIFZFUlcgbXVzdCBjb21lIGFoZWFk
IG9mIE1PTklUT1IuCisgICAgICovCisgICAgX19zcGVjX2N0cmxfZW50ZXJf
aWRsZV92ZXJ3KGluZm8pOworCiAgICAgbW9uaXRvcih0aGlzX3NvZnRpcnFf
cGVuZGluZywgMCwgMCk7CiAKICAgICBBU1NFUlQoIWxvY2FsX2lycV9pc19l
bmFibGVkKCkpOwogCiAgICAgaWYgKCAhKnRoaXNfc29mdGlycV9wZW5kaW5n
ICkKICAgICB7Ci0gICAgICAgIHN0cnVjdCBjcHVfaW5mbyAqaW5mbyA9IGdl
dF9jcHVfaW5mbygpOwotCi0gICAgICAgIHNwZWNfY3RybF9lbnRlcl9pZGxl
KGluZm8pOworICAgICAgICBfX3NwZWNfY3RybF9lbnRlcl9pZGxlKGluZm8s
IGZhbHNlIC8qIFZFUlcgaGFuZGxlZCBhYm92ZSAqLyk7CiAKICAgICAgICAg
aWYgKCBlY3ggJiBNV0FJVF9FQ1hfSU5URVJSVVBUX0JSRUFLICkKICAgICAg
ICAgICAgIG13YWl0KGVheCwgZWN4KTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9zcGVjX2N0cmwuaCBiL3hlbi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9zcGVjX2N0cmwuaAppbmRleCA0NDM5YTFiMjQzNDYuLjYw
ODQ0Yjc1NWRmZiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL3NwZWNfY3RybC5oCisrKyBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9zcGVjX2N0cmwuaApAQCAtMTI2LDggKzEyNiwyMiBAQCBzdGF0aWMgaW5s
aW5lIHZvaWQgaW5pdF9zaGFkb3dfc3BlY19jdHJsX3N0YXRlKHZvaWQpCiAg
ICAgaW5mby0+dmVyd19zZWwgPSBfX0hZUEVSVklTT1JfRFMzMjsKIH0KIAor
c3RhdGljIGFsd2F5c19pbmxpbmUgdm9pZCBfX3NwZWNfY3RybF9lbnRlcl9p
ZGxlX3Zlcncoc3RydWN0IGNwdV9pbmZvICppbmZvKQoreworICAgIC8qCisg
ICAgICogRmx1c2gvc2NydWIgc3RydWN0dXJlcyB3aGljaCBhcmUgc3RhdGlj
YWxseSBwYXJ0aXRpb25lZCBiZXR3ZWVuIGFjdGl2ZQorICAgICAqIHRocmVh
ZHMuICBPdGhlcndpc2UgZGF0YSBvZiBvdXJzIChvZiB1bmtub3duIHNlbnNp
dGl2aXR5KSB3aWxsIGJlY29tZQorICAgICAqIGF2YWlsYWJsZSB0byBvdXIg
c2libGluZyB3aGVuIHdlIGdvIGlkbGUuCisgICAgICoKKyAgICAgKiBOb3Rl
OiBWRVJXIG11c3QgYmUgZW5jb2RlZCB3aXRoIGEgbWVtb3J5IG9wZXJhbmQs
IGFzIGl0IGlzIG9ubHkgdGhhdAorICAgICAqIGZvcm0gd2l0aCBzaWRlIGVm
ZmVjdHMuCisgICAgICovCisgICAgYWx0ZXJuYXRpdmVfaW5wdXQoIiIsICJ2
ZXJ3ICVbc2VsXSIsIFg4Nl9GRUFUVVJFX1NDX1ZFUldfSURMRSwKKyAgICAg
ICAgICAgICAgICAgICAgICBbc2VsXSAibSIgKGluZm8tPnZlcndfc2VsKSk7
Cit9CisKIC8qIFdBUk5JTkchIGByZXRgLCBgY2FsbCAqYCwgYGptcCAqYCBu
b3Qgc2FmZSBhZnRlciB0aGlzIGNhbGwuICovCi1zdGF0aWMgYWx3YXlzX2lu
bGluZSB2b2lkIHNwZWNfY3RybF9lbnRlcl9pZGxlKHN0cnVjdCBjcHVfaW5m
byAqaW5mbykKK3N0YXRpYyBhbHdheXNfaW5saW5lIHZvaWQgX19zcGVjX2N0
cmxfZW50ZXJfaWRsZShzdHJ1Y3QgY3B1X2luZm8gKmluZm8sIGJvb2wgdmVy
dykKIHsKICAgICB1aW50MzJfdCB2YWwgPSAwOwogCkBAIC0xNDYsMjEgKzE2
MCw4IEBAIHN0YXRpYyBhbHdheXNfaW5saW5lIHZvaWQgc3BlY19jdHJsX2Vu
dGVyX2lkbGUoc3RydWN0IGNwdV9pbmZvICppbmZvKQogICAgICAgICAgICAg
ICAgICAgICAgICJhIiAodmFsKSwgImMiIChNU1JfU1BFQ19DVFJMKSwgImQi
ICgwKSk7CiAgICAgYmFycmllcigpOwogCi0gICAgLyoKLSAgICAgKiBNaWNy
b2FyY2hpdGVjdHVyYWwgU3RvcmUgQnVmZmVyIERhdGEgU2FtcGxpbmc6Ci0g
ICAgICoKLSAgICAgKiBPbiB2dWxuZXJhYmxlIHN5c3RlbXMsIHN0b3JlIGJ1
ZmZlciBlbnRyaWVzIGFyZSBzdGF0aWNhbGx5IHBhcnRpdGlvbmVkCi0gICAg
ICogYmV0d2VlbiBhY3RpdmUgdGhyZWFkcy4gIFdoZW4gZW50ZXJpbmcgaWRs
ZSwgb3VyIHN0b3JlIGJ1ZmZlciBlbnRyaWVzCi0gICAgICogYXJlIHJlLXBh
cnRpdGlvbmVkIHRvIGFsbG93IHRoZSBvdGhlciB0aHJlYWRzIHRvIHVzZSB0
aGVtLgotICAgICAqCi0gICAgICogRmx1c2ggdGhlIGJ1ZmZlcnMgdG8gZW5z
dXJlIHRoYXQgbm8gc2Vuc2l0aXZlIGRhdGEgb2Ygb3VycyBjYW4gYmUKLSAg
ICAgKiBsZWFrZWQgYnkgYSBzaWJsaW5nIGFmdGVyIGl0IGdldHMgb3VyIHN0
b3JlIGJ1ZmZlciBlbnRyaWVzLgotICAgICAqCi0gICAgICogTm90ZTogVkVS
VyBtdXN0IGJlIGVuY29kZWQgd2l0aCBhIG1lbW9yeSBvcGVyYW5kLCBhcyBp
dCBpcyBvbmx5IHRoYXQKLSAgICAgKiBmb3JtIHdoaWNoIGNhdXNlcyBhIGZs
dXNoLgotICAgICAqLwotICAgIGFsdGVybmF0aXZlX2lucHV0KCIiLCAidmVy
dyAlW3NlbF0iLCBYODZfRkVBVFVSRV9TQ19WRVJXX0lETEUsCi0gICAgICAg
ICAgICAgICAgICAgICAgW3NlbF0gIm0iIChpbmZvLT52ZXJ3X3NlbCkpOwor
ICAgIGlmICggdmVydyApIC8qIEV4cGVjdGVkIHRvIGJlIGNvbnN0LXByb3Bh
Z2F0ZWQuICovCisgICAgICAgIF9fc3BlY19jdHJsX2VudGVyX2lkbGVfdmVy
dyhpbmZvKTsKIAogICAgIC8qCiAgICAgICogQ3Jvc3MtVGhyZWFkIFJldHVy
biBBZGRyZXNzIFByZWRpY3Rpb25zOgpAQCAtMTc4LDYgKzE3OSwxMiBAQCBz
dGF0aWMgYWx3YXlzX2lubGluZSB2b2lkIHNwZWNfY3RybF9lbnRlcl9pZGxl
KHN0cnVjdCBjcHVfaW5mbyAqaW5mbykKICAgICAgICAgICAgICAgICAgICAg
ICA6ICJyYXgiLCAicmN4Iik7CiB9CiAKKy8qIFdBUk5JTkchIGByZXRgLCBg
Y2FsbCAqYCwgYGptcCAqYCBub3Qgc2FmZSBhZnRlciB0aGlzIGNhbGwuICov
CitzdGF0aWMgYWx3YXlzX2lubGluZSB2b2lkIHNwZWNfY3RybF9lbnRlcl9p
ZGxlKHN0cnVjdCBjcHVfaW5mbyAqaW5mbykKK3sKKyAgICBfX3NwZWNfY3Ry
bF9lbnRlcl9pZGxlKGluZm8sIHRydWUgLyogVkVSVyAqLyk7Cit9CisKIC8q
IFdBUk5JTkchIGByZXRgLCBgY2FsbCAqYCwgYGptcCAqYCBub3Qgc2FmZSBi
ZWZvcmUgdGhpcyBjYWxsLiAqLwogc3RhdGljIGFsd2F5c19pbmxpbmUgdm9p
ZCBzcGVjX2N0cmxfZXhpdF9pZGxlKHN0cnVjdCBjcHVfaW5mbyAqaW5mbykK
IHsK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.17-19.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.17-19.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVGh1LCAyOSBBdWcgMjAyNCAxNzozNjoxMSArMDEwMApTdWJq
ZWN0OiB4ODYvc3BlYy1jdHJsOiBNaXRpZ2F0ZSBUcmFuc2l0aXZlIFNjaGVk
dWxlciBBdHRhY2tzCgpUU0EgYWZmZWN0cyBBTUQgRmFtMTloIENQVXMgKFpl
bjMgYW5kIDQgbWljcm9hcmNoaXRlY3R1cmVzKS4KClRocmVlIG5ldyBDUFVJ
RCBiaXRzIGhhdmUgYmVlbiBkZWZpbmVkLiAgVHdvIChUU0FfU1FfTk8gYW5k
IFRTQV9MMV9OTykKaW5kaWNhdGUgdGhhdCB0aGUgc3lzdGVtIGlzIHVuYWZm
ZWN0ZWQsIGFuZCBtdXN0IGJlIHN5bnRoZXNpc2VkIGJ5IFhlbiBvbgp1bmFm
ZmVjdGVkIHBhcnRzIHRvIGRhdGUuCgpBIHRoaXJkIG5ldyBiaXQgaW5kaWNh
dGVzIHRoYXQgVkVSVyBub3cgaGFzIGEgZmx1c2hpbmcgc2lkZSBlZmZlY3Qu
ICBYZW4gbXVzdApzeW50aGVzaXNlIHRoaXMgYml0IG9uIGFmZmVjdGVkIHN5
c3RlbXMgYmFzZWQgb24gbWljcm9jb2RlIHZlcnNpb24uICBBcyB3aXRoCm90
aGVyIFZFUlctYmFzZWQgZmx1c2hpbmcgZmVhdHVyZXMsIFZFUldfQ0xFQVIg
bmVlZHMgT1ItaW5nIGFjcm9zcyBhIHJlc291cmNlCnBvb2wsIGFuZCBndWVz
dHMgd2hpY2ggaGF2ZSBzZWVuIGl0IGNhbiBzYWZlbHkgbWlncmF0ZSBpbi4K
ClRoaXMgaXMgcGFydCBvZiBYU0EtNDcxIC8gQ1ZFLTIwMjQtMzYzNTAgLyBD
VkUtMjAyNC0zNjM1Ny4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIg
PGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5OiBKYW4g
QmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CgpkaWZmIC0tZ2l0IGEvdG9v
bHMvbWlzYy94ZW4tY3B1aWQuYyBiL3Rvb2xzL21pc2MveGVuLWNwdWlkLmMK
aW5kZXggNzcwNDk4MGI4YTliLi4wNDAzNWQ1NjVlYjUgMTAwNjQ0Ci0tLSBh
L3Rvb2xzL21pc2MveGVuLWNwdWlkLmMKKysrIGIvdG9vbHMvbWlzYy94ZW4t
Y3B1aWQuYwpAQCAtMTk0LDYgKzE5NCw3IEBAIHN0YXRpYyBjb25zdCBjaGFy
ICpjb25zdCBzdHJfN2ExWzMyXSA9CiBzdGF0aWMgY29uc3QgY2hhciAqY29u
c3Qgc3RyX2UyMWFbMzJdID0KIHsKICAgICBbIDJdID0gImxmZW5jZSsiLAor
ICAgIC8qIDQgKi8gICAgICAgICAgICAgICAgIFsgNV0gPSAidmVydy1jbGVh
ciIsCiAgICAgWyA2XSA9ICJuc2NiIiwKICAgICBbIDhdID0gImF1dG8taWJy
cyIsCiAKQEAgLTI0Niw2ICsyNDcsOCBAQCBzdGF0aWMgY29uc3QgY2hhciAq
Y29uc3Qgc3RyX20xMEFsWzY0XSA9CiAKIHN0YXRpYyBjb25zdCBjaGFyICpj
b25zdCBzdHJfZTIxY1szMl0gPQogeworICAgIC8qIDAgKi8gICAgICAgICAg
ICAgICAgICAgICAgIFsgMV0gPSAidHNhLXNxLW5vIiwKKyAgICBbIDJdID0g
InRzYS1sMS1ubyIsCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHsKZGlm
ZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9jcHUtcG9saWN5LmMgYi94ZW4vYXJj
aC94ODYvY3B1LXBvbGljeS5jCmluZGV4IGI0ZDNmYTgyNDM2My4uZjI1OWM3
NzQzNWVhIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvY3B1LXBvbGljeS5j
CisrKyBiL3hlbi9hcmNoL3g4Ni9jcHUtcG9saWN5LmMKQEAgLTQ3Niw2ICs0
NzYsMTcgQEAgc3RhdGljIHZvaWQgX19pbml0IGd1ZXN0X2NvbW1vbl9tYXhf
ZmVhdHVyZV9hZGp1c3RtZW50cyh1aW50MzJfdCAqZnMpCiAgICAgICAgIGlm
ICggdGVzdF9iaXQoWDg2X0ZFQVRVUkVfUlRNLCBmcykgKQogICAgICAgICAg
ICAgX19zZXRfYml0KFg4Nl9GRUFUVVJFX1JUTV9BTFdBWVNfQUJPUlQsIGZz
KTsKICAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFg4Nl9WRU5ET1JfQU1E
OgorICAgICAgICAvKgorICAgICAgICAgKiBUaGlzIGJpdCBpbmRpY2F0ZXMg
dGhhdCB0aGUgVkVSVyBpbnN0cnVjdGlvbiBtYXkgaGF2ZSBnYWluZWQKKyAg
ICAgICAgICogc2NydWJiaW5nIHNpZGUgZWZmZWN0cy4gIFdpdGggcG9vbGlu
ZywgaXQgbWVhbnMgInlvdSBtaWdodCBtaWdyYXRlCisgICAgICAgICAqIHNv
bWV3aGVyZSB3aGVyZSBzY3J1YmJpbmcgaXMgbmVjZXNzYXJ5IiwgYW5kIG1h
eSBuZWVkIGV4cG9zaW5nIG9uCisgICAgICAgICAqIHVuYWZmZWN0ZWQgaGFy
ZHdhcmUuICBUaGlzIGlzIGZpbmUsIGJlY2F1c2UgdGhlIFZFUlcgaW5zdHJ1
Y3Rpb24KKyAgICAgICAgICogaGFzIGJlZW4gYXJvdW5kIHNpbmNlIHRoZSAy
ODYuCisgICAgICAgICAqLworICAgICAgICBfX3NldF9iaXQoWDg2X0ZFQVRV
UkVfVkVSV19DTEVBUiwgZnMpOworICAgICAgICBicmVhazsKICAgICB9CiAK
ICAgICAvKgpAQCAtNTU0LDYgKzU2NSwxNyBAQCBzdGF0aWMgdm9pZCBfX2lu
aXQgZ3Vlc3RfY29tbW9uX2RlZmF1bHRfZmVhdHVyZV9hZGp1c3RtZW50cyh1
aW50MzJfdCAqZnMpCiAgICAgICAgICAgICBfX3NldF9iaXQoWDg2X0ZFQVRV
UkVfUlRNX0FMV0FZU19BQk9SVCwgZnMpOwogICAgICAgICB9CiAgICAgICAg
IGJyZWFrOworCisgICAgY2FzZSBYODZfVkVORE9SX0FNRDoKKyAgICAgICAg
LyoKKyAgICAgICAgICogVGhpcyBiaXQgaW5kaWNhdGUgdGhhdCB0aGUgVkVS
VyBpbnN0cnVjdGlvbiBtYXkgaGF2ZSBnYWluZWQKKyAgICAgICAgICogc2Ny
dWJiaW5nIHNpZGUgZWZmZWN0cy4gIFRoZSBtYXggcG9saWN5IGhhcyBpdCBz
ZXQgZm9yIG1pZ3JhdGlvbgorICAgICAgICAgKiByZWFzb25zLCBzbyByZXNl
dCB0aGUgZGVmYXVsdCBwb2xpY3kgYmFjayB0byB0aGUgaG9zdCB2YWx1ZSBp
biBjYXNlCisgICAgICAgICAqIHdlJ3JlIHVuYWZmZWN0ZWQuCisgICAgICAg
ICAqLworICAgICAgICBpZiAoICFjcHVfaGFzX3ZlcndfY2xlYXIgKQorICAg
ICAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVfVkVSV19DTEVBUiwg
ZnMpOworICAgICAgICBicmVhazsKICAgICB9CiAKICAgICAvKgpkaWZmIC0t
Z2l0IGEveGVuL2FyY2gveDg2L2h2bS9zdm0vZW50cnkuUyBiL3hlbi9hcmNo
L3g4Ni9odm0vc3ZtL2VudHJ5LlMKaW5kZXggODc3OTg1NmZiNWE2Li45MjMz
ZDZmYmZiYzUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vc3ZtL2Vu
dHJ5LlMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9zdm0vZW50cnkuUwpAQCAt
OTQsNiArOTQsOSBAQCBfX1VOTElLRUxZX0VORChuc3ZtX2hhcCkKICAgICAg
ICAgcG9wICAlcmRpCiAKICAgICAgICAgc3RpCisKKyAgICAgICAgU1BFQ19D
VFJMX0NPTkRfVkVSVyAgICAgLyogUmVxOiAlcnNwPWVmcmFtZSAgICAgICAg
ICAgICAgICAgICAgQ2xvYjogZWZsICovCisKICAgICAgICAgdm1ydW4KIAog
ICAgICAgICBTQVZFX0FMTApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2lu
Y2x1ZGUvYXNtL2NwdWZlYXR1cmUuaCBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS9jcHVmZWF0dXJlLmgKaW5kZXggMDIwNDE0ZTk4YzRkLi44MDFhOGNi
YmMwMTYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9j
cHVmZWF0dXJlLmgKKysrIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2Nw
dWZlYXR1cmUuaApAQCAtMTUwLDYgKzE1MCw3IEBACiAKIC8qIENQVUlEIGxl
dmVsIDB4ODAwMDAwMjEuZWF4ICovCiAjZGVmaW5lIGNwdV9oYXNfbGZlbmNl
X2Rpc3BhdGNoIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9MRkVOQ0VfRElT
UEFUQ0gpCisjZGVmaW5lIGNwdV9oYXNfdmVyd19jbGVhciAgICAgIGJvb3Rf
Y3B1X2hhcyhYODZfRkVBVFVSRV9WRVJXX0NMRUFSKQogI2RlZmluZSBjcHVf
aGFzX25zY2IgICAgICAgICAgICBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVf
TlNDQikKIAogLyogTVNSX0FSQ0hfQ0FQUyAqLwpAQCAtMTcwLDYgKzE3MSwx
MCBAQAogI2RlZmluZSBjcHVfaGFzX3JmZHNfY2xlYXIgICAgICBib290X2Nw
dV9oYXMoWDg2X0ZFQVRVUkVfUkZEU19DTEVBUikKICNkZWZpbmUgY3B1X2hh
c19pdHNfbm8gICAgICAgICAgYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0lU
U19OTykKIAorLyogQ1BVSUQgbGV2ZWwgMHg4MDAwMDAyMS5lY3ggKi8KKyNk
ZWZpbmUgY3B1X2hhc190c2Ffc3Ffbm8gICAgICAgYm9vdF9jcHVfaGFzKFg4
Nl9GRUFUVVJFX1RTQV9TUV9OTykKKyNkZWZpbmUgY3B1X2hhc190c2FfbDFf
bm8gICAgICAgYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX1RTQV9MMV9OTykK
KwogLyogU3ludGhlc2l6ZWQuICovCiAjZGVmaW5lIGNwdV9oYXNfYXJjaF9w
ZXJmbW9uICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9BUkNIX1BFUkZN
T04pCiAjZGVmaW5lIGNwdV9oYXNfY3B1aWRfZmF1bHRpbmcgIGJvb3RfY3B1
X2hhcyhYODZfRkVBVFVSRV9DUFVJRF9GQVVMVElORykKZGlmZiAtLWdpdCBh
L3hlbi9hcmNoL3g4Ni9zcGVjX2N0cmwuYyBiL3hlbi9hcmNoL3g4Ni9zcGVj
X2N0cmwuYwppbmRleCA1NTllZTkwYjQ0ZGMuLjUwMDVmMGFjZGRlOSAxMDA2
NDQKLS0tIGEveGVuL2FyY2gveDg2L3NwZWNfY3RybC5jCisrKyBiL3hlbi9h
cmNoL3g4Ni9zcGVjX2N0cmwuYwpAQCAtNDk2LDcgKzQ5Niw3IEBAIGN1c3Rv
bV9wYXJhbSgicHYtbDF0ZiIsIHBhcnNlX3B2X2wxdGYpOwogCiBzdGF0aWMg
dm9pZCBfX2luaXQgcHJpbnRfZGV0YWlscyhlbnVtIGluZF90aHVuayB0aHVu
aykKIHsKLSAgICB1bnNpZ25lZCBpbnQgXzdkMCA9IDAsIF83ZDIgPSAwLCBl
OGIgPSAwLCBlMjFhID0gMCwgbWF4ID0gMCwgdG1wOworICAgIHVuc2lnbmVk
IGludCBfN2QwID0gMCwgXzdkMiA9IDAsIGU4YiA9IDAsIGUyMWEgPSAwLCBl
MjFjID0gMCwgbWF4ID0gMCwgdG1wOwogICAgIHVpbnQ2NF90IGNhcHMgPSAw
OwogCiAgICAgLyogQ29sbGVjdCBkaWFnbm9zdGljcyBhYm91dCBhdmFpbGFi
bGUgbWl0aWdhdGlvbnMuICovCkBAIC01MDcsNyArNTA3LDcgQEAgc3RhdGlj
IHZvaWQgX19pbml0IHByaW50X2RldGFpbHMoZW51bSBpbmRfdGh1bmsgdGh1
bmspCiAgICAgaWYgKCBib290X2NwdV9kYXRhLmV4dGVuZGVkX2NwdWlkX2xl
dmVsID49IDB4ODAwMDAwMDggKQogICAgICAgICBjcHVpZCgweDgwMDAwMDA4
LCAmdG1wLCAmZThiLCAmdG1wLCAmdG1wKTsKICAgICBpZiAoIGJvb3RfY3B1
X2RhdGEuZXh0ZW5kZWRfY3B1aWRfbGV2ZWwgPj0gMHg4MDAwMDAyMSApCi0g
ICAgICAgIGNwdWlkKDB4ODAwMDAwMjEsICZlMjFhLCAmdG1wLCAmdG1wLCAm
dG1wKTsKKyAgICAgICAgY3B1aWQoMHg4MDAwMDAyMVUsICZlMjFhLCAmdG1w
LCAmZTIxYywgJnRtcCk7CiAgICAgaWYgKCBjcHVfaGFzX2FyY2hfY2FwcyAp
CiAgICAgICAgIHJkbXNybChNU1JfQVJDSF9DQVBBQklMSVRJRVMsIGNhcHMp
OwogCkBAIC01MTcsNyArNTE3LDcgQEAgc3RhdGljIHZvaWQgX19pbml0IHBy
aW50X2RldGFpbHMoZW51bSBpbmRfdGh1bmsgdGh1bmspCiAgICAgICogSGFy
ZHdhcmUgcmVhZC1vbmx5IGluZm9ybWF0aW9uLCBzdGF0aW5nIGltbXVuaXR5
IHRvIGNlcnRhaW4gaXNzdWVzLCBvcgogICAgICAqIHN1Z2dlc3Rpb25zIG9m
IHdoaWNoIG1pdGlnYXRpb24gdG8gdXNlLgogICAgICAqLwotICAgIHByaW50
aygiICBIYXJkd2FyZSBoaW50czolcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMl
cyVzJXMlcyVzJXMlcyVzJXMlcyVzXG4iLAorICAgIHByaW50aygiICBIYXJk
d2FyZSBoaW50czolcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVz
JXMlcyVzJXMlcyVzJXMlc1xuIiwKICAgICAgICAgICAgKGNhcHMgJiBBUkNI
X0NBUFNfUkRDTF9OTykgICAgICAgICAgICAgICAgICAgICAgICA/ICIgUkRD
TF9OTyIgICAgICAgIDogIiIsCiAgICAgICAgICAgIChjYXBzICYgQVJDSF9D
QVBTX0VJQlJTKSAgICAgICAgICAgICAgICAgICAgICAgICAgPyAiIEVJQlJT
IiAgICAgICAgICA6ICIiLAogICAgICAgICAgICAoY2FwcyAmIEFSQ0hfQ0FQ
U19SU0JBKSAgICAgICAgICAgICAgICAgICAgICAgICAgID8gIiBSU0JBIiAg
ICAgICAgICAgOiAiIiwKQEAgLTU0MSwxMCArNTQxLDEyIEBAIHN0YXRpYyB2
b2lkIF9faW5pdCBwcmludF9kZXRhaWxzKGVudW0gaW5kX3RodW5rIHRodW5r
KQogICAgICAgICAgICAoZThiICAmIGNwdWZlYXRfbWFzayhYODZfRkVBVFVS
RV9CVENfTk8pKSAgICAgICAgID8gIiBCVENfTk8iICAgICAgICAgOiAiIiwK
ICAgICAgICAgICAgKGU4YiAgJiBjcHVmZWF0X21hc2soWDg2X0ZFQVRVUkVf
SUJQQl9SRVQpKSAgICAgICA/ICIgSUJQQl9SRVQiICAgICAgIDogIiIsCiAg
ICAgICAgICAgIChlMjFhICYgY3B1ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX0lC
UEJfQlJUWVBFKSkgICAgPyAiIElCUEJfQlJUWVBFIiAgICA6ICIiLAotICAg
ICAgICAgICAoZTIxYSAmIGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9TUlNP
X05PKSkgICAgICAgID8gIiBTUlNPX05PIiAgICAgICAgOiAiIik7CisgICAg
ICAgICAgIChlMjFhICYgY3B1ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX1NSU09f
Tk8pKSAgICAgICAgPyAiIFNSU09fTk8iICAgICAgICA6ICIiLAorICAgICAg
ICAgICAoZTIxYyAmIGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9UU0FfU1Ff
Tk8pKSAgICAgID8gIiBUU0FfU1FfTk8iICAgICAgOiAiIiwKKyAgICAgICAg
ICAgKGUyMWMgJiBjcHVmZWF0X21hc2soWDg2X0ZFQVRVUkVfVFNBX0wxX05P
KSkgICAgICA/ICIgVFNBX0wxX05PIiAgICAgIDogIiIpOwogCiAgICAgLyog
SGFyZHdhcmUgZmVhdHVyZXMgd2hpY2ggbmVlZCBkcml2aW5nIHRvIG1pdGln
YXRlIGlzc3Vlcy4gKi8KLSAgICBwcmludGsoIiAgSGFyZHdhcmUgZmVhdHVy
ZXM6JXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlc1xuIiwKKyAgICBwcmlu
dGsoIiAgSGFyZHdhcmUgZmVhdHVyZXM6JXMlcyVzJXMlcyVzJXMlcyVzJXMl
cyVzJXMlcyVzXG4iLAogICAgICAgICAgICAoZThiICAmIGNwdWZlYXRfbWFz
ayhYODZfRkVBVFVSRV9JQlBCKSkgfHwKICAgICAgICAgICAgKF83ZDAgJiBj
cHVmZWF0X21hc2soWDg2X0ZFQVRVUkVfSUJSU0IpKSAgICAgICAgICA/ICIg
SUJQQiIgICAgICAgICAgIDogIiIsCiAgICAgICAgICAgIChlOGIgICYgY3B1
ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX0lCUlMpKSB8fApAQCAtNTYzLDcgKzU2
NSw4IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBwcmludF9kZXRhaWxzKGVudW0g
aW5kX3RodW5rIHRodW5rKQogICAgICAgICAgICAoY2FwcyAmIEFSQ0hfQ0FQ
U19GQl9DTEVBUl9DVFJMKSAgICAgICAgICAgICAgICAgID8gIiBGQl9DTEVB
Ul9DVFJMIiAgOiAiIiwKICAgICAgICAgICAgKGNhcHMgJiBBUkNIX0NBUFNf
R0RTX0NUUkwpICAgICAgICAgICAgICAgICAgICAgICA/ICIgR0RTX0NUUkwi
ICAgICAgIDogIiIsCiAgICAgICAgICAgIChjYXBzICYgQVJDSF9DQVBTX1JG
RFNfQ0xFQVIpICAgICAgICAgICAgICAgICAgICAgPyAiIFJGRFNfQ0xFQVIi
ICAgICA6ICIiLAotICAgICAgICAgICAoZTIxYSAmIGNwdWZlYXRfbWFzayhY
ODZfRkVBVFVSRV9TQlBCKSkgICAgICAgICAgID8gIiBTQlBCIiAgICAgICAg
ICAgOiAiIik7CisgICAgICAgICAgIChlMjFhICYgY3B1ZmVhdF9tYXNrKFg4
Nl9GRUFUVVJFX1NCUEIpKSAgICAgICAgICAgPyAiIFNCUEIiICAgICAgICAg
ICA6ICIiLAorICAgICAgICAgICAoZTIxYSAmIGNwdWZlYXRfbWFzayhYODZf
RkVBVFVSRV9WRVJXX0NMRUFSKSkgICAgID8gIiBWRVJXX0NMRUFSIiAgICAg
OiAiIik7CiAKICAgICAvKiBDb21waWxlZC1pbiBzdXBwb3J0IHdoaWNoIHBl
cnRhaW5zIHRvIG1pdGlnYXRpb25zLiAqLwogICAgIGlmICggSVNfRU5BQkxF
RChDT05GSUdfSU5ESVJFQ1RfVEhVTkspIHx8IElTX0VOQUJMRUQoQ09ORklH
X1NIQURPV19QQUdJTkcpIHx8CkBAIC0xNTI2LDYgKzE1MjksNzcgQEAgc3Rh
dGljIHZvaWQgX19pbml0IHJmZHNfY2FsY3VsYXRpb25zKHZvaWQpCiAgICAg
c2V0dXBfZm9yY2VfY3B1X2NhcChYODZfRkVBVFVSRV9SRkRTX05PKTsKIH0K
IAorLyoKKyAqIFRyYW5zaWVudCBTY2hlZHVsZXIgQXR0YWNrcworICoKKyAq
IGh0dHBzOi8vd3d3LmFtZC5jb20vY29udGVudC9kYW0vYW1kL2VuL2RvY3Vt
ZW50cy9yZXNvdXJjZXMvYnVsbGV0aW4vdGVjaG5pY2FsLWd1aWRhbmNlLWZv
ci1taXRpZ2F0aW5nLXRyYW5zaWVudC1zY2hlZHVsZXItYXR0YWNrcy5wZGYK
KyAqLworc3RhdGljIHZvaWQgX19pbml0IHRzYV9jYWxjdWxhdGlvbnModm9p
ZCkKK3sKKyAgICB1bnNpZ25lZCBpbnQgY3Vycl9yZXYsIG1pbl9yZXY7CisK
KyAgICAvKiBUU0EgaXMgb25seSBrbm93biB0byBhZmZlY3QgQU1EIHByb2Nl
c3NvcnMgYXQgdGhpcyB0aW1lLiAqLworICAgIGlmICggYm9vdF9jcHVfZGF0
YS54ODZfdmVuZG9yICE9IFg4Nl9WRU5ET1JfQU1EICkKKyAgICAgICAgcmV0
dXJuOworCisgICAgLyogSWYgd2UncmUgdmlydHVhbGlzZWQsIGRvbid0IGF0
dGVtcHQgdG8gc3ludGhlc2lzZSBhbnl0aGluZy4gKi8KKyAgICBpZiAoIGNw
dV9oYXNfaHlwZXJ2aXNvciApCisgICAgICAgIHJldHVybjsKKworICAgIC8q
CisgICAgICogQWNjb3JkaW5nIHRvIHRoZSB3aGl0ZXBhcGVyLCBzb21lIEZh
bTFBIENQVXMgKE1vZGVscyAweDAwLi4uMHg0ZiwKKyAgICAgKiAweDYwLi4u
MHg3ZikgYXJlIG5vdCB2dWxuZXJhYmxlIGJ1dCBkb24ndCBlbnVtZXJhdGUg
VFNBX3tTUSxMMX1fTk8uICBJZgorICAgICAqIHdlIHNlZSBlaXRoZXIgZW51
bWVyYXRlZCwgYXNzdW1lIGJvdGggYXJlIGNvcnJlY3QgLi4uCisgICAgICov
CisgICAgaWYgKCBjcHVfaGFzX3RzYV9zcV9ubyB8fCBjcHVfaGFzX3RzYV9s
MV9ubyApCisgICAgICAgIHJldHVybjsKKworICAgIC8qCisgICAgICogLi4u
IG90aGVyd2lzZSwgc3ludGhlc2lzZSB0aGVtLiAgQ1BVcyBvdGhlciB0aGFu
IEZhbTE5IChaZW4zLzQpIGFyZQorICAgICAqIHN0YXRlZCB0byBiZSBub3Qg
dnVsbmVyYWJsZS4KKyAgICAgKi8KKyAgICBpZiAoIGJvb3RfY3B1X2RhdGEu
eDg2ICE9IDB4MTkgKQorICAgIHsKKyAgICAgICAgc2V0dXBfZm9yY2VfY3B1
X2NhcChYODZfRkVBVFVSRV9UU0FfU1FfTk8pOworICAgICAgICBzZXR1cF9m
b3JjZV9jcHVfY2FwKFg4Nl9GRUFUVVJFX1RTQV9MMV9OTyk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICAvKgorICAgICAqIEZhbTE5IENQVXMg
Z2V0IFZFUldfQ0xFQVIgd2l0aCBuZXcgZW5vdWdoIG1pY3JvY29kZSwgYnV0
IG11c3QKKyAgICAgKiBzeW50aGVzaXNlIHRoZSBDUFVJRCBiaXQuCisgICAg
ICovCisgICAgY3Vycl9yZXYgPSB0aGlzX2NwdShjcHVfc2lnKS5yZXY7Cisg
ICAgc3dpdGNoICggY3Vycl9yZXYgPj4gOCApCisgICAgeworICAgIGNhc2Ug
MHgwYTAwMTE6IG1pbl9yZXYgPSAweDBhMDAxMWQ3OyBicmVhazsKKyAgICBj
YXNlIDB4MGEwMDEyOiBtaW5fcmV2ID0gMHgwYTAwMTIzYjsgYnJlYWs7Cisg
ICAgY2FzZSAweDBhMDA4MjogbWluX3JldiA9IDB4MGEwMDgyMGQ7IGJyZWFr
OworICAgIGNhc2UgMHgwYTEwMTE6IG1pbl9yZXYgPSAweDBhMTAxMTRjOyBi
cmVhazsKKyAgICBjYXNlIDB4MGExMDEyOiBtaW5fcmV2ID0gMHgwYTEwMTI0
YzsgYnJlYWs7CisgICAgY2FzZSAweDBhMTA4MTogbWluX3JldiA9IDB4MGEx
MDgxMDk7IGJyZWFrOworICAgIGNhc2UgMHgwYTIwMTA6IG1pbl9yZXYgPSAw
eDBhMjAxMDJlOyBicmVhazsKKyAgICBjYXNlIDB4MGEyMDEyOiBtaW5fcmV2
ID0gMHgwYTIwMTIxMTsgYnJlYWs7CisgICAgY2FzZSAweDBhNDA0MTogbWlu
X3JldiA9IDB4MGE0MDQxMDg7IGJyZWFrOworICAgIGNhc2UgMHgwYTUwMDA6
IG1pbl9yZXYgPSAweDBhNTAwMDEyOyBicmVhazsKKyAgICBjYXNlIDB4MGE2
MDEyOiBtaW5fcmV2ID0gMHgwYTYwMTIwYTsgYnJlYWs7CisgICAgY2FzZSAw
eDBhNzA0MTogbWluX3JldiA9IDB4MGE3MDQxMDg7IGJyZWFrOworICAgIGNh
c2UgMHgwYTcwNTI6IG1pbl9yZXYgPSAweDBhNzA1MjA4OyBicmVhazsKKyAg
ICBjYXNlIDB4MGE3MDgwOiBtaW5fcmV2ID0gMHgwYTcwODAwODsgYnJlYWs7
CisgICAgY2FzZSAweDBhNzBjMDogbWluX3JldiA9IDB4MGE3MGMwMDg7IGJy
ZWFrOworICAgIGNhc2UgMHgwYWEwMDI6IG1pbl9yZXYgPSAweDBhYTAwMjE2
OyBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBwcmludGsoWEVOTE9H
X1dBUk5JTkcKKyAgICAgICAgICAgICAgICJVbnJlY29nbmlzZWQgQ1BVICUw
MngtJTAyeC0lMDJ4LCB1Y29kZSAweCUwOHggZm9yIFRTQSBtaXRpZ2F0aW9u
XG4iLAorICAgICAgICAgICAgICAgYm9vdF9jcHVfZGF0YS54ODYsIGJvb3Rf
Y3B1X2RhdGEueDg2X21vZGVsLAorICAgICAgICAgICAgICAgYm9vdF9jcHVf
ZGF0YS54ODZfbWFzaywgY3Vycl9yZXYpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgaWYgKCBjdXJyX3JldiA+PSBtaW5fcmV2ICkKKyAgICAg
ICAgc2V0dXBfZm9yY2VfY3B1X2NhcChYODZfRkVBVFVSRV9WRVJXX0NMRUFS
KTsKK30KKwogc3RhdGljIGJvb2wgX19pbml0IGNwdV9oYXNfZ2RzKHZvaWQp
CiB7CiAgICAgLyoKQEAgLTIyMTksNiArMjI5Myw3IEBAIHZvaWQgX19pbml0
IGluaXRfc3BlY3VsYXRpb25fbWl0aWdhdGlvbnModm9pZCkKICAgICAgKiBo
dHRwczovL3d3dy5pbnRlbC5jb20vY29udGVudC93d3cvdXMvZW4vZGV2ZWxv
cGVyL2FydGljbGVzL3RlY2huaWNhbC9zb2Z0d2FyZS1zZWN1cml0eS1ndWlk
YW5jZS90ZWNobmljYWwtZG9jdW1lbnRhdGlvbi9pbnRlbC1hbmFseXNpcy1t
aWNyb2FyY2hpdGVjdHVyYWwtZGF0YS1zYW1wbGluZy5odG1sCiAgICAgICog
aHR0cHM6Ly93d3cuaW50ZWwuY29tL2NvbnRlbnQvd3d3L3VzL2VuL2RldmVs
b3Blci9hcnRpY2xlcy90ZWNobmljYWwvc29mdHdhcmUtc2VjdXJpdHktZ3Vp
ZGFuY2UvdGVjaG5pY2FsLWRvY3VtZW50YXRpb24vcHJvY2Vzc29yLW1taW8t
c3RhbGUtZGF0YS12dWxuZXJhYmlsaXRpZXMuaHRtbAogICAgICAqIGh0dHBz
Oi8vd3d3LmludGVsLmNvbS9jb250ZW50L3d3dy91cy9lbi9kZXZlbG9wZXIv
YXJ0aWNsZXMvdGVjaG5pY2FsL3NvZnR3YXJlLXNlY3VyaXR5LWd1aWRhbmNl
L2Fkdmlzb3J5LWd1aWRhbmNlL3JlZ2lzdGVyLWZpbGUtZGF0YS1zYW1wbGlu
Zy5odG1sCisgICAgICogaHR0cHM6Ly93d3cuYW1kLmNvbS9jb250ZW50L2Rh
bS9hbWQvZW4vZG9jdW1lbnRzL3Jlc291cmNlcy9idWxsZXRpbi90ZWNobmlj
YWwtZ3VpZGFuY2UtZm9yLW1pdGlnYXRpbmctdHJhbnNpZW50LXNjaGVkdWxl
ci1hdHRhY2tzLnBkZgogICAgICAqCiAgICAgICogUmVsZXZhbnQgdWNvZGVz
OgogICAgICAqCkBAIC0yMjUxLDkgKzIzMjYsMTggQEAgdm9pZCBfX2luaXQg
aW5pdF9zcGVjdWxhdGlvbl9taXRpZ2F0aW9ucyh2b2lkKQogICAgICAqCiAg
ICAgICogLSBNYXJjaCAyMDIzLCBmb3IgUkZEUy4gIEVudW1lcmF0ZSBSRkRT
X0NMRUFSIHRvIG1lYW4gdGhhdCBWRVJXIG5vdwogICAgICAqICAgc2NydWJz
IG5vbi1hcmNoaXRlY3R1cmFsIGVudHJpZXMgZnJvbSBjZXJ0YWluIHJlZ2lz
dGVyIGZpbGVzLgorICAgICAqCisgICAgICogLSBKdWx5IDIwMjUsIGZvciBU
U0EuICBJbnRyb2R1Y2VzIFZFUlcgc2lkZSBlZmZlY3RzIHRvIG1pdGlnYXRl
CisgICAgICogICBUU0Ffe1NRL0wxfS4gIFhlbiBtdXN0IHN5bnRoZXNpc2Ug
dGhlIFZFUldfQ0xFQVIgZmVhdHVyZSBiYXNlZCBvbgorICAgICAqICAgbWlj
cm9jb2RlIHZlcnNpb24uCisgICAgICoKKyAgICAgKiAgIE5vdGUsIHRoZXNl
IG1pY3JvY29kZSB1cGRhdGVzIHdlcmUgcHJvZHVjZWQgYmVmb3JlIHRoZSBy
ZW1lZGlhdGlvbiBvZgorICAgICAqICAgdGhlIG1pY3JvY29kZSBzaWduYXR1
cmUgaXNzdWVzLCBhbmQgYXJlIGluY2x1ZGVkIGluIHRoZSBmaXJ3bWFyZQor
ICAgICAqICAgdXBkYXRlcyBmaXhpbmcgdGhlIGVudHJ5c2lnbiB2dWxuZXJh
YmlsaXR5IGZyb20gfkRlY2VtYmVyIDIwMjQuCiAgICAgICovCiAgICAgbWRz
X2NhbGN1bGF0aW9ucygpOwogICAgIHJmZHNfY2FsY3VsYXRpb25zKCk7Cisg
ICAgdHNhX2NhbGN1bGF0aW9ucygpOwogCiAgICAgLyoKICAgICAgKiBQYXJ0
cyB3aGljaCBlbnVtZXJhdGUgRkJfQ0xFQVIgYXJlIHRob3NlIHdpdGggbm93
LXVwZGF0ZWQgbWljcm9jb2RlCkBAIC0yMjg1LDIxICsyMzY5LDI3IEBAIHZv
aWQgX19pbml0IGluaXRfc3BlY3VsYXRpb25fbWl0aWdhdGlvbnModm9pZCkK
ICAgICAgKiBNTFBEUy9NRkJEUyB3aGVuIFNNVCBpcyBlbmFibGVkLgogICAg
ICAqLwogICAgIGlmICggb3B0X3ZlcndfcHYgPT0gLTEgKQotICAgICAgICBv
cHRfdmVyd19wdiA9IGNwdV9oYXNfdXNlZnVsX21kX2NsZWFyIHx8IGNwdV9o
YXNfcmZkc19jbGVhcjsKKyAgICAgICAgb3B0X3ZlcndfcHYgPSAoY3B1X2hh
c191c2VmdWxfbWRfY2xlYXIgfHwgY3B1X2hhc19yZmRzX2NsZWFyIHx8Cisg
ICAgICAgICAgICAgICAgICAgICAgIGNwdV9oYXNfdmVyd19jbGVhcik7CiAK
ICAgICBpZiAoIG9wdF92ZXJ3X2h2bSA9PSAtMSApCi0gICAgICAgIG9wdF92
ZXJ3X2h2bSA9IGNwdV9oYXNfdXNlZnVsX21kX2NsZWFyIHx8IGNwdV9oYXNf
cmZkc19jbGVhcjsKKyAgICAgICAgb3B0X3ZlcndfaHZtID0gKGNwdV9oYXNf
dXNlZnVsX21kX2NsZWFyIHx8IGNwdV9oYXNfcmZkc19jbGVhciB8fAorICAg
ICAgICAgICAgICAgICAgICAgICAgY3B1X2hhc192ZXJ3X2NsZWFyKTsKIAog
ICAgIC8qCi0gICAgICogSWYgU01UIGlzIGFjdGl2ZSwgYW5kIHdlJ3JlIHBy
b3RlY3RpbmcgYWdhaW5zdCBNRFMgb3IgTU1JTyBzdGFsZSBkYXRhLAorICAg
ICAqIElmIFNNVCBpcyBhY3RpdmUsIGFuZCB3ZSdyZSBwcm90ZWN0aW5nIGFn
YWluc3QgYW55IG9mOgorICAgICAqICAgLSBNU0JEUworICAgICAqICAgLSBN
TUlPIHN0YWxlIGRhdGEKKyAgICAgKiAgIC0gVFNBLVNRCiAgICAgICogd2Ug
bmVlZCB0byBzY3J1YiBiZWZvcmUgZ29pbmcgaWRsZSBhcyB3ZWxsIGFzIG9u
IHJldHVybiB0byBndWVzdC4KICAgICAgKiBWYXJpb3VzIHBpcGVsaW5lIHJl
c291cmNlcyBhcmUgcmVwYXJ0aXRpb25lZCBhbW9uZ3N0IG5vbi1pZGxlIHRo
cmVhZHMuCiAgICAgICoKLSAgICAgKiBXZSBkb24ndCBuZWVkIHRvIHNjcnVi
IG9uIGlkbGUgZm9yIFJGRFMuICBUaGVyZSBhcmUgbm8gYWZmZWN0ZWQgY29y
ZXMKLSAgICAgKiB3aGljaCBzdXBwb3J0IFNNVCwgZGVzcGl0ZSB0aGVyZSBi
ZWluZyBhZmZlY3RlZCBjb3JlcyBpbiBoeWJyaWQgc3lzdGVtcwotICAgICAq
IHdoaWNoIGhhdmUgU01UIGVsc2V3aGVyZSBpbiB0aGUgcGxhdGZvcm0uCisg
ICAgICogV2UgZG9uJ3QgbmVlZCB0byBzY3J1YiBvbiBpZGxlIGZvcjoKKyAg
ICAgKiAgIC0gUkZEUyAobm8gU01UIGFmZmVjdGVkIGNvcmVzKQorICAgICAq
ICAgLSBUU0EtTDEgKHV0YWdzIG5ldmVyIHNoYXJlZCBiZXR3ZWVuIHRocmVh
ZHMpCiAgICAgICovCiAgICAgaWYgKCAoKGNwdV9oYXNfdXNlZnVsX21kX2Ns
ZWFyICYmIChvcHRfdmVyd19wdiB8fCBvcHRfdmVyd19odm0pKSB8fAorICAg
ICAgICAgIChjcHVfaGFzX3ZlcndfY2xlYXIgJiYgIWNwdV9oYXNfdHNhX3Nx
X25vKSB8fAogICAgICAgICAgIG9wdF92ZXJ3X21taW8pICYmIGh3X3NtdF9l
bmFibGVkICkKICAgICAgICAgc2V0dXBfZm9yY2VfY3B1X2NhcChYODZfRkVB
VFVSRV9TQ19WRVJXX0lETEUpOwogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVk
ZS9wdWJsaWMvYXJjaC14ODYvY3B1ZmVhdHVyZXNldC5oIGIveGVuL2luY2x1
ZGUvcHVibGljL2FyY2gteDg2L2NwdWZlYXR1cmVzZXQuaAppbmRleCAwM2Nk
MTQxOWM1Y2IuLjQyZGIxMzJiNGMyZiAxMDA2NDQKLS0tIGEveGVuL2luY2x1
ZGUvcHVibGljL2FyY2gteDg2L2NwdWZlYXR1cmVzZXQuaAorKysgYi94ZW4v
aW5jbHVkZS9wdWJsaWMvYXJjaC14ODYvY3B1ZmVhdHVyZXNldC5oCkBAIC0y
ODQsNiArMjg0LDcgQEAgWEVOX0NQVUZFQVRVUkUoRlNSQ1MsICAgICAgICAx
MCozMisxMikgLypBICBGYXN0IFNob3J0IFJFUCBDTVBTQi9TQ0FTQiAqLwog
CiAvKiBBTUQtZGVmaW5lZCBDUFUgZmVhdHVyZXMsIENQVUlEIGxldmVsIDB4
ODAwMDAwMjEuZWF4LCB3b3JkIDExICovCiBYRU5fQ1BVRkVBVFVSRShMRkVO
Q0VfRElTUEFUQ0gsICAgIDExKjMyKyAyKSAvKkEgIExGRU5DRSBhbHdheXMg
c2VyaWFsaXppbmcgKi8KK1hFTl9DUFVGRUFUVVJFKFZFUldfQ0xFQVIsICAg
ICAgICAgMTEqMzIrIDUpIC8qIUEgVkVSVyBjbGVhcnMgbWljcm9hcmNoaXRl
Y3R1cmFsIGJ1ZmZlcnMgKi8KIFhFTl9DUFVGRUFUVVJFKE5TQ0IsICAgICAg
ICAgICAgICAgMTEqMzIrIDYpIC8qQSAgTnVsbCBTZWxlY3RvciBDbGVhcnMg
QmFzZSAoYW5kIGxpbWl0IHRvbykgKi8KIFhFTl9DUFVGRUFUVVJFKEFVVE9f
SUJSUywgICAgICAgICAgMTEqMzIrIDgpIC8qICAgQXV0b21hdGljIElCUlMg
Ki8KIFhFTl9DUFVGRUFUVVJFKFNCUEIsICAgICAgICAgICAgICAgMTEqMzIr
MjcpIC8qQSAgU2VsZWN0aXZlIEJyYW5jaCBQcmVkaWN0b3IgQmFycmllciAq
LwpAQCAtMzM4LDYgKzMzOSw4IEBAIFhFTl9DUFVGRUFUVVJFKFJGRFNfQ0xF
QVIsICAgICAgICAgMTYqMzIrMjgpIC8qIUEgUmVnaXN0ZXIgRmlsZShzKSBj
bGVhcmVkIGJ5IFZFCiBYRU5fQ1BVRkVBVFVSRShJVFNfTk8sICAgICAgICAg
ICAgIDE2KjMyKzYyKSAvKiFBIE5vIEluZGlyZWN0IFRhcmdldCBTZWxlY3Rp
b24gKi8KIAogLyogQU1ELWRlZmluZWQgQ1BVIGZlYXR1cmVzLCBDUFVJRCBs
ZXZlbCAweDgwMDAwMDIxLmVjeCwgd29yZCAxOCAqLworWEVOX0NQVUZFQVRV
UkUoVFNBX1NRX05PLCAgICAgICAgICAxOCozMisgMSkgLypBICBObyBTdG9y
ZSBRdWV1ZSBUcmFuc2l0aXZlIFNjaGVkdWxlciBBdHRhY2tzICovCitYRU5f
Q1BVRkVBVFVSRShUU0FfTDFfTk8sICAgICAgICAgIDE4KjMyKyAyKSAvKkEg
IE5vIEwxRCBUcmFuc2l0aXZlIFNjaGVkdWxlciBBdHRhY2tzICovCiAKICNl
bmRpZiAvKiBYRU5fQ1BVRkVBVFVSRSAqLwogCg==

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.18-01.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.18-01.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxMCBTZXAgMjAyNCAyMDo1OTozNyArMDEwMApTdWJq
ZWN0OiB4ODYvY3B1ZmVhdHVyZTogUmVwb3NpdGlvbiBjcHVfaGFzX3tsZmVu
Y2VfZGlzcGF0Y2gsbnNjYn0KCkxGRU5DRV9ESVNQQVRDSCB1c2VkIHRvIGJl
IGEgc3ludGhldGljIGZlYXR1cmUsIGJ1dCB3YXMgZ2l2ZW4gYSByZWFsIENQ
VUlEIGJpdApieSBBTUQuICBUaGUgZGVmaW5lIHdhc24ndCBtb3ZlZCB3aGVu
IHRoaXMgd2FzIGNoYW5nZWQuCgpOU0NCIGhhcyBhbHdheXMgYmVlbiBhIHJl
YWwgQ1BVSUQgYml0LCBhbmQgd2FzIG1pc3BsYWNlZCB3aGVuIGludHJvZHVj
ZWQgaW4KdGhlIHN5bnRoZXRpYyBibG9jayBhbG9uZ3NpZGUgTEZFTkNFX0RJ
U1BBVENILgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3
LmNvb3BlcjNAY2l0cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEphbiBCZXVsaWNo
IDxqYmV1bGljaEBzdXNlLmNvbT4KKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21t
aXQgNmEwMzliMDUwMDcxZWJhNjQ0YWI0MTRkNzZhYzVkNWZjOWUwNjdhNSkK
CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vY3B1ZmVh
dHVyZS5oIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmUu
aAppbmRleCA1MTVmM2Y2NGQ1NWIuLjkxOWE5ZTMxZjA0ZSAxMDA2NDQKLS0t
IGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmUuaAorKysg
Yi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vY3B1ZmVhdHVyZS5oCkBAIC0x
OTAsNiArMTkwLDEwIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBib290X2NwdV9o
YXModW5zaWduZWQgaW50IGZlYXQpCiAjZGVmaW5lIGNwdV9oYXNfYXZ4NTEy
X2JmMTYgICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9BVlg1MTJfQkYx
NikKICNkZWZpbmUgY3B1X2hhc19hdnhfaWZtYSAgICAgICAgYm9vdF9jcHVf
aGFzKFg4Nl9GRUFUVVJFX0FWWF9JRk1BKQogCisvKiBDUFVJRCBsZXZlbCAw
eDgwMDAwMDIxLmVheCAqLworI2RlZmluZSBjcHVfaGFzX2xmZW5jZV9kaXNw
YXRjaCBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfTEZFTkNFX0RJU1BBVENI
KQorI2RlZmluZSBjcHVfaGFzX25zY2IgICAgICAgICAgICBib290X2NwdV9o
YXMoWDg2X0ZFQVRVUkVfTlNDQikKKwogLyogQ1BVSUQgbGV2ZWwgMHgwMDAw
MDAwNzoxLmVkeCAqLwogI2RlZmluZSBjcHVfaGFzX2F2eF92bm5pX2ludDgg
ICBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfQVZYX1ZOTklfSU5UOCkKICNk
ZWZpbmUgY3B1X2hhc19hdnhfbmVfY29udmVydCAgYm9vdF9jcHVfaGFzKFg4
Nl9GRUFUVVJFX0FWWF9ORV9DT05WRVJUKQpAQCAtMjE4LDggKzIyMiw2IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBib290X2NwdV9oYXModW5zaWduZWQgaW50
IGZlYXQpCiAjZGVmaW5lIGNwdV9oYXNfYXJjaF9wZXJmbW9uICAgIGJvb3Rf
Y3B1X2hhcyhYODZfRkVBVFVSRV9BUkNIX1BFUkZNT04pCiAjZGVmaW5lIGNw
dV9oYXNfY3B1aWRfZmF1bHRpbmcgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVS
RV9DUFVJRF9GQVVMVElORykKICNkZWZpbmUgY3B1X2hhc19hcGVyZm1wZXJm
ICAgICAgYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0FQRVJGTVBFUkYpCi0j
ZGVmaW5lIGNwdV9oYXNfbGZlbmNlX2Rpc3BhdGNoIGJvb3RfY3B1X2hhcyhY
ODZfRkVBVFVSRV9MRkVOQ0VfRElTUEFUQ0gpCi0jZGVmaW5lIGNwdV9oYXNf
bnNjYiAgICAgICAgICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9OU0NC
KQogI2RlZmluZSBjcHVfaGFzX3hlbl9sYnIgICAgICAgICBib290X2NwdV9o
YXMoWDg2X0ZFQVRVUkVfWEVOX0xCUikKICNkZWZpbmUgY3B1X2hhc194ZW5f
c2hzdGsgICAgICAgYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX1hFTl9TSFNU
SykKICNkZWZpbmUgY3B1X2hhc194ZW5faWJ0ICAgICAgICAgYm9vdF9jcHVf
aGFzKFg4Nl9GRUFUVVJFX1hFTl9JQlQpCg==

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.18-02.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.18-02.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEFwciAyMDI1IDE0OjU5OjAxICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBNb3ZlIG1vbml0b3IoKS9td2FpdCgpIHdyYXBwZXJz
IGludG8gY3B1LWlkbGUuYwoKVGhleSdyZSBub3QgdXNlZCBieSBhbnkgb3Ro
ZXIgdHJhbnNsYXRpb24gdW5pdCwgc28gc2hvdWxkbid0IGxpdmUgaW4KYXNt
L3Byb2Nlc3Nvci5oLCB3aGljaCBpcyBpbmNsdWRlZCBhbG1vc3QgZXZlcnl3
aGVyZS4KCk91ciBuZXcgdG9vbGNoYWluIGJhc2VsaW5lIGtub3dzIHRoZSBN
T05JVE9SL01XQUlUIGluc3RydWN0aW9ucywgc28gdXNlIHRoZW0KZGlyZWN0
bHkgcmF0aGVyIHRoYW4gdXNpbmcgcmF3IGhleC4KCkNoYW5nZSB0aGUgaGlu
dC9leHRlbnRpb24gcGFyYW1ldGVycyBmcm9tIGxvbmcgdG8gaW50LiAgVGhl
eSdyZSBzcGVjaWZpZWQgdG8KcmVtYWluIDMyYml0IG9wZXJhbmRzIGV2ZW4g
NjQtYml0IG1vZGUuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxh
bmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpSZXZpZXdlZC1ieTogSmFuIEJl
dWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgooY2hlcnJ5IHBpY2tlZCBmcm9t
IGNvbW1pdCA2MWUxMGZjMjhjY2RkZmY3YzcyYzE0YWNlYzU2ZGM3ZWYyYjE1
NWQxKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxl
LmMgYi94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jCmluZGV4IDA0MGJh
YjYwYjZmYi4uZWMyZDU3MGRjMjdiIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94
ODYvYWNwaS9jcHVfaWRsZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9hY3BpL2Nw
dV9pZGxlLmMKQEAgLTU5LDYgKzU5LDE5IEBACiAKIC8qI2RlZmluZSBERUJV
R19QTV9DWCovCiAKK3N0YXRpYyBhbHdheXNfaW5saW5lIHZvaWQgbW9uaXRv
cigKKyAgICBjb25zdCB2b2lkICphZGRyLCB1bnNpZ25lZCBpbnQgZWN4LCB1
bnNpZ25lZCBpbnQgZWR4KQoreworICAgIGFzbSB2b2xhdGlsZSAoICJtb25p
dG9yIgorICAgICAgICAgICAgICAgICAgIDo6ICJhIiAoYWRkciksICJjIiAo
ZWN4KSwgImQiIChlZHgpICk7Cit9CisKK3N0YXRpYyBhbHdheXNfaW5saW5l
IHZvaWQgbXdhaXQodW5zaWduZWQgaW50IGVheCwgdW5zaWduZWQgaW50IGVj
eCkKK3sKKyAgICBhc20gdm9sYXRpbGUgKCAibXdhaXQiCisgICAgICAgICAg
ICAgICAgICAgOjogImEiIChlYXgpLCAiYyIgKGVjeCkgKTsKK30KKwogI2Rl
ZmluZSBHRVRfSFdfUkVTX0lOX05TKG1zciwgdmFsKSBcCiAgICAgZG8geyBy
ZG1zcmwobXNyLCB2YWwpOyB2YWwgPSB0c2NfdGlja3MybnModmFsKTsgfSB3
aGlsZSggMCApCiAjZGVmaW5lIEdFVF9NQzZfUkVTKHZhbCkgIEdFVF9IV19S
RVNfSU5fTlMoMHg2NjQsIHZhbCkKQEAgLTQ4Miw3ICs0OTUsNyBAQCB2b2lk
IG13YWl0X2lkbGVfd2l0aF9oaW50cyh1bnNpZ25lZCBpbnQgZWF4LCB1bnNp
Z25lZCBpbnQgZWN4KQogICAgICAgICBtYigpOwogICAgIH0KIAotICAgIF9f
bW9uaXRvcihtb25pdG9yX2FkZHIsIDAsIDApOworICAgIG1vbml0b3IobW9u
aXRvcl9hZGRyLCAwLCAwKTsKICAgICBzbXBfbWIoKTsKIAogICAgIC8qCkBA
IC00OTYsNyArNTA5LDcgQEAgdm9pZCBtd2FpdF9pZGxlX3dpdGhfaGludHMo
dW5zaWduZWQgaW50IGVheCwgdW5zaWduZWQgaW50IGVjeCkKICAgICAgICAg
Y3B1bWFza19zZXRfY3B1KGNwdSwgJmNwdWlkbGVfbXdhaXRfZmxhZ3MpOwog
CiAgICAgICAgIHNwZWNfY3RybF9lbnRlcl9pZGxlKGluZm8pOwotICAgICAg
ICBfX213YWl0KGVheCwgZWN4KTsKKyAgICAgICAgbXdhaXQoZWF4LCBlY3gp
OwogICAgICAgICBzcGVjX2N0cmxfZXhpdF9pZGxlKGluZm8pOwogCiAgICAg
ICAgIGNwdW1hc2tfY2xlYXJfY3B1KGNwdSwgJmNwdWlkbGVfbXdhaXRfZmxh
Z3MpOwpAQCAtOTI3LDkgKzk0MCw5IEBAIHZvaWQgY2ZfY2hlY2sgYWNwaV9k
ZWFkX2lkbGUodm9pZCkKICAgICAgICAgICAgICAqLwogICAgICAgICAgICAg
bWIoKTsKICAgICAgICAgICAgIGNsZmx1c2gobXdhaXRfcHRyKTsKLSAgICAg
ICAgICAgIF9fbW9uaXRvcihtd2FpdF9wdHIsIDAsIDApOworICAgICAgICAg
ICAgbW9uaXRvcihtd2FpdF9wdHIsIDAsIDApOwogICAgICAgICAgICAgbWIo
KTsKLSAgICAgICAgICAgIF9fbXdhaXQoY3gtPmFkZHJlc3MsIDApOworICAg
ICAgICAgICAgbXdhaXQoY3gtPmFkZHJlc3MsIDApOwogICAgICAgICB9CiAg
ICAgfQogICAgIGVsc2UgaWYgKCAoY3VycmVudF9jcHVfZGF0YS54ODZfdmVu
ZG9yICYKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9w
cm9jZXNzb3IuaCBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNz
b3IuaAppbmRleCAxYmJhNGM1MDAyYzYuLmM1ZTVjNzIzNDFhZCAxMDA2NDQK
LS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oCisr
KyBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaApAQCAt
MzEyLDIzICszMTIsNiBAQCBzdGF0aWMgYWx3YXlzX2lubGluZSB2b2lkIHNl
dF9pbl9jcjQgKHVuc2lnbmVkIGxvbmcgbWFzaykKICAgICB3cml0ZV9jcjQo
cmVhZF9jcjQoKSB8IG1hc2spOwogfQogCi1zdGF0aWMgYWx3YXlzX2lubGlu
ZSB2b2lkIF9fbW9uaXRvcihjb25zdCB2b2lkICplYXgsIHVuc2lnbmVkIGxv
bmcgZWN4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dW5zaWduZWQgbG9uZyBlZHgpCi17Ci0gICAgLyogIm1vbml0b3IgJWVheCwl
ZWN4LCVlZHg7IiAqLwotICAgIGFzbSB2b2xhdGlsZSAoCi0gICAgICAgICIu
Ynl0ZSAweDBmLDB4MDEsMHhjODsiCi0gICAgICAgIDogOiAiYSIgKGVheCks
ICJjIiAoZWN4KSwgImQiKGVkeCkgKTsKLX0KLQotc3RhdGljIGFsd2F5c19p
bmxpbmUgdm9pZCBfX213YWl0KHVuc2lnbmVkIGxvbmcgZWF4LCB1bnNpZ25l
ZCBsb25nIGVjeCkKLXsKLSAgICAvKiAibXdhaXQgJWVheCwlZWN4OyIgKi8K
LSAgICBhc20gdm9sYXRpbGUgKAotICAgICAgICAiLmJ5dGUgMHgwZiwweDAx
LDB4Yzk7IgotICAgICAgICA6IDogImEiIChlYXgpLCAiYyIgKGVjeCkgKTsK
LX0KLQogI2RlZmluZSBJT0JNUF9CWVRFUyAgICAgICAgICAgICA4MTkyCiAj
ZGVmaW5lIElPQk1QX0lOVkFMSURfT0ZGU0VUICAgIDB4ODAwMAogCg==

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.18-03.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.18-03.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEFwciAyMDI1IDE1OjU1OjI5ICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBSZW1vdmUgTUZFTkNFcyBmb3IgQ0xGTFVTSF9NT05J
VE9SCgpDb21taXQgNDhkMzI0NThiY2Q0ICgieDg2LCBpZGxlOiBhZGQgYmFy
cmllcnMgdG8gQ0xGTFVTSCB3b3JrYXJvdW5kIikgd2FzCmluaGVyaXRlZCBm
cm9tIExpbnV4IGFuZCBhZGRlZCBNRkVOQ0VzIGFyb3VuZCB0aGUgQUFJNjUg
ZXJyYXRhIGZpeC4KClRoZSBTRE0gbm93IHN0YXRlczoKCiAgRXhlY3V0aW9u
cyBvZiB0aGUgQ0xGTFVTSCBpbnN0cnVjdGlvbiBhcmUgb3JkZXJlZCB3aXRo
IHJlc3BlY3QgdG8gZWFjaAogIG90aGVyIGFuZCB3aXRoIHJlc3BlY3QgdG8g
d3JpdGVzLCBsb2NrZWQgcmVhZC1tb2RpZnktd3JpdGUgaW5zdHJ1Y3Rpb25z
LAogIGFuZCBmZW5jZSBpbnN0cnVjdGlvbnNbMV0uCgp3aXRoIGZvb3Rub3Rl
IDEgcmVhZGluZzoKCiAgRWFybGllciB2ZXJzaW9ucyBvZiB0aGlzIG1hbnVh
bCBzcGVjaWZpZWQgdGhhdCBleGVjdXRpb25zIG9mIHRoZSBDTEZMVVNICiAg
aW5zdHJ1Y3Rpb24gd2VyZSBvcmRlcmVkIG9ubHkgYnkgdGhlIE1GRU5DRSBp
bnN0cnVjdGlvbi4gIEFsbCBwcm9jZXNzb3JzCiAgaW1wbGVtZW50aW5nIHRo
ZSBDTEZMVVNIIGluc3RydWN0aW9uIGFsc28gb3JkZXIgaXQgcmVsYXRpdmUg
dG8gdGhlIG90aGVyCiAgb3BlcmF0aW9ucyBlbnVtZXJhdGVkIGFib3ZlLgoK
SS5lLiB0aGUgTUZFTkNFcyBjYW1lIGFib3V0IGJlY2F1c2Ugb2YgYW4gaW5j
b3JyZWN0IHN0YXRlbWVudCBpbiB0aGUgU0RNLgoKVGhlIFNwZWMgVXBkYXRl
IChubyBsb25nZXIgYXZhaWxhYmxlIG9uIEludGVsJ3Mgd2Vic2l0ZSkgc2lt
cGx5IHNheXMgImlzc3VlIGEKQ0xGTFVTSCIsIHdpdGggbm8gbWVudGlvbiBv
ZiBNRkVOQ0VzLgoKQXMgdGhpcyBlcnJhdHVtIGlzIHNwZWNpZmljIHRvIElu
dGVsLCBpdCdzIGZpbmUgdG8gcmVtb3ZlIHRoZSB0aGUgTUZFTkNFczsgQU1E
CkNQVXMgb2YgYSBzaW1pbGFyIHZpbnRhZ2UgZG8gc3BvcnQgb3RoZXJ3aXNl
LXVub3JkZXJlZCBDTEZMVVNIcy4KCk1vdmUgdGhlIGZlYXR1cmUgYml0IGlu
dG8gdGhlIEJVRyByYW5nZSAocmF0aGVyIHRoYW4gRkVBVFVSRSksIGFuZCBt
b3ZlIHRoZQp3b3JrYXJvdW5kIGludG8gbW9uaXRvcigpIGl0c2VsZi4KClRo
ZSBlcnJhdHVtIGNoZWNrIGl0c2VsZiBtdXN0IHVzZSBzZXR1cF9mb3JjZV9j
cHVfY2FwKCkuICBJdCBuZWVkcyBhY3RpdmF0aW5nCmlmIGFueSBDUFUgbmVl
ZHMgaXQsIG5vdCBpZiBhbGwgb2YgdGhlbSBuZWVkIGl0LgoKRml4ZXM6IDQ4
ZDMyNDU4YmNkNCAoIng4NiwgaWRsZTogYWRkIGJhcnJpZXJzIHRvIENMRkxV
U0ggd29ya2Fyb3VuZCIpCkZpeGVzOiA5NmQxYjIzN2FlOWIgKCJ4ODYvSW50
ZWw6IHdvcmsgYXJvdW5kIFhlb24gNzQwMCBzZXJpZXMgZXJyYXR1bSBBQUk2
NSIpCkxpbms6IGh0dHBzOi8vd2ViLmFyY2hpdmUub3JnL3dlYi8yMDA5MDIx
OTA1NDg0MS9odHRwOi8vZG93bmxvYWQuaW50ZWwuY29tL2Rlc2lnbi94ZW9u
L3NwZWN1cGR0LzMyMDMzNjAxLnBkZgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcg
Q29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpSZXZpZXdlZC1i
eTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgooY2hlcnJ5IHBp
Y2tlZCBmcm9tIGNvbW1pdCBmNzdlZjM0NDM1NDJhMmMyYmJkNTllZTY2MTc4
Mjg3ZDRmYTViNDNmKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9hY3Bp
L2NwdV9pZGxlLmMgYi94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jCmlu
ZGV4IGVjMmQ1NzBkYzI3Yi4uZjFiOWUyZmJmNmU3IDEwMDY0NAotLS0gYS94
ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jCisrKyBiL3hlbi9hcmNoL3g4
Ni9hY3BpL2NwdV9pZGxlLmMKQEAgLTYyLDYgKzYyLDkgQEAKIHN0YXRpYyBh
bHdheXNfaW5saW5lIHZvaWQgbW9uaXRvcigKICAgICBjb25zdCB2b2lkICph
ZGRyLCB1bnNpZ25lZCBpbnQgZWN4LCB1bnNpZ25lZCBpbnQgZWR4KQogewor
ICAgIGFsdGVybmF0aXZlX2lucHV0KCIiLCAiY2xmbHVzaCAoJVthZGRyXSki
LCBYODZfQlVHX0NMRkxVU0hfTU9OSVRPUiwKKyAgICAgICAgICAgICAgICAg
ICAgICBbYWRkcl0gImEiIChhZGRyKSk7CisKICAgICBhc20gdm9sYXRpbGUg
KCAibW9uaXRvciIKICAgICAgICAgICAgICAgICAgICA6OiAiYSIgKGFkZHIp
LCAiYyIgKGVjeCksICJkIiAoZWR4KSApOwogfQpAQCAtNDg4LDEzICs0OTEs
NiBAQCB2b2lkIG13YWl0X2lkbGVfd2l0aF9oaW50cyh1bnNpZ25lZCBpbnQg
ZWF4LCB1bnNpZ25lZCBpbnQgZWN4KQogICAgIHNfdGltZV90IGV4cGlyZXMg
PSBwZXJfY3B1KHRpbWVyX2RlYWRsaW5lLCBjcHUpOwogICAgIGNvbnN0IHZv
aWQgKm1vbml0b3JfYWRkciA9ICZtd2FpdF93YWtldXAoY3B1KTsKIAotICAg
IGlmICggYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0NMRkxVU0hfTU9OSVRP
UikgKQotICAgIHsKLSAgICAgICAgbWIoKTsKLSAgICAgICAgY2xmbHVzaCht
b25pdG9yX2FkZHIpOwotICAgICAgICBtYigpOwotICAgIH0KLQogICAgIG1v
bml0b3IobW9uaXRvcl9hZGRyLCAwLCAwKTsKICAgICBzbXBfbWIoKTsKIApA
QCAtOTI5LDE5ICs5MjUsNyBAQCB2b2lkIGNmX2NoZWNrIGFjcGlfZGVhZF9p
ZGxlKHZvaWQpCiAKICAgICAgICAgd2hpbGUgKCAxICkKICAgICAgICAgewot
ICAgICAgICAgICAgLyoKLSAgICAgICAgICAgICAqIDEuIFRoZSBDTEZMVVNI
IGlzIGEgd29ya2Fyb3VuZCBmb3IgZXJyYXR1bSBBQUk2NSBmb3IKLSAgICAg
ICAgICAgICAqIHRoZSBYZW9uIDc0MDAgc2VyaWVzLiAgCi0gICAgICAgICAg
ICAgKiAyLiBUaGUgV0JJTlZEIGlzIGluc3VmZmljaWVudCBkdWUgdG8gdGhl
IHNwdXJpb3VzLXdha2V1cAotICAgICAgICAgICAgICogY2FzZSB3aGVyZSB3
ZSByZXR1cm4gYXJvdW5kIHRoZSBsb29wLgotICAgICAgICAgICAgICogMy4g
VW5saWtlIHdiaW52ZCwgY2xmbHVzaCBpcyBhIGxpZ2h0IHdlaWdodCBidXQg
bm90IHNlcmlhbGl6aW5nIAotICAgICAgICAgICAgICogaW5zdHJ1Y3Rpb24s
IGhlbmNlIG1lbW9yeSBmZW5jZSBpcyBuZWNlc3NhcnkgdG8gbWFrZSBzdXJl
IGFsbCAKLSAgICAgICAgICAgICAqIGxvYWQvc3RvcmUgdmlzaWJsZSBiZWZv
cmUgZmx1c2ggY2FjaGUgbGluZS4KLSAgICAgICAgICAgICAqLwotICAgICAg
ICAgICAgbWIoKTsKLSAgICAgICAgICAgIGNsZmx1c2gobXdhaXRfcHRyKTsK
ICAgICAgICAgICAgIG1vbml0b3IobXdhaXRfcHRyLCAwLCAwKTsKLSAgICAg
ICAgICAgIG1iKCk7CiAgICAgICAgICAgICBtd2FpdChjeC0+YWRkcmVzcywg
MCk7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94
ODYvY3B1L2ludGVsLmMgYi94ZW4vYXJjaC94ODYvY3B1L2ludGVsLmMKaW5k
ZXggNmYyYjNmZmZkZDM0Li4wNGEwMDJlMWUwYzkgMTAwNjQ0Ci0tLSBhL3hl
bi9hcmNoL3g4Ni9jcHUvaW50ZWwuYworKysgYi94ZW4vYXJjaC94ODYvY3B1
L2ludGVsLmMKQEAgLTQ0Niw2ICs0NDYsNyBAQCBzdGF0aWMgdm9pZCBfX2lu
aXQgcHJvYmVfbXdhaXRfZXJyYXRhKHZvaWQpCiAgKgogICogWGVvbiA3NDAw
IGVycmF0dW0gQUFJNjUgKGFuZCBmdXJ0aGVyIG5ld2VyIFhlb25zKQogICog
TU9OSVRPUi9NV0FJVCBtYXkgaGF2ZSBleGNlc3NpdmUgZmFsc2Ugd2FrZXVw
cworICogaHR0cHM6Ly93ZWIuYXJjaGl2ZS5vcmcvd2ViLzIwMDkwMjE5MDU0
ODQxL2h0dHA6Ly9kb3dubG9hZC5pbnRlbC5jb20vZGVzaWduL3hlb24vc3Bl
Y3VwZHQvMzIwMzM2MDEucGRmCiAgKi8KIHN0YXRpYyB2b2lkIEludGVsX2Vy
cmF0YV93b3JrYXJvdW5kcyhzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCiB7CkBA
IC00NjMsNyArNDY0LDcgQEAgc3RhdGljIHZvaWQgSW50ZWxfZXJyYXRhX3dv
cmthcm91bmRzKHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKIAogCWlmIChjLT54
ODYgPT0gNiAmJiBjcHVfaGFzX2NsZmx1c2ggJiYKIAkgICAgKGMtPng4Nl9t
b2RlbCA9PSAyOSB8fCBjLT54ODZfbW9kZWwgPT0gNDYgfHwgYy0+eDg2X21v
ZGVsID09IDQ3KSkKLQkJX19zZXRfYml0KFg4Nl9GRUFUVVJFX0NMRkxVU0hf
TU9OSVRPUiwgYy0+eDg2X2NhcGFiaWxpdHkpOworCQlzZXR1cF9mb3JjZV9j
cHVfY2FwKFg4Nl9CVUdfQ0xGTFVTSF9NT05JVE9SKTsKIAogCXByb2JlX2Mz
X2VycmF0YShjKTsKIAlpZiAoc3lzdGVtX3N0YXRlIDwgU1lTX1NUQVRFX3Nt
cF9ib290KQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNt
L2NwdWZlYXR1cmVzLmggYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vY3B1
ZmVhdHVyZXMuaAppbmRleCA5ZTNlZDIxYzAyNmQuLjg0YzkzMjkyYzgwYyAx
MDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1
cmVzLmgKKysrIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1
cmVzLmgKQEAgLTE5LDcgKzE5LDcgQEAgWEVOX0NQVUZFQVRVUkUoQVJDSF9Q
RVJGTU9OLCAgICAgIFg4Nl9TWU5USCggMykpIC8qIEludGVsIEFyY2hpdGVj
dHVyYWwgUGVyZk1vbgogWEVOX0NQVUZFQVRVUkUoVFNDX1JFTElBQkxFLCAg
ICAgIFg4Nl9TWU5USCggNCkpIC8qIFRTQyBpcyBrbm93biB0byBiZSByZWxp
YWJsZSAqLwogWEVOX0NQVUZFQVRVUkUoWFRPUE9MT0dZLCAgICAgICAgIFg4
Nl9TWU5USCggNSkpIC8qIGNwdSB0b3BvbG9neSBlbnVtIGV4dGVuc2lvbnMg
Ki8KIFhFTl9DUFVGRUFUVVJFKENQVUlEX0ZBVUxUSU5HLCAgICBYODZfU1lO
VEgoIDYpKSAvKiBjcHVpZCBmYXVsdGluZyAqLwotWEVOX0NQVUZFQVRVUkUo
Q0xGTFVTSF9NT05JVE9SLCAgIFg4Nl9TWU5USCggNykpIC8qIGNsZmx1c2gg
cmVxZCB3aXRoIG1vbml0b3IgKi8KKy8qIEJpdCA3IHVudXNlZCAqLwogWEVO
X0NQVUZFQVRVUkUoQVBFUkZNUEVSRiwgICAgICAgIFg4Nl9TWU5USCggOCkp
IC8qIEFQRVJGTVBFUkYgKi8KIFhFTl9DUFVGRUFUVVJFKE1GRU5DRV9SRFRT
QywgICAgICBYODZfU1lOVEgoIDkpKSAvKiBNRkVOQ0Ugc3luY2hyb25pemVz
IFJEVFNDICovCiBYRU5fQ1BVRkVBVFVSRShYRU5fU01FUCwgICAgICAgICAg
WDg2X1NZTlRIKDEwKSkgLyogU01FUCBnZXRzIHVzZWQgYnkgWGVuIGl0c2Vs
ZiAqLwpAQCAtNTIsNiArNTIsNyBAQCBYRU5fQ1BVRkVBVFVSRShVU0VfVk1D
QUxMLCAgICAgICAgWDg2X1NZTlRIKDMwKSkgLyogVXNlIFZNQ0FMTCBpbnN0
ZWFkIG9mIFZNTUNBTAogI2RlZmluZSBYODZfQlVHX05VTExfU0VHICAgICAg
ICAgIFg4Nl9CVUcoIDEpIC8qIE5VTEwtaW5nIGEgc2VsZWN0b3IgcHJlc2Vy
dmVzIHRoZSBiYXNlIGFuZCBsaW1pdC4gKi8KICNkZWZpbmUgWDg2X0JVR19D
TEZMVVNIX01GRU5DRSAgICBYODZfQlVHKCAyKSAvKiBNRkVOQ0UgbmVlZGVk
IHRvIHNlcmlhbGlzZSBDTEZMVVNIICovCiAjZGVmaW5lIFg4Nl9CVUdfSUJQ
Ql9OT19SRVQgICAgICAgWDg2X0JVRyggMykgLyogSUJQQiBkb2Vzbid0IGZs
dXNoIHRoZSBSU0IvUkFTICovCisjZGVmaW5lIFg4Nl9CVUdfQ0xGTFVTSF9N
T05JVE9SICAgWDg2X0JVRyggNCkgLyogTU9OSVRPUiByZXF1aXJlcyBDTEZM
VVNIICovCiAKICNkZWZpbmUgWDg2X1NQRUNfTk9fTEZFTkNFX0VOVFJZX1BW
IFg4Nl9CVUcoMTYpIC8qIChObykgc2FmZXR5IExGRU5DRSBmb3IgU1BFQ19D
VFJMX0VOVFJZX1BWLiAqLwogI2RlZmluZSBYODZfU1BFQ19OT19MRkVOQ0Vf
RU5UUllfSU5UUiBYODZfQlVHKDE3KSAvKiAoTm8pIHNhZmV0eSBMRkVOQ0Ug
Zm9yIFNQRUNfQ1RSTF9FTlRSWV9JTlRSLiAqLwo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.18-04.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.18-04.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAyNCBKdW4gMjAyNSAxNToyMDo1MiArMDEwMApTdWJq
ZWN0OiBSZXZlcnQgcGFydCBvZiAieDg2L213YWl0LWlkbGU6IGRpc2FibGUg
SUJSUyBkdXJpbmcgbG9uZyBpZGxlIgoKTW9zdCBvZiB0aGUgcGF0Y2ggKGhh
bmRsaW5nIG9mIENQVUlETEVfRkxBR19JQlJTKSBpcyBmaW5lLCBidXQgdGhl
CmFkanVzdGVtZW50cyB0byBtd2FpdF9pZGxlKCkgYXJlIG5vdDsgc3BlY19j
dHJsX2VudGVyX2lkbGUoKSBkb2VzIG1vcmUgdGhhbgpqdXN0IGFsdGVyIE1T
Ul9TUEVDX0NUUkwuSUJSUy4KClRoZSBvbmx5IHJlYXNvbiB0aGlzIGRvZXNu
J3QgbmVlZCBhbiBYU0EgaXMgYmVjYXVzZSB0aGUgdW5jb25kaXRpb25hbApz
cGVjX2N0cmxfe2VudGVyLGV4aXR9X2lkbGUoKSBpbiBtd2FpdF9pZGxlX3dp
dGhfaGludHMoKSB3ZXJlIGxlZnQgdW5hbHRlcmVkLAphbmQgdGh1cyB0aGUg
TVdBSVQgcmVtYWluZWQgcHJvcGVybHkgcHJvdGVjdGVkLgoKVGhlcmUgKHdv
dWxkIGhhdmUgYmVlbikgdHdvIHByb2JsZW1zLiAgSW4gdGhlIGlicnNfZGlz
YWJsZSAoPT0gZGVlcCBDKSBjYXNlOgoKICogT24gZW50cnksIFZFUlcgYW5k
IFJTQi1zdHVmZmluZyBhcmUgYXJjaGl0ZWN0dXJhbGx5IHNraXBwZWQuCiAq
IE9uIGV4aXQsIHRoZXJlJ3MgYSBicmFuY2ggY3Jvc3NpbmcgdGhlIFdSTVNS
IHdoaWNoIHJlaW5zdGF0ZXMgdGhlCiAgIHNwZWN1bGF0aXZlIHNhZmV0eSBm
b3IgaW5kaXJlY3QgYnJhbmNoZXMuCgpBbGwgdGhpcyBjaGFuZ2UgZGlkIHdh
cyBkb3VibGUgdXAgdGhlIGV4cGVuc2l2ZSBvcGVyYXRpb25zIGluIHRoZSBk
ZWVwIEMgY2FzZSwKYW5kIGZhaWwgdG8gb3B0aW1pc2UgdGhlIGludGVuZGVk
IGNhc2UuCgpJIGhhdmUgYW4gaWRlYSBvZiBob3cgdG8gcGx1bWIgdGhpcyBt
b3JlIG5pY2VseSwgYnV0IGl0IHJlcXVpcmVzIGxhcmdlcgpjaGFuZ2VzIHRv
IGxlZ2FjeSBJQlJTIGhhbmRsaW5nIHRvIG5vdCBtYWtlIHNwZWNfY3RybF9l
bnRlcl9pZGxlKCkgdnVsbmVyYWJsZQppbiBvdGhlciB3YXlzLiAgSW4gdGhl
IHNob3J0IHRlcm0sIHNpbXBseSB0YWtlIG91dCB0aGUgcGVyZiBoaXQuCgpG
aXhlczogMDhhY2RmOWEyNjE1ICgieDg2L213YWl0LWlkbGU6IGRpc2FibGUg
SUJSUyBkdXJpbmcgbG9uZyBpZGxlIikKU2lnbmVkLW9mZi1ieTogQW5kcmV3
IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KUmV2aWV3ZWQt
Ynk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KKGNoZXJyeSBw
aWNrZWQgZnJvbSBjb21taXQgMDdkNzE2MzMzNGE3NTA3ZDMyOTk1OGIxOWQ5
NzZiZTc2OTU4MDk5OSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1
L213YWl0LWlkbGUuYyBiL3hlbi9hcmNoL3g4Ni9jcHUvbXdhaXQtaWRsZS5j
CmluZGV4IGZmNWM4MDhiYzk1Mi4uZTk1ZmU1ZDg4OTA3IDEwMDY0NAotLS0g
YS94ZW4vYXJjaC94ODYvY3B1L213YWl0LWlkbGUuYworKysgYi94ZW4vYXJj
aC94ODYvY3B1L213YWl0LWlkbGUuYwpAQCAtODkxLDcgKzg5MSw2IEBAIHN0
YXRpYyBjb25zdCBzdHJ1Y3QgY3B1aWRsZV9zdGF0ZSBzbnJfY3N0YXRlc1td
ID0gewogc3RhdGljIHZvaWQgY2ZfY2hlY2sgbXdhaXRfaWRsZSh2b2lkKQog
ewogCXVuc2lnbmVkIGludCBjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7Ci0J
c3RydWN0IGNwdV9pbmZvICppbmZvID0gZ2V0X2NwdV9pbmZvKCk7CiAJc3Ry
dWN0IGFjcGlfcHJvY2Vzc29yX3Bvd2VyICpwb3dlciA9IHByb2Nlc3Nvcl9w
b3dlcnNbY3B1XTsKIAlzdHJ1Y3QgYWNwaV9wcm9jZXNzb3JfY3ggKmN4ID0g
TlVMTDsKIAl1bnNpZ25lZCBpbnQgbmV4dF9zdGF0ZTsKQEAgLTkxOCw2ICs5
MTcsOCBAQCBzdGF0aWMgdm9pZCBjZl9jaGVjayBtd2FpdF9pZGxlKHZvaWQp
CiAJCQlwbV9pZGxlX3NhdmUoKTsKIAkJZWxzZQogCQl7CisJCQlzdHJ1Y3Qg
Y3B1X2luZm8gKmluZm8gPSBnZXRfY3B1X2luZm8oKTsKKwogCQkJc3BlY19j
dHJsX2VudGVyX2lkbGUoaW5mbyk7CiAJCQlzYWZlX2hhbHQoKTsKIAkJCXNw
ZWNfY3RybF9leGl0X2lkbGUoaW5mbyk7CkBAIC05NDQsMTEgKzk0NSw2IEBA
IHN0YXRpYyB2b2lkIGNmX2NoZWNrIG13YWl0X2lkbGUodm9pZCkKIAlpZiAo
KGN4LT50eXBlID49IDMpICYmIGVycmF0YV9jNl93b3JrYXJvdW5kKCkpCiAJ
CWN4ID0gcG93ZXItPnNhZmVfc3RhdGU7CiAKLQlpZiAoY3gtPmlicnNfZGlz
YWJsZSkgewotCQlBU1NFUlQoIWN4LT5pcnFfZW5hYmxlX2Vhcmx5KTsKLQkJ
c3BlY19jdHJsX2VudGVyX2lkbGUoaW5mbyk7Ci0JfQotCiAjaWYgMCAvKiBY
WFggQ2FuIHdlL2RvIHdlIG5lZWQgdG8gZG8gc29tZXRoaW5nIHNpbWlsYXIg
b24gWGVuPyAqLwogCS8qCiAJICogbGVhdmVfbW0oKSB0byBhdm9pZCBjb3N0
bHkgYW5kIG9mdGVuIHVubmVjZXNzYXJ5IHdha2V1cHMKQEAgLTk4MCwxMCAr
OTc2LDYgQEAgc3RhdGljIHZvaWQgY2ZfY2hlY2sgbXdhaXRfaWRsZSh2b2lk
KQogCiAJLyogTm93IGJhY2sgaW4gQzAuICovCiAJdXBkYXRlX2lkbGVfc3Rh
dHMocG93ZXIsIGN4LCBiZWZvcmUsIGFmdGVyKTsKLQotCWlmIChjeC0+aWJy
c19kaXNhYmxlKQotCQlzcGVjX2N0cmxfZXhpdF9pZGxlKGluZm8pOwotCiAJ
bG9jYWxfaXJxX2VuYWJsZSgpOwogCiAJVFJBQ0VfNkQoVFJDX1BNX0lETEVf
RVhJVCwgY3gtPnR5cGUsIGFmdGVyLAo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.18-05.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.18-05.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogRnJpLCAyNyBKdW4gMjAyNSAxNDo0NjowMSArMDEwMApTdWJq
ZWN0OiB4ODYvY3B1LXBvbGljeTogU2ltcGxpZnkgbG9naWMgaW4KIGd1ZXN0
X2NvbW1vbl9kZWZhdWx0X2ZlYXR1cmVfYWRqdXN0bWVudHMoKQoKRm9yIGZl
YXR1cmVzIHdoaWNoIGFyZSB1bmNvbmRpdGlvbmFsbHkgc2V0IGluIHRoZSBt
YXggcG9saWNpZXMsIG1ha2luZyB0aGUKZGVmYXVsdCBwb2xpY3kgdG8gbWF0
Y2ggdGhlIGhvc3QgY2FuIGJlIGRvbmUgd2l0aCBhIGNvbmRpdGlvbmFsIGNs
ZWFyLgoKVGhpcyBpcyBzaW1wbGVyIHRoYW4gdGhlIHVuY29uZGl0aW9uYWwg
Y2xlYXIsIGNvbmRpdGlvbmFsIHNldCBjdXJyZW50bHkKcGVyZm9ybWVkLgoK
U2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNA
Y2l0cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGlj
aEBzdXNlLmNvbT4KKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgMzBmOGZl
ZDY4ZjNjMmU2MzU5NGZmOTIwMmIzZDA1Yjk3MTc4MWUzNikKCmRpZmYgLS1n
aXQgYS94ZW4vYXJjaC94ODYvY3B1LXBvbGljeS5jIGIveGVuL2FyY2gveDg2
L2NwdS1wb2xpY3kuYwppbmRleCA3NzQ1ZDVkMmQ1MGQuLjYwOGUwM2ZlNWUz
YiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2NwdS1wb2xpY3kuYworKysg
Yi94ZW4vYXJjaC94ODYvY3B1LXBvbGljeS5jCkBAIC01NDAsMTcgKzU0MCwx
NCBAQCBzdGF0aWMgdm9pZCBfX2luaXQgZ3Vlc3RfY29tbW9uX2RlZmF1bHRf
ZmVhdHVyZV9hZGp1c3RtZW50cyh1aW50MzJfdCAqZnMpCiAgICAgICAgICAq
IHJlYXNvbnMsIHNvIHJlc2V0IHRoZSBkZWZhdWx0IHBvbGljeSBiYWNrIHRv
IHRoZSBob3N0IHZhbHVlcyBpbgogICAgICAgICAgKiBjYXNlIHdlJ3JlIHVu
YWZmZWN0ZWQuCiAgICAgICAgICAqLwotICAgICAgICBfX2NsZWFyX2JpdChY
ODZfRkVBVFVSRV9NRF9DTEVBUiwgZnMpOwotICAgICAgICBpZiAoIGNwdV9o
YXNfbWRfY2xlYXIgKQotICAgICAgICAgICAgX19zZXRfYml0KFg4Nl9GRUFU
VVJFX01EX0NMRUFSLCBmcyk7CisgICAgICAgIGlmICggIWNwdV9oYXNfbWRf
Y2xlYXIgKQorICAgICAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVf
TURfQ0xFQVIsIGZzKTsKIAotICAgICAgICBfX2NsZWFyX2JpdChYODZfRkVB
VFVSRV9GQl9DTEVBUiwgZnMpOwotICAgICAgICBpZiAoIGNwdV9oYXNfZmJf
Y2xlYXIgKQotICAgICAgICAgICAgX19zZXRfYml0KFg4Nl9GRUFUVVJFX0ZC
X0NMRUFSLCBmcyk7CisgICAgICAgIGlmICggIWNwdV9oYXNfZmJfY2xlYXIg
KQorICAgICAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVfRkJfQ0xF
QVIsIGZzKTsKIAotICAgICAgICBfX2NsZWFyX2JpdChYODZfRkVBVFVSRV9S
RkRTX0NMRUFSLCBmcyk7Ci0gICAgICAgIGlmICggY3B1X2hhc19yZmRzX2Ns
ZWFyICkKLSAgICAgICAgICAgIF9fc2V0X2JpdChYODZfRkVBVFVSRV9SRkRT
X0NMRUFSLCBmcyk7CisgICAgICAgIGlmICggIWNwdV9oYXNfcmZkc19jbGVh
ciApCisgICAgICAgICAgICBfX2NsZWFyX2JpdChYODZfRkVBVFVSRV9SRkRT
X0NMRUFSLCBmcyk7CiAKICAgICAgICAgLyoKICAgICAgICAgICogVGhlIEdh
dGhlciBEYXRhIFNhbXBsaW5nIG1pY3JvY29kZSBtaXRpZ2F0aW9uIChBdWd1
c3QgMjAyMykgaGFzIGFuCkBAIC01NzAsMTMgKzU2NywxMSBAQCBzdGF0aWMg
dm9pZCBfX2luaXQgZ3Vlc3RfY29tbW9uX2RlZmF1bHRfZmVhdHVyZV9hZGp1
c3RtZW50cyh1aW50MzJfdCAqZnMpCiAgICAgICogVG9wb2xvZ3kgaW5mb3Jt
YXRpb24gaXMgYXQgdGhlIHRvb2xzdGFjaydzIGRpc2NyZXRpb24gc28gdGhl
c2UgYXJlCiAgICAgICogdW5jb25kaXRpb25hbGx5IHNldCBpbiBtYXgsIGJ1
dCBwaWNrIGEgZGVmYXVsdCB3aGljaCBtYXRjaGVzIHRoZSBob3N0LgogICAg
ICAqLwotICAgIF9fY2xlYXJfYml0KFg4Nl9GRUFUVVJFX0hUVCwgZnMpOwot
ICAgIGlmICggY3B1X2hhc19odHQgKQotICAgICAgICBfX3NldF9iaXQoWDg2
X0ZFQVRVUkVfSFRULCBmcyk7CisgICAgaWYgKCAhY3B1X2hhc19odHQgKQor
ICAgICAgICBfX2NsZWFyX2JpdChYODZfRkVBVFVSRV9IVFQsIGZzKTsKIAot
ICAgIF9fY2xlYXJfYml0KFg4Nl9GRUFUVVJFX0NNUF9MRUdBQ1ksIGZzKTsK
LSAgICBpZiAoIGNwdV9oYXNfY21wX2xlZ2FjeSApCi0gICAgICAgIF9fc2V0
X2JpdChYODZfRkVBVFVSRV9DTVBfTEVHQUNZLCBmcyk7CisgICAgaWYgKCAh
Y3B1X2hhc19jbXBfbGVnYWN5ICkKKyAgICAgICAgX19jbGVhcl9iaXQoWDg2
X0ZFQVRVUkVfQ01QX0xFR0FDWSwgZnMpOwogCiAgICAgLyoKICAgICAgKiBP
biBjZXJ0YWluIGhhcmR3YXJlLCBzcGVjdWxhdGl2ZSBvciBlcnJhdGEgd29y
a2Fyb3VuZHMgY2FuIHJlc3VsdCBpbgo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.18-06.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.18-06.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDExOjMzOjQxICswMTAwClN1Ympl
Y3Q6IHg4Ni9jcHUtcG9saWN5OiBGaXggaGFuZGxpbmcgb2YgbGVhZiAweDgw
MDAwMDIxCgpXaGVuIHN1cHBvcnQgd2FzIG9yaWdpbmFsbHkgaW50cm9kdWNl
ZCwgZWJ4LCBlY3ggYW5kIGVkeCB3ZXJlIHJlc2VydmVkIGFuZApzaG91bGQg
aGF2ZSBiZWVuIHplcm9lZCBpbiByZWNhbGN1bGF0ZV9taXNjKCkgdG8gYXZv
aWQgbGVha2luZyBpbnRvIGd1ZXN0cy4KClNpbmNlIHRoZW4sIGZpZWxkcyBo
YXZlIGJlZW4gYWRkZWQgaW50byBlYnguICBHdWVzdHMgY2FuJ3QgbG9hZCBt
aWNyb2NvZGUsIHNvCnNob3VsZG4ndCBzZWUgdWNvZGVfc2l6ZSwgYW5kIHdo
aWxlIGluIHByaW5jaXBsZSB3ZSBkbyB3YW50IHRvIHN1cHBvcnQgbGFyZ2Vy
ClJBUCBzaXplcyBpbiBndWVzdHMsIHZpcnR1YWxpc2luZyB0aGlzIGZvciBn
dWVzdHMgZGVwZW5kcyBvbiBBTUQgcHJvY3VkaW5nIGFueQpvZmZpY2lhbCBk
b2N1bWVudGF0aW9uIGZvciBFUkFQUywgd2hpY2ggaXMgbG9uZyBvdmVyZHVl
IGFuZCB3aXRoIG5vIEVUQS4KClRoaXMgcGF0Y2ggd2lsbCBjYXVzZSBhIGRp
ZmZlcmVuY2UgaW4gZ3Vlc3RzIG9uIFplbjUgQ1BVcywgYnV0IGFzIHRoZSBt
YWluCkVSQVBTIGZlYXR1cmUgaXMgaGlkZGVuLCBndWVzdHMgc2hvdWxkIGJl
IGlnbm9yaW5nIHRoZSByYXBfc2l6ZSBmaWVsZCB0b28uCgpGaXhlczogZTli
NGZlMjYzNjQ5ICgieDg2L2NwdWlkOiBzdXBwb3J0IExGRU5DRSBhbHdheXMg
c2VyaWFsaXNpbmcgQ1BVSUQgYml0IikKU2lnbmVkLW9mZi1ieTogQW5kcmV3
IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KUmV2aWV3ZWQt
Ynk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KKGNoZXJyeSBw
aWNrZWQgZnJvbSBjb21taXQgMTBkYzM1YzUxNmY3YjkyMjQ1OTBhN2E0ZTI3
MjJiYmZkNzBmYTg3YSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1
LXBvbGljeS5jIGIveGVuL2FyY2gveDg2L2NwdS1wb2xpY3kuYwppbmRleCA2
MDhlMDNmZTVlM2IuLjhmMzMyZmRiZDlhZSAxMDA2NDQKLS0tIGEveGVuL2Fy
Y2gveDg2L2NwdS1wb2xpY3kuYworKysgYi94ZW4vYXJjaC94ODYvY3B1LXBv
bGljeS5jCkBAIC0zNDEsNiArMzQxLDkgQEAgc3RhdGljIHZvaWQgcmVjYWxj
dWxhdGVfbWlzYyhzdHJ1Y3QgY3B1X3BvbGljeSAqcCkKICAgICAgICAgcC0+
ZXh0ZC5yYXdbMHgxZV0gPSBFTVBUWV9MRUFGOyAvKiBUb3BvRXh0IEFQSUMg
SUQvQ29yZS9Ob2RlICovCiAgICAgICAgIHAtPmV4dGQucmF3WzB4MWZdID0g
RU1QVFlfTEVBRjsgLyogU0VWICovCiAgICAgICAgIHAtPmV4dGQucmF3WzB4
MjBdID0gRU1QVFlfTEVBRjsgLyogUGxhdGZvcm0gUW9TICovCisgICAgICAg
IHAtPmV4dGQucmF3WzB4MjFdLmIgPSAwOworICAgICAgICBwLT5leHRkLnJh
d1sweDIxXS5jID0gMDsKKyAgICAgICAgcC0+ZXh0ZC5yYXdbMHgyMV0uZCA9
IDA7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL3hl
bi9pbmNsdWRlL3hlbi9saWIveDg2L2NwdS1wb2xpY3kuaCBiL3hlbi9pbmNs
dWRlL3hlbi9saWIveDg2L2NwdS1wb2xpY3kuaAppbmRleCBiYWIzZWVjZGE2
YzEuLmYzMzU5MjlhNzBjNCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVu
L2xpYi94ODYvY3B1LXBvbGljeS5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9s
aWIveDg2L2NwdS1wb2xpY3kuaApAQCAtMzI0LDcgKzMyNCwxMCBAQCBzdHJ1
Y3QgY3B1X3BvbGljeQogICAgICAgICAgICAgICAgIHVpbnQzMl90IGUyMWE7
CiAgICAgICAgICAgICAgICAgc3RydWN0IHsgREVDTF9CSVRGSUVMRChlMjFh
KTsgfTsKICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICB1aW50MzJfdCAv
KiBiICovOjMyLCAvKiBjICovOjMyLCAvKiBkICovOjMyOworICAgICAgICAg
ICAgdWludDE2X3QgdWNvZGVfc2l6ZTsgLyogVW5pdHMgb2YgMTYgYnl0ZXMg
Ki8KKyAgICAgICAgICAgIHVpbnQ4X3QgIHJhcF9zaXplOyAgIC8qIFVuaXRz
IG9mIDggZW50cmllcyAqLworICAgICAgICAgICAgdWludDhfdCAgOjg7Cisg
ICAgICAgICAgICB1aW50MzJfdCAvKiBjICovOjMyLCAvKiBkICovOjMyOwog
ICAgICAgICB9OwogICAgIH0gZXh0ZDsKIAo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.18-07.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.18-07.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDE1OjUxOjUzICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBSZW1vdmUgYnJva2VuIE1XQUlUIGltcGxlbWVudGF0
aW9uCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFp
bjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4
Yml0CgpjcHVpZGxlX3dha2V1cF9td2FpdCgpIGlzIGEgVE9DVE9VIHJhY2Uu
ICBUaGUgY3B1bWFza19hbmQoKSBzYW1wbGluZwpjcHVpZGxlX213YWl0X2Zs
YWdzIGNhbiB0YWtlIGEgYXJiaXRyYXJ5IHBlcmlvZCBvZiB0aW1lLCBhbmQg
dGhlcmUncyBubwpndWFyYW50ZWUgdGhhdCB0aGUgdGFyZ2V0IENQVXMgYXJl
IHN0aWxsIGluIE1XQUlUIHdoZW4gd3JpdGluZyBpbnRvCm13YWl0X3dha2V1
cChjcHUpLgoKVGhlIGNvbnNlcXVlbmNlIG9mIHRoZSByYWNlIGlzIHRoYXQg
d2UnbGwgZmFpbCB0byBJUEkgY2VydGFpbiB0YXJnZXRzLiAgQWxzbywKdGhl
cmUncyBubyBndWFyYW50ZWUgdGhhdCBtd2FpdF9pZGxlX3dpdGhfaGludHMo
KSB3aWxsIHJhaXNlIGEgVElNRVJfU09GVElSUQpvbiBpdCdzIHdheSBvdXQu
CgpUaGUgZnVuZGFtZW50YWwgYnVnIGlzIHRoYXQgdGhlICJpbl9td2FpdCIg
dmFyaWFibGUgbmVlZHMgdG8gYmUgaW4gdGhlCm1vbml0b3JlZCBsaW5lLCBh
bmQgbm90IGluIGEgc2VwYXJhdGUgY3B1aWRsZV9td2FpdF9mbGFncyB2YXJp
YWJsZSwgaW4gb3JkZXIKdG8gZG8gdGhpcyBpbiBhIHJhY2UtZnJlZSB3YXku
CgpBcnJhbmdpbmcgdG8gZml4IHRoaXMgd2hpbGUga2VlcGluZyB0aGUgb2xk
IGltcGxlbWVudGF0aW9uIGlzIHByb2hpYml0aXZlLCBzbwpzdHJpcCB0aGUg
Y3VycmVudCBvbmUgb3V0IGluIG9yZGVyIHRvIGltcGxlbWVudCB0aGUgbmV3
IG9uZSBjbGVhbmx5LiAgSW4gdGhlCmludGVyaW0sIHRoaXMgY2F1c2VzIElQ
SXMgdG8gYmUgdXNlZCB1bmNvbmRpdGlvbmFsbHkgd2hpY2ggaXMgc2FmZSBh
bGJlaXQKc3Vib3B0aW1hbC4KCkZpeGVzOiAzZDUyMWU5MzNlMWIgKCJjcHVp
ZGxlOiBtd2FpdCBvbiBzb2Z0aXJxX3BlbmRpbmcgJiByZW1vdmUgd2FrZXVw
IGlwaXMiKQpGaXhlczogMWFkYjM0ZWE4NDZkICgiQ1BVSURMRTogcmUtaW1w
bGVtZW50IG13YWl0IHdha2V1cCBwcm9jZXNzIikKU2lnbmVkLW9mZi1ieTog
QW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KUmV2
aWV3ZWQtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXgu
Y29tPgooY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCAzZmFmMDg2NmEzMzA3
MGI5MjZhYjc4ZTYyOTgyOTA0MDNmODVlNzZjKQoKZGlmZiAtLWdpdCBhL3hl
bi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMgYi94ZW4vYXJjaC94ODYvYWNw
aS9jcHVfaWRsZS5jCmluZGV4IGYxYjllMmZiZjZlNy4uMWIzMTZlODQ5ZDZh
IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jCisr
KyBiL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKQEAgLTQ0OCwyNyAr
NDQ4LDYgQEAgc3RhdGljIGludCBfX2luaXQgY2ZfY2hlY2sgY3B1X2lkbGVf
a2V5X2luaXQodm9pZCkKIH0KIF9faW5pdGNhbGwoY3B1X2lkbGVfa2V5X2lu
aXQpOwogCi0vKgotICogVGhlIGJpdCBpcyBzZXQgaWZmIGNwdSB1c2UgbW9u
aXRvci9td2FpdCB0byBlbnRlciBDIHN0YXRlCi0gKiB3aXRoIHRoaXMgZmxh
ZyBzZXQsIENQVSBjYW4gYmUgd2FrZW4gdXAgZnJvbSBDIHN0YXRlCi0gKiBi
eSB3cml0aW5nIHRvIHNwZWNpZmljIG1lbW9yeSBhZGRyZXNzLCBpbnN0ZWFk
IG9mIHNlbmRpbmcgYW4gSVBJLgotICovCi1zdGF0aWMgY3B1bWFza190IGNw
dWlkbGVfbXdhaXRfZmxhZ3M7Ci0KLXZvaWQgY3B1aWRsZV93YWtldXBfbXdh
aXQoY3B1bWFza190ICptYXNrKQotewotICAgIGNwdW1hc2tfdCB0YXJnZXQ7
Ci0gICAgdW5zaWduZWQgaW50IGNwdTsKLQotICAgIGNwdW1hc2tfYW5kKCZ0
YXJnZXQsIG1hc2ssICZjcHVpZGxlX213YWl0X2ZsYWdzKTsKLQotICAgIC8q
IENQVSBpcyBNV0FJVGluZyBvbiB0aGUgY3B1aWRsZV9td2FpdF93YWtldXAg
ZmxhZy4gKi8KLSAgICBmb3JfZWFjaF9jcHUoY3B1LCAmdGFyZ2V0KQotICAg
ICAgICBtd2FpdF93YWtldXAoY3B1KSA9IDA7Ci0KLSAgICBjcHVtYXNrX2Fu
ZG5vdChtYXNrLCBtYXNrLCAmdGFyZ2V0KTsKLX0KLQogLyogRm9yY2Ugc2Vu
ZGluZyBvZiBhIHdha2V1cCBJUEkgcmVnYXJkbGVzcyBvZiBtd2FpdCB1c2Fn
ZS4gKi8KIGJvb2wgX19yb19hZnRlcl9pbml0IGZvcmNlX213YWl0X2lwaV93
YWtldXA7CiAKQEAgLTQ3Nyw0MiArNDU2LDI1IEBAIGJvb2wgYXJjaF9za2lw
X3NlbmRfZXZlbnRfY2hlY2sodW5zaWduZWQgaW50IGNwdSkKICAgICBpZiAo
IGZvcmNlX213YWl0X2lwaV93YWtldXAgKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSAgICAvKgotICAgICAqIFRoaXMgcmVsaWVzIG9uIHNvZnRpcnFf
cGVuZGluZygpIGFuZCBtd2FpdF93YWtldXAoKSB0byBhY2Nlc3MgZGF0YQot
ICAgICAqIG9uIHRoZSBzYW1lIGNhY2hlIGxpbmUuCi0gICAgICovCi0gICAg
c21wX21iKCk7Ci0gICAgcmV0dXJuICEhY3B1bWFza190ZXN0X2NwdShjcHUs
ICZjcHVpZGxlX213YWl0X2ZsYWdzKTsKKyAgICByZXR1cm4gZmFsc2U7CiB9
CiAKIHZvaWQgbXdhaXRfaWRsZV93aXRoX2hpbnRzKHVuc2lnbmVkIGludCBl
YXgsIHVuc2lnbmVkIGludCBlY3gpCiB7CiAgICAgdW5zaWduZWQgaW50IGNw
dSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKLSAgICBzX3RpbWVfdCBleHBpcmVz
ID0gcGVyX2NwdSh0aW1lcl9kZWFkbGluZSwgY3B1KTsKLSAgICBjb25zdCB2
b2lkICptb25pdG9yX2FkZHIgPSAmbXdhaXRfd2FrZXVwKGNwdSk7CisgICAg
Y29uc3QgdW5zaWduZWQgaW50ICp0aGlzX3NvZnRpcnFfcGVuZGluZyA9ICZz
b2Z0aXJxX3BlbmRpbmcoY3B1KTsKIAotICAgIG1vbml0b3IobW9uaXRvcl9h
ZGRyLCAwLCAwKTsKKyAgICBtb25pdG9yKHRoaXNfc29mdGlycV9wZW5kaW5n
LCAwLCAwKTsKICAgICBzbXBfbWIoKTsKIAotICAgIC8qCi0gICAgICogVGlt
ZXIgZGVhZGxpbmUgcGFzc2luZyBpcyB0aGUgZXZlbnQgb24gd2hpY2ggd2Ug
d2lsbCBiZSB3b2tlbiB2aWEKLSAgICAgKiBjcHVpZGxlX213YWl0X3dha2V1
cC4gU28gY2hlY2sgaXQgbm93IHRoYXQgdGhlIGxvY2F0aW9uIGlzIGFybWVk
LgotICAgICAqLwotICAgIGlmICggKGV4cGlyZXMgPiBOT1coKSB8fCBleHBp
cmVzID09IDApICYmICFzb2Z0aXJxX3BlbmRpbmcoY3B1KSApCisgICAgaWYg
KCAhKnRoaXNfc29mdGlycV9wZW5kaW5nICkKICAgICB7CiAgICAgICAgIHN0
cnVjdCBjcHVfaW5mbyAqaW5mbyA9IGdldF9jcHVfaW5mbygpOwogCi0gICAg
ICAgIGNwdW1hc2tfc2V0X2NwdShjcHUsICZjcHVpZGxlX213YWl0X2ZsYWdz
KTsKLQogICAgICAgICBzcGVjX2N0cmxfZW50ZXJfaWRsZShpbmZvKTsKICAg
ICAgICAgbXdhaXQoZWF4LCBlY3gpOwogICAgICAgICBzcGVjX2N0cmxfZXhp
dF9pZGxlKGluZm8pOwotCi0gICAgICAgIGNwdW1hc2tfY2xlYXJfY3B1KGNw
dSwgJmNwdWlkbGVfbXdhaXRfZmxhZ3MpOwogICAgIH0KLQotICAgIGlmICgg
ZXhwaXJlcyA8PSBOT1coKSAmJiBleHBpcmVzID4gMCApCi0gICAgICAgIHJh
aXNlX3NvZnRpcnEoVElNRVJfU09GVElSUSk7CiB9CiAKIHN0YXRpYyB2b2lk
IGFjcGlfcHJvY2Vzc29yX2ZmaF9jc3RhdGVfZW50ZXIoc3RydWN0IGFjcGlf
cHJvY2Vzc29yX2N4ICpjeCkKQEAgLTkxMyw3ICs4NzUsNyBAQCB2b2lkIGNm
X2NoZWNrIGFjcGlfZGVhZF9pZGxlKHZvaWQpCiAKICAgICBpZiAoIGN4LT5l
bnRyeV9tZXRob2QgPT0gQUNQSV9DU1RBVEVfRU1fRkZIICkKICAgICB7Ci0g
ICAgICAgIHZvaWQgKm13YWl0X3B0ciA9ICZtd2FpdF93YWtldXAoc21wX3By
b2Nlc3Nvcl9pZCgpKTsKKyAgICAgICAgdm9pZCAqbXdhaXRfcHRyID0gJnNv
ZnRpcnFfcGVuZGluZyhzbXBfcHJvY2Vzc29yX2lkKCkpOwogCiAgICAgICAg
IC8qCiAgICAgICAgICAqIENhY2hlIG11c3QgYmUgZmx1c2hlZCBhcyB0aGUg
bGFzdCBvcGVyYXRpb24gYmVmb3JlIHNsZWVwaW5nLgpkaWZmIC0tZ2l0IGEv
eGVuL2FyY2gveDg2L2hwZXQuYyBiL3hlbi9hcmNoL3g4Ni9ocGV0LmMKaW5k
ZXggMzE3ZWY2M2ZiNWY4Li44ZjUwNjlkZjJhZTcgMTAwNjQ0Ci0tLSBhL3hl
bi9hcmNoL3g4Ni9ocGV0LmMKKysrIGIveGVuL2FyY2gveDg2L2hwZXQuYwpA
QCAtMTg3LDggKzE4Nyw2IEBAIHN0YXRpYyB2b2lkIGV2dF9kb19icm9hZGNh
c3QoY3B1bWFza190ICptYXNrKQogICAgIGlmICggX19jcHVtYXNrX3Rlc3Rf
YW5kX2NsZWFyX2NwdShjcHUsIG1hc2spICkKICAgICAgICAgcmFpc2Vfc29m
dGlycShUSU1FUl9TT0ZUSVJRKTsKIAotICAgIGNwdWlkbGVfd2FrZXVwX213
YWl0KG1hc2spOwotCiAgICAgaWYgKCAhY3B1bWFza19lbXB0eShtYXNrKSAp
CiAgICAgICAgY3B1bWFza19yYWlzZV9zb2Z0aXJxKG1hc2ssIFRJTUVSX1NP
RlRJUlEpOwogfQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL2hhcmRpcnEuaCBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9oYXJk
aXJxLmgKaW5kZXggMjc2ZTM0MTlkNzc4Li5mM2U5M2NjOWI1MDcgMTAwNjQ0
Ci0tLSBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9oYXJkaXJxLmgKKysr
IGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2hhcmRpcnEuaApAQCAtNSwx
MSArNSwxMCBAQAogI2luY2x1ZGUgPHhlbi90eXBlcy5oPgogCiB0eXBlZGVm
IHN0cnVjdCB7Ci0JdW5zaWduZWQgaW50IF9fc29mdGlycV9wZW5kaW5nOwot
CXVuc2lnbmVkIGludCBfX2xvY2FsX2lycV9jb3VudDsKLQl1bnNpZ25lZCBp
bnQgbm1pX2NvdW50OwotCXVuc2lnbmVkIGludCBtY2VfY291bnQ7Ci0JYm9v
bF90IF9fbXdhaXRfd2FrZXVwOworICAgIHVuc2lnbmVkIGludCBfX3NvZnRp
cnFfcGVuZGluZzsKKyAgICB1bnNpZ25lZCBpbnQgX19sb2NhbF9pcnFfY291
bnQ7CisgICAgdW5zaWduZWQgaW50IG5taV9jb3VudDsKKyAgICB1bnNpZ25l
ZCBpbnQgbWNlX2NvdW50OwogfSBfX2NhY2hlbGluZV9hbGlnbmVkIGlycV9j
cHVzdGF0X3Q7CiAKICNpbmNsdWRlIDx4ZW4vaXJxX2NwdXN0YXQuaD4JLyog
U3RhbmRhcmQgbWFwcGluZ3MgZm9yIGlycV9jcHVzdGF0X3QgYWJvdmUgKi8K
ZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9jcHVpZGxlLmggYi94ZW4v
aW5jbHVkZS94ZW4vY3B1aWRsZS5oCmluZGV4IDcwNWQwYzExMzVmMC4uMTIw
ZTM1NGZlMzQwIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vY3B1aWRs
ZS5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9jcHVpZGxlLmgKQEAgLTkyLDgg
KzkyLDYgQEAgZXh0ZXJuIHN0cnVjdCBjcHVpZGxlX2dvdmVybm9yICpjcHVp
ZGxlX2N1cnJlbnRfZ292ZXJub3I7CiBib29sIGNwdWlkbGVfdXNpbmdfZGVl
cF9jc3RhdGUodm9pZCk7CiB2b2lkIGNwdWlkbGVfZGlzYWJsZV9kZWVwX2Nz
dGF0ZSh2b2lkKTsKIAotZXh0ZXJuIHZvaWQgY3B1aWRsZV93YWtldXBfbXdh
aXQoY3B1bWFza190ICptYXNrKTsKLQogI2RlZmluZSBDUFVJRExFX0RSSVZF
Ul9TVEFURV9TVEFSVCAgMQogCiBleHRlcm4gdm9pZCBtZW51X2dldF90cmFj
ZV9kYXRhKHUzMiAqZXhwZWN0ZWQsIHUzMiAqcHJlZCk7CmRpZmYgLS1naXQg
YS94ZW4vaW5jbHVkZS94ZW4vaXJxX2NwdXN0YXQuaCBiL3hlbi9pbmNsdWRl
L3hlbi9pcnFfY3B1c3RhdC5oCmluZGV4IGI5NjI5ZjI1YzI2Ni4uNWYwMzli
NGI5YTc2IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vaXJxX2NwdXN0
YXQuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vaXJxX2NwdXN0YXQuaApAQCAt
MjQsNiArMjQsNSBAQCBleHRlcm4gaXJxX2NwdXN0YXRfdCBpcnFfc3RhdFtd
OwogICAvKiBhcmNoIGluZGVwZW5kZW50IGlycV9zdGF0IGZpZWxkcyAqLwog
I2RlZmluZSBzb2Z0aXJxX3BlbmRpbmcoY3B1KQlfX0lSUV9TVEFUKChjcHUp
LCBfX3NvZnRpcnFfcGVuZGluZykKICNkZWZpbmUgbG9jYWxfaXJxX2NvdW50
KGNwdSkJX19JUlFfU1RBVCgoY3B1KSwgX19sb2NhbF9pcnFfY291bnQpCi0j
ZGVmaW5lIG13YWl0X3dha2V1cChjcHUpCV9fSVJRX1NUQVQoKGNwdSksIF9f
bXdhaXRfd2FrZXVwKQogCiAjZW5kaWYJLyogX19pcnFfY3B1c3RhdF9oICov
Cg==

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.18-08.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.18-08.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDE4OjEzOjI3ICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBEcm9wIGluY29ycmVjdCBzbXBfbWIoKSBpbiBtd2Fp
dF9pZGxlX3dpdGhfaGludHMoKQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50
LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFu
c2Zlci1FbmNvZGluZzogOGJpdAoKV2l0aCB0aGUgcmVjZW50IHNpbXBsaWZp
Y2F0aW9ucywgaXQgYmVjb21lcyBvYnZpb3VzIHRoYXQgc21wX21iKCkgaXNu
J3QgdGhlCnJpZ2h0IGJhcnJpZXIuICBTdHJpY3RseSBzcGVha2luZywgTU9O
SVRPUiBpcyBvcmRlcmVkIGFzIGEgbG9hZCwgYnV0IHNtcF9ybWIoKQppc24n
dCBjb3JyZWN0IGVpdGhlciwgYXMgdGhpcyBvbmx5IHBlcnRhaW5zIHRvIGxv
Y2FsIG9yZGVyaW5nLiAgQWxsIHdlIG5lZWQgaXMKYSBjb21waWxlciBiYXJy
aWVyKCkuCgpNZXJnZSB0aGUgYmFyaWVyKCkgaW50byB0aGUgbW9uaXRvcigp
IGl0c2VsZiwgYWxvbmcgd2l0aCBhbiBleHBsYW50aW9uLgoKTm8gZnVuY3Rp
b25hbCBjaGFuZ2UuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxh
bmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpBY2tlZC1ieTogUm9nZXIgUGF1
IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CihjaGVycnkgcGlja2Vk
IGZyb20gY29tbWl0IGU3NzEwZGQ4NDNiYTlkMjA0ZjZlZTI5NzNkNjEyMGMx
OTg0OTU4YTYpCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2FjcGkvY3B1
X2lkbGUuYyBiL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKaW5kZXgg
MWIzMTZlODQ5ZDZhLi44ZGU4OWIxMTdhYTMgMTAwNjQ0Ci0tLSBhL3hlbi9h
cmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKKysrIGIveGVuL2FyY2gveDg2L2Fj
cGkvY3B1X2lkbGUuYwpAQCAtNjUsOCArNjUsMTIgQEAgc3RhdGljIGFsd2F5
c19pbmxpbmUgdm9pZCBtb25pdG9yKAogICAgIGFsdGVybmF0aXZlX2lucHV0
KCIiLCAiY2xmbHVzaCAoJVthZGRyXSkiLCBYODZfQlVHX0NMRkxVU0hfTU9O
SVRPUiwKICAgICAgICAgICAgICAgICAgICAgICBbYWRkcl0gImEiIChhZGRy
KSk7CiAKKyAgICAvKgorICAgICAqIFRoZSBtZW1vcnkgY2xvYmJlciBpcyBh
IGNvbXBpbGVyIGJhcnJpZXIuICBTdWJzZXFldW50IHJlYWRzIGZyb20gdGhl
CisgICAgICogbW9uaXRvcmVkIGNhY2hlbGluZSBtdXN0IG5vdCBiZSByZW9y
ZGVyZWQgb3ZlciBNT05JVE9SLgorICAgICAqLwogICAgIGFzbSB2b2xhdGls
ZSAoICJtb25pdG9yIgotICAgICAgICAgICAgICAgICAgIDo6ICJhIiAoYWRk
ciksICJjIiAoZWN4KSwgImQiIChlZHgpICk7CisgICAgICAgICAgICAgICAg
ICAgOjogImEiIChhZGRyKSwgImMiIChlY3gpLCAiZCIgKGVkeCkgOiAibWVt
b3J5IiApOwogfQogCiBzdGF0aWMgYWx3YXlzX2lubGluZSB2b2lkIG13YWl0
KHVuc2lnbmVkIGludCBlYXgsIHVuc2lnbmVkIGludCBlY3gpCkBAIC00NjUs
NyArNDY5LDYgQEAgdm9pZCBtd2FpdF9pZGxlX3dpdGhfaGludHModW5zaWdu
ZWQgaW50IGVheCwgdW5zaWduZWQgaW50IGVjeCkKICAgICBjb25zdCB1bnNp
Z25lZCBpbnQgKnRoaXNfc29mdGlycV9wZW5kaW5nID0gJnNvZnRpcnFfcGVu
ZGluZyhjcHUpOwogCiAgICAgbW9uaXRvcih0aGlzX3NvZnRpcnFfcGVuZGlu
ZywgMCwgMCk7Ci0gICAgc21wX21iKCk7CiAKICAgICBpZiAoICEqdGhpc19z
b2Z0aXJxX3BlbmRpbmcgKQogICAgIHsK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.18-09.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.18-09.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDIxOjQwOjUxICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBDb252ZXJ0IGZvcmNlX213YWl0X2lwaV93YWtldXAg
dG8gWDg2X0JVR19NT05JVE9SCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQt
VHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5z
ZmVyLUVuY29kaW5nOiA4Yml0CgpXZSdyZSBnb2luZyB0byB3YW50IGFsdGVy
bmF0aXZlLXBhdGNoIGJhc2VkIG9uIGl0LgoKTm8gZnVuY3Rpb25hbCBjaGFu
Z2UuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29v
cGVyM0BjaXRyaXguY29tPgpBY2tlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8
cm9nZXIucGF1QGNpdHJpeC5jb20+CihjaGVycnkgcGlja2VkIGZyb20gY29t
bWl0IGIwY2EwZjkzZjQ3YzQzZjg5ODQ5ODExMzdhZjA3Y2EzZDE2MWUzZWMp
CgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYyBi
L3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKaW5kZXggOGRlODliMTE3
YWEzLi40MjcyYzMzZDFjYTQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9h
Y3BpL2NwdV9pZGxlLmMKKysrIGIveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lk
bGUuYwpAQCAtNDUyLDE0ICs0NTIsOCBAQCBzdGF0aWMgaW50IF9faW5pdCBj
Zl9jaGVjayBjcHVfaWRsZV9rZXlfaW5pdCh2b2lkKQogfQogX19pbml0Y2Fs
bChjcHVfaWRsZV9rZXlfaW5pdCk7CiAKLS8qIEZvcmNlIHNlbmRpbmcgb2Yg
YSB3YWtldXAgSVBJIHJlZ2FyZGxlc3Mgb2YgbXdhaXQgdXNhZ2UuICovCi1i
b29sIF9fcm9fYWZ0ZXJfaW5pdCBmb3JjZV9td2FpdF9pcGlfd2FrZXVwOwot
CiBib29sIGFyY2hfc2tpcF9zZW5kX2V2ZW50X2NoZWNrKHVuc2lnbmVkIGlu
dCBjcHUpCiB7Ci0gICAgaWYgKCBmb3JjZV9td2FpdF9pcGlfd2FrZXVwICkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotCiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1L2ludGVsLmMgYi94
ZW4vYXJjaC94ODYvY3B1L2ludGVsLmMKaW5kZXggMDRhMDAyZTFlMGM5Li4z
Mjc0ZTBmNWU4YWYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvaW50
ZWwuYworKysgYi94ZW4vYXJjaC94ODYvY3B1L2ludGVsLmMKQEAgLTQzNiw3
ICs0MzYsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgcHJvYmVfbXdhaXRfZXJy
YXRhKHZvaWQpCiAgICAgewogICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5J
TkcKICAgICAgICAgICAgICAgICJGb3JjaW5nIElQSSBNV0FJVCB3YWtldXAg
ZHVlIHRvIENQVSBlcnJhdHVtXG4iKTsKLSAgICAgICAgZm9yY2VfbXdhaXRf
aXBpX3dha2V1cCA9IHRydWU7CisgICAgICAgIHNldHVwX2ZvcmNlX2NwdV9j
YXAoWDg2X0JVR19NT05JVE9SKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBh
L3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlcy5oIGIveGVu
L2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmVzLmgKaW5kZXggODRj
OTMyOTJjODBjLi41NjIzMWIwMGYxNWQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlcy5oCisrKyBiL3hlbi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlcy5oCkBAIC01Myw2ICs1Myw3
IEBAIFhFTl9DUFVGRUFUVVJFKFVTRV9WTUNBTEwsICAgICAgICBYODZfU1lO
VEgoMzApKSAvKiBVc2UgVk1DQUxMIGluc3RlYWQgb2YgVk1NQ0FMCiAjZGVm
aW5lIFg4Nl9CVUdfQ0xGTFVTSF9NRkVOQ0UgICAgWDg2X0JVRyggMikgLyog
TUZFTkNFIG5lZWRlZCB0byBzZXJpYWxpc2UgQ0xGTFVTSCAqLwogI2RlZmlu
ZSBYODZfQlVHX0lCUEJfTk9fUkVUICAgICAgIFg4Nl9CVUcoIDMpIC8qIElC
UEIgZG9lc24ndCBmbHVzaCB0aGUgUlNCL1JBUyAqLwogI2RlZmluZSBYODZf
QlVHX0NMRkxVU0hfTU9OSVRPUiAgIFg4Nl9CVUcoIDQpIC8qIE1PTklUT1Ig
cmVxdWlyZXMgQ0xGTFVTSCAqLworI2RlZmluZSBYODZfQlVHX01PTklUT1Ig
ICAgICAgICAgIFg4Nl9CVUcoIDUpIC8qIE1PTklUT1IgZG9lc24ndCBhbHdh
eXMgbm90aWNlIHdyaXRlcyAoZm9yY2UgSVBJcykgKi8KIAogI2RlZmluZSBY
ODZfU1BFQ19OT19MRkVOQ0VfRU5UUllfUFYgWDg2X0JVRygxNikgLyogKE5v
KSBzYWZldHkgTEZFTkNFIGZvciBTUEVDX0NUUkxfRU5UUllfUFYuICovCiAj
ZGVmaW5lIFg4Nl9TUEVDX05PX0xGRU5DRV9FTlRSWV9JTlRSIFg4Nl9CVUco
MTcpIC8qIChObykgc2FmZXR5IExGRU5DRSBmb3IgU1BFQ19DVFJMX0VOVFJZ
X0lOVFIuICovCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9h
c20vbXdhaXQuaCBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9td2FpdC5o
CmluZGV4IDk3YmYzNjE1MDVmMC4uZjM3N2Q5ZmRjYWQ0IDEwMDY0NAotLS0g
YS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vbXdhaXQuaAorKysgYi94ZW4v
YXJjaC94ODYvaW5jbHVkZS9hc20vbXdhaXQuaApAQCAtMTMsOSArMTMsNiBA
QAogCiAjZGVmaW5lIE1XQUlUX0VDWF9JTlRFUlJVUFRfQlJFQUsJMHgxCiAK
LS8qIEZvcmNlIHNlbmRpbmcgb2YgYSB3YWtldXAgSVBJIHJlZ2FyZGxlc3Mg
b2YgbXdhaXQgdXNhZ2UuICovCi1leHRlcm4gYm9vbCBmb3JjZV9td2FpdF9p
cGlfd2FrZXVwOwotCiB2b2lkIG13YWl0X2lkbGVfd2l0aF9oaW50cyh1bnNp
Z25lZCBpbnQgZWF4LCB1bnNpZ25lZCBpbnQgZWN4KTsKIGJvb2wgbXdhaXRf
cGMxMF9zdXBwb3J0ZWQodm9pZCk7CiAK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.18-10.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.18-10.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDIxOjA0OjE3ICswMTAwClN1Ympl
Y3Q6IHhlbi9zb2Z0aXJxOiBSZXdvcmsgYXJjaF9za2lwX3NlbmRfZXZlbnRf
Y2hlY2soKSBpbnRvCiBhcmNoX3NldF9zb2Z0aXJxKCkKTUlNRS1WZXJzaW9u
OiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04
CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKCng4NiBpcyB0aGUg
b25seSBhcmNoaXRlY3R1cmUgd2FudGluZyBhbiBvcHRpbWlzYXRpb24gaGVy
ZSwgYnV0IHRoZQp0ZXN0X2FuZF9zZXRfYml0KCkgaXMgYSBzdG9yZSBpbnRv
IHRoZSBtb25pdG9yZWQgbGluZSAoaS5lLiB3aWxsIHdha2UgdXAgdGhlCnRh
cmdldCkgYW5kLCBwcmlvciB0byB0aGUgcmVtb3ZhbCBvZiB0aGUgYnJva2Vu
IElQSS1lbGlzaW9uIGFsZ29yaXRobSwgd2FzCnJhY3ksIGNhdXNpbmcgdW5u
ZWNlc3NhcnkgSVBJcyB0byBiZSBzZW50LgoKVG8gZG8gdGhpcyBpbiBhIHJh
Y2UtZnJlZSB3YXksIHRoZSBzdG9yZSB0byB0aGUgbW9uaXRlZCBsaW5lIG5l
ZWRzIHRvIGFsc28Kc2FtcGxlIHRoZSBzdGF0dXMgb2YgdGhlIHRhcmdldCBp
biBvbmUgYXRvbWljIGFjdGlvbi4gIEltcGxlbWVudCBhIG5ldyBhcmNoCmhl
bHBlciB3aXRoIGRpZmZlcmVudCBzZW1hbnRpY3M7IHRvIG1ha2UgdGhlIHNv
ZnRpcnEgcGVuZGluZyBhbmQgZGVjaWRlIGFib3V0CklQSXMgdG9nZXRoZXIu
ICBGb3Igbm93LCBpbXBsZW1lbnQgdGhlIGRlZmF1bHQgaGVscGVyLiAgSXQg
d2lsbCBiZSBvdmVycmlkZGVuCmJ5IHg4NiBpbiBhIHN1YnNlcXVlbnQgY2hh
bmdlLgoKTm8gZnVuY3Rpb25hbCBjaGFuZ2UuCgpTaWduZWQtb2ZmLWJ5OiBB
bmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpSZXZp
ZXdlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5j
b20+CihjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IGI0NzNlNWUyMTJlNDQ1
ZDNjMTkzYzFjODNiNTJiMTI5YWY1NzFiMTkpCgpkaWZmIC0tZ2l0IGEveGVu
L2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYyBiL3hlbi9hcmNoL3g4Ni9hY3Bp
L2NwdV9pZGxlLmMKaW5kZXggNDI3MmMzM2QxY2E0Li40M2FiNDUzM2I3OTEg
MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKKysr
IGIveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYwpAQCAtNDUyLDExICs0
NTIsNiBAQCBzdGF0aWMgaW50IF9faW5pdCBjZl9jaGVjayBjcHVfaWRsZV9r
ZXlfaW5pdCh2b2lkKQogfQogX19pbml0Y2FsbChjcHVfaWRsZV9rZXlfaW5p
dCk7CiAKLWJvb2wgYXJjaF9za2lwX3NlbmRfZXZlbnRfY2hlY2sodW5zaWdu
ZWQgaW50IGNwdSkKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KIHZvaWQg
bXdhaXRfaWRsZV93aXRoX2hpbnRzKHVuc2lnbmVkIGludCBlYXgsIHVuc2ln
bmVkIGludCBlY3gpCiB7CiAgICAgdW5zaWduZWQgaW50IGNwdSA9IHNtcF9w
cm9jZXNzb3JfaWQoKTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9zb2Z0aXJxLmggYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20v
c29mdGlycS5oCmluZGV4IDQxNWVlODY2Yzc5ZC4uZTRiMTk0ZjA2OWZiIDEw
MDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vc29mdGlycS5o
CisrKyBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zb2Z0aXJxLmgKQEAg
LTksNiArOSw0IEBACiAjZGVmaW5lIEhWTV9EUENJX1NPRlRJUlEgICAgICAg
KE5SX0NPTU1PTl9TT0ZUSVJRUyArIDQpCiAjZGVmaW5lIE5SX0FSQ0hfU09G
VElSUVMgICAgICAgNQogCi1ib29sIGFyY2hfc2tpcF9zZW5kX2V2ZW50X2No
ZWNrKHVuc2lnbmVkIGludCBjcHUpOwotCiAjZW5kaWYgLyogX19BU01fU09G
VElSUV9IX18gKi8KZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vc29mdGlycS5j
IGIveGVuL2NvbW1vbi9zb2Z0aXJxLmMKaW5kZXggMzIxZDI2OTAyZDM3Li5l
NzMzYzhmNzRiNDQgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vc29mdGlycS5j
CisrKyBiL3hlbi9jb21tb24vc29mdGlycS5jCkBAIC05NCw5ICs5NCw3IEBA
IHZvaWQgY3B1bWFza19yYWlzZV9zb2Z0aXJxKGNvbnN0IGNwdW1hc2tfdCAq
bWFzaywgdW5zaWduZWQgaW50IG5yKQogICAgICAgICByYWlzZV9tYXNrID0g
JnBlcl9jcHUoYmF0Y2hfbWFzaywgdGhpc19jcHUpOwogCiAgICAgZm9yX2Vh
Y2hfY3B1KGNwdSwgbWFzaykKLSAgICAgICAgaWYgKCAhdGVzdF9hbmRfc2V0
X2JpdChuciwgJnNvZnRpcnFfcGVuZGluZyhjcHUpKSAmJgotICAgICAgICAg
ICAgIGNwdSAhPSB0aGlzX2NwdSAmJgotICAgICAgICAgICAgICFhcmNoX3Nr
aXBfc2VuZF9ldmVudF9jaGVjayhjcHUpICkKKyAgICAgICAgaWYgKCAhYXJj
aF9zZXRfc29mdGlycShuciwgY3B1KSAmJiBjcHUgIT0gdGhpc19jcHUgKQog
ICAgICAgICAgICAgX19jcHVtYXNrX3NldF9jcHUoY3B1LCByYWlzZV9tYXNr
KTsKIAogICAgIGlmICggcmFpc2VfbWFzayA9PSAmc2VuZF9tYXNrICkKQEAg
LTEwNyw5ICsxMDUsNyBAQCB2b2lkIGNwdV9yYWlzZV9zb2Z0aXJxKHVuc2ln
bmVkIGludCBjcHUsIHVuc2lnbmVkIGludCBucikKIHsKICAgICB1bnNpZ25l
ZCBpbnQgdGhpc19jcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7CiAKLSAgICBp
ZiAoIHRlc3RfYW5kX3NldF9iaXQobnIsICZzb2Z0aXJxX3BlbmRpbmcoY3B1
KSkKLSAgICAgICAgIHx8IChjcHUgPT0gdGhpc19jcHUpCi0gICAgICAgICB8
fCBhcmNoX3NraXBfc2VuZF9ldmVudF9jaGVjayhjcHUpICkKKyAgICBpZiAo
IGFyY2hfc2V0X3NvZnRpcnEobnIsIGNwdSkgfHwgY3B1ID09IHRoaXNfY3B1
ICkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKCAhcGVyX2NwdShiYXRj
aGluZywgdGhpc19jcHUpIHx8IGluX2lycSgpICkKZGlmZiAtLWdpdCBhL3hl
bi9pbmNsdWRlL3hlbi9zb2Z0aXJxLmggYi94ZW4vaW5jbHVkZS94ZW4vc29m
dGlycS5oCmluZGV4IDMzZDZmMmVjZDIyMy4uNWMyMzYxODY1YjQ5IDEwMDY0
NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vc29mdGlycS5oCisrKyBiL3hlbi9p
bmNsdWRlL3hlbi9zb2Z0aXJxLmgKQEAgLTIxLDYgKzIxLDIyIEBAIGVudW0g
ewogCiAjZGVmaW5lIE5SX1NPRlRJUlFTIChOUl9DT01NT05fU09GVElSUVMg
KyBOUl9BUkNIX1NPRlRJUlFTKQogCisvKgorICogRW5zdXJlIHNvZnRpcnEg
QG5yIGlzIHBlbmRpbmcgb24gQGNwdS4gIFJldHVybiB0cnVlIGlmIGFuIElQ
SSBjYW4gYmUKKyAqIHNraXBwZWQsIGZhbHNlIGlmIHRoZSBJUEkgY2Fubm90
IGJlIHNraXBwZWQuCisgKi8KKyNpZm5kZWYgYXJjaF9zZXRfc29mdGlycQor
c3RhdGljIGFsd2F5c19pbmxpbmUgYm9vbCBhcmNoX3NldF9zb2Z0aXJxKHVu
c2lnbmVkIGludCBuciwgdW5zaWduZWQgaW50IGNwdSkKK3sKKyAgICAvKgor
ICAgICAqIFRyeSB0byBzZXQgdGhlIHNvZnRpcnEgcGVuZGluZy4gIElmIHdl
IHNldCB0aGUgYml0IChpLmUuIHRoZSBvbGQgYml0CisgICAgICogd2FzIDAp
LCB3ZSdyZSByZXNwb25zaWJsZSB0byBzZW5kIHRoZSBJUEkuICBJZiB0aGUg
c29mdGlycSB3YXMgYWxyZWFkeQorICAgICAqIHBlbmRpbmcgKGkuZS4gdGhl
IG9sZCBiaXQgd2FzIDEpLCBubyBJUEkgaXMgbmVlZGVkLgorICAgICAqLwor
ICAgIHJldHVybiB0ZXN0X2FuZF9zZXRfYml0KG5yLCAmc29mdGlycV9wZW5k
aW5nKGNwdSkpOworfQorI2VuZGlmCisKIHR5cGVkZWYgdm9pZCAoKnNvZnRp
cnFfaGFuZGxlcikodm9pZCk7CiAKIHZvaWQgZG9fc29mdGlycSh2b2lkKTsK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.18-11.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.18-11.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDIxOjI2OjI0ICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBJbXBsZW1lbnQgYSBuZXcgTVdBSVQgSVBJLWVsaXNp
b24gYWxnb3JpdGhtCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTog
dGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVu
Y29kaW5nOiA4Yml0CgpJbiBvcmRlciBlbGlkZSBJUElzLCB3ZSBtdXN0IGJl
IGFibGUgdG8gaWRlbnRpZnkgd2hldGhlciBhIHRhcmdldCBDUFUgaXMgaW4K
TVdBSVQgYXQgdGhlIHBvaW50IGl0IGlzIHdva2VuIHVwLiAgaS5lLiB0aGUg
c3RvcmUgdG8gd2FrZSBpdCB1cCBtdXN0IGFsc28KaWRlbnRpZnkgdGhlIHN0
YXRlLgoKQ3JlYXRlIGEgbmV3IGluX213YWl0IHZhcmlhYmxlIGJlc2lkZSBf
X3NvZnRpcnFfcGVuZGluZywgc28gd2UgY2FuIHVzZSBhCkNNUFhDSEcgdG8g
c2V0IHRoZSBzb2Z0aXJxIHdoaWxlIGFsc28gb2JzZXJ2aW5nIHRoZSBzdGF0
dXMgc2FmZWx5LiAgSW1wbGVtZW50CmFuIHg4NiB2ZXJzaW9uIG9mIGFyY2hf
cGVuZF9zb2Z0aXJxKCkgd2hpY2ggZG9lcyB0aGlzLgoKSW4gbXdhaXRfaWRs
ZV93aXRoX2hpbnRzKCksIGFkdmVydGlzZSBpbl9td2FpdCwgd2l0aCBhbiBl
eHBsYW5hdGlvbiBvZgpwcmVjaXNlbHkgd2hhdCBpdCBtZWFucy4gIFg4Nl9C
VUdfTU9OSVRPUiBjYW4gYmUgYWNjb3VudGVkIGZvciBzaW1wbHkgYnkgbm90
CmFkdmVydGlzaW5nIGluX213YWl0LgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3
IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KQWNrZWQtYnk6
IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgooY2hl
cnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCAzZTBiYzRiNTAzNTBiZDM1NzMwNGZk
NzlhNWRjMDQ3Mjc5MGRiYTkxKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4
Ni9hY3BpL2NwdV9pZGxlLmMgYi94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRs
ZS5jCmluZGV4IDQzYWI0NTMzYjc5MS4uYmU3NjdhMmM2NjhmIDEwMDY0NAot
LS0gYS94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jCisrKyBiL3hlbi9h
cmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKQEAgLTQ1NSw3ICs0NTUsMjEgQEAg
X19pbml0Y2FsbChjcHVfaWRsZV9rZXlfaW5pdCk7CiB2b2lkIG13YWl0X2lk
bGVfd2l0aF9oaW50cyh1bnNpZ25lZCBpbnQgZWF4LCB1bnNpZ25lZCBpbnQg
ZWN4KQogewogICAgIHVuc2lnbmVkIGludCBjcHUgPSBzbXBfcHJvY2Vzc29y
X2lkKCk7Ci0gICAgY29uc3QgdW5zaWduZWQgaW50ICp0aGlzX3NvZnRpcnFf
cGVuZGluZyA9ICZzb2Z0aXJxX3BlbmRpbmcoY3B1KTsKKyAgICBpcnFfY3B1
c3RhdF90ICpzdGF0ID0gJmlycV9zdGF0W2NwdV07CisgICAgY29uc3QgdW5z
aWduZWQgaW50ICp0aGlzX3NvZnRpcnFfcGVuZGluZyA9ICZzdGF0LT5fX3Nv
ZnRpcnFfcGVuZGluZzsKKworICAgIC8qCisgICAgICogQnkgc2V0dGluZyBp
bl9td2FpdCwgd2UgcHJvbWlzZSB0byBvdGhlciBDUFVzIHRoYXQgd2UnbGwg
bm90aWNlIGNoYW5nZXMKKyAgICAgKiB0byBfX3NvZnRpcnFfcGVuZGluZyB3
aXRob3V0IGJlaW5nIHNlbnQgYW4gSVBJLiAgV2UgYWNoaWV2ZSB0aGlzIGJ5
CisgICAgICogZWl0aGVyIG5vdCBnb2luZyB0byBzbGVlcCwgb3IgYnkgaGF2
aW5nIGhhcmR3YXJlIG5vdGljZSBvbiBvdXIgYmVoYWxmLgorICAgICAqCisg
ICAgICogU29tZSBlcnJhdGEgZXhpc3Qgd2hlcmUgTU9OSVRPUiBkb2Vzbid0
IHdvcmsgcHJvcGVybHksIGFuZCB0aGUKKyAgICAgKiB3b3JrYXJvdW5kIGlz
IHRvIGZvcmNlIHRoZSB1c2Ugb2YgYW4gSVBJLiAgQ2F1c2UgdGhpcyB0byBo
YXBwZW4gYnkKKyAgICAgKiBzaW1wbHkgbm90IGFkdmVydGlzaW5nIG91cnNl
bHZlcyBhcyBiZWluZyBpbl9td2FpdC4KKyAgICAgKi8KKyAgICBhbHRlcm5h
dGl2ZV9pbygibW92YiAkMSwgJVtpbl9td2FpdF0iLAorICAgICAgICAgICAg
ICAgICAgICIiLCBYODZfQlVHX01PTklUT1IsCisgICAgICAgICAgICAgICAg
ICAgW2luX213YWl0XSAiPW0iIChzdGF0LT5pbl9td2FpdCkpOwogCiAgICAg
bW9uaXRvcih0aGlzX3NvZnRpcnFfcGVuZGluZywgMCwgMCk7CiAKQEAgLTQ2
Nyw2ICs0ODEsMTAgQEAgdm9pZCBtd2FpdF9pZGxlX3dpdGhfaGludHModW5z
aWduZWQgaW50IGVheCwgdW5zaWduZWQgaW50IGVjeCkKICAgICAgICAgbXdh
aXQoZWF4LCBlY3gpOwogICAgICAgICBzcGVjX2N0cmxfZXhpdF9pZGxlKGlu
Zm8pOwogICAgIH0KKworICAgIGFsdGVybmF0aXZlX2lvKCJtb3ZiICQwLCAl
W2luX213YWl0XSIsCisgICAgICAgICAgICAgICAgICAgIiIsIFg4Nl9CVUdf
TU9OSVRPUiwKKyAgICAgICAgICAgICAgICAgICBbaW5fbXdhaXRdICI9bSIg
KHN0YXQtPmluX213YWl0KSk7CiB9CiAKIHN0YXRpYyB2b2lkIGFjcGlfcHJv
Y2Vzc29yX2ZmaF9jc3RhdGVfZW50ZXIoc3RydWN0IGFjcGlfcHJvY2Vzc29y
X2N4ICpjeCkKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9oYXJkaXJxLmggYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaGFyZGly
cS5oCmluZGV4IGYzZTkzY2M5YjUwNy4uMTY0N2NmZjA0ZGM4IDEwMDY0NAot
LS0gYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaGFyZGlycS5oCisrKyBi
L3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9oYXJkaXJxLmgKQEAgLTUsNyAr
NSwxOSBAQAogI2luY2x1ZGUgPHhlbi90eXBlcy5oPgogCiB0eXBlZGVmIHN0
cnVjdCB7Ci0gICAgdW5zaWduZWQgaW50IF9fc29mdGlycV9wZW5kaW5nOwor
ICAgIC8qCisgICAgICogVGhlIGxheW91dCBpcyBpbXBvcnRhbnQuICBBbnkg
Q1BVIGNhbiBzZXQgYml0cyBpbiBfX3NvZnRpcnFfcGVuZGluZywKKyAgICAg
KiBidXQgaW5fbXdhaXQgaXMgYSBzdGF0dXMgYml0IG93bmVkIGJ5IHRoZSBD
UFUuICBzb2Z0aXJxX213YWl0X3JhdyBtdXN0CisgICAgICogY292ZXIgYm90
aCwgYW5kIG11c3QgYmUgaW4gYSBzaW5nbGUgY2FjaGVsaW5lLgorICAgICAq
LworICAgIHVuaW9uIHsKKyAgICAgICAgc3RydWN0IHsKKyAgICAgICAgICAg
IHVuc2lnbmVkIGludCBfX3NvZnRpcnFfcGVuZGluZzsKKyAgICAgICAgICAg
IGJvb2wgaW5fbXdhaXQ7CisgICAgICAgIH07CisgICAgICAgIHVpbnQ2NF90
IHNvZnRpcnFfbXdhaXRfcmF3OworICAgIH07CisKICAgICB1bnNpZ25lZCBp
bnQgX19sb2NhbF9pcnFfY291bnQ7CiAgICAgdW5zaWduZWQgaW50IG5taV9j
b3VudDsKICAgICB1bnNpZ25lZCBpbnQgbWNlX2NvdW50OwpkaWZmIC0tZ2l0
IGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NvZnRpcnEuaCBiL3hlbi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9zb2Z0aXJxLmgKaW5kZXggZTRiMTk0ZjA2
OWZiLi41NWI2NWM5NzQ3YjEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9zb2Z0aXJxLmgKKysrIGIveGVuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL3NvZnRpcnEuaApAQCAtMSw2ICsxLDggQEAKICNpZm5kZWYgX19B
U01fU09GVElSUV9IX18KICNkZWZpbmUgX19BU01fU09GVElSUV9IX18KIAor
I2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4KKwogI2RlZmluZSBOTUlfU09GVElS
USAgICAgICAgICAgIChOUl9DT01NT05fU09GVElSUVMgKyAwKQogI2RlZmlu
ZSBUSU1FX0NBTElCUkFURV9TT0ZUSVJRIChOUl9DT01NT05fU09GVElSUVMg
KyAxKQogI2RlZmluZSBWQ1BVX0tJQ0tfU09GVElSUSAgICAgIChOUl9DT01N
T05fU09GVElSUVMgKyAyKQpAQCAtOSw0ICsxMSw1MCBAQAogI2RlZmluZSBI
Vk1fRFBDSV9TT0ZUSVJRICAgICAgIChOUl9DT01NT05fU09GVElSUVMgKyA0
KQogI2RlZmluZSBOUl9BUkNIX1NPRlRJUlFTICAgICAgIDUKIAorLyoKKyAq
IEVuc3VyZSBzb2Z0aXJxIEBuciBpcyBwZW5kaW5nIG9uIEBjcHUuICBSZXR1
cm4gdHJ1ZSBpZiBhbiBJUEkgY2FuIGJlCisgKiBza2lwcGVkLCBmYWxzZSBp
ZiB0aGUgSVBJIGNhbm5vdCBiZSBza2lwcGVkLgorICoKKyAqIFdlIHVzZSBh
IENNUFhDSEcgY292ZXJpbmcgYm90aCBfX3NvZnRpcnFfcGVuZGluZyBhbmQg
aW5fbXdhaXQsIGluIG9yZGVyIHRvCisgKiBzZXQgc29mdGlycSBAbnIgd2hp
bGUgYWxzbyBvYnNlcnZpbmcgaW5fbXdhaXQgaW4gYSByYWNlLWZyZWUgd2F5
LgorICovCitzdGF0aWMgYWx3YXlzX2lubGluZSBib29sIGFyY2hfc2V0X3Nv
ZnRpcnEodW5zaWduZWQgaW50IG5yLCB1bnNpZ25lZCBpbnQgY3B1KQorewor
ICAgIHVpbnQ2NF90ICpwdHIgPSAmaXJxX3N0YXRbY3B1XS5zb2Z0aXJxX213
YWl0X3JhdzsKKyAgICB1aW50NjRfdCBwcmV2LCBvbGQsIG5ldzsKKyAgICB1
bnNpZ25lZCBpbnQgc29mdGlycSA9IDFVIDw8IG5yOworCisgICAgb2xkID0g
QUNDRVNTX09OQ0UoKnB0cik7CisKKyAgICBmb3IgKCA7OyApCisgICAgewor
ICAgICAgICBpZiAoIG9sZCAmIHNvZnRpcnEgKQorICAgICAgICAgICAgLyog
U29mdGlycSBhbHJlYWR5IHBlbmRpbmcsIG5vdGhpbmcgdG8gZG8uICovCisg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICBuZXcgPSBvbGQg
fCBzb2Z0aXJxOworCisgICAgICAgIHByZXYgPSBjbXB4Y2hnKHB0ciwgb2xk
LCBuZXcpOworICAgICAgICBpZiAoIHByZXYgPT0gb2xkICkKKyAgICAgICAg
ICAgIGJyZWFrOworCisgICAgICAgIG9sZCA9IHByZXY7CisgICAgfQorCisg
ICAgLyoKKyAgICAgKiBXZSBoYXZlIGNhdXNlZCB0aGUgc29mdGlycSB0byBi
ZWNvbWUgcGVuZGluZy4gIElmIGluX213YWl0IHdhcyBzZXQsIHRoZQorICAg
ICAqIHRhcmdldCBDUFUgd2lsbCBub3RpY2UgdGhlIG1vZGlmaWNhdGlvbiBh
bmQgYWN0IG9uIGl0LgorICAgICAqCisgICAgICogV2UgY2FuJ3QgYWNjZXNz
IHRoZSBpbl9td2FpdCBmaWVsZCBuaWNlbHksIHNvIHVzZSBzb21lIEJVSUxE
X0JVR19PTigpJ3MKKyAgICAgKiB0byBjcm9zcy1jaGVjayB0aGUgKDFVTCA8
PCAzMikgb3BlbmNvZGluZy4KKyAgICAgKi8KKyAgICBCVUlMRF9CVUdfT04o
c2l6ZW9mKGlycV9zdGF0WzBdLnNvZnRpcnFfbXdhaXRfcmF3KSAhPSA4KTsK
KyAgICBCVUlMRF9CVUdfT04oKG9mZnNldG9mKGlycV9jcHVzdGF0X3QsIGlu
X213YWl0KSAtCisgICAgICAgICAgICAgICAgICBvZmZzZXRvZihpcnFfY3B1
c3RhdF90LCBzb2Z0aXJxX213YWl0X3JhdykpICE9IDQpOworCisgICAgcmV0
dXJuIG5ldyAmICgxVUwgPDwgMzIpIC8qIGluX213YWl0ICovOworCit9Cisj
ZGVmaW5lIGFyY2hfc2V0X3NvZnRpcnEgYXJjaF9zZXRfc29mdGlycQorCiAj
ZW5kaWYgLyogX19BU01fU09GVElSUV9IX18gKi8K

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.18-12.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.18-12.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogV2VkLCAyIEp1bCAyMDI1IDE0OjUxOjM4ICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBGaXggYnVnZ3kgIng4Ni9td2FpdC1pZGxlOiBlbmFi
bGUgaW50ZXJydXB0cyBiZWZvcmUgQzEgb24KIFhlb25zIgoKVGhlIGNoZWNr
IG9mIHRoaXNfc29mdGlycV9wZW5kaW5nIG11c3QgYmUgcGVyZm9ybWVkIHdp
dGggaXJxcyBkaXNhYmxlZCwgYnV0CnRoaXMgcHJvcGVydHkgd2FzIGJyb2tl
biBieSBhbiBhdHRlbXB0IHRvIG9wdGltaXNlIGVudHJ5L2V4aXQgbGF0ZW5j
eS4KCkNvbW1pdCBjMjI3MjMzYWQ2NGMgaW4gTGludXggKHdoaWNoIHdlIGNv
cGllZCBpbnRvIFhlbikgd2FzIGZpeGVkIHVwIGJ5CmVkYzhmYzAxZjYwOCBp
biBMaW51eCwgd2hpY2ggd2UgaGF2ZSBzbyBmYXIgbWlzc2VkLgoKR29pbmcg
dG8gc2xlZXAgd2l0aG91dCB3YWtpbmcgb24gaW50ZXJydXB0cyBpcyBub25z
ZW5zaWNhbCBvdXRzaWRlIG9mCnBsYXlfZGVhZCgpLCBzbyBvdmVybG9hZCB0
aGlzIHRvIHNlbGVjdCBiZXR3ZWVuIHR3byBwb3NzaWJsZSBNV0FJVHMsIHRo
ZQpzZWNvbmQgdXNpbmcgdGhlIFNUSSBzaGFkb3cgdG8gY292ZXIgTVdBSVQg
Zm9yIGV4YWN0bHkgdGhlIHNhbWUgcmVhc29uIGFzIHdlCmRvIGluIHNhZmVf
aGFsdCgpLgoKRml4ZXM6IGIxN2UwZWM3MmVkZSAoIng4Ni9td2FpdC1pZGxl
OiBlbmFibGUgaW50ZXJydXB0cyBiZWZvcmUgQzEgb24gWGVvbnMiKQpTaWdu
ZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRy
aXguY29tPgpSZXZpZXdlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1
c2UuY29tPgooY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA5YjBmMGY2ZTIz
NTYxOGMyNzY0ZTkyNWI1OGM0YmZlNDEyNzMwY2VkKQoKZGlmZiAtLWdpdCBh
L3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMgYi94ZW4vYXJjaC94ODYv
YWNwaS9jcHVfaWRsZS5jCmluZGV4IGJlNzY3YTJjNjY4Zi4uMTU4OTMyNWJh
YTU2IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5j
CisrKyBiL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKQEAgLTc5LDYg
Kzc5LDEzIEBAIHN0YXRpYyBhbHdheXNfaW5saW5lIHZvaWQgbXdhaXQodW5z
aWduZWQgaW50IGVheCwgdW5zaWduZWQgaW50IGVjeCkKICAgICAgICAgICAg
ICAgICAgICA6OiAiYSIgKGVheCksICJjIiAoZWN4KSApOwogfQogCitzdGF0
aWMgYWx3YXlzX2lubGluZSB2b2lkIHN0aV9td2FpdF9jbGkodW5zaWduZWQg
aW50IGVheCwgdW5zaWduZWQgaW50IGVjeCkKK3sKKyAgICAvKiBTVEkgc2hh
ZG93IGNvdmVycyBNV0FJVC4gKi8KKyAgICBhc20gdm9sYXRpbGUgKCAic3Rp
OyBtd2FpdDsgY2xpIgorICAgICAgICAgICAgICAgICAgIDo6ICJhIiAoZWF4
KSwgImMiIChlY3gpICk7Cit9CisKICNkZWZpbmUgR0VUX0hXX1JFU19JTl9O
Uyhtc3IsIHZhbCkgXAogICAgIGRvIHsgcmRtc3JsKG1zciwgdmFsKTsgdmFs
ID0gdHNjX3RpY2tzMm5zKHZhbCk7IH0gd2hpbGUoIDAgKQogI2RlZmluZSBH
RVRfTUM2X1JFUyh2YWwpICBHRVRfSFdfUkVTX0lOX05TKDB4NjY0LCB2YWwp
CkBAIC00NzMsMTIgKzQ4MCwxOSBAQCB2b2lkIG13YWl0X2lkbGVfd2l0aF9o
aW50cyh1bnNpZ25lZCBpbnQgZWF4LCB1bnNpZ25lZCBpbnQgZWN4KQogCiAg
ICAgbW9uaXRvcih0aGlzX3NvZnRpcnFfcGVuZGluZywgMCwgMCk7CiAKKyAg
ICBBU1NFUlQoIWxvY2FsX2lycV9pc19lbmFibGVkKCkpOworCiAgICAgaWYg
KCAhKnRoaXNfc29mdGlycV9wZW5kaW5nICkKICAgICB7CiAgICAgICAgIHN0
cnVjdCBjcHVfaW5mbyAqaW5mbyA9IGdldF9jcHVfaW5mbygpOwogCiAgICAg
ICAgIHNwZWNfY3RybF9lbnRlcl9pZGxlKGluZm8pOwotICAgICAgICBtd2Fp
dChlYXgsIGVjeCk7CisKKyAgICAgICAgaWYgKCBlY3ggJiBNV0FJVF9FQ1hf
SU5URVJSVVBUX0JSRUFLICkKKyAgICAgICAgICAgIG13YWl0KGVheCwgZWN4
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc3RpX213YWl0X2NsaShl
YXgsIGVjeCk7CisKICAgICAgICAgc3BlY19jdHJsX2V4aXRfaWRsZShpbmZv
KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9jcHUvbXdh
aXQtaWRsZS5jIGIveGVuL2FyY2gveDg2L2NwdS9td2FpdC1pZGxlLmMKaW5k
ZXggZTk1ZmU1ZDg4OTA3Li44OTY3ZmIxZjZmMzYgMTAwNjQ0Ci0tLSBhL3hl
bi9hcmNoL3g4Ni9jcHUvbXdhaXQtaWRsZS5jCisrKyBiL3hlbi9hcmNoL3g4
Ni9jcHUvbXdhaXQtaWRsZS5jCkBAIC05NjIsMTIgKzk2Miw4IEBAIHN0YXRp
YyB2b2lkIGNmX2NoZWNrIG13YWl0X2lkbGUodm9pZCkKIAogCXVwZGF0ZV9s
YXN0X2N4X3N0YXQocG93ZXIsIGN4LCBiZWZvcmUpOwogCi0JaWYgKGN4LT5p
cnFfZW5hYmxlX2Vhcmx5KQotCQlsb2NhbF9pcnFfZW5hYmxlKCk7Ci0KLQlt
d2FpdF9pZGxlX3dpdGhfaGludHMoY3gtPmFkZHJlc3MsIE1XQUlUX0VDWF9J
TlRFUlJVUFRfQlJFQUspOwotCi0JbG9jYWxfaXJxX2Rpc2FibGUoKTsKKwlt
d2FpdF9pZGxlX3dpdGhfaGludHMoY3gtPmFkZHJlc3MsCisJCQkgICAgICBj
eC0+aXJxX2VuYWJsZV9lYXJseSA/IDAgOiBNV0FJVF9FQ1hfSU5URVJSVVBU
X0JSRUFLKTsKIAogCWFmdGVyID0gYWx0ZXJuYXRpdmVfY2FsbChjcHVpZGxl
X2dldF90aWNrKTsKIAo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.18-13.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.18-13.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogRnJpLCA0IEp1bCAyMDI1IDE3OjUzOjE1ICswMTAwClN1Ympl
Y3Q6IHg4Ni94ZW4tY3B1aWQ6IEZpeCBiYWNrcG9ydHMgb2YgbmV3IGZlYXR1
cmVzCgpYZW4gNC4xOCBkb2Vzbid0IGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUg
ZmVhdHVyZSBuYW1lcyBsaWtlIFhlbiA0LjE5IGRvZXMsIGFuZAp0aGVzZSBo
dW5rcyB3ZXJlIG1pc3NlZCBvbiBwcmlvciBzZWN1cml0eSBmaXhlcy4KCkZp
eGVzOiA4YmNlZDlhMTVjOGMgKCJ4ODYvc3BlYy1jdHJsOiBTdXBwb3J0IGZv
ciBTUlNPX1UvU19OTyBhbmQgU1JTT19NU1JfRklYIikKRml4ZXM6IGYxMzJj
ODJmYTY1ZCAoIng4Ni9zcGVjLWN0cmw6IFN5bnRoZXNpc2UgSVRTX05PIHRv
IGd1ZXN0cyBvbiB1bmFmZmVjdGVkIGhhcmR3YXJlIikKRml4ZXM6IGRiYTA1
NTY2MTI5MiAoIng4Ni9zcGVjLWN0cmw6IFN1cHBvcnQgSW50ZWwncyBuZXcg
UEItT1BUIikKU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3
LmNvb3BlcjNAY2l0cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEphbiBCZXVsaWNo
IDxqYmV1bGljaEBzdXNlLmNvbT4KCmRpZmYgLS1naXQgYS90b29scy9taXNj
L3hlbi1jcHVpZC5jIGIvdG9vbHMvbWlzYy94ZW4tY3B1aWQuYwppbmRleCA1
MmU0NTFhODA2YzEuLjZiZDMxZjFlMTU2YyAxMDA2NDQKLS0tIGEvdG9vbHMv
bWlzYy94ZW4tY3B1aWQuYworKysgYi90b29scy9taXNjL3hlbi1jcHVpZC5j
CkBAIC0yMDUsNiArMjA1LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0
IHN0cl9lMjFhWzMyXSA9CiAKICAgICAvKiAyNiAqLyAgICAgICAgICAgICAg
ICBbMjddID0gInNicGIiLAogICAgIFsyOF0gPSAiaWJwYi1icnR5cGUiLCAg
IFsyOV0gPSAic3Jzby1ubyIsCisgICAgWzMwXSA9ICJzcnNvLXVzLW5vIiwg
ICAgWzMxXSA9ICJzcnNvLW1zci1maXgiLAogfTsKIAogc3RhdGljIGNvbnN0
IGNoYXIgKmNvbnN0IHN0cl83YjFbMzJdID0KQEAgLTIzMCw3ICsyMzEsNyBA
QCBzdGF0aWMgY29uc3QgY2hhciAqY29uc3Qgc3RyXzdkMlszMl0gPQogICAg
IFsgNF0gPSAiYmhpLWN0cmwiLCAgICAgIFsgNV0gPSAibWNkdC1ubyIsCiB9
OwogCi1zdGF0aWMgY29uc3QgY2hhciAqY29uc3Qgc3RyX20xMEFsWzMyXSA9
CitzdGF0aWMgY29uc3QgY2hhciAqY29uc3Qgc3RyX20xMEFsWzY0XSA9CiB7
CiAgICAgWyAwXSA9ICJyZGNsLW5vIiwgICAgICAgICAgICAgWyAxXSA9ICJl
aWJycyIsCiAgICAgWyAyXSA9ICJyc2JhIiwgICAgICAgICAgICAgICAgWyAz
XSA9ICJza2lwLWwxZGZsIiwKQEAgLTI0NywxMCArMjQ4LDEwIEBAIHN0YXRp
YyBjb25zdCBjaGFyICpjb25zdCBzdHJfbTEwQWxbMzJdID0KICAgICBbMjRd
ID0gInBicnNiLW5vIiwgICAgICAgICAgICBbMjVdID0gImdkcy1jdHJsIiwK
ICAgICBbMjZdID0gImdkcy1ubyIsICAgICAgICAgICAgICBbMjddID0gInJm
ZHMtbm8iLAogICAgIFsyOF0gPSAicmZkcy1jbGVhciIsCi19OwogCi1zdGF0
aWMgY29uc3QgY2hhciAqY29uc3Qgc3RyX20xMEFoWzMyXSA9Ci17CisgICAg
WzMyXSA9ICJwYi1vcHQtY3RybCIsCisKKyAgICBbNjJdID0gIml0cy1ubyIs
CiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHsKQEAgLTI3Niw3ICsyNzcs
NyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHsKICAgICB7ICJDUFVJRCAweDAw
MDAwMDA3OjEuZWN4IiwgICAgICI3YzEiLCBzdHJfN2MxIH0sCiAgICAgeyAi
Q1BVSUQgMHgwMDAwMDAwNzoxLmVkeCIsICAgICAiN2QxIiwgc3RyXzdkMSB9
LAogICAgIHsgIk1TUl9BUkNIX0NBUFMubG8iLCAgICAgICAgICJtMTBBbCIs
IHN0cl9tMTBBbCB9LAotICAgIHsgIk1TUl9BUkNIX0NBUFMuaGkiLCAgICAg
ICAgICJtMTBBaCIsIHN0cl9tMTBBaCB9LAorICAgIHsgIk1TUl9BUkNIX0NB
UFMuaGkiLCAgICAgICAgICJtMTBBaCIsIHN0cl9tMTBBbCArIDMyIH0sCiB9
OwogCiAjZGVmaW5lIENPTF9BTElHTiAiMjQiCg==

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.18-14.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.18-14.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogRnJpLCAyNyBKdW4gMjAyNSAxNzoxOToxOSArMDEwMApTdWJq
ZWN0OiB4ODYvY3B1LXBvbGljeTogUmVhcnJhbmdlIGd1ZXN0X2NvbW1vbl8q
X2ZlYXR1cmVfYWRqdXN0bWVudHMoKQoKVHVybiB0aGUgaWYoKXMgaW50byBz
d2l0Y2goKWVzLCBhcyB3ZSdyZSBnb2luZyB0byBuZWVkIEFNRCBzZWN0aW9u
cy4KCk1vdmUgdGhlIFJUTSBhZGp1c3RtZW50cyBpbnRvIHRoZSBJbnRlbCBz
ZWN0aW9uLCB3aGVyZSB0aGV5IG91Z2h0IHRvIGxpdmUuCgpObyBmdW5jdGlv
bmFsIGNoYW5nZS4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFu
ZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5OiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+CgpkaWZmIC0tZ2l0IGEveGVuL2Fy
Y2gveDg2L2NwdS1wb2xpY3kuYyBiL3hlbi9hcmNoL3g4Ni9jcHUtcG9saWN5
LmMKaW5kZXggOGYzMzJmZGJkOWFlLi4zNmQzNmVhNjBlNjEgMTAwNjQ0Ci0t
LSBhL3hlbi9hcmNoL3g4Ni9jcHUtcG9saWN5LmMKKysrIGIveGVuL2FyY2gv
eDg2L2NwdS1wb2xpY3kuYwpAQCAtNDQzLDggKzQ0Myw5IEBAIHN0YXRpYyB2
b2lkIF9faW5pdCBndWVzdF9jb21tb25fZGVmYXVsdF9sZWF2ZXMoc3RydWN0
IGNwdV9wb2xpY3kgKnApCiAKIHN0YXRpYyB2b2lkIF9faW5pdCBndWVzdF9j
b21tb25fbWF4X2ZlYXR1cmVfYWRqdXN0bWVudHModWludDMyX3QgKmZzKQog
ewotICAgIGlmICggYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yID09IFg4Nl9W
RU5ET1JfSU5URUwgKQorICAgIHN3aXRjaCAoIGJvb3RfY3B1X2RhdGEueDg2
X3ZlbmRvciApCiAgICAgeworICAgIGNhc2UgWDg2X1ZFTkRPUl9JTlRFTDoK
ICAgICAgICAgLyoKICAgICAgICAgICogTVNSX0FSQ0hfQ0FQUyBpcyBqdXN0
IGZlYXR1cmUgZGF0YSwgYW5kIHdlIGNhbiBvZmZlciBpdCB0byBndWVzdHMK
ICAgICAgICAgICogdW5jb25kaXRpb25hbGx5LCBhbHRob3VnaCBsaW1pdCBp
dCB0byBJbnRlbCBzeXN0ZW1zIGFzIGl0IGlzIGhpZ2hseQpAQCAtNDg5LDYg
KzQ5MCwyMiBAQCBzdGF0aWMgdm9pZCBfX2luaXQgZ3Vlc3RfY29tbW9uX21h
eF9mZWF0dXJlX2FkanVzdG1lbnRzKHVpbnQzMl90ICpmcykKICAgICAgICAg
ICAgICBib290X2NwdV9kYXRhLng4Nl9tb2RlbCA9PSBJTlRFTF9GQU02X1NL
WUxBS0VfWCAmJgogICAgICAgICAgICAgIHJhd19jcHVfcG9saWN5LmZlYXQu
Y2x3YiApCiAgICAgICAgICAgICBfX3NldF9iaXQoWDg2X0ZFQVRVUkVfQ0xX
QiwgZnMpOworCisgICAgICAgIC8qCisgICAgICAgICAqIFRvIG1pdGlnYXRl
IE5hdGl2ZS1CSEksIG9uZSBvcHRpb24gaXMgdG8gdXNlIGEgVFNYIEFib3J0
IG9uIGNhcGFibGUKKyAgICAgICAgICogc3lzdGVtcy4gIFRoaXMgaXMgc2Fm
ZSBldmVuIGlmIFJUTSBoYXMgYmVlbiBkaXNhYmxlZCBmb3Igb3RoZXIKKyAg
ICAgICAgICogcmVhc29ucyB2aWEgTVNSX1RTWF97Q1RSTCxGT1JDRV9BQk9S
VH0uICBIb3dldmVyLCBhIGd1ZXN0IGtlcm5lbAorICAgICAgICAgKiBkb2Vz
bid0IGdldCB0byBrbm93IHRoaXMgdHlwZSBvZiBpbmZvcm1hdGlvbi4KKyAg
ICAgICAgICoKKyAgICAgICAgICogVGhlcmVmb3JlIHRoZSBtZWFuaW5nIG9m
IFJUTV9BTFdBWVNfQUJPUlQgaGFzIGJlZW4gYWRqdXN0ZWQsIHRvCisgICAg
ICAgICAqIGluc3RlYWQgbWVhbiAiWEJFR0lOIHdvbid0IGZhdWx0Ii4gIFRo
aXMgaXMgZW5vdWdoIGZvciBhIGd1ZXN0CisgICAgICAgICAqIGtlcm5lbCB0
byBtYWtlIGFuIGluZm9ybWVkIGNob2ljZSBXUlQgbWl0aWdhdGluZyBOYXRp
dmUtQkhJLgorICAgICAgICAgKgorICAgICAgICAgKiBJZiBSVE0tY2FwYWJs
ZSwgd2UgY2FuIHJ1biBhIFZNIHdoaWNoIGhhcyBzZWVuIFJUTV9BTFdBWVNf
QUJPUlQuCisgICAgICAgICAqLworICAgICAgICBpZiAoIHRlc3RfYml0KFg4
Nl9GRUFUVVJFX1JUTSwgZnMpICkKKyAgICAgICAgICAgIF9fc2V0X2JpdChY
ODZfRkVBVFVSRV9SVE1fQUxXQVlTX0FCT1JULCBmcyk7CisgICAgICAgIGJy
ZWFrOwogICAgIH0KIAogICAgIC8qCkBAIC01MDAsMjcgKzUxNywxMyBAQCBz
dGF0aWMgdm9pZCBfX2luaXQgZ3Vlc3RfY29tbW9uX21heF9mZWF0dXJlX2Fk
anVzdG1lbnRzKHVpbnQzMl90ICpmcykKICAgICAgKi8KICAgICBfX3NldF9i
aXQoWDg2X0ZFQVRVUkVfSFRULCBmcyk7CiAgICAgX19zZXRfYml0KFg4Nl9G
RUFUVVJFX0NNUF9MRUdBQ1ksIGZzKTsKLQotICAgIC8qCi0gICAgICogVG8g
bWl0aWdhdGUgTmF0aXZlLUJISSwgb25lIG9wdGlvbiBpcyB0byB1c2UgYSBU
U1ggQWJvcnQgb24gY2FwYWJsZQotICAgICAqIHN5c3RlbXMuICBUaGlzIGlz
IHNhZmUgZXZlbiBpZiBSVE0gaGFzIGJlZW4gZGlzYWJsZWQgZm9yIG90aGVy
IHJlYXNvbnMKLSAgICAgKiB2aWEgTVNSX1RTWF97Q1RSTCxGT1JDRV9BQk9S
VH0uICBIb3dldmVyLCBhIGd1ZXN0IGtlcm5lbCBkb2Vzbid0IGdldCB0bwot
ICAgICAqIGtub3cgdGhpcyB0eXBlIG9mIGluZm9ybWF0aW9uLgotICAgICAq
Ci0gICAgICogVGhlcmVmb3JlIHRoZSBtZWFuaW5nIG9mIFJUTV9BTFdBWVNf
QUJPUlQgaGFzIGJlZW4gYWRqdXN0ZWQsIHRvIGluc3RlYWQKLSAgICAgKiBt
ZWFuICJYQkVHSU4gd29uJ3QgZmF1bHQiLiAgVGhpcyBpcyBlbm91Z2ggZm9y
IGEgZ3Vlc3Qga2VybmVsIHRvIG1ha2UKLSAgICAgKiBhbiBpbmZvcm1lZCBj
aG9pY2UgV1JUIG1pdGlnYXRpbmcgTmF0aXZlLUJISS4KLSAgICAgKgotICAg
ICAqIElmIFJUTS1jYXBhYmxlLCB3ZSBjYW4gcnVuIGEgVk0gd2hpY2ggaGFz
IHNlZW4gUlRNX0FMV0FZU19BQk9SVC4KLSAgICAgKi8KLSAgICBpZiAoIHRl
c3RfYml0KFg4Nl9GRUFUVVJFX1JUTSwgZnMpICkKLSAgICAgICAgX19zZXRf
Yml0KFg4Nl9GRUFUVVJFX1JUTV9BTFdBWVNfQUJPUlQsIGZzKTsKIH0KIAog
c3RhdGljIHZvaWQgX19pbml0IGd1ZXN0X2NvbW1vbl9kZWZhdWx0X2ZlYXR1
cmVfYWRqdXN0bWVudHModWludDMyX3QgKmZzKQogewotICAgIGlmICggYm9v
dF9jcHVfZGF0YS54ODZfdmVuZG9yID09IFg4Nl9WRU5ET1JfSU5URUwgKQor
ICAgIHN3aXRjaCAoIGJvb3RfY3B1X2RhdGEueDg2X3ZlbmRvciApCiAgICAg
eworICAgIGNhc2UgWDg2X1ZFTkRPUl9JTlRFTDoKICAgICAgICAgLyoKICAg
ICAgICAgICogSXZ5QnJpZGdlIGNsaWVudCBwYXJ0cyBzdWZmZXIgZnJvbSBs
ZWFrYWdlIG9mIFJEUkFORCBkYXRhIGR1ZSB0byBTUkJEUwogICAgICAgICAg
KiAoWFNBLTMyMCAvIENWRS0yMDIwLTA1NDMpLCBhbmQgd29uJ3QgYmUgcmVj
ZWl2aW5nIG1pY3JvY29kZSB0bwpAQCAtNTY0LDYgKzU2NywyMyBAQCBzdGF0
aWMgdm9pZCBfX2luaXQgZ3Vlc3RfY29tbW9uX2RlZmF1bHRfZmVhdHVyZV9h
ZGp1c3RtZW50cyh1aW50MzJfdCAqZnMpCiAgICAgICAgICAgICAgYm9vdF9j
cHVfZGF0YS54ODZfbW9kZWwgPT0gSU5URUxfRkFNNl9TS1lMQUtFX1ggJiYK
ICAgICAgICAgICAgICByYXdfY3B1X3BvbGljeS5mZWF0LmNsd2IgKQogICAg
ICAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVfQ0xXQiwgZnMpOwor
CisgICAgICAgIC8qCisgICAgICAgICAqIE9uIGNlcnRhaW4gaGFyZHdhcmUs
IHNwZWN1bGF0aXZlIG9yIGVycmF0YSB3b3JrYXJvdW5kcyBjYW4gcmVzdWx0
CisgICAgICAgICAqIGluIFRTWCBiZWluZyBwbGFjZWQgaW4gImZvcmNlLWFi
b3J0IiBtb2RlLCB3aGVyZSBpdCBkb2Vzbid0CisgICAgICAgICAqIGFjdHVh
bGx5IGZ1bmN0aW9uIGFzIGV4cGVjdGVkLCBidXQgaXMgdGVjaG5pY2FsbHkg
Y29tcGF0aWJsZSB3aXRoCisgICAgICAgICAqIHRoZSBJU0EuCisgICAgICAg
ICAqCisgICAgICAgICAqIERvIG5vdCBhZHZlcnRpc2UgUlRNIHRvIGd1ZXN0
cyBieSBkZWZhdWx0IGlmIGl0IHdvbid0IGFjdHVhbGx5CisgICAgICAgICAq
IHdvcmsuICBJbnN0ZWFkLCBhZHZlcnRpc2UgUlRNX0FMV0FZU19BQk9SVCBp
bmRpY2F0aW5nIHRoYXQgVFNYCisgICAgICAgICAqIEFib3J0cyBhcmUgc2Fm
ZSB0byB1c2UsIGUuZy4gZm9yIG1pdGlnYXRpbmcgTmF0aXZlLUJISS4KKyAg
ICAgICAgICovCisgICAgICAgIGlmICggcnRtX2Rpc2FibGVkICkKKyAgICAg
ICAgeworICAgICAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVfUlRN
LCBmcyk7CisgICAgICAgICAgICBfX3NldF9iaXQoWDg2X0ZFQVRVUkVfUlRN
X0FMV0FZU19BQk9SVCwgZnMpOworICAgICAgICB9CisgICAgICAgIGJyZWFr
OwogICAgIH0KIAogICAgIC8qCkBAIC01NzUsMjEgKzU5NSw2IEBAIHN0YXRp
YyB2b2lkIF9faW5pdCBndWVzdF9jb21tb25fZGVmYXVsdF9mZWF0dXJlX2Fk
anVzdG1lbnRzKHVpbnQzMl90ICpmcykKIAogICAgIGlmICggIWNwdV9oYXNf
Y21wX2xlZ2FjeSApCiAgICAgICAgIF9fY2xlYXJfYml0KFg4Nl9GRUFUVVJF
X0NNUF9MRUdBQ1ksIGZzKTsKLQotICAgIC8qCi0gICAgICogT24gY2VydGFp
biBoYXJkd2FyZSwgc3BlY3VsYXRpdmUgb3IgZXJyYXRhIHdvcmthcm91bmRz
IGNhbiByZXN1bHQgaW4KLSAgICAgKiBUU1ggYmVpbmcgcGxhY2VkIGluICJm
b3JjZS1hYm9ydCIgbW9kZSwgd2hlcmUgaXQgZG9lc24ndCBhY3R1YWxseQot
ICAgICAqIGZ1bmN0aW9uIGFzIGV4cGVjdGVkLCBidXQgaXMgdGVjaG5pY2Fs
bHkgY29tcGF0aWJsZSB3aXRoIHRoZSBJU0EuCi0gICAgICoKLSAgICAgKiBE
byBub3QgYWR2ZXJ0aXNlIFJUTSB0byBndWVzdHMgYnkgZGVmYXVsdCBpZiBp
dCB3b24ndCBhY3R1YWxseSB3b3JrLgotICAgICAqIEluc3RlYWQsIGFkdmVy
dGlzZSBSVE1fQUxXQVlTX0FCT1JUIGluZGljYXRpbmcgdGhhdCBUU1ggQWJv
cnRzIGFyZSBzYWZlCi0gICAgICogdG8gdXNlLCBlLmcuIGZvciBtaXRpZ2F0
aW5nIE5hdGl2ZS1CSEkuCi0gICAgICovCi0gICAgaWYgKCBydG1fZGlzYWJs
ZWQgKQotICAgIHsKLSAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVf
UlRNLCBmcyk7Ci0gICAgICAgIF9fc2V0X2JpdChYODZfRkVBVFVSRV9SVE1f
QUxXQVlTX0FCT1JULCBmcyk7Ci0gICAgfQogfQogCiBzdGF0aWMgdm9pZCBf
X2luaXQgZ3Vlc3RfY29tbW9uX2ZlYXR1cmVfYWRqdXN0bWVudHModWludDMy
X3QgKmZzKQo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.18-15.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.18-15.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxMCBTZXAgMjAyNCAxOTo1NToxNSArMDEwMApTdWJq
ZWN0OiB4ODYvY3B1LXBvbGljeTogSW5mcmFzdHJ1Y3R1cmUgZm9yIENQVUlE
IGxlYWYgMHg4MDAwMDAyMS5lY3gKClNpZ25lZC1vZmYtYnk6IEFuZHJldyBD
b29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5
OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CgpkaWZmIC0tZ2l0
IGEvdG9vbHMvbGlicy9saWdodC9saWJ4bF9jcHVpZC5jIGIvdG9vbHMvbGli
cy9saWdodC9saWJ4bF9jcHVpZC5jCmluZGV4IGNlNGYzYzcwOTViYS4uZGY1
NTI5YWMxZmE5IDEwMDY0NAotLS0gYS90b29scy9saWJzL2xpZ2h0L2xpYnhs
X2NwdWlkLmMKKysrIGIvdG9vbHMvbGlicy9saWdodC9saWJ4bF9jcHVpZC5j
CkBAIC0zNDIsNiArMzQyLDcgQEAgaW50IGxpYnhsX2NwdWlkX3BhcnNlX2Nv
bmZpZyhsaWJ4bF9jcHVpZF9wb2xpY3lfbGlzdCAqcG9saWN5LCBjb25zdCBj
aGFyKiBzdHIpCiAgICAgICAgIENQVUlEX0VOVFJZKDB4MDAwMDAwMDcsICAx
LCBDUFVJRF9SRUdfRURYKSwKICAgICAgICAgTVNSX0VOVFJZKDB4MTBhLCBD
UFVJRF9SRUdfRUFYKSwKICAgICAgICAgTVNSX0VOVFJZKDB4MTBhLCBDUFVJ
RF9SRUdfRURYKSwKKyAgICAgICAgQ1BVSURfRU5UUlkoMHg4MDAwMDAyMSwg
TkEsIENQVUlEX1JFR19FQ1gpLAogI3VuZGVmIE1TUl9FTlRSWQogI3VuZGVm
IENQVUlEX0VOVFJZCiAgICAgfTsKZGlmZiAtLWdpdCBhL3Rvb2xzL21pc2Mv
eGVuLWNwdWlkLmMgYi90b29scy9taXNjL3hlbi1jcHVpZC5jCmluZGV4IDZi
ZDMxZjFlMTU2Yy4uMTliOTA2OGQzNmVjIDEwMDY0NAotLS0gYS90b29scy9t
aXNjL3hlbi1jcHVpZC5jCisrKyBiL3Rvb2xzL21pc2MveGVuLWNwdWlkLmMK
QEAgLTI1NCw2ICsyNTQsMTAgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0
IHN0cl9tMTBBbFs2NF0gPQogICAgIFs2Ml0gPSAiaXRzLW5vIiwKIH07CiAK
K3N0YXRpYyBjb25zdCBjaGFyICpjb25zdCBzdHJfZTIxY1szMl0gPQorewor
fTsKKwogc3RhdGljIGNvbnN0IHN0cnVjdCB7CiAgICAgY29uc3QgY2hhciAq
bmFtZTsKICAgICBjb25zdCBjaGFyICphYmJyOwpAQCAtMjc4LDYgKzI4Miw3
IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgewogICAgIHsgIkNQVUlEIDB4MDAw
MDAwMDc6MS5lZHgiLCAgICAgIjdkMSIsIHN0cl83ZDEgfSwKICAgICB7ICJN
U1JfQVJDSF9DQVBTLmxvIiwgICAgICAgICAibTEwQWwiLCBzdHJfbTEwQWwg
fSwKICAgICB7ICJNU1JfQVJDSF9DQVBTLmhpIiwgICAgICAgICAibTEwQWgi
LCBzdHJfbTEwQWwgKyAzMiB9LAorICAgIHsgIkNQVUlEIDB4ODAwMDAwMjEu
ZWN4IiwgICAgICAiZTIxYyIsIHN0cl9lMjFjIH0sCiB9OwogCiAjZGVmaW5l
IENPTF9BTElHTiAiMjQiCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1
LXBvbGljeS5jIGIveGVuL2FyY2gveDg2L2NwdS1wb2xpY3kuYwppbmRleCAz
NmQzNmVhNjBlNjEuLjY2MjAwMjMzMzg3OSAxMDA2NDQKLS0tIGEveGVuL2Fy
Y2gveDg2L2NwdS1wb2xpY3kuYworKysgYi94ZW4vYXJjaC94ODYvY3B1LXBv
bGljeS5jCkBAIC0zNDIsNyArMzQyLDYgQEAgc3RhdGljIHZvaWQgcmVjYWxj
dWxhdGVfbWlzYyhzdHJ1Y3QgY3B1X3BvbGljeSAqcCkKICAgICAgICAgcC0+
ZXh0ZC5yYXdbMHgxZl0gPSBFTVBUWV9MRUFGOyAvKiBTRVYgKi8KICAgICAg
ICAgcC0+ZXh0ZC5yYXdbMHgyMF0gPSBFTVBUWV9MRUFGOyAvKiBQbGF0Zm9y
bSBRb1MgKi8KICAgICAgICAgcC0+ZXh0ZC5yYXdbMHgyMV0uYiA9IDA7Ci0g
ICAgICAgIHAtPmV4dGQucmF3WzB4MjFdLmMgPSAwOwogICAgICAgICBwLT5l
eHRkLnJhd1sweDIxXS5kID0gMDsKICAgICAgICAgYnJlYWs7CiAgICAgfQpk
aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2NwdS9jb21tb24uYyBiL3hlbi9h
cmNoL3g4Ni9jcHUvY29tbW9uLmMKaW5kZXggZWRlYzBhMjU0NjJjLi4wMDdl
OTM1OTkyYmEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvY29tbW9u
LmMKKysrIGIveGVuL2FyY2gveDg2L2NwdS9jb21tb24uYwpAQCAtNDc5LDcg
KzQ3OSw5IEBAIHN0YXRpYyB2b2lkIGdlbmVyaWNfaWRlbnRpZnkoc3RydWN0
IGNwdWluZm9feDg2ICpjKQogCWlmIChjLT5leHRlbmRlZF9jcHVpZF9sZXZl
bCA+PSAweDgwMDAwMDA4KQogCQljLT54ODZfY2FwYWJpbGl0eVtGRUFUVVJF
U0VUX2U4Yl0gPSBjcHVpZF9lYngoMHg4MDAwMDAwOCk7CiAJaWYgKGMtPmV4
dGVuZGVkX2NwdWlkX2xldmVsID49IDB4ODAwMDAwMjEpCi0JCWMtPng4Nl9j
YXBhYmlsaXR5W0ZFQVRVUkVTRVRfZTIxYV0gPSBjcHVpZF9lYXgoMHg4MDAw
MDAyMSk7CisJCWNwdWlkKDB4ODAwMDAwMjEsCisJCSAgICAgICZjLT54ODZf
Y2FwYWJpbGl0eVtGRUFUVVJFU0VUX2UyMWFdLCAmdG1wLAorCQkgICAgICAm
Yy0+eDg2X2NhcGFiaWxpdHlbRkVBVFVSRVNFVF9lMjFjXSwgJnRtcCk7CiAK
IAkvKiBJbnRlbC1kZWZpbmVkIGZsYWdzOiBsZXZlbCAweDAwMDAwMDA3ICov
CiAJaWYgKGMtPmNwdWlkX2xldmVsID49IDcpIHsKZGlmZiAtLWdpdCBhL3hl
bi9pbmNsdWRlL3B1YmxpYy9hcmNoLXg4Ni9jcHVmZWF0dXJlc2V0LmggYi94
ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC14ODYvY3B1ZmVhdHVyZXNldC5oCmlu
ZGV4IGU2ZWQ0YzAyZTFkYS4uODZlNDRkZDg1MjU4IDEwMDY0NAotLS0gYS94
ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC14ODYvY3B1ZmVhdHVyZXNldC5oCisr
KyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9hcmNoLXg4Ni9jcHVmZWF0dXJlc2V0
LmgKQEAgLTM0OCw2ICszNDgsOCBAQCBYRU5fQ1BVRkVBVFVSRShSRkRTX0NM
RUFSLCAgICAgICAgIDE2KjMyKzI4KSAvKiFBIFJlZ2lzdGVyIEZpbGUocykg
Y2xlYXJlZCBieSBWRQogWEVOX0NQVUZFQVRVUkUoUEJfT1BUX0NUUkwsICAg
ICAgICAxNiozMiszMikgLyogICBNU1JfUEJfT1BUX0NUUkwuSUJQQl9BTFQg
Ki8KIFhFTl9DUFVGRUFUVVJFKElUU19OTywgICAgICAgICAgICAgMTYqMzIr
NjIpIC8qIUEgTm8gSW5kaXJlY3QgVGFyZ2V0IFNlbGVjdGlvbiAqLwogCisv
KiBBTUQtZGVmaW5lZCBDUFUgZmVhdHVyZXMsIENQVUlEIGxldmVsIDB4ODAw
MDAwMjEuZWN4LCB3b3JkIDE4ICovCisKICNlbmRpZiAvKiBYRU5fQ1BVRkVB
VFVSRSAqLwogCiAvKiBDbGVhbiB1cCBmcm9tIGEgZGVmYXVsdCBpbmNsdWRl
LiAgQ2xvc2UgdGhlIGVudW0gKGZvciBDKS4gKi8KZGlmZiAtLWdpdCBhL3hl
bi9pbmNsdWRlL3hlbi9saWIveDg2L2NwdS1wb2xpY3kuaCBiL3hlbi9pbmNs
dWRlL3hlbi9saWIveDg2L2NwdS1wb2xpY3kuaAppbmRleCBmMzM1OTI5YTcw
YzQuLjVmZTQxMjdkOWI3NSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVu
L2xpYi94ODYvY3B1LXBvbGljeS5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9s
aWIveDg2L2NwdS1wb2xpY3kuaApAQCAtMjIsNiArMjIsNyBAQAogI2RlZmlu
ZSBGRUFUVVJFU0VUXzdkMSAgICAgICAxNSAvKiAweDAwMDAwMDA3OjEuZWR4
ICAgICovCiAjZGVmaW5lIEZFQVRVUkVTRVRfbTEwQWwgICAgIDE2IC8qIDB4
MDAwMDAxMGEuZWF4ICAgICAgKi8KICNkZWZpbmUgRkVBVFVSRVNFVF9tMTBB
aCAgICAgMTcgLyogMHgwMDAwMDEwYS5lZHggICAgICAqLworI2RlZmluZSBG
RUFUVVJFU0VUX2UyMWMgICAgICAxOCAvKiAweDgwMDAwMDIxLmVjeCAgICAg
ICovCiAKIHN0cnVjdCBjcHVpZF9sZWFmCiB7CkBAIC0zMjcsNyArMzI4LDEx
IEBAIHN0cnVjdCBjcHVfcG9saWN5CiAgICAgICAgICAgICB1aW50MTZfdCB1
Y29kZV9zaXplOyAvKiBVbml0cyBvZiAxNiBieXRlcyAqLwogICAgICAgICAg
ICAgdWludDhfdCAgcmFwX3NpemU7ICAgLyogVW5pdHMgb2YgOCBlbnRyaWVz
ICovCiAgICAgICAgICAgICB1aW50OF90ICA6ODsKLSAgICAgICAgICAgIHVp
bnQzMl90IC8qIGMgKi86MzIsIC8qIGQgKi86MzI7CisgICAgICAgICAgICB1
bmlvbiB7CisgICAgICAgICAgICAgICAgdWludDMyX3QgZTIxYzsKKyAgICAg
ICAgICAgICAgICBzdHJ1Y3QgeyBERUNMX0JJVEZJRUxEKGUyMWMpOyB9Owor
ICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIHVpbnQzMl90IC8qIGQgKi86
MzI7CiAgICAgICAgIH07CiAgICAgfSBleHRkOwogCmRpZmYgLS1naXQgYS94
ZW4vbGliL3g4Ni9jcHVpZC5jIGIveGVuL2xpYi94ODYvY3B1aWQuYwppbmRl
eCBlYjc2OThkYzczMjUuLjYyOThkMDUxZjJhNiAxMDA2NDQKLS0tIGEveGVu
L2xpYi94ODYvY3B1aWQuYworKysgYi94ZW4vbGliL3g4Ni9jcHVpZC5jCkBA
IC04MSw2ICs4MSw3IEBAIHZvaWQgeDg2X2NwdV9wb2xpY3lfdG9fZmVhdHVy
ZXNldCgKICAgICBmc1tGRUFUVVJFU0VUXzdkMV0gICAgICAgPSBwLT5mZWF0
Ll83ZDE7CiAgICAgZnNbRkVBVFVSRVNFVF9tMTBBbF0gICAgID0gcC0+YXJj
aF9jYXBzLmxvOwogICAgIGZzW0ZFQVRVUkVTRVRfbTEwQWhdICAgICA9IHAt
PmFyY2hfY2Fwcy5oaTsKKyAgICBmc1tGRUFUVVJFU0VUX2UyMWNdICAgICAg
PSBwLT5leHRkLmUyMWM7CiB9CiAKIHZvaWQgeDg2X2NwdV9mZWF0dXJlc2V0
X3RvX3BvbGljeSgKQEAgLTEwNCw2ICsxMDUsNyBAQCB2b2lkIHg4Nl9jcHVf
ZmVhdHVyZXNldF90b19wb2xpY3koCiAgICAgcC0+ZmVhdC5fN2QxICAgICAg
ICAgICAgID0gZnNbRkVBVFVSRVNFVF83ZDFdOwogICAgIHAtPmFyY2hfY2Fw
cy5sbyAgICAgICAgICA9IGZzW0ZFQVRVUkVTRVRfbTEwQWxdOwogICAgIHAt
PmFyY2hfY2Fwcy5oaSAgICAgICAgICA9IGZzW0ZFQVRVUkVTRVRfbTEwQWhd
OworICAgIHAtPmV4dGQuZTIxYyAgICAgICAgICAgICA9IGZzW0ZFQVRVUkVT
RVRfZTIxY107CiB9CiAKIHZvaWQgeDg2X2NwdV9wb2xpY3lfcmVjYWxjX3N5
bnRoKHN0cnVjdCBjcHVfcG9saWN5ICpwKQo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.18-16.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.18-16.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogRnJpLCAyNyBTZXAgMjAyNCAxMToyODozOSArMDEwMApTdWJq
ZWN0OiB4ODYvdWNvZGU6IERpZ2VzdHMgZm9yIFRTQSBtaWNyb2NvZGUKCkFN
RCBhcmUgcmVsZWFzaW5nIG1pY3JvY29kZSBmb3IgVFNBLCBzbyBleHRlbmQg
dGhlIGtub3duLXByb3ZlbmFuY2UgbGlzdCB3aXRoCnRoZWlyIGhhc2hlcy4g
IFRoZXNlIHdlcmUgcHJvZHVjZWQgYmVmb3JlIHRoZSByZW1lZGlhdGlvbiBv
ZiB0aGUgbWljcm9jb2RlCnNpZ25hdHVyZSBpc3N1ZXMgKHRoZSBlbnRyeXNp
Z24gdnVsbmVyYWJpbGl0eSksIHNvIGNhbiBiZSBPUy1sb2FkZWQgb24Kb3V0
LW9mLWRhdGUgZmlybXdhcmUuCgpJbmNsdWRlIGFuIG9mZi1ieS1kZWZhdWx0
IGNoZWNrIGZvciB0aGUgc29ydGVkLW5lc3Mgb2YgcGF0Y2hfZGlnZXN0c1td
LiAgSXQncwpub3Qgd29ydGggcnVubmluZyBnZW5lcmFsbHkgdW5kZXIgU0VM
Rl9URVNUUywgYnV0IGlzIHVzZWZ1bCB3aGVuIGVkaXRpbmcgdGhlCmRpZ2Vz
dCBsaXN0LgoKVGhpcyBpcyBwYXJ0IG9mIFhTQS00NzEgLyBDVkUtMjAyNC0z
NjM1MCAvIENWRS0yMDI0LTM2MzU3LgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3
IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KQWNrZWQtYnk6
IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KCmRpZmYgLS1naXQg
YS94ZW4vYXJjaC94ODYvY3B1L21pY3JvY29kZS9hbWQtcGF0Y2gtZGlnZXN0
cy5jIGIveGVuL2FyY2gveDg2L2NwdS9taWNyb2NvZGUvYW1kLXBhdGNoLWRp
Z2VzdHMuYwppbmRleCBkMzI3NjEyMjY3MTIuLmQyYzRlMDE3OGExZSAxMDA2
NDQKLS0tIGEveGVuL2FyY2gveDg2L2NwdS9taWNyb2NvZGUvYW1kLXBhdGNo
LWRpZ2VzdHMuYworKysgYi94ZW4vYXJjaC94ODYvY3B1L21pY3JvY29kZS9h
bWQtcGF0Y2gtZGlnZXN0cy5jCkBAIC04MCw2ICs4MCwxNSBAQAogICAgICAg
ICAweDBkLCAweDViLCAweDY1LCAweDM0LCAweDY5LCAweGIyLCAweDYyLCAw
eDIxLAogICAgIH0sCiB9LAoreworICAgIC5wYXRjaF9pZCA9IDB4MGEwMDEx
ZDcsCisgICAgLmRpZ2VzdCA9IHsKKyAgICAgICAgMHgzNSwgMHgwNywgMHhj
ZCwgMHg0MCwgMHg5NCwgMHhiYywgMHg4MSwgMHg2YiwKKyAgICAgICAgMHhm
YywgMHg2MSwgMHg1NiwgMHgxYSwgMHhlMiwgMHhkYiwgMHg5NiwgMHgxMiwK
KyAgICAgICAgMHgxYywgMHgxYywgMHgzMSwgMHhiMSwgMHgwMiwgMHg2Ziwg
MHhlNSwgMHhkMiwKKyAgICAgICAgMHhmZSwgMHgxYiwgMHgwNCwgMHgwMywg
MHgyYywgMHg4ZiwgMHg0YywgMHgzNiwKKyAgICB9LAorfSwKIHsKICAgICAu
cGF0Y2hfaWQgPSAweDBhMDAxMjM4LAogICAgIC5kaWdlc3QgPSB7CkBAIC04
OSw2ICs5OCwxNSBAQAogICAgICAgICAweGMwLCAweGNkLCAweDMzLCAweGYy
LCAweDhkLCAweGY5LCAweGVmLCAweDU5LAogICAgIH0sCiB9LAoreworICAg
IC5wYXRjaF9pZCA9IDB4MGEwMDEyM2IsCisgICAgLmRpZ2VzdCA9IHsKKyAg
ICAgICAgMHhlZiwgMHhhMSwgMHgxZSwgMHg3MSwgMHhmMSwgMHhjMywgMHgy
YywgMHhlMiwKKyAgICAgICAgMHhjMywgMHhlZiwgMHg2OSwgMHg0MSwgMHg3
YSwgMHg1NCwgMHhjYSwgMHhjMywKKyAgICAgICAgMHg4ZiwgMHg2MiwgMHg4
NCwgMHhlZSwgMHhjMiwgMHgzOSwgMHhkOSwgMHgyOCwKKyAgICAgICAgMHg5
NSwgMHhhNywgMHgxMiwgMHg0OSwgMHgxZSwgMHgzMCwgMHg3MSwgMHg3MiwK
KyAgICB9LAorfSwKIHsKICAgICAucGF0Y2hfaWQgPSAweDBhMDA4MjBjLAog
ICAgIC5kaWdlc3QgPSB7CkBAIC05OCw2ICsxMTYsMTUgQEAKICAgICAgICAg
MHhlMSwgMHgzYiwgMHg4ZCwgMHhiMiwgMHhmOCwgMHgyMiwgMHgwMywgMHhl
MiwKICAgICB9LAogfSwKK3sKKyAgICAucGF0Y2hfaWQgPSAweDBhMDA4MjBk
LAorICAgIC5kaWdlc3QgPSB7CisgICAgICAgIDB4ZjksIDB4MmEsIDB4YzAs
IDB4ZjQsIDB4OWUsIDB4YTQsIDB4ODcsIDB4YTQsCisgICAgICAgIDB4N2Qs
IDB4ODcsIDB4MDAsIDB4ZmQsIDB4YWIsIDB4ZGEsIDB4MTksIDB4Y2EsCisg
ICAgICAgIDB4MjYsIDB4NTEsIDB4MzIsIDB4YzEsIDB4NTcsIDB4OTEsIDB4
ZGYsIDB4YzEsCisgICAgICAgIDB4MDUsIDB4ZWIsIDB4MDEsIDB4N2MsIDB4
NWEsIDB4OTUsIDB4MjEsIDB4YjcsCisgICAgfSwKK30sCiB7CiAgICAgLnBh
dGNoX2lkID0gMHgwYTEwMTE0OCwKICAgICAuZGlnZXN0ID0gewpAQCAtMTA3
LDYgKzEzNCwxNSBAQAogICAgICAgICAweGYxLCAweDVlLCAweGIwLCAweGRl
LCAweGI0LCAweDk4LCAweGFlLCAweGM0LAogICAgIH0sCiB9LAoreworICAg
IC5wYXRjaF9pZCA9IDB4MGExMDExNGMsCisgICAgLmRpZ2VzdCA9IHsKKyAg
ICAgICAgMHg5ZSwgMHhiNiwgMHhhMiwgMHhkOSwgMHg4NywgMHgzOCwgMHhj
NSwgMHg2NCwKKyAgICAgICAgMHhkOCwgMHg4OCwgMHhmYSwgMHg3OCwgMHg5
OCwgMHhmOSwgMHg2ZiwgMHg3NCwKKyAgICAgICAgMHgzOSwgMHg5MCwgMHgx
YiwgMHhhNSwgMHhjZiwgMHg1ZSwgMHhiNCwgMHgyYSwKKyAgICAgICAgMHgw
MiwgMHhmZiwgMHhkNCwgMHg4YywgMHg3MSwgMHg4YiwgMHhlMiwgMHhjMCwK
KyAgICB9LAorfSwKIHsKICAgICAucGF0Y2hfaWQgPSAweDBhMTAxMjQ4LAog
ICAgIC5kaWdlc3QgPSB7CkBAIC0xMTYsNiArMTUyLDE1IEBACiAgICAgICAg
IDB4MWIsIDB4N2QsIDB4NjQsIDB4OWQsIDB4NGIsIDB4NTMsIDB4MTMsIDB4
NzUsCiAgICAgfSwKIH0sCit7CisgICAgLnBhdGNoX2lkID0gMHgwYTEwMTI0
YywKKyAgICAuZGlnZXN0ID0geworICAgICAgICAweDI5LCAweGVhLCAweGYx
LCAweDJjLCAweGIyLCAweGU0LCAweGVmLCAweDkwLAorICAgICAgICAweGE0
LCAweGNkLCAweDFkLCAweDg2LCAweDk3LCAweDE3LCAweDYxLCAweDQ2LAor
ICAgICAgICAweGZjLCAweDIyLCAweGNiLCAweDU3LCAweDc1LCAweDE5LCAw
eGM4LCAweGNjLAorICAgICAgICAweDBjLCAweGY1LCAweGJjLCAweGFjLCAw
eDgxLCAweDlkLCAweDlhLCAweGQyLAorICAgIH0sCit9LAogewogICAgIC5w
YXRjaF9pZCA9IDB4MGExMDgxMDgsCiAgICAgLmRpZ2VzdCA9IHsKQEAgLTEy
NSw2ICsxNzAsMTUgQEAKICAgICAgICAgMHgyOCwgMHgxZSwgMHg5YywgMHg1
OSwgMHg2OSwgMHg5OSwgMHg0ZCwgMHgxNiwKICAgICB9LAogfSwKK3sKKyAg
ICAucGF0Y2hfaWQgPSAweDBhMTA4MTA5LAorICAgIC5kaWdlc3QgPSB7Cisg
ICAgICAgIDB4ODUsIDB4YjQsIDB4YmQsIDB4N2MsIDB4NDksIDB4YTcsIDB4
YmQsIDB4ZmEsCisgICAgICAgIDB4NDksIDB4MzYsIDB4ODAsIDB4ODEsIDB4
YzUsIDB4YjcsIDB4MzksIDB4MWIsCisgICAgICAgIDB4OWEsIDB4YWEsIDB4
NTAsIDB4ZGUsIDB4OWIsIDB4ZTksIDB4MzIsIDB4MzUsCisgICAgICAgIDB4
NDIsIDB4N2UsIDB4NTEsIDB4NGYsIDB4NTIsIDB4MmMsIDB4MjgsIDB4NTks
CisgICAgfSwKK30sCiB7CiAgICAgLnBhdGNoX2lkID0gMHgwYTIwMTAyZCwK
ICAgICAuZGlnZXN0ID0gewpAQCAtMTM0LDYgKzE4OCwxNSBAQAogICAgICAg
ICAweDhjLCAweGU5LCAweDE5LCAweDNlLCAweGNjLCAweDNmLCAweDdiLCAw
eGI0LAogICAgIH0sCiB9LAoreworICAgIC5wYXRjaF9pZCA9IDB4MGEyMDEw
MmUsCisgICAgLmRpZ2VzdCA9IHsKKyAgICAgICAgMHhiZSwgMHgxZiwgMHgz
MiwgMHgwNCwgMHgwZCwgMHgzYywgMHg5YywgMHhkZCwKKyAgICAgICAgMHhl
MSwgMHhhNCwgMHhiZiwgMHg3NiwgMHgzYSwgMHhlYywgMHhjMiwgMHhmNiwK
KyAgICAgICAgMHgxMSwgMHgwMCwgMHhhNywgMHhhZiwgMHgwZiwgMHhlNSwg
MHgwMiwgMHhjNSwKKyAgICAgICAgMHg1NCwgMHgzYSwgMHgxZiwgMHg4Yywg
MHgxNiwgMHhiNSwgMHhmZiwgMHhiZSwKKyAgICB9LAorfSwKIHsKICAgICAu
cGF0Y2hfaWQgPSAweDBhMjAxMjEwLAogICAgIC5kaWdlc3QgPSB7CkBAIC0x
NDMsNiArMjA2LDE1IEBACiAgICAgICAgIDB4ZjcsIDB4NTUsIDB4ZjAsIDB4
MTMsIDB4YmIsIDB4MjIsIDB4ZjYsIDB4NDEsCiAgICAgfSwKIH0sCit7Cisg
ICAgLnBhdGNoX2lkID0gMHgwYTIwMTIxMSwKKyAgICAuZGlnZXN0ID0gewor
ICAgICAgICAweDY5LCAweGExLCAweDE3LCAweGVjLCAweGQwLCAweGY2LCAw
eDZjLCAweDk1LAorICAgICAgICAweGUyLCAweDFlLCAweGM1LCAweDU5LCAw
eDFhLCAweDUyLCAweDBhLCAweDI3LAorICAgICAgICAweGM0LCAweGVkLCAw
eGQ1LCAweDU5LCAweDFmLCAweGJmLCAweDAwLCAweGZmLAorICAgICAgICAw
eDA4LCAweDg4LCAweGI1LCAweGUxLCAweDEyLCAweGI2LCAweGNjLCAweDI3
LAorICAgIH0sCit9LAogewogICAgIC5wYXRjaF9pZCA9IDB4MGE0MDQxMDcs
CiAgICAgLmRpZ2VzdCA9IHsKQEAgLTE1Miw2ICsyMjQsMTUgQEAKICAgICAg
ICAgMHgxMywgMHhiYywgMHhjNSwgMHgyNSwgMHhlNCwgMHhjNSwgMHhjMywg
MHg5OSwKICAgICB9LAogfSwKK3sKKyAgICAucGF0Y2hfaWQgPSAweDBhNDA0
MTA4LAorICAgIC5kaWdlc3QgPSB7CisgICAgICAgIDB4NjksIDB4NjcsIDB4
NDMsIDB4MDYsIDB4ZjgsIDB4MGMsIDB4NjIsIDB4ZGMsCisgICAgICAgIDB4
YTQsIDB4MjEsIDB4MzAsIDB4NGYsIDB4MGYsIDB4MjEsIDB4MmMsIDB4Y2Is
CisgICAgICAgIDB4Y2MsIDB4MzcsIDB4ZjEsIDB4MWMsIDB4YzMsIDB4Zjgs
IDB4MmYsIDB4MTksCisgICAgICAgIDB4ZGYsIDB4NTMsIDB4NTMsIDB4NDYs
IDB4YjEsIDB4MTUsIDB4ZWEsIDB4MDAsCisgICAgfSwKK30sCiB7CiAgICAg
LnBhdGNoX2lkID0gMHgwYTUwMDAxMSwKICAgICAuZGlnZXN0ID0gewpAQCAt
MTYxLDYgKzI0MiwxNSBAQAogICAgICAgICAweDExLCAweDVlLCAweDk2LCAw
eDdlLCAweDcxLCAweGU5LCAweGZjLCAweDc0LAogICAgIH0sCiB9LAorewor
ICAgIC5wYXRjaF9pZCA9IDB4MGE1MDAwMTIsCisgICAgLmRpZ2VzdCA9IHsK
KyAgICAgICAgMHhlYiwgMHg3NCwgMHgwZCwgMHg0NywgMHhhMSwgMHg4ZSwg
MHgwOSwgMHhlNCwKKyAgICAgICAgMHg5MywgMHg0YywgMHhhZCwgMHgwMywg
MHgzMiwgMHg0YywgMHgzOCwgMHgxNiwKKyAgICAgICAgMHgxMCwgMHgzOSwg
MHhkZCwgMHgwNiwgMHhhYSwgMHhjZSwgMHhkNiwgMHgwZiwKKyAgICAgICAg
MHg2MiwgMHg4MywgMHg5ZCwgMHg4ZSwgMHg2NCwgMHg1NSwgMHhiZSwgMHg2
MywKKyAgICB9LAorfSwKIHsKICAgICAucGF0Y2hfaWQgPSAweDBhNjAxMjA5
LAogICAgIC5kaWdlc3QgPSB7CkBAIC0xNzAsNiArMjYwLDE1IEBACiAgICAg
ICAgIDB4ZTgsIDB4NzMsIDB4ZTIsIDB4ZDYsIDB4ZGIsIDB4ZDIsIDB4Nzcs
IDB4MWQsCiAgICAgfSwKIH0sCit7CisgICAgLnBhdGNoX2lkID0gMHgwYTYw
MTIwYSwKKyAgICAuZGlnZXN0ID0geworICAgICAgICAweDBjLCAweDhiLCAw
eDNkLCAweGZkLCAweDUyLCAweDUyLCAweDg1LCAweDdkLAorICAgICAgICAw
eDIwLCAweDNhLCAweGUxLCAweDdlLCAweGE0LCAweDIxLCAweDNiLCAweDdi
LAorICAgICAgICAweDE3LCAweDg2LCAweGFlLCAweGFjLCAweDEzLCAweGI4
LCAweDYzLCAweDlkLAorICAgICAgICAweDA2LCAweDAxLCAweGQwLCAweGEw
LCAweDUxLCAweDlhLCAweDkxLCAweDJjLAorICAgIH0sCit9LAogewogICAg
IC5wYXRjaF9pZCA9IDB4MGE3MDQxMDcsCiAgICAgLmRpZ2VzdCA9IHsKQEAg
LTE3OSw2ICsyNzgsMTUgQEAKICAgICAgICAgMHg2NCwgMHgzOSwgMHg3MSwg
MHg4YywgMHhjZSwgMHhlNywgMHg0MSwgMHgzOSwKICAgICB9LAogfSwKK3sK
KyAgICAucGF0Y2hfaWQgPSAweDBhNzA0MTA4LAorICAgIC5kaWdlc3QgPSB7
CisgICAgICAgIDB4ZDcsIDB4NTUsIDB4MTUsIDB4MmIsIDB4ZmUsIDB4YzQs
IDB4YmMsIDB4OTMsCisgICAgICAgIDB4ZWMsIDB4OTEsIDB4YTAsIDB4YWUs
IDB4NDUsIDB4YjcsIDB4YzMsIDB4OTgsCisgICAgICAgIDB4NGUsIDB4ZmYs
IDB4NjEsIDB4NzcsIDB4ODgsIDB4YzIsIDB4NzAsIDB4NDksCisgICAgICAg
IDB4ZTAsIDB4M2EsIDB4MWQsIDB4ODQsIDB4MzgsIDB4NTIsIDB4YmYsIDB4
NWEsCisgICAgfSwKK30sCiB7CiAgICAgLnBhdGNoX2lkID0gMHgwYTcwNTIw
NiwKICAgICAuZGlnZXN0ID0gewpAQCAtMTg4LDYgKzI5NiwxNSBAQAogICAg
ICAgICAweDAzLCAweDM1LCAweGU5LCAweGJlLCAweGZiLCAweDA2LCAweGRm
LCAweGZjLAogICAgIH0sCiB9LAoreworICAgIC5wYXRjaF9pZCA9IDB4MGE3
MDUyMDgsCisgICAgLmRpZ2VzdCA9IHsKKyAgICAgICAgMHgzMCwgMHgxZCwg
MHg1NSwgMHgyNCwgMHhiYywgMHg2YiwgMHg1YSwgMHgxOSwKKyAgICAgICAg
MHgwYywgMHg3ZCwgMHgxZCwgMHg3NCwgMHhhYSwgMHhkMSwgMHhlYiwgMHhk
MiwKKyAgICAgICAgMHgxNiwgMHg2MiwgMHhmNywgMHg1YiwgMHhlMSwgMHgx
ZiwgMHgxOCwgMHgxMSwKKyAgICAgICAgMHg1YywgMHhmMCwgMHg5NCwgMHg5
MCwgMHgyNiwgMHhlYywgMHg2OSwgMHhmZiwKKyAgICB9LAorfSwKIHsKICAg
ICAucGF0Y2hfaWQgPSAweDBhNzA4MDA3LAogICAgIC5kaWdlc3QgPSB7CkBA
IC0xOTcsNiArMzE0LDE1IEBACiAgICAgICAgIDB4ZGYsIDB4OTIsIDB4NzMs
IDB4ODQsIDB4ODcsIDB4M2MsIDB4NzMsIDB4OTMsCiAgICAgfSwKIH0sCit7
CisgICAgLnBhdGNoX2lkID0gMHgwYTcwODAwOCwKKyAgICAuZGlnZXN0ID0g
eworICAgICAgICAweDA4LCAweDZlLCAweGYwLCAweDIyLCAweDRiLCAweDhl
LCAweGM0LCAweDQ2LAorICAgICAgICAweDU4LCAweDM0LCAweGU2LCAweDQ3
LCAweGEyLCAweDI4LCAweGZkLCAweGFiLAorICAgICAgICAweDIyLCAweDNk
LCAweGRkLCAweGQ4LCAweDUyLCAweDllLCAweDFkLCAweDE2LAorICAgICAg
ICAweGZhLCAweDAxLCAweDY4LCAweDE0LCAweDc5LCAweDNlLCAweGU4LCAw
eDZiLAorICAgIH0sCit9LAogewogICAgIC5wYXRjaF9pZCA9IDB4MGE3MGMw
MDUsCiAgICAgLmRpZ2VzdCA9IHsKQEAgLTIwNiw2ICszMzIsMTUgQEAKICAg
ICAgICAgMHhlZSwgMHg0OSwgMHhhYywgMHhlMSwgMHg4YiwgMHgxMywgMHhj
NSwgMHgxMywKICAgICB9LAogfSwKK3sKKyAgICAucGF0Y2hfaWQgPSAweDBh
NzBjMDA4LAorICAgIC5kaWdlc3QgPSB7CisgICAgICAgIDB4MGYsIDB4ZGIs
IDB4MzcsIDB4YTEsIDB4MTAsIDB4YWYsIDB4ZDQsIDB4MjEsCisgICAgICAg
IDB4OTQsIDB4MGQsIDB4YTQsIDB4YTIsIDB4ZTksIDB4ODYsIDB4NmMsIDB4
MGUsCisgICAgICAgIDB4ODUsIDB4N2MsIDB4MzYsIDB4MzAsIDB4YTMsIDB4
M2EsIDB4NzgsIDB4NjYsCisgICAgICAgIDB4MTgsIDB4MTAsIDB4NjAsIDB4
MGQsIDB4NzgsIDB4M2QsIDB4NDQsIDB4ZDAsCisgICAgfSwKK30sCiB7CiAg
ICAgLnBhdGNoX2lkID0gMHgwYWEwMDExNiwKICAgICAuZGlnZXN0ID0gewpA
QCAtMjI0LDMgKzM1OSwxMiBAQAogICAgICAgICAweDY4LCAweDJmLCAweDQ2
LCAweGVlLCAweGZlLCAweGM2LCAweDZkLCAweGVmLAogICAgIH0sCiB9LAor
eworICAgIC5wYXRjaF9pZCA9IDB4MGFhMDAyMTYsCisgICAgLmRpZ2VzdCA9
IHsKKyAgICAgICAgMHg3OSwgMHhmYiwgMHg1YiwgMHg5ZiwgMHhiNiwgMHhl
NiwgMHhhOCwgMHhmNSwKKyAgICAgICAgMHg0ZSwgMHg3YywgMHg0ZiwgMHg4
ZSwgMHgxZCwgMHhhZCwgMHhkMCwgMHgwOCwKKyAgICAgICAgMHhjMiwgMHg0
MywgMHg3YywgMHg4YiwgMHhlNiwgMHhkYiwgMHhkMCwgMHhkMiwKKyAgICAg
ICAgMHhlOCwgMHgzOSwgMHgyNiwgMHhjMSwgMHhlNSwgMHg1YSwgMHg0OCwg
MHhmMSwKKyAgICB9LAorfSwK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.18-17.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.18-17.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogV2VkLCAyIEFwciAyMDI1IDAzOjE4OjU5ICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBSZWFycmFuZ2UgVkVSVyBhbmQgTU9OSVRPUiBpbiBt
d2FpdF9pZGxlX3dpdGhfaGludHMoKQoKSW4gb3JkZXIgdG8gbWl0aWdhdGUg
VFNBLCBYZW4gd2lsbCBuZWVkIHRvIGlzc3VlIFZFUlcgYmVmb3JlIGdvaW5n
IGlkbGUuCgpPbiBBTUQgQ1BVcywgdGhlIFZFUlcgc2NydWJiaW5nIHNpZGUg
ZWZmZWN0cyBjYW5jZWwgYW4gYWN0aXZlIE1PTklUT1IsIGNhdXNpbmcKdGhl
IE1XQUlUIHRvIGV4aXQgd2l0aG91dCBlbnRlcmluZyBhbiBpZGxlIHN0YXRl
LiAgVGhlcmVmb3JlIHRoZSBWRVJXIG11c3QgYmUKYWhlYWQgb2YgTU9OSVRP
Ui4KClNwbGl0IHNwZWNfY3RybF9lbnRlcl9pZGxlKCkgaW4gdHdvIGFuZCBh
bGxvdyB0aGUgVkVSVyBhc3BlY3QgdG8gYmUgaGFuZGxlZApzZXBhcmF0ZWx5
LiAgV2hpbGUgYWRqdXN0aW5nLCB1cGRhdGUgYSBzdGFsZSBjb21tZW50IGNv
bmNlcm5pbmcgTVNCRFM7IG1vcmUKaXNzdWVzIGhhdmUgYmVlbiBtaXRpZ2F0
ZWQgdXNpbmcgVkVSVyBzaW5jZSBpdCB3YXMgd3JpdHRlbi4KCkJ5IG1vdmlu
ZyBWRVJXIGVhcmxpZXIsIGl0IGlzIGFoZWFkIG9mIHRoZSBkZXRlcm1pbmF0
aW9uIG9mIHdoZXRoZXIgdG8gZ28KaWRsZS4gIFdlIGNhbid0IG1vdmUgdGhl
IGNoZWNrIG9uIHNvZnRpcnFfcGVuZGluZyAoZm9yIGNvcnJlY3RuZXNzIHJl
YXNvbnMpLApidXQgd2UgY2FuIGR1cGxpY2F0ZSBpdCBlYXJsaWVyIGFzIGEg
YmVzdCBlZmZvcnQgYXR0ZW1wdCB0byBza2lwIHRoZQpzcGVjdWxhdGl2ZSBv
dmVyaGVhZC4KClRoaXMgaXMgcGFydCBvZiBYU0EtNDcxIC8gQ1ZFLTIwMjQt
MzYzNTAgLyBDVkUtMjAyNC0zNjM1Ny4KClNpZ25lZC1vZmYtYnk6IEFuZHJl
dyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2Vk
LWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CgpkaWZmIC0t
Z2l0IGEveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYyBiL3hlbi9hcmNo
L3g4Ni9hY3BpL2NwdV9pZGxlLmMKaW5kZXggMTU4OTMyNWJhYTU2Li4yNjcz
YmM3OTdmMWUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9p
ZGxlLmMKKysrIGIveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYwpAQCAt
NDYyLDkgKzQ2MiwxOCBAQCBfX2luaXRjYWxsKGNwdV9pZGxlX2tleV9pbml0
KTsKIHZvaWQgbXdhaXRfaWRsZV93aXRoX2hpbnRzKHVuc2lnbmVkIGludCBl
YXgsIHVuc2lnbmVkIGludCBlY3gpCiB7CiAgICAgdW5zaWduZWQgaW50IGNw
dSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKKyAgICBzdHJ1Y3QgY3B1X2luZm8g
KmluZm8gPSBnZXRfY3B1X2luZm8oKTsKICAgICBpcnFfY3B1c3RhdF90ICpz
dGF0ID0gJmlycV9zdGF0W2NwdV07CiAgICAgY29uc3QgdW5zaWduZWQgaW50
ICp0aGlzX3NvZnRpcnFfcGVuZGluZyA9ICZzdGF0LT5fX3NvZnRpcnFfcGVu
ZGluZzsKIAorICAgIC8qCisgICAgICogSGV1cmlzdGljOiBpZiB3ZSdyZSBk
ZWZpbml0ZWx5IG5vdCBnb2luZyB0byBpZGxlLCBiYWlsIGVhcmx5IGFzIHRo
ZQorICAgICAqIHNwZWN1bGF0aXZlIHNhZmV0eSBjYW4gYmUgZXhwZW5zaXZl
LiAgVGhpcyBpcyBhIHBlcmZvcm1hbmNlCisgICAgICogY29uc2lkZXJhdGlv
biBub3QgYSBjb3JyZWN0bmVzcyBpc3N1ZS4KKyAgICAgKi8KKyAgICBpZiAo
ICp0aGlzX3NvZnRpcnFfcGVuZGluZyApCisgICAgICAgIHJldHVybjsKKwog
ICAgIC8qCiAgICAgICogQnkgc2V0dGluZyBpbl9td2FpdCwgd2UgcHJvbWlz
ZSB0byBvdGhlciBDUFVzIHRoYXQgd2UnbGwgbm90aWNlIGNoYW5nZXMKICAg
ICAgKiB0byBfX3NvZnRpcnFfcGVuZGluZyB3aXRob3V0IGJlaW5nIHNlbnQg
YW4gSVBJLiAgV2UgYWNoaWV2ZSB0aGlzIGJ5CkBAIC00NzgsMTUgKzQ4Nywx
OSBAQCB2b2lkIG13YWl0X2lkbGVfd2l0aF9oaW50cyh1bnNpZ25lZCBpbnQg
ZWF4LCB1bnNpZ25lZCBpbnQgZWN4KQogICAgICAgICAgICAgICAgICAgICIi
LCBYODZfQlVHX01PTklUT1IsCiAgICAgICAgICAgICAgICAgICAgW2luX213
YWl0XSAiPW0iIChzdGF0LT5pbl9td2FpdCkpOwogCisgICAgLyoKKyAgICAg
KiBPbiBBTUQgc3lzdGVtcywgc2lkZSBlZmZlY3RzIGZyb20gVkVSVyBjYW5j
ZWwgTU9OSVRPUiwgY2F1c2luZyBNV0FJVCB0bworICAgICAqIHdha2UgdXAg
aW1tZWRpYXRlbHkuICBUaGVyZWZvcmUsIFZFUlcgbXVzdCBjb21lIGFoZWFk
IG9mIE1PTklUT1IuCisgICAgICovCisgICAgX19zcGVjX2N0cmxfZW50ZXJf
aWRsZV92ZXJ3KGluZm8pOworCiAgICAgbW9uaXRvcih0aGlzX3NvZnRpcnFf
cGVuZGluZywgMCwgMCk7CiAKICAgICBBU1NFUlQoIWxvY2FsX2lycV9pc19l
bmFibGVkKCkpOwogCiAgICAgaWYgKCAhKnRoaXNfc29mdGlycV9wZW5kaW5n
ICkKICAgICB7Ci0gICAgICAgIHN0cnVjdCBjcHVfaW5mbyAqaW5mbyA9IGdl
dF9jcHVfaW5mbygpOwotCi0gICAgICAgIHNwZWNfY3RybF9lbnRlcl9pZGxl
KGluZm8pOworICAgICAgICBfX3NwZWNfY3RybF9lbnRlcl9pZGxlKGluZm8s
IGZhbHNlIC8qIFZFUlcgaGFuZGxlZCBhYm92ZSAqLyk7CiAKICAgICAgICAg
aWYgKCBlY3ggJiBNV0FJVF9FQ1hfSU5URVJSVVBUX0JSRUFLICkKICAgICAg
ICAgICAgIG13YWl0KGVheCwgZWN4KTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9zcGVjX2N0cmwuaCBiL3hlbi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9zcGVjX2N0cmwuaAppbmRleCAwNzcyMjU0MTg5NTYuLjY3
MjRkMzgxMjAyOSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL3NwZWNfY3RybC5oCisrKyBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9zcGVjX2N0cmwuaApAQCAtMTE1LDggKzExNSwyMiBAQCBzdGF0aWMgaW5s
aW5lIHZvaWQgaW5pdF9zaGFkb3dfc3BlY19jdHJsX3N0YXRlKHZvaWQpCiAg
ICAgaW5mby0+dmVyd19zZWwgPSBfX0hZUEVSVklTT1JfRFMzMjsKIH0KIAor
c3RhdGljIGFsd2F5c19pbmxpbmUgdm9pZCBfX3NwZWNfY3RybF9lbnRlcl9p
ZGxlX3Zlcncoc3RydWN0IGNwdV9pbmZvICppbmZvKQoreworICAgIC8qCisg
ICAgICogRmx1c2gvc2NydWIgc3RydWN0dXJlcyB3aGljaCBhcmUgc3RhdGlj
YWxseSBwYXJ0aXRpb25lZCBiZXR3ZWVuIGFjdGl2ZQorICAgICAqIHRocmVh
ZHMuICBPdGhlcndpc2UgZGF0YSBvZiBvdXJzIChvZiB1bmtub3duIHNlbnNp
dGl2aXR5KSB3aWxsIGJlY29tZQorICAgICAqIGF2YWlsYWJsZSB0byBvdXIg
c2libGluZyB3aGVuIHdlIGdvIGlkbGUuCisgICAgICoKKyAgICAgKiBOb3Rl
OiBWRVJXIG11c3QgYmUgZW5jb2RlZCB3aXRoIGEgbWVtb3J5IG9wZXJhbmQs
IGFzIGl0IGlzIG9ubHkgdGhhdAorICAgICAqIGZvcm0gd2l0aCBzaWRlIGVm
ZmVjdHMuCisgICAgICovCisgICAgYWx0ZXJuYXRpdmVfaW5wdXQoIiIsICJ2
ZXJ3ICVbc2VsXSIsIFg4Nl9GRUFUVVJFX1NDX1ZFUldfSURMRSwKKyAgICAg
ICAgICAgICAgICAgICAgICBbc2VsXSAibSIgKGluZm8tPnZlcndfc2VsKSk7
Cit9CisKIC8qIFdBUk5JTkchIGByZXRgLCBgY2FsbCAqYCwgYGptcCAqYCBu
b3Qgc2FmZSBhZnRlciB0aGlzIGNhbGwuICovCi1zdGF0aWMgYWx3YXlzX2lu
bGluZSB2b2lkIHNwZWNfY3RybF9lbnRlcl9pZGxlKHN0cnVjdCBjcHVfaW5m
byAqaW5mbykKK3N0YXRpYyBhbHdheXNfaW5saW5lIHZvaWQgX19zcGVjX2N0
cmxfZW50ZXJfaWRsZShzdHJ1Y3QgY3B1X2luZm8gKmluZm8sIGJvb2wgdmVy
dykKIHsKICAgICB1aW50MzJfdCB2YWwgPSAwOwogCkBAIC0xMzUsMjEgKzE0
OSw4IEBAIHN0YXRpYyBhbHdheXNfaW5saW5lIHZvaWQgc3BlY19jdHJsX2Vu
dGVyX2lkbGUoc3RydWN0IGNwdV9pbmZvICppbmZvKQogICAgICAgICAgICAg
ICAgICAgICAgICJhIiAodmFsKSwgImMiIChNU1JfU1BFQ19DVFJMKSwgImQi
ICgwKSk7CiAgICAgYmFycmllcigpOwogCi0gICAgLyoKLSAgICAgKiBNaWNy
b2FyY2hpdGVjdHVyYWwgU3RvcmUgQnVmZmVyIERhdGEgU2FtcGxpbmc6Ci0g
ICAgICoKLSAgICAgKiBPbiB2dWxuZXJhYmxlIHN5c3RlbXMsIHN0b3JlIGJ1
ZmZlciBlbnRyaWVzIGFyZSBzdGF0aWNhbGx5IHBhcnRpdGlvbmVkCi0gICAg
ICogYmV0d2VlbiBhY3RpdmUgdGhyZWFkcy4gIFdoZW4gZW50ZXJpbmcgaWRs
ZSwgb3VyIHN0b3JlIGJ1ZmZlciBlbnRyaWVzCi0gICAgICogYXJlIHJlLXBh
cnRpdGlvbmVkIHRvIGFsbG93IHRoZSBvdGhlciB0aHJlYWRzIHRvIHVzZSB0
aGVtLgotICAgICAqCi0gICAgICogRmx1c2ggdGhlIGJ1ZmZlcnMgdG8gZW5z
dXJlIHRoYXQgbm8gc2Vuc2l0aXZlIGRhdGEgb2Ygb3VycyBjYW4gYmUKLSAg
ICAgKiBsZWFrZWQgYnkgYSBzaWJsaW5nIGFmdGVyIGl0IGdldHMgb3VyIHN0
b3JlIGJ1ZmZlciBlbnRyaWVzLgotICAgICAqCi0gICAgICogTm90ZTogVkVS
VyBtdXN0IGJlIGVuY29kZWQgd2l0aCBhIG1lbW9yeSBvcGVyYW5kLCBhcyBp
dCBpcyBvbmx5IHRoYXQKLSAgICAgKiBmb3JtIHdoaWNoIGNhdXNlcyBhIGZs
dXNoLgotICAgICAqLwotICAgIGFsdGVybmF0aXZlX2lucHV0KCIiLCAidmVy
dyAlW3NlbF0iLCBYODZfRkVBVFVSRV9TQ19WRVJXX0lETEUsCi0gICAgICAg
ICAgICAgICAgICAgICAgW3NlbF0gIm0iIChpbmZvLT52ZXJ3X3NlbCkpOwor
ICAgIGlmICggdmVydyApIC8qIEV4cGVjdGVkIHRvIGJlIGNvbnN0LXByb3Bh
Z2F0ZWQuICovCisgICAgICAgIF9fc3BlY19jdHJsX2VudGVyX2lkbGVfdmVy
dyhpbmZvKTsKIAogICAgIC8qCiAgICAgICogQ3Jvc3MtVGhyZWFkIFJldHVy
biBBZGRyZXNzIFByZWRpY3Rpb25zOgpAQCAtMTY3LDYgKzE2OCwxMiBAQCBz
dGF0aWMgYWx3YXlzX2lubGluZSB2b2lkIHNwZWNfY3RybF9lbnRlcl9pZGxl
KHN0cnVjdCBjcHVfaW5mbyAqaW5mbykKICAgICAgICAgICAgICAgICAgICAg
ICA6ICJyYXgiLCAicmN4Iik7CiB9CiAKKy8qIFdBUk5JTkchIGByZXRgLCBg
Y2FsbCAqYCwgYGptcCAqYCBub3Qgc2FmZSBhZnRlciB0aGlzIGNhbGwuICov
CitzdGF0aWMgYWx3YXlzX2lubGluZSB2b2lkIHNwZWNfY3RybF9lbnRlcl9p
ZGxlKHN0cnVjdCBjcHVfaW5mbyAqaW5mbykKK3sKKyAgICBfX3NwZWNfY3Ry
bF9lbnRlcl9pZGxlKGluZm8sIHRydWUgLyogVkVSVyAqLyk7Cit9CisKIC8q
IFdBUk5JTkchIGByZXRgLCBgY2FsbCAqYCwgYGptcCAqYCBub3Qgc2FmZSBi
ZWZvcmUgdGhpcyBjYWxsLiAqLwogc3RhdGljIGFsd2F5c19pbmxpbmUgdm9p
ZCBzcGVjX2N0cmxfZXhpdF9pZGxlKHN0cnVjdCBjcHVfaW5mbyAqaW5mbykK
IHsK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.18-18.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.18-18.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVGh1LCAyOSBBdWcgMjAyNCAxNzozNjoxMSArMDEwMApTdWJq
ZWN0OiB4ODYvc3BlYy1jdHJsOiBNaXRpZ2F0ZSBUcmFuc2l0aXZlIFNjaGVk
dWxlciBBdHRhY2tzCgpUU0EgYWZmZWN0cyBBTUQgRmFtMTloIENQVXMgKFpl
bjMgYW5kIDQgbWljcm9hcmNoaXRlY3R1cmVzKS4KClRocmVlIG5ldyBDUFVJ
RCBiaXRzIGhhdmUgYmVlbiBkZWZpbmVkLiAgVHdvIChUU0FfU1FfTk8gYW5k
IFRTQV9MMV9OTykKaW5kaWNhdGUgdGhhdCB0aGUgc3lzdGVtIGlzIHVuYWZm
ZWN0ZWQsIGFuZCBtdXN0IGJlIHN5bnRoZXNpc2VkIGJ5IFhlbiBvbgp1bmFm
ZmVjdGVkIHBhcnRzIHRvIGRhdGUuCgpBIHRoaXJkIG5ldyBiaXQgaW5kaWNh
dGVzIHRoYXQgVkVSVyBub3cgaGFzIGEgZmx1c2hpbmcgc2lkZSBlZmZlY3Qu
ICBYZW4gbXVzdApzeW50aGVzaXNlIHRoaXMgYml0IG9uIGFmZmVjdGVkIHN5
c3RlbXMgYmFzZWQgb24gbWljcm9jb2RlIHZlcnNpb24uICBBcyB3aXRoCm90
aGVyIFZFUlctYmFzZWQgZmx1c2hpbmcgZmVhdHVyZXMsIFZFUldfQ0xFQVIg
bmVlZHMgT1ItaW5nIGFjcm9zcyBhIHJlc291cmNlCnBvb2wsIGFuZCBndWVz
dHMgd2hpY2ggaGF2ZSBzZWVuIGl0IGNhbiBzYWZlbHkgbWlncmF0ZSBpbi4K
ClRoaXMgaXMgcGFydCBvZiBYU0EtNDcxIC8gQ1ZFLTIwMjQtMzYzNTAgLyBD
VkUtMjAyNC0zNjM1Ny4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIg
PGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5OiBKYW4g
QmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CgpkaWZmIC0tZ2l0IGEvdG9v
bHMvbWlzYy94ZW4tY3B1aWQuYyBiL3Rvb2xzL21pc2MveGVuLWNwdWlkLmMK
aW5kZXggMTliOTA2OGQzNmVjLi40ZmJmZDYzZGZkYzQgMTAwNjQ0Ci0tLSBh
L3Rvb2xzL21pc2MveGVuLWNwdWlkLmMKKysrIGIvdG9vbHMvbWlzYy94ZW4t
Y3B1aWQuYwpAQCAtMTk4LDYgKzE5OCw3IEBAIHN0YXRpYyBjb25zdCBjaGFy
ICpjb25zdCBzdHJfN2ExWzMyXSA9CiBzdGF0aWMgY29uc3QgY2hhciAqY29u
c3Qgc3RyX2UyMWFbMzJdID0KIHsKICAgICBbIDJdID0gImxmZW5jZSsiLAor
ICAgIC8qIDQgKi8gICAgICAgICAgICAgICAgIFsgNV0gPSAidmVydy1jbGVh
ciIsCiAgICAgWyA2XSA9ICJuc2NiIiwKICAgICBbIDhdID0gImF1dG8taWJy
cyIsCiAKQEAgLTI1Niw2ICsyNTcsOCBAQCBzdGF0aWMgY29uc3QgY2hhciAq
Y29uc3Qgc3RyX20xMEFsWzY0XSA9CiAKIHN0YXRpYyBjb25zdCBjaGFyICpj
b25zdCBzdHJfZTIxY1szMl0gPQogeworICAgIC8qIDAgKi8gICAgICAgICAg
ICAgICAgICAgICAgIFsgMV0gPSAidHNhLXNxLW5vIiwKKyAgICBbIDJdID0g
InRzYS1sMS1ubyIsCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHsKZGlm
ZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9jcHUtcG9saWN5LmMgYi94ZW4vYXJj
aC94ODYvY3B1LXBvbGljeS5jCmluZGV4IDY2MjAwMjMzMzg3OS4uYWFlOGU0
OTgzYzAzIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvY3B1LXBvbGljeS5j
CisrKyBiL3hlbi9hcmNoL3g4Ni9jcHUtcG9saWN5LmMKQEAgLTUwNSw2ICs1
MDUsMTcgQEAgc3RhdGljIHZvaWQgX19pbml0IGd1ZXN0X2NvbW1vbl9tYXhf
ZmVhdHVyZV9hZGp1c3RtZW50cyh1aW50MzJfdCAqZnMpCiAgICAgICAgIGlm
ICggdGVzdF9iaXQoWDg2X0ZFQVRVUkVfUlRNLCBmcykgKQogICAgICAgICAg
ICAgX19zZXRfYml0KFg4Nl9GRUFUVVJFX1JUTV9BTFdBWVNfQUJPUlQsIGZz
KTsKICAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFg4Nl9WRU5ET1JfQU1E
OgorICAgICAgICAvKgorICAgICAgICAgKiBUaGlzIGJpdCBpbmRpY2F0ZXMg
dGhhdCB0aGUgVkVSVyBpbnN0cnVjdGlvbiBtYXkgaGF2ZSBnYWluZWQKKyAg
ICAgICAgICogc2NydWJiaW5nIHNpZGUgZWZmZWN0cy4gIFdpdGggcG9vbGlu
ZywgaXQgbWVhbnMgInlvdSBtaWdodCBtaWdyYXRlCisgICAgICAgICAqIHNv
bWV3aGVyZSB3aGVyZSBzY3J1YmJpbmcgaXMgbmVjZXNzYXJ5IiwgYW5kIG1h
eSBuZWVkIGV4cG9zaW5nIG9uCisgICAgICAgICAqIHVuYWZmZWN0ZWQgaGFy
ZHdhcmUuICBUaGlzIGlzIGZpbmUsIGJlY2F1c2UgdGhlIFZFUlcgaW5zdHJ1
Y3Rpb24KKyAgICAgICAgICogaGFzIGJlZW4gYXJvdW5kIHNpbmNlIHRoZSAy
ODYuCisgICAgICAgICAqLworICAgICAgICBfX3NldF9iaXQoWDg2X0ZFQVRV
UkVfVkVSV19DTEVBUiwgZnMpOworICAgICAgICBicmVhazsKICAgICB9CiAK
ICAgICAvKgpAQCAtNTgzLDYgKzU5NCwxNyBAQCBzdGF0aWMgdm9pZCBfX2lu
aXQgZ3Vlc3RfY29tbW9uX2RlZmF1bHRfZmVhdHVyZV9hZGp1c3RtZW50cyh1
aW50MzJfdCAqZnMpCiAgICAgICAgICAgICBfX3NldF9iaXQoWDg2X0ZFQVRV
UkVfUlRNX0FMV0FZU19BQk9SVCwgZnMpOwogICAgICAgICB9CiAgICAgICAg
IGJyZWFrOworCisgICAgY2FzZSBYODZfVkVORE9SX0FNRDoKKyAgICAgICAg
LyoKKyAgICAgICAgICogVGhpcyBiaXQgaW5kaWNhdGUgdGhhdCB0aGUgVkVS
VyBpbnN0cnVjdGlvbiBtYXkgaGF2ZSBnYWluZWQKKyAgICAgICAgICogc2Ny
dWJiaW5nIHNpZGUgZWZmZWN0cy4gIFRoZSBtYXggcG9saWN5IGhhcyBpdCBz
ZXQgZm9yIG1pZ3JhdGlvbgorICAgICAgICAgKiByZWFzb25zLCBzbyByZXNl
dCB0aGUgZGVmYXVsdCBwb2xpY3kgYmFjayB0byB0aGUgaG9zdCB2YWx1ZSBp
biBjYXNlCisgICAgICAgICAqIHdlJ3JlIHVuYWZmZWN0ZWQuCisgICAgICAg
ICAqLworICAgICAgICBpZiAoICFjcHVfaGFzX3ZlcndfY2xlYXIgKQorICAg
ICAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVfVkVSV19DTEVBUiwg
ZnMpOworICAgICAgICBicmVhazsKICAgICB9CiAKICAgICAvKgpkaWZmIC0t
Z2l0IGEveGVuL2FyY2gveDg2L2h2bS9zdm0vZW50cnkuUyBiL3hlbi9hcmNo
L3g4Ni9odm0vc3ZtL2VudHJ5LlMKaW5kZXggOWZiNDU3YWQ5NThlLi5kYjQ5
ODEzZDc3MmEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vc3ZtL2Vu
dHJ5LlMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9zdm0vZW50cnkuUwpAQCAt
OTksNiArOTksOCBAQCBfX1VOTElLRUxZX0VORChuc3ZtX2hhcCkKICAgICAg
ICAgcG9wICAlcnNpCiAgICAgICAgIHBvcCAgJXJkaQogCisgICAgICAgIFNQ
RUNfQ1RSTF9DT05EX1ZFUlcgICAgIC8qIFJlcTogJXJzcD1lZnJhbWUgICAg
ICAgICAgICAgICAgICAgIENsb2I6IGVmbCAqLworCiAgICAgICAgIHZtcnVu
CiAKICAgICAgICAgU0FWRV9BTEwKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlLmggYi94ZW4vYXJjaC94ODYvaW5j
bHVkZS9hc20vY3B1ZmVhdHVyZS5oCmluZGV4IDkxOWE5ZTMxZjA0ZS4uYmJh
ZTkzMDVkZTRlIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9h
c20vY3B1ZmVhdHVyZS5oCisrKyBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9jcHVmZWF0dXJlLmgKQEAgLTE5Miw2ICsxOTIsNyBAQCBzdGF0aWMgaW5s
aW5lIGJvb2wgYm9vdF9jcHVfaGFzKHVuc2lnbmVkIGludCBmZWF0KQogCiAv
KiBDUFVJRCBsZXZlbCAweDgwMDAwMDIxLmVheCAqLwogI2RlZmluZSBjcHVf
aGFzX2xmZW5jZV9kaXNwYXRjaCBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVf
TEZFTkNFX0RJU1BBVENIKQorI2RlZmluZSBjcHVfaGFzX3ZlcndfY2xlYXIg
ICAgICBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfVkVSV19DTEVBUikKICNk
ZWZpbmUgY3B1X2hhc19uc2NiICAgICAgICAgICAgYm9vdF9jcHVfaGFzKFg4
Nl9GRUFUVVJFX05TQ0IpCiAKIC8qIENQVUlEIGxldmVsIDB4MDAwMDAwMDc6
MS5lZHggKi8KQEAgLTIxOCw2ICsyMTksMTAgQEAgc3RhdGljIGlubGluZSBi
b29sIGJvb3RfY3B1X2hhcyh1bnNpZ25lZCBpbnQgZmVhdCkKICNkZWZpbmUg
Y3B1X2hhc19wYl9vcHRfY3RybCAgICAgYm9vdF9jcHVfaGFzKFg4Nl9GRUFU
VVJFX1BCX09QVF9DVFJMKQogI2RlZmluZSBjcHVfaGFzX2l0c19ubyAgICAg
ICAgICBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfSVRTX05PKQogCisvKiBD
UFVJRCBsZXZlbCAweDgwMDAwMDIxLmVjeCAqLworI2RlZmluZSBjcHVfaGFz
X3RzYV9zcV9ubyAgICAgICBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfVFNB
X1NRX05PKQorI2RlZmluZSBjcHVfaGFzX3RzYV9sMV9ubyAgICAgICBib290
X2NwdV9oYXMoWDg2X0ZFQVRVUkVfVFNBX0wxX05PKQorCiAvKiBTeW50aGVz
aXplZC4gKi8KICNkZWZpbmUgY3B1X2hhc19hcmNoX3BlcmZtb24gICAgYm9v
dF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0FSQ0hfUEVSRk1PTikKICNkZWZpbmUg
Y3B1X2hhc19jcHVpZF9mYXVsdGluZyAgYm9vdF9jcHVfaGFzKFg4Nl9GRUFU
VVJFX0NQVUlEX0ZBVUxUSU5HKQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2
L3NwZWNfY3RybC5jIGIveGVuL2FyY2gveDg2L3NwZWNfY3RybC5jCmluZGV4
IGQ4NzAyYjBlMTg5Yy4uYzFhZDMzNWQ5ZWE5IDEwMDY0NAotLS0gYS94ZW4v
YXJjaC94ODYvc3BlY19jdHJsLmMKKysrIGIveGVuL2FyY2gveDg2L3NwZWNf
Y3RybC5jCkBAIC00OTIsNyArNDkyLDcgQEAgY3VzdG9tX3BhcmFtKCJwdi1s
MXRmIiwgcGFyc2VfcHZfbDF0Zik7CiAKIHN0YXRpYyB2b2lkIF9faW5pdCBw
cmludF9kZXRhaWxzKGVudW0gaW5kX3RodW5rIHRodW5rKQogewotICAgIHVu
c2lnbmVkIGludCBfN2QwID0gMCwgXzdkMiA9IDAsIGU4YiA9IDAsIGUyMWEg
PSAwLCBtYXggPSAwLCB0bXA7CisgICAgdW5zaWduZWQgaW50IF83ZDAgPSAw
LCBfN2QyID0gMCwgZThiID0gMCwgZTIxYSA9IDAsIGUyMWMgPSAwLCBtYXgg
PSAwLCB0bXA7CiAgICAgdWludDY0X3QgY2FwcyA9IDA7CiAKICAgICAvKiBD
b2xsZWN0IGRpYWdub3N0aWNzIGFib3V0IGF2YWlsYWJsZSBtaXRpZ2F0aW9u
cy4gKi8KQEAgLTUwMyw3ICs1MDMsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQg
cHJpbnRfZGV0YWlscyhlbnVtIGluZF90aHVuayB0aHVuaykKICAgICBpZiAo
IGJvb3RfY3B1X2RhdGEuZXh0ZW5kZWRfY3B1aWRfbGV2ZWwgPj0gMHg4MDAw
MDAwOCApCiAgICAgICAgIGNwdWlkKDB4ODAwMDAwMDgsICZ0bXAsICZlOGIs
ICZ0bXAsICZ0bXApOwogICAgIGlmICggYm9vdF9jcHVfZGF0YS5leHRlbmRl
ZF9jcHVpZF9sZXZlbCA+PSAweDgwMDAwMDIxICkKLSAgICAgICAgY3B1aWQo
MHg4MDAwMDAyMSwgJmUyMWEsICZ0bXAsICZ0bXAsICZ0bXApOworICAgICAg
ICBjcHVpZCgweDgwMDAwMDIxVSwgJmUyMWEsICZ0bXAsICZlMjFjLCAmdG1w
KTsKICAgICBpZiAoIGNwdV9oYXNfYXJjaF9jYXBzICkKICAgICAgICAgcmRt
c3JsKE1TUl9BUkNIX0NBUEFCSUxJVElFUywgY2Fwcyk7CiAKQEAgLTUxMyw3
ICs1MTMsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgcHJpbnRfZGV0YWlscyhl
bnVtIGluZF90aHVuayB0aHVuaykKICAgICAgKiBIYXJkd2FyZSByZWFkLW9u
bHkgaW5mb3JtYXRpb24sIHN0YXRpbmcgaW1tdW5pdHkgdG8gY2VydGFpbiBp
c3N1ZXMsIG9yCiAgICAgICogc3VnZ2VzdGlvbnMgb2Ygd2hpY2ggbWl0aWdh
dGlvbiB0byB1c2UuCiAgICAgICovCi0gICAgcHJpbnRrKCIgIEhhcmR3YXJl
IGhpbnRzOiVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVz
JXMlcyVzJXMlc1xuIiwKKyAgICBwcmludGsoIiAgSGFyZHdhcmUgaGludHM6
JXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMl
cyVzJXMlc1xuIiwKICAgICAgICAgICAgKGNhcHMgJiBBUkNIX0NBUFNfUkRD
TF9OTykgICAgICAgICAgICAgICAgICAgICAgICA/ICIgUkRDTF9OTyIgICAg
ICAgIDogIiIsCiAgICAgICAgICAgIChjYXBzICYgQVJDSF9DQVBTX0VJQlJT
KSAgICAgICAgICAgICAgICAgICAgICAgICAgPyAiIEVJQlJTIiAgICAgICAg
ICA6ICIiLAogICAgICAgICAgICAoY2FwcyAmIEFSQ0hfQ0FQU19SU0JBKSAg
ICAgICAgICAgICAgICAgICAgICAgICAgID8gIiBSU0JBIiAgICAgICAgICAg
OiAiIiwKQEAgLTUzOCwxMCArNTM4LDEyIEBAIHN0YXRpYyB2b2lkIF9faW5p
dCBwcmludF9kZXRhaWxzKGVudW0gaW5kX3RodW5rIHRodW5rKQogICAgICAg
ICAgICAoZThiICAmIGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9JQlBCX1JF
VCkpICAgICAgID8gIiBJQlBCX1JFVCIgICAgICAgOiAiIiwKICAgICAgICAg
ICAgKGUyMWEgJiBjcHVmZWF0X21hc2soWDg2X0ZFQVRVUkVfSUJQQl9CUlRZ
UEUpKSAgICA/ICIgSUJQQl9CUlRZUEUiICAgIDogIiIsCiAgICAgICAgICAg
IChlMjFhICYgY3B1ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX1NSU09fTk8pKSAg
ICAgICAgPyAiIFNSU09fTk8iICAgICAgICA6ICIiLAotICAgICAgICAgICAo
ZTIxYSAmIGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9TUlNPX1VTX05PKSkg
ICAgID8gIiBTUlNPX1VTX05PIiAgICAgOiAiIik7CisgICAgICAgICAgIChl
MjFhICYgY3B1ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX1NSU09fVVNfTk8pKSAg
ICAgPyAiIFNSU09fVVNfTk8iICAgICA6ICIiLAorICAgICAgICAgICAoZTIx
YyAmIGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9UU0FfU1FfTk8pKSAgICAg
ID8gIiBUU0FfU1FfTk8iICAgICAgOiAiIiwKKyAgICAgICAgICAgKGUyMWMg
JiBjcHVmZWF0X21hc2soWDg2X0ZFQVRVUkVfVFNBX0wxX05PKSkgICAgICA/
ICIgVFNBX0wxX05PIiAgICAgIDogIiIpOwogCiAgICAgLyogSGFyZHdhcmUg
ZmVhdHVyZXMgd2hpY2ggbmVlZCBkcml2aW5nIHRvIG1pdGlnYXRlIGlzc3Vl
cy4gKi8KLSAgICBwcmludGsoIiAgSGFyZHdhcmUgZmVhdHVyZXM6JXMlcyVz
JXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzXG4iLAorICAgIHByaW50aygiICBI
YXJkd2FyZSBmZWF0dXJlczolcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVz
JXMlc1xuIiwKICAgICAgICAgICAgKGU4YiAgJiBjcHVmZWF0X21hc2soWDg2
X0ZFQVRVUkVfSUJQQikpIHx8CiAgICAgICAgICAgIChfN2QwICYgY3B1ZmVh
dF9tYXNrKFg4Nl9GRUFUVVJFX0lCUlNCKSkgICAgICAgICAgPyAiIElCUEIi
ICAgICAgICAgICA6ICIiLAogICAgICAgICAgICAoZThiICAmIGNwdWZlYXRf
bWFzayhYODZfRkVBVFVSRV9JQlJTKSkgfHwKQEAgLTU2MSw3ICs1NjMsOCBA
QCBzdGF0aWMgdm9pZCBfX2luaXQgcHJpbnRfZGV0YWlscyhlbnVtIGluZF90
aHVuayB0aHVuaykKICAgICAgICAgICAgKGNhcHMgJiBBUkNIX0NBUFNfR0RT
X0NUUkwpICAgICAgICAgICAgICAgICAgICAgICA/ICIgR0RTX0NUUkwiICAg
ICAgIDogIiIsCiAgICAgICAgICAgIChjYXBzICYgQVJDSF9DQVBTX1JGRFNf
Q0xFQVIpICAgICAgICAgICAgICAgICAgICAgPyAiIFJGRFNfQ0xFQVIiICAg
ICA6ICIiLAogICAgICAgICAgICAoZTIxYSAmIGNwdWZlYXRfbWFzayhYODZf
RkVBVFVSRV9TQlBCKSkgICAgICAgICAgID8gIiBTQlBCIiAgICAgICAgICAg
OiAiIiwKLSAgICAgICAgICAgKGUyMWEgJiBjcHVmZWF0X21hc2soWDg2X0ZF
QVRVUkVfU1JTT19NU1JfRklYKSkgICA/ICIgU1JTT19NU1JfRklYIiAgIDog
IiIpOworICAgICAgICAgICAoZTIxYSAmIGNwdWZlYXRfbWFzayhYODZfRkVB
VFVSRV9TUlNPX01TUl9GSVgpKSAgID8gIiBTUlNPX01TUl9GSVgiICAgOiAi
IiwKKyAgICAgICAgICAgKGUyMWEgJiBjcHVmZWF0X21hc2soWDg2X0ZFQVRV
UkVfVkVSV19DTEVBUikpICAgICA/ICIgVkVSV19DTEVBUiIgICAgIDogIiIp
OwogCiAgICAgLyogQ29tcGlsZWQtaW4gc3VwcG9ydCB3aGljaCBwZXJ0YWlu
cyB0byBtaXRpZ2F0aW9ucy4gKi8KICAgICBpZiAoIElTX0VOQUJMRUQoQ09O
RklHX0lORElSRUNUX1RIVU5LKSB8fCBJU19FTkFCTEVEKENPTkZJR19TSEFE
T1dfUEFHSU5HKSB8fApAQCAtMTU0NSw2ICsxNTQ4LDc3IEBAIHN0YXRpYyB2
b2lkIF9faW5pdCByZmRzX2NhbGN1bGF0aW9ucyh2b2lkKQogICAgIHNldHVw
X2ZvcmNlX2NwdV9jYXAoWDg2X0ZFQVRVUkVfUkZEU19OTyk7CiB9CiAKKy8q
CisgKiBUcmFuc2llbnQgU2NoZWR1bGVyIEF0dGFja3MKKyAqCisgKiBodHRw
czovL3d3dy5hbWQuY29tL2NvbnRlbnQvZGFtL2FtZC9lbi9kb2N1bWVudHMv
cmVzb3VyY2VzL2J1bGxldGluL3RlY2huaWNhbC1ndWlkYW5jZS1mb3ItbWl0
aWdhdGluZy10cmFuc2llbnQtc2NoZWR1bGVyLWF0dGFja3MucGRmCisgKi8K
K3N0YXRpYyB2b2lkIF9faW5pdCB0c2FfY2FsY3VsYXRpb25zKHZvaWQpCit7
CisgICAgdW5zaWduZWQgaW50IGN1cnJfcmV2LCBtaW5fcmV2OworCisgICAg
LyogVFNBIGlzIG9ubHkga25vd24gdG8gYWZmZWN0IEFNRCBwcm9jZXNzb3Jz
IGF0IHRoaXMgdGltZS4gKi8KKyAgICBpZiAoIGJvb3RfY3B1X2RhdGEueDg2
X3ZlbmRvciAhPSBYODZfVkVORE9SX0FNRCApCisgICAgICAgIHJldHVybjsK
KworICAgIC8qIElmIHdlJ3JlIHZpcnR1YWxpc2VkLCBkb24ndCBhdHRlbXB0
IHRvIHN5bnRoZXNpc2UgYW55dGhpbmcuICovCisgICAgaWYgKCBjcHVfaGFz
X2h5cGVydmlzb3IgKQorICAgICAgICByZXR1cm47CisKKyAgICAvKgorICAg
ICAqIEFjY29yZGluZyB0byB0aGUgd2hpdGVwYXBlciwgc29tZSBGYW0xQSBD
UFVzIChNb2RlbHMgMHgwMC4uLjB4NGYsCisgICAgICogMHg2MC4uLjB4N2Yp
IGFyZSBub3QgdnVsbmVyYWJsZSBidXQgZG9uJ3QgZW51bWVyYXRlIFRTQV97
U1EsTDF9X05PLiAgSWYKKyAgICAgKiB3ZSBzZWUgZWl0aGVyIGVudW1lcmF0
ZWQsIGFzc3VtZSBib3RoIGFyZSBjb3JyZWN0IC4uLgorICAgICAqLworICAg
IGlmICggY3B1X2hhc190c2Ffc3Ffbm8gfHwgY3B1X2hhc190c2FfbDFfbm8g
KQorICAgICAgICByZXR1cm47CisKKyAgICAvKgorICAgICAqIC4uLiBvdGhl
cndpc2UsIHN5bnRoZXNpc2UgdGhlbS4gIENQVXMgb3RoZXIgdGhhbiBGYW0x
OSAoWmVuMy80KSBhcmUKKyAgICAgKiBzdGF0ZWQgdG8gYmUgbm90IHZ1bG5l
cmFibGUuCisgICAgICovCisgICAgaWYgKCBib290X2NwdV9kYXRhLng4NiAh
PSAweDE5ICkKKyAgICB7CisgICAgICAgIHNldHVwX2ZvcmNlX2NwdV9jYXAo
WDg2X0ZFQVRVUkVfVFNBX1NRX05PKTsKKyAgICAgICAgc2V0dXBfZm9yY2Vf
Y3B1X2NhcChYODZfRkVBVFVSRV9UU0FfTDFfTk8pOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgLyoKKyAgICAgKiBGYW0xOSBDUFVzIGdldCBW
RVJXX0NMRUFSIHdpdGggbmV3IGVub3VnaCBtaWNyb2NvZGUsIGJ1dCBtdXN0
CisgICAgICogc3ludGhlc2lzZSB0aGUgQ1BVSUQgYml0LgorICAgICAqLwor
ICAgIGN1cnJfcmV2ID0gdGhpc19jcHUoY3B1X3NpZykucmV2OworICAgIHN3
aXRjaCAoIGN1cnJfcmV2ID4+IDggKQorICAgIHsKKyAgICBjYXNlIDB4MGEw
MDExOiBtaW5fcmV2ID0gMHgwYTAwMTFkNzsgYnJlYWs7CisgICAgY2FzZSAw
eDBhMDAxMjogbWluX3JldiA9IDB4MGEwMDEyM2I7IGJyZWFrOworICAgIGNh
c2UgMHgwYTAwODI6IG1pbl9yZXYgPSAweDBhMDA4MjBkOyBicmVhazsKKyAg
ICBjYXNlIDB4MGExMDExOiBtaW5fcmV2ID0gMHgwYTEwMTE0YzsgYnJlYWs7
CisgICAgY2FzZSAweDBhMTAxMjogbWluX3JldiA9IDB4MGExMDEyNGM7IGJy
ZWFrOworICAgIGNhc2UgMHgwYTEwODE6IG1pbl9yZXYgPSAweDBhMTA4MTA5
OyBicmVhazsKKyAgICBjYXNlIDB4MGEyMDEwOiBtaW5fcmV2ID0gMHgwYTIw
MTAyZTsgYnJlYWs7CisgICAgY2FzZSAweDBhMjAxMjogbWluX3JldiA9IDB4
MGEyMDEyMTE7IGJyZWFrOworICAgIGNhc2UgMHgwYTQwNDE6IG1pbl9yZXYg
PSAweDBhNDA0MTA4OyBicmVhazsKKyAgICBjYXNlIDB4MGE1MDAwOiBtaW5f
cmV2ID0gMHgwYTUwMDAxMjsgYnJlYWs7CisgICAgY2FzZSAweDBhNjAxMjog
bWluX3JldiA9IDB4MGE2MDEyMGE7IGJyZWFrOworICAgIGNhc2UgMHgwYTcw
NDE6IG1pbl9yZXYgPSAweDBhNzA0MTA4OyBicmVhazsKKyAgICBjYXNlIDB4
MGE3MDUyOiBtaW5fcmV2ID0gMHgwYTcwNTIwODsgYnJlYWs7CisgICAgY2Fz
ZSAweDBhNzA4MDogbWluX3JldiA9IDB4MGE3MDgwMDg7IGJyZWFrOworICAg
IGNhc2UgMHgwYTcwYzA6IG1pbl9yZXYgPSAweDBhNzBjMDA4OyBicmVhazsK
KyAgICBjYXNlIDB4MGFhMDAyOiBtaW5fcmV2ID0gMHgwYWEwMDIxNjsgYnJl
YWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJO
SU5HCisgICAgICAgICAgICAgICAiVW5yZWNvZ25pc2VkIENQVSAlMDJ4LSUw
MngtJTAyeCwgdWNvZGUgMHglMDh4IGZvciBUU0EgbWl0aWdhdGlvblxuIiwK
KyAgICAgICAgICAgICAgIGJvb3RfY3B1X2RhdGEueDg2LCBib290X2NwdV9k
YXRhLng4Nl9tb2RlbCwKKyAgICAgICAgICAgICAgIGJvb3RfY3B1X2RhdGEu
eDg2X21hc2ssIGN1cnJfcmV2KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIGlmICggY3Vycl9yZXYgPj0gbWluX3JldiApCisgICAgICAgIHNl
dHVwX2ZvcmNlX2NwdV9jYXAoWDg2X0ZFQVRVUkVfVkVSV19DTEVBUik7Cit9
CisKIHN0YXRpYyBib29sIF9faW5pdCBjcHVfaGFzX2dkcyh2b2lkKQogewog
ICAgIC8qCkBAIC0yMjM4LDYgKzIzMTIsNyBAQCB2b2lkIF9faW5pdCBpbml0
X3NwZWN1bGF0aW9uX21pdGlnYXRpb25zKHZvaWQpCiAgICAgICogaHR0cHM6
Ly93d3cuaW50ZWwuY29tL2NvbnRlbnQvd3d3L3VzL2VuL2RldmVsb3Blci9h
cnRpY2xlcy90ZWNobmljYWwvc29mdHdhcmUtc2VjdXJpdHktZ3VpZGFuY2Uv
dGVjaG5pY2FsLWRvY3VtZW50YXRpb24vaW50ZWwtYW5hbHlzaXMtbWljcm9h
cmNoaXRlY3R1cmFsLWRhdGEtc2FtcGxpbmcuaHRtbAogICAgICAqIGh0dHBz
Oi8vd3d3LmludGVsLmNvbS9jb250ZW50L3d3dy91cy9lbi9kZXZlbG9wZXIv
YXJ0aWNsZXMvdGVjaG5pY2FsL3NvZnR3YXJlLXNlY3VyaXR5LWd1aWRhbmNl
L3RlY2huaWNhbC1kb2N1bWVudGF0aW9uL3Byb2Nlc3Nvci1tbWlvLXN0YWxl
LWRhdGEtdnVsbmVyYWJpbGl0aWVzLmh0bWwKICAgICAgKiBodHRwczovL3d3
dy5pbnRlbC5jb20vY29udGVudC93d3cvdXMvZW4vZGV2ZWxvcGVyL2FydGlj
bGVzL3RlY2huaWNhbC9zb2Z0d2FyZS1zZWN1cml0eS1ndWlkYW5jZS9hZHZp
c29yeS1ndWlkYW5jZS9yZWdpc3Rlci1maWxlLWRhdGEtc2FtcGxpbmcuaHRt
bAorICAgICAqIGh0dHBzOi8vd3d3LmFtZC5jb20vY29udGVudC9kYW0vYW1k
L2VuL2RvY3VtZW50cy9yZXNvdXJjZXMvYnVsbGV0aW4vdGVjaG5pY2FsLWd1
aWRhbmNlLWZvci1taXRpZ2F0aW5nLXRyYW5zaWVudC1zY2hlZHVsZXItYXR0
YWNrcy5wZGYKICAgICAgKgogICAgICAqIFJlbGV2YW50IHVjb2RlczoKICAg
ICAgKgpAQCAtMjI3MCw5ICsyMzQ1LDE4IEBAIHZvaWQgX19pbml0IGluaXRf
c3BlY3VsYXRpb25fbWl0aWdhdGlvbnModm9pZCkKICAgICAgKgogICAgICAq
IC0gTWFyY2ggMjAyMywgZm9yIFJGRFMuICBFbnVtZXJhdGUgUkZEU19DTEVB
UiB0byBtZWFuIHRoYXQgVkVSVyBub3cKICAgICAgKiAgIHNjcnVicyBub24t
YXJjaGl0ZWN0dXJhbCBlbnRyaWVzIGZyb20gY2VydGFpbiByZWdpc3RlciBm
aWxlcy4KKyAgICAgKgorICAgICAqIC0gSnVseSAyMDI1LCBmb3IgVFNBLiAg
SW50cm9kdWNlcyBWRVJXIHNpZGUgZWZmZWN0cyB0byBtaXRpZ2F0ZQorICAg
ICAqICAgVFNBX3tTUS9MMX0uICBYZW4gbXVzdCBzeW50aGVzaXNlIHRoZSBW
RVJXX0NMRUFSIGZlYXR1cmUgYmFzZWQgb24KKyAgICAgKiAgIG1pY3JvY29k
ZSB2ZXJzaW9uLgorICAgICAqCisgICAgICogICBOb3RlLCB0aGVzZSBtaWNy
b2NvZGUgdXBkYXRlcyB3ZXJlIHByb2R1Y2VkIGJlZm9yZSB0aGUgcmVtZWRp
YXRpb24gb2YKKyAgICAgKiAgIHRoZSBtaWNyb2NvZGUgc2lnbmF0dXJlIGlz
c3VlcywgYW5kIGFyZSBpbmNsdWRlZCBpbiB0aGUgZmlyd21hcmUKKyAgICAg
KiAgIHVwZGF0ZXMgZml4aW5nIHRoZSBlbnRyeXNpZ24gdnVsbmVyYWJpbGl0
eSBmcm9tIH5EZWNlbWJlciAyMDI0LgogICAgICAqLwogICAgIG1kc19jYWxj
dWxhdGlvbnMoKTsKICAgICByZmRzX2NhbGN1bGF0aW9ucygpOworICAgIHRz
YV9jYWxjdWxhdGlvbnMoKTsKIAogICAgIC8qCiAgICAgICogUGFydHMgd2hp
Y2ggZW51bWVyYXRlIEZCX0NMRUFSIGFyZSB0aG9zZSB3aXRoIG5vdy11cGRh
dGVkIG1pY3JvY29kZQpAQCAtMjMwNCwyMSArMjM4OCwyNyBAQCB2b2lkIF9f
aW5pdCBpbml0X3NwZWN1bGF0aW9uX21pdGlnYXRpb25zKHZvaWQpCiAgICAg
ICogTUxQRFMvTUZCRFMgd2hlbiBTTVQgaXMgZW5hYmxlZC4KICAgICAgKi8K
ICAgICBpZiAoIG9wdF92ZXJ3X3B2ID09IC0xICkKLSAgICAgICAgb3B0X3Zl
cndfcHYgPSBjcHVfaGFzX3VzZWZ1bF9tZF9jbGVhciB8fCBjcHVfaGFzX3Jm
ZHNfY2xlYXI7CisgICAgICAgIG9wdF92ZXJ3X3B2ID0gKGNwdV9oYXNfdXNl
ZnVsX21kX2NsZWFyIHx8IGNwdV9oYXNfcmZkc19jbGVhciB8fAorICAgICAg
ICAgICAgICAgICAgICAgICBjcHVfaGFzX3ZlcndfY2xlYXIpOwogCiAgICAg
aWYgKCBvcHRfdmVyd19odm0gPT0gLTEgKQotICAgICAgICBvcHRfdmVyd19o
dm0gPSBjcHVfaGFzX3VzZWZ1bF9tZF9jbGVhciB8fCBjcHVfaGFzX3JmZHNf
Y2xlYXI7CisgICAgICAgIG9wdF92ZXJ3X2h2bSA9IChjcHVfaGFzX3VzZWZ1
bF9tZF9jbGVhciB8fCBjcHVfaGFzX3JmZHNfY2xlYXIgfHwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGNwdV9oYXNfdmVyd19jbGVhcik7CiAKICAgICAv
KgotICAgICAqIElmIFNNVCBpcyBhY3RpdmUsIGFuZCB3ZSdyZSBwcm90ZWN0
aW5nIGFnYWluc3QgTURTIG9yIE1NSU8gc3RhbGUgZGF0YSwKKyAgICAgKiBJ
ZiBTTVQgaXMgYWN0aXZlLCBhbmQgd2UncmUgcHJvdGVjdGluZyBhZ2FpbnN0
IGFueSBvZjoKKyAgICAgKiAgIC0gTVNCRFMKKyAgICAgKiAgIC0gTU1JTyBz
dGFsZSBkYXRhCisgICAgICogICAtIFRTQS1TUQogICAgICAqIHdlIG5lZWQg
dG8gc2NydWIgYmVmb3JlIGdvaW5nIGlkbGUgYXMgd2VsbCBhcyBvbiByZXR1
cm4gdG8gZ3Vlc3QuCiAgICAgICogVmFyaW91cyBwaXBlbGluZSByZXNvdXJj
ZXMgYXJlIHJlcGFydGl0aW9uZWQgYW1vbmdzdCBub24taWRsZSB0aHJlYWRz
LgogICAgICAqCi0gICAgICogV2UgZG9uJ3QgbmVlZCB0byBzY3J1YiBvbiBp
ZGxlIGZvciBSRkRTLiAgVGhlcmUgYXJlIG5vIGFmZmVjdGVkIGNvcmVzCi0g
ICAgICogd2hpY2ggc3VwcG9ydCBTTVQsIGRlc3BpdGUgdGhlcmUgYmVpbmcg
YWZmZWN0ZWQgY29yZXMgaW4gaHlicmlkIHN5c3RlbXMKLSAgICAgKiB3aGlj
aCBoYXZlIFNNVCBlbHNld2hlcmUgaW4gdGhlIHBsYXRmb3JtLgorICAgICAq
IFdlIGRvbid0IG5lZWQgdG8gc2NydWIgb24gaWRsZSBmb3I6CisgICAgICog
ICAtIFJGRFMgKG5vIFNNVCBhZmZlY3RlZCBjb3JlcykKKyAgICAgKiAgIC0g
VFNBLUwxICh1dGFncyBuZXZlciBzaGFyZWQgYmV0d2VlbiB0aHJlYWRzKQog
ICAgICAqLwogICAgIGlmICggKChjcHVfaGFzX3VzZWZ1bF9tZF9jbGVhciAm
JiAob3B0X3ZlcndfcHYgfHwgb3B0X3ZlcndfaHZtKSkgfHwKKyAgICAgICAg
ICAoY3B1X2hhc192ZXJ3X2NsZWFyICYmICFjcHVfaGFzX3RzYV9zcV9ubykg
fHwKICAgICAgICAgICBvcHRfdmVyd19tbWlvKSAmJiBod19zbXRfZW5hYmxl
ZCApCiAgICAgICAgIHNldHVwX2ZvcmNlX2NwdV9jYXAoWDg2X0ZFQVRVUkVf
U0NfVkVSV19JRExFKTsKIApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVi
bGljL2FyY2gteDg2L2NwdWZlYXR1cmVzZXQuaCBiL3hlbi9pbmNsdWRlL3B1
YmxpYy9hcmNoLXg4Ni9jcHVmZWF0dXJlc2V0LmgKaW5kZXggODZlNDRkZDg1
MjU4Li43YjgwY2QwYzE5YzUgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3B1
YmxpYy9hcmNoLXg4Ni9jcHVmZWF0dXJlc2V0LmgKKysrIGIveGVuL2luY2x1
ZGUvcHVibGljL2FyY2gteDg2L2NwdWZlYXR1cmVzZXQuaApAQCAtMjg4LDYg
KzI4OCw3IEBAIFhFTl9DUFVGRUFUVVJFKEFWWF9JRk1BLCAgICAgMTAqMzIr
MjMpIC8qQSAgQVZYLUlGTUEgSW5zdHJ1Y3Rpb25zICovCiAKIC8qIEFNRC1k
ZWZpbmVkIENQVSBmZWF0dXJlcywgQ1BVSUQgbGV2ZWwgMHg4MDAwMDAyMS5l
YXgsIHdvcmQgMTEgKi8KIFhFTl9DUFVGRUFUVVJFKExGRU5DRV9ESVNQQVRD
SCwgICAgMTEqMzIrIDIpIC8qQSAgTEZFTkNFIGFsd2F5cyBzZXJpYWxpemlu
ZyAqLworWEVOX0NQVUZFQVRVUkUoVkVSV19DTEVBUiwgICAgICAgICAxMSoz
MisgNSkgLyohQSBWRVJXIGNsZWFycyBtaWNyb2FyY2hpdGVjdHVyYWwgYnVm
ZmVycyAqLwogWEVOX0NQVUZFQVRVUkUoTlNDQiwgICAgICAgICAgICAgICAx
MSozMisgNikgLypBICBOdWxsIFNlbGVjdG9yIENsZWFycyBCYXNlIChhbmQg
bGltaXQgdG9vKSAqLwogWEVOX0NQVUZFQVRVUkUoQVVUT19JQlJTLCAgICAg
ICAgICAxMSozMisgOCkgLypTICBBdXRvbWF0aWMgSUJSUyAqLwogWEVOX0NQ
VUZFQVRVUkUoQ1BVSURfVVNFUl9ESVMsICAgICAxMSozMisxNykgLyogICBD
UFVJRCBkaXNhYmxlIGZvciBDUEwgPiAwIHNvZnR3YXJlICovCkBAIC0zNDks
NiArMzUwLDggQEAgWEVOX0NQVUZFQVRVUkUoUEJfT1BUX0NUUkwsICAgICAg
ICAxNiozMiszMikgLyogICBNU1JfUEJfT1BUX0NUUkwuSUJQQl9BTFQgKi8K
IFhFTl9DUFVGRUFUVVJFKElUU19OTywgICAgICAgICAgICAgMTYqMzIrNjIp
IC8qIUEgTm8gSW5kaXJlY3QgVGFyZ2V0IFNlbGVjdGlvbiAqLwogCiAvKiBB
TUQtZGVmaW5lZCBDUFUgZmVhdHVyZXMsIENQVUlEIGxldmVsIDB4ODAwMDAw
MjEuZWN4LCB3b3JkIDE4ICovCitYRU5fQ1BVRkVBVFVSRShUU0FfU1FfTk8s
ICAgICAgICAgIDE4KjMyKyAxKSAvKkEgIE5vIFN0b3JlIFF1ZXVlIFRyYW5z
aXRpdmUgU2NoZWR1bGVyIEF0dGFja3MgKi8KK1hFTl9DUFVGRUFUVVJFKFRT
QV9MMV9OTywgICAgICAgICAgMTgqMzIrIDIpIC8qQSAgTm8gTDFEIFRyYW5z
aXRpdmUgU2NoZWR1bGVyIEF0dGFja3MgKi8KIAogI2VuZGlmIC8qIFhFTl9D
UFVGRUFUVVJFICovCiAK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.19-01.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.19-01.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxMCBTZXAgMjAyNCAyMDo1OTozNyArMDEwMApTdWJq
ZWN0OiB4ODYvY3B1ZmVhdHVyZTogUmVwb3NpdGlvbiBjcHVfaGFzX3tsZmVu
Y2VfZGlzcGF0Y2gsbnNjYn0KCkxGRU5DRV9ESVNQQVRDSCB1c2VkIHRvIGJl
IGEgc3ludGhldGljIGZlYXR1cmUsIGJ1dCB3YXMgZ2l2ZW4gYSByZWFsIENQ
VUlEIGJpdApieSBBTUQuICBUaGUgZGVmaW5lIHdhc24ndCBtb3ZlZCB3aGVu
IHRoaXMgd2FzIGNoYW5nZWQuCgpOU0NCIGhhcyBhbHdheXMgYmVlbiBhIHJl
YWwgQ1BVSUQgYml0LCBhbmQgd2FzIG1pc3BsYWNlZCB3aGVuIGludHJvZHVj
ZWQgaW4KdGhlIHN5bnRoZXRpYyBibG9jayBhbG9uZ3NpZGUgTEZFTkNFX0RJ
U1BBVENILgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3
LmNvb3BlcjNAY2l0cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEphbiBCZXVsaWNo
IDxqYmV1bGljaEBzdXNlLmNvbT4KKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21t
aXQgNmEwMzliMDUwMDcxZWJhNjQ0YWI0MTRkNzZhYzVkNWZjOWUwNjdhNSkK
CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vY3B1ZmVh
dHVyZS5oIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmUu
aAppbmRleCA2ZGJlNmRmZTA5OTAuLjVlMTA5MGE1NDcwYiAxMDA2NDQKLS0t
IGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmUuaAorKysg
Yi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vY3B1ZmVhdHVyZS5oCkBAIC0x
OTQsNiArMTk0LDEwIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBib290X2NwdV9o
YXModW5zaWduZWQgaW50IGZlYXQpCiAjZGVmaW5lIGNwdV9oYXNfYXZ4NTEy
X2JmMTYgICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9BVlg1MTJfQkYx
NikKICNkZWZpbmUgY3B1X2hhc19hdnhfaWZtYSAgICAgICAgYm9vdF9jcHVf
aGFzKFg4Nl9GRUFUVVJFX0FWWF9JRk1BKQogCisvKiBDUFVJRCBsZXZlbCAw
eDgwMDAwMDIxLmVheCAqLworI2RlZmluZSBjcHVfaGFzX2xmZW5jZV9kaXNw
YXRjaCBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfTEZFTkNFX0RJU1BBVENI
KQorI2RlZmluZSBjcHVfaGFzX25zY2IgICAgICAgICAgICBib290X2NwdV9o
YXMoWDg2X0ZFQVRVUkVfTlNDQikKKwogLyogQ1BVSUQgbGV2ZWwgMHgwMDAw
MDAwNzoxLmVkeCAqLwogI2RlZmluZSBjcHVfaGFzX2F2eF92bm5pX2ludDgg
ICBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfQVZYX1ZOTklfSU5UOCkKICNk
ZWZpbmUgY3B1X2hhc19hdnhfbmVfY29udmVydCAgYm9vdF9jcHVfaGFzKFg4
Nl9GRUFUVVJFX0FWWF9ORV9DT05WRVJUKQpAQCAtMjIzLDggKzIyNyw2IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBib290X2NwdV9oYXModW5zaWduZWQgaW50
IGZlYXQpCiAjZGVmaW5lIGNwdV9oYXNfYXJjaF9wZXJmbW9uICAgIGJvb3Rf
Y3B1X2hhcyhYODZfRkVBVFVSRV9BUkNIX1BFUkZNT04pCiAjZGVmaW5lIGNw
dV9oYXNfY3B1aWRfZmF1bHRpbmcgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVS
RV9DUFVJRF9GQVVMVElORykKICNkZWZpbmUgY3B1X2hhc19hcGVyZm1wZXJm
ICAgICAgYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0FQRVJGTVBFUkYpCi0j
ZGVmaW5lIGNwdV9oYXNfbGZlbmNlX2Rpc3BhdGNoIGJvb3RfY3B1X2hhcyhY
ODZfRkVBVFVSRV9MRkVOQ0VfRElTUEFUQ0gpCi0jZGVmaW5lIGNwdV9oYXNf
bnNjYiAgICAgICAgICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9OU0NC
KQogI2RlZmluZSBjcHVfaGFzX3hlbl9sYnIgICAgICAgICBib290X2NwdV9o
YXMoWDg2X0ZFQVRVUkVfWEVOX0xCUikKICNkZWZpbmUgY3B1X2hhc194ZW5f
c2hzdGsgICAgICAgKElTX0VOQUJMRUQoQ09ORklHX1hFTl9TSFNUSykgJiYg
XAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vdF9jcHVf
aGFzKFg4Nl9GRUFUVVJFX1hFTl9TSFNUSykpCg==

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.19-02.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.19-02.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEFwciAyMDI1IDE0OjU5OjAxICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBNb3ZlIG1vbml0b3IoKS9td2FpdCgpIHdyYXBwZXJz
IGludG8gY3B1LWlkbGUuYwoKVGhleSdyZSBub3QgdXNlZCBieSBhbnkgb3Ro
ZXIgdHJhbnNsYXRpb24gdW5pdCwgc28gc2hvdWxkbid0IGxpdmUgaW4KYXNt
L3Byb2Nlc3Nvci5oLCB3aGljaCBpcyBpbmNsdWRlZCBhbG1vc3QgZXZlcnl3
aGVyZS4KCk91ciBuZXcgdG9vbGNoYWluIGJhc2VsaW5lIGtub3dzIHRoZSBN
T05JVE9SL01XQUlUIGluc3RydWN0aW9ucywgc28gdXNlIHRoZW0KZGlyZWN0
bHkgcmF0aGVyIHRoYW4gdXNpbmcgcmF3IGhleC4KCkNoYW5nZSB0aGUgaGlu
dC9leHRlbnRpb24gcGFyYW1ldGVycyBmcm9tIGxvbmcgdG8gaW50LiAgVGhl
eSdyZSBzcGVjaWZpZWQgdG8KcmVtYWluIDMyYml0IG9wZXJhbmRzIGV2ZW4g
NjQtYml0IG1vZGUuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxh
bmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpSZXZpZXdlZC1ieTogSmFuIEJl
dWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgooY2hlcnJ5IHBpY2tlZCBmcm9t
IGNvbW1pdCA2MWUxMGZjMjhjY2RkZmY3YzcyYzE0YWNlYzU2ZGM3ZWYyYjE1
NWQxKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxl
LmMgYi94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jCmluZGV4IGQwNjA3
ZDhhNjk1Mi4uNDVhMzE0MGJkYzI2IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94
ODYvYWNwaS9jcHVfaWRsZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9hY3BpL2Nw
dV9pZGxlLmMKQEAgLTU5LDYgKzU5LDE5IEBACiAKIC8qI2RlZmluZSBERUJV
R19QTV9DWCovCiAKK3N0YXRpYyBhbHdheXNfaW5saW5lIHZvaWQgbW9uaXRv
cigKKyAgICBjb25zdCB2b2lkICphZGRyLCB1bnNpZ25lZCBpbnQgZWN4LCB1
bnNpZ25lZCBpbnQgZWR4KQoreworICAgIGFzbSB2b2xhdGlsZSAoICJtb25p
dG9yIgorICAgICAgICAgICAgICAgICAgIDo6ICJhIiAoYWRkciksICJjIiAo
ZWN4KSwgImQiIChlZHgpICk7Cit9CisKK3N0YXRpYyBhbHdheXNfaW5saW5l
IHZvaWQgbXdhaXQodW5zaWduZWQgaW50IGVheCwgdW5zaWduZWQgaW50IGVj
eCkKK3sKKyAgICBhc20gdm9sYXRpbGUgKCAibXdhaXQiCisgICAgICAgICAg
ICAgICAgICAgOjogImEiIChlYXgpLCAiYyIgKGVjeCkgKTsKK30KKwogI2Rl
ZmluZSBHRVRfSFdfUkVTX0lOX05TKG1zciwgdmFsKSBcCiAgICAgZG8geyBy
ZG1zcmwobXNyLCB2YWwpOyB2YWwgPSB0c2NfdGlja3MybnModmFsKTsgfSB3
aGlsZSggMCApCiAjZGVmaW5lIEdFVF9NQzZfUkVTKHZhbCkgIEdFVF9IV19S
RVNfSU5fTlMoMHg2NjQsIHZhbCkKQEAgLTQ4Miw3ICs0OTUsNyBAQCB2b2lk
IG13YWl0X2lkbGVfd2l0aF9oaW50cyh1bnNpZ25lZCBpbnQgZWF4LCB1bnNp
Z25lZCBpbnQgZWN4KQogICAgICAgICBtYigpOwogICAgIH0KIAotICAgIF9f
bW9uaXRvcihtb25pdG9yX2FkZHIsIDAsIDApOworICAgIG1vbml0b3IobW9u
aXRvcl9hZGRyLCAwLCAwKTsKICAgICBzbXBfbWIoKTsKIAogICAgIC8qCkBA
IC00OTYsNyArNTA5LDcgQEAgdm9pZCBtd2FpdF9pZGxlX3dpdGhfaGludHMo
dW5zaWduZWQgaW50IGVheCwgdW5zaWduZWQgaW50IGVjeCkKICAgICAgICAg
Y3B1bWFza19zZXRfY3B1KGNwdSwgJmNwdWlkbGVfbXdhaXRfZmxhZ3MpOwog
CiAgICAgICAgIHNwZWNfY3RybF9lbnRlcl9pZGxlKGluZm8pOwotICAgICAg
ICBfX213YWl0KGVheCwgZWN4KTsKKyAgICAgICAgbXdhaXQoZWF4LCBlY3gp
OwogICAgICAgICBzcGVjX2N0cmxfZXhpdF9pZGxlKGluZm8pOwogCiAgICAg
ICAgIGNwdW1hc2tfY2xlYXJfY3B1KGNwdSwgJmNwdWlkbGVfbXdhaXRfZmxh
Z3MpOwpAQCAtOTI3LDkgKzk0MCw5IEBAIHZvaWQgY2ZfY2hlY2sgYWNwaV9k
ZWFkX2lkbGUodm9pZCkKICAgICAgICAgICAgICAqLwogICAgICAgICAgICAg
bWIoKTsKICAgICAgICAgICAgIGNsZmx1c2gobXdhaXRfcHRyKTsKLSAgICAg
ICAgICAgIF9fbW9uaXRvcihtd2FpdF9wdHIsIDAsIDApOworICAgICAgICAg
ICAgbW9uaXRvcihtd2FpdF9wdHIsIDAsIDApOwogICAgICAgICAgICAgbWIo
KTsKLSAgICAgICAgICAgIF9fbXdhaXQoY3gtPmFkZHJlc3MsIDApOworICAg
ICAgICAgICAgbXdhaXQoY3gtPmFkZHJlc3MsIDApOwogICAgICAgICB9CiAg
ICAgfQogICAgIGVsc2UgaWYgKCAoY3VycmVudF9jcHVfZGF0YS54ODZfdmVu
ZG9yICYKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9w
cm9jZXNzb3IuaCBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNz
b3IuaAppbmRleCBjNzA5ZDMzN2M5YjkuLmMwMjU2NmE5MTViZCAxMDA2NDQK
LS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oCisr
KyBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaApAQCAt
MzE5LDIzICszMTksNiBAQCBzdGF0aWMgYWx3YXlzX2lubGluZSB2b2lkIHNl
dF9pbl9jcjQgKHVuc2lnbmVkIGxvbmcgbWFzaykKICAgICB3cml0ZV9jcjQo
cmVhZF9jcjQoKSB8IG1hc2spOwogfQogCi1zdGF0aWMgYWx3YXlzX2lubGlu
ZSB2b2lkIF9fbW9uaXRvcihjb25zdCB2b2lkICplYXgsIHVuc2lnbmVkIGxv
bmcgZWN4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dW5zaWduZWQgbG9uZyBlZHgpCi17Ci0gICAgLyogIm1vbml0b3IgJWVheCwl
ZWN4LCVlZHg7IiAqLwotICAgIGFzbSB2b2xhdGlsZSAoCi0gICAgICAgICIu
Ynl0ZSAweDBmLDB4MDEsMHhjODsiCi0gICAgICAgIDogOiAiYSIgKGVheCks
ICJjIiAoZWN4KSwgImQiKGVkeCkgKTsKLX0KLQotc3RhdGljIGFsd2F5c19p
bmxpbmUgdm9pZCBfX213YWl0KHVuc2lnbmVkIGxvbmcgZWF4LCB1bnNpZ25l
ZCBsb25nIGVjeCkKLXsKLSAgICAvKiAibXdhaXQgJWVheCwlZWN4OyIgKi8K
LSAgICBhc20gdm9sYXRpbGUgKAotICAgICAgICAiLmJ5dGUgMHgwZiwweDAx
LDB4Yzk7IgotICAgICAgICA6IDogImEiIChlYXgpLCAiYyIgKGVjeCkgKTsK
LX0KLQogI2RlZmluZSBJT0JNUF9CWVRFUyAgICAgICAgICAgICA4MTkyCiAj
ZGVmaW5lIElPQk1QX0lOVkFMSURfT0ZGU0VUICAgIDB4ODAwMAogCg==

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.19-03.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.19-03.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEFwciAyMDI1IDE1OjU1OjI5ICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBSZW1vdmUgTUZFTkNFcyBmb3IgQ0xGTFVTSF9NT05J
VE9SCgpDb21taXQgNDhkMzI0NThiY2Q0ICgieDg2LCBpZGxlOiBhZGQgYmFy
cmllcnMgdG8gQ0xGTFVTSCB3b3JrYXJvdW5kIikgd2FzCmluaGVyaXRlZCBm
cm9tIExpbnV4IGFuZCBhZGRlZCBNRkVOQ0VzIGFyb3VuZCB0aGUgQUFJNjUg
ZXJyYXRhIGZpeC4KClRoZSBTRE0gbm93IHN0YXRlczoKCiAgRXhlY3V0aW9u
cyBvZiB0aGUgQ0xGTFVTSCBpbnN0cnVjdGlvbiBhcmUgb3JkZXJlZCB3aXRo
IHJlc3BlY3QgdG8gZWFjaAogIG90aGVyIGFuZCB3aXRoIHJlc3BlY3QgdG8g
d3JpdGVzLCBsb2NrZWQgcmVhZC1tb2RpZnktd3JpdGUgaW5zdHJ1Y3Rpb25z
LAogIGFuZCBmZW5jZSBpbnN0cnVjdGlvbnNbMV0uCgp3aXRoIGZvb3Rub3Rl
IDEgcmVhZGluZzoKCiAgRWFybGllciB2ZXJzaW9ucyBvZiB0aGlzIG1hbnVh
bCBzcGVjaWZpZWQgdGhhdCBleGVjdXRpb25zIG9mIHRoZSBDTEZMVVNICiAg
aW5zdHJ1Y3Rpb24gd2VyZSBvcmRlcmVkIG9ubHkgYnkgdGhlIE1GRU5DRSBp
bnN0cnVjdGlvbi4gIEFsbCBwcm9jZXNzb3JzCiAgaW1wbGVtZW50aW5nIHRo
ZSBDTEZMVVNIIGluc3RydWN0aW9uIGFsc28gb3JkZXIgaXQgcmVsYXRpdmUg
dG8gdGhlIG90aGVyCiAgb3BlcmF0aW9ucyBlbnVtZXJhdGVkIGFib3ZlLgoK
SS5lLiB0aGUgTUZFTkNFcyBjYW1lIGFib3V0IGJlY2F1c2Ugb2YgYW4gaW5j
b3JyZWN0IHN0YXRlbWVudCBpbiB0aGUgU0RNLgoKVGhlIFNwZWMgVXBkYXRl
IChubyBsb25nZXIgYXZhaWxhYmxlIG9uIEludGVsJ3Mgd2Vic2l0ZSkgc2lt
cGx5IHNheXMgImlzc3VlIGEKQ0xGTFVTSCIsIHdpdGggbm8gbWVudGlvbiBv
ZiBNRkVOQ0VzLgoKQXMgdGhpcyBlcnJhdHVtIGlzIHNwZWNpZmljIHRvIElu
dGVsLCBpdCdzIGZpbmUgdG8gcmVtb3ZlIHRoZSB0aGUgTUZFTkNFczsgQU1E
CkNQVXMgb2YgYSBzaW1pbGFyIHZpbnRhZ2UgZG8gc3BvcnQgb3RoZXJ3aXNl
LXVub3JkZXJlZCBDTEZMVVNIcy4KCk1vdmUgdGhlIGZlYXR1cmUgYml0IGlu
dG8gdGhlIEJVRyByYW5nZSAocmF0aGVyIHRoYW4gRkVBVFVSRSksIGFuZCBt
b3ZlIHRoZQp3b3JrYXJvdW5kIGludG8gbW9uaXRvcigpIGl0c2VsZi4KClRo
ZSBlcnJhdHVtIGNoZWNrIGl0c2VsZiBtdXN0IHVzZSBzZXR1cF9mb3JjZV9j
cHVfY2FwKCkuICBJdCBuZWVkcyBhY3RpdmF0aW5nCmlmIGFueSBDUFUgbmVl
ZHMgaXQsIG5vdCBpZiBhbGwgb2YgdGhlbSBuZWVkIGl0LgoKRml4ZXM6IDQ4
ZDMyNDU4YmNkNCAoIng4NiwgaWRsZTogYWRkIGJhcnJpZXJzIHRvIENMRkxV
U0ggd29ya2Fyb3VuZCIpCkZpeGVzOiA5NmQxYjIzN2FlOWIgKCJ4ODYvSW50
ZWw6IHdvcmsgYXJvdW5kIFhlb24gNzQwMCBzZXJpZXMgZXJyYXR1bSBBQUk2
NSIpCkxpbms6IGh0dHBzOi8vd2ViLmFyY2hpdmUub3JnL3dlYi8yMDA5MDIx
OTA1NDg0MS9odHRwOi8vZG93bmxvYWQuaW50ZWwuY29tL2Rlc2lnbi94ZW9u
L3NwZWN1cGR0LzMyMDMzNjAxLnBkZgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcg
Q29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpSZXZpZXdlZC1i
eTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgooY2hlcnJ5IHBp
Y2tlZCBmcm9tIGNvbW1pdCBmNzdlZjM0NDM1NDJhMmMyYmJkNTllZTY2MTc4
Mjg3ZDRmYTViNDNmKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9hY3Bp
L2NwdV9pZGxlLmMgYi94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jCmlu
ZGV4IDQ1YTMxNDBiZGMyNi4uNDFkNzcxZDhmMzk1IDEwMDY0NAotLS0gYS94
ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jCisrKyBiL3hlbi9hcmNoL3g4
Ni9hY3BpL2NwdV9pZGxlLmMKQEAgLTYyLDYgKzYyLDkgQEAKIHN0YXRpYyBh
bHdheXNfaW5saW5lIHZvaWQgbW9uaXRvcigKICAgICBjb25zdCB2b2lkICph
ZGRyLCB1bnNpZ25lZCBpbnQgZWN4LCB1bnNpZ25lZCBpbnQgZWR4KQogewor
ICAgIGFsdGVybmF0aXZlX2lucHV0KCIiLCAiY2xmbHVzaCAoJVthZGRyXSki
LCBYODZfQlVHX0NMRkxVU0hfTU9OSVRPUiwKKyAgICAgICAgICAgICAgICAg
ICAgICBbYWRkcl0gImEiIChhZGRyKSk7CisKICAgICBhc20gdm9sYXRpbGUg
KCAibW9uaXRvciIKICAgICAgICAgICAgICAgICAgICA6OiAiYSIgKGFkZHIp
LCAiYyIgKGVjeCksICJkIiAoZWR4KSApOwogfQpAQCAtNDg4LDEzICs0OTEs
NiBAQCB2b2lkIG13YWl0X2lkbGVfd2l0aF9oaW50cyh1bnNpZ25lZCBpbnQg
ZWF4LCB1bnNpZ25lZCBpbnQgZWN4KQogICAgIHNfdGltZV90IGV4cGlyZXMg
PSBwZXJfY3B1KHRpbWVyX2RlYWRsaW5lLCBjcHUpOwogICAgIGNvbnN0IHZv
aWQgKm1vbml0b3JfYWRkciA9ICZtd2FpdF93YWtldXAoY3B1KTsKIAotICAg
IGlmICggYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0NMRkxVU0hfTU9OSVRP
UikgKQotICAgIHsKLSAgICAgICAgbWIoKTsKLSAgICAgICAgY2xmbHVzaCht
b25pdG9yX2FkZHIpOwotICAgICAgICBtYigpOwotICAgIH0KLQogICAgIG1v
bml0b3IobW9uaXRvcl9hZGRyLCAwLCAwKTsKICAgICBzbXBfbWIoKTsKIApA
QCAtOTI5LDE5ICs5MjUsNyBAQCB2b2lkIGNmX2NoZWNrIGFjcGlfZGVhZF9p
ZGxlKHZvaWQpCiAKICAgICAgICAgd2hpbGUgKCAxICkKICAgICAgICAgewot
ICAgICAgICAgICAgLyoKLSAgICAgICAgICAgICAqIDEuIFRoZSBDTEZMVVNI
IGlzIGEgd29ya2Fyb3VuZCBmb3IgZXJyYXR1bSBBQUk2NSBmb3IKLSAgICAg
ICAgICAgICAqIHRoZSBYZW9uIDc0MDAgc2VyaWVzLiAgCi0gICAgICAgICAg
ICAgKiAyLiBUaGUgV0JJTlZEIGlzIGluc3VmZmljaWVudCBkdWUgdG8gdGhl
IHNwdXJpb3VzLXdha2V1cAotICAgICAgICAgICAgICogY2FzZSB3aGVyZSB3
ZSByZXR1cm4gYXJvdW5kIHRoZSBsb29wLgotICAgICAgICAgICAgICogMy4g
VW5saWtlIHdiaW52ZCwgY2xmbHVzaCBpcyBhIGxpZ2h0IHdlaWdodCBidXQg
bm90IHNlcmlhbGl6aW5nIAotICAgICAgICAgICAgICogaW5zdHJ1Y3Rpb24s
IGhlbmNlIG1lbW9yeSBmZW5jZSBpcyBuZWNlc3NhcnkgdG8gbWFrZSBzdXJl
IGFsbCAKLSAgICAgICAgICAgICAqIGxvYWQvc3RvcmUgdmlzaWJsZSBiZWZv
cmUgZmx1c2ggY2FjaGUgbGluZS4KLSAgICAgICAgICAgICAqLwotICAgICAg
ICAgICAgbWIoKTsKLSAgICAgICAgICAgIGNsZmx1c2gobXdhaXRfcHRyKTsK
ICAgICAgICAgICAgIG1vbml0b3IobXdhaXRfcHRyLCAwLCAwKTsKLSAgICAg
ICAgICAgIG1iKCk7CiAgICAgICAgICAgICBtd2FpdChjeC0+YWRkcmVzcywg
MCk7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94
ODYvY3B1L2ludGVsLmMgYi94ZW4vYXJjaC94ODYvY3B1L2ludGVsLmMKaW5k
ZXggZjAzZWVkY2MyNTExLi41NzI1ODIyMGU4MjIgMTAwNjQ0Ci0tLSBhL3hl
bi9hcmNoL3g4Ni9jcHUvaW50ZWwuYworKysgYi94ZW4vYXJjaC94ODYvY3B1
L2ludGVsLmMKQEAgLTQ0Niw2ICs0NDYsNyBAQCBzdGF0aWMgdm9pZCBfX2lu
aXQgcHJvYmVfbXdhaXRfZXJyYXRhKHZvaWQpCiAgKgogICogWGVvbiA3NDAw
IGVycmF0dW0gQUFJNjUgKGFuZCBmdXJ0aGVyIG5ld2VyIFhlb25zKQogICog
TU9OSVRPUi9NV0FJVCBtYXkgaGF2ZSBleGNlc3NpdmUgZmFsc2Ugd2FrZXVw
cworICogaHR0cHM6Ly93ZWIuYXJjaGl2ZS5vcmcvd2ViLzIwMDkwMjE5MDU0
ODQxL2h0dHA6Ly9kb3dubG9hZC5pbnRlbC5jb20vZGVzaWduL3hlb24vc3Bl
Y3VwZHQvMzIwMzM2MDEucGRmCiAgKi8KIHN0YXRpYyB2b2lkIEludGVsX2Vy
cmF0YV93b3JrYXJvdW5kcyhzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCiB7CkBA
IC00NjMsNyArNDY0LDcgQEAgc3RhdGljIHZvaWQgSW50ZWxfZXJyYXRhX3dv
cmthcm91bmRzKHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKIAogCWlmIChjLT54
ODYgPT0gNiAmJiBjcHVfaGFzX2NsZmx1c2ggJiYKIAkgICAgKGMtPng4Nl9t
b2RlbCA9PSAyOSB8fCBjLT54ODZfbW9kZWwgPT0gNDYgfHwgYy0+eDg2X21v
ZGVsID09IDQ3KSkKLQkJX19zZXRfYml0KFg4Nl9GRUFUVVJFX0NMRkxVU0hf
TU9OSVRPUiwgYy0+eDg2X2NhcGFiaWxpdHkpOworCQlzZXR1cF9mb3JjZV9j
cHVfY2FwKFg4Nl9CVUdfQ0xGTFVTSF9NT05JVE9SKTsKIAogCXByb2JlX2Mz
X2VycmF0YShjKTsKIAlpZiAoc3lzdGVtX3N0YXRlIDwgU1lTX1NUQVRFX3Nt
cF9ib290KQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNt
L2NwdWZlYXR1cmVzLmggYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vY3B1
ZmVhdHVyZXMuaAppbmRleCA5ZTNlZDIxYzAyNmQuLjg0YzkzMjkyYzgwYyAx
MDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1
cmVzLmgKKysrIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1
cmVzLmgKQEAgLTE5LDcgKzE5LDcgQEAgWEVOX0NQVUZFQVRVUkUoQVJDSF9Q
RVJGTU9OLCAgICAgIFg4Nl9TWU5USCggMykpIC8qIEludGVsIEFyY2hpdGVj
dHVyYWwgUGVyZk1vbgogWEVOX0NQVUZFQVRVUkUoVFNDX1JFTElBQkxFLCAg
ICAgIFg4Nl9TWU5USCggNCkpIC8qIFRTQyBpcyBrbm93biB0byBiZSByZWxp
YWJsZSAqLwogWEVOX0NQVUZFQVRVUkUoWFRPUE9MT0dZLCAgICAgICAgIFg4
Nl9TWU5USCggNSkpIC8qIGNwdSB0b3BvbG9neSBlbnVtIGV4dGVuc2lvbnMg
Ki8KIFhFTl9DUFVGRUFUVVJFKENQVUlEX0ZBVUxUSU5HLCAgICBYODZfU1lO
VEgoIDYpKSAvKiBjcHVpZCBmYXVsdGluZyAqLwotWEVOX0NQVUZFQVRVUkUo
Q0xGTFVTSF9NT05JVE9SLCAgIFg4Nl9TWU5USCggNykpIC8qIGNsZmx1c2gg
cmVxZCB3aXRoIG1vbml0b3IgKi8KKy8qIEJpdCA3IHVudXNlZCAqLwogWEVO
X0NQVUZFQVRVUkUoQVBFUkZNUEVSRiwgICAgICAgIFg4Nl9TWU5USCggOCkp
IC8qIEFQRVJGTVBFUkYgKi8KIFhFTl9DUFVGRUFUVVJFKE1GRU5DRV9SRFRT
QywgICAgICBYODZfU1lOVEgoIDkpKSAvKiBNRkVOQ0Ugc3luY2hyb25pemVz
IFJEVFNDICovCiBYRU5fQ1BVRkVBVFVSRShYRU5fU01FUCwgICAgICAgICAg
WDg2X1NZTlRIKDEwKSkgLyogU01FUCBnZXRzIHVzZWQgYnkgWGVuIGl0c2Vs
ZiAqLwpAQCAtNTIsNiArNTIsNyBAQCBYRU5fQ1BVRkVBVFVSRShVU0VfVk1D
QUxMLCAgICAgICAgWDg2X1NZTlRIKDMwKSkgLyogVXNlIFZNQ0FMTCBpbnN0
ZWFkIG9mIFZNTUNBTAogI2RlZmluZSBYODZfQlVHX05VTExfU0VHICAgICAg
ICAgIFg4Nl9CVUcoIDEpIC8qIE5VTEwtaW5nIGEgc2VsZWN0b3IgcHJlc2Vy
dmVzIHRoZSBiYXNlIGFuZCBsaW1pdC4gKi8KICNkZWZpbmUgWDg2X0JVR19D
TEZMVVNIX01GRU5DRSAgICBYODZfQlVHKCAyKSAvKiBNRkVOQ0UgbmVlZGVk
IHRvIHNlcmlhbGlzZSBDTEZMVVNIICovCiAjZGVmaW5lIFg4Nl9CVUdfSUJQ
Ql9OT19SRVQgICAgICAgWDg2X0JVRyggMykgLyogSUJQQiBkb2Vzbid0IGZs
dXNoIHRoZSBSU0IvUkFTICovCisjZGVmaW5lIFg4Nl9CVUdfQ0xGTFVTSF9N
T05JVE9SICAgWDg2X0JVRyggNCkgLyogTU9OSVRPUiByZXF1aXJlcyBDTEZM
VVNIICovCiAKICNkZWZpbmUgWDg2X1NQRUNfTk9fTEZFTkNFX0VOVFJZX1BW
IFg4Nl9CVUcoMTYpIC8qIChObykgc2FmZXR5IExGRU5DRSBmb3IgU1BFQ19D
VFJMX0VOVFJZX1BWLiAqLwogI2RlZmluZSBYODZfU1BFQ19OT19MRkVOQ0Vf
RU5UUllfSU5UUiBYODZfQlVHKDE3KSAvKiAoTm8pIHNhZmV0eSBMRkVOQ0Ug
Zm9yIFNQRUNfQ1RSTF9FTlRSWV9JTlRSLiAqLwo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.19-04.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.19-04.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAyNCBKdW4gMjAyNSAxNToyMDo1MiArMDEwMApTdWJq
ZWN0OiBSZXZlcnQgcGFydCBvZiAieDg2L213YWl0LWlkbGU6IGRpc2FibGUg
SUJSUyBkdXJpbmcgbG9uZyBpZGxlIgoKTW9zdCBvZiB0aGUgcGF0Y2ggKGhh
bmRsaW5nIG9mIENQVUlETEVfRkxBR19JQlJTKSBpcyBmaW5lLCBidXQgdGhl
CmFkanVzdGVtZW50cyB0byBtd2FpdF9pZGxlKCkgYXJlIG5vdDsgc3BlY19j
dHJsX2VudGVyX2lkbGUoKSBkb2VzIG1vcmUgdGhhbgpqdXN0IGFsdGVyIE1T
Ul9TUEVDX0NUUkwuSUJSUy4KClRoZSBvbmx5IHJlYXNvbiB0aGlzIGRvZXNu
J3QgbmVlZCBhbiBYU0EgaXMgYmVjYXVzZSB0aGUgdW5jb25kaXRpb25hbApz
cGVjX2N0cmxfe2VudGVyLGV4aXR9X2lkbGUoKSBpbiBtd2FpdF9pZGxlX3dp
dGhfaGludHMoKSB3ZXJlIGxlZnQgdW5hbHRlcmVkLAphbmQgdGh1cyB0aGUg
TVdBSVQgcmVtYWluZWQgcHJvcGVybHkgcHJvdGVjdGVkLgoKVGhlcmUgKHdv
dWxkIGhhdmUgYmVlbikgdHdvIHByb2JsZW1zLiAgSW4gdGhlIGlicnNfZGlz
YWJsZSAoPT0gZGVlcCBDKSBjYXNlOgoKICogT24gZW50cnksIFZFUlcgYW5k
IFJTQi1zdHVmZmluZyBhcmUgYXJjaGl0ZWN0dXJhbGx5IHNraXBwZWQuCiAq
IE9uIGV4aXQsIHRoZXJlJ3MgYSBicmFuY2ggY3Jvc3NpbmcgdGhlIFdSTVNS
IHdoaWNoIHJlaW5zdGF0ZXMgdGhlCiAgIHNwZWN1bGF0aXZlIHNhZmV0eSBm
b3IgaW5kaXJlY3QgYnJhbmNoZXMuCgpBbGwgdGhpcyBjaGFuZ2UgZGlkIHdh
cyBkb3VibGUgdXAgdGhlIGV4cGVuc2l2ZSBvcGVyYXRpb25zIGluIHRoZSBk
ZWVwIEMgY2FzZSwKYW5kIGZhaWwgdG8gb3B0aW1pc2UgdGhlIGludGVuZGVk
IGNhc2UuCgpJIGhhdmUgYW4gaWRlYSBvZiBob3cgdG8gcGx1bWIgdGhpcyBt
b3JlIG5pY2VseSwgYnV0IGl0IHJlcXVpcmVzIGxhcmdlcgpjaGFuZ2VzIHRv
IGxlZ2FjeSBJQlJTIGhhbmRsaW5nIHRvIG5vdCBtYWtlIHNwZWNfY3RybF9l
bnRlcl9pZGxlKCkgdnVsbmVyYWJsZQppbiBvdGhlciB3YXlzLiAgSW4gdGhl
IHNob3J0IHRlcm0sIHNpbXBseSB0YWtlIG91dCB0aGUgcGVyZiBoaXQuCgpG
aXhlczogMDhhY2RmOWEyNjE1ICgieDg2L213YWl0LWlkbGU6IGRpc2FibGUg
SUJSUyBkdXJpbmcgbG9uZyBpZGxlIikKU2lnbmVkLW9mZi1ieTogQW5kcmV3
IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KUmV2aWV3ZWQt
Ynk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KKGNoZXJyeSBw
aWNrZWQgZnJvbSBjb21taXQgMDdkNzE2MzMzNGE3NTA3ZDMyOTk1OGIxOWQ5
NzZiZTc2OTU4MDk5OSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1
L213YWl0LWlkbGUuYyBiL3hlbi9hcmNoL3g4Ni9jcHUvbXdhaXQtaWRsZS5j
CmluZGV4IGFlNjk4NzExNzE2OS4uMTgyNTE4NTI4YTZlIDEwMDY0NAotLS0g
YS94ZW4vYXJjaC94ODYvY3B1L213YWl0LWlkbGUuYworKysgYi94ZW4vYXJj
aC94ODYvY3B1L213YWl0LWlkbGUuYwpAQCAtODkxLDcgKzg5MSw2IEBAIHN0
YXRpYyBjb25zdCBzdHJ1Y3QgY3B1aWRsZV9zdGF0ZSBzbnJfY3N0YXRlc1td
ID0gewogc3RhdGljIHZvaWQgY2ZfY2hlY2sgbXdhaXRfaWRsZSh2b2lkKQog
ewogCXVuc2lnbmVkIGludCBjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7Ci0J
c3RydWN0IGNwdV9pbmZvICppbmZvID0gZ2V0X2NwdV9pbmZvKCk7CiAJc3Ry
dWN0IGFjcGlfcHJvY2Vzc29yX3Bvd2VyICpwb3dlciA9IHByb2Nlc3Nvcl9w
b3dlcnNbY3B1XTsKIAlzdHJ1Y3QgYWNwaV9wcm9jZXNzb3JfY3ggKmN4ID0g
TlVMTDsKIAl1bnNpZ25lZCBpbnQgbmV4dF9zdGF0ZTsKQEAgLTkxOCw2ICs5
MTcsOCBAQCBzdGF0aWMgdm9pZCBjZl9jaGVjayBtd2FpdF9pZGxlKHZvaWQp
CiAJCQlwbV9pZGxlX3NhdmUoKTsKIAkJZWxzZQogCQl7CisJCQlzdHJ1Y3Qg
Y3B1X2luZm8gKmluZm8gPSBnZXRfY3B1X2luZm8oKTsKKwogCQkJc3BlY19j
dHJsX2VudGVyX2lkbGUoaW5mbyk7CiAJCQlzYWZlX2hhbHQoKTsKIAkJCXNw
ZWNfY3RybF9leGl0X2lkbGUoaW5mbyk7CkBAIC05NDQsMTEgKzk0NSw2IEBA
IHN0YXRpYyB2b2lkIGNmX2NoZWNrIG13YWl0X2lkbGUodm9pZCkKIAlpZiAo
KGN4LT50eXBlID49IDMpICYmIGVycmF0YV9jNl93b3JrYXJvdW5kKCkpCiAJ
CWN4ID0gcG93ZXItPnNhZmVfc3RhdGU7CiAKLQlpZiAoY3gtPmlicnNfZGlz
YWJsZSkgewotCQlBU1NFUlQoIWN4LT5pcnFfZW5hYmxlX2Vhcmx5KTsKLQkJ
c3BlY19jdHJsX2VudGVyX2lkbGUoaW5mbyk7Ci0JfQotCiAjaWYgMCAvKiBY
WFggQ2FuIHdlL2RvIHdlIG5lZWQgdG8gZG8gc29tZXRoaW5nIHNpbWlsYXIg
b24gWGVuPyAqLwogCS8qCiAJICogbGVhdmVfbW0oKSB0byBhdm9pZCBjb3N0
bHkgYW5kIG9mdGVuIHVubmVjZXNzYXJ5IHdha2V1cHMKQEAgLTk4MCwxMCAr
OTc2LDYgQEAgc3RhdGljIHZvaWQgY2ZfY2hlY2sgbXdhaXRfaWRsZSh2b2lk
KQogCiAJLyogTm93IGJhY2sgaW4gQzAuICovCiAJdXBkYXRlX2lkbGVfc3Rh
dHMocG93ZXIsIGN4LCBiZWZvcmUsIGFmdGVyKTsKLQotCWlmIChjeC0+aWJy
c19kaXNhYmxlKQotCQlzcGVjX2N0cmxfZXhpdF9pZGxlKGluZm8pOwotCiAJ
bG9jYWxfaXJxX2VuYWJsZSgpOwogCiAJVFJBQ0VfVElNRShUUkNfUE1fSURM
RV9FWElULCBjeC0+dHlwZSwgYWZ0ZXIsCg==

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.19-05.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.19-05.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogRnJpLCAyNyBKdW4gMjAyNSAxNDo0NjowMSArMDEwMApTdWJq
ZWN0OiB4ODYvY3B1LXBvbGljeTogU2ltcGxpZnkgbG9naWMgaW4KIGd1ZXN0
X2NvbW1vbl9kZWZhdWx0X2ZlYXR1cmVfYWRqdXN0bWVudHMoKQoKRm9yIGZl
YXR1cmVzIHdoaWNoIGFyZSB1bmNvbmRpdGlvbmFsbHkgc2V0IGluIHRoZSBt
YXggcG9saWNpZXMsIG1ha2luZyB0aGUKZGVmYXVsdCBwb2xpY3kgdG8gbWF0
Y2ggdGhlIGhvc3QgY2FuIGJlIGRvbmUgd2l0aCBhIGNvbmRpdGlvbmFsIGNs
ZWFyLgoKVGhpcyBpcyBzaW1wbGVyIHRoYW4gdGhlIHVuY29uZGl0aW9uYWwg
Y2xlYXIsIGNvbmRpdGlvbmFsIHNldCBjdXJyZW50bHkKcGVyZm9ybWVkLgoK
U2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNA
Y2l0cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGlj
aEBzdXNlLmNvbT4KKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgMzBmOGZl
ZDY4ZjNjMmU2MzU5NGZmOTIwMmIzZDA1Yjk3MTc4MWUzNikKCmRpZmYgLS1n
aXQgYS94ZW4vYXJjaC94ODYvY3B1LXBvbGljeS5jIGIveGVuL2FyY2gveDg2
L2NwdS1wb2xpY3kuYwppbmRleCA3ODc3ODVjNDFhZTMuLmUzNGNiYTE4OWM3
NSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2NwdS1wb2xpY3kuYworKysg
Yi94ZW4vYXJjaC94ODYvY3B1LXBvbGljeS5jCkBAIC01MTUsMTcgKzUxNSwx
NCBAQCBzdGF0aWMgdm9pZCBfX2luaXQgZ3Vlc3RfY29tbW9uX2RlZmF1bHRf
ZmVhdHVyZV9hZGp1c3RtZW50cyh1aW50MzJfdCAqZnMpCiAgICAgICAgICAq
IHJlYXNvbnMsIHNvIHJlc2V0IHRoZSBkZWZhdWx0IHBvbGljeSBiYWNrIHRv
IHRoZSBob3N0IHZhbHVlcyBpbgogICAgICAgICAgKiBjYXNlIHdlJ3JlIHVu
YWZmZWN0ZWQuCiAgICAgICAgICAqLwotICAgICAgICBfX2NsZWFyX2JpdChY
ODZfRkVBVFVSRV9NRF9DTEVBUiwgZnMpOwotICAgICAgICBpZiAoIGNwdV9o
YXNfbWRfY2xlYXIgKQotICAgICAgICAgICAgX19zZXRfYml0KFg4Nl9GRUFU
VVJFX01EX0NMRUFSLCBmcyk7CisgICAgICAgIGlmICggIWNwdV9oYXNfbWRf
Y2xlYXIgKQorICAgICAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVf
TURfQ0xFQVIsIGZzKTsKIAotICAgICAgICBfX2NsZWFyX2JpdChYODZfRkVB
VFVSRV9GQl9DTEVBUiwgZnMpOwotICAgICAgICBpZiAoIGNwdV9oYXNfZmJf
Y2xlYXIgKQotICAgICAgICAgICAgX19zZXRfYml0KFg4Nl9GRUFUVVJFX0ZC
X0NMRUFSLCBmcyk7CisgICAgICAgIGlmICggIWNwdV9oYXNfZmJfY2xlYXIg
KQorICAgICAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVfRkJfQ0xF
QVIsIGZzKTsKIAotICAgICAgICBfX2NsZWFyX2JpdChYODZfRkVBVFVSRV9S
RkRTX0NMRUFSLCBmcyk7Ci0gICAgICAgIGlmICggY3B1X2hhc19yZmRzX2Ns
ZWFyICkKLSAgICAgICAgICAgIF9fc2V0X2JpdChYODZfRkVBVFVSRV9SRkRT
X0NMRUFSLCBmcyk7CisgICAgICAgIGlmICggIWNwdV9oYXNfcmZkc19jbGVh
ciApCisgICAgICAgICAgICBfX2NsZWFyX2JpdChYODZfRkVBVFVSRV9SRkRT
X0NMRUFSLCBmcyk7CiAKICAgICAgICAgLyoKICAgICAgICAgICogVGhlIEdh
dGhlciBEYXRhIFNhbXBsaW5nIG1pY3JvY29kZSBtaXRpZ2F0aW9uIChBdWd1
c3QgMjAyMykgaGFzIGFuCkBAIC01NDUsMTMgKzU0MiwxMSBAQCBzdGF0aWMg
dm9pZCBfX2luaXQgZ3Vlc3RfY29tbW9uX2RlZmF1bHRfZmVhdHVyZV9hZGp1
c3RtZW50cyh1aW50MzJfdCAqZnMpCiAgICAgICogVG9wb2xvZ3kgaW5mb3Jt
YXRpb24gaXMgYXQgdGhlIHRvb2xzdGFjaydzIGRpc2NyZXRpb24gc28gdGhl
c2UgYXJlCiAgICAgICogdW5jb25kaXRpb25hbGx5IHNldCBpbiBtYXgsIGJ1
dCBwaWNrIGEgZGVmYXVsdCB3aGljaCBtYXRjaGVzIHRoZSBob3N0LgogICAg
ICAqLwotICAgIF9fY2xlYXJfYml0KFg4Nl9GRUFUVVJFX0hUVCwgZnMpOwot
ICAgIGlmICggY3B1X2hhc19odHQgKQotICAgICAgICBfX3NldF9iaXQoWDg2
X0ZFQVRVUkVfSFRULCBmcyk7CisgICAgaWYgKCAhY3B1X2hhc19odHQgKQor
ICAgICAgICBfX2NsZWFyX2JpdChYODZfRkVBVFVSRV9IVFQsIGZzKTsKIAot
ICAgIF9fY2xlYXJfYml0KFg4Nl9GRUFUVVJFX0NNUF9MRUdBQ1ksIGZzKTsK
LSAgICBpZiAoIGNwdV9oYXNfY21wX2xlZ2FjeSApCi0gICAgICAgIF9fc2V0
X2JpdChYODZfRkVBVFVSRV9DTVBfTEVHQUNZLCBmcyk7CisgICAgaWYgKCAh
Y3B1X2hhc19jbXBfbGVnYWN5ICkKKyAgICAgICAgX19jbGVhcl9iaXQoWDg2
X0ZFQVRVUkVfQ01QX0xFR0FDWSwgZnMpOwogCiAgICAgLyoKICAgICAgKiBP
biBjZXJ0YWluIGhhcmR3YXJlLCBzcGVjdWxhdGl2ZSBvciBlcnJhdGEgd29y
a2Fyb3VuZHMgY2FuIHJlc3VsdCBpbgo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.19-06.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.19-06.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDE1OjUxOjUzICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBSZW1vdmUgYnJva2VuIE1XQUlUIGltcGxlbWVudGF0
aW9uCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFp
bjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4
Yml0CgpjcHVpZGxlX3dha2V1cF9td2FpdCgpIGlzIGEgVE9DVE9VIHJhY2Uu
ICBUaGUgY3B1bWFza19hbmQoKSBzYW1wbGluZwpjcHVpZGxlX213YWl0X2Zs
YWdzIGNhbiB0YWtlIGEgYXJiaXRyYXJ5IHBlcmlvZCBvZiB0aW1lLCBhbmQg
dGhlcmUncyBubwpndWFyYW50ZWUgdGhhdCB0aGUgdGFyZ2V0IENQVXMgYXJl
IHN0aWxsIGluIE1XQUlUIHdoZW4gd3JpdGluZyBpbnRvCm13YWl0X3dha2V1
cChjcHUpLgoKVGhlIGNvbnNlcXVlbmNlIG9mIHRoZSByYWNlIGlzIHRoYXQg
d2UnbGwgZmFpbCB0byBJUEkgY2VydGFpbiB0YXJnZXRzLiAgQWxzbywKdGhl
cmUncyBubyBndWFyYW50ZWUgdGhhdCBtd2FpdF9pZGxlX3dpdGhfaGludHMo
KSB3aWxsIHJhaXNlIGEgVElNRVJfU09GVElSUQpvbiBpdCdzIHdheSBvdXQu
CgpUaGUgZnVuZGFtZW50YWwgYnVnIGlzIHRoYXQgdGhlICJpbl9td2FpdCIg
dmFyaWFibGUgbmVlZHMgdG8gYmUgaW4gdGhlCm1vbml0b3JlZCBsaW5lLCBh
bmQgbm90IGluIGEgc2VwYXJhdGUgY3B1aWRsZV9td2FpdF9mbGFncyB2YXJp
YWJsZSwgaW4gb3JkZXIKdG8gZG8gdGhpcyBpbiBhIHJhY2UtZnJlZSB3YXku
CgpBcnJhbmdpbmcgdG8gZml4IHRoaXMgd2hpbGUga2VlcGluZyB0aGUgb2xk
IGltcGxlbWVudGF0aW9uIGlzIHByb2hpYml0aXZlLCBzbwpzdHJpcCB0aGUg
Y3VycmVudCBvbmUgb3V0IGluIG9yZGVyIHRvIGltcGxlbWVudCB0aGUgbmV3
IG9uZSBjbGVhbmx5LiAgSW4gdGhlCmludGVyaW0sIHRoaXMgY2F1c2VzIElQ
SXMgdG8gYmUgdXNlZCB1bmNvbmRpdGlvbmFsbHkgd2hpY2ggaXMgc2FmZSBh
bGJlaXQKc3Vib3B0aW1hbC4KCkZpeGVzOiAzZDUyMWU5MzNlMWIgKCJjcHVp
ZGxlOiBtd2FpdCBvbiBzb2Z0aXJxX3BlbmRpbmcgJiByZW1vdmUgd2FrZXVw
IGlwaXMiKQpGaXhlczogMWFkYjM0ZWE4NDZkICgiQ1BVSURMRTogcmUtaW1w
bGVtZW50IG13YWl0IHdha2V1cCBwcm9jZXNzIikKU2lnbmVkLW9mZi1ieTog
QW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KUmV2
aWV3ZWQtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXgu
Y29tPgooY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCAzZmFmMDg2NmEzMzA3
MGI5MjZhYjc4ZTYyOTgyOTA0MDNmODVlNzZjKQoKZGlmZiAtLWdpdCBhL3hl
bi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMgYi94ZW4vYXJjaC94ODYvYWNw
aS9jcHVfaWRsZS5jCmluZGV4IDQxZDc3MWQ4ZjM5NS4uNGVkMTg3OGUyNjJj
IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jCisr
KyBiL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKQEAgLTQ0OCwyNyAr
NDQ4LDYgQEAgc3RhdGljIGludCBfX2luaXQgY2ZfY2hlY2sgY3B1X2lkbGVf
a2V5X2luaXQodm9pZCkKIH0KIF9faW5pdGNhbGwoY3B1X2lkbGVfa2V5X2lu
aXQpOwogCi0vKgotICogVGhlIGJpdCBpcyBzZXQgaWZmIGNwdSB1c2UgbW9u
aXRvci9td2FpdCB0byBlbnRlciBDIHN0YXRlCi0gKiB3aXRoIHRoaXMgZmxh
ZyBzZXQsIENQVSBjYW4gYmUgd2FrZW4gdXAgZnJvbSBDIHN0YXRlCi0gKiBi
eSB3cml0aW5nIHRvIHNwZWNpZmljIG1lbW9yeSBhZGRyZXNzLCBpbnN0ZWFk
IG9mIHNlbmRpbmcgYW4gSVBJLgotICovCi1zdGF0aWMgY3B1bWFza190IGNw
dWlkbGVfbXdhaXRfZmxhZ3M7Ci0KLXZvaWQgY3B1aWRsZV93YWtldXBfbXdh
aXQoY3B1bWFza190ICptYXNrKQotewotICAgIGNwdW1hc2tfdCB0YXJnZXQ7
Ci0gICAgdW5zaWduZWQgaW50IGNwdTsKLQotICAgIGNwdW1hc2tfYW5kKCZ0
YXJnZXQsIG1hc2ssICZjcHVpZGxlX213YWl0X2ZsYWdzKTsKLQotICAgIC8q
IENQVSBpcyBNV0FJVGluZyBvbiB0aGUgY3B1aWRsZV9td2FpdF93YWtldXAg
ZmxhZy4gKi8KLSAgICBmb3JfZWFjaF9jcHUoY3B1LCAmdGFyZ2V0KQotICAg
ICAgICBtd2FpdF93YWtldXAoY3B1KSA9IDA7Ci0KLSAgICBjcHVtYXNrX2Fu
ZG5vdChtYXNrLCBtYXNrLCAmdGFyZ2V0KTsKLX0KLQogLyogRm9yY2Ugc2Vu
ZGluZyBvZiBhIHdha2V1cCBJUEkgcmVnYXJkbGVzcyBvZiBtd2FpdCB1c2Fn
ZS4gKi8KIGJvb2wgX19yb19hZnRlcl9pbml0IGZvcmNlX213YWl0X2lwaV93
YWtldXA7CiAKQEAgLTQ3Nyw0MiArNDU2LDI1IEBAIGJvb2wgYXJjaF9za2lw
X3NlbmRfZXZlbnRfY2hlY2sodW5zaWduZWQgaW50IGNwdSkKICAgICBpZiAo
IGZvcmNlX213YWl0X2lwaV93YWtldXAgKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSAgICAvKgotICAgICAqIFRoaXMgcmVsaWVzIG9uIHNvZnRpcnFf
cGVuZGluZygpIGFuZCBtd2FpdF93YWtldXAoKSB0byBhY2Nlc3MgZGF0YQot
ICAgICAqIG9uIHRoZSBzYW1lIGNhY2hlIGxpbmUuCi0gICAgICovCi0gICAg
c21wX21iKCk7Ci0gICAgcmV0dXJuICEhY3B1bWFza190ZXN0X2NwdShjcHUs
ICZjcHVpZGxlX213YWl0X2ZsYWdzKTsKKyAgICByZXR1cm4gZmFsc2U7CiB9
CiAKIHZvaWQgbXdhaXRfaWRsZV93aXRoX2hpbnRzKHVuc2lnbmVkIGludCBl
YXgsIHVuc2lnbmVkIGludCBlY3gpCiB7CiAgICAgdW5zaWduZWQgaW50IGNw
dSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKLSAgICBzX3RpbWVfdCBleHBpcmVz
ID0gcGVyX2NwdSh0aW1lcl9kZWFkbGluZSwgY3B1KTsKLSAgICBjb25zdCB2
b2lkICptb25pdG9yX2FkZHIgPSAmbXdhaXRfd2FrZXVwKGNwdSk7CisgICAg
Y29uc3QgdW5zaWduZWQgaW50ICp0aGlzX3NvZnRpcnFfcGVuZGluZyA9ICZz
b2Z0aXJxX3BlbmRpbmcoY3B1KTsKIAotICAgIG1vbml0b3IobW9uaXRvcl9h
ZGRyLCAwLCAwKTsKKyAgICBtb25pdG9yKHRoaXNfc29mdGlycV9wZW5kaW5n
LCAwLCAwKTsKICAgICBzbXBfbWIoKTsKIAotICAgIC8qCi0gICAgICogVGlt
ZXIgZGVhZGxpbmUgcGFzc2luZyBpcyB0aGUgZXZlbnQgb24gd2hpY2ggd2Ug
d2lsbCBiZSB3b2tlbiB2aWEKLSAgICAgKiBjcHVpZGxlX213YWl0X3dha2V1
cC4gU28gY2hlY2sgaXQgbm93IHRoYXQgdGhlIGxvY2F0aW9uIGlzIGFybWVk
LgotICAgICAqLwotICAgIGlmICggKGV4cGlyZXMgPiBOT1coKSB8fCBleHBp
cmVzID09IDApICYmICFzb2Z0aXJxX3BlbmRpbmcoY3B1KSApCisgICAgaWYg
KCAhKnRoaXNfc29mdGlycV9wZW5kaW5nICkKICAgICB7CiAgICAgICAgIHN0
cnVjdCBjcHVfaW5mbyAqaW5mbyA9IGdldF9jcHVfaW5mbygpOwogCi0gICAg
ICAgIGNwdW1hc2tfc2V0X2NwdShjcHUsICZjcHVpZGxlX213YWl0X2ZsYWdz
KTsKLQogICAgICAgICBzcGVjX2N0cmxfZW50ZXJfaWRsZShpbmZvKTsKICAg
ICAgICAgbXdhaXQoZWF4LCBlY3gpOwogICAgICAgICBzcGVjX2N0cmxfZXhp
dF9pZGxlKGluZm8pOwotCi0gICAgICAgIGNwdW1hc2tfY2xlYXJfY3B1KGNw
dSwgJmNwdWlkbGVfbXdhaXRfZmxhZ3MpOwogICAgIH0KLQotICAgIGlmICgg
ZXhwaXJlcyA8PSBOT1coKSAmJiBleHBpcmVzID4gMCApCi0gICAgICAgIHJh
aXNlX3NvZnRpcnEoVElNRVJfU09GVElSUSk7CiB9CiAKIHN0YXRpYyB2b2lk
IGFjcGlfcHJvY2Vzc29yX2ZmaF9jc3RhdGVfZW50ZXIoc3RydWN0IGFjcGlf
cHJvY2Vzc29yX2N4ICpjeCkKQEAgLTkxMyw3ICs4NzUsNyBAQCB2b2lkIGNm
X2NoZWNrIGFjcGlfZGVhZF9pZGxlKHZvaWQpCiAKICAgICBpZiAoIGN4LT5l
bnRyeV9tZXRob2QgPT0gQUNQSV9DU1RBVEVfRU1fRkZIICkKICAgICB7Ci0g
ICAgICAgIHZvaWQgKm13YWl0X3B0ciA9ICZtd2FpdF93YWtldXAoc21wX3By
b2Nlc3Nvcl9pZCgpKTsKKyAgICAgICAgdm9pZCAqbXdhaXRfcHRyID0gJnNv
ZnRpcnFfcGVuZGluZyhzbXBfcHJvY2Vzc29yX2lkKCkpOwogCiAgICAgICAg
IC8qCiAgICAgICAgICAqIENhY2hlIG11c3QgYmUgZmx1c2hlZCBhcyB0aGUg
bGFzdCBvcGVyYXRpb24gYmVmb3JlIHNsZWVwaW5nLgpkaWZmIC0tZ2l0IGEv
eGVuL2FyY2gveDg2L2hwZXQuYyBiL3hlbi9hcmNoL3g4Ni9ocGV0LmMKaW5k
ZXggMmY1NGQzMTg4OTY2Li44NGY4MjBmZWY2MDUgMTAwNjQ0Ci0tLSBhL3hl
bi9hcmNoL3g4Ni9ocGV0LmMKKysrIGIveGVuL2FyY2gveDg2L2hwZXQuYwpA
QCAtMTg3LDggKzE4Nyw2IEBAIHN0YXRpYyB2b2lkIGV2dF9kb19icm9hZGNh
c3QoY3B1bWFza190ICptYXNrKQogICAgIGlmICggX19jcHVtYXNrX3Rlc3Rf
YW5kX2NsZWFyX2NwdShjcHUsIG1hc2spICkKICAgICAgICAgcmFpc2Vfc29m
dGlycShUSU1FUl9TT0ZUSVJRKTsKIAotICAgIGNwdWlkbGVfd2FrZXVwX213
YWl0KG1hc2spOwotCiAgICAgaWYgKCAhY3B1bWFza19lbXB0eShtYXNrKSAp
CiAgICAgICAgY3B1bWFza19yYWlzZV9zb2Z0aXJxKG1hc2ssIFRJTUVSX1NP
RlRJUlEpOwogfQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL2hhcmRpcnEuaCBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9oYXJk
aXJxLmgKaW5kZXggMzQyMzYxY2I2ZmRkLi5mM2U5M2NjOWI1MDcgMTAwNjQ0
Ci0tLSBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9oYXJkaXJxLmgKKysr
IGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2hhcmRpcnEuaApAQCAtNSwx
MSArNSwxMCBAQAogI2luY2x1ZGUgPHhlbi90eXBlcy5oPgogCiB0eXBlZGVm
IHN0cnVjdCB7Ci0JdW5zaWduZWQgaW50IF9fc29mdGlycV9wZW5kaW5nOwot
CXVuc2lnbmVkIGludCBfX2xvY2FsX2lycV9jb3VudDsKLQl1bnNpZ25lZCBp
bnQgbm1pX2NvdW50OwotCXVuc2lnbmVkIGludCBtY2VfY291bnQ7Ci0JYm9v
bCBfX213YWl0X3dha2V1cDsKKyAgICB1bnNpZ25lZCBpbnQgX19zb2Z0aXJx
X3BlbmRpbmc7CisgICAgdW5zaWduZWQgaW50IF9fbG9jYWxfaXJxX2NvdW50
OworICAgIHVuc2lnbmVkIGludCBubWlfY291bnQ7CisgICAgdW5zaWduZWQg
aW50IG1jZV9jb3VudDsKIH0gX19jYWNoZWxpbmVfYWxpZ25lZCBpcnFfY3B1
c3RhdF90OwogCiAjaW5jbHVkZSA8eGVuL2lycV9jcHVzdGF0Lmg+CS8qIFN0
YW5kYXJkIG1hcHBpbmdzIGZvciBpcnFfY3B1c3RhdF90IGFib3ZlICovCmRp
ZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vY3B1aWRsZS5oIGIveGVuL2lu
Y2x1ZGUveGVuL2NwdWlkbGUuaAppbmRleCA3MDVkMGMxMTM1ZjAuLjEyMGUz
NTRmZTM0MCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL2NwdWlkbGUu
aAorKysgYi94ZW4vaW5jbHVkZS94ZW4vY3B1aWRsZS5oCkBAIC05Miw4ICs5
Miw2IEBAIGV4dGVybiBzdHJ1Y3QgY3B1aWRsZV9nb3Zlcm5vciAqY3B1aWRs
ZV9jdXJyZW50X2dvdmVybm9yOwogYm9vbCBjcHVpZGxlX3VzaW5nX2RlZXBf
Y3N0YXRlKHZvaWQpOwogdm9pZCBjcHVpZGxlX2Rpc2FibGVfZGVlcF9jc3Rh
dGUodm9pZCk7CiAKLWV4dGVybiB2b2lkIGNwdWlkbGVfd2FrZXVwX213YWl0
KGNwdW1hc2tfdCAqbWFzayk7Ci0KICNkZWZpbmUgQ1BVSURMRV9EUklWRVJf
U1RBVEVfU1RBUlQgIDEKIAogZXh0ZXJuIHZvaWQgbWVudV9nZXRfdHJhY2Vf
ZGF0YSh1MzIgKmV4cGVjdGVkLCB1MzIgKnByZWQpOwpkaWZmIC0tZ2l0IGEv
eGVuL2luY2x1ZGUveGVuL2lycV9jcHVzdGF0LmggYi94ZW4vaW5jbHVkZS94
ZW4vaXJxX2NwdXN0YXQuaAppbmRleCBiOTYyOWYyNWMyNjYuLjVmMDM5YjRi
OWE3NiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL2lycV9jcHVzdGF0
LmgKKysrIGIveGVuL2luY2x1ZGUveGVuL2lycV9jcHVzdGF0LmgKQEAgLTI0
LDYgKzI0LDUgQEAgZXh0ZXJuIGlycV9jcHVzdGF0X3QgaXJxX3N0YXRbXTsK
ICAgLyogYXJjaCBpbmRlcGVuZGVudCBpcnFfc3RhdCBmaWVsZHMgKi8KICNk
ZWZpbmUgc29mdGlycV9wZW5kaW5nKGNwdSkJX19JUlFfU1RBVCgoY3B1KSwg
X19zb2Z0aXJxX3BlbmRpbmcpCiAjZGVmaW5lIGxvY2FsX2lycV9jb3VudChj
cHUpCV9fSVJRX1NUQVQoKGNwdSksIF9fbG9jYWxfaXJxX2NvdW50KQotI2Rl
ZmluZSBtd2FpdF93YWtldXAoY3B1KQlfX0lSUV9TVEFUKChjcHUpLCBfX213
YWl0X3dha2V1cCkKIAogI2VuZGlmCS8qIF9faXJxX2NwdXN0YXRfaCAqLwo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.19-07.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.19-07.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDE4OjEzOjI3ICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBEcm9wIGluY29ycmVjdCBzbXBfbWIoKSBpbiBtd2Fp
dF9pZGxlX3dpdGhfaGludHMoKQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50
LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFu
c2Zlci1FbmNvZGluZzogOGJpdAoKV2l0aCB0aGUgcmVjZW50IHNpbXBsaWZp
Y2F0aW9ucywgaXQgYmVjb21lcyBvYnZpb3VzIHRoYXQgc21wX21iKCkgaXNu
J3QgdGhlCnJpZ2h0IGJhcnJpZXIuICBTdHJpY3RseSBzcGVha2luZywgTU9O
SVRPUiBpcyBvcmRlcmVkIGFzIGEgbG9hZCwgYnV0IHNtcF9ybWIoKQppc24n
dCBjb3JyZWN0IGVpdGhlciwgYXMgdGhpcyBvbmx5IHBlcnRhaW5zIHRvIGxv
Y2FsIG9yZGVyaW5nLiAgQWxsIHdlIG5lZWQgaXMKYSBjb21waWxlciBiYXJy
aWVyKCkuCgpNZXJnZSB0aGUgYmFyaWVyKCkgaW50byB0aGUgbW9uaXRvcigp
IGl0c2VsZiwgYWxvbmcgd2l0aCBhbiBleHBsYW50aW9uLgoKTm8gZnVuY3Rp
b25hbCBjaGFuZ2UuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxh
bmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpBY2tlZC1ieTogUm9nZXIgUGF1
IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CihjaGVycnkgcGlja2Vk
IGZyb20gY29tbWl0IGU3NzEwZGQ4NDNiYTlkMjA0ZjZlZTI5NzNkNjEyMGMx
OTg0OTU4YTYpCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2FjcGkvY3B1
X2lkbGUuYyBiL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKaW5kZXgg
NGVkMTg3OGUyNjJjLi5hNGE2Zjg2OTQzNzMgMTAwNjQ0Ci0tLSBhL3hlbi9h
cmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKKysrIGIveGVuL2FyY2gveDg2L2Fj
cGkvY3B1X2lkbGUuYwpAQCAtNjUsOCArNjUsMTIgQEAgc3RhdGljIGFsd2F5
c19pbmxpbmUgdm9pZCBtb25pdG9yKAogICAgIGFsdGVybmF0aXZlX2lucHV0
KCIiLCAiY2xmbHVzaCAoJVthZGRyXSkiLCBYODZfQlVHX0NMRkxVU0hfTU9O
SVRPUiwKICAgICAgICAgICAgICAgICAgICAgICBbYWRkcl0gImEiIChhZGRy
KSk7CiAKKyAgICAvKgorICAgICAqIFRoZSBtZW1vcnkgY2xvYmJlciBpcyBh
IGNvbXBpbGVyIGJhcnJpZXIuICBTdWJzZXFldW50IHJlYWRzIGZyb20gdGhl
CisgICAgICogbW9uaXRvcmVkIGNhY2hlbGluZSBtdXN0IG5vdCBiZSByZW9y
ZGVyZWQgb3ZlciBNT05JVE9SLgorICAgICAqLwogICAgIGFzbSB2b2xhdGls
ZSAoICJtb25pdG9yIgotICAgICAgICAgICAgICAgICAgIDo6ICJhIiAoYWRk
ciksICJjIiAoZWN4KSwgImQiIChlZHgpICk7CisgICAgICAgICAgICAgICAg
ICAgOjogImEiIChhZGRyKSwgImMiIChlY3gpLCAiZCIgKGVkeCkgOiAibWVt
b3J5IiApOwogfQogCiBzdGF0aWMgYWx3YXlzX2lubGluZSB2b2lkIG13YWl0
KHVuc2lnbmVkIGludCBlYXgsIHVuc2lnbmVkIGludCBlY3gpCkBAIC00NjUs
NyArNDY5LDYgQEAgdm9pZCBtd2FpdF9pZGxlX3dpdGhfaGludHModW5zaWdu
ZWQgaW50IGVheCwgdW5zaWduZWQgaW50IGVjeCkKICAgICBjb25zdCB1bnNp
Z25lZCBpbnQgKnRoaXNfc29mdGlycV9wZW5kaW5nID0gJnNvZnRpcnFfcGVu
ZGluZyhjcHUpOwogCiAgICAgbW9uaXRvcih0aGlzX3NvZnRpcnFfcGVuZGlu
ZywgMCwgMCk7Ci0gICAgc21wX21iKCk7CiAKICAgICBpZiAoICEqdGhpc19z
b2Z0aXJxX3BlbmRpbmcgKQogICAgIHsK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.19-08.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.19-08.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDIxOjQwOjUxICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBDb252ZXJ0IGZvcmNlX213YWl0X2lwaV93YWtldXAg
dG8gWDg2X0JVR19NT05JVE9SCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQt
VHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5z
ZmVyLUVuY29kaW5nOiA4Yml0CgpXZSdyZSBnb2luZyB0byB3YW50IGFsdGVy
bmF0aXZlLXBhdGNoIGJhc2VkIG9uIGl0LgoKTm8gZnVuY3Rpb25hbCBjaGFu
Z2UuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29v
cGVyM0BjaXRyaXguY29tPgpBY2tlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8
cm9nZXIucGF1QGNpdHJpeC5jb20+CihjaGVycnkgcGlja2VkIGZyb20gY29t
bWl0IGIwY2EwZjkzZjQ3YzQzZjg5ODQ5ODExMzdhZjA3Y2EzZDE2MWUzZWMp
CgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYyBi
L3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKaW5kZXggYTRhNmY4Njk0
MzczLi5jNDJmZmIyNDRlOGIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9h
Y3BpL2NwdV9pZGxlLmMKKysrIGIveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lk
bGUuYwpAQCAtNDUyLDE0ICs0NTIsOCBAQCBzdGF0aWMgaW50IF9faW5pdCBj
Zl9jaGVjayBjcHVfaWRsZV9rZXlfaW5pdCh2b2lkKQogfQogX19pbml0Y2Fs
bChjcHVfaWRsZV9rZXlfaW5pdCk7CiAKLS8qIEZvcmNlIHNlbmRpbmcgb2Yg
YSB3YWtldXAgSVBJIHJlZ2FyZGxlc3Mgb2YgbXdhaXQgdXNhZ2UuICovCi1i
b29sIF9fcm9fYWZ0ZXJfaW5pdCBmb3JjZV9td2FpdF9pcGlfd2FrZXVwOwot
CiBib29sIGFyY2hfc2tpcF9zZW5kX2V2ZW50X2NoZWNrKHVuc2lnbmVkIGlu
dCBjcHUpCiB7Ci0gICAgaWYgKCBmb3JjZV9td2FpdF9pcGlfd2FrZXVwICkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotCiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1L2ludGVsLmMgYi94
ZW4vYXJjaC94ODYvY3B1L2ludGVsLmMKaW5kZXggNTcyNTgyMjBlODIyLi5k
YmYxN2JlMTI4N2YgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvaW50
ZWwuYworKysgYi94ZW4vYXJjaC94ODYvY3B1L2ludGVsLmMKQEAgLTQzNiw3
ICs0MzYsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgcHJvYmVfbXdhaXRfZXJy
YXRhKHZvaWQpCiAgICAgewogICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5J
TkcKICAgICAgICAgICAgICAgICJGb3JjaW5nIElQSSBNV0FJVCB3YWtldXAg
ZHVlIHRvIENQVSBlcnJhdHVtXG4iKTsKLSAgICAgICAgZm9yY2VfbXdhaXRf
aXBpX3dha2V1cCA9IHRydWU7CisgICAgICAgIHNldHVwX2ZvcmNlX2NwdV9j
YXAoWDg2X0JVR19NT05JVE9SKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBh
L3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlcy5oIGIveGVu
L2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmVzLmgKaW5kZXggODRj
OTMyOTJjODBjLi41NjIzMWIwMGYxNWQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlcy5oCisrKyBiL3hlbi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlcy5oCkBAIC01Myw2ICs1Myw3
IEBAIFhFTl9DUFVGRUFUVVJFKFVTRV9WTUNBTEwsICAgICAgICBYODZfU1lO
VEgoMzApKSAvKiBVc2UgVk1DQUxMIGluc3RlYWQgb2YgVk1NQ0FMCiAjZGVm
aW5lIFg4Nl9CVUdfQ0xGTFVTSF9NRkVOQ0UgICAgWDg2X0JVRyggMikgLyog
TUZFTkNFIG5lZWRlZCB0byBzZXJpYWxpc2UgQ0xGTFVTSCAqLwogI2RlZmlu
ZSBYODZfQlVHX0lCUEJfTk9fUkVUICAgICAgIFg4Nl9CVUcoIDMpIC8qIElC
UEIgZG9lc24ndCBmbHVzaCB0aGUgUlNCL1JBUyAqLwogI2RlZmluZSBYODZf
QlVHX0NMRkxVU0hfTU9OSVRPUiAgIFg4Nl9CVUcoIDQpIC8qIE1PTklUT1Ig
cmVxdWlyZXMgQ0xGTFVTSCAqLworI2RlZmluZSBYODZfQlVHX01PTklUT1Ig
ICAgICAgICAgIFg4Nl9CVUcoIDUpIC8qIE1PTklUT1IgZG9lc24ndCBhbHdh
eXMgbm90aWNlIHdyaXRlcyAoZm9yY2UgSVBJcykgKi8KIAogI2RlZmluZSBY
ODZfU1BFQ19OT19MRkVOQ0VfRU5UUllfUFYgWDg2X0JVRygxNikgLyogKE5v
KSBzYWZldHkgTEZFTkNFIGZvciBTUEVDX0NUUkxfRU5UUllfUFYuICovCiAj
ZGVmaW5lIFg4Nl9TUEVDX05PX0xGRU5DRV9FTlRSWV9JTlRSIFg4Nl9CVUco
MTcpIC8qIChObykgc2FmZXR5IExGRU5DRSBmb3IgU1BFQ19DVFJMX0VOVFJZ
X0lOVFIuICovCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9h
c20vbXdhaXQuaCBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9td2FpdC5o
CmluZGV4IDFmMWUzOTc3NWI5OS4uOTI5OGY5ODdjNDM1IDEwMDY0NAotLS0g
YS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vbXdhaXQuaAorKysgYi94ZW4v
YXJjaC94ODYvaW5jbHVkZS9hc20vbXdhaXQuaApAQCAtMTMsOSArMTMsNiBA
QAogCiAjZGVmaW5lIE1XQUlUX0VDWF9JTlRFUlJVUFRfQlJFQUsJMHgxCiAK
LS8qIEZvcmNlIHNlbmRpbmcgb2YgYSB3YWtldXAgSVBJIHJlZ2FyZGxlc3Mg
b2YgbXdhaXQgdXNhZ2UuICovCi1leHRlcm4gYm9vbCBmb3JjZV9td2FpdF9p
cGlfd2FrZXVwOwotCiB2b2lkIG13YWl0X2lkbGVfd2l0aF9oaW50cyh1bnNp
Z25lZCBpbnQgZWF4LCB1bnNpZ25lZCBpbnQgZWN4KTsKIGJvb2wgbXdhaXRf
cGMxMF9zdXBwb3J0ZWQodm9pZCk7CiAK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.19-09.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.19-09.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDIxOjA0OjE3ICswMTAwClN1Ympl
Y3Q6IHhlbi9zb2Z0aXJxOiBSZXdvcmsgYXJjaF9za2lwX3NlbmRfZXZlbnRf
Y2hlY2soKSBpbnRvCiBhcmNoX3NldF9zb2Z0aXJxKCkKTUlNRS1WZXJzaW9u
OiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04
CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKCng4NiBpcyB0aGUg
b25seSBhcmNoaXRlY3R1cmUgd2FudGluZyBhbiBvcHRpbWlzYXRpb24gaGVy
ZSwgYnV0IHRoZQp0ZXN0X2FuZF9zZXRfYml0KCkgaXMgYSBzdG9yZSBpbnRv
IHRoZSBtb25pdG9yZWQgbGluZSAoaS5lLiB3aWxsIHdha2UgdXAgdGhlCnRh
cmdldCkgYW5kLCBwcmlvciB0byB0aGUgcmVtb3ZhbCBvZiB0aGUgYnJva2Vu
IElQSS1lbGlzaW9uIGFsZ29yaXRobSwgd2FzCnJhY3ksIGNhdXNpbmcgdW5u
ZWNlc3NhcnkgSVBJcyB0byBiZSBzZW50LgoKVG8gZG8gdGhpcyBpbiBhIHJh
Y2UtZnJlZSB3YXksIHRoZSBzdG9yZSB0byB0aGUgbW9uaXRlZCBsaW5lIG5l
ZWRzIHRvIGFsc28Kc2FtcGxlIHRoZSBzdGF0dXMgb2YgdGhlIHRhcmdldCBp
biBvbmUgYXRvbWljIGFjdGlvbi4gIEltcGxlbWVudCBhIG5ldyBhcmNoCmhl
bHBlciB3aXRoIGRpZmZlcmVudCBzZW1hbnRpY3M7IHRvIG1ha2UgdGhlIHNv
ZnRpcnEgcGVuZGluZyBhbmQgZGVjaWRlIGFib3V0CklQSXMgdG9nZXRoZXIu
ICBGb3Igbm93LCBpbXBsZW1lbnQgdGhlIGRlZmF1bHQgaGVscGVyLiAgSXQg
d2lsbCBiZSBvdmVycmlkZGVuCmJ5IHg4NiBpbiBhIHN1YnNlcXVlbnQgY2hh
bmdlLgoKTm8gZnVuY3Rpb25hbCBjaGFuZ2UuCgpTaWduZWQtb2ZmLWJ5OiBB
bmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpSZXZp
ZXdlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5j
b20+CihjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IGI0NzNlNWUyMTJlNDQ1
ZDNjMTkzYzFjODNiNTJiMTI5YWY1NzFiMTkpCgpkaWZmIC0tZ2l0IGEveGVu
L2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYyBiL3hlbi9hcmNoL3g4Ni9hY3Bp
L2NwdV9pZGxlLmMKaW5kZXggYzQyZmZiMjQ0ZThiLi40ODlkODk0YzJmNjYg
MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKKysr
IGIveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYwpAQCAtNDUyLDExICs0
NTIsNiBAQCBzdGF0aWMgaW50IF9faW5pdCBjZl9jaGVjayBjcHVfaWRsZV9r
ZXlfaW5pdCh2b2lkKQogfQogX19pbml0Y2FsbChjcHVfaWRsZV9rZXlfaW5p
dCk7CiAKLWJvb2wgYXJjaF9za2lwX3NlbmRfZXZlbnRfY2hlY2sodW5zaWdu
ZWQgaW50IGNwdSkKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KIHZvaWQg
bXdhaXRfaWRsZV93aXRoX2hpbnRzKHVuc2lnbmVkIGludCBlYXgsIHVuc2ln
bmVkIGludCBlY3gpCiB7CiAgICAgdW5zaWduZWQgaW50IGNwdSA9IHNtcF9w
cm9jZXNzb3JfaWQoKTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9zb2Z0aXJxLmggYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20v
c29mdGlycS5oCmluZGV4IDQxNWVlODY2Yzc5ZC4uZTRiMTk0ZjA2OWZiIDEw
MDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vc29mdGlycS5o
CisrKyBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zb2Z0aXJxLmgKQEAg
LTksNiArOSw0IEBACiAjZGVmaW5lIEhWTV9EUENJX1NPRlRJUlEgICAgICAg
KE5SX0NPTU1PTl9TT0ZUSVJRUyArIDQpCiAjZGVmaW5lIE5SX0FSQ0hfU09G
VElSUVMgICAgICAgNQogCi1ib29sIGFyY2hfc2tpcF9zZW5kX2V2ZW50X2No
ZWNrKHVuc2lnbmVkIGludCBjcHUpOwotCiAjZW5kaWYgLyogX19BU01fU09G
VElSUV9IX18gKi8KZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vc29mdGlycS5j
IGIveGVuL2NvbW1vbi9zb2Z0aXJxLmMKaW5kZXggYmVlNGE4MjAwOWMzLi42
MjZjNDdkZTgyYWMgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vc29mdGlycS5j
CisrKyBiL3hlbi9jb21tb24vc29mdGlycS5jCkBAIC05NCw5ICs5NCw3IEBA
IHZvaWQgY3B1bWFza19yYWlzZV9zb2Z0aXJxKGNvbnN0IGNwdW1hc2tfdCAq
bWFzaywgdW5zaWduZWQgaW50IG5yKQogICAgICAgICByYWlzZV9tYXNrID0g
JnBlcl9jcHUoYmF0Y2hfbWFzaywgdGhpc19jcHUpOwogCiAgICAgZm9yX2Vh
Y2hfY3B1KGNwdSwgbWFzaykKLSAgICAgICAgaWYgKCAhdGVzdF9hbmRfc2V0
X2JpdChuciwgJnNvZnRpcnFfcGVuZGluZyhjcHUpKSAmJgotICAgICAgICAg
ICAgIGNwdSAhPSB0aGlzX2NwdSAmJgotICAgICAgICAgICAgICFhcmNoX3Nr
aXBfc2VuZF9ldmVudF9jaGVjayhjcHUpICkKKyAgICAgICAgaWYgKCAhYXJj
aF9zZXRfc29mdGlycShuciwgY3B1KSAmJiBjcHUgIT0gdGhpc19jcHUgKQog
ICAgICAgICAgICAgX19jcHVtYXNrX3NldF9jcHUoY3B1LCByYWlzZV9tYXNr
KTsKIAogICAgIGlmICggcmFpc2VfbWFzayA9PSAmc2VuZF9tYXNrICkKQEAg
LTEwNyw5ICsxMDUsNyBAQCB2b2lkIGNwdV9yYWlzZV9zb2Z0aXJxKHVuc2ln
bmVkIGludCBjcHUsIHVuc2lnbmVkIGludCBucikKIHsKICAgICB1bnNpZ25l
ZCBpbnQgdGhpc19jcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7CiAKLSAgICBp
ZiAoIHRlc3RfYW5kX3NldF9iaXQobnIsICZzb2Z0aXJxX3BlbmRpbmcoY3B1
KSkKLSAgICAgICAgIHx8IChjcHUgPT0gdGhpc19jcHUpCi0gICAgICAgICB8
fCBhcmNoX3NraXBfc2VuZF9ldmVudF9jaGVjayhjcHUpICkKKyAgICBpZiAo
IGFyY2hfc2V0X3NvZnRpcnEobnIsIGNwdSkgfHwgY3B1ID09IHRoaXNfY3B1
ICkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKCAhcGVyX2NwdShiYXRj
aGluZywgdGhpc19jcHUpIHx8IGluX2lycSgpICkKZGlmZiAtLWdpdCBhL3hl
bi9pbmNsdWRlL3hlbi9zb2Z0aXJxLmggYi94ZW4vaW5jbHVkZS94ZW4vc29m
dGlycS5oCmluZGV4IDMzZDZmMmVjZDIyMy4uNWMyMzYxODY1YjQ5IDEwMDY0
NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vc29mdGlycS5oCisrKyBiL3hlbi9p
bmNsdWRlL3hlbi9zb2Z0aXJxLmgKQEAgLTIxLDYgKzIxLDIyIEBAIGVudW0g
ewogCiAjZGVmaW5lIE5SX1NPRlRJUlFTIChOUl9DT01NT05fU09GVElSUVMg
KyBOUl9BUkNIX1NPRlRJUlFTKQogCisvKgorICogRW5zdXJlIHNvZnRpcnEg
QG5yIGlzIHBlbmRpbmcgb24gQGNwdS4gIFJldHVybiB0cnVlIGlmIGFuIElQ
SSBjYW4gYmUKKyAqIHNraXBwZWQsIGZhbHNlIGlmIHRoZSBJUEkgY2Fubm90
IGJlIHNraXBwZWQuCisgKi8KKyNpZm5kZWYgYXJjaF9zZXRfc29mdGlycQor
c3RhdGljIGFsd2F5c19pbmxpbmUgYm9vbCBhcmNoX3NldF9zb2Z0aXJxKHVu
c2lnbmVkIGludCBuciwgdW5zaWduZWQgaW50IGNwdSkKK3sKKyAgICAvKgor
ICAgICAqIFRyeSB0byBzZXQgdGhlIHNvZnRpcnEgcGVuZGluZy4gIElmIHdl
IHNldCB0aGUgYml0IChpLmUuIHRoZSBvbGQgYml0CisgICAgICogd2FzIDAp
LCB3ZSdyZSByZXNwb25zaWJsZSB0byBzZW5kIHRoZSBJUEkuICBJZiB0aGUg
c29mdGlycSB3YXMgYWxyZWFkeQorICAgICAqIHBlbmRpbmcgKGkuZS4gdGhl
IG9sZCBiaXQgd2FzIDEpLCBubyBJUEkgaXMgbmVlZGVkLgorICAgICAqLwor
ICAgIHJldHVybiB0ZXN0X2FuZF9zZXRfYml0KG5yLCAmc29mdGlycV9wZW5k
aW5nKGNwdSkpOworfQorI2VuZGlmCisKIHR5cGVkZWYgdm9pZCAoKnNvZnRp
cnFfaGFuZGxlcikodm9pZCk7CiAKIHZvaWQgZG9fc29mdGlycSh2b2lkKTsK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.19-10.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.19-10.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDIxOjI2OjI0ICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBJbXBsZW1lbnQgYSBuZXcgTVdBSVQgSVBJLWVsaXNp
b24gYWxnb3JpdGhtCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTog
dGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVu
Y29kaW5nOiA4Yml0CgpJbiBvcmRlciBlbGlkZSBJUElzLCB3ZSBtdXN0IGJl
IGFibGUgdG8gaWRlbnRpZnkgd2hldGhlciBhIHRhcmdldCBDUFUgaXMgaW4K
TVdBSVQgYXQgdGhlIHBvaW50IGl0IGlzIHdva2VuIHVwLiAgaS5lLiB0aGUg
c3RvcmUgdG8gd2FrZSBpdCB1cCBtdXN0IGFsc28KaWRlbnRpZnkgdGhlIHN0
YXRlLgoKQ3JlYXRlIGEgbmV3IGluX213YWl0IHZhcmlhYmxlIGJlc2lkZSBf
X3NvZnRpcnFfcGVuZGluZywgc28gd2UgY2FuIHVzZSBhCkNNUFhDSEcgdG8g
c2V0IHRoZSBzb2Z0aXJxIHdoaWxlIGFsc28gb2JzZXJ2aW5nIHRoZSBzdGF0
dXMgc2FmZWx5LiAgSW1wbGVtZW50CmFuIHg4NiB2ZXJzaW9uIG9mIGFyY2hf
cGVuZF9zb2Z0aXJxKCkgd2hpY2ggZG9lcyB0aGlzLgoKSW4gbXdhaXRfaWRs
ZV93aXRoX2hpbnRzKCksIGFkdmVydGlzZSBpbl9td2FpdCwgd2l0aCBhbiBl
eHBsYW5hdGlvbiBvZgpwcmVjaXNlbHkgd2hhdCBpdCBtZWFucy4gIFg4Nl9C
VUdfTU9OSVRPUiBjYW4gYmUgYWNjb3VudGVkIGZvciBzaW1wbHkgYnkgbm90
CmFkdmVydGlzaW5nIGluX213YWl0LgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3
IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KQWNrZWQtYnk6
IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgooY2hl
cnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCAzZTBiYzRiNTAzNTBiZDM1NzMwNGZk
NzlhNWRjMDQ3Mjc5MGRiYTkxKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4
Ni9hY3BpL2NwdV9pZGxlLmMgYi94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRs
ZS5jCmluZGV4IDQ4OWQ4OTRjMmY2Ni4uMTc2ZGYxZWQxNzRmIDEwMDY0NAot
LS0gYS94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jCisrKyBiL3hlbi9h
cmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKQEAgLTQ1NSw3ICs0NTUsMjEgQEAg
X19pbml0Y2FsbChjcHVfaWRsZV9rZXlfaW5pdCk7CiB2b2lkIG13YWl0X2lk
bGVfd2l0aF9oaW50cyh1bnNpZ25lZCBpbnQgZWF4LCB1bnNpZ25lZCBpbnQg
ZWN4KQogewogICAgIHVuc2lnbmVkIGludCBjcHUgPSBzbXBfcHJvY2Vzc29y
X2lkKCk7Ci0gICAgY29uc3QgdW5zaWduZWQgaW50ICp0aGlzX3NvZnRpcnFf
cGVuZGluZyA9ICZzb2Z0aXJxX3BlbmRpbmcoY3B1KTsKKyAgICBpcnFfY3B1
c3RhdF90ICpzdGF0ID0gJmlycV9zdGF0W2NwdV07CisgICAgY29uc3QgdW5z
aWduZWQgaW50ICp0aGlzX3NvZnRpcnFfcGVuZGluZyA9ICZzdGF0LT5fX3Nv
ZnRpcnFfcGVuZGluZzsKKworICAgIC8qCisgICAgICogQnkgc2V0dGluZyBp
bl9td2FpdCwgd2UgcHJvbWlzZSB0byBvdGhlciBDUFVzIHRoYXQgd2UnbGwg
bm90aWNlIGNoYW5nZXMKKyAgICAgKiB0byBfX3NvZnRpcnFfcGVuZGluZyB3
aXRob3V0IGJlaW5nIHNlbnQgYW4gSVBJLiAgV2UgYWNoaWV2ZSB0aGlzIGJ5
CisgICAgICogZWl0aGVyIG5vdCBnb2luZyB0byBzbGVlcCwgb3IgYnkgaGF2
aW5nIGhhcmR3YXJlIG5vdGljZSBvbiBvdXIgYmVoYWxmLgorICAgICAqCisg
ICAgICogU29tZSBlcnJhdGEgZXhpc3Qgd2hlcmUgTU9OSVRPUiBkb2Vzbid0
IHdvcmsgcHJvcGVybHksIGFuZCB0aGUKKyAgICAgKiB3b3JrYXJvdW5kIGlz
IHRvIGZvcmNlIHRoZSB1c2Ugb2YgYW4gSVBJLiAgQ2F1c2UgdGhpcyB0byBo
YXBwZW4gYnkKKyAgICAgKiBzaW1wbHkgbm90IGFkdmVydGlzaW5nIG91cnNl
bHZlcyBhcyBiZWluZyBpbl9td2FpdC4KKyAgICAgKi8KKyAgICBhbHRlcm5h
dGl2ZV9pbygibW92YiAkMSwgJVtpbl9td2FpdF0iLAorICAgICAgICAgICAg
ICAgICAgICIiLCBYODZfQlVHX01PTklUT1IsCisgICAgICAgICAgICAgICAg
ICAgW2luX213YWl0XSAiPW0iIChzdGF0LT5pbl9td2FpdCkpOwogCiAgICAg
bW9uaXRvcih0aGlzX3NvZnRpcnFfcGVuZGluZywgMCwgMCk7CiAKQEAgLTQ2
Nyw2ICs0ODEsMTAgQEAgdm9pZCBtd2FpdF9pZGxlX3dpdGhfaGludHModW5z
aWduZWQgaW50IGVheCwgdW5zaWduZWQgaW50IGVjeCkKICAgICAgICAgbXdh
aXQoZWF4LCBlY3gpOwogICAgICAgICBzcGVjX2N0cmxfZXhpdF9pZGxlKGlu
Zm8pOwogICAgIH0KKworICAgIGFsdGVybmF0aXZlX2lvKCJtb3ZiICQwLCAl
W2luX213YWl0XSIsCisgICAgICAgICAgICAgICAgICAgIiIsIFg4Nl9CVUdf
TU9OSVRPUiwKKyAgICAgICAgICAgICAgICAgICBbaW5fbXdhaXRdICI9bSIg
KHN0YXQtPmluX213YWl0KSk7CiB9CiAKIHN0YXRpYyB2b2lkIGFjcGlfcHJv
Y2Vzc29yX2ZmaF9jc3RhdGVfZW50ZXIoc3RydWN0IGFjcGlfcHJvY2Vzc29y
X2N4ICpjeCkKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9oYXJkaXJxLmggYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaGFyZGly
cS5oCmluZGV4IGYzZTkzY2M5YjUwNy4uMTY0N2NmZjA0ZGM4IDEwMDY0NAot
LS0gYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaGFyZGlycS5oCisrKyBi
L3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9oYXJkaXJxLmgKQEAgLTUsNyAr
NSwxOSBAQAogI2luY2x1ZGUgPHhlbi90eXBlcy5oPgogCiB0eXBlZGVmIHN0
cnVjdCB7Ci0gICAgdW5zaWduZWQgaW50IF9fc29mdGlycV9wZW5kaW5nOwor
ICAgIC8qCisgICAgICogVGhlIGxheW91dCBpcyBpbXBvcnRhbnQuICBBbnkg
Q1BVIGNhbiBzZXQgYml0cyBpbiBfX3NvZnRpcnFfcGVuZGluZywKKyAgICAg
KiBidXQgaW5fbXdhaXQgaXMgYSBzdGF0dXMgYml0IG93bmVkIGJ5IHRoZSBD
UFUuICBzb2Z0aXJxX213YWl0X3JhdyBtdXN0CisgICAgICogY292ZXIgYm90
aCwgYW5kIG11c3QgYmUgaW4gYSBzaW5nbGUgY2FjaGVsaW5lLgorICAgICAq
LworICAgIHVuaW9uIHsKKyAgICAgICAgc3RydWN0IHsKKyAgICAgICAgICAg
IHVuc2lnbmVkIGludCBfX3NvZnRpcnFfcGVuZGluZzsKKyAgICAgICAgICAg
IGJvb2wgaW5fbXdhaXQ7CisgICAgICAgIH07CisgICAgICAgIHVpbnQ2NF90
IHNvZnRpcnFfbXdhaXRfcmF3OworICAgIH07CisKICAgICB1bnNpZ25lZCBp
bnQgX19sb2NhbF9pcnFfY291bnQ7CiAgICAgdW5zaWduZWQgaW50IG5taV9j
b3VudDsKICAgICB1bnNpZ25lZCBpbnQgbWNlX2NvdW50OwpkaWZmIC0tZ2l0
IGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NvZnRpcnEuaCBiL3hlbi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9zb2Z0aXJxLmgKaW5kZXggZTRiMTk0ZjA2
OWZiLi41NWI2NWM5NzQ3YjEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9zb2Z0aXJxLmgKKysrIGIveGVuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL3NvZnRpcnEuaApAQCAtMSw2ICsxLDggQEAKICNpZm5kZWYgX19B
U01fU09GVElSUV9IX18KICNkZWZpbmUgX19BU01fU09GVElSUV9IX18KIAor
I2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4KKwogI2RlZmluZSBOTUlfU09GVElS
USAgICAgICAgICAgIChOUl9DT01NT05fU09GVElSUVMgKyAwKQogI2RlZmlu
ZSBUSU1FX0NBTElCUkFURV9TT0ZUSVJRIChOUl9DT01NT05fU09GVElSUVMg
KyAxKQogI2RlZmluZSBWQ1BVX0tJQ0tfU09GVElSUSAgICAgIChOUl9DT01N
T05fU09GVElSUVMgKyAyKQpAQCAtOSw0ICsxMSw1MCBAQAogI2RlZmluZSBI
Vk1fRFBDSV9TT0ZUSVJRICAgICAgIChOUl9DT01NT05fU09GVElSUVMgKyA0
KQogI2RlZmluZSBOUl9BUkNIX1NPRlRJUlFTICAgICAgIDUKIAorLyoKKyAq
IEVuc3VyZSBzb2Z0aXJxIEBuciBpcyBwZW5kaW5nIG9uIEBjcHUuICBSZXR1
cm4gdHJ1ZSBpZiBhbiBJUEkgY2FuIGJlCisgKiBza2lwcGVkLCBmYWxzZSBp
ZiB0aGUgSVBJIGNhbm5vdCBiZSBza2lwcGVkLgorICoKKyAqIFdlIHVzZSBh
IENNUFhDSEcgY292ZXJpbmcgYm90aCBfX3NvZnRpcnFfcGVuZGluZyBhbmQg
aW5fbXdhaXQsIGluIG9yZGVyIHRvCisgKiBzZXQgc29mdGlycSBAbnIgd2hp
bGUgYWxzbyBvYnNlcnZpbmcgaW5fbXdhaXQgaW4gYSByYWNlLWZyZWUgd2F5
LgorICovCitzdGF0aWMgYWx3YXlzX2lubGluZSBib29sIGFyY2hfc2V0X3Nv
ZnRpcnEodW5zaWduZWQgaW50IG5yLCB1bnNpZ25lZCBpbnQgY3B1KQorewor
ICAgIHVpbnQ2NF90ICpwdHIgPSAmaXJxX3N0YXRbY3B1XS5zb2Z0aXJxX213
YWl0X3JhdzsKKyAgICB1aW50NjRfdCBwcmV2LCBvbGQsIG5ldzsKKyAgICB1
bnNpZ25lZCBpbnQgc29mdGlycSA9IDFVIDw8IG5yOworCisgICAgb2xkID0g
QUNDRVNTX09OQ0UoKnB0cik7CisKKyAgICBmb3IgKCA7OyApCisgICAgewor
ICAgICAgICBpZiAoIG9sZCAmIHNvZnRpcnEgKQorICAgICAgICAgICAgLyog
U29mdGlycSBhbHJlYWR5IHBlbmRpbmcsIG5vdGhpbmcgdG8gZG8uICovCisg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICBuZXcgPSBvbGQg
fCBzb2Z0aXJxOworCisgICAgICAgIHByZXYgPSBjbXB4Y2hnKHB0ciwgb2xk
LCBuZXcpOworICAgICAgICBpZiAoIHByZXYgPT0gb2xkICkKKyAgICAgICAg
ICAgIGJyZWFrOworCisgICAgICAgIG9sZCA9IHByZXY7CisgICAgfQorCisg
ICAgLyoKKyAgICAgKiBXZSBoYXZlIGNhdXNlZCB0aGUgc29mdGlycSB0byBi
ZWNvbWUgcGVuZGluZy4gIElmIGluX213YWl0IHdhcyBzZXQsIHRoZQorICAg
ICAqIHRhcmdldCBDUFUgd2lsbCBub3RpY2UgdGhlIG1vZGlmaWNhdGlvbiBh
bmQgYWN0IG9uIGl0LgorICAgICAqCisgICAgICogV2UgY2FuJ3QgYWNjZXNz
IHRoZSBpbl9td2FpdCBmaWVsZCBuaWNlbHksIHNvIHVzZSBzb21lIEJVSUxE
X0JVR19PTigpJ3MKKyAgICAgKiB0byBjcm9zcy1jaGVjayB0aGUgKDFVTCA8
PCAzMikgb3BlbmNvZGluZy4KKyAgICAgKi8KKyAgICBCVUlMRF9CVUdfT04o
c2l6ZW9mKGlycV9zdGF0WzBdLnNvZnRpcnFfbXdhaXRfcmF3KSAhPSA4KTsK
KyAgICBCVUlMRF9CVUdfT04oKG9mZnNldG9mKGlycV9jcHVzdGF0X3QsIGlu
X213YWl0KSAtCisgICAgICAgICAgICAgICAgICBvZmZzZXRvZihpcnFfY3B1
c3RhdF90LCBzb2Z0aXJxX213YWl0X3JhdykpICE9IDQpOworCisgICAgcmV0
dXJuIG5ldyAmICgxVUwgPDwgMzIpIC8qIGluX213YWl0ICovOworCit9Cisj
ZGVmaW5lIGFyY2hfc2V0X3NvZnRpcnEgYXJjaF9zZXRfc29mdGlycQorCiAj
ZW5kaWYgLyogX19BU01fU09GVElSUV9IX18gKi8K

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.19-11.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.19-11.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogV2VkLCAyIEp1bCAyMDI1IDE0OjUxOjM4ICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBGaXggYnVnZ3kgIng4Ni9td2FpdC1pZGxlOiBlbmFi
bGUgaW50ZXJydXB0cyBiZWZvcmUgQzEgb24KIFhlb25zIgoKVGhlIGNoZWNr
IG9mIHRoaXNfc29mdGlycV9wZW5kaW5nIG11c3QgYmUgcGVyZm9ybWVkIHdp
dGggaXJxcyBkaXNhYmxlZCwgYnV0CnRoaXMgcHJvcGVydHkgd2FzIGJyb2tl
biBieSBhbiBhdHRlbXB0IHRvIG9wdGltaXNlIGVudHJ5L2V4aXQgbGF0ZW5j
eS4KCkNvbW1pdCBjMjI3MjMzYWQ2NGMgaW4gTGludXggKHdoaWNoIHdlIGNv
cGllZCBpbnRvIFhlbikgd2FzIGZpeGVkIHVwIGJ5CmVkYzhmYzAxZjYwOCBp
biBMaW51eCwgd2hpY2ggd2UgaGF2ZSBzbyBmYXIgbWlzc2VkLgoKR29pbmcg
dG8gc2xlZXAgd2l0aG91dCB3YWtpbmcgb24gaW50ZXJydXB0cyBpcyBub25z
ZW5zaWNhbCBvdXRzaWRlIG9mCnBsYXlfZGVhZCgpLCBzbyBvdmVybG9hZCB0
aGlzIHRvIHNlbGVjdCBiZXR3ZWVuIHR3byBwb3NzaWJsZSBNV0FJVHMsIHRo
ZQpzZWNvbmQgdXNpbmcgdGhlIFNUSSBzaGFkb3cgdG8gY292ZXIgTVdBSVQg
Zm9yIGV4YWN0bHkgdGhlIHNhbWUgcmVhc29uIGFzIHdlCmRvIGluIHNhZmVf
aGFsdCgpLgoKRml4ZXM6IGIxN2UwZWM3MmVkZSAoIng4Ni9td2FpdC1pZGxl
OiBlbmFibGUgaW50ZXJydXB0cyBiZWZvcmUgQzEgb24gWGVvbnMiKQpTaWdu
ZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRy
aXguY29tPgpSZXZpZXdlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1
c2UuY29tPgooY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA5YjBmMGY2ZTIz
NTYxOGMyNzY0ZTkyNWI1OGM0YmZlNDEyNzMwY2VkKQoKZGlmZiAtLWdpdCBh
L3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMgYi94ZW4vYXJjaC94ODYv
YWNwaS9jcHVfaWRsZS5jCmluZGV4IDE3NmRmMWVkMTc0Zi4uNjk4NTdhNThl
ZjVhIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5j
CisrKyBiL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKQEAgLTc5LDYg
Kzc5LDEzIEBAIHN0YXRpYyBhbHdheXNfaW5saW5lIHZvaWQgbXdhaXQodW5z
aWduZWQgaW50IGVheCwgdW5zaWduZWQgaW50IGVjeCkKICAgICAgICAgICAg
ICAgICAgICA6OiAiYSIgKGVheCksICJjIiAoZWN4KSApOwogfQogCitzdGF0
aWMgYWx3YXlzX2lubGluZSB2b2lkIHN0aV9td2FpdF9jbGkodW5zaWduZWQg
aW50IGVheCwgdW5zaWduZWQgaW50IGVjeCkKK3sKKyAgICAvKiBTVEkgc2hh
ZG93IGNvdmVycyBNV0FJVC4gKi8KKyAgICBhc20gdm9sYXRpbGUgKCAic3Rp
OyBtd2FpdDsgY2xpIgorICAgICAgICAgICAgICAgICAgIDo6ICJhIiAoZWF4
KSwgImMiIChlY3gpICk7Cit9CisKICNkZWZpbmUgR0VUX0hXX1JFU19JTl9O
Uyhtc3IsIHZhbCkgXAogICAgIGRvIHsgcmRtc3JsKG1zciwgdmFsKTsgdmFs
ID0gdHNjX3RpY2tzMm5zKHZhbCk7IH0gd2hpbGUoIDAgKQogI2RlZmluZSBH
RVRfTUM2X1JFUyh2YWwpICBHRVRfSFdfUkVTX0lOX05TKDB4NjY0LCB2YWwp
CkBAIC00NzMsMTIgKzQ4MCwxOSBAQCB2b2lkIG13YWl0X2lkbGVfd2l0aF9o
aW50cyh1bnNpZ25lZCBpbnQgZWF4LCB1bnNpZ25lZCBpbnQgZWN4KQogCiAg
ICAgbW9uaXRvcih0aGlzX3NvZnRpcnFfcGVuZGluZywgMCwgMCk7CiAKKyAg
ICBBU1NFUlQoIWxvY2FsX2lycV9pc19lbmFibGVkKCkpOworCiAgICAgaWYg
KCAhKnRoaXNfc29mdGlycV9wZW5kaW5nICkKICAgICB7CiAgICAgICAgIHN0
cnVjdCBjcHVfaW5mbyAqaW5mbyA9IGdldF9jcHVfaW5mbygpOwogCiAgICAg
ICAgIHNwZWNfY3RybF9lbnRlcl9pZGxlKGluZm8pOwotICAgICAgICBtd2Fp
dChlYXgsIGVjeCk7CisKKyAgICAgICAgaWYgKCBlY3ggJiBNV0FJVF9FQ1hf
SU5URVJSVVBUX0JSRUFLICkKKyAgICAgICAgICAgIG13YWl0KGVheCwgZWN4
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc3RpX213YWl0X2NsaShl
YXgsIGVjeCk7CisKICAgICAgICAgc3BlY19jdHJsX2V4aXRfaWRsZShpbmZv
KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9jcHUvbXdh
aXQtaWRsZS5jIGIveGVuL2FyY2gveDg2L2NwdS9td2FpdC1pZGxlLmMKaW5k
ZXggMTgyNTE4NTI4YTZlLi4zYzYzZjBkNDVhMTEgMTAwNjQ0Ci0tLSBhL3hl
bi9hcmNoL3g4Ni9jcHUvbXdhaXQtaWRsZS5jCisrKyBiL3hlbi9hcmNoL3g4
Ni9jcHUvbXdhaXQtaWRsZS5jCkBAIC05NjIsMTIgKzk2Miw4IEBAIHN0YXRp
YyB2b2lkIGNmX2NoZWNrIG13YWl0X2lkbGUodm9pZCkKIAogCXVwZGF0ZV9s
YXN0X2N4X3N0YXQocG93ZXIsIGN4LCBiZWZvcmUpOwogCi0JaWYgKGN4LT5p
cnFfZW5hYmxlX2Vhcmx5KQotCQlsb2NhbF9pcnFfZW5hYmxlKCk7Ci0KLQlt
d2FpdF9pZGxlX3dpdGhfaGludHMoY3gtPmFkZHJlc3MsIE1XQUlUX0VDWF9J
TlRFUlJVUFRfQlJFQUspOwotCi0JbG9jYWxfaXJxX2Rpc2FibGUoKTsKKwlt
d2FpdF9pZGxlX3dpdGhfaGludHMoY3gtPmFkZHJlc3MsCisJCQkgICAgICBj
eC0+aXJxX2VuYWJsZV9lYXJseSA/IDAgOiBNV0FJVF9FQ1hfSU5URVJSVVBU
X0JSRUFLKTsKIAogCWFmdGVyID0gYWx0ZXJuYXRpdmVfY2FsbChjcHVpZGxl
X2dldF90aWNrKTsKIAo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.19-12.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.19-12.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogRnJpLCAyNyBKdW4gMjAyNSAxNzoxOToxOSArMDEwMApTdWJq
ZWN0OiB4ODYvY3B1LXBvbGljeTogUmVhcnJhbmdlIGd1ZXN0X2NvbW1vbl8q
X2ZlYXR1cmVfYWRqdXN0bWVudHMoKQoKVHVybiB0aGUgaWYoKXMgaW50byBz
d2l0Y2goKWVzLCBhcyB3ZSdyZSBnb2luZyB0byBuZWVkIEFNRCBzZWN0aW9u
cy4KCk1vdmUgdGhlIFJUTSBhZGp1c3RtZW50cyBpbnRvIHRoZSBJbnRlbCBz
ZWN0aW9uLCB3aGVyZSB0aGV5IG91Z2h0IHRvIGxpdmUuCgpObyBmdW5jdGlv
bmFsIGNoYW5nZS4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFu
ZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5OiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+CgpkaWZmIC0tZ2l0IGEveGVuL2Fy
Y2gveDg2L2NwdS1wb2xpY3kuYyBiL3hlbi9hcmNoL3g4Ni9jcHUtcG9saWN5
LmMKaW5kZXggZTM0Y2JhMTg5Yzc1Li5hZjJiNGQ3ZmEwMDAgMTAwNjQ0Ci0t
LSBhL3hlbi9hcmNoL3g4Ni9jcHUtcG9saWN5LmMKKysrIGIveGVuL2FyY2gv
eDg2L2NwdS1wb2xpY3kuYwpAQCAtNDE1LDggKzQxNSw5IEBAIHN0YXRpYyB2
b2lkIF9faW5pdCBndWVzdF9jb21tb25fZGVmYXVsdF9sZWF2ZXMoc3RydWN0
IGNwdV9wb2xpY3kgKnApCiAKIHN0YXRpYyB2b2lkIF9faW5pdCBndWVzdF9j
b21tb25fbWF4X2ZlYXR1cmVfYWRqdXN0bWVudHModWludDMyX3QgKmZzKQog
ewotICAgIGlmICggYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yID09IFg4Nl9W
RU5ET1JfSU5URUwgKQorICAgIHN3aXRjaCAoIGJvb3RfY3B1X2RhdGEueDg2
X3ZlbmRvciApCiAgICAgeworICAgIGNhc2UgWDg2X1ZFTkRPUl9JTlRFTDoK
ICAgICAgICAgLyoKICAgICAgICAgICogTVNSX0FSQ0hfQ0FQUyBpcyBqdXN0
IGZlYXR1cmUgZGF0YSwgYW5kIHdlIGNhbiBvZmZlciBpdCB0byBndWVzdHMK
ICAgICAgICAgICogdW5jb25kaXRpb25hbGx5LCBhbHRob3VnaCBsaW1pdCBp
dCB0byBJbnRlbCBzeXN0ZW1zIGFzIGl0IGlzIGhpZ2hseQpAQCAtNDYxLDYg
KzQ2MiwyMiBAQCBzdGF0aWMgdm9pZCBfX2luaXQgZ3Vlc3RfY29tbW9uX21h
eF9mZWF0dXJlX2FkanVzdG1lbnRzKHVpbnQzMl90ICpmcykKICAgICAgICAg
ICAgICBib290X2NwdV9kYXRhLng4Nl9tb2RlbCA9PSBJTlRFTF9GQU02X1NL
WUxBS0VfWCAmJgogICAgICAgICAgICAgIHJhd19jcHVfcG9saWN5LmZlYXQu
Y2x3YiApCiAgICAgICAgICAgICBfX3NldF9iaXQoWDg2X0ZFQVRVUkVfQ0xX
QiwgZnMpOworCisgICAgICAgIC8qCisgICAgICAgICAqIFRvIG1pdGlnYXRl
IE5hdGl2ZS1CSEksIG9uZSBvcHRpb24gaXMgdG8gdXNlIGEgVFNYIEFib3J0
IG9uIGNhcGFibGUKKyAgICAgICAgICogc3lzdGVtcy4gIFRoaXMgaXMgc2Fm
ZSBldmVuIGlmIFJUTSBoYXMgYmVlbiBkaXNhYmxlZCBmb3Igb3RoZXIKKyAg
ICAgICAgICogcmVhc29ucyB2aWEgTVNSX1RTWF97Q1RSTCxGT1JDRV9BQk9S
VH0uICBIb3dldmVyLCBhIGd1ZXN0IGtlcm5lbAorICAgICAgICAgKiBkb2Vz
bid0IGdldCB0byBrbm93IHRoaXMgdHlwZSBvZiBpbmZvcm1hdGlvbi4KKyAg
ICAgICAgICoKKyAgICAgICAgICogVGhlcmVmb3JlIHRoZSBtZWFuaW5nIG9m
IFJUTV9BTFdBWVNfQUJPUlQgaGFzIGJlZW4gYWRqdXN0ZWQsIHRvCisgICAg
ICAgICAqIGluc3RlYWQgbWVhbiAiWEJFR0lOIHdvbid0IGZhdWx0Ii4gIFRo
aXMgaXMgZW5vdWdoIGZvciBhIGd1ZXN0CisgICAgICAgICAqIGtlcm5lbCB0
byBtYWtlIGFuIGluZm9ybWVkIGNob2ljZSBXUlQgbWl0aWdhdGluZyBOYXRp
dmUtQkhJLgorICAgICAgICAgKgorICAgICAgICAgKiBJZiBSVE0tY2FwYWJs
ZSwgd2UgY2FuIHJ1biBhIFZNIHdoaWNoIGhhcyBzZWVuIFJUTV9BTFdBWVNf
QUJPUlQuCisgICAgICAgICAqLworICAgICAgICBpZiAoIHRlc3RfYml0KFg4
Nl9GRUFUVVJFX1JUTSwgZnMpICkKKyAgICAgICAgICAgIF9fc2V0X2JpdChY
ODZfRkVBVFVSRV9SVE1fQUxXQVlTX0FCT1JULCBmcyk7CisgICAgICAgIGJy
ZWFrOwogICAgIH0KIAogICAgIC8qCkBAIC00NzIsMjcgKzQ4OSwxMyBAQCBz
dGF0aWMgdm9pZCBfX2luaXQgZ3Vlc3RfY29tbW9uX21heF9mZWF0dXJlX2Fk
anVzdG1lbnRzKHVpbnQzMl90ICpmcykKICAgICAgKi8KICAgICBfX3NldF9i
aXQoWDg2X0ZFQVRVUkVfSFRULCBmcyk7CiAgICAgX19zZXRfYml0KFg4Nl9G
RUFUVVJFX0NNUF9MRUdBQ1ksIGZzKTsKLQotICAgIC8qCi0gICAgICogVG8g
bWl0aWdhdGUgTmF0aXZlLUJISSwgb25lIG9wdGlvbiBpcyB0byB1c2UgYSBU
U1ggQWJvcnQgb24gY2FwYWJsZQotICAgICAqIHN5c3RlbXMuICBUaGlzIGlz
IHNhZmUgZXZlbiBpZiBSVE0gaGFzIGJlZW4gZGlzYWJsZWQgZm9yIG90aGVy
IHJlYXNvbnMKLSAgICAgKiB2aWEgTVNSX1RTWF97Q1RSTCxGT1JDRV9BQk9S
VH0uICBIb3dldmVyLCBhIGd1ZXN0IGtlcm5lbCBkb2Vzbid0IGdldCB0bwot
ICAgICAqIGtub3cgdGhpcyB0eXBlIG9mIGluZm9ybWF0aW9uLgotICAgICAq
Ci0gICAgICogVGhlcmVmb3JlIHRoZSBtZWFuaW5nIG9mIFJUTV9BTFdBWVNf
QUJPUlQgaGFzIGJlZW4gYWRqdXN0ZWQsIHRvIGluc3RlYWQKLSAgICAgKiBt
ZWFuICJYQkVHSU4gd29uJ3QgZmF1bHQiLiAgVGhpcyBpcyBlbm91Z2ggZm9y
IGEgZ3Vlc3Qga2VybmVsIHRvIG1ha2UKLSAgICAgKiBhbiBpbmZvcm1lZCBj
aG9pY2UgV1JUIG1pdGlnYXRpbmcgTmF0aXZlLUJISS4KLSAgICAgKgotICAg
ICAqIElmIFJUTS1jYXBhYmxlLCB3ZSBjYW4gcnVuIGEgVk0gd2hpY2ggaGFz
IHNlZW4gUlRNX0FMV0FZU19BQk9SVC4KLSAgICAgKi8KLSAgICBpZiAoIHRl
c3RfYml0KFg4Nl9GRUFUVVJFX1JUTSwgZnMpICkKLSAgICAgICAgX19zZXRf
Yml0KFg4Nl9GRUFUVVJFX1JUTV9BTFdBWVNfQUJPUlQsIGZzKTsKIH0KIAog
c3RhdGljIHZvaWQgX19pbml0IGd1ZXN0X2NvbW1vbl9kZWZhdWx0X2ZlYXR1
cmVfYWRqdXN0bWVudHModWludDMyX3QgKmZzKQogewotICAgIGlmICggYm9v
dF9jcHVfZGF0YS54ODZfdmVuZG9yID09IFg4Nl9WRU5ET1JfSU5URUwgKQor
ICAgIHN3aXRjaCAoIGJvb3RfY3B1X2RhdGEueDg2X3ZlbmRvciApCiAgICAg
eworICAgIGNhc2UgWDg2X1ZFTkRPUl9JTlRFTDoKICAgICAgICAgLyoKICAg
ICAgICAgICogSXZ5QnJpZGdlIGNsaWVudCBwYXJ0cyBzdWZmZXIgZnJvbSBs
ZWFrYWdlIG9mIFJEUkFORCBkYXRhIGR1ZSB0byBTUkJEUwogICAgICAgICAg
KiAoWFNBLTMyMCAvIENWRS0yMDIwLTA1NDMpLCBhbmQgd29uJ3QgYmUgcmVj
ZWl2aW5nIG1pY3JvY29kZSB0bwpAQCAtNTM2LDYgKzUzOSwyMyBAQCBzdGF0
aWMgdm9pZCBfX2luaXQgZ3Vlc3RfY29tbW9uX2RlZmF1bHRfZmVhdHVyZV9h
ZGp1c3RtZW50cyh1aW50MzJfdCAqZnMpCiAgICAgICAgICAgICAgYm9vdF9j
cHVfZGF0YS54ODZfbW9kZWwgPT0gSU5URUxfRkFNNl9TS1lMQUtFX1ggJiYK
ICAgICAgICAgICAgICByYXdfY3B1X3BvbGljeS5mZWF0LmNsd2IgKQogICAg
ICAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVfQ0xXQiwgZnMpOwor
CisgICAgICAgIC8qCisgICAgICAgICAqIE9uIGNlcnRhaW4gaGFyZHdhcmUs
IHNwZWN1bGF0aXZlIG9yIGVycmF0YSB3b3JrYXJvdW5kcyBjYW4gcmVzdWx0
CisgICAgICAgICAqIGluIFRTWCBiZWluZyBwbGFjZWQgaW4gImZvcmNlLWFi
b3J0IiBtb2RlLCB3aGVyZSBpdCBkb2Vzbid0CisgICAgICAgICAqIGFjdHVh
bGx5IGZ1bmN0aW9uIGFzIGV4cGVjdGVkLCBidXQgaXMgdGVjaG5pY2FsbHkg
Y29tcGF0aWJsZSB3aXRoCisgICAgICAgICAqIHRoZSBJU0EuCisgICAgICAg
ICAqCisgICAgICAgICAqIERvIG5vdCBhZHZlcnRpc2UgUlRNIHRvIGd1ZXN0
cyBieSBkZWZhdWx0IGlmIGl0IHdvbid0IGFjdHVhbGx5CisgICAgICAgICAq
IHdvcmsuICBJbnN0ZWFkLCBhZHZlcnRpc2UgUlRNX0FMV0FZU19BQk9SVCBp
bmRpY2F0aW5nIHRoYXQgVFNYCisgICAgICAgICAqIEFib3J0cyBhcmUgc2Fm
ZSB0byB1c2UsIGUuZy4gZm9yIG1pdGlnYXRpbmcgTmF0aXZlLUJISS4KKyAg
ICAgICAgICovCisgICAgICAgIGlmICggcnRtX2Rpc2FibGVkICkKKyAgICAg
ICAgeworICAgICAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVfUlRN
LCBmcyk7CisgICAgICAgICAgICBfX3NldF9iaXQoWDg2X0ZFQVRVUkVfUlRN
X0FMV0FZU19BQk9SVCwgZnMpOworICAgICAgICB9CisgICAgICAgIGJyZWFr
OwogICAgIH0KIAogICAgIC8qCkBAIC01NDcsMjEgKzU2Nyw2IEBAIHN0YXRp
YyB2b2lkIF9faW5pdCBndWVzdF9jb21tb25fZGVmYXVsdF9mZWF0dXJlX2Fk
anVzdG1lbnRzKHVpbnQzMl90ICpmcykKIAogICAgIGlmICggIWNwdV9oYXNf
Y21wX2xlZ2FjeSApCiAgICAgICAgIF9fY2xlYXJfYml0KFg4Nl9GRUFUVVJF
X0NNUF9MRUdBQ1ksIGZzKTsKLQotICAgIC8qCi0gICAgICogT24gY2VydGFp
biBoYXJkd2FyZSwgc3BlY3VsYXRpdmUgb3IgZXJyYXRhIHdvcmthcm91bmRz
IGNhbiByZXN1bHQgaW4KLSAgICAgKiBUU1ggYmVpbmcgcGxhY2VkIGluICJm
b3JjZS1hYm9ydCIgbW9kZSwgd2hlcmUgaXQgZG9lc24ndCBhY3R1YWxseQot
ICAgICAqIGZ1bmN0aW9uIGFzIGV4cGVjdGVkLCBidXQgaXMgdGVjaG5pY2Fs
bHkgY29tcGF0aWJsZSB3aXRoIHRoZSBJU0EuCi0gICAgICoKLSAgICAgKiBE
byBub3QgYWR2ZXJ0aXNlIFJUTSB0byBndWVzdHMgYnkgZGVmYXVsdCBpZiBp
dCB3b24ndCBhY3R1YWxseSB3b3JrLgotICAgICAqIEluc3RlYWQsIGFkdmVy
dGlzZSBSVE1fQUxXQVlTX0FCT1JUIGluZGljYXRpbmcgdGhhdCBUU1ggQWJv
cnRzIGFyZSBzYWZlCi0gICAgICogdG8gdXNlLCBlLmcuIGZvciBtaXRpZ2F0
aW5nIE5hdGl2ZS1CSEkuCi0gICAgICovCi0gICAgaWYgKCBydG1fZGlzYWJs
ZWQgKQotICAgIHsKLSAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVf
UlRNLCBmcyk7Ci0gICAgICAgIF9fc2V0X2JpdChYODZfRkVBVFVSRV9SVE1f
QUxXQVlTX0FCT1JULCBmcyk7Ci0gICAgfQogfQogCiBzdGF0aWMgdm9pZCBf
X2luaXQgZ3Vlc3RfY29tbW9uX2ZlYXR1cmVfYWRqdXN0bWVudHModWludDMy
X3QgKmZzKQo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.19-13.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.19-13.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxMCBTZXAgMjAyNCAxOTo1NToxNSArMDEwMApTdWJq
ZWN0OiB4ODYvY3B1LXBvbGljeTogSW5mcmFzdHJ1Y3R1cmUgZm9yIENQVUlE
IGxlYWYgMHg4MDAwMDAyMS5lY3gKClNpZ25lZC1vZmYtYnk6IEFuZHJldyBD
b29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5
OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CgpkaWZmIC0tZ2l0
IGEvdG9vbHMvbGlicy9saWdodC9saWJ4bF9jcHVpZC5jIGIvdG9vbHMvbGli
cy9saWdodC9saWJ4bF9jcHVpZC5jCmluZGV4IDA2M2ZlODZlYjcyZi4uZjcz
OGUxN2IxOWU0IDEwMDY0NAotLS0gYS90b29scy9saWJzL2xpZ2h0L2xpYnhs
X2NwdWlkLmMKKysrIGIvdG9vbHMvbGlicy9saWdodC9saWJ4bF9jcHVpZC5j
CkBAIC0zNDIsNiArMzQyLDcgQEAgaW50IGxpYnhsX2NwdWlkX3BhcnNlX2Nv
bmZpZyhsaWJ4bF9jcHVpZF9wb2xpY3lfbGlzdCAqcG9saWN5LCBjb25zdCBj
aGFyKiBzdHIpCiAgICAgICAgIENQVUlEX0VOVFJZKDB4MDAwMDAwMDcsICAx
LCBDUFVJRF9SRUdfRURYKSwKICAgICAgICAgTVNSX0VOVFJZKDB4MTBhLCBD
UFVJRF9SRUdfRUFYKSwKICAgICAgICAgTVNSX0VOVFJZKDB4MTBhLCBDUFVJ
RF9SRUdfRURYKSwKKyAgICAgICAgQ1BVSURfRU5UUlkoMHg4MDAwMDAyMSwg
TkEsIENQVUlEX1JFR19FQ1gpLAogI3VuZGVmIE1TUl9FTlRSWQogI3VuZGVm
IENQVUlEX0VOVFJZCiAgICAgfTsKZGlmZiAtLWdpdCBhL3Rvb2xzL21pc2Mv
eGVuLWNwdWlkLmMgYi90b29scy9taXNjL3hlbi1jcHVpZC5jCmluZGV4IDRj
NDU5MzUyOGRmZS4uOGUzNmI4ZTY5NjAwIDEwMDY0NAotLS0gYS90b29scy9t
aXNjL3hlbi1jcHVpZC5jCisrKyBiL3Rvb2xzL21pc2MveGVuLWNwdWlkLmMK
QEAgLTM3LDYgKzM3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB7CiAgICAg
eyAiQ1BVSUQgMHgwMDAwMDAwNzoxLmVkeCIsICAgICAiN2QxIiB9LAogICAg
IHsgIk1TUl9BUkNIX0NBUFMubG8iLCAgICAgICAgICJtMTBBbCIgfSwKICAg
ICB7ICJNU1JfQVJDSF9DQVBTLmhpIiwgICAgICAgICAibTEwQWgiIH0sCisg
ICAgeyAiQ1BVSUQgMHg4MDAwMDAyMS5lY3giLCAgICAgICJlMjFjIiB9LAog
fTsKIAogI2RlZmluZSBDT0xfQUxJR04gIjI0IgpkaWZmIC0tZ2l0IGEveGVu
L2FyY2gveDg2L2NwdS1wb2xpY3kuYyBiL3hlbi9hcmNoL3g4Ni9jcHUtcG9s
aWN5LmMKaW5kZXggYWYyYjRkN2ZhMDAwLi5mNDBiMjVjOTE2ODEgMTAwNjQ0
Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUtcG9saWN5LmMKKysrIGIveGVuL2Fy
Y2gveDg2L2NwdS1wb2xpY3kuYwpAQCAtMzI3LDcgKzMyNyw2IEBAIHN0YXRp
YyB2b2lkIHJlY2FsY3VsYXRlX21pc2Moc3RydWN0IGNwdV9wb2xpY3kgKnAp
CiAgICAgICAgIHAtPmV4dGQucmF3WzB4MWZdID0gRU1QVFlfTEVBRjsgLyog
U0VWICovCiAgICAgICAgIHAtPmV4dGQucmF3WzB4MjBdID0gRU1QVFlfTEVB
RjsgLyogUGxhdGZvcm0gUW9TICovCiAgICAgICAgIHAtPmV4dGQucmF3WzB4
MjFdLmIgPSAwOwotICAgICAgICBwLT5leHRkLnJhd1sweDIxXS5jID0gMDsK
ICAgICAgICAgcC0+ZXh0ZC5yYXdbMHgyMV0uZCA9IDA7CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9jcHUvY29t
bW9uLmMgYi94ZW4vYXJjaC94ODYvY3B1L2NvbW1vbi5jCmluZGV4IGZmNGNk
MjI4OTc5Ny4uZDRkMjFkYTljNTYwIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94
ODYvY3B1L2NvbW1vbi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9jcHUvY29tbW9u
LmMKQEAgLTQ3OSw3ICs0NzksOSBAQCBzdGF0aWMgdm9pZCBnZW5lcmljX2lk
ZW50aWZ5KHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKIAlpZiAoYy0+ZXh0ZW5k
ZWRfY3B1aWRfbGV2ZWwgPj0gMHg4MDAwMDAwOCkKIAkJYy0+eDg2X2NhcGFi
aWxpdHlbRkVBVFVSRVNFVF9lOGJdID0gY3B1aWRfZWJ4KDB4ODAwMDAwMDgp
OwogCWlmIChjLT5leHRlbmRlZF9jcHVpZF9sZXZlbCA+PSAweDgwMDAwMDIx
KQotCQljLT54ODZfY2FwYWJpbGl0eVtGRUFUVVJFU0VUX2UyMWFdID0gY3B1
aWRfZWF4KDB4ODAwMDAwMjEpOworCQljcHVpZCgweDgwMDAwMDIxLAorCQkg
ICAgICAmYy0+eDg2X2NhcGFiaWxpdHlbRkVBVFVSRVNFVF9lMjFhXSwgJnRt
cCwKKwkJICAgICAgJmMtPng4Nl9jYXBhYmlsaXR5W0ZFQVRVUkVTRVRfZTIx
Y10sICZ0bXApOwogCiAJLyogSW50ZWwtZGVmaW5lZCBmbGFnczogbGV2ZWwg
MHgwMDAwMDAwNyAqLwogCWlmIChjLT5jcHVpZF9sZXZlbCA+PSA3KSB7CmRp
ZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC14ODYvY3B1ZmVh
dHVyZXNldC5oIGIveGVuL2luY2x1ZGUvcHVibGljL2FyY2gteDg2L2NwdWZl
YXR1cmVzZXQuaAppbmRleCAzYTJiNjQ2ZjAyNjguLjAzYWNkNDkzODdhYSAx
MDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2FyY2gteDg2L2NwdWZl
YXR1cmVzZXQuaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC14ODYv
Y3B1ZmVhdHVyZXNldC5oCkBAIC0zNjksNiArMzY5LDggQEAgWEVOX0NQVUZF
QVRVUkUoUkZEU19DTEVBUiwgICAgICAgICAxNiozMisyOCkgLyohQXwgUmVn
aXN0ZXIgRmlsZShzKSBjbGVhcmVkIGJ5IFYKIFhFTl9DUFVGRUFUVVJFKFBC
X09QVF9DVFJMLCAgICAgICAgMTYqMzIrMzIpIC8qICAgTVNSX1BCX09QVF9D
VFJMLklCUEJfQUxUICovCiBYRU5fQ1BVRkVBVFVSRShJVFNfTk8sICAgICAg
ICAgICAgIDE2KjMyKzYyKSAvKiFBIE5vIEluZGlyZWN0IFRhcmdldCBTZWxl
Y3Rpb24gKi8KIAorLyogQU1ELWRlZmluZWQgQ1BVIGZlYXR1cmVzLCBDUFVJ
RCBsZXZlbCAweDgwMDAwMDIxLmVjeCwgd29yZCAxOCAqLworCiAjZW5kaWYg
LyogWEVOX0NQVUZFQVRVUkUgKi8KIAogLyogQ2xlYW4gdXAgZnJvbSBhIGRl
ZmF1bHQgaW5jbHVkZS4gIENsb3NlIHRoZSBlbnVtIChmb3IgQykuICovCmRp
ZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vbGliL3g4Ni9jcHUtcG9saWN5
LmggYi94ZW4vaW5jbHVkZS94ZW4vbGliL3g4Ni9jcHUtcG9saWN5LmgKaW5k
ZXggNzUzYWM3ODExNGRhLi5hZTBkYjZmM2UxNmYgMTAwNjQ0Ci0tLSBhL3hl
bi9pbmNsdWRlL3hlbi9saWIveDg2L2NwdS1wb2xpY3kuaAorKysgYi94ZW4v
aW5jbHVkZS94ZW4vbGliL3g4Ni9jcHUtcG9saWN5LmgKQEAgLTIyLDYgKzIy
LDcgQEAKICNkZWZpbmUgRkVBVFVSRVNFVF83ZDEgICAgICAgMTUgLyogMHgw
MDAwMDAwNzoxLmVkeCAgICAqLwogI2RlZmluZSBGRUFUVVJFU0VUX20xMEFs
ICAgICAxNiAvKiAweDAwMDAwMTBhLmVheCAgICAgICovCiAjZGVmaW5lIEZF
QVRVUkVTRVRfbTEwQWggICAgIDE3IC8qIDB4MDAwMDAxMGEuZWR4ICAgICAg
Ki8KKyNkZWZpbmUgRkVBVFVSRVNFVF9lMjFjICAgICAgMTggLyogMHg4MDAw
MDAyMS5lY3ggICAgICAqLwogCiBzdHJ1Y3QgY3B1aWRfbGVhZgogewpAQCAt
MzI4LDcgKzMyOSwxMSBAQCBzdHJ1Y3QgY3B1X3BvbGljeQogICAgICAgICAg
ICAgdWludDE2X3QgdWNvZGVfc2l6ZTsgLyogVW5pdHMgb2YgMTYgYnl0ZXMg
Ki8KICAgICAgICAgICAgIHVpbnQ4X3QgIHJhcF9zaXplOyAgIC8qIFVuaXRz
IG9mIDggZW50cmllcyAqLwogICAgICAgICAgICAgdWludDhfdCAgOjg7Ci0g
ICAgICAgICAgICB1aW50MzJfdCAvKiBjICovOjMyLCAvKiBkICovOjMyOwor
ICAgICAgICAgICAgdW5pb24geworICAgICAgICAgICAgICAgIHVpbnQzMl90
IGUyMWM7CisgICAgICAgICAgICAgICAgc3RydWN0IHsgREVDTF9CSVRGSUVM
RChlMjFjKTsgfTsKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICB1aW50
MzJfdCAvKiBkICovOjMyOwogICAgICAgICB9OwogICAgIH0gZXh0ZDsKIApk
aWZmIC0tZ2l0IGEveGVuL2xpYi94ODYvY3B1aWQuYyBiL3hlbi9saWIveDg2
L2NwdWlkLmMKaW5kZXggZWI3Njk4ZGM3MzI1Li42Mjk4ZDA1MWYyYTYgMTAw
NjQ0Ci0tLSBhL3hlbi9saWIveDg2L2NwdWlkLmMKKysrIGIveGVuL2xpYi94
ODYvY3B1aWQuYwpAQCAtODEsNiArODEsNyBAQCB2b2lkIHg4Nl9jcHVfcG9s
aWN5X3RvX2ZlYXR1cmVzZXQoCiAgICAgZnNbRkVBVFVSRVNFVF83ZDFdICAg
ICAgID0gcC0+ZmVhdC5fN2QxOwogICAgIGZzW0ZFQVRVUkVTRVRfbTEwQWxd
ICAgICA9IHAtPmFyY2hfY2Fwcy5sbzsKICAgICBmc1tGRUFUVVJFU0VUX20x
MEFoXSAgICAgPSBwLT5hcmNoX2NhcHMuaGk7CisgICAgZnNbRkVBVFVSRVNF
VF9lMjFjXSAgICAgID0gcC0+ZXh0ZC5lMjFjOwogfQogCiB2b2lkIHg4Nl9j
cHVfZmVhdHVyZXNldF90b19wb2xpY3koCkBAIC0xMDQsNiArMTA1LDcgQEAg
dm9pZCB4ODZfY3B1X2ZlYXR1cmVzZXRfdG9fcG9saWN5KAogICAgIHAtPmZl
YXQuXzdkMSAgICAgICAgICAgICA9IGZzW0ZFQVRVUkVTRVRfN2QxXTsKICAg
ICBwLT5hcmNoX2NhcHMubG8gICAgICAgICAgPSBmc1tGRUFUVVJFU0VUX20x
MEFsXTsKICAgICBwLT5hcmNoX2NhcHMuaGkgICAgICAgICAgPSBmc1tGRUFU
VVJFU0VUX20xMEFoXTsKKyAgICBwLT5leHRkLmUyMWMgICAgICAgICAgICAg
PSBmc1tGRUFUVVJFU0VUX2UyMWNdOwogfQogCiB2b2lkIHg4Nl9jcHVfcG9s
aWN5X3JlY2FsY19zeW50aChzdHJ1Y3QgY3B1X3BvbGljeSAqcCkK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.19-14.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.19-14.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogRnJpLCAyNyBTZXAgMjAyNCAxMToyODozOSArMDEwMApTdWJq
ZWN0OiB4ODYvdWNvZGU6IERpZ2VzdHMgZm9yIFRTQSBtaWNyb2NvZGUKCkFN
RCBhcmUgcmVsZWFzaW5nIG1pY3JvY29kZSBmb3IgVFNBLCBzbyBleHRlbmQg
dGhlIGtub3duLXByb3ZlbmFuY2UgbGlzdCB3aXRoCnRoZWlyIGhhc2hlcy4g
IFRoZXNlIHdlcmUgcHJvZHVjZWQgYmVmb3JlIHRoZSByZW1lZGlhdGlvbiBv
ZiB0aGUgbWljcm9jb2RlCnNpZ25hdHVyZSBpc3N1ZXMgKHRoZSBlbnRyeXNp
Z24gdnVsbmVyYWJpbGl0eSksIHNvIGNhbiBiZSBPUy1sb2FkZWQgb24Kb3V0
LW9mLWRhdGUgZmlybXdhcmUuCgpJbmNsdWRlIGFuIG9mZi1ieS1kZWZhdWx0
IGNoZWNrIGZvciB0aGUgc29ydGVkLW5lc3Mgb2YgcGF0Y2hfZGlnZXN0c1td
LiAgSXQncwpub3Qgd29ydGggcnVubmluZyBnZW5lcmFsbHkgdW5kZXIgU0VM
Rl9URVNUUywgYnV0IGlzIHVzZWZ1bCB3aGVuIGVkaXRpbmcgdGhlCmRpZ2Vz
dCBsaXN0LgoKVGhpcyBpcyBwYXJ0IG9mIFhTQS00NzEgLyBDVkUtMjAyNC0z
NjM1MCAvIENWRS0yMDI0LTM2MzU3LgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3
IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KQWNrZWQtYnk6
IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KCmRpZmYgLS1naXQg
YS94ZW4vYXJjaC94ODYvY3B1L21pY3JvY29kZS9hbWQtcGF0Y2gtZGlnZXN0
cy5jIGIveGVuL2FyY2gveDg2L2NwdS9taWNyb2NvZGUvYW1kLXBhdGNoLWRp
Z2VzdHMuYwppbmRleCBkMzI3NjEyMjY3MTIuLmQyYzRlMDE3OGExZSAxMDA2
NDQKLS0tIGEveGVuL2FyY2gveDg2L2NwdS9taWNyb2NvZGUvYW1kLXBhdGNo
LWRpZ2VzdHMuYworKysgYi94ZW4vYXJjaC94ODYvY3B1L21pY3JvY29kZS9h
bWQtcGF0Y2gtZGlnZXN0cy5jCkBAIC04MCw2ICs4MCwxNSBAQAogICAgICAg
ICAweDBkLCAweDViLCAweDY1LCAweDM0LCAweDY5LCAweGIyLCAweDYyLCAw
eDIxLAogICAgIH0sCiB9LAoreworICAgIC5wYXRjaF9pZCA9IDB4MGEwMDEx
ZDcsCisgICAgLmRpZ2VzdCA9IHsKKyAgICAgICAgMHgzNSwgMHgwNywgMHhj
ZCwgMHg0MCwgMHg5NCwgMHhiYywgMHg4MSwgMHg2YiwKKyAgICAgICAgMHhm
YywgMHg2MSwgMHg1NiwgMHgxYSwgMHhlMiwgMHhkYiwgMHg5NiwgMHgxMiwK
KyAgICAgICAgMHgxYywgMHgxYywgMHgzMSwgMHhiMSwgMHgwMiwgMHg2Ziwg
MHhlNSwgMHhkMiwKKyAgICAgICAgMHhmZSwgMHgxYiwgMHgwNCwgMHgwMywg
MHgyYywgMHg4ZiwgMHg0YywgMHgzNiwKKyAgICB9LAorfSwKIHsKICAgICAu
cGF0Y2hfaWQgPSAweDBhMDAxMjM4LAogICAgIC5kaWdlc3QgPSB7CkBAIC04
OSw2ICs5OCwxNSBAQAogICAgICAgICAweGMwLCAweGNkLCAweDMzLCAweGYy
LCAweDhkLCAweGY5LCAweGVmLCAweDU5LAogICAgIH0sCiB9LAoreworICAg
IC5wYXRjaF9pZCA9IDB4MGEwMDEyM2IsCisgICAgLmRpZ2VzdCA9IHsKKyAg
ICAgICAgMHhlZiwgMHhhMSwgMHgxZSwgMHg3MSwgMHhmMSwgMHhjMywgMHgy
YywgMHhlMiwKKyAgICAgICAgMHhjMywgMHhlZiwgMHg2OSwgMHg0MSwgMHg3
YSwgMHg1NCwgMHhjYSwgMHhjMywKKyAgICAgICAgMHg4ZiwgMHg2MiwgMHg4
NCwgMHhlZSwgMHhjMiwgMHgzOSwgMHhkOSwgMHgyOCwKKyAgICAgICAgMHg5
NSwgMHhhNywgMHgxMiwgMHg0OSwgMHgxZSwgMHgzMCwgMHg3MSwgMHg3MiwK
KyAgICB9LAorfSwKIHsKICAgICAucGF0Y2hfaWQgPSAweDBhMDA4MjBjLAog
ICAgIC5kaWdlc3QgPSB7CkBAIC05OCw2ICsxMTYsMTUgQEAKICAgICAgICAg
MHhlMSwgMHgzYiwgMHg4ZCwgMHhiMiwgMHhmOCwgMHgyMiwgMHgwMywgMHhl
MiwKICAgICB9LAogfSwKK3sKKyAgICAucGF0Y2hfaWQgPSAweDBhMDA4MjBk
LAorICAgIC5kaWdlc3QgPSB7CisgICAgICAgIDB4ZjksIDB4MmEsIDB4YzAs
IDB4ZjQsIDB4OWUsIDB4YTQsIDB4ODcsIDB4YTQsCisgICAgICAgIDB4N2Qs
IDB4ODcsIDB4MDAsIDB4ZmQsIDB4YWIsIDB4ZGEsIDB4MTksIDB4Y2EsCisg
ICAgICAgIDB4MjYsIDB4NTEsIDB4MzIsIDB4YzEsIDB4NTcsIDB4OTEsIDB4
ZGYsIDB4YzEsCisgICAgICAgIDB4MDUsIDB4ZWIsIDB4MDEsIDB4N2MsIDB4
NWEsIDB4OTUsIDB4MjEsIDB4YjcsCisgICAgfSwKK30sCiB7CiAgICAgLnBh
dGNoX2lkID0gMHgwYTEwMTE0OCwKICAgICAuZGlnZXN0ID0gewpAQCAtMTA3
LDYgKzEzNCwxNSBAQAogICAgICAgICAweGYxLCAweDVlLCAweGIwLCAweGRl
LCAweGI0LCAweDk4LCAweGFlLCAweGM0LAogICAgIH0sCiB9LAoreworICAg
IC5wYXRjaF9pZCA9IDB4MGExMDExNGMsCisgICAgLmRpZ2VzdCA9IHsKKyAg
ICAgICAgMHg5ZSwgMHhiNiwgMHhhMiwgMHhkOSwgMHg4NywgMHgzOCwgMHhj
NSwgMHg2NCwKKyAgICAgICAgMHhkOCwgMHg4OCwgMHhmYSwgMHg3OCwgMHg5
OCwgMHhmOSwgMHg2ZiwgMHg3NCwKKyAgICAgICAgMHgzOSwgMHg5MCwgMHgx
YiwgMHhhNSwgMHhjZiwgMHg1ZSwgMHhiNCwgMHgyYSwKKyAgICAgICAgMHgw
MiwgMHhmZiwgMHhkNCwgMHg4YywgMHg3MSwgMHg4YiwgMHhlMiwgMHhjMCwK
KyAgICB9LAorfSwKIHsKICAgICAucGF0Y2hfaWQgPSAweDBhMTAxMjQ4LAog
ICAgIC5kaWdlc3QgPSB7CkBAIC0xMTYsNiArMTUyLDE1IEBACiAgICAgICAg
IDB4MWIsIDB4N2QsIDB4NjQsIDB4OWQsIDB4NGIsIDB4NTMsIDB4MTMsIDB4
NzUsCiAgICAgfSwKIH0sCit7CisgICAgLnBhdGNoX2lkID0gMHgwYTEwMTI0
YywKKyAgICAuZGlnZXN0ID0geworICAgICAgICAweDI5LCAweGVhLCAweGYx
LCAweDJjLCAweGIyLCAweGU0LCAweGVmLCAweDkwLAorICAgICAgICAweGE0
LCAweGNkLCAweDFkLCAweDg2LCAweDk3LCAweDE3LCAweDYxLCAweDQ2LAor
ICAgICAgICAweGZjLCAweDIyLCAweGNiLCAweDU3LCAweDc1LCAweDE5LCAw
eGM4LCAweGNjLAorICAgICAgICAweDBjLCAweGY1LCAweGJjLCAweGFjLCAw
eDgxLCAweDlkLCAweDlhLCAweGQyLAorICAgIH0sCit9LAogewogICAgIC5w
YXRjaF9pZCA9IDB4MGExMDgxMDgsCiAgICAgLmRpZ2VzdCA9IHsKQEAgLTEy
NSw2ICsxNzAsMTUgQEAKICAgICAgICAgMHgyOCwgMHgxZSwgMHg5YywgMHg1
OSwgMHg2OSwgMHg5OSwgMHg0ZCwgMHgxNiwKICAgICB9LAogfSwKK3sKKyAg
ICAucGF0Y2hfaWQgPSAweDBhMTA4MTA5LAorICAgIC5kaWdlc3QgPSB7Cisg
ICAgICAgIDB4ODUsIDB4YjQsIDB4YmQsIDB4N2MsIDB4NDksIDB4YTcsIDB4
YmQsIDB4ZmEsCisgICAgICAgIDB4NDksIDB4MzYsIDB4ODAsIDB4ODEsIDB4
YzUsIDB4YjcsIDB4MzksIDB4MWIsCisgICAgICAgIDB4OWEsIDB4YWEsIDB4
NTAsIDB4ZGUsIDB4OWIsIDB4ZTksIDB4MzIsIDB4MzUsCisgICAgICAgIDB4
NDIsIDB4N2UsIDB4NTEsIDB4NGYsIDB4NTIsIDB4MmMsIDB4MjgsIDB4NTks
CisgICAgfSwKK30sCiB7CiAgICAgLnBhdGNoX2lkID0gMHgwYTIwMTAyZCwK
ICAgICAuZGlnZXN0ID0gewpAQCAtMTM0LDYgKzE4OCwxNSBAQAogICAgICAg
ICAweDhjLCAweGU5LCAweDE5LCAweDNlLCAweGNjLCAweDNmLCAweDdiLCAw
eGI0LAogICAgIH0sCiB9LAoreworICAgIC5wYXRjaF9pZCA9IDB4MGEyMDEw
MmUsCisgICAgLmRpZ2VzdCA9IHsKKyAgICAgICAgMHhiZSwgMHgxZiwgMHgz
MiwgMHgwNCwgMHgwZCwgMHgzYywgMHg5YywgMHhkZCwKKyAgICAgICAgMHhl
MSwgMHhhNCwgMHhiZiwgMHg3NiwgMHgzYSwgMHhlYywgMHhjMiwgMHhmNiwK
KyAgICAgICAgMHgxMSwgMHgwMCwgMHhhNywgMHhhZiwgMHgwZiwgMHhlNSwg
MHgwMiwgMHhjNSwKKyAgICAgICAgMHg1NCwgMHgzYSwgMHgxZiwgMHg4Yywg
MHgxNiwgMHhiNSwgMHhmZiwgMHhiZSwKKyAgICB9LAorfSwKIHsKICAgICAu
cGF0Y2hfaWQgPSAweDBhMjAxMjEwLAogICAgIC5kaWdlc3QgPSB7CkBAIC0x
NDMsNiArMjA2LDE1IEBACiAgICAgICAgIDB4ZjcsIDB4NTUsIDB4ZjAsIDB4
MTMsIDB4YmIsIDB4MjIsIDB4ZjYsIDB4NDEsCiAgICAgfSwKIH0sCit7Cisg
ICAgLnBhdGNoX2lkID0gMHgwYTIwMTIxMSwKKyAgICAuZGlnZXN0ID0gewor
ICAgICAgICAweDY5LCAweGExLCAweDE3LCAweGVjLCAweGQwLCAweGY2LCAw
eDZjLCAweDk1LAorICAgICAgICAweGUyLCAweDFlLCAweGM1LCAweDU5LCAw
eDFhLCAweDUyLCAweDBhLCAweDI3LAorICAgICAgICAweGM0LCAweGVkLCAw
eGQ1LCAweDU5LCAweDFmLCAweGJmLCAweDAwLCAweGZmLAorICAgICAgICAw
eDA4LCAweDg4LCAweGI1LCAweGUxLCAweDEyLCAweGI2LCAweGNjLCAweDI3
LAorICAgIH0sCit9LAogewogICAgIC5wYXRjaF9pZCA9IDB4MGE0MDQxMDcs
CiAgICAgLmRpZ2VzdCA9IHsKQEAgLTE1Miw2ICsyMjQsMTUgQEAKICAgICAg
ICAgMHgxMywgMHhiYywgMHhjNSwgMHgyNSwgMHhlNCwgMHhjNSwgMHhjMywg
MHg5OSwKICAgICB9LAogfSwKK3sKKyAgICAucGF0Y2hfaWQgPSAweDBhNDA0
MTA4LAorICAgIC5kaWdlc3QgPSB7CisgICAgICAgIDB4NjksIDB4NjcsIDB4
NDMsIDB4MDYsIDB4ZjgsIDB4MGMsIDB4NjIsIDB4ZGMsCisgICAgICAgIDB4
YTQsIDB4MjEsIDB4MzAsIDB4NGYsIDB4MGYsIDB4MjEsIDB4MmMsIDB4Y2Is
CisgICAgICAgIDB4Y2MsIDB4MzcsIDB4ZjEsIDB4MWMsIDB4YzMsIDB4Zjgs
IDB4MmYsIDB4MTksCisgICAgICAgIDB4ZGYsIDB4NTMsIDB4NTMsIDB4NDYs
IDB4YjEsIDB4MTUsIDB4ZWEsIDB4MDAsCisgICAgfSwKK30sCiB7CiAgICAg
LnBhdGNoX2lkID0gMHgwYTUwMDAxMSwKICAgICAuZGlnZXN0ID0gewpAQCAt
MTYxLDYgKzI0MiwxNSBAQAogICAgICAgICAweDExLCAweDVlLCAweDk2LCAw
eDdlLCAweDcxLCAweGU5LCAweGZjLCAweDc0LAogICAgIH0sCiB9LAorewor
ICAgIC5wYXRjaF9pZCA9IDB4MGE1MDAwMTIsCisgICAgLmRpZ2VzdCA9IHsK
KyAgICAgICAgMHhlYiwgMHg3NCwgMHgwZCwgMHg0NywgMHhhMSwgMHg4ZSwg
MHgwOSwgMHhlNCwKKyAgICAgICAgMHg5MywgMHg0YywgMHhhZCwgMHgwMywg
MHgzMiwgMHg0YywgMHgzOCwgMHgxNiwKKyAgICAgICAgMHgxMCwgMHgzOSwg
MHhkZCwgMHgwNiwgMHhhYSwgMHhjZSwgMHhkNiwgMHgwZiwKKyAgICAgICAg
MHg2MiwgMHg4MywgMHg5ZCwgMHg4ZSwgMHg2NCwgMHg1NSwgMHhiZSwgMHg2
MywKKyAgICB9LAorfSwKIHsKICAgICAucGF0Y2hfaWQgPSAweDBhNjAxMjA5
LAogICAgIC5kaWdlc3QgPSB7CkBAIC0xNzAsNiArMjYwLDE1IEBACiAgICAg
ICAgIDB4ZTgsIDB4NzMsIDB4ZTIsIDB4ZDYsIDB4ZGIsIDB4ZDIsIDB4Nzcs
IDB4MWQsCiAgICAgfSwKIH0sCit7CisgICAgLnBhdGNoX2lkID0gMHgwYTYw
MTIwYSwKKyAgICAuZGlnZXN0ID0geworICAgICAgICAweDBjLCAweDhiLCAw
eDNkLCAweGZkLCAweDUyLCAweDUyLCAweDg1LCAweDdkLAorICAgICAgICAw
eDIwLCAweDNhLCAweGUxLCAweDdlLCAweGE0LCAweDIxLCAweDNiLCAweDdi
LAorICAgICAgICAweDE3LCAweDg2LCAweGFlLCAweGFjLCAweDEzLCAweGI4
LCAweDYzLCAweDlkLAorICAgICAgICAweDA2LCAweDAxLCAweGQwLCAweGEw
LCAweDUxLCAweDlhLCAweDkxLCAweDJjLAorICAgIH0sCit9LAogewogICAg
IC5wYXRjaF9pZCA9IDB4MGE3MDQxMDcsCiAgICAgLmRpZ2VzdCA9IHsKQEAg
LTE3OSw2ICsyNzgsMTUgQEAKICAgICAgICAgMHg2NCwgMHgzOSwgMHg3MSwg
MHg4YywgMHhjZSwgMHhlNywgMHg0MSwgMHgzOSwKICAgICB9LAogfSwKK3sK
KyAgICAucGF0Y2hfaWQgPSAweDBhNzA0MTA4LAorICAgIC5kaWdlc3QgPSB7
CisgICAgICAgIDB4ZDcsIDB4NTUsIDB4MTUsIDB4MmIsIDB4ZmUsIDB4YzQs
IDB4YmMsIDB4OTMsCisgICAgICAgIDB4ZWMsIDB4OTEsIDB4YTAsIDB4YWUs
IDB4NDUsIDB4YjcsIDB4YzMsIDB4OTgsCisgICAgICAgIDB4NGUsIDB4ZmYs
IDB4NjEsIDB4NzcsIDB4ODgsIDB4YzIsIDB4NzAsIDB4NDksCisgICAgICAg
IDB4ZTAsIDB4M2EsIDB4MWQsIDB4ODQsIDB4MzgsIDB4NTIsIDB4YmYsIDB4
NWEsCisgICAgfSwKK30sCiB7CiAgICAgLnBhdGNoX2lkID0gMHgwYTcwNTIw
NiwKICAgICAuZGlnZXN0ID0gewpAQCAtMTg4LDYgKzI5NiwxNSBAQAogICAg
ICAgICAweDAzLCAweDM1LCAweGU5LCAweGJlLCAweGZiLCAweDA2LCAweGRm
LCAweGZjLAogICAgIH0sCiB9LAoreworICAgIC5wYXRjaF9pZCA9IDB4MGE3
MDUyMDgsCisgICAgLmRpZ2VzdCA9IHsKKyAgICAgICAgMHgzMCwgMHgxZCwg
MHg1NSwgMHgyNCwgMHhiYywgMHg2YiwgMHg1YSwgMHgxOSwKKyAgICAgICAg
MHgwYywgMHg3ZCwgMHgxZCwgMHg3NCwgMHhhYSwgMHhkMSwgMHhlYiwgMHhk
MiwKKyAgICAgICAgMHgxNiwgMHg2MiwgMHhmNywgMHg1YiwgMHhlMSwgMHgx
ZiwgMHgxOCwgMHgxMSwKKyAgICAgICAgMHg1YywgMHhmMCwgMHg5NCwgMHg5
MCwgMHgyNiwgMHhlYywgMHg2OSwgMHhmZiwKKyAgICB9LAorfSwKIHsKICAg
ICAucGF0Y2hfaWQgPSAweDBhNzA4MDA3LAogICAgIC5kaWdlc3QgPSB7CkBA
IC0xOTcsNiArMzE0LDE1IEBACiAgICAgICAgIDB4ZGYsIDB4OTIsIDB4NzMs
IDB4ODQsIDB4ODcsIDB4M2MsIDB4NzMsIDB4OTMsCiAgICAgfSwKIH0sCit7
CisgICAgLnBhdGNoX2lkID0gMHgwYTcwODAwOCwKKyAgICAuZGlnZXN0ID0g
eworICAgICAgICAweDA4LCAweDZlLCAweGYwLCAweDIyLCAweDRiLCAweDhl
LCAweGM0LCAweDQ2LAorICAgICAgICAweDU4LCAweDM0LCAweGU2LCAweDQ3
LCAweGEyLCAweDI4LCAweGZkLCAweGFiLAorICAgICAgICAweDIyLCAweDNk
LCAweGRkLCAweGQ4LCAweDUyLCAweDllLCAweDFkLCAweDE2LAorICAgICAg
ICAweGZhLCAweDAxLCAweDY4LCAweDE0LCAweDc5LCAweDNlLCAweGU4LCAw
eDZiLAorICAgIH0sCit9LAogewogICAgIC5wYXRjaF9pZCA9IDB4MGE3MGMw
MDUsCiAgICAgLmRpZ2VzdCA9IHsKQEAgLTIwNiw2ICszMzIsMTUgQEAKICAg
ICAgICAgMHhlZSwgMHg0OSwgMHhhYywgMHhlMSwgMHg4YiwgMHgxMywgMHhj
NSwgMHgxMywKICAgICB9LAogfSwKK3sKKyAgICAucGF0Y2hfaWQgPSAweDBh
NzBjMDA4LAorICAgIC5kaWdlc3QgPSB7CisgICAgICAgIDB4MGYsIDB4ZGIs
IDB4MzcsIDB4YTEsIDB4MTAsIDB4YWYsIDB4ZDQsIDB4MjEsCisgICAgICAg
IDB4OTQsIDB4MGQsIDB4YTQsIDB4YTIsIDB4ZTksIDB4ODYsIDB4NmMsIDB4
MGUsCisgICAgICAgIDB4ODUsIDB4N2MsIDB4MzYsIDB4MzAsIDB4YTMsIDB4
M2EsIDB4NzgsIDB4NjYsCisgICAgICAgIDB4MTgsIDB4MTAsIDB4NjAsIDB4
MGQsIDB4NzgsIDB4M2QsIDB4NDQsIDB4ZDAsCisgICAgfSwKK30sCiB7CiAg
ICAgLnBhdGNoX2lkID0gMHgwYWEwMDExNiwKICAgICAuZGlnZXN0ID0gewpA
QCAtMjI0LDMgKzM1OSwxMiBAQAogICAgICAgICAweDY4LCAweDJmLCAweDQ2
LCAweGVlLCAweGZlLCAweGM2LCAweDZkLCAweGVmLAogICAgIH0sCiB9LAor
eworICAgIC5wYXRjaF9pZCA9IDB4MGFhMDAyMTYsCisgICAgLmRpZ2VzdCA9
IHsKKyAgICAgICAgMHg3OSwgMHhmYiwgMHg1YiwgMHg5ZiwgMHhiNiwgMHhl
NiwgMHhhOCwgMHhmNSwKKyAgICAgICAgMHg0ZSwgMHg3YywgMHg0ZiwgMHg4
ZSwgMHgxZCwgMHhhZCwgMHhkMCwgMHgwOCwKKyAgICAgICAgMHhjMiwgMHg0
MywgMHg3YywgMHg4YiwgMHhlNiwgMHhkYiwgMHhkMCwgMHhkMiwKKyAgICAg
ICAgMHhlOCwgMHgzOSwgMHgyNiwgMHhjMSwgMHhlNSwgMHg1YSwgMHg0OCwg
MHhmMSwKKyAgICB9LAorfSwKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9j
cHUvbWljcm9jb2RlL2FtZC5jIGIveGVuL2FyY2gveDg2L2NwdS9taWNyb2Nv
ZGUvYW1kLmMKaW5kZXggNGYyMzZlNDM5OTI5Li5mMjVkNzRmY2NiYTIgMTAw
NjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvbWljcm9jb2RlL2FtZC5jCisr
KyBiL3hlbi9hcmNoL3g4Ni9jcHUvbWljcm9jb2RlL2FtZC5jCkBAIC01MjEs
MyArNTIxLDE4IEBAIHZvaWQgX19pbml0IHVjb2RlX3Byb2JlX2FtZChzdHJ1
Y3QgbWljcm9jb2RlX29wcyAqb3BzKQogCiAgICAgKm9wcyA9IGFtZF91Y29k
ZV9vcHM7CiB9CisKKyNpZiAwIC8qIE1hbnVhbCBDT05GSUdfU0VMRl9URVNU
UyAqLworc3RhdGljIHZvaWQgX19pbml0IF9fY29uc3RydWN0b3IgdGVzdF9k
aWdlc3RzX3NvcnRlZCh2b2lkKQoreworICAgIGZvciAoIHVuc2lnbmVkIGlu
dCBpID0gMTsgaSA8IEFSUkFZX1NJWkUocGF0Y2hfZGlnZXN0cyk7ICsraSAp
CisgICAgeworICAgICAgICBpZiAoIHBhdGNoX2RpZ2VzdHNbaSAtIDFdLnBh
dGNoX2lkIDwgcGF0Y2hfZGlnZXN0c1tpXS5wYXRjaF9pZCApCisgICAgICAg
ICAgICBjb250aW51ZTsKKworICAgICAgICBwYW5pYygicGF0Y2hfZGlnZXN0
c1tdIG5vdCBzb3J0ZWQ6ICUwOHggPj0gJTA4eFxuIiwKKyAgICAgICAgICAg
ICAgcGF0Y2hfZGlnZXN0c1tpIC0gMV0ucGF0Y2hfaWQsCisgICAgICAgICAg
ICAgIHBhdGNoX2RpZ2VzdHNbaV0ucGF0Y2hfaWQpOworICAgIH0KK30KKyNl
bmRpZiAvKiBDT05GSUdfU0VMRl9URVNUUyAqLwo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.19-15.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.19-15.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogV2VkLCAyIEFwciAyMDI1IDAzOjE4OjU5ICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBSZWFycmFuZ2UgVkVSVyBhbmQgTU9OSVRPUiBpbiBt
d2FpdF9pZGxlX3dpdGhfaGludHMoKQoKSW4gb3JkZXIgdG8gbWl0aWdhdGUg
VFNBLCBYZW4gd2lsbCBuZWVkIHRvIGlzc3VlIFZFUlcgYmVmb3JlIGdvaW5n
IGlkbGUuCgpPbiBBTUQgQ1BVcywgdGhlIFZFUlcgc2NydWJiaW5nIHNpZGUg
ZWZmZWN0cyBjYW5jZWwgYW4gYWN0aXZlIE1PTklUT1IsIGNhdXNpbmcKdGhl
IE1XQUlUIHRvIGV4aXQgd2l0aG91dCBlbnRlcmluZyBhbiBpZGxlIHN0YXRl
LiAgVGhlcmVmb3JlIHRoZSBWRVJXIG11c3QgYmUKYWhlYWQgb2YgTU9OSVRP
Ui4KClNwbGl0IHNwZWNfY3RybF9lbnRlcl9pZGxlKCkgaW4gdHdvIGFuZCBh
bGxvdyB0aGUgVkVSVyBhc3BlY3QgdG8gYmUgaGFuZGxlZApzZXBhcmF0ZWx5
LiAgV2hpbGUgYWRqdXN0aW5nLCB1cGRhdGUgYSBzdGFsZSBjb21tZW50IGNv
bmNlcm5pbmcgTVNCRFM7IG1vcmUKaXNzdWVzIGhhdmUgYmVlbiBtaXRpZ2F0
ZWQgdXNpbmcgVkVSVyBzaW5jZSBpdCB3YXMgd3JpdHRlbi4KCkJ5IG1vdmlu
ZyBWRVJXIGVhcmxpZXIsIGl0IGlzIGFoZWFkIG9mIHRoZSBkZXRlcm1pbmF0
aW9uIG9mIHdoZXRoZXIgdG8gZ28KaWRsZS4gIFdlIGNhbid0IG1vdmUgdGhl
IGNoZWNrIG9uIHNvZnRpcnFfcGVuZGluZyAoZm9yIGNvcnJlY3RuZXNzIHJl
YXNvbnMpLApidXQgd2UgY2FuIGR1cGxpY2F0ZSBpdCBlYXJsaWVyIGFzIGEg
YmVzdCBlZmZvcnQgYXR0ZW1wdCB0byBza2lwIHRoZQpzcGVjdWxhdGl2ZSBv
dmVyaGVhZC4KClRoaXMgaXMgcGFydCBvZiBYU0EtNDcxIC8gQ1ZFLTIwMjQt
MzYzNTAgLyBDVkUtMjAyNC0zNjM1Ny4KClNpZ25lZC1vZmYtYnk6IEFuZHJl
dyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2Vk
LWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CgpkaWZmIC0t
Z2l0IGEveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYyBiL3hlbi9hcmNo
L3g4Ni9hY3BpL2NwdV9pZGxlLmMKaW5kZXggNjk4NTdhNThlZjVhLi4xMDQ1
ZDg3ZWVkMTIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9p
ZGxlLmMKKysrIGIveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYwpAQCAt
NDYyLDkgKzQ2MiwxOCBAQCBfX2luaXRjYWxsKGNwdV9pZGxlX2tleV9pbml0
KTsKIHZvaWQgbXdhaXRfaWRsZV93aXRoX2hpbnRzKHVuc2lnbmVkIGludCBl
YXgsIHVuc2lnbmVkIGludCBlY3gpCiB7CiAgICAgdW5zaWduZWQgaW50IGNw
dSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKKyAgICBzdHJ1Y3QgY3B1X2luZm8g
KmluZm8gPSBnZXRfY3B1X2luZm8oKTsKICAgICBpcnFfY3B1c3RhdF90ICpz
dGF0ID0gJmlycV9zdGF0W2NwdV07CiAgICAgY29uc3QgdW5zaWduZWQgaW50
ICp0aGlzX3NvZnRpcnFfcGVuZGluZyA9ICZzdGF0LT5fX3NvZnRpcnFfcGVu
ZGluZzsKIAorICAgIC8qCisgICAgICogSGV1cmlzdGljOiBpZiB3ZSdyZSBk
ZWZpbml0ZWx5IG5vdCBnb2luZyB0byBpZGxlLCBiYWlsIGVhcmx5IGFzIHRo
ZQorICAgICAqIHNwZWN1bGF0aXZlIHNhZmV0eSBjYW4gYmUgZXhwZW5zaXZl
LiAgVGhpcyBpcyBhIHBlcmZvcm1hbmNlCisgICAgICogY29uc2lkZXJhdGlv
biBub3QgYSBjb3JyZWN0bmVzcyBpc3N1ZS4KKyAgICAgKi8KKyAgICBpZiAo
ICp0aGlzX3NvZnRpcnFfcGVuZGluZyApCisgICAgICAgIHJldHVybjsKKwog
ICAgIC8qCiAgICAgICogQnkgc2V0dGluZyBpbl9td2FpdCwgd2UgcHJvbWlz
ZSB0byBvdGhlciBDUFVzIHRoYXQgd2UnbGwgbm90aWNlIGNoYW5nZXMKICAg
ICAgKiB0byBfX3NvZnRpcnFfcGVuZGluZyB3aXRob3V0IGJlaW5nIHNlbnQg
YW4gSVBJLiAgV2UgYWNoaWV2ZSB0aGlzIGJ5CkBAIC00NzgsMTUgKzQ4Nywx
OSBAQCB2b2lkIG13YWl0X2lkbGVfd2l0aF9oaW50cyh1bnNpZ25lZCBpbnQg
ZWF4LCB1bnNpZ25lZCBpbnQgZWN4KQogICAgICAgICAgICAgICAgICAgICIi
LCBYODZfQlVHX01PTklUT1IsCiAgICAgICAgICAgICAgICAgICAgW2luX213
YWl0XSAiPW0iIChzdGF0LT5pbl9td2FpdCkpOwogCisgICAgLyoKKyAgICAg
KiBPbiBBTUQgc3lzdGVtcywgc2lkZSBlZmZlY3RzIGZyb20gVkVSVyBjYW5j
ZWwgTU9OSVRPUiwgY2F1c2luZyBNV0FJVCB0bworICAgICAqIHdha2UgdXAg
aW1tZWRpYXRlbHkuICBUaGVyZWZvcmUsIFZFUlcgbXVzdCBjb21lIGFoZWFk
IG9mIE1PTklUT1IuCisgICAgICovCisgICAgX19zcGVjX2N0cmxfZW50ZXJf
aWRsZV92ZXJ3KGluZm8pOworCiAgICAgbW9uaXRvcih0aGlzX3NvZnRpcnFf
cGVuZGluZywgMCwgMCk7CiAKICAgICBBU1NFUlQoIWxvY2FsX2lycV9pc19l
bmFibGVkKCkpOwogCiAgICAgaWYgKCAhKnRoaXNfc29mdGlycV9wZW5kaW5n
ICkKICAgICB7Ci0gICAgICAgIHN0cnVjdCBjcHVfaW5mbyAqaW5mbyA9IGdl
dF9jcHVfaW5mbygpOwotCi0gICAgICAgIHNwZWNfY3RybF9lbnRlcl9pZGxl
KGluZm8pOworICAgICAgICBfX3NwZWNfY3RybF9lbnRlcl9pZGxlKGluZm8s
IGZhbHNlIC8qIFZFUlcgaGFuZGxlZCBhYm92ZSAqLyk7CiAKICAgICAgICAg
aWYgKCBlY3ggJiBNV0FJVF9FQ1hfSU5URVJSVVBUX0JSRUFLICkKICAgICAg
ICAgICAgIG13YWl0KGVheCwgZWN4KTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9zcGVjX2N0cmwuaCBiL3hlbi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9zcGVjX2N0cmwuaAppbmRleCAwNzcyMjU0MTg5NTYuLjY3
MjRkMzgxMjAyOSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL3NwZWNfY3RybC5oCisrKyBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9zcGVjX2N0cmwuaApAQCAtMTE1LDggKzExNSwyMiBAQCBzdGF0aWMgaW5s
aW5lIHZvaWQgaW5pdF9zaGFkb3dfc3BlY19jdHJsX3N0YXRlKHZvaWQpCiAg
ICAgaW5mby0+dmVyd19zZWwgPSBfX0hZUEVSVklTT1JfRFMzMjsKIH0KIAor
c3RhdGljIGFsd2F5c19pbmxpbmUgdm9pZCBfX3NwZWNfY3RybF9lbnRlcl9p
ZGxlX3Zlcncoc3RydWN0IGNwdV9pbmZvICppbmZvKQoreworICAgIC8qCisg
ICAgICogRmx1c2gvc2NydWIgc3RydWN0dXJlcyB3aGljaCBhcmUgc3RhdGlj
YWxseSBwYXJ0aXRpb25lZCBiZXR3ZWVuIGFjdGl2ZQorICAgICAqIHRocmVh
ZHMuICBPdGhlcndpc2UgZGF0YSBvZiBvdXJzIChvZiB1bmtub3duIHNlbnNp
dGl2aXR5KSB3aWxsIGJlY29tZQorICAgICAqIGF2YWlsYWJsZSB0byBvdXIg
c2libGluZyB3aGVuIHdlIGdvIGlkbGUuCisgICAgICoKKyAgICAgKiBOb3Rl
OiBWRVJXIG11c3QgYmUgZW5jb2RlZCB3aXRoIGEgbWVtb3J5IG9wZXJhbmQs
IGFzIGl0IGlzIG9ubHkgdGhhdAorICAgICAqIGZvcm0gd2l0aCBzaWRlIGVm
ZmVjdHMuCisgICAgICovCisgICAgYWx0ZXJuYXRpdmVfaW5wdXQoIiIsICJ2
ZXJ3ICVbc2VsXSIsIFg4Nl9GRUFUVVJFX1NDX1ZFUldfSURMRSwKKyAgICAg
ICAgICAgICAgICAgICAgICBbc2VsXSAibSIgKGluZm8tPnZlcndfc2VsKSk7
Cit9CisKIC8qIFdBUk5JTkchIGByZXRgLCBgY2FsbCAqYCwgYGptcCAqYCBu
b3Qgc2FmZSBhZnRlciB0aGlzIGNhbGwuICovCi1zdGF0aWMgYWx3YXlzX2lu
bGluZSB2b2lkIHNwZWNfY3RybF9lbnRlcl9pZGxlKHN0cnVjdCBjcHVfaW5m
byAqaW5mbykKK3N0YXRpYyBhbHdheXNfaW5saW5lIHZvaWQgX19zcGVjX2N0
cmxfZW50ZXJfaWRsZShzdHJ1Y3QgY3B1X2luZm8gKmluZm8sIGJvb2wgdmVy
dykKIHsKICAgICB1aW50MzJfdCB2YWwgPSAwOwogCkBAIC0xMzUsMjEgKzE0
OSw4IEBAIHN0YXRpYyBhbHdheXNfaW5saW5lIHZvaWQgc3BlY19jdHJsX2Vu
dGVyX2lkbGUoc3RydWN0IGNwdV9pbmZvICppbmZvKQogICAgICAgICAgICAg
ICAgICAgICAgICJhIiAodmFsKSwgImMiIChNU1JfU1BFQ19DVFJMKSwgImQi
ICgwKSk7CiAgICAgYmFycmllcigpOwogCi0gICAgLyoKLSAgICAgKiBNaWNy
b2FyY2hpdGVjdHVyYWwgU3RvcmUgQnVmZmVyIERhdGEgU2FtcGxpbmc6Ci0g
ICAgICoKLSAgICAgKiBPbiB2dWxuZXJhYmxlIHN5c3RlbXMsIHN0b3JlIGJ1
ZmZlciBlbnRyaWVzIGFyZSBzdGF0aWNhbGx5IHBhcnRpdGlvbmVkCi0gICAg
ICogYmV0d2VlbiBhY3RpdmUgdGhyZWFkcy4gIFdoZW4gZW50ZXJpbmcgaWRs
ZSwgb3VyIHN0b3JlIGJ1ZmZlciBlbnRyaWVzCi0gICAgICogYXJlIHJlLXBh
cnRpdGlvbmVkIHRvIGFsbG93IHRoZSBvdGhlciB0aHJlYWRzIHRvIHVzZSB0
aGVtLgotICAgICAqCi0gICAgICogRmx1c2ggdGhlIGJ1ZmZlcnMgdG8gZW5z
dXJlIHRoYXQgbm8gc2Vuc2l0aXZlIGRhdGEgb2Ygb3VycyBjYW4gYmUKLSAg
ICAgKiBsZWFrZWQgYnkgYSBzaWJsaW5nIGFmdGVyIGl0IGdldHMgb3VyIHN0
b3JlIGJ1ZmZlciBlbnRyaWVzLgotICAgICAqCi0gICAgICogTm90ZTogVkVS
VyBtdXN0IGJlIGVuY29kZWQgd2l0aCBhIG1lbW9yeSBvcGVyYW5kLCBhcyBp
dCBpcyBvbmx5IHRoYXQKLSAgICAgKiBmb3JtIHdoaWNoIGNhdXNlcyBhIGZs
dXNoLgotICAgICAqLwotICAgIGFsdGVybmF0aXZlX2lucHV0KCIiLCAidmVy
dyAlW3NlbF0iLCBYODZfRkVBVFVSRV9TQ19WRVJXX0lETEUsCi0gICAgICAg
ICAgICAgICAgICAgICAgW3NlbF0gIm0iIChpbmZvLT52ZXJ3X3NlbCkpOwor
ICAgIGlmICggdmVydyApIC8qIEV4cGVjdGVkIHRvIGJlIGNvbnN0LXByb3Bh
Z2F0ZWQuICovCisgICAgICAgIF9fc3BlY19jdHJsX2VudGVyX2lkbGVfdmVy
dyhpbmZvKTsKIAogICAgIC8qCiAgICAgICogQ3Jvc3MtVGhyZWFkIFJldHVy
biBBZGRyZXNzIFByZWRpY3Rpb25zOgpAQCAtMTY3LDYgKzE2OCwxMiBAQCBz
dGF0aWMgYWx3YXlzX2lubGluZSB2b2lkIHNwZWNfY3RybF9lbnRlcl9pZGxl
KHN0cnVjdCBjcHVfaW5mbyAqaW5mbykKICAgICAgICAgICAgICAgICAgICAg
ICA6ICJyYXgiLCAicmN4Iik7CiB9CiAKKy8qIFdBUk5JTkchIGByZXRgLCBg
Y2FsbCAqYCwgYGptcCAqYCBub3Qgc2FmZSBhZnRlciB0aGlzIGNhbGwuICov
CitzdGF0aWMgYWx3YXlzX2lubGluZSB2b2lkIHNwZWNfY3RybF9lbnRlcl9p
ZGxlKHN0cnVjdCBjcHVfaW5mbyAqaW5mbykKK3sKKyAgICBfX3NwZWNfY3Ry
bF9lbnRlcl9pZGxlKGluZm8sIHRydWUgLyogVkVSVyAqLyk7Cit9CisKIC8q
IFdBUk5JTkchIGByZXRgLCBgY2FsbCAqYCwgYGptcCAqYCBub3Qgc2FmZSBi
ZWZvcmUgdGhpcyBjYWxsLiAqLwogc3RhdGljIGFsd2F5c19pbmxpbmUgdm9p
ZCBzcGVjX2N0cmxfZXhpdF9pZGxlKHN0cnVjdCBjcHVfaW5mbyAqaW5mbykK
IHsK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.19-16.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.19-16.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVGh1LCAyOSBBdWcgMjAyNCAxNzozNjoxMSArMDEwMApTdWJq
ZWN0OiB4ODYvc3BlYy1jdHJsOiBNaXRpZ2F0ZSBUcmFuc2l0aXZlIFNjaGVk
dWxlciBBdHRhY2tzCgpUU0EgYWZmZWN0cyBBTUQgRmFtMTloIENQVXMgKFpl
bjMgYW5kIDQgbWljcm9hcmNoaXRlY3R1cmVzKS4KClRocmVlIG5ldyBDUFVJ
RCBiaXRzIGhhdmUgYmVlbiBkZWZpbmVkLiAgVHdvIChUU0FfU1FfTk8gYW5k
IFRTQV9MMV9OTykKaW5kaWNhdGUgdGhhdCB0aGUgc3lzdGVtIGlzIHVuYWZm
ZWN0ZWQsIGFuZCBtdXN0IGJlIHN5bnRoZXNpc2VkIGJ5IFhlbiBvbgp1bmFm
ZmVjdGVkIHBhcnRzIHRvIGRhdGUuCgpBIHRoaXJkIG5ldyBiaXQgaW5kaWNh
dGVzIHRoYXQgVkVSVyBub3cgaGFzIGEgZmx1c2hpbmcgc2lkZSBlZmZlY3Qu
ICBYZW4KbXVzdCBzeW50aGVzaXNlIHRoaXMgYml0IG9uIGFmZmVjdGVkIHN5
c3RlbXMgYmFzZWQgb24gbWljcm9jb2RlIHZlcnNpb24uCkFzIHdpdGggb3Ro
ZXIgVkVSVy1iYXNlZCBmbHVzaGluZyBmZWF0dXJlcywgVkVSV19DTEVBUiBu
ZWVkcyBPUi1pbmcgYWNyb3NzCmEgcmVzb3VyY2UgcG9vbCwgYW5kIGd1ZXN0
cyB3aGljaCBoYXZlIHNlZW4gaXQgY2FuIHNhZmVseSBtaWdyYXRlIGluLgoK
VGhpcyBpcyBwYXJ0IG9mIFhTQS00NzEgLyBDVkUtMjAyNC0zNjM1MCAvIENW
RS0yMDI0LTM2MzU3LgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8
YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEphbiBC
ZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KCmRpZmYgLS1naXQgYS94ZW4v
YXJjaC94ODYvY3B1LXBvbGljeS5jIGIveGVuL2FyY2gveDg2L2NwdS1wb2xp
Y3kuYwppbmRleCBmNDBiMjVjOTE2ODEuLmM1OTRmMDVlYTliMiAxMDA2NDQK
LS0tIGEveGVuL2FyY2gveDg2L2NwdS1wb2xpY3kuYworKysgYi94ZW4vYXJj
aC94ODYvY3B1LXBvbGljeS5jCkBAIC00NzcsNiArNDc3LDE3IEBAIHN0YXRp
YyB2b2lkIF9faW5pdCBndWVzdF9jb21tb25fbWF4X2ZlYXR1cmVfYWRqdXN0
bWVudHModWludDMyX3QgKmZzKQogICAgICAgICBpZiAoIHRlc3RfYml0KFg4
Nl9GRUFUVVJFX1JUTSwgZnMpICkKICAgICAgICAgICAgIF9fc2V0X2JpdChY
ODZfRkVBVFVSRV9SVE1fQUxXQVlTX0FCT1JULCBmcyk7CiAgICAgICAgIGJy
ZWFrOworCisgICAgY2FzZSBYODZfVkVORE9SX0FNRDoKKyAgICAgICAgLyoK
KyAgICAgICAgICogVGhpcyBiaXQgaW5kaWNhdGVzIHRoYXQgdGhlIFZFUlcg
aW5zdHJ1Y3Rpb24gbWF5IGhhdmUgZ2FpbmVkCisgICAgICAgICAqIHNjcnVi
YmluZyBzaWRlIGVmZmVjdHMuICBXaXRoIHBvb2xpbmcsIGl0IG1lYW5zICJ5
b3UgbWlnaHQgbWlncmF0ZQorICAgICAgICAgKiBzb21ld2hlcmUgd2hlcmUg
c2NydWJiaW5nIGlzIG5lY2Vzc2FyeSIsIGFuZCBtYXkgbmVlZCBleHBvc2lu
ZyBvbgorICAgICAgICAgKiB1bmFmZmVjdGVkIGhhcmR3YXJlLiAgVGhpcyBp
cyBmaW5lLCBiZWNhdXNlIHRoZSBWRVJXIGluc3RydWN0aW9uCisgICAgICAg
ICAqIGhhcyBiZWVuIGFyb3VuZCBzaW5jZSB0aGUgMjg2LgorICAgICAgICAg
Ki8KKyAgICAgICAgX19zZXRfYml0KFg4Nl9GRUFUVVJFX1ZFUldfQ0xFQVIs
IGZzKTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgLyoKQEAgLTU1
NSw2ICs1NjYsMTcgQEAgc3RhdGljIHZvaWQgX19pbml0IGd1ZXN0X2NvbW1v
bl9kZWZhdWx0X2ZlYXR1cmVfYWRqdXN0bWVudHModWludDMyX3QgKmZzKQog
ICAgICAgICAgICAgX19zZXRfYml0KFg4Nl9GRUFUVVJFX1JUTV9BTFdBWVNf
QUJPUlQsIGZzKTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKKworICAg
IGNhc2UgWDg2X1ZFTkRPUl9BTUQ6CisgICAgICAgIC8qCisgICAgICAgICAq
IFRoaXMgYml0IGluZGljYXRlIHRoYXQgdGhlIFZFUlcgaW5zdHJ1Y3Rpb24g
bWF5IGhhdmUgZ2FpbmVkCisgICAgICAgICAqIHNjcnViYmluZyBzaWRlIGVm
ZmVjdHMuICBUaGUgbWF4IHBvbGljeSBoYXMgaXQgc2V0IGZvciBtaWdyYXRp
b24KKyAgICAgICAgICogcmVhc29ucywgc28gcmVzZXQgdGhlIGRlZmF1bHQg
cG9saWN5IGJhY2sgdG8gdGhlIGhvc3QgdmFsdWUgaW4gY2FzZQorICAgICAg
ICAgKiB3ZSdyZSB1bmFmZmVjdGVkLgorICAgICAgICAgKi8KKyAgICAgICAg
aWYgKCAhY3B1X2hhc192ZXJ3X2NsZWFyICkKKyAgICAgICAgICAgIF9fY2xl
YXJfYml0KFg4Nl9GRUFUVVJFX1ZFUldfQ0xFQVIsIGZzKTsKKyAgICAgICAg
YnJlYWs7CiAgICAgfQogCiAgICAgLyoKZGlmZiAtLWdpdCBhL3hlbi9hcmNo
L3g4Ni9odm0vc3ZtL2VudHJ5LlMgYi94ZW4vYXJjaC94ODYvaHZtL3N2bS9l
bnRyeS5TCmluZGV4IDkxZWRiMzM0NTkzOC4uNjEwYzY0YmY0Yzk3IDEwMDY0
NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3N2bS9lbnRyeS5TCisrKyBiL3hl
bi9hcmNoL3g4Ni9odm0vc3ZtL2VudHJ5LlMKQEAgLTk5LDYgKzk5LDggQEAg
X19VTkxJS0VMWV9FTkQobnN2bV9oYXApCiAgICAgICAgIHBvcCAgJXJzaQog
ICAgICAgICBwb3AgICVyZGkKIAorICAgICAgICBTUEVDX0NUUkxfQ09ORF9W
RVJXICAgICAvKiBSZXE6ICVyc3A9ZWZyYW1lICAgICAgICAgICAgICAgICAg
ICBDbG9iOiBlZmwgKi8KKwogICAgICAgICB2bXJ1bgogCiAgICAgICAgIFNB
VkVfQUxMCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20v
Y3B1ZmVhdHVyZS5oIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZl
YXR1cmUuaAppbmRleCA1ZTEwOTBhNTQ3MGIuLmFkNTBlNTM1NmE0OSAxMDA2
NDQKLS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmUu
aAorKysgYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vY3B1ZmVhdHVyZS5o
CkBAIC0xOTYsNiArMTk2LDcgQEAgc3RhdGljIGlubGluZSBib29sIGJvb3Rf
Y3B1X2hhcyh1bnNpZ25lZCBpbnQgZmVhdCkKIAogLyogQ1BVSUQgbGV2ZWwg
MHg4MDAwMDAyMS5lYXggKi8KICNkZWZpbmUgY3B1X2hhc19sZmVuY2VfZGlz
cGF0Y2ggYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0xGRU5DRV9ESVNQQVRD
SCkKKyNkZWZpbmUgY3B1X2hhc192ZXJ3X2NsZWFyICAgICAgYm9vdF9jcHVf
aGFzKFg4Nl9GRUFUVVJFX1ZFUldfQ0xFQVIpCiAjZGVmaW5lIGNwdV9oYXNf
bnNjYiAgICAgICAgICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9OU0NC
KQogCiAvKiBDUFVJRCBsZXZlbCAweDAwMDAwMDA3OjEuZWR4ICovCkBAIC0y
MjMsNiArMjI0LDEwIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBib290X2NwdV9o
YXModW5zaWduZWQgaW50IGZlYXQpCiAjZGVmaW5lIGNwdV9oYXNfcGJfb3B0
X2N0cmwgICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9QQl9PUFRfQ1RS
TCkKICNkZWZpbmUgY3B1X2hhc19pdHNfbm8gICAgICAgICAgYm9vdF9jcHVf
aGFzKFg4Nl9GRUFUVVJFX0lUU19OTykKIAorLyogQ1BVSUQgbGV2ZWwgMHg4
MDAwMDAyMS5lY3ggKi8KKyNkZWZpbmUgY3B1X2hhc190c2Ffc3Ffbm8gICAg
ICAgYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX1RTQV9TUV9OTykKKyNkZWZp
bmUgY3B1X2hhc190c2FfbDFfbm8gICAgICAgYm9vdF9jcHVfaGFzKFg4Nl9G
RUFUVVJFX1RTQV9MMV9OTykKKwogLyogU3ludGhlc2l6ZWQuICovCiAjZGVm
aW5lIGNwdV9oYXNfYXJjaF9wZXJmbW9uICAgIGJvb3RfY3B1X2hhcyhYODZf
RkVBVFVSRV9BUkNIX1BFUkZNT04pCiAjZGVmaW5lIGNwdV9oYXNfY3B1aWRf
ZmF1bHRpbmcgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9DUFVJRF9GQVVM
VElORykKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9zcGVjX2N0cmwuYyBi
L3hlbi9hcmNoL3g4Ni9zcGVjX2N0cmwuYwppbmRleCBmYTQ0NGNhYWJiMDku
LmVmMTk4YzIyMTEzOSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3NwZWNf
Y3RybC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9zcGVjX2N0cmwuYwpAQCAtNDky
LDcgKzQ5Miw3IEBAIGN1c3RvbV9wYXJhbSgicHYtbDF0ZiIsIHBhcnNlX3B2
X2wxdGYpOwogCiBzdGF0aWMgdm9pZCBfX2luaXQgcHJpbnRfZGV0YWlscyhl
bnVtIGluZF90aHVuayB0aHVuaykKIHsKLSAgICB1bnNpZ25lZCBpbnQgXzdk
MCA9IDAsIF83ZDIgPSAwLCBlOGIgPSAwLCBlMjFhID0gMCwgbWF4ID0gMCwg
dG1wOworICAgIHVuc2lnbmVkIGludCBfN2QwID0gMCwgXzdkMiA9IDAsIGU4
YiA9IDAsIGUyMWEgPSAwLCBlMjFjID0gMCwgbWF4ID0gMCwgdG1wOwogICAg
IHVpbnQ2NF90IGNhcHMgPSAwOwogCiAgICAgLyogQ29sbGVjdCBkaWFnbm9z
dGljcyBhYm91dCBhdmFpbGFibGUgbWl0aWdhdGlvbnMuICovCkBAIC01MDMs
NyArNTAzLDcgQEAgc3RhdGljIHZvaWQgX19pbml0IHByaW50X2RldGFpbHMo
ZW51bSBpbmRfdGh1bmsgdGh1bmspCiAgICAgaWYgKCBib290X2NwdV9kYXRh
LmV4dGVuZGVkX2NwdWlkX2xldmVsID49IDB4ODAwMDAwMDhVICkKICAgICAg
ICAgY3B1aWQoMHg4MDAwMDAwOFUsICZ0bXAsICZlOGIsICZ0bXAsICZ0bXAp
OwogICAgIGlmICggYm9vdF9jcHVfZGF0YS5leHRlbmRlZF9jcHVpZF9sZXZl
bCA+PSAweDgwMDAwMDIxVSApCi0gICAgICAgIGNwdWlkKDB4ODAwMDAwMjFV
LCAmZTIxYSwgJnRtcCwgJnRtcCwgJnRtcCk7CisgICAgICAgIGNwdWlkKDB4
ODAwMDAwMjFVLCAmZTIxYSwgJnRtcCwgJmUyMWMsICZ0bXApOwogICAgIGlm
ICggY3B1X2hhc19hcmNoX2NhcHMgKQogICAgICAgICByZG1zcmwoTVNSX0FS
Q0hfQ0FQQUJJTElUSUVTLCBjYXBzKTsKIApAQCAtNTEzLDcgKzUxMyw3IEBA
IHN0YXRpYyB2b2lkIF9faW5pdCBwcmludF9kZXRhaWxzKGVudW0gaW5kX3Ro
dW5rIHRodW5rKQogICAgICAqIEhhcmR3YXJlIHJlYWQtb25seSBpbmZvcm1h
dGlvbiwgc3RhdGluZyBpbW11bml0eSB0byBjZXJ0YWluIGlzc3Vlcywgb3IK
ICAgICAgKiBzdWdnZXN0aW9ucyBvZiB3aGljaCBtaXRpZ2F0aW9uIHRvIHVz
ZS4KICAgICAgKi8KLSAgICBwcmludGsoIiAgSGFyZHdhcmUgaGludHM6JXMl
cyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVz
XG4iLAorICAgIHByaW50aygiICBIYXJkd2FyZSBoaW50czolcyVzJXMlcyVz
JXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzXG4i
LAogICAgICAgICAgICAoY2FwcyAmIEFSQ0hfQ0FQU19SRENMX05PKSAgICAg
ICAgICAgICAgICAgICAgICAgID8gIiBSRENMX05PIiAgICAgICAgOiAiIiwK
ICAgICAgICAgICAgKGNhcHMgJiBBUkNIX0NBUFNfRUlCUlMpICAgICAgICAg
ICAgICAgICAgICAgICAgICA/ICIgRUlCUlMiICAgICAgICAgIDogIiIsCiAg
ICAgICAgICAgIChjYXBzICYgQVJDSF9DQVBTX1JTQkEpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPyAiIFJTQkEiICAgICAgICAgICA6ICIiLApAQCAt
NTM4LDEwICs1MzgsMTIgQEAgc3RhdGljIHZvaWQgX19pbml0IHByaW50X2Rl
dGFpbHMoZW51bSBpbmRfdGh1bmsgdGh1bmspCiAgICAgICAgICAgIChlOGIg
ICYgY3B1ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX0lCUEJfUkVUKSkgICAgICAg
PyAiIElCUEJfUkVUIiAgICAgICA6ICIiLAogICAgICAgICAgICAoZTIxYSAm
IGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9JQlBCX0JSVFlQRSkpICAgID8g
IiBJQlBCX0JSVFlQRSIgICAgOiAiIiwKICAgICAgICAgICAgKGUyMWEgJiBj
cHVmZWF0X21hc2soWDg2X0ZFQVRVUkVfU1JTT19OTykpICAgICAgICA/ICIg
U1JTT19OTyIgICAgICAgIDogIiIsCi0gICAgICAgICAgIChlMjFhICYgY3B1
ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX1NSU09fVVNfTk8pKSAgICAgPyAiIFNS
U09fVVNfTk8iICAgICA6ICIiKTsKKyAgICAgICAgICAgKGUyMWEgJiBjcHVm
ZWF0X21hc2soWDg2X0ZFQVRVUkVfU1JTT19VU19OTykpICAgICA/ICIgU1JT
T19VU19OTyIgICAgIDogIiIsCisgICAgICAgICAgIChlMjFjICYgY3B1ZmVh
dF9tYXNrKFg4Nl9GRUFUVVJFX1RTQV9TUV9OTykpICAgICAgPyAiIFRTQV9T
UV9OTyIgICAgICA6ICIiLAorICAgICAgICAgICAoZTIxYyAmIGNwdWZlYXRf
bWFzayhYODZfRkVBVFVSRV9UU0FfTDFfTk8pKSAgICAgID8gIiBUU0FfTDFf
Tk8iICAgICAgOiAiIik7CiAKICAgICAvKiBIYXJkd2FyZSBmZWF0dXJlcyB3
aGljaCBuZWVkIGRyaXZpbmcgdG8gbWl0aWdhdGUgaXNzdWVzLiAqLwotICAg
IHByaW50aygiICBIYXJkd2FyZSBmZWF0dXJlczolcyVzJXMlcyVzJXMlcyVz
JXMlcyVzJXMlcyVzJXNcbiIsCisgICAgcHJpbnRrKCIgIEhhcmR3YXJlIGZl
YXR1cmVzOiVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzXG4iLAog
ICAgICAgICAgICAoZThiICAmIGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9J
QlBCKSkgfHwKICAgICAgICAgICAgKF83ZDAgJiBjcHVmZWF0X21hc2soWDg2
X0ZFQVRVUkVfSUJSU0IpKSAgICAgICAgICA/ICIgSUJQQiIgICAgICAgICAg
IDogIiIsCiAgICAgICAgICAgIChlOGIgICYgY3B1ZmVhdF9tYXNrKFg4Nl9G
RUFUVVJFX0lCUlMpKSB8fApAQCAtNTYxLDcgKzU2Myw4IEBAIHN0YXRpYyB2
b2lkIF9faW5pdCBwcmludF9kZXRhaWxzKGVudW0gaW5kX3RodW5rIHRodW5r
KQogICAgICAgICAgICAoY2FwcyAmIEFSQ0hfQ0FQU19HRFNfQ1RSTCkgICAg
ICAgICAgICAgICAgICAgICAgID8gIiBHRFNfQ1RSTCIgICAgICAgOiAiIiwK
ICAgICAgICAgICAgKGNhcHMgJiBBUkNIX0NBUFNfUkZEU19DTEVBUikgICAg
ICAgICAgICAgICAgICAgICA/ICIgUkZEU19DTEVBUiIgICAgIDogIiIsCiAg
ICAgICAgICAgIChlMjFhICYgY3B1ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX1NC
UEIpKSAgICAgICAgICAgPyAiIFNCUEIiICAgICAgICAgICA6ICIiLAotICAg
ICAgICAgICAoZTIxYSAmIGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9TUlNP
X01TUl9GSVgpKSAgID8gIiBTUlNPX01TUl9GSVgiICAgOiAiIik7CisgICAg
ICAgICAgIChlMjFhICYgY3B1ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX1NSU09f
TVNSX0ZJWCkpICAgPyAiIFNSU09fTVNSX0ZJWCIgICA6ICIiLAorICAgICAg
ICAgICAoZTIxYSAmIGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9WRVJXX0NM
RUFSKSkgICAgID8gIiBWRVJXX0NMRUFSIiAgICAgOiAiIik7CiAKICAgICAv
KiBDb21waWxlZC1pbiBzdXBwb3J0IHdoaWNoIHBlcnRhaW5zIHRvIG1pdGln
YXRpb25zLiAqLwogICAgIGlmICggSVNfRU5BQkxFRChDT05GSUdfSU5ESVJF
Q1RfVEhVTkspIHx8IElTX0VOQUJMRUQoQ09ORklHX1NIQURPV19QQUdJTkcp
IHx8CkBAIC0xNTQ1LDYgKzE1NDgsNzcgQEAgc3RhdGljIHZvaWQgX19pbml0
IHJmZHNfY2FsY3VsYXRpb25zKHZvaWQpCiAgICAgc2V0dXBfZm9yY2VfY3B1
X2NhcChYODZfRkVBVFVSRV9SRkRTX05PKTsKIH0KIAorLyoKKyAqIFRyYW5z
aWVudCBTY2hlZHVsZXIgQXR0YWNrcworICoKKyAqIGh0dHBzOi8vd3d3LmFt
ZC5jb20vY29udGVudC9kYW0vYW1kL2VuL2RvY3VtZW50cy9yZXNvdXJjZXMv
YnVsbGV0aW4vdGVjaG5pY2FsLWd1aWRhbmNlLWZvci1taXRpZ2F0aW5nLXRy
YW5zaWVudC1zY2hlZHVsZXItYXR0YWNrcy5wZGYKKyAqLworc3RhdGljIHZv
aWQgX19pbml0IHRzYV9jYWxjdWxhdGlvbnModm9pZCkKK3sKKyAgICB1bnNp
Z25lZCBpbnQgY3Vycl9yZXYsIG1pbl9yZXY7CisKKyAgICAvKiBUU0EgaXMg
b25seSBrbm93biB0byBhZmZlY3QgQU1EIHByb2Nlc3NvcnMgYXQgdGhpcyB0
aW1lLiAqLworICAgIGlmICggYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yICE9
IFg4Nl9WRU5ET1JfQU1EICkKKyAgICAgICAgcmV0dXJuOworCisgICAgLyog
SWYgd2UncmUgdmlydHVhbGlzZWQsIGRvbid0IGF0dGVtcHQgdG8gc3ludGhl
c2lzZSBhbnl0aGluZy4gKi8KKyAgICBpZiAoIGNwdV9oYXNfaHlwZXJ2aXNv
ciApCisgICAgICAgIHJldHVybjsKKworICAgIC8qCisgICAgICogQWNjb3Jk
aW5nIHRvIHRoZSB3aGl0ZXBhcGVyLCBzb21lIEZhbTFBIENQVXMgKE1vZGVs
cyAweDAwLi4uMHg0ZiwKKyAgICAgKiAweDYwLi4uMHg3ZikgYXJlIG5vdCB2
dWxuZXJhYmxlIGJ1dCBkb24ndCBlbnVtZXJhdGUgVFNBX3tTUSxMMX1fTk8u
ICBJZgorICAgICAqIHdlIHNlZSBlaXRoZXIgZW51bWVyYXRlZCwgYXNzdW1l
IGJvdGggYXJlIGNvcnJlY3QgLi4uCisgICAgICovCisgICAgaWYgKCBjcHVf
aGFzX3RzYV9zcV9ubyB8fCBjcHVfaGFzX3RzYV9sMV9ubyApCisgICAgICAg
IHJldHVybjsKKworICAgIC8qCisgICAgICogLi4uIG90aGVyd2lzZSwgc3lu
dGhlc2lzZSB0aGVtLiAgQ1BVcyBvdGhlciB0aGFuIEZhbTE5IChaZW4zLzQp
IGFyZQorICAgICAqIHN0YXRlZCB0byBiZSBub3QgdnVsbmVyYWJsZS4KKyAg
ICAgKi8KKyAgICBpZiAoIGJvb3RfY3B1X2RhdGEueDg2ICE9IDB4MTkgKQor
ICAgIHsKKyAgICAgICAgc2V0dXBfZm9yY2VfY3B1X2NhcChYODZfRkVBVFVS
RV9UU0FfU1FfTk8pOworICAgICAgICBzZXR1cF9mb3JjZV9jcHVfY2FwKFg4
Nl9GRUFUVVJFX1RTQV9MMV9OTyk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICAvKgorICAgICAqIEZhbTE5IENQVXMgZ2V0IFZFUldfQ0xFQVIg
d2l0aCBuZXcgZW5vdWdoIG1pY3JvY29kZSwgYnV0IG11c3QKKyAgICAgKiBz
eW50aGVzaXNlIHRoZSBDUFVJRCBiaXQuCisgICAgICovCisgICAgY3Vycl9y
ZXYgPSB0aGlzX2NwdShjcHVfc2lnKS5yZXY7CisgICAgc3dpdGNoICggY3Vy
cl9yZXYgPj4gOCApCisgICAgeworICAgIGNhc2UgMHgwYTAwMTE6IG1pbl9y
ZXYgPSAweDBhMDAxMWQ3OyBicmVhazsKKyAgICBjYXNlIDB4MGEwMDEyOiBt
aW5fcmV2ID0gMHgwYTAwMTIzYjsgYnJlYWs7CisgICAgY2FzZSAweDBhMDA4
MjogbWluX3JldiA9IDB4MGEwMDgyMGQ7IGJyZWFrOworICAgIGNhc2UgMHgw
YTEwMTE6IG1pbl9yZXYgPSAweDBhMTAxMTRjOyBicmVhazsKKyAgICBjYXNl
IDB4MGExMDEyOiBtaW5fcmV2ID0gMHgwYTEwMTI0YzsgYnJlYWs7CisgICAg
Y2FzZSAweDBhMTA4MTogbWluX3JldiA9IDB4MGExMDgxMDk7IGJyZWFrOwor
ICAgIGNhc2UgMHgwYTIwMTA6IG1pbl9yZXYgPSAweDBhMjAxMDJlOyBicmVh
azsKKyAgICBjYXNlIDB4MGEyMDEyOiBtaW5fcmV2ID0gMHgwYTIwMTIxMTsg
YnJlYWs7CisgICAgY2FzZSAweDBhNDA0MTogbWluX3JldiA9IDB4MGE0MDQx
MDg7IGJyZWFrOworICAgIGNhc2UgMHgwYTUwMDA6IG1pbl9yZXYgPSAweDBh
NTAwMDEyOyBicmVhazsKKyAgICBjYXNlIDB4MGE2MDEyOiBtaW5fcmV2ID0g
MHgwYTYwMTIwYTsgYnJlYWs7CisgICAgY2FzZSAweDBhNzA0MTogbWluX3Jl
diA9IDB4MGE3MDQxMDg7IGJyZWFrOworICAgIGNhc2UgMHgwYTcwNTI6IG1p
bl9yZXYgPSAweDBhNzA1MjA4OyBicmVhazsKKyAgICBjYXNlIDB4MGE3MDgw
OiBtaW5fcmV2ID0gMHgwYTcwODAwODsgYnJlYWs7CisgICAgY2FzZSAweDBh
NzBjMDogbWluX3JldiA9IDB4MGE3MGMwMDg7IGJyZWFrOworICAgIGNhc2Ug
MHgwYWEwMDI6IG1pbl9yZXYgPSAweDBhYTAwMjE2OyBicmVhazsKKyAgICBk
ZWZhdWx0OgorICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5JTkcKKyAgICAg
ICAgICAgICAgICJVbnJlY29nbmlzZWQgQ1BVICUwMngtJTAyeC0lMDJ4LCB1
Y29kZSAweCUwOHggZm9yIFRTQSBtaXRpZ2F0aW9uXG4iLAorICAgICAgICAg
ICAgICAgYm9vdF9jcHVfZGF0YS54ODYsIGJvb3RfY3B1X2RhdGEueDg2X21v
ZGVsLAorICAgICAgICAgICAgICAgYm9vdF9jcHVfZGF0YS54ODZfbWFzaywg
Y3Vycl9yZXYpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYg
KCBjdXJyX3JldiA+PSBtaW5fcmV2ICkKKyAgICAgICAgc2V0dXBfZm9yY2Vf
Y3B1X2NhcChYODZfRkVBVFVSRV9WRVJXX0NMRUFSKTsKK30KKwogc3RhdGlj
IGJvb2wgX19pbml0IGNwdV9oYXNfZ2RzKHZvaWQpCiB7CiAgICAgLyoKQEAg
LTIyMzgsNiArMjMxMiw3IEBAIHZvaWQgX19pbml0IGluaXRfc3BlY3VsYXRp
b25fbWl0aWdhdGlvbnModm9pZCkKICAgICAgKiBodHRwczovL3d3dy5pbnRl
bC5jb20vY29udGVudC93d3cvdXMvZW4vZGV2ZWxvcGVyL2FydGljbGVzL3Rl
Y2huaWNhbC9zb2Z0d2FyZS1zZWN1cml0eS1ndWlkYW5jZS90ZWNobmljYWwt
ZG9jdW1lbnRhdGlvbi9pbnRlbC1hbmFseXNpcy1taWNyb2FyY2hpdGVjdHVy
YWwtZGF0YS1zYW1wbGluZy5odG1sCiAgICAgICogaHR0cHM6Ly93d3cuaW50
ZWwuY29tL2NvbnRlbnQvd3d3L3VzL2VuL2RldmVsb3Blci9hcnRpY2xlcy90
ZWNobmljYWwvc29mdHdhcmUtc2VjdXJpdHktZ3VpZGFuY2UvdGVjaG5pY2Fs
LWRvY3VtZW50YXRpb24vcHJvY2Vzc29yLW1taW8tc3RhbGUtZGF0YS12dWxu
ZXJhYmlsaXRpZXMuaHRtbAogICAgICAqIGh0dHBzOi8vd3d3LmludGVsLmNv
bS9jb250ZW50L3d3dy91cy9lbi9kZXZlbG9wZXIvYXJ0aWNsZXMvdGVjaG5p
Y2FsL3NvZnR3YXJlLXNlY3VyaXR5LWd1aWRhbmNlL2Fkdmlzb3J5LWd1aWRh
bmNlL3JlZ2lzdGVyLWZpbGUtZGF0YS1zYW1wbGluZy5odG1sCisgICAgICog
aHR0cHM6Ly93d3cuYW1kLmNvbS9jb250ZW50L2RhbS9hbWQvZW4vZG9jdW1l
bnRzL3Jlc291cmNlcy9idWxsZXRpbi90ZWNobmljYWwtZ3VpZGFuY2UtZm9y
LW1pdGlnYXRpbmctdHJhbnNpZW50LXNjaGVkdWxlci1hdHRhY2tzLnBkZgog
ICAgICAqCiAgICAgICogUmVsZXZhbnQgdWNvZGVzOgogICAgICAqCkBAIC0y
MjcwLDkgKzIzNDUsMTggQEAgdm9pZCBfX2luaXQgaW5pdF9zcGVjdWxhdGlv
bl9taXRpZ2F0aW9ucyh2b2lkKQogICAgICAqCiAgICAgICogLSBNYXJjaCAy
MDIzLCBmb3IgUkZEUy4gIEVudW1lcmF0ZSBSRkRTX0NMRUFSIHRvIG1lYW4g
dGhhdCBWRVJXIG5vdwogICAgICAqICAgc2NydWJzIG5vbi1hcmNoaXRlY3R1
cmFsIGVudHJpZXMgZnJvbSBjZXJ0YWluIHJlZ2lzdGVyIGZpbGVzLgorICAg
ICAqCisgICAgICogLSBKdWx5IDIwMjUsIGZvciBUU0EuICBJbnRyb2R1Y2Vz
IFZFUlcgc2lkZSBlZmZlY3RzIHRvIG1pdGlnYXRlCisgICAgICogICBUU0Ff
e1NRL0wxfS4gIFhlbiBtdXN0IHN5bnRoZXNpc2UgdGhlIFZFUldfQ0xFQVIg
ZmVhdHVyZSBiYXNlZCBvbgorICAgICAqICAgbWljcm9jb2RlIHZlcnNpb24u
CisgICAgICoKKyAgICAgKiAgIE5vdGUsIHRoZXNlIG1pY3JvY29kZSB1cGRh
dGVzIHdlcmUgcHJvZHVjZWQgYmVmb3JlIHRoZSByZW1lZGlhdGlvbiBvZgor
ICAgICAqICAgdGhlIG1pY3JvY29kZSBzaWduYXR1cmUgaXNzdWVzLCBhbmQg
YXJlIGluY2x1ZGVkIGluIHRoZSBmaXJ3bWFyZQorICAgICAqICAgdXBkYXRl
cyBmaXhpbmcgdGhlIGVudHJ5c2lnbiB2dWxuZXJhYmlsaXR5IGZyb20gfkRl
Y2VtYmVyIDIwMjQuCiAgICAgICovCiAgICAgbWRzX2NhbGN1bGF0aW9ucygp
OwogICAgIHJmZHNfY2FsY3VsYXRpb25zKCk7CisgICAgdHNhX2NhbGN1bGF0
aW9ucygpOwogCiAgICAgLyoKICAgICAgKiBQYXJ0cyB3aGljaCBlbnVtZXJh
dGUgRkJfQ0xFQVIgYXJlIHRob3NlIHdpdGggbm93LXVwZGF0ZWQgbWljcm9j
b2RlCkBAIC0yMzA0LDIxICsyMzg4LDI3IEBAIHZvaWQgX19pbml0IGluaXRf
c3BlY3VsYXRpb25fbWl0aWdhdGlvbnModm9pZCkKICAgICAgKiBNTFBEUy9N
RkJEUyB3aGVuIFNNVCBpcyBlbmFibGVkLgogICAgICAqLwogICAgIGlmICgg
b3B0X3ZlcndfcHYgPT0gLTEgKQotICAgICAgICBvcHRfdmVyd19wdiA9IGNw
dV9oYXNfdXNlZnVsX21kX2NsZWFyIHx8IGNwdV9oYXNfcmZkc19jbGVhcjsK
KyAgICAgICAgb3B0X3ZlcndfcHYgPSAoY3B1X2hhc191c2VmdWxfbWRfY2xl
YXIgfHwgY3B1X2hhc19yZmRzX2NsZWFyIHx8CisgICAgICAgICAgICAgICAg
ICAgICAgIGNwdV9oYXNfdmVyd19jbGVhcik7CiAKICAgICBpZiAoIG9wdF92
ZXJ3X2h2bSA9PSAtMSApCi0gICAgICAgIG9wdF92ZXJ3X2h2bSA9IGNwdV9o
YXNfdXNlZnVsX21kX2NsZWFyIHx8IGNwdV9oYXNfcmZkc19jbGVhcjsKKyAg
ICAgICAgb3B0X3ZlcndfaHZtID0gKGNwdV9oYXNfdXNlZnVsX21kX2NsZWFy
IHx8IGNwdV9oYXNfcmZkc19jbGVhciB8fAorICAgICAgICAgICAgICAgICAg
ICAgICAgY3B1X2hhc192ZXJ3X2NsZWFyKTsKIAogICAgIC8qCi0gICAgICog
SWYgU01UIGlzIGFjdGl2ZSwgYW5kIHdlJ3JlIHByb3RlY3RpbmcgYWdhaW5z
dCBNRFMgb3IgTU1JTyBzdGFsZSBkYXRhLAorICAgICAqIElmIFNNVCBpcyBh
Y3RpdmUsIGFuZCB3ZSdyZSBwcm90ZWN0aW5nIGFnYWluc3QgYW55IG9mOgor
ICAgICAqICAgLSBNU0JEUworICAgICAqICAgLSBNTUlPIHN0YWxlIGRhdGEK
KyAgICAgKiAgIC0gVFNBLVNRCiAgICAgICogd2UgbmVlZCB0byBzY3J1YiBi
ZWZvcmUgZ29pbmcgaWRsZSBhcyB3ZWxsIGFzIG9uIHJldHVybiB0byBndWVz
dC4KICAgICAgKiBWYXJpb3VzIHBpcGVsaW5lIHJlc291cmNlcyBhcmUgcmVw
YXJ0aXRpb25lZCBhbW9uZ3N0IG5vbi1pZGxlIHRocmVhZHMuCiAgICAgICoK
LSAgICAgKiBXZSBkb24ndCBuZWVkIHRvIHNjcnViIG9uIGlkbGUgZm9yIFJG
RFMuICBUaGVyZSBhcmUgbm8gYWZmZWN0ZWQgY29yZXMKLSAgICAgKiB3aGlj
aCBzdXBwb3J0IFNNVCwgZGVzcGl0ZSB0aGVyZSBiZWluZyBhZmZlY3RlZCBj
b3JlcyBpbiBoeWJyaWQgc3lzdGVtcwotICAgICAqIHdoaWNoIGhhdmUgU01U
IGVsc2V3aGVyZSBpbiB0aGUgcGxhdGZvcm0uCisgICAgICogV2UgZG9uJ3Qg
bmVlZCB0byBzY3J1YiBvbiBpZGxlIGZvcjoKKyAgICAgKiAgIC0gUkZEUyAo
bm8gU01UIGFmZmVjdGVkIGNvcmVzKQorICAgICAqICAgLSBUU0EtTDEgKHV0
YWdzIG5ldmVyIHNoYXJlZCBiZXR3ZWVuIHRocmVhZHMpCiAgICAgICovCiAg
ICAgaWYgKCAoKGNwdV9oYXNfdXNlZnVsX21kX2NsZWFyICYmIChvcHRfdmVy
d19wdiB8fCBvcHRfdmVyd19odm0pKSB8fAorICAgICAgICAgIChjcHVfaGFz
X3ZlcndfY2xlYXIgJiYgIWNwdV9oYXNfdHNhX3NxX25vKSB8fAogICAgICAg
ICAgIG9wdF92ZXJ3X21taW8pICYmIGh3X3NtdF9lbmFibGVkICkKICAgICAg
ICAgc2V0dXBfZm9yY2VfY3B1X2NhcChYODZfRkVBVFVSRV9TQ19WRVJXX0lE
TEUpOwogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC14
ODYvY3B1ZmVhdHVyZXNldC5oIGIveGVuL2luY2x1ZGUvcHVibGljL2FyY2gt
eDg2L2NwdWZlYXR1cmVzZXQuaAppbmRleCAwM2FjZDQ5Mzg3YWEuLjRlYTZk
OTVjN2FjNiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2FyY2gt
eDg2L2NwdWZlYXR1cmVzZXQuaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMv
YXJjaC14ODYvY3B1ZmVhdHVyZXNldC5oCkBAIC0zMDIsNiArMzAyLDcgQEAg
WEVOX0NQVUZFQVRVUkUoQVZYX0lGTUEsICAgICAxMCozMisyMykgLypBICBB
VlgtSUZNQSBJbnN0cnVjdGlvbnMgKi8KIFhFTl9DUFVGRUFUVVJFKE5PX05F
U1RfQlAsICAgICAgICAgMTEqMzIrIDApIC8qQSAgTm8gTmVzdGVkIERhdGEg
QnJlYWtwb2ludHMgKi8KIFhFTl9DUFVGRUFUVVJFKEZTX0dTX05TLCAgICAg
ICAgICAgMTEqMzIrIDEpIC8qU3wgRlMvR1MgYmFzZSBNU1JzIG5vbi1zZXJp
YWxpc2luZyAqLwogWEVOX0NQVUZFQVRVUkUoTEZFTkNFX0RJU1BBVENILCAg
ICAxMSozMisgMikgLypBICBMRkVOQ0UgYWx3YXlzIHNlcmlhbGl6aW5nICov
CitYRU5fQ1BVRkVBVFVSRShWRVJXX0NMRUFSLCAgICAgICAgIDExKjMyKyA1
KSAvKiFBfCBWRVJXIGNsZWFycyBtaWNyb2FyY2hpdGVjdHVyYWwgYnVmZmVy
cyAqLwogWEVOX0NQVUZFQVRVUkUoTlNDQiwgICAgICAgICAgICAgICAxMSoz
MisgNikgLypBICBOdWxsIFNlbGVjdG9yIENsZWFycyBCYXNlIChhbmQgbGlt
aXQgdG9vKSAqLwogWEVOX0NQVUZFQVRVUkUoQVVUT19JQlJTLCAgICAgICAg
ICAxMSozMisgOCkgLypTICBBdXRvbWF0aWMgSUJSUyAqLwogWEVOX0NQVUZF
QVRVUkUoQU1EX0ZTUlMsICAgICAgICAgICAxMSozMisxMCkgLypBICBGYXN0
IFNob3J0IFJFUCBTVE9TQiAqLwpAQCAtMzcwLDYgKzM3MSw4IEBAIFhFTl9D
UFVGRUFUVVJFKFBCX09QVF9DVFJMLCAgICAgICAgMTYqMzIrMzIpIC8qICAg
TVNSX1BCX09QVF9DVFJMLklCUEJfQUxUICovCiBYRU5fQ1BVRkVBVFVSRShJ
VFNfTk8sICAgICAgICAgICAgIDE2KjMyKzYyKSAvKiFBIE5vIEluZGlyZWN0
IFRhcmdldCBTZWxlY3Rpb24gKi8KIAogLyogQU1ELWRlZmluZWQgQ1BVIGZl
YXR1cmVzLCBDUFVJRCBsZXZlbCAweDgwMDAwMDIxLmVjeCwgd29yZCAxOCAq
LworWEVOX0NQVUZFQVRVUkUoVFNBX1NRX05PLCAgICAgICAgICAxOCozMisg
MSkgLypBICBObyBTdG9yZSBRdWV1ZSBUcmFuc2l0aXZlIFNjaGVkdWxlciBB
dHRhY2tzICovCitYRU5fQ1BVRkVBVFVSRShUU0FfTDFfTk8sICAgICAgICAg
IDE4KjMyKyAyKSAvKkEgIE5vIEwxRCBUcmFuc2l0aXZlIFNjaGVkdWxlciBB
dHRhY2tzICovCiAKICNlbmRpZiAvKiBYRU5fQ1BVRkVBVFVSRSAqLwogCg==

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.20-01.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.20-01.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEFwciAyMDI1IDE0OjU5OjAxICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBNb3ZlIG1vbml0b3IoKS9td2FpdCgpIHdyYXBwZXJz
IGludG8gY3B1LWlkbGUuYwoKVGhleSdyZSBub3QgdXNlZCBieSBhbnkgb3Ro
ZXIgdHJhbnNsYXRpb24gdW5pdCwgc28gc2hvdWxkbid0IGxpdmUgaW4KYXNt
L3Byb2Nlc3Nvci5oLCB3aGljaCBpcyBpbmNsdWRlZCBhbG1vc3QgZXZlcnl3
aGVyZS4KCk91ciBuZXcgdG9vbGNoYWluIGJhc2VsaW5lIGtub3dzIHRoZSBN
T05JVE9SL01XQUlUIGluc3RydWN0aW9ucywgc28gdXNlIHRoZW0KZGlyZWN0
bHkgcmF0aGVyIHRoYW4gdXNpbmcgcmF3IGhleC4KCkNoYW5nZSB0aGUgaGlu
dC9leHRlbnRpb24gcGFyYW1ldGVycyBmcm9tIGxvbmcgdG8gaW50LiAgVGhl
eSdyZSBzcGVjaWZpZWQgdG8KcmVtYWluIDMyYml0IG9wZXJhbmRzIGV2ZW4g
NjQtYml0IG1vZGUuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxh
bmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpSZXZpZXdlZC1ieTogSmFuIEJl
dWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgooY2hlcnJ5IHBpY2tlZCBmcm9t
IGNvbW1pdCA2MWUxMGZjMjhjY2RkZmY3YzcyYzE0YWNlYzU2ZGM3ZWYyYjE1
NWQxKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxl
LmMgYi94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jCmluZGV4IDFkYmYx
NWIwMWVkNy4uNDBhZjQyYTE4ZmI4IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94
ODYvYWNwaS9jcHVfaWRsZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9hY3BpL2Nw
dV9pZGxlLmMKQEAgLTYwLDYgKzYwLDE5IEBACiAKIC8qI2RlZmluZSBERUJV
R19QTV9DWCovCiAKK3N0YXRpYyBhbHdheXNfaW5saW5lIHZvaWQgbW9uaXRv
cigKKyAgICBjb25zdCB2b2lkICphZGRyLCB1bnNpZ25lZCBpbnQgZWN4LCB1
bnNpZ25lZCBpbnQgZWR4KQoreworICAgIGFzbSB2b2xhdGlsZSAoICJtb25p
dG9yIgorICAgICAgICAgICAgICAgICAgIDo6ICJhIiAoYWRkciksICJjIiAo
ZWN4KSwgImQiIChlZHgpICk7Cit9CisKK3N0YXRpYyBhbHdheXNfaW5saW5l
IHZvaWQgbXdhaXQodW5zaWduZWQgaW50IGVheCwgdW5zaWduZWQgaW50IGVj
eCkKK3sKKyAgICBhc20gdm9sYXRpbGUgKCAibXdhaXQiCisgICAgICAgICAg
ICAgICAgICAgOjogImEiIChlYXgpLCAiYyIgKGVjeCkgKTsKK30KKwogI2Rl
ZmluZSBHRVRfSFdfUkVTX0lOX05TKG1zciwgdmFsKSBcCiAgICAgZG8geyBy
ZG1zcmwobXNyLCB2YWwpOyB2YWwgPSB0c2NfdGlja3MybnModmFsKTsgfSB3
aGlsZSggMCApCiAjZGVmaW5lIEdFVF9NQzZfUkVTKHZhbCkgIEdFVF9IV19S
RVNfSU5fTlMoMHg2NjQsIHZhbCkKQEAgLTQ3MCw3ICs0ODMsNyBAQCB2b2lk
IG13YWl0X2lkbGVfd2l0aF9oaW50cyh1bnNpZ25lZCBpbnQgZWF4LCB1bnNp
Z25lZCBpbnQgZWN4KQogICAgICAgICBtYigpOwogICAgIH0KIAotICAgIF9f
bW9uaXRvcihtb25pdG9yX2FkZHIsIDAsIDApOworICAgIG1vbml0b3IobW9u
aXRvcl9hZGRyLCAwLCAwKTsKICAgICBzbXBfbWIoKTsKIAogICAgIC8qCkBA
IC00ODQsNyArNDk3LDcgQEAgdm9pZCBtd2FpdF9pZGxlX3dpdGhfaGludHMo
dW5zaWduZWQgaW50IGVheCwgdW5zaWduZWQgaW50IGVjeCkKICAgICAgICAg
Y3B1bWFza19zZXRfY3B1KGNwdSwgJmNwdWlkbGVfbXdhaXRfZmxhZ3MpOwog
CiAgICAgICAgIHNwZWNfY3RybF9lbnRlcl9pZGxlKGluZm8pOwotICAgICAg
ICBfX213YWl0KGVheCwgZWN4KTsKKyAgICAgICAgbXdhaXQoZWF4LCBlY3gp
OwogICAgICAgICBzcGVjX2N0cmxfZXhpdF9pZGxlKGluZm8pOwogCiAgICAg
ICAgIGNwdW1hc2tfY2xlYXJfY3B1KGNwdSwgJmNwdWlkbGVfbXdhaXRfZmxh
Z3MpOwpAQCAtOTE1LDkgKzkyOCw5IEBAIHZvaWQgY2ZfY2hlY2sgYWNwaV9k
ZWFkX2lkbGUodm9pZCkKICAgICAgICAgICAgICAqLwogICAgICAgICAgICAg
bWIoKTsKICAgICAgICAgICAgIGNsZmx1c2gobXdhaXRfcHRyKTsKLSAgICAg
ICAgICAgIF9fbW9uaXRvcihtd2FpdF9wdHIsIDAsIDApOworICAgICAgICAg
ICAgbW9uaXRvcihtd2FpdF9wdHIsIDAsIDApOwogICAgICAgICAgICAgbWIo
KTsKLSAgICAgICAgICAgIF9fbXdhaXQoY3gtPmFkZHJlc3MsIDApOworICAg
ICAgICAgICAgbXdhaXQoY3gtPmFkZHJlc3MsIDApOwogICAgICAgICB9CiAg
ICAgfQogICAgIGVsc2UgaWYgKCAoY3VycmVudF9jcHVfZGF0YS54ODZfdmVu
ZG9yICYKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9w
cm9jZXNzb3IuaCBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNz
b3IuaAppbmRleCBjM2NjNTI3ZjJlNzMuLjFhZWM2NjkxYzlmZiAxMDA2NDQK
LS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oCisr
KyBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaApAQCAt
MzE1LDIzICszMTUsNiBAQCBzdGF0aWMgYWx3YXlzX2lubGluZSB2b2lkIHNl
dF9pbl9jcjQgKHVuc2lnbmVkIGxvbmcgbWFzaykKICAgICAgICAgY3I0X3B2
MzJfbWFzayB8PSAobWFzayAmIFhFTl9DUjRfUFYzMl9CSVRTKTsKIH0KIAot
c3RhdGljIGFsd2F5c19pbmxpbmUgdm9pZCBfX21vbml0b3IoY29uc3Qgdm9p
ZCAqZWF4LCB1bnNpZ25lZCBsb25nIGVjeCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZWR4KQotewotICAg
IC8qICJtb25pdG9yICVlYXgsJWVjeCwlZWR4OyIgKi8KLSAgICBhc20gdm9s
YXRpbGUgKAotICAgICAgICAiLmJ5dGUgMHgwZiwweDAxLDB4Yzg7IgotICAg
ICAgICA6IDogImEiIChlYXgpLCAiYyIgKGVjeCksICJkIihlZHgpICk7Ci19
Ci0KLXN0YXRpYyBhbHdheXNfaW5saW5lIHZvaWQgX19td2FpdCh1bnNpZ25l
ZCBsb25nIGVheCwgdW5zaWduZWQgbG9uZyBlY3gpCi17Ci0gICAgLyogIm13
YWl0ICVlYXgsJWVjeDsiICovCi0gICAgYXNtIHZvbGF0aWxlICgKLSAgICAg
ICAgIi5ieXRlIDB4MGYsMHgwMSwweGM5OyIKLSAgICAgICAgOiA6ICJhIiAo
ZWF4KSwgImMiIChlY3gpICk7Ci19Ci0KICNkZWZpbmUgSU9CTVBfQllURVMg
ICAgICAgICAgICAgODE5MgogI2RlZmluZSBJT0JNUF9JTlZBTElEX09GRlNF
VCAgICAweDgwMDAKIAo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.20-02.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.20-02.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEFwciAyMDI1IDE1OjU1OjI5ICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBSZW1vdmUgTUZFTkNFcyBmb3IgQ0xGTFVTSF9NT05J
VE9SCgpDb21taXQgNDhkMzI0NThiY2Q0ICgieDg2LCBpZGxlOiBhZGQgYmFy
cmllcnMgdG8gQ0xGTFVTSCB3b3JrYXJvdW5kIikgd2FzCmluaGVyaXRlZCBm
cm9tIExpbnV4IGFuZCBhZGRlZCBNRkVOQ0VzIGFyb3VuZCB0aGUgQUFJNjUg
ZXJyYXRhIGZpeC4KClRoZSBTRE0gbm93IHN0YXRlczoKCiAgRXhlY3V0aW9u
cyBvZiB0aGUgQ0xGTFVTSCBpbnN0cnVjdGlvbiBhcmUgb3JkZXJlZCB3aXRo
IHJlc3BlY3QgdG8gZWFjaAogIG90aGVyIGFuZCB3aXRoIHJlc3BlY3QgdG8g
d3JpdGVzLCBsb2NrZWQgcmVhZC1tb2RpZnktd3JpdGUgaW5zdHJ1Y3Rpb25z
LAogIGFuZCBmZW5jZSBpbnN0cnVjdGlvbnNbMV0uCgp3aXRoIGZvb3Rub3Rl
IDEgcmVhZGluZzoKCiAgRWFybGllciB2ZXJzaW9ucyBvZiB0aGlzIG1hbnVh
bCBzcGVjaWZpZWQgdGhhdCBleGVjdXRpb25zIG9mIHRoZSBDTEZMVVNICiAg
aW5zdHJ1Y3Rpb24gd2VyZSBvcmRlcmVkIG9ubHkgYnkgdGhlIE1GRU5DRSBp
bnN0cnVjdGlvbi4gIEFsbCBwcm9jZXNzb3JzCiAgaW1wbGVtZW50aW5nIHRo
ZSBDTEZMVVNIIGluc3RydWN0aW9uIGFsc28gb3JkZXIgaXQgcmVsYXRpdmUg
dG8gdGhlIG90aGVyCiAgb3BlcmF0aW9ucyBlbnVtZXJhdGVkIGFib3ZlLgoK
SS5lLiB0aGUgTUZFTkNFcyBjYW1lIGFib3V0IGJlY2F1c2Ugb2YgYW4gaW5j
b3JyZWN0IHN0YXRlbWVudCBpbiB0aGUgU0RNLgoKVGhlIFNwZWMgVXBkYXRl
IChubyBsb25nZXIgYXZhaWxhYmxlIG9uIEludGVsJ3Mgd2Vic2l0ZSkgc2lt
cGx5IHNheXMgImlzc3VlIGEKQ0xGTFVTSCIsIHdpdGggbm8gbWVudGlvbiBv
ZiBNRkVOQ0VzLgoKQXMgdGhpcyBlcnJhdHVtIGlzIHNwZWNpZmljIHRvIElu
dGVsLCBpdCdzIGZpbmUgdG8gcmVtb3ZlIHRoZSB0aGUgTUZFTkNFczsgQU1E
CkNQVXMgb2YgYSBzaW1pbGFyIHZpbnRhZ2UgZG8gc3BvcnQgb3RoZXJ3aXNl
LXVub3JkZXJlZCBDTEZMVVNIcy4KCk1vdmUgdGhlIGZlYXR1cmUgYml0IGlu
dG8gdGhlIEJVRyByYW5nZSAocmF0aGVyIHRoYW4gRkVBVFVSRSksIGFuZCBt
b3ZlIHRoZQp3b3JrYXJvdW5kIGludG8gbW9uaXRvcigpIGl0c2VsZi4KClRo
ZSBlcnJhdHVtIGNoZWNrIGl0c2VsZiBtdXN0IHVzZSBzZXR1cF9mb3JjZV9j
cHVfY2FwKCkuICBJdCBuZWVkcyBhY3RpdmF0aW5nCmlmIGFueSBDUFUgbmVl
ZHMgaXQsIG5vdCBpZiBhbGwgb2YgdGhlbSBuZWVkIGl0LgoKRml4ZXM6IDQ4
ZDMyNDU4YmNkNCAoIng4NiwgaWRsZTogYWRkIGJhcnJpZXJzIHRvIENMRkxV
U0ggd29ya2Fyb3VuZCIpCkZpeGVzOiA5NmQxYjIzN2FlOWIgKCJ4ODYvSW50
ZWw6IHdvcmsgYXJvdW5kIFhlb24gNzQwMCBzZXJpZXMgZXJyYXR1bSBBQUk2
NSIpCkxpbms6IGh0dHBzOi8vd2ViLmFyY2hpdmUub3JnL3dlYi8yMDA5MDIx
OTA1NDg0MS9odHRwOi8vZG93bmxvYWQuaW50ZWwuY29tL2Rlc2lnbi94ZW9u
L3NwZWN1cGR0LzMyMDMzNjAxLnBkZgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcg
Q29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpSZXZpZXdlZC1i
eTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgooY2hlcnJ5IHBp
Y2tlZCBmcm9tIGNvbW1pdCBmNzdlZjM0NDM1NDJhMmMyYmJkNTllZTY2MTc4
Mjg3ZDRmYTViNDNmKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9hY3Bp
L2NwdV9pZGxlLmMgYi94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jCmlu
ZGV4IDQwYWY0MmExOGZiOC4uZTk0OTNmN2Y1NzdmIDEwMDY0NAotLS0gYS94
ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jCisrKyBiL3hlbi9hcmNoL3g4
Ni9hY3BpL2NwdV9pZGxlLmMKQEAgLTYzLDYgKzYzLDkgQEAKIHN0YXRpYyBh
bHdheXNfaW5saW5lIHZvaWQgbW9uaXRvcigKICAgICBjb25zdCB2b2lkICph
ZGRyLCB1bnNpZ25lZCBpbnQgZWN4LCB1bnNpZ25lZCBpbnQgZWR4KQogewor
ICAgIGFsdGVybmF0aXZlX2lucHV0KCIiLCAiY2xmbHVzaCAoJVthZGRyXSki
LCBYODZfQlVHX0NMRkxVU0hfTU9OSVRPUiwKKyAgICAgICAgICAgICAgICAg
ICAgICBbYWRkcl0gImEiIChhZGRyKSk7CisKICAgICBhc20gdm9sYXRpbGUg
KCAibW9uaXRvciIKICAgICAgICAgICAgICAgICAgICA6OiAiYSIgKGFkZHIp
LCAiYyIgKGVjeCksICJkIiAoZWR4KSApOwogfQpAQCAtNDc2LDEzICs0Nzks
NiBAQCB2b2lkIG13YWl0X2lkbGVfd2l0aF9oaW50cyh1bnNpZ25lZCBpbnQg
ZWF4LCB1bnNpZ25lZCBpbnQgZWN4KQogICAgIHNfdGltZV90IGV4cGlyZXMg
PSBwZXJfY3B1KHRpbWVyX2RlYWRsaW5lLCBjcHUpOwogICAgIGNvbnN0IHZv
aWQgKm1vbml0b3JfYWRkciA9ICZtd2FpdF93YWtldXAoY3B1KTsKIAotICAg
IGlmICggYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0NMRkxVU0hfTU9OSVRP
UikgKQotICAgIHsKLSAgICAgICAgbWIoKTsKLSAgICAgICAgY2xmbHVzaCht
b25pdG9yX2FkZHIpOwotICAgICAgICBtYigpOwotICAgIH0KLQogICAgIG1v
bml0b3IobW9uaXRvcl9hZGRyLCAwLCAwKTsKICAgICBzbXBfbWIoKTsKIApA
QCAtOTE3LDE5ICs5MTMsNyBAQCB2b2lkIGNmX2NoZWNrIGFjcGlfZGVhZF9p
ZGxlKHZvaWQpCiAKICAgICAgICAgd2hpbGUgKCAxICkKICAgICAgICAgewot
ICAgICAgICAgICAgLyoKLSAgICAgICAgICAgICAqIDEuIFRoZSBDTEZMVVNI
IGlzIGEgd29ya2Fyb3VuZCBmb3IgZXJyYXR1bSBBQUk2NSBmb3IKLSAgICAg
ICAgICAgICAqIHRoZSBYZW9uIDc0MDAgc2VyaWVzLiAgCi0gICAgICAgICAg
ICAgKiAyLiBUaGUgV0JJTlZEIGlzIGluc3VmZmljaWVudCBkdWUgdG8gdGhl
IHNwdXJpb3VzLXdha2V1cAotICAgICAgICAgICAgICogY2FzZSB3aGVyZSB3
ZSByZXR1cm4gYXJvdW5kIHRoZSBsb29wLgotICAgICAgICAgICAgICogMy4g
VW5saWtlIHdiaW52ZCwgY2xmbHVzaCBpcyBhIGxpZ2h0IHdlaWdodCBidXQg
bm90IHNlcmlhbGl6aW5nIAotICAgICAgICAgICAgICogaW5zdHJ1Y3Rpb24s
IGhlbmNlIG1lbW9yeSBmZW5jZSBpcyBuZWNlc3NhcnkgdG8gbWFrZSBzdXJl
IGFsbCAKLSAgICAgICAgICAgICAqIGxvYWQvc3RvcmUgdmlzaWJsZSBiZWZv
cmUgZmx1c2ggY2FjaGUgbGluZS4KLSAgICAgICAgICAgICAqLwotICAgICAg
ICAgICAgbWIoKTsKLSAgICAgICAgICAgIGNsZmx1c2gobXdhaXRfcHRyKTsK
ICAgICAgICAgICAgIG1vbml0b3IobXdhaXRfcHRyLCAwLCAwKTsKLSAgICAg
ICAgICAgIG1iKCk7CiAgICAgICAgICAgICBtd2FpdChjeC0+YWRkcmVzcywg
MCk7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94
ODYvY3B1L2ludGVsLmMgYi94ZW4vYXJjaC94ODYvY3B1L2ludGVsLmMKaW5k
ZXggN2VhYTIwZWNlMThjLi45ZjgxMTUwMDhiNjcgMTAwNjQ0Ci0tLSBhL3hl
bi9hcmNoL3g4Ni9jcHUvaW50ZWwuYworKysgYi94ZW4vYXJjaC94ODYvY3B1
L2ludGVsLmMKQEAgLTQ0Niw2ICs0NDYsNyBAQCBzdGF0aWMgdm9pZCBfX2lu
aXQgcHJvYmVfbXdhaXRfZXJyYXRhKHZvaWQpCiAgKgogICogWGVvbiA3NDAw
IGVycmF0dW0gQUFJNjUgKGFuZCBmdXJ0aGVyIG5ld2VyIFhlb25zKQogICog
TU9OSVRPUi9NV0FJVCBtYXkgaGF2ZSBleGNlc3NpdmUgZmFsc2Ugd2FrZXVw
cworICogaHR0cHM6Ly93ZWIuYXJjaGl2ZS5vcmcvd2ViLzIwMDkwMjE5MDU0
ODQxL2h0dHA6Ly9kb3dubG9hZC5pbnRlbC5jb20vZGVzaWduL3hlb24vc3Bl
Y3VwZHQvMzIwMzM2MDEucGRmCiAgKi8KIHN0YXRpYyB2b2lkIEludGVsX2Vy
cmF0YV93b3JrYXJvdW5kcyhzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCiB7CkBA
IC00NjMsNyArNDY0LDcgQEAgc3RhdGljIHZvaWQgSW50ZWxfZXJyYXRhX3dv
cmthcm91bmRzKHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKIAogCWlmIChjLT54
ODYgPT0gNiAmJiBjcHVfaGFzX2NsZmx1c2ggJiYKIAkgICAgKGMtPng4Nl9t
b2RlbCA9PSAyOSB8fCBjLT54ODZfbW9kZWwgPT0gNDYgfHwgYy0+eDg2X21v
ZGVsID09IDQ3KSkKLQkJX19zZXRfYml0KFg4Nl9GRUFUVVJFX0NMRkxVU0hf
TU9OSVRPUiwgYy0+eDg2X2NhcGFiaWxpdHkpOworCQlzZXR1cF9mb3JjZV9j
cHVfY2FwKFg4Nl9CVUdfQ0xGTFVTSF9NT05JVE9SKTsKIAogCXByb2JlX2Mz
X2VycmF0YShjKTsKIAlpZiAoc3lzdGVtX3N0YXRlIDwgU1lTX1NUQVRFX3Nt
cF9ib290KQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNt
L2NwdWZlYXR1cmVzLmggYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vY3B1
ZmVhdHVyZXMuaAppbmRleCA5ZTNlZDIxYzAyNmQuLjg0YzkzMjkyYzgwYyAx
MDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1
cmVzLmgKKysrIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1
cmVzLmgKQEAgLTE5LDcgKzE5LDcgQEAgWEVOX0NQVUZFQVRVUkUoQVJDSF9Q
RVJGTU9OLCAgICAgIFg4Nl9TWU5USCggMykpIC8qIEludGVsIEFyY2hpdGVj
dHVyYWwgUGVyZk1vbgogWEVOX0NQVUZFQVRVUkUoVFNDX1JFTElBQkxFLCAg
ICAgIFg4Nl9TWU5USCggNCkpIC8qIFRTQyBpcyBrbm93biB0byBiZSByZWxp
YWJsZSAqLwogWEVOX0NQVUZFQVRVUkUoWFRPUE9MT0dZLCAgICAgICAgIFg4
Nl9TWU5USCggNSkpIC8qIGNwdSB0b3BvbG9neSBlbnVtIGV4dGVuc2lvbnMg
Ki8KIFhFTl9DUFVGRUFUVVJFKENQVUlEX0ZBVUxUSU5HLCAgICBYODZfU1lO
VEgoIDYpKSAvKiBjcHVpZCBmYXVsdGluZyAqLwotWEVOX0NQVUZFQVRVUkUo
Q0xGTFVTSF9NT05JVE9SLCAgIFg4Nl9TWU5USCggNykpIC8qIGNsZmx1c2gg
cmVxZCB3aXRoIG1vbml0b3IgKi8KKy8qIEJpdCA3IHVudXNlZCAqLwogWEVO
X0NQVUZFQVRVUkUoQVBFUkZNUEVSRiwgICAgICAgIFg4Nl9TWU5USCggOCkp
IC8qIEFQRVJGTVBFUkYgKi8KIFhFTl9DUFVGRUFUVVJFKE1GRU5DRV9SRFRT
QywgICAgICBYODZfU1lOVEgoIDkpKSAvKiBNRkVOQ0Ugc3luY2hyb25pemVz
IFJEVFNDICovCiBYRU5fQ1BVRkVBVFVSRShYRU5fU01FUCwgICAgICAgICAg
WDg2X1NZTlRIKDEwKSkgLyogU01FUCBnZXRzIHVzZWQgYnkgWGVuIGl0c2Vs
ZiAqLwpAQCAtNTIsNiArNTIsNyBAQCBYRU5fQ1BVRkVBVFVSRShVU0VfVk1D
QUxMLCAgICAgICAgWDg2X1NZTlRIKDMwKSkgLyogVXNlIFZNQ0FMTCBpbnN0
ZWFkIG9mIFZNTUNBTAogI2RlZmluZSBYODZfQlVHX05VTExfU0VHICAgICAg
ICAgIFg4Nl9CVUcoIDEpIC8qIE5VTEwtaW5nIGEgc2VsZWN0b3IgcHJlc2Vy
dmVzIHRoZSBiYXNlIGFuZCBsaW1pdC4gKi8KICNkZWZpbmUgWDg2X0JVR19D
TEZMVVNIX01GRU5DRSAgICBYODZfQlVHKCAyKSAvKiBNRkVOQ0UgbmVlZGVk
IHRvIHNlcmlhbGlzZSBDTEZMVVNIICovCiAjZGVmaW5lIFg4Nl9CVUdfSUJQ
Ql9OT19SRVQgICAgICAgWDg2X0JVRyggMykgLyogSUJQQiBkb2Vzbid0IGZs
dXNoIHRoZSBSU0IvUkFTICovCisjZGVmaW5lIFg4Nl9CVUdfQ0xGTFVTSF9N
T05JVE9SICAgWDg2X0JVRyggNCkgLyogTU9OSVRPUiByZXF1aXJlcyBDTEZM
VVNIICovCiAKICNkZWZpbmUgWDg2X1NQRUNfTk9fTEZFTkNFX0VOVFJZX1BW
IFg4Nl9CVUcoMTYpIC8qIChObykgc2FmZXR5IExGRU5DRSBmb3IgU1BFQ19D
VFJMX0VOVFJZX1BWLiAqLwogI2RlZmluZSBYODZfU1BFQ19OT19MRkVOQ0Vf
RU5UUllfSU5UUiBYODZfQlVHKDE3KSAvKiAoTm8pIHNhZmV0eSBMRkVOQ0Ug
Zm9yIFNQRUNfQ1RSTF9FTlRSWV9JTlRSLiAqLwo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.20-03.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.20-03.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAyNCBKdW4gMjAyNSAxNToyMDo1MiArMDEwMApTdWJq
ZWN0OiBSZXZlcnQgcGFydCBvZiAieDg2L213YWl0LWlkbGU6IGRpc2FibGUg
SUJSUyBkdXJpbmcgbG9uZyBpZGxlIgoKTW9zdCBvZiB0aGUgcGF0Y2ggKGhh
bmRsaW5nIG9mIENQVUlETEVfRkxBR19JQlJTKSBpcyBmaW5lLCBidXQgdGhl
CmFkanVzdGVtZW50cyB0byBtd2FpdF9pZGxlKCkgYXJlIG5vdDsgc3BlY19j
dHJsX2VudGVyX2lkbGUoKSBkb2VzIG1vcmUgdGhhbgpqdXN0IGFsdGVyIE1T
Ul9TUEVDX0NUUkwuSUJSUy4KClRoZSBvbmx5IHJlYXNvbiB0aGlzIGRvZXNu
J3QgbmVlZCBhbiBYU0EgaXMgYmVjYXVzZSB0aGUgdW5jb25kaXRpb25hbApz
cGVjX2N0cmxfe2VudGVyLGV4aXR9X2lkbGUoKSBpbiBtd2FpdF9pZGxlX3dp
dGhfaGludHMoKSB3ZXJlIGxlZnQgdW5hbHRlcmVkLAphbmQgdGh1cyB0aGUg
TVdBSVQgcmVtYWluZWQgcHJvcGVybHkgcHJvdGVjdGVkLgoKVGhlcmUgKHdv
dWxkIGhhdmUgYmVlbikgdHdvIHByb2JsZW1zLiAgSW4gdGhlIGlicnNfZGlz
YWJsZSAoPT0gZGVlcCBDKSBjYXNlOgoKICogT24gZW50cnksIFZFUlcgYW5k
IFJTQi1zdHVmZmluZyBhcmUgYXJjaGl0ZWN0dXJhbGx5IHNraXBwZWQuCiAq
IE9uIGV4aXQsIHRoZXJlJ3MgYSBicmFuY2ggY3Jvc3NpbmcgdGhlIFdSTVNS
IHdoaWNoIHJlaW5zdGF0ZXMgdGhlCiAgIHNwZWN1bGF0aXZlIHNhZmV0eSBm
b3IgaW5kaXJlY3QgYnJhbmNoZXMuCgpBbGwgdGhpcyBjaGFuZ2UgZGlkIHdh
cyBkb3VibGUgdXAgdGhlIGV4cGVuc2l2ZSBvcGVyYXRpb25zIGluIHRoZSBk
ZWVwIEMgY2FzZSwKYW5kIGZhaWwgdG8gb3B0aW1pc2UgdGhlIGludGVuZGVk
IGNhc2UuCgpJIGhhdmUgYW4gaWRlYSBvZiBob3cgdG8gcGx1bWIgdGhpcyBt
b3JlIG5pY2VseSwgYnV0IGl0IHJlcXVpcmVzIGxhcmdlcgpjaGFuZ2VzIHRv
IGxlZ2FjeSBJQlJTIGhhbmRsaW5nIHRvIG5vdCBtYWtlIHNwZWNfY3RybF9l
bnRlcl9pZGxlKCkgdnVsbmVyYWJsZQppbiBvdGhlciB3YXlzLiAgSW4gdGhl
IHNob3J0IHRlcm0sIHNpbXBseSB0YWtlIG91dCB0aGUgcGVyZiBoaXQuCgpG
aXhlczogMDhhY2RmOWEyNjE1ICgieDg2L213YWl0LWlkbGU6IGRpc2FibGUg
SUJSUyBkdXJpbmcgbG9uZyBpZGxlIikKU2lnbmVkLW9mZi1ieTogQW5kcmV3
IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KUmV2aWV3ZWQt
Ynk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KKGNoZXJyeSBw
aWNrZWQgZnJvbSBjb21taXQgMDdkNzE2MzMzNGE3NTA3ZDMyOTk1OGIxOWQ5
NzZiZTc2OTU4MDk5OSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1
L213YWl0LWlkbGUuYyBiL3hlbi9hcmNoL3g4Ni9jcHUvbXdhaXQtaWRsZS5j
CmluZGV4IDljMTZjYzE2NmExNC4uNWMxNmY1YWQzYTgyIDEwMDY0NAotLS0g
YS94ZW4vYXJjaC94ODYvY3B1L213YWl0LWlkbGUuYworKysgYi94ZW4vYXJj
aC94ODYvY3B1L213YWl0LWlkbGUuYwpAQCAtODc1LDcgKzg3NSw2IEBAIHN0
YXRpYyBjb25zdCBzdHJ1Y3QgY3B1aWRsZV9zdGF0ZSBzbnJfY3N0YXRlc1td
ID0gewogc3RhdGljIHZvaWQgY2ZfY2hlY2sgbXdhaXRfaWRsZSh2b2lkKQog
ewogCXVuc2lnbmVkIGludCBjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7Ci0J
c3RydWN0IGNwdV9pbmZvICppbmZvID0gZ2V0X2NwdV9pbmZvKCk7CiAJc3Ry
dWN0IGFjcGlfcHJvY2Vzc29yX3Bvd2VyICpwb3dlciA9IHByb2Nlc3Nvcl9w
b3dlcnNbY3B1XTsKIAlzdHJ1Y3QgYWNwaV9wcm9jZXNzb3JfY3ggKmN4ID0g
TlVMTDsKIAl1bnNpZ25lZCBpbnQgbmV4dF9zdGF0ZTsKQEAgLTkwMiw2ICs5
MDEsOCBAQCBzdGF0aWMgdm9pZCBjZl9jaGVjayBtd2FpdF9pZGxlKHZvaWQp
CiAJCQlwbV9pZGxlX3NhdmUoKTsKIAkJZWxzZQogCQl7CisJCQlzdHJ1Y3Qg
Y3B1X2luZm8gKmluZm8gPSBnZXRfY3B1X2luZm8oKTsKKwogCQkJc3BlY19j
dHJsX2VudGVyX2lkbGUoaW5mbyk7CiAJCQlzYWZlX2hhbHQoKTsKIAkJCXNw
ZWNfY3RybF9leGl0X2lkbGUoaW5mbyk7CkBAIC05MjgsMTEgKzkyOSw2IEBA
IHN0YXRpYyB2b2lkIGNmX2NoZWNrIG13YWl0X2lkbGUodm9pZCkKIAlpZiAo
KGN4LT50eXBlID49IDMpICYmIGVycmF0YV9jNl93b3JrYXJvdW5kKCkpCiAJ
CWN4ID0gcG93ZXItPnNhZmVfc3RhdGU7CiAKLQlpZiAoY3gtPmlicnNfZGlz
YWJsZSkgewotCQlBU1NFUlQoIWN4LT5pcnFfZW5hYmxlX2Vhcmx5KTsKLQkJ
c3BlY19jdHJsX2VudGVyX2lkbGUoaW5mbyk7Ci0JfQotCiAjaWYgMCAvKiBY
WFggQ2FuIHdlL2RvIHdlIG5lZWQgdG8gZG8gc29tZXRoaW5nIHNpbWlsYXIg
b24gWGVuPyAqLwogCS8qCiAJICogbGVhdmVfbW0oKSB0byBhdm9pZCBjb3N0
bHkgYW5kIG9mdGVuIHVubmVjZXNzYXJ5IHdha2V1cHMKQEAgLTk2NCwxMCAr
OTYwLDYgQEAgc3RhdGljIHZvaWQgY2ZfY2hlY2sgbXdhaXRfaWRsZSh2b2lk
KQogCiAJLyogTm93IGJhY2sgaW4gQzAuICovCiAJdXBkYXRlX2lkbGVfc3Rh
dHMocG93ZXIsIGN4LCBiZWZvcmUsIGFmdGVyKTsKLQotCWlmIChjeC0+aWJy
c19kaXNhYmxlKQotCQlzcGVjX2N0cmxfZXhpdF9pZGxlKGluZm8pOwotCiAJ
bG9jYWxfaXJxX2VuYWJsZSgpOwogCiAJVFJBQ0VfVElNRShUUkNfUE1fSURM
RV9FWElULCBjeC0+dHlwZSwgYWZ0ZXIsCg==

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.20-04.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.20-04.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogRnJpLCAyNyBKdW4gMjAyNSAxNDo0NjowMSArMDEwMApTdWJq
ZWN0OiB4ODYvY3B1LXBvbGljeTogU2ltcGxpZnkgbG9naWMgaW4KIGd1ZXN0
X2NvbW1vbl9kZWZhdWx0X2ZlYXR1cmVfYWRqdXN0bWVudHMoKQoKRm9yIGZl
YXR1cmVzIHdoaWNoIGFyZSB1bmNvbmRpdGlvbmFsbHkgc2V0IGluIHRoZSBt
YXggcG9saWNpZXMsIG1ha2luZyB0aGUKZGVmYXVsdCBwb2xpY3kgdG8gbWF0
Y2ggdGhlIGhvc3QgY2FuIGJlIGRvbmUgd2l0aCBhIGNvbmRpdGlvbmFsIGNs
ZWFyLgoKVGhpcyBpcyBzaW1wbGVyIHRoYW4gdGhlIHVuY29uZGl0aW9uYWwg
Y2xlYXIsIGNvbmRpdGlvbmFsIHNldCBjdXJyZW50bHkKcGVyZm9ybWVkLgoK
U2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNA
Y2l0cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGlj
aEBzdXNlLmNvbT4KKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgMzBmOGZl
ZDY4ZjNjMmU2MzU5NGZmOTIwMmIzZDA1Yjk3MTc4MWUzNikKCmRpZmYgLS1n
aXQgYS94ZW4vYXJjaC94ODYvY3B1LXBvbGljeS5jIGIveGVuL2FyY2gveDg2
L2NwdS1wb2xpY3kuYwppbmRleCBkNjk2OTYwYjE4ODcuLmMzYWFhYzg2MWQx
NSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2NwdS1wb2xpY3kuYworKysg
Yi94ZW4vYXJjaC94ODYvY3B1LXBvbGljeS5jCkBAIC01MTgsMTcgKzUxOCwx
NCBAQCBzdGF0aWMgdm9pZCBfX2luaXQgZ3Vlc3RfY29tbW9uX2RlZmF1bHRf
ZmVhdHVyZV9hZGp1c3RtZW50cyh1aW50MzJfdCAqZnMpCiAgICAgICAgICAq
IHJlYXNvbnMsIHNvIHJlc2V0IHRoZSBkZWZhdWx0IHBvbGljeSBiYWNrIHRv
IHRoZSBob3N0IHZhbHVlcyBpbgogICAgICAgICAgKiBjYXNlIHdlJ3JlIHVu
YWZmZWN0ZWQuCiAgICAgICAgICAqLwotICAgICAgICBfX2NsZWFyX2JpdChY
ODZfRkVBVFVSRV9NRF9DTEVBUiwgZnMpOwotICAgICAgICBpZiAoIGNwdV9o
YXNfbWRfY2xlYXIgKQotICAgICAgICAgICAgX19zZXRfYml0KFg4Nl9GRUFU
VVJFX01EX0NMRUFSLCBmcyk7CisgICAgICAgIGlmICggIWNwdV9oYXNfbWRf
Y2xlYXIgKQorICAgICAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVf
TURfQ0xFQVIsIGZzKTsKIAotICAgICAgICBfX2NsZWFyX2JpdChYODZfRkVB
VFVSRV9GQl9DTEVBUiwgZnMpOwotICAgICAgICBpZiAoIGNwdV9oYXNfZmJf
Y2xlYXIgKQotICAgICAgICAgICAgX19zZXRfYml0KFg4Nl9GRUFUVVJFX0ZC
X0NMRUFSLCBmcyk7CisgICAgICAgIGlmICggIWNwdV9oYXNfZmJfY2xlYXIg
KQorICAgICAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVfRkJfQ0xF
QVIsIGZzKTsKIAotICAgICAgICBfX2NsZWFyX2JpdChYODZfRkVBVFVSRV9S
RkRTX0NMRUFSLCBmcyk7Ci0gICAgICAgIGlmICggY3B1X2hhc19yZmRzX2Ns
ZWFyICkKLSAgICAgICAgICAgIF9fc2V0X2JpdChYODZfRkVBVFVSRV9SRkRT
X0NMRUFSLCBmcyk7CisgICAgICAgIGlmICggIWNwdV9oYXNfcmZkc19jbGVh
ciApCisgICAgICAgICAgICBfX2NsZWFyX2JpdChYODZfRkVBVFVSRV9SRkRT
X0NMRUFSLCBmcyk7CiAKICAgICAgICAgLyoKICAgICAgICAgICogVGhlIEdh
dGhlciBEYXRhIFNhbXBsaW5nIG1pY3JvY29kZSBtaXRpZ2F0aW9uIChBdWd1
c3QgMjAyMykgaGFzIGFuCkBAIC01NDgsMTMgKzU0NSwxMSBAQCBzdGF0aWMg
dm9pZCBfX2luaXQgZ3Vlc3RfY29tbW9uX2RlZmF1bHRfZmVhdHVyZV9hZGp1
c3RtZW50cyh1aW50MzJfdCAqZnMpCiAgICAgICogVG9wb2xvZ3kgaW5mb3Jt
YXRpb24gaXMgYXQgdGhlIHRvb2xzdGFjaydzIGRpc2NyZXRpb24gc28gdGhl
c2UgYXJlCiAgICAgICogdW5jb25kaXRpb25hbGx5IHNldCBpbiBtYXgsIGJ1
dCBwaWNrIGEgZGVmYXVsdCB3aGljaCBtYXRjaGVzIHRoZSBob3N0LgogICAg
ICAqLwotICAgIF9fY2xlYXJfYml0KFg4Nl9GRUFUVVJFX0hUVCwgZnMpOwot
ICAgIGlmICggY3B1X2hhc19odHQgKQotICAgICAgICBfX3NldF9iaXQoWDg2
X0ZFQVRVUkVfSFRULCBmcyk7CisgICAgaWYgKCAhY3B1X2hhc19odHQgKQor
ICAgICAgICBfX2NsZWFyX2JpdChYODZfRkVBVFVSRV9IVFQsIGZzKTsKIAot
ICAgIF9fY2xlYXJfYml0KFg4Nl9GRUFUVVJFX0NNUF9MRUdBQ1ksIGZzKTsK
LSAgICBpZiAoIGNwdV9oYXNfY21wX2xlZ2FjeSApCi0gICAgICAgIF9fc2V0
X2JpdChYODZfRkVBVFVSRV9DTVBfTEVHQUNZLCBmcyk7CisgICAgaWYgKCAh
Y3B1X2hhc19jbXBfbGVnYWN5ICkKKyAgICAgICAgX19jbGVhcl9iaXQoWDg2
X0ZFQVRVUkVfQ01QX0xFR0FDWSwgZnMpOwogCiAgICAgLyoKICAgICAgKiBP
biBjZXJ0YWluIGhhcmR3YXJlLCBzcGVjdWxhdGl2ZSBvciBlcnJhdGEgd29y
a2Fyb3VuZHMgY2FuIHJlc3VsdCBpbgo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.20-05.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.20-05.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDE1OjUxOjUzICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBSZW1vdmUgYnJva2VuIE1XQUlUIGltcGxlbWVudGF0
aW9uCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFp
bjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4
Yml0CgpjcHVpZGxlX3dha2V1cF9td2FpdCgpIGlzIGEgVE9DVE9VIHJhY2Uu
ICBUaGUgY3B1bWFza19hbmQoKSBzYW1wbGluZwpjcHVpZGxlX213YWl0X2Zs
YWdzIGNhbiB0YWtlIGEgYXJiaXRyYXJ5IHBlcmlvZCBvZiB0aW1lLCBhbmQg
dGhlcmUncyBubwpndWFyYW50ZWUgdGhhdCB0aGUgdGFyZ2V0IENQVXMgYXJl
IHN0aWxsIGluIE1XQUlUIHdoZW4gd3JpdGluZyBpbnRvCm13YWl0X3dha2V1
cChjcHUpLgoKVGhlIGNvbnNlcXVlbmNlIG9mIHRoZSByYWNlIGlzIHRoYXQg
d2UnbGwgZmFpbCB0byBJUEkgY2VydGFpbiB0YXJnZXRzLiAgQWxzbywKdGhl
cmUncyBubyBndWFyYW50ZWUgdGhhdCBtd2FpdF9pZGxlX3dpdGhfaGludHMo
KSB3aWxsIHJhaXNlIGEgVElNRVJfU09GVElSUQpvbiBpdCdzIHdheSBvdXQu
CgpUaGUgZnVuZGFtZW50YWwgYnVnIGlzIHRoYXQgdGhlICJpbl9td2FpdCIg
dmFyaWFibGUgbmVlZHMgdG8gYmUgaW4gdGhlCm1vbml0b3JlZCBsaW5lLCBh
bmQgbm90IGluIGEgc2VwYXJhdGUgY3B1aWRsZV9td2FpdF9mbGFncyB2YXJp
YWJsZSwgaW4gb3JkZXIKdG8gZG8gdGhpcyBpbiBhIHJhY2UtZnJlZSB3YXku
CgpBcnJhbmdpbmcgdG8gZml4IHRoaXMgd2hpbGUga2VlcGluZyB0aGUgb2xk
IGltcGxlbWVudGF0aW9uIGlzIHByb2hpYml0aXZlLCBzbwpzdHJpcCB0aGUg
Y3VycmVudCBvbmUgb3V0IGluIG9yZGVyIHRvIGltcGxlbWVudCB0aGUgbmV3
IG9uZSBjbGVhbmx5LiAgSW4gdGhlCmludGVyaW0sIHRoaXMgY2F1c2VzIElQ
SXMgdG8gYmUgdXNlZCB1bmNvbmRpdGlvbmFsbHkgd2hpY2ggaXMgc2FmZSBh
bGJlaXQKc3Vib3B0aW1hbC4KCkZpeGVzOiAzZDUyMWU5MzNlMWIgKCJjcHVp
ZGxlOiBtd2FpdCBvbiBzb2Z0aXJxX3BlbmRpbmcgJiByZW1vdmUgd2FrZXVw
IGlwaXMiKQpGaXhlczogMWFkYjM0ZWE4NDZkICgiQ1BVSURMRTogcmUtaW1w
bGVtZW50IG13YWl0IHdha2V1cCBwcm9jZXNzIikKU2lnbmVkLW9mZi1ieTog
QW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KUmV2
aWV3ZWQtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXgu
Y29tPgooY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCAzZmFmMDg2NmEzMzA3
MGI5MjZhYjc4ZTYyOTgyOTA0MDNmODVlNzZjKQoKZGlmZiAtLWdpdCBhL3hl
bi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMgYi94ZW4vYXJjaC94ODYvYWNw
aS9jcHVfaWRsZS5jCmluZGV4IGU5NDkzZjdmNTc3Zi4uMzEwMWQ1Y2UyMzBk
IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jCisr
KyBiL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKQEAgLTQzNiwyNyAr
NDM2LDYgQEAgc3RhdGljIGludCBfX2luaXQgY2ZfY2hlY2sgY3B1X2lkbGVf
a2V5X2luaXQodm9pZCkKIH0KIF9faW5pdGNhbGwoY3B1X2lkbGVfa2V5X2lu
aXQpOwogCi0vKgotICogVGhlIGJpdCBpcyBzZXQgaWZmIGNwdSB1c2UgbW9u
aXRvci9td2FpdCB0byBlbnRlciBDIHN0YXRlCi0gKiB3aXRoIHRoaXMgZmxh
ZyBzZXQsIENQVSBjYW4gYmUgd2FrZW4gdXAgZnJvbSBDIHN0YXRlCi0gKiBi
eSB3cml0aW5nIHRvIHNwZWNpZmljIG1lbW9yeSBhZGRyZXNzLCBpbnN0ZWFk
IG9mIHNlbmRpbmcgYW4gSVBJLgotICovCi1zdGF0aWMgY3B1bWFza190IGNw
dWlkbGVfbXdhaXRfZmxhZ3M7Ci0KLXZvaWQgY3B1aWRsZV93YWtldXBfbXdh
aXQoY3B1bWFza190ICptYXNrKQotewotICAgIGNwdW1hc2tfdCB0YXJnZXQ7
Ci0gICAgdW5zaWduZWQgaW50IGNwdTsKLQotICAgIGNwdW1hc2tfYW5kKCZ0
YXJnZXQsIG1hc2ssICZjcHVpZGxlX213YWl0X2ZsYWdzKTsKLQotICAgIC8q
IENQVSBpcyBNV0FJVGluZyBvbiB0aGUgY3B1aWRsZV9td2FpdF93YWtldXAg
ZmxhZy4gKi8KLSAgICBmb3JfZWFjaF9jcHUoY3B1LCAmdGFyZ2V0KQotICAg
ICAgICBtd2FpdF93YWtldXAoY3B1KSA9IDA7Ci0KLSAgICBjcHVtYXNrX2Fu
ZG5vdChtYXNrLCBtYXNrLCAmdGFyZ2V0KTsKLX0KLQogLyogRm9yY2Ugc2Vu
ZGluZyBvZiBhIHdha2V1cCBJUEkgcmVnYXJkbGVzcyBvZiBtd2FpdCB1c2Fn
ZS4gKi8KIGJvb2wgX19yb19hZnRlcl9pbml0IGZvcmNlX213YWl0X2lwaV93
YWtldXA7CiAKQEAgLTQ2NSw0MiArNDQ0LDI1IEBAIGJvb2wgYXJjaF9za2lw
X3NlbmRfZXZlbnRfY2hlY2sodW5zaWduZWQgaW50IGNwdSkKICAgICBpZiAo
IGZvcmNlX213YWl0X2lwaV93YWtldXAgKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSAgICAvKgotICAgICAqIFRoaXMgcmVsaWVzIG9uIHNvZnRpcnFf
cGVuZGluZygpIGFuZCBtd2FpdF93YWtldXAoKSB0byBhY2Nlc3MgZGF0YQot
ICAgICAqIG9uIHRoZSBzYW1lIGNhY2hlIGxpbmUuCi0gICAgICovCi0gICAg
c21wX21iKCk7Ci0gICAgcmV0dXJuICEhY3B1bWFza190ZXN0X2NwdShjcHUs
ICZjcHVpZGxlX213YWl0X2ZsYWdzKTsKKyAgICByZXR1cm4gZmFsc2U7CiB9
CiAKIHZvaWQgbXdhaXRfaWRsZV93aXRoX2hpbnRzKHVuc2lnbmVkIGludCBl
YXgsIHVuc2lnbmVkIGludCBlY3gpCiB7CiAgICAgdW5zaWduZWQgaW50IGNw
dSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKLSAgICBzX3RpbWVfdCBleHBpcmVz
ID0gcGVyX2NwdSh0aW1lcl9kZWFkbGluZSwgY3B1KTsKLSAgICBjb25zdCB2
b2lkICptb25pdG9yX2FkZHIgPSAmbXdhaXRfd2FrZXVwKGNwdSk7CisgICAg
Y29uc3QgdW5zaWduZWQgaW50ICp0aGlzX3NvZnRpcnFfcGVuZGluZyA9ICZz
b2Z0aXJxX3BlbmRpbmcoY3B1KTsKIAotICAgIG1vbml0b3IobW9uaXRvcl9h
ZGRyLCAwLCAwKTsKKyAgICBtb25pdG9yKHRoaXNfc29mdGlycV9wZW5kaW5n
LCAwLCAwKTsKICAgICBzbXBfbWIoKTsKIAotICAgIC8qCi0gICAgICogVGlt
ZXIgZGVhZGxpbmUgcGFzc2luZyBpcyB0aGUgZXZlbnQgb24gd2hpY2ggd2Ug
d2lsbCBiZSB3b2tlbiB2aWEKLSAgICAgKiBjcHVpZGxlX213YWl0X3dha2V1
cC4gU28gY2hlY2sgaXQgbm93IHRoYXQgdGhlIGxvY2F0aW9uIGlzIGFybWVk
LgotICAgICAqLwotICAgIGlmICggKGV4cGlyZXMgPiBOT1coKSB8fCBleHBp
cmVzID09IDApICYmICFzb2Z0aXJxX3BlbmRpbmcoY3B1KSApCisgICAgaWYg
KCAhKnRoaXNfc29mdGlycV9wZW5kaW5nICkKICAgICB7CiAgICAgICAgIHN0
cnVjdCBjcHVfaW5mbyAqaW5mbyA9IGdldF9jcHVfaW5mbygpOwogCi0gICAg
ICAgIGNwdW1hc2tfc2V0X2NwdShjcHUsICZjcHVpZGxlX213YWl0X2ZsYWdz
KTsKLQogICAgICAgICBzcGVjX2N0cmxfZW50ZXJfaWRsZShpbmZvKTsKICAg
ICAgICAgbXdhaXQoZWF4LCBlY3gpOwogICAgICAgICBzcGVjX2N0cmxfZXhp
dF9pZGxlKGluZm8pOwotCi0gICAgICAgIGNwdW1hc2tfY2xlYXJfY3B1KGNw
dSwgJmNwdWlkbGVfbXdhaXRfZmxhZ3MpOwogICAgIH0KLQotICAgIGlmICgg
ZXhwaXJlcyA8PSBOT1coKSAmJiBleHBpcmVzID4gMCApCi0gICAgICAgIHJh
aXNlX3NvZnRpcnEoVElNRVJfU09GVElSUSk7CiB9CiAKIHN0YXRpYyB2b2lk
IGFjcGlfcHJvY2Vzc29yX2ZmaF9jc3RhdGVfZW50ZXIoc3RydWN0IGFjcGlf
cHJvY2Vzc29yX2N4ICpjeCkKQEAgLTkwMSw3ICs4NjMsNyBAQCB2b2lkIGNm
X2NoZWNrIGFjcGlfZGVhZF9pZGxlKHZvaWQpCiAKICAgICBpZiAoIGN4LT5l
bnRyeV9tZXRob2QgPT0gQUNQSV9DU1RBVEVfRU1fRkZIICkKICAgICB7Ci0g
ICAgICAgIHZvaWQgKm13YWl0X3B0ciA9ICZtd2FpdF93YWtldXAoc21wX3By
b2Nlc3Nvcl9pZCgpKTsKKyAgICAgICAgdm9pZCAqbXdhaXRfcHRyID0gJnNv
ZnRpcnFfcGVuZGluZyhzbXBfcHJvY2Vzc29yX2lkKCkpOwogCiAgICAgICAg
IC8qCiAgICAgICAgICAqIENhY2hlIG11c3QgYmUgZmx1c2hlZCBhcyB0aGUg
bGFzdCBvcGVyYXRpb24gYmVmb3JlIHNsZWVwaW5nLgpkaWZmIC0tZ2l0IGEv
eGVuL2FyY2gveDg2L2hwZXQuYyBiL3hlbi9hcmNoL3g4Ni9ocGV0LmMKaW5k
ZXggNTFmZjdmMTJmNWMwLi45MjkwY2Y3YTQyYTAgMTAwNjQ0Ci0tLSBhL3hl
bi9hcmNoL3g4Ni9ocGV0LmMKKysrIGIveGVuL2FyY2gveDg2L2hwZXQuYwpA
QCAtMTg4LDggKzE4OCw2IEBAIHN0YXRpYyB2b2lkIGV2dF9kb19icm9hZGNh
c3QoY3B1bWFza190ICptYXNrKQogICAgIGlmICggX19jcHVtYXNrX3Rlc3Rf
YW5kX2NsZWFyX2NwdShjcHUsIG1hc2spICkKICAgICAgICAgcmFpc2Vfc29m
dGlycShUSU1FUl9TT0ZUSVJRKTsKIAotICAgIGNwdWlkbGVfd2FrZXVwX213
YWl0KG1hc2spOwotCiAgICAgaWYgKCAhY3B1bWFza19lbXB0eShtYXNrKSAp
CiAgICAgICAgY3B1bWFza19yYWlzZV9zb2Z0aXJxKG1hc2ssIFRJTUVSX1NP
RlRJUlEpOwogfQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL2hhcmRpcnEuaCBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9oYXJk
aXJxLmgKaW5kZXggMzQyMzYxY2I2ZmRkLi5mM2U5M2NjOWI1MDcgMTAwNjQ0
Ci0tLSBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9oYXJkaXJxLmgKKysr
IGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2hhcmRpcnEuaApAQCAtNSwx
MSArNSwxMCBAQAogI2luY2x1ZGUgPHhlbi90eXBlcy5oPgogCiB0eXBlZGVm
IHN0cnVjdCB7Ci0JdW5zaWduZWQgaW50IF9fc29mdGlycV9wZW5kaW5nOwot
CXVuc2lnbmVkIGludCBfX2xvY2FsX2lycV9jb3VudDsKLQl1bnNpZ25lZCBp
bnQgbm1pX2NvdW50OwotCXVuc2lnbmVkIGludCBtY2VfY291bnQ7Ci0JYm9v
bCBfX213YWl0X3dha2V1cDsKKyAgICB1bnNpZ25lZCBpbnQgX19zb2Z0aXJx
X3BlbmRpbmc7CisgICAgdW5zaWduZWQgaW50IF9fbG9jYWxfaXJxX2NvdW50
OworICAgIHVuc2lnbmVkIGludCBubWlfY291bnQ7CisgICAgdW5zaWduZWQg
aW50IG1jZV9jb3VudDsKIH0gX19jYWNoZWxpbmVfYWxpZ25lZCBpcnFfY3B1
c3RhdF90OwogCiAjaW5jbHVkZSA8eGVuL2lycV9jcHVzdGF0Lmg+CS8qIFN0
YW5kYXJkIG1hcHBpbmdzIGZvciBpcnFfY3B1c3RhdF90IGFib3ZlICovCmRp
ZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vY3B1aWRsZS5oIGIveGVuL2lu
Y2x1ZGUveGVuL2NwdWlkbGUuaAppbmRleCA3MDVkMGMxMTM1ZjAuLjEyMGUz
NTRmZTM0MCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL2NwdWlkbGUu
aAorKysgYi94ZW4vaW5jbHVkZS94ZW4vY3B1aWRsZS5oCkBAIC05Miw4ICs5
Miw2IEBAIGV4dGVybiBzdHJ1Y3QgY3B1aWRsZV9nb3Zlcm5vciAqY3B1aWRs
ZV9jdXJyZW50X2dvdmVybm9yOwogYm9vbCBjcHVpZGxlX3VzaW5nX2RlZXBf
Y3N0YXRlKHZvaWQpOwogdm9pZCBjcHVpZGxlX2Rpc2FibGVfZGVlcF9jc3Rh
dGUodm9pZCk7CiAKLWV4dGVybiB2b2lkIGNwdWlkbGVfd2FrZXVwX213YWl0
KGNwdW1hc2tfdCAqbWFzayk7Ci0KICNkZWZpbmUgQ1BVSURMRV9EUklWRVJf
U1RBVEVfU1RBUlQgIDEKIAogZXh0ZXJuIHZvaWQgbWVudV9nZXRfdHJhY2Vf
ZGF0YSh1MzIgKmV4cGVjdGVkLCB1MzIgKnByZWQpOwpkaWZmIC0tZ2l0IGEv
eGVuL2luY2x1ZGUveGVuL2lycV9jcHVzdGF0LmggYi94ZW4vaW5jbHVkZS94
ZW4vaXJxX2NwdXN0YXQuaAppbmRleCBiOTYyOWYyNWMyNjYuLjVmMDM5YjRi
OWE3NiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL2lycV9jcHVzdGF0
LmgKKysrIGIveGVuL2luY2x1ZGUveGVuL2lycV9jcHVzdGF0LmgKQEAgLTI0
LDYgKzI0LDUgQEAgZXh0ZXJuIGlycV9jcHVzdGF0X3QgaXJxX3N0YXRbXTsK
ICAgLyogYXJjaCBpbmRlcGVuZGVudCBpcnFfc3RhdCBmaWVsZHMgKi8KICNk
ZWZpbmUgc29mdGlycV9wZW5kaW5nKGNwdSkJX19JUlFfU1RBVCgoY3B1KSwg
X19zb2Z0aXJxX3BlbmRpbmcpCiAjZGVmaW5lIGxvY2FsX2lycV9jb3VudChj
cHUpCV9fSVJRX1NUQVQoKGNwdSksIF9fbG9jYWxfaXJxX2NvdW50KQotI2Rl
ZmluZSBtd2FpdF93YWtldXAoY3B1KQlfX0lSUV9TVEFUKChjcHUpLCBfX213
YWl0X3dha2V1cCkKIAogI2VuZGlmCS8qIF9faXJxX2NwdXN0YXRfaCAqLwo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.20-06.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.20-06.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDE4OjEzOjI3ICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBEcm9wIGluY29ycmVjdCBzbXBfbWIoKSBpbiBtd2Fp
dF9pZGxlX3dpdGhfaGludHMoKQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50
LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFu
c2Zlci1FbmNvZGluZzogOGJpdAoKV2l0aCB0aGUgcmVjZW50IHNpbXBsaWZp
Y2F0aW9ucywgaXQgYmVjb21lcyBvYnZpb3VzIHRoYXQgc21wX21iKCkgaXNu
J3QgdGhlCnJpZ2h0IGJhcnJpZXIuICBTdHJpY3RseSBzcGVha2luZywgTU9O
SVRPUiBpcyBvcmRlcmVkIGFzIGEgbG9hZCwgYnV0IHNtcF9ybWIoKQppc24n
dCBjb3JyZWN0IGVpdGhlciwgYXMgdGhpcyBvbmx5IHBlcnRhaW5zIHRvIGxv
Y2FsIG9yZGVyaW5nLiAgQWxsIHdlIG5lZWQgaXMKYSBjb21waWxlciBiYXJy
aWVyKCkuCgpNZXJnZSB0aGUgYmFyaWVyKCkgaW50byB0aGUgbW9uaXRvcigp
IGl0c2VsZiwgYWxvbmcgd2l0aCBhbiBleHBsYW50aW9uLgoKTm8gZnVuY3Rp
b25hbCBjaGFuZ2UuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxh
bmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpBY2tlZC1ieTogUm9nZXIgUGF1
IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CihjaGVycnkgcGlja2Vk
IGZyb20gY29tbWl0IGU3NzEwZGQ4NDNiYTlkMjA0ZjZlZTI5NzNkNjEyMGMx
OTg0OTU4YTYpCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2FjcGkvY3B1
X2lkbGUuYyBiL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKaW5kZXgg
MzEwMWQ1Y2UyMzBkLi5kZmE2YjkzMDcwZGMgMTAwNjQ0Ci0tLSBhL3hlbi9h
cmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKKysrIGIveGVuL2FyY2gveDg2L2Fj
cGkvY3B1X2lkbGUuYwpAQCAtNjYsOCArNjYsMTIgQEAgc3RhdGljIGFsd2F5
c19pbmxpbmUgdm9pZCBtb25pdG9yKAogICAgIGFsdGVybmF0aXZlX2lucHV0
KCIiLCAiY2xmbHVzaCAoJVthZGRyXSkiLCBYODZfQlVHX0NMRkxVU0hfTU9O
SVRPUiwKICAgICAgICAgICAgICAgICAgICAgICBbYWRkcl0gImEiIChhZGRy
KSk7CiAKKyAgICAvKgorICAgICAqIFRoZSBtZW1vcnkgY2xvYmJlciBpcyBh
IGNvbXBpbGVyIGJhcnJpZXIuICBTdWJzZXFldW50IHJlYWRzIGZyb20gdGhl
CisgICAgICogbW9uaXRvcmVkIGNhY2hlbGluZSBtdXN0IG5vdCBiZSByZW9y
ZGVyZWQgb3ZlciBNT05JVE9SLgorICAgICAqLwogICAgIGFzbSB2b2xhdGls
ZSAoICJtb25pdG9yIgotICAgICAgICAgICAgICAgICAgIDo6ICJhIiAoYWRk
ciksICJjIiAoZWN4KSwgImQiIChlZHgpICk7CisgICAgICAgICAgICAgICAg
ICAgOjogImEiIChhZGRyKSwgImMiIChlY3gpLCAiZCIgKGVkeCkgOiAibWVt
b3J5IiApOwogfQogCiBzdGF0aWMgYWx3YXlzX2lubGluZSB2b2lkIG13YWl0
KHVuc2lnbmVkIGludCBlYXgsIHVuc2lnbmVkIGludCBlY3gpCkBAIC00NTMs
NyArNDU3LDYgQEAgdm9pZCBtd2FpdF9pZGxlX3dpdGhfaGludHModW5zaWdu
ZWQgaW50IGVheCwgdW5zaWduZWQgaW50IGVjeCkKICAgICBjb25zdCB1bnNp
Z25lZCBpbnQgKnRoaXNfc29mdGlycV9wZW5kaW5nID0gJnNvZnRpcnFfcGVu
ZGluZyhjcHUpOwogCiAgICAgbW9uaXRvcih0aGlzX3NvZnRpcnFfcGVuZGlu
ZywgMCwgMCk7Ci0gICAgc21wX21iKCk7CiAKICAgICBpZiAoICEqdGhpc19z
b2Z0aXJxX3BlbmRpbmcgKQogICAgIHsK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.20-07.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.20-07.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDIxOjQwOjUxICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBDb252ZXJ0IGZvcmNlX213YWl0X2lwaV93YWtldXAg
dG8gWDg2X0JVR19NT05JVE9SCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQt
VHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5z
ZmVyLUVuY29kaW5nOiA4Yml0CgpXZSdyZSBnb2luZyB0byB3YW50IGFsdGVy
bmF0aXZlLXBhdGNoIGJhc2VkIG9uIGl0LgoKTm8gZnVuY3Rpb25hbCBjaGFu
Z2UuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29v
cGVyM0BjaXRyaXguY29tPgpBY2tlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8
cm9nZXIucGF1QGNpdHJpeC5jb20+CihjaGVycnkgcGlja2VkIGZyb20gY29t
bWl0IGIwY2EwZjkzZjQ3YzQzZjg5ODQ5ODExMzdhZjA3Y2EzZDE2MWUzZWMp
CgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYyBi
L3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKaW5kZXggZGZhNmI5MzA3
MGRjLi40YjhmYjQ2OTM4MWMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9h
Y3BpL2NwdV9pZGxlLmMKKysrIGIveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lk
bGUuYwpAQCAtNDQwLDE0ICs0NDAsOCBAQCBzdGF0aWMgaW50IF9faW5pdCBj
Zl9jaGVjayBjcHVfaWRsZV9rZXlfaW5pdCh2b2lkKQogfQogX19pbml0Y2Fs
bChjcHVfaWRsZV9rZXlfaW5pdCk7CiAKLS8qIEZvcmNlIHNlbmRpbmcgb2Yg
YSB3YWtldXAgSVBJIHJlZ2FyZGxlc3Mgb2YgbXdhaXQgdXNhZ2UuICovCi1i
b29sIF9fcm9fYWZ0ZXJfaW5pdCBmb3JjZV9td2FpdF9pcGlfd2FrZXVwOwot
CiBib29sIGFyY2hfc2tpcF9zZW5kX2V2ZW50X2NoZWNrKHVuc2lnbmVkIGlu
dCBjcHUpCiB7Ci0gICAgaWYgKCBmb3JjZV9td2FpdF9pcGlfd2FrZXVwICkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotCiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1L2ludGVsLmMgYi94
ZW4vYXJjaC94ODYvY3B1L2ludGVsLmMKaW5kZXggOWY4MTE1MDA4YjY3Li45
OGYxZGIyMzQ5MTUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvaW50
ZWwuYworKysgYi94ZW4vYXJjaC94ODYvY3B1L2ludGVsLmMKQEAgLTQzNiw3
ICs0MzYsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgcHJvYmVfbXdhaXRfZXJy
YXRhKHZvaWQpCiAgICAgewogICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5J
TkcKICAgICAgICAgICAgICAgICJGb3JjaW5nIElQSSBNV0FJVCB3YWtldXAg
ZHVlIHRvIENQVSBlcnJhdHVtXG4iKTsKLSAgICAgICAgZm9yY2VfbXdhaXRf
aXBpX3dha2V1cCA9IHRydWU7CisgICAgICAgIHNldHVwX2ZvcmNlX2NwdV9j
YXAoWDg2X0JVR19NT05JVE9SKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBh
L3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlcy5oIGIveGVu
L2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmVzLmgKaW5kZXggODRj
OTMyOTJjODBjLi41NjIzMWIwMGYxNWQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlcy5oCisrKyBiL3hlbi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlcy5oCkBAIC01Myw2ICs1Myw3
IEBAIFhFTl9DUFVGRUFUVVJFKFVTRV9WTUNBTEwsICAgICAgICBYODZfU1lO
VEgoMzApKSAvKiBVc2UgVk1DQUxMIGluc3RlYWQgb2YgVk1NQ0FMCiAjZGVm
aW5lIFg4Nl9CVUdfQ0xGTFVTSF9NRkVOQ0UgICAgWDg2X0JVRyggMikgLyog
TUZFTkNFIG5lZWRlZCB0byBzZXJpYWxpc2UgQ0xGTFVTSCAqLwogI2RlZmlu
ZSBYODZfQlVHX0lCUEJfTk9fUkVUICAgICAgIFg4Nl9CVUcoIDMpIC8qIElC
UEIgZG9lc24ndCBmbHVzaCB0aGUgUlNCL1JBUyAqLwogI2RlZmluZSBYODZf
QlVHX0NMRkxVU0hfTU9OSVRPUiAgIFg4Nl9CVUcoIDQpIC8qIE1PTklUT1Ig
cmVxdWlyZXMgQ0xGTFVTSCAqLworI2RlZmluZSBYODZfQlVHX01PTklUT1Ig
ICAgICAgICAgIFg4Nl9CVUcoIDUpIC8qIE1PTklUT1IgZG9lc24ndCBhbHdh
eXMgbm90aWNlIHdyaXRlcyAoZm9yY2UgSVBJcykgKi8KIAogI2RlZmluZSBY
ODZfU1BFQ19OT19MRkVOQ0VfRU5UUllfUFYgWDg2X0JVRygxNikgLyogKE5v
KSBzYWZldHkgTEZFTkNFIGZvciBTUEVDX0NUUkxfRU5UUllfUFYuICovCiAj
ZGVmaW5lIFg4Nl9TUEVDX05PX0xGRU5DRV9FTlRSWV9JTlRSIFg4Nl9CVUco
MTcpIC8qIChObykgc2FmZXR5IExGRU5DRSBmb3IgU1BFQ19DVFJMX0VOVFJZ
X0lOVFIuICovCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9h
c20vbXdhaXQuaCBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9td2FpdC5o
CmluZGV4IGM1MmNkM2Y1MTAxMS4uMDAwYTY5MmY2ZDE5IDEwMDY0NAotLS0g
YS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vbXdhaXQuaAorKysgYi94ZW4v
YXJjaC94ODYvaW5jbHVkZS9hc20vbXdhaXQuaApAQCAtMTMsOSArMTMsNiBA
QAogCiAjZGVmaW5lIE1XQUlUX0VDWF9JTlRFUlJVUFRfQlJFQUsJMHgxCiAK
LS8qIEZvcmNlIHNlbmRpbmcgb2YgYSB3YWtldXAgSVBJIHJlZ2FyZGxlc3Mg
b2YgbXdhaXQgdXNhZ2UuICovCi1leHRlcm4gYm9vbCBmb3JjZV9td2FpdF9p
cGlfd2FrZXVwOwotCiB2b2lkIG13YWl0X2lkbGVfd2l0aF9oaW50cyh1bnNp
Z25lZCBpbnQgZWF4LCB1bnNpZ25lZCBpbnQgZWN4KTsKICNpZmRlZiBDT05G
SUdfSU5URUwKIGJvb2wgbXdhaXRfcGMxMF9zdXBwb3J0ZWQodm9pZCk7Cg==

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.20-08.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.20-08.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDIxOjA0OjE3ICswMTAwClN1Ympl
Y3Q6IHhlbi9zb2Z0aXJxOiBSZXdvcmsgYXJjaF9za2lwX3NlbmRfZXZlbnRf
Y2hlY2soKSBpbnRvCiBhcmNoX3NldF9zb2Z0aXJxKCkKTUlNRS1WZXJzaW9u
OiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04
CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKCng4NiBpcyB0aGUg
b25seSBhcmNoaXRlY3R1cmUgd2FudGluZyBhbiBvcHRpbWlzYXRpb24gaGVy
ZSwgYnV0IHRoZQp0ZXN0X2FuZF9zZXRfYml0KCkgaXMgYSBzdG9yZSBpbnRv
IHRoZSBtb25pdG9yZWQgbGluZSAoaS5lLiB3aWxsIHdha2UgdXAgdGhlCnRh
cmdldCkgYW5kLCBwcmlvciB0byB0aGUgcmVtb3ZhbCBvZiB0aGUgYnJva2Vu
IElQSS1lbGlzaW9uIGFsZ29yaXRobSwgd2FzCnJhY3ksIGNhdXNpbmcgdW5u
ZWNlc3NhcnkgSVBJcyB0byBiZSBzZW50LgoKVG8gZG8gdGhpcyBpbiBhIHJh
Y2UtZnJlZSB3YXksIHRoZSBzdG9yZSB0byB0aGUgbW9uaXRlZCBsaW5lIG5l
ZWRzIHRvIGFsc28Kc2FtcGxlIHRoZSBzdGF0dXMgb2YgdGhlIHRhcmdldCBp
biBvbmUgYXRvbWljIGFjdGlvbi4gIEltcGxlbWVudCBhIG5ldyBhcmNoCmhl
bHBlciB3aXRoIGRpZmZlcmVudCBzZW1hbnRpY3M7IHRvIG1ha2UgdGhlIHNv
ZnRpcnEgcGVuZGluZyBhbmQgZGVjaWRlIGFib3V0CklQSXMgdG9nZXRoZXIu
ICBGb3Igbm93LCBpbXBsZW1lbnQgdGhlIGRlZmF1bHQgaGVscGVyLiAgSXQg
d2lsbCBiZSBvdmVycmlkZGVuCmJ5IHg4NiBpbiBhIHN1YnNlcXVlbnQgY2hh
bmdlLgoKTm8gZnVuY3Rpb25hbCBjaGFuZ2UuCgpTaWduZWQtb2ZmLWJ5OiBB
bmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpSZXZp
ZXdlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5j
b20+CihjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IGI0NzNlNWUyMTJlNDQ1
ZDNjMTkzYzFjODNiNTJiMTI5YWY1NzFiMTkpCgpkaWZmIC0tZ2l0IGEveGVu
L2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYyBiL3hlbi9hcmNoL3g4Ni9hY3Bp
L2NwdV9pZGxlLmMKaW5kZXggNGI4ZmI0NjkzODFjLi5lNDY3OWE0NWI1YTYg
MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKKysr
IGIveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYwpAQCAtNDQwLDExICs0
NDAsNiBAQCBzdGF0aWMgaW50IF9faW5pdCBjZl9jaGVjayBjcHVfaWRsZV9r
ZXlfaW5pdCh2b2lkKQogfQogX19pbml0Y2FsbChjcHVfaWRsZV9rZXlfaW5p
dCk7CiAKLWJvb2wgYXJjaF9za2lwX3NlbmRfZXZlbnRfY2hlY2sodW5zaWdu
ZWQgaW50IGNwdSkKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KIHZvaWQg
bXdhaXRfaWRsZV93aXRoX2hpbnRzKHVuc2lnbmVkIGludCBlYXgsIHVuc2ln
bmVkIGludCBlY3gpCiB7CiAgICAgdW5zaWduZWQgaW50IGNwdSA9IHNtcF9w
cm9jZXNzb3JfaWQoKTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9pbmNs
dWRlL2FzbS9zb2Z0aXJxLmggYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20v
c29mdGlycS5oCmluZGV4IDQxNWVlODY2Yzc5ZC4uZTRiMTk0ZjA2OWZiIDEw
MDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vc29mdGlycS5o
CisrKyBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zb2Z0aXJxLmgKQEAg
LTksNiArOSw0IEBACiAjZGVmaW5lIEhWTV9EUENJX1NPRlRJUlEgICAgICAg
KE5SX0NPTU1PTl9TT0ZUSVJRUyArIDQpCiAjZGVmaW5lIE5SX0FSQ0hfU09G
VElSUVMgICAgICAgNQogCi1ib29sIGFyY2hfc2tpcF9zZW5kX2V2ZW50X2No
ZWNrKHVuc2lnbmVkIGludCBjcHUpOwotCiAjZW5kaWYgLyogX19BU01fU09G
VElSUV9IX18gKi8KZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vc29mdGlycS5j
IGIveGVuL2NvbW1vbi9zb2Z0aXJxLmMKaW5kZXggNjBmMzQ0ZTg0MjVlLi5k
YzNhYWJjZTMzMzAgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vc29mdGlycS5j
CisrKyBiL3hlbi9jb21tb24vc29mdGlycS5jCkBAIC05NCw5ICs5NCw3IEBA
IHZvaWQgY3B1bWFza19yYWlzZV9zb2Z0aXJxKGNvbnN0IGNwdW1hc2tfdCAq
bWFzaywgdW5zaWduZWQgaW50IG5yKQogICAgICAgICByYWlzZV9tYXNrID0g
JnBlcl9jcHUoYmF0Y2hfbWFzaywgdGhpc19jcHUpOwogCiAgICAgZm9yX2Vh
Y2hfY3B1KGNwdSwgbWFzaykKLSAgICAgICAgaWYgKCAhdGVzdF9hbmRfc2V0
X2JpdChuciwgJnNvZnRpcnFfcGVuZGluZyhjcHUpKSAmJgotICAgICAgICAg
ICAgIGNwdSAhPSB0aGlzX2NwdSAmJgotICAgICAgICAgICAgICFhcmNoX3Nr
aXBfc2VuZF9ldmVudF9jaGVjayhjcHUpICkKKyAgICAgICAgaWYgKCAhYXJj
aF9zZXRfc29mdGlycShuciwgY3B1KSAmJiBjcHUgIT0gdGhpc19jcHUgKQog
ICAgICAgICAgICAgX19jcHVtYXNrX3NldF9jcHUoY3B1LCByYWlzZV9tYXNr
KTsKIAogICAgIGlmICggcmFpc2VfbWFzayA9PSAmc2VuZF9tYXNrICkKQEAg
LTEwNyw5ICsxMDUsNyBAQCB2b2lkIGNwdV9yYWlzZV9zb2Z0aXJxKHVuc2ln
bmVkIGludCBjcHUsIHVuc2lnbmVkIGludCBucikKIHsKICAgICB1bnNpZ25l
ZCBpbnQgdGhpc19jcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7CiAKLSAgICBp
ZiAoIHRlc3RfYW5kX3NldF9iaXQobnIsICZzb2Z0aXJxX3BlbmRpbmcoY3B1
KSkKLSAgICAgICAgIHx8IChjcHUgPT0gdGhpc19jcHUpCi0gICAgICAgICB8
fCBhcmNoX3NraXBfc2VuZF9ldmVudF9jaGVjayhjcHUpICkKKyAgICBpZiAo
IGFyY2hfc2V0X3NvZnRpcnEobnIsIGNwdSkgfHwgY3B1ID09IHRoaXNfY3B1
ICkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKCAhcGVyX2NwdShiYXRj
aGluZywgdGhpc19jcHUpIHx8IGluX2lycSgpICkKZGlmZiAtLWdpdCBhL3hl
bi9pbmNsdWRlL3hlbi9zb2Z0aXJxLmggYi94ZW4vaW5jbHVkZS94ZW4vc29m
dGlycS5oCmluZGV4IDMzZDZmMmVjZDIyMy4uNWMyMzYxODY1YjQ5IDEwMDY0
NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vc29mdGlycS5oCisrKyBiL3hlbi9p
bmNsdWRlL3hlbi9zb2Z0aXJxLmgKQEAgLTIxLDYgKzIxLDIyIEBAIGVudW0g
ewogCiAjZGVmaW5lIE5SX1NPRlRJUlFTIChOUl9DT01NT05fU09GVElSUVMg
KyBOUl9BUkNIX1NPRlRJUlFTKQogCisvKgorICogRW5zdXJlIHNvZnRpcnEg
QG5yIGlzIHBlbmRpbmcgb24gQGNwdS4gIFJldHVybiB0cnVlIGlmIGFuIElQ
SSBjYW4gYmUKKyAqIHNraXBwZWQsIGZhbHNlIGlmIHRoZSBJUEkgY2Fubm90
IGJlIHNraXBwZWQuCisgKi8KKyNpZm5kZWYgYXJjaF9zZXRfc29mdGlycQor
c3RhdGljIGFsd2F5c19pbmxpbmUgYm9vbCBhcmNoX3NldF9zb2Z0aXJxKHVu
c2lnbmVkIGludCBuciwgdW5zaWduZWQgaW50IGNwdSkKK3sKKyAgICAvKgor
ICAgICAqIFRyeSB0byBzZXQgdGhlIHNvZnRpcnEgcGVuZGluZy4gIElmIHdl
IHNldCB0aGUgYml0IChpLmUuIHRoZSBvbGQgYml0CisgICAgICogd2FzIDAp
LCB3ZSdyZSByZXNwb25zaWJsZSB0byBzZW5kIHRoZSBJUEkuICBJZiB0aGUg
c29mdGlycSB3YXMgYWxyZWFkeQorICAgICAqIHBlbmRpbmcgKGkuZS4gdGhl
IG9sZCBiaXQgd2FzIDEpLCBubyBJUEkgaXMgbmVlZGVkLgorICAgICAqLwor
ICAgIHJldHVybiB0ZXN0X2FuZF9zZXRfYml0KG5yLCAmc29mdGlycV9wZW5k
aW5nKGNwdSkpOworfQorI2VuZGlmCisKIHR5cGVkZWYgdm9pZCAoKnNvZnRp
cnFfaGFuZGxlcikodm9pZCk7CiAKIHZvaWQgZG9fc29mdGlycSh2b2lkKTsK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.20-09.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.20-09.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxIEp1bCAyMDI1IDIxOjI2OjI0ICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBJbXBsZW1lbnQgYSBuZXcgTVdBSVQgSVBJLWVsaXNp
b24gYWxnb3JpdGhtCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTog
dGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVu
Y29kaW5nOiA4Yml0CgpJbiBvcmRlciBlbGlkZSBJUElzLCB3ZSBtdXN0IGJl
IGFibGUgdG8gaWRlbnRpZnkgd2hldGhlciBhIHRhcmdldCBDUFUgaXMgaW4K
TVdBSVQgYXQgdGhlIHBvaW50IGl0IGlzIHdva2VuIHVwLiAgaS5lLiB0aGUg
c3RvcmUgdG8gd2FrZSBpdCB1cCBtdXN0IGFsc28KaWRlbnRpZnkgdGhlIHN0
YXRlLgoKQ3JlYXRlIGEgbmV3IGluX213YWl0IHZhcmlhYmxlIGJlc2lkZSBf
X3NvZnRpcnFfcGVuZGluZywgc28gd2UgY2FuIHVzZSBhCkNNUFhDSEcgdG8g
c2V0IHRoZSBzb2Z0aXJxIHdoaWxlIGFsc28gb2JzZXJ2aW5nIHRoZSBzdGF0
dXMgc2FmZWx5LiAgSW1wbGVtZW50CmFuIHg4NiB2ZXJzaW9uIG9mIGFyY2hf
cGVuZF9zb2Z0aXJxKCkgd2hpY2ggZG9lcyB0aGlzLgoKSW4gbXdhaXRfaWRs
ZV93aXRoX2hpbnRzKCksIGFkdmVydGlzZSBpbl9td2FpdCwgd2l0aCBhbiBl
eHBsYW5hdGlvbiBvZgpwcmVjaXNlbHkgd2hhdCBpdCBtZWFucy4gIFg4Nl9C
VUdfTU9OSVRPUiBjYW4gYmUgYWNjb3VudGVkIGZvciBzaW1wbHkgYnkgbm90
CmFkdmVydGlzaW5nIGluX213YWl0LgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3
IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KQWNrZWQtYnk6
IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgooY2hl
cnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCAzZTBiYzRiNTAzNTBiZDM1NzMwNGZk
NzlhNWRjMDQ3Mjc5MGRiYTkxKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4
Ni9hY3BpL2NwdV9pZGxlLmMgYi94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRs
ZS5jCmluZGV4IGU0Njc5YTQ1YjVhNi4uMGQ2MjRiOWFlYmI2IDEwMDY0NAot
LS0gYS94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jCisrKyBiL3hlbi9h
cmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKQEAgLTQ0Myw3ICs0NDMsMjEgQEAg
X19pbml0Y2FsbChjcHVfaWRsZV9rZXlfaW5pdCk7CiB2b2lkIG13YWl0X2lk
bGVfd2l0aF9oaW50cyh1bnNpZ25lZCBpbnQgZWF4LCB1bnNpZ25lZCBpbnQg
ZWN4KQogewogICAgIHVuc2lnbmVkIGludCBjcHUgPSBzbXBfcHJvY2Vzc29y
X2lkKCk7Ci0gICAgY29uc3QgdW5zaWduZWQgaW50ICp0aGlzX3NvZnRpcnFf
cGVuZGluZyA9ICZzb2Z0aXJxX3BlbmRpbmcoY3B1KTsKKyAgICBpcnFfY3B1
c3RhdF90ICpzdGF0ID0gJmlycV9zdGF0W2NwdV07CisgICAgY29uc3QgdW5z
aWduZWQgaW50ICp0aGlzX3NvZnRpcnFfcGVuZGluZyA9ICZzdGF0LT5fX3Nv
ZnRpcnFfcGVuZGluZzsKKworICAgIC8qCisgICAgICogQnkgc2V0dGluZyBp
bl9td2FpdCwgd2UgcHJvbWlzZSB0byBvdGhlciBDUFVzIHRoYXQgd2UnbGwg
bm90aWNlIGNoYW5nZXMKKyAgICAgKiB0byBfX3NvZnRpcnFfcGVuZGluZyB3
aXRob3V0IGJlaW5nIHNlbnQgYW4gSVBJLiAgV2UgYWNoaWV2ZSB0aGlzIGJ5
CisgICAgICogZWl0aGVyIG5vdCBnb2luZyB0byBzbGVlcCwgb3IgYnkgaGF2
aW5nIGhhcmR3YXJlIG5vdGljZSBvbiBvdXIgYmVoYWxmLgorICAgICAqCisg
ICAgICogU29tZSBlcnJhdGEgZXhpc3Qgd2hlcmUgTU9OSVRPUiBkb2Vzbid0
IHdvcmsgcHJvcGVybHksIGFuZCB0aGUKKyAgICAgKiB3b3JrYXJvdW5kIGlz
IHRvIGZvcmNlIHRoZSB1c2Ugb2YgYW4gSVBJLiAgQ2F1c2UgdGhpcyB0byBo
YXBwZW4gYnkKKyAgICAgKiBzaW1wbHkgbm90IGFkdmVydGlzaW5nIG91cnNl
bHZlcyBhcyBiZWluZyBpbl9td2FpdC4KKyAgICAgKi8KKyAgICBhbHRlcm5h
dGl2ZV9pbygibW92YiAkMSwgJVtpbl9td2FpdF0iLAorICAgICAgICAgICAg
ICAgICAgICIiLCBYODZfQlVHX01PTklUT1IsCisgICAgICAgICAgICAgICAg
ICAgW2luX213YWl0XSAiPW0iIChzdGF0LT5pbl9td2FpdCkpOwogCiAgICAg
bW9uaXRvcih0aGlzX3NvZnRpcnFfcGVuZGluZywgMCwgMCk7CiAKQEAgLTQ1
NSw2ICs0NjksMTAgQEAgdm9pZCBtd2FpdF9pZGxlX3dpdGhfaGludHModW5z
aWduZWQgaW50IGVheCwgdW5zaWduZWQgaW50IGVjeCkKICAgICAgICAgbXdh
aXQoZWF4LCBlY3gpOwogICAgICAgICBzcGVjX2N0cmxfZXhpdF9pZGxlKGlu
Zm8pOwogICAgIH0KKworICAgIGFsdGVybmF0aXZlX2lvKCJtb3ZiICQwLCAl
W2luX213YWl0XSIsCisgICAgICAgICAgICAgICAgICAgIiIsIFg4Nl9CVUdf
TU9OSVRPUiwKKyAgICAgICAgICAgICAgICAgICBbaW5fbXdhaXRdICI9bSIg
KHN0YXQtPmluX213YWl0KSk7CiB9CiAKIHN0YXRpYyB2b2lkIGFjcGlfcHJv
Y2Vzc29yX2ZmaF9jc3RhdGVfZW50ZXIoc3RydWN0IGFjcGlfcHJvY2Vzc29y
X2N4ICpjeCkKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9oYXJkaXJxLmggYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaGFyZGly
cS5oCmluZGV4IGYzZTkzY2M5YjUwNy4uMTY0N2NmZjA0ZGM4IDEwMDY0NAot
LS0gYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaGFyZGlycS5oCisrKyBi
L3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9oYXJkaXJxLmgKQEAgLTUsNyAr
NSwxOSBAQAogI2luY2x1ZGUgPHhlbi90eXBlcy5oPgogCiB0eXBlZGVmIHN0
cnVjdCB7Ci0gICAgdW5zaWduZWQgaW50IF9fc29mdGlycV9wZW5kaW5nOwor
ICAgIC8qCisgICAgICogVGhlIGxheW91dCBpcyBpbXBvcnRhbnQuICBBbnkg
Q1BVIGNhbiBzZXQgYml0cyBpbiBfX3NvZnRpcnFfcGVuZGluZywKKyAgICAg
KiBidXQgaW5fbXdhaXQgaXMgYSBzdGF0dXMgYml0IG93bmVkIGJ5IHRoZSBD
UFUuICBzb2Z0aXJxX213YWl0X3JhdyBtdXN0CisgICAgICogY292ZXIgYm90
aCwgYW5kIG11c3QgYmUgaW4gYSBzaW5nbGUgY2FjaGVsaW5lLgorICAgICAq
LworICAgIHVuaW9uIHsKKyAgICAgICAgc3RydWN0IHsKKyAgICAgICAgICAg
IHVuc2lnbmVkIGludCBfX3NvZnRpcnFfcGVuZGluZzsKKyAgICAgICAgICAg
IGJvb2wgaW5fbXdhaXQ7CisgICAgICAgIH07CisgICAgICAgIHVpbnQ2NF90
IHNvZnRpcnFfbXdhaXRfcmF3OworICAgIH07CisKICAgICB1bnNpZ25lZCBp
bnQgX19sb2NhbF9pcnFfY291bnQ7CiAgICAgdW5zaWduZWQgaW50IG5taV9j
b3VudDsKICAgICB1bnNpZ25lZCBpbnQgbWNlX2NvdW50OwpkaWZmIC0tZ2l0
IGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NvZnRpcnEuaCBiL3hlbi9h
cmNoL3g4Ni9pbmNsdWRlL2FzbS9zb2Z0aXJxLmgKaW5kZXggZTRiMTk0ZjA2
OWZiLi41NWI2NWM5NzQ3YjEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9zb2Z0aXJxLmgKKysrIGIveGVuL2FyY2gveDg2L2luY2x1
ZGUvYXNtL3NvZnRpcnEuaApAQCAtMSw2ICsxLDggQEAKICNpZm5kZWYgX19B
U01fU09GVElSUV9IX18KICNkZWZpbmUgX19BU01fU09GVElSUV9IX18KIAor
I2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4KKwogI2RlZmluZSBOTUlfU09GVElS
USAgICAgICAgICAgIChOUl9DT01NT05fU09GVElSUVMgKyAwKQogI2RlZmlu
ZSBUSU1FX0NBTElCUkFURV9TT0ZUSVJRIChOUl9DT01NT05fU09GVElSUVMg
KyAxKQogI2RlZmluZSBWQ1BVX0tJQ0tfU09GVElSUSAgICAgIChOUl9DT01N
T05fU09GVElSUVMgKyAyKQpAQCAtOSw0ICsxMSw1MCBAQAogI2RlZmluZSBI
Vk1fRFBDSV9TT0ZUSVJRICAgICAgIChOUl9DT01NT05fU09GVElSUVMgKyA0
KQogI2RlZmluZSBOUl9BUkNIX1NPRlRJUlFTICAgICAgIDUKIAorLyoKKyAq
IEVuc3VyZSBzb2Z0aXJxIEBuciBpcyBwZW5kaW5nIG9uIEBjcHUuICBSZXR1
cm4gdHJ1ZSBpZiBhbiBJUEkgY2FuIGJlCisgKiBza2lwcGVkLCBmYWxzZSBp
ZiB0aGUgSVBJIGNhbm5vdCBiZSBza2lwcGVkLgorICoKKyAqIFdlIHVzZSBh
IENNUFhDSEcgY292ZXJpbmcgYm90aCBfX3NvZnRpcnFfcGVuZGluZyBhbmQg
aW5fbXdhaXQsIGluIG9yZGVyIHRvCisgKiBzZXQgc29mdGlycSBAbnIgd2hp
bGUgYWxzbyBvYnNlcnZpbmcgaW5fbXdhaXQgaW4gYSByYWNlLWZyZWUgd2F5
LgorICovCitzdGF0aWMgYWx3YXlzX2lubGluZSBib29sIGFyY2hfc2V0X3Nv
ZnRpcnEodW5zaWduZWQgaW50IG5yLCB1bnNpZ25lZCBpbnQgY3B1KQorewor
ICAgIHVpbnQ2NF90ICpwdHIgPSAmaXJxX3N0YXRbY3B1XS5zb2Z0aXJxX213
YWl0X3JhdzsKKyAgICB1aW50NjRfdCBwcmV2LCBvbGQsIG5ldzsKKyAgICB1
bnNpZ25lZCBpbnQgc29mdGlycSA9IDFVIDw8IG5yOworCisgICAgb2xkID0g
QUNDRVNTX09OQ0UoKnB0cik7CisKKyAgICBmb3IgKCA7OyApCisgICAgewor
ICAgICAgICBpZiAoIG9sZCAmIHNvZnRpcnEgKQorICAgICAgICAgICAgLyog
U29mdGlycSBhbHJlYWR5IHBlbmRpbmcsIG5vdGhpbmcgdG8gZG8uICovCisg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICBuZXcgPSBvbGQg
fCBzb2Z0aXJxOworCisgICAgICAgIHByZXYgPSBjbXB4Y2hnKHB0ciwgb2xk
LCBuZXcpOworICAgICAgICBpZiAoIHByZXYgPT0gb2xkICkKKyAgICAgICAg
ICAgIGJyZWFrOworCisgICAgICAgIG9sZCA9IHByZXY7CisgICAgfQorCisg
ICAgLyoKKyAgICAgKiBXZSBoYXZlIGNhdXNlZCB0aGUgc29mdGlycSB0byBi
ZWNvbWUgcGVuZGluZy4gIElmIGluX213YWl0IHdhcyBzZXQsIHRoZQorICAg
ICAqIHRhcmdldCBDUFUgd2lsbCBub3RpY2UgdGhlIG1vZGlmaWNhdGlvbiBh
bmQgYWN0IG9uIGl0LgorICAgICAqCisgICAgICogV2UgY2FuJ3QgYWNjZXNz
IHRoZSBpbl9td2FpdCBmaWVsZCBuaWNlbHksIHNvIHVzZSBzb21lIEJVSUxE
X0JVR19PTigpJ3MKKyAgICAgKiB0byBjcm9zcy1jaGVjayB0aGUgKDFVTCA8
PCAzMikgb3BlbmNvZGluZy4KKyAgICAgKi8KKyAgICBCVUlMRF9CVUdfT04o
c2l6ZW9mKGlycV9zdGF0WzBdLnNvZnRpcnFfbXdhaXRfcmF3KSAhPSA4KTsK
KyAgICBCVUlMRF9CVUdfT04oKG9mZnNldG9mKGlycV9jcHVzdGF0X3QsIGlu
X213YWl0KSAtCisgICAgICAgICAgICAgICAgICBvZmZzZXRvZihpcnFfY3B1
c3RhdF90LCBzb2Z0aXJxX213YWl0X3JhdykpICE9IDQpOworCisgICAgcmV0
dXJuIG5ldyAmICgxVUwgPDwgMzIpIC8qIGluX213YWl0ICovOworCit9Cisj
ZGVmaW5lIGFyY2hfc2V0X3NvZnRpcnEgYXJjaF9zZXRfc29mdGlycQorCiAj
ZW5kaWYgLyogX19BU01fU09GVElSUV9IX18gKi8K

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.20-10.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.20-10.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogV2VkLCAyIEp1bCAyMDI1IDE0OjUxOjM4ICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBGaXggYnVnZ3kgIng4Ni9td2FpdC1pZGxlOiBlbmFi
bGUgaW50ZXJydXB0cyBiZWZvcmUgQzEgb24KIFhlb25zIgoKVGhlIGNoZWNr
IG9mIHRoaXNfc29mdGlycV9wZW5kaW5nIG11c3QgYmUgcGVyZm9ybWVkIHdp
dGggaXJxcyBkaXNhYmxlZCwgYnV0CnRoaXMgcHJvcGVydHkgd2FzIGJyb2tl
biBieSBhbiBhdHRlbXB0IHRvIG9wdGltaXNlIGVudHJ5L2V4aXQgbGF0ZW5j
eS4KCkNvbW1pdCBjMjI3MjMzYWQ2NGMgaW4gTGludXggKHdoaWNoIHdlIGNv
cGllZCBpbnRvIFhlbikgd2FzIGZpeGVkIHVwIGJ5CmVkYzhmYzAxZjYwOCBp
biBMaW51eCwgd2hpY2ggd2UgaGF2ZSBzbyBmYXIgbWlzc2VkLgoKR29pbmcg
dG8gc2xlZXAgd2l0aG91dCB3YWtpbmcgb24gaW50ZXJydXB0cyBpcyBub25z
ZW5zaWNhbCBvdXRzaWRlIG9mCnBsYXlfZGVhZCgpLCBzbyBvdmVybG9hZCB0
aGlzIHRvIHNlbGVjdCBiZXR3ZWVuIHR3byBwb3NzaWJsZSBNV0FJVHMsIHRo
ZQpzZWNvbmQgdXNpbmcgdGhlIFNUSSBzaGFkb3cgdG8gY292ZXIgTVdBSVQg
Zm9yIGV4YWN0bHkgdGhlIHNhbWUgcmVhc29uIGFzIHdlCmRvIGluIHNhZmVf
aGFsdCgpLgoKRml4ZXM6IGIxN2UwZWM3MmVkZSAoIng4Ni9td2FpdC1pZGxl
OiBlbmFibGUgaW50ZXJydXB0cyBiZWZvcmUgQzEgb24gWGVvbnMiKQpTaWdu
ZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRy
aXguY29tPgpSZXZpZXdlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1
c2UuY29tPgooY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA5YjBmMGY2ZTIz
NTYxOGMyNzY0ZTkyNWI1OGM0YmZlNDEyNzMwY2VkKQoKZGlmZiAtLWdpdCBh
L3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMgYi94ZW4vYXJjaC94ODYv
YWNwaS9jcHVfaWRsZS5jCmluZGV4IDBkNjI0YjlhZWJiNi4uYzU4YTUxYTA5
ZjMzIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5j
CisrKyBiL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKQEAgLTgwLDYg
KzgwLDEzIEBAIHN0YXRpYyBhbHdheXNfaW5saW5lIHZvaWQgbXdhaXQodW5z
aWduZWQgaW50IGVheCwgdW5zaWduZWQgaW50IGVjeCkKICAgICAgICAgICAg
ICAgICAgICA6OiAiYSIgKGVheCksICJjIiAoZWN4KSApOwogfQogCitzdGF0
aWMgYWx3YXlzX2lubGluZSB2b2lkIHN0aV9td2FpdF9jbGkodW5zaWduZWQg
aW50IGVheCwgdW5zaWduZWQgaW50IGVjeCkKK3sKKyAgICAvKiBTVEkgc2hh
ZG93IGNvdmVycyBNV0FJVC4gKi8KKyAgICBhc20gdm9sYXRpbGUgKCAic3Rp
OyBtd2FpdDsgY2xpIgorICAgICAgICAgICAgICAgICAgIDo6ICJhIiAoZWF4
KSwgImMiIChlY3gpICk7Cit9CisKICNkZWZpbmUgR0VUX0hXX1JFU19JTl9O
Uyhtc3IsIHZhbCkgXAogICAgIGRvIHsgcmRtc3JsKG1zciwgdmFsKTsgdmFs
ID0gdHNjX3RpY2tzMm5zKHZhbCk7IH0gd2hpbGUoIDAgKQogI2RlZmluZSBH
RVRfTUM2X1JFUyh2YWwpICBHRVRfSFdfUkVTX0lOX05TKDB4NjY0LCB2YWwp
CkBAIC00NjEsMTIgKzQ2OCwxOSBAQCB2b2lkIG13YWl0X2lkbGVfd2l0aF9o
aW50cyh1bnNpZ25lZCBpbnQgZWF4LCB1bnNpZ25lZCBpbnQgZWN4KQogCiAg
ICAgbW9uaXRvcih0aGlzX3NvZnRpcnFfcGVuZGluZywgMCwgMCk7CiAKKyAg
ICBBU1NFUlQoIWxvY2FsX2lycV9pc19lbmFibGVkKCkpOworCiAgICAgaWYg
KCAhKnRoaXNfc29mdGlycV9wZW5kaW5nICkKICAgICB7CiAgICAgICAgIHN0
cnVjdCBjcHVfaW5mbyAqaW5mbyA9IGdldF9jcHVfaW5mbygpOwogCiAgICAg
ICAgIHNwZWNfY3RybF9lbnRlcl9pZGxlKGluZm8pOwotICAgICAgICBtd2Fp
dChlYXgsIGVjeCk7CisKKyAgICAgICAgaWYgKCBlY3ggJiBNV0FJVF9FQ1hf
SU5URVJSVVBUX0JSRUFLICkKKyAgICAgICAgICAgIG13YWl0KGVheCwgZWN4
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc3RpX213YWl0X2NsaShl
YXgsIGVjeCk7CisKICAgICAgICAgc3BlY19jdHJsX2V4aXRfaWRsZShpbmZv
KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9jcHUvbXdh
aXQtaWRsZS5jIGIveGVuL2FyY2gveDg2L2NwdS9td2FpdC1pZGxlLmMKaW5k
ZXggNWMxNmY1YWQzYTgyLi41ZTk4MDExYmZkMGMgMTAwNjQ0Ci0tLSBhL3hl
bi9hcmNoL3g4Ni9jcHUvbXdhaXQtaWRsZS5jCisrKyBiL3hlbi9hcmNoL3g4
Ni9jcHUvbXdhaXQtaWRsZS5jCkBAIC05NDYsMTIgKzk0Niw4IEBAIHN0YXRp
YyB2b2lkIGNmX2NoZWNrIG13YWl0X2lkbGUodm9pZCkKIAogCXVwZGF0ZV9s
YXN0X2N4X3N0YXQocG93ZXIsIGN4LCBiZWZvcmUpOwogCi0JaWYgKGN4LT5p
cnFfZW5hYmxlX2Vhcmx5KQotCQlsb2NhbF9pcnFfZW5hYmxlKCk7Ci0KLQlt
d2FpdF9pZGxlX3dpdGhfaGludHMoY3gtPmFkZHJlc3MsIE1XQUlUX0VDWF9J
TlRFUlJVUFRfQlJFQUspOwotCi0JbG9jYWxfaXJxX2Rpc2FibGUoKTsKKwlt
d2FpdF9pZGxlX3dpdGhfaGludHMoY3gtPmFkZHJlc3MsCisJCQkgICAgICBj
eC0+aXJxX2VuYWJsZV9lYXJseSA/IDAgOiBNV0FJVF9FQ1hfSU5URVJSVVBU
X0JSRUFLKTsKIAogCWFmdGVyID0gYWx0ZXJuYXRpdmVfY2FsbChjcHVpZGxl
X2dldF90aWNrKTsKIAo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.20-11.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.20-11.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogRnJpLCAyNyBKdW4gMjAyNSAxNzoxOToxOSArMDEwMApTdWJq
ZWN0OiB4ODYvY3B1LXBvbGljeTogUmVhcnJhbmdlIGd1ZXN0X2NvbW1vbl8q
X2ZlYXR1cmVfYWRqdXN0bWVudHMoKQoKVHVybiB0aGUgaWYoKXMgaW50byBz
d2l0Y2goKWVzLCBhcyB3ZSdyZSBnb2luZyB0byBuZWVkIEFNRCBzZWN0aW9u
cy4KCk1vdmUgdGhlIFJUTSBhZGp1c3RtZW50cyBpbnRvIHRoZSBJbnRlbCBz
ZWN0aW9uLCB3aGVyZSB0aGV5IG91Z2h0IHRvIGxpdmUuCgpObyBmdW5jdGlv
bmFsIGNoYW5nZS4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFu
ZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5OiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+CgpkaWZmIC0tZ2l0IGEveGVuL2Fy
Y2gveDg2L2NwdS1wb2xpY3kuYyBiL3hlbi9hcmNoL3g4Ni9jcHUtcG9saWN5
LmMKaW5kZXggYzNhYWFjODYxZDE1Li40N2VlMWZmNDc0NjAgMTAwNjQ0Ci0t
LSBhL3hlbi9hcmNoL3g4Ni9jcHUtcG9saWN5LmMKKysrIGIveGVuL2FyY2gv
eDg2L2NwdS1wb2xpY3kuYwpAQCAtNDE4LDggKzQxOCw5IEBAIHN0YXRpYyB2
b2lkIF9faW5pdCBndWVzdF9jb21tb25fZGVmYXVsdF9sZWF2ZXMoc3RydWN0
IGNwdV9wb2xpY3kgKnApCiAKIHN0YXRpYyB2b2lkIF9faW5pdCBndWVzdF9j
b21tb25fbWF4X2ZlYXR1cmVfYWRqdXN0bWVudHModWludDMyX3QgKmZzKQog
ewotICAgIGlmICggYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yID09IFg4Nl9W
RU5ET1JfSU5URUwgKQorICAgIHN3aXRjaCAoIGJvb3RfY3B1X2RhdGEueDg2
X3ZlbmRvciApCiAgICAgeworICAgIGNhc2UgWDg2X1ZFTkRPUl9JTlRFTDoK
ICAgICAgICAgLyoKICAgICAgICAgICogTVNSX0FSQ0hfQ0FQUyBpcyBqdXN0
IGZlYXR1cmUgZGF0YSwgYW5kIHdlIGNhbiBvZmZlciBpdCB0byBndWVzdHMK
ICAgICAgICAgICogdW5jb25kaXRpb25hbGx5LCBhbHRob3VnaCBsaW1pdCBp
dCB0byBJbnRlbCBzeXN0ZW1zIGFzIGl0IGlzIGhpZ2hseQpAQCAtNDY0LDYg
KzQ2NSwyMiBAQCBzdGF0aWMgdm9pZCBfX2luaXQgZ3Vlc3RfY29tbW9uX21h
eF9mZWF0dXJlX2FkanVzdG1lbnRzKHVpbnQzMl90ICpmcykKICAgICAgICAg
ICAgICBib290X2NwdV9kYXRhLng4Nl9tb2RlbCA9PSBJTlRFTF9GQU02X1NL
WUxBS0VfWCAmJgogICAgICAgICAgICAgIHJhd19jcHVfcG9saWN5LmZlYXQu
Y2x3YiApCiAgICAgICAgICAgICBfX3NldF9iaXQoWDg2X0ZFQVRVUkVfQ0xX
QiwgZnMpOworCisgICAgICAgIC8qCisgICAgICAgICAqIFRvIG1pdGlnYXRl
IE5hdGl2ZS1CSEksIG9uZSBvcHRpb24gaXMgdG8gdXNlIGEgVFNYIEFib3J0
IG9uIGNhcGFibGUKKyAgICAgICAgICogc3lzdGVtcy4gIFRoaXMgaXMgc2Fm
ZSBldmVuIGlmIFJUTSBoYXMgYmVlbiBkaXNhYmxlZCBmb3Igb3RoZXIKKyAg
ICAgICAgICogcmVhc29ucyB2aWEgTVNSX1RTWF97Q1RSTCxGT1JDRV9BQk9S
VH0uICBIb3dldmVyLCBhIGd1ZXN0IGtlcm5lbAorICAgICAgICAgKiBkb2Vz
bid0IGdldCB0byBrbm93IHRoaXMgdHlwZSBvZiBpbmZvcm1hdGlvbi4KKyAg
ICAgICAgICoKKyAgICAgICAgICogVGhlcmVmb3JlIHRoZSBtZWFuaW5nIG9m
IFJUTV9BTFdBWVNfQUJPUlQgaGFzIGJlZW4gYWRqdXN0ZWQsIHRvCisgICAg
ICAgICAqIGluc3RlYWQgbWVhbiAiWEJFR0lOIHdvbid0IGZhdWx0Ii4gIFRo
aXMgaXMgZW5vdWdoIGZvciBhIGd1ZXN0CisgICAgICAgICAqIGtlcm5lbCB0
byBtYWtlIGFuIGluZm9ybWVkIGNob2ljZSBXUlQgbWl0aWdhdGluZyBOYXRp
dmUtQkhJLgorICAgICAgICAgKgorICAgICAgICAgKiBJZiBSVE0tY2FwYWJs
ZSwgd2UgY2FuIHJ1biBhIFZNIHdoaWNoIGhhcyBzZWVuIFJUTV9BTFdBWVNf
QUJPUlQuCisgICAgICAgICAqLworICAgICAgICBpZiAoIHRlc3RfYml0KFg4
Nl9GRUFUVVJFX1JUTSwgZnMpICkKKyAgICAgICAgICAgIF9fc2V0X2JpdChY
ODZfRkVBVFVSRV9SVE1fQUxXQVlTX0FCT1JULCBmcyk7CisgICAgICAgIGJy
ZWFrOwogICAgIH0KIAogICAgIC8qCkBAIC00NzUsMjcgKzQ5MiwxMyBAQCBz
dGF0aWMgdm9pZCBfX2luaXQgZ3Vlc3RfY29tbW9uX21heF9mZWF0dXJlX2Fk
anVzdG1lbnRzKHVpbnQzMl90ICpmcykKICAgICAgKi8KICAgICBfX3NldF9i
aXQoWDg2X0ZFQVRVUkVfSFRULCBmcyk7CiAgICAgX19zZXRfYml0KFg4Nl9G
RUFUVVJFX0NNUF9MRUdBQ1ksIGZzKTsKLQotICAgIC8qCi0gICAgICogVG8g
bWl0aWdhdGUgTmF0aXZlLUJISSwgb25lIG9wdGlvbiBpcyB0byB1c2UgYSBU
U1ggQWJvcnQgb24gY2FwYWJsZQotICAgICAqIHN5c3RlbXMuICBUaGlzIGlz
IHNhZmUgZXZlbiBpZiBSVE0gaGFzIGJlZW4gZGlzYWJsZWQgZm9yIG90aGVy
IHJlYXNvbnMKLSAgICAgKiB2aWEgTVNSX1RTWF97Q1RSTCxGT1JDRV9BQk9S
VH0uICBIb3dldmVyLCBhIGd1ZXN0IGtlcm5lbCBkb2Vzbid0IGdldCB0bwot
ICAgICAqIGtub3cgdGhpcyB0eXBlIG9mIGluZm9ybWF0aW9uLgotICAgICAq
Ci0gICAgICogVGhlcmVmb3JlIHRoZSBtZWFuaW5nIG9mIFJUTV9BTFdBWVNf
QUJPUlQgaGFzIGJlZW4gYWRqdXN0ZWQsIHRvIGluc3RlYWQKLSAgICAgKiBt
ZWFuICJYQkVHSU4gd29uJ3QgZmF1bHQiLiAgVGhpcyBpcyBlbm91Z2ggZm9y
IGEgZ3Vlc3Qga2VybmVsIHRvIG1ha2UKLSAgICAgKiBhbiBpbmZvcm1lZCBj
aG9pY2UgV1JUIG1pdGlnYXRpbmcgTmF0aXZlLUJISS4KLSAgICAgKgotICAg
ICAqIElmIFJUTS1jYXBhYmxlLCB3ZSBjYW4gcnVuIGEgVk0gd2hpY2ggaGFz
IHNlZW4gUlRNX0FMV0FZU19BQk9SVC4KLSAgICAgKi8KLSAgICBpZiAoIHRl
c3RfYml0KFg4Nl9GRUFUVVJFX1JUTSwgZnMpICkKLSAgICAgICAgX19zZXRf
Yml0KFg4Nl9GRUFUVVJFX1JUTV9BTFdBWVNfQUJPUlQsIGZzKTsKIH0KIAog
c3RhdGljIHZvaWQgX19pbml0IGd1ZXN0X2NvbW1vbl9kZWZhdWx0X2ZlYXR1
cmVfYWRqdXN0bWVudHModWludDMyX3QgKmZzKQogewotICAgIGlmICggYm9v
dF9jcHVfZGF0YS54ODZfdmVuZG9yID09IFg4Nl9WRU5ET1JfSU5URUwgKQor
ICAgIHN3aXRjaCAoIGJvb3RfY3B1X2RhdGEueDg2X3ZlbmRvciApCiAgICAg
eworICAgIGNhc2UgWDg2X1ZFTkRPUl9JTlRFTDoKICAgICAgICAgLyoKICAg
ICAgICAgICogSXZ5QnJpZGdlIGNsaWVudCBwYXJ0cyBzdWZmZXIgZnJvbSBs
ZWFrYWdlIG9mIFJEUkFORCBkYXRhIGR1ZSB0byBTUkJEUwogICAgICAgICAg
KiAoWFNBLTMyMCAvIENWRS0yMDIwLTA1NDMpLCBhbmQgd29uJ3QgYmUgcmVj
ZWl2aW5nIG1pY3JvY29kZSB0bwpAQCAtNTM5LDYgKzU0MiwyMyBAQCBzdGF0
aWMgdm9pZCBfX2luaXQgZ3Vlc3RfY29tbW9uX2RlZmF1bHRfZmVhdHVyZV9h
ZGp1c3RtZW50cyh1aW50MzJfdCAqZnMpCiAgICAgICAgICAgICAgYm9vdF9j
cHVfZGF0YS54ODZfbW9kZWwgPT0gSU5URUxfRkFNNl9TS1lMQUtFX1ggJiYK
ICAgICAgICAgICAgICByYXdfY3B1X3BvbGljeS5mZWF0LmNsd2IgKQogICAg
ICAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVfQ0xXQiwgZnMpOwor
CisgICAgICAgIC8qCisgICAgICAgICAqIE9uIGNlcnRhaW4gaGFyZHdhcmUs
IHNwZWN1bGF0aXZlIG9yIGVycmF0YSB3b3JrYXJvdW5kcyBjYW4gcmVzdWx0
CisgICAgICAgICAqIGluIFRTWCBiZWluZyBwbGFjZWQgaW4gImZvcmNlLWFi
b3J0IiBtb2RlLCB3aGVyZSBpdCBkb2Vzbid0CisgICAgICAgICAqIGFjdHVh
bGx5IGZ1bmN0aW9uIGFzIGV4cGVjdGVkLCBidXQgaXMgdGVjaG5pY2FsbHkg
Y29tcGF0aWJsZSB3aXRoCisgICAgICAgICAqIHRoZSBJU0EuCisgICAgICAg
ICAqCisgICAgICAgICAqIERvIG5vdCBhZHZlcnRpc2UgUlRNIHRvIGd1ZXN0
cyBieSBkZWZhdWx0IGlmIGl0IHdvbid0IGFjdHVhbGx5CisgICAgICAgICAq
IHdvcmsuICBJbnN0ZWFkLCBhZHZlcnRpc2UgUlRNX0FMV0FZU19BQk9SVCBp
bmRpY2F0aW5nIHRoYXQgVFNYCisgICAgICAgICAqIEFib3J0cyBhcmUgc2Fm
ZSB0byB1c2UsIGUuZy4gZm9yIG1pdGlnYXRpbmcgTmF0aXZlLUJISS4KKyAg
ICAgICAgICovCisgICAgICAgIGlmICggcnRtX2Rpc2FibGVkICkKKyAgICAg
ICAgeworICAgICAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVfUlRN
LCBmcyk7CisgICAgICAgICAgICBfX3NldF9iaXQoWDg2X0ZFQVRVUkVfUlRN
X0FMV0FZU19BQk9SVCwgZnMpOworICAgICAgICB9CisgICAgICAgIGJyZWFr
OwogICAgIH0KIAogICAgIC8qCkBAIC01NTAsMjEgKzU3MCw2IEBAIHN0YXRp
YyB2b2lkIF9faW5pdCBndWVzdF9jb21tb25fZGVmYXVsdF9mZWF0dXJlX2Fk
anVzdG1lbnRzKHVpbnQzMl90ICpmcykKIAogICAgIGlmICggIWNwdV9oYXNf
Y21wX2xlZ2FjeSApCiAgICAgICAgIF9fY2xlYXJfYml0KFg4Nl9GRUFUVVJF
X0NNUF9MRUdBQ1ksIGZzKTsKLQotICAgIC8qCi0gICAgICogT24gY2VydGFp
biBoYXJkd2FyZSwgc3BlY3VsYXRpdmUgb3IgZXJyYXRhIHdvcmthcm91bmRz
IGNhbiByZXN1bHQgaW4KLSAgICAgKiBUU1ggYmVpbmcgcGxhY2VkIGluICJm
b3JjZS1hYm9ydCIgbW9kZSwgd2hlcmUgaXQgZG9lc24ndCBhY3R1YWxseQot
ICAgICAqIGZ1bmN0aW9uIGFzIGV4cGVjdGVkLCBidXQgaXMgdGVjaG5pY2Fs
bHkgY29tcGF0aWJsZSB3aXRoIHRoZSBJU0EuCi0gICAgICoKLSAgICAgKiBE
byBub3QgYWR2ZXJ0aXNlIFJUTSB0byBndWVzdHMgYnkgZGVmYXVsdCBpZiBp
dCB3b24ndCBhY3R1YWxseSB3b3JrLgotICAgICAqIEluc3RlYWQsIGFkdmVy
dGlzZSBSVE1fQUxXQVlTX0FCT1JUIGluZGljYXRpbmcgdGhhdCBUU1ggQWJv
cnRzIGFyZSBzYWZlCi0gICAgICogdG8gdXNlLCBlLmcuIGZvciBtaXRpZ2F0
aW5nIE5hdGl2ZS1CSEkuCi0gICAgICovCi0gICAgaWYgKCBydG1fZGlzYWJs
ZWQgKQotICAgIHsKLSAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVf
UlRNLCBmcyk7Ci0gICAgICAgIF9fc2V0X2JpdChYODZfRkVBVFVSRV9SVE1f
QUxXQVlTX0FCT1JULCBmcyk7Ci0gICAgfQogfQogCiBzdGF0aWMgdm9pZCBf
X2luaXQgZ3Vlc3RfY29tbW9uX2ZlYXR1cmVfYWRqdXN0bWVudHModWludDMy
X3QgKmZzKQo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.20-12.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.20-12.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVHVlLCAxMCBTZXAgMjAyNCAxOTo1NToxNSArMDEwMApTdWJq
ZWN0OiB4ODYvY3B1LXBvbGljeTogSW5mcmFzdHJ1Y3R1cmUgZm9yIENQVUlE
IGxlYWYgMHg4MDAwMDAyMS5lY3gKClNpZ25lZC1vZmYtYnk6IEFuZHJldyBD
b29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2VkLWJ5
OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CgpkaWZmIC0tZ2l0
IGEvdG9vbHMvbGlicy9saWdodC9saWJ4bF9jcHVpZC5jIGIvdG9vbHMvbGli
cy9saWdodC9saWJ4bF9jcHVpZC5jCmluZGV4IDA2M2ZlODZlYjcyZi4uZjcz
OGUxN2IxOWU0IDEwMDY0NAotLS0gYS90b29scy9saWJzL2xpZ2h0L2xpYnhs
X2NwdWlkLmMKKysrIGIvdG9vbHMvbGlicy9saWdodC9saWJ4bF9jcHVpZC5j
CkBAIC0zNDIsNiArMzQyLDcgQEAgaW50IGxpYnhsX2NwdWlkX3BhcnNlX2Nv
bmZpZyhsaWJ4bF9jcHVpZF9wb2xpY3lfbGlzdCAqcG9saWN5LCBjb25zdCBj
aGFyKiBzdHIpCiAgICAgICAgIENQVUlEX0VOVFJZKDB4MDAwMDAwMDcsICAx
LCBDUFVJRF9SRUdfRURYKSwKICAgICAgICAgTVNSX0VOVFJZKDB4MTBhLCBD
UFVJRF9SRUdfRUFYKSwKICAgICAgICAgTVNSX0VOVFJZKDB4MTBhLCBDUFVJ
RF9SRUdfRURYKSwKKyAgICAgICAgQ1BVSURfRU5UUlkoMHg4MDAwMDAyMSwg
TkEsIENQVUlEX1JFR19FQ1gpLAogI3VuZGVmIE1TUl9FTlRSWQogI3VuZGVm
IENQVUlEX0VOVFJZCiAgICAgfTsKZGlmZiAtLWdpdCBhL3Rvb2xzL21pc2Mv
eGVuLWNwdWlkLmMgYi90b29scy9taXNjL3hlbi1jcHVpZC5jCmluZGV4IDRj
NDU5MzUyOGRmZS4uOGUzNmI4ZTY5NjAwIDEwMDY0NAotLS0gYS90b29scy9t
aXNjL3hlbi1jcHVpZC5jCisrKyBiL3Rvb2xzL21pc2MveGVuLWNwdWlkLmMK
QEAgLTM3LDYgKzM3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB7CiAgICAg
eyAiQ1BVSUQgMHgwMDAwMDAwNzoxLmVkeCIsICAgICAiN2QxIiB9LAogICAg
IHsgIk1TUl9BUkNIX0NBUFMubG8iLCAgICAgICAgICJtMTBBbCIgfSwKICAg
ICB7ICJNU1JfQVJDSF9DQVBTLmhpIiwgICAgICAgICAibTEwQWgiIH0sCisg
ICAgeyAiQ1BVSUQgMHg4MDAwMDAyMS5lY3giLCAgICAgICJlMjFjIiB9LAog
fTsKIAogI2RlZmluZSBDT0xfQUxJR04gIjI0IgpkaWZmIC0tZ2l0IGEveGVu
L2FyY2gveDg2L2NwdS1wb2xpY3kuYyBiL3hlbi9hcmNoL3g4Ni9jcHUtcG9s
aWN5LmMKaW5kZXggNDdlZTFmZjQ3NDYwLi45ZDFmZjYyNjhkNzkgMTAwNjQ0
Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUtcG9saWN5LmMKKysrIGIveGVuL2Fy
Y2gveDg2L2NwdS1wb2xpY3kuYwpAQCAtMzMwLDcgKzMzMCw2IEBAIHN0YXRp
YyB2b2lkIHJlY2FsY3VsYXRlX21pc2Moc3RydWN0IGNwdV9wb2xpY3kgKnAp
CiAgICAgICAgIHAtPmV4dGQucmF3WzB4MWZdID0gRU1QVFlfTEVBRjsgLyog
U0VWICovCiAgICAgICAgIHAtPmV4dGQucmF3WzB4MjBdID0gRU1QVFlfTEVB
RjsgLyogUGxhdGZvcm0gUW9TICovCiAgICAgICAgIHAtPmV4dGQucmF3WzB4
MjFdLmIgPSAwOwotICAgICAgICBwLT5leHRkLnJhd1sweDIxXS5jID0gMDsK
ICAgICAgICAgcC0+ZXh0ZC5yYXdbMHgyMV0uZCA9IDA7CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9jcHUvY29t
bW9uLmMgYi94ZW4vYXJjaC94ODYvY3B1L2NvbW1vbi5jCmluZGV4IDA2N2Q4
NTViYWRmMC4uNGVhY2RhYWMwZjRmIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94
ODYvY3B1L2NvbW1vbi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9jcHUvY29tbW9u
LmMKQEAgLTQ3OCw3ICs0NzgsOSBAQCBzdGF0aWMgdm9pZCBnZW5lcmljX2lk
ZW50aWZ5KHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKIAlpZiAoYy0+ZXh0ZW5k
ZWRfY3B1aWRfbGV2ZWwgPj0gMHg4MDAwMDAwOCkKIAkJYy0+eDg2X2NhcGFi
aWxpdHlbRkVBVFVSRVNFVF9lOGJdID0gY3B1aWRfZWJ4KDB4ODAwMDAwMDgp
OwogCWlmIChjLT5leHRlbmRlZF9jcHVpZF9sZXZlbCA+PSAweDgwMDAwMDIx
KQotCQljLT54ODZfY2FwYWJpbGl0eVtGRUFUVVJFU0VUX2UyMWFdID0gY3B1
aWRfZWF4KDB4ODAwMDAwMjEpOworCQljcHVpZCgweDgwMDAwMDIxLAorCQkg
ICAgICAmYy0+eDg2X2NhcGFiaWxpdHlbRkVBVFVSRVNFVF9lMjFhXSwgJnRt
cCwKKwkJICAgICAgJmMtPng4Nl9jYXBhYmlsaXR5W0ZFQVRVUkVTRVRfZTIx
Y10sICZ0bXApOwogCiAJLyogSW50ZWwtZGVmaW5lZCBmbGFnczogbGV2ZWwg
MHgwMDAwMDAwNyAqLwogCWlmIChjLT5jcHVpZF9sZXZlbCA+PSA3KSB7CmRp
ZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC14ODYvY3B1ZmVh
dHVyZXNldC5oIGIveGVuL2luY2x1ZGUvcHVibGljL2FyY2gteDg2L2NwdWZl
YXR1cmVzZXQuaAppbmRleCAxMDQ2Mjc3MWU1MmQuLmNiOTI2NzgyYThmNyAx
MDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2FyY2gteDg2L2NwdWZl
YXR1cmVzZXQuaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC14ODYv
Y3B1ZmVhdHVyZXNldC5oCkBAIC0zODMsNiArMzgzLDggQEAgWEVOX0NQVUZF
QVRVUkUoUkZEU19DTEVBUiwgICAgICAgICAxNiozMisyOCkgLyohQXwgUmVn
aXN0ZXIgRmlsZShzKSBjbGVhcmVkIGJ5IFYKIFhFTl9DUFVGRUFUVVJFKFBC
X09QVF9DVFJMLCAgICAgICAgMTYqMzIrMzIpIC8qICAgTVNSX1BCX09QVF9D
VFJMLklCUEJfQUxUICovCiBYRU5fQ1BVRkVBVFVSRShJVFNfTk8sICAgICAg
ICAgICAgIDE2KjMyKzYyKSAvKiFBIE5vIEluZGlyZWN0IFRhcmdldCBTZWxl
Y3Rpb24gKi8KIAorLyogQU1ELWRlZmluZWQgQ1BVIGZlYXR1cmVzLCBDUFVJ
RCBsZXZlbCAweDgwMDAwMDIxLmVjeCwgd29yZCAxOCAqLworCiAjZW5kaWYg
LyogWEVOX0NQVUZFQVRVUkUgKi8KIAogLyogQ2xlYW4gdXAgZnJvbSBhIGRl
ZmF1bHQgaW5jbHVkZS4gIENsb3NlIHRoZSBlbnVtIChmb3IgQykuICovCmRp
ZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vbGliL3g4Ni9jcHUtcG9saWN5
LmggYi94ZW4vaW5jbHVkZS94ZW4vbGliL3g4Ni9jcHUtcG9saWN5LmgKaW5k
ZXggZjA4ZjMwYWZlY2EzLi5kZDIwNGE4MjViMDcgMTAwNjQ0Ci0tLSBhL3hl
bi9pbmNsdWRlL3hlbi9saWIveDg2L2NwdS1wb2xpY3kuaAorKysgYi94ZW4v
aW5jbHVkZS94ZW4vbGliL3g4Ni9jcHUtcG9saWN5LmgKQEAgLTIyLDYgKzIy
LDcgQEAKICNkZWZpbmUgRkVBVFVSRVNFVF83ZDEgICAgICAgMTUgLyogMHgw
MDAwMDAwNzoxLmVkeCAgICAqLwogI2RlZmluZSBGRUFUVVJFU0VUX20xMEFs
ICAgICAxNiAvKiAweDAwMDAwMTBhLmVheCAgICAgICovCiAjZGVmaW5lIEZF
QVRVUkVTRVRfbTEwQWggICAgIDE3IC8qIDB4MDAwMDAxMGEuZWR4ICAgICAg
Ki8KKyNkZWZpbmUgRkVBVFVSRVNFVF9lMjFjICAgICAgMTggLyogMHg4MDAw
MDAyMS5lY3ggICAgICAqLwogCiBzdHJ1Y3QgY3B1aWRfbGVhZgogewpAQCAt
MzI4LDcgKzMyOSwxMSBAQCBzdHJ1Y3QgY3B1X3BvbGljeQogICAgICAgICAg
ICAgdWludDE2X3QgdWNvZGVfc2l6ZTsgLyogVW5pdHMgb2YgMTYgYnl0ZXMg
Ki8KICAgICAgICAgICAgIHVpbnQ4X3QgIHJhcF9zaXplOyAgIC8qIFVuaXRz
IG9mIDggZW50cmllcyAqLwogICAgICAgICAgICAgdWludDhfdCAgOjg7Ci0g
ICAgICAgICAgICB1aW50MzJfdCAvKiBjICovOjMyLCAvKiBkICovOjMyOwor
ICAgICAgICAgICAgdW5pb24geworICAgICAgICAgICAgICAgIHVpbnQzMl90
IGUyMWM7CisgICAgICAgICAgICAgICAgc3RydWN0IHsgREVDTF9CSVRGSUVM
RChlMjFjKTsgfTsKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICB1aW50
MzJfdCAvKiBkICovOjMyOwogICAgICAgICB9OwogICAgIH0gZXh0ZDsKIApk
aWZmIC0tZ2l0IGEveGVuL2xpYi94ODYvY3B1aWQuYyBiL3hlbi9saWIveDg2
L2NwdWlkLmMKaW5kZXggZWI3Njk4ZGM3MzI1Li42Mjk4ZDA1MWYyYTYgMTAw
NjQ0Ci0tLSBhL3hlbi9saWIveDg2L2NwdWlkLmMKKysrIGIveGVuL2xpYi94
ODYvY3B1aWQuYwpAQCAtODEsNiArODEsNyBAQCB2b2lkIHg4Nl9jcHVfcG9s
aWN5X3RvX2ZlYXR1cmVzZXQoCiAgICAgZnNbRkVBVFVSRVNFVF83ZDFdICAg
ICAgID0gcC0+ZmVhdC5fN2QxOwogICAgIGZzW0ZFQVRVUkVTRVRfbTEwQWxd
ICAgICA9IHAtPmFyY2hfY2Fwcy5sbzsKICAgICBmc1tGRUFUVVJFU0VUX20x
MEFoXSAgICAgPSBwLT5hcmNoX2NhcHMuaGk7CisgICAgZnNbRkVBVFVSRVNF
VF9lMjFjXSAgICAgID0gcC0+ZXh0ZC5lMjFjOwogfQogCiB2b2lkIHg4Nl9j
cHVfZmVhdHVyZXNldF90b19wb2xpY3koCkBAIC0xMDQsNiArMTA1LDcgQEAg
dm9pZCB4ODZfY3B1X2ZlYXR1cmVzZXRfdG9fcG9saWN5KAogICAgIHAtPmZl
YXQuXzdkMSAgICAgICAgICAgICA9IGZzW0ZFQVRVUkVTRVRfN2QxXTsKICAg
ICBwLT5hcmNoX2NhcHMubG8gICAgICAgICAgPSBmc1tGRUFUVVJFU0VUX20x
MEFsXTsKICAgICBwLT5hcmNoX2NhcHMuaGkgICAgICAgICAgPSBmc1tGRUFU
VVJFU0VUX20xMEFoXTsKKyAgICBwLT5leHRkLmUyMWMgICAgICAgICAgICAg
PSBmc1tGRUFUVVJFU0VUX2UyMWNdOwogfQogCiB2b2lkIHg4Nl9jcHVfcG9s
aWN5X3JlY2FsY19zeW50aChzdHJ1Y3QgY3B1X3BvbGljeSAqcCkK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.20-13.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.20-13.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogRnJpLCAyNyBTZXAgMjAyNCAxMToyODozOSArMDEwMApTdWJq
ZWN0OiB4ODYvdWNvZGU6IERpZ2VzdHMgZm9yIFRTQSBtaWNyb2NvZGUKCkFN
RCBhcmUgcmVsZWFzaW5nIG1pY3JvY29kZSBmb3IgVFNBLCBzbyBleHRlbmQg
dGhlIGtub3duLXByb3ZlbmFuY2UgbGlzdCB3aXRoCnRoZWlyIGhhc2hlcy4g
IFRoZXNlIHdlcmUgcHJvZHVjZWQgYmVmb3JlIHRoZSByZW1lZGlhdGlvbiBv
ZiB0aGUgbWljcm9jb2RlCnNpZ25hdHVyZSBpc3N1ZXMgKHRoZSBlbnRyeXNp
Z24gdnVsbmVyYWJpbGl0eSksIHNvIGNhbiBiZSBPUy1sb2FkZWQgb24Kb3V0
LW9mLWRhdGUgZmlybXdhcmUuCgpJbmNsdWRlIGFuIG9mZi1ieS1kZWZhdWx0
IGNoZWNrIGZvciB0aGUgc29ydGVkLW5lc3Mgb2YgcGF0Y2hfZGlnZXN0c1td
LiAgSXQncwpub3Qgd29ydGggcnVubmluZyBnZW5lcmFsbHkgdW5kZXIgU0VM
Rl9URVNUUywgYnV0IGlzIHVzZWZ1bCB3aGVuIGVkaXRpbmcgdGhlCmRpZ2Vz
dCBsaXN0LgoKVGhpcyBpcyBwYXJ0IG9mIFhTQS00NzEgLyBDVkUtMjAyNC0z
NjM1MCAvIENWRS0yMDI0LTM2MzU3LgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3
IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KQWNrZWQtYnk6
IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KCmRpZmYgLS1naXQg
YS94ZW4vYXJjaC94ODYvY3B1L21pY3JvY29kZS9hbWQtcGF0Y2gtZGlnZXN0
cy5jIGIveGVuL2FyY2gveDg2L2NwdS9taWNyb2NvZGUvYW1kLXBhdGNoLWRp
Z2VzdHMuYwppbmRleCBkMzI3NjEyMjY3MTIuLmQyYzRlMDE3OGExZSAxMDA2
NDQKLS0tIGEveGVuL2FyY2gveDg2L2NwdS9taWNyb2NvZGUvYW1kLXBhdGNo
LWRpZ2VzdHMuYworKysgYi94ZW4vYXJjaC94ODYvY3B1L21pY3JvY29kZS9h
bWQtcGF0Y2gtZGlnZXN0cy5jCkBAIC04MCw2ICs4MCwxNSBAQAogICAgICAg
ICAweDBkLCAweDViLCAweDY1LCAweDM0LCAweDY5LCAweGIyLCAweDYyLCAw
eDIxLAogICAgIH0sCiB9LAoreworICAgIC5wYXRjaF9pZCA9IDB4MGEwMDEx
ZDcsCisgICAgLmRpZ2VzdCA9IHsKKyAgICAgICAgMHgzNSwgMHgwNywgMHhj
ZCwgMHg0MCwgMHg5NCwgMHhiYywgMHg4MSwgMHg2YiwKKyAgICAgICAgMHhm
YywgMHg2MSwgMHg1NiwgMHgxYSwgMHhlMiwgMHhkYiwgMHg5NiwgMHgxMiwK
KyAgICAgICAgMHgxYywgMHgxYywgMHgzMSwgMHhiMSwgMHgwMiwgMHg2Ziwg
MHhlNSwgMHhkMiwKKyAgICAgICAgMHhmZSwgMHgxYiwgMHgwNCwgMHgwMywg
MHgyYywgMHg4ZiwgMHg0YywgMHgzNiwKKyAgICB9LAorfSwKIHsKICAgICAu
cGF0Y2hfaWQgPSAweDBhMDAxMjM4LAogICAgIC5kaWdlc3QgPSB7CkBAIC04
OSw2ICs5OCwxNSBAQAogICAgICAgICAweGMwLCAweGNkLCAweDMzLCAweGYy
LCAweDhkLCAweGY5LCAweGVmLCAweDU5LAogICAgIH0sCiB9LAoreworICAg
IC5wYXRjaF9pZCA9IDB4MGEwMDEyM2IsCisgICAgLmRpZ2VzdCA9IHsKKyAg
ICAgICAgMHhlZiwgMHhhMSwgMHgxZSwgMHg3MSwgMHhmMSwgMHhjMywgMHgy
YywgMHhlMiwKKyAgICAgICAgMHhjMywgMHhlZiwgMHg2OSwgMHg0MSwgMHg3
YSwgMHg1NCwgMHhjYSwgMHhjMywKKyAgICAgICAgMHg4ZiwgMHg2MiwgMHg4
NCwgMHhlZSwgMHhjMiwgMHgzOSwgMHhkOSwgMHgyOCwKKyAgICAgICAgMHg5
NSwgMHhhNywgMHgxMiwgMHg0OSwgMHgxZSwgMHgzMCwgMHg3MSwgMHg3MiwK
KyAgICB9LAorfSwKIHsKICAgICAucGF0Y2hfaWQgPSAweDBhMDA4MjBjLAog
ICAgIC5kaWdlc3QgPSB7CkBAIC05OCw2ICsxMTYsMTUgQEAKICAgICAgICAg
MHhlMSwgMHgzYiwgMHg4ZCwgMHhiMiwgMHhmOCwgMHgyMiwgMHgwMywgMHhl
MiwKICAgICB9LAogfSwKK3sKKyAgICAucGF0Y2hfaWQgPSAweDBhMDA4MjBk
LAorICAgIC5kaWdlc3QgPSB7CisgICAgICAgIDB4ZjksIDB4MmEsIDB4YzAs
IDB4ZjQsIDB4OWUsIDB4YTQsIDB4ODcsIDB4YTQsCisgICAgICAgIDB4N2Qs
IDB4ODcsIDB4MDAsIDB4ZmQsIDB4YWIsIDB4ZGEsIDB4MTksIDB4Y2EsCisg
ICAgICAgIDB4MjYsIDB4NTEsIDB4MzIsIDB4YzEsIDB4NTcsIDB4OTEsIDB4
ZGYsIDB4YzEsCisgICAgICAgIDB4MDUsIDB4ZWIsIDB4MDEsIDB4N2MsIDB4
NWEsIDB4OTUsIDB4MjEsIDB4YjcsCisgICAgfSwKK30sCiB7CiAgICAgLnBh
dGNoX2lkID0gMHgwYTEwMTE0OCwKICAgICAuZGlnZXN0ID0gewpAQCAtMTA3
LDYgKzEzNCwxNSBAQAogICAgICAgICAweGYxLCAweDVlLCAweGIwLCAweGRl
LCAweGI0LCAweDk4LCAweGFlLCAweGM0LAogICAgIH0sCiB9LAoreworICAg
IC5wYXRjaF9pZCA9IDB4MGExMDExNGMsCisgICAgLmRpZ2VzdCA9IHsKKyAg
ICAgICAgMHg5ZSwgMHhiNiwgMHhhMiwgMHhkOSwgMHg4NywgMHgzOCwgMHhj
NSwgMHg2NCwKKyAgICAgICAgMHhkOCwgMHg4OCwgMHhmYSwgMHg3OCwgMHg5
OCwgMHhmOSwgMHg2ZiwgMHg3NCwKKyAgICAgICAgMHgzOSwgMHg5MCwgMHgx
YiwgMHhhNSwgMHhjZiwgMHg1ZSwgMHhiNCwgMHgyYSwKKyAgICAgICAgMHgw
MiwgMHhmZiwgMHhkNCwgMHg4YywgMHg3MSwgMHg4YiwgMHhlMiwgMHhjMCwK
KyAgICB9LAorfSwKIHsKICAgICAucGF0Y2hfaWQgPSAweDBhMTAxMjQ4LAog
ICAgIC5kaWdlc3QgPSB7CkBAIC0xMTYsNiArMTUyLDE1IEBACiAgICAgICAg
IDB4MWIsIDB4N2QsIDB4NjQsIDB4OWQsIDB4NGIsIDB4NTMsIDB4MTMsIDB4
NzUsCiAgICAgfSwKIH0sCit7CisgICAgLnBhdGNoX2lkID0gMHgwYTEwMTI0
YywKKyAgICAuZGlnZXN0ID0geworICAgICAgICAweDI5LCAweGVhLCAweGYx
LCAweDJjLCAweGIyLCAweGU0LCAweGVmLCAweDkwLAorICAgICAgICAweGE0
LCAweGNkLCAweDFkLCAweDg2LCAweDk3LCAweDE3LCAweDYxLCAweDQ2LAor
ICAgICAgICAweGZjLCAweDIyLCAweGNiLCAweDU3LCAweDc1LCAweDE5LCAw
eGM4LCAweGNjLAorICAgICAgICAweDBjLCAweGY1LCAweGJjLCAweGFjLCAw
eDgxLCAweDlkLCAweDlhLCAweGQyLAorICAgIH0sCit9LAogewogICAgIC5w
YXRjaF9pZCA9IDB4MGExMDgxMDgsCiAgICAgLmRpZ2VzdCA9IHsKQEAgLTEy
NSw2ICsxNzAsMTUgQEAKICAgICAgICAgMHgyOCwgMHgxZSwgMHg5YywgMHg1
OSwgMHg2OSwgMHg5OSwgMHg0ZCwgMHgxNiwKICAgICB9LAogfSwKK3sKKyAg
ICAucGF0Y2hfaWQgPSAweDBhMTA4MTA5LAorICAgIC5kaWdlc3QgPSB7Cisg
ICAgICAgIDB4ODUsIDB4YjQsIDB4YmQsIDB4N2MsIDB4NDksIDB4YTcsIDB4
YmQsIDB4ZmEsCisgICAgICAgIDB4NDksIDB4MzYsIDB4ODAsIDB4ODEsIDB4
YzUsIDB4YjcsIDB4MzksIDB4MWIsCisgICAgICAgIDB4OWEsIDB4YWEsIDB4
NTAsIDB4ZGUsIDB4OWIsIDB4ZTksIDB4MzIsIDB4MzUsCisgICAgICAgIDB4
NDIsIDB4N2UsIDB4NTEsIDB4NGYsIDB4NTIsIDB4MmMsIDB4MjgsIDB4NTks
CisgICAgfSwKK30sCiB7CiAgICAgLnBhdGNoX2lkID0gMHgwYTIwMTAyZCwK
ICAgICAuZGlnZXN0ID0gewpAQCAtMTM0LDYgKzE4OCwxNSBAQAogICAgICAg
ICAweDhjLCAweGU5LCAweDE5LCAweDNlLCAweGNjLCAweDNmLCAweDdiLCAw
eGI0LAogICAgIH0sCiB9LAoreworICAgIC5wYXRjaF9pZCA9IDB4MGEyMDEw
MmUsCisgICAgLmRpZ2VzdCA9IHsKKyAgICAgICAgMHhiZSwgMHgxZiwgMHgz
MiwgMHgwNCwgMHgwZCwgMHgzYywgMHg5YywgMHhkZCwKKyAgICAgICAgMHhl
MSwgMHhhNCwgMHhiZiwgMHg3NiwgMHgzYSwgMHhlYywgMHhjMiwgMHhmNiwK
KyAgICAgICAgMHgxMSwgMHgwMCwgMHhhNywgMHhhZiwgMHgwZiwgMHhlNSwg
MHgwMiwgMHhjNSwKKyAgICAgICAgMHg1NCwgMHgzYSwgMHgxZiwgMHg4Yywg
MHgxNiwgMHhiNSwgMHhmZiwgMHhiZSwKKyAgICB9LAorfSwKIHsKICAgICAu
cGF0Y2hfaWQgPSAweDBhMjAxMjEwLAogICAgIC5kaWdlc3QgPSB7CkBAIC0x
NDMsNiArMjA2LDE1IEBACiAgICAgICAgIDB4ZjcsIDB4NTUsIDB4ZjAsIDB4
MTMsIDB4YmIsIDB4MjIsIDB4ZjYsIDB4NDEsCiAgICAgfSwKIH0sCit7Cisg
ICAgLnBhdGNoX2lkID0gMHgwYTIwMTIxMSwKKyAgICAuZGlnZXN0ID0gewor
ICAgICAgICAweDY5LCAweGExLCAweDE3LCAweGVjLCAweGQwLCAweGY2LCAw
eDZjLCAweDk1LAorICAgICAgICAweGUyLCAweDFlLCAweGM1LCAweDU5LCAw
eDFhLCAweDUyLCAweDBhLCAweDI3LAorICAgICAgICAweGM0LCAweGVkLCAw
eGQ1LCAweDU5LCAweDFmLCAweGJmLCAweDAwLCAweGZmLAorICAgICAgICAw
eDA4LCAweDg4LCAweGI1LCAweGUxLCAweDEyLCAweGI2LCAweGNjLCAweDI3
LAorICAgIH0sCit9LAogewogICAgIC5wYXRjaF9pZCA9IDB4MGE0MDQxMDcs
CiAgICAgLmRpZ2VzdCA9IHsKQEAgLTE1Miw2ICsyMjQsMTUgQEAKICAgICAg
ICAgMHgxMywgMHhiYywgMHhjNSwgMHgyNSwgMHhlNCwgMHhjNSwgMHhjMywg
MHg5OSwKICAgICB9LAogfSwKK3sKKyAgICAucGF0Y2hfaWQgPSAweDBhNDA0
MTA4LAorICAgIC5kaWdlc3QgPSB7CisgICAgICAgIDB4NjksIDB4NjcsIDB4
NDMsIDB4MDYsIDB4ZjgsIDB4MGMsIDB4NjIsIDB4ZGMsCisgICAgICAgIDB4
YTQsIDB4MjEsIDB4MzAsIDB4NGYsIDB4MGYsIDB4MjEsIDB4MmMsIDB4Y2Is
CisgICAgICAgIDB4Y2MsIDB4MzcsIDB4ZjEsIDB4MWMsIDB4YzMsIDB4Zjgs
IDB4MmYsIDB4MTksCisgICAgICAgIDB4ZGYsIDB4NTMsIDB4NTMsIDB4NDYs
IDB4YjEsIDB4MTUsIDB4ZWEsIDB4MDAsCisgICAgfSwKK30sCiB7CiAgICAg
LnBhdGNoX2lkID0gMHgwYTUwMDAxMSwKICAgICAuZGlnZXN0ID0gewpAQCAt
MTYxLDYgKzI0MiwxNSBAQAogICAgICAgICAweDExLCAweDVlLCAweDk2LCAw
eDdlLCAweDcxLCAweGU5LCAweGZjLCAweDc0LAogICAgIH0sCiB9LAorewor
ICAgIC5wYXRjaF9pZCA9IDB4MGE1MDAwMTIsCisgICAgLmRpZ2VzdCA9IHsK
KyAgICAgICAgMHhlYiwgMHg3NCwgMHgwZCwgMHg0NywgMHhhMSwgMHg4ZSwg
MHgwOSwgMHhlNCwKKyAgICAgICAgMHg5MywgMHg0YywgMHhhZCwgMHgwMywg
MHgzMiwgMHg0YywgMHgzOCwgMHgxNiwKKyAgICAgICAgMHgxMCwgMHgzOSwg
MHhkZCwgMHgwNiwgMHhhYSwgMHhjZSwgMHhkNiwgMHgwZiwKKyAgICAgICAg
MHg2MiwgMHg4MywgMHg5ZCwgMHg4ZSwgMHg2NCwgMHg1NSwgMHhiZSwgMHg2
MywKKyAgICB9LAorfSwKIHsKICAgICAucGF0Y2hfaWQgPSAweDBhNjAxMjA5
LAogICAgIC5kaWdlc3QgPSB7CkBAIC0xNzAsNiArMjYwLDE1IEBACiAgICAg
ICAgIDB4ZTgsIDB4NzMsIDB4ZTIsIDB4ZDYsIDB4ZGIsIDB4ZDIsIDB4Nzcs
IDB4MWQsCiAgICAgfSwKIH0sCit7CisgICAgLnBhdGNoX2lkID0gMHgwYTYw
MTIwYSwKKyAgICAuZGlnZXN0ID0geworICAgICAgICAweDBjLCAweDhiLCAw
eDNkLCAweGZkLCAweDUyLCAweDUyLCAweDg1LCAweDdkLAorICAgICAgICAw
eDIwLCAweDNhLCAweGUxLCAweDdlLCAweGE0LCAweDIxLCAweDNiLCAweDdi
LAorICAgICAgICAweDE3LCAweDg2LCAweGFlLCAweGFjLCAweDEzLCAweGI4
LCAweDYzLCAweDlkLAorICAgICAgICAweDA2LCAweDAxLCAweGQwLCAweGEw
LCAweDUxLCAweDlhLCAweDkxLCAweDJjLAorICAgIH0sCit9LAogewogICAg
IC5wYXRjaF9pZCA9IDB4MGE3MDQxMDcsCiAgICAgLmRpZ2VzdCA9IHsKQEAg
LTE3OSw2ICsyNzgsMTUgQEAKICAgICAgICAgMHg2NCwgMHgzOSwgMHg3MSwg
MHg4YywgMHhjZSwgMHhlNywgMHg0MSwgMHgzOSwKICAgICB9LAogfSwKK3sK
KyAgICAucGF0Y2hfaWQgPSAweDBhNzA0MTA4LAorICAgIC5kaWdlc3QgPSB7
CisgICAgICAgIDB4ZDcsIDB4NTUsIDB4MTUsIDB4MmIsIDB4ZmUsIDB4YzQs
IDB4YmMsIDB4OTMsCisgICAgICAgIDB4ZWMsIDB4OTEsIDB4YTAsIDB4YWUs
IDB4NDUsIDB4YjcsIDB4YzMsIDB4OTgsCisgICAgICAgIDB4NGUsIDB4ZmYs
IDB4NjEsIDB4NzcsIDB4ODgsIDB4YzIsIDB4NzAsIDB4NDksCisgICAgICAg
IDB4ZTAsIDB4M2EsIDB4MWQsIDB4ODQsIDB4MzgsIDB4NTIsIDB4YmYsIDB4
NWEsCisgICAgfSwKK30sCiB7CiAgICAgLnBhdGNoX2lkID0gMHgwYTcwNTIw
NiwKICAgICAuZGlnZXN0ID0gewpAQCAtMTg4LDYgKzI5NiwxNSBAQAogICAg
ICAgICAweDAzLCAweDM1LCAweGU5LCAweGJlLCAweGZiLCAweDA2LCAweGRm
LCAweGZjLAogICAgIH0sCiB9LAoreworICAgIC5wYXRjaF9pZCA9IDB4MGE3
MDUyMDgsCisgICAgLmRpZ2VzdCA9IHsKKyAgICAgICAgMHgzMCwgMHgxZCwg
MHg1NSwgMHgyNCwgMHhiYywgMHg2YiwgMHg1YSwgMHgxOSwKKyAgICAgICAg
MHgwYywgMHg3ZCwgMHgxZCwgMHg3NCwgMHhhYSwgMHhkMSwgMHhlYiwgMHhk
MiwKKyAgICAgICAgMHgxNiwgMHg2MiwgMHhmNywgMHg1YiwgMHhlMSwgMHgx
ZiwgMHgxOCwgMHgxMSwKKyAgICAgICAgMHg1YywgMHhmMCwgMHg5NCwgMHg5
MCwgMHgyNiwgMHhlYywgMHg2OSwgMHhmZiwKKyAgICB9LAorfSwKIHsKICAg
ICAucGF0Y2hfaWQgPSAweDBhNzA4MDA3LAogICAgIC5kaWdlc3QgPSB7CkBA
IC0xOTcsNiArMzE0LDE1IEBACiAgICAgICAgIDB4ZGYsIDB4OTIsIDB4NzMs
IDB4ODQsIDB4ODcsIDB4M2MsIDB4NzMsIDB4OTMsCiAgICAgfSwKIH0sCit7
CisgICAgLnBhdGNoX2lkID0gMHgwYTcwODAwOCwKKyAgICAuZGlnZXN0ID0g
eworICAgICAgICAweDA4LCAweDZlLCAweGYwLCAweDIyLCAweDRiLCAweDhl
LCAweGM0LCAweDQ2LAorICAgICAgICAweDU4LCAweDM0LCAweGU2LCAweDQ3
LCAweGEyLCAweDI4LCAweGZkLCAweGFiLAorICAgICAgICAweDIyLCAweDNk
LCAweGRkLCAweGQ4LCAweDUyLCAweDllLCAweDFkLCAweDE2LAorICAgICAg
ICAweGZhLCAweDAxLCAweDY4LCAweDE0LCAweDc5LCAweDNlLCAweGU4LCAw
eDZiLAorICAgIH0sCit9LAogewogICAgIC5wYXRjaF9pZCA9IDB4MGE3MGMw
MDUsCiAgICAgLmRpZ2VzdCA9IHsKQEAgLTIwNiw2ICszMzIsMTUgQEAKICAg
ICAgICAgMHhlZSwgMHg0OSwgMHhhYywgMHhlMSwgMHg4YiwgMHgxMywgMHhj
NSwgMHgxMywKICAgICB9LAogfSwKK3sKKyAgICAucGF0Y2hfaWQgPSAweDBh
NzBjMDA4LAorICAgIC5kaWdlc3QgPSB7CisgICAgICAgIDB4MGYsIDB4ZGIs
IDB4MzcsIDB4YTEsIDB4MTAsIDB4YWYsIDB4ZDQsIDB4MjEsCisgICAgICAg
IDB4OTQsIDB4MGQsIDB4YTQsIDB4YTIsIDB4ZTksIDB4ODYsIDB4NmMsIDB4
MGUsCisgICAgICAgIDB4ODUsIDB4N2MsIDB4MzYsIDB4MzAsIDB4YTMsIDB4
M2EsIDB4NzgsIDB4NjYsCisgICAgICAgIDB4MTgsIDB4MTAsIDB4NjAsIDB4
MGQsIDB4NzgsIDB4M2QsIDB4NDQsIDB4ZDAsCisgICAgfSwKK30sCiB7CiAg
ICAgLnBhdGNoX2lkID0gMHgwYWEwMDExNiwKICAgICAuZGlnZXN0ID0gewpA
QCAtMjI0LDMgKzM1OSwxMiBAQAogICAgICAgICAweDY4LCAweDJmLCAweDQ2
LCAweGVlLCAweGZlLCAweGM2LCAweDZkLCAweGVmLAogICAgIH0sCiB9LAor
eworICAgIC5wYXRjaF9pZCA9IDB4MGFhMDAyMTYsCisgICAgLmRpZ2VzdCA9
IHsKKyAgICAgICAgMHg3OSwgMHhmYiwgMHg1YiwgMHg5ZiwgMHhiNiwgMHhl
NiwgMHhhOCwgMHhmNSwKKyAgICAgICAgMHg0ZSwgMHg3YywgMHg0ZiwgMHg4
ZSwgMHgxZCwgMHhhZCwgMHhkMCwgMHgwOCwKKyAgICAgICAgMHhjMiwgMHg0
MywgMHg3YywgMHg4YiwgMHhlNiwgMHhkYiwgMHhkMCwgMHhkMiwKKyAgICAg
ICAgMHhlOCwgMHgzOSwgMHgyNiwgMHhjMSwgMHhlNSwgMHg1YSwgMHg0OCwg
MHhmMSwKKyAgICB9LAorfSwKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9j
cHUvbWljcm9jb2RlL2FtZC5jIGIveGVuL2FyY2gveDg2L2NwdS9taWNyb2Nv
ZGUvYW1kLmMKaW5kZXggYTI4NjBkODk0OGEyLi5lNDMwNzVkY2I1NDAgMTAw
NjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvbWljcm9jb2RlL2FtZC5jCisr
KyBiL3hlbi9hcmNoL3g4Ni9jcHUvbWljcm9jb2RlL2FtZC5jCkBAIC01Mjks
MyArNTI5LDE4IEBAIHZvaWQgX19pbml0IHVjb2RlX3Byb2JlX2FtZChzdHJ1
Y3QgbWljcm9jb2RlX29wcyAqb3BzKQogCiAgICAgKm9wcyA9IGFtZF91Y29k
ZV9vcHM7CiB9CisKKyNpZiAwIC8qIE1hbnVhbCBDT05GSUdfU0VMRl9URVNU
UyAqLworc3RhdGljIHZvaWQgX19pbml0IF9fY29uc3RydWN0b3IgdGVzdF9k
aWdlc3RzX3NvcnRlZCh2b2lkKQoreworICAgIGZvciAoIHVuc2lnbmVkIGlu
dCBpID0gMTsgaSA8IEFSUkFZX1NJWkUocGF0Y2hfZGlnZXN0cyk7ICsraSAp
CisgICAgeworICAgICAgICBpZiAoIHBhdGNoX2RpZ2VzdHNbaSAtIDFdLnBh
dGNoX2lkIDwgcGF0Y2hfZGlnZXN0c1tpXS5wYXRjaF9pZCApCisgICAgICAg
ICAgICBjb250aW51ZTsKKworICAgICAgICBwYW5pYygicGF0Y2hfZGlnZXN0
c1tdIG5vdCBzb3J0ZWQ6ICUwOHggPj0gJTA4eFxuIiwKKyAgICAgICAgICAg
ICAgcGF0Y2hfZGlnZXN0c1tpIC0gMV0ucGF0Y2hfaWQsCisgICAgICAgICAg
ICAgIHBhdGNoX2RpZ2VzdHNbaV0ucGF0Y2hfaWQpOworICAgIH0KK30KKyNl
bmRpZiAvKiBDT05GSUdfU0VMRl9URVNUUyAqLwo=

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.20-14.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.20-14.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogV2VkLCAyIEFwciAyMDI1IDAzOjE4OjU5ICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBSZWFycmFuZ2UgVkVSVyBhbmQgTU9OSVRPUiBpbiBt
d2FpdF9pZGxlX3dpdGhfaGludHMoKQoKSW4gb3JkZXIgdG8gbWl0aWdhdGUg
VFNBLCBYZW4gd2lsbCBuZWVkIHRvIGlzc3VlIFZFUlcgYmVmb3JlIGdvaW5n
IGlkbGUuCgpPbiBBTUQgQ1BVcywgdGhlIFZFUlcgc2NydWJiaW5nIHNpZGUg
ZWZmZWN0cyBjYW5jZWwgYW4gYWN0aXZlIE1PTklUT1IsIGNhdXNpbmcKdGhl
IE1XQUlUIHRvIGV4aXQgd2l0aG91dCBlbnRlcmluZyBhbiBpZGxlIHN0YXRl
LiAgVGhlcmVmb3JlIHRoZSBWRVJXIG11c3QgYmUKYWhlYWQgb2YgTU9OSVRP
Ui4KClNwbGl0IHNwZWNfY3RybF9lbnRlcl9pZGxlKCkgaW4gdHdvIGFuZCBh
bGxvdyB0aGUgVkVSVyBhc3BlY3QgdG8gYmUgaGFuZGxlZApzZXBhcmF0ZWx5
LiAgV2hpbGUgYWRqdXN0aW5nLCB1cGRhdGUgYSBzdGFsZSBjb21tZW50IGNv
bmNlcm5pbmcgTVNCRFM7IG1vcmUKaXNzdWVzIGhhdmUgYmVlbiBtaXRpZ2F0
ZWQgdXNpbmcgVkVSVyBzaW5jZSBpdCB3YXMgd3JpdHRlbi4KCkJ5IG1vdmlu
ZyBWRVJXIGVhcmxpZXIsIGl0IGlzIGFoZWFkIG9mIHRoZSBkZXRlcm1pbmF0
aW9uIG9mIHdoZXRoZXIgdG8gZ28KaWRsZS4gIFdlIGNhbid0IG1vdmUgdGhl
IGNoZWNrIG9uIHNvZnRpcnFfcGVuZGluZyAoZm9yIGNvcnJlY3RuZXNzIHJl
YXNvbnMpLApidXQgd2UgY2FuIGR1cGxpY2F0ZSBpdCBlYXJsaWVyIGFzIGEg
YmVzdCBlZmZvcnQgYXR0ZW1wdCB0byBza2lwIHRoZQpzcGVjdWxhdGl2ZSBv
dmVyaGVhZC4KClRoaXMgaXMgcGFydCBvZiBYU0EtNDcxIC8gQ1ZFLTIwMjQt
MzYzNTAgLyBDVkUtMjAyNC0zNjM1Ny4KClNpZ25lZC1vZmYtYnk6IEFuZHJl
dyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2Vk
LWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CgpkaWZmIC0t
Z2l0IGEveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYyBiL3hlbi9hcmNo
L3g4Ni9hY3BpL2NwdV9pZGxlLmMKaW5kZXggYzU4YTUxYTA5ZjMzLi5hNzI1
M2YxNDUzNDMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9p
ZGxlLmMKKysrIGIveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYwpAQCAt
NDUwLDkgKzQ1MCwxOCBAQCBfX2luaXRjYWxsKGNwdV9pZGxlX2tleV9pbml0
KTsKIHZvaWQgbXdhaXRfaWRsZV93aXRoX2hpbnRzKHVuc2lnbmVkIGludCBl
YXgsIHVuc2lnbmVkIGludCBlY3gpCiB7CiAgICAgdW5zaWduZWQgaW50IGNw
dSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKKyAgICBzdHJ1Y3QgY3B1X2luZm8g
KmluZm8gPSBnZXRfY3B1X2luZm8oKTsKICAgICBpcnFfY3B1c3RhdF90ICpz
dGF0ID0gJmlycV9zdGF0W2NwdV07CiAgICAgY29uc3QgdW5zaWduZWQgaW50
ICp0aGlzX3NvZnRpcnFfcGVuZGluZyA9ICZzdGF0LT5fX3NvZnRpcnFfcGVu
ZGluZzsKIAorICAgIC8qCisgICAgICogSGV1cmlzdGljOiBpZiB3ZSdyZSBk
ZWZpbml0ZWx5IG5vdCBnb2luZyB0byBpZGxlLCBiYWlsIGVhcmx5IGFzIHRo
ZQorICAgICAqIHNwZWN1bGF0aXZlIHNhZmV0eSBjYW4gYmUgZXhwZW5zaXZl
LiAgVGhpcyBpcyBhIHBlcmZvcm1hbmNlCisgICAgICogY29uc2lkZXJhdGlv
biBub3QgYSBjb3JyZWN0bmVzcyBpc3N1ZS4KKyAgICAgKi8KKyAgICBpZiAo
ICp0aGlzX3NvZnRpcnFfcGVuZGluZyApCisgICAgICAgIHJldHVybjsKKwog
ICAgIC8qCiAgICAgICogQnkgc2V0dGluZyBpbl9td2FpdCwgd2UgcHJvbWlz
ZSB0byBvdGhlciBDUFVzIHRoYXQgd2UnbGwgbm90aWNlIGNoYW5nZXMKICAg
ICAgKiB0byBfX3NvZnRpcnFfcGVuZGluZyB3aXRob3V0IGJlaW5nIHNlbnQg
YW4gSVBJLiAgV2UgYWNoaWV2ZSB0aGlzIGJ5CkBAIC00NjYsMTUgKzQ3NSwx
OSBAQCB2b2lkIG13YWl0X2lkbGVfd2l0aF9oaW50cyh1bnNpZ25lZCBpbnQg
ZWF4LCB1bnNpZ25lZCBpbnQgZWN4KQogICAgICAgICAgICAgICAgICAgICIi
LCBYODZfQlVHX01PTklUT1IsCiAgICAgICAgICAgICAgICAgICAgW2luX213
YWl0XSAiPW0iIChzdGF0LT5pbl9td2FpdCkpOwogCisgICAgLyoKKyAgICAg
KiBPbiBBTUQgc3lzdGVtcywgc2lkZSBlZmZlY3RzIGZyb20gVkVSVyBjYW5j
ZWwgTU9OSVRPUiwgY2F1c2luZyBNV0FJVCB0bworICAgICAqIHdha2UgdXAg
aW1tZWRpYXRlbHkuICBUaGVyZWZvcmUsIFZFUlcgbXVzdCBjb21lIGFoZWFk
IG9mIE1PTklUT1IuCisgICAgICovCisgICAgX19zcGVjX2N0cmxfZW50ZXJf
aWRsZV92ZXJ3KGluZm8pOworCiAgICAgbW9uaXRvcih0aGlzX3NvZnRpcnFf
cGVuZGluZywgMCwgMCk7CiAKICAgICBBU1NFUlQoIWxvY2FsX2lycV9pc19l
bmFibGVkKCkpOwogCiAgICAgaWYgKCAhKnRoaXNfc29mdGlycV9wZW5kaW5n
ICkKICAgICB7Ci0gICAgICAgIHN0cnVjdCBjcHVfaW5mbyAqaW5mbyA9IGdl
dF9jcHVfaW5mbygpOwotCi0gICAgICAgIHNwZWNfY3RybF9lbnRlcl9pZGxl
KGluZm8pOworICAgICAgICBfX3NwZWNfY3RybF9lbnRlcl9pZGxlKGluZm8s
IGZhbHNlIC8qIFZFUlcgaGFuZGxlZCBhYm92ZSAqLyk7CiAKICAgICAgICAg
aWYgKCBlY3ggJiBNV0FJVF9FQ1hfSU5URVJSVVBUX0JSRUFLICkKICAgICAg
ICAgICAgIG13YWl0KGVheCwgZWN4KTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9zcGVjX2N0cmwuaCBiL3hlbi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9zcGVjX2N0cmwuaAppbmRleCAwNzcyMjU0MTg5NTYuLjY3
MjRkMzgxMjAyOSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL3NwZWNfY3RybC5oCisrKyBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9zcGVjX2N0cmwuaApAQCAtMTE1LDggKzExNSwyMiBAQCBzdGF0aWMgaW5s
aW5lIHZvaWQgaW5pdF9zaGFkb3dfc3BlY19jdHJsX3N0YXRlKHZvaWQpCiAg
ICAgaW5mby0+dmVyd19zZWwgPSBfX0hZUEVSVklTT1JfRFMzMjsKIH0KIAor
c3RhdGljIGFsd2F5c19pbmxpbmUgdm9pZCBfX3NwZWNfY3RybF9lbnRlcl9p
ZGxlX3Zlcncoc3RydWN0IGNwdV9pbmZvICppbmZvKQoreworICAgIC8qCisg
ICAgICogRmx1c2gvc2NydWIgc3RydWN0dXJlcyB3aGljaCBhcmUgc3RhdGlj
YWxseSBwYXJ0aXRpb25lZCBiZXR3ZWVuIGFjdGl2ZQorICAgICAqIHRocmVh
ZHMuICBPdGhlcndpc2UgZGF0YSBvZiBvdXJzIChvZiB1bmtub3duIHNlbnNp
dGl2aXR5KSB3aWxsIGJlY29tZQorICAgICAqIGF2YWlsYWJsZSB0byBvdXIg
c2libGluZyB3aGVuIHdlIGdvIGlkbGUuCisgICAgICoKKyAgICAgKiBOb3Rl
OiBWRVJXIG11c3QgYmUgZW5jb2RlZCB3aXRoIGEgbWVtb3J5IG9wZXJhbmQs
IGFzIGl0IGlzIG9ubHkgdGhhdAorICAgICAqIGZvcm0gd2l0aCBzaWRlIGVm
ZmVjdHMuCisgICAgICovCisgICAgYWx0ZXJuYXRpdmVfaW5wdXQoIiIsICJ2
ZXJ3ICVbc2VsXSIsIFg4Nl9GRUFUVVJFX1NDX1ZFUldfSURMRSwKKyAgICAg
ICAgICAgICAgICAgICAgICBbc2VsXSAibSIgKGluZm8tPnZlcndfc2VsKSk7
Cit9CisKIC8qIFdBUk5JTkchIGByZXRgLCBgY2FsbCAqYCwgYGptcCAqYCBu
b3Qgc2FmZSBhZnRlciB0aGlzIGNhbGwuICovCi1zdGF0aWMgYWx3YXlzX2lu
bGluZSB2b2lkIHNwZWNfY3RybF9lbnRlcl9pZGxlKHN0cnVjdCBjcHVfaW5m
byAqaW5mbykKK3N0YXRpYyBhbHdheXNfaW5saW5lIHZvaWQgX19zcGVjX2N0
cmxfZW50ZXJfaWRsZShzdHJ1Y3QgY3B1X2luZm8gKmluZm8sIGJvb2wgdmVy
dykKIHsKICAgICB1aW50MzJfdCB2YWwgPSAwOwogCkBAIC0xMzUsMjEgKzE0
OSw4IEBAIHN0YXRpYyBhbHdheXNfaW5saW5lIHZvaWQgc3BlY19jdHJsX2Vu
dGVyX2lkbGUoc3RydWN0IGNwdV9pbmZvICppbmZvKQogICAgICAgICAgICAg
ICAgICAgICAgICJhIiAodmFsKSwgImMiIChNU1JfU1BFQ19DVFJMKSwgImQi
ICgwKSk7CiAgICAgYmFycmllcigpOwogCi0gICAgLyoKLSAgICAgKiBNaWNy
b2FyY2hpdGVjdHVyYWwgU3RvcmUgQnVmZmVyIERhdGEgU2FtcGxpbmc6Ci0g
ICAgICoKLSAgICAgKiBPbiB2dWxuZXJhYmxlIHN5c3RlbXMsIHN0b3JlIGJ1
ZmZlciBlbnRyaWVzIGFyZSBzdGF0aWNhbGx5IHBhcnRpdGlvbmVkCi0gICAg
ICogYmV0d2VlbiBhY3RpdmUgdGhyZWFkcy4gIFdoZW4gZW50ZXJpbmcgaWRs
ZSwgb3VyIHN0b3JlIGJ1ZmZlciBlbnRyaWVzCi0gICAgICogYXJlIHJlLXBh
cnRpdGlvbmVkIHRvIGFsbG93IHRoZSBvdGhlciB0aHJlYWRzIHRvIHVzZSB0
aGVtLgotICAgICAqCi0gICAgICogRmx1c2ggdGhlIGJ1ZmZlcnMgdG8gZW5z
dXJlIHRoYXQgbm8gc2Vuc2l0aXZlIGRhdGEgb2Ygb3VycyBjYW4gYmUKLSAg
ICAgKiBsZWFrZWQgYnkgYSBzaWJsaW5nIGFmdGVyIGl0IGdldHMgb3VyIHN0
b3JlIGJ1ZmZlciBlbnRyaWVzLgotICAgICAqCi0gICAgICogTm90ZTogVkVS
VyBtdXN0IGJlIGVuY29kZWQgd2l0aCBhIG1lbW9yeSBvcGVyYW5kLCBhcyBp
dCBpcyBvbmx5IHRoYXQKLSAgICAgKiBmb3JtIHdoaWNoIGNhdXNlcyBhIGZs
dXNoLgotICAgICAqLwotICAgIGFsdGVybmF0aXZlX2lucHV0KCIiLCAidmVy
dyAlW3NlbF0iLCBYODZfRkVBVFVSRV9TQ19WRVJXX0lETEUsCi0gICAgICAg
ICAgICAgICAgICAgICAgW3NlbF0gIm0iIChpbmZvLT52ZXJ3X3NlbCkpOwor
ICAgIGlmICggdmVydyApIC8qIEV4cGVjdGVkIHRvIGJlIGNvbnN0LXByb3Bh
Z2F0ZWQuICovCisgICAgICAgIF9fc3BlY19jdHJsX2VudGVyX2lkbGVfdmVy
dyhpbmZvKTsKIAogICAgIC8qCiAgICAgICogQ3Jvc3MtVGhyZWFkIFJldHVy
biBBZGRyZXNzIFByZWRpY3Rpb25zOgpAQCAtMTY3LDYgKzE2OCwxMiBAQCBz
dGF0aWMgYWx3YXlzX2lubGluZSB2b2lkIHNwZWNfY3RybF9lbnRlcl9pZGxl
KHN0cnVjdCBjcHVfaW5mbyAqaW5mbykKICAgICAgICAgICAgICAgICAgICAg
ICA6ICJyYXgiLCAicmN4Iik7CiB9CiAKKy8qIFdBUk5JTkchIGByZXRgLCBg
Y2FsbCAqYCwgYGptcCAqYCBub3Qgc2FmZSBhZnRlciB0aGlzIGNhbGwuICov
CitzdGF0aWMgYWx3YXlzX2lubGluZSB2b2lkIHNwZWNfY3RybF9lbnRlcl9p
ZGxlKHN0cnVjdCBjcHVfaW5mbyAqaW5mbykKK3sKKyAgICBfX3NwZWNfY3Ry
bF9lbnRlcl9pZGxlKGluZm8sIHRydWUgLyogVkVSVyAqLyk7Cit9CisKIC8q
IFdBUk5JTkchIGByZXRgLCBgY2FsbCAqYCwgYGptcCAqYCBub3Qgc2FmZSBi
ZWZvcmUgdGhpcyBjYWxsLiAqLwogc3RhdGljIGFsd2F5c19pbmxpbmUgdm9p
ZCBzcGVjX2N0cmxfZXhpdF9pZGxlKHN0cnVjdCBjcHVfaW5mbyAqaW5mbykK
IHsK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-4.20-15.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-4.20-15.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVGh1LCAyOSBBdWcgMjAyNCAxNzozNjoxMSArMDEwMApTdWJq
ZWN0OiB4ODYvc3BlYy1jdHJsOiBNaXRpZ2F0ZSBUcmFuc2l0aXZlIFNjaGVk
dWxlciBBdHRhY2tzCgpUU0EgYWZmZWN0cyBBTUQgRmFtMTloIENQVXMgKFpl
bjMgYW5kIDQgbWljcm9hcmNoaXRlY3R1cmVzKS4KClRocmVlIG5ldyBDUFVJ
RCBiaXRzIGhhdmUgYmVlbiBkZWZpbmVkLiAgVHdvIChUU0FfU1FfTk8gYW5k
IFRTQV9MMV9OTykKaW5kaWNhdGUgdGhhdCB0aGUgc3lzdGVtIGlzIHVuYWZm
ZWN0ZWQsIGFuZCBtdXN0IGJlIHN5bnRoZXNpc2VkIGJ5IFhlbiBvbgp1bmFm
ZmVjdGVkIHBhcnRzIHRvIGRhdGUuCgpBIHRoaXJkIG5ldyBiaXQgaW5kaWNh
dGVzIHRoYXQgVkVSVyBub3cgaGFzIGEgZmx1c2hpbmcgc2lkZSBlZmZlY3Qu
ICBYZW4KbXVzdCBzeW50aGVzaXNlIHRoaXMgYml0IG9uIGFmZmVjdGVkIHN5
c3RlbXMgYmFzZWQgb24gbWljcm9jb2RlIHZlcnNpb24uCkFzIHdpdGggb3Ro
ZXIgVkVSVy1iYXNlZCBmbHVzaGluZyBmZWF0dXJlcywgVkVSV19DTEVBUiBu
ZWVkcyBPUi1pbmcgYWNyb3NzCmEgcmVzb3VyY2UgcG9vbCwgYW5kIGd1ZXN0
cyB3aGljaCBoYXZlIHNlZW4gaXQgY2FuIHNhZmVseSBtaWdyYXRlIGluLgoK
VGhpcyBpcyBwYXJ0IG9mIFhTQS00NzEgLyBDVkUtMjAyNC0zNjM1MCAvIENW
RS0yMDI0LTM2MzU3LgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8
YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEphbiBC
ZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KCmRpZmYgLS1naXQgYS94ZW4v
YXJjaC94ODYvY3B1LXBvbGljeS5jIGIveGVuL2FyY2gveDg2L2NwdS1wb2xp
Y3kuYwppbmRleCA5ZDFmZjYyNjhkNzkuLjNlNjI4ZTAwOGU5MiAxMDA2NDQK
LS0tIGEveGVuL2FyY2gveDg2L2NwdS1wb2xpY3kuYworKysgYi94ZW4vYXJj
aC94ODYvY3B1LXBvbGljeS5jCkBAIC00ODAsNiArNDgwLDE3IEBAIHN0YXRp
YyB2b2lkIF9faW5pdCBndWVzdF9jb21tb25fbWF4X2ZlYXR1cmVfYWRqdXN0
bWVudHModWludDMyX3QgKmZzKQogICAgICAgICBpZiAoIHRlc3RfYml0KFg4
Nl9GRUFUVVJFX1JUTSwgZnMpICkKICAgICAgICAgICAgIF9fc2V0X2JpdChY
ODZfRkVBVFVSRV9SVE1fQUxXQVlTX0FCT1JULCBmcyk7CiAgICAgICAgIGJy
ZWFrOworCisgICAgY2FzZSBYODZfVkVORE9SX0FNRDoKKyAgICAgICAgLyoK
KyAgICAgICAgICogVGhpcyBiaXQgaW5kaWNhdGVzIHRoYXQgdGhlIFZFUlcg
aW5zdHJ1Y3Rpb24gbWF5IGhhdmUgZ2FpbmVkCisgICAgICAgICAqIHNjcnVi
YmluZyBzaWRlIGVmZmVjdHMuICBXaXRoIHBvb2xpbmcsIGl0IG1lYW5zICJ5
b3UgbWlnaHQgbWlncmF0ZQorICAgICAgICAgKiBzb21ld2hlcmUgd2hlcmUg
c2NydWJiaW5nIGlzIG5lY2Vzc2FyeSIsIGFuZCBtYXkgbmVlZCBleHBvc2lu
ZyBvbgorICAgICAgICAgKiB1bmFmZmVjdGVkIGhhcmR3YXJlLiAgVGhpcyBp
cyBmaW5lLCBiZWNhdXNlIHRoZSBWRVJXIGluc3RydWN0aW9uCisgICAgICAg
ICAqIGhhcyBiZWVuIGFyb3VuZCBzaW5jZSB0aGUgMjg2LgorICAgICAgICAg
Ki8KKyAgICAgICAgX19zZXRfYml0KFg4Nl9GRUFUVVJFX1ZFUldfQ0xFQVIs
IGZzKTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgLyoKQEAgLTU1
OCw2ICs1NjksMTcgQEAgc3RhdGljIHZvaWQgX19pbml0IGd1ZXN0X2NvbW1v
bl9kZWZhdWx0X2ZlYXR1cmVfYWRqdXN0bWVudHModWludDMyX3QgKmZzKQog
ICAgICAgICAgICAgX19zZXRfYml0KFg4Nl9GRUFUVVJFX1JUTV9BTFdBWVNf
QUJPUlQsIGZzKTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKKworICAg
IGNhc2UgWDg2X1ZFTkRPUl9BTUQ6CisgICAgICAgIC8qCisgICAgICAgICAq
IFRoaXMgYml0IGluZGljYXRlIHRoYXQgdGhlIFZFUlcgaW5zdHJ1Y3Rpb24g
bWF5IGhhdmUgZ2FpbmVkCisgICAgICAgICAqIHNjcnViYmluZyBzaWRlIGVm
ZmVjdHMuICBUaGUgbWF4IHBvbGljeSBoYXMgaXQgc2V0IGZvciBtaWdyYXRp
b24KKyAgICAgICAgICogcmVhc29ucywgc28gcmVzZXQgdGhlIGRlZmF1bHQg
cG9saWN5IGJhY2sgdG8gdGhlIGhvc3QgdmFsdWUgaW4gY2FzZQorICAgICAg
ICAgKiB3ZSdyZSB1bmFmZmVjdGVkLgorICAgICAgICAgKi8KKyAgICAgICAg
aWYgKCAhY3B1X2hhc192ZXJ3X2NsZWFyICkKKyAgICAgICAgICAgIF9fY2xl
YXJfYml0KFg4Nl9GRUFUVVJFX1ZFUldfQ0xFQVIsIGZzKTsKKyAgICAgICAg
YnJlYWs7CiAgICAgfQogCiAgICAgLyoKZGlmZiAtLWdpdCBhL3hlbi9hcmNo
L3g4Ni9odm0vc3ZtL2VudHJ5LlMgYi94ZW4vYXJjaC94ODYvaHZtL3N2bS9l
bnRyeS5TCmluZGV4IDkxZWRiMzM0NTkzOC4uNjEwYzY0YmY0Yzk3IDEwMDY0
NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3N2bS9lbnRyeS5TCisrKyBiL3hl
bi9hcmNoL3g4Ni9odm0vc3ZtL2VudHJ5LlMKQEAgLTk5LDYgKzk5LDggQEAg
X19VTkxJS0VMWV9FTkQobnN2bV9oYXApCiAgICAgICAgIHBvcCAgJXJzaQog
ICAgICAgICBwb3AgICVyZGkKIAorICAgICAgICBTUEVDX0NUUkxfQ09ORF9W
RVJXICAgICAvKiBSZXE6ICVyc3A9ZWZyYW1lICAgICAgICAgICAgICAgICAg
ICBDbG9iOiBlZmwgKi8KKwogICAgICAgICB2bXJ1bgogCiAgICAgICAgIFNB
VkVfQUxMCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20v
Y3B1ZmVhdHVyZS5oIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZl
YXR1cmUuaAppbmRleCA5MGQ2OTk5OWQxODMuLjQzMWNmNGEyYTY1ZCAxMDA2
NDQKLS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmUu
aAorKysgYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vY3B1ZmVhdHVyZS5o
CkBAIC0xOTQsNiArMTk0LDcgQEAgc3RhdGljIGlubGluZSBib29sIGJvb3Rf
Y3B1X2hhcyh1bnNpZ25lZCBpbnQgZmVhdCkKIAogLyogQ1BVSUQgbGV2ZWwg
MHg4MDAwMDAyMS5lYXggKi8KICNkZWZpbmUgY3B1X2hhc19sZmVuY2VfZGlz
cGF0Y2ggYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0xGRU5DRV9ESVNQQVRD
SCkKKyNkZWZpbmUgY3B1X2hhc192ZXJ3X2NsZWFyICAgICAgYm9vdF9jcHVf
aGFzKFg4Nl9GRUFUVVJFX1ZFUldfQ0xFQVIpCiAjZGVmaW5lIGNwdV9oYXNf
bnNjYiAgICAgICAgICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9OU0NC
KQogCiAvKiBDUFVJRCBsZXZlbCAweDAwMDAwMDA3OjEuZWR4ICovCkBAIC0y
MjEsNiArMjIyLDEwIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBib290X2NwdV9o
YXModW5zaWduZWQgaW50IGZlYXQpCiAjZGVmaW5lIGNwdV9oYXNfcGJfb3B0
X2N0cmwgICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9QQl9PUFRfQ1RS
TCkKICNkZWZpbmUgY3B1X2hhc19pdHNfbm8gICAgICAgICAgYm9vdF9jcHVf
aGFzKFg4Nl9GRUFUVVJFX0lUU19OTykKIAorLyogQ1BVSUQgbGV2ZWwgMHg4
MDAwMDAyMS5lY3ggKi8KKyNkZWZpbmUgY3B1X2hhc190c2Ffc3Ffbm8gICAg
ICAgYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX1RTQV9TUV9OTykKKyNkZWZp
bmUgY3B1X2hhc190c2FfbDFfbm8gICAgICAgYm9vdF9jcHVfaGFzKFg4Nl9G
RUFUVVJFX1RTQV9MMV9OTykKKwogLyogU3ludGhlc2l6ZWQuICovCiAjZGVm
aW5lIGNwdV9oYXNfYXJjaF9wZXJmbW9uICAgIGJvb3RfY3B1X2hhcyhYODZf
RkVBVFVSRV9BUkNIX1BFUkZNT04pCiAjZGVmaW5lIGNwdV9oYXNfY3B1aWRf
ZmF1bHRpbmcgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9DUFVJRF9GQVVM
VElORykKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9zcGVjX2N0cmwuYyBi
L3hlbi9hcmNoL3g4Ni9zcGVjX2N0cmwuYwppbmRleCAzMDI3ZjFkYjZiNzAu
LmJjZGFlMWVkMjM3NyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3NwZWNf
Y3RybC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9zcGVjX2N0cmwuYwpAQCAtNDk0
LDcgKzQ5NCw3IEBAIGN1c3RvbV9wYXJhbSgicHYtbDF0ZiIsIHBhcnNlX3B2
X2wxdGYpOwogCiBzdGF0aWMgdm9pZCBfX2luaXQgcHJpbnRfZGV0YWlscyhl
bnVtIGluZF90aHVuayB0aHVuaykKIHsKLSAgICB1bnNpZ25lZCBpbnQgXzdk
MCA9IDAsIF83ZDIgPSAwLCBlOGIgPSAwLCBlMjFhID0gMCwgbWF4ID0gMCwg
dG1wOworICAgIHVuc2lnbmVkIGludCBfN2QwID0gMCwgXzdkMiA9IDAsIGU4
YiA9IDAsIGUyMWEgPSAwLCBlMjFjID0gMCwgbWF4ID0gMCwgdG1wOwogICAg
IHVpbnQ2NF90IGNhcHMgPSAwOwogCiAgICAgLyogQ29sbGVjdCBkaWFnbm9z
dGljcyBhYm91dCBhdmFpbGFibGUgbWl0aWdhdGlvbnMuICovCkBAIC01MDUs
NyArNTA1LDcgQEAgc3RhdGljIHZvaWQgX19pbml0IHByaW50X2RldGFpbHMo
ZW51bSBpbmRfdGh1bmsgdGh1bmspCiAgICAgaWYgKCBib290X2NwdV9kYXRh
LmV4dGVuZGVkX2NwdWlkX2xldmVsID49IDB4ODAwMDAwMDhVICkKICAgICAg
ICAgY3B1aWQoMHg4MDAwMDAwOFUsICZ0bXAsICZlOGIsICZ0bXAsICZ0bXAp
OwogICAgIGlmICggYm9vdF9jcHVfZGF0YS5leHRlbmRlZF9jcHVpZF9sZXZl
bCA+PSAweDgwMDAwMDIxVSApCi0gICAgICAgIGNwdWlkKDB4ODAwMDAwMjFV
LCAmZTIxYSwgJnRtcCwgJnRtcCwgJnRtcCk7CisgICAgICAgIGNwdWlkKDB4
ODAwMDAwMjFVLCAmZTIxYSwgJnRtcCwgJmUyMWMsICZ0bXApOwogICAgIGlm
ICggY3B1X2hhc19hcmNoX2NhcHMgKQogICAgICAgICByZG1zcmwoTVNSX0FS
Q0hfQ0FQQUJJTElUSUVTLCBjYXBzKTsKIApAQCAtNTE1LDcgKzUxNSw3IEBA
IHN0YXRpYyB2b2lkIF9faW5pdCBwcmludF9kZXRhaWxzKGVudW0gaW5kX3Ro
dW5rIHRodW5rKQogICAgICAqIEhhcmR3YXJlIHJlYWQtb25seSBpbmZvcm1h
dGlvbiwgc3RhdGluZyBpbW11bml0eSB0byBjZXJ0YWluIGlzc3Vlcywgb3IK
ICAgICAgKiBzdWdnZXN0aW9ucyBvZiB3aGljaCBtaXRpZ2F0aW9uIHRvIHVz
ZS4KICAgICAgKi8KLSAgICBwcmludGsoIiAgSGFyZHdhcmUgaGludHM6JXMl
cyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVz
XG4iLAorICAgIHByaW50aygiICBIYXJkd2FyZSBoaW50czolcyVzJXMlcyVz
JXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzXG4i
LAogICAgICAgICAgICAoY2FwcyAmIEFSQ0hfQ0FQU19SRENMX05PKSAgICAg
ICAgICAgICAgICAgICAgICAgID8gIiBSRENMX05PIiAgICAgICAgOiAiIiwK
ICAgICAgICAgICAgKGNhcHMgJiBBUkNIX0NBUFNfRUlCUlMpICAgICAgICAg
ICAgICAgICAgICAgICAgICA/ICIgRUlCUlMiICAgICAgICAgIDogIiIsCiAg
ICAgICAgICAgIChjYXBzICYgQVJDSF9DQVBTX1JTQkEpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPyAiIFJTQkEiICAgICAgICAgICA6ICIiLApAQCAt
NTQwLDEwICs1NDAsMTIgQEAgc3RhdGljIHZvaWQgX19pbml0IHByaW50X2Rl
dGFpbHMoZW51bSBpbmRfdGh1bmsgdGh1bmspCiAgICAgICAgICAgIChlOGIg
ICYgY3B1ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX0lCUEJfUkVUKSkgICAgICAg
PyAiIElCUEJfUkVUIiAgICAgICA6ICIiLAogICAgICAgICAgICAoZTIxYSAm
IGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9JQlBCX0JSVFlQRSkpICAgID8g
IiBJQlBCX0JSVFlQRSIgICAgOiAiIiwKICAgICAgICAgICAgKGUyMWEgJiBj
cHVmZWF0X21hc2soWDg2X0ZFQVRVUkVfU1JTT19OTykpICAgICAgICA/ICIg
U1JTT19OTyIgICAgICAgIDogIiIsCi0gICAgICAgICAgIChlMjFhICYgY3B1
ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX1NSU09fVVNfTk8pKSAgICAgPyAiIFNS
U09fVVNfTk8iICAgICA6ICIiKTsKKyAgICAgICAgICAgKGUyMWEgJiBjcHVm
ZWF0X21hc2soWDg2X0ZFQVRVUkVfU1JTT19VU19OTykpICAgICA/ICIgU1JT
T19VU19OTyIgICAgIDogIiIsCisgICAgICAgICAgIChlMjFjICYgY3B1ZmVh
dF9tYXNrKFg4Nl9GRUFUVVJFX1RTQV9TUV9OTykpICAgICAgPyAiIFRTQV9T
UV9OTyIgICAgICA6ICIiLAorICAgICAgICAgICAoZTIxYyAmIGNwdWZlYXRf
bWFzayhYODZfRkVBVFVSRV9UU0FfTDFfTk8pKSAgICAgID8gIiBUU0FfTDFf
Tk8iICAgICAgOiAiIik7CiAKICAgICAvKiBIYXJkd2FyZSBmZWF0dXJlcyB3
aGljaCBuZWVkIGRyaXZpbmcgdG8gbWl0aWdhdGUgaXNzdWVzLiAqLwotICAg
IHByaW50aygiICBIYXJkd2FyZSBmZWF0dXJlczolcyVzJXMlcyVzJXMlcyVz
JXMlcyVzJXMlcyVzJXNcbiIsCisgICAgcHJpbnRrKCIgIEhhcmR3YXJlIGZl
YXR1cmVzOiVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzXG4iLAog
ICAgICAgICAgICAoZThiICAmIGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9J
QlBCKSkgfHwKICAgICAgICAgICAgKF83ZDAgJiBjcHVmZWF0X21hc2soWDg2
X0ZFQVRVUkVfSUJSU0IpKSAgICAgICAgICA/ICIgSUJQQiIgICAgICAgICAg
IDogIiIsCiAgICAgICAgICAgIChlOGIgICYgY3B1ZmVhdF9tYXNrKFg4Nl9G
RUFUVVJFX0lCUlMpKSB8fApAQCAtNTYzLDcgKzU2NSw4IEBAIHN0YXRpYyB2
b2lkIF9faW5pdCBwcmludF9kZXRhaWxzKGVudW0gaW5kX3RodW5rIHRodW5r
KQogICAgICAgICAgICAoY2FwcyAmIEFSQ0hfQ0FQU19HRFNfQ1RSTCkgICAg
ICAgICAgICAgICAgICAgICAgID8gIiBHRFNfQ1RSTCIgICAgICAgOiAiIiwK
ICAgICAgICAgICAgKGNhcHMgJiBBUkNIX0NBUFNfUkZEU19DTEVBUikgICAg
ICAgICAgICAgICAgICAgICA/ICIgUkZEU19DTEVBUiIgICAgIDogIiIsCiAg
ICAgICAgICAgIChlMjFhICYgY3B1ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX1NC
UEIpKSAgICAgICAgICAgPyAiIFNCUEIiICAgICAgICAgICA6ICIiLAotICAg
ICAgICAgICAoZTIxYSAmIGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9TUlNP
X01TUl9GSVgpKSAgID8gIiBTUlNPX01TUl9GSVgiICAgOiAiIik7CisgICAg
ICAgICAgIChlMjFhICYgY3B1ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX1NSU09f
TVNSX0ZJWCkpICAgPyAiIFNSU09fTVNSX0ZJWCIgICA6ICIiLAorICAgICAg
ICAgICAoZTIxYSAmIGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9WRVJXX0NM
RUFSKSkgICAgID8gIiBWRVJXX0NMRUFSIiAgICAgOiAiIik7CiAKICAgICAv
KiBDb21waWxlZC1pbiBzdXBwb3J0IHdoaWNoIHBlcnRhaW5zIHRvIG1pdGln
YXRpb25zLiAqLwogICAgIGlmICggSVNfRU5BQkxFRChDT05GSUdfSU5ESVJF
Q1RfVEhVTkspIHx8IElTX0VOQUJMRUQoQ09ORklHX1NIQURPV19QQUdJTkcp
IHx8CkBAIC0xNTI0LDYgKzE1MjcsNzcgQEAgc3RhdGljIHZvaWQgX19pbml0
IHJmZHNfY2FsY3VsYXRpb25zKHZvaWQpCiAgICAgc2V0dXBfZm9yY2VfY3B1
X2NhcChYODZfRkVBVFVSRV9SRkRTX05PKTsKIH0KIAorLyoKKyAqIFRyYW5z
aWVudCBTY2hlZHVsZXIgQXR0YWNrcworICoKKyAqIGh0dHBzOi8vd3d3LmFt
ZC5jb20vY29udGVudC9kYW0vYW1kL2VuL2RvY3VtZW50cy9yZXNvdXJjZXMv
YnVsbGV0aW4vdGVjaG5pY2FsLWd1aWRhbmNlLWZvci1taXRpZ2F0aW5nLXRy
YW5zaWVudC1zY2hlZHVsZXItYXR0YWNrcy5wZGYKKyAqLworc3RhdGljIHZv
aWQgX19pbml0IHRzYV9jYWxjdWxhdGlvbnModm9pZCkKK3sKKyAgICB1bnNp
Z25lZCBpbnQgY3Vycl9yZXYsIG1pbl9yZXY7CisKKyAgICAvKiBUU0EgaXMg
b25seSBrbm93biB0byBhZmZlY3QgQU1EIHByb2Nlc3NvcnMgYXQgdGhpcyB0
aW1lLiAqLworICAgIGlmICggYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yICE9
IFg4Nl9WRU5ET1JfQU1EICkKKyAgICAgICAgcmV0dXJuOworCisgICAgLyog
SWYgd2UncmUgdmlydHVhbGlzZWQsIGRvbid0IGF0dGVtcHQgdG8gc3ludGhl
c2lzZSBhbnl0aGluZy4gKi8KKyAgICBpZiAoIGNwdV9oYXNfaHlwZXJ2aXNv
ciApCisgICAgICAgIHJldHVybjsKKworICAgIC8qCisgICAgICogQWNjb3Jk
aW5nIHRvIHRoZSB3aGl0ZXBhcGVyLCBzb21lIEZhbTFBIENQVXMgKE1vZGVs
cyAweDAwLi4uMHg0ZiwKKyAgICAgKiAweDYwLi4uMHg3ZikgYXJlIG5vdCB2
dWxuZXJhYmxlIGJ1dCBkb24ndCBlbnVtZXJhdGUgVFNBX3tTUSxMMX1fTk8u
ICBJZgorICAgICAqIHdlIHNlZSBlaXRoZXIgZW51bWVyYXRlZCwgYXNzdW1l
IGJvdGggYXJlIGNvcnJlY3QgLi4uCisgICAgICovCisgICAgaWYgKCBjcHVf
aGFzX3RzYV9zcV9ubyB8fCBjcHVfaGFzX3RzYV9sMV9ubyApCisgICAgICAg
IHJldHVybjsKKworICAgIC8qCisgICAgICogLi4uIG90aGVyd2lzZSwgc3lu
dGhlc2lzZSB0aGVtLiAgQ1BVcyBvdGhlciB0aGFuIEZhbTE5IChaZW4zLzQp
IGFyZQorICAgICAqIHN0YXRlZCB0byBiZSBub3QgdnVsbmVyYWJsZS4KKyAg
ICAgKi8KKyAgICBpZiAoIGJvb3RfY3B1X2RhdGEueDg2ICE9IDB4MTkgKQor
ICAgIHsKKyAgICAgICAgc2V0dXBfZm9yY2VfY3B1X2NhcChYODZfRkVBVFVS
RV9UU0FfU1FfTk8pOworICAgICAgICBzZXR1cF9mb3JjZV9jcHVfY2FwKFg4
Nl9GRUFUVVJFX1RTQV9MMV9OTyk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICAvKgorICAgICAqIEZhbTE5IENQVXMgZ2V0IFZFUldfQ0xFQVIg
d2l0aCBuZXcgZW5vdWdoIG1pY3JvY29kZSwgYnV0IG11c3QKKyAgICAgKiBz
eW50aGVzaXNlIHRoZSBDUFVJRCBiaXQuCisgICAgICovCisgICAgY3Vycl9y
ZXYgPSB0aGlzX2NwdShjcHVfc2lnKS5yZXY7CisgICAgc3dpdGNoICggY3Vy
cl9yZXYgPj4gOCApCisgICAgeworICAgIGNhc2UgMHgwYTAwMTE6IG1pbl9y
ZXYgPSAweDBhMDAxMWQ3OyBicmVhazsKKyAgICBjYXNlIDB4MGEwMDEyOiBt
aW5fcmV2ID0gMHgwYTAwMTIzYjsgYnJlYWs7CisgICAgY2FzZSAweDBhMDA4
MjogbWluX3JldiA9IDB4MGEwMDgyMGQ7IGJyZWFrOworICAgIGNhc2UgMHgw
YTEwMTE6IG1pbl9yZXYgPSAweDBhMTAxMTRjOyBicmVhazsKKyAgICBjYXNl
IDB4MGExMDEyOiBtaW5fcmV2ID0gMHgwYTEwMTI0YzsgYnJlYWs7CisgICAg
Y2FzZSAweDBhMTA4MTogbWluX3JldiA9IDB4MGExMDgxMDk7IGJyZWFrOwor
ICAgIGNhc2UgMHgwYTIwMTA6IG1pbl9yZXYgPSAweDBhMjAxMDJlOyBicmVh
azsKKyAgICBjYXNlIDB4MGEyMDEyOiBtaW5fcmV2ID0gMHgwYTIwMTIxMTsg
YnJlYWs7CisgICAgY2FzZSAweDBhNDA0MTogbWluX3JldiA9IDB4MGE0MDQx
MDg7IGJyZWFrOworICAgIGNhc2UgMHgwYTUwMDA6IG1pbl9yZXYgPSAweDBh
NTAwMDEyOyBicmVhazsKKyAgICBjYXNlIDB4MGE2MDEyOiBtaW5fcmV2ID0g
MHgwYTYwMTIwYTsgYnJlYWs7CisgICAgY2FzZSAweDBhNzA0MTogbWluX3Jl
diA9IDB4MGE3MDQxMDg7IGJyZWFrOworICAgIGNhc2UgMHgwYTcwNTI6IG1p
bl9yZXYgPSAweDBhNzA1MjA4OyBicmVhazsKKyAgICBjYXNlIDB4MGE3MDgw
OiBtaW5fcmV2ID0gMHgwYTcwODAwODsgYnJlYWs7CisgICAgY2FzZSAweDBh
NzBjMDogbWluX3JldiA9IDB4MGE3MGMwMDg7IGJyZWFrOworICAgIGNhc2Ug
MHgwYWEwMDI6IG1pbl9yZXYgPSAweDBhYTAwMjE2OyBicmVhazsKKyAgICBk
ZWZhdWx0OgorICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5JTkcKKyAgICAg
ICAgICAgICAgICJVbnJlY29nbmlzZWQgQ1BVICUwMngtJTAyeC0lMDJ4LCB1
Y29kZSAweCUwOHggZm9yIFRTQSBtaXRpZ2F0aW9uXG4iLAorICAgICAgICAg
ICAgICAgYm9vdF9jcHVfZGF0YS54ODYsIGJvb3RfY3B1X2RhdGEueDg2X21v
ZGVsLAorICAgICAgICAgICAgICAgYm9vdF9jcHVfZGF0YS54ODZfbWFzaywg
Y3Vycl9yZXYpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYg
KCBjdXJyX3JldiA+PSBtaW5fcmV2ICkKKyAgICAgICAgc2V0dXBfZm9yY2Vf
Y3B1X2NhcChYODZfRkVBVFVSRV9WRVJXX0NMRUFSKTsKK30KKwogc3RhdGlj
IGJvb2wgX19pbml0IGNwdV9oYXNfZ2RzKHZvaWQpCiB7CiAgICAgLyoKQEAg
LTIyMjEsNiArMjI5NSw3IEBAIHZvaWQgX19pbml0IGluaXRfc3BlY3VsYXRp
b25fbWl0aWdhdGlvbnModm9pZCkKICAgICAgKiBodHRwczovL3d3dy5pbnRl
bC5jb20vY29udGVudC93d3cvdXMvZW4vZGV2ZWxvcGVyL2FydGljbGVzL3Rl
Y2huaWNhbC9zb2Z0d2FyZS1zZWN1cml0eS1ndWlkYW5jZS90ZWNobmljYWwt
ZG9jdW1lbnRhdGlvbi9pbnRlbC1hbmFseXNpcy1taWNyb2FyY2hpdGVjdHVy
YWwtZGF0YS1zYW1wbGluZy5odG1sCiAgICAgICogaHR0cHM6Ly93d3cuaW50
ZWwuY29tL2NvbnRlbnQvd3d3L3VzL2VuL2RldmVsb3Blci9hcnRpY2xlcy90
ZWNobmljYWwvc29mdHdhcmUtc2VjdXJpdHktZ3VpZGFuY2UvdGVjaG5pY2Fs
LWRvY3VtZW50YXRpb24vcHJvY2Vzc29yLW1taW8tc3RhbGUtZGF0YS12dWxu
ZXJhYmlsaXRpZXMuaHRtbAogICAgICAqIGh0dHBzOi8vd3d3LmludGVsLmNv
bS9jb250ZW50L3d3dy91cy9lbi9kZXZlbG9wZXIvYXJ0aWNsZXMvdGVjaG5p
Y2FsL3NvZnR3YXJlLXNlY3VyaXR5LWd1aWRhbmNlL2Fkdmlzb3J5LWd1aWRh
bmNlL3JlZ2lzdGVyLWZpbGUtZGF0YS1zYW1wbGluZy5odG1sCisgICAgICog
aHR0cHM6Ly93d3cuYW1kLmNvbS9jb250ZW50L2RhbS9hbWQvZW4vZG9jdW1l
bnRzL3Jlc291cmNlcy9idWxsZXRpbi90ZWNobmljYWwtZ3VpZGFuY2UtZm9y
LW1pdGlnYXRpbmctdHJhbnNpZW50LXNjaGVkdWxlci1hdHRhY2tzLnBkZgog
ICAgICAqCiAgICAgICogUmVsZXZhbnQgdWNvZGVzOgogICAgICAqCkBAIC0y
MjUzLDkgKzIzMjgsMTggQEAgdm9pZCBfX2luaXQgaW5pdF9zcGVjdWxhdGlv
bl9taXRpZ2F0aW9ucyh2b2lkKQogICAgICAqCiAgICAgICogLSBNYXJjaCAy
MDIzLCBmb3IgUkZEUy4gIEVudW1lcmF0ZSBSRkRTX0NMRUFSIHRvIG1lYW4g
dGhhdCBWRVJXIG5vdwogICAgICAqICAgc2NydWJzIG5vbi1hcmNoaXRlY3R1
cmFsIGVudHJpZXMgZnJvbSBjZXJ0YWluIHJlZ2lzdGVyIGZpbGVzLgorICAg
ICAqCisgICAgICogLSBKdWx5IDIwMjUsIGZvciBUU0EuICBJbnRyb2R1Y2Vz
IFZFUlcgc2lkZSBlZmZlY3RzIHRvIG1pdGlnYXRlCisgICAgICogICBUU0Ff
e1NRL0wxfS4gIFhlbiBtdXN0IHN5bnRoZXNpc2UgdGhlIFZFUldfQ0xFQVIg
ZmVhdHVyZSBiYXNlZCBvbgorICAgICAqICAgbWljcm9jb2RlIHZlcnNpb24u
CisgICAgICoKKyAgICAgKiAgIE5vdGUsIHRoZXNlIG1pY3JvY29kZSB1cGRh
dGVzIHdlcmUgcHJvZHVjZWQgYmVmb3JlIHRoZSByZW1lZGlhdGlvbiBvZgor
ICAgICAqICAgdGhlIG1pY3JvY29kZSBzaWduYXR1cmUgaXNzdWVzLCBhbmQg
YXJlIGluY2x1ZGVkIGluIHRoZSBmaXJ3bWFyZQorICAgICAqICAgdXBkYXRl
cyBmaXhpbmcgdGhlIGVudHJ5c2lnbiB2dWxuZXJhYmlsaXR5IGZyb20gfkRl
Y2VtYmVyIDIwMjQuCiAgICAgICovCiAgICAgbWRzX2NhbGN1bGF0aW9ucygp
OwogICAgIHJmZHNfY2FsY3VsYXRpb25zKCk7CisgICAgdHNhX2NhbGN1bGF0
aW9ucygpOwogCiAgICAgLyoKICAgICAgKiBQYXJ0cyB3aGljaCBlbnVtZXJh
dGUgRkJfQ0xFQVIgYXJlIHRob3NlIHdpdGggbm93LXVwZGF0ZWQgbWljcm9j
b2RlCkBAIC0yMjg3LDIxICsyMzcxLDI3IEBAIHZvaWQgX19pbml0IGluaXRf
c3BlY3VsYXRpb25fbWl0aWdhdGlvbnModm9pZCkKICAgICAgKiBNTFBEUy9N
RkJEUyB3aGVuIFNNVCBpcyBlbmFibGVkLgogICAgICAqLwogICAgIGlmICgg
b3B0X3ZlcndfcHYgPT0gLTEgKQotICAgICAgICBvcHRfdmVyd19wdiA9IGNw
dV9oYXNfdXNlZnVsX21kX2NsZWFyIHx8IGNwdV9oYXNfcmZkc19jbGVhcjsK
KyAgICAgICAgb3B0X3ZlcndfcHYgPSAoY3B1X2hhc191c2VmdWxfbWRfY2xl
YXIgfHwgY3B1X2hhc19yZmRzX2NsZWFyIHx8CisgICAgICAgICAgICAgICAg
ICAgICAgIGNwdV9oYXNfdmVyd19jbGVhcik7CiAKICAgICBpZiAoIG9wdF92
ZXJ3X2h2bSA9PSAtMSApCi0gICAgICAgIG9wdF92ZXJ3X2h2bSA9IGNwdV9o
YXNfdXNlZnVsX21kX2NsZWFyIHx8IGNwdV9oYXNfcmZkc19jbGVhcjsKKyAg
ICAgICAgb3B0X3ZlcndfaHZtID0gKGNwdV9oYXNfdXNlZnVsX21kX2NsZWFy
IHx8IGNwdV9oYXNfcmZkc19jbGVhciB8fAorICAgICAgICAgICAgICAgICAg
ICAgICAgY3B1X2hhc192ZXJ3X2NsZWFyKTsKIAogICAgIC8qCi0gICAgICog
SWYgU01UIGlzIGFjdGl2ZSwgYW5kIHdlJ3JlIHByb3RlY3RpbmcgYWdhaW5z
dCBNRFMgb3IgTU1JTyBzdGFsZSBkYXRhLAorICAgICAqIElmIFNNVCBpcyBh
Y3RpdmUsIGFuZCB3ZSdyZSBwcm90ZWN0aW5nIGFnYWluc3QgYW55IG9mOgor
ICAgICAqICAgLSBNU0JEUworICAgICAqICAgLSBNTUlPIHN0YWxlIGRhdGEK
KyAgICAgKiAgIC0gVFNBLVNRCiAgICAgICogd2UgbmVlZCB0byBzY3J1YiBi
ZWZvcmUgZ29pbmcgaWRsZSBhcyB3ZWxsIGFzIG9uIHJldHVybiB0byBndWVz
dC4KICAgICAgKiBWYXJpb3VzIHBpcGVsaW5lIHJlc291cmNlcyBhcmUgcmVw
YXJ0aXRpb25lZCBhbW9uZ3N0IG5vbi1pZGxlIHRocmVhZHMuCiAgICAgICoK
LSAgICAgKiBXZSBkb24ndCBuZWVkIHRvIHNjcnViIG9uIGlkbGUgZm9yIFJG
RFMuICBUaGVyZSBhcmUgbm8gYWZmZWN0ZWQgY29yZXMKLSAgICAgKiB3aGlj
aCBzdXBwb3J0IFNNVCwgZGVzcGl0ZSB0aGVyZSBiZWluZyBhZmZlY3RlZCBj
b3JlcyBpbiBoeWJyaWQgc3lzdGVtcwotICAgICAqIHdoaWNoIGhhdmUgU01U
IGVsc2V3aGVyZSBpbiB0aGUgcGxhdGZvcm0uCisgICAgICogV2UgZG9uJ3Qg
bmVlZCB0byBzY3J1YiBvbiBpZGxlIGZvcjoKKyAgICAgKiAgIC0gUkZEUyAo
bm8gU01UIGFmZmVjdGVkIGNvcmVzKQorICAgICAqICAgLSBUU0EtTDEgKHV0
YWdzIG5ldmVyIHNoYXJlZCBiZXR3ZWVuIHRocmVhZHMpCiAgICAgICovCiAg
ICAgaWYgKCAoKGNwdV9oYXNfdXNlZnVsX21kX2NsZWFyICYmIChvcHRfdmVy
d19wdiB8fCBvcHRfdmVyd19odm0pKSB8fAorICAgICAgICAgIChjcHVfaGFz
X3ZlcndfY2xlYXIgJiYgIWNwdV9oYXNfdHNhX3NxX25vKSB8fAogICAgICAg
ICAgIG9wdF92ZXJ3X21taW8pICYmIGh3X3NtdF9lbmFibGVkICkKICAgICAg
ICAgc2V0dXBfZm9yY2VfY3B1X2NhcChYODZfRkVBVFVSRV9TQ19WRVJXX0lE
TEUpOwogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC14
ODYvY3B1ZmVhdHVyZXNldC5oIGIveGVuL2luY2x1ZGUvcHVibGljL2FyY2gt
eDg2L2NwdWZlYXR1cmVzZXQuaAppbmRleCBjYjkyNjc4MmE4ZjcuLjRmOTQz
NDJhZDYzMyAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2FyY2gt
eDg2L2NwdWZlYXR1cmVzZXQuaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMv
YXJjaC14ODYvY3B1ZmVhdHVyZXNldC5oCkBAIC0zMTUsNiArMzE1LDcgQEAg
WEVOX0NQVUZFQVRVUkUoQVZYX0lGTUEsICAgICAxMCozMisyMykgLypBICBB
VlgtSUZNQSBJbnN0cnVjdGlvbnMgKi8KIFhFTl9DUFVGRUFUVVJFKE5PX05F
U1RfQlAsICAgICAgICAgMTEqMzIrIDApIC8qQSAgTm8gTmVzdGVkIERhdGEg
QnJlYWtwb2ludHMgKi8KIFhFTl9DUFVGRUFUVVJFKEZTX0dTX05TLCAgICAg
ICAgICAgMTEqMzIrIDEpIC8qU3wgRlMvR1MgYmFzZSBNU1JzIG5vbi1zZXJp
YWxpc2luZyAqLwogWEVOX0NQVUZFQVRVUkUoTEZFTkNFX0RJU1BBVENILCAg
ICAxMSozMisgMikgLypBICBMRkVOQ0UgYWx3YXlzIHNlcmlhbGl6aW5nICov
CitYRU5fQ1BVRkVBVFVSRShWRVJXX0NMRUFSLCAgICAgICAgIDExKjMyKyA1
KSAvKiFBfCBWRVJXIGNsZWFycyBtaWNyb2FyY2hpdGVjdHVyYWwgYnVmZmVy
cyAqLwogWEVOX0NQVUZFQVRVUkUoTlNDQiwgICAgICAgICAgICAgICAxMSoz
MisgNikgLypBICBOdWxsIFNlbGVjdG9yIENsZWFycyBCYXNlIChhbmQgbGlt
aXQgdG9vKSAqLwogWEVOX0NQVUZFQVRVUkUoQVVUT19JQlJTLCAgICAgICAg
ICAxMSozMisgOCkgLypTICBBdXRvbWF0aWMgSUJSUyAqLwogWEVOX0NQVUZF
QVRVUkUoQU1EX0ZTUlMsICAgICAgICAgICAxMSozMisxMCkgLypBICBGYXN0
IFNob3J0IFJFUCBTVE9TQiAqLwpAQCAtMzg0LDYgKzM4NSw4IEBAIFhFTl9D
UFVGRUFUVVJFKFBCX09QVF9DVFJMLCAgICAgICAgMTYqMzIrMzIpIC8qICAg
TVNSX1BCX09QVF9DVFJMLklCUEJfQUxUICovCiBYRU5fQ1BVRkVBVFVSRShJ
VFNfTk8sICAgICAgICAgICAgIDE2KjMyKzYyKSAvKiFBIE5vIEluZGlyZWN0
IFRhcmdldCBTZWxlY3Rpb24gKi8KIAogLyogQU1ELWRlZmluZWQgQ1BVIGZl
YXR1cmVzLCBDUFVJRCBsZXZlbCAweDgwMDAwMDIxLmVjeCwgd29yZCAxOCAq
LworWEVOX0NQVUZFQVRVUkUoVFNBX1NRX05PLCAgICAgICAgICAxOCozMisg
MSkgLypBICBObyBTdG9yZSBRdWV1ZSBUcmFuc2l0aXZlIFNjaGVkdWxlciBB
dHRhY2tzICovCitYRU5fQ1BVRkVBVFVSRShUU0FfTDFfTk8sICAgICAgICAg
IDE4KjMyKyAyKSAvKkEgIE5vIEwxRCBUcmFuc2l0aXZlIFNjaGVkdWxlciBB
dHRhY2tzICovCiAKICNlbmRpZiAvKiBYRU5fQ1BVRkVBVFVSRSAqLwogCg==

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-04.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-04.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogV2VkLCAyIEFwciAyMDI1IDAzOjE4OjU5ICswMTAwClN1Ympl
Y3Q6IHg4Ni9pZGxlOiBSZWFycmFuZ2UgVkVSVyBhbmQgTU9OSVRPUiBpbiBt
d2FpdF9pZGxlX3dpdGhfaGludHMoKQoKSW4gb3JkZXIgdG8gbWl0aWdhdGUg
VFNBLCBYZW4gd2lsbCBuZWVkIHRvIGlzc3VlIFZFUlcgYmVmb3JlIGdvaW5n
IGlkbGUuCgpPbiBBTUQgQ1BVcywgdGhlIFZFUlcgc2NydWJiaW5nIHNpZGUg
ZWZmZWN0cyBjYW5jZWwgYW4gYWN0aXZlIE1PTklUT1IsIGNhdXNpbmcKdGhl
IE1XQUlUIHRvIGV4aXQgd2l0aG91dCBlbnRlcmluZyBhbiBpZGxlIHN0YXRl
LiAgVGhlcmVmb3JlIHRoZSBWRVJXIG11c3QgYmUKYWhlYWQgb2YgTU9OSVRP
Ui4KClNwbGl0IHNwZWNfY3RybF9lbnRlcl9pZGxlKCkgaW4gdHdvIGFuZCBh
bGxvdyB0aGUgVkVSVyBhc3BlY3QgdG8gYmUgaGFuZGxlZApzZXBhcmF0ZWx5
LiAgV2hpbGUgYWRqdXN0aW5nLCB1cGRhdGUgYSBzdGFsZSBjb21tZW50IGNv
bmNlcm5pbmcgTVNCRFM7IG1vcmUKaXNzdWVzIGhhdmUgYmVlbiBtaXRpZ2F0
ZWQgdXNpbmcgVkVSVyBzaW5jZSBpdCB3YXMgd3JpdHRlbi4KCkJ5IG1vdmlu
ZyBWRVJXIGVhcmxpZXIsIGl0IGlzIGFoZWFkIG9mIHRoZSBkZXRlcm1pbmF0
aW9uIG9mIHdoZXRoZXIgdG8gZ28KaWRsZS4gIFdlIGNhbid0IG1vdmUgdGhl
IGNoZWNrIG9uIHNvZnRpcnFfcGVuZGluZyAoZm9yIGNvcnJlY3RuZXNzIHJl
YXNvbnMpLApidXQgd2UgY2FuIGR1cGxpY2F0ZSBpdCBlYXJsaWVyIGFzIGEg
YmVzdCBlZmZvcnQgYXR0ZW1wdCB0byBza2lwIHRoZQpzcGVjdWxhdGl2ZSBv
dmVyaGVhZC4KClRoaXMgaXMgcGFydCBvZiBYU0EtNDcxIC8gQ1ZFLTIwMjQt
MzYzNTAgLyBDVkUtMjAyNC0zNjM1Ny4KClNpZ25lZC1vZmYtYnk6IEFuZHJl
dyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClJldmlld2Vk
LWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CgpkaWZmIC0t
Z2l0IGEveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYyBiL3hlbi9hcmNo
L3g4Ni9hY3BpL2NwdV9pZGxlLmMKaW5kZXggZTUwYTkyMzRhMGQ0Li40MjNk
ZjNkMzE2YWQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9p
ZGxlLmMKKysrIGIveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYwpAQCAt
NDUwLDkgKzQ1MCwxOCBAQCBfX2luaXRjYWxsKGNwdV9pZGxlX2tleV9pbml0
KTsKIHZvaWQgbXdhaXRfaWRsZV93aXRoX2hpbnRzKHVuc2lnbmVkIGludCBl
YXgsIHVuc2lnbmVkIGludCBlY3gpCiB7CiAgICAgdW5zaWduZWQgaW50IGNw
dSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKKyAgICBzdHJ1Y3QgY3B1X2luZm8g
KmluZm8gPSBnZXRfY3B1X2luZm8oKTsKICAgICBpcnFfY3B1c3RhdF90ICpz
dGF0ID0gJmlycV9zdGF0W2NwdV07CiAgICAgY29uc3QgdW5zaWduZWQgaW50
ICp0aGlzX3NvZnRpcnFfcGVuZGluZyA9ICZzdGF0LT5fX3NvZnRpcnFfcGVu
ZGluZzsKIAorICAgIC8qCisgICAgICogSGV1cmlzdGljOiBpZiB3ZSdyZSBk
ZWZpbml0ZWx5IG5vdCBnb2luZyB0byBpZGxlLCBiYWlsIGVhcmx5IGFzIHRo
ZQorICAgICAqIHNwZWN1bGF0aXZlIHNhZmV0eSBjYW4gYmUgZXhwZW5zaXZl
LiAgVGhpcyBpcyBhIHBlcmZvcm1hbmNlCisgICAgICogY29uc2lkZXJhdGlv
biBub3QgYSBjb3JyZWN0bmVzcyBpc3N1ZS4KKyAgICAgKi8KKyAgICBpZiAo
ICp0aGlzX3NvZnRpcnFfcGVuZGluZyApCisgICAgICAgIHJldHVybjsKKwog
ICAgIC8qCiAgICAgICogQnkgc2V0dGluZyBpbl9td2FpdCwgd2UgcHJvbWlz
ZSB0byBvdGhlciBDUFVzIHRoYXQgd2UnbGwgbm90aWNlIGNoYW5nZXMKICAg
ICAgKiB0byBfX3NvZnRpcnFfcGVuZGluZyB3aXRob3V0IGJlaW5nIHNlbnQg
YW4gSVBJLiAgV2UgYWNoaWV2ZSB0aGlzIGJ5CkBAIC00NjYsMTUgKzQ3NSwx
OSBAQCB2b2lkIG13YWl0X2lkbGVfd2l0aF9oaW50cyh1bnNpZ25lZCBpbnQg
ZWF4LCB1bnNpZ25lZCBpbnQgZWN4KQogICAgICAgICAgICAgICAgICAgICIi
LCBYODZfQlVHX01PTklUT1IsCiAgICAgICAgICAgICAgICAgICAgW2luX213
YWl0XSAiPW0iIChzdGF0LT5pbl9td2FpdCkpOwogCisgICAgLyoKKyAgICAg
KiBPbiBBTUQgc3lzdGVtcywgc2lkZSBlZmZlY3RzIGZyb20gVkVSVyBjYW5j
ZWwgTU9OSVRPUiwgY2F1c2luZyBNV0FJVCB0bworICAgICAqIHdha2UgdXAg
aW1tZWRpYXRlbHkuICBUaGVyZWZvcmUsIFZFUlcgbXVzdCBjb21lIGFoZWFk
IG9mIE1PTklUT1IuCisgICAgICovCisgICAgX19zcGVjX2N0cmxfZW50ZXJf
aWRsZV92ZXJ3KGluZm8pOworCiAgICAgbW9uaXRvcih0aGlzX3NvZnRpcnFf
cGVuZGluZywgMCwgMCk7CiAKICAgICBBU1NFUlQoIWxvY2FsX2lycV9pc19l
bmFibGVkKCkpOwogCiAgICAgaWYgKCAhKnRoaXNfc29mdGlycV9wZW5kaW5n
ICkKICAgICB7Ci0gICAgICAgIHN0cnVjdCBjcHVfaW5mbyAqaW5mbyA9IGdl
dF9jcHVfaW5mbygpOwotCi0gICAgICAgIHNwZWNfY3RybF9lbnRlcl9pZGxl
KGluZm8pOworICAgICAgICBfX3NwZWNfY3RybF9lbnRlcl9pZGxlKGluZm8s
IGZhbHNlIC8qIFZFUlcgaGFuZGxlZCBhYm92ZSAqLyk7CiAKICAgICAgICAg
aWYgKCBlY3ggJiBNV0FJVF9FQ1hfSU5URVJSVVBUX0JSRUFLICkKICAgICAg
ICAgICAgIG13YWl0KGVheCwgZWN4KTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9zcGVjX2N0cmwuaCBiL3hlbi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9zcGVjX2N0cmwuaAppbmRleCAwNzcyMjU0MTg5NTYuLjY3
MjRkMzgxMjAyOSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUv
YXNtL3NwZWNfY3RybC5oCisrKyBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9zcGVjX2N0cmwuaApAQCAtMTE1LDggKzExNSwyMiBAQCBzdGF0aWMgaW5s
aW5lIHZvaWQgaW5pdF9zaGFkb3dfc3BlY19jdHJsX3N0YXRlKHZvaWQpCiAg
ICAgaW5mby0+dmVyd19zZWwgPSBfX0hZUEVSVklTT1JfRFMzMjsKIH0KIAor
c3RhdGljIGFsd2F5c19pbmxpbmUgdm9pZCBfX3NwZWNfY3RybF9lbnRlcl9p
ZGxlX3Zlcncoc3RydWN0IGNwdV9pbmZvICppbmZvKQoreworICAgIC8qCisg
ICAgICogRmx1c2gvc2NydWIgc3RydWN0dXJlcyB3aGljaCBhcmUgc3RhdGlj
YWxseSBwYXJ0aXRpb25lZCBiZXR3ZWVuIGFjdGl2ZQorICAgICAqIHRocmVh
ZHMuICBPdGhlcndpc2UgZGF0YSBvZiBvdXJzIChvZiB1bmtub3duIHNlbnNp
dGl2aXR5KSB3aWxsIGJlY29tZQorICAgICAqIGF2YWlsYWJsZSB0byBvdXIg
c2libGluZyB3aGVuIHdlIGdvIGlkbGUuCisgICAgICoKKyAgICAgKiBOb3Rl
OiBWRVJXIG11c3QgYmUgZW5jb2RlZCB3aXRoIGEgbWVtb3J5IG9wZXJhbmQs
IGFzIGl0IGlzIG9ubHkgdGhhdAorICAgICAqIGZvcm0gd2l0aCBzaWRlIGVm
ZmVjdHMuCisgICAgICovCisgICAgYWx0ZXJuYXRpdmVfaW5wdXQoIiIsICJ2
ZXJ3ICVbc2VsXSIsIFg4Nl9GRUFUVVJFX1NDX1ZFUldfSURMRSwKKyAgICAg
ICAgICAgICAgICAgICAgICBbc2VsXSAibSIgKGluZm8tPnZlcndfc2VsKSk7
Cit9CisKIC8qIFdBUk5JTkchIGByZXRgLCBgY2FsbCAqYCwgYGptcCAqYCBu
b3Qgc2FmZSBhZnRlciB0aGlzIGNhbGwuICovCi1zdGF0aWMgYWx3YXlzX2lu
bGluZSB2b2lkIHNwZWNfY3RybF9lbnRlcl9pZGxlKHN0cnVjdCBjcHVfaW5m
byAqaW5mbykKK3N0YXRpYyBhbHdheXNfaW5saW5lIHZvaWQgX19zcGVjX2N0
cmxfZW50ZXJfaWRsZShzdHJ1Y3QgY3B1X2luZm8gKmluZm8sIGJvb2wgdmVy
dykKIHsKICAgICB1aW50MzJfdCB2YWwgPSAwOwogCkBAIC0xMzUsMjEgKzE0
OSw4IEBAIHN0YXRpYyBhbHdheXNfaW5saW5lIHZvaWQgc3BlY19jdHJsX2Vu
dGVyX2lkbGUoc3RydWN0IGNwdV9pbmZvICppbmZvKQogICAgICAgICAgICAg
ICAgICAgICAgICJhIiAodmFsKSwgImMiIChNU1JfU1BFQ19DVFJMKSwgImQi
ICgwKSk7CiAgICAgYmFycmllcigpOwogCi0gICAgLyoKLSAgICAgKiBNaWNy
b2FyY2hpdGVjdHVyYWwgU3RvcmUgQnVmZmVyIERhdGEgU2FtcGxpbmc6Ci0g
ICAgICoKLSAgICAgKiBPbiB2dWxuZXJhYmxlIHN5c3RlbXMsIHN0b3JlIGJ1
ZmZlciBlbnRyaWVzIGFyZSBzdGF0aWNhbGx5IHBhcnRpdGlvbmVkCi0gICAg
ICogYmV0d2VlbiBhY3RpdmUgdGhyZWFkcy4gIFdoZW4gZW50ZXJpbmcgaWRs
ZSwgb3VyIHN0b3JlIGJ1ZmZlciBlbnRyaWVzCi0gICAgICogYXJlIHJlLXBh
cnRpdGlvbmVkIHRvIGFsbG93IHRoZSBvdGhlciB0aHJlYWRzIHRvIHVzZSB0
aGVtLgotICAgICAqCi0gICAgICogRmx1c2ggdGhlIGJ1ZmZlcnMgdG8gZW5z
dXJlIHRoYXQgbm8gc2Vuc2l0aXZlIGRhdGEgb2Ygb3VycyBjYW4gYmUKLSAg
ICAgKiBsZWFrZWQgYnkgYSBzaWJsaW5nIGFmdGVyIGl0IGdldHMgb3VyIHN0
b3JlIGJ1ZmZlciBlbnRyaWVzLgotICAgICAqCi0gICAgICogTm90ZTogVkVS
VyBtdXN0IGJlIGVuY29kZWQgd2l0aCBhIG1lbW9yeSBvcGVyYW5kLCBhcyBp
dCBpcyBvbmx5IHRoYXQKLSAgICAgKiBmb3JtIHdoaWNoIGNhdXNlcyBhIGZs
dXNoLgotICAgICAqLwotICAgIGFsdGVybmF0aXZlX2lucHV0KCIiLCAidmVy
dyAlW3NlbF0iLCBYODZfRkVBVFVSRV9TQ19WRVJXX0lETEUsCi0gICAgICAg
ICAgICAgICAgICAgICAgW3NlbF0gIm0iIChpbmZvLT52ZXJ3X3NlbCkpOwor
ICAgIGlmICggdmVydyApIC8qIEV4cGVjdGVkIHRvIGJlIGNvbnN0LXByb3Bh
Z2F0ZWQuICovCisgICAgICAgIF9fc3BlY19jdHJsX2VudGVyX2lkbGVfdmVy
dyhpbmZvKTsKIAogICAgIC8qCiAgICAgICogQ3Jvc3MtVGhyZWFkIFJldHVy
biBBZGRyZXNzIFByZWRpY3Rpb25zOgpAQCAtMTY3LDYgKzE2OCwxMiBAQCBz
dGF0aWMgYWx3YXlzX2lubGluZSB2b2lkIHNwZWNfY3RybF9lbnRlcl9pZGxl
KHN0cnVjdCBjcHVfaW5mbyAqaW5mbykKICAgICAgICAgICAgICAgICAgICAg
ICA6ICJyYXgiLCAicmN4Iik7CiB9CiAKKy8qIFdBUk5JTkchIGByZXRgLCBg
Y2FsbCAqYCwgYGptcCAqYCBub3Qgc2FmZSBhZnRlciB0aGlzIGNhbGwuICov
CitzdGF0aWMgYWx3YXlzX2lubGluZSB2b2lkIHNwZWNfY3RybF9lbnRlcl9p
ZGxlKHN0cnVjdCBjcHVfaW5mbyAqaW5mbykKK3sKKyAgICBfX3NwZWNfY3Ry
bF9lbnRlcl9pZGxlKGluZm8sIHRydWUgLyogVkVSVyAqLyk7Cit9CisKIC8q
IFdBUk5JTkchIGByZXRgLCBgY2FsbCAqYCwgYGptcCAqYCBub3Qgc2FmZSBi
ZWZvcmUgdGhpcyBjYWxsLiAqLwogc3RhdGljIGFsd2F5c19pbmxpbmUgdm9p
ZCBzcGVjX2N0cmxfZXhpdF9pZGxlKHN0cnVjdCBjcHVfaW5mbyAqaW5mbykK
IHsK

--=separator
Content-Type: application/octet-stream; name="xsa471/xsa471-05.patch"
Content-Disposition: attachment; filename="xsa471/xsa471-05.patch"
Content-Transfer-Encoding: base64

RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv
bT4KRGF0ZTogVGh1LCAyOSBBdWcgMjAyNCAxNzozNjoxMSArMDEwMApTdWJq
ZWN0OiB4ODYvc3BlYy1jdHJsOiBNaXRpZ2F0ZSBUcmFuc2l0aXZlIFNjaGVk
dWxlciBBdHRhY2tzCgpUU0EgYWZmZWN0cyBBTUQgRmFtMTloIENQVXMgKFpl
bjMgYW5kIDQgbWljcm9hcmNoaXRlY3R1cmVzKS4KClRocmVlIG5ldyBDUFVJ
RCBiaXRzIGhhdmUgYmVlbiBkZWZpbmVkLiAgVHdvIChUU0FfU1FfTk8gYW5k
IFRTQV9MMV9OTykKaW5kaWNhdGUgdGhhdCB0aGUgc3lzdGVtIGlzIHVuYWZm
ZWN0ZWQsIGFuZCBtdXN0IGJlIHN5bnRoZXNpc2VkIGJ5IFhlbiBvbgp1bmFm
ZmVjdGVkIHBhcnRzIHRvIGRhdGUuCgpBIHRoaXJkIG5ldyBiaXQgaW5kaWNh
dGVzIHRoYXQgVkVSVyBub3cgaGFzIGEgZmx1c2hpbmcgc2lkZSBlZmZlY3Qu
ICBYZW4KbXVzdCBzeW50aGVzaXNlIHRoaXMgYml0IG9uIGFmZmVjdGVkIHN5
c3RlbXMgYmFzZWQgb24gbWljcm9jb2RlIHZlcnNpb24uCkFzIHdpdGggb3Ro
ZXIgVkVSVy1iYXNlZCBmbHVzaGluZyBmZWF0dXJlcywgVkVSV19DTEVBUiBu
ZWVkcyBPUi1pbmcgYWNyb3NzCmEgcmVzb3VyY2UgcG9vbCwgYW5kIGd1ZXN0
cyB3aGljaCBoYXZlIHNlZW4gaXQgY2FuIHNhZmVseSBtaWdyYXRlIGluLgoK
VGhpcyBpcyBwYXJ0IG9mIFhTQS00NzEgLyBDVkUtMjAyNC0zNjM1MCAvIENW
RS0yMDI0LTM2MzU3LgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8
YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEphbiBC
ZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KCmRpZmYgLS1naXQgYS94ZW4v
YXJjaC94ODYvY3B1LXBvbGljeS5jIGIveGVuL2FyY2gveDg2L2NwdS1wb2xp
Y3kuYwppbmRleCA5ZDFmZjYyNjhkNzkuLjNlNjI4ZTAwOGU5MiAxMDA2NDQK
LS0tIGEveGVuL2FyY2gveDg2L2NwdS1wb2xpY3kuYworKysgYi94ZW4vYXJj
aC94ODYvY3B1LXBvbGljeS5jCkBAIC00ODAsNiArNDgwLDE3IEBAIHN0YXRp
YyB2b2lkIF9faW5pdCBndWVzdF9jb21tb25fbWF4X2ZlYXR1cmVfYWRqdXN0
bWVudHModWludDMyX3QgKmZzKQogICAgICAgICBpZiAoIHRlc3RfYml0KFg4
Nl9GRUFUVVJFX1JUTSwgZnMpICkKICAgICAgICAgICAgIF9fc2V0X2JpdChY
ODZfRkVBVFVSRV9SVE1fQUxXQVlTX0FCT1JULCBmcyk7CiAgICAgICAgIGJy
ZWFrOworCisgICAgY2FzZSBYODZfVkVORE9SX0FNRDoKKyAgICAgICAgLyoK
KyAgICAgICAgICogVGhpcyBiaXQgaW5kaWNhdGVzIHRoYXQgdGhlIFZFUlcg
aW5zdHJ1Y3Rpb24gbWF5IGhhdmUgZ2FpbmVkCisgICAgICAgICAqIHNjcnVi
YmluZyBzaWRlIGVmZmVjdHMuICBXaXRoIHBvb2xpbmcsIGl0IG1lYW5zICJ5
b3UgbWlnaHQgbWlncmF0ZQorICAgICAgICAgKiBzb21ld2hlcmUgd2hlcmUg
c2NydWJiaW5nIGlzIG5lY2Vzc2FyeSIsIGFuZCBtYXkgbmVlZCBleHBvc2lu
ZyBvbgorICAgICAgICAgKiB1bmFmZmVjdGVkIGhhcmR3YXJlLiAgVGhpcyBp
cyBmaW5lLCBiZWNhdXNlIHRoZSBWRVJXIGluc3RydWN0aW9uCisgICAgICAg
ICAqIGhhcyBiZWVuIGFyb3VuZCBzaW5jZSB0aGUgMjg2LgorICAgICAgICAg
Ki8KKyAgICAgICAgX19zZXRfYml0KFg4Nl9GRUFUVVJFX1ZFUldfQ0xFQVIs
IGZzKTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgLyoKQEAgLTU1
OCw2ICs1NjksMTcgQEAgc3RhdGljIHZvaWQgX19pbml0IGd1ZXN0X2NvbW1v
bl9kZWZhdWx0X2ZlYXR1cmVfYWRqdXN0bWVudHModWludDMyX3QgKmZzKQog
ICAgICAgICAgICAgX19zZXRfYml0KFg4Nl9GRUFUVVJFX1JUTV9BTFdBWVNf
QUJPUlQsIGZzKTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKKworICAg
IGNhc2UgWDg2X1ZFTkRPUl9BTUQ6CisgICAgICAgIC8qCisgICAgICAgICAq
IFRoaXMgYml0IGluZGljYXRlIHRoYXQgdGhlIFZFUlcgaW5zdHJ1Y3Rpb24g
bWF5IGhhdmUgZ2FpbmVkCisgICAgICAgICAqIHNjcnViYmluZyBzaWRlIGVm
ZmVjdHMuICBUaGUgbWF4IHBvbGljeSBoYXMgaXQgc2V0IGZvciBtaWdyYXRp
b24KKyAgICAgICAgICogcmVhc29ucywgc28gcmVzZXQgdGhlIGRlZmF1bHQg
cG9saWN5IGJhY2sgdG8gdGhlIGhvc3QgdmFsdWUgaW4gY2FzZQorICAgICAg
ICAgKiB3ZSdyZSB1bmFmZmVjdGVkLgorICAgICAgICAgKi8KKyAgICAgICAg
aWYgKCAhY3B1X2hhc192ZXJ3X2NsZWFyICkKKyAgICAgICAgICAgIF9fY2xl
YXJfYml0KFg4Nl9GRUFUVVJFX1ZFUldfQ0xFQVIsIGZzKTsKKyAgICAgICAg
YnJlYWs7CiAgICAgfQogCiAgICAgLyoKZGlmZiAtLWdpdCBhL3hlbi9hcmNo
L3g4Ni9odm0vc3ZtL2VudHJ5LlMgYi94ZW4vYXJjaC94ODYvaHZtL3N2bS9l
bnRyeS5TCmluZGV4IDkxZWRiMzM0NTkzOC4uNjEwYzY0YmY0Yzk3IDEwMDY0
NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3N2bS9lbnRyeS5TCisrKyBiL3hl
bi9hcmNoL3g4Ni9odm0vc3ZtL2VudHJ5LlMKQEAgLTk5LDYgKzk5LDggQEAg
X19VTkxJS0VMWV9FTkQobnN2bV9oYXApCiAgICAgICAgIHBvcCAgJXJzaQog
ICAgICAgICBwb3AgICVyZGkKIAorICAgICAgICBTUEVDX0NUUkxfQ09ORF9W
RVJXICAgICAvKiBSZXE6ICVyc3A9ZWZyYW1lICAgICAgICAgICAgICAgICAg
ICBDbG9iOiBlZmwgKi8KKwogICAgICAgICB2bXJ1bgogCiAgICAgICAgIFNB
VkVfQUxMCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20v
Y3B1ZmVhdHVyZS5oIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZl
YXR1cmUuaAppbmRleCA2YzVmNWNlMGNmYzUuLjNjMmFjOTY0ZTQxMCAxMDA2
NDQKLS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmUu
aAorKysgYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vY3B1ZmVhdHVyZS5o
CkBAIC0xOTUsNiArMTk1LDcgQEAgc3RhdGljIGlubGluZSBib29sIGJvb3Rf
Y3B1X2hhcyh1bnNpZ25lZCBpbnQgZmVhdCkKIAogLyogQ1BVSUQgbGV2ZWwg
MHg4MDAwMDAyMS5lYXggKi8KICNkZWZpbmUgY3B1X2hhc19sZmVuY2VfZGlz
cGF0Y2ggYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0xGRU5DRV9ESVNQQVRD
SCkKKyNkZWZpbmUgY3B1X2hhc192ZXJ3X2NsZWFyICAgICAgYm9vdF9jcHVf
aGFzKFg4Nl9GRUFUVVJFX1ZFUldfQ0xFQVIpCiAjZGVmaW5lIGNwdV9oYXNf
bnNjYiAgICAgICAgICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9OU0NC
KQogCiAvKiBDUFVJRCBsZXZlbCAweDAwMDAwMDA3OjEuZWR4ICovCkBAIC0y
MjIsNiArMjIzLDEwIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBib290X2NwdV9o
YXModW5zaWduZWQgaW50IGZlYXQpCiAjZGVmaW5lIGNwdV9oYXNfcGJfb3B0
X2N0cmwgICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9QQl9PUFRfQ1RS
TCkKICNkZWZpbmUgY3B1X2hhc19pdHNfbm8gICAgICAgICAgYm9vdF9jcHVf
aGFzKFg4Nl9GRUFUVVJFX0lUU19OTykKIAorLyogQ1BVSUQgbGV2ZWwgMHg4
MDAwMDAyMS5lY3ggKi8KKyNkZWZpbmUgY3B1X2hhc190c2Ffc3Ffbm8gICAg
ICAgYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX1RTQV9TUV9OTykKKyNkZWZp
bmUgY3B1X2hhc190c2FfbDFfbm8gICAgICAgYm9vdF9jcHVfaGFzKFg4Nl9G
RUFUVVJFX1RTQV9MMV9OTykKKwogLyogU3ludGhlc2l6ZWQuICovCiAjZGVm
aW5lIGNwdV9oYXNfYXJjaF9wZXJmbW9uICAgIGJvb3RfY3B1X2hhcyhYODZf
RkVBVFVSRV9BUkNIX1BFUkZNT04pCiAjZGVmaW5lIGNwdV9oYXNfY3B1aWRf
ZmF1bHRpbmcgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9DUFVJRF9GQVVM
VElORykKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9zcGVjX2N0cmwuYyBi
L3hlbi9hcmNoL3g4Ni9zcGVjX2N0cmwuYwppbmRleCAzMDI3ZjFkYjZiNzAu
LmJjZGFlMWVkMjM3NyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3NwZWNf
Y3RybC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9zcGVjX2N0cmwuYwpAQCAtNDk0
LDcgKzQ5NCw3IEBAIGN1c3RvbV9wYXJhbSgicHYtbDF0ZiIsIHBhcnNlX3B2
X2wxdGYpOwogCiBzdGF0aWMgdm9pZCBfX2luaXQgcHJpbnRfZGV0YWlscyhl
bnVtIGluZF90aHVuayB0aHVuaykKIHsKLSAgICB1bnNpZ25lZCBpbnQgXzdk
MCA9IDAsIF83ZDIgPSAwLCBlOGIgPSAwLCBlMjFhID0gMCwgbWF4ID0gMCwg
dG1wOworICAgIHVuc2lnbmVkIGludCBfN2QwID0gMCwgXzdkMiA9IDAsIGU4
YiA9IDAsIGUyMWEgPSAwLCBlMjFjID0gMCwgbWF4ID0gMCwgdG1wOwogICAg
IHVpbnQ2NF90IGNhcHMgPSAwOwogCiAgICAgLyogQ29sbGVjdCBkaWFnbm9z
dGljcyBhYm91dCBhdmFpbGFibGUgbWl0aWdhdGlvbnMuICovCkBAIC01MDUs
NyArNTA1LDcgQEAgc3RhdGljIHZvaWQgX19pbml0IHByaW50X2RldGFpbHMo
ZW51bSBpbmRfdGh1bmsgdGh1bmspCiAgICAgaWYgKCBib290X2NwdV9kYXRh
LmV4dGVuZGVkX2NwdWlkX2xldmVsID49IDB4ODAwMDAwMDhVICkKICAgICAg
ICAgY3B1aWQoMHg4MDAwMDAwOFUsICZ0bXAsICZlOGIsICZ0bXAsICZ0bXAp
OwogICAgIGlmICggYm9vdF9jcHVfZGF0YS5leHRlbmRlZF9jcHVpZF9sZXZl
bCA+PSAweDgwMDAwMDIxVSApCi0gICAgICAgIGNwdWlkKDB4ODAwMDAwMjFV
LCAmZTIxYSwgJnRtcCwgJnRtcCwgJnRtcCk7CisgICAgICAgIGNwdWlkKDB4
ODAwMDAwMjFVLCAmZTIxYSwgJnRtcCwgJmUyMWMsICZ0bXApOwogICAgIGlm
ICggY3B1X2hhc19hcmNoX2NhcHMgKQogICAgICAgICByZG1zcmwoTVNSX0FS
Q0hfQ0FQQUJJTElUSUVTLCBjYXBzKTsKIApAQCAtNTE1LDcgKzUxNSw3IEBA
IHN0YXRpYyB2b2lkIF9faW5pdCBwcmludF9kZXRhaWxzKGVudW0gaW5kX3Ro
dW5rIHRodW5rKQogICAgICAqIEhhcmR3YXJlIHJlYWQtb25seSBpbmZvcm1h
dGlvbiwgc3RhdGluZyBpbW11bml0eSB0byBjZXJ0YWluIGlzc3Vlcywgb3IK
ICAgICAgKiBzdWdnZXN0aW9ucyBvZiB3aGljaCBtaXRpZ2F0aW9uIHRvIHVz
ZS4KICAgICAgKi8KLSAgICBwcmludGsoIiAgSGFyZHdhcmUgaGludHM6JXMl
cyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVz
XG4iLAorICAgIHByaW50aygiICBIYXJkd2FyZSBoaW50czolcyVzJXMlcyVz
JXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzXG4i
LAogICAgICAgICAgICAoY2FwcyAmIEFSQ0hfQ0FQU19SRENMX05PKSAgICAg
ICAgICAgICAgICAgICAgICAgID8gIiBSRENMX05PIiAgICAgICAgOiAiIiwK
ICAgICAgICAgICAgKGNhcHMgJiBBUkNIX0NBUFNfRUlCUlMpICAgICAgICAg
ICAgICAgICAgICAgICAgICA/ICIgRUlCUlMiICAgICAgICAgIDogIiIsCiAg
ICAgICAgICAgIChjYXBzICYgQVJDSF9DQVBTX1JTQkEpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPyAiIFJTQkEiICAgICAgICAgICA6ICIiLApAQCAt
NTQwLDEwICs1NDAsMTIgQEAgc3RhdGljIHZvaWQgX19pbml0IHByaW50X2Rl
dGFpbHMoZW51bSBpbmRfdGh1bmsgdGh1bmspCiAgICAgICAgICAgIChlOGIg
ICYgY3B1ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX0lCUEJfUkVUKSkgICAgICAg
PyAiIElCUEJfUkVUIiAgICAgICA6ICIiLAogICAgICAgICAgICAoZTIxYSAm
IGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9JQlBCX0JSVFlQRSkpICAgID8g
IiBJQlBCX0JSVFlQRSIgICAgOiAiIiwKICAgICAgICAgICAgKGUyMWEgJiBj
cHVmZWF0X21hc2soWDg2X0ZFQVRVUkVfU1JTT19OTykpICAgICAgICA/ICIg
U1JTT19OTyIgICAgICAgIDogIiIsCi0gICAgICAgICAgIChlMjFhICYgY3B1
ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX1NSU09fVVNfTk8pKSAgICAgPyAiIFNS
U09fVVNfTk8iICAgICA6ICIiKTsKKyAgICAgICAgICAgKGUyMWEgJiBjcHVm
ZWF0X21hc2soWDg2X0ZFQVRVUkVfU1JTT19VU19OTykpICAgICA/ICIgU1JT
T19VU19OTyIgICAgIDogIiIsCisgICAgICAgICAgIChlMjFjICYgY3B1ZmVh
dF9tYXNrKFg4Nl9GRUFUVVJFX1RTQV9TUV9OTykpICAgICAgPyAiIFRTQV9T
UV9OTyIgICAgICA6ICIiLAorICAgICAgICAgICAoZTIxYyAmIGNwdWZlYXRf
bWFzayhYODZfRkVBVFVSRV9UU0FfTDFfTk8pKSAgICAgID8gIiBUU0FfTDFf
Tk8iICAgICAgOiAiIik7CiAKICAgICAvKiBIYXJkd2FyZSBmZWF0dXJlcyB3
aGljaCBuZWVkIGRyaXZpbmcgdG8gbWl0aWdhdGUgaXNzdWVzLiAqLwotICAg
IHByaW50aygiICBIYXJkd2FyZSBmZWF0dXJlczolcyVzJXMlcyVzJXMlcyVz
JXMlcyVzJXMlcyVzJXNcbiIsCisgICAgcHJpbnRrKCIgIEhhcmR3YXJlIGZl
YXR1cmVzOiVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzXG4iLAog
ICAgICAgICAgICAoZThiICAmIGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9J
QlBCKSkgfHwKICAgICAgICAgICAgKF83ZDAgJiBjcHVmZWF0X21hc2soWDg2
X0ZFQVRVUkVfSUJSU0IpKSAgICAgICAgICA/ICIgSUJQQiIgICAgICAgICAg
IDogIiIsCiAgICAgICAgICAgIChlOGIgICYgY3B1ZmVhdF9tYXNrKFg4Nl9G
RUFUVVJFX0lCUlMpKSB8fApAQCAtNTYzLDcgKzU2NSw4IEBAIHN0YXRpYyB2
b2lkIF9faW5pdCBwcmludF9kZXRhaWxzKGVudW0gaW5kX3RodW5rIHRodW5r
KQogICAgICAgICAgICAoY2FwcyAmIEFSQ0hfQ0FQU19HRFNfQ1RSTCkgICAg
ICAgICAgICAgICAgICAgICAgID8gIiBHRFNfQ1RSTCIgICAgICAgOiAiIiwK
ICAgICAgICAgICAgKGNhcHMgJiBBUkNIX0NBUFNfUkZEU19DTEVBUikgICAg
ICAgICAgICAgICAgICAgICA/ICIgUkZEU19DTEVBUiIgICAgIDogIiIsCiAg
ICAgICAgICAgIChlMjFhICYgY3B1ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX1NC
UEIpKSAgICAgICAgICAgPyAiIFNCUEIiICAgICAgICAgICA6ICIiLAotICAg
ICAgICAgICAoZTIxYSAmIGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9TUlNP
X01TUl9GSVgpKSAgID8gIiBTUlNPX01TUl9GSVgiICAgOiAiIik7CisgICAg
ICAgICAgIChlMjFhICYgY3B1ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX1NSU09f
TVNSX0ZJWCkpICAgPyAiIFNSU09fTVNSX0ZJWCIgICA6ICIiLAorICAgICAg
ICAgICAoZTIxYSAmIGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9WRVJXX0NM
RUFSKSkgICAgID8gIiBWRVJXX0NMRUFSIiAgICAgOiAiIik7CiAKICAgICAv
KiBDb21waWxlZC1pbiBzdXBwb3J0IHdoaWNoIHBlcnRhaW5zIHRvIG1pdGln
YXRpb25zLiAqLwogICAgIGlmICggSVNfRU5BQkxFRChDT05GSUdfSU5ESVJF
Q1RfVEhVTkspIHx8IElTX0VOQUJMRUQoQ09ORklHX1NIQURPV19QQUdJTkcp
IHx8CkBAIC0xNTI0LDYgKzE1MjcsNzcgQEAgc3RhdGljIHZvaWQgX19pbml0
IHJmZHNfY2FsY3VsYXRpb25zKHZvaWQpCiAgICAgc2V0dXBfZm9yY2VfY3B1
X2NhcChYODZfRkVBVFVSRV9SRkRTX05PKTsKIH0KIAorLyoKKyAqIFRyYW5z
aWVudCBTY2hlZHVsZXIgQXR0YWNrcworICoKKyAqIGh0dHBzOi8vd3d3LmFt
ZC5jb20vY29udGVudC9kYW0vYW1kL2VuL2RvY3VtZW50cy9yZXNvdXJjZXMv
YnVsbGV0aW4vdGVjaG5pY2FsLWd1aWRhbmNlLWZvci1taXRpZ2F0aW5nLXRy
YW5zaWVudC1zY2hlZHVsZXItYXR0YWNrcy5wZGYKKyAqLworc3RhdGljIHZv
aWQgX19pbml0IHRzYV9jYWxjdWxhdGlvbnModm9pZCkKK3sKKyAgICB1bnNp
Z25lZCBpbnQgY3Vycl9yZXYsIG1pbl9yZXY7CisKKyAgICAvKiBUU0EgaXMg
b25seSBrbm93biB0byBhZmZlY3QgQU1EIHByb2Nlc3NvcnMgYXQgdGhpcyB0
aW1lLiAqLworICAgIGlmICggYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yICE9
IFg4Nl9WRU5ET1JfQU1EICkKKyAgICAgICAgcmV0dXJuOworCisgICAgLyog
SWYgd2UncmUgdmlydHVhbGlzZWQsIGRvbid0IGF0dGVtcHQgdG8gc3ludGhl
c2lzZSBhbnl0aGluZy4gKi8KKyAgICBpZiAoIGNwdV9oYXNfaHlwZXJ2aXNv
ciApCisgICAgICAgIHJldHVybjsKKworICAgIC8qCisgICAgICogQWNjb3Jk
aW5nIHRvIHRoZSB3aGl0ZXBhcGVyLCBzb21lIEZhbTFBIENQVXMgKE1vZGVs
cyAweDAwLi4uMHg0ZiwKKyAgICAgKiAweDYwLi4uMHg3ZikgYXJlIG5vdCB2
dWxuZXJhYmxlIGJ1dCBkb24ndCBlbnVtZXJhdGUgVFNBX3tTUSxMMX1fTk8u
ICBJZgorICAgICAqIHdlIHNlZSBlaXRoZXIgZW51bWVyYXRlZCwgYXNzdW1l
IGJvdGggYXJlIGNvcnJlY3QgLi4uCisgICAgICovCisgICAgaWYgKCBjcHVf
aGFzX3RzYV9zcV9ubyB8fCBjcHVfaGFzX3RzYV9sMV9ubyApCisgICAgICAg
IHJldHVybjsKKworICAgIC8qCisgICAgICogLi4uIG90aGVyd2lzZSwgc3lu
dGhlc2lzZSB0aGVtLiAgQ1BVcyBvdGhlciB0aGFuIEZhbTE5IChaZW4zLzQp
IGFyZQorICAgICAqIHN0YXRlZCB0byBiZSBub3QgdnVsbmVyYWJsZS4KKyAg
ICAgKi8KKyAgICBpZiAoIGJvb3RfY3B1X2RhdGEueDg2ICE9IDB4MTkgKQor
ICAgIHsKKyAgICAgICAgc2V0dXBfZm9yY2VfY3B1X2NhcChYODZfRkVBVFVS
RV9UU0FfU1FfTk8pOworICAgICAgICBzZXR1cF9mb3JjZV9jcHVfY2FwKFg4
Nl9GRUFUVVJFX1RTQV9MMV9OTyk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICAvKgorICAgICAqIEZhbTE5IENQVXMgZ2V0IFZFUldfQ0xFQVIg
d2l0aCBuZXcgZW5vdWdoIG1pY3JvY29kZSwgYnV0IG11c3QKKyAgICAgKiBz
eW50aGVzaXNlIHRoZSBDUFVJRCBiaXQuCisgICAgICovCisgICAgY3Vycl9y
ZXYgPSB0aGlzX2NwdShjcHVfc2lnKS5yZXY7CisgICAgc3dpdGNoICggY3Vy
cl9yZXYgPj4gOCApCisgICAgeworICAgIGNhc2UgMHgwYTAwMTE6IG1pbl9y
ZXYgPSAweDBhMDAxMWQ3OyBicmVhazsKKyAgICBjYXNlIDB4MGEwMDEyOiBt
aW5fcmV2ID0gMHgwYTAwMTIzYjsgYnJlYWs7CisgICAgY2FzZSAweDBhMDA4
MjogbWluX3JldiA9IDB4MGEwMDgyMGQ7IGJyZWFrOworICAgIGNhc2UgMHgw
YTEwMTE6IG1pbl9yZXYgPSAweDBhMTAxMTRjOyBicmVhazsKKyAgICBjYXNl
IDB4MGExMDEyOiBtaW5fcmV2ID0gMHgwYTEwMTI0YzsgYnJlYWs7CisgICAg
Y2FzZSAweDBhMTA4MTogbWluX3JldiA9IDB4MGExMDgxMDk7IGJyZWFrOwor
ICAgIGNhc2UgMHgwYTIwMTA6IG1pbl9yZXYgPSAweDBhMjAxMDJlOyBicmVh
azsKKyAgICBjYXNlIDB4MGEyMDEyOiBtaW5fcmV2ID0gMHgwYTIwMTIxMTsg
YnJlYWs7CisgICAgY2FzZSAweDBhNDA0MTogbWluX3JldiA9IDB4MGE0MDQx
MDg7IGJyZWFrOworICAgIGNhc2UgMHgwYTUwMDA6IG1pbl9yZXYgPSAweDBh
NTAwMDEyOyBicmVhazsKKyAgICBjYXNlIDB4MGE2MDEyOiBtaW5fcmV2ID0g
MHgwYTYwMTIwYTsgYnJlYWs7CisgICAgY2FzZSAweDBhNzA0MTogbWluX3Jl
diA9IDB4MGE3MDQxMDg7IGJyZWFrOworICAgIGNhc2UgMHgwYTcwNTI6IG1p
bl9yZXYgPSAweDBhNzA1MjA4OyBicmVhazsKKyAgICBjYXNlIDB4MGE3MDgw
OiBtaW5fcmV2ID0gMHgwYTcwODAwODsgYnJlYWs7CisgICAgY2FzZSAweDBh
NzBjMDogbWluX3JldiA9IDB4MGE3MGMwMDg7IGJyZWFrOworICAgIGNhc2Ug
MHgwYWEwMDI6IG1pbl9yZXYgPSAweDBhYTAwMjE2OyBicmVhazsKKyAgICBk
ZWZhdWx0OgorICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5JTkcKKyAgICAg
ICAgICAgICAgICJVbnJlY29nbmlzZWQgQ1BVICUwMngtJTAyeC0lMDJ4LCB1
Y29kZSAweCUwOHggZm9yIFRTQSBtaXRpZ2F0aW9uXG4iLAorICAgICAgICAg
ICAgICAgYm9vdF9jcHVfZGF0YS54ODYsIGJvb3RfY3B1X2RhdGEueDg2X21v
ZGVsLAorICAgICAgICAgICAgICAgYm9vdF9jcHVfZGF0YS54ODZfbWFzaywg
Y3Vycl9yZXYpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYg
KCBjdXJyX3JldiA+PSBtaW5fcmV2ICkKKyAgICAgICAgc2V0dXBfZm9yY2Vf
Y3B1X2NhcChYODZfRkVBVFVSRV9WRVJXX0NMRUFSKTsKK30KKwogc3RhdGlj
IGJvb2wgX19pbml0IGNwdV9oYXNfZ2RzKHZvaWQpCiB7CiAgICAgLyoKQEAg
LTIyMjEsNiArMjI5NSw3IEBAIHZvaWQgX19pbml0IGluaXRfc3BlY3VsYXRp
b25fbWl0aWdhdGlvbnModm9pZCkKICAgICAgKiBodHRwczovL3d3dy5pbnRl
bC5jb20vY29udGVudC93d3cvdXMvZW4vZGV2ZWxvcGVyL2FydGljbGVzL3Rl
Y2huaWNhbC9zb2Z0d2FyZS1zZWN1cml0eS1ndWlkYW5jZS90ZWNobmljYWwt
ZG9jdW1lbnRhdGlvbi9pbnRlbC1hbmFseXNpcy1taWNyb2FyY2hpdGVjdHVy
YWwtZGF0YS1zYW1wbGluZy5odG1sCiAgICAgICogaHR0cHM6Ly93d3cuaW50
ZWwuY29tL2NvbnRlbnQvd3d3L3VzL2VuL2RldmVsb3Blci9hcnRpY2xlcy90
ZWNobmljYWwvc29mdHdhcmUtc2VjdXJpdHktZ3VpZGFuY2UvdGVjaG5pY2Fs
LWRvY3VtZW50YXRpb24vcHJvY2Vzc29yLW1taW8tc3RhbGUtZGF0YS12dWxu
ZXJhYmlsaXRpZXMuaHRtbAogICAgICAqIGh0dHBzOi8vd3d3LmludGVsLmNv
bS9jb250ZW50L3d3dy91cy9lbi9kZXZlbG9wZXIvYXJ0aWNsZXMvdGVjaG5p
Y2FsL3NvZnR3YXJlLXNlY3VyaXR5LWd1aWRhbmNlL2Fkdmlzb3J5LWd1aWRh
bmNlL3JlZ2lzdGVyLWZpbGUtZGF0YS1zYW1wbGluZy5odG1sCisgICAgICog
aHR0cHM6Ly93d3cuYW1kLmNvbS9jb250ZW50L2RhbS9hbWQvZW4vZG9jdW1l
bnRzL3Jlc291cmNlcy9idWxsZXRpbi90ZWNobmljYWwtZ3VpZGFuY2UtZm9y
LW1pdGlnYXRpbmctdHJhbnNpZW50LXNjaGVkdWxlci1hdHRhY2tzLnBkZgog
ICAgICAqCiAgICAgICogUmVsZXZhbnQgdWNvZGVzOgogICAgICAqCkBAIC0y
MjUzLDkgKzIzMjgsMTggQEAgdm9pZCBfX2luaXQgaW5pdF9zcGVjdWxhdGlv
bl9taXRpZ2F0aW9ucyh2b2lkKQogICAgICAqCiAgICAgICogLSBNYXJjaCAy
MDIzLCBmb3IgUkZEUy4gIEVudW1lcmF0ZSBSRkRTX0NMRUFSIHRvIG1lYW4g
dGhhdCBWRVJXIG5vdwogICAgICAqICAgc2NydWJzIG5vbi1hcmNoaXRlY3R1
cmFsIGVudHJpZXMgZnJvbSBjZXJ0YWluIHJlZ2lzdGVyIGZpbGVzLgorICAg
ICAqCisgICAgICogLSBKdWx5IDIwMjUsIGZvciBUU0EuICBJbnRyb2R1Y2Vz
IFZFUlcgc2lkZSBlZmZlY3RzIHRvIG1pdGlnYXRlCisgICAgICogICBUU0Ff
e1NRL0wxfS4gIFhlbiBtdXN0IHN5bnRoZXNpc2UgdGhlIFZFUldfQ0xFQVIg
ZmVhdHVyZSBiYXNlZCBvbgorICAgICAqICAgbWljcm9jb2RlIHZlcnNpb24u
CisgICAgICoKKyAgICAgKiAgIE5vdGUsIHRoZXNlIG1pY3JvY29kZSB1cGRh
dGVzIHdlcmUgcHJvZHVjZWQgYmVmb3JlIHRoZSByZW1lZGlhdGlvbiBvZgor
ICAgICAqICAgdGhlIG1pY3JvY29kZSBzaWduYXR1cmUgaXNzdWVzLCBhbmQg
YXJlIGluY2x1ZGVkIGluIHRoZSBmaXJ3bWFyZQorICAgICAqICAgdXBkYXRl
cyBmaXhpbmcgdGhlIGVudHJ5c2lnbiB2dWxuZXJhYmlsaXR5IGZyb20gfkRl
Y2VtYmVyIDIwMjQuCiAgICAgICovCiAgICAgbWRzX2NhbGN1bGF0aW9ucygp
OwogICAgIHJmZHNfY2FsY3VsYXRpb25zKCk7CisgICAgdHNhX2NhbGN1bGF0
aW9ucygpOwogCiAgICAgLyoKICAgICAgKiBQYXJ0cyB3aGljaCBlbnVtZXJh
dGUgRkJfQ0xFQVIgYXJlIHRob3NlIHdpdGggbm93LXVwZGF0ZWQgbWljcm9j
b2RlCkBAIC0yMjg3LDIxICsyMzcxLDI3IEBAIHZvaWQgX19pbml0IGluaXRf
c3BlY3VsYXRpb25fbWl0aWdhdGlvbnModm9pZCkKICAgICAgKiBNTFBEUy9N
RkJEUyB3aGVuIFNNVCBpcyBlbmFibGVkLgogICAgICAqLwogICAgIGlmICgg
b3B0X3ZlcndfcHYgPT0gLTEgKQotICAgICAgICBvcHRfdmVyd19wdiA9IGNw
dV9oYXNfdXNlZnVsX21kX2NsZWFyIHx8IGNwdV9oYXNfcmZkc19jbGVhcjsK
KyAgICAgICAgb3B0X3ZlcndfcHYgPSAoY3B1X2hhc191c2VmdWxfbWRfY2xl
YXIgfHwgY3B1X2hhc19yZmRzX2NsZWFyIHx8CisgICAgICAgICAgICAgICAg
ICAgICAgIGNwdV9oYXNfdmVyd19jbGVhcik7CiAKICAgICBpZiAoIG9wdF92
ZXJ3X2h2bSA9PSAtMSApCi0gICAgICAgIG9wdF92ZXJ3X2h2bSA9IGNwdV9o
YXNfdXNlZnVsX21kX2NsZWFyIHx8IGNwdV9oYXNfcmZkc19jbGVhcjsKKyAg
ICAgICAgb3B0X3ZlcndfaHZtID0gKGNwdV9oYXNfdXNlZnVsX21kX2NsZWFy
IHx8IGNwdV9oYXNfcmZkc19jbGVhciB8fAorICAgICAgICAgICAgICAgICAg
ICAgICAgY3B1X2hhc192ZXJ3X2NsZWFyKTsKIAogICAgIC8qCi0gICAgICog
SWYgU01UIGlzIGFjdGl2ZSwgYW5kIHdlJ3JlIHByb3RlY3RpbmcgYWdhaW5z
dCBNRFMgb3IgTU1JTyBzdGFsZSBkYXRhLAorICAgICAqIElmIFNNVCBpcyBh
Y3RpdmUsIGFuZCB3ZSdyZSBwcm90ZWN0aW5nIGFnYWluc3QgYW55IG9mOgor
ICAgICAqICAgLSBNU0JEUworICAgICAqICAgLSBNTUlPIHN0YWxlIGRhdGEK
KyAgICAgKiAgIC0gVFNBLVNRCiAgICAgICogd2UgbmVlZCB0byBzY3J1YiBi
ZWZvcmUgZ29pbmcgaWRsZSBhcyB3ZWxsIGFzIG9uIHJldHVybiB0byBndWVz
dC4KICAgICAgKiBWYXJpb3VzIHBpcGVsaW5lIHJlc291cmNlcyBhcmUgcmVw
YXJ0aXRpb25lZCBhbW9uZ3N0IG5vbi1pZGxlIHRocmVhZHMuCiAgICAgICoK
LSAgICAgKiBXZSBkb24ndCBuZWVkIHRvIHNjcnViIG9uIGlkbGUgZm9yIFJG
RFMuICBUaGVyZSBhcmUgbm8gYWZmZWN0ZWQgY29yZXMKLSAgICAgKiB3aGlj
aCBzdXBwb3J0IFNNVCwgZGVzcGl0ZSB0aGVyZSBiZWluZyBhZmZlY3RlZCBj
b3JlcyBpbiBoeWJyaWQgc3lzdGVtcwotICAgICAqIHdoaWNoIGhhdmUgU01U
IGVsc2V3aGVyZSBpbiB0aGUgcGxhdGZvcm0uCisgICAgICogV2UgZG9uJ3Qg
bmVlZCB0byBzY3J1YiBvbiBpZGxlIGZvcjoKKyAgICAgKiAgIC0gUkZEUyAo
bm8gU01UIGFmZmVjdGVkIGNvcmVzKQorICAgICAqICAgLSBUU0EtTDEgKHV0
YWdzIG5ldmVyIHNoYXJlZCBiZXR3ZWVuIHRocmVhZHMpCiAgICAgICovCiAg
ICAgaWYgKCAoKGNwdV9oYXNfdXNlZnVsX21kX2NsZWFyICYmIChvcHRfdmVy
d19wdiB8fCBvcHRfdmVyd19odm0pKSB8fAorICAgICAgICAgIChjcHVfaGFz
X3ZlcndfY2xlYXIgJiYgIWNwdV9oYXNfdHNhX3NxX25vKSB8fAogICAgICAg
ICAgIG9wdF92ZXJ3X21taW8pICYmIGh3X3NtdF9lbmFibGVkICkKICAgICAg
ICAgc2V0dXBfZm9yY2VfY3B1X2NhcChYODZfRkVBVFVSRV9TQ19WRVJXX0lE
TEUpOwogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC14
ODYvY3B1ZmVhdHVyZXNldC5oIGIveGVuL2luY2x1ZGUvcHVibGljL2FyY2gt
eDg2L2NwdWZlYXR1cmVzZXQuaAppbmRleCA0ODBkNWY1OGNlMDkuLmY3MzEy
ZTBiMDRlNyAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2FyY2gt
eDg2L2NwdWZlYXR1cmVzZXQuaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMv
YXJjaC14ODYvY3B1ZmVhdHVyZXNldC5oCkBAIC0zMjEsNiArMzIxLDcgQEAg
WEVOX0NQVUZFQVRVUkUoTk9fSU5WRCwgICAgICAxMCozMiszMCkgLyogICBJ
TlZEIGluc3RydWN0aW9uIHVudXNhYmxlICovCiBYRU5fQ1BVRkVBVFVSRShO
T19ORVNUX0JQLCAgICAgICAgIDExKjMyKyAwKSAvKkEgIE5vIE5lc3RlZCBE
YXRhIEJyZWFrcG9pbnRzICovCiBYRU5fQ1BVRkVBVFVSRShGU19HU19OUywg
ICAgICAgICAgIDExKjMyKyAxKSAvKlN8IEZTL0dTIGJhc2UgTVNScyBub24t
c2VyaWFsaXNpbmcgKi8KIFhFTl9DUFVGRUFUVVJFKExGRU5DRV9ESVNQQVRD
SCwgICAgMTEqMzIrIDIpIC8qQSAgTEZFTkNFIGFsd2F5cyBzZXJpYWxpemlu
ZyAqLworWEVOX0NQVUZFQVRVUkUoVkVSV19DTEVBUiwgICAgICAgICAxMSoz
MisgNSkgLyohQXwgVkVSVyBjbGVhcnMgbWljcm9hcmNoaXRlY3R1cmFsIGJ1
ZmZlcnMgKi8KIFhFTl9DUFVGRUFUVVJFKE5TQ0IsICAgICAgICAgICAgICAg
MTEqMzIrIDYpIC8qQSAgTnVsbCBTZWxlY3RvciBDbGVhcnMgQmFzZSAoYW5k
IGxpbWl0IHRvbykgKi8KIFhFTl9DUFVGRUFUVVJFKEFVVE9fSUJSUywgICAg
ICAgICAgMTEqMzIrIDgpIC8qUyAgQXV0b21hdGljIElCUlMgKi8KIFhFTl9D
UFVGRUFUVVJFKEFNRF9GU1JTLCAgICAgICAgICAgMTEqMzIrMTApIC8qQSAg
RmFzdCBTaG9ydCBSRVAgU1RPU0IgKi8KQEAgLTM5Niw2ICszOTcsOCBAQCBY
RU5fQ1BVRkVBVFVSRShQQl9PUFRfQ1RSTCwgICAgICAgIDE2KjMyKzMyKSAv
KiAgIE1TUl9QQl9PUFRfQ1RSTC5JQlBCX0FMVCAqLwogWEVOX0NQVUZFQVRV
UkUoSVRTX05PLCAgICAgICAgICAgICAxNiozMis2MikgLyohQSBObyBJbmRp
cmVjdCBUYXJnZXQgU2VsZWN0aW9uICovCiAKIC8qIEFNRC1kZWZpbmVkIENQ
VSBmZWF0dXJlcywgQ1BVSUQgbGV2ZWwgMHg4MDAwMDAyMS5lY3gsIHdvcmQg
MTggKi8KK1hFTl9DUFVGRUFUVVJFKFRTQV9TUV9OTywgICAgICAgICAgMTgq
MzIrIDEpIC8qQSAgTm8gU3RvcmUgUXVldWUgVHJhbnNpdGl2ZSBTY2hlZHVs
ZXIgQXR0YWNrcyAqLworWEVOX0NQVUZFQVRVUkUoVFNBX0wxX05PLCAgICAg
ICAgICAxOCozMisgMikgLypBICBObyBMMUQgVHJhbnNpdGl2ZSBTY2hlZHVs
ZXIgQXR0YWNrcyAqLwogCiAjZW5kaWYgLyogWEVOX0NQVUZFQVRVUkUgKi8K
IAo=

--=separator--


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 15:54:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 15:54:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099562.1453349 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urex1-00088P-QG; Thu, 28 Aug 2025 15:54:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099562.1453349; Thu, 28 Aug 2025 15:54: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 1urex1-00088I-N3; Thu, 28 Aug 2025 15:54:11 +0000
Received: by outflank-mailman (input) for mailman id 1099562;
 Thu, 28 Aug 2025 15:54:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=lRvb=3I=epam.com=dmytro_prokopchuk1@srs-se1.protection.inumbo.net>)
 id 1urewz-00088C-PF
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 15:54:10 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3a6fc460-8427-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 17:54:08 +0200 (CEST)
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com (2603:10a6:150:da::5)
 by VI1PR03MB10062.eurprd03.prod.outlook.com (2603:10a6:800:1cd::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.16; Thu, 28 Aug
 2025 15:54:03 +0000
Received: from GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e]) by GV2PR03MB9572.eurprd03.prod.outlook.com
 ([fe80::edd1:842f:9b14:509e%3]) with mapi id 15.20.9052.019; Thu, 28 Aug 2025
 15:54:03 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3a6fc460-8427-11f0-8adc-4578a1afcccb
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=vAY5Rgm++mydFWe60OPsuihrYEjsR8F7ZWj96T4PF+fabsEZ2/GuOnCnl8kIqJi7dKpPkn3cfhs2/7aiGlfBZfQVnfH2PpB33+Ttukno+DGp8dnwM4unwWGrVr66Xa6JvOEqivuH4ilsGSCKUwmZNxTTDHiWECtl+SjEfMFaoQxK3hXrAD9TSq9EL3MONun/v68CBJr4arUIW3xOdYGCr77cf3ZXW9oLT5MA2cs0Uh6Ul9RPXqWgld0bDw4neKY441m7qf26Ig4bpU6b/52tl7kgVCZV6CfeZU1p4gHZrZKFbJQXo/VDVEJ5RcTT0tdri7600B9UMORzWsb5Kswuyg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=E23g8jVphwzpPkr1w172zvDJiB851Uccs7yXXG5zbVc=;
 b=XVKqwaQEO1UM5oF718V2lO/pPxsufCs7WSN27F8yf3+1eCvxmoyvoCZOslptupi5V/IWZHG+pTqFIcHPV72/tynVgsP0Ta2WtN8cYyibPCgMyGNu/edSjN6c20KToNarXiFU4NdsyaOU6fOgmnwHOv1HXlvXg5so7vAc/+odg1tN+UN10NNL4DNmnhUa/B0N8BUJed/KKMROrnifvpFygrib2riybBD1qtsTGnN8/1dXX64ZMXXd7X1ZGtM1j5FHOOWsGkgqAmg8HXBosRua+pbeehn9OWo1w9dqDgZYvebmfjhfhvDbmyNy1C3QzbsynwQAYDIYRtaZAXp/0cgi8g==
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=E23g8jVphwzpPkr1w172zvDJiB851Uccs7yXXG5zbVc=;
 b=vEDo/UF2vjpGX/Hyl5NgFmNpAAOJknZeAtCRJO9uj09fDGErqovk5EPY88KZMapSF9B0lD8d8ooUQ4RVsWy0O+l0MWvqj0x9HHZN1XQo1ex8914wZ5dxAcEkQpqlIKFKBTSz5bPrNDAVxuAmFJpn02hOxDuqSuSvdyBfve4puwXJkAs/dwF4NKDfPrPmHvnnzyLSldZfrvZ7s59zT4EknTezQ0DEDstjf/ZQnjqnDaSLptHZ+QdCO60XEmKj3dHHDSA/rhyn1mqc+9O+mxfpHBugd4DOM3U90eus6TRy0W/s9txaJjwlicGZdpHYsB63qp6TO33hO6hWfLilvPzD6w==
From: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
To: Nicola Vetrini <nicola.vetrini@bugseng.com>, Jan Beulich
	<jbeulich@suse.com>, Stefano Stabellini <sstabellini@kernel.org>
CC: Doug Goldstein <cardoe@cardoe.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?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] misra: consider conversion from UL or (void*) to function
 pointer as safe
Thread-Topic: [PATCH] misra: consider conversion from UL or (void*) to
 function pointer as safe
Thread-Index:
 AQHcETrg9Y9S2hDXvUqVfYmm522krbRswSIAgAAGvACAAhrPAIAEeW2AgAAEDACABOVWAA==
Date: Thu, 28 Aug 2025 15:54:03 +0000
Message-ID: <63a8e9f8-61c7-4443-a114-82db08c45f69@epam.com>
References:
 <9e5e4ff2c7ba0a90a6ac403e2de9318e18949274.1755628705.git.dmytro_prokopchuk1@epam.com>
 <90fb95a3-4b32-4785-a77c-373e5b9da6ed@suse.com>
 <e1e2abdf0ef8708097aa78440eeb7147@bugseng.com>
 <6b912698-b871-4819-ac30-14325d0be146@epam.com>
 <498f9629d2dda3f305c11512908b1325@bugseng.com>
 <d1fd1bbc474aad5a6a9841a8c109126a@bugseng.com>
In-Reply-To: <d1fd1bbc474aad5a6a9841a8c109126a@bugseng.com>
Accept-Language: en-US, uk-UA, ru-RU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV2PR03MB9572:EE_|VI1PR03MB10062:EE_
x-ms-office365-filtering-correlation-id: 078fa6f3-2a61-44e0-d4eb-08dde64b1ca9
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|7416014|376014|42112799006|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?Q3dHQWZZcTFmbUZqRnBBdHFXYnB4cEdWMHBMUTcyeDBSNGNjZVV1b25ic1Rs?=
 =?utf-8?B?VmgvZE8vS3lJRzRLMTlqb1pkSk5JYm9XSnBlNExQYWZZazJMaytMSC81L1B3?=
 =?utf-8?B?c3diV1RGMTZJUlNDK2lpK2I3NGh6U3RvTUxqWGZjU0hkMk95NHVBeTdqN2ww?=
 =?utf-8?B?MGI3ODRCVE1HQU12ZHgvL1VGTFJ2V3JLcUp0SWlaTjFFcjdwNEVJRDZvWWR2?=
 =?utf-8?B?Z05DVjRNQjRpQUM0WWp5K1YydWxaUVI4R2hyalpDNEF3eUtoSlZ5bk45RVE5?=
 =?utf-8?B?Tk9pb3doU3I5b1Evd3huK25FY2tmazJVTmswSUFXOFRSN0UvcWtKNEhnWlFI?=
 =?utf-8?B?SzdYbHNZeWZsZGcrV1NwM0EyaUpLWEt3RTRLS0hFemF2UStqTTVwbml2MWZU?=
 =?utf-8?B?U2ZUeFBGY3dFNloxQUFJMkF6Sm8zSzUyTGJxM2FGNm5aQmZjaCtOTG9UZVRO?=
 =?utf-8?B?eWtGdXhCQTkyY1VlWXgzMmYvUHlWWDdXcHZYV1NmQ3dlbFl1bUpSMUJWY2Mv?=
 =?utf-8?B?NGUwTW42VHJaWFJ2czhNUjJFaDc0OHJGd1ZSYlhHa0JoVTlGZmpwQXNWZWxQ?=
 =?utf-8?B?bmhYTWMxVU94b2grTzJ6bDZuOU1BVzA3OU5zS0UvRHQwbXRhVzZWbHdMR0p4?=
 =?utf-8?B?S0FobnVvbCtvSVlrenNHcEw0bnRsdytyejRaU1dEOElMUWdJQVU0N21SSGNp?=
 =?utf-8?B?NTc5WllKL00vTTFFNllxOXEzNzBkRGIwZ3ZhQ1pVL05HdjMyL3I0RHNCUGdG?=
 =?utf-8?B?dFN1aGV5amlTazlBS0tRb0JtaGxEMHNaZDNvdU9IaUFNQk5mWWg0a25UYjZQ?=
 =?utf-8?B?UzJFTHBLNDQ2NUp3QjRUeGU0NURMRWpQNjkrYVZXdXhacytXSzBnLy92TE1u?=
 =?utf-8?B?UkhKSXpMYWlEQXVaR1VkY0dLaGl6Mi9TYm9RR09IRlRQaXlUL2lNM3Nmb2hT?=
 =?utf-8?B?SzduZ0g1aW5Cd2tzRS9odGZSTHF6OGNyUGpxZDQ2MzgyNk95MGJzcEd0UTBL?=
 =?utf-8?B?YkYyYnZveGR3NjRmOWRPMFdEMkJBVDA4MlpXQllIUVJObkF4R3g5NWJzbXRK?=
 =?utf-8?B?STVRcHAvMU9FVXNBZTlta2pWVko0Vi92cXNVSTRvT0x2TDBaaUlKWjZlVzhI?=
 =?utf-8?B?WlA1czRKMUUrM01HVThoc1BtMTU5QTV1TzEzMnNUQ2Fkb2Z6RjFxaEpyUFIr?=
 =?utf-8?B?OWZSVGllTE1HYTNQdXk0aWVOelpPMEg3RHlDZmo1YzE3by9ObzZ4cGtWYzNF?=
 =?utf-8?B?ZHRzcXRSbCtOSVpHeExGTXNSWGdqekVNc2F4WHgvVm9vSDRiTEluK20xd2xi?=
 =?utf-8?B?R2VjRTBEdnQ4dFdEc0d5c1R3c0dvL1lzcFBOeEV6K2tZUGUvTUdEc1lEL3M0?=
 =?utf-8?B?WXQrVjBXdjZGZkFTWWFmVm9KM1Ywd2hWazhpdG9iSlV3anJtQTA5WEVCVVFy?=
 =?utf-8?B?TGxlWjZuc084U2VnNnUrdDIwWVhFSmN4T3BFS1ZTMGZrV2N3R3pmNVNqNzhF?=
 =?utf-8?B?MGdKTlJKa0I1Tk0rNWZjYUxBaWxGdDN4Tndxb0N5Szk1djJ5K0ZwRUdSdUFV?=
 =?utf-8?B?dUdLTS9hZDFZdWc3YzFRcG0wVndwMTBMOTgxMU90QWhHSEFQVDVuSGV3dmRs?=
 =?utf-8?B?MXlKOEpleW5YVmphM1p5UEoyejVMVUovNi9WMWdGOWFQcFlQekx4cGJsRWov?=
 =?utf-8?B?NUZXWDlPQ28ydVB0eVAwd3JMR1BEMG5idisrZHpYUUlvdXlYcE1NSFFvM1U5?=
 =?utf-8?B?VTN1MUlVUGRlYmpMOHVldVp6YU02Y244dEl5ZG1DVHJSdk5nRGdlZjNzeUdy?=
 =?utf-8?B?Ni9CQmxHL2NYam5vcWs4RHFLMC9keTZIM3o4dkpucXZqem1jb2h0bU8xSmU4?=
 =?utf-8?B?QkIyOGp1TVZhQlMvU0UwdlRmWjluSHJsOGZKdTNvNHA4U3hIS1NsV0pza0ZQ?=
 =?utf-8?Q?6BLfYSh92Wg=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB9572.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014)(42112799006)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?WjRBRkp6SDgxeFJqaDZOMDVwSUlpa1hnUjRYNmhEZUp6QzR4enpjTUFaNWFh?=
 =?utf-8?B?KzdIOWhtVG8yOEltem4rS0FiRmszM1QxSXpuQnhhcC9CRVJWczBpVzUyUmxm?=
 =?utf-8?B?MHlaVGprdWdPWGVZUUF6RFg0R0FYTklKS2pvekRCaDQ5elJZTThRcFNRdEJC?=
 =?utf-8?B?dHN5aVBmWDRSSE1ZaUlzVVJjNUwwN0NBcGk3dWxlSVR5R3loYWhFTHBpMlpZ?=
 =?utf-8?B?NG0rMURJT2NEandaMGg1bzJqc0Z6R2x0a2VLOHJ4M2l3U3B3ckdGMWUyYUsx?=
 =?utf-8?B?TjJRMTZkd1lLeVVtUnNNRTM2U0VSTE5heHdzdVhJZVl4T2tYRGFxS1Q4cUNC?=
 =?utf-8?B?ckpkZ3UwZXpNSXA2MStMR3h5UnNINE53c2pqZXZLYUI4YXNIejNTaG12d294?=
 =?utf-8?B?V2pHNlJ6aGU2cWNCeStSRUNnTmFCM2pnd0xrTFpjUE5nMUNkSjJtYXAxR2FU?=
 =?utf-8?B?WEhqRzBlZUJOWTdlSDJ5bEpDT2lJME5nbDN0YzAwVys5NVRaRDBIYVgyYmZO?=
 =?utf-8?B?VTBST3JkWUVVM1hzWkZ3bUxXWDF5cisvS2VNeTU5NCtWSE5hcXd3aldVdlUz?=
 =?utf-8?B?VDV4VTA1NDViR3RsTHpHbDJLUFVSWUd5d1plUXIvZHpuUkhubGN0U1FHMkVF?=
 =?utf-8?B?Q1pyUi93WVNFV3RZTWJ5RXVCOEVYaVJ6SGdaTlpGMnQ0RUtEMFBXa2h3dHRh?=
 =?utf-8?B?aGN1cnplMUVJR2txYnBvdjBtWWFSNmZBRVFDY0sxc21TVkZYKzIwbmFVMUdP?=
 =?utf-8?B?OE5FMUxnMXNpeWp4K29FV3VTVWhvNXhVeGl5dVRmeDVrWkRUYkwraTFWRnRn?=
 =?utf-8?B?VXoxWnljMURxQTNGaURDLzU0MkprWFpzRGE2M0lObURpNVNOWE1rMGdNVkxB?=
 =?utf-8?B?REMrNS9FSW1oUFhTU3NuYkgxMk1mVTJNdTRndzd0Nk1HZkhUdW9BRTdzTm52?=
 =?utf-8?B?Y1ZJYnlLRFk0WjRpUEd6NktoMDgzb1RJa0xQa1hUdUFmMmpCbEluTDYvb1oy?=
 =?utf-8?B?ck1neFFjYndJSnB3WDFTdVFYM1VPSEdxYyswOEdFbHdpd2dDQmZZOC9oRjJW?=
 =?utf-8?B?TmpSd3Z1UTdLckFEdXhOWGFXa1htZDlja2YzcXUxZmI1bFhXSmV4MDgvbWpD?=
 =?utf-8?B?U2RjMU9LcXlQUmFaeGJ3NVVUSHBOcm9JQXdCMWY0WFZNakJ3a0ZNYTNGamFO?=
 =?utf-8?B?ZmR5cHlkOUdRVFh1a2Q5Y0ZzYXpmT1hFV2Jpa3RmaFUrLzEwbG80bzhKY2h2?=
 =?utf-8?B?QVIveWhzejk3eTVsVXFsQ0plandOM0NzRnAra1VQSkJVTUZIMk9jMmZYT1I1?=
 =?utf-8?B?dUEvdDNUUVI3T1g3TVZxR1RrY3F1MjQ4elc5RWgrNDZqR3Zyb00rREg5YS9s?=
 =?utf-8?B?bEVaYVpQc0VVRHVpd280RjB2T3ZncUtPYSs5eXR1SVRvd0h2R3l6aUR1T1FL?=
 =?utf-8?B?QVVKM0dXU014K2loVEhSNUtvdG4wYlhMckl6YUxZV0tETzB2LzdueXdBV3RU?=
 =?utf-8?B?VW1IOWx4OVl5ejZMZHRGeHZvWFFOeFVMWEFQakx5ZG9YckRYYWJxZjZGTzVV?=
 =?utf-8?B?RHdMT0JHcUt2akVrODdVVjNRREpzWm9Qdm5TR2tENktHRy9tNktna3Y1aXlQ?=
 =?utf-8?B?TjljOHN0alBpUUpkYlo0cUY3emdVTEd3eWJ1K1NxVFplQldHRG9uYXRJMzhY?=
 =?utf-8?B?SFMyK0lsWnZuNXZRcGUvNEd3SXhjTHdQRUt0N25BT3ptRzdHOHRBK2R6eXNU?=
 =?utf-8?B?RE9BaEh1T2wrQkJjbm5INHlINjVXdTVwVGdBYmZaclZuVitrNHc3Ti9kR2JP?=
 =?utf-8?B?ekJZSm1iRkZtR1luamxQYUdnVDJMUXhwZUpRWE90T3crVVdRVWlSWk43M2JV?=
 =?utf-8?B?Rk8xRE13TGcyTWRTRFJDcURMS1lHVjJ3UXpCdVl3ZG54QmVNajN1eEF5cmw1?=
 =?utf-8?B?VGhTZmZtZm02ZzNtbkNyWHgzMG52UTlteC84NWJ6dDZpcFYxTndEOHNsSWd1?=
 =?utf-8?B?bTMxSWw5T1A2MW9EMTM5SkFaWWRNNlpjeDFBVFB5SUtiYzN5anNVZzZBcWRL?=
 =?utf-8?B?MFRjT0ZGMVpIeDZoV0xURDUwcmFKRzZWZTNDR2RPOExLYzdmaFlEUEY5dWtJ?=
 =?utf-8?B?VGpVT2l3WGppWjZiSXBOWUlYRFNYTDAwengyRG1EK1hXR0hlVHpBckdGaG04?=
 =?utf-8?B?ZGc9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <24EDA3099766D44AB9D3EAEA70C72BCC@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: GV2PR03MB9572.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 078fa6f3-2a61-44e0-d4eb-08dde64b1ca9
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Aug 2025 15:54:03.3669
 (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: /pOXx2dG5hfE/BjwYVENiQJGXw0uFEoyNmV+0JMqlzxNPNH+OiSFKYZH1A3pjcZ7h1WLVnfYLUd3nffwlXaj+xel0FU3vq1OESERMD+4dQc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR03MB10062

DQoNCk9uIDgvMjUvMjUgMTY6MDgsIE5pY29sYSBWZXRyaW5pIHdyb3RlOg0KPiBPbiAyMDI1LTA4
LTI1IDE0OjUzLCBOaWNvbGEgVmV0cmluaSB3cm90ZToNCj4+IE9uIDIwMjUtMDgtMjIgMTg6MzQs
IERteXRybyBQcm9rb3BjaHVrMSB3cm90ZToNCj4+PiBPbiA4LzIxLzI1IDExOjI1LCBOaWNvbGEg
VmV0cmluaSB3cm90ZToNCj4+Pj4gT24gMjAyNS0wOC0yMSAxMDowMSwgSmFuIEJldWxpY2ggd3Jv
dGU6DQo+Pj4+PiBPbiAxOS4wOC4yMDI1IDIwOjU1LCBEbXl0cm8gUHJva29wY2h1azEgd3JvdGU6
DQo+Pj4+Pj4gUnVsZSAxMS4xIHN0YXRlcyBhcyBmb2xsb3dpbmc6ICJDb252ZXJzaW9ucyBzaGFs
bCBub3QgYmUgcGVyZm9ybWVkDQo+Pj4+Pj4gYmV0d2VlbiBhIHBvaW50ZXIgdG8gYSBmdW5jdGlv
biBhbmQgYW55IG90aGVyIHR5cGUuIg0KPj4+Pj4+DQo+Pj4+Pj4gVGhlIGNvbnZlcnNpb24gZnJv
bSB1bnNpZ25lZCBsb25nIG9yICh2b2lkICopIHRvIGEgZnVuY3Rpb24gcG9pbnRlcg0KPj4+Pj4+
IGlzIHNhZmUgaW4gWGVuIGJlY2F1c2UgdGhlIGFyY2hpdGVjdHVyZXMgaXQgc3VwcG9ydHMgKGUu
Zy4sIHg4NiBhbmQNCj4+Pj4+PiBBUk0pIGd1YXJhbnRlZSBjb21wYXRpYmxlIHJlcHJlc2VudGF0
aW9ucyBiZXR3ZWVuIHRoZXNlIHR5cGVzLg0KPj4+Pj4NCj4+Pj4+IEkgdGhpbmsgd2UgbmVlZCB0
byBiZSBhcyBwcmVjaXNlIGFzIHBvc3NpYmxlIGhlcmUuIFRoZSBhcmNoaXRlY3R1cmVzDQo+Pj4+
PiBndWFyYW50ZWUgbm90aGluZywgdGhleSBvbmx5IG9mZmVyIG5lY2Vzc2FyeSBmdW5kYW1lbnRh
bHMuIEluIHRoZQ0KPj4+Pj4gV2luZG93cyB4ODYgQUJJLCBmb3IgZXhhbXBsZSwgeW91IGNhbid0
IGNvbnZlcnQgcG9pbnRlcnMgdG8vZnJvbSBsb25ncw0KPj4+Pj4gd2l0aG91dCBsb3NpbmcgZGF0
YS4gV2hhdCB3ZSBidWlsZCB1cG9uIGlzIHdoYXQgcmVzcGVjdGl2ZSBBQklzIHNheSwNCj4+Pj4+
IHBvc3NpYmx5IGluIGNvbWJpbmF0aW9uIG9mIGltcGxlbWVudGF0aW9uIHNwZWNpZmljcyBsZWZ0
IHRvIGNvbXBpbGVycy4NCj4+Pj4+DQo+Pj4+DQo+Pj4+ICsxLCBhIG1lbnRpb24gb2YgdGhlIGNv
bXBpbGVycyBhbmQgdGFyZ2V0cyB0aGlzIGRldmlhdGlvbiByZWxpZXMgDQo+Pj4+IHVwb24gaXMN
Cj4+Pj4gbmVlZGVkLg0KPj4+DQo+Pj4gTWF5YmUgd2l0aCB0aGlzIHdvcmRpbmc6DQo+Pj4NCj4+
PiBUaGlzIGRldmlhdGlvbiBpcyBiYXNlZCBvbiB0aGUgZ3VhcmFudGVlcyBwcm92aWRlZCBieSB0
aGUgc3BlY2lmaWMgQUJJcw0KPj4+IChlLmcuLCBBUk0gQUFQQ1MpIGFuZCBjb21waWxlcnMgKGUu
Zy4sIEdDQykgc3VwcG9ydGVkIGluIFhlbi4gVGhlc2UgQUJJcw0KPj4NCj4+IHMvc3VwcG9ydGVk
IGluL3N1cHBvcnRlZCBieS8NCj4+DQo+Pj4gZ3VhcmFudGVlIGNvbXBhdGlibGUgcmVwcmVzZW50
YXRpb25zIGZvciAndm9pZCAqJywgJ3Vuc2lnbmVkIGxvbmcnIGFuZA0KPj4+IGZ1bmN0aW9uIHBv
aW50ZXJzIGZvciB0aGUgc3VwcG9ydGVkIHRhcmdldCBwbGF0Zm9ybXMuIFRoaXMgYmVoYXZpb3Ig
aXMNCj4+DQo+PiBJdCdzIG5vdCBqdXN0IGFib3V0IHRoZSBndWFyYW50ZWVzIG9mIHRoZSBBQklz
OiBpdCdzIHRoZSBiZWhhdmlvciBvZiANCj4+IHRoZSBjb21waWxlciBmb3IgdGhvc2UgQUJJcyB0
aGF0IG1ha2VzIHRoaXMgc2FmZSBvciB1bnNhZmUuIElmIA0KPj4gcHJlc2VudCwgc3VjaCBkb2N1
bWVudGF0aW9uIHNob3VsZCBiZSBpbmNsdWRlZA0KPj4NCj4gDQo+IEluIGFueSBjYXNlLCBwcm92
aWRlZCB0aGF0IHRoZSB3b3JkaW5nIGNhbiBiZSBhZGp1c3RlZDoNCj4gDQo+IFJldmlld2VkLWJ5
OiBOaWNvbGEgVmV0cmluaSA8bmljb2xhLnZldHJpbmlAYnVnc2VuZy5jb20+DQoNClVwZGF0ZWQg
d29yZGluZzoNCg0KVGhpcyBkZXZpYXRpb24gZnJvbSBSdWxlIDExLjEgcmVsaWVzIG9uIGJvdGgg
QUJJIGRlZmluaXRpb25zIGFuZCBjb21waWxlcg0KaW1wbGVtZW50YXRpb25zIHN1cHBvcnRlZCBi
eSBYZW4uIFRoZSBTeXN0ZW0gViB4ODZfNjQgQUJJIGFuZCB0aGUgQUFyY2g2NA0KRUxGIEFCSSBk
ZWZpbmUgY29uc2lzdGVudCBhbmQgY29tcGF0aWJsZSByZXByZXNlbnRhdGlvbnMgKGkuZS4sIGhh
dmluZw0KdGhlIHNhbWUgc2l6ZSBhbmQgbWVtb3J5IGxheW91dCkgZm9yICd2b2lkIConLCAndW5z
aWduZWQgbG9uZycsIGFuZCBmdW5jdGlvbg0KcG9pbnRlcnMsIGVuYWJsaW5nIHNhZmUgY29udmVy
c2lvbnMgYmV0d2VlbiB0aGVzZSB0eXBlcyB3aXRob3V0IGRhdGEgbG9zcw0Kb3IgY29ycnVwdGlv
bi4gQWRkaXRpb25hbGx5LCBHQ0MgYW5kIENsYW5nLCBmYWl0aGZ1bGx5IGltcGxlbWVudCB0aGUg
QUJJDQpzcGVjaWZpY2F0aW9ucywgZW5zdXJpbmcgdGhhdCB0aGUgZ2VuZXJhdGVkIG1hY2hpbmUg
Y29kZSBjb25mb3JtcyB0byB0aGVzZQ0KZ3VhcmFudGVlcy4gRGV2ZWxvcGVycyBtdXN0IG5vdGUg
dGhhdCB0aGlzIGJlaGF2aW9yIGlzIG5vdCB1bml2ZXJzYWwgYW5kDQpkZXBlbmRzIG9uIHBsYXRm
b3JtLXNwZWNpZmljIEFCSXMgYW5kIGNvbXBpbGVyIGltcGxlbWVudGF0aW9ucy4NCg0KUmVmZXJl
bmNlczoNCi0gU3lzdGVtIFYgeDg2XzY0IEFCSTogDQpodHRwczovL2dpdGxhYi5jb20veDg2LXBz
QUJJcy94ODYtNjQtQUJJLy0vam9icy9hcnRpZmFjdHMvbWFzdGVyL3Jhdy94ODYtNjQtQUJJL2Fi
aS5wZGY/am9iPWJ1aWxkDQotIEFBcmNoNjQgRUxGIEFCSTogaHR0cHM6Ly9naXRodWIuY29tL0FS
TS1zb2Z0d2FyZS9hYmktYWEvcmVsZWFzZXMNCi0gR0NDOiBodHRwczovL2djYy5nbnUub3JnL29u
bGluZWRvY3MvZ2NjL0FSTS1PcHRpb25zLmh0bWwNCi0gQ2xhbmc6IGh0dHBzOi8vY2xhbmcubGx2
bS5vcmcvZG9jcy9Dcm9zc0NvbXBpbGF0aW9uLmh0bWwNCg0KVGhhbmtzLA0KRG15dHJvLg0KPiAN
Cj4+PiBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgYW5kIG1heSBub3QgYmUgcG9ydGFibGUgb3V0c2lk
ZSBvZiBzdXBwb3J0ZWQNCj4+PiBlbnZpcm9ubWVudHMuDQo+Pj4NCj4+Pj4NCj4+Pj4+PiAtLS0g
YS9kb2NzL21pc3JhL2RldmlhdGlvbnMucnN0DQo+Pj4+Pj4gKysrIGIvZG9jcy9taXNyYS9kZXZp
YXRpb25zLnJzdA0KPj4+Pj4+IEBAIC0zNzAsNiArMzcwLDE2IEBAIERldmlhdGlvbnMgcmVsYXRl
ZCB0byBNSVNSQSBDOjIwMTIgUnVsZXM6DQo+Pj4+Pj4gwqDCoMKgwqDCoMKgwqAgdG8gc3RvcmUg
aXQuDQo+Pj4+Pj4gwqDCoMKgwqDCoCAtIFRhZ2dlZCBhcyBgc2FmZWAgZm9yIEVDTEFJUi4NCj4+
Pj4+Pg0KPj4+Pj4+ICvCoMKgICogLSBSMTEuMQ0KPj4+Pj4+ICvCoMKgwqDCoCAtIFRoZSBjb252
ZXJzaW9uIGZyb20gdW5zaWduZWQgbG9uZyBvciAodm9pZCBcKikgdG8gYSBmdW5jdGlvbg0KPj4+
Pj4+IHBvaW50ZXIgZG9lcw0KPj4+Pj4+ICvCoMKgwqDCoMKgwqAgbm90IGxvc2UgYW55IGluZm9y
bWF0aW9uIG9yIHZpb2xhdGUgdHlwZSBzYWZldHkgYXNzdW1wdGlvbnMNCj4+Pj4+PiBpZiB1bnNp
Z25lZA0KPj4+Pj4+ICvCoMKgwqDCoMKgwqAgbG9uZyBvciAodm9pZCBcKikgdHlwZSBpcyBndWFy
YW50ZWVkIHRvIGJlIHRoZSBzYW1lIGJpdCBzaXplDQo+Pj4+Pj4gYXMgYQ0KPj4+Pj4+ICvCoMKg
wqDCoMKgwqAgZnVuY3Rpb24gcG9pbnRlci4gVGhpcyBlbnN1cmVzIHRoYXQgdGhlIGZ1bmN0aW9u
IHBvaW50ZXIgY2FuDQo+Pj4+Pj4gYmUgZnVsbHkNCj4+Pj4+PiArwqDCoMKgwqDCoMKgIHJlcHJl
c2VudGVkIHdpdGhvdXQgdHJ1bmNhdGlvbiBvciBjb3JydXB0aW9uLiBUaGUgbWFjcm8NCj4+Pj4+
PiBCVUlMRF9CVUdfT04gaXMNCj4+Pj4+PiArwqDCoMKgwqDCoMKgIGludGVncmF0ZWQgaW50byB4
ZW4vY29tbW9uL3ZlcnNpb24uYyB0byBjb25maXJtIGNvbnZlcnNpb24NCj4+Pj4+PiBjb21wYXRp
YmlsaXR5DQo+Pj4+Pj4gK8KgwqDCoMKgwqDCoCBhY3Jvc3MgYWxsIHRhcmdldCBwbGF0Zm9ybXMu
DQo+Pj4+Pj4gK8KgwqDCoMKgIC0gVGFnZ2VkIGFzIGBzYWZlYCBmb3IgRUNMQUlSLg0KPj4+Pj4N
Cj4+Pj4+IFdoeSB0aGUgZXNjYXBpbmcgb2YgKiBoZXJlLCB3aGVuIC4uLg0KPj4+Pj4NCj4+Pj4+
PiAtLS0gYS9kb2NzL21pc3JhL3J1bGVzLnJzdA0KPj4+Pj4+ICsrKyBiL2RvY3MvbWlzcmEvcnVs
ZXMucnN0DQo+Pj4+Pj4gQEAgLTQzMSw3ICs0MzEsMTMgQEAgbWFpbnRhaW5lcnMgaWYgeW91IHdh
bnQgdG8gc3VnZ2VzdCBhIGNoYW5nZS4NCj4+Pj4+PiDCoMKgwqDCoMKgIC0gQWxsIGNvbnZlcnNp
b25zIHRvIGludGVnZXIgdHlwZXMgYXJlIHBlcm1pdHRlZCBpZiB0aGUNCj4+Pj4+PiBkZXN0aW5h
dGlvbg0KPj4+Pj4+IMKgwqDCoMKgwqDCoMKgIHR5cGUgaGFzIGVub3VnaCBiaXRzIHRvIGhvbGQg
dGhlIGVudGlyZSB2YWx1ZS4gQ29udmVyc2lvbnMgdG8NCj4+Pj4+PiBib29sDQo+Pj4+Pj4gwqDC
oMKgwqDCoMKgwqAgYW5kIHZvaWQqIGFyZSBwZXJtaXR0ZWQuIENvbnZlcnNpb25zIGZyb20gJ3Zv
aWQgbm9yZXR1cm4gKCopDQo+Pj4+Pj4gKC4uLiknDQo+Pj4+Pj4gLcKgwqDCoMKgwqDCoCB0byAn
dm9pZCAoKikoLi4uKScgYXJlIHBlcm1pdHRlZC4NCj4+Pj4+PiArwqDCoMKgwqDCoMKgIHRvICd2
b2lkICgqKSguLi4pJyBhcmUgcGVybWl0dGVkLiBDb252ZXJzaW9ucyBmcm9tIHVuc2lnbmVkDQo+
Pj4+Pj4gbG9uZyBvcg0KPj4+Pj4+ICvCoMKgwqDCoMKgwqAgKHZvaWQgXCopIHRvIGEgZnVuY3Rp
b24gcG9pbnRlciBhcmUgcGVybWl0dGVkIGlmIHRoZSBzb3VyY2UNCj4+Pj4+PiB0eXBlIGhhcw0K
Pj4+Pj4+ICvCoMKgwqDCoMKgwqAgZW5vdWdoIGJpdHMgdG8gcmVzdG9yZSBmdW5jdGlvbiBwb2lu
dGVyIHdpdGhvdXQgdHJ1bmNhdGlvbiBvcg0KPj4+Pj4+IGNvcnJ1cHRpb24uDQo+Pj4+Pj4gK8Kg
wqDCoMKgwqDCoCBFeGFtcGxlOjoNCj4+Pj4+PiArDQo+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDC
oMKgIHVuc2lnbmVkIGxvbmcgZnVuY19hZGRyID0gKHVuc2lnbmVkIGxvbmcpJnNvbWVfZnVuY3Rp
b247DQo+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgIHZvaWQgKCpyZXN0b3JlZF9mdW5jKSh2
b2lkKSA9ICh2b2lkICgqKSh2b2lkKSlmdW5jX2FkZHI7DQo+Pj4+Pg0KPj4+Pj4gLi4uIGNvbnRl
eHQgaGVyZSBzdWdnZXN0cyB0aGV5IHdvcmsgZmluZSB1bi1lc2NhcGVkLCBhbmQgeW91IGV2ZW4g
YWRkDQo+Pj4+PiBzb21lIHVuLQ0KPj4+Pj4gZXNjYXBlZCBpbnN0YW5jZXMgYXMgd2VsbC4gUGVy
aGFwcyBJJ20gc2ltcGx5IHVuYXdhcmUgb2Ygc29tZQ0KPj4+Pj4gcGVjdWxpYXJpdHk/DQo+Pj4+
Pg0KPj4+Pg0KPj4+PiBUaGlzIGlzIGEgbGl0ZXJhbCByc3QgYmxvY2ssIHdoaWxlIHRoZSBvdGhl
ciBpcyBub3QgKCogYWN0cyBhcyBhIGJ1bGxldA0KPj4+PiBwb2ludCBpbiByc3QgaWlyYykNCj4+
Pg0KPj4+IFRoaXMgaXMgaG93ICJzcGhpbngtYnVpbGQiIHRvb2wgaW50ZXJwcmV0cyB0aGlzLg0K
Pj4+IDEuICogaW5zaWRlIHNpbmdsZSBxdW90ZXMgJycgLT4gbG9va3Mgbm9ybWFsLCBlLmcuIOKA
mHZvaWQgKCopKOKApinigJkNCj4+PiAyLiAqIHdpdGhvdXQgcXVvdGVzIC0+IHdhcm5pbmcNCj4+
PiBkZXZpYXRpb25zLnJzdDozNjk6IFdBUk5JTkc6IElubGluZSBlbXBoYXNpcyBzdGFydC1zdHJp
bmcgd2l0aG91dA0KPj4+IGVuZC1zdHJpbmcuIFtkb2N1dGlsc10NCj4+PiAzLiBcKiAtPiBsb29r
cyBub3JtYWwsIGUuZy4gKHZvaWQgKikNCj4+Pg0KPj4+IEJlY2F1c2UgdGhhdCB3ZSBuZWVkIHN1
Y2ggZm9ybWF0OiBcKg0KPj4+DQo+Pj4gRG15dHJvLg0KPj4+DQo+Pj4+DQo+Pj4+PiBKYW4NCj4+
Pj4NCj4g


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 16:01:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 16:01:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099573.1453358 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urf41-0001qs-Gf; Thu, 28 Aug 2025 16:01:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099573.1453358; Thu, 28 Aug 2025 16:01: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 1urf41-0001ql-Dq; Thu, 28 Aug 2025 16:01:25 +0000
Received: by outflank-mailman (input) for mailman id 1099573;
 Thu, 28 Aug 2025 16:01:24 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=AInb=3I=nvidia.com=jgg@srs-se1.protection.inumbo.net>)
 id 1urf40-0001qf-HE
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 16:01:24 +0000
Received: from NAM10-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam10on20600.outbound.protection.outlook.com
 [2a01:111:f403:2412::600])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3da5d2e0-8428-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 18:01:23 +0200 (CEST)
Received: from CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13)
 by CH0PR12MB8550.namprd12.prod.outlook.com (2603:10b6:610:192::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.22; Thu, 28 Aug
 2025 16:01:12 +0000
Received: from CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732]) by CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732%4]) with mapi id 15.20.9073.010; Thu, 28 Aug 2025
 16:01: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>
X-Inumbo-ID: 3da5d2e0-8428-11f0-8adc-4578a1afcccb
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Om/BPnGW3ybONVhhNEzf2AuwccXH98py5hPVxqOuSAk8HTsfTTcptHZMlv6jpYYBU92ZK+PNh8ZUsKOXl40b+OE1tjbRZG3kVZQt5Bl3l8Ct8euqFGDFQqPhYNI+Wb98DKmf9vt7PclZM01wuVO66Q+CRRZFOKoIlIyrEptnCSCy6lrKRu7TNj/FyoID8j6b2VJ0tmbeE84DFMOwJhel4Z5zOmxmog2aBLvHoLnKE3k46CC9rnzWZMZ+L4JkI6u1Uxs0uZEYDOrtcqkJBZKasDFE7MkBg262FA+FYTt/34oZ0SI+utZNuFZ45UZUNM2l9G8FPMRik398ojmybHIRag==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=EdstHkCHpawpiiJfH9Q2VpWGfYVCpet9NlPpEzQD2U8=;
 b=u1T5CCxCpwnppSirsnQ8EB332l2COzmGJ9dSqceybYnbMD6+MOvb1+w7vX4UvZoQ4Sq6DGTEyf3oPYEnIP9ylgzpEaonEAF2nLmEsjKRkG1sX+oep5dhagKK63dGQsq4Ec3mOLRsiIJi5lxvxoh0/MeyHHotivEEzl/FXRiQnoRjGcIDnVMrvg774MySaNpZvYsFUy3ZUYVGy0AomzyoezwyBUJMl33iYpA+zp9K7fu7ClFNZgY/ZFacz+KJqXkhhskY9Iu7vS9r3wWgUh+Hsqfs2dvQELAuY1X4iNk3kN8FQgYe3K5KI3GH+KLJN4uaQQYOn3+KuRx9mPtyrVR1cQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com;
 dkim=pass header.d=nvidia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=EdstHkCHpawpiiJfH9Q2VpWGfYVCpet9NlPpEzQD2U8=;
 b=NK/a1uBn2bAOPxY5btMMiD3DOxoyxkytv1FmKKE8Akl2SQvbJUkG+GTS+YiaIg/JP0/wXKF12JdQie5OBuRVoCR3MJU5mQQQCbL5/r9mbURKiSRltov7TayyGfXmZVNyVuaavfE5NS/+7Mme2tuPNAcSvd7qJ20wEFm6X73Y11iH03fs3sw0TZ48fUmStwO39m39qvAjKYfgDCkiQNfAUSKqlTVAsEJyWzSU+TYM7/ysF3S9++WDyig8UYJZoxsMrdaRRoheDr6EZBBQ0eTcAQi7nDduHrIXGxKImTJVkl6qgstGFE0LvfPpDtNePI5cB3a9iRJ/j8zfIFSJo+E0UQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=nvidia.com;
Date: Thu, 28 Aug 2025 13:01:10 -0300
From: Jason Gunthorpe <jgg@nvidia.com>
To: Leon Romanovsky <leon@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Leon Romanovsky <leonro@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 11/16] dma-mapping: export new dma_*map_phys()
 interface
Message-ID: <20250828160110.GJ9469@nvidia.com>
References: <cover.1755624249.git.leon@kernel.org>
 <bb979e4620b3bdf2878e29b998d982185beefee0.1755624249.git.leon@kernel.org>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <bb979e4620b3bdf2878e29b998d982185beefee0.1755624249.git.leon@kernel.org>
X-ClientProxiedBy: YT1PR01CA0154.CANPRD01.PROD.OUTLOOK.COM
 (2603:10b6:b01:2f::33) To CH3PR12MB8659.namprd12.prod.outlook.com
 (2603:10b6:610:17c::13)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PR12MB8659:EE_|CH0PR12MB8550:EE_
X-MS-Office365-Filtering-Correlation-Id: 7b90076d-92b3-4e53-369b-08dde64c1bc6
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?h5QOdmaL+pLjklwJ1hsRTUJ0TU5FA04/ChUWDKTTEIqoQR6UG8DtCAMxdfY/?=
 =?us-ascii?Q?lK3Mfl4rfLLltCVSN5mDcwgJqgbNufDwFgGtWFjs6ScwJ0jcR97gU1LEqURR?=
 =?us-ascii?Q?1Qom41k83JxNkuc1HJMc/tT3qq1nEdc6MbzoYJZpB+Q+XmgmKcVP0B1lnSeK?=
 =?us-ascii?Q?LfjDFxgyfyV7oQTjibvCwJpJW6Bxh1Ps+o93NY5EKKWKCZJD7E76EC4yOIge?=
 =?us-ascii?Q?3QOBIlsZsXdFu8+ziTPOZe4bukBIQcSmJvSgo2/vY/DbBllOJ0ndP4YhNZjx?=
 =?us-ascii?Q?m8H3Fas4GJXij5lUQChQFPTPCoPfCZr1nrGARzLf99lU2FkyTMfF0I3xuYBx?=
 =?us-ascii?Q?DwYyIyJ9csKTf4EXyEsrwKwx3qrcnWoCqII5HkuOEKG1/JefAdeVs+7v9tLF?=
 =?us-ascii?Q?6vb6T2gj7Jk2s9ttmqUF29eaGFMf6u6i/Mo3LvOwtB0WLpVNGlCGgu+tWhpm?=
 =?us-ascii?Q?04w7sZE75F/r4qldip8G91NgKjSpUYfARvDxILl1Q0yocdNf1Urkg+HcGkRv?=
 =?us-ascii?Q?7ha0KWl2DLagKMUArRKtMOT/PW7y9kiC9n4RVj9/7OG0Fdh+U/cauDu4P0n+?=
 =?us-ascii?Q?KQKskgvtRUjpeIBGNIMmc3ixSwcEIVe0Z2qhBsllZ+jUm6mjffbphwI30gAP?=
 =?us-ascii?Q?Lm1Xopxg9YnOFFGEVQGUOlZrKc8YFaWn/01NCqTS243i/o3AdHPjMoqlmgjT?=
 =?us-ascii?Q?VKZF+H0BRsjUq21SxZYirHgJanOtCxwPyt23Y27qMYBQxhynXpKBOC/pfUFt?=
 =?us-ascii?Q?RO9rGjkwIRsY0bR7Q3wzxFfyvyX6WrZJ+mxuHUdc1TX/FLT6LrjUjqAgAC9N?=
 =?us-ascii?Q?IN6p4sGFDiRFgwxAJtAsOmMg4kb4WCysg7Hi2UGE1MQXK383JCIToz1Lnd7/?=
 =?us-ascii?Q?oTXyHs0pkjAvn5u0IrS9zoTwYp5tnNnPkX1PZWrK0G5pmqD/ZUVkY0l164IE?=
 =?us-ascii?Q?erul3smld5KgOtIduhg65GNKa6Xq11iWjivCWxZEZd3pXpv2orkd9v2h1spy?=
 =?us-ascii?Q?vHKR1w6GA+KsxrE/8GDrNdUXJssFcdaPf7Grj5eGUyHwTd5bfUoBxrDhArCb?=
 =?us-ascii?Q?MX7LUIy6jzi7kRwAVK5+WIAiQg4J6zYF+LaFSpCnHde9olb2xyoS71dgDd7c?=
 =?us-ascii?Q?XzahdIlMbpPO0Ic/VN7aGTWMXaQqDDmExuWXlv/yig4nTbcUF+5OOwUh/XKH?=
 =?us-ascii?Q?hcTb4CntXjiR+6qAMQy7jVCVPgMUuipCBxyowj+VZ1YwokJstnCUYrvU4mxO?=
 =?us-ascii?Q?3N4fQrL1Gy6cvV4M1t4x1bEgwtlNyRrdh66bUr0+BOrgUGzGHV+EH0DvulVM?=
 =?us-ascii?Q?+NeQ5uqiAcAQkHind7ExXp6nD9Ik34uMRD4TyRItoXasxcWdMmG4X2bo28Lw?=
 =?us-ascii?Q?IIWn5AzUZ6A8w7GP9UsBFCuTvNd47A2xjvujqV6E55ciZoTxgq1rzRPwdpkP?=
 =?us-ascii?Q?QYK4ULd4kbs=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR12MB8659.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?emov0xpwdzd0eWxrHayyQ7BNIYV0B48ZSFkY8q+Iibu6uGJ1cqJOC//YpdY1?=
 =?us-ascii?Q?4ttE+ETLilY0wpbs3ECP6dzeOge9VxxTZfTKfaTY4Du6hNH2VFPxiWXGaHdI?=
 =?us-ascii?Q?OnjnmtgMmhIZLhwJ6BOA7+6kixnJyYYRhzUiRhZLa/EJQ4Tpmr1uyGFzzwqI?=
 =?us-ascii?Q?X3bYusGsggfolYa4h3kQq27IiMGOQchw23QUH5DBm3EppzV1bsLWwkAbKA1E?=
 =?us-ascii?Q?xwvM/3mjQlSk7VKa/GqQ/7MgtC19p8lRT5XgZpcSRvgLeu0LL8xS25kHgxRx?=
 =?us-ascii?Q?w9M5gnmrn1oF4azTs2w5dFKqlt6MZRY95P7mH3254cYanv1PR3NWxpZMWbJU?=
 =?us-ascii?Q?5at4WjuyDP3YQJ97njw8klZ9uBNoOzi1O8SjmNwbPpqEJ/c32qjajdBzJi0H?=
 =?us-ascii?Q?TX6LhgmZ9ixJ1XQX49fS0j70h1fmEN5PdLojmVrS31pbr8g3tOyMnE2fXtVJ?=
 =?us-ascii?Q?ZDAX5j2Nx6CYOIm1SLb/MIYg6VJMwVmCk5Ba9AKt9GPhAqA9KtngB1sq3+Hf?=
 =?us-ascii?Q?I3HT9y7DYyyMpuYWoBgzhi+8jhj/pgc9UBBcc6VxJx6bD6/So/FUZR/3zttA?=
 =?us-ascii?Q?q/cT3T1PL7qWwIda2n3zyjYLHCTVSuv/iCIXC2m/om2THcpzvlJgL99BV1AG?=
 =?us-ascii?Q?4tltcoIjgDSCt88uqUIn0BIZITXm78neuB9uzKtZ6pV8zWHLfnA/Jg/yUZjb?=
 =?us-ascii?Q?AZXtMiYgHSXip7KeMP2VDoSI1S2DnVfiTD2kkr8rwptPYgzxk+ChXDoziLRv?=
 =?us-ascii?Q?aICu/DMElz5cNpMQQMOjXFBt/tiRkWV3LcTOf/iWPhJVgrKxI0dMrkbqBmwn?=
 =?us-ascii?Q?zMJ6hf2tc4JGPV7pBUuUOIB0N3RWN4gH9C5h7uPkrRgF8frKhQaQ1JFkZ9Yl?=
 =?us-ascii?Q?XyWRbNtHwOeeWJyXAFB6IysmuBL6HPOKlwSSw32/1UaCk1m7nXWyPj++7TeO?=
 =?us-ascii?Q?Cwuzlstr0xgeCB5WF5xcCmlxFLhGDhKGemzZxZ4CgwyY8GM5XYXtQ7HHRAkH?=
 =?us-ascii?Q?ATGiUdAGkBQGR+2tB3caEYHXdLD7u9r+0yQ+/NmadoGnQXkNwFbMCP2HfHso?=
 =?us-ascii?Q?HWIsCB3MmK8O6rVJJASq+fD0dQqee6+fgGgtmVRHG1REhBnBJfTewWxjwpPH?=
 =?us-ascii?Q?3vFJJuTfC+AZEVd2dMWG4foAEYqa1Uxd3Dmwzt2Zu5HMTaAwXB9AsI3MTHc8?=
 =?us-ascii?Q?ku26jTqXKcIapCsE3uQeSWYxScVNsWovY0Tm4MzvLrvr6sCMO5iUZR5PxsM6?=
 =?us-ascii?Q?TAL/g66tPit46GdzWbNKlxn6ssNEBQg/D9SeF180iiEd7pDlRkmf+pSKUnVS?=
 =?us-ascii?Q?+Ye+hPdcAn82qJWXjDqLnWsXXH+fScnGLJcDOCsTAXrvRzdsqE0sBwSYUrxo?=
 =?us-ascii?Q?DmpW0gKJ+PN9QCd0/+43ejjl1wXVy/2jMVR0gwmeR+WqjDktDoxwqvlclysf?=
 =?us-ascii?Q?sFn9A2x+oErF9eyl1YK0uKVbSM+0ihycpm2qq2Az3vAT+iVMRGjDkwPkWAoy?=
 =?us-ascii?Q?ipv81rex8L8KP/jH6zKVwrsHeAR9OJkSXQJVqVhXogIJdvDYYPR4D3nUomvp?=
 =?us-ascii?Q?1Mry+PoimqGoaKlV1jE=3D?=
X-OriginatorOrg: Nvidia.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7b90076d-92b3-4e53-369b-08dde64c1bc6
X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8659.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 16:01:11.7298
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ynsF20IHaNaMECo0lQvm8uXEaRXVaxJRSfgxp5voMi10rNTDoRaHMZISyi080voU
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR12MB8550

On Tue, Aug 19, 2025 at 08:36:55PM +0300, Leon Romanovsky wrote:
> The old page-based API is preserved in mapping.c to ensure that existing
> code won't be affected by changing EXPORT_SYMBOL to EXPORT_SYMBOL_GPL
> variant for dma_*map_phys().
> 
> Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
> ---
>  drivers/iommu/dma-iommu.c   | 14 --------
>  include/linux/dma-direct.h  |  2 --
>  include/linux/dma-mapping.h | 13 +++++++
>  include/linux/iommu-dma.h   |  4 ---
>  include/trace/events/dma.h  |  2 --
>  kernel/dma/debug.c          | 43 -----------------------
>  kernel/dma/debug.h          | 21 -----------
>  kernel/dma/direct.c         | 16 ---------
>  kernel/dma/mapping.c        | 69 ++++++++++++++++++++-----------------
>  9 files changed, 50 insertions(+), 134 deletions(-)

Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>

Jason


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 16:11:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 16:11:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099588.1453370 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urfDV-0004Hu-IU; Thu, 28 Aug 2025 16:11:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099588.1453370; Thu, 28 Aug 2025 16:11: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 1urfDV-0004Hn-Dh; Thu, 28 Aug 2025 16:11:13 +0000
Received: by outflank-mailman (input) for mailman id 1099588;
 Thu, 28 Aug 2025 16:11:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=pYI3=3I=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urfDU-0004GU-8p
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 16:11:12 +0000
Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com
 [2a00:1450:4864:20::52b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9c8028b0-8429-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 18:11:10 +0200 (CEST)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-61c26f3cf0dso1888821a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 09:11:10 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-61c310ab189sm11822826a12.8.2025.08.28.09.11.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 09:11: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>
X-Inumbo-ID: 9c8028b0-8429-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756397470; x=1757002270; 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=oegueVaEFDD4ZZ/5zlAlg+aHdgEPHnv5g2qLMQZDk0k=;
        b=OcIo3WfUQ7WAsBh2w+6f6X20rCkIFJC+Tn4uIwA8qEbg30/T/GQrptfzaJWF+k6CGB
         mj+9Z8A+5wEqNdbuWLxTfM9Zx9KWHFxf9RI3VV6q0hzXV7XuhldbaPUwlOzRWkmosvDH
         21qPpQgDlEZk0u5HjKCRD98OOzZPvEK0Dc/3Dwa6VNcCORVp1TVHRCsuLwY9mAPiwXcd
         F0O/HBGeaN/G99D3zDlE+xBMBalQD42JJMAHmFYYgwQJO1TtpBb694yd7Lggwxvem4b9
         4HA2gI/tKLyf1VV/OPpW/CIpkwoWpFvMXpNbI6JS6HbN7j66SUG6SfYhdWLwLiWXkKC8
         1x5g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756397470; x=1757002270;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=oegueVaEFDD4ZZ/5zlAlg+aHdgEPHnv5g2qLMQZDk0k=;
        b=OR3cqflsiPZpO9YPYbXEpgFYLS/nZOI+I7iaJIpYLh756RVobhCqW3DGeTDrVjFyDs
         0mOSiuql2mTAmmibazStd5RN6+70z/NVMr4crj12h3YX4HvJgfwqTmZtH4GE62epq7CH
         XSVwSnPNRRLDhZ/ACIGKnP/l93rLkasTUc8pBD6hgnfwGTsd82aEii7hzxrHR8ZR2E8c
         DkH1NU0l9M+vPV5tKcwAJ6Ku1EwRyHwt8wP+wa81Tz4OxRD9tOOZrPuyZQEhKpzJ1rd5
         9W7ptt4tPHxfApzaoewhDHWe1zazQ0NjBBvxHQwS0DAW+4hVBQXXWShTcj2rRSv9hEw2
         DNBQ==
X-Forwarded-Encrypted: i=1; AJvYcCWs3zKqUUk82x4FUE23tiXjb8tQmU1rDkVN/rwgn9xnrcdZISpNmN8U/2r+xYBo5A40tiesIfZu51s=@lists.xenproject.org
X-Gm-Message-State: AOJu0YySYZFjXizNnl/nH9cqzYdZLUk+M93eEDuRmmRn5JkBQ0ds9hDv
	+NtCyrgHiOdxpI5AlgqdsrJme2/23Paa60WI8oDnZtlNzrDVHkGQ0N1bqA7Xd6T30g==
X-Gm-Gg: ASbGncuKYjCtG7JruzU3sBo0XvWxdeNY33H6x3tPe5FIKZ8+4rn2ZZFfcg95ToVmHOp
	imqbDTvQsJXJGlNWJQylXEsDUAgwP9bT/TQWncW1oibOChy7eOFn8S5sMDxnUmnMsKqotGm7dNm
	w7rk8oI8L6DdM853YefvNXr6vV+795N9t2mK4kFpDss6nlveeqe7OCgTRoPi+N4ZOivm+UToGu6
	uArcI08uXFFBrgwFnEyQVh35dCIOvcyiwkb+9gkb2yedVi92hXfuA23ISKwcGm3iC9DZhAPoFOX
	iR+dMIG8x5CnrrKRH3f/rmjQeAImbEfDSvH9pc0UMbOnjS0z3lEVFQDB/IvRM6/ETI22cxLYKdZ
	5+XY3Yxk8i/YOqHL+Ef9QQEAVIouK57RvoieqjkX/HN94S4lSmIIJpUWtCfzb1uMLqFSlDWRJGf
	mNenhwhZEGrb9Arber9Gk8g+g/Cowp
X-Google-Smtp-Source: AGHT+IFciKwCWaMnoXdlXEm4i2yz/U3i2BTeI+teBr8p7xUtFBn1fWqSUBNllXsQzKq+xIgr7nIUPA==
X-Received: by 2002:a05:6402:50d3:b0:61c:7a9b:21e4 with SMTP id 4fb4d7f45d1cf-61c7a9b24f4mr11667682a12.16.1756397470111;
        Thu, 28 Aug 2025 09:11:10 -0700 (PDT)
Message-ID: <e9eaf331-4a32-4c80-8b0a-5f36d8fd9022@suse.com>
Date: Thu, 28 Aug 2025 18:11:08 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/5] symbols: arrange to know where functions end
From: Jan Beulich <jbeulich@suse.com>
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <ceef1876-8759-465c-9a74-309b6b92f773@suse.com>
 <10e116c5-5a62-4abc-a52a-e2ca12118cfe@suse.com>
 <24fd00b5-3053-43ae-8342-887eee94869a@amd.com>
 <d934d8a8-93c0-4cb6-baa4-f2aedb719f25@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: <d934d8a8-93c0-4cb6-baa4-f2aedb719f25@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.08.2025 09:28, Jan Beulich wrote:
> On 28.08.2025 03:03, Jason Andryuk wrote:
>> On 2025-04-02 09:58, Jan Beulich wrote:
>>> --- a/xen/tools/symbols.c
>>> +++ b/xen/tools/symbols.c
>>
>>> @@ -318,24 +334,42 @@ static void write_src(void)
>>>   	printf("#else\n");
>>>   	output_label("symbols_offsets");
>>>   	printf("#endif\n");
>>> -	for (i = 0; i < table_cnt; i++) {
>>> +	for (i = 0, ends = 0; i < table_cnt; i++) {
>>>   		printf("\tPTR\t%#llx - SYMBOLS_ORIGIN\n", table[i].addr);
>>> +
>>> +		table[i].addr_idx = i + ends;
>>> +
>>> +		if (!want_symbol_end(i)) {
>>> +			/* If there's another symbol at the same address,
>>> +			 * propagate this symbol's size if the next one has
>>> +			 * no size, or if the next one's size is larger. */
>>
>> Why do we want to shrink the next symbol's size?
> 
> First (see related post-commit-message remarks): In principle section symbols
> could come with a size, too. That would break everything as long as we don't
> strip those.
> 
> The main reason though is that imo smallest granularity is what we want here,
> together with predictability. One symbol with a huge size could cover
> multiple other symbols with smaller sizes. We could omit that part of the
> change here, but then the processing in the hypervisor would need to change,
> to fish out the "best suitable" symbol when dealing with multiple ones at the
> same address. Other changes may then also be needed to the tool, to have such
> symbols come in a well-defined order (to keep the then-new code in the
> hypervisor as simple as possible). Look for "aliased symbol" in
> common/symbols.c to see how simplistic respective code is right now.

Furthermore remember that we can't record sizes, but instead we insert fake
symbols. Obviously there can be only one (at least in the present scheme).
If we used too large a size, chances would increase that the end symbol (in
the sorted table) would have to live past some other symbol, thus becoming
that one's "end".

Jan


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 16:17:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 16:17:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099598.1453379 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urfJO-0005to-5Q; Thu, 28 Aug 2025 16:17:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099598.1453379; Thu, 28 Aug 2025 16:17: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 1urfJO-0005th-2O; Thu, 28 Aug 2025 16:17:18 +0000
Received: by outflank-mailman (input) for mailman id 1099598;
 Thu, 28 Aug 2025 16:17:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FxJR=3I=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1urfJM-0005tX-Dd
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 16:17:16 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 75ca234e-842a-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 18:17:15 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by PA6PR03MB10532.eurprd03.prod.outlook.com (2603:10a6:102:3d9::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.24; Thu, 28 Aug
 2025 16:17:13 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9073.016; Thu, 28 Aug 2025
 16:17: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>
X-Inumbo-ID: 75ca234e-842a-11f0-8adc-4578a1afcccb
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=pXPAF9wHF1xFcuNKPnofHDnzqgz7UBX+OHfoLkB2xktf2YTpj07dgun7hC5YIYj+PeQ5/5tmB/9fjqV1fUzdJ6eqc15G5mV0R5G++wCBYlNo516fTObgE6okHgYYpeXd9xYF7FXMSyuT3jSgVEL5jo2BDqEuuhBtrRRR7QRfPAbSWpesAgVmZkDbOS25xkRzdITV2gqCPrF7UOFu4zLnHFSQJPh62kuHg779/3O9f73mYQ78wCAduI9rdEoQ4ekUwNZEW27Uqaa32llMKYz76idGEMc1RRnxj65Abi7j9xOn4vTRPvX4l1M8JbQJkiqz0IzaJ7hz1a5QzBTwVAs0pA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+BOAKc4ePu5k8MfT9JLdkRwTeGdUsTnHyAo04DW/HWw=;
 b=pqI9F5qXl1LeQ5ZKPkwpcNSAWae9BQwBFBnENah9oe1KnE9SeQFEgpNwKZJErbuO8fGTeqlP0eVQCM2rsNpUmYJe1ho/Erentyl6TIDYsVWgoZizCqvQWrC2jMBOrfSgeT8FKb2zQ0mGVr6q06kiuDTgUNpWYC96sk54HsAere/DfmaEb47tAWZIqVHcwwIme9VHU5qPgb6BnE1KEBeK71IZh1y0iXNm2p9mTfDZb0ImjKzvpMkEGHwv+xZDulJlr7raYdjYVI4A27aX9DhRoFF+fvIRQF9H2vZlKoWNCo0EiTYkznz+jvTVn/naTe1Adztc3B8kQ2n0SrZ95GsXag==
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=+BOAKc4ePu5k8MfT9JLdkRwTeGdUsTnHyAo04DW/HWw=;
 b=vbLWrn6GvoYyUVqr+ImN5iAzC9JsPMpykRluxHbz06sqmPiRibqYA8PpqQ9/3GKuzyRL0ZKbYVkra3AgxJDZhdaNpkqxQoO4uoH7RP2W7sjFHKbbxBRkzFtc+rYBHEA0mkVVK7pvC++MPdU1ln6VhqQmNHooZnSVSHMrvcww1OBREoNDIyop3q7sHrEB+8BOJj7Ym/qcVUaUXSdriLc6E/hFoghrhTogYe9/3ui9r59jaiQedmd6oW/JxuPuXlnPsp5lrZBE/v5gq8N0DpWOBj633fXsl3ivd/piXUKMytPMnPLgna4T+M1Wo9eiP3LA4vjRXQHgxQOUTfNfirSBkQ==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: Julien Grall <julien@xen.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: "olekstysh@gmail.com" <olekstysh@gmail.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal
 Orzel <michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v4 01/12] xen/arm: gicv3: refactor obtaining GIC addresses
 for common operations
Thread-Topic: [PATCH v4 01/12] xen/arm: gicv3: refactor obtaining GIC
 addresses for common operations
Thread-Index: AQHcF3/CtR1KedyUO0e9jC2sdgHn6rR396GAgABHyYA=
Date: Thu, 28 Aug 2025 16:17:12 +0000
Message-ID: <8ad7cf86-ff85-4d56-b6b1-33fcb0dc0c54@epam.com>
References: <cover.1756317702.git.leonid_komarianskyi@epam.com>
 <5f511d386c7f20b09106aa0202e0989477eff498.1756317702.git.leonid_komarianskyi@epam.com>
 <69bdbdac-4876-47de-b8db-ce6f3e1b7a24@xen.org>
In-Reply-To: <69bdbdac-4876-47de-b8db-ce6f3e1b7a24@xen.org>
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: GV2PR03MB8678:EE_|PA6PR03MB10532:EE_
x-ms-office365-filtering-correlation-id: d04579ef-6742-4e0d-fed9-08dde64e5888
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?UEZua3VsRTYybStHMWxRbnpRUHZ2NHY1ZUtIdFF6UTZadFE1TnNMU29BQ1hq?=
 =?utf-8?B?aXFyZnpjOXFCaHd6c3I1SFVmeGhUUGE1d2pFYmxNRkU5NG52WjBRRGFrZGRC?=
 =?utf-8?B?Wko5emtIVlV0cWptTGdvTDhkcUxtNGpTcktsVmJ4aDR3Z1JhYWczcS9rMllW?=
 =?utf-8?B?WGJaVW1KMjJ6d3IzRTQ2SUxUaFdJQWhWejFFN09SMTBNYTlWb2t1TWlsZkxY?=
 =?utf-8?B?SVI2dmZQS2Q5cE5oeTh3dlpsWmZWSG13VjVyK0FJbEhvMnVMaVF4dHI5S3ZO?=
 =?utf-8?B?SDNWekFFOXpRMnBKSDVReERpZDNkU3daelhLVXZqaklPdkE0dDU3Q24yWW5x?=
 =?utf-8?B?cGIyaFVUbUNVQzlXdGJOMGlmLzFDby80bXRuVGp4SnBaNnd2WEJwKzc0aHgw?=
 =?utf-8?B?eEZ1MncySWR1aThtc085dHR6ZkpPc1J3Y29TeEZENzBtMXlVMkpCUmo4UlN4?=
 =?utf-8?B?NGw2NnlrWFlPOEx6ZVZHcDRuUWlqRTZKZUp5VWRuWnNPZGJwSXRmeTVjeGo3?=
 =?utf-8?B?OUtQbEcvd2ZsKzBHaVgvMHg3YzNUQVZEeHc1c016MW1IL0FoSWxmV3dSM3RH?=
 =?utf-8?B?M3RUcWsxYmNxdkU4aVJJMnFvMEM5ZWFLRkxBeVVuR2djVlphUDBwNGNiQjda?=
 =?utf-8?B?WmhuY2NTVVllRTcyNTNKUzR0WTFBZW9MUVVlZmZad1ZLMEZweXQ4dnNibUth?=
 =?utf-8?B?WlRra2djdXBMUHY4bHU2SlNMWmhXRXZlYlVXMWE0Q1B0eFgxZjUvYnl1dFZJ?=
 =?utf-8?B?Sm53azlQSFlIQSt1UDh4a2QzMEJhWHF1bHRKRGVCTHlBdWdlcEk5ay9sRFVD?=
 =?utf-8?B?YWxYL2R4cklzak5RSjVacFg1aTVpdGE4Z0l0dmRuWGIrWFAzV0ZUREk5R0NF?=
 =?utf-8?B?dndtak0vYVFkcmE3VnRJd2REWlY1WjY3Vkg4SlF0NTJWclg0Z1Jrb2NNN3hC?=
 =?utf-8?B?b1owVG8xeFNxQkJrcG1ORFc4OVB0R2ZWTzVOSzdUVFhDVGl0eXc4dGwwN1VI?=
 =?utf-8?B?eHIxMW9oc1ROVzVTY21oTDVsN0ZrTnVsUVRrcUtma0ZCa0l3b2pmZTRVZ3lF?=
 =?utf-8?B?NFdGUXFsczJxbENYWXBQM3ZIVmNkWGVRY0ZMQnVJVDlBSlFNK2FPdEkzblo0?=
 =?utf-8?B?MEJiSURrWTlOWXZYdnlSYkF1UThMVXYxcE1QMnpZTmhGMHVZc25OSy9BSU05?=
 =?utf-8?B?Y0NOQWJqdGkwVVdXSFpMMDREZlpXalM0eDhiYmJheGdZaVJ3Y2xFSzRuSXpU?=
 =?utf-8?B?Q3hZZTRHVmJoSmRoT1ZRNTJvSzh1cnRpVkZwcVdrWTlpaUxBTU1idGdxZDJF?=
 =?utf-8?B?OTY4VnpPc1M4a3psUHJ4Y3krTWVkOE44ZWpCaGp2UUwyZ01aM0ViaURxUFhO?=
 =?utf-8?B?S2tnZnU5YlBpR3Q5Q1dGMzBkcVdXdEh1TzFwcEFDWktXaHlTenZCUGlZREMx?=
 =?utf-8?B?TnQ1MUcwY1hQRk1RS2pHbzJBWkluQWxZTWd4ay9EUTdkUFRSVnYrZytSeVh5?=
 =?utf-8?B?Y0JzakhiRUtwL3ZUelIvWVI4dG9FMC9hZ2IvQ25lKzNadU1mWkNqcGZCVS9h?=
 =?utf-8?B?ZHdCMXA2OWxod015VkRnZmxqSlQrMTlrSEd3V0VCeXRwUEluUkFHK1Q1RGxr?=
 =?utf-8?B?M0N2Rlo1NDkzQkVSWGEya1U2aGs0UkFOck1ZN2swT0YwYWVyMm9KS1F4bmhi?=
 =?utf-8?B?RWtFYXRIMnY5Z2FjK1JzTUxHK3BWOGpPNmhmbWU4MEdsNzJyQWhhN09QbEds?=
 =?utf-8?B?S3VMRkxGVDZUTC9MSnhBRGhTYkl6YmtQOXM1K0ZGbVdOVENRZlUxellxWG1o?=
 =?utf-8?B?dEpZd3gyQXVPL3FOZjZWdjdaVW1HNmtkSHJJY1ZmK0hVRE1WMjV6QUM2bWdX?=
 =?utf-8?B?QzV1Zjl4SG9INjJWM2g1Z0lvR0h1MnRLdzR0eUlPWDU0OGlZRWw2OXJZK2VF?=
 =?utf-8?B?RTVpLzVzVm9pR25IQUkwS3c5UzlYRVpyUWRORDJ3SGN2NFJzUy9YUFJlYmx1?=
 =?utf-8?B?NWQ0Y2pMZEdBPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?M3lkWEhwUnZ0MThpSXdtR2tkenhVMDE4KzVEQU9GelhSRHpWQm8zRG52UHN1?=
 =?utf-8?B?VlB5ZkNqU0dFUmJQcjZIeFVSNjJzR1ExY3RkK1o0VjErV3EybFg5WWZ6cVVp?=
 =?utf-8?B?Nm0xR25IZWthR3ZRLzYvUWdKQ0VheEtuLzFQanZWUG84ejN2TkErZTZMeUpk?=
 =?utf-8?B?dXZ3SWQ4Zm9lNnc4akxTUURzN1ppSmduZ0ZnSW9yOTEyaklTMWkzQmhnZXk1?=
 =?utf-8?B?OGpBQTl1UWVKR1k5VjhhNUlPT0N3NFFyYjNCQ2tUVXV0dVM5b1BsajREVlhp?=
 =?utf-8?B?SGxwLytYUEd5aGRPQkwrRnl4b1hheFVxekMyZ24yQ0hyRzhvZ2pmdHBnVzRl?=
 =?utf-8?B?OENNVXZTcmxPc3pVamwxVzh6ZDRDWE9jcjNwcWliYWZGWFJyWVNweGN2Rklz?=
 =?utf-8?B?YUxyVEJ4VGR4VEFibWtqeXNnTU1vVDdTK0gxWS8zbW5pQ3J4dW9jMGs3V3BM?=
 =?utf-8?B?cUhXakNCKzV2N2RHdjBEMm9jVVV1aWp0MmMrWG5GcEZnSDFsUkRlNmxZZ1Bp?=
 =?utf-8?B?dzk3bjRIZ2orQ3dzYUxhcHA3R1NsNlRhQ2ZKMUdWSFFBN0FMYUdvcTY3ODN1?=
 =?utf-8?B?Slo4SDJ6SnllRkw5VmV6blBlV3RtYWZSKzFpNWQ0U2M5V1Z4SUttUElOM2pa?=
 =?utf-8?B?RW5iZHFidnN0Zm0zV3VxVHRldGhIYlB4NGk1cTVRM0RtN2lKMVFKSWorUDRx?=
 =?utf-8?B?UlhSaFVTaFRSQ3ZpM1BBdEtLQkZweitESnRVdWh2WjFpUDVXK0JhUU8vY1Fu?=
 =?utf-8?B?cFRPYU5Ua1VkTmtuODNMRXB0azVoYW9naWJQc0paRlZlUEppaVE3TjhHVXUy?=
 =?utf-8?B?dm9wbUw3aDNQQnpsYlVKZ0FsbnVpcS9aTGdCazhCNjNwMTFIRGRkYXBVYkQv?=
 =?utf-8?B?MzN2bVJicnhraVl5R0VYRjRqR3k5S2ZFVnN3cEZEYjdRQS93bW80eDFIMzk3?=
 =?utf-8?B?RlQwVjU2c3QwTlZSZ1NiVnRFZnhoQ1JGQThDcUo0Zyt6YkNURlpUMEpobHRL?=
 =?utf-8?B?SStyQkJOUEkweHZaTlk2M001UzZ4L1d3bm1kLys3NWd3SWNLelRVZ1hjK0dI?=
 =?utf-8?B?ekV1dXRTdjJXb2EvZEZ4QU5kc0hNTmJzWFJyazZFcC9ML3dIYWMrZGI5K24z?=
 =?utf-8?B?bGlIYzlOQjJJM28xNTdkNWlrcUJ3VFkycDIyRWlTTnA1Zm5EazU4Q3ZCR1I2?=
 =?utf-8?B?cTNybDhIOHNDWEkxZkNPWWxUUUR3WE5rcjM1eHloUk9PK0hzSDYxTDEwbjhk?=
 =?utf-8?B?aVp3UHZUN1duL0NqN0VtczhDOHZxZ1FnbjBZdHlsNEpveVpQaW5wNDVDZVg4?=
 =?utf-8?B?QkNiTlljenZnTVhBbnBOSStMaFcwM0daTGxoRDJpTm56M1IxajBtOUhhSDdO?=
 =?utf-8?B?OWNpcGNFWW80ZTNSMkpBWDlqd0RwZk53eUV1OTB1ZmZGVjVQYlJXYmlpdVNE?=
 =?utf-8?B?QkdKQWd0eFZWQW5nT1lhUHB5T3hiL1dxNnVyZEg1dGRTckM2eGRpUlpnVW9V?=
 =?utf-8?B?dytqc3o5MG5MYUlLTlZNaG12c05oakhQSVVIaUpsRlYxOGdwamF2MHIwazJs?=
 =?utf-8?B?eU4wazlOQXhzWllmRmhSSTFtYjNocXVWVXJNY2tackxSb0daeEZLMnp2ekg5?=
 =?utf-8?B?TTQvOWM2eU1Kam9zb3NDSzllbnRxM3RtRWNRZU5jSnI3ZXNIditJZnBBS0Ni?=
 =?utf-8?B?R0hCWUFXWjEwQmE5Q0pneWw4a1oxVEY1WmZPeDJjYlo1azl2bHREd2lUSENk?=
 =?utf-8?B?a2hJMkUvRkliWEYzT3RUd3FXVW90UEJrSkZwTldXeitJazFiUlR0QnBvY216?=
 =?utf-8?B?TjBzNGMrY0tXK3lFK2FCVmxKQ0l3Vm50cUIzQjYzdDN5RVgwb2F3ZFpsQmNL?=
 =?utf-8?B?VTZTQWdwTCtucCtRY2wxc0lUbXh0RFhPN3VOWklyQVAvQnRPUU9KeGZxSEFh?=
 =?utf-8?B?U3VpUElDSTlrWUNQVzhHQlNpTjVMTzZvaG93MlRzVm81ZXFKV05QdFF3WEJN?=
 =?utf-8?B?NEliOWxIMWd0YjRtcGdjTFRlR3RaaUJweXpFVjdoNXA3ZHl5cWpSQzJ3QmV0?=
 =?utf-8?B?QU5IdlVkY0x4VzRranpUMStWMXpORUNqMDU0Z211MktSRGkxVVpBaTBlTkhD?=
 =?utf-8?B?UndIT3BqL0ZqSVQ3WHpES0liUTRSbTJFbFhIR1BFV1RhS3RWSXBJWTI4MUls?=
 =?utf-8?Q?q9L+Kx7Q4OcS+oEp4fCxfVY=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <F005277EEB6A524FAF39A7138B4C1E60@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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d04579ef-6742-4e0d-fed9-08dde64e5888
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Aug 2025 16:17:12.3537
 (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: aPk0GSUOmNav17tAhY7pnKC0atgzY5ORofFaaFMJAisHDK8FCnB8Uyr+unXHpBfuEHNy2n9YgOT50w+I4dROLzlqRp4EqXziOUX9LWpWbrE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA6PR03MB10532

SGkgSnVsaWVuLA0KDQoNCk9uIDI4LjA4LjI1IDE1OjAwLCBKdWxpZW4gR3JhbGwgd3JvdGU6DQo+
IEhpIExlb25pZCwNCj4gDQo+IE9uIDI3LzA4LzIwMjUgMTk6MjQsIExlb25pZCBLb21hcmlhbnNr
eWkgd3JvdGU6DQo+PiBDdXJyZW50bHksIG1hbnkgY29tbW9uIGZ1bmN0aW9ucyBwZXJmb3JtIHRo
ZSBzYW1lIG9wZXJhdGlvbnMgdG8gY2FsY3VsYXRlDQo+PiBHSUMgcmVnaXN0ZXIgYWRkcmVzc2Vz
LiBUaGlzIHBhdGNoIGNvbnNvbGlkYXRlcyB0aGUgc2ltaWxhciBjb2RlIGludG8NCj4+IGEgc2Vw
YXJhdGUgaGVscGVyIGZ1bmN0aW9uIHRvIGltcHJvdmUgbWFpbnRhaW5hYmlsaXR5IGFuZCByZWR1
Y2UgDQo+PiBkdXBsaWNhdGlvbi4NCj4+IFRoaXMgcmVmYWN0b3JpbmcgYWxzbyBzaW1wbGlmaWVz
IHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBlU1BJIHN1cHBvcnQgaW4gDQo+PiBmdXR1cmUNCj4+IGNo
YW5nZXMuDQo+Pg0KPj4gU2lnbmVkLW9mZi1ieTogTGVvbmlkIEtvbWFyaWFuc2t5aSA8bGVvbmlk
X2tvbWFyaWFuc2t5aUBlcGFtLmNvbT4NCj4+IFJldmlld2VkLWJ5OiBWb2xvZHlteXIgQmFiY2h1
ayA8dm9sb2R5bXlyX2JhYmNodWtAZXBhbS5jb20+DQo+Pg0KPj4gLS0tDQo+PiBDaGFuZ2VzIGlu
IFY0Og0KPj4gLSBubyBjaGFuZ2VzDQo+Pg0KPj4gQ2hhbmdlcyBpbiBWMzoNCj4+IC0gY2hhbmdl
ZCBwYW5pYygpIGluIGdldF9hZGRyX2J5X29mZnNldCgpIHRvIHByaW50aW5nIHdhcm5pbmcgYW5k
DQo+PiDCoMKgIEFTU0VSVF9VTlJFQUNIQUJMRSgpDQo+PiAtIGFkZGVkIHZlcmlmaWNhdGlvbiBv
ZiByZXR1cm4gcG9pbnRlciBmcm9tIGdldF9hZGRyX2J5X29mZnNldCgpIGluIHRoZQ0KPj4gwqDC
oCBjYWxsZXJzDQo+PiAtIG1vdmVkIGludm9jYXRpb24gb2YgZ2V0X2FkZHJfYnlfb2Zmc2V0KCkg
ZnJvbSBzcGlubG9jayBndWFyZHMsIHNpbmNlDQo+PiDCoMKgIGl0IGlzIG5vdCBuZWNlc3NhcnJ5
DQo+PiAtIGFkZGVkIFJCIGZyb20gVm9sb2R5bXlyIEJhYmNodWsNCj4gDQo+IFByb2NjZXMgcmVt
YXJrLCBoZXJlIHlvdSBzYWlkIHRoZSBSZXZpZXdlZC1ieSBmcm9tIFZvbG9keW15ciB3YXMgYWRk
ZWQgDQo+IGluIHYzLiBIb3dldmVyLCBnaXZlbiB0aGUgY2hhbmdlcyB5b3UgbWFkZSB0aGlzIHNo
b3VsZCBoYXZlIGJlZW4gDQo+IGludmFsaWRhdGVkIChyZXZpZXdlZC1ieSBtZWFucyB0aGUgcGVy
c29uIHJlYWQgdGhlIGNvZGUgYW5kIGNvbmZpcm1lZCBpdCANCj4gaXMgY29ycmVjdCkuDQo+IA0K
PiBJIHNlZSBWb2xvZHlteXIgY29uZmlybWVkIGhpcyByZXZpZXdlZC1ieSBvbiB2My4gU28gbm8g
aXNzdWUsIGJ1dCB0aGlzIA0KPiBzaG91bGQgaGF2ZSBiZWVuIGNsYXJpZmllZCBpbiB0aGUgY2hh
bmdlbG9nLg0KPiANCg0KVGhhbmsgeW91IGZvciB5b3VyIGV4cGxhbmF0aW9uLg0KSnVzdCB0byBj
bGFyaWZ5OiB3b3VsZCBpdCBiZSBva2F5IHRvIGxlYXZlIHRoZSBSQiB0YWcgKHdpdGggYXBwcm9w
cmlhdGUgDQp0ZXh0IGluIHRoZSBjaGFuZ2Vsb2cpIGlmIEkgZml4IHNvbWUgbWlub3Igbml0IGZy
b20gYW5vdGhlciByZXZpZXdlciBpbiANCnRoZSBuZXh0IHZlcnNpb24sIGxpa2UgaW4gdGhpcyBw
YXRjaD8NCg0KPj4NCj4+IENoYW5nZXMgaW4gVjI6DQo+PiAtIG5vIGNoYW5nZXMNCj4+IC0tLQ0K
Pj4gwqAgeGVuL2FyY2gvYXJtL2dpYy12My5jwqDCoMKgwqDCoMKgwqDCoMKgIHwgMTE0ICsrKysr
KysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQ0KPj4gwqAgeGVuL2FyY2gvYXJtL2luY2x1ZGUv
YXNtL2lycS5oIHzCoMKgIDEgKw0KPj4gwqAgMiBmaWxlcyBjaGFuZ2VkLCA4MSBpbnNlcnRpb25z
KCspLCAzNCBkZWxldGlvbnMoLSkNCj4+DQo+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2dp
Yy12My5jIGIveGVuL2FyY2gvYXJtL2dpYy12My5jDQo+PiBpbmRleCBjZDNlMWFjZjc5Li5hOTU5
ZmVmZWJlIDEwMDY0NA0KPj4gLS0tIGEveGVuL2FyY2gvYXJtL2dpYy12My5jDQo+PiArKysgYi94
ZW4vYXJjaC9hcm0vZ2ljLXYzLmMNCj4+IEBAIC00NDUsMTcgKzQ0NSw2NyBAQCBzdGF0aWMgdm9p
ZCBnaWN2M19kdW1wX3N0YXRlKGNvbnN0IHN0cnVjdCB2Y3B1ICp2KQ0KPj4gwqDCoMKgwqDCoCB9
DQo+PiDCoCB9DQo+PiArc3RhdGljIHZvaWQgX19pb21lbSAqZ2V0X2FkZHJfYnlfb2Zmc2V0KHN0
cnVjdCBpcnFfZGVzYyAqaXJxZCwgdTMyIA0KPj4gb2Zmc2V0KQ0KPj4gK3sNCj4+ICvCoMKgwqAg
c3dpdGNoICggaXJxZC0+aXJxICkNCj4+ICvCoMKgwqAgew0KPj4gK8KgwqDCoCBjYXNlIDAgLi4u
IChOUl9HSUNfTE9DQUxfSVJRUyAtIDEpOg0KPj4gK8KgwqDCoMKgwqDCoMKgIHN3aXRjaCAoIG9m
ZnNldCApDQo+PiArwqDCoMKgwqDCoMKgwqAgew0KPj4gK8KgwqDCoMKgwqDCoMKgIGNhc2UgR0lD
RF9JU0VOQUJMRVI6DQo+PiArwqDCoMKgwqDCoMKgwqAgY2FzZSBHSUNEX0lDRU5BQkxFUjoNCj4+
ICvCoMKgwqDCoMKgwqDCoCBjYXNlIEdJQ0RfSVNQRU5EUjoNCj4+ICvCoMKgwqDCoMKgwqDCoCBj
YXNlIEdJQ0RfSUNQRU5EUjoNCj4+ICvCoMKgwqDCoMKgwqDCoCBjYXNlIEdJQ0RfSVNBQ1RJVkVS
Og0KPj4gK8KgwqDCoMKgwqDCoMKgIGNhc2UgR0lDRF9JQ0FDVElWRVI6DQo+PiArwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoCByZXR1cm4gKEdJQ0RfUkRJU1RfU0dJX0JBU0UgKyBvZmZzZXQpOw0KPj4g
K8KgwqDCoMKgwqDCoMKgIGNhc2UgR0lDRF9JQ0ZHUjoNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgIHJldHVybiAoR0lDRF9SRElTVF9TR0lfQkFTRSArIEdJQ1JfSUNGR1IxKTsNCj4+ICvCoMKg
wqDCoMKgwqDCoCBjYXNlIEdJQ0RfSVBSSU9SSVRZUjoNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgIHJldHVybiAoR0lDRF9SRElTVF9TR0lfQkFTRSArIEdJQ1JfSVBSSU9SSVRZUjAgKyBpcnFk
LT5pcnEpOw0KPj4gK8KgwqDCoMKgwqDCoMKgIGRlZmF1bHQ6DQo+PiArwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoCBicmVhazsNCj4+ICvCoMKgwqDCoMKgwqDCoCB9DQo+PiArwqDCoMKgIGNhc2UgTlJf
R0lDX0xPQ0FMX0lSUVMgLi4uIFNQSV9NQVhfSU5USUQ6DQo+PiArwqDCoMKgwqDCoMKgwqAgc3dp
dGNoICggb2Zmc2V0ICkNCj4+ICvCoMKgwqDCoMKgwqDCoCB7DQo+PiArwqDCoMKgwqDCoMKgwqAg
Y2FzZSBHSUNEX0lTRU5BQkxFUjoNCj4+ICvCoMKgwqDCoMKgwqDCoCBjYXNlIEdJQ0RfSUNFTkFC
TEVSOg0KPj4gK8KgwqDCoMKgwqDCoMKgIGNhc2UgR0lDRF9JU1BFTkRSOg0KPj4gK8KgwqDCoMKg
wqDCoMKgIGNhc2UgR0lDRF9JQ1BFTkRSOg0KPj4gK8KgwqDCoMKgwqDCoMKgIGNhc2UgR0lDRF9J
U0FDVElWRVI6DQo+PiArwqDCoMKgwqDCoMKgwqAgY2FzZSBHSUNEX0lDQUNUSVZFUjoNCj4+ICvC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiAoR0lDRCArIG9mZnNldCArIChpcnFkLT5pcnEg
LyAzMikgKiA0KTsNCj4+ICvCoMKgwqDCoMKgwqDCoCBjYXNlIEdJQ0RfSUNGR1I6DQo+PiArwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gKEdJQ0QgKyBHSUNEX0lDRkdSICsgKGlycWQtPmly
cSAvIDE2KSAqIDQpOw0KPj4gK8KgwqDCoMKgwqDCoMKgIGNhc2UgR0lDRF9JUk9VVEVSOg0KPj4g
K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIChHSUNEICsgR0lDRF9JUk9VVEVSICsgaXJx
ZC0+aXJxICogOCk7DQo+PiArwqDCoMKgwqDCoMKgwqAgY2FzZSBHSUNEX0lQUklPUklUWVI6DQo+
PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gKEdJQ0QgKyBHSUNEX0lQUklPUklUWVIg
KyBpcnFkLT5pcnEpOw0KPj4gK8KgwqDCoMKgwqDCoMKgIGRlZmF1bHQ6DQo+PiArwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoCBicmVhazsNCj4+ICvCoMKgwqDCoMKgwqDCoCB9DQo+PiArwqDCoMKgIGRl
ZmF1bHQ6DQo+PiArwqDCoMKgwqDCoMKgwqAgYnJlYWs7DQo+PiArwqDCoMKgIH0NCj4+ICsNCj4+
ICvCoMKgwqAgLyogU29tZXRoaW5nIHdlbnQgd3JvbmcsIHdlIHNob3VsZG4ndCBiZSBhYmxlIHRv
IHJlYWNoIGhlcmUgKi8NCj4+ICvCoMKgwqAgcHJpbnRrKFhFTkxPR19XQVJOSU5HICJHSUN2Mzog
V0FSTklORzogSW52YWxpZCBvZmZzZXQgMHgleCBmb3IgDQo+PiBJUlEjJWQiLA0KPiANCj4gTklU
OiBJIGFtIG5vdCBleHBlY3RpbmcgdGhlIGludGVycnVwdCB0byBiZSA8IDAuIFNvIGl0IHdvdWxk
IGJlIA0KPiBwcmVmZXJhYmxlIHRvIHVzZSAldS4NCj4gDQo+IEFja2VkLWJ5OiBKdWxpZW4gR3Jh
bGwgPGpncmFsbEBhbWF6b24uY29tPg0KPiANCj4gQ2hlZXJzLA0KPiANCg0KVGhhbmsgeW91IGZv
ciB5b3VyIEFCLiBJIHdpbGwgZml4IHRoZSBuaXQgaW4gVjUuDQoNCkJlc3QgcmVnYXJkcywNCkxl
b25pZA0K


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 16:20:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 16:20:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099609.1453389 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urfMr-0007QZ-KC; Thu, 28 Aug 2025 16:20:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099609.1453389; Thu, 28 Aug 2025 16:20:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urfMr-0007QS-Gq; Thu, 28 Aug 2025 16:20:53 +0000
Received: by outflank-mailman (input) for mailman id 1099609;
 Thu, 28 Aug 2025 16:20:52 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FxJR=3I=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1urfMp-0007P9-UJ
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 16:20:52 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f634b8c4-842a-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 18:20:50 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by PA6PR03MB10532.eurprd03.prod.outlook.com (2603:10a6:102:3d9::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.24; Thu, 28 Aug
 2025 16:20:49 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9073.016; Thu, 28 Aug 2025
 16:20:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f634b8c4-842a-11f0-8adc-4578a1afcccb
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=LOWKl12XUB4DLLyQzsE43btkK3nokvkTDu2oyGACB5qWcMufOniYfgOM6ORHf0dH4Tl3S/QcndivPbnjxl7uVjlGdP7mn1U2V14t2BsgnDmmGKAGgPE8sm2bRWA7gzP52q+VTLXv9CQHLtkQTbGhhRuhdFXQzhdM9e+5H4r6+uCtDeQXfa9rWhzcguGYWgm3BsM+1Gb/4V4eFzPqj0VywGrn1X8pPrK2pqrNXdi2rs2tGUMTWQcUCfejQD27L1wbV7K/xbLCZ+HnkRletacTo2/lBKK85TMzzEazLeG7A8464k3KiFkWqITX+jWLtOyMzT3W8KkpmnhSN0iHeoQlhA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ZSIbARUlkA7vUzpM9WngFR+rsOpS8Ve2Y3tL4GvBLjs=;
 b=pDpr5DNPhmnX1ktlYjqEeVHiFWKef114l6w5HHLqwbF1lF0oqZp6DHa5BMx33IdXqiAb1MUPJwORdIeg1cLhynpVXl9/ovThqwTgPYlB/Fe7ixqvZrmFH2Vylqz1n3P0uv2tdMZHD9TfGo8LS20kjiJFi6KdOjhZmFCb4OKQDYMo+2Uiqdh9TKGE5ID7BkWModlwwvcesxE/xhKpL1vetv7rMB0DgbwzS1zN3e7UEpqyYQUK8jIWD/4zpSlVFs7nj100AmlK1OXj1MQqdHqReTGS1LLpP21BdHC7WLz6j488thYeq5vVkjUsw5hhuQRTwlPP9PrkG4G5Q1OHatKUgQ==
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=ZSIbARUlkA7vUzpM9WngFR+rsOpS8Ve2Y3tL4GvBLjs=;
 b=XccA4o2txVcpnGFjp3T4LtcqDc8bgbKIqozrwOZ++DibIT5NcEqvldFPbPpNUIagqZcwv3WDMFmZu/SiAW8UiUq+/wkJGK4gBW8t+XjHG3TfdBU8wgkEFt6y8BFxsyCAgDiryzoXHPBD8xeNM1gh1x1BrVCAomQ54MYxT24RYNqyS1Uq27uARcsKl2JyXioAYNq7zkHcaTzMToW5cqn7xfcONC0mJ3YNHHw3KVJBLBtbCcAWuMyPi1VxwzW+sFughu2fla14H8Tvo6wKD15sBuyJiVET9W3SDOpRWSz+kt+Fc9JvI5SVz+6rxmFqoeAyUrVDPFXXgbU5W8eY6cKuGQ==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: Julien Grall <julien@xen.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: "olekstysh@gmail.com" <olekstysh@gmail.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal
 Orzel <michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v4 02/12] xen/arm: gic: implement helper functions for
 INTID checks
Thread-Topic: [PATCH v4 02/12] xen/arm: gic: implement helper functions for
 INTID checks
Thread-Index: AQHcF3/Ff+oSmGvjakq9bpLMhjgPlLR3+pEAgABF3AA=
Date: Thu, 28 Aug 2025 16:20:49 +0000
Message-ID: <76e7bc4c-8f7d-4ca8-9a13-9ff652f7a0b4@epam.com>
References: <cover.1756317702.git.leonid_komarianskyi@epam.com>
 <684757e6710826200bcc153e4c711b27483ee796.1756317702.git.leonid_komarianskyi@epam.com>
 <1221fa50-0e17-405e-88fe-c57db905fa4a@xen.org>
In-Reply-To: <1221fa50-0e17-405e-88fe-c57db905fa4a@xen.org>
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: GV2PR03MB8678:EE_|PA6PR03MB10532:EE_
x-ms-office365-filtering-correlation-id: 7a3ffcc0-0227-4de1-c324-08dde64ed9ec
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?c3FGOUt5ZG9UVU9TZEd1R1FvQmFvTW54UmNHN2orZkhiMktpWTZLbEdEV282?=
 =?utf-8?B?OUJJUHNLQTR2SlBQVXpyTDlVUDZCeW1pVk50VENNdjNaVDlwenpta282cjB3?=
 =?utf-8?B?T296SGVvRy9NYTFiV3dmS1F4SzhnZXRHSUxuY1JVeGZleHZQRDNrOWNid01s?=
 =?utf-8?B?RWpIOHE1QTVmUStCcUxYMWYzQXNMc1dMR28yMWxpTjAxQlppRnVPSFVSa0hz?=
 =?utf-8?B?UDY0NFY3MjhPTjl0bzN4WHBxaUhTWWlmS0dNb2FZOU9ySVJidzkrOFlUZ29s?=
 =?utf-8?B?b2x4YTVVUHlNcFJVVVhjeWRGVFBTQVNkQnBBM1dDUHZ6VzJMWThYb245RGZF?=
 =?utf-8?B?Ti9vRlAza1hHT05FVHpNLy8rbEVlMGRyMnZEaERUb2tQdmdHdVMyV0lXakI0?=
 =?utf-8?B?VjFOdEEraEV6bmpNTGMwdlAxaVJySUFRRlhGOEUwRG03aUpQeGZESjRla2g0?=
 =?utf-8?B?REFueUdzSEhYMDZPZUo5VU4yQnlwQ2hYNG16RjRtMFBUdk9WQXUxSW1RSThF?=
 =?utf-8?B?NnVUa3JHY0dRRDFWU05zRmJ2WTRONVh1cE54ZmxmWS9GOGhraGpWSWJsUU1l?=
 =?utf-8?B?RjNiSXFzSTBYdjlkeWMweHRjOXJwNUViaCtENWU5aUx1WHA1cXAxRnhVSWw1?=
 =?utf-8?B?b3RUQ1oySUhMM1BLYVRHd2FYY1dZWEgxcmNVdkxycmsyWEpQalBPNXozaFNl?=
 =?utf-8?B?bCtNK2FORytxek1lRjd4Wk9jRUU5bDJVL2c2dDc3eEdYSzJPaDN3SVA0M3hj?=
 =?utf-8?B?bElZSTFhYzhVdlJ4UHdGSkpDOGh2Y0ptS1hKY05UbUhWczlaMy96UVBLT01W?=
 =?utf-8?B?dDlOVHhqaFA2UFlNekJJZm9NUURnRFkwT3ZBYWpBVlc3aW5Za2FKRmpoUnV3?=
 =?utf-8?B?Z2dQWGVDSE1RS2ZDUzNNK2FNZm0wYm5BMkpPSU5scE9sbG9rN3U1RGd4UG9u?=
 =?utf-8?B?RWtsQWMweXNQZ0tWdXZnVjJOKzNaZWpoRURVZVBxY3NEZUFlOUpZVHgrWnhR?=
 =?utf-8?B?UFdKSnhsRzl4T1A4UTVvSXl4TTE3Mnl6emIxQWEvdXphTEFNVXU5bE9qbVd5?=
 =?utf-8?B?T2duNDNBT2hrYzF5SmovdHVNTC8wMmFxQ1NVUTdmZmZkWXNyaGZjYnBGbE9G?=
 =?utf-8?B?RVJ1M0RKdjdXTFkreFdnUktJRURhcTRNWTNHKzdXcHQ1QXAxV1h1R3R2a2NK?=
 =?utf-8?B?NjNQZ2t0T25Gc2hYeklBL2dJaE1oVlVWazBXa0VVYU9sUnJqeUgvc0ZiakRs?=
 =?utf-8?B?ZU1uOEJUSHRrWEZQNnBlZW5xTXFtQkM4QndzNmpuQVBJK21CSUUyZVZBL2Zz?=
 =?utf-8?B?WWQrQkdTcGo1R3dCRjZ2OHVidGNIbzUvMlg2dmFzYnFFUEpOYzcxa1haV1cw?=
 =?utf-8?B?aStLYy8wRXdiaXU4Kys3bnA3Q3dMS0I2V1lpZkxaM1J1d1BYR21ONzM2b2FV?=
 =?utf-8?B?NzB3cmVhcnlMRlNRa1N5U1h6M29EQWtmcjJVRHZBQURGVnh3L0FSM3RraWUy?=
 =?utf-8?B?aWt4ZnlFYTJnZU5TS2laK0hRUloyZVNYSy9zS3pNZ2tBT05DUDlzRnJMQ29h?=
 =?utf-8?B?blNlWFRyNmwxcFZEVCtBa3dGREFNWk1wUmhPZnIzRjFTdkJIaVpyVExlT0lB?=
 =?utf-8?B?b3BMczNEcFNIeWdkVy90b2pSL0I1OWVtWjJhY0YxRE1PTGJ4NjljZlJ6QUpk?=
 =?utf-8?B?aWFqcFJlTityc2kvdmhoN3NZdlJmQ1RVRE1tQjFENXEraExDSjRaZ0xvOWNr?=
 =?utf-8?B?OEJOZ0pqM200WXJlTVZXUm43dXZVSS9sL29KK0w3aDlJSlRNdDJLYzVrdVlt?=
 =?utf-8?B?a1JkYThULzhIbHl1cmdjWk1lN2M1MFVGQk1iU09lNDEwaWUwdHhDWG5mNjRx?=
 =?utf-8?B?Y01GQ0ZYSDh5RVBMTXd6M0FXd1ZrejBkNmVhb0N6VVAzVzlOVElFWFFmZ1BB?=
 =?utf-8?B?RmV3aDlZUXpOR2Z4U0dQZzZhdjhrOUlERWo2TTVQNjAxSWhXY1UwUDZrUFRY?=
 =?utf-8?B?WlFGMDVVemFRPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?bTdnVXVpcVRzTGdqUVN0T1dVSVJUM0J0d01oM0JkVlBIRVdWK1hKZTBjdXdR?=
 =?utf-8?B?RnVDYUlWUFhOUjJ1UjNoLzNCMGkvOGw2TXA1UHVZQ2sxZ3NXQ2FZWTRBekJm?=
 =?utf-8?B?RDg5djlxbk8rZmttZC9QNUFwOU5aUEZHLzl4cS9YRkt0NngwbDVYU3VuaDVF?=
 =?utf-8?B?N0JqL0tQUEU5QVZEdzg5ZElHODdacWdvR281dHZVcU5vZml6M24wOUhnM0hm?=
 =?utf-8?B?eFl1eEN0SG5DZkx0TUJpK1Z1ZE9xZ0ZKQjJOcmpNa2NZem1mYUIyMGJCYnZU?=
 =?utf-8?B?Y1RXck9oUEhCZWs4TTBXY3QxZyt4aHVyVFgwUXRRSEs3eDJ3Q3dnMlQ0NGJa?=
 =?utf-8?B?SFZ2NDc4bDlhZW1qOFd1Skd1cWRDcGcwWlNXamwyK2E0dy9vdmFRNlk1TmxU?=
 =?utf-8?B?Y2s3b2RsVUxUc2pVVzJXbk9iVEQ2NDBMUUhzZ1ZlQjBmUTFOUDUxOGQyOWh6?=
 =?utf-8?B?QVhueHU3YnpSSk16YWgybWxrL3RBK1UxSlZheW9nRG9CMUtON2wrcFF5Qm9Y?=
 =?utf-8?B?Zy92c0dhTnBwTGV5bVFzR1pEaXkvUDQreStqZ3pUVFBGcGpFSSszS3g4ZmNS?=
 =?utf-8?B?NmVvbHgyTmx2c2lVSDRRd3FmOXRrc0kxaEVsTkRORjErMjF0MjRiRUJhQ2Rr?=
 =?utf-8?B?OWN5RWh3Qm9MUEFod1lKQ0EvVmdoeFAzdEpRM08wZUQ0N05DZFpkanJDM01Y?=
 =?utf-8?B?VmVLWHBJZ0srdGlIU01pR2lJdXcySVZqVms1a1RTNTJhdSszMnBPbkhmTmJ3?=
 =?utf-8?B?dXVTNVE2ajNCUkdod2dOQ0FoUHBiUzBHRnM3TlNzdEJRanpESEgvekFzY1Fq?=
 =?utf-8?B?SzNMTElVKysvYlVUVG1RNVZRcDNidUo5NjVXeW5aT0xjZE9RcFJ3QUNEUjg2?=
 =?utf-8?B?YkNXWDhaY2FWQTR2L2lvTFpzUHpEKzJ5a0N4L1JyMkYrK2lvbGh3eXRGQ0x1?=
 =?utf-8?B?S0F2dndaQjRSNDI3SGVIRXN5alppd25CM2t2K1Job1FRV3NxN1ZCTE0yUmVD?=
 =?utf-8?B?aG1kMXQ4ZjV5Vm5nb1pVSW52VEJaamF4QnJEdnJ1b28wSDVObXNkQ0RKRTFm?=
 =?utf-8?B?R3pvSnpZR0ltWG96dUIyenlTN2ZuckFGYSs4aVNObXNVd214SDJKem9qazht?=
 =?utf-8?B?ZnhIemVuOVdodDJwVkx1bXJWeGUzRUcwM2V4WHFXd1FLQzVNN2thOFZ4b2hO?=
 =?utf-8?B?b3kyTUk3M0NSQjgvNzlZY01IRFBoQmlDWUNEY3E0VURtb3dZNkdiME5Gb1J4?=
 =?utf-8?B?SlBkbEoyM01JcUJaUmNVb2wyYUYxeWtCWVhsQWo5MnhUYnVrTlR5aURua3JO?=
 =?utf-8?B?Smc1UWJkaDU1WUJ3WGNMMDdHblhwMHl3bFdYR0wyWmZNWWxTRlBZSUFxbmRS?=
 =?utf-8?B?dTQzSW5iMzJZNE4zYnMrcXFiczlZRitTa1dKRm9zNCtrZE4wMDZQeUw4QjRv?=
 =?utf-8?B?NTJMTzFrNzB2b1JuekdzRUZOdGlzRmlEV3pZZFA5cFc2b2U1TmhUTnVwUVYv?=
 =?utf-8?B?SUgybXRrZGozUzBNWXBnaEp4KzRJZklmSGhaYzVhdFhpWW5CZVZEUlZWRFVG?=
 =?utf-8?B?SFNaanlNYkp6dUlCS1ErTTNSdi81bWFrOHlIQ0NOejU4OSsrb1RVb2FXb3Q3?=
 =?utf-8?B?OGxhWnJsMG5Md0p1Y0JDdWZ0bU1TRUcrb3pHRUtUL2MrODRhZk1tYnFlQjZm?=
 =?utf-8?B?RjVGY2JzMkZZeWtYY05uWG8xeXNTdjFRQUUyc0RYUHhXN29reXNadmRyOExt?=
 =?utf-8?B?L2pJRVV4a3c0aXBJUnFrVVBYN2ZiZk1qNkErZVVISFFQY1FiNHhNdHIwSUgy?=
 =?utf-8?B?OVFPNjdHVENWa00vZDZJMXVUZ2gySnBzRzNBc01EcGVEc1ZIV1kwSXBFUUEz?=
 =?utf-8?B?Y0x5M3MrTndycW1yVkFCazIxdnhrR3hHQUlFS3dkbzFwakJ6Y3VJcExqdERq?=
 =?utf-8?B?eFp2ZnJ0SVNUS2hnTkJCRlJGeTlySGM5dmZoT2N1OCtKRi9Ea3d4dWpPNk95?=
 =?utf-8?B?RWZxcXUyOTdCVlNaVGFreW1qbDJiSnRPSTVsUHoyK0FxMEpBV2lyb1ZyNWRq?=
 =?utf-8?B?MW5LRURlWDhrQUdhSWdjaFMvVGlwVjlZeHNaS2hJTFZIUE0rVGxxeERwMUth?=
 =?utf-8?B?MU9NU2duaXMyNEY0VXl0Y3VWY2NpQUNJYW1MVE0wa2hienl6R09kQjhYb3ZY?=
 =?utf-8?Q?fmQ7pLCXGZURgNtXcCSGU/s=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <526D8B1114244D468458BEB39E202373@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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7a3ffcc0-0227-4de1-c324-08dde64ed9ec
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Aug 2025 16:20:49.3943
 (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: C+l6qvb6Ey4JnTxX8WVdeIPPwi6sHk63hbQoR7qOcG3oAUgr0X8OuXwU9Jr5QLh5v9ENCL5xEbthqfP1poDJjOZiIC2nvzJ0NWqMrZ3aDXw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA6PR03MB10532

SGkgSnVsaWVuLA0KDQpUaGFuayB5b3UgZm9yIHlvdXIgcmV2aWV3Lg0KDQpPbiAyOC4wOC4yNSAx
NToxMCwgSnVsaWVuIEdyYWxsIHdyb3RlOg0KPiBIaSBMZW9uaWQsDQo+IA0KPiBPbiAyNy8wOC8y
MDI1IDE5OjI0LCBMZW9uaWQgS29tYXJpYW5za3lpIHdyb3RlOg0KPj4gSW50cm9kdWNlZCB0d28g
bmV3IGhlbHBlciBmdW5jdGlvbnM6IGdpY19pc192YWxpZF9saW5lIGFuZA0KPj4gZ2ljX2lzX3Nw
aS4gVGhlIGZpcnN0IGZ1bmN0aW9uIGhlbHBzIGRldGVybWluZSB3aGV0aGVyIGFuIElSUQ0KPj4g
bnVtYmVyIGlzIGxlc3MgdGhhbiB0aGUgbnVtYmVyIG9mIGxpbmVzIHN1cHBvcnRlZCBieSBoYXJk
d2FyZS4gVGhlDQo+PiBzZWNvbmQgZnVuY3Rpb24gYWRkaXRpb25hbGx5IGNoZWNrcyBpZiB0aGUg
SVJRIG51bWJlciBmYWxscyB3aXRoaW4gdGhlDQo+PiBTUEkgcmFuZ2UuIEFsc28sIHVwZGF0ZWQg
dGhlIGFwcHJvcHJpYXRlIGNoZWNrcyB0byB1c2UgdGhlc2UgbmV3IGhlbHBlcg0KPj4gZnVuY3Rp
b25zLg0KPj4NCj4+IFRoZSBjdXJyZW50IGNoZWNrcyBmb3IgdGhlIHJlYWwgR0lDIGFyZSB2ZXJ5
IHNpbWlsYXIgdG8gdGhvc2UgZm9yIHRoZQ0KPj4gdkdJQyBidXQgc2VydmUgYSBkaWZmZXJlbnQg
cHVycG9zZS4gRm9yIEdJQy1yZWxhdGVkIGNvZGUsIHRoZSBpbnRlcnJ1cHQNCj4+IG51bWJlcnMg
c2hvdWxkIGJlIHZhbGlkYXRlZCBiYXNlZCBvbiB3aGV0aGVyIHRoZSBoYXJkd2FyZSBjYW4gb3Bl
cmF0ZQ0KPj4gd2l0aCBzdWNoIGludGVycnVwdHMuIE9uIHRoZSBvdGhlciBoYW5kLCBmb3IgdGhl
IHZHSUMsIHRoZSBpbmRleGVzIG11c3QNCj4+IGFsc28gYmUgdmVyaWZpZWQgdG8gZW5zdXJlIHRo
ZXkgYXJlIGF2YWlsYWJsZSBmb3IgYSBzcGVjaWZpYyBkb21haW4uIFRoZQ0KPj4gZmlyc3QgcmVh
c29uIGZvciBpbnRyb2R1Y2luZyB0aGVzZSBoZWxwZXIgZnVuY3Rpb25zIGlzIHRvIGF2b2lkDQo+
PiBwb3RlbnRpYWwgY29uZnVzaW9uIHdpdGggdkdJQy1yZWxhdGVkIGNoZWNrcy4gVGhlIHNlY29u
ZCByZWFzb24gaXMgdG8NCj4+IGNvbnNvbGlkYXRlIHNpbWlsYXIgY29kZSBpbnRvIHNlcGFyYXRl
IGZ1bmN0aW9ucywgd2hpY2ggY2FuIGJlIG1vcmUNCj4+IGVhc2lseSBleHRlbmRlZCBieSBhZGRp
dGlvbmFsIGNvbmRpdGlvbnMsIGUuZy4sIHdoZW4gaW1wbGVtZW50aW5nDQo+PiBleHRlbmRlZCBT
UEkgaW50ZXJydXB0cy4NCj4+DQo+PiBUaGUgY2hhbmdlcywgd2hpY2ggcmVwbGFjZSBvcGVuLWNv
ZGVkIGNoZWNrcyB3aXRoIHRoZSB1c2Ugb2YgdGhlIG5ldw0KPj4gaGVscGVyIGZ1bmN0aW9ucywg
ZG8gbm90IGludHJvZHVjZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzLCBhcyB0aGUgaGVscGVyDQo+
PiBmdW5jdGlvbnMgZm9sbG93IHRoZSBjdXJyZW50IElSUSBpbmRleCB2ZXJpZmljYXRpb24gbG9n
aWMuDQo+Pg0KPj4gU2lnbmVkLW9mZi1ieTogTGVvbmlkIEtvbWFyaWFuc2t5aSA8bGVvbmlkX2tv
bWFyaWFuc2t5aUBlcGFtLmNvbT4NCj4+IFJldmlld2VkLWJ5OiBWb2xvZHlteXIgQmFiY2h1ayA8
dm9sb2R5bXlyX2JhYmNodWtAZXBhbS5jb20+DQo+IA0KPiBXaXRoIG9uZSByZW1hcmsgYmVsb3c6
DQo+IA0KPiBBY2tlZC1ieTogSnVsaWVuIEdyYWxsIDxqZ3JhbGxAYW1hem9uLmNvbT4NCj4gDQo+
PiAtLS0NCj4+IENoYW5nZXMgaW4gVjQ6DQo+PiAtIHJlbW92ZWQgcmVkdW5kYW50IHBhcmVudGhl
c2VzDQo+PiAtIGFkZGVkIHJldmlld2VkLWJ5IGZyb20gVm9sb2R5bXlyIEJhYmNodWsNCj4+DQo+
PiBDaGFuZ2VzIGluIFYzOg0KPj4gLSByZW5hbWVkIGdpY19pc192YWxpZF9pcnEgdG8gZ2ljX2lz
X3ZhbGlkX2xpbmUgYW5kIGdpY19pc19zaGFyZWRfaXJxIHRvDQo+PiDCoMKgIGdpY19pc19zcGkN
Cj4+IC0gdXBkYXRlZCBjb21taXQgbWVzc2FnZQ0KPj4NCj4+IENoYW5nZXMgaW4gVjI6DQo+PiAt
IGludHJvZHVjZWQgdGhpcyBwYXRjaA0KPj4NCj4+IENoYW5nZXMgZm9yIFY0Og0KPj4NCj4+IENo
YW5nZXMgaW4gVjQ6DQo+PiAtIHJlbW92ZWQgcmVkdW5kYW50IHBhcmVudGhlc2VzDQo+PiAtIGFk
ZGVkIHJldmlld2VkLWJ5IGZyb20gVm9sb2R5bXlyIEJhYmNodWsNCj4+IC0tLQ0KPj4gwqAgeGVu
L2FyY2gvYXJtL2dpYy5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwgMiArLQ0KPj4gwqAgeGVu
L2FyY2gvYXJtL2luY2x1ZGUvYXNtL2dpYy5oIHwgOSArKysrKysrKysNCj4+IMKgIHhlbi9hcmNo
L2FybS9pcnEuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IDIgKy0NCj4+IMKgIDMgZmlsZXMg
Y2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkNCj4+DQo+PiBkaWZmIC0t
Z2l0IGEveGVuL2FyY2gvYXJtL2dpYy5jIGIveGVuL2FyY2gvYXJtL2dpYy5jDQo+PiBpbmRleCBl
ODBmZTBjYTI0Li45MjIwZWVmNmVhIDEwMDY0NA0KPj4gLS0tIGEveGVuL2FyY2gvYXJtL2dpYy5j
DQo+PiArKysgYi94ZW4vYXJjaC9hcm0vZ2ljLmMNCj4+IEBAIC0xMTEsNyArMTExLDcgQEAgc3Rh
dGljIHZvaWQgZ2ljX3NldF9pcnFfcHJpb3JpdHkoc3RydWN0IGlycV9kZXNjIA0KPj4gKmRlc2Ms
IHVuc2lnbmVkIGludCBwcmlvcml0eSkNCj4+IMKgIHZvaWQgZ2ljX3JvdXRlX2lycV90b194ZW4o
c3RydWN0IGlycV9kZXNjICpkZXNjLCB1bnNpZ25lZCBpbnQgcHJpb3JpdHkpDQo+PiDCoCB7DQo+
PiDCoMKgwqDCoMKgIEFTU0VSVChwcmlvcml0eSA8PSAweGZmKTvCoMKgwqDCoCAvKiBPbmx5IDgg
Yml0cyBvZiBwcmlvcml0eSAqLw0KPj4gLcKgwqDCoCBBU1NFUlQoZGVzYy0+aXJxIDwgZ2ljX251
bWJlcl9saW5lcygpKTsvKiBDYW4ndCByb3V0ZSBpbnRlcnJ1cHRzIA0KPj4gdGhhdCBkb24ndCBl
eGlzdCAqLw0KPj4gK8KgwqDCoCBBU1NFUlQoZ2ljX2lzX3ZhbGlkX2xpbmUoZGVzYy0+aXJxKSk7
LyogQ2FuJ3Qgcm91dGUgaW50ZXJydXB0cyANCj4+IHRoYXQgZG9uJ3QgZXhpc3QgKi8NCj4gDQo+
IEFzIHlvdSBhcmUgdG91Y2hpbmcgdGhlIGxpbmUuIEl0IGlzIG92ZXIgODAgY2hhcmFjdGVycy4g
Q2FuIHlvdSBtb3ZlIHRoZSANCj4gY29tbWFuZCBpbiBhIHNlcGFyYXRlIGxpbmU/DQoNClN1cmUs
IEkgd2lsbCBmaXggZm9ybWF0dGluZyBpbiBWNS4NCg0KPiANCj4+IMKgwqDCoMKgwqAgQVNTRVJU
KHRlc3RfYml0KF9JUlFfRElTQUJMRUQsICZkZXNjLT5zdGF0dXMpKTsNCj4+IMKgwqDCoMKgwqAg
QVNTRVJUKHNwaW5faXNfbG9ja2VkKCZkZXNjLT5sb2NrKSk7DQo+IA0KPiBDaGVlcnMsDQo+IA0K
DQpCZXN0IHJlZ2FyZHMsDQpMZW9uaWQNCg==


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 16:26:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 16:26:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099623.1453399 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urfRw-0000Tg-C9; Thu, 28 Aug 2025 16:26:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099623.1453399; Thu, 28 Aug 2025 16:26: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 1urfRw-0000TZ-8P; Thu, 28 Aug 2025 16:26:08 +0000
Received: by outflank-mailman (input) for mailman id 1099623;
 Thu, 28 Aug 2025 16:26:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FxJR=3I=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1urfRv-0000TT-4D
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 16:26:07 +0000
Received: from AM0PR02CU008.outbound.protection.outlook.com
 (mail-westeuropeazlp170130006.outbound.protection.outlook.com
 [2a01:111:f403:c201::6])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b152a486-842b-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 18:26:05 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by GV1PR03MB10870.eurprd03.prod.outlook.com (2603:10a6:150:20a::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Thu, 28 Aug
 2025 16:26:01 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9073.016; Thu, 28 Aug 2025
 16:26: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>
X-Inumbo-ID: b152a486-842b-11f0-8adc-4578a1afcccb
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UVRsDWCtC0k3pZ08j00jT4FesNoSBji4Jm2bloD6YVXgm7gAOOkJt1HupKsWdiyIrX9kyt07ct/vwynixF6r2cRIKYMv76ngKmhtuD5sTkwe7m5WI/3FjxWBUVZQPwceGw1MYkj2IXf9zGtCvQFiMstHx3vQHqEWJK4R3Z01/b53YAhE7Rv/jkbTCXpPft/Jg/oKXwUIrN4xXtXrMIOxZVdFHYqkJxccZBbf/sci5hX9lFMFBOT7K4IZaIT8P53L23FkDbatYehm2WA2nHZWGXjBYjWzk08HERxgPm9HEWVhK/s2ypP3X2uWdh1eR5T9r/N5CCPWiCdicoe4AZO/LA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=h6CWIMrFQDECDE3eB6ZtXz2fA0NXKuDAmJdH/AG6PUw=;
 b=mRX3JjcnuO1yWBZ108+FlV6OnZ+Rh6IbL44wGR84nDJ0P5BuaAsvTrUpYDcATUVy9Y2HxUjq2XwMa+mC8XPpN11SXKc0xuSlTuuCV5mNnyP65++z18HIJogbwsNCsAj26qoukhyLGMFtaCxiATLGZRlrYCTdB7BhGqsql1nFmO2K3dcd7nkCkOok/F3yOwUvUDHIUQRBCToyzlqEG9aTkaht0wtVVLidvtRkGjaIseWqWGCM3pPuNPFn5aHSrTPff9toKpFLkQUx2j2+ZwTCIRW4fH3f1Bd2d8TpQ1Y6RWlJUB1SzZF2KJIrS4CwbZ+mSA4nlwElY7B9UWGdxuFsRQ==
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=h6CWIMrFQDECDE3eB6ZtXz2fA0NXKuDAmJdH/AG6PUw=;
 b=TXsrhCcIbORQTyVMM24gwW/QUrvfg1hbzRlOpX3R1jf7gkjPjJv20OmLDlL3qeQjIft6QZmrn00C1Vmuho0KYuvfwcLQ4Hr0le8FeqvOVMoQKtj1xVGba7iWW0qZzXW5HcsW9Ca/eC+z3/X71YOF+qB0A7Cq3ISKlIQ9aWg2Y7J0y9gr9wAta8+4DEHUsITLKNxojhlVkALF83a4RaGJJZ/VeDLeDnZ71nPh79WKwN4n1aA6PLhdH1+SjzxyqrNU4jpdcWfAw72QUn7PZaJMby7ulaK7h9OQKU4gZ7YeXBFZOjShzUTr6quU95ii6qTiq5atdcRKMak5BIF3tIXVGw==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: Oleksandr Tyshchenko <olekstysh@gmail.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel
	<michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v4 05/12] xen/arm: gicv3: implement handling of GICv3.1
 eSPI
Thread-Topic: [PATCH v4 05/12] xen/arm: gicv3: implement handling of GICv3.1
 eSPI
Thread-Index: AQHcF3/KB15KvpnNkEu7nU8vywEQ/bR4HX4AgAAkZIA=
Date: Thu, 28 Aug 2025 16:26:01 +0000
Message-ID: <6ee3131c-7483-4558-8e96-774ff016c2c3@epam.com>
References: <cover.1756317702.git.leonid_komarianskyi@epam.com>
 <864522724dd6058952cad8b505b0589750b7f8d7.1756317702.git.leonid_komarianskyi@epam.com>
 <a759fb03-002a-4de4-993e-ad7a7f86017a@gmail.com>
In-Reply-To: <a759fb03-002a-4de4-993e-ad7a7f86017a@gmail.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: GV2PR03MB8678:EE_|GV1PR03MB10870:EE_
x-ms-office365-filtering-correlation-id: 2bb47e44-e8a5-4617-06aa-08dde64f9419
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?elF0SXdzS0NYcnJGcE5iRUwzNHZTQzJhQ0liR3JzOXZTeGZhSGpZM1h4Yy9m?=
 =?utf-8?B?ei9rRm9qNnpVYlhGSVNNa1VUamk1d2d4UFpvWFcvV0tPbSt0Zmk3RWlUYzFv?=
 =?utf-8?B?ekRjK3hmVU5EaUN1eDV6bGNQZjJ3cS9GQzdNYnFCTGhDVisrQ0lCTUxUZWlF?=
 =?utf-8?B?UzZtN0h1Zjd5T0dQTHptVEpvRS9wWnJNaTdSRjB0UDJkamF2NTBsalUreVFw?=
 =?utf-8?B?dit2NFU5c1RMenU1QWhMVCsrN1hmOFA3N0YrZXA2azJCUG1pUmxWZjdRbUZq?=
 =?utf-8?B?YjQveVNUNzlkL1lGaDZzbCsyZThJVG40aE9heWROd1hVbDI0MWNVaDVSWUQy?=
 =?utf-8?B?VEUweWs5MDgrY2ZzQVUyNDFZMUJRQkRwNFZjT1FBN2JSbFNML21LQiszMnc5?=
 =?utf-8?B?b0RiN1FKUjA2emFkY2cwU2ozUWFWb0g2bUYxWjVRcnpPQk5KalZEVnVrRWEx?=
 =?utf-8?B?VWNPK0doM3hnVVJNaEluU1Z1c0dodWkrTUxqUTdXSUgxSGNPbldWVTVQZjlT?=
 =?utf-8?B?S3RqM25JdlVEL2hTYjNocWJmeklYL0sydEpXZ212a2RTSzBNQU51VzlSOVpE?=
 =?utf-8?B?L2JrOWdRNjVORGlOaUloSTNGT05ram5xSytseUxKUjFkTXV1dHhTSGNJaWhB?=
 =?utf-8?B?ZXlMcjR0dWdsbXM2dzgvdnFDZlZ3MGFMSERnV3BkTCt0NWhSblg1RHpJVlFv?=
 =?utf-8?B?Y0ZQY0Jqb1V5RGhGeEZRbmFrdEJjNWljYzhjanp3QU4yQWc2NTkyb2VSZmlv?=
 =?utf-8?B?M0Z6aDg2cTlUWjZWMHVDbTMyZVpBNWtOTEs1Ti9kRUsrYWpqTlB4MktwZXlU?=
 =?utf-8?B?SjA0N1VNRWNRZnJaUWNnbjdKMmg3dnc4alhpdHl1a3JMb0dzaWlCUmxVQnhn?=
 =?utf-8?B?eFNLYjlBUjhuNGdlV2NTMDAzUDF5emFuMGgvQnVmbmlJdnBrZjd3UDhqSVF0?=
 =?utf-8?B?aG11amlWc0VtSVh2cUlnaWdqbGd5dVNKWENFMFBHeFFGV2NoWXdTaWZ5aWJ2?=
 =?utf-8?B?bEYxYzh4UTc4WDVSb0Z4bDVoME5PUEN5WGZjVlUwREYrZ3dUZFBGZnFvWU0z?=
 =?utf-8?B?S0drVlFPb21VNXcza2tBbTNFbTB4K2REWFRzOElpWHlNUVdiT1lvN0lYb0pm?=
 =?utf-8?B?dWd4c3dmTWxvVzhSOEI1SmZZYmI1amsrSG5aQTBrUmthUU9mUEpSZlRBQ0Fv?=
 =?utf-8?B?ckIxWEVlWFhHOG85T0hqaU5pUzdtcXFObnR6N2pPRGtVZ2VNQkJwaExIVGtM?=
 =?utf-8?B?K05mZVA1MkpiWlhsZmNLTDZTTm5rOUs4SEFJelFyR20yZGwwSVJRd1k0c1pu?=
 =?utf-8?B?OEU5cFh2Ti9ZWkJNUUhpL0hIeFM3RXlIdWxTUGVWa3hoRnJTZnQwL25WVDJJ?=
 =?utf-8?B?YTZkZFhnVndqQ1Rid1BhWEZPR0YrdmxKckxwNm04Tk9JbDczcUdzd29FM1NC?=
 =?utf-8?B?UFgwR3ZLTGI2VzU4dDFvMCtuRXhuRFVYaEJLUHVDZ21UVTNRV0RzRTVnOUZ5?=
 =?utf-8?B?MWhURXlkYWUwTm53bStTMDgzU2NnRVRqK012dFp0aWxwaFFXL0YrSzRLek4r?=
 =?utf-8?B?U0NZNFNqN3VSb0ZXR0hlS1VYVndybG9ZU29lU3VGVDdGM0d6QmlpdVdOYS8y?=
 =?utf-8?B?bWFJclVwNDV1RnpNeGIvQVBuZnlaaEQ4M3kzUENqRXJaZFo3T3JUdW1DcWF4?=
 =?utf-8?B?N3VPbGprKzQzb1FtSkhzc0hqalhVTDhrWERxNFU2c0FkTGYvOWxxcVhBbEk0?=
 =?utf-8?B?djZITjVHa01MdVNaOTNmMS9HUmhNVWxFYnE5MFpYYmx1d3ptQnpFaU5TNnJ4?=
 =?utf-8?B?WWVYaDUzdjNTenlycGpqc0NhMGFnQ3NjSlVadDR0Q3M3Zlg4VjdHYS8xZW1y?=
 =?utf-8?B?YXJXcCthT0JzVWFadHM5cUlkZVc1bGx0bHh2Uko4QlBRSUs3VW1RcFRLSHZ4?=
 =?utf-8?B?VkVyUEpVWHo3STJta3NEajJCN0pZNjlRbkJ2bjZzYTRxWUMxQkhMNU9mVkxk?=
 =?utf-8?B?OVRFd0lQdmdRPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?VjFFekU2MzhDR0MzY280SW9WTVpRRFMyZWNldmd6UHFEbjFBcTdMdFpEQndU?=
 =?utf-8?B?WlpPUmYwbDdleDBQaUVrakFzZy8yeXhLVEwyWnNaNGdDL3drWGY3UE90MnND?=
 =?utf-8?B?WGpaeERYMjE1OUh1TDlMYUFPL1lNOVFZWjdlZS92ZmxxTW5rMkJyeTcvYW9n?=
 =?utf-8?B?emZ2M1dmcFpTWk83aUJMOS9hN3JIZXJrN0tKbHJOdGN5MUdnMEJjYkNIYnRS?=
 =?utf-8?B?L1ZuYXMwUFdvcFRYNk42T1NmMUwyNGpFWjRtb2l6QnFUVVRmZ3N0MHJ0aUVv?=
 =?utf-8?B?MUxWT01iS0MrY0JyTzVvd0ducUFqeVg2eFBFdUovdFh0VitxUzdXZm9YNitt?=
 =?utf-8?B?bnVKQnJ5OU4vQVgvY05IYWZOTDEzZ3F0VHd3czZNK29OUXpiNFlRSk5jYTI4?=
 =?utf-8?B?WFJ6WVRKR05FZHBpMHMydXRDVXRkeGlsSUJkVzNwM3YxTGtXYjhKM0RFK0ly?=
 =?utf-8?B?eElEWUJGRWFZOGgxZFRsU1NBSHZSY3B6Zk1xckcxZENOMlVOR2hKM2xPeW9X?=
 =?utf-8?B?Rk95TXdFSFp0dkVTdGovREcwcW4yUmVkSTdpMVhnS0d5enBRNjRWMllWSG1i?=
 =?utf-8?B?L2hzNzVCN2VYZE5ydDZiS01oUUVCL096VzZSR2lIK3FlVEtWK3B0YkNFU0RF?=
 =?utf-8?B?ejZjcDQ3OG9lWmdhd0kxU3JVQWZtcEpzcDZZV0V6RGJMcnpaRkVHVTNER2JG?=
 =?utf-8?B?UHVQTHhwWnRKSUhpbWN0QXAxdzVRdDhBRCtVcUNIeXBvd1dZUllwQTZVMTJT?=
 =?utf-8?B?RCsySHNhMDZkL0ljem00TFdsZUdIMXFXVFN1Z0JnZXlIYVhHOGpDZjJkQkgv?=
 =?utf-8?B?OGVtaThOQ1hGSE1mbTFLRHcyR3ZNc1JHd0VTekNqTWwvN0FtTE8yL2MyblBI?=
 =?utf-8?B?K1dpdWlsOVY0U3E1OGJMcU9LSXgya2VoR0UrcGNuRS9QNUovck1BR0ZaVjhE?=
 =?utf-8?B?MTNXZnpBNDh1OHpiM3A3WVUvNkgzaFJQZEFRUHl0YzNYMGNMa1FZRGhGakJt?=
 =?utf-8?B?ajJrajcydHhNOE1lNUZaT2U3bXdxRUpIM2JlTTBaZjZSNCtnZWlNRHpRUm5t?=
 =?utf-8?B?N2t6R1hQSWVOZlRuL1RyQ0xPUFQzWTdzdEhSamgxZDBFUWtQRnhLdVhHbjZl?=
 =?utf-8?B?QmdsQzgzVjRFWnJTc2pqWkdOVlMzY0hRNG1jUVBCQ0dzZ3dpUTF6bng2OHM5?=
 =?utf-8?B?MGIyQ1EyQlBlYjVOclF2MDBpRVoxWmN1VXZUYjczY2xoa2RaeUtCbnJkVlpI?=
 =?utf-8?B?dnR6d2pJSWE0aGtkOUFCSHlHNC9jR09PVXFoM0NzWG5JKytyQnlidXJSYUFu?=
 =?utf-8?B?UW95WnB1MFdTRTQwUlNpWlNuTHRPVUZHcW5WQW9DT2tuNGM3a3VuZUNWSUQ1?=
 =?utf-8?B?YmxIMVp4ajltb1E5SzVVWTdvZ012MjAvY2JFTlRKdjRubmxCN1l3NS90K3BS?=
 =?utf-8?B?VWFYcTljQWF3VUdJMkpwTHMydTk1VTlDMG85WXAvekRkcG9oTXdZMG5VZHZI?=
 =?utf-8?B?ZHZCUThqMmFpNUg2Q01jZlNiZlg0eTJJc1p1bFh4YlEwU1YvMUx4M2d0cldL?=
 =?utf-8?B?bEJvWVVUZ0t1ZFJDK05jcmZPR1RLbm04SGNmL05BSTFicGZsRVFsZ3d5Q2lO?=
 =?utf-8?B?a0F4dHRKSzgwcE8weW9qU2dpTGpPY2VTTzd3a1BvZWpKT1pjMTJKSUVoenhU?=
 =?utf-8?B?MWw0NnRSMmcwdDdXOGpzblR6REdBeU1UZHNSMkpFT3VoTkFwelNrWmtjN1l5?=
 =?utf-8?B?aE92N0pucTh5WWlsV1d4Y3Z2VXlrTzkrTWtianlYUlZ2UHduempyYm93QndB?=
 =?utf-8?B?eG4wZGtlc08xM1ZGaVVoeHVWU1JTcnVjTzNMR21jVTV4TlNOeFJtdWcxUVdL?=
 =?utf-8?B?d3ZaNG95ZW1ORjRWVVIwK1c4TEtWbjY1K05Yajl4TFkzUTZqb2Y5ZWRibHRY?=
 =?utf-8?B?R0tpdHB5STJOVnBla2FFRnBpQmFWUEwyN2NCeW93bEJpdXBDNjZJcDZqVUZG?=
 =?utf-8?B?emRLTHZEdGpzREdXNWtTVGtjeXRSNFBpS1lXd0szdzlCTXBJNityWEZSckJ0?=
 =?utf-8?B?NVlVRGdrZlY5ZEFLaDhyUDFiVnNVWFRDUG5IUVBOdXE3WDdPTHNMM0kwSlZV?=
 =?utf-8?B?cDhwYlgzZFFrQWhXWm9xY2o2V2I4UW9abzN4RFBzLzhIb0JHb0xtZ3BDYXN0?=
 =?utf-8?Q?xXaR7T7uZPW/U/dQVIzDDII=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <1FC3E616BD853349A7DAD5CBA6882D07@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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2bb47e44-e8a5-4617-06aa-08dde64f9419
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Aug 2025 16:26:01.7880
 (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: t2wdNtQat5Gju9NltHCoVJm83GsB4/Ze7hGDDOALjQq2m4NyozYicoUSUh847eS5UwxPl9/WrAGlZl+i3FrtpUcYq2JpdI7TcPO0Wi6Pbb4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR03MB10870

SGkgT2xla3NhbmRyLA0KDQpUaGFuayB5b3UgZm9yIHlvdXIgcmV2aWV3Lg0KDQpPbiAyOC4wOC4y
NSAxNzoxNSwgT2xla3NhbmRyIFR5c2hjaGVua28gd3JvdGU6DQo+IA0KPiANCj4gT24gMjcuMDgu
MjUgMjE6MjQsIExlb25pZCBLb21hcmlhbnNreWkgd3JvdGU6DQo+IA0KPiBIZWxsbyBMZW9uaWQN
Cj4gDQo+IA0KPj4gSW50cm9kdWNlZCBhcHByb3ByaWF0ZSByZWdpc3RlciBkZWZpbml0aW9ucywg
aGVscGVyIG1hY3JvcywNCj4+IGFuZCBpbml0aWFsaXphdGlvbiBvZiByZXF1aXJlZCBHSUN2My4x
IGRpc3RyaWJ1dG9yIHJlZ2lzdGVycw0KPj4gdG8gc3VwcG9ydCBlU1BJLiBUaGlzIHR5cGUgb2Yg
aW50ZXJydXB0IGlzIGhhbmRsZWQgaW4gdGhlDQo+PiBzYW1lIHdheSBhcyByZWd1bGFyIFNQSSBp
bnRlcnJ1cHRzLCB3aXRoIHRoZSBmb2xsb3dpbmcNCj4+IGRpZmZlcmVuY2VzOg0KPj4NCj4+IDEp
IGVTUElzIGNhbiBoYXZlIHVwIHRvIDEwMjQgaW50ZXJydXB0cywgc3RhcnRpbmcgZnJvbSB0aGUN
Cj4+IGJlZ2lubmluZyBvZiB0aGUgcmFuZ2UsIHdoZXJlYXMgcmVndWxhciBTUElzIHVzZSBJTlRJ
RHMgZnJvbQ0KPj4gMzIgdG8gMTAxOSwgdG90YWxpbmcgOTg4IGludGVycnVwdHM7DQo+PiAyKSBl
U1BJcyBzdGFydCBhdCBJTlRJRCA0MDk2LCBuZWNlc3NpdGF0aW5nIGFkZGl0aW9uYWwgaW50ZXJy
dXB0DQo+PiBpbmRleCBjb252ZXJzaW9uIGR1cmluZyByZWdpc3RlciBvcGVyYXRpb25zLg0KPj4N
Cj4+IEluIGNhc2UgaWYgYXBwcm9wcmlhdGUgY29uZmlnIGlzIGRpc2FibGVkLCBvciBHSUMgSFcg
ZG9lc24ndA0KPj4gc3VwcG9ydCBlU1BJLCB0aGUgZXhpc3RpbmcgZnVuY3Rpb25hbGl0eSB3aWxs
IHJlbWFpbiB0aGUgc2FtZS4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBMZW9uaWQgS29tYXJpYW5z
a3lpIDxsZW9uaWRfa29tYXJpYW5za3lpQGVwYW0uY29tPg0KPj4gUmV2aWV3ZWQtYnk6IFZvbG9k
eW15ciBCYWJjaHVrIDx2b2xvZHlteXJfYmFiY2h1a0BlcGFtLmNvbT4NCj4+DQo+PiAtLS0NCj4+
IENoYW5nZXMgaW4gVjQ6DQo+PiAtIGFkZGVkIG9mZnNldHMgZm9yIEdJQ0RfSUdSUE1PRFJuRSBh
bmQgR0lDRF9OU0FDUm5FIHRoYXQgYXJlIHJlcXVpcmVkDQo+PiDCoMKgIGZvciB2R0lDIGVtdWxh
dGlvbg0KPj4gLSBhZGRlZCBhIGxvZyBiYW5uZXIgd2l0aCBlU1BJIGluZm9ybWF0aW9uLCBzaW1p
bGFyIHRvIHRoZSBvbmUgZm9yDQo+PiDCoMKgIHJlZ3VsYXIgU1BJDQo+PiAtIGFkZGVkIG5ld2xp
bmUgYWZ0ZXIgaWZkZWYgYW5kIGJlZm9yZSBnaWNfaXNfdmFsaWRfbGluZQ0KPj4gLSBhZGRlZCBy
ZXZpZXdlZC1ieSBmcm9tIFZvbG9keW15ciBCYWJjaHVrDQo+IA0KPiBvbmx5IE5JVHMgYmVsb3cN
Cj4gDQo+IFJldmlld2VkLWJ5OiBPbGVrc2FuZHIgVHlzaGNoZW5rbyA8b2xla3NhbmRyX3R5c2hj
aGVua29AZXBhbS5jb20+DQo+IA0KPj4NCj4+IENoYW5nZXMgaW4gVjM6DQo+PiAtIGFkZCBfX2lu
aXQgYXR0cmlidXRlIHRvIGdpY3YzX2Rpc3RfZXNwaV9jb21tb25faW5pdA0KPj4gLSBjaGFuZ2Ug
b3Blbi1jb2RkZWQgZVNQSSByZWdpc3RlciBpbml0aWFsaXphdGlvbiB0byB0aGUgYXBwcm9wcmlh
dGUNCj4+IMKgwqAgZ2VuLW1hc2sgbWFjcm8NCj4+IC0gZml4ZWQgZm9ybWF0dGluZyBmb3IgbGlu
ZXMgd2l0aCBtb3JlIHRoYW4gODAgc3ltYm9scw0KPj4gLSBpbnRyb2R1Y2VkIGdpY3YzX2Rpc3Rf
ZXNwaV9pbml0X2FmZiB0byBiZSBhYmxlIHRvIHVzZSBzdHVicyBpbiBjYXNlIG9mDQo+PiDCoMKg
IENPTkZJR19HSUNWM19FU1BJIGRpc2FibGVkDQo+PiAtIHJlbmFtZWQgcGFyYW1ldGVyIGluIHRo
ZSBHSUNEX1RZUEVSX0VTUElfUkFOR0UgbWFjcm8gdG8gZXNwaV9yYW5nZQ0KPj4gwqDCoCAobmFt
ZSB3YXMgdGFrZW4gZnJvbSBHSUMgc3BlY2lmaWNhdGlvbikgdG8gYXZvaWQgY29uZnVzaW9uDQo+
PiAtIGNoYW5nZWQgdHlwZSBmb3IgaSB2YXJpYWJsZSB0byB1bnNpZ25lZCBpbnQgc2luY2UgaXQg
Y2Fubm90IGJlDQo+PiDCoMKgIG5lZ2F0aXZlDQo+Pg0KPj4gQ2hhbmdlcyBpbiBWMjoNCj4+IC0g
bW92ZSBnaWNfbnVtYmVyX2VzcGlzIGZ1bmN0aW9uIGZyb20NCj4+IMKgwqAgW1BBVENIIDA4LzEw
XSB4ZW4vYXJtOiB2Z2ljOiBhZGQgcmVzb3VyY2UgbWFuYWdlbWVudCBmb3IgZXh0ZW5kZWQgU1BJ
cw0KPj4gwqDCoCB0byB1c2UgaXQgaW4gdGhlIG5ld2x5IGludHJvZHVjZWQgZ2ljX2lzX3ZhbGlk
X2VzcGkNCj4+IC0gYWRkIGdpY19pc192YWxpZF9lc3BpIHdoaWNoIGNoZWNrcyBpZiBJUlEgbnVt
YmVyIGlzIGluIHN1cHBvcnRlZA0KPj4gwqDCoCBieSBIVyBlU1BJIHJhbmdlDQo+PiAtIHVwZGF0
ZSBnaWNfaXNfdmFsaWRfaXJxIGNvbmRpdGlvbnMgdG8gYWxsb3cgb3BlcmF0aW9ucyB3aXRoIGVT
UElzDQo+Pg0KPj4gQ2hhbmdlcyBmb3IgVjQ6DQo+Pg0KPj4gQ2hhbmdlcyBpbiBWNDoNCj4+IC0g
YWRkZWQgb2Zmc2V0cyBmb3IgR0lDRF9JR1JQTU9EUm5FIGFuZCBHSUNEX05TQUNSbkUgdGhhdCBh
cmUgcmVxdWlyZWQNCj4+IMKgwqAgZm9yIHZHSUMgZW11bGF0aW9uDQo+PiAtIGFkZGVkIG5ld2xp
bmUgYWZ0ZXIgaWZkZWYgYW5kIGJlZm9yZSBnaWNfaXNfdmFsaWRfbGluZQ0KPj4gLSBhZGRlZCBy
ZXZpZXdlZC1ieSBmcm9tIFZvbG9keW15ciBCYWJjaHVrDQo+PiAtIGFkZGVkIGEgbG9nIGJhbm5l
ciB3aXRoIGVTUEkgaW5mb3JtYXRpb24sIHNpbWlsYXIgdG8gdGhlIG9uZSBmb3INCj4+IMKgwqAg
cmVndWxhciBTUEkNCj4+IC0tLQ0KPj4gwqAgeGVuL2FyY2gvYXJtL2dpYy12My5jwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IDgyICsrKysrKysrKysrKysrKysrKysrKysrKysr
DQo+PiDCoCB4ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vZ2ljLmjCoMKgwqDCoMKgwqDCoMKgIHwg
MjIgKysrKysrKw0KPj4gwqAgeGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2dpY192M19kZWZzLmgg
fCAzOCArKysrKysrKysrKysNCj4+IMKgIDMgZmlsZXMgY2hhbmdlZCwgMTQyIGluc2VydGlvbnMo
KykNCj4+DQo+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2dpYy12My5jIGIveGVuL2FyY2gv
YXJtL2dpYy12My5jDQo+PiBpbmRleCBhOTU5ZmVmZWJlLi5iOTM5YTFmNDkwIDEwMDY0NA0KPj4g
LS0tIGEveGVuL2FyY2gvYXJtL2dpYy12My5jDQo+PiArKysgYi94ZW4vYXJjaC9hcm0vZ2ljLXYz
LmMNCj4+IEBAIC00ODUsNiArNDg1LDM2IEBAIHN0YXRpYyB2b2lkIF9faW9tZW0gKmdldF9hZGRy
X2J5X29mZnNldChzdHJ1Y3QgDQo+PiBpcnFfZGVzYyAqaXJxZCwgdTMyIG9mZnNldCkNCj4+IMKg
wqDCoMKgwqDCoMKgwqDCoCBkZWZhdWx0Og0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg
YnJlYWs7DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgfQ0KPj4gKyNpZmRlZiBDT05GSUdfR0lDVjNf
RVNQSQ0KPj4gK8KgwqDCoCBjYXNlIEVTUElfQkFTRV9JTlRJRCAuLi4gRVNQSV9NQVhfSU5USUQ6
DQo+PiArwqDCoMKgIHsNCj4+ICvCoMKgwqDCoMKgwqDCoCB1MzIgaXJxX2luZGV4ID0gRVNQSV9J
TlRJRDJJRFgoaXJxZC0+aXJxKTsNCj4gDQo+IE5JVDogSSBoYXZlIGhlYXJkIHRoYXQgbm8gdU4g
Zm9yIG5ldyBjb2RlLCBidXQgdWludE5fdCAoc29ycnkgZm9yIGRpZG4ndCANCj4gc3BvdCB0aGlz
IGJlZm9yZSksIHNvIEkgd291bGQgdXNlIHVpbnQzMl90DQo+IA0KDQpPa2F5LCBJIHdpbGwgY2hh
bmdlIHUzMiB0byB1aW50MzJfdCBpbiBWNS4NCg0KPiANCj4+ICsNCj4+ICvCoMKgwqDCoMKgwqDC
oCBzd2l0Y2ggKCBvZmZzZXQgKQ0KPj4gK8KgwqDCoMKgwqDCoMKgIHsNCj4+ICvCoMKgwqDCoMKg
wqDCoCBjYXNlIEdJQ0RfSVNFTkFCTEVSOg0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0
dXJuIChHSUNEICsgR0lDRF9JU0VOQUJMRVJuRSArIChpcnFfaW5kZXggLyAzMikgKiA0KTsNCj4+
ICvCoMKgwqDCoMKgwqDCoCBjYXNlIEdJQ0RfSUNFTkFCTEVSOg0KPj4gK8KgwqDCoMKgwqDCoMKg
wqDCoMKgwqAgcmV0dXJuIChHSUNEICsgR0lDRF9JQ0VOQUJMRVJuRSArIChpcnFfaW5kZXggLyAz
MikgKiA0KTsNCj4+ICvCoMKgwqDCoMKgwqDCoCBjYXNlIEdJQ0RfSVNQRU5EUjoNCj4+ICvCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiAoR0lDRCArIEdJQ0RfSVNQRU5EUm5FICsgKGlycV9p
bmRleCAvIDMyKSAqIDQpOw0KPj4gK8KgwqDCoMKgwqDCoMKgIGNhc2UgR0lDRF9JQ1BFTkRSOg0K
Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIChHSUNEICsgR0lDRF9JQ1BFTkRSbkUg
KyAoaXJxX2luZGV4IC8gMzIpICogNCk7DQo+PiArwqDCoMKgwqDCoMKgwqAgY2FzZSBHSUNEX0lT
QUNUSVZFUjoNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiAoR0lDRCArIEdJQ0Rf
SVNBQ1RJVkVSbkUgKyAoaXJxX2luZGV4IC8gMzIpICogNCk7DQo+PiArwqDCoMKgwqDCoMKgwqAg
Y2FzZSBHSUNEX0lDQUNUSVZFUjoNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiAo
R0lDRCArIEdJQ0RfSUNBQ1RJVkVSbkUgKyAoaXJxX2luZGV4IC8gMzIpICogNCk7DQo+PiArwqDC
oMKgwqDCoMKgwqAgY2FzZSBHSUNEX0lDRkdSOg0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAg
cmV0dXJuIChHSUNEICsgR0lDRF9JQ0ZHUm5FICsgKGlycV9pbmRleCAvIDE2KSAqIDQpOw0KPj4g
K8KgwqDCoMKgwqDCoMKgIGNhc2UgR0lDRF9JUk9VVEVSOg0KPj4gK8KgwqDCoMKgwqDCoMKgwqDC
oMKgwqAgcmV0dXJuIChHSUNEICsgR0lDRF9JUk9VVEVSbkUgKyBpcnFfaW5kZXggKiA4KTsNCj4+
ICvCoMKgwqDCoMKgwqDCoCBjYXNlIEdJQ0RfSVBSSU9SSVRZUjoNCj4+ICvCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgIHJldHVybiAoR0lDRCArIEdJQ0RfSVBSSU9SSVRZUm5FICsgaXJxX2luZGV4KTsN
Cj4+ICvCoMKgwqDCoMKgwqDCoCBkZWZhdWx0Og0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAg
YnJlYWs7DQo+PiArwqDCoMKgwqDCoMKgwqAgfQ0KPj4gK8KgwqDCoCB9DQo+PiArI2VuZGlmDQo+
PiDCoMKgwqDCoMKgIGRlZmF1bHQ6DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgYnJlYWs7DQo+PiDC
oMKgwqDCoMKgIH0NCj4+IEBAIC02NTUsNiArNjg1LDU0IEBAIHN0YXRpYyB2b2lkIGdpY3YzX3Nl
dF9pcnFfcHJpb3JpdHkoc3RydWN0IA0KPj4gaXJxX2Rlc2MgKmRlc2MsDQo+PiDCoMKgwqDCoMKg
IHNwaW5fdW5sb2NrKCZnaWN2My5sb2NrKTsNCj4+IMKgIH0NCj4+ICsjaWZkZWYgQ09ORklHX0dJ
Q1YzX0VTUEkNCj4+ICt1bnNpZ25lZCBpbnQgZ2ljX251bWJlcl9lc3Bpcyh2b2lkKQ0KPj4gK3sN
Cj4+ICvCoMKgwqAgcmV0dXJuIGdpY19od19vcHMtPmluZm8tPm5yX2VzcGk7DQo+PiArfQ0KPj4g
Kw0KPj4gK3N0YXRpYyB2b2lkIF9faW5pdCBnaWN2M19kaXN0X2VzcGlfY29tbW9uX2luaXQodWlu
dDMyX3QgdHlwZSkNCj4+ICt7DQo+PiArwqDCoMKgIHVuc2lnbmVkIGludCBlc3BpX25yLCBpOw0K
Pj4gKw0KPj4gK8KgwqDCoCBlc3BpX25yID0gbWluKDEwMjRVLCBHSUNEX1RZUEVSX0VTUElTX05V
TSh0eXBlKSk7DQo+PiArwqDCoMKgIGdpY3YzX2luZm8ubnJfZXNwaSA9IGVzcGlfbnI7DQo+PiAr
wqDCoMKgIC8qIFRoZSBHSUMgSFcgZG9lc24ndCBzdXBwb3J0IGVTUEksIHNvIHdlIGNhbiBsZWF2
ZSBmcm9tIGhlcmUgKi8NCj4+ICvCoMKgwqAgaWYgKCBnaWN2M19pbmZvLm5yX2VzcGkgPT0gMCAp
DQo+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuOw0KPj4gKw0KPj4gK8KgwqDCoCBwcmludGsoIkdJ
Q3YzOiAlZCBlU1BJIGxpbmVzXG4iLCBnaWN2M19pbmZvLm5yX2VzcGkpOw0KPj4gKw0KPj4gK8Kg
wqDCoCBmb3IgKCBpID0gMDsgaSA8IGVzcGlfbnI7IGkgKz0gMTYgKQ0KPj4gK8KgwqDCoMKgwqDC
oMKgIHdyaXRlbF9yZWxheGVkKDAsIEdJQ0QgKyBHSUNEX0lDRkdSbkUgKyAoaSAvIDE2KSAqIDQp
Ow0KPj4gKw0KPj4gK8KgwqDCoCBmb3IgKCBpID0gMDsgaSA8IGVzcGlfbnI7IGkgKz0gNCApDQo+
PiArwqDCoMKgwqDCoMKgwqAgd3JpdGVsX3JlbGF4ZWQoR0lDX1BSSV9JUlFfQUxMLA0KPj4gK8Kg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEdJQ0QgKyBHSUNEX0lQ
UklPUklUWVJuRSArIChpIC8gNCkgKiA0KTsNCj4+ICsNCj4+ICvCoMKgwqAgZm9yICggaSA9IDA7
IGkgPCBlc3BpX25yOyBpICs9IDMyICkNCj4+ICvCoMKgwqAgew0KPj4gK8KgwqDCoMKgwqDCoMKg
IHdyaXRlbF9yZWxheGVkKEdFTk1BU0soMzEsIDApLCBHSUNEICsgR0lDRF9JQ0VOQUJMRVJuRSAr
IChpIC8gDQo+PiAzMikgKiA0KTsNCj4+ICvCoMKgwqDCoMKgwqDCoCB3cml0ZWxfcmVsYXhlZChH
RU5NQVNLKDMxLCAwKSwgR0lDRCArIEdJQ0RfSUNBQ1RJVkVSbkUgKyAoaSAvIA0KPj4gMzIpICog
NCk7DQo+PiArwqDCoMKgIH0NCj4+ICsNCj4+ICvCoMKgwqAgZm9yICggaSA9IDA7IGkgPCBlc3Bp
X25yOyBpICs9IDMyICkNCj4+ICvCoMKgwqDCoMKgwqDCoCB3cml0ZWxfcmVsYXhlZChHRU5NQVNL
KDMxLCAwKSwgR0lDRCArIEdJQ0RfSUdST1VQUm5FICsgKGkgLyANCj4+IDMyKSAqIDQpOw0KPiAN
Cj4gTklUOiBGcm9tIHdoYXQgSSBzZWUsIHRoZSBlU1BJcyBhcmUgY29uZmlndXJlZCBleGFjdGx5
IGFzIHJlZ3VsYXIgU1BJcyANCj4gaW4gZ2ljdjNfZGlzdF9pbml0KCkgKGkuZS4gdGhlIGVTUElz
IGFyZSBsZXZlbC10cmlnZ2VyZWQsIGRpc2FibGVkIGFuZCANCj4gZGVhY3RpdmF0ZWQsIGJlbG9u
ZyB0byB0aGUgc2FtZSBncm91cCwgZXRjKS4gSW4gZ2ljdjNfZGlzdF9pbml0KCkgd2UgDQo+IGhh
dmUgY29tbWVudHMgY2xhcnlpbmcgdGhlIGFjdGlvbnMsIGJ1dCBoZXJlIHdlIGRvIG5vdC4gSSB3
b3VsZCBhdCBsZWFzdCANCj4gd3JpdGUgYSBzZW50ZW5jZSBpbiBwYXRjaCBkZXNjcmlwdGlvbi9p
bi1jb2RlIGNvbW1lbnQgc2F5aW5nIHRoYXQgZVNQSXMgDQo+IGNvbmZpZ3VyYXRpb24gaXMgdGhl
IHNhbWUgYXMgZm9yIHJlZ3VsYXIgU1BJcy4NCj4gDQoNClN1cmUsIEkgd2lsbCBhZGQgY29tbWVu
dHMgaW4gdGhlIGNvZGUsIHNpbWlsYXIgdG8gaG93IGl0IGlzIGRvbmUgZm9yIA0KcmVndWxhciBT
UElzLg0KDQo+IA0KPj4gK30NCj4+ICsNCj4+ICtzdGF0aWMgdm9pZCBfX2luaXQgZ2ljdjNfZGlz
dF9lc3BpX2luaXRfYWZmKHVpbnQ2NF90IGFmZmluaXR5KQ0KPj4gK3sNCj4+ICvCoMKgwqAgdW5z
aWduZWQgaW50IGk7DQo+PiArDQo+PiArwqDCoMKgIGZvciAoIGkgPSAwOyBpIDwgZ2ljdjNfaW5m
by5ucl9lc3BpOyBpKysgKQ0KPj4gK8KgwqDCoMKgwqDCoMKgIHdyaXRlcV9yZWxheGVkX25vbl9h
dG9taWMoYWZmaW5pdHksIEdJQ0QgKyBHSUNEX0lST1VURVJuRSArIGkgDQo+PiAqIDgpOw0KPj4g
K30NCj4+ICsjZWxzZQ0KPj4gK3N0YXRpYyB2b2lkIF9faW5pdCBnaWN2M19kaXN0X2VzcGlfY29t
bW9uX2luaXQodWludDMyX3QgdHlwZSkgeyB9DQo+PiArDQo+PiArc3RhdGljIHZvaWQgX19pbml0
IGdpY3YzX2Rpc3RfZXNwaV9pbml0X2FmZih1aW50NjRfdCBhZmZpbml0eSkgeyB9DQo+PiArI2Vu
ZGlmDQo+PiArDQo+PiDCoCBzdGF0aWMgdm9pZCBfX2luaXQgZ2ljdjNfZGlzdF9pbml0KHZvaWQp
DQo+PiDCoCB7DQo+PiDCoMKgwqDCoMKgIHVpbnQzMl90IHR5cGU7DQo+PiBAQCAtNzAwLDYgKzc3
OCw4IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBnaWN2M19kaXN0X2luaXQodm9pZCkNCj4+IMKgwqDC
oMKgwqAgZm9yICggaSA9IE5SX0dJQ19MT0NBTF9JUlFTOyBpIDwgbnJfbGluZXM7IGkgKz0gMzIg
KQ0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHdyaXRlbF9yZWxheGVkKEdFTk1BU0soMzEsIDApLCBH
SUNEICsgR0lDRF9JR1JPVVBSICsgKGkgLyANCj4+IDMyKSAqIDQpOw0KPj4gK8KgwqDCoCBnaWN2
M19kaXN0X2VzcGlfY29tbW9uX2luaXQodHlwZSk7DQo+PiArDQo+PiDCoMKgwqDCoMKgIGdpY3Yz
X2Rpc3Rfd2FpdF9mb3JfcndwKCk7DQo+PiDCoMKgwqDCoMKgIC8qIFR1cm4gb24gdGhlIGRpc3Ry
aWJ1dG9yICovDQo+PiBAQCAtNzEzLDYgKzc5Myw4IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBnaWN2
M19kaXN0X2luaXQodm9pZCkNCj4+IMKgwqDCoMKgwqAgZm9yICggaSA9IE5SX0dJQ19MT0NBTF9J
UlFTOyBpIDwgbnJfbGluZXM7IGkrKyApDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgd3JpdGVxX3Jl
bGF4ZWRfbm9uX2F0b21pYyhhZmZpbml0eSwgR0lDRCArIEdJQ0RfSVJPVVRFUiArIGkgDQo+PiAq
IDgpOw0KPj4gKw0KPj4gK8KgwqDCoCBnaWN2M19kaXN0X2VzcGlfaW5pdF9hZmYoYWZmaW5pdHkp
Ow0KPj4gwqAgfQ0KPj4gwqAgc3RhdGljIGludCBnaWN2M19lbmFibGVfcmVkaXN0KHZvaWQpDQo+
IA0KPiANCj4gW3NuaXBdDQo+IA0KDQpCZXN0IHJlZ2FyZHMsDQpMZW9uaWQNCg==


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 16:32:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 16:32:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099633.1453408 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urfYE-0002Ow-0L; Thu, 28 Aug 2025 16:32:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099633.1453408; Thu, 28 Aug 2025 16:32: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 1urfYD-0002Op-Td; Thu, 28 Aug 2025 16:32:37 +0000
Received: by outflank-mailman (input) for mailman id 1099633;
 Thu, 28 Aug 2025 16:32:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=2KSb=3I=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1urfYD-0002Oj-53
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 16:32:37 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9a0f507d-842c-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 18:32:35 +0200 (CEST)
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 (2603:10a6:150:16a::21) by PAWPR03MB9177.eurprd03.prod.outlook.com
 (2603:10a6:102:341::16) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.13; Thu, 28 Aug
 2025 16:32:32 +0000
Received: from GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com
 ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.9073.016; Thu, 28 Aug 2025
 16:32:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9a0f507d-842c-11f0-8adc-4578a1afcccb
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tZWDuakA5+IeVD/yRImqhDO1TtblBH/i1IKaHTYVh8LXej9ongjrkNDn+VMtgsQnSx8VNFPAo15SF1cpgEvLwmnEWguXFh3h7xRzL8v+gBijofz5z57BRAYrcgRx2i/ze6UKV/otor97fM6XtieI0fubF8cL3sj3X1c/WEUws4nteD8NRLJV0vUug8IeCvYtFMd3uHxNMINnyu4sdTzlE/BQUUNAEjjg+U+XRVUPrt/OKbEn/+TVH915HbVhq4uTYV3447IMj+Lq0tApkQxs+F8qf8WogtDv4LOPMJHqgEbtPkqvTMD8+wq+Xyji4mpnapb5FY9PfVNI7D0ezxcd9g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=CuRibqKI/WwGVS2n73wRuEgoZ7kKdNaKMerVbvi/lKw=;
 b=W8p0D7Yno6v/jBlsnO1okJOnLS4rdO6waKVD5EHVf7r5sie4hqunPHZvogimWTEakJ0Tz7sF8IjhmWwlTeh0CNO3i84R9YCsfwW0Z/C+4Qvy2wnj9CEUNg5ro234AIOtW7a72PpHMCny9MgCSiPUfK/CT1S0ZnYDch302KwMQeIFul0VSaGJsEXA7WdvGodNog/pFl4ePgsOD4fFced7pxseE09UTO8nxYB4qgf02RYDUc4/cJuXB+J31oKjxSC+2KZQ3QXRqhwghMbreYbdAJZgAoA+ojjzEj2VpncohE0dA1TtSTHVXhircXEyLkM8k/6BPeCuB4piqrAml84ZIQ==
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=CuRibqKI/WwGVS2n73wRuEgoZ7kKdNaKMerVbvi/lKw=;
 b=UURN8aHhZJYGwTtVsH05MM3U+vpjLG44fLO8GsQB85p4918LJTiNhdl5KvTtO+V4Y3rmHOXT/wlh7x9+2L3Dnc6c+hBbFAgeL/t+HFRrPmYLINztVsGUFCqofYe0Ku/dFHWEhhWai5O3c53L4KHBqerXxsp/D1nUu+RDw9JO3FSq4c7+Z50OzL+AjpPayVA1e/cKSxTWaD/44JoYXcrTqshvwDKEl7VqxQ1mSUx8zoaJFHE8gjBg0qu35moAUFTZHEUi41UYT+XtUtbDL2j38YgqysoL7PJU49CzcNrno3POrBz1a1mJIpfFU7AfcRqcs/Rdzd5vwk0Clvmru/T6kA==
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>, 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>, Shawn Anastasio <sanastasio@raptorengineering.com>,
	Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman
	<bobbyeshleman@gmail.com>, Connor Davis <connojdavis@gmail.com>, Oleksii
 Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH v11 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for
 guests
Thread-Topic: [PATCH v11 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for
 guests
Thread-Index: AQHcGCumBGr3lAlNMUmhrYm2OcIjvw==
Date: Thu, 28 Aug 2025 16:32:31 +0000
Message-ID: <87ecsvz9sx.fsf@epam.com>
References: <cover.1756392094.git.mykola_kvach@epam.com>
	<bb53d9911b00879c7b25f5258d0e3e48005671f9.1756392094.git.mykola_kvach@epam.com>
In-Reply-To:
 <bb53d9911b00879c7b25f5258d0e3e48005671f9.1756392094.git.mykola_kvach@epam.com>
	(Mykola Kvach's message of "Thu, 28 Aug 2025 17:54:04 +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_|PAWPR03MB9177:EE_
x-ms-office365-filtering-correlation-id: 0191666b-e8a4-4dbc-4640-08dde6507c7f
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|42112799006|7416014|376014|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?QLWqea+cmOnoUxLsxv3IPvXqCw44B0s6/HSAorWfO0mOKpbX1UqnT/9CVk?=
 =?iso-8859-1?Q?VJago477+gG4WvtI/D/kao4Q1ebu5/GQ4zTniGqrGMNElTKLujsqeREidH?=
 =?iso-8859-1?Q?mE+sMXq0xJF2wrnvM4FwtXYg3AqfbDJE4JDG6DtXf05RKC9/4Cy11uUmaz?=
 =?iso-8859-1?Q?8r8ubxFyA6sdCF74RXoErj1ehn1NX3dehqqPXnyfPQ5euMGpOsNCQi8G7x?=
 =?iso-8859-1?Q?mtYsmsfsXjGBGTCzZAdtmjsGydKyUB/fr3SP7elLCJRug/KUqFmNqA5m8f?=
 =?iso-8859-1?Q?pe5fJiCeH5KtuvERR+ttO2oMZWdLqpM2zJjDF/hgdLcjMd4mjIcJmB5p4m?=
 =?iso-8859-1?Q?/L9Ao6MNVRrRAlU5PGOqRXeqgHeuwKLhdK7HQgTqFNn1zU/s+GVt8RX0Wf?=
 =?iso-8859-1?Q?ulqkgkjaboZzxHXYxvupLDOB4+GzYiLSbljFP4vwCzikaCcLdEmAbmpzdc?=
 =?iso-8859-1?Q?WmZwevIGTPOpe+6tN+YZHeGt+oKcL5XTaMSrfIzr/6sH4bAsRdi63JE1U/?=
 =?iso-8859-1?Q?WqE6RX7tPoiLgAXGx88qnRn5Cg4ygGVPHPgdNdjb6H5iHddHkl6vfJvTwp?=
 =?iso-8859-1?Q?WV+Q8W8ZRY2KT3AANNZNwMidNTfxJRhT7qJqygs6M1LVebHH5HlaVCXS8F?=
 =?iso-8859-1?Q?Hm2Lxs/A+eZSsU4eI08r3K1/4tGtZvnyOHRJ2upwbTp3NEpZDS1U7i4s0m?=
 =?iso-8859-1?Q?rGsRQRF62aQ4Wrl+LichCVr92Cj2eDOVLBDxgyx6NKP9vRD7zGnRCbgILG?=
 =?iso-8859-1?Q?JGyWUQnhTD5G2BjPTbDXDhaL0vpSBwf7wyOL3bdZYHJs9lAj/ZJDSF6tAU?=
 =?iso-8859-1?Q?efE78/7QNpBVs1mErVVj7NZefXlxu4S5c3MTL8DgduXRKwJEpiGUZw6aGG?=
 =?iso-8859-1?Q?gv7NfF9yWeU7sGz0L6aJom8IGyoRS59E7FyE/LXxhsnvUnE9G+PGhtFypS?=
 =?iso-8859-1?Q?N7dbXlAo9XVZBGzPd6PhdxgxJaSiRb5B+l6iUB3UN3TW9RA5FBrm0qmh1a?=
 =?iso-8859-1?Q?9ncGgRvJ9O1WI+5Ml2a0PL1bkfTys+DvpAlX8Xt4+SiEYH7ibe5KN8iKWa?=
 =?iso-8859-1?Q?olqWrHBwILa533uPgsKUloR0zJL92V0A12VuCsvUo0OC2HYlIibivSPnrf?=
 =?iso-8859-1?Q?RA9WgUh0lACX3kuk4u0KegBhKd6g0U2RvLXUDg/ZLTxP/7kVVln65Ja8gR?=
 =?iso-8859-1?Q?JOwjoLexaY4Mf/6Izyx+jS1AOHJPJGIxJ+tf3lJ78S4CV+++U0lKREDe6Y?=
 =?iso-8859-1?Q?QaZ+QgmEFsWVWK5VC4qOXGRDK71dM/LdY7c4RKw1DzaDHIY3zuhp1/I5v4?=
 =?iso-8859-1?Q?NpX25WWfcechmj2EjfSpOp9pKVtK9cSO7cnXQbR1H80f1QvgTSAjg/oI4S?=
 =?iso-8859-1?Q?FwwrIMDe+wsuGe4pEF9E/XarCpRWVfiy0M+wOaLGya57OzKncg9HEo9bTK?=
 =?iso-8859-1?Q?LVx+8On+UWugg4D7oMN3RcNw1lNdxFBMRbOvbU7w9uYKjE08VGRyG6RJ4f?=
 =?iso-8859-1?Q?CfbEC/GK6JyIv1LXwNIIsPiFgqxHf3P+v2hur+IlWH3w=3D=3D?=
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)(7416014)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?y8V9i0xypEz3UIkv15/tq7MKnCARvgwrhcq3nYVA9mWFZrNcBVkU6ABCsM?=
 =?iso-8859-1?Q?oU4SQUbs2hlFpLsp/37c2cNJ3upYnlHwQbKLpPkZhaVVrzIvFU6i+arz4b?=
 =?iso-8859-1?Q?s/VVYh9NDIhSxwazvQ+oLf7YK2q0v1JcrdvgzWWcNa9jebByy3qHHZ6/xE?=
 =?iso-8859-1?Q?jzjH8DpHzY077QUE2dyIS2IM4QqxAFMpOx3S6Pwy4MRUVmr2xIfX2VKIlj?=
 =?iso-8859-1?Q?xGXxA2VqJqATc89sBRcbPMYuDyJhVQdtkHc5qObY4YtXWGMEiBvuX6Vlj6?=
 =?iso-8859-1?Q?oHI76jVRo/17xWeD+a8a4ont+UqN3ylynuk2YSeqt6HULos60/FRT9Nwqr?=
 =?iso-8859-1?Q?z6XoTJsT+zs9yKiRp9DDQXLrw37zhnIQlsXn7PVsdNDDi1q7M+Nb4xxDfH?=
 =?iso-8859-1?Q?EPH+5KhoXrjQAcakAL/oA6WDuXvbXJEcL+UIRQSBbb6sDUWftu2HRPPy7D?=
 =?iso-8859-1?Q?TTT7uEzw5l1vQ/xadDMVjfXvS/tPekFJAG6oQylsBLmiCJlC/DCsdBDeY6?=
 =?iso-8859-1?Q?YV/W8jzXjYjvIiYBNRdhf4l8+QqjEkrOpm6v88Vaj4vu6y1hEIAasiCddl?=
 =?iso-8859-1?Q?0VGS3a2eFntl7GXjTKog0/9dxW3FiAhpBkvV+q/negNvdDQiz5fBghnwef?=
 =?iso-8859-1?Q?ppC9e+PHn6XPzbIaI8c1OqceBf/z2bLYKv4pNlypv2nmZ94S3J5M2UhCdg?=
 =?iso-8859-1?Q?elc4Jd+a64gbsXb0HzLq5/cU1wsnyUCj+Jz4PAQzxk489eP8b1Xkd9vNpE?=
 =?iso-8859-1?Q?IbOQ5peI0rpm1ET+eGMVPfSBfoWIQzDCpVrACef8BTlEartpmqmxcka5CW?=
 =?iso-8859-1?Q?IY2Yfx5GjZR32QdcGwwixKj1qfBioqSHVIEy3cP0piQanDRf3E0cz8qeu1?=
 =?iso-8859-1?Q?gmMs/FCyf+Qc2hUmr/fJCY6sKBoW1sRPR7HpcmeUoPCLZIVIjr0zQGp1Gg?=
 =?iso-8859-1?Q?JhEvZ/UyE7F2mZ33OrOGy0bDmZ6+UmgE8mOBFRTIjkAVKVoGkJqKGG6V7D?=
 =?iso-8859-1?Q?ymip5CjT7MA3/2+xxWOqXMEXYEqQmWQwUJJSelKzTp9/j/e1o/DMWZbOYG?=
 =?iso-8859-1?Q?1e6a9BfnL4akJlSyt1v2JBto9MkFQvjUlPNH7oAYlJ6QN8Ux3zH3Uc3E+h?=
 =?iso-8859-1?Q?i206u11j3kfRmokAzlMowSyQHKSenuVKTrSvp9ijH4qKf42HDrNClE4q5F?=
 =?iso-8859-1?Q?q9EJBsLbfgkUzC29xSZDK4KoM6qyP2yiPFLWAiUw72QkPVQWThSFSfmpK9?=
 =?iso-8859-1?Q?ESXA4MinSwBNYkQLFPUhSO3BrtYZ0nn6fhPge3885wjldfY+6hpKMc4huK?=
 =?iso-8859-1?Q?bmCHKFxk9bjA8Hm9zTLYw3jF9SDzHtJehMiIQkrXtOPn5WSNXFsCB8N1FQ?=
 =?iso-8859-1?Q?jIjVOKrBj46RLdp1q9PU0N2Nw74ObnZiyJzCiLJW3Qw8dhjK6sIL3+scgw?=
 =?iso-8859-1?Q?hl+OFod5bk9g+fqd/wJTlHGIO11NomBApVin12+jsPgN34DC58TcWNvY5o?=
 =?iso-8859-1?Q?qejkq3t1hYZVPU/l06yF5bXoDDUSSfuuGDBwfAgaXiXtyWXavh7ncDOASM?=
 =?iso-8859-1?Q?wOdMTwV7wjGKCGx+nyIQo+n0fpYUPGHnHw40MAbWU1jln8wUAekCDmq47T?=
 =?iso-8859-1?Q?mJMIriKPXmp6u3bR7x1xD8NO5uOrjO1B8UAWc8e/6BMzf5Jtmn2rVeJA?=
 =?iso-8859-1?Q?=3D=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: 0191666b-e8a4-4dbc-4640-08dde6507c7f
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Aug 2025 16:32:31.6832
 (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: jZyCRL1orAWOaomhgAWq3lv9nLpnwzsuSH6Y6KWhHsa3W89DCw6o4r6EbEkPJCRoXPJjSSOi0OaxBWC1ON48Hq8UNxyNcYN5toqNOGMyqxI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR03MB9177


Hi Mykola,

Mykola Kvach <xakep.amatop@gmail.com> writes:

> From: Mykola Kvach <mykola_kvach@epam.com>
>
> Add support for the PSCI SYSTEM_SUSPEND function in the vPSCI interface,
> allowing guests to request suspend via the PSCI v1.0 SYSTEM_SUSPEND call
> (both 32-bit and 64-bit variants).
>
> Implementation details:
> - Add SYSTEM_SUSPEND function IDs to PSCI definitions
> - Trap and handle SYSTEM_SUSPEND in vPSCI
> - Allow only non-hardware domains to invoke SYSTEM_SUSPEND; return
>   PSCI_NOT_SUPPORTED for the hardware domain to avoid halting the system
>   in hwdom_shutdown() via domain_shutdown
> - Require all secondary VCPUs of the calling domain to be offline before
>   suspend, as mandated by the PSCI specification
>
> The arch_domain_resume() function is an architecture-specific hook that i=
s
> invoked during domain resume to perform any necessary setup or restoratio=
n
> steps required by the platform.
>
> The new vpsci_vcpu_up_prepare() helper is called on the resume path to se=
t up
> the vCPU context (such as entry point, some system regs and context ID) b=
efore
> resuming a suspended guest. This keeps ARM/vPSCI-specific logic out of co=
mmon
> code and avoids intrusive changes to the generic resume flow.
>
> Usage:
>
> For Linux-based guests, suspend can be initiated with:
>     echo mem > /sys/power/state
> or via:
>     systemctl suspend
>
> Resuming the guest is performed from control domain using:
>       xl resume <domain>
>
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>

Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

But check a small comment below

> ---
> Changes in V11:
> - introduce arch_domain_resume() and vpsci_vcpu_up_prepare(), which are n=
ow
> called on the resume path to avoid extra modifications to common code.
> The vCPU context is now updated during domain resume.
>
> Changes in V10:
> - small changes to the commit message reflect updates introduced in this
>   version of the patch.
> - Comments are improved, clarified, and expanded, especially regarding PS=
CI
>   requirements and context handling.
> - An ARM-specific helper (domain_resume_nopause_helper)
> - gprintk() and PRIregister are used for logging in vPSCI code.
> - An isb() is added before p2m_save_state
> - The is_64bit_domain check is dropped when masking the upper part of ent=
ry
>   point and cid for SMC32 SYSTEM_SUSPEND PSCI calls
>
> Changes in V9:
> - no functional changes
> - cosmetic chnages after review
> - enhance commit message and add extra comment to the code after review
>
> Changes in V8:
> - GIC and virtual timer context must be saved when the domain suspends
> - rework locking
> - minor changes after code review
>
> Changes in V7:
> - add proper locking
> - minor changes after code review
>
> Changes in V6:
> - skip execution of ctxt_switch_from for vcpu that is in paused domain
> - add implementation of domain_resume without domain_pause
> - add helper function to determine if vcpu is suspended or not
> - ignore upper 32 bits of argument values when the domain is 64-bit
>   and calls the SMC32 SYSTEM_SUSPEND function
> - cosmetic changes after review
>
> Changes in V5:
> - don't use standby mode, restore execution in a provided by guest point
> - move checking that all CPUs, except current one, are offline to after
>   pausing the vCPUs
> - provide ret status from arch_domain_shutdown and handle it in
>   domain_shutdown
> - adjust VPSCI_NR_FUNCS to reflect the number of newly added PSCI functio=
ns
>
> Changes in V4:
> Dropped all changes related to watchdog, domain is marked as shutting
> down in domain_shutdown and watchdog timeout handler won't trigger
> because of it.
>
> Previous versions included code to manage Xen watchdog timers during susp=
end,
> but this was removed. When a guest OS starts the Xen watchdog (either via=
 the
> kernel driver or xenwatchdogd), it is responsible for managing that state
> across suspend/resume. On Linux, the Xen kernel driver properly stops the
> watchdog during suspend. However, when xenwatchdogd is used instead, susp=
end
> handling is incomplete, potentially leading to watchdog-triggered resets =
on
> resume. Xen leaves watchdog handling to the guest OS and its services.
>
> Dropped all changes related to VCPU context, because instead domain_shutd=
own
> is used, so we don't need any extra changes for suspending domain.
>
> Changes in V3:
> Dropped all domain flags and related code (which touched common functions=
 like
> vcpu_unblock), keeping only the necessary changes for Xen suspend/resume,=
 i.e.
> suspend/resume is now fully supported only for the hardware domain.
> Proper support for domU suspend/resume will be added in a future patch.
> This patch does not yet include VCPU context reset or domain context
> restoration in VCPU.
> ---
>  xen/arch/arm/domain.c                 |  22 +++++
>  xen/arch/arm/include/asm/domain.h     |   6 ++
>  xen/arch/arm/include/asm/perfc_defn.h |   1 +
>  xen/arch/arm/include/asm/psci.h       |   2 +
>  xen/arch/arm/include/asm/vpsci.h      |   5 +-
>  xen/arch/arm/vpsci.c                  | 114 +++++++++++++++++++++-----
>  xen/arch/ppc/stubs.c                  |   5 ++
>  xen/arch/riscv/stubs.c                |   5 ++
>  xen/arch/x86/domain.c                 |   5 ++
>  xen/common/domain.c                   |   9 ++
>  xen/include/xen/domain.h              |   2 +
>  11 files changed, 156 insertions(+), 20 deletions(-)
>
> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
> index 863ae18157..6fd73eedde 100644
> --- a/xen/arch/arm/domain.c
> +++ b/xen/arch/arm/domain.c
> @@ -12,6 +12,8 @@
>  #include <xen/softirq.h>
>  #include <xen/wait.h>
> =20
> +#include <public/sched.h>
> +
>  #include <asm/arm64/sve.h>
>  #include <asm/cpuerrata.h>
>  #include <asm/cpufeature.h>
> @@ -27,6 +29,7 @@
>  #include <asm/tee/tee.h>
>  #include <asm/vfp.h>
>  #include <asm/vgic.h>
> +#include <asm/vpsci.h>
>  #include <asm/vtimer.h>
> =20
>  #include "vpci.h"
> @@ -880,6 +883,25 @@ void arch_domain_creation_finished(struct domain *d)
>      p2m_domain_creation_finished(d);
>  }
> =20
> +int arch_domain_resume(struct domain *d)
> +{
> +    int rc;
> +    typeof(d->arch.resume_ctx) *ctx =3D &d->arch.resume_ctx;
> +
> +    if ( !d->is_shutting_down || d->shutdown_code !=3D SHUTDOWN_suspend =
)
> +    {
> +        dprintk(XENLOG_WARNING,
> +                "%pd: Invalid domain state for resume: is_shutting_down=
=3D%d, shutdown_code=3D%d\n",
> +                d, d->is_shutting_down, d->shutdown_code);
> +        return -EINVAL;
> +    }

This check probably can go into common domain_resume() function, as
there is nothing arch-specific in here. Probably this can be done during
commit, to save us from v12? If commiters are okay with this.

> +
> +    rc =3D vpsci_vcpu_up_prepare(ctx->wake_cpu , ctx->ep, ctx->cid);
> +    memset(ctx, 0, sizeof(*ctx));
> +
> +    return rc;
> +}
> +
>  static int is_guest_pv32_psr(uint32_t psr)
>  {
>      switch (psr & PSR_MODE_MASK)
> diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm=
/domain.h
> index a3487ca713..68185fc4d6 100644
> --- a/xen/arch/arm/include/asm/domain.h
> +++ b/xen/arch/arm/include/asm/domain.h
> @@ -121,6 +121,12 @@ struct arch_domain
>      void *tee;
>  #endif
> =20
> +    struct resume_info {
> +        register_t ep;
> +        register_t cid;
> +        struct vcpu *wake_cpu;
> +    } resume_ctx;
> +
>  }  __cacheline_aligned;
> =20
>  struct arch_vcpu
> diff --git a/xen/arch/arm/include/asm/perfc_defn.h b/xen/arch/arm/include=
/asm/perfc_defn.h
> index effd25b69e..8dfcac7e3b 100644
> --- a/xen/arch/arm/include/asm/perfc_defn.h
> +++ b/xen/arch/arm/include/asm/perfc_defn.h
> @@ -33,6 +33,7 @@ PERFCOUNTER(vpsci_system_reset,        "vpsci: system_r=
eset")
>  PERFCOUNTER(vpsci_cpu_suspend,         "vpsci: cpu_suspend")
>  PERFCOUNTER(vpsci_cpu_affinity_info,   "vpsci: cpu_affinity_info")
>  PERFCOUNTER(vpsci_features,            "vpsci: features")
> +PERFCOUNTER(vpsci_system_suspend,      "vpsci: system_suspend")
> =20
>  PERFCOUNTER(vcpu_kick,                 "vcpu: notify other vcpu")
> =20
> diff --git a/xen/arch/arm/include/asm/psci.h b/xen/arch/arm/include/asm/p=
sci.h
> index 4780972621..48a93e6b79 100644
> --- a/xen/arch/arm/include/asm/psci.h
> +++ b/xen/arch/arm/include/asm/psci.h
> @@ -47,10 +47,12 @@ void call_psci_system_reset(void);
>  #define PSCI_0_2_FN32_SYSTEM_OFF          PSCI_0_2_FN32(8)
>  #define PSCI_0_2_FN32_SYSTEM_RESET        PSCI_0_2_FN32(9)
>  #define PSCI_1_0_FN32_PSCI_FEATURES       PSCI_0_2_FN32(10)
> +#define PSCI_1_0_FN32_SYSTEM_SUSPEND      PSCI_0_2_FN32(14)
> =20
>  #define PSCI_0_2_FN64_CPU_SUSPEND         PSCI_0_2_FN64(1)
>  #define PSCI_0_2_FN64_CPU_ON              PSCI_0_2_FN64(3)
>  #define PSCI_0_2_FN64_AFFINITY_INFO       PSCI_0_2_FN64(4)
> +#define PSCI_1_0_FN64_SYSTEM_SUSPEND      PSCI_0_2_FN64(14)
> =20
>  /* PSCI v0.2 affinity level state returned by AFFINITY_INFO */
>  #define PSCI_0_2_AFFINITY_LEVEL_ON      0
> diff --git a/xen/arch/arm/include/asm/vpsci.h b/xen/arch/arm/include/asm/=
vpsci.h
> index 0cca5e6830..d790ab3715 100644
> --- a/xen/arch/arm/include/asm/vpsci.h
> +++ b/xen/arch/arm/include/asm/vpsci.h
> @@ -23,12 +23,15 @@
>  #include <asm/psci.h>
> =20
>  /* Number of function implemented by virtual PSCI (only 0.2 or later) */
> -#define VPSCI_NR_FUNCS  12
> +#define VPSCI_NR_FUNCS  14
> =20
>  /* Functions handle PSCI calls from the guests */
>  bool do_vpsci_0_1_call(struct cpu_user_regs *regs, uint32_t fid);
>  bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid);
> =20
> +int vpsci_vcpu_up_prepare(struct vcpu *v, register_t entry_point,
> +                          register_t context_id);
> +
>  #endif /* __ASM_VPSCI_H__ */
> =20
>  /*
> diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
> index 7ba9ccd94b..50cf5fd96c 100644
> --- a/xen/arch/arm/vpsci.c
> +++ b/xen/arch/arm/vpsci.c
> @@ -10,30 +10,16 @@
> =20
>  #include <public/sched.h>
> =20
> -static int do_common_cpu_on(register_t target_cpu, register_t entry_poin=
t,
> -                            register_t context_id)
> +int vpsci_vcpu_up_prepare(struct vcpu *v, register_t entry_point,
> +                   register_t context_id)
>  {
> -    struct vcpu *v;
> -    struct domain *d =3D current->domain;
> -    struct vcpu_guest_context *ctxt;
>      int rc;
> +    struct domain *d =3D current->domain;
>      bool is_thumb =3D entry_point & 1;
> -    register_t vcpuid;
> -
> -    vcpuid =3D vaffinity_to_vcpuid(target_cpu);
> -
> -    if ( (v =3D domain_vcpu(d, vcpuid)) =3D=3D NULL )
> -        return PSCI_INVALID_PARAMETERS;
> -
> -    /* THUMB set is not allowed with 64-bit domain */
> -    if ( is_64bit_domain(d) && is_thumb )
> -        return PSCI_INVALID_ADDRESS;
> -
> -    if ( !test_bit(_VPF_down, &v->pause_flags) )
> -        return PSCI_ALREADY_ON;
> +    struct vcpu_guest_context *ctxt;
> =20
>      if ( (ctxt =3D alloc_vcpu_guest_context()) =3D=3D NULL )
> -        return PSCI_DENIED;
> +        return -ENOMEM;
> =20
>      vgic_clear_pending_irqs(v);
> =20
> @@ -76,8 +62,37 @@ static int do_common_cpu_on(register_t target_cpu, reg=
ister_t entry_point,
>      free_vcpu_guest_context(ctxt);
> =20
>      if ( rc < 0 )
> +        return rc;
> +
> +    return 0;
> +}
> +
> +static int do_common_cpu_on(register_t target_cpu, register_t entry_poin=
t,
> +                            register_t context_id)
> +{
> +    struct vcpu *v;
> +    struct domain *d =3D current->domain;
> +    int rc;
> +    bool is_thumb =3D entry_point & 1;
> +    register_t vcpuid;
> +
> +    vcpuid =3D vaffinity_to_vcpuid(target_cpu);
> +
> +    if ( (v =3D domain_vcpu(d, vcpuid)) =3D=3D NULL )
> +        return PSCI_INVALID_PARAMETERS;
> +
> +    /* THUMB set is not allowed with 64-bit domain */
> +    if ( is_64bit_domain(d) && is_thumb )
> +        return PSCI_INVALID_ADDRESS;
> +
> +    if ( !test_bit(_VPF_down, &v->pause_flags) )
> +        return PSCI_ALREADY_ON;
> +
> +    rc =3D vpsci_vcpu_up_prepare(v, entry_point, context_id);
> +    if ( rc )
>          return PSCI_DENIED;
> =20
> +    vgic_clear_pending_irqs(v);
>      vcpu_wake(v);
> =20
>      return PSCI_SUCCESS;
> @@ -197,6 +212,48 @@ static void do_psci_0_2_system_reset(void)
>      domain_shutdown(d,SHUTDOWN_reboot);
>  }
> =20
> +static int32_t do_psci_1_0_system_suspend(register_t epoint, register_t =
cid)
> +{
> +    int32_t rc;
> +    struct vcpu *v;
> +    struct domain *d =3D current->domain;
> +    bool is_thumb =3D epoint & 1;
> +
> +    /* THUMB set is not allowed with 64-bit domain */
> +    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 )
> +    {
> +        if ( v !=3D current && is_vcpu_online(v) )
> +        {
> +            domain_unlock(d);
> +            return PSCI_DENIED;
> +        }
> +    }
> +    domain_unlock(d);
> +
> +    rc =3D domain_shutdown(d, SHUTDOWN_suspend);
> +    if ( rc )
> +        return PSCI_DENIED;
> +
> +    d->arch.resume_ctx.ep =3D epoint;
> +    d->arch.resume_ctx.cid =3D cid;
> +    d->arch.resume_ctx.wake_cpu =3D current;
> +
> +    gprintk(XENLOG_DEBUG,
> +            "SYSTEM_SUSPEND requested, epoint=3D0x%"PRIregister", cid=3D=
0x%"PRIregister,
> +            epoint, cid);
> +
> +    return rc;
> +}
> +
>  static int32_t do_psci_1_0_features(uint32_t psci_func_id)
>  {
>      /* /!\ Ordered by function ID and not name */
> @@ -214,6 +271,8 @@ static int32_t do_psci_1_0_features(uint32_t psci_fun=
c_id)
>      case PSCI_0_2_FN32_SYSTEM_OFF:
>      case PSCI_0_2_FN32_SYSTEM_RESET:
>      case PSCI_1_0_FN32_PSCI_FEATURES:
> +    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
> +    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
>      case ARM_SMCCC_VERSION_FID:
>          return 0;
>      default:
> @@ -344,6 +403,23 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *regs, u=
int32_t fid)
>          return true;
>      }
> =20
> +    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);
> +        }
> +
> +        perfc_incr(vpsci_system_suspend);
> +        PSCI_SET_RESULT(regs, do_psci_1_0_system_suspend(epoint, cid));
> +        return true;
> +    }
> +
>      default:
>          return false;
>      }
> diff --git a/xen/arch/ppc/stubs.c b/xen/arch/ppc/stubs.c
> index bdaf474c5c..0db0627b5c 100644
> --- a/xen/arch/ppc/stubs.c
> +++ b/xen/arch/ppc/stubs.c
> @@ -224,6 +224,11 @@ void arch_domain_creation_finished(struct domain *d)
>      BUG_ON("unimplemented");
>  }
> =20
> +int arch_domain_resume(struct domain *d)
> +{
> +    return 0;
> +}
> +
>  int arch_set_info_guest(struct vcpu *v, vcpu_guest_context_u c)
>  {
>      BUG_ON("unimplemented");
> diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
> index 1a8c86cd8d..52532ae14d 100644
> --- a/xen/arch/riscv/stubs.c
> +++ b/xen/arch/riscv/stubs.c
> @@ -198,6 +198,11 @@ void arch_domain_creation_finished(struct domain *d)
>      BUG_ON("unimplemented");
>  }
> =20
> +int arch_domain_resume(struct domain *d)
> +{
> +    return 0;
> +}
> +
>  int arch_set_info_guest(struct vcpu *v, vcpu_guest_context_u c)
>  {
>      BUG_ON("unimplemented");
> diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
> index 19fd86ce88..94a06bc697 100644
> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -1138,6 +1138,11 @@ void arch_domain_creation_finished(struct domain *=
d)
>          hvm_domain_creation_finished(d);
>  }
> =20
> +int arch_domain_resume(struct domain *d)
> +{
> +    return 0;
> +}
> +
>  #ifdef CONFIG_COMPAT
>  #define xen_vcpu_guest_context vcpu_guest_context
>  #define fpu_ctxt fpu_ctxt.x
> diff --git a/xen/common/domain.c b/xen/common/domain.c
> index 104e917f07..d73a88ced5 100644
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -1352,6 +1352,7 @@ int domain_shutdown(struct domain *d, u8 reason)
>  void domain_resume(struct domain *d)
>  {
>      struct vcpu *v;
> +    int rc;
> =20
>      /*
>       * Some code paths assume that shutdown status does not get reset un=
der
> @@ -1359,6 +1360,14 @@ void domain_resume(struct domain *d)
>       */
>      domain_pause(d);
> =20
> +    rc =3D arch_domain_resume(d);
> +    if ( rc )
> +    {
> +        domain_unpause(d);
> +        printk("%pd: Failed to resume domain (ret %d)\n", d, rc);
> +        return;
> +    }
> +
>      spin_lock(&d->shutdown_lock);
> =20
>      d->is_shutting_down =3D d->is_shut_down =3D 0;
> diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
> index e10baf2615..5f77ffadf1 100644
> --- a/xen/include/xen/domain.h
> +++ b/xen/include/xen/domain.h
> @@ -109,6 +109,8 @@ int arch_domain_soft_reset(struct domain *d);
> =20
>  void arch_domain_creation_finished(struct domain *d);
> =20
> +int arch_domain_resume(struct domain *d);
> +
>  void arch_p2m_set_access_required(struct domain *d, bool access_required=
);
> =20
>  int arch_set_info_guest(struct vcpu *v, vcpu_guest_context_u c);

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 16:39:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 16:39:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099657.1453419 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urfeU-0003LP-PZ; Thu, 28 Aug 2025 16:39:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099657.1453419; Thu, 28 Aug 2025 16:39: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 1urfeU-0003LI-Lo; Thu, 28 Aug 2025 16:39:06 +0000
Received: by outflank-mailman (input) for mailman id 1099657;
 Thu, 28 Aug 2025 16:39:05 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FxJR=3I=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1urfeT-0003LC-PV
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 16:39:05 +0000
Received: from GVXPR05CU001.outbound.protection.outlook.com
 (mail-swedencentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c202::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 81d885a1-842d-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 18:39:03 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by VI2PR03MB10761.eurprd03.prod.outlook.com (2603:10a6:800:26e::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.15; Thu, 28 Aug
 2025 16:38:59 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9073.016; Thu, 28 Aug 2025
 16:38: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>
X-Inumbo-ID: 81d885a1-842d-11f0-8dd7-1b34d833f44b
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=w6Ti2vvpAznUULYtaOlsQK6jsr8Lj08aLr3Z96ZtCqxNFUimaYg3YVF8GVq0PQyKkj27BDzg49OtUBE3a05/ST4pXeI8+g1R7UpEgRXVP0322Ox9y3JuADoZEtJgZbWNZD0lt54+a1kPUrjVSFWaO+qOUdHmIxZqCrQ5bYJ5auCZUu/yZFagmhmgIby2R7m+Crpju83andkDq+5YQzPgTsCwtHhPGNIwpof+gSTUMLGWkqACsMQfjGJRliOPLA1E1mE3EpKt7wy26PHBPz2CEq+NwP4PIjcJJ6cEz28maHsTgyMhVTO2e9XMlBOsKwe478oAMnS15G+0brUBW+0w4w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wc1qcNobPmnkS5mghtIACn642xr30g/IVbn+Atejrdk=;
 b=rAtV2QpY/YLw2sloFdijRUDbJWq/DlqgwDu8fRJwH8O0K4jeDdoD8L2x6aynuriW76j+ahCrW8jyASA0rjD3tiIRWRXIkFUZGwnmkSke+hk8S7BtF9b5krirnR2m+c1KnWy4qpEpI192Bgxa4nccE5OPQ93AkciUt49+iwkCA/LrKvcQCsbjn+fNdtVrKBehx90xq3S5/lLDd3U8HA0wtUCBDM1oMgPd8HIPsCDH+59A1k7Gaq3w/iue0S+/j9qPMjcxfjbAw3ZLd1WdhWGzLBz4FKLsi0Gt47bb5NpcSvMDPj6vpVU4P6iNXoTawAtWrAibiBVe2BNmAIG6dIuXNQ==
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=wc1qcNobPmnkS5mghtIACn642xr30g/IVbn+Atejrdk=;
 b=ZU5CZlet+wPZFmtOzjuoE1DuVi5PYDDf2Tk3qstz9HR4oY3yIx8Dzrq13+YI+hB608GkJtjkYKy3dncCdmosEGeUhRL09dg+vqmgbQsjB5aC4MA6ijYhsO1EsH+gsE+EjHXpb3d49oC/ejZoUO2TFvY+jNKA3Csv2z37PmDywXgXZqpzgYlVoa1Z950F5vHr84PjNHSHeUIp7np8sCOwFEPulTLcOG7PaVjjdqyk2y4BRcfDdiv2QFRvZ2aOd9KT9/kdABTnF1MPWtvUA8KSA6uGt3pHoNvTs6ZK8ZFEsU2AckqM2qdcsOai/JBDCTcNiTGzKsfml0mAx3ZJ4oa4dA==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: Oleksandr Tyshchenko <olekstysh@gmail.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel
	<michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v4 09/12] xen/arm: domain_build/dom0less-build: adjust
 domains config to support eSPIs
Thread-Topic: [PATCH v4 09/12] xen/arm: domain_build/dom0less-build: adjust
 domains config to support eSPIs
Thread-Index: AQHcF3/Ont2iCNudZU+HGYrvI6u3EbR4DeIAgAA3ngA=
Date: Thu, 28 Aug 2025 16:38:59 +0000
Message-ID: <44647ede-8f42-43bb-842a-0825f632e659@epam.com>
References: <cover.1756317702.git.leonid_komarianskyi@epam.com>
 <66b39c4ba25e7a19beeca62ab23f5d3ab3cbae52.1756317702.git.leonid_komarianskyi@epam.com>
 <1f4c921d-5c0d-46f6-b4c9-c7bf0e41330f@gmail.com>
In-Reply-To: <1f4c921d-5c0d-46f6-b4c9-c7bf0e41330f@gmail.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: GV2PR03MB8678:EE_|VI2PR03MB10761:EE_
x-ms-office365-filtering-correlation-id: f73b81b9-c74f-4140-cb54-08dde6516395
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?eUFDL2cyWXBIWHF0L2NReEE5VUY5Y3FmRFg3MXZQQ3F1TGV6MTBvU0hTdU9P?=
 =?utf-8?B?Rlo1MHR2dEFQQWNoNEpldi9obmR0VVlPbm1VOXFqUm9NaDN0V0tIbjFncHlX?=
 =?utf-8?B?YVZIZE5MTDBjbDMwWnVUQW9sMmhLTmR4YTdubHRDQkxEc3Yzcnp1bE5VTTFU?=
 =?utf-8?B?OUlpZUJpeGhXTUY5UEVmS0d1clAvVDJoUTBkUFBoS3p1NFBLNGl3QlFIR0R2?=
 =?utf-8?B?VWFXY1NDakp5MWJQQVFZc0h1VThsbm9oR0pid2ltaDhUYlJtTW5idlhsaWNS?=
 =?utf-8?B?MUt1WncvVDNMbHlJNHppWWI3L2ZITm1aandSd1JNY1NnRkVleHpnUHpDTEpo?=
 =?utf-8?B?dWVBS2w1UjV3cXViWjQ0elNQc2dLYmxYWjM0RjBWc0g2WmJEdnhRamd6TWtN?=
 =?utf-8?B?SlhCemJ1UDR0ZWRGSWFVSVdQa1JMWEJZZmNCclE5dzdNalVreDVvM0VKckxp?=
 =?utf-8?B?ejNOTzNaZGxncmsyTGNmeTlPU2Z2QXhCTXJ3bWlVRWlZbjVmMkJ3ZmppVDd1?=
 =?utf-8?B?M20rYUk0Zlp2TTlXcUp6OXMyZVVLOEhhcklvdUxLZlMxUzdUNDBzNHpjbURG?=
 =?utf-8?B?MzhPTFRyWWdKZmFIYWNCYzZMZ2lzZzJ4S3lDck1DQzdCenVhTForb2JOcVg5?=
 =?utf-8?B?YVMwNzZKZTQvUjd3Mnl2SS9uc0M4RGhxZGJ3RytwNE1Hemx6NFhlMTJwa1V0?=
 =?utf-8?B?VTRROG0vbHdLR2I2cmFQV2RWRWUvVzBBZXpLTS9rM0VWd3FyYnh3NWxlMTRp?=
 =?utf-8?B?UTNsVEN0TGdJNWpLbVNOY1BhWEZsZUtEUXhYcU90U3FhWVk2dU9HTGlBOWh4?=
 =?utf-8?B?Skd6bkNKelFhVkVveUZiMXZLM2N2L0VON0phR1VZNWE0azl1MCt4WlE0WkFw?=
 =?utf-8?B?T1BoaUowZ2Jaa0ZkMnFpaldMUFE4dTVxSHFBejRzM1g4M0VrazlIVWhSRFF1?=
 =?utf-8?B?aHMxM0JkUmpuRWpHNWhYckJ0amVCMkVHVTNvSDRXaXJaaU5uMG1GTlg1Z3M1?=
 =?utf-8?B?TkhJNXRKOFpGWnAxaXpVanAwR3Y4Yk1jbDZsZkVuMFkvVzJ1TjIxQlI3aVZw?=
 =?utf-8?B?bHdUR3Y2MzlMQ2lRTnEzU040Zy9mb2c5S05FMWFzSHF6VTNCelBWVHppL253?=
 =?utf-8?B?VkkrNHpobnhva1AwYXUzQm1KZ1UyN00wL2pSUHdQNVMxOHZiN1VWckVSQkxp?=
 =?utf-8?B?dFVLT3VFYWZsV0crNGxBY1NlaXBaZXZUdnpyVVRseVVXek9YL0R5V2thcmwx?=
 =?utf-8?B?dDgyUHNJb2o5NjlzRWdaSlhYUlhpOWpvYzA1MGtJOTU1MUZSb3M1bHM2N0R2?=
 =?utf-8?B?YWdlcmJrK3J2d1VlV05MVEpmd1pheHB1SEtWOVMyajRJNGJCUVlRckNiajVC?=
 =?utf-8?B?dEhYd0ROSjNoNFp6em1KeEhhTE1Fa1lJYkQ4RXNhTUZOOGRwdDNhRmV6KzFQ?=
 =?utf-8?B?YjNURHBTek5acWRxSDd2OFpsNy9JRG9nUGZkNmJDL1RZT1hGcWUxYkJQUW1h?=
 =?utf-8?B?NmM0a2pPMStTN1djVFhSZDBKTzNseGh6VmlNUVBHQllJaDNUTGFGdlE3OHV6?=
 =?utf-8?B?RDJSN3NPSE90U2ZpNFMvVmpVWUE5OHJoMDRGRkdLbWRNYkdiTWU3cTViM0gx?=
 =?utf-8?B?SXNBNTYrellIZExmTXpOSGNqSkgzdTBYRFdtdTV2M2ppdWxXdFJkNDRXa3lZ?=
 =?utf-8?B?bTNMdXZ3NWc1S3ZCTUprclFuWlpJRXd0UWtlSlg0THQ4alRTc1ZLWnR5Wi95?=
 =?utf-8?B?RExtRGsxRzQyamhLQWtoNjhQbGhabmN2TjljTXFxTm5ScE1peWMxWFlEUlk0?=
 =?utf-8?B?LzZHZ0pBZEZwaWdHU0lLWDJZV3Q1dHlFeEJxcFJOMmxrV0MzQ1FJOU4wSndK?=
 =?utf-8?B?QnJ0NlRKM3dDaTVieWFJVUczSzRYTG1iN0NyRmRCLzRaUmZxalR4aVMzTVR1?=
 =?utf-8?B?QlovQ1NtUFgyM01HL2hvWlRkK3BncmN6QTVmUnhPVlYrU3orVUs3VDhOWWV6?=
 =?utf-8?B?OWFobmVIQlN3PT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?dFdYbHdBa1pvYzVLQXRRSHkvaU5sNlVFSGxEc2VNTFRxdytyNW1mejV2TnFs?=
 =?utf-8?B?cEo3S1pBU2xHcjVUdDJSNnF1R0JqTlUxelJWUU15MTFLVzRNRjF6TlZEcS9s?=
 =?utf-8?B?amEvdGlBVElqYTJrUXVTcXZnN1pZVVQxbzM1Q2RwNFFtUlNreUsxYk10UU5u?=
 =?utf-8?B?SkMvVTAwNWgza3pQdlFFWW9XVnovUGFKR3A5N3NmbzU0NUdmZnJTQWJRUVEr?=
 =?utf-8?B?ZU42TVlLWWl5Rjh5Y2hNOThVbERIVnNXZ29EOG5XaHlUSTk2NHRGeDBUb0tt?=
 =?utf-8?B?VjZGZHhhOUFESFRFV1YrM3M2Q3drMHplWUNnS3o0bWt1TWhPbkp1bEpZVG5C?=
 =?utf-8?B?U3l3NDltUE1JNDdBS2pCRFp6VVQzUjlOV0NYdVRrSWZ6bVN5SzdScWdPdk5y?=
 =?utf-8?B?RGFteWNBZHd2Q2RqTGRUNllPV3JVTDJrY3ZnLzJZcG5sNzI5c0tuQ1R5N3pF?=
 =?utf-8?B?dXRRdkdEOGV1WXBXa1JiZUdoZVhEcW5tK0ZtSXBHb3JmTG9TU01zMFlwclBz?=
 =?utf-8?B?cHI4NXlucWtCcG1DRGRsNFpNU2Q1MGp4a1ZxcjNrWkIyVExSS2ExcGtiODN4?=
 =?utf-8?B?ZnMvQ0dOUlBFNEdibUhzdWFmSkVFazRIRWd5a1V6ZDNheVpsY3dLck41QUFs?=
 =?utf-8?B?S2VNOGkxRXFmVkp1VjUvWTFSTSt6UncyR1pIVTZ4UHhBeTVJbmdlai9sSm5x?=
 =?utf-8?B?bS8ycXhXZkNvSVBWcDlwNUY4eEN2RUE4NUdXZnVMVWhwYlNtWGJjT1hKajhZ?=
 =?utf-8?B?UW5BaVVuZVJLOWRGMmUrZDNLN1hjTWg1dG9xYXR2bmlFbFZrT1JWYjhvQURt?=
 =?utf-8?B?cXRpM2J3RDZaOUZ3azE4R3BhRjdWT2R3R0NaVWV0WkxlYkRyN0UxZFc1MWN0?=
 =?utf-8?B?OS9mMWNaK1NHc2xHUkV6NDJMc0tXZVZXdCs2ckZsWVNDdGU5bXdmbG1xNEln?=
 =?utf-8?B?ejJFUkdOMnBvNEMvb1drNTR0WGY5UmdVZjdoaFhQM0hkNGVBbWVxdDNvTFpF?=
 =?utf-8?B?VXdzNEtPcFBiemplQmF0NXdGZHlXMFE3SkpuckpYakdGK0M2VXZpdzlMZncy?=
 =?utf-8?B?b1owVGRtaHRaRkcxS1JzQ2hiajROdzJSQ09iZGxtN2xBUkJwM2ZIM3BTbEhv?=
 =?utf-8?B?KzVnM3VwYXR1MFQxaDFrUTVHUVlVeHpPRGoxY2JCeFN2TEhvNHBMclllVWRs?=
 =?utf-8?B?RFpZSVFTSzcvNEI3UmVJTndNRU1XTEhrL3BDVkREK2orZWlLd1ByUXZUUmF5?=
 =?utf-8?B?eERCeFFsOWE1N091RXEvb1Y0N2FYMU9YRU50R1R1VnVDMWRxUHBJdkF6QVBE?=
 =?utf-8?B?bjViZUV3bkdOWHErOGRPaGI3V2JNOWpTZHpwcGFqRXNaTTFMeExJSXRGTTNT?=
 =?utf-8?B?dWVaV3lBUEdWdjQ4OGwrMG9lVUltZ3dDdThsZS9LNTV0MEdxNjMrNFVYMmtF?=
 =?utf-8?B?TlVLRlVreWZ2OGpnZDJIamNSUkN5UGVRclFKRVlWNzNkZHhPSkxhdU5kL3VE?=
 =?utf-8?B?RXc2bHFuVmpoMkpsSFE2WndHZTRETVJsbUIwTmVLK3FqaitnaDhQaFZSZmQ1?=
 =?utf-8?B?NHNqdDJGUFV6VDhyM1B0L2NBUDJNV25rYzZhdnl4dlIrUjBSRlM0TXpSWVRT?=
 =?utf-8?B?SU9xTGhwRHBBUnR5dzE1Mi9IOG9pY1YzVUQ2NlNRTHkxeit3dGxFL1pLUnBZ?=
 =?utf-8?B?VloyU29LN0l2UC9tanFIQXhaeVlmc1V1YzlURDhoTkk1U3FjSzZRcUt0OG1l?=
 =?utf-8?B?ZVJHbm5JQ2k5YTd1cjJFeUFCTU5JT0hmTS9QR1NhYzR2UlFqUFZCbmw5OUxr?=
 =?utf-8?B?SGV6SzJ0SWczUytOZDZmeVpZUmFQSWJmYjlkb0U1ckU0d1VyTVhUM0ZRN0t4?=
 =?utf-8?B?YzNBTG9ieU5oQW5KMnEwWVhCNHJvaG4rMUd1SllUN0FudmJJc0dDK3R5WVA1?=
 =?utf-8?B?a1JKOGY3VjJxdmdCNDdtaEF5ZUsxRnJmOS9ta3IyZ0wwZG1DaG5rbWVxcHlL?=
 =?utf-8?B?K2J2NXNocXdOdEpuajN1WWZ4aVNKSTFQbnZtcDZWalpVelFvTnU1b1FNbUdm?=
 =?utf-8?B?cDRCVERjbG1VMTJ5Q2U4ekp0SGlsRWZtaitSQTZUSTh3T1B6S0xKZTVZdnFl?=
 =?utf-8?B?UjZxNGJtV2k2TGxkZ1F2anBHWlFXR25BT0pPZUJ3bWo2L2ZoLzllclR1T0t1?=
 =?utf-8?Q?4AHNiOuWp3DS8z79dxgD5/U=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <B9B849E6BF51694C915E748D413683A8@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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f73b81b9-c74f-4140-cb54-08dde6516395
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Aug 2025 16:38:59.3452
 (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: vkotzdiL3+nApV9j9BtVTUNYM1u+fXRibKcq+fopKMKWPD6wRXE3yjJLPOyudwF4rkspuoUpXiIf8E/mB3UPhNqDvEUSt/yemoh6eGEhsxA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI2PR03MB10761

SGkgT2xla3NhbmRyLA0KDQpUaGFuayB5b3UgZm9yIHlvdXIgcmV2aWV3Lg0KDQpPbiAyOC4wOC4y
NSAxNjoxOSwgT2xla3NhbmRyIFR5c2hjaGVua28gd3JvdGU6DQo+IA0KPiANCj4gT24gMjcuMDgu
MjUgMjE6MjQsIExlb25pZCBLb21hcmlhbnNreWkgd3JvdGU6DQo+IA0KPiBIZWxsbyBMZW9uaWQN
Cj4gDQo+PiBUaGUgRG9tMCBhbmQgRG9tVXMgbG9naWMgZm9yIHRoZSBkb20wbGVzcyBjb25maWd1
cmF0aW9uIGluIA0KPj4gY3JlYXRlX2RvbTAoKSBhbmQNCj4+IGFyY2hfY3JlYXRlX2RvbVVzKCkg
aGFzIGJlZW4gdXBkYXRlZCB0byBhY2NvdW50IGZvciBleHRlbmRlZCBTUElzIHdoZW4NCj4+IHN1
cHBvcnRlZCBieSB0aGUgaGFyZHdhcmUgYW5kIGVuYWJsZWQgd2l0aCBDT05GSUdfR0lDVjNfRVNQ
SS4gVGhlc2UgDQo+PiBjaGFuZ2VzDQo+PiBlbnN1cmUgdGhlIHByb3BlciBjYWxjdWxhdGlvbiBv
ZiB0aGUgbWF4aW11bSBudW1iZXIgb2YgU1BJcyBhbmQgZVNQSXMgDQo+PiBhdmFpbGFibGUNCj4+
IHRvIERvbTAgYW5kIERvbVVzIGluIGRvbTBsZXNzIHNldHVwcy4NCj4+DQo+PiBXaGVuIGVTUElz
IGFyZSBzdXBwb3J0ZWQgYnkgdGhlIGhhcmR3YXJlIGFuZCBDT05GSUdfR0lDVjNfRVNQSSBpcyAN
Cj4+IGVuYWJsZWQsIHRoZQ0KPj4gbWF4aW11bSBudW1iZXIgb2YgZVNQSSBpbnRlcnJ1cHRzIGlz
IGNhbGN1bGF0ZWQgdXNpbmcgdGhlIEVTUElfQkFTRV9JTlRJRA0KPj4gb2Zmc2V0ICg0MDk2KSBh
bmQgaXMgbGltaXRlZCB0byAxMDI0LCB3aXRoIDMyIElSUXMgc3VidHJhY3RlZC4gVG8gZW5zdXJl
DQo+PiBjb21wYXRpYmlsaXR5IHdpdGggbm9uLURvbTAgZG9tYWlucywgdGhpcyBhZGp1c3RtZW50
IGlzIGFwcGxpZWQgYnkgdGhlDQo+PiB0b29sc3RhY2sgZHVyaW5nIGRvbWFpbiBjcmVhdGlvbiwg
d2hpbGUgZm9yIERvbTAgb3IgRG9tVXMgaW4gRG9tMCwgaXQgaXMNCj4+IGhhbmRsZWQgZGlyZWN0
bHkgZHVyaW5nIFZHSUMgaW5pdGlhbGl6YXRpb24uIElmIGVTUElzIGFyZSBub3QgDQo+PiBzdXBw
b3J0ZWQsIHRoZQ0KPj4gY2FsY3VsYXRpb24gZGVmYXVsdHMgdG8gdXNpbmcgdGhlIHN0YW5kYXJk
IFNQSSByYW5nZSwgd2l0aCBhIG1heGltdW0gDQo+PiB2YWx1ZSBvZg0KPj4gOTkyIGludGVycnVw
dCBsaW5lcywgYXMgaXQgd29ya3MgY3VycmVudGx5Lg0KPj4NCj4+IFNpZ25lZC1vZmYtYnk6IExl
b25pZCBLb21hcmlhbnNreWkgPGxlb25pZF9rb21hcmlhbnNreWlAZXBhbS5jb20+DQo+Pg0KPj4g
LS0tDQo+PiBDaGFuZ2VzIGluIFY0Og0KPj4gLSBjb25zb2xpZGF0ZWQgdGhlIGVTUEkgYW5kIFNQ
SSBsb2dpYyBpbnRvIGEgbmV3IGlubGluZSBmdW5jdGlvbiwNCj4+IMKgwqAgdmdpY19kZWZfbnJf
c3Bpcy4gV2l0aG91dCBlU1BJIHN1cHBvcnQgKGVpdGhlciBkdWUgdG8gY29uZmlnIGJlaW5nDQo+
PiDCoMKgIGRpc2FibGVkIG9yIGhhcmR3YXJlIG5vdCBzdXBwb3J0aW5nIGl0KSwgaXQgd2lsbCBy
ZXR1cm4gdGhlIHJlZ3VsYXIgDQo+PiBTUEkNCj4+IMKgwqAgcmFuZ2UsIGFzIGl0IHdvcmtzIGN1
cnJlbnRseS4gVGhlcmUgYXJlIG5vIGZ1bmN0aW9uYWwgY2hhbmdlcyBjb21wYXJlZA0KPj4gwqDC
oCB3aXRoIHRoZSBwcmV2aW91cyBwYXRjaCB2ZXJzaW9uDQo+PiAtIHJlbW92ZWQgVkdJQ19ERUZf
TUFYX1NQSSBtYWNybywgdG8gcmVkdWNlIHRoZSBudW1iZXIgb2YgaWZkZWZzDQo+IA0KPiB2ZXJ5
IGdvb2QsIHRoYW5rcywgb25seSBOSVQgYmVsb3cNCj4gDQo+IFJldmlld2VkLWJ5OiBPbGVrc2Fu
ZHIgVHlzaGNoZW5rbyA8b2xla3NhbmRyX3R5c2hjaGVua29AZXBhbS5jb20+DQo+IA0KPiANCj4g
DQo+Pg0KPj4gQ2hhbmdlcyBpbiBWMzoNCj4+IC0gcmVuYW1lZCBtYWNybyBWR0lDX0RFRl9OUl9F
U1BJUyB0byBtb3JlIGFwcHJvcHJpYXRlIFZHSUNfREVGX01BWF9TUEkNCj4+IC0gYWRkZWQgZVNQ
SSBpbml0aWFsaXphdGlvbiBmb3IgZG9tMGxlc3Mgc2V0dXBzDQo+PiAtIGZpeGVkIGNvbW1lbnQg
d2l0aCBtZW50aW9ucyBhYm91dCBkb20wbGVzcyBidWlsZHMNCj4+IC0gZml4ZWQgZm9ybWF0dGlu
ZyBmb3IgbGluZXMgd2l0aCBtb3JlIHRoYW4gODAgc3ltYm9scw0KPj4gLSB1cGRhdGVkIGNvbW1p
dCBtZXNzYWdlDQo+Pg0KPj4gQ2hhbmdlcyBpbiBWMjoNCj4+IC0gbm8gY2hhbmdlcw0KPj4gLS0t
DQo+PiDCoCB4ZW4vYXJjaC9hcm0vZG9tMGxlc3MtYnVpbGQuY8KgwqAgfMKgIDIgKy0NCj4+IMKg
IHhlbi9hcmNoL2FybS9kb21haW5fYnVpbGQuY8KgwqDCoMKgIHzCoCAyICstDQo+PiDCoCB4ZW4v
YXJjaC9hcm0vaW5jbHVkZS9hc20vdmdpYy5oIHwgMjEgKysrKysrKysrKysrKysrKysrKysrDQo+
PiDCoCAzIGZpbGVzIGNoYW5nZWQsIDIzIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pDQo+
Pg0KPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9kb20wbGVzcy1idWlsZC5jIGIveGVuL2Fy
Y2gvYXJtL2RvbTBsZXNzLSANCj4+IGJ1aWxkLmMNCj4+IGluZGV4IDY5YjllYTIyY2UuLjAyZDU1
NTkxMDIgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vYXJjaC9hcm0vZG9tMGxlc3MtYnVpbGQuYw0KPj4g
KysrIGIveGVuL2FyY2gvYXJtL2RvbTBsZXNzLWJ1aWxkLmMNCj4+IEBAIC0yODUsNyArMjg1LDcg
QEAgdm9pZCBfX2luaXQgYXJjaF9jcmVhdGVfZG9tVXMoc3RydWN0IA0KPj4gZHRfZGV2aWNlX25v
ZGUgKm5vZGUsDQo+PiDCoMKgwqDCoMKgIHsNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBpbnQgdnBs
MDExX3ZpcnEgPSBHVUVTVF9WUEwwMTFfU1BJOw0KPj4gLcKgwqDCoMKgwqDCoMKgIGRfY2ZnLT5h
cmNoLm5yX3NwaXMgPSBWR0lDX0RFRl9OUl9TUElTOw0KPj4gK8KgwqDCoMKgwqDCoMKgIGRfY2Zn
LT5hcmNoLm5yX3NwaXMgPSB2Z2ljX2RlZl9ucl9zcGlzKCk7DQo+PiDCoMKgwqDCoMKgwqDCoMKg
wqAgLyoNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgICogVGhlIFZQTDAxMSB2aXJxIGlzIEdVRVNU
X1ZQTDAxMV9TUEksIHVubGVzcyBkaXJlY3QtbWFwIGlzDQo+PiBkaWZmIC0tZ2l0IGEveGVuL2Fy
Y2gvYXJtL2RvbWFpbl9idWlsZC5jIGIveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jDQo+PiBp
bmRleCBkOTFhNzFhY2ZkLi4zOWVlYTBiZTAwIDEwMDY0NA0KPj4gLS0tIGEveGVuL2FyY2gvYXJt
L2RvbWFpbl9idWlsZC5jDQo+PiArKysgYi94ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMNCj4+
IEBAIC0yMDU0LDcgKzIwNTQsNyBAQCB2b2lkIF9faW5pdCBjcmVhdGVfZG9tMCh2b2lkKQ0KPj4g
wqDCoMKgwqDCoCAvKiBUaGUgdkdJQyBmb3IgRE9NMCBpcyBleGFjdGx5IGVtdWxhdGluZyB0aGUg
aGFyZHdhcmUgR0lDICovDQo+PiDCoMKgwqDCoMKgIGRvbTBfY2ZnLmFyY2guZ2ljX3ZlcnNpb24g
PSBYRU5fRE9NQ1RMX0NPTkZJR19HSUNfTkFUSVZFOw0KPj4gLcKgwqDCoCBkb20wX2NmZy5hcmNo
Lm5yX3NwaXMgPSBWR0lDX0RFRl9OUl9TUElTOw0KPj4gK8KgwqDCoCBkb20wX2NmZy5hcmNoLm5y
X3NwaXMgPSB2Z2ljX2RlZl9ucl9zcGlzKCk7DQo+PiDCoMKgwqDCoMKgIGRvbTBfY2ZnLmFyY2gu
dGVlX3R5cGUgPSB0ZWVfZ2V0X3R5cGUoKTsNCj4+IMKgwqDCoMKgwqAgZG9tMF9jZmcubWF4X3Zj
cHVzID0gZG9tMF9tYXhfdmNwdXMoKTsNCj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vaW5j
bHVkZS9hc20vdmdpYy5oIGIveGVuL2FyY2gvYXJtL2luY2x1ZGUvIA0KPj4gYXNtL3ZnaWMuaA0K
Pj4gaW5kZXggZmI0Y2VhNzNlYi4uMTFmOWQyMTZlYiAxMDA2NDQNCj4+IC0tLSBhL3hlbi9hcmNo
L2FybS9pbmNsdWRlL2FzbS92Z2ljLmgNCj4+ICsrKyBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2Fz
bS92Z2ljLmgNCj4+IEBAIC0zNTUsNiArMzU1LDI3IEBAIGV4dGVybiB2b2lkIA0KPj4gdmdpY19j
aGVja19pbmZsaWdodF9pcnFzX3BlbmRpbmcoc3RydWN0IHZjcHUgKnYsDQo+PiDCoCAvKiBEZWZh
dWx0IG51bWJlciBvZiB2R0lDIFNQSXMuIDMyIGFyZSBzdWJzdHJhY3RlZCB0byBjb3ZlciBsb2Nh
bCANCj4+IElSUXMuICovDQo+PiDCoCAjZGVmaW5lIFZHSUNfREVGX05SX1NQSVMgKG1pbihnaWNf
bnVtYmVyX2xpbmVzKCksIFZHSUNfTUFYX0lSUVMpIC0gMzIpDQo+PiArc3RhdGljIGlubGluZSB1
bnNpZ25lZCBpbnQgdmdpY19kZWZfbnJfc3Bpcyh2b2lkKQ0KPj4gK3sNCj4+ICsjaWZkZWYgQ09O
RklHX0dJQ1YzX0VTUEkNCj4+ICvCoMKgwqAgLyoNCj4+ICvCoMKgwqDCoCAqIENoZWNrIGlmIHRo
ZSBoYXJkd2FyZSBzdXBwb3J0cyBleHRlbmRlZCBTUElzIChldmVuIGlmIHRoZSANCj4+IGFwcHJv
cHJpYXRlDQo+PiArwqDCoMKgwqAgKiBjb25maWcgaXMgc2V0KS4gSWYgbm90LCB0aGUgY29tbW9u
IFNQSSByYW5nZSB3aWxsIGJlIHVzZWQuIA0KPj4gT3RoZXJ3aXNlDQo+PiArwqDCoMKgwqAgKiBy
ZXR1cm5zIHRoZSBtYXhpbXVtIGVTUEkgSU5USUQsIHN1cHBvcnRlZCBieSBIVyBHSUMsIA0KPj4g
c3VidHJhY3RlZCBieSAzMi4NCj4gDQo+IE5JVDogcy9yZXR1cm5zL3JldHVybiAuLi4NCj4gDQoN
Ckkgd2lsbCBmaXggdGhpcyBpbiBWNS4NCg0KPiANCj4+ICvCoMKgwqDCoCAqIEZvciBub24tRG9t
MCBkb21haW5zLCB0aGUgdG9vbHN0YWNrIG9yIGFyY2hfY3JlYXRlX2RvbVVzIGZ1bmN0aW9uDQo+
PiArwqDCoMKgwqAgKiBhcHBsaWVzIHRoZSBzYW1lIGFkanVzdG1lbnQgdG8gY292ZXIgbG9jYWwg
SVJRcyAocGxlYXNlLCBzZWUgDQo+PiBjb21tZW50DQo+PiArwqDCoMKgwqAgKiBmb3IgbWFjcm8g
dGhhdCBpcyB1c2VkIGZvciByZWd1bGFyIFNQSXMgLSBWR0lDX0RFRl9OUl9TUElTKS4NCj4gDQo+
ICDCoC4uLiBJIGFtIG5vdCAxMDAlIHN1cmUsIHRoYXQgSSBmb2xsb3cgdGhlIHdvcmRpbmcgIkZv
ciBub24tRG9tMCANCj4gZG9tYWlucywgdGhlIHRvb2xzdGFjayBvciBhcmNoX2NyZWF0ZV9kb21V
cyAuLi4iLiBEaWQgeW91IHBlcmhhcHMgbWVhbjoNCj4gDQo+IEZvciBEb20wIGFuZCBzdGFydGVk
IGF0IGJvb3QgdGltZSBEb21VcyAuLi4/DQo+IA0KPiAgwqBXZSB3aWxsDQoNClllcywgSSBhZ3Jl
ZSB0aGF0ICdGb3IgRG9tMCBhbmQgc3RhcnRlZCBhdCBib290IHRpbWUgRG9tVXMsIHdlIHdpbGwg
YWRkIA0KYmFjay4uLicgc291bmRzIGJldHRlciA6KQ0KDQo+PiArwqDCoMKgwqAgKiBhZGQgYmFj
ayB0aGlzIHZhbHVlIGR1cmluZyBWR0lDIGluaXRpYWxpemF0aW9uLiBUaGlzIGVuc3VyZXMgDQo+
PiBjb25zaXN0ZW50DQo+PiArwqDCoMKgwqAgKiBoYW5kbGluZyBmb3IgRG9tMCBhbmQgb3RoZXIg
ZG9tYWlucy4gRm9yIHRoZSByZWd1bGFyIFNQSSByYW5nZSANCj4+IGludGVycnVwdHMNCj4+ICvC
oMKgwqDCoCAqIGluIHRoaXMgY2FzZSwgdGhlIG1heGltdW0gdmFsdWUgb2YgVkdJQ19ERUZfTlJf
U1BJUyB3aWxsIGJlIHVzZWQuDQo+PiArwqDCoMKgwqAgKi8NCj4+ICvCoMKgwqAgaWYgKCBnaWNf
bnVtYmVyX2VzcGlzKCkgPiAwICkNCj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gRVNQSV9CQVNF
X0lOVElEICsgbWluKGdpY19udW1iZXJfZXNwaXMoKSwgMTAyNFUpIC0gMzI7DQo+PiArI2VuZGlm
DQo+PiArDQo+PiArwqDCoMKgIHJldHVybiBWR0lDX0RFRl9OUl9TUElTOw0KPj4gK30NCj4+ICsN
Cj4+IMKgIGV4dGVybiBib29sIHZnaWNfaXNfdmFsaWRfbGluZShzdHJ1Y3QgZG9tYWluICpkLCB1
bnNpZ25lZCBpbnQgdmlycSk7DQo+PiDCoCBzdGF0aWMgaW5saW5lIGJvb2wgdmdpY19pc19zcGko
c3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IHZpcnEpDQo+IA0KDQpCZXN0IHJlZ2FyZHMs
DQpMZW9uaWQNCg==


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 16:40:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 16:40:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099669.1453434 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urffr-0004pG-AF; Thu, 28 Aug 2025 16:40:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099669.1453434; Thu, 28 Aug 2025 16:40:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urffr-0004of-6c; Thu, 28 Aug 2025 16:40:31 +0000
Received: by outflank-mailman (input) for mailman id 1099669;
 Thu, 28 Aug 2025 16:40:29 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fCus=3I=epam.com=Oleksii_Moisieiev@srs-se1.protection.inumbo.net>)
 id 1urffp-0004ma-R5
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 16:40:29 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b3f4e5eb-842d-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 18:40:27 +0200 (CEST)
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com (2603:10a6:102:32e::21)
 by PA1PR03MB10844.eurprd03.prod.outlook.com (2603:10a6:102:48f::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Thu, 28 Aug
 2025 16:40:26 +0000
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::f12d:7394:bbe3:dfc]) by PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::f12d:7394:bbe3:dfc%6]) with mapi id 15.20.9052.014; Thu, 28 Aug 2025
 16:40:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b3f4e5eb-842d-11f0-8adc-4578a1afcccb
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lD3Aivjh/5OevKM4xOVlRouGMKaNMaCCfhfri38ZqrAZOsq/NlIqLYRdUsLuP1/jVljJU8bIUSk4n5bffhT19n8unksxHHSy5OzGp/phcLNa4VlujZU7HUHHoWGZB6TiU4ina1nVAJOtyVVkdKrd94q6biXOH9da2HLeVKBPGuHsUrIA/5rSxjzZZ+Cay54batORDq+An0Fcj+WMUQXaDpZVhSzuvO8ScxoFsB2NjN6imHTmzlvtTf0hmSJ5EFlKsA6SdRQqZoqmRWoF+/fm3/q0bIVjR+BOF0BZkKysiAatLwYgPp9is2A1kbaD1LPj8J78YMBHKnx33kwIw7lqDg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=hUyI6g6QYrqcztB9UI47RsxU2Qmm4s4rioVv00bAEDY=;
 b=wy5WmjoU9Qk+APT4HhPxy300YpY/XmI2t1vxE8DjdWKSGskBcUjIdX8c9GK2i02xomh+SG/HHFH93bufJbVLnALfCSqu1UTU0U7RdclHwet0dwsv5jaJuQKFD6L7aNpIYjhEPuVro1cczvUTDn5r3SgRk/v4mG6nUXaRxcdfwNTKtqOfEAHrs2HvGW0XCk50fHmv/AyhWZvmRusSjNUf+5hNq9lueMvSyFvcQEem4fbiMCcxibINW6DvtoClU+TL4xGA6KGAidRIyeaJO9aUK9Fj2botI9+LAZo8qaj8G8ACdE6LHz8RgxFzkzGaJM7Sh2JcYLRn5ZOdI8L/HvO3KQ==
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=hUyI6g6QYrqcztB9UI47RsxU2Qmm4s4rioVv00bAEDY=;
 b=ZFSkduPnaSjRb3TH7wEf0naTf0wS/Ipr4OjA/du04V0UtEEb97izs/LMnZVnbvEDIEEuTZiXuaPYzBXisCqSwZBGQSmMyhp+KF4nZghCtBQgXWgENlAKKI1pyVd4WhuIxS9uro9t1BLPKymOI1s6vGWVzED24lxX6MfK3c3mRX6R1jCSkUkVemes1gIw0XOEMKncFC9rjtLzmwVvwImLMKCy8Rgbi5YTXLI5MZUcROB0YgzILSfcvEZisOe2W1G2ugBjb09/U6ZjNcTfcdr/rmQhXH4400tFD5KNThQ3SNtqrYc7VwKAc3EYoyLij3enU8xpjw3DVkn7QjuoPHzv/w==
From: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Bertrand Marquis <bertrand.marquis@arm.com>, Jan
 Beulich <jbeulich@suse.com>, Juergen Gross <jgross@suse.com>, Julien Grall
	<julien@xen.org>, Michal Orzel <michal.orzel@amd.com>, Oleksii Moisieiev
	<Oleksii_Moisieiev@epam.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Grygorii Strashko
	<grygorii_strashko@epam.com>
Subject: [PATCH v6 3/4] xen/arm: scmi-smc: passthrough SCMI SMC to domain,
 single agent
Thread-Topic: [PATCH v6 3/4] xen/arm: scmi-smc: passthrough SCMI SMC to
 domain, single agent
Thread-Index: AQHcGDp07aUQwsobaUO2Bmd+Gq/u2A==
Date: Thu, 28 Aug 2025 16:40:25 +0000
Message-ID:
 <02b79eaa0a611fb43a2146a5f41aec435d3db6c7.1756399156.git.oleksii_moisieiev@epam.com>
References: <cover.1756399156.git.oleksii_moisieiev@epam.com>
In-Reply-To: <cover.1756399156.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: PAVPR03MB8946:EE_|PA1PR03MB10844:EE_
x-ms-office365-filtering-correlation-id: 348b0454-0b2a-40a4-98c7-08dde6519737
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|7416014|1800799024|376014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?rb1dMANtdzBDwWfTuZAVKbne8YxCVaGyXky8mjMi7LQEhD8hPVNpgMNYYc?=
 =?iso-8859-1?Q?gKJcB2RU3mfDJ/FoRG+k5ww3fnTY1kLU/VzmC3O7SKOBi2nM3rK9F00lXa?=
 =?iso-8859-1?Q?v9mR+rE9/bQ/xSribJ2ywxQEXib2iH+ZH+eQlymh2rCParD6oavk//+QPq?=
 =?iso-8859-1?Q?xRK8/wMuY+YuN9+NGqWV34nWHaBFM5ftU6qTwAuisFQoW9z7iw4RxarYeb?=
 =?iso-8859-1?Q?t2u98yWBLXeWoWGnGrLaCgfNSU78Uo+wkLvuHWHenG9b0jVHl62lCCBWkh?=
 =?iso-8859-1?Q?oqayOjClm5jF0l76KETYo8Sq8XFhyvr7+k0vUVsWCYR6aLGnWYLaNSucjl?=
 =?iso-8859-1?Q?DJuVnbhIFgFjxPbjYjFAyuTVSJL5mDIgIhaZjVyG88XGh44+ZcNuB8i3EH?=
 =?iso-8859-1?Q?ch4hzfUi+05/xQE5eghbeJCxYWCH2aB8muq66I6mmxfWsdgN1syEGV79u8?=
 =?iso-8859-1?Q?2MunzDv2tYmkrSIsU/Apgxa2F/t1digcrDaZhEBzwcFPiPpk1cENRb0xa0?=
 =?iso-8859-1?Q?bDJA8nFuB6xsvzDFXydQUh2hbOcotcx1j1DxE6KPvXBqpwjT7JL/DLp0Xg?=
 =?iso-8859-1?Q?dfywm+28OgBJgfqyv6P3ctbvI439J9mu/jan/CfBgAaw9PqkVzU/mYNcH3?=
 =?iso-8859-1?Q?8HTrrgD9+VRy74a5dtlBsmHda8bvVFRPHvw0TGxD2beWWhFU/kS/LAqbDY?=
 =?iso-8859-1?Q?D/ECo8k07iQWnNdv7wetKpM60ZsGi84LcBwhsnQbHhPWUk/AUasi2Ikt9m?=
 =?iso-8859-1?Q?jaJsegCwHbaSeuVexocAy4uO5CXgo2016Y/NHdR5FvARRS3o+boYHHUKbt?=
 =?iso-8859-1?Q?0fH8HQ/YJ7gPOUczCGYfLKBvXtjpgEh8OXEBciu0rMIZoHyZ+1t7WgJvSW?=
 =?iso-8859-1?Q?pcwTeBdyrqjxsbBeKamb1oNQW7JQKkLTHHdg490a5Wn4gGIdJC3FN1h+ga?=
 =?iso-8859-1?Q?I+iyVjwHsK8o0xYAu4TZhlCjS32lSIpqRXrfJ2sNrixjjo+Wnc2qEIUF3P?=
 =?iso-8859-1?Q?+y93rcG38ehMmaXxK0vcIuZZ90vp+2je5PAfBdFUYSdUWIjhhAcyJUAdIZ?=
 =?iso-8859-1?Q?2gI6Ewl6a8qa6pABRUaK7JhFTAR082zUOQmjB1RBtfLiOtScaU6uSeKhm9?=
 =?iso-8859-1?Q?PokWYsFsV2dZj3MGDKv63wngHoGrJDQ5n7thVdYKccujPKXvVQwIEg417F?=
 =?iso-8859-1?Q?28JMExgwKht67PEsuxyXo4XUgghlABBT+ViTud94JfqDaAFDacDvfWO+bO?=
 =?iso-8859-1?Q?7BpfFdfJ31zpGxqPAEXF0S9c++50SSkoxP/wRHAsGftIZyDXm7DlSUXZwW?=
 =?iso-8859-1?Q?PBGb5AdumaOjbWaJgLJ5yENsinw0KiiNLV3LzfPuTZsxv8zafkBWAmj8aR?=
 =?iso-8859-1?Q?cZbgPlD8Q89ahe9cxIA56wSsxaWEj9gtUJgFTWUXCB/utiEn/D5TW8un3E?=
 =?iso-8859-1?Q?EJXzE3ouMWt/yRNRuTVDXQM7zxbesN9MWDE4BIK/VlfWK4+4we/65Hyh4J?=
 =?iso-8859-1?Q?zHjv37+17fRoisXq5S7FdHq2f8zK95sWhbOax/dng/og=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB8946.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?JlSHkmvKOvK/0WqOhNWhy6E9JqWrrmHCY6gt5LAf4f4BI1lgkBHvXIkHMJ?=
 =?iso-8859-1?Q?bQrrospDobvd4IjiYIU3SVuFqGe7ECMC1j1u8uH4QmdsYkM9ObvEeAx+cC?=
 =?iso-8859-1?Q?miJzy0KbbIU3xuWWpgo9SOgvckJE4U4FU0OIqRuAZBgbrgIhkiAwVa2ZhJ?=
 =?iso-8859-1?Q?/KBAVDVrnILJLplq27hBsEo/ppJV3ba+qPIbhgbOP4yxbSsInJ2q7NQEW0?=
 =?iso-8859-1?Q?8x++xRjFLwVzuwblwEMQQz35SV7OKP1mZQjqMYGEcARToJHNE72TUK7TC6?=
 =?iso-8859-1?Q?GD4PLP8SqhK01UtdlAQj25WdYlPdrIfDD9NoIjCaGU6bWTImcMx1spT751?=
 =?iso-8859-1?Q?37h5NRFgg1A6dYNspfe9A44zGHHg0BN5mH7qJaGAAuAlhrFmDsN4V48XnY?=
 =?iso-8859-1?Q?AyU1L3RKlZ1on3nNBZZfiRDuXCc4zwCE9yLjTWH35SF15w//maSOTg/WR8?=
 =?iso-8859-1?Q?RVjMSetjKoVKhMQBmLnqQBIGSnF4LsuDpJW+7YF2xvDe6Pim6r9l6tZIQI?=
 =?iso-8859-1?Q?DEajWRCOgbv0tz49cLPcIclQlC/WG/2aOwxxCquL6rP0YU1tXD59Z4F/eh?=
 =?iso-8859-1?Q?nJqfhuvIaQDhlqKUsFO5QCzxLTXj4ZmXvpepLG5vX27ZdEKDO1IcITi1xf?=
 =?iso-8859-1?Q?BEAuU89NEfV9OxBfyiDubyBwGBdIKHx5IJFcyOInfBGP2jIAKdMVjzvh7e?=
 =?iso-8859-1?Q?15m6mtCyXAs6jqUALMKzKIn4+ovFRimo7d45Uv0gDrqrjOGXH8vm8mIwlN?=
 =?iso-8859-1?Q?JrS5zJgkA8fbqhyRdvmfe5IAiQQinx9Yrm05nlweaXYRa0zWqTisBqC8gR?=
 =?iso-8859-1?Q?VfxKwQ8I1EE7UxpD3BteayOMoF5fSnXjQr79t+U1Xzm9ZwYG7GKFuwO/LG?=
 =?iso-8859-1?Q?wMA4wExdFJ8zzYjx5DB0x2guClQjlZSHqBPs3olPPWd05gerohCqpkIoTp?=
 =?iso-8859-1?Q?xOJUap7m+1mUNPkdj1I9gaTtQiDTVKocd8swvtUi9GBOgQNYAqq+QqyJ6W?=
 =?iso-8859-1?Q?Ua/HCAO22MXB7pW3Ik+stzj8la8yfkp/G5BFx9/IvIJda5CNP1nPNlVH7j?=
 =?iso-8859-1?Q?F85sPyoj6cCXtwNHsCRS6PNnkJvI9Go9AmzvH9ozhId3FLt6DqUggKoMzW?=
 =?iso-8859-1?Q?9wgeLPzq1sMp8Yoi0kbGYFN8K8lJw7EAfFKpK4hZ0X7jC7zSI1vnxVq3Xn?=
 =?iso-8859-1?Q?3LCshTx6kGi/ot41q5TsLpvqFPEkOhL6z+0neESnyBJWd+qC11e0mUDLlW?=
 =?iso-8859-1?Q?n7HuvkU6UzAEUc/Dc6wKvc5+8E72YBRLZuLMgqxFdmXmDbed4s2y8BkeyR?=
 =?iso-8859-1?Q?OKDNN7aRarMkbVoxYkCsbWzW+V+kE8y8zBZXI7ael1NpHraAdV0BPHMEvH?=
 =?iso-8859-1?Q?A2M+4Jcg5f4lnNOZVE4Xhj2ZPIRTJTOMasdp+OoxVVLhk3tMUb0CfubIRx?=
 =?iso-8859-1?Q?uggC7VzIdSu6l+WE6qpEy5FBSadhwy1d39CVIZaci9LybPexiOyqHY64qT?=
 =?iso-8859-1?Q?BdJKtLXUZva4XoMHa1pyJNBx/P6+4fTxs8833tO4Bah4QOXXzuEJ1qr5jW?=
 =?iso-8859-1?Q?wSoj6uqspC1/5Z0j6edLociENAcs/hNxtGVzetXcyGsR80/wH/JKK0LHBk?=
 =?iso-8859-1?Q?ZxS+ThlAGAJuG7rc4OLDjlSTqJYBGSv+SJrPqMXg5v62xUHrc1SaCOZA?=
 =?iso-8859-1?Q?=3D=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: PAVPR03MB8946.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 348b0454-0b2a-40a4-98c7-08dde6519737
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Aug 2025 16:40:25.9763
 (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: vdM1dgpvoESoKA5BBOxh6uLCHaCty4olO4Z3T5CnnBxfX7Re4b3CtWXSN5rsUvVUlv/H1SA2s41ue6tVSrUFnedqGxjTc/oQL1Wkvg2LLfk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA1PR03MB10844

From: Grygorii Strashko <grygorii_strashko@epam.com>

The commit 3e322bef8bc0 ("xen/arm: firmware: Add SCMI over SMC calls
handling layer") introduces simple driver which forwards SCMI over SMC
calls from hwdom/dom0 to EL3 firmware (TF-A) with a single SCMI OSPM agent
support. While it is working gracefully for hwdom/dom0 use case it doesn't
cover "thin Dom0 with guest domain, which serves as Driver domain"
use-case. In this case HW need to be enable in Driver domain and dom0 is
performing only control functions.

The EL3 SCMI firmware (TF-A) with a single SCMI OSPM agent support is
pretty generic case for the default vendors SDK and new platforms.

This patch enables passthrough of SCMI SMC single agent interface to the
one guest domain serving as Driver domain.

Configure Dom0 to enable SCMI passthrough:

 - dom0: add scmi-smc-passthrough to the Xen Command Line

Enabled SCMI passthrough for guest using toolstack in the following way:

 - domD: xl.cfg add "arm_sci" option as below

   arm_sci =3D "type=3Dscmi_smc"

 - domD: xl.cfg enable access to the "arm,scmi-shmem"

iomem =3D [
    "47ff0,1@22001",
]

 - domD: add SCMI nodes to the Driver domain partial device tree as in the
 below example:

passthrough {
   scmi_shm_0: sram@22001000 {
       compatible =3D "arm,scmi-shmem";
       reg =3D <0x0 0x22001000 0x0 0x1000>;
   };

   firmware {
        compatible =3D "simple-bus";
            scmi: scmi {
                compatible =3D "arm,scmi-smc";
                shmem =3D <&scmi_shm_0>;
                ...
            }
    }
}

dom0less case configuration:

- add "xen,sci_type" property for required DomU ("xen,domain") node

   xen,sci_type=3D"scmi_smc"

- add scmi nodes to the Driver domain partial device tree the same way
as above and enable access to the "arm,scmi-shmem" according to
dom0less documentation. For example:

  scmi_shm_0: sram@22001000 {
        compatible =3D "arm,scmi-shmem";
        reg =3D <0x00 0x22001000 0x00 0x1000>;
->        xen,reg =3D <0x0 0x47ff0000 0x0 0x1000 0x0 0x22001000>;
->        xen,force-assign-without-iommu;
  };

The SCMI SMC single agent interface can be enabled for one and only one
domain. In general, the configuration is similar to any other HW
passthrough, except explicitly enabling SCMI with "arm_sci" xl.cfg option.

Note that "arm,scmi-smc" and "arm,scmi-shmem" nodes will be removed from
dom0/hwdom DT in case of

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
Signed-off-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
Acked-by: Anthony PERARD <anthony.perard@vates.tech> # tools
---

Changes in v6:
- added generated helpers and types go files
- rename cmdline parameter to scmi-smc-passthrough
- fix goto tag in parse_arm_sci_config

Changes in v5:
- rename dom0_scmi_smc_passthrough to scmi_smc_passthrough

Changes in v4:
- xl.cfg doc
- fix comments from Stefano Stabellini
- fix toolstack code as sugested by Anthony PERARD
  - use MATCH_OPTION()
  - move arm_sci struct and cfg params in "arch_arm"
- add SCMI passthrough for dom0less case

 docs/man/xl.cfg.5.pod.in              |  34 ++++++++
 docs/misc/arm/device-tree/booting.txt |  15 ++++
 docs/misc/xen-command-line.pandoc     |   9 +++
 tools/golang/xenlight/helpers.gen.go  |  41 ++++++++++
 tools/golang/xenlight/types.gen.go    |  12 +++
 tools/include/libxl.h                 |   5 ++
 tools/libs/light/libxl_arm.c          |  14 ++++
 tools/libs/light/libxl_types.idl      |  10 +++
 tools/xl/xl_parse.c                   |  36 +++++++++
 xen/arch/arm/dom0less-build.c         |  34 +++++++-
 xen/arch/arm/firmware/Kconfig         |   4 +-
 xen/arch/arm/firmware/scmi-smc.c      | 112 +++++++++++++++++++++++++-
 12 files changed, 321 insertions(+), 5 deletions(-)

diff --git a/docs/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.in
index acff45d308..3b18bcc095 100644
--- a/docs/man/xl.cfg.5.pod.in
+++ b/docs/man/xl.cfg.5.pod.in
@@ -3123,6 +3123,40 @@ writes will be ignored.
=20
 This option is only implemented for Arm where the default is enabled.
=20
+=3Ditem B<arm_sci=3D"ARM_SCI_STRING">
+
+Set ARM_SCI specific options for the guest. ARM SCI is System
+Control Protocol allows domain to manage various functions that are provid=
ed
+by HW platform firmware.
+
+B<ARM_SCI_STRING> is a comma separated list of C<KEY=3DVALUE> settings,
+from the following list:
+
+=3Dover 4
+
+=3Ditem B<type=3DSTRING>
+
+Specifies an ARM SCI type for the guest.
+
+=3Dover 4
+
+=3Ditem B<none>
+
+Don't allow guest to use ARM SCI if present on the platform. This is the
+default value.
+
+=3Ditem B<scmi_smc>
+
+Enables ARM SCMI SMC support for the guest by enabling SCMI over SMC calls
+forwarding from domain to the EL3 firmware (like Trusted Firmware-A) with =
a
+single SCMI OSPM agent support.
+Should be used together with B<scmi-smc-passthrough> Xen command line
+option.
+
+=3Dback
+
+=3Dback
+
 =3Dback
=20
 =3Dhead3 x86
diff --git a/docs/misc/arm/device-tree/booting.txt b/docs/misc/arm/device-t=
ree/booting.txt
index 07acc7ba64..977b428608 100644
--- a/docs/misc/arm/device-tree/booting.txt
+++ b/docs/misc/arm/device-tree/booting.txt
@@ -307,6 +307,21 @@ with the following properties:
     passed through. This option is the default if this property is missing
     and the user does not provide the device partial device tree for the d=
omain.
=20
+- xen,sci_type
+
+    A string property specifying an ARM SCI type for the guest.
+
+    - "none"
+    Don't allow guest to use ARM SCI if present on the platform. This is t=
he
+    default value.
+
+    - "scmi_smc"
+    Enables ARM SCMI SMC support for the guest by enabling SCMI over SMC c=
alls
+    forwarding from domain to the EL3 firmware (like Trusted Firmware-A) w=
ith a
+    single SCMI OSPM agent support.
+    Should be used together with scmi-smc-passthrough Xen command line
+    option.
+
 Under the "xen,domain" compatible node, one or more sub-nodes are present
 for the DomU kernel and ramdisk.
=20
diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line=
.pandoc
index a75b6c9301..0a3d697396 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -1097,6 +1097,15 @@ affinities to prefer but be not limited to the speci=
fied node(s).
=20
 Pin dom0 vcpus to their respective pcpus
=20
+### scmi-smc-passthrough (ARM)
+> `=3D <boolean>`
+
+The option is available when `CONFIG_SCMI_SMC` is compiled in, and allows =
to
+enable SCMI SMC single agent interface for any, but only one guest domain,
+which serves as Driver domain. The SCMI will be disabled for Dom0/hwdom an=
d
+SCMI nodes removed from Dom0/hwdom device tree.
+(for example, thin Dom0 with Driver domain use-case).
+
 ### dtuart (ARM)
 > `=3D path [:options]`
=20
diff --git a/tools/golang/xenlight/helpers.gen.go b/tools/golang/xenlight/h=
elpers.gen.go
index 667030cbd7..3937653dab 100644
--- a/tools/golang/xenlight/helpers.gen.go
+++ b/tools/golang/xenlight/helpers.gen.go
@@ -938,6 +938,35 @@ return fmt.Errorf("converting field Vcpus: %v", err)
  return nil
  }
=20
+// NewArmSci returns an instance of ArmSci initialized with defaults.
+func NewArmSci() (*ArmSci, error) {
+var (
+x ArmSci
+xc C.libxl_arm_sci)
+
+C.libxl_arm_sci_init(&xc)
+defer C.libxl_arm_sci_dispose(&xc)
+
+if err :=3D x.fromC(&xc); err !=3D nil {
+return nil, err }
+
+return &x, nil}
+
+func (x *ArmSci) fromC(xc *C.libxl_arm_sci) error {
+ x.Type =3D ArmSciType(xc._type)
+
+ return nil}
+
+func (x *ArmSci) toC(xc *C.libxl_arm_sci) (err error){defer func(){
+if err !=3D nil{
+C.libxl_arm_sci_dispose(xc)}
+}()
+
+xc._type =3D C.libxl_arm_sci_type(x.Type)
+
+ return nil
+ }
+
 // NewRdmReserve returns an instance of RdmReserve initialized with defaul=
ts.
 func NewRdmReserve() (*RdmReserve, error) {
 var (
@@ -1113,6 +1142,9 @@ x.Kernel =3D C.GoString(xc.kernel)
 x.Cmdline =3D C.GoString(xc.cmdline)
 x.Ramdisk =3D C.GoString(xc.ramdisk)
 x.DeviceTree =3D C.GoString(xc.device_tree)
+if err :=3D x.DtPassthroughNodes.fromC(&xc.dt_passthrough_nodes);err !=3D =
nil {
+return fmt.Errorf("converting field DtPassthroughNodes: %v", err)
+}
 if err :=3D x.Acpi.fromC(&xc.acpi);err !=3D nil {
 return fmt.Errorf("converting field Acpi: %v", err)
 }
@@ -1163,6 +1195,9 @@ x.ArchArm.GicVersion =3D GicVersion(xc.arch_arm.gic_v=
ersion)
 x.ArchArm.Vuart =3D VuartType(xc.arch_arm.vuart)
 x.ArchArm.SveVl =3D SveType(xc.arch_arm.sve_vl)
 x.ArchArm.NrSpis =3D uint32(xc.arch_arm.nr_spis)
+if err :=3D x.ArchArm.ArmSci.fromC(&xc.arch_arm.arm_sci);err !=3D nil {
+return fmt.Errorf("converting field ArchArm.ArmSci: %v", err)
+}
 if err :=3D x.ArchX86.MsrRelaxed.fromC(&xc.arch_x86.msr_relaxed);err !=3D =
nil {
 return fmt.Errorf("converting field ArchX86.MsrRelaxed: %v", err)
 }
@@ -1489,6 +1524,9 @@ if x.Ramdisk !=3D "" {
 xc.ramdisk =3D C.CString(x.Ramdisk)}
 if x.DeviceTree !=3D "" {
 xc.device_tree =3D C.CString(x.DeviceTree)}
+if err :=3D x.DtPassthroughNodes.toC(&xc.dt_passthrough_nodes); err !=3D n=
il {
+return fmt.Errorf("converting field DtPassthroughNodes: %v", err)
+}
 if err :=3D x.Acpi.toC(&xc.acpi); err !=3D nil {
 return fmt.Errorf("converting field Acpi: %v", err)
 }
@@ -1699,6 +1737,9 @@ xc.arch_arm.gic_version =3D C.libxl_gic_version(x.Arc=
hArm.GicVersion)
 xc.arch_arm.vuart =3D C.libxl_vuart_type(x.ArchArm.Vuart)
 xc.arch_arm.sve_vl =3D C.libxl_sve_type(x.ArchArm.SveVl)
 xc.arch_arm.nr_spis =3D C.uint32_t(x.ArchArm.NrSpis)
+if err :=3D x.ArchArm.ArmSci.toC(&xc.arch_arm.arm_sci); err !=3D nil {
+return fmt.Errorf("converting field ArchArm.ArmSci: %v", err)
+}
 if err :=3D x.ArchX86.MsrRelaxed.toC(&xc.arch_x86.msr_relaxed); err !=3D n=
il {
 return fmt.Errorf("converting field ArchX86.MsrRelaxed: %v", err)
 }
diff --git a/tools/golang/xenlight/types.gen.go b/tools/golang/xenlight/typ=
es.gen.go
index e26b3cdfc7..328afe0d94 100644
--- a/tools/golang/xenlight/types.gen.go
+++ b/tools/golang/xenlight/types.gen.go
@@ -520,6 +520,16 @@ SveType1920 SveType =3D 1920
 SveType2048 SveType =3D 2048
 )
=20
+type ArmSciType int
+const(
+ArmSciTypeNone ArmSciType =3D 0
+ArmSciTypeScmiSmc ArmSciType =3D 1
+)
+
+type ArmSci struct {
+Type ArmSciType
+}
+
 type RdmReserve struct {
 Strategy RdmReserveStrategy
 Policy RdmReservePolicy
@@ -582,6 +592,7 @@ Kernel string
 Cmdline string
 Ramdisk string
 DeviceTree string
+DtPassthroughNodes StringList
 Acpi Defbool
 Bootloader string
 BootloaderArgs StringList
@@ -599,6 +610,7 @@ GicVersion GicVersion
 Vuart VuartType
 SveVl SveType
 NrSpis uint32
+ArmSci ArmSci
 }
 ArchX86 struct {
 MsrRelaxed Defbool
diff --git a/tools/include/libxl.h b/tools/include/libxl.h
index 185f74d8a8..bc35e412da 100644
--- a/tools/include/libxl.h
+++ b/tools/include/libxl.h
@@ -313,6 +313,11 @@
  */
 #define LIBXL_HAVE_BUILDINFO_ARCH_NR_SPIS 1
=20
+/*
+ * libxl_domain_build_info has the arch_arm.sci* fields.
+ */
+#define LIBXL_HAVE_BUILDINFO_ARCH_ARM_SCI 1
+
 /*
  * LIBXL_HAVE_SOFT_RESET indicates that libxl supports performing
  * 'soft reset' for domains and there is 'soft_reset' shutdown reason
diff --git a/tools/libs/light/libxl_arm.c b/tools/libs/light/libxl_arm.c
index ec258bdc16..e4407d6e3f 100644
--- a/tools/libs/light/libxl_arm.c
+++ b/tools/libs/light/libxl_arm.c
@@ -233,6 +233,20 @@ int libxl__arch_domain_prepare_config(libxl__gc *gc,
         config->arch.sve_vl =3D d_config->b_info.arch_arm.sve_vl / 128U;
     }
=20
+    switch (d_config->b_info.arch_arm.arm_sci.type) {
+    case LIBXL_ARM_SCI_TYPE_NONE:
+        config->arch.arm_sci_type =3D XEN_DOMCTL_CONFIG_ARM_SCI_NONE;
+        break;
+    case LIBXL_ARM_SCI_TYPE_SCMI_SMC:
+        config->arch.arm_sci_type =3D XEN_DOMCTL_CONFIG_ARM_SCI_SCMI_SMC;
+        break;
+    default:
+        LOG(ERROR, "Unknown ARM_SCI type %d",
+            d_config->b_info.arch_arm.arm_sci.type);
+        return ERROR_FAIL;
+    }
+    LOG(DEBUG, " - SCI type=3D%u", config->arch.arm_sci_type);
+
     return 0;
 }
=20
diff --git a/tools/libs/light/libxl_types.idl b/tools/libs/light/libxl_type=
s.idl
index faef3d63a1..c8e3f77947 100644
--- a/tools/libs/light/libxl_types.idl
+++ b/tools/libs/light/libxl_types.idl
@@ -551,6 +551,15 @@ libxl_sve_type =3D Enumeration("sve_type", [
     (2048, "2048")
     ], init_val =3D "LIBXL_SVE_TYPE_DISABLED")
=20
+libxl_arm_sci_type =3D Enumeration("arm_sci_type", [
+    (0, "none"),
+    (1, "scmi_smc")
+    ], init_val =3D "LIBXL_ARM_SCI_TYPE_NONE")
+
+libxl_arm_sci =3D Struct("arm_sci", [
+    ("type", libxl_arm_sci_type),
+    ])
+
 libxl_rdm_reserve =3D Struct("rdm_reserve", [
     ("strategy",    libxl_rdm_reserve_strategy),
     ("policy",      libxl_rdm_reserve_policy),
@@ -726,6 +735,7 @@ libxl_domain_build_info =3D Struct("domain_build_info",=
[
                                ("vuart", libxl_vuart_type),
                                ("sve_vl", libxl_sve_type),
                                ("nr_spis", uint32, {'init_val': 'LIBXL_NR_=
SPIS_DEFAULT'}),
+                               ("arm_sci", libxl_arm_sci),
                               ])),
     ("arch_x86", Struct(None, [("msr_relaxed", libxl_defbool),
                               ])),
diff --git a/tools/xl/xl_parse.c b/tools/xl/xl_parse.c
index 61660a02da..1cc41f1bff 100644
--- a/tools/xl/xl_parse.c
+++ b/tools/xl/xl_parse.c
@@ -1284,6 +1284,36 @@ out:
     if (rc) exit(EXIT_FAILURE);
 }
=20
+static int parse_arm_sci_config(XLU_Config *cfg, libxl_arm_sci *arm_sci,
+                                const char *str)
+{
+    int ret =3D 0;
+    char *buf2, *ptr;
+    char *oparg;
+
+    if (NULL =3D=3D (buf2 =3D ptr =3D strdup(str)))
+        return ERROR_NOMEM;
+
+    ptr =3D strtok(buf2, ",");
+    while (ptr !=3D NULL)
+    {
+        if (MATCH_OPTION("type", ptr, oparg)) {
+            ret =3D libxl_arm_sci_type_from_string(oparg, &arm_sci->type);
+            if (ret) {
+                fprintf(stderr, "Unknown ARM_SCI type: %s\n", oparg);
+                ret =3D ERROR_INVAL;
+                goto out;
+            }
+        }
+
+        ptr =3D strtok(NULL, ",");
+    }
+
+out:
+    free(buf2);
+    return ret;
+}
+
 void parse_config_data(const char *config_source,
                        const char *config_data,
                        int config_len,
@@ -2996,6 +3026,12 @@ skip_usbdev:
     xlu_cfg_get_defbool(config, "trap_unmapped_accesses",
                         &b_info->trap_unmapped_accesses, 0);
=20
+    if (!xlu_cfg_get_string(config, "arm_sci", &buf, 1)) {
+        if (parse_arm_sci_config(config, &b_info->arch_arm.arm_sci, buf)) =
{
+            exit(EXIT_FAILURE);
+        }
+    }
+
     parse_vkb_list(config, d_config);
=20
     d_config->virtios =3D NULL;
diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index 0094cf9e40..7422f4be30 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -279,6 +279,36 @@ int __init arch_handle_passthrough_prop(struct kernel_=
info *kinfo,
     return sci_assign_dt_device(kinfo->bd.d, node);
 }
=20
+int __init domu_dt_sci_parse(struct dt_device_node *node,
+                             struct xen_domctl_createdomain *d_cfg)
+{
+    const char *sci_type =3D NULL;
+    int ret;
+
+    d_cfg->arch.arm_sci_type =3D XEN_DOMCTL_CONFIG_ARM_SCI_NONE;
+
+    if ( !IS_ENABLED(CONFIG_ARM_SCI) ||
+         !dt_property_read_bool(node, "xen,sci_type") )
+        return 0;
+
+    ret =3D dt_property_read_string(node, "xen,sci_type", &sci_type);
+    if ( ret )
+        return ret;
+
+    if ( !strcmp(sci_type, "none") )
+        d_cfg->arch.arm_sci_type =3D XEN_DOMCTL_CONFIG_ARM_SCI_NONE;
+    else if ( !strcmp(sci_type, "scmi_smc") )
+        d_cfg->arch.arm_sci_type =3D XEN_DOMCTL_CONFIG_ARM_SCI_SCMI_SMC;
+    else
+    {
+        printk(XENLOG_ERR "xen,sci_type in not valid (%s) for domain %s\n"=
,
+               sci_type, dt_node_name(node));
+        return -EINVAL;
+    }
+
+    return 0;
+}
+
 int __init arch_parse_dom0less_node(struct dt_device_node *node,
                                     struct boot_domain *bd)
 {
@@ -288,7 +318,9 @@ int __init arch_parse_dom0less_node(struct dt_device_no=
de *node,
=20
     d_cfg->arch.gic_version =3D XEN_DOMCTL_CONFIG_GIC_NATIVE;
     d_cfg->flags |=3D XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap;
-    d_cfg->arch.arm_sci_type =3D XEN_DOMCTL_CONFIG_ARM_SCI_NONE;
+
+    if ( domu_dt_sci_parse(node, d_cfg) )
+        panic("Error getting SCI configuration\n");
=20
     if ( !dt_property_read_u32(node, "nr_spis", &d_cfg->arch.nr_spis) )
     {
diff --git a/xen/arch/arm/firmware/Kconfig b/xen/arch/arm/firmware/Kconfig
index bbf88fbb9a..5c5f0880c4 100644
--- a/xen/arch/arm/firmware/Kconfig
+++ b/xen/arch/arm/firmware/Kconfig
@@ -25,7 +25,9 @@ config SCMI_SMC
 	  doorbell mechanism and Shared Memory for transport ("arm,scmi-smc"
 	  compatible only). The value of "arm,smc-id" DT property from SCMI
 	  firmware node is used to trap and forward corresponding SCMI SMCs
-	  to firmware running at EL3, for calls coming from the hardware domain.
+	  to firmware running at EL3, for calls coming from the hardware domain o=
r
+	  driver domain.
+	  Use with EL3 firmware which supports only single SCMI OSPM agent.
=20
 endchoice
=20
diff --git a/xen/arch/arm/firmware/scmi-smc.c b/xen/arch/arm/firmware/scmi-=
smc.c
index 13d1137592..edc54b11b6 100644
--- a/xen/arch/arm/firmware/scmi-smc.c
+++ b/xen/arch/arm/firmware/scmi-smc.c
@@ -14,6 +14,8 @@
 #include <xen/device_tree.h>
 #include <xen/errno.h>
 #include <xen/init.h>
+#include <xen/iocap.h>
+#include <xen/param.h>
 #include <xen/sched.h>
 #include <xen/types.h>
=20
@@ -22,7 +24,11 @@
=20
 #define SCMI_SMC_ID_PROP   "arm,smc-id"
=20
+static bool __ro_after_init opt_scmi_smc_passthrough =3D false;
+boolean_param("scmi-smc-passthrough", opt_scmi_smc_passthrough);
+
 static uint32_t __ro_after_init scmi_smc_id;
+static struct domain __read_mostly *scmi_dom;
=20
 /*
  * Check if provided SMC Function Identifier matches the one known by the =
SCMI
@@ -50,7 +56,7 @@ static bool scmi_handle_smc(struct cpu_user_regs *regs)
         return false;
=20
     /* Only the hardware domain should use SCMI calls */
-    if ( !is_hardware_domain(current->domain) )
+    if ( scmi_dom !=3D current->domain )
     {
         gdprintk(XENLOG_WARNING, "SCMI: Unprivileged access attempt\n");
         return false;
@@ -75,12 +81,45 @@ static bool scmi_handle_smc(struct cpu_user_regs *regs)
     return true;
 }
=20
+static int
+scmi_smc_domain_sanitise_config(struct xen_domctl_createdomain *config)
+{
+    if ( config->arch.arm_sci_type !=3D XEN_DOMCTL_CONFIG_ARM_SCI_NONE &&
+         config->arch.arm_sci_type !=3D XEN_DOMCTL_CONFIG_ARM_SCI_SCMI_SMC=
 )
+        return -EINVAL;
+
+    return 0;
+}
+
 static int scmi_smc_domain_init(struct domain *d,
                                 struct xen_domctl_createdomain *config)
 {
-    if ( !is_hardware_domain(d) )
+    /*
+     * scmi_passthrough is not enabled:
+     * - proceed only for hw_domain
+     * - fail if guest domain has SCMI enabled.
+     */
+    if ( !opt_scmi_smc_passthrough && !is_hardware_domain(d) )
+    {
+        if ( config->arch.arm_sci_type =3D=3D XEN_DOMCTL_CONFIG_ARM_SCI_SC=
MI_SMC )
+            return -EINVAL;
+        else
+            return 0;
+    }
+    /*
+     * scmi_passthrough is enabled:
+     * - ignore hw_domain
+     * - proceed only for domain with SCMI enabled.
+     */
+    if ( opt_scmi_smc_passthrough &&
+         (config->arch.arm_sci_type =3D=3D XEN_DOMCTL_CONFIG_ARM_SCI_NONE =
||
+          is_hardware_domain(d)) )
         return 0;
=20
+    if ( scmi_dom )
+        return -EEXIST;
+
+    scmi_dom =3D d;
     d->arch.sci_enabled =3D true;
     printk(XENLOG_DEBUG "SCMI: %pd init\n", d);
     return 0;
@@ -88,12 +127,77 @@ static int scmi_smc_domain_init(struct domain *d,
=20
 static void scmi_smc_domain_destroy(struct domain *d)
 {
-    if ( !is_hardware_domain(d) )
+    if ( scmi_dom && scmi_dom !=3D d )
         return;
=20
+    scmi_dom =3D NULL;
+    d->arch.sci_enabled =3D false;
     printk(XENLOG_DEBUG "SCMI: %pd destroy\n", d);
 }
=20
+/*
+ * Handle Dom0 SCMI SMC specific DT nodes
+ *
+ * if scmi_smc_passthrough=3Dfalse:
+ * - Copy SCMI nodes into Dom0 device tree.
+ * if scmi_smc_passthrough=3Dtrue:
+ * - skip SCMI nodes from Dom0 DT
+ * - give dom0 control access to SCMI shmem MMIO, so SCMI can be passed
+ *   through to guest.
+ */
+static bool scmi_smc_dt_handle_node(struct domain *d,
+                                    struct dt_device_node *node)
+{
+    static const struct dt_device_match shmem_matches[] __initconst =3D {
+        DT_MATCH_COMPATIBLE("arm,scmi-shmem"),
+        { /* sentinel */ },
+    };
+    static const struct dt_device_match scmi_matches[] __initconst =3D {
+        DT_MATCH_PATH("/firmware/scmi"),
+        { /* sentinel */ },
+    };
+
+    /* skip scmi shmem node for dom0 if scmi not enabled */
+    if ( dt_match_node(shmem_matches, node) && !sci_domain_is_enabled(d) )
+    {
+        dt_dprintk("Skip scmi shmem node\n");
+        return true;
+    }
+
+    /*
+     * skip scmi node for dom0 if scmi not enabled, but give dom0 control
+     * access to SCMI shmem
+     */
+    if ( dt_match_node(scmi_matches, node) && !sci_domain_is_enabled(d) )
+    {
+        struct dt_device_node *shmem_node;
+        const __be32 *prop;
+        u64 paddr, size;
+        int ret;
+
+        /* give dom0 control access to SCMI shmem */
+        prop =3D dt_get_property(node, "shmem", NULL);
+        if ( !prop )
+            return true;
+
+        shmem_node =3D dt_find_node_by_phandle(be32_to_cpu(*prop));
+        if ( !shmem_node )
+            return true;
+
+        ret =3D dt_device_get_address(shmem_node, 0, &paddr, &size);
+        if ( ret )
+            return true;
+
+        ret =3D iomem_permit_access(d, paddr_to_pfn(paddr),
+                                  paddr_to_pfn(paddr + size - 1));
+
+        dt_dprintk("Skip scmi node\n");
+        return true;
+    }
+
+    return false;
+}
+
 static int __init scmi_check_smccc_ver(void)
 {
     if ( smccc_ver < ARM_SMCCC_VERSION_1_1 )
@@ -108,8 +212,10 @@ static int __init scmi_check_smccc_ver(void)
=20
 static const struct sci_mediator_ops scmi_smc_ops =3D {
     .handle_call =3D scmi_handle_smc,
+    .domain_sanitise_config =3D scmi_smc_domain_sanitise_config,
     .domain_init =3D scmi_smc_domain_init,
     .domain_destroy =3D scmi_smc_domain_destroy,
+    .dom0_dt_handle_node =3D scmi_smc_dt_handle_node,
 };
=20
 /* Initialize the SCMI layer based on SMCs and Device-tree */
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 16:40:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 16:40:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099668.1453429 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urffr-0004mu-2U; Thu, 28 Aug 2025 16:40:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099668.1453429; Thu, 28 Aug 2025 16:40:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urffq-0004mn-Vu; Thu, 28 Aug 2025 16:40:30 +0000
Received: by outflank-mailman (input) for mailman id 1099668;
 Thu, 28 Aug 2025 16:40:29 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fCus=3I=epam.com=Oleksii_Moisieiev@srs-se1.protection.inumbo.net>)
 id 1urffp-0004ma-5B
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 16:40:29 +0000
Received: from DB3PR0202CU003.outbound.protection.outlook.com
 (mail-northeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c200::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b3b8630c-842d-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 18:40:27 +0200 (CEST)
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com (2603:10a6:102:32e::21)
 by DB9PR03MB7705.eurprd03.prod.outlook.com (2603:10a6:10:2c7::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.15; Thu, 28 Aug
 2025 16:40:25 +0000
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::f12d:7394:bbe3:dfc]) by PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::f12d:7394:bbe3:dfc%6]) with mapi id 15.20.9052.014; Thu, 28 Aug 2025
 16:40: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>
X-Inumbo-ID: b3b8630c-842d-11f0-8adc-4578a1afcccb
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=H8r7yLMgwr7RtrrSjW+HIc2rCgr88k0p7iWU9+N9JykTm3TEWFHfD5bPgE+815ruqPGkq/fe+B2r47EhjCJDpQKjD2R+tRb868wJVKnuY9OtFTzeGPahQHLFDS1BmAJps3sclOHHrzVOspSvtUtUwVESYXeOqKIFwfEbtCooIQsFsC26o4bY9R96OqL4EKyIrPtOw+hSRgA6R2fSHL8c/clwakHJxx1i995CPNmO+xpM2YMHBXNqNpIQyfsWLHPjqTcbyVOBUhbYkA+6q+rsHJ4nUn2hvPsAyzJsUq0Md4PKTWlmwWlilE2kSwHT4DjKBzBAOREVfBfWvcPfXsJFBw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=B8k3yZjVyBH+b7FNfsMBari909JIcU5Yo1qjKxByf0Q=;
 b=E0sBvuV6UtP2xS1Ckgsj78oUtv+nBp+OQ+s3jsU5ZbLl05PrGjXusTUQ4T50ZnIcsfy96Beopfqs3sGooK0JTFLUtBN8tHuoHoRZIuCtIXh2PkevYvTSK+uFH0UpT1hl1l49hMRvanSGLnwX3C9rRb+xaRAFbEjjJ0lbeB/rLGgvMGmevzoNy/BSJmZ+GZ9P5gNf05Eunptq4k1QXlvd2VcI+22NuZhEWCmiCa15i6TnGRSmLEJAcvpu747ToxNxEZQji1fZ75Rc5i0FxoJNIzux98UGAl18pnhD3dOiKp//0TFeP01rkb9ic91mU7/xsTEibxPnTFzPqOEdyTe6tQ==
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=B8k3yZjVyBH+b7FNfsMBari909JIcU5Yo1qjKxByf0Q=;
 b=DkEV1gBsocUReeMRWlD8SwzSUaOhxtA8dX/trUQWziDs/0nQ/1TGH3ISxga8S/yHIvPQD5wvy6FynURKaMHy5oScZKsOiwjS28eVMf8nyJA7OM7u/xUfNLpSbagGRR9QVDMHZU71x2eba44HSkKsVRXXyY+ipsaOGTUwod4n7a7H3GhworBJcVoCsDgZe/p88jhD0Ca2z90hAFW2oBEH284K/jHNPktKGgf8erD68BUqegozsdjLM+FmhYfGfqhAgqZ+FEWJxbmqnFE34qWfFuPu5M/+jMqnS1HiOLum0orDKb63MC08B18t/kJ8NJoUQg0FzZGJmE2+eLnQk2a0wg==
From: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Bertrand Marquis <bertrand.marquis@arm.com>, Jan
 Beulich <jbeulich@suse.com>, Juergen Gross <jgross@suse.com>, Julien Grall
	<julien@xen.org>, Michal Orzel <michal.orzel@amd.com>, Oleksii Moisieiev
	<Oleksii_Moisieiev@epam.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Grygorii Strashko
	<grygorii_strashko@epam.com>
Subject: [PATCH v6 2/4] xen/arm: scmi-smc: update to be used under sci
 subsystem
Thread-Topic: [PATCH v6 2/4] xen/arm: scmi-smc: update to be used under sci
 subsystem
Thread-Index: AQHcGDp0dNGz8RLSIkyOshrRMf8UOQ==
Date: Thu, 28 Aug 2025 16:40:25 +0000
Message-ID:
 <8e7e9dcdd643b6681a6127d56b68536b987141af.1756399156.git.oleksii_moisieiev@epam.com>
References: <cover.1756399156.git.oleksii_moisieiev@epam.com>
In-Reply-To: <cover.1756399156.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: PAVPR03MB8946:EE_|DB9PR03MB7705:EE_
x-ms-office365-filtering-correlation-id: bc58d78c-4209-4394-c65a-08dde65196f5
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|7416014|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?4i4yb5C5Ca1WronsijnHgvw7aONqy9mFxpdThYOscFMkFa46dSZsRceFef?=
 =?iso-8859-1?Q?QzlskWSWn07krrWqzkw+pWWCtVOSoViEJ5pVGZo42Pf/itgSH+R09mRZgO?=
 =?iso-8859-1?Q?2IaYPgc6cnkgc2SumaVeITvvxtRKIMiSX3GvWXCQy/8u6LCpIz5gk+dfiL?=
 =?iso-8859-1?Q?CB3FXKO4T1+yEfg5uADRHBy/NvdoUUg+gey2f1AjGlx6y9AaLVBFQGnT6M?=
 =?iso-8859-1?Q?8f6f37P5RTvYQz12LLmsH3bMbOtOmc7xGeaaEwLH18Ee924euiswd0r1bj?=
 =?iso-8859-1?Q?3fkXqsdfWH2lLCmPSMhHArBKlL79dm3fbzI+VOor6UN9A7TfQg72qXHxjF?=
 =?iso-8859-1?Q?/uuNiuqekspbIV+9oYL6db3NUcir9Zs+nJNysmXH1Cml01u+n/NJC17iR3?=
 =?iso-8859-1?Q?nZcTOTirP14l7QfWEaIak0Y2zGMwFiDg67S5rOZaMftY9LpmdLS4GalLh9?=
 =?iso-8859-1?Q?wHxT7G0/FXgHxiFmSuXiL16uct0/B3edQfPEPKBK8UKQcQQN0AvL/wZGte?=
 =?iso-8859-1?Q?c3pvwsrH/muc0qh6tGiZJj/Y+wVrtkYCYXjsYFD7UFaTe8adfH6EYWGVcT?=
 =?iso-8859-1?Q?eSANjS71qCF4hcR2IzYPu6zp9pgt/tWuSiBCjXS7bRcTmFIHuLGOktrR7e?=
 =?iso-8859-1?Q?RBq7NABWdWLxGA5xoHf6fcdnNiXAM9zPfURCm0p6y9BD+Y4/AjMybD7ONJ?=
 =?iso-8859-1?Q?KdmzCXXMCsGOMV2LV10NvfUHHwUzwg9O0av3Yo6jmNphz6cBB7tSvt4eNZ?=
 =?iso-8859-1?Q?HWEI+ln+qPfGNmFW4nl4ih01NmQskgUHBjYzITRIeJcJisxQpLZ1+5+3JD?=
 =?iso-8859-1?Q?iSYIMSbM1ofvFySni1mlaRXjNbu0g/bVqXM+J/SGBo1W0i4FM0iAeaQPxW?=
 =?iso-8859-1?Q?TrSSv42WXHPl918Gf82ByeMXNoviZh31TyMQ7CgAaQUzrNrj2GM0RTZ6dQ?=
 =?iso-8859-1?Q?VWM2XneLjXN9HypG3mbMewBqss42Tpbv3LMZM+0hJ8u0SCPVRnBNu+UMj9?=
 =?iso-8859-1?Q?MXPKq4ikaqm3Sm2dgrfT63C+ZF7g/dV+plMI5KIgl/5mLP/W0b+V12Ttvz?=
 =?iso-8859-1?Q?NGr8LdYu/e5p5zHdPaK55FMi4kiSwL7XKRoOgLH9M9nxkEW7c8fU8iuKm7?=
 =?iso-8859-1?Q?SWvV+iKrH42rSU179kAJO7RTGwmBHM8FoHANEqfXSi1WtHVtZYQUXq9FU3?=
 =?iso-8859-1?Q?5B9ieogEf7dXYFIgQrmDBMtlTwb7OcHZ4Jq9xjPmoJMn04qX8/27pNJ1Pn?=
 =?iso-8859-1?Q?eEjBvc5rijb+kf82/nm8J00U3QPJHkZGt2WFdnMYF7QuLWp2q2VMiQCFND?=
 =?iso-8859-1?Q?qVQNub4DWxlWXFb5h+ywwJFN4IoJFtyiS0kULXkCplNqXIyIK4oktO7dtn?=
 =?iso-8859-1?Q?yQrbu2Ofs/KuJb1d6gDgwj/7RMu/u3Nqp9Hi/yEZPRerNSJxI9lVStXInr?=
 =?iso-8859-1?Q?NfsBcGGCJGEzR0e1TEQh7zHVgDM4Rpg+Z3FMgbFGhweXRdQYKn19DFaNuK?=
 =?iso-8859-1?Q?G/TfXY6doyUoUsMwgeXuiQX+xeC7tygLarKlpmMbYYmA=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB8946.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?4dZd2tMvKFiX67w/38zoJfgZFBwg2XhEmI5jBbcbFzCk//HxurOTxkF4L9?=
 =?iso-8859-1?Q?d3alA4AG6VRvsrixm1yyLU3PX9ERNLLMLC3hdsqAzg5SpA6RjJ9ktL4TJW?=
 =?iso-8859-1?Q?MrfJL6Vc0UWLQY/CfT/t/BnTmfqYtCgDFgf8q8G00EzYq/j1ZFAOdVhtd2?=
 =?iso-8859-1?Q?WCiUUeZ4TT3JRAMnIqtNSCTWRCmN0VnQ6v3swxEDUpqN7K+N06vCxHPuz0?=
 =?iso-8859-1?Q?ddWPRmS91IpFA8yuOhr0hqUuvhbLwRoBe5KFvDXhUf4iw+aIgSeere1+0n?=
 =?iso-8859-1?Q?glVhqTLkhxcocu8oONU8owCzyfBIUBBRHVEPzVZFzAoRZ5HNUcYOU5wuHu?=
 =?iso-8859-1?Q?rO1BUcJ5Jq2pDYWDNIk+3khC/934Cqf3x7eNm6Y7mATU9XNZrdSjM7Y0IB?=
 =?iso-8859-1?Q?pKnfCL7kHAZJiBFQJhBnm5eJxQtAyaor7U61vF0NFhOwaLUk4B8bpPggbJ?=
 =?iso-8859-1?Q?hhJdieonT5xzL2LZ+KBu93zc9gLeZPQRSCnhhX+UdMt64rFGFgbL1J5yIZ?=
 =?iso-8859-1?Q?nomF9X7id4kFUrBC2hR2XNOvFKh9IvJc6PzC/DdkJ/NEdeV6BdcwbJiwfK?=
 =?iso-8859-1?Q?24CV4hg11LfbKPOqIzELnSxSxHuWn6CXTOufCRSJi9Tlv+/oTMrCIkcYqB?=
 =?iso-8859-1?Q?yGYouskMVGDPlWCxrxUM4C+Bk6ukaQZXnXXpff1PIiqJQgutXckgKYxCDR?=
 =?iso-8859-1?Q?Xg1Y/y8f+CfkkutJiNj//03v/0S3E1VzMSSUH0WUQlSETdCpG5rk58R+DU?=
 =?iso-8859-1?Q?Vq8H6Xhic6m76xDBQ1jBphGZAPiwyaQRdhHJYLv6jO4dIRziTcowCkhm00?=
 =?iso-8859-1?Q?+ED11YPPWZLJlff6uLND2BlZ1hfH60ZOHpveE2eaHCMt8nxWhuzkqhCgsB?=
 =?iso-8859-1?Q?mVNsfqVRQ8ruat7Tz+G78q8bgdQiMHk5g49D5E9dQ8XbPqGpcV6Y9bwvz2?=
 =?iso-8859-1?Q?L1AInojMKG2Z64zMpcvQOjBRkKUMIb1CXqkFY5shzZCpdWvIOULBQJHmeH?=
 =?iso-8859-1?Q?c/McNihMuMkD08BA+XiZT5jR718jHDNpLPMosQ46kSeiinlOB95GKQSJbd?=
 =?iso-8859-1?Q?+N5KSjzW8a1yFWP1X0jhE+/eOi8S7XrSaV9RLN1wSSwKeJewyPyTTQWC7H?=
 =?iso-8859-1?Q?E6D2DWsrDjQAFsEtQvwow/lyJZ8O9AjK8MdYGILZl00bpI8g/Ptv/9MR9J?=
 =?iso-8859-1?Q?0bBO/EAxG5kcytDcPjXa8FwLeUbTUgUwuLVfG1rAMubn9GVoCuveQKfLWH?=
 =?iso-8859-1?Q?6f01NoJLjhLXtAGJRLzrM/fWot9y8Vu22RiqIWcSs96lo+LiUy+vH45Vuy?=
 =?iso-8859-1?Q?SGP/ausdcbuxHVOHyFCT3WOO7G8au+j9t0+UhiDEP/5Ma+FfJLHhm199xJ?=
 =?iso-8859-1?Q?tqCJPDYhY5+lyfRnBMKzLrfrLu/vJo7TAr1fPIWcCIHz/wdwiEFIyya+gu?=
 =?iso-8859-1?Q?67MJooWFKSUfOBaxcv7R+4we3GTwzs5Y98wVGZQIc7TGwzQMNU4bYFtaUQ?=
 =?iso-8859-1?Q?9BTzSJtfB6vvDQlxrwNtpTKCzkam1IAwhtlpiXkcJlLogRFshgayIPrrMa?=
 =?iso-8859-1?Q?YUjvKtw7UPsi/HV9T7FLMZzntVCvpq++vn5lMexJhmL2BgnXnGDNN3p1P8?=
 =?iso-8859-1?Q?JxhP1GqMO3iAGHsCJ3F4X8KOR4C9nFjBJvJ21/bh0j1lFTULb+e5wmeg?=
 =?iso-8859-1?Q?=3D=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: PAVPR03MB8946.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: bc58d78c-4209-4394-c65a-08dde65196f5
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Aug 2025 16:40:25.5397
 (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: Pd6OAw0jS/S7rg00jZMSadmr6gKPVSe912lvrgqY7vZ54AopYOruIdERP+6LMpbmkYFyLsf3WYuFpOVYBW46Iiq6muteabxWmtp3HUgDXSA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB7705

From: Grygorii Strashko <grygorii_strashko@epam.com>

The introduced SCI (System Control Interface) subsystem provides unified
interface to integrate in Xen SCI drivers which adds support for ARM
firmware (EL3, SCP) based software interfaces (like SCMI) that are used in
system management. The SCI subsystem allows to add drivers for different FW
interfaces or have different drivers for the same FW interface (for example=
,
SCMI with different transports).

This patch updates SCMI over SMC calls handling layer, introduced by
commit 3e322bef8bc0 ("xen/arm: firmware: Add SCMI over SMC calls handling
layer"), to be SCI driver:
- convert to DT device;
- convert to SCI Xen interface.

There are no functional changes in general, the driver is just adopted
to the SCI interface.

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---

Changes in v6:
- add R-b tag

 xen/arch/arm/firmware/Kconfig                | 13 ++-
 xen/arch/arm/firmware/scmi-smc.c             | 93 +++++++++++---------
 xen/arch/arm/include/asm/firmware/scmi-smc.h | 41 ---------
 xen/arch/arm/vsmc.c                          |  5 +-
 xen/include/public/arch-arm.h                |  1 +
 5 files changed, 64 insertions(+), 89 deletions(-)
 delete mode 100644 xen/arch/arm/include/asm/firmware/scmi-smc.h

diff --git a/xen/arch/arm/firmware/Kconfig b/xen/arch/arm/firmware/Kconfig
index fc7918c7fc..bbf88fbb9a 100644
--- a/xen/arch/arm/firmware/Kconfig
+++ b/xen/arch/arm/firmware/Kconfig
@@ -8,9 +8,18 @@ config ARM_SCI
=20
 menu "Firmware Drivers"
=20
+choice
+	prompt "ARM SCI driver type"
+	default SCMI_SMC
+	help
+	Choose which ARM SCI driver to enable.
+
+config ARM_SCI_NONE
+	bool "none"
+
 config SCMI_SMC
 	bool "Forward SCMI over SMC calls from hwdom to EL3 firmware"
-	default y
+	select ARM_SCI
 	help
 	  This option enables basic awareness for SCMI calls using SMC as
 	  doorbell mechanism and Shared Memory for transport ("arm,scmi-smc"
@@ -18,4 +27,6 @@ config SCMI_SMC
 	  firmware node is used to trap and forward corresponding SCMI SMCs
 	  to firmware running at EL3, for calls coming from the hardware domain.
=20
+endchoice
+
 endmenu
diff --git a/xen/arch/arm/firmware/scmi-smc.c b/xen/arch/arm/firmware/scmi-=
smc.c
index 33473c04b1..13d1137592 100644
--- a/xen/arch/arm/firmware/scmi-smc.c
+++ b/xen/arch/arm/firmware/scmi-smc.c
@@ -9,6 +9,7 @@
  * Copyright 2024 NXP
  */
=20
+#include <asm/device.h>
 #include <xen/acpi.h>
 #include <xen/device_tree.h>
 #include <xen/errno.h>
@@ -16,12 +17,11 @@
 #include <xen/sched.h>
 #include <xen/types.h>
=20
+#include <asm/firmware/sci.h>
 #include <asm/smccc.h>
-#include <asm/firmware/scmi-smc.h>
=20
 #define SCMI_SMC_ID_PROP   "arm,smc-id"
=20
-static bool __ro_after_init scmi_enabled;
 static uint32_t __ro_after_init scmi_smc_id;
=20
 /*
@@ -41,14 +41,11 @@ static bool scmi_is_valid_smc_id(uint32_t fid)
  *
  * Returns true if SMC was handled (regardless of response), false otherwi=
se.
  */
-bool scmi_handle_smc(struct cpu_user_regs *regs)
+static bool scmi_handle_smc(struct cpu_user_regs *regs)
 {
     uint32_t fid =3D (uint32_t)get_user_reg(regs, 0);
     struct arm_smccc_res res;
=20
-    if ( !scmi_enabled )
-        return false;
-
     if ( !scmi_is_valid_smc_id(fid) )
         return false;
=20
@@ -78,49 +75,45 @@ bool scmi_handle_smc(struct cpu_user_regs *regs)
     return true;
 }
=20
-static int __init scmi_check_smccc_ver(void)
+static int scmi_smc_domain_init(struct domain *d,
+                                struct xen_domctl_createdomain *config)
 {
-    if ( smccc_ver < ARM_SMCCC_VERSION_1_1 )
-    {
-        printk(XENLOG_WARNING
-               "SCMI: No SMCCC 1.1 support, SCMI calls forwarding disabled=
\n");
-        return -ENOSYS;
-    }
+    if ( !is_hardware_domain(d) )
+        return 0;
=20
+    d->arch.sci_enabled =3D true;
+    printk(XENLOG_DEBUG "SCMI: %pd init\n", d);
     return 0;
 }
=20
-static int __init scmi_dt_init_smccc(void)
+static void scmi_smc_domain_destroy(struct domain *d)
 {
-    static const struct dt_device_match scmi_ids[] __initconst =3D
-    {
-        /* We only support "arm,scmi-smc" binding for now */
-        DT_MATCH_COMPATIBLE("arm,scmi-smc"),
-        { /* sentinel */ },
-    };
-    const struct dt_device_node *scmi_node;
-    int ret;
+    if ( !is_hardware_domain(d) )
+        return;
=20
-    /* If no SCMI firmware node found, fail silently as it's not mandatory=
 */
-    scmi_node =3D dt_find_matching_node(NULL, scmi_ids);
-    if ( !scmi_node )
-        return -EOPNOTSUPP;
+    printk(XENLOG_DEBUG "SCMI: %pd destroy\n", d);
+}
=20
-    ret =3D dt_property_read_u32(scmi_node, SCMI_SMC_ID_PROP, &scmi_smc_id=
);
-    if ( !ret )
+static int __init scmi_check_smccc_ver(void)
+{
+    if ( smccc_ver < ARM_SMCCC_VERSION_1_1 )
     {
-        printk(XENLOG_ERR "SCMI: No valid \"%s\" property in \"%s\" DT nod=
e\n",
-               SCMI_SMC_ID_PROP, scmi_node->full_name);
-        return -ENOENT;
+        printk(XENLOG_WARNING
+               "SCMI: No SMCCC 1.1 support, SCMI calls forwarding disabled=
\n");
+        return -ENOSYS;
     }
=20
-    scmi_enabled =3D true;
-
     return 0;
 }
=20
+static const struct sci_mediator_ops scmi_smc_ops =3D {
+    .handle_call =3D scmi_handle_smc,
+    .domain_init =3D scmi_smc_domain_init,
+    .domain_destroy =3D scmi_smc_domain_destroy,
+};
+
 /* Initialize the SCMI layer based on SMCs and Device-tree */
-static int __init scmi_init(void)
+static int __init scmi_dom0_init(struct dt_device_node *dev, const void *d=
ata)
 {
     int ret;
=20
@@ -134,22 +127,36 @@ static int __init scmi_init(void)
     if ( ret )
         return ret;
=20
-    ret =3D scmi_dt_init_smccc();
-    if ( ret =3D=3D -EOPNOTSUPP )
-        return ret;
+    ret =3D dt_property_read_u32(dev, SCMI_SMC_ID_PROP, &scmi_smc_id);
+    if ( !ret )
+    {
+        printk(XENLOG_ERR "SCMI: No valid \"%s\" property in \"%s\" DT nod=
e\n",
+               SCMI_SMC_ID_PROP, dt_node_full_name(dev));
+        return -ENOENT;
+    }
+
+    ret =3D sci_register(&scmi_smc_ops);
     if ( ret )
-        goto err;
+    {
+        printk(XENLOG_ERR "SCMI: mediator already registered (ret =3D %d)\=
n",
+               ret);
+        return ret;
+    }
=20
     printk(XENLOG_INFO "Using SCMI with SMC ID: 0x%x\n", scmi_smc_id);
=20
     return 0;
-
- err:
-    printk(XENLOG_ERR "SCMI: Initialization failed (ret =3D %d)\n", ret);
-    return ret;
 }
=20
-__initcall(scmi_init);
+static const struct dt_device_match scmi_smc_match[] __initconst =3D {
+    DT_MATCH_COMPATIBLE("arm,scmi-smc"),
+    { /* sentinel */ },
+};
+
+DT_DEVICE_START(scmi_smc, "SCMI SMC DOM0", DEVICE_FIRMWARE)
+    .dt_match =3D scmi_smc_match,
+    .init =3D scmi_dom0_init,
+DT_DEVICE_END
=20
 /*
  * Local variables:
diff --git a/xen/arch/arm/include/asm/firmware/scmi-smc.h b/xen/arch/arm/in=
clude/asm/firmware/scmi-smc.h
deleted file mode 100644
index 6b1a164a40..0000000000
--- a/xen/arch/arm/include/asm/firmware/scmi-smc.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-/*
- * xen/arch/arm/include/asm/firmware/scmi-smc.h
- *
- * ARM System Control and Management Interface (SCMI) over SMC
- * Generic handling layer
- *
- * Andrei Cherechesu <andrei.cherechesu@nxp.com>
- * Copyright 2024 NXP
- */
-
-#ifndef __ASM_SCMI_SMC_H__
-#define __ASM_SCMI_SMC_H__
-
-#include <xen/types.h>
-
-struct cpu_user_regs;
-
-#ifdef CONFIG_SCMI_SMC
-
-bool scmi_handle_smc(struct cpu_user_regs *regs);
-
-#else
-
-static inline bool scmi_handle_smc(struct cpu_user_regs *regs)
-{
-    return false;
-}
-
-#endif /* CONFIG_SCMI_SMC */
-
-#endif /* __ASM_SCMI_H__ */
-
-/*
- * Local variables:
- * mode: C
- * c-file-style: "BSD"
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- */
diff --git a/xen/arch/arm/vsmc.c b/xen/arch/arm/vsmc.c
index 2469738fcc..78d5bdf56f 100644
--- a/xen/arch/arm/vsmc.c
+++ b/xen/arch/arm/vsmc.c
@@ -21,7 +21,6 @@
 #include <asm/traps.h>
 #include <asm/vpsci.h>
 #include <asm/platform.h>
-#include <asm/firmware/scmi-smc.h>
=20
 /* Number of functions currently supported by Hypervisor Service. */
 #define XEN_SMCCC_FUNCTION_COUNT 3
@@ -233,7 +232,7 @@ static bool handle_sip(struct cpu_user_regs *regs)
     if ( platform_smc(regs) )
         return true;
=20
-    return scmi_handle_smc(regs);
+    return sci_handle_call(regs);
 }
=20
 /*
@@ -301,8 +300,6 @@ static bool vsmccc_handle_call(struct cpu_user_regs *re=
gs)
             break;
         case ARM_SMCCC_OWNER_SIP:
             handled =3D handle_sip(regs);
-            if ( !handled )
-                handled =3D sci_handle_call(regs);
             break;
         case ARM_SMCCC_OWNER_TRUSTED_APP ... ARM_SMCCC_OWNER_TRUSTED_APP_E=
ND:
         case ARM_SMCCC_OWNER_TRUSTED_OS ... ARM_SMCCC_OWNER_TRUSTED_OS_END=
:
diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
index 55eed9992c..095b1a23e3 100644
--- a/xen/include/public/arch-arm.h
+++ b/xen/include/public/arch-arm.h
@@ -328,6 +328,7 @@ DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t);
 #define XEN_DOMCTL_CONFIG_TEE_FFA       2
=20
 #define XEN_DOMCTL_CONFIG_ARM_SCI_NONE      0
+#define XEN_DOMCTL_CONFIG_ARM_SCI_SCMI_SMC  1
=20
 struct xen_arch_domainconfig {
     /* IN/OUT */
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 16:40:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 16:40:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099670.1453444 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urffs-00053u-3a; Thu, 28 Aug 2025 16:40:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099670.1453444; Thu, 28 Aug 2025 16:40: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 1urffr-00052o-S9; Thu, 28 Aug 2025 16:40:31 +0000
Received: by outflank-mailman (input) for mailman id 1099670;
 Thu, 28 Aug 2025 16:40:31 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fCus=3I=epam.com=Oleksii_Moisieiev@srs-se1.protection.inumbo.net>)
 id 1urffq-0004ma-RN
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 16:40:31 +0000
Received: from DB3PR0202CU003.outbound.protection.outlook.com
 (mail-northeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c200::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b4583f2c-842d-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 18:40:28 +0200 (CEST)
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com (2603:10a6:102:32e::21)
 by DB9PR03MB7705.eurprd03.prod.outlook.com (2603:10a6:10:2c7::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.15; Thu, 28 Aug
 2025 16:40:25 +0000
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::f12d:7394:bbe3:dfc]) by PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::f12d:7394:bbe3:dfc%6]) with mapi id 15.20.9052.014; Thu, 28 Aug 2025
 16:40: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>
X-Inumbo-ID: b4583f2c-842d-11f0-8adc-4578a1afcccb
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xjhsh9VSueEVae9Fv2lSz/ELdVuCtIFxhfm2H9s19dtQ13GeeZDViWwJwrvlKEzBC4e++g0O8FfgojVlNZQlsOQFKaXw3P9wE9BR2wHdPd4puXR/wrebJdF8kqQw80LSVVNBPkI/QidYdqEQvegATvZb8Z6RzMJplWfdsNxlse8CfhH7eGM8Ji9ebyCGfH1/n5MrDVnUY3gcbmINnO1bgcuCMnwk4CQ1HhI7T1zyqRQ8E+T3LLVa2aDjTjrbGlruH0xs/85HZdRIcdEb1qQiMvS7GekFuV+QUop8aZByegIXI5l1L93T3QVAredjImIdZKrkQn+SBySn0xAU2DrK/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=c++U27lSdSyCTRoYi9bnrQEHTsDjpkgg6K4INEZKcSk=;
 b=nbbHfDBqCqKKvA7xgTrBCdRDBz7rpYFYb+ksG0wBDOu9qV1nTREwHLO/zlykloisZ3KKTNubIVVgbsMixCShcoak9Xreh5Usi98/EHHFqNwx37M1XLQ8SjnQM3aYhBs8floujucyLaXQQVzQNRPhvlmiChXlNt9lAMpYnM7FpdfbvxTLPygOGaZNKBTLTm4bWMSa8nW9TbqPd6gq6J+lgOR0zSFjiIx71KNi8xbmQyenzTarjasNBmZ+832jQ1JATi9Zjnephb8doOHAi68AddG2mdq/6s6OgUw/skAOsGQu+mGcYcfBFrSZbjjvHfPrjE1Yaz8IpkoaRK3QDhVj8A==
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=c++U27lSdSyCTRoYi9bnrQEHTsDjpkgg6K4INEZKcSk=;
 b=fUjKkDfBSFJITF06FaOEI2ysJe1p9Yyxeq0Bq317UH9d4lZwtpMdekSkNbwJ3PVyDMPVyZ8Yrul1eVv7vBYu6zrygw0t3iuV3+7p4Xbz7JwkV/zj6YVEE+bfXpQ5ZZLz7in0zrj2fJHkqBg6ze5W2v+7sObMgxy0EnMiUauvMccFBbo+8peNTtcpjvXdDS9JXtBFK2P5Ui2ML16es3zMX95g0/ec2zXW1JUtixrwUt5/1aWYjuoLrf2AUCrUFuGC8SmEbM9eL1RlBxXiVEHw/fqbooIS/Qhx2CSbZ7kfPz17OHLrm6lzhpTY/NmpEioQAC+o8Ga+vFIgQLFJXWgIww==
From: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Bertrand Marquis <bertrand.marquis@arm.com>, Jan
 Beulich <jbeulich@suse.com>, Juergen Gross <jgross@suse.com>, Julien Grall
	<julien@xen.org>, Michal Orzel <michal.orzel@amd.com>, Oleksii Moisieiev
	<Oleksii_Moisieiev@epam.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Grygorii Strashko
	<grygorii_strashko@epam.com>
Subject: [PATCH v6 1/4] xen/arm: add generic SCI subsystem
Thread-Topic: [PATCH v6 1/4] xen/arm: add generic SCI subsystem
Thread-Index: AQHcGDp0HddMWoIUiESW9wlppK7Vcg==
Date: Thu, 28 Aug 2025 16:40:25 +0000
Message-ID:
 <ffe5a45efd34d92c9f2c7307ecd0e9efc5b0d57c.1756399156.git.oleksii_moisieiev@epam.com>
References: <cover.1756399156.git.oleksii_moisieiev@epam.com>
In-Reply-To: <cover.1756399156.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: PAVPR03MB8946:EE_|DB9PR03MB7705:EE_
x-ms-office365-filtering-correlation-id: 0b6822a3-bef0-40ae-9235-08dde65196af
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|7416014|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?LeewmNwhZibRsf/oM0E4OOgUulbS207oAqTXcDD0QzXF5RLZeP9ZaYV+nv?=
 =?iso-8859-1?Q?gd3pvdLRSUl8YtooIpkjthOBXsKwbVBzGvKFGGDTIWn1p+HNm0fpUxn9zg?=
 =?iso-8859-1?Q?R4VUXsA63H7ZcoAhZev1V6NblG23BlFazV9ji+YNfxktkGeSMNP44Pg6Ei?=
 =?iso-8859-1?Q?STmp1vZT1otplTFi2LfoAj6U7X3So5kk2KiuPG6f5NQJyhGTxSSunalKkp?=
 =?iso-8859-1?Q?b7YfIhpFvMHAVjzSvqLQ2Y7bt08PBjMi/rAKJ1OyEuhT/PPJW407chig2G?=
 =?iso-8859-1?Q?y3A+3SGTBQZmRYaPFSBTG+2M7sdXv+C74RHgO4W6Gzd/ru/KgysPD48WET?=
 =?iso-8859-1?Q?HF+Ja54/hr36C/7/X+2NmXQ7GZGxD0EXucSk2J8gUz83haG/UPiRgBUo+1?=
 =?iso-8859-1?Q?7zQidrACosxsjAyd1oxPulahtmaPNjTzgyWv9Vh1/ntHZI5in4WWajtomJ?=
 =?iso-8859-1?Q?t6t+LrQVKns9PHIyIWTf7rRcEMy2uCepjB+bGpICfCX5ULpyTvnkrP9NCO?=
 =?iso-8859-1?Q?rHUsP+5uQeVG2H9FoohtqSHLVBGxmeXrG81ZZ6c3VW8xlukpReX+UuxLpw?=
 =?iso-8859-1?Q?PKrZ4seDc02Zsd+A9FpKypa6ivrf6YAk/9tj+GyH3+I45JSxZfypGra6hd?=
 =?iso-8859-1?Q?BPPIkBQlkwkpOjRiYyrGSODOiLmcsvLIdFKtXu20gd93MROJ/bCXfI1NOd?=
 =?iso-8859-1?Q?ID34gzfa76izU5I/Hy22YXEt9LaoCPHKUgecKlbh9Dkz4DTB03XbDBeTRQ?=
 =?iso-8859-1?Q?Kf149ba0Gto94vIq8ihHfA+k8XtU4XE/xqTZVP2h55UeLsElfFZU968SA7?=
 =?iso-8859-1?Q?7XMijw3X9LCdenIbjHRo0kuUH3FvC74KG8RQAtivbJqiF+9B85iT2bpUV/?=
 =?iso-8859-1?Q?wcNpOTaRL9bqyFvamBmCJOMdADxwyCuA0DylFDw8+hEW+GqbkLGJUOHf6s?=
 =?iso-8859-1?Q?ElscD1jR8V4rQ6WCDdu1I/VeP35OP0i26orKLLyf1FiOSMt/LXOaMZ9FZV?=
 =?iso-8859-1?Q?SvGwG5dOvwR2UhInPWrHu0CWpWwGot6vJ1S8SXsoCgpbIkHTQFVLVb7Y2+?=
 =?iso-8859-1?Q?gzZyw1fQ320xT4WAWTV0EU9D1NUFQffBVXWVN8+bk5JuEpHDDb2WBR0QIA?=
 =?iso-8859-1?Q?iWNFyZvam2HwiMTjx5kd56ULu+ldzYm4yhv4AXRJS99e6498RkFscvneMz?=
 =?iso-8859-1?Q?huCjXraxk/x0PaPYKO3ZFWMcBUxlMMFfezt7sebI55rMW3lk3aOlfDaKO9?=
 =?iso-8859-1?Q?X0bsr060cyCDw8kHzPenAmhPmO9JAv+4UM8i/Ypi/zIqKuBSJLuvIFRgco?=
 =?iso-8859-1?Q?+jaXbfEnFvCTTD4Knc/xUHdgTv/K3WTR81Yr0V64DRa0p7Lnfjvn+WYCcZ?=
 =?iso-8859-1?Q?9u6N/LPhVCL37OrxdcBmeG2aZ29ELEovJrN8+UAz1l52670CoLLkZUZnci?=
 =?iso-8859-1?Q?mEHeMjzEMy2D72wdBiDglQBGOlSbuPIFdNiT1fAddReMJTkjS/U2kprF2v?=
 =?iso-8859-1?Q?Jo6kFXiJeD7XRlHdjFsBkJlovA3sEtgOXBprLBVS6auQ=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB8946.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?D2oVEzBJKxtbwpjKYCANPRUWfxyX+ZcE3d5Yr60dVsnB/NZ3C4fY87pKz0?=
 =?iso-8859-1?Q?uJE74TPq9Bws0WTCcmxSaqZv2BfQF/zOnwtQ0S2khaMA9mX0vNjPhAbEA0?=
 =?iso-8859-1?Q?w2eQKilOYCoCBvQwvXegKZ3GOKUzkBTybd/xzg2ZtczV6NMjSNcw9hmVVE?=
 =?iso-8859-1?Q?8l73pSr3FoxYV4VizjRBd+gAjS+XiU31ilucHlFJg9NVsc3R9pdTNjeuL+?=
 =?iso-8859-1?Q?tK4pBhTrP4lEglmQ6p0++yuUefgcx0or69yhqCrSCniSalmks2XrAr1pfd?=
 =?iso-8859-1?Q?T7ZExP0/bMGzduusWo5o7fCjxSohQzzlLXiSd3qQThdk2oO1d/kN86VIaL?=
 =?iso-8859-1?Q?bT6x8vhiA/hchxR6EF34cQNSfiHV3mN9LEkpnJfoXDsygr5s7UgOUySpRV?=
 =?iso-8859-1?Q?YRkvYrDqri/Cgbvl1TbKyeVjK83r/7xJ8hzFSXi1APjPAhML2QfKGFjB6Z?=
 =?iso-8859-1?Q?AX4P7N8wkro55tEeUCgJLJ+JEIJ1DddXCRfSKIWgDXKzAAolguGEIJYRqZ?=
 =?iso-8859-1?Q?ZQJZ5jHGcQtG3IBCuaYdKxUrR65uzU0VI+Lz85d94ce505otGngpGU4zlK?=
 =?iso-8859-1?Q?V2MUGYHijp5J9DBPzaMYntdKyY2xtITYzQ9N53x52eAR1rEP+jsPuqOGcv?=
 =?iso-8859-1?Q?oDx71UQuEO+P27gF40zvUWYTzhbnZnA/Zj31aKPBy26gjZmYDo8lkxuklE?=
 =?iso-8859-1?Q?k74/WZRar3SuXw1dPQoaZmkGnRwShJk2+UvGx+3GdwUcpoeMo00KGvHLhG?=
 =?iso-8859-1?Q?FfE2uTS+0zN89IIBQRa2ehaDDuMkLKLO04IBHLcjTsRe1xN9WlxbKCdVOO?=
 =?iso-8859-1?Q?iTOlQRs7tlrP+rzH9EozvrV7PawFApgV8l34PETn99MBOJTBN9uwQv6lC/?=
 =?iso-8859-1?Q?mI0JSMoUXA0qpOA5YWtt6S0YwtV1WYCF+Qr0vs6BslXWR8AtTSlJ11oozR?=
 =?iso-8859-1?Q?qjrVVQ2teY2UGECY8ch5AdfBMG2No8m60gD46OkdaSGakbyIYl8KuQB0oU?=
 =?iso-8859-1?Q?0EGEd5+c5Ses+YubYr1nBPWCmsu47NnGC4K+gaQOAy9mKEcg7ZubAMbscl?=
 =?iso-8859-1?Q?CuVCmmpkMVLFu+0vGbFthmYypn4Zm+O6ssX4WKjLRNR9Vz7SAFPqnp97Hl?=
 =?iso-8859-1?Q?z8o80sM4InyFxswKpZCUhksYpZVpuLO+aiCQLqq5xLuXXP3hzrEHMmh4Sb?=
 =?iso-8859-1?Q?DNJlhq8PVtBlGBZAjfqw2rZVJ/8/INXNL8dZkZMKibSLYCwbKvDXtkdeqf?=
 =?iso-8859-1?Q?9iOT8Qbots2qmRMcmHHFJWNZNJFdGuu5CUR8Eqd5imo3HgNvz4kn8lsCZG?=
 =?iso-8859-1?Q?hGlIJDAyAsNx85z5iY5sQGyvZT2HlfxSwQ8zbRSFkwo6IFByvrTjgiMOIr?=
 =?iso-8859-1?Q?GepBgCMmF/jEwytu1LQoswywt/268D2qP/akgsdtuL2UE/pkXlMuLwu7s0?=
 =?iso-8859-1?Q?TJT47tV9WK/VBfRaIFZjoN8GiUSuSCg1Me4DHKBNZGWL+Zu0vR+f7hzrIx?=
 =?iso-8859-1?Q?sR40qcT2mC6g6eKkygK0hZIz7jlJChqfO9JDu8rlW9t/Vk81E8LnpiUtNA?=
 =?iso-8859-1?Q?uyjtIcwhK/JuxN+8RuTAXbwrY6toMn5nthELUFE9j3ASRXC5VtUujDXtm8?=
 =?iso-8859-1?Q?04cSqNavV0qRfX/2ZIwMk8q+qsFqW3crZobzof4hcYM0TMO4ln5g21rQ?=
 =?iso-8859-1?Q?=3D=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: PAVPR03MB8946.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0b6822a3-bef0-40ae-9235-08dde65196af
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Aug 2025 16:40:25.1171
 (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: q5vPE4vzANT7cxYgZbwLvs1OEJHN8PXa89/fo9uOGAHxzY17kIchO4iA585uI1AJTwffm796vjktYNYXTMBDf9AZJkD06Oy7IOd5vcCzCkA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB7705

This patch adds the basic framework for ARM SCI mediator. SCI is System
Control Interface, which is designed to redirect requests from the Domains
to ARM specific Firmware (for example SCMI). This will allow the devices,
passed-through to the different Domains, to access to the System resources
(such as clocks/resets etc) by sending requests to the firmware.

ARM SCI subsystem allows to implement different SCI drivers to handle
specific ARM firmware interfaces (like ARM SCMI) and mediate requests
-between the Domains and the Firmware. Also it allows SCI drivers to perfor=
m
proper action during Domain creation/destruction which is vital for
handling use cases like Domain reboot.

This patch introduces new DEVICE_FIRMWARE device subclass for probing SCI
drivers basing on device tree, SCI drivers register itself with
DT_DEVICE_START/END macro. On init - the SCI drivers should register its
SCI ops with sci_register(). Only one SCI driver can be supported.

At run-time, the following SCI API calls are introduced:

- sci_domain_sanitise_config() called from arch_sanitise_domain_config()
- sci_domain_init() called from arch_domain_create()
- sci_relinquish_resources() called from domain_relinquish_resources()
- sci_domain_destroy() called from arch_domain_destroy()
- sci_handle_call() called from vsmccc_handle_call()
- sci_dt_handle_node()
- sci_dt_finalize() called from handle_node() (Dom0 DT)

Signed-off-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---

Changes in v6:
- rebase on top of the latest master
- fix return value of sci_dt_finalize() call

Changes in v5:
- update Maintainers file. Set role as a Reviewer
- rebased on the latest master branch
- Introduce arch_handle_passthrough_prop call to handle arm specific nodes

Changes in v4:
- fix SPDX-License
- rename DEVICE_ARM_SCI DT device class to FIRMWARE_DEVICE
- move XEN_DOMCTL_assign_device code in separate patch
- Add documentation for SCI SCMI drivers

 MAINTAINERS                             |   6 +
 xen/arch/arm/device.c                   |   5 +
 xen/arch/arm/dom0less-build.c           |   8 +
 xen/arch/arm/domain.c                   |  12 +-
 xen/arch/arm/domain_build.c             |   8 +
 xen/arch/arm/firmware/Kconfig           |   8 +
 xen/arch/arm/firmware/Makefile          |   1 +
 xen/arch/arm/firmware/sci.c             | 154 ++++++++++++++++++
 xen/arch/arm/include/asm/domain.h       |   5 +
 xen/arch/arm/include/asm/firmware/sci.h | 200 ++++++++++++++++++++++++
 xen/arch/arm/vsmc.c                     |   3 +
 xen/common/device-tree/dom0less-build.c |   4 +
 xen/include/asm-generic/device.h        |   1 +
 xen/include/public/arch-arm.h           |   4 +
 xen/include/xen/dom0less-build.h        |   9 ++
 15 files changed, 427 insertions(+), 1 deletion(-)
 create mode 100644 xen/arch/arm/firmware/sci.c
 create mode 100644 xen/arch/arm/include/asm/firmware/sci.h

diff --git a/MAINTAINERS b/MAINTAINERS
index c4886c1159..31dbba54bb 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -509,6 +509,12 @@ R:	George Dunlap <gwd@xenproject.org>
 S:	Supported
 F:	xen/common/sched/
=20
+SCI MEDIATORS
+R:	Oleksii Moisieiev <oleksii_moisieiev@epam.com>
+S:	Supported
+F:	xen/arch/arm/firmware/sci.c
+F:	xen/arch/arm/include/asm/firmware/sci.h
+
 SEABIOS UPSTREAM
 M:	Wei Liu <wl@xen.org>
 S:	Supported
diff --git a/xen/arch/arm/device.c b/xen/arch/arm/device.c
index 11523750ae..74b54cad34 100644
--- a/xen/arch/arm/device.c
+++ b/xen/arch/arm/device.c
@@ -13,6 +13,7 @@
 #include <xen/iocap.h>
 #include <xen/lib.h>
=20
+#include <asm/firmware/sci.h>
 #include <asm/setup.h>
=20
 int map_irq_to_domain(struct domain *d, unsigned int irq,
@@ -303,6 +304,10 @@ int handle_device(struct domain *d, struct dt_device_n=
ode *dev, p2m_type_t p2mt,
                 return res;
             }
         }
+
+        res =3D sci_assign_dt_device(d, dev);
+        if ( res )
+            return res;
     }
=20
     res =3D map_device_irqs_to_domain(d, dev, own_device, irq_ranges);
diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index c8d07213e2..0094cf9e40 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -22,6 +22,7 @@
=20
 #include <asm/arm64/sve.h>
 #include <asm/domain_build.h>
+#include <asm/firmware/sci.h>
 #include <asm/grant_table.h>
 #include <asm/setup.h>
=20
@@ -272,6 +273,12 @@ int __init init_vuart(struct domain *d, struct kernel_=
info *kinfo,
     return rc;
 }
=20
+int __init arch_handle_passthrough_prop(struct kernel_info *kinfo,
+                                        struct dt_device_node *node)
+{
+    return sci_assign_dt_device(kinfo->bd.d, node);
+}
+
 int __init arch_parse_dom0less_node(struct dt_device_node *node,
                                     struct boot_domain *bd)
 {
@@ -281,6 +288,7 @@ int __init arch_parse_dom0less_node(struct dt_device_no=
de *node,
=20
     d_cfg->arch.gic_version =3D XEN_DOMCTL_CONFIG_GIC_NATIVE;
     d_cfg->flags |=3D XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap;
+    d_cfg->arch.arm_sci_type =3D XEN_DOMCTL_CONFIG_ARM_SCI_NONE;
=20
     if ( !dt_property_read_u32(node, "nr_spis", &d_cfg->arch.nr_spis) )
     {
diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index 310c578909..0f9db7a2d5 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -24,6 +24,7 @@
 #include <asm/platform.h>
 #include <asm/procinfo.h>
 #include <asm/regs.h>
+#include <asm/firmware/sci.h>
 #include <asm/tee/tee.h>
 #include <asm/vfp.h>
 #include <asm/vgic.h>
@@ -699,7 +700,7 @@ int arch_sanitise_domain_config(struct xen_domctl_creat=
edomain *config)
         return -EINVAL;
     }
=20
-    return 0;
+    return sci_domain_sanitise_config(config);
 }
=20
 int arch_domain_create(struct domain *d,
@@ -791,6 +792,9 @@ int arch_domain_create(struct domain *d,
     d->arch.sve_vl =3D config->arch.sve_vl;
 #endif
=20
+    if ( (rc =3D sci_domain_init(d, config)) !=3D 0 )
+        goto fail;
+
     return 0;
=20
 fail:
@@ -851,6 +855,7 @@ void arch_domain_destroy(struct domain *d)
     domain_vgic_free(d);
     domain_vuart_free(d);
     free_xenheap_page(d->shared_info);
+    sci_domain_destroy(d);
 #ifdef CONFIG_ACPI
     free_xenheap_pages(d->arch.efi_acpi_table,
                        get_order_from_bytes(d->arch.efi_acpi_len));
@@ -1044,6 +1049,7 @@ enum {
     PROG_p2m_root,
     PROG_p2m,
     PROG_p2m_pool,
+    PROG_sci,
     PROG_done,
 };
=20
@@ -1103,6 +1109,10 @@ int domain_relinquish_resources(struct domain *d)
         ret =3D relinquish_p2m_mapping(d);
         if ( ret )
             return ret;
+    PROGRESS(sci):
+        ret =3D sci_relinquish_resources(d);
+        if ( ret )
+            return ret;
=20
     PROGRESS(p2m_root):
         /*
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index a9e4153e3c..039aa71439 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -28,6 +28,7 @@
 #include <asm/setup.h>
 #include <asm/tee/tee.h>
 #include <asm/pci.h>
+#include <asm/firmware/sci.h>
 #include <asm/platform.h>
 #include <asm/psci.h>
 #include <asm/setup.h>
@@ -1640,6 +1641,9 @@ static int __init handle_node(struct domain *d, struc=
t kernel_info *kinfo,
         return 0;
     }
=20
+    if ( sci_dt_handle_node(d, node) )
+        return 0;
+
     /*
      * The vGIC does not support routing hardware PPIs to guest. So
      * we need to skip any node using PPIs.
@@ -1740,6 +1744,10 @@ static int __init handle_node(struct domain *d, stru=
ct kernel_info *kinfo,
         if ( res )
             return res;
=20
+        res =3D sci_dt_finalize(d, kinfo->fdt);
+        if ( res )
+            return res;
+
         /*
          * Create a second memory node to store the ranges covering
          * reserved-memory regions.
diff --git a/xen/arch/arm/firmware/Kconfig b/xen/arch/arm/firmware/Kconfig
index 817da745fd..fc7918c7fc 100644
--- a/xen/arch/arm/firmware/Kconfig
+++ b/xen/arch/arm/firmware/Kconfig
@@ -1,3 +1,11 @@
+config ARM_SCI
+	bool
+	depends on ARM
+	help
+	  This option enables generic Arm SCI (System Control Interface) mediator=
s
+	  support. It allows domains to control system resources via one of
+	  Arm SCI mediators drivers implemented in XEN, like SCMI.
+
 menu "Firmware Drivers"
=20
 config SCMI_SMC
diff --git a/xen/arch/arm/firmware/Makefile b/xen/arch/arm/firmware/Makefil=
e
index a5e4542666..71bdefc24a 100644
--- a/xen/arch/arm/firmware/Makefile
+++ b/xen/arch/arm/firmware/Makefile
@@ -1 +1,2 @@
+obj-$(CONFIG_ARM_SCI) +=3D sci.o
 obj-$(CONFIG_SCMI_SMC) +=3D scmi-smc.o
diff --git a/xen/arch/arm/firmware/sci.c b/xen/arch/arm/firmware/sci.c
new file mode 100644
index 0000000000..e1522e10e2
--- /dev/null
+++ b/xen/arch/arm/firmware/sci.c
@@ -0,0 +1,154 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Generic part of the SCI (System Control Interface) subsystem.
+ *
+ * Oleksii Moisieiev <oleksii_moisieiev@epam.com>
+ * Copyright (c) 2025 EPAM Systems
+ */
+
+#include <xen/acpi.h>
+#include <xen/errno.h>
+#include <xen/init.h>
+#include <xen/sched.h>
+#include <xen/types.h>
+
+#include <asm/firmware/sci.h>
+
+static const struct sci_mediator_ops __read_mostly *cur_mediator;
+
+int sci_register(const struct sci_mediator_ops *ops)
+{
+    if ( cur_mediator )
+        return -EEXIST;
+
+    if ( !ops->domain_init || !ops->domain_destroy || !ops->handle_call )
+        return -EINVAL;
+
+    cur_mediator =3D ops;
+
+    return 0;
+};
+
+bool sci_handle_call(struct cpu_user_regs *args)
+{
+    if ( unlikely(!cur_mediator) )
+        return false;
+
+    return cur_mediator->handle_call(args);
+}
+
+int sci_domain_init(struct domain *d, struct xen_domctl_createdomain *conf=
ig)
+{
+    if ( !cur_mediator )
+        return 0;
+
+    return cur_mediator->domain_init(d, config);
+}
+
+int sci_domain_sanitise_config(struct xen_domctl_createdomain *config)
+{
+    if ( !cur_mediator )
+        return 0;
+
+    if ( !cur_mediator->domain_sanitise_config )
+        return 0;
+
+    return cur_mediator->domain_sanitise_config(config);
+}
+
+void sci_domain_destroy(struct domain *d)
+{
+    if ( !cur_mediator )
+        return;
+
+    cur_mediator->domain_destroy(d);
+}
+
+int sci_relinquish_resources(struct domain *d)
+{
+    if ( !cur_mediator )
+        return 0;
+
+    if ( !cur_mediator->relinquish_resources )
+        return 0;
+
+    return cur_mediator->relinquish_resources(d);
+}
+
+bool sci_dt_handle_node(struct domain *d, struct dt_device_node *node)
+{
+    if ( !cur_mediator )
+        return 0;
+
+    if ( !cur_mediator->dom0_dt_handle_node )
+        return 0;
+
+    return cur_mediator->dom0_dt_handle_node(d, node);
+}
+
+int sci_dt_finalize(struct domain *d, void *fdt)
+{
+    if ( !cur_mediator )
+        return 0;
+
+    if ( !cur_mediator->dom0_dt_finalize )
+        return 0;
+
+    return cur_mediator->dom0_dt_finalize(d, fdt);
+}
+
+int sci_assign_dt_device(struct domain *d, struct dt_device_node *dev)
+{
+    struct dt_phandle_args ac_spec;
+    int index =3D 0;
+    int ret;
+
+    if ( !cur_mediator )
+        return 0;
+
+    if ( !cur_mediator->assign_dt_device )
+        return 0;
+
+    while ( !dt_parse_phandle_with_args(dev, "access-controllers",
+                                        "#access-controller-cells", index,
+                                        &ac_spec) )
+    {
+        printk(XENLOG_DEBUG "sci: assign device %s to %pd\n",
+               dt_node_full_name(dev), d);
+
+        ret =3D cur_mediator->assign_dt_device(d, &ac_spec);
+        if ( ret )
+            return ret;
+
+        index++;
+    }
+
+    return 0;
+}
+
+static int __init sci_init(void)
+{
+    struct dt_device_node *np;
+    unsigned int num_sci =3D 0;
+    int rc;
+
+    dt_for_each_device_node(dt_host, np)
+    {
+        rc =3D device_init(np, DEVICE_FIRMWARE, NULL);
+        if ( !rc && num_sci )
+        {
+            printk(XENLOG_ERR
+                   "SCMI: Only one SCI controller is supported. found seco=
nd %s\n",
+                   np->name);
+            return -EOPNOTSUPP;
+        }
+        else if ( !rc )
+            num_sci++;
+        else if ( rc !=3D -EBADF && rc !=3D -ENODEV )
+            return rc;
+    }
+
+    return 0;
+}
+
+__initcall(sci_init);
diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/d=
omain.h
index a3487ca713..af3e168374 100644
--- a/xen/arch/arm/include/asm/domain.h
+++ b/xen/arch/arm/include/asm/domain.h
@@ -120,6 +120,11 @@ struct arch_domain
 #ifdef CONFIG_TEE
     void *tee;
 #endif
+#ifdef CONFIG_ARM_SCI
+    bool sci_enabled;
+    /* ARM SCI driver's specific data */
+    void *sci_data;
+#endif
=20
 }  __cacheline_aligned;
=20
diff --git a/xen/arch/arm/include/asm/firmware/sci.h b/xen/arch/arm/include=
/asm/firmware/sci.h
new file mode 100644
index 0000000000..1b9a5c0c07
--- /dev/null
+++ b/xen/arch/arm/include/asm/firmware/sci.h
@@ -0,0 +1,200 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Generic ARM SCI (System Control Interface) subsystem.
+ *
+ * Oleksii Moisieiev <oleksii_moisieiev@epam.com>
+ * Copyright (c) 2025 EPAM Systems
+ */
+
+#ifndef __ASM_ARM_SCI_H
+#define __ASM_ARM_SCI_H
+
+#include <xen/lib.h>
+#include <xen/types.h>
+#include <xen/device_tree.h>
+#include <xen/errno.h>
+#include <xen/sched.h>
+
+#ifdef CONFIG_ARM_SCI
+
+struct sci_mediator_ops {
+    /*
+     * Called during domain construction. If it is requested to enable
+     * SCI support, so SCI driver can create own structures for the new do=
main
+     * and inform firmware about new domain (if required).
+     * Mandatory.
+     */
+    int (*domain_init)(struct domain *d,
+                       struct xen_domctl_createdomain *config);
+
+    /*
+     * Called during domain construction. The SCI driver uses
+     * it to sanitize domain SCI configuration parameters.
+     * Optional.
+     */
+    int (*domain_sanitise_config)(struct xen_domctl_createdomain *config);
+
+    /*
+     * Called during domain destruction, releases all resources, that
+     * were allocated for domain.
+     * Mandatory.
+     */
+    void (*domain_destroy)(struct domain *d);
+
+    /*
+     * Called during domain destruction to relinquish resources used
+     * by SCI driver itself and request resources releasing from firmware.
+     * Optional.
+     */
+    int (*relinquish_resources)(struct domain *d);
+
+    /* SMC/HVC Handle callback */
+    bool (*handle_call)(struct cpu_user_regs *regs);
+
+    /*
+     * Dom0 DT nodes handling callback so SCI driver can detect DT nodes i=
t
+     * need to handle and decide if those nodes need to be provided to Dom=
0.
+     * Optional.
+     */
+    bool (*dom0_dt_handle_node)(struct domain *d, struct dt_device_node *n=
ode);
+
+    /*
+     * SCI driver callback called at the end of Dom0 DT generation, so
+     * it can perform steps to modify DT to enable/disable SCI
+     * functionality for Dom0.
+     */
+    int (*dom0_dt_finalize)(struct domain *d, void *fdt);
+
+    /*
+     * SCI driver callback called when DT device is passed through to gues=
t,
+     * so SCI driver can enable device access to the domain if SCI FW prov=
ides
+     * Device specific access control functionality.
+     * Optional.
+     */
+    int (*assign_dt_device)(struct domain *d, struct dt_phandle_args *ac_s=
pec);
+};
+
+
+static inline bool sci_domain_is_enabled(struct domain *d)
+{
+    return d->arch.sci_enabled;
+}
+
+/*
+ * Register SCI subsystem ops.
+ *
+ * Register SCI drivers operation and so enable SCI functionality.
+ * Only one SCI driver is supported.
+ */
+int sci_register(const struct sci_mediator_ops *ops);
+
+/*
+ * Initialize SCI functionality for domain if configured.
+ *
+ * Initialization routine to enable SCI functionality for the domain.
+ * The SCI configuration data and decision about enabling SCI functionalit=
y
+ * for the domain is SCI driver specific.
+ */
+int sci_domain_init(struct domain *d, struct xen_domctl_createdomain *conf=
ig);
+
+/*
+ * Sanitise domain configuration parameters.
+ *
+ */
+int sci_domain_sanitise_config(struct xen_domctl_createdomain *config);
+
+/*
+ * Destroy SCI domain instance.
+ */
+void sci_domain_destroy(struct domain *d);
+
+/*
+ * Free resources assigned to the certain domain.
+ */
+int sci_relinquish_resources(struct domain *d);
+
+/*
+ * SMC/HVC Handle callback.
+ *
+ * SCI driver acts as SMC/HVC server for the registered domains and
+ * does redirection of the domain calls to the SCI firmware,
+ * such as ARM TF-A or similar.
+ */
+bool sci_handle_call(struct cpu_user_regs *regs);
+
+/*
+ * Dom0 DT nodes handling function.
+ *
+ * Allows SCI driver to detect DT nodes it need to handle and decide if
+ * those nodes need to be provided to Dom0.
+ */
+bool sci_dt_handle_node(struct domain *d, struct dt_device_node *node);
+
+/*
+ * Dom0 DT generation finalize.
+ *
+ * Called at the end of Dom0 DT generation, so SCI driver can perform step=
s
+ * to modify DT to enable/disable SCI functionality for Dom0.
+ */
+int sci_dt_finalize(struct domain *d, void *fdt);
+
+/*
+ * Assign DT device to domain.
+ *
+ * Called when DT device is passed through to guest, so SCI driver can ena=
ble
+ * device access to the domain if SCI FW provides "Device specific access
+ * control" functionality.
+ */
+int sci_assign_dt_device(struct domain *d, struct dt_device_node *dev);
+#else
+
+static inline bool sci_domain_is_enabled(struct domain *d)
+{
+    return false;
+}
+
+static inline int sci_domain_init(struct domain *d,
+                                  struct xen_domctl_createdomain *config)
+{
+    return 0;
+}
+
+static inline int
+sci_domain_sanitise_config(struct xen_domctl_createdomain *config)
+{
+    return 0;
+}
+
+static inline void sci_domain_destroy(struct domain *d)
+{}
+
+static inline int sci_relinquish_resources(struct domain *d)
+{
+    return 0;
+}
+
+static inline bool sci_handle_call(struct cpu_user_regs *args)
+{
+    return false;
+}
+
+static inline bool sci_dt_handle_node(struct domain *d,
+                                      struct dt_device_node *node)
+{
+    return false;
+}
+
+static inline int sci_dt_finalize(struct domain *d, void *fdt)
+{
+    return 0;
+}
+
+static inline int sci_assign_dt_device(struct domain *d,
+                                       struct dt_device_node *dev)
+{
+    return 0;
+}
+
+#endif /* CONFIG_ARM_SCI */
+
+#endif /* __ASM_ARM_SCI_H */
diff --git a/xen/arch/arm/vsmc.c b/xen/arch/arm/vsmc.c
index 6081f14ed0..2469738fcc 100644
--- a/xen/arch/arm/vsmc.c
+++ b/xen/arch/arm/vsmc.c
@@ -12,6 +12,7 @@
 #include <public/arch-arm/smccc.h>
 #include <asm/cpuerrata.h>
 #include <asm/cpufeature.h>
+#include <asm/firmware/sci.h>
 #include <asm/monitor.h>
 #include <asm/regs.h>
 #include <asm/smccc.h>
@@ -300,6 +301,8 @@ static bool vsmccc_handle_call(struct cpu_user_regs *re=
gs)
             break;
         case ARM_SMCCC_OWNER_SIP:
             handled =3D handle_sip(regs);
+            if ( !handled )
+                handled =3D sci_handle_call(regs);
             break;
         case ARM_SMCCC_OWNER_TRUSTED_APP ... ARM_SMCCC_OWNER_TRUSTED_APP_E=
ND:
         case ARM_SMCCC_OWNER_TRUSTED_OS ... ARM_SMCCC_OWNER_TRUSTED_OS_END=
:
diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tr=
ee/dom0less-build.c
index badc227031..aaa5e9b22c 100644
--- a/xen/common/device-tree/dom0less-build.c
+++ b/xen/common/device-tree/dom0less-build.c
@@ -228,6 +228,10 @@ static int __init handle_passthrough_prop(struct kerne=
l_info *kinfo,
     if ( res < 0 )
         return res;
=20
+    res =3D arch_handle_passthrough_prop(kinfo, node);
+    if ( res )
+        return res;
+
     /* If xen_force, we allow assignment of devices without IOMMU protecti=
on. */
     if ( xen_force && !dt_device_is_protected(node) )
         return 0;
diff --git a/xen/include/asm-generic/device.h b/xen/include/asm-generic/dev=
ice.h
index 3bd97e33c5..cb13f7faea 100644
--- a/xen/include/asm-generic/device.h
+++ b/xen/include/asm-generic/device.h
@@ -18,6 +18,7 @@ enum device_class
     DEVICE_IOMMU,
     DEVICE_INTERRUPT_CONTROLLER,
     DEVICE_PCI_HOSTBRIDGE,
+    DEVICE_FIRMWARE,
     /* Use for error */
     DEVICE_UNKNOWN,
 };
diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
index 24840eeaa6..55eed9992c 100644
--- a/xen/include/public/arch-arm.h
+++ b/xen/include/public/arch-arm.h
@@ -327,6 +327,8 @@ DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t);
 #define XEN_DOMCTL_CONFIG_TEE_OPTEE     1
 #define XEN_DOMCTL_CONFIG_TEE_FFA       2
=20
+#define XEN_DOMCTL_CONFIG_ARM_SCI_NONE      0
+
 struct xen_arch_domainconfig {
     /* IN/OUT */
     uint8_t gic_version;
@@ -350,6 +352,8 @@ struct xen_arch_domainconfig {
      *
      */
     uint32_t clock_frequency;
+    /* IN */
+    uint8_t arm_sci_type;
 };
 #endif /* __XEN__ || __XEN_TOOLS__ */
=20
diff --git a/xen/include/xen/dom0less-build.h b/xen/include/xen/dom0less-bu=
ild.h
index 408859e325..6fdd0552e0 100644
--- a/xen/include/xen/dom0less-build.h
+++ b/xen/include/xen/dom0less-build.h
@@ -62,6 +62,9 @@ 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);
=20
+int arch_handle_passthrough_prop(struct kernel_info *kinfo,
+                                 struct dt_device_node *node);
+
 #else /* !CONFIG_DOM0LESS_BOOT */
=20
 static inline void create_domUs(void) {}
@@ -71,6 +74,12 @@ static inline bool is_dom0less_mode(void)
 }
 static inline void set_xs_domain(struct domain *d) {}
=20
+static inline int arch_handle_passthrough_prop(struct kernel_info *kinfo,
+                                               struct dt_device_node *node=
)
+{
+    return 0;
+}
+
 #endif /* CONFIG_DOM0LESS_BOOT */
=20
 #endif /* __ASM_GENERIC_DOM0LESS_BUILD_H__ */
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 16:40:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 16:40:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099671.1453459 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urffu-0005WP-Fh; Thu, 28 Aug 2025 16:40:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099671.1453459; Thu, 28 Aug 2025 16:40:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urffu-0005WH-CC; Thu, 28 Aug 2025 16:40:34 +0000
Received: by outflank-mailman (input) for mailman id 1099671;
 Thu, 28 Aug 2025 16:40:32 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fCus=3I=epam.com=Oleksii_Moisieiev@srs-se1.protection.inumbo.net>)
 id 1urffr-0004ma-RN
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 16:40:31 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b4b83012-842d-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 18:40:28 +0200 (CEST)
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com (2603:10a6:102:32e::21)
 by PA1PR03MB10844.eurprd03.prod.outlook.com (2603:10a6:102:48f::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Thu, 28 Aug
 2025 16:40:26 +0000
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::f12d:7394:bbe3:dfc]) by PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::f12d:7394:bbe3:dfc%6]) with mapi id 15.20.9052.014; Thu, 28 Aug 2025
 16:40:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b4b83012-842d-11f0-8adc-4578a1afcccb
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QdMixGTKM4nCZoewP+cnqLStwZkoyVS7gSOCmJFD6Uh/2r++Wq1FhixePwI61ZkRna5JxcovnUjWnEnhDyA/9NVPinJA2IOzetNOl3KI5/qXtAbNY5NbPePr+iEruLauPuHYWxZMwO6DdTKO6TtzrI6GulGDFUS/KdgNsEZEHFyU9HSHS2D26TEH/jVB5ZIwgSQUvFT7yrWC97KuSE+e1PryfTxYb9b9LVUMC44gd98B7rG8sWSD2mdEl/YrWdPee0rtqhuetWasiHWcJxc4TE0f9NLm8tlrhUA5AT+Ut43tpkDpLCMGMnwqHGJpxJORy3T67adkWgrBD+OuPMxebw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ShcEtoWuhUl+psNNoff5agrR3HBStUEdIa2+C+P01lQ=;
 b=WfYr8RaongInOUIh1nTWRYOyS2hyyhod4gQIxkbuNE19ggn2nO3ZcTpOfZZCKB5zNgYZeUTdj7vSfOClaa1AqYIZG+4Vgpx63+Rt4ElxLxBxVkYT6apCMWD93YKNd2G0w4AlPDHtLKxBZq+4RuMtrTrH3Z6+3ik5E6Nev3oDLpgmZVs60h4NgFdZnQDn+5iSEr7HDpqOhtIOOD4NTWkWAhfBD5qoT5KJtsCElI3SNPCRDa9u77JLdKwjKdGKWUP+xzVvb4AJ2Matjqis2pUqNQl5hk4Kpw3BLFs2C1/Ey3U2RA54Vtgk0kBLzez90UyO1OJQkD9rUKAZeQ7kFCsIzg==
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=ShcEtoWuhUl+psNNoff5agrR3HBStUEdIa2+C+P01lQ=;
 b=azCw8KmKa9z3yo5ZWAHIhbBzIqKiZKkZ5QuLLFDo8aoKLfGqlM31v+uNgU9d7sOwe3vCtXcVEfi0Y50If1NgBI4UJumQdzETDiSK7OqQjy0fKqDRvT9yUqNExL2tnE2Hsb4TZtvGiGdnzaFzNFIof1w545lFR9Y7ruSd6Njz0MmlHDbiSeV7hPSRVCAdjFByuGIEFNby7oFxWSyS1xn9iAjpDIQnEOvFlIMqe3N1MjuAFqVILWZ/TqkiUkaqT/CTLGpF0Zxbgn5CvGGAKXatvxnN5DIDdWEdqX6qAl9O/2Hbbw8fMp1/AiJv61ND0PsB62LmdMfBbJR+ovNoLVKnNg==
From: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Bertrand Marquis <bertrand.marquis@arm.com>, Jan
 Beulich <jbeulich@suse.com>, Juergen Gross <jgross@suse.com>, Julien Grall
	<julien@xen.org>, Michal Orzel <michal.orzel@amd.com>, Oleksii Moisieiev
	<Oleksii_Moisieiev@epam.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Grygorii Strashko
	<grygorii_strashko@epam.com>
Subject: [PATCH v6 4/4] docs: arm: add docs for SCMI over SMC calls forwarding
 driver
Thread-Topic: [PATCH v6 4/4] docs: arm: add docs for SCMI over SMC calls
 forwarding driver
Thread-Index: AQHcGDp0tfvhJciRvkCRbdqW7TfbXw==
Date: Thu, 28 Aug 2025 16:40:26 +0000
Message-ID:
 <17e009a131e54ad68f0a182b1766d333cf1c63f8.1756399156.git.oleksii_moisieiev@epam.com>
References: <cover.1756399156.git.oleksii_moisieiev@epam.com>
In-Reply-To: <cover.1756399156.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: PAVPR03MB8946:EE_|PA1PR03MB10844:EE_
x-ms-office365-filtering-correlation-id: 441a0f4d-ac48-4b90-61e6-08dde6519771
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|7416014|1800799024|376014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?x/u69tCdDIgq/Dya+608ipHkkdaLudTHD//URKBBTRcmkcOg/gYXe1bmgz?=
 =?iso-8859-1?Q?cy4YQy1VP5vbjaiz/p9IOgeZuhHzqUL/4PPghPCEAvUFN1uJu8YyJOFzTH?=
 =?iso-8859-1?Q?3tfd1swYRExAMPBqQJppB1rOsvvLtCoDXksd6OLFj9Y7N8jOGsN2OHrViV?=
 =?iso-8859-1?Q?Z7dmN7DnGgHCKmLr4ta3Hpu5l1WZkcN1DUCgMBQiR34v5FWagnslIvu+UK?=
 =?iso-8859-1?Q?AeH0FUtf+n80dLvyLkgyNJ14wlYXrKDEmxQsiuNakTjDQzopwIWQeR8kZl?=
 =?iso-8859-1?Q?56qeXpaFms12DaQt4ZCKOb4xYVxVvhUkh57tqH5tRRdA1w4OrSmbKfSd2R?=
 =?iso-8859-1?Q?Kqt0tfun/RCszdkQBWyag/FY9T/Uy0AJ2XPxXjpd5dnFqDxtuWjJ9rfaxy?=
 =?iso-8859-1?Q?xaxWn6T/ZbvK45FZj3za3VB1NGPROs42O5BuYM7Mq8BfMrcdOLQMPvt/hX?=
 =?iso-8859-1?Q?wZfrRf4dCldwRRSNOUIVcg+mdR/sxb3OQd84Bs0SNqrc5IHpVHD3PRV2yN?=
 =?iso-8859-1?Q?bHsQSo+1fzxOj6No4GYpjvPX0VlDhNEsTd8ZqBN06byu1KdiQbu8WJKIOF?=
 =?iso-8859-1?Q?obBPGGKZXcwV6TJlEz4fZoF3HAdTNoDY6/wctkkpZCreBHcRpTTBRSkZ/+?=
 =?iso-8859-1?Q?yutO9V1dD7FlwhX4TELzeE3bV90WI4SRtDOoamN81t70ITPvL+E7zxmTiI?=
 =?iso-8859-1?Q?c4AYuqoeTa/jMJ/uG/jwI9vLGx4EIMrNZBQjih/VyyPN1HQ5k/E43wDDBz?=
 =?iso-8859-1?Q?3B7fbGpXqZdahKWXwFsfQZky3ymS7j6U9upILXKBco+KSDExXrDA7XG082?=
 =?iso-8859-1?Q?Gv6F/ahjwycT2wMf3I6Tm/jn4QpC/fnd6NuBP/8BON6VnSzEgFdziwybdl?=
 =?iso-8859-1?Q?zRwL5ovmg5KNsEwSrEfgnePJ9Iz8p0c2/sG2T0anXAPjjVVGZFfJMFfmTP?=
 =?iso-8859-1?Q?JXlhIm+O5A9mQz1VAVBQIL0r61qVw2pCwN4QMBJ+y5xW529gVUBKemulIT?=
 =?iso-8859-1?Q?IqxGexRra167kcS8UbZguMnjpr6Sbq2on09ywhjg7FPdz1cJa4EqTgjNg/?=
 =?iso-8859-1?Q?pcQBtsZ2KOkj8Wn8W78euTpSELTUdXDWcBmqxWxLGKaeObLNT1R7z+NZhC?=
 =?iso-8859-1?Q?1v6rp2l3s0SL877GaaE1yCzQ+gykAEhb2HHcTVEj//oOR3kUcEcrN1yBDp?=
 =?iso-8859-1?Q?ogg6I2nzz1GKT7d8sMnIyyFJnhUXRgH/ztRI6lkjEoNT5cfhtbCtOn4xWH?=
 =?iso-8859-1?Q?CLSmwFFn8Rd/a/gJlPgVjRosnB57qtbUNTJDfXejEAMiBMRTSNadJQmL77?=
 =?iso-8859-1?Q?hqHc4ih2oTyQGCu6aPAo2KaD+EhabboxLBHMLxqjyCpOYW8JMhQl2+kKE+?=
 =?iso-8859-1?Q?KkEwIy98LS3CGV48VQ/qLKjPKSH+bNAH6PJnWL3Ef/uQZ1tO/foWZk34m/?=
 =?iso-8859-1?Q?UGOZTcTn97wAlew/oIw6FW2xVhCzTY5ABiv3Ah9/sQOiUDzp9cprNDum6W?=
 =?iso-8859-1?Q?8=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB8946.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?c1DglysEbtLpEkFfmvN9MzsN2Ftp2s+BEuWaAhJ04W9dzw+2bCNRFo32bM?=
 =?iso-8859-1?Q?zekORw+QmRKcjm3K38i5kh2jsFUsFFgidgE/0SvS4XJveLX62TsEJh6MjK?=
 =?iso-8859-1?Q?59WIZ1eA0xW59MJtPuiPiiOFC+AgGeV7LZFy0aEAuYNZDjplDBagoIs+WE?=
 =?iso-8859-1?Q?VjGDBbkCHctKavjMTyLixKsZEaMkUSpCCMA18A1A30cmJ2chCFTIlYJ27Q?=
 =?iso-8859-1?Q?NsfEo/I2DNUlH5I2H+1vaZHG+0j5lqYZOJrRC7IOaDlB8x1Xm9lZhX/q3t?=
 =?iso-8859-1?Q?EE9/anuEo1vSWiKRUVZoboZFlFxJYF1+fmwa8+94MHjxWvF3Y5KlbfQUNp?=
 =?iso-8859-1?Q?cswymkXrdIPIK0A4WBI8bagV1fifccEurI8394Z2Qq2C1raIMfewuULpjx?=
 =?iso-8859-1?Q?3kNzDs9d3+jEJlOcWNigQmT4w2+Jzh8wGjjh43Dm5BzV4LyZjrihDUkr6Q?=
 =?iso-8859-1?Q?6UrMR98MjQvaMkCW1lJivLuf/dRctrpccDLbeoZ5lLUBbn7jb+IPkFxpSt?=
 =?iso-8859-1?Q?OBxt/SW7qz3vSMcyEn3bYjFZIFXMW/X8ZDkTKIl0iezvElK7DQXKTTlI9S?=
 =?iso-8859-1?Q?pAcSKfZ+P8amlQbdxJye7YAfA2NawJghKVkkFqhXFm28Hc/pmVwCF0Gvkw?=
 =?iso-8859-1?Q?guKev89oTk6gGW2CxSEJF6XJinxUh8WZ6Mm70/qHyXIwYvbgJrDTZTB+bY?=
 =?iso-8859-1?Q?DsPzLj0H+6WE2fG5j0ui+aOA1kx5jc8cA503zeCmsnmlW1YNsrWTzHHdGQ?=
 =?iso-8859-1?Q?+m6WXu2H6CBnHvIF3v14aXY8brkfdX/YkdMtF20O17rsE6B4PfLH3GdA9n?=
 =?iso-8859-1?Q?rZT1AvTvkp7rtrQKjTgDem+6MmXB/DUvfn7KUGwzmCoVoP43jWV4zIozH7?=
 =?iso-8859-1?Q?WNGojEZZPZ6aDp2jEJQc3JWGgHyglMHI91gE26XGVynNc6YiIuNbldP7Y8?=
 =?iso-8859-1?Q?u+LN0/cp+gurxyMBQVjTsDj40EMxqiOWWiSExnVjftbn9FstrE9YfhCG6P?=
 =?iso-8859-1?Q?ULmz0JY0/Koz3bhdw9xuJd9d9VE+7Tu4+RmAYT2TnDimI8B0hGqLE8uAKu?=
 =?iso-8859-1?Q?/q2/hgHSPPZHyqUNbDJcI9V7+BZ1cM3bq32fEnbSxrymIEm02MLD/dc035?=
 =?iso-8859-1?Q?7OG3AoL203AtKcQC4wPnKNkCUZY60BFcDpa51DjgRs5Iht6KXl73I69XiE?=
 =?iso-8859-1?Q?uQxstF71kG462t+jy2cv2RY1ewqmzRBX3iCu+Kc8qHLwEbogqmShTHsecz?=
 =?iso-8859-1?Q?Ucsxs7K0sFHvnpoo0ipoIIfFoaedOvo2Y7cwiZwyzTtrUGpq5cmRLUoUPC?=
 =?iso-8859-1?Q?6NTH6BzkhY4gFmkUPJ4utheYoQyGiq1W2xSjkFwW3BJp5jNXtzkcwXFhhV?=
 =?iso-8859-1?Q?2qGzsanqQ5Fm1u7QvSIylg23l6UPqvdlm33cmkL3ql0zFR9I50jD3muP9x?=
 =?iso-8859-1?Q?wBviFXMFmT76l8PwYthHlwhhD2ET8Q4VGYhLedGh7DG0gHTJO1OGrg9ANa?=
 =?iso-8859-1?Q?1GVhUEXlc5Wdt4vhIg2T5lQWiIHch+opIVG8KDpAMIHmdgKbx9eoVOeUYS?=
 =?iso-8859-1?Q?WSn9EQbEIFbme2a7nEwoiG1APPhFnYTZPnKBc6ZznbGvQL85Ncm0JP9GBE?=
 =?iso-8859-1?Q?lWwRKtG+76A5A7wJ7Qgv9pCnt06nBGr0r2/bxiVOm3S7PdDMdQZGijOQ?=
 =?iso-8859-1?Q?=3D=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: PAVPR03MB8946.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 441a0f4d-ac48-4b90-61e6-08dde6519771
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Aug 2025 16:40:26.3874
 (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: 0Kr1sJfpq6XKiRDHJAbdOD89e0DCjyyxLTRTsOFpB85D7MfYe5CynoFW/4suBvFlgE7lzR7RCNG4roVLh+kgQ/gRBVA5/jKxtetKebX/SzU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA1PR03MB10844

From: Grygorii Strashko <grygorii_strashko@epam.com>

Add documentation section for Simple Arm SCMI over SMC calls forwarding
driver (EL3).

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

Changes in v6:
- add link to the scmi bindings used in the doc
- remove mentions about HVC calls from doc
- rename cmdline parameter to scmi-smc-passthrough

Changes in v5:
- rename dom0_scmi_smc_passthrough in documentation

 .../arm/firmware/arm-scmi.rst                 | 180 ++++++++++++++++++
 docs/hypervisor-guide/arm/index.rst           |   9 +
 docs/hypervisor-guide/index.rst               |   1 +
 3 files changed, 190 insertions(+)
 create mode 100644 docs/hypervisor-guide/arm/firmware/arm-scmi.rst
 create mode 100644 docs/hypervisor-guide/arm/index.rst

diff --git a/docs/hypervisor-guide/arm/firmware/arm-scmi.rst b/docs/hypervi=
sor-guide/arm/firmware/arm-scmi.rst
new file mode 100644
index 0000000000..4394c95431
--- /dev/null
+++ b/docs/hypervisor-guide/arm/firmware/arm-scmi.rst
@@ -0,0 +1,180 @@
+.. SPDX-License-Identifier: CC-BY-4.0
+
+ARM System Control and Management Interface (SCMI)
+=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
+
+The System Control and Management Interface (SCMI) [1], which is a set of =
operating
+system-independent software interfaces that are used in system management.=
 SCMI currently
+provides interfaces for:
+
+- Discovery and self-description of the interfaces it supports
+- Power domain management
+- Clock management
+- Reset domain management
+- Voltage domain management
+- Sensor management
+- Performance management
+- Power capping and monitoring
+- Pin control protocol.
+
+The SCMI compliant firmware could run:
+
+- as part of EL3 secure world software (like Trusted Firmware-A) with
+  ARM SMC shared-memory transport;
+- on dedicated System Control Processor (SCP) with HW mailbox shared-memor=
y transport
+
+The major purpose of enabling SCMI support in Xen is to enable guest domai=
ns access to the SCMI
+interfaces for performing management actions on passed-through devices (su=
ch as clocks/resets etc)
+without accessing directly to the System control HW (like clock controller=
s) which in most cases
+can't shared/split between domains. Or, at minimum, allow SCMI access for =
dom0/hwdom (or guest
+domain serving as Driver domain).
+
+The below sections describe SCMI support options available for Xen.
+
+| [1] `Arm SCMI <https://developer.arm.com/documentation/den0056/latest/>`=
_
+| [2] `System Control and Management Interface (SCMI) bindings <https://we=
b.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documenta=
tion/devicetree/bindings/firmware/arm,scmi.yaml>`_
+
+Simple SCMI over SMC calls forwarding driver (EL3)
+------------------------------------------------------
+
+The EL3 SCMI firmware (TF-A) with a single SCMI OSPM agent support is pret=
ty generic case for
+the default vendors SDK and new platforms with SCMI support. Such EL3 SCMI=
 firmware supports only
+single SCMI OSPM transport (agent) with Shared memory based transport and =
SMC calls as doorbell.
+
+The SCMI over SMC calls forwarding driver solves major problem for this ca=
se by allowing
+SMC calls to be forwarded form guest to the EL3 SCMI firmware.
+
+By default, the SCMI over SMC calls forwarding is enabled for Dom0/hwdom.
+
+::
+
+    +--------------------------+
+    |                          |
+    | EL3 SCMI FW (TF-A)       |
+    ++-------+--^--------------+
+     |shmem  |  | smc-id
+     +----^--+  |
+          |     |
+     +----|-+---+---+----------+
+     |    | |  FWD  |      Xen |
+     |    | +---^---+          |
+     +----|-----|--------------+
+          |     | smc-id
+     +----v-----+--+ +---------+
+     |             | |         |
+     | Dom0/hwdom  | | DomU    |
+     |             | |         |
+     |             | |         |
+     +-------------+ +---------+
+
+
+The SCMI messages are passed directly through SCMI shared-memory (zero-cop=
y) and driver only
+forwards SMC calls.
+
+Compiling
+^^^^^^^^^
+
+To build with the SCMI over SMC calls forwarding enabled support, enable K=
config option
+
+::
+
+    CONFIG_SCMI_SMC
+
+The ``CONFIG_SCMI_SMC`` is enabled by default.
+
+Pass-through SCMI SMC to domain which serves as Driver domain
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+This section describes how to configure the SCMI over SMC calls forwarding=
 driver to handle use
+case "thin Dom0 with guest domain, which serves as Driver domain". In this=
 case HW need to be
+enabled in Driver domain and dom0 is performing only control functions (wi=
thout accessing FW) and so,
+the SCMI need to be enabled in Driver domain.
+
+::
+
+     +--------------------------+
+     |EL3 SCMI FW (TF-A)        |
+     |                          |
+     +-------------^--+-------+-+
+             smc-id|  |shmem0 |
+                   |  +----^--+
+    +-------------++------+|----+
+    |Xen          |  FWD  ||    |
+    |             +--^----+|    |
+    +----------------|-----|----+
+              smc-id |     |
+    +-----------+ +--+-----v-----+
+    |           | |              |
+    | Dom0      | |    Driver    |
+    | Control   | |    domain    |
+    |           | |              |
+    +-----------+ +--------------+
+
+The SCMI can be enabled for one and only one guest domain.
+
+First. configure Dom0 to enable SCMI pass-through using Xen Command Line
+**"scmi-smc-passthrough"** option. This will disable SCMI for Dom0/hwdom a=
nd SCMI nodes will
+be removed from Dom0/hwdom device tree.
+
+**Configure SCMI pass-through for guest domain with toolstack**
+
+* In domain's xl.cfg file add **"arm_sci"** option as below
+
+::
+
+    arm_sci =3D "type=3Dscmi_smc"
+
+* In domain's xl.cfg file enable access to the "arm,scmi-shmem"
+
+::
+
+    iomem =3D [
+        "47ff0,1@22001",
+    ]
+
+.. note:: It's up to the user to select guest IPA for mapping SCMI shared-=
memory.
+
+* Add SCMI nodes to the Driver domain partial device tree as in the below =
example:
+
+.. code::
+
+    passthrough {
+       scmi_shm_0: sram@22001000 {
+           compatible =3D "arm,scmi-shmem";
+           reg =3D <0x0 0x22001000 0x0 0x1000>;
+       };
+
+       firmware {
+            compatible =3D "simple-bus";
+                scmi: scmi {
+                    compatible =3D "arm,scmi-smc";
+                    shmem =3D <&scmi_shm_0>;
+                    ...
+                }
+        }
+    }
+
+Please refer to [2] for details of SCMI DT bindings.
+
+In general, the configuration is similar to any other HW pass-through, exc=
ept explicitly
+enabling SCMI with "arm_sci" xl.cfg option.
+
+**Configure SCMI pass-through for predefined domain (dom0less)**
+
+* add "xen,sci_type" property for required DomU ("xen,domain") node
+
+::
+
+       xen,sci_type=3D"scmi_smc"
+
+* add scmi nodes to the Driver domain partial device tree the same way as =
above and enable access
+  to the "arm,scmi-shmem" according to  dom0less documentation. For exampl=
e:
+
+.. code::
+
+      scmi_shm_0: sram@22001000 {
+            compatible =3D "arm,scmi-shmem";
+            reg =3D <0x00 0x22001000 0x00 0x1000>;
+    ->        xen,reg =3D <0x0 0x47ff0000 0x0 0x1000 0x0 0x22001000>;
+    ->        xen,force-assign-without-iommu;
+      };
diff --git a/docs/hypervisor-guide/arm/index.rst b/docs/hypervisor-guide/ar=
m/index.rst
new file mode 100644
index 0000000000..7aae4a0a03
--- /dev/null
+++ b/docs/hypervisor-guide/arm/index.rst
@@ -0,0 +1,9 @@
+.. SPDX-License-Identifier: CC-BY-4.0
+
+ARM
+=3D=3D=3D
+
+.. toctree::
+   :maxdepth: 2
+
+   firmware/arm-scmi
diff --git a/docs/hypervisor-guide/index.rst b/docs/hypervisor-guide/index.=
rst
index e4393b0697..520fe01554 100644
--- a/docs/hypervisor-guide/index.rst
+++ b/docs/hypervisor-guide/index.rst
@@ -9,3 +9,4 @@ Hypervisor documentation
    code-coverage
=20
    x86/index
+   arm/index
\ No newline at end of file
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 16:40:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 16:40:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099672.1453465 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urffu-0005ab-S7; Thu, 28 Aug 2025 16:40:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099672.1453465; Thu, 28 Aug 2025 16:40:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urffu-0005a2-Mc; Thu, 28 Aug 2025 16:40:34 +0000
Received: by outflank-mailman (input) for mailman id 1099672;
 Thu, 28 Aug 2025 16:40:33 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=fCus=3I=epam.com=Oleksii_Moisieiev@srs-se1.protection.inumbo.net>)
 id 1urffs-0004ma-Rd
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 16:40:32 +0000
Received: from DB3PR0202CU003.outbound.protection.outlook.com
 (mail-northeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c200::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b4ec28fc-842d-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 18:40:29 +0200 (CEST)
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com (2603:10a6:102:32e::21)
 by DB9PR03MB7705.eurprd03.prod.outlook.com (2603:10a6:10:2c7::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.15; Thu, 28 Aug
 2025 16:40:24 +0000
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::f12d:7394:bbe3:dfc]) by PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::f12d:7394:bbe3:dfc%6]) with mapi id 15.20.9052.014; Thu, 28 Aug 2025
 16:40: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>
X-Inumbo-ID: b4ec28fc-842d-11f0-8adc-4578a1afcccb
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=H2pn63wYGG8eHzskl7iMOB2x4s6rlC3H1/m4DUhOx8Zk40D41FlfF8gEPk2g4TH08uOPEH7QReEVjFPmTJ6j91p49ZSqTVDxjt0w4ZYy6gHbXGGhxorSUcClc+/k5K/LjhbSIBXpKJFulNJVwJAb/fuyI6AAzbe1unEBkSvTpvURdPeCyaIICB0yEjRDxoJsvCP1gRiR+LGFBL6W0/zMdF9THNj5Ufa8mCKsslVqWu2PrGiIqykTfFqEJpRDwugXgvK0Vkhu+WqNeBL6DBjNOE6+FqpfLVBRaSk49kBvVeT1KPvNOKk7dTV3BWxzWwgmlCQkNCfJneQeWAM6r7fQCQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ApiSBKYb9WwiYj42BLp24EBKNDx+m9o5ghwahhj4oZA=;
 b=PJXuzGwdCO5KwQnFUMp23JOp9iW0oJ48yDyQfpHNJTyugDwIJkPj4nRVzCw2XVowuSW1hs3HlL8SugLPDqKkutTlSfCzZSmLN86rbOcMjZ9TnYXkeYlWfwh872f7P/qaTmYtBakn1oh0IijDtpkZSZjYFD1FKiV6AEs1A9N/0hyvfa9J4vvnXzuSWPmcy2Wd4Z9ge7JnIdtZIfjJaRUC7+gEkxMCqPf3Wjtf91+PkQHC/z92DwNCHVqoM+GNOHfa2u16OP7IFjkcsaNEl5bQB4ZowCnlGeBq0bMX9QjhuN02zOiLkT/IrD/NgSCsMlUOMuAtWxMUbntZKg5k06E+sw==
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=ApiSBKYb9WwiYj42BLp24EBKNDx+m9o5ghwahhj4oZA=;
 b=Z8KGmKerzWm2mifwwT7AubVGJ2OR/WR27OapTlV8Bcf79EqNFo7o98b1Dj2rD7P2QwC23oLKGNvEh5vAEem+B7mu1e+6vDJhnHQLqVQaDmiVAkQkE37QboWsXjP6rMbrbau/WpwjVhWE3U/FF3mxG7AQJpbzb0Gy5MJfNvH4u0GfgOzOGSipwAcpdJcgjgT98UZHb3B0OtnxZNDb0n0R3Hzq5pWSp7n7OiTgyK2wYS0BB2c0QZKMYcwzVSyIcBLqvgxcY0u6umCWZkMXVitKDFyGPZJEKj30dFdVXj9Sn32jfjj9cC1X0gdSPWVUvbx/6XmeG9F/jrf+qcEFghHQfg==
From: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Bertrand Marquis <bertrand.marquis@arm.com>, Jan
 Beulich <jbeulich@suse.com>, Juergen Gross <jgross@suse.com>, Julien Grall
	<julien@xen.org>, Michal Orzel <michal.orzel@amd.com>, Oleksii Moisieiev
	<Oleksii_Moisieiev@epam.com>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Grygorii Strashko
	<grygorii_strashko@epam.com>
Subject: [PATCH v6 0/4] xen/arm: scmi: introduce SCI SCMI SMC single-agent
 support
Thread-Topic: [PATCH v6 0/4] xen/arm: scmi: introduce SCI SCMI SMC
 single-agent support
Thread-Index: AQHcGDpz564/CxWJjkScJHSOCdJ/3w==
Date: Thu, 28 Aug 2025 16:40:24 +0000
Message-ID: <cover.1756399156.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: PAVPR03MB8946:EE_|DB9PR03MB7705:EE_
x-ms-office365-filtering-correlation-id: 7f625ed4-e273-484f-e5c8-08dde651966c
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|7416014|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?uCeWYRQt+qpmLHzSUqUfqETirDnCgygJvrjJu+39WVMwljk1F3RlQTqS06?=
 =?iso-8859-1?Q?ApP8gFr6QCRFDQyadyg5sDhw/H6D2I8yunlkdte62SJWfef9D2n8SoO5ly?=
 =?iso-8859-1?Q?uBq3k0dVGzilQC2mdutIk21SA7OhE7aqlvAqxwWGHWBVG4L6uDPWfTysmE?=
 =?iso-8859-1?Q?rw998e7+GD2WmqVkZsHdjUR8CYjqLUkfi8xszrspsxiYfk01itYD7jUFHn?=
 =?iso-8859-1?Q?cV9u59+hIEQ9sKQAyAy9cojeuw4e3tP3MnDrT/TiFdf2LJVQWEM/4nJSVL?=
 =?iso-8859-1?Q?0Wxc/tl/vvTXQpHWcAYyn0LMP534KGO3gwmK4642u3U8ulJ1YdIHTj2ZFd?=
 =?iso-8859-1?Q?zYDlQZ6OeP583O6LGs0bKedPAD4WseZ5rPsX8jCpqQ1Qt1UfeN3UyqhHEO?=
 =?iso-8859-1?Q?0dMG9qGrLaOuAcntI2hid/Klwcv10DofPYjEjxX+Ay8O7Oc2FCTtVwNXXF?=
 =?iso-8859-1?Q?Or7WeNCBqgie0ER7DELJIUyAJVfQK5WTU16ay5odtXbnLc7P6XvdTRzp4r?=
 =?iso-8859-1?Q?dU84IBVncOsX9JdkyjcOLRAEg79vQ2tgviJ3WWFQlHSc0HH3a0PqE+LyYZ?=
 =?iso-8859-1?Q?zlHByzf4g+TXCp8Ip8Pm3rEN8djJiNcS3gvhQf0YrNw0atoZ8d8n3tDKde?=
 =?iso-8859-1?Q?IP6TtutxBqFCUMnWzZLYDC/bOGmGyZE9Xz9HPXI0OeMcI5pB7f5A1Ardqz?=
 =?iso-8859-1?Q?jWEiPPxterIbCrWbKx268pZiPb25TrA9elLaP2zed+dmvk+I+oVR9ausbU?=
 =?iso-8859-1?Q?dLV9hlx4N23MkztqZVqaMJk/j5JyTCdhBxj2dG+u1pkEuZrVFFh76S0URe?=
 =?iso-8859-1?Q?uVKojbWglHTJK/3nNxjrFofLFdsxcnZDhELgrJLAW3tzGl+lEJGA32iwMM?=
 =?iso-8859-1?Q?a6gqhWGR/j+bnIXs9rU9Nw4ee/EoEp22NXk44/4pr8hS6vtU2Y29XtraOl?=
 =?iso-8859-1?Q?JH2q7yQcMvK30HDEvYuvmN5bPufsACyg96nfW3T2oO1KCT3/eVEWkuw9N/?=
 =?iso-8859-1?Q?IxR6de8dzYSLcxTXLLmYI7maBkjsZJpKcB4Jti7fd/Yfi8eNNIAs0HxP/x?=
 =?iso-8859-1?Q?OM5rYczdd39jE0B3WfoXnJC1ETM6ihVkg4m2LGqNao+Ym30nZpjDC7vCd8?=
 =?iso-8859-1?Q?MogiUDUV4XDW+5xaoKzrv6/P0zTcIGJQpAv69Hs+FNh2iSOvFoGyNDlEve?=
 =?iso-8859-1?Q?rUTj/y/oTClNTaCzuGJwr79aWhxFuGLwGW7ofYFjkxDYPvSAsR5eiFaScq?=
 =?iso-8859-1?Q?7H74v9cOG66lyLfSL4uYoUyzzdgUM0zbH/DyhlL2s9Aw3g9LFDEyaXpuD9?=
 =?iso-8859-1?Q?EVl0fO3sQtYqGX45DjlTdrMRCxKP9MHWmeNnP3MZpLr50dmvVGhuBpRgRR?=
 =?iso-8859-1?Q?rMCCGA8m136d2I3buZzfPmiMkFWqOxLB3w3kLjnS9/Paqef/lOKJKKhB5i?=
 =?iso-8859-1?Q?XTAdYEZ0KmouQGQrSumIRVBsrxG8JpWGA/GuHoqhLDSgOGrGzOPbqHe7HA?=
 =?iso-8859-1?Q?A=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB8946.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?odkfE0cpbgcKven9DOOw0YTg35u+NHCg1yGixQuVrjx9bYzpeB+33BDg5u?=
 =?iso-8859-1?Q?UJ3VCdvjq/S+/KKE0U270Fb8eXQZ9d6LVejVp2uGv8xrgLDZNhFAHDcNz4?=
 =?iso-8859-1?Q?zr6Bok4TL6DvobBUSw4tQuGIVDLGv+BakTI+SC77SPFpTcVxzppqLAv+rO?=
 =?iso-8859-1?Q?5BxcLC706Kf9wr+/GEtcOYtmBPxkOdpAciBcAZd+uDDkjhKdqLZwZ3D+LD?=
 =?iso-8859-1?Q?fSPS6cpuK5gmX1Rh18XzgHNH1eTksZODpq/2JMLVHQYf94ipfiTgJE6WL1?=
 =?iso-8859-1?Q?mm2GoCxWVTWOj3kDR0B0PHu3iJZX8Z2Gdk6xt3+hJ25kTcv5orfnE/gneX?=
 =?iso-8859-1?Q?ETnzLjdqCDGWZrB0NzStm2yMdYbAyfHp+3lPeaHycrbeFBn1XPPxS47RJe?=
 =?iso-8859-1?Q?kaOcEh7q7CL9CBJxLToNTiLZsyK6wI7ifY9EB03WBlLp1A6KdsrfQ6VlX/?=
 =?iso-8859-1?Q?216PLUsELKqtCMZkdZafNT1RkAtCpySmqappygCFD9DnhQfV5KwO1sjL5Z?=
 =?iso-8859-1?Q?7RN7zvxmbgBH/ZNwH02acCenBmZgwl1VdCNWQ+5AeNtogSDkn5vQ2PY4Ej?=
 =?iso-8859-1?Q?VecaC6dakhBOfMpG4mRkDt5UfQyLcnKRNmd3iU0cXxIcVhOAV4bXCXUuYZ?=
 =?iso-8859-1?Q?DFRQEm+MYwqNG/CSxUvI+T/EwJ3Ij1ljyBJsEwdpFglvH9Ur2FjD+Bg714?=
 =?iso-8859-1?Q?INsS3+L9x/GTRHh/pGUcguxwVLUSw7WvBah7vAR+YQ44IyXXY1Co0rRQGa?=
 =?iso-8859-1?Q?yAB046UoTZOmBsJKWMXTBJlxx25PNuQmeF1IKAxGL2f26+ZHlWpFsbm9Vv?=
 =?iso-8859-1?Q?MMgyVo0Qt3xJw/ROJA+bHkcvDn+VVbYSZXE/00RFCEip6EHMTEID9vWqIS?=
 =?iso-8859-1?Q?MPcQGR9BSZu7+DrRewV+IeNSpyAn8I3mVRy0Rci4A73TZWeEvDGHCYYs2F?=
 =?iso-8859-1?Q?UGda8BHZG7matV+AT37JOJSo2sPjsE1TnmyITvDQJw5qtGMMKdpgeXcUR9?=
 =?iso-8859-1?Q?5jSm2CEB5gOybCFXjBuVn4Ahe+DPGMOi8t54/9O97Al+M5OZQX5TYBHggi?=
 =?iso-8859-1?Q?wsRQLM93u/2gmtbHbtUZQrVGTJ9z43NOSzd0z/zTkYUuF+r/qOmpei0ZBU?=
 =?iso-8859-1?Q?qvhKQ97RImU9QAqjC+98ePB+HqbcdtT5A/z9NH08iwGMU4qdSQdvpBfQGb?=
 =?iso-8859-1?Q?P2Gc6y/giFny/r3+rh9/3V+rV1/ooarp6zPTJT8vO1Y1T0ssqbobRAR5CK?=
 =?iso-8859-1?Q?SS/6W7UJ2/KMJZY4AkDgY0oXaGCR5tbPH0hdIbbKCK115Jem7tgglycXuB?=
 =?iso-8859-1?Q?T4Zsb4o8zDPLzvbnVTHPaZgwqsJXxIIBZn6t2gKvTekR5fLjgSa8GiGi8L?=
 =?iso-8859-1?Q?ColoPdNVjmaKbDms/1Y4A6AqFbkzK3HSNu+Tcef5Mi2ZrkKCsMilI1m580?=
 =?iso-8859-1?Q?PokGFACtZvVKrxT7HPfqhWAjuuFxrBuDQeOgvJa+3+0AOXeyQkEO5RMCji?=
 =?iso-8859-1?Q?hLzbg4yHmaH2PYBBDsLalXZZHpwRade/tCTtez0WGrF+h0WuSdGNOiM97x?=
 =?iso-8859-1?Q?7NedmSLSqqLFUUQatLW6QcyxD7RsiWTvMYTq3UYbWFEOy2ZYx8XCwRGBo1?=
 =?iso-8859-1?Q?4JnDsuNu6FWXdzgDfVSpUwmsuRD6wqwwGnbIvHqivoHQ/KPpB0MVyJMg?=
 =?iso-8859-1?Q?=3D=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: PAVPR03MB8946.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7f625ed4-e273-484f-e5c8-08dde651966c
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Aug 2025 16:40:24.6879
 (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: RzoJ7iW/uZjRQPRrN5wbK4bf0LVs/VhquD1y5/rEVwaF2EDOB8oXbemrAmCFJ/Ois1I50k7Pi2PI3TWdmb9pWjdKCpNd6yvNX8O87sISE8A=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB7705


Inroducing V6 patch series  on top of the Xen version 4.20-rc2
which includes implementation of the SCI SCMI SMC single-agent support.

This patch series is the first chunk of the
"xen/arm: scmi: introduce SCI SCMI SMC multi-agent support" which can
be found at [0]

SCMI-multiagent support will be provided as the followup patch series.

[0] https://lore.kernel.org/xen-devel/cover.1753184487.git.oleksii_moisieie=
v@epam.com/

Patch 1 "xen/arm: add generic SCI subsystem"
- rebased and refactored
- introduced DEVICE_ARM_SCI DT device class and used for SCI drivers probin=
g
instead of custom,
  linker sections based implementation.
- added SCI API for Dom0 DT handling, instead of manipulating with ARM arch
dom0 code directly.
- RFC changes in XEN_DOMCTL_assign_device OP processing
- Introduce arch_handle_passthrough_prop call to handle arm specific
nodes

Patch 2 "xen/arm: scmi-smc: update to be used under sci subsystem"
- update driver introduced by commit 3e322bef8bc0 ("xen/arm: firmware: Add =
SCMI
over SMC calls
handling layer") be used under sci subsystem.
- no functional changes in general

Patch 3 "xen/arm: scmi-smc: passthrough SCMI SMC to guest domain
This is new change which allows passthrough SCMI SMC, single agent interfac=
e to
guest domain
cover use case "thin Dom0 with guest domain, which serves as Driver domain"=
.
See patch commit message for full description.

Patch 4 - docs: arm: add docs for SCMI over SMC calls forwarding
driver
- add documentation section for Simple Arm SCMI over SMC calls
forwarding driver.

Code can be found at:
https://github.com/oleksiimoisieiev/xen/tree/scmi_upstrv5

[1] RFC v2:
http://patchwork.kernel.org/project/xen-devel/cover/cover.1644341635.git.ol=
eksii_moisieiev@epam.com/
[2] RFC v3:
https://patchwork.kernel.org/project/xen-devel/patch/20250311111618.1850927=
-1-grygorii_strashko@epam.com
SCMI spec:
https://developer.arm.com/documentation/den0056/e/?lang=3Den

SCMI bindings:
https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree=
/Documentation/devicetree/bindings/firmware/arm,scmi.yaml
https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree=
/Documentation/devicetree/bindings/access-controllers/access-controllers.ya=
ml

Reference EL3 FW:
RPI5: https://github.com/xen-troops/arm-trusted-firmware/commits/rpi5_dev/
Renesas v4h:
https://github.com/GrygiriiS/arm-trusted-firmware/commits/rcar_gen4_v2.7_v4=
x-scmi_upd/

base-commit: dbe60f244c (Update Xen to 4.21, 2025-02-21)

Changes in v6:
- rebase on top of the latest master
- fix return value of sci_dt_finalize() call
- add R-b tag
- added generated helpers and types go files
- rename cmdline parameter to scmi-smc-passthrough
- fix goto tag in parse_arm_sci_config
- add link to the scmi bindings used in the doc
- remove mentions about HVC calls from doc
- rename cmdline parameter to scmi-smc-passthrough

Changes in v5:
- update Maintainers file. Set role as a Reviewer
- rebased on the latest master branch
- Introduce arch_handle_passthrough_prop call to handle arm specific nodes
- rename dom0_scmi_smc_passthrough to scmi_smc_passthrough
- rename dom0_scmi_smc_passthrough in documentation

Changes in v4:
- fix SPDX-License
- rename DEVICE_ARM_SCI DT device class to FIRMWARE_DEVICE
- move XEN_DOMCTL_assign_device code in separate patch
- Add documentation for SCI SCMI drivers
- xl.cfg doc
- fix comments from Stefano Stabellini
- fix toolstack code as sugested by Anthony PERARD
  - use MATCH_OPTION()
  - move arm_sci struct and cfg params in "arch_arm"
- add SCMI passthrough for dom0less case

Grygorii Strashko (3):
  xen/arm: scmi-smc: update to be used under sci subsystem
  xen/arm: scmi-smc: passthrough SCMI SMC to domain, single agent
  docs: arm: add docs for SCMI over SMC calls forwarding driver

Oleksii Moisieiev (1):
  xen/arm: add generic SCI subsystem

 MAINTAINERS                                   |   6 +
 .../arm/firmware/arm-scmi.rst                 | 180 ++++++++++++++++
 docs/hypervisor-guide/arm/index.rst           |   9 +
 docs/hypervisor-guide/index.rst               |   1 +
 docs/man/xl.cfg.5.pod.in                      |  34 +++
 docs/misc/arm/device-tree/booting.txt         |  15 ++
 docs/misc/xen-command-line.pandoc             |   9 +
 tools/golang/xenlight/helpers.gen.go          |  41 ++++
 tools/golang/xenlight/types.gen.go            |  12 ++
 tools/include/libxl.h                         |   5 +
 tools/libs/light/libxl_arm.c                  |  14 ++
 tools/libs/light/libxl_types.idl              |  10 +
 tools/xl/xl_parse.c                           |  36 ++++
 xen/arch/arm/device.c                         |   5 +
 xen/arch/arm/dom0less-build.c                 |  40 ++++
 xen/arch/arm/domain.c                         |  12 +-
 xen/arch/arm/domain_build.c                   |   8 +
 xen/arch/arm/firmware/Kconfig                 |  25 ++-
 xen/arch/arm/firmware/Makefile                |   1 +
 xen/arch/arm/firmware/sci.c                   | 154 ++++++++++++++
 xen/arch/arm/firmware/scmi-smc.c              | 191 +++++++++++++----
 xen/arch/arm/include/asm/domain.h             |   5 +
 xen/arch/arm/include/asm/firmware/sci.h       | 200 ++++++++++++++++++
 xen/arch/arm/include/asm/firmware/scmi-smc.h  |  41 ----
 xen/arch/arm/vsmc.c                           |   4 +-
 xen/common/device-tree/dom0less-build.c       |   4 +
 xen/include/asm-generic/device.h              |   1 +
 xen/include/public/arch-arm.h                 |   5 +
 xen/include/xen/dom0less-build.h              |   9 +
 29 files changed, 992 insertions(+), 85 deletions(-)
 create mode 100644 docs/hypervisor-guide/arm/firmware/arm-scmi.rst
 create mode 100644 docs/hypervisor-guide/arm/index.rst
 create mode 100644 xen/arch/arm/firmware/sci.c
 create mode 100644 xen/arch/arm/include/asm/firmware/sci.h
 delete mode 100644 xen/arch/arm/include/asm/firmware/scmi-smc.h

--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 16:45:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 16:45:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099710.1453480 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urfkN-0008Gg-Ln; Thu, 28 Aug 2025 16:45:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099710.1453480; Thu, 28 Aug 2025 16:45:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urfkN-0008GZ-Hf; Thu, 28 Aug 2025 16:45:11 +0000
Received: by outflank-mailman (input) for mailman id 1099710;
 Thu, 28 Aug 2025 16:45:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FxJR=3I=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1urfkM-0008GT-Bb
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 16:45:10 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5a53074b-842e-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 18:45:06 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by GVXPR03MB10577.eurprd03.prod.outlook.com (2603:10a6:150:14d::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.16; Thu, 28 Aug
 2025 16:45:04 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9073.016; Thu, 28 Aug 2025
 16:45:03 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5a53074b-842e-11f0-8dd7-1b34d833f44b
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rEbZQl4JF6sCdLQVSzrYtoj58mxrttygij3BVtZWWI9mvUm1+1wWo2T+yRaW300+4utrV19Crq1D+zuQ+ax6SM4X0j7lP4y7gVxX+Msdh1cXKIi7dUJ3RKjrIx1L9St/FqiphxafaWfmQOq75iVI4/xT46a58fM55MbZ298o3nuk/DZJ3c0/5NHzQjMBVsdUYS5IiggQ2ACQb3KXIv1+An8v6YbUO9Eu74y3mvv9QP+Ns/YpOLfPRVROk1ZYFgsB8y3rM9J2wndyXEwJ1343RUZ7kZ1ETn5cCdrcKK1I8vWrnWVEOVYIcMNSdx0e0BDdd6GpZludV2yc5EOYicrz8Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4lKqkXtvYHZH2i360Y63KHXnqCWVk5nEnbLNG8/tg7U=;
 b=XtzHAHSwUmyAn90w9C4B+eGCWKDtazfdPpFwM+OrOb1XfJv5W/yx1fQhBoptqafCQ936DL4gGoMfl5udlyRjC7/hlbNeofX5hHN16TlMBAJD80ELAgV9VFnVpSHReLu2LZMoCiflXv1R9mzUkTmWkP4Gm7pFq9pd7XJmiDxPbwEW0OJp9Uz2FpDQOpOzFG6kbkWtMj6+Tc6yMRGhBUXb7EfZPYgXF6emqGAYgH/VU78sOGPJu8bqkuvLNXSr63GBGc3jK3g6bdfRbDMFzb7ay489/QR1dM9YKLxK7UR1dT5mbwqfH4c70e46B7CbH0PpDqLnYJjAdGgYvNXv7e1Ewg==
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=4lKqkXtvYHZH2i360Y63KHXnqCWVk5nEnbLNG8/tg7U=;
 b=hp8cEEZMt2lnXQUB7NBNMhaLwMtMCGHJbUOsb6r+N3zakz/pXttlVderPeYhlqw6+FrnmSgO3E7R+7t1enGmIQ6Jce2ulSk/AioJmNYcQwf+b4zW8WouQGqv6svVgqe9FXeyNnWbVbdnaC6gmmvCu6UL999qxIYxXhJiokc9O5fnG14npAFWuHUk+iDuVw7/E4/phDTIuNAk6cyM0A2Vnd07LtvEGG3a9Tw9cOklDSY3whedUZlDbsP3MYFFXRo97m/2vldgaNrdZpGq++vNuKZTlEMzSB+39sdrnsjeljVnO6VXVG5PqKbX1cpk8qTsjsp05NvKI53U+DmqAuE7wQ==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "olekstysh@gmail.com" <olekstysh@gmail.com>, Community Manager
	<community.manager@xenproject.org>
Subject: Re: [PATCH v3 11/11] CHANGELOG.md: add mention of GICv3.1 eSPI
 support
Thread-Topic: [PATCH v3 11/11] CHANGELOG.md: add mention of GICv3.1 eSPI
 support
Thread-Index: AQHcFpKAJEYb0CN0HkuGQwymf9ybDbR4FMcAgAA0R4A=
Date: Thu, 28 Aug 2025 16:45:03 +0000
Message-ID: <7078821a-5a6f-4797-b00c-c194365e3555@epam.com>
References: <cover.1756216942.git.leonid_komarianskyi@epam.com>
 <9dc68c29751aeacf37b51d3bd345e87e9a0f0ccf.1756216943.git.leonid_komarianskyi@epam.com>
 <bce5e07c-eee7-481b-a833-4d5d8bbce78f@gmail.com>
In-Reply-To: <bce5e07c-eee7-481b-a833-4d5d8bbce78f@gmail.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: GV2PR03MB8678:EE_|GVXPR03MB10577:EE_
x-ms-office365-filtering-correlation-id: b9241551-1512-4f1a-8a96-08dde6523cd1
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?QnFrRTRYUk8wK25mQ0ZoWm1NNS9nZ1c4RzFiSFN3RGxVTXJQNlpURGJFdENq?=
 =?utf-8?B?bTJHeUN6SVZCL3A2cFdrcVZiVDgyamVwQzdSdUowZUtvdEJLcXdTeFpDZlpl?=
 =?utf-8?B?aGF5S2ZtWEhuTGVwaXpUVkFiV0RNZWs3cDRrRGFKK2kwYVpuSVIvcUdjbHdV?=
 =?utf-8?B?M2ZtZVptT3ViRnhJak1tbmEySGFHUVQvLzVWL1pVNGt6S0E2TERpQTlOa05n?=
 =?utf-8?B?SlI3OHl5T2JlM1piQ0krcDJMN0dGek5zczdhZHdoYkhmSW14cHllSmhxN2VF?=
 =?utf-8?B?blZNUFRGcTFCcUlhaU5QQlB6K2xhSXVwUHlqdTEydVZwSXFoSWRNaUhMdnVU?=
 =?utf-8?B?cHpuRHkyRzJ5ZDdkOXB2TjBuOEdoSTVsNEgrR0tuWXRaUDZyWkdtY0pwUkJZ?=
 =?utf-8?B?MUh4cHl5RTJrTGFMd3l2dGdPczlMLy9mUlBoTFJGd1RCa0J1K25ubnRNcTMr?=
 =?utf-8?B?YVMyUmtOSnBKeEF4anRmMElpVVlvZDIyMkNmRGRYZkx6ZHZRTGNaTitHcnhR?=
 =?utf-8?B?dlRKZzA4cGxTU0ZvT2xiWnFrWml5S3hTL2dOYW5FeDR0dzFKbjlwdFFNWXNY?=
 =?utf-8?B?S2Y4WEhrL0dQYTBsWE41NXI5ZjFxL1dyNWhIWGdyVDJRaENKMFhjcWJLOU1O?=
 =?utf-8?B?R0VMKzhlc2psemRrc1UvRis5eDloQUxyMENiQmttMDRDWjBPQ1JvUUphSVVh?=
 =?utf-8?B?MjZUL1BtTTVHcklsNzUyaXZyekcraS8yOEtNMWFDTkxBM21zMEVxTmpFV1M0?=
 =?utf-8?B?VDZtUTIwYnFEcDRQRkRYdkV1Wlp5WHdIK2R0TEQ0M2VtN3hjVkJsK3Q4RFp5?=
 =?utf-8?B?L2tPWkpMTWhlcytTdnBzc1ZiSHU0RG52Z3BMakJiS3l4QVpMcUFKMmFYOVdK?=
 =?utf-8?B?QVlWZG1IM0labTdEOTBzaG96TThXRlNiZGYyMlQ1MEtTLzZmZUYrN0RRdXM5?=
 =?utf-8?B?aitKakM0enRPVHNnSEFhTFVBMjJLcTJPa0NvQXFCeUhNOGJVSEN5MzZlT3Fa?=
 =?utf-8?B?bHlBVEVqUzJyODdXTjkrR2Z4ZDIvbWU2UVdMRlZoMGlOanEzeTVZSDhkOGlO?=
 =?utf-8?B?UTI1Nys4YVVLbEh3d3ZOYmZEWldJTlBJcy9FOTc4cGl3UGY1YWs0SmN5d01M?=
 =?utf-8?B?cVlDb3RybVBHYXJrRkhMNEtFOU1ucUp2QXVqRkxkOEtQaU5CK2U5b0tQQi9h?=
 =?utf-8?B?emZURGtXbXR1UW9EaE5BZGdaVU9DWWlGcU1pRzA3UHl3UFBBN1NuRVU1bDF0?=
 =?utf-8?B?dUgzaHNnSmM2cWtnZkRrQ0ZYdHJIMVBjdXk4QVFRZ05oSGoycGRyM3FyMW41?=
 =?utf-8?B?RVczZlcySjYzN0wrR1B2dnJSUUlzdmVPYUpBclFZZnZKZUtkTlVGWEVUZlgy?=
 =?utf-8?B?WTRlNWl4YmU3dVdTUG80ek5XeDRCUW9xUHZBVmRGNXVYdnNsdy9icWZ0QWtE?=
 =?utf-8?B?eHZacmpKK0tlWXhrZFBBUDVSZTZjYWUrODdhbWcrdXNBcEtROXY1dGF1eXR5?=
 =?utf-8?B?SW55VXN4ODFRUjk3cFc3Q2ZtejcvSzAxS2QvQmdoakdReHZpcWlSUVVmekxJ?=
 =?utf-8?B?WmpubndNemVBL0NOdWVVcDlWbHhobU5YbENGZWxPSkNSTzNYLzN2N3M5bytT?=
 =?utf-8?B?cnRwZlA5aXJEVUxGZXNiaGMvbkhvT3JuZjIwT0xaaDM5eHBDY0w1SHRnT2dS?=
 =?utf-8?B?cUtyR09CRUpMOHk3L2xWaFFOWnRJQ01aQzBSR2FVM3pxVHVRb1Z4ejQrN05q?=
 =?utf-8?B?MVM1bXQySGtMSVdnS1puQnVVaDJtV0ZZVk5xbXUwNWpRNTdDTTVNcDFXQ0lR?=
 =?utf-8?B?dzVWamkrQVNSV0NtVzY2SlY1bkpTdlNTd2QweFJiUjVrNnBmN0M5ZVhkc2Rl?=
 =?utf-8?B?VVFYNEI4bmNoVkFRaFBtNHJXYjJjVEk2a1RlaktTbkNZSW41MkV5SG9hY2ls?=
 =?utf-8?Q?arTS3WRiJRQ=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?M2Qxbkg2cFZ0YlYvU2c0SGFvL3RaY25FZklRek5UTnY2aUJRTjdVVVB2bjYx?=
 =?utf-8?B?dGordHZHZklFMWNBWUJFVWIySVN4N09iTTJxbnhXaWhSbm1aZnlCeVQ4bWxJ?=
 =?utf-8?B?U2lUMDVCNFpPcndJZjViUHlxYWJ5TStvYUJiRGRXZFNKa2JCQWdFWjQ1RktV?=
 =?utf-8?B?Yi9TK1lGL1JBV3B0aEVyWlF5UHkvems1RjMzamtlRXhuSTJmSjhkNzJ2WlVX?=
 =?utf-8?B?cTEwSyt6eGUzaVJSdFM2anB4UE4vZmFUNFhjQ2hqNlp4dTUzSW50Q0tPc0Yz?=
 =?utf-8?B?cGNUZHdOTXExc2FudnZ5T0FvL1EwYlpBRk1nNnRJYmNZTjVEVmhjSVdZOTlL?=
 =?utf-8?B?NEhBUmV2YjlLLytpdkJOenFOaEFoQ1dFN0NNWTRjSFRLVWF5MjQ3V2ZUSU03?=
 =?utf-8?B?KzdKT1NNMlhkN050cWVlZXUwaEhnSXl3Zjh5NUdlVFpuaFRCYmlNT3NuZDJT?=
 =?utf-8?B?ODF6aFZCZCtlL0liZFRNVzdDV2g3MmVWQVl5Y1dibmZ1dDZ2L3dic0FJMUlX?=
 =?utf-8?B?MmV1OUI1M1U2bmZYYXNjV1ZuZGp2SEIrWnVkOEtxa2xONm1hclRYb3g2L3pJ?=
 =?utf-8?B?aDhlVXQ4NE44cnFkM2o0NHBaWVFMWmZXQTlJaGIvOHZ1R1UzbExLSVJrNHBr?=
 =?utf-8?B?V1FwRE9pM1ZIeFJDK2NDTDhrRkluYnpzeUlVSE9XMVIrRThqTTl6bGNEUjcv?=
 =?utf-8?B?NVh3UUZZRXl2SllyMG9oQlJSNVVRZ0dmZ09MMWY0d0lTWkVPYkJ3UkdxYnlB?=
 =?utf-8?B?ME1wUzhXbDE2TFVjVmtSckR2ckRaYnk5cTVRWG8rL2JRV2VFSXNLVDdzcENN?=
 =?utf-8?B?LytldHJyR05ORXVDU1lEWHJvYXE0N1MwVWRYM0E5YVZBL0tQV1c2N3NpSnhn?=
 =?utf-8?B?UUlaRDhieW5DTVFFbktPZG5kdnhpclpzYlk0MmRtN00rYnkvTFZQU3B4dytK?=
 =?utf-8?B?dm53WFYybTUvUHpWYk5nNlFSWFBIblFNVVJuMTh4YWJvaDVBK1RzWlp5bEli?=
 =?utf-8?B?My9yRUZXUmRidlFZZkNEV1FDb0QwNmlGWW1ZUEpKdXNiZ0VuQzhHVFRBWUpX?=
 =?utf-8?B?dnU0SHZjdUppSnphOHR0Nyt4Zlk4M2hRRXhySWF2M3BPZXVQMDdHaXpWc3JZ?=
 =?utf-8?B?MkdQejlvcnhrVlFCQmkramxCMVlLVzgyeWV0eVdtWUo3c05URGVBcWwxVEtw?=
 =?utf-8?B?L3BmSlpUMVMwRHV1enR0SWd5K3hrcXUzZFlwUVhNNEluczNFM3lOK0VmaU5z?=
 =?utf-8?B?cWtycVZuUW52eEo0UVhzTzRzL2MxbGs5UitkUUFNTjRlTmkvQzI5OTBoYUN4?=
 =?utf-8?B?OUIrVmo1cU56eUNPcG5pSFNEa3dKRFM3MHU2MkVRNmZxSFdPK1dIeXdkZDVS?=
 =?utf-8?B?bE11M0J6c1Z6SmxFVFpMdmdGZ0oyNncxSHN0SzMwVU0rSDBQMmJ0ZFladnlN?=
 =?utf-8?B?bWtuOGlMaklDblBkcmVtR0k0T0hFeTRERFByTVZpek45RHFBbjNkUitBbm8x?=
 =?utf-8?B?RllpS2IvOVhHbGIvTEovTXR6MU9LVHV5azh2dGVoSjAwckhuMmd4ckJwQ2lJ?=
 =?utf-8?B?R0lPVy90UmoxdUVhT1Fza2hLYU9ndjBPS1ZWYVlEZ3Y4aVlxejNQZThHMytu?=
 =?utf-8?B?bU13M0hsUnB1cXRXalR0dXQwZ0l4N0NiQnk5MUVYblE4QzJISU1TUXlvd2Jw?=
 =?utf-8?B?cUpldGxMdTJuaGl4M3I0RDFxUEdESk1Gbkk2WlArV0lXQ1R0RFZrRUdaK2o0?=
 =?utf-8?B?d2x0KzFNUDFoNlcvbTVkSWZPYWdRc3FXc2Zma2NDcWxwYStrNlordjNVTVpN?=
 =?utf-8?B?bDU4bmZ3SjNCTG16TE02ZmpyQzBKd3dXYkdObEZBazVYS3MrOCtwSUl1bHpj?=
 =?utf-8?B?K25mWm56TVorOHpWVHVLaGNQaU9HTDhyT2YrYUxrZTFhZlJkK3o1WEc4UXF2?=
 =?utf-8?B?Sm96ZHhYcjh0bWhCSVRLVCtlUGpzNFZsdm1VUVdOTXJoSmNIWDZyMzBTeFd3?=
 =?utf-8?B?N1M5aG1wU25TVTQ1dUVnc3dtK0xnblRJVmtVMEtrcFpLeURwdEQrU0VwQjlK?=
 =?utf-8?B?ZWw5Z29weWxlUGdRTEljK3p3YVg4SFBSYitJWnU5UERPSWVwemtxdjdYNEFS?=
 =?utf-8?B?MFY1aG5qOC9CRVRPS0c5ZWtrQ0JKSWNMUE1qVnlDQ2VkMFlka0twRHdqaWJq?=
 =?utf-8?Q?+0QBJ5eprwyBkOS2hWKG7ds=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <199479F87EFB8241AAEAAEAD2EC69E76@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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b9241551-1512-4f1a-8a96-08dde6523cd1
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Aug 2025 16:45:03.7972
 (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: 2v2eYCej+cRR/ftzITAXY8HTZf/d5pT1tO6v4HH9rIbaROveFwbi8JVzhe2EvUCmPEuBe7LPZA17S+ASLCPZyTZJxsfKkkBVyLtfsI4xZkU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR03MB10577

SGkgT2xla3NpaSwNCg0KVGhhbmsgeW91IGZvciB5b3VyIHJldmlldy4NCg0KT24gMjguMDguMjUg
MTY6MzcsIE9sZWtzaWkgS3Vyb2Noa28gd3JvdGU6DQo+IA0KPiBPbiA4LzI2LzI1IDQ6MDUgUE0s
IExlb25pZCBLb21hcmlhbnNreWkgd3JvdGU6DQo+PiBUaGUgR0lDdjMuMSBlU1BJIChFeHRlbmRl
ZCBTaGFyZWQgUGVyaXBoZXJhbCBJbnRlcnJ1cHRzKSByYW5nZSBpcw0KPj4gYWxyZWFkeSBzdXBw
b3J0ZWQgd2l0aCBDT05GSUdfR0lDVjNfRVNQSSBlbmFibGVkLCBzbyB0aGlzIGZlYXR1cmUgc2hv
dWxkDQo+PiBiZSBtZW50aW9uZWQgaW4gQ0hBTkdFTE9HLm1kLg0KPj4NCj4+IFNpZ25lZC1vZmYt
Ynk6IExlb25pZCBLb21hcmlhbnNreWk8bGVvbmlkX2tvbWFyaWFuc2t5aUBlcGFtLmNvbT4NCj4+
DQo+PiAtLS0NCj4+IENoYW5nZXMgaW4gVjM6DQo+PiAtIGludHJvZHVjZWQgdGhpcyBwYXRjaA0K
Pj4gLS0tDQo+PiAgIENIQU5HRUxPRy5tZCB8IDEgKw0KPj4gICAxIGZpbGUgY2hhbmdlZCwgMSBp
bnNlcnRpb24oKykNCj4+DQo+PiBkaWZmIC0tZ2l0IGEvQ0hBTkdFTE9HLm1kIGIvQ0hBTkdFTE9H
Lm1kDQo+PiBpbmRleCA1ZjMxY2EwOGZlLi5kYzM0ZDI5ZDk5IDEwMDY0NA0KPj4gLS0tIGEvQ0hB
TkdFTE9HLm1kDQo+PiArKysgYi9DSEFOR0VMT0cubWQNCj4+IEBAIC0yOSw2ICsyOSw3IEBAIFRo
ZSBmb3JtYXQgaXMgYmFzZWQgb24gW0tlZXAgYSBDaGFuZ2Vsb2ddKGh0dHBzOi8va2VlcGFjaGFu
Z2Vsb2cuY29tL2VuLzEuMC4wLykNCj4+ICAgDQo+PiAgICAtIE9uIEFybToNCj4+ICAgICAgIC0g
QWJpbGl0eSB0byBlbmFibGUgc3RhY2sgcHJvdGVjdG9yDQo+PiArICAgIC0gR0lDdjMuMSBlU1BJ
IHN1cHBvcnQNCj4gDQo+IEZvciBjbGFyaXR5LCBJIHRoaW5rIGl0IHdvdWxkIGJlIGhlbHBmdWwg
dG8gYWRkIGEgYnJpZWYgZXhwbGFuYXRpb24gb2Ygd2hhdCBlU1BJIGlzDQo+IChhcyB5b3UgZGlk
IGluIHRoZSBjb21taXQgbWVzc2FnZSkgYW5kIGFsc28gbWVudGlvbiDigJxmb3IgWGVuIGFuZCBn
dWVzdCBkb21haW5z4oCdIG9yDQo+IHNvbWV0aGluZyBzaW1pbGFyLg0KPiANCj4gV2l0aCB0aGF0
Og0KPiAgIEFja2VkLWJ5OiBPbGVrc2lpIEt1cm9jaGtvPG9sZWtzaWkua3Vyb2Noa29AZ21haWwu
Y29tPg0KPiANCj4gVGhhbmtzLg0KPiANCj4gfiBPbGVrc2lpDQo+IA0KPiANCj4+ICAgDQo+PiAg
ICMjIyBSZW1vdmVkDQo+PiAgICAtIE9uIHg4NjoNCg0KWWVzLCBpdCB3aWxsIGJlIHVzZWZ1bC4g
SSB3aWxsIHVwZGF0ZSBpdCBpbiBWNSB0bzoNCidHSUN2My4xIGVTUEkgKEV4dGVuZGVkIFNoYXJl
ZCBQZXJpcGhlcmFsIEludGVycnVwdHMpIHN1cHBvcnQgZm9yIFhlbiANCmFuZCBndWVzdCBkb21h
aW5zLicNCg0KQmVzdCByZWdhcmRzLA0KTGVvbmlkLg0KDQo=


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 16:54:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 16:54:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099740.1453488 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urftX-0001nx-Df; Thu, 28 Aug 2025 16:54:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099740.1453488; Thu, 28 Aug 2025 16:54: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 1urftX-0001nq-BB; Thu, 28 Aug 2025 16:54:39 +0000
Received: by outflank-mailman (input) for mailman id 1099740;
 Thu, 28 Aug 2025 16:54:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=J8r6=3I=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1urftV-0001nk-Lr
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 16:54:37 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org
 [2600:3c0a:e001:78e:0:1991:8:25])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ac117987-842f-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 18:54:34 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 0F66D45196;
 Thu, 28 Aug 2025 16:54:33 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id E6C34C4CEED;
 Thu, 28 Aug 2025 16:54:31 +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>
X-Inumbo-ID: ac117987-842f-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1756400072;
	bh=3QSqWFwhLXFpgIQB1AhDzeFYEFSsyOykW/t8YMcdvDs=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=Utug3C4qHAngGkUPRUqPcVpMv2skHSOiyTR1dzioCxiyV/N0D3D3xwLMN4kKVhjRg
	 R1e3GaQ66/QDlvAbclIdn1b0xrBO+DODu7rLesJ54dZQOJ+qr4UwXmhZorK6X6L1pe
	 /mKnN3THYo/PX+SSQI5FBBXcz4a8pvxXQG8iBycA9jlkdj9zJMMNMWOCxqVVHcRMG0
	 jrJGkyKqRduB/ujzl45UowCIqtVEnLBTqm/vLH4mWU4+vwRxIYccg9OHedq9aiILZs
	 hmuixBFk7xqznER0ERf4UjMVjXknV66U4Y9wYKKHbgLQRBDuheIDJSUa9AzDEN/7Pr
	 p4K8MwEWQi7/w==
Date: Thu, 28 Aug 2025 19:54:27 +0300
From: Leon Romanovsky <leon@kernel.org>
To: Keith Busch <kbusch@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-mm@kvack.org, linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org, linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 15/16] block-dma: properly take MMIO path
Message-ID: <20250828165427.GB10073@unreal>
References: <cover.1755624249.git.leon@kernel.org>
 <642dbeb7aa94257eaea71ec63c06e3f939270023.1755624249.git.leon@kernel.org>
 <aLBzeMNT3WOrjprC@kbusch-mbp>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <aLBzeMNT3WOrjprC@kbusch-mbp>

On Thu, Aug 28, 2025 at 09:19:20AM -0600, Keith Busch wrote:
> On Tue, Aug 19, 2025 at 08:36:59PM +0300, Leon Romanovsky wrote:
> > diff --git a/include/linux/blk_types.h b/include/linux/blk_types.h
> > index 09b99d52fd36..283058bcb5b1 100644
> > --- a/include/linux/blk_types.h
> > +++ b/include/linux/blk_types.h
> > @@ -387,6 +387,7 @@ enum req_flag_bits {
> >  	__REQ_FS_PRIVATE,	/* for file system (submitter) use */
> >  	__REQ_ATOMIC,		/* for atomic write operations */
> >  	__REQ_P2PDMA,		/* contains P2P DMA pages */
> > +	__REQ_MMIO,		/* contains MMIO memory */
> >  	/*
> >  	 * Command specific flags, keep last:
> >  	 */
> > @@ -420,6 +421,7 @@ enum req_flag_bits {
> >  #define REQ_FS_PRIVATE	(__force blk_opf_t)(1ULL << __REQ_FS_PRIVATE)
> >  #define REQ_ATOMIC	(__force blk_opf_t)(1ULL << __REQ_ATOMIC)
> >  #define REQ_P2PDMA	(__force blk_opf_t)(1ULL << __REQ_P2PDMA)
> > +#define REQ_MMIO	(__force blk_opf_t)(1ULL << __REQ_MMIO)
> 
> Now that my integrity metadata DMA series is staged, I don't think we
> can use REQ flags like this because data and metadata may have different
> mapping types. I think we should add a flags field to the dma_iova_state
> instead.

Before integrity metadata code was merged, the assumption was that request is
only one type or p2p or host. Is it still holding now?

And we can't store in dma_iova_state() as HMM/RDMA code works in page-based
granularity and one dma_iova_state() can mix different types.

Thanks

> 


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 17:15:36 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 17:15:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099772.1453499 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urgDi-0005VG-19; Thu, 28 Aug 2025 17:15:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099772.1453499; Thu, 28 Aug 2025 17: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 1urgDh-0005V9-Ue; Thu, 28 Aug 2025 17:15:29 +0000
Received: by outflank-mailman (input) for mailman id 1099772;
 Thu, 28 Aug 2025 17:15:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=e5LM=3I=kernel.org=kbusch@srs-se1.protection.inumbo.net>)
 id 1urgDh-0005V3-2l
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 17:15:29 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 969d84d5-8432-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 19:15:26 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id ECDE644C27;
 Thu, 28 Aug 2025 17:15:24 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4A72BC4CEF4;
 Thu, 28 Aug 2025 17:15:23 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 969d84d5-8432-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1756401324;
	bh=ou3iD8shgadPVxQRtF41FaHPfXiCub7fMhAggBLVXMc=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=fnmNyIm6kveacQ6zFjHwSr/ld+cbNXoqmfCrawHp1gvsXVCDDljqqxTV+b1zApRgH
	 5lcwKbYEv5XvzJ74pZRRlHz4xMMdbU2hypSAtpXWfDMqRVbb/qc2SqQSSCNqbZ1peQ
	 BdR01HGV590kQ600i1NoQpXCyGOYKnHeIsk3mGhcH3PGq+tQybbYkfchgS5mr5H49F
	 IvJGdW2sSi79scStsbkC/ihQucpNHR67O3EvTjBCfBwOnwU2YHvQc3Mh/Yo09lKjUz
	 oioVDuGo8iH8GapTPxpdVPh2h5wOe61XtWreqwSjOT2z6hU8npwTgtY7JSO24epBr/
	 2W6Y4P8WQ/UJw==
Date: Thu, 28 Aug 2025 11:15:20 -0600
From: Keith Busch <kbusch@kernel.org>
To: Leon Romanovsky <leon@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-mm@kvack.org, linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org, linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 15/16] block-dma: properly take MMIO path
Message-ID: <aLCOqIaoaKUEOdeh@kbusch-mbp>
References: <cover.1755624249.git.leon@kernel.org>
 <642dbeb7aa94257eaea71ec63c06e3f939270023.1755624249.git.leon@kernel.org>
 <aLBzeMNT3WOrjprC@kbusch-mbp>
 <20250828165427.GB10073@unreal>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250828165427.GB10073@unreal>

On Thu, Aug 28, 2025 at 07:54:27PM +0300, Leon Romanovsky wrote:
> On Thu, Aug 28, 2025 at 09:19:20AM -0600, Keith Busch wrote:
> > On Tue, Aug 19, 2025 at 08:36:59PM +0300, Leon Romanovsky wrote:
> > > diff --git a/include/linux/blk_types.h b/include/linux/blk_types.h
> > > index 09b99d52fd36..283058bcb5b1 100644
> > > --- a/include/linux/blk_types.h
> > > +++ b/include/linux/blk_types.h
> > > @@ -387,6 +387,7 @@ enum req_flag_bits {
> > >  	__REQ_FS_PRIVATE,	/* for file system (submitter) use */
> > >  	__REQ_ATOMIC,		/* for atomic write operations */
> > >  	__REQ_P2PDMA,		/* contains P2P DMA pages */
> > > +	__REQ_MMIO,		/* contains MMIO memory */
> > >  	/*
> > >  	 * Command specific flags, keep last:
> > >  	 */
> > > @@ -420,6 +421,7 @@ enum req_flag_bits {
> > >  #define REQ_FS_PRIVATE	(__force blk_opf_t)(1ULL << __REQ_FS_PRIVATE)
> > >  #define REQ_ATOMIC	(__force blk_opf_t)(1ULL << __REQ_ATOMIC)
> > >  #define REQ_P2PDMA	(__force blk_opf_t)(1ULL << __REQ_P2PDMA)
> > > +#define REQ_MMIO	(__force blk_opf_t)(1ULL << __REQ_MMIO)
> > 
> > Now that my integrity metadata DMA series is staged, I don't think we
> > can use REQ flags like this because data and metadata may have different
> > mapping types. I think we should add a flags field to the dma_iova_state
> > instead.
> 
> Before integrity metadata code was merged, the assumption was that request is
> only one type or p2p or host. Is it still holding now?

I don't think that was ever the case. Metadata is allocated
independently of the data payload, usually by the kernel in
bio_integrity_prep() just before dispatching the request. The bio may
have a p2p data payload, but the integrity metadata is just a kmalloc
buf in that path.

> And we can't store in dma_iova_state() as HMM/RDMA code works in page-based
> granularity and one dma_iova_state() can mix different types.

I see.


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 17:16:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 17:16:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099782.1453508 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urgEs-00061d-AO; Thu, 28 Aug 2025 17:16:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099782.1453508; Thu, 28 Aug 2025 17:16: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 1urgEs-00061W-7F; Thu, 28 Aug 2025 17:16:42 +0000
Received: by outflank-mailman (input) for mailman id 1099782;
 Thu, 28 Aug 2025 17:16:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Rla7=3I=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1urgEq-00061O-IA
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 17:16:40 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20615.outbound.protection.outlook.com
 [2a01:111:f403:2416::615])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c0af379b-8432-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 19:16:38 +0200 (CEST)
Received: from BL0PR01CA0018.prod.exchangelabs.com (2603:10b6:208:71::31) by
 MN0PR12MB6200.namprd12.prod.outlook.com (2603:10b6:208:3c3::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Thu, 28 Aug
 2025 17:16:28 +0000
Received: from BL02EPF0002992D.namprd02.prod.outlook.com
 (2603:10b6:208:71:cafe::55) by BL0PR01CA0018.outlook.office365.com
 (2603:10b6:208:71::31) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.17 via Frontend Transport; Thu,
 28 Aug 2025 17:15:08 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BL02EPF0002992D.mail.protection.outlook.com (10.167.249.58) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Thu, 28 Aug 2025 17:16:28 +0000
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; Thu, 28 Aug
 2025 12:16:27 -0500
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.1748.10; Thu, 28 Aug
 2025 10:16:27 -0700
Received: from [172.20.7.230] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Thu, 28 Aug 2025 12:16:26 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c0af379b-8432-11f0-8dd7-1b34d833f44b
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=oiW6Gt8nLbHF91SiMLbv+ybUihk7i6sMupfXnZ02lXGoGPTiDtXyNxflSQuJjY1/96nXuZzkV+kIuSBBKcf0ud9gc9CK/0NkVmkeb4oxLjt1BACdfTVR0nPWuQIC/Q5JHKZfbC5P2h88lM1jK7WujiAYZzhf1QF5QtzrKERH0zPzrXrwh/FqImKawz2919YZgoiu+B+Nb0zOiyhIzbuYzRt5lUsnO9A/hBMRaowfwz1XAsx7B9bsCx3yhXkwrKX/fRiGgwwIm2BiiwaBnQ+vQKNkywDTPRGBArq6fndiD9bvJpywhZBwe+7AVymLZD+EBmBxe3a9xUn1kQSwMctk1w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=BW4cJHaShagW13xBVGHYT6aHXe8PZHmg3np/hi9J5TA=;
 b=R4eZArnSc0lHcYraeVy/O1sdSlxED8jMea34h1GWw7zdCLHY34W1BfW8pGtOTIZ9baE+k4rrlLCHwSZHpgX0d2P3Bde//TH+0KBdFsBF/fqVNT9rnn3gzNkTu5a63lnakrdC2YxUTSYnXmuJENDXEEA+1IL/J6hanxZL2JLa4tcM0VsDntIDwkTLxQGD4YxBqlJwed0NrmcdY0bYVmi+mYhxQrjLYJFDxz3DIMyXJSWcRLSRMIkBeCYtPQwFwp8iRywsiWj9rJQYnQkATTdWXY65N2fHIZ2bKzcZ/NcSR8FQBm+w98zssqGkyLB8PhTEawqtMvfnQ64YZfHSdf2FXA==
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=BW4cJHaShagW13xBVGHYT6aHXe8PZHmg3np/hi9J5TA=;
 b=5X2alMi+WCTG+O0xZO4Gl8DD6JfDyVsDdvMc96YMLVytRWB0N/YVgPXxPXsUQ/o4sehEhqOWt1/EfRC5wx5OTYAv2hLSijAGCtdZJlfwnIyX61QXzRv4xVYdXGRPPR6HOTeo5d8i0GCrfHSzatlFabU3JDWXIfWKwAzci6Oje3w=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <773a5f4e-2f73-4b84-bc56-90aee660acd2@amd.com>
Date: Thu, 28 Aug 2025 13:16:25 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/5] symbols: arrange to know where functions end
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <ceef1876-8759-465c-9a74-309b6b92f773@suse.com>
 <10e116c5-5a62-4abc-a52a-e2ca12118cfe@suse.com>
 <24fd00b5-3053-43ae-8342-887eee94869a@amd.com>
 <d934d8a8-93c0-4cb6-baa4-f2aedb719f25@suse.com>
 <e9eaf331-4a32-4c80-8b0a-5f36d8fd9022@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <e9eaf331-4a32-4c80-8b0a-5f36d8fd9022@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0002992D:EE_|MN0PR12MB6200:EE_
X-MS-Office365-Filtering-Correlation-Id: c586007b-7d2e-45f2-cdd9-08dde6569ffb
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|36860700013|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?NFZKWVFoUUNXZ2doek9lWE0zdXUxVFN5THQ1Z2FDd3QxcWlKVWNrSEVRSFFp?=
 =?utf-8?B?aGJNUEpyaTZGbi8xMDBjSkw4NXg4NnkwRFgxT0NaYlp5bmhXY2FLVTNVL25p?=
 =?utf-8?B?Vk5tTmVkMURhSGRFUmdjT1VnRXNFZW5IN21VeVNJZjdFNFRCdm9Vc0J4dEVy?=
 =?utf-8?B?ZlAxYjIzSjVKeEhqTENJeVpqbHlvdVFTWTJReTUwY081QnV4QUdlbUFuaE1r?=
 =?utf-8?B?cDdOTFk5Um05cEdKT0V4ZmxOTHlJMmFMZC9NbHVpc0k4YTB3ZHpGRkhqTTJ1?=
 =?utf-8?B?UjZML3hEYkFJY09GSzZQK3FFaS9iaXRsUHJhQ0wrNm9IRXdEcXVJZmlOU252?=
 =?utf-8?B?bWlpc0dla0pqdmVBRnYxbzl2WWNVMzBGMWhrRFJLNTJEZ1lkRkZoeHZSUy9F?=
 =?utf-8?B?OGJrYXlYT3pPcTF5ZlhqWkRkek0wSmd0N0FwZTlmSWZ3NVY5dDJ6aVlBSE9w?=
 =?utf-8?B?RmsvdUJRRDVnTHZtdkxqTnhoMHdDNVVjTTcwajNsaXJUYXhKQWdZaFk1cW5x?=
 =?utf-8?B?akZMYzJiY24xa3hveS9vbmx4UzJiWGxCMUxtdmQvZFpEakVKOWVuQmxVVFZM?=
 =?utf-8?B?YklKVzR4QUlwREN6cm9xd3VNeERYb1pDR1psb09kYXFsK0U2OVJhUW90Umto?=
 =?utf-8?B?bnkwcTV6OHJxZTU4K2Q4RC9FQStMRnZ2SW1ZOFB5V0RYQ2l1bzRmNjlPclVZ?=
 =?utf-8?B?WjUvQ3AyQ3o1cnI4NzdoMnJlUnVqWnVmVnJvazB5cUl3U2RPTDV6VEJCU0ov?=
 =?utf-8?B?YWNhSkdvL1VKNWQvMFVYbS9yQW9pZ2VCbW5FczE5R3U2d0NreEcreURIUGRT?=
 =?utf-8?B?RFRLWGpTWWJSWmtNREYwdWpIcEsraklRUDFRUytFZjBJZWRSNFNCdEFrVUN2?=
 =?utf-8?B?YjYxMEFUVHNHbVFkdDAra1BsZXE5bTEzRFNTWmJlRmdpR3VRODZyRGpkOFNq?=
 =?utf-8?B?SmNVam9BWlh6S0lPelhHTStVR29pNXh5QUc2Z1ZwWGZvWnFtd2NISlJ6c1Qz?=
 =?utf-8?B?UGZsWHdKL0N2RXlaZkluTzhMb0VDNURwZ0lSL1pCNmJiOVgxZnRrRWF3NklF?=
 =?utf-8?B?OGZvejRwaVI0b3NWS00rWGxxa0pIaHRyTXYvb0hkQmtoUE5lQXhpYUZJcTh1?=
 =?utf-8?B?c2ZVcXdnaEovT2ZMN3lEaFpZMThoMWkzZ2Z6Uk8zbXM1SFNmd3NwRVRPYTd3?=
 =?utf-8?B?SmlGMHFxNk1VTTBtSEJteStmd2pweU5pWmd1SzFNQjV1YzA1SkpoZGdpOUJp?=
 =?utf-8?B?WDhxSWtYYXd6cTZLUW8xQVJWdjFaQXdzMVpiSFg5OHYyVGZHNnlPZU85Vk9L?=
 =?utf-8?B?SUtldncvTDF6amk4alRucGxydGNoSHJrOVFDZkx0c003ZXlnRldjbWdzeDFR?=
 =?utf-8?B?QXA3TTBuUjMybHU1OXg2eUpIU2hBVUN6VlU1cW8yTWJmYUIvTERzRUZ2RW8r?=
 =?utf-8?B?OW9uWk0vc3B3UnJBbTdFZ1BJK3ZOZCt3NzRMMUp1M1lPUkNvSUJ2OFJGcEJB?=
 =?utf-8?B?QXdiejFZNXk4SzJrNjhYMGN5bkc4TzV6UTRyci9oZ1dQZi95TTE3R25selFm?=
 =?utf-8?B?bk9kRGYxSWJKRk13UVJZdkFzOEdqTEVxVE1XN2s3NHNpMTN1SmVkYWoxT1E0?=
 =?utf-8?B?R3YrVHdoNnNGMlA4OVM1ZW5WSWRKWVVNamdYMFMyRkVVVFlqUk5wR2liQXJu?=
 =?utf-8?B?VTE3SDFLTjlrWFovVGhmSFllU2pabUNobnBrbUI2YlpsY20wSGZYSmF5MElo?=
 =?utf-8?B?c3lTRkR6SkdHTittTUJ3dlBWK3h6cE8xWFo0VlFlTlZiSE12eW1NSDVpMXRp?=
 =?utf-8?B?QndjYnpWOWpUdjZYN3FEb3Jva3dpRFRJbUs2M3hZekdBcFRvcXdpY1NMVktp?=
 =?utf-8?B?dWFVVkp4NG1CK20wdEc0TTNObitLOXZyNmptbEJPQS9ZT081UEF1WFI5U3hy?=
 =?utf-8?B?L3NPaHJwYWs3Qi85Y2k4OXZTM3N4a0NMRlBXbXFBZ2R2bkIwVmxJd1l5cjkv?=
 =?utf-8?B?NzJ1aUd5eTEvYkl6bUErZjk4dlBmYnZaSExPREtmTExOM1ljK0JmN1VteXRw?=
 =?utf-8?Q?kz+23z?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 17:16:28.1691
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c586007b-7d2e-45f2-cdd9-08dde6569ffb
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0002992D.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB6200

On 2025-08-28 12:11, Jan Beulich wrote:
> On 28.08.2025 09:28, Jan Beulich wrote:
>> On 28.08.2025 03:03, Jason Andryuk wrote:
>>> On 2025-04-02 09:58, Jan Beulich wrote:
>>>> --- a/xen/tools/symbols.c
>>>> +++ b/xen/tools/symbols.c
>>>
>>>> @@ -318,24 +334,42 @@ static void write_src(void)
>>>>    	printf("#else\n");
>>>>    	output_label("symbols_offsets");
>>>>    	printf("#endif\n");
>>>> -	for (i = 0; i < table_cnt; i++) {
>>>> +	for (i = 0, ends = 0; i < table_cnt; i++) {
>>>>    		printf("\tPTR\t%#llx - SYMBOLS_ORIGIN\n", table[i].addr);
>>>> +
>>>> +		table[i].addr_idx = i + ends;
>>>> +
>>>> +		if (!want_symbol_end(i)) {
>>>> +			/* If there's another symbol at the same address,
>>>> +			 * propagate this symbol's size if the next one has
>>>> +			 * no size, or if the next one's size is larger. */
>>>
>>> Why do we want to shrink the next symbol's size?
>>
>> First (see related post-commit-message remarks): In principle section symbols
>> could come with a size, too. That would break everything as long as we don't
>> strip those.
>>
>> The main reason though is that imo smallest granularity is what we want here,
>> together with predictability. One symbol with a huge size could cover
>> multiple other symbols with smaller sizes. We could omit that part of the
>> change here, but then the processing in the hypervisor would need to change,
>> to fish out the "best suitable" symbol when dealing with multiple ones at the
>> same address. Other changes may then also be needed to the tool, to have such
>> symbols come in a well-defined order (to keep the then-new code in the
>> hypervisor as simple as possible). Look for "aliased symbol" in
>> common/symbols.c to see how simplistic respective code is right now.
> 
> Furthermore remember that we can't record sizes, but instead we insert fake
> symbols. Obviously there can be only one (at least in the present scheme).
> If we used too large a size, chances would increase that the end symbol (in
> the sorted table) would have to live past some other symbol, thus becoming
> that one's "end".

The scenario I thought about is something like:

a 0x100-0x10f
b 0x100-0x1ff
c 0x200-0x2ff

If you shrink b, you are creating a hole that would otherwise be 
assigned to b.

But I agree avoiding huge sizes covering multiple small variables would 
better be avoided.

Do you have concrete examples to help illustrate the problem?

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 17:34:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 17:34:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099809.1453519 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urgW3-0000qr-Qy; Thu, 28 Aug 2025 17:34:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099809.1453519; Thu, 28 Aug 2025 17:34: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 1urgW3-0000qk-O5; Thu, 28 Aug 2025 17:34:27 +0000
Received: by outflank-mailman (input) for mailman id 1099809;
 Thu, 28 Aug 2025 17:34:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=LvL0=3I=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1urgW2-0000qd-AJ
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 17:34:26 +0000
Received: from mail-lf1-x129.google.com (mail-lf1-x129.google.com
 [2a00:1450:4864:20::129])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3ce7b788-8435-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 19:34:24 +0200 (CEST)
Received: by mail-lf1-x129.google.com with SMTP id
 2adb3069b0e04-55f467f3c06so1006920e87.2
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 10:34:23 -0700 (PDT)
Received: from [192.168.0.110] ([91.123.151.69])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-55f676f53acsm5887e87.36.2025.08.28.10.34.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 10:34: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>
X-Inumbo-ID: 3ce7b788-8435-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756402463; x=1757007263; 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=XwT4vLrOo/tqSOx2sv0ayFZxmR5B8FFSr5cNOd/P5so=;
        b=K1TZJ9Njdv/CGIQxt+2y4F9D5IB4/q2/m3YAEImXQL5l6Gt+McxNePF/uFXsiDxZcp
         PNNMoGjAnAH/eE2osjD9IS+ekSrLPiQInrxDJA4tnz9gUiVjcczIE4dfmQROc9lbCA5O
         Ea353BaQdbkfjJ6pl89E5B3bK96MIknSfZ9wyjAVEp78Aol4redg/fiP2Go+iOWNwJTq
         O14b1lVT+0funifebDYAu/Qfh4QMQR5SQa5A0wpZM7FJ8CmyIh2eBfz1xYv3+Sb8iNqh
         lEaYxZgBTIzQrrpeRRmFX0pBPO2QIq+/yFPktGsbGRwqsJzpfRQeSac948px3iLC3T8Y
         8uTg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756402463; x=1757007263;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=XwT4vLrOo/tqSOx2sv0ayFZxmR5B8FFSr5cNOd/P5so=;
        b=vMeje0Ch1bsA08vopl+9boLSLPV2jFm2QBCfo+i/J2qFXV/34v4kFGQ3D8trC01wkt
         SVoC40AvY9IyHwssU09SI5uHKXa0A7kWO9nUtVdbju2b9p57d/RWXq86kNp2AhJqpmKT
         l+I3VlRgoKL23tZVhvPPQZgL/EAQXZvOXPq67Q03Di01IilB0eebA05gy/3p6K3zXGYR
         bRrGZ+rZpGvAcMMW6b6zMgFAAwwpi6lmJr6g6Ffo7epKE+Me7gq6+yJCEZXN7rOaqLVg
         ew+AEe9gigR5awgNknLvXPnS8VjYZ+BD/MYhadNfGgaKEL1eWhlSeD1cV9sj9XZdH0GH
         8k3A==
X-Forwarded-Encrypted: i=1; AJvYcCUK7T3EmJ2SNVZgpogiiopbCjcepbgURQxLI4CFqFPWCa9MX4yeLaHWkE///ux6bB1NnSGisgop9FQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxAdtNAwrUwH4ItKBT93W5DaHE5GHhVEUtSzC9p6vVHKONI/1mK
	SRK7qwdGUQ2O9T+HYaGqny0ieVhR6FWa9tyhfUbGjwdVomzp74LK03TpibwJaA==
X-Gm-Gg: ASbGncukddR9kVp/xiObICMWjtFiJwUzX+W2nuWe8rI8W7+yr6XyJ2Aad6niXjJ9wqm
	TqlLtqhWU9xAgdkxc2TVR+sKjtdzSlfAuRkbljY0jVqiKl7MP1pA9WUwOHhNj/Yy1gEOKkLBh5m
	+hphkA0G/4HZCoZ2fBIkuV8sc+NTpUvoe79XDUQZu8aZKWuxOemW+dj8sOcrfyhqFMJu/IJzxkO
	2OwWrX899r0EInZHVXwb69wJvuqqfcg8/qx3hM+vINLotzEibGGhTcO3z35jBfk4RYAN0UVi5vn
	CEZSc8r0SZOXRJqSes+I+7l3GSn0opLppifPINnKY3JzC0gnUBzsmkrMCZiMlX7BESei/aTI5xY
	H/0dSti11v2rWkb3m/ZKlRXArL9hZd5Zjv5fg
X-Google-Smtp-Source: AGHT+IF/zoWWQbuFaLVAE/oVNG5ZccBXQG13LHuAh7stGYLDxnf4tzquZkpRqCm9+/YbEzrovShS5w==
X-Received: by 2002:a05:6512:10cc:b0:55f:4e27:f1be with SMTP id 2adb3069b0e04-55f4e27f2d9mr3166209e87.53.1756402462861;
        Thu, 28 Aug 2025 10:34:22 -0700 (PDT)
Message-ID: <01a964ac-a9aa-4301-b3da-5691e18b1b73@gmail.com>
Date: Thu, 28 Aug 2025 20:34:21 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 08/12] xen/arm: vgic: add resource management for
 extended SPIs
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1756317702.git.leonid_komarianskyi@epam.com>
 <9e8a11b024833c1b91b8806e7708bf35b04a8f6e.1756317702.git.leonid_komarianskyi@epam.com>
Content-Language: en-US
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
In-Reply-To: <9e8a11b024833c1b91b8806e7708bf35b04a8f6e.1756317702.git.leonid_komarianskyi@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 27.08.25 21:24, Leonid Komarianskyi wrote:

Hello Leonid

> This change introduces resource management in the VGIC to handle
> extended SPIs introduced in GICv3.1. The pending_irqs and
> allocated_irqs arrays are resized to support the required
> number of eSPIs, based on what is supported by the hardware and
> requested by the guest. A new field, ext_shared_irqs, is added
> to the VGIC structure to store information about eSPIs, similar
> to how shared_irqs is used for regular SPIs.
> 
> Since the eSPI range starts at INTID 4096 and INTIDs between 1025
> and 4095 are reserved, helper macros are introduced to simplify the
> transformation of indices and to enable easier access to eSPI-specific
> resources. These changes prepare the VGIC for processing eSPIs as
> required by future functionality.
> 
> The initialization and deinitialization paths for vgic have been updated
> to allocate and free these resources appropriately. Additionally,
> updated handling of INTIDs greater than 1024, passed from the toolstack
> during domain creation, and verification logic ensures only valid SPI or
> eSPI INTIDs are used.
> 
> The existing SPI behavior remains unaffected when guests do not request
> eSPIs, GIC hardware does not support them, or the CONFIG_GICV3_ESPI
> option is disabled.
> 
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
> 
> ---
> Changes in V4:
> - added has_espi field to simplify determining whether a domain is able
>    to operate with eSPI
> - fixed formatting issues and misspellings
> 
> Changes in V3:
> - fixed formatting for lines with more than 80 symbols
> - introduced helper functions to be able to use stubs in case of
>    CONFIG_GICV3_ESPI disabled, and as a result, reduce the number of
>    #ifdefs
> - fixed checks for nr_spis in domain_vgic_init
> - updated comment about nr_spis adjustments with dom0less mention
> - moved comment with additional explanations before checks
> - used unsigned int for indexes since they cannot be negative
> - removed unnecessary parentheses
> - move vgic_ext_rank_offset to the below ifdef guard, to reduce the
>    number of ifdefs
> 
> Changes in V2:
> - change is_espi_rank to is_valid_espi_rank to verify whether the array
>    element ext_shared_irqs exists. The previous version, is_espi_rank,
>    only checked if the rank index was less than the maximum possible eSPI
>    rank index, but this could potentially result in accessing a
>    non-existing array element. To address this, is_valid_espi_rank was
>    introduced, which ensures that the required eSPI rank exists
> - move gic_number_espis to
>    xen/arm: gicv3: implement handling of GICv3.1 eSPI
> - update vgic_is_valid_irq checks to allow operating with eSPIs
> - remove redundant newline in vgic_allocate_virq
> ---
>   xen/arch/arm/include/asm/vgic.h |  20 +++
>   xen/arch/arm/vgic.c             | 213 +++++++++++++++++++++++++++++++-
>   2 files changed, 230 insertions(+), 3 deletions(-)
> 
> diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/vgic.h
> index 3e7cbbb196..fb4cea73eb 100644
> --- a/xen/arch/arm/include/asm/vgic.h
> +++ b/xen/arch/arm/include/asm/vgic.h
> @@ -146,6 +146,12 @@ struct vgic_dist {
>       int nr_spis; /* Number of SPIs */
>       unsigned long *allocated_irqs; /* bitmap of IRQs allocated */
>       struct vgic_irq_rank *shared_irqs;
> +#ifdef CONFIG_GICV3_ESPI
> +    struct vgic_irq_rank *ext_shared_irqs;
> +    int nr_espis; /* Number of extended SPIs */

Can nr_espis be negative?

> +    /* To simplify determining whether a domain is able to operate with eSPI */
> +    bool has_espi;

I agree with the Volodymyr's comment provided in separate letter that we 
could avoid adding an extra var.

> +#endif
>       /*
>        * SPIs are domain global, SGIs and PPIs are per-VCPU and stored in
>        * struct arch_vcpu.
> @@ -243,6 +249,14 @@ struct vgic_ops {
>   /* Number of ranks of interrupt registers for a domain */
>   #define DOMAIN_NR_RANKS(d) (((d)->arch.vgic.nr_spis+31)/32)
>   
> +#ifdef CONFIG_GICV3_ESPI
> +#define DOMAIN_NR_EXT_RANKS(d) (((d)->arch.vgic.nr_espis+31)/32)
> +#define EXT_RANK_MIN (ESPI_BASE_INTID/32)
> +#define EXT_RANK_MAX ((ESPI_MAX_INTID+31)/32)
> +#define EXT_RANK_NUM2IDX(num) ((num)-EXT_RANK_MIN)
> +#define EXT_RANK_IDX2NUM(idx) ((idx)+EXT_RANK_MIN)
> +#endif
> +
>   #define vgic_lock(v)   spin_lock_irq(&(v)->domain->arch.vgic.lock)
>   #define vgic_unlock(v) spin_unlock_irq(&(v)->domain->arch.vgic.lock)
>   
> @@ -302,6 +316,12 @@ extern struct vgic_irq_rank *vgic_rank_offset(struct vcpu *v,
>                                                 unsigned int b,
>                                                 unsigned int n,
>                                                 unsigned int s);
> +#ifdef CONFIG_GICV3_ESPI
> +extern struct vgic_irq_rank *vgic_ext_rank_offset(struct vcpu *v,
> +                                                  unsigned int b,
> +                                                  unsigned int n,
> +                                                  unsigned int s);
> +#endif
>   extern struct vgic_irq_rank *vgic_rank_irq(struct vcpu *v, unsigned int irq);
>   extern void vgic_disable_irqs(struct vcpu *v, uint32_t r, unsigned int n);
>   extern void vgic_enable_irqs(struct vcpu *v, uint32_t r, unsigned int n);
> diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
> index 2bbf4d99aa..f4b80cb05f 100644
> --- a/xen/arch/arm/vgic.c
> +++ b/xen/arch/arm/vgic.c
> @@ -27,9 +27,82 @@
>   
>   bool vgic_is_valid_line(struct domain *d, unsigned int virq)
>   {
> +#ifdef CONFIG_GICV3_ESPI
> +    if ( virq >= ESPI_BASE_INTID &&
> +         virq < ESPI_IDX2INTID(d->arch.vgic.nr_espis) )
> +        return true;
> +#endif
> +
>       return virq < vgic_num_irqs(d);
>   }
>   
> +#ifdef CONFIG_GICV3_ESPI
> +/*
> + * Since eSPI indexes start from 4096 and numbers from 1024 to
> + * 4095 are forbidden, we need to check both lower and upper
> + * limits for ranks.
> + */
> +static inline bool is_valid_espi_rank(struct domain *d, unsigned int rank)
> +{
> +    return rank >= EXT_RANK_MIN &&
> +           EXT_RANK_NUM2IDX(rank) < DOMAIN_NR_EXT_RANKS(d);
> +}
> +
> +static inline struct vgic_irq_rank *vgic_get_espi_rank(struct vcpu *v,
> +                                                       unsigned int rank)
> +{
> +    return &v->domain->arch.vgic.ext_shared_irqs[EXT_RANK_NUM2IDX(rank)];
> +}
> +
> +static inline bool vgic_reserve_espi_virq(struct domain *d, unsigned int virq)
> +{
> +    return !test_and_set_bit(ESPI_INTID2IDX(virq) + vgic_num_irqs(d),
> +                             d->arch.vgic.allocated_irqs);
> +}
> +
> +static void arch_move_espis(struct vcpu *v)
> +{
> +    const cpumask_t *cpu_mask = cpumask_of(v->processor);
> +    struct domain *d = v->domain;
> +    struct pending_irq *p;
> +    struct vcpu *v_target;
> +    unsigned int i;
> +
> +    for ( i = ESPI_BASE_INTID;
> +          i < EXT_RANK_IDX2NUM(d->arch.vgic.nr_espis); i++ )
> +    {
> +        v_target = vgic_get_target_vcpu(v, i);
> +        p = irq_to_pending(v_target, i);
> +
> +        if ( v_target == v && !test_bit(GIC_IRQ_GUEST_MIGRATING, &p->status) )
> +            irq_set_affinity(p->desc, cpu_mask);
> +    }
> +}
> +#else
> +static inline bool is_valid_espi_rank(struct domain *d, unsigned int rank)
> +{
> +    return false;
> +}
> +
> +/*
> + * This function is stub and will not be called if CONFIG_GICV3_ESPI=n,
> + * because in this case, is_valid_espi_rank will always return false.
> + */
> +static inline struct vgic_irq_rank *vgic_get_espi_rank(struct vcpu *v,
> +                                                       unsigned int rank)
> +{
> +    ASSERT_UNREACHABLE();
> +    return NULL;
> +}
> +
> +static inline bool vgic_reserve_espi_virq(struct domain *d, unsigned int virq)
> +{
> +    return false;
> +}
> +
> +static void arch_move_espis(struct vcpu *v) { }
> +#endif
> +
>   static inline struct vgic_irq_rank *vgic_get_rank(struct vcpu *v,
>                                                     unsigned int rank)
>   {
> @@ -37,6 +110,8 @@ static inline struct vgic_irq_rank *vgic_get_rank(struct vcpu *v,
>           return v->arch.vgic.private_irqs;
>       else if ( rank <= DOMAIN_NR_RANKS(v->domain) )
>           return &v->domain->arch.vgic.shared_irqs[rank - 1];
> +    else if ( is_valid_espi_rank(v->domain, rank) )
> +        return vgic_get_espi_rank(v, rank);
>       else
>           return NULL;
>   }
> @@ -117,6 +192,74 @@ int domain_vgic_register(struct domain *d, unsigned int *mmio_count)
>       return 0;
>   }
>   
> +#ifdef CONFIG_GICV3_ESPI
> +/*
> + * The function behavior is the same as for regular SPIs (vgic_rank_offset),
> + * but it operates with extended SPI ranks.
> + */
> +struct vgic_irq_rank *vgic_ext_rank_offset(struct vcpu *v, unsigned int b,
> +                                           unsigned int n, unsigned int s)
> +{
> +    unsigned int rank = REG_RANK_NR(b, (n >> s));
> +
> +    return vgic_get_rank(v, rank + EXT_RANK_MIN);
> +}

So the difference between vgic_rank_offset() and vgic_ext_rank_offset() 
in using EXT_RANK_MIN in the latter. I am wondering, whether it makes 
sense to reuse the existing vgic_rank_offset() by moving #ifdef into it? 
Maybe it would be possible to optimize some code added in "[PATCH v4 
10/12] xen/arm: vgic-v3: add emulation of GICv3.1 eSPI registers".

e.g. __vgic_v3_distr_common_mmio_read:

Code for the following cases looks very similar to the regular counterparts.
case VRANGE32(GICD_ISENABLERnE, GICD_ISENABLERnEN):
case VRANGE32(GICD_ICENABLERnE, GICD_ICENABLERnEN):
case VRANGE32(GICD_IPRIORITYRnE, GICD_IPRIORITYRnEN):
case VRANGE32(GICD_ICFGRnE, GICD_ICFGRnEN):
case VRANGE32(GICD_IPRIORITYRnE, GICD_IPRIORITYRnEN):

The difference is in the said helper and the base calculated as
"reg - GICD_XXX", where GICD_XXX is the start of the range for the 
eSPI-based reg (e.g. GICD_IPRIORITYRnE) or regular SPI-based reg 
(e.g.GICD_IPRIORITYR). The GICD_XXX could probably be chosen
based on the "reg" value itself, for example:

rank = vgic_rank_offset(v, 8, reg >= GICD_IPRIORITYRnE ? reg - 
GICD_IPRIORITYRnE : reg - GICD_IPRIORITYR, DABT_WORD);

Please note, I am not requesting for any updates regarding to that, I am 
just thinking out loud.


> +
> +static unsigned int vgic_num_spi_lines(struct domain *d)
> +{
> +    return d->arch.vgic.nr_spis + d->arch.vgic.nr_espis;
> +}
> +
> +static int init_vgic_espi(struct domain *d)
> +{
> +    unsigned int i, idx;
> +
> +    if ( d->arch.vgic.nr_espis == 0 )
> +        return 0;
> +
> +    d->arch.vgic.ext_shared_irqs =
> +        xzalloc_array(struct vgic_irq_rank, DOMAIN_NR_EXT_RANKS(d));
> +    if ( d->arch.vgic.ext_shared_irqs == NULL )
> +        return -ENOMEM;
> +
> +    for ( i = d->arch.vgic.nr_spis, idx = 0;
> +          i < vgic_num_spi_lines(d); i++, idx++ )
> +        vgic_init_pending_irq(&d->arch.vgic.pending_irqs[i],
> +                              ESPI_IDX2INTID(idx));
> +
> +    for ( i = 0; i < DOMAIN_NR_EXT_RANKS(d); i++ )
> +        vgic_rank_init(&d->arch.vgic.ext_shared_irqs[i], i, 0);
> +
> +    return 0;
> +}
> +
> +struct pending_irq *espi_to_pending(struct domain *d, unsigned int irq)
> +{
> +    irq = ESPI_INTID2IDX(irq) + d->arch.vgic.nr_spis;
> +    return &d->arch.vgic.pending_irqs[irq];
> +}
> +#else
> +static unsigned int init_vgic_espi(struct domain *d
> +{
> +    return 0;
> +}
> +
> +static unsigned int vgic_num_spi_lines(struct domain *d)
> +{
> +    return d->arch.vgic.nr_spis;
> +}
> +
> +struct pending_irq *espi_to_pending(struct domain *d, unsigned int irq)
> +{
> +    return NULL;
> +}
> +#endif
> +
> +static unsigned int vgic_num_alloc_irqs(struct domain *d)
> +{
> +    return vgic_num_spi_lines(d) + NR_LOCAL_IRQS;
> +}
> +
>   int domain_vgic_init(struct domain *d, unsigned int nr_spis)
>   {
>       int i;
> @@ -131,6 +274,38 @@ int domain_vgic_init(struct domain *d, unsigned int nr_spis)
>        */
>       nr_spis = ROUNDUP(nr_spis, 32);
>   
> +#ifdef CONFIG_GICV3_ESPI
> +    /*
> +     * During domain creation, the dom0less DomUs code or toolstack specifies
> +     * the maximum INTID, which is defined in the domain config subtracted by
> +     * 32 to cover the local IRQs (please see the comment to VGIC_DEF_NR_SPIS).
> +     * To compute the actual number of eSPI that will be usable for,
> +     * add back 32.
> +     */
> +    if ( nr_spis + 32 > ESPI_IDX2INTID(NR_ESPI_IRQS) )
> +        return -EINVAL;
> +
> +    if ( nr_spis + 32 >= ESPI_BASE_INTID )
> +    {
> +        d->arch.vgic.nr_espis = min(nr_spis - ESPI_BASE_INTID + 32, 1024U);
> +        /* Verify if GIC HW can handle provided INTID */
> +        if ( d->arch.vgic.nr_espis > gic_number_espis() )
> +            return -EINVAL;
> +        /*
> +         * Set the maximum available number for regular
> +         * SPI to pass the next check
> +         */
> +        nr_spis = VGIC_DEF_NR_SPIS;
> +        d->arch.vgic.has_espi = true;
> +    }
> +    else
> +    {
> +        /* Domain will use the regular SPI range */
> +        d->arch.vgic.nr_espis = 0;
> +        d->arch.vgic.has_espi = false;
> +    }
> +#endif
> +
>       /* Limit the number of virtual SPIs supported to (1020 - 32) = 988  */
>       if ( nr_spis > (1020 - NR_LOCAL_IRQS) )
>           return -EINVAL;
> @@ -145,7 +320,7 @@ int domain_vgic_init(struct domain *d, unsigned int nr_spis)
>           return -ENOMEM;
>   
>       d->arch.vgic.pending_irqs =
> -        xzalloc_array(struct pending_irq, d->arch.vgic.nr_spis);
> +        xzalloc_array(struct pending_irq, vgic_num_spi_lines(d));
>       if ( d->arch.vgic.pending_irqs == NULL )
>           return -ENOMEM;
>   
> @@ -156,12 +331,16 @@ int domain_vgic_init(struct domain *d, unsigned int nr_spis)
>       for ( i = 0; i < DOMAIN_NR_RANKS(d); i++ )
>           vgic_rank_init(&d->arch.vgic.shared_irqs[i], i + 1, 0);
>   
> +    ret = init_vgic_espi(d);
> +    if ( ret )
> +        return ret;
> +
>       ret = d->arch.vgic.handler->domain_init(d);
>       if ( ret )
>           return ret;
>   
>       d->arch.vgic.allocated_irqs =
> -        xzalloc_array(unsigned long, BITS_TO_LONGS(vgic_num_irqs(d)));
> +        xzalloc_array(unsigned long, BITS_TO_LONGS(vgic_num_alloc_irqs(d)));
>       if ( !d->arch.vgic.allocated_irqs )
>           return -ENOMEM;
>   
> @@ -195,9 +374,27 @@ void domain_vgic_free(struct domain *d)
>           }
>       }
>   
> +#ifdef CONFIG_GICV3_ESPI
> +    for ( i = 0; i < d->arch.vgic.nr_espis; i++ )
> +    {
> +        struct pending_irq *p = spi_to_pending(d, ESPI_IDX2INTID(i));
> +
> +        if ( p->desc )
> +        {
> +            ret = release_guest_irq(d, p->irq);
> +            if ( ret )
> +                dprintk(XENLOG_G_WARNING, "d%u: Failed to release virq %u ret = %d\n",


NIT: you can use %pd for printing domain with its ID


> +                        d->domain_id, p->irq, ret);
> +        }
> +    }
> +#endif
> +
>       if ( d->arch.vgic.handler )
>           d->arch.vgic.handler->domain_free(d);
>       xfree(d->arch.vgic.shared_irqs);
> +#ifdef CONFIG_GICV3_ESPI
> +    xfree(d->arch.vgic.ext_shared_irqs);
> +#endif
>       xfree(d->arch.vgic.pending_irqs);
>       xfree(d->arch.vgic.allocated_irqs);
>   }
> @@ -331,6 +528,8 @@ void arch_move_irqs(struct vcpu *v)
>           if ( v_target == v && !test_bit(GIC_IRQ_GUEST_MIGRATING, &p->status) )
>               irq_set_affinity(p->desc, cpu_mask);
>       }
> +
> +    arch_move_espis(v);
>   }
>   
>   void vgic_disable_irqs(struct vcpu *v, uint32_t r, unsigned int n)
> @@ -538,6 +737,8 @@ struct pending_irq *irq_to_pending(struct vcpu *v, unsigned int irq)
>           n = &v->arch.vgic.pending_irqs[irq];
>       else if ( is_lpi(irq) )
>           n = v->domain->arch.vgic.handler->lpi_to_pending(v->domain, irq);
> +    else if ( is_espi(irq) )
> +        n = espi_to_pending(v->domain, irq);
>       else
>           n = &v->domain->arch.vgic.pending_irqs[irq - 32];
>       return n;
> @@ -547,6 +748,9 @@ struct pending_irq *spi_to_pending(struct domain *d, unsigned int irq)
>   {
>       ASSERT(irq >= NR_LOCAL_IRQS);
>   
> +    if ( is_espi(irq) )
> +        return espi_to_pending(d, irq);
> +
>       return &d->arch.vgic.pending_irqs[irq - 32];
>   }
>   
> @@ -668,6 +872,9 @@ bool vgic_reserve_virq(struct domain *d, unsigned int virq)
>       if ( !vgic_is_valid_line(d, virq) )
>           return false;
>   
> +    if ( is_espi(virq) )
> +        return vgic_reserve_espi_virq(d, virq);
> +
>       return !test_and_set_bit(virq, d->arch.vgic.allocated_irqs);
>   }
>   
> @@ -685,7 +892,7 @@ int vgic_allocate_virq(struct domain *d, bool spi)
>       else
>       {
>           first = 32;
> -        end = vgic_num_irqs(d);
> +        end = vgic_num_alloc_irqs(d);
>       }
>   
>       /*



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 18:39:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 18:39:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099845.1453528 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urhWu-0008Pq-B6; Thu, 28 Aug 2025 18:39:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099845.1453528; Thu, 28 Aug 2025 18:39: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 1urhWu-0008Pj-8X; Thu, 28 Aug 2025 18:39:24 +0000
Received: by outflank-mailman (input) for mailman id 1099845;
 Thu, 28 Aug 2025 18:39:23 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=LvL0=3I=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1urhWt-0008Pd-2h
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 18:39:23 +0000
Received: from mail-lj1-x22d.google.com (mail-lj1-x22d.google.com
 [2a00:1450:4864:20::22d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5000e171-843e-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 20:39:21 +0200 (CEST)
Received: by mail-lj1-x22d.google.com with SMTP id
 38308e7fff4ca-336ada26e92so6055791fa.3
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 11:39:21 -0700 (PDT)
Received: from [192.168.0.110] ([91.123.151.69])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-336b48f6cd5sm549401fa.64.2025.08.28.11.39.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 11:39: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>
X-Inumbo-ID: 5000e171-843e-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756406361; x=1757011161; 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=f/9SzIXaxMPdactpzzkiUGrr3jeZLH2K9HfiIgjm08s=;
        b=AQ0w/dN8iJ/msAumrwNdQSiOyTJEbZKpKJQoI1Ryvslo6B/idY8dpij8e67Vi2WdiJ
         KN1E7z74whVJWXO3yJ96MlgkBVQ7uhvgI4RAYjcdyJXUnrMk6Oho1CcNg7Mel2SeT874
         wsqBRjNPNQrEaH5TO4+OH0tQeElj1vsEZRngCdjIohrI4zFOIwb4dHitdeWL1KyHec8c
         gAqdEwhSplME6SV4H7rBPI/Q5x5cM2gPBuRS638v7yDStiIpQYaChP7G4t8pNnBNzyWd
         TmEFmhDHvQmUDIoRYbyBcikR1arxtIdDjY1QH+iUcMB+S1sIHCsChXcjJ7M669h6DFgA
         6dag==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756406361; x=1757011161;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=f/9SzIXaxMPdactpzzkiUGrr3jeZLH2K9HfiIgjm08s=;
        b=KkPzOuMNUJ+wDQ9AIfuaLlwedzA4UGs6XLCYKY8dQ6sYJUnspEkeFxZUvLY5IDDWfv
         49qjO2s5OWQF0TITHceOkh08I5f3tx68zRZANcFWTpuU8/voljUChH3eiFfgjNNJxZuw
         beJi/d82atgvtMdvphztQnyKP5dzPy6nzWay8c0UJgQxgD0XnehainkFmL1s2ucGhnKY
         KaZLyUkagfGQoxLo0MviuWYLFHyGA+FJzWn/LoLmy3XrbMDLqSK/zSeqxR5kpzpUS0jp
         NEnyylhT5AoIO3F6yj1zCjt+G2LCMgvPHa8hF49CT/+QzYdRea0g/C6m34I1XH2L+A2d
         ueWg==
X-Forwarded-Encrypted: i=1; AJvYcCVO5Aq9HYhCWR++M6hlkMlmJ0HeCcYu2imVXG74Esd8X3Ehs+T5uafSLvov3mzzR3hv/ZT7ax+bvzA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy4eEMSNlikCP096pPShKmbdtQRoiIAjklz7h53irw9G76FIKU9
	jynzIpY9xbdtMiNJdhirJH4T/BALjkSqcFn2BtgKRm6obyg2ReUPfSxG
X-Gm-Gg: ASbGncuk9jjV0cHNl9j97hFXm5bK8FtTQpYUkmDQ6mj2Wh6P1wBJJpatYOmktYwDoCI
	/bs0xAD5P047QQjFm161qwECDwq78SAtENfmLEoJSgv/venHur929o6f7b6ikJf1iWBBBhInngN
	Za58hZLYvZX0mtSCXCHElhKcGy/8yUkFhtoiKmwPLj2sB4mEGVeAGuTSMvAfvGx3ElJhjoArIqO
	nbDUllPCZynypqc/lVYD+rq+N4CcENjzx8nYqQVmC99MPdju8TD7ya7xsIKIKrUogPiRiX5Bg/4
	LL8R9a+DhaEt1zeaVENz1S+h0hbIhgrQcu3ks7XM9KEGDLpuPh9I4W+YsR5MO0QA6rM5RMcS2xI
	QCbyNe7/ayMS/ETaXoHS0QKTed0sC0N4wcx7d
X-Google-Smtp-Source: AGHT+IGgu4PRV+G01q/WeXVQv5hSm8Lwa9nzOHcyYEEa7ro8Bifgc9pulxRIh15PO23lpipmzhZFdQ==
X-Received: by 2002:a2e:b8cf:0:b0:332:5fc0:24ae with SMTP id 38308e7fff4ca-33650ea1a4bmr53460341fa.15.1756406360628;
        Thu, 28 Aug 2025 11:39:20 -0700 (PDT)
Message-ID: <bd3827bf-1415-40cf-8a3a-a7968f1c1933@gmail.com>
Date: Thu, 28 Aug 2025 21:39:18 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 04/12] xen/arm/irq: add handling for IRQs in the eSPI
 range
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1756317702.git.leonid_komarianskyi@epam.com>
 <a5570863b6884ac115b8dba320c04eea55005d70.1756317702.git.leonid_komarianskyi@epam.com>
Content-Language: en-US
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
In-Reply-To: <a5570863b6884ac115b8dba320c04eea55005d70.1756317702.git.leonid_komarianskyi@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 27.08.25 21:24, Leonid Komarianskyi wrote:


Hello Leonid

> Currently, Xen does not support eSPI interrupts, leading
> to a data abort when such interrupts are defined in the DTS.
> 
> This patch introduces a separate array to initialize up to
> 1024 interrupt descriptors in the eSPI range and adds the
> necessary defines and helper function. These changes lay the
> groundwork for future implementation of full eSPI interrupt
> support. As this GICv3.1 feature is not required by all vendors,
> all changes are guarded by ifdefs, depending on the corresponding
> Kconfig option.
> 
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
> Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
> 
> ---
> Changes in V4:
> - removed redundant line with 'default n' in Kconfig, as it is disabled
>    by default, without explicit specification
> - added reviewed-by from Volodymyr Babchuk


only NITs below

Reviewed-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

> 
> Changes in V3:
> - introduced a new define NR_ESPI_IRQS to avoid confusion, like in the
>    case of using NR_IRQS for espi_desc array
> - implemented helper functions espi_to_desc and init_espi_data to make
>    it possible to add stubs with the same name, and as a result, reduce
>    the number of #ifdefs
> - disable CONFIG_GICV3_ESPI default value to n
> 
> Changes in V2:
> - use (ESPI_MAX_INTID + 1) instead of (ESPI_BASE_INTID + NR_IRQS)
> - remove unnecessary comment for nr_irqs initialization
> ---
>   xen/arch/arm/Kconfig           |  8 ++++++
>   xen/arch/arm/include/asm/irq.h | 26 +++++++++++++++++
>   xen/arch/arm/irq.c             | 52 +++++++++++++++++++++++++++++++++-
>   3 files changed, 85 insertions(+), 1 deletion(-)
> 
> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
> index 17df147b25..43b05533b1 100644
> --- a/xen/arch/arm/Kconfig
> +++ b/xen/arch/arm/Kconfig
> @@ -135,6 +135,14 @@ config GICV3
>   	  Driver for the ARM Generic Interrupt Controller v3.
>   	  If unsure, use the default setting.
>   
> +config GICV3_ESPI
> +	bool "Extended SPI range support"
> +	depends on GICV3 && !NEW_VGIC
> +	help
> +	  Allow Xen and domains to use interrupt numbers from the extended SPI
> +	  range, from 4096 to 5119. This feature is introduced in GICv3.1
> +	  architecture.
> +
>   config HAS_ITS
>           bool "GICv3 ITS MSI controller support (UNSUPPORTED)" if UNSUPPORTED
>           depends on GICV3 && !NEW_VGIC && !ARM_32
> diff --git a/xen/arch/arm/include/asm/irq.h b/xen/arch/arm/include/asm/irq.h
> index 5bc6475eb4..221dbf23a2 100644
> --- a/xen/arch/arm/include/asm/irq.h
> +++ b/xen/arch/arm/include/asm/irq.h
> @@ -32,6 +32,15 @@ struct arch_irq_desc {
>   #define SPI_MAX_INTID   1019
>   #define LPI_OFFSET      8192
>   
> +#ifdef CONFIG_GICV3_ESPI
> +#define ESPI_BASE_INTID 4096
> +#define ESPI_MAX_INTID  5119
> +#define NR_ESPI_IRQS    1024
> +
> +#define ESPI_INTID2IDX(intid) ((intid) - ESPI_BASE_INTID)
> +#define ESPI_IDX2INTID(idx)   ((idx) + ESPI_BASE_INTID)
> +#endif
> +
>   /* LPIs are always numbered starting at 8192, so 0 is a good invalid case. */
>   #define INVALID_LPI     0
>   
> @@ -39,7 +48,15 @@ struct arch_irq_desc {
>   #define INVALID_IRQ     1023
>   
>   extern const unsigned int nr_irqs;
> +#ifdef CONFIG_GICV3_ESPI
> +/*
> + * This will also cover the eSPI range, as some critical devices
> + * for booting Xen (e.g., serial) may use this type of interrupts.
> + */
> +#define nr_static_irqs (ESPI_MAX_INTID + 1)
> +#else
>   #define nr_static_irqs NR_IRQS
> +#endif
>   
>   struct irq_desc;
>   struct irqaction;
> @@ -55,6 +72,15 @@ static inline bool is_lpi(unsigned int irq)
>       return irq >= LPI_OFFSET;
>   }
>   
> +static inline bool is_espi(unsigned int irq)
> +{
> +#ifdef CONFIG_GICV3_ESPI
> +    return (irq >= ESPI_BASE_INTID && irq <= ESPI_MAX_INTID);
> +#else
> +    return false;
> +#endif
> +}
> +
>   #define domain_pirq_to_irq(d, pirq) (pirq)
>   
>   bool is_assignable_irq(unsigned int irq);
> diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
> index b8eccfc924..adb5e49ea3 100644
> --- a/xen/arch/arm/irq.c
> +++ b/xen/arch/arm/irq.c
> @@ -19,7 +19,11 @@
>   #include <asm/gic.h>
>   #include <asm/vgic.h>
>   
> +#ifdef CONFIG_GICV3_ESPI
> +const unsigned int nr_irqs = ESPI_MAX_INTID + 1;
> +#else
>   const unsigned int nr_irqs = NR_IRQS;
> +#endif
>   
>   static unsigned int local_irqs_type[NR_LOCAL_IRQS];
>   static DEFINE_SPINLOCK(local_irqs_type_lock);
> @@ -46,6 +50,49 @@ void irq_end_none(struct irq_desc *irq)
>   }
>   
>   static irq_desc_t irq_desc[NR_IRQS - NR_LOCAL_IRQS];
> +#ifdef CONFIG_GICV3_ESPI
> +static irq_desc_t espi_desc[NR_ESPI_IRQS];

NIT: I would write "TODO: Consider allocating an array dynamically if
there is a need to enable GICV3_ESPI by default". But it is up to you.

> +
> +static struct irq_desc *espi_to_desc(unsigned int irq)
> +{
> +    return &espi_desc[ESPI_INTID2IDX(irq)];
> +}
> +
> +static int __init init_espi_data(void)
> +{
> +    int irq;

NIT: please use unsigned int


> +
> +    for ( irq = ESPI_BASE_INTID; irq <= ESPI_MAX_INTID; irq++ )
> +    {
> +        struct irq_desc *desc = irq_to_desc(irq);
> +        int rc = init_one_irq_desc(desc);
> +
> +        if ( rc )
> +            return rc;
> +
> +        desc->irq = irq;
> +        desc->action  = NULL;
> +    }
> +
> +    return 0;
> +}

[snip]



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 18:41:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 18:41:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099859.1453538 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urhYw-0001Z8-R2; Thu, 28 Aug 2025 18:41:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099859.1453538; Thu, 28 Aug 2025 18:41: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 1urhYw-0001Z1-OA; Thu, 28 Aug 2025 18:41:30 +0000
Received: by outflank-mailman (input) for mailman id 1099859;
 Thu, 28 Aug 2025 18:41:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=AInb=3I=nvidia.com=jgg@srs-se1.protection.inumbo.net>)
 id 1urhYv-0001Yt-IZ
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 18:41:29 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20631.outbound.protection.outlook.com
 [2a01:111:f403:200a::631])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9a77bc2a-843e-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 20:41:26 +0200 (CEST)
Received: from CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13)
 by CH3PR12MB8306.namprd12.prod.outlook.com (2603:10b6:610:12c::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Thu, 28 Aug
 2025 18:41:18 +0000
Received: from CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732]) by CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732%4]) with mapi id 15.20.9073.010; Thu, 28 Aug 2025
 18:41: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>
X-Inumbo-ID: 9a77bc2a-843e-11f0-8dd7-1b34d833f44b
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bR+CIVlRgwV9tDETEuGzlP8ip4aFPHzJBGzDvHbjKfYz/rc2zF3tORBCBM/DoT1VJ3kbD4t4G+PGxVI4K+Hv3xXztY6kMjJyXifQ+gKYlp63yZ1+dPBrxwaadi/B4V/N5dgFEZQiQNAyHSQygRIl8C/i4Ky9g4kyBBUNPkLJ4FDNwXrHBkmgTrtl230i641/7HjsAixjeqHS1dT2v4GaPIzWzGMfqZJNAl4HTT6oc+J2l9XVujdJhdi2sLyJksV5iQMMCKfkQvcR7F6xKF+/i4GTbH5hrATvfBpI0iZqsAeCuvSZ/MRCl6EmMZQYxeoAqnwmkwEgT7rOtKKEVDJjlQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IH4p1Ynk9S0qsGZQOi2m3kXmB/gc/sOBxCVzanZxDJg=;
 b=KeH+UnNB4zg15YJvU7ADMo84nKVAI71Q6ibHzwd9vdo2H1LN7XQdt0ZPdKdaqZq3LGyiI32QGbJixU2ERNMizdR3mq7W5UJy8QnZhUO55FM3UQzEhm+kUN2J6hWwg5qax6JEYdn5ZOr0s71DKfO7wES7I247L1KyvjtV9dGWW1MnxWceNx1PExB+eKfP8eZClx2+jyoyYs0mQ/lfXtd6YUmuyy8QYF/wLWVWfdaVCGS26CnxjAW9X+DxKv8Zl2cLlb+/IWr4zWRuOXVfu6dU7Kl20kiRxfBkV6wMoyZ6vvI2fzSQlEy6dVbffA51/SgK/mBSlZ0MAPRur/6iEJ3kbA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com;
 dkim=pass header.d=nvidia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=IH4p1Ynk9S0qsGZQOi2m3kXmB/gc/sOBxCVzanZxDJg=;
 b=siB2nADhfviyBOx84psFQ+Z/YOuywTPbRlhEA1IqYGfDHOOqxMRKuslkZkkf8BjsTrNo0rhFHlUui1W8RPnSzhYhaaiSNMw7dqSd7hFbz3zmYeV5ceWegYyzclb0QO+j6Jwj1QIpZ1z9vH7ihXCpTmwkvsoyEwYSUK8/XlW5LEo1oWSS2Tcy+RANq6Sp3Zgui2wLG5HAQCcU0A+qNG2ktRDOAcknQ68so63qYCyZ7yF+PMYfrKej2R0p7xilIZi2YXahia/CoyDIqECstfej6HkchwMNCLKOkr3e5/W6nmu57qK8zUZxcBZgJP5O8wQKfL9d4OsErhqM6ArWft5ufg==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=nvidia.com;
Date: Thu, 28 Aug 2025 15:41:15 -0300
From: Jason Gunthorpe <jgg@nvidia.com>
To: Keith Busch <kbusch@kernel.org>
Cc: Leon Romanovsky <leon@kernel.org>,
	Marek Szyprowski <m.szyprowski@samsung.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-mm@kvack.org, linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org, linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 15/16] block-dma: properly take MMIO path
Message-ID: <20250828184115.GE7333@nvidia.com>
References: <cover.1755624249.git.leon@kernel.org>
 <642dbeb7aa94257eaea71ec63c06e3f939270023.1755624249.git.leon@kernel.org>
 <aLBzeMNT3WOrjprC@kbusch-mbp>
 <20250828165427.GB10073@unreal>
 <aLCOqIaoaKUEOdeh@kbusch-mbp>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <aLCOqIaoaKUEOdeh@kbusch-mbp>
X-ClientProxiedBy: YT1PR01CA0137.CANPRD01.PROD.OUTLOOK.COM
 (2603:10b6:b01:2f::16) To CH3PR12MB8659.namprd12.prod.outlook.com
 (2603:10b6:610:17c::13)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PR12MB8659:EE_|CH3PR12MB8306:EE_
X-MS-Office365-Filtering-Correlation-Id: 6e3a885c-158c-45b2-6f52-08dde6627977
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7416014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?nV1kIOb9VP48Ge+qYZehwA9eGeoxeOZdlL6tbqFCaZF7sX7c4XZQ+EeTEXV1?=
 =?us-ascii?Q?jeOHpXDpN9jTsr0aNY6rvxAEZT563BNdWHjY39m6D+rbkoJCxDyVhpMAKzT4?=
 =?us-ascii?Q?ZiDMILlnK4rP2lqQl4aAw8OQMeKljsP6XMW5lTTWivG2xK3dEy6PZXJSCovR?=
 =?us-ascii?Q?BIANh2Q1CfCf5pFWKroPAu96gx3gMN5vwEGdtNRAoKx8xtulXV3TFsmTS2xJ?=
 =?us-ascii?Q?nwU/Ja5/QcJxHQVAICa5K5arovbYb6RJ56hG5XnmQmqRnORnaDBGTzumViRg?=
 =?us-ascii?Q?DkMxQtBopzV2/gFJShioAb//97O4/pd0ohUYfqUBK75vpTzqiANsRQRk/ouP?=
 =?us-ascii?Q?Fv6CwYSYIuOhJmzdhhMxA2fCTtjH/j8sneQs/z26EmdguwM7eCODjWsqyxXb?=
 =?us-ascii?Q?krd1yEy7/9eXMuHFA+8/BQLpYwNCSdZnDKnf2GHOr/r+sIORslv0r6llJ/W5?=
 =?us-ascii?Q?lYuGM6Jl0iL0lTz1xPBKnEQLL0PNl1q3EoXkp1zkdVHWTqa7YjQAM3LY4xnq?=
 =?us-ascii?Q?+xyXr5leJisKW4ybbGmqcLY4dFG9memB49yY0V2DqdyiwLRQTofGh+srQ7j6?=
 =?us-ascii?Q?SLzI9ufkZixUXU32tsskxXeMjyixZ7Jv9y9mzfLg2gLveR89VBCORXPfbZ4I?=
 =?us-ascii?Q?Rz3RK65W2EFd1bY/g6b7/BJ1lRFVs0gKzpkjgAPeLQQZ4w2i+yquliXEg5cW?=
 =?us-ascii?Q?UpnplUqsnF2sJhmOW69n1N3suCJj7k1RtNz6Fc9v3x+vy+D0AjDK2NeXZfYY?=
 =?us-ascii?Q?ggNou7iwS3eUP3mmT/UbZbJr/c80mQn9aRBz90zkq1YJDX6B4AUMg/V/mBWE?=
 =?us-ascii?Q?dLhhDvkJ6qJVwo6PgMuMIAVd209YsjIh3LBoHhKFIBqoykFmePWfa8wShv+E?=
 =?us-ascii?Q?woIROJMSoD4mqx8s82XZTfSfaBQQDM4rI1DHz7EWZ6aJss4VpQy3hjZ3DXnL?=
 =?us-ascii?Q?yunNIYOHlbwaao8eE8/8Q0enL72WtWHCREdigrSCso/t0Ymxj658JJetd6am?=
 =?us-ascii?Q?r4eWmL98TVTrU3oE1js1kLGYugu8BtiG5c/LhyWENYYwGg4L38kePJ1hQsQb?=
 =?us-ascii?Q?ga63IImaDX1Ke8gVjOdBzhF5Mdk3jECr5JTReym6u2vnytQTGD1Aw5K2FcxE?=
 =?us-ascii?Q?HYtNc6zV429goAnwbIgzIr9oAlHAQyoxWi9ij3k0yJnxyCpmDprAMycojbAk?=
 =?us-ascii?Q?EzwY9beQEtM6o7DjAGgBbH2YAIZfDijNcOgmC/kbeI7ihRarV5UV0eqZkU3I?=
 =?us-ascii?Q?ENsaIqLh/Xo3CLt7Ol6vEm9ZzGFxM2epqD02bjJJftP3gVu6nchYBPmU6pRo?=
 =?us-ascii?Q?IxKRYL76ez6f9Lzhx5rNGhXWpHnx6dn+V1v2qE1skWJ/GY9tOIOZHLxIvdrU?=
 =?us-ascii?Q?BoyC9ifHd9gN/BQpHESbI1RbRWrS4N5nGYzhVWQItOCmuQrpFt+xS7I69mrx?=
 =?us-ascii?Q?josnzQcDqpM=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR12MB8659.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?612nRiCny2xtHW95HDZvqIOsNAcX7knc6GaUA1ENwQSUEyWYRrxQ6LgHZM9V?=
 =?us-ascii?Q?gxIbVEIlCpkc5dpljNzBkZka3iIL1//txK42jVrfAO5Mxfz6nm05pHR9RU74?=
 =?us-ascii?Q?sViC+p9O0c+HVw9saEBM8mb1QG0kiimXnK3LSHrb8aFfVfgc2Iq5QjfL/uht?=
 =?us-ascii?Q?Lf+lkIg1ZOhhihb2SlUFSulu8mpGU3jOgcDvl3HM2XP7nfTVOKBThqogue+W?=
 =?us-ascii?Q?1CJhUPa4eY1szS76IWXTgIIhXYHrBCbuTjs7sCxbDLihH8wqXAtDa/Rg/g71?=
 =?us-ascii?Q?ljua2SF7XuiXfvtQ1CY7cw4MFCoteno4FC79mVzvNFpEvK7R78LNuMMHUwVA?=
 =?us-ascii?Q?VzwzEx0KDGcJ3Rv1a3vKSH827Z3cN938T+JI07+/ngE+rJUeyI6So7kts8QB?=
 =?us-ascii?Q?fvuLgamOpucTIP9glxRVgHF7gtRr255/n2zDW9qUI2H0Cmgb9w3KxTApeXU3?=
 =?us-ascii?Q?OeRGzdCkiVzHYuuOMyytk3IPu3txt7oLyoPYLaGMJPkNz44EwgDtVYjPhEkm?=
 =?us-ascii?Q?GmlE526wdzwFHyqNV+QnfquwtCZ5mo03XalIrWWNqwQC17yUsL/h438i4O71?=
 =?us-ascii?Q?VwO8L+Lg/Chss9IRqQJTn1FuJxTD2YwoEsgICmYx6lXkT5Aosba6lTJaRim7?=
 =?us-ascii?Q?p0Zml7Ro9ze8oOuftM60T72mE0P7GFFajmaTP4qNiv1s4J/9AUyZqZh7PRpJ?=
 =?us-ascii?Q?Y0GAAIAFHYaWvPSjqTXlZMEXOjQv6tHu0j0/eTcjURhe3Tnb2CVH/gk4TH18?=
 =?us-ascii?Q?QDOjQ3lXkELM0HB1w/fllOjPldc1Hu1NRLasvOJeQDkWHfAgYdhxQk9lgtV0?=
 =?us-ascii?Q?AyoS7yExGHLto2dq4Zn4tdoi6ZzgbXkCWE9wvFVi3Tpks693wdZ9eU/Ytrm+?=
 =?us-ascii?Q?89V7owK29lgAAaY4FispQ9SCR1zjVzVxEP/mawel7Lngn5evc/516bQOh3uo?=
 =?us-ascii?Q?yNefhsv1nYoIiiqGFvJd46fgazIZmU8k2I3NU/aeew5e4w5UOmCfT0yFfzUh?=
 =?us-ascii?Q?zhQHGytPL1/5XlM65i58JQWBt2sVBd3V7sXbx/7QBWmMWZ4JnanEQznV1xEJ?=
 =?us-ascii?Q?/MRtt7aKWupeCMt939zVdJ47rTdTQMF3P/kpyLZj8RKd6yrEf9HBiedJJJj5?=
 =?us-ascii?Q?b/Es6Dcd9GqF58vO/AL225W6jecBZYHyOjUQVTslycoqPKmk+nBKaIiPD6bz?=
 =?us-ascii?Q?OzjLSXXmyt2z2pmr08AyKLDljujpBwKFcArblI+6yefY5/Zdzgpv/RVKIvwm?=
 =?us-ascii?Q?xXrKKWUGFnz6l2UBXl7oMms4tGvgbabzhDyP83M21Ku9t/34OEp5sfoDFLDO?=
 =?us-ascii?Q?pg9sDLqwgjuxlf1NJ1JeVlZE8S8lZUluNK3wtdYVHq5vdfSBZ6UKLJgUPbZX?=
 =?us-ascii?Q?t4Rn4C3mi4obUpy77vBnFcDjUzSoiY39nc6esrK6NLhI3nmAiULLgvdZbusK?=
 =?us-ascii?Q?WkpOM8JbpDrGzaCuR8ogZpOLnjMis6ZKv2WE4KguqS+kU5EmVp3Rqbz540to?=
 =?us-ascii?Q?6dX741hkL2oiFucdvhQXK1tK3/5CIz7Z9lq/W3yBJcYxMAGwVK+poT+JPUTS?=
 =?us-ascii?Q?dFmRbRG5orn6BsJ5VfU=3D?=
X-OriginatorOrg: Nvidia.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6e3a885c-158c-45b2-6f52-08dde6627977
X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8659.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 18:41:17.7869
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: CDSLv6OFkm+aZOnW74Ehofn0ul6m7JzKm/hB2lXjK1SkGQPpQAYH91pJpVyw9xjg
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8306

On Thu, Aug 28, 2025 at 11:15:20AM -0600, Keith Busch wrote:
> On Thu, Aug 28, 2025 at 07:54:27PM +0300, Leon Romanovsky wrote:
> > On Thu, Aug 28, 2025 at 09:19:20AM -0600, Keith Busch wrote:
> > > On Tue, Aug 19, 2025 at 08:36:59PM +0300, Leon Romanovsky wrote:
> > > > diff --git a/include/linux/blk_types.h b/include/linux/blk_types.h
> > > > index 09b99d52fd36..283058bcb5b1 100644
> > > > --- a/include/linux/blk_types.h
> > > > +++ b/include/linux/blk_types.h
> > > > @@ -387,6 +387,7 @@ enum req_flag_bits {
> > > >  	__REQ_FS_PRIVATE,	/* for file system (submitter) use */
> > > >  	__REQ_ATOMIC,		/* for atomic write operations */
> > > >  	__REQ_P2PDMA,		/* contains P2P DMA pages */
> > > > +	__REQ_MMIO,		/* contains MMIO memory */
> > > >  	/*
> > > >  	 * Command specific flags, keep last:
> > > >  	 */
> > > > @@ -420,6 +421,7 @@ enum req_flag_bits {
> > > >  #define REQ_FS_PRIVATE	(__force blk_opf_t)(1ULL << __REQ_FS_PRIVATE)
> > > >  #define REQ_ATOMIC	(__force blk_opf_t)(1ULL << __REQ_ATOMIC)
> > > >  #define REQ_P2PDMA	(__force blk_opf_t)(1ULL << __REQ_P2PDMA)
> > > > +#define REQ_MMIO	(__force blk_opf_t)(1ULL << __REQ_MMIO)
> > > 
> > > Now that my integrity metadata DMA series is staged, I don't think we
> > > can use REQ flags like this because data and metadata may have different
> > > mapping types. I think we should add a flags field to the dma_iova_state
> > > instead.
> > 
> > Before integrity metadata code was merged, the assumption was that request is
> > only one type or p2p or host. Is it still holding now?
> 
> I don't think that was ever the case. Metadata is allocated
> independently of the data payload, usually by the kernel in
> bio_integrity_prep() just before dispatching the request. The bio may
> have a p2p data payload, but the integrity metadata is just a kmalloc
> buf in that path.

Then you should do two dma mapping operations today, that is how the
API was built. You shouldn't mix P2P and non P2P within a single
operation right now..

Jason


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 18:59:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 18:59:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099869.1453549 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urhqY-0003Lk-9u; Thu, 28 Aug 2025 18:59:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099869.1453549; Thu, 28 Aug 2025 18:59:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urhqY-0003Ld-69; Thu, 28 Aug 2025 18:59:42 +0000
Received: by outflank-mailman (input) for mailman id 1099869;
 Thu, 28 Aug 2025 18:59:41 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Mimg=3I=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1urhqW-0003LX-W2
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 18:59:40 +0000
Received: from mail-lj1-x234.google.com (mail-lj1-x234.google.com
 [2a00:1450:4864:20::234])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2551394a-8441-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 20:59:38 +0200 (CEST)
Received: by mail-lj1-x234.google.com with SMTP id
 38308e7fff4ca-336925ebb8aso9890811fa.1
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 11:59: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>
X-Inumbo-ID: 2551394a-8441-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756407578; x=1757012378; 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=JHgmDngHhWHNxKCCMEU9OyOc6gxLMrfY0m3Mm7E3F8A=;
        b=EA1eAG/0Zx2VS11RVNCBe4qlz5+adJSSz+HvFf66uVcJCTnKfIIuUMmL+pfrX7vtBo
         iX5ymJHQ3YeGcZl3NdQqjQxy34pZuUXZB2TYyHOXFGIW3Scyfrs3yv44PLrO51/G8hCD
         xunFHoIHrSC9fjZ/frdyNZN91bjXHYcJeh+JpI2dXwrNgmlKQLCt/0wwUpd5BsKNAUhL
         3Fxz45yZ6G/yonCI0fbFPhyo+ztQPca20Dk97zWojDmc6Tlsw/a5DS0t3okU3CCIpeP8
         1oPhSR51V7oLgtU1oF4xfv7eXyUlEHzGPfFKFwDvMqVVXITpiUVHHraMa5Ga+B9byinv
         4pdQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756407578; x=1757012378;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=JHgmDngHhWHNxKCCMEU9OyOc6gxLMrfY0m3Mm7E3F8A=;
        b=gHeBPTD7Rs8Gxv9404Dd+zeXcxWkjHuqTwWoNFBB/tfqu9v2GM3JPVAFlUUYmZNYZl
         ks3U+xYzHLJiJrZAgXxgKde+c2A0UDoG9IKEqdJznsosf3cbZWs2ghnb8LMz77VLInUC
         wOiU7l/1QgQzI1w18j4wVl8aB2Hp3hYgTummEGXkZfrtwgFg6NLDF3rXHmTQlD2HkvzZ
         s4SaKVS4oJxO45N0bkp+4yINCAiOFvUWYBFUPMtcIXCwMDy8hcllF31YAJT7J2sSgUHX
         2/VLyrIsb+whEH8QbdAFZGJxKroiKsTRGDI78LFWPKVEhmNyc71YxqgUkQ4bp4jxk3OK
         Q+RA==
X-Forwarded-Encrypted: i=1; AJvYcCU4tiUbDU9p/icp/1qmgDaq48IGeBA4J5W9hfTKKp01ytkMPYhFdn2TLpPZN8w8D5HZoGIp5MHUUSU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwWJeKHl8oYkNcdzAekLyfiq/2whJsCGPOmHr/9KgYvZ9SjJLab
	XTgXp3y8/xLcu/qYk5+VrPIYdoSfElnDD5z5hbiCcMHzVthaFzvJ9mu48UA60nFolXljcoiXwDx
	l/GNjaMf6xkmuI0qtXj2UQkT344gcMZ4=
X-Gm-Gg: ASbGncv9peDxDO+7dhSjOQQ1aCNm4O8ANbAxZ0+OGUyjn7zBFyUZxz5Qqd8rbbzLFn6
	Xbd0+2MnHM1YF6/1JeLNfMEWarl3Mx0/TtqCG9CM2hf03HU+4taLCWy9MKQZFxLl4iEN11L3sIX
	3wd3ga1D7RqnA7zuEVD+w/y8BYAlFmhKXFB3h9/1fHtHdhMHoR49uJ0rntxfkeMhxGu+3szrX0c
	+gfhYKjy3GE06pw
X-Google-Smtp-Source: AGHT+IF9i1tbas/wTl5/MO4xtuhrul2Bxoi5i84DjsVRTTe2/ck0Ihpm8h9/qrVAxzrdsANfGFsgLzJjWvx5hvb3DuQ=
X-Received: by 2002:a2e:ae18:0:10b0:333:f3e6:9f2d with SMTP id
 38308e7fff4ca-33650dd353fmr42540301fa.6.1756407577355; Thu, 28 Aug 2025
 11:59:37 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1756329091.git.mykola_kvach@epam.com> <55ff99acd69f9eaf20f077e6b453b54931b541d4.1756329091.git.mykola_kvach@epam.com>
 <a132f2fe-124b-45ec-9444-42c1840cc29c@suse.com>
In-Reply-To: <a132f2fe-124b-45ec-9444-42c1840cc29c@suse.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Thu, 28 Aug 2025 21:59:26 +0300
X-Gm-Features: Ac12FXyocYp4Skb5IrBtOPOpqf6iwqPRCPnbkNzKN2lYPS7TbO9aBurcpBE5IU8
Message-ID: <CAGeoDV9vKbcanhxTwNUN1SuUOA5wH6UVQZ3_CSeE=iFQz2Ggdw@mail.gmail.com>
Subject: Re: [PATCH v10 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for guests
To: Jan Beulich <jbeulich@suse.com>
Cc: Mykola Kvach <mykola_kvach@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, 
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Jan,

I have completely changed the implementation so that the common parts
of the code are almost untouched. Therefore, there is no longer a need
to address the previous issues with comments and other concerns.

Thank you for your review. Please take a look at the new version of
this patch series. I hope there are no issues remaining.

On Thu, Aug 28, 2025 at 10:40=E2=80=AFAM Jan Beulich <jbeulich@suse.com> wr=
ote:
>
> On 27.08.2025 23:21, Mykola Kvach wrote:
> > --- a/xen/common/domain.c
> > +++ b/xen/common/domain.c
> > @@ -1349,16 +1349,10 @@ int domain_shutdown(struct domain *d, u8 reason=
)
> >      return 0;
> >  }
> >
> > -void domain_resume(struct domain *d)
> > +static void domain_resume_nopause(struct domain *d)
> >  {
> >      struct vcpu *v;
> >
> > -    /*
> > -     * Some code paths assume that shutdown status does not get reset =
under
> > -     * their feet (e.g., some assertions make this assumption).
> > -     */
> > -    domain_pause(d);
> > -
> >      spin_lock(&d->shutdown_lock);
> >
> >      d->is_shutting_down =3D d->is_shut_down =3D 0;
> > @@ -1366,13 +1360,40 @@ void domain_resume(struct domain *d)
> >
> >      for_each_vcpu ( d, v )
> >      {
> > +        /*
> > +         * No need to conditionally clear _VPF_suspended here:
> > +         * - This bit is only set on Arm, and only after a successful =
suspend.
>
> How likely do you think it is that, if e.g. RISC-V or PPC clone Arm's
> code, this comment would then be updated accordingly? IOW I don't think
> a justification like this one should be written in such terms.
>
> > +         * - domain_resume_nopause() may also be called from paths oth=
er than
> > +         *   the suspend/resume flow, such as "soft-reset" actions (e.=
g.,
> > +         *   on_poweroff), as part of the Xenstore control/shutdown pr=
otocol.
> > +         *   These require guest acknowledgement to complete the opera=
tion.
>
> I'm having trouble connecting "require guest acknowledgement" to ...
>
> > +         * So clearing the bit unconditionally is safe.
>
> ... the safety of the unconditional clearing.
>
> > +         */
> > +        clear_bit(_VPF_suspended, &v->pause_flags);
> > +
> >          if ( v->paused_for_shutdown )
> >              vcpu_unpause(v);
> >          v->paused_for_shutdown =3D 0;
> >      }
> >
> >      spin_unlock(&d->shutdown_lock);
> > +}
> >
> > +#ifdef CONFIG_ARM
> > +void domain_resume_nopause_helper(struct domain *d)
>
> This is an odd name to use from code meaning to invoke domain_resume_nopa=
use().
> Why isn't this called domain_resume_nopause(), and ...
>
> > +{
> > +    domain_resume_nopause(d);
>
> ... the static function simply _domain_resume_nopause() (in full accordan=
ce
> to the C standard's naming rules)?
>
> > +}
> > +#endif
> > +
> > +void domain_resume(struct domain *d)
> > +{
> > +    /*
> > +     * Some code paths assume that shutdown status does not get reset =
under
> > +     * their feet (e.g., some assertions make this assumption).
> > +     */
> > +    domain_pause(d);
>
> As you move the comment - no such assumptions exist when the code path
> through domain_resume_nopause_helper() is taken?
>
> Jan

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 19:09:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 19:09:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099892.1453559 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uri01-00058D-5G; Thu, 28 Aug 2025 19:09:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099892.1453559; Thu, 28 Aug 2025 19:09: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 1uri01-000586-2V; Thu, 28 Aug 2025 19:09:29 +0000
Received: by outflank-mailman (input) for mailman id 1099892;
 Thu, 28 Aug 2025 19:09:27 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=FxJR=3I=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1urhzy-000580-Q0
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 19:09:27 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 83073419-8442-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 21:09:25 +0200 (CEST)
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com (2603:10a6:150:7d::13)
 by AM7PR03MB6642.eurprd03.prod.outlook.com (2603:10a6:20b:1bf::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.19; Thu, 28 Aug
 2025 19:09:22 +0000
Received: from GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9]) by GV2PR03MB8678.eurprd03.prod.outlook.com
 ([fe80::4eb:3e7b:1ffa:25f9%6]) with mapi id 15.20.9073.016; Thu, 28 Aug 2025
 19:09: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>
X-Inumbo-ID: 83073419-8442-11f0-8adc-4578a1afcccb
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=B5Iww/iV0m8//uJ5c1stuBJtO5ZsVEROSKvnpVDOVEzOHOyhJoiOH11NYQibtfEF5pzGg9z3W4+kuNlb0/2uhkX6pPbjbzTqznyM+4EjuGmz+hzq0TCEboXnV8PXx7kEyo4+uLsqr5VEcr4lyhj4kwD9fjX7m6fUVEac++7CVk0fGr1qPMam8rzbecOfYC5BNviUHSeOu084ZR60+poJ4tYFAvALyN1jVeq443Bkxkjm5Y1ThAeLW8IFE+mpjW1+Pm9e2voEud8cdzd2L3YAMyUQmqSGEcnomfWxbGX5ua1nPGQYunYDnBulglbRUUwg5q/SlahgQZwS1tJdUi1vkQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=YrIlptuxwvYqLPMw9oCpAXXgIZSv9n19nnaM5h6LhHY=;
 b=WlK1vR2xiCYkn4OJ5Sw46WY1Y7C2TFsZGoEQAnJHWlgCfGeC8yr/FP+/pvNRHUOQixmsIfW0VLSt5V1NFoMoNGSWSh/CV/yNUz2UVH5/8mnr27yNYFrJ9TsXMgpssNUW/lok44OiXXXinJTZEWIZlAg+K4ZJFH+/II3rIGUp8n5+G0qJxrzEK9/u/UwGZ+eqSMKZi9dN/gO0gLctnfX75EDVlsBqhrcr+sIU6T7MDXGUmAgf7nELRdfXNXSMScnJDGHHFXL/lYtHuPtioXhcfyRcMg9US8+s4ggHmqWc2BeRdZTrC4jXn7vD5UG7QjAs+sgltYEMGhtPZ5JN79UbUA==
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=YrIlptuxwvYqLPMw9oCpAXXgIZSv9n19nnaM5h6LhHY=;
 b=g52VpzwySz3lefIsr7QS9nB+BV/MS8ubsw/befZ69+mLUSJ1SyhF4qpaVq9rQ7ZrSrQp5lRLt88ImG7ThS1PJJQus+f+fnwyLi8fEr6ZrKUKjhacjmo1ZITKBmalOaj9Hk3y82c5JwSKEVdUVP1CZYZT7dJUjAbc1hcCNDTiByzKw25CbJadAgSdnwIyOUx675jWiBlNrnr4NHQaj3793RM7SamE2gpuXWGP7XEy2bVNxRIgsaFR8PHmLtk9zW2fjkI8fBcP23EvVMqRifA00vlpBe6yKOzwfHXTQZE6iIsUkC1dlP1MtgJZZrypTPb8s6Vzx1uR5txVci9SOgDXaQ==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: Oleksandr Tyshchenko <olekstysh@gmail.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel
	<michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v4 08/12] xen/arm: vgic: add resource management for
 extended SPIs
Thread-Topic: [PATCH v4 08/12] xen/arm: vgic: add resource management for
 extended SPIs
Thread-Index: AQHcF3/NodAFMh424U2CquWmKsv0JLR4VPqAgAAai4A=
Date: Thu, 28 Aug 2025 19:09:22 +0000
Message-ID: <801cb42f-3d1e-4173-a5e6-d68c70d89fc7@epam.com>
References: <cover.1756317702.git.leonid_komarianskyi@epam.com>
 <9e8a11b024833c1b91b8806e7708bf35b04a8f6e.1756317702.git.leonid_komarianskyi@epam.com>
 <01a964ac-a9aa-4301-b3da-5691e18b1b73@gmail.com>
In-Reply-To: <01a964ac-a9aa-4301-b3da-5691e18b1b73@gmail.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: GV2PR03MB8678:EE_|AM7PR03MB6642:EE_
x-ms-office365-filtering-correlation-id: b0b04c54-b42f-40f3-1a7a-08dde66665b5
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?dlZxOXkzbm4rYXY3T1hLRElKWDJLeWF3TWNYY2lXdllFUHNXa1ljS2ptOTFv?=
 =?utf-8?B?SGg4SS81N2prU2FKUzhlV2NEWWpBNm5MVGJ0K3RYTC9aT1ZVQ1JEY1BKeXRC?=
 =?utf-8?B?SkwwUStVNFZiL0RPSllGTWJNMGRERXZOZ0NGWjZGa2NlZU5pVWE0TVFpQ3c0?=
 =?utf-8?B?L0JBRnQwU3ZodEhvalpSbmMvN3NTSUxNaC9ZY2t6eGIzQlByWndPMlpUR0pq?=
 =?utf-8?B?TjgyU1FtV1I1UWgyci95R1FLdm1uckNjUmoyTExWWkU0RkR5SS9wcXJsOWhm?=
 =?utf-8?B?Mkk4d0tISEU2L2hpRTVIU3VDeEhFVFRCeEI3Vm1IZlloa2ZucldyT0t2czdM?=
 =?utf-8?B?VE51d1Q5M1RXTTBFamlucUpRaTRWcjR4b2VtSGI0TkFmUmVrbmdYdmh0Qmo4?=
 =?utf-8?B?MXF5dHFIQTI5dFZDUG1ybllTQmxxcWdQeURKQzE2RU5FMlFsVlp6dG5ZQ0Z1?=
 =?utf-8?B?K2JlR2tGUkdhcXVNZEpWWjlSZTFwZ3NBRXVXN0k1cURKcVFUUDkxcTBhV01Y?=
 =?utf-8?B?SldWaUFIR3JyREh1QzJOMVozZld4Q0JQZzZzcnUvc24wanNCWmk5QURSUitE?=
 =?utf-8?B?YTJLS3RNMEhVOVJlRytEMExrUHNsOE9DQ3JiUHBQR3ZwZ3d4TUpKWm1jdStS?=
 =?utf-8?B?S1NIN1VaRHAwQVR2ZXBTVDZZQzBoRWNJK3Q2L2VkNXdMZVpSa2pnRTQrcWth?=
 =?utf-8?B?eUlzY0pWc2Juem1WWnJsMWRidXJxaHRVQ1pydVJUZUJ6cjA4bEZqS0NDSk5n?=
 =?utf-8?B?Sld3Qkd1WTBYYjlZMlM4aVpmUjY5WVpvMDU5a0I1MnNnL0RmTWdhanRxTDFL?=
 =?utf-8?B?R1lvSFlKMXZTZVlDQVdMUis1dk9XQzhwb1UxZUtpdVVRZFVjbjBCN0tMb2dV?=
 =?utf-8?B?cEZTNmhydmJPbjdFQnBmRkJTTmd0K0x2WTg3RnVaSGZzeUkrTGdXaHpCT1JM?=
 =?utf-8?B?VHQ4Y3hFbXlnV1hXRzZoRGpJZU9aM1Z1VndZTUF2dXZHeVNhNTVoeUNOMHkr?=
 =?utf-8?B?MDJGa0hKTDRQRkVpNytubG5XU0ZuTlZ4VGRjOFJBVzlmb0dIV3hwWDBXUHh4?=
 =?utf-8?B?MURUM2NaUTU4ZEY3U0tNN05nMnB5MlMweUdVUWtKN2dJelZRYytRUjh3OWV1?=
 =?utf-8?B?NEljaHpRZWxoT0c5RXFLemRBNXFFaFU5Ynp2RXZTeWhIQXR4TWdkSGpQR2cw?=
 =?utf-8?B?ai8weHhUKzgvMHdvc0NuWmpycnYycHFnMnVuZ1ZKMldqZEx4dHRQVzR4RVpj?=
 =?utf-8?B?dnpGTmR3V0RzazhrNmxOWWl3d2RYYzhuTU5tNWFZR3NpYWZQbk80bHVwL0hZ?=
 =?utf-8?B?ay9aOUY5eWExc3ptTXhscHFoL3o2d0t6SHZDQlhzeVNGR0hSOHBCWnppZHlF?=
 =?utf-8?B?UCtVY0NvdkFhS0dDb2kzV0c4QlhVb2tCWW5JdTVTT3d0SGovKzFJa25rbUpY?=
 =?utf-8?B?K0hpVStvdEJ4U3ZwU2hwMktSYXo0Nk1pcTd2Y3NsZ0FnQXhOcU16dWs2VGZw?=
 =?utf-8?B?dlJUTnpUYW5CRUFkWEVwekpyaHc5NDFRODNWYTJSUTdBQnVsSmMxWW1Ub0k5?=
 =?utf-8?B?bXdYZWM5QVhnbDhuOWRTNldCK1hTK2I3RFF5V2l1b1h1NXFOek1oTm14VGc4?=
 =?utf-8?B?enEvVVZYZlh2cTJJWENOSGRpVkRNb1N5UlNSa21qK0pCdWZBQlV4ZjAxUzhT?=
 =?utf-8?B?blNaN2pDcVFjdUN5VFNPZjlaZmtoRWNwaFJmb1UvMDNNM1VBSUVzMjRDWUhR?=
 =?utf-8?B?NzdLVTlidGpZc1pwazZkanRjSjArUWptcXlVZkVRTkd6b0ZCZi9LdnRhUTAw?=
 =?utf-8?B?Q2I5RjQybmRLK2NLWkVpVU5vM0w1MUVRVThmQjFOOHF6VjBhQ3dzRmNETzBr?=
 =?utf-8?B?NVR4ZkxQNXkzN2RBQUd4bHJxT0dMOG9ONHJmV3YrbGh3VkFNancxOXdtOTBM?=
 =?utf-8?B?ZkYzK3JrUG1uMHF6YnlOdE93TkxDZS9VZnVMNlZQampDUDZGNy9SMnhJS0pi?=
 =?utf-8?B?RHNEOHFDTFd3PT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR03MB8678.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?ZXVIdy9JRkkzWkRoYmp5dC9iNCtibkpvWWROeDZhOUVwN0p0amFYSzhTN3Zm?=
 =?utf-8?B?RlVkK1paZEUwVmUxMzhGamRzSGxTMSt3alhoZGZjU1RDL1ZoOG52SFZZZ05Z?=
 =?utf-8?B?YUhobjlwaVl2WG5KM1FBc1lUS1pxK0pIV1Z5QURncnBROTc1Z05kdGlpZFUr?=
 =?utf-8?B?VUJIVWNSU0dWM3ZBbWtFc3NIWXc2YU5rM0h0VUl4ZnkrWXoyOVh3V3pCNWFi?=
 =?utf-8?B?MWR0ZTg0RlN2Uk9zS2Z4aHRQVkFSRG1zcXVlQURzdHlPN0FlMDR5YUFlZnhT?=
 =?utf-8?B?MkFsbWNKTi9UaFVmandhTUl1WDRsMFZadis2S0tXd2pyeTl5SXpBTlFpS2tV?=
 =?utf-8?B?QzR0REZGYkluT0g3eFhQRWRHcTNZUjBlMUNGK0dpZEp3NWxOSWw4QzBONGNs?=
 =?utf-8?B?anFyZk90NGlIcHphbllPT2tPYVMzVEUyem1PRGRmMmpWOTdQa2lBWGt5VmQy?=
 =?utf-8?B?YSt1eC85STZpUGxaNTZYd1U5bVdKeFNaT0ZrSWR5QmlTZDEvK2Q1NW9GM1l1?=
 =?utf-8?B?cmJkSlpHOVRyM3NuYWdKeEtvL3UxZnl6UGVyT3NCT3U0L0hMdWJzUmt4ak9z?=
 =?utf-8?B?RTRkRmJ1RXM5SmU1OENXSko2TENkRXFsdzhuMTFoUmdWdHZNQWpPQ2tVUlhv?=
 =?utf-8?B?M2hMR0pOVTdvWUhIajJabTFueUMycmx1MnlWeUVQdzlQNG9IU0llTjIzSXBt?=
 =?utf-8?B?dlFYVWRuOGJGYXRnZkVBWWJnMmg4d0twbzJraU5IQXBCZXdMSTNTWWk0dG9S?=
 =?utf-8?B?a2pzVVo5OHJyNVJSd3JxNWRNUTgzdlNleUFIN0ErdGducW13dTBMV0ZuaU9u?=
 =?utf-8?B?cHMvdGMwSHlZMUxucWNxdEZzNnJUK2pXT0NpNUgzNVJ4dGJqenRpSzlhb0h1?=
 =?utf-8?B?QTNDNTRPbUpRdEZEMnNRTEVrckE5S3U4SjliWXM2MmtSM1Q3bmVqRDMyZm80?=
 =?utf-8?B?SFYxWERHK1BsV2hoVGp0TXcwN1lHOGZ6UjdkUGdzMTAxajV0T0JRWUFOT0RS?=
 =?utf-8?B?K2VnT1d4TlJjaVE1eVRpQTFhOHA4S1lCYTVFUC9zd0hnTWJtN0o2VVc3Qmo1?=
 =?utf-8?B?cXEzWmg1Yzlad2Z4Y2pBM2Q2blh6S1U3NTBrcFFpU2xWekxxUFc2YXIxRVd5?=
 =?utf-8?B?c2tmTmJKMlloV3lQWUxoa0hiSGZ6UmxrbkZsS2pBQVdCdUNOakpEaXA3dVhN?=
 =?utf-8?B?TjNRVTEvYXJGd2dTNXZhbDJoQ2hnVFE5QkFXZzlmU3BaWlQ3S29jd2d1RnJE?=
 =?utf-8?B?MXVkSVBXWndONWRLa2JUWnFqdHovSVhvYkZKSHYvZHJJYmxZb2t2d0xrYWNE?=
 =?utf-8?B?UmExWjc2aCt1S3pOdmNybGZjOUtEbUFwSHB0dFZPTTBvT1MybTFYOENvL2NZ?=
 =?utf-8?B?NjdLeFgvVmphbzBtZldzNlNQcVNCWHNhRzZaMUtvanVnNDV1SzJ6V0ZrY3Q1?=
 =?utf-8?B?dm5mWXZGUHZwOHVWU1BjOExLSDJETlBCY1dVT1BMK0U0cjh2VlFzaDhWQjk1?=
 =?utf-8?B?SlE0MUtkY3Z5V2lWcDZNMXRGVmpzSjNZMGhFZXBCZTBUVlJORXdhak5UY2dQ?=
 =?utf-8?B?bU1MUHAvYi9QM1lVVFBZU3pQTGN2M2VaWHpzclBOMVBUOTFySllBaXd0K1ZK?=
 =?utf-8?B?MTRxb2lBWHRnWWFqQTBkWjJEeWJNQ3ZJM2F2Y21NSGVPRFRieERzS1ZYeEly?=
 =?utf-8?B?OHRWRnJTdHVROWJaVWVyZ0VIdlAvTWdNYzY3Qm82Q0xkNjNqb2hKNVVlWGc3?=
 =?utf-8?B?a01oRHFTRnBmQTNVaXZ1VlFyUTh1Qk1JLzYwaEFLRVdTSVZsR0hCYmRiZWtZ?=
 =?utf-8?B?eWpYRkJNc09QVEFCM3B2ZWszaTVlekRBOVltakUzWXQwcW9YVCt4NWRYMDRL?=
 =?utf-8?B?QWhPaUpUL0crb3FEaTNIUHl1SEgrcGMxbWdKbFp1THFyMEM5M2lOVlhMMi9o?=
 =?utf-8?B?dFh2UEtrTnRqajdNdWIzSjVwTi9OK2lOaEM1VkE4ZG5zRXdlYVBkMkorQXVo?=
 =?utf-8?B?VUF1eTN2QnVGVTAzMTRBQVI1VG1SWDdkVUhSKzN2OGcvd3lncWRqclA2OEE0?=
 =?utf-8?B?a25GeGsxb2FFZkJiL0krd3BqVVY2bXhVSndlbWxjL2M1RmRXMTNMeHdSenA0?=
 =?utf-8?B?aThMa0ZTTzFwczVHaTZpZnFRS0dhRWl4SkNScEFYZXdjOGhudUtwd1NrVHRa?=
 =?utf-8?Q?T+USdGh26LknfHGrO5TWArc=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <5F9EEF6D4ED6C246B31D5EE4A2867D3F@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: GV2PR03MB8678.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b0b04c54-b42f-40f3-1a7a-08dde66665b5
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Aug 2025 19:09:22.3258
 (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: k8tqhsTPhDvljOxWcYTeAOD+ogECnUMz8sgWRbtaTH7KHp6OOPGaxjmzt79uciCyx9btHgO4mErXUwb+VlY5xc70jcl2zOlMCZtXBeqPTfc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR03MB6642

SGVsbG8gT2xla3NhbmRyLA0KDQpUaGFuayB5b3UgZm9yIHlvdXIgY29tbWVudCBhbmQgc3VnZ2Vz
dGlvbnMuDQoNCk9uIDI4LjA4LjI1IDIwOjM0LCBPbGVrc2FuZHIgVHlzaGNoZW5rbyB3cm90ZToN
Cj4gDQo+IA0KPiBPbiAyNy4wOC4yNSAyMToyNCwgTGVvbmlkIEtvbWFyaWFuc2t5aSB3cm90ZToN
Cj4gDQo+IEhlbGxvIExlb25pZA0KPiANCj4+IFRoaXMgY2hhbmdlIGludHJvZHVjZXMgcmVzb3Vy
Y2UgbWFuYWdlbWVudCBpbiB0aGUgVkdJQyB0byBoYW5kbGUNCj4+IGV4dGVuZGVkIFNQSXMgaW50
cm9kdWNlZCBpbiBHSUN2My4xLiBUaGUgcGVuZGluZ19pcnFzIGFuZA0KPj4gYWxsb2NhdGVkX2ly
cXMgYXJyYXlzIGFyZSByZXNpemVkIHRvIHN1cHBvcnQgdGhlIHJlcXVpcmVkDQo+PiBudW1iZXIg
b2YgZVNQSXMsIGJhc2VkIG9uIHdoYXQgaXMgc3VwcG9ydGVkIGJ5IHRoZSBoYXJkd2FyZSBhbmQN
Cj4+IHJlcXVlc3RlZCBieSB0aGUgZ3Vlc3QuIEEgbmV3IGZpZWxkLCBleHRfc2hhcmVkX2lycXMs
IGlzIGFkZGVkDQo+PiB0byB0aGUgVkdJQyBzdHJ1Y3R1cmUgdG8gc3RvcmUgaW5mb3JtYXRpb24g
YWJvdXQgZVNQSXMsIHNpbWlsYXINCj4+IHRvIGhvdyBzaGFyZWRfaXJxcyBpcyB1c2VkIGZvciBy
ZWd1bGFyIFNQSXMuDQo+Pg0KPj4gU2luY2UgdGhlIGVTUEkgcmFuZ2Ugc3RhcnRzIGF0IElOVElE
IDQwOTYgYW5kIElOVElEcyBiZXR3ZWVuIDEwMjUNCj4+IGFuZCA0MDk1IGFyZSByZXNlcnZlZCwg
aGVscGVyIG1hY3JvcyBhcmUgaW50cm9kdWNlZCB0byBzaW1wbGlmeSB0aGUNCj4+IHRyYW5zZm9y
bWF0aW9uIG9mIGluZGljZXMgYW5kIHRvIGVuYWJsZSBlYXNpZXIgYWNjZXNzIHRvIGVTUEktc3Bl
Y2lmaWMNCj4+IHJlc291cmNlcy4gVGhlc2UgY2hhbmdlcyBwcmVwYXJlIHRoZSBWR0lDIGZvciBw
cm9jZXNzaW5nIGVTUElzIGFzDQo+PiByZXF1aXJlZCBieSBmdXR1cmUgZnVuY3Rpb25hbGl0eS4N
Cj4+DQo+PiBUaGUgaW5pdGlhbGl6YXRpb24gYW5kIGRlaW5pdGlhbGl6YXRpb24gcGF0aHMgZm9y
IHZnaWMgaGF2ZSBiZWVuIHVwZGF0ZWQNCj4+IHRvIGFsbG9jYXRlIGFuZCBmcmVlIHRoZXNlIHJl
c291cmNlcyBhcHByb3ByaWF0ZWx5LiBBZGRpdGlvbmFsbHksDQo+PiB1cGRhdGVkIGhhbmRsaW5n
IG9mIElOVElEcyBncmVhdGVyIHRoYW4gMTAyNCwgcGFzc2VkIGZyb20gdGhlIHRvb2xzdGFjaw0K
Pj4gZHVyaW5nIGRvbWFpbiBjcmVhdGlvbiwgYW5kIHZlcmlmaWNhdGlvbiBsb2dpYyBlbnN1cmVz
IG9ubHkgdmFsaWQgU1BJIG9yDQo+PiBlU1BJIElOVElEcyBhcmUgdXNlZC4NCj4+DQo+PiBUaGUg
ZXhpc3RpbmcgU1BJIGJlaGF2aW9yIHJlbWFpbnMgdW5hZmZlY3RlZCB3aGVuIGd1ZXN0cyBkbyBu
b3QgcmVxdWVzdA0KPj4gZVNQSXMsIEdJQyBoYXJkd2FyZSBkb2VzIG5vdCBzdXBwb3J0IHRoZW0s
IG9yIHRoZSBDT05GSUdfR0lDVjNfRVNQSQ0KPj4gb3B0aW9uIGlzIGRpc2FibGVkLg0KPj4NCj4+
IFNpZ25lZC1vZmYtYnk6IExlb25pZCBLb21hcmlhbnNreWkgPGxlb25pZF9rb21hcmlhbnNreWlA
ZXBhbS5jb20+DQo+Pg0KPj4gLS0tDQo+PiBDaGFuZ2VzIGluIFY0Og0KPj4gLSBhZGRlZCBoYXNf
ZXNwaSBmaWVsZCB0byBzaW1wbGlmeSBkZXRlcm1pbmluZyB3aGV0aGVyIGEgZG9tYWluIGlzIGFi
bGUNCj4+IMKgwqAgdG8gb3BlcmF0ZSB3aXRoIGVTUEkNCj4+IC0gZml4ZWQgZm9ybWF0dGluZyBp
c3N1ZXMgYW5kIG1pc3NwZWxsaW5ncw0KPj4NCj4+IENoYW5nZXMgaW4gVjM6DQo+PiAtIGZpeGVk
IGZvcm1hdHRpbmcgZm9yIGxpbmVzIHdpdGggbW9yZSB0aGFuIDgwIHN5bWJvbHMNCj4+IC0gaW50
cm9kdWNlZCBoZWxwZXIgZnVuY3Rpb25zIHRvIGJlIGFibGUgdG8gdXNlIHN0dWJzIGluIGNhc2Ug
b2YNCj4+IMKgwqAgQ09ORklHX0dJQ1YzX0VTUEkgZGlzYWJsZWQsIGFuZCBhcyBhIHJlc3VsdCwg
cmVkdWNlIHRoZSBudW1iZXIgb2YNCj4+IMKgwqAgI2lmZGVmcw0KPj4gLSBmaXhlZCBjaGVja3Mg
Zm9yIG5yX3NwaXMgaW4gZG9tYWluX3ZnaWNfaW5pdA0KPj4gLSB1cGRhdGVkIGNvbW1lbnQgYWJv
dXQgbnJfc3BpcyBhZGp1c3RtZW50cyB3aXRoIGRvbTBsZXNzIG1lbnRpb24NCj4+IC0gbW92ZWQg
Y29tbWVudCB3aXRoIGFkZGl0aW9uYWwgZXhwbGFuYXRpb25zIGJlZm9yZSBjaGVja3MNCj4+IC0g
dXNlZCB1bnNpZ25lZCBpbnQgZm9yIGluZGV4ZXMgc2luY2UgdGhleSBjYW5ub3QgYmUgbmVnYXRp
dmUNCj4+IC0gcmVtb3ZlZCB1bm5lY2Vzc2FyeSBwYXJlbnRoZXNlcw0KPj4gLSBtb3ZlIHZnaWNf
ZXh0X3Jhbmtfb2Zmc2V0IHRvIHRoZSBiZWxvdyBpZmRlZiBndWFyZCwgdG8gcmVkdWNlIHRoZQ0K
Pj4gwqDCoCBudW1iZXIgb2YgaWZkZWZzDQo+Pg0KPj4gQ2hhbmdlcyBpbiBWMjoNCj4+IC0gY2hh
bmdlIGlzX2VzcGlfcmFuayB0byBpc192YWxpZF9lc3BpX3JhbmsgdG8gdmVyaWZ5IHdoZXRoZXIg
dGhlIGFycmF5DQo+PiDCoMKgIGVsZW1lbnQgZXh0X3NoYXJlZF9pcnFzIGV4aXN0cy4gVGhlIHBy
ZXZpb3VzIHZlcnNpb24sIGlzX2VzcGlfcmFuaywNCj4+IMKgwqAgb25seSBjaGVja2VkIGlmIHRo
ZSByYW5rIGluZGV4IHdhcyBsZXNzIHRoYW4gdGhlIG1heGltdW0gcG9zc2libGUgZVNQSQ0KPj4g
wqDCoCByYW5rIGluZGV4LCBidXQgdGhpcyBjb3VsZCBwb3RlbnRpYWxseSByZXN1bHQgaW4gYWNj
ZXNzaW5nIGENCj4+IMKgwqAgbm9uLWV4aXN0aW5nIGFycmF5IGVsZW1lbnQuIFRvIGFkZHJlc3Mg
dGhpcywgaXNfdmFsaWRfZXNwaV9yYW5rIHdhcw0KPj4gwqDCoCBpbnRyb2R1Y2VkLCB3aGljaCBl
bnN1cmVzIHRoYXQgdGhlIHJlcXVpcmVkIGVTUEkgcmFuayBleGlzdHMNCj4+IC0gbW92ZSBnaWNf
bnVtYmVyX2VzcGlzIHRvDQo+PiDCoMKgIHhlbi9hcm06IGdpY3YzOiBpbXBsZW1lbnQgaGFuZGxp
bmcgb2YgR0lDdjMuMSBlU1BJDQo+PiAtIHVwZGF0ZSB2Z2ljX2lzX3ZhbGlkX2lycSBjaGVja3Mg
dG8gYWxsb3cgb3BlcmF0aW5nIHdpdGggZVNQSXMNCj4+IC0gcmVtb3ZlIHJlZHVuZGFudCBuZXds
aW5lIGluIHZnaWNfYWxsb2NhdGVfdmlycQ0KPj4gLS0tDQo+PiDCoCB4ZW4vYXJjaC9hcm0vaW5j
bHVkZS9hc20vdmdpYy5oIHzCoCAyMCArKysNCj4+IMKgIHhlbi9hcmNoL2FybS92Z2ljLmPCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqAgfCAyMTMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
Ky0NCj4+IMKgIDIgZmlsZXMgY2hhbmdlZCwgMjMwIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25z
KC0pDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS92Z2ljLmgg
Yi94ZW4vYXJjaC9hcm0vaW5jbHVkZS8gDQo+PiBhc20vdmdpYy5oDQo+PiBpbmRleCAzZTdjYmJi
MTk2Li5mYjRjZWE3M2ViIDEwMDY0NA0KPj4gLS0tIGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNt
L3ZnaWMuaA0KPj4gKysrIGIveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3ZnaWMuaA0KPj4gQEAg
LTE0Niw2ICsxNDYsMTIgQEAgc3RydWN0IHZnaWNfZGlzdCB7DQo+PiDCoMKgwqDCoMKgIGludCBu
cl9zcGlzOyAvKiBOdW1iZXIgb2YgU1BJcyAqLw0KPj4gwqDCoMKgwqDCoCB1bnNpZ25lZCBsb25n
ICphbGxvY2F0ZWRfaXJxczsgLyogYml0bWFwIG9mIElSUXMgYWxsb2NhdGVkICovDQo+PiDCoMKg
wqDCoMKgIHN0cnVjdCB2Z2ljX2lycV9yYW5rICpzaGFyZWRfaXJxczsNCj4+ICsjaWZkZWYgQ09O
RklHX0dJQ1YzX0VTUEkNCj4+ICvCoMKgwqAgc3RydWN0IHZnaWNfaXJxX3JhbmsgKmV4dF9zaGFy
ZWRfaXJxczsNCj4+ICvCoMKgwqAgaW50IG5yX2VzcGlzOyAvKiBOdW1iZXIgb2YgZXh0ZW5kZWQg
U1BJcyAqLw0KPiANCj4gQ2FuIG5yX2VzcGlzIGJlIG5lZ2F0aXZlPw0KPiANCg0KTm8sIGl0IGNh
bm5vdCwgc28gSSB3aWxsIGNoYW5nZSBpdCB0byB1bnNpZ25lZCBpbnQgaW4gVjUuDQoNCj4+ICvC
oMKgwqAgLyogVG8gc2ltcGxpZnkgZGV0ZXJtaW5pbmcgd2hldGhlciBhIGRvbWFpbiBpcyBhYmxl
IHRvIG9wZXJhdGUgDQo+PiB3aXRoIGVTUEkgKi8NCj4+ICvCoMKgwqAgYm9vbCBoYXNfZXNwaTsN
Cj4gDQo+IEkgYWdyZWUgd2l0aCB0aGUgVm9sb2R5bXlyJ3MgY29tbWVudCBwcm92aWRlZCBpbiBz
ZXBhcmF0ZSBsZXR0ZXIgdGhhdCB3ZSANCj4gY291bGQgYXZvaWQgYWRkaW5nIGFuIGV4dHJhIHZh
ci4NCj4gDQoNClN1cmUsIGFzIEkgbWVudGlvbmVkIHRvIFZvbG9keW15ciwgSSB3aWxsIHJlbW92
ZSBpdCBpbiBWNS4NCg0KPj4gKyNlbmRpZg0KPj4gwqDCoMKgwqDCoCAvKg0KPj4gwqDCoMKgwqDC
oMKgICogU1BJcyBhcmUgZG9tYWluIGdsb2JhbCwgU0dJcyBhbmQgUFBJcyBhcmUgcGVyLVZDUFUg
YW5kIHN0b3JlZCBpbg0KPj4gwqDCoMKgwqDCoMKgICogc3RydWN0IGFyY2hfdmNwdS4NCj4+IEBA
IC0yNDMsNiArMjQ5LDE0IEBAIHN0cnVjdCB2Z2ljX29wcyB7DQo+PiDCoCAvKiBOdW1iZXIgb2Yg
cmFua3Mgb2YgaW50ZXJydXB0IHJlZ2lzdGVycyBmb3IgYSBkb21haW4gKi8NCj4+IMKgICNkZWZp
bmUgRE9NQUlOX05SX1JBTktTKGQpICgoKGQpLT5hcmNoLnZnaWMubnJfc3BpcyszMSkvMzIpDQo+
PiArI2lmZGVmIENPTkZJR19HSUNWM19FU1BJDQo+PiArI2RlZmluZSBET01BSU5fTlJfRVhUX1JB
TktTKGQpICgoKGQpLT5hcmNoLnZnaWMubnJfZXNwaXMrMzEpLzMyKQ0KPj4gKyNkZWZpbmUgRVhU
X1JBTktfTUlOIChFU1BJX0JBU0VfSU5USUQvMzIpDQo+PiArI2RlZmluZSBFWFRfUkFOS19NQVgg
KChFU1BJX01BWF9JTlRJRCszMSkvMzIpDQo+PiArI2RlZmluZSBFWFRfUkFOS19OVU0ySURYKG51
bSkgKChudW0pLUVYVF9SQU5LX01JTikNCj4+ICsjZGVmaW5lIEVYVF9SQU5LX0lEWDJOVU0oaWR4
KSAoKGlkeCkrRVhUX1JBTktfTUlOKQ0KPj4gKyNlbmRpZg0KPj4gKw0KPj4gwqAgI2RlZmluZSB2
Z2ljX2xvY2sodinCoMKgIHNwaW5fbG9ja19pcnEoJih2KS0+ZG9tYWluLT5hcmNoLnZnaWMubG9j
aykNCj4+IMKgICNkZWZpbmUgdmdpY191bmxvY2sodikgc3Bpbl91bmxvY2tfaXJxKCYodiktPmRv
bWFpbi0+YXJjaC52Z2ljLmxvY2spDQo+PiBAQCAtMzAyLDYgKzMxNiwxMiBAQCBleHRlcm4gc3Ry
dWN0IHZnaWNfaXJxX3JhbmsgDQo+PiAqdmdpY19yYW5rX29mZnNldChzdHJ1Y3QgdmNwdSAqdiwN
Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdW5zaWduZWQgaW50IGIs
DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVuc2lnbmVkIGludCBu
LA0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1bnNpZ25lZCBpbnQg
cyk7DQo+PiArI2lmZGVmIENPTkZJR19HSUNWM19FU1BJDQo+PiArZXh0ZXJuIHN0cnVjdCB2Z2lj
X2lycV9yYW5rICp2Z2ljX2V4dF9yYW5rX29mZnNldChzdHJ1Y3QgdmNwdSAqdiwNCj4+ICvCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1bnNpZ25lZCBpbnQgYiwNCj4+
ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1bnNpZ25lZCBpbnQg
biwNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1bnNpZ25l
ZCBpbnQgcyk7DQo+PiArI2VuZGlmDQo+PiDCoCBleHRlcm4gc3RydWN0IHZnaWNfaXJxX3Jhbmsg
KnZnaWNfcmFua19pcnEoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIA0KPj4gaW50IGlycSk7DQo+
PiDCoCBleHRlcm4gdm9pZCB2Z2ljX2Rpc2FibGVfaXJxcyhzdHJ1Y3QgdmNwdSAqdiwgdWludDMy
X3QgciwgdW5zaWduZWQgDQo+PiBpbnQgbik7DQo+PiDCoCBleHRlcm4gdm9pZCB2Z2ljX2VuYWJs
ZV9pcnFzKHN0cnVjdCB2Y3B1ICp2LCB1aW50MzJfdCByLCB1bnNpZ25lZCANCj4+IGludCBuKTsN
Cj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vdmdpYy5jIGIveGVuL2FyY2gvYXJtL3ZnaWMu
Yw0KPj4gaW5kZXggMmJiZjRkOTlhYS4uZjRiODBjYjA1ZiAxMDA2NDQNCj4+IC0tLSBhL3hlbi9h
cmNoL2FybS92Z2ljLmMNCj4+ICsrKyBiL3hlbi9hcmNoL2FybS92Z2ljLmMNCj4+IEBAIC0yNyw5
ICsyNyw4MiBAQA0KPj4gwqAgYm9vbCB2Z2ljX2lzX3ZhbGlkX2xpbmUoc3RydWN0IGRvbWFpbiAq
ZCwgdW5zaWduZWQgaW50IHZpcnEpDQo+PiDCoCB7DQo+PiArI2lmZGVmIENPTkZJR19HSUNWM19F
U1BJDQo+PiArwqDCoMKgIGlmICggdmlycSA+PSBFU1BJX0JBU0VfSU5USUQgJiYNCj4+ICvCoMKg
wqDCoMKgwqDCoMKgIHZpcnEgPCBFU1BJX0lEWDJJTlRJRChkLT5hcmNoLnZnaWMubnJfZXNwaXMp
ICkNCj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gdHJ1ZTsNCj4+ICsjZW5kaWYNCj4+ICsNCj4+
IMKgwqDCoMKgwqAgcmV0dXJuIHZpcnEgPCB2Z2ljX251bV9pcnFzKGQpOw0KPj4gwqAgfQ0KPj4g
KyNpZmRlZiBDT05GSUdfR0lDVjNfRVNQSQ0KPj4gKy8qDQo+PiArICogU2luY2UgZVNQSSBpbmRl
eGVzIHN0YXJ0IGZyb20gNDA5NiBhbmQgbnVtYmVycyBmcm9tIDEwMjQgdG8NCj4+ICsgKiA0MDk1
IGFyZSBmb3JiaWRkZW4sIHdlIG5lZWQgdG8gY2hlY2sgYm90aCBsb3dlciBhbmQgdXBwZXINCj4+
ICsgKiBsaW1pdHMgZm9yIHJhbmtzLg0KPj4gKyAqLw0KPj4gK3N0YXRpYyBpbmxpbmUgYm9vbCBp
c192YWxpZF9lc3BpX3Jhbmsoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IA0KPj4gcmFu
aykNCj4+ICt7DQo+PiArwqDCoMKgIHJldHVybiByYW5rID49IEVYVF9SQU5LX01JTiAmJg0KPj4g
K8KgwqDCoMKgwqDCoMKgwqDCoMKgIEVYVF9SQU5LX05VTTJJRFgocmFuaykgPCBET01BSU5fTlJf
RVhUX1JBTktTKGQpOw0KPj4gK30NCj4+ICsNCj4+ICtzdGF0aWMgaW5saW5lIHN0cnVjdCB2Z2lj
X2lycV9yYW5rICp2Z2ljX2dldF9lc3BpX3Jhbmsoc3RydWN0IHZjcHUgKnYsDQo+PiArwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVuc2lnbmVkIGlu
dCANCj4+IHJhbmspDQo+PiArew0KPj4gK8KgwqDCoCByZXR1cm4gJnYtPmRvbWFpbi0gDQo+PiA+
YXJjaC52Z2ljLmV4dF9zaGFyZWRfaXJxc1tFWFRfUkFOS19OVU0ySURYKHJhbmspXTsNCj4+ICt9
DQo+PiArDQo+PiArc3RhdGljIGlubGluZSBib29sIHZnaWNfcmVzZXJ2ZV9lc3BpX3ZpcnEoc3Ry
dWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgDQo+PiBpbnQgdmlycSkNCj4+ICt7DQo+PiArwqDCoMKg
IHJldHVybiAhdGVzdF9hbmRfc2V0X2JpdChFU1BJX0lOVElEMklEWCh2aXJxKSArIHZnaWNfbnVt
X2lycXMoZCksDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqAgZC0+YXJjaC52Z2ljLmFsbG9jYXRlZF9pcnFzKTsNCj4+ICt9DQo+PiAr
DQo+PiArc3RhdGljIHZvaWQgYXJjaF9tb3ZlX2VzcGlzKHN0cnVjdCB2Y3B1ICp2KQ0KPj4gK3sN
Cj4+ICvCoMKgwqAgY29uc3QgY3B1bWFza190ICpjcHVfbWFzayA9IGNwdW1hc2tfb2Yodi0+cHJv
Y2Vzc29yKTsNCj4+ICvCoMKgwqAgc3RydWN0IGRvbWFpbiAqZCA9IHYtPmRvbWFpbjsNCj4+ICvC
oMKgwqAgc3RydWN0IHBlbmRpbmdfaXJxICpwOw0KPj4gK8KgwqDCoCBzdHJ1Y3QgdmNwdSAqdl90
YXJnZXQ7DQo+PiArwqDCoMKgIHVuc2lnbmVkIGludCBpOw0KPj4gKw0KPj4gK8KgwqDCoCBmb3Ig
KCBpID0gRVNQSV9CQVNFX0lOVElEOw0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoCBpIDwgRVhUX1JB
TktfSURYMk5VTShkLT5hcmNoLnZnaWMubnJfZXNwaXMpOyBpKysgKQ0KPj4gK8KgwqDCoCB7DQo+
PiArwqDCoMKgwqDCoMKgwqAgdl90YXJnZXQgPSB2Z2ljX2dldF90YXJnZXRfdmNwdSh2LCBpKTsN
Cj4+ICvCoMKgwqDCoMKgwqDCoCBwID0gaXJxX3RvX3BlbmRpbmcodl90YXJnZXQsIGkpOw0KPj4g
Kw0KPj4gK8KgwqDCoMKgwqDCoMKgIGlmICggdl90YXJnZXQgPT0gdiAmJiAhdGVzdF9iaXQoR0lD
X0lSUV9HVUVTVF9NSUdSQVRJTkcsICZwLSANCj4+ID5zdGF0dXMpICkNCj4+ICvCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgIGlycV9zZXRfYWZmaW5pdHkocC0+ZGVzYywgY3B1X21hc2spOw0KPj4gK8Kg
wqDCoCB9DQo+PiArfQ0KPj4gKyNlbHNlDQo+PiArc3RhdGljIGlubGluZSBib29sIGlzX3ZhbGlk
X2VzcGlfcmFuayhzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgDQo+PiByYW5rKQ0KPj4g
K3sNCj4+ICvCoMKgwqAgcmV0dXJuIGZhbHNlOw0KPj4gK30NCj4+ICsNCj4+ICsvKg0KPj4gKyAq
IFRoaXMgZnVuY3Rpb24gaXMgc3R1YiBhbmQgd2lsbCBub3QgYmUgY2FsbGVkIGlmIENPTkZJR19H
SUNWM19FU1BJPW4sDQo+PiArICogYmVjYXVzZSBpbiB0aGlzIGNhc2UsIGlzX3ZhbGlkX2VzcGlf
cmFuayB3aWxsIGFsd2F5cyByZXR1cm4gZmFsc2UuDQo+PiArICovDQo+PiArc3RhdGljIGlubGlu
ZSBzdHJ1Y3QgdmdpY19pcnFfcmFuayAqdmdpY19nZXRfZXNwaV9yYW5rKHN0cnVjdCB2Y3B1ICp2
LA0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oCB1bnNpZ25lZCBpbnQgDQo+PiByYW5rKQ0KPj4gK3sNCj4+ICvCoMKgwqAgQVNTRVJUX1VOUkVB
Q0hBQkxFKCk7DQo+PiArwqDCoMKgIHJldHVybiBOVUxMOw0KPj4gK30NCj4+ICsNCj4+ICtzdGF0
aWMgaW5saW5lIGJvb2wgdmdpY19yZXNlcnZlX2VzcGlfdmlycShzdHJ1Y3QgZG9tYWluICpkLCB1
bnNpZ25lZCANCj4+IGludCB2aXJxKQ0KPj4gK3sNCj4+ICvCoMKgwqAgcmV0dXJuIGZhbHNlOw0K
Pj4gK30NCj4+ICsNCj4+ICtzdGF0aWMgdm9pZCBhcmNoX21vdmVfZXNwaXMoc3RydWN0IHZjcHUg
KnYpIHsgfQ0KPj4gKyNlbmRpZg0KPj4gKw0KPj4gwqAgc3RhdGljIGlubGluZSBzdHJ1Y3Qgdmdp
Y19pcnFfcmFuayAqdmdpY19nZXRfcmFuayhzdHJ1Y3QgdmNwdSAqdiwNCj4+IMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1bnNpZ25lZCBpbnQgcmFuaykNCj4+
IMKgIHsNCj4+IEBAIC0zNyw2ICsxMTAsOCBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCB2Z2ljX2ly
cV9yYW5rIA0KPj4gKnZnaWNfZ2V0X3Jhbmsoc3RydWN0IHZjcHUgKnYsDQo+PiDCoMKgwqDCoMKg
wqDCoMKgwqAgcmV0dXJuIHYtPmFyY2gudmdpYy5wcml2YXRlX2lycXM7DQo+PiDCoMKgwqDCoMKg
IGVsc2UgaWYgKCByYW5rIDw9IERPTUFJTl9OUl9SQU5LUyh2LT5kb21haW4pICkNCj4+IMKgwqDC
oMKgwqDCoMKgwqDCoCByZXR1cm4gJnYtPmRvbWFpbi0+YXJjaC52Z2ljLnNoYXJlZF9pcnFzW3Jh
bmsgLSAxXTsNCj4+ICvCoMKgwqAgZWxzZSBpZiAoIGlzX3ZhbGlkX2VzcGlfcmFuayh2LT5kb21h
aW4sIHJhbmspICkNCj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gdmdpY19nZXRfZXNwaV9yYW5r
KHYsIHJhbmspOw0KPj4gwqDCoMKgwqDCoCBlbHNlDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0
dXJuIE5VTEw7DQo+PiDCoCB9DQo+PiBAQCAtMTE3LDYgKzE5Miw3NCBAQCBpbnQgZG9tYWluX3Zn
aWNfcmVnaXN0ZXIoc3RydWN0IGRvbWFpbiAqZCwgDQo+PiB1bnNpZ25lZCBpbnQgKm1taW9fY291
bnQpDQo+PiDCoMKgwqDCoMKgIHJldHVybiAwOw0KPj4gwqAgfQ0KPj4gKyNpZmRlZiBDT05GSUdf
R0lDVjNfRVNQSQ0KPj4gKy8qDQo+PiArICogVGhlIGZ1bmN0aW9uIGJlaGF2aW9yIGlzIHRoZSBz
YW1lIGFzIGZvciByZWd1bGFyIFNQSXMgDQo+PiAodmdpY19yYW5rX29mZnNldCksDQo+PiArICog
YnV0IGl0IG9wZXJhdGVzIHdpdGggZXh0ZW5kZWQgU1BJIHJhbmtzLg0KPj4gKyAqLw0KPj4gK3N0
cnVjdCB2Z2ljX2lycV9yYW5rICp2Z2ljX2V4dF9yYW5rX29mZnNldChzdHJ1Y3QgdmNwdSAqdiwg
dW5zaWduZWQgDQo+PiBpbnQgYiwNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdW5z
aWduZWQgaW50IG4sIHVuc2lnbmVkIA0KPj4gaW50IHMpDQo+PiArew0KPj4gK8KgwqDCoCB1bnNp
Z25lZCBpbnQgcmFuayA9IFJFR19SQU5LX05SKGIsIChuID4+IHMpKTsNCj4+ICsNCj4+ICvCoMKg
wqAgcmV0dXJuIHZnaWNfZ2V0X3JhbmsodiwgcmFuayArIEVYVF9SQU5LX01JTik7DQo+PiArfQ0K
PiANCj4gU28gdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB2Z2ljX3Jhbmtfb2Zmc2V0KCkgYW5kIHZn
aWNfZXh0X3Jhbmtfb2Zmc2V0KCkgDQo+IGluIHVzaW5nIEVYVF9SQU5LX01JTiBpbiB0aGUgbGF0
dGVyLiBJIGFtIHdvbmRlcmluZywgd2hldGhlciBpdCBtYWtlcyANCj4gc2Vuc2UgdG8gcmV1c2Ug
dGhlIGV4aXN0aW5nIHZnaWNfcmFua19vZmZzZXQoKSBieSBtb3ZpbmcgI2lmZGVmIGludG8gaXQ/
IA0KPiBNYXliZSBpdCB3b3VsZCBiZSBwb3NzaWJsZSB0byBvcHRpbWl6ZSBzb21lIGNvZGUgYWRk
ZWQgaW4gIltQQVRDSCB2NCANCj4gMTAvMTJdIHhlbi9hcm06IHZnaWMtdjM6IGFkZCBlbXVsYXRp
b24gb2YgR0lDdjMuMSBlU1BJIHJlZ2lzdGVycyIuDQo+IA0KPiBlLmcuIF9fdmdpY192M19kaXN0
cl9jb21tb25fbW1pb19yZWFkOg0KPiANCj4gQ29kZSBmb3IgdGhlIGZvbGxvd2luZyBjYXNlcyBs
b29rcyB2ZXJ5IHNpbWlsYXIgdG8gdGhlIHJlZ3VsYXIgDQo+IGNvdW50ZXJwYXJ0cy4NCj4gY2Fz
ZSBWUkFOR0UzMihHSUNEX0lTRU5BQkxFUm5FLCBHSUNEX0lTRU5BQkxFUm5FTik6DQo+IGNhc2Ug
VlJBTkdFMzIoR0lDRF9JQ0VOQUJMRVJuRSwgR0lDRF9JQ0VOQUJMRVJuRU4pOg0KPiBjYXNlIFZS
QU5HRTMyKEdJQ0RfSVBSSU9SSVRZUm5FLCBHSUNEX0lQUklPUklUWVJuRU4pOg0KPiBjYXNlIFZS
QU5HRTMyKEdJQ0RfSUNGR1JuRSwgR0lDRF9JQ0ZHUm5FTik6DQo+IGNhc2UgVlJBTkdFMzIoR0lD
RF9JUFJJT1JJVFlSbkUsIEdJQ0RfSVBSSU9SSVRZUm5FTik6DQo+IA0KPiBUaGUgZGlmZmVyZW5j
ZSBpcyBpbiB0aGUgc2FpZCBoZWxwZXIgYW5kIHRoZSBiYXNlIGNhbGN1bGF0ZWQgYXMNCj4gInJl
ZyAtIEdJQ0RfWFhYIiwgd2hlcmUgR0lDRF9YWFggaXMgdGhlIHN0YXJ0IG9mIHRoZSByYW5nZSBm
b3IgdGhlIGVTUEktIA0KPiBiYXNlZCByZWcgKGUuZy4gR0lDRF9JUFJJT1JJVFlSbkUpIG9yIHJl
Z3VsYXIgU1BJLWJhc2VkIHJlZyANCj4gKGUuZy5HSUNEX0lQUklPUklUWVIpLiBUaGUgR0lDRF9Y
WFggY291bGQgcHJvYmFibHkgYmUgY2hvc2VuDQo+IGJhc2VkIG9uIHRoZSAicmVnIiB2YWx1ZSBp
dHNlbGYsIGZvciBleGFtcGxlOg0KPiANCj4gcmFuayA9IHZnaWNfcmFua19vZmZzZXQodiwgOCwg
cmVnID49IEdJQ0RfSVBSSU9SSVRZUm5FID8gcmVnIC0gDQo+IEdJQ0RfSVBSSU9SSVRZUm5FIDog
cmVnIC0gR0lDRF9JUFJJT1JJVFlSLCBEQUJUX1dPUkQpOw0KPiANCj4gUGxlYXNlIG5vdGUsIEkg
YW0gbm90IHJlcXVlc3RpbmcgZm9yIGFueSB1cGRhdGVzIHJlZ2FyZGluZyB0byB0aGF0LCBJIGFt
IA0KPiBqdXN0IHRoaW5raW5nIG91dCBsb3VkLg0KPiANCg0KRmlyc3Qgb2YgYWxsLCBJIGhhdmUg
dG8gc2F5IHRoYXQgSSByZWFsbHkgdHJpZWQgdG8gcmV1c2UgdGhlIGV4aXN0aW5nIA0KY29kZSBm
b3IgcmVndWxhciBTUElzIHdoZW5ldmVyIHBvc3NpYmxlLCBidXQgSSBjb3VsZCBub3QgY29tZSB1
cCB3aXRoIA0Kc29tZXRoaW5nIGJldHRlciB0aGFuIGludHJvZHVjaW5nIGEgbmV3IGZ1bmN0aW9u
IGZvciBlU1BJIHJhbmtzIGluIHRoaXMgDQpjYXNlLiBUaGlzIGlzIGR1ZSB0byBzZXZlcmFsIHJl
YXNvbnM6DQoxKSBDdXJyZW50bHksIGFsbCBlU1BJLXNwZWNpZmljIG9mZnNldHMgYXJlIHBsYWNl
ZCB1bmRlciAjaWZkZWYgdG8gYXZvaWQgDQpvciBhdCBsZWFzdCByZWR1Y2UgdGhlIGludHJvZHVj
dGlvbiBvZiBkZWFkIGNvZGUgb3IgZGVmaW5lcyB0aGF0IHdpbGwgDQpub3QgYmUgdXNlZC4gVGhp
cyB3YXMgcmVxdWVzdGVkIGJ5IG91ciB0ZWFtbWF0ZXMgd2hvIGFyZSBlbmdhZ2VkIGluIA0KTUlT
UkEgZml4ZXMuIFRoZXJlZm9yZSwgdGhpcyBpcyB0aGUgZmlyc3QgcmVhc29uIHdoeSBlU1BJLXNw
ZWNpZmljIA0KZWxlbWVudHMgYXJlIHBsYWNlZCB1bmRlciB0aGUgYXBwcm9wcmlhdGUgY29uZmln
dXJhdGlvbi4gV2l0aG91dCANCkNPTkZJR19HSUNWM19FU1BJLCB3ZSBjYW5ub3QgdXNlIHRoZXNl
IG9mZnNldHMuDQoNCjIpIFRoZSBwcm9wb3NlZCBzb2x1dGlvbjoNCiA+IHJhbmsgPSB2Z2ljX3Jh
bmtfb2Zmc2V0KHYsIDgsIHJlZyA+PSBHSUNEX0lQUklPUklUWVJuRSA/IHJlZyAtDQogPiBHSUNE
X0lQUklPUklUWVJuRSA6IHJlZyAtIEdJQ0RfSVBSSU9SSVRZUiwgREFCVF9XT1JEKTsNCg0Kd2ls
bCBub3Qgd29yaywgdW5mb3J0dW5hdGVseSwgYmVjYXVzZSBpbiB0aGlzIGNhc2UsIHZnaWNfcmFu
a19vZmZzZXQgDQp3aWxsIGFsd2F5cyByZXR1cm4gcmFua3MgZm9yIHJlZ3VsYXIgU1BJcy4NCg0K
TG9uZyBzdG9yeSBzaG9ydDogd2Ugd2lsbCBlbmNvdW50ZXIgaXNzdWVzIGRldGVybWluaW5nIHdo
ZXRoZXIgdG8gdXNlIA0Kc2hhcmVkX2lycXMgKGZvciByZWd1bGFyIFNQSXMpIG9yIGV4dF9zaGFy
ZWRfaXJxcyAoZm9yIGVTUElzKS4NCg0KQW5kIGhlcmUgYXJlIHRoZSBkZXRhaWxzIGFib3V0IHdo
eSB0aGlzIHdpbGwgbm90IHdvcms6DQoNCkluIHRoZSBjYXNlIG9mIHJlY2VpdmluZyBhbiBvZmZz
ZXQgZm9yIGEgcmVndWxhciBTUEksIGUuZy4sIDB4NjIwMCANCihHSUNEX0lST1VURVIgcmFuZ2Ug
WzB4NjEwMC0weDdGRDhdKSwgd2Ugd2lsbCBnZXQgcmFuayA9IDIgZm9yIHJlZ3VsYXIgU1BJczoN
CnZnaWNfcmFua19vZmZzZXQodiwgNjQsIDB4NjIwMC0weDYwMDAsIERBQlRfRE9VQkxFX1dPUkQp
IC0+DQpEQUJUX0RPVUJMRV9XT1JEID0gMw0KDQpUaHVzOg0KcmFuayA9IFJFR19SQU5LX05SKDY0
LCAoMHgyMDAgPj4gMykgLT4NClJFR19SQU5LX05SIHdpbGwgcmV0dXJuIGluIHRoaXMgY2FzZToN
CjB4MjAwID4+IDMgPj4gNSA9IDINCg0KT24gdGhlIG90aGVyIGhhbmQsIGlmIHdlIHJlY2VpdmUg
YW4gb2Zmc2V0IGZvciBhbiBlU1BJLCBlLmcuLCAweDgyMDAgDQooR0lDRF9JUk9VVEVSbkUgcmFu
Z2UgWzB4ODAwMC0weDlGRkNdKSwgd2Ugd2lsbCBnZXQgdGhlIHNhbWUgcmFuayA9IDIgDQp3aGVu
IHVzaW5nIHRoZSBwcm9wb3NlZCBzb2x1dGlvbjoNCnZnaWNfcmFua19vZmZzZXQodiwgNjQsIDB4
ODIwMC0weDgwMDAsIERBQlRfRE9VQkxFX1dPUkQpIC0+DQpEQUJUX0RPVUJMRV9XT1JEID0gMw0K
DQpyYW5rID0gUkVHX1JBTktfTlIoNjQsICgweDIwMCA+PiAzKSAtPg0KUkVHX1JBTktfTlIgd2ls
bCByZXR1cm4gYWxzbzoNCjB4MjAwID4+IDMgPj4gNSA9IDINCg0KQXMgYSByZXN1bHQsIGluIGJv
dGggY2FzZXMsIHZnaWNfZ2V0X3JhbmsodiwgMikgd2lsbCByZXR1cm4gdGhlIHJhbmsgZm9yIA0K
cmVndWxhciBTUElzOg0KDQovKiBUaGlzIGNvbmRpdGlvbiB3aWxsIGFwcGx5IGJlY2F1c2UgcmFu
ayB3aWxsIGJlIGxlc3MgdGhhbiAzMiAqLw0KZWxzZSBpZiAoIHJhbmsgPD0gRE9NQUlOX05SX1JB
TktTKHYtPmRvbWFpbikgKQ0KICAgICByZXR1cm4gJnYtPmRvbWFpbi0+YXJjaC52Z2ljLnNoYXJl
ZF9pcnFzW3JhbmsgLSAxXTsNCg0KVGhlcmVmb3JlLCBJIGRlY2lkZWQgdG8gY3JlYXRlIGEgc2Vw
YXJhdGUgZnVuY3Rpb24gdG8gcHJvcGVybHkgdHJhbnNmb3JtIA0KcmFua3MgaW50byB0aGUgY29y
cmVjdCByYW5nZS4NCg0KQW5kLCB1bmZvcnR1bmF0ZWx5LCB3ZSBjYW5ub3QgcmVzb2x2ZSB0aGUg
c2Vjb25kIGlzc3VlIHdpdGggI2lmZGVmcyANCmluc2lkZSB2Z2ljX3Jhbmtfb2Zmc2V0LCBiZWNh
dXNlIHRoaXMgZnVuY3Rpb24gd2lsbCByZWNlaXZlIHRoZSBzYW1lIA0KcGFyYW1ldGVycyBmb3Ig
U1BJcy9lU1BJcyBhbmQgd2Ugd291bGQgbm90IGJlIGFibGUgdG8gZGV0ZXJtaW5lIHdoZXRoZXIg
DQp3ZSBzaG91bGQgcmV0dXJuIHNoYXJlZF9pcnFzIG9yIGV4dF9zaGFyZWRfaXJxcy4NCg0KPiAN
Cj4+ICsNCj4+ICtzdGF0aWMgdW5zaWduZWQgaW50IHZnaWNfbnVtX3NwaV9saW5lcyhzdHJ1Y3Qg
ZG9tYWluICpkKQ0KPj4gK3sNCj4+ICvCoMKgwqAgcmV0dXJuIGQtPmFyY2gudmdpYy5ucl9zcGlz
ICsgZC0+YXJjaC52Z2ljLm5yX2VzcGlzOw0KPj4gK30NCj4+ICsNCj4+ICtzdGF0aWMgaW50IGlu
aXRfdmdpY19lc3BpKHN0cnVjdCBkb21haW4gKmQpDQo+PiArew0KPj4gK8KgwqDCoCB1bnNpZ25l
ZCBpbnQgaSwgaWR4Ow0KPj4gKw0KPj4gK8KgwqDCoCBpZiAoIGQtPmFyY2gudmdpYy5ucl9lc3Bp
cyA9PSAwICkNCj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gMDsNCj4+ICsNCj4+ICvCoMKgwqAg
ZC0+YXJjaC52Z2ljLmV4dF9zaGFyZWRfaXJxcyA9DQo+PiArwqDCoMKgwqDCoMKgwqAgeHphbGxv
Y19hcnJheShzdHJ1Y3QgdmdpY19pcnFfcmFuaywgRE9NQUlOX05SX0VYVF9SQU5LUyhkKSk7DQo+
PiArwqDCoMKgIGlmICggZC0+YXJjaC52Z2ljLmV4dF9zaGFyZWRfaXJxcyA9PSBOVUxMICkNCj4+
ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gLUVOT01FTTsNCj4+ICsNCj4+ICvCoMKgwqAgZm9yICgg
aSA9IGQtPmFyY2gudmdpYy5ucl9zcGlzLCBpZHggPSAwOw0KPj4gK8KgwqDCoMKgwqDCoMKgwqDC
oCBpIDwgdmdpY19udW1fc3BpX2xpbmVzKGQpOyBpKyssIGlkeCsrICkNCj4+ICvCoMKgwqDCoMKg
wqDCoCB2Z2ljX2luaXRfcGVuZGluZ19pcnEoJmQtPmFyY2gudmdpYy5wZW5kaW5nX2lycXNbaV0s
DQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoCBFU1BJX0lEWDJJTlRJRChpZHgpKTsNCj4+ICsNCj4+ICvCoMKgwqAgZm9yICggaSA9
IDA7IGkgPCBET01BSU5fTlJfRVhUX1JBTktTKGQpOyBpKysgKQ0KPj4gK8KgwqDCoMKgwqDCoMKg
IHZnaWNfcmFua19pbml0KCZkLT5hcmNoLnZnaWMuZXh0X3NoYXJlZF9pcnFzW2ldLCBpLCAwKTsN
Cj4+ICsNCj4+ICvCoMKgwqAgcmV0dXJuIDA7DQo+PiArfQ0KPj4gKw0KPj4gK3N0cnVjdCBwZW5k
aW5nX2lycSAqZXNwaV90b19wZW5kaW5nKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBp
cnEpDQo+PiArew0KPj4gK8KgwqDCoCBpcnEgPSBFU1BJX0lOVElEMklEWChpcnEpICsgZC0+YXJj
aC52Z2ljLm5yX3NwaXM7DQo+PiArwqDCoMKgIHJldHVybiAmZC0+YXJjaC52Z2ljLnBlbmRpbmdf
aXJxc1tpcnFdOw0KPj4gK30NCj4+ICsjZWxzZQ0KPj4gK3N0YXRpYyB1bnNpZ25lZCBpbnQgaW5p
dF92Z2ljX2VzcGkoc3RydWN0IGRvbWFpbiAqZA0KPj4gK3sNCj4+ICvCoMKgwqAgcmV0dXJuIDA7
DQo+PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyB1bnNpZ25lZCBpbnQgdmdpY19udW1fc3BpX2xpbmVz
KHN0cnVjdCBkb21haW4gKmQpDQo+PiArew0KPj4gK8KgwqDCoCByZXR1cm4gZC0+YXJjaC52Z2lj
Lm5yX3NwaXM7DQo+PiArfQ0KPj4gKw0KPj4gK3N0cnVjdCBwZW5kaW5nX2lycSAqZXNwaV90b19w
ZW5kaW5nKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBpcnEpDQo+PiArew0KPj4gK8Kg
wqDCoCByZXR1cm4gTlVMTDsNCj4+ICt9DQo+PiArI2VuZGlmDQo+PiArDQo+PiArc3RhdGljIHVu
c2lnbmVkIGludCB2Z2ljX251bV9hbGxvY19pcnFzKHN0cnVjdCBkb21haW4gKmQpDQo+PiArew0K
Pj4gK8KgwqDCoCByZXR1cm4gdmdpY19udW1fc3BpX2xpbmVzKGQpICsgTlJfTE9DQUxfSVJRUzsN
Cj4+ICt9DQo+PiArDQo+PiDCoCBpbnQgZG9tYWluX3ZnaWNfaW5pdChzdHJ1Y3QgZG9tYWluICpk
LCB1bnNpZ25lZCBpbnQgbnJfc3BpcykNCj4+IMKgIHsNCj4+IMKgwqDCoMKgwqAgaW50IGk7DQo+
PiBAQCAtMTMxLDYgKzI3NCwzOCBAQCBpbnQgZG9tYWluX3ZnaWNfaW5pdChzdHJ1Y3QgZG9tYWlu
ICpkLCB1bnNpZ25lZCANCj4+IGludCBucl9zcGlzKQ0KPj4gwqDCoMKgwqDCoMKgICovDQo+PiDC
oMKgwqDCoMKgIG5yX3NwaXMgPSBST1VORFVQKG5yX3NwaXMsIDMyKTsNCj4+ICsjaWZkZWYgQ09O
RklHX0dJQ1YzX0VTUEkNCj4+ICvCoMKgwqAgLyoNCj4+ICvCoMKgwqDCoCAqIER1cmluZyBkb21h
aW4gY3JlYXRpb24sIHRoZSBkb20wbGVzcyBEb21VcyBjb2RlIG9yIHRvb2xzdGFjayANCj4+IHNw
ZWNpZmllcw0KPj4gK8KgwqDCoMKgICogdGhlIG1heGltdW0gSU5USUQsIHdoaWNoIGlzIGRlZmlu
ZWQgaW4gdGhlIGRvbWFpbiBjb25maWcgDQo+PiBzdWJ0cmFjdGVkIGJ5DQo+PiArwqDCoMKgwqAg
KiAzMiB0byBjb3ZlciB0aGUgbG9jYWwgSVJRcyAocGxlYXNlIHNlZSB0aGUgY29tbWVudCB0byAN
Cj4+IFZHSUNfREVGX05SX1NQSVMpLg0KPj4gK8KgwqDCoMKgICogVG8gY29tcHV0ZSB0aGUgYWN0
dWFsIG51bWJlciBvZiBlU1BJIHRoYXQgd2lsbCBiZSB1c2FibGUgZm9yLA0KPj4gK8KgwqDCoMKg
ICogYWRkIGJhY2sgMzIuDQo+PiArwqDCoMKgwqAgKi8NCj4+ICvCoMKgwqAgaWYgKCBucl9zcGlz
ICsgMzIgPiBFU1BJX0lEWDJJTlRJRChOUl9FU1BJX0lSUVMpICkNCj4+ICvCoMKgwqDCoMKgwqDC
oCByZXR1cm4gLUVJTlZBTDsNCj4+ICsNCj4+ICvCoMKgwqAgaWYgKCBucl9zcGlzICsgMzIgPj0g
RVNQSV9CQVNFX0lOVElEICkNCj4+ICvCoMKgwqAgew0KPj4gK8KgwqDCoMKgwqDCoMKgIGQtPmFy
Y2gudmdpYy5ucl9lc3BpcyA9IG1pbihucl9zcGlzIC0gRVNQSV9CQVNFX0lOVElEICsgMzIsIA0K
Pj4gMTAyNFUpOw0KPj4gK8KgwqDCoMKgwqDCoMKgIC8qIFZlcmlmeSBpZiBHSUMgSFcgY2FuIGhh
bmRsZSBwcm92aWRlZCBJTlRJRCAqLw0KPj4gK8KgwqDCoMKgwqDCoMKgIGlmICggZC0+YXJjaC52
Z2ljLm5yX2VzcGlzID4gZ2ljX251bWJlcl9lc3BpcygpICkNCj4+ICvCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgIHJldHVybiAtRUlOVkFMOw0KPj4gK8KgwqDCoMKgwqDCoMKgIC8qDQo+PiArwqDCoMKg
wqDCoMKgwqDCoCAqIFNldCB0aGUgbWF4aW11bSBhdmFpbGFibGUgbnVtYmVyIGZvciByZWd1bGFy
DQo+PiArwqDCoMKgwqDCoMKgwqDCoCAqIFNQSSB0byBwYXNzIHRoZSBuZXh0IGNoZWNrDQo+PiAr
wqDCoMKgwqDCoMKgwqDCoCAqLw0KPj4gK8KgwqDCoMKgwqDCoMKgIG5yX3NwaXMgPSBWR0lDX0RF
Rl9OUl9TUElTOw0KPj4gK8KgwqDCoMKgwqDCoMKgIGQtPmFyY2gudmdpYy5oYXNfZXNwaSA9IHRy
dWU7DQo+PiArwqDCoMKgIH0NCj4+ICvCoMKgwqAgZWxzZQ0KPj4gK8KgwqDCoCB7DQo+PiArwqDC
oMKgwqDCoMKgwqAgLyogRG9tYWluIHdpbGwgdXNlIHRoZSByZWd1bGFyIFNQSSByYW5nZSAqLw0K
Pj4gK8KgwqDCoMKgwqDCoMKgIGQtPmFyY2gudmdpYy5ucl9lc3BpcyA9IDA7DQo+PiArwqDCoMKg
wqDCoMKgwqAgZC0+YXJjaC52Z2ljLmhhc19lc3BpID0gZmFsc2U7DQo+PiArwqDCoMKgIH0NCj4+
ICsjZW5kaWYNCj4+ICsNCj4+IMKgwqDCoMKgwqAgLyogTGltaXQgdGhlIG51bWJlciBvZiB2aXJ0
dWFsIFNQSXMgc3VwcG9ydGVkIHRvICgxMDIwIC0gMzIpID0gDQo+PiA5ODjCoCAqLw0KPj4gwqDC
oMKgwqDCoCBpZiAoIG5yX3NwaXMgPiAoMTAyMCAtIE5SX0xPQ0FMX0lSUVMpICkNCj4+IMKgwqDC
oMKgwqDCoMKgwqDCoCByZXR1cm4gLUVJTlZBTDsNCj4+IEBAIC0xNDUsNyArMzIwLDcgQEAgaW50
IGRvbWFpbl92Z2ljX2luaXQoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgDQo+PiBpbnQgbnJf
c3BpcykNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gLUVOT01FTTsNCj4+IMKgwqDCoMKg
wqAgZC0+YXJjaC52Z2ljLnBlbmRpbmdfaXJxcyA9DQo+PiAtwqDCoMKgwqDCoMKgwqAgeHphbGxv
Y19hcnJheShzdHJ1Y3QgcGVuZGluZ19pcnEsIGQtPmFyY2gudmdpYy5ucl9zcGlzKTsNCj4+ICvC
oMKgwqDCoMKgwqDCoCB4emFsbG9jX2FycmF5KHN0cnVjdCBwZW5kaW5nX2lycSwgdmdpY19udW1f
c3BpX2xpbmVzKGQpKTsNCj4+IMKgwqDCoMKgwqAgaWYgKCBkLT5hcmNoLnZnaWMucGVuZGluZ19p
cnFzID09IE5VTEwgKQ0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiAtRU5PTUVNOw0KPj4g
QEAgLTE1NiwxMiArMzMxLDE2IEBAIGludCBkb21haW5fdmdpY19pbml0KHN0cnVjdCBkb21haW4g
KmQsIHVuc2lnbmVkIA0KPj4gaW50IG5yX3NwaXMpDQo+PiDCoMKgwqDCoMKgIGZvciAoIGkgPSAw
OyBpIDwgRE9NQUlOX05SX1JBTktTKGQpOyBpKysgKQ0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHZn
aWNfcmFua19pbml0KCZkLT5hcmNoLnZnaWMuc2hhcmVkX2lycXNbaV0sIGkgKyAxLCAwKTsNCj4+
ICvCoMKgwqAgcmV0ID0gaW5pdF92Z2ljX2VzcGkoZCk7DQo+PiArwqDCoMKgIGlmICggcmV0ICkN
Cj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gcmV0Ow0KPj4gKw0KPj4gwqDCoMKgwqDCoCByZXQg
PSBkLT5hcmNoLnZnaWMuaGFuZGxlci0+ZG9tYWluX2luaXQoZCk7DQo+PiDCoMKgwqDCoMKgIGlm
ICggcmV0ICkNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gcmV0Ow0KPj4gwqDCoMKgwqDC
oCBkLT5hcmNoLnZnaWMuYWxsb2NhdGVkX2lycXMgPQ0KPj4gLcKgwqDCoMKgwqDCoMKgIHh6YWxs
b2NfYXJyYXkodW5zaWduZWQgbG9uZywgQklUU19UT19MT05HUyh2Z2ljX251bV9pcnFzKGQpKSk7
DQo+PiArwqDCoMKgwqDCoMKgwqAgeHphbGxvY19hcnJheSh1bnNpZ25lZCBsb25nLCANCj4+IEJJ
VFNfVE9fTE9OR1ModmdpY19udW1fYWxsb2NfaXJxcyhkKSkpOw0KPj4gwqDCoMKgwqDCoCBpZiAo
ICFkLT5hcmNoLnZnaWMuYWxsb2NhdGVkX2lycXMgKQ0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHJl
dHVybiAtRU5PTUVNOw0KPj4gQEAgLTE5NSw5ICszNzQsMjcgQEAgdm9pZCBkb21haW5fdmdpY19m
cmVlKHN0cnVjdCBkb21haW4gKmQpDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgfQ0KPj4gwqDCoMKg
wqDCoCB9DQo+PiArI2lmZGVmIENPTkZJR19HSUNWM19FU1BJDQo+PiArwqDCoMKgIGZvciAoIGkg
PSAwOyBpIDwgZC0+YXJjaC52Z2ljLm5yX2VzcGlzOyBpKysgKQ0KPj4gK8KgwqDCoCB7DQo+PiAr
wqDCoMKgwqDCoMKgwqAgc3RydWN0IHBlbmRpbmdfaXJxICpwID0gc3BpX3RvX3BlbmRpbmcoZCwg
RVNQSV9JRFgySU5USUQoaSkpOw0KPj4gKw0KPj4gK8KgwqDCoMKgwqDCoMKgIGlmICggcC0+ZGVz
YyApDQo+PiArwqDCoMKgwqDCoMKgwqAgew0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0
ID0gcmVsZWFzZV9ndWVzdF9pcnEoZCwgcC0+aXJxKTsNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgIGlmICggcmV0ICkNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZHByaW50
ayhYRU5MT0dfR19XQVJOSU5HLCAiZCV1OiBGYWlsZWQgdG8gcmVsZWFzZSANCj4+IHZpcnEgJXUg
cmV0ID0gJWRcbiIsDQo+IA0KPiANCj4gTklUOiB5b3UgY2FuIHVzZSAlcGQgZm9yIHByaW50aW5n
IGRvbWFpbiB3aXRoIGl0cyBJRA0KPiANCj4gDQoNCkkgd2lsbCBmaXggaXQgaW4gVjUuDQoNCj4+
ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGQtPmRvbWFp
bl9pZCwgcC0+aXJxLCByZXQpOw0KPj4gK8KgwqDCoMKgwqDCoMKgIH0NCj4+ICvCoMKgwqAgfQ0K
Pj4gKyNlbmRpZg0KPj4gKw0KPj4gwqDCoMKgwqDCoCBpZiAoIGQtPmFyY2gudmdpYy5oYW5kbGVy
ICkNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBkLT5hcmNoLnZnaWMuaGFuZGxlci0+ZG9tYWluX2Zy
ZWUoZCk7DQo+PiDCoMKgwqDCoMKgIHhmcmVlKGQtPmFyY2gudmdpYy5zaGFyZWRfaXJxcyk7DQo+
PiArI2lmZGVmIENPTkZJR19HSUNWM19FU1BJDQo+PiArwqDCoMKgIHhmcmVlKGQtPmFyY2gudmdp
Yy5leHRfc2hhcmVkX2lycXMpOw0KPj4gKyNlbmRpZg0KPj4gwqDCoMKgwqDCoCB4ZnJlZShkLT5h
cmNoLnZnaWMucGVuZGluZ19pcnFzKTsNCj4+IMKgwqDCoMKgwqAgeGZyZWUoZC0+YXJjaC52Z2lj
LmFsbG9jYXRlZF9pcnFzKTsNCj4+IMKgIH0NCj4+IEBAIC0zMzEsNiArNTI4LDggQEAgdm9pZCBh
cmNoX21vdmVfaXJxcyhzdHJ1Y3QgdmNwdSAqdikNCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAo
IHZfdGFyZ2V0ID09IHYgJiYgIXRlc3RfYml0KEdJQ19JUlFfR1VFU1RfTUlHUkFUSU5HLCAmcC0g
DQo+PiA+c3RhdHVzKSApDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpcnFfc2V0X2Fm
ZmluaXR5KHAtPmRlc2MsIGNwdV9tYXNrKTsNCj4+IMKgwqDCoMKgwqAgfQ0KPj4gKw0KPj4gK8Kg
wqDCoCBhcmNoX21vdmVfZXNwaXModik7DQo+PiDCoCB9DQo+PiDCoCB2b2lkIHZnaWNfZGlzYWJs
ZV9pcnFzKHN0cnVjdCB2Y3B1ICp2LCB1aW50MzJfdCByLCB1bnNpZ25lZCBpbnQgbikNCj4+IEBA
IC01MzgsNiArNzM3LDggQEAgc3RydWN0IHBlbmRpbmdfaXJxICppcnFfdG9fcGVuZGluZyhzdHJ1
Y3QgdmNwdSAqdiwgDQo+PiB1bnNpZ25lZCBpbnQgaXJxKQ0KPj4gwqDCoMKgwqDCoMKgwqDCoMKg
IG4gPSAmdi0+YXJjaC52Z2ljLnBlbmRpbmdfaXJxc1tpcnFdOw0KPj4gwqDCoMKgwqDCoCBlbHNl
IGlmICggaXNfbHBpKGlycSkgKQ0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIG4gPSB2LT5kb21haW4t
PmFyY2gudmdpYy5oYW5kbGVyLT5scGlfdG9fcGVuZGluZyh2LT5kb21haW4sIA0KPj4gaXJxKTsN
Cj4+ICvCoMKgwqAgZWxzZSBpZiAoIGlzX2VzcGkoaXJxKSApDQo+PiArwqDCoMKgwqDCoMKgwqAg
biA9IGVzcGlfdG9fcGVuZGluZyh2LT5kb21haW4sIGlycSk7DQo+PiDCoMKgwqDCoMKgIGVsc2UN
Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBuID0gJnYtPmRvbWFpbi0+YXJjaC52Z2ljLnBlbmRpbmdf
aXJxc1tpcnEgLSAzMl07DQo+PiDCoMKgwqDCoMKgIHJldHVybiBuOw0KPj4gQEAgLTU0Nyw2ICs3
NDgsOSBAQCBzdHJ1Y3QgcGVuZGluZ19pcnEgKnNwaV90b19wZW5kaW5nKHN0cnVjdCBkb21haW4g
DQo+PiAqZCwgdW5zaWduZWQgaW50IGlycSkNCj4+IMKgIHsNCj4+IMKgwqDCoMKgwqAgQVNTRVJU
KGlycSA+PSBOUl9MT0NBTF9JUlFTKTsNCj4+ICvCoMKgwqAgaWYgKCBpc19lc3BpKGlycSkgKQ0K
Pj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiBlc3BpX3RvX3BlbmRpbmcoZCwgaXJxKTsNCj4+ICsN
Cj4+IMKgwqDCoMKgwqAgcmV0dXJuICZkLT5hcmNoLnZnaWMucGVuZGluZ19pcnFzW2lycSAtIDMy
XTsNCj4+IMKgIH0NCj4+IEBAIC02NjgsNiArODcyLDkgQEAgYm9vbCB2Z2ljX3Jlc2VydmVfdmly
cShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCANCj4+IGludCB2aXJxKQ0KPj4gwqDCoMKgwqDC
oCBpZiAoICF2Z2ljX2lzX3ZhbGlkX2xpbmUoZCwgdmlycSkgKQ0KPj4gwqDCoMKgwqDCoMKgwqDC
oMKgIHJldHVybiBmYWxzZTsNCj4+ICvCoMKgwqAgaWYgKCBpc19lc3BpKHZpcnEpICkNCj4+ICvC
oMKgwqDCoMKgwqDCoCByZXR1cm4gdmdpY19yZXNlcnZlX2VzcGlfdmlycShkLCB2aXJxKTsNCj4+
ICsNCj4+IMKgwqDCoMKgwqAgcmV0dXJuICF0ZXN0X2FuZF9zZXRfYml0KHZpcnEsIGQtPmFyY2gu
dmdpYy5hbGxvY2F0ZWRfaXJxcyk7DQo+PiDCoCB9DQo+PiBAQCAtNjg1LDcgKzg5Miw3IEBAIGlu
dCB2Z2ljX2FsbG9jYXRlX3ZpcnEoc3RydWN0IGRvbWFpbiAqZCwgYm9vbCBzcGkpDQo+PiDCoMKg
wqDCoMKgIGVsc2UNCj4+IMKgwqDCoMKgwqAgew0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGZpcnN0
ID0gMzI7DQo+PiAtwqDCoMKgwqDCoMKgwqAgZW5kID0gdmdpY19udW1faXJxcyhkKTsNCj4+ICvC
oMKgwqDCoMKgwqDCoCBlbmQgPSB2Z2ljX251bV9hbGxvY19pcnFzKGQpOw0KPj4gwqDCoMKgwqDC
oCB9DQo+PiDCoMKgwqDCoMKgIC8qDQo+IA0KDQpCZXN0IHJlZ2FyZHMsDQpMZW9uaWQNCg==


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 19:10:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 19:10:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099906.1453569 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uri1C-0006dD-Jb; Thu, 28 Aug 2025 19:10:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099906.1453569; Thu, 28 Aug 2025 19:10: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 1uri1C-0006d6-FS; Thu, 28 Aug 2025 19:10:42 +0000
Received: by outflank-mailman (input) for mailman id 1099906;
 Thu, 28 Aug 2025 19:10:40 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=e5LM=3I=kernel.org=kbusch@srs-se1.protection.inumbo.net>)
 id 1uri1A-0006cl-Iz
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 19:10:40 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ae5305f1-8442-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 21:10:38 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id AE2F160139;
 Thu, 28 Aug 2025 19:10:36 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id CFBADC4CEEB;
 Thu, 28 Aug 2025 19:10:34 +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>
X-Inumbo-ID: ae5305f1-8442-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1756408236;
	bh=nTTeahhIb0FZNTHkQNMJBnWQfHnp2aJ+r4oH3UJmf9I=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=kiAyKBDPTCAig6cfYhRFzVMlXt8gF/BgqIWlzfngucl4yl5Wcl8PEMxeGxZyn4feY
	 9QNbLauol7wPo69EnbsJUOvYSMo6YfZ3+owIkOs7tkWX5BPwXZEGC9l2iz9VL73nWJ
	 LMeYGO+x9LIMWkAgoCM0LVxjf0/nrBlT574LedC07bLp9s3BQzVau6M5uUSf07U/m8
	 vqELaFQz9N5nFU8S5MsiAq/DKmR1fhhzHyINYKZV0xBuVLm5Y0saWfzSXpuLfpmwbf
	 9eS/h5nEcBCqmS1GS4AcOq4YDto3/XpsP6UcVeqRbKR8yG+flv5A1aPbY1iMmgWmoI
	 HI/G0rHOVaaNA==
Date: Thu, 28 Aug 2025 13:10:32 -0600
From: Keith Busch <kbusch@kernel.org>
To: Jason Gunthorpe <jgg@nvidia.com>
Cc: Leon Romanovsky <leon@kernel.org>,
	Marek Szyprowski <m.szyprowski@samsung.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-mm@kvack.org, linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org, linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 15/16] block-dma: properly take MMIO path
Message-ID: <aLCpqI-VQ7KeB6DL@kbusch-mbp>
References: <cover.1755624249.git.leon@kernel.org>
 <642dbeb7aa94257eaea71ec63c06e3f939270023.1755624249.git.leon@kernel.org>
 <aLBzeMNT3WOrjprC@kbusch-mbp>
 <20250828165427.GB10073@unreal>
 <aLCOqIaoaKUEOdeh@kbusch-mbp>
 <20250828184115.GE7333@nvidia.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250828184115.GE7333@nvidia.com>

On Thu, Aug 28, 2025 at 03:41:15PM -0300, Jason Gunthorpe wrote:
> On Thu, Aug 28, 2025 at 11:15:20AM -0600, Keith Busch wrote:
> > 
> > I don't think that was ever the case. Metadata is allocated
> > independently of the data payload, usually by the kernel in
> > bio_integrity_prep() just before dispatching the request. The bio may
> > have a p2p data payload, but the integrity metadata is just a kmalloc
> > buf in that path.
> 
> Then you should do two dma mapping operations today, that is how the
> API was built. You shouldn't mix P2P and non P2P within a single
> operation right now..

Data and metadata are mapped as separate operations. They're just
different parts of one blk-mq request.


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 19:18:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 19:18:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099916.1453580 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uri8q-0007Mu-Aj; Thu, 28 Aug 2025 19:18:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099916.1453580; Thu, 28 Aug 2025 19:18: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 1uri8q-0007Mn-6O; Thu, 28 Aug 2025 19:18:36 +0000
Received: by outflank-mailman (input) for mailman id 1099916;
 Thu, 28 Aug 2025 19:18:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=AInb=3I=nvidia.com=jgg@srs-se1.protection.inumbo.net>)
 id 1uri8o-0007Mh-Qf
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 19:18:34 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on20613.outbound.protection.outlook.com
 [2a01:111:f403:2416::613])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c84674ed-8443-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 21:18:32 +0200 (CEST)
Received: from CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13)
 by DM6PR12MB4483.namprd12.prod.outlook.com (2603:10b6:5:2a2::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.16; Thu, 28 Aug
 2025 19:18:22 +0000
Received: from CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732]) by CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732%4]) with mapi id 15.20.9073.010; Thu, 28 Aug 2025
 19:18: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>
X-Inumbo-ID: c84674ed-8443-11f0-8dd7-1b34d833f44b
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ewH2ieH5LDzBiW3oheyBFwIa/Nafy26BsTHhGXxP7b7oUC14NAtvTcoMrcTe/vUn3asLXce8N7ZgywJeBWvbYuqtVhk8LHfBS14S/3ApUUQJAoxzcMIrv8UGGtdiXt3PIk/3AK/ZM4b5WUg1vPLXt3REDtkapOr6yV0q9GHLjiDEwejVKMtAM8sCsEsUEZaOUMdDzDbYSynev5JwfpIiOHFliZ8E1Kj4H3F5xp17cI49SV1htvUuGW/AhcQDyAI1yR84Rqn4omafTb3RS/siwn/lNZSgQuBICE7YiCC8yAT2+LanLJ9QQMZaqoDD1GDDVWm5JZtJMKigGAA+ULBaCw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0mgqg7jv533EByceZHfSmVEnFe8pbA07e3o/tOscS54=;
 b=X/7wBUXT89nTZbGqbEYuSk7vOfv4nCYGYmap/KinegRe3Rv421Q/5BOmPy1DsUX0ZMSRf3qBc/2fdRB4g5y2NI0ZqHw6QonCPIyyX4MxS+WNjkPC/5Fl9cQSPlRvR79DQiBitxLE8WWHv9XhLh1j62d+C5QYAn/gPMP4q/r891Hz9nq5CTkNmLvbgqbNqYa5pPcpKPxYz3gti1wcdWoKNPULQC9cVGv8fEDezkmtBEEqpkNkFKnX1dLkuLj4JGL3RvjXYwfiAQJ8od2bpzAzM/jexnkcb8vdnV3vc1qP6FoP7NAOGAUE2wylRptmaubaFD9o5RL3yCfElffu0CDaHQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com;
 dkim=pass header.d=nvidia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0mgqg7jv533EByceZHfSmVEnFe8pbA07e3o/tOscS54=;
 b=kUdpqfjkBAAzbDQlcZiiGcpXo63H4J3J9+CzG2+Xga9Htp8ts7ArC9Y2EWbyVIS/qoB79IfgnGIjx5a6i4+tmEiazA2Fu6pJBAzOnUlSa0u1Kh+Q//uaCcyEP4ls0FzPtcTj0ueU9TmeqdlDwub7dKj0la+hnE9M1h5Ak/JedTvr9gn3+OlAlBbYoN2H+zfe9cy94i1N8ly6wn/50oJhuaodMzAoqqsDasPpKPmlo+jDM25MPDmIfQJj0AzqUXYWyp3uE1bB4g590sct6itCmwvzPWxI8Bg2EET6RcFx1UsO3t2+JXlNMUEgIXGjh3QVW3C3jRnly/oP3k3zjZ8QXQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=nvidia.com;
Date: Thu, 28 Aug 2025 16:18:20 -0300
From: Jason Gunthorpe <jgg@nvidia.com>
To: Keith Busch <kbusch@kernel.org>
Cc: Leon Romanovsky <leon@kernel.org>,
	Marek Szyprowski <m.szyprowski@samsung.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-mm@kvack.org, linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org, linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 15/16] block-dma: properly take MMIO path
Message-ID: <20250828191820.GH7333@nvidia.com>
References: <cover.1755624249.git.leon@kernel.org>
 <642dbeb7aa94257eaea71ec63c06e3f939270023.1755624249.git.leon@kernel.org>
 <aLBzeMNT3WOrjprC@kbusch-mbp>
 <20250828165427.GB10073@unreal>
 <aLCOqIaoaKUEOdeh@kbusch-mbp>
 <20250828184115.GE7333@nvidia.com>
 <aLCpqI-VQ7KeB6DL@kbusch-mbp>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <aLCpqI-VQ7KeB6DL@kbusch-mbp>
X-ClientProxiedBy: YT3PR01CA0075.CANPRD01.PROD.OUTLOOK.COM
 (2603:10b6:b01:84::15) To CH3PR12MB8659.namprd12.prod.outlook.com
 (2603:10b6:610:17c::13)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PR12MB8659:EE_|DM6PR12MB4483:EE_
X-MS-Office365-Filtering-Correlation-Id: 52013604-2e30-48de-7d56-08dde667a72b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?tkzamAbH5/chdWZm3ke+JvfeqA3hIcFqXbx+r0hKEizINFNE62neCHrkqAKo?=
 =?us-ascii?Q?GQw1qGDwSs3TS+26QCrA6PZpWQTzbU7LKQ83Uk3UlOHPCCU5xsrzJujNvddd?=
 =?us-ascii?Q?OehQwAUTsfK303zab5MCQrE09VBsGUPilNO3T1aJNCEGxeTULuJSZ++yxYJl?=
 =?us-ascii?Q?FlgvgSF4OFzaaJgeeBlol1BfkrZ6JutsedecnGm4fadF5v5qKcKkWiSbYaJZ?=
 =?us-ascii?Q?Q7KjhQ6iuhaaGW/HzzlIcBryVYIb0zhXbiWM4yz4pdVBAHmsOWn6fPztT2xI?=
 =?us-ascii?Q?CgRX34Dd+L7XXIfkzThN7GixgLCdVKm/6H9auCcYq/eKzShWVUTsPEydphF0?=
 =?us-ascii?Q?hEK3AkzSkOoGpwwvg0FLHnLPk0TD00/jZFYa3uDjrMy5OulejmplpaRvV4V6?=
 =?us-ascii?Q?1NbZOuS4LbRXHz00PF7LNPB4tvbLwjY3oMDtREd6DhcoP/FkIIGOzeePZqqG?=
 =?us-ascii?Q?WkkGYvEVecOnHOOSSoW3JNtWVbVy4dGBpVsFLSE2uKt1GcFUimdOxlgnSWCT?=
 =?us-ascii?Q?n1sEZlVQvw0hj9aWIErVnvFGFktiZpBDhCD2fu3frqGLedE3pDmml7cC+ReI?=
 =?us-ascii?Q?cMsV0hImSgwvs8E/AnS50UBlUAyolgVsq6eH5ZH1jJOUragJUXshbOpfXba5?=
 =?us-ascii?Q?cPQhE4fwX4mLT7FjuHd84RtUJREUcfXJWWyXODHoCb1YzVEB0tBhPKDwq7cp?=
 =?us-ascii?Q?bySTSPdaFAusmpRom51YWvAmn6Hp/6NrJxjapCZW1yJrpVK+BMVN8gxGE5Cc?=
 =?us-ascii?Q?DZyKydvUnj16k6RLTbxAd1leamkUiJZDWOxq05NnolwwWkxjmqjFEu8F9P/D?=
 =?us-ascii?Q?cvMezD4FVJXuY8ceXcbif3j0PMPr3UQ7Eb1Rww7DEshvjDp7lq0FVtGrmYyx?=
 =?us-ascii?Q?Sc0Zw4f3m+YzB/F+367AXTigA5Te45yigKc+JeHBCMBmoxnKTLDaBZNr1sqA?=
 =?us-ascii?Q?ZmXloRKJjUp3ynhRIVRkYhTwGxSnnJdciu9/ZTrcceii17N/AEDJHfIKbOLT?=
 =?us-ascii?Q?/Hb9jteFnXzwUZmvAVv+0RB9OI+llcTWo9WTcTQ0e1eVKPAEJHe6Q/XtWOkc?=
 =?us-ascii?Q?OeEcZpGJdgTn/n84ku29rld2xou+WiWBYXA/H3vsJ1OTobb8aiJwPwbPxGtD?=
 =?us-ascii?Q?yaAffWzTS9fNe4HpURb4JmcRYfadnPNLI1BKTRyB3MspRKVn5YNcrYJpsdzB?=
 =?us-ascii?Q?6RXZrdUiV1cE4+kPAYl/AZ5U4TGPKYv46MdftVKtqd7hjHbCc1iMk6Q3PZ7C?=
 =?us-ascii?Q?E16vp2SHCkKZhX0qaRcMz7wlPlC2FtYSSrXBmsyKzcKZJLsu35FPtenmIy79?=
 =?us-ascii?Q?sE/+9vfZTDd5IuPwUz2p8tCwsmScDWcRlJ9fgzWu3Z6D/chLmAqP8VgcK8nw?=
 =?us-ascii?Q?G0RW1qpUFifPjZx5cixCprrw5GfKMKhHdzQbEFARFE5AhBor5h9+bECVAmYX?=
 =?us-ascii?Q?o5aUVOB9LeQ=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR12MB8659.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?5ky7gd8aT6zgXZ3S9u2dQ9wfKPLFRzCut7RGugI01Pf4Eog4OrfHb36oULUM?=
 =?us-ascii?Q?lQvuNDmGms0FsQm7SQAbJXvnFC2FBGxUqSisCJWTxG1ACYv3V0xKN0dTF7SE?=
 =?us-ascii?Q?yZQUEEGvX5PoOXyQz2eNsEDzmPQObvhzReHlm0bxhkUjW56bHpTHH7EwuKBO?=
 =?us-ascii?Q?1/FD2o5bTIp/+kHebgvLj9elgC54ARBPQVtbai5ZtYiSiOOvGRzeSOfC+FtM?=
 =?us-ascii?Q?sQif8EXHeXuZlAXZ53QAbPOs8Xl11PauIjy0sbinkp+ArJVGXqXqQmd1zeCb?=
 =?us-ascii?Q?aXLppKpxeIoNIJR++6stE6QMJdsPMPgHyaQoSSUPKImjqz80YZi2wVie0n36?=
 =?us-ascii?Q?ZakI0sqTWwh5Rkjou+uZG6R2ADTmM48hr/zKeFcIl1Z7cYLpGMfccJWUKxXU?=
 =?us-ascii?Q?ZKQk44HnnxbvyW57MXYfjwxhrjSUmIRVldoky0tEKDSJfzTLziPOy3V5OyYi?=
 =?us-ascii?Q?sXOVBCWqmMb55IAzG5VxU90BGilWh4lthyWGVDyN4c+JJpn/DzUNkbIgOEt5?=
 =?us-ascii?Q?wtmLF6Mt+eoEZ5njkBtUAbfPU44Iwat3iOLVTJIVf/WS5gwHMC5EoOHv5H97?=
 =?us-ascii?Q?gUB9BJfHfcY6sDZw6mXn857jfuIABDcet8nLyDqr18sdyk764gI31BdGI4NV?=
 =?us-ascii?Q?oVBrIahCpllgByOuio4OUUlrjXx6LrGXn22qthTjwS2vnK36xgjlfurJKFoy?=
 =?us-ascii?Q?+yOdBxt5KD2hw8/SdbYNDXrsZkF/SynBCKk8fHB9K5nBDDP/evgule554rpj?=
 =?us-ascii?Q?3sMnqD5o78y7mOIP9EUfi4YsWNAhib6Pb9LoBFt5ChmCISM9//zhPKSil2Ux?=
 =?us-ascii?Q?smPk9BeuFpSkfasaiNlnuJ/5NkmprQafGR0xa44/6Q40vIKgDIzWsFKSDd6+?=
 =?us-ascii?Q?oO6J1DfbJz7fGz2bwXX0/GqrLCuVj9V0oowgXGDa5aCN0S3DFSGmc2EkQxfl?=
 =?us-ascii?Q?UllYeNA7AM+ttA0/FbHgkD7h9actDtyrlsBNKtBS1L/JfLRTUlNGBbj4XHVU?=
 =?us-ascii?Q?9u1l4DuMFLq3GivCBp1rZOd2os/O4iAvukZ422zqAuYLSQu8BSExUTOEvtiR?=
 =?us-ascii?Q?39g9mSg3Z535dtWBdo4nP32e4AHmvrQe2SLI/1Zz0FD2CbGwSGZuW0DtQM+A?=
 =?us-ascii?Q?frdJNMjWVCbo7AxfwIFSPhy5G3IOVygXoRBQ4V04M0wfBpTVJ4KqK3pgULAQ?=
 =?us-ascii?Q?0CL7r6hi5Fl0+yoNYyD1Ohwow+fi/3TGY8RJtNHC9AetvMra5ckKM6cRuotU?=
 =?us-ascii?Q?wLKR80vFplmKVrRTjgMQCVUSMQ5eTRZ1qaPH3k8Up+5Hx0c+oSmZCcN7tQOY?=
 =?us-ascii?Q?2/cN3Gj6XPil0H1Ik+KhKjq0rJ9o49M7L9fITJUQ31uMPDEn3Ymg5H5Z+YLl?=
 =?us-ascii?Q?PvRGSfqJwpB3FJmweuifLM1Ek+W5g4JGeM0xcWzd5hCEZHYIGbt4JuyRm2Rb?=
 =?us-ascii?Q?84vjpS3yma0Dv0io44RAe1eO3CHnVzinSkzulYRLZvA7PgTCrAG+JR18Tgtb?=
 =?us-ascii?Q?/xJj0RtMfBIYhpyZblffBKIRpMl7noh10yYTlcjabPOIoXVPPHSpPkM6n+R4?=
 =?us-ascii?Q?vIw0P2IDKKahN6lpEoM=3D?=
X-OriginatorOrg: Nvidia.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 52013604-2e30-48de-7d56-08dde667a72b
X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8659.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 19:18:21.9042
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: hHBOMGpozkeIevL9wLHwQhy2eRzFmZhbRTFbZweAUasp+caHeKpopNq0/07EWPc1
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4483

On Thu, Aug 28, 2025 at 01:10:32PM -0600, Keith Busch wrote:
> On Thu, Aug 28, 2025 at 03:41:15PM -0300, Jason Gunthorpe wrote:
> > On Thu, Aug 28, 2025 at 11:15:20AM -0600, Keith Busch wrote:
> > > 
> > > I don't think that was ever the case. Metadata is allocated
> > > independently of the data payload, usually by the kernel in
> > > bio_integrity_prep() just before dispatching the request. The bio may
> > > have a p2p data payload, but the integrity metadata is just a kmalloc
> > > buf in that path.
> > 
> > Then you should do two dma mapping operations today, that is how the
> > API was built. You shouldn't mix P2P and non P2P within a single
> > operation right now..
> 
> Data and metadata are mapped as separate operations. They're just
> different parts of one blk-mq request.

In that case the new bit leon proposes should only be used for the
unmap of the data pages and the metadata unmap should always be
unmapped as CPU?

Jason


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 20:55:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 20:55:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1099964.1453589 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urjdu-0002qx-MZ; Thu, 28 Aug 2025 20:54:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1099964.1453589; Thu, 28 Aug 2025 20:54: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 1urjdu-0002qq-Js; Thu, 28 Aug 2025 20:54:46 +0000
Received: by outflank-mailman (input) for mailman id 1099964;
 Thu, 28 Aug 2025 20:54:45 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=e5LM=3I=kernel.org=kbusch@srs-se1.protection.inumbo.net>)
 id 1urjdt-0002qk-I2
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 20:54:45 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 38b1279d-8451-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 22:54:43 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id CBC0C60139;
 Thu, 28 Aug 2025 20:54:41 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id DF632C4CEEB;
 Thu, 28 Aug 2025 20:54:39 +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>
X-Inumbo-ID: 38b1279d-8451-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1756414481;
	bh=G+6sPUUIFuKNkRdpDGh7oyzJRLExx6mM3Rr0TsrNav4=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=sCjN9TPmsmkv2CErZmw7eY4jhfo/PPQcCij3sdHoAaturic23UjSbV5/eD841QBrO
	 q5lqa5UXldETsQDMVxoOfW90mr401cd2aNU4qwzO6IO/5MHaurrX5r01OojjZShQEf
	 15Kqtld44h3aDOleBeJLOpcwjkQTTYAEhyrx8SC3goTrfnxyjVjHpigzIsE/EQK5r7
	 FqO3qkArHFFA2cKutZwYB5+zz+dbLtckQEfa3MaBKs+Sg/PNA0jXRALMJBXOlqNLWJ
	 BYklmKx3JSZ1NevsWbUBFS2Jp771ITiW6KubcU3EOHWT7p/JyrZiu2Mj04cW80QHY7
	 3fGPgcRndIPdQ==
Date: Thu, 28 Aug 2025 14:54:35 -0600
From: Keith Busch <kbusch@kernel.org>
To: Jason Gunthorpe <jgg@nvidia.com>
Cc: Leon Romanovsky <leon@kernel.org>,
	Marek Szyprowski <m.szyprowski@samsung.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-mm@kvack.org, linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org, linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 15/16] block-dma: properly take MMIO path
Message-ID: <aLDCC4rXcIKF8sRg@kbusch-mbp>
References: <cover.1755624249.git.leon@kernel.org>
 <642dbeb7aa94257eaea71ec63c06e3f939270023.1755624249.git.leon@kernel.org>
 <aLBzeMNT3WOrjprC@kbusch-mbp>
 <20250828165427.GB10073@unreal>
 <aLCOqIaoaKUEOdeh@kbusch-mbp>
 <20250828184115.GE7333@nvidia.com>
 <aLCpqI-VQ7KeB6DL@kbusch-mbp>
 <20250828191820.GH7333@nvidia.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250828191820.GH7333@nvidia.com>

On Thu, Aug 28, 2025 at 04:18:20PM -0300, Jason Gunthorpe wrote:
> On Thu, Aug 28, 2025 at 01:10:32PM -0600, Keith Busch wrote:
> > 
> > Data and metadata are mapped as separate operations. They're just
> > different parts of one blk-mq request.
> 
> In that case the new bit leon proposes should only be used for the
> unmap of the data pages and the metadata unmap should always be
> unmapped as CPU?

The common path uses host allocated memory to attach integrity metadata,
but that isn't the only path. A user can attach their own metadata with
nvme passthrough or the recent io_uring application metadata, and that
could have been allocated from anywhere.

In truth though, I hadn't tried p2p metadata before today, and it looks
like bio_integrity_map_user() is missing the P2P extraction flags to
make that work. Just added this patch below, now I can set p2p or host
memory independently for data and integrity payloads:

---
diff --git a/block/bio-integrity.c b/block/bio-integrity.c
index 6b077ca937f6b..cf45603e378d5 100644
--- a/block/bio-integrity.c
+++ b/block/bio-integrity.c
@@ -265,6 +265,7 @@ int bio_integrity_map_user(struct bio *bio, struct iov_iter *iter)
 	unsigned int align = blk_lim_dma_alignment_and_pad(&q->limits);
 	struct page *stack_pages[UIO_FASTIOV], **pages = stack_pages;
 	struct bio_vec stack_vec[UIO_FASTIOV], *bvec = stack_vec;
+	iov_iter_extraction_t extraction_flags = 0;
 	size_t offset, bytes = iter->count;
 	unsigned int nr_bvecs;
 	int ret, nr_vecs;
@@ -286,7 +287,12 @@ int bio_integrity_map_user(struct bio *bio, struct iov_iter *iter)
 	}
 
 	copy = !iov_iter_is_aligned(iter, align, align);
-	ret = iov_iter_extract_pages(iter, &pages, bytes, nr_vecs, 0, &offset);
+
+	if (blk_queue_pci_p2pdma(q))
+		extraction_flags |= ITER_ALLOW_P2PDMA;
+
+	ret = iov_iter_extract_pages(iter, &pages, bytes, nr_vecs,
+					extraction_flags, &offset);
 	if (unlikely(ret < 0))
 		goto free_bvec;
 
--


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 21:31:59 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 21:31:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100001.1453598 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urkDo-0007qE-Cu; Thu, 28 Aug 2025 21:31:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100001.1453598; Thu, 28 Aug 2025 21:31: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 1urkDo-0007q7-A5; Thu, 28 Aug 2025 21:31:52 +0000
Received: by outflank-mailman (input) for mailman id 1100001;
 Thu, 28 Aug 2025 21:31:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YsNu=3I=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1urkDm-0007pW-JQ
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 21:31:50 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 674c9f2c-8456-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 23:31:49 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id B6F7960139;
 Thu, 28 Aug 2025 21:31:47 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id BBBF1C4CEEB;
 Thu, 28 Aug 2025 21:31:45 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 674c9f2c-8456-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1756416707;
	bh=HL/nKcZBZDDGgK8YyFpxLKAwLiv68V1rJ59jDqp6xYA=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=GJuU/CUu4GksJvjdMSSBtIiLsLUHpxntomqwaEJgWXhW4C6VYlYCSEbRWttTN/RD0
	 JM7f6t7i1CLipMEfuC/+KidYjMiwcLCIr0z9ONJ659Bt4VqLKNuPv/uJUy0TvI7RlL
	 3N0niZhEfOoQ3iQDTgZJAS4bz748mMXW8D+ji9NA1V4VR5AJVO9JDl4F/icnUJGqd3
	 8AeEiuvzdEtfR4H5EpQYEto1j7vs+qSfHdCHoU2uH48WgCadmilP5lPVeiBXwVCPUy
	 1wjxg4zOlV2bAIORBmDDixJZwZnBNA/F+OLOF97+TWGgBAZpljctWdafVFRQCXXbqU
	 il5Ea2TGBeF5w==
Date: Thu, 28 Aug 2025 14:31:42 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Jan Beulich <jbeulich@suse.com>, Juergen Gross <jgross@suse.com>, 
    Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Grygorii Strashko <grygorii_strashko@epam.com>
Subject: Re: [PATCH v6 1/4] xen/arm: add generic SCI subsystem
In-Reply-To: <ffe5a45efd34d92c9f2c7307ecd0e9efc5b0d57c.1756399156.git.oleksii_moisieiev@epam.com>
Message-ID: <alpine.DEB.2.22.394.2508281431180.8757@ubuntu-linux-20-04-desktop>
References: <cover.1756399156.git.oleksii_moisieiev@epam.com> <ffe5a45efd34d92c9f2c7307ecd0e9efc5b0d57c.1756399156.git.oleksii_moisieiev@epam.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 28 Aug 2025, Oleksii Moisieiev wrote:
> This patch adds the basic framework for ARM SCI mediator. SCI is System
> Control Interface, which is designed to redirect requests from the Domains
> to ARM specific Firmware (for example SCMI). This will allow the devices,
> passed-through to the different Domains, to access to the System resources
> (such as clocks/resets etc) by sending requests to the firmware.
> 
> ARM SCI subsystem allows to implement different SCI drivers to handle
> specific ARM firmware interfaces (like ARM SCMI) and mediate requests
> -between the Domains and the Firmware. Also it allows SCI drivers to perform
> proper action during Domain creation/destruction which is vital for
> handling use cases like Domain reboot.
> 
> This patch introduces new DEVICE_FIRMWARE device subclass for probing SCI
> drivers basing on device tree, SCI drivers register itself with
> DT_DEVICE_START/END macro. On init - the SCI drivers should register its
> SCI ops with sci_register(). Only one SCI driver can be supported.
> 
> At run-time, the following SCI API calls are introduced:
> 
> - sci_domain_sanitise_config() called from arch_sanitise_domain_config()
> - sci_domain_init() called from arch_domain_create()
> - sci_relinquish_resources() called from domain_relinquish_resources()
> - sci_domain_destroy() called from arch_domain_destroy()
> - sci_handle_call() called from vsmccc_handle_call()
> - sci_dt_handle_node()
> - sci_dt_finalize() called from handle_node() (Dom0 DT)
> 
> Signed-off-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

I just want to say that R-b from me is OK


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 21:33:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 21:33:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100012.1453609 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urkFL-0008Li-MP; Thu, 28 Aug 2025 21:33:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100012.1453609; Thu, 28 Aug 2025 21: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 1urkFL-0008Lb-Jd; Thu, 28 Aug 2025 21:33:27 +0000
Received: by outflank-mailman (input) for mailman id 1100012;
 Thu, 28 Aug 2025 21:33:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YsNu=3I=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1urkFK-0008LD-LU
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 21:33:26 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a00f812c-8456-11f0-8dd7-1b34d833f44b;
 Thu, 28 Aug 2025 23:33:24 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id C9D7F42CBF;
 Thu, 28 Aug 2025 21:33:22 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 057E2C4CEEB;
 Thu, 28 Aug 2025 21:33:20 +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>
X-Inumbo-ID: a00f812c-8456-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1756416802;
	bh=wlrz4W9BDDtt5hU+pNgKNx4LHcRRYMmZY79WVrCjd3o=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=cR/3KZ4dtfQpUOVdJqW8OJKU35Hvt/EC547WbG9VNwonTavJLPeR8HnHZQSz02f/a
	 T/BVIkEg+SHQFFVqjbyyl+RTCqRmqTx7FQZhIc6fyTotVnAYrKk+3fivHZVsa1SdMm
	 gjvjkkt0xM6MHw+crJ/8jOQOXVewJEwI6XK/m/bk5jHYC0ks3cfCFalHUCovehNuKH
	 5Bjj61y2ACPqzRZshT9eJtzFKSQlIaMJ8MOk0Wx+P6w28dpG/3SdkLpGTxVT/tOlFc
	 96u3Iwj0Ghn4fVabkAO+hmXL9ynk2vVLOZmDc5KCjg22kYgg/RY9iFtB5tCcxHR/2c
	 EHPh5bvEzvWNA==
Date: Thu, 28 Aug 2025 14:33:19 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Jan Beulich <jbeulich@suse.com>, Juergen Gross <jgross@suse.com>, 
    Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Grygorii Strashko <grygorii_strashko@epam.com>
Subject: Re: [PATCH v6 2/4] xen/arm: scmi-smc: update to be used under sci
 subsystem
In-Reply-To: <8e7e9dcdd643b6681a6127d56b68536b987141af.1756399156.git.oleksii_moisieiev@epam.com>
Message-ID: <alpine.DEB.2.22.394.2508281433020.8757@ubuntu-linux-20-04-desktop>
References: <cover.1756399156.git.oleksii_moisieiev@epam.com> <8e7e9dcdd643b6681a6127d56b68536b987141af.1756399156.git.oleksii_moisieiev@epam.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 28 Aug 2025, Oleksii Moisieiev wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> The introduced SCI (System Control Interface) subsystem provides unified
> interface to integrate in Xen SCI drivers which adds support for ARM
> firmware (EL3, SCP) based software interfaces (like SCMI) that are used in
> system management. The SCI subsystem allows to add drivers for different FW
> interfaces or have different drivers for the same FW interface (for example,
> SCMI with different transports).
> 
> This patch updates SCMI over SMC calls handling layer, introduced by
> commit 3e322bef8bc0 ("xen/arm: firmware: Add SCMI over SMC calls handling
> layer"), to be SCI driver:
> - convert to DT device;
> - convert to SCI Xen interface.
> 
> There are no functional changes in general, the driver is just adopted
> to the SCI interface.
> 
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

Also I wanted to write down that the R-b is OK from me


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 21:34:04 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 21:34:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100023.1453619 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urkFw-0000ST-1d; Thu, 28 Aug 2025 21:34:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100023.1453619; Thu, 28 Aug 2025 21:34: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 1urkFv-0000SM-Uv; Thu, 28 Aug 2025 21:34:03 +0000
Received: by outflank-mailman (input) for mailman id 1100023;
 Thu, 28 Aug 2025 21:34:02 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Rla7=3I=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1urkFu-0000K4-9H
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 21:34:02 +0000
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on2062c.outbound.protection.outlook.com
 [2a01:111:f403:2418::62c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b54d9abb-8456-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 23:34:00 +0200 (CEST)
Received: from MW2PR2101CA0002.namprd21.prod.outlook.com (2603:10b6:302:1::15)
 by BY5PR12MB4212.namprd12.prod.outlook.com (2603:10b6:a03:202::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.19; Thu, 28 Aug
 2025 21:33:55 +0000
Received: from SJ1PEPF0000231B.namprd03.prod.outlook.com
 (2603:10b6:302:1:cafe::cb) by MW2PR2101CA0002.outlook.office365.com
 (2603:10b6:302:1::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9094.8 via Frontend Transport; Thu,
 28 Aug 2025 21:33:54 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 SJ1PEPF0000231B.mail.protection.outlook.com (10.167.242.232) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Thu, 28 Aug 2025 21:33:54 +0000
Received: from SATLEXMB06.amd.com (10.181.40.147) 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; Thu, 28 Aug
 2025 16:33:51 -0500
Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB06.amd.com
 (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Thu, 28 Aug
 2025 16:33:50 -0500
Received: from [172.20.7.230] (10.180.168.240) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Thu, 28 Aug 2025 16:33: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>
X-Inumbo-ID: b54d9abb-8456-11f0-8adc-4578a1afcccb
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=kfho165DUtDBrYB/7VGsuFZlNu37PuerTSPoHIbPXTHwRWB0peMvlC+HZxdSLG3Pj0/1v2mLIaPJEPK+yxf3W2OhGvvq2Vhe+sqJJLJiKNAl8pyAZSTDHF+tR6AK5FJZuI/uIhEJYtY6OAIcw8Z5EK5xIXZqomrEHBfINHMe5wjJUiTU55tAr5cTYe4d4X1OB7q5Eyj3mC0ybB+JqJ2feNOMo+wlO6BpXO5FgnuT5N946kzWYOIO1XBrihn+XLYXiRiHhZ/sOpsdMRK7MKIJlFBsjKZSSMJCnWfNGqFUglQQAqeuWv8eNZ1DpD/h8gUCz1m3u/appf+8HyAxYUD1Mw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fCcMokIzdxsRGZTu7FFcxph5XHXNPNBe/LWzJ4Nhfa0=;
 b=LWepDgYVO1ACDa18hM8XT0mTHT4FqMyH5BtIrXQXUCbrDHSZ+xjmrKWkyuMQCSIbgHpSNMrwulk29cLqBayjOPE0hxBcWHhm2SF92hAC4jdFEXXb3Yv9Pk3CFM1k0aohlVpxkHWmtkT1FqhLISgzcIR7hiKt3ci+e7XK7+B2DI1Rw6sXAkVKC7w19mXOu3Hersl0A+nw6TElTcJXtkz6rP6ucMkGPdHh2jKIwIq7qqDS9qjmr3KvXKWHWV8uoTUEArq9LNBiRz/5F7ADRiIsfQ5WOr9sy2nTLNGFbpnyghG8XsLpLmZBhZB4QfFhxeQmWi7kkOG3JAUY7+AfFLqJCQ==
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=fCcMokIzdxsRGZTu7FFcxph5XHXNPNBe/LWzJ4Nhfa0=;
 b=dPuTZuTKclNQqk5Z8lgHw7iucKAJO+G5fbsPcxj3rCc+ifcaBA/P0sCSKzVYtX6ek0JA6WJxKNRXJ2tA9uJMYOhe8RHiBRC3CJ+9ok7lC6M14G0Jkp6S73CRcJk/JkbHy8ftcV9nksC8nF3OvKg0ULwZYopEkajdoTMYOaw9NuQ=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <4d06bd13-6f75-4dcf-aa4d-c225139c2575@amd.com>
Date: Thu, 28 Aug 2025 17:33:50 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86: introduce "hot" and "cold" page copying functions
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: <1b9e5d46-20a8-4b5f-b938-e28a0429c770@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <1b9e5d46-20a8-4b5f-b938-e28a0429c770@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF0000231B:EE_|BY5PR12MB4212:EE_
X-MS-Office365-Filtering-Correlation-Id: b5e560ad-5676-4c5f-ff54-08dde67a96b2
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|1800799024|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?WnVSMkYyMlhYWHhQY3FCQ0Q4Mm9aSHIzMFdHRmZWRE5mRjhZc3pjM0xoTUpC?=
 =?utf-8?B?VW1Qd1VaVldBRlFSejNTN0RzRUtkc0pmREFLaWQrODhkeWZNQmhNd2RCbi9F?=
 =?utf-8?B?RndhTXdTTE4yTGp0emxiR2VOMmhiM3hYL21DUW5DWmE2eS9BeUt1bFhnaHlX?=
 =?utf-8?B?VnhNSi9wbXhCM01ZcHE2MS90OWUyNHJQSXh1YUNqb2VPU3FjQjBtaFJvdlVm?=
 =?utf-8?B?bEVwTUEyUFRxV1J1WjF5QkFrY25lN01MMjFoU083Nk9UNnBQeFpZeFhGNTND?=
 =?utf-8?B?eWl0WExkQlYvSHdmb1VucWh0VUJua09wRkRKZTJPd2dqSC9BRzRMOXJheDA3?=
 =?utf-8?B?T3Q5ZXNvN0s5YXBiR1M1UitTeGdldXZ5Wi9mcndpN09MdE5mcktyV1p6dG4x?=
 =?utf-8?B?RFRvZ1kvRWRKYUNmMHRiOUl3Zk1nQ3RMMWdiVmxkRU1QYXJ1dU9EUGRwOXk4?=
 =?utf-8?B?SWNyMlNnR3Eyclg4eCttbm55OWFSTUtLcFhrV1MwV2RYdy85dlZUT2pJOTN2?=
 =?utf-8?B?V05QVXBQRW9qZW0rcDNuTXludGVzMitXS29rWDNDaEpXeEhUWjExblZITTMy?=
 =?utf-8?B?aDNIZ2orcXV6M1p4TmZKNi9ZdEx3dFpMM1dzMkFMdTBlelMydS80T1ErSVMr?=
 =?utf-8?B?bGMwWm9UNi93cVA5WHJodDhnWExFNEppMFVjbGRaNC9STDlqc00zck95MCs0?=
 =?utf-8?B?Y2VjeFdnRDI3cEtzbTIyakNHQUhMbHZITUY3V0F5dWhvT3MyS0U0UllFZUVU?=
 =?utf-8?B?WnUvSjRFRUV3R2IzejBsSVpsSlVKeTVNWm8wOStjWGgwRXRXNjluZk15bTg2?=
 =?utf-8?B?QXRldHUxeU8wbEtvMVJvbTNuMWJqSmlLck1BSUpoQ2pndXBlMHBuNGFMdE5N?=
 =?utf-8?B?Um1ocWJZRTR4OVUxUHN4a3B4TGVMZWNLL2N3RXY2YnBqNmhvZlJ5TklaZFha?=
 =?utf-8?B?K0FPb3pwSncrVzNxbkgvMGFEM3BkRW9ZVjBnN1YzVFVrUDdub0pINnN3eEtI?=
 =?utf-8?B?TTFDMmRnTVl1Y244WFpuRkVBb3dtS2pkS1A3SjhSWDh2MHVJQlU4SDF4UjRB?=
 =?utf-8?B?N01BY0paWnpabC9sdUhvWTdRZGk5R2cyV2dKaTNVK1RiNG5hMC8xaUU1S1ZX?=
 =?utf-8?B?elNodlk3bTBRZWFZS1FtY0xlWVVZOXJ6bmtjRUdMZ0VYWm5USmcxckhWdDg0?=
 =?utf-8?B?Z3A4L2NUZUtCQkVEcXVMWmZya0JOQlRiOGtXVG1COEJPV3lkUEdGRmdvUnVJ?=
 =?utf-8?B?Rm9wSndvSklLNEZwbDN4ZlZPRnZGci9DNTg2MHRXTFMwZ3gxMWo4RG9pMWF6?=
 =?utf-8?B?Sk1zejJkL1M2Um1naitIOVkvR3BEdWZIU1drZTVXN2JIV0c0RktkRXA4MVJK?=
 =?utf-8?B?NFljMVB3aDhFUUdMZWtDNGZ6R1pEakIvSlIzTGR6ejc1bTRFUzJMVVUzVmJI?=
 =?utf-8?B?RTlqK0hVRjUwUy95ZzNIbG9lR2NGdTFxaUtPZHpsY29aUE04bjhYeFh4Yk1X?=
 =?utf-8?B?UURDVG1zTGtRYWRxcWNWNjVLYzVGRnhKenNFR2NWK0syRG9nQWZNWmgvaFk4?=
 =?utf-8?B?QjZZNmN6dDNveE01Y0tJUTl1c1g5M3RrM2J2Z3FQTVMyOHRaUlhlWDVJd1VH?=
 =?utf-8?B?MXMrYWVtSUxxVGZPZnZBS0ZJL3BIUU5zd0ZLQTRXM3pPeDYxUUFOcnVFeVVY?=
 =?utf-8?B?SEIzR3JBKzdYMlFqYnNFMFdOZWIrQ1JYM2VPY1d4M2FoN2dlR2VWR2VLS1dy?=
 =?utf-8?B?aTNvZEFuTGNwYzRoNlNvclRvZldNSmtUT0ZKZzhjd0hDbUJyYUxYRC80clpC?=
 =?utf-8?B?MVZndlpXYmZBSE8rOGNSM3ZST1ZTcnVGRlRESTlodzNyekZDRGd5cUczWk0w?=
 =?utf-8?B?WDVvS0htUTEvQm1KNnFWdEFPa1EzVGRkYTFRaVo5cjZUTXFwcGpsRTM2WjZ0?=
 =?utf-8?B?SDdCa3d2bzBNQXBvZHk5RW9aRlk2aE1zWTF3ckVZVWo1ZWVTNXp5Qml4MzJ5?=
 =?utf-8?B?M2ZJNGFaQjVHdTJkSlg2TG9qc2pGbmNXYXByUUFsUEVFM3d3UXVGSnMwK3Rq?=
 =?utf-8?Q?NB+FAR?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(1800799024)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 21:33:54.3826
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b5e560ad-5676-4c5f-ff54-08dde67a96b2
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF0000231B.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4212

On 2025-08-28 05:17, Jan Beulich wrote:
> The present copy_page_sse2() is useful in case the destination page isn't
> going to get touched again soon, or if we want to limit churn on the
> caches. Just rename it, to fit the corresponding {clear,scrub}_page_*()
> naming scheme.
> 
> For cases where latency is the most important aspect, or when it is
> expected that sufficiently large parts of a destination page will get
> accessed again soon after the copying, introduce a "hot" alternative.
> Again use alternatives patching to select between a "legacy" and an ERMS
> variant.
> 
> Don't switch any callers just yet - this will be the subject of subsequent
> changes.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

> ---
> Of course both pages can be independently hot/cold, and hence more flavors
> may be necessary here.
> 
> To avoid the NOP padding (also in clear_page_hot()) we could use a double
> REP prefix in the replacement code (accounting for the REX one in the code
> being replaced).

Did my tool chain do it automatically?

0000000000000000 <.altinstr_replacement>:
    0:	b9 00 10 00 00       	mov    $0x1000,%ecx
    5:	f3 f3 a4             	repz rep movsb %ds:(%rsi),%es:(%rdi)

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 21:34:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 21:34:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100033.1453629 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urkGV-0000xu-8p; Thu, 28 Aug 2025 21:34:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100033.1453629; Thu, 28 Aug 2025 21:34:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urkGV-0000xl-6B; Thu, 28 Aug 2025 21:34:39 +0000
Received: by outflank-mailman (input) for mailman id 1100033;
 Thu, 28 Aug 2025 21:34:38 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YsNu=3I=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1urkGU-0000K4-NE
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 21:34:38 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cb7765e8-8456-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 23:34:37 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 2CA1F43C60;
 Thu, 28 Aug 2025 21:34:36 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6FDD7C4CEEB;
 Thu, 28 Aug 2025 21:34:34 +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>
X-Inumbo-ID: cb7765e8-8456-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1756416876;
	bh=bJwvZMwCoA0Qx/uzqmYwY09BFeVZptsnxLvAxkTznpE=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=Lhhym9dZPurqRN5QM4HaMh/JgpokKYubYtNDsm/BFti4vvVizO4+E2dAYVrNwpv4T
	 SqlLhB3BfUNqrnS6JvvHHZTykd+8E3EOnUMgozTQ+vIUXQpYYjz+eSSuXAxkBKzYSn
	 Kvi9hz/aqSAoekjmHAimWtyU9xHwi3TxOSahtb7GoFf5T5xY1Vwm+pLnEkXTXsMy73
	 o0IPWCDKuz0Rx1NCoCYYjL3rFA+jAS+rwuEvO5m5AYAKSFvCVT/YJFSkoaCpt3q8pA
	 KLPc3QCxtfGi2Edv6Qb2+M/Ik26vjo76CptUn2+Q4WqqiEAgiGzQuRYSFEkcxS8G/l
	 P5411dRomKeqQ==
Date: Thu, 28 Aug 2025 14:34:32 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Jan Beulich <jbeulich@suse.com>, Juergen Gross <jgross@suse.com>, 
    Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Grygorii Strashko <grygorii_strashko@epam.com>
Subject: Re: [PATCH v6 3/4] xen/arm: scmi-smc: passthrough SCMI SMC to domain,
 single agent
In-Reply-To: <02b79eaa0a611fb43a2146a5f41aec435d3db6c7.1756399156.git.oleksii_moisieiev@epam.com>
Message-ID: <alpine.DEB.2.22.394.2508281434210.8757@ubuntu-linux-20-04-desktop>
References: <cover.1756399156.git.oleksii_moisieiev@epam.com> <02b79eaa0a611fb43a2146a5f41aec435d3db6c7.1756399156.git.oleksii_moisieiev@epam.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 28 Aug 2025, Oleksii Moisieiev wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> The commit 3e322bef8bc0 ("xen/arm: firmware: Add SCMI over SMC calls
> handling layer") introduces simple driver which forwards SCMI over SMC
> calls from hwdom/dom0 to EL3 firmware (TF-A) with a single SCMI OSPM agent
> support. While it is working gracefully for hwdom/dom0 use case it doesn't
> cover "thin Dom0 with guest domain, which serves as Driver domain"
> use-case. In this case HW need to be enable in Driver domain and dom0 is
> performing only control functions.
> 
> The EL3 SCMI firmware (TF-A) with a single SCMI OSPM agent support is
> pretty generic case for the default vendors SDK and new platforms.
> 
> This patch enables passthrough of SCMI SMC single agent interface to the
> one guest domain serving as Driver domain.
> 
> Configure Dom0 to enable SCMI passthrough:
> 
>  - dom0: add scmi-smc-passthrough to the Xen Command Line
> 
> Enabled SCMI passthrough for guest using toolstack in the following way:
> 
>  - domD: xl.cfg add "arm_sci" option as below
> 
>    arm_sci = "type=scmi_smc"
> 
>  - domD: xl.cfg enable access to the "arm,scmi-shmem"
> 
> iomem = [
>     "47ff0,1@22001",
> ]
> 
>  - domD: add SCMI nodes to the Driver domain partial device tree as in the
>  below example:
> 
> passthrough {
>    scmi_shm_0: sram@22001000 {
>        compatible = "arm,scmi-shmem";
>        reg = <0x0 0x22001000 0x0 0x1000>;
>    };
> 
>    firmware {
>         compatible = "simple-bus";
>             scmi: scmi {
>                 compatible = "arm,scmi-smc";
>                 shmem = <&scmi_shm_0>;
>                 ...
>             }
>     }
> }
> 
> dom0less case configuration:
> 
> - add "xen,sci_type" property for required DomU ("xen,domain") node
> 
>    xen,sci_type="scmi_smc"
> 
> - add scmi nodes to the Driver domain partial device tree the same way
> as above and enable access to the "arm,scmi-shmem" according to
> dom0less documentation. For example:
> 
>   scmi_shm_0: sram@22001000 {
>         compatible = "arm,scmi-shmem";
>         reg = <0x00 0x22001000 0x00 0x1000>;
> ->        xen,reg = <0x0 0x47ff0000 0x0 0x1000 0x0 0x22001000>;
> ->        xen,force-assign-without-iommu;
>   };
> 
> The SCMI SMC single agent interface can be enabled for one and only one
> domain. In general, the configuration is similar to any other HW
> passthrough, except explicitly enabling SCMI with "arm_sci" xl.cfg option.
> 
> Note that "arm,scmi-smc" and "arm,scmi-shmem" nodes will be removed from
> dom0/hwdom DT in case of
> 
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> Signed-off-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
> Acked-by: Anthony PERARD <anthony.perard@vates.tech> # tools

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


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 21:37:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 21:37:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100041.1453639 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urkIw-0001Yk-KN; Thu, 28 Aug 2025 21:37:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100041.1453639; Thu, 28 Aug 2025 21:37: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 1urkIw-0001Yd-HP; Thu, 28 Aug 2025 21:37:10 +0000
Received: by outflank-mailman (input) for mailman id 1100041;
 Thu, 28 Aug 2025 21:37:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Mimg=3I=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1urkIv-0001YX-GJ
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 21:37:09 +0000
Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com
 [2a00:1450:4864:20::12a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 25fa1c34-8457-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 23:37:08 +0200 (CEST)
Received: by mail-lf1-x12a.google.com with SMTP id
 2adb3069b0e04-55f42dcbf4aso1450645e87.1
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 14:37: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>
X-Inumbo-ID: 25fa1c34-8457-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756417028; x=1757021828; 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=YPPzdITbHwXFm+n1YY5New0n5HM3nsOlC7W51sLt3q4=;
        b=mBJXDLTlduWSIM9nroadRoFnuQDQ0+X5Bf8hSZ238Q2CYhEsa7pDcnTW4xIW+ctSZc
         Fi9JE8jlPRG2MTD5Wfpmq8sRV91hq/HstP7mKOteRTMlnxfXmsQm8vevqi8wMxdGDGyf
         Gh+Qimk/otjV8gVTZagdTx89sR751a8NvyKMXcstgl6xnMAYUDVaSwBc4U8nQJNQRmgS
         t33hIyr6dwDCHAk38PGSBVXMRaGmsGXnNTT5Y0lJ6NaOrssqYt3XhS8ELjOsQEVlpYNp
         RkMCqQp14Oe3ZFCC5GpRqHw9YjDwRYEt4IzB1/uxPicD7OgJQQN5R7XbgydTjMwHZzQW
         dr3Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756417028; x=1757021828;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=YPPzdITbHwXFm+n1YY5New0n5HM3nsOlC7W51sLt3q4=;
        b=IMQEFMy2z0YqEwbRS0fa07QchKkEYkltn96KuMqoLWshdZFg0NtdS/Fgnv1qesvLFt
         uOO3z68POxRcf+fTkmU6d66gn4+K3oNBMH95ByoXulFAhl/S7lnbZwX6ORhRlmSpmlF0
         TvssK7QHR0FEzrj88Khdt0mahKBu69KcZ0z/lOwY1ZA6hz/XopPZl2QAhJT28ysjVnk/
         HONz9ZoAVx271oobhJzAoufYxv7IErq1iq9PUpnFoZEVyG+5ZFMtE1XdFUWKT/kEgWuc
         tQ5gV2uknQwJkHWOv9gRYyXrLy7LQGuEFEM/tE3v4YKoV2aWc8GwwsCMFVQ7kQ1bXkk3
         iqZA==
X-Gm-Message-State: AOJu0Yy2YvEu5x2nxumV6LhBmVGYny0pdHijQkoSzg8HN3HiD1CYco1y
	Dq6e/iHP4nVu8M/+qZ1m7mc3qPsS9idCXySHBtK+Q05+gmWaOfJND7pu7hPqZ8F/KOSEnWvq3uW
	vgn1u2m2pJDAGvsJjbLH7fvSS9V/B5zeKVXWe
X-Gm-Gg: ASbGncvqyXJh3EJmSN1iGY8WQEILMnrcmCVIhfjnw/b7mLD4OMX1V6KoN/4ltuV042K
	fcmJF/XIwgodL2BkJTwrb/GVsgk8/IBpsSbRq+1zIwpxff6ZV3/gd6Ts5td2SZYcSiJkMU0GT5c
	Q1EBzNFbIJSxVknBCSFHmQA/ZM3oaT3otN/1tatWllCLUSbhRb8lGwNtpQOIqkGX2wI+yIaj8+Y
	7jdce9Ia2MnApeh
X-Google-Smtp-Source: AGHT+IFSk+3tLJwawpjU9WwEHuda/pfg+ijrtKkaL3/VApjzb0KSFryJY4Dc5LhmgjB+i+VcLPt6B2wkpfCbHbwaP3U=
X-Received: by 2002:a05:6512:3b85:b0:55f:6881:980f with SMTP id
 2adb3069b0e04-55f688199e2mr26707e87.11.1756417027580; Thu, 28 Aug 2025
 14:37:07 -0700 (PDT)
MIME-Version: 1.0
References: <e57133182b9bcecb519911c8b3f0d871955d6fef.1754540991.git.mykola_kvach@epam.com>
 <60c0b456-bfda-430d-a1e9-f64c9a49ac54@gmail.com>
In-Reply-To: <60c0b456-bfda-430d-a1e9-f64c9a49ac54@gmail.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Fri, 29 Aug 2025 00:36:55 +0300
X-Gm-Features: Ac12FXwMbO6W9yKPuh23ZJyWMSBbSzkO1Q88BDPdPPU64O7HKIA8_WdNL8dPVyM
Message-ID: <CAGeoDV9ov_SfbOFVGZ25a=-g9tjus6Wg2-8cXQaJDWk3_QOg1Q@mail.gmail.com>
Subject: Re: [PATCH v5] xen/char: implement suspend/resume calls for SCIF driver
To: Oleksandr Tyshchenko <olekstysh@gmail.com>
Cc: xen-devel@lists.xenproject.org, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, 
	Michal Orzel <michal.orzel@amd.com>, 
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>, Mykola Kvach <mykola_kvach@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Oleksandr,

Thank you for your review.

On Tue, Aug 26, 2025 at 6:51=E2=80=AFPM Oleksandr Tyshchenko
<olekstysh@gmail.com> wrote:
>
>
>
> On 07.08.25 08:16, Mykola Kvach wrote:
>
>
> Hello Mykola,
>
> In general patch looks good to me, just one question below ...
>
> > From: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
> >
> > Implement suspend and resume callbacks for the SCIF UART driver,
> > enabled when CONFIG_SYSTEM_SUSPEND is set. This allows proper
> > handling of UART state across system suspend/resume cycles.
> >
> > Tested on Renesas R-Car H3 Starter Kit.
> >
> > Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
> > Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.co=
m>
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> > ---
> > In patch v5, there are no changes at all;
> > it was done just to trigger a review.
>
> I think, you could ping on V4.
>
>
> >
> > In patch v4, enhance commit message, no functional changes
> >
> > In patch v2, I just added a CONFIG_SYSTEM_SUSPEND check around
> > the suspend/resume functions in the SCIF driver.
> > ---
> >   xen/drivers/char/scif-uart.c | 40 ++++++++++++++++++++++++++++++++++-=
-
> >   1 file changed, 38 insertions(+), 2 deletions(-)
> >
> > diff --git a/xen/drivers/char/scif-uart.c b/xen/drivers/char/scif-uart.=
c
> > index 757793ca45..888821a3b8 100644
> > --- a/xen/drivers/char/scif-uart.c
> > +++ b/xen/drivers/char/scif-uart.c
> > @@ -139,9 +139,8 @@ static void scif_uart_interrupt(int irq, void *data=
)
> >       }
> >   }
> >
> > -static void __init scif_uart_init_preirq(struct serial_port *port)
> > +static void scif_uart_disable(struct scif_uart *uart)
> >   {
> > -    struct scif_uart *uart =3D port->uart;
> >       const struct port_params *params =3D uart->params;
> >
> >       /*
> > @@ -155,6 +154,14 @@ static void __init scif_uart_init_preirq(struct se=
rial_port *port)
> >
> >       /* Reset TX/RX FIFOs */
> >       scif_writew(uart, SCIF_SCFCR, SCFCR_RFRST | SCFCR_TFRST);
> > +}
> > +
> > +static void scif_uart_init_preirq(struct serial_port *port)
> > +{
> > +    struct scif_uart *uart =3D port->uart;
> > +    const struct port_params *params =3D uart->params;
> > +
> > +    scif_uart_disable(uart);
> >
> >       /* Clear all errors and flags */
> >       scif_readw(uart, params->status_reg);
> > @@ -271,6 +278,31 @@ static void scif_uart_stop_tx(struct serial_port *=
port)
> >       scif_writew(uart, SCIF_SCSCR, scif_readw(uart, SCIF_SCSCR) & ~SCS=
CR_TIE);
> >   }
> >
> > +#ifdef CONFIG_SYSTEM_SUSPEND
> > +
> > +static void scif_uart_suspend(struct serial_port *port)
> > +{
> > +    struct scif_uart *uart =3D port->uart;
> > +
> > +    scif_uart_stop_tx(port);
>
>   ... I wonder, whether the call above (that disables Transmit
> interrupt) is really needed as the call below disables all interrupts
> anyway?

I have checked the relevant documentation and did not find any requirement
to clear TIE before disabling the rest of the SCSCR bits, according to the
R-Car Series, 3rd Generation User=E2=80=99s Manual: Hardware, Rev. 0.52.

However, based on how the serial subsystem works, I believe this call is
justified.

Disabling TX IRQs before fully stopping the serial prevents new data
from being added to the FIFO by the IRQ handler during suspend (see
serial_tx_interrupt). This ensures the FIFO is flushed (loop inside
scif_uart_disable) and no further transmissions occur.

If a flush handler were implemented for this driver, we could avoid
calling scif_uart_stop_tx and remove the loop inside scif_uart_disable,
as the flush handler would ensure the FIFO is empty after any invocation
of serial_tx_interrupt.

>
>
> > +    scif_uart_disable(uart);
> > +}
>
> [snip]

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 21:38:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 21:38:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100052.1453648 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urkKB-00024K-Sx; Thu, 28 Aug 2025 21:38:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100052.1453648; Thu, 28 Aug 2025 21:38: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 1urkKB-00024D-QL; Thu, 28 Aug 2025 21:38:27 +0000
Received: by outflank-mailman (input) for mailman id 1100052;
 Thu, 28 Aug 2025 21:38:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YsNu=3I=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1urkKA-00023m-G7
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 21:38:26 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 53701622-8457-11f0-8adc-4578a1afcccb;
 Thu, 28 Aug 2025 23:38:25 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 1A51460139;
 Thu, 28 Aug 2025 21:38:24 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2A85BC4CEEB;
 Thu, 28 Aug 2025 21:38:22 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 53701622-8457-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1756417103;
	bh=gBJ2MLLjjmA3mYJqv41fPeWVBTVwZKt8grizIURQfx0=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=T2x+L4qwBBWleTvo6UWpzTobz+uFJjna2BMEcReLxyNV1rhCdL7wCFGbQ7dRrT2Wb
	 I3LgSU/i+KMm+DRVsagnmAh2+UmdnYB14zngUNYUrpbHTdXNIWjNdrDA1A8KvvS2do
	 vGfXvgIHkgRwd2thoym38EyI5/Zonm9cZX2gGNBsxambecP4HdNXHIvWGEpXtCdaHj
	 r8cd3Ub9dkEKxK1pPEPktdTf44Oy43CPzURJEH3PqZuXAR5JssiF8ioNBp9TrJ603h
	 DUjELnTnAqkn4mTqJOEp5OtHtDju91D8H+bft4JrNsMLA2hrQUNNkO+wx76ww9U+RK
	 vmLTKQiDfOsPA==
Date: Thu, 28 Aug 2025 14:38:20 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Jan Beulich <jbeulich@suse.com>, Juergen Gross <jgross@suse.com>, 
    Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Grygorii Strashko <grygorii_strashko@epam.com>
Subject: Re: [PATCH v6 4/4] docs: arm: add docs for SCMI over SMC calls
 forwarding driver
In-Reply-To: <17e009a131e54ad68f0a182b1766d333cf1c63f8.1756399156.git.oleksii_moisieiev@epam.com>
Message-ID: <alpine.DEB.2.22.394.2508281436010.8757@ubuntu-linux-20-04-desktop>
References: <cover.1756399156.git.oleksii_moisieiev@epam.com> <17e009a131e54ad68f0a182b1766d333cf1c63f8.1756399156.git.oleksii_moisieiev@epam.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 28 Aug 2025, Oleksii Moisieiev wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> Add documentation section for Simple Arm SCMI over SMC calls forwarding
> driver (EL3).
> 
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> Signed-off-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com>

We typically wrap lines at 80. It can be done on commit.

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


> ---
> 
> Changes in v6:
> - add link to the scmi bindings used in the doc
> - remove mentions about HVC calls from doc
> - rename cmdline parameter to scmi-smc-passthrough
> 
> Changes in v5:
> - rename dom0_scmi_smc_passthrough in documentation
> 
>  .../arm/firmware/arm-scmi.rst                 | 180 ++++++++++++++++++
>  docs/hypervisor-guide/arm/index.rst           |   9 +
>  docs/hypervisor-guide/index.rst               |   1 +
>  3 files changed, 190 insertions(+)
>  create mode 100644 docs/hypervisor-guide/arm/firmware/arm-scmi.rst
>  create mode 100644 docs/hypervisor-guide/arm/index.rst
> 
> diff --git a/docs/hypervisor-guide/arm/firmware/arm-scmi.rst b/docs/hypervisor-guide/arm/firmware/arm-scmi.rst
> new file mode 100644
> index 0000000000..4394c95431
> --- /dev/null
> +++ b/docs/hypervisor-guide/arm/firmware/arm-scmi.rst
> @@ -0,0 +1,180 @@
> +.. SPDX-License-Identifier: CC-BY-4.0
> +
> +ARM System Control and Management Interface (SCMI)
> +==================================================
> +
> +The System Control and Management Interface (SCMI) [1], which is a set of operating
> +system-independent software interfaces that are used in system management. SCMI currently
> +provides interfaces for:
> +
> +- Discovery and self-description of the interfaces it supports
> +- Power domain management
> +- Clock management
> +- Reset domain management
> +- Voltage domain management
> +- Sensor management
> +- Performance management
> +- Power capping and monitoring
> +- Pin control protocol.
> +
> +The SCMI compliant firmware could run:
> +
> +- as part of EL3 secure world software (like Trusted Firmware-A) with
> +  ARM SMC shared-memory transport;
> +- on dedicated System Control Processor (SCP) with HW mailbox shared-memory transport
> +
> +The major purpose of enabling SCMI support in Xen is to enable guest domains access to the SCMI
> +interfaces for performing management actions on passed-through devices (such as clocks/resets etc)
> +without accessing directly to the System control HW (like clock controllers) which in most cases
> +can't shared/split between domains. Or, at minimum, allow SCMI access for dom0/hwdom (or guest
> +domain serving as Driver domain).
> +
> +The below sections describe SCMI support options available for Xen.
> +
> +| [1] `Arm SCMI <https://developer.arm.com/documentation/den0056/latest/>`_
> +| [2] `System Control and Management Interface (SCMI) bindings <https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/firmware/arm,scmi.yaml>`_
> +
> +Simple SCMI over SMC calls forwarding driver (EL3)
> +------------------------------------------------------
> +
> +The EL3 SCMI firmware (TF-A) with a single SCMI OSPM agent support is pretty generic case for
> +the default vendors SDK and new platforms with SCMI support. Such EL3 SCMI firmware supports only
> +single SCMI OSPM transport (agent) with Shared memory based transport and SMC calls as doorbell.
> +
> +The SCMI over SMC calls forwarding driver solves major problem for this case by allowing
> +SMC calls to be forwarded form guest to the EL3 SCMI firmware.
> +
> +By default, the SCMI over SMC calls forwarding is enabled for Dom0/hwdom.
> +
> +::
> +
> +    +--------------------------+
> +    |                          |
> +    | EL3 SCMI FW (TF-A)       |
> +    ++-------+--^--------------+
> +     |shmem  |  | smc-id
> +     +----^--+  |
> +          |     |
> +     +----|-+---+---+----------+
> +     |    | |  FWD  |      Xen |
> +     |    | +---^---+          |
> +     +----|-----|--------------+
> +          |     | smc-id
> +     +----v-----+--+ +---------+
> +     |             | |         |
> +     | Dom0/hwdom  | | DomU    |
> +     |             | |         |
> +     |             | |         |
> +     +-------------+ +---------+
> +
> +
> +The SCMI messages are passed directly through SCMI shared-memory (zero-copy) and driver only
> +forwards SMC calls.
> +
> +Compiling
> +^^^^^^^^^
> +
> +To build with the SCMI over SMC calls forwarding enabled support, enable Kconfig option
> +
> +::
> +
> +    CONFIG_SCMI_SMC
> +
> +The ``CONFIG_SCMI_SMC`` is enabled by default.
> +
> +Pass-through SCMI SMC to domain which serves as Driver domain
> +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> +
> +This section describes how to configure the SCMI over SMC calls forwarding driver to handle use
> +case "thin Dom0 with guest domain, which serves as Driver domain". In this case HW need to be
> +enabled in Driver domain and dom0 is performing only control functions (without accessing FW) and so,
> +the SCMI need to be enabled in Driver domain.
> +
> +::
> +
> +     +--------------------------+
> +     |EL3 SCMI FW (TF-A)        |
> +     |                          |
> +     +-------------^--+-------+-+
> +             smc-id|  |shmem0 |
> +                   |  +----^--+
> +    +-------------++------+|----+
> +    |Xen          |  FWD  ||    |
> +    |             +--^----+|    |
> +    +----------------|-----|----+
> +              smc-id |     |
> +    +-----------+ +--+-----v-----+
> +    |           | |              |
> +    | Dom0      | |    Driver    |
> +    | Control   | |    domain    |
> +    |           | |              |
> +    +-----------+ +--------------+
> +
> +The SCMI can be enabled for one and only one guest domain.
> +
> +First. configure Dom0 to enable SCMI pass-through using Xen Command Line
> +**"scmi-smc-passthrough"** option. This will disable SCMI for Dom0/hwdom and SCMI nodes will
> +be removed from Dom0/hwdom device tree.
> +
> +**Configure SCMI pass-through for guest domain with toolstack**
> +
> +* In domain's xl.cfg file add **"arm_sci"** option as below
> +
> +::
> +
> +    arm_sci = "type=scmi_smc"
> +
> +* In domain's xl.cfg file enable access to the "arm,scmi-shmem"
> +
> +::
> +
> +    iomem = [
> +        "47ff0,1@22001",
> +    ]
> +
> +.. note:: It's up to the user to select guest IPA for mapping SCMI shared-memory.
> +
> +* Add SCMI nodes to the Driver domain partial device tree as in the below example:
> +
> +.. code::
> +
> +    passthrough {
> +       scmi_shm_0: sram@22001000 {
> +           compatible = "arm,scmi-shmem";
> +           reg = <0x0 0x22001000 0x0 0x1000>;
> +       };
> +
> +       firmware {
> +            compatible = "simple-bus";
> +                scmi: scmi {
> +                    compatible = "arm,scmi-smc";
> +                    shmem = <&scmi_shm_0>;
> +                    ...
> +                }
> +        }
> +    }
> +
> +Please refer to [2] for details of SCMI DT bindings.
> +
> +In general, the configuration is similar to any other HW pass-through, except explicitly
> +enabling SCMI with "arm_sci" xl.cfg option.
> +
> +**Configure SCMI pass-through for predefined domain (dom0less)**
> +
> +* add "xen,sci_type" property for required DomU ("xen,domain") node
> +
> +::
> +
> +       xen,sci_type="scmi_smc"
> +
> +* add scmi nodes to the Driver domain partial device tree the same way as above and enable access
> +  to the "arm,scmi-shmem" according to  dom0less documentation. For example:
> +
> +.. code::
> +
> +      scmi_shm_0: sram@22001000 {
> +            compatible = "arm,scmi-shmem";
> +            reg = <0x00 0x22001000 0x00 0x1000>;
> +    ->        xen,reg = <0x0 0x47ff0000 0x0 0x1000 0x0 0x22001000>;
> +    ->        xen,force-assign-without-iommu;
> +      };
> diff --git a/docs/hypervisor-guide/arm/index.rst b/docs/hypervisor-guide/arm/index.rst
> new file mode 100644
> index 0000000000..7aae4a0a03
> --- /dev/null
> +++ b/docs/hypervisor-guide/arm/index.rst
> @@ -0,0 +1,9 @@
> +.. SPDX-License-Identifier: CC-BY-4.0
> +
> +ARM
> +===
> +
> +.. toctree::
> +   :maxdepth: 2
> +
> +   firmware/arm-scmi
> diff --git a/docs/hypervisor-guide/index.rst b/docs/hypervisor-guide/index.rst
> index e4393b0697..520fe01554 100644
> --- a/docs/hypervisor-guide/index.rst
> +++ b/docs/hypervisor-guide/index.rst
> @@ -9,3 +9,4 @@ Hypervisor documentation
>     code-coverage
>  
>     x86/index
> +   arm/index
> \ No newline at end of file
> -- 
> 2.34.1
> 


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 23:41:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 23:41:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100129.1453686 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urmF9-0001Uj-LD; Thu, 28 Aug 2025 23:41:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100129.1453686; Thu, 28 Aug 2025 23:41: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 1urmF9-0001Uc-IO; Thu, 28 Aug 2025 23:41:23 +0000
Received: by outflank-mailman (input) for mailman id 1100129;
 Thu, 28 Aug 2025 23:41:22 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=YsNu=3I=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1urmF8-0001UW-AT
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 23:41:22 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org
 [2600:3c04:e001:324:0:1991:8:25])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7f11acfb-8468-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 01:41:20 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 9D4C26013D;
 Thu, 28 Aug 2025 23:41:18 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id F2DDAC4CEEB;
 Thu, 28 Aug 2025 23:41:16 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7f11acfb-8468-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1756424478;
	bh=ZzFkoIBsajEKn4LtJf6oMIx720rm9V2CYHjGdsL2htY=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=JA9uitAmYJ3fTiCYkRIt9j9bbOH+THqwFEj7W0YK0aUlc9MPEwor7nfQBoi1vuib4
	 VtQWEASFW7tnQYfhjl1q6nvHB/dmVXcdPKBbXr0KeU3Zia/b3rSTTo1VBv50YeF4kG
	 hmyfTntN5xY7Hvec03u3ZVxeIlkGNbjd4pj2kmwqfuOvkQ/F9OcNDy5Hkmeb8TTNPI
	 TQCI1oJOUNzwCGrqgPus1XkyexT1Gj45EDZ03ZvNcL5CFIYqwhzztOiKmKktKoqkry
	 v0z5Tx0XZbCoxADPgYkido3u72dnDLYOg593DqvLZ5wl8u0oVTBvaLKNjdbuCRZWvP
	 nZEH24VP68MAw==
Date: Thu, 28 Aug 2025 16:41:15 -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>, 
    Oleksii Kurochko <oleksii.kurochko@gmail.com>, ray.huang@amd.com, 
    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>, 
    xen-devel@lists.xenproject.org, Penny Zheng <Penny.Zheng@amd.com>
Subject: Re: [PATCH] xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE
In-Reply-To: <5f5ba1dd-1252-4740-8c64-e4fcd8a7ac32@suse.com>
Message-ID: <alpine.DEB.2.22.394.2508281632020.8757@ubuntu-linux-20-04-desktop>
References: <20250815102728.1340505-1-Penny.Zheng@amd.com> <fb6f559a-b2aa-4b25-a6d3-401ecc4b4bd5@suse.com> <d6046b53-9317-43d6-bfda-e30d42c09320@gmail.com> <2035b14e-3836-4e80-9dad-8a49ca90864a@suse.com> <alpine.DEB.2.22.394.2508181646220.923618@ubuntu-linux-20-04-desktop>
 <49416df6-83c8-4fa3-bf81-2d1e504ef31b@suse.com> <alpine.DEB.2.22.394.2508251934200.3391208@ubuntu-linux-20-04-desktop> <alpine.DEB.2.22.394.2508261728250.3391208@ubuntu-linux-20-04-desktop> <cc8724b6-bb31-4482-a459-156366b7b433@suse.com>
 <alpine.DEB.2.22.394.2508271442410.580734@ubuntu-linux-20-04-desktop> <5f5ba1dd-1252-4740-8c64-e4fcd8a7ac32@suse.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 28 Aug 2025, Jan Beulich wrote:
> On 28.08.2025 02:52, Stefano Stabellini wrote:
> > On Wed, 27 Aug 2025, Jan Beulich wrote:
> >> On 27.08.2025 02:33, Stefano Stabellini wrote:
> >>> So I ran a test and the appended change, which is based on [1] and
> >>> renaming CONFIG_DOMCTL to CONFIG_SYSCTL, is sufficient to resolve the
> >>> build issue.
> >>>
> >>> For 4.21, I suggest we go with two patches:
> >>> 1) global rename of CONFIG_SYSCTL to CONFIG_MGMT_HYPERCALLS
> >>> 2) stub domctl_lock_acquire/release based on CONFIG_MGMT_HYPERCALLS
> >>>
> >>> Jan, are you OK with this?
> >>
> >> Naming if the option aside, no, I fear I dislike the stubbing. What's
> >> worse though, ...
> >>
> >>> --- a/xen/include/xen/domain.h
> >>> +++ b/xen/include/xen/domain.h
> >>> @@ -148,8 +148,17 @@ void arch_dump_domain_info(struct domain *d);
> >>>  
> >>>  int arch_vcpu_reset(struct vcpu *v);
> >>>  
> >>> +#ifdef CONFIG_SYSCTL
> >>>  bool domctl_lock_acquire(void);
> >>>  void domctl_lock_release(void);
> >>> +#else
> >>> +static inline bool domctl_lock_acquire(void)
> >>> +{
> >>> +    return false;
> >>
> >> ... this will break x86'es HVM_PARAM_IDENT_PT handling. That is, in
> >> principle I would agree that returning false here is appropriate. But
> >> for the specific case there it's wrong.
> > 
> > Uhm, that is a good point actually. And while in principle "false"
> > sounds appropriate, in practice there is no domctl.c to worry about
> > concurrency so "true" is what we want.
> 
> Except that, as said, conceptually "true" is the wrong value to use in
> such a stub.
> 
> >> As said on the call yesterday, until what you call MGMT_HYPERCALLS is
> >> completely done, the option needs to be prompt-less, always-on.
> > 
> > I do not think this is a good idea, because we would be unable to test
> > the configuration. Although we have been accepting code without tests,
> > that is not a good principle. At least with the current approach we can
> > run manual tests if automated tests are not available. If we make it
> > silent, we risk introducing broken code, or code soon-to-become broken.
> > 
> > In my view, we need to make gradual progress toward the goal. In this
> > case, we should move incrementally toward compiling out all the
> > "management" hypercalls. Also the alternative of waiting until all
> > patches are ready before committing them is not feasible. An incremental
> > approach reduces risk, preserves testability, and makes regressions
> > easier to identify.
> 
> If that's your view, then why did you not comment on the SYSCTL series,
> when I asked the prompt to appear last?

I am not trying to be obtuse, but I am not sure what you mean by this.
In any case, I do not recall reading a specific email on this topic. I
try my best to follow other review comments, but I may have overlooked
this one.


> > An extreme example is that I could write:
> > 
> > static inline bool domctl_lock_acquire(void)
> > {
> >     obviously broken
> > }
> > 
> > and no tests would catch it.
> 
> Tests would catch it at the point the prompt is added. Much like it was
> with the SYSCTL series (and why, with the prompt removed, the rest of
> the series can stay in).

In my opinion, this is a no-go. The code must function correctly, and
that is my top priority, certainly above conceptual issues, such as the
return value of domctl_lock_acquire. With your suggestion, there is no
guarantee the code works and there is no way to test it.


> >> Adding
> >> a prompt was necessary to be the last thing on the SYSCTL series, and
> >> it'll need to be last on the follow-on one masking out further
> >> hypercalls. IOW my take is that 34317c508294 and 568f806cba4c will
> >> need reverting (the latter being what caused the regression, and the
> >> former depending on the latter), to allow to cleanly continue that
> >> work after the rename. If we don't do the reverts now (and take either
> >> Penny's patch or what you propose), imo we'll need to do them later.
> >> Else we're risking to introduce new randconfig breakages while the
> >> further conversion work is ongoing.
> > 
> > My suggestion remains to go forward with 2 patches:
> > 0) keep both 568f806cba4c and 34317c508294
> > 1) rename CONFIG_SYSCTL to CONFIG_MGMT_HYPERCALLS
> > 2) this patch with return true from domctl_lock_acquire
> > 
> > I am open to reverting 568f806cba4c but I don't think it would improve
> > things. I definitely don't think we should revert 34317c508294. We need
> > 34317c508294 otherwise this patch doesn't fix the build.
> 
> If "this patch" is the one outlined here, then with the reverts we wouldn't
> need it at all. The reverts alone will fix the build issue, according to my
> understanding.

The reverts you are suggesting do not fix the issue; they only hide it.
The Kconfig option can no longer be disabled, which renders the entire
patch series ineffective. In fact, the #ifdef's could be completely
incorrect, and the code would still build, as in my example:

static inline bool domctl_lock_acquire(void)
{
    obviously broken
}

It looks like we'll need a third opinion to make forward progress.


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 23:45:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 23:45:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100152.1453716 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urmJX-0002EJ-CC; Thu, 28 Aug 2025 23:45:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100152.1453716; Thu, 28 Aug 2025 23: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 1urmJX-0002EC-9D; Thu, 28 Aug 2025 23:45:55 +0000
Received: by outflank-mailman (input) for mailman id 1100152;
 Thu, 28 Aug 2025 23:45:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=AInb=3I=nvidia.com=jgg@srs-se1.protection.inumbo.net>)
 id 1urmJV-0002E5-Dm
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 23:45:53 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on2060b.outbound.protection.outlook.com
 [2a01:111:f403:200a::60b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 202a935e-8469-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 01:45:51 +0200 (CEST)
Received: from CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13)
 by SA1PR12MB6776.namprd12.prod.outlook.com (2603:10b6:806:25b::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.13; Thu, 28 Aug
 2025 23:45:44 +0000
Received: from CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732]) by CH3PR12MB8659.namprd12.prod.outlook.com
 ([fe80::6eb6:7d37:7b4b:1732%4]) with mapi id 15.20.9073.010; Thu, 28 Aug 2025
 23:45: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>
X-Inumbo-ID: 202a935e-8469-11f0-8dd7-1b34d833f44b
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BC0j4lwL4dAZkVK7ch7LF2nEtfdyfLuAA9ArPob3ntYclDYP9WUWF4lzLgBjVEWhKD5fzKCHCvGY5+ndBoRrUZwm7waYZhpSqAahKYwgQ4pjljsudSoVim6I1hb9ly7jMQqHnr44z2LJClAFi82An2v/KrYyR5ZeA70EU+uCXT/rleKxZWx+PAzM297baujTy8UZVntNmF6p7b2TJOYuME78pNxz1HsfZpzErVOVNYl6GiqZ5yRWCRCzttx+jBI51JngDmXcWelvtfVyFMvxw+62K7k2qBxCZ8Fc4e37K8Q+jGpjWdeifbVUhI00fggE7wEQP4jyhOoXizMoJ8tVEQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=1JzfVyfbWEkwcvRy5E87In4bJJ84qEkwC/j9O+RskB0=;
 b=OuXuVM34IS1TM0+6lpGfRyQyiWbMArhtJHiPyAgIiz4AlR2A9iMHh2iJjDR5UK+PYaynzoJXM12KvSYb+IA2KB2fmTlbiAUz1r2mUfUeZHRKqxSwV0LmV2GkOPmgSzQ5MYzn1hZJFRWDqoYgBFtMNGuMPDBJVb8P/9jqwjbguKt+hkYnD+ht+QDLJRox2+wePM3TpqbrBPHyqOTkdOJZycEjFRPmJuUNApFbfzhw1d53g2o7cqRI0vZ+VJTqLbGS1YEEO/x5afwsJ/CT40bHaWRqBIKvugAMF2pDdPIOcs4D6WdXb0OSJy8SlnmEMFsA7TmpWwIyN/tzZN7HLbt84g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com;
 dkim=pass header.d=nvidia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=1JzfVyfbWEkwcvRy5E87In4bJJ84qEkwC/j9O+RskB0=;
 b=VxRX8y7v26YTcy0pm0Eq8/JX3RyQj1mvosIjLgJoJ5Hf/erONZbAQ7UuB2aWAyT2Y9SvfMSp6863o2b0yAt8wB7s96NROj09PzDBubXJK6wCzBNuANpfqrfKDpKiEKHzCkFH0xFvnRPG2404BQrGZnqFLwXObqOS4VE5W5GBq72z+BFFaXecgJpi+GM4ZHGo7Z8QckOiiC3F4ZiRqFFGTyxlqPxg+w740BlwXy/nfyhOAsCIH96eFyZ52v7TOe86DZC3T7GEjM2WE5G5cjtR5BftO2oXcDldH+HDfD/hthN/IqlvNd32XXJQPecBtJF+qCipDVffTR+6xDrsOKEwUQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=nvidia.com;
Date: Thu, 28 Aug 2025 20:45:42 -0300
From: Jason Gunthorpe <jgg@nvidia.com>
To: Keith Busch <kbusch@kernel.org>
Cc: Leon Romanovsky <leon@kernel.org>,
	Marek Szyprowski <m.szyprowski@samsung.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-mm@kvack.org, linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org, linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 15/16] block-dma: properly take MMIO path
Message-ID: <20250828234542.GK7333@nvidia.com>
References: <cover.1755624249.git.leon@kernel.org>
 <642dbeb7aa94257eaea71ec63c06e3f939270023.1755624249.git.leon@kernel.org>
 <aLBzeMNT3WOrjprC@kbusch-mbp>
 <20250828165427.GB10073@unreal>
 <aLCOqIaoaKUEOdeh@kbusch-mbp>
 <20250828184115.GE7333@nvidia.com>
 <aLCpqI-VQ7KeB6DL@kbusch-mbp>
 <20250828191820.GH7333@nvidia.com>
 <aLDCC4rXcIKF8sRg@kbusch-mbp>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <aLDCC4rXcIKF8sRg@kbusch-mbp>
X-ClientProxiedBy: PH7PR13CA0003.namprd13.prod.outlook.com
 (2603:10b6:510:174::14) To CH3PR12MB8659.namprd12.prod.outlook.com
 (2603:10b6:610:17c::13)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PR12MB8659:EE_|SA1PR12MB6776:EE_
X-MS-Office365-Filtering-Correlation-Id: 753e419c-5ee5-49ef-69cc-08dde68d017e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|7416014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?BRmB+3sKM17VmapuvDAanENDABDoL5Vpjr28rLgku94+uoeQ47+jUimtSCp1?=
 =?us-ascii?Q?u0ol1dYjEgBvhO+ruK3iz1KEP/hZe25IXKS3DBr3YL9i7oeUIybZm61bc1EK?=
 =?us-ascii?Q?ySVKFefar6hxK0//rT6Je0GyXftJ2+WIKk+gQVSVNjs+Bkungz+C7gvV7FE9?=
 =?us-ascii?Q?JWTCKInSOrbbaQQHrNsl6Z5VBvqOljwWpgr3qXQvyL+Pg+MscLmm6SArQcxY?=
 =?us-ascii?Q?DhRw9/ZD8E7yHpahJ58uR5uiRAi4+XlAVS2evL/9AMATYhX1mkLmURS/z3jc?=
 =?us-ascii?Q?1V8fE7B86lb2Ht8o66gydqV81PLbS1K7px3v2ku7KKgIc9spCDxux52V1e9X?=
 =?us-ascii?Q?2498Hip1BaWsm1qRiLue87NQN9Z8AJishXg/2l29DTeQIEgx8BvWPqqlHtMI?=
 =?us-ascii?Q?LZrzHSOQwD82enU0XZ4QvLY+EpJrrsG0aR8cPF6lU48eUz2Bwk19vFp5xmob?=
 =?us-ascii?Q?FBLQcOaGyTp3p1DF5P/fDKAKIx3KFyk25UzYulT6OPKOJ8/nAaUAfoELdNwt?=
 =?us-ascii?Q?gJJsBFxQ7TZfd+e5TwigthbjSdVMfwZu4ntQ3hbIPzZ3X8i+//nTBmsBv2P/?=
 =?us-ascii?Q?9JHw7gf5BC5M7B79SHTbr3VxCjAxyblS+ecONyQ7+pV0UZdx4ZkJaEYtITXK?=
 =?us-ascii?Q?/Ud/XTouTFMXZ5sLYqFF7qM81eEraAf2qP9fHpukUza4yBXVwCBf3mZem0Vf?=
 =?us-ascii?Q?OJRavtRWTGaJ+pLqvA6Ou8HUKqW+yoROq9n9FY6r9a2ShUiGDeBHELGNMS9I?=
 =?us-ascii?Q?dL7jH7kqZnUOoBBf3mGbE+UqUXxdaXpDchRzCfuEK4FnZ7zr4gN9ep/+4aJM?=
 =?us-ascii?Q?sw6wi+XaEogKqqzViWPfuAemHi05HSfMS4MdRfkPchzCEfzJFlwSv+GLxzlD?=
 =?us-ascii?Q?HCWlPg4s9cg/K3ly9v7KncbEKuyZo2TZaLSvdiK6wXEvmt5LLMxwqXZIWgFn?=
 =?us-ascii?Q?xWdsfLj+2G7UfQCHxukuX2UQYJuI1WLdvSDOw0AGKcw+99YC77IRY+OL92/D?=
 =?us-ascii?Q?21dNzr7nLqsmiYEFtY1EJio4JyFTMe3ec10oPKTUrkcsGkjr1/ks+6KSCtvn?=
 =?us-ascii?Q?HA0+NJPHPPjzq4wQhCZDNTDtkDziamYMNAFgr0N+PteMCcAxrxhNkG5ZyPDo?=
 =?us-ascii?Q?Ua1raoxaJ5NswslbugvyjHR0iXjibH3cEoK59tkDZ1f/uLlg+VQy3QNMGn7n?=
 =?us-ascii?Q?HCK6PdEXVn7LemiRnfbB5fcOxtdaUEPFW5lJjVHBVf8vHD2B4Bo1bM3mIXwL?=
 =?us-ascii?Q?I9Jn/tVJuGDOr+/G4UBoCVpEef7zxZjVhIs5r53tho0Sm441MIodgr3hTnDX?=
 =?us-ascii?Q?65dDh/vJRvQ25+EgjhJh4yNobd1W8xoCF1IhGxQbiNrO49hN+w8dOg6USblN?=
 =?us-ascii?Q?ZdfJit9b8mGe+lxErrCIkoNOdCD3aQ01k1hLoZQAmRwv/zUPd+uDvm7rBHth?=
 =?us-ascii?Q?Cvvs6vcbnBU=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR12MB8659.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7416014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?Guohg76/pkR5ZgCdXgoXw1W3mQ00oIzJR+SdpQh5sfjJMXbMJ6diFn7nFxpV?=
 =?us-ascii?Q?idifmlCDn6s8kevNE8Sf4gg9m8QK3+NtR2NSUeO9qNsfGDtGDFWFwjrJ5I5k?=
 =?us-ascii?Q?Ox4PeX8sLOraVXU+a9YyVUbixgamtzWXtFVqTFjAYxe7tJjQRhfS2cBo+fi5?=
 =?us-ascii?Q?kVVvQnY8kZ3FnBMRjUQZFrfMSc7Mi3mxfiW8w7B7GKRGTOIBn3rkqXeyvfl9?=
 =?us-ascii?Q?D1Q7+0cmtHVDvXMJiug98HJ17TCVxynsb1SEjZxEdfB/d5l5f17QzUwpPnVN?=
 =?us-ascii?Q?Gplf3AcoLO1AIGH+gwg6UqRp0s6sMkSKs0xwRZigys9wH5XBl9W2216ei6tY?=
 =?us-ascii?Q?vvR5O4PxY3fkdAsxQQKZfY3GGooMAF5guVzbOllo+zUmGHGYzSN6di40Xba+?=
 =?us-ascii?Q?ngFmkM1zsb8jSY87arByWlr7nB8uWwkhGYuLFNV0c8xY/D6x46jEvCrDrLzN?=
 =?us-ascii?Q?QdaBljNNtZJQpa7uhXrdwcbQHLktyV87FIGiljAjlhL2tDE8GgdWmjQ9I07Q?=
 =?us-ascii?Q?cpe0ZtsvokBQR0zYqw6t8PkI1eqMRH+E8s7b2oIPX61W4gxJPmeMgjkokkN4?=
 =?us-ascii?Q?BePhnvjrhX+JARM1FdSryWeoCtJ3m77i7OSY+ZS+AyHeOn2IUYgxh0ArUlvq?=
 =?us-ascii?Q?BvNDMGcSBFWJu4hdNZztzTi+5uLEGmsdU2p+6i9UE/XqPfDiTD88psrco+fb?=
 =?us-ascii?Q?fY/xzqHaiCEj1rxu6vxJXwfiTL+iTcSA52Gl7mFQGOMgADdAjDbHTUSLIaQw?=
 =?us-ascii?Q?cAixtwK5ed5SN/lVyfz4rS2BpfHcflIlkrhPN1NLFiXEJogyMcgIUlslIWfc?=
 =?us-ascii?Q?N4SxOFYJprB/AeCcdUG9CkiCGanv1lbz4sFatvqfIBj/Cz07Fs7w5EHoVrsl?=
 =?us-ascii?Q?BkitYeS6X6zNKItXzPlD0uehnMerAtpbspMmXMkfgDTxVQqDMRprgWSEZTs4?=
 =?us-ascii?Q?3ceZRuolwKKM2lcKQL+tawp818fSy1l2N5KTgPhJGK3DAjHmnUPP+DExWgQ8?=
 =?us-ascii?Q?62AcQmC0vE3imo5f6Axz3FQHoBp3zbuYc7CfhCuDOe+6hSguUTMHfZfnZyII?=
 =?us-ascii?Q?7fnKE8QhQ6zMbXSZMUPCXIEWZRaSfB/x954fCwGQFhgCqxiCxkE4w5HzBMOh?=
 =?us-ascii?Q?dLeCGlEaAsHoOcFROZCGOdisGP9Zlit0/k6rVQ+J9tO3D6iXu8tp/2c3Wk/L?=
 =?us-ascii?Q?euhoY/rX47hr8ctR5Cp1zPCIL7Hk1EtfflIpOZwE4I88A1Tpiw/JVGWBpoK/?=
 =?us-ascii?Q?wQGvzOztsizk77wdlm2KI4QYnPVWD3gZHYmFEVNhuf/cdumvV6iho52kDZbC?=
 =?us-ascii?Q?urbjXb+V0k3ksRa5Yl6SkXgRGvaBvJVo8pShoQITY792C177/Qu1Kzp8TIGs?=
 =?us-ascii?Q?jaby0wxn228VgUWgqaGu01nkxL96Q5xrnXO7hbCRmfyOPPyasuMfwZLX4EHU?=
 =?us-ascii?Q?e9ljeB3zqOhiHYAVmIosgGuhi1Wif+QzpP/frMqCpXzb0vpi6c19NhWE3vG0?=
 =?us-ascii?Q?wdimmMQp2Hr+zsdLF43kjsQZlHnbRGTNKGJW5xxYHTTjqo4bwYiXSm+YG9UX?=
 =?us-ascii?Q?+1fyZ2DaYg9/ErkWntpBMRbOiJM/hdBX7nHaA03A?=
X-OriginatorOrg: Nvidia.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 753e419c-5ee5-49ef-69cc-08dde68d017e
X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8659.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 23:45:44.7681
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: stKDrPdUYg+cKM6Zaii6EJX1iDXReQlwcCRvIIs2DW0PSsQcsndv+JR8Lnf1GfOk
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB6776

On Thu, Aug 28, 2025 at 02:54:35PM -0600, Keith Busch wrote:

> In truth though, I hadn't tried p2p metadata before today, and it looks
> like bio_integrity_map_user() is missing the P2P extraction flags to
> make that work. Just added this patch below, now I can set p2p or host
> memory independently for data and integrity payloads:

I think it is a bit more than that, you have to make sure all the meta
data is the same, either all p2p or all cpu and then record this
somehow so the DMA mapping knows what kind it is.

Once that is all done then the above should still be OK, the dma unmap
of the data can follow Leon's new flag and the dma unmap of the
integrity can follow however integrity kept track (in the
bio_integrity_payload perhaps?) ??

Jason


From xen-devel-bounces@lists.xenproject.org Thu Aug 28 23:54:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 23:54:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100174.1453739 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urmRc-00046y-QE; Thu, 28 Aug 2025 23:54:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100174.1453739; Thu, 28 Aug 2025 23:54: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 1urmRc-00045P-Ln; Thu, 28 Aug 2025 23:54:16 +0000
Received: by outflank-mailman (input) for mailman id 1100174;
 Thu, 28 Aug 2025 23:54:15 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@xen.org>) id 1urmRb-0003uX-RP
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 23:54:15 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1urmRb-00B9sn-0Z;
 Thu, 28 Aug 2025 23:54:15 +0000
Received: from [19.12.91.86] (helo=localhost)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1urmRb-006h8L-0X;
 Thu, 28 Aug 2025 23:54:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:References:
	In-Reply-To:Message-ID:Date:Subject:Cc:To:From;
	bh=1Y0C8keUzE/wZqeo7tjHMs2P7cNukUmVM3x4q2CAexw=; b=smKTHytMBCcQySr4apJLlYU21o
	ujpNk1uYVLiWcA6Y3EzYd26T4XGKYlvrBfGO6G9yUSa38Fak9N5SunhUDebMUK4bfPB19CAcgKmV8
	9FBSHEKooVGYSV4TEvVkZsbqGeDwVypYq2AhdjHKY0GAdz7qhVEPfubImYb0eJ2FHEJE=;
From: dmukhin@xen.org
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 v5 02/15] xen/8250-uart: update definitions
Date: Thu, 28 Aug 2025 16:53:56 -0700
Message-ID: <20250828235409.2835815-3-dmukhin@ford.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20250828235409.2835815-1-dmukhin@ford.com>
References: <20250828235409.2835815-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Denis Mukhin <dmukhin@ford.com> 

Added missing definitions needed for NS16550 UART emulator.

Newly introduced MSR definitions re-used in the existing ns16550 driver.

Also, corrected FCR DMA definition bit#3 (0x08) as per:
  https://www.ti.com/lit/ds/symlink/tl16c550c.pdf
See "7.7.2 FIFO Control Register (FCR)".

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v4:
- reused newly introduced UART_IIR and UART_IER bits in ns16550 driver
- Link to v4: https://lore.kernel.org/xen-devel/20250731192130.3948419-5-dmukhin@ford.com/
---
 xen/drivers/char/ns16550.c  | 16 ++++++------
 xen/include/xen/8250-uart.h | 50 ++++++++++++++++++++++++++++++-------
 2 files changed, 49 insertions(+), 17 deletions(-)

diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c
index df7fff7f81df..0e80fadbb894 100644
--- a/xen/drivers/char/ns16550.c
+++ b/xen/drivers/char/ns16550.c
@@ -388,7 +388,7 @@ static void __init cf_check ns16550_init_preirq(struct serial_port *port)
 
     /* Check this really is a 16550+. Otherwise we have no FIFOs. */
     if ( uart->fifo_size <= 1 &&
-         ((ns_read_reg(uart, UART_IIR) & 0xc0) == 0xc0) &&
+         ((ns_read_reg(uart, UART_IIR) & UART_IIR_FE) == UART_IIR_FE) &&
          ((ns_read_reg(uart, UART_FCR) & UART_FCR_TRG14) == UART_FCR_TRG14) )
         uart->fifo_size = 16;
 }
@@ -728,20 +728,20 @@ static int __init check_existence(struct ns16550 *uart)
      * Mask out IER[7:4] bits for test as some UARTs (e.g. TL
      * 16C754B) allow only to modify them if an EFR bit is set.
      */
-    scratch2 = ns_read_reg(uart, UART_IER) & 0x0f;
-    ns_write_reg(uart,UART_IER, 0x0F);
-    scratch3 = ns_read_reg(uart, UART_IER) & 0x0f;
+    scratch2 = ns_read_reg(uart, UART_IER) & UART_IER_MASK;
+    ns_write_reg(uart, UART_IER, UART_IER_MASK);
+    scratch3 = ns_read_reg(uart, UART_IER) & UART_IER_MASK;
     ns_write_reg(uart, UART_IER, scratch);
-    if ( (scratch2 != 0) || (scratch3 != 0x0F) )
+    if ( (scratch2 != 0) || (scratch3 != UART_IER_MASK) )
         return 0;
 
     /*
      * Check to see if a UART is really there.
      * Use loopback test mode.
      */
-    ns_write_reg(uart, UART_MCR, UART_MCR_LOOP | 0x0A);
-    status = ns_read_reg(uart, UART_MSR) & 0xF0;
-    return (status == 0x90);
+    ns_write_reg(uart, UART_MCR, UART_MCR_LOOP | UART_MCR_RTS | UART_MCR_OUT2);
+    status = ns_read_reg(uart, UART_MSR) & UART_MSR_STATUS;
+    return (status == (UART_MSR_CTS | UART_MSR_DCD));
 }
 
 #ifdef CONFIG_HAS_PCI
diff --git a/xen/include/xen/8250-uart.h b/xen/include/xen/8250-uart.h
index d13352940c13..bc11cdc376c9 100644
--- a/xen/include/xen/8250-uart.h
+++ b/xen/include/xen/8250-uart.h
@@ -32,6 +32,7 @@
 #define UART_MCR          0x04    /* Modem control        */
 #define UART_LSR          0x05    /* line status          */
 #define UART_MSR          0x06    /* Modem status         */
+#define UART_SCR          0x07    /* Scratch pad          */
 #define UART_USR          0x1f    /* Status register (DW) */
 #define UART_DLL          0x00    /* divisor latch (ls) (DLAB=1) */
 #define UART_DLM          0x01    /* divisor latch (ms) (DLAB=1) */
@@ -42,6 +43,8 @@
 #define UART_IER_ETHREI   0x02    /* tx reg. empty        */
 #define UART_IER_ELSI     0x04    /* rx line status       */
 #define UART_IER_EMSI     0x08    /* MODEM status         */
+#define UART_IER_MASK \
+    (UART_IER_ERDAI | UART_IER_ETHREI | UART_IER_ELSI | UART_IER_EMSI)
 
 /* Interrupt Identification Register */
 #define UART_IIR_NOINT    0x01    /* no interrupt pending */
@@ -51,12 +54,19 @@
 #define UART_IIR_THR      0x02    /*  - tx reg. empty     */
 #define UART_IIR_MSI      0x00    /*  - MODEM status      */
 #define UART_IIR_BSY      0x07    /*  - busy detect (DW) */
+#define UART_IIR_FE       0xc0    /* FIFO enabled (2 bits) */
 
 /* FIFO Control Register */
-#define UART_FCR_ENABLE   0x01    /* enable FIFO          */
-#define UART_FCR_CLRX     0x02    /* clear Rx FIFO        */
-#define UART_FCR_CLTX     0x04    /* clear Tx FIFO        */
-#define UART_FCR_DMA      0x10    /* enter DMA mode       */
+#define UART_FCR_ENABLE     BIT(0, U)   /* enable FIFO          */
+#define UART_FCR_CLRX       BIT(1, U)   /* clear Rx FIFO        */
+#define UART_FCR_CLTX       BIT(2, U)   /* clear Tx FIFO        */
+#define UART_FCR_DMA        BIT(3, U)   /* enter DMA mode       */
+#define UART_FCR_RESERVED0  BIT(4, U)   /* reserved; always 0   */
+#define UART_FCR_RESERVED1  BIT(5, U)   /* reserved; always 0   */
+#define UART_FCR_RTB0       BIT(6, U)   /* receiver trigger bit #0 */
+#define UART_FCR_RTB1       BIT(7, U)   /* receiver trigger bit #1 */
+#define UART_FCR_TRG_MASK   (UART_FCR_RTB0 | UART_FCR_RTB1)
+
 #define UART_FCR_TRG1     0x00    /* Rx FIFO trig lev 1   */
 #define UART_FCR_TRG4     0x40    /* Rx FIFO trig lev 4   */
 #define UART_FCR_TRG8     0x80    /* Rx FIFO trig lev 8   */
@@ -96,11 +106,32 @@
 #define UART_LCR_CONF_MODE_B	0xBF		/* Configuration mode B */
 
 /* Modem Control Register */
-#define UART_MCR_DTR      0x01    /* Data Terminal Ready  */
-#define UART_MCR_RTS      0x02    /* Request to Send      */
-#define UART_MCR_OUT2     0x08    /* OUT2: interrupt mask */
-#define UART_MCR_LOOP     0x10    /* Enable loopback test mode */
-#define UART_MCR_TCRTLR   0x40    /* Access TCR/TLR (TI16C752, EFR[4]=1) */
+#define UART_MCR_DTR            BIT(0, U)   /* Data Terminal Ready  */
+#define UART_MCR_RTS            BIT(1, U)   /* Request to Send      */
+#define UART_MCR_OUT1           BIT(2, U)   /* OUT1: interrupt mask */
+#define UART_MCR_OUT2           BIT(3, U)   /* OUT2: interrupt mask */
+#define UART_MCR_LOOP           BIT(4, U)   /* Enable loopback test mode */
+#define UART_MCR_RESERVED0      BIT(5, U)   /* Reserved #0 */
+#define UART_MCR_TCRTLR         BIT(6, U)   /* Access TCR/TLR (TI16C752, EFR[4]=1) */
+#define UART_MCR_RESERVED1      BIT(7, U)   /* Reserved #1 */
+#define UART_MCR_MASK \
+    (UART_MCR_DTR | UART_MCR_RTS | \
+     UART_MCR_OUT1 | UART_MCR_OUT2 | \
+     UART_MCR_LOOP | UART_MCR_TCRTLR)
+
+/* Modem Status Register */
+#define UART_MSR_DCTS           BIT(0, U)   /* Change in CTS */
+#define UART_MSR_DDSR           BIT(1, U)   /* Change in DSR */
+#define UART_MSR_TERI           BIT(2, U)   /* Change in RI */
+#define UART_MSR_DDCD           BIT(3, U)   /* Change in CTS */
+#define UART_MSR_CTS            BIT(4, U)
+#define UART_MSR_DSR            BIT(5, U)
+#define UART_MSR_RI             BIT(6, U)
+#define UART_MSR_DCD            BIT(7, U)
+#define UART_MSR_CHANGE \
+    (UART_MSR_DCTS | UART_MSR_DDSR | UART_MSR_TERI | UART_MSR_DDCD)
+#define UART_MSR_STATUS \
+    (UART_MSR_CTS | UART_MSR_DSR | UART_MSR_RI | UART_MSR_DCD)
 
 /* Line Status Register */
 #define UART_LSR_DR       0x01    /* Data ready           */
@@ -111,6 +142,7 @@
 #define UART_LSR_THRE     0x20    /* Xmit hold reg empty  */
 #define UART_LSR_TEMT     0x40    /* Xmitter empty        */
 #define UART_LSR_ERR      0x80    /* Error                */
+#define UART_LSR_MASK     (UART_LSR_OE | UART_LSR_BI)
 
 /* These parity settings can be ORed directly into the LCR. */
 #define UART_PARITY_NONE  (0<<3)
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 23:54:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 23:54:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100173.1453731 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urmRc-0003xw-D7; Thu, 28 Aug 2025 23:54:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100173.1453731; Thu, 28 Aug 2025 23:54: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 1urmRc-0003xc-8n; Thu, 28 Aug 2025 23:54:16 +0000
Received: by outflank-mailman (input) for mailman id 1100173;
 Thu, 28 Aug 2025 23:54:15 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@xen.org>) id 1urmRb-0003uR-4L
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 23:54:15 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1urmRa-00B9sg-0T;
 Thu, 28 Aug 2025 23:54:14 +0000
Received: from [19.12.91.86] (helo=localhost)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1urmRa-006h8C-0M;
 Thu, 28 Aug 2025 23:54:14 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:References:
	In-Reply-To:Message-ID:Date:Subject:Cc:To:From;
	bh=3uY/ymlrQZvaklx4aPbNgy3nlM9eRQkn9g8UJEYNCeQ=; b=kNoJFqZpnn2eqUiEEUlwCFFT3U
	mBsUxe47T1eaGYNvoPYSbM1hg9daup9QLMVyZnJJCFeHGiqEo9h+iPsNC5ksetiYB0tcgTxf5NWOm
	kD2KytrGLxJL5MYMXffc39/igDhmTrsn8aMMr9qJLtW+nG3KjBLT48e1r0bezyJhMWLI=;
From: dmukhin@xen.org
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 v5 01/15] emul/vuart: introduce framework for UART emulators
Date: Thu, 28 Aug 2025 16:53:55 -0700
Message-ID: <20250828235409.2835815-2-dmukhin@ford.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20250828235409.2835815-1-dmukhin@ford.com>
References: <20250828235409.2835815-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Denis Mukhin <dmukhin@ford.com> 

Introduce a driver framework to abstract UART emulators in the hypervisor.

That allows for architecture-independent handling of virtual UARTs in the
console driver and simplifies enabling new UART emulators.

The framework is built under CONFIG_VUART_FRAMEWORK, which will be
automatically enabled once the user enables any UART emulator.

Current implementation supports maximum of one vUART of each kind per domain.

Use new domain_has_vuart() in the console driver code to check whether to
forward console input to the domain using vUART.

Enable console forwarding over vUART for hardware domains with a vUART. That
enables console forwarding to dom0 on x86, since console can be forwarded only
to Xen, dom0 and pvshim on x86 as of now.

Note: existing vUARTs are deliberately *not* hooked to the new framework to
minimize the scope of the patch: vpl011 (i.e. SBSA) emulator and "vuart" (i.e.
minimalistic MMIO-mapped dtuart for hwdoms on Arm) are kept unmodified.

No functional changes for non-x86 architectures.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v4:
- addressed feedback
- Link to v4: https://lore.kernel.org/xen-devel/20250731192130.3948419-3-dmukhin@ford.com/
---
 xen/arch/arm/xen.lds.S         |   1 +
 xen/arch/ppc/xen.lds.S         |   1 +
 xen/arch/riscv/xen.lds.S       |   1 +
 xen/arch/x86/xen.lds.S         |   1 +
 xen/common/Kconfig             |   2 +
 xen/common/Makefile            |   1 +
 xen/common/emul/Kconfig        |   6 ++
 xen/common/emul/Makefile       |   1 +
 xen/common/emul/vuart/Kconfig  |   6 ++
 xen/common/emul/vuart/Makefile |   1 +
 xen/common/emul/vuart/vuart.c  | 156 +++++++++++++++++++++++++++++++++
 xen/common/keyhandler.c        |   3 +
 xen/drivers/char/console.c     |   6 +-
 xen/include/xen/serial.h       |   3 +
 xen/include/xen/vuart.h        | 116 ++++++++++++++++++++++++
 xen/include/xen/xen.lds.h      |  10 +++
 16 files changed, 314 insertions(+), 1 deletion(-)
 create mode 100644 xen/common/emul/Kconfig
 create mode 100644 xen/common/emul/Makefile
 create mode 100644 xen/common/emul/vuart/Kconfig
 create mode 100644 xen/common/emul/vuart/Makefile
 create mode 100644 xen/common/emul/vuart/vuart.c
 create mode 100644 xen/include/xen/vuart.h

diff --git a/xen/arch/arm/xen.lds.S b/xen/arch/arm/xen.lds.S
index db17ff1efa98..cd05b18770f4 100644
--- a/xen/arch/arm/xen.lds.S
+++ b/xen/arch/arm/xen.lds.S
@@ -58,6 +58,7 @@ SECTIONS
        *(.rodata)
        *(.rodata.*)
        VPCI_ARRAY
+       VUART_ARRAY
        *(.data.rel.ro)
        *(.data.rel.ro.*)
 
diff --git a/xen/arch/ppc/xen.lds.S b/xen/arch/ppc/xen.lds.S
index 1de0b77fc6b9..f9d4e5b0dcd8 100644
--- a/xen/arch/ppc/xen.lds.S
+++ b/xen/arch/ppc/xen.lds.S
@@ -52,6 +52,7 @@ SECTIONS
         *(.rodata)
         *(.rodata.*)
         VPCI_ARRAY
+        VUART_ARRAY
         *(.data.rel.ro)
         *(.data.rel.ro.*)
 
diff --git a/xen/arch/riscv/xen.lds.S b/xen/arch/riscv/xen.lds.S
index edcadff90bfe..59dcaa5fef9a 100644
--- a/xen/arch/riscv/xen.lds.S
+++ b/xen/arch/riscv/xen.lds.S
@@ -47,6 +47,7 @@ SECTIONS
         *(.rodata)
         *(.rodata.*)
         VPCI_ARRAY
+        VUART_ARRAY
         *(.data.rel.ro)
         *(.data.rel.ro.*)
 
diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
index 966e514f2034..d877b93a6964 100644
--- a/xen/arch/x86/xen.lds.S
+++ b/xen/arch/x86/xen.lds.S
@@ -132,6 +132,7 @@ SECTIONS
        *(.rodata)
        *(.rodata.*)
        VPCI_ARRAY
+       VUART_ARRAY
        *(.data.rel.ro)
        *(.data.rel.ro.*)
 
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 76f9ce705f7a..78a32b69e2b2 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -676,4 +676,6 @@ config PM_STATS
 	  Enable collection of performance management statistics to aid in
 	  analyzing and tuning power/performance characteristics of the system
 
+source "common/emul/Kconfig"
+
 endmenu
diff --git a/xen/common/Makefile b/xen/common/Makefile
index c316957fcb36..c0734480ee4b 100644
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -11,6 +11,7 @@ obj-$(filter-out $(CONFIG_X86),$(CONFIG_ACPI)) += device.o
 obj-$(CONFIG_DEVICE_TREE_PARSE) += device-tree/
 obj-$(CONFIG_IOREQ_SERVER) += dm.o
 obj-y += domain.o
+obj-y += emul/
 obj-y += event_2l.o
 obj-y += event_channel.o
 obj-$(CONFIG_EVTCHN_FIFO) += event_fifo.o
diff --git a/xen/common/emul/Kconfig b/xen/common/emul/Kconfig
new file mode 100644
index 000000000000..7c6764d1756b
--- /dev/null
+++ b/xen/common/emul/Kconfig
@@ -0,0 +1,6 @@
+menu "Domain Emulation Features"
+	visible if EXPERT
+
+source "common/emul/vuart/Kconfig"
+
+endmenu
diff --git a/xen/common/emul/Makefile b/xen/common/emul/Makefile
new file mode 100644
index 000000000000..ae0b575c3901
--- /dev/null
+++ b/xen/common/emul/Makefile
@@ -0,0 +1 @@
+obj-$(CONFIG_VUART_FRAMEWORK) += vuart/
diff --git a/xen/common/emul/vuart/Kconfig b/xen/common/emul/vuart/Kconfig
new file mode 100644
index 000000000000..ce1b976b7da7
--- /dev/null
+++ b/xen/common/emul/vuart/Kconfig
@@ -0,0 +1,6 @@
+config VUART_FRAMEWORK
+	bool
+
+menu "UART Emulation"
+
+endmenu
diff --git a/xen/common/emul/vuart/Makefile b/xen/common/emul/vuart/Makefile
new file mode 100644
index 000000000000..97f792dc6641
--- /dev/null
+++ b/xen/common/emul/vuart/Makefile
@@ -0,0 +1 @@
+obj-y += vuart.o
diff --git a/xen/common/emul/vuart/vuart.c b/xen/common/emul/vuart/vuart.c
new file mode 100644
index 000000000000..7b277d00d5c7
--- /dev/null
+++ b/xen/common/emul/vuart/vuart.c
@@ -0,0 +1,156 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * UART emulator framework.
+ *
+ * Copyright 2025 Ford Motor Company
+ */
+
+#include <xen/err.h>
+#include <xen/sched.h>
+#include <xen/vuart.h>
+#include <xen/xvmalloc.h>
+
+#define for_each_emulator(e) \
+    for ( e = vuart_array_start; e < vuart_array_end; e++ )
+
+extern const struct vuart_emulator vuart_array_start[];
+extern const struct vuart_emulator vuart_array_end[];
+
+static const struct vuart_emulator *
+vuart_match_by_compatible(struct domain *d, const char *compat)
+{
+    const struct vuart_emulator *emulator;
+
+    if ( d->console.vuart )
+        return NULL;
+
+    for_each_emulator(emulator)
+        if ( emulator->compatible &&
+             !strncmp(emulator->compatible, compat,
+                      strlen(emulator->compatible)) )
+            return emulator;
+
+    return NULL;
+}
+
+static struct vuart *vuart_find_by_console_permission(const struct domain *d)
+{
+    struct vuart *vuart = d->console.vuart;
+
+    ASSERT(d->console.input_allowed);
+
+    if ( !vuart || !vuart->emulator || !vuart->emulator->put_rx ||
+         !(vuart->flags & VUART_CONSOLE_INPUT))
+        return NULL;
+
+    return vuart;
+}
+
+struct vuart *vuart_find_by_io_range(struct domain *d, unsigned long addr,
+                                     unsigned long size)
+{
+    struct vuart *vuart = d->console.vuart;
+
+    if ( !vuart || !vuart->info )
+        return NULL;
+
+    if ( addr >= vuart->info->base_addr &&
+         addr + size - 1 <= vuart->info->base_addr + vuart->info->size - 1 )
+        return vuart;
+
+    return NULL;
+}
+
+int vuart_init(struct domain *d, struct vuart_info *info)
+{
+    const struct vuart_emulator *emulator;
+    struct vuart *vuart;
+    int rc;
+
+    emulator = vuart_match_by_compatible(d, info->compatible);
+    if ( !emulator )
+        return -ENODEV;
+
+    vuart = xzalloc(typeof(*vuart));
+    if ( !vuart )
+        return -ENOMEM;
+
+    vuart->info = xvzalloc(typeof(*info));
+    if ( !vuart->info )
+    {
+        rc = -ENOMEM;
+        goto err_out;
+    }
+    memcpy(vuart->info, info, sizeof(*info));
+
+    vuart->vdev = emulator->alloc(d, vuart->info);
+    if ( IS_ERR(vuart->vdev) )
+    {
+        rc = PTR_ERR(vuart->vdev);
+        goto err_out;
+    }
+
+    vuart->emulator = emulator;
+    vuart->owner = d;
+    vuart->flags |= VUART_CONSOLE_INPUT;
+
+    d->console.input_allowed = true;
+    d->console.vuart = vuart;
+
+    return 0;
+
+ err_out:
+    XVFREE(vuart);
+    return rc;
+}
+
+/*
+ * Release any resources taken by UART emulators.
+ *
+ * NB: no flags are cleared, since currently exit() is called only during
+ * domain destroy.
+ */
+void vuart_deinit(struct domain *d)
+{
+    struct vuart *vuart = d->console.vuart;
+
+    if ( vuart )
+    {
+        vuart->emulator->free(vuart);
+        XVFREE(vuart->info);
+    }
+
+    XVFREE(d->console.vuart);
+}
+
+void vuart_dump_state(const struct domain *d)
+{
+    struct vuart *vuart = d->console.vuart;
+
+    if ( vuart )
+        vuart->emulator->dump_state(vuart);
+}
+
+/*
+ * Put character to the *first* suitable emulated UART's FIFO.
+ */
+int vuart_put_rx(struct domain *d, char c)
+{
+    struct vuart *vuart = vuart_find_by_console_permission(d);
+
+    return vuart ? vuart->emulator->put_rx(vuart, c) : -ENODEV;
+}
+
+bool domain_has_vuart(const struct domain *d)
+{
+    return vuart_find_by_console_permission(d);
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/common/keyhandler.c b/xen/common/keyhandler.c
index cb6df2823b00..156e64d9eb58 100644
--- a/xen/common/keyhandler.c
+++ b/xen/common/keyhandler.c
@@ -22,6 +22,7 @@
 #include <xen/mm.h>
 #include <xen/watchdog.h>
 #include <xen/init.h>
+#include <xen/vuart.h>
 #include <asm/div64.h>
 
 static unsigned char keypress_key;
@@ -352,6 +353,8 @@ static void cf_check dump_domains(unsigned char key)
                            v->periodic_period / 1000000);
             }
         }
+
+        vuart_dump_state(d);
     }
 
     for_each_domain ( d )
diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 9bd5b4825da6..d5164897a776 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/vuart.h>
 
 #ifdef CONFIG_X86
 #include <asm/guest.h>
@@ -596,11 +597,12 @@ static void __serial_rx(char c)
     if ( !d )
         return;
 
-    if ( is_hardware_domain(d) )
+    if ( is_hardware_domain(d) && !domain_has_vuart(d) )
     {
         /*
          * Deliver input to the hardware domain buffer, unless it is
          * already full.
+         * NB: must be the first check: hardware domain may have emulated UART.
          */
         if ( (serial_rx_prod - serial_rx_cons) != SERIAL_RX_SIZE )
             serial_rx_ring[SERIAL_RX_MASK(serial_rx_prod++)] = c;
@@ -611,6 +613,8 @@ static void __serial_rx(char c)
          */
         send_global_virq(VIRQ_CONSOLE);
     }
+    else if ( domain_has_vuart(d) )
+        rc = vuart_put_rx(d, c);
 #ifdef CONFIG_SBSA_VUART_CONSOLE
     else
         /* Deliver input to the emulated UART. */
diff --git a/xen/include/xen/serial.h b/xen/include/xen/serial.h
index 8e1844555208..d7e81f098359 100644
--- a/xen/include/xen/serial.h
+++ b/xen/include/xen/serial.h
@@ -36,6 +36,9 @@ struct vuart_info {
     unsigned long data_off;     /* Data register offset */
     unsigned long status_off;   /* Status register offset */
     unsigned long status;       /* Ready status value */
+    unsigned int irq;           /* Interrupt */
+    const char *compatible;     /* Compatible string */
+    const char *name;           /* User-friendly name */
 };
 
 struct serial_port {
diff --git a/xen/include/xen/vuart.h b/xen/include/xen/vuart.h
new file mode 100644
index 000000000000..ca025b4179be
--- /dev/null
+++ b/xen/include/xen/vuart.h
@@ -0,0 +1,116 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * UART emulator framework.
+ *
+ * Copyright 2025 Ford Motor Company
+ */
+
+#ifndef XEN_VUART_H
+#define XEN_VUART_H
+
+#include <xen/serial.h>
+#include <public/xen.h>
+
+struct vuart_emulator;
+
+enum {
+    VUART_CONSOLE_INPUT = 0U << 1, /** Physical console input forwarding. */
+};
+
+
+/*
+ * FIXME: #ifdef is temporary to avoid clash with
+ *   arch/arm/include/asm/domain.h
+ */
+#ifdef CONFIG_VUART_FRAMEWORK
+struct vuart {
+    const struct vuart_emulator *emulator;
+    struct vuart_info *info;
+    struct domain *owner;
+    uint32_t flags;
+    void *vdev;
+};
+#endif
+
+struct vuart_emulator {
+    /* UART compatible string. Cannot be NULL or empty. */
+    const char *compatible;
+
+    /*
+     * Allocate emulated UART state (RX/TX FIFOs, locks, initialize registers,
+     * hook I/O handlers, etc.)
+     * Cannot be NULL.
+     */
+    void *(*alloc)(struct domain *d, const struct vuart_info *info);
+
+    /*
+     * Release resources used to emulate UART state (flush RX/TX FIFOs, unhook
+     * I/O handlers, etc.).
+     * Cannot be NULL.
+     */
+    void (*free)(void *arg);
+
+    /*
+     * Print emulated UART state, including registers, on the console.
+     * Can be NULL.
+     */
+    void (*dump_state)(void *arg);
+
+    /*
+     * Place character to the emulated RX FIFO.
+     * Used to forward physical console input to the guest OS.
+     * Can be NULL.
+     */
+    int (*put_rx)(void *arg, char c);
+};
+
+#define VUART_REGISTER(name, x) \
+    static const struct vuart_emulator name##_entry \
+        __used_section(".data.rel.ro.vuart") = x
+
+struct vuart *vuart_find_by_io_range(struct domain *d,
+                                     unsigned long base_addr,
+                                     unsigned long size);
+
+int vuart_put_rx(struct domain *d, char c);
+
+#ifdef CONFIG_VUART_FRAMEWORK
+
+int vuart_init(struct domain *d, struct vuart_info *info);
+void vuart_deinit(struct domain *d);
+void vuart_dump_state(const struct domain *d);
+bool domain_has_vuart(const struct domain *d);
+
+#else
+
+static inline int vuart_init(struct domain *d, struct vuart_info *info)
+{
+    return 0;
+}
+
+static inline void vuart_deinit(struct domain *d)
+{
+}
+
+static inline void vuart_dump_state(const struct domain *d)
+{
+}
+
+static inline bool domain_has_vuart(const struct domain *d)
+{
+    return false;
+}
+
+#endif /* CONFIG_VUART_FRAMEWORK */
+
+#endif /* XEN_VUART_H */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
+
diff --git a/xen/include/xen/xen.lds.h b/xen/include/xen/xen.lds.h
index b126dfe88792..2d65f32ddad3 100644
--- a/xen/include/xen/xen.lds.h
+++ b/xen/include/xen/xen.lds.h
@@ -194,4 +194,14 @@
 #define VPCI_ARRAY
 #endif
 
+#ifdef CONFIG_VUART_FRAMEWORK
+#define VUART_ARRAY              \
+       . = ALIGN(POINTER_ALIGN); \
+       vuart_array_start = .;    \
+       *(.data.rel.ro.vuart)     \
+       vuart_array_end = .;
+#else
+#define VUART_ARRAY
+#endif
+
 #endif /* __XEN_LDS_H__ */
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 23:54:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 23:54:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100175.1453757 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urmRe-0004Zo-2V; Thu, 28 Aug 2025 23:54:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100175.1453757; Thu, 28 Aug 2025 23:54: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 1urmRd-0004Yb-Tq; Thu, 28 Aug 2025 23:54:17 +0000
Received: by outflank-mailman (input) for mailman id 1100175;
 Thu, 28 Aug 2025 23:54:17 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@xen.org>) id 1urmRd-0004H2-3G
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 23:54:17 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1urmRc-00B9sx-0m;
 Thu, 28 Aug 2025 23:54:16 +0000
Received: from [19.12.91.86] (helo=localhost)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1urmRc-006h8P-0j;
 Thu, 28 Aug 2025 23:54:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:References:
	In-Reply-To:Message-ID:Date:Subject:Cc:To:From;
	bh=kV2+nmwE+JHTTYsZOf5tG0vjn+zAyV6DLLw3E85gpnk=; b=qEtFkzRj0xEqsJKafxfYmU8out
	eIt5cQVo010pHmfUyC8XSgWQAywRt5O/0DcWkzPL6Sf8vn0xmNXcYGn2SWc8eY2+FR+ZboZXbcXVH
	fu2K44bLHptgicWK5LZagP+pPQS68A+eUGe8MaExbJp7Npx9jfDPdMPADgjfyG7eNAmA=;
From: dmukhin@xen.org
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 v5 03/15] emul/ns16x50: implement emulator stub
Date: Thu, 28 Aug 2025 16:53:57 -0700
Message-ID: <20250828235409.2835815-4-dmukhin@ford.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20250828235409.2835815-1-dmukhin@ford.com>
References: <20250828235409.2835815-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Denis Mukhin <dmukhin@ford.com> 

The change is the first on the way on introducing minimally functional
NS16550-compatible UART emulator.

Define UART state and a set of emulated registers.

Implement alloc/free vUART hooks.

Stub out I/O port handler.

Add initialization of the NS16x50-compatible UART emulator state machine.

Plumb debug logging.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v4:
- new patch 
---
 xen/arch/x86/hvm/hvm.c          |  20 ++
 xen/common/emul/vuart/Kconfig   |  18 ++
 xen/common/emul/vuart/Makefile  |   1 +
 xen/common/emul/vuart/ns16x50.c | 362 ++++++++++++++++++++++++++++++++
 xen/include/xen/sched.h         |   4 +
 5 files changed, 405 insertions(+)
 create mode 100644 xen/common/emul/vuart/ns16x50.c

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 23bd7f078a1d..26760cf995df 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -28,6 +28,7 @@
 #include <xen/softirq.h>
 #include <xen/trace.h>
 #include <xen/vm_event.h>
+#include <xen/vuart.h>
 #include <xen/vpci.h>
 #include <xen/wait.h>
 #include <xen/warning.h>
@@ -689,6 +690,21 @@ int hvm_domain_initialise(struct domain *d,
     if ( rc != 0 )
         goto fail1;
 
+    if ( IS_ENABLED(CONFIG_VUART_NS16X50) )
+    {
+        struct vuart_info info = {
+            .name       = "COM2",
+            .compatible = "ns16550",
+            .base_addr  = 0x2f8,
+            .size       = 8,
+            .irq        = 3,
+        };
+
+        rc = vuart_init(d, &info);
+        if ( rc )
+            goto out_vioapic_deinit;
+    }
+
     stdvga_init(d);
 
     rtc_init(d);
@@ -712,6 +728,8 @@ int hvm_domain_initialise(struct domain *d,
     return 0;
 
  fail2:
+    vuart_deinit(d);
+ out_vioapic_deinit:
     vioapic_deinit(d);
  fail1:
     if ( is_hardware_domain(d) )
@@ -774,6 +792,8 @@ void hvm_domain_destroy(struct domain *d)
     if ( hvm_funcs.domain_destroy )
         alternative_vcall(hvm_funcs.domain_destroy, d);
 
+    vuart_deinit(d);
+
     vioapic_deinit(d);
 
     XFREE(d->arch.hvm.pl_time);
diff --git a/xen/common/emul/vuart/Kconfig b/xen/common/emul/vuart/Kconfig
index ce1b976b7da7..539e6d5e4fc7 100644
--- a/xen/common/emul/vuart/Kconfig
+++ b/xen/common/emul/vuart/Kconfig
@@ -3,4 +3,22 @@ config VUART_FRAMEWORK
 
 menu "UART Emulation"
 
+config VUART_NS16X50
+	bool "NS16550-compatible UART Emulator" if EXPERT
+	depends on X86 && HVM
+	select VUART_FRAMEWORK
+	help
+	  In-hypervisor NS16x50 UART emulation.
+
+	  Only legacy PC COM2 port is emulated.
+
+	  This is strictly for testing purposes (such as early HVM guest console),
+	  and not appropriate for use in production.
+
+config VUART_NS16X50_DEBUG
+	bool "NS16550-compatible UART Emulator Debugging"
+	depends on VUART_NS16X50 && DEBUG
+	help
+	  Enable development debugging.
+
 endmenu
diff --git a/xen/common/emul/vuart/Makefile b/xen/common/emul/vuart/Makefile
index 97f792dc6641..fe904f6cb65d 100644
--- a/xen/common/emul/vuart/Makefile
+++ b/xen/common/emul/vuart/Makefile
@@ -1 +1,2 @@
 obj-y += vuart.o
+obj-$(CONFIG_VUART_NS16X50) += ns16x50.o
diff --git a/xen/common/emul/vuart/ns16x50.c b/xen/common/emul/vuart/ns16x50.c
new file mode 100644
index 000000000000..f0479e1022fb
--- /dev/null
+++ b/xen/common/emul/vuart/ns16x50.c
@@ -0,0 +1,362 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * NS16550-compatible UART Emulator.
+ *
+ * See:
+ * - Serial and UART Tutorial:
+ *     https://download.freebsd.org/doc/en/articles/serial-uart/serial-uart_en.pdf
+ * - UART w/ 16 byte FIFO:
+ *     https://www.ti.com/lit/ds/symlink/tl16c550c.pdf
+ * - UART w/ 64 byte FIFO:
+ *     https://www.ti.com/lit/ds/symlink/tl16c750.pdf
+ *
+ * Limitations:
+ * - Only x86;
+ * - Only Xen console as a backend, no inter-domain communication (similar to
+ *   vpl011 on Arm);
+ * - Only 8n1 emulation (8-bit data, no parity, 1 stop bit);
+ * - No baud rate emulation (reports 115200 baud to the guest OS);
+ * - No FIFO-less mode emulation;
+ * - No RX FIFO interrupt moderation (FCR) emulation;
+ * - No integration w/ VM snapshotting (HVM_REGISTER_SAVE_RESTORE() and
+ *   friends);
+ * - No ISA IRQ sharing allowed;
+ * - No MMIO-based UART emulation.
+ */
+
+#define pr_prefix               "ns16x50"
+#define pr_fmt(fmt)             pr_prefix ": " fmt
+
+#ifdef CONFIG_VUART_NS16X50_DEBUG
+#define guest_prefix            "FROM GUEST "
+#define ns16x50_log_level       2
+#else
+#define guest_prefix            ""
+#define ns16x50_log_level       0
+#endif
+
+#include <xen/8250-uart.h>
+#include <xen/console.h>
+#include <xen/err.h>
+#include <xen/iocap.h>
+#include <xen/vuart.h>
+#include <xen/xvmalloc.h>
+
+#include <public/io/console.h>
+
+#define ns16x50_log(n, lvl, vdev, fmt, args...) do { \
+    if ( ns16x50_log_level >= n) \
+        gprintk(lvl, pr_fmt("%s: " fmt), (vdev)->name, ## args); \
+} while (0)
+
+#define ns16x50_err(vdev, fmt, args...) \
+    ns16x50_log(0, KERN_ERR, vdev, fmt, ## args)
+#define ns16x50_warn(vdev, fmt, args...) \
+    ns16x50_log(1, KERN_WARNING, vdev, fmt, ## args)
+#define ns16x50_info(vdev, fmt, args...) \
+    ns16x50_log(2, KERN_INFO, vdev, fmt, ## args)
+#define ns16x50_debug(vdev, fmt, args...) \
+    ns16x50_log(3, KERN_DEBUG, vdev, fmt, ## args)
+
+/*
+ * Number of supported registers in the UART.
+ */
+#define NS16X50_REGS_NUM        (UART_SCR + 1)
+
+/*
+ * Number of emulated registers.
+ *
+ * - Emulated registers [0..NS16X50_REGS_NUM] are R/W registers for DLAB=0.
+ * - DLAB=1, R/W, DLL            = NS16X50_REGS_NUM + 0
+ * - DLAB=1, R/W, DLM            = NS16X50_REGS_NUM + 1
+ * -         R/O, IIR (IIR_THR)  = NS16X50_REGS_NUM + 2
+ */
+#define NS16X50_EMU_REGS_NUM    (NS16X50_REGS_NUM + 3)
+
+/*
+ * Virtual ns16x50 device state.
+ */
+struct vuart_ns16x50 {
+    struct xencons_interface cons;      /* Emulated RX/TX FIFOs */
+    uint8_t regs[NS16X50_EMU_REGS_NUM]; /* Emulated registers */
+    const char *name;                   /* Device name */
+    struct domain *owner;               /* Owner domain */
+    const struct vuart_info *info;      /* UART description */
+    spinlock_t lock;                    /* Protection */
+};
+
+/*
+ * Emulate 8-bit write access to ns16x50 register.
+ */
+static int ns16x50_io_write8(
+    struct vuart_ns16x50 *vdev, uint32_t reg, uint8_t *data)
+{
+    int rc = 0;
+
+    return rc;
+}
+
+/*
+ * Emulate 16-bit write access to ns16x50 register.
+ * NB: some guest OSes use outw() to access UART_DLL.
+ */
+static int ns16x50_io_write16(
+    struct vuart_ns16x50 *vdev, uint32_t reg, uint16_t *data)
+{
+    int rc = -EINVAL;
+
+    return rc;
+}
+
+/*
+ * Emulate write access to ns16x50 register.
+ */
+static int ns16x50_io_write(
+    struct vuart_ns16x50 *vdev, uint8_t reg, uint32_t size, uint32_t *data)
+{
+    int rc;
+
+    switch ( size )
+    {
+    case 1:
+        rc = ns16x50_io_write8(vdev, reg, (uint8_t *)data);
+        break;
+
+    case 2:
+        rc = ns16x50_io_write16(vdev, reg, (uint16_t *)data);
+        break;
+
+    default:
+        rc = -EINVAL;
+        break;
+    }
+
+    return rc;
+}
+
+/*
+ * Emulate 8-bit read access to ns16x50 register.
+ */
+static int ns16x50_io_read8(
+    struct vuart_ns16x50 *vdev, uint32_t reg, uint8_t *data)
+{
+    uint8_t val = 0xff;
+    int rc = 0;
+
+    *data = val;
+
+    return rc;
+}
+
+/*
+ * Emulate 16-bit read access to ns16x50 register.
+ */
+static int ns16x50_io_read16(
+    struct vuart_ns16x50 *vdev, uint32_t reg, uint16_t *data)
+{
+    uint16_t val = 0xffff;
+    int rc = -EINVAL;
+
+    *data = val;
+
+    return rc;
+}
+
+/*
+ * Emulate read access to ns16x50 register.
+ */
+static int ns16x50_io_read(
+    struct vuart_ns16x50 *vdev, uint8_t reg, uint32_t size, uint32_t *data)
+{
+    int rc;
+
+    switch ( size )
+    {
+    case 1:
+        rc = ns16x50_io_read8(vdev, reg, (uint8_t *)data);
+        break;
+
+    case 2:
+        rc = ns16x50_io_read16(vdev, reg, (uint16_t *)data);
+        break;
+
+    default:
+        *data = 0xffffffff;
+        rc = -EINVAL;
+        break;
+    }
+
+    return rc;
+}
+
+/*
+ * Emulate I/O access to ns16x50 register.
+ * Note, emulation always returns X86EMUL_OKAY, once I/O port trap is enabled.
+ */
+static int cf_check ns16x50_io_handle(
+    int dir, unsigned int addr, unsigned int size, uint32_t *data)
+{
+#define op(dir)     (((dir) == IOREQ_WRITE) ? 'W' : 'R')
+    struct domain *d = rcu_lock_current_domain();
+    struct vuart *vuart = vuart_find_by_io_range(d, addr, size);
+    struct vuart_ns16x50 *vdev;
+    const struct domain *owner;
+    const struct vuart_info *info;
+    uint32_t reg;
+    unsigned dlab;
+    int rc;
+
+    if ( !vuart || !vuart->vdev )
+    {
+        printk(KERN_ERR "%c io 0x%04x %d: not initialized\n",
+               op(dir), addr, size);
+
+        ASSERT_UNREACHABLE();
+        goto out;
+    }
+    vdev = vuart->vdev;
+
+    owner = vuart->owner;
+    ASSERT(owner);
+    if ( d != owner )
+    {
+        ns16x50_err(vdev, "%c io 0x%04x %d: does not match current domain %pv\n",
+                    op(dir), addr, size, d);
+
+        ASSERT_UNREACHABLE();
+        goto out;
+    }
+
+    info = vuart->info;
+    ASSERT(info);
+    reg = addr - info->base_addr;
+    if ( !IS_ALIGNED(reg, size) )
+    {
+        ns16x50_err(vdev, "%c 0x%04x %d: unaligned access\n",
+                    op(dir), addr, size);
+        goto out;
+    }
+
+    dlab = 0;
+    if ( reg >= NS16X50_REGS_NUM )
+    {
+        ns16x50_err(vdev, "%c io 0x%04x %d: DLAB=%d %02"PRIx32" 0x%08"PRIx32": not implemented\n",
+                    op(dir), addr, size, dlab, reg, *data);
+        goto out;
+    }
+
+    spin_lock(&vdev->lock);
+
+    if ( dir == IOREQ_WRITE )
+    {
+        ns16x50_debug(vdev, "%c 0x%04x %d: DLAB=%d %02"PRIx32" 0x%08"PRIx32"\n",
+                      op(dir), addr, size, dlab, reg, *data);
+        rc = ns16x50_io_write(vdev, reg, size, data);
+    }
+    else
+    {
+        rc = ns16x50_io_read(vdev, reg, size, data);
+        ns16x50_debug(vdev, "%c 0x%04x %d: DLAB=%d %02"PRIx32" 0x%08"PRIx32"\n",
+                      op(dir), addr, size, dlab, reg, *data);
+    }
+    if ( rc < 0 )
+        ns16x50_err(vdev, "%c 0x%04x %d: DLAB=%d %02"PRIx32" 0x%08"PRIx32": unsupported access\n",
+                    op(dir), addr, size, dlab, reg, *data);
+
+    spin_unlock(&vdev->lock);
+
+out:
+    rcu_unlock_domain(d);
+
+    return X86EMUL_OKAY;
+#undef op
+}
+
+static int ns16x50_init(void *arg)
+{
+    struct vuart_ns16x50 *vdev = arg;
+    const struct vuart_info *info = vdev->info;
+    struct domain *d = vdev->owner;
+
+    ASSERT(vdev);
+
+    register_portio_handler(d, info->base_addr, info->size, ns16x50_io_handle);
+
+    return 0;
+}
+
+static void cf_check ns16x50_deinit(void *arg)
+{
+    struct vuart_ns16x50 *vdev = arg;
+
+    ASSERT(vdev);
+}
+
+static void * cf_check ns16x50_alloc(struct domain *d, const struct vuart_info *info)
+{
+    struct vuart_ns16x50 *vdev;
+    int rc;
+
+    if ( !info )
+        return ERR_PTR(-EINVAL);
+
+    if ( vuart_find_by_io_range(d, info->base_addr, info->size) )
+    {
+        ns16x50_err(info, "already registered\n");
+        return ERR_PTR(-EBUSY);
+    }
+
+    if ( !is_hvm_domain(d) )
+    {
+        ns16x50_err(info, "not an HVM domain\n");
+        return ERR_PTR(-ENOSYS);
+    }
+
+    vdev = xvzalloc(typeof(*vdev));
+    if ( !vdev )
+    {
+        ns16x50_err(info, "failed to allocate memory\n");
+        return ERR_PTR(-ENOMEM);
+    }
+
+    /* Save convenience pointer. */
+    vdev->name = info->name;
+    vdev->owner = d;
+    vdev->info = info;
+
+    rc = ns16x50_init(vdev);
+    if ( rc )
+        return ERR_PTR(rc);
+
+    return vdev;
+}
+
+static void cf_check ns16x50_free(void *arg)
+{
+    struct vuart_ns16x50 *vdev = arg;
+
+    if ( vdev )
+        ns16x50_deinit(vdev);
+
+    XVFREE(vdev);
+}
+
+#define ns16x50_emulator                \
+{                                       \
+    .compatible = "ns16550",            \
+    .alloc      = ns16x50_alloc,        \
+    .free       = ns16x50_free,         \
+    .dump_state = NULL,                 \
+    .put_rx     = NULL,                 \
+}
+
+VUART_REGISTER(ns16x50, ns16x50_emulator);
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 02bdc256ce37..613f4596e33d 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -23,6 +23,7 @@
 #include <asm/atomic.h>
 #include <asm/current.h>
 #include <xen/vpci.h>
+#include <xen/vuart.h>
 #include <xen/wait.h>
 #include <public/xen.h>
 #include <public/domctl.h>
@@ -660,6 +661,9 @@ struct domain
     struct {
         /* Permission to take ownership of the physical console input. */
         bool input_allowed;
+#ifdef CONFIG_VUART_FRAMEWORK
+        struct vuart *vuart;
+#endif
     } console;
 } __aligned(PAGE_SIZE);
 
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 23:54:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 23:54:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100177.1453771 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urmRf-0004sf-Ta; Thu, 28 Aug 2025 23:54:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100177.1453771; Thu, 28 Aug 2025 23: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 1urmRf-0004sE-NW; Thu, 28 Aug 2025 23:54:19 +0000
Received: by outflank-mailman (input) for mailman id 1100177;
 Thu, 28 Aug 2025 23:54:19 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@xen.org>) id 1urmRe-0004nq-W5
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 23:54:18 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1urmRe-00B9tM-18;
 Thu, 28 Aug 2025 23:54:18 +0000
Received: from [19.12.91.86] (helo=localhost)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1urmRe-006h8X-18;
 Thu, 28 Aug 2025 23:54: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:References:
	In-Reply-To:Message-ID:Date:Subject:Cc:To:From;
	bh=TPCph96zzO9YXe+35iYdnOVZAm9KUR1vPBQ9K0k9jWY=; b=zGq2gEMzSVtfjtKavKfr07/a3+
	+IhmnYFZ7T2YRYMvfgupwALTdxfkrkecfMMcvufE8mide2pitFAUc6jM/hqZ0efK6Adu0QAndCU2m
	Mj4MXF32xc9I6bwL25MW8LX+DOqgEiGgt3R8vv4fY9J5kTxi/NA2npdBX0FFL7XbofXw=;
From: dmukhin@xen.org
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 v5 05/15] emul/ns16x50: implement EIR/IIR registers
Date: Thu, 28 Aug 2025 16:53:59 -0700
Message-ID: <20250828235409.2835815-6-dmukhin@ford.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20250828235409.2835815-1-dmukhin@ford.com>
References: <20250828235409.2835815-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Denis Mukhin <dmukhin@ford.com> 

Add interrupt enable register emulation (EIR) and interrupt identity reason
(IIR) register emulation to the I/O port handler.

Also add routines for asserting/deasserting the virtual ns16x50 interrupt
line as a dependent on IIR code.

Poke ns16x50_irq_check() on every I/O register access because the emulator
does not have clock emulation anyway (e.g. for baud rate emulation).

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v4:
- new patch
---
 xen/common/emul/vuart/ns16x50.c | 177 +++++++++++++++++++++++++++++++-
 1 file changed, 176 insertions(+), 1 deletion(-)

diff --git a/xen/common/emul/vuart/ns16x50.c b/xen/common/emul/vuart/ns16x50.c
index f9f307a4ad24..20597cc36b35 100644
--- a/xen/common/emul/vuart/ns16x50.c
+++ b/xen/common/emul/vuart/ns16x50.c
@@ -85,9 +85,131 @@ struct vuart_ns16x50 {
     spinlock_t lock;                    /* Protection */
 };
 
+static bool ns16x50_fifo_rx_empty(const struct vuart_ns16x50 *vdev)
+{
+    const struct xencons_interface *cons = &vdev->cons;
+
+    return cons->in_prod == cons->in_cons;
+}
+
 static inline uint8_t cf_check ns16x50_dlab_get(const struct vuart_ns16x50 *vdev)
 {
-    return 0;
+    return vdev->regs[UART_LCR] & UART_LCR_DLAB ? 1 : 0;
+}
+
+static bool cf_check ns16x50_iir_check_lsi(const struct vuart_ns16x50 *vdev)
+{
+    return vdev->regs[UART_LSR] & UART_LSR_MASK;
+}
+
+static bool cf_check ns16x50_iir_check_rda(const struct vuart_ns16x50 *vdev)
+{
+    return !ns16x50_fifo_rx_empty(vdev);
+}
+
+static bool cf_check ns16x50_iir_check_thr(const struct vuart_ns16x50 *vdev)
+{
+    return vdev->regs[NS16X50_REGS_NUM + UART_IIR] & UART_IIR_THR;
+}
+
+static bool cf_check ns16x50_iir_check_msi(const struct vuart_ns16x50 *vdev)
+{
+    return vdev->regs[UART_MSR] & UART_MSR_CHANGE;
+}
+
+/*
+ * Get the interrupt identity reason.
+ *
+ * IIR is re-calculated once called, because ns16x50 always reports high
+ * priority events first.
+ * regs[NS16X50_REGS_NUM + UART_IIR] is used to store THR reason only.
+ */
+static uint8_t ns16x50_iir_get(const struct vuart_ns16x50 *vdev)
+{
+    /*
+     * Interrupt identity reasons by priority.
+     * NB: high priority are at lower indexes below.
+     */
+    static const struct {
+        bool (*check)(const struct vuart_ns16x50 *vdev);
+        uint8_t ier;
+        uint8_t iir;
+    } iir_by_prio[] = {
+        [0] = { ns16x50_iir_check_lsi, UART_IER_ELSI,   UART_IIR_LSI },
+        [1] = { ns16x50_iir_check_rda, UART_IER_ERDAI,  UART_IIR_RDA },
+        [2] = { ns16x50_iir_check_thr, UART_IER_ETHREI, UART_IIR_THR },
+        [3] = { ns16x50_iir_check_msi, UART_IER_EMSI,   UART_IIR_MSI },
+    };
+    const uint8_t *regs = vdev->regs;
+    uint8_t iir = 0;
+    unsigned int i;
+
+    /*
+     * NB: every interaction w/ ns16x50 registers (except DLAB=1) goes
+     * through that call.
+     */
+    ASSERT(spin_is_locked(&vdev->lock));
+
+    for ( i = 0; i < ARRAY_SIZE(iir_by_prio); i++ )
+    {
+        if ( (regs[UART_IER] & iir_by_prio[i].ier) &&
+             iir_by_prio[i].check(vdev) )
+            break;
+
+    }
+    if ( i == ARRAY_SIZE(iir_by_prio) )
+        iir |= UART_IIR_NOINT;
+    else
+        iir |= iir_by_prio[i].iir;
+
+    if ( regs[UART_FCR] & UART_FCR_ENABLE )
+        iir |= UART_IIR_FE;
+
+    return iir;
+}
+
+static void ns16x50_irq_assert(const struct vuart_ns16x50 *vdev)
+{
+    struct domain *d = vdev->owner;
+    const struct vuart_info *info = vdev->info;
+    int vector;
+
+    if ( has_vpic(d) ) /* HVM */
+        vector = hvm_isa_irq_assert(d, info->irq, vioapic_get_vector);
+    else
+        ASSERT_UNREACHABLE();
+
+    ns16x50_debug(vdev, "IRQ#%d vector %d assert\n", info->irq, vector);
+}
+
+static void ns16x50_irq_deassert(const struct vuart_ns16x50 *vdev)
+{
+    struct domain *d = vdev->owner;
+    const struct vuart_info *info = vdev->info;
+
+    if ( has_vpic(d) ) /* HVM */
+        hvm_isa_irq_deassert(d, info->irq);
+    else
+        ASSERT_UNREACHABLE();
+
+    ns16x50_debug(vdev, "IRQ#%d deassert\n", info->irq);
+}
+
+/*
+ * Assert/deassert virtual ns16x50 interrupt line.
+ */
+static void ns16x50_irq_check(const struct vuart_ns16x50 *vdev)
+{
+    uint8_t iir = ns16x50_iir_get(vdev);
+    const struct vuart_info *info = vdev->info;
+
+    if ( iir & UART_IIR_NOINT )
+        ns16x50_irq_assert(vdev);
+    else
+        ns16x50_irq_deassert(vdev);
+
+    ns16x50_debug(vdev, "IRQ#%d IIR 0x%02x %s\n", info->irq, iir,
+                  (iir & UART_IIR_NOINT) ? "deassert" : "assert");
 }
 
 /*
@@ -102,6 +224,29 @@ static int ns16x50_io_write8(
 
     if ( ns16x50_dlab_get(vdev) && (reg == UART_DLL || reg == UART_DLM) )
         regs[NS16X50_REGS_NUM + reg] = val;
+    else
+    {
+        switch ( reg )
+        {
+        case UART_IER:
+            /*
+             * NB: Make sure THR interrupt is re-triggered once guest OS
+             * re-enabled ETHREI in EIR.
+             */
+            if ( val & regs[UART_IER] & UART_IER_ETHREI )
+                regs[NS16X50_REGS_NUM + UART_IIR] |= UART_IIR_THR;
+
+            regs[UART_IER] = val & UART_IER_MASK;
+
+            break;
+
+        default:
+            rc = -EINVAL;
+            break;
+        }
+
+        ns16x50_irq_check(vdev);
+    }
 
     return rc;
 }
@@ -164,6 +309,29 @@ static int ns16x50_io_read8(
 
     if ( ns16x50_dlab_get(vdev) && (reg == UART_DLL || reg == UART_DLM) )
         val = regs[NS16X50_REGS_NUM + reg];
+    else {
+        switch ( reg )
+        {
+        case UART_IER:
+            val = regs[UART_IER];
+            break;
+
+        case UART_IIR: /* RO */
+            val = ns16x50_iir_get(vdev);
+
+            /* NB: clear IIR scratch location */
+            if ( val & UART_IIR_THR )
+                regs[NS16X50_REGS_NUM + UART_IIR] &= ~UART_IIR_THR;
+
+            break;
+
+        default:
+            rc = -EINVAL;
+            break;
+        }
+
+        ns16x50_irq_check(vdev);
+    }
 
     *data = val;
 
@@ -314,8 +482,15 @@ static int ns16x50_init(void *arg)
     vdev->regs[NS16X50_REGS_NUM + UART_DLL] = divisor & 0xff;
     vdev->regs[NS16X50_REGS_NUM + UART_DLM] = (divisor >> 8) & 0xff;
 
+    /* ns16x50 shall assert UART_IIR_THR whenever transmitter is empty. */
+    vdev->regs[NS16X50_REGS_NUM + UART_IIR] = UART_IIR_THR;
+
     register_portio_handler(d, info->base_addr, info->size, ns16x50_io_handle);
 
+    spin_lock(&vdev->lock);
+    ns16x50_irq_check(vdev);
+    spin_unlock(&vdev->lock);
+
     return 0;
 }
 
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 23:54:19 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 23:54:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100176.1453767 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urmRf-0004q7-Hz; Thu, 28 Aug 2025 23:54:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100176.1453767; Thu, 28 Aug 2025 23: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 1urmRf-0004ps-Dz; Thu, 28 Aug 2025 23:54:19 +0000
Received: by outflank-mailman (input) for mailman id 1100176;
 Thu, 28 Aug 2025 23:54:17 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@xen.org>) id 1urmRd-0004YW-Qn
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 23:54:17 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1urmRd-00B9tB-10;
 Thu, 28 Aug 2025 23:54:17 +0000
Received: from [19.12.91.86] (helo=localhost)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1urmRd-006h8T-0w;
 Thu, 28 Aug 2025 23:54:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:References:
	In-Reply-To:Message-ID:Date:Subject:Cc:To:From;
	bh=q+he8jaHBIjbD+9QqSf5FgcmIDrC1ZycrhsuDoL3FxQ=; b=AG7aziCTfiGxQWQDFCMvMNfjEB
	MZfEATnT1aeu+2vq5b2FWDw7BjFv0Rsyib4suvcquzS1l7b68vAUbxWXw65KAoe4fUzsalV4QTXwm
	dqUc/Y4zC/3CUn0pETjqnIwojp5YfmplsMPyLhwViiZQ2PbW5Z4HAqvudmsXpNnUUl/A=;
From: dmukhin@xen.org
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 v5 04/15] emul/ns16x50: implement DLL/DLM registers
Date: Thu, 28 Aug 2025 16:53:58 -0700
Message-ID: <20250828235409.2835815-5-dmukhin@ford.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20250828235409.2835815-1-dmukhin@ford.com>
References: <20250828235409.2835815-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Denis Mukhin <dmukhin@ford.com> 

Add DLL/DLM registers emulation.

DLL/DLM registers report hardcoded 115200 baud rate to the guest OS.

Add stub for ns16x50_dlab_get() helper.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v4:
- new patch
---
 xen/common/emul/vuart/ns16x50.c | 36 ++++++++++++++++++++++++++++++++-
 1 file changed, 35 insertions(+), 1 deletion(-)

diff --git a/xen/common/emul/vuart/ns16x50.c b/xen/common/emul/vuart/ns16x50.c
index f0479e1022fb..f9f307a4ad24 100644
--- a/xen/common/emul/vuart/ns16x50.c
+++ b/xen/common/emul/vuart/ns16x50.c
@@ -85,14 +85,24 @@ struct vuart_ns16x50 {
     spinlock_t lock;                    /* Protection */
 };
 
+static inline uint8_t cf_check ns16x50_dlab_get(const struct vuart_ns16x50 *vdev)
+{
+    return 0;
+}
+
 /*
  * Emulate 8-bit write access to ns16x50 register.
  */
 static int ns16x50_io_write8(
     struct vuart_ns16x50 *vdev, uint32_t reg, uint8_t *data)
 {
+    uint8_t *regs = vdev->regs;
+    uint8_t val = *data;
     int rc = 0;
 
+    if ( ns16x50_dlab_get(vdev) && (reg == UART_DLL || reg == UART_DLM) )
+        regs[NS16X50_REGS_NUM + reg] = val;
+
     return rc;
 }
 
@@ -103,8 +113,16 @@ static int ns16x50_io_write8(
 static int ns16x50_io_write16(
     struct vuart_ns16x50 *vdev, uint32_t reg, uint16_t *data)
 {
+    uint16_t val = *data;
     int rc = -EINVAL;
 
+    if ( ns16x50_dlab_get(vdev) && reg == UART_DLL )
+    {
+        vdev->regs[NS16X50_REGS_NUM + UART_DLL] = val & 0xff;
+        vdev->regs[NS16X50_REGS_NUM + UART_DLM] = (val >> 8) & 0xff;
+        rc = 0;
+    }
+
     return rc;
 }
 
@@ -140,9 +158,13 @@ static int ns16x50_io_write(
 static int ns16x50_io_read8(
     struct vuart_ns16x50 *vdev, uint32_t reg, uint8_t *data)
 {
+    uint8_t *regs = vdev->regs;
     uint8_t val = 0xff;
     int rc = 0;
 
+    if ( ns16x50_dlab_get(vdev) && (reg == UART_DLL || reg == UART_DLM) )
+        val = regs[NS16X50_REGS_NUM + reg];
+
     *data = val;
 
     return rc;
@@ -157,6 +179,13 @@ static int ns16x50_io_read16(
     uint16_t val = 0xffff;
     int rc = -EINVAL;
 
+    if ( ns16x50_dlab_get(vdev) && reg == UART_DLL )
+    {
+        val = vdev->regs[NS16X50_REGS_NUM + UART_DLM] << 8 |
+              vdev->regs[NS16X50_REGS_NUM + UART_DLL];
+        rc = 0;
+    }
+
     *data = val;
 
     return rc;
@@ -237,7 +266,7 @@ static int cf_check ns16x50_io_handle(
         goto out;
     }
 
-    dlab = 0;
+    dlab = ns16x50_dlab_get(vdev);
     if ( reg >= NS16X50_REGS_NUM )
     {
         ns16x50_err(vdev, "%c io 0x%04x %d: DLAB=%d %02"PRIx32" 0x%08"PRIx32": not implemented\n",
@@ -274,12 +303,17 @@ out:
 
 static int ns16x50_init(void *arg)
 {
+    const uint16_t divisor = (UART_CLOCK_HZ / 115200) >> 4;
     struct vuart_ns16x50 *vdev = arg;
     const struct vuart_info *info = vdev->info;
     struct domain *d = vdev->owner;
 
     ASSERT(vdev);
 
+    /* NB: report 115200 baud rate. */
+    vdev->regs[NS16X50_REGS_NUM + UART_DLL] = divisor & 0xff;
+    vdev->regs[NS16X50_REGS_NUM + UART_DLM] = (divisor >> 8) & 0xff;
+
     register_portio_handler(d, info->base_addr, info->size, ns16x50_io_handle);
 
     return 0;
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 23:54:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 23:54:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100172.1453726 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urmRc-0003uk-50; Thu, 28 Aug 2025 23:54:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100172.1453726; Thu, 28 Aug 2025 23:54: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 1urmRc-0003ud-2M; Thu, 28 Aug 2025 23:54:16 +0000
Received: by outflank-mailman (input) for mailman id 1100172;
 Thu, 28 Aug 2025 23:54:14 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@xen.org>) id 1urmRa-0003uL-7V
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 23:54:14 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1urmRZ-00B9sa-0h;
 Thu, 28 Aug 2025 23:54:13 +0000
Received: from [19.12.91.86] (helo=localhost)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1urmRZ-006h88-0E;
 Thu, 28 Aug 2025 23:54: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:Message-ID:Date:
	Subject:Cc:To:From; bh=vMiqTefwLBEzmpBm+smF4h4UNJmz6B7L3jkGtfnO3fw=; b=UOPx2K
	uq0ldjhCsqBP+sbC3Dhu0MnOPjbLb9mIrHWsRIObRRPmJUJTz1BBZJ8wNfQn5/VdHNskEd0SYEkn4
	6PcEU30z7HdXC6jLX20rbBHjan7fEtP5+4MC5tOrjvwUsAsyrkof9FFuKep9jWVqp4QhTrGzgP4MV
	KKHOuNOcrcE=;
From: dmukhin@xen.org
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 v5 00/15] x86: introduce NS16550-compatible UART emulator
Date: Thu, 28 Aug 2025 16:53:54 -0700
Message-ID: <20250828235409.2835815-1-dmukhin@ford.com>
X-Mailer: git-send-email 2.51.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

x86 port of Xen lacks vUART facility similar to Arm's vpl011 to support x86
guest OS bring up in the embedded setups.

This patch series introduces initial in-hypervisor emulator for
NS8250/NS16x50-compatible UARTs under CONFIG_VUART_NS16X50.

In parallel domain creation scenario (hyperlaunch), NS16550 emulator helps
early guest firmware and OS bringup debugging, because it eliminates
dependency on the external emulator (qemu) being operational by the time
domains are created.

The emulator also allows to forward the physical console input to the x86
domain which is useful when a system has only one physical UART for early
debugging and this UART is owned by Xen.

By default, CONFIG_VUART_NS16X50 enables emulation of NS16550 at I/O port
0x2f8, IRQ#3 in guest OS (legacy COM2). Legacy COM resources cannot be
selected at built-time or via per-domain xl configuration in this initial
submission.

CONFIG_VUART_NS16X50_DEBUG enables some extra debugging facilities useful
for NS16550 emulator development/debugging (disabled by default).

The NS16550 emulator is disabled in default x86 configuration and goes under
CONFIG_EXPERT in Kconfig.

Limitations
===========
- Only x86;
- Only HVM domains support (build-time), PVH domains are not supported yet;
- Only legacy COM{1,2,3,4} resources via Kconfig, custom I/O ports/IRQs
  are not supported;
- Only Xen console as a backend, no inter-domain communication (similar to
  vpl011 on Arm);
- Only 8n1 emulation (8-bit data, no parity, 1 stop bit);
- No toolstack integration;
- No baud rate emulation (reports 115200 baud to the guest OS);
- No FIFO-less mode emulation;
- No RX FIFO interrupt moderation (FCR) emulation;
- No integration w/ VM snapshotting (HVM_REGISTER_SAVE_RESTORE() and
  friends);
- No ISA IRQ sharing allowed;
- No MMIO-based UART emulation.

Series
======

  Patch 1 introduces the new vUART framework, that is the code originally
  posted here:
    https://lore.kernel.org/xen-devel/20250624035443.344099-16-dmukhin@ford.com/
  Required for emulator.

  Patch 2 adds missing NS16550 definitions, required for emulator.

  Patch 3 introduces the basic emulator skeleton - state machine
  initialization stubs, I/O port handler stub, logging, etc.

  Patches 4-10 incrementally populate the minimal NS16550 register emulation.

  Patch 11 hooks vUART to console driver and enables physical console intput
  forwarding.

  Patch 12 hooks vUART state debugging (disabled by default).

  Pathes 13-15 introduce necessary changes to enable NS16550 on dom0 (and PVH).

Link to CI: https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelines/2009685553
Link to branch: https://gitlab.com/xen-project/people/dmukhin/xen/-/tree/vuart-ns8250-v5?ref_type=heads

Testing
=======

  ```shell
  echo CONFIG_EXPERT=y >> .config
  echo CONFIG_VUART_NS16X50=y >> .config
  make olddefconfig
  ```
  COM2 (0x2f8) resources are used by default.

  To test w/ virtual COM2, the guest kernel parameters should contain
  something like the following:
    earlycon=uart,io,0x2f8,115200n8 console=uart,io,0x2f8,115200n8

  HVM
  ---
  Tested only boot of HVM linux guest with OVMF as the virtual firmware.
  SeaBIOS as a virtual firmware is not tested.

  PVH (dom0)
  ----------
  Xen is able to forward physical console input to the domain with virtual
  NS16550. To switch the console focus press Ctrl+aaa.
  Switch is limited on x86 to dom0 and Xen (fixes pending).
  With COM2, Linux kernel complains nobody cared about IRQ#3. Likely that's
  because guest DSDT needs patching, which is a follow on change, but not
  critical for demonstration; the code is disabled in default config.

Changes since v4:
- Split the series to make it simpler to review.
- Addressed feedback from v4.
- Dropped xl changes, which I will submit separately.
- Link to v4: https://lore.kernel.org/xen-devel/20250731192130.3948419-1-dmukhin@ford.com/

Changes since v3:
- Reduced the blast radius of the series, thanks to reviews, individual
  aspects (like console focus) touched in v3 moved to separate threads.
- Kept the UART emulator framework since I need to redo some of emulator code
  and there's more-or-less agreement on it (where to place, naming, scope).
- Applied the feedback from
    https://lore.kernel.org/xen-devel/20250624035443.344099-1-dmukhin@ford.com/
- Link to v3: https://lore.kernel.org/xen-devel/20250103-vuart-ns8250-v3-v1-0-c5d36b31d66c@ford.com/

Changes since v2:
- renamed emulator s/NS8250/NS16550/g
- reduced the patch series after addressing v2 feedback
- introduced driver framework for UART emulators
- unified guest OS printouts across all available UART emulators
- Link to v2: https://lore.kernel.org/xen-devel/20241205-vuart-ns8250-v1-0-e9aa923127eb@ford.com/

Changes since v1:
- dropped kmalloc/kfree aliases
- fixed ECLAIR jobs (thanks Andrew Cooper)
- addressed console forwarding on arm32 and arm64 (thanks to Luca Fancellu)
- moved NS8250 debugging stubs into its own patch
- added fix for https://gitlab.com/xen-project/xen/-/issues/184
- Link to v1: https://lore.kernel.org/r/20241126-vuart-ns8250-v1-v1-0-87b9a8375b7a@ford.com

Denis Mukhin (15):
  emul/vuart: introduce framework for UART emulators
  xen/8250-uart: update definitions
  emul/ns16x50: implement emulator stub
  emul/ns16x50: implement DLL/DLM registers
  emul/ns16x50: implement EIR/IIR registers
  emul/ns16x50: implement THR/RBR registers
  emul/ns16x50: implement FCR register (write-only)
  emul/ns16x50: implement LCR/LSR registers
  emul/ns16x50: implement MCR/MSR registers
  emul/ns16x50: implement SCR register
  emul/ns16x50: implement put_rx() hook
  emul/ns16550: implement dump_state() hook
  x86/domain: enable per-domain I/O port bitmaps
  xen/domain: allocate d->irq_caps before arch-specific initialization
  emul/ns16x50: implement IRQ emulation via vIOAPIC

 xen/arch/arm/xen.lds.S                   |   1 +
 xen/arch/ppc/xen.lds.S                   |   1 +
 xen/arch/riscv/xen.lds.S                 |   1 +
 xen/arch/x86/Makefile                    |   1 +
 xen/arch/x86/dom0_build.c                | 112 +--
 xen/arch/x86/domain.c                    |   2 +-
 xen/arch/x86/hvm/dom0_build.c            |   7 +
 xen/arch/x86/hvm/hvm.c                   |  55 +-
 xen/arch/x86/hvm/nestedhvm.c             |   8 +-
 xen/arch/x86/hvm/quirks.c                |   3 -
 xen/arch/x86/hvm/svm/nestedsvm.c         |   2 +-
 xen/arch/x86/hvm/vioapic.c               |  10 +
 xen/arch/x86/hvm/vmx/vvmx.c              |   4 +-
 xen/arch/x86/include/asm/hvm/nestedhvm.h |   3 +-
 xen/arch/x86/include/asm/hvm/support.h   |   2 -
 xen/arch/x86/include/asm/iocap.h         |   2 +
 xen/arch/x86/include/asm/irq.h           |   5 +-
 xen/arch/x86/ioport.c                    | 163 ++++
 xen/arch/x86/irq.c                       |  12 +-
 xen/arch/x86/physdev.c                   |   8 +-
 xen/arch/x86/pv/dom0_build.c             |   7 +
 xen/arch/x86/xen.lds.S                   |   1 +
 xen/common/Kconfig                       |   2 +
 xen/common/Makefile                      |   1 +
 xen/common/domain.c                      |   8 +-
 xen/common/emul/Kconfig                  |   6 +
 xen/common/emul/Makefile                 |   1 +
 xen/common/emul/vuart/Kconfig            |  24 +
 xen/common/emul/vuart/Makefile           |   2 +
 xen/common/emul/vuart/ns16x50.c          | 976 +++++++++++++++++++++++
 xen/common/emul/vuart/vuart.c            | 156 ++++
 xen/common/keyhandler.c                  |   3 +
 xen/drivers/char/console.c               |   6 +-
 xen/drivers/char/ns16550.c               |  16 +-
 xen/drivers/passthrough/x86/hvm.c        |  13 +-
 xen/include/xen/8250-uart.h              |  50 +-
 xen/include/xen/sched.h                  |   4 +
 xen/include/xen/serial.h                 |   3 +
 xen/include/xen/vuart.h                  | 116 +++
 xen/include/xen/xen.lds.h                |  10 +
 40 files changed, 1624 insertions(+), 183 deletions(-)
 create mode 100644 xen/arch/x86/ioport.c
 create mode 100644 xen/common/emul/Kconfig
 create mode 100644 xen/common/emul/Makefile
 create mode 100644 xen/common/emul/vuart/Kconfig
 create mode 100644 xen/common/emul/vuart/Makefile
 create mode 100644 xen/common/emul/vuart/ns16x50.c
 create mode 100644 xen/common/emul/vuart/vuart.c
 create mode 100644 xen/include/xen/vuart.h

-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 23:54:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 23:54:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100178.1453785 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urmRh-0005FW-8D; Thu, 28 Aug 2025 23:54:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100178.1453785; Thu, 28 Aug 2025 23:54: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 1urmRh-0005Es-2E; Thu, 28 Aug 2025 23:54:21 +0000
Received: by outflank-mailman (input) for mailman id 1100178;
 Thu, 28 Aug 2025 23:54:20 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@xen.org>) id 1urmRf-0004tl-SQ
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 23:54:19 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1urmRf-00B9ta-1P;
 Thu, 28 Aug 2025 23:54:19 +0000
Received: from [19.12.91.86] (helo=localhost)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1urmRf-006h8b-1L;
 Thu, 28 Aug 2025 23:54: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:References:
	In-Reply-To:Message-ID:Date:Subject:Cc:To:From;
	bh=O38Uk+zJS9Rhc5rqzUTb4AWzTER9hWI5fpYyEBOAJ5A=; b=i2wo1RwkqRdPFXHyC8RmxVISX6
	ec3XbvmqE8K0RlUAY4EWaANKojueqnQnHoNPh1Cqx96d1hhkdgRIQgJ+cHILuVXFX5+sS279g8Q2W
	w/UBy2Glht0IUeg4bnp6dsipHriXQekBgzzLhfkrKGsKQcwQSI7EqosrBjJYneT6h8Os=;
From: dmukhin@xen.org
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 v5 06/15] emul/ns16x50: implement THR/RBR registers
Date: Thu, 28 Aug 2025 16:54:00 -0700
Message-ID: <20250828235409.2835815-7-dmukhin@ford.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20250828235409.2835815-1-dmukhin@ford.com>
References: <20250828235409.2835815-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Denis Mukhin <dmukhin@ford.com> 

Add RBR/THR registers emulation to the I/O port handlder.

Also, add RX/TX FIFO management code since RBR depends on RX FIFO and
THR depends on TX FIFO.

FIFOs are not emulated as per UART specs for simplicity (not need to emulate
baud rate). Emulator does not emulate NS8250 (no FIFO), NS16550a (16 bytes) or
NS16750 (64 bytes).

FIFOs are emulated by means of using xencons_interface which conveniently
provides primitives for buffer management and later can be used for
inter-domain communication similarly to vpl011.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v4:
- new patch
---
 xen/common/emul/vuart/ns16x50.c | 135 ++++++++++++++++++++++++++++++++
 1 file changed, 135 insertions(+)

diff --git a/xen/common/emul/vuart/ns16x50.c b/xen/common/emul/vuart/ns16x50.c
index 20597cc36b35..efb2f4c6441c 100644
--- a/xen/common/emul/vuart/ns16x50.c
+++ b/xen/common/emul/vuart/ns16x50.c
@@ -92,6 +92,119 @@ static bool ns16x50_fifo_rx_empty(const struct vuart_ns16x50 *vdev)
     return cons->in_prod == cons->in_cons;
 }
 
+static bool ns16x50_fifo_rx_full(const struct vuart_ns16x50 *vdev)
+{
+    const struct xencons_interface *cons = &vdev->cons;
+
+    return cons->in_prod - cons->in_cons == ARRAY_SIZE(cons->in);
+}
+
+static void ns16x50_fifo_rx_reset(struct vuart_ns16x50 *vdev)
+{
+    struct xencons_interface *cons = &vdev->cons;
+
+    cons->in_cons = cons->in_prod;
+}
+
+static int ns16x50_fifo_rx_getchar(struct vuart_ns16x50 *vdev)
+{
+    struct xencons_interface *cons = &vdev->cons;
+    int rc;
+
+    if ( ns16x50_fifo_rx_empty(vdev) )
+    {
+        ns16x50_debug(vdev, "RX FIFO empty\n");
+        rc = -ENODATA;
+    }
+    else
+    {
+        rc = cons->in[MASK_XENCONS_IDX(cons->in_cons, cons->in)];
+        cons->in_cons++;
+    }
+
+    return rc;
+}
+
+static int ns16x50_fifo_rx_putchar(struct vuart_ns16x50 *vdev, char c)
+{
+    struct xencons_interface *cons = &vdev->cons;
+    int rc;
+
+    /*
+     * FIFO-less 8250/16450 UARTs: newly arrived word overwrites the contents
+     * of the THR.
+     */
+    if ( ns16x50_fifo_rx_full(vdev) )
+    {
+        ns16x50_debug(vdev, "RX FIFO full; resetting\n");
+        ns16x50_fifo_rx_reset(vdev);
+        rc = -ENOSPC;
+    }
+    else
+        rc = 0;
+
+    cons->in[MASK_XENCONS_IDX(cons->in_prod, cons->in)] = c;
+    cons->in_prod++;
+
+    return rc;
+}
+
+static bool ns16x50_fifo_tx_empty(const struct vuart_ns16x50 *vdev)
+{
+    const struct xencons_interface *cons = &vdev->cons;
+
+    return cons->out_prod == cons->out_cons;
+}
+
+static void ns16x50_fifo_tx_reset(struct vuart_ns16x50 *vdev)
+{
+    struct xencons_interface *cons = &vdev->cons;
+
+    cons->out_prod = 0;
+    ASSERT(cons->out_cons == cons->out_prod);
+}
+
+/*
+ * Flush cached output to Xen console.
+ */
+static void ns16x50_fifo_tx_flush(struct vuart_ns16x50 *vdev)
+{
+    struct xencons_interface *cons = &vdev->cons;
+    struct domain *d = vdev->owner;
+
+    if ( ns16x50_fifo_tx_empty(vdev) )
+        return;
+
+    ASSERT(cons->out_prod < ARRAY_SIZE(cons->out));
+    cons->out[cons->out_prod] = '\0';
+    cons->out_prod++;
+
+    guest_printk(d, guest_prefix "%s", cons->out);
+
+    ns16x50_fifo_tx_reset(vdev);
+}
+
+/*
+ * Accumulate guest OS output before sending to Xen console.
+ */
+static void ns16x50_fifo_tx_putchar(struct vuart_ns16x50 *vdev, char ch)
+{
+    struct xencons_interface *cons = &vdev->cons;
+
+    if ( !is_console_printable(ch) )
+        return;
+
+    if ( ch != '\0' )
+    {
+        cons->out[cons->out_prod] = ch;
+        cons->out_prod++;
+    }
+
+    if ( cons->out_prod == ARRAY_SIZE(cons->out) - 1 ||
+         ch == '\n' || ch == '\0' )
+        ns16x50_fifo_tx_flush(vdev);
+}
+
 static inline uint8_t cf_check ns16x50_dlab_get(const struct vuart_ns16x50 *vdev)
 {
     return vdev->regs[UART_LCR] & UART_LCR_DLAB ? 1 : 0;
@@ -228,6 +341,16 @@ static int ns16x50_io_write8(
     {
         switch ( reg )
         {
+        case UART_THR:
+            if ( regs[UART_MCR] & UART_MCR_LOOP )
+                rc = ns16x50_fifo_rx_putchar(vdev, val);
+            else
+                ns16x50_fifo_tx_putchar(vdev, val);
+
+            rc = 0;
+
+            break;
+
         case UART_IER:
             /*
              * NB: Make sure THR interrupt is re-triggered once guest OS
@@ -312,6 +435,14 @@ static int ns16x50_io_read8(
     else {
         switch ( reg )
         {
+        case UART_RBR:
+            rc = ns16x50_fifo_rx_getchar(vdev);
+            if ( rc >= 0 )
+                val = (uint8_t)rc;
+
+            rc = 0;
+            break;
+
         case UART_IER:
             val = regs[UART_IER];
             break;
@@ -499,6 +630,10 @@ static void cf_check ns16x50_deinit(void *arg)
     struct vuart_ns16x50 *vdev = arg;
 
     ASSERT(vdev);
+
+    spin_lock(&vdev->lock);
+    ns16x50_fifo_tx_flush(vdev);
+    spin_unlock(&vdev->lock);
 }
 
 static void * cf_check ns16x50_alloc(struct domain *d, const struct vuart_info *info)
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 23:54:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 23:54:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100179.1453796 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urmRi-0005aH-H7; Thu, 28 Aug 2025 23:54:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100179.1453796; Thu, 28 Aug 2025 23:54: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 1urmRi-0005ZM-CQ; Thu, 28 Aug 2025 23:54:22 +0000
Received: by outflank-mailman (input) for mailman id 1100179;
 Thu, 28 Aug 2025 23:54:21 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@xen.org>) id 1urmRh-0005Hr-9z
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 23:54:21 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1urmRg-00B9tp-1W;
 Thu, 28 Aug 2025 23:54:20 +0000
Received: from [19.12.91.86] (helo=localhost)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1urmRg-006h8f-1W;
 Thu, 28 Aug 2025 23:54:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:References:
	In-Reply-To:Message-ID:Date:Subject:Cc:To:From;
	bh=0Z4aoKd8azAcWKj2wK4QZPV/Vhzat9Cv97B7YdCWD3U=; b=eXjBgWzrVW14JNMT6B8gaC1wDT
	Omeqq1isWnIWwW4/CnK74gFSubvqZ8y7e73t70twrt9AuzWdZiGWBCDotndvlZYXW3vSIrF2X+zQN
	OJp8XuI5HWrSUUU/iwkYYIreVjFVYhO7nHpMQUy5UMnUPCzr6oS3wMAYUDsiX0dIfQ1A=;
From: dmukhin@xen.org
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 v5 07/15] emul/ns16x50: implement FCR register (write-only)
Date: Thu, 28 Aug 2025 16:54:01 -0700
Message-ID: <20250828235409.2835815-8-dmukhin@ford.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20250828235409.2835815-1-dmukhin@ford.com>
References: <20250828235409.2835815-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Denis Mukhin <dmukhin@ford.com> 

Add emulation logic for FCR register.

Note, that does not hooks FIFO interrupt moderation to the FIFO management
code.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v4:
- new patch
---
 xen/common/emul/vuart/ns16x50.c | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/xen/common/emul/vuart/ns16x50.c b/xen/common/emul/vuart/ns16x50.c
index efb2f4c6441c..65ca96dd8bd3 100644
--- a/xen/common/emul/vuart/ns16x50.c
+++ b/xen/common/emul/vuart/ns16x50.c
@@ -363,6 +363,30 @@ static int ns16x50_io_write8(
 
             break;
 
+        case UART_FCR: /* WO */
+            if ( val & UART_FCR_RESERVED0 )
+                ns16x50_warn(vdev, "FCR: attempt to set reserved bit: %x\n",
+                             UART_FCR_RESERVED0);
+
+            if ( val & UART_FCR_RESERVED1 )
+                ns16x50_warn(vdev, "FCR: attempt to set reserved bit: %x\n",
+                             UART_FCR_RESERVED1);
+
+            if ( val & UART_FCR_CLRX )
+                ns16x50_fifo_rx_reset(vdev);
+
+            if ( val & UART_FCR_CLTX )
+                ns16x50_fifo_tx_flush(vdev);
+
+            if ( val & UART_FCR_ENABLE )
+                val &= UART_FCR_ENABLE | UART_FCR_DMA | UART_FCR_TRG_MASK;
+            else
+                val = 0;
+
+            regs[UART_FCR] = val;
+
+            break;
+
         default:
             rc = -EINVAL;
             break;
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 23:54:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 23:54:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100180.1453806 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urmRj-0005sv-UH; Thu, 28 Aug 2025 23:54:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100180.1453806; Thu, 28 Aug 2025 23:54: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 1urmRj-0005sI-NB; Thu, 28 Aug 2025 23:54:23 +0000
Received: by outflank-mailman (input) for mailman id 1100180;
 Thu, 28 Aug 2025 23:54:22 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@xen.org>) id 1urmRi-0005Wl-41
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 23:54:22 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1urmRh-00B9u0-1i;
 Thu, 28 Aug 2025 23:54:21 +0000
Received: from [19.12.91.86] (helo=localhost)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1urmRh-006h8p-1i;
 Thu, 28 Aug 2025 23:54: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:References:
	In-Reply-To:Message-ID:Date:Subject:Cc:To:From;
	bh=URrCdASjRQ9Vdlu6Z9QVQa30dc5DA0baY3L6/nvVCms=; b=KcRT2ecfpvFix6byPMbgJM5kc0
	WVDwtP0I/3gVUsFeCY2nqxwC+X9amXlJCmQqHAjtbwJDKqGBjT2Z7SwHIUUtCLhRig4Ye37m19YnC
	55xx21uHLNSnMqJLOgbWNsSUjys/kdbuTtsKfO1YZZOpp285xVPodCAcA4dwNzqdNUc4=;
From: dmukhin@xen.org
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 v5 08/15] emul/ns16x50: implement LCR/LSR registers
Date: Thu, 28 Aug 2025 16:54:02 -0700
Message-ID: <20250828235409.2835815-9-dmukhin@ford.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20250828235409.2835815-1-dmukhin@ford.com>
References: <20250828235409.2835815-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Denis Mukhin <dmukhin@ford.com> 

Add LCR/LSR registers implementation to the I/O port handler.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v4:
- new patch
---
 xen/common/emul/vuart/ns16x50.c | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/xen/common/emul/vuart/ns16x50.c b/xen/common/emul/vuart/ns16x50.c
index 65ca96dd8bd3..687a7ea2fabe 100644
--- a/xen/common/emul/vuart/ns16x50.c
+++ b/xen/common/emul/vuart/ns16x50.c
@@ -347,6 +347,9 @@ static int ns16x50_io_write8(
             else
                 ns16x50_fifo_tx_putchar(vdev, val);
 
+            if ( rc == -ENOSPC )
+                regs[UART_LSR] |= UART_LSR_OE;
+
             rc = 0;
 
             break;
@@ -387,6 +390,11 @@ static int ns16x50_io_write8(
 
             break;
 
+        case UART_LCR:
+            regs[UART_LCR] = val;
+            break;
+
+        case UART_LSR: /* RO */
         default:
             rc = -EINVAL;
             break;
@@ -460,6 +468,9 @@ static int ns16x50_io_read8(
         switch ( reg )
         {
         case UART_RBR:
+            /* NB: do not forget to clear overrun condition */
+            regs[UART_LSR] &= ~UART_LSR_OE;
+
             rc = ns16x50_fifo_rx_getchar(vdev);
             if ( rc >= 0 )
                 val = (uint8_t)rc;
@@ -480,6 +491,21 @@ static int ns16x50_io_read8(
 
             break;
 
+        case UART_LCR:
+            val = regs[UART_LCR];
+            break;
+
+        case UART_LSR:
+            val = regs[UART_LSR] | UART_LSR_THRE | UART_LSR_TEMT;
+            if ( ns16x50_fifo_rx_empty(vdev) )
+                val &= ~UART_LSR_DR;
+            else
+                val |= UART_LSR_DR;
+
+            regs[UART_LSR] = val & ~UART_LSR_MASK;
+
+            break;
+
         default:
             rc = -EINVAL;
             break;
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 23:54:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 23:54:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100182.1453811 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urmRk-0005xU-Da; Thu, 28 Aug 2025 23:54:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100182.1453811; Thu, 28 Aug 2025 23: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 1urmRk-0005w5-4Z; Thu, 28 Aug 2025 23:54:24 +0000
Received: by outflank-mailman (input) for mailman id 1100182;
 Thu, 28 Aug 2025 23:54:23 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@xen.org>) id 1urmRj-0005nm-9u
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 23:54:23 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1urmRi-00B9uE-1t;
 Thu, 28 Aug 2025 23:54:22 +0000
Received: from [19.12.91.86] (helo=localhost)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1urmRi-006h8t-1t;
 Thu, 28 Aug 2025 23:54: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:References:
	In-Reply-To:Message-ID:Date:Subject:Cc:To:From;
	bh=zhXDjX6zALpjs1CF5HHCcMpczoZNDfM8fMBVxC2mgY8=; b=SqmqzeH1cil2J+by1rP4hrsEln
	Xig5Rv12JzD3nqEYgW65XPIBM2AacoFekLVBTj0VdhdB/flc3aBsUHYNR7M02FKNrwvdi3VKiZMi7
	AUShLB52hL6zeoR4jW4kW4jI/kLn3bkR2D9ygJgLEI9ra/zpdAzN71sZPMm9LC19yOXc=;
From: dmukhin@xen.org
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 v5 09/15] emul/ns16x50: implement MCR/MSR registers
Date: Thu, 28 Aug 2025 16:54:03 -0700
Message-ID: <20250828235409.2835815-10-dmukhin@ford.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20250828235409.2835815-1-dmukhin@ford.com>
References: <20250828235409.2835815-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Denis Mukhin <dmukhin@ford.com> 

Add MCR/MCR registers emulation to the I/O port handler.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v4:
- new patch
---
 xen/common/emul/vuart/ns16x50.c | 60 +++++++++++++++++++++++++++++++++
 1 file changed, 60 insertions(+)

diff --git a/xen/common/emul/vuart/ns16x50.c b/xen/common/emul/vuart/ns16x50.c
index 687a7ea2fabe..670c3c6dba9d 100644
--- a/xen/common/emul/vuart/ns16x50.c
+++ b/xen/common/emul/vuart/ns16x50.c
@@ -394,7 +394,58 @@ static int ns16x50_io_write8(
             regs[UART_LCR] = val;
             break;
 
+        case UART_MCR: {
+            uint8_t msr_curr, msr_next, msr_delta;
+
+            msr_curr = regs[UART_MSR];
+            msr_next = 0;
+            msr_delta = 0;
+
+            if ( val & UART_MCR_RESERVED0 )
+                ns16x50_warn(vdev, "MCR: attempt to set reserved bit: %x\n",
+                             UART_MCR_RESERVED0);
+
+            if ( val & UART_MCR_TCRTLR )
+                ns16x50_warn(vdev, "MCR: not supported: %x\n",
+                             UART_MCR_TCRTLR);
+
+            if ( val & UART_MCR_RESERVED1 )
+                ns16x50_warn(vdev, "MCR: attempt to set reserved bit: %x\n",
+                             UART_MCR_RESERVED1);
+
+            /* Set modem status */
+            if ( val & UART_MCR_LOOP )
+            {
+                if ( val & UART_MCR_DTR )
+                    msr_next |= UART_MSR_DSR;
+                if ( val & UART_MCR_RTS )
+                    msr_next |= UART_MSR_CTS;
+                if ( val & UART_MCR_OUT1 )
+                    msr_next |= UART_MSR_RI;
+                if ( val & UART_MCR_OUT2 )
+                    msr_next |= UART_MSR_DCD;
+            }
+            else
+                msr_next |= UART_MSR_DCD | UART_MSR_DSR | UART_MSR_CTS;
+
+            /* Calculate changes in modem status */
+            if ( (msr_curr & UART_MSR_CTS) ^ (msr_next & UART_MSR_CTS) )
+                msr_delta |= UART_MSR_DCTS;
+            if ( (msr_curr & UART_MSR_DSR) ^ (msr_next & UART_MSR_DSR) )
+                msr_delta |= UART_MSR_DDSR;
+            if ( (msr_curr & UART_MSR_RI)  & (msr_next & UART_MSR_RI) )
+                msr_delta |= UART_MSR_TERI;
+            if ( (msr_curr & UART_MSR_DCD) ^ (msr_next & UART_MSR_DCD) )
+                msr_delta |= UART_MSR_DDCD;
+
+            regs[UART_MCR] = val & UART_MCR_MASK;
+            regs[UART_MSR] = msr_next | msr_delta;
+
+            break;
+        }
+
         case UART_LSR: /* RO */
+        case UART_MSR: /* RO */
         default:
             rc = -EINVAL;
             break;
@@ -495,6 +546,10 @@ static int ns16x50_io_read8(
             val = regs[UART_LCR];
             break;
 
+        case UART_MCR:
+            val = regs[UART_MCR];
+            break;
+
         case UART_LSR:
             val = regs[UART_LSR] | UART_LSR_THRE | UART_LSR_TEMT;
             if ( ns16x50_fifo_rx_empty(vdev) )
@@ -506,6 +561,11 @@ static int ns16x50_io_read8(
 
             break;
 
+        case UART_MSR:
+            val = regs[UART_MSR];
+            regs[UART_MSR] &= ~UART_MSR_CHANGE;
+            break;
+
         default:
             rc = -EINVAL;
             break;
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 23:54:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 23:54:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100183.1453823 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urmRm-0006Qx-Dx; Thu, 28 Aug 2025 23:54:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100183.1453823; Thu, 28 Aug 2025 23:54: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 1urmRm-0006PR-7h; Thu, 28 Aug 2025 23:54:26 +0000
Received: by outflank-mailman (input) for mailman id 1100183;
 Thu, 28 Aug 2025 23:54:24 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@xen.org>) id 1urmRk-0005zF-E6
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 23:54:24 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1urmRj-00B9uP-27;
 Thu, 28 Aug 2025 23:54:23 +0000
Received: from [19.12.91.86] (helo=localhost)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1urmRj-006h8x-27;
 Thu, 28 Aug 2025 23:54: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:References:
	In-Reply-To:Message-ID:Date:Subject:Cc:To:From;
	bh=/0KeKgcVmU8n8dMjHO23J9fIrZ07FVfbQbieqtJvywI=; b=sIZyNR3e756B2WBmeXKiNVdCcm
	70rRRo5DlRmK8T4D4aJmwnkGWj5UQg0HVakpasJmB03Br9bdkXIOZ2qbz/U1Y0LWd/xQ+9od6LnSi
	YMfFTlCGIbcUYzJit8pu8ZmchH0HsL+a4SnXtsz8MTQQfTJoKtteZTYTwI52bWhaaVMI=;
From: dmukhin@xen.org
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 v5 10/15] emul/ns16x50: implement SCR register
Date: Thu, 28 Aug 2025 16:54:04 -0700
Message-ID: <20250828235409.2835815-11-dmukhin@ford.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20250828235409.2835815-1-dmukhin@ford.com>
References: <20250828235409.2835815-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Denis Mukhin <dmukhin@ford.com> 

Add SCR register emulation to the I/O port handler.
Firmware (e.g. OVMF) may use SCR during the guest OS boot.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v4:
- new patch
---
 xen/common/emul/vuart/ns16x50.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/xen/common/emul/vuart/ns16x50.c b/xen/common/emul/vuart/ns16x50.c
index 670c3c6dba9d..d57695564329 100644
--- a/xen/common/emul/vuart/ns16x50.c
+++ b/xen/common/emul/vuart/ns16x50.c
@@ -444,6 +444,11 @@ static int ns16x50_io_write8(
             break;
         }
 
+        /* NB: Firmware (e.g. OVMF) may rely on SCR presence. */
+        case UART_SCR:
+            regs[UART_SCR] = val;
+            break;
+
         case UART_LSR: /* RO */
         case UART_MSR: /* RO */
         default:
@@ -566,6 +571,10 @@ static int ns16x50_io_read8(
             regs[UART_MSR] &= ~UART_MSR_CHANGE;
             break;
 
+        case UART_SCR:
+            val = regs[UART_SCR];
+            break;
+
         default:
             rc = -EINVAL;
             break;
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 23:54:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 23:54:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100185.1453831 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urmRn-0006aM-Gb; Thu, 28 Aug 2025 23:54:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100185.1453831; Thu, 28 Aug 2025 23:54: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 1urmRn-0006Y0-0f; Thu, 28 Aug 2025 23:54:27 +0000
Received: by outflank-mailman (input) for mailman id 1100185;
 Thu, 28 Aug 2025 23:54:25 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@xen.org>) id 1urmRl-0006Ai-6y
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 23:54:25 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1urmRk-00B9uc-2H;
 Thu, 28 Aug 2025 23:54:24 +0000
Received: from [19.12.91.86] (helo=localhost)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1urmRk-006h91-2H;
 Thu, 28 Aug 2025 23:54: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:References:
	In-Reply-To:Message-ID:Date:Subject:Cc:To:From;
	bh=nO3uRTV+51tCmahHSzswC5+DP1xOPTW2iImj0Yua62E=; b=fO+Lv+KaTvVTuj8aoVRYxR7D8+
	kOvMvcGsxYEW8MWnnt7FuhFH0ElFBVQgc0Tdmv2sbPmJOOzJhxUg/mCRXao7d7vn4FAjcEhZQqPC2
	H3ss4UsB6IE8JDePJwjJUKnyXMrSE186HXqA3TCH+JMQH3yT60ompIeBJXjKwp/21qzI=;
From: dmukhin@xen.org
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 v5 11/15] emul/ns16x50: implement put_rx() hook
Date: Thu, 28 Aug 2025 16:54:05 -0700
Message-ID: <20250828235409.2835815-12-dmukhin@ford.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20250828235409.2835815-1-dmukhin@ford.com>
References: <20250828235409.2835815-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Denis Mukhin <dmukhin@ford.com> 

Implement put_rx() vUART hook for placing a character into the emulated RX
FIFO from console driver.

That implements physical console forwarding to the guest OS over emulated
NS16550.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v4:
- new patch
---
 xen/common/emul/vuart/ns16x50.c | 48 ++++++++++++++++++++++++++++++++-
 1 file changed, 47 insertions(+), 1 deletion(-)

diff --git a/xen/common/emul/vuart/ns16x50.c b/xen/common/emul/vuart/ns16x50.c
index d57695564329..1fb65370d464 100644
--- a/xen/common/emul/vuart/ns16x50.c
+++ b/xen/common/emul/vuart/ns16x50.c
@@ -804,13 +804,59 @@ static void cf_check ns16x50_free(void *arg)
     XVFREE(vdev);
 }
 
+static int cf_check ns16x50_put_rx(void *arg, char ch)
+{
+    struct vuart_ns16x50 *vdev = arg;
+    uint8_t *regs;
+    uint8_t dlab;
+    int rc = -EBUSY;
+
+    spin_lock(&vdev->lock);
+
+    dlab = ns16x50_dlab_get(vdev);
+    regs = vdev->regs;
+
+    if ( dlab )
+        ns16x50_debug(vdev, "THR/RBR access disabled: DLAB=1\n");
+    else if ( regs[UART_MCR] & UART_MCR_LOOP )
+        ns16x50_debug(vdev, "THR/RBR access disabled: loopback mode\n");
+    else
+    {
+        struct vuart *vuart = container_of(arg, struct vuart, vdev);
+        struct domain *d = vuart->owner;
+        uint8_t val = 0;
+
+        rc = ns16x50_fifo_rx_putchar(vdev, ch);
+        if ( rc == -ENOSPC )
+            val |= UART_LSR_OE;
+
+        /* NB: UART_LSR_DR is also set when UART_LSR is accessed. */
+        regs[UART_LSR] |= UART_LSR_DR | val;
+
+        /*
+         * Echo the user input on Xen console iff Xen console input is owned
+         * by ns16x50 domain.
+         * NB: use 'console_timestamps=none' to disable Xen timestamps.
+         */
+        if ( is_console_printable(ch) )
+            guest_printk(d, "%c", ch);
+
+        /* FIXME: check FCR when to fire an interrupt */
+        ns16x50_irq_check(vdev);
+    }
+
+    spin_unlock(&vdev->lock);
+
+    return rc;
+}
+
 #define ns16x50_emulator                \
 {                                       \
     .compatible = "ns16550",            \
     .alloc      = ns16x50_alloc,        \
     .free       = ns16x50_free,         \
     .dump_state = NULL,                 \
-    .put_rx     = NULL,                 \
+    .put_rx     = ns16x50_put_rx,       \
 }
 
 VUART_REGISTER(ns16x50, ns16x50_emulator);
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 23:54:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 23:54:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100187.1453843 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urmRp-00072C-CR; Thu, 28 Aug 2025 23:54:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100187.1453843; Thu, 28 Aug 2025 23:54: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 1urmRo-0006zZ-VM; Thu, 28 Aug 2025 23:54:28 +0000
Received: by outflank-mailman (input) for mailman id 1100187;
 Thu, 28 Aug 2025 23:54:27 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@xen.org>) id 1urmRm-0006Y8-Vy
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 23:54:26 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1urmRl-00B9un-2T;
 Thu, 28 Aug 2025 23:54:25 +0000
Received: from [19.12.91.86] (helo=localhost)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1urmRl-006h95-2T;
 Thu, 28 Aug 2025 23:54: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:References:
	In-Reply-To:Message-ID:Date:Subject:Cc:To:From;
	bh=NMBzYtcN+2dd1QtEW+YbYkTSwAX7vqM+mBvK1ShEWu8=; b=Nv5iTfo7EMVoOXP21QfbY0Z2vk
	z8cgerCSRlbMuZbtnUKMUJxUb3PvG9bCjaEMhoIuziHbM1LArtLHDm22C0CXfkiOZOmQu4hgjpXOa
	aclsk+xs53kIC9uBIpp5Y9k0S1jrQTMt99KLusWkMHeNRmRbUTEpxVMCm2Ms+513S294=;
From: dmukhin@xen.org
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 v5 12/15] emul/ns16550: implement dump_state() hook
Date: Thu, 28 Aug 2025 16:54:06 -0700
Message-ID: <20250828235409.2835815-13-dmukhin@ford.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20250828235409.2835815-1-dmukhin@ford.com>
References: <20250828235409.2835815-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Denis Mukhin <dmukhin@ford.com> 

Implement dump_state() vUART hook for debugging UART state machine over Xen
console. dump_state() prints state of all emulated registers (including
state-less IIR) and state of RX/TX FIFOs.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v4:
- new patch
---
 xen/common/emul/vuart/ns16x50.c | 59 ++++++++++++++++++++++++++++++++-
 1 file changed, 58 insertions(+), 1 deletion(-)

diff --git a/xen/common/emul/vuart/ns16x50.c b/xen/common/emul/vuart/ns16x50.c
index 1fb65370d464..5c1be854b544 100644
--- a/xen/common/emul/vuart/ns16x50.c
+++ b/xen/common/emul/vuart/ns16x50.c
@@ -636,6 +636,58 @@ static int ns16x50_io_read(
     return rc;
 }
 
+static void cf_check ns16x50_dump_state(void *arg)
+{
+#ifdef CONFIG_VUART_NS16X50_DEBUG
+    struct vuart_ns16x50 *vdev = arg;
+    const struct domain *d = vdev->owner;
+    const struct vuart_info *info = vdev->info;
+    const struct xencons_interface *cons;
+    const uint8_t *regs;
+
+    if ( !vdev )
+        return;
+
+    /* Allow printing state in case of a deadlock. */
+    if ( !spin_trylock(&vdev->lock) )
+        return;
+
+    cons = &vdev->cons;
+    regs = &vdev->regs[0];
+
+    printk("Virtual " pr_prefix " (%s) I/O port 0x%04"PRIx64" IRQ#%d owner %pd\n",
+            vdev->name, info->base_addr, info->irq, d);
+
+    printk("  RX FIFO size %ld in_prod %d in_cons %d used %d\n",
+            ARRAY_SIZE(cons->in), cons->in_prod, cons->in_cons,
+            cons->in_prod - cons->in_cons);
+
+    printk("  TX FIFO size %ld out_prod %d out_cons %d used %d\n",
+            ARRAY_SIZE(cons->out), cons->out_prod, cons->out_cons,
+            cons->out_prod - cons->out_cons);
+
+    printk("  %02"PRIx8" RBR %02"PRIx8" THR %02"PRIx8" DLL %02"PRIx8" DLM %02"PRIx8"\n",
+            UART_RBR,
+            cons->in[MASK_XENCONS_IDX(cons->in_prod, cons)],
+            cons->out[MASK_XENCONS_IDX(cons->out_prod, cons)],
+            regs[NS16X50_REGS_NUM + UART_DLL],
+            regs[NS16X50_REGS_NUM + UART_DLM]);
+
+    printk("  %02"PRIx8" IER %02"PRIx8"\n", UART_IER, regs[UART_IER]);
+
+    printk("  %02"PRIx8" FCR %02"PRIx8" IIR %02"PRIx8"\n",
+            UART_FCR, regs[UART_FCR], ns16x50_iir_get(vdev));
+
+    printk("  %02"PRIx8" LCR %02"PRIx8"\n", UART_LCR, regs[UART_LCR]);
+    printk("  %02"PRIx8" MCR %02"PRIx8"\n", UART_MCR, regs[UART_MCR]);
+    printk("  %02"PRIx8" LSR %02"PRIx8"\n", UART_LSR, regs[UART_LSR]);
+    printk("  %02"PRIx8" MSR %02"PRIx8"\n", UART_MSR, regs[UART_MSR]);
+    printk("  %02"PRIx8" SCR %02"PRIx8"\n", UART_SCR, regs[UART_SCR]);
+
+    spin_unlock(&vdev->lock);
+#endif /* CONFIG_VUART_NS16X50_DEBUG */
+}
+
 /*
  * Emulate I/O access to ns16x50 register.
  * Note, emulation always returns X86EMUL_OKAY, once I/O port trap is enabled.
@@ -712,6 +764,9 @@ static int cf_check ns16x50_io_handle(
 
     spin_unlock(&vdev->lock);
 
+    if ( ns16x50_log_level >= 3 ) 
+        ns16x50_dump_state(vdev);
+
 out:
     rcu_unlock_domain(d);
 
@@ -846,6 +901,8 @@ static int cf_check ns16x50_put_rx(void *arg, char ch)
     }
 
     spin_unlock(&vdev->lock);
+    if ( ns16x50_log_level >= 3 )
+        ns16x50_dump_state(vdev);
 
     return rc;
 }
@@ -855,7 +912,7 @@ static int cf_check ns16x50_put_rx(void *arg, char ch)
     .compatible = "ns16550",            \
     .alloc      = ns16x50_alloc,        \
     .free       = ns16x50_free,         \
-    .dump_state = NULL,                 \
+    .dump_state = ns16x50_dump_state,   \
     .put_rx     = ns16x50_put_rx,       \
 }
 
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 23:54:30 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 23:54:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100189.1453847 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urmRp-00075r-Uw; Thu, 28 Aug 2025 23:54:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100189.1453847; Thu, 28 Aug 2025 23:54: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 1urmRp-00073i-EI; Thu, 28 Aug 2025 23:54:29 +0000
Received: by outflank-mailman (input) for mailman id 1100189;
 Thu, 28 Aug 2025 23:54:27 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@xen.org>) id 1urmRn-0006eU-GM
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 23:54:27 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1urmRm-00B9uy-2w;
 Thu, 28 Aug 2025 23:54:27 +0000
Received: from [19.12.91.86] (helo=localhost)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1urmRm-006h99-2f;
 Thu, 28 Aug 2025 23:54: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:References:
	In-Reply-To:Message-ID:Date:Subject:Cc:To:From;
	bh=NV1+wgsPNCrCIHy/7jWeWGwFZy34YuT7kgu3gXKxSMk=; b=B+XEejDF7yJqYKIqXSARWmDSCh
	ThcrSYQLO4i8rNLTyQ+gePB363yJlu6Nb+YbVRUi4dPuufpWN55M/vPBwFlZHeUaQ2QTAqbklVtat
	KtbTBQJYftJ1I7Q3+4ixzx32v0Bm9NyWpITanBMOYKmzpt2XoIoyVkkQMRJ/8WBksQds=;
From: dmukhin@xen.org
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 v5 13/15] x86/domain: enable per-domain I/O port bitmaps
Date: Thu, 28 Aug 2025 16:54:07 -0700
Message-ID: <20250828235409.2835815-14-dmukhin@ford.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20250828235409.2835815-1-dmukhin@ford.com>
References: <20250828235409.2835815-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Denis Mukhin <dmukhin@ford.com> 

Current design enables all HVM domains share the same I/O port bitmap.

It is necessary for domains crafting its own I/O port address space depending
on the user configuration.

Ensure NS16550 emulator does not share I/O ports with the physical I/O ports,
which is essential for emulation in PVH hwdom case (dom0).

Not a functional change.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v4:
- new patch 
- Link tp v4: https://lore.kernel.org/xen-devel/20250731192130.3948419-4-dmukhin@ford.com/
---
 xen/arch/x86/Makefile                    |   1 +
 xen/arch/x86/dom0_build.c                | 111 +--------------
 xen/arch/x86/hvm/hvm.c                   |  35 +----
 xen/arch/x86/hvm/nestedhvm.c             |   8 +-
 xen/arch/x86/hvm/quirks.c                |   3 -
 xen/arch/x86/hvm/svm/nestedsvm.c         |   2 +-
 xen/arch/x86/hvm/vmx/vvmx.c              |   4 +-
 xen/arch/x86/include/asm/hvm/nestedhvm.h |   3 +-
 xen/arch/x86/include/asm/hvm/support.h   |   2 -
 xen/arch/x86/include/asm/iocap.h         |   2 +
 xen/arch/x86/ioport.c                    | 163 +++++++++++++++++++++++
 xen/arch/x86/pv/dom0_build.c             |   4 +
 xen/common/emul/vuart/ns16x50.c          |  11 ++
 13 files changed, 200 insertions(+), 149 deletions(-)
 create mode 100644 xen/arch/x86/ioport.c

diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
index 9d67ea7cd4a8..5726ecc180eb 100644
--- a/xen/arch/x86/Makefile
+++ b/xen/arch/x86/Makefile
@@ -44,6 +44,7 @@ obj-y += msi.o
 obj-y += msr.o
 obj-$(CONFIG_INDIRECT_THUNK) += indirect-thunk.o
 obj-$(CONFIG_RETURN_THUNK) += indirect-thunk.o
+obj-y += ioport.o
 obj-$(CONFIG_PV) += ioport_emulate.o
 obj-y += irq.o
 obj-$(CONFIG_KEXEC) += machine_kexec.o
diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
index 0b467fd4a4fc..26202b33345c 100644
--- a/xen/arch/x86/dom0_build.c
+++ b/xen/arch/x86/dom0_build.c
@@ -298,9 +298,6 @@ int __init parse_arch_dom0_param(const char *s, const char *e)
     return 0;
 }
 
-static char __initdata opt_dom0_ioports_disable[200] = "";
-string_param("dom0_ioports_disable", opt_dom0_ioports_disable);
-
 static bool __initdata ro_hpet = true;
 boolean_param("ro-hpet", ro_hpet);
 
@@ -433,122 +430,20 @@ unsigned long __init dom0_compute_nr_pages(
     return nr_pages;
 }
 
-static void __init process_dom0_ioports_disable(struct domain *dom0)
-{
-    unsigned long io_from, io_to;
-    char *t, *s = opt_dom0_ioports_disable;
-    const char *u;
-
-    if ( *s == '\0' )
-        return;
-
-    while ( (t = strsep(&s, ",")) != NULL )
-    {
-        io_from = simple_strtoul(t, &u, 16);
-        if ( u == t )
-        {
-        parse_error:
-            printk("Invalid ioport range <%s> "
-                   "in dom0_ioports_disable, skipping\n", t);
-            continue;
-        }
-
-        if ( *u == '\0' )
-            io_to = io_from;
-        else if ( *u == '-' )
-            io_to = simple_strtoul(u + 1, &u, 16);
-        else
-            goto parse_error;
-
-        if ( (*u != '\0') || (io_to < io_from) || (io_to >= 65536) )
-            goto parse_error;
-
-        printk("Disabling dom0 access to ioport range %04lx-%04lx\n",
-            io_from, io_to);
-
-        if ( ioports_deny_access(dom0, io_from, io_to) != 0 )
-            BUG();
-    }
-}
-
+/* Modify I/O memory access permissions. */
 int __init dom0_setup_permissions(struct domain *d)
 {
     unsigned long mfn;
-    unsigned int i, offs;
-    int rc;
+    unsigned int i;
+    int rc = 0;
 
     if ( pv_shim )
         return 0;
 
-    /* The hardware domain is initially permitted full I/O capabilities. */
-    rc = ioports_permit_access(d, 0, 0xFFFF);
     rc |= iomem_permit_access(d, 0UL,
                               PFN_DOWN(1UL << domain_max_paddr_bits(d)) - 1);
     rc |= irqs_permit_access(d, 1, nr_irqs_gsi - 1);
 
-    /* Modify I/O port access permissions. */
-
-    for ( offs = 0, i = ISOLATE_LSB(i8259A_alias_mask) ?: 2;
-          offs <= i8259A_alias_mask; offs += i )
-    {
-        if ( offs & ~i8259A_alias_mask )
-            continue;
-        /* Master Interrupt Controller (PIC). */
-        rc |= ioports_deny_access(d, 0x20 + offs, 0x21 + offs);
-        /* Slave Interrupt Controller (PIC). */
-        rc |= ioports_deny_access(d, 0xA0 + offs, 0xA1 + offs);
-    }
-
-    /* ELCR of both PICs. */
-    rc |= ioports_deny_access(d, 0x4D0, 0x4D1);
-
-    /* Interval Timer (PIT). */
-    for ( offs = 0, i = ISOLATE_LSB(pit_alias_mask) ?: 4;
-          offs <= pit_alias_mask; offs += i )
-        if ( !(offs & ~pit_alias_mask) )
-            rc |= ioports_deny_access(d, PIT_CH0 + offs, PIT_MODE + offs);
-
-    /* PIT Channel 2 / PC Speaker Control. */
-    rc |= ioports_deny_access(d, 0x61, 0x61);
-
-    /* INIT# and alternative A20M# control. */
-    rc |= ioports_deny_access(d, 0x92, 0x92);
-
-    /* IGNNE# control. */
-    rc |= ioports_deny_access(d, 0xF0, 0xF0);
-
-    /* ACPI PM Timer. */
-    if ( pmtmr_ioport )
-        rc |= ioports_deny_access(d, pmtmr_ioport, pmtmr_ioport + 3);
-
-    /* Reset control. */
-    rc |= ioports_deny_access(d, 0xCF9, 0xCF9);
-
-    /* PCI configuration space (NB. 0xCF8 has special treatment). */
-    rc |= ioports_deny_access(d, 0xCFC, 0xCFF);
-
-#ifdef CONFIG_HVM
-    if ( is_hvm_domain(d) )
-    {
-        /* ISA DMA controller, channels 0-3 (incl possible aliases). */
-        rc |= ioports_deny_access(d, 0x00, 0x1F);
-        /* ISA DMA controller, page registers (incl various reserved ones). */
-        rc |= ioports_deny_access(d, 0x80 + !!hvm_port80_allowed, 0x8F);
-        /* ISA DMA controller, channels 4-7 (incl usual aliases). */
-        rc |= ioports_deny_access(d, 0xC0, 0xDF);
-
-        /* HVM debug console IO port. */
-        rc |= ioports_deny_access(d, XEN_HVM_DEBUGCONS_IOPORT,
-                                  XEN_HVM_DEBUGCONS_IOPORT);
-        if ( amd_acpi_c1e_quirk )
-            rc |= ioports_deny_access(d, acpi_smi_cmd, acpi_smi_cmd);
-    }
-#endif
-    /* Command-line I/O ranges. */
-    process_dom0_ioports_disable(d);
-
-    /* Modify I/O memory access permissions. */
-
     /* Local APIC. */
     if ( mp_lapic_addr != 0 )
     {
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 26760cf995df..12736fc61c11 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -51,6 +51,7 @@
 #include <asm/hvm/vm_event.h>
 #include <asm/hvm/vpt.h>
 #include <asm/i387.h>
+#include <asm/iocap.h>
 #include <asm/mc146818rtc.h>
 #include <asm/mce.h>
 #include <asm/monitor.h>
@@ -81,14 +82,6 @@ integer_param("hvm_debug", opt_hvm_debug_level);
 
 struct hvm_function_table __ro_after_init hvm_funcs;
 
-/*
- * The I/O permission bitmap is globally shared by all HVM guests except
- * the hardware domain which needs a more permissive one.
- */
-#define HVM_IOBITMAP_SIZE (3 * PAGE_SIZE)
-unsigned long __section(".bss.page_aligned") __aligned(PAGE_SIZE)
-    hvm_io_bitmap[HVM_IOBITMAP_SIZE / BYTES_PER_LONG];
-
 /* Xen command-line option to enable HAP */
 static bool __initdata opt_hap_enabled = true;
 boolean_param("hap", opt_hap_enabled);
@@ -205,15 +198,6 @@ static int __init cf_check hvm_enable(void)
     if ( opt_hvm_fep )
         warning_add(warning_hvm_fep);
 
-    /*
-     * Allow direct access to the PC debug ports 0x80 and 0xed (they are
-     * often used for I/O delays, but the vmexits simply slow things down).
-     */
-    memset(hvm_io_bitmap, ~0, sizeof(hvm_io_bitmap));
-    if ( hvm_port80_allowed )
-        __clear_bit(0x80, hvm_io_bitmap);
-    __clear_bit(0xed, hvm_io_bitmap);
-
     register_cpu_notifier(&cpu_nfb);
 
     return 0;
@@ -645,19 +629,12 @@ int hvm_domain_initialise(struct domain *d,
 
     rwlock_init(&d->arch.hvm.pl_time->pt_migrate);
 
-    /* Set the default IO Bitmap. */
-    if ( is_hardware_domain(d) )
+    rc = ioports_setup_access(d);
+    if ( rc )
     {
-        d->arch.hvm.io_bitmap = _xmalloc(HVM_IOBITMAP_SIZE, PAGE_SIZE);
-        if ( d->arch.hvm.io_bitmap == NULL )
-        {
-            rc = -ENOMEM;
-            goto fail1;
-        }
-        memset(d->arch.hvm.io_bitmap, ~0, HVM_IOBITMAP_SIZE);
+        printk("%pd failed to setup I/O bitmap: %d\n", d, rc);
+        goto fail1;
     }
-    else
-        d->arch.hvm.io_bitmap = hvm_io_bitmap;
 
     register_g2m_portio_handler(d);
     register_vpci_portio_handler(d);
@@ -684,6 +661,8 @@ int hvm_domain_initialise(struct domain *d,
         break;
     }
 
+    BUG_ON(!d->arch.ioport_caps);
+
     vpic_init(d);
 
     rc = vioapic_init(d);
diff --git a/xen/arch/x86/hvm/nestedhvm.c b/xen/arch/x86/hvm/nestedhvm.c
index bddd77d8109b..d4e03123d910 100644
--- a/xen/arch/x86/hvm/nestedhvm.c
+++ b/xen/arch/x86/hvm/nestedhvm.c
@@ -107,7 +107,7 @@ nestedhvm_vmcx_flushtlb(struct p2m_domain *p2m)
  * The users of the bitmap patterns are in SVM/VMX specific code.
  *
  * bitmap        port 0x80  port 0xed
- * hvm_io_bitmap cleared    cleared
+ * hvm.io_bitmap cleared    cleared
  * iomap[0]      cleared    set
  * iomap[1]      set        cleared
  * iomap[2]      set        set
@@ -115,7 +115,7 @@ nestedhvm_vmcx_flushtlb(struct p2m_domain *p2m)
 
 static int __init cf_check nestedhvm_setup(void)
 {
-    /* Same format and size as hvm_io_bitmap (Intel needs only 2 pages). */
+    /* Same format and size as hvm.io_bitmap (Intel needs only 2 pages). */
     unsigned nr = cpu_has_vmx ? 2 : 3;
     unsigned int i, order = get_order_from_pages(nr);
 
@@ -165,7 +165,7 @@ static int __init cf_check nestedhvm_setup(void)
 __initcall(nestedhvm_setup);
 
 unsigned long *
-nestedhvm_vcpu_iomap_get(bool ioport_80, bool ioport_ed)
+nestedhvm_vcpu_iomap_get(struct vcpu *v, bool ioport_80, bool ioport_ed)
 {
     int i;
 
@@ -174,7 +174,7 @@ nestedhvm_vcpu_iomap_get(bool ioport_80, bool ioport_ed)
 
     if (ioport_80 == 0) {
         if (ioport_ed == 0)
-            return hvm_io_bitmap;
+            return v->domain->arch.hvm.io_bitmap;
         i = 0;
     } else {
         if (ioport_ed == 0)
diff --git a/xen/arch/x86/hvm/quirks.c b/xen/arch/x86/hvm/quirks.c
index 9202f5a47fe9..f4d95441fcff 100644
--- a/xen/arch/x86/hvm/quirks.c
+++ b/xen/arch/x86/hvm/quirks.c
@@ -73,9 +73,6 @@ static int __init cf_check check_port80(void)
 
     dmi_check_system(hvm_no_port80_dmi_table);
 
-    if ( !hvm_port80_allowed )
-        __set_bit(0x80, hvm_io_bitmap);
-
     return 0;
 }
 __initcall(check_port80);
diff --git a/xen/arch/x86/hvm/svm/nestedsvm.c b/xen/arch/x86/hvm/svm/nestedsvm.c
index dc2b6a42534a..cc8500b61665 100644
--- a/xen/arch/x86/hvm/svm/nestedsvm.c
+++ b/xen/arch/x86/hvm/svm/nestedsvm.c
@@ -381,7 +381,7 @@ static int nsvm_vmrun_permissionmap(struct vcpu *v, bool viopm)
         hvm_unmap_guest_frame(ns_viomap, 0);
     }
 
-    svm->ns_iomap = nestedhvm_vcpu_iomap_get(ioport_80, ioport_ed);
+    svm->ns_iomap = nestedhvm_vcpu_iomap_get(v, ioport_80, ioport_ed);
 
     nv->nv_ioport80 = ioport_80;
     nv->nv_ioportED = ioport_ed;
diff --git a/xen/arch/x86/hvm/vmx/vvmx.c b/xen/arch/x86/hvm/vmx/vvmx.c
index e4f3a5fe4c71..4da3e6e90e6c 100644
--- a/xen/arch/x86/hvm/vmx/vvmx.c
+++ b/xen/arch/x86/hvm/vmx/vvmx.c
@@ -554,7 +554,7 @@ unsigned long *_shadow_io_bitmap(struct vcpu *v)
     port80 = bitmap[0x80 >> 3] & (1 << (0x80 & 0x7)) ? 1 : 0;
     portED = bitmap[0xed >> 3] & (1 << (0xed & 0x7)) ? 1 : 0;
 
-    return nestedhvm_vcpu_iomap_get(port80, portED);
+    return nestedhvm_vcpu_iomap_get(v, port80, portED);
 }
 
 static void update_msrbitmap(struct vcpu *v, uint32_t shadow_ctrl)
@@ -622,7 +622,7 @@ void nvmx_update_exec_control(struct vcpu *v, u32 host_cntrl)
              * L1 VMM doesn't intercept IO instruction.
              * Use host configuration and reset IO_BITMAP
              */
-            bitmap = hvm_io_bitmap;
+            bitmap = v->domain->arch.hvm.io_bitmap;
         }
         else {
             /* use IO bitmap */
diff --git a/xen/arch/x86/include/asm/hvm/nestedhvm.h b/xen/arch/x86/include/asm/hvm/nestedhvm.h
index ea2c1bc328c7..d691ccb07dd6 100644
--- a/xen/arch/x86/include/asm/hvm/nestedhvm.h
+++ b/xen/arch/x86/include/asm/hvm/nestedhvm.h
@@ -50,7 +50,8 @@ int nestedhvm_hap_nested_page_fault(struct vcpu *v, paddr_t *L2_gpa,
                                     struct npfec npfec);
 
 /* IO permission map */
-unsigned long *nestedhvm_vcpu_iomap_get(bool ioport_80, bool ioport_ed);
+unsigned long *nestedhvm_vcpu_iomap_get(struct vcpu *v,
+                                        bool ioport_80, bool ioport_ed);
 
 /* Misc */
 #define nestedhvm_paging_mode_hap(v) (!!nhvm_vmcx_hap_enabled(v))
diff --git a/xen/arch/x86/include/asm/hvm/support.h b/xen/arch/x86/include/asm/hvm/support.h
index 2a7ba36af06f..7e36d00cc188 100644
--- a/xen/arch/x86/include/asm/hvm/support.h
+++ b/xen/arch/x86/include/asm/hvm/support.h
@@ -41,8 +41,6 @@ extern unsigned int opt_hvm_debug_level;
 #define HVM_DBG_LOG(level, _f, _a...) do {} while (0)
 #endif
 
-extern unsigned long hvm_io_bitmap[];
-
 enum hvm_translation_result {
     HVMTRANS_okay,
     HVMTRANS_bad_linear_to_gfn,
diff --git a/xen/arch/x86/include/asm/iocap.h b/xen/arch/x86/include/asm/iocap.h
index f948b7186e95..1083f6171cf7 100644
--- a/xen/arch/x86/include/asm/iocap.h
+++ b/xen/arch/x86/include/asm/iocap.h
@@ -22,6 +22,8 @@
 #define cache_flush_permitted(d) \
     (has_arch_io_resources(d) || has_arch_pdevs(d))
 
+int ioports_setup_access(struct domain *d);
+
 static inline int ioports_permit_access(struct domain *d, unsigned long s,
                                         unsigned long e)
 {
diff --git a/xen/arch/x86/ioport.c b/xen/arch/x86/ioport.c
new file mode 100644
index 000000000000..dbcd52d37a4f
--- /dev/null
+++ b/xen/arch/x86/ioport.c
@@ -0,0 +1,163 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Guest I/O port address space configuration.
+ *
+ * Copyright 2025 Ford Motor Company
+ */
+
+#include <xen/domain.h>
+#include <xen/param.h>
+
+#include <asm/amd.h>
+#include <asm/acpi.h>
+#include <asm/io-ports.h>
+#include <asm/iocap.h>
+#include <asm/pv/shim.h>
+#include <asm/setup.h>
+
+static char __initdata opt_dom0_ioports_disable[200] = "";
+string_param("dom0_ioports_disable", opt_dom0_ioports_disable);
+
+/*
+ * The I/O permission bitmap size.
+ * See: comment in nestedhvm_setup()
+ */
+#define HVM_IOBITMAP_SIZE (3 * PAGE_SIZE)
+
+/* Hide user-defined I/O ports from the guest OS. */
+static void process_dom0_ioports_disable(struct domain *dom0)
+{
+    unsigned long io_from, io_to;
+    char *t, *s = opt_dom0_ioports_disable;
+    const char *u;
+
+    if ( *s == '\0' )
+        return;
+
+    while ( (t = strsep(&s, ",")) != NULL )
+    {
+        io_from = simple_strtoul(t, &u, 16);
+        if ( u == t )
+        {
+        parse_error:
+            printk("Invalid ioport range <%s> "
+                   "in dom0_ioports_disable, skipping\n", t);
+            continue;
+        }
+
+        if ( *u == '\0' )
+            io_to = io_from;
+        else if ( *u == '-' )
+            io_to = simple_strtoul(u + 1, &u, 16);
+        else
+            goto parse_error;
+
+        if ( (*u != '\0') || (io_to < io_from) || (io_to >= 65536) )
+            goto parse_error;
+
+        printk("Disabling dom0 access to ioport range %04lx-%04lx\n",
+            io_from, io_to);
+
+        if ( ioports_deny_access(dom0, io_from, io_to) != 0 )
+            BUG();
+    }
+}
+
+/* Set the default IO Bitmap. */
+int ioports_setup_access(struct domain *d)
+{
+    unsigned int i, offs;
+    int rc;
+
+    if ( pv_shim )
+        return 0;
+
+#ifdef CONFIG_HVM
+    d->arch.hvm.io_bitmap = _xmalloc(HVM_IOBITMAP_SIZE, PAGE_SIZE);
+    if ( d->arch.hvm.io_bitmap == NULL )
+        return -ENOMEM;
+
+    memset(d->arch.hvm.io_bitmap, ~0, HVM_IOBITMAP_SIZE);
+
+    if ( !is_hardware_domain(d) )
+    {
+        /*
+         * Allow direct access to the PC debug ports 0x80 and 0xed (they are
+         * often used for I/O delays, but the vmexits simply slow things down).
+         */
+        if ( hvm_port80_allowed )
+            __clear_bit(0x80, d->arch.hvm.io_bitmap);
+
+        __clear_bit(0xed, d->arch.hvm.io_bitmap);
+
+        return 0;
+    }
+#endif
+
+    /* The hardware domain is initially permitted full I/O capabilities. */
+    rc = ioports_permit_access(d, 0, 0xFFFF);
+
+    /* Modify I/O port access permissions. */
+
+    for ( offs = 0, i = ISOLATE_LSB(i8259A_alias_mask) ?: 2;
+          offs <= i8259A_alias_mask; offs += i )
+    {
+        if ( offs & ~i8259A_alias_mask )
+            continue;
+        /* Master Interrupt Controller (PIC). */
+        rc |= ioports_deny_access(d, 0x20 + offs, 0x21 + offs);
+        /* Slave Interrupt Controller (PIC). */
+        rc |= ioports_deny_access(d, 0xA0 + offs, 0xA1 + offs);
+    }
+
+    /* ELCR of both PICs. */
+    rc |= ioports_deny_access(d, 0x4D0, 0x4D1);
+
+    /* Interval Timer (PIT). */
+    for ( offs = 0, i = ISOLATE_LSB(pit_alias_mask) ?: 4;
+          offs <= pit_alias_mask; offs += i )
+        if ( !(offs & ~pit_alias_mask) )
+            rc |= ioports_deny_access(d, PIT_CH0 + offs, PIT_MODE + offs);
+
+    /* PIT Channel 2 / PC Speaker Control. */
+    rc |= ioports_deny_access(d, 0x61, 0x61);
+
+    /* INIT# and alternative A20M# control. */
+    rc |= ioports_deny_access(d, 0x92, 0x92);
+
+    /* IGNNE# control. */
+    rc |= ioports_deny_access(d, 0xF0, 0xF0);
+
+    /* ACPI PM Timer. */
+    if ( pmtmr_ioport )
+        rc |= ioports_deny_access(d, pmtmr_ioport, pmtmr_ioport + 3);
+
+    /* Reset control. */
+    rc |= ioports_deny_access(d, 0xCF9, 0xCF9);
+
+    /* PCI configuration space (NB. 0xCF8 has special treatment). */
+    rc |= ioports_deny_access(d, 0xCFC, 0xCFF);
+
+#ifdef CONFIG_HVM
+    if ( is_hvm_domain(d) )
+    {
+        /* ISA DMA controller, channels 0-3 (incl possible aliases). */
+        rc |= ioports_deny_access(d, 0x00, 0x1F);
+        /* ISA DMA controller, page registers (incl various reserved ones). */
+        rc |= ioports_deny_access(d, 0x80 + !!hvm_port80_allowed, 0x8F);
+        /* ISA DMA controller, channels 4-7 (incl usual aliases). */
+        rc |= ioports_deny_access(d, 0xC0, 0xDF);
+
+        /* HVM debug console IO port. */
+        rc |= ioports_deny_access(d, XEN_HVM_DEBUGCONS_IOPORT,
+                                  XEN_HVM_DEBUGCONS_IOPORT);
+        if ( amd_acpi_c1e_quirk )
+            rc |= ioports_deny_access(d, acpi_smi_cmd, acpi_smi_cmd);
+    }
+#endif
+
+    /* Command-line I/O ranges. */
+    process_dom0_ioports_disable(d);
+
+    return rc;
+}
diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index 21158ce1812e..2b8b4d869ee7 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -17,6 +17,7 @@
 #include <asm/bootinfo.h>
 #include <asm/bzimage.h>
 #include <asm/dom0_build.h>
+#include <asm/iocap.h>
 #include <asm/guest.h>
 #include <asm/page.h>
 #include <asm/pv/mm.h>
@@ -1033,6 +1034,9 @@ static int __init dom0_construct(const struct boot_domain *bd)
     if ( test_bit(XENFEAT_supervisor_mode_kernel, parms.f_required) )
         panic("Dom0 requires supervisor-mode execution\n");
 
+    rc = ioports_setup_access(d);
+    BUG_ON(rc != 0);
+
     rc = dom0_setup_permissions(d);
     BUG_ON(rc != 0);
 
diff --git a/xen/common/emul/vuart/ns16x50.c b/xen/common/emul/vuart/ns16x50.c
index 5c1be854b544..8860f25ffdeb 100644
--- a/xen/common/emul/vuart/ns16x50.c
+++ b/xen/common/emul/vuart/ns16x50.c
@@ -780,9 +780,20 @@ static int ns16x50_init(void *arg)
     struct vuart_ns16x50 *vdev = arg;
     const struct vuart_info *info = vdev->info;
     struct domain *d = vdev->owner;
+    int rc;
 
     ASSERT(vdev);
 
+    /* Disallow sharing physical I/O port */
+    rc = ioports_deny_access(d, info->base_addr,
+                             info->base_addr + info->size - 1);
+    if ( rc )
+    {
+        ns16x50_err(info, " virtual I/O port range [0x%04lx"PRIx64"..0x%04lx"PRIx64"]: conflict w/ physical range\n",
+                    info->base_addr, info->base_addr + info->size - 1);
+        return rc;
+    }
+
     /* NB: report 115200 baud rate. */
     vdev->regs[NS16X50_REGS_NUM + UART_DLL] = divisor & 0xff;
     vdev->regs[NS16X50_REGS_NUM + UART_DLM] = (divisor >> 8) & 0xff;
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 23:54:32 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 23:54:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100190.1453855 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urmRs-0007QG-2r; Thu, 28 Aug 2025 23:54:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100190.1453855; Thu, 28 Aug 2025 23:54:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urmRq-0007KJ-Pu; Thu, 28 Aug 2025 23:54:30 +0000
Received: by outflank-mailman (input) for mailman id 1100190;
 Thu, 28 Aug 2025 23:54:28 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@xen.org>) id 1urmRo-0006u2-F8
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 23:54:28 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1urmRn-00B9v9-38;
 Thu, 28 Aug 2025 23:54:28 +0000
Received: from [19.12.91.86] (helo=localhost)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1urmRn-006h9D-38;
 Thu, 28 Aug 2025 23:54: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:References:
	In-Reply-To:Message-ID:Date:Subject:Cc:To:From;
	bh=Rhcq2vtZe5iZ0ZPpBFlvq+R2ujzAm7D2AbQfWm62IXc=; b=51YcAA8yiYU+z1bbNZhHTpCdMf
	zhlnclwQAdaMPYIsofXAGa7s/illQ4mpfmhHLE7/tQpZm4f9NpJFdlouwmJfl8F8G1NukL2kw+NPc
	CLxmyakVjxm5O4Z9en/rgnffkypUol0dtASQOyiOvuTGs3UPFcRzi/+5yQwe4WjejFI8=;
From: dmukhin@xen.org
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 v5 14/15] xen/domain: allocate d->irq_caps before arch-specific initialization
Date: Thu, 28 Aug 2025 16:54:08 -0700
Message-ID: <20250828235409.2835815-15-dmukhin@ford.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20250828235409.2835815-1-dmukhin@ford.com>
References: <20250828235409.2835815-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Denis Mukhin <dmukhin@ford.com> 

Make sure that NS16550 emulator does not share virtual device IRQ with the
physical one. This is needed for enabling NS16550 emulator for PVH hwdom
(dom0).

To do that, move per-domain interrupt rangeset allocation before arch-specific
code. Add irqs_setup_access() to setup the initial rangeset.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v4:
- new patch
- Link to original patch in v4: https://lore.kernel.org/xen-devel/20250731192130.3948419-4-dmukhin@ford.com/
---
 xen/arch/x86/dom0_build.c       | 1 -
 xen/arch/x86/hvm/dom0_build.c   | 7 +++++++
 xen/arch/x86/include/asm/irq.h  | 2 ++
 xen/arch/x86/irq.c              | 8 ++++++++
 xen/arch/x86/pv/dom0_build.c    | 3 +++
 xen/common/domain.c             | 8 ++++++--
 xen/common/emul/vuart/ns16x50.c | 9 +++++++++
 7 files changed, 35 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
index 26202b33345c..9dc87efbf3e8 100644
--- a/xen/arch/x86/dom0_build.c
+++ b/xen/arch/x86/dom0_build.c
@@ -442,7 +442,6 @@ int __init dom0_setup_permissions(struct domain *d)
 
     rc |= iomem_permit_access(d, 0UL,
                               PFN_DOWN(1UL << domain_max_paddr_bits(d)) - 1);
-    rc |= irqs_permit_access(d, 1, nr_irqs_gsi - 1);
 
     /* Local APIC. */
     if ( mp_lapic_addr != 0 )
diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
index 5551f9044836..245a42dec9aa 100644
--- a/xen/arch/x86/hvm/dom0_build.c
+++ b/xen/arch/x86/hvm/dom0_build.c
@@ -1348,6 +1348,13 @@ int __init dom0_construct_pvh(const struct boot_domain *bd)
          */
         pvh_setup_mmcfg(d);
 
+        rc = irqs_setup_access(d);
+        if ( rc )
+        {
+            printk("%pd unable to setup IRQ rangeset: %d\n", d, rc);
+            return rc;
+        }
+
         /*
          * Setup permissions early so that calls to add MMIO regions to the
          * p2m as part of vPCI setup don't fail due to permission checks.
diff --git a/xen/arch/x86/include/asm/irq.h b/xen/arch/x86/include/asm/irq.h
index 8c81f66434a8..8bffec3bbfee 100644
--- a/xen/arch/x86/include/asm/irq.h
+++ b/xen/arch/x86/include/asm/irq.h
@@ -231,4 +231,6 @@ int allocate_and_map_gsi_pirq(struct domain *d, int index, int *pirq_p);
 int allocate_and_map_msi_pirq(struct domain *d, int index, int *pirq_p,
                               int type, struct msi_info *msi);
 
+int irqs_setup_access(struct domain *d);
+
 #endif /* _ASM_HW_IRQ_H */
diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c
index 556134f85aa0..079277be719d 100644
--- a/xen/arch/x86/irq.c
+++ b/xen/arch/x86/irq.c
@@ -3046,3 +3046,11 @@ int allocate_and_map_msi_pirq(struct domain *d, int index, int *pirq_p,
 
     return ret;
 }
+
+int irqs_setup_access(struct domain *d)
+{
+    if ( is_hardware_domain(d) )
+        return irqs_permit_access(d, 1, nr_irqs_gsi - 1);
+
+    return 0;
+}
diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index 2b8b4d869ee7..1a092b802833 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -1037,6 +1037,9 @@ static int __init dom0_construct(const struct boot_domain *bd)
     rc = ioports_setup_access(d);
     BUG_ON(rc != 0);
 
+    rc = irqs_setup_access(d);
+    BUG_ON(rc != 0);
+
     rc = dom0_setup_permissions(d);
     BUG_ON(rc != 0);
 
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 104e917f07e3..eb83e3198f37 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -950,6 +950,11 @@ struct domain *domain_create(domid_t domid,
     radix_tree_init(&d->pirq_tree);
 #endif
 
+    err = -ENOMEM;
+    d->irq_caps = rangeset_new(d, "Interrupts", 0);
+    if ( !d->irq_caps )
+        goto fail;
+
     if ( (err = arch_domain_create(d, config, flags)) != 0 )
         goto fail;
     init_status |= INIT_arch;
@@ -959,8 +964,7 @@ struct domain *domain_create(domid_t domid,
 
     err = -ENOMEM;
     d->iomem_caps = rangeset_new(d, "I/O Memory", RANGESETF_prettyprint_hex);
-    d->irq_caps   = rangeset_new(d, "Interrupts", 0);
-    if ( !d->iomem_caps || !d->irq_caps )
+    if ( !d->iomem_caps )
         goto fail;
 
     if ( (err = xsm_domain_create(XSM_HOOK, d, config->ssidref)) != 0 )
diff --git a/xen/common/emul/vuart/ns16x50.c b/xen/common/emul/vuart/ns16x50.c
index 8860f25ffdeb..aea38304b60c 100644
--- a/xen/common/emul/vuart/ns16x50.c
+++ b/xen/common/emul/vuart/ns16x50.c
@@ -794,6 +794,15 @@ static int ns16x50_init(void *arg)
         return rc;
     }
 
+    /* Disallow sharing physical IRQ */
+    rc = irq_deny_access(d, info->irq);
+    if ( rc )
+    {
+        ns16x50_err(info, "virtual IRQ#%d: conflict w/ physical IRQ: %d\n",
+                    info->irq, rc);
+        return rc;
+    }
+
     /* NB: report 115200 baud rate. */
     vdev->regs[NS16X50_REGS_NUM + UART_DLL] = divisor & 0xff;
     vdev->regs[NS16X50_REGS_NUM + UART_DLM] = (divisor >> 8) & 0xff;
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Aug 28 23:54:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 28 Aug 2025 23:54:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100192.1453861 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urmRt-0007ew-GM; Thu, 28 Aug 2025 23:54:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100192.1453861; Thu, 28 Aug 2025 23:54: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 1urmRs-0007Yp-AH; Thu, 28 Aug 2025 23:54:32 +0000
Received: by outflank-mailman (input) for mailman id 1100192;
 Thu, 28 Aug 2025 23:54:29 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@xen.org>) id 1urmRp-00076P-In
 for xen-devel@lists.xenproject.org; Thu, 28 Aug 2025 23:54:29 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1urmRp-00B9vM-07;
 Thu, 28 Aug 2025 23:54:29 +0000
Received: from [19.12.91.86] (helo=localhost)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1urmRp-006h9H-06;
 Thu, 28 Aug 2025 23:54: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:References:
	In-Reply-To:Message-ID:Date:Subject:Cc:To:From;
	bh=zH+Ml0xpNcmzc186mKizKSEiGAMZCRDPd3343TaJluU=; b=CePpDAmPxy5vuyFqPC22eqCIWN
	ewQbHhdcOzjO7upv0uo0hwjDuV6zi32QJl2TChIFivOXQJvBcR8pQmdyUYshlvCinCAGAqPvMee8O
	qvS47kQzgXVVBzEFV2+54T0ahyMlcPC5fTtX2/6R94pUsK2wkszMjH3vJ+R8t+Ajx3jM=;
From: dmukhin@xen.org
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 v5 15/15] emul/ns16x50: implement IRQ emulation via vIOAPIC
Date: Thu, 28 Aug 2025 16:54:09 -0700
Message-ID: <20250828235409.2835815-16-dmukhin@ford.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20250828235409.2835815-1-dmukhin@ford.com>
References: <20250828235409.2835815-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Denis Mukhin <dmukhin@ford.com> 

PVH domains use vIOAPIC, not vPIC and NS16550 emulates ISA IRQs which cannot
be asserted on vIOAPIC.

{map,unmap}_domain_emuirq_pirq() infrastructure is modified by adding new
type of interrupt resources 'IRQ_EMU' which means 'emulated device IRQ'
(similarly to IRQ_MSI_EMU).

This is necessary to for IOAPIC emulation code to skip IRQ->PIRQ mapping
(vioapic_hwdom_map_gsi()) when guest OS unmasks vIOAPIC pin corresponding to
virtual device's IRQ.

Also, hvm_gsi_eoi() is modified to trigger assertion in hvm_gsi_deassert()
path for ISA IRQs.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v4:
- dropped xl bits
- cosmetic renames
- fix hvm_gsi_eoi()
- Link to v4: https://lore.kernel.org/xen-devel/20250731192130.3948419-8-dmukhin@ford.com/
---
 xen/arch/x86/domain.c             |  2 +-
 xen/arch/x86/hvm/vioapic.c        | 10 ++++++++++
 xen/arch/x86/include/asm/irq.h    |  3 ++-
 xen/arch/x86/irq.c                |  4 ++--
 xen/arch/x86/physdev.c            |  8 ++++----
 xen/common/emul/vuart/ns16x50.c   | 32 +++++++++++++++++++++++++++++--
 xen/drivers/passthrough/x86/hvm.c | 13 ++++++++-----
 7 files changed, 57 insertions(+), 15 deletions(-)

diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 19fd86ce88d2..0815d0b31827 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -1048,7 +1048,7 @@ int arch_domain_soft_reset(struct domain *d)
     write_lock(&d->event_lock);
     for ( i = 0; i < d->nr_pirqs ; i++ )
     {
-        if ( domain_pirq_to_emuirq(d, i) != IRQ_UNBOUND )
+        if ( domain_irq_to_emuirq(d, i) != IRQ_UNBOUND )
         {
             ret = unmap_domain_pirq_emuirq(d, i);
             if ( ret )
diff --git a/xen/arch/x86/hvm/vioapic.c b/xen/arch/x86/hvm/vioapic.c
index 7c725f9e471f..fd073f6fba4b 100644
--- a/xen/arch/x86/hvm/vioapic.c
+++ b/xen/arch/x86/hvm/vioapic.c
@@ -177,6 +177,16 @@ static int vioapic_hwdom_map_gsi(unsigned int gsi, unsigned int trig,
 
     ASSERT(is_hardware_domain(currd));
 
+    /*
+     * Interrupt is claimed by one of the platform virtual devices (e.g.
+     * NS16550); do nothing.
+     */
+    write_lock(&currd->event_lock);
+    ret = domain_irq_to_emuirq(currd, gsi);
+    write_unlock(&currd->event_lock);
+    if ( ret != IRQ_UNBOUND )
+        return 0;
+
     /* Interrupt has been unmasked, bind it now. */
     ret = mp_register_gsi(gsi, trig, pol);
     if ( ret == -EEXIST )
diff --git a/xen/arch/x86/include/asm/irq.h b/xen/arch/x86/include/asm/irq.h
index 8bffec3bbfee..3b24decb05e4 100644
--- a/xen/arch/x86/include/asm/irq.h
+++ b/xen/arch/x86/include/asm/irq.h
@@ -212,7 +212,7 @@ void cleanup_domain_irq_mapping(struct domain *d);
     __ret ? radix_tree_ptr_to_int(__ret) : 0;                   \
 })
 #define PIRQ_ALLOCATED (-1)
-#define domain_pirq_to_emuirq(d, pirq) pirq_field(d, pirq,              \
+#define domain_irq_to_emuirq(d, pirq) pirq_field(d, pirq,              \
     arch.hvm.emuirq, IRQ_UNBOUND)
 #define domain_emuirq_to_pirq(d, emuirq) ({                             \
     void *__ret = radix_tree_lookup(&(d)->arch.hvm.emuirq_pirq, emuirq);\
@@ -221,6 +221,7 @@ void cleanup_domain_irq_mapping(struct domain *d);
 #define IRQ_UNBOUND (-1)
 #define IRQ_PT      (-2)
 #define IRQ_MSI_EMU (-3)
+#define IRQ_EMU     (-4)
 
 bool cpu_has_pending_apic_eoi(void);
 
diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c
index 079277be719d..7a8093cd3238 100644
--- a/xen/arch/x86/irq.c
+++ b/xen/arch/x86/irq.c
@@ -2790,7 +2790,7 @@ int map_domain_emuirq_pirq(struct domain *d, int pirq, int emuirq)
         return -EINVAL;
     }
 
-    old_emuirq = domain_pirq_to_emuirq(d, pirq);
+    old_emuirq = domain_irq_to_emuirq(d, pirq);
     if ( emuirq != IRQ_PT )
         old_pirq = domain_emuirq_to_pirq(d, emuirq);
 
@@ -2845,7 +2845,7 @@ int unmap_domain_pirq_emuirq(struct domain *d, int pirq)
 
     ASSERT(rw_is_write_locked(&d->event_lock));
 
-    emuirq = domain_pirq_to_emuirq(d, pirq);
+    emuirq = domain_irq_to_emuirq(d, pirq);
     if ( emuirq == IRQ_UNBOUND )
     {
         dprintk(XENLOG_G_ERR, "dom%d: pirq %d not mapped\n",
diff --git a/xen/arch/x86/physdev.c b/xen/arch/x86/physdev.c
index 4dfa1c019105..90a9e7d2f120 100644
--- a/xen/arch/x86/physdev.c
+++ b/xen/arch/x86/physdev.c
@@ -145,7 +145,7 @@ int physdev_unmap_pirq(struct domain *d, int pirq)
     if ( is_hvm_domain(d) && has_pirq(d) )
     {
         write_lock(&d->event_lock);
-        if ( domain_pirq_to_emuirq(d, pirq) != IRQ_UNBOUND )
+        if ( domain_irq_to_emuirq(d, pirq) != IRQ_UNBOUND )
             ret = unmap_domain_pirq_emuirq(d, pirq);
         write_unlock(&d->event_lock);
         if ( d == current->domain || ret )
@@ -191,10 +191,10 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
         if ( is_pv_domain(currd) || domain_pirq_to_irq(currd, eoi.irq) > 0 )
             pirq_guest_eoi(pirq);
         if ( is_hvm_domain(currd) &&
-             domain_pirq_to_emuirq(currd, eoi.irq) > 0 )
+             domain_irq_to_emuirq(currd, eoi.irq) > 0 )
         {
             struct hvm_irq *hvm_irq = hvm_domain_irq(currd);
-            int gsi = domain_pirq_to_emuirq(currd, eoi.irq);
+            int gsi = domain_irq_to_emuirq(currd, eoi.irq);
 
             /* if this is a level irq and count > 0, send another
              * notification */ 
@@ -267,7 +267,7 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
         irq_status_query.flags = 0;
         if ( is_hvm_domain(currd) &&
              domain_pirq_to_irq(currd, irq) <= 0 &&
-             domain_pirq_to_emuirq(currd, irq) == IRQ_UNBOUND )
+             domain_irq_to_emuirq(currd, irq) == IRQ_UNBOUND )
         {
             ret = -EINVAL;
             break;
diff --git a/xen/common/emul/vuart/ns16x50.c b/xen/common/emul/vuart/ns16x50.c
index aea38304b60c..1126b53c30df 100644
--- a/xen/common/emul/vuart/ns16x50.c
+++ b/xen/common/emul/vuart/ns16x50.c
@@ -287,7 +287,9 @@ static void ns16x50_irq_assert(const struct vuart_ns16x50 *vdev)
     const struct vuart_info *info = vdev->info;
     int vector;
 
-    if ( has_vpic(d) ) /* HVM */
+    if ( has_vioapic(d) && !has_vpic(d) ) /* PVH */
+        vector = hvm_ioapic_assert(d, info->irq, false);
+    else if ( has_vpic(d) ) /* HVM */
         vector = hvm_isa_irq_assert(d, info->irq, vioapic_get_vector);
     else
         ASSERT_UNREACHABLE();
@@ -300,7 +302,9 @@ static void ns16x50_irq_deassert(const struct vuart_ns16x50 *vdev)
     struct domain *d = vdev->owner;
     const struct vuart_info *info = vdev->info;
 
-    if ( has_vpic(d) ) /* HVM */
+    if ( has_vioapic(d) && !has_vpic(d) ) /* PVH */
+        hvm_ioapic_deassert(d, info->irq);
+    else if ( has_vpic(d) ) /* HVM */
         hvm_isa_irq_deassert(d, info->irq);
     else
         ASSERT_UNREACHABLE();
@@ -803,6 +807,17 @@ static int ns16x50_init(void *arg)
         return rc;
     }
 
+    /* Claim virtual IRQ */
+    write_lock(&d->event_lock);
+    rc = map_domain_emuirq_pirq(d, info->irq, IRQ_EMU);
+    write_unlock(&d->event_lock);
+    if ( rc )
+    {
+        ns16x50_err(info, "virtual IRQ#%d: cannot claim: %d\n",
+                    info->irq, rc);
+        return rc;
+    }
+
     /* NB: report 115200 baud rate. */
     vdev->regs[NS16X50_REGS_NUM + UART_DLL] = divisor & 0xff;
     vdev->regs[NS16X50_REGS_NUM + UART_DLM] = (divisor >> 8) & 0xff;
@@ -822,9 +837,22 @@ static int ns16x50_init(void *arg)
 static void cf_check ns16x50_deinit(void *arg)
 {
     struct vuart_ns16x50 *vdev = arg;
+    const struct vuart_info *info;
+    struct domain *d;
+    int rc;
 
     ASSERT(vdev);
 
+    d = vdev->owner;
+    info = vdev->info;
+
+    write_lock(&d->event_lock);
+    rc = unmap_domain_pirq_emuirq(d, info->irq);
+    write_unlock(&d->event_lock);
+    if ( rc )
+        ns16x50_err(vdev, "virtual IRQ#%d: cannot unclaim: %d\n",
+                    info->irq, rc);
+
     spin_lock(&vdev->lock);
     ns16x50_fifo_tx_flush(vdev);
     spin_unlock(&vdev->lock);
diff --git a/xen/drivers/passthrough/x86/hvm.c b/xen/drivers/passthrough/x86/hvm.c
index a2ca7e0e570c..11711d20a7ea 100644
--- a/xen/drivers/passthrough/x86/hvm.c
+++ b/xen/drivers/passthrough/x86/hvm.c
@@ -923,13 +923,16 @@ static void __hvm_dpci_eoi(struct domain *d,
 static void hvm_gsi_eoi(struct domain *d, unsigned int gsi)
 {
     struct pirq *pirq = pirq_info(d, gsi);
+    int rc;
+
+    /* Check if GSI is claimed by one of the virtual devices. */
+    rc = domain_irq_to_emuirq(d, gsi);
+    if ( rc != IRQ_UNBOUND )
+        hvm_gsi_deassert(d, gsi);
 
     /* Check if GSI is actually mapped. */
-    if ( !pirq_dpci(pirq) )
-        return;
-
-    hvm_gsi_deassert(d, gsi);
-    hvm_pirq_eoi(pirq);
+    if ( pirq_dpci(pirq) )
+        hvm_pirq_eoi(pirq);
 }
 
 static int cf_check _hvm_dpci_isairq_eoi(
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri Aug 29 00:35:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 00:35:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100365.1453886 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urn53-0004LG-4c; Fri, 29 Aug 2025 00:35:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100365.1453886; Fri, 29 Aug 2025 00:35: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 1urn53-0004L9-1k; Fri, 29 Aug 2025 00:35:01 +0000
Received: by outflank-mailman (input) for mailman id 1100365;
 Fri, 29 Aug 2025 00:34:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=QvxM=3J=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1urn51-0004KA-CF
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 00:34:59 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on20625.outbound.protection.outlook.com
 [2a01:111:f403:2417::625])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fc4ebcef-846f-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 02:34:56 +0200 (CEST)
Received: from CH2PR03CA0016.namprd03.prod.outlook.com (2603:10b6:610:59::26)
 by LV2PR12MB5750.namprd12.prod.outlook.com (2603:10b6:408:17e::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.19; Fri, 29 Aug
 2025 00:34:45 +0000
Received: from DS2PEPF0000343E.namprd02.prod.outlook.com
 (2603:10b6:610:59:cafe::72) by CH2PR03CA0016.outlook.office365.com
 (2603:10b6:610:59::26) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9052.21 via Frontend Transport; Fri,
 29 Aug 2025 00:34:45 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 DS2PEPF0000343E.mail.protection.outlook.com (10.167.18.41) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9052.8 via Frontend Transport; Fri, 29 Aug 2025 00:34:44 +0000
Received: from satlexmb10.amd.com (10.181.42.219) 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; Thu, 28 Aug
 2025 19:34:44 -0500
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.10; Thu, 28 Aug
 2025 17:34:43 -0700
Received: from [172.20.7.230] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Thu, 28 Aug 2025 19:34:43 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fc4ebcef-846f-11f0-8dd7-1b34d833f44b
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=J/UsiVScbqBwMZ3UV94LWfFfkJw2tS87u0RpxVvAZruGm6F1WjmB5aQY/Mzy0DAIls3PN8FDYNx0J0j/bk030EI1lUfHTEnyU3O4UOw9IZJNNvWEju00u1DilqHFtfp6GkI7U/KWUhydX5IKGRg1t3yn9ICBjo4UhBKEccxKU9YhHmob6iYrfKqNa+oYQ58BZpNzgAs5qgIypDJSmUzM76yk3npw5l0kUVE3cIDUmVMPDqem+HCxVZ6ROMC72KFfpepM5WBSqEt20YWeGmcU9nOrc0PXieyPcWTg1DjS9cnz8dJz8maLSZ7td3GdAQ3zVk9iBY1xzmjSBLXIa7jXsg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=n5P/OIV1Mu2m8i8MotRwtiup+diwZBukIvCwWF6rsjM=;
 b=uMdMJVTB+ZCwqW5tu4v7hwDnbHkyaKm1+NasDfjkEJ0Cn09UKF8t5S5gq53t4ACi9ZW+l1dijnOnRaFo9U3wP19aMo4LZmBbjTB7+Qp9aAv2jnw+M3VI0y+H1bKK1x+6UXEmenzub4w16pnQLUKfmU9bPRjbTc4ur/4v3jrT6iYBZUMLhALruneBAKId1/ifqhpzpMvlbDnyiMpaHvld7BMaxv8XiCnmPXrC8H/zpCzHgueMgX6EKkLvbhtlHLqFzyO2Wv8lkz1P//ec3OfksNziB5sGZFwgeCNsibJGfK2n7z36faTR9giodaT3s7kcp+vE8Y1g8OljCr5QQWkXvg==
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=n5P/OIV1Mu2m8i8MotRwtiup+diwZBukIvCwWF6rsjM=;
 b=hOEdv1BfnG8JGf2uzkEHDnnFef1oVqAZJauwwcTvj8frf4BNREOyNEZJYC3fLYtU1BGAvOwHJnYt+Btw6xJyqTdaEo+tgfwyGyIcIQrBbecEV4aWQ2fATA8bjU2WT7QJBkSs8E+Cl8AaERGAraZ8HrkcuJ7E/ONvHTPhoCxcMuQ=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <24474024-0542-48e5-a1b8-bb534c7eeb4b@amd.com>
Date: Thu, 28 Aug 2025 20:16:33 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8 3/8] xen/cpufreq: implement amd-cppc driver for CPPC in
 passive mode
To: Jan Beulich <jbeulich@suse.com>, Penny Zheng <Penny.Zheng@amd.com>
CC: <ray.huang@amd.com>, 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: <20250828100306.1776031-1-Penny.Zheng@amd.com>
 <20250828100306.1776031-4-Penny.Zheng@amd.com>
 <b2712815-97c2-4473-bcf6-aae8517aad37@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <b2712815-97c2-4473-bcf6-aae8517aad37@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS2PEPF0000343E:EE_|LV2PR12MB5750:EE_
X-MS-Office365-Filtering-Correlation-Id: 058e924a-a394-4609-36e6-08dde693d9ef
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|82310400026|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?YXJScFhzSVFPSEZGN01VVEVrczFCQlc0d1ZVenhtTHl0dyt0dm1UclcwTXlG?=
 =?utf-8?B?aWJnL1Z3cHNieVhtckJWVEE0dnJTaFhtbzRLbXhxOTVBdFc1amhOUjArVXFI?=
 =?utf-8?B?dVJ0RVk1RVhBcEwxOWZxM0hIa1k5bXlIeGNkODhSbVJTdjdWaEdCZ3FhQXVy?=
 =?utf-8?B?OW1lbDF2RnBTKzVzOTI1RGpMaDFNcEtEZ21ZUUVNa2F3OS9wcXZMcHp5N1JU?=
 =?utf-8?B?YWgvdnRpV0VzaHFqc2hoVTdpSE45QnpuVkIrS1BuMmlNZDM2VWpqUHA0eUJO?=
 =?utf-8?B?TkFMcUhPZk5NV2pwRWpObzBxcFcwNTNSamNVUm55OUtnQ1ROK3hyUkgySGZ2?=
 =?utf-8?B?VEx3bHJxa3NuQ0c3NzEzelBOOFlmVDZLeHJibTNzdEhnY1NzZThLdnBLcUtZ?=
 =?utf-8?B?c0NhSFNKa3dGK0VJb2gwYmVtTmFMN01rb3I3NmVMT2IyN3RDcHV2MERzNTEz?=
 =?utf-8?B?UTU1ZzJzaVI3RllGeHowenJHWDZseWVHOWovZUN1L1o1VVgwM0k3eElzbldM?=
 =?utf-8?B?R3hKcWRZa2Z2UmluRDVoaHlGbWZVWUZzZGwxU25GNXI5aHRSVVVOcG9BZlNQ?=
 =?utf-8?B?eHhMWlZVWU1ITFVOazFNNnVqMjIrRkF2dHdTdU50ZWNuTzBxK1VNbWdDZzc1?=
 =?utf-8?B?RkgwVEk5eXp1Qk9LcDR1d21iMjlrQlhrUTRrRHhnTU5KTCtMSEwvVTVPS3o3?=
 =?utf-8?B?ZTBORjlCdjZGRGk3NFZnOTBKczJsN0hHSFY4UE1ZNTJVcVUwclBIYVU5Q3VL?=
 =?utf-8?B?L0Y3amJoTDBjVzJtV0ErUFcycVdhZFgyQldkZjZSS1k2dUNBcytnRkYwRFZm?=
 =?utf-8?B?UWlGSnVKWElsbnpWdTNoSVl4MVkzRVFhdWRiaGhMaDhQVHF2MjRWbzlxTEtt?=
 =?utf-8?B?RFVKK0E0SDdNc0VQUENEQWxVUWVHd1hLeUNtRVR5WldJMkxjL2d5bnlDelpn?=
 =?utf-8?B?bkdhYzBGWFBQZWMvTmgyVFhSeVNlS1c5YlhsNkZGclpuLzkzVXVHL1Z1elIx?=
 =?utf-8?B?SFc5WktIVFJjZ25KMHVXUjFMMC9QUlk4dlhydUZ4aEVmVC84MlNEb3RDVEMv?=
 =?utf-8?B?N3V1bk9mWC9VakNwU1haRDZMK0N0VTkzVEhJRzdFbE9WaGZmMGgzc1RSMDcv?=
 =?utf-8?B?OEMra0NUK05rNFhmR2dESWdwUGR1dmtxeWVFUVMyOWtjZitNRkVJVlc1b0F2?=
 =?utf-8?B?OXRJQjUrN0NaK0NNMVRLdW9hbUNoNVBXRW9GMHh2Z0MwbDkvL3dlQ0ZBTzZa?=
 =?utf-8?B?bmF2cCsxUmEyUGdBTU95OEdaRDNzdmlUTWIwUXpIdGlmUWVwYkorNXNQeGxr?=
 =?utf-8?B?RXpObXFCQjhGNmwvRWEyMFBRbWVEQTlmR25ONHBuMXZPTHpJdEZUWDhOYURj?=
 =?utf-8?B?WFo4UmJOV2Fpc2hMTlltcDl6a3Z6VkI2Slh6UnYwV1p4NGxpaGh0WHh5Q05w?=
 =?utf-8?B?UkZSL3VaaTJ4UytLRjhkclRkeHJuckk3cENIanYveDJjbW1VMDhnUm8ybHBX?=
 =?utf-8?B?cUs0SkdMQm5yRUtTMkw3Uk43TDdYMnBBZng0RzA1R2pHQnp2UkxrOHZQeEFJ?=
 =?utf-8?B?N0ZjcHNZSFRlNDF5bVQzemRDTzI0SU1iaUZyQ3BNL040bCtVL08zNlEwZ1JM?=
 =?utf-8?B?b1JpYXRvNnAzOGlnTTYvc1pOZlRRckxNYXdaYXd0empMalI3UnhqN3ZrMlNV?=
 =?utf-8?B?QkF3dUhTYnAvYnJlY0R4NzduSTJaUDl1VGI5NE5yYk5sSE4rS1k2UWVTT2xX?=
 =?utf-8?B?NGlpSW9xZVR4VnE3K1JORUc3V2wzWlBhcHZIMVI3OHc1bHY5a1dmRHpPcTFu?=
 =?utf-8?B?emdtTmNzTEcrZmFSeGpXaUYyei96eGhrQ1dHV2tVTGF1aE5rMUNzYm9IOGhG?=
 =?utf-8?B?OGt6QTRDa1A3c2dnSDlsSG9JODYxUjFCZ2xQeWo3cmtQWlJCWXNNK2N0ZmtV?=
 =?utf-8?B?NURsdkc2RFZRZkVuMlBBSWw2eGp3dDkrTFRJWkVJUHNUNlNpeGtTS3FtTXBs?=
 =?utf-8?B?b3BKUEt1eWI5UG1JTmI4RDZ2VWVNdTRPZ0c2NU1IMWpReDUrVTlHL1IwWWwy?=
 =?utf-8?Q?FIE3hZ?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(82310400026)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Aug 2025 00:34:44.6586
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 058e924a-a394-4609-36e6-08dde693d9ef
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS2PEPF0000343E.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV2PR12MB5750

On 2025-08-28 07:22, Jan Beulich wrote:
> On 28.08.2025 12:03, Penny Zheng wrote:
>> +static int cf_check amd_cppc_cpufreq_target(struct cpufreq_policy *policy,
>> +                                            unsigned int target_freq,
>> +                                            unsigned int relation)
>> +{
>> +    unsigned int cpu = policy->cpu;
>> +    const struct amd_cppc_drv_data *data = per_cpu(amd_cppc_drv_data, cpu);
> 
> I fear there's a problem here that I so far overlooked. As it happens, just
> yesterday I made a patch to eliminate cpufreq_drv_data[] global. In the
> course of doing so it became clear that in principle the CPU denoted by
> policy->cpu can be offline. Hence its per-CPU data is also unavailable. See
> cpufreq_add_cpu()'s invocation of .init() and cpufreq_del_cpu()'s invocation
> of .exit(). Is there anything well-hidden (and likely lacking some suitable
> comment) which guarantees that no two CPUs (threads) will be in the same
> domain? If not, I fear you simply can't use per-CPU data here.

Sorry, I'm confused by your use of "domain" here.  Do you mean a 
per_cpu(..., policy->cpu) access racing with a cpu offline?  I'm not 
away of anything preventing that, though I'm not particularly familiar 
with it.

do_pm_op() has:
     if ( op->cpuid >= nr_cpu_ids || !cpu_online(op->cpuid) )
         return -EINVAL;
     pmpt = processor_pminfo[op->cpuid];

and do_get_pm_info() has:
     if ( !op || (op->cpuid >= nr_cpu_ids) || !cpu_online(op->cpuid) )
         return -EINVAL;
     pmpt = processor_pminfo[op->cpuid];

But those are only at entry.

Regards,
Jason

> Since initially I was thinking of using per-CPU data also in my patch, I'm
> reproducing this in raw form below, for your reference. It's generally only
> 4.22 material now, of course. Yet in turn for your driver the new drv_data
> field may want to become a union, with an "acpi" and a "cppc" sub-struct.
> And possibly a "hwp" one: Jason, looks like the HWP driver has a similar
> issue (unless again something guarantees that no two CPUs / threads will
> be in the same domain).
> 
> Jan
> 
> cpufreq: eliminate cpufreq_drv_data[]
> 
> Possibly many slots of it may be unused (all of them when the HWP or CPPC
> drivers are in use), as it's always strictly associated with the CPU
> recorded in a policy (irrespective of that CPU intermediately being taken
> offline). It is shared by all CPUs sharing a policy. We could therefore
> put the respective pointers in struct cpufreq_policy, but even that level
> of indirection is pointless. Embed the driver data structure directly in
> the policy one.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> --- a/xen/arch/x86/acpi/cpufreq/acpi.c
> +++ b/xen/arch/x86/acpi/cpufreq/acpi.c
> @@ -174,17 +174,18 @@ static u32 get_cur_val(const cpumask_t *
>           return 0;
>   
>       policy = per_cpu(cpufreq_cpu_policy, cpu);
> -    if (!policy || !cpufreq_drv_data[policy->cpu])
> +    if ( !policy )
>           return 0;
>   
> -    switch (cpufreq_drv_data[policy->cpu]->arch_cpu_flags) {
> +    switch ( policy->drv_data.arch_cpu_flags )
> +    {
>       case SYSTEM_INTEL_MSR_CAPABLE:
>           cmd.type = SYSTEM_INTEL_MSR_CAPABLE;
>           cmd.addr.msr.reg = MSR_IA32_PERF_STATUS;
>           break;
>       case SYSTEM_IO_CAPABLE:
>           cmd.type = SYSTEM_IO_CAPABLE;
> -        perf = cpufreq_drv_data[policy->cpu]->acpi_data;
> +        perf = policy->drv_data.acpi_data;
>           cmd.addr.io.port = perf->control_register.address;
>           cmd.addr.io.bit_width = perf->control_register.bit_width;
>           break;
> @@ -210,9 +211,8 @@ static unsigned int cf_check get_cur_fre
>       if (!policy)
>           return 0;
>   
> -    data = cpufreq_drv_data[policy->cpu];
> -    if (unlikely(data == NULL ||
> -        data->acpi_data == NULL || data->freq_table == NULL))
> +    data = &policy->drv_data;
> +    if ( !data->acpi_data || !data->freq_table )
>           return 0;
>   
>       return extract_freq(get_cur_val(cpumask_of(cpu)), data);
> @@ -255,7 +255,7 @@ static int cf_check acpi_cpufreq_target(
>       struct cpufreq_policy *policy,
>       unsigned int target_freq, unsigned int relation)
>   {
> -    struct acpi_cpufreq_data *data = cpufreq_drv_data[policy->cpu];
> +    struct acpi_cpufreq_data *data = &policy->drv_data;
>       struct processor_performance *perf;
>       struct cpufreq_freqs freqs;
>       cpumask_t online_policy_cpus;
> @@ -265,10 +265,8 @@ static int cf_check acpi_cpufreq_target(
>       unsigned int j;
>       int result = 0;
>   
> -    if (unlikely(data == NULL ||
> -        data->acpi_data == NULL || data->freq_table == NULL)) {
> +    if ( !data->acpi_data || !data->freq_table )
>           return -ENODEV;
> -    }
>   
>       if (policy->turbo == CPUFREQ_TURBO_DISABLED)
>           if (target_freq > policy->cpuinfo.second_max_freq)
> @@ -334,11 +332,9 @@ static int cf_check acpi_cpufreq_target(
>   
>   static int cf_check acpi_cpufreq_verify(struct cpufreq_policy *policy)
>   {
> -    struct acpi_cpufreq_data *data;
>       struct processor_performance *perf;
>   
> -    if (!policy || !(data = cpufreq_drv_data[policy->cpu]) ||
> -        !processor_pminfo[policy->cpu])
> +    if ( !policy || !processor_pminfo[policy->cpu] )
>           return -EINVAL;
>   
>       perf = &processor_pminfo[policy->cpu]->perf;
> @@ -346,7 +342,7 @@ static int cf_check acpi_cpufreq_verify(
>       cpufreq_verify_within_limits(policy, 0,
>           perf->states[perf->platform_limit].core_frequency * 1000);
>   
> -    return cpufreq_frequency_table_verify(policy, data->freq_table);
> +    return cpufreq_frequency_table_verify(policy, policy->drv_data.freq_table);
>   }
>   
>   static unsigned long
> @@ -382,17 +378,11 @@ static int cf_check acpi_cpufreq_cpu_ini
>       unsigned int i;
>       unsigned int valid_states = 0;
>       unsigned int cpu = policy->cpu;
> -    struct acpi_cpufreq_data *data;
> +    struct acpi_cpufreq_data *data = &policy->drv_data;
>       unsigned int result = 0;
>       struct cpuinfo_x86 *c = &cpu_data[policy->cpu];
>       struct processor_performance *perf;
>   
> -    data = xzalloc(struct acpi_cpufreq_data);
> -    if (!data)
> -        return -ENOMEM;
> -
> -    cpufreq_drv_data[cpu] = data;
> -
>       data->acpi_data = &processor_pminfo[cpu]->perf;
>   
>       perf = data->acpi_data;
> @@ -409,23 +399,18 @@ static int cf_check acpi_cpufreq_cpu_ini
>           if (cpufreq_verbose)
>               printk("xen_pminfo: @acpi_cpufreq_cpu_init,"
>                      "HARDWARE addr space\n");
> -        if (!cpu_has(c, X86_FEATURE_EIST)) {
> -            result = -ENODEV;
> -            goto err_unreg;
> -        }
> +        if ( !cpu_has(c, X86_FEATURE_EIST) )
> +            return -ENODEV;
>           data->arch_cpu_flags = SYSTEM_INTEL_MSR_CAPABLE;
>           break;
>       default:
> -        result = -ENODEV;
> -        goto err_unreg;
> +        return -ENODEV;
>       }
>   
>       data->freq_table = xmalloc_array(struct cpufreq_frequency_table,
>                                       (perf->state_count+1));
> -    if (!data->freq_table) {
> -        result = -ENOMEM;
> -        goto err_unreg;
> -    }
> +    if ( !data->freq_table )
> +        return -ENOMEM;
>   
>       /* detect transition latency */
>       policy->cpuinfo.transition_latency = 0;
> @@ -483,23 +468,14 @@ static int cf_check acpi_cpufreq_cpu_ini
>       return result;
>   
>   err_freqfree:
> -    xfree(data->freq_table);
> -err_unreg:
> -    xfree(data);
> -    cpufreq_drv_data[cpu] = NULL;
> +    XFREE(data->freq_table);
>   
>       return result;
>   }
>   
>   static int cf_check acpi_cpufreq_cpu_exit(struct cpufreq_policy *policy)
>   {
> -    struct acpi_cpufreq_data *data = cpufreq_drv_data[policy->cpu];
> -
> -    if (data) {
> -        cpufreq_drv_data[policy->cpu] = NULL;
> -        xfree(data->freq_table);
> -        xfree(data);
> -    }
> +    XFREE(policy->drv_data.freq_table);
>   
>       return 0;
>   }
> --- a/xen/arch/x86/acpi/cpufreq/cpufreq.c
> +++ b/xen/arch/x86/acpi/cpufreq/cpufreq.c
> @@ -35,8 +35,6 @@
>   
>   #include <acpi/cpufreq/cpufreq.h>
>   
> -struct acpi_cpufreq_data *cpufreq_drv_data[NR_CPUS];
> -
>   struct perf_pair {
>       union {
>           struct {
> --- a/xen/arch/x86/acpi/cpufreq/powernow.c
> +++ b/xen/arch/x86/acpi/cpufreq/powernow.c
> @@ -84,16 +84,14 @@ static int cf_check powernow_cpufreq_tar
>       struct cpufreq_policy *policy,
>       unsigned int target_freq, unsigned int relation)
>   {
> -    struct acpi_cpufreq_data *data = cpufreq_drv_data[policy->cpu];
> +    struct acpi_cpufreq_data *data = &policy->drv_data;
>       struct processor_performance *perf;
>       unsigned int next_state; /* Index into freq_table */
>       unsigned int next_perf_state; /* Index into perf table */
>       int result;
>   
> -    if (unlikely(data == NULL ||
> -        data->acpi_data == NULL || data->freq_table == NULL)) {
> +    if ( !data->acpi_data || !data->freq_table )
>           return -ENODEV;
> -    }
>   
>       perf = data->acpi_data;
>       result = cpufreq_frequency_table_target(policy,
> @@ -185,11 +183,9 @@ static void cf_check get_cpu_data(void *
>   
>   static int cf_check powernow_cpufreq_verify(struct cpufreq_policy *policy)
>   {
> -    struct acpi_cpufreq_data *data;
>       struct processor_performance *perf;
>   
> -    if (!policy || !(data = cpufreq_drv_data[policy->cpu]) ||
> -        !processor_pminfo[policy->cpu])
> +    if ( !policy || !processor_pminfo[policy->cpu] )
>           return -EINVAL;
>   
>       perf = &processor_pminfo[policy->cpu]->perf;
> @@ -197,7 +193,7 @@ static int cf_check powernow_cpufreq_ver
>       cpufreq_verify_within_limits(policy, 0,
>           perf->states[perf->platform_limit].core_frequency * 1000);
>   
> -    return cpufreq_frequency_table_verify(policy, data->freq_table);
> +    return cpufreq_frequency_table_verify(policy, policy->drv_data.freq_table);
>   }
>   
>   static int cf_check powernow_cpufreq_cpu_init(struct cpufreq_policy *policy)
> @@ -205,18 +201,12 @@ static int cf_check powernow_cpufreq_cpu
>       unsigned int i;
>       unsigned int valid_states = 0;
>       unsigned int cpu = policy->cpu;
> -    struct acpi_cpufreq_data *data;
> +    struct acpi_cpufreq_data *data = &policy->drv_data;
>       unsigned int result = 0;
>       struct processor_performance *perf;
>       struct amd_cpu_data info;
>       struct cpuinfo_x86 *c = &cpu_data[policy->cpu];
>   
> -    data = xzalloc(struct acpi_cpufreq_data);
> -    if (!data)
> -        return -ENOMEM;
> -
> -    cpufreq_drv_data[cpu] = data;
> -
>       data->acpi_data = &processor_pminfo[cpu]->perf;
>   
>       info.perf = perf = data->acpi_data;
> @@ -228,8 +218,7 @@ static int cf_check powernow_cpufreq_cpu
>           if (cpumask_weight(policy->cpus) != 1) {
>               printk(XENLOG_WARNING "Unsupported sharing type %d (%u CPUs)\n",
>                      policy->shared_type, cpumask_weight(policy->cpus));
> -            result = -ENODEV;
> -            goto err_unreg;
> +            return -ENODEV;
>           }
>       } else {
>           cpumask_copy(policy->cpus, cpumask_of(cpu));
> @@ -238,21 +227,16 @@ static int cf_check powernow_cpufreq_cpu
>       /* capability check */
>       if (perf->state_count <= 1) {
>           printk("No P-States\n");
> -        result = -ENODEV;
> -        goto err_unreg;
> +        return -ENODEV;
>       }
>   
> -    if (perf->control_register.space_id != perf->status_register.space_id) {
> -        result = -ENODEV;
> -        goto err_unreg;
> -    }
> +    if ( perf->control_register.space_id != perf->status_register.space_id )
> +        return -ENODEV;
>   
>       data->freq_table = xmalloc_array(struct cpufreq_frequency_table,
>                                       (perf->state_count+1));
> -    if (!data->freq_table) {
> -        result = -ENOMEM;
> -        goto err_unreg;
> -    }
> +    if ( !data->freq_table )
> +        return -ENOMEM;
>   
>       /* detect transition latency */
>       policy->cpuinfo.transition_latency = 0;
> @@ -298,23 +282,14 @@ static int cf_check powernow_cpufreq_cpu
>       return result;
>   
>   err_freqfree:
> -    xfree(data->freq_table);
> -err_unreg:
> -    xfree(data);
> -    cpufreq_drv_data[cpu] = NULL;
> +    XFREE(data->freq_table);
>   
>       return result;
>   }
>   
>   static int cf_check powernow_cpufreq_cpu_exit(struct cpufreq_policy *policy)
>   {
> -    struct acpi_cpufreq_data *data = cpufreq_drv_data[policy->cpu];
> -
> -    if (data) {
> -        cpufreq_drv_data[policy->cpu] = NULL;
> -        xfree(data->freq_table);
> -        xfree(data);
> -    }
> +    XFREE(policy->drv_data.freq_table);
>   
>       return 0;
>   }
> --- a/xen/include/acpi/cpufreq/cpufreq.h
> +++ b/xen/include/acpi/cpufreq/cpufreq.h
> @@ -37,8 +37,6 @@ struct acpi_cpufreq_data {
>       unsigned int arch_cpu_flags;
>   };
>   
> -extern struct acpi_cpufreq_data *cpufreq_drv_data[NR_CPUS];
> -
>   struct cpufreq_cpuinfo {
>       unsigned int        max_freq;
>       unsigned int        second_max_freq;    /* P1 if Turbo Mode is on */
> @@ -80,6 +78,8 @@ struct cpufreq_policy {
>       int8_t              turbo;  /* tristate flag: 0 for unsupported
>                                    * -1 for disable, 1 for enabled
>                                    * See CPUFREQ_TURBO_* below for defines */
> +
> +    struct acpi_cpufreq_data drv_data;
>   };
>   DECLARE_PER_CPU(struct cpufreq_policy *, cpufreq_cpu_policy);
>   
> 



From xen-devel-bounces@lists.xenproject.org Fri Aug 29 03:30:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 03:30:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100453.1453897 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urpp0-0000sg-4k; Fri, 29 Aug 2025 03:30:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100453.1453897; Fri, 29 Aug 2025 03:30: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 1urpp0-0000sY-06; Fri, 29 Aug 2025 03:30:38 +0000
Received: by outflank-mailman (input) for mailman id 1100453;
 Fri, 29 Aug 2025 03:30:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=kgkH=3J=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1urpoz-0000sS-2A
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 03:30:37 +0000
Received: from NAM11-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam11on2062f.outbound.protection.outlook.com
 [2a01:111:f403:2414::62f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 84d7f7c1-8488-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 05:30:33 +0200 (CEST)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 LV2PR12MB5894.namprd12.prod.outlook.com (2603:10b6:408:174::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Fri, 29 Aug
 2025 03:30:30 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::b04e:2da5:7189:4c4d%7]) with mapi id 15.20.9052.019; Fri, 29 Aug 2025
 03:30: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>
X-Inumbo-ID: 84d7f7c1-8488-11f0-8adc-4578a1afcccb
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=i9dRTBq68dgJ9wEZeADv2wXD/MKBV0baL8EpHiF4lzLuizDURfpYOHQ1H6Yg9zYu2fmVcFKmQsd1WZgmEZeo3gvFTJOOZjBsW9szOJW7hOCAhYcSLtXNluLN+RXowsvkg6ozWzUnOINwHv5ebJeLs9aBNxL/Th5UavdbOIumkAgaUN3SRSn/xG3084DbmQeVzPGji78MvLemcKyC5L5yS9O2kIpLUp7FG6cfwr7sl/95katadVu5qBDW367knHGnMh6eHuI1XRlw8qOwifj8fWc+Z5HJw1oxPtDMLA59LEzt5xgbXyxEOo8eQknv36whZS1YCFG6scUVtLgT1xN8GA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=qIrR5adnRtTdmQXQipXq47L0SOfR43FZUW+vXQQgMJw=;
 b=AYyY5QwUSgWuMFsIRsD9ggPzxwtLJHeUzLcnFKG8ntdVMQRSNs2MCCYZXJqCfsO+Sz8kDKP66dma/mccdtWHpq1XTgTH9zE+LEJ+ZOCr0Dxs9XwQ4kq1MreMuLY5ty5vxON7VpnYuNkr6ar3i2dPuELmaaohM9QIf1bqRYWOMuf085cfNhfSMBBV6ZqJA52a5simMV/1aRPOI5oUVUAjarAt87M5ewlUHs/N6o0NTSkelljec743yuPfKgRjL/mXcsGv5YijraZQ7Eu6QUgIeZtTxTsdE3iN9sMuk/guxe3MncTKCxdVF0n+BwTM3wGGchxU9pnhOCFUse/c40A0DQ==
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=qIrR5adnRtTdmQXQipXq47L0SOfR43FZUW+vXQQgMJw=;
 b=3WkAzbPeJMHQ42/yVyS2W/0/WgS76MYjRZ93k3c8QMcIReJwrlA/gpdzsedAlJkAe3/rU3Jjg6VfsSRARlIxFmCm/lmnzjgXlD/W2uomuVjdxTg3v5heKt0Xi9HKAyl2zJ5UkUskK2wLNL9BUmQ5QNrpmRI0nGs69A8OrpZEkZg=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>, "Andryuk, Jason" <Jason.Andryuk@amd.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Orzel,
 Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: RE: [PATCH v8 3/8] xen/cpufreq: implement amd-cppc driver for CPPC in
 passive mode
Thread-Topic: [PATCH v8 3/8] xen/cpufreq: implement amd-cppc driver for CPPC
 in passive mode
Thread-Index: AQHcGAMPJXzUCwqDQEuHduiQbQ8QbbR37ByAgAEJOqA=
Date: Fri, 29 Aug 2025 03:30:29 +0000
Message-ID:
 <DM4PR12MB8451D6ACE480227632A8156FE13AA@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20250828100306.1776031-1-Penny.Zheng@amd.com>
 <20250828100306.1776031-4-Penny.Zheng@amd.com>
 <b2712815-97c2-4473-bcf6-aae8517aad37@suse.com>
In-Reply-To: <b2712815-97c2-4473-bcf6-aae8517aad37@suse.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
 MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-08-29T03:29:19.0000000Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open
 Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=amd.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM4PR12MB8451:EE_|LV2PR12MB5894:EE_
x-ms-office365-filtering-correlation-id: 9023207c-b906-48ed-f4c3-08dde6ac6761
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?a2czOUlYSWx3dnlVS1hBdnAwTkZYbmhGRFEzMEp6RVhOZjB2b2NDWlBDTEF3?=
 =?utf-8?B?ZUFtRW1OMDd0NUZUaFByRjd0MWZvby9tMG1oc3B2Y1lVTDE2WkpURHRnQk9X?=
 =?utf-8?B?a1BuVmNRb2pxS0dEL2drdkUrYVJIZU9PeFZXSzlXSEhTV3BSUnhLVGxXQXNk?=
 =?utf-8?B?UGhaK2U4Y2xXd3BFZVdpc3JCY1UwVE85djEvci9LWGtPWnU0WitCd2dXd2Ju?=
 =?utf-8?B?VjRSeXpqRnIzMXdUbEQxUHBZV1lSY1VmS2RIbUxva05mUUltaUlMckJhcFBl?=
 =?utf-8?B?SzR3OXlHKzVIWVFFNStTR01QL3pTTUZWYVRhVW04dTI0d3JKbjVkeTc3Y2gz?=
 =?utf-8?B?TTlpNXBTTVJPbFE2Tjh6WHRlbk56MGdtQTIyMEFCaEtFUXhpSkdGbzEwRCtT?=
 =?utf-8?B?d090NzB4TUpmMTBmTU52NDlOQ1BieTRNb1duTkEzTlB1WFZJdTBOM3BrcWVY?=
 =?utf-8?B?bnZ3TU03VUVTSXRqWTd6ZFJlRVc2ai9aMFRxVEsyNm96amp2dUp3bHJLalFp?=
 =?utf-8?B?UWp3ZXFQYk1aUy9GNE1jQTh4ak0razlUUjEwZTR4aTNCUC9jTDhXTHlSME44?=
 =?utf-8?B?ZzUrUDV3MzQ1Q2QxeDdvMFd4eTcvendETUJLdE1UUG5OMjdJanByZ2V6S1JO?=
 =?utf-8?B?UFhCaXNOVXBsOFAwSVZYampjcVlrY2liTzdlLzhtbkpsWmlINzhhTWIvMzAv?=
 =?utf-8?B?T05JWk5PbkdHdjZNemYrSUFMQ3RjdjQ4QkoxaTJDRW8wQmpJR0NkaC9aV0Jx?=
 =?utf-8?B?Sm5BQjhmL2ErakJFY3J6ZnI2WGVwclBzTUgrNmRoNWpaS085WmZGTWNERDVk?=
 =?utf-8?B?UHhaWjV0WTZvWTVKb255MTc2UEJwMFhmcmxUVTYxYndaNm1kMlhKbEd0TEIy?=
 =?utf-8?B?b0YrajJLTVhJMlRpZDVSd0dZTytzVFFsQmpTN0ZjRGJnWjcrcHVSaVNSai9s?=
 =?utf-8?B?azNjNE9QaGl1NnN0UlUvT1BNM1FrSnJsdG1iM295bU9HVjB2Mk5URERDTFBs?=
 =?utf-8?B?VnN1aUlQbXFINlN6M0wwa0g1Mi95OS9WcVoyVkJiRTI5T0F3WDNjbVBuakR1?=
 =?utf-8?B?SmZ6U2FMdjlQeTM3N2Y2b1IxdFNvbVc5ZHcxdi9FZ0RPOVhsNUM4VjJ6dHRQ?=
 =?utf-8?B?aUN0dGRpODgvV2kzSVM2Q1RRVTNBR2llY1FQUjZ4emFjYnV4b1ZvcjB1ZmJy?=
 =?utf-8?B?L3JwN1MwZGlBeWxSTk9SZlkvTlRhMFNNcEFwL1Vqa2FjL2MvN09SbEwrTHVn?=
 =?utf-8?B?alkrWmlUczlIZGkxNzd3Yms1ZVk2ckY0Q3JuWW4ySHhYWmxaYVdidGlqamMw?=
 =?utf-8?B?N2FwQ2lpbFpGTEV3bUJwL0hrekljdGQzWWU0VGIyNElEemFXTTZFcHJUSDlW?=
 =?utf-8?B?OUc1V2JSdWc1TEpsQ2FjUVNLcnVlZjlyUXVvNEZxZWJJRjlqVVB5Qjlvb3VY?=
 =?utf-8?B?OWhGOXZSNzV1V1cwcUpBc1hpYlhuN3k1TXlWZHppWFQveXY0NU5XbDN3cUN3?=
 =?utf-8?B?bk9oVFVKMS94UEgxMmpibUo3cEQxNXVXMXVvRzFHOWdqbXZBOGdIaFU1OUFr?=
 =?utf-8?B?MXVrcnFGSFBlVENBeEtHWkRXR2p4aDhqd1lsTFA3V3dWS1pReUM2VDBPMHhC?=
 =?utf-8?B?WU5USGVIbW1GRE5CRmRqSnVkZDRvdlovais1UWRuNTlNRFpUbDhWK2MyTGlY?=
 =?utf-8?B?RHZvZXBGTW40UkJHN1BhVnI5ZStwby9ubHpZQkd2L05RcHBZTDljZzRRb1pj?=
 =?utf-8?B?TUZzckEyOWs2dDNUZ0VRSitta2xaQWJMcVdPWW1xVEo3cnJxT2hXamt6QlY2?=
 =?utf-8?B?K3BFcG1RUklNLzU5UU1hSGp4VTB4d1FvQ3FNbVpmdStaZjg2a09BSzFDekhn?=
 =?utf-8?B?eEUrWEcxcGQxdVR1Y001VVVyVURHT1VwdWYzRkdKMzVBZXRxOWlKZEh4MVBG?=
 =?utf-8?B?Slh6bjFEckZCMnpyR1A4SGhWd2FwR25CVEM3ak9HTDlsNnUzUVc4Q2YrVkho?=
 =?utf-8?B?SGNlREQzTG9nPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB8451.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?bUE2YlNSNk1HQWFoakkvdjkveEJiek1GZ0ovMEtOK1ViN2Y3WU5PKzlrUzJa?=
 =?utf-8?B?MTNJREQvN25vRnFHdWp4NWdDVXRYT01Jdi9KMDNRQzIwdGNOSndpSzlqeEgx?=
 =?utf-8?B?clJtYTg3eUM4Vzk5U0xaMXBBZ2tXQXpiS05VSk9FVWwwVFdtQzlhWDk1SThI?=
 =?utf-8?B?R3hyQXNQa3ZwWEpIUGszMlVDZi96aGVXSkhxYzZqWU9iUlF2TmF4UjRRMm1B?=
 =?utf-8?B?VUM0Zmg1MldtU1JxQlM4Q1R6anhCbjdsVTFPOWs2N21UL3QwUHUrMEJqS3dQ?=
 =?utf-8?B?a0JjVElSQmlaeXRaSFhydWVxcjNUSmg1U0xtc2kwbmFrQkVDQUxUeENaR1pw?=
 =?utf-8?B?MzM5NzhoU2ZOY2pqOHhvamx4YWVldkd3OVNidmZITnVJZmoyZGV4eUVuV2xt?=
 =?utf-8?B?MDBIVEZmZmFTWTB3WUlDZlZLQ294cThKWncvdTdkWWQ1NkV4NVNubGh6dnhm?=
 =?utf-8?B?OTRzU3VOYVJVa3h0MFlzalEydDRmdFZFVEIwZ0EzN1ByckFUV2FzWFRGQTY2?=
 =?utf-8?B?d1NzNTE0OXJIVmp3ZXVlWnkxUzE0Mm9hQVMzbDlXcTZlTDdvdnAxbUF3Zmdw?=
 =?utf-8?B?V2JhUDRXbThrNlBYUG5FMDNBVTNUakJ1NU1PNVBPTnZVUXJFenJvSnpWbGw1?=
 =?utf-8?B?NWs2eFptcVErUlZSWmVoV1RncjhhUFFPU2dCc0JnQzMzazZGeFlwMGpmMWt4?=
 =?utf-8?B?VzZBckFwVXFXWE1YUlNTSk8rYkNsWVlxZThGd3ljYjdNNXY3a1p4Q2R0UWRy?=
 =?utf-8?B?MWNOSCtpRzlTYnN1MDFnV0RtdGVZWGJKeUJ1a3NqSmNLTk40OG11R1dPYWc0?=
 =?utf-8?B?eHpXU3BRMmVjWHJpdmZhYXhQLzZEU3QvTTF1Y3FoNmMzcFRFTDYyVDJVSUcw?=
 =?utf-8?B?NnE3dk1aeDZudUpCeFhxNU03S1hZb3hOeXBkY2RiWEhRS2dPKzFLR0ZOanRX?=
 =?utf-8?B?SnlvR0FnNjkxZHJ0SWNUczhMWlFFczZzbnV1ZlpmMURzRDQrem5XeisrUXJR?=
 =?utf-8?B?OFVYcDhQcU1VNGJqRVA3Uk5lQ3dNZHhTZnp4R2d4NUxRUzFVTlRhMVhMRFMw?=
 =?utf-8?B?K3lsTzNhQkV6VjBWM29xdGFFWGFlN1J2WXV5eDk5c0pUYXJ4WHFEZGYzV1lF?=
 =?utf-8?B?M042SytNN1JKbUcrZmMwUW5PU3pqZ0pLV1RJWUtIT2FFaDd2RmV3TFFpbVZB?=
 =?utf-8?B?aWtTbW5OMFZSRWV1TThyZW1SbXpFaTNiWGNRQmF4Vzl1WjZuUTltdEtRejRR?=
 =?utf-8?B?b0tzL3YvbTNtMkpQS2I3UlJ4Mi84L1lNREtzVGFJTjU3czBZT1o1c2tyMDBl?=
 =?utf-8?B?QWZtcE9QQ2RRNDlsZ2tndnJ3NTFGV3ppSCtSMzRHV1pwdVNta0dyeUVNMEpK?=
 =?utf-8?B?WFJBdklyR3ZDTnliRmFzZ21MVnNscFpXRmd3U01jQXlzb2dUTzY3UGV3RS9i?=
 =?utf-8?B?My8xM0tXeWt6M1c4cTlwT2lYcjFQMUNsNVd0eTBJNmQxK0VraUJHdUxtdTV5?=
 =?utf-8?B?TWVhd1hlT3JNMVh3elY3VVdNYWNQZXd1aE1ETUMxQ24vNTBoZzg0VWpGNW96?=
 =?utf-8?B?YmFZSmRRd2lRdGRiWWp2TC9SWUdodk9WNTZQUlJpZGdaTHFWMXhNZy9BeU5J?=
 =?utf-8?B?NXFsREljaWxZODlkSFRYTmNGeWs5SUg5L0d5NSs4M01SYlVsbFR2Uloyay9B?=
 =?utf-8?B?bzZwVFduSlp3cGMxYXl4b3JQajdUUlNGVm9lS0lTSXVBaW1yRU0rVDVGbDVC?=
 =?utf-8?B?STdWNXFJRXpPMjlkdkh2ZlpDTWRHZ1JqYXgvUy90Nlp3aFlTdTl6akNXRm5Z?=
 =?utf-8?B?N2d3bktibm9pM0E3M3pPRnB3ZzVVNHk2bmxhRFFta2NQeDV4YWhZU0YzUnI1?=
 =?utf-8?B?U0hROUFIOEJFaUczZkFNQmFNWjhoZ2hZYzducWRTcmk0dzUwMWlmaEQwdjhh?=
 =?utf-8?B?dkdLTkhUUmdDTm0zMmdFcUdOeGxnaFpxQk1xT0x2YmtXSktrRCtNUEk5aEQ4?=
 =?utf-8?B?K3c0eVk2SDlOVk1LcEFSa0NiZWJNQmlwZE9KZXRsS0xLNmk4RGx1SGM5Vjd6?=
 =?utf-8?B?MUJTWndHZndwSzFMS2NPWEhyVVVoc0JBY05XVEQvY1NVcXkzNzZEcHh4Z1Qr?=
 =?utf-8?Q?WB7A=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB8451.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9023207c-b906-48ed-f4c3-08dde6ac6761
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Aug 2025 03:30:29.9102
 (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: 4imq7YtSVx46K2yxdeCCTe9hBwGN12CZOl0goDnsZhJFxdPHVNDmIA5AKf4lvEOJTGEtVmDbOwTfdhwKw9fKog==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV2PR12MB5894

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFRodXJzZGF5LCBBdWd1c3QgMjgsIDIw
MjUgNzoyMyBQTQ0KPiBUbzogUGVubnksIFpoZW5nIDxwZW5ueS56aGVuZ0BhbWQuY29tPjsgQW5k
cnl1aywgSmFzb24NCj4gPEphc29uLkFuZHJ5dWtAYW1kLmNvbT4NCj4gQ2M6IEh1YW5nLCBSYXkg
PFJheS5IdWFuZ0BhbWQuY29tPjsgQW5kcmV3IENvb3Blcg0KPiA8YW5kcmV3LmNvb3BlcjNAY2l0
cml4LmNvbT47IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPjsNCj4gQW50
aG9ueSBQRVJBUkQgPGFudGhvbnkucGVyYXJkQHZhdGVzLnRlY2g+OyBPcnplbCwgTWljaGFsDQo+
IDxNaWNoYWwuT3J6ZWxAYW1kLmNvbT47IEp1bGllbiBHcmFsbCA8anVsaWVuQHhlbi5vcmc+OyBT
dGVmYW5vIFN0YWJlbGxpbmkNCj4gPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+OyB4ZW4tZGV2ZWxA
bGlzdHMueGVucHJvamVjdC5vcmcNCj4gU3ViamVjdDogUmU6IFtQQVRDSCB2OCAzLzhdIHhlbi9j
cHVmcmVxOiBpbXBsZW1lbnQgYW1kLWNwcGMgZHJpdmVyIGZvciBDUFBDDQo+IGluIHBhc3NpdmUg
bW9kZQ0KPg0KPiBPbiAyOC4wOC4yMDI1IDEyOjAzLCBQZW5ueSBaaGVuZyB3cm90ZToNCj4gPiAr
c3RhdGljIGludCBjZl9jaGVjayBhbWRfY3BwY19jcHVmcmVxX3RhcmdldChzdHJ1Y3QgY3B1ZnJl
cV9wb2xpY3kgKnBvbGljeSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB1bnNpZ25lZCBpbnQgdGFyZ2V0X2ZyZXEsDQo+ID4gKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHJlbGF0aW9uKSB7DQo+
ID4gKyAgICB1bnNpZ25lZCBpbnQgY3B1ID0gcG9saWN5LT5jcHU7DQo+ID4gKyAgICBjb25zdCBz
dHJ1Y3QgYW1kX2NwcGNfZHJ2X2RhdGEgKmRhdGEgPSBwZXJfY3B1KGFtZF9jcHBjX2Rydl9kYXRh
LA0KPiA+ICtjcHUpOw0KPg0KPiBJIGZlYXIgdGhlcmUncyBhIHByb2JsZW0gaGVyZSB0aGF0IEkg
c28gZmFyIG92ZXJsb29rZWQuIEFzIGl0IGhhcHBlbnMsIGp1c3QNCj4geWVzdGVyZGF5IEkgbWFk
ZSBhIHBhdGNoIHRvIGVsaW1pbmF0ZSBjcHVmcmVxX2Rydl9kYXRhW10gZ2xvYmFsLiBJbiB0aGUg
Y291cnNlIG9mDQo+IGRvaW5nIHNvIGl0IGJlY2FtZSBjbGVhciB0aGF0IGluIHByaW5jaXBsZSB0
aGUgQ1BVIGRlbm90ZWQgYnkNCj4gcG9saWN5LT5jcHUgY2FuIGJlIG9mZmxpbmUuIEhlbmNlIGl0
cyBwZXItQ1BVIGRhdGEgaXMgYWxzbyB1bmF2YWlsYWJsZS4NCj4gcG9saWN5LT5TZWUNCj4gY3B1
ZnJlcV9hZGRfY3B1KCkncyBpbnZvY2F0aW9uIG9mIC5pbml0KCkgYW5kIGNwdWZyZXFfZGVsX2Nw
dSgpJ3MgaW52b2NhdGlvbg0KPiBvZiAuZXhpdCgpLiBJcyB0aGVyZSBhbnl0aGluZyB3ZWxsLWhp
ZGRlbiAoYW5kIGxpa2VseSBsYWNraW5nIHNvbWUgc3VpdGFibGUNCj4gY29tbWVudCkgd2hpY2gg
Z3VhcmFudGVlcyB0aGF0IG5vIHR3byBDUFVzICh0aHJlYWRzKSB3aWxsIGJlIGluIHRoZSBzYW1l
DQo+IGRvbWFpbj8gSWYgbm90LCBJIGZlYXIgeW91IHNpbXBseSBjYW4ndCB1c2UgcGVyLUNQVSBk
YXRhIGhlcmUuDQo+DQoNCkNvcnJlY3QgbWUgaWYgSSB1bmRlcnN0YW5kIHlvdSB3cm9uZ2x5Og0K
Tm8sIG15IGVudiBpcyBhbHdheXMgcGVyIHBjcHUgcGVyIGNwdWZyZXEgZG9tYWluLiBTbyBpdCBu
ZXZlciBvY2N1cnJlZCB0byBtZSB0aGF0IGNwdXMsIG90aGVyIHRoYW4gdGhlIGZpcnN0IG9uZSBp
biBkb21haW4sIHdpbGwgbmV2ZXIgY2FsbCAuaW5pdCgpLCBhbmQgb2YgY291cnNlLCBubyBwZXJf
Y3B1KGFtZF9jcHBjX2Rydl9kYXRhKSBldmVyIGdldHMgYWxsb2NhdGVkIHRoZW4uDQoNCj4gU2lu
Y2UgaW5pdGlhbGx5IEkgd2FzIHRoaW5raW5nIG9mIHVzaW5nIHBlci1DUFUgZGF0YSBhbHNvIGlu
IG15IHBhdGNoLCBJJ20NCj4gcmVwcm9kdWNpbmcgdGhpcyBpbiByYXcgZm9ybSBiZWxvdywgZm9y
IHlvdXIgcmVmZXJlbmNlLiBJdCdzIGdlbmVyYWxseSBvbmx5DQo+IDQuMjIgbWF0ZXJpYWwgbm93
LCBvZiBjb3Vyc2UuIFlldCBpbiB0dXJuIGZvciB5b3VyIGRyaXZlciB0aGUgbmV3IGRydl9kYXRh
IGZpZWxkDQo+IG1heSB3YW50IHRvIGJlY29tZSBhIHVuaW9uLCB3aXRoIGFuICJhY3BpIiBhbmQg
YSAiY3BwYyIgc3ViLXN0cnVjdC4NCg0KSG93IGFib3V0IEkgZW1iZWQgbXkgbmV3IGRyaXZlciBk
YXRhICIgc3RydWN0IGFtZF9jcHBjX2Rydl9kYXRhICogIiBpbnRvIGNwdWZyZXEgcG9saWN5LCBt
YXliZSBwb2ludGVyIGlzIGVub3VnaD8NCkxhdGVyLCBtYXliZSwgYWxsICJjcHBjIiwgImFjcGki
IGFuZCAiaHdwIiBjb3VsZCBjb25zdGl0dXRlIGFuIHVuaW9uIGluIHBvbGljeS4NCg0KPiBBbmQg
cG9zc2libHkgYSAiaHdwIiBvbmU6IEphc29uLCBsb29rcyBsaWtlIHRoZSBIV1AgZHJpdmVyIGhh
cyBhIHNpbWlsYXIgaXNzdWUNCj4gKHVubGVzcyBhZ2FpbiBzb21ldGhpbmcgZ3VhcmFudGVlcyB0
aGF0IG5vIHR3byBDUFVzIC8gdGhyZWFkcyB3aWxsIGJlIGluIHRoZQ0KPiBzYW1lIGRvbWFpbiku
DQo+DQo+IEphbg0KPg0KPiBjcHVmcmVxOiBlbGltaW5hdGUgY3B1ZnJlcV9kcnZfZGF0YVtdDQo+
DQo+IFBvc3NpYmx5IG1hbnkgc2xvdHMgb2YgaXQgbWF5IGJlIHVudXNlZCAoYWxsIG9mIHRoZW0g
d2hlbiB0aGUgSFdQIG9yIENQUEMNCj4gZHJpdmVycyBhcmUgaW4gdXNlKSwgYXMgaXQncyBhbHdh
eXMgc3RyaWN0bHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBDUFUgcmVjb3JkZWQgaW4gYQ0KPiBwb2xp
Y3kgKGlycmVzcGVjdGl2ZSBvZiB0aGF0IENQVSBpbnRlcm1lZGlhdGVseSBiZWluZyB0YWtlbiBv
ZmZsaW5lKS4gSXQgaXMgc2hhcmVkIGJ5DQo+IGFsbCBDUFVzIHNoYXJpbmcgYSBwb2xpY3kuIFdl
IGNvdWxkIHRoZXJlZm9yZSBwdXQgdGhlIHJlc3BlY3RpdmUgcG9pbnRlcnMgaW4gc3RydWN0DQo+
IGNwdWZyZXFfcG9saWN5LCBidXQgZXZlbiB0aGF0IGxldmVsIG9mIGluZGlyZWN0aW9uIGlzIHBv
aW50bGVzcy4gRW1iZWQgdGhlIGRyaXZlcg0KPiBkYXRhIHN0cnVjdHVyZSBkaXJlY3RseSBpbiB0
aGUgcG9saWN5IG9uZS4NCj4NCj4gU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNo
QHN1c2UuY29tPg0KPg0KPiAtLS0gYS94ZW4vYXJjaC94ODYvYWNwaS9jcHVmcmVxL2FjcGkuYw0K
PiArKysgYi94ZW4vYXJjaC94ODYvYWNwaS9jcHVmcmVxL2FjcGkuYw0KPiBAQCAtMTc0LDE3ICsx
NzQsMTggQEAgc3RhdGljIHUzMiBnZXRfY3VyX3ZhbChjb25zdCBjcHVtYXNrX3QgKg0KPiAgICAg
ICAgICByZXR1cm4gMDsNCj4NCj4gICAgICBwb2xpY3kgPSBwZXJfY3B1KGNwdWZyZXFfY3B1X3Bv
bGljeSwgY3B1KTsNCj4gLSAgICBpZiAoIXBvbGljeSB8fCAhY3B1ZnJlcV9kcnZfZGF0YVtwb2xp
Y3ktPmNwdV0pDQo+ICsgICAgaWYgKCAhcG9saWN5ICkNCj4gICAgICAgICAgcmV0dXJuIDA7DQo+
DQo+IC0gICAgc3dpdGNoIChjcHVmcmVxX2Rydl9kYXRhW3BvbGljeS0+Y3B1XS0+YXJjaF9jcHVf
ZmxhZ3MpIHsNCj4gKyAgICBzd2l0Y2ggKCBwb2xpY3ktPmRydl9kYXRhLmFyY2hfY3B1X2ZsYWdz
ICkNCj4gKyAgICB7DQo+ICAgICAgY2FzZSBTWVNURU1fSU5URUxfTVNSX0NBUEFCTEU6DQo+ICAg
ICAgICAgIGNtZC50eXBlID0gU1lTVEVNX0lOVEVMX01TUl9DQVBBQkxFOw0KPiAgICAgICAgICBj
bWQuYWRkci5tc3IucmVnID0gTVNSX0lBMzJfUEVSRl9TVEFUVVM7DQo+ICAgICAgICAgIGJyZWFr
Ow0KPiAgICAgIGNhc2UgU1lTVEVNX0lPX0NBUEFCTEU6DQo+ICAgICAgICAgIGNtZC50eXBlID0g
U1lTVEVNX0lPX0NBUEFCTEU7DQo+IC0gICAgICAgIHBlcmYgPSBjcHVmcmVxX2Rydl9kYXRhW3Bv
bGljeS0+Y3B1XS0+YWNwaV9kYXRhOw0KPiArICAgICAgICBwZXJmID0gcG9saWN5LT5kcnZfZGF0
YS5hY3BpX2RhdGE7DQo+ICAgICAgICAgIGNtZC5hZGRyLmlvLnBvcnQgPSBwZXJmLT5jb250cm9s
X3JlZ2lzdGVyLmFkZHJlc3M7DQo+ICAgICAgICAgIGNtZC5hZGRyLmlvLmJpdF93aWR0aCA9IHBl
cmYtPmNvbnRyb2xfcmVnaXN0ZXIuYml0X3dpZHRoOw0KPiAgICAgICAgICBicmVhazsNCj4gQEAg
LTIxMCw5ICsyMTEsOCBAQCBzdGF0aWMgdW5zaWduZWQgaW50IGNmX2NoZWNrIGdldF9jdXJfZnJl
DQo+ICAgICAgaWYgKCFwb2xpY3kpDQo+ICAgICAgICAgIHJldHVybiAwOw0KPg0KPiAtICAgIGRh
dGEgPSBjcHVmcmVxX2Rydl9kYXRhW3BvbGljeS0+Y3B1XTsNCj4gLSAgICBpZiAodW5saWtlbHko
ZGF0YSA9PSBOVUxMIHx8DQo+IC0gICAgICAgIGRhdGEtPmFjcGlfZGF0YSA9PSBOVUxMIHx8IGRh
dGEtPmZyZXFfdGFibGUgPT0gTlVMTCkpDQo+ICsgICAgZGF0YSA9ICZwb2xpY3ktPmRydl9kYXRh
Ow0KPiArICAgIGlmICggIWRhdGEtPmFjcGlfZGF0YSB8fCAhZGF0YS0+ZnJlcV90YWJsZSApDQo+
ICAgICAgICAgIHJldHVybiAwOw0KPg0KPiAgICAgIHJldHVybiBleHRyYWN0X2ZyZXEoZ2V0X2N1
cl92YWwoY3B1bWFza19vZihjcHUpKSwgZGF0YSk7IEBAIC0yNTUsNyArMjU1LDcNCj4gQEAgc3Rh
dGljIGludCBjZl9jaGVjayBhY3BpX2NwdWZyZXFfdGFyZ2V0KA0KPiAgICAgIHN0cnVjdCBjcHVm
cmVxX3BvbGljeSAqcG9saWN5LA0KPiAgICAgIHVuc2lnbmVkIGludCB0YXJnZXRfZnJlcSwgdW5z
aWduZWQgaW50IHJlbGF0aW9uKSAgew0KPiAtICAgIHN0cnVjdCBhY3BpX2NwdWZyZXFfZGF0YSAq
ZGF0YSA9IGNwdWZyZXFfZHJ2X2RhdGFbcG9saWN5LT5jcHVdOw0KPiArICAgIHN0cnVjdCBhY3Bp
X2NwdWZyZXFfZGF0YSAqZGF0YSA9ICZwb2xpY3ktPmRydl9kYXRhOw0KPiAgICAgIHN0cnVjdCBw
cm9jZXNzb3JfcGVyZm9ybWFuY2UgKnBlcmY7DQo+ICAgICAgc3RydWN0IGNwdWZyZXFfZnJlcXMg
ZnJlcXM7DQo+ICAgICAgY3B1bWFza190IG9ubGluZV9wb2xpY3lfY3B1czsNCj4gQEAgLTI2NSwx
MCArMjY1LDggQEAgc3RhdGljIGludCBjZl9jaGVjayBhY3BpX2NwdWZyZXFfdGFyZ2V0KA0KPiAg
ICAgIHVuc2lnbmVkIGludCBqOw0KPiAgICAgIGludCByZXN1bHQgPSAwOw0KPg0KPiAtICAgIGlm
ICh1bmxpa2VseShkYXRhID09IE5VTEwgfHwNCj4gLSAgICAgICAgZGF0YS0+YWNwaV9kYXRhID09
IE5VTEwgfHwgZGF0YS0+ZnJlcV90YWJsZSA9PSBOVUxMKSkgew0KPiArICAgIGlmICggIWRhdGEt
PmFjcGlfZGF0YSB8fCAhZGF0YS0+ZnJlcV90YWJsZSApDQo+ICAgICAgICAgIHJldHVybiAtRU5P
REVWOw0KPiAtICAgIH0NCj4NCj4gICAgICBpZiAocG9saWN5LT50dXJibyA9PSBDUFVGUkVRX1RV
UkJPX0RJU0FCTEVEKQ0KPiAgICAgICAgICBpZiAodGFyZ2V0X2ZyZXEgPiBwb2xpY3ktPmNwdWlu
Zm8uc2Vjb25kX21heF9mcmVxKSBAQCAtMzM0LDExICszMzIsOQ0KPiBAQCBzdGF0aWMgaW50IGNm
X2NoZWNrIGFjcGlfY3B1ZnJlcV90YXJnZXQoDQo+DQo+ICBzdGF0aWMgaW50IGNmX2NoZWNrIGFj
cGlfY3B1ZnJlcV92ZXJpZnkoc3RydWN0IGNwdWZyZXFfcG9saWN5ICpwb2xpY3kpICB7DQo+IC0g
ICAgc3RydWN0IGFjcGlfY3B1ZnJlcV9kYXRhICpkYXRhOw0KPiAgICAgIHN0cnVjdCBwcm9jZXNz
b3JfcGVyZm9ybWFuY2UgKnBlcmY7DQo+DQo+IC0gICAgaWYgKCFwb2xpY3kgfHwgIShkYXRhID0g
Y3B1ZnJlcV9kcnZfZGF0YVtwb2xpY3ktPmNwdV0pIHx8DQo+IC0gICAgICAgICFwcm9jZXNzb3Jf
cG1pbmZvW3BvbGljeS0+Y3B1XSkNCj4gKyAgICBpZiAoICFwb2xpY3kgfHwgIXByb2Nlc3Nvcl9w
bWluZm9bcG9saWN5LT5jcHVdICkNCj4gICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+DQo+ICAg
ICAgcGVyZiA9ICZwcm9jZXNzb3JfcG1pbmZvW3BvbGljeS0+Y3B1XS0+cGVyZjsNCj4gQEAgLTM0
Niw3ICszNDIsNyBAQCBzdGF0aWMgaW50IGNmX2NoZWNrIGFjcGlfY3B1ZnJlcV92ZXJpZnkoDQo+
ICAgICAgY3B1ZnJlcV92ZXJpZnlfd2l0aGluX2xpbWl0cyhwb2xpY3ksIDAsDQo+ICAgICAgICAg
IHBlcmYtPnN0YXRlc1twZXJmLT5wbGF0Zm9ybV9saW1pdF0uY29yZV9mcmVxdWVuY3kgKiAxMDAw
KTsNCj4NCj4gLSAgICByZXR1cm4gY3B1ZnJlcV9mcmVxdWVuY3lfdGFibGVfdmVyaWZ5KHBvbGlj
eSwgZGF0YS0+ZnJlcV90YWJsZSk7DQo+ICsgICAgcmV0dXJuIGNwdWZyZXFfZnJlcXVlbmN5X3Rh
YmxlX3ZlcmlmeShwb2xpY3ksDQo+ICsgcG9saWN5LT5kcnZfZGF0YS5mcmVxX3RhYmxlKTsNCj4g
IH0NCj4NCj4gIHN0YXRpYyB1bnNpZ25lZCBsb25nDQo+IEBAIC0zODIsMTcgKzM3OCwxMSBAQCBz
dGF0aWMgaW50IGNmX2NoZWNrIGFjcGlfY3B1ZnJlcV9jcHVfaW5pDQo+ICAgICAgdW5zaWduZWQg
aW50IGk7DQo+ICAgICAgdW5zaWduZWQgaW50IHZhbGlkX3N0YXRlcyA9IDA7DQo+ICAgICAgdW5z
aWduZWQgaW50IGNwdSA9IHBvbGljeS0+Y3B1Ow0KPiAtICAgIHN0cnVjdCBhY3BpX2NwdWZyZXFf
ZGF0YSAqZGF0YTsNCj4gKyAgICBzdHJ1Y3QgYWNwaV9jcHVmcmVxX2RhdGEgKmRhdGEgPSAmcG9s
aWN5LT5kcnZfZGF0YTsNCj4gICAgICB1bnNpZ25lZCBpbnQgcmVzdWx0ID0gMDsNCj4gICAgICBz
dHJ1Y3QgY3B1aW5mb194ODYgKmMgPSAmY3B1X2RhdGFbcG9saWN5LT5jcHVdOw0KPiAgICAgIHN0
cnVjdCBwcm9jZXNzb3JfcGVyZm9ybWFuY2UgKnBlcmY7DQo+DQo+IC0gICAgZGF0YSA9IHh6YWxs
b2Moc3RydWN0IGFjcGlfY3B1ZnJlcV9kYXRhKTsNCj4gLSAgICBpZiAoIWRhdGEpDQo+IC0gICAg
ICAgIHJldHVybiAtRU5PTUVNOw0KPiAtDQo+IC0gICAgY3B1ZnJlcV9kcnZfZGF0YVtjcHVdID0g
ZGF0YTsNCj4gLQ0KPiAgICAgIGRhdGEtPmFjcGlfZGF0YSA9ICZwcm9jZXNzb3JfcG1pbmZvW2Nw
dV0tPnBlcmY7DQo+DQo+ICAgICAgcGVyZiA9IGRhdGEtPmFjcGlfZGF0YTsNCj4gQEAgLTQwOSwy
MyArMzk5LDE4IEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sgYWNwaV9jcHVmcmVxX2NwdV9pbmkNCj4g
ICAgICAgICAgaWYgKGNwdWZyZXFfdmVyYm9zZSkNCj4gICAgICAgICAgICAgIHByaW50aygieGVu
X3BtaW5mbzogQGFjcGlfY3B1ZnJlcV9jcHVfaW5pdCwiDQo+ICAgICAgICAgICAgICAgICAgICAg
IkhBUkRXQVJFIGFkZHIgc3BhY2VcbiIpOw0KPiAtICAgICAgICBpZiAoIWNwdV9oYXMoYywgWDg2
X0ZFQVRVUkVfRUlTVCkpIHsNCj4gLSAgICAgICAgICAgIHJlc3VsdCA9IC1FTk9ERVY7DQo+IC0g
ICAgICAgICAgICBnb3RvIGVycl91bnJlZzsNCj4gLSAgICAgICAgfQ0KPiArICAgICAgICBpZiAo
ICFjcHVfaGFzKGMsIFg4Nl9GRUFUVVJFX0VJU1QpICkNCj4gKyAgICAgICAgICAgIHJldHVybiAt
RU5PREVWOw0KPiAgICAgICAgICBkYXRhLT5hcmNoX2NwdV9mbGFncyA9IFNZU1RFTV9JTlRFTF9N
U1JfQ0FQQUJMRTsNCj4gICAgICAgICAgYnJlYWs7DQo+ICAgICAgZGVmYXVsdDoNCj4gLSAgICAg
ICAgcmVzdWx0ID0gLUVOT0RFVjsNCj4gLSAgICAgICAgZ290byBlcnJfdW5yZWc7DQo+ICsgICAg
ICAgIHJldHVybiAtRU5PREVWOw0KPiAgICAgIH0NCj4NCj4gICAgICBkYXRhLT5mcmVxX3RhYmxl
ID0geG1hbGxvY19hcnJheShzdHJ1Y3QgY3B1ZnJlcV9mcmVxdWVuY3lfdGFibGUsDQo+ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGVyZi0+c3RhdGVfY291bnQrMSkpOw0K
PiAtICAgIGlmICghZGF0YS0+ZnJlcV90YWJsZSkgew0KPiAtICAgICAgICByZXN1bHQgPSAtRU5P
TUVNOw0KPiAtICAgICAgICBnb3RvIGVycl91bnJlZzsNCj4gLSAgICB9DQo+ICsgICAgaWYgKCAh
ZGF0YS0+ZnJlcV90YWJsZSApDQo+ICsgICAgICAgIHJldHVybiAtRU5PTUVNOw0KPg0KPiAgICAg
IC8qIGRldGVjdCB0cmFuc2l0aW9uIGxhdGVuY3kgKi8NCj4gICAgICBwb2xpY3ktPmNwdWluZm8u
dHJhbnNpdGlvbl9sYXRlbmN5ID0gMDsgQEAgLTQ4MywyMyArNDY4LDE0IEBAIHN0YXRpYyBpbnQN
Cj4gY2ZfY2hlY2sgYWNwaV9jcHVmcmVxX2NwdV9pbmkNCj4gICAgICByZXR1cm4gcmVzdWx0Ow0K
Pg0KPiAgZXJyX2ZyZXFmcmVlOg0KPiAtICAgIHhmcmVlKGRhdGEtPmZyZXFfdGFibGUpOw0KPiAt
ZXJyX3VucmVnOg0KPiAtICAgIHhmcmVlKGRhdGEpOw0KPiAtICAgIGNwdWZyZXFfZHJ2X2RhdGFb
Y3B1XSA9IE5VTEw7DQo+ICsgICAgWEZSRUUoZGF0YS0+ZnJlcV90YWJsZSk7DQo+DQo+ICAgICAg
cmV0dXJuIHJlc3VsdDsNCj4gIH0NCj4NCj4gIHN0YXRpYyBpbnQgY2ZfY2hlY2sgYWNwaV9jcHVm
cmVxX2NwdV9leGl0KHN0cnVjdCBjcHVmcmVxX3BvbGljeSAqcG9saWN5KSAgew0KPiAtICAgIHN0
cnVjdCBhY3BpX2NwdWZyZXFfZGF0YSAqZGF0YSA9IGNwdWZyZXFfZHJ2X2RhdGFbcG9saWN5LT5j
cHVdOw0KPiAtDQo+IC0gICAgaWYgKGRhdGEpIHsNCj4gLSAgICAgICAgY3B1ZnJlcV9kcnZfZGF0
YVtwb2xpY3ktPmNwdV0gPSBOVUxMOw0KPiAtICAgICAgICB4ZnJlZShkYXRhLT5mcmVxX3RhYmxl
KTsNCj4gLSAgICAgICAgeGZyZWUoZGF0YSk7DQo+IC0gICAgfQ0KPiArICAgIFhGUkVFKHBvbGlj
eS0+ZHJ2X2RhdGEuZnJlcV90YWJsZSk7DQo+DQo+ICAgICAgcmV0dXJuIDA7DQo+ICB9DQo+IC0t
LSBhL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdWZyZXEvY3B1ZnJlcS5jDQo+ICsrKyBiL3hlbi9hcmNo
L3g4Ni9hY3BpL2NwdWZyZXEvY3B1ZnJlcS5jDQo+IEBAIC0zNSw4ICszNSw2IEBADQo+DQo+ICAj
aW5jbHVkZSA8YWNwaS9jcHVmcmVxL2NwdWZyZXEuaD4NCj4NCj4gLXN0cnVjdCBhY3BpX2NwdWZy
ZXFfZGF0YSAqY3B1ZnJlcV9kcnZfZGF0YVtOUl9DUFVTXTsNCj4gLQ0KPiAgc3RydWN0IHBlcmZf
cGFpciB7DQo+ICAgICAgdW5pb24gew0KPiAgICAgICAgICBzdHJ1Y3Qgew0KPiAtLS0gYS94ZW4v
YXJjaC94ODYvYWNwaS9jcHVmcmVxL3Bvd2Vybm93LmMNCj4gKysrIGIveGVuL2FyY2gveDg2L2Fj
cGkvY3B1ZnJlcS9wb3dlcm5vdy5jDQo+IEBAIC04NCwxNiArODQsMTQgQEAgc3RhdGljIGludCBj
Zl9jaGVjayBwb3dlcm5vd19jcHVmcmVxX3Rhcg0KPiAgICAgIHN0cnVjdCBjcHVmcmVxX3BvbGlj
eSAqcG9saWN5LA0KPiAgICAgIHVuc2lnbmVkIGludCB0YXJnZXRfZnJlcSwgdW5zaWduZWQgaW50
IHJlbGF0aW9uKSAgew0KPiAtICAgIHN0cnVjdCBhY3BpX2NwdWZyZXFfZGF0YSAqZGF0YSA9IGNw
dWZyZXFfZHJ2X2RhdGFbcG9saWN5LT5jcHVdOw0KPiArICAgIHN0cnVjdCBhY3BpX2NwdWZyZXFf
ZGF0YSAqZGF0YSA9ICZwb2xpY3ktPmRydl9kYXRhOw0KPiAgICAgIHN0cnVjdCBwcm9jZXNzb3Jf
cGVyZm9ybWFuY2UgKnBlcmY7DQo+ICAgICAgdW5zaWduZWQgaW50IG5leHRfc3RhdGU7IC8qIElu
ZGV4IGludG8gZnJlcV90YWJsZSAqLw0KPiAgICAgIHVuc2lnbmVkIGludCBuZXh0X3BlcmZfc3Rh
dGU7IC8qIEluZGV4IGludG8gcGVyZiB0YWJsZSAqLw0KPiAgICAgIGludCByZXN1bHQ7DQo+DQo+
IC0gICAgaWYgKHVubGlrZWx5KGRhdGEgPT0gTlVMTCB8fA0KPiAtICAgICAgICBkYXRhLT5hY3Bp
X2RhdGEgPT0gTlVMTCB8fCBkYXRhLT5mcmVxX3RhYmxlID09IE5VTEwpKSB7DQo+ICsgICAgaWYg
KCAhZGF0YS0+YWNwaV9kYXRhIHx8ICFkYXRhLT5mcmVxX3RhYmxlICkNCj4gICAgICAgICAgcmV0
dXJuIC1FTk9ERVY7DQo+IC0gICAgfQ0KPg0KPiAgICAgIHBlcmYgPSBkYXRhLT5hY3BpX2RhdGE7
DQo+ICAgICAgcmVzdWx0ID0gY3B1ZnJlcV9mcmVxdWVuY3lfdGFibGVfdGFyZ2V0KHBvbGljeSwN
Cj4gQEAgLTE4NSwxMSArMTgzLDkgQEAgc3RhdGljIHZvaWQgY2ZfY2hlY2sgZ2V0X2NwdV9kYXRh
KHZvaWQgKg0KPg0KPiAgc3RhdGljIGludCBjZl9jaGVjayBwb3dlcm5vd19jcHVmcmVxX3Zlcmlm
eShzdHJ1Y3QgY3B1ZnJlcV9wb2xpY3kgKnBvbGljeSkgIHsNCj4gLSAgICBzdHJ1Y3QgYWNwaV9j
cHVmcmVxX2RhdGEgKmRhdGE7DQo+ICAgICAgc3RydWN0IHByb2Nlc3Nvcl9wZXJmb3JtYW5jZSAq
cGVyZjsNCj4NCj4gLSAgICBpZiAoIXBvbGljeSB8fCAhKGRhdGEgPSBjcHVmcmVxX2Rydl9kYXRh
W3BvbGljeS0+Y3B1XSkgfHwNCj4gLSAgICAgICAgIXByb2Nlc3Nvcl9wbWluZm9bcG9saWN5LT5j
cHVdKQ0KPiArICAgIGlmICggIXBvbGljeSB8fCAhcHJvY2Vzc29yX3BtaW5mb1twb2xpY3ktPmNw
dV0gKQ0KPiAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4NCj4gICAgICBwZXJmID0gJnByb2Nl
c3Nvcl9wbWluZm9bcG9saWN5LT5jcHVdLT5wZXJmOw0KPiBAQCAtMTk3LDcgKzE5Myw3IEBAIHN0
YXRpYyBpbnQgY2ZfY2hlY2sgcG93ZXJub3dfY3B1ZnJlcV92ZXINCj4gICAgICBjcHVmcmVxX3Zl
cmlmeV93aXRoaW5fbGltaXRzKHBvbGljeSwgMCwNCj4gICAgICAgICAgcGVyZi0+c3RhdGVzW3Bl
cmYtPnBsYXRmb3JtX2xpbWl0XS5jb3JlX2ZyZXF1ZW5jeSAqIDEwMDApOw0KPg0KPiAtICAgIHJl
dHVybiBjcHVmcmVxX2ZyZXF1ZW5jeV90YWJsZV92ZXJpZnkocG9saWN5LCBkYXRhLT5mcmVxX3Rh
YmxlKTsNCj4gKyAgICByZXR1cm4gY3B1ZnJlcV9mcmVxdWVuY3lfdGFibGVfdmVyaWZ5KHBvbGlj
eSwNCj4gKyBwb2xpY3ktPmRydl9kYXRhLmZyZXFfdGFibGUpOw0KPiAgfQ0KPg0KPiAgc3RhdGlj
IGludCBjZl9jaGVjayBwb3dlcm5vd19jcHVmcmVxX2NwdV9pbml0KHN0cnVjdCBjcHVmcmVxX3Bv
bGljeSAqcG9saWN5KQ0KPiBAQCAtMjA1LDE4ICsyMDEsMTIgQEAgc3RhdGljIGludCBjZl9jaGVj
ayBwb3dlcm5vd19jcHVmcmVxX2NwdQ0KPiAgICAgIHVuc2lnbmVkIGludCBpOw0KPiAgICAgIHVu
c2lnbmVkIGludCB2YWxpZF9zdGF0ZXMgPSAwOw0KPiAgICAgIHVuc2lnbmVkIGludCBjcHUgPSBw
b2xpY3ktPmNwdTsNCj4gLSAgICBzdHJ1Y3QgYWNwaV9jcHVmcmVxX2RhdGEgKmRhdGE7DQo+ICsg
ICAgc3RydWN0IGFjcGlfY3B1ZnJlcV9kYXRhICpkYXRhID0gJnBvbGljeS0+ZHJ2X2RhdGE7DQo+
ICAgICAgdW5zaWduZWQgaW50IHJlc3VsdCA9IDA7DQo+ICAgICAgc3RydWN0IHByb2Nlc3Nvcl9w
ZXJmb3JtYW5jZSAqcGVyZjsNCj4gICAgICBzdHJ1Y3QgYW1kX2NwdV9kYXRhIGluZm87DQo+ICAg
ICAgc3RydWN0IGNwdWluZm9feDg2ICpjID0gJmNwdV9kYXRhW3BvbGljeS0+Y3B1XTsNCj4NCj4g
LSAgICBkYXRhID0geHphbGxvYyhzdHJ1Y3QgYWNwaV9jcHVmcmVxX2RhdGEpOw0KPiAtICAgIGlm
ICghZGF0YSkNCj4gLSAgICAgICAgcmV0dXJuIC1FTk9NRU07DQo+IC0NCj4gLSAgICBjcHVmcmVx
X2Rydl9kYXRhW2NwdV0gPSBkYXRhOw0KPiAtDQo+ICAgICAgZGF0YS0+YWNwaV9kYXRhID0gJnBy
b2Nlc3Nvcl9wbWluZm9bY3B1XS0+cGVyZjsNCj4NCj4gICAgICBpbmZvLnBlcmYgPSBwZXJmID0g
ZGF0YS0+YWNwaV9kYXRhOyBAQCAtMjI4LDggKzIxOCw3IEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sN
Cj4gcG93ZXJub3dfY3B1ZnJlcV9jcHUNCj4gICAgICAgICAgaWYgKGNwdW1hc2tfd2VpZ2h0KHBv
bGljeS0+Y3B1cykgIT0gMSkgew0KPiAgICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5H
ICJVbnN1cHBvcnRlZCBzaGFyaW5nIHR5cGUgJWQgKCV1DQo+IENQVXMpXG4iLA0KPiAgICAgICAg
ICAgICAgICAgICAgIHBvbGljeS0+c2hhcmVkX3R5cGUsIGNwdW1hc2tfd2VpZ2h0KHBvbGljeS0+
Y3B1cykpOw0KPiAtICAgICAgICAgICAgcmVzdWx0ID0gLUVOT0RFVjsNCj4gLSAgICAgICAgICAg
IGdvdG8gZXJyX3VucmVnOw0KPiArICAgICAgICAgICAgcmV0dXJuIC1FTk9ERVY7DQo+ICAgICAg
ICAgIH0NCj4gICAgICB9IGVsc2Ugew0KPiAgICAgICAgICBjcHVtYXNrX2NvcHkocG9saWN5LT5j
cHVzLCBjcHVtYXNrX29mKGNwdSkpOyBAQCAtMjM4LDIxICsyMjcsMTYNCj4gQEAgc3RhdGljIGlu
dCBjZl9jaGVjayBwb3dlcm5vd19jcHVmcmVxX2NwdQ0KPiAgICAgIC8qIGNhcGFiaWxpdHkgY2hl
Y2sgKi8NCj4gICAgICBpZiAocGVyZi0+c3RhdGVfY291bnQgPD0gMSkgew0KPiAgICAgICAgICBw
cmludGsoIk5vIFAtU3RhdGVzXG4iKTsNCj4gLSAgICAgICAgcmVzdWx0ID0gLUVOT0RFVjsNCj4g
LSAgICAgICAgZ290byBlcnJfdW5yZWc7DQo+ICsgICAgICAgIHJldHVybiAtRU5PREVWOw0KPiAg
ICAgIH0NCj4NCj4gLSAgICBpZiAocGVyZi0+Y29udHJvbF9yZWdpc3Rlci5zcGFjZV9pZCAhPSBw
ZXJmLT5zdGF0dXNfcmVnaXN0ZXIuc3BhY2VfaWQpIHsNCj4gLSAgICAgICAgcmVzdWx0ID0gLUVO
T0RFVjsNCj4gLSAgICAgICAgZ290byBlcnJfdW5yZWc7DQo+IC0gICAgfQ0KPiArICAgIGlmICgg
cGVyZi0+Y29udHJvbF9yZWdpc3Rlci5zcGFjZV9pZCAhPSBwZXJmLT5zdGF0dXNfcmVnaXN0ZXIu
c3BhY2VfaWQgKQ0KPiArICAgICAgICByZXR1cm4gLUVOT0RFVjsNCj4NCj4gICAgICBkYXRhLT5m
cmVxX3RhYmxlID0geG1hbGxvY19hcnJheShzdHJ1Y3QgY3B1ZnJlcV9mcmVxdWVuY3lfdGFibGUs
DQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGVyZi0+c3RhdGVfY291
bnQrMSkpOw0KPiAtICAgIGlmICghZGF0YS0+ZnJlcV90YWJsZSkgew0KPiAtICAgICAgICByZXN1
bHQgPSAtRU5PTUVNOw0KPiAtICAgICAgICBnb3RvIGVycl91bnJlZzsNCj4gLSAgICB9DQo+ICsg
ICAgaWYgKCAhZGF0YS0+ZnJlcV90YWJsZSApDQo+ICsgICAgICAgIHJldHVybiAtRU5PTUVNOw0K
Pg0KPiAgICAgIC8qIGRldGVjdCB0cmFuc2l0aW9uIGxhdGVuY3kgKi8NCj4gICAgICBwb2xpY3kt
PmNwdWluZm8udHJhbnNpdGlvbl9sYXRlbmN5ID0gMDsgQEAgLTI5OCwyMyArMjgyLDE0IEBAIHN0
YXRpYyBpbnQNCj4gY2ZfY2hlY2sgcG93ZXJub3dfY3B1ZnJlcV9jcHUNCj4gICAgICByZXR1cm4g
cmVzdWx0Ow0KPg0KPiAgZXJyX2ZyZXFmcmVlOg0KPiAtICAgIHhmcmVlKGRhdGEtPmZyZXFfdGFi
bGUpOw0KPiAtZXJyX3VucmVnOg0KPiAtICAgIHhmcmVlKGRhdGEpOw0KPiAtICAgIGNwdWZyZXFf
ZHJ2X2RhdGFbY3B1XSA9IE5VTEw7DQo+ICsgICAgWEZSRUUoZGF0YS0+ZnJlcV90YWJsZSk7DQo+
DQo+ICAgICAgcmV0dXJuIHJlc3VsdDsNCj4gIH0NCj4NCj4gIHN0YXRpYyBpbnQgY2ZfY2hlY2sg
cG93ZXJub3dfY3B1ZnJlcV9jcHVfZXhpdChzdHJ1Y3QgY3B1ZnJlcV9wb2xpY3kgKnBvbGljeSkg
IHsNCj4gLSAgICBzdHJ1Y3QgYWNwaV9jcHVmcmVxX2RhdGEgKmRhdGEgPSBjcHVmcmVxX2Rydl9k
YXRhW3BvbGljeS0+Y3B1XTsNCj4gLQ0KPiAtICAgIGlmIChkYXRhKSB7DQo+IC0gICAgICAgIGNw
dWZyZXFfZHJ2X2RhdGFbcG9saWN5LT5jcHVdID0gTlVMTDsNCj4gLSAgICAgICAgeGZyZWUoZGF0
YS0+ZnJlcV90YWJsZSk7DQo+IC0gICAgICAgIHhmcmVlKGRhdGEpOw0KPiAtICAgIH0NCj4gKyAg
ICBYRlJFRShwb2xpY3ktPmRydl9kYXRhLmZyZXFfdGFibGUpOw0KPg0KPiAgICAgIHJldHVybiAw
Ow0KPiAgfQ0KPiAtLS0gYS94ZW4vaW5jbHVkZS9hY3BpL2NwdWZyZXEvY3B1ZnJlcS5oDQo+ICsr
KyBiL3hlbi9pbmNsdWRlL2FjcGkvY3B1ZnJlcS9jcHVmcmVxLmgNCj4gQEAgLTM3LDggKzM3LDYg
QEAgc3RydWN0IGFjcGlfY3B1ZnJlcV9kYXRhIHsNCj4gICAgICB1bnNpZ25lZCBpbnQgYXJjaF9j
cHVfZmxhZ3M7DQo+ICB9Ow0KPg0KPiAtZXh0ZXJuIHN0cnVjdCBhY3BpX2NwdWZyZXFfZGF0YSAq
Y3B1ZnJlcV9kcnZfZGF0YVtOUl9DUFVTXTsNCj4gLQ0KPiAgc3RydWN0IGNwdWZyZXFfY3B1aW5m
byB7DQo+ICAgICAgdW5zaWduZWQgaW50ICAgICAgICBtYXhfZnJlcTsNCj4gICAgICB1bnNpZ25l
ZCBpbnQgICAgICAgIHNlY29uZF9tYXhfZnJlcTsgICAgLyogUDEgaWYgVHVyYm8gTW9kZSBpcyBv
biAqLw0KPiBAQCAtODAsNiArNzgsOCBAQCBzdHJ1Y3QgY3B1ZnJlcV9wb2xpY3kgew0KPiAgICAg
IGludDhfdCAgICAgICAgICAgICAgdHVyYm87ICAvKiB0cmlzdGF0ZSBmbGFnOiAwIGZvciB1bnN1
cHBvcnRlZA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAtMSBmb3IgZGlz
YWJsZSwgMSBmb3IgZW5hYmxlZA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KiBTZWUgQ1BVRlJFUV9UVVJCT18qIGJlbG93IGZvciBkZWZpbmVzICovDQo+ICsNCj4gKyAgICBz
dHJ1Y3QgYWNwaV9jcHVmcmVxX2RhdGEgZHJ2X2RhdGE7DQo+ICB9Ow0KPiAgREVDTEFSRV9QRVJf
Q1BVKHN0cnVjdCBjcHVmcmVxX3BvbGljeSAqLCBjcHVmcmVxX2NwdV9wb2xpY3kpOw0KPg0KDQo=


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 04:07:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 04:07:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100490.1453906 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urqO6-00053u-RE; Fri, 29 Aug 2025 04:06:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100490.1453906; Fri, 29 Aug 2025 04:06: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 1urqO6-00053n-Oc; Fri, 29 Aug 2025 04:06:54 +0000
Received: by outflank-mailman (input) for mailman id 1100490;
 Fri, 29 Aug 2025 04:06:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UceS=3J=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1urqO5-00053h-31
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 04:06:53 +0000
Received: from fhigh-b3-smtp.messagingengine.com
 (fhigh-b3-smtp.messagingengine.com [202.12.124.154])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 964b9aa5-848d-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 06:06:50 +0200 (CEST)
Received: from phl-compute-03.internal (phl-compute-03.internal [10.202.2.43])
 by mailfhigh.stl.internal (Postfix) with ESMTP id F219B7A017E;
 Fri, 29 Aug 2025 00:06:48 -0400 (EDT)
Received: from phl-mailfrontend-02 ([10.202.2.163])
 by phl-compute-03.internal (MEProxy); Fri, 29 Aug 2025 00:06:49 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 29 Aug 2025 00:06:47 -0400 (EDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 964b9aa5-848d-11f0-8dd7-1b34d833f44b
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=1756440408;
	 x=1756526808; bh=w+qvlJ6G851p21YYLT2tiVTZYY83pLg+4pXtJ53wR+4=; b=
	HnksmT3rFMgy4rNPUD0opAm6bgixJjbUaQdqASakjOt+OX18C9uD0jugV/S37q5y
	WVCIuPrIK1+rbwncNwn9HGYzg9vJ5K86BCv5tnX+JDlv/6u2t3erRhdT2UqDcLsl
	7Cbmnuz3d4uddSK8jIQFHUFGXGVL3V6sqDlEyfdrCOeXZWPKM6EqN2IgjgPzyzHB
	4S3sU6y1UJGCxIE4O1o1VmKGsJyOROsj2aMvw07JSINpA4ozJOuUA2m0zBOPf+WT
	rFTJgt6pOJ5DzaFXsJSForPLfnBjHERbMq7M8wxw4TEA74jiRkdQ4w5YzYVQOy12
	rgumGeJRpEyTkS+n3bzG+g==
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=fm1; t=
	1756440408; x=1756526808; bh=w+qvlJ6G851p21YYLT2tiVTZYY83pLg+4pX
	tJ53wR+4=; b=iXSQIIwkma5QTjbSlbMiQ1XYvs5WmIVaD14Qw0kngeemjDYlgpI
	YliCzXAvTPkvHzSffbFo6Z78/Im2qf8DRIBPyKxybmoXOA/9V1XL9PUhf6tnAU5P
	VjWC1xOWcngGzBAjHalPyDhLTvA0Ppd8q2sN/p6zvO5ERC+CojdAOBDqFAxWy/Xm
	b7N7CDLSwZatOs3L9L9zydpFh/XU15aQu8c/13rGukJ6g979HwVGKOIK2lPRdemO
	ciHqny7ZGBIhz24NM8SOYGQDkot+jK16hXPmI4BvYyiaoobAnCS16cQOMnEseekZ
	8I4HxFUQavq/ua1sh51QntL6YHMJ94/43hQ==
X-ME-Sender: <xms:WCexaK2DdbGMQeIOpfM5vZl4-siEycAOaVMAHfnjBtdmvnyr8x1cWw>
    <xme:WCexaHqMvPqnh7o2UhVdbjR-GgS46vxp1iV8p7j1UUZv5lT7t4HameRnCxtNteRlg
    PCcaRQntfZ49g>
X-ME-Received: <xmr:WCexaPd5FU4o2Qaw9yE5LtIIdbVxFS48zswqk5MvYpOzfm1E3gcADT-iePKZXEt2r9amCQFL6R2sAFE9zQXRGVYTg8VUwW4XSXg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgddukedvkeekucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfduleet
    feevhfefheeiteeliefhjefhleduveetteekveettddvgeeuteefjedunecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepgedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtohepfhhrvgguihgrnhhordiiihhglhhiohes
    tghlohhuugdrtghomhdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvg
    hnphhrohhjvggtthdrohhrghdprhgtphhtthhopeguphhsmhhithhhsegrphgvrhhtuhhs
    shholhhuthhiohhnshdrtghomhdprhgtphhtthhopehjsggvuhhlihgthhesshhushgvrd
    gtohhm
X-ME-Proxy: <xmx:WCexaOoNrtkC0PRGvfjWmF5cUvri1BocSW-r8pL0QXRGjuehVEdr4g>
    <xmx:WCexaIF26h3yp_nGxdT-7pg0ElTLkbinXTy9J2DvHRy5imnFN9DwDw>
    <xmx:WCexaGtuIwglJZ9dBAqM8QKRSybzPUzx9ZkPJuy0RsNSms9_fi6_hw>
    <xmx:WCexaCUMG_xvDjnFQ5rbgZReu7hdf2QGHmaTr8PhkDKHrNjNHYsG5w>
    <xmx:WCexaCxMYJ_1xmzlihBsOJxLV2f3UsDBZoLosMpeVAd-aRxAGW034ke7>
Feedback-ID: i1568416f:Fastmail
Date: Fri, 29 Aug 2025 06:06:45 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Frediano Ziglio <frediano.ziglio@cloud.com>
Cc: xen-devel@lists.xenproject.org,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH v2] xen/efi: Fix crash with initial empty EFI options
Message-ID: <aLEnVSCil2JtDiFY@mail-itl>
References: <20250708135701.119601-1-frediano.ziglio@cloud.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="tBbIxz5i4JPwS3AS"
Content-Disposition: inline
In-Reply-To: <20250708135701.119601-1-frediano.ziglio@cloud.com>


--tBbIxz5i4JPwS3AS
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Fri, 29 Aug 2025 06:06:45 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Frediano Ziglio <frediano.ziglio@cloud.com>
Cc: xen-devel@lists.xenproject.org,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH v2] xen/efi: Fix crash with initial empty EFI options

On Tue, Jul 08, 2025 at 02:56:58PM +0100, Frediano Ziglio wrote:
> EFI code path split options from EFI LoadOptions fields in 2
> pieces, first EFI options, second Xen options.
> "get_argv" function is called first to get the number of arguments
> in the LoadOptions, second, after allocating enough space, to
> fill some "argc"/"argv" variable. However the first parsing could
> be different from second as second is able to detect "--" argument
> separator. So it was possible that "argc" was bigger that the "argv"
> array leading to potential buffer overflows, in particular
> a string like "-- a b c" would lead to buffer overflow in "argv"
> resulting in crashes.

I wouldn't call it "buffer overflow" - the argv array is big enough
here. But if there is "--" in cmdline, it has fewer than argc elements
initialized. If there is at least one efi option (IOW, "--" is not the
first one), the sentinel NULL inserted by get_argv() will prevent
reading past the initialized part. But if "--" is the first one, the
NULL is inserted into argv[0], which is skipped by the loop in
efi_start(). Which makes the loop go beyond initialized part of argv
(crash happens even before it goes beyond end of argv allocation).

So, maybe change it to: bigger than the initialized portion of "argv"
array, leading to potential uninitialized pointer dereference, ...?

> Using EFI shell is possible to pass any kind of string in
> LoadOptions.
>=20
> Fixes: bf6501a62e80 ("x86-64: EFI boot code")

Technically, the issue was covered for few months by another issue and
got re-exposed by 926e680aadde ("EFI: suppress bogus loader warning").
While it fixed one issue, it also made it possible to put sentinel NULL
into argv[0] again. But the original EFI code had this issue too, so
IMO the Fixes tag is correct.

While there is convention to put file name as the first option, I don't
see anything in the UEFI spec requiring it. So, Xen should not crash
when it's missing.

> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>

With commit message adjusted:
Reviewed-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.c=
om>

> ---
> Changes since v1:
> - use argc to make code more clear;
> - fix commit reference;
> - improve commit message.
> ---
>  xen/common/efi/boot.c | 13 +++++++------
>  1 file changed, 7 insertions(+), 6 deletions(-)
>=20
> diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
> index 9306dc8953..385292ad4e 100644
> --- a/xen/common/efi/boot.c
> +++ b/xen/common/efi/boot.c
> @@ -350,10 +350,11 @@ static unsigned int __init get_argv(unsigned int ar=
gc, CHAR16 **argv,
> =20
>      if ( argc )
>      {
> +        argc =3D 0;
>          cmdline =3D data + *offset;
>          /* EFI_LOAD_OPTION does not supply an image name as first compon=
ent. */
>          if ( *offset )
> -            *argv++ =3D NULL;
> +            argv[argc++] =3D NULL;
>      }
>      else if ( size > sizeof(*cmdline) && !(size % sizeof(*cmdline)) &&
>                (wmemchr(data, 0, size / sizeof(*cmdline)) =3D=3D
> @@ -414,14 +415,14 @@ static unsigned int __init get_argv(unsigned int ar=
gc, CHAR16 **argv,
>                  ++argc;
>              else if ( prev && wstrcmp(prev, L"--") =3D=3D 0 )
>              {
> -                --argv;
> +                --argc;
>                  if ( options )
>                      *options =3D cmdline;
>                  break;
>              }
>              else
>              {
> -                *argv++ =3D prev =3D ptr;
> +                argv[argc++] =3D prev =3D ptr;
>                  *ptr =3D *cmdline;
>                  *++ptr =3D 0;
>              }
> @@ -429,7 +430,7 @@ static unsigned int __init get_argv(unsigned int argc=
, CHAR16 **argv,
>          prev_sep =3D cur_sep;
>      }
>      if ( argv )
> -        *argv =3D NULL;
> +        argv[argc] =3D NULL;
>      return argc;
>  }
> =20
> @@ -1348,8 +1349,8 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE Im=
ageHandle,
>                                    (argc + 1) * sizeof(*argv) +
>                                        loaded_image->LoadOptionsSize,
>                                    (void **)&argv) =3D=3D EFI_SUCCESS )
> -            get_argv(argc, argv, loaded_image->LoadOptions,
> -                     loaded_image->LoadOptionsSize, &offset, &options);
> +            argc =3D get_argv(argc, argv, loaded_image->LoadOptions,
> +                            loaded_image->LoadOptionsSize, &offset, &opt=
ions);
>          else
>              argc =3D 0;
>          for ( i =3D 1; i < argc; ++i )
> --=20
> 2.43.0
>=20

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmixJ1UACgkQ24/THMrX
1yxlcgf/UIdK3nGShLUt2TD8cVy/hVz11YNYuVuXMQuuScYifCSc37fhlw3P5DqC
kkVD1CtQabvjc4i4LBUMpQfUrM/knYTsYFqVcKwkZQBqTY2voixdpM1YRXpn/24b
Ifi9FmhbmXagZlbRDo+nkP94Ccf/VXeyokMtbGgDuPI0a8gxFn25k5TrFCE5lo14
RzqzLKM8oxILMOZNFsj6iKuSYnu3/bbRS6TnbAcCuXG+ZoYNi7yMW3fKap79NDeW
uSMaA86ZbeNHmEPgc4rLAUjW/PBqilUSjcWqyxRbQvZtId+HzOMES5RtiUfPexgT
azVwVwO1trOOrF8CvrM+ukXd2KLtSQ==
=6cn5
-----END PGP SIGNATURE-----

--tBbIxz5i4JPwS3AS--


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 05:43:49 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 05:43:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100525.1453916 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urrtf-0008Vs-KZ; Fri, 29 Aug 2025 05:43:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100525.1453916; Fri, 29 Aug 2025 05:43: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 1urrtf-0008Vl-I0; Fri, 29 Aug 2025 05:43:35 +0000
Received: by outflank-mailman (input) for mailman id 1100525;
 Fri, 29 Aug 2025 05:43:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=cTkY=3J=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1urrte-0008Ve-Gu
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 05:43:34 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 18769459-849b-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 07:43:31 +0200 (CEST)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 507D24EE3C0D;
 Fri, 29 Aug 2025 07:43:30 +0200 (CEST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 18769459-849b-11f0-8adc-4578a1afcccb
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=1756446210;
	b=EwU7H6flSghzegfLGZHs5Vq2FY4kNnwfHhrwrEdONgE+V5ofXl0AncipZTFPXvTZ9qa6
	 4V5oiy16H47bM/UYoShUT28XjrEddCccIMAAEXwwixK32rmvM/Yg5TmA4eslFxksNdWRb
	 HXexzXzJLWwWAQyvBACNl/T36ugM9F+uUXGUuxvBRmg+KVTAelLkas2GDoFyZ/H3RyEfW
	 CTMEk3gpmfFJVPxGkBC+Uw5rK3j3k0snPhwYG/Gt1hApmPkvW6tW7BNm0/FLYgyijOQti
	 ZAFjy0gU1hgTcP9blAUuOgjHKLymyAVcMR9FNV3/oSf3WEeeBhFKA+mzcrE7df795TVMh
	 xa9jiLlk81aFVo34Mv2ka8J/d+kwLpEupZKEssscOxv0q0I/r8QGzRQ8l8y/CD/1NKP5H
	 D0QeEj2kfhCqMWDy5kU9Hhi6TAoX9sg9n52dBL1mmyLwBOoRkIAh+rvSWeeiKxMZu18MW
	 4YjirWtwr97GuNPh1c8p/RwW5AFIAh7nRQsCh4ojfZ/OfQvLXWTHduJi2dHECCqpj62N3
	 zyFLyX4zbbLC1KU8pXbCJVml7S+ykg8fwwwjrqPEW6KCsFh/oobMuO4VDDnxemGaWZAsK
	 1aQAXCvq92QJFyCBIEGTASN/esvGLgY8NTry7QTFR7iZedqUvYcAdloApiG9fgg=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1756446210;
	h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:
	 References:Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=M/pl1D0HoTbrkXKeJQRj59Agn1yMB9bXAaWmtMKEvP8=;
	b=vFYqWJWdur5SvqriAlXxydxD3xaZBSwIhEL8GKtCxLGaHXDx+zQY1cneK9aCTSNFsTLU
	 H24BGWXHXr0m2zpw9zhlm8sLQbULGgcJVwKmYCOuD6R+3+eLODzuX9ot89P9RVNAPF9pb
	 YQCuB0QM67HE8B1x/UX4WayDkrd9MTnhdwhd17GCLa2dVAASAL2X7lm9646AoCt/O6uG4
	 PN8qXr3qia3gQWDnLTg/gBjSa8RUWh5uNf2/O14iVds2v8LqrR0WMYdr/7wpIdfR6Iojw
	 5L9wvF2nHh9OlGnbv+jwe4TvudcUlhyrZZMUMGRhcZkXcjJf5cmdbJkeHM7DLeg5Gdowc
	 hQDW/t83u3eobwsccyPAVyG+sfl6mhKOnN3xlI0W7xoCI1XGTCd+cXEr0kfYvtMFShjYN
	 pCIwzRKmwlWn7bCvoBTMxFBo9MxB33kYhqmXpZzNirikTBXqR402mdEDns78t3PCueDmA
	 qvjAgJcDN2pLL3+H7otQJZRBn22/PweGt25WLQb4NvbAVeKEFZWxGBhLLQ+Bh/xdu4MsT
	 yP3pBDdL8Dy1Ph+FBiUxc+6/iek6Vu2jMe5wU+E+mXsucpGRRMF+0PPctjWA0BIa/pxx1
	 FOhTY8YyHcQ/++nzKsNsivkfcX1XxBoFHRD0TfM/hz6lhTPoiD/+Jk0vCWo9XvY=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bugseng.com; s=mail;
	t=1756446210; bh=mq9By8w3RXOlXXE/R+h9P91Ws8FEjFBTt3DP5K6PTVU=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=rhFWAHfbb5Sqc6qpt4hFsym7DWOoqp9/Pk4pU/GtQU9U+AwnastOnhnc5NBCvRG+H
	 jCQU46EjKHK6NfiLDpzfsV3xJvmlEjNp1Uw6TMQBZPxdXASlzSafZq3xGuljwDFsVn
	 MNPoD97tYPjeJURcuFlXjF2MiEUYYjUHb7dyMscZy73uAUcczGez2HDZ0j3WtflG5P
	 NGdvJeALa6/rHeaLot6fRoeNwResQfOC2hEiBhM0UWDb/n0h5Zcj+bmT0gJ4in/eQg
	 tCtt1PlDywxN1C3vX4XEKyMzhO28Jt+HE1EMmaTvIuEy+rlPf/FOM4A1v1dN/58JRo
	 taMtLmlc3VJ4w==
MIME-Version: 1.0
Date: Fri, 29 Aug 2025 07:43:30 +0200
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Dmytro Prokopchuk1 <dmytro_prokopchuk1@epam.com>
Cc: Jan Beulich <jbeulich@suse.com>, Stefano Stabellini
 <sstabellini@kernel.org>, Doug Goldstein <cardoe@cardoe.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>,
 xen-devel@lists.xenproject.org
Subject: Re: [PATCH] misra: consider conversion from UL or (void*) to function
 pointer as safe
In-Reply-To: <63a8e9f8-61c7-4443-a114-82db08c45f69@epam.com>
References: <9e5e4ff2c7ba0a90a6ac403e2de9318e18949274.1755628705.git.dmytro_prokopchuk1@epam.com>
 <90fb95a3-4b32-4785-a77c-373e5b9da6ed@suse.com>
 <e1e2abdf0ef8708097aa78440eeb7147@bugseng.com>
 <6b912698-b871-4819-ac30-14325d0be146@epam.com>
 <498f9629d2dda3f305c11512908b1325@bugseng.com>
 <d1fd1bbc474aad5a6a9841a8c109126a@bugseng.com>
 <63a8e9f8-61c7-4443-a114-82db08c45f69@epam.com>
Message-ID: <965bef5c7cc9d50493916bb6ef1e3678@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

On 2025-08-28 17:54, Dmytro Prokopchuk1 wrote:
> On 8/25/25 16:08, Nicola Vetrini wrote:
>> On 2025-08-25 14:53, Nicola Vetrini wrote:
>>> On 2025-08-22 18:34, Dmytro Prokopchuk1 wrote:
>>>> On 8/21/25 11:25, Nicola Vetrini wrote:
>>>>> On 2025-08-21 10:01, Jan Beulich wrote:
>>>>>> On 19.08.2025 20:55, Dmytro Prokopchuk1 wrote:
>>>>>>> Rule 11.1 states as following: "Conversions shall not be 
>>>>>>> performed
>>>>>>> between a pointer to a function and any other type."
>>>>>>> 
>>>>>>> The conversion from unsigned long or (void *) to a function 
>>>>>>> pointer
>>>>>>> is safe in Xen because the architectures it supports (e.g., x86 
>>>>>>> and
>>>>>>> ARM) guarantee compatible representations between these types.
>>>>>> 
>>>>>> I think we need to be as precise as possible here. The 
>>>>>> architectures
>>>>>> guarantee nothing, they only offer necessary fundamentals. In the
>>>>>> Windows x86 ABI, for example, you can't convert pointers to/from 
>>>>>> longs
>>>>>> without losing data. What we build upon is what respective ABIs 
>>>>>> say,
>>>>>> possibly in combination of implementation specifics left to 
>>>>>> compilers.
>>>>>> 
>>>>> 
>>>>> +1, a mention of the compilers and targets this deviation relies
>>>>> upon is
>>>>> needed.
>>>> 
>>>> Maybe with this wording:
>>>> 
>>>> This deviation is based on the guarantees provided by the specific 
>>>> ABIs
>>>> (e.g., ARM AAPCS) and compilers (e.g., GCC) supported in Xen. These 
>>>> ABIs
>>> 
>>> s/supported in/supported by/
>>> 
>>>> guarantee compatible representations for 'void *', 'unsigned long' 
>>>> and
>>>> function pointers for the supported target platforms. This behavior 
>>>> is
>>> 
>>> It's not just about the guarantees of the ABIs: it's the behavior of
>>> the compiler for those ABIs that makes this safe or unsafe. If
>>> present, such documentation should be included
>>> 
>> 
>> In any case, provided that the wording can be adjusted:
>> 
>> Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> 
> Updated wording:
> 
> This deviation from Rule 11.1 relies on both ABI definitions and 
> compiler
> implementations supported by Xen. The System V x86_64 ABI and the 
> AArch64
> ELF ABI define consistent and compatible representations (i.e., having
> the same size and memory layout) for 'void *', 'unsigned long', and 
> function
> pointers, enabling safe conversions between these types without data 
> loss
> or corruption. Additionally, GCC and Clang, faithfully implement the 
> ABI
> specifications, ensuring that the generated machine code conforms to 
> these
> guarantees. Developers must note that this behavior is not universal 
> and
> depends on platform-specific ABIs and compiler implementations.
> 

LGTM.

> References:
> - System V x86_64 ABI:
> https://gitlab.com/x86-psABIs/x86-64-ABI/-/jobs/artifacts/master/raw/x86-64-ABI/abi.pdf?job=build
> - AArch64 ELF ABI: https://github.com/ARM-software/abi-aa/releases
> - GCC: https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html
> - Clang: https://clang.llvm.org/docs/CrossCompilation.html
> 
> Thanks,
> Dmytro.
>> 
>>>> architecture-specific and may not be portable outside of supported
>>>> environments.
>>>> 
>>>>> 
>>>>>>> --- a/docs/misra/deviations.rst
>>>>>>> +++ b/docs/misra/deviations.rst
>>>>>>> @@ -370,6 +370,16 @@ Deviations related to MISRA C:2012 Rules:
>>>>>>> Â Â Â Â Â Â Â  to store it.
>>>>>>> Â Â Â Â Â  - Tagged as `safe` for ECLAIR.
>>>>>>> 
>>>>>>> +Â Â  * - R11.1
>>>>>>> +Â Â Â Â  - The conversion from unsigned long or (void \*) to a 
>>>>>>> function
>>>>>>> pointer does
>>>>>>> +Â Â Â Â Â Â  not lose any information or violate type safety 
>>>>>>> assumptions
>>>>>>> if unsigned
>>>>>>> +Â Â Â Â Â Â  long or (void \*) type is guaranteed to be the same bit 
>>>>>>> size
>>>>>>> as a
>>>>>>> +Â Â Â Â Â Â  function pointer. This ensures that the function pointer 
>>>>>>> can
>>>>>>> be fully
>>>>>>> +Â Â Â Â Â Â  represented without truncation or corruption. The macro
>>>>>>> BUILD_BUG_ON is
>>>>>>> +Â Â Â Â Â Â  integrated into xen/common/version.c to confirm 
>>>>>>> conversion
>>>>>>> compatibility
>>>>>>> +Â Â Â Â Â Â  across all target platforms.
>>>>>>> +Â Â Â Â  - Tagged as `safe` for ECLAIR.
>>>>>> 
>>>>>> Why the escaping of * here, when ...
>>>>>> 
>>>>>>> --- a/docs/misra/rules.rst
>>>>>>> +++ b/docs/misra/rules.rst
>>>>>>> @@ -431,7 +431,13 @@ maintainers if you want to suggest a change.
>>>>>>> Â Â Â Â Â  - All conversions to integer types are permitted if the
>>>>>>> destination
>>>>>>> Â Â Â Â Â Â Â  type has enough bits to hold the entire value. 
>>>>>>> Conversions to
>>>>>>> bool
>>>>>>> Â Â Â Â Â Â Â  and void* are permitted. Conversions from 'void noreturn 
>>>>>>> (*)
>>>>>>> (...)'
>>>>>>> -Â Â Â Â Â Â  to 'void (*)(...)' are permitted.
>>>>>>> +Â Â Â Â Â Â  to 'void (*)(...)' are permitted. Conversions from 
>>>>>>> unsigned
>>>>>>> long or
>>>>>>> +Â Â Â Â Â Â  (void \*) to a function pointer are permitted if the 
>>>>>>> source
>>>>>>> type has
>>>>>>> +Â Â Â Â Â Â  enough bits to restore function pointer without 
>>>>>>> truncation or
>>>>>>> corruption.
>>>>>>> +Â Â Â Â Â Â  Example::
>>>>>>> +
>>>>>>> +Â Â Â Â Â Â Â Â Â Â  unsigned long func_addr = (unsigned 
>>>>>>> long)&some_function;
>>>>>>> +Â Â Â Â Â Â Â Â Â Â  void (*restored_func)(void) = (void 
>>>>>>> (*)(void))func_addr;
>>>>>> 
>>>>>> ... context here suggests they work fine un-escaped, and you even 
>>>>>> add
>>>>>> some un-
>>>>>> escaped instances as well. Perhaps I'm simply unaware of some
>>>>>> peculiarity?
>>>>>> 
>>>>> 
>>>>> This is a literal rst block, while the other is not (* acts as a 
>>>>> bullet
>>>>> point in rst iirc)
>>>> 
>>>> This is how "sphinx-build" tool interprets this.
>>>> 1. * inside single quotes '' -> looks normal, e.g. â€˜void (*)(â€¦)â€™
>>>> 2. * without quotes -> warning
>>>> deviations.rst:369: WARNING: Inline emphasis start-string without
>>>> end-string. [docutils]
>>>> 3. \* -> looks normal, e.g. (void *)
>>>> 
>>>> Because that we need such format: \*
>>>> 
>>>> Dmytro.
>>>> 
>>>>> 
>>>>>> Jan
>>>>> 
>> 

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 06:11:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 06:11:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100565.1453926 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ursL2-00047v-NU; Fri, 29 Aug 2025 06:11:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100565.1453926; Fri, 29 Aug 2025 06:11:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ursL2-00047o-KW; Fri, 29 Aug 2025 06:11:52 +0000
Received: by outflank-mailman (input) for mailman id 1100565;
 Fri, 29 Aug 2025 06:11:51 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xaUo=3J=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ursL1-00047i-6W
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 06:11:51 +0000
Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com
 [2a00:1450:4864:20::532])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0c2bb7fe-849f-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 08:11:48 +0200 (CEST)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-6188b5b113eso2470228a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 23:11: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
 a640c23a62f3a-afefcc1c75csm127415566b.84.2025.08.28.23.11.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 23:11:47 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0c2bb7fe-849f-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756447908; x=1757052708; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=doZyjIjeTOVM+BViPQyDUiH5kKVjr2hzxAi0ahYVTkE=;
        b=RtMtoHk87jQz5V0U6fQHaMuYBz0LQOQiPzgH0Ip/XrkIpMdJCs2pNbkfylFaXusVeL
         fnlDSnL/6s6Vmyllv0r7+podmOaujqi6YjVxQzx+an+ZTllfSeMUsaaloWbsVb6ZR3B6
         nL+9ht9GaMHpTZ/nL3uJ1Kgz37wSjTB3kK9D0seYpFcOuER3rB1ca7gjXKe/lG1ghkru
         P0+i7YVNMheb7rV5QKyLoycDAr07Y/3jpmO/3dk9C00vOCUWpaG8bNGVtRfiE8vdBgWd
         wZaStqww5LPqrKt2Hj5ovbDugci6kczLYEvkUrHm8/bT+46jbkzpCAlB1oHv9rNNt8S/
         JbtA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756447908; x=1757052708;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=doZyjIjeTOVM+BViPQyDUiH5kKVjr2hzxAi0ahYVTkE=;
        b=hBsE66ozKtJSzZGaAZLYGvA2/kDNWpacsrCoFJB2QwGCV1mGj+ur0Ju5apLDQv8wNc
         svEz1TqN9RhWmJXrpkkmfWaXASUzb8qvdQSrGUy+tdsqlwqR8WCK6DubbVpiDQ9/obMD
         xrQ6MAWZaEdXdmvVqXdsK96bROOf2Apm7rR5vYHzPDUM4uMPIr2ZYDhlZu9M7Azvpt4y
         3ujs5fUZ0VPpzmL+3CfN1YsP1VR6S2PdpL/18apQR3FMg9AWS3eV4QaTbYsTulJqVDdJ
         EQ8X48Qdr7NVz1CAAG7pJP5yJKxp0sFvu2zeCRNDBIT02zZ2hBfq5STqq5Z2oFYv2Uz8
         vDjQ==
X-Forwarded-Encrypted: i=1; AJvYcCWGSFxFQFkAPIKRcDidWolTMfoK2Zj0jYQ1vcJR+gfVIgaLd17dZX5HXq3yCjtMhzo0N/qTNe2B4fE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwqnxP5C4+oA+DtGP/z1NNc/zIdQLl2NWzPl3kDDD/AIiDbQSiM
	D7DRLuG+Zsi4CCv+J0DEcY5itz3F6KcIbfLg/7emUETZ0KZscNqvjhRQ+aerkVWC5Q==
X-Gm-Gg: ASbGncsBzv3K7n5HbMkiikrnjNx3gcoJYX7rfMfJHsakThCyTP/lBKZJX0KWXaX5Ud4
	Uv1HqHOd2jeQWlgFuVjGNqsWHRNlytS95iZKDOchrUqUd/+YnSK7Gd/y8Z3699GztSl32lSZjxn
	iAxenJWM5WXF2UIN17PomLDrlmNFYybGFi3GeeYvsTYlGMBjUVAkaRIoa6gBVLUX9VB1uxODnOZ
	eiNT4n6oyWL9ZQvfIxJsszORfpa7C9zzC8BPlUdZcUijFSVJAzht/Rv9Q/WTN++eKo1l/9n+osr
	2BgXh5Lsk3cCm3Gdyr52uvNg5i5ejgx9lUNJYSrPFyLEIBeVD7QuGKOEcOd3sKbBcDZMmdfx93W
	OuOqjJC6KfMxkTDy8zeJywRowtvzXtyHpbY8Ko24mK/rm/ia9nfL9Y6H9/6f+V89QXVqwVnqoBA
	0Jy8H/Fe0=
X-Google-Smtp-Source: AGHT+IHfRnYqey61DT/LRitGGGiBME7Gy+20dQ6ENpsfs5qkiVYnhpAAIciToLLeFezTyT7B12CX/g==
X-Received: by 2002:a17:907:1c17:b0:ae9:8dc8:511c with SMTP id a640c23a62f3a-afe28ffbea0mr2486689866b.13.1756447908211;
        Thu, 28 Aug 2025 23:11:48 -0700 (PDT)
Message-ID: <1ad85430-2aa7-4834-be56-67515ca51310@suse.com>
Date: Fri, 29 Aug 2025 08:11:46 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8 3/8] xen/cpufreq: implement amd-cppc driver for CPPC in
 passive mode
To: "Penny, Zheng" <penny.zheng@amd.com>
Cc: "Huang, Ray" <Ray.Huang@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 "Orzel, Michal" <Michal.Orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "Andryuk, Jason" <Jason.Andryuk@amd.com>
References: <20250828100306.1776031-1-Penny.Zheng@amd.com>
 <20250828100306.1776031-4-Penny.Zheng@amd.com>
 <b2712815-97c2-4473-bcf6-aae8517aad37@suse.com>
 <DM4PR12MB8451D6ACE480227632A8156FE13AA@DM4PR12MB8451.namprd12.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: <DM4PR12MB8451D6ACE480227632A8156FE13AA@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29.08.2025 05:30, Penny, Zheng wrote:
>> -----Original Message-----
>> From: Jan Beulich <jbeulich@suse.com>
>> Sent: Thursday, August 28, 2025 7:23 PM
>>
>> On 28.08.2025 12:03, Penny Zheng wrote:
>>> +static int cf_check amd_cppc_cpufreq_target(struct cpufreq_policy *policy,
>>> +                                            unsigned int target_freq,
>>> +                                            unsigned int relation) {
>>> +    unsigned int cpu = policy->cpu;
>>> +    const struct amd_cppc_drv_data *data = per_cpu(amd_cppc_drv_data,
>>> +cpu);
>>
>> I fear there's a problem here that I so far overlooked. As it happens, just
>> yesterday I made a patch to eliminate cpufreq_drv_data[] global. In the course of
>> doing so it became clear that in principle the CPU denoted by
>> policy->cpu can be offline. Hence its per-CPU data is also unavailable.
>> policy->See
>> cpufreq_add_cpu()'s invocation of .init() and cpufreq_del_cpu()'s invocation
>> of .exit(). Is there anything well-hidden (and likely lacking some suitable
>> comment) which guarantees that no two CPUs (threads) will be in the same
>> domain? If not, I fear you simply can't use per-CPU data here.
>>
> 
> Correct me if I understand you wrongly:
> No, my env is always per pcpu per cpufreq domain. So it never occurred to me that cpus, other than the first one in domain, will never call .init(), and of course, no per_cpu(amd_cppc_drv_data) ever gets allocated then.

Well, the question is how domains are organized when using the CPPC driver.
Aiui that's still driven by data passed in by Dom0, so in turn the question
is whether there are any constraints on what ACPI may surface. If there are,
all that may be necessary is adding a check. If there aren't, ...

>> Since initially I was thinking of using per-CPU data also in my patch, I'm
>> reproducing this in raw form below, for your reference. It's generally only
>> 4.22 material now, of course. Yet in turn for your driver the new drv_data field
>> may want to become a union, with an "acpi" and a "cppc" sub-struct.
> 
> How about I embed my new driver data " struct amd_cppc_drv_data * " into cpufreq policy, maybe pointer is enough?
> Later, maybe, all "cppc", "acpi" and "hwp" could constitute an union in policy.

... I'd prefer to go the union approach right away. Whether then to take my
patch as a prereq is tbd; that largely depends on what (if anything) is
needed on the HWP side. If HWP needs fixing, that wants to to come first, as
it would want backporting.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 06:18:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 06:18:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100580.1453937 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ursRL-0004m8-Hw; Fri, 29 Aug 2025 06:18:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100580.1453937; Fri, 29 Aug 2025 06:18: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 1ursRL-0004m1-Dw; Fri, 29 Aug 2025 06:18:23 +0000
Received: by outflank-mailman (input) for mailman id 1100580;
 Fri, 29 Aug 2025 06:18:21 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=psBU=3J=epam.com=Oleksii_Moisieiev@srs-se1.protection.inumbo.net>)
 id 1ursRJ-0004lt-8b
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 06:18:21 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f4ef1031-849f-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 08:18:19 +0200 (CEST)
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com (2603:10a6:102:32e::21)
 by PA4PR03MB6733.eurprd03.prod.outlook.com (2603:10a6:102:f3::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.16; Fri, 29 Aug
 2025 06:18:16 +0000
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::f12d:7394:bbe3:dfc]) by PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::f12d:7394:bbe3:dfc%6]) with mapi id 15.20.9052.014; Fri, 29 Aug 2025
 06:18:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f4ef1031-849f-11f0-8adc-4578a1afcccb
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=VAbbupIZnzM7SsLFHiqquIHkJJYAhq4GZLNLfMM9TsJO7vhJuLps3SR2EgqpwYvsc94wNdLJzdCFnge3uOMwYN05lB8xwJAiUlfnZyoijx9G4HIrIBogZg2mqSZuE27jAH8Id8Gp6JBhzs0KD5UiZJiYvAcsy5PyFba7ZQDirOzLlg1U7rRUP27le8i0S56PH3hhCukYKWFBJ58a3ajGJIaJdwvR5Vs5urrgsuKXE55/ge7/TPtkU1cSYCwBZ4WaCaIo3/xemyRde5DDx6bJ+OmBAZsoQj+SWYFFdT1kKjrCeNFUQQ5kGU+NQmrK3z1eq8D61/d44qg+dK/C2HiBDw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=bvAAQieeTnBYz2+lYycL7ANgGUaAnx6N6TaTbtEdqcE=;
 b=c2aHAQi8oY4VkJW7sHrhYPy5Pi7pULhZ0IJxmqhItQ3evTcHpIJUfd95UiMOWFXSDt067Au9bRCXG+YlBgCb82Qoc8YEkeNhXWVKy8+r9eFdDMAbNwdC1ts9iYtFSOZPpx5oPFQvdnKWJSB1OzL6zij401k3JcKOVi71ZCsJaej2s9LXllRRgJvQbpfypSNvKpUZ1WWASBho4/IeYTkZtBhXPMJIthTGhMAN26QekdIg1L2uSdU9pbN8ocBU1Iq3Sa+0BwUYOf4fCHRIoyLB71qoacO09419Hi/QZtXWjhd65oygkOqCGzxpyh3B6Qx4wGrkonppzVlU/zR9N7zCQA==
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=bvAAQieeTnBYz2+lYycL7ANgGUaAnx6N6TaTbtEdqcE=;
 b=sfBBlHC2LDnmnn9yl4ep37khHZsoD56Ro48mAgleNzSbhanQCFS9zhd6QwSrQR6fbqt87Xu46JPN5RdOItJZ+v3q6pCUbzig/ppIBnLsl44xftshalnebFAYqZimKX1hiFN0cB8GdFJPH5N5NQ2fQShBid/fF8w+MN5M3w4xmnjEP1ffHORTtTHEZmrfjBmrssw8TDp9pwJnHmSug5IuxLTnVZXTn5BphD8xdwkmy9zzHZI9KsbtbwWj3AUPsRGJaU/zSUaxlHYVlwHj5H7K+qJTQSwi9vpT4lDR8C3Q3qiVHZFxbHoA/f8jW10g0NGZT3lktb/VHDUPTU4KWsVV0w==
From: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
To: Stefano Stabellini <sstabellini@kernel.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Bertrand Marquis <bertrand.marquis@arm.com>, Jan
 Beulich <jbeulich@suse.com>, Juergen Gross <jgross@suse.com>, Julien Grall
	<julien@xen.org>, Michal Orzel <michal.orzel@amd.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>, Grygorii Strashko
	<grygorii_strashko@epam.com>
Subject: Re: [PATCH v6 1/4] xen/arm: add generic SCI subsystem
Thread-Topic: [PATCH v6 1/4] xen/arm: add generic SCI subsystem
Thread-Index: AQHcGDp0HddMWoIUiESW9wlppK7VcrR4ldUAgACTHQA=
Date: Fri, 29 Aug 2025 06:18:16 +0000
Message-ID: <7e9fac13-6c77-4180-9ca1-934746c616de@epam.com>
References: <cover.1756399156.git.oleksii_moisieiev@epam.com>
 <ffe5a45efd34d92c9f2c7307ecd0e9efc5b0d57c.1756399156.git.oleksii_moisieiev@epam.com>
 <alpine.DEB.2.22.394.2508281431180.8757@ubuntu-linux-20-04-desktop>
In-Reply-To:
 <alpine.DEB.2.22.394.2508281431180.8757@ubuntu-linux-20-04-desktop>
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: PAVPR03MB8946:EE_|PA4PR03MB6733:EE_
x-ms-office365-filtering-correlation-id: bc2fb2e5-771d-4e94-bb86-08dde6c3d79e
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|7416014|376014|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?U1VKem1zWGMrL0p2TWM3VmJ5OWpKRURpV0VLR0t1TFhzSmZ5TnVDRkUvYVBM?=
 =?utf-8?B?aGN0UzZDdG5tVThNMlk0aUx4UWlBdWdoV2F2SzN5Z0xrUmU1MEhNVXRvbVFy?=
 =?utf-8?B?aE1BRVBiYkg5dU5aZlJIUkxGSDV4MW1JdjdRTDQvNUlEZFZ4TFJ3ZzRlR3VG?=
 =?utf-8?B?dVRjS3lUdUFjVGZ6WHVBZ08vUy90VUpkVGJUYTBRN1o1ZkpWWHV1WEZHVTFs?=
 =?utf-8?B?UDBSL1IzcXQrdStRK29lMzNpTFhmZVFuZ1hWR3Q0cjhXeXNkWmQ5ang1bFFY?=
 =?utf-8?B?andkc0NJWHNsYytzN25xaHpxenk0cXpLY1RTcGNmRWt5QkJRTHJNY3ZzbjVX?=
 =?utf-8?B?eTkvT0pKdHoxZVkvM1VaNXI3amYzZklOQXRKcDZyb1cyb05yVHJIQ2NwdFhS?=
 =?utf-8?B?eE9BVXNxU0ZvSW03bE1HczIvR0hvM010ckNXZTEyZEZuZHBXRlVIQzJnU3Rv?=
 =?utf-8?B?cmIvT004d0xXOGxsSm50UWQxVFNNclY0TlVmOGtJd1VocjdGNllRaTVlN21s?=
 =?utf-8?B?WGZTSEZZMTFneCs3M2FYZmIyUWJMUUQ5L3V0TTI5enlFMzVOZURhM3JESFNJ?=
 =?utf-8?B?UEdHNWJFYk5sMXdnODNHU2V0QlE3dXhFQ1hsMFpGVzZRZ1RhM3Q2L3VPeTkw?=
 =?utf-8?B?OVZiTjZnTXBXYXdLMVFMakpWcGl6bzliaFRST1BTbDY1T0NES2pZc0xraU1D?=
 =?utf-8?B?TlM1RnUrNnVvVE9salVVcDZrdG96YTdEdzAyKzBHTTIzQzduSmVLZzF4VEhs?=
 =?utf-8?B?cXpSZUZlanFOeHNBV2VEc3JleTRYdUxyMFJ4OERFalljc3JmVUZTOVZ2QVlM?=
 =?utf-8?B?dVQ2bGdSdjlaVEorZ1I1RkVJbldOczB0S1lLOVMweXFpWTAzZ3oxQnZJakdm?=
 =?utf-8?B?UnpwalZEQ0JVS2Z2bFpqaDNXVFp4elRHaks5cGFCMUJLVUhITjUyT3VMa2th?=
 =?utf-8?B?dStnejBOaFRqY0lCN3IrSUp4ZGNxcUJlNXhDMzh4ZjE5aDFvUXZCblBTdktm?=
 =?utf-8?B?b1pTd096VWdBdkF5MVhrWE1Ba0pDMzNWcWtwSEhaSGpDNEpObUxCRWZaK2lu?=
 =?utf-8?B?WDV3RWV4Tzdqd242bTN1dm55bUYyRlZrT0g3K25RWnpaRkJhcHdIQWVEemJP?=
 =?utf-8?B?ZUp6Y0ZORExHQ3BhbkEzd2k0NUhKZVhHallwYmpXWm5EZFhMano1N2pHcHV0?=
 =?utf-8?B?VmVDV0U5UlJ4ZjZudjJGSGx0dmRSZnVHdjUrOElHS0NuMmcramttdXhrelo1?=
 =?utf-8?B?TlRDNDJMTktyWU01L2tjYzFMUHArQys4NEg1Z1Y1LzkxN2N3b3pmckxySXpv?=
 =?utf-8?B?eHVZb2drbWJEZTFlWkRSeEVhREZEdkVISmc0Z0ZqYXM2WXF0eFFQTHRBaS95?=
 =?utf-8?B?ZTVWZjFmUS9ZWlNoTy9UdlE1aERNK1puZlRjTERrRDFDSW9MZEU5M2NFQkI2?=
 =?utf-8?B?Zklkb1JPTzIwS2dxa3JQb21TSXAzV00zNWRtQ1JkUEwxVXFqMlFVTkQyalhZ?=
 =?utf-8?B?UlRua2tob2xsaVRBM0N3eWZSNGU3M3hlenhUU3hMdDVlM2NLS3BCaFJ4Z1c4?=
 =?utf-8?B?eWxxRWM4TkxqcHlYWGw5R2dJZFphZ1dBeFdlZ3JKL2hZRUdqOUFDTnZQSWhL?=
 =?utf-8?B?aENiM2NKeDdtMFhab3RnelZXMTFRM1BhYnNPVGw3cU8vSHNrdlBIVXFScEMv?=
 =?utf-8?B?WGZoS0hFVHhrenZtbFJqemtEdnNpMGI5MUNUV1VGMlVQWHdSOWw1TU9qOEdV?=
 =?utf-8?B?eGphVE91S0VOWVF6VG05eGtxWURuRDcrTWU2citSS2U2T3BBeDN0OTZLVVFG?=
 =?utf-8?B?all4UkNJL21rdTg0ZmsyY2JteG5vTjIwd2lDeVFvcnBZY1FMMVVFZGcxM2Vu?=
 =?utf-8?B?UXZGaFd6Q1JQWmVyckoxdXU4ZzFNWnNIdHVwc24xbFlKYzY0U284UnZ1K3J2?=
 =?utf-8?B?RXBIZ2FPaUs0ZnNkM080RFdDTC9LeVpUOFBET0FnVi8zcUcvTzA0NE5oVDFS?=
 =?utf-8?B?K0JvZWY0QWlBPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB8946.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?dzZjRG1ieDY3aDIyVTd0Vnpqd2NtdmNsY1NteUkyUHhzRDNJMmJmek1Pc1do?=
 =?utf-8?B?RFc3a1piQUdjNUNzTElNeVlNUW1DdjhQaWkxZS9MSldCcXY3YmtRaFEwVU45?=
 =?utf-8?B?VTFXME1HZmpVeEZhSHVXQ3dpaEhBMUFGN2hrK0ZGaFBVdnliQkFVaERnSUE0?=
 =?utf-8?B?Tkg1dFptTmJjV1FzbE4zYlA1MWIvTEt1N2JIWkhrTmUzYlk4Y09RSU1KOWZL?=
 =?utf-8?B?cjF4VmgwaWJFb21SOFBDZGZHUkx6b2V6TTdvRmIrSUF0MWxJdjZsTWcxbVpR?=
 =?utf-8?B?cFlwZm8rUVFrVUlQMlE4eVJPdVVHbDVtSUV4NlRaUFJLVnRVYzUxK2NsVGFa?=
 =?utf-8?B?ZE4xWUprcTFPZ0VDb0RJYXl2bnpORkxWSFVhQ05JdHY1Z04xVitzTkU2ZEpm?=
 =?utf-8?B?ZG02YWZxaTVYRWhkV2FSQm9nODJxbktkSlN5Y1JNa3Z1L2x6ZHZTSHFOMnZ3?=
 =?utf-8?B?QmR4TnZFbXY1K3VxazY4WHRBRGE5OGRjMmh0NnhlSTlJU0hTajRZVHFNNlBq?=
 =?utf-8?B?UUlJTW1xdTB3OEZHSzY0eEo4ZHZKSDNxMUJ6bnNQRmgvVHpqT0RXMk9WNjJz?=
 =?utf-8?B?Rk92T200NFVnc3dWTmVxU2RtNTBmYmxjZXF1K3JlQWVGWG1iQjVmUnh4a1Er?=
 =?utf-8?B?aWFaRHdVWVZLQ1IvZVBwd2cwL3A3M1BqbVVrRTZsM2txZlZaNzZSbGRYOVhz?=
 =?utf-8?B?dDF1eFZrSkVYRitvbStmK0RaTTF5ZFdmMVRxZWRwNksrbVc2NXRLNDlyNlBo?=
 =?utf-8?B?eVhqOXF5OFJaMHZHSzdUUGxwN0pZajBjZy9SZEZ0NmVzalpTS3hoaCtQNnV5?=
 =?utf-8?B?eUFLblZoSE1rZWJjUWtEQSt5Q2lXYytrdnhjN0RubHJlMWxZeDg0Qk1OckZN?=
 =?utf-8?B?NTdOK3RaQlhtenhaOTMyVVVNZGU5VkVqbHJKKys3bUdFMWc1d2xwTnpWSmUy?=
 =?utf-8?B?Uk85NnhrOVFtYmxQSXQrUUYxYll3SGxjaG1oRkhTNmhzTHdVdWo1N1owb3VZ?=
 =?utf-8?B?UUpXenlBRjgxOGZIS3Y2TkpBWlB5ZnhkOCtST3VlbkJEc2VmL254THd0Uk1Y?=
 =?utf-8?B?WnVtZkR1TWsvUmtVRXpsMGE2STVPcGY4Tk42aGJWQ0p2WkNvdUIwaGZ3L0Yr?=
 =?utf-8?B?aUxsOU15RnIxOHFzeVd2TkthcEt1dUcrU1NlL0F5YnhGOXRqRURLdEZ6M1M0?=
 =?utf-8?B?NUlTeWMzTDY5WG05Z2pCcmlqNm5zUGFWUStSSzQybit2cDNJekhCZmVuTkZJ?=
 =?utf-8?B?TFc3dG56UTBlbjI3eXYxNjBOYVV2MDRvRGdzV2h2Q0RKU1c0aTZRaG9oMmk0?=
 =?utf-8?B?eWE1K0xuSVh6bEoyWjRYaXdQbHhocDB6T3pCUGVIMHJrL2ExRTRwVVg3UzJK?=
 =?utf-8?B?SHRNemtBWkkzQmdsc1ZMZzhRWlJhVTRhNGNZMFRlRTI3a0haaC9MNjlhcld3?=
 =?utf-8?B?Y1d6djRWZUF6aEdtNXA1S0s4M1RYZXRXTGlORnVjd1I5bFVaekF4Vy9rSUpN?=
 =?utf-8?B?amVWb1dzemI1OUdrOFRzQTBMQ2I2YnplNGxxaGE1MzRiWHlZc2ZRbEhCSyto?=
 =?utf-8?B?VWM1ZEVESHRTckxpV015OUVnTmRwT3dCbkU4ZVRJREw4YklEd3RJNGtMWXVn?=
 =?utf-8?B?dWxxOUI0S0ZndllhZkc4Y1Nqek41bythOGh1QmVySE0yVEtJOXRpYUZaV3Fv?=
 =?utf-8?B?ODBNOVZRVktrcE5YR2JqY3lJb2FKcXF4QUtwN0wvNkpsSGxlZzR5SVcvSnNZ?=
 =?utf-8?B?VUh1YitnQk5lTUN5WUVQZjJzL3V6T21xaVJiaWt0ejczSFFJNGMrSE1GQWs4?=
 =?utf-8?B?MVpPZlRUMWwyc3VYZ2lCWmtDQUJ3K1NXYlJKMFd2dFRzcFNRempVYWpVdCtJ?=
 =?utf-8?B?b1dlaFQwOUxhN2NIREFpUHJndWlZS2JVQzlqRHF6SnFwK0lxUTJUa2hMRC9h?=
 =?utf-8?B?Y0NYVmV5NG9Td0Y0ODVuUXdOSW1JdVQ2UVlabnAzaHhqOHZyOXJ4bG9YVGE1?=
 =?utf-8?B?azdtWXZBcThPVkFQQ0FjTmk1R0g5WmxnS212blJxNWhVTU9MdzZ6cTdKak5H?=
 =?utf-8?B?c0MyemViNkdYbWJWcUJ0Nk1zSDc4NWoyUlY2ZEFndmpsa2pvWHQ2MGxiVUVB?=
 =?utf-8?B?T2RkTFAvcGd1N09ha0NkRTRxekZBcWlTSmxWMzh4WWRWRXRENGFNL01sOFhE?=
 =?utf-8?B?REE9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <73F629295E534547A0F8F2E97BA2763B@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: PAVPR03MB8946.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: bc2fb2e5-771d-4e94-bb86-08dde6c3d79e
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Aug 2025 06:18:16.6463
 (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: o6B4CxsBgNPqD1DhcPlZ1a2Ah7Hgh9w88qmhKpI1+JiZ4Q7pQHhYpfaru6Bf3SKkM3BVbPS/VYujCTiORf75B/rpl3VT7VbcDmkhT53EgGI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR03MB6733

DQoNCk9uIDI5LzA4LzIwMjUgMDA6MzEsIFN0ZWZhbm8gU3RhYmVsbGluaSB3cm90ZToNCj4gT24g
VGh1LCAyOCBBdWcgMjAyNSwgT2xla3NpaSBNb2lzaWVpZXYgd3JvdGU6DQo+PiBUaGlzIHBhdGNo
IGFkZHMgdGhlIGJhc2ljIGZyYW1ld29yayBmb3IgQVJNIFNDSSBtZWRpYXRvci4gU0NJIGlzIFN5
c3RlbQ0KPj4gQ29udHJvbCBJbnRlcmZhY2UsIHdoaWNoIGlzIGRlc2lnbmVkIHRvIHJlZGlyZWN0
IHJlcXVlc3RzIGZyb20gdGhlIERvbWFpbnMNCj4+IHRvIEFSTSBzcGVjaWZpYyBGaXJtd2FyZSAo
Zm9yIGV4YW1wbGUgU0NNSSkuIFRoaXMgd2lsbCBhbGxvdyB0aGUgZGV2aWNlcywNCj4+IHBhc3Nl
ZC10aHJvdWdoIHRvIHRoZSBkaWZmZXJlbnQgRG9tYWlucywgdG8gYWNjZXNzIHRvIHRoZSBTeXN0
ZW0gcmVzb3VyY2VzDQo+PiAoc3VjaCBhcyBjbG9ja3MvcmVzZXRzIGV0YykgYnkgc2VuZGluZyBy
ZXF1ZXN0cyB0byB0aGUgZmlybXdhcmUuDQo+Pg0KPj4gQVJNIFNDSSBzdWJzeXN0ZW0gYWxsb3dz
IHRvIGltcGxlbWVudCBkaWZmZXJlbnQgU0NJIGRyaXZlcnMgdG8gaGFuZGxlDQo+PiBzcGVjaWZp
YyBBUk0gZmlybXdhcmUgaW50ZXJmYWNlcyAobGlrZSBBUk0gU0NNSSkgYW5kIG1lZGlhdGUgcmVx
dWVzdHMNCj4+IC1iZXR3ZWVuIHRoZSBEb21haW5zIGFuZCB0aGUgRmlybXdhcmUuIEFsc28gaXQg
YWxsb3dzIFNDSSBkcml2ZXJzIHRvIHBlcmZvcm0NCj4+IHByb3BlciBhY3Rpb24gZHVyaW5nIERv
bWFpbiBjcmVhdGlvbi9kZXN0cnVjdGlvbiB3aGljaCBpcyB2aXRhbCBmb3INCj4+IGhhbmRsaW5n
IHVzZSBjYXNlcyBsaWtlIERvbWFpbiByZWJvb3QuDQo+Pg0KPj4gVGhpcyBwYXRjaCBpbnRyb2R1
Y2VzIG5ldyBERVZJQ0VfRklSTVdBUkUgZGV2aWNlIHN1YmNsYXNzIGZvciBwcm9iaW5nIFNDSQ0K
Pj4gZHJpdmVycyBiYXNpbmcgb24gZGV2aWNlIHRyZWUsIFNDSSBkcml2ZXJzIHJlZ2lzdGVyIGl0
c2VsZiB3aXRoDQo+PiBEVF9ERVZJQ0VfU1RBUlQvRU5EIG1hY3JvLiBPbiBpbml0IC0gdGhlIFND
SSBkcml2ZXJzIHNob3VsZCByZWdpc3RlciBpdHMNCj4+IFNDSSBvcHMgd2l0aCBzY2lfcmVnaXN0
ZXIoKS4gT25seSBvbmUgU0NJIGRyaXZlciBjYW4gYmUgc3VwcG9ydGVkLg0KPj4NCj4+IEF0IHJ1
bi10aW1lLCB0aGUgZm9sbG93aW5nIFNDSSBBUEkgY2FsbHMgYXJlIGludHJvZHVjZWQ6DQo+Pg0K
Pj4gLSBzY2lfZG9tYWluX3Nhbml0aXNlX2NvbmZpZygpIGNhbGxlZCBmcm9tIGFyY2hfc2FuaXRp
c2VfZG9tYWluX2NvbmZpZygpDQo+PiAtIHNjaV9kb21haW5faW5pdCgpIGNhbGxlZCBmcm9tIGFy
Y2hfZG9tYWluX2NyZWF0ZSgpDQo+PiAtIHNjaV9yZWxpbnF1aXNoX3Jlc291cmNlcygpIGNhbGxl
ZCBmcm9tIGRvbWFpbl9yZWxpbnF1aXNoX3Jlc291cmNlcygpDQo+PiAtIHNjaV9kb21haW5fZGVz
dHJveSgpIGNhbGxlZCBmcm9tIGFyY2hfZG9tYWluX2Rlc3Ryb3koKQ0KPj4gLSBzY2lfaGFuZGxl
X2NhbGwoKSBjYWxsZWQgZnJvbSB2c21jY2NfaGFuZGxlX2NhbGwoKQ0KPj4gLSBzY2lfZHRfaGFu
ZGxlX25vZGUoKQ0KPj4gLSBzY2lfZHRfZmluYWxpemUoKSBjYWxsZWQgZnJvbSBoYW5kbGVfbm9k
ZSgpIChEb20wIERUKQ0KPj4NCj4+IFNpZ25lZC1vZmYtYnk6IE9sZWtzaWkgTW9pc2llaWV2IDxv
bGVrc2lpX21vaXNpZWlldkBlcGFtLmNvbT4NCj4+IFNpZ25lZC1vZmYtYnk6IEdyeWdvcmlpIFN0
cmFzaGtvIDxncnlnb3JpaV9zdHJhc2hrb0BlcGFtLmNvbT4NCj4+IFJldmlld2VkLWJ5OiBTdGVm
YW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+DQo+IEkganVzdCB3YW50IHRv
IHNheSB0aGF0IFItYiBmcm9tIG1lIGlzIE9LDQpPaCBzb3JyeS4gTXkgYmFkLg==


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 06:20:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 06:20:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100591.1453947 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ursTS-0006Eh-TT; Fri, 29 Aug 2025 06:20:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100591.1453947; Fri, 29 Aug 2025 06:20:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ursTS-0006Ea-Qr; Fri, 29 Aug 2025 06:20:34 +0000
Received: by outflank-mailman (input) for mailman id 1100591;
 Fri, 29 Aug 2025 06:20:33 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xaUo=3J=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1ursTR-0006EB-HL
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 06:20:33 +0000
Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com
 [2a00:1450:4864:20::533])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 441dbe53-84a0-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 08:20:32 +0200 (CEST)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-61cb9f6dbe7so3096619a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 23:20: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
 4fb4d7f45d1cf-61cfc22dfa1sm1153279a12.22.2025.08.28.23.20.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 23:20:31 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 441dbe53-84a0-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756448432; x=1757053232; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SwL8ZSyp2xvdczBMLmzpIMgQu7XvJRUCLOwwoh43KYs=;
        b=ItcPzFZFfrFEEqxLNfhVRBZeYMq54Alpgg21abgx6IyzlCQMOWfublKEGTXAlX2oYw
         IfRld0YA/DFaWeJchvWdTDNtcUSHUnR7clFL33T61SA876HE//MMgEQz33VLKTnnEcy3
         SGzvPpnd4UTV1rdlpJOJFvxSaFZjgPlozzAfb5uzRngeWI6DB019zX6tVHHG4RcjZEf1
         cVaTepiHA9EEESBr3/YTP0i+TZ+TL2JCwFM5hlcVazhKzq2pme9aktJSSe52F0O1OTnp
         /Ps93qtwcloggSbfBCBSj1U6cln+p8XQOr0+BF3p+YTIPJEvMJGyLVEbZAiJuRhfRUcA
         rl6Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756448432; x=1757053232;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SwL8ZSyp2xvdczBMLmzpIMgQu7XvJRUCLOwwoh43KYs=;
        b=k5kOYtcZZPdei8MkC+ReQSxuOHk+Jhtkg1bjo/f28NU/537ceD7/7wtfUTIDeq9uVh
         QXvP/knE2modwKxAhx1r6vERF2RO9BOBQQbJNjyMlL3TuNDHxyLOpYpyEoz+olGZyIrw
         o2szXVvIw0Q0z5RFcNAUsUfIeM7TwGwx3ahBndlgafWtipHmL8yjBqqH910b9tq1xie9
         cWZkRXk9BKn+lCGT41J15sQn4R3OryoZGQRqA9tM/YoXxi/ZWOfdNVoAflDVSgs5Czwh
         sVRDksHvEVnyTEOJJMRP/xDc+6ipa0XQ9p9fo8HsOMd6YdXASeLxsRyCxsyQnJ4tqukO
         ZEbg==
X-Forwarded-Encrypted: i=1; AJvYcCXjvQDoJTYwaI2wz1mgk0NubpHkBGSgtLc6Q7vu9eWKgNqRcxLu2WXwlshP2GLsHU0xtTM5aTyg+mo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YymychhMylWok5dH56+4HWONDcVtug6ZCpjF2Wg8F+GF3N2qbia
	paB5+kJ1u/GHBjTfEHzDa5hy91pPORL4vGxTDFlKsQ7vWdARh3VVzRnh4eQpTfqntg==
X-Gm-Gg: ASbGncvTfsG9aY8c0dMxLrqnRejkTod1v422EIgRS7wciCufGml12D9+6MushtTVxo3
	Yra0w3MwBQirxMLy0BxSjE51gs6/a8OnmlkxGCGqpFUXKSexJNKXFJ8YCgbsB1jzVCVMhz3G3Rg
	4N02VhwnZ8c5rzvAW7e56uNrtJKGgX9w341Fh1vdU2X3F7VghX7klgXdKgGy8UOp49Flw7oAZ4v
	vfz/oI+OhAudpoW0O6U5MvCbv/4k7JVA/FO6GuYErwEP6XYdd1exCmThoEpSWUUBLlGKxaoXgP4
	pmXX4YKSyaREoBHK4mtWuv+zBW6uefoyurATby4A4ID0FCMivQOBOnEYoVh9kZB8I6j0ksRE/P5
	ssSYOMA9nl9fnG6SmzNuPM0lwcAW2HJIYDR5cHesx2B8mLPwPxGsdm4r4FHf8onaH1xJEFYHaHY
	agaKNRqBKw0VowVuAfmg==
X-Google-Smtp-Source: AGHT+IHIpvhmevXzID993Jjkojmc1EXIeV+k2RSEEPf5zr2LxpJIGPp22+UmKRdyOtiOYtRAvWixkQ==
X-Received: by 2002:a05:6402:2114:b0:61d:13b:3c6d with SMTP id 4fb4d7f45d1cf-61d013b4883mr1142029a12.24.1756448431764;
        Thu, 28 Aug 2025 23:20:31 -0700 (PDT)
Message-ID: <8fbe910a-d6ff-4ddf-8375-f1c008ffde42@suse.com>
Date: Fri, 29 Aug 2025 08:20:30 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8 3/8] xen/cpufreq: implement amd-cppc driver for CPPC in
 passive mode
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: ray.huang@amd.com, 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,
 Penny Zheng <Penny.Zheng@amd.com>
References: <20250828100306.1776031-1-Penny.Zheng@amd.com>
 <20250828100306.1776031-4-Penny.Zheng@amd.com>
 <b2712815-97c2-4473-bcf6-aae8517aad37@suse.com>
 <24474024-0542-48e5-a1b8-bb534c7eeb4b@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: <24474024-0542-48e5-a1b8-bb534c7eeb4b@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29.08.2025 02:16, Jason Andryuk wrote:
> On 2025-08-28 07:22, Jan Beulich wrote:
>> On 28.08.2025 12:03, Penny Zheng wrote:
>>> +static int cf_check amd_cppc_cpufreq_target(struct cpufreq_policy *policy,
>>> +                                            unsigned int target_freq,
>>> +                                            unsigned int relation)
>>> +{
>>> +    unsigned int cpu = policy->cpu;
>>> +    const struct amd_cppc_drv_data *data = per_cpu(amd_cppc_drv_data, cpu);
>>
>> I fear there's a problem here that I so far overlooked. As it happens, just
>> yesterday I made a patch to eliminate cpufreq_drv_data[] global. In the
>> course of doing so it became clear that in principle the CPU denoted by
>> policy->cpu can be offline. Hence its per-CPU data is also unavailable. See
>> cpufreq_add_cpu()'s invocation of .init() and cpufreq_del_cpu()'s invocation
>> of .exit(). Is there anything well-hidden (and likely lacking some suitable
>> comment) which guarantees that no two CPUs (threads) will be in the same
>> domain? If not, I fear you simply can't use per-CPU data here.
> 
> Sorry, I'm confused by your use of "domain" here.

I agree it's confusing, but that's the terminology used in cpufreq.c (see
e.g. "struct cpufreq_dom" or "const struct xen_psd_package *domain_info").

>  Do you mean a 
> per_cpu(..., policy->cpu) access racing with a cpu offline?

Yes (I wouldn't call it "racing" though, as it's not a timing issue).

>  I'm not 
> away of anything preventing that, though I'm not particularly familiar 
> with it.



> do_pm_op() has:
>      if ( op->cpuid >= nr_cpu_ids || !cpu_online(op->cpuid) )
>          return -EINVAL;
>      pmpt = processor_pminfo[op->cpuid];
> 
> and do_get_pm_info() has:
>      if ( !op || (op->cpuid >= nr_cpu_ids) || !cpu_online(op->cpuid) )
>          return -EINVAL;
>      pmpt = processor_pminfo[op->cpuid];
> 
> But those are only at entry.

That's not accessing struct cpufreq_policy, though. Per-CPU accesses
using policy->cpu are the problematic ones, as - from all I can tell -
the CPU named there can have gone offline, with the policy surviving
when some other CPU is also part of the same "domain".

As said in the reply to Penny, main question is whether the data
controlling what a "domain" covers may be constrained in the HWP case,
demanding that no two CPUs (threads) can be in the same "domain". Then
adding merely a sanity check somewhere would suffice.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 06:29:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 06:29:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100601.1453956 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urscM-0006zx-OI; Fri, 29 Aug 2025 06:29:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100601.1453956; Fri, 29 Aug 2025 06:29: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 1urscM-0006zq-Li; Fri, 29 Aug 2025 06:29:46 +0000
Received: by outflank-mailman (input) for mailman id 1100601;
 Fri, 29 Aug 2025 06:29:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=OeP6=3J=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1urscL-0006zk-0y
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 06:29:45 +0000
Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com
 [2a00:1450:4864:20::132])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8c4d8889-84a1-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 08:29:42 +0200 (CEST)
Received: by mail-lf1-x132.google.com with SMTP id
 2adb3069b0e04-55f4410f7c9so2098497e87.2
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 23:29:42 -0700 (PDT)
Received: from [192.168.0.110] ([91.123.151.69])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-55f676dbb91sm389582e87.24.2025.08.28.23.29.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 23:29: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>
X-Inumbo-ID: 8c4d8889-84a1-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756448982; x=1757053782; 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=kMcCZQ6c8ymlBTBy+VwpEVk0KKPxGqG9B3ghzAq7FEM=;
        b=IwOQkBBGBKQ8hJx9RURke0mjFvc5vLZGhnJryx0cIvI5fOdKyX0HObkxYIcYwuD6AK
         G3lzFj38FoTdX6jHeAGp9DeR2noPiq+SNFmbiKuLT78rBSM2Qpnn/sZhNE2IDz5p0LUT
         BUFeOmz76Y1d5WQEaIU5HSidIDYN9Tzb+usADGJJWsG4eQoD27ue5irfZ5mXdNpRNA9C
         tHNNiLpWb21hsdlYvC2JWqvZbx9Iwawyu/WuSOYNyMXV8ZdzZbXU/Tde6Ed8dBvGmc4W
         XYD1lotUbuUntOzBxKg4uFlxMAfSsB/J8/kRAX4M9cUXJGN4Fz9Axws4tZUwKkiwYgKl
         qipw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756448982; x=1757053782;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=kMcCZQ6c8ymlBTBy+VwpEVk0KKPxGqG9B3ghzAq7FEM=;
        b=Psh5MsBXJRO0KDzYMbsfc23ixOBsASzMhHGBBlNj1WKy0HI3FDrh8Y7+EEgSnxFKNl
         ky1tEOWASOyY9Pdjbc9ZLngOyBkvdQcdEMWoY5E4qUjKq6z+Kgo1EccxkRw8xzhj5jWv
         BXl5BNUlsYep570vHMNiuE2uPhSbdt9G/niKRpa/GBZhm/515jlfESMKHRkeBOYsBL0r
         oKeYaNsWDzGYmrQ0RfnlOZCSSZ2TKPhAa9/2NLes+9Wu6bAvPVxxQKrMhQH7AVbH86vH
         aOyPgCDvWBk9wnvHSwXyB+xBOScpYfrVFEVV9R9xJw+LiR4XIBWgaxcv6HSQ9jB0U12p
         SlGQ==
X-Gm-Message-State: AOJu0Yy0tiZtscYh2lgwW3PWxiLGqvAkLw9+MqiHpbbqd1SRzm4VRoES
	lxDYexq4L5ZyohlVxSVsd1UCoCgF3hRY9/cEu4UOhBYvcEQY13VK9dCa
X-Gm-Gg: ASbGncuepXvhlHoWKxLYKEtxy+v2RlKj3CflyQ+c96b7scqPhOAuwj/refoiD+JkFq3
	EnIL2nuj5mR/DNvKMvPKspJqr7nk5md81d1XlqhFtg9GmdNtbWo67w0b+I6Pc93gVLRaDd82cpG
	HREDPTmCUhHTXNtqvMpQbDgad1IDtf1xWRqZgDw0AZlAHUX2yDFwf2nhWRBVHMU/myOdZOPgj1v
	0rt5N43mT+TI+PiWHvOkU6SM9yxUwSJ2ohGumZNZWhUJCOeka9IiaCM4wQCWWrnSOYyNkra2LGA
	F476wEIflEmvMQu6vA3xt6yy3Mn9IcGe6x1SVzIi+w6aaWZALz8xT0hJ15WtMvLrkNqy0oJVxaz
	I9aFwzEKcSlMLf7rpraxIIHBFCBTkE4gKmgu4cyeEO8VARFc=
X-Google-Smtp-Source: AGHT+IEJFVdEAlxEqP7rIULQaNI4ss9DnnyGsnvHE47nJ8lz+ylG9RIzrBB+ytK3YyhCEbYYcEDkdA==
X-Received: by 2002:a05:6512:404b:b0:55f:501e:7bf7 with SMTP id 2adb3069b0e04-55f501e7df8mr3638562e87.57.1756448981731;
        Thu, 28 Aug 2025 23:29:41 -0700 (PDT)
Message-ID: <a564f8fd-2084-42c4-8d49-41be24c864f8@gmail.com>
Date: Fri, 29 Aug 2025 09:29:38 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5] xen/char: implement suspend/resume calls for SCIF
 driver
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: xen-devel@lists.xenproject.org,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
 Mykola Kvach <mykola_kvach@epam.com>
References: <e57133182b9bcecb519911c8b3f0d871955d6fef.1754540991.git.mykola_kvach@epam.com>
 <60c0b456-bfda-430d-a1e9-f64c9a49ac54@gmail.com>
 <CAGeoDV9ov_SfbOFVGZ25a=-g9tjus6Wg2-8cXQaJDWk3_QOg1Q@mail.gmail.com>
Content-Language: en-US
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
In-Reply-To: <CAGeoDV9ov_SfbOFVGZ25a=-g9tjus6Wg2-8cXQaJDWk3_QOg1Q@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit



On 29.08.25 00:36, Mykola Kvach wrote:
> Hi Oleksandr,


Hello Mykola

> 
> Thank you for your review.
> 
> On Tue, Aug 26, 2025 at 6:51â€¯PM Oleksandr Tyshchenko
> <olekstysh@gmail.com> wrote:
>>
>>
>>
>> On 07.08.25 08:16, Mykola Kvach wrote:
>>
>>
>> Hello Mykola,
>>
>> In general patch looks good to me, just one question below ...
>>
>>> From: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
>>>
>>> Implement suspend and resume callbacks for the SCIF UART driver,
>>> enabled when CONFIG_SYSTEM_SUSPEND is set. This allows proper
>>> handling of UART state across system suspend/resume cycles.
>>>
>>> Tested on Renesas R-Car H3 Starter Kit.
>>>
>>> Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
>>> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>>> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
>>> ---
>>> In patch v5, there are no changes at all;
>>> it was done just to trigger a review.
>>
>> I think, you could ping on V4.
>>
>>
>>>
>>> In patch v4, enhance commit message, no functional changes
>>>
>>> In patch v2, I just added a CONFIG_SYSTEM_SUSPEND check around
>>> the suspend/resume functions in the SCIF driver.
>>> ---
>>>    xen/drivers/char/scif-uart.c | 40 ++++++++++++++++++++++++++++++++++--
>>>    1 file changed, 38 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/xen/drivers/char/scif-uart.c b/xen/drivers/char/scif-uart.c
>>> index 757793ca45..888821a3b8 100644
>>> --- a/xen/drivers/char/scif-uart.c
>>> +++ b/xen/drivers/char/scif-uart.c
>>> @@ -139,9 +139,8 @@ static void scif_uart_interrupt(int irq, void *data)
>>>        }
>>>    }
>>>
>>> -static void __init scif_uart_init_preirq(struct serial_port *port)
>>> +static void scif_uart_disable(struct scif_uart *uart)
>>>    {
>>> -    struct scif_uart *uart = port->uart;
>>>        const struct port_params *params = uart->params;
>>>
>>>        /*
>>> @@ -155,6 +154,14 @@ static void __init scif_uart_init_preirq(struct serial_port *port)
>>>
>>>        /* Reset TX/RX FIFOs */
>>>        scif_writew(uart, SCIF_SCFCR, SCFCR_RFRST | SCFCR_TFRST);
>>> +}
>>> +
>>> +static void scif_uart_init_preirq(struct serial_port *port)
>>> +{
>>> +    struct scif_uart *uart = port->uart;
>>> +    const struct port_params *params = uart->params;
>>> +
>>> +    scif_uart_disable(uart);
>>>
>>>        /* Clear all errors and flags */
>>>        scif_readw(uart, params->status_reg);
>>> @@ -271,6 +278,31 @@ static void scif_uart_stop_tx(struct serial_port *port)
>>>        scif_writew(uart, SCIF_SCSCR, scif_readw(uart, SCIF_SCSCR) & ~SCSCR_TIE);
>>>    }
>>>
>>> +#ifdef CONFIG_SYSTEM_SUSPEND
>>> +
>>> +static void scif_uart_suspend(struct serial_port *port)
>>> +{
>>> +    struct scif_uart *uart = port->uart;
>>> +
>>> +    scif_uart_stop_tx(port);
>>
>>    ... I wonder, whether the call above (that disables Transmit
>> interrupt) is really needed as the call below disables all interrupts
>> anyway?
> 
> I have checked the relevant documentation and did not find any requirement
> to clear TIE before disabling the rest of the SCSCR bits, according to the
> R-Car Series, 3rd Generation Userâ€™s Manual: Hardware, Rev. 0.52.
> 
> However, based on how the serial subsystem works, I believe this call is
> justified.
> 
> Disabling TX IRQs before fully stopping the serial prevents new data
> from being added to the FIFO by the IRQ handler during suspend (see
> serial_tx_interrupt). This ensures the FIFO is flushed (loop inside
> scif_uart_disable) and no further transmissions occur.
> 
> If a flush handler were implemented for this driver, we could avoid
> calling scif_uart_stop_tx and remove the loop inside scif_uart_disable,
> as the flush handler would ensure the FIFO is empty after any invocation
> of serial_tx_interrupt.


thanks for the investigation, the explanation is ok to me.

Reviewed-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

> 
>>
>>
>>> +    scif_uart_disable(uart);
>>> +}
>>
>> [snip]
> 
> Best regards,
> Mykola



From xen-devel-bounces@lists.xenproject.org Fri Aug 29 06:29:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 06:29:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100602.1453967 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urscU-0007Fv-2z; Fri, 29 Aug 2025 06:29:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100602.1453967; Fri, 29 Aug 2025 06:29: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 1urscU-0007Fn-0D; Fri, 29 Aug 2025 06:29:54 +0000
Received: by outflank-mailman (input) for mailman id 1100602;
 Fri, 29 Aug 2025 06:29:52 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xaUo=3J=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urscS-0006zk-KH
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 06:29:52 +0000
Received: from mail-ej1-x62e.google.com (mail-ej1-x62e.google.com
 [2a00:1450:4864:20::62e])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 91205e77-84a1-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 08:29:50 +0200 (CEST)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-afeceee8bb1so251358766b.3
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 23:29: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
 a640c23a62f3a-afefca0e0basm131617866b.39.2025.08.28.23.29.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 23:29: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>
X-Inumbo-ID: 91205e77-84a1-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756448990; x=1757053790; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=NKPuM8A6pdXjZulZnYRD439gNJuM9nVaFGmGH2Ryd1w=;
        b=RnzCnl69Tggumc85G4xipX5ybH9yjyBznjB4wf5oNymJZxG1rQKfgoF7hlcyzlhY+7
         LE5R1dSs4xs9tJNq+X5sBiPdFIOs5fAOPBh3REYViBqBwm6mHCEJT489yevJZ9O6ozaQ
         sqPtQM56vYxwICbA3UJfSne1jSIGxkGYzgkkWlVIPMSfMjhMWF6XSp7PLoGx3J44RUZR
         YxpNGlPH08Nrgb21gXyOF+o691UAnolowRT7CE89G7JTPT3gT3r0+rMiahJDhSPSvYxe
         uL+78eE8rcrHAeNCbyEHBQM4Ga4SMGPzkn91v0G3mH/3EE/dU/Irx4kc6MXo+QzLw2eQ
         dyZQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756448990; x=1757053790;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NKPuM8A6pdXjZulZnYRD439gNJuM9nVaFGmGH2Ryd1w=;
        b=U84ETxOAUN5L/CaTCV5sAUz0TMxmNTAy4f55kiLnoIIe57uqJG0OpJ8g8a4l3DjIyg
         pnXRo8vnMjJ1bhVzdlyTatNXw/jMDATuGHJfMCSBJlCV0tMdV8WjRFvFMEx0QqPM+2QG
         gV6t8uGQj8+QJs/sNZk9O1yfpUmaWu5/6Ad9RdYZ1wO49sIxvjsJm63pzIuyTHpNsc8T
         uV/Ft4FQ2W9Wxsf8TnHo5el0RD0pyFoG6eAp2wXaJmF5gSe+Ncwaeku19FW8/EAHnLV7
         4LnFO0pw77eXxuv2Ow7J2iQRpukhl4RDdqvHsaZXaQULr4WPg3edlW+7MJkgBHeDcWs6
         mxAw==
X-Forwarded-Encrypted: i=1; AJvYcCWjUZWSq3be1Wofy7zaEFUFRsc3x1p5a8ssyfK2M1N7upf1yfAVjr9Owl9JqP5NQh5XOv9W9BfkknY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzjASQZcDUekb3vTwmIH/chx4yl3NkTjWXoHREq8BfkRaxJmQzE
	W2uC62xU35u07ou2Qw0PgLwKfmhnUmnvjw57vvDE08i8R6CuLDiquOcioqGS8UBE2g==
X-Gm-Gg: ASbGncuxjjEYRektRgH2FLCpaHB/vITMFmh2VG79677cFw5tL+9BgJFwYJUCPXmqobW
	ofoYy7Td+fRQkK/oe1BDyDzn25MXb3MTlY5LTlqCJ3+s3Xqgx6eoP099PiAOmIHVSZn3lGlh/WJ
	Eyb4MQ+Bc3wZdB2t5eBIDpwWiWd2ez5+xPePUHcNVWlu58ykw4WtdQidlWTepDQD0X/G9151YsQ
	iEAgaOEA/xCXoL0ZONyTDf6X0aqspWBUVTJi/4N39L+MzpjOyvAvmt9Ul+6zF2IGQJnQVMzBEwJ
	92ISyd/fT1Yo1uLNt4ZYd0pRbbWY0oadyL9hU1cyN8q9s6Ck4gTQ87EVjqiUaQjvy9FjdyE86Kl
	d3A5qqN1pCg37EQe/vqesY7z/OjpLrcqCdNa5XXqmrjwcUkoUJoFKsjs1jtARDjX7uje2NyNWmW
	7QO7c6IHs=
X-Google-Smtp-Source: AGHT+IF+/WaFyPVArHuBEtqNrGhAAzVnbk/ZU9kCfN4nsXGLiQ//JCCMgfmyLCNNBZKhZJmLYXlsKQ==
X-Received: by 2002:a17:907:2d10:b0:afe:c1e4:5554 with SMTP id a640c23a62f3a-afec1e457b6mr854676066b.38.1756448990175;
        Thu, 28 Aug 2025 23:29:50 -0700 (PDT)
Message-ID: <2b34c868-7562-4824-8a1a-72df7348dbea@suse.com>
Date: Fri, 29 Aug 2025 08:29:48 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86: introduce "hot" and "cold" page copying functions
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <1b9e5d46-20a8-4b5f-b938-e28a0429c770@suse.com>
 <4d06bd13-6f75-4dcf-aa4d-c225139c2575@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: <4d06bd13-6f75-4dcf-aa4d-c225139c2575@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.08.2025 23:33, Jason Andryuk wrote:
> On 2025-08-28 05:17, Jan Beulich wrote:
>> The present copy_page_sse2() is useful in case the destination page isn't
>> going to get touched again soon, or if we want to limit churn on the
>> caches. Just rename it, to fit the corresponding {clear,scrub}_page_*()
>> naming scheme.
>>
>> For cases where latency is the most important aspect, or when it is
>> expected that sufficiently large parts of a destination page will get
>> accessed again soon after the copying, introduce a "hot" alternative.
>> Again use alternatives patching to select between a "legacy" and an ERMS
>> variant.
>>
>> Don't switch any callers just yet - this will be the subject of subsequent
>> changes.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

Thanks.

>> To avoid the NOP padding (also in clear_page_hot()) we could use a double
>> REP prefix in the replacement code (accounting for the REX one in the code
>> being replaced).
> 
> Did my tool chain do it automatically?
> 
> 0000000000000000 <.altinstr_replacement>:
>     0:	b9 00 10 00 00       	mov    $0x1000,%ecx
>     5:	f3 f3 a4             	repz rep movsb %ds:(%rsi),%es:(%rdi)

Interesting. That looks like a bug to me, when source code merely has

        rep movsb

Did you also check what copy_page_movsq (i.e. "rep movsq") expands to?
What gas version is this? With 2.45 I get

0000000000000000 <.altinstr_replacement>:
   0:	b9 00 10 00 00       	mov    $0x1000,%ecx
   5:	f3 a4                	rep movsb (%rsi),(%rdi)

(the omission of segment indicators when there's no segment override is
indeed a change in 2.45).

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 06:59:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 06:59:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100631.1453976 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urt4r-0003UV-8R; Fri, 29 Aug 2025 06:59:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100631.1453976; Fri, 29 Aug 2025 06: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 1urt4r-0003UO-5t; Fri, 29 Aug 2025 06:59:13 +0000
Received: by outflank-mailman (input) for mailman id 1100631;
 Fri, 29 Aug 2025 06:59:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xaUo=3J=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urt4q-0003UI-3Y
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 06:59:12 +0000
Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com
 [2a00:1450:4864:20::632])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a9cba614-84a5-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 08:59:10 +0200 (CEST)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-afcb731ca8eso280566766b.0
 for <xen-devel@lists.xenproject.org>; Thu, 28 Aug 2025 23: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
 4fb4d7f45d1cf-61cfc214bb7sm1165506a12.13.2025.08.28.23.59.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 28 Aug 2025 23: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>
X-Inumbo-ID: a9cba614-84a5-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756450750; x=1757055550; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=aNfvUShnH51qG42u7rH1FlK2GxWYroXXoNrl2DwQrcU=;
        b=alJSJBRZfImITIrYDAJKdUM1N70jSggcu6fA3puRkHk/c33WMit+OtdTmRhrmhi7fB
         +kpbTQ3SYYSgxR6uG2rMWf25kunxJuCsEo4QIRCQRbVoxwAtYQ5+63NXZFxeGpE5X0Ow
         ALR1+YQNYZonLFKBFQIBuhzqkWYOLid9FgM2DqQKTzJw6/i+fx14+ylOEwigIv4vubW2
         TSm97Vir4qQdRFG+xLWHHIld5/hgxz5FarIzP5vj6M2xuDk5tyZ2sg5fjKDQcYzxl/og
         1uIdPJ1XS+ZhtYvrb/HYGe3Am2xo7dKiV1qlBNKG6umMFdCr+8LLeowGZyJ+n1qpDgjM
         /Bbg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756450750; x=1757055550;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=aNfvUShnH51qG42u7rH1FlK2GxWYroXXoNrl2DwQrcU=;
        b=gr1XB7nrMez9QizZN6qwmwijh69Vkw7tUXEZH/j9LWOWBJzIvhRQFTK/9gaYNtnOgT
         rsYowfwLS6TLhP0XNc1b1TketxQZvXYy/T+EFb1gZloFfacVlh+O9mJxkhhTsD5zysYN
         m6lkU2idagSrtj4Ou71fB4iVl7lADyov0LPpIGVJf+W5TdbqYrlmNfIYjdAPS/t+yvh6
         oZNIdvvNTD8MRU5j4tRfwkNAJjfwEZiYmM/yJ9sp2nlIF5313wBSZ31mofmuPDMCSIq1
         ciyZe9HiVwhpEilVGTqvL9z4InRL1a7GsqHpSbB4zwWoW4GHGHwvCSWt2fuzECm5+eoq
         tJRw==
X-Forwarded-Encrypted: i=1; AJvYcCX8q58aQoAV3bYFX35XrtL8oUKXGj2WtHbrNTQzoblr0bHYYSE7jInyBqA4LGz/wxy/kEJBCMnK95U=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxM2leL1cHw7lyFVaEqTAnP8g8RdNLrjFdFkFNxhGrsu+00oeyQ
	Qo3/L5YPRYWaAyB7V+80f1NxwyZEBCJ6foP+ZoI8NqPyDmg1PSO5iSCONTqdMHdxDg==
X-Gm-Gg: ASbGncuuDtfOyDUGaveknpiGyHBCN1se0k3d9hao57i7LXzQcC6byJ41uC0ntBugGVA
	C3luzueq0BzXSv+l1A0y8+KGoc397yZ4mgwTFboLbD20OKySm1EJceskt1Z86bMhtfLCPMQixsf
	aoB8yWV3o3rZdAYd4tC+OSJLV7C3DPCM+MxQweXMBwSNHkILelJQP93iTGukILFGuG6aHi5QrmY
	p/eedIYFkogIEK/3Znd0hLpj8ep4/DjBuYYJKKTVk8AEOR0kR/4lvJWhArInIM/zkwMhdhLUNf4
	ugJhjie32e2nkBIA7PCJTNXke3VOPIsqDMlEWSqYrYZ8BsrSs017xgulRwBadz/O+gl95Rta/5q
	+YIznijy7I1qHzPfbNm1Xh3qzxQApaD9bvMu2pYsHPqDPjCuMfl8C+u5OEC4EhiixWKpyzHO89K
	jkcFrlnyrTksSVzdvCnw==
X-Google-Smtp-Source: AGHT+IFz9sxg9C77Ggj2NVlcm3Ou9mrbrqVgUIpDUsyOF/HJytqGmZZdPqs9Kn42L41s+lM4PVLT+Q==
X-Received: by 2002:a17:907:3d8e:b0:afe:b872:b991 with SMTP id a640c23a62f3a-afeb872c1bbmr849167066b.22.1756450749605;
        Thu, 28 Aug 2025 23:59:09 -0700 (PDT)
Message-ID: <289851bd-95c5-485c-8b3c-d31452ad204f@suse.com>
Date: Fri, 29 Aug 2025 08:59:07 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/5] symbols: arrange to know where functions end
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <ceef1876-8759-465c-9a74-309b6b92f773@suse.com>
 <10e116c5-5a62-4abc-a52a-e2ca12118cfe@suse.com>
 <24fd00b5-3053-43ae-8342-887eee94869a@amd.com>
 <d934d8a8-93c0-4cb6-baa4-f2aedb719f25@suse.com>
 <e9eaf331-4a32-4c80-8b0a-5f36d8fd9022@suse.com>
 <773a5f4e-2f73-4b84-bc56-90aee660acd2@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: <773a5f4e-2f73-4b84-bc56-90aee660acd2@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.08.2025 19:16, Jason Andryuk wrote:
> On 2025-08-28 12:11, Jan Beulich wrote:
>> On 28.08.2025 09:28, Jan Beulich wrote:
>>> On 28.08.2025 03:03, Jason Andryuk wrote:
>>>> On 2025-04-02 09:58, Jan Beulich wrote:
>>>>> --- a/xen/tools/symbols.c
>>>>> +++ b/xen/tools/symbols.c
>>>>
>>>>> @@ -318,24 +334,42 @@ static void write_src(void)
>>>>>    	printf("#else\n");
>>>>>    	output_label("symbols_offsets");
>>>>>    	printf("#endif\n");
>>>>> -	for (i = 0; i < table_cnt; i++) {
>>>>> +	for (i = 0, ends = 0; i < table_cnt; i++) {
>>>>>    		printf("\tPTR\t%#llx - SYMBOLS_ORIGIN\n", table[i].addr);
>>>>> +
>>>>> +		table[i].addr_idx = i + ends;
>>>>> +
>>>>> +		if (!want_symbol_end(i)) {
>>>>> +			/* If there's another symbol at the same address,
>>>>> +			 * propagate this symbol's size if the next one has
>>>>> +			 * no size, or if the next one's size is larger. */
>>>>
>>>> Why do we want to shrink the next symbol's size?
>>>
>>> First (see related post-commit-message remarks): In principle section symbols
>>> could come with a size, too. That would break everything as long as we don't
>>> strip those.
>>>
>>> The main reason though is that imo smallest granularity is what we want here,
>>> together with predictability. One symbol with a huge size could cover
>>> multiple other symbols with smaller sizes. We could omit that part of the
>>> change here, but then the processing in the hypervisor would need to change,
>>> to fish out the "best suitable" symbol when dealing with multiple ones at the
>>> same address. Other changes may then also be needed to the tool, to have such
>>> symbols come in a well-defined order (to keep the then-new code in the
>>> hypervisor as simple as possible). Look for "aliased symbol" in
>>> common/symbols.c to see how simplistic respective code is right now.
>>
>> Furthermore remember that we can't record sizes, but instead we insert fake
>> symbols. Obviously there can be only one (at least in the present scheme).
>> If we used too large a size, chances would increase that the end symbol (in
>> the sorted table) would have to live past some other symbol, thus becoming
>> that one's "end".
> 
> The scenario I thought about is something like:
> 
> a 0x100-0x10f
> b 0x100-0x1ff
> c 0x200-0x2ff
> 
> If you shrink b, you are creating a hole that would otherwise be 
> assigned to b.
> 
> But I agree avoiding huge sizes covering multiple small variables would 
> better be avoided.
> 
> Do you have concrete examples to help illustrate the problem?

a 0x100-0x1ff
b 0x100-0x10f
c 0x110-0x11f

If we inserted an "end" label based on a's size, that would effectively be
c's 2nd end symbol (and there may not be two "end" symbols in a row, unless
we want to further complicate the symbol lookup logic).

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 07:04:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 07:04:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100650.1453987 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urt9k-0005Gx-R7; Fri, 29 Aug 2025 07:04:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100650.1453987; Fri, 29 Aug 2025 07:04: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 1urt9k-0005Gp-No; Fri, 29 Aug 2025 07:04:16 +0000
Received: by outflank-mailman (input) for mailman id 1100650;
 Fri, 29 Aug 2025 07:04:14 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=mo2k=3J=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1urt9i-0005Fh-Co
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 07:04:14 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20601.outbound.protection.outlook.com
 [2a01:111:f403:2009::601])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5def9469-84a6-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 09:04:13 +0200 (CEST)
Received: from BYAPR01CA0037.prod.exchangelabs.com (2603:10b6:a03:94::14) by
 SA3PR12MB9225.namprd12.prod.outlook.com (2603:10b6:806:39e::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.17; Fri, 29 Aug
 2025 07:04:06 +0000
Received: from SJ1PEPF0000231D.namprd03.prod.outlook.com
 (2603:10b6:a03:94:cafe::7e) by BYAPR01CA0037.outlook.office365.com
 (2603:10b6:a03:94::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.19 via Frontend Transport; Fri,
 29 Aug 2025 07:03:58 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF0000231D.mail.protection.outlook.com (10.167.242.234) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Fri, 29 Aug 2025 07:04:06 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) 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; Fri, 29 Aug
 2025 02:04:03 -0500
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.10; Fri, 29 Aug
 2025 00:04:03 -0700
Received: from [10.252.147.171] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Fri, 29 Aug 2025 02:04:00 -0500
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5def9469-84a6-11f0-8adc-4578a1afcccb
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=sAI+BhYN3n9d6+fs+QZk8d732s+izqvtmEI8+j0rrJFkd4fd5Ny3KUn+UDLVNeCXeyjBX9+UMmrnPDvL3tFEAlXfejywvDrvzNBem2IEiaIJQzafqSumeXnKbYmMU1wb/GRQ8Ay1a7iVyJ95oJDLCjphkJdQwR6fi4h4SZ7DVrE2O6XaWjbYuwghM6AfSnwANmMkebwdpnGPGfwwx18J7iXxs3u4JKfg+EhiPiQg+ZiImmk+Q18fthtQ6zS1j2MhK/pQr+6m14ypxtkjdkXKOFbRbBdkSGP2cUpj9QT4PmSIxA3FQ8wJq8LW5jbi9lopGuCVtnh6YdCLN9vMFIgDZw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=c0aDw56Ks0qLUMD5JL6Bv8O/0/8nij4QzHfOTQaOd9s=;
 b=v0GkPkUY54x5n2wkw8gMF8PziM+DGhqJ46FH9rn0ET4rPSHkMOUzuiDRWJyHaozXpExNbTuVIXDcDCa6vewOVHaznnj75AyG/rkK2dfw1/IZN0E5sy2aH0rO2geykO21VMaanWwFTJCw4AsuqZLESmM/Nh8z5fhVXA+rGmjNadFN1RzPHsXjtWpeWN2faEBp26+nvKrRZeWXn6Cy9JijnmzXiebP82wuumpZvuL6d4q4gwvPAEQz5QdirxITX/oH3FcTGh7rfhfJv/aJyPXJGJWrk57sXaGkHjaV885D0F2nUD7l2pM7gDB/Mcf5qy3HGZ2JzNZK90Elk8VirnbaEw==
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=c0aDw56Ks0qLUMD5JL6Bv8O/0/8nij4QzHfOTQaOd9s=;
 b=2Sue4ewBetwYV+HoHGBMhqumxuBurpYZ2RSC7pWQ+EllF5RNNfh5BaksPiPp2nTKO1MlxotyD1wO4+CX8f0zZC0nJ66BegOGQIC8CEQbtk7lSGLH6rDXRZXl9FfARz0lYAnCva2TKqEji/mQqbjQ0xxCEvQMgD0Lz+AqhVV97iA=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <cf9f35a5-5c67-48b9-851a-67736050230a@amd.com>
Date: Fri, 29 Aug 2025 09:04:00 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 5/5] xen/arm: map static memory on demand
To: Hari Limaye <hari.limaye@arm.com>, <xen-devel@lists.xenproject.org>
CC: <luca.fancellu@arm.com>, Penny Zheng <Penny.Zheng@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>, Wei Chen
	<wei.chen@arm.com>
References: <cover.1756379422.git.hari.limaye@arm.com>
 <30cbc79f765c21759d74377e55cc471210fc2575.1756379422.git.hari.limaye@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <30cbc79f765c21759d74377e55cc471210fc2575.1756379422.git.hari.limaye@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF0000231D:EE_|SA3PR12MB9225:EE_
X-MS-Office365-Filtering-Correlation-Id: 1ee3b914-cafd-4989-a336-08dde6ca3e7e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|7416014|82310400026|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?R1gwMUlVZ0xUR09oejdzY3gveUtEaWZ3MWRQTk1DN0xVRlgyWENodW80NjBv?=
 =?utf-8?B?RlZFQ0JoZHJIUEVyM3ZkUW9zaGdpWEdFTmhWaHowZ1V1SWx2ZWpGUE11Z0Zw?=
 =?utf-8?B?R0V1YTNSTG1mdnREOEZMbjdMM1g5ZVpUQVR6b1BGZE5FYzNTTWx4V2pISVBo?=
 =?utf-8?B?YWsrTWxsaGNPWjQ4QjhhTWhYR2FLWHo3blV5MHVmQnlJdS9kaWZVcWJ3TWRT?=
 =?utf-8?B?N3VOVzl4RWxzU2sxQ3N0NVBCVWNTSndxMmsxWDFXb3R6a3ZGblMwL0pjZGpF?=
 =?utf-8?B?TmpsM0g2RkFveTFidE1NYlBZRDZPT0JiSVRCeHZ6SEtUVTdsOWlPVVpJMENj?=
 =?utf-8?B?NUhoMXoyZjhQN21kTHRWeXUrM2FqWnVZSXZnZG5reVNkUlNYa1VkTFFGUmI3?=
 =?utf-8?B?anlRRHByM2U2VXJMY241N0JTdVBwQ1ZoWEd4dWJRK09XZDVPT3JGNGVOS3Rn?=
 =?utf-8?B?ZFlUbFpVL2JjenJvaVovakZjeG5XYmcxY0hQeFZkWFVXbG1RZldld2F6aXRG?=
 =?utf-8?B?SXBWY04xeE9zWG9LdEFvNjlWUkVERjNHZXZCRzB5SE1xTXJwOUZ5Slo3c1pI?=
 =?utf-8?B?WTd1b0R3VzhrM1NXNWsrQkpKYmp5dzkvdVF0YWJZbS9ZZCtaRnBwSU5kQWI5?=
 =?utf-8?B?VnJvWnkwTG5GUEhYcU5qV2ZpVnBOYmgzUnlpaUJ6RGxuNG1ONU9seDZiSG1z?=
 =?utf-8?B?Q3NmS0w4TUNtamU2cTMzLy9PdzdTdFdqMjV2cTFscm5pUEgySmFSUWJhTjBL?=
 =?utf-8?B?QWdGdDBOR3RjdzBFejMxeHZWUmFzcnBMR2VGNnVYbjJteVpaTEFnNHZURXZ3?=
 =?utf-8?B?dk10NWgvWlVLMjN4WE1ESnJscVp4dkY2YlBRNFJpNnRMZnZBNkJCdnBrU1Jw?=
 =?utf-8?B?c0Q4WnMvOFZoWlVON0lXOVNqbTVVSk42ejlnellQZWRLd0ErYnFFSUpXNEYv?=
 =?utf-8?B?MkNETlVlVFVXSU5iTUh2NFMzTkZJYVRDWHZXa0lmQkU0RlA0NDJTZC9pVXda?=
 =?utf-8?B?eTlxei9kb3g0TjE0dENnRWpLNSs5ZThnaGRBd3NzR0trbkZCNzdrQ2hFOFF5?=
 =?utf-8?B?MmFZQVBjMlI3T3hQN2hxampSdnZidmluTEdkWjd2WXhaVjJYZU1ha1d4OGNi?=
 =?utf-8?B?QnVHTzBwL2t3d0ZPM0lMVm94K0lORUpEUDlSZGJQTDFzS0VqcDQxZ2w5YU11?=
 =?utf-8?B?SzRVOG5aVE1Fekp5WTBFVzluQ2VWNFBtY1FVRFJSeVBVNVpTR1ViVHFUUHBq?=
 =?utf-8?B?RitRK25qbjdDL0VpaDlLRy9pdWpuOVIweHk4OXVWY21PNDdjV1RUTzdFblpF?=
 =?utf-8?B?Zit3ME40ZHJEd3BBQ3BhT1RzTXJMWFd6dXE2SWVOSENDR3AzeFdRSGdBQ0JE?=
 =?utf-8?B?Q3BEb1RIM0VuRDJlVkRvSWpTV1BOeFBUNWNka1djTFloUFpZUTM4Qk8vWlVq?=
 =?utf-8?B?S2c2UkZ0Um1YSTJBaXdLSHpDaHlvRFlHN3pYWjA1ZEhLQ1FoNEREZFF6OTV5?=
 =?utf-8?B?bEd3R01OSm9WdEs5WVNQVjkrNUZ6N3VxY0V2S25GT05DZE8yUGdGOUZoOTV3?=
 =?utf-8?B?V2ZERkZzTWFGVUVrNDNMcnRXQ2k1aFVkNGJaU3h1UGk3MklPc2lnc2VzdGox?=
 =?utf-8?B?S3h1bWRaQ0JaT0lUSkk5Tm1uUGdMYytvdUE0bHpPVDBKMEc4MTJsSDVlaWRq?=
 =?utf-8?B?TmxxUTlxdGdPU0VvdUhtSEE3SmRSUUx4YTlMWnNzdW5ucEI0dzBNTVR2OUFO?=
 =?utf-8?B?QmJod3p6UUNERFVFM0tlSkdtcTFqY1NuMkExVFdCdHNKWmhFbkF0ZWdNRUsx?=
 =?utf-8?B?eE84QjlCdnBxZE1TUjdSbWRoMUVHQ3RHZnZENGk1Q2wxaEl0akJVVGpkQjF1?=
 =?utf-8?B?UE84RXRSZ282dTEvTlZCcW5nQW03cUlNU2VSTVJTUXpsZFdJNzhrRDlNNjlH?=
 =?utf-8?B?M2V2dGdDV3hIbkFyV0svZXgxekdOWmkyTUhqdEpJRnBVaEN3ZGdvQ0dvakY0?=
 =?utf-8?B?bHlvMEx1aVhFYWl0UFZZd0xsdnBmc0FkYzBnSGpZTlNkZGhHQkN1emVOd1lD?=
 =?utf-8?Q?MKUW9Y?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(7416014)(82310400026)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Aug 2025 07:04:06.1394
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 1ee3b914-cafd-4989-a336-08dde6ca3e7e
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF0000231D.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB9225



On 28/08/2025 13:12, Hari Limaye wrote:
> From: Penny Zheng <Penny.Zheng@arm.com>
> 
> In the function `init_staticmem_pages` we need to have mapped static
> memory banks for initialization. Unlike on an MMU system, we cannot map
> the entire RAM on an MPU system as we have a limited number of MPU
> memory regions. To solve this, transiently map the static memory banks
> for initialization.
> 
> 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>
> Reviewed-by: Michal Orzel <michal.orzel@amd.com>
Given that the freeze date will likely be extended, I'd prefer to take this tag
back and request this patch to be changed due to reasons listed below.

> ---
> Changes from v2:
> - Add Michal's R-b
> ---
>  xen/arch/arm/include/asm/mmu/mm.h |  3 +++
>  xen/arch/arm/include/asm/mpu/mm.h |  4 ++++
>  xen/arch/arm/mpu/setup.c          | 11 +++++++++++
>  xen/include/xen/static-memory.h   |  8 ++++++++
>  4 files changed, 26 insertions(+)
> 
> diff --git a/xen/arch/arm/include/asm/mmu/mm.h b/xen/arch/arm/include/asm/mmu/mm.h
> index 7f4d59137d..645a0ea3cb 100644
> --- a/xen/arch/arm/include/asm/mmu/mm.h
> +++ b/xen/arch/arm/include/asm/mmu/mm.h
> @@ -110,6 +110,9 @@ void dump_pt_walk(paddr_t ttbr, paddr_t addr,
>  extern void switch_ttbr(uint64_t ttbr);
>  extern void relocate_and_switch_ttbr(uint64_t ttbr);
>  
> +static inline void map_staticmem_pages_to_xen(paddr_t start, paddr_t end) {}
> +static inline void unmap_staticmem_pages_to_xen(paddr_t start, paddr_t end) {}
> +
>  #endif /* __ARM_MMU_MM_H__ */
>  
>  /*
> diff --git a/xen/arch/arm/include/asm/mpu/mm.h b/xen/arch/arm/include/asm/mpu/mm.h
> index efb0680e39..4cc769418e 100644
> --- a/xen/arch/arm/include/asm/mpu/mm.h
> +++ b/xen/arch/arm/include/asm/mpu/mm.h
> @@ -123,6 +123,10 @@ void *map_mm_range(paddr_t base, paddr_t limit, unsigned int flags);
>   */
>  void unmap_mm_range(paddr_t base);
>  
> +/* {un}map_staticmem_pages_to_xen used while initializing static memory banks */
> +void map_staticmem_pages_to_xen(paddr_t start, paddr_t end);
> +void unmap_staticmem_pages_to_xen(paddr_t start, paddr_t end);
> +
>  /*
>   * Checks whether a given memory range is present in the provided table of
>   * MPU protection regions.
> diff --git a/xen/arch/arm/mpu/setup.c b/xen/arch/arm/mpu/setup.c
> index 163573b932..dbc3107333 100644
> --- a/xen/arch/arm/mpu/setup.c
> +++ b/xen/arch/arm/mpu/setup.c
> @@ -83,6 +83,17 @@ void * __init early_fdt_map(paddr_t fdt_paddr)
>      return fdt_virt;
>  }
>  
> +void __init map_staticmem_pages_to_xen(paddr_t start, paddr_t end)
> +{
> +    if ( !map_mm_range(start, end, PAGE_HYPERVISOR) )
> +        panic("Unable to map staticmem pages to Xen!");
> +}
> +
> +void __init unmap_staticmem_pages_to_xen(paddr_t start, paddr_t end)
> +{
> +    unmap_mm_range(start);
> +}
> +
>  /*
>   * copy_from_paddr - copy data from a physical address
>   * @dst: destination virtual address
> diff --git a/xen/include/xen/static-memory.h b/xen/include/xen/static-memory.h
> index e445aa8057..d99abac113 100644
> --- a/xen/include/xen/static-memory.h
> +++ b/xen/include/xen/static-memory.h
> @@ -18,7 +18,15 @@ static inline void init_staticmem_bank(const struct membank *bank)
>      if ( mfn_x(bank_end) <= mfn_x(bank_start) )
>          return;
>  
> +    /* Map temporarily before initialization */
> +    map_staticmem_pages_to_xen(mfn_to_maddr(bank_start),
> +                               mfn_to_maddr(bank_end));
Static memory is not Arm only feature, it is common and as such should not (and
does not) make calls to Arm only functions. If at all, such helpers should be
made generic so other arches that could enable static memory can re-define them
if needed (as you pointed out, on MMU you don't need to map/unmap this region
temporarily).

~Michal



From xen-devel-bounces@lists.xenproject.org Fri Aug 29 07:04:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 07:04:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100651.1453993 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urt9l-0005Ny-6l; Fri, 29 Aug 2025 07:04:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100651.1453993; Fri, 29 Aug 2025 07:04:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urt9l-0005MS-2b; Fri, 29 Aug 2025 07:04:17 +0000
Received: by outflank-mailman (input) for mailman id 1100651;
 Fri, 29 Aug 2025 07:04:16 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=v7tV=3J=redhat.com=lbulwahn@srs-se1.protection.inumbo.net>)
 id 1urt9k-0005Gk-IJ
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 07:04:16 +0000
Received: from us-smtp-delivery-124.mimecast.com
 (us-smtp-delivery-124.mimecast.com [170.10.129.124])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5e0923e0-84a6-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 09:04:13 +0200 (CEST)
Received: from mail-qv1-f70.google.com (mail-qv1-f70.google.com
 [209.85.219.70]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-689-wP3vbYb7NEeGYo8yDtEh7A-1; Fri, 29 Aug 2025 03:04:09 -0400
Received: by mail-qv1-f70.google.com with SMTP id
 6a1803df08f44-70de0bdb600so33687356d6.1
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 00:04:09 -0700 (PDT)
Received: from lbulwahn-thinkpadx1carbongen9.rmtde.csb
 ([2a02:810d:7e01:ef00:b52:2ad9:f357:f709])
 by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-70e57e4b20bsm10805846d6.33.2025.08.29.00.04.06
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 29 Aug 2025 00:04:08 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5e0923e0-84a6-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1756451052;
	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;
	bh=HSxQ5uHqTcAFdl8TpMUsBZcieGblejZiliIfARmISnM=;
	b=Ev1j8SiYODL1fq6VR/VIZeR6mUpmbEcE/c6EjHgGTdjFFhyK4fg3jwFJWjb+etdhTivgQh
	28deOGN5F+bng+LWOb9bduy9MUz8ppnXVREk8/RBedmubECoHRmcYQJmp3jFtsKfujf9NG
	IlGMXP/qttiyR+ov1MvYdgLLqKd9VtA=
X-MC-Unique: wP3vbYb7NEeGYo8yDtEh7A-1
X-Mimecast-MFC-AGG-ID: wP3vbYb7NEeGYo8yDtEh7A_1756451049
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756451049; x=1757055849;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=HSxQ5uHqTcAFdl8TpMUsBZcieGblejZiliIfARmISnM=;
        b=aU5yWs9W+3Sfxq5hO/rDfa/QrSRhPSm8GorHxuOOXp0QcJ1y2gDiMOeYjgps069XJb
         +oxfY025BG/Q95vfkssNAkFu5BzlEntAiExqhbJUw5y++//Z/LSCDTvklCiBz8QEAqjI
         Rq2wRAcU3m+6USQ8srCSDZPqxlnYckh+iWyWbZzANxsDCpteZ73qq9i0JhFoaSD9f72w
         sDl2Trmz2ziTe22dxY/2RpL+OFhRD+6EbIniMjtCoBmXjn5FtBQkAFTZQivCr+Gcpl5Q
         O5tBhHmKH58JCSorYBjIq7j6edBO78IcRcCY40n3kY7LHIzPnvI0HgoWSYVU1VhvPBz+
         cAuA==
X-Forwarded-Encrypted: i=1; AJvYcCUyU1meveosfhHmvcPjlrvMTowgyaPbXgwxYmje8XrfPgEGjfOA975m9YKR7joMZseZKnjI3hcAWSM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzAMRqRUUpkVDrdxwELEDbWCCdBQfWD2GN+qTeLSRK5Rk/trrbP
	39c3T2Esj+eUKq57Ao+XoU8twnZZnx2VPooc8RYap09VjlLUh7E1DyniXen2nEP/nPcDpcbOmCc
	ovFfiwY4Gv3oPxpBJGgo2G1JA9qfZFXNmgKAwxrXz+vsh6RmPPadJM4HT9bFnEFhzymtr
X-Gm-Gg: ASbGncvOeeWR45KN128QZoHiX4Ly9YEcska6jpCrNckLG3Mxn4OrqSWKCwGWMkz2AiK
	LwZbJ4trjwXFXvB3PUxc9smATTLBPVZjeyfnfr+SZ/ObQCKosjYD/7scYemTkZjWvnBHhhQowaB
	XZ+BXo2J0KfQYQIAk0WR/cYychnHn+nFOPG4UlivNhO4riEzbzuI7ZCMzoCMhbiL8+FRBDutFaD
	OwXLbgqBUFtICnrTvmVXP1+YBt1puZxPacMuxqlp5hUYy1PzPqSozBtKdTVI9/8gHcRGwy52d5D
	fyde7iQl0ZblAjUNQbw6+W9pMMmkrRxuhZT/yw1uH5TnDOpYwliwFuPWkFYg8v/2/z9msrIhsGG
	2WZj2JF6tzw==
X-Received: by 2002:a05:6214:2623:b0:70d:bffa:21fe with SMTP id 6a1803df08f44-70dbffa249fmr190374756d6.32.1756451048966;
        Fri, 29 Aug 2025 00:04:08 -0700 (PDT)
X-Google-Smtp-Source: AGHT+IHvNCGAKglGCoAmY/c1Jkq2J7bhpvWeJJJNXZT684KY70w9wlcGMPpA0aV6SmC50M6VwQDWXg==
X-Received: by 2002:a05:6214:2623:b0:70d:bffa:21fe with SMTP id 6a1803df08f44-70dbffa249fmr190374536d6.32.1756451048411;
        Fri, 29 Aug 2025 00:04:08 -0700 (PDT)
From: Lukas Bulwahn <lbulwahn@redhat.com>
X-Google-Original-From: Lukas Bulwahn <lukas.bulwahn@redhat.com>
To: Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	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>,
	xen-devel@lists.xenproject.org
Cc: kernel-janitors@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	Lukas Bulwahn <lukas.bulwahn@redhat.com>
Subject: [PATCH] x86/xen: select HIBERNATE_CALLBACKS more directly
Date: Fri, 29 Aug 2025 09:04:02 +0200
Message-ID: <20250829070402.159390-1-lukas.bulwahn@redhat.com>
X-Mailer: git-send-email 2.50.1
MIME-Version: 1.0
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: E4XeIf_xXuj9EDPtHAiI37nZruB6vhcsETLQCSFAHYU_1756451049
X-Mimecast-Originator: redhat.com
Content-Transfer-Encoding: 8bit
content-type: text/plain; charset="US-ASCII"; x-default=true

From: Lukas Bulwahn <lukas.bulwahn@redhat.com>

The config XEN_SAVE_RESTORE's only purpose is to select
HIBERNATE_CALLBACKS, when config XEN is set. The XEN config definition can
simply select HIBERNATE_CALLBACKS, though, and the definition of
XEN_SAVE_RESTORE can be dropped.

So, remove this indirection through XEN_SAVE_RESTORE and select
HIBERNATE_CALLBACKS directly. Also, drop the XEN_SAVE_RESTORE from the x86
xen config fragment.

No functional change intended with this clean-up.

Signed-off-by: Lukas Bulwahn <lukas.bulwahn@redhat.com>
---
 arch/x86/configs/xen.config | 1 -
 arch/x86/xen/Kconfig        | 7 +------
 2 files changed, 1 insertion(+), 7 deletions(-)

diff --git a/arch/x86/configs/xen.config b/arch/x86/configs/xen.config
index d5d091e03bd3..98b6952ba9d2 100644
--- a/arch/x86/configs/xen.config
+++ b/arch/x86/configs/xen.config
@@ -12,7 +12,6 @@ CONFIG_CPU_FREQ=y
 
 # x86 xen specific config options
 CONFIG_XEN_PVH=y
-CONFIG_XEN_SAVE_RESTORE=y
 # CONFIG_XEN_DEBUG_FS is not set
 CONFIG_XEN_MCE_LOG=y
 CONFIG_XEN_ACPI_PROCESSOR=m
diff --git a/arch/x86/xen/Kconfig b/arch/x86/xen/Kconfig
index 98d8a50d2aed..aa4040fd9215 100644
--- a/arch/x86/xen/Kconfig
+++ b/arch/x86/xen/Kconfig
@@ -8,6 +8,7 @@ config XEN
 	depends on PARAVIRT
 	select PARAVIRT_CLOCK
 	select X86_HV_CALLBACK_VECTOR
+	select HIBERNATE_CALLBACKS
 	depends on X86_64 || (X86_32 && X86_PAE)
 	depends on X86_64 || (X86_GENERIC || MPENTIUM4 || MATOM)
 	depends on X86_LOCAL_APIC && X86_TSC
@@ -64,12 +65,6 @@ config XEN_PVHVM_GUEST
 	help
 	  Support running as a Xen PVHVM guest.
 
-config XEN_SAVE_RESTORE
-	bool
-	depends on XEN
-	select HIBERNATE_CALLBACKS
-	default y
-
 config XEN_DEBUG_FS
 	bool "Enable Xen debug and tuning parameters in debugfs"
 	depends on XEN && DEBUG_FS
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 29 07:17:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 07:17:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100674.1454006 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urtMe-0007dz-V1; Fri, 29 Aug 2025 07:17:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100674.1454006; Fri, 29 Aug 2025 07: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 1urtMe-0007ds-SL; Fri, 29 Aug 2025 07:17:36 +0000
Received: by outflank-mailman (input) for mailman id 1100674;
 Fri, 29 Aug 2025 07:17:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xaUo=3J=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urtMe-0007dm-Bw
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 07:17:36 +0000
Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com
 [2a00:1450:4864:20::633])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3baa945d-84a8-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 09:17:34 +0200 (CEST)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-afeceee8bb1so256722566b.3
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 00:17: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
 a640c23a62f3a-afefca08a0csm140043266b.24.2025.08.29.00.17.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 29 Aug 2025 00:17: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>
X-Inumbo-ID: 3baa945d-84a8-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756451853; x=1757056653; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Hcwh8bkNvMm57CdhMcOwoSTHfbQlf7cSN6Di+Yhe4Xs=;
        b=XcWzowpwj/fTs6Rk+oE8TgcXMpFW9bnvFmKhPigRkfQtzQv0Bc7ioB4TFc4Z8YWWjS
         WkdkTE961rW865t8G31bCP1rselhSUXw4MxUyaP22OA/tiGtW4f4VLEr7Bepd9bO73xj
         iMpvv8ingUFpL/ifonWNdf5dA4wgwZoyU6x9bXC/KMVaDbLfqxwrxxJFlRjzrqeXLC9U
         mzD8PnM6DYn4wMK9dYLdVFsgHp98gRg/U6Ts+hVw9GB1aAqiIe2WBjN6jzhcquYfTw+L
         HW2jKT+BILedBpj8bXrJpgAQuKiLoEfcqwaPRtWx38+mkCDKQAbrJg9x21y4KGUcsdUd
         yL8A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756451853; x=1757056653;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Hcwh8bkNvMm57CdhMcOwoSTHfbQlf7cSN6Di+Yhe4Xs=;
        b=VIFzF7MP8Mhlj0m6lPsG8OVEHrhUCHkX+8cvK8RT4hAWGEuOF9pBbxwmlm4yhCtBtc
         FvnsusMjpMM8hhoIIBKKniVRDXiwkc3zZVNt5Q6goii1oJgzvJQTpUYAsc4qrALJH4B2
         JmAB0F7X6xVsJAUpBZsPU8a1FmEjaZOlBKZXt4mimeXIRkXFj8XmnktOcBM49xQUiiTD
         7/ZgcafBhwChPrMBXGu7WsY7nRFVlLfdgn0jLltVxyW0fK/f0GKXNnYwQjBB0maOMDuT
         nMDyTmJajSOsNHAjrScUvd2dPX6nOOKG5/+rA31ELndPEOmFWEj4dkf5TqApWe3BJbNI
         7R3w==
X-Gm-Message-State: AOJu0YynHfFRfUcy6ShGphpamcp0O8F6MP45UsKCaFha6/iJShk2S7y/
	DbbfIyJEcc0lsozmg2UxUVVQNw9R2EqdLqrSwx/SqDkiEISQZ79EkqItjHxWMbhj0g==
X-Gm-Gg: ASbGnctxNi/uuWIh1WH03mpfA7bcYSj682wR2GVqBLSRd/VE35cPeOGurroYOTY0WUD
	dqRMCuVtmeSukKfEl21Ax8vqop+oJ2cE9CsxxpakejLzd4/awcSLhZljtzYTDfYbxHO+NGN/Yce
	5EuSP0se73MqkNZ7E9dXq1Aji+ppoHUDvSTUZYtI6tzkHWU1wctumA+5Gl8OJTvgn2CTJ/8m5NQ
	JsfwL57NTI4/GgqdhcdA55928a8b9kW5X1Bt8GKMx4iMIutaUuVdxpQr+AIZckcG31bpOrpxw6Y
	8rIpKBtMQvqslha72s+WNDjy34o3BHlNMSBDLSiNx42C2XNovHSJAOgAUL3JWEqLNORnDXtNfem
	4+n9+Ya2/adI5yZjF2EtWy56fnroCsjEhIwZmggygYfsEH0EpXtu9nbgXtlyA7nKZoXSHzFc+W/
	t+uliQlQXLjelQKT+dwA==
X-Google-Smtp-Source: AGHT+IHtsnPi6MpcsE7teywDBwiGu0LQduwroOBeZlm6THBY3piPcvGiiYwDdUVPAap4qhdaZjKIZA==
X-Received: by 2002:a17:907:268b:b0:af9:c31b:c558 with SMTP id a640c23a62f3a-afe29537f96mr2256584766b.35.1756451853324;
        Fri, 29 Aug 2025 00:17:33 -0700 (PDT)
Message-ID: <e8e3b2c7-39ac-4c3a-a7ff-e2b579f44d2c@suse.com>
Date: Fri, 29 Aug 2025 09:17:31 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/efi: Fix crash with initial empty EFI options
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>,
 Frediano Ziglio <frediano.ziglio@cloud.com>
Cc: xen-devel@lists.xenproject.org,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>
References: <20250708135701.119601-1-frediano.ziglio@cloud.com>
 <aLEnVSCil2JtDiFY@mail-itl>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aLEnVSCil2JtDiFY@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 29.08.2025 06:06, Marek Marczykowski-GÃ³recki wrote:
> On Tue, Jul 08, 2025 at 02:56:58PM +0100, Frediano Ziglio wrote:
>> EFI code path split options from EFI LoadOptions fields in 2
>> pieces, first EFI options, second Xen options.
>> "get_argv" function is called first to get the number of arguments
>> in the LoadOptions, second, after allocating enough space, to
>> fill some "argc"/"argv" variable. However the first parsing could
>> be different from second as second is able to detect "--" argument
>> separator. So it was possible that "argc" was bigger that the "argv"
>> array leading to potential buffer overflows, in particular
>> a string like "-- a b c" would lead to buffer overflow in "argv"
>> resulting in crashes.
> 
> I wouldn't call it "buffer overflow" - the argv array is big enough
> here. But if there is "--" in cmdline, it has fewer than argc elements
> initialized. If there is at least one efi option (IOW, "--" is not the
> first one), the sentinel NULL inserted by get_argv() will prevent
> reading past the initialized part. But if "--" is the first one, the
> NULL is inserted into argv[0], which is skipped by the loop in
> efi_start(). Which makes the loop go beyond initialized part of argv
> (crash happens even before it goes beyond end of argv allocation).
> 
> So, maybe change it to: bigger than the initialized portion of "argv"
> array, leading to potential uninitialized pointer dereference, ...?
> 
>> Using EFI shell is possible to pass any kind of string in
>> LoadOptions.
>>
>> Fixes: bf6501a62e80 ("x86-64: EFI boot code")
> 
> Technically, the issue was covered for few months by another issue and
> got re-exposed by 926e680aadde ("EFI: suppress bogus loader warning").
> While it fixed one issue, it also made it possible to put sentinel NULL
> into argv[0] again. But the original EFI code had this issue too, so
> IMO the Fixes tag is correct.
> 
> While there is convention to put file name as the first option, I don't
> see anything in the UEFI spec requiring it. So, Xen should not crash
> when it's missing.

Yet if the equivalent of argv[0] is missing from the command line, how
do we even know whether the first token on the command line is an
option (or the -- separator)?

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 07:22:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 07:22:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100685.1454016 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urtRO-0000uG-G0; Fri, 29 Aug 2025 07:22:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100685.1454016; Fri, 29 Aug 2025 07:22: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 1urtRO-0000u9-DR; Fri, 29 Aug 2025 07:22:30 +0000
Received: by outflank-mailman (input) for mailman id 1100685;
 Fri, 29 Aug 2025 07:22:29 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1urtRN-0000u3-Qx
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 07:22:29 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1urtRN-00CV9v-02;
 Fri, 29 Aug 2025 07:22:29 +0000
Received: from [2a02:8012:3a1:0:a40e:c7d9:d4:3bff]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1urtRM-007CL9-2S;
 Fri, 29 Aug 2025 07:22: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=9aErw/EgOQXqimj01T+ARj6RDIPREnaDxlMPoINa4uA=; b=vJqsQ/4CUO73E+9ZlWR4gmNXfX
	7bGxWrvC8gxoTAhOT52VmCoODZ/AtP4jSuZzECKs0YRQ4NT/bvk1/JhbDZcpDFYVKW3Yj6UiXaVqo
	JPMj03HR6OrH8bFDi83nYLAwRlnyXNm40yGWS7GI7JPBWsskxuFUlJBHWFLPlBf1kO8o=;
Message-ID: <3e97a88c-4b5e-4735-bbb5-2515dedb333b@xen.org>
Date: Fri, 29 Aug 2025 08:22:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 5/5] xen/arm: map static memory on demand
Content-Language: en-GB
To: Hari Limaye <hari.limaye@arm.com>, xen-devel@lists.xenproject.org
Cc: luca.fancellu@arm.com, Penny Zheng <Penny.Zheng@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>,
 Wei Chen <wei.chen@arm.com>
References: <cover.1756379422.git.hari.limaye@arm.com>
 <30cbc79f765c21759d74377e55cc471210fc2575.1756379422.git.hari.limaye@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <30cbc79f765c21759d74377e55cc471210fc2575.1756379422.git.hari.limaye@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Hari,

On 28/08/2025 12:12, Hari Limaye wrote:
> From: Penny Zheng <Penny.Zheng@arm.com>
> 
> In the function `init_staticmem_pages` we need to have mapped static
> memory banks for initialization. Unlike on an MMU system, we cannot map
> the entire RAM

Even on the MMU system we don't always map the full RAM (for instance on 
arm32). This is why we have infrastructure like map_domain_page() 
(Temporary mapping) and map_domain_page_global() (more permanent).

on an MPU system as we have a limited number of MPU
> memory regions. To solve this, transiently map the static memory banks
> for initialization.

I am guessing you implemented the helper because in 
unmap_staticmem_pages_to_xen(), we are calling scrub_one_page(). This 
will be using map_domain_page() and unmap_domain_page(). I am a bit 
confused why we end up with brand new helpers rather than implementation 
map_domain_page() and unmap_domain_page()?

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Fri Aug 29 07:23:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 07:23:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100694.1454028 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urtRx-0001No-PV; Fri, 29 Aug 2025 07:23:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100694.1454028; Fri, 29 Aug 2025 07:23:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urtRx-0001Nh-L8; Fri, 29 Aug 2025 07:23:05 +0000
Received: by outflank-mailman (input) for mailman id 1100694;
 Fri, 29 Aug 2025 07:23:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xaUo=3J=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urtRw-0001GS-Dr
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 07:23:04 +0000
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com
 [2a00:1450:4864:20::629])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0047072a-84a9-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 09:23:03 +0200 (CEST)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-afec56519c8so289487266b.2
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 00:23: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
 a640c23a62f3a-afefca0a955sm136840666b.29.2025.08.29.00.23.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 29 Aug 2025 00:23: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>
X-Inumbo-ID: 0047072a-84a9-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756452183; x=1757056983; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=HPfEhoVXuDmTY6g/Mf2Jqa/OUiIaMAv+gkyCYcMvu7Q=;
        b=bp5ZeINIJYnLtpnAMAZFT99LJ1FMYRvyyBemGMwcbJ+5laAZfA893/DcDqbejaUy/p
         f2aTEfe+oBmPt7bqL6i9nY18LCqsGfIbmheVEXABJ0fsvZu3KK8NQ5lIIMl0/iUkR3S7
         i3rGjBHkG8sG04v5hKtHn/9gS0QQTP7GH1HttapmMYOWGa+DupDYu2uNbYulc1xVXwZH
         z6Pc8/7UkpBfgTwwWFouH/0FEmS6jaczCeIiONQsCFvnVbMZaiYOIhS49GjwE13tMu/K
         38gojtz9Xzs5Otvg/yMwN/E+RNchcB//+TMklZPgmSpTIWgP4bunvvWmBxIpPM5xr0ly
         +Deg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756452183; x=1757056983;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HPfEhoVXuDmTY6g/Mf2Jqa/OUiIaMAv+gkyCYcMvu7Q=;
        b=rMutYEYUBq5SLovDyMJ+qh8UBgyiEPW6xfm66o4Yv0eAvVerXBrWr92uwYMLtd3Quv
         xQltO4INoAhJj/1B28hYnrPtnWrZx1LoJj/OmEkYiAOuzRaSkRZWyPcN1nu/eLiUnvju
         T+IV7eYyC94vLWVyCak8OPDOBXGryHZIutFRjZcjpkl4PJVjdisb+at/Slb/g1rnZLk4
         fRYnBMuQeznQ/Erl9AyidQ8hX/ND4Q7NZkocWYYbym8VVA6ZvD8gXJkih0t9HV+KgHxb
         eq11jhbtbB87ZRz+9oV9kj7xkLeh5bSbLL334UJvCRSoYQzocHd6glh3xuy4hU1ug1x5
         CVFA==
X-Forwarded-Encrypted: i=1; AJvYcCXxqkkYKKsPBOTfrdlWOC76d+TdOs7aF745XLaOxd4my35DeFdeHVe7gxsHrp04NAfvV75sKBie2ic=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwPOpp1R98hHeE4K3XwqoQK3avXPMRPk3f2826nyMNkfpgVEvik
	2uOPnZbxjfvxTbFrD+wYlv+zOP+385tGitQd7uDVM2UN4C0vBiooRmGGGb8z82v2SA==
X-Gm-Gg: ASbGncsM8StP9pfC0P7m+kuJhSyjiZJZYFLrq0+uBqx+6EgkAfI+a2qJ+frv8fjjUQH
	2k5ByFXBD5BfmbArrW6IlO+wVcVE+FiUh4WY4eg2SRKeD4TdequbOKQMBre7VQkhANv+iHsdnYG
	hZHaXDvarTlQOVpFyPYU16GeFT4s596BthydjzEcM+9UNXnVDfkGTPYK6Q5sDrMQ3QQ+W4PuTEO
	3QTJPxz4Sz3BA6IGC13QLOc9/+6uhcvOoy+yU43PIc97klPMau+fsoiS8dN+8HGHhAWAOMk3hNQ
	cVb8cU/y1SkEQQ61zqgBu4wC6NCtmRPyAGBguhLyR+vTC2FtnLeneCdjCzntowBUJYeQmIzyn+N
	pSptjeFk5OaeJPcdsYfd2oxIZAv62AVkxppZ98fRKX/fufJMVsEOw+HblqrcTJQQ6fp5IbO7FR/
	wDqO00J+Y=
X-Google-Smtp-Source: AGHT+IGY0AHaAZil/WPpfwjVrB68cElB3kTAurYDW2rkdxXsZ9cCsAKyi3OMMR+lWd+sT8SnCE3gtg==
X-Received: by 2002:a17:907:9443:b0:aff:a36:e6e with SMTP id a640c23a62f3a-aff0a361006mr68442766b.57.1756452183144;
        Fri, 29 Aug 2025 00:23:03 -0700 (PDT)
Message-ID: <4b554221-336b-444d-a2d5-849017f3b943@suse.com>
Date: Fri, 29 Aug 2025 09:23:01 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 3/4] xen/arm: scmi-smc: passthrough SCMI SMC to domain,
 single agent
To: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Bertrand Marquis <bertrand.marquis@arm.com>, Juergen Gross
 <jgross@suse.com>, Julien Grall <julien@xen.org>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1756399156.git.oleksii_moisieiev@epam.com>
 <02b79eaa0a611fb43a2146a5f41aec435d3db6c7.1756399156.git.oleksii_moisieiev@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: <02b79eaa0a611fb43a2146a5f41aec435d3db6c7.1756399156.git.oleksii_moisieiev@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.08.2025 18:40, Oleksii Moisieiev wrote:
> --- a/docs/misc/xen-command-line.pandoc
> +++ b/docs/misc/xen-command-line.pandoc
> @@ -1097,6 +1097,15 @@ affinities to prefer but be not limited to the specified node(s).
>  
>  Pin dom0 vcpus to their respective pcpus
>  
> +### scmi-smc-passthrough (ARM)
> +> `= <boolean>`
> +
> +The option is available when `CONFIG_SCMI_SMC` is compiled in, and allows to
> +enable SCMI SMC single agent interface for any, but only one guest domain,
> +which serves as Driver domain. The SCMI will be disabled for Dom0/hwdom and
> +SCMI nodes removed from Dom0/hwdom device tree.
> +(for example, thin Dom0 with Driver domain use-case).
> +
>  ### dtuart (ARM)
>  > `= path [:options]`

On what basis did you pick where to put the new option? It clearly doesn't
fit between dom0_vcpus_pin and dtuart, but wants to go far further down.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 07:27:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 07:27:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100705.1454038 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urtVv-0001z4-8s; Fri, 29 Aug 2025 07:27:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100705.1454038; Fri, 29 Aug 2025 07:27: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 1urtVv-0001yx-46; Fri, 29 Aug 2025 07:27:11 +0000
Received: by outflank-mailman (input) for mailman id 1100705;
 Fri, 29 Aug 2025 07:27:10 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1urtVu-0001yr-0T
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 07:27:10 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1urtVt-00CVG3-15;
 Fri, 29 Aug 2025 07:27:09 +0000
Received: from [2a02:8012:3a1:0:a40e:c7d9:d4:3bff]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1urtVt-007Cf8-1H;
 Fri, 29 Aug 2025 07:27: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=FIp47SrjTfal/i9/b+vjitlSqVMTU9g8i54S+zo1Nnk=; b=cnVdnFdUd3ZOqao6dihmKfCEJo
	u+nZdvB4tE2HqCwkjKwhsjOS8t/wx6iNCt18AOZ/h47mVHiM6jE+MzkAn8RiaD7G85nhyLhxd5acL
	Vf/ZxEV5vpoalcxnGMMN28CgZ7/qSUaz6cLwyMRUn/5sntVg+xcueCFH5u92mngznKN8=;
Message-ID: <a3e6c685-01fe-4ac5-b465-1356659b3d78@xen.org>
Date: Fri, 29 Aug 2025 08:27:06 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/5] arm/mpu: Implement setup_mm for MPU systems
Content-Language: en-GB
To: Hari Limaye <hari.limaye@arm.com>, xen-devel@lists.xenproject.org
Cc: luca.fancellu@arm.com, Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1756379422.git.hari.limaye@arm.com>
 <2d41ab5c2bd45f788e96a93659595d66c258c8df.1756379422.git.hari.limaye@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <2d41ab5c2bd45f788e96a93659595d66c258c8df.1756379422.git.hari.limaye@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 28/08/2025 12:12, Hari Limaye wrote:
> From: Luca Fancellu <luca.fancellu@arm.com>
> 
> Implement `setup_mm` for MPU systems. This variant doesn't need to set
> up the direct map.

If this is the only difference, then why do we duplicate the rest of the 
code? Why can't we instead setup the directmap helper or make it optional?

In fact, in the future we will want to initially have the directmap 
optional on Arm with MMU, but ultimately will be removed.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Fri Aug 29 07:27:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 07:27:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100717.1454046 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urtWU-0002Wd-IC; Fri, 29 Aug 2025 07:27:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100717.1454046; Fri, 29 Aug 2025 07:27: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 1urtWU-0002WW-Fh; Fri, 29 Aug 2025 07:27:46 +0000
Received: by outflank-mailman (input) for mailman id 1100717;
 Fri, 29 Aug 2025 07:27:44 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xaUo=3J=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urtWS-0002F8-Ea
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 07:27:44 +0000
Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com
 [2a00:1450:4864:20::529])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a74ad251-84a9-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 09:27:44 +0200 (CEST)
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-6188b793d21so2260069a12.3
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 00:27: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
 4fb4d7f45d1cf-61cfc4bbbd1sm1271860a12.34.2025.08.29.00.27.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 29 Aug 2025 00:27: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>
X-Inumbo-ID: a74ad251-84a9-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756452463; x=1757057263; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=wT4+tbh3hnCrTgNUHjzogDJ0KlBuJ96eRsuoPBIr29A=;
        b=U/gQ6gZ+CZtg6Bl60hooy5rHydbn01Zc+jb8fuyoeFfy1VHkrzW0LA7pyuaSuU0qtf
         4x0o+n7Sw29xa0X4KJ5GZ0xBMEN9+yxhQfr/KMOw0NRyh2shi2utXq9laOlDrCwnJnWE
         PXY8UKmFOfCii7MV08n5kiq5oRK5EinZN+zExcYd1JMyH34EcYXKcLpMwgnOKveuUMWe
         CrfYhbj6S+joTbEBX2Pq9b1T1xEk7fMKPsIcJK4MBabbjuyw3yyTHcE+r2m7I9gmInVZ
         3/1JROKqLm+yIpC8SDsovQVnx7VNWyHehWU3u4y6RFv4HzZSZZV4Mryp151GUAIWwFkG
         GpoA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756452463; x=1757057263;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wT4+tbh3hnCrTgNUHjzogDJ0KlBuJ96eRsuoPBIr29A=;
        b=jr2Eh3EHx2bFMKVGbiVE3KmEl4qQuT8GQ+2bRIa4KBW8MhndLND2k+6YFhhWSeflBt
         FC+KiSVh0lZHdJLiVT1+/q0UL7XT9aE43Vf/s0ciaZFrFr1nsCoGeB+JmNKg4EDrSQlo
         UbEk5ty6bKkSnMfAgzSv24SvupY4xvpB3p3NSJVYo4t7TuOqj3ss9onEEZ3Tft79WXg9
         dlXP6hKHk1RqtePf9cn4GOEaie2GQDMO08H5MZKiKhQK+beUdz+KtXp4QGAdjZaNeJtL
         bDtMhWmbgLzLPDXrLD4VdG5LYQMRdY/Kpcb/mDEnMhDLB4P8Hgzltw3V9L8vTOJ8b5f3
         jO5Q==
X-Forwarded-Encrypted: i=1; AJvYcCVPFCYdmPiNuhKsbEPEp3b9zrI2ZgQ3dY7bJYcJRLgNmV7XOufo7KGxvqkpeBGbxD3bvoVJBcmPqYA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwV9ETswQ5U47r4We7YrQNg+l2j4+8m9uucOaOGuOkDIn/VDkXX
	iNhxpmBXESKnUWWYtg8eQzHwRXGqs6bW4xVHT1kXePDojY/pHSMksjXbuBmzLPFUrQ==
X-Gm-Gg: ASbGncs8IAo1XQk+pwawg3WedxST2mDRWt+fyiYnsQOmgwUNluJPMn+Aoz/397y5GNi
	yYqXQwgbyo4KR/LuA6zRrhacOjBPOKrXvRVdo8nwAUsh3XRTgvuFVQLqG29XOgolu1cwX6nDkOQ
	k9gl0OLWG6OdtkMnvxxHcXnOiCaNzISNDfV5vMkZcbDsL8zEkQRuWarpWIJxNq7ISTQeYtowaZI
	dSSSWiPre65qRdP56BMPgbnaFQ33HktRZrjaJU4EFV8JFCblHET6FSRtQGNZilaifcja7psW1Jp
	sLd4ZAObT2AR3D1iZQ2HC9pjHImNbItYVt5TvvtNLRbTWk+YutAV0k4vD+2sDQk9BY0vvLBNABV
	rSUklESrYYi1Ine8hYjL1VN06NoQY73Cl1apSitRhduIg5GMUqfp5T0gAFIXV1ETSOnE7SxiMOD
	abWH/LZAXp3BtofWKF4A==
X-Google-Smtp-Source: AGHT+IEZRLsseeSPQ82ONMm1DkesSe7zmP6HGlpKTI8zKqMr32rgEvI7THfta1HJcyuUJwz9RUuRQw==
X-Received: by 2002:a05:6402:52cb:b0:61c:fa7d:a4d6 with SMTP id 4fb4d7f45d1cf-61cfa7da95bmr2358733a12.24.1756452463217;
        Fri, 29 Aug 2025 00:27:43 -0700 (PDT)
Message-ID: <dfadb4d5-cbf9-4b99-b389-34cb290a2229@suse.com>
Date: Fri, 29 Aug 2025 09:27:41 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>, ray.huang@amd.com,
 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>,
 xen-devel@lists.xenproject.org, Penny Zheng <Penny.Zheng@amd.com>
References: <20250815102728.1340505-1-Penny.Zheng@amd.com>
 <fb6f559a-b2aa-4b25-a6d3-401ecc4b4bd5@suse.com>
 <d6046b53-9317-43d6-bfda-e30d42c09320@gmail.com>
 <2035b14e-3836-4e80-9dad-8a49ca90864a@suse.com>
 <alpine.DEB.2.22.394.2508181646220.923618@ubuntu-linux-20-04-desktop>
 <49416df6-83c8-4fa3-bf81-2d1e504ef31b@suse.com>
 <alpine.DEB.2.22.394.2508251934200.3391208@ubuntu-linux-20-04-desktop>
 <alpine.DEB.2.22.394.2508261728250.3391208@ubuntu-linux-20-04-desktop>
 <cc8724b6-bb31-4482-a459-156366b7b433@suse.com>
 <alpine.DEB.2.22.394.2508271442410.580734@ubuntu-linux-20-04-desktop>
 <5f5ba1dd-1252-4740-8c64-e4fcd8a7ac32@suse.com>
 <alpine.DEB.2.22.394.2508281632020.8757@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.2508281632020.8757@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29.08.2025 01:41, Stefano Stabellini wrote:
> On Thu, 28 Aug 2025, Jan Beulich wrote:
>> On 28.08.2025 02:52, Stefano Stabellini wrote:
>>> On Wed, 27 Aug 2025, Jan Beulich wrote:
>>>> On 27.08.2025 02:33, Stefano Stabellini wrote:
>>>>> --- a/xen/include/xen/domain.h
>>>>> +++ b/xen/include/xen/domain.h
>>>>> @@ -148,8 +148,17 @@ void arch_dump_domain_info(struct domain *d);
>>>>>  
>>>>>  int arch_vcpu_reset(struct vcpu *v);
>>>>>  
>>>>> +#ifdef CONFIG_SYSCTL
>>>>>  bool domctl_lock_acquire(void);
>>>>>  void domctl_lock_release(void);
>>>>> +#else
>>>>> +static inline bool domctl_lock_acquire(void)
>>>>> +{
>>>>> +    return false;
>>>>
>>>> ... this will break x86'es HVM_PARAM_IDENT_PT handling. That is, in
>>>> principle I would agree that returning false here is appropriate. But
>>>> for the specific case there it's wrong.
>>>
>>> Uhm, that is a good point actually. And while in principle "false"
>>> sounds appropriate, in practice there is no domctl.c to worry about
>>> concurrency so "true" is what we want.
>>
>> Except that, as said, conceptually "true" is the wrong value to use in
>> such a stub.
>>
>>>> As said on the call yesterday, until what you call MGMT_HYPERCALLS is
>>>> completely done, the option needs to be prompt-less, always-on.
>>>
>>> I do not think this is a good idea, because we would be unable to test
>>> the configuration. Although we have been accepting code without tests,
>>> that is not a good principle. At least with the current approach we can
>>> run manual tests if automated tests are not available. If we make it
>>> silent, we risk introducing broken code, or code soon-to-become broken.
>>>
>>> In my view, we need to make gradual progress toward the goal. In this
>>> case, we should move incrementally toward compiling out all the
>>> "management" hypercalls. Also the alternative of waiting until all
>>> patches are ready before committing them is not feasible. An incremental
>>> approach reduces risk, preserves testability, and makes regressions
>>> easier to identify.
>>
>> If that's your view, then why did you not comment on the SYSCTL series,
>> when I asked the prompt to appear last?
> 
> I am not trying to be obtuse, but I am not sure what you mean by this.
> In any case, I do not recall reading a specific email on this topic. I
> try my best to follow other review comments, but I may have overlooked
> this one.

Originally Penny introduced the option with prompt, very early in the
series. It became clear very quickly that this way she introduced
randconfig issues, for the case where randconfig could have chosen to
turn the option off. Hence why I asked that the option be introduced
prompt-less, then all #ifdef-ary be added, and then the option would
gain a prompt.

>>> An extreme example is that I could write:
>>>
>>> static inline bool domctl_lock_acquire(void)
>>> {
>>>     obviously broken
>>> }
>>>
>>> and no tests would catch it.
>>
>> Tests would catch it at the point the prompt is added. Much like it was
>> with the SYSCTL series (and why, with the prompt removed, the rest of
>> the series can stay in).
> 
> In my opinion, this is a no-go. The code must function correctly, and
> that is my top priority, certainly above conceptual issues, such as the
> return value of domctl_lock_acquire. With your suggestion, there is no
> guarantee the code works and there is no way to test it.

The code working correctly will be tested at the point the option gains
the prompt.

>>>> Adding
>>>> a prompt was necessary to be the last thing on the SYSCTL series, and
>>>> it'll need to be last on the follow-on one masking out further
>>>> hypercalls. IOW my take is that 34317c508294 and 568f806cba4c will
>>>> need reverting (the latter being what caused the regression, and the
>>>> former depending on the latter), to allow to cleanly continue that
>>>> work after the rename. If we don't do the reverts now (and take either
>>>> Penny's patch or what you propose), imo we'll need to do them later.
>>>> Else we're risking to introduce new randconfig breakages while the
>>>> further conversion work is ongoing.
>>>
>>> My suggestion remains to go forward with 2 patches:
>>> 0) keep both 568f806cba4c and 34317c508294
>>> 1) rename CONFIG_SYSCTL to CONFIG_MGMT_HYPERCALLS
>>> 2) this patch with return true from domctl_lock_acquire
>>>
>>> I am open to reverting 568f806cba4c but I don't think it would improve
>>> things. I definitely don't think we should revert 34317c508294. We need
>>> 34317c508294 otherwise this patch doesn't fix the build.
>>
>> If "this patch" is the one outlined here, then with the reverts we wouldn't
>> need it at all. The reverts alone will fix the build issue, according to my
>> understanding.
> 
> The reverts you are suggesting do not fix the issue; they only hide it.
> The Kconfig option can no longer be disabled, which renders the entire
> patch series ineffective.

Yes, hence why we wouldn't need a revert of the entire series.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 07:29:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 07:29:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100730.1454057 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urtXt-00034X-SH; Fri, 29 Aug 2025 07:29:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100730.1454057; Fri, 29 Aug 2025 07:29: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 1urtXt-00034Q-PD; Fri, 29 Aug 2025 07:29:13 +0000
Received: by outflank-mailman (input) for mailman id 1100730;
 Fri, 29 Aug 2025 07:29:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Upt9=3J=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1urtXs-00034K-BL
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 07:29:12 +0000
Received: from DU2PR03CU002.outbound.protection.outlook.com
 (mail-northeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c200::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id da78a94f-84a9-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 09:29:10 +0200 (CEST)
Received: from DUZPR01CA0079.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:46a::16) by AS8PR08MB9388.eurprd08.prod.outlook.com
 (2603:10a6:20b:5ab::10) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.24; Fri, 29 Aug
 2025 07:29:06 +0000
Received: from DB1PEPF000509F1.eurprd03.prod.outlook.com
 (2603:10a6:10:46a:cafe::5d) by DUZPR01CA0079.outlook.office365.com
 (2603:10a6:10:46a::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.19 via Frontend Transport; Fri,
 29 Aug 2025 07:29:12 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB1PEPF000509F1.mail.protection.outlook.com (10.167.242.75) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.11
 via Frontend Transport; Fri, 29 Aug 2025 07:29:04 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by DU5PR08MB10755.eurprd08.prod.outlook.com (2603:10a6:10:519::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.14; Fri, 29 Aug
 2025 07:28:31 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::ab1e:55db:9d8:afbc]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::ab1e:55db:9d8:afbc%3]) with mapi id 15.20.9073.016; Fri, 29 Aug 2025
 07:28:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: da78a94f-84a9-11f0-8adc-4578a1afcccb
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=rdnMa1Y6gJ9VcwXuMaonpi15egv4qwTRTmUA+JyjdpwSCiAqcM1N7+XqrQPgaoQWJQUhihje2MjyMJwzsKbFXUUladbFuG9MlYhmT6H01ulcC8Q/K6vqQtSvrc3IB1hgvHfFl+y6tHk4j13QgM/b6wCcDffL8wZz2Jgmq8fm21+fXx+UL94mngYb9emEeuetD5fiDljTmugxRN3oAL0bhjC3SO8T6SkLrgEL5htZLtHSbyESwis2I5eBxJ9fMXK5eB3fVTRgRZz6dHpDtPdIDGQSnn0J4i2aor5mD3lkyAOwD9JnSVIUaJbDHWS9EstYyG79JM9MLO4SrPRemk4Eog==
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=9d+LnO75aiLEZm6n7AaGsqYnxJQtF2jybGmQaNj3WhE=;
 b=KvMEna1U3nRJsHw4jawLT6nYryI/1o6vyGiyzBlLQ2NjrJrJI97YJyHdU1dnHheJn7SBoQWNOOKuF59F087JAlcm3RrVqNERoN1f7xyp8yAOZV3wXr2gspVSWkyNYeCDQQyIzugig47blc9OwJYkXk+TcGDgjaG0aQi5H32WQBgjY787WvHmj9jtaUBaXGN0KELEn2Ja1IJGE8CntEjMKivuESR35of/xVj8P2D0Cty0Lq0mmh5F3eaBc2l52U0wRH1bK6LCwZKaJh3GAXg1fNheOBrro8R2wIOYxge/ktS2ylrz/rS2Lb7rI1kgFPWhavqkyrmX4zAQkIT7aR+xLw==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=xen.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=9d+LnO75aiLEZm6n7AaGsqYnxJQtF2jybGmQaNj3WhE=;
 b=oLgHaDB76bbLe4utDiD60Y5k9TW5QEViLn88xXgiHnCQNgwT75vbfeyYL6Xk4SBZlenTGWLjOphAgJd/vkC6VRyFc0oOR5t80x1l4yKSQteLyyzfdcfmxHLL+ytvIU3Tu/v/ra3mAxBpUdI8IqV1zl0DSP6uUytYIh5M5ISDYFM=
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=GcWFYhUtokCH4jt+mV9WZCYoS21wZrVCxJNhsm70psZHK19Y/Wh627OC43c+qrumNJV89ZP4X4Dj/ZZ+DTtaF8wdvfxLUZ1/wQHcjtq809rMhjzYv8zLdf0W+Eno8rnV8S/TpSomqdqqSDmqtz5UObo92Akg82koXx+1rjwIof9/zDIpK9SYBQODIoPbvCFypoUU+QgLxUKYUdradziT8NqyuRx5JSaxuA0eti8PZBe+aRzB3v/7YgB1O/k8+Zjy1LAvzjOvqS5qYPalruJ1WQxE8h9JXqI0i3R4BxGaVbM3YVU4HG+MVUcyvjDnjr14FhqSDIGT4kOLrd4dphCXbQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=9d+LnO75aiLEZm6n7AaGsqYnxJQtF2jybGmQaNj3WhE=;
 b=ow8mShJfmD7LWmo8p5DleBGMZOTiW9NyWFy1Ofx/XSRXyw/CnIIg3CelB7afkcvr16OSiM3fRuohiCA5n1IxDqAdPzneiGc2hOMM80NUPEV1C7YEQTem4SWX4Vj7xCUQOE1RzDJDFJhFWaOeyrsaq7YEoFDv4GQa+YbS7pig6NCQMalgcE8kC9oXGzlME1s0VyJOEAwHZmTw1OneaIpwzP1r7q7XfpwSq/41ThpiMMl/xOSyS8QfF+vWcw4YUJuOJZPG/ADVLeDkS7Ud/5IlWhsxwlLK23SD3/+Vi2Sr0oN1+ssSCI6fXaoVY4EH37q7KbeRfXcYCfVScJUacdLFyg==
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=9d+LnO75aiLEZm6n7AaGsqYnxJQtF2jybGmQaNj3WhE=;
 b=oLgHaDB76bbLe4utDiD60Y5k9TW5QEViLn88xXgiHnCQNgwT75vbfeyYL6Xk4SBZlenTGWLjOphAgJd/vkC6VRyFc0oOR5t80x1l4yKSQteLyyzfdcfmxHLL+ytvIU3Tu/v/ra3mAxBpUdI8IqV1zl0DSP6uUytYIh5M5ISDYFM=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: Julien Grall <julien@xen.org>
CC: Hari Limaye <Hari.Limaye@arm.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, Penny Zheng <Penny.Zheng@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>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Wei Chen <Wei.Chen@arm.com>
Subject: Re: [PATCH v3 5/5] xen/arm: map static memory on demand
Thread-Topic: [PATCH v3 5/5] xen/arm: map static memory on demand
Thread-Index: AQHcGLWqZ0Mx4e+sDU+SZKlpnxj7ELR5O3kA
Date: Fri, 29 Aug 2025 07:28:31 +0000
Message-ID: <14107953-172A-4B6C-A25E-7EC747069105@arm.com>
References: <cover.1756379422.git.hari.limaye@arm.com>
 <30cbc79f765c21759d74377e55cc471210fc2575.1756379422.git.hari.limaye@arm.com>
 <3e97a88c-4b5e-4735-bbb5-2515dedb333b@xen.org>
In-Reply-To: <3e97a88c-4b5e-4735-bbb5-2515dedb333b@xen.org>
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)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|DU5PR08MB10755:EE_|DB1PEPF000509F1:EE_|AS8PR08MB9388:EE_
X-MS-Office365-Filtering-Correlation-Id: b696cd1f-8f30-44e3-8ca6-08dde6cdbbda
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|38070700018;
X-Microsoft-Antispam-Message-Info-Original:
 =?iso-8859-1?Q?eZ/FKtPzZOcig0kegSyx6Ae0OfsrxgX5Bnsg+ptdCDQIvLC2SmSvXBLIP3?=
 =?iso-8859-1?Q?iGE9zHa5cEBHBi4xNu+/JEEXkh2BLWBAI3NCTWKNXqRPZZCAhNZqA3DRtJ?=
 =?iso-8859-1?Q?kWkQcSbN/akyi0hhRTVmDdSo+Ast6Mi/ezefzLxJjgUqEOq4nAqtX3NPEy?=
 =?iso-8859-1?Q?WNlsDONVzirk9qxuKf5lwXdTzxqCwRFkHiI1iDB8DgeGF1NuXyoKvNU34t?=
 =?iso-8859-1?Q?R3q6exW8s6louJiJedEw4BXjJyjujwlKV83zvDTFv73UGh2Z0CrzFWhbMn?=
 =?iso-8859-1?Q?wDQLfB1x16ZYb4pgt/EpMmFxKP7Ygb5+/o5e2C5sGNzMPr3pVYw4tVU5ik?=
 =?iso-8859-1?Q?xfw6kVK8Bj/NRLuVM0t09IPy/4VuWBytW3sY8Y3UqQUSmgaUFo1q+Igfqx?=
 =?iso-8859-1?Q?Y2GsNRQITJnyMgSmZ/GF5I6KJEAbY5eEHQzpeOE+uiw0cUF5/cn28VSoce?=
 =?iso-8859-1?Q?jC9BKBYNt/MCIQ1RGSKcfhCNGJ19CIN7lWgD+/MnXsxU1lkDjSB3MoAJHY?=
 =?iso-8859-1?Q?KU5vCkQjCosxlUafARoeBfPwn1fHpJQ4jRbw8Qto/+iytRoIjgITjSqlSn?=
 =?iso-8859-1?Q?TjiQCR1bp5vRC0bUokh6jvhwirLs/lX4NxGkojpXQRSlHYKaDVds4PwMLM?=
 =?iso-8859-1?Q?fppV4uo3a2TxnukaaeIMmKcg8JxsgIOD2zVKXxEMLs5zEBW8YKJVE0wW9k?=
 =?iso-8859-1?Q?5dr9E4DoiHdH0RnS+qszTUkir6hO5TOLZZxP4nqrZpr8mlQ/iZu9m6pLPj?=
 =?iso-8859-1?Q?4Vj6Kqtc7TLAZ7bdwSSxVVx4m5BScehf9KXdJsf5+GZz2B5TI1yk7KqrLz?=
 =?iso-8859-1?Q?vqYx3peE+WALn4CXyw9uKm1xmJAb3vtg5a+yv3/qOyE3xlUIRFDjTBwRWx?=
 =?iso-8859-1?Q?KjakL103z1ReWVqRfLBGfDBYOWsRJ0OWoa6GpON0e0fHL65Is92eL98Hca?=
 =?iso-8859-1?Q?CvFC8oKxvVjyQWucxhezZU3nlbXtD7XA0zZC8+I5HB0gXaFsYsh0e0E+Dd?=
 =?iso-8859-1?Q?LKubrncOBc/yXxCIp37ioZZQJ2djxeu7XDoXmTVWsxxhmCvH92b3TzX9S5?=
 =?iso-8859-1?Q?mmeHKOs9d4WsIz+W/leCtz+UBwnVpsqViphVdS+N40Fuc4DX/xafmNGmHt?=
 =?iso-8859-1?Q?IRkwrz7JUAcmWXtLtFCfN/7F++CDmlEWlC3JsOmWst6IK2W92jK618gWiY?=
 =?iso-8859-1?Q?NZ5mT7AlIk+A8AA0QCiQ5FLwvai25gGe3OKe27cA62Hgl/SnR1oLN2w8zW?=
 =?iso-8859-1?Q?6e4uxyeuCAPWsoR0zyCCx2DaX5j7D9iy4XMupo5v326OWX1j3K1CH61Lja?=
 =?iso-8859-1?Q?tt8LjDvEuXFhvMVMTYZPEB+nj692xxwfzjfn4Lm9370cTprKBx8xmg1/ht?=
 =?iso-8859-1?Q?LKSfuxTIasgNhIvSyFF5q/711v0sSo+c1B3NEuduVP3TOgGWrcNxnjDL9P?=
 =?iso-8859-1?Q?+VjkuEO2Fyd30kMec2PBd/5VBxau0N0inkmBArsDdFusyzWuBJqRL+VjRj?=
 =?iso-8859-1?Q?UO9UpZTDuhkCPef0WuERsmlXgpTuYVOfzXEL/zYLzl8g=3D=3D?=
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)(38070700018);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <F0EEC3B3B2DF4740A0F9DE49F95CD259@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU5PR08MB10755
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB1PEPF000509F1.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	36bed72f-7f97-46c2-77d2-08dde6cda7ab
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|35042699022|36860700013|14060799003|376014|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?iso-8859-1?Q?9XOd/aw2KdLkwFMnNmcIb5tfJvTFr3vqXWI+fiH8j9aApVGbDmJqP6A21T?=
 =?iso-8859-1?Q?TwpOOAbbzw+HRuTzt3xXsm+MzDvyXgMONSsF+k+e5XbzJqZuKE4VD+TI2+?=
 =?iso-8859-1?Q?2w5YfWPAvwHd+fHiCLv358CXavWLTwqLIG5wDfOCId6p8xq3GvJyPJ7zMG?=
 =?iso-8859-1?Q?8WaAsq0AwfaeU+lQFO+bcQbrCUEhGQruFWsIu9x1/Ln1DAT0Sh/1PNi04v?=
 =?iso-8859-1?Q?O2CSfue5TU8qIISO0RJMfLMP/kd0JEcSSTpA0YJJp/b/71gKUmOWbrZ8gy?=
 =?iso-8859-1?Q?XbumDyCB2Zr3oF3c1YXY8VluWNeMFdifZWgN447qb8i19H4HBfpwNJMUQs?=
 =?iso-8859-1?Q?qESvSrqHJ7UfsWjGYC98QRZMcVFJajkpx5IIlPsUNBatbrj+5VkF8vcrHo?=
 =?iso-8859-1?Q?WLL37sw7VBy+O+jeUiFtguiWq3sQsSu2bjIsl9yqFDPelhtSi4qSaogZIl?=
 =?iso-8859-1?Q?2ZB0gMfF/6s2hOnmFqEVGxDZZ2ZcPrn7IhAzmF7aRRD6e2/gNLpl9mGjLG?=
 =?iso-8859-1?Q?qxo6SHPraZ4VuElKtn9pZQovujgORHDaoSQl6E2kftJkWJh8oJFMmhcian?=
 =?iso-8859-1?Q?pm9dvwhhwebH6EIf7rAIca6U07U+QkRXr0JGivq93sEy04ZGWhOKjNcNUG?=
 =?iso-8859-1?Q?rNH4bBQ3QkYUjG1sH/Cqs6xBTFP2xaQb0cQguOg/J6nljwinadMBV50eMo?=
 =?iso-8859-1?Q?wlBRdIYUI4cToe0FQth4Ux+vtE5l9wIH5vhnGb6oCU0YAWeSu5rwyJGV3Z?=
 =?iso-8859-1?Q?Vham3cbECjRfCgUDB99XTHbz1/fUWSiqhnsIJlFUk27c/CAtCBdWRV3Gco?=
 =?iso-8859-1?Q?whEboAyCqA7eDutF7q3TjvRmyopa+bAzmKvf5eznikHbOO8iXRG/4VGR9R?=
 =?iso-8859-1?Q?leS3jWXm2MzvZk/g7Cm3TkmF68Sb30uVNYT8SYVwoNk7IObQxLad070GoP?=
 =?iso-8859-1?Q?LzIXikz3gmxtnA/MfjU5N1MullI4usP0DblYWrpKlhB/hJTeBBg+KuiaDD?=
 =?iso-8859-1?Q?QntaNbbowAe/pPxoJi2n6oog3x8D3O1E8t4+fmhoP5bxtRdTrBX9dtYQqQ?=
 =?iso-8859-1?Q?s522GVf8vk1dtwq9O6UwGllBoJysV+qPKyo7Lau3l87zsOY4fkC8oRaVoJ?=
 =?iso-8859-1?Q?zu3SurP68reFtJ6OWo22Zn9aGI1Sy6q2T9DjXGUOkejxqgMvOVUcnGFnRI?=
 =?iso-8859-1?Q?YCDOdC3HKHXEp9B0NmfSLRHr+i11SLIqK2x0e+aJXPt5W0mXAuskOtF9p4?=
 =?iso-8859-1?Q?/Skb1UK1Md3rGPOiXuHg5eBUVGQn7bLheawAo/KkyIqhYRZQzIfu0VrJi6?=
 =?iso-8859-1?Q?V+zFSx0O0NF5vhams5E9uGqpVMn+2fq4tp6xSIPKpIptWt5UZns1HtCmcN?=
 =?iso-8859-1?Q?Mg6j6JwAjXHGkPWxJegH9kjcDrLAHY8xCkK6Y8p7eL9jR4mYIywtYIUdoh?=
 =?iso-8859-1?Q?7ijOo5EypTkymLsFZnH9Q8lvfdvyT6DGOlXMBetcg0wMnfC620I4PgSABT?=
 =?iso-8859-1?Q?lynZZB745J/B3+MNEuRUSn7V9IBvMvYCkScF8dUqk/KM+YI+/B/qSacwbp?=
 =?iso-8859-1?Q?5Ulkddn6/eMML7teSiU7sK1IOKBb?=
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)(35042699022)(36860700013)(14060799003)(376014)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Aug 2025 07:29:04.9705
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b696cd1f-8f30-44e3-8ca6-08dde6cdbbda
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:
	DB1PEPF000509F1.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB9388

Hi Julien,

> On 29 Aug 2025, at 08:22, Julien Grall <julien@xen.org> wrote:
>=20
> Hi Hari,
>=20
> On 28/08/2025 12:12, Hari Limaye wrote:
>> From: Penny Zheng <Penny.Zheng@arm.com>
>> In the function `init_staticmem_pages` we need to have mapped static
>> memory banks for initialization. Unlike on an MMU system, we cannot map
>> the entire RAM
>=20
> Even on the MMU system we don't always map the full RAM (for instance on =
arm32). This is why we have infrastructure like map_domain_page() (Temporar=
y mapping) and map_domain_page_global() (more permanent).
>=20
> on an MPU system as we have a limited number of MPU
>> memory regions. To solve this, transiently map the static memory banks
>> for initialization.
>=20
> I am guessing you implemented the helper because in unmap_staticmem_pages=
_to_xen(), we are calling scrub_one_page(). This will be using map_domain_p=
age() and unmap_domain_page(). I am a bit confused why we end up with brand=
 new helpers rather than implementation map_domain_page() and unmap_domain_=
page()?

yes I agree, scrub_one_page is already using {un}map_domain_page(), we will=
 investigate about it.

Cheers,
Luca=


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 07:34:58 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 07:34:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100741.1454066 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urtdN-0004tj-GD; Fri, 29 Aug 2025 07:34:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100741.1454066; Fri, 29 Aug 2025 07:34:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urtdN-0004tc-Dc; Fri, 29 Aug 2025 07:34:53 +0000
Received: by outflank-mailman (input) for mailman id 1100741;
 Fri, 29 Aug 2025 07:34:52 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=psBU=3J=epam.com=Oleksii_Moisieiev@srs-se1.protection.inumbo.net>)
 id 1urtdM-0004tW-Cq
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 07:34:52 +0000
Received: from GVXPR05CU001.outbound.protection.outlook.com
 (mail-swedencentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c202::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a60a11ea-84aa-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 09:34:51 +0200 (CEST)
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com (2603:10a6:102:32e::21)
 by AM4PR03MB11101.eurprd03.prod.outlook.com (2603:10a6:20b:6cd::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.13; Fri, 29 Aug
 2025 07:34:49 +0000
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::f12d:7394:bbe3:dfc]) by PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::f12d:7394:bbe3:dfc%6]) with mapi id 15.20.9052.014; Fri, 29 Aug 2025
 07:34:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a60a11ea-84aa-11f0-8adc-4578a1afcccb
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tJ4lwJ6lV7w9B19y2Q5V4XHtqPb8OYsFRmp6AB/3uMZEcufwbAM8vD9YEFl/oII5BDD+jF1fdglacRYt72XRiAQ4W4nLhlcPWiKQIF3iU435evH0O4hnbPUajUeLzDb+uLVqEqqng9H6A+4P4pdB43tIRh7kDalRAhZ2MH0WwLc3X2wHSI2prokZFg54h8HGY8TX4Gu4dC/1dB7hYPDj5wqU4tFOGpyhxJC/qRcWIRyRG2e77c4jLSTw7bBPWmtAdmX4C3GVkP70KaamIuHWum1jRKGM2AkLfwHJH+WWR5xb1/ZKvnQ8gsHJ/jmxc5SIzJQKoJ5WY/2bT744daxVqg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fepvCsjU5wqmfCMRdOUwegDt3OB7Zk/e1WHajvn5db4=;
 b=WLw3EqCuBDf14RyMx/v//xfV/ZzGZ3ZrRwAYS0vLjxFPydAa/HYIntDySFmGPFzELETJ9rdTv1LosEBG0vWfTSUHROmA+8e6p0lDC2qBudu18QoWQtW4Po10uiuwVtPEzNN6Mk+kijZBINt1zCqGQKgHAGPwr0n7BU0JRWCOaDFl9qUEGn28GDCLZQ87Vppw6ed/p0aAPJgNAH8K/B4iagiyvrHX7aUjx0JQcQd5ur9076sLHNnNukOWry5hXNbl/SQCsJT5srWUda33LaSJk3Od6P1HH2sQxXK7Xf9Rw2Yn27yftY6ufyAk6QG62gUHf8/Sihv7SM+uBAvj+9LFXA==
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=fepvCsjU5wqmfCMRdOUwegDt3OB7Zk/e1WHajvn5db4=;
 b=llSZlnY9bG5S43jDgKaJfOqSraPzeuDwFZI7qCcHpYSVg9ap3K1YFcS0xq0IDa0dRtIZdLheFWq33e/S9KiR00AAvM3j8tAr49dzKlKNYnlCVVGaEaZoWzHS9f1C7wIqNFVIy+jF98feSTi8JZlXpIKhn2uWp+rHVtZ0Pffhd2xuAn1vmARBH0GrHeBVnpRJYH3ZGXvVKxloj2QbAP/PF4n3vtqmbt7RSjCZwHT+J7ftT+jHq82XW+nWt7sw1XH2PIBlmQuIe9KTimCifc3xQZasFfc+Gawb8yoWzfDI4aBfpc3Gsi6miuEFSPBP0wuDusP6elOOwyW2mZ+mQH4bCA==
From: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Juergen Gross <jgross@suse.com>, Julien Grall <julien@xen.org>, Michal Orzel
	<michal.orzel@amd.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Grygorii Strashko
	<grygorii_strashko@epam.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v6 3/4] xen/arm: scmi-smc: passthrough SCMI SMC to domain,
 single agent
Thread-Topic: [PATCH v6 3/4] xen/arm: scmi-smc: passthrough SCMI SMC to
 domain, single agent
Thread-Index: AQHcGDp07aUQwsobaUO2Bmd+Gq/u2LR5OwuAgAADSoA=
Date: Fri, 29 Aug 2025 07:34:49 +0000
Message-ID: <e60f3f41-49f6-415b-9756-83bff555f303@epam.com>
References: <cover.1756399156.git.oleksii_moisieiev@epam.com>
 <02b79eaa0a611fb43a2146a5f41aec435d3db6c7.1756399156.git.oleksii_moisieiev@epam.com>
 <4b554221-336b-444d-a2d5-849017f3b943@suse.com>
In-Reply-To: <4b554221-336b-444d-a2d5-849017f3b943@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: PAVPR03MB8946:EE_|AM4PR03MB11101:EE_
x-ms-office365-filtering-correlation-id: f1de33f9-591f-4b9e-b7f5-08dde6ce88f5
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|376014|7416014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?WXFNNDhEMFJGcHR0Wmx1bFd1UFI4NUFXM3l2WjFPd3hvOCtJOTYzOFNHWkI4?=
 =?utf-8?B?VE1LaG9NSXZIMkYwbmhYQzlNMkFWNFlucGVlOE13WDNsOGFTYnpwZjIzQURi?=
 =?utf-8?B?SUw3S2pLNm5tcmVLamtTM2pRZU9QTnExUEE5VHhUYTJWRUkxa1c4cnkwOW05?=
 =?utf-8?B?MEtQNHNjaWxEa05QeC9HYUt0VFVBL3JHZHR3ZHVKRS9GcXlMWGlWVjN5d3Yr?=
 =?utf-8?B?d1pkMmNSUHBDczEzUW02YWs0UVk4M256OHNvb3loaU1CUTNEUy9BeWVYSlBI?=
 =?utf-8?B?VmJQOE8vZG1SdE9jYmtmQ3BuM09Ncm9SWTg4UTI1cG1pTHpMaHpHSGg3c1N1?=
 =?utf-8?B?b3VpbWgzeXMzYlhzQzN1SWVNa29TZnRCdTVETTJqKy9ZTW5nWGg0aDVxWHhy?=
 =?utf-8?B?NkdtNVNyeHhGWGgyUUgrTVdOMWN6b2pqL3JZMElBeGhON2ZWS0hnS3ZQY2JG?=
 =?utf-8?B?M2hET1FNM1ZFUmVCRXJ2YTZxb2V1RXk4K3p0cmZtWk96LzJrN3NzUFJoejVk?=
 =?utf-8?B?ak1tdVVQK2t3VWJrQnFQeXNpZ1JGR2JaL0xWUmpQY2Z1bUF6OXo2SWdQQ0lT?=
 =?utf-8?B?aXJDSlpKTUU2N1BjY1FGL2cyVDE1WlRTcWZOYi9TNmtlMmY4K1ExV2ZtK2lY?=
 =?utf-8?B?VXZ1bHV5YitFWnRVNnBEZitiQkZScXVEVmhzQnYvcENvMHVkd3B2a2p3NEZq?=
 =?utf-8?B?VnlIYW40TnhNTW9VRlpWUkFONFA1MW1yWWs4dFZBR3VRVWxDNElUUzJBTHhm?=
 =?utf-8?B?TW1oK1lMLzFUdHRpaDZQUFpXMTFSQitBZCsvczUvSmRDNG8wZXBaMzdaeTlx?=
 =?utf-8?B?cC9TL3pvNHFQWEVPc3U5ZXhQOGlHQ3pYdzdZNDVpaHdKR3lSemdKVzkyWFEy?=
 =?utf-8?B?a2tpT2FYeEhiYzlIWTZ5WGwxVFdTZVNWWWhjZ2JESUJJOSt4TStpenFUdFl5?=
 =?utf-8?B?ZU10eWlsZjlqdHpkTHptSWg4bmdLQmltNkxZcmtPUTgxM3lEVGJ2MHV1UWlh?=
 =?utf-8?B?UmdBTytEWW1IRDAvWHdyVUVkVTJKWkx5akF3c2R0bXB1eHVvc0c3eUI2N2g3?=
 =?utf-8?B?K01mWmN4ZlVWeTV1ZDZuUk41bWY4NlN1czhvTi9ZUklVd3VCYUw1Vm01eXFa?=
 =?utf-8?B?bFp5a0M5bHkwU0ZYbU5abWdzKzNSVC9NeDhQVE1TY1VYdEpXdUlDRURHeUVm?=
 =?utf-8?B?ZlZzRmg0R3Nnejh6WDZ2Q0twSTdzcE80MmZGYklXZytDTEE1c3YxVS95MEl4?=
 =?utf-8?B?a3NwTloxUk9ibTJGUVJGSXg3RUl4ZFdCRnJOa1VvZjRXZ0lJYXBZSk1nOWhM?=
 =?utf-8?B?WWpRb0JRd3QyTVRVNU4zN3ZRa0YyVHNvdnh0MUZqdXE2WXpTU09ENXo2bUR3?=
 =?utf-8?B?cks2bU1Wb2NneUNRTzU4akp4UnVORkVXWEpLbjlhYklFYVBvZTZwYUIzSmZH?=
 =?utf-8?B?OVpZMnRWaDFsWTAyRG5RYjhTY3NKU2N0OTJLU3RWMXB6SnIzenh1MktRK2Qr?=
 =?utf-8?B?dUNWMGRZTHczNnB0UU1YM3dzNkt6VDk1SmxwWk5RYVpUSTJ3enlhSHMvZFVL?=
 =?utf-8?B?bEQvWkVMWHl5K011TEhTaGgyVTFjL1k4QVFOUUZiemVROE92cXRiVk9qeEtH?=
 =?utf-8?B?a0J5REdMMzNXYU80Nlk2VmJnalIvVDR6REZUTGtabkZDQWRzNmpHT045WlZV?=
 =?utf-8?B?ak1FL3hNc1I3b2JtU09YOFh5MnJCS2dPYzREU2NTalN0c3Z3ZHVtUVBvbGxI?=
 =?utf-8?B?Zi9UM0tDTWtvK3dzVHV3TUY1ZCtPNE83bnJpMmIxMjROSmpFUlJTT0lVV0dG?=
 =?utf-8?B?V3JJb3ByQmZ4MDI3YnZTRjRKTHhOS2M3Mm1DQU9Lcm9qWm9oSGJoU0tLODBF?=
 =?utf-8?B?ZVE1QVpVcmZscC9ueTFBY21qUmpsVkp2N2l4WHNlUG5xTXFZRllWVTlnV0xy?=
 =?utf-8?B?QnhLYTkzdWNiUElOTnBvbnVOY1oxK1B2S2V6ZjVmaXV3KzhPQVFhMkkxd09S?=
 =?utf-8?B?N3kxWGZnNFdnPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB8946.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?cTB3eHR4SEZMQkdCTmZwd20wUDduVWs5UUd1RjRNZDY2VHpFcmtZeVNjNDNz?=
 =?utf-8?B?UU9IZHl4bFFQcmJrY0pLQWVVY3gwM3dkdTNvc2RQeHY3bWJrUktyQVlhOHZS?=
 =?utf-8?B?b0wraGlMbW51RnhQUWdtUzdwakV1cVY5cGVITlpVMzF4NndENnQ1YWVkdVRj?=
 =?utf-8?B?UkJUVnQyWWRETTNVQmI0THhwSWpxSXgycnRMVmdhdXIvRzRYVXV3SEE0Znkw?=
 =?utf-8?B?aG5VVTFMNWhVT09CbnlWeXpRYW5XU2Y2VjJ1NVQ3R1I2TXVFd2R0SmZKK2hr?=
 =?utf-8?B?NXl1RVlic1ZHZytzZmpVYW11UVZ4WHc0UHZnMzhRM05QdXJVczJ3RExDdUZB?=
 =?utf-8?B?ZFFsaGNUWGxwV3hSTGtHRW5LYk1FazFXWTRiYzQ1U25kaW1LZkc5ZURWMTlS?=
 =?utf-8?B?WjUweWo2azRlRWIrYWY2Q0JIWGp6c2JENTllUXJTT09Dbm9qVmwvVnY3cVlR?=
 =?utf-8?B?aExuS0tKSFhMNnJkVExXbFJrdHZVWGpjdGk3cC9TRExHd3lUcFVwbWVoRlR6?=
 =?utf-8?B?VzZzbEhUc2d1NEIyZGdOL0tVMTZDMytmRFBqMFpmdEphMlNOOVY1NXFzMFJ4?=
 =?utf-8?B?N0xlWjlYeGJlS1kxdFpQbUZlMDI5RS9XZHYxWURyS0ZKUnZZdWE0RWxPTnM0?=
 =?utf-8?B?Tjh5dXpBZ3dIRUdHaFdrREVkNW5pNXg5M0FLdStqZzM0MTZoRTFURlRISlV4?=
 =?utf-8?B?N2dTRU5GcVZUNUFoSnozb3lLSTVrMTJ0QXJTdUJoTHZIQ3FBaGtEY0xsZHF4?=
 =?utf-8?B?QlphSFVYMlRNQkpVN2NRUXRVUStUeGJibnZZSGFwN1VCNFgrcTcwSTJ0TEw5?=
 =?utf-8?B?QU1SZjZMSmZTQzdqSkpjc0pqNktXYndtRGdYM2V0ZU5TMDJYYkx1QlNpQmVC?=
 =?utf-8?B?Z0lmazFQUHFvZVJvVDZLc3VwOUxFZXYvKzRmTWV5TEVGRGE0SHBwSVNjcXBn?=
 =?utf-8?B?UW5QOGhVS0c5TDZJaUxYUW5VSGtuT2xqdC80NTRuV3RJd2lxT2EyUUZ5VWJ2?=
 =?utf-8?B?WHpSaHZuazY3Ny9uaUp0cld1c1FyOUh4S2Q3U2p6bjhSWG9rSUZ4VkN6Snhi?=
 =?utf-8?B?cTFiMGV2bklUZ2RCYnlBSTlrUlJEcFI5azFvcGtSVEpUV3dKR0RBdDRRcU5N?=
 =?utf-8?B?NncwVUJKTlNmL0tzSGFNaXNNNlNlS1ZsRHlFbTVscnluYTVkT1JGcVpGbDVS?=
 =?utf-8?B?eWZhZWVHK0pWc3dVQ3pGbEJPSTNkVllkeE1xbi9FZUMwZmdRL29RMmt1Ui9D?=
 =?utf-8?B?Z1M0RHBONDgzRnpqVy9XSnhYeEVsSEFqRW9IUzFaVkd0OXByYTFBVzFBWE85?=
 =?utf-8?B?WVhmdXIzWVVMeXBEUUtaMzVqdHFSNURHWktQN3ZHejhYWldrdVRlQWoxZ3ZZ?=
 =?utf-8?B?K2RqQlYvT29selBrS1RObGpVVHdRRlpFUGF5QmNEelAwQmg1cGN2K2YvVDZN?=
 =?utf-8?B?ckg1QUNtbGJSeldTenorVFY4Ti9IYUMzNG5UU1NHUWVXVFBheWxnV1NESy9V?=
 =?utf-8?B?elBJYTg0b2lwWTgxSlU1cEo3VkFaaHRzVW9lQWcwNGdJRnBDalFmRDA0OStN?=
 =?utf-8?B?N0ZsVkFwbnlIRzhiRWVPY3l1aEV6YWdNTDNKdFVsdnV5VGo5WmpGQVl2cENl?=
 =?utf-8?B?UnNYS0lha1RQRXlkNGo0UWVRQytPNGFhWDZ4RmNZbWpIT1E4bEJlMmo2eEN5?=
 =?utf-8?B?RXQrMTdkaW5aWFJUcHk1SkttdFA2OWtuRFg3WHRRbUk3TTg0Y25UaE52Rm4y?=
 =?utf-8?B?WHhkdWdWSlcrU3h6UDZXZWIzcHFxVWFZR0Z5VEVZZUw5U1ZIYWh0UGVxYkNE?=
 =?utf-8?B?dlpGeWdiUEFlM1g0TW1QU3o2N0ZFSE1ZbythUlFZaGNXZFNZMDNzM1FYTlpz?=
 =?utf-8?B?am9DbVAxSkoySU5zMklwWStiVHlzQStBNWYyYzR6dUZOU3U3UHlhaFhsUytq?=
 =?utf-8?B?Z214VHlOQ0VFTWJLZHVOSTVnUzhkMjcveXdnSjJSaDdOWVFRelNEQW9QVWlr?=
 =?utf-8?B?WEFCNDJsQzdBVC94dEMyek50d0JEK1o2TE9WT1BmVEF3ZU56YjYyUlY2QWVT?=
 =?utf-8?B?WTIzMThLVnF3U2NuL0tHMVVPb1gzZ2xyejUrWWl6NFRGNldFSVJuV3ZSemY4?=
 =?utf-8?B?cDJDQVJRcFpOMkJpRkRKSE9sNngzcmNjcVVSbkIrT2IyMlhjNHpiZkZJMmk2?=
 =?utf-8?B?TXc9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <F60E48D4670D144993BBBDF532815D91@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: PAVPR03MB8946.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f1de33f9-591f-4b9e-b7f5-08dde6ce88f5
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Aug 2025 07:34:49.1384
 (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: G2iG1tgExNFq8nA3+OXjqXBo8LowFEW6OTkB/E7iru+xjM8i16AMVH5OX2rk3EUXBc1IdCP8n+YMBAH1BoJTqHPRLoE9iCu01fIAU3fOFRs=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR03MB11101

DQoNCk9uIDI5LzA4LzIwMjUgMTA6MjMsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAyOC4wOC4y
MDI1IDE4OjQwLCBPbGVrc2lpIE1vaXNpZWlldiB3cm90ZToNCj4+IC0tLSBhL2RvY3MvbWlzYy94
ZW4tY29tbWFuZC1saW5lLnBhbmRvYw0KPj4gKysrIGIvZG9jcy9taXNjL3hlbi1jb21tYW5kLWxp
bmUucGFuZG9jDQo+PiBAQCAtMTA5Nyw2ICsxMDk3LDE1IEBAIGFmZmluaXRpZXMgdG8gcHJlZmVy
IGJ1dCBiZSBub3QgbGltaXRlZCB0byB0aGUgc3BlY2lmaWVkIG5vZGUocykuDQo+PiAgIA0KPj4g
ICBQaW4gZG9tMCB2Y3B1cyB0byB0aGVpciByZXNwZWN0aXZlIHBjcHVzDQo+PiAgIA0KPj4gKyMj
IyBzY21pLXNtYy1wYXNzdGhyb3VnaCAoQVJNKQ0KPj4gKz4gYD0gPGJvb2xlYW4+YA0KPj4gKw0K
Pj4gK1RoZSBvcHRpb24gaXMgYXZhaWxhYmxlIHdoZW4gYENPTkZJR19TQ01JX1NNQ2AgaXMgY29t
cGlsZWQgaW4sIGFuZCBhbGxvd3MgdG8NCj4+ICtlbmFibGUgU0NNSSBTTUMgc2luZ2xlIGFnZW50
IGludGVyZmFjZSBmb3IgYW55LCBidXQgb25seSBvbmUgZ3Vlc3QgZG9tYWluLA0KPj4gK3doaWNo
IHNlcnZlcyBhcyBEcml2ZXIgZG9tYWluLiBUaGUgU0NNSSB3aWxsIGJlIGRpc2FibGVkIGZvciBE
b20wL2h3ZG9tIGFuZA0KPj4gK1NDTUkgbm9kZXMgcmVtb3ZlZCBmcm9tIERvbTAvaHdkb20gZGV2
aWNlIHRyZWUuDQo+PiArKGZvciBleGFtcGxlLCB0aGluIERvbTAgd2l0aCBEcml2ZXIgZG9tYWlu
IHVzZS1jYXNlKS4NCj4+ICsNCj4+ICAgIyMjIGR0dWFydCAoQVJNKQ0KPj4gICA+IGA9IHBhdGgg
WzpvcHRpb25zXWANCj4gT24gd2hhdCBiYXNpcyBkaWQgeW91IHBpY2sgd2hlcmUgdG8gcHV0IHRo
ZSBuZXcgb3B0aW9uPyBJdCBjbGVhcmx5IGRvZXNuJ3QNCj4gZml0IGJldHdlZW4gZG9tMF92Y3B1
c19waW4gYW5kIGR0dWFydCwgYnV0IHdhbnRzIHRvIGdvIGZhciBmdXJ0aGVyIGRvd24uDQo+DQo+
IEphbg0KQWdyZWVkLi4uIHdpbGwgcGxhY2UgaXQgYWJvdmUNCiMjIyBzY3J1Yi1kb21oZWFwDQpv
cHRpb24u


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 07:41:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 07:41:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100756.1454077 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urtjv-0006o7-B4; Fri, 29 Aug 2025 07:41:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100756.1454077; Fri, 29 Aug 2025 07:41: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 1urtjv-0006o0-7m; Fri, 29 Aug 2025 07:41:39 +0000
Received: by outflank-mailman (input) for mailman id 1100756;
 Fri, 29 Aug 2025 07:41:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oFyT=3J=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1urtjt-0006nu-Mf
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 07:41:37 +0000
Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com
 [2a00:1450:4864:20::436])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 97a6c133-84ab-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 09:41:36 +0200 (CEST)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-3d0dd9c9381so186414f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 00:41:36 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3cf346811b3sm2239482f8f.63.2025.08.29.00.41.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 29 Aug 2025 00:41: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>
X-Inumbo-ID: 97a6c133-84ab-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756453296; x=1757058096; 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=tO6DrzD+quTdHqqvNMI0g01HFf8ZC0nX9Q1ohDDwCd4=;
        b=EksjdCffJV3cwlX9LxJmdIXARdMitLMGgUCQqSgmij3QcX0QT7du9HXcJ9TJNB/xiV
         tXLAx7mJUQTXyZ+09O2GPUKUiUHHeeVC6hr/7s5OKQi7RGskHZ4IadxPn1FllOVGIe4E
         dYbDQeFsGvhdny7st0F6tK26AoM/xAwf3fI8Q=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756453296; x=1757058096;
        h=in-reply-to:content-disposition:mime-version:references:message-id
         :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tO6DrzD+quTdHqqvNMI0g01HFf8ZC0nX9Q1ohDDwCd4=;
        b=nBcDRmVCgPgQE118cD6/sU97DBsVrHpDrStSmQma0K16kmKVlbjqy1JxizXsq3/zvm
         W605PBx6uCF071Nh3AV16uJ7l9ZDPznwwPEGFkqxt7UkWjNQhR/a4ziOdeohXcKABMji
         HCP5vp9C37SnVq937B76p4E02fLgNWnX/fyZxTRHjO3qb31D9ru0nU2MMjU8TVRMXDZS
         VdULZHl22BsNlAXrvsfyrqJwPBkb7FYtEoVsIdbbgs6yqFb93hynAiw5mWi8w54lEnr2
         T8Y3oyYeNDQM8y8wJeiJj6t9YGvL6SJGizySvrdHpHb0we653efjBhX4Zl3exYTU1xAw
         AvDg==
X-Forwarded-Encrypted: i=1; AJvYcCUd5piYQ2r7Sdj5hO1uPeUO17ks6BSaomY2vBCupuO+2k4GWtP07t0NUfFqxCqkXzgNfQt5fQMck/4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzSzXct5O3iAJJ1BBxnmjEerI7/zTF0gpPX27K1H9SDXvnyFK8l
	u1/lZTiJVGnSFDcX/KBHZq3jEVGkBFNWJW4ACSuwBSh2IVJqxwFBRUdP3N1ZQ4Hr4xs=
X-Gm-Gg: ASbGncvEcNB7BFAPbovtj109SJ/hcxcRhxlQU+pzREgiqOfbDBRx+HizRNI7fOPl8WH
	j8U0W/Cndc8XGzQzIUSaofCCo+Zd8MFw+XvRO1i9oOuGXJomMQXt/FKZeDFboZnuXXv7AT4gnTR
	PRwir4TwJRw++wutHzrMvpmtYNNu+B+eie/9vXjVYzAVvCaAWKLNF+5M0JfZ6xIon+cjUdmgNbK
	fIAIc/bZocmsII8QWGwJpzHqHcB5dZgBBji9YY0mHq7/ncbJnfdp5GVe5HaHT5ciSz4axUUDlJ4
	mHJIMUIdyADPSACW11nSeVAfFPWlZFGEgILKj8DEUeOkNFY9DYUW5AzKt3tn6PAVDQupXlGpZBW
	7mmAwzUzwpJqyGXtlYS6nt0+o7RNEh6yFhVXT89A4O+hrHckv8O0fuQ/2PprAwwUECfd/9KdJEd
	gxnY85MsUJivQ=
X-Google-Smtp-Source: AGHT+IGHi84RNslvo4EpNQJM+DDbiydjnPJ4n/OIbw5ZoEm9L0dwqzKUERtcuoXt4DQrs6Vu6ZY0lg==
X-Received: by 2002:a5d:5887:0:b0:3b7:88f5:eaae with SMTP id ffacd0b85a97d-3c5dc542ac7mr19864259f8f.39.1756453295989;
        Fri, 29 Aug 2025 00:41:35 -0700 (PDT)
Date: Fri, 29 Aug 2025 09:41:34 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Mark Syms <mark.syms@cloud.com>
Cc: jgross@suse.com, andrew.cooper3@citrix.com,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH] Clarify the cases where BLKIF_RSP_EOPNOTSUPP can be
 returned.
Message-ID: <aLFZrnHpul61b-5E@Mac.lan>
References: <20250828093821.372024-1-mark.syms@cloud.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20250828093821.372024-1-mark.syms@cloud.com>

On Thu, Aug 28, 2025 at 10:38:21AM +0100, Mark Syms wrote:
> Previously this said it would only happen on barrier writes. Except
> the documentation blocks for
>  * feature-flush-cache
>  * feature-discard
> 
> Also say that they can return this error.
> 
> Signed-off-by: Mark Syms <mark.syms@cloud.com>
> ---
>  xen/include/public/io/blkif.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/xen/include/public/io/blkif.h b/xen/include/public/io/blkif.h
> index 8407453324..5e617b0c67 100644
> --- a/xen/include/public/io/blkif.h
> +++ b/xen/include/public/io/blkif.h
> @@ -710,7 +710,7 @@ typedef struct blkif_response blkif_response_t;
>  /*
>   * STATUS RETURN CODES.
>   */
> - /* Operation not supported (only happens on barrier writes). */
> + /* Operation not supported, see feature-barrier, feature-flush-cache, feature-discard. */
>  #define BLKIF_RSP_EOPNOTSUPP  -2

I think there's no need to mention the specific operations. FWIW,
blkback will return BLKIF_RSP_EOPNOTSUPP for any request type it
doesn't understand (see dispatch_other_io()), which covers any
possible request type that's not yet defined:

/* Operation not supported. */
#define BLKIF_RSP_EOPNOTSUPP  -2

Should be fine.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 07:45:06 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 07:45:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100767.1454087 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urtnE-0007Ns-Oy; Fri, 29 Aug 2025 07:45:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100767.1454087; Fri, 29 Aug 2025 07:45:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urtnE-0007Nl-M0; Fri, 29 Aug 2025 07:45:04 +0000
Received: by outflank-mailman (input) for mailman id 1100767;
 Fri, 29 Aug 2025 07:45:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xaUo=3J=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urtnD-0007Nf-1T
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 07:45:03 +0000
Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com
 [2a00:1450:4864:20::536])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 11497976-84ac-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 09:45:00 +0200 (CEST)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-61d106ce455so53189a12.1
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 00:45:00 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-61cfc1c7a8fsm1254516a12.3.2025.08.29.00.44.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 29 Aug 2025 00:44:59 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 11497976-84ac-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756453500; x=1757058300; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=KUQNYHjvq/lfSfmCOxvdyijSCczGChZhaUAQSNqQJ5o=;
        b=QbRXiz3x+h3p0hsPJp617mK83ZIsxc3ZxQu2pU5ZD0e2jAlcqq2S+pD7ZhsMmWfLfO
         /zavWogn1gteLJzVdusQpW6IUQypwTH8xq0LDJhEc9J7gyuWNCAE1nXKnv+ONWuml5ud
         iq37/3Cv0H3AY2xtc0icTiQL7HkvfkpT/hhYPP4BOoa8OZntKq4VloRE8z95EKkx60+x
         GH2fbny/w8MAYWDJu67NZasz2RChm1tq3RsGYHBMibnxh1mKx4TNoQtiVaIkroBFPD8P
         o0Y21q7DD4xdBkeS8bZ9RFeQolWVGV36se8j7rKjGvyALVSJMoaJHwixYnaIhqFAW5xV
         7D1A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756453500; x=1757058300;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=KUQNYHjvq/lfSfmCOxvdyijSCczGChZhaUAQSNqQJ5o=;
        b=ckLF9rd3f99gkNdIH6V3+negUSBd9da84bzueAioQ8dCR0Wgb9E3Wxt6Eht3zkSqLq
         aNsllGvf6wYKBvEwCUraub86TgnV797U13faVF5bAwa8y8bgn3tjYjnZH4gAOF5768cj
         1KKebwRHL8RU5nS5/w+iaGNaFyrblMbavthPZBckysZz6gxnWHLj1jeV956GMic29SsA
         mj8cPuhK6qJx3z5FRBNm3pqCY+7IT7qe8oNg4lNganUz5mkvjvN3LEcukQXA6zKrVNLp
         tLrstKQpcLXNFRJBwnKZuP+74e29onN+6ojaz5bHQTeMQZesA5gnTk2RT5EtlzKuPBQn
         XstQ==
X-Gm-Message-State: AOJu0Yw820+JhLrtl83UWbP+7zXAV6e7bc9/bfrHEMPn634TgaL2JRD1
	q/zjpg2EtP5pAAt3rqVqtCCQL74ViSrpr0aGRgZ2CloFE4ua6GZs05jbgBrwuhYaww==
X-Gm-Gg: ASbGncvw7+X8j2jKytEv9ELcUReJadRcAqkxhxut8lJYoo2mOBt3c/n45AD8Yd/Zct8
	tUNmxGK14he6NHHh3iCswdqs1bkBFetFDTh6nkEC1qh/bgCyRPvBGS+fxvllOJe+KXprYz4VS2p
	yAxjYstEPfH9w4t0OxjD5adGvnRTOYRj7OciRXP/k2Wm4YYr7L+7eE8r5x/NcsYUPeo+SSyprwi
	HmOcFs2rkdksc+/VBxHJk4xryCggnncQ+yPoyv1wRJPIq2YGWwnr1WX2WtDXU3h/IiuxfqKGyij
	eUqXKj+J6hx+Zgod6vF0Vnj+Y0NeGdJjkWoBxg0QV8Tjbl/EWY1MNzenwJhDQTikdJWYeKeK1Gi
	RmtQLtJWSdE1gMfAMLdTECP8oZE3SuRuYG0wtUF9Toj2fqNd+cNH0SQGJpZPvlsKEAVqHYJT4U1
	2x6geTJT6qNV8isPLojQ==
X-Google-Smtp-Source: AGHT+IGtvMGmt/atoN1U7CXX6irxKhbV7RPuNViV9oNpPBvBWXz9mGzFkUZFnC7zy1tqjNZsVHC2BA==
X-Received: by 2002:a05:6402:210a:b0:618:4a1b:e311 with SMTP id 4fb4d7f45d1cf-61c983b7f5dmr10720109a12.3.1756453500270;
        Fri, 29 Aug 2025 00:45:00 -0700 (PDT)
Message-ID: <a64cff9f-df5f-467b-a944-74e803c64ab9@suse.com>
Date: Fri, 29 Aug 2025 09:44:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v11 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for
 guests
To: Mykola Kvach <xakep.amatop@gmail.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Mykola Kvach <Mykola_Kvach@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1756392094.git.mykola_kvach@epam.com>
 <bb53d9911b00879c7b25f5258d0e3e48005671f9.1756392094.git.mykola_kvach@epam.com>
 <87ecsvz9sx.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: <87ecsvz9sx.fsf@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 28.08.2025 18:32, Volodymyr Babchuk wrote:
> Mykola Kvach <xakep.amatop@gmail.com> writes:
>> @@ -880,6 +883,25 @@ void arch_domain_creation_finished(struct domain *d)
>>      p2m_domain_creation_finished(d);
>>  }
>>  
>> +int arch_domain_resume(struct domain *d)
>> +{
>> +    int rc;
>> +    typeof(d->arch.resume_ctx) *ctx = &d->arch.resume_ctx;
>> +
>> +    if ( !d->is_shutting_down || d->shutdown_code != SHUTDOWN_suspend )
>> +    {
>> +        dprintk(XENLOG_WARNING,
>> +                "%pd: Invalid domain state for resume: is_shutting_down=%d, shutdown_code=%d\n",
>> +                d, d->is_shutting_down, d->shutdown_code);
>> +        return -EINVAL;
>> +    }
> 
> This check probably can go into common domain_resume() function, as
> there is nothing arch-specific in here. Probably this can be done during
> commit, to save us from v12? If commiters are okay with this.

Seeing this, I'm learning that ->is_shutting_down can actually go from
true to false. Which I think is a problem (not of this series, but a pre-
existing one, see [1]). Code elsewhere assumes this to not be possible,
see e.g. __domain_crash(), but I'm also unconvinced that e.g. the shutdown
deferral logic is prepared to deal with such a case.

Jan

[1] e105919b0120 ("Add resumedomain domctl to resume a domain after checkpoint")


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 07:45:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 07:45:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100771.1454096 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urtnY-0007mH-0W; Fri, 29 Aug 2025 07:45:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100771.1454096; Fri, 29 Aug 2025 07:45:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urtnX-0007mA-Tw; Fri, 29 Aug 2025 07:45:23 +0000
Received: by outflank-mailman (input) for mailman id 1100771;
 Fri, 29 Aug 2025 07:45:22 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1urtnW-0007ll-Jd
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 07:45:22 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1urtnV-00CVde-2g;
 Fri, 29 Aug 2025 07:45:22 +0000
Received: from [2a02:8012:3a1:0:a40e:c7d9:d4:3bff]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1urtnV-007E7x-2i;
 Fri, 29 Aug 2025 07:45: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=jIDd9kp8UwZ9IkomjvQMBNDqneCbCyJMG4u4Bf0oTWg=; b=6TpkEl/N0ejjuqt2+RqFHpQU1J
	9lNCvNUzvxNsUJD7dCps7+Z388DxAGOdxkf3uGD2qlmU7i+SNy98n+tPdlowOfmM8+z8Sv5l0XZBl
	sXLVVB66Gij40D92LhV8iS4XR1vZTK+YKcJGDoHXCXqsefJEwW2U9q3wTuN/3Jqy2Z3g=;
Message-ID: <80c24bfe-3b26-4c16-8d5e-012662d16ca9@xen.org>
Date: Fri, 29 Aug 2025 08:45:20 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 3/5] arm/mpu: Implement transient mapping
Content-Language: en-GB
To: Hari Limaye <hari.limaye@arm.com>, xen-devel@lists.xenproject.org
Cc: luca.fancellu@arm.com, Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1756379422.git.hari.limaye@arm.com>
 <6dc15f5279ea76ac52e89b75d56e3bd2063e91f3.1756379422.git.hari.limaye@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <6dc15f5279ea76ac52e89b75d56e3bd2063e91f3.1756379422.git.hari.limaye@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

On 28/08/2025 12:12, Hari Limaye wrote:
> From: Luca Fancellu <luca.fancellu@arm.com>
> 
> Add a scheme to distinguish transient MPU regions, to identify MPU
> regions which will be mapped for a short period of time. This is needed
> for the functions which transiently map and unmap memory ranges on
> demand which will be introduced in a future commit.
> 
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> Signed-off-by: Hari Limaye <hari.limaye@arm.com>
> Reviewed-by: Michal Orzel <michal.orzel@amd.com>
> ---
> Changes from v2:
> - Define offsets programmatically, rather than hard-coding these
> - Add Michal's R-b
> 
> Changes from v1:
> - Improve commit message
> - Mark parameter in read helper as const
> ---
>   xen/arch/arm/arm32/asm-offsets.c         |  3 ++-
>   xen/arch/arm/arm64/asm-offsets.c         |  2 ++
>   xen/arch/arm/include/asm/arm32/mpu.h     |  2 ++
>   xen/arch/arm/include/asm/arm64/mpu.h     |  2 ++
>   xen/arch/arm/include/asm/mpu/mm.h        | 14 +++++++++++++-
>   xen/arch/arm/include/asm/mpu/regions.inc | 17 +++++++++++++----
>   xen/arch/arm/mpu/mm.c                    | 23 ++++++++++++++---------
>   7 files changed, 48 insertions(+), 15 deletions(-)
> 
> diff --git a/xen/arch/arm/arm32/asm-offsets.c b/xen/arch/arm/arm32/asm-offsets.c
> index c203ce269d..f354bf374d 100644
> --- a/xen/arch/arm/arm32/asm-offsets.c
> +++ b/xen/arch/arm/arm32/asm-offsets.c
> @@ -43,7 +43,6 @@ void __dummy__(void)
>      OFFSET(UREGS_SP_und, struct cpu_user_regs, sp_und);
>      OFFSET(UREGS_LR_und, struct cpu_user_regs, lr_und);
>      OFFSET(UREGS_SPSR_und, struct cpu_user_regs, spsr_und);
> -

Spurious change?

>      OFFSET(UREGS_SP_irq, struct cpu_user_regs, sp_irq);
>      OFFSET(UREGS_LR_irq, struct cpu_user_regs, lr_irq);
>      OFFSET(UREGS_SPSR_irq, struct cpu_user_regs, spsr_irq);
> @@ -79,6 +78,8 @@ void __dummy__(void)
>   #ifdef CONFIG_MPU
>      DEFINE(XEN_MPUMAP_MASK_sizeof, sizeof(xen_mpumap_mask));
>      DEFINE(XEN_MPUMAP_sizeof, sizeof(xen_mpumap));
> +   DEFINE(XEN_MPUMAP_ENTRY_SHIFT, ilog2(sizeof(pr_t)));
> +   DEFINE(XEN_MPUMAP_ENTRY_ZERO_OFFSET, sizeof(prbar_t) + sizeof(prlar_t));
>      BLANK();
>   #endif
>   }
> diff --git a/xen/arch/arm/arm64/asm-offsets.c b/xen/arch/arm/arm64/asm-offsets.c
> index 320289b281..38a3894a3b 100644
> --- a/xen/arch/arm/arm64/asm-offsets.c
> +++ b/xen/arch/arm/arm64/asm-offsets.c
> @@ -73,6 +73,8 @@ void __dummy__(void)
>   #ifdef CONFIG_MPU
>      DEFINE(XEN_MPUMAP_MASK_sizeof, sizeof(xen_mpumap_mask));
>      DEFINE(XEN_MPUMAP_sizeof, sizeof(xen_mpumap));
> +   DEFINE(XEN_MPUMAP_ENTRY_SHIFT, ilog2(sizeof(pr_t)));
> +   DEFINE(XEN_MPUMAP_ENTRY_ZERO_OFFSET, sizeof(prbar_t) + sizeof(prlar_t));
>      BLANK();
>   #endif
>   }
> diff --git a/xen/arch/arm/include/asm/arm32/mpu.h b/xen/arch/arm/include/asm/arm32/mpu.h
> index 0a6930b3a0..9906d98809 100644
> --- a/xen/arch/arm/include/asm/arm32/mpu.h
> +++ b/xen/arch/arm/include/asm/arm32/mpu.h
> @@ -39,6 +39,8 @@ typedef union {
>   typedef struct {
>       prbar_t prbar;
>       prlar_t prlar;
> +    bool transient;
 > +    uint8_t pad[7]; /* Pad structure to 16 Bytes */>   } pr_t;
>   
>   #endif /* __ASSEMBLY__ */
> diff --git a/xen/arch/arm/include/asm/arm64/mpu.h b/xen/arch/arm/include/asm/arm64/mpu.h
> index f0ce344e78..1d1843eda0 100644
> --- a/xen/arch/arm/include/asm/arm64/mpu.h
> +++ b/xen/arch/arm/include/asm/arm64/mpu.h
> @@ -38,6 +38,8 @@ typedef union {
>   typedef struct {
>       prbar_t prbar;
>       prlar_t prlar;
> +    bool transient;
> +    uint8_t pad[15]; /* Pad structure to 32 Bytes */
>   } pr_t;
>   
>   #endif /* __ASSEMBLY__ */
> diff --git a/xen/arch/arm/include/asm/mpu/mm.h b/xen/arch/arm/include/asm/mpu/mm.h
> index e1ded6521d..566d338986 100644
> --- a/xen/arch/arm/include/asm/mpu/mm.h
> +++ b/xen/arch/arm/include/asm/mpu/mm.h
> @@ -55,6 +55,16 @@ static inline void context_sync_mpu(void)
>       isb();
>   }
>   
> +static inline bool region_is_transient(const pr_t *pr)
> +{
> +    return pr->transient;
> +}
> +
> +static inline void region_set_transient(pr_t *pr, bool transient)
> +{
> +    pr->transient = transient;
> +}
> +
>   /*
>    * The following API requires context_sync_mpu() after being used to modify MPU
>    * regions:
> @@ -75,9 +85,11 @@ void write_protection_region(const pr_t *pr_write, uint8_t sel);
>    * @param base      Base address of the range to map (inclusive).
>    * @param limit     Limit address of the range to map (exclusive).
>    * @param flags     Flags for the memory range to map.
> + * @param transient True for a transient mapping, otherwise False.

Why can't this be part of the flags?

>    * @return          0 on success, negative on error.
>    */
> -int xen_mpumap_update(paddr_t base, paddr_t limit, unsigned int flags);
> +int xen_mpumap_update(paddr_t base, paddr_t limit, unsigned int flags,
> +                      bool transient);
>   
>   /*
>    * Creates a pr_t structure describing a protection region.
> diff --git a/xen/arch/arm/include/asm/mpu/regions.inc b/xen/arch/arm/include/asm/mpu/regions.inc
> index 23fead3b21..09e1dcf03f 100644
> --- a/xen/arch/arm/include/asm/mpu/regions.inc
> +++ b/xen/arch/arm/include/asm/mpu/regions.inc
> @@ -14,19 +14,25 @@
>   #define PRLAR_ELx_EN            0x1
>   
>   #ifdef CONFIG_ARM_64
> -#define XEN_MPUMAP_ENTRY_SHIFT  0x4     /* 16 byte structure */
> -
>   .macro store_pair reg1, reg2, dst
>       stp \reg1, \reg2, [\dst]
>   .endm
>   
> -#else
> -#define XEN_MPUMAP_ENTRY_SHIFT  0x3     /* 8 byte structure */
> +.macro zero_pair dst, offset, tmp1, tmp2
 > +    stp xzr, xzr, [\dst, \offset]> +.endm
>   
> +#else
>   .macro store_pair reg1, reg2, dst
>       strd  \reg1, \reg2, [\dst]
>   .endm
>   
> +.macro zero_pair dst, offset, tmp1, tmp2
> +    mov \tmp1, #0
> +    mov \tmp2, #0
> +    strd \tmp1, \tmp2, [\dst, \offset]
> +.endm
 > +

TBH the addition of zero_pair feels a bit overkill when there is one 
user. Why can't we open-code the use case below and use ``store_pair``?

This would also avoid the "tmp1" and "tmp2" which are not used by arm64.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Fri Aug 29 07:52:07 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 07:52:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100803.1454106 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urttx-0001Kf-LN; Fri, 29 Aug 2025 07:52:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100803.1454106; Fri, 29 Aug 2025 07:52:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urttx-0001KY-Ij; Fri, 29 Aug 2025 07:52:01 +0000
Received: by outflank-mailman (input) for mailman id 1100803;
 Fri, 29 Aug 2025 07:52:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oFyT=3J=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1urttw-0001KP-On
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 07:52:00 +0000
Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com
 [2a00:1450:4864:20::429])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0b082a31-84ad-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 09:52:00 +0200 (CEST)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-3c380aa1ad0so910631f8f.3
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 00:51:59 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3d1052db1f0sm434638f8f.23.2025.08.29.00.51.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 29 Aug 2025 00:51: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>
X-Inumbo-ID: 0b082a31-84ad-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756453919; x=1757058719; 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=38d4rZaLR2nKxik/b4Zebk+B0WHyMTDWVQk0KLCvpMQ=;
        b=X/Me1dE/twwhlJpWkxlk2YIIJAG1HhuJesvXqkeJg634phrwMvOaeHJWiSmdWkz3WE
         R5E1s4fuLPM/jXMMlf15c60mvY2jHCwlkZG+eVNbLmFrHYeZhy6c8EmMcwN/vqU+XK0r
         v05fdZAcH/WDl2NXOnUXziql1I7CNO2jE/k5Q=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756453919; x=1757058719;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=38d4rZaLR2nKxik/b4Zebk+B0WHyMTDWVQk0KLCvpMQ=;
        b=NGQ/qsydMKtQTxiffVOGwi7eVQ4kEXcMEZBGM9HNovNauky9AeOTTebtRP2/Sh14gj
         IgiP5CZ54UnsndZetI9/IN+W0WqlKqX2T06gFmCnkRPCNRswWrUN9/krBb+sgJCqWLfx
         HsytdbDdMglO6JlSVYWjBsU4yySuEqJcNXjMN66+k14nZ0Pd7lTz9KYa0pH0W+zhrkF1
         j4koNyGYYUIV4hN2ChWhbCs6L3NfCcNoIz+gCQKkvvOJqFW2vi2URNAjrBsy3CYFHbv4
         +lGglKSr65hSfDtZ6IegLrWGzZcmWjrILKxGNjd6pO+IFz0Gf3IOCtYS/0WRsGXhX4B3
         TbTg==
X-Gm-Message-State: AOJu0YyyCb6BV9Rno4n/TlmU78TZRInvrP8JPK0V9pvPZo5LA41c/TVs
	+v6jb/PalGQinaFNobF6Pv9+VmGbyfmf9KfIMYG2abt6Wt198ntvxRZ+NyPeTSbJKN+NyNOc9l1
	N6dQj
X-Gm-Gg: ASbGncsmWr2g77aMQbK24nY862ZzxZvLyQIQNYSiuKtfuWWt9Srq/vGptDvoyPDM/3M
	1PO0jNY/DBkl7pn1/wqUf+52/vTH7f0EeSk2y8yuz8lnE41G7PsF8UNwGKgjd2OKa2H2kH+WUuQ
	7uoPcBZ3IeHromCPFE5gLQ9O6ekJxHUI/2nN5GhOVRwgz8wIeSYwWib1GLSEJstA9i2SLf9Anq+
	EeqRNATS1J4FwCZ6K1eS9gt32JX5nD5sDIMKWJHtmnzNdoHHV3oAXWN04gkpjihG7EzLnqY+gds
	/UkOWJC7dooxgFM2ZdADBBglyltC5jVV5zbA8ilLeB8t4qSgGA23dkJBclyLAbQU+Tt7eAGdzJE
	NEvUmdMRnlll1Q19ovy/vX2z6biUTXqvTo0NFN9TUPVsP+N6CAaNf1NOXPr6W5TgHfA==
X-Google-Smtp-Source: AGHT+IH76RoW2TQwDKkKpPzynJPFNXyh/+lygZzxdRUao7nA0W8NyxXW03yTfr3gG28PSkzbFuLV2Q==
X-Received: by 2002:a05:6000:2891:b0:3cd:96bb:b948 with SMTP id ffacd0b85a97d-3cd96bbc28fmr4991561f8f.47.1756453918681;
        Fri, 29 Aug 2025 00:51:58 -0700 (PDT)
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>
Subject: [PATCH] x86/pvshim: disable PDX compression in PV shim defconfig
Date: Fri, 29 Aug 2025 09:51:54 +0200
Message-ID: <20250829075154.48787-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

There's no need for PDX compression given the memory map provided by Xen
to guests is contiguous, turn off the feature by default in the PV shim
defconfig.

Reported-by: Jan Beulich <jbeulich@suse.com>
Fixes: c5c45bcbd6a1 ('pdx: introduce a new compression algorithm based on region offsets')
Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/arch/x86/configs/pvshim_defconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/arch/x86/configs/pvshim_defconfig b/xen/arch/x86/configs/pvshim_defconfig
index c58c29adb0bf..24f4e4857dde 100644
--- a/xen/arch/x86/configs/pvshim_defconfig
+++ b/xen/arch/x86/configs/pvshim_defconfig
@@ -7,6 +7,7 @@ CONFIG_PV_SHIM_EXCLUSIVE=y
 CONFIG_NR_CPUS=32
 CONFIG_EXPERT=y
 # Disable features not used by the PV shim
+CONFIG_PDX_NONE=y
 # CONFIG_XEN_SHSTK is not set
 # CONFIG_XEN_IBT is not set
 # CONFIG_GRANT_TABLE is not set
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri Aug 29 08:01:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 08:01:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100824.1454116 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uru2c-0003ib-M9; Fri, 29 Aug 2025 08:00:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100824.1454116; Fri, 29 Aug 2025 08: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 1uru2c-0003iU-JX; Fri, 29 Aug 2025 08:00:58 +0000
Received: by outflank-mailman (input) for mailman id 1100824;
 Fri, 29 Aug 2025 08:00:57 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1uru2b-0003iO-6R
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 08:00:57 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1uru2a-00CWTA-1o;
 Fri, 29 Aug 2025 08:00:56 +0000
Received: from [2a02:8012:3a1:0:a40e:c7d9:d4:3bff]
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1uru2a-007F8Q-1q;
 Fri, 29 Aug 2025 08:00: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=jSqVd3U1+aKxO9eEEI0wRLF+F3Vy8n421pGqeGWEODo=; b=Ruzwt4D3GcOAWUdoFgVzg6NVAz
	EihNBoc6B0xReaySJvKR50f2e7B+chmf5C27AMql2RDLurluwX+Sgq5HGa1Aqip9RAzNtAd7+J8aM
	84GKYOOjWiQ+W4nlZzAuxx1ikm9vKWmf5bnXaoc/Wtv7OmOyjWC/jlyuaeiaJXN5Vj3U=;
Message-ID: <7d988bb3-96e6-4c05-9bcf-c792f14bc4c4@xen.org>
Date: Fri, 29 Aug 2025 09:00:53 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 4/5] arm/mpu: Implement ioremap_attr for MPU
Content-Language: en-GB
To: Hari Limaye <hari.limaye@arm.com>, xen-devel@lists.xenproject.org
Cc: luca.fancellu@arm.com, Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1756379422.git.hari.limaye@arm.com>
 <53c6aa61bc0cefce369ffc3a9ff5a7060b5f4b20.1756379422.git.hari.limaye@arm.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <53c6aa61bc0cefce369ffc3a9ff5a7060b5f4b20.1756379422.git.hari.limaye@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Hari,

On 28/08/2025 12:12, Hari Limaye wrote:
> From: Luca Fancellu <luca.fancellu@arm.com>
> 
> Introduce helpers (un)map_mm_range() in order to allow the transient
> mapping of a range of memory, and use these to implement the function
> `ioremap_attr` for MPU systems.
> 
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> Signed-off-by: Hari Limaye <hari.limaye@arm.com>
> ---
> Changes from v2:
> - Propagate error to caller of is_mm_range_mapped, rather than panic
> 
> Changes from v1:
> - Use transient instead of temporary, and improve wording of comments
>    regarding transient mapping
> - Rename start, end -> base, limit
> ---
>   xen/arch/arm/include/asm/mpu/mm.h |  22 +++++
>   xen/arch/arm/mpu/mm.c             | 157 ++++++++++++++++++++++++++++--
>   2 files changed, 170 insertions(+), 9 deletions(-)
> 
> diff --git a/xen/arch/arm/include/asm/mpu/mm.h b/xen/arch/arm/include/asm/mpu/mm.h
> index 566d338986..efb0680e39 100644
> --- a/xen/arch/arm/include/asm/mpu/mm.h
> +++ b/xen/arch/arm/include/asm/mpu/mm.h
> @@ -101,6 +101,28 @@ int xen_mpumap_update(paddr_t base, paddr_t limit, unsigned int flags,
>    */
>   pr_t pr_of_addr(paddr_t base, paddr_t limit, unsigned int flags);
>   
> +/*
> + * Maps transiently a range of memory with attributes `flags`; if the range is
> + * already mapped with the same attributes, including an inclusive match, the
> + * existing mapping is returned. This API is intended for mappings that exist
> + * transiently for a short period between calls to this function and
> + * `unmap_mm_range`.
> + *
> + * @param base      Base address of the range to map (inclusive).
> + * @param limit     Limit address of the range to map (exclusive).
> + * @param flags     Flags for the memory range to map.
> + * @return          Pointer to base of region on success, NULL on error.
> + */
 > +void *map_mm_range(paddr_t base, paddr_t limit, unsigned int flags);

I think I am missing a couple of things:

  * The current use seems to be ioremap() which tends to be mapping for 
the lifetime of Xen. So I would not describe them as transient.
  * It is unclear to me why we need a different interface and can't use 
exist one. The name also doesn't make very clear that the mapping will 
be "transient" (whatever that means).

> +
> +/*
> + * Unmaps a range of memory if it was previously mapped by map_mm_range,
> + * otherwise it does not remove the mapping.
> + *
> + * @param base     Base address of the range to map (inclusive).
> + */
> +void unmap_mm_range(paddr_t base);
> +
>   /*
>    * Checks whether a given memory range is present in the provided table of
>    * MPU protection regions.
> diff --git a/xen/arch/arm/mpu/mm.c b/xen/arch/arm/mpu/mm.c
> index 33333181d5..337573f9d7 100644
> --- a/xen/arch/arm/mpu/mm.c
> +++ b/xen/arch/arm/mpu/mm.c
> @@ -332,31 +332,39 @@ static int xen_mpumap_update_entry(paddr_t base, paddr_t limit,
>       return 0;
>   }
>   
> -int xen_mpumap_update(paddr_t base, paddr_t limit, unsigned int flags,
> -                      bool transient)
> +static bool check_mpu_mapping(paddr_t base, paddr_t limit, unsigned int flags)
>   {
> -    int rc;
> -
>       if ( flags_has_rwx(flags) )
>       {
>           printk("Mappings should not be both Writeable and Executable\n");
> -        return -EINVAL;
> +        return false;
>       }
>   
>       if ( base >= limit )
>       {
>           printk("Base address %#"PRIpaddr" must be smaller than limit address %#"PRIpaddr"\n",
>                  base, limit);
> -        return -EINVAL;
> +        return false;
>       }
>   
>       if ( !IS_ALIGNED(base, PAGE_SIZE) || !IS_ALIGNED(limit, PAGE_SIZE) )
>       {
>           printk("base address %#"PRIpaddr", or limit address %#"PRIpaddr" is not page aligned\n",
>                  base, limit);
> -        return -EINVAL;
> +        return false;
>       }
>   
> +    return true;
> +}
> +
> +int xen_mpumap_update(paddr_t base, paddr_t limit, unsigned int flags,
> +                      bool transient)
> +{
> +    int rc;
> +
> +    if ( !check_mpu_mapping(base, limit, flags) )
> +        return -EINVAL;
> +
>       spin_lock(&xen_mpumap_lock);
>   
>       rc = xen_mpumap_update_entry(base, limit, flags, transient);
> @@ -465,10 +473,141 @@ void free_init_memory(void)
>       BUG_ON("unimplemented");
>   }
>   
> +static int is_mm_range_mapped(paddr_t start, paddr_t end, uint8_t *idx)
> +{
> +    ASSERT(spin_is_locked(&xen_mpumap_lock));
> +
> +    /*
> +     * 'idx' will be INVALID_REGION_IDX for rc == MPUMAP_REGION_NOTFOUND and
> +     * it will be a proper region index when rc >= MPUMAP_REGION_FOUND.
> +     */


I feels this comment belongs on top of ``is_mm_range_mapped()`` because 
it describe the behavior of the function.

> +    return mpumap_contains_region(xen_mpumap, max_mpu_regions, start, end, idx);
> +}
> +
> +static bool is_mm_attr_match(pr_t *region, unsigned int attributes)
> +{
> +    bool ret = true;
> +
> +    if ( region->prbar.reg.ro != PAGE_RO_MASK(attributes) )
> +    {
> +        printk(XENLOG_WARNING
> +               "Mismatched Access Permission attributes (%#x0 instead of %#x0)\n",
> +               region->prbar.reg.ro, PAGE_RO_MASK(attributes));
> +        ret = false;
> +    }
> +
> +    if ( region->prbar.reg.xn != PAGE_XN_MASK(attributes) )
> +    {
> +        printk(XENLOG_WARNING
> +               "Mismatched Execute Never attributes (%#x instead of %#x)\n",
> +               region->prbar.reg.xn, PAGE_XN_MASK(attributes));
> +        ret = false;
> +    }
> +
> +    if ( region->prlar.reg.ai != PAGE_AI_MASK(attributes) )
> +    {
> +        printk(XENLOG_WARNING
> +               "Mismatched Memory Attribute Index (%#x instead of %#x)\n",
> +               region->prlar.reg.ai, PAGE_AI_MASK(attributes));
> +        ret = false;
> +    }
> +
> +    return ret;
> +}
> +
> +void *map_mm_range(paddr_t base, paddr_t limit, unsigned int flags)
> +{
> +    paddr_t start_pg = round_pgdown(base);
> +    paddr_t end_pg = round_pgup(limit);
> +    void *ret = NULL;
> +    uint8_t idx;
> +    int rc;
> +
> +    if ( !check_mpu_mapping(start_pg, end_pg, flags) )
> +        return NULL;
> +
> +    spin_lock(&xen_mpumap_lock);
> +
> +    rc = is_mm_range_mapped(start_pg, end_pg, &idx);
> +    if ( rc < 0 ) {

Coding style:

if ( rc < 0 )
{

> +        printk(XENLOG_WARNING
> +               "Cannot handle overlapping MPU memory protection regions\n");
> +        goto out;
> +    }
> +
> +    if ( idx != INVALID_REGION_IDX )
> +    {
> +        /* Already mapped with different attributes */
> +        if ( !is_mm_attr_match(&xen_mpumap[idx], flags) )
> +        {
> +            printk(XENLOG_WARNING
> +                   "Range %#"PRIpaddr"-%#"PRIpaddr" already mapped with different flags\n",
> +                   start_pg, end_pg);
> +            goto out;
> +        }
> +
> +        /* Already mapped with same attributes */
> +        ret = maddr_to_virt(base);
> +        goto out;
> +    }
> +
> +    if ( !xen_mpumap_update_entry(start_pg, end_pg, flags, true) )
> +    {
> +        context_sync_mpu();
> +        ret = maddr_to_virt(base);
> +    }
> +
> + out:
> +    spin_unlock(&xen_mpumap_lock);
> +
> +    return ret;
> +}
> +
> +void unmap_mm_range(paddr_t base)
> +{
> +    uint8_t idx;
> +    int rc;
> +
> +    spin_lock(&xen_mpumap_lock);
> +
> +    /*
> +     * Mappings created via map_mm_range are at least PAGE_SIZE. Find the idx
> +     * of the MPU memory region containing `start` mapped through map_mm_range.
> +     */
> +    rc = is_mm_range_mapped(base, base + PAGE_SIZE, &idx);
> +    if ( rc < 0 ) {

Style:

if ( rc < 0 )
{

> +        printk(XENLOG_WARNING
> +               "Cannot handle overlapping MPU memory protection regions\n");

I think this message is incorrect. AFACT, If is_mm_range_mapped() 
returns a negative value, then it means the region is unmapped.

> +        goto out;
> +    }
> +
> +    if ( idx == INVALID_REGION_IDX )
> +    {
> +        printk(XENLOG_ERR
> +               "Failed to unmap_mm_range MPU memory region at %#"PRIpaddr"\n",
> +               base);
> +        goto out;
> +    }
> +
> +    /* This API is only meant to unmap transient regions */

So the transient flag is more for debugging purpose? But if it really 
happens then...

> +    if ( !region_is_transient(&xen_mpumap[idx]) )
 > +        goto out;

... why do we silently fail? Surely this would indicate an error on the 
system which we want to know in debug build.

> +
> +    /* Disable MPU memory region and clear the associated entry in xen_mpumap */
> +    disable_mpu_region_from_index(idx);
> +    context_sync_mpu();
> +
> + out:
> +    spin_unlock(&xen_mpumap_lock);
> +}
> +
>   void __iomem *ioremap_attr(paddr_t start, size_t len, unsigned int flags)
>   {
> -    BUG_ON("unimplemented");
> -    return NULL;
> +    if ( !map_mm_range(start, start + len, flags) )
> +        return NULL;
> +
> +    /* Mapped or already mapped */
> +    return maddr_to_virt(start);
>   }
>   
>   /*

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Fri Aug 29 08:11:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 08:11:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100847.1454128 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uruCP-0005vK-QJ; Fri, 29 Aug 2025 08:11:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100847.1454128; Fri, 29 Aug 2025 08:11: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 1uruCP-0005vD-Ln; Fri, 29 Aug 2025 08:11:05 +0000
Received: by outflank-mailman (input) for mailman id 1100847;
 Fri, 29 Aug 2025 08:11:04 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xaUo=3J=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1uruCO-0005v7-AZ
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 08:11:04 +0000
Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com
 [2a00:1450:4864:20::635])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b337963f-84af-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 10:11:01 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-afcb7a3b3a9so263841266b.2
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 01:11: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
 a640c23a62f3a-afefc7eec3bsm149929266b.5.2025.08.29.01.10.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 29 Aug 2025 01:11: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>
X-Inumbo-ID: b337963f-84af-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756455060; x=1757059860; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=NahLq4IGlBeVOTlkJ2bCOMiaMxsizV54WpCS2Zb5/dg=;
        b=NyL+F/2E1o+49xHCnrR53LmCAtPyHaL663/XFStRstvyn8fAYO2jspX3gfgpYnYfZK
         iB3xnmJiSEJ24qM0bdINy3ug39dWPRY5KLdbxQaJ0s3Zq9pQcDi7dq4+h9irbP/PCa4i
         V1llfw3dEQnGxv76Jqmx0rsoSDKiqcC1aPB+kA6WwWiR0WAtNkhDebyh/ttDBBCODwmn
         2lXsm2OnqSev6+/ign5GKbgxkHNoCx85Jt/TKL8gJ8DuC1ra4CZZQCkBIBOPiC0rxKLI
         VPPKqAF+lLSWRGjaCjZnVDj2Ux7/4I0tETlB0MhItOUtrt6Cstx3ezOzvlmq9cgPiJXF
         sV7w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756455060; x=1757059860;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NahLq4IGlBeVOTlkJ2bCOMiaMxsizV54WpCS2Zb5/dg=;
        b=uokyuTjekSBAOafxHTQsmGnCsP7TK2egIg3Jy+d3EOZ6bEqJqwPM+Hrx8Kk5UmRM6/
         5y6fZdV0qBaoHpGAO7dRmQY45dbclIITzPbwv3DLUFfks2KEsmHrMKqpUwQRpqIgIxj9
         E9hxHJoD24BF+QVyN4dDjDEd4OrxP2hlv/gKngtnVZ2bGK8Lu75wOBlG9oCin9Mo1WLX
         WZ4gHUfL3mz0WmLYLboutxOtsqKxCB4qQ1O2aa8AuRD6J9aLlGl68GSn9bOgPtgymUfE
         jkJFt6q3Z3pnqlfHYrQrn549Zr9Z0y3jqlWt2ZeJC3JFFyC5FmBezhjc5oZknfzku0ra
         gU1g==
X-Forwarded-Encrypted: i=1; AJvYcCXuq8uFUKhjExUSZld5db0qAikYFG0blkJ+G4RJxQK6YF9VK9UXBCNh0eR402u6f2FeTVztMT8QQ/M=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw9BSSCn4xnamSMczvewWH4dp3wW60Ms3ocgQV4vPUKlDqNGw2u
	Xxt72t3T8WRxGGblQLbW19iHuL0zJnb2pxGI+mVDh+0kqCP5ntuAhJOC9yjKnVZndQ==
X-Gm-Gg: ASbGncsupdwsZ6XQvtP7TcACLAtf/HroOQ/jYqeVg/KMO63xkrfoK47eMm0LEY0mGV8
	MvoeDp3w0ObzjTCFgr7Kixn70cTaddEjkrE0RIb2l3w4PaTP2eq4RouFUzAd9nEhIwPcqs0k1IY
	bAvZIyxhVQHw4FmsuwIdkQC3t6Ogq7C7Mv/cMVL+YQaXGrkC/w/0eEMZN+Wj4QATP1/T/goIZu7
	48jxaJNR8M7+d+j5rvOEco50Sjw9U5s0820WBxhrNCUl792w06Ot3DuAKrBJEU8Rw+JxXejWE1q
	oXp5h9Fc6IaZ201QhrLkIbd8oSrl+FvoP/RH5QPcg7pmSQGZw8HKCCrAfKCjkYy/rGZAPTfCJzk
	vS3U4a7RiX9G+DHmsLLyY26xn0pOCO9Ke+FDE+PRZsjJH6lGpFEFRGJDIKhz47JteonWAPAzINl
	DtpbjR3QU=
X-Google-Smtp-Source: AGHT+IGDnoOkjq+h3cCXfR73XiAbeIj9lkbdLO4jH/q2G4bPBXN9ExhDzKNl7D9E1uzN+EpPf7G+Yg==
X-Received: by 2002:a17:907:720d:b0:ae6:d47a:105d with SMTP id a640c23a62f3a-afe294b236fmr2617296066b.55.1756455060330;
        Fri, 29 Aug 2025 01:11:00 -0700 (PDT)
Message-ID: <e11d81c9-cb3b-4838-b25d-50545deba64b@suse.com>
Date: Fri, 29 Aug 2025 10:10:59 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/pvshim: disable PDX compression in PV shim defconfig
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20250829075154.48787-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: <20250829075154.48787-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 29.08.2025 09:51, Roger Pau Monne wrote:
> There's no need for PDX compression given the memory map provided by Xen
> to guests is contiguous, turn off the feature by default in the PV shim
> defconfig.
> 
> Reported-by: Jan Beulich <jbeulich@suse.com>
> Fixes: c5c45bcbd6a1 ('pdx: introduce a new compression algorithm based on region offsets')
> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

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

Not sure if a Fixes: tag is really appropriate here. The shim is working as
is, just carrying code which won't ever be used.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 08:23:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 08:23:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100866.1454136 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uruOl-0007zv-Qi; Fri, 29 Aug 2025 08:23:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100866.1454136; Fri, 29 Aug 2025 08: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 1uruOl-0007zo-OA; Fri, 29 Aug 2025 08:23:51 +0000
Received: by outflank-mailman (input) for mailman id 1100866;
 Fri, 29 Aug 2025 08:23:51 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=LjVN=3J=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1uruOl-0007zi-9i
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 08:23:51 +0000
Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com
 [2a00:1450:4864:20::633])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7da14f8a-84b1-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 10:23:50 +0200 (CEST)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-afcb78f5df4so310706866b.1
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 01:23:50 -0700 (PDT)
Received: from [192.168.1.5] (user-109-243-64-38.play-internet.pl.
 [109.243.64.38]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afefc7eedb5sm154643166b.6.2025.08.29.01.23.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 29 Aug 2025 01:23: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>
X-Inumbo-ID: 7da14f8a-84b1-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756455829; x=1757060629; darn=lists.xenproject.org;
        h=subject:from:to:content-language:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=2BzkoZZ1sFyAEbwIhMMuSx1QvORDq+Ump/i0mVSkRos=;
        b=TWcTv0yzTRON4cdzMwJLXQZsW6AhG0ZyiGCAfkOt7UFjd0PhVw4PQKDpFhNI0ruG0n
         l16LiS0IXWmGFMWR9lGjEUb4fgt33G8nSB3hLb5R4TgCv/prXhOnX/ZDxSUD65WVlaBF
         aLDvqfd8eoyrTGk7DJPBqum/gE3TRCwcyaeWHUZ0sg2/23VpOBMExVZnRk+X9JV4tXzZ
         oZ05p7JzcGgnLfph1Jdr9HMZAdVCk5bFkQyfGR5REEnKqRUFjus1trHzAfJWz99eZrU/
         ftAxyflgKbOjqPtghK7ZTkocg2csAw8T+/8BnNE2utpfWg0v0VlvzOVz6AixxqK+Jnbx
         /WTw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756455829; x=1757060629;
        h=subject:from:to:content-language:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=2BzkoZZ1sFyAEbwIhMMuSx1QvORDq+Ump/i0mVSkRos=;
        b=ZhA4OSw/0l3AlZkdIczzPwkoEbo1L7YsBft1PrU1ZCjFm3g8uoPyKP/ln6Yj5+LBBv
         7XBPwMp/viZLZR9x1cU2wowgPIKfUz+dxU7IjA6PF8yxyMMsSRkPzC22mITUh5mwO71c
         OpHZarvUNEvNy9FjpxXqZufMtwFpSHyjP86mlH8UTIitJAq86m/hLLo+SaNByDMsDUtw
         EyT/sQcngTP0ejBtOOr//4PSj4JLhVHGM17V6T8fOOlKJs4HP2LwtVcvtnDHsrn0Vh5W
         Bwi5ceNo/ksCsUyjnzekSyt2GABVmE6SkTZTq8eDAWUv5crh2908QpjkvbIrXDQJ34Re
         fMmw==
X-Gm-Message-State: AOJu0YzY7qarCAa6Cj7gjE6WsKHq/fgb5gdamEJSkDK80gBmL+vH3rub
	YrIUNEeP/8vS84ix1O7ZAQzGRDqmA5wPZlEgpYz0yoyzrMl2TGpwdLmDqschgQ==
X-Gm-Gg: ASbGncs80tD3peftttmpxXoATNQbv8m+SbiBH6AkveNKebrWZdpbY5tEitGnwhssl+l
	p4R7TaGJ/vWkYjkHXrj9oZ9D5tioLxwJDoSGDEy8d0NFzWixw2aENMR1bMprJVx+efETraiTIaR
	oB3Ov+UTvmmQ8fTT8X+ubgf52prIfKsZOk8FX5qbl629ptAI79eY07BS9zBweYpYTka9PjxZG9F
	0/nGBb1zVpRAZ2m9qu4KookahW0/xp05gaHxFDlZncDzfPlhwgj8VUdf6DM0w/gIsnMvBFWtpCn
	b6h7nPF+xegtGxaX3/oH0cJ/yjkCwfHo3Q0vdaWejSHUCgsaRKY4YhUCA3RjOJxczOFNd7/r0+y
	jCdq9Bw7lmBzm3xmMDloOmxt3CLGGXl2K/vsWwjjLgl6oD5bN1C+EwMaMA5u9tLmhkXR6Y9I=
X-Google-Smtp-Source: AGHT+IHIliGvjzXdjJKlt/hCx5okVr+QM/vdOeHWZkYwyyWKbKavy5zAbJVUC01CO2MYlLTTxftKmA==
X-Received: by 2002:a17:907:96a9:b0:aff:8fe:357e with SMTP id a640c23a62f3a-aff08fe3952mr110091266b.60.1756455828889;
        Fri, 29 Aug 2025 01:23:48 -0700 (PDT)
Content-Type: multipart/alternative;
 boundary="------------0PZZI9GL0C2lCw8WsorB5PHG"
Message-ID: <4c248773-0f14-425b-b784-d5e9801f43f8@gmail.com>
Date: Fri, 29 Aug 2025 10:23:47 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: Xen-devel <xen-devel@lists.xenproject.org>,
 Community Manager <community.manager@xenproject.org>,
 "committers@xenproject.org" <committers@xenproject.org>
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Feature Freeze Extension until September 5, 2025

This is a multi-part message in MIME format.
--------------0PZZI9GL0C2lCw8WsorB5PHG
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hello Community,

I would like to announce that the Feature Freeze period is extended until
*Friday, September 5, 2025*, as we have a number of patch series that
are very close to being merged.

Have a good day.

Best regards,
  Oleksii

--------------0PZZI9GL0C2lCw8WsorB5PHG
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <pre data-start="147" data-end="177">Hello Community,</pre>
    <pre data-start="179" data-end="364">I would like to announce that the Feature Freeze period is extended until
<strong data-start="253" data-end="282">Friday, September 5, 2025</strong>, as we have a number of patch series that
are very close to being merged.</pre>
    <pre data-start="366" data-end="384">Have a good day.</pre>
    <pre data-start="386" data-end="411">Best regards,
 Oleksii</pre>
  </body>
</html>

--------------0PZZI9GL0C2lCw8WsorB5PHG--


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 08:48:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 08:48:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100879.1454147 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urumM-0002gp-MF; Fri, 29 Aug 2025 08:48:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100879.1454147; Fri, 29 Aug 2025 08:48:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urumM-0002gi-J6; Fri, 29 Aug 2025 08:48:14 +0000
Received: by outflank-mailman (input) for mailman id 1100879;
 Fri, 29 Aug 2025 08:48:13 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=I7Ro=3J=cloud.com=mark.syms@srs-se1.protection.inumbo.net>)
 id 1urumL-0002gc-9q
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 08:48:13 +0000
Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com
 [2a00:1450:4864:20::62d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e4541b52-84b4-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 10:48:11 +0200 (CEST)
Received: by mail-ej1-x62d.google.com with SMTP id
 a640c23a62f3a-afebe21a1a3so311309566b.0
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 01:48: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>
X-Inumbo-ID: e4541b52-84b4-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1756457290; x=1757062090; 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=/wR86rOeovbcehjRsjPioiloHDl9UqjtMkmefBWaXrU=;
        b=BSP8sq+qJrMVa9AdUDEOUWHSatXLxJcLtUT1LdygjQiQHdDfZcDI7bKO/nlvM9w5k/
         r71z58cuQMAfe6vCaKLSvNQRcSH1sOXmPXhSeKl4YqABYRq0KxEtcFU2Eqx2XZ+8DkdT
         MS/ZBvGNSYA8QLlGGSaTAYg+fl+L5b855qul8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756457290; x=1757062090;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=/wR86rOeovbcehjRsjPioiloHDl9UqjtMkmefBWaXrU=;
        b=uvQEzg4wpij3haVHBu3qKPJcBaMXq/6QHJoP9YuzPC4a56uOZQeTO+ywr5zKxKTo7o
         1SqtUKXPlXdXE8KKJ+exjfeylDQwiNSNdGWFAWW1MH2il9IWWwKXwNIDcWRtbgj4ObND
         0oaXEzdCEP2wEPv85XeuJWKcFNknYP3YCgms/7XySgYN7EdLFDv139DJEn4MFHW6s3uo
         4MiF0dvE4FlwiFUCi2Gs9mph4XWVbZci0Zqpz75wNUrsCUQ/LP6AnaOgDvz9CZR/T3xg
         sHo25aBNBXL/72rxwynWd2wX3dcaI/HExdIIuKTeRRVWhM8nh4GVhb2bn5J0+nIgTWzD
         Ok5A==
X-Forwarded-Encrypted: i=1; AJvYcCWtA2p2kTKwS7OWSz9QpwiQLCHIIEVHA+MF9AXMlidlvDpOWm0H3UjAdCccptzU09rMivvrlJdiw+8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyPSRW4w7qEMDSw9ErSORnDoc6sR50r2r9nFe/vMuwDtzR0QVb5
	Xr5/ZRgYylG7jmtrBma5NaT0CuLKBp/AfrIVa2G1FjCmFNbLUudmsX+uiEdUFdsSuqTNY621gmb
	HSwBlXrEQ+kV4XEdTp32YFCnQbu9c0EFPppZGw2kQN3LIgl5k+9UoL/U=
X-Gm-Gg: ASbGncsbIstn2GaY/Yqi0Lb1inK2xkKtcvBEhOPi5u/x8kBoJ+Y3jeYEOP4QZAweb2R
	uY/GzDAjBd/bckBFCSkGE5Po46AKlHa2+EjOSROFSaHV30Q+S5iV0BknMKrD11d0Z1xBU0hdwJ3
	xmrw9nre1I4jAURUz5Pu5SW+VOO6MHxfC6pp1fuQ3HQAZVS10b6lH3disfTyL0CLwqwPJ+Ky3rH
	ehmq5MyqDtZVDgdfsw=
X-Google-Smtp-Source: AGHT+IFnYmLPFs8b90UDmuWXrBJG3qnSC/RPieImWqQ3J5srYn4cU8bHIaHq1DvGA5C9/a+UlPVQ1gOZmAUC1jWBwN4=
X-Received: by 2002:a17:906:c104:b0:afe:82d3:4499 with SMTP id
 a640c23a62f3a-afeafec64c5mr1088112266b.25.1756457290283; Fri, 29 Aug 2025
 01:48:10 -0700 (PDT)
MIME-Version: 1.0
References: <20250828093821.372024-1-mark.syms@cloud.com> <aLFZrnHpul61b-5E@Mac.lan>
In-Reply-To: <aLFZrnHpul61b-5E@Mac.lan>
From: Mark Syms <mark.syms@cloud.com>
Date: Fri, 29 Aug 2025 09:47:57 +0100
X-Gm-Features: Ac12FXwiyXFqkPvlUh7iebr9fijXTflgdDtFwPAnBLxwdVeDAbYg62tr2IB6wdQ
Message-ID: <CAPYKksWZGnYSGyzgHVoOzVZAVWP4YPa8DEm7GEjAYHwDWTmovQ@mail.gmail.com>
Subject: Re: [PATCH] Clarify the cases where BLKIF_RSP_EOPNOTSUPP can be returned.
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: jgross@suse.com, andrew.cooper3@citrix.com, xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 29 Aug 2025 at 08:41, Roger Pau Monn=C3=A9 <roger.pau@citrix.com> w=
rote:
> I think there's no need to mention the specific operations. FWIW,
> blkback will return BLKIF_RSP_EOPNOTSUPP for any request type it
> doesn't understand (see dispatch_other_io()), which covers any
> possible request type that's not yet defined:
>
> /* Operation not supported. */
> #define BLKIF_RSP_EOPNOTSUPP  -2
>
> Should be fine.

OK, I'll reduce that comment to the minimum then, I was just trying to
be helpful to future us :)


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 08:56:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 08:56:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100889.1454157 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uruuC-0004PJ-DX; Fri, 29 Aug 2025 08:56:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100889.1454157; Fri, 29 Aug 2025 08:56: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 1uruuC-0004PC-AQ; Fri, 29 Aug 2025 08:56:20 +0000
Received: by outflank-mailman (input) for mailman id 1100889;
 Fri, 29 Aug 2025 08:56:19 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oFyT=3J=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1uruuB-0004P6-40
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 08:56:19 +0000
Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com
 [2a00:1450:4864:20::42f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 06b93bf4-84b6-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 10:56:18 +0200 (CEST)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-3c79f0a604aso1086093f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 01:56:18 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3cf270fc11dsm2495695f8f.4.2025.08.29.01.56.16
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 29 Aug 2025 01:56: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>
X-Inumbo-ID: 06b93bf4-84b6-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756457777; x=1757062577; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=TEuOslCkTgll46YNahAgnaUJhpCYVVZsAhHCwmfTjU8=;
        b=HltATjrNDlNrzb9/ZPOcNN6laGfNQUsB63Czgsnm/k4vqstkwZ6Mx10oDW05tfm6YA
         siu8xq/hjnil6H1tQ9DWpGY1kxaM7qz+vS2XYygk5C1gZYmgaFEJQPWK3EeJqALBAOVY
         jd0nWYVdDqooXpVN05OMbYbFNwT1NsFGMrcZs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756457777; x=1757062577;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=TEuOslCkTgll46YNahAgnaUJhpCYVVZsAhHCwmfTjU8=;
        b=QnOk0ykNW8rkyuRpRrFdbPeG53YSh+zSces0uPsPfPcAOj9mPlrq6tHgtuOc5qslTg
         Femu8hYFQB80dMz8LDUEXPCLVXGIyaqjm7AhYLf9JWXWmYTz4fUGMqu3LAwxzzGKbm2d
         aFqpyWYMYxU1gfbNbYRZZcVw3bQYSRLR3vsz72pExf/8T9hPfJvbZQ8w84rR1Y9T59Es
         Div+FcEMOSInDjHzuZxdSmm0vvwILFmze5fG93X+EK/VBkEO++IK1MBNJVoWWPa/NGGE
         LpzW4vCNzW1xxAoTt2Nqz8HeEOHSsEVVhwQt1QENpE4w2dRm3GO+R6tMZmUno7Se6uXN
         wvoQ==
X-Forwarded-Encrypted: i=1; AJvYcCWqtTNMSQ65/KUbB4WL1xx8+bgm2VEEeUtxu1SVqk84B5C8jsemx62Js66JQDezb3eCwqgzTou3Mxs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyTqvWCFw0xS0BTjPmO7zxJwvq8fPjywxvm0Sf4E/JUPGbBjDMI
	fVjq5lkSque5t+Qft0KJnCvJiDimAfI83y5vPjsEjrXOoRcfQh0TAle3c0JNBdpySyg=
X-Gm-Gg: ASbGncuhN1zyMsU9Sh4c27NoZiTQKUGbuE3uOFDfwRsFJhku7HJLRDcc7ffkOFnUIm/
	ZqP4Ht4uNMEhmtSasYomRKI+NIUje/mRpGqDLqUY5edUQk+Fs2eCh2fPc3txOTC3vqqYfy7NUon
	ilt5923XMQJlGBDVh70T2oQ1R2RTdlzMKyMoxf0BGh5OqKt4jZweHNEcTOXb1clRiip5LqMe4Xm
	zi7aQGIegnXankZRYqA9Np/VbailNH+stcqE+Icuf77wo6uqiwbOpIZe6XPQDtJIM1ILR+pUzq+
	/bHtA6ECGfvNB8mkmiTBSn+fhsZ6SXgqFgxDQoeOG/nGuIHbdQH0ugM1ZfQvVOsZIq5OPsUlr2j
	AZKbyEnWW7H6Xr3hoTNabcX9vVZJc9UVGEpHMFS5RoflBPUyRAWnIIn62G0CJvUK9Ag==
X-Google-Smtp-Source: AGHT+IEzNyVp1BSzCTFjtXz5xOnwt46meqNrPp1wZjUszgNh8wUWpBssLKsvQlefCJnmzmGP/P1KmQ==
X-Received: by 2002:a05:6000:1788:b0:3c0:7e02:67b6 with SMTP id ffacd0b85a97d-3c5dd1e15f3mr19592719f8f.62.1756457777344;
        Fri, 29 Aug 2025 01:56:17 -0700 (PDT)
Date: Fri, 29 Aug 2025 10:56:15 +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>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH] x86/pvshim: disable PDX compression in PV shim defconfig
Message-ID: <aLFrLxdcb2nIkim6@Mac.lan>
References: <20250829075154.48787-1-roger.pau@citrix.com>
 <e11d81c9-cb3b-4838-b25d-50545deba64b@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <e11d81c9-cb3b-4838-b25d-50545deba64b@suse.com>

On Fri, Aug 29, 2025 at 10:10:59AM +0200, Jan Beulich wrote:
> On 29.08.2025 09:51, Roger Pau Monne wrote:
> > There's no need for PDX compression given the memory map provided by Xen
> > to guests is contiguous, turn off the feature by default in the PV shim
> > defconfig.
> > 
> > Reported-by: Jan Beulich <jbeulich@suse.com>
> > Fixes: c5c45bcbd6a1 ('pdx: introduce a new compression algorithm based on region offsets')
> > Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> 
> Acked-by: Jan Beulich <jbeulich@suse.com>
> 
> Not sure if a Fixes: tag is really appropriate here. The shim is working as
> is, just carrying code which won't ever be used.

I was borderline also, but I felt it was important to notice that the
change here should ideally had been part of that commit.  Do you have
a recommendation of any other tag I could use for that purpose?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 08:56:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 08:56:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100891.1454167 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uruuQ-0004iV-Jn; Fri, 29 Aug 2025 08:56:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100891.1454167; Fri, 29 Aug 2025 08: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 1uruuQ-0004iO-H4; Fri, 29 Aug 2025 08:56:34 +0000
Received: by outflank-mailman (input) for mailman id 1100891;
 Fri, 29 Aug 2025 08:56:33 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=I7Ro=3J=cloud.com=mark.syms@srs-se1.protection.inumbo.net>)
 id 1uruuP-0004P6-Kb
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 08:56:33 +0000
Received: from na1pdmzitismtp02.tibco.com (unknown [160.101.131.9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0f607385-84b6-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 10:56:33 +0200 (CEST)
Received: from mewpvdipd1010.corp.cloud.com (unknown [10.113.40.46])
 by na1pdmzitismtp02.tibco.com (Postfix) with ESMTP id 3ABD2810A2A8;
 Fri, 29 Aug 2025 04:55:49 -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>
X-Inumbo-ID: 0f607385-84b6-11f0-8adc-4578a1afcccb
From: Mark Syms <mark.syms@cloud.com>
To: jgross@suse.com,
	roger.pau@citrix.com,
	andrew.cooper3@citrix.com,
	xen-devel@lists.xenproject.org
Cc: Mark Syms <mark.syms@cloud.com>
Subject: [PATCH v2] Clarify the cases where BLKIF_RSP_EOPNOTSUPP can be returned.
Date: Fri, 29 Aug 2025 09:56:27 +0100
Message-ID: <20250829085627.407307-1-mark.syms@cloud.com>
X-Mailer: git-send-email 2.50.1
In-Reply-To: <20250828093821.372024-1-mark.syms@cloud.com>
References: <20250828093821.372024-1-mark.syms@cloud.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Previously this said it would only happen on barrier writes. Except
the documentation blocks for
 * feature-flush-cache
 * feature-discard

Also say that they can return this error.

Signed-off-by: Mark Syms <mark.syms@cloud.com>

---
v2: simplify to remove references to features as requested.
---
 xen/include/public/io/blkif.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/include/public/io/blkif.h b/xen/include/public/io/blkif.h
index 8407453324..e96c9af7c6 100644
--- a/xen/include/public/io/blkif.h
+++ b/xen/include/public/io/blkif.h
@@ -710,7 +710,7 @@ typedef struct blkif_response blkif_response_t;
 /*
  * STATUS RETURN CODES.
  */
- /* Operation not supported (only happens on barrier writes). */
+ /* Operation not supported. */
 #define BLKIF_RSP_EOPNOTSUPP  -2
  /* Operation failed for some unspecified reason (-EIO). */
 #define BLKIF_RSP_ERROR       -1
-- 
2.50.1



From xen-devel-bounces@lists.xenproject.org Fri Aug 29 09:15:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 09:15:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100932.1454176 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urvCX-0007p6-4Y; Fri, 29 Aug 2025 09:15:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100932.1454176; Fri, 29 Aug 2025 09:15: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 1urvCX-0007oz-1b; Fri, 29 Aug 2025 09:15:17 +0000
Received: by outflank-mailman (input) for mailman id 1100932;
 Fri, 29 Aug 2025 09:15:15 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=UceS=3J=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1urvCV-0007ot-1R
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 09:15:15 +0000
Received: from fout-a3-smtp.messagingengine.com
 (fout-a3-smtp.messagingengine.com [103.168.172.146])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id aacb3009-84b8-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 11:15:13 +0200 (CEST)
Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44])
 by mailfout.phl.internal (Postfix) with ESMTP id 740F4EC0369;
 Fri, 29 Aug 2025 05:15:11 -0400 (EDT)
Received: from phl-mailfrontend-01 ([10.202.2.162])
 by phl-compute-04.internal (MEProxy); Fri, 29 Aug 2025 05:15:11 -0400
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 29 Aug 2025 05:15:10 -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>
X-Inumbo-ID: aacb3009-84b8-11f0-8adc-4578a1afcccb
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=1756458911;
	 x=1756545311; bh=5DlVNJiRSG3ClIh5MMnZyn2st364JG/yQj8tf1GuKm8=; b=
	rk0UeQHCbl3EhbcZPfIFdwgZDRts4FWA0+9LJUI5jtKsYE+4VfuVP7j1HcHH6uTL
	cfhuDzvcBH+8tR+xRYA9H0efdak/MZ4M5xcPFjFU1mnwHIlMJg9eh8zJOJzHIs3O
	kMvtSGo2KGJFtAGJ3ByLMdrcsTAdWMcRVpxDBweg/29bMSWsxGon4gneafP0AtYd
	nTKMH/Brw0598DY+ChwJueYkpWjZsK8Q/cMbH5LQ8BptRtDKdNB4UV8Of7BPeHIZ
	CjQfZ5i0xsGcf6bPBnQZp8ZMvsTW2do1E20kKUmPMVIdpWVf/MNWresKwbAtZfC8
	OOdBz9+k6gw7B4Rq4Wcw2Q==
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=fm1; t=
	1756458911; x=1756545311; bh=5DlVNJiRSG3ClIh5MMnZyn2st364JG/yQj8
	tf1GuKm8=; b=ikqHB0Sq5Qn7SeM+UaFv8qDpvpC5lWcA4VVx+jNgvECL/Msd9FA
	S4o8NxkS0ur0xnrviah4+D2D/9mzHwTBpCqNQgvahhi40rAu8yiOVkN4vKL7+HK9
	NA8te31gBeUq1Is3RG6+VjZk82y6zgag3/V12qlWWR8U7sRLe5pe3PHQwz1CV5/j
	n1o3IfOdqvb+gMXm3/ztrbZwDw9scmhZbpifBqGwX7wd5Z/c0ue0yYHdJ6islIca
	8xjdnVmmCaBNiLlKg0LtkLnvK2xN5BYTv2jcW5PWRJfsK4ON5QkG+zMGzSw0Nuou
	TrU9jgXzcQEnaQcF6WFBwSnQXfGpFBkRpfg==
X-ME-Sender: <xms:nm-xaNNR93tCnppsMKRvrYp0DeJQJpwpjGC_wFRgzA6EiItTHt6Vnw>
    <xme:nm-xaKh2P9KH4fZXSWKtTX3LIxLIp9CvM0-OexsGivlH_s1A9lPZ6E5kkjECrWd7P
    SR96BvTntNZmw>
X-ME-Received: <xmr:nm-xaI2DoHXPWM4HzXJLEAR1-8Poz6xA_0B-m1yFUaenzxKIz-cmUkLHJGAsVym9USUGNNcKtmzKqvAamuTb5Ur2KggHIB_WdXY>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgddukeefgeelucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfduleet
    feevhfefheeiteeliefhjefhleduveetteekveettddvgeeuteefjedunecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepgedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtohepjhgsvghulhhitghhsehsuhhsvgdrtgho
    mhdprhgtphhtthhopehfrhgvughirghnohdriihighhlihhosegtlhhouhgurdgtohhmpd
    hrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdho
    rhhgpdhrtghpthhtohepughpshhmihhthhesrghpvghrthhushhsohhluhhtihhonhhsrd
    gtohhm
X-ME-Proxy: <xmx:nm-xaMjmxYSdVI86NCAXoBASQGCJqMcT0zJYDF4AWDOQBgs569lcTA>
    <xmx:nm-xaAdBkdQQuLT7HDcwpVAHVG-gPbASscImVYJdsRhUXN8c87Md5A>
    <xmx:nm-xaHkNpI73KBnhr2uva-PWzsOPyGnaT7ZcOaJn1GicQQ_Z5oze9A>
    <xmx:nm-xaBtZrZQsYebV6lQwEphK3V2JI-14jof4w9EzmEYwIPvPlfJygA>
    <xmx:n2-xaBSZsKw_miMMu87Jj-CqFQjR6vvKQW4m-OO7GdK0O2jTNJWXAcR4>
Feedback-ID: i1568416f:Fastmail
Date: Fri, 29 Aug 2025 11:15:07 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
	xen-devel@lists.xenproject.org,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: Re: [PATCH v2] xen/efi: Fix crash with initial empty EFI options
Message-ID: <aLFvmzxT2Icrf_nf@mail-itl>
References: <20250708135701.119601-1-frediano.ziglio@cloud.com>
 <aLEnVSCil2JtDiFY@mail-itl>
 <e8e3b2c7-39ac-4c3a-a7ff-e2b579f44d2c@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="FMrMt6kYOwCZ9Zpx"
Content-Disposition: inline
In-Reply-To: <e8e3b2c7-39ac-4c3a-a7ff-e2b579f44d2c@suse.com>


--FMrMt6kYOwCZ9Zpx
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Fri, 29 Aug 2025 11:15:07 +0200
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
	xen-devel@lists.xenproject.org,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: Re: [PATCH v2] xen/efi: Fix crash with initial empty EFI options

On Fri, Aug 29, 2025 at 09:17:31AM +0200, Jan Beulich wrote:
> On 29.08.2025 06:06, Marek Marczykowski-G=C3=B3recki wrote:
> > On Tue, Jul 08, 2025 at 02:56:58PM +0100, Frediano Ziglio wrote:
> >> EFI code path split options from EFI LoadOptions fields in 2
> >> pieces, first EFI options, second Xen options.
> >> "get_argv" function is called first to get the number of arguments
> >> in the LoadOptions, second, after allocating enough space, to
> >> fill some "argc"/"argv" variable. However the first parsing could
> >> be different from second as second is able to detect "--" argument
> >> separator. So it was possible that "argc" was bigger that the "argv"
> >> array leading to potential buffer overflows, in particular
> >> a string like "-- a b c" would lead to buffer overflow in "argv"
> >> resulting in crashes.
> >=20
> > I wouldn't call it "buffer overflow" - the argv array is big enough
> > here. But if there is "--" in cmdline, it has fewer than argc elements
> > initialized. If there is at least one efi option (IOW, "--" is not the
> > first one), the sentinel NULL inserted by get_argv() will prevent
> > reading past the initialized part. But if "--" is the first one, the
> > NULL is inserted into argv[0], which is skipped by the loop in
> > efi_start(). Which makes the loop go beyond initialized part of argv
> > (crash happens even before it goes beyond end of argv allocation).
> >=20
> > So, maybe change it to: bigger than the initialized portion of "argv"
> > array, leading to potential uninitialized pointer dereference, ...?
> >=20
> >> Using EFI shell is possible to pass any kind of string in
> >> LoadOptions.
> >>
> >> Fixes: bf6501a62e80 ("x86-64: EFI boot code")
> >=20
> > Technically, the issue was covered for few months by another issue and
> > got re-exposed by 926e680aadde ("EFI: suppress bogus loader warning").
> > While it fixed one issue, it also made it possible to put sentinel NULL
> > into argv[0] again. But the original EFI code had this issue too, so
> > IMO the Fixes tag is correct.
> >=20
> > While there is convention to put file name as the first option, I don't
> > see anything in the UEFI spec requiring it. So, Xen should not crash
> > when it's missing.
>=20
> Yet if the equivalent of argv[0] is missing from the command line, how
> do we even know whether the first token on the command line is an
> option (or the -- separator)?

I think that assumption of argv[0] presence in LoadOptions was always
buggy... But at this point everybody is adding "placeholder" as the
first argument anyway (which predates EFI code in Xen), so we can very
well continue to require it, at least in this release.

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmixb5sACgkQ24/THMrX
1yyucQf9FdS/6PqoFxe0kRGh6Yg9uKbVpJgy2GDyctgS5QhEO6UaL8UqL6+3787A
6DsIq1p+SQ4CuR5b08gpVH6j0t8oXE4H1Yg1fJccGgoAk1g7ZuS5MEDWjrdLIQ53
0RNcQJvWg80YovED73jqjvM3IJQQLW/F0Qr028XQtbIewjX7fWpYmMmuT6Tv7VLF
j5BUjaZ+NzkkT+8l0qs0ou8QZ8t6IRrqvkEx4NJBUNpb6tdm5k5FezWMzpWGSMby
weM7HYJs8PQPoiakXvaq/T0WKbEAYsSKOajYdXha0hM6IV3hmptmqdN0TSSO/+rM
SZm7KBYXtUZRLhILNOBaemhJWw9H7A==
=GDhZ
-----END PGP SIGNATURE-----

--FMrMt6kYOwCZ9Zpx--


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 09:34:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 09:34:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100947.1454187 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urvUo-0002H7-Ir; Fri, 29 Aug 2025 09:34:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100947.1454187; Fri, 29 Aug 2025 09: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 1urvUo-0002H0-Ft; Fri, 29 Aug 2025 09:34:10 +0000
Received: by outflank-mailman (input) for mailman id 1100947;
 Fri, 29 Aug 2025 09:34:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=b4pU=3J=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1urvUm-0002Gu-VS
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 09:34:08 +0000
Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com
 [2a00:1450:4864:20::335])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4ebc95fe-84bb-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 11:34:06 +0200 (CEST)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-45a1b0c52f3so11003995e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 02:34:06 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b66cdb5d1sm71708075e9.8.2025.08.29.02.34.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 29 Aug 2025 02:34: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>
X-Inumbo-ID: 4ebc95fe-84bb-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756460046; x=1757064846; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=v+O/R4J4uWq59iFdjDfiz2aSLQIFSnSFgkvWJcI+Ku0=;
        b=sz6+ZAIO1JYjW2BE3M/NZUrB2IGdgNv7HuwrCQ6E1/KAMekmzOZ0Xd3S+MnzvNHG20
         hX/CzGe4q0K0FjhB0Ok5FZ2IMsiU7P4+hMiKWkzq6FSsCCrZUznVhWPr59pn6dK4fIQJ
         RJChjcSiEoY0BgCmUAmI4LAE3iqSBI7iljrx0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756460046; x=1757064846;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=v+O/R4J4uWq59iFdjDfiz2aSLQIFSnSFgkvWJcI+Ku0=;
        b=K7FrRdxLo66TFvw37ccxGFIIDd/b+zOdo1M3ClBZymPacxefM9dlO9EwUtxp+wMuky
         YsuYP4GWEsc63kgRqukzLGAe2V+jEuTM4iQMF1IyQcA71Tzf5VexFcvGrcsidtBL1ZoZ
         KNhY+DPLSdXHzirHjnJzvR6HN6JQoBpqE+kyG/pLMGpDj+eXxd601tYsT29bUs2HQ3kH
         zCT7ujVbqBshHkED/G0wDgkjwLN9ngMSgdRrhdNVOUCeTNf2UCWIiL/wE9E3Cf+UT1Vl
         hnpc3VhmLresOLUwrixHzjo2mqKuqS66JT+Scd+W4ABDoQppuXl1k1c/8qkvUDlQ17In
         yt4g==
X-Forwarded-Encrypted: i=1; AJvYcCWs7NZ/nngkQRqKsD9BlqEZ+xiPiJX0ZiKvMKfQy/WLVB7UZXHyidW3J0yQaGPUy3GQKWLnJVIwENQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyVR/lKcLinbznc046+nW/o7T5xzOd2xRycfI42YECCnt/ENrT+
	t5HBthbRuIFx8JsdZmp/g64NIcVY2Bf5pt1mmDIUX2cipi+fi2+vgyGmgVU5q6VA8KY=
X-Gm-Gg: ASbGncvGHBigyF3CqExh4yzr4igrbBq1fi9Yl0aOgBkIsCKr9FVafxV0A48qOydAJcj
	U7q1oKRM6hMhTAXUJ6nvi5roC/VyXAqdNXe76G3cHVZV4iLsnsekltztyfQ4DWoaiTUPmMp6plq
	oH+8SFiKeSbO09lTDZZiwlYBPd1w6vkLhD0y+5cRLum6YoORfagcF65CMMMJSj7Oaff+HypjZT5
	3c0XtcAmYEsZLvXg6ZpQvmm3nIMYRWRui5yd0L1SSOrvmOwnjH6Q2vw94g+/+luWWWO9GM2Bmyv
	yKohRw2qbrRyJo3S4VTnpiou09Rjrv0A7m7E+OEerCDu3qYzu7ynPshI63OfGt9/jcD1IKkNPsu
	TqfpTMArL7yoF+vkQgNccvjgvNwBhw5aJyY/ejKVvDMqbH51MwpeC02Nr8OTz/xw/62HT8Eaw/b
	SeAEc=
X-Google-Smtp-Source: AGHT+IFotw/oij1X3x7hYgMRGhxE7xyk+XTRFYnYSebq8OklKgDUAvwPqzVpOWuWTu71e5+9sqd9SQ==
X-Received: by 2002:a05:600c:c87:b0:456:475b:7af6 with SMTP id 5b1f17b1804b1-45b5179b6aamr210443735e9.7.1756460045650;
        Fri, 29 Aug 2025 02:34:05 -0700 (PDT)
Message-ID: <4b852055-4651-46ad-8f04-3f95fb2fa631@citrix.com>
Date: Fri, 29 Aug 2025 10:34:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] Optimise restore memory allocation
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Frediano Ziglio <frediano.ziglio@cloud.com>,
 xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <20250827123309.39699-1-frediano.ziglio@cloud.com>
 <3cf8eef1-04e6-44b9-ad41-144de9cbf1d7@citrix.com>
Content-Language: en-GB
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: <3cf8eef1-04e6-44b9-ad41-144de9cbf1d7@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 27/08/2025 6:23 pm, Andrew Cooper wrote:
> Subject wants to be at least tools/libxc, and probably "Use superpages
> where possible on migrate/resume"
>
>
> On 27/08/2025 1:33 pm, Frediano Ziglio wrote:
>> Try to allocate larger order pages.
>> With some test memory program stressing TLB (many small random
>> memory accesses) you can get 15% performance improves.
>> On the first memory iteration the sender is currently sending
>> memory in 4mb aligned chunks which allows the receiver to
>> allocate most pages as 2mb superpages instead of single 4kb pages.
> It's critical to say somewhere that this is applicable to HVM guests.
>
> You've eluded to it, but it's important to state clearly that, for HVM
> guests, PAGE_DATA records contain metadata about GFNs in aligned 4M
> blocks.Â  This is why we don't even need to buffer a second record.
>
> It's also worth stating that 1G superpages are left for later.
>
>
> CC-ing Oleksii as release manager.Â  This is a fix for a (mis)feature
> which has been known for a decade (since Xen 4.6), and for which two
> series have been posted but not managed to get in.Â  Unlike those series,
> this is a very surgical fix that gets the majority of the perf win back,
> without the complexity of trying to guess at 1G pages.
>
> Therefore I'd like to request that it be considered for 4.21 at this
> juncture.
>
>> Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
>> ---
>>  tools/libs/guest/xg_sr_restore.c | 39 ++++++++++++++++++++++++++++----
>>  1 file changed, 35 insertions(+), 4 deletions(-)
>>
>> diff --git a/tools/libs/guest/xg_sr_restore.c b/tools/libs/guest/xg_sr_restore.c
>> index 06231ca826..8dcb1b19c5 100644
>> --- a/tools/libs/guest/xg_sr_restore.c
>> +++ b/tools/libs/guest/xg_sr_restore.c
>> @@ -129,6 +129,8 @@ static int pfn_set_populated(struct xc_sr_context *ctx, xen_pfn_t pfn)
>>      return 0;
>>  }
>>  
>> +#define IS_POWER_OF_2(n) (((n) & ((n) - 1)) == 0)
>> +
>>  /*
>>   * Given a set of pfns, obtain memory from Xen to fill the physmap for the
>>   * unpopulated subset.  If types is NULL, no page type checking is performed
>> @@ -141,6 +143,7 @@ int populate_pfns(struct xc_sr_context *ctx, unsigned int count,
>>      xen_pfn_t *mfns = malloc(count * sizeof(*mfns)),
>>          *pfns = malloc(count * sizeof(*pfns));
>>      unsigned int i, nr_pfns = 0;
>> +    bool contiguous = true;
>>      int rc = -1;
>>  
>>      if ( !mfns || !pfns )
>> @@ -159,18 +162,46 @@ int populate_pfns(struct xc_sr_context *ctx, unsigned int count,
>>              if ( rc )
>>                  goto err;
>>              pfns[nr_pfns] = mfns[nr_pfns] = original_pfns[i];
>> +            if ( pfns[nr_pfns] != pfns[0] + nr_pfns )
>> +                contiguous = false;
>>              ++nr_pfns;
>>          }
>>      }
>>  
>>      if ( nr_pfns )
>>      {
>> -        rc = xc_domain_populate_physmap_exact(
>> -            xch, ctx->domid, nr_pfns, 0, 0, mfns);
>> +        /* try optimizing using larger order */
>> +        rc = -1;
>> +        /*
>> +         * The "nr_pfns <= (1 << 18)" check is mainly for paranoia, it should
>> +         * never happen, the sender would have to send a really large packet.
>> +         */
>> +        if ( contiguous && nr_pfns <= (1 << 18) &&
> This is an arbitrary limit, and to contradict the prior feedback given
> in private, the domain's MAX_ORDER isn't relevant here.Â  It's the
> toolstack's choice how to lay out the guest in memory.
>
>> +             IS_POWER_OF_2(nr_pfns) && (pfns[0] & (nr_pfns - 1)) == 0 )
>> +        {
>> +            const unsigned int extent_order = __builtin_ffs(nr_pfns) - 1;
> This (non-)loop isn't great.Â  You'll e.g. use 4k pages for the second 2M
> page of an HVM guest simply because the VGA hole exists in the first.
>
> I think you probably want something like:
>
> int populate_physmap_4k(ctx, nr, mfns);
> int populate_physmap_2M(ctx, nr, mfns);
>
> as simple wrappers around the raw hypercalls including transforming back
> the mfns[] array, and:
>
> int populate_phymap(...);
>
> with logic of the form:
>
> Â Â Â  while ( nr )
> Â Â Â  {
> Â Â Â  Â Â Â  if ( nr < 512 ) /* Can't be a superpage */
> Â Â Â  Â Â Â  {
> Â Â Â  Â Â Â  Â Â Â  populate_physmap_4k(ctx, i, mfns);
> Â Â Â  Â Â Â  Â Â Â  mfns += i;
> Â Â Â  Â Â Â  Â Â Â  nr -= i;
> Â Â Â  Â Â Â  Â Â Â  continue;
> Â Â Â  Â Â Â  }
>
> Â Â Â  Â Â Â  if ( !ALIGNED_2M(mfn) ) /* Populate up until a point that could be a superpage */
> Â Â Â  Â Â Â  {
> Â Â Â  Â Â Â  Â Â Â  while ( !ALIGNED_2M(mfn + i) )
> Â Â Â  Â Â Â  Â Â Â  Â Â Â  i++;
> Â Â Â  Â Â Â  Â Â Â  populate_physmap_4k(ctx, i, mfns);
> Â Â Â  Â Â Â  Â Â Â  mfns += i;
> Â Â Â  Â Â Â  Â Â Â  nr -= i;
> Â Â Â  Â Â Â  }
>
> Â Â Â  Â Â Â  if ( nr >= 512 )
> Â Â Â  Â Â Â  {
> Â Â Â  Â Â Â  Â Â Â  for ( i = 1; i < 512; ++i )
> Â Â Â  Â Â Â  Â Â Â  Â Â Â  if ( mfns[i] != mfns[0] + i )
> Â Â Â  Â Â Â  Â Â Â  Â Â Â  Â Â Â  break;
> Â Â Â  Â Â Â  Â Â Â  if ( i == 512 )
> Â Â Â  Â Â Â  Â Â Â  Â Â Â  populate_physmap_2M(ctx, i, mfns);
>             else
>                 populate_physmap_4k(...);
>
> Â Â Â  Â Â Â  Â Â Â  mfns += i;
> Â Â Â  Â Â Â  Â Â Â  nr -= i;
> Â Â Â  Â Â Â  }
> Â Â Â  }
>
>
>
> Obviously with error handling, and whatever boundary conditions I've got
> wrong.
>
> 2M is the only size that matters (ignoring 1G which we've excluded for
> now), and this form will reconstruct more superpages for the guest than
> trying to do 4M allocations will.

Actually, I think a simpler option is to alter the first loop, where
you've got contiguous= right now.

Something like:

@@ -158,6 +165,18 @@ int populate_pfns(struct xc_sr_context *ctx, unsigned int count,
Â Â Â Â Â Â Â Â Â Â Â Â  rc = pfn_set_populated(ctx, original_pfns[i]);
Â Â Â Â Â Â Â Â Â Â Â Â  if ( rc )
Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  goto err;
+
+Â Â Â Â Â Â Â Â Â Â Â  if ( ALIGNED_2M(original_pfns[i]) &&
+Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  can_populate_2M(&original_pfns[i], count - i) )
+Â Â Â Â Â Â Â Â Â Â Â  {
+Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  xen_pfn_t mfn = original_pfns[i];
+
+Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  rc = xc_domain_populate_physmap_exact(xch, ctx->domid, 1, ORDER_2M, 0, &mfn);
+
+                ...
+
+Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  i += 511;
+Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  continue;
+Â Â Â Â Â Â Â Â Â Â Â  }
+
Â Â Â Â Â Â Â Â Â Â Â Â  pfns[nr_pfns] = mfns[nr_pfns] = original_pfns[i];
Â Â Â Â Â Â Â Â Â Â Â Â  ++nr_pfns;
Â Â Â Â Â Â Â Â  }


with error handling of course.Â  This way we don't potentially fall back
to many separate hypercalls for 4k pages.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 09:48:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 09:48:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1100962.1454204 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urviT-000441-QE; Fri, 29 Aug 2025 09:48:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1100962.1454204; Fri, 29 Aug 2025 09:48:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urviT-00043u-Mw; Fri, 29 Aug 2025 09:48:17 +0000
Received: by outflank-mailman (input) for mailman id 1100962;
 Fri, 29 Aug 2025 09:48:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=OeP6=3J=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1urviS-00043n-M3
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 09:48:16 +0000
Received: from mail-lf1-x12f.google.com (mail-lf1-x12f.google.com
 [2a00:1450:4864:20::12f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 480c053e-84bd-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 11:48:14 +0200 (CEST)
Received: by mail-lf1-x12f.google.com with SMTP id
 2adb3069b0e04-55f53efe803so2307224e87.2
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 02:48:14 -0700 (PDT)
Received: from [192.168.0.110] ([91.123.151.69])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-55f676dc5bdsm512299e87.19.2025.08.29.02.48.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 29 Aug 2025 02:48: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>
X-Inumbo-ID: 480c053e-84bd-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756460893; x=1757065693; 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=FpWelWZyQrR7IxX/PCjhRNmRP/SkCdm4InN0ua3z10Q=;
        b=J70kVIPQZ7VmylV2xuiz2xqQgHXz5EngZL13PUiNnuSsHfczQ8dS4hoZBdA/czCGpP
         tA3ys9gVRmkMwUXOB9oMfRYMfmqMC1f4VBLI5IRqyXa+spUjru1qVT/YnVw4++XbgLoH
         lb6AJJ3lT5wDGwnBYMBI2pLtcyqghOFnXB7LRKhuUESPMn/+T8kub7JRXIbfeumNFnOd
         lBgcIbcZDkczbP/e7+MM4VsL73/ZFs8saW7S9mRjk0DfY6biLs1badN8UCsKGS0mAs+d
         45m2ZIpDaFCy6xbyXBbTG8mjH20kjqcCxKZaVi3skVPUcBfCXzvGwMMtlJnuKEj0hm4K
         O0Jg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756460893; x=1757065693;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=FpWelWZyQrR7IxX/PCjhRNmRP/SkCdm4InN0ua3z10Q=;
        b=xVC2zIBfGMgRIZa69zwklhSBW5jU7MmfvQCI1S5+i6eCEZMv/3jCWNc2YSRDCbDV+F
         J7T0abJmNQ1eZqXomGqpkTNKmGGbjKMBpgSuWGiO59rEsAwSSADwN4PMdonBQXfv+p98
         KO63e41hAys+5R7VEZi9PQuaWvpwtgW+8xnLVlPvRNRzdv8g6ttMCn58eZn3b2bUyRzL
         0mXeBcvnTXUNU8Rxn6/2evPNycKexK1Uc6hpPFUrnuzvaIZNg7rU1HtiUh9Od8r2H64E
         6TANkLChdFfZE0NAeQvALIZ0n7FIPVJW6y9CLuoSxuPjynVbv8LBdq6OUzSH55ROyn6z
         6vkA==
X-Forwarded-Encrypted: i=1; AJvYcCX0Mj3RFj4W6K5JdiMEaMxNedjCVm88vhfmLgXcnvLtRaHBIm0iYSP2BJeHMA4H/ji+iT72ZlPUI/g=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwRKmQhbxtVQPLojb1fqRW0mQdH6Z6saH5ynRtjkRE+eixq/gC/
	WaZ1bowlzJoqfCZDm7yVXApzO6Am7/gH0zaUZkDwwxyU3zxVnmTx87kd
X-Gm-Gg: ASbGncuNVk9tgW/31sq5vVNj80HTM+80q1fqlta4SkoaslzwO+r3GThmR+C3B6RMESu
	IXmQ8F5nRIQxrgVJCnbxnB73gRy6c9oc1qlgE5XQEYo89lWxJZq++Xkze5xxuDWGJ72JzgiGZ5U
	agoYWmwJ95lVzYLNCqEiCL0Ir7wXW7ROmLMjXsyVlIpHd+Xu+8Qnqs8i1x7Kdv/SGbSLY3fKSSH
	MA/zzdmUiqQvj6xpLHrhbW4pa8cVGkLTmdT1+3cJCuHOubso2ouwQFCiTZzqrBL5/ZxjzcbVypN
	sDa1S6qCPPJxm3fx7ZAXiC0RG4j6EV9IyXtn8c0NA3qzNZBIiBHFWgMeb7l2RI/D6eW4MtMzH9V
	GgiKUMKfgke+uENpxkJIsk3roDw==
X-Google-Smtp-Source: AGHT+IEWg1tp/ajAKKiD1zwXrAlOHOVFQrpR+VVySbrk6jZ8ThD+zGYh/uWj59oxKElSN5c3jaq/HQ==
X-Received: by 2002:a05:6512:a85:b0:55f:6831:6ef0 with SMTP id 2adb3069b0e04-55f6831716cmr557827e87.22.1756460893164;
        Fri, 29 Aug 2025 02:48:13 -0700 (PDT)
Message-ID: <a21b6d09-193c-4718-9811-092470e1ceb5@gmail.com>
Date: Fri, 29 Aug 2025 12:48:10 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 08/12] xen/arm: vgic: add resource management for
 extended SPIs
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1756317702.git.leonid_komarianskyi@epam.com>
 <9e8a11b024833c1b91b8806e7708bf35b04a8f6e.1756317702.git.leonid_komarianskyi@epam.com>
 <01a964ac-a9aa-4301-b3da-5691e18b1b73@gmail.com>
 <801cb42f-3d1e-4173-a5e6-d68c70d89fc7@epam.com>
Content-Language: en-US
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
In-Reply-To: <801cb42f-3d1e-4173-a5e6-d68c70d89fc7@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit



On 28.08.25 22:09, Leonid Komarianskyi wrote:
> Hello Oleksandr,

Hello Leonid


> 
> Thank you for your comment and suggestions.
> 
> On 28.08.25 20:34, Oleksandr Tyshchenko wrote:
>>
>>
>> On 27.08.25 21:24, Leonid Komarianskyi wrote:
>>
>> Hello Leonid
>>
>>> This change introduces resource management in the VGIC to handle
>>> extended SPIs introduced in GICv3.1. The pending_irqs and
>>> allocated_irqs arrays are resized to support the required
>>> number of eSPIs, based on what is supported by the hardware and
>>> requested by the guest. A new field, ext_shared_irqs, is added
>>> to the VGIC structure to store information about eSPIs, similar
>>> to how shared_irqs is used for regular SPIs.
>>>
>>> Since the eSPI range starts at INTID 4096 and INTIDs between 1025
>>> and 4095 are reserved, helper macros are introduced to simplify the
>>> transformation of indices and to enable easier access to eSPI-specific
>>> resources. These changes prepare the VGIC for processing eSPIs as
>>> required by future functionality.
>>>
>>> The initialization and deinitialization paths for vgic have been updated
>>> to allocate and free these resources appropriately. Additionally,
>>> updated handling of INTIDs greater than 1024, passed from the toolstack
>>> during domain creation, and verification logic ensures only valid SPI or
>>> eSPI INTIDs are used.
>>>
>>> The existing SPI behavior remains unaffected when guests do not request
>>> eSPIs, GIC hardware does not support them, or the CONFIG_GICV3_ESPI
>>> option is disabled.
>>>
>>> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
>>>
>>> ---
>>> Changes in V4:
>>> - added has_espi field to simplify determining whether a domain is able
>>>  Â Â  to operate with eSPI
>>> - fixed formatting issues and misspellings
>>>
>>> Changes in V3:
>>> - fixed formatting for lines with more than 80 symbols
>>> - introduced helper functions to be able to use stubs in case of
>>>  Â Â  CONFIG_GICV3_ESPI disabled, and as a result, reduce the number of
>>>  Â Â  #ifdefs
>>> - fixed checks for nr_spis in domain_vgic_init
>>> - updated comment about nr_spis adjustments with dom0less mention
>>> - moved comment with additional explanations before checks
>>> - used unsigned int for indexes since they cannot be negative
>>> - removed unnecessary parentheses
>>> - move vgic_ext_rank_offset to the below ifdef guard, to reduce the
>>>  Â Â  number of ifdefs
>>>
>>> Changes in V2:
>>> - change is_espi_rank to is_valid_espi_rank to verify whether the array
>>>  Â Â  element ext_shared_irqs exists. The previous version, is_espi_rank,
>>>  Â Â  only checked if the rank index was less than the maximum possible eSPI
>>>  Â Â  rank index, but this could potentially result in accessing a
>>>  Â Â  non-existing array element. To address this, is_valid_espi_rank was
>>>  Â Â  introduced, which ensures that the required eSPI rank exists
>>> - move gic_number_espis to
>>>  Â Â  xen/arm: gicv3: implement handling of GICv3.1 eSPI
>>> - update vgic_is_valid_irq checks to allow operating with eSPIs
>>> - remove redundant newline in vgic_allocate_virq
>>> ---
>>>  Â  xen/arch/arm/include/asm/vgic.h |Â  20 +++
>>>  Â  xen/arch/arm/vgic.cÂ Â Â Â Â Â Â Â Â Â Â Â  | 213 +++++++++++++++++++++++++++++++-
>>>  Â  2 files changed, 230 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/
>>> asm/vgic.h
>>> index 3e7cbbb196..fb4cea73eb 100644
>>> --- a/xen/arch/arm/include/asm/vgic.h
>>> +++ b/xen/arch/arm/include/asm/vgic.h
>>> @@ -146,6 +146,12 @@ struct vgic_dist {
>>>  Â Â Â Â Â  int nr_spis; /* Number of SPIs */
>>>  Â Â Â Â Â  unsigned long *allocated_irqs; /* bitmap of IRQs allocated */
>>>  Â Â Â Â Â  struct vgic_irq_rank *shared_irqs;
>>> +#ifdef CONFIG_GICV3_ESPI
>>> +Â Â Â  struct vgic_irq_rank *ext_shared_irqs;
>>> +Â Â Â  int nr_espis; /* Number of extended SPIs */
>>
>> Can nr_espis be negative?
>>
> 
> No, it cannot, so I will change it to unsigned int in V5.
> 
>>> +Â Â Â  /* To simplify determining whether a domain is able to operate
>>> with eSPI */
>>> +Â Â Â  bool has_espi;
>>
>> I agree with the Volodymyr's comment provided in separate letter that we
>> could avoid adding an extra var.
>>
> 
> Sure, as I mentioned to Volodymyr, I will remove it in V5.
> 
>>> +#endif
>>>  Â Â Â Â Â  /*
>>>  Â Â Â Â Â Â  * SPIs are domain global, SGIs and PPIs are per-VCPU and stored in
>>>  Â Â Â Â Â Â  * struct arch_vcpu.
>>> @@ -243,6 +249,14 @@ struct vgic_ops {
>>>  Â  /* Number of ranks of interrupt registers for a domain */
>>>  Â  #define DOMAIN_NR_RANKS(d) (((d)->arch.vgic.nr_spis+31)/32)
>>> +#ifdef CONFIG_GICV3_ESPI
>>> +#define DOMAIN_NR_EXT_RANKS(d) (((d)->arch.vgic.nr_espis+31)/32)
>>> +#define EXT_RANK_MIN (ESPI_BASE_INTID/32)
>>> +#define EXT_RANK_MAX ((ESPI_MAX_INTID+31)/32)
>>> +#define EXT_RANK_NUM2IDX(num) ((num)-EXT_RANK_MIN)
>>> +#define EXT_RANK_IDX2NUM(idx) ((idx)+EXT_RANK_MIN)
>>> +#endif
>>> +
>>>  Â  #define vgic_lock(v)Â Â  spin_lock_irq(&(v)->domain->arch.vgic.lock)
>>>  Â  #define vgic_unlock(v) spin_unlock_irq(&(v)->domain->arch.vgic.lock)
>>> @@ -302,6 +316,12 @@ extern struct vgic_irq_rank
>>> *vgic_rank_offset(struct vcpu *v,
>>>  Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  unsigned int b,
>>>  Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  unsigned int n,
>>>  Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  unsigned int s);
>>> +#ifdef CONFIG_GICV3_ESPI
>>> +extern struct vgic_irq_rank *vgic_ext_rank_offset(struct vcpu *v,
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  unsigned int b,
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  unsigned int n,
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  unsigned int s);
>>> +#endif
>>>  Â  extern struct vgic_irq_rank *vgic_rank_irq(struct vcpu *v, unsigned
>>> int irq);
>>>  Â  extern void vgic_disable_irqs(struct vcpu *v, uint32_t r, unsigned
>>> int n);
>>>  Â  extern void vgic_enable_irqs(struct vcpu *v, uint32_t r, unsigned
>>> int n);
>>> diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
>>> index 2bbf4d99aa..f4b80cb05f 100644
>>> --- a/xen/arch/arm/vgic.c
>>> +++ b/xen/arch/arm/vgic.c
>>> @@ -27,9 +27,82 @@
>>>  Â  bool vgic_is_valid_line(struct domain *d, unsigned int virq)
>>>  Â  {
>>> +#ifdef CONFIG_GICV3_ESPI
>>> +Â Â Â  if ( virq >= ESPI_BASE_INTID &&
>>> +Â Â Â Â Â Â Â Â  virq < ESPI_IDX2INTID(d->arch.vgic.nr_espis) )
>>> +Â Â Â Â Â Â Â  return true;
>>> +#endif
>>> +
>>>  Â Â Â Â Â  return virq < vgic_num_irqs(d);
>>>  Â  }
>>> +#ifdef CONFIG_GICV3_ESPI
>>> +/*
>>> + * Since eSPI indexes start from 4096 and numbers from 1024 to
>>> + * 4095 are forbidden, we need to check both lower and upper
>>> + * limits for ranks.
>>> + */
>>> +static inline bool is_valid_espi_rank(struct domain *d, unsigned int
>>> rank)
>>> +{
>>> +Â Â Â  return rank >= EXT_RANK_MIN &&
>>> +Â Â Â Â Â Â Â Â Â Â  EXT_RANK_NUM2IDX(rank) < DOMAIN_NR_EXT_RANKS(d);
>>> +}
>>> +
>>> +static inline struct vgic_irq_rank *vgic_get_espi_rank(struct vcpu *v,
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  unsigned int
>>> rank)
>>> +{
>>> +Â Â Â  return &v->domain-
>>>> arch.vgic.ext_shared_irqs[EXT_RANK_NUM2IDX(rank)];
>>> +}
>>> +
>>> +static inline bool vgic_reserve_espi_virq(struct domain *d, unsigned
>>> int virq)
>>> +{
>>> +Â Â Â  return !test_and_set_bit(ESPI_INTID2IDX(virq) + vgic_num_irqs(d),
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  d->arch.vgic.allocated_irqs);
>>> +}
>>> +
>>> +static void arch_move_espis(struct vcpu *v)
>>> +{
>>> +Â Â Â  const cpumask_t *cpu_mask = cpumask_of(v->processor);
>>> +Â Â Â  struct domain *d = v->domain;
>>> +Â Â Â  struct pending_irq *p;
>>> +Â Â Â  struct vcpu *v_target;
>>> +Â Â Â  unsigned int i;
>>> +
>>> +Â Â Â  for ( i = ESPI_BASE_INTID;
>>> +Â Â Â Â Â Â Â Â Â  i < EXT_RANK_IDX2NUM(d->arch.vgic.nr_espis); i++ )
>>> +Â Â Â  {
>>> +Â Â Â Â Â Â Â  v_target = vgic_get_target_vcpu(v, i);
>>> +Â Â Â Â Â Â Â  p = irq_to_pending(v_target, i);
>>> +
>>> +Â Â Â Â Â Â Â  if ( v_target == v && !test_bit(GIC_IRQ_GUEST_MIGRATING, &p-
>>>> status) )
>>> +Â Â Â Â Â Â Â Â Â Â Â  irq_set_affinity(p->desc, cpu_mask);
>>> +Â Â Â  }
>>> +}
>>> +#else
>>> +static inline bool is_valid_espi_rank(struct domain *d, unsigned int
>>> rank)
>>> +{
>>> +Â Â Â  return false;
>>> +}
>>> +
>>> +/*
>>> + * This function is stub and will not be called if CONFIG_GICV3_ESPI=n,
>>> + * because in this case, is_valid_espi_rank will always return false.
>>> + */
>>> +static inline struct vgic_irq_rank *vgic_get_espi_rank(struct vcpu *v,
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  unsigned int
>>> rank)
>>> +{
>>> +Â Â Â  ASSERT_UNREACHABLE();
>>> +Â Â Â  return NULL;
>>> +}
>>> +
>>> +static inline bool vgic_reserve_espi_virq(struct domain *d, unsigned
>>> int virq)
>>> +{
>>> +Â Â Â  return false;
>>> +}
>>> +
>>> +static void arch_move_espis(struct vcpu *v) { }
>>> +#endif
>>> +
>>>  Â  static inline struct vgic_irq_rank *vgic_get_rank(struct vcpu *v,
>>>  Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  unsigned int rank)
>>>  Â  {
>>> @@ -37,6 +110,8 @@ static inline struct vgic_irq_rank
>>> *vgic_get_rank(struct vcpu *v,
>>>  Â Â Â Â Â Â Â Â Â  return v->arch.vgic.private_irqs;
>>>  Â Â Â Â Â  else if ( rank <= DOMAIN_NR_RANKS(v->domain) )
>>>  Â Â Â Â Â Â Â Â Â  return &v->domain->arch.vgic.shared_irqs[rank - 1];
>>> +Â Â Â  else if ( is_valid_espi_rank(v->domain, rank) )
>>> +Â Â Â Â Â Â Â  return vgic_get_espi_rank(v, rank);
>>>  Â Â Â Â Â  else
>>>  Â Â Â Â Â Â Â Â Â  return NULL;
>>>  Â  }
>>> @@ -117,6 +192,74 @@ int domain_vgic_register(struct domain *d,
>>> unsigned int *mmio_count)
>>>  Â Â Â Â Â  return 0;
>>>  Â  }
>>> +#ifdef CONFIG_GICV3_ESPI
>>> +/*
>>> + * The function behavior is the same as for regular SPIs
>>> (vgic_rank_offset),
>>> + * but it operates with extended SPI ranks.
>>> + */
>>> +struct vgic_irq_rank *vgic_ext_rank_offset(struct vcpu *v, unsigned
>>> int b,
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  unsigned int n, unsigned
>>> int s)
>>> +{
>>> +Â Â Â  unsigned int rank = REG_RANK_NR(b, (n >> s));
>>> +
>>> +Â Â Â  return vgic_get_rank(v, rank + EXT_RANK_MIN);
>>> +}
>>
>> So the difference between vgic_rank_offset() and vgic_ext_rank_offset()
>> in using EXT_RANK_MIN in the latter. I am wondering, whether it makes
>> sense to reuse the existing vgic_rank_offset() by moving #ifdef into it?
>> Maybe it would be possible to optimize some code added in "[PATCH v4
>> 10/12] xen/arm: vgic-v3: add emulation of GICv3.1 eSPI registers".
>>
>> e.g. __vgic_v3_distr_common_mmio_read:
>>
>> Code for the following cases looks very similar to the regular
>> counterparts.
>> case VRANGE32(GICD_ISENABLERnE, GICD_ISENABLERnEN):
>> case VRANGE32(GICD_ICENABLERnE, GICD_ICENABLERnEN):
>> case VRANGE32(GICD_IPRIORITYRnE, GICD_IPRIORITYRnEN):
>> case VRANGE32(GICD_ICFGRnE, GICD_ICFGRnEN):
>> case VRANGE32(GICD_IPRIORITYRnE, GICD_IPRIORITYRnEN):
>>
>> The difference is in the said helper and the base calculated as
>> "reg - GICD_XXX", where GICD_XXX is the start of the range for the eSPI-
>> based reg (e.g. GICD_IPRIORITYRnE) or regular SPI-based reg
>> (e.g.GICD_IPRIORITYR). The GICD_XXX could probably be chosen
>> based on the "reg" value itself, for example:
>>
>> rank = vgic_rank_offset(v, 8, reg >= GICD_IPRIORITYRnE ? reg -
>> GICD_IPRIORITYRnE : reg - GICD_IPRIORITYR, DABT_WORD);
>>
>> Please note, I am not requesting for any updates regarding to that, I am
>> just thinking out loud.
>>
> 
> First of all, I have to say that I really tried to reuse the existing
> code for regular SPIs whenever possible, but I could not come up with
> something better than introducing a new function for eSPI ranks in this
> case. This is due to several reasons:
> 1) Currently, all eSPI-specific offsets are placed under #ifdef to avoid
> or at least reduce the introduction of dead code or defines that will
> not be used. This was requested by our teammates who are engaged in
> MISRA fixes. Therefore, this is the first reason why eSPI-specific
> elements are placed under the appropriate configuration. Without
> CONFIG_GICV3_ESPI, we cannot use these offsets.
> 
> 2) The proposed solution:
>   > rank = vgic_rank_offset(v, 8, reg >= GICD_IPRIORITYRnE ? reg -
>   > GICD_IPRIORITYRnE : reg - GICD_IPRIORITYR, DABT_WORD);
> 
> will not work, unfortunately, because in this case, vgic_rank_offset
> will always return ranks for regular SPIs.
> 
> Long story short: we will encounter issues determining whether to use
> shared_irqs (for regular SPIs) or ext_shared_irqs (for eSPIs).
> 
> And here are the details about why this will not work:
> 
> In the case of receiving an offset for a regular SPI, e.g., 0x6200
> (GICD_IROUTER range [0x6100-0x7FD8]), we will get rank = 2 for regular SPIs:
> vgic_rank_offset(v, 64, 0x6200-0x6000, DABT_DOUBLE_WORD) ->
> DABT_DOUBLE_WORD = 3
> 
> Thus:
> rank = REG_RANK_NR(64, (0x200 >> 3) ->
> REG_RANK_NR will return in this case:
> 0x200 >> 3 >> 5 = 2
> 
> On the other hand, if we receive an offset for an eSPI, e.g., 0x8200
> (GICD_IROUTERnE range [0x8000-0x9FFC]), we will get the same rank = 2
> when using the proposed solution:
> vgic_rank_offset(v, 64, 0x8200-0x8000, DABT_DOUBLE_WORD) ->
> DABT_DOUBLE_WORD = 3
> 
> rank = REG_RANK_NR(64, (0x200 >> 3) ->
> REG_RANK_NR will return also:
> 0x200 >> 3 >> 5 = 2
> 
> As a result, in both cases, vgic_get_rank(v, 2) will return the rank for
> regular SPIs:
> 
> /* This condition will apply because rank will be less than 32 */
> else if ( rank <= DOMAIN_NR_RANKS(v->domain) )
>       return &v->domain->arch.vgic.shared_irqs[rank - 1];
> 
> Therefore, I decided to create a separate function to properly transform
> ranks into the correct range.
> 
> And, unfortunately, we cannot resolve the second issue with #ifdefs
> inside vgic_rank_offset, because this function will receive the same
> parameters for SPIs/eSPIs and we would not be able to determine whether
> we should return shared_irqs or ext_shared_irqs.

Thanks for such a detailed analysis. I was thinking that somehow we could:
  - reduce the number of #ifdef-s introduced by the current series as a 
whole
  - minimize the changes (optimize code) added in "[PATCH v4 10/12] 
xen/arm: vgic-v3: add emulation of GICv3.1 eSPI registers"

Maybe there is no valid concern at all, or I missed somethig. But, what 
worries me a bit is that said patch adds the emulation code for eSPI 
regs that are close for emulation code for regular SPI regs (e.g. please 
refer to VRANGE64(GICD_IROUTERnE, GICD_IROUTERnEN) - 
VRANGE64(GICD_IROUTER32, GICD_IROUTER1019) or 
VRANGE32(GICD_IPRIORITYRnE, GICD_IPRIORITYRnEN) - 
VRANGE32(GICD_IPRIORITYR, GICD_IPRIORITYRN)), besides the code 
duplication, we would have to keep both regular and entended handlers
in sync when doing possible updates/fixing the bugs.

While I completely agree with the dead code for eSPI-specific 
helpers/functions if we move them out of #ifdef CONFIG_GICV3_ESPI, what 
might be wrong if we at least drop #ifdef CONFIG_GICV3_ESPI for simple 
#define-s (non functional code), such as:

  #ifdef CONFIG_GICV3_ESPI
/* Additional registers for GICv3.1 */
#define GICD_IGROUPRnE               (0x1000)
#define GICD_IGROUPRnEN              (0x107C)
...

or

#ifdef CONFIG_GICV3_ESPI
#define ESPI_BASE_INTID 4096
#define ESPI_MAX_INTID  5119
#define NR_ESPI_IRQS    1024

#define ESPI_INTID2IDX(intid) ((intid) - ESPI_BASE_INTID)
#define ESPI_IDX2INTID(idx)   ((idx) + ESPI_BASE_INTID)
#endif

> 
>>
>>> +
>>> +static unsigned int vgic_num_spi_lines(struct domain *d)
>>> +{
>>> +Â Â Â  return d->arch.vgic.nr_spis + d->arch.vgic.nr_espis;
>>> +}
>>> +
>>> +static int init_vgic_espi(struct domain *d)
>>> +{
>>> +Â Â Â  unsigned int i, idx;
>>> +
>>> +Â Â Â  if ( d->arch.vgic.nr_espis == 0 )
>>> +Â Â Â Â Â Â Â  return 0;
>>> +
>>> +Â Â Â  d->arch.vgic.ext_shared_irqs =
>>> +Â Â Â Â Â Â Â  xzalloc_array(struct vgic_irq_rank, DOMAIN_NR_EXT_RANKS(d));
>>> +Â Â Â  if ( d->arch.vgic.ext_shared_irqs == NULL )
>>> +Â Â Â Â Â Â Â  return -ENOMEM;
>>> +
>>> +Â Â Â  for ( i = d->arch.vgic.nr_spis, idx = 0;
>>> +Â Â Â Â Â Â Â Â Â  i < vgic_num_spi_lines(d); i++, idx++ )
>>> +Â Â Â Â Â Â Â  vgic_init_pending_irq(&d->arch.vgic.pending_irqs[i],
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  ESPI_IDX2INTID(idx));
>>> +
>>> +Â Â Â  for ( i = 0; i < DOMAIN_NR_EXT_RANKS(d); i++ )
>>> +Â Â Â Â Â Â Â  vgic_rank_init(&d->arch.vgic.ext_shared_irqs[i], i, 0);
>>> +
>>> +Â Â Â  return 0;
>>> +}
>>> +
>>> +struct pending_irq *espi_to_pending(struct domain *d, unsigned int irq)
>>> +{
>>> +Â Â Â  irq = ESPI_INTID2IDX(irq) + d->arch.vgic.nr_spis;
>>> +Â Â Â  return &d->arch.vgic.pending_irqs[irq];
>>> +}
>>> +#else
>>> +static unsigned int init_vgic_espi(struct domain *d
>>> +{
>>> +Â Â Â  return 0;
>>> +}
>>> +
>>> +static unsigned int vgic_num_spi_lines(struct domain *d)
>>> +{
>>> +Â Â Â  return d->arch.vgic.nr_spis;
>>> +}
>>> +
>>> +struct pending_irq *espi_to_pending(struct domain *d, unsigned int irq)
>>> +{
>>> +Â Â Â  return NULL;
>>> +}
>>> +#endif
>>> +
>>> +static unsigned int vgic_num_alloc_irqs(struct domain *d)
>>> +{
>>> +Â Â Â  return vgic_num_spi_lines(d) + NR_LOCAL_IRQS;
>>> +}
>>> +
>>>  Â  int domain_vgic_init(struct domain *d, unsigned int nr_spis)
>>>  Â  {
>>>  Â Â Â Â Â  int i;
>>> @@ -131,6 +274,38 @@ int domain_vgic_init(struct domain *d, unsigned
>>> int nr_spis)
>>>  Â Â Â Â Â Â  */
>>>  Â Â Â Â Â  nr_spis = ROUNDUP(nr_spis, 32);
>>> +#ifdef CONFIG_GICV3_ESPI
>>> +Â Â Â  /*
>>> +Â Â Â Â  * During domain creation, the dom0less DomUs code or toolstack
>>> specifies
>>> +Â Â Â Â  * the maximum INTID, which is defined in the domain config
>>> subtracted by
>>> +Â Â Â Â  * 32 to cover the local IRQs (please see the comment to
>>> VGIC_DEF_NR_SPIS).
>>> +Â Â Â Â  * To compute the actual number of eSPI that will be usable for,
>>> +Â Â Â Â  * add back 32.
>>> +Â Â Â Â  */
>>> +Â Â Â  if ( nr_spis + 32 > ESPI_IDX2INTID(NR_ESPI_IRQS) )
>>> +Â Â Â Â Â Â Â  return -EINVAL;
>>> +
>>> +Â Â Â  if ( nr_spis + 32 >= ESPI_BASE_INTID )
>>> +Â Â Â  {
>>> +Â Â Â Â Â Â Â  d->arch.vgic.nr_espis = min(nr_spis - ESPI_BASE_INTID + 32,
>>> 1024U);
>>> +Â Â Â Â Â Â Â  /* Verify if GIC HW can handle provided INTID */
>>> +Â Â Â Â Â Â Â  if ( d->arch.vgic.nr_espis > gic_number_espis() )
>>> +Â Â Â Â Â Â Â Â Â Â Â  return -EINVAL;
>>> +Â Â Â Â Â Â Â  /*
>>> +Â Â Â Â Â Â Â Â  * Set the maximum available number for regular
>>> +Â Â Â Â Â Â Â Â  * SPI to pass the next check
>>> +Â Â Â Â Â Â Â Â  */
>>> +Â Â Â Â Â Â Â  nr_spis = VGIC_DEF_NR_SPIS;
>>> +Â Â Â Â Â Â Â  d->arch.vgic.has_espi = true;
>>> +Â Â Â  }
>>> +Â Â Â  else
>>> +Â Â Â  {
>>> +Â Â Â Â Â Â Â  /* Domain will use the regular SPI range */
>>> +Â Â Â Â Â Â Â  d->arch.vgic.nr_espis = 0;
>>> +Â Â Â Â Â Â Â  d->arch.vgic.has_espi = false;
>>> +Â Â Â  }
>>> +#endif
>>> +
>>>  Â Â Â Â Â  /* Limit the number of virtual SPIs supported to (1020 - 32) =
>>> 988Â  */
>>>  Â Â Â Â Â  if ( nr_spis > (1020 - NR_LOCAL_IRQS) )
>>>  Â Â Â Â Â Â Â Â Â  return -EINVAL;
>>> @@ -145,7 +320,7 @@ int domain_vgic_init(struct domain *d, unsigned
>>> int nr_spis)
>>>  Â Â Â Â Â Â Â Â Â  return -ENOMEM;
>>>  Â Â Â Â Â  d->arch.vgic.pending_irqs =
>>> -Â Â Â Â Â Â Â  xzalloc_array(struct pending_irq, d->arch.vgic.nr_spis);
>>> +Â Â Â Â Â Â Â  xzalloc_array(struct pending_irq, vgic_num_spi_lines(d));
>>>  Â Â Â Â Â  if ( d->arch.vgic.pending_irqs == NULL )
>>>  Â Â Â Â Â Â Â Â Â  return -ENOMEM;
>>> @@ -156,12 +331,16 @@ int domain_vgic_init(struct domain *d, unsigned
>>> int nr_spis)
>>>  Â Â Â Â Â  for ( i = 0; i < DOMAIN_NR_RANKS(d); i++ )
>>>  Â Â Â Â Â Â Â Â Â  vgic_rank_init(&d->arch.vgic.shared_irqs[i], i + 1, 0);
>>> +Â Â Â  ret = init_vgic_espi(d);
>>> +Â Â Â  if ( ret )
>>> +Â Â Â Â Â Â Â  return ret;
>>> +
>>>  Â Â Â Â Â  ret = d->arch.vgic.handler->domain_init(d);
>>>  Â Â Â Â Â  if ( ret )
>>>  Â Â Â Â Â Â Â Â Â  return ret;
>>>  Â Â Â Â Â  d->arch.vgic.allocated_irqs =
>>> -Â Â Â Â Â Â Â  xzalloc_array(unsigned long, BITS_TO_LONGS(vgic_num_irqs(d)));
>>> +Â Â Â Â Â Â Â  xzalloc_array(unsigned long,
>>> BITS_TO_LONGS(vgic_num_alloc_irqs(d)));
>>>  Â Â Â Â Â  if ( !d->arch.vgic.allocated_irqs )
>>>  Â Â Â Â Â Â Â Â Â  return -ENOMEM;
>>> @@ -195,9 +374,27 @@ void domain_vgic_free(struct domain *d)
>>>  Â Â Â Â Â Â Â Â Â  }
>>>  Â Â Â Â Â  }
>>> +#ifdef CONFIG_GICV3_ESPI
>>> +Â Â Â  for ( i = 0; i < d->arch.vgic.nr_espis; i++ )
>>> +Â Â Â  {
>>> +Â Â Â Â Â Â Â  struct pending_irq *p = spi_to_pending(d, ESPI_IDX2INTID(i));
>>> +
>>> +Â Â Â Â Â Â Â  if ( p->desc )
>>> +Â Â Â Â Â Â Â  {
>>> +Â Â Â Â Â Â Â Â Â Â Â  ret = release_guest_irq(d, p->irq);
>>> +Â Â Â Â Â Â Â Â Â Â Â  if ( ret )
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  dprintk(XENLOG_G_WARNING, "d%u: Failed to release
>>> virq %u ret = %d\n",
>>
>>
>> NIT: you can use %pd for printing domain with its ID
>>
>>
> 
> I will fix it in V5.
> 
>>> +Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  d->domain_id, p->irq, ret);
>>> +Â Â Â Â Â Â Â  }
>>> +Â Â Â  }
>>> +#endif
>>> +
>>>  Â Â Â Â Â  if ( d->arch.vgic.handler )
>>>  Â Â Â Â Â Â Â Â Â  d->arch.vgic.handler->domain_free(d);
>>>  Â Â Â Â Â  xfree(d->arch.vgic.shared_irqs);
>>> +#ifdef CONFIG_GICV3_ESPI
>>> +Â Â Â  xfree(d->arch.vgic.ext_shared_irqs);
>>> +#endif
>>>  Â Â Â Â Â  xfree(d->arch.vgic.pending_irqs);
>>>  Â Â Â Â Â  xfree(d->arch.vgic.allocated_irqs);
>>>  Â  }
>>> @@ -331,6 +528,8 @@ void arch_move_irqs(struct vcpu *v)
>>>  Â Â Â Â Â Â Â Â Â  if ( v_target == v && !test_bit(GIC_IRQ_GUEST_MIGRATING, &p-
>>>> status) )
>>>  Â Â Â Â Â Â Â Â Â Â Â Â Â  irq_set_affinity(p->desc, cpu_mask);
>>>  Â Â Â Â Â  }
>>> +
>>> +Â Â Â  arch_move_espis(v);
>>>  Â  }
>>>  Â  void vgic_disable_irqs(struct vcpu *v, uint32_t r, unsigned int n)
>>> @@ -538,6 +737,8 @@ struct pending_irq *irq_to_pending(struct vcpu *v,
>>> unsigned int irq)
>>>  Â Â Â Â Â Â Â Â Â  n = &v->arch.vgic.pending_irqs[irq];
>>>  Â Â Â Â Â  else if ( is_lpi(irq) )
>>>  Â Â Â Â Â Â Â Â Â  n = v->domain->arch.vgic.handler->lpi_to_pending(v->domain,
>>> irq);
>>> +Â Â Â  else if ( is_espi(irq) )
>>> +Â Â Â Â Â Â Â  n = espi_to_pending(v->domain, irq);
>>>  Â Â Â Â Â  else
>>>  Â Â Â Â Â Â Â Â Â  n = &v->domain->arch.vgic.pending_irqs[irq - 32];
>>>  Â Â Â Â Â  return n;
>>> @@ -547,6 +748,9 @@ struct pending_irq *spi_to_pending(struct domain
>>> *d, unsigned int irq)
>>>  Â  {
>>>  Â Â Â Â Â  ASSERT(irq >= NR_LOCAL_IRQS);
>>> +Â Â Â  if ( is_espi(irq) )
>>> +Â Â Â Â Â Â Â  return espi_to_pending(d, irq);
>>> +
>>>  Â Â Â Â Â  return &d->arch.vgic.pending_irqs[irq - 32];
>>>  Â  }
>>> @@ -668,6 +872,9 @@ bool vgic_reserve_virq(struct domain *d, unsigned
>>> int virq)
>>>  Â Â Â Â Â  if ( !vgic_is_valid_line(d, virq) )
>>>  Â Â Â Â Â Â Â Â Â  return false;
>>> +Â Â Â  if ( is_espi(virq) )
>>> +Â Â Â Â Â Â Â  return vgic_reserve_espi_virq(d, virq);
>>> +
>>>  Â Â Â Â Â  return !test_and_set_bit(virq, d->arch.vgic.allocated_irqs);
>>>  Â  }
>>> @@ -685,7 +892,7 @@ int vgic_allocate_virq(struct domain *d, bool spi)
>>>  Â Â Â Â Â  else
>>>  Â Â Â Â Â  {
>>>  Â Â Â Â Â Â Â Â Â  first = 32;
>>> -Â Â Â Â Â Â Â  end = vgic_num_irqs(d);
>>> +Â Â Â Â Â Â Â  end = vgic_num_alloc_irqs(d);
>>>  Â Â Â Â Â  }
>>>  Â Â Â Â Â  /*
>>
> 
> Best regards,
> Leonid



From xen-devel-bounces@lists.xenproject.org Fri Aug 29 09:58:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 09:58:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101000.1454219 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urvs7-0005s8-RP; Fri, 29 Aug 2025 09:58:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101000.1454219; Fri, 29 Aug 2025 09:58: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 1urvs7-0005s1-O5; Fri, 29 Aug 2025 09:58:15 +0000
Received: by outflank-mailman (input) for mailman id 1101000;
 Fri, 29 Aug 2025 09:58:15 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XJKp=3J=bounce.vates.tech=bounce-md_30504962.68b179b3.v1-9d6748b3d1f444049f5bcb91e5be475e@srs-se1.protection.inumbo.net>)
 id 1urvs6-0005rv-Qw
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 09:58:14 +0000
Received: from mail180-6.suw31.mandrillapp.com
 (mail180-6.suw31.mandrillapp.com [198.2.180.6])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id acce3e57-84be-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 11:58:13 +0200 (CEST)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-6.suw31.mandrillapp.com (Mailchimp) with ESMTP id 4cCtxb6lHpz2K1shq
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 09:58:11 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 9d6748b3d1f444049f5bcb91e5be475e; Fri, 29 Aug 2025 09: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>
X-Inumbo-ID: acce3e57-84be-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1756461491; x=1756731491;
	bh=WWdk2dSq9KosXLKOsHAPyY2hgXMKmQ9ttyuq2XmwRuc=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=UP2JGhvR/fQHCcjulhFUtzIxIw62FpTTVsp1600JMzVaBDjD531uYeCX2D9DlWnts
	 AwaEJBp8Mjz/4U3vAHPuvqYy/IVO41ahcWPHNFjyd3tPffE4I8dHD4Brrk77KR7i7T
	 bkjmC0miMRpUZu5RShvfogzHxE5l35gCjtoPAn8xlD1lgjrDtxJvFV74Goug1u6uif
	 WBuvczJOfIuMO5/dToQ8duho1TfooC8d1yedLfnWRJ541RRuyKukdJueGXIUJb2oeH
	 MpAnup0LlHmwdNqvWYxzpOZdfd+/gzi0wkwRn3ClXs71bvxg7S4U/GE19pdzVFiLI+
	 zVOMNCwh1g0dw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1756461491; x=1756721991; i=teddy.astie@vates.tech;
	bh=WWdk2dSq9KosXLKOsHAPyY2hgXMKmQ9ttyuq2XmwRuc=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=JsGpwzKASDZoKJrtcInYe4fSRWz7bLjWbSYIg7N8Q5JdCaNX+N1N7nRTPgv3F3gmi
	 KWw0YeGVEZ0Or+FoNRSGiVzHe7XF78/8GkQAndHCTLhIdpQy4IY6wtN7nHdHql/WpO
	 5GeRDgfYMs4vw/ROYlWSqfxfuZXEyT1Cj+nvugmXy/e0lR/NUGtoRKt6LBhP7KPmkt
	 qT3+XFxcXuc/h07apkAtcewP5LaWvOk7BXgKpoiy77tZH/3QrMwqWtTulA+zPmfqzK
	 TCD0I0RXehkoBIqOw/54Q5MQVllBwQ9KUTuqYX8MxcLqZOHQG4J0tQl4C//Ddw3dza
	 hgxWKJYGGA8sQ==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RESEND=20PATCH=20v2=200/3]=20Update=20to=20SMBIOS=202.6?=
X-Mailer: git-send-email 2.50.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1756461490277
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "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>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Stefano Stabellini" <sstabellini@kernel.org>
Message-Id: <cover.1756460430.git.teddy.astie@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.9d6748b3d1f444049f5bcb91e5be475e?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250829:md
Date: Fri, 29 Aug 2025 09:58:11 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

First patch clarifies the Xen guest handle definition as being a big
endian UUID. The second does update to SMBIOS 2.6, writing a proper
UUID in the table.

Teddy Astie (3):
  xen: Define xen_domain_handle_t encoding and formatting
  hvmloader: Update to SMBIOS 2.6
  CHANGELOG.md: Add SMBIOS 2.6 update statement

 CHANGELOG.md                            |  2 +
 tools/firmware/hvmloader/smbios.c       | 50 ++++++++++++++++++++-----
 tools/firmware/hvmloader/smbios_types.h |  9 +++++
 xen/include/public/xen.h                |  7 ++++
 4 files changed, 59 insertions(+), 9 deletions(-)

-- 
2.50.1



Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Aug 29 09:58:20 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 09:58:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101001.1454230 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urvsC-00066Y-2M; Fri, 29 Aug 2025 09:58:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101001.1454230; Fri, 29 Aug 2025 09:58:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urvsB-00066R-UX; Fri, 29 Aug 2025 09:58:19 +0000
Received: by outflank-mailman (input) for mailman id 1101001;
 Fri, 29 Aug 2025 09:58:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Zg/H=3J=bounce.vates.tech=bounce-md_30504962.68b179b7.v1-a8df3ebcb36c409d82b104256e9157ed@srs-se1.protection.inumbo.net>)
 id 1urvsA-00065v-S1
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 09:58:18 +0000
Received: from mail187-26.suw11.mandrillapp.com
 (mail187-26.suw11.mandrillapp.com [198.2.187.26])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id aee09c2f-84be-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 11:58:16 +0200 (CEST)
Received: from pmta09.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail187-26.suw11.mandrillapp.com (Mailchimp) with ESMTP id
 4cCtxg6PV4zKsbTcD
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 09:58:15 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 a8df3ebcb36c409d82b104256e9157ed; Fri, 29 Aug 2025 09:58:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aee09c2f-84be-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1756461495; x=1756731495;
	bh=749WZuQSD3RJ4fQfzKGkAT09RJssRy+QRzxpooPcevY=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=lDWuHmjFF3269NO8JZUgwmgE+YgGKnOVWjiwo2lm32XHr/TkoXkHrwY15+I64DbhV
	 coY4dhUpJT+S6TFHd2y/c4BkTQu1um0inMSBJVv7no3l0Rm851pG6NpfTMacoB3iLk
	 7NPkiZlF3pe7LFD6AjVv2B7ONmNuzUcyiLJETnHXnH08BTvM3htNbLL6Vc6vrmf+AI
	 lgRAdxK5kOyIbTCUAfm9IbIlylK2Q8+t2xw2++uQa3ES5mg9xO1LUvxewsMn3sTXbG
	 RCEHSjK9952hldNqXMQIuKRkisOefOcpFzknpBMyIe/N+Ja7daB+n+/lMh19MJhy+9
	 ia9EVyZzAkbcw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1756461495; x=1756721995; i=teddy.astie@vates.tech;
	bh=749WZuQSD3RJ4fQfzKGkAT09RJssRy+QRzxpooPcevY=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=B/vDckBmv8ktndslt08iaMbgXt1bmJOTd2R7y2ilanxljQs8HnXe8HUM0rr0364zt
	 dklG98knDxLvHuRLCcT1PRBEZ3aEwf+1DtjleAT/329o+8BFSKaMA9t3FBmh4RQcgs
	 xElsHaw0eTOzTrdpiHpjdGGu1boUwWfRA5c42+KzMGXIYvxZphQukQXtuU7V4EAbAs
	 6M0OR65XnGwzhlGqdEV9oo/gtFRJtqT2WnakARXcXtBQ5h73oNBSUmn5aFhGTIVXjr
	 kPGqxig5uMVZecR+gjQCVz3uZwW12aZVNBwRZ5oSywJdErWUgVHqDarsQoZlxQhGpK
	 nGRJ3rzyiBLQQ==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RESEND=20PATCH=20v2=201/3]=20xen:=20Define=20xen=5Fdomain=5Fhandle=5Ft=20encoding=20and=20formatting?=
X-Mailer: git-send-email 2.50.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1756461494427
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "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>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Stefano Stabellini" <sstabellini@kernel.org>
Message-Id: <a12f705dae18ae2b87c9e21027d14c4e60bff146.1756460430.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1756460430.git.teddy.astie@vates.tech>
References: <cover.1756460430.git.teddy.astie@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.a8df3ebcb36c409d82b104256e9157ed?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250829:md
Date: Fri, 29 Aug 2025 09:58:15 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

xen_domain_handle_t is defined as a opaque 16-bytes blob, but is
commonly used by toolstack and guest as a big-endian encoded and
formatted UUID (alike RFC 9562).

Clarify the definition of the type to ensure the guest and toolstack
interprets this value correctly in a way consistent with existing users
(at least with XAPI, xl, libvirt, hvmloader and Linux).

Fixes: 30ce2a9295a5 ("Store an opaque handle (tools uuid) in the domain structure")
Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
v2:
 - introduced
---
 CHANGELOG.md             | 1 +
 xen/include/public/xen.h | 7 +++++++
 2 files changed, 8 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index cd34ea87b8..8c4435c181 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,6 +11,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
    - For x86, GCC 5.1 and Binutils 2.25, or Clang/LLVM 11
    - For ARM32 and ARM64, GCC 5.1 and Binutils 2.25
  - Linux based device model stubdomains are now fully supported.
+ - Clarify guest UUIDs as being big-endian encoded.
 
  - On x86:
    - Restrict the cache flushing done as a result of guest physical memory map
diff --git a/xen/include/public/xen.h b/xen/include/public/xen.h
index 82b9c05a76..a219ef870f 100644
--- a/xen/include/public/xen.h
+++ b/xen/include/public/xen.h
@@ -973,6 +973,13 @@ typedef struct dom0_vga_console_info {
 #define xen_vga_console_info dom0_vga_console_info
 #define xen_vga_console_info_t dom0_vga_console_info_t
 
+/*
+ * The domain handle is chosen by the toolstack, and intended to hold a UUID
+ * conforming to RFC 9562 (i.e. big endian).
+ *
+ * Certain cases (e.g. SMBios) transform it to a Microsoft GUID (little
+ * endian) for presentation to the guest.
+ */
 typedef uint8_t xen_domain_handle_t[16];
 
 __DEFINE_XEN_GUEST_HANDLE(uint8,  uint8_t);
-- 
2.50.1



Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Aug 29 09:58:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 09:58:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101002.1454240 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urvsD-0006Kz-8z; Fri, 29 Aug 2025 09:58:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101002.1454240; Fri, 29 Aug 2025 09:58: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 1urvsD-0006Kp-4G; Fri, 29 Aug 2025 09:58:21 +0000
Received: by outflank-mailman (input) for mailman id 1101002;
 Fri, 29 Aug 2025 09:58:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=486T=3J=bounce.vates.tech=bounce-md_30504962.68b179b8.v1-249d46bbdbde471692801013ce8f6b73@srs-se1.protection.inumbo.net>)
 id 1urvsB-00065v-I6
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 09:58:19 +0000
Received: from mail180-6.suw31.mandrillapp.com
 (mail180-6.suw31.mandrillapp.com [198.2.180.6])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id af1cbaf1-84be-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 11:58:17 +0200 (CEST)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-6.suw31.mandrillapp.com (Mailchimp) with ESMTP id 4cCtxh25C0z2K248v
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 09:58:16 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 249d46bbdbde471692801013ce8f6b73; Fri, 29 Aug 2025 09:58:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: af1cbaf1-84be-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1756461496; x=1756731496;
	bh=crrLklvxlyK9aS23G3O0Vz3adTw/OUCgP8/ore5Di50=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=xCFPme4SzzIynRR1S97mUO7VxK+FJu2WIlq6QYVEVoesBGpyjtDUDbTNJJvyFUkXF
	 sISnbqM0+oU9T85Fl0KEOJCUNnjSHMF/kSuWA1qS5Y584YtU04EQZ9wZfPase1F8FF
	 ndT6Bm1rCMWbzyuc0ZO19GjsbfZjrzK7CgwUTiQWoP4FmST5bWj09sO6mEbP20FJWO
	 l7xsPfz2kNk8NRZpQ3KQhkXK+UI4Rd1sbWfuAtgD9I9aF5jZThB+GF9kYCOWrV+iO6
	 OC4pgQRuSIdPQMtT4gptrBKnI7inXSYmScRd4E6k9WocwVClSCOmYRprZFzOlnLc+c
	 nMS8q0yJ+tyDA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1756461496; x=1756721996; i=teddy.astie@vates.tech;
	bh=crrLklvxlyK9aS23G3O0Vz3adTw/OUCgP8/ore5Di50=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=rrODXGJIzTtk6CWGiKzByorfdgGLn9iQ6qiwipWQh/X3n7DmJyVT+IubdHgSX8FSy
	 WGtuiKesA1XT0t/wloQY12U8fTijW8O83sgsEV+d8hhjToxBTtfYx6M4ckE/5rjUI0
	 zI9nQnMKUYbvAZJ/lji/o/9Fi3zqPnOElPZ0RdxcpjXuCNLDi4w2Y8j0BgCCqUU435
	 1f4WXhIISXlaGTbysUQIpVfZ0pf3FGyY9eoU5wABrEDLlhvrRrc9Kjwl+shsRZ3yKB
	 acK4PDIPxqaNoiXduWQSDpk97j3sAXhYeElNlLgmqplQ52uO5w0EzyRLHXBZqPSb65
	 XkDjo1D7Mt5JA==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RESEND=20PATCH=20v2=202/3]=20hvmloader:=20Update=20to=20SMBIOS=202.6?=
X-Mailer: git-send-email 2.50.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1756461495469
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>
Message-Id: <57c674cc364d3b8f4c6d03533b9e2b45728d2c19.1756460430.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1756460430.git.teddy.astie@vates.tech>
References: <cover.1756460430.git.teddy.astie@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.249d46bbdbde471692801013ce8f6b73?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250829:md
Date: Fri, 29 Aug 2025 09:58:16 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Currently, hvmloader uses SMBIOS 2.4, however, when using OVMF, the
SMBIOS is patched to 2.8, which has clarified the UUID format (as GUID).

In Linux, if the SMBIOS version is >= 2.6, the GUID format is used, else
(undefined as per SMBIOS spec), big endian is used (used by Xen). Therefore,
you have a endian mismatch causing the UUIDs to mismatch in the guest.

$ cat /sys/hypervisor/uuid
e865e63f-3d30-4f0b-83e0-8fdfc1e30eb7
$ cat /sys/devices/virtual/dmi/id/product_uuid
3fe665e8-303d-0b4f-83e0-8fdfc1e30eb7
$ cat /sys/devices/virtual/dmi/id/product_serial
e865e63f-3d30-4f0b-83e0-8fdfc1e30eb7

This patch updates the SMBIOS version from 2.4 to 2.6 and does the appropriate
modifications of the table. This effectively fix this endianness mismatch with
OVMF; while the UUID displayed by Linux is still the same for SeaBIOS.

Fixes: c683914ef913 ("Add code to generate SMBIOS tables to hvmloader.")
(SMBIOS versions before 2.6 has a ill-defined UUID definition)
Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
v2:
 - rebase onto staging
 - introduce missing SMBIOS 2.5-2.6 fields
 - check for new SMBIOS 2.6 table lengths
 - update UUID conversion comment
 - add Fixes: note
 ---
 tools/firmware/hvmloader/smbios.c       | 50 ++++++++++++++++++++-----
 tools/firmware/hvmloader/smbios_types.h |  9 +++++
 2 files changed, 50 insertions(+), 9 deletions(-)

diff --git a/tools/firmware/hvmloader/smbios.c b/tools/firmware/hvmloader/smbios.c
index 76c7090d16..e445475d78 100644
--- a/tools/firmware/hvmloader/smbios.c
+++ b/tools/firmware/hvmloader/smbios.c
@@ -396,7 +396,7 @@ smbios_entry_point_init(void *start,
     memcpy(ep->anchor_string, "_SM_", 4);
     ep->length = 0x1f;
     ep->smbios_major_version = 2;
-    ep->smbios_minor_version = 4;
+    ep->smbios_minor_version = 6;
     ep->max_structure_size = max_structure_size;
     ep->entry_point_revision = 0;
     memcpy(ep->intermediate_anchor_string, "_DMI_", 5);
@@ -505,7 +505,22 @@ smbios_type_1_init(void *start, const char *xen_version,
     p->version_str = 3;
     p->serial_number_str = 4;
 
-    memcpy(p->uuid, uuid, 16);
+    /*
+     * Xen toolstack uses big endian UUIDs, however GUIDs (which requirement
+     * is clarified by SMBIOS >= 2.6) has the first 3 components appearing as
+     * being little endian and the rest as still being big endian.
+     */
+    /* First component */
+    for ( unsigned int i = 0; i < 4; i++ )
+        p->uuid[i] = uuid[4 - i - 1];
+    /* Second component */
+    p->uuid[4] = uuid[5];
+    p->uuid[5] = uuid[4];
+    /* Third component */
+    p->uuid[6] = uuid[7];
+    p->uuid[7] = uuid[6];
+    /* Rest */
+    memcpy(p->uuid + 8, uuid + 8, 8);
 
     p->wake_up_type = 0x06; /* power switch */
     p->sku_str = 0;
@@ -705,8 +720,8 @@ smbios_type_4_init(
     struct smbios_type_4 *p = start;
     uint32_t eax, ebx, ecx, edx;
 
-    /* Specification says Type 4 table has length of 23h for v2.3+. */
-    BUILD_BUG_ON(sizeof(*p) != 35);
+    /* Specification says Type 4 table has length of 2Ah for v2.6. */
+    BUILD_BUG_ON(sizeof(*p) != 42);
 
     memset(p, 0, sizeof(*p));
 
@@ -716,7 +731,7 @@ smbios_type_4_init(
 
     p->socket_designation_str = 1;
     p->processor_type = 0x03; /* CPU */
-    p->processor_family = 0x01; /* other */
+    p->processor_family = p->processor_family_2 = 0x01; /* other */
     p->manufacturer_str = 2;
 
     cpuid(1, &eax, &ebx, &ecx, &edx);
@@ -736,6 +751,22 @@ smbios_type_4_init(
     p->l2_cache_handle = 0xffff; /* No cache information structure provided. */
     p->l3_cache_handle = 0xffff; /* No cache information structure provided. */
 
+    /*
+     * We have a smbios type 4 table per vCPU (which is per socket),
+     * which means here that we have 1 socket per vCPU.
+     */
+    p->core_count = p->core_enabled = p->thread_count = 1;
+
+    /*
+     * We set 64-bits, execute protection and enhanced virtualization.
+     * We don't set Multi-Core (bit 3) because this individual processor
+     * (as being a single vCPU) is only having one core.
+     *
+     * SMBIOS specification says that these bits don't state anything
+     * regarding the actual availability of such features.
+     */
+    p->processor_characteristics = 0x64;
+
     start += sizeof(*p);
 
     strncpy(buf, "CPU ", sizeof(buf));
@@ -780,8 +811,8 @@ smbios_type_8_init(void *start)
 static void *
 smbios_type_9_init(void *start)
 {
-    /* Specification says Type 9 table has length of 0Dh for v2.1-2.5. */
-    BUILD_BUG_ON(sizeof(struct smbios_type_9) != 13);
+    /* Specification says Type 9 table has length of 11h for v2.6+. */
+    BUILD_BUG_ON(sizeof(struct smbios_type_9) != 17);
 
     /* Only present when passed in. */
     return smbios_pt_copy(start, 9, SMBIOS_HANDLE_TYPE9,
@@ -870,8 +901,8 @@ smbios_type_17_init(void *start, uint32_t memory_size_mb, int instance)
     char buf[16];
     struct smbios_type_17 *p = start;
 
-    /* Specification says Type 17 table has length of 1Bh for v2.3-2.6. */
-    BUILD_BUG_ON(sizeof(*p) != 27);
+    /* Specification says Type 17 table has length of 1Ch for v2.6. */
+    BUILD_BUG_ON(sizeof(*p) != 28);
 
     memset(p, 0, sizeof(*p));
 
@@ -890,6 +921,7 @@ smbios_type_17_init(void *start, uint32_t memory_size_mb, int instance)
     p->bank_locator_str = 0;
     p->memory_type = 0x07; /* RAM */
     p->type_detail = 0;
+    p->attributes = 0;
 
     start += sizeof(*p);
     strcpy(start, "DIMM ");
diff --git a/tools/firmware/hvmloader/smbios_types.h b/tools/firmware/hvmloader/smbios_types.h
index c04b435d31..860617d86a 100644
--- a/tools/firmware/hvmloader/smbios_types.h
+++ b/tools/firmware/hvmloader/smbios_types.h
@@ -147,6 +147,11 @@ struct smbios_type_4 {
     uint8_t serial_number_str;
     uint8_t asset_tag_str;
     uint8_t part_number_str;
+    uint8_t core_count;
+    uint8_t core_enabled;
+    uint8_t thread_count;
+    uint16_t processor_characteristics;
+    uint16_t processor_family_2;
 } __attribute__ ((packed));
 
 /* SMBIOS type 7 - Cache Information */
@@ -185,6 +190,9 @@ struct smbios_type_9 {
     uint16_t slot_id;
     uint8_t slot_characteristics_1;
     uint8_t slot_characteristics_2;
+    uint16_t sgn_base;
+    uint8_t bus_number_base;
+    uint8_t devfn_base;
 } __attribute__ ((packed));
 
 /* SMBIOS type 11 - OEM Strings */
@@ -227,6 +235,7 @@ struct smbios_type_17 {
     uint8_t serial_number_str;
     uint8_t asset_tag_str;
     uint8_t part_number_str;
+    uint8_t attributes;
 } __attribute__ ((packed));
 
 /* SMBIOS type 19 - Memory Array Mapped Address */
-- 
2.50.1



Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Aug 29 09:58:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 09:58:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101003.1454249 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urvsE-0006Zs-Dz; Fri, 29 Aug 2025 09:58:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101003.1454249; Fri, 29 Aug 2025 09:58: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 1urvsE-0006Zj-BV; Fri, 29 Aug 2025 09:58:22 +0000
Received: by outflank-mailman (input) for mailman id 1101003;
 Fri, 29 Aug 2025 09:58:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=yRcD=3J=bounce.vates.tech=bounce-md_30504962.68b179b8.v1-b609b0b9d6014b79849173438dece5da@srs-se1.protection.inumbo.net>)
 id 1urvsC-00065v-I8
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 09:58:20 +0000
Received: from mail180-6.suw31.mandrillapp.com
 (mail180-6.suw31.mandrillapp.com [198.2.180.6])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id af8dfdcf-84be-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 11:58:18 +0200 (CEST)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-6.suw31.mandrillapp.com (Mailchimp) with ESMTP id 4cCtxh6d6Lz2K249B
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 09:58:16 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 b609b0b9d6014b79849173438dece5da; Fri, 29 Aug 2025 09:58:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: af8dfdcf-84be-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1756461496; x=1756731496;
	bh=JA+/yfk9Af6wY74EpBXK3E5RVQRYRs4jfDuZX0QuHCg=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=m2Vx8GKRi5XQ1WlIKrO9KhCYAsYZvk/GwIH5fkiib+MuocsH5tl6CX7hZOt3V8fPv
	 NQihH04Z4VEADubO/W+oEUOVUICsuvYNr9u78l3DgalL98ppwWb2t0VGMxelFyV/Lg
	 8AWiLNzVwpBgw0YAUSZDNcAosZzJP1OtpfqloKFbKIBt3bpi8tjQrpDdOpADk3Z/ws
	 KvEKYFOQ/sWqt6oUCgkia3HPmTY7/ckhKZn4DmZrgiDVKFR+6xygl7QWSU6w2RMwYf
	 NEpJF617dgd4BWD3sRzR0wFfpIUWSYK5etQHlrMI1WCoVM86tuW4XlRpcZdDOgZnGI
	 UO6t856Hc/yLg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1756461496; x=1756721996; i=teddy.astie@vates.tech;
	bh=JA+/yfk9Af6wY74EpBXK3E5RVQRYRs4jfDuZX0QuHCg=;
	h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=aYysHQ4nIG733K+5u2ICwbw03ZwehDibwUXK0bCrnk5upmo/EYZ0Qms2dtCiNNmye
	 rnOrI+9J3jCbYIrOHaq61uWHODqlSzcIiJL8bSEKZy9gM8CQpgEoY6zHtRBZXPb4GH
	 1mlITo7YG6wju6MIP8B9v08TzrQlx7oO1uyMpFkqNnmzgjgxN+KlXrTe3VCXYpQUWV
	 n4G+FeI56U75WhWy3uv0iYYM7r6dyWVrXIRdIVEftNTW82l8nVTo02JXvMUXIFPBdu
	 rMODGIqWmasWB5g5xE+NZ1lMIzKT0QZcUh0wHxReMHm47UkUvTeLiADhi9DMTaLobB
	 TwcM5grDqaiqw==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RESEND=20PATCH=20v2=203/3]=20CHANGELOG.md:=20Add=20SMBIOS=202.6=20update=20statement?=
X-Mailer: git-send-email 2.50.1
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1756461496237
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Oleksii Kurochko" <oleksii.kurochko@gmail.com>, "Community Manager" <community.manager@xenproject.org>
Message-Id: <301a84287488629932950c1cefef3a97c3d9ba0d.1756460430.git.teddy.astie@vates.tech>
In-Reply-To: <cover.1756460430.git.teddy.astie@vates.tech>
References: <cover.1756460430.git.teddy.astie@vates.tech>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.b609b0b9d6014b79849173438dece5da?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250829:md
Date: Fri, 29 Aug 2025 09:58:16 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
v2:
 - introduced
---
 CHANGELOG.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8c4435c181..80a8273d7e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -34,6 +34,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
    - Support in hvmloader for new SMBIOS tables: 7 (Cache Info), 8 (Port
      Connector), 9 (System Slots), 26 (Voltage Probe), 27 (Cooling Device),
      and 28 (Temperature Probe).
+   - Updated SMBIOS version to 2.6.
 
  - On Arm:
     - Ability to enable stack protector
-- 
2.50.1



Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Aug 29 10:07:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 10:07:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101045.1454259 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urw14-0000pA-A6; Fri, 29 Aug 2025 10:07:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101045.1454259; Fri, 29 Aug 2025 10:07: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 1urw14-0000p3-6k; Fri, 29 Aug 2025 10:07:30 +0000
Received: by outflank-mailman (input) for mailman id 1101045;
 Fri, 29 Aug 2025 10:07:29 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oFyT=3J=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1urw12-0000ox-Tz
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 10:07:28 +0000
Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com
 [2a00:1450:4864:20::435])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f7dfce3d-84bf-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 12:07:28 +0200 (CEST)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-3ceb9c3d98cso655407f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 03:07:28 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3d1007c0dc8sm942461f8f.53.2025.08.29.03.07.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 29 Aug 2025 03:07: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>
X-Inumbo-ID: f7dfce3d-84bf-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756462047; x=1757066847; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=cja5uepLUr685RliZg40g4SHqLYWV+HJIgOEWNIsO1k=;
        b=k60DmLVGfLeVdx/AQK95tlMbPcCvZem+j3xgjqBmTNi9VpL5u/kF8nrbvpwXY6AjZY
         7aykDuk8FOfuNQQUrrw+AMioeetUEaRqbLgEdV/4OnDjRsRMkhSf4O7BVCnoWrpwaWwh
         GwD3ZrlIwHYvRMQPzBK4E08bO53S6WnT3Byo4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756462047; x=1757066847;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=cja5uepLUr685RliZg40g4SHqLYWV+HJIgOEWNIsO1k=;
        b=ojFonWrovewdtsBeyzelC5E18wRWViGfvrvinVcGGWvl13qStD88gbYtEcsS7j9PbA
         ET2rcz+OUVlNHcKzjB3snItiHZoLQF3+0Eab94RW0UlCPJu57YOIocPthzh2k+85oZ/U
         7hVTCpFELIYhpnz3Te9VTlVgK7DLOtyMGbMiFVfSp6DfCK2ebygGqJ3pKMvNUBetpz3O
         wkOtCao/vXcrkoVywjEBOc7/l2rf9BpcLizXBsKMlok8b0yFYiOXTTGq/NN6cM6AJ8VS
         G53YBW+HD8uBESEPVzlY9u7XaPDpt2H93ATXENyIn1lqj5PUUDGcNVoSAbe91k6cPW7n
         /L2A==
X-Gm-Message-State: AOJu0YzgBxhDy7GrZfEwDuAS8Dw2F+1BEsbFeQvQMBD+DFs99GZLNAaJ
	GtApx7dSlsFMdmuL2W+OBOv6PzU/CMPufLVfLg5M1mbg9kS8/QfwptNtAFnuMRJNWos=
X-Gm-Gg: ASbGncsnX6QbJgm4vYLM04QoajEG93/BMpNu2zHAvGuQ/Fn6EtXStdQFbiWmYPmOltx
	cwCSLOj+DzEiDOxQSCd3KH6+sR3zV2HYaDa5GVGz2nDlW9tQpyT30cbLdVhFRj6bPnT2P3RFc40
	cQa1ZcDJvgLzBVG4d8QYT8jyCbme2pkn2nXhmEJ5QhQAriABuzocBkUeSAxIhWSIUQn5VKq+HjI
	EcEUEf8QG8LGfv2Bj/7lWwPAUTuSQ7rV8zgtn/bxjF55/ICvM+5NVLUxH7nLjmuQCwivKeZe78q
	RenXX7ENHNX+JR62FErcR60xTrvIPAnKE087E0xlDB8ZouiULTSoAoiHdE6B43R3sBVshBi7h9X
	80O3GnSnkBCnZ5LB4B5HpT2NlJXOSokAoih8lUxd0a9giryXx0/uev5c5Hc/+SWhkBCpC0VQFLM
	x+
X-Google-Smtp-Source: AGHT+IGOFlKXLgCK8yuJP4J4NoTXDovIT3bczXPFkv891lY1TUhg6w+F+EJcIUjz31SL16SoERoxug==
X-Received: by 2002:a05:6000:21c8:b0:3c9:39f3:7af9 with SMTP id ffacd0b85a97d-3c939f37eadmr7562307f8f.9.1756462047440;
        Fri, 29 Aug 2025 03:07:27 -0700 (PDT)
Date: Fri, 29 Aug 2025 12:07:26 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: xen-devel@lists.xenproject.org, Huang Rui <ray.huang@amd.com>
Subject: Re: [PATCH v11 1/5] vpci: Use cleanup to free capability resource
 during deassign
Message-ID: <aLF73jSo3IUUGFJ_@Mac.lan>
References: <20250808080337.28609-1-Jiqian.Chen@amd.com>
 <20250808080337.28609-2-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20250808080337.28609-2-Jiqian.Chen@amd.com>

On Fri, Aug 08, 2025 at 04:03:33PM +0800, Jiqian Chen wrote:
> As cleanup hook of all supported capabilities will be implemented in
> follow-on changes, so to pre-call hook in vpci_deassign_device(), and
> the capability specific clean open-code in there will be removed by
> follow-on corresponding capability changes.
> 
> Since vpci_deassign_device() and vpci_init_capabilities() require
> different cleanup actions, add a boolean parameter to cleanup hook
> to distinguish them.
> 
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>

I think it's missing:

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

With the newline below added:

Reviewed-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

I can do it on commit.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 10:09:34 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 10:09:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101060.1454269 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urw32-0001Oz-Qb; Fri, 29 Aug 2025 10:09:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101060.1454269; Fri, 29 Aug 2025 10: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 1urw32-0001Os-NY; Fri, 29 Aug 2025 10:09:32 +0000
Received: by outflank-mailman (input) for mailman id 1101060;
 Fri, 29 Aug 2025 10:09:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oFyT=3J=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1urw31-0001Og-SW
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 10:09:31 +0000
Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com
 [2a00:1450:4864:20::431])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 40a66c44-84c0-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 12:09:30 +0200 (CEST)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-3c68ac7e18aso1198057f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 03:09:30 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3d0b9402299sm1675451f8f.18.2025.08.29.03.09.28
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 29 Aug 2025 03:09: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>
X-Inumbo-ID: 40a66c44-84c0-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756462170; x=1757066970; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=LwM4gLRQqRlvnrRiP0ICr/Ie7LNUENwfgn9WneYRaSQ=;
        b=TXm/Ap7cJzmaHSJAA1D91xLwq9gd9uOu9ah8NhPbTw/eg+i2ydGtfWBZLADBBBc8pD
         O5iD8UhRHC9IyGWO4LEwppiZ0OwCPfQ/YrGm//0gv97Cqpkf9H9Wi7xXTfaoM2hsqyrX
         /ShwNt511pnvOPzFxZ3cTzI4pne8B4br5Hna8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756462170; x=1757066970;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=LwM4gLRQqRlvnrRiP0ICr/Ie7LNUENwfgn9WneYRaSQ=;
        b=ZTmO3Z3lGyEOai+SZ5/OQi5x5/yMeP82D9eKHP1eR3lJQns1uFAbBr+1fgGnViAs6f
         odp7v6gSZtNdX5edI/Qs04M7faG2+YykReISmjovq017mY0gNNvCqIQXHjGe49meIYg5
         jjN0fnBBVwvaPHxbyxTCe6rrd6CQ4U1JbnqfzxYvyOOM1Ndh5jME02UAarZSi6SOkJXy
         oMJxj1LiTzuKDzyn28VmbXGClDJ0WXRGbq+qKE5QhXVEfj3ZVSQeZDjjOUwXpkLMaV8W
         jMM3FxXbV3S7cGJL24VM8vvS8D7U0sBu1lnX5H4xJRk+KNfO+RjCiLSVG9cn9FuDT8Uz
         XC/Q==
X-Gm-Message-State: AOJu0YwrvZC8n5uojcZQHVA7z4eKkAWWHUNuLahdYloNioir3Ow5VJk/
	FqAzaoV5GDIa6U8hI1fSLiOLxMJjX4P3L42o90P33CTr6e6JnQ0HaFyKiedOI4ceicw/4SiRu51
	fOeUZ
X-Gm-Gg: ASbGncu9by2qlcTwXK7s0aPxYHRLT+xwOR7q4eyipGpnzqhv4FpEOUx9EAL6PwvGuu9
	emwHyfOfnune9rVh4yk6NtuqqCXLO1g7AFHZy+JGUhP/22ogTUEQ3fbm/O21U6fj7/+eZYmP0pE
	4pD+lLE8C6bLdlgp5MIizlgGb3U5A9VKxXMjKfUJtNOvU+GC4t71YoaVhO6MOYehCvBbBgTBq9K
	wgjre349oDuop/bJ/33cj7zOcvyj+GDHWcijV9hufYUbJAgFItAINceL+8Dk0YcmvQXzilJ8N+t
	7RSZy6NC1qm1cUfZwKEcrAMwfWmJnrwGJNBMCjSgbIgVXT5f0hNKKyX9pJEHWTsXbeTwg2Qi67S
	sXzKQCjVwQC2xiVbC5Mt/97UsAGsUqFp8HM8MhNUOxJKHIyA3KQuSaihR5+eREKVI2Q==
X-Google-Smtp-Source: AGHT+IGbBBysamLt5enc7nyS9KLHQADFj3UlrBnt97yaefTQtA8NiBE+nYSkuisYSVW1zJpiqUisBA==
X-Received: by 2002:a05:6000:2382:b0:3c6:e311:e33b with SMTP id ffacd0b85a97d-3c6e32128a0mr17579231f8f.33.1756462169635;
        Fri, 29 Aug 2025 03:09:29 -0700 (PDT)
Date: Fri, 29 Aug 2025 12:09:28 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: xen-devel@lists.xenproject.org, Huang Rui <ray.huang@amd.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH v11 2/5] vpci: Refactor vpci_remove_register to remove
 matched registers
Message-ID: <aLF8WGj45bFZloBz@Mac.lan>
References: <20250808080337.28609-1-Jiqian.Chen@amd.com>
 <20250808080337.28609-3-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20250808080337.28609-3-Jiqian.Chen@amd.com>

On Fri, Aug 08, 2025 at 04:03:34PM +0800, Jiqian Chen wrote:
> vpci_remove_register() only supports removing a register in a time,
> but the follow-on changes need to remove all registers within a range.
> So, refactor it to support removing all registers in a given region.
> 
> And it is no issue to remove a non exist register, so remove the
> __must_check prefix.
> 
> Note: two test cases don't math the new logic of
> vpci_remove_registers(), then modify them.
> 
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>

Reviewed-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 10:21:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 10:21:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101080.1454279 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urwEd-0004P0-NW; Fri, 29 Aug 2025 10:21:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101080.1454279; Fri, 29 Aug 2025 10:21: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 1urwEd-0004Ot-Kt; Fri, 29 Aug 2025 10:21:31 +0000
Received: by outflank-mailman (input) for mailman id 1101080;
 Fri, 29 Aug 2025 10:21:30 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xaUo=3J=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urwEc-0004NE-BW
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 10:21:30 +0000
Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com
 [2a00:1450:4864:20::635])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ecd7e1be-84c1-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 12:21:28 +0200 (CEST)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-afcb78ead12so306483366b.1
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 03:21:28 -0700 (PDT)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-afefc7ee972sm172636666b.1.2025.08.29.03.21.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 29 Aug 2025 03:21: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>
X-Inumbo-ID: ecd7e1be-84c1-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756462888; x=1757067688; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=3q87eWkgYhUKezb9YhLhAMj9qJDk07aaKZMNtfy04QE=;
        b=dHtAYAiF3VU8wmH1gwAWkFkToH4Hb9xoRAEAWVbvjaAvsmLLIg53gJ3u0YcyRRFfIs
         wF05ytpe5nH2DOHV5Wx1ba9tbHFczz6e8eiN2DoXPkhUm1lUfTIzmezac9BYSdMUGwPm
         zEQKLVhn3n6QDprqwFmbeQeYxWd2HPfsoVCghzm9n5lD8CeY2xLFLn1zLq0z79RKgVll
         Mw716k7nHRslaszNVBB5uvKwsMg4woOBMOfp45OkNtnuDTlC6mNqL3UdBCzvGuy1h2GB
         ksJp8/RbUXAs5Bk8xZNmP/iefVOPSFz71dCJqOuYcdalowGyvwZIeGM/k/s71izYF3po
         f8cg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756462888; x=1757067688;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3q87eWkgYhUKezb9YhLhAMj9qJDk07aaKZMNtfy04QE=;
        b=JDz5HV1Sqkvghyoj9JvKXtx6AymXgvLIZ6qY72WIE+SJuWL7XJAMXuhYWjni3su09w
         RGF9hCTyCxesf87MrCYTBimM5RaK94jaJHcmAYOtBcnwaDQjHYuw94BtqF5wYqkYyhd8
         JIzSfKQ3iOIwpGYkaIX3waIw9rUbReVwwN9tHgnWmwocTJ/y6CwdHbq/zAH5PcPoZ8OO
         bFRzprooGyh/sthlTxugUmC6TKIgTi5xi1FlB6YlBNP4EsVFeLh7mM/8lUwx1b2NVFPV
         xc/ypq3GNfy/Juh4OdihOyTW0nhR9zCSEIRBsR84FIFc5ExlXfj8FH9TGEEHvAIDU7B/
         0pMA==
X-Forwarded-Encrypted: i=1; AJvYcCWHH5EUgt1UcmTKjmFso4qnDpcrwJpKR76+yJB+sOw0cekPfeei0EGU/BDlBDTEYAbsFTTzMDLigtg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxHiQ5pm6eorYp1vTqPFgRyrtiogYm8qXdeS9jDvDkluIwDQ+7j
	lWA6mnIm7DaZ8Za+kadqUgpB66ezaZFL1IPeDutTnqDaMo/Ji5MZjX9Tz7/1wcCTAA==
X-Gm-Gg: ASbGnctjztFyzYzfWWSbmfZZz52LBOFc3nzJ7Ywrb2GNo3JYsVRLgeAcr4taeoIVBff
	Cm2dH3QJ/KQ/ITwqGOMUaGjoUd5TJgWBHo5sluRXIFRF2TRwwsPHY2pc10Ji8eO7NDAn3+Kt3Ne
	kjdphvsoG9X51JgSgrCoeAOEruUkROoftstEp50MGJNHweZC5xIcLImtnX7Km3Ovd9ajroJLqzv
	JC7B/vkJez/DPNrgiC0dAoXey/sHOSTE5z1y6PYKO+ewUjVIuFa546sGOaMS6+/UxV9e8EeLnk7
	uZhrtGW/t1wHvl0zjbJBoC3qbROhhDCISEz3QP2oX0LJUEbthSzqejB3GAW6K1M41AlEzUggbVZ
	DTwZB6YpDNCzErxhCGNyJkzGI0xFw3cn7r3qMzz7EQbndLr1kBawx8w6m8+lQauLdQNUs4NiDEh
	T4dCQdx/4=
X-Google-Smtp-Source: AGHT+IG3m9oq51SPQMkrp0f1KbE8uy8DtJT0VF9DRKEOUrDJWIGrXJb+hzGvVdiPByfa1c3SHleySg==
X-Received: by 2002:a17:907:849:b0:afe:74f1:dbf2 with SMTP id a640c23a62f3a-afe74f1df73mr1837509266b.30.1756462888085;
        Fri, 29 Aug 2025 03:21:28 -0700 (PDT)
Message-ID: <77299b94-43cd-4d55-891a-8e1209b4b669@suse.com>
Date: Fri, 29 Aug 2025 12:21:26 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/pvshim: disable PDX compression in PV shim defconfig
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20250829075154.48787-1-roger.pau@citrix.com>
 <e11d81c9-cb3b-4838-b25d-50545deba64b@suse.com> <aLFrLxdcb2nIkim6@Mac.lan>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <aLFrLxdcb2nIkim6@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 29.08.2025 10:56, Roger Pau MonnÃ© wrote:
> On Fri, Aug 29, 2025 at 10:10:59AM +0200, Jan Beulich wrote:
>> On 29.08.2025 09:51, Roger Pau Monne wrote:
>>> There's no need for PDX compression given the memory map provided by Xen
>>> to guests is contiguous, turn off the feature by default in the PV shim
>>> defconfig.
>>>
>>> Reported-by: Jan Beulich <jbeulich@suse.com>
>>> Fixes: c5c45bcbd6a1 ('pdx: introduce a new compression algorithm based on region offsets')
>>> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
>>
>> Acked-by: Jan Beulich <jbeulich@suse.com>
>>
>> Not sure if a Fixes: tag is really appropriate here. The shim is working as
>> is, just carrying code which won't ever be used.
> 
> I was borderline also, but I felt it was important to notice that the
> change here should ideally had been part of that commit.  Do you have
> a recommendation of any other tag I could use for that purpose?

In rare cases I think I've used Amends: (not formally mentioned anywhere,
of course).

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 10:30:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 10:30:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101095.1454289 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urwMu-0005fP-Fg; Fri, 29 Aug 2025 10:30:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101095.1454289; Fri, 29 Aug 2025 10:30: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 1urwMu-0005ex-D6; Fri, 29 Aug 2025 10:30:04 +0000
Received: by outflank-mailman (input) for mailman id 1101095;
 Fri, 29 Aug 2025 10:30:03 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oFyT=3J=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1urwMt-0005OQ-Fi
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 10:30:03 +0000
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com
 [2a00:1450:4864:20::330])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1e727f39-84c3-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 12:30:01 +0200 (CEST)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-45b4d89217aso11635295e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 03:30:01 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-45b7e8879cesm31910185e9.12.2025.08.29.03.30.00
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 29 Aug 2025 03:30:00 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1e727f39-84c3-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756463401; x=1757068201; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=IxBWRwmDn7a/yzlbS6M3NIL8naXz1opl1I7teYfXxZ4=;
        b=UU8pgKsVWGkATDSB9JgWe8JwJ2halYcn/iZH1IiLS+2XLPB51BCd1l0T+c8+HclLNd
         RbzrNQiNXmE+32qSggy/I4bwr86jOsLMHl+ACbTEAZJ0xRfiljvUXZhUkIRtAltxvE5O
         StPCqhjzGgKJ3QiO1IoavUgrWW8HjIDfauzi8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756463401; x=1757068201;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=IxBWRwmDn7a/yzlbS6M3NIL8naXz1opl1I7teYfXxZ4=;
        b=o2hY1yDfZe1y3/OSvksibFOageVb4sYZQyNkzVRHwrwgTBfWZIOBB3zo6ZKZYFRf7r
         tShTF4lk/B+sd4hyGf5wuU4qB1XRKQkZ7xzXFTqawd2bA2uVnYP73qL23PZNPSxxYfVh
         H14tNadkAordqeFdV+rZUfhLn24ENaxw1Mga9WRD8O7tpkrg8BkV2P7xZrmBpVjh472D
         EzQ2CUQxRW2DGDhMdXtEkqYCihhAz8KBavZeML4V4egxOuAFkOXrAR/8h10mAY0j1KNv
         Bb9T3kpxWGJ7l30OsRPnaNWBzXUI/92hbPWZsIwKKP9DHd58JmR4fgl8g+3AZDIdhaxJ
         Rv4g==
X-Gm-Message-State: AOJu0YzVeP2IUicMQ7wEiBwW1SABopY7C1ZWAJHm+AE0/nt4FVsdFyF6
	fxFDdhjggzxEIBB7/yX9wJzbGOOfeCOkhmHs552b8k72FFdXNBxgiPdJA7HGR8CSVdI=
X-Gm-Gg: ASbGnctuPHDRuhQN83gwz81LLvGq4ALq+BDy3aA20BZXKU6zHye1gRe1irkqZVegXCO
	BrjPGl5Tt4yBsQlVJH8E6FIly4KGwqEEEm2//vnlwdFipzyUy46Hqc5vk/fmTp2SHR+M6ddgLhA
	jxq1tp/I+0wvnG1LJEoHd4SFd8d16TGw5VePR8iLEcOoxgFuKpphxlvNKJZQU9yFmUmq22RiEsD
	Itf2Ut80KE5SSMuY97UZNIRZh14XlCBtGeQkEv5smRQC6CBosECnWzIaI5FHStwqZk+A+D3XLYq
	2OTuZpCPweXLXG/VBMdvUWwm9n1sAEywFXfxn+KsndU6GtuEdANogmF+4z0ICcxsQbv+nxLLCaI
	8HirRgt5TwxCKlr+zzokXMljswEyH4UoEdbJwFxWGyOREopgN5qEQV42IquDXdqXyQw==
X-Google-Smtp-Source: AGHT+IHKw8H0jNLHj6015SQ0KjUj+22ds2GJg5kWIoxn6dGNWq2PIv+9XKdogI5BYdPOWBMLbnh7TA==
X-Received: by 2002:a05:600c:1e8a:b0:459:ddad:a3a3 with SMTP id 5b1f17b1804b1-45b517ddbd5mr243005005e9.25.1756463400580;
        Fri, 29 Aug 2025 03:30:00 -0700 (PDT)
Date: Fri, 29 Aug 2025 12:29:59 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: xen-devel@lists.xenproject.org, Huang Rui <ray.huang@amd.com>
Subject: Re: [PATCH v11 4/5] vpci/msi: Implement cleanup function for MSI
Message-ID: <aLGBJ0KSlt75BTKA@Mac.lan>
References: <20250808080337.28609-1-Jiqian.Chen@amd.com>
 <20250808080337.28609-5-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20250808080337.28609-5-Jiqian.Chen@amd.com>

On Fri, Aug 08, 2025 at 04:03:36PM +0800, Jiqian Chen wrote:
> When MSI initialization fails, vPCI hides the capability, but
> removing handlers and datas won't be performed until the device is
> deassigned. So, implement MSI cleanup hook that will be called to
> cleanup MSI related handlers and free it's associated data when
> initialization fails.
> 
> Since cleanup function of MSI is implemented, delete the open-code
> in vpci_deassign_device().
> 
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> ---
> cc: "Roger Pau MonnÃ©" <roger.pau@citrix.com>
> ---
> v10->v11 changes:
> * Add hide paratemer to cleanup_msi().
> * Check hide, if false return directly instead of letting ctrl RO.
> * Delete xfree(pdev->vpci->msi); in vpci_deassign_device().
> * Remove Roger's Reviewed-by since patch change.
> 
> v9->v10 changes:
> No.
> 
> v8->v9 changes:
> * Add Roger's Reviewed-by.
> 
> v7->v8 changes:
> * Add a comment to describe why "-2" in cleanup_msi().
> * Given the code in vpci_remove_registers() an error in the removal of
>   registers would likely imply memory corruption, at which point it's
>   best to fully disable the device. So, Rollback the last two modifications of v7.
> 
> v6->v7 changes:
> * Change the pointer parameter of cleanup_msi() to be const.
> * When vpci_remove_registers() in cleanup_msi() fails, not to return
>   directly, instead try to free msi and re-add ctrl handler.
> * Pass pdev->vpci into vpci_add_register() instead of pdev->vpci->msi in
>   init_msi() since we need that every handler realize that msi is NULL
>   when msi is free but handlers are still in there.
> 
> v5->v6 changes:
> No.
> 
> v4->v5 changes:
> * Change definition "static void cleanup_msi" to "static int cf_check cleanup_msi"
>   since cleanup hook is changed to be int.
> * Add a read-only register for MSI Control Register in the end of cleanup_msi.
> 
> v3->v4 changes:
> * Change function name from fini_msi() to cleanup_msi().
> * Remove unnecessary comment.
> * Change to use XFREE to free vpci->msi.
> 
> v2->v3 changes:
> * Remove all fail path, and use fini_msi() hook instead.
> * Change the method to calculating the size of msi registers.
> 
> v1->v2 changes:
> * Added a new function fini_msi to free all MSI resources instead of using an array
>   to record registered registers.
> 
> Best regards,
> Jiqian Chen.
> ---
>  xen/drivers/vpci/msi.c  | 49 ++++++++++++++++++++++++++++++++++++++++-
>  xen/drivers/vpci/vpci.c |  1 -
>  2 files changed, 48 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/drivers/vpci/msi.c b/xen/drivers/vpci/msi.c
> index c3eba4e14870..6ab45b9ba655 100644
> --- a/xen/drivers/vpci/msi.c
> +++ b/xen/drivers/vpci/msi.c
> @@ -193,6 +193,53 @@ static void cf_check mask_write(
>      msi->mask = val;
>  }
>  
> +static int cf_check cleanup_msi(const struct pci_dev *pdev, bool hide)
> +{
> +    int rc;
> +    unsigned int end;
> +    struct vpci *vpci = pdev->vpci;
> +    const unsigned int msi_pos = pdev->msi_pos;
> +    const unsigned int ctrl = msi_control_reg(msi_pos);
> +
> +    if ( !msi_pos || !vpci->msi )
> +        return 0;
> +
> +    if ( vpci->msi->masking )
> +        end = msi_pending_bits_reg(msi_pos, vpci->msi->address64);
> +    else
> +        /*
> +         * "-2" here is to cut the reserved 2 bytes of Message Data when
> +         * there is no masking support.
> +         */
> +        end = msi_mask_bits_reg(msi_pos, vpci->msi->address64) - 2;
> +
> +    rc = vpci_remove_registers(vpci, ctrl, end - ctrl);
> +    if ( rc )
> +    {
> +        printk(XENLOG_ERR "%pd %pp: fail to remove MSI handlers rc=%d\n",
> +               pdev->domain, &pdev->sbdf, rc);
> +        ASSERT_UNREACHABLE();
> +        return rc;
> +    }
> +
> +    XFREE(vpci->msi);
> +
> +    if ( !hide )
> +        return 0;

Kind of the same comment as in the previous patch, for the non-hide
case there's likely no reason to perform the removal of the registers,
as the caller will take care of that.  The function could be
short-circuited earlier as:

if ( !hide )
{
    XFREE(vpci->msi);
    return 0;
}

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 10:31:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 10:31:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101106.1454300 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urwNz-0006hN-QJ; Fri, 29 Aug 2025 10:31:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101106.1454300; Fri, 29 Aug 2025 10:31: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 1urwNz-0006hG-M0; Fri, 29 Aug 2025 10:31:11 +0000
Received: by outflank-mailman (input) for mailman id 1101106;
 Fri, 29 Aug 2025 10:31:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oFyT=3J=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1urwFN-0004NE-Ej
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 10:22:17 +0000
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com
 [2a00:1450:4864:20::336])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 08e56945-84c2-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 12:22:15 +0200 (CEST)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-45b7da4101fso3982385e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 03:22:15 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-45b6f0d3073sm124654065e9.7.2025.08.29.03.22.14
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 29 Aug 2025 03:22: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>
X-Inumbo-ID: 08e56945-84c2-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756462935; x=1757067735; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=EZ3WXGHAITG4NL0OQNIQYH4tMA7WBzEYvhsSVufX5H0=;
        b=JqaotF/SCWIXCGNQ83Af4v0a2PUZalPad759sa03gdfqbtMlihSKLhEgFCPBjdk+6e
         RxkNVBdQQo2ShfCqHyfUadR6YQg3L7XUpJZiAJvXtYuumoQBzeWltqBqouqehWVxQ18b
         ksaSWJr9QKYO/XWQ6ZRewQwalSHKCNvZMmf3Q=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756462935; x=1757067735;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=EZ3WXGHAITG4NL0OQNIQYH4tMA7WBzEYvhsSVufX5H0=;
        b=cIrCzYbr1YMqkanOe3Tgsz0c6SMNcmYrbKPXaQITxp6Ot2Dx1bAEh50ioOFbCjni6S
         +uL8y+kDJ3IoBWixUhB4slarFrkA7TDPfVQGPjEoAMQwe2EJLErkE/BisW7O1ZyK1kNj
         w3U9K7bt7moe9IVR/dzZgYfuc5lsRZoP4OgVpE9yQYexRrcp67jfUDcdgG4LuQ9Jznsq
         SOe3V3dB9LjIfPnodhRbF/3FpQhENggo5fUDSDRm/xn2Hwqk5LsSlwnqCkkRTyXprUP9
         GIpc0CcqPuz2y66lBXHFIttBjNYOz4N9CKzrlKQhotjQlrMQ5l25eMfHPLy4s0pLnwwk
         hJCg==
X-Gm-Message-State: AOJu0Ywh6PEtVy0LNQeZxZKjKNQJMIpWTjcfxdCv8NOyHIVWnhyH/qgO
	9bvm8EEtzmYITElC+u7QEaLNQ1VGbxOIICg6C2RRz50c3htsoytar9RHM4QjwXZcI3gQVjDjD79
	LmBhV
X-Gm-Gg: ASbGncvcoVM2armnMsOQGby0JZPLKskr1SksTmMWQGl/hhjJbP6E3vbLOqPPPmNpauY
	xyeWqZkYQ4NynAA1hEzzn9L1c6GncMqQKlm9VczIhzCT7KBDGUVuGP8BYcHfNobB8ntLgwkuhuT
	GQ90uDLzvqBvnR9GZjfhwzi7RR27eHqkXLBvhtIiW0n415nnI5YwcmkuJFrpZuDHYYty6B4Os4a
	hHpkSVeGTmA+YLa1HoM2QoOIZnCdHnZXp2EPjpdNcDI7TNsNc2vkibWYgo5imPVS0gEZHy96DU7
	JUAlhKZHotZhCyfo+cMCPWeYBlG3fPFLI4GYRNsxg9m4Kqy7or8OH0LNA5oLyKqPYHEy7jnn0qK
	q22VqQlu5VUc4qunEh7r7Kvc2SR4Hx5HAUIGGlw3z40pRrpSoWuyAc5nHWW+g3aJu9bBv3dN1e/
	0u
X-Google-Smtp-Source: AGHT+IGGqvqacn/kJGuZG29D732SAFJPMU5NYSICQBzM1QjiomdNUMtMoNsQq03oozEDDVxKsDefYg==
X-Received: by 2002:a05:600c:35c9:b0:456:201a:99f with SMTP id 5b1f17b1804b1-45b517cbf0emr235906495e9.18.1756462934976;
        Fri, 29 Aug 2025 03:22:14 -0700 (PDT)
Date: Fri, 29 Aug 2025 12:22:13 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: xen-devel@lists.xenproject.org, Huang Rui <ray.huang@amd.com>
Subject: Re: [PATCH v11 3/5] vpci/rebar: Implement cleanup function for Rebar
Message-ID: <aLF_VWs-njIzLk7e@Mac.lan>
References: <20250808080337.28609-1-Jiqian.Chen@amd.com>
 <20250808080337.28609-4-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20250808080337.28609-4-Jiqian.Chen@amd.com>

On Fri, Aug 08, 2025 at 04:03:35PM +0800, Jiqian Chen wrote:
> When Rebar initialization fails, vPCI hides the capability, but
> removing handlers and datas won't be performed until the device is
> deassigned. So, implement Rebar cleanup hook that will be called to
> cleanup Rebar related handlers and free it's associated data when
> initialization fails.
> 
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> ---
> cc: "Roger Pau MonnÃ©" <roger.pau@citrix.com>
> ---
> v10->v11 changes:
> * Add ASSERT_UNREACHABLE() when vpci_remove_registers() fails
> * When hide == true, add handlers to let Rebar ctrl be RO.
> * Remove Roger's Reviewed-by since patch change.
> 
> v9->v10 changes:
> v8->v9 changes:
> No.
> 
> v7->v8 changes:
> * Add Roger's Reviewed-by.
> 
> v6->v7 changes:
> * Change the pointer parameter of cleanup_rebar() to be const.
> * Print error when vpci_remove_registers() fail in cleanup_rebar().
> 
> v5->v6 changes:
> No.
> 
> v4->v5 changes:
> * Change definition "static void cleanup_rebar" to "static int cf_check cleanup_rebar" since cleanup hook is changed to be int.
> 
> v3->v4 changes:
> * Change function name from fini_rebar() to cleanup_rebar().
> * Change the error number to be E2BIG and ENXIO in init_rebar().
> 
> v2->v3 changes:
> * Use fini_rebar() to remove all register instead of in the failure path of init_rebar();
> 
> v1->v2 changes:
> * Called vpci_remove_registers() to remove all possible registered registers instead of using a array to record all registered register.
> 
> Best regards,
> Jiqian Chen.
> ---
>  xen/drivers/vpci/rebar.c | 66 +++++++++++++++++++++++++++++++++-------
>  1 file changed, 55 insertions(+), 11 deletions(-)
> 
> diff --git a/xen/drivers/vpci/rebar.c b/xen/drivers/vpci/rebar.c
> index 3c18792d9bcd..91d5369d75e2 100644
> --- a/xen/drivers/vpci/rebar.c
> +++ b/xen/drivers/vpci/rebar.c
> @@ -49,6 +49,57 @@ static void cf_check rebar_ctrl_write(const struct pci_dev *pdev,
>      bar->guest_addr = bar->addr;
>  }
>  
> +static int cf_check cleanup_rebar(const struct pci_dev *pdev, bool hide)
> +{
> +    int rc;
> +    uint32_t ctrl;
> +    unsigned int nbars;
> +    unsigned int rebar_offset = pci_find_ext_capability(pdev->sbdf,
> +                                                        PCI_EXT_CAP_ID_REBAR);
> +
> +    if ( !rebar_offset || !is_hardware_domain(pdev->domain) )
> +    {
> +        ASSERT_UNREACHABLE();
> +        return 0;
> +    }
> +
> +    ctrl = pci_conf_read32(pdev->sbdf, rebar_offset + PCI_REBAR_CTRL(0));
> +    nbars = MASK_EXTR(ctrl, PCI_REBAR_CTRL_NBAR_MASK);
> +
> +    rc = vpci_remove_registers(pdev->vpci, rebar_offset + PCI_REBAR_CAP(0),
> +                               PCI_REBAR_CTRL(nbars - 1));
> +    if ( rc )
> +    {
> +        printk(XENLOG_ERR "%pd %pp: fail to remove Rebar handlers rc=%d\n",
> +               pdev->domain, &pdev->sbdf, rc);
> +        ASSERT_UNREACHABLE();
> +        return rc;
> +    }
> +
> +    if ( !hide )
> +        return 0;

Now that the handler can differentiate between calls to hide the
capability versus calls from device deassign, do we need to call
vpci_remove_registers() for the non-hiding case?

The non-hiding case is only used from vpci_deassign_device(), and just
after having called all the cleanup hooks that function purges any
remaining registered handlers.  It would be OK to do something like:

static int cf_check cleanup_rebar(const struct pci_dev *pdev, bool hide)
{
    int rc;
    uint32_t ctrl;
    unsigned int nbars;
    unsigned int rebar_offset = pci_find_ext_capability(pdev->sbdf,
                                                        PCI_EXT_CAP_ID_REBAR);

    if ( !rebar_offset || !is_hardware_domain(pdev->domain) )
    {
        ASSERT_UNREACHABLE();
        return 0;
    }

    if ( !hide )
        return 0;

    ... remove handler + mask register ...

Thoughts?

> +
> +    /*
> +     * The driver may not traverse the capability list and think device
> +     * supports Rebar by default. So here let the control register of Rebar
> +     * be Read-Only is to ensure Rebar disabled.
> +     */
> +    for ( unsigned int i = 0; i < nbars; i++ )
> +    {
> +        rc = vpci_add_register(pdev->vpci, vpci_hw_read32, NULL,
> +                               rebar_offset + PCI_REBAR_CTRL(i), 4, NULL);
> +        if ( rc )
> +        {
> +            printk(XENLOG_ERR
> +                   "%pd %pp: fail to add Rebar ctrl handler rc=%d\n",
> +                   pdev->domain, &pdev->sbdf, rc);
> +            return rc;
> +        }
> +    }
> +
> +    return 0;
> +}
> +
>  static int cf_check init_rebar(struct pci_dev *pdev)
>  {
>      uint32_t ctrl;
> @@ -80,7 +131,7 @@ static int cf_check init_rebar(struct pci_dev *pdev)
>          {
>              printk(XENLOG_ERR "%pd %pp: too big BAR number %u in REBAR_CTRL\n",
>                     pdev->domain, &pdev->sbdf, index);
> -            continue;
> +            return -E2BIG;
>          }
>  
>          bar = &pdev->vpci->header.bars[index];
> @@ -88,7 +139,7 @@ static int cf_check init_rebar(struct pci_dev *pdev)
>          {
>              printk(XENLOG_ERR "%pd %pp: BAR%u is not in memory space\n",
>                     pdev->domain, &pdev->sbdf, index);
> -            continue;
> +            return -ENXIO;

I'm unsure we want to return an error here and in the check above,
given this capability is dom0 only, we might want to just skip the BAR
and continue, aiming for the other resizable BARs to be functional?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 10:31:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 10:31:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101119.1454309 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urwOW-0007Kb-5b; Fri, 29 Aug 2025 10:31:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101119.1454309; Fri, 29 Aug 2025 10: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 1urwOW-0007KU-21; Fri, 29 Aug 2025 10:31:44 +0000
Received: by outflank-mailman (input) for mailman id 1101119;
 Fri, 29 Aug 2025 10:31:42 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oFyT=3J=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1urwOU-00075X-TX
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 10:31:42 +0000
Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com
 [2a00:1450:4864:20::434])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5ac7d798-84c3-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 12:31:42 +0200 (CEST)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-3ceb9c3d98cso670983f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 03:31:42 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-45b72c55c1bsm111559315e9.10.2025.08.29.03.31.41
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 29 Aug 2025 03:31: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>
X-Inumbo-ID: 5ac7d798-84c3-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756463502; x=1757068302; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=u3Wb6xFED7ceBBSRRCmhfub6Z8cAaaYt5mk/x6fGVQ4=;
        b=rr2QlFUngdpBJR8GORFY+5HEvBfK8l8HbEJR8hiHFAPNW6lxUju9YT1pIyYrFxYoK1
         ZyEgK2V5q61t2GKb46STy8HC7kNB03wM3SQnkCJyloMXdXYM/QK95IdjNf2m4ZZ1TCuv
         DcpqHBiaSgtpiMU/HFnJt/8WvcmNbYF6aWM4w=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756463502; x=1757068302;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=u3Wb6xFED7ceBBSRRCmhfub6Z8cAaaYt5mk/x6fGVQ4=;
        b=V/KJOieyMrx462ROAsD7QcTHoUnXUII+YIKQMvmGipdd02teNnBOMHA3Re/h0BpSZ9
         /WFMKJTQdIJnx0m99HQsA2MPZostvi9+lRtCMkOo84Jt1iOiju4qxLxMB/doZZPub+6t
         UVAc4vhO5ZpCJIGwtxSc/OXya/VPb9tP2Xcw0Vwmpx+PWjk0CRWTVew8VEu64bvuVxKF
         ohgM+6683KgWCZ/byQYgnW7zuXym+kS+HIfbbKQADpOT+OuiN1YyerX7L43opfGRZ8XJ
         UwlWZt3byCsBsI34JWE4JXKd9V9i0daJjWlp0VJfHoASd+EBl6MT1eXD++MXjTd/fvk4
         VTYg==
X-Forwarded-Encrypted: i=1; AJvYcCXxJFEUGTyv2g2Lpg6CiI2fCZg2g0LRufpVmNfF/gvKLheP17vAVIE5H5+Rx77LDRjNp1xQvBuvOZI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyW4uEmP6AF9pLov9x1n/gy84RrjvEZwquiapghr5g9KSvHLhog
	0nAxrWN6/3kqc9fJMuplZKih0ClgFe3Tsh9MrYNtQARu6GHAqXTFRcwJOKfI7In2Xj8=
X-Gm-Gg: ASbGncsPABzHIMJz++0JVRnjxQLttHtVzz4tezkhR5vF3nRvpqW3FQzgcssPvseU0te
	7qqdG8FN+XVPi7SJTXBc47ZESPsPAS5XoyDWsxkqsh/Jzv1VExl51xiU9jYOSnisFpVRjujOzFe
	/A8O29RF5MJGXre/me5VSqMcugdyFhum/1Xqi+lGTVZdYlnPBqfvJeT2VHCPFaQX95uUPFTUvmb
	QMaKQAaJ0Z8g9zJJ7Np0DsQcT+sFXxlKUR4RQvH1VacSbZPDI3bmOr/OzeKMlBS+jNKPR0y91Dl
	igp5RjgXOCMYkb2hPtU6Lobb0GiMqxXo/RTC551q9m+o6jdGvkAWNQcja2SYByHkBRjTS2kUYTU
	pu0I5FQguFVleZUtqlYGam9fgVvzYDRRt3Y9A27WL3DL+239xl6OFXkd+b7Cgt24y9A==
X-Google-Smtp-Source: AGHT+IHN4RBZoxwBzdiR2o2nL8kZ4jhdtdsMwKZvl8kkVmdXx7Wn+lUadlT70RUdz5xS4Fwp6Y0qQg==
X-Received: by 2002:a05:6000:178b:b0:3c8:e9d3:c38a with SMTP id ffacd0b85a97d-3c8e9d3d0bemr16560484f8f.5.1756463501833;
        Fri, 29 Aug 2025 03:31:41 -0700 (PDT)
Date: Fri, 29 Aug 2025 12:31:40 +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>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH] x86/pvshim: disable PDX compression in PV shim defconfig
Message-ID: <aLGBjKcXi_uwifBk@Mac.lan>
References: <20250829075154.48787-1-roger.pau@citrix.com>
 <e11d81c9-cb3b-4838-b25d-50545deba64b@suse.com>
 <aLFrLxdcb2nIkim6@Mac.lan>
 <77299b94-43cd-4d55-891a-8e1209b4b669@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <77299b94-43cd-4d55-891a-8e1209b4b669@suse.com>

On Fri, Aug 29, 2025 at 12:21:26PM +0200, Jan Beulich wrote:
> On 29.08.2025 10:56, Roger Pau MonnÃ© wrote:
> > On Fri, Aug 29, 2025 at 10:10:59AM +0200, Jan Beulich wrote:
> >> On 29.08.2025 09:51, Roger Pau Monne wrote:
> >>> There's no need for PDX compression given the memory map provided by Xen
> >>> to guests is contiguous, turn off the feature by default in the PV shim
> >>> defconfig.
> >>>
> >>> Reported-by: Jan Beulich <jbeulich@suse.com>
> >>> Fixes: c5c45bcbd6a1 ('pdx: introduce a new compression algorithm based on region offsets')
> >>> Signed-off-by: Roger Pau MonnÃ© <roger.pau@citrix.com>
> >>
> >> Acked-by: Jan Beulich <jbeulich@suse.com>
> >>
> >> Not sure if a Fixes: tag is really appropriate here. The shim is working as
> >> is, just carrying code which won't ever be used.
> > 
> > I was borderline also, but I felt it was important to notice that the
> > change here should ideally had been part of that commit.  Do you have
> > a recommendation of any other tag I could use for that purpose?
> 
> In rare cases I think I've used Amends: (not formally mentioned anywhere,
> of course).

Oh, how would you feel about adding it formally to
sending-patches.pandoc?

It's a rare tag, but I would find it useful in contexts like the
above.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 10:42:01 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 10:42:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101130.1454318 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urwYN-0000o3-0n; Fri, 29 Aug 2025 10:41:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101130.1454318; Fri, 29 Aug 2025 10:41:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urwYM-0000nw-UD; Fri, 29 Aug 2025 10:41:54 +0000
Received: by outflank-mailman (input) for mailman id 1101130;
 Fri, 29 Aug 2025 10:41:53 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oFyT=3J=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1urwYL-0000nq-JT
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 10:41:53 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c5746d6a-84c4-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 12:41:51 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-45b4d89217aso11719425e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 03:41:51 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-45b7e8ab832sm32607095e9.23.2025.08.29.03.41.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 29 Aug 2025 03: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>
X-Inumbo-ID: c5746d6a-84c4-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756464110; x=1757068910; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=U5yySbhjffhRoItwsnqVmwKIUq2X4Y3Gs6VuJPzQPPM=;
        b=vFFcbR6PbX+lwwH5VTBlrZtoqOMiB1kMfnJOkTtVAp/bQXU/3ToVKnwTfkypk01/4E
         uMRoe1yalSvVUlLPDSVN3PIA+RP4pzgl1j6+1jdg+h3A+//GhU0dDL5xzwJnkkCidBtA
         XSK0BsbHQjEQaWr2v34EnvjbnAZOQZGEbW+9U=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756464110; x=1757068910;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=U5yySbhjffhRoItwsnqVmwKIUq2X4Y3Gs6VuJPzQPPM=;
        b=C1gUm6ctcdbxu9XS6YtW+3ncImkaBxAFT4ElCSMOIpDrv+U3BkBpZ+y7mvWrycqX6D
         SPKjMu2MM1Xh6D9LnM9EnSuzXojHtTgBPGrlstGJNMS5SQzGSzKDW5bythuWKKht5+Z2
         qeWuICHqS2Lb/FzQh50aKFEASaqOXJQs/RAYdgr+GGAYgtfFlpofKTJS/5VbGlSx2bjA
         8KmYXfQe+ridUE5Wzc3Nt3LzHH+ffn403m+gMUqCyOPtUIbhnlauSNyNPKH3NkKqQF3J
         MQT5Yrfj3o8H8V1/IOdX34c9AuH1QvERX0hFZ0Ipema9Hq5mP9xAnjCQ1I8OD7wxsOPo
         cGXQ==
X-Gm-Message-State: AOJu0YwMogRLD9uUok52u9UYgqJPYKNxEWzIZSPXIIrzTA/4MRskr5/J
	rZN3ME/lQZ3HRpj4oRWrxbhDjUNqvgCv3GZkP4fFlyZ1K6BwebL01nmNW817tdWsp11JBEOJzfx
	fEvho
X-Gm-Gg: ASbGncuESqp8QAChUg85sA+lhzNFhGlvd11SgEN0be+PvFXvjZVAdYDeGn+HJ1BwOyp
	3oV0SIJdZi5PM4dks7gfqf1SkR/tIZgjIMQ8l+1H8+UTt+0rAX5ZBjKUCz9iXjrLrSRB7QnhIPN
	bs4tRPv8KCuONzoIVPsyrjI2wG3YQTcoUD2SnGMXyux+eFsGs3B5VDYVFH3vENWlgz0A7CP0avP
	pqxPjW0VvYSfdPZ2Ig/yq1tEVCkorHBq9wtekHYn8Pi+7RUG0hfevT32az2HuHriOodyeesjHnq
	5lHhQ+NzV4isWfF0WHR7BhygyIlX6xEdVS98OveY4Jj+Kn1+TmXkHGTZsWBFnH2F0Ty/oXUdq51
	j+4/PRo1WKn5tWuRTVrMGqBMU4MzpHQ4G8pz6GnHM/+6uBEorMR7OlVElscMnAxBB8FNjYJJr49
	/X
X-Google-Smtp-Source: AGHT+IHfEXFAHHTr00XVeh3iisPKNQfz2I4z25nbQ/tWk8drsiSfv1Z5pJyswrFhmBhxta+BjMw+1A==
X-Received: by 2002:a05:600c:198f:b0:458:7005:2ac3 with SMTP id 5b1f17b1804b1-45b5f8479f3mr145767515e9.21.1756464110435;
        Fri, 29 Aug 2025 03:41:50 -0700 (PDT)
Date: Fri, 29 Aug 2025 12:41:48 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: xen-devel@lists.xenproject.org, Huang Rui <ray.huang@amd.com>
Subject: Re: [PATCH v11 4/5] vpci/msi: Implement cleanup function for MSI
Message-ID: <aLGD7JKYiTUtSQ5h@Mac.lan>
References: <20250808080337.28609-1-Jiqian.Chen@amd.com>
 <20250808080337.28609-5-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20250808080337.28609-5-Jiqian.Chen@amd.com>

On Fri, Aug 08, 2025 at 04:03:36PM +0800, Jiqian Chen wrote:
> When MSI initialization fails, vPCI hides the capability, but
> removing handlers and datas won't be performed until the device is
> deassigned. So, implement MSI cleanup hook that will be called to
> cleanup MSI related handlers and free it's associated data when
> initialization fails.
> 
> Since cleanup function of MSI is implemented, delete the open-code
> in vpci_deassign_device().
> 
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> ---
> cc: "Roger Pau MonnÃ©" <roger.pau@citrix.com>
> ---
> v10->v11 changes:
> * Add hide paratemer to cleanup_msi().
> * Check hide, if false return directly instead of letting ctrl RO.
> * Delete xfree(pdev->vpci->msi); in vpci_deassign_device().
> * Remove Roger's Reviewed-by since patch change.
> 
> v9->v10 changes:
> No.
> 
> v8->v9 changes:
> * Add Roger's Reviewed-by.
> 
> v7->v8 changes:
> * Add a comment to describe why "-2" in cleanup_msi().
> * Given the code in vpci_remove_registers() an error in the removal of
>   registers would likely imply memory corruption, at which point it's
>   best to fully disable the device. So, Rollback the last two modifications of v7.
> 
> v6->v7 changes:
> * Change the pointer parameter of cleanup_msi() to be const.
> * When vpci_remove_registers() in cleanup_msi() fails, not to return
>   directly, instead try to free msi and re-add ctrl handler.
> * Pass pdev->vpci into vpci_add_register() instead of pdev->vpci->msi in
>   init_msi() since we need that every handler realize that msi is NULL
>   when msi is free but handlers are still in there.
> 
> v5->v6 changes:
> No.
> 
> v4->v5 changes:
> * Change definition "static void cleanup_msi" to "static int cf_check cleanup_msi"
>   since cleanup hook is changed to be int.
> * Add a read-only register for MSI Control Register in the end of cleanup_msi.
> 
> v3->v4 changes:
> * Change function name from fini_msi() to cleanup_msi().
> * Remove unnecessary comment.
> * Change to use XFREE to free vpci->msi.
> 
> v2->v3 changes:
> * Remove all fail path, and use fini_msi() hook instead.
> * Change the method to calculating the size of msi registers.
> 
> v1->v2 changes:
> * Added a new function fini_msi to free all MSI resources instead of using an array
>   to record registered registers.
> 
> Best regards,
> Jiqian Chen.
> ---
>  xen/drivers/vpci/msi.c  | 49 ++++++++++++++++++++++++++++++++++++++++-
>  xen/drivers/vpci/vpci.c |  1 -
>  2 files changed, 48 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/drivers/vpci/msi.c b/xen/drivers/vpci/msi.c
> index c3eba4e14870..6ab45b9ba655 100644
> --- a/xen/drivers/vpci/msi.c
> +++ b/xen/drivers/vpci/msi.c
> @@ -193,6 +193,53 @@ static void cf_check mask_write(
>      msi->mask = val;
>  }
>  
> +static int cf_check cleanup_msi(const struct pci_dev *pdev, bool hide)
> +{
> +    int rc;
> +    unsigned int end;
> +    struct vpci *vpci = pdev->vpci;
> +    const unsigned int msi_pos = pdev->msi_pos;
> +    const unsigned int ctrl = msi_control_reg(msi_pos);
> +
> +    if ( !msi_pos || !vpci->msi )
> +        return 0;

I'm afraid the above is not correct, even if vpci->msi == NULL we
still want to hide the capability when requested to do so, that would
be the case if the memory alloc of vpci->msi fails in init_msi().

This should be:

if ( !msi_pos )
{
    ASSERT_UNREACHABLE();
    return 0;
}

if ( !hide )
{
    XFREE(vpci->msi);
    return 0;
}



> +
> +    if ( vpci->msi->masking )

You cannot assume that masking has been correctly set, depending on
where init_msi() fails masking will be uninitialized, same with
address64.

I think the logic would still be correct, because if ->masking and
->address64 is not initialized the register handlers won't be setup
either, but feels fragile.  Ideally cleanup_msi() shouldn't use the
contents of vpci->msi, because they are likely not properly
initialized.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 11:04:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 11:04:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101147.1454330 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urwuV-0003ya-Pf; Fri, 29 Aug 2025 11:04:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101147.1454330; Fri, 29 Aug 2025 11:04: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 1urwuV-0003yT-La; Fri, 29 Aug 2025 11:04:47 +0000
Received: by outflank-mailman (input) for mailman id 1101147;
 Fri, 29 Aug 2025 11:04:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=KOV5=3J=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1urwuU-0003yM-AM
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 11:04:46 +0000
Received: from mail-lf1-x12f.google.com (mail-lf1-x12f.google.com
 [2a00:1450:4864:20::12f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f80a6118-84c7-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 13:04:44 +0200 (CEST)
Received: by mail-lf1-x12f.google.com with SMTP id
 2adb3069b0e04-55f6bb0a364so267032e87.1
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 04:04:44 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f80a6118-84c7-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756465484; x=1757070284; 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=WmrKHFuXUHrXn6eMcd/8iIVPBWBFay1HmzkMDB6h11g=;
        b=W9Pbgb3R2ScOgjWBOi1Q/zuXo0pj34uyO+ub8SO6pON0JAP9mXOkyOQdRvhM/WfL0q
         5pl1byv35//INOOVk5wiAYYldij6maQdmsnUNOMFrag5jb0dQ63CWYB8N/TEFluVZaA/
         ooPgUvTe7QNqmSfOPAZPlGZ/evrHJImerPgHxIme9aQYtDYuqFgtVVcyk2qYFERWdI3c
         GEf8LuKgVj7HN0pQlkTXRh2+mS4ZsKx6dxJUwUr2sVvhv+TQMenVQNKJHBPLW0IwsAG6
         yRV3LTeVb+cCNDbJVQkm5DeZXKgPzj2kEYMkUwDWJ266CfUPXyOM9p0jkoN1RfSHlqkq
         xtpQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756465484; x=1757070284;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=WmrKHFuXUHrXn6eMcd/8iIVPBWBFay1HmzkMDB6h11g=;
        b=Ch74E18le6OrYgf7fiS7pTKIlFQFn00HohwZa0GK26NBVP0L9TCvqQyT4MJVgROe2J
         iUfT1wumX2JkCVwnZwqQLWCq213yVybgEhBtycOw0LQ9d1TXZYuMhQQptSgL3Ekec27U
         6wgHMC7npojuTmasGxzlhmr/PXreoHXenDJ6Gw+AXZFp44XvMtIDUaRYXNJhfxHGSz6C
         FO1zJfmwUwb6etcgh5vhW9oxZqRUvU9UlgSPcGxrktB2zM1v9IDMzAnjUl5vze9FlKK3
         djT0dLL8hNqyWe5DMlSwg+U542A6TQoiNrbzvdsShAdT1ILCDB0pL5O20pw9/AmPTB3b
         QSMg==
X-Forwarded-Encrypted: i=1; AJvYcCX3pnaPm9lHjOAdHKOam2LPraBYtUXULefW/33KSUnwgv4+j3wYpwvZiQmnwG/kp5iXL99Ac2B9r9c=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyvYSA5BBL0maXswXenmxBQgxSlqAALR6fQz2YHLU2h1ER07rBd
	/aIHW6G9NyqRTcHyFNESflNT3PtBCr9A/+ni6mYUlLRC+EFhtcoJrE2XDY4LPeFJdtvC+YnmMYT
	3EGvIYfaS9atyqpcScG9JSn6r7YybnaE=
X-Gm-Gg: ASbGncuqstzGXKbXXCD3jd/hOnTeGaAQ3Wwv6M2mbGCOzzoTFq4RXkvlsF+GEnBFxNO
	1CFRDJ+zexSa1v8U4rKStRjs9X4GRkxAPDSUgmdg/Qt8ZSaZ6zc0NBJSo0ivHn+XQHiIyefOdEM
	RQuU1Yszw5Ofp3P12wvy+f/RVrWAaBNm6Aj8hd1Lqh3ilmEOGCq7ui/szo6DAVXMNh22otU6DOw
	rEOYQVGbDjGIKkj
X-Google-Smtp-Source: AGHT+IHrEGSheasBxSt4opdNQGrb7AmGzHLDA5dyw+a2+Qi16tW5Azo3tsedTJ7OCo2d0avT+p23VHjhUfZ+UuM4GGU=
X-Received: by 2002:a05:6512:400b:b0:55f:4f39:3584 with SMTP id
 2adb3069b0e04-55f4f39377bmr3737132e87.50.1756465483393; Fri, 29 Aug 2025
 04:04:43 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1756392094.git.mykola_kvach@epam.com> <bb53d9911b00879c7b25f5258d0e3e48005671f9.1756392094.git.mykola_kvach@epam.com>
 <87ecsvz9sx.fsf@epam.com> <a64cff9f-df5f-467b-a944-74e803c64ab9@suse.com>
In-Reply-To: <a64cff9f-df5f-467b-a944-74e803c64ab9@suse.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Fri, 29 Aug 2025 14:04:32 +0300
X-Gm-Features: Ac12FXwtlYWHFA-h73bt4nn9uJBhN8C2_ZlCFQPjSAIzvqWkzIg9mPXxEEQPlqc
Message-ID: <CAGeoDV8Jz6gEh-uHuWb0sM_XNTOayAxqRW=Z4GajpP-eMRA4kw@mail.gmail.com>
Subject: Re: [PATCH v11 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for guests
To: Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Andrew Cooper <andrew.cooper3@citrix.com>, 
	Julien Grall <julien@xen.org>, Anthony PERARD <anthony.perard@vates.tech>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola Kvach <Mykola_Kvach@epam.com>, 
	Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, 
	Shawn Anastasio <sanastasio@raptorengineering.com>, 
	Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman <bobbyeshleman@gmail.com>, 
	Connor Davis <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Jan,

On Fri, Aug 29, 2025 at 10:45=E2=80=AFAM Jan Beulich <jbeulich@suse.com> wr=
ote:
>
> On 28.08.2025 18:32, Volodymyr Babchuk wrote:
> > Mykola Kvach <xakep.amatop@gmail.com> writes:
> >> @@ -880,6 +883,25 @@ void arch_domain_creation_finished(struct domain =
*d)
> >>      p2m_domain_creation_finished(d);
> >>  }
> >>
> >> +int arch_domain_resume(struct domain *d)
> >> +{
> >> +    int rc;
> >> +    typeof(d->arch.resume_ctx) *ctx =3D &d->arch.resume_ctx;
> >> +
> >> +    if ( !d->is_shutting_down || d->shutdown_code !=3D SHUTDOWN_suspe=
nd )
> >> +    {
> >> +        dprintk(XENLOG_WARNING,
> >> +                "%pd: Invalid domain state for resume: is_shutting_do=
wn=3D%d, shutdown_code=3D%d\n",
> >> +                d, d->is_shutting_down, d->shutdown_code);
> >> +        return -EINVAL;
> >> +    }
> >
> > This check probably can go into common domain_resume() function, as
> > there is nothing arch-specific in here. Probably this can be done durin=
g
> > commit, to save us from v12? If commiters are okay with this.
>
> Seeing this, I'm learning that ->is_shutting_down can actually go from
> true to false. Which I think is a problem (not of this series, but a pre-
> existing one, see [1]). Code elsewhere assumes this to not be possible,
> see e.g. __domain_crash(), but I'm also unconvinced that e.g. the shutdow=
n
> deferral logic is prepared to deal with such a case.

Should I add an extra patch to this series just for fixing this issue,
or can I do it within the scope of this one?

>
> Jan
>
> [1] e105919b0120 ("Add resumedomain domctl to resume a domain after check=
point")

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 11:06:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 11:06:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101157.1454340 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urww3-0004VW-3A; Fri, 29 Aug 2025 11:06:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101157.1454340; Fri, 29 Aug 2025 11:06: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 1urww2-0004VP-VZ; Fri, 29 Aug 2025 11:06:22 +0000
Received: by outflank-mailman (input) for mailman id 1101157;
 Fri, 29 Aug 2025 11:06:22 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oFyT=3J=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1urww1-0004VF-Ur
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 11:06:21 +0000
Received: from mail-wr1-x42a.google.com (mail-wr1-x42a.google.com
 [2a00:1450:4864:20::42a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 306ef816-84c8-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 13:06:19 +0200 (CEST)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-3b9edf4cf6cso1466301f8f.3
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 04:06:19 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3cf270fc496sm3019291f8f.1.2025.08.29.04.06.17
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 29 Aug 2025 04:06: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>
X-Inumbo-ID: 306ef816-84c8-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756465578; x=1757070378; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=hcwRWB/9BpbjD3X6u70BXXhc1Td4AaYAR/fiojSuyjM=;
        b=p9z9L1LplN3Bv1sdmSPPKYJWGX9bbduGQ/5xDpVpgrfS8I50B77QGpvB44CaJLmBIq
         maV2vjyc44zQspzjA6uIQXhstK2T+iixdLFAfwRyA2gsyQX0yGFnvgDKHtAyfmEUjYwE
         FmE23cRqwxUfulI7xWkDsi4ZF7bBMPYFTkRoE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756465578; x=1757070378;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=hcwRWB/9BpbjD3X6u70BXXhc1Td4AaYAR/fiojSuyjM=;
        b=VJCgwxOBqDSAbo2f5LQDHlhzgEelNCmCTcyrCXCtnTYnQDrvpr+AunlOjyrCN8v/OD
         ELaHrcBLQ9BSz8dA0AuPDpCd9llxMOqKWXuKl3zcMx6NQnOlgs11KQiIeG4Z7POmeFSD
         AHYIsFqNU4TN+1bLOyx1cjNWzlmI1Io/vEqty52lXDXhR2kzxjqyNYPXi7diayfHUJkk
         HbA2NLQtzOPimNaFt3qYAYvQIBYOD47YBhp/tI2P6Oki7BCro1Cwy8UzosoIF37eLd0O
         Xc5ouaJAfzADRFjDjZGab4nGCGMxN/F5qkPIjY0sTj/gHMgAfz3EzxAnrXqPrir3ZktQ
         beYg==
X-Gm-Message-State: AOJu0YyjoMwB+zytquLVfq2gI7T+/LxS4rz42Qkz9GexZwfgG8c0gXQh
	V62eNqOK+iYnHIFU75lueUlo5vkch7iNENRCQnIj41kCegsoMWFDzvOCOULADM4aJrs=
X-Gm-Gg: ASbGncvNAnE7Z6lB7U6wHwTVl9X0Z63WxBQptCd3guY0ZkmKe7iGAJX03Zc6Cf5Fdsm
	GqOzswF0m16tMauQwPo6eA0cjnxQbq+9xSwfGX2+GzirKJa0EwzWDMAZcPcyqwoFSSt6AaVwH16
	ZYEkcvGNu8bXfoUhMZ1sss+L9124Kx6oLAskpKZApKSzLNR9j+G6+UrWfht7H68B1mIjkhNv1J3
	ar7bH/AGXSzy5pFUl+DPrmVKOeFcE5f6HwgnMTLqpIU6Whaje7U/xoyqPF/k9XXS6OJeaN5Z0Ea
	YRa1yxm1Oip9EVRQADCqbjKWKhEmRtU3BTij0ygrZgntCQFTJy+8Qneqk/poOBwuA6PxOPPaNPq
	T42IYMIxOvLwuazCAB2/IHsnfb60owKLHNlsT7xY1Neusp3O5fbs+BLjvOoylpUUeFbRBh639LI
	rf
X-Google-Smtp-Source: AGHT+IGDOufDl8b/sjhWJqkpdy+KtFmYucEpA/05rTVM3xxg3VK4XCfrZN/5a/QkSteT1Wxny3ph7g==
X-Received: by 2002:adf:a155:0:b0:3ce:9872:fd3 with SMTP id ffacd0b85a97d-3ce987213dfmr2570104f8f.34.1756465578373;
        Fri, 29 Aug 2025 04:06:18 -0700 (PDT)
Date: Fri, 29 Aug 2025 13:06:16 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jiqian Chen <Jiqian.Chen@amd.com>
Cc: xen-devel@lists.xenproject.org, Huang Rui <ray.huang@amd.com>
Subject: Re: [PATCH v11 5/5] vpci/msix: Implement cleanup function for MSI-X
Message-ID: <aLGJqMJH46neJYAy@Mac.lan>
References: <20250808080337.28609-1-Jiqian.Chen@amd.com>
 <20250808080337.28609-6-Jiqian.Chen@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20250808080337.28609-6-Jiqian.Chen@amd.com>

On Fri, Aug 08, 2025 at 04:03:37PM +0800, Jiqian Chen wrote:
> When MSI-X initialization fails, vPCI hides the capability, but
> removing handlers and datas won't be performed until the device is
> deassigned. So, implement MSI-X cleanup hook that will be called
> to cleanup MSI-X related handlers and free it's associated data when
> initialization fails.
> 
> Since cleanup function of MSI-X is implemented, delete the open-code
> in vpci_deassign_device().
> 
> Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
> ---
> cc: "Roger Pau MonnÃ©" <roger.pau@citrix.com>
> ---
> v10->v11 changes:
> * Move calling all cleanup hook in vpci_deassign_device() out of this patch.
> * Add hide parameter to cleanup_msix().
> * Check hide, if it is false, return directly instead of letting ctrl RO.
> 
> v9->v10 changes:
> * Call all cleanup hook in vpci_deassign_device() instead of cleanup_msix().
> 
> v8->v9 changes:
> * Modify commit message.
> * Call cleanup_msix() in vpci_deassign_device() to remove the open-code to cleanup msix datas.
> * In cleanup_msix(), move "list_del(&vpci->msix->next);" above for loop of iounmap msix tables.
> 
> v7->v8 changes:
> * Given the code in vpci_remove_registers() an error in the removal of
>   registers would likely imply memory corruption, at which point it's
>   best to fully disable the device. So, Rollback the last two modifications of v7.
> 
> v6->v7 changes:
> * Change the pointer parameter of cleanup_msix() to be const.
> * When vpci_remove_registers() in cleanup_msix() fails, not to return
>   directly, instead try to free msix and re-add ctrl handler.
> * Pass pdev->vpci into vpci_add_register() instead of pdev->vpci->msix in
>   init_msix() since we need that every handler realize that msix is NULL
>   when msix is freed but handlers are still in there.
> 
> v5->v6 changes:
> * Change the logic to add dummy handler when !vpci->msix in cleanup_msix().
> 
> v4->v5 changes:
> * Change definition "static void cleanup_msix" to "static int cf_check cleanup_msix"
>   since cleanup hook is changed to be int.
> * Add a read-only register for MSIX Control Register in the end of cleanup_msix().
> 
> v3->v4 changes:
> * Change function name from fini_msix() to cleanup_msix().
> * Change to use XFREE to free vpci->msix.
> * In cleanup function, change the sequence of check and remove action according to
>   init_msix().
> 
> v2->v3 changes:
> * Remove unnecessary clean operations in fini_msix().
> 
> v1->v2 changes:
> new patch.
> 
> Best regards,
> Jiqian Chen.
> ---
>  xen/drivers/vpci/msix.c | 47 ++++++++++++++++++++++++++++++++++++++++-
>  xen/drivers/vpci/vpci.c |  8 -------
>  2 files changed, 46 insertions(+), 9 deletions(-)
> 
> diff --git a/xen/drivers/vpci/msix.c b/xen/drivers/vpci/msix.c
> index 54a5070733aa..287aafda9157 100644
> --- a/xen/drivers/vpci/msix.c
> +++ b/xen/drivers/vpci/msix.c
> @@ -655,6 +655,51 @@ int vpci_make_msix_hole(const struct pci_dev *pdev)
>      return 0;
>  }
>  
> +static int cf_check cleanup_msix(const struct pci_dev *pdev, bool hide)
> +{
> +    int rc;
> +    struct vpci *vpci = pdev->vpci;
> +    const unsigned int msix_pos = pdev->msix_pos;
> +
> +    if ( !msix_pos )
> +        return 0;

Like with the MSI capability, is it possible to get called and
pdev->msix_pos be 0?

I would also avoid the call to vpci_remove_registers() if !hide, I
think you can change the order of the cleanup, so it's:

if ( vpci->msix )
{
    list_del(&vpci->msix->next);
    for ( unsigned int i = 0; i < ARRAY_SIZE(vpci->msix->table); i++ )
        if ( vpci->msix->table[i] )
            iounmap(vpci->msix->table[i]);

    XFREE(vpci->msix);
}

if ( !hide )
    return 0;

rc = vpci_remove_registers(vpci, msix_control_reg(msix_pos), 2);
...

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 11:33:48 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 11:33:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101180.1454349 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urxMO-0000MM-3K; Fri, 29 Aug 2025 11:33:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101180.1454349; Fri, 29 Aug 2025 11:33: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 1urxMO-0000MF-0E; Fri, 29 Aug 2025 11:33:36 +0000
Received: by outflank-mailman (input) for mailman id 1101180;
 Fri, 29 Aug 2025 11:33:34 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oE33=3J=epam.com=Sergiy_Kibrik@srs-se1.protection.inumbo.net>)
 id 1urxMM-0000M9-AS
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 11:33:34 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c201::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fe6bd54c-84cb-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 13:33:33 +0200 (CEST)
Received: from AS8PR03MB9192.eurprd03.prod.outlook.com (2603:10a6:20b:5c0::11)
 by DB9PR03MB7322.eurprd03.prod.outlook.com (2603:10a6:10:220::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.15; Fri, 29 Aug
 2025 11:33:31 +0000
Received: from AS8PR03MB9192.eurprd03.prod.outlook.com
 ([fe80::baa9:29b3:908:ed7d]) by AS8PR03MB9192.eurprd03.prod.outlook.com
 ([fe80::baa9:29b3:908:ed7d%5]) with mapi id 15.20.9052.014; Fri, 29 Aug 2025
 11:33:31 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fe6bd54c-84cb-11f0-8adc-4578a1afcccb
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=TUSMpMABNOFNYRECkpDCfWU6WuNbuDZvrl2HOXuGEjYP7wnKtlN2RyAAoe/XXsqKgYa89J8C5PSrUp9gIBd7QeaFPBo8z8ID5YuOH6KEtVDGPdrqLTtrcV3qexoRNKg7MD3RZFA/eoSWPbHsYpsMZFWxC9r/NmWx508ZTlRMJ9nZmNTNzj/iKxJA5fBzVQ8b5BmE+0uwRpam4n1Jg8Ygt75IMvit6/YELQWLK0Ra2FzZLS3Nqzqpoxw3c0EIjsV2XHyM50BlGyRbD/LpWd+OMIQe5R3BK1uUuNOS2kQWOOhwrFEX0bV9YciK3IsGqd4n2kE3XALVSQeaoUA56M2SkQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Cu5gAfnYkpQbwWuB5nlZDeH0TzXsI0/gEp1DAt75ReI=;
 b=cNa/sJ0GThWfWuRXC6zDyOodsu4TKeiUJI6t+vcLomj1ndSRtQQWuUiqzEOj3fXs/wILXGt8kPDbJg7rfG40/yEwYqY5FQt7R9WeIZF8ShCL1AfqCskzJs8Immug0uTrk6vULc7qC9lmTj/wH29ctA0rBD8s7MoWbYnmJLkwAv1BQvoSOV6RQlWRr6m6l+OCsoNMVsjXnnpQ/unHZoU3/K+OSTZ8c7bREviS6GJ/bsZYXL0U6u6rgesoYlJb3vHPxhcQc55ZBwMJkL2UbSkMBT8lztYXZToV17rDIfDXt0O3LoOtz922K9eR5GO6Quz+VK4A5xOk/3ZEISA0lrF2bA==
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=Cu5gAfnYkpQbwWuB5nlZDeH0TzXsI0/gEp1DAt75ReI=;
 b=PkeJcBuqUrQy9KhpHK6pUXXCLiCIgfwzAmMfwNsXCDUiadfZv6a/fY/zOIffwel+l3K6BPu58yHzOKeeB9RxvtbmKNnb5IFwVdR0nlW0dJN3rFdCUwGVlVLDXN7vUYlDnRPW+5A2girB2zUuOs4p8Hl0f5JIfN4YbzFmKgQEHgw/fMBL6Trc2S4QmIQiJicmQ+joc4bBrwZjUbfuJsXez6SrBmC3C+diAshhLmbfnfymyNgE0qX0syGNlBIX9ZtQBVti+XZm3dGoKEC2hIrHkF7CqTJjt/VNaOxPjReRsiM8rGQqba8KfpZ79rBNQ/EZhx09WEJyCISZWnUD6k7nsw==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <1d34d0ae-f3f3-4b25-ae67-6c4f6be2e2bb@epam.com>
Date: Fri, 29 Aug 2025 14:33:28 +0300
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v1] xen/flask: limit sidtable size
To: Jan Beulich <jbeulich@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>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20250822095123.998313-1-Sergiy_Kibrik@epam.com>
 <1797679c-582f-4b75-a036-ad3bb00bad4d@suse.com>
Content-Language: en-US
From: Sergiy Kibrik <sergiy_kibrik@epam.com>
In-Reply-To: <1797679c-582f-4b75-a036-ad3bb00bad4d@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: WA2P291CA0005.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:1e::11) To AS8PR03MB9192.eurprd03.prod.outlook.com
 (2603:10a6:20b:5c0::11)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS8PR03MB9192:EE_|DB9PR03MB7322:EE_
X-MS-Office365-Filtering-Correlation-Id: 0804c0d3-2612-483a-ef98-08dde6efe12a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?NVpJNkY5QjBlOHQ0eUNjNnNOelgwMElHaFhNU0ZFWVd0d1MzTGEzdDZQZjhI?=
 =?utf-8?B?YUt4V1cxWE9CQUtjNkVNM1hBTVBlaFRua1dkSUpOT1lPbStJSlI3RFpwdnZM?=
 =?utf-8?B?NGpkT21JZDBJOVRpcU5zdkFyRkdlVlQxYXJLWjMxZUdiZWh1SnBxMHVJQVl0?=
 =?utf-8?B?bmJZZktzTUdGa1oranc0V2FGdFpKZ0NZWUVGZDBTVVJtS09JVDk5UDc3TXdv?=
 =?utf-8?B?NGpPL1dHMG1wQ0NRNk5IWG9rUlE0azJrZzlBaGFmL25seVM2WlZOSTNiSC9X?=
 =?utf-8?B?OGlOK0IvU0xScXZwU2lod1A4YzBHU2RScUpIb1NiaFkwR1NXb0VOa1RpSG1a?=
 =?utf-8?B?ZDRFTjBNckJmYjNTNlRnSGlaUXZyUFRrLzN1UDhENDhmN1UrVWlCWmRkWFRp?=
 =?utf-8?B?R1dIQjFIVkhCL01wVng5K2Iwcmp5eDFLODNDTUhCYktYeHNITmhjNExjWnJG?=
 =?utf-8?B?czVsR3JJTlFsL1NFem1BNHhxL1NSdUFpTlV3VEdqME1Xalp6dXNTcjJ0N3FV?=
 =?utf-8?B?YnE3dkU4dWJXcjBLcWpPbW9wbzdRR2tXSlcyR0dZMGJUWFp6ejNJUVBhQUhK?=
 =?utf-8?B?Q1JscE9IeWl4V1lXSGl2RG04cjRzOXJKTkpPQWErbzJlWXpqYkZqdE5BMmNC?=
 =?utf-8?B?TFVxMTBtSEk1eHlHZEZrU1Jqa25QTzBoeFdSWXIyTytBVmJVODRKRmFtaHpo?=
 =?utf-8?B?aHJkZ2FEZmZ2RU9Wa1NKYm9leE82ZnUwdXpOdDIySlN1RXZTMnRYWjRYNjZE?=
 =?utf-8?B?VmNIbmIvVEFSdENPRkVRVUQ5QURBZnJSZnVHcGtiSDNNSEFlby9Nc0N1b0tE?=
 =?utf-8?B?MzMrZklWRjhycnA5SVpKcTg2L0tlRFg5NFBzZTVobStzc2RmUHpOUjJya3p5?=
 =?utf-8?B?K0VOMlg2RDg5bS80bE5zS01WRFBXNC9YdGovN3Yzc3V1V2xLcTJuMm5OY3BX?=
 =?utf-8?B?RmR3UXN0TGUzVFNjcUFxSkt5UzErN1FCRmlxVmx6L1FtLzNJSDZUbkFnZEFN?=
 =?utf-8?B?a3JlVyt4TG1Hb3NJV3YzVjRjSnhMODVJMGdlWnhpQVordWsrb2Z1eTBjOVNz?=
 =?utf-8?B?U2FQcXNNbnYwbE5mcTlZaWVEOTVyY0VpZ1NKT2xzTHBnRHRCYmMyS3RmMWlS?=
 =?utf-8?B?Wm40aWpjd1lqYkUrUHJBNExhd1UzNXRsT05sQTczaE0xM2k0U3BBS2JROHZm?=
 =?utf-8?B?cnZJdWg0SzMyWC9QeXBPUVl6czFST1A3dXJvRUtQR0RlcysvSHgvWGNGbnJt?=
 =?utf-8?B?dnFDZmtydmxCeVdOR21NZFNlSWU4MlNRWGREbXhOUnVhUDlEc3JrTmJkVGxa?=
 =?utf-8?B?c091SEhTNWw1WFhyMEExMkR0cUZHQUhNQ1lJaVVqUENEb1djc1FHWUU1VlFW?=
 =?utf-8?B?cUpDd0QyY0N4NnFZRE5FN0J3bDJyaFRLTEI2S0Z4eXVtZm53N2EyQUJHVERU?=
 =?utf-8?B?T2lGSm1uejFMV2Y1YmRkd3FEU0NHc0xCRU44eSttS21ORnB3V0xmbnF1WmNk?=
 =?utf-8?B?cEN5dkgvUTdkYUR3N0xNYVJMMlVQTUtYQXVna3RlSFBvay9vT3hxdXB3OUFE?=
 =?utf-8?B?SStRWVQwYVM3bFFQRjdwN0NzcHZiNnJTMmdkcFFqdStUVUpKZXBkNXJ3S2FY?=
 =?utf-8?B?QlRoWjZCc2lybGdKMUQ5SkFmT1JMeE5FUld6eU5kTUFNRHdQK0QyaTVlNS9x?=
 =?utf-8?B?M2JEZHVkN0NFK2tmdGRBTDBQaldiRHlHQUxQUUZHaGNBUWhuemVTSGtMUXNW?=
 =?utf-8?B?dWM4Q3BkRUQwQVhhSC9yMGlJK05hVk1Tb0FwdW9mYzQrMUtPQ3ZSbllxYmt3?=
 =?utf-8?B?VEN3SisxRTh0cHhVd21aVE9xeUw4Wk41dlJjSzVnU1VWZXRJTVB3OHpCZTQ2?=
 =?utf-8?B?dnNDNnpSak83T1I1ZzduaVozUGZTdCtmbGNuUTNieHNuQndhNVpsblBQRDdH?=
 =?utf-8?Q?t0nNru3CRnI=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR03MB9192.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZE1QMkx1aFZyakpQcXE4TzNKaWJ2NFJrcmV0RzV0TGkwWjJlUzdKOTd0TWJI?=
 =?utf-8?B?a2xzNUtrcGs5enFDTFVYT0dUb3FRbFhyaDZpZWlKajJNVUxteUpKTkM1ZGcx?=
 =?utf-8?B?V1UyeVhXTDhSbnAyNWJmazVEM1R1WXN6Q3c0ZWUwVDBERVFKTnFLTDRpUmpr?=
 =?utf-8?B?Y2dIYk9qZjAwNGtpekpMV3VXelFaRE1Ha0UrK210bFdZQ1NaSkd5QVhEbDN6?=
 =?utf-8?B?UXZnUTFBaXVhN2xweFZaY1kvSXFlaVNXRS9HdURHbDlrR2pTUWtSK2xsMkxw?=
 =?utf-8?B?bkN3MUVzSUd2TEw5a2lUbnk0SFl1MVlOd003VitpZ21SNitqc1dzQ3lOVmFt?=
 =?utf-8?B?OU1xcDJlT2xkQ2tJRW50RFhZTE1xeFVjUk9VN2hiY2xRU1l1L0ZwREFLcnpS?=
 =?utf-8?B?T3g2UDNSSXZ0NlZzbHF5d1dwSGxFTlpmVEhJZGd1aVVhdFY0ZTVSb0F5UC9O?=
 =?utf-8?B?ZzdlVXJXY2tjNmdmLy9FT2lpVVg2TjlSblJSWTlpeldTV25yT1E0K29vbklG?=
 =?utf-8?B?bFdJSFltU3FXSVdBbmNVbDJwTG1Nd016OHFKanVaaVFsMDBIbGJ0blIxQnYy?=
 =?utf-8?B?ajZ5WjVmY081c3ZPTFUyU2t6Q1p6V2tjL0M3bDlobWZzUktldTRtT3VvQVRO?=
 =?utf-8?B?YlBhd3NOWWdPS21kVUI4cEdqWUNISVBHdGR2OEIxZHdGK3FrN2VodmhuZUNu?=
 =?utf-8?B?Vzlkall6MTlobVlqU3YzaHEzOWZVcUxOMkl5T282TENJbVpUYTJXK3NBSDlN?=
 =?utf-8?B?RldvRlRPejI2WjNRWVlnYldTWE1qNXdoM1BBNkhLN1MyUEkvUHRKUXQ0dEFU?=
 =?utf-8?B?alg2bHlBZlB6MVhTaU5JY24zVnpVZ2ZZTTJVTldRdkh6bzBoaU00UkZUMlpO?=
 =?utf-8?B?dnBwTjUwYUtIekduOGJBZ0tFTG1KUXhHSy84UCtkQmZxRXlpRzJLeE83eTMw?=
 =?utf-8?B?d21mMFhZcVhrQ2NxS0RYMG1qUUJ2ck11RGZwTlBVV2YwZlZzdkNZSUxtNURW?=
 =?utf-8?B?SzBWMDFlZHlqdlQzSGMzTjJiVHhOdDJpYlNwdGtldEFQejlWWmM1b1JKcW5n?=
 =?utf-8?B?ZTMrd2VZZ0JOMmhUVWRUWFJQOERGZk5TYXh2Q2RZN3BzZ0lDVjlvbnhjemxr?=
 =?utf-8?B?SXJUVURESkZyRERkaGZQZkc5b1JEbzFTaGRubitOUjRtMnMzRjlIazZqMm5t?=
 =?utf-8?B?OHNkMnhrZForWkZ2UTJoazdtTy93VmU4amxzUmp6WGpNZlFvc1JVeVZkZ2J6?=
 =?utf-8?B?QzIzc2pRRUhXc1h6QUpEaDE0cnZlT0t5VUlaWkl0anlBVWx0N1lNRE9pWG9s?=
 =?utf-8?B?UFg3U0Y2NU5hZDNDU0ZXODd1QWJPUWozR2tLbVVhb3V4RVVkdUhQUG9mdHR4?=
 =?utf-8?B?SEV4cWdBQ2NPcnBZZncrQkNOU2RQaWVMMDd2a2tlQVFtMlFFRVNPYkczMGZP?=
 =?utf-8?B?MTBHTmxVaFYxTzJZUDZFUk1jRGYvYllRUHpSMmF1K001aGN4VFNWQUlsOFFH?=
 =?utf-8?B?NkxXUzhmbWNJOGxCczA0RTIrVy9uU1VQaEE0TW85K0tBR3hScnYrYW5RQW9p?=
 =?utf-8?B?SHNkMVlyczhlRnpJcXZmM2dyKy9yM09MNFJWK21LNXZXT0JSWndiazhuWTM4?=
 =?utf-8?B?VitqSFZoZXNwTU9tTDZnSW9hb25oWjgydG54YUJ6RlB5THJpenk0NTZ2QmVP?=
 =?utf-8?B?amNYb1d3aTJKOGlWbXltSlRaTzltcllrdGpGTFFvL2k3bVlLbWNjREliWlYx?=
 =?utf-8?B?TmJwa3hwaDJlWFNMY3QzcE9zZlRwSE1QcTBkT3JwZTVINlBORUVGanlQaEto?=
 =?utf-8?B?dzlYcWNaQjMvekNrbHNsV2VCZ1JuT0tDRGVETTRSZG9qcXBoOHZZcU5xOW5O?=
 =?utf-8?B?K2RNcm5CVXgvd0VSTCtoVHpjQXZhNWtWS2dWWlVxMkxUeDRFaklRd3FRSjcz?=
 =?utf-8?B?ZkV6ejBwWERxaXd4c1A3MjdoNTZpUklxNC9FOVZPS0pwTFlCN2dMd3ZxcjdP?=
 =?utf-8?B?OGJkYURkRm93eCs4eXlrUzhhYzNkNkViZ1hrS3REZ1hpdm5hck5tUFMxRzJV?=
 =?utf-8?B?clRDTGlGbCtMYksvWWpxYWtqNE80VDNycVYrQzRqQUVMWnBKalBZdkxrbit6?=
 =?utf-8?B?TWJUYmZGYm1JQzR2RUFIM01oVmFPVk9DeHF2bEQzdWJYT0p5N01CUHVLWjE5?=
 =?utf-8?B?dEE9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0804c0d3-2612-483a-ef98-08dde6efe12a
X-MS-Exchange-CrossTenant-AuthSource: AS8PR03MB9192.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Aug 2025 11:33:30.9232
 (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: D+QcY1FqYE6klLnZXG7eQCnuyYYdoNCQ9agRipiR8g1MxBzFPZDyLhI9NkMFXQ4MNrixSMRK/m6Kb3FhtMbEfQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB7322

25.08.25 15:00, Jan Beulich:
> On 22.08.2025 11:51, Sergiy Kibrik wrote:
>> --- a/xen/common/Kconfig
>> +++ b/xen/common/Kconfig
> 
> I wonder whether we wouldn't better move XSM's controls to a dedicated Kconfig
> file there.

you mean something like Kconfig.xsm in the same common/ directory? Or 
move this Kconfig out into xsm/ directory with the rest of flask code?

> 
>> @@ -418,6 +418,25 @@ config XSM_FLASK_AVC_STATS
>>   
>>   	  If unsure, say Y.
>>   
>> +config XSM_FLASK_SIDTABLE_LIMIT
>> +	def_bool n
> 
> This makes little sense; just "bool" would have the same effect. Yet then
> you can combine that with ...
> 
>> +	prompt "Limit the size of SID table" if EXPERT
> 
> ... this line.
> 
>> +	depends on XSM_FLASK
>> +	---help---
> 
> No triple dashes around "help" anymore, please.
> 
>> +	  Limit the number of security identifiers allocated and operated by Xen.
>> +	  This will limit the number of security contexts and heap memory
>> +	  allocated for SID table entries.
>> +
>> +	  If unsure, say N.
>> +
>> +config XSM_FLASK_MAX_SID
>> +	int "Max SID table size" if XSM_FLASK_SIDTABLE_LIMIT
>> +	default 512
> 
> Hmm, wouldn't the default better be what we had so far? As per the justification
> you aim at a special case (embedded) with this limit.
> 

yes, we can have a default value of UINT_MAX specified here if we'll use 
base-2 exponent as a value. And get rid of second option.


   -Sergiy


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 11:44:46 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 11:44:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101194.1454360 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urxX8-00027a-7D; Fri, 29 Aug 2025 11:44:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101194.1454360; Fri, 29 Aug 2025 11:44: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 1urxX8-00027T-3S; Fri, 29 Aug 2025 11:44:42 +0000
Received: by outflank-mailman (input) for mailman id 1101194;
 Fri, 29 Aug 2025 11:44:41 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xaUo=3J=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urxX7-00027N-Bi
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 11:44:41 +0000
Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com
 [2a00:1450:4864:20::62f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8ba0b975-84cd-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 13:44:39 +0200 (CEST)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-aff0365277aso90174366b.1
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 04:44: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
 a640c23a62f3a-aff138a8d76sm31655866b.104.2025.08.29.04.44.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 29 Aug 2025 04:44: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>
X-Inumbo-ID: 8ba0b975-84cd-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756467879; x=1757072679; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=8kEg47Ym3Bu187Sc6cMHWnRcwXIRX0Bqp/2oDPrjUmg=;
        b=HoGaWWc7mJjacptzJb87yLCCVOnsG+FASUyKhEcPKtoULZr4qJaI6d/hP5Ifk64Lvb
         CreUkMGvkILQUI34nlop/1dUJTt7MT89aqehIzZKH+grQfgf3YINUtzpPAPMZ299/V4s
         9dLhMWXLfNAc30L3p/Awp7+b4fAX0C300ht1BNRfw8MeIz6sqlOA5Q/GY2dN7Am4RoqE
         30CJfXRJ/J5svJV+hzTqWOHtQZ7+1tcjUYZ02DzQmJ8DFwLTJRl7rdzsABSLIuz5NUF2
         Fo/hkMScwFIaPDPl0Bi1daLFYUecDE687CTAKSDJqx4hnM8eYe4NAQkYDNtayAZ+OjDk
         NyGQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756467879; x=1757072679;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8kEg47Ym3Bu187Sc6cMHWnRcwXIRX0Bqp/2oDPrjUmg=;
        b=Mb0dGXvgI89bqpER0h2tfS2RTxPjVe9vTw8WwWXhcQycODRtKQYQ34xibXhCVxRnAC
         bi3kJV7so4xzU39oSYRDOKUNtLNeL2VL/JfYxz60di1zBMeGxyO5xEPxh+8B+Mfs6YUq
         dns/2H/UNwKYTGtVpvrAzkyUrTPp9CtIauFQS3QMTnix/Dt522UijOLl2b2to5PJWc9K
         fEble905z3tj1oi9drgZpOu9Q/LN1PYjVup+W+AeokJn/nkLJWY7ZyuRB75Zm1/Z3Ldy
         S2GTuaW9iNcD7kOU7mKPqXbcovc0fXPTIX6cX1ZrnHs25SY0+htP0RV0YXWSRMt4nNYS
         DT4A==
X-Forwarded-Encrypted: i=1; AJvYcCXPgWUZXWnLpsAFMr3dwqKC4fBAOXmN8RPMTbmej21TqFrq4ngKPfA/d5G+4AUbdd8U02fpEM8/gyU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywt3l5GU4lQcpv0/HNYA5sSd0QhCRCmLEuNcEwd25zQxZlDfEpm
	CEdfBBnxsYjov44KUDmNSUVrQm+HjyLm4+sVc2pSi6pjZ2veeu95gVmTBvEnrW94EA==
X-Gm-Gg: ASbGncv+hMpk0yDUEEQ6X384XzZRyqtsFRfig2LJE/wiJFyKEQrlPTucUeztdBUaMCR
	gceHzty87LgOKAdAdA23ZJ0nNg7ykgRc6TRH90AgFWHL9jK75bzYAGbZQWZInV4VKXjmS7V065N
	LU5a1YQ8UXzBxdR/HuAN8Ru8uObMxIBP5oH/ztCutoQiokthqfOIRyuIHfol1XuBdKVZvx52eHt
	clJu/MeHppFNK3nDEHSI+EuUfMEjI6zLVBRBM4pgePgTh4/BFJoP0y0jBGDQM0RMhqRcoZDrJSE
	ILx5fzwsgKnwzssEUCN2bJV5EPFxWmUrVQjBIobb50aEJl24zwGUzC+8eKtewcAHaEG0GcRKYnV
	5LM6HCbL0bR7fVj1/+9FIlYemPteYJzcJ9GYDhPULv3GXOkz06VVaTZL2jtD+iNZiPJt9Un0CoK
	1EPdmF/yhhnHp7CYCmtA==
X-Google-Smtp-Source: AGHT+IFTMuy8t/cgVXbPXA+GWVu9LuxPqeJqkh6JyHpxAnM4hmAPHhK7cb0oXbY/X+B4p6Ccg8/XeQ==
X-Received: by 2002:a17:907:9283:b0:af7:fd29:c5e4 with SMTP id a640c23a62f3a-afeafeccafdmr1156567266b.2.1756467878877;
        Fri, 29 Aug 2025 04:44:38 -0700 (PDT)
Message-ID: <59e884d4-e111-474c-9794-dcb190de8eab@suse.com>
Date: Fri, 29 Aug 2025 13:44:37 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v1] xen/flask: limit sidtable size
To: Sergiy Kibrik <sergiy_kibrik@epam.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20250822095123.998313-1-Sergiy_Kibrik@epam.com>
 <1797679c-582f-4b75-a036-ad3bb00bad4d@suse.com>
 <1d34d0ae-f3f3-4b25-ae67-6c4f6be2e2bb@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: <1d34d0ae-f3f3-4b25-ae67-6c4f6be2e2bb@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29.08.2025 13:33, Sergiy Kibrik wrote:
> 25.08.25 15:00, Jan Beulich:
>> On 22.08.2025 11:51, Sergiy Kibrik wrote:
>>> --- a/xen/common/Kconfig
>>> +++ b/xen/common/Kconfig
>>
>> I wonder whether we wouldn't better move XSM's controls to a dedicated Kconfig
>> file there.
> 
> you mean something like Kconfig.xsm in the same common/ directory? Or 
> move this Kconfig out into xsm/ directory with the rest of flask code?

The latter would be preferable imo.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 11:46:22 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 11:46:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101203.1454370 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urxYj-0002e4-HQ; Fri, 29 Aug 2025 11:46:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101203.1454370; Fri, 29 Aug 2025 11:46: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 1urxYj-0002dx-D6; Fri, 29 Aug 2025 11:46:21 +0000
Received: by outflank-mailman (input) for mailman id 1101203;
 Fri, 29 Aug 2025 11:46:20 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=sl0i=3J=epam.com=Dmytro_Firsov@srs-se1.protection.inumbo.net>)
 id 1urxYi-0002dp-RJ
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 11:46:20 +0000
Received: from DB3PR0202CU003.outbound.protection.outlook.com
 (mail-northeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c200::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c75d9aa5-84cd-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 13:46:20 +0200 (CEST)
Received: from DB9PR03MB8327.eurprd03.prod.outlook.com (2603:10a6:10:37f::12)
 by AS8PR03MB7892.eurprd03.prod.outlook.com (2603:10a6:20b:423::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.16; Fri, 29 Aug
 2025 11:46:17 +0000
Received: from DB9PR03MB8327.eurprd03.prod.outlook.com
 ([fe80::b7f:9b2d:242e:f7f0]) by DB9PR03MB8327.eurprd03.prod.outlook.com
 ([fe80::b7f:9b2d:242e:f7f0%6]) with mapi id 15.20.9052.019; Fri, 29 Aug 2025
 11:46: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>
X-Inumbo-ID: c75d9aa5-84cd-11f0-8adc-4578a1afcccb
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=k1Ds7IkpX7HrXeveqxcH7oLYwE/D7hGyY2SU5vDKNumMmEzHGda06xaxxWK1Dw0AFcibFWT23V5iyjtHVHpu+z/5FfcQl1AydLYr13dS8yiH0MNg96s1shLKXFa4uUVppqVgEiGTvvdLsIoWGQlNYSi6foE4fUQ75EITD5iq57MncFRoCrZaqYReT3EBiuCuaQPTwAns56AgEawzoB5Whh8S6b3QNoakwE5g0jOBLaXmsjFQ/sZBU9gN1RMH3/gh+xNggWl4nfV5RCpJEo3sYbnvCtxO6HmsBZ8eTqRxbSYzNVR1lrNaCa67oM8Ncmrcy2XnpPExqJACKEfcDIOhZA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=96l8p1chiKW05Wq4ko0zRmoTsMWj1UXQkSQf8AIiVUo=;
 b=nfOYcpRugfR7DvcN8iPa7tWvccsL+wo03YtGnefLD0RiD/j8QZ2CI2oKl2/FPBulde+hBPnThLgkCCzxtoPkKIXaqKlNx1fLn7spjPNiClC2dpy6E/d9iWjSfxwPclBDbpiU17UjkYACUlL96SsYD8TUoZyG++pBQuTkZvOmFjJ9u0J5/XbZof+OCI7X4xiIL07935DNZ164tRtmbytlzhBAnZ/DxBE6cJEBQyrUnFxo0bqBSsMRgU43X5EizHX8cmgodpXMFEnGnxoZRivTAfmay1qVADEv+pyRyF5izXJAtuY8sm9ZscF2vSlwZhZ0/dLUyXum6d7fwxi1C6uicw==
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=96l8p1chiKW05Wq4ko0zRmoTsMWj1UXQkSQf8AIiVUo=;
 b=tqB0qzx/hyodtQ4KdrQKCg/vSfZb0BkKeEq2CzhAK30yQDsB6qUDPQcG2v4nlgcByzyHLRwS0zR7ESwqQQwt887z/Yn15w/dmyxnQtZnc5iphy0s6O+vvT/nlMcvVqugDe/GbkVagF9HwrGBm5P+u5r1unuLyxRfwZmOhKfCqGB7zZl8F6ioHqhkabNSnuxMN5l99WoxiKmtkmxdxiVJCKj2W0aVeHv0bdKAYI6YLORYfma8tpJfLthegg1Zo7d13kA+EO5uNVk2NX3VpSiL3WP/lofx8V3Hf26mUZbyP0fr2464A5A8RHodBFUXtcWwMCd0D1zJA54Vk9+fiqFpSQ==
From: Dmytro Firsov <Dmytro_Firsov@epam.com>
To: Julien Grall <julien@xen.org>, "Orzel, Michal" <michal.orzel@amd.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Mykola
 Kvach <xakep.amatop@gmail.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>, Rahul Singh
	<rahul.singh@arm.com>, Stefano Stabellini <sstabellini@kernel.org>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH] xen/arm: smmuv3: Add cache maintenance for non-coherent
 SMMU queues
Thread-Topic: [PATCH] xen/arm: smmuv3: Add cache maintenance for non-coherent
 SMMU queues
Thread-Index:
 AQHcBuKhRQAjcpitXUCHafCQJ8zznbRuazEAgAZj94CAABDsgIAAD7AAgAI5V4CAAn4qgA==
Date: Fri, 29 Aug 2025 11:46:16 +0000
Message-ID: <15757493-0892-4a3a-b493-defa1b8668f0@epam.com>
References:
 <24567cc1630b1577c33939ff71d67fb2ebe5572f.1754491424.git.dmytro_firsov@epam.com>
 <cff3e94c-4476-4103-ae7e-19656703e755@amd.com>
 <5d48d927-7e1e-4b11-b429-0b94259154ab@epam.com>
 <e0c2b06e-947a-4d1d-864f-5785cfe00b1c@xen.org>
 <474bffdc-f42e-4727-ab69-b11a67430adf@amd.com>
 <717da388-9382-4eaf-9275-27dd203dd492@xen.org>
In-Reply-To: <717da388-9382-4eaf-9275-27dd203dd492@xen.org>
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: DB9PR03MB8327:EE_|AS8PR03MB7892:EE_
x-ms-office365-filtering-correlation-id: c7be0d02-7207-462e-5fb4-08dde6f1a9f3
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?VkNVYjFGVEx0Smlpc05Gci85aHpHbnRycEk4T1QwakNsRjhJaVRyQ3NVUTh5?=
 =?utf-8?B?aTZsaHNjajdSWkNndUxTQmw2d1VvL1BoaStKb1NBR0g5Uy9Oai94c0tOV21Y?=
 =?utf-8?B?azJaQVp5NC93emI4TUFMV3ExSWw1NGZ2ZkZtTG1rcmJ6bFlsNHY5dXRFMzFY?=
 =?utf-8?B?SFlFVTQxd0dvUGdFVERySzVxdGtaR211MnNJZFlhbTFBaUQ5elNlLzUrMyt4?=
 =?utf-8?B?WXFNT0hSTGNiTkxFWHFBRjlTc282RW1zc1dZd3hhWmIzdmh0RGhRTGwwMS9O?=
 =?utf-8?B?dTlIczFZQVQ2MElzNmtJUmhrZGRFUm9OaGdHREp3VmxjWllGSG02aUVybXhF?=
 =?utf-8?B?RzlKQlFnVitZZlFYRUVPVmQyYjBmckxtTXBqMStSb3dVa25TRDRXZ2FvNE1W?=
 =?utf-8?B?U1YreklBanlFcGdvSEU2elF6OFNRZUJOMGRiekJxTDRyaHRhSlR3cUs4UkxT?=
 =?utf-8?B?cVVNZzI0cFg1aWRrU2VuMGVEZFAwS1QyVitKUzRpZktrUllUWVRYTzIrNTVD?=
 =?utf-8?B?K1E1OWxBclhVRnVvRXQ4bFFHQ2d4Zk5uWm1GN212M2o3TGlnd0VKdlZxL2Y0?=
 =?utf-8?B?bWttNzlyUmxpTE5iWVhxRGZHVmtMM2N4ZmViS1JDSFhiK3VlcDJ1c2I0TkM1?=
 =?utf-8?B?TnVOcWhHUEhOd01RSVNkaVp5WUFZODZnaTRGcVREdnhJQjJzN3VIbXZsUElS?=
 =?utf-8?B?NkNQZkJFWUpqZ0IvdmwwNmR1aHFIL3U1anRySWh3czBYS1MzZHB1UjVUbDNR?=
 =?utf-8?B?a1didnB5bTVLY2F2SkZqdlNJdU9yaEwwcml0VXBjbkJWZnFxcUFzU2V1VzJU?=
 =?utf-8?B?Rlh1WmdSUFVIMEJQQ1MzNithSUlkbjRkbEZiZ3VwczcxNTE5OG1sMVYrd0lN?=
 =?utf-8?B?ZjlwdWgxRXQvM2JDOFV5aTFUcFIxRnkvYmVVK3ErVTRVY3B3T2FxNlNwd1M2?=
 =?utf-8?B?UmNpYlNvNFkzZENOQkw2N0RCeUdWcHI0a3MwRE54WUp4RU1VczMrdDRiL0hG?=
 =?utf-8?B?WVVZaExZaHg1RGthdURKb2VSWVBBaTlabWVvVDBhTVNVZWl6d0Z4ekd6RGh0?=
 =?utf-8?B?KzJlZWdDNmpQSkhJWUZ0Sy9temJMMUVURFJCR3ptek9jeFhteSt4bUFRZVBt?=
 =?utf-8?B?aWpqUWk5KzlCcE01RWt1QmwxbUMxYWNoSDh3RHRDSUZRMkZSdXJnSTAyUDhk?=
 =?utf-8?B?bFZ1SzNubUIrREpuT1dmQmhvWlNBcm1ha1NQVnA0MDVnMjlRTHpOYTlMa0Fk?=
 =?utf-8?B?czBWZGQwUlUwNkcrd0tRdkQ1KzNEbTRDTWlWUHN6MmVpampqODlFVHdVUEtx?=
 =?utf-8?B?YUMwWEZ0azBraks4UjNsblBXN0FJRS9jeWFrWmNlWG5UVnU4L0x1NGRVTmdB?=
 =?utf-8?B?WFFyamxhY3dmRXBnK1QrQnIxMEM0UDMzRlk0TlUyYlROQXB6dkpZdmpLcER1?=
 =?utf-8?B?dzIxdkhjck5QZ1N3UjFjOHJkbWNHRUU5endmZDhzN1h1VVZVdkxvSlRVbTNm?=
 =?utf-8?B?Q3ROVzBSZkFMMlRvek9mc1ZKZjZLTEpOVkZXbHJCWnlEeU44WnlOUG9kYStK?=
 =?utf-8?B?d3dlclF2dStZUTd6Mm5Kc3c1RWN0UGg2QnRpd3A0d2hZQ3lTYy9vUFN1RUlF?=
 =?utf-8?B?eWxRdThxY1lmNjQzTzJ5b0RvcVgzbEtZR0RaOVUyUnNRZlpTc3BHSDNjekpC?=
 =?utf-8?B?S1FudFFMMlhaWitGbEs5elRRbTVrVzR0RitIbVEwRyt4VGxYc1BlU0tTdjh0?=
 =?utf-8?B?bFhPVEh1YTNiRDFBUGovN1JTY0ZSVklNb1E3b0k3RytSbEhuV2gxOExjMVoz?=
 =?utf-8?B?WnIzRmRKVm4rSlR0Q3JrUFhYSFRHMXliekdGTjBpVFdsS2htcEFhb0VmcGdJ?=
 =?utf-8?B?WlpEZGJSaVlRWU9OSVhaK2RRRS93VWlHdzAvQmlqa1k5ZGI5NnNmTEZnRzBX?=
 =?utf-8?B?YVNTbTlOUWV6YUZ6UmRyL2h4NVBqTElXY3pFRVNtRTlEc0M4SlhLMWprY21z?=
 =?utf-8?B?NGh6TUFyTEJBPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR03MB8327.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?K2JDMFhzeGJTMkd4a2s2SzdwQnc2NG5HMVFMck1nN2c0QWsybWZEd21sSHRZ?=
 =?utf-8?B?eFVKUnZCLytwOXJWV0g0OWFBT0pkMldKbkdyREx2bGFnQ2lCUFZrZG9HWkVZ?=
 =?utf-8?B?QVl2S0lCdVFETTUrOEE0VlU5bnBaN1NhMytpTjVBK1R1YjVqWW9mem9JOHZu?=
 =?utf-8?B?dXBPbW53MDhnczgzODVJRTlvNFpUNnF0MHNaTHBaU0o4MkJrelhQQmhFK3cw?=
 =?utf-8?B?eVNsQkZOOENoTktncm1RZVdCM3ZLckQybDB6NnRvdmtnT1NRR0p4KzB2SXc4?=
 =?utf-8?B?aDFyS1BobWZZNmlacnUvMUlrR2tvR2N0azVlKzBNcXhEalJDbEhsY2xmbVJk?=
 =?utf-8?B?NCthTUZjazArSW9jZnNzL1VyMHdTRUxIOHp2Y0hXWUhYaCt5VGZEL1lLUVlG?=
 =?utf-8?B?Z1FsWkxSbHRmZVE5Qm1aYmZOczFIbzhoWVB4THBVcjRXa0pNNVBiSjd4Z2R0?=
 =?utf-8?B?OEpBYjdCVUhCVVgveDlPMWJzcVhldFpWRVNoTHI4YXRDSHF2dTJVWjVEaytm?=
 =?utf-8?B?V05DaUZNd0RMR2lVWldlWkZST3NXcVlGOHNDZlZVNXA5c1BZSis4Q1pTSmR6?=
 =?utf-8?B?OExnZDUxNk5URkRJaHBKZUpjYldPeXE2cS9iYzB2RmFMWHhNbE5BSUE0Nks3?=
 =?utf-8?B?WHpqWndXL3QrU0xTWjZvZ1VHbzNaOW1DQjNFbE12ZktsRHk2L0ZCL2s2MjFk?=
 =?utf-8?B?SjRYZzVFanFGY0xMRS9ISTB1Z2NVZVMraDJrcVR2NVRrSGNnaVdNUkhqeGov?=
 =?utf-8?B?WXdJc1c1b3BmSlB2TlpZWWhVNWpKMzVLMWFrQUlxaWdoampzR083cEN1UWlu?=
 =?utf-8?B?aXI0dEIvWGZlOWlyTEV5d1QrZzNsZXI3NzRRYjBoWkpoZXc0UlBUMjVIT0Vv?=
 =?utf-8?B?dTI3RHFJaXd6eVNRR2ZwR1JYc3d5a1dGNUhaZSs3NFNyVzl3Uk9JVHp6UTRF?=
 =?utf-8?B?a25YQTJnaVdnaXZJMWxvaGpKdUMxTHpVQllNZ3NNRzRYUlVSME5US0RwWlo1?=
 =?utf-8?B?NDVLMHN0dzBsYUtNbisySXVKeEt5OFZvMzR6Z2txd3V4aDVobnNZdVBidVFv?=
 =?utf-8?B?ZkNIYWZTUGFHWkh0QndYckoyM0lzcXBZa0VUWjhBTWdXbHRITnBZZEkzWC8v?=
 =?utf-8?B?Y0c2VEozY1F6THA5Z2VyTkpteTZVZTJEc1ora09ySW53QWE0cnppNVF3T3Ux?=
 =?utf-8?B?b3BPcDZCV3B2b0lGSi9aRGxZNDkzeHhTUjIvNjV1aXBmM2VZejVlbnpvc2Yx?=
 =?utf-8?B?ME1GMjl5NDEzQTRmOXMrSXpneUZoUE9SdDAxakdUb0orOWw2R0tEWTIzMVYw?=
 =?utf-8?B?eWZweWQ3NHVYbWRGM3had2dsdld6U1JKWldtdEtoejlwdE5VcWRZT1FJTzl1?=
 =?utf-8?B?V1hWRWY4RC9COUN5emJuOFU5TmJ1ZWgyUWtDOU5yWEhCYUZPbjF3RHZTUTA5?=
 =?utf-8?B?Mk82LzAxaXdMK1Fpdm5BNDlrMzdTM1VPbmkva3JIdHoyOWFRVFJlRElDZlRT?=
 =?utf-8?B?SFB5UjJKQzVOUnRBck4yMC9kTW54OHIyMHNQQXVIam1IdVp1eFBWM1U2eUR5?=
 =?utf-8?B?bjE5bWNFZGptWWxqcUpLeXgwWXJHbVNEK0cyTVE3Z29TajZpaWg4Y05LL0xk?=
 =?utf-8?B?V0VZci9XSjFNV2dMNUxsQUNhYW8zK0VCV2lYdlkrZmk0dmtpc1R2YzVhdzha?=
 =?utf-8?B?UDQ2TmF4SElKSFNhYXY3WDgxRjNjcEtsb1N0Vkx0MDB0SWc4M3BVVWpJWDRH?=
 =?utf-8?B?UVRWTTcyYlZmMDhubi9VeEpjYnMyY0V5UmpYT3E1dkwrdis4SHMvdllPa1E4?=
 =?utf-8?B?R013SU1adHA4ZUtGeW1oQXZuMTNVbGZnVzUzeHZFNU5LK3hVeUV6OFNmZndZ?=
 =?utf-8?B?c3Y4S0xEbWs2cFVibzBjaU5HVWlyS3hDODFkOGVoQXV6dFNmSk1aVVJWNWNY?=
 =?utf-8?B?TnZHd0dLeHMrT1JLS1BIb3lTWU9od2NONmFQc1RMWUJTcTVxMHNmSWRYWjVV?=
 =?utf-8?B?OG5YcU44eEdmbk9mWno5NXFyMFZ2Z0g1V1VTRUUvZ2VZL1h4QXhtOG80azI3?=
 =?utf-8?B?S0FzaFIxR2k1UUt4OTMxcUxSNXhybndBNGJYeTROYkZGUmpILzk3ZldzQlZj?=
 =?utf-8?B?b3Nud2g5MEpMb0lEbDg3a1NDdTdyV2ZwdnQyUzhSUWpJMndhajh5K29pRERP?=
 =?utf-8?B?T1E9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <FFA5A50A7828354EA54C54E355CC5CC7@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: DB9PR03MB8327.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c7be0d02-7207-462e-5fb4-08dde6f1a9f3
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Aug 2025 11:46:16.8694
 (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: aW4+F7vCuMUzJIW9hZGesKiwy0IhHnODmFNb/Ud3TKhMCEFfM4h1mY9eetLOmJRglgDW6hFI0QgEYzHfIriZAA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7892

SGkgSnVsaWVuLCBNaWNoYWwNCg0KT24gMjguMDguMjUgMDA6NDIsIEp1bGllbiBHcmFsbCB3cm90
ZToNCj4gSGkgTWljaGFsLA0KPg0KPiBPbiAyNi8wOC8yMDI1IDEyOjQ0LCBPcnplbCwgTWljaGFs
IHdyb3RlOg0KPj4NCj4+DQo+PiBPbiAyNi8wOC8yMDI1IDEyOjQ4LCBKdWxpZW4gR3JhbGwgd3Jv
dGU6DQo+Pj4gSGksDQo+Pj4NCj4+PiBPbiAyNi8wOC8yMDI1IDEwOjQ3LCBEbXl0cm8gRmlyc292
IHdyb3RlOg0KPj4+PiBPbiAyMi4wOC4yNSAxMToxMiwgT3J6ZWwsIE1pY2hhbCB3cm90ZToNCj4+
Pj4NCj4+Pj4gVGhlcmUgYXJlIGFscmVhZHkgYSBmZXcgcGxhY2VzIGFkdmVydGlzaW5nIHRoZSBT
TU1VIGNvaGVyZW5jeToNCj4+Pj4gMSkgc21tdS0+ZmVhdHVyZXMNCj4+Pj4gMikgZC0+aW9tbXUt
PmZlYXR1cmVzDQo+Pj4+IDMpIHBsYXRmb3JtX2ZlYXR1cmVzDQo+Pj4+DQo+Pj4+IEFsbCBvZiB0
aGVtIGFyZSBiZXR0ZXIgcGxhY2VzIHRoYW4gcXVldWUgc3RydWN0ICh0aGF0IGFzIHlvdSANCj4+
Pj4gcG9pbnRlZCBvdXQgaXMgbm90DQo+Pj4+IHNwZWNpZmljIHRvIGNvaGVyZW5jeSkuIEknZCBz
dWdnZXN0IG1heWJlIHRvIHVzZSAzKSBhbmQgcmVtb3ZpbmcgDQo+Pj4+IHJvX2FmdGVyX2luaXQN
Cj4+Pj4gaWYgeW91IGRvbid0IGhhdmUgYWNjZXNzIHRvIDEpIGFuZCAyKS4gQWxsIGluIGFsbCwg
cHJvdmlkaW5nIHlldCANCj4+Pj4gYW5vdGhlciBwbGFjZQ0KPj4+PiBmb3IgY29oZXJlbmN5IGZs
YWcgc2VlbXMgYSBiaXQgdG9vIG11Y2guDQo+Pj4gwqAgPiA+DQo+Pj4+IEZpcnN0IG9mIGFsbCwg
dGhhbmsgeW91IHZlcnkgbXVjaCBmb3IgcmV2aWV3ISBJIHdpbGwgY29uc2lkZXIgdXNpbmcNCj4+
Pj4gInBsYXRmb3JtX2ZlYXR1cmVzIiBpbiBuZXh0IHBhdGNoIHZlcnNpb24sIGl0IGxvb2tzIG1v
cmUgDQo+Pj4+IGFwcHJvcHJpYXRlIGFuZA0KPj4+PiBzaG91bGQgYmUgYXZhaWxhYmxlIHdpdGhp
biB0aGUgd2hvbGUgZHJpdmVyLiBBbHNvLCBJIGJlbGlldmUgDQo+Pj4+ICJyb19hZnRlcl9pbml0
Ig0KPj4+PiBpcyBhbHNvIE9LLCBzaW5jZSBJIGhhdmUgbm8gbmVlZCB0byBjaGFuZ2UgaXQgKG9u
bHkgY2hlY2sgaWYgY2FjaGUNCj4+Pj4gbWFpbnRlbmFuY2Ugc2hvdWxkIGJlIHBlcmZvcm1lZCku
DQo+Pj4NCj4+PiBJIGhhdmUgdG8gZGlzYWdyZWUgd2l0aCB1c2luZyAicGxhdGZvcm1fZmVhdHVy
ZXMiLiBGbHVzaGluZyB0aGUgDQo+Pj4gcXVldWUgaXMNCj4+PiBhIHBlci1TTU1VIGRlY2lzaW9u
LiBCdXQgbG9va2luZyBhdCB0aGUgY29kZSwgSSB0aGluayBwYXNzaW5nIHRoZSBTTU1VDQo+Pj4g
dG8gdGhlIGNhbGxlciB3b3VsZCBsb29rIHdyb25nICh3aGF0IGlmIHlvdSBtaXN0YWtlbmx5IHBh
c3MgdGhlIHdyb25nDQo+Pj4gU01NVT8pLiBTbyBJIHRoaW5rIGEgYm9vbGVhbiBwZXIgcXVldWUg
aXMgdGhlIHJpZ2h0IGFwcHJhb2NoLg0KPj4gRm9yIG15IG93biB1bmRlcnN0YW5kaW5nOiBkb24n
dCB3ZSBjb25zaWRlciBTTU1VIGNvaGVyZW5jeSBnbG9iYWxseSwgDQo+PiBub3QgcGVyDQo+PiBT
TU1VIChoZW5jZSB3aHkgSSBzdWdnZXN0ZWQgcmUtdXNpbmcgdGhlIGdsb2JhbCBmbGFnKT8NCj4g
PiBXZSBzZXQgdGhlIGNvaGVyZW5jeT4gZmVhdHVyZSBpbiB0aGUgZmxhZ3MgaWYgYWxsIFNNTVVz
IHN1cHBvcnQgaXQuIA0KPiBEbyB3ZSB3YW50IHRvIGRpdmVyZ2Ugbm93IGFuZCBkbw0KPj4gdGhl
IGZsdXNoaW5nIHBlciBTTU1VPw0KPg0KPiBUaGUgdHdvIGNvbnRleHRzIGFyZSBxdWl0ZSBkaWZm
ZXJlbnQuDQo+DQo+IFdlIG5lZWQgdGhlIGdsb2JhbCBmbGFnIHdoZW4gY2xlYW5pbmcgdGhlIHN0
YWdlLTIgcGFnZS10YWJsZXMgYmVjYXVzZSANCj4gd2UgZG9uJ3QgYWx3YXlzIGtub3cgYXQgYm9v
dCB3aGljaCBTTU1VcyB3aWxsIGJlIHVzZWQgZm9yIHRoZSBkZXZpY2VzIA0KPiBhdHRhY2hlZCAo
dGhpbmsgUENJIGhvdHBsdWcpLg0KPg0KPiBJbiB0aGUgY29udGV4dCBvZiB0aGlzIHBhdGNoLCB3
ZSBrbm93IHRoZSBxdWV1ZSBpcyBvbmx5IHVzZWQgYnkgYSANCj4gZ2l2ZW4gU01NVS4gU28gaSB0
aXMgYmV0dGVyIHRvIHRha2UgdGhpcyBkZWNpc2lvbiBwZXItU01NVS9xdWV1ZSB0byANCj4gcmVk
dWNlIHRoZSBudW1iZXIgb2YgY2FjaGUgZmx1c2guIFRoaXMgd2lsbCBiZSBwYXJ0aWN1bGFybHkg
aW1wb3J0YW50IA0KPiBmb3IgdGhlIDItc3RhZ2UgU01NVSB3b3JrIGJlY2F1c2UgdGhlcmUgd2ls
bCBiZSBhIGxvdCBvZiBjb21tYW5kcyBzZW50IA0KPiBvbiBiZWhhbGYgb2YgdGhlIGd1ZXN0IChl
dmVyeSBUTEIgZmx1c2hlcyB3aWxsIGJlIGNvbW1hbmQpLg0KPg0KPiBDaGVlcnMsDQpUaGFuayB5
b3UgZm9yIHRoZSByZXZpZXcgYW5kIGNvbW1lbnRzLg0KDQpJIHdhbnRlZCB0byBmb2xsb3cgdXAg
b24gdGhlIGRpc2N1c3Npb24uIE1pY2hhbCwgSSBzdGlsbCBuZWVkIHRvIA0KY2xhcmlmeTogZG8g
eW91IGFncmVlIHdpdGggdGhlIHBlci1xdWV1ZSBmbGFnIGFwcHJvYWNoPw0KSWYgc28sIEkgd2ls
bCBzaW1wbGlmeSB0aGUgaGVhZGVyIGNvbW1lbnQgdG8gIklzIG1lbW9yeSBhY2Nlc3MgDQpjb2hl
cmVudD8iLCBhZGQgSnVsaWVuJ3MgUkIgdGFnLCBhbmQgcG9zdCB2Mi4NCg0KDQpBbHNvLCB0aGFu
ayB5b3UsIE15a29sYSwgZm9yIHRoZSB0ZXN0aW5nIGFuZCBUQiB0YWcuDQoNCi0tLQ0KDQpCUiwN
Cg0KRG15dHJvLg0K


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 12:11:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 12:11:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101245.1454379 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urxx7-0006rj-Iy; Fri, 29 Aug 2025 12:11:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101245.1454379; Fri, 29 Aug 2025 12:11: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 1urxx7-0006rc-Ef; Fri, 29 Aug 2025 12:11:33 +0000
Received: by outflank-mailman (input) for mailman id 1101245;
 Fri, 29 Aug 2025 12:11:32 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=xaUo=3J=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1urxx6-0006rW-G5
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 12:11:32 +0000
Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com
 [2a00:1450:4864:20::630])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4b43682b-84d1-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 14:11:29 +0200 (CEST)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-afe9f6caf9eso300354966b.3
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 05:11: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
 4fb4d7f45d1cf-61cfc4e5229sm1636830a12.39.2025.08.29.05.11.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 29 Aug 2025 05:11: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>
X-Inumbo-ID: 4b43682b-84d1-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1756469489; x=1757074289; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=vDm1CrIr0MdAZ1nv+oQz8h9/AkcotB42eLWwtP2yc/I=;
        b=VI4jqK9iaoufApMlpvWFrL4atvmYP6IqEarAlKc0DpBusB+nz0uuQV8RF7lAgZSv5p
         t67LhYdfD4TUX5p5rANnwH5q017DvlxVFMcfC5dJuWtvUZx3NaHg6KBHPfYswe2Za6x7
         Ja7w0og2mM2NyUQYLCPhEEP27WbPK0RrPK+73ztRQOVd9LVZDbvs3J5LyHfQRKOminNR
         cSV3lrsGU75GgGbqdzt6HOk57ny3pmCMGkgER4nQFUKj//IeJ5bTNrKrnsqo/+gANLvn
         TRyhUsvrCHu1X5j2KjKksYHg04Jig0dS1bc2hmSAzn//KG/HMSSDcSVvM2j4vMTTA5lv
         9mtA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756469489; x=1757074289;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vDm1CrIr0MdAZ1nv+oQz8h9/AkcotB42eLWwtP2yc/I=;
        b=RDsZ++Al9NeDiRCb2oDG1JhMIQ6ksWpi1e1RQByENBxboP2bwWDgtAQWwXpC03+8OB
         GlY9lt5woLAvjQI4wjhEFzbDCvE3+c0eIIRraqDC5HRRRWYT2TNYMh3svYUHKM+d5/bU
         MlEAMDaXAmKXjmfUueIsRIImI8cPcscxlzodWNQRhCtxhFCW4K6phyV9Xuws8T+8Kr5T
         HaPlm/tVlhdS/PR/CB9Z1ucNq0G4Azo9FaNqAdCYEmsykMQiuuAStQmWpNcZCd2pFIeF
         k37jZF9+HsIg2AiwcWqszizRakcybtA9F1Fhs4kobUz4EGxfjRnmdCYo6Binvm7hygyI
         +B+Q==
X-Forwarded-Encrypted: i=1; AJvYcCXeFJn9djMwpgAJDBoCmsA7ZA/dh92jFVIpwEVlzZWqhr1bAA+8TCaD0SkFo1hQRpj62dqdskU2arc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyc1s5IzjedLto+LW/rhK3NWacRwWKGfZF3F8w8pmIfmMTyg5Qy
	8bnGb4G5UT4TaM293DrMfkgnpacs6lo2Q7PBPsB0vJHUw3D1jsJJbeKFDNDN2P7MTA==
X-Gm-Gg: ASbGncu5NvG0eyz62DMizTYjc63xeuLVfXu0i6acTFg8QBcFEUdt2UPSAwMyk7NAMIG
	bn8SwhsIsrXmOBbbbZfgQkZsRDiK2NZYMp8uqpXMb/APnAaOMJltWUdX8wCo1rYPDY4zZsorsH2
	PSH1Q87QhYg8SpkVpT0GRIrzroyED/rXgkRdy4Eiu90rDOMxmOHzu5IXap16cbB0ZpC2YnqO3FE
	X/Cr+DOuhU0WR7KqKLLVJazM/BD2Afz0Gy3IR11UFzaFLsE0VsvaExNuq2KWbK+AAJfT+7okGny
	C11hfITRVUQ9bXeX8rILj8u5UmGPtO4QkFPiH/KWDRPOPv05a8fHgbZciP+nslksa7f+JF7H37b
	qJ8RzUEsYi8DKh/wErJYVvr4OrAbESnWjWMbaURmXlYgTHxy/+0uaNYv+nNN/+CZHaDBGdxCWs6
	6gWU/SX1JoNVLLq3yG+w==
X-Google-Smtp-Source: AGHT+IE1pjQO50I+KqBOhwHjFmDcQtzwYgXzGuUJym3g2aYrRfSMJ2/IYyv76A3M+oJHGhezasqVNA==
X-Received: by 2002:a17:907:980d:b0:afd:d994:7d19 with SMTP id a640c23a62f3a-afe29709ccbmr2433690366b.62.1756469487179;
        Fri, 29 Aug 2025 05:11:27 -0700 (PDT)
Message-ID: <28e4ea6b-fb38-4484-8d08-9ba8ee653d0b@suse.com>
Date: Fri, 29 Aug 2025 14:11:25 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v11 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for
 guests
To: Mykola Kvach <xakep.amatop@gmail.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Mykola Kvach <Mykola_Kvach@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Shawn Anastasio <sanastasio@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Bob Eshleman <bobbyeshleman@gmail.com>, Connor Davis
 <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1756392094.git.mykola_kvach@epam.com>
 <bb53d9911b00879c7b25f5258d0e3e48005671f9.1756392094.git.mykola_kvach@epam.com>
 <87ecsvz9sx.fsf@epam.com> <a64cff9f-df5f-467b-a944-74e803c64ab9@suse.com>
 <CAGeoDV8Jz6gEh-uHuWb0sM_XNTOayAxqRW=Z4GajpP-eMRA4kw@mail.gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <CAGeoDV8Jz6gEh-uHuWb0sM_XNTOayAxqRW=Z4GajpP-eMRA4kw@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 29.08.2025 13:04, Mykola Kvach wrote:
> On Fri, Aug 29, 2025 at 10:45â€¯AM Jan Beulich <jbeulich@suse.com> wrote:
>> On 28.08.2025 18:32, Volodymyr Babchuk wrote:
>>> Mykola Kvach <xakep.amatop@gmail.com> writes:
>>>> @@ -880,6 +883,25 @@ void arch_domain_creation_finished(struct domain *d)
>>>>      p2m_domain_creation_finished(d);
>>>>  }
>>>>
>>>> +int arch_domain_resume(struct domain *d)
>>>> +{
>>>> +    int rc;
>>>> +    typeof(d->arch.resume_ctx) *ctx = &d->arch.resume_ctx;
>>>> +
>>>> +    if ( !d->is_shutting_down || d->shutdown_code != SHUTDOWN_suspend )
>>>> +    {
>>>> +        dprintk(XENLOG_WARNING,
>>>> +                "%pd: Invalid domain state for resume: is_shutting_down=%d, shutdown_code=%d\n",
>>>> +                d, d->is_shutting_down, d->shutdown_code);
>>>> +        return -EINVAL;
>>>> +    }
>>>
>>> This check probably can go into common domain_resume() function, as
>>> there is nothing arch-specific in here. Probably this can be done during
>>> commit, to save us from v12? If commiters are okay with this.
>>
>> Seeing this, I'm learning that ->is_shutting_down can actually go from
>> true to false. Which I think is a problem (not of this series, but a pre-
>> existing one, see [1]). Code elsewhere assumes this to not be possible,
>> see e.g. __domain_crash(), but I'm also unconvinced that e.g. the shutdown
>> deferral logic is prepared to deal with such a case.
> 
> Should I add an extra patch to this series just for fixing this issue,
> or can I do it within the scope of this one?

I'm happy to see you fix this (I don't even see how we could easily do so),
but definitely in a separate patch (and possibly even independent of this
series). My remark wasn't meant to get in the way of your work, it was just
something I noticed and thought would be relevant to call out.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 12:23:00 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 12:23:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101255.1454389 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ury87-0000Dg-Ge; Fri, 29 Aug 2025 12:22:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101255.1454389; Fri, 29 Aug 2025 12:22:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ury87-0000DZ-DQ; Fri, 29 Aug 2025 12:22:55 +0000
Received: by outflank-mailman (input) for mailman id 1101255;
 Fri, 29 Aug 2025 12:22:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=XizV=3J=cloud.com=frediano.ziglio@srs-se1.protection.inumbo.net>)
 id 1ury86-0000DR-2V
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 12:22:54 +0000
Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com
 [2a00:1450:4864:20::433])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e2768d52-84d2-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 14:22:52 +0200 (CEST)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-3cf991e8b6aso513315f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 05:22:52 -0700 (PDT)
Received: from localhost.localdomain ([87.114.69.104])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3cf276c8eccsm3162592f8f.20.2025.08.29.05.22.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 29 Aug 2025 05:22: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>
X-Inumbo-ID: e2768d52-84d2-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=cloud.com; s=cloud; t=1756470172; x=1757074972; 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=zxYQWD/IYD06xn30QuL9NtG24dkpw0BsAHkuY9APozY=;
        b=KsCELrMTWL+14lFc644867tAmDsQnxrCtP0sgd28EwcZRM700uTd3q8VDhjQZG1JTK
         gtONC4I9uL6coRjM7MbN+GpTyAmprW4EKrQA7dYHi8Uk9650At0Rca8BY5SuAoGgNPBr
         4yE3MPQoqHaYsIloGZorGgj8ln1DDUiSj9HoM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756470172; x=1757074972;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=zxYQWD/IYD06xn30QuL9NtG24dkpw0BsAHkuY9APozY=;
        b=d9cbRLEkonh8T9h2cSBtv62dZkS66G+EBOJAkFykiS3+NiAHxcZMFS33OzyGS+YZ5S
         3LVV4+OCH7kkP6Y37Jl87DZZbO0zmJNHbg+nMD9+Jh3LiiC/7f14x1TfwZBQH6JpqzLX
         Ytg1XD8Oeq4ZFA0SolYoKIKVxlQq0q9NrNiFqev4YXYNuNAVRjv/o+vkBLPYcaMVUNaT
         vD7Liex67xp1ABYYKSp8t5PGchHlT7f2OV2VQyvxqzMNrU7Wv7mo7Q3ODsi/G2H0yMBg
         QbLpuMTWPo/IcS5xViKyVGZrHllApozenMJhdA/UzxgcnD1QdSQdhprgMhlsSRkH9tz7
         kIfg==
X-Gm-Message-State: AOJu0YzrWLKd4AXD3Nl1vQUXkz92b4bPTtk5nW6VqEmeU3iqjy+XzB8K
	astMRyri+9++AK5BVxPcxRihBXIzOQ3eycKAVInL5aKUYxIrAGzBSX/XfIK+ITRn7LfReXDQE87
	BPCPORP8=
X-Gm-Gg: ASbGncs3EmJkr+bCyjAj0yJPV0fVNlx2O4LRKQzuXMsVeQ4AajIvknIf3FfGukSwXED
	xhV9lBRX9xX3EyZYctTy1PIlB3asj1wLjvHWJBfRd5Qsj5gwA59KHndDxpt+ndwwNmO+6mKB6Rf
	E4F9Ag+q8a3pQ5NYKC3mlbraVuIanb0FH1dEYBhU25bhK7SjDyG8HNmY+6vqMmQPJdPfJtfmej+
	JJkVVdmzbAOGnZ50Jhs1YESE813KcbgxxLWxGoGST7KwktxQoe0qtu8mS9EvfjFLt/7WAV504h7
	wTHx/VTAn/wJjf9wDbM2q/3wbLtFkoUx2/OZvWe3HFTU0qOmyNxnVsscNBE/CIhRNRWDMVVI6jU
	9sq/tqii9DkiPc9yHLtc+a2vh+PtEOv2Rs7GcFY+Vkw==
X-Google-Smtp-Source: AGHT+IEn4n66DU6nGbw029Mvex8z0e9NOO8zlPOY1L6pkdpdFt9THmLMvCDOJiadaPwZOfyccIWhPg==
X-Received: by 2002:a05:6000:2882:b0:3b8:d16a:a4a5 with SMTP id ffacd0b85a97d-3c5d7ac658emr18223671f8f.0.1756470171663;
        Fri, 29 Aug 2025 05:22:51 -0700 (PDT)
From: Frediano Ziglio <frediano.ziglio@cloud.com>
To: xen-devel@lists.xenproject.org
Cc: Frediano Ziglio <frediano.ziglio@cloud.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>,
	Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v3] xen/efi: Fix crash with initial empty EFI options
Date: Fri, 29 Aug 2025 13:22:26 +0100
Message-ID: <20250829122227.43023-1-frediano.ziglio@cloud.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

EFI code path split options from EFI LoadOptions fields in 2
pieces, first EFI options, second Xen options.
"get_argv" function is called first to get the number of arguments
in the LoadOptions, second, after allocating enough space, to
fill some "argc"/"argv" variable. However the first parsing could
be different from second as second is able to detect "--" argument
separator. So it was possible that "argc" was bigger than the
initialized portion of "argv" array, leading to potential
uninitialized pointer dereference, in particular a string like
"-- a b c" would lead to crashes.
Using EFI shell is possible to pass any kind of string in
LoadOptions.

Fixes: bf6501a62e80 ("x86-64: EFI boot code")
Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com>
Reviewed-by: Marek Marczykowski-GÃ³recki <marmarek@invisiblethingslab.com>
---
Changes since v2:
- updated commit message
- added Reviewed-by line

Changes since v1:
- use argc to make code more clear;
- fix commit reference;
- improve commit message.
---
 xen/common/efi/boot.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index b7fdb031d0..e12fa1a7ec 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -350,10 +350,11 @@ static unsigned int __init get_argv(unsigned int argc, CHAR16 **argv,
 
     if ( argc )
     {
+        argc = 0;
         cmdline = data + *offset;
         /* EFI_LOAD_OPTION does not supply an image name as first component. */
         if ( *offset )
-            *argv++ = NULL;
+            argv[argc++] = NULL;
     }
     else if ( size > sizeof(*cmdline) && !(size % sizeof(*cmdline)) &&
               (wmemchr(data, 0, size / sizeof(*cmdline)) ==
@@ -414,14 +415,14 @@ static unsigned int __init get_argv(unsigned int argc, CHAR16 **argv,
                 ++argc;
             else if ( prev && wstrcmp(prev, L"--") == 0 )
             {
-                --argv;
+                --argc;
                 if ( options )
                     *options = cmdline;
                 break;
             }
             else
             {
-                *argv++ = prev = ptr;
+                argv[argc++] = prev = ptr;
                 *ptr = *cmdline;
                 *++ptr = 0;
             }
@@ -429,7 +430,7 @@ static unsigned int __init get_argv(unsigned int argc, CHAR16 **argv,
         prev_sep = cur_sep;
     }
     if ( argv )
-        *argv = NULL;
+        argv[argc] = NULL;
     return argc;
 }
 
@@ -1355,8 +1356,8 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE ImageHandle,
                                   (argc + 1) * sizeof(*argv) +
                                       loaded_image->LoadOptionsSize,
                                   (void **)&argv) == EFI_SUCCESS )
-            get_argv(argc, argv, loaded_image->LoadOptions,
-                     loaded_image->LoadOptionsSize, &offset, &options);
+            argc = get_argv(argc, argv, loaded_image->LoadOptions,
+                            loaded_image->LoadOptionsSize, &offset, &options);
         else
             argc = 0;
         for ( i = 1; i < argc; ++i )
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Aug 29 12:32:43 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 12:32:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101277.1454398 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uryHW-000219-9W; Fri, 29 Aug 2025 12:32:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101277.1454398; Fri, 29 Aug 2025 12:32: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 1uryHW-000212-6g; Fri, 29 Aug 2025 12:32:38 +0000
Received: by outflank-mailman (input) for mailman id 1101277;
 Fri, 29 Aug 2025 12:32:37 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=KOV5=3J=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1uryHU-00020d-T6
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 12:32:37 +0000
Received: from mail-lj1-x236.google.com (mail-lj1-x236.google.com
 [2a00:1450:4864:20::236])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3e112bbb-84d4-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 14:32:35 +0200 (CEST)
Received: by mail-lj1-x236.google.com with SMTP id
 38308e7fff4ca-336af6356a5so10662401fa.3
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 05:32: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>
X-Inumbo-ID: 3e112bbb-84d4-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756470755; x=1757075555; darn=lists.xenproject.org;
        h=content-transfer-encoding:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qJrmkL+zJdKGNOHkslbdmvNqONt+DIPunIjeu1zrpjo=;
        b=D3BLEmsU2E30W5VfwxUFY2e/VnVDN7E5DnwOHB8zBVDAkCB4LLgba170RBMYYSoj6t
         W5LEw340MDPNxtrZF+wWMu93REL+V6nlb71H/B3gVdmUMUwRPT+uARC76e2lvQx6a9/4
         QSnsGTaAfVuxtXl2NBR8U355sPhBFpzsm/hKb3jOfZkajedEN+EpZ9OenLgcHPz5ZFH5
         dUACNkpfIn8qFkTf2zwY8qTtgCAl64NHlYMA6EvOB7xD5sv/NdnoDWMsr2RjK/Gub2p6
         3t4zMXGPgCgsdguJQzJy+jhbzylXECX2xqhtIhy3lFdKI/yMjhssJY3/0iw3f7e6MH6z
         BTLA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756470755; x=1757075555;
        h=content-transfer-encoding:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=qJrmkL+zJdKGNOHkslbdmvNqONt+DIPunIjeu1zrpjo=;
        b=whumxdk1Uc3uA//po9T5Zephbam3ctfCrckSb7FS9xyWTEQ42uLd1teNzUn7BAvGFQ
         4DlF10GTrN2KQLmh6UFazvtafUU3m6wfhNypS+//RK6Gt27gitqcUyKsMFbDOmeG1GnL
         s9E9sCSIE+3V6F0z9uHT7xsmeCQfB0Z5fRQYIlcZLi+HXngOq8Cx75nayRjX/rWLKQJE
         A8rksim1HfqK69KTsaOrTjencWCxwuwps+o1Gfbrgi/xWPKFTYRFG4mXmHXyZq1oYlyG
         tWztY+stKVYlEnZkreUqza++3y5QkjbZnQxGQkzkk6/pxFakoUO39ScHi8IhavJFnHv6
         mumQ==
X-Gm-Message-State: AOJu0YwtCKX+DEOIdfOoAE4qw942V5N+PJJbI/RP+bw08mEWapyGgjm1
	JtG3j6P3o7Te94HDDt+ULPL4Adrfo+T3GzXRBmu9DfqwgFlBmxsx5jARuTF5bgFm5ADdDlDD/7J
	rAdY6q3xIf7Bn8ALiti6k2KF6o1nwvpFeuQAC
X-Gm-Gg: ASbGncuqAWfhnRLzAQb+N9IdyWrO0CU9J6StgfuddAiM2PUBWBiiH16zlSWBphxL5fZ
	7G2ir8khSWS+/UB77e4zTdIRNTIueq1bI8yOvyGn4OoY/V2Zp1qEEz48eh1CjOPUrgW4IToR9j/
	0NFAWffTqVhVyF/NfMhTlHHDcaop9mfoQF35UOJVtPdfZNmMG8pBYtXXDFJjJFu5MLCwHarQXJZ
	jwVEw==
X-Google-Smtp-Source: AGHT+IFqArGXl0aGu/gkfkqS9DxIGxruONSd/khLEIPX3bh2UFeCMSifu89guFXfycIavP0lhFpjQKlJ0azvMXQfGI0=
X-Received: by 2002:a05:6512:258a:b0:55f:5516:4160 with SMTP id
 2adb3069b0e04-55f5516437emr3154694e87.37.1756470754397; Fri, 29 Aug 2025
 05:32:34 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1756392094.git.mykola_kvach@epam.com> <bb53d9911b00879c7b25f5258d0e3e48005671f9.1756392094.git.mykola_kvach@epam.com>
In-Reply-To: <bb53d9911b00879c7b25f5258d0e3e48005671f9.1756392094.git.mykola_kvach@epam.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Fri, 29 Aug 2025 15:32:22 +0300
X-Gm-Features: Ac12FXwKVlRZQopGckJRaw3zAHJ1AJ7WMV8fb5sYUsCMf5Q_QtFkbVZ1kfeE_0M
Message-ID: <CAGeoDV-J2yvK_OaEJkgbjCxBCr0kMoYZWfDYGVVYrHJxGeSsdg@mail.gmail.com>
Subject: Re: [PATCH v11 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for guests
To: xen-devel@lists.xenproject.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, Aug 28, 2025 at 5:54=E2=80=AFPM Mykola Kvach <xakep.amatop@gmail.co=
m> wrote:
>
> From: Mykola Kvach <mykola_kvach@epam.com>
>
> Add support for the PSCI SYSTEM_SUSPEND function in the vPSCI interface,
> allowing guests to request suspend via the PSCI v1.0 SYSTEM_SUSPEND call
> (both 32-bit and 64-bit variants).
>
> Implementation details:
> - Add SYSTEM_SUSPEND function IDs to PSCI definitions
> - Trap and handle SYSTEM_SUSPEND in vPSCI
> - Allow only non-hardware domains to invoke SYSTEM_SUSPEND; return
>   PSCI_NOT_SUPPORTED for the hardware domain to avoid halting the system
>   in hwdom_shutdown() via domain_shutdown
> - Require all secondary VCPUs of the calling domain to be offline before
>   suspend, as mandated by the PSCI specification
>
> The arch_domain_resume() function is an architecture-specific hook that i=
s
> invoked during domain resume to perform any necessary setup or restoratio=
n
> steps required by the platform.
>
> The new vpsci_vcpu_up_prepare() helper is called on the resume path to se=
t up
> the vCPU context (such as entry point, some system regs and context ID) b=
efore
> resuming a suspended guest. This keeps ARM/vPSCI-specific logic out of co=
mmon
> code and avoids intrusive changes to the generic resume flow.
>
> Usage:
>
> For Linux-based guests, suspend can be initiated with:
>     echo mem > /sys/power/state
> or via:
>     systemctl suspend
>
> Resuming the guest is performed from control domain using:
>       xl resume <domain>
>
> Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> ---
> Changes in V11:
> - introduce arch_domain_resume() and vpsci_vcpu_up_prepare(), which are n=
ow
> called on the resume path to avoid extra modifications to common code.
> The vCPU context is now updated during domain resume.
>
> Changes in V10:
> - small changes to the commit message reflect updates introduced in this
>   version of the patch.
> - Comments are improved, clarified, and expanded, especially regarding PS=
CI
>   requirements and context handling.
> - An ARM-specific helper (domain_resume_nopause_helper)
> - gprintk() and PRIregister are used for logging in vPSCI code.
> - An isb() is added before p2m_save_state
> - The is_64bit_domain check is dropped when masking the upper part of ent=
ry
>   point and cid for SMC32 SYSTEM_SUSPEND PSCI calls
>
> Changes in V9:
> - no functional changes
> - cosmetic chnages after review
> - enhance commit message and add extra comment to the code after review
>
> Changes in V8:
> - GIC and virtual timer context must be saved when the domain suspends
> - rework locking
> - minor changes after code review
>
> Changes in V7:
> - add proper locking
> - minor changes after code review
>
> Changes in V6:
> - skip execution of ctxt_switch_from for vcpu that is in paused domain
> - add implementation of domain_resume without domain_pause
> - add helper function to determine if vcpu is suspended or not
> - ignore upper 32 bits of argument values when the domain is 64-bit
>   and calls the SMC32 SYSTEM_SUSPEND function
> - cosmetic changes after review
>
> Changes in V5:
> - don't use standby mode, restore execution in a provided by guest point
> - move checking that all CPUs, except current one, are offline to after
>   pausing the vCPUs
> - provide ret status from arch_domain_shutdown and handle it in
>   domain_shutdown
> - adjust VPSCI_NR_FUNCS to reflect the number of newly added PSCI functio=
ns
>
> Changes in V4:
> Dropped all changes related to watchdog, domain is marked as shutting
> down in domain_shutdown and watchdog timeout handler won't trigger
> because of it.
>
> Previous versions included code to manage Xen watchdog timers during susp=
end,
> but this was removed. When a guest OS starts the Xen watchdog (either via=
 the
> kernel driver or xenwatchdogd), it is responsible for managing that state
> across suspend/resume. On Linux, the Xen kernel driver properly stops the
> watchdog during suspend. However, when xenwatchdogd is used instead, susp=
end
> handling is incomplete, potentially leading to watchdog-triggered resets =
on
> resume. Xen leaves watchdog handling to the guest OS and its services.
>
> Dropped all changes related to VCPU context, because instead domain_shutd=
own
> is used, so we don't need any extra changes for suspending domain.
>
> Changes in V3:
> Dropped all domain flags and related code (which touched common functions=
 like
> vcpu_unblock), keeping only the necessary changes for Xen suspend/resume,=
 i.e.
> suspend/resume is now fully supported only for the hardware domain.
> Proper support for domU suspend/resume will be added in a future patch.
> This patch does not yet include VCPU context reset or domain context
> restoration in VCPU.
> ---
>  xen/arch/arm/domain.c                 |  22 +++++
>  xen/arch/arm/include/asm/domain.h     |   6 ++
>  xen/arch/arm/include/asm/perfc_defn.h |   1 +
>  xen/arch/arm/include/asm/psci.h       |   2 +
>  xen/arch/arm/include/asm/vpsci.h      |   5 +-
>  xen/arch/arm/vpsci.c                  | 114 +++++++++++++++++++++-----
>  xen/arch/ppc/stubs.c                  |   5 ++
>  xen/arch/riscv/stubs.c                |   5 ++
>  xen/arch/x86/domain.c                 |   5 ++
>  xen/common/domain.c                   |   9 ++
>  xen/include/xen/domain.h              |   2 +
>  11 files changed, 156 insertions(+), 20 deletions(-)
>
> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
> index 863ae18157..6fd73eedde 100644
> --- a/xen/arch/arm/domain.c
> +++ b/xen/arch/arm/domain.c
> @@ -12,6 +12,8 @@
>  #include <xen/softirq.h>
>  #include <xen/wait.h>
>
> +#include <public/sched.h>
> +
>  #include <asm/arm64/sve.h>
>  #include <asm/cpuerrata.h>
>  #include <asm/cpufeature.h>
> @@ -27,6 +29,7 @@
>  #include <asm/tee/tee.h>
>  #include <asm/vfp.h>
>  #include <asm/vgic.h>
> +#include <asm/vpsci.h>
>  #include <asm/vtimer.h>
>
>  #include "vpci.h"
> @@ -880,6 +883,25 @@ void arch_domain_creation_finished(struct domain *d)
>      p2m_domain_creation_finished(d);
>  }
>
> +int arch_domain_resume(struct domain *d)
> +{
> +    int rc;
> +    typeof(d->arch.resume_ctx) *ctx =3D &d->arch.resume_ctx;
> +
> +    if ( !d->is_shutting_down || d->shutdown_code !=3D SHUTDOWN_suspend =
)
> +    {
> +        dprintk(XENLOG_WARNING,
> +                "%pd: Invalid domain state for resume: is_shutting_down=
=3D%d, shutdown_code=3D%d\n",
> +                d, d->is_shutting_down, d->shutdown_code);
> +        return -EINVAL;
> +    }
> +
> +    rc =3D vpsci_vcpu_up_prepare(ctx->wake_cpu , ctx->ep, ctx->cid);
> +    memset(ctx, 0, sizeof(*ctx));
> +
> +    return rc;
> +}
> +
>  static int is_guest_pv32_psr(uint32_t psr)
>  {
>      switch (psr & PSR_MODE_MASK)
> diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm=
/domain.h
> index a3487ca713..68185fc4d6 100644
> --- a/xen/arch/arm/include/asm/domain.h
> +++ b/xen/arch/arm/include/asm/domain.h
> @@ -121,6 +121,12 @@ struct arch_domain
>      void *tee;
>  #endif
>
> +    struct resume_info {
> +        register_t ep;
> +        register_t cid;
> +        struct vcpu *wake_cpu;
> +    } resume_ctx;
> +
>  }  __cacheline_aligned;
>
>  struct arch_vcpu
> diff --git a/xen/arch/arm/include/asm/perfc_defn.h b/xen/arch/arm/include=
/asm/perfc_defn.h
> index effd25b69e..8dfcac7e3b 100644
> --- a/xen/arch/arm/include/asm/perfc_defn.h
> +++ b/xen/arch/arm/include/asm/perfc_defn.h
> @@ -33,6 +33,7 @@ PERFCOUNTER(vpsci_system_reset,        "vpsci: system_r=
eset")
>  PERFCOUNTER(vpsci_cpu_suspend,         "vpsci: cpu_suspend")
>  PERFCOUNTER(vpsci_cpu_affinity_info,   "vpsci: cpu_affinity_info")
>  PERFCOUNTER(vpsci_features,            "vpsci: features")
> +PERFCOUNTER(vpsci_system_suspend,      "vpsci: system_suspend")
>
>  PERFCOUNTER(vcpu_kick,                 "vcpu: notify other vcpu")
>
> diff --git a/xen/arch/arm/include/asm/psci.h b/xen/arch/arm/include/asm/p=
sci.h
> index 4780972621..48a93e6b79 100644
> --- a/xen/arch/arm/include/asm/psci.h
> +++ b/xen/arch/arm/include/asm/psci.h
> @@ -47,10 +47,12 @@ void call_psci_system_reset(void);
>  #define PSCI_0_2_FN32_SYSTEM_OFF          PSCI_0_2_FN32(8)
>  #define PSCI_0_2_FN32_SYSTEM_RESET        PSCI_0_2_FN32(9)
>  #define PSCI_1_0_FN32_PSCI_FEATURES       PSCI_0_2_FN32(10)
> +#define PSCI_1_0_FN32_SYSTEM_SUSPEND      PSCI_0_2_FN32(14)
>
>  #define PSCI_0_2_FN64_CPU_SUSPEND         PSCI_0_2_FN64(1)
>  #define PSCI_0_2_FN64_CPU_ON              PSCI_0_2_FN64(3)
>  #define PSCI_0_2_FN64_AFFINITY_INFO       PSCI_0_2_FN64(4)
> +#define PSCI_1_0_FN64_SYSTEM_SUSPEND      PSCI_0_2_FN64(14)
>
>  /* PSCI v0.2 affinity level state returned by AFFINITY_INFO */
>  #define PSCI_0_2_AFFINITY_LEVEL_ON      0
> diff --git a/xen/arch/arm/include/asm/vpsci.h b/xen/arch/arm/include/asm/=
vpsci.h
> index 0cca5e6830..d790ab3715 100644
> --- a/xen/arch/arm/include/asm/vpsci.h
> +++ b/xen/arch/arm/include/asm/vpsci.h
> @@ -23,12 +23,15 @@
>  #include <asm/psci.h>
>
>  /* Number of function implemented by virtual PSCI (only 0.2 or later) */
> -#define VPSCI_NR_FUNCS  12
> +#define VPSCI_NR_FUNCS  14
>
>  /* Functions handle PSCI calls from the guests */
>  bool do_vpsci_0_1_call(struct cpu_user_regs *regs, uint32_t fid);
>  bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid);
>
> +int vpsci_vcpu_up_prepare(struct vcpu *v, register_t entry_point,
> +                          register_t context_id);
> +
>  #endif /* __ASM_VPSCI_H__ */
>
>  /*
> diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
> index 7ba9ccd94b..50cf5fd96c 100644
> --- a/xen/arch/arm/vpsci.c
> +++ b/xen/arch/arm/vpsci.c
> @@ -10,30 +10,16 @@
>
>  #include <public/sched.h>
>
> -static int do_common_cpu_on(register_t target_cpu, register_t entry_poin=
t,
> -                            register_t context_id)
> +int vpsci_vcpu_up_prepare(struct vcpu *v, register_t entry_point,
> +                   register_t context_id)
>  {
> -    struct vcpu *v;
> -    struct domain *d =3D current->domain;
> -    struct vcpu_guest_context *ctxt;
>      int rc;
> +    struct domain *d =3D current->domain;

Note to myself:

It is not a good idea to use current here; it should be v instead.
It works for CPU_ON because the requested CPU will be in the same domain
as the caller. However, an interesting situation arises when this is
invoked from "xl resume". If the control domain and the domain being
resumed have different bitness (e.g., 32-bit and 64-bit domains), we
will have problems: we may fill some fields as for one bitness, but
arch_set_info_guest will check the fields for another bitness.

>      bool is_thumb =3D entry_point & 1;
> -    register_t vcpuid;
> -
> -    vcpuid =3D vaffinity_to_vcpuid(target_cpu);
> -
> -    if ( (v =3D domain_vcpu(d, vcpuid)) =3D=3D NULL )
> -        return PSCI_INVALID_PARAMETERS;
> -
> -    /* THUMB set is not allowed with 64-bit domain */
> -    if ( is_64bit_domain(d) && is_thumb )
> -        return PSCI_INVALID_ADDRESS;
> -
> -    if ( !test_bit(_VPF_down, &v->pause_flags) )
> -        return PSCI_ALREADY_ON;
> +    struct vcpu_guest_context *ctxt;
>
>      if ( (ctxt =3D alloc_vcpu_guest_context()) =3D=3D NULL )
> -        return PSCI_DENIED;
> +        return -ENOMEM;
>
>      vgic_clear_pending_irqs(v);

Leftover.
We don't need to call vgic_clear_pending_irqs(v) when resuming a domain,
but this function is called in do_common_cpu_on, so it have to be removed
from this function.

>
> @@ -76,8 +62,37 @@ static int do_common_cpu_on(register_t target_cpu, reg=
ister_t entry_point,
>      free_vcpu_guest_context(ctxt);
>
>      if ( rc < 0 )
> +        return rc;
> +
> +    return 0;
> +}
> +
> +static int do_common_cpu_on(register_t target_cpu, register_t entry_poin=
t,
> +                            register_t context_id)
> +{
> +    struct vcpu *v;
> +    struct domain *d =3D current->domain;
> +    int rc;
> +    bool is_thumb =3D entry_point & 1;
> +    register_t vcpuid;
> +
> +    vcpuid =3D vaffinity_to_vcpuid(target_cpu);
> +
> +    if ( (v =3D domain_vcpu(d, vcpuid)) =3D=3D NULL )
> +        return PSCI_INVALID_PARAMETERS;
> +
> +    /* THUMB set is not allowed with 64-bit domain */
> +    if ( is_64bit_domain(d) && is_thumb )
> +        return PSCI_INVALID_ADDRESS;
> +
> +    if ( !test_bit(_VPF_down, &v->pause_flags) )
> +        return PSCI_ALREADY_ON;
> +
> +    rc =3D vpsci_vcpu_up_prepare(v, entry_point, context_id);
> +    if ( rc )
>          return PSCI_DENIED;
>
> +    vgic_clear_pending_irqs(v);
>      vcpu_wake(v);
>
>      return PSCI_SUCCESS;
> @@ -197,6 +212,48 @@ static void do_psci_0_2_system_reset(void)
>      domain_shutdown(d,SHUTDOWN_reboot);
>  }
>
> +static int32_t do_psci_1_0_system_suspend(register_t epoint, register_t =
cid)
> +{
> +    int32_t rc;
> +    struct vcpu *v;
> +    struct domain *d =3D current->domain;
> +    bool is_thumb =3D epoint & 1;
> +
> +    /* THUMB set is not allowed with 64-bit domain */
> +    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 )
> +    {
> +        if ( v !=3D current && is_vcpu_online(v) )
> +        {
> +            domain_unlock(d);
> +            return PSCI_DENIED;
> +        }
> +    }
> +    domain_unlock(d);
> +
> +    rc =3D domain_shutdown(d, SHUTDOWN_suspend);
> +    if ( rc )
> +        return PSCI_DENIED;
> +
> +    d->arch.resume_ctx.ep =3D epoint;
> +    d->arch.resume_ctx.cid =3D cid;
> +    d->arch.resume_ctx.wake_cpu =3D current;
> +
> +    gprintk(XENLOG_DEBUG,
> +            "SYSTEM_SUSPEND requested, epoint=3D0x%"PRIregister", cid=3D=
0x%"PRIregister,
> +            epoint, cid);
> +
> +    return rc;
> +}
> +
>  static int32_t do_psci_1_0_features(uint32_t psci_func_id)
>  {
>      /* /!\ Ordered by function ID and not name */
> @@ -214,6 +271,8 @@ static int32_t do_psci_1_0_features(uint32_t psci_fun=
c_id)
>      case PSCI_0_2_FN32_SYSTEM_OFF:
>      case PSCI_0_2_FN32_SYSTEM_RESET:
>      case PSCI_1_0_FN32_PSCI_FEATURES:
> +    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
> +    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
>      case ARM_SMCCC_VERSION_FID:
>          return 0;
>      default:
> @@ -344,6 +403,23 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *regs, u=
int32_t fid)
>          return true;
>      }
>
> +    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);
> +        }
> +
> +        perfc_incr(vpsci_system_suspend);
> +        PSCI_SET_RESULT(regs, do_psci_1_0_system_suspend(epoint, cid));
> +        return true;
> +    }
> +
>      default:
>          return false;
>      }
> diff --git a/xen/arch/ppc/stubs.c b/xen/arch/ppc/stubs.c
> index bdaf474c5c..0db0627b5c 100644
> --- a/xen/arch/ppc/stubs.c
> +++ b/xen/arch/ppc/stubs.c
> @@ -224,6 +224,11 @@ void arch_domain_creation_finished(struct domain *d)
>      BUG_ON("unimplemented");
>  }
>
> +int arch_domain_resume(struct domain *d)
> +{
> +    return 0;
> +}
> +
>  int arch_set_info_guest(struct vcpu *v, vcpu_guest_context_u c)
>  {
>      BUG_ON("unimplemented");
> diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
> index 1a8c86cd8d..52532ae14d 100644
> --- a/xen/arch/riscv/stubs.c
> +++ b/xen/arch/riscv/stubs.c
> @@ -198,6 +198,11 @@ void arch_domain_creation_finished(struct domain *d)
>      BUG_ON("unimplemented");
>  }
>
> +int arch_domain_resume(struct domain *d)
> +{
> +    return 0;
> +}
> +
>  int arch_set_info_guest(struct vcpu *v, vcpu_guest_context_u c)
>  {
>      BUG_ON("unimplemented");
> diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
> index 19fd86ce88..94a06bc697 100644
> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -1138,6 +1138,11 @@ void arch_domain_creation_finished(struct domain *=
d)
>          hvm_domain_creation_finished(d);
>  }
>
> +int arch_domain_resume(struct domain *d)
> +{
> +    return 0;
> +}
> +
>  #ifdef CONFIG_COMPAT
>  #define xen_vcpu_guest_context vcpu_guest_context
>  #define fpu_ctxt fpu_ctxt.x
> diff --git a/xen/common/domain.c b/xen/common/domain.c
> index 104e917f07..d73a88ced5 100644
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -1352,6 +1352,7 @@ int domain_shutdown(struct domain *d, u8 reason)
>  void domain_resume(struct domain *d)
>  {
>      struct vcpu *v;
> +    int rc;
>
>      /*
>       * Some code paths assume that shutdown status does not get reset un=
der
> @@ -1359,6 +1360,14 @@ void domain_resume(struct domain *d)
>       */
>      domain_pause(d);
>
> +    rc =3D arch_domain_resume(d);
> +    if ( rc )
> +    {
> +        domain_unpause(d);
> +        printk("%pd: Failed to resume domain (ret %d)\n", d, rc);
> +        return;
> +    }
> +
>      spin_lock(&d->shutdown_lock);
>
>      d->is_shutting_down =3D d->is_shut_down =3D 0;
> diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
> index e10baf2615..5f77ffadf1 100644
> --- a/xen/include/xen/domain.h
> +++ b/xen/include/xen/domain.h
> @@ -109,6 +109,8 @@ int arch_domain_soft_reset(struct domain *d);
>
>  void arch_domain_creation_finished(struct domain *d);
>
> +int arch_domain_resume(struct domain *d);
> +
>  void arch_p2m_set_access_required(struct domain *d, bool access_required=
);
>
>  int arch_set_info_guest(struct vcpu *v, vcpu_guest_context_u c);
> --
> 2.48.1
>


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 12:35:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 12:35:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101291.1454408 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uryKD-0002c0-Qe; Fri, 29 Aug 2025 12:35:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101291.1454408; Fri, 29 Aug 2025 12:35:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uryKD-0002bt-OA; Fri, 29 Aug 2025 12:35:25 +0000
Received: by outflank-mailman (input) for mailman id 1101291;
 Fri, 29 Aug 2025 12:35:24 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=P6zs=3J=kernel.org=kbusch@srs-se1.protection.inumbo.net>)
 id 1uryKC-0002bn-Rk
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 12:35:24 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org
 [2600:3c04:e001:324:0:1991:8:25])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a0b43e90-84d4-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 14:35:22 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 1499A60054;
 Fri, 29 Aug 2025 12:35:20 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 49DF0C4CEF0;
 Fri, 29 Aug 2025 12:35:18 +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>
X-Inumbo-ID: a0b43e90-84d4-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1756470919;
	bh=fPmX8Rp8udx+VwVXpgZe9FXorpOePyV4Ef8DrCTRpmU=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=Mxl8/qU6Vvz0COFBLrmB8UJZ9govt1w/+9MvHsezQkHTR5DIoYs7xgXKhzSYkVOm1
	 ZyticaiPv1YXSMvOVriZNEtfWFF/4gFAB5LRbmsuDZl1qYUJ6QJjS6y5kT84iXSP4h
	 c3O0x8clzW4t74drhw57szBCRrci0dZsz7TkMKYvpu6q9eSqR6y+QLN+NF1mWqnv0Y
	 TV+utnoubo+22XzKDO5zQdJ90tzO09TUxr04pRitKlRur46am/LMf882y9Fd21W1eK
	 Oe5n+rwQMv7g1wcRBxrA0L1C89sfgumKn452/Ld/OiWS5hXm6vNk/t7OjLj/in2qzE
	 hQrPqQ39Y1fww==
Date: Fri, 29 Aug 2025 06:35:16 -0600
From: Keith Busch <kbusch@kernel.org>
To: Jason Gunthorpe <jgg@nvidia.com>
Cc: Leon Romanovsky <leon@kernel.org>,
	Marek Szyprowski <m.szyprowski@samsung.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, linux-block@vger.kernel.org,
	linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-mm@kvack.org, linux-nvme@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org, linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 15/16] block-dma: properly take MMIO path
Message-ID: <aLGehMVsTEXrP_R5@kbusch-mbp>
References: <cover.1755624249.git.leon@kernel.org>
 <642dbeb7aa94257eaea71ec63c06e3f939270023.1755624249.git.leon@kernel.org>
 <aLBzeMNT3WOrjprC@kbusch-mbp>
 <20250828165427.GB10073@unreal>
 <aLCOqIaoaKUEOdeh@kbusch-mbp>
 <20250828184115.GE7333@nvidia.com>
 <aLCpqI-VQ7KeB6DL@kbusch-mbp>
 <20250828191820.GH7333@nvidia.com>
 <aLDCC4rXcIKF8sRg@kbusch-mbp>
 <20250828234542.GK7333@nvidia.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250828234542.GK7333@nvidia.com>

On Thu, Aug 28, 2025 at 08:45:42PM -0300, Jason Gunthorpe wrote:
> On Thu, Aug 28, 2025 at 02:54:35PM -0600, Keith Busch wrote:
> 
> > In truth though, I hadn't tried p2p metadata before today, and it looks
> > like bio_integrity_map_user() is missing the P2P extraction flags to
> > make that work. Just added this patch below, now I can set p2p or host
> > memory independently for data and integrity payloads:
> 
> I think it is a bit more than that, you have to make sure all the meta
> data is the same, either all p2p or all cpu and then record this
> somehow so the DMA mapping knows what kind it is.

Sure, I can get all that added in for the real patch.
 
> Once that is all done then the above should still be OK, the dma unmap
> of the data can follow Leon's new flag and the dma unmap of the
> integrity can follow however integrity kept track (in the
> bio_integrity_payload perhaps?) ??

We have available bits in the bio_integrity_payload bip_flags, so that
sounds doable. I think we'll need to rearrange some things so we can
reuse the important code for data and metadata mapping/unmapping, but
doesn't look too bad. I'll get started on that.


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 13:01:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 13:01:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101309.1454419 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uryjF-0006tZ-Qv; Fri, 29 Aug 2025 13:01:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101309.1454419; Fri, 29 Aug 2025 13:01: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 1uryjF-0006tS-N6; Fri, 29 Aug 2025 13:01:17 +0000
Received: by outflank-mailman (input) for mailman id 1101309;
 Fri, 29 Aug 2025 13:01:16 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1uryjE-0006sC-Pi
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 13:01:16 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1uryjE-00CcM2-0E;
 Fri, 29 Aug 2025 13:01:16 +0000
Received: from [2a01:e0a:1da:8420:b77:bd5:6e45:7633] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1uryjD-007a8N-3D;
 Fri, 29 Aug 2025 13:01:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date;
	bh=pF0jNmdgrhbfhCcgs1W8GKx9YMshyZK1L3qJ0UpkwNE=; b=GS63mCmjn4lQ+JuMiewsVNtKUW
	/hTMsaNHBsOVD1GfMS3CniK4oVItYeC23bVhaT9gW5xp2kJ/aLDScQZR0dmpaY4lStdwsZfWxkkUo
	PTZNG4VELd4WrswrWoQmGShtG8kt4uouXlaTxzWjBs4Hlx4XoIq4cW9Vp41GVGLy25a0=;
Date: Fri, 29 Aug 2025 15:01:14 +0200
From: Anthony PERARD <anthony@xenproject.org>
To: Jahan Murudi <jahan.murudi.zg@renesas.com>
Cc: xen-devel@lists.xenproject.org,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [RFC PATCH v3] tools/xentop: Add physical CPU statistics support
Message-ID: <aLGkmhRp-N91Cf-V@l14>
References: <20250804130643.1046157-1-jahan.murudi.zg@renesas.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250804130643.1046157-1-jahan.murudi.zg@renesas.com>

On Mon, Aug 04, 2025 at 06:36:43PM +0530, Jahan Murudi wrote:
> diff --git a/tools/xentop/pcpu.c b/tools/xentop/pcpu.c
> new file mode 100644
> index 0000000000..53d6b9c30c
> --- /dev/null
> +++ b/tools/xentop/pcpu.c
> @@ -0,0 +1,152 @@
[..]
> +int update_pcpu_stats(const struct timeval *now, unsigned int delay_sec)
> +{
> +    struct xen_sysctl_cpuinfo info[MAX_PCPUS];
> +    int detected_cpus = 0;
> +    int ret, i;
> +    uint64_t current_time = (uint64_t)now->tv_sec * 1000000ULL + now->tv_usec;
> +
> +    if (!xc_handle) {
> +        xc_handle = xc_interface_open(NULL, NULL, 0);
> +        if (!xc_handle) {
> +            report_pcpu_error("xc_interface_open failed");
> +            return -1;
> +        }
> +    }
> +
> +    ret = xc_getcpuinfo(xc_handle, MAX_PCPUS, info, &detected_cpus);
> +    if (ret < 0) {
> +        report_pcpu_error("xc_getcpuinfo failed");
> +        return -1;
> +    }
> +
> +    /* Allocate/reallocate memory if needed */
> +    if (!pcpu_stats || detected_cpus > allocated_pcpus) {
> +        pcpu_stat_t *new_stats = realloc(pcpu_stats,
> +                        detected_cpus * sizeof(*pcpu_stats));
> +        if (!new_stats) goto alloc_error;

>From here, `pcpu_stats` is an invalid pointer. You need
`pcpu_stats = new_stats` to avoid double free that would happen in
free_pcpu_stats(). And then, no need to do anything different for the
error handling of the other realloc(), that is, no need for any of the
free(new_*) calls.

> +        uint64_t *new_prev_idle = realloc(prev_idle,
> +                        detected_cpus * sizeof(*prev_idle));
> +        if (!new_prev_idle) {
> +            free(new_stats);
> +            goto alloc_error;
> +        }
> +
> +        uint64_t *new_prev_time = realloc(prev_time,
> +                        detected_cpus * sizeof(*prev_time));
> +        if (!new_prev_time) {
> +            free(new_stats);
> +            free(new_prev_idle);
> +            goto alloc_error;
> +        }
> +
> +        pcpu_stats = new_stats;
> +        prev_idle = new_prev_idle;
> +        prev_time = new_prev_time;
> +        allocated_pcpus = detected_cpus;
> +
> +        /* Initialize new entries */
> +        for (i = 0; i < detected_cpus; i++) {
> +            prev_idle[i] = info[i].idletime / 1000; /* ns->us */
> +            prev_time[i] = current_time;
> +            pcpu_stats[i].usage_pct = 0.0;
> +        }
> +        return 0;
> +    }
> +
> +    /* Calculate CPU usage with delay normalization */
> +    for (i = 0; i < detected_cpus; i++) {
> +        uint64_t current_idle = info[i].idletime / 1000;
> +        uint64_t idle_diff = current_idle - prev_idle[i];
> +        uint64_t time_diff = current_time - prev_time[i];

Do we need to calculate `time_diff` for every cpu? It looks like
prev_time[i] is always the same value, which is `current_time` from the
previous call of update_pcpu_stats().

> +
> +        /* Use configured delay when actual interval is too small */

I can't figure out why this would be necessary. Why a value of less
than 100000 would be too small for `time_diff`? Why would we want to use
`delay_sec` here, surely that would mean that we would calculate the
wrong `usage`?

> +        if (time_diff < 100000) {
> +            time_diff = delay_sec * 1000000ULL;
> +        }
> +
> +        if (time_diff > 0) {
> +            double usage = 100.0 * (1.0 - ((double)idle_diff / time_diff));
> +            /* Clamp between 0-100% */
> +            pcpu_stats[i].usage_pct = (usage < 0) ? 0.0 :
> +                                     (usage > 100) ? 100.0 : usage;
> +        } else {
> +            pcpu_stats[i].usage_pct = 0.0;
> +        }
> +
> +        prev_idle[i] = current_idle;
> +        prev_time[i] = current_time;
> +    }
> +
> +    return 0;
> +
> +alloc_error:
> +    free_pcpu_stats();
> +    errno = ENOMEM;
> +    report_pcpu_error("memory allocation failed");
> +    return -1;
> +}
> +
> +void print_pcpu_stats(void)
> +{
> +    if (!pcpu_stats || allocated_pcpus == 0) {
> +        printf("\r\nNo PCPU data available\r\n");
> +        return;
> +    }
> +
> +    printf("\r\nPhysical CPU Usage:\r\n");
> +    printf("+-------+--------+\r\n");
> +    printf("| Core  | Usage  |\r\n");
> +    printf("+-------+--------+\r\n");

I don't think that the right way to print information on the screen in
non-batch mode. It kind of work, but it pushes the bottom bar (with help
on how to activate more stat) out of the screen. And in batch mode,
there's no need for \r.

There's a print() function in xentop.c which seems to take care of batch
vs ncurse mode.

> +
> +    for (int i = 0; i < allocated_pcpus; i++) {
> +        printf("| %-5d | %5.1f%% |\r\n", i, pcpu_stats[i].usage_pct);
> +    }
> +
> +    printf("+-------+--------+\r\n");
> +}
> +
> +void free_pcpu_stats(void)
> +{
> +    if (xc_handle) {
> +        xc_interface_close(xc_handle);
> +        xc_handle = NULL;
> +    }
> +    free(pcpu_stats);
> +    free(prev_idle);
> +    free(prev_time);
> +    pcpu_stats = NULL;
> +    prev_idle = NULL;
> +    prev_time = NULL;
> +    allocated_pcpus = 0;
> +}


Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 13:11:03 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 13:11:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101328.1454429 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urysc-0000IM-Lw; Fri, 29 Aug 2025 13:10:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101328.1454429; Fri, 29 Aug 2025 13:10: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 1urysc-0000IF-IT; Fri, 29 Aug 2025 13:10:58 +0000
Received: by outflank-mailman (input) for mailman id 1101328;
 Fri, 29 Aug 2025 13:10:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=8vvX=3J=bounce.vates.tech=bounce-md_30504962.68b1a6dd.v1-7e61a5dbb2204fd0963032aef2ef34ee@srs-se1.protection.inumbo.net>)
 id 1urysa-0007gN-Ru
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 13:10:56 +0000
Received: from mail187-26.suw11.mandrillapp.com
 (mail187-26.suw11.mandrillapp.com [198.2.187.26])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9834e8c8-84d9-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 15:10:55 +0200 (CEST)
Received: from pmta09.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail187-26.suw11.mandrillapp.com (Mailchimp) with ESMTP id
 4cCzCx5ZM6zKsbWBR
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 13:10:53 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 7e61a5dbb2204fd0963032aef2ef34ee; Fri, 29 Aug 2025 13:10: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>
X-Inumbo-ID: 9834e8c8-84d9-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1756473053; x=1756743053;
	bh=S8wgDu3X/LCTlKqHP2Q5RIW5ZS/B6RyV2RZ2Lo/o/Eg=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=fRXlBfBGQ9l5F4D6nAmk6wAUIAc6cpQ2LyjMM2VTPezVK4VnZMtkcRaGYitwvutxw
	 eBIAkRaWvVTdMRD7Dhu7IN5P74Znt5japZJO5Y+b5tpeSPUbC5BAcUsHeyhHYcilUf
	 ZLJKAGHfTjcsJNisVM9R5F0TTPl3620qdVlhs8s9msold9yWIHhYJ7fJSGfp8eBn+o
	 cbCoUk38IhM4ycBtyLX/G5S7luPR1KhLh9L8VaZsel56HCLS0MGjUSHMSxAEzWNflG
	 y4m0SmfYykDxAObS47ysYtyOsHcl7GfbpQEJoQHe0xa96/08RxwmMYB1yQwzYbCmhn
	 InAGZ4rYg02sg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1756473053; x=1756733553; i=teddy.astie@vates.tech;
	bh=S8wgDu3X/LCTlKqHP2Q5RIW5ZS/B6RyV2RZ2Lo/o/Eg=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=zvcDmkghTh/L7oC5uLBgV6ZBp9UwqzACxiNQcim2ujLV7Vp/zfBqRVARVWfH7C0Lg
	 TfRMNjmRBqjl8YT3fsy4Wn+P3VtU0ZSQgZm+uc2ffCDgrY5zVCBFVeVmvLOlRPyiU1
	 7pwLxm79zoq1KSv4+vAb+lhBryIwFXpjfGrP/t8BVYk/dJnW9Xl5BEKLlyA4sUEfCo
	 +8q4+rqgRXn/TN1HlbgtfB93AzxTF5zvyc1MgpRN3FRVv/3O8sP3KjTPY1xUpscWeP
	 ASwT837TYwtlChTzMnjcy74l9n76CEA3F7AdgP/vsPjwIaTbpOE+EbvonLncsQoWXX
	 y5OGiggIDJhYA==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[RFC=20PATCH=201/9]=20x86/hvm:=20Use=20direct=20structures=20instead=20of=20guest=20handles?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1756473052643
Message-Id: <5a7a560d-3792-4c31-a9f4-6a6aedff63b4@vates.tech>
To: "Jan Beulich" <jbeulich@suse.com>
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <cover.1755785258.git.teddy.astie@vates.tech> <de595114d532e0fa6c885c47cf2b3551ad495525.1755785258.git.teddy.astie@vates.tech> <d934464e-03f5-4133-8b87-d5bb1b031d9b@suse.com>
In-Reply-To: <d934464e-03f5-4133-8b87-d5bb1b031d9b@suse.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.7e61a5dbb2204fd0963032aef2ef34ee?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250829:md
Date: Fri, 29 Aug 2025 13:10:53 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 28/08/2025 =C3=A0 14:16, Jan Beulich a =C3=A9crit=C2=A0:
> On 21.08.2025 17:25, Teddy Astie wrote:
>> Make these functions work with hypervisor-owned pointer rather than
>> guest handles, so the function parameters don't have to live in guest me=
mory.
> 
> This is odd to read - the function parameters (arguments) didn't live in
> guest memory before either.
> 

I agree, I should reword that so that it's less confusing.

>> No functional changes intended.
>>
>> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
>> ---
>>   xen/arch/x86/hvm/hvm.c | 126 +++++++++++++++++++++++------------------
>>   1 file changed, 70 insertions(+), 56 deletions(-)
>>
>> diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
>> index 56c7de3977..8bf59c63fe 100644
>> --- a/xen/arch/x86/hvm/hvm.c
>> +++ b/xen/arch/x86/hvm/hvm.c
>> @@ -4142,19 +4142,14 @@ static int hvmop_flush_tlb_all(void)
>>       return paging_flush_tlb(NULL) ? 0 : -ERESTART;
>>   }
>>   
>> -static int hvmop_set_evtchn_upcall_vector(
>> -    XEN_GUEST_HANDLE_PARAM(xen_hvm_evtchn_upcall_vector_t) uop)
>> +static int hvmop_set_evtchn_upcall_vector(xen_hvm_evtchn_upcall_vector_=
t op)
> 
> Please can we avoid passing structures by value?
> 

We could, but we would end up having to modify more code to go there i.e 
replacing all op.* with op->* which I tried to avoid here.

> More generally: This one-by-one adjustment is what I'd really like to avo=
id
> with any new interface. It would be far better if ...
> 
>>   {
>> -    xen_hvm_evtchn_upcall_vector_t op;
>>       struct domain *d =3D current->domain;
>>       struct vcpu *v;
>>   
>>       if ( !is_hvm_domain(d) )
>>           return -EINVAL;
>>   
>> -    if ( copy_from_guest(&op, uop, 1) )
>> -        return -EFAULT;
> 
> ... copy_from_guest() could transparantly handle both cases (virtual and
> physical addresses being used). And yes, this would exclude an "everying =
in
> registers" approach.
> 

A part of the goal here is to split the ABI part from the hypercall 
logic; such as it gets possible to have ABI that don't need to refer to 
guest addresses (either virtual or physical); and could help dealing 
with current 32-bits vs 64-bits ABIs. All without duplicating the main 
hypercall logic.

>> @@ -5115,28 +5087,70 @@ long do_hvm_op(unsigned long op, XEN_GUEST_HANDL=
E_PARAM(void) arg)
>>       switch ( op )
>>       {
>>       case HVMOP_set_evtchn_upcall_vector:
>> -        rc =3D hvmop_set_evtchn_upcall_vector(
>> -            guest_handle_cast(arg, xen_hvm_evtchn_upcall_vector_t));
>> +    {
>> +        struct xen_hvm_evtchn_upcall_vector op;
>> +
>> +        if ( copy_from_guest(&op, arg, 1) )
>> +        {
>> +            rc =3D -EFAULT;
>> +            break;
>> +        }
>> +
>> +        rc =3D hvmop_set_evtchn_upcall_vector(op);
>>           break;
>> +    }
>>       
>>       case HVMOP_set_param:
>> -        rc =3D hvmop_set_param(
>> -            guest_handle_cast(arg, xen_hvm_param_t));
>> +    {
>> +        struct xen_hvm_param op;
>> +
>> +        if ( copy_from_guest(&op, arg, 1) )
>> +        {
>> +            rc =3D -EFAULT;
>> +            break;
>> +        }
>> +
>> +        rc =3D hvmop_set_param(op);
>>           break;
>> +    }
>>   
>>       case HVMOP_get_param:
>> -        rc =3D hvmop_get_param(
>> -            guest_handle_cast(arg, xen_hvm_param_t));
>> +    {
>> +        struct xen_hvm_param op;
>> +
>> +        if ( copy_from_guest(&op, arg, 1) )
>> +        {
>> +            rc =3D -EFAULT;
>> +            break;
>> +        }
>> +
>> +        rc =3D hvmop_get_param(&op);
>> +
>> +        if ( !rc && copy_to_guest(arg, &op, 1) )
> 
> Why would the original __copy_to_guest() need to change to copy_to_guest(=
)?
> 

That doesn't need to.

> Jan

Teddy


Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Fri Aug 29 13:16:52 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 13:16:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101338.1454439 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uryyD-0000yG-8v; Fri, 29 Aug 2025 13:16:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101338.1454439; Fri, 29 Aug 2025 13:16: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 1uryyD-0000y9-51; Fri, 29 Aug 2025 13:16:45 +0000
Received: by outflank-mailman (input) for mailman id 1101338;
 Fri, 29 Aug 2025 13:16:43 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=42U4=3J=nvidia.com=jgg@srs-se1.protection.inumbo.net>)
 id 1uryyB-0000y3-Og
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 13:16:43 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20618.outbound.protection.outlook.com
 [2a01:111:f403:200a::618])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 641375ee-84da-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 15:16:39 +0200 (CEST)
Received: from MW6PR12MB8663.namprd12.prod.outlook.com (2603:10b6:303:240::9)
 by CY5PR12MB6430.namprd12.prod.outlook.com (2603:10b6:930:3a::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.17; Fri, 29 Aug
 2025 13:16:28 +0000
Received: from MW6PR12MB8663.namprd12.prod.outlook.com
 ([fe80::594:5be3:34d:77f]) by MW6PR12MB8663.namprd12.prod.outlook.com
 ([fe80::594:5be3:34d:77f%7]) with mapi id 15.20.9073.017; Fri, 29 Aug 2025
 13:16: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>
X-Inumbo-ID: 641375ee-84da-11f0-8dd7-1b34d833f44b
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=LeGvuQr0Ysrbr+MzudNf9fRl/IF+8Ww+1/UsvbO8U0UKUp22FhCMWxvNNvuD0itHcRjAd5WaDrI6uJ0lhcI/IKDEhQ9UZ+5j+9JCW0p8SiEcAfrTHxyhV7TZMRNE28DDni+X1lrq2M3793EKWmmPYeO2lT4ChgR1JKrY38rkEJTUTEP52J4aXz8YjbxWEzrM/J5pclucoymBFvGrdVULMTtrRn6FAlWWESvzqtCnnJZcrK2lz9aNUcr56lELdvKfQ3+/ZLQyGEvjFe5wTv0yKhfLL8BhXPWZx8oxnXhoD4CZf4Sr1iB9zIVW+7uo8rYYFFbjQerhUA7+6zHRPQEtLg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=JCWmjjTdSUkiBsGmYNgY8r0NYQl0/mN0Xq0HSP0LaZs=;
 b=bwSi4uTVQzAGZpm8nR7mfw7Zo6RixsU4Xquq8NVPlKw/JuQoDODaLvefivB6GOkfsFDsqJX4GiC2OjJ028Ly5ZvNE4A/izUA4jt0mv8Sm3Q2UHFTJ3GTYyyl/l0wPf9KWI8dzHgRTFlIT5S2Y0ln746dwq4QIxsi207Xud+jpY0w4x86T3gaJuxHT0M6fbVHV4QGnwhUt8FDIgW1uxErMR50Ld/Eiq2js6bddfM+qChjIiZxzRJeeHAizdj7vZOdyrVNGlRWrdYCboim7b7Hsj2FEd/KSbkEl9rTrM9r7jpQiazthKgG0WJZkUiGuxzUwZqggkwgkCrGFAZ2RAbqrw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com;
 dkim=pass header.d=nvidia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=JCWmjjTdSUkiBsGmYNgY8r0NYQl0/mN0Xq0HSP0LaZs=;
 b=i/HmXQceGXNCOvexidulAQ0kC8o7yfjfECBkeBHjvQF5BeuA8hgQXtsFcVrdaCC62J2FCd2V8fMZzz3PTumh37UvAbH3iIXL/73mp/tVN0gMhBMEM32iqFmiMN+kmW1vNMtre46kzEl2SvhpR28QFiQVDuMjdNtsZ/H7oeGCDNuV8LPAGPFOp28hfysRfy+4ZP4s5U98ECO0TuRvzCND340G8bK6uc9Wq637XZw2zl64qgt7qX+2TEhHEaL25U2net4s+y+Czd91G4Sv6x8Fz+pb+PqDPCLvPND1geKt/784az7VLfLwLg95zeBhRYooO+E8BgIxhvNRtEPSNImP7g==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=nvidia.com;
Date: Fri, 29 Aug 2025 10:16:25 -0300
From: Jason Gunthorpe <jgg@nvidia.com>
To: Leon Romanovsky <leon@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 00/16] dma-mapping: migrate to physical address-based
 API
Message-ID: <20250829131625.GK9469@nvidia.com>
References: <cover.1755624249.git.leon@kernel.org>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <cover.1755624249.git.leon@kernel.org>
X-ClientProxiedBy: SA1P222CA0056.NAMP222.PROD.OUTLOOK.COM
 (2603:10b6:806:2c1::8) To MW6PR12MB8663.namprd12.prod.outlook.com
 (2603:10b6:303:240::9)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MW6PR12MB8663:EE_|CY5PR12MB6430:EE_
X-MS-Office365-Filtering-Correlation-Id: ba19d7ec-1bfe-485d-d6d3-08dde6fe431b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|7416014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?j9VFqPDzvWCSugcsFZk8FRKZSbP5XUc8PO8hHBRkFrxG3PV5kB5sPfbUJe92?=
 =?us-ascii?Q?qM0CxUgtXXI7t6zdv+qXHeS/lN53bNx212jQJ9v3L+Hc23xLOb6UUptvjU7z?=
 =?us-ascii?Q?0nsgu+opQ/YYez+5mzeYkADogU4B0i8D47uiMeLy3LzYnrQIHKgNCHcZO1yS?=
 =?us-ascii?Q?LG+8lbyIJozKkFtjoIotPpC8K7NYZDG3KtJT/WWPuHQAmo46MyGR4IofXut3?=
 =?us-ascii?Q?je1OWIV0WSsYK4ukVbnQg9ZYQKr1OHm1DjwIwiNTrnp0NQuUIZCsF156iBEm?=
 =?us-ascii?Q?B8zNikV+SA+/4Qfwqp1NmUkOyiagQH1plfZRm+LUo92lJgB0Qmsd6LcX62LM?=
 =?us-ascii?Q?gFbiQevxrEKfmYj1RUUU/xOL69n3rNSrLKiIMqnNrjV5yPGaNa0tzyi1F94a?=
 =?us-ascii?Q?GhaoOM2I7fQIqxQndqWWMESGG9xiRwa+Mv7ozbT7r5zo4wd2ti8QljFc6LFK?=
 =?us-ascii?Q?+wn3vHsEe708TW+TVt8bXIzew8QVhx/fZXNI9i92CwccGJWNDdsx0NC+PZlU?=
 =?us-ascii?Q?C7506ogxRZvWMiEuEXkVNtzx1EYNVX96/n0U5mktuMVXhwoipSXKnH1qojab?=
 =?us-ascii?Q?9J+silk9IMFoa7A2k/W4/Iu6i3P/NWeoYoz+XNtLBXHhL1S0XYt6tO/4UOme?=
 =?us-ascii?Q?vomWDP8TRhDyKciwsbOZP62Raiqxx50YaH4V0R8YQlVytdSGZ6IWiLNLDq5C?=
 =?us-ascii?Q?ptw+3qyhWSPC8kqhCRYqnIpFWRA4W9rsv93pjkTAGdMdDINsZgliTFijLYPv?=
 =?us-ascii?Q?8cO+ic2nAYNeAqOUPe4ghcpxyfBDkc00HL0cBBk8DGw7IeHTTfUaoBi2/2KR?=
 =?us-ascii?Q?La1M+ngOqXBhts99xfBpbxRqrscFL+7GndFI1b4IhwodO4ZeJCWWJpgzLchS?=
 =?us-ascii?Q?t2gNzDyQyP/cUQKoiEA8/KXW613z9c0e2fdluhgpvOFziWzkd+DF9VHwC036?=
 =?us-ascii?Q?6QsIpabpQEIBVuiY92nH4XHlDFfHHtnflDSIhb+QGgYzGrFrfjm+eD4qIlGe?=
 =?us-ascii?Q?m81qxYrhAb8gguLUv/gIorbJbOcg5qFMCQ+XYOqnf6h8JIy2Yt6IiULdW4FJ?=
 =?us-ascii?Q?fUIra0gq8JbHZh8RLxzKzBKYbsAopMLfMzMIrtW9vzvoaGSaeEEHPlnZGemP?=
 =?us-ascii?Q?BY7rtxngUTeL+OLq6/F1QQ1vhjSpdEGRDcuzi5cvww3rf31DNcAIW/bBi/RS?=
 =?us-ascii?Q?oa0KPVhb5LjKn7l+XAT6kwi1xZXdX+e1YiaCFNymCyhy7vWtGJLN6SmQvgjh?=
 =?us-ascii?Q?AnFWFiC7U0Td8YqtXX8z0/U4aw5aqUJKg4CW4H4Vsxj9dKoA86MQ0BYy6gcN?=
 =?us-ascii?Q?/zaqzKi5XiCdWrHgiug0Ss0YQ/LjuLyIZRVRTNPlsL4woMRNUGzxojLdJzi5?=
 =?us-ascii?Q?j8gdLTa8o2fZ6t83iMuZyGW3j57C6es60RHXRnyS9nDqS+Gufqi6TATubaAG?=
 =?us-ascii?Q?9Pk99+LH3rc=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW6PR12MB8663.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(7416014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?cuNT2mQMuDj2wUn+wdVR7TLhMYcPNGAj4gfzF3MkyBXvsYN4Os9nDsr7fyUq?=
 =?us-ascii?Q?TNCkRoX2fkf9TYXv9J7BfwijmnDHHTl1Kz2atZMVIwcHAn8aLGPqkWO9wemx?=
 =?us-ascii?Q?SYZfwEdgLcATAcQ0icpUHgkbH4sZMV5uMeTM0CRhEQP233jRtGtJSHD7Zb9A?=
 =?us-ascii?Q?/VNBySpyIhOMS/xAOa1dTvjc+eUBcZB8RwergxIQvssbWzG2lHG/6d0CrCaq?=
 =?us-ascii?Q?MZKO5RI150CwyCxyErlTUkGoH/JnmmYl9WRo9G8THd/bmxMIb0bVu8zdLq03?=
 =?us-ascii?Q?wn8duUi1UEoj+7adHkevd1hUYB/ZvKiqn92487xMuWDwtNFpc2CBxJpXd2Aj?=
 =?us-ascii?Q?4rAswgCTwaXhQUAdOd9oTyhnGk06OZ0qvTgchDp4KIh+blKM+RAhPZjH6P5H?=
 =?us-ascii?Q?aDlub8g7BHRjMB149QSPoVkoe4fl4+wGQ/peeR9v38rGkzcEAwr2uXCu8W39?=
 =?us-ascii?Q?aX4aURUAX2aPA180UfGsIRQJcDKsSxcy+ajZyn9XjmhIXuxI16pgufiKY2Zh?=
 =?us-ascii?Q?mtcPn6jVRM57FP6gFiuDnJ/PoZOLFL4gKQt50Jf+f/l0Gl9xVE9AgybQFF4h?=
 =?us-ascii?Q?Akt1sAOYFCmAUTqEI1xP+NQi9gyGPCWVWwVnaV7Y2gGxeXeWXiRV3GMlULIJ?=
 =?us-ascii?Q?FrpUNv+kUHkhmffgL2u4Ue2KMsAPO+X/H4eudxnX9lPp8/seaWeahuQ9JCMJ?=
 =?us-ascii?Q?f/XtU9ukdygN3ilosvYT6tpKcXPXFvPhSHFOl7gF/6nPfonJ5nmlOiDOgPrs?=
 =?us-ascii?Q?vmImJmXNnbWT1Nx2fmYr3Dhjth5OuYIWYFuTM2Kze2orglg6dg5O+I6hnnes?=
 =?us-ascii?Q?g5KoeoSeeV0PE46pehALs51tBDJgJR0E0jpMA0he0D5j5pmcdaDGgp3fPkin?=
 =?us-ascii?Q?uy0SykIa/i0gywHJcL1xn3iLiqJmrEaa9tcpB7jcbSNk9DWGy4WYa8koUQYL?=
 =?us-ascii?Q?SmDLUo7iRD5beZ+cQOSH2mQRT7aJvVmeWu7VXTSv45GXK9FobtcaAdimZL48?=
 =?us-ascii?Q?V//a6c7S+RDMz6mpw1NxvbNEX9/njiS8LPPsYMbYscSJi5gMah3JBejGu9Dh?=
 =?us-ascii?Q?wQeewTP1m96pF0NnJiBla7AKohhddhvfDWNqaIYLULY+XPyeGvzh8VgihpjZ?=
 =?us-ascii?Q?EDZ86DzqqLyY62FRfcFY49QSyWFhegdUmnrBPy/bg4q/FoHlTR8CQ7X0Vp/k?=
 =?us-ascii?Q?ggoYP7qoiHmLhZ8jjwFbhBaV7dfmr/skBTWtgMqPftUpOnhDLVc6Q4MbFXTS?=
 =?us-ascii?Q?5Jogn+C/+tvOQMSH49xsUj2WGiN8L92Vu/A6hPS5k5+yl9aGnLKw6hibXFAQ?=
 =?us-ascii?Q?EBMGXSb1mK7hmNJK27drHaKAY8FuJzDnWw1ipP/5hClrEhX8rFOSuUVbNbBt?=
 =?us-ascii?Q?Xs46jGnh7go+N5aYvzW+dLHRB5MCj4nsZJQo2ryH816xUvVO8lyGJ8j1piZc?=
 =?us-ascii?Q?hFnbKBQ1yoNC6l02T1eNYhEVDxYjQCfPjlFwYmES49rbsJig0wT6HO3HXcJl?=
 =?us-ascii?Q?3DGaXwPlor5er17Fo4mnTPkqb8/VYmV4ZcgbF7eU8lofOaEJZpSS/MTZ4Tgj?=
 =?us-ascii?Q?id1HcAcrt2U0YrhZ3++Oi9FndBPquNK8mchPcaOR?=
X-OriginatorOrg: Nvidia.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ba19d7ec-1bfe-485d-d6d3-08dde6fe431b
X-MS-Exchange-CrossTenant-AuthSource: MW6PR12MB8663.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Aug 2025 13:16:28.1462
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: bixKXGNnNyPvA3cISmgXhm5zsYWSDMm/Kyz+5gZZkusXRtgA2Nwiwx0P8zrTZxwD
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6430

On Tue, Aug 19, 2025 at 08:36:44PM +0300, Leon Romanovsky wrote:

> This series does the core code and modern flows. A followup series
> will give the same treatment to the legacy dma_ops implementation.

I took a quick check over this to see that it is sane.  I think using
phys is an improvement for most of the dma_ops implemenations.

  arch/sparc/kernel/pci_sun4v.c
  arch/sparc/kernel/iommu.c
    Uses __pa to get phys from the page, never touches page

  arch/alpha/kernel/pci_iommu.c
  arch/sparc/mm/io-unit.c
  drivers/parisc/ccio-dma.c
  drivers/parisc/sba_iommu.c
    Does page_addres() and later does __pa on it. Doesn't touch struct page

  arch/x86/kernel/amd_gart_64.c
  drivers/xen/swiotlb-xen.c
  arch/mips/jazz/jazzdma.c
    Immediately does page_to_phys(), never touches struct page

  drivers/vdpa/vdpa_user/vduse_dev.c
    Does page_to_phys() to call iommu_map()

  drivers/xen/grant-dma-ops.c
    Does page_to_pfn() and nothing else

  arch/powerpc/platforms/ps3/system-bus.c
   This is a maze but I think it wants only phys and the virt is only
   used for debug prints.

The above all never touch a KVA and just want a phys_addr_t.

The below are touching the KVA somehow:

  arch/sparc/mm/iommu.c
  arch/arm/mm/dma-mapping.c
    Uses page_address to cache flush, would be happy with phys_to_virt()
    and a PhysHighMem()

  arch/powerpc/kernel/dma-iommu.c
  arch/powerpc/platforms/pseries/vio.c
   Uses iommu_map_page() which wants phys_to_virt(), doesn't touch
   struct page

  arch/powerpc/platforms/pseries/ibmebus.c
    Returns phys_to_virt() as dma_addr_t.

The two PPC ones are weird, I didn't figure out how that was working..

It would be easy to make map_phys patches for about half of these, in
the first grouping. Doing so would also grant those arches
map_resource capability.

Overall I didn't think there was any reduction in maintainability in
these places. Most are improvements eliminating code, and some are
just switching to phys_to_virt() from page_address(), which we could
further guard with DMA_ATTR_MMIO and a check for highmem.

Jason


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 13:17:23 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 13:17:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101346.1454449 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uryyp-0001Na-Kv; Fri, 29 Aug 2025 13:17:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101346.1454449; Fri, 29 Aug 2025 13:17: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 1uryyp-0001NT-IB; Fri, 29 Aug 2025 13:17:23 +0000
Received: by outflank-mailman (input) for mailman id 1101346;
 Fri, 29 Aug 2025 13:17:22 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1uryyo-0001NJ-J1
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 13:17:22 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1uryyn-00CcfN-34;
 Fri, 29 Aug 2025 13:17:22 +0000
Received: from [2a01:e0a:1da:8420:b77:bd5:6e45:7633] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1uryyn-007ave-2o;
 Fri, 29 Aug 2025 13:17: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date;
	bh=AVbIP80WG1ZZkCpMzOys/lXW3a8nw6wxFZTzFvnofyE=; b=fuquXZcvVP32WdKV0jAEv+1rFo
	+3fUfnihJEfX8qk8ogDi3SnJ81V9HqM9Twu5d+c/JaUVxyumrewhfKqSo/4wxgLnHLn9wiRtZ2QVb
	IPZNX+fNGMccSlsv+a/gNlchW0/+6IXw6VhX5rNReMS0fqxWT6QKjZ7cSFJRkyaQBU7g=;
Date: Fri, 29 Aug 2025 15:17:20 +0200
From: Anthony PERARD <anthony@xenproject.org>
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: xen-devel@lists.xenproject.org,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: Re: [XEN PATCH 04/11] tools/configure: Introduce deps on json-c lib
 for libxl
Message-ID: <aLGoYGgLHL9kLmzT@l14>
References: <20250808145602.41716-1-anthony@xenproject.org>
 <20250808145602.41716-5-anthony@xenproject.org>
 <39b2fc9e-44db-4f42-9586-1dcdac118659@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <39b2fc9e-44db-4f42-9586-1dcdac118659@amd.com>

On Wed, Aug 27, 2025 at 11:01:59AM -0400, Jason Andryuk wrote:
> On 2025-08-08 10:55, Anthony PERARD wrote:
> > From: Anthony PERARD <anthony.perard@vates.tech>
> > 
> > To replace yajl.
> > 
> > Introduce YAJL_LIBS variable, to be able to remove "-lyajl" later.
> > 
> > Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>
> 
> Should the two configure changes be merged and placed at the end of the
> series?  That avoids a half implemented conversion in between.

It might be half-converted, but it's fully working. Every single patch
introduce changes that can be use right away. I've actually make use of
this possibility. On every single patch, we can run ./testidl, which
will exercise both lib against each other.

./testidl does LibxlObj-to-JSONstring and back and forth. So on the next
commit, we would have JSON generated with json-c, which is then parsed
with YAJL, to finally be generated to JSON with json-c again, then both
JSON output are compared.

I've actually prepared the patch "libxl: Convert libxl__json_parse() to
use json-c' last, then put it in front and check that ./testidl was
still working.

This help me be confident enough that the conversion to json-c was
correct.

So if we squash both config change, every patch until the config change
would only introduce dead code.

Cheers,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 13:32:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 13:32:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101363.1454462 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urzDY-0004VB-RL; Fri, 29 Aug 2025 13:32:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101363.1454462; Fri, 29 Aug 2025 13:32:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urzDY-0004V4-Ok; Fri, 29 Aug 2025 13:32:36 +0000
Received: by outflank-mailman (input) for mailman id 1101363;
 Fri, 29 Aug 2025 13:32:35 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=eMIe=3J=bounce.vates.tech=bounce-md_30504962.68b1abf0.v1-c39b5c5a275942f380a4bee75d12fac0@srs-se1.protection.inumbo.net>)
 id 1urzDX-0004Uy-FG
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 13:32:35 +0000
Received: from mail180-6.suw31.mandrillapp.com
 (mail180-6.suw31.mandrillapp.com [198.2.180.6])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9e4e2930-84dc-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 15:32:33 +0200 (CEST)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-6.suw31.mandrillapp.com (Mailchimp) with ESMTP id 4cCzhw3pddz2K27J2
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 13:32:32 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 c39b5c5a275942f380a4bee75d12fac0; Fri, 29 Aug 2025 13:32: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>
X-Inumbo-ID: 9e4e2930-84dc-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1756474352; x=1756744352;
	bh=Q/yK30vJKpV/cQx0dBpfD4/srbUBHW3bVd1vwHsbo8o=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=LGgAnaQ71eYNrvErty4mctgC6befGWi3xvcpd1rsfWlPLlyLggikoeqPzrNf8Gc3z
	 I8dJ3iokEkyIaiOW4UofQp06V0Q9Xg+wBLZXSuEaB3drzNWXLD03Loj69iQEPH0vem
	 VodKI0tp26arCrDRp+nB9DEyLiCB9MHR8K2iNl0YmMofyvRojdJqqy0mi1qdW+opXa
	 Aazajih3EPCpbsA+RofoBsU25q/BJOqgAWnepjB+ymX6mVuoH3LCMs4jhvvAo2ILIX
	 lHHiEZjqvsMJHF2FVxUiUDB/3ErAC42Hb5AUpAZQ8MiM/cLt8wvGD4/oh92wA4ltEq
	 M0sbEYwuMBuxQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1756474352; x=1756734852; i=teddy.astie@vates.tech;
	bh=Q/yK30vJKpV/cQx0dBpfD4/srbUBHW3bVd1vwHsbo8o=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=O2NI+epMjTuPcVVUnhYGXgOwnGtovD6HDJzQ7oLNXyDa5sulBipyt+1Kpan41DvwS
	 7BogfWg9rc2Xz+7yy6c/JciB24Rnfe4m7rON5HB/zJPZS3axrciq0NqB1MT4ow7UzH
	 aWM7affWfWaLZX0RgXnXABspS+1mcOUWoL18PSaB3Md7FoAcr7iMQq/Plfj9lAS6ui
	 iDKdl0m8t5cogt9mP30gbOap2siAdhgm+bLBUuFGaXjuwSyfGA0tKYmu05t5mzae15
	 OX7QU9S60xCpfPvEHQEJ6K9J5i7krqA8QHOMOn6HEM3mlmT67YbYrabTmwKOw6IfsG
	 RUTqTr8/NkD3w==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[RFC=20PATCH=204/9]=20hvm:=20Introduce=20"fixed=20memory=20layout"=20feature?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1756474350010
Message-Id: <b3c490fc-e1ca-488e-b96c-e059bdbdb466@vates.tech>
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=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Stefano Stabellini" <sstabellini@kernel.org>, "Juergen Gross" <jgross@suse.com>, xen-devel@lists.xenproject.org
References: <cover.1755785258.git.teddy.astie@vates.tech> <640223e5e7ee18a73f62152dd27883bf5978fbfe.1755785258.git.teddy.astie@vates.tech> <5ba550db-5e36-4d98-bce7-cbb3e2d874b9@suse.com>
In-Reply-To: <5ba550db-5e36-4d98-bce7-cbb3e2d874b9@suse.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.c39b5c5a275942f380a4bee75d12fac0?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250829:md
Date: Fri, 29 Aug 2025 13:32:32 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 28/08/2025 =C3=A0 14:30, Jan Beulich a =C3=A9crit=C2=A0:
> On 21.08.2025 17:25, Teddy Astie wrote:
>> @@ -686,10 +691,31 @@ static int domain_construct_memmap(libxl__gc *gc,
>>       /* We always own at least one lowmem entry. */
>>       unsigned int e820_entries =3D 1;
>>       struct e820entry *e820 =3D NULL;
>> +    uint64_t highmem_start =3D ((uint64_t)1 << 32);
>>       uint64_t highmem_size =3D
>>                       dom->highmem_end ? dom->highmem_end - (1ull << 32)=
 : 0;
>>       uint32_t lowmem_start =3D dom->device_model ? GUEST_LOW_MEM_START_=
DEFAULT : 0;
>>       unsigned page_size =3D XC_DOM_PAGE_SIZE(dom);
>> +    /* Special region starts at the first 1G boundary after the highmem=
 */
>> +    uint64_t special_region_start =3D
>> +        (highmem_start + highmem_size + GB(1) - 1) & ~(GB(1) - 1);
> 
> That is, inaccessible before entering PAE mode?
> 

Yes, I expect this to be only used by newer guests which hopefully 
aren't limited to 4G range (i.e supports PAE or long mode). The issue of 
trying to put that below 4G is that much of the space is already taken 
for the MMIO hole, so that area would quite complicated with more 
special regions.

> The open-coding of ROUNDUP() also isn't nice, but sadly unavoidable as lo=
ng
> the the macro works in terms of unsigned long.
> 
>> @@ -769,6 +805,40 @@ static int domain_construct_memmap(libxl__gc *gc,
>>           e820[nr].type =3D E820_RAM;
>>       }
>>   
>> +    /* Special regions */
>> +    if (libxl_defbool_val(d_config->b_info.arch_x86.fixed_mem_layout))
>> +    {
>> +        e820[nr].type =3D XEN_HVM_MEMMAP_TYPE_SHARED_INFO;
>> +        e820[nr].addr =3D special_region_offset;
>> +        e820[nr].size =3D page_size;
>> +        special_region_offset +=3D e820[nr].size;
>> +        nr++;
>> +
>> +        if ( gnttab_frame_count )
>> +        {
>> +            e820[nr].type =3D XEN_HVM_MEMMAP_TYPE_GRANT_TABLE;
>> +            e820[nr].addr =3D special_region_offset;
>> +            e820[nr].size =3D gnttab_frame_count * page_size;
>> +            special_region_offset +=3D e820[nr].size;
>> +            nr++;
>> +        }
>> +
>> +        if (d_config->b_info.max_grant_version >=3D 2 && gnttab_status_=
frame_count)
>> +        {
>> +            e820[nr].type =3D XEN_HVM_MEMMAP_TYPE_GNTTAB_STATUS;
>> +            e820[nr].addr =3D special_region_offset;
>> +            e820[nr].size =3D gnttab_status_frame_count * page_size;
>> +            special_region_offset +=3D e820[nr].size;
>> +            nr++;
>> +        }
>> +
>> +        e820[nr].type =3D XEN_HVM_MEMMAP_TYPE_FOREIGN_REG;
>> +        e820[nr].addr =3D special_region_offset;
>> +        e820[nr].size =3D MB(512);
> 
> Can we really know this is going to be enough for all use cases?
> 

Probably not, but we could make this area larger in the future without 
changing this ABI.

>> --- a/xen/include/public/arch-x86/hvm/start_info.h
>> +++ b/xen/include/public/arch-x86/hvm/start_info.h
>> @@ -99,6 +99,13 @@
>>   #define XEN_HVM_MEMMAP_TYPE_DISABLED  6
>>   #define XEN_HVM_MEMMAP_TYPE_PMEM      7
>>   
>> +/* Xen-specific types (OEM-specific range of the ACPI spec) */
>> +#define XEN_HVM_MEMMAP_TYPE_SHARED_INFO   0xF0000001 /* Shared info pag=
e */
>> +#define XEN_HVM_MEMMAP_TYPE_GRANT_TABLE   0xF0000002 /* Grant table pag=
es */
>> +#define XEN_HVM_MEMMAP_TYPE_GNTTAB_STATUS 0xF0000003 /* Grant table sta=
tus page (v2) */
>> +#define XEN_HVM_MEMMAP_TYPE_FOREIGN_REG   0xF0000004 /* Suitable region=
 for grant mappings */
>> +                                                     /* and foreign map=
pings */
> 
> I question it being legitimate for us to introduce new E820 types.
> 

These E820 types are (at least in ACPI specification) in the OEM-defined 
range which seems appropriate for me to use for Xen-specific mappings.

We could use reserved, but we still need a way to tell the OS what each 
of these "reserved" regions actually means (or it is gonna be ignored).

> Jan
Teddy



Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Fri Aug 29 13:42:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 13:42:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101383.1454472 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urzNO-0006Gw-Ms; Fri, 29 Aug 2025 13:42:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101383.1454472; Fri, 29 Aug 2025 13:42:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urzNO-0006Gp-Jt; Fri, 29 Aug 2025 13:42:46 +0000
Received: by outflank-mailman (input) for mailman id 1101383;
 Fri, 29 Aug 2025 13:42:45 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=OeP6=3J=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1urzNN-0006Gj-Qa
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 13:42:45 +0000
Received: from mail-lj1-x232.google.com (mail-lj1-x232.google.com
 [2a00:1450:4864:20::232])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0a3781af-84de-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 15:42:43 +0200 (CEST)
Received: by mail-lj1-x232.google.com with SMTP id
 38308e7fff4ca-3367f35d129so16516051fa.1
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 06:42:43 -0700 (PDT)
Received: from [192.168.0.110] ([91.123.151.69])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-336b4613b3fsm4838231fa.4.2025.08.29.06.42.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 29 Aug 2025 06:42: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>
X-Inumbo-ID: 0a3781af-84de-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756474963; x=1757079763; 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=wGUhLh5SfR/wysjZTcHM9sBL1wAIwh88fS7RRAtLMSA=;
        b=XmBsIs3XbDzPaAFlhu0Vtov2d3TG6R3D/XymktVxDqPWEpn/0xpsdUu34zxRf01kkX
         G1nrAMrbr9btRua0KfhzJuuunYbJt86Peo2H1dVzLsvDt8Z3INzp/BV29tW0rnhgWDcY
         nF9x5Wynt2nt/9+cdxuaUdKn/bW9B9mfdcBBaxAhEd8fSi2V1bgwHHL42EprWySe28oM
         ttyceog5qie5yY8YkAZgk6zOJpxWN+7xC0OP3LsqZzHnbej+lQSKriDnebQODO8o517t
         GGgpK9dt4/Hy3JoySIGg+UNDvCzwemIdiF77XdUZT4YKWxvHiLUah58ZwTghBEkNL0nz
         OzAQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756474963; x=1757079763;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=wGUhLh5SfR/wysjZTcHM9sBL1wAIwh88fS7RRAtLMSA=;
        b=JJl2v0PCDA+cMLQCPLeAqaZpyq/d1WZlfSKOwEt/jGpbaHT1cY+ZNATPo/sSsW0d4n
         g+rZ+0PpMOM2P+9gr3qlM5JT+I+wObfTNinoZOvHnj/4UxasLWyrKztgwRwtaj0Hzid0
         RLgccmHHGiwNyrzs3BDPdT4nN72E9FhE2L7gytDVW2Tdih112ncHnPbA+I3RYeHdls2j
         etWCmG/CfHwBYUVOmDxdr0esUwHowDAQQEhJkV+uyAbAYJytrn54GeSeAwwlWAnRLsdt
         CfgMsP1UhKn+yoeHe5EOkrYG5RPtVtyzcEG4zY3QYbRax37tUDZ3PStCAMCu5GdjyCBm
         uunQ==
X-Forwarded-Encrypted: i=1; AJvYcCU7wYwxhhOvJAVqShy9MGWxw4vaAOUDwISnugV5ceBwXnCuu3BCVhvix1KHozTO6kmHfund7AWxQwY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxdJSQbmqdKOtbx7b0AYEHEg9EKjPz7JypbEyfyxqk8wwX/hWkH
	0ZKPLuUVMoObzatRg5YLZumQ/pH3tGDtyPWAfzEyaGuFul+RdMq83mbH
X-Gm-Gg: ASbGnctVCLcODFuarsHrV+BIp8tJIEJIDXpUIMKYnib9J9bqmZCfVKpY6kzwB0lDVDh
	3AVocEMYTy3zWjcUBHBk4eecfQ14GZ2X9tkFZnoO1rify9r8eJvEIGBziGZ67RHjwr/oxJJ/Bwg
	7MNlMl8SYmAtnBcgLuCN3klXC7sITHJ9CY+q/Bc/3xjCpsVmoS6sfgtxlIYXE4P4tGRTTgtrjXw
	GQyB2mPPS/BwiwttMr3N0VyCdCOiq7MP4DQf/PUj8kGQjoZ9O0hnPHYNEKSB3HIHyAM9WV/ctfA
	gdhhFtQVY18RVK5tlw7iEck+gBVtPuBNlV5/Iwed3obeqfaQjBjv+QsDOfKXxv28VSPAbZ/VYp0
	c7u8BV/yzgKeQKhadGvsW1PxLXxEAfl5QrxoZ
X-Google-Smtp-Source: AGHT+IFALNpb3nC81kowaiHqEifiR/pNYJ6e7hHWPU+D057zWTnUGYKxj98hqGmWAf9X4LiBfkTBvw==
X-Received: by 2002:a05:651c:20cc:20b0:32b:78ce:be8e with SMTP id 38308e7fff4ca-33650faa9c1mr57185501fa.32.1756474962905;
        Fri, 29 Aug 2025 06:42:42 -0700 (PDT)
Message-ID: <c51b2a15-dcc2-467c-904c-ef01c37ef5de@gmail.com>
Date: Fri, 29 Aug 2025 16:42:35 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 1/4] xen/arm: add generic SCI subsystem
To: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Bertrand Marquis <bertrand.marquis@arm.com>, Jan Beulich
 <jbeulich@suse.com>, Juergen Gross <jgross@suse.com>,
 Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>
References: <cover.1756399156.git.oleksii_moisieiev@epam.com>
 <ffe5a45efd34d92c9f2c7307ecd0e9efc5b0d57c.1756399156.git.oleksii_moisieiev@epam.com>
Content-Language: en-US
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
In-Reply-To: <ffe5a45efd34d92c9f2c7307ecd0e9efc5b0d57c.1756399156.git.oleksii_moisieiev@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 28.08.25 19:40, Oleksii Moisieiev wrote:

Hello Oleksii


> This patch adds the basic framework for ARM SCI mediator. SCI is System
> Control Interface, which is designed to redirect requests from the Domains
> to ARM specific Firmware (for example SCMI). This will allow the devices,
> passed-through to the different Domains, to access to the System resources
> (such as clocks/resets etc) by sending requests to the firmware.
> 
> ARM SCI subsystem allows to implement different SCI drivers to handle
> specific ARM firmware interfaces (like ARM SCMI) and mediate requests
> -between the Domains and the Firmware. Also it allows SCI drivers to perform
> proper action during Domain creation/destruction which is vital for
> handling use cases like Domain reboot.
> 
> This patch introduces new DEVICE_FIRMWARE device subclass for probing SCI
> drivers basing on device tree, SCI drivers register itself with
> DT_DEVICE_START/END macro. On init - the SCI drivers should register its
> SCI ops with sci_register(). Only one SCI driver can be supported.
> 
> At run-time, the following SCI API calls are introduced:
> 
> - sci_domain_sanitise_config() called from arch_sanitise_domain_config()
> - sci_domain_init() called from arch_domain_create()
> - sci_relinquish_resources() called from domain_relinquish_resources()
> - sci_domain_destroy() called from arch_domain_destroy()
> - sci_handle_call() called from vsmccc_handle_call()
> - sci_dt_handle_node()
> - sci_dt_finalize() called from handle_node() (Dom0 DT)
> 
> Signed-off-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
> ---
> 
> Changes in v6:
> - rebase on top of the latest master
> - fix return value of sci_dt_finalize() call
> 
> Changes in v5:
> - update Maintainers file. Set role as a Reviewer
> - rebased on the latest master branch
> - Introduce arch_handle_passthrough_prop call to handle arm specific nodes
> 
> Changes in v4:
> - fix SPDX-License
> - rename DEVICE_ARM_SCI DT device class to FIRMWARE_DEVICE
> - move XEN_DOMCTL_assign_device code in separate patch
> - Add documentation for SCI SCMI drivers
> 
>   MAINTAINERS                             |   6 +
>   xen/arch/arm/device.c                   |   5 +
>   xen/arch/arm/dom0less-build.c           |   8 +
>   xen/arch/arm/domain.c                   |  12 +-
>   xen/arch/arm/domain_build.c             |   8 +
>   xen/arch/arm/firmware/Kconfig           |   8 +
>   xen/arch/arm/firmware/Makefile          |   1 +
>   xen/arch/arm/firmware/sci.c             | 154 ++++++++++++++++++
>   xen/arch/arm/include/asm/domain.h       |   5 +
>   xen/arch/arm/include/asm/firmware/sci.h | 200 ++++++++++++++++++++++++
>   xen/arch/arm/vsmc.c                     |   3 +
>   xen/common/device-tree/dom0less-build.c |   4 +
>   xen/include/asm-generic/device.h        |   1 +
>   xen/include/public/arch-arm.h           |   4 +
>   xen/include/xen/dom0less-build.h        |   9 ++
>   15 files changed, 427 insertions(+), 1 deletion(-)
>   create mode 100644 xen/arch/arm/firmware/sci.c
>   create mode 100644 xen/arch/arm/include/asm/firmware/sci.h

[snip]

> diff --git a/xen/arch/arm/include/asm/firmware/sci.h b/xen/arch/arm/include/asm/firmware/sci.h
> new file mode 100644
> index 0000000000..1b9a5c0c07
> --- /dev/null
> +++ b/xen/arch/arm/include/asm/firmware/sci.h
> @@ -0,0 +1,200 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Generic ARM SCI (System Control Interface) subsystem.
> + *
> + * Oleksii Moisieiev <oleksii_moisieiev@epam.com>
> + * Copyright (c) 2025 EPAM Systems
> + */
> +
> +#ifndef __ASM_ARM_SCI_H
> +#define __ASM_ARM_SCI_H
> +
> +#include <xen/lib.h>
> +#include <xen/types.h>
> +#include <xen/device_tree.h>
> +#include <xen/errno.h>
> +#include <xen/sched.h>

NIT: Looks like the headers are not alphabetically sorted

[snip]

>   
> diff --git a/xen/include/xen/dom0less-build.h b/xen/include/xen/dom0less-build.h
> index 408859e325..6fdd0552e0 100644
> --- a/xen/include/xen/dom0less-build.h
> +++ b/xen/include/xen/dom0less-build.h
> @@ -62,6 +62,9 @@ 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);
>   
> +int arch_handle_passthrough_prop(struct kernel_info *kinfo,
> +                                 struct dt_device_node *node);
> +
>   #else /* !CONFIG_DOM0LESS_BOOT */
>   
>   static inline void create_domUs(void) {}
> @@ -71,6 +74,12 @@ static inline bool is_dom0less_mode(void)
>   }
>   static inline void set_xs_domain(struct domain *d) {}
>   
> +static inline int arch_handle_passthrough_prop(struct kernel_info *kinfo,
> +                                               struct dt_device_node *node)
> +{
> +    return 0;
> +}
> +
>   #endif /* CONFIG_DOM0LESS_BOOT */
>   
>   #endif /* __ASM_GENERIC_DOM0LESS_BUILD_H__ */


If I build current patch with # CONFIG_DOM0LESS_BOOT is not set
I got the following error:

CC      arch/arm/domain_build.o
   CC      arch/arm/guestcopy.o
In file included from arch/arm/domain_build.c:5:
./include/xen/dom0less-build.h:78:55: error: 'struct dt_device_node' 
declared inside parameter list will not be visible outside of this 
definition or declaration [-Werror]
    78 |                                                struct 
dt_device_node *node)
       | 
^~~~~~~~~~~~~~
./include/xen/dom0less-build.h:77:55: error: 'struct kernel_info' 
declared inside parameter list will not be visible outside of this 
definition or declaration [-Werror]
    77 | static inline int arch_handle_passthrough_prop(struct 
kernel_info *kinfo,
       |                                                       ^~~~~~~~~~~




From xen-devel-bounces@lists.xenproject.org Fri Aug 29 13:48:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 13:48:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101396.1454483 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urzSX-0006qw-8V; Fri, 29 Aug 2025 13:48:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101396.1454483; Fri, 29 Aug 2025 13:48: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 1urzSX-0006qp-59; Fri, 29 Aug 2025 13:48:05 +0000
Received: by outflank-mailman (input) for mailman id 1101396;
 Fri, 29 Aug 2025 13:48:04 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=d4/I=3J=bounce.vates.tech=bounce-md_30504962.68b1af91.v1-16a16003aa654314b456220f73ef316c@srs-se1.protection.inumbo.net>)
 id 1urzSV-0006qj-UV
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 13:48:03 +0000
Received: from mail180-6.suw31.mandrillapp.com
 (mail180-6.suw31.mandrillapp.com [198.2.180.6])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c7d66a61-84de-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 15:48:02 +0200 (CEST)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-6.suw31.mandrillapp.com (Mailchimp) with ESMTP id 4cD02n1m05z2K2bj8
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 13:48:01 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 16a16003aa654314b456220f73ef316c; Fri, 29 Aug 2025 13:48:01 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c7d66a61-84de-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1756475281; x=1756745281;
	bh=qdqMh9oGIVcnu7jaFB68Y6ps+ZPJAxYb5jXR4lu26Jk=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=O9ZgdTui9WSK4UcvxFq/zgr9OacK9azdNFugtjm3142AX9RFWRgRs1HiHIRRrcYAc
	 AAsy2VfJ7GWKvgDUWZd1jttlQ73WjaQugB8QmyIZVObi9Hc0LPiGbT4QmBb+Nd+qkd
	 E8VD+5nGwk231jbISiapoE1/PyMGgCe7VFp/iGSM3zpH9x4rkRmdX1eiZ9/uFfBih0
	 yEqIZrV7WfcZ5XOsJoN26t4OpodTOf9FhdjIKzQTyDzAyiORqrvGjd7P1uwzE+1nmD
	 tIL3tVEG1qISL965HsYzu9bJWCeuIWPYH9xeArmBUhaiH0gehx+OWm9ATgZtdLJJA8
	 vzFRzLfrSKODQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1756475281; x=1756735781; i=teddy.astie@vates.tech;
	bh=qdqMh9oGIVcnu7jaFB68Y6ps+ZPJAxYb5jXR4lu26Jk=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=DeQYoEibHggnOgoxx00fLP80Zay+RPT/yFksm5p7MKrBuOcyLty1qan+6X5w5DoAZ
	 wfL7sdcalMdOPYeSvbD5rAY6TH+isjJ/9jq7bE1J2mKuWz0N3MORgInynd/w6sSQ3Q
	 Ez5ZMlKrCAXqqW3XXo6+JEr3CwKYfrC2uTB8Zcy8n/tU9vbLCedv1wEwrj9CtjlBUs
	 D/xDsgANRAxJh3vh0chluNvq7ETbHzTgqVCMltYvV3SVFT8PmwPi7Z1VDz/Hx7cFEo
	 mP48ZtAzliFAYnSjn6KOEBygWiYT3hx+4Msocdf1xDv/cmAeezO8qRKACEezcDAXt8
	 djzlJuHRn7D9g==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[RFC=20PATCH=208/9]=20hvm:=20Introduce=20XEN=5FHVM=5FMEMMAP=5FTYPE=5FHOTPLUG=5FZONE?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1756475280188
Message-Id: <a3f55e6f-4467-47e4-8cf0-d5554ae354b8@vates.tech>
To: "Jan Beulich" <jbeulich@suse.com>
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <cover.1755785258.git.teddy.astie@vates.tech> <3fe81c78b95f60353a84b8394883ecfeee066732.1755785258.git.teddy.astie@vates.tech> <43c65b51-ed9b-4ec5-b1dd-ae3a047cba86@suse.com>
In-Reply-To: <43c65b51-ed9b-4ec5-b1dd-ae3a047cba86@suse.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.16a16003aa654314b456220f73ef316c?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250829:md
Date: Fri, 29 Aug 2025 13:48:01 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 28/08/2025 =C3=A0 14:40, Jan Beulich a =C3=A9crit=C2=A0:
> On 21.08.2025 17:25, Teddy Astie wrote:
>> Allow specifying in memory map a region which can be hotplugged.
>>
>> This will be used by a future memory hotplug feature.
> 
> Why could this not be done the ACPI way, with the regions properly specif=
ied
> in SRAT?
> 

I am not sure whether or not ACPI mandates a specific way of doing 
memory hotplug when SRAT is advertised. But if doesn't, SRAT sounds like 
a better alternative.

> Jan
> 



Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Fri Aug 29 13:49:14 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 13:49:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101405.1454493 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urzTd-0007Lp-HQ; Fri, 29 Aug 2025 13:49:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101405.1454493; Fri, 29 Aug 2025 13:49: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 1urzTd-0007Lg-Ee; Fri, 29 Aug 2025 13:49:13 +0000
Received: by outflank-mailman (input) for mailman id 1101405;
 Fri, 29 Aug 2025 13:49:11 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=psBU=3J=epam.com=Oleksii_Moisieiev@srs-se1.protection.inumbo.net>)
 id 1urzTb-0007DL-Gn
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 13:49:11 +0000
Received: from DB3PR0202CU003.outbound.protection.outlook.com
 (mail-northeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c200::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f025403e-84de-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 15:49:09 +0200 (CEST)
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com (2603:10a6:102:32e::21)
 by AS8PR03MB9413.eurprd03.prod.outlook.com (2603:10a6:20b:5a0::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Fri, 29 Aug
 2025 13:49:07 +0000
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::f12d:7394:bbe3:dfc]) by PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::f12d:7394:bbe3:dfc%6]) with mapi id 15.20.9052.014; Fri, 29 Aug 2025
 13:49: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>
X-Inumbo-ID: f025403e-84de-11f0-8dd7-1b34d833f44b
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tnOgq2QQJkgEHghs75YXSicFFIyMbxoPboTD1KEte+6wD8GgBC5fO4TxlSr7dy/0xX3QJbyOzek+ajMp+EHK00FLqKQBCyftRDbgnIgpYhITI2PtXyj0JG9baOYvX7sIEPwMDkJKy51sPWUh1br+S0Kd/G7eVIs9IVUhFYSvn1LqiFVgAYeLfccNzwBkGnMwJK3+fWb/UI5GOtGtdAWhOhsgxUldEXvCJvlYJ3hz5XAVeWSluRv5sgeaDrOZMnChy1A/LyQucKGWpBW0D2bLFNuy4DMG4BgGSKbyeInNM7/nBiI50ZCro4p6YrImFTdcYHEjTmrJ2tcWzCxRSzE9NQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=iV10E0UqfN4m/i/UMX4SsavK/fpjdy2wKC3KLQwLZTU=;
 b=XDXQltxwfWIGD8Iv3YA3oAf4jwZkzi7bpHnQQBVW0VwqX9s+QXh7//B0UWrAzBTzDcZxTK0OYOkGqLqaejZ49hMf3J3BQOrONXzaD08ZtlsnZWVlItIxfhuRwLBKr8VUvlwU0d6Yww/Xk9L5lWe3Lwf5gRO6jRkQLeFkbIPovr8nHfNEt3KEXPto+F/+89YSGizafMz1LBAiujZTkmBH6yNBW/UlOgjE/KdNhaDZQegVQ56rftzSv0A9vM+jw199r/n+eG68UDfyCJUJD6Jx3uKtbePBjcN1WmLLg41JuMLc1Gdvzi3DD8cNLj1NvK4yyChqWA5LNjCzoSuUmrddsQ==
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=iV10E0UqfN4m/i/UMX4SsavK/fpjdy2wKC3KLQwLZTU=;
 b=tyiNHdAQq2ZSpelv1GBGuyHSz0hXGJuN2CR0OXtc1I1EL2wF4y2wGDVAQvnRLeWdOpZBOQvWO7NEQ7OTiQDAtll1Pjv5yOJwg6w0VxQ+T9H+MkfZ2SiyAi9NX87NNvAPapX5dfIZt5Pl5XFtv5j13agG+FsMlIuCT+2WmwfsJas7T8bwS4Sn3l3xq49e+tf3WmSyQqzw03i3hRRUPa37q/jufeMv8Rb/HgaASeIiMfaWXAcJFebIl3i1W5zNIFBTcOryKNson1oYMtlqCTz6NW5M0V13o59yjbjfsLlhCI2xqtqxl5t5iLSH7NpYDva+cRulEpV7bDSD7grR+ZYPng==
From: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
To: Oleksandr Tyshchenko <olekstysh@gmail.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Bertrand Marquis <bertrand.marquis@arm.com>, Jan
 Beulich <jbeulich@suse.com>, Juergen Gross <jgross@suse.com>, Julien Grall
	<julien@xen.org>, Michal Orzel <michal.orzel@amd.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Grygorii Strashko <grygorii_strashko@epam.com>
Subject: Re: [PATCH v6 1/4] xen/arm: add generic SCI subsystem
Thread-Topic: [PATCH v6 1/4] xen/arm: add generic SCI subsystem
Thread-Index: AQHcGDp0HddMWoIUiESW9wlppK7VcrR5pRiAgAAB0YA=
Date: Fri, 29 Aug 2025 13:49:06 +0000
Message-ID: <33e5bebd-3738-4dea-9c9b-504bb112ab77@epam.com>
References: <cover.1756399156.git.oleksii_moisieiev@epam.com>
 <ffe5a45efd34d92c9f2c7307ecd0e9efc5b0d57c.1756399156.git.oleksii_moisieiev@epam.com>
 <c51b2a15-dcc2-467c-904c-ef01c37ef5de@gmail.com>
In-Reply-To: <c51b2a15-dcc2-467c-904c-ef01c37ef5de@gmail.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: PAVPR03MB8946:EE_|AS8PR03MB9413:EE_
x-ms-office365-filtering-correlation-id: 76104a10-03a1-4adf-96fe-08dde702d29b
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|376014|7416014|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?clQwRDg5YkhrRFIxVjIyTkFCeHRzN1E5TExPQjQ1YzltNlJTSWdCSm5UbWtF?=
 =?utf-8?B?MHNWN1hnRFh1amUvN1dNL1dFK3I0U09vY1pxQ2Rtcms0R3pyYlBVelQwOTJE?=
 =?utf-8?B?bEFjRE1SV0x6NHIyTTNIVVdmNjA5N2NQWW9zRTJOd0ZYUWpNNFRJN05MeUJq?=
 =?utf-8?B?RWw3bzBiRmN6Z0NuTnpBczFZTytLUGxsWVJZbjQ5WTdla3NKcVIwTmxyZmRq?=
 =?utf-8?B?L21VMXhCU0ExYXdyZkpRcTQ3VDFBb3JhT0NId0FQZ3U0b3dmSERNOUphNXZQ?=
 =?utf-8?B?a2F1cGlENjNpT3FBbVNUTkw5VURxNTQ1dU5QN2oxYlpJWC9hcU1BL3BXN2Fw?=
 =?utf-8?B?Y2NuZVRiU0NqTjZrcjdtL3RtdllUZFdrNFprWE42SHRsQWdXa0pUTWZaYUU1?=
 =?utf-8?B?dFVrMjFCbmgxWG9qNStWZUZ5U1llZkVjWFVHRzRSOWtkOUZPa0RycXBGYUhx?=
 =?utf-8?B?QXgvaU5ZUEVlRy9qU1FDdUZKU3RmbnBSWDZrVXJEYUlTQnNpYXl4eExaOTZU?=
 =?utf-8?B?cXdpZEJzNFFPdjJSTWVWTk9Bd1k3SmU1K0RCalVjSmFkMWxVdC9sOGJKMVRU?=
 =?utf-8?B?QUJveWtjRHlya0NmNXF6SjA2cTdhVGJjcDRuNmVtdzYwMmtFMUdIQXNCbkkw?=
 =?utf-8?B?aE9GOHdicVhUVlVuZHh2VGtybVpjSXdNZDAxaXFIZmRXeWgxQmdVRTZTN0lQ?=
 =?utf-8?B?aDNud0Q4elY0YTl0dFF4TUxya3hjS0I2dTR2clI4QTJ1OHNPZHpmRENKY1NM?=
 =?utf-8?B?aW9kNFZiWm5VZ0RUYTdRVXlHV1hHT3dFZEQwZEUydkVtcmRTck4reTl0ZVNw?=
 =?utf-8?B?eFZIS0xjZnFldTR0OHdxN0R2Kyt1aEgvN3g5Z241NmZJb1BWZW44TExmTUtr?=
 =?utf-8?B?TDRJZVppSno2aUwrYjBZTkRyZllWUDRwb2RrTGN5YlZua3RDVC9vMVBHS3Ex?=
 =?utf-8?B?d0pZL1RDc245d3IzQUtxcEthR3Z6Z3NlMVQ2eUUrMmpVdE45K25xRFpxM3hh?=
 =?utf-8?B?ZGNIU0FaeW8rWEgwczBJd1V0WEkvUHViQmhDbjdvcnkrdlFXREMvV0RjL1lX?=
 =?utf-8?B?WjB0ek15ZlpTM0FleVAzOHN2L2RqNjNtclIvRHBFbUk1TWpwc1Npbi80aDhE?=
 =?utf-8?B?alFLUHFNR2RmU21TYjZxdE14TTdjNWpTU2pMQ011Q2pNdWZuMnNNbWpUWHIw?=
 =?utf-8?B?Q3J3ZjRCZVp6ZEVLcTk2NXgzM0Z0Und1L0JyWXBzanhxeXY2dmphdERyVDZN?=
 =?utf-8?B?dlV5YzMwU2Y3THZaNVNaZzdOWXpWZjVxYW1pUXgraEVibmtFei90TE00NEJX?=
 =?utf-8?B?czZrQlRMQUlzZE9jSHI2NkZWaWN5UXZCbWJydUE4U21xcndKRW5xdjdRU1hs?=
 =?utf-8?B?OWJsZGZzcFRUemlTYUQvdks0b1ErcDRPUUlQV2FtdGFmMHg4ckRtZUM2cVhO?=
 =?utf-8?B?Vnp2UnVpUGQ2cUxpOERIQjk4L1p4Wk03WjFtSVYrRlhNQTFxOEU5S2dqQ1di?=
 =?utf-8?B?Vm1DUkhiRVB4Ly91TGw4UHk2eWQvdUdPZjFvbkdnUGxESnU5S0M1enFsYWM3?=
 =?utf-8?B?UmVUYkZOUVlJQU8wK2xUVmQxNW9OZnBKbHVQcWY0UitIMW96WDVMUXgxS2JN?=
 =?utf-8?B?M1ZLcTJmR0NiMEtNV1RXQ3BkM3NiaXpmcHU2dnhOWWxJRUJBOXZDOTd6N0lC?=
 =?utf-8?B?Sk9yUW5YK09UaEpXNTFrdi9HcE1MRFNxdWU0dzdxRWtXQnZKUlRDblBydjRJ?=
 =?utf-8?B?Tzd4K2RJRHVpUmM4eG9xU0drc0FCQ0lSMFVvbEkraFJaZmg3dGVRMUQyeGY3?=
 =?utf-8?B?UTl0K3dPeVlWYkxTbm1zRXZqMUlHNnZpaVVsd1VlaVpCSU1iWTk3UDdTVmRm?=
 =?utf-8?B?aS8rY2hMb1MyYkhzUHJsckdKTGFDaGg1TFB2RFFmdCtUdGJBWVN0ajNKOHZl?=
 =?utf-8?B?cVg5R0w2ak1aaEZSdEdwKy9aWVNWVmJZM0hqOUxKeklEUUpQeWJ5YVU0Sml6?=
 =?utf-8?B?c2EwdHVDYmp3PT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB8946.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?N3ltRmZXc1Z0TWVGY2NuVDN3c2RuSHhJcnkyVElVc2FpWTZaRVp0OFoxNElZ?=
 =?utf-8?B?VXpQMUhuSldTVUFPSC90cXFSdUkwRGx1eldzTmhpNjMwU2NiSDYrcWhMMHdO?=
 =?utf-8?B?ckhzd25tZFo2a0pVc0hIQ056Y283Z3VQUGV3WDkvSGFHd3grN3lJS09iL2RO?=
 =?utf-8?B?dUg2OGFHaUhMS0hkL21hUCs4YmgxRzBaMjFPVk5UZ3ozemZwWWV0SDVHRlEz?=
 =?utf-8?B?TCtXWXpkUEhCeGZ6RUFBMEFZRXg4NytwYnNCUmFoeENieis1UFdrMlFWcTNp?=
 =?utf-8?B?bk5DeEthVnBvcTE1TWpocGRxT0F0OStKQTlndTd0S09KZmpuS2ZXRHlVcjU1?=
 =?utf-8?B?dmpsTkVxWVdiNkQwRW9yTVhTaktVRHNqVWpyTkxIWnYzRUxmQk9acFVJbkNy?=
 =?utf-8?B?Y2pQb1Fodjh3RUhXeTJOajY0cVFRcnl6YkdGNGVYSFdTV1VlbnNidUVVbHlr?=
 =?utf-8?B?anYxYWJ4aHRYVTNpYk84WVQvRWg2a3VaSlM3UlVvNjR5YW1VYk1wVmFmQzVo?=
 =?utf-8?B?dkIzUFFubWMzVTFUU1B0TXpYNWQzeWIzdFZOZzJtRUF1UnNwbGxPNVlmYy8r?=
 =?utf-8?B?b3NETytTRGQwbi83TVNNT0JiN3JUekVmVk5TUS9LTy9xY2JXK3ZoYThEM25r?=
 =?utf-8?B?eDYzZnY1R3JVN3ovVVFTaHR0RXlkWG4xejBia2xsZDh3WWxCVWhmWWtmOHVa?=
 =?utf-8?B?S1RNQWNVbG1CNlZEejhlUTE4ZkpOMFh2NGtKQnVWSEg2QTNVc0ppbCtqdHlm?=
 =?utf-8?B?WGxBVkpORGVJRHQwVWJsS0Y2WjZZKzhEL1YrR1IwQllMYVZpNTRIWUcyVUs1?=
 =?utf-8?B?ZUpSL3RDbnFWWGVrY2FCbWhoakFNNmFIQWhUbERUbS9tM3BwOEs4U1FyS1Jz?=
 =?utf-8?B?VEtzU1IrQnAxUFRJQ1F4RVl3U1FIb2xuNnVhUXh3QVRraENuU1VKczhTOEpo?=
 =?utf-8?B?Wi9PTTM2QzBWU3lSV2VVOXlhU3FPcjJ0ZE1wdjdJVWpnYlRUUVhTMWhVZVRj?=
 =?utf-8?B?SU5HR1hlZEpQbWtweVZyeDJQOFJwOHVENEN1N1Z5a0tjVUx2S2p6UjVybENK?=
 =?utf-8?B?UmtNWmpCMFlyNDRQMTl5U0o3S2pqNURoSEpxc2g1QWtHMm9vK0lGQ25pNERy?=
 =?utf-8?B?U0tnbHpmeW1zUktTRjV0MEt3WXh5SlNsMTlzc2d1akF6U2Izd1AwRzB2Rm9i?=
 =?utf-8?B?NHVlSkdyTTZXVWV2ZUVKYjUzVkNxSFNrRTh0VUlvdUlDTk8wV0NTSkxTVzFU?=
 =?utf-8?B?SjJndEFYUFVRT2VwVFRxZkswc1lGYmN6ejJZSWFwR04xOHhFVWljMWszczk5?=
 =?utf-8?B?SHRCYnhuSzRGenREMnFzTDJRK1VBc0U2NTVtWU9ZbTRUMG1ORXMyZGd5NWVp?=
 =?utf-8?B?L3V5VE9yd3ZpeEtYaEpSc0VUOEM2MzQvNU1RVDNVQVMxOW92VmZqVjkxekVw?=
 =?utf-8?B?RHkrbVVVZ3FxaXNocFV6VXlTSmswRDFnS0plOWVjKzlpZDVpY1B3R3RDTnRC?=
 =?utf-8?B?K2MxOXFoQkwvaE9wbTdvRWxxdGlMZFZJcjY3ZFBYZHlTdC93QTNvL2g5SUhz?=
 =?utf-8?B?eWhXaUhwQ0tvNzhZNlpXcjZGaDlWTDRETkpGSlZYUGxJKzlPU3VkbVJLcEdM?=
 =?utf-8?B?SldlMWRDTmhSdEdaa2RPenZGVy9FU1Bsc1RBeENhZU16cTNzT1R2NUszaGxE?=
 =?utf-8?B?aWR1dTJuZ1RtNDVhcXZxcjJiRlJ2azhsQURxZHVvbWtTV0pBSFYvTTkyR3Rz?=
 =?utf-8?B?aFR2Z2VvUjhSSThqVHdpRG5zc3IzZS90Tm1UdnRWMGRpemhBaVJHOHpqWDRm?=
 =?utf-8?B?TExwTkFrM3FqaTMrWVY2WTh4ekMwdVo1T1dxdFlHUDF1K3NnNE9pT25jU3lC?=
 =?utf-8?B?WHpDRC9FNWJpbWYxQWhGdXdhUTViM1huVE42c3Vud3cxOENYTXFCRTdzZ1J5?=
 =?utf-8?B?YVZpK0RXWFhxSlhoREErZHRZd0lLNmM4N2l0VGZTaGxic3NTc092NUNyek9V?=
 =?utf-8?B?Ly9EWGt0Vm4yN1JxOFZMN0pIR2gyY2tRUnU5T0ROeHVyQXBzK0NVWFZSeldR?=
 =?utf-8?B?WENremZ4K2ttUDN1c0t6emhPR3ZFVWFMcTJqQi8zbjFrcEIzNWM3WUJOU0Q4?=
 =?utf-8?B?UGxEcDFyUDE0Uzk0a1ZWYzZuNTlFZFBhNG1sWjNoZ1R6OURSbUJ0TnRsTW1v?=
 =?utf-8?B?Y0E9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <240A40A3AB3FC24D95F440185D90858D@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: PAVPR03MB8946.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 76104a10-03a1-4adf-96fe-08dde702d29b
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Aug 2025 13:49:06.5399
 (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: zWwmv0sUeU1niXF0ndoAZjbcR7NDitTRsj+p2jtEETw7ZKHlN6FnOTt8+Gq1n3pNCSSz6Hqg5G1SWO539lFYiYcs1mH3EQQvyuY8pB/2nl0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB9413

DQoNCk9uIDI5LzA4LzIwMjUgMTY6NDIsIE9sZWtzYW5kciBUeXNoY2hlbmtvIHdyb3RlOg0KPg0K
Pg0KPiBPbiAyOC4wOC4yNSAxOTo0MCwgT2xla3NpaSBNb2lzaWVpZXYgd3JvdGU6DQo+DQo+IEhl
bGxvIE9sZWtzaWkNCj4NCj4NCj4+IFRoaXMgcGF0Y2ggYWRkcyB0aGUgYmFzaWMgZnJhbWV3b3Jr
IGZvciBBUk0gU0NJIG1lZGlhdG9yLiBTQ0kgaXMgU3lzdGVtDQo+PiBDb250cm9sIEludGVyZmFj
ZSwgd2hpY2ggaXMgZGVzaWduZWQgdG8gcmVkaXJlY3QgcmVxdWVzdHMgZnJvbSB0aGUgDQo+PiBE
b21haW5zDQo+PiB0byBBUk0gc3BlY2lmaWMgRmlybXdhcmUgKGZvciBleGFtcGxlIFNDTUkpLiBU
aGlzIHdpbGwgYWxsb3cgdGhlIA0KPj4gZGV2aWNlcywNCj4+IHBhc3NlZC10aHJvdWdoIHRvIHRo
ZSBkaWZmZXJlbnQgRG9tYWlucywgdG8gYWNjZXNzIHRvIHRoZSBTeXN0ZW0gDQo+PiByZXNvdXJj
ZXMNCj4+IChzdWNoIGFzIGNsb2Nrcy9yZXNldHMgZXRjKSBieSBzZW5kaW5nIHJlcXVlc3RzIHRv
IHRoZSBmaXJtd2FyZS4NCj4+DQo+PiBBUk0gU0NJIHN1YnN5c3RlbSBhbGxvd3MgdG8gaW1wbGVt
ZW50IGRpZmZlcmVudCBTQ0kgZHJpdmVycyB0byBoYW5kbGUNCj4+IHNwZWNpZmljIEFSTSBmaXJt
d2FyZSBpbnRlcmZhY2VzIChsaWtlIEFSTSBTQ01JKSBhbmQgbWVkaWF0ZSByZXF1ZXN0cw0KPj4g
LWJldHdlZW4gdGhlIERvbWFpbnMgYW5kIHRoZSBGaXJtd2FyZS4gQWxzbyBpdCBhbGxvd3MgU0NJ
IGRyaXZlcnMgdG8gDQo+PiBwZXJmb3JtDQo+PiBwcm9wZXIgYWN0aW9uIGR1cmluZyBEb21haW4g
Y3JlYXRpb24vZGVzdHJ1Y3Rpb24gd2hpY2ggaXMgdml0YWwgZm9yDQo+PiBoYW5kbGluZyB1c2Ug
Y2FzZXMgbGlrZSBEb21haW4gcmVib290Lg0KPj4NCj4+IFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBu
ZXcgREVWSUNFX0ZJUk1XQVJFIGRldmljZSBzdWJjbGFzcyBmb3IgcHJvYmluZyANCj4+IFNDSQ0K
Pj4gZHJpdmVycyBiYXNpbmcgb24gZGV2aWNlIHRyZWUsIFNDSSBkcml2ZXJzIHJlZ2lzdGVyIGl0
c2VsZiB3aXRoDQo+PiBEVF9ERVZJQ0VfU1RBUlQvRU5EIG1hY3JvLiBPbiBpbml0IC0gdGhlIFND
SSBkcml2ZXJzIHNob3VsZCByZWdpc3RlciBpdHMNCj4+IFNDSSBvcHMgd2l0aCBzY2lfcmVnaXN0
ZXIoKS4gT25seSBvbmUgU0NJIGRyaXZlciBjYW4gYmUgc3VwcG9ydGVkLg0KPj4NCj4+IEF0IHJ1
bi10aW1lLCB0aGUgZm9sbG93aW5nIFNDSSBBUEkgY2FsbHMgYXJlIGludHJvZHVjZWQ6DQo+Pg0K
Pj4gLSBzY2lfZG9tYWluX3Nhbml0aXNlX2NvbmZpZygpIGNhbGxlZCBmcm9tIGFyY2hfc2FuaXRp
c2VfZG9tYWluX2NvbmZpZygpDQo+PiAtIHNjaV9kb21haW5faW5pdCgpIGNhbGxlZCBmcm9tIGFy
Y2hfZG9tYWluX2NyZWF0ZSgpDQo+PiAtIHNjaV9yZWxpbnF1aXNoX3Jlc291cmNlcygpIGNhbGxl
ZCBmcm9tIGRvbWFpbl9yZWxpbnF1aXNoX3Jlc291cmNlcygpDQo+PiAtIHNjaV9kb21haW5fZGVz
dHJveSgpIGNhbGxlZCBmcm9tIGFyY2hfZG9tYWluX2Rlc3Ryb3koKQ0KPj4gLSBzY2lfaGFuZGxl
X2NhbGwoKSBjYWxsZWQgZnJvbSB2c21jY2NfaGFuZGxlX2NhbGwoKQ0KPj4gLSBzY2lfZHRfaGFu
ZGxlX25vZGUoKQ0KPj4gLSBzY2lfZHRfZmluYWxpemUoKSBjYWxsZWQgZnJvbSBoYW5kbGVfbm9k
ZSgpIChEb20wIERUKQ0KPj4NCj4+IFNpZ25lZC1vZmYtYnk6IE9sZWtzaWkgTW9pc2llaWV2IDxv
bGVrc2lpX21vaXNpZWlldkBlcGFtLmNvbT4NCj4+IFNpZ25lZC1vZmYtYnk6IEdyeWdvcmlpIFN0
cmFzaGtvIDxncnlnb3JpaV9zdHJhc2hrb0BlcGFtLmNvbT4NCj4+IFJldmlld2VkLWJ5OiBTdGVm
YW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+DQo+PiAtLS0NCj4+DQo+PiBD
aGFuZ2VzIGluIHY2Og0KPj4gLSByZWJhc2Ugb24gdG9wIG9mIHRoZSBsYXRlc3QgbWFzdGVyDQo+
PiAtIGZpeCByZXR1cm4gdmFsdWUgb2Ygc2NpX2R0X2ZpbmFsaXplKCkgY2FsbA0KPj4NCj4+IENo
YW5nZXMgaW4gdjU6DQo+PiAtIHVwZGF0ZSBNYWludGFpbmVycyBmaWxlLiBTZXQgcm9sZSBhcyBh
IFJldmlld2VyDQo+PiAtIHJlYmFzZWQgb24gdGhlIGxhdGVzdCBtYXN0ZXIgYnJhbmNoDQo+PiAt
IEludHJvZHVjZSBhcmNoX2hhbmRsZV9wYXNzdGhyb3VnaF9wcm9wIGNhbGwgdG8gaGFuZGxlIGFy
bSBzcGVjaWZpYyANCj4+IG5vZGVzDQo+Pg0KPj4gQ2hhbmdlcyBpbiB2NDoNCj4+IC0gZml4IFNQ
RFgtTGljZW5zZQ0KPj4gLSByZW5hbWUgREVWSUNFX0FSTV9TQ0kgRFQgZGV2aWNlIGNsYXNzIHRv
IEZJUk1XQVJFX0RFVklDRQ0KPj4gLSBtb3ZlIFhFTl9ET01DVExfYXNzaWduX2RldmljZSBjb2Rl
IGluIHNlcGFyYXRlIHBhdGNoDQo+PiAtIEFkZCBkb2N1bWVudGF0aW9uIGZvciBTQ0kgU0NNSSBk
cml2ZXJzDQo+Pg0KPj4gwqAgTUFJTlRBSU5FUlPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqDCoCA2ICsNCj4+IMKgIHhlbi9hcmNoL2Fy
bS9kZXZpY2UuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqDCoCA1ICsN
Cj4+IMKgIHhlbi9hcmNoL2FybS9kb20wbGVzcy1idWlsZC5jwqDCoMKgwqDCoMKgwqDCoMKgwqAg
fMKgwqAgOCArDQo+PiDCoCB4ZW4vYXJjaC9hcm0vZG9tYWluLmPCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqAgfMKgIDEyICstDQo+PiDCoCB4ZW4vYXJjaC9hcm0vZG9tYWluX2J1
aWxkLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgwqAgOCArDQo+PiDCoCB4ZW4vYXJjaC9h
cm0vZmlybXdhcmUvS2NvbmZpZ8KgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgIDggKw0KPj4gwqAg
eGVuL2FyY2gvYXJtL2Zpcm13YXJlL01ha2VmaWxlwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgIDEg
Kw0KPj4gwqAgeGVuL2FyY2gvYXJtL2Zpcm13YXJlL3NjaS5jwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgIHwgMTU0ICsrKysrKysrKysrKysrKysrKw0KPj4gwqAgeGVuL2FyY2gvYXJtL2luY2x1ZGUv
YXNtL2RvbWFpbi5owqDCoMKgwqDCoMKgIHzCoMKgIDUgKw0KPj4gwqAgeGVuL2FyY2gvYXJtL2lu
Y2x1ZGUvYXNtL2Zpcm13YXJlL3NjaS5oIHwgMjAwICsrKysrKysrKysrKysrKysrKysrKysrKw0K
Pj4gwqAgeGVuL2FyY2gvYXJtL3ZzbWMuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqAgfMKgwqAgMyArDQo+PiDCoCB4ZW4vY29tbW9uL2RldmljZS10cmVlL2RvbTBsZXNz
LWJ1aWxkLmMgfMKgwqAgNCArDQo+PiDCoCB4ZW4vaW5jbHVkZS9hc20tZ2VuZXJpYy9kZXZpY2Uu
aMKgwqDCoMKgwqDCoMKgIHzCoMKgIDEgKw0KPj4gwqAgeGVuL2luY2x1ZGUvcHVibGljL2FyY2gt
YXJtLmjCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqDCoCA0ICsNCj4+IMKgIHhlbi9pbmNsdWRlL3hl
bi9kb20wbGVzcy1idWlsZC5owqDCoMKgwqDCoMKgwqAgfMKgwqAgOSArKw0KPj4gwqAgMTUgZmls
ZXMgY2hhbmdlZCwgNDI3IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkNCj4+IMKgIGNyZWF0
ZSBtb2RlIDEwMDY0NCB4ZW4vYXJjaC9hcm0vZmlybXdhcmUvc2NpLmMNCj4+IMKgIGNyZWF0ZSBt
b2RlIDEwMDY0NCB4ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vZmlybXdhcmUvc2NpLmgNCj4NCj4g
W3NuaXBdDQo+DQo+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2Zpcm13
YXJlL3NjaS5oIA0KPj4gYi94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vZmlybXdhcmUvc2NpLmgN
Cj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+PiBpbmRleCAwMDAwMDAwMDAwLi4xYjlhNWMwYzA3
DQo+PiAtLS0gL2Rldi9udWxsDQo+PiArKysgYi94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vZmly
bXdhcmUvc2NpLmgNCj4+IEBAIC0wLDAgKzEsMjAwIEBADQo+PiArLyogU1BEWC1MaWNlbnNlLUlk
ZW50aWZpZXI6IEdQTC0yLjAtb25seSAqLw0KPj4gKy8qDQo+PiArICogR2VuZXJpYyBBUk0gU0NJ
IChTeXN0ZW0gQ29udHJvbCBJbnRlcmZhY2UpIHN1YnN5c3RlbS4NCj4+ICsgKg0KPj4gKyAqIE9s
ZWtzaWkgTW9pc2llaWV2IDxvbGVrc2lpX21vaXNpZWlldkBlcGFtLmNvbT4NCj4+ICsgKiBDb3B5
cmlnaHQgKGMpIDIwMjUgRVBBTSBTeXN0ZW1zDQo+PiArICovDQo+PiArDQo+PiArI2lmbmRlZiBf
X0FTTV9BUk1fU0NJX0gNCj4+ICsjZGVmaW5lIF9fQVNNX0FSTV9TQ0lfSA0KPj4gKw0KPj4gKyNp
bmNsdWRlIDx4ZW4vbGliLmg+DQo+PiArI2luY2x1ZGUgPHhlbi90eXBlcy5oPg0KPj4gKyNpbmNs
dWRlIDx4ZW4vZGV2aWNlX3RyZWUuaD4NCj4+ICsjaW5jbHVkZSA8eGVuL2Vycm5vLmg+DQo+PiAr
I2luY2x1ZGUgPHhlbi9zY2hlZC5oPg0KPg0KPiBOSVQ6IExvb2tzIGxpa2UgdGhlIGhlYWRlcnMg
YXJlIG5vdCBhbHBoYWJldGljYWxseSBzb3J0ZWQNCj4NCj4gW3NuaXBdDQo+DQo+PiDCoCBkaWZm
IC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL2RvbTBsZXNzLWJ1aWxkLmggDQo+PiBiL3hlbi9pbmNs
dWRlL3hlbi9kb20wbGVzcy1idWlsZC5oDQo+PiBpbmRleCA0MDg4NTllMzI1Li42ZmRkMDU1MmUw
IDEwMDY0NA0KPj4gLS0tIGEveGVuL2luY2x1ZGUveGVuL2RvbTBsZXNzLWJ1aWxkLmgNCj4+ICsr
KyBiL3hlbi9pbmNsdWRlL3hlbi9kb20wbGVzcy1idWlsZC5oDQo+PiBAQCAtNjIsNiArNjIsOSBA
QCB2b2lkIHNldF9kb21haW5fdHlwZShzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgDQo+PiBrZXJu
ZWxfaW5mbyAqa2luZm8pOw0KPj4gwqAgaW50IGluaXRfaW50Y19waGFuZGxlKHN0cnVjdCBrZXJu
ZWxfaW5mbyAqa2luZm8sIGNvbnN0IGNoYXIgKm5hbWUsDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbnN0IGludCBub2RlX25leHQsIGNvbnN0IHZv
aWQgKnBmZHQpOw0KPj4gwqAgK2ludCBhcmNoX2hhbmRsZV9wYXNzdGhyb3VnaF9wcm9wKHN0cnVj
dCBrZXJuZWxfaW5mbyAqa2luZm8sDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgZHRfZGV2aWNlX25vZGUg
Km5vZGUpOw0KPj4gKw0KPj4gwqAgI2Vsc2UgLyogIUNPTkZJR19ET00wTEVTU19CT09UICovDQo+
PiDCoCDCoCBzdGF0aWMgaW5saW5lIHZvaWQgY3JlYXRlX2RvbVVzKHZvaWQpIHt9DQo+PiBAQCAt
NzEsNiArNzQsMTIgQEAgc3RhdGljIGlubGluZSBib29sIGlzX2RvbTBsZXNzX21vZGUodm9pZCkN
Cj4+IMKgIH0NCj4+IMKgIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXRfeHNfZG9tYWluKHN0cnVjdCBk
b21haW4gKmQpIHt9DQo+PiDCoCArc3RhdGljIGlubGluZSBpbnQgYXJjaF9oYW5kbGVfcGFzc3Ro
cm91Z2hfcHJvcChzdHJ1Y3Qga2VybmVsX2luZm8gDQo+PiAqa2luZm8sDQo+PiArwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGR0X2RldmljZV9ub2RlIA0KPj4gKm5v
ZGUpDQo+PiArew0KPj4gK8KgwqDCoCByZXR1cm4gMDsNCj4+ICt9DQo+PiArDQo+PiDCoCAjZW5k
aWYgLyogQ09ORklHX0RPTTBMRVNTX0JPT1QgKi8NCj4+IMKgIMKgICNlbmRpZiAvKiBfX0FTTV9H
RU5FUklDX0RPTTBMRVNTX0JVSUxEX0hfXyAqLw0KPg0KPg0KPiBJZiBJIGJ1aWxkIGN1cnJlbnQg
cGF0Y2ggd2l0aCAjIENPTkZJR19ET00wTEVTU19CT09UIGlzIG5vdCBzZXQNCj4gSSBnb3QgdGhl
IGZvbGxvd2luZyBlcnJvcjoNCj4NCj4gQ0PCoMKgwqDCoMKgIGFyY2gvYXJtL2RvbWFpbl9idWls
ZC5vDQo+IMKgIENDwqDCoMKgwqDCoCBhcmNoL2FybS9ndWVzdGNvcHkubw0KPiBJbiBmaWxlIGlu
Y2x1ZGVkIGZyb20gYXJjaC9hcm0vZG9tYWluX2J1aWxkLmM6NToNCj4gLi9pbmNsdWRlL3hlbi9k
b20wbGVzcy1idWlsZC5oOjc4OjU1OiBlcnJvcjogJ3N0cnVjdCBkdF9kZXZpY2Vfbm9kZScgDQo+
IGRlY2xhcmVkIGluc2lkZSBwYXJhbWV0ZXIgbGlzdCB3aWxsIG5vdCBiZSB2aXNpYmxlIG91dHNp
ZGUgb2YgdGhpcyANCj4gZGVmaW5pdGlvbiBvciBkZWNsYXJhdGlvbiBbLVdlcnJvcl0NCj4gwqDC
oCA3OCB8wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgDQo+IGR0
X2RldmljZV9ub2RlICpub2RlKQ0KPiDCoMKgwqDCoMKgIHwgXn5+fn5+fn5+fn5+fn4NCj4gLi9p
bmNsdWRlL3hlbi9kb20wbGVzcy1idWlsZC5oOjc3OjU1OiBlcnJvcjogJ3N0cnVjdCBrZXJuZWxf
aW5mbycgDQo+IGRlY2xhcmVkIGluc2lkZSBwYXJhbWV0ZXIgbGlzdCB3aWxsIG5vdCBiZSB2aXNp
YmxlIG91dHNpZGUgb2YgdGhpcyANCj4gZGVmaW5pdGlvbiBvciBkZWNsYXJhdGlvbiBbLVdlcnJv
cl0NCj4gwqDCoCA3NyB8IHN0YXRpYyBpbmxpbmUgaW50IGFyY2hfaGFuZGxlX3Bhc3N0aHJvdWdo
X3Byb3Aoc3RydWN0IA0KPiBrZXJuZWxfaW5mbyAqa2luZm8sDQo+IMKgwqDCoMKgwqAgfCBefn5+
fn5+fn5+fg0KPg0KR29vZCBmaW5kaW5nLiBUaGFua3MuIFdpbGwgYmUgZml4ZWQuDQo=


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 13:56:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 13:56:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101422.1454503 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urzaJ-0000mj-CI; Fri, 29 Aug 2025 13:56:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101422.1454503; Fri, 29 Aug 2025 13:56: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 1urzaJ-0000mc-95; Fri, 29 Aug 2025 13:56:07 +0000
Received: by outflank-mailman (input) for mailman id 1101422;
 Fri, 29 Aug 2025 13:56:06 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1urzaI-0000mW-1e
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 13:56:06 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1urzaH-00CdP3-20;
 Fri, 29 Aug 2025 13:56:05 +0000
Received: from [2a01:e0a:1da:8420:b77:bd5:6e45:7633] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1urzaH-007dfa-1l;
 Fri, 29 Aug 2025 13:56: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date;
	bh=tsyPz5lnK+JfcWaYVgf+X6ZxcHKl+UA04xxsOJaeMGQ=; b=PwRaUOCWCjHM+E7CAVLpZ8Vw4Z
	L4OABvWcGoElT0JLzR2RKj+TtEwRn0AfFyzm8FDlomehDnpffy7vGLKGUzKhsR34u4YUHLMANO73M
	cc2MzsESFYG/vphxI4B/22Xe7daLdCqKEHuqFUleFyD3Rg2JV9NWJJJ3h5C+6W62RCQQ=;
Date: Fri, 29 Aug 2025 15:56:03 +0200
From: Anthony PERARD <anthony@xenproject.org>
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: xen-devel@lists.xenproject.org,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: Re: [XEN PATCH 06/11] libxl: convert libxl__json_object_to_yajl_gen
 to libxl__json_object_to_libjsonc_object
Message-ID: <aLGxc2d5rZspn9wj@l14>
References: <20250808145602.41716-1-anthony@xenproject.org>
 <20250808145602.41716-7-anthony@xenproject.org>
 <10a60455-a4d2-4c58-8a80-d8b264d27efd@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <10a60455-a4d2-4c58-8a80-d8b264d27efd@amd.com>

On Wed, Aug 27, 2025 at 11:37:07AM -0400, Jason Andryuk wrote:
> On 2025-08-08 10:55, Anthony PERARD wrote:
> > +    case JSON_NUMBER:
> > +        *jso_out = json_object_new_string(obj->u.string);
> 
> Is JSON_NUMBER calling json_object_new_string() correct?  It looks like the
> yajl code falls back to a string, so that is okay but surprising.

Yeah, I think that's correct.
:-( maybe not. Even if we have these too comments:

    In libxl_internal.h, enum libxl__json_node_type:
        /* number is store in string, it's too big to be a long long or a double */
        JSON_NUMBER  = (1 << 4),

    In json_callback_number():
        /* If the conversion fail, we just store the original string. */

With yajl, we call yajl_gen_number(), which probably write 2^128 as:

    340282366920938463463374607431768211456

but this new json-c generator would write instead:

    "340282366920938463463374607431768211456"

I guess we might be able to replicate the same behavior by using
json_object_set_serializer() or json_object_new_double_s() (which use
the former). But I don't know if it is worth the effort. I hope we won't
have int bigger than 64 bits.

And there's probably no tests for JSON_NUMBERs. So I guess first step
would be to write a test that have numbers that can't be converted to
`long long` and see what happens.

Thanks,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 13:58:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 13:58:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101448.1454512 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urzcS-0001MR-NT; Fri, 29 Aug 2025 13:58:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101448.1454512; Fri, 29 Aug 2025 13:58:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urzcS-0001MK-Kf; Fri, 29 Aug 2025 13:58:20 +0000
Received: by outflank-mailman (input) for mailman id 1101448;
 Fri, 29 Aug 2025 13:58:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qyNB=3J=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1urzcR-0001KG-5G
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 13:58:19 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 35e8ace4-84e0-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 15:58:17 +0200 (CEST)
Received: from AS4PR03MB8676.eurprd03.prod.outlook.com (2603:10a6:20b:58c::8)
 by AS2PR03MB8908.eurprd03.prod.outlook.com (2603:10a6:20b:5e7::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Fri, 29 Aug
 2025 13:58:11 +0000
Received: from AS4PR03MB8676.eurprd03.prod.outlook.com
 ([fe80::c5ca:906a:1ded:634b]) by AS4PR03MB8676.eurprd03.prod.outlook.com
 ([fe80::c5ca:906a:1ded:634b%7]) with mapi id 15.20.9052.019; Fri, 29 Aug 2025
 13: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>
X-Inumbo-ID: 35e8ace4-84e0-11f0-8dd7-1b34d833f44b
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ps6UWHT/EazNlm/8kynhUn23qhAz9/sHOp1HsOHb3MVj8HaxSJkcAxcH0I5tQUTii+hGVHEGv6n9kiVZf0tXGVlzzTu5bS14Dvo2oKn0ipRgJ40gCmIzXcUtZqOpgXg/twvFGiWCfS1FViIJTudDXqvJZxE/sZEC+xt3tbMRnmVF2Wzx25Nq/v0DR5FPhmKEF5Ho28biSYeQ9k/wZheLxnFry5mJgrqZV6Z0DpSkOVM1aarQc9x4sNFpk68AvpiQkj3n/BnEdJaz1ygstQAueewrx+DkZYXsczFK5RWCTySNDH5dHkEXBV3s74HEAchOlKuG8F15oGa/z6XIAMr3Mw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=WP6UvMibGez4d1AXt7UeD+1nLSoEhGOy1agoladgPDo=;
 b=FRAWDnvhiajyPtBJ/4ww1jBBbN2dfLn5HrVbDPXuN/DyXMqIfzS3gctyOSHKMer9Xg4NjWPhSYfsTkZV85yJ4F2uI1bT+77pTC7hijeBGYQG4WQFO/HEc7/elnpbA6HyTFilu4X352ieeFqSRmYTPSjJ3Jblxlol0tbg+gvQRju2SorPRV0v8DKNFxj0CrGS33/LUdXdJV48nxAVFoZlBNN1wGVUJ3sK0/5tK0Teps1fCCVvPkt/5Erhx9o5v+3b+qM6QPi7bQL30M5sPLadBsJwZNd/HU9jrNLJ2V0mpRdB/CcWhj5dbINKpYH+6+i9skfOcA8fou1nFyxhcqQApw==
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=WP6UvMibGez4d1AXt7UeD+1nLSoEhGOy1agoladgPDo=;
 b=IWAQDevpunFLn5r3UhsPR4iMpN1VmxRBBPtvhe+nK+wlDUkHB2HFguvqWpnCB8sbiMVcn530oqBzhFmegDUe30PzpgZEaKpMALzuLBxeQRFjNZhz8Amlv/PzPBqaSyo29bFb72PGFuummpCmnKP+GcrvGzIj6kt5nmds3HM3lsW02XID8jlpJtohC2s9yIoIoY7o7A42ilMpo+/ArBOlO+p7SFCjKWMwCh+hgf2Osz+d5DW8J0MizBA6xIJHQKajcYYfdvhOysTGGibLHSLM99CWLCXCgw03pYSE0N+mU5ONIEWckO8j7JCyubjW0LqFwFhCUWi7CXMtf2lbgYxx2g==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: Oleksandr Tyshchenko <olekstysh@gmail.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel
	<michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v4 08/12] xen/arm: vgic: add resource management for
 extended SPIs
Thread-Topic: [PATCH v4 08/12] xen/arm: vgic: add resource management for
 extended SPIs
Thread-Index: AQHcF3/NodAFMh424U2CquWmKsv0JLR4VPqAgAAai4CAAPWKAIAARdkA
Date: Fri, 29 Aug 2025 13:58:11 +0000
Message-ID: <d3979868-fa57-4043-a7cb-9f7f1ca88851@epam.com>
References: <cover.1756317702.git.leonid_komarianskyi@epam.com>
 <9e8a11b024833c1b91b8806e7708bf35b04a8f6e.1756317702.git.leonid_komarianskyi@epam.com>
 <01a964ac-a9aa-4301-b3da-5691e18b1b73@gmail.com>
 <801cb42f-3d1e-4173-a5e6-d68c70d89fc7@epam.com>
 <a21b6d09-193c-4718-9811-092470e1ceb5@gmail.com>
In-Reply-To: <a21b6d09-193c-4718-9811-092470e1ceb5@gmail.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: AS4PR03MB8676:EE_|AS2PR03MB8908:EE_
x-ms-office365-filtering-correlation-id: ff1a6fc5-21db-4915-6b29-08dde7041738
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?WGJ2Wld2WEpYcHg4NVUzKzV5M1ZGa1pLQW5iQjhaRWpvUXBiQTRwU0J5ZUwz?=
 =?utf-8?B?bEZCaWw0aWJiU0dTVDF5NmJNVUpvMWVsS2VUQVBQMGJ4MkozL1FSVkhUTWx6?=
 =?utf-8?B?azU3R2RLUUVmSVkrYmgzenhsLy9NV3IwSHBnTWh3MUJDdmF2bVNPZmUvTi9D?=
 =?utf-8?B?U1I4TitOYlliL2JPZGVlY09yVStyOFcvWXJxVlMrNzladVBzK1dOM3lDTmVJ?=
 =?utf-8?B?RzdYaEEwYUNiRlBQUWFSNkhUMWIrRzdwMTdja09NR3NxR3VNRFpxS2sxNGNt?=
 =?utf-8?B?KzdFLzM5aVU3dkJrbWV6SEwxQmZRM2EybWJTdDFaSzZLd2JKcWJscmlRY0Jk?=
 =?utf-8?B?QTY0RndRRjZlSWJiWDkzMktBbWcwb3U0SWhIZUErOXE4ZlpLQ0hqWGV6bkVo?=
 =?utf-8?B?Z3NObW9VVlUrUXBjcVY2RXhyR0ttVEE2elJsUU1tVHRsd3orcXRpSm11RlFr?=
 =?utf-8?B?ZWIzRDhGSG01TncxRFVMSWFNV08vOEFabmpZc3hRc0RvV0pEd3RKSmpyVy9J?=
 =?utf-8?B?TjBkbjhIWEdvaFgyWXFIdmo4eEt4Q0M0c2Z4aWVCOTBGd1R1c0hwUGVocE1U?=
 =?utf-8?B?dTBJb2dOZndNaDVIRXM0SkZJSmR4ZkFWL29lcndVRUVmOHpDaWxlMjRIck13?=
 =?utf-8?B?dGFxZDFKYWJ3Zk1HSlVteFhUMlRWak5aWkg1dWYzY2l0WTRYNmpSS2R0Nlc4?=
 =?utf-8?B?a25vbUYxcDFXRHJCQ2QxQjc4NjJmZnhTMGdkUHEvTDdJWlVmU21xak9OcTlM?=
 =?utf-8?B?MTRJdU4vUXNlcmhUbFliRGpsS1BSS3JDOElGZWZGTVNwdHlldEtmallFY0Fo?=
 =?utf-8?B?d1RYQ0o5TnhsS2V6bFkrb0VldXJlUHpwZU9Kb1pPTnNRb0E0RTJYTkpsNjZB?=
 =?utf-8?B?YkdqZVIydnZJRFNtVVVOdTdZVUFhOXpoNGNBNjBrUjR1THdoOXhKc25jSHZE?=
 =?utf-8?B?ZkNwdkNrc1ZPT1pjL2Q2M0RBWkJHais1dXhmNmxSSVZ0YXBCY1J2R3dSLy9v?=
 =?utf-8?B?UE1DM2RJUVh4VzZ2alZtTHBnN0dxaHNNREVUa3BaUlJWV3JTMTJlTjNZR0lk?=
 =?utf-8?B?RDE2eW5mRGM1YXRrR2NkeGpzbXRxQkJubGtaTmpPWk5ZTGJGVitKd1VNcS9q?=
 =?utf-8?B?RTJ5WGd3azBLNjhMYzE3dW16QmRUVDhibHNiUnY0N0wzWUFjRUllbGpIOGU4?=
 =?utf-8?B?VlZWWEg4QnhURFhvRzN0WUVDR284U0pkVHAwV1pIazEyNFBHRVFQc2Njem01?=
 =?utf-8?B?dEJ4UFhqcGNqYlBEcC92WU1nMEluUUNXMzV3S3ZYeitEeTRMZEdnS2p5TjRH?=
 =?utf-8?B?cEhZM1YrNDNrcVNTVzl2MDJQbk55eStQOVlLUmpCTVRnczBFRjlwZ09xay85?=
 =?utf-8?B?L0piRUVEbDB4TVRGUmVXOWNlTmYvMmY3c21QT09XRnMyOUZLNUhWdXVQUTdB?=
 =?utf-8?B?T0FZcThsVjF0b0F2cXU2QzN3VE5aeWx6eldCaURSTmtpMlpiQVBVZUl0NmRi?=
 =?utf-8?B?L2xkeXg5Vy94MmZDZzBtT09WYkdVbU5JUkRZenZiYk9SZU9EV0hZSjNvallu?=
 =?utf-8?B?WWFLZkhId3MzeGVROTI4ZWVpL29yeWZSZVdkODAvZTF1QmI3T3h2SUdSNmpN?=
 =?utf-8?B?dnRnSGoxajUvd1RsL2pYbVByTGdvM2hkTDFZMnYyWEVPQmdPN1BxakYyS0Ur?=
 =?utf-8?B?SkJ1QngzTDlhMEJ1NnVyc1FpTXcrYXdJQTVMcm1yVTdoWld4OGlXeVg4SlpO?=
 =?utf-8?B?enFxd0hYNnFLRkI1cmFrSjRzc2ZaSG1WWUFLT2wwK1pPckFLTHlHSDBVVGVy?=
 =?utf-8?B?SUF3RUQxZUMrS3A2aTVmbUdjczBlc0JZMkI0alB3ZThFcHpCa1FJVzJiNGE2?=
 =?utf-8?B?aktkam00QVd4UVc4bTB5eDZFcTVrN2xmSk9aRDJuK1BrVExSMnFJME4zMjRy?=
 =?utf-8?B?SG4rTGg5aWh2enI4blNHRUdiSGUydW9RUU5mUXRudkJpMFFEMEpoaFBZUk9l?=
 =?utf-8?B?dGpJK04xdjJ3PT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS4PR03MB8676.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?T1M1Si9GRHJkMWhLL2lzQkx2UTgwclpZSTlsMmlMNnE0eEJVdnQ4ZHIwbGpa?=
 =?utf-8?B?TjZuakhPMXpZTGEwRGNVK29CeTVHZVpObStvK1BEeGdVcENoSm9QNTFjM0w0?=
 =?utf-8?B?UlcvVnJTMWNkbmlRTjRvTkNkcHN3RGgzVndvb0x1eTNkMURrOEl5U09ycWQx?=
 =?utf-8?B?dkZ3SVdieUNSQ2NqQTRnY0RvTDJCWFhCdlIrdmEyT3l3SytnNGVIVStXK2xS?=
 =?utf-8?B?NWExWjk2U2pNZnBITXVTZDQ3amNuSWtheUIvbUNaWStUZkE1c3ZpOUx0Y3d0?=
 =?utf-8?B?RXlYcE42NVNaQjdwV0ZueXRmRi81ck1IRmNjVzU0YmttUHAwamU5RnB2bCtx?=
 =?utf-8?B?TjhWK2Q4ekpQMDZkdzMya0IrcmVPbnBLbVpUaXJTbzJXSmhoU3JFUFhIbXJm?=
 =?utf-8?B?VFFTM3dibk11bmNoOGZhQ2hVR0xzVkU0dWVnbzB5ZEpITC8wMmhZOXFEWXFR?=
 =?utf-8?B?WDhUTEtkTmZ3anRhUXlNbSsxVTJaVlVCa1pVV1kwcVlUdm1uYUw3c0ZLaXly?=
 =?utf-8?B?ZWV0TXRLN2wvUi9VY2hnSDY3REpWZ25ZSUZhRUZpeHkzMjU5UlhlZ04yWGlJ?=
 =?utf-8?B?TmVONlMvWnJldU56SkZsa1ZRRWhZeTJoV25QdlZnL2pBSU95MUg4TUloM0V3?=
 =?utf-8?B?cElxYzFRdWNsODJRSGg3TEt2U0VhQnVWNXUxNUY1WWVaRUU0T0g1MXA2Y0No?=
 =?utf-8?B?U05PK1p5VUlBL05rRi9JUTd3SGl5OEU1TEV6MUcySlZhRExrdmNxaHFVRTdj?=
 =?utf-8?B?enJvc1dnVkdFcllxSWxCMGhJN1hnWmR0MmphbFRoWjVaRWNjZ0VNY1NYU2E1?=
 =?utf-8?B?YjB1K0ZTU0FzRUlhcnNqK0RKOHQ5a3ozeC9ySzVqT1JNL2JVNFN0Umw2V1RP?=
 =?utf-8?B?ZjFBTmZxYVpMSlQxVU5lUG1Qb2cvNWQ1akNWNTFDZFJRdExkWDdwQ1dMMzZL?=
 =?utf-8?B?TzhKQUh6clkwdlh2c244ZnNSZlZvU05QajNKRnp2dlJBMlZyekpyRDZSYklJ?=
 =?utf-8?B?YlpSaGc4TEFOajJ4KzAxTHJUbHVsZ3ZPb2ZrazMxd1Fmc2E4SXVhc1JiREtK?=
 =?utf-8?B?VUljRi9hRXJLVUg3UUpGeHZjeGhFZXR3TWRJQ2t4T25RNmtIcWR6ak9ab2w4?=
 =?utf-8?B?UERDUVRIQjNqYWUvVitBcU5ncThxZjRUNlRRN1ozSnh3QlhCajEzTS9idU05?=
 =?utf-8?B?RU1jZjN4cGJIZmtCaFhNK1dIcnFkcWU4TWMwMTJva05YY0hHWmg5VmFnQy96?=
 =?utf-8?B?MTNibXJTSlpnZ0dqdE53SHIveTkrQmFwRWFwOG1VUFZPanpUV2tUYVYwWDIx?=
 =?utf-8?B?RzBBQ0VmcklSVFBVQTFVYzNYQ2RqbFNhc01wZUM2WUdmMVY4U1ZGWjdIQWVu?=
 =?utf-8?B?aEQ2NVJJb1JCTXZYaHBwZEdaUmgxbXRiaE9DUW0vVml4T0JueGRNUnczQjls?=
 =?utf-8?B?S01kQTVrdnZBeVg2ZUZQK1JpRVp1THBmZlBOc0VGOUF3eE56UzE4T1ZWVTkr?=
 =?utf-8?B?QTl5MVNHSUVONTUvd3paaFdMU2NMZWdtdjFMNUxvbk1mTWZHYTJHVWJTdTFo?=
 =?utf-8?B?MUx4QXJUTzF4MnVuU3lQdHlXY1I5VS81aXNBYUluRTQ3NmVLZC9CS3JhR0Nr?=
 =?utf-8?B?dDBud044dXdvSW5sNmlhdkprTzU5ME9ScExScStlbjA1aTV6bzZLUlBEc0dS?=
 =?utf-8?B?WmdUcVRLT2NPd0hlZE13NU9SWHNUSlhqZjhaQ2Zscnk2RUFqT3JCcWJNS0t1?=
 =?utf-8?B?NDhvUDZ0eGFjQTFTbFVxTmVONkdSS01lSjhBdFBqZDVmZTRqeFE5VVVNdC8y?=
 =?utf-8?B?STVzaURmU0RqVUZvQStPS21vcDVhZWlyVVlzclZjMUxpQVBHR1luZ2QxVmV0?=
 =?utf-8?B?VkFaa3JLWG55OXdQbU5aSGtPSG9YeS83R2E4a1MvSkRGUkdreURiZ09hb3lC?=
 =?utf-8?B?ZE0vQ2xqU2tXRFgvdlVCTDJPMjRtN1JZbFdGaVJkYmM3MUNObVZZSDMyWE1R?=
 =?utf-8?B?c2pFWncxaUdBcVdSTmxReXFRaEZ5RTd3emE2U3hrczd1b3oyc0w4UnZKYXZV?=
 =?utf-8?B?T05YVFBmVk5HMG4yY3BHeHJUdldpVEt5cG5Ed2dwU0hxTXVvK21zTTRlY3VW?=
 =?utf-8?B?emdiaU83eDQvY09TMWc5N3hzS3htdjZndXlGcTBJVjNha1dXWmRQdGJrdnc5?=
 =?utf-8?Q?W0QD9puFnHn/O2+mmUf9OWc=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <039821E339BC924AAF3EADFEA1BAB95D@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: AS4PR03MB8676.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ff1a6fc5-21db-4915-6b29-08dde7041738
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Aug 2025 13:58:11.1850
 (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: kCMp+okpvcY3Q5XZaW9xsWujszcThjMGRLtixwYIPx20p+722K9Y0dF/3e8tumXr0KxA0swGqxfnlHmIaUbEW3eF06SLL3JefnWjku1erCA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB8908

SGVsbG8gT2xla3NhbmRyLA0KDQpUaGFuayB5b3UgZm9yIHlvdXIgY29tbWVudHMgYW5kIHN1Z2dl
c3Rpb25zIC0gdGhleSByZWFsbHkgaGVscCBpbXByb3ZlIA0KdGhlIGNvZGUgOikNCg0KT24gMjku
MDguMjUgMTI6NDgsIE9sZWtzYW5kciBUeXNoY2hlbmtvIHdyb3RlOg0KPiANCj4gDQo+IE9uIDI4
LjA4LjI1IDIyOjA5LCBMZW9uaWQgS29tYXJpYW5za3lpIHdyb3RlOg0KPj4gSGVsbG8gT2xla3Nh
bmRyLA0KPiANCj4gSGVsbG8gTGVvbmlkDQo+IA0KPiANCj4+DQo+PiBUaGFuayB5b3UgZm9yIHlv
dXIgY29tbWVudCBhbmQgc3VnZ2VzdGlvbnMuDQo+Pg0KPj4gT24gMjguMDguMjUgMjA6MzQsIE9s
ZWtzYW5kciBUeXNoY2hlbmtvIHdyb3RlOg0KPj4+DQo+Pj4NCj4+PiBPbiAyNy4wOC4yNSAyMToy
NCwgTGVvbmlkIEtvbWFyaWFuc2t5aSB3cm90ZToNCj4+Pg0KPj4+IEhlbGxvIExlb25pZA0KPj4+
DQo+Pj4+IFRoaXMgY2hhbmdlIGludHJvZHVjZXMgcmVzb3VyY2UgbWFuYWdlbWVudCBpbiB0aGUg
VkdJQyB0byBoYW5kbGUNCj4+Pj4gZXh0ZW5kZWQgU1BJcyBpbnRyb2R1Y2VkIGluIEdJQ3YzLjEu
IFRoZSBwZW5kaW5nX2lycXMgYW5kDQo+Pj4+IGFsbG9jYXRlZF9pcnFzIGFycmF5cyBhcmUgcmVz
aXplZCB0byBzdXBwb3J0IHRoZSByZXF1aXJlZA0KPj4+PiBudW1iZXIgb2YgZVNQSXMsIGJhc2Vk
IG9uIHdoYXQgaXMgc3VwcG9ydGVkIGJ5IHRoZSBoYXJkd2FyZSBhbmQNCj4+Pj4gcmVxdWVzdGVk
IGJ5IHRoZSBndWVzdC4gQSBuZXcgZmllbGQsIGV4dF9zaGFyZWRfaXJxcywgaXMgYWRkZWQNCj4+
Pj4gdG8gdGhlIFZHSUMgc3RydWN0dXJlIHRvIHN0b3JlIGluZm9ybWF0aW9uIGFib3V0IGVTUElz
LCBzaW1pbGFyDQo+Pj4+IHRvIGhvdyBzaGFyZWRfaXJxcyBpcyB1c2VkIGZvciByZWd1bGFyIFNQ
SXMuDQo+Pj4+DQo+Pj4+IFNpbmNlIHRoZSBlU1BJIHJhbmdlIHN0YXJ0cyBhdCBJTlRJRCA0MDk2
IGFuZCBJTlRJRHMgYmV0d2VlbiAxMDI1DQo+Pj4+IGFuZCA0MDk1IGFyZSByZXNlcnZlZCwgaGVs
cGVyIG1hY3JvcyBhcmUgaW50cm9kdWNlZCB0byBzaW1wbGlmeSB0aGUNCj4+Pj4gdHJhbnNmb3Jt
YXRpb24gb2YgaW5kaWNlcyBhbmQgdG8gZW5hYmxlIGVhc2llciBhY2Nlc3MgdG8gZVNQSS1zcGVj
aWZpYw0KPj4+PiByZXNvdXJjZXMuIFRoZXNlIGNoYW5nZXMgcHJlcGFyZSB0aGUgVkdJQyBmb3Ig
cHJvY2Vzc2luZyBlU1BJcyBhcw0KPj4+PiByZXF1aXJlZCBieSBmdXR1cmUgZnVuY3Rpb25hbGl0
eS4NCj4+Pj4NCj4+Pj4gVGhlIGluaXRpYWxpemF0aW9uIGFuZCBkZWluaXRpYWxpemF0aW9uIHBh
dGhzIGZvciB2Z2ljIGhhdmUgYmVlbiANCj4+Pj4gdXBkYXRlZA0KPj4+PiB0byBhbGxvY2F0ZSBh
bmQgZnJlZSB0aGVzZSByZXNvdXJjZXMgYXBwcm9wcmlhdGVseS4gQWRkaXRpb25hbGx5LA0KPj4+
PiB1cGRhdGVkIGhhbmRsaW5nIG9mIElOVElEcyBncmVhdGVyIHRoYW4gMTAyNCwgcGFzc2VkIGZy
b20gdGhlIHRvb2xzdGFjaw0KPj4+PiBkdXJpbmcgZG9tYWluIGNyZWF0aW9uLCBhbmQgdmVyaWZp
Y2F0aW9uIGxvZ2ljIGVuc3VyZXMgb25seSB2YWxpZCANCj4+Pj4gU1BJIG9yDQo+Pj4+IGVTUEkg
SU5USURzIGFyZSB1c2VkLg0KPj4+Pg0KPj4+PiBUaGUgZXhpc3RpbmcgU1BJIGJlaGF2aW9yIHJl
bWFpbnMgdW5hZmZlY3RlZCB3aGVuIGd1ZXN0cyBkbyBub3QgcmVxdWVzdA0KPj4+PiBlU1BJcywg
R0lDIGhhcmR3YXJlIGRvZXMgbm90IHN1cHBvcnQgdGhlbSwgb3IgdGhlIENPTkZJR19HSUNWM19F
U1BJDQo+Pj4+IG9wdGlvbiBpcyBkaXNhYmxlZC4NCj4+Pj4NCj4+Pj4gU2lnbmVkLW9mZi1ieTog
TGVvbmlkIEtvbWFyaWFuc2t5aSA8bGVvbmlkX2tvbWFyaWFuc2t5aUBlcGFtLmNvbT4NCj4+Pj4N
Cj4+Pj4gLS0tDQo+Pj4+IENoYW5nZXMgaW4gVjQ6DQo+Pj4+IC0gYWRkZWQgaGFzX2VzcGkgZmll
bGQgdG8gc2ltcGxpZnkgZGV0ZXJtaW5pbmcgd2hldGhlciBhIGRvbWFpbiBpcyBhYmxlDQo+Pj4+
IMKgwqDCoCB0byBvcGVyYXRlIHdpdGggZVNQSQ0KPj4+PiAtIGZpeGVkIGZvcm1hdHRpbmcgaXNz
dWVzIGFuZCBtaXNzcGVsbGluZ3MNCj4+Pj4NCj4+Pj4gQ2hhbmdlcyBpbiBWMzoNCj4+Pj4gLSBm
aXhlZCBmb3JtYXR0aW5nIGZvciBsaW5lcyB3aXRoIG1vcmUgdGhhbiA4MCBzeW1ib2xzDQo+Pj4+
IC0gaW50cm9kdWNlZCBoZWxwZXIgZnVuY3Rpb25zIHRvIGJlIGFibGUgdG8gdXNlIHN0dWJzIGlu
IGNhc2Ugb2YNCj4+Pj4gwqDCoMKgIENPTkZJR19HSUNWM19FU1BJIGRpc2FibGVkLCBhbmQgYXMg
YSByZXN1bHQsIHJlZHVjZSB0aGUgbnVtYmVyIG9mDQo+Pj4+IMKgwqDCoCAjaWZkZWZzDQo+Pj4+
IC0gZml4ZWQgY2hlY2tzIGZvciBucl9zcGlzIGluIGRvbWFpbl92Z2ljX2luaXQNCj4+Pj4gLSB1
cGRhdGVkIGNvbW1lbnQgYWJvdXQgbnJfc3BpcyBhZGp1c3RtZW50cyB3aXRoIGRvbTBsZXNzIG1l
bnRpb24NCj4+Pj4gLSBtb3ZlZCBjb21tZW50IHdpdGggYWRkaXRpb25hbCBleHBsYW5hdGlvbnMg
YmVmb3JlIGNoZWNrcw0KPj4+PiAtIHVzZWQgdW5zaWduZWQgaW50IGZvciBpbmRleGVzIHNpbmNl
IHRoZXkgY2Fubm90IGJlIG5lZ2F0aXZlDQo+Pj4+IC0gcmVtb3ZlZCB1bm5lY2Vzc2FyeSBwYXJl
bnRoZXNlcw0KPj4+PiAtIG1vdmUgdmdpY19leHRfcmFua19vZmZzZXQgdG8gdGhlIGJlbG93IGlm
ZGVmIGd1YXJkLCB0byByZWR1Y2UgdGhlDQo+Pj4+IMKgwqDCoCBudW1iZXIgb2YgaWZkZWZzDQo+
Pj4+DQo+Pj4+IENoYW5nZXMgaW4gVjI6DQo+Pj4+IC0gY2hhbmdlIGlzX2VzcGlfcmFuayB0byBp
c192YWxpZF9lc3BpX3JhbmsgdG8gdmVyaWZ5IHdoZXRoZXIgdGhlIGFycmF5DQo+Pj4+IMKgwqDC
oCBlbGVtZW50IGV4dF9zaGFyZWRfaXJxcyBleGlzdHMuIFRoZSBwcmV2aW91cyB2ZXJzaW9uLCBp
c19lc3BpX3JhbmssDQo+Pj4+IMKgwqDCoCBvbmx5IGNoZWNrZWQgaWYgdGhlIHJhbmsgaW5kZXgg
d2FzIGxlc3MgdGhhbiB0aGUgbWF4aW11bSANCj4+Pj4gcG9zc2libGUgZVNQSQ0KPj4+PiDCoMKg
wqAgcmFuayBpbmRleCwgYnV0IHRoaXMgY291bGQgcG90ZW50aWFsbHkgcmVzdWx0IGluIGFjY2Vz
c2luZyBhDQo+Pj4+IMKgwqDCoCBub24tZXhpc3RpbmcgYXJyYXkgZWxlbWVudC4gVG8gYWRkcmVz
cyB0aGlzLCBpc192YWxpZF9lc3BpX3Jhbmsgd2FzDQo+Pj4+IMKgwqDCoCBpbnRyb2R1Y2VkLCB3
aGljaCBlbnN1cmVzIHRoYXQgdGhlIHJlcXVpcmVkIGVTUEkgcmFuayBleGlzdHMNCj4+Pj4gLSBt
b3ZlIGdpY19udW1iZXJfZXNwaXMgdG8NCj4+Pj4gwqDCoMKgIHhlbi9hcm06IGdpY3YzOiBpbXBs
ZW1lbnQgaGFuZGxpbmcgb2YgR0lDdjMuMSBlU1BJDQo+Pj4+IC0gdXBkYXRlIHZnaWNfaXNfdmFs
aWRfaXJxIGNoZWNrcyB0byBhbGxvdyBvcGVyYXRpbmcgd2l0aCBlU1BJcw0KPj4+PiAtIHJlbW92
ZSByZWR1bmRhbnQgbmV3bGluZSBpbiB2Z2ljX2FsbG9jYXRlX3ZpcnENCj4+Pj4gLS0tDQo+Pj4+
IMKgwqAgeGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3ZnaWMuaCB8wqAgMjAgKysrDQo+Pj4+IMKg
wqAgeGVuL2FyY2gvYXJtL3ZnaWMuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IDIxMyArKysr
KysrKysrKysrKysrKysrKysrKysrKysgDQo+Pj4+ICsrKystDQo+Pj4+IMKgwqAgMiBmaWxlcyBj
aGFuZ2VkLCAyMzAgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkNCj4+Pj4NCj4+Pj4gZGlm
ZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS92Z2ljLmggYi94ZW4vYXJjaC9hcm0v
aW5jbHVkZS8NCj4+Pj4gYXNtL3ZnaWMuaA0KPj4+PiBpbmRleCAzZTdjYmJiMTk2Li5mYjRjZWE3
M2ViIDEwMDY0NA0KPj4+PiAtLS0gYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vdmdpYy5oDQo+
Pj4+ICsrKyBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS92Z2ljLmgNCj4+Pj4gQEAgLTE0Niw2
ICsxNDYsMTIgQEAgc3RydWN0IHZnaWNfZGlzdCB7DQo+Pj4+IMKgwqDCoMKgwqDCoCBpbnQgbnJf
c3BpczsgLyogTnVtYmVyIG9mIFNQSXMgKi8NCj4+Pj4gwqDCoMKgwqDCoMKgIHVuc2lnbmVkIGxv
bmcgKmFsbG9jYXRlZF9pcnFzOyAvKiBiaXRtYXAgb2YgSVJRcyBhbGxvY2F0ZWQgKi8NCj4+Pj4g
wqDCoMKgwqDCoMKgIHN0cnVjdCB2Z2ljX2lycV9yYW5rICpzaGFyZWRfaXJxczsNCj4+Pj4gKyNp
ZmRlZiBDT05GSUdfR0lDVjNfRVNQSQ0KPj4+PiArwqDCoMKgIHN0cnVjdCB2Z2ljX2lycV9yYW5r
ICpleHRfc2hhcmVkX2lycXM7DQo+Pj4+ICvCoMKgwqAgaW50IG5yX2VzcGlzOyAvKiBOdW1iZXIg
b2YgZXh0ZW5kZWQgU1BJcyAqLw0KPj4+DQo+Pj4gQ2FuIG5yX2VzcGlzIGJlIG5lZ2F0aXZlPw0K
Pj4+DQo+Pg0KPj4gTm8sIGl0IGNhbm5vdCwgc28gSSB3aWxsIGNoYW5nZSBpdCB0byB1bnNpZ25l
ZCBpbnQgaW4gVjUuDQo+Pg0KPj4+PiArwqDCoMKgIC8qIFRvIHNpbXBsaWZ5IGRldGVybWluaW5n
IHdoZXRoZXIgYSBkb21haW4gaXMgYWJsZSB0byBvcGVyYXRlDQo+Pj4+IHdpdGggZVNQSSAqLw0K
Pj4+PiArwqDCoMKgIGJvb2wgaGFzX2VzcGk7DQo+Pj4NCj4+PiBJIGFncmVlIHdpdGggdGhlIFZv
bG9keW15cidzIGNvbW1lbnQgcHJvdmlkZWQgaW4gc2VwYXJhdGUgbGV0dGVyIHRoYXQgd2UNCj4+
PiBjb3VsZCBhdm9pZCBhZGRpbmcgYW4gZXh0cmEgdmFyLg0KPj4+DQo+Pg0KPj4gU3VyZSwgYXMg
SSBtZW50aW9uZWQgdG8gVm9sb2R5bXlyLCBJIHdpbGwgcmVtb3ZlIGl0IGluIFY1Lg0KPj4NCj4+
Pj4gKyNlbmRpZg0KPj4+PiDCoMKgwqDCoMKgwqAgLyoNCj4+Pj4gwqDCoMKgwqDCoMKgwqAgKiBT
UElzIGFyZSBkb21haW4gZ2xvYmFsLCBTR0lzIGFuZCBQUElzIGFyZSBwZXItVkNQVSBhbmQgDQo+
Pj4+IHN0b3JlZCBpbg0KPj4+PiDCoMKgwqDCoMKgwqDCoCAqIHN0cnVjdCBhcmNoX3ZjcHUuDQo+
Pj4+IEBAIC0yNDMsNiArMjQ5LDE0IEBAIHN0cnVjdCB2Z2ljX29wcyB7DQo+Pj4+IMKgwqAgLyog
TnVtYmVyIG9mIHJhbmtzIG9mIGludGVycnVwdCByZWdpc3RlcnMgZm9yIGEgZG9tYWluICovDQo+
Pj4+IMKgwqAgI2RlZmluZSBET01BSU5fTlJfUkFOS1MoZCkgKCgoZCktPmFyY2gudmdpYy5ucl9z
cGlzKzMxKS8zMikNCj4+Pj4gKyNpZmRlZiBDT05GSUdfR0lDVjNfRVNQSQ0KPj4+PiArI2RlZmlu
ZSBET01BSU5fTlJfRVhUX1JBTktTKGQpICgoKGQpLT5hcmNoLnZnaWMubnJfZXNwaXMrMzEpLzMy
KQ0KPj4+PiArI2RlZmluZSBFWFRfUkFOS19NSU4gKEVTUElfQkFTRV9JTlRJRC8zMikNCj4+Pj4g
KyNkZWZpbmUgRVhUX1JBTktfTUFYICgoRVNQSV9NQVhfSU5USUQrMzEpLzMyKQ0KPj4+PiArI2Rl
ZmluZSBFWFRfUkFOS19OVU0ySURYKG51bSkgKChudW0pLUVYVF9SQU5LX01JTikNCj4+Pj4gKyNk
ZWZpbmUgRVhUX1JBTktfSURYMk5VTShpZHgpICgoaWR4KStFWFRfUkFOS19NSU4pDQo+Pj4+ICsj
ZW5kaWYNCj4+Pj4gKw0KPj4+PiDCoMKgICNkZWZpbmUgdmdpY19sb2NrKHYpwqDCoCBzcGluX2xv
Y2tfaXJxKCYodiktPmRvbWFpbi0+YXJjaC52Z2ljLmxvY2spDQo+Pj4+IMKgwqAgI2RlZmluZSB2
Z2ljX3VubG9jayh2KSBzcGluX3VubG9ja19pcnEoJih2KS0+ZG9tYWluLT5hcmNoLnZnaWMubG9j
aykNCj4+Pj4gQEAgLTMwMiw2ICszMTYsMTIgQEAgZXh0ZXJuIHN0cnVjdCB2Z2ljX2lycV9yYW5r
DQo+Pj4+ICp2Z2ljX3Jhbmtfb2Zmc2V0KHN0cnVjdCB2Y3B1ICp2LA0KPj4+PiDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdW5zaWduZWQgaW50IGIsDQo+Pj4+IMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1bnNpZ25lZCBpbnQgbiwNCj4+Pj4g
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVuc2lnbmVkIGludCBzKTsN
Cj4+Pj4gKyNpZmRlZiBDT05GSUdfR0lDVjNfRVNQSQ0KPj4+PiArZXh0ZXJuIHN0cnVjdCB2Z2lj
X2lycV9yYW5rICp2Z2ljX2V4dF9yYW5rX29mZnNldChzdHJ1Y3QgdmNwdSAqdiwNCj4+Pj4gK8Kg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVuc2lnbmVkIGludCBiLA0K
Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdW5zaWduZWQg
aW50IG4sDQo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1
bnNpZ25lZCBpbnQgcyk7DQo+Pj4+ICsjZW5kaWYNCj4+Pj4gwqDCoCBleHRlcm4gc3RydWN0IHZn
aWNfaXJxX3JhbmsgKnZnaWNfcmFua19pcnEoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkDQo+Pj4+
IGludCBpcnEpOw0KPj4+PiDCoMKgIGV4dGVybiB2b2lkIHZnaWNfZGlzYWJsZV9pcnFzKHN0cnVj
dCB2Y3B1ICp2LCB1aW50MzJfdCByLCB1bnNpZ25lZA0KPj4+PiBpbnQgbik7DQo+Pj4+IMKgwqAg
ZXh0ZXJuIHZvaWQgdmdpY19lbmFibGVfaXJxcyhzdHJ1Y3QgdmNwdSAqdiwgdWludDMyX3Qgciwg
dW5zaWduZWQNCj4+Pj4gaW50IG4pOw0KPj4+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3Zn
aWMuYyBiL3hlbi9hcmNoL2FybS92Z2ljLmMNCj4+Pj4gaW5kZXggMmJiZjRkOTlhYS4uZjRiODBj
YjA1ZiAxMDA2NDQNCj4+Pj4gLS0tIGEveGVuL2FyY2gvYXJtL3ZnaWMuYw0KPj4+PiArKysgYi94
ZW4vYXJjaC9hcm0vdmdpYy5jDQo+Pj4+IEBAIC0yNyw5ICsyNyw4MiBAQA0KPj4+PiDCoMKgIGJv
b2wgdmdpY19pc192YWxpZF9saW5lKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCB2aXJx
KQ0KPj4+PiDCoMKgIHsNCj4+Pj4gKyNpZmRlZiBDT05GSUdfR0lDVjNfRVNQSQ0KPj4+PiArwqDC
oMKgIGlmICggdmlycSA+PSBFU1BJX0JBU0VfSU5USUQgJiYNCj4+Pj4gK8KgwqDCoMKgwqDCoMKg
wqAgdmlycSA8IEVTUElfSURYMklOVElEKGQtPmFyY2gudmdpYy5ucl9lc3BpcykgKQ0KPj4+PiAr
wqDCoMKgwqDCoMKgwqAgcmV0dXJuIHRydWU7DQo+Pj4+ICsjZW5kaWYNCj4+Pj4gKw0KPj4+PiDC
oMKgwqDCoMKgwqAgcmV0dXJuIHZpcnEgPCB2Z2ljX251bV9pcnFzKGQpOw0KPj4+PiDCoMKgIH0N
Cj4+Pj4gKyNpZmRlZiBDT05GSUdfR0lDVjNfRVNQSQ0KPj4+PiArLyoNCj4+Pj4gKyAqIFNpbmNl
IGVTUEkgaW5kZXhlcyBzdGFydCBmcm9tIDQwOTYgYW5kIG51bWJlcnMgZnJvbSAxMDI0IHRvDQo+
Pj4+ICsgKiA0MDk1IGFyZSBmb3JiaWRkZW4sIHdlIG5lZWQgdG8gY2hlY2sgYm90aCBsb3dlciBh
bmQgdXBwZXINCj4+Pj4gKyAqIGxpbWl0cyBmb3IgcmFua3MuDQo+Pj4+ICsgKi8NCj4+Pj4gK3N0
YXRpYyBpbmxpbmUgYm9vbCBpc192YWxpZF9lc3BpX3Jhbmsoc3RydWN0IGRvbWFpbiAqZCwgdW5z
aWduZWQgaW50DQo+Pj4+IHJhbmspDQo+Pj4+ICt7DQo+Pj4+ICvCoMKgwqAgcmV0dXJuIHJhbmsg
Pj0gRVhUX1JBTktfTUlOICYmDQo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCBFWFRfUkFOS19O
VU0ySURYKHJhbmspIDwgRE9NQUlOX05SX0VYVF9SQU5LUyhkKTsNCj4+Pj4gK30NCj4+Pj4gKw0K
Pj4+PiArc3RhdGljIGlubGluZSBzdHJ1Y3QgdmdpY19pcnFfcmFuayAqdmdpY19nZXRfZXNwaV9y
YW5rKHN0cnVjdCB2Y3B1ICp2LA0KPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVuc2lnbmVkIGludA0KPj4+PiByYW5rKQ0KPj4+PiArew0K
Pj4+PiArwqDCoMKgIHJldHVybiAmdi0+ZG9tYWluLQ0KPj4+Pj4gYXJjaC52Z2ljLmV4dF9zaGFy
ZWRfaXJxc1tFWFRfUkFOS19OVU0ySURYKHJhbmspXTsNCj4+Pj4gK30NCj4+Pj4gKw0KPj4+PiAr
c3RhdGljIGlubGluZSBib29sIHZnaWNfcmVzZXJ2ZV9lc3BpX3ZpcnEoc3RydWN0IGRvbWFpbiAq
ZCwgdW5zaWduZWQNCj4+Pj4gaW50IHZpcnEpDQo+Pj4+ICt7DQo+Pj4+ICvCoMKgwqAgcmV0dXJu
ICF0ZXN0X2FuZF9zZXRfYml0KEVTUElfSU5USUQySURYKHZpcnEpICsgdmdpY19udW1faXJxcyhk
KSwNCj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgIGQtPmFyY2gudmdpYy5hbGxvY2F0ZWRfaXJxcyk7DQo+Pj4+ICt9DQo+Pj4+ICsN
Cj4+Pj4gK3N0YXRpYyB2b2lkIGFyY2hfbW92ZV9lc3BpcyhzdHJ1Y3QgdmNwdSAqdikNCj4+Pj4g
K3sNCj4+Pj4gK8KgwqDCoCBjb25zdCBjcHVtYXNrX3QgKmNwdV9tYXNrID0gY3B1bWFza19vZih2
LT5wcm9jZXNzb3IpOw0KPj4+PiArwqDCoMKgIHN0cnVjdCBkb21haW4gKmQgPSB2LT5kb21haW47
DQo+Pj4+ICvCoMKgwqAgc3RydWN0IHBlbmRpbmdfaXJxICpwOw0KPj4+PiArwqDCoMKgIHN0cnVj
dCB2Y3B1ICp2X3RhcmdldDsNCj4+Pj4gK8KgwqDCoCB1bnNpZ25lZCBpbnQgaTsNCj4+Pj4gKw0K
Pj4+PiArwqDCoMKgIGZvciAoIGkgPSBFU1BJX0JBU0VfSU5USUQ7DQo+Pj4+ICvCoMKgwqDCoMKg
wqDCoMKgwqAgaSA8IEVYVF9SQU5LX0lEWDJOVU0oZC0+YXJjaC52Z2ljLm5yX2VzcGlzKTsgaSsr
ICkNCj4+Pj4gK8KgwqDCoCB7DQo+Pj4+ICvCoMKgwqDCoMKgwqDCoCB2X3RhcmdldCA9IHZnaWNf
Z2V0X3RhcmdldF92Y3B1KHYsIGkpOw0KPj4+PiArwqDCoMKgwqDCoMKgwqAgcCA9IGlycV90b19w
ZW5kaW5nKHZfdGFyZ2V0LCBpKTsNCj4+Pj4gKw0KPj4+PiArwqDCoMKgwqDCoMKgwqAgaWYgKCB2
X3RhcmdldCA9PSB2ICYmICF0ZXN0X2JpdChHSUNfSVJRX0dVRVNUX01JR1JBVElORywgJnAtDQo+
Pj4+PiBzdGF0dXMpICkNCj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaXJxX3NldF9hZmZp
bml0eShwLT5kZXNjLCBjcHVfbWFzayk7DQo+Pj4+ICvCoMKgwqAgfQ0KPj4+PiArfQ0KPj4+PiAr
I2Vsc2UNCj4+Pj4gK3N0YXRpYyBpbmxpbmUgYm9vbCBpc192YWxpZF9lc3BpX3Jhbmsoc3RydWN0
IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50DQo+Pj4+IHJhbmspDQo+Pj4+ICt7DQo+Pj4+ICvCoMKg
wqAgcmV0dXJuIGZhbHNlOw0KPj4+PiArfQ0KPj4+PiArDQo+Pj4+ICsvKg0KPj4+PiArICogVGhp
cyBmdW5jdGlvbiBpcyBzdHViIGFuZCB3aWxsIG5vdCBiZSBjYWxsZWQgaWYgDQo+Pj4+IENPTkZJ
R19HSUNWM19FU1BJPW4sDQo+Pj4+ICsgKiBiZWNhdXNlIGluIHRoaXMgY2FzZSwgaXNfdmFsaWRf
ZXNwaV9yYW5rIHdpbGwgYWx3YXlzIHJldHVybiBmYWxzZS4NCj4+Pj4gKyAqLw0KPj4+PiArc3Rh
dGljIGlubGluZSBzdHJ1Y3QgdmdpY19pcnFfcmFuayAqdmdpY19nZXRfZXNwaV9yYW5rKHN0cnVj
dCB2Y3B1ICp2LA0KPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgIHVuc2lnbmVkIGludA0KPj4+PiByYW5rKQ0KPj4+PiArew0KPj4+PiArwqDC
oMKgIEFTU0VSVF9VTlJFQUNIQUJMRSgpOw0KPj4+PiArwqDCoMKgIHJldHVybiBOVUxMOw0KPj4+
PiArfQ0KPj4+PiArDQo+Pj4+ICtzdGF0aWMgaW5saW5lIGJvb2wgdmdpY19yZXNlcnZlX2VzcGlf
dmlycShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZA0KPj4+PiBpbnQgdmlycSkNCj4+Pj4gK3sN
Cj4+Pj4gK8KgwqDCoCByZXR1cm4gZmFsc2U7DQo+Pj4+ICt9DQo+Pj4+ICsNCj4+Pj4gK3N0YXRp
YyB2b2lkIGFyY2hfbW92ZV9lc3BpcyhzdHJ1Y3QgdmNwdSAqdikgeyB9DQo+Pj4+ICsjZW5kaWYN
Cj4+Pj4gKw0KPj4+PiDCoMKgIHN0YXRpYyBpbmxpbmUgc3RydWN0IHZnaWNfaXJxX3JhbmsgKnZn
aWNfZ2V0X3Jhbmsoc3RydWN0IHZjcHUgKnYsDQo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVuc2lnbmVkIGludCByYW5rKQ0KPj4+PiDCoMKgIHsN
Cj4+Pj4gQEAgLTM3LDYgKzExMCw4IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHZnaWNfaXJxX3Jh
bmsNCj4+Pj4gKnZnaWNfZ2V0X3Jhbmsoc3RydWN0IHZjcHUgKnYsDQo+Pj4+IMKgwqDCoMKgwqDC
oMKgwqDCoMKgIHJldHVybiB2LT5hcmNoLnZnaWMucHJpdmF0ZV9pcnFzOw0KPj4+PiDCoMKgwqDC
oMKgwqAgZWxzZSBpZiAoIHJhbmsgPD0gRE9NQUlOX05SX1JBTktTKHYtPmRvbWFpbikgKQ0KPj4+
PiDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gJnYtPmRvbWFpbi0+YXJjaC52Z2ljLnNoYXJl
ZF9pcnFzW3JhbmsgLSAxXTsNCj4+Pj4gK8KgwqDCoCBlbHNlIGlmICggaXNfdmFsaWRfZXNwaV9y
YW5rKHYtPmRvbWFpbiwgcmFuaykgKQ0KPj4+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIHZnaWNf
Z2V0X2VzcGlfcmFuayh2LCByYW5rKTsNCj4+Pj4gwqDCoMKgwqDCoMKgIGVsc2UNCj4+Pj4gwqDC
oMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIE5VTEw7DQo+Pj4+IMKgwqAgfQ0KPj4+PiBAQCAtMTE3
LDYgKzE5Miw3NCBAQCBpbnQgZG9tYWluX3ZnaWNfcmVnaXN0ZXIoc3RydWN0IGRvbWFpbiAqZCwN
Cj4+Pj4gdW5zaWduZWQgaW50ICptbWlvX2NvdW50KQ0KPj4+PiDCoMKgwqDCoMKgwqAgcmV0dXJu
IDA7DQo+Pj4+IMKgwqAgfQ0KPj4+PiArI2lmZGVmIENPTkZJR19HSUNWM19FU1BJDQo+Pj4+ICsv
Kg0KPj4+PiArICogVGhlIGZ1bmN0aW9uIGJlaGF2aW9yIGlzIHRoZSBzYW1lIGFzIGZvciByZWd1
bGFyIFNQSXMNCj4+Pj4gKHZnaWNfcmFua19vZmZzZXQpLA0KPj4+PiArICogYnV0IGl0IG9wZXJh
dGVzIHdpdGggZXh0ZW5kZWQgU1BJIHJhbmtzLg0KPj4+PiArICovDQo+Pj4+ICtzdHJ1Y3Qgdmdp
Y19pcnFfcmFuayAqdmdpY19leHRfcmFua19vZmZzZXQoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVk
DQo+Pj4+IGludCBiLA0KPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVuc2lnbmVk
IGludCBuLCB1bnNpZ25lZA0KPj4+PiBpbnQgcykNCj4+Pj4gK3sNCj4+Pj4gK8KgwqDCoCB1bnNp
Z25lZCBpbnQgcmFuayA9IFJFR19SQU5LX05SKGIsIChuID4+IHMpKTsNCj4+Pj4gKw0KPj4+PiAr
wqDCoMKgIHJldHVybiB2Z2ljX2dldF9yYW5rKHYsIHJhbmsgKyBFWFRfUkFOS19NSU4pOw0KPj4+
PiArfQ0KPj4+DQo+Pj4gU28gdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB2Z2ljX3Jhbmtfb2Zmc2V0
KCkgYW5kIHZnaWNfZXh0X3Jhbmtfb2Zmc2V0KCkNCj4+PiBpbiB1c2luZyBFWFRfUkFOS19NSU4g
aW4gdGhlIGxhdHRlci4gSSBhbSB3b25kZXJpbmcsIHdoZXRoZXIgaXQgbWFrZXMNCj4+PiBzZW5z
ZSB0byByZXVzZSB0aGUgZXhpc3RpbmcgdmdpY19yYW5rX29mZnNldCgpIGJ5IG1vdmluZyAjaWZk
ZWYgaW50byBpdD8NCj4+PiBNYXliZSBpdCB3b3VsZCBiZSBwb3NzaWJsZSB0byBvcHRpbWl6ZSBz
b21lIGNvZGUgYWRkZWQgaW4gIltQQVRDSCB2NA0KPj4+IDEwLzEyXSB4ZW4vYXJtOiB2Z2ljLXYz
OiBhZGQgZW11bGF0aW9uIG9mIEdJQ3YzLjEgZVNQSSByZWdpc3RlcnMiLg0KPj4+DQo+Pj4gZS5n
LiBfX3ZnaWNfdjNfZGlzdHJfY29tbW9uX21taW9fcmVhZDoNCj4+Pg0KPj4+IENvZGUgZm9yIHRo
ZSBmb2xsb3dpbmcgY2FzZXMgbG9va3MgdmVyeSBzaW1pbGFyIHRvIHRoZSByZWd1bGFyDQo+Pj4g
Y291bnRlcnBhcnRzLg0KPj4+IGNhc2UgVlJBTkdFMzIoR0lDRF9JU0VOQUJMRVJuRSwgR0lDRF9J
U0VOQUJMRVJuRU4pOg0KPj4+IGNhc2UgVlJBTkdFMzIoR0lDRF9JQ0VOQUJMRVJuRSwgR0lDRF9J
Q0VOQUJMRVJuRU4pOg0KPj4+IGNhc2UgVlJBTkdFMzIoR0lDRF9JUFJJT1JJVFlSbkUsIEdJQ0Rf
SVBSSU9SSVRZUm5FTik6DQo+Pj4gY2FzZSBWUkFOR0UzMihHSUNEX0lDRkdSbkUsIEdJQ0RfSUNG
R1JuRU4pOg0KPj4+IGNhc2UgVlJBTkdFMzIoR0lDRF9JUFJJT1JJVFlSbkUsIEdJQ0RfSVBSSU9S
SVRZUm5FTik6DQo+Pj4NCj4+PiBUaGUgZGlmZmVyZW5jZSBpcyBpbiB0aGUgc2FpZCBoZWxwZXIg
YW5kIHRoZSBiYXNlIGNhbGN1bGF0ZWQgYXMNCj4+PiAicmVnIC0gR0lDRF9YWFgiLCB3aGVyZSBH
SUNEX1hYWCBpcyB0aGUgc3RhcnQgb2YgdGhlIHJhbmdlIGZvciB0aGUgZVNQSS0NCj4+PiBiYXNl
ZCByZWcgKGUuZy4gR0lDRF9JUFJJT1JJVFlSbkUpIG9yIHJlZ3VsYXIgU1BJLWJhc2VkIHJlZw0K
Pj4+IChlLmcuR0lDRF9JUFJJT1JJVFlSKS4gVGhlIEdJQ0RfWFhYIGNvdWxkIHByb2JhYmx5IGJl
IGNob3Nlbg0KPj4+IGJhc2VkIG9uIHRoZSAicmVnIiB2YWx1ZSBpdHNlbGYsIGZvciBleGFtcGxl
Og0KPj4+DQo+Pj4gcmFuayA9IHZnaWNfcmFua19vZmZzZXQodiwgOCwgcmVnID49IEdJQ0RfSVBS
SU9SSVRZUm5FID8gcmVnIC0NCj4+PiBHSUNEX0lQUklPUklUWVJuRSA6IHJlZyAtIEdJQ0RfSVBS
SU9SSVRZUiwgREFCVF9XT1JEKTsNCj4+Pg0KPj4+IFBsZWFzZSBub3RlLCBJIGFtIG5vdCByZXF1
ZXN0aW5nIGZvciBhbnkgdXBkYXRlcyByZWdhcmRpbmcgdG8gdGhhdCwgSSBhbQ0KPj4+IGp1c3Qg
dGhpbmtpbmcgb3V0IGxvdWQuDQo+Pj4NCj4+DQo+PiBGaXJzdCBvZiBhbGwsIEkgaGF2ZSB0byBz
YXkgdGhhdCBJIHJlYWxseSB0cmllZCB0byByZXVzZSB0aGUgZXhpc3RpbmcNCj4+IGNvZGUgZm9y
IHJlZ3VsYXIgU1BJcyB3aGVuZXZlciBwb3NzaWJsZSwgYnV0IEkgY291bGQgbm90IGNvbWUgdXAg
d2l0aA0KPj4gc29tZXRoaW5nIGJldHRlciB0aGFuIGludHJvZHVjaW5nIGEgbmV3IGZ1bmN0aW9u
IGZvciBlU1BJIHJhbmtzIGluIHRoaXMNCj4+IGNhc2UuIFRoaXMgaXMgZHVlIHRvIHNldmVyYWwg
cmVhc29uczoNCj4+IDEpIEN1cnJlbnRseSwgYWxsIGVTUEktc3BlY2lmaWMgb2Zmc2V0cyBhcmUg
cGxhY2VkIHVuZGVyICNpZmRlZiB0byBhdm9pZA0KPj4gb3IgYXQgbGVhc3QgcmVkdWNlIHRoZSBp
bnRyb2R1Y3Rpb24gb2YgZGVhZCBjb2RlIG9yIGRlZmluZXMgdGhhdCB3aWxsDQo+PiBub3QgYmUg
dXNlZC4gVGhpcyB3YXMgcmVxdWVzdGVkIGJ5IG91ciB0ZWFtbWF0ZXMgd2hvIGFyZSBlbmdhZ2Vk
IGluDQo+PiBNSVNSQSBmaXhlcy4gVGhlcmVmb3JlLCB0aGlzIGlzIHRoZSBmaXJzdCByZWFzb24g
d2h5IGVTUEktc3BlY2lmaWMNCj4+IGVsZW1lbnRzIGFyZSBwbGFjZWQgdW5kZXIgdGhlIGFwcHJv
cHJpYXRlIGNvbmZpZ3VyYXRpb24uIFdpdGhvdXQNCj4+IENPTkZJR19HSUNWM19FU1BJLCB3ZSBj
YW5ub3QgdXNlIHRoZXNlIG9mZnNldHMuDQo+Pg0KPj4gMikgVGhlIHByb3Bvc2VkIHNvbHV0aW9u
Og0KPj4gwqAgPiByYW5rID0gdmdpY19yYW5rX29mZnNldCh2LCA4LCByZWcgPj0gR0lDRF9JUFJJ
T1JJVFlSbkUgPyByZWcgLQ0KPj4gwqAgPiBHSUNEX0lQUklPUklUWVJuRSA6IHJlZyAtIEdJQ0Rf
SVBSSU9SSVRZUiwgREFCVF9XT1JEKTsNCj4+DQo+PiB3aWxsIG5vdCB3b3JrLCB1bmZvcnR1bmF0
ZWx5LCBiZWNhdXNlIGluIHRoaXMgY2FzZSwgdmdpY19yYW5rX29mZnNldA0KPj4gd2lsbCBhbHdh
eXMgcmV0dXJuIHJhbmtzIGZvciByZWd1bGFyIFNQSXMuDQo+Pg0KPj4gTG9uZyBzdG9yeSBzaG9y
dDogd2Ugd2lsbCBlbmNvdW50ZXIgaXNzdWVzIGRldGVybWluaW5nIHdoZXRoZXIgdG8gdXNlDQo+
PiBzaGFyZWRfaXJxcyAoZm9yIHJlZ3VsYXIgU1BJcykgb3IgZXh0X3NoYXJlZF9pcnFzIChmb3Ig
ZVNQSXMpLg0KPj4NCj4+IEFuZCBoZXJlIGFyZSB0aGUgZGV0YWlscyBhYm91dCB3aHkgdGhpcyB3
aWxsIG5vdCB3b3JrOg0KPj4NCj4+IEluIHRoZSBjYXNlIG9mIHJlY2VpdmluZyBhbiBvZmZzZXQg
Zm9yIGEgcmVndWxhciBTUEksIGUuZy4sIDB4NjIwMA0KPj4gKEdJQ0RfSVJPVVRFUiByYW5nZSBb
MHg2MTAwLTB4N0ZEOF0pLCB3ZSB3aWxsIGdldCByYW5rID0gMiBmb3IgcmVndWxhciANCj4+IFNQ
SXM6DQo+PiB2Z2ljX3Jhbmtfb2Zmc2V0KHYsIDY0LCAweDYyMDAtMHg2MDAwLCBEQUJUX0RPVUJM
RV9XT1JEKSAtPg0KPj4gREFCVF9ET1VCTEVfV09SRCA9IDMNCj4+DQo+PiBUaHVzOg0KPj4gcmFu
ayA9IFJFR19SQU5LX05SKDY0LCAoMHgyMDAgPj4gMykgLT4NCj4+IFJFR19SQU5LX05SIHdpbGwg
cmV0dXJuIGluIHRoaXMgY2FzZToNCj4+IDB4MjAwID4+IDMgPj4gNSA9IDINCj4+DQo+PiBPbiB0
aGUgb3RoZXIgaGFuZCwgaWYgd2UgcmVjZWl2ZSBhbiBvZmZzZXQgZm9yIGFuIGVTUEksIGUuZy4s
IDB4ODIwMA0KPj4gKEdJQ0RfSVJPVVRFUm5FIHJhbmdlIFsweDgwMDAtMHg5RkZDXSksIHdlIHdp
bGwgZ2V0IHRoZSBzYW1lIHJhbmsgPSAyDQo+PiB3aGVuIHVzaW5nIHRoZSBwcm9wb3NlZCBzb2x1
dGlvbjoNCj4+IHZnaWNfcmFua19vZmZzZXQodiwgNjQsIDB4ODIwMC0weDgwMDAsIERBQlRfRE9V
QkxFX1dPUkQpIC0+DQo+PiBEQUJUX0RPVUJMRV9XT1JEID0gMw0KPj4NCj4+IHJhbmsgPSBSRUdf
UkFOS19OUig2NCwgKDB4MjAwID4+IDMpIC0+DQo+PiBSRUdfUkFOS19OUiB3aWxsIHJldHVybiBh
bHNvOg0KPj4gMHgyMDAgPj4gMyA+PiA1ID0gMg0KPj4NCj4+IEFzIGEgcmVzdWx0LCBpbiBib3Ro
IGNhc2VzLCB2Z2ljX2dldF9yYW5rKHYsIDIpIHdpbGwgcmV0dXJuIHRoZSByYW5rIGZvcg0KPj4g
cmVndWxhciBTUElzOg0KPj4NCj4+IC8qIFRoaXMgY29uZGl0aW9uIHdpbGwgYXBwbHkgYmVjYXVz
ZSByYW5rIHdpbGwgYmUgbGVzcyB0aGFuIDMyICovDQo+PiBlbHNlIGlmICggcmFuayA8PSBET01B
SU5fTlJfUkFOS1Modi0+ZG9tYWluKSApDQo+PiDCoMKgwqDCoMKgIHJldHVybiAmdi0+ZG9tYWlu
LT5hcmNoLnZnaWMuc2hhcmVkX2lycXNbcmFuayAtIDFdOw0KPj4NCj4+IFRoZXJlZm9yZSwgSSBk
ZWNpZGVkIHRvIGNyZWF0ZSBhIHNlcGFyYXRlIGZ1bmN0aW9uIHRvIHByb3Blcmx5IHRyYW5zZm9y
bQ0KPj4gcmFua3MgaW50byB0aGUgY29ycmVjdCByYW5nZS4NCj4+DQo+PiBBbmQsIHVuZm9ydHVu
YXRlbHksIHdlIGNhbm5vdCByZXNvbHZlIHRoZSBzZWNvbmQgaXNzdWUgd2l0aCAjaWZkZWZzDQo+
PiBpbnNpZGUgdmdpY19yYW5rX29mZnNldCwgYmVjYXVzZSB0aGlzIGZ1bmN0aW9uIHdpbGwgcmVj
ZWl2ZSB0aGUgc2FtZQ0KPj4gcGFyYW1ldGVycyBmb3IgU1BJcy9lU1BJcyBhbmQgd2Ugd291bGQg
bm90IGJlIGFibGUgdG8gZGV0ZXJtaW5lIHdoZXRoZXINCj4+IHdlIHNob3VsZCByZXR1cm4gc2hh
cmVkX2lycXMgb3IgZXh0X3NoYXJlZF9pcnFzLg0KPiANCj4gVGhhbmtzIGZvciBzdWNoIGEgZGV0
YWlsZWQgYW5hbHlzaXMuIEkgd2FzIHRoaW5raW5nIHRoYXQgc29tZWhvdyB3ZSBjb3VsZDoNCj4g
IMKgLSByZWR1Y2UgdGhlIG51bWJlciBvZiAjaWZkZWYtcyBpbnRyb2R1Y2VkIGJ5IHRoZSBjdXJy
ZW50IHNlcmllcyBhcyBhIA0KPiB3aG9sZQ0KPiAgwqAtIG1pbmltaXplIHRoZSBjaGFuZ2VzIChv
cHRpbWl6ZSBjb2RlKSBhZGRlZCBpbiAiW1BBVENIIHY0IDEwLzEyXSB4ZW4vIA0KPiBhcm06IHZn
aWMtdjM6IGFkZCBlbXVsYXRpb24gb2YgR0lDdjMuMSBlU1BJIHJlZ2lzdGVycyINCj4gDQo+IE1h
eWJlIHRoZXJlIGlzIG5vIHZhbGlkIGNvbmNlcm4gYXQgYWxsLCBvciBJIG1pc3NlZCBzb21ldGhp
Zy4gQnV0LCB3aGF0IA0KPiB3b3JyaWVzIG1lIGEgYml0IGlzIHRoYXQgc2FpZCBwYXRjaCBhZGRz
IHRoZSBlbXVsYXRpb24gY29kZSBmb3IgZVNQSSANCj4gcmVncyB0aGF0IGFyZSBjbG9zZSBmb3Ig
ZW11bGF0aW9uIGNvZGUgZm9yIHJlZ3VsYXIgU1BJIHJlZ3MgKGUuZy4gcGxlYXNlIA0KPiByZWZl
ciB0byBWUkFOR0U2NChHSUNEX0lST1VURVJuRSwgR0lDRF9JUk9VVEVSbkVOKSAtIA0KPiBWUkFO
R0U2NChHSUNEX0lST1VURVIzMiwgR0lDRF9JUk9VVEVSMTAxOSkgb3IgDQo+IFZSQU5HRTMyKEdJ
Q0RfSVBSSU9SSVRZUm5FLCBHSUNEX0lQUklPUklUWVJuRU4pIC0gDQo+IFZSQU5HRTMyKEdJQ0Rf
SVBSSU9SSVRZUiwgR0lDRF9JUFJJT1JJVFlSTikpLCBiZXNpZGVzIHRoZSBjb2RlIA0KPiBkdXBs
aWNhdGlvbiwgd2Ugd291bGQgaGF2ZSB0byBrZWVwIGJvdGggcmVndWxhciBhbmQgZW50ZW5kZWQg
aGFuZGxlcnMNCj4gaW4gc3luYyB3aGVuIGRvaW5nIHBvc3NpYmxlIHVwZGF0ZXMvZml4aW5nIHRo
ZSBidWdzLg0KPiANCj4gV2hpbGUgSSBjb21wbGV0ZWx5IGFncmVlIHdpdGggdGhlIGRlYWQgY29k
ZSBmb3IgZVNQSS1zcGVjaWZpYyBoZWxwZXJzLyANCj4gZnVuY3Rpb25zIGlmIHdlIG1vdmUgdGhl
bSBvdXQgb2YgI2lmZGVmIENPTkZJR19HSUNWM19FU1BJLCB3aGF0IG1pZ2h0IGJlIA0KPiB3cm9u
ZyBpZiB3ZSBhdCBsZWFzdCBkcm9wICNpZmRlZiBDT05GSUdfR0lDVjNfRVNQSSBmb3Igc2ltcGxl
ICNkZWZpbmUtcyANCj4gKG5vbiBmdW5jdGlvbmFsIGNvZGUpLCBzdWNoIGFzOg0KPiANCj4gIMKg
I2lmZGVmIENPTkZJR19HSUNWM19FU1BJDQo+IC8qIEFkZGl0aW9uYWwgcmVnaXN0ZXJzIGZvciBH
SUN2My4xICovDQo+ICNkZWZpbmUgR0lDRF9JR1JPVVBSbkXCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgICgweDEwMDApDQo+ICNkZWZpbmUgR0lDRF9JR1JPVVBSbkVOwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqAgKDB4MTA3QykNCj4gLi4uDQo+IA0KPiBvcg0KPiANCj4gI2lmZGVmIENPTkZJ
R19HSUNWM19FU1BJDQo+ICNkZWZpbmUgRVNQSV9CQVNFX0lOVElEIDQwOTYNCj4gI2RlZmluZSBF
U1BJX01BWF9JTlRJRMKgIDUxMTkNCj4gI2RlZmluZSBOUl9FU1BJX0lSUVPCoMKgwqAgMTAyNA0K
PiANCj4gI2RlZmluZSBFU1BJX0lOVElEMklEWChpbnRpZCkgKChpbnRpZCkgLSBFU1BJX0JBU0Vf
SU5USUQpDQo+ICNkZWZpbmUgRVNQSV9JRFgySU5USUQoaWR4KcKgwqAgKChpZHgpICsgRVNQSV9C
QVNFX0lOVElEKQ0KPiAjZW5kaWYNCj4gDQoNClRoYW5rIHlvdSBhZ2FpbiAtIGFmdGVyIG91ciBk
aXNjdXNzaW9uLCBJIHJldmlld2VkIHRoZSBlbnRpcmUgcGF0Y2ggDQpzZXJpZXMgYWdhaW4gYW5k
IGZpZ3VyZWQgb3V0IGhvdyB0byBzaWduaWZpY2FudGx5IHJlZHVjZSB0aGUgbnVtYmVyIG9mIA0K
I2lmZGVmcyB3aGlsZSBhbHNvIHJldXNpbmcgdGhlIGNvZGUgaW1wbGVtZW50ZWQgZm9yIHJlZ3Vs
YXIgU1BJcy4gVGhpcyANCmFsbG93cyB0aGUgaW50cm9kdWN0aW9uIG9mIHZHSUMgaGFuZGxlcnMg
YW5kIGF2b2lkcyBkZWFkIGNvZGUuIEkgd2lsbCANCnNlbmQgVjUgc29vbiBhbmQgaG9wZSBpdCB3
aWxsIGxvb2sgbXVjaCBiZXR0ZXIuDQoNCj4+DQo+Pj4NCj4+Pj4gKw0KPj4+PiArc3RhdGljIHVu
c2lnbmVkIGludCB2Z2ljX251bV9zcGlfbGluZXMoc3RydWN0IGRvbWFpbiAqZCkNCj4+Pj4gK3sN
Cj4+Pj4gK8KgwqDCoCByZXR1cm4gZC0+YXJjaC52Z2ljLm5yX3NwaXMgKyBkLT5hcmNoLnZnaWMu
bnJfZXNwaXM7DQo+Pj4+ICt9DQo+Pj4+ICsNCj4+Pj4gK3N0YXRpYyBpbnQgaW5pdF92Z2ljX2Vz
cGkoc3RydWN0IGRvbWFpbiAqZCkNCj4+Pj4gK3sNCj4+Pj4gK8KgwqDCoCB1bnNpZ25lZCBpbnQg
aSwgaWR4Ow0KPj4+PiArDQo+Pj4+ICvCoMKgwqAgaWYgKCBkLT5hcmNoLnZnaWMubnJfZXNwaXMg
PT0gMCApDQo+Pj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gMDsNCj4+Pj4gKw0KPj4+PiArwqDC
oMKgIGQtPmFyY2gudmdpYy5leHRfc2hhcmVkX2lycXMgPQ0KPj4+PiArwqDCoMKgwqDCoMKgwqAg
eHphbGxvY19hcnJheShzdHJ1Y3QgdmdpY19pcnFfcmFuaywgRE9NQUlOX05SX0VYVF9SQU5LUyhk
KSk7DQo+Pj4+ICvCoMKgwqAgaWYgKCBkLT5hcmNoLnZnaWMuZXh0X3NoYXJlZF9pcnFzID09IE5V
TEwgKQ0KPj4+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIC1FTk9NRU07DQo+Pj4+ICsNCj4+Pj4g
K8KgwqDCoCBmb3IgKCBpID0gZC0+YXJjaC52Z2ljLm5yX3NwaXMsIGlkeCA9IDA7DQo+Pj4+ICvC
oMKgwqDCoMKgwqDCoMKgwqAgaSA8IHZnaWNfbnVtX3NwaV9saW5lcyhkKTsgaSsrLCBpZHgrKyAp
DQo+Pj4+ICvCoMKgwqDCoMKgwqDCoCB2Z2ljX2luaXRfcGVuZGluZ19pcnEoJmQtPmFyY2gudmdp
Yy5wZW5kaW5nX2lycXNbaV0sDQo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEVTUElfSURYMklOVElEKGlkeCkpOw0KPj4+PiAr
DQo+Pj4+ICvCoMKgwqAgZm9yICggaSA9IDA7IGkgPCBET01BSU5fTlJfRVhUX1JBTktTKGQpOyBp
KysgKQ0KPj4+PiArwqDCoMKgwqDCoMKgwqAgdmdpY19yYW5rX2luaXQoJmQtPmFyY2gudmdpYy5l
eHRfc2hhcmVkX2lycXNbaV0sIGksIDApOw0KPj4+PiArDQo+Pj4+ICvCoMKgwqAgcmV0dXJuIDA7
DQo+Pj4+ICt9DQo+Pj4+ICsNCj4+Pj4gK3N0cnVjdCBwZW5kaW5nX2lycSAqZXNwaV90b19wZW5k
aW5nKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCANCj4+Pj4gaXJxKQ0KPj4+PiArew0K
Pj4+PiArwqDCoMKgIGlycSA9IEVTUElfSU5USUQySURYKGlycSkgKyBkLT5hcmNoLnZnaWMubnJf
c3BpczsNCj4+Pj4gK8KgwqDCoCByZXR1cm4gJmQtPmFyY2gudmdpYy5wZW5kaW5nX2lycXNbaXJx
XTsNCj4+Pj4gK30NCj4+Pj4gKyNlbHNlDQo+Pj4+ICtzdGF0aWMgdW5zaWduZWQgaW50IGluaXRf
dmdpY19lc3BpKHN0cnVjdCBkb21haW4gKmQNCj4+Pj4gK3sNCj4+Pj4gK8KgwqDCoCByZXR1cm4g
MDsNCj4+Pj4gK30NCj4+Pj4gKw0KPj4+PiArc3RhdGljIHVuc2lnbmVkIGludCB2Z2ljX251bV9z
cGlfbGluZXMoc3RydWN0IGRvbWFpbiAqZCkNCj4+Pj4gK3sNCj4+Pj4gK8KgwqDCoCByZXR1cm4g
ZC0+YXJjaC52Z2ljLm5yX3NwaXM7DQo+Pj4+ICt9DQo+Pj4+ICsNCj4+Pj4gK3N0cnVjdCBwZW5k
aW5nX2lycSAqZXNwaV90b19wZW5kaW5nKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCAN
Cj4+Pj4gaXJxKQ0KPj4+PiArew0KPj4+PiArwqDCoMKgIHJldHVybiBOVUxMOw0KPj4+PiArfQ0K
Pj4+PiArI2VuZGlmDQo+Pj4+ICsNCj4+Pj4gK3N0YXRpYyB1bnNpZ25lZCBpbnQgdmdpY19udW1f
YWxsb2NfaXJxcyhzdHJ1Y3QgZG9tYWluICpkKQ0KPj4+PiArew0KPj4+PiArwqDCoMKgIHJldHVy
biB2Z2ljX251bV9zcGlfbGluZXMoZCkgKyBOUl9MT0NBTF9JUlFTOw0KPj4+PiArfQ0KPj4+PiAr
DQo+Pj4+IMKgwqAgaW50IGRvbWFpbl92Z2ljX2luaXQoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWdu
ZWQgaW50IG5yX3NwaXMpDQo+Pj4+IMKgwqAgew0KPj4+PiDCoMKgwqDCoMKgwqAgaW50IGk7DQo+
Pj4+IEBAIC0xMzEsNiArMjc0LDM4IEBAIGludCBkb21haW5fdmdpY19pbml0KHN0cnVjdCBkb21h
aW4gKmQsIHVuc2lnbmVkDQo+Pj4+IGludCBucl9zcGlzKQ0KPj4+PiDCoMKgwqDCoMKgwqDCoCAq
Lw0KPj4+PiDCoMKgwqDCoMKgwqAgbnJfc3BpcyA9IFJPVU5EVVAobnJfc3BpcywgMzIpOw0KPj4+
PiArI2lmZGVmIENPTkZJR19HSUNWM19FU1BJDQo+Pj4+ICvCoMKgwqAgLyoNCj4+Pj4gK8KgwqDC
oMKgICogRHVyaW5nIGRvbWFpbiBjcmVhdGlvbiwgdGhlIGRvbTBsZXNzIERvbVVzIGNvZGUgb3Ig
dG9vbHN0YWNrDQo+Pj4+IHNwZWNpZmllcw0KPj4+PiArwqDCoMKgwqAgKiB0aGUgbWF4aW11bSBJ
TlRJRCwgd2hpY2ggaXMgZGVmaW5lZCBpbiB0aGUgZG9tYWluIGNvbmZpZw0KPj4+PiBzdWJ0cmFj
dGVkIGJ5DQo+Pj4+ICvCoMKgwqDCoCAqIDMyIHRvIGNvdmVyIHRoZSBsb2NhbCBJUlFzIChwbGVh
c2Ugc2VlIHRoZSBjb21tZW50IHRvDQo+Pj4+IFZHSUNfREVGX05SX1NQSVMpLg0KPj4+PiArwqDC
oMKgwqAgKiBUbyBjb21wdXRlIHRoZSBhY3R1YWwgbnVtYmVyIG9mIGVTUEkgdGhhdCB3aWxsIGJl
IHVzYWJsZSBmb3IsDQo+Pj4+ICvCoMKgwqDCoCAqIGFkZCBiYWNrIDMyLg0KPj4+PiArwqDCoMKg
wqAgKi8NCj4+Pj4gK8KgwqDCoCBpZiAoIG5yX3NwaXMgKyAzMiA+IEVTUElfSURYMklOVElEKE5S
X0VTUElfSVJRUykgKQ0KPj4+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIC1FSU5WQUw7DQo+Pj4+
ICsNCj4+Pj4gK8KgwqDCoCBpZiAoIG5yX3NwaXMgKyAzMiA+PSBFU1BJX0JBU0VfSU5USUQgKQ0K
Pj4+PiArwqDCoMKgIHsNCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIGQtPmFyY2gudmdpYy5ucl9lc3Bp
cyA9IG1pbihucl9zcGlzIC0gRVNQSV9CQVNFX0lOVElEICsgMzIsDQo+Pj4+IDEwMjRVKTsNCj4+
Pj4gK8KgwqDCoMKgwqDCoMKgIC8qIFZlcmlmeSBpZiBHSUMgSFcgY2FuIGhhbmRsZSBwcm92aWRl
ZCBJTlRJRCAqLw0KPj4+PiArwqDCoMKgwqDCoMKgwqAgaWYgKCBkLT5hcmNoLnZnaWMubnJfZXNw
aXMgPiBnaWNfbnVtYmVyX2VzcGlzKCkgKQ0KPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBy
ZXR1cm4gLUVJTlZBTDsNCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIC8qDQo+Pj4+ICvCoMKgwqDCoMKg
wqDCoMKgICogU2V0IHRoZSBtYXhpbXVtIGF2YWlsYWJsZSBudW1iZXIgZm9yIHJlZ3VsYXINCj4+
Pj4gK8KgwqDCoMKgwqDCoMKgwqAgKiBTUEkgdG8gcGFzcyB0aGUgbmV4dCBjaGVjaw0KPj4+PiAr
wqDCoMKgwqDCoMKgwqDCoCAqLw0KPj4+PiArwqDCoMKgwqDCoMKgwqAgbnJfc3BpcyA9IFZHSUNf
REVGX05SX1NQSVM7DQo+Pj4+ICvCoMKgwqDCoMKgwqDCoCBkLT5hcmNoLnZnaWMuaGFzX2VzcGkg
PSB0cnVlOw0KPj4+PiArwqDCoMKgIH0NCj4+Pj4gK8KgwqDCoCBlbHNlDQo+Pj4+ICvCoMKgwqAg
ew0KPj4+PiArwqDCoMKgwqDCoMKgwqAgLyogRG9tYWluIHdpbGwgdXNlIHRoZSByZWd1bGFyIFNQ
SSByYW5nZSAqLw0KPj4+PiArwqDCoMKgwqDCoMKgwqAgZC0+YXJjaC52Z2ljLm5yX2VzcGlzID0g
MDsNCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIGQtPmFyY2gudmdpYy5oYXNfZXNwaSA9IGZhbHNlOw0K
Pj4+PiArwqDCoMKgIH0NCj4+Pj4gKyNlbmRpZg0KPj4+PiArDQo+Pj4+IMKgwqDCoMKgwqDCoCAv
KiBMaW1pdCB0aGUgbnVtYmVyIG9mIHZpcnR1YWwgU1BJcyBzdXBwb3J0ZWQgdG8gKDEwMjAgLSAz
MikgPQ0KPj4+PiA5ODjCoCAqLw0KPj4+PiDCoMKgwqDCoMKgwqAgaWYgKCBucl9zcGlzID4gKDEw
MjAgLSBOUl9MT0NBTF9JUlFTKSApDQo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiAt
RUlOVkFMOw0KPj4+PiBAQCAtMTQ1LDcgKzMyMCw3IEBAIGludCBkb21haW5fdmdpY19pbml0KHN0
cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkDQo+Pj4+IGludCBucl9zcGlzKQ0KPj4+PiDCoMKgwqDC
oMKgwqDCoMKgwqDCoCByZXR1cm4gLUVOT01FTTsNCj4+Pj4gwqDCoMKgwqDCoMKgIGQtPmFyY2gu
dmdpYy5wZW5kaW5nX2lycXMgPQ0KPj4+PiAtwqDCoMKgwqDCoMKgwqAgeHphbGxvY19hcnJheShz
dHJ1Y3QgcGVuZGluZ19pcnEsIGQtPmFyY2gudmdpYy5ucl9zcGlzKTsNCj4+Pj4gK8KgwqDCoMKg
wqDCoMKgIHh6YWxsb2NfYXJyYXkoc3RydWN0IHBlbmRpbmdfaXJxLCB2Z2ljX251bV9zcGlfbGlu
ZXMoZCkpOw0KPj4+PiDCoMKgwqDCoMKgwqAgaWYgKCBkLT5hcmNoLnZnaWMucGVuZGluZ19pcnFz
ID09IE5VTEwgKQ0KPj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gLUVOT01FTTsNCj4+
Pj4gQEAgLTE1NiwxMiArMzMxLDE2IEBAIGludCBkb21haW5fdmdpY19pbml0KHN0cnVjdCBkb21h
aW4gKmQsIHVuc2lnbmVkDQo+Pj4+IGludCBucl9zcGlzKQ0KPj4+PiDCoMKgwqDCoMKgwqAgZm9y
ICggaSA9IDA7IGkgPCBET01BSU5fTlJfUkFOS1MoZCk7IGkrKyApDQo+Pj4+IMKgwqDCoMKgwqDC
oMKgwqDCoMKgIHZnaWNfcmFua19pbml0KCZkLT5hcmNoLnZnaWMuc2hhcmVkX2lycXNbaV0sIGkg
KyAxLCAwKTsNCj4+Pj4gK8KgwqDCoCByZXQgPSBpbml0X3ZnaWNfZXNwaShkKTsNCj4+Pj4gK8Kg
wqDCoCBpZiAoIHJldCApDQo+Pj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gcmV0Ow0KPj4+PiAr
DQo+Pj4+IMKgwqDCoMKgwqDCoCByZXQgPSBkLT5hcmNoLnZnaWMuaGFuZGxlci0+ZG9tYWluX2lu
aXQoZCk7DQo+Pj4+IMKgwqDCoMKgwqDCoCBpZiAoIHJldCApDQo+Pj4+IMKgwqDCoMKgwqDCoMKg
wqDCoMKgIHJldHVybiByZXQ7DQo+Pj4+IMKgwqDCoMKgwqDCoCBkLT5hcmNoLnZnaWMuYWxsb2Nh
dGVkX2lycXMgPQ0KPj4+PiAtwqDCoMKgwqDCoMKgwqAgeHphbGxvY19hcnJheSh1bnNpZ25lZCBs
b25nLCBCSVRTX1RPX0xPTkdTKHZnaWNfbnVtX2lycXMoZCkpKTsNCj4+Pj4gK8KgwqDCoMKgwqDC
oMKgIHh6YWxsb2NfYXJyYXkodW5zaWduZWQgbG9uZywNCj4+Pj4gQklUU19UT19MT05HUyh2Z2lj
X251bV9hbGxvY19pcnFzKGQpKSk7DQo+Pj4+IMKgwqDCoMKgwqDCoCBpZiAoICFkLT5hcmNoLnZn
aWMuYWxsb2NhdGVkX2lycXMgKQ0KPj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gLUVO
T01FTTsNCj4+Pj4gQEAgLTE5NSw5ICszNzQsMjcgQEAgdm9pZCBkb21haW5fdmdpY19mcmVlKHN0
cnVjdCBkb21haW4gKmQpDQo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0NCj4+Pj4gwqDCoMKg
wqDCoMKgIH0NCj4+Pj4gKyNpZmRlZiBDT05GSUdfR0lDVjNfRVNQSQ0KPj4+PiArwqDCoMKgIGZv
ciAoIGkgPSAwOyBpIDwgZC0+YXJjaC52Z2ljLm5yX2VzcGlzOyBpKysgKQ0KPj4+PiArwqDCoMKg
IHsNCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHN0cnVjdCBwZW5kaW5nX2lycSAqcCA9IHNwaV90b19w
ZW5kaW5nKGQsIEVTUElfSURYMklOVElEKGkpKTsNCj4+Pj4gKw0KPj4+PiArwqDCoMKgwqDCoMKg
wqAgaWYgKCBwLT5kZXNjICkNCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHsNCj4+Pj4gK8KgwqDCoMKg
wqDCoMKgwqDCoMKgwqAgcmV0ID0gcmVsZWFzZV9ndWVzdF9pcnEoZCwgcC0+aXJxKTsNCj4+Pj4g
K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKCByZXQgKQ0KPj4+PiArwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgIGRwcmludGsoWEVOTE9HX0dfV0FSTklORywgImQldTogRmFpbGVkIHRv
IHJlbGVhc2UNCj4+Pj4gdmlycSAldSByZXQgPSAlZFxuIiwNCj4+Pg0KPj4+DQo+Pj4gTklUOiB5
b3UgY2FuIHVzZSAlcGQgZm9yIHByaW50aW5nIGRvbWFpbiB3aXRoIGl0cyBJRA0KPj4+DQo+Pj4N
Cj4+DQo+PiBJIHdpbGwgZml4IGl0IGluIFY1Lg0KPj4NCj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZC0+ZG9tYWluX2lkLCBwLT5pcnEsIHJldCk7
DQo+Pj4+ICvCoMKgwqDCoMKgwqDCoCB9DQo+Pj4+ICvCoMKgwqAgfQ0KPj4+PiArI2VuZGlmDQo+
Pj4+ICsNCj4+Pj4gwqDCoMKgwqDCoMKgIGlmICggZC0+YXJjaC52Z2ljLmhhbmRsZXIgKQ0KPj4+
PiDCoMKgwqDCoMKgwqDCoMKgwqDCoCBkLT5hcmNoLnZnaWMuaGFuZGxlci0+ZG9tYWluX2ZyZWUo
ZCk7DQo+Pj4+IMKgwqDCoMKgwqDCoCB4ZnJlZShkLT5hcmNoLnZnaWMuc2hhcmVkX2lycXMpOw0K
Pj4+PiArI2lmZGVmIENPTkZJR19HSUNWM19FU1BJDQo+Pj4+ICvCoMKgwqAgeGZyZWUoZC0+YXJj
aC52Z2ljLmV4dF9zaGFyZWRfaXJxcyk7DQo+Pj4+ICsjZW5kaWYNCj4+Pj4gwqDCoMKgwqDCoMKg
IHhmcmVlKGQtPmFyY2gudmdpYy5wZW5kaW5nX2lycXMpOw0KPj4+PiDCoMKgwqDCoMKgwqAgeGZy
ZWUoZC0+YXJjaC52Z2ljLmFsbG9jYXRlZF9pcnFzKTsNCj4+Pj4gwqDCoCB9DQo+Pj4+IEBAIC0z
MzEsNiArNTI4LDggQEAgdm9pZCBhcmNoX21vdmVfaXJxcyhzdHJ1Y3QgdmNwdSAqdikNCj4+Pj4g
wqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKCB2X3RhcmdldCA9PSB2ICYmICF0ZXN0X2JpdChHSUNf
SVJRX0dVRVNUX01JR1JBVElORywgJnAtDQo+Pj4+PiBzdGF0dXMpICkNCj4+Pj4gwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoCBpcnFfc2V0X2FmZmluaXR5KHAtPmRlc2MsIGNwdV9tYXNrKTsN
Cj4+Pj4gwqDCoMKgwqDCoMKgIH0NCj4+Pj4gKw0KPj4+PiArwqDCoMKgIGFyY2hfbW92ZV9lc3Bp
cyh2KTsNCj4+Pj4gwqDCoCB9DQo+Pj4+IMKgwqAgdm9pZCB2Z2ljX2Rpc2FibGVfaXJxcyhzdHJ1
Y3QgdmNwdSAqdiwgdWludDMyX3QgciwgdW5zaWduZWQgaW50IG4pDQo+Pj4+IEBAIC01MzgsNiAr
NzM3LDggQEAgc3RydWN0IHBlbmRpbmdfaXJxICppcnFfdG9fcGVuZGluZyhzdHJ1Y3QgdmNwdSAq
diwNCj4+Pj4gdW5zaWduZWQgaW50IGlycSkNCj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqAgbiA9
ICZ2LT5hcmNoLnZnaWMucGVuZGluZ19pcnFzW2lycV07DQo+Pj4+IMKgwqDCoMKgwqDCoCBlbHNl
IGlmICggaXNfbHBpKGlycSkgKQ0KPj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoCBuID0gdi0+ZG9t
YWluLT5hcmNoLnZnaWMuaGFuZGxlci0+bHBpX3RvX3BlbmRpbmcodi0+ZG9tYWluLA0KPj4+PiBp
cnEpOw0KPj4+PiArwqDCoMKgIGVsc2UgaWYgKCBpc19lc3BpKGlycSkgKQ0KPj4+PiArwqDCoMKg
wqDCoMKgwqAgbiA9IGVzcGlfdG9fcGVuZGluZyh2LT5kb21haW4sIGlycSk7DQo+Pj4+IMKgwqDC
oMKgwqDCoCBlbHNlDQo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIG4gPSAmdi0+ZG9tYWluLT5h
cmNoLnZnaWMucGVuZGluZ19pcnFzW2lycSAtIDMyXTsNCj4+Pj4gwqDCoMKgwqDCoMKgIHJldHVy
biBuOw0KPj4+PiBAQCAtNTQ3LDYgKzc0OCw5IEBAIHN0cnVjdCBwZW5kaW5nX2lycSAqc3BpX3Rv
X3BlbmRpbmcoc3RydWN0IGRvbWFpbg0KPj4+PiAqZCwgdW5zaWduZWQgaW50IGlycSkNCj4+Pj4g
wqDCoCB7DQo+Pj4+IMKgwqDCoMKgwqDCoCBBU1NFUlQoaXJxID49IE5SX0xPQ0FMX0lSUVMpOw0K
Pj4+PiArwqDCoMKgIGlmICggaXNfZXNwaShpcnEpICkNCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHJl
dHVybiBlc3BpX3RvX3BlbmRpbmcoZCwgaXJxKTsNCj4+Pj4gKw0KPj4+PiDCoMKgwqDCoMKgwqAg
cmV0dXJuICZkLT5hcmNoLnZnaWMucGVuZGluZ19pcnFzW2lycSAtIDMyXTsNCj4+Pj4gwqDCoCB9
DQo+Pj4+IEBAIC02NjgsNiArODcyLDkgQEAgYm9vbCB2Z2ljX3Jlc2VydmVfdmlycShzdHJ1Y3Qg
ZG9tYWluICpkLCB1bnNpZ25lZA0KPj4+PiBpbnQgdmlycSkNCj4+Pj4gwqDCoMKgwqDCoMKgIGlm
ICggIXZnaWNfaXNfdmFsaWRfbGluZShkLCB2aXJxKSApDQo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDC
oMKgIHJldHVybiBmYWxzZTsNCj4+Pj4gK8KgwqDCoCBpZiAoIGlzX2VzcGkodmlycSkgKQ0KPj4+
PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIHZnaWNfcmVzZXJ2ZV9lc3BpX3ZpcnEoZCwgdmlycSk7
DQo+Pj4+ICsNCj4+Pj4gwqDCoMKgwqDCoMKgIHJldHVybiAhdGVzdF9hbmRfc2V0X2JpdCh2aXJx
LCBkLT5hcmNoLnZnaWMuYWxsb2NhdGVkX2lycXMpOw0KPj4+PiDCoMKgIH0NCj4+Pj4gQEAgLTY4
NSw3ICs4OTIsNyBAQCBpbnQgdmdpY19hbGxvY2F0ZV92aXJxKHN0cnVjdCBkb21haW4gKmQsIGJv
b2wgc3BpKQ0KPj4+PiDCoMKgwqDCoMKgwqAgZWxzZQ0KPj4+PiDCoMKgwqDCoMKgwqAgew0KPj4+
PiDCoMKgwqDCoMKgwqDCoMKgwqDCoCBmaXJzdCA9IDMyOw0KPj4+PiAtwqDCoMKgwqDCoMKgwqAg
ZW5kID0gdmdpY19udW1faXJxcyhkKTsNCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIGVuZCA9IHZnaWNf
bnVtX2FsbG9jX2lycXMoZCk7DQo+Pj4+IMKgwqDCoMKgwqDCoCB9DQo+Pj4+IMKgwqDCoMKgwqDC
oCAvKg0KPj4+DQo+Pg0KPj4gQmVzdCByZWdhcmRzLA0KPj4gTGVvbmlkDQo+IA0KDQpCZXN0IHJl
Z2FyZHMsDQpMZW9uaWQNCg==


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 14:00:02 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 14:00:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101457.1454523 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urze5-0001vo-5w; Fri, 29 Aug 2025 14:00:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101457.1454523; Fri, 29 Aug 2025 14:00:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urze5-0001vh-2x; Fri, 29 Aug 2025 14:00:01 +0000
Received: by outflank-mailman (input) for mailman id 1101457;
 Fri, 29 Aug 2025 13:59:59 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=ybbg=3J=bounce.vates.tech=bounce-md_30504962.68b1b25c.v1-ddf99863b663417988695163812732b3@srs-se1.protection.inumbo.net>)
 id 1urze3-0001vZ-Md
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 13:59:59 +0000
Received: from mail187-26.suw11.mandrillapp.com
 (mail187-26.suw11.mandrillapp.com [198.2.187.26])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 71e5366b-84e0-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 15:59:57 +0200 (CEST)
Received: from pmta09.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail187-26.suw11.mandrillapp.com (Mailchimp) with ESMTP id
 4cD0JX0nKczKsbXM9
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 13:59:56 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 ddf99863b663417988695163812732b3; Fri, 29 Aug 2025 13:59: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>
X-Inumbo-ID: 71e5366b-84e0-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1756475996; x=1756745996;
	bh=Qh6Kj/etTCT+4I4zZbOCaJjPaHBfztd3pkvoO9utYqg=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=eeHG2c7iC0yt+5rRJI5Rohb4J6yJH9nJLFsLcbnna/h2tW1BzLaDOA+PKv86dUMR1
	 fiEDw3+hoToVVXpvIxBjkVjJCiNSgWrludg5/qyQ/aAV2ZwZDDNYih0PtUv56SJXTl
	 os5/wwc9qAgG1whAhj5vTN+CVsd0r4cJn3qjeilJYClNYIAGDW/3xj6m3OH9AEIXl6
	 dQ+vvm53YPKpCsAuCUpc2Kx5tBJwChJUbPnMAU7BoQRZT7P0p0Hl3EzKTUJCpjjT/P
	 JBO+vczSYncdyEEm/acI3glYlqZnUvvZUBaRtCmUDXJ0kaDIYeBd9sVWyCE+GVAp6H
	 CN2H/YmshQkUA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1756475996; x=1756736496; i=teddy.astie@vates.tech;
	bh=Qh6Kj/etTCT+4I4zZbOCaJjPaHBfztd3pkvoO9utYqg=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=mPLDiPZmsuvVZs9OjZbU4K+fGHA+S6k5dl7M41iaEtYJMJqluZuzm3pCuoNKST0bQ
	 K1AaRt6tYSb6IGP78TfJDn5Tty+YqNl8wekeTmmHkUxejIXSlIaDjVgKkBKHWq9pxr
	 HysbTHIThpsbwhgfKFGiPO+OBuClebaB3xM+/YIp1H4Cu4b866o2Z534p2eEhaXF0j
	 B45vPDGdX3cGdtVYM9cftEccV7FVrWiwtTzF0JJTAaPk4kyLBZjSQQWuNEvFvehOX1
	 jNOr8TwbiGY8xgEwN56XLpSIMtBWifB5+xrGb+mXD0ukjXY0PnyepZO/pR5bYvSbX2
	 SrJohSthLyFSA==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[RFC=20PATCH=205/9]=20docs/x86:=20Introduce=20FastABI?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1756475994874
Message-Id: <c5e62944-d519-4931-af20-1a737099148b@vates.tech>
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=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Stefano Stabellini" <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1755785258.git.teddy.astie@vates.tech> <64800d22220f31bf052713ce61ecedeaa8a36b6f.1755785258.git.teddy.astie@vates.tech> <2fcdb264-15a3-47f7-915d-83d1c1e06765@suse.com>
In-Reply-To: <2fcdb264-15a3-47f7-915d-83d1c1e06765@suse.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.ddf99863b663417988695163812732b3?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250829:md
Date: Fri, 29 Aug 2025 13:59:56 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 28/08/2025 =C3=A0 14:35, Jan Beulich a =C3=A9crit=C2=A0:
> On 21.08.2025 17:25, Teddy Astie wrote:
>> FastABI is a alternative ABI designed with performance and coco-enabled
>> guest in mind. It is register-oriented instead of refering to C structur=
es
>> in the guest memory (through a virtual memory pointer).
>>
>> It only focuses on kernel-side hypercalls, it doesn't aim to provide too=
lstack
>> operations.
> 
> And even there it excludes certain pretty relevant ones, like many of the
> gnttabop sub-ops. As alluded to by a reply to an earlier patch, I don't
> think having an ABI for just a subset of the hypercalls is going to help.
> 

Many hypercalls are missing in current RFC, including the grant 
map/unmap ones. But a part of the idea is to still having some 
hypercalls out of scope (mainly legacy and toolstack-specific ones) to 
reduce the complexity.

> Jan
> 



Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Fri Aug 29 14:05:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 14:05:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101480.1454533 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urzix-0003iT-NH; Fri, 29 Aug 2025 14:05:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101480.1454533; Fri, 29 Aug 2025 14: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 1urzix-0003iM-Je; Fri, 29 Aug 2025 14:05:03 +0000
Received: by outflank-mailman (input) for mailman id 1101480;
 Fri, 29 Aug 2025 14:05:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=400J=3J=casper.srs.infradead.org=BATV+dd1ac6718a2a76904583+8041+infradead.org+dwmw2@srs-se1.protection.inumbo.net>)
 id 1urziv-0003iF-Da
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 14:05:02 +0000
Received: from casper.infradead.org (unknown [2001:8b0:10b:1236::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 254d9831-84e1-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 16:04:59 +0200 (CEST)
Received: from 54-240-197-239.amazon.com ([54.240.197.239]
 helo=u09cd745991455d.ant.amazon.com)
 by casper.infradead.org with esmtpsa (Exim 4.98.2 #2 (Red Hat Linux))
 id 1urzip-0000000CtIW-3snb; Fri, 29 Aug 2025 14:04: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>
X-Inumbo-ID: 254d9831-84e1-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:Date:Cc:To:
	From:Subject:Message-ID:Sender:Reply-To:Content-Transfer-Encoding:Content-ID:
	Content-Description:In-Reply-To:References;
	bh=lAIUJUTzkAwuls3+jeEJSojGD/Rj6dhLVj3jUD0gqoQ=; b=vs4DMyMelavKmOBFB7100qq88H
	IhPyGFkTajwjjlHz6Ae0OROeoU3Zv/QmGQbwnHGk+ILZwmxOK3TKShjPUIB2Gm9Gz491VayvuML09
	OWbMahnfmnfjSERZautJaK4+cut1bHR6hhJT/14gZNcmQ0Y+mmRPSJUZnRDUGv8aYDogV7tRrzhUO
	nDKwXr1jn2GtLcRo0qsl8sD9tPb4FLW0cddxSAR5zRZfbkm5hGtmIzJfZZ3oLWr9G1r9Hfd9RTnGv
	PkQ0PatCsoiflV8lTpOFIxonXplSB/U8jugkTLKOu8G5aHmEKp00SCyuAmrBKd0GZt1d3cp8YjcOn
	2BSTsgKA==;
Message-ID: <9912a9c26aa322623b09ace7a01c7a86665e147a.camel@infradead.org>
Subject: [PATCH] i386/xen: Advertise XEN_HVM_CPUID_EXT_DEST_ID for Xen
 guests where supported
From: David Woodhouse <dwmw2@infradead.org>
To: qemu-devel@nongnu.org
Cc: Paolo Bonzini <pbonzini@redhat.com>, Marcelo Tosatti
 <mtosatti@redhat.com>,  kvm@vger.kernel.org, xen-devel
 <xen-devel@lists.xenproject.org>, Roger Pau =?ISO-8859-1?Q?Monn=E9?=
 <roger.pau@citrix.com>, =?ISO-8859-1?Q?J=FCrgen?= Gross <jgross@suse.com>
Date: Fri, 29 Aug 2025 15:04:55 +0100
Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature";
	boundary="=-zHLb1MPjvn559jOTiXef"
User-Agent: Evolution 3.52.3-0ubuntu1 
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


--=-zHLb1MPjvn559jOTiXef
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

From: David Woodhouse <dwmw@amazon.co.uk>

The 15-bit MSI enlightenment which allows for up to 32768 vCPUs without a
virtual IOMMU is documented at http://david.woodhou.se/ExtDestId.pdf and
has been supported for native KVM guests since QEMU v6.0.

Although Xen itself has only defined the CPUID bit and not yet implemented
it because of complexity in the interface between QEMU and Xen for MSI
handling, there's no reason why it can't work when QEMU/KVM is hosting Xen
guests. Advertise it accordingly.

Tested with a standard Linux guest (which has supported this under Xen
since v5.17) and QEMU command line including -M q35 -smp 4,maxcpus=3D288
 -device host-x86_64-cpu,socket-id=3D0,core-id=3D257,thread-id=3D0
 -cpu host,+xen-vapic

We need +xen-vapic to test it properly, or the guest turns every MSI and
I/O APIC interrupt into an event channel. Testing shows that both line
interrupts and MSIs can be set affine to the fifth CPU and are delivered
correctly.

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
---
 target/i386/kvm/kvm.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/target/i386/kvm/kvm.c b/target/i386/kvm/kvm.c
index 369626f8c8..1401d7a903 100644
--- a/target/i386/kvm/kvm.c
+++ b/target/i386/kvm/kvm.c
@@ -2221,6 +2221,7 @@ int kvm_arch_init_vcpu(CPUState *cs)
=20
             if (cs->kvm_state->xen_version >=3D XEN_VERSION(4, 17)) {
                 c->eax |=3D XEN_HVM_CPUID_UPCALL_VECTOR;
+                c->eax |=3D XEN_HVM_CPUID_EXT_DEST_ID;
             }
         }
=20
--=20
2.49.0



--=-zHLb1MPjvn559jOTiXef
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
ggE3MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTI1MDgyOTE0MDQ1
NVowLwYJKoZIhvcNAQkEMSIEIEpanTi8XQ7EHLtSRRiyy2Xu2EfV6nLI/q/+AG8BIIkvMGQGCSsG
AQQBgjcQBDFXMFUwQTELMAkGA1UEBhMCQVUxEDAOBgNVBAoTB1Zlcm9rZXkxIDAeBgNVBAMTF1Zl
cm9rZXkgU2VjdXJlIEVtYWlsIEcyAhAH5JEPagNRXYDiRPdlc1vgMGYGCyqGSIb3DQEJEAILMVeg
VTBBMQswCQYDVQQGEwJBVTEQMA4GA1UEChMHVmVyb2tleTEgMB4GA1UEAxMXVmVyb2tleSBTZWN1
cmUgRW1haWwgRzICEAfkkQ9qA1FdgOJE92VzW+AwDQYJKoZIhvcNAQEBBQAEggIAl+l/arxCG3cY
XVULLfcwN33XM9BlXx5imRGBNxlXlrv7SwDrkB2pLkgDVmWIcqr9gGCeFOa3xvfli+orJb3qC9Hk
Ky9ncrbmzIGJYCHXoJrMmsagfQ+ju8bgHCJx3ddqgmUAtIhJtCUx/uiY0Ien5Az5sjBjf3xk51XN
/yQPsrrlb14LrVa6uz+WEkoSGcxR32IMmsla4nVNA69uhJmQT2S1OcynEr+2ANYGQla1lxU8XGln
pSXTTW5Ds1IOPmhQCbVc9sfWRtBZDoEktLTmqHUisKhXhOVuU8VSl1RiHVQFqcu05+4CTdQ++L4j
RD+QXL4Vvs9u+HpxeJqARJQ7xh/po9tGISgtAv2SNTy5YwUNu/b053j/aYc9/OUgkhSasUywYLks
+hKXBgu4zbnxRDutN8fiHZ8xRGmGuT3XW9DxdLZTEnd2sR8YXZBzPv368QTneJ2FZG7ytK6CV4e6
dqXZKB7M/RXx5nLDlFjG4wCyptnYI3ylOvp2JF1Bj0jmx/nefqlBocvJP2BpwAPanA2ogbJUZIE7
7LFMgPhbdIIQSqSA2icP8k7+Am1aqF2bZQlIVrBpmU3uOro5JbX2Rcdb/VE8GSO0OZCSC/AKushu
CN1acW/Q70U7FxGWA7wftc4LX/obyTstq1AM9GpcPoNQz/e9OIET1wt682EVsqQAAAAAAAA=


--=-zHLb1MPjvn559jOTiXef--


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 14:13:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 14:13:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101500.1454542 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1urzqp-0005lU-Ex; Fri, 29 Aug 2025 14:13:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101500.1454542; Fri, 29 Aug 2025 14:13: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 1urzqp-0005lN-CQ; Fri, 29 Aug 2025 14:13:11 +0000
Received: by outflank-mailman (input) for mailman id 1101500;
 Fri, 29 Aug 2025 14:13:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=Ygma=3J=bounce.vates.tech=bounce-md_30504962.68b1b571.v1-dd6999c02dca4e5a854cb5b08c11e3e1@srs-se1.protection.inumbo.net>)
 id 1urzqn-0005lH-QL
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 14:13:10 +0000
Received: from mail180-6.suw31.mandrillapp.com
 (mail180-6.suw31.mandrillapp.com [198.2.180.6])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 48867209-84e2-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 16:13:07 +0200 (CEST)
Received: from pmta11.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail180-6.suw31.mandrillapp.com (Mailchimp) with ESMTP id 4cD0bj5tCBz2K23lM
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 14:13:05 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 dd6999c02dca4e5a854cb5b08c11e3e1; Fri, 29 Aug 2025 14:13: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>
X-Inumbo-ID: 48867209-84e2-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1756476785; x=1756746785;
	bh=kAEN+eWtgHOy6UQP9yE2az89wh+Dh7LQuiy7kOxQfGs=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=ogt4Q29aknVNxLiwUwP0tI/PlDX8NyP0YQg3R2z8tvhF8ZwiVJMT3iWxwRx7yb/rQ
	 7t3to7/JK2naU+iCiOfkuE6okfizu0Fp73UWn413qPr411q2IsHRkHSh9w3JuiqwQh
	 umawy/AeznZngixwjPM4p9pXYUuZWlkvKm4gaAcdCEz6jg7tVZeZe0toKRRWuggMqq
	 kgrisLzsKnPpUSvGlEaoz0dPsP0iBZxC+zWGisL+haMHdKsjaGPXTzb/LGudCqBFbQ
	 kEHQbYIEr5t9wOHiVFBsT+rBj2TIJ8J5+L//oH6JFuId40lI15413rpXVNSIbXvfxY
	 57GtLnXVGTcOw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1756476785; x=1756737285; i=teddy.astie@vates.tech;
	bh=kAEN+eWtgHOy6UQP9yE2az89wh+Dh7LQuiy7kOxQfGs=;
	h=From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:
	 Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date:
	 Subject:From;
	b=tDBzhBIXt1/IPYLLlBXPfIcmdAvMSXuMvNF6S5MkhZFNaSS1O1mQ0t2EWyFhBZNWF
	 Mm6S3jFwqDJqpADhJITV1QrSsEbMmRBuOdiLfQZEzVvC9Opg6+xpG3t9akaRHJARfo
	 S/lSwDoPlevL7HMTjY9VsJVgi61MOj6MQb6/nQdSJuXgMdNUZpA+AKdvDCxk7Yh6yw
	 BooYiRDAtRSk6Yr1/jOM6jifGv/wDjfF2r0FbISWbROtvukq8tcwxPInQGS0dBXg73
	 NOvxOvfFjWcbQvneD4i9zW5fbaQr7WxQ/rrY+fT2HA6YTeC2Lwm+z23vGU4tFRHXFO
	 CO4Do/T6/LMjw==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[RFC=20PATCH=20v3=203/3]=20x86/hvm:=20Introduce=20Xen-wide=20ASID=20allocator?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1756476784413
Message-Id: <2c16b9f8-580e-4df2-9790-1c3e327b349d@vates.tech>
To: "Jan Beulich" <jbeulich@suse.com>
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Julien Grall" <julien@xen.org>, "Stefano Stabellini" <sstabellini@kernel.org>, "Vaishali Thakkar" <vaishali.thakkar@suse.com>, "Oleksii Kurochko" <oleksii.kurochko@gmail.com>, xen-devel@lists.xenproject.org
References: <cover.1750770621.git.teddy.astie@vates.tech> <81169a40fdc8c124b1656e451ac2e81f4e8edd2d.1750770621.git.teddy.astie@vates.tech> <7d9fd72a-39b7-43b0-875f-859a7a45c4fb@suse.com>
In-Reply-To: <7d9fd72a-39b7-43b0-875f-859a7a45c4fb@suse.com>
X-Native-Encoded: 1
X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.dd6999c02dca4e5a854cb5b08c11e3e1?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20250829:md
Date: Fri, 29 Aug 2025 14:13:05 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 28/08/2025 =C3=A0 15:05, Jan Beulich a =C3=A9crit=C2=A0:
> On 26.06.2025 16:01, Teddy Astie wrote:
>> From: Vaishali Thakkar <vaishali.thakkar@suse.com> (formely vates.tech)
>>
>> Currently ASID generation and management is done per-PCPU. This
>> scheme is incompatible with SEV technologies as SEV VMs need to
>> have a fixed ASID associated with all vcpus of the VM throughout
>> it's lifetime.
>>
>> This commit introduces a Xen-wide allocator which initializes
>> the asids at the start of xen and allows to have a fixed asids
>> throughout the lifecycle of all domains. Having a fixed asid
>> for non-SEV domains also presents us with the opportunity to
>> further take use of AMD instructions like TLBSYNC and INVLPGB
>> for broadcasting the TLB invalidations.
>>
>> Introduce vcpu->needs_tlb_flush attribute to schedule a guest TLB
>> flush for the next VMRUN/VMENTER. This will be later be done using
>> either TLB_CONTROL field (AMD) or INVEPT (Intel). This flush method
>> is used in place of the current ASID swapping logic.
>>
>> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
>> Signed-off-by: Vaishali Thakkar <vaishali.thakkar@suse.com> (formely vat=
es.tech)
> 
> Not sure whether you may legitimately alter pre-existing S-o-b. In
> any event the two S-o-b looks to be in the wrong order; like most
> other tags they want to be sorted chronologically.
> 

Yes, I misordered it, will fix it for the next version.

>> ---
>> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>
>> Should the ASID/VPID/VMID management logic code being shared accross
>> x86/ARM/RISC-V ?
> 
> If all present and future architectures agree on how exactly they want
> to use these IDs. Which I'm unsure of. RISC-V is now vaguely following
> the original x86 model.
> 
>> Is it possible to have multiples vCPUs of a same domain simultaneously
>> scheduled on top of a single pCPU ? If so, it would need a special
>> consideration for this corner case, such as we don't miss a TLB flush
>> in such cases.
> 
> No, how would two entities be able to run on a single pCPU at any single
> point in time?
> 

It was more concerning regarding having 2 vCPUs of the same domain (thus 
sharing the same ASID) running consecutively, e.g having on the same core
   dom1.vcpu1 -> dom1.vcpu2

without a appropriate TLB flush; because the address space may not be 
consistent between 2 vCPUs.

I found a approach to fix it by tracking per domain which vCPU last ran 
on each pCPU so that in case of mismatch, we need to TLB flush. Along 
with explictely flush the TLB when the vCPU is migrated, because in the 
case too the TLB can be inconsistent for the ASID.

>> I get various stability when testing shadow paging in these patches, uns=
ure
>> what's the exact root case. HAP works perfectly fine though.
>>
>> TODO:
>> - Intel: Don't assign the VPID at each VMENTER, though we need
>>    to rethink how we manage VMCS with nested virtualization / altp2m
>>    for changing this behavior.
>> - AMD: Consider hot-plug of CPU with ERRATA_170. (is it possible ?)
>> - Consider cases where we don't have enough ASIDs (e.g Xen as nested gue=
st)
>> - Nested virtualization ASID management
> 
> For these last two points - maybe we really need a mixed model?
> 

Mixed model would not allow future support for broadcast TLB 
invalidation (even for hypervisor use) with e.g AMD INVLPGB or (future) 
Intel Remote Action Request.

>> ---
>>   xen/arch/x86/flushtlb.c                |  31 +++---
>>   xen/arch/x86/hvm/asid.c                | 148 +++++++++----------------
>>   xen/arch/x86/hvm/emulate.c             |   2 +-
>>   xen/arch/x86/hvm/hvm.c                 |  14 ++-
>>   xen/arch/x86/hvm/nestedhvm.c           |   6 +-
>>   xen/arch/x86/hvm/svm/asid.c            |  77 ++++++++-----
>>   xen/arch/x86/hvm/svm/nestedsvm.c       |   1 -
>>   xen/arch/x86/hvm/svm/svm.c             |  36 +++---
>>   xen/arch/x86/hvm/svm/svm.h             |   4 -
>>   xen/arch/x86/hvm/vmx/vmcs.c            |   5 +-
>>   xen/arch/x86/hvm/vmx/vmx.c             |  68 ++++++------
>>   xen/arch/x86/hvm/vmx/vvmx.c            |   5 +-
>>   xen/arch/x86/include/asm/flushtlb.h    |   7 --
>>   xen/arch/x86/include/asm/hvm/asid.h    |  25 ++---
>>   xen/arch/x86/include/asm/hvm/domain.h  |   1 +
>>   xen/arch/x86/include/asm/hvm/hvm.h     |  15 +--
>>   xen/arch/x86/include/asm/hvm/svm/svm.h |   5 +
>>   xen/arch/x86/include/asm/hvm/vcpu.h    |  10 +-
>>   xen/arch/x86/include/asm/hvm/vmx/vmx.h |   4 +-
>>   xen/arch/x86/mm/hap/hap.c              |   6 +-
>>   xen/arch/x86/mm/p2m.c                  |   7 +-
>>   xen/arch/x86/mm/paging.c               |   2 +-
>>   xen/arch/x86/mm/shadow/hvm.c           |   1 +
>>   xen/arch/x86/mm/shadow/multi.c         |  12 +-
>>   xen/include/xen/sched.h                |   2 +
>>   25 files changed, 227 insertions(+), 267 deletions(-)
> 
> I think I said this to Vaishali already: This really wants splitting up s=
ome,
> to become halfway reviewable.
> 

Indeed, I am looking for a approach for splitting the change without 
breaking things in-between patches.

> Jan
> 

Teddy


Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Fri Aug 29 14:24:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 14:24:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101510.1454553 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us01i-0007dX-F0; Fri, 29 Aug 2025 14:24:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101510.1454553; Fri, 29 Aug 2025 14:24: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 1us01i-0007dQ-BA; Fri, 29 Aug 2025 14:24:26 +0000
Received: by outflank-mailman (input) for mailman id 1101510;
 Fri, 29 Aug 2025 14:24:25 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oFyT=3J=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1us01h-0007dK-B0
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 14:24:25 +0000
Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com
 [2a00:1450:4864:20::32e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dc54ee24-84e3-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 16:24:24 +0200 (CEST)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-45b84367affso194635e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 07:24:24 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-45b732671b7sm49329625e9.3.2025.08.29.07.24.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 29 Aug 2025 07:24: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>
X-Inumbo-ID: dc54ee24-84e3-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756477463; x=1757082263; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=HSY4lFCPLQwuYqlpLNgxvukBPjKyjCSieNIik9azPXg=;
        b=ptV5a2h6zIxYT4+OZagyH3y5OcN85LcGApQaW50DhYtWQZ1yswHcTcOS6HM9LLYPUH
         geczecJJ5jFp0z6Rwl88uDqi/Ya3pE2RiqIUczpYguCD+YBla8YtDBTXa5K8fVyiCpIR
         7m/cZAV8p7mBQ7aPr845ivfT1DP8B0DVcBLMI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756477463; x=1757082263;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=HSY4lFCPLQwuYqlpLNgxvukBPjKyjCSieNIik9azPXg=;
        b=BwmJU0sqzyLpLrSUtzaFlafa6MeY9hlQLjiympu7i3ifnf4BrDnJcvJIHhDzFC3rs/
         QhxFrR8IjbSn24SwqF7wBvsCKbtBgAeKbvJx1PERDD5iHrE3wFWzL5e5FostC5o5wkhk
         roOBVnzyyHIpMUYutmPjx49k1I/X+Arqios/LAYMmtk9MRRiwKEvSRg8WLwkCbt7TKL5
         +NTQUCFgwD/p+yE/xX76Z+Qp4n4Wpq21OHKrxDBMXDOKd8fWB7w3x0nQscbc7Q/sCOOz
         Wdea9FX82I4tOuShcI6zUl+qWlrZbGGKvggIGmnTFzdZTvYyyzar8oEteTziax0pLm/4
         k0yw==
X-Gm-Message-State: AOJu0Yz4cSUkUyq7YEgyD4mGnJHYxKynRxKRIDULUpJjCrYfZHqflHqu
	a2F0MUvFdygK9L0cG7JTthlYhAW6Pl+kaxmB7A91xQVHjv8FWKLeJJTTTg2/yTxs4Xw=
X-Gm-Gg: ASbGncuJ4FiuDnxiJ8SYjCoO/xf2KcQVKyTIiCQU4x86wqrs2uARIdCelUu+P0MdJz1
	+VbOizSk8TVqeekx61seP6fLCFipEzvPbplRxDhcXYmj9PYwofo8DxxuuRv5HIAfH6u8E6pc/KG
	a2PJt313/IVHFS7sm3jka/TSYcpryZjlQxowBCC3ZiODEMVaqnAFaFrDsJLJUaMquXpNipzXeQa
	vHhpNRPDt+6a1FbiHxSXVeoON3jfycScwkiG9UDeVmUXagULx7N4s9vSvMxeL1EkcVonPV9FLs6
	rgyT/lGLR0N7etP/nLxk8ukh/Pb+mT8PQMCHo3+dWuKOB/kmrg+D9h/wbmZQpR9UFf9jk5Go8aT
	aZcENlJAg5f14CgwCWTKMinVDBUiZbqW4S+y4JyQG0LbK13icL43itjFCVBoWizmtGWU7NyNHln
	5U
X-Google-Smtp-Source: AGHT+IE2rBHKdeb/VlJKYtnwtd6k+CXnt413B65xP25iFOHMuiA4QIU7qkPFl0TeNBrCQlSs14w8Vg==
X-Received: by 2002:a05:600c:4f44:b0:45b:7f6d:1271 with SMTP id 5b1f17b1804b1-45b7f6d1419mr25090895e9.15.1756477463312;
        Fri, 29 Aug 2025 07:24:23 -0700 (PDT)
Date: Fri, 29 Aug 2025 16:24:21 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v2 1/5] symbols: add minimal self-test
Message-ID: <aLG4FdcHSLW6oaVA@Mac.lan>
References: <ceef1876-8759-465c-9a74-309b6b92f773@suse.com>
 <879646dd-b55e-4b42-b637-d3b14570b880@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <879646dd-b55e-4b42-b637-d3b14570b880@suse.com>

On Wed, Apr 02, 2025 at 03:57:57PM +0200, Jan Beulich wrote:
> ... before making changes to the involved logic.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> While Andrew validly suggests cf_check isn't a requirement for selecting
> which function(s) to use (with the non-upstream gcc patch that we're
> using in CI), that's only because of how the non-upstream patch works.
> Going function-pointer -> unsigned long -> function-pointer without it
> being diagnosed that the cf_check is missing is a shortcoming there, and
> might conceivably be fixed at some point. (Imo any address-taking on a
> function should require it to be cf_check.) Hence I'd like to stick to
> using cf_check functions only for passing to test_lookup().
> 
> With this FAST_SYMBOL_LOOKUP may make sense to permit enabling even
> when LIVEPATCH=n. Thoughts? (In this case "symbols: centralize and re-
> arrange $(all_symbols) calculation" would want pulling ahead.)
> 
> --- a/xen/common/symbols.c
> +++ b/xen/common/symbols.c
> @@ -260,6 +260,41 @@ unsigned long symbols_lookup_by_name(con
>      return 0;
>  }
>  
> +#ifdef CONFIG_SELF_TESTS
> +
> +static void __init test_lookup(unsigned long addr, const char *expected)
> +{
> +    char buf[KSYM_NAME_LEN + 1];
> +    const char *name, *symname;
> +    unsigned long size, offs;
> +
> +    name = symbols_lookup(addr, &size, &offs, buf);
> +    if ( !name )
> +        panic("%s: address not found\n", expected);
> +    if ( offs )
> +        panic("%s: non-zero offset (%#lx) unexpected\n", expected, offs);

If there's a non-zero offset returned, could you also print the
returned name? (so use %s+%#lx) there's a change the returned name
doesn't match what we expect if there's a non-zero offset.

The rest LGTM:

Acked-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 14:42:42 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 14:42:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101535.1454563 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us0JI-0002Hm-W7; Fri, 29 Aug 2025 14:42:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101535.1454563; Fri, 29 Aug 2025 14:42: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 1us0JI-0002Hf-SM; Fri, 29 Aug 2025 14:42:36 +0000
Received: by outflank-mailman (input) for mailman id 1101535;
 Fri, 29 Aug 2025 14:42:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=OeP6=3J=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1us0JH-0002HZ-NT
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 14:42:35 +0000
Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com
 [2a00:1450:4864:20::12a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 65d78884-84e6-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 16:42:33 +0200 (CEST)
Received: by mail-lf1-x12a.google.com with SMTP id
 2adb3069b0e04-55f69e15914so759246e87.2
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 07:42:33 -0700 (PDT)
Received: from [192.168.0.110] ([91.123.151.69])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-55f67a419d3sm657316e87.132.2025.08.29.07.42.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 29 Aug 2025 07:42: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>
X-Inumbo-ID: 65d78884-84e6-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756478553; x=1757083353; 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=swDZ+fntRONO5czR6KwW+GkUl6TgUf3mVzoeTy96+UA=;
        b=WfcbNU8cNq6R2rjuCsqs1eC4fa+cb1PI6wS7fFJBtKshPSXfDioaeipU7gVDZAeYpl
         CzQOyzwGs8vSkq5jFoeFEavjolKqDpr4x5iNCh/6XERU5QADk3vtBhnLN/A0Y54adoD/
         pk99rgomQSJvHqPY4BhhZvmEVzzpFnrkO8So8ZueJC4rCV7JvP+LO8y1vayCLvxpJZaI
         eswKZWLg35dq/AiaOX+zvCE6n6nWAWCBDd3UrSwuhElPOGrCPHMb5LxnJvv1LJTtdFXb
         A7Q06fYF5zAnqZxKfG96F+17uYIKcYJGPS+pKTZrvVO/9zADdka1tVK9OJc0fbNN3bje
         HQnQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756478553; x=1757083353;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=swDZ+fntRONO5czR6KwW+GkUl6TgUf3mVzoeTy96+UA=;
        b=VylLbvTWonClBZUVASM6Gpbec6OFRON2dY6mEaiO6x5pYHt5IfPWTixvksReWSLRbq
         5s+F3OAFs9c4xhWCDEQU0OiKzEtZ2Cc7BXOmEEWgb2Pcjpkc0zao54SV22fWDtpCtaS0
         wxtZHvh0j864kNqTKpck0hxnUyVdf4+lh8gjCE0SRpUB8N2Pzp5PBcsqBDwtwuyialy0
         voZNEP+gUmUNVcp6yGrCv9qd73IHeW9sWnO6NdThoK/vUT/x3tV7apxQwteNMrNLIOyN
         zWGtV75hN0E0Cgie+AqpODf7QQTNm+9UK3XFNonJD8aAovzkO1mLDvA2O8cSDG0CD2mZ
         cakw==
X-Forwarded-Encrypted: i=1; AJvYcCWQGoaGYy2x32ewoQdzI+VYIXbmYODdZInjjuKe50fdmSX6ycaXhlvyyNZqpITEfgEhtfnNgj/A144=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzCQ60pZySps1swjLqxQr0LNCYrt2TwdI+Gbl9FPyKgNOWbeUIM
	M6acwVhEpXAw+2+sbJfjAnsVBOxxoul7Qq2fRfQ5Fvn9C1ikKdW+Y7og
X-Gm-Gg: ASbGncsjbCjNl9GrKaOLiG+O+4cLpDwZG0kPJb22pB4enUFoXd3JbpWN97Gmiq9wsAt
	ssDb3dZ2uCafVNqK+ynfniVJnD/hxnd7t3D1/7ecMAICQ/IjjU/RifLJDxIa7VcgSslBCr6tHnU
	xpqn5XB/yIXBnaL9ufEuTHyPMq0XGHtv/N4MPMid2KSnd8Dpjgpmol9iJrPWKdAiNA7qqy9dkFE
	E7RLxkSkYFlW1L/xS3PT12YjZtDfHpWTv4n9//VvsRLAidAOAaLb8qqmqhuDK14qu3oyJrb87Kc
	gKky5QWAPedWeGUwb3H1OlTtmOF+NwWqqULPObOvRs3w7LioSsLM5UBcjVWXkxNs4A6vrNF3kzl
	YSrvkAqE4jZdxSP29fZ3IenRXvuFHVpUdnpYS
X-Google-Smtp-Source: AGHT+IG8gb1xVes/hmugAqnhOm7mWQbjxuHoG+1PsX80zrHtIvyoovISTPIJqm96jFt/tUcZROeZDw==
X-Received: by 2002:a05:6512:2608:b0:55f:467f:37d6 with SMTP id 2adb3069b0e04-55f467f3e42mr5609485e87.35.1756478552512;
        Fri, 29 Aug 2025 07:42:32 -0700 (PDT)
Message-ID: <4eb6782d-2b5c-47e9-a81b-8bbeb17b83e6@gmail.com>
Date: Fri, 29 Aug 2025 17:42:30 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 2/4] xen/arm: scmi-smc: update to be used under sci
 subsystem
To: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Bertrand Marquis <bertrand.marquis@arm.com>, Jan Beulich
 <jbeulich@suse.com>, Juergen Gross <jgross@suse.com>,
 Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>
References: <cover.1756399156.git.oleksii_moisieiev@epam.com>
 <8e7e9dcdd643b6681a6127d56b68536b987141af.1756399156.git.oleksii_moisieiev@epam.com>
Content-Language: en-US
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
In-Reply-To: <8e7e9dcdd643b6681a6127d56b68536b987141af.1756399156.git.oleksii_moisieiev@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 28.08.25 19:40, Oleksii Moisieiev wrote:


Hello Oleksii

the patch lgtm, just some comments

> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> The introduced SCI (System Control Interface) subsystem provides unified
> interface to integrate in Xen SCI drivers which adds support for ARM
> firmware (EL3, SCP) based software interfaces (like SCMI) that are used in
> system management. The SCI subsystem allows to add drivers for different FW
> interfaces or have different drivers for the same FW interface (for example,
> SCMI with different transports).
> 
> This patch updates SCMI over SMC calls handling layer, introduced by
> commit 3e322bef8bc0 ("xen/arm: firmware: Add SCMI over SMC calls handling
> layer"), to be SCI driver:
> - convert to DT device;
> - convert to SCI Xen interface.
> 
> There are no functional changes in general, the driver is just adopted
> to the SCI interface.
> 
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
> ---
> 
> Changes in v6:
> - add R-b tag
> 
>   xen/arch/arm/firmware/Kconfig                | 13 ++-
>   xen/arch/arm/firmware/scmi-smc.c             | 93 +++++++++++---------
>   xen/arch/arm/include/asm/firmware/scmi-smc.h | 41 ---------
>   xen/arch/arm/vsmc.c                          |  5 +-
>   xen/include/public/arch-arm.h                |  1 +
>   5 files changed, 64 insertions(+), 89 deletions(-)
>   delete mode 100644 xen/arch/arm/include/asm/firmware/scmi-smc.h
> 
> diff --git a/xen/arch/arm/firmware/Kconfig b/xen/arch/arm/firmware/Kconfig
> index fc7918c7fc..bbf88fbb9a 100644
> --- a/xen/arch/arm/firmware/Kconfig
> +++ b/xen/arch/arm/firmware/Kconfig
> @@ -8,9 +8,18 @@ config ARM_SCI
>   
>   menu "Firmware Drivers"
>   
> +choice
> +	prompt "ARM SCI driver type"
> +	default SCMI_SMC
> +	help
> +	Choose which ARM SCI driver to enable.
> +
> +config ARM_SCI_NONE
> +	bool "none"
> +
>   config SCMI_SMC
>   	bool "Forward SCMI over SMC calls from hwdom to EL3 firmware"
> -	default y
> +	select ARM_SCI
>   	help
>   	  This option enables basic awareness for SCMI calls using SMC as
>   	  doorbell mechanism and Shared Memory for transport ("arm,scmi-smc"
> @@ -18,4 +27,6 @@ config SCMI_SMC
>   	  firmware node is used to trap and forward corresponding SCMI SMCs
>   	  to firmware running at EL3, for calls coming from the hardware domain.
>   
> +endchoice
> +
>   endmenu
> diff --git a/xen/arch/arm/firmware/scmi-smc.c b/xen/arch/arm/firmware/scmi-smc.c
> index 33473c04b1..13d1137592 100644
> --- a/xen/arch/arm/firmware/scmi-smc.c
> +++ b/xen/arch/arm/firmware/scmi-smc.c
> @@ -9,6 +9,7 @@
>    * Copyright 2024 NXP
>    */
>   
> +#include <asm/device.h>

NIT: Should be included after "xen" headers
(could probably be updated on commit)

>   #include <xen/acpi.h>
>   #include <xen/device_tree.h>
>   #include <xen/errno.h>
> @@ -16,12 +17,11 @@
>   #include <xen/sched.h>
>   #include <xen/types.h>
>   
> +#include <asm/firmware/sci.h>
>   #include <asm/smccc.h>
> -#include <asm/firmware/scmi-smc.h>
>   
>   #define SCMI_SMC_ID_PROP   "arm,smc-id"
>   
> -static bool __ro_after_init scmi_enabled;
>   static uint32_t __ro_after_init scmi_smc_id;
>   
>   /*
> @@ -41,14 +41,11 @@ static bool scmi_is_valid_smc_id(uint32_t fid)
>    *
>    * Returns true if SMC was handled (regardless of response), false otherwise.
>    */
> -bool scmi_handle_smc(struct cpu_user_regs *regs)
> +static bool scmi_handle_smc(struct cpu_user_regs *regs)
>   {
>       uint32_t fid = (uint32_t)get_user_reg(regs, 0);
>       struct arm_smccc_res res;
>   
> -    if ( !scmi_enabled )
> -        return false;
> -
>       if ( !scmi_is_valid_smc_id(fid) )
>           return false;
>   
> @@ -78,49 +75,45 @@ bool scmi_handle_smc(struct cpu_user_regs *regs)
>       return true;
>   }
>   
> -static int __init scmi_check_smccc_ver(void)
> +static int scmi_smc_domain_init(struct domain *d,
> +                                struct xen_domctl_createdomain *config)
>   {
> -    if ( smccc_ver < ARM_SMCCC_VERSION_1_1 )
> -    {
> -        printk(XENLOG_WARNING
> -               "SCMI: No SMCCC 1.1 support, SCMI calls forwarding disabled\n");
> -        return -ENOSYS;
> -    }
> +    if ( !is_hardware_domain(d) )
> +        return 0;
>   
> +    d->arch.sci_enabled = true;
> +    printk(XENLOG_DEBUG "SCMI: %pd init\n", d);
>       return 0;
>   }
>   
> -static int __init scmi_dt_init_smccc(void)
> +static void scmi_smc_domain_destroy(struct domain *d)
>   {
> -    static const struct dt_device_match scmi_ids[] __initconst =
> -    {
> -        /* We only support "arm,scmi-smc" binding for now */
> -        DT_MATCH_COMPATIBLE("arm,scmi-smc"),
> -        { /* sentinel */ },
> -    };
> -    const struct dt_device_node *scmi_node;
> -    int ret;
> +    if ( !is_hardware_domain(d) )
> +        return;
>   
> -    /* If no SCMI firmware node found, fail silently as it's not mandatory */
> -    scmi_node = dt_find_matching_node(NULL, scmi_ids);
> -    if ( !scmi_node )
> -        return -EOPNOTSUPP;
> +    printk(XENLOG_DEBUG "SCMI: %pd destroy\n", d);
> +}
>   
> -    ret = dt_property_read_u32(scmi_node, SCMI_SMC_ID_PROP, &scmi_smc_id);
> -    if ( !ret )
> +static int __init scmi_check_smccc_ver(void)
> +{
> +    if ( smccc_ver < ARM_SMCCC_VERSION_1_1 )
>       {
> -        printk(XENLOG_ERR "SCMI: No valid \"%s\" property in \"%s\" DT node\n",
> -               SCMI_SMC_ID_PROP, scmi_node->full_name);
> -        return -ENOENT;
> +        printk(XENLOG_WARNING
> +               "SCMI: No SMCCC 1.1 support, SCMI calls forwarding disabled\n");
> +        return -ENOSYS;
>       }
>   
> -    scmi_enabled = true;
> -
>       return 0;
>   }
>   
> +static const struct sci_mediator_ops scmi_smc_ops = {
> +    .handle_call = scmi_handle_smc,
> +    .domain_init = scmi_smc_domain_init,
> +    .domain_destroy = scmi_smc_domain_destroy,
> +};
> +
>   /* Initialize the SCMI layer based on SMCs and Device-tree */
> -static int __init scmi_init(void)
> +static int __init scmi_dom0_init(struct dt_device_node *dev, const void *data)
>   {
>       int ret;
>   
> @@ -134,22 +127,36 @@ static int __init scmi_init(void)
>       if ( ret )
>           return ret;
>   
> -    ret = scmi_dt_init_smccc();
> -    if ( ret == -EOPNOTSUPP )
> -        return ret;
> +    ret = dt_property_read_u32(dev, SCMI_SMC_ID_PROP, &scmi_smc_id);
> +    if ( !ret )
> +    {
> +        printk(XENLOG_ERR "SCMI: No valid \"%s\" property in \"%s\" DT node\n",
> +               SCMI_SMC_ID_PROP, dt_node_full_name(dev));
> +        return -ENOENT;
> +    }

I know that you are just moving the code, but I wonder whether it makes 
sense to validate that retrieved value at least corresponds to SiP 
Service Calls (for the future hardening)?


> +
> +    ret = sci_register(&scmi_smc_ops);
>       if ( ret )
> -        goto err;
> +    {
> +        printk(XENLOG_ERR "SCMI: mediator already registered (ret = %d)\n",
> +               ret);
> +        return ret;
> +    }
>   
>       printk(XENLOG_INFO "Using SCMI with SMC ID: 0x%x\n", scmi_smc_id);
>   
>       return 0;
> -
> - err:
> -    printk(XENLOG_ERR "SCMI: Initialization failed (ret = %d)\n", ret);
> -    return ret;
>   }
>   
> -__initcall(scmi_init);
> +static const struct dt_device_match scmi_smc_match[] __initconst = {
> +    DT_MATCH_COMPATIBLE("arm,scmi-smc"),
> +    { /* sentinel */ },
> +};
> +
> +DT_DEVICE_START(scmi_smc, "SCMI SMC DOM0", DEVICE_FIRMWARE)
> +    .dt_match = scmi_smc_match,
> +    .init = scmi_dom0_init,
> +DT_DEVICE_END
>   
>   /*
>    * Local variables:
> diff --git a/xen/arch/arm/include/asm/firmware/scmi-smc.h b/xen/arch/arm/include/asm/firmware/scmi-smc.h
> deleted file mode 100644
> index 6b1a164a40..0000000000
> --- a/xen/arch/arm/include/asm/firmware/scmi-smc.h
> +++ /dev/null
> @@ -1,41 +0,0 @@
> -/* SPDX-License-Identifier: GPL-2.0-only */
> -/*
> - * xen/arch/arm/include/asm/firmware/scmi-smc.h
> - *
> - * ARM System Control and Management Interface (SCMI) over SMC
> - * Generic handling layer
> - *
> - * Andrei Cherechesu <andrei.cherechesu@nxp.com>
> - * Copyright 2024 NXP
> - */
> -
> -#ifndef __ASM_SCMI_SMC_H__
> -#define __ASM_SCMI_SMC_H__
> -
> -#include <xen/types.h>
> -
> -struct cpu_user_regs;
> -
> -#ifdef CONFIG_SCMI_SMC
> -
> -bool scmi_handle_smc(struct cpu_user_regs *regs);
> -
> -#else
> -
> -static inline bool scmi_handle_smc(struct cpu_user_regs *regs)
> -{
> -    return false;
> -}
> -
> -#endif /* CONFIG_SCMI_SMC */
> -
> -#endif /* __ASM_SCMI_H__ */
> -
> -/*
> - * Local variables:
> - * mode: C
> - * c-file-style: "BSD"
> - * c-basic-offset: 4
> - * indent-tabs-mode: nil
> - * End:
> - */
> diff --git a/xen/arch/arm/vsmc.c b/xen/arch/arm/vsmc.c
> index 2469738fcc..78d5bdf56f 100644
> --- a/xen/arch/arm/vsmc.c
> +++ b/xen/arch/arm/vsmc.c
> @@ -21,7 +21,6 @@
>   #include <asm/traps.h>
>   #include <asm/vpsci.h>
>   #include <asm/platform.h>
> -#include <asm/firmware/scmi-smc.h>
>   
>   /* Number of functions currently supported by Hypervisor Service. */
>   #define XEN_SMCCC_FUNCTION_COUNT 3
> @@ -233,7 +232,7 @@ static bool handle_sip(struct cpu_user_regs *regs)
>       if ( platform_smc(regs) )
>           return true;
>   
> -    return scmi_handle_smc(regs);
> +    return sci_handle_call(regs);
>   }
>   
>   /*
> @@ -301,8 +300,6 @@ static bool vsmccc_handle_call(struct cpu_user_regs *regs)
>               break;
>           case ARM_SMCCC_OWNER_SIP:
>               handled = handle_sip(regs);
> -            if ( !handled )
> -                handled = sci_handle_call(regs);

These two lines where added by [PATCH v6 1/4] xen/arm: add generic SCI 
subsystem, but here they are removed. This is not a request for an extra 
work right now, but ideally the series should be splitted without an 
extra temporarily changes.

>               break;
>           case ARM_SMCCC_OWNER_TRUSTED_APP ... ARM_SMCCC_OWNER_TRUSTED_APP_END:
>           case ARM_SMCCC_OWNER_TRUSTED_OS ... ARM_SMCCC_OWNER_TRUSTED_OS_END:
> diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
> index 55eed9992c..095b1a23e3 100644
> --- a/xen/include/public/arch-arm.h
> +++ b/xen/include/public/arch-arm.h
> @@ -328,6 +328,7 @@ DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t);
>   #define XEN_DOMCTL_CONFIG_TEE_FFA       2
>   
>   #define XEN_DOMCTL_CONFIG_ARM_SCI_NONE      0
> +#define XEN_DOMCTL_CONFIG_ARM_SCI_SCMI_SMC  1
>   
>   struct xen_arch_domainconfig {
>       /* IN/OUT */



From xen-devel-bounces@lists.xenproject.org Fri Aug 29 15:02:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 15:02:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101553.1454574 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us0cV-000599-Dt; Fri, 29 Aug 2025 15:02:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101553.1454574; Fri, 29 Aug 2025 15:02:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us0cV-000592-94; Fri, 29 Aug 2025 15:02:27 +0000
Received: by outflank-mailman (input) for mailman id 1101553;
 Fri, 29 Aug 2025 15:02:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oFyT=3J=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1us0cU-00058w-42
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 15:02:26 +0000
Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com
 [2a00:1450:4864:20::32f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2bf53702-84e9-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 17:02:25 +0200 (CEST)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-45a1b05fe23so13247205e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 08:02:25 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 5b1f17b1804b1-45b66f2041fsm77290215e9.5.2025.08.29.08.02.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 29 Aug 2025 08:02: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>
X-Inumbo-ID: 2bf53702-84e9-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756479744; x=1757084544; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=ST6YNRFELq/hjQgJY634VvpZZNEM0BlNvbA1PsxLPws=;
        b=tZLfGY3lh2L+c4so/4z13O7tgA67uZnkCSStVkEbE4r/qN7/x+0MjZpeRWpyqkS/ig
         xmnFt9Ye70l968zrZe0l81aEaz9SK5gRcFGx8bNusKGJT/nHjLX+nX0yALKpgLwgGTyo
         rl2BX7hRzb89Eg0tjNpnXocq7FhmR3CrccuoI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756479744; x=1757084544;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=ST6YNRFELq/hjQgJY634VvpZZNEM0BlNvbA1PsxLPws=;
        b=Sv0axPTauxRhCOsEXaAYLsa+evhNNviwLsqTnAl0Ducp6nmW9fOjwni4mGVR0X6YRj
         Nskc1wjO81ZPk8/y9RijoQSwGRMyeSAG/baPm8EFlMfbOIKH85MaWPq/anrImfSNIUiw
         +hdjxL3hlwc4nEZDZHo0xB82LR+TNTKVrcrPTCaLSa+qqhWa6MmasM6RI4g6mlfVx6l/
         x6GkNVBnyIOYAfjtluaiL9MuyeXH594CzvbqOxkiWMqtAtq+2xmUVRB/bAe1b5DUIcEb
         AeNAYKCUwyhi2tfNKwViQ9UUjnzhTs3r8iYB+6Ita3HcGkofrlgFYtdAr6gChK2yPjRS
         GKWQ==
X-Forwarded-Encrypted: i=1; AJvYcCWnE3htIFF27D7gkeAkkIdahGucUYCJBWl1NwzBurWER0cQFn9IrHAMon0nJbfTBDwWh6uM0WXipNE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxBAd/PSMojB0yzhffv9Itkay2RKLXS/L2hHTFELn8zz7JN9rkC
	zIyQUGLLjNap3ApIxxTA0cGx6cJa5DK+T+tAMFlQGV0lnI6AelVB1E9sO5o2Fwsu8Lg=
X-Gm-Gg: ASbGncsSRCyYDpThosnHODlyRDV+W7W0g3RAXTNFiaGA8x+/evvcIzDH4z2Iex8PC7X
	T13xs8xV4cpL+C+QFPaVk8uKmm3oELbrQgZe8NN2V5I1Vnp0nCqCIrJMw30u8nEAD53Y9i7sjJh
	M5QZ5Kf7UsLsBMpRPk4cUPkL7LoedAoiC8VgAa+iPnVKtZSuXevJuW1x+QNfxtt/+moNCU3h2ai
	nqRMOSMcOx1LOplWIruu7s6z1LicAFSNjUAkRSwtjpUuL0DmDqiUYNMW+stZb8+L/4uVku7jXOS
	NH8lj1sPYx3KX4NvD5zBI9iTIW58A/mYy9K62kQaYfmhDPWrrKdfHQo/6oemwKl3sLa32xdAsdQ
	/UlLe/WFCpuYudtKZhiWq2oDrXDcGyOH+l3gDpCWFaKppcUF/msDj9jSQH6+xhJUGvQ==
X-Google-Smtp-Source: AGHT+IESjg3c2yY+iw56fE5HMoRUnAu0wS8fYnTCMNu+gitNHQOsgAThzDuk10C6mpT7k7DHWtQ4CA==
X-Received: by 2002:a05:600c:a49:b0:453:66f:b96e with SMTP id 5b1f17b1804b1-45b517ad6b4mr237168965e9.11.1756479744324;
        Fri, 29 Aug 2025 08:02:24 -0700 (PDT)
Date: Fri, 29 Aug 2025 17:02:22 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Jan Beulich <jbeulich@suse.com>,
	"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>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>
Subject: Re: [PATCH v2 4/5] symbols: centralize and re-arrange $(all_symbols)
 calculation
Message-ID: <aLHA_uhVW8FUedvf@Mac.lan>
References: <ceef1876-8759-465c-9a74-309b6b92f773@suse.com>
 <5a77bb51-22d1-4956-8e45-c2412c413766@suse.com>
 <f44709be-62a9-4932-b550-cf5446d4bf1c@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <f44709be-62a9-4932-b550-cf5446d4bf1c@amd.com>

On Wed, Aug 27, 2025 at 09:05:59PM -0400, Jason Andryuk wrote:
> On 2025-04-02 09:59, Jan Beulich wrote:
> > For one there's no need for each architecture to have the same logic.
> > Move to the root Makefile, also to calculate just once.
> > 
> > And then re-arrange to permit FAST_SYMBOL_LOOKUP to be independent of
> > LIVEPATCH, which may be useful in (at least) debugging.
> > 
> > Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

Reviewed-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

Thanks.


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 15:13:54 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 15:13:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101578.1454583 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us0nU-0006zy-Bm; Fri, 29 Aug 2025 15:13:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101578.1454583; Fri, 29 Aug 2025 15:13: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 1us0nU-0006zr-96; Fri, 29 Aug 2025 15:13:48 +0000
Received: by outflank-mailman (input) for mailman id 1101578;
 Fri, 29 Aug 2025 15:13:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=oFyT=3J=cloud.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1us0nS-0006zl-LJ
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 15:13:46 +0000
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com
 [2a00:1450:4864:20::334])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c19475e9-84ea-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 17:13:45 +0200 (CEST)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-45b82a21e6bso4032855e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 08:13:45 -0700 (PDT)
Received: from localhost (112.pool92-178-7.dynamic.orange.es. [92.178.7.112])
 by smtp.gmail.com with UTF8SMTPSA id
 ffacd0b85a97d-3cf276d204asm3752257f8f.24.2025.08.29.08.13.44
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 29 Aug 2025 08:13: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>
X-Inumbo-ID: c19475e9-84ea-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756480425; x=1757085225; darn=lists.xenproject.org;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date:from:to
         :cc:subject:date:message-id:reply-to;
        bh=NQk2qduKaq9gTkOBDGw4VlGAUkWo/MkqHGXDBwQLNME=;
        b=lbvQr1JRkl4GExeq2m17IFIB2GtHGsont2ZMPwr0aeNahmRvh9b8D6r/Rga0fXwPaC
         nF0Rs3YYQ63aRfFaQCApcEAJqpveoPEdp5ejL3cMCnnqcse71NIButBj4uilRqWwmBvp
         Gnk4fLSyzFqkIih7TYB1YIlPx7ZJ9Oz0eJw/A=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756480425; x=1757085225;
        h=in-reply-to:content-transfer-encoding:content-disposition
         :mime-version:references:message-id:subject:cc:to:from:date
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=NQk2qduKaq9gTkOBDGw4VlGAUkWo/MkqHGXDBwQLNME=;
        b=I5MIv6Qir3e5qcb+Pcu6JaNs+2SLmb1wX+q/rKa4MYSl3YKn6s3fM6RHLgipETOUY+
         ZhJPdclI8R/loSMMVi1Wvs84nDVhMbGmB+fa2ZrBRzLxoVADQul44giHzrvIQNglnH6e
         jY8h7TmJXdLSE30aO6bBdFf3XZ444v0CIA3oMmEvMUCOhk2hX0Tj2hgzY7FNks9ZkOF0
         LLFzIYp0MDrkCyAn0O19jtb26kF2lF25VjPZioLxeOF2DytY5OGSDdVP+9K1e8cev04q
         JVbVEo8oizAGAzuNGSUJx2LI6um8EG1c8N1/Q35grq37AZ5d7jic7kRpDo9FjTXBpqmY
         0Raw==
X-Forwarded-Encrypted: i=1; AJvYcCVf6SzQkRfWKlUisINdk/ZcApGpUYIC3zPxSV/lPOOenv29ZJEhx5BN/elhKVD41p8rcHg+oyFsyR0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwEgHlDdm4pHij57oHbQZLa9yHPZeuuGsBCr0I+p8LoBVUuUNYQ
	CjRQHtvc8zLSjP5xLLpjLgyOndf9GfNpJgf9xtSqySt0e81x4PWEPtxO7tL0Ye0C8IE=
X-Gm-Gg: ASbGncsKGyZPKkmbZxbHN8W3cKErPUwNF8JWIhBrrOoNpUbjphE1upoF9m4ycwndzXt
	vHizS9/QNaauKi1xa6DBsMga7FzfGy0nJfsFsaguU/2t0N1/8Tr+e6fP1rTA7jP3BopnpOn/oJl
	QeSgPB8RJfZEelc3Ahc4oOA/4nTa3T/QocPyjeBfs28HJhtkQ+1aSNdDydVHqV9qJBjvmSCSq+U
	xBo/L9z3TJQGDgwiSxzI7miU7sDWxPn+ELekR7M1G7GwcZIZHOHwA+dU19nZnmK45M71Qk1D/WH
	FBMWAoprYhGRPkMV+/hfRR8rEuhqwhPgZvRND2OArDsBj4Vrhc0hUumuhUh/KXUIAgJJGb7EK89
	oj/skun7K/pcCfTC5uOlfWh1fuqFTQZsAa0Mc2EKc5GT7tGjwtfbb3KZHYGZ1HCd0OhUMoayufc
	JbRkdXAhG5p1g=
X-Google-Smtp-Source: AGHT+IFhp98FcBxebTq3u1enAA0IvE9CkFDCIgdQs0jDr0CyGvYLU03zsvihD2zqXJw+VB7UU+z7iw==
X-Received: by 2002:a05:600c:4451:b0:456:fdd:6030 with SMTP id 5b1f17b1804b1-45b517cfeacmr238089735e9.19.1756480424788;
        Fri, 29 Aug 2025 08:13:44 -0700 (PDT)
Date: Fri, 29 Aug 2025 17:13:43 +0200
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Jan Beulich <jbeulich@suse.com>,
	"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>
Subject: Re: [PATCH v2 5/5] symbols: prefer symbols which have a type
Message-ID: <aLHDpyuUipkL2shD@Mac.lan>
References: <ceef1876-8759-465c-9a74-309b6b92f773@suse.com>
 <b7261eaf-b3ce-4b71-aba2-3f40adbbe93e@suse.com>
 <8ec4b804-28d0-4f39-8d2e-29d326a6909c@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <8ec4b804-28d0-4f39-8d2e-29d326a6909c@amd.com>

On Wed, Aug 27, 2025 at 09:07:50PM -0400, Jason Andryuk wrote:
> On 2025-04-02 10:00, Jan Beulich wrote:
> > ... and thus typically also a size. Using global vs local is undesirable
> > in certain situations, e.g. when a "real" symbol is local and at the
> > same address as a section start/end one (which are all global).
> > 
> > Note that for xen.efi the checking for "Function" is only forward-
> > looking at this point: The function-ness of symbols (much like their
> > size) is lost when linking PE/COFF binaries from ELF objects with GNU ld
> > up to at least 2.44.
> > 
> > Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

Reviewed-by: Roger Pau MonnÃ© <roger.pau@citrix.com>

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 15:33:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 15:33:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101592.1454592 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us163-0001UD-SO; Fri, 29 Aug 2025 15:32:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101592.1454592; Fri, 29 Aug 2025 15:32: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 1us163-0001U6-P2; Fri, 29 Aug 2025 15:32:59 +0000
Received: by outflank-mailman (input) for mailman id 1101592;
 Fri, 29 Aug 2025 15:32:58 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <anthony@xenproject.org>) id 1us162-0001U0-6G
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 15:32:58 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1us15z-00CfSB-2m;
 Fri, 29 Aug 2025 15:32:56 +0000
Received: from [2a01:e0a:1da:8420:b77:bd5:6e45:7633] (helo=l14)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <anthony@xenproject.org>) id 1us15z-007jWh-2Z;
 Fri, 29 Aug 2025 15:32: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Transfer-Encoding:
	Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date;
	bh=SlcTOnJrVFknpB8LLcMBmj1NbMjmB8Z1Tib0iBZ4Xhk=; b=kuTMeYjmAiPNe0JnhsdY/Ro223
	GRVU39br/A5Iodrr+vWKoFlZTe1WrjVHbcoDGUirjUj9PQnMnQiieSjmm38FHf/EBkC+2yUkhlgCP
	h+ZOcUZ/GFiMr7fVamHifAC64/tIm8QGDWuUx0xsV6wsBr4wIVQf33F6Dih0Kkt7hEG8=;
Date: Fri, 29 Aug 2025 17:32:54 +0200
From: Anthony PERARD <anthony@xenproject.org>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: Re: [XEN PATCH 07/11] libxl: libxl__object_to_json() to json-c
Message-ID: <aLHIJtn2Eyhx537E@l14>
References: <20250808145602.41716-1-anthony@xenproject.org>
 <20250808145602.41716-8-anthony@xenproject.org>
 <05c49cee-d783-40e3-a4ce-da724c308a21@amd.com>
 <eae86371-51f6-4df3-8ca3-723303864126@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <eae86371-51f6-4df3-8ca3-723303864126@citrix.com>

On Wed, Aug 27, 2025 at 06:59:14PM +0100, Andrew Cooper wrote:
> On 27/08/2025 6:51 pm, Jason Andryuk wrote:
> > On 2025-08-08 10:55, Anthony PERARD wrote:
> >> From: Anthony PERARD <anthony.perard@vates.tech>
> >>
> >> - libxl changes:
> >>
> >> While doing so, we rename all "*_gen_json" function to "*_gen_jso" as
> >> they have different prototype. All the function pointer are been cast
> >> to (libxl__gen_json_callback) by "gentypes.py" when generating
> >> "*_to_json()" functions.
> >>
> >> We also introduce a few more "*_gen_jso" functions for "int" and
> >> "bool" because we can't use json_object_*() functions from json-c
> >> directly like it's done with yajl.
> >>
> >> To make the generation of _libxl_types*json.[ch] with both YAJL and
> >> json-c we add "--libjsonc" to gentypes.py so it can generate
> >> functions/types for both.
> >>
> >> Also introducing "jsonc_json_gen_fn" in the IDL, to be able to point
> >> to a different function when using json-c.
> >>
> >> Also, don't export any of the new *_gen_jso() function, at the cost of
> >> having "_hidden" macro in semi-public headers.
> >>
> >> - xl changes:
> >>
> >> Also, rework the implementation of printf_info() in `xl` to avoid
> >> using libxl_domain_config_gen_json() which isn't available without
> >> YAJL. The implementation using "json_object" call
> >> libxl_domain_config_to_json() which generate a plain string of JSON,
> >> which we parse to add it to our own json; this avoid a dependency on
> >> the json library used by libxl.
> >>
> >> Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>
> >
> >> @@ -358,6 +535,36 @@ int libxl__mac_parse_json(libxl__gc *gc, const
> >> libxl__json_object *o,
> >>       return libxl__parse_mac(libxl__json_object_get_string(o), *p);
> >>   }
> >>   +#ifdef HAVE_LIBJSONC
> >> +int libxl_hwcap_gen_jso(json_object **jso_r, libxl_hwcap *p)
> >> +{
> >> +    json_object *jso;
> >> +    int i;
> >> +    int rc = ERROR_FAIL;
> >> +
> >> +    jso = json_object_new_array();
> >> +    if (!jso) goto out;
> >> +
> >> +    for(i=0; i<4; i++) {
> >
> > typedef uint32_t libxl_hwcap[8];
> >
> > I see this is the same as the yajl implementation, but should this be 8?

Yeah, looks like it should be ARRAY_SIZE(p). But that would want fixing
in a different patch. And since no one complained about missing bits in
this json conversion, I guess it's not used.

We would need to also fix libxl__hwcap_parse_json(), to parse up to 8
items, and be able to deal with missing 4 of them.

> >
> > The remainder looks good:
> >
> > Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
> 
> A tangent, but physinfo.hw_cap (which libxl_hwcap wraps) is as good as
> stack rubble.  It's not exactly random data, but it is a view of an
> internal Xen structure which has been reformatted multiple times before
> we even realised it was exported, then continued being reformatting it
> because it's a gross laying violation that noone could possibly be using
> anyway.

It's display in `xl info`, surely it's useful for someone :-), a long
long time ago since it seems to be inherited from `xm info`.

> It needs purging from libxl and the sysctl interface, and if that makes
> JSON easier, then lets get it done.

It would be more work, not less. Removing things from libxl's api is
annoying. But I guess we can look at removing that later.

Cheers,


-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 16:06:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 16:06:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101650.1454633 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us1cM-0006sM-71; Fri, 29 Aug 2025 16:06:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101650.1454633; Fri, 29 Aug 2025 16:06: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 1us1cM-0006sB-3u; Fri, 29 Aug 2025 16:06:22 +0000
Received: by outflank-mailman (input) for mailman id 1101650;
 Fri, 29 Aug 2025 16:06:20 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qyNB=3J=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1us1cK-0006O9-MI
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 16:06:20 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 19546c98-84f2-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 18:06:19 +0200 (CEST)
Received: from AS4PR03MB8676.eurprd03.prod.outlook.com (2603:10a6:20b:58c::8)
 by VI1PR03MB6317.eurprd03.prod.outlook.com (2603:10a6:800:136::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.26; Fri, 29 Aug
 2025 16:06:16 +0000
Received: from AS4PR03MB8676.eurprd03.prod.outlook.com
 ([fe80::c5ca:906a:1ded:634b]) by AS4PR03MB8676.eurprd03.prod.outlook.com
 ([fe80::c5ca:906a:1ded:634b%7]) with mapi id 15.20.9052.019; Fri, 29 Aug 2025
 16:06:16 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 19546c98-84f2-11f0-8dd7-1b34d833f44b
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=R02WH9uVO6ci5Kqnlp1rbg6aZTCjSmNuX3gtEt9NPcW6V9ijxIqIgOIrByaa/g6eMczHbswa+fe/iyTK7AfQ5b8Oxb+rSZaFrQBvRPBBe4H9ze3fwWFgp5PRlco+AP2lb22apWsp249st+r3mxp3Ts1hU7nBApIWKClIlQbQ1t7GJ+UFQKZHeETzGVLAw1r4903x17YHc1sjxIFGIae68B+/ihWLZSFAm1Xu0L5cQG+yHCb0ros6tskymSkLSYqbG+0ceHEMNqCngrI8XfuT4kOgmQvWLj3ZxK+MtTef083FqArmcGZvOrfmfe5XGMkHTmqbfH2yHQfBe58Q6zCn9Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=dskB0B0eE1Y40O40K/ixPtdYqmAwbFF7zEh20dywNZk=;
 b=A4hz4Y1Jm4owrnYOjhQ/X6qeGl0OioAd+sqfiQuMYqmnTtWRwVEkUeZwdPFE3WTOaMagzezpTkYuwnKGlY4bu6IjmH24It6Oonbtdy0Y8IXsxXGzlpLaZefCJkFgplwsWhuhl8WDsM3U9ixy7dhMz1vy3so+3X8nY4m8Jdp2EdK4vlvFeoSq6KFLxCsMW8td+Mmow1qjre49zaj3PExdCGmQZjQSZ5lDZlFAYruiX6SB3aXD+dpt1cz4C3PsDYPz2JwIUdsneh3/kHT54+i54eF2PJhVra0tAAAtP5dx79gyggl9SGOW+wLW2I69fBInRNevru3TNTXCsyO5qC9fBA==
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=dskB0B0eE1Y40O40K/ixPtdYqmAwbFF7zEh20dywNZk=;
 b=jGQAGs3yg957lH+OeCQgKOS1gIN90c4TqsMX5Pg12ThfaSlK9fd5X7yfEoVKKxlsei8ErqPqFKZATE9+ntZ6fJdR24OE51Cmt7lXNeD5HyaZC/vVCN0yX987BXgQlw6mut5EBt+cGaFu6G0cIjBxz/EyoNEIzjQzfua//zB46iYlh68PPzuEjWbwXfMpDyQnBGjFqtDJo8OTTuqSnN6NkLmpXSlrso5DJB+UDq2gAL1b/ueXFn7nyUM0U58kHZmd+pW2ut3meenxeXT6p/yNz1/chxFS/+erbjyygLRob64gWVunwcN/Ie810cNjNW/kPLMvLtaIMPBxTiP5oVkTgw==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "olekstysh@gmail.com" <olekstysh@gmail.com>, Leonid Komarianskyi
	<Leonid_Komarianskyi@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>, Oleksandr Tyshchenko
	<Oleksandr_Tyshchenko@epam.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Julien Grall <jgrall@amazon.com>
Subject: [PATCH v5 03/12] xen/arm: vgic: implement helper functions for virq
 checks
Thread-Topic: [PATCH v5 03/12] xen/arm: vgic: implement helper functions for
 virq checks
Thread-Index: AQHcGP7Z97jSCMPN5E6tDOtAPST59w==
Date: Fri, 29 Aug 2025 16:06:16 +0000
Message-ID:
 <02148c202b3083646b0feebc8b56f1984e4ac8e9.1756481577.git.leonid_komarianskyi@epam.com>
References: <cover.1756481577.git.leonid_komarianskyi@epam.com>
In-Reply-To: <cover.1756481577.git.leonid_komarianskyi@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: AS4PR03MB8676:EE_|VI1PR03MB6317:EE_
x-ms-office365-filtering-correlation-id: 0b1d1758-344a-4fd3-76df-08dde715fbee
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?iB6j1+XqRC5bT0UsSJh7NUoPIC5+qmzzy3bI2L4TncAy6DOAIYS8LjGTTX?=
 =?iso-8859-1?Q?WvEHz77mIW52ssM5i3+dEL6MFdz7P8PK+E+Y7isLtM1KROvyitIBqzPb2H?=
 =?iso-8859-1?Q?2QmxFTocoKEWZiBiAUwANj5FjLH8GDYPg68QRKU8KmHyFJFPAGRmB74MW6?=
 =?iso-8859-1?Q?xp98kGRzK6/aKnQfZekid8LCOx09HmqhSMApeycJ08e3qfB1mN/6pTQ46C?=
 =?iso-8859-1?Q?7Ox+CbPfzUWTHB0FUKsjiUlWuF0Qq4Nz0I8r1lxzsgdXBsCMQHkcCbJQEX?=
 =?iso-8859-1?Q?+cYHKOhSJQ9hJ6aFKz4mIZR8gVyIxOP/IeUHcUDxaZhtEDlErAdhYeHuyv?=
 =?iso-8859-1?Q?MSLOWU3Khm7SzfMazX5aFv8gshuc2++JCCgapnigJJlp/Q66b0vSZh3rHN?=
 =?iso-8859-1?Q?R1q1xi8Fiq7I/GRtbbu8DlNfvdpvdP75WcJCZd7o9X0o5MEWKmTNAB5h2v?=
 =?iso-8859-1?Q?zg2arjB5n7TxRN1v/c+dtV7K6dpf8r4G6VQhqaZFpOeVayL3CNj+V7ch1Y?=
 =?iso-8859-1?Q?/10xuEE//F2WcypNDG/bV8bGP/fxEjKeU6Ps9qDG80Lj3OOHGMEu3ZWTI2?=
 =?iso-8859-1?Q?tr1sjWDLdWEWG2GcIP42kDkZlDQRdWE81ij+2+X52HurbiSUhVePgNuXkL?=
 =?iso-8859-1?Q?ie93q2qbPd48d/YJQw0o9RMPDhnAJOS1JYzbN2DiBuREc56IfxUSTDX23A?=
 =?iso-8859-1?Q?VjPgXfiDO39+UCo8UZOiPkxnoaisu7dDJeWBAvifQfFtzgvYSm2aqf9t31?=
 =?iso-8859-1?Q?dW/9XITw6w3/bXAt8JB4fY26red44rq4twby9WiG9FmOth0xkSJHF6LC5i?=
 =?iso-8859-1?Q?374WrU5tD+xcNUxvSk0OghVLKW6/duy8g7FPereaap335W9PiurjNPYesJ?=
 =?iso-8859-1?Q?Pi50LQmyM3mc9FLVIZXHGc7wLKLsXrPMhR1EYxavc6BLmp+55FcH7xNV2g?=
 =?iso-8859-1?Q?vGFh5D6zyq3GfBarILQxipRbyaWWLlp4ptJtSFActooVmI3v+IprP6Aswq?=
 =?iso-8859-1?Q?xs9ZtSKQ4Y2yPP6PyHCu4c+45dCQNDChKBbQxecV5Hj7Enyv6VnlsDgop7?=
 =?iso-8859-1?Q?ZhpfAsli6ZP/0K99Zfu/dTE3sdpo5Gan0QVWS/9qMtRImWLAxXpI1h8c+V?=
 =?iso-8859-1?Q?xJXJsJWXzt2BWXdKYIG0Yr95LRHf/yvYUyCvEzsHQUSHMB03OTFsUvx2+I?=
 =?iso-8859-1?Q?G0a1DNE8dkK3hWADMfMc7KgII2bx3wk1V+hpU+UoOA1aCwWb4UUqU4ym8/?=
 =?iso-8859-1?Q?+20aCxEOODoUI4FMSRE7xT0PFX73IGAC2WIOeIM0GI23Y6ztlFFqq0bbk+?=
 =?iso-8859-1?Q?qNV/+IXFAW7WPYZHEsh+aZFfZu3t64449JOG4o93aA2T+D66syo5PCWfoM?=
 =?iso-8859-1?Q?xi0v508B78sLtFZ44ptIpsSFQ1KrXGbfi9wrn0YrlFgCHstrA2BRcPYgNX?=
 =?iso-8859-1?Q?wV+FGnmzDtW3901V8FQqet6GWMgPlH7kmc7cEizCcxCw0/D3S6Y8/uSl24?=
 =?iso-8859-1?Q?wSVkU7lhO8puCyDccAz3Fo8CA/0oWAK10vImVFkbnhGg=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS4PR03MB8676.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?KZOzrgB2FuJLdsZKJcxyu0d7l4BfFXRSHHZR7YDvkvEPxVj9ANpZbMeQjl?=
 =?iso-8859-1?Q?HjUMlQeICsrHKX8ghlaige/qlxVLq3yhkYyX4JbvjfZUqtge5+NI16Ae4p?=
 =?iso-8859-1?Q?p73YREZk0zlbI6Oq1IbiN5Lw6of+Lsg8DjaPaD2STIFuVinUBlnzSFYFmj?=
 =?iso-8859-1?Q?Du6rFPexfmRPnOuuHufR8FyBJnKmlgrzEKYRFQMoU18IFezz+5/waZGtoj?=
 =?iso-8859-1?Q?Sid2t3M1XighpvJPOiVDMpkdK9fBxhUVJC1fy7hhAhAV9Fbcodfgz+lN7Y?=
 =?iso-8859-1?Q?f6qHDynAhoGOU1JL6EbNrrRfhPPgoUUYBde5JbJ2QSyq7NL04LzsayVzUS?=
 =?iso-8859-1?Q?p24q+Rh7kEJcIpc4hLy7UoBLp8mSjmL3VqVTcBL+9Tgragh0FnMUvN51KR?=
 =?iso-8859-1?Q?M10B2QTjeyQVJKU/PgA7QTk5YGYFSzIEw88UYPPI0lGIgt5xqfgwkUyjAu?=
 =?iso-8859-1?Q?m1W0AjecTEPGv8T1QY/49PgT7id+r807j/n5gne6Xe43cSTdqEROxmJF8k?=
 =?iso-8859-1?Q?3u3LDL8NCPO5j1nbtOFDAMoenCK7Ls+8Cd1HfaEgyHJWuYh8rqHoVA6IhM?=
 =?iso-8859-1?Q?WnjsW2kYPfSlOX6cU8bDVCmV2gFPhGNB0f4oNdKIbWlptR4l82P8U2qMsm?=
 =?iso-8859-1?Q?PLhhK4RbZSYRqWvQrce2Hu7nGiDcHYNGOd0C6K9EAVv17XTbVTwJSnR3UH?=
 =?iso-8859-1?Q?ieALFvmJP8/XKP/AJP51NckZoiFwl2qZeTlaX1uYd3vsXOheQsetGabyVO?=
 =?iso-8859-1?Q?HhukGIsgGV0cjS1oXf4QSDnD8nqibsDqKMicBtTxy5NG+RGUqw0W5J/Yn2?=
 =?iso-8859-1?Q?97ghJSKozvDfBDe3Ru2cVe4O8LWdl8UZjqdb1rCDLPKdIgh4T4IPaW0lcC?=
 =?iso-8859-1?Q?PgbrxqrFr+PjjEnIm4vAi4GkXUTsUerJPB7WfqYIR5pMLlBriyy2oFmj0m?=
 =?iso-8859-1?Q?W9K8iX3o7QEdWQebyJ8hkmoREGvupbZ9uK7aIrpjHBijLddgPx4U83OhU6?=
 =?iso-8859-1?Q?t2+orggPZXg8+wKT5fNuv9N0l0PMnXDxgtASBkz/aVvtz1o+2Ah2gbSP3L?=
 =?iso-8859-1?Q?mRTgkqeNseboBbb1MCcTpOstEtQPfg4pPSa7rQsJpAbRGK+EY8/OOTMI00?=
 =?iso-8859-1?Q?JvV5KqgwyuZCHcq3/ZwgGBQ60V1oTr8/byIAR6emQcxho9Ne8U522njyBe?=
 =?iso-8859-1?Q?uO4Kc/NlYgdzDkzulD/Ksrc3m9CvpylaKWpLpg2d7YcoTy+Yhk4zgAO16K?=
 =?iso-8859-1?Q?+TkhNYW5r67QV13s/+AxkhdLkvC3dh530/Nx5R6lzs7P0DxIci74Cgogdx?=
 =?iso-8859-1?Q?uItB0pkfQl5SBCx9LiaqcoQZnkE8WVNhvPGPR4bfoXifn9W+oUxWRwIAsO?=
 =?iso-8859-1?Q?yt4sEXz2oywvoVm0jGw/I3P3IEmHAOKOYfKpdZdG0zYjLMrm42ib9sFPKu?=
 =?iso-8859-1?Q?hIqwteokWZZIy1o4cBbukKidJwIhKDhkvYm7I/kbXwjNuRbmFyV8vpYGaf?=
 =?iso-8859-1?Q?oT9FrJOcguWn1n9DRH7U3k2DIGlFUOnTwyQ6YpEfBpqMKrummYqYglvq3Q?=
 =?iso-8859-1?Q?Gh+gk+13nVyzQTNPoTQqCuHaXu4OSx7odUmAfgosQFUEAIsrd1JV6q9iqA?=
 =?iso-8859-1?Q?O3r9qNMq+YUDHGptt1vcbFKa7rG1V7NEw8nxH4Ny22W1PpNaFx/lyU4X+E?=
 =?iso-8859-1?Q?wu5VTywqbW4XsyVwLy8=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: AS4PR03MB8676.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0b1d1758-344a-4fd3-76df-08dde715fbee
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Aug 2025 16:06:16.3413
 (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: 6EjBFQheazyL4ZpNZgQt/uVMFfmbZ5o9bcxjOr5+5MFW0VAJ9DvpOp+E5BY5Ojp6au8HfKO9P7mDRJ0Z35dVZu7m+qbDLzmqM//0XXEpBKs=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR03MB6317

Introduced two new helper functions for vGIC: vgic_is_valid_line and
vgic_is_spi. The functions are similar to the newly introduced
gic_is_valid_line and gic_is_spi, but they verify whether a vIRQ
is available for a specific domain, while GIC-specific functions
validate INTIDs for the real GIC hardware. For example, the GIC may
support all 992 SPI lines, but the domain may use only some part of them
(e.g., 640), depending on the highest IRQ number defined in the domain
configuration. Therefore, for vGIC-related code and checks, the
appropriate functions should be used. Also, updated the appropriate
checks to use these new helper functions.

The purpose of introducing new helper functions for vGIC is essentially
the same as for GIC: to avoid potential confusion with GIC-related
checks and to consolidate similar code into separate functions, which
can be more easily extended by additional conditions, e.g., when
implementing extended SPI interrupts.

Only the validation change in vgic_inject_irq may affect existing
functionality, as it currently checks whether the vIRQ is less than or
equal to vgic_num_irqs. Since IRQ indexes start from 0 (where 32 is the
first SPI), the check should behave consistently with similar logic in
other places and should check if the vIRQ number is less than
vgic_num_irqs. The remaining changes, which replace open-coded checks
with the use of these new helper functions, do not introduce any
functional changes, as the helper functions follow the current vIRQ
index verification logic.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
Reviewed-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
Acked-by: Julien Grall <jgrall@amazon.com>

---
Changes in V5:
- added reviewed-by from Oleksandr Tyshchenko and from Volodymyr Babchuk
- added acked-by from Julien Grall

Changes in V4:
- removed redundant parentheses

Changes in V3:
- renamed vgic_is_valid_irq to vgic_is_valid_line and vgic_is_shared_irq
  to vgic_is_spi
- added vgic_is_valid_line implementation for new-vgic, because
  vgic_is_valid_line is called from generic code. It is necessary to fix
  the build for new-vgic.
- updated commit message

Changes in V2:
- introduced this patch
---
 xen/arch/arm/gic.c              |  3 +--
 xen/arch/arm/include/asm/vgic.h |  7 +++++++
 xen/arch/arm/irq.c              |  4 ++--
 xen/arch/arm/vgic.c             | 10 ++++++++--
 xen/arch/arm/vgic/vgic.c        |  5 +++++
 5 files changed, 23 insertions(+), 6 deletions(-)

diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
index 4bb11960ee..9469c9d08c 100644
--- a/xen/arch/arm/gic.c
+++ b/xen/arch/arm/gic.c
@@ -134,8 +134,7 @@ int gic_route_irq_to_guest(struct domain *d, unsigned i=
nt virq,
=20
     ASSERT(spin_is_locked(&desc->lock));
     /* Caller has already checked that the IRQ is an SPI */
-    ASSERT(virq >=3D 32);
-    ASSERT(virq < vgic_num_irqs(d));
+    ASSERT(vgic_is_spi(d, virq));
     ASSERT(!is_lpi(virq));
=20
     ret =3D vgic_connect_hw_irq(d, NULL, virq, desc, true);
diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/vgi=
c.h
index 35c0c6a8b0..3e7cbbb196 100644
--- a/xen/arch/arm/include/asm/vgic.h
+++ b/xen/arch/arm/include/asm/vgic.h
@@ -335,6 +335,13 @@ extern void vgic_check_inflight_irqs_pending(struct vc=
pu *v,
 /* Default number of vGIC SPIs. 32 are substracted to cover local IRQs. */
 #define VGIC_DEF_NR_SPIS (min(gic_number_lines(), VGIC_MAX_IRQS) - 32)
=20
+extern bool vgic_is_valid_line(struct domain *d, unsigned int virq);
+
+static inline bool vgic_is_spi(struct domain *d, unsigned int virq)
+{
+    return virq >=3D NR_LOCAL_IRQS && vgic_is_valid_line(d, virq);
+}
+
 /*
  * Allocate a guest VIRQ
  *  - spi =3D=3D 0 =3D> allocate a PPI. It will be the same on every vCPU
diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
index 7dd5a2a453..b8eccfc924 100644
--- a/xen/arch/arm/irq.c
+++ b/xen/arch/arm/irq.c
@@ -442,7 +442,7 @@ int route_irq_to_guest(struct domain *d, unsigned int v=
irq,
     unsigned long flags;
     int retval =3D 0;
=20
-    if ( virq >=3D vgic_num_irqs(d) )
+    if ( !vgic_is_valid_line(d, virq) )
     {
         printk(XENLOG_G_ERR
                "the vIRQ number %u is too high for domain %u (max =3D %u)\=
n",
@@ -560,7 +560,7 @@ int release_guest_irq(struct domain *d, unsigned int vi=
rq)
     int ret;
=20
     /* Only SPIs are supported */
-    if ( virq < NR_LOCAL_IRQS || virq >=3D vgic_num_irqs(d) )
+    if ( !vgic_is_spi(d, virq) )
         return -EINVAL;
=20
     desc =3D vgic_get_hw_irq_desc(d, NULL, virq);
diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
index c563ba93af..2bbf4d99aa 100644
--- a/xen/arch/arm/vgic.c
+++ b/xen/arch/arm/vgic.c
@@ -24,6 +24,12 @@
 #include <asm/gic.h>
 #include <asm/vgic.h>
=20
+
+bool vgic_is_valid_line(struct domain *d, unsigned int virq)
+{
+    return virq < vgic_num_irqs(d);
+}
+
 static inline struct vgic_irq_rank *vgic_get_rank(struct vcpu *v,
                                                   unsigned int rank)
 {
@@ -582,7 +588,7 @@ void vgic_inject_irq(struct domain *d, struct vcpu *v, =
unsigned int virq,
     if ( !v )
     {
         /* The IRQ needs to be an SPI if no vCPU is specified. */
-        ASSERT(virq >=3D 32 && virq <=3D vgic_num_irqs(d));
+        ASSERT(vgic_is_spi(d, virq));
=20
         v =3D vgic_get_target_vcpu(d->vcpu[0], virq);
     };
@@ -659,7 +665,7 @@ bool vgic_emulate(struct cpu_user_regs *regs, union hsr=
 hsr)
=20
 bool vgic_reserve_virq(struct domain *d, unsigned int virq)
 {
-    if ( virq >=3D vgic_num_irqs(d) )
+    if ( !vgic_is_valid_line(d, virq) )
         return false;
=20
     return !test_and_set_bit(virq, d->arch.vgic.allocated_irqs);
diff --git a/xen/arch/arm/vgic/vgic.c b/xen/arch/arm/vgic/vgic.c
index 6cabd0496d..b2c0e1873a 100644
--- a/xen/arch/arm/vgic/vgic.c
+++ b/xen/arch/arm/vgic/vgic.c
@@ -718,6 +718,11 @@ bool vgic_reserve_virq(struct domain *d, unsigned int =
virq)
     return !test_and_set_bit(virq, d->arch.vgic.allocated_irqs);
 }
=20
+bool vgic_is_valid_line(struct domain *d, unsigned int virq)
+{
+    return virq < vgic_num_irqs(d);
+}
+
 int vgic_allocate_virq(struct domain *d, bool spi)
 {
     int first, end;
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 16:06:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 16:06:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101649.1454623 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us1cK-0006d0-06; Fri, 29 Aug 2025 16:06:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101649.1454623; Fri, 29 Aug 2025 16:06: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 1us1cJ-0006ct-T4; Fri, 29 Aug 2025 16:06:19 +0000
Received: by outflank-mailman (input) for mailman id 1101649;
 Fri, 29 Aug 2025 16:06:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qyNB=3J=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1us1cJ-0006O9-3j
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 16:06:19 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1867a15a-84f2-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 18:06:17 +0200 (CEST)
Received: from AS4PR03MB8676.eurprd03.prod.outlook.com (2603:10a6:20b:58c::8)
 by VI1PR03MB6317.eurprd03.prod.outlook.com (2603:10a6:800:136::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.26; Fri, 29 Aug
 2025 16:06:14 +0000
Received: from AS4PR03MB8676.eurprd03.prod.outlook.com
 ([fe80::c5ca:906a:1ded:634b]) by AS4PR03MB8676.eurprd03.prod.outlook.com
 ([fe80::c5ca:906a:1ded:634b%7]) with mapi id 15.20.9052.019; Fri, 29 Aug 2025
 16:06: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>
X-Inumbo-ID: 1867a15a-84f2-11f0-8dd7-1b34d833f44b
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Z9i5qlG+IVYrfgYLzt+V+AkKnZF5n4j1lZynypm5CQ9F+0dQT3StguojV9eL8xba0qXa4/y5UKflMtGERNMHx5sARsJ0h0p6QAXA0vc2x4QhOn5l23sxi+VT+4vMdxcXWkqjXoJsp53MGTXEAT35wP/Z4iLWzRxBpdQroQgfFQHSHbeCKGgrsB1cLf1CqmYXOARWSEmYKdPmnm5JAMWlc4bULPOIcVlDqMoxXokDdwZMD4NyAAGVmaoWXN429JSZ4UiKZn1EeqmxJ27fccal8/bLFRUlt/qQrjHvftf1AZD1GmD3pf3iTpjL1pLwOtU3Wl6hpkmE8jp+KRt26gpHig==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Nk7khFfzSe18EhZ0K4NETdNh6Ro6VTyrixUNQx4Nt+E=;
 b=cN2OG+czfsYD/VwfainepvbC2FiDXucVgGTZrmdymcwP4/OT8RRdwvKNFB0ETF7AC/YhWjZ5dTf+UG7lywko2AgDfgVcJWUzXzp3hzauJ2wpAB3m/rLJZdTcHpOK6Kcs7vmYVisOPlRZZrATUy7K2cMDC3CIjQok/YEXd6AJ2N68NaekUXl7nwaAJq5q82LT779y8n4unITFB9Z1gn5AYDllWxzBniC1oLu9ClWWKk1qPihDMtlYlfJzyd5Im5ZGaiQoXrSfoN9nB3Al6Eipp0vIsZJ04RwZL6gseQklIR/+Skpl0qxJ+LiDlq8V7W11kU5sVgIC9hKv57jBoyTi3w==
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=Nk7khFfzSe18EhZ0K4NETdNh6Ro6VTyrixUNQx4Nt+E=;
 b=vjXvvYsu1f57nZhPOzrpOqZlvhhbTnED1sAX+rptbm15BunSgaEyrnLkbq5xM1ohKa6mHwMn29vBs3y4d7FVl4N4YyQ+SlDhLJle+E6ckTX0LHEALdJ6o7z5eSlRqOS/aSfFqOlU6X0mXw6jHgDrfakftk+vz6tDp3SUnfmmf/Y9uVALfaqi9G8Yxl4Y1votyi5SfYfYvTrnh6yi6rLleveQ5icMuuJUioMF7q1vxjtL5IdTCIFVC85/HqgwTsUL02J+14VhfeStNEWGl79r5o+p+wTSD0uNkyedxpKmi63mxdriaJ94P/P6defaV9KXyhYgfGaPdWwUajj0x2iM/g==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "olekstysh@gmail.com" <olekstysh@gmail.com>, Leonid Komarianskyi
	<Leonid_Komarianskyi@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>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Julien Grall <jgrall@amazon.com>
Subject: [PATCH v5 02/12] xen/arm: gic: implement helper functions for INTID
 checks
Thread-Topic: [PATCH v5 02/12] xen/arm: gic: implement helper functions for
 INTID checks
Thread-Index: AQHcGP7XgADFYzc0NU2aQr9cJjulKw==
Date: Fri, 29 Aug 2025 16:06:13 +0000
Message-ID:
 <baf87f8f0dffe33d3674f7fa73eb2488c49c2101.1756481577.git.leonid_komarianskyi@epam.com>
References: <cover.1756481577.git.leonid_komarianskyi@epam.com>
In-Reply-To: <cover.1756481577.git.leonid_komarianskyi@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: AS4PR03MB8676:EE_|VI1PR03MB6317:EE_
x-ms-office365-filtering-correlation-id: 59b4d118-73d4-4bff-b087-08dde715fa6e
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?tRjGvpSTpU2J1wGbvLW2ZF/B5ZmhJ/2vXYkbAIoSSwp7p7T+r6V6/hyvUH?=
 =?iso-8859-1?Q?nYq8S6ALb5+k+OrWA2UlM2yYq8e/DXdX6zTph5+LAqksJ0VHBp83Zz0wzq?=
 =?iso-8859-1?Q?enbCYrYITzBCVHlNJg6Gv3+9PP+sEjt6NiXzPKdk6LgG3HD1a9kbBRHsDK?=
 =?iso-8859-1?Q?Yc2VXoWuIXC388kzlbr7XtcgS8rIv83tJeDos/dUlNQgm6f/02rq2St1Tf?=
 =?iso-8859-1?Q?XJhaUABpq2MxbfJ5K6Qtv98GGM10ft5yAeEFhQG5okIU/Hxrlchfj6BLqJ?=
 =?iso-8859-1?Q?6Lff5hsFnjY401QyTJCUOrM+4mIf1WESVXvd93zBp94W6nes3MWLq+4Bpr?=
 =?iso-8859-1?Q?+5E0TFizeYJ60sYfZy0oUQtQ7srxeDPHULoOC/vM7OB7OC60HyY3J76SVP?=
 =?iso-8859-1?Q?tb+QvIh8VnIOo8RZBqZUZUHPpizO8VcsCQmsGX2/rWf2oNTDJm/3zemk0F?=
 =?iso-8859-1?Q?OpWtg94eLdvnmHqjSIdW2D55kPWA4+8zBoQ1hzdixgF7QMtWyhhIFvzIMv?=
 =?iso-8859-1?Q?7Jp0EsvZkbmDtmgsk7KBxfOqN2MJh4GkyINCkeItbqPI+pXnDlNnfb+8qV?=
 =?iso-8859-1?Q?4FCFeVQsa5YpMpwqy5RZDb0tuKUqglfWU4IHtQFU2wG71QsXYXWC0RzgZr?=
 =?iso-8859-1?Q?FTirvGzhggvTGz3iAze7d7pojVRdrFcXRZ/FR6eNxEAQ/x0tTVGPiTqTSK?=
 =?iso-8859-1?Q?BCLNGzEOLTMr6eYXZFtiVCj368wrFHHch0XJwkeV9zKPjXSjfKU3YFB7qt?=
 =?iso-8859-1?Q?wdP913StqVCB7Q+PLDKL8lHeyhFZNiGX4RWzhB4c41Oq3xUsr0+4piT4jT?=
 =?iso-8859-1?Q?9odQ4jPzm2nWtlvRkanVaA4ankir4/U/+l2/+VH4UI6UwDbHiMttFUCXwt?=
 =?iso-8859-1?Q?ZtlYrabT/8rBhc98d/xmZy7MUcl1C9R+mB9DKgPNIorWRbp9ikXhl9jcjv?=
 =?iso-8859-1?Q?npQNwQV9kp61ALydlg5iH4MIn7mCDkJcaWjQQjuMZEpefcnA+yPZLwZCuL?=
 =?iso-8859-1?Q?NVdwO+3SP6uA9u09HJzrNN5KV2pMU48Erq15DH0bRi6wdSVTyTATS9QyPY?=
 =?iso-8859-1?Q?LsJ8LLeAqVlmmO6qv7k7vKAV/QZGCovQgDDYMzWJJ3QhzCGeaHF3gBiR5z?=
 =?iso-8859-1?Q?FrVHGrA8upKYYGersYV58yLmDbNOoDLi3au6n0VdzNEtIPQwYEjXYQR28j?=
 =?iso-8859-1?Q?tx+9Vp5Aq32TpxPuQ4n8ZWSMfAB47ryRpttm981+Z8Y83PnOqQKHJjSB1v?=
 =?iso-8859-1?Q?hexpFkGkzpKFPttN/lEkesKEnYeqdk5VcFdo6M99q2DirGkCvSuN/yiNrZ?=
 =?iso-8859-1?Q?8UTt33toB+M89mOnEm5h9LN1pSSH/kykzMdUwipfxBIuXjSksL1vifxULu?=
 =?iso-8859-1?Q?iEUSM6sqxFTlbdPJ4FKW3htQJfu7Uy1eLb7B28gqBzfPJZBOQAz1TNWNVF?=
 =?iso-8859-1?Q?Pj61DO9rEZM1eecf6W5KkVt3LAmi+MkFLDoxW7zA4WZIe6WglR3qen3nox?=
 =?iso-8859-1?Q?e3QDsyMZMAAIYqesUhx+MPD2fJxUviHPe2w7Wp7aF4Dw=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS4PR03MB8676.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?PBvpXDbbLArpW1gh2CgZzY3BApi3q07nG+5vZ2rbF3LDbmwb/RKlv+wLGJ?=
 =?iso-8859-1?Q?rveeUFn5QbEq/PAf3VvrA8kWbfIhbaQpTX9sTUJGdsMTt/9K6havRI9vPp?=
 =?iso-8859-1?Q?eGvKpAwj8q6ENYNfoO+0O/KkteDgbI+qG1I6USLnO7S3QSi8qXhRLqxd6a?=
 =?iso-8859-1?Q?K27bYWcppws63sHeViEWSif4Td57YbSeFX6B3/+/+uCdxFnKOYtSeDrXHs?=
 =?iso-8859-1?Q?l+XuDhA0nv+a/zEKYfejM/x7wvNs2q8JfzDfoZsYoq3VGTdjje3ZuL0MFM?=
 =?iso-8859-1?Q?FL8t/2FecGHzbiOpy36/FtixA7YOePFOHun/hX0OWFXbewWENNnQ6UbHcb?=
 =?iso-8859-1?Q?zl6gGmeK1OfwoNjXW5QIi69KqgbA3fLCM23DwNStIwxgB7HUTaVEJXI8Cv?=
 =?iso-8859-1?Q?cXkX7c5/7zWZou22wYfk+VnpfvYFkURfZyaDwcQ0Mvx5oeH7QGdTHccSTU?=
 =?iso-8859-1?Q?p/H6rKF3OqZdLXDzNeYH2VVnyFIjyd2cZcq6/ZE1KNlXTQClU6XmhAt9eV?=
 =?iso-8859-1?Q?g5HMdhYDp8KQKagC9iV8xonx3wfFabK6+y181ozKuSwG4/pj7IJq82oRYs?=
 =?iso-8859-1?Q?eXlJows8VdD8JQDfAvvCGUZJKBee/vy3rc0N34lyc7XHnGG4xzn8WjqFVi?=
 =?iso-8859-1?Q?ptvTxUTjUwhbj8SBFYYHWQSGAxWbQgLBag6aPfziu6Fhs3uyXFiGGwALqA?=
 =?iso-8859-1?Q?mSAPiY1962fQ4tGUUnXDD/5O9/PjhXlGxfTcygXL1n1LmAVCkjp6jtB1xx?=
 =?iso-8859-1?Q?84C6+68LcbNvXbW4MAC6gcw0ETkFl3tdDQC/yUbtE6kpo6Z/GIQTuffOAR?=
 =?iso-8859-1?Q?cC4mtDXhKk8HPiSI6l8iVcSudpvGXPHmmfyf/rHnp9fj8E7VcS5l5SVDED?=
 =?iso-8859-1?Q?KtLRtJqQ2rsa2oXjjRdrZxz1maEzZI+UEJ3M6EXOyWXEUUtP2jqTSiRwy6?=
 =?iso-8859-1?Q?k3i5CvfJy6k/V0cxLcY75hrlz75qocU9UFuXDckZ1Y9jPSbiJzVzcwkwk3?=
 =?iso-8859-1?Q?cP8n1EpOmKWjXbmy4WU6D78K9goaG5ClDFMg+gijxBxTtdeZeJg9QBdntr?=
 =?iso-8859-1?Q?6WYu+vK3ie5fcv2NIjgyLUuIXLPqvnpdBkXvUA3hOxELTy6RP1ogaH8DOi?=
 =?iso-8859-1?Q?C/4VMNvbpWhVSzJrATzl4i1r1dSJFp9voOQfwlW1R99TP6cIgv6eITSh5m?=
 =?iso-8859-1?Q?ST9giRUvL+9cCNDMCAo49KiHVIfqrJg8Axq1E4D6IElqh2XFWq9sjVTS26?=
 =?iso-8859-1?Q?Qz3a1tZqGECH6GK1MQ7jjFecDWj6U4v9Ey7MkIPX7u40qUf4vEkKzLYpSn?=
 =?iso-8859-1?Q?oKcUsV94DeDfp/e8VFWKEuSWNrTPX6pmVYZanwgIIPcUprtl6WrO3ro954?=
 =?iso-8859-1?Q?qpneRQaO25JrJADSV5grGK/0m5HGFiVQjULQ54cjd1iVT42vbs0ncDuyE/?=
 =?iso-8859-1?Q?pFQq5zi0A7W3C2Yb9o/MpsWhwWVYJxwUk2axaSQRf9qZgkxtSNY6IaTsyv?=
 =?iso-8859-1?Q?yWO4yMyHPyzAKAF1tHOIgjZA5vSqJbEIvB41jtwkrbm1SNWM5TzgO3sek3?=
 =?iso-8859-1?Q?ZzyxcO4KTmQDablWwg0CoGB852M8yCMx7gDsPuF57UPqyie3+fPYwQdTDV?=
 =?iso-8859-1?Q?NgnOMupcDeWANamGrVY4Di0R8d44PTDDkn1UgKc/f/CSqqb+jUDBpCMPt9?=
 =?iso-8859-1?Q?uVwTSgc+zZw6NYDnpvM=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: AS4PR03MB8676.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 59b4d118-73d4-4bff-b087-08dde715fa6e
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Aug 2025 16:06:13.8308
 (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: 9E5WrPZ5+VeKljSJk1AHEK75HK5l8Yo9nh1G5lOywOmIezwNST0OpTROEfSI1oZINy4LqJ6SKNMqRTjJDGz1BTQQheZOUl4aBxR2Y7fsrSE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR03MB6317

Introduced two new helper functions: gic_is_valid_line and
gic_is_spi. The first function helps determine whether an IRQ
number is less than the number of lines supported by hardware. The
second function additionally checks if the IRQ number falls within the
SPI range. Also, updated the appropriate checks to use these new helper
functions.

The current checks for the real GIC are very similar to those for the
vGIC but serve a different purpose. For GIC-related code, the interrupt
numbers should be validated based on whether the hardware can operate
with such interrupts. On the other hand, for the vGIC, the indexes must
also be verified to ensure they are available for a specific domain. The
first reason for introducing these helper functions is to avoid
potential confusion with vGIC-related checks. The second reason is to
consolidate similar code into separate functions, which can be more
easily extended by additional conditions, e.g., when implementing
extended SPI interrupts.

The changes, which replace open-coded checks with the use of the new
helper functions, do not introduce any functional changes, as the helper
functions follow the current IRQ index verification logic.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
Acked-by: Julien Grall <jgrall@amazon.com>

---
Changes in V5:
- fixed a minor nit: moved the existing comment to the line above to fix
  formatting that exceeded 80 characters
- added acked-by from Julien Grall

Changes in V4:
- removed redundant parentheses
- added reviewed-by from Volodymyr Babchuk

Changes in V3:
- renamed gic_is_valid_irq to gic_is_valid_line and gic_is_shared_irq to
  gic_is_spi
- updated commit message

Changes in V2:
- introduced this patch

Changes for V4:

Changes in V4:
- removed redundant parentheses
- added reviewed-by from Volodymyr Babchuk
---
 xen/arch/arm/gic.c             | 3 ++-
 xen/arch/arm/include/asm/gic.h | 9 +++++++++
 xen/arch/arm/irq.c             | 2 +-
 3 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
index e80fe0ca24..4bb11960ee 100644
--- a/xen/arch/arm/gic.c
+++ b/xen/arch/arm/gic.c
@@ -111,7 +111,8 @@ static void gic_set_irq_priority(struct irq_desc *desc,=
 unsigned int priority)
 void gic_route_irq_to_xen(struct irq_desc *desc, unsigned int priority)
 {
     ASSERT(priority <=3D 0xff);     /* Only 8 bits of priority */
-    ASSERT(desc->irq < gic_number_lines());/* Can't route interrupts that =
don't exist */
+    /* Can't route interrupts that don't exist */
+    ASSERT(gic_is_valid_line(desc->irq));
     ASSERT(test_bit(_IRQ_DISABLED, &desc->status));
     ASSERT(spin_is_locked(&desc->lock));
=20
diff --git a/xen/arch/arm/include/asm/gic.h b/xen/arch/arm/include/asm/gic.=
h
index 541f0eeb80..3fcee42675 100644
--- a/xen/arch/arm/include/asm/gic.h
+++ b/xen/arch/arm/include/asm/gic.h
@@ -306,6 +306,15 @@ extern void gic_dump_vgic_info(struct vcpu *v);
=20
 /* Number of interrupt lines */
 extern unsigned int gic_number_lines(void);
+static inline bool gic_is_valid_line(unsigned int irq)
+{
+    return irq < gic_number_lines();
+}
+
+static inline bool gic_is_spi(unsigned int irq)
+{
+    return irq >=3D NR_LOCAL_IRQS && gic_is_valid_line(irq);
+}
=20
 /* IRQ translation function for the device tree */
 int gic_irq_xlate(const u32 *intspec, unsigned int intsize,
diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
index 03fbb90c6c..7dd5a2a453 100644
--- a/xen/arch/arm/irq.c
+++ b/xen/arch/arm/irq.c
@@ -415,7 +415,7 @@ err:
 bool is_assignable_irq(unsigned int irq)
 {
     /* For now, we can only route SPIs to the guest */
-    return (irq >=3D NR_LOCAL_IRQS) && (irq < gic_number_lines());
+    return gic_is_spi(irq);
 }
=20
 /*
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 16:06:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 16:06:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101647.1454603 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us1cD-0006AP-Da; Fri, 29 Aug 2025 16:06:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101647.1454603; Fri, 29 Aug 2025 16:06: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 1us1cD-0006AI-Ae; Fri, 29 Aug 2025 16:06:13 +0000
Received: by outflank-mailman (input) for mailman id 1101647;
 Fri, 29 Aug 2025 16:06:12 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qyNB=3J=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1us1cC-0006AC-LB
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 16:06:12 +0000
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c201::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 14a7fd66-84f2-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 18:06:11 +0200 (CEST)
Received: from AS4PR03MB8676.eurprd03.prod.outlook.com (2603:10a6:20b:58c::8)
 by VI1PR03MB6317.eurprd03.prod.outlook.com (2603:10a6:800:136::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.26; Fri, 29 Aug
 2025 16:06:07 +0000
Received: from AS4PR03MB8676.eurprd03.prod.outlook.com
 ([fe80::c5ca:906a:1ded:634b]) by AS4PR03MB8676.eurprd03.prod.outlook.com
 ([fe80::c5ca:906a:1ded:634b%7]) with mapi id 15.20.9052.019; Fri, 29 Aug 2025
 16:06: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>
X-Inumbo-ID: 14a7fd66-84f2-11f0-8adc-4578a1afcccb
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GMEwjsMcR8P0y3H4lhXsAI1AXnCh2ad0tqcij4n1U59lct5SLySJDdwhkd4F8k+rq05hA5WTt/4GziIkyB0rUq02gsjvYVuQADP1M4sbBlP2WJ/PoeniSNWCYseAaj6frjLBXqgijl4O4NMh0ZvwEWb7Vh4t4lwRfyx0cHhIJtvrpIVdRmcdmPINTd1gBQzYi1sgDqo1Dfyokfe+Z1O6dYszBc3qy2k6stOA7Fe3FjY3LytSvINiw3Zxs+O1NJX5RjS+fbL8KJRSgIDyvxlZCiFDz+sn5l9t8Po7Z/vP8bA+iPJ6S4M6bpF3PCecoxTFZ3M3VY9EmUcE6PxzoL/azg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8V7PEb0vuQBSknI6D+YXMfekYTfTq55WoDTdLgn8EB8=;
 b=oDoxlq1JiE3dbg4cspnk+7WtsvdwpYHzX6m4oFerMtF3mD7kyZQgPbZ1Ag3P/gqNyo9tQUhSeWZG15DjFEE6lFLShk5ApcZ+2N4w2E5X3p68ZMmZ6cD1hvAuOF/slvZtvcQ7b7nueMxKlG+z99oLQvCR16oXIUTqBX1pCPspq6uAnq6+Fu44Ecm4MRl4dqZds4K1kxWlCZl8vG2ry/XH9UetYuVVv7Mpda71fnnQ/BlKvExnTlBAC06RBy9+h8m3Efm1MB5XkzZsVYzrrXdh7Qgzt7hvGxzYYD0VDkzdOeCua2pd68agU0dTMjQ9srGtOkUOfl1K4XYks51ArJI6YQ==
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=8V7PEb0vuQBSknI6D+YXMfekYTfTq55WoDTdLgn8EB8=;
 b=iuX9TLIR5U0CUu9EDPLz1DH8c2omQ20RfSBWQbLwVnkL+D7mMsT4sV0t97JrttR7GWCRxs1RmhZmEwdGNpwoaxkv2S1mj2KphFTEgF1+cyRu0roVkPpHhtA1Mdix6DzO04hi5qMBaBCv4zIs4pIlrugfmBcbNMqBpeh2D9MMsGAYrPzIsKejdAzrcc4PSpzMpgdNHnh6K173iVjofr5ly/kzecNbuNCYE2n3/hT7daaKPdvm3ojpUybC++7NNUVM61xusrEZ5UNx1X+2cquo1D9JOzkPMEJZCaL4kGYJiaInQQrSOmoJpet0aGS6mom+geoBbGnfxrnwOm4cPjC/Gw==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "olekstysh@gmail.com" <olekstysh@gmail.com>, Leonid Komarianskyi
	<Leonid_Komarianskyi@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>, Anthony PERARD <anthony.perard@vates.tech>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>, Community Manager
	<community.manager@xenproject.org>
Subject: [PATCH v5 00/12] Introduce eSPI support
Thread-Topic: [PATCH v5 00/12] Introduce eSPI support
Thread-Index: AQHcGP7UQBYvhtVNRUaCLipIubV2Ig==
Date: Fri, 29 Aug 2025 16:06:07 +0000
Message-ID: <cover.1756481577.git.leonid_komarianskyi@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: AS4PR03MB8676:EE_|VI1PR03MB6317:EE_
x-ms-office365-filtering-correlation-id: f65454b8-2252-4edc-4046-08dde715f6bc
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?RiXAC9+4XGB4HJR/h7UDJstkp+/IG+PQmLisnTSsOUo3E2EdayJfhxtbvl?=
 =?iso-8859-1?Q?kyuytoYsind+JfM52rhHeMyWzA3F0PqnXeaYqAKOR8yMpOSZIwbp3oz0yP?=
 =?iso-8859-1?Q?QV/gnMDXU0ZV8igvclKPQ+XmO6Uyb7yLxjCK7jem5sP8yxYQftw3L4S8vd?=
 =?iso-8859-1?Q?cnLlqGtjDtCBuyS02CBid0aWhbsaXR3IDSpXGPeYfRUNqDvP0Y0VVMlKT7?=
 =?iso-8859-1?Q?KzKXqFuxb4FiZPsff+iMvpD4Yp51lEkoWJjbr26CIep0HQ2rmE9LFz5Llg?=
 =?iso-8859-1?Q?Y6meLF3mwSG//U9FTJmkOOg2utoaYD7UupWOah0A9mU11Z4Bw27cHceoEY?=
 =?iso-8859-1?Q?srErP3uYnscJDYDr6bdm+vYpOWRxZElIpeo4Rf2ZY3HZ+F5lxfAMVOyKyD?=
 =?iso-8859-1?Q?uHwmi+sTxlg94Fr5ANwUmOy0gf9hMXTzvqpW65Pt4dbxreuBG8OhsYQJLL?=
 =?iso-8859-1?Q?+r+DfbfROpRlva2mkJF2duk7sHviVdHuji3e7xq6Iu64UdpAcnP4SbCZY/?=
 =?iso-8859-1?Q?wRHEOqE/uVKW9fMqY4s29tC+GIFx+ZtXgaJDxsgnlQdHCP7u7IrtJThnEK?=
 =?iso-8859-1?Q?z38LSptmV+JxzmKQwURwwQMWfHFuoiG5JYsj9LjdozxcyQlIjRJygp6Nwk?=
 =?iso-8859-1?Q?QOO6YgxQaHy46jCyI78MzVvq74XR5kIn32QE/liip9Y1mFTpJQhQ+g//Yh?=
 =?iso-8859-1?Q?UFitz/71LyelJaoiDeAUPAyz/7GqvH6reD2wUmA2UkQ2/DSR5cm5WrN5HU?=
 =?iso-8859-1?Q?lnygzsf+qruWwbabRcbnfUXa1LpiG7rams1YfP3xcn4UXyXSbEfygXPQ4k?=
 =?iso-8859-1?Q?3JpKmvY7tXY1bXJWhm5VoftRdYAMAXCVEo+1EvizDHuizoI0kgl3QXYCxi?=
 =?iso-8859-1?Q?1J/B1iX1es4m3DMgai45+UtAH1hSwUQmn1CrPX7SBBPpsTb/IqSqdgvT7n?=
 =?iso-8859-1?Q?SC4mMvJCI3ZCq5Z4JHhdiDGbFiloQYQ8FQL356jTgZEYhzqX7/Ec7maMfP?=
 =?iso-8859-1?Q?oJYOSrQvYsdrUyzOSS776KAPDhwjJTAypESGaRycfu4cZjfthOvFetPMy0?=
 =?iso-8859-1?Q?OG7Yzh+9ziq72YHAi+2NB06w8xCs27GsdEjyheDvJ2plExaJpwyB4J6R9K?=
 =?iso-8859-1?Q?HAR1GZglSwoiBwieh9kpT9evzKlZxebKiCFp1drIce5Q98axLwBHYPgB95?=
 =?iso-8859-1?Q?L1tYhXhk8MNzQUiYv1QbIF/t+5W2q6dDgNZyP7ZqjO+DPh+2/kyB3SGjGq?=
 =?iso-8859-1?Q?SrXG99vS4QNPPv4gGux8zHhCxTGTddNjNUi/RfOy3yFF2q6FuGLYa/lOqM?=
 =?iso-8859-1?Q?IbGEvxALz819UEvPvKHTKF5+OmYaauSgkbzFLpnZmhKZw+N/24U5C2w1uK?=
 =?iso-8859-1?Q?6CtHE/99xGrvX+/xXCMKHERCokQ1AZ6Otnz9/RfuEroC7M/GoY8oGVeHf+?=
 =?iso-8859-1?Q?2djJI9mGXQaMMuYA+JtdSlgLRDHU1KTRAQ4Q+p2NKmlT6VqlWLU+R9b/xC?=
 =?iso-8859-1?Q?4=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS4PR03MB8676.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?7TOncN+S+otIg9v5MGQrgGCRJXQsFk44pkB5ij9QgSLDT/0Ck/iFuN3LZA?=
 =?iso-8859-1?Q?oMhxooVWGO3s5k7lhxxv/HOBcZY4JXM8cEXU5skyJJSEVy2suSMzBwQVMO?=
 =?iso-8859-1?Q?CnG9pCWWueTI2dp89E5/WCAebVOtNkHkE61H8CI+ECJMraojgbIUeZlQ3R?=
 =?iso-8859-1?Q?pLMrshjru0f8RVB17Mm9Mu46Wt9lnff5n6CdqkEr6amHl+oCFMQTfPl49Z?=
 =?iso-8859-1?Q?NF3jhsR3yu7PpsQEaliKDzsh8nBkSaJZHXakE4eIEDRP2r35a7hIs8Gw4i?=
 =?iso-8859-1?Q?GhzQ6+zYmfs4/6I3qkqTQLK/uznQP6G/Ld7/AquD/OiE3lPLStHd7U/2aM?=
 =?iso-8859-1?Q?mHirC5k0mo/ChDV8R12xdVHYdvHsL8nmU5fQEDoqnE64nYkRUyjhQde8l6?=
 =?iso-8859-1?Q?y+9DKB2/24s86w3w6F9xCTulN6nOF99FT9+QEHUZULAdlUOYoYhStdK7an?=
 =?iso-8859-1?Q?gRAY8S1t1TihnHx5KbwfeusLwhMvfWTjzmkVJh3b6mvEMqzJTf3Ll98nC2?=
 =?iso-8859-1?Q?/3LAOlPXwZVAO/MI/XlzANOSFvaQ5u02s8sBzBz9AKDoAp4r3/l5SI2BDr?=
 =?iso-8859-1?Q?INFq1I8fmHowF5plmp06QaoJTL7Mk7ef7iQrrMhuMNQbvd+84L9M8xzh76?=
 =?iso-8859-1?Q?eImaD1WGZgPifa2+jUsXtfS3GwasWnuppaHLqDuvxSoxYV48uwRTxNhcE+?=
 =?iso-8859-1?Q?Pxwuk3Bjp5rSk9YFD9v3qToL2G2moA4xoIcx+HB4bWxS+3bsPo9GmTpnFf?=
 =?iso-8859-1?Q?I9tVoZnPVp7qqAzVsWrV2K0QhCMywzTfxSNZ1xke3fjO5nUEBqg5dHDEMF?=
 =?iso-8859-1?Q?/QrlVVxGiEs8b8a/ISeSOSVctbC+5SSogWnzu4LbaIyrOPIs0FDt3l1Nf9?=
 =?iso-8859-1?Q?55zQGQhqI4ZER/WbyPoiTQsZYFg7LVZ1U0yBzPHrsM7/K5YB8RrX5Tj7c0?=
 =?iso-8859-1?Q?MagOKu7ImBxsiyKGALU9q77vS7GTINVMLPGuTFBKuJDPV55kg9o2v4Drio?=
 =?iso-8859-1?Q?FnYWgR0d7mZawhipnZI/BnYczxz/uWZRIU4TI4TlqYR5lLm8Kf2AmZhCdm?=
 =?iso-8859-1?Q?D6VygQOkdruMaBu7gCipJI6W11cku6KfEmzG749iRnqfwbE3bmT1i1iyrv?=
 =?iso-8859-1?Q?iEPLcsg7eD+P0tky1BJOca2xZwuPEIQDnLY3T/MPt3JfohYymbvyPvBpA/?=
 =?iso-8859-1?Q?RB1cu8ySJuy1mjlQYQvKpQOdr+SNvw/eYD9m+3VQGg5AzA0rJfkQpW2ass?=
 =?iso-8859-1?Q?qgHXjI6JPCPW4LdR2PqA9vi7ubFfocAvPl40F27V1ocVzDoPa0BzYTqlPo?=
 =?iso-8859-1?Q?9Kg3bH7HLgAZzGJU6DLZj4I/oVCLm4bna85v7Z1vuDdeM9tPy9LqrdCzPK?=
 =?iso-8859-1?Q?IKNA814coaW2JwsNSLLUwWtEvxlsMejEynBZRxKl/GjWgL9+34zv1HaR7s?=
 =?iso-8859-1?Q?TpbRmUn44Zkxle+0GY4p1eaKU2FMK38P3gzGcxhWiej/QymW1/5xIIiaxX?=
 =?iso-8859-1?Q?3hgEHxPcRqciBBmCUovaTqdcYCGcZYNcgQpjafua3Tlcks2/3kYHdhxjfZ?=
 =?iso-8859-1?Q?qxL3Hqcn4Q2uDjRzdnJ+8VuHPMrCAr+vdEV/iALtcSktOSAoXpVEi7h8MG?=
 =?iso-8859-1?Q?GxEu7SD9aZj/53Cwxj6v37bvCmDpZAUy6nVaBmGVhvuUVIVTPxrgGaKsjf?=
 =?iso-8859-1?Q?yEyzadI+tlOHpKjfLoM=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: AS4PR03MB8676.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f65454b8-2252-4edc-4046-08dde715f6bc
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Aug 2025 16:06:07.5832
 (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: CRPNd4SkwEFrmfdWCEZsgI7ztPMNa4lpmTUHVtV2ybAyJ16qL3F8hiS2QD5mesCE+6pLow1w4LmpYpKtQLz6OlyfM5x82/dSXkqX0Kho3bc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR03MB6317

Hello everyone!

This is V5 of the patch series to introduce eSPI support, which contains
fixes and improvements based on the comments received in V4.

The main changes in this version compared to V4 are related to removing
unnecessary #ifdefs that previously prevented the use of certain defines
and macros, leading to an overuse of #ifdefs. After refactoring, it is
now possible to reuse the existing code for vGIC eSPI emulation, which
improves readability and simplifies future changes. As some patches that
had already been reviewed were modified, I would ask Volodymyr and
Oleksandr to take a look at the updated versions of:

[4/12] xen/arm/irq: add handling for IRQs in the eSPI range
[5/12] xen/arm: gicv3: implement handling of GICv3.1 eSPI

The changes made in these patches allowed me to significantly simplify
the following patch:

[10/12] xen/arm: vgic-v3: add emulation of GICv3.1 eSPI registers

For the other patches, I have addressed comments and added reviewed-by
or acked-by tags accordingly, based on the received comments.

Summarized description:
This patch series adds support for the extended shared peripheral
interrupt (eSPI) range (INTIDs 4096-5119 [2](ranges of INTIDs)) for Xen
and guest domains. The implementation uses a generic approach to handle
eSPIs, similar to regular SPIs, while maintaining compatibility with the
existing SPI range. Functionality remains unchanged for setups that do
not require eSPIs.

The series includes:
1) General refactoring of common IRQ operations with GIC registers to
improve code readability, simplify further maintenance and prepare the
key functions for eSPI implementation.
2) Introducing a new Kconfig option (default n) to enable or disable
eSPI support. Disabling this option prevents unnecessary resource
allocation for setups that do not require eSPIs.
3) Adding additional resources to store required information and operate
with up to 1024 interrupts from eSPI range.
4) Adjusting assertions and checks to pass verification for INTIDs in
the eSPI range.
5) Configuration of eSPI-specific registers during GIC initialization
for systems with GICv3.1+ hardware.
6) Enables eSPI MMIO emulation for vGIC, allowing guest domains to
access and operate within the eSPI's INTIDs.
7) Updating documentation and CHANGELOG to reflect the changes made for eSP=
I
support.

Also, to simplify reviewing, please find below link to unsquashed patches, =
that
are on top of every patch, that is changed in the series, compared to V4:
https://github.com/LKomaryanskiy/xen/commits/espi-support-master-upstream-v=
5-unsquashed/


Changes in V5:
- individual changes in patches

Link on V4:
- https://lists.xenproject.org/archives/html/xen-devel/2025-08/msg01767.htm=
l

Changes in V4:
- added a patch for documentation
- individual changes in patches

Link on V3:
- https://lists.xenproject.org/archives/html/xen-devel/2025-08/msg01628.htm=
l

Changes in V3:
- added a patch to update CHANGELOG.md
- individual changes in patches

Link on V2:
- https://lists.xenproject.org/archives/html/xen-devel/2025-08/msg00372.htm=
l

Changes in V2:
- added 2 more patches to implement helper
  functions for gic/vgic:
  xen/arm: gic: implement helper functions for INTID checks
  xen/arm: vgic: implement helper functions for virq checks
- removed 2 patches:
  xen/arm/irq: allow assignment/releasing of eSPI interrupts
  xen/arm: gic/irq: permit routing of eSPI interrupts to Xen and domains
  since their functionality can be moved to appropriate patches after
  introducing patches with helper functions
- individual changes in patches

Link on V1:
- https://lists.xenproject.org/archives/html/xen-devel/2025-07/msg01809.htm=
l

Leonid Komarianskyi (12):
  xen/arm: gicv3: refactor obtaining GIC addresses for common operations
  xen/arm: gic: implement helper functions for INTID checks
  xen/arm: vgic: implement helper functions for virq checks
  xen/arm/irq: add handling for IRQs in the eSPI range
  xen/arm: gicv3: implement handling of GICv3.1 eSPI
  xen/arm/irq: allow eSPI processing in the gic_interrupt function
  xen/arm: gicv3: modify ICH_LR_PHYSICAL_MASK to allow eSPI processing
  xen/arm: vgic: add resource management for extended SPIs
  xen/arm: domain_build/dom0less-build: adjust domains config to support
    eSPIs
  xen/arm: vgic-v3: add emulation of GICv3.1 eSPI registers
  doc/man: update description for nr_spis with eSPI
  CHANGELOG.md: add mention of GICv3.1 eSPI support

 CHANGELOG.md                           |   2 +
 docs/man/xl.cfg.5.pod.in               |  13 +-
 xen/arch/arm/Kconfig                   |   8 +
 xen/arch/arm/dom0less-build.c          |   2 +-
 xen/arch/arm/domain_build.c            |   2 +-
 xen/arch/arm/gic-v3.c                  | 195 +++++++++++++++++----
 xen/arch/arm/gic.c                     |   8 +-
 xen/arch/arm/include/asm/gic.h         |  31 ++++
 xen/arch/arm/include/asm/gic_v3_defs.h |  40 ++++-
 xen/arch/arm/include/asm/irq.h         |  25 +++
 xen/arch/arm/include/asm/vgic.h        |  42 +++++
 xen/arch/arm/irq.c                     |  62 ++++++-
 xen/arch/arm/vgic-v3.c                 | 198 +++++++++++++++++----
 xen/arch/arm/vgic.c                    | 232 ++++++++++++++++++++++++-
 xen/arch/arm/vgic/vgic.c               |   5 +
 15 files changed, 778 insertions(+), 87 deletions(-)

--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 16:06:25 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 16:06:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101651.1454643 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us1cO-00078i-Ku; Fri, 29 Aug 2025 16:06:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101651.1454643; Fri, 29 Aug 2025 16:06:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us1cO-00078Z-Gw; Fri, 29 Aug 2025 16:06:24 +0000
Received: by outflank-mailman (input) for mailman id 1101651;
 Fri, 29 Aug 2025 16:06:23 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qyNB=3J=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1us1cN-0006O9-On
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 16:06:23 +0000
Received: from AM0PR83CU005.outbound.protection.outlook.com
 (mail-westeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c201::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1b089fde-84f2-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 18:06:22 +0200 (CEST)
Received: from AS4PR03MB8676.eurprd03.prod.outlook.com (2603:10a6:20b:58c::8)
 by VI1PR03MB6317.eurprd03.prod.outlook.com (2603:10a6:800:136::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.26; Fri, 29 Aug
 2025 16:06:19 +0000
Received: from AS4PR03MB8676.eurprd03.prod.outlook.com
 ([fe80::c5ca:906a:1ded:634b]) by AS4PR03MB8676.eurprd03.prod.outlook.com
 ([fe80::c5ca:906a:1ded:634b%7]) with mapi id 15.20.9052.019; Fri, 29 Aug 2025
 16:06: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>
X-Inumbo-ID: 1b089fde-84f2-11f0-8dd7-1b34d833f44b
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MpH5yI9NoQgrXGiqMqAy5N5RRvj7ZYOZIFpvL7pB223JqT2SDgeQNusei/jBSIYFgQc+Hpz108y/bHX9QaZELi8yYAqyz9O/cIwoUZ0bH4yt23wqImeSm8P3wa9H876B3jg4B5Y2OcclMx5CN0QRRL8FnC4+FXfYqDNEYg4GUrBX7VXIWDvV2RXKF971dLGwALNwVZFeYSYHGUluv5lUiEQ3jgv46CLkrKoLOXBOew5Y9+VtgxggpDC5bgdCkdIXGzyuiEu/ZFnCmcUQlYnui9xmJoFzNl98bNLBSqCZ926WiOKrkTKHbeJp+C1z2y91bEBVDg9WAnlGtgzPyl+d0g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=mBNwg+KGru3hWYAd6jh+irYJNu9K0e+2+vVOy3gd/B4=;
 b=DB9DoNVUGH5Tb5UOZQkoym16e1cxdUbrU3LCe1d0gcz3NQq1Pd83fT5QKIteiQlP9fqRqdBbzNeVLNkPhE5VmRFegI2Z99eOYBTcqmQJGT9hV9yu+kjUQYeNSVLCO7GeRp3oHXiWvlyhYVCwHqJ5yQL3kkxzVJ4n2G3PIHUlTxLtHBX/BBOon2171LsS6APDIrKT5y2369osnOqQkmtzebkmo2DaErpurSbe9ZMmjxRL7sQSBlupso94PPW2kU/zCcKyEBagiOcEppuPGzkeeyuiz2DkbYs0lmDOgg/dusoOCcSQm1/R/0ya57tzuH573khWaWAAjkIghxZBi24AmQ==
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=mBNwg+KGru3hWYAd6jh+irYJNu9K0e+2+vVOy3gd/B4=;
 b=rteZTAyev6oP08x7xjdAxKtHLkubnaTsN/MshPMe0MRSlYNnut8GEGCWtZs6/gCz2Y0pQSGKlJFZzrPSMly17d1zm6fyJetz0T3ue/qfSBXXiesP/24pbjSij+QS4y1G1Drs2gZxt7tWG4R9KKH8xkuFh3TqZsFAODq/VuBZMlqWSL9OkdyMJtbX1czRGwWqltM0C8x6W8SP/X1ZgcSxolyZuLpjyRacFYrjomnshxFAHv1Lr/g6/Yvh+utK/n/35poFgo9qiDqpIyULhebQG1Gw+FNMSCruXe1yVBYQc8C6vvjNzEQpYuhySy0SnkElaImxIVhMdKNZJ31MEuN2nw==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "olekstysh@gmail.com" <olekstysh@gmail.com>, Leonid Komarianskyi
	<Leonid_Komarianskyi@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 v5 04/12] xen/arm/irq: add handling for IRQs in the eSPI range
Thread-Topic: [PATCH v5 04/12] xen/arm/irq: add handling for IRQs in the eSPI
 range
Thread-Index: AQHcGP7bBiDA5fxWR0+DupelLQbe9w==
Date: Fri, 29 Aug 2025 16:06:19 +0000
Message-ID:
 <e0f76a1533332cef68bfaacbdf57fd05f27764a6.1756481577.git.leonid_komarianskyi@epam.com>
References: <cover.1756481577.git.leonid_komarianskyi@epam.com>
In-Reply-To: <cover.1756481577.git.leonid_komarianskyi@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: AS4PR03MB8676:EE_|VI1PR03MB6317:EE_
x-ms-office365-filtering-correlation-id: 71c82f8f-b53a-4723-5684-08dde715fdea
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?GmMYvs7QBVb2Glhe267+wwDKwbFMpLJXJnBDiX6T/2hcaGogIFYEh3qfRh?=
 =?iso-8859-1?Q?lI/oDuaTnc3Lq3xzvXiJqN9VWTL935Wvl7YpcyHN3k6LMUqlMux/Vk7s1C?=
 =?iso-8859-1?Q?hOnk9pRVrzltHSEnn1ZbEbk4CStx2mub1Bf8IVdaXugwZLnUgPNem1HJJV?=
 =?iso-8859-1?Q?PYvoNHKDkwrIeGcIscdGGSZWq8P6YHX4pqZde8V3IThiPF+TihcNk/y31V?=
 =?iso-8859-1?Q?WZT5WLLpSJNYyAxYJT2bgrXDL5GEJVQjGJ+N2JPQWGnGJofAiqvXrgMQBx?=
 =?iso-8859-1?Q?vc7vwTGPwOjeKcBl0wu0aI4qWNYK0XPk6K9TLsjd1xvndgRHHQZLvMzWx6?=
 =?iso-8859-1?Q?/kFd4VwqVVGsW7PkTqI66IFmp3/end8lC1k9hoZwhycmvUFJOKB5y8dwUm?=
 =?iso-8859-1?Q?A4IxXuh9P2gnYQES+aFgAETjIvDHvIapKuxIdS4dJzZyrYoS5igKzIguqD?=
 =?iso-8859-1?Q?mriIHMll3jnIDZBZTLecTTqf9uDeZxucbqnHpRW0x4j6rIuBWZHolk3o0y?=
 =?iso-8859-1?Q?Sx6jZD/Nd4qLUJQ1edI5AlKQ1elrFr+yIWdN/zhb0mY0QTXojysihcfpyp?=
 =?iso-8859-1?Q?wxa1c/5jBOwTH9hVDgpdTk9AuTpmpx5613afyZgn+lDyjYQytYRgLsivC3?=
 =?iso-8859-1?Q?+VEEcehGPjmhXp7CxFNnQfBTc8Eu+xbIawd6OSTCZ2/xFonkO32KNT/do8?=
 =?iso-8859-1?Q?XRnumFxpggpHwRLReCNJZlzRcUm8uoeHlWxudqwOqBS7LJPJ5lU3xaUN/1?=
 =?iso-8859-1?Q?xDXU0vH0WLJgZbWKvlOG1XMsZ3eTWZKxGrqLtThXfpf0Gd4DV7mtf5emBc?=
 =?iso-8859-1?Q?8bUb0OojoK/ygjUo/dPplUpc3gfMLc9fxZCHWjkrBdc8qlwBSVctPHaNLC?=
 =?iso-8859-1?Q?G8WNTHuAisTOC1ldtfeypw+DFu+IOT+LkdwpDtvI3NfKrAAOIUVMZlznfH?=
 =?iso-8859-1?Q?ZD267PBQ0RonntKXitDyiztcY9ISxNh5KSoAlzJ7W9VSFkQsi9BKwLMsii?=
 =?iso-8859-1?Q?mtiiDEBZFDiNbeUa9rGHrIqoMkmxQ8zJ4+i16vJn5g7eG9Ts8/FIk6dbEQ?=
 =?iso-8859-1?Q?LmZMSJyhvFXSBniNWTVolu+dzgrAp9KyBWb0W2vDxP/VrE3m1LoYKSPcc8?=
 =?iso-8859-1?Q?6RBy6TTVOZziCsC925M7tMaCL3xL9RXwM3O00ssVbiev135dXlZttBR2v6?=
 =?iso-8859-1?Q?jNLWW3hSpyXmIcVgoTLSavbgVfF6skKI5qHM/MZtD/Ee6v6H+8EhCu2dA1?=
 =?iso-8859-1?Q?Zyh+mVQCcG9tNVZ1XQCM8rAjZr3gFY+BA9lWMxkajF9MSU6qB6CP6Fxrqj?=
 =?iso-8859-1?Q?krFwJswzGw201pPq+NcPRbmTqf1m3u4oTtKClyftOpqBXTXN2UQWJtKnD/?=
 =?iso-8859-1?Q?QNZmrEXFoi2RLHVGdR9ujKUSoh1DqyARNqOba8+t3VR0KcqBtg6dm4Ac6+?=
 =?iso-8859-1?Q?s9/OInevYwrHmTu5psJfdc44lw6S3GXPKC3ofwsdx76O5xPwyHGYZa/pAY?=
 =?iso-8859-1?Q?nueiyaBcvcIaCU7q4JYaNxKOqy9JS4QtdlX3FJPg+iQw=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS4PR03MB8676.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?yILoahaGn5IjL6PWm+nXsRjpXVmcWiiie5/opnsaGR7NeXZVIeTQkhp48A?=
 =?iso-8859-1?Q?+CaHgEIILNfkYALugGf8aUmHDOzH2+HBxgACHEXD/NVFuABalxjB1DcmDP?=
 =?iso-8859-1?Q?tDQjuBugomS/ltiACrjJbxKbO2+DyoGm6E/j+KqKWwvRPA4UkNGwSqaUIf?=
 =?iso-8859-1?Q?TTcZXNJZpveDbm5vnIsT2zSdYju8v3rSR/UUoJwoV+hZlP2vlQvrB28JZY?=
 =?iso-8859-1?Q?o7EYOfWhos4Sm+yaBFIvh2JXBpJpSPZf0nAblNz49gunFwCmwE2C3/81YI?=
 =?iso-8859-1?Q?AhNjey9zztZ2kZB1B0rzlQ8HU1ZnJ6wf14Xzqi/bIUEgUxHFL82yMDN8gr?=
 =?iso-8859-1?Q?Jk+oKn77oXoXlvtxho3sJ+wQ4VAUTup7iQAEEKlBo1sTAL7ws8hjcUM+iK?=
 =?iso-8859-1?Q?vYVnRotxINT+YcMLPBA7WvAvZVWvgv6zk4i6f8+nHFSrmkD3dZ87OkvNfo?=
 =?iso-8859-1?Q?2y60x6JTfKVNVp2KBGbajTAgxaWTH2LZhYstyqbmgkqxIqf6XUJRoxr7oV?=
 =?iso-8859-1?Q?D5I5WOir1lsGPC+kvAgY4PlPw137TviT0K/HkYiLglNVMXOImJ48L2cMYE?=
 =?iso-8859-1?Q?K6YIIYE7u0u124g1Qyq6dPSymFUQl/YakMbv+veEgAw7L7rVGoZe1Do/hE?=
 =?iso-8859-1?Q?iVDRlaYmW6UKb5o+ovVa/H3Lwy0LxomKoz69Pdm7AXF3jXRymTPR3b9K1F?=
 =?iso-8859-1?Q?ML/LDOQ531kuiOfWZ+6zw/VN5keikOIyY/Dx9ymYtI9JD/x3aU1/Yk9174?=
 =?iso-8859-1?Q?ekUj8lX8/AdWDjLGY+A/r3INlVoqX0ZQCo7ZZ8j6TeR4lcCRYEdZv9w5jk?=
 =?iso-8859-1?Q?NOxKjsKFyYcYa3xtAzBSfZFHO5F9ELFUVyXzIZAUeoVFZLZLdysZQQdet6?=
 =?iso-8859-1?Q?zoBqCCIS9D5jmY7nhniPWjN126r5ktcG0HJQr1y3MLwGEnrURf7dmmFH/c?=
 =?iso-8859-1?Q?BtiBaEbGHb+OArfo9trGcnV/Kn0ofR6HyqceaS43wZT6JadYwlM+hqhp/e?=
 =?iso-8859-1?Q?Zo8e3SxBTgMbv9gwov6wr3YkH1hY+IoQqgQJ+64C5ehlcM8vH2vIFN5fFk?=
 =?iso-8859-1?Q?r4mPiZ52iUY4mOiFI9IvCWezHoblZERG55mZA+RUSR2f5aSiQlphPW6nNG?=
 =?iso-8859-1?Q?VU44t5kugT5Kz1DMWdHgQ5J9QlhVr+fVShfKzVt4aKSluvsyziT6LcPWbf?=
 =?iso-8859-1?Q?HL2jC+8sCT1uvneKBKuwTHsPatoqXfowN6/+0vEKQS/0CJkyKczFQ55EY1?=
 =?iso-8859-1?Q?w/8WpcLCAKH2lwgC/ZJ/fQWzMbi+/AfTLgZtJUyGZ9SkOsn5loXJpDEeuO?=
 =?iso-8859-1?Q?ID4AtZo5nGw9F6Ei2sY5PQiOhCarVFtuFr+TsozHkypHsU+wtjttnyEDuU?=
 =?iso-8859-1?Q?vOvcqPDc6GDnANm8MGj3tt+yKT0R8kyqqkfrOb9IYCgm8ZVaCAVbHP8alA?=
 =?iso-8859-1?Q?IGb4nfM7mODke1NOLgf7m8wQpSYMEsbilkoi0z7K0CpK5xyasiVT11Om71?=
 =?iso-8859-1?Q?HAnfsyBQ4v2fUbGQvN/KBQNj0FT9EFNny01EDOIdNbied8P1KSIDKLtqgD?=
 =?iso-8859-1?Q?V9maaMpayt88ZWF4qFdfA8RMDSsXQ5WXAoB+2xYj18T2KAz4VM5+qztOVa?=
 =?iso-8859-1?Q?Og6oLw36b3PWg7hnnFZloqJxdvqRwc+qiKqgtJy06Rp1f79pXRzNFUFoFX?=
 =?iso-8859-1?Q?docTXj+cuU/G3MpQHn8=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: AS4PR03MB8676.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 71c82f8f-b53a-4723-5684-08dde715fdea
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Aug 2025 16:06:19.6531
 (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: jxqsFicrPQa3DsYA52T3yoWkyuKAQdoXVEPN4YmNSwJU9JqhgY4Wclg0v6dBO8w/VekoRf4G8efE0vwvgG0woZ5nWSy2UsVpivk0+N1+LXA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR03MB6317

Currently, Xen does not support eSPI interrupts, leading
to a data abort when such interrupts are defined in the DTS.

This patch introduces a separate array to initialize up to
1024 interrupt descriptors in the eSPI range and adds the
necessary defines and helper function. These changes lay the
groundwork for future implementation of full eSPI interrupt
support. As this GICv3.1 feature is not required by all vendors,
all changes are guarded by ifdefs, depending on the corresponding
Kconfig option.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>

---
Changes in V5:
- no functional changes introduced by this version compared with V4, only
  minor fixes and removal of ifdefs for macroses
- added TODO comment, suggested by Oleksandr Tyshchenko
- changed int to unsigned int for irqs
- removed ifdefs for eSPI-specific defines and macros to reduce the
  number of ifdefs and code duplication in further changes
- removed reviewed-by as moving defines from ifdefs requires additional
  confirmation from reviewers

Changes in V4:
- removed redundant line with 'default n' in Kconfig, as it is disabled
  by default, without explicit specification
- added reviewed-by from Volodymyr Babchuk

Changes in V3:
- introduced a new define NR_ESPI_IRQS to avoid confusion, like in the
  case of using NR_IRQS for espi_desc array
- implemented helper functions espi_to_desc and init_espi_data to make
  it possible to add stubs with the same name, and as a result, reduce
  the number of #ifdefs
- disable CONFIG_GICV3_ESPI default value to n

Changes in V2:
- use (ESPI_MAX_INTID + 1) instead of (ESPI_BASE_INTID + NR_IRQS)
- remove unnecessary comment for nr_irqs initialization
---
 xen/arch/arm/Kconfig           |  8 +++++
 xen/arch/arm/include/asm/irq.h | 24 +++++++++++++++
 xen/arch/arm/irq.c             | 56 +++++++++++++++++++++++++++++++++-
 3 files changed, 87 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index 17df147b25..43b05533b1 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -135,6 +135,14 @@ config GICV3
 	  Driver for the ARM Generic Interrupt Controller v3.
 	  If unsure, use the default setting.
=20
+config GICV3_ESPI
+	bool "Extended SPI range support"
+	depends on GICV3 && !NEW_VGIC
+	help
+	  Allow Xen and domains to use interrupt numbers from the extended SPI
+	  range, from 4096 to 5119. This feature is introduced in GICv3.1
+	  architecture.
+
 config HAS_ITS
         bool "GICv3 ITS MSI controller support (UNSUPPORTED)" if UNSUPPORT=
ED
         depends on GICV3 && !NEW_VGIC && !ARM_32
diff --git a/xen/arch/arm/include/asm/irq.h b/xen/arch/arm/include/asm/irq.=
h
index 5bc6475eb4..4443799648 100644
--- a/xen/arch/arm/include/asm/irq.h
+++ b/xen/arch/arm/include/asm/irq.h
@@ -32,6 +32,13 @@ struct arch_irq_desc {
 #define SPI_MAX_INTID   1019
 #define LPI_OFFSET      8192
=20
+#define ESPI_BASE_INTID 4096
+#define ESPI_MAX_INTID  5119
+#define NR_ESPI_IRQS    1024
+
+#define ESPI_INTID2IDX(intid) ((intid) - ESPI_BASE_INTID)
+#define ESPI_IDX2INTID(idx)   ((idx) + ESPI_BASE_INTID)
+
 /* LPIs are always numbered starting at 8192, so 0 is a good invalid case.=
 */
 #define INVALID_LPI     0
=20
@@ -39,7 +46,15 @@ struct arch_irq_desc {
 #define INVALID_IRQ     1023
=20
 extern const unsigned int nr_irqs;
+#ifdef CONFIG_GICV3_ESPI
+/*
+ * This will also cover the eSPI range, as some critical devices
+ * for booting Xen (e.g., serial) may use this type of interrupts.
+ */
+#define nr_static_irqs (ESPI_MAX_INTID + 1)
+#else
 #define nr_static_irqs NR_IRQS
+#endif
=20
 struct irq_desc;
 struct irqaction;
@@ -55,6 +70,15 @@ static inline bool is_lpi(unsigned int irq)
     return irq >=3D LPI_OFFSET;
 }
=20
+static inline bool is_espi(unsigned int irq)
+{
+#ifdef CONFIG_GICV3_ESPI
+    return (irq >=3D ESPI_BASE_INTID && irq <=3D ESPI_MAX_INTID);
+#else
+    return false;
+#endif
+}
+
 #define domain_pirq_to_irq(d, pirq) (pirq)
=20
 bool is_assignable_irq(unsigned int irq);
diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
index b8eccfc924..61c915c3f9 100644
--- a/xen/arch/arm/irq.c
+++ b/xen/arch/arm/irq.c
@@ -19,7 +19,11 @@
 #include <asm/gic.h>
 #include <asm/vgic.h>
=20
+#ifdef CONFIG_GICV3_ESPI
+const unsigned int nr_irqs =3D ESPI_MAX_INTID + 1;
+#else
 const unsigned int nr_irqs =3D NR_IRQS;
+#endif
=20
 static unsigned int local_irqs_type[NR_LOCAL_IRQS];
 static DEFINE_SPINLOCK(local_irqs_type_lock);
@@ -46,6 +50,53 @@ void irq_end_none(struct irq_desc *irq)
 }
=20
 static irq_desc_t irq_desc[NR_IRQS - NR_LOCAL_IRQS];
+#ifdef CONFIG_GICV3_ESPI
+/*
+ * TODO: Consider allocating an array dynamically if
+ * there is a need to enable GICV3_ESPI by default.
+ */
+static irq_desc_t espi_desc[NR_ESPI_IRQS];
+
+static struct irq_desc *espi_to_desc(unsigned int irq)
+{
+    return &espi_desc[ESPI_INTID2IDX(irq)];
+}
+
+static int __init init_espi_data(void)
+{
+    unsigned int irq;
+
+    for ( irq =3D ESPI_BASE_INTID; irq <=3D ESPI_MAX_INTID; irq++ )
+    {
+        struct irq_desc *desc =3D irq_to_desc(irq);
+        int rc =3D init_one_irq_desc(desc);
+
+        if ( rc )
+            return rc;
+
+        desc->irq =3D irq;
+        desc->action  =3D NULL;
+    }
+
+    return 0;
+}
+#else
+/*
+ * This function is stub and will not be called if CONFIG_GICV3_ESPI=3Dn,
+ * because in this case, is_espi will always return false.
+ */
+static struct irq_desc *espi_to_desc(unsigned int irq)
+{
+    ASSERT_UNREACHABLE();
+    return NULL;
+}
+
+static int __init init_espi_data(void)
+{
+    return 0;
+}
+#endif
+
 static DEFINE_PER_CPU(irq_desc_t[NR_LOCAL_IRQS], local_irq_desc);
=20
 struct irq_desc *__irq_to_desc(unsigned int irq)
@@ -53,6 +104,9 @@ struct irq_desc *__irq_to_desc(unsigned int irq)
     if ( irq < NR_LOCAL_IRQS )
         return &this_cpu(local_irq_desc)[irq];
=20
+    if ( is_espi(irq) )
+        return espi_to_desc(irq);
+
     return &irq_desc[irq-NR_LOCAL_IRQS];
 }
=20
@@ -79,7 +133,7 @@ static int __init init_irq_data(void)
         desc->action  =3D NULL;
     }
=20
-    return 0;
+    return init_espi_data();
 }
=20
 static int init_local_irq_data(unsigned int cpu)
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 16:06:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 16:06:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101648.1454613 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us1cI-0006OY-Kw; Fri, 29 Aug 2025 16:06:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101648.1454613; Fri, 29 Aug 2025 16:06: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 1us1cI-0006OR-Ht; Fri, 29 Aug 2025 16:06:18 +0000
Received: by outflank-mailman (input) for mailman id 1101648;
 Fri, 29 Aug 2025 16:06:18 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qyNB=3J=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1us1cH-0006O9-SK
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 16:06:17 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 17349156-84f2-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 18:06:15 +0200 (CEST)
Received: from AS4PR03MB8676.eurprd03.prod.outlook.com (2603:10a6:20b:58c::8)
 by VI1PR03MB6317.eurprd03.prod.outlook.com (2603:10a6:800:136::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.26; Fri, 29 Aug
 2025 16:06:10 +0000
Received: from AS4PR03MB8676.eurprd03.prod.outlook.com
 ([fe80::c5ca:906a:1ded:634b]) by AS4PR03MB8676.eurprd03.prod.outlook.com
 ([fe80::c5ca:906a:1ded:634b%7]) with mapi id 15.20.9052.019; Fri, 29 Aug 2025
 16:06: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>
X-Inumbo-ID: 17349156-84f2-11f0-8dd7-1b34d833f44b
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=WQIWUEsXqjsjmivdRX8ItIl1VdfKIjYGOlfpKEh11iakmW0aqj11CAmy4IY7EiabtcNKLs6vBDL80SRVtY/6L3gOKABWeIht5eL5EYiyZwg1uYZtxqPspwR2Xhzy2NB1v7JPIZBQ5mTY4x+5NNOwOeKrF1mLmDvnAiWZjjNYzrx5rxVz3irbUgAqdUCs+B6l4eFs2/MZ+Mw8naM3GUnm9rEdJ98YnZ1FNNlJxkENrN9SqexTBSnWVYPXaa9SmwknaTe3lWXCgOOkFj4l3/0tukND03U7i5ftvtoFFf/k9Z+B50jBm4N01TSkhihbE3ZUgpcg940baITLUFI1J3/hjg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=HcLF7BAT9Ubkvibmfe7nlNrM08Cmevf1ChCCx9+RNdM=;
 b=NhNVieFnZ+62GdW0AZQk9pkgNFxi2bXn84ZOvyDi7crqxY7f2O8ADqrWAs2YG0+rR2IhYWiLXVnl1O2BWbeFNqHjGkIYhB+qZOB5xMCM8VW8jn87mCru2yQaqloueQFCrM9mWMgCYqb4jd8ac6sNS4U94DeY0k2PtVMivPCohEK4Nttkx28x+44IkL4EgQhwEqqSzXOp9VIAtAf9CS8T7Hr453Xf7RV+X1oSTUPDmBel8yBa17cTIeGdEOlechQmQ5fiRZ4l6qGYj1XttlcVp3BGoIegO6Nk1sI04uFjNusiV4Yy8Rr9J7Kv3B3S1LJTF8rH4VgtgGeKko9AY48MNg==
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=HcLF7BAT9Ubkvibmfe7nlNrM08Cmevf1ChCCx9+RNdM=;
 b=TQYLKqIzu+e/6Ig0s+RykxY0eocG3RTq5sxDfE3yoIJzp6u47UJwfXZ4x6ummUau71f5bUGmz7ptMVHXtAguq/OKsz0FRBJy2BvCQo4qT9nQ8Yt0mecJPgeQgA7lpzAHtlCBOOfXgdvbzvBBwwwWIGxigrvxkWMr6Sm5dsHbutmS0P2MhvLVbr89elbr2IlMcST2xUrCuVDi/j/BtKq5xF6eqHVXgxBbTXvr5SilnqKO60+eCgr9PwDaMIIaBCaew7gok3S0IYlyTv1jtkcrwFtGj/gc1fQ5BT16j/WEIFD8Rz4H9lJBYeO4FG4amhI/bwr5z67OTaHiMHnuplrMhA==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "olekstysh@gmail.com" <olekstysh@gmail.com>, Leonid Komarianskyi
	<Leonid_Komarianskyi@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>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Julien Grall <jgrall@amazon.com>
Subject: [PATCH v5 01/12] xen/arm: gicv3: refactor obtaining GIC addresses for
 common operations
Thread-Topic: [PATCH v5 01/12] xen/arm: gicv3: refactor obtaining GIC
 addresses for common operations
Thread-Index: AQHcGP7VA43rYFd/50W5xNx+fBJnNg==
Date: Fri, 29 Aug 2025 16:06:10 +0000
Message-ID:
 <7da58b5a27d61f75eaebb749a7ab4c72655a12cb.1756481577.git.leonid_komarianskyi@epam.com>
References: <cover.1756481577.git.leonid_komarianskyi@epam.com>
In-Reply-To: <cover.1756481577.git.leonid_komarianskyi@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: AS4PR03MB8676:EE_|VI1PR03MB6317:EE_
x-ms-office365-filtering-correlation-id: 74f34297-b6f6-40f1-982a-08dde715f82d
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?jStG808AHCWL0GjeG0jgn/JEANu1jdgvlW9DNfVfSQFrQBTwwXfg9w87OM?=
 =?iso-8859-1?Q?4ZbePdNguj/2T3xsla6DT2B8KTAdYM7NdvTXnKvmY80raMqOfVE0vR4VYA?=
 =?iso-8859-1?Q?lqh0GMNsUbVXRaWmy2g12s9rlEC4+c8QO9YvkR0iaozTrbDPyRPNC/xVzi?=
 =?iso-8859-1?Q?WljJMZJh04gGHDJY0S0hMfbfFIFjwHktOvYxluseOM1exip23ZTi3B0L1e?=
 =?iso-8859-1?Q?JkxqAPXmhIrc3FqbXIMt9QdWnO3jsLZLUftRbKylHQwl3M2nGLkKDNk0k3?=
 =?iso-8859-1?Q?9OGV8ap53UpJ0VSH+9SvYnDYQu21Jq1wlfa0cSRaeKzX2dCJSVKHMFrxz4?=
 =?iso-8859-1?Q?sIZjyCWHhRBlh+qMhjqYLJbNR6SOZY8l2Ae3CHQAmgPkVpdV9A6hqNi24e?=
 =?iso-8859-1?Q?ZeADbaaZrSK9SY1a8eZ+1Eg7bjyhvME+HsImJqbI4QvR0N8m5CZE3J1h8N?=
 =?iso-8859-1?Q?J1XJbld2Y5XN5v6YQ9tS/f2Ga8kkRAfh1eTBQKSdvjvKwWqXGBEFL3MS9W?=
 =?iso-8859-1?Q?zflSO7iGO43O5OfLMWiFrRsM0JIwgFzwTwLJ5KPzlWsXkEQ+jrgiePG8T1?=
 =?iso-8859-1?Q?sQgf+wWf5GgkEZ+XaA9h+sJi3BKSzJDd+6vNZ1ZvoGdgG/BStESvQxL4WI?=
 =?iso-8859-1?Q?0Grk8MN9uapuyP9puzo/H4KFdEhM8svlhYbGzOmXISLSy9oeo+30VqGEaj?=
 =?iso-8859-1?Q?g19tIMJHZ7twwXzergagNCixJjkjYUwh9o7dzulu7fQvyO/KdxW4XiE8Qq?=
 =?iso-8859-1?Q?6nYk1kUzp5/wG3dSkrXCecDKaDXLCHZpUKWQ9bPdw2Q6yhgJ1YrS5pO6qw?=
 =?iso-8859-1?Q?QD+y4ydxt717jHW7cZRZgDVbC0bAyEkP7KFHqYXrpBlfQR2R4r76ZCbP9c?=
 =?iso-8859-1?Q?3sZL912Zw0Q+mP7xXDiH0LI7HjZzm17Pr/hq71lnJ6CJxBJPcJCN7TepwQ?=
 =?iso-8859-1?Q?QCZKUgaKWXzfiYJcAp3cxtU/oIM8B5vNOCFdjh6aphmAp71fmuCfBvjG4+?=
 =?iso-8859-1?Q?OcsE7IqdejeHa3x4OwwdM40fRRi4jv7DDnGq4bIOcKGdSyu3g/bGLgqb7N?=
 =?iso-8859-1?Q?+jloui+dLfMhLDmRPXFPBzKRi4lqtjhd09MJ08mK/IwwekeMNyzgBhEGgi?=
 =?iso-8859-1?Q?WMjq3M2zGmgf/kh930dUTaPBNdacE/uwezuwgdf6Ge/FzpUU2098gJoWxF?=
 =?iso-8859-1?Q?IvTsSzwr0SHlq0vvC0lk2K2kbicmMSqRQNHdsWAIxjwTJ+Khd2OP2QgV+M?=
 =?iso-8859-1?Q?WXFirGI+FJkW6prRKLRgpiaFSKzk3sJrVyLkLbNMcf8jpuykyZ0WQjPtb3?=
 =?iso-8859-1?Q?D1G2oBToJG++eCwaNiqCH1mHg/dcGdA3IKEh57+3ZP5oflIg4sGR6zudSL?=
 =?iso-8859-1?Q?XvP7dN/SVXRd9PHBB32NqB2PrLIrIrO2vDQNk+jHbNH8KwuoA2yJNec5o4?=
 =?iso-8859-1?Q?rnlxdlTKsxVYVfjD/l4Wcd8Vatz6clHrn3qVrN1FwlDSMxUL/bDAGApXfE?=
 =?iso-8859-1?Q?Q7ECjzS6MWzv+7OHTRl4lGoqLqmgp/yrVuRWrNFFNZrA=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS4PR03MB8676.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?4xh2Fef/qdLg78s0SnhF/StCTVVnCyeG3T12OunXPSnt0TCf255p6IuuJ5?=
 =?iso-8859-1?Q?cSnfwe/lGEj5nlCVoiN4um/w6j0pbHMvcU06EQmhMvIcn0J54u+uzeeEqm?=
 =?iso-8859-1?Q?MtKBHo3bsDcaScxMrsG+hnoYnkH8I/rx721fh4FdxgT3p5umPBkBRENVQC?=
 =?iso-8859-1?Q?TIQvMXjl1WIxg1Ra1zFLGcobq+cN2u6TxR5A2sbLgCqkrjCgiG7RfiTewX?=
 =?iso-8859-1?Q?eaiQqNEJeKhA0lPbJ0qniIo7uQvaStlFXXiZsvrY4EdiyF0lg6e7J43zBb?=
 =?iso-8859-1?Q?wDi3x6crsqxz9EUh1FWodN8t+BPaHUpA8KJJBnnWKo16m+sQ/2hBzb51bE?=
 =?iso-8859-1?Q?90meOs0D26oOugBDY0x38oIzlIO5yJVqWalh0kamq7nVqRWR9b/N/KrczN?=
 =?iso-8859-1?Q?N3N2HxqEg9C25nzXnkqw8eHaNU/EJRlTmRjIn4OWPmHgmCToRC94+f7evv?=
 =?iso-8859-1?Q?aG+iynP1eYhVqC6ty+TGtktd4NY5+sfi1v5mKR+q9sOzP6w7OAy6YE1qZx?=
 =?iso-8859-1?Q?YtWv3LYzs1tvYJ9VjoYUs0Oxv9nPBHVP5I4EMjmXY/0cERQZuO0k1xJ6Bl?=
 =?iso-8859-1?Q?pAGO/tOutSQOftTiBrbI0v587V6GRpdV2Ed/9FjHrvVrAHAMiUwYkEhEuS?=
 =?iso-8859-1?Q?KdKlUZwqGXWDK8Nb5YghO/rs22IK5VZXjmX07hmUcSomB20uEecJ/vfCrA?=
 =?iso-8859-1?Q?6qQzrj3r1Bwrm67KolvjrUnwWSlzNQi1653f2p/Hai42xF1dM2HEowfnVe?=
 =?iso-8859-1?Q?2rnJYud1gfWQzsfQA1DsB4pbF8aUnzBKcljr9m8/4PedRR3TXXU6h7Y8Yt?=
 =?iso-8859-1?Q?a2CwDvk1JJeS3zU8W5QqNQY04+4T4rV1OqU2itj8oy+SkpKQyALeR9UVnZ?=
 =?iso-8859-1?Q?2n56oAkfgB+ilGwVEHI/+VQfIkcRBT1t78KiTQB/S1sbmM5gmnB3M6vvto?=
 =?iso-8859-1?Q?dCkKR/a5/9M31W6xXaKh8avYZY8xqMDHb8vTlmlwTV9g06oObSL/my+wv6?=
 =?iso-8859-1?Q?bA4dDX3IWk4oGToDrGETMYQIML3I4U8IczPU26r3/GmWALQuBHT7NSJKoo?=
 =?iso-8859-1?Q?aZfoHTj7ele+mh+e88vQjjqoQJ3w7O01aoJVecYh963TG8B1D82Aakah17?=
 =?iso-8859-1?Q?gxJVR0eSgNzz4ZzvTytEJIM5/hkyvFjmn5/gtJATx5MO92CQjeH8SjHE2T?=
 =?iso-8859-1?Q?xoYHqDou1dezITOzl0BlTS660rt9TprevVfdi3pjt2lJ8R4GIeFacIr0jM?=
 =?iso-8859-1?Q?VRt4b5KsVhCSbR0vwpYJpGTbsG4WcBbt7HpwlaMaXQn3Ecudc8MkzYcPm0?=
 =?iso-8859-1?Q?xvwRmViBSFyBwHrI2gwarjtYc2KrvXKkicmXFQ1F8K457iXDWXiCUp7GL0?=
 =?iso-8859-1?Q?LWg5qVjMQx60lTLOAGErDVqpAnhnKLMFCD2v4tG19vc2r0Ym7ayuA06qdd?=
 =?iso-8859-1?Q?DpOnLAeiUHp432GzZow2/bZUCn9S+1CEkyjRVCOAnkPAeOUlbmMgFWEWHj?=
 =?iso-8859-1?Q?X5zve/dFY6SE8WjBxMNWkziMnv8PPKQXsQpVmCw7dpmZffcVu1RKKMNzQo?=
 =?iso-8859-1?Q?NwM37yWoXxr6e5o4clW/1G+QXJQYFuaTkkFFIOECiSvXCVty1vmdAIcVA4?=
 =?iso-8859-1?Q?UOGCZGcnpcYapLODQJnCnoXH1Pas3BEIY2FF7QdRws6H1Hpam7zyNGMwn/?=
 =?iso-8859-1?Q?HBshiFSHLp+fY3WmtSg=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: AS4PR03MB8676.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 74f34297-b6f6-40f1-982a-08dde715f82d
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Aug 2025 16:06:10.0376
 (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: QbqN9XlEA4znltUzACnOT0VyOqFZNFbMyFn5AFXK7uKjaxtKsC22OeAsYNg6HHkUf8wTF8wxoX9/veciIvBc0C8ytwX3KKzpCAyCn9mCI98=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR03MB6317

Currently, many common functions perform the same operations to calculate
GIC register addresses. This patch consolidates the similar code into
a separate helper function to improve maintainability and reduce duplicatio=
n.
This refactoring also simplifies the implementation of eSPI support in futu=
re
changes.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
Acked-by: Julien Grall <jgrall@amazon.com>

---
Changes in V5:
- fixed a minor nit: changed %d to %u in the warning message because the
  IRQ number cannot be less than zero
- added acked-by from Julien Grall

Changes in V4:
- no changes

Changes in V3:
- changed panic() in get_addr_by_offset() to printing warning and
  ASSERT_UNREACHABLE()
- added verification of return pointer from get_addr_by_offset() in the
  callers
- moved invocation of get_addr_by_offset() from spinlock guards, since
  it is not necessarry
- added RB from Volodymyr Babchuk

Changes in V2:
- no changes
---
 xen/arch/arm/gic-v3.c          | 114 +++++++++++++++++++++++----------
 xen/arch/arm/include/asm/irq.h |   1 +
 2 files changed, 81 insertions(+), 34 deletions(-)

diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
index cd3e1acf79..29b7f68cba 100644
--- a/xen/arch/arm/gic-v3.c
+++ b/xen/arch/arm/gic-v3.c
@@ -445,17 +445,67 @@ static void gicv3_dump_state(const struct vcpu *v)
     }
 }
=20
+static void __iomem *get_addr_by_offset(struct irq_desc *irqd, u32 offset)
+{
+    switch ( irqd->irq )
+    {
+    case 0 ... (NR_GIC_LOCAL_IRQS - 1):
+        switch ( offset )
+        {
+        case GICD_ISENABLER:
+        case GICD_ICENABLER:
+        case GICD_ISPENDR:
+        case GICD_ICPENDR:
+        case GICD_ISACTIVER:
+        case GICD_ICACTIVER:
+            return (GICD_RDIST_SGI_BASE + offset);
+        case GICD_ICFGR:
+            return (GICD_RDIST_SGI_BASE + GICR_ICFGR1);
+        case GICD_IPRIORITYR:
+            return (GICD_RDIST_SGI_BASE + GICR_IPRIORITYR0 + irqd->irq);
+        default:
+            break;
+        }
+    case NR_GIC_LOCAL_IRQS ... SPI_MAX_INTID:
+        switch ( offset )
+        {
+        case GICD_ISENABLER:
+        case GICD_ICENABLER:
+        case GICD_ISPENDR:
+        case GICD_ICPENDR:
+        case GICD_ISACTIVER:
+        case GICD_ICACTIVER:
+            return (GICD + offset + (irqd->irq / 32) * 4);
+        case GICD_ICFGR:
+            return (GICD + GICD_ICFGR + (irqd->irq / 16) * 4);
+        case GICD_IROUTER:
+            return (GICD + GICD_IROUTER + irqd->irq * 8);
+        case GICD_IPRIORITYR:
+            return (GICD + GICD_IPRIORITYR + irqd->irq);
+        default:
+            break;
+        }
+    default:
+        break;
+    }
+
+    /* Something went wrong, we shouldn't be able to reach here */
+    printk(XENLOG_WARNING "GICv3: WARNING: Invalid offset 0x%x for IRQ#%u"=
,
+           offset, irqd->irq);
+    ASSERT_UNREACHABLE();
+
+    return NULL;
+}
+
 static void gicv3_poke_irq(struct irq_desc *irqd, u32 offset, bool wait_fo=
r_rwp)
 {
     u32 mask =3D 1U << (irqd->irq % 32);
-    void __iomem *base;
+    void __iomem *addr =3D get_addr_by_offset(irqd, offset);
=20
-    if ( irqd->irq < NR_GIC_LOCAL_IRQS )
-        base =3D GICD_RDIST_SGI_BASE;
-    else
-        base =3D GICD;
+    if ( addr =3D=3D NULL )
+        return;
=20
-    writel_relaxed(mask, base + offset + (irqd->irq / 32) * 4);
+    writel_relaxed(mask, addr);
=20
     if ( wait_for_rwp )
         gicv3_wait_for_rwp(irqd->irq);
@@ -463,15 +513,12 @@ static void gicv3_poke_irq(struct irq_desc *irqd, u32=
 offset, bool wait_for_rwp)
=20
 static bool gicv3_peek_irq(struct irq_desc *irqd, u32 offset)
 {
-    void __iomem *base;
-    unsigned int irq =3D irqd->irq;
+    void __iomem *addr =3D get_addr_by_offset(irqd, offset);
=20
-    if ( irq >=3D NR_GIC_LOCAL_IRQS)
-        base =3D GICD + (irq / 32) * 4;
-    else
-        base =3D GICD_RDIST_SGI_BASE;
+    if ( addr =3D=3D NULL )
+        return false;
=20
-    return !!(readl(base + offset) & (1U << (irq % 32)));
+    return !!(readl(addr) & (1U << (irqd->irq % 32)));
 }
=20
 static void gicv3_unmask_irq(struct irq_desc *irqd)
@@ -558,30 +605,28 @@ static inline uint64_t gicv3_mpidr_to_affinity(int cp=
u)
 static void gicv3_set_irq_type(struct irq_desc *desc, unsigned int type)
 {
     uint32_t cfg, actual, edgebit;
-    void __iomem *base;
-    unsigned int irq =3D desc->irq;
+    void __iomem *addr;
=20
     /* SGI's are always edge-triggered not need to call GICD_ICFGR0 */
-    ASSERT(irq >=3D NR_GIC_SGI);
+    ASSERT(desc->irq >=3D NR_GIC_SGI);
=20
-    spin_lock(&gicv3.lock);
+    addr =3D get_addr_by_offset(desc, GICD_ICFGR);
+    if ( addr =3D=3D NULL )
+        return;
=20
-    if ( irq >=3D NR_GIC_LOCAL_IRQS)
-        base =3D GICD + GICD_ICFGR + (irq / 16) * 4;
-    else
-        base =3D GICD_RDIST_SGI_BASE + GICR_ICFGR1;
+    spin_lock(&gicv3.lock);
=20
-    cfg =3D readl_relaxed(base);
+    cfg =3D readl_relaxed(addr);
=20
-    edgebit =3D 2u << (2 * (irq % 16));
+    edgebit =3D 2u << (2 * (desc->irq % 16));
     if ( type & IRQ_TYPE_LEVEL_MASK )
         cfg &=3D ~edgebit;
     else if ( type & IRQ_TYPE_EDGE_BOTH )
         cfg |=3D edgebit;
=20
-    writel_relaxed(cfg, base);
+    writel_relaxed(cfg, addr);
=20
-    actual =3D readl_relaxed(base);
+    actual =3D readl_relaxed(addr);
     if ( ( cfg & edgebit ) ^ ( actual & edgebit ) )
     {
         printk(XENLOG_WARNING "GICv3: WARNING: "
@@ -600,16 +645,13 @@ static void gicv3_set_irq_type(struct irq_desc *desc,=
 unsigned int type)
 static void gicv3_set_irq_priority(struct irq_desc *desc,
                                    unsigned int priority)
 {
-    unsigned int irq =3D desc->irq;
+    void __iomem *addr =3D get_addr_by_offset(desc, GICD_IPRIORITYR);
=20
-    spin_lock(&gicv3.lock);
-
-    /* Set priority */
-    if ( irq < NR_GIC_LOCAL_IRQS )
-        writeb_relaxed(priority, GICD_RDIST_SGI_BASE + GICR_IPRIORITYR0 + =
irq);
-    else
-        writeb_relaxed(priority, GICD + GICD_IPRIORITYR + irq);
+    if ( addr =3D=3D NULL )
+        return;
=20
+    spin_lock(&gicv3.lock);
+    writeb_relaxed(priority, addr);
     spin_unlock(&gicv3.lock);
 }
=20
@@ -1273,6 +1315,10 @@ static void gicv3_irq_set_affinity(struct irq_desc *=
desc, const cpumask_t *mask)
 {
     unsigned int cpu;
     uint64_t affinity;
+    void __iomem *addr =3D get_addr_by_offset(desc, GICD_IROUTER);
+
+    if ( addr =3D=3D NULL )
+        return;
=20
     ASSERT(!cpumask_empty(mask));
=20
@@ -1284,7 +1330,7 @@ static void gicv3_irq_set_affinity(struct irq_desc *d=
esc, const cpumask_t *mask)
     affinity &=3D ~GICD_IROUTER_SPI_MODE_ANY;
=20
     if ( desc->irq >=3D NR_GIC_LOCAL_IRQS )
-        writeq_relaxed_non_atomic(affinity, (GICD + GICD_IROUTER + desc->i=
rq * 8));
+        writeq_relaxed_non_atomic(affinity, addr);
=20
     spin_unlock(&gicv3.lock);
 }
diff --git a/xen/arch/arm/include/asm/irq.h b/xen/arch/arm/include/asm/irq.=
h
index fce7e42a33..5bc6475eb4 100644
--- a/xen/arch/arm/include/asm/irq.h
+++ b/xen/arch/arm/include/asm/irq.h
@@ -29,6 +29,7 @@ struct arch_irq_desc {
  */
 #define NR_IRQS		1024
=20
+#define SPI_MAX_INTID   1019
 #define LPI_OFFSET      8192
=20
 /* LPIs are always numbered starting at 8192, so 0 is a good invalid case.=
 */
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 16:06:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 16:06:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101653.1454653 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us1cR-0007Ta-UB; Fri, 29 Aug 2025 16:06:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101653.1454653; Fri, 29 Aug 2025 16:06: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 1us1cR-0007TR-Qr; Fri, 29 Aug 2025 16:06:27 +0000
Received: by outflank-mailman (input) for mailman id 1101653;
 Fri, 29 Aug 2025 16:06:26 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qyNB=3J=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1us1cQ-0006O9-M0
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 16:06:26 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1cb5f65a-84f2-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 18:06:25 +0200 (CEST)
Received: from AS4PR03MB8676.eurprd03.prod.outlook.com (2603:10a6:20b:58c::8)
 by VI1PR03MB6317.eurprd03.prod.outlook.com (2603:10a6:800:136::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.26; Fri, 29 Aug
 2025 16:06:22 +0000
Received: from AS4PR03MB8676.eurprd03.prod.outlook.com
 ([fe80::c5ca:906a:1ded:634b]) by AS4PR03MB8676.eurprd03.prod.outlook.com
 ([fe80::c5ca:906a:1ded:634b%7]) with mapi id 15.20.9052.019; Fri, 29 Aug 2025
 16:06: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>
X-Inumbo-ID: 1cb5f65a-84f2-11f0-8dd7-1b34d833f44b
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aNjuibfyj3KkvfvHhny0Mz+y7rvWiQaxpfqHJoInAywcpgULfok05An7vyh/Yu4Jx88k9xtQEGbwNgLfNO+xzu/5j4CU0RUjUhyl1O9/atv17UEGRm0Dreyn0S4NiGE5HcxLZBeFsthUN9xZCBugtMhyc43nog4NVIwBGzEPUpr5n31pKmYYgpD6drP6UlIagCdT7tSuSxgUFfd7Ob2NeDWj4D6qwQ2uiXqe34pCmPTtyYMksb5sqmd41cffRi5ThhAujQ6SIDKlEeeb+956ysPu4U5vGJhuhiWNOBOui1RrvGLu2nanmFMHRT2t/8LIpaseAmY6SqXxB30dw5RUIw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=i5QwYTw/j4bGgt4Y0MD6Se116cG8hO2bnQOx/ER1aaM=;
 b=uhU8Xg7Qt1bq2aw0BbNupVdx3rWJTLW7tnWJVn1wFb/lN30rx2+rS5nqmxwgVsuWEtZnUPGRO1kqqyblSq4r8qYAJG2kY9RGCYwcJLGIXYK4n09rCJ9m4//1VTFjxFXh8NoyIH7kAaHZlgIeH7v2fiSA99P4mj1vAtVaMBkyqEleemooHCXqSj30xVVHuHwDhhTRabV6fZ2XjDV+vjfRIvXXs2q13yNQnjn5+2HiDpVhYK5zuO5A4KOgV8ZwHyDNVJxUe8QjJry87s79IqpdUYNUqa9KS9u7YTZaxzjuL42aBQ+8uBRGrPyNDDQbof7mAaZrOsdYjW2ZYKj9Y4IcOw==
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=i5QwYTw/j4bGgt4Y0MD6Se116cG8hO2bnQOx/ER1aaM=;
 b=k7EBvr2/4IKZdelfu5rpf/QlfyWoYELDIrBrG7/Qc+if6Kcyppq/D67JZ+PaXuCy4I4uW6rDt+Cnm3Yc/aI88k6x9FlkuqtpnlqszwowXGPoSutjWuoncqSgNxOMGSfiKJ3vmOCQJ9hxU8SQH5LtpHlW9HSiGJVKKRgruMIyv5xLDCOHhcbc5CuXAOo2oLI3AiMn9vOledzc4alq/iT3IGg5KjS1Rcbkt0d14G1o0vVps3dZjJ+jKrHXOseTy3MTuTAUFbUNDZItqGi7SNGl4OV5KFDACiovITYN2NY9JiRg9eJ9H09jABPIqOeNMNsYmmmEU+JZMY+IwDaxcD6jbA==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "olekstysh@gmail.com" <olekstysh@gmail.com>, Leonid Komarianskyi
	<Leonid_Komarianskyi@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 v5 05/12] xen/arm: gicv3: implement handling of GICv3.1 eSPI
Thread-Topic: [PATCH v5 05/12] xen/arm: gicv3: implement handling of GICv3.1
 eSPI
Thread-Index: AQHcGP7dC7+WoEN69k6endDrwJ322g==
Date: Fri, 29 Aug 2025 16:06:22 +0000
Message-ID:
 <edf50a95d335000cea2748301882f1bbea88d676.1756481577.git.leonid_komarianskyi@epam.com>
References: <cover.1756481577.git.leonid_komarianskyi@epam.com>
In-Reply-To: <cover.1756481577.git.leonid_komarianskyi@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: AS4PR03MB8676:EE_|VI1PR03MB6317:EE_
x-ms-office365-filtering-correlation-id: 7e9347c9-ebfe-439e-05dc-08dde715ff9a
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?w59NCQ0maozUbOIA3eI7kHby2v8WVFRnxq8s+8jqB7c+KM+CDxsNd4lpQ7?=
 =?iso-8859-1?Q?XCREf/2VEIwJw2Uby6ltTG6yJqUn/+Y8HfnH1tzvlytoDZwIkkRhd26cZ2?=
 =?iso-8859-1?Q?I28QwEqNag5RiPrePbClvaLELJTJQ4D+zvnEOEIbI504MI4ONR1Y2CIMnY?=
 =?iso-8859-1?Q?mKaEsJlv0xAcWO7YarP5ZtA35/bP2uTFgVQX13HDt4EN1+MFgoDx1uhhpS?=
 =?iso-8859-1?Q?DeeshLlGo7U2bmYUdOsgAGAf4GDb85qwjHarLtcPAhr6Qyrp+HkwIhUa7a?=
 =?iso-8859-1?Q?pdZkt9fNME0xt3PeEteIDHjke7U3fnBa0uuwhzx2096UWogzQbeK6AIbnA?=
 =?iso-8859-1?Q?PJflgBvrFamePnrrMlN13SZo3drlz9ojrjmUMvMW5UH2Hu2MpcbYU5XwsJ?=
 =?iso-8859-1?Q?o9HhJwgJT642HWC5PIat3vbNgPqH7c2qq0gxKM/zKOjXtV/fc4Brg/jB7P?=
 =?iso-8859-1?Q?HrFchidzz6vmxnszFWPNXFK8CcN+7mWdF8s+tZZrhV3YsE7ci7XH2X98Sz?=
 =?iso-8859-1?Q?F3h41/LsfLoVkqa5oyRW6RcYxKmoxzwsZmCA4Q/FOpMbhqBklGY2q10ylT?=
 =?iso-8859-1?Q?zkuG/cvUqLFcxY2525MyLx66L1PEKtg7Q5eP+xp8u+cP0pd7SFSU5WrtqP?=
 =?iso-8859-1?Q?jIJSOjw5gwovkVTAuiZ6ESgAKW7J/d3VvDjo1NR00MX+nDPvC7aZY4HS3Y?=
 =?iso-8859-1?Q?c8mpeKmDh6uEr8SWc8sAmskwthiSaMXVFjiIMC0W8VNVUIsj0BRIFF7FNO?=
 =?iso-8859-1?Q?ECq6fJC7Sh5m6akwSO2NovLlHw/uSCf1uxH1wcG/vPKiuqtUHczsNM7HRd?=
 =?iso-8859-1?Q?36A+xrXPvWGZkRpIMndwL56uqjlp4EE8tCtXUyhHQAyvoyQ1noldq+e8FB?=
 =?iso-8859-1?Q?bV+vqXGbRIZTyt3YYpTs70TFu/gSvghCXRv91ZbjGujjB/M0XNorTjIxTl?=
 =?iso-8859-1?Q?lG3NRLfn65BLe4z/3/LHgsUBmpAJ0z8YzXT81st/t8trNHS0+mWajwkFO3?=
 =?iso-8859-1?Q?aDr0ZE0OBNlK1G6oTRS0MYQ74IUqYW88lGXkkFNbWXatGL9qSpcagGFEUN?=
 =?iso-8859-1?Q?KN1sr6Y18XSisFSzC88JSFyyFXx0pLlKuh14SVm7sz4+Mevis01TnEiqSM?=
 =?iso-8859-1?Q?NZaDcDIGMwOYyPywwi6DUR6OSVdgkcPWpZLrnv7qHghqgvOZajf+gho7jw?=
 =?iso-8859-1?Q?B+cnnWWKfVWDLbbkOiP7cNAbwQi/NnV/8IliMIhkEYniJ1hWzcQWF2qR7x?=
 =?iso-8859-1?Q?SA3lps4INYDVnaX7lHWhbD6iLxycHBOAl8TFEcFhXdKqmT0Npe/u80GI33?=
 =?iso-8859-1?Q?CyAszFbzvhiXvhxs3T28bXJfaT1TfYdu6O2ou7/XrwUgKSipXv5Lg+sNTm?=
 =?iso-8859-1?Q?amUXaLnu/9RdX30fEUi+mxFo+mJSDu98evAFIt9ymYoFHS13IOpP1Back4?=
 =?iso-8859-1?Q?Nt6xV4oJB7uhum7u6qhLJyNc/dcUIJDNivE1jwMfGOc+J9erYONnf84San?=
 =?iso-8859-1?Q?pxip4AOlAiKk+xAUdP/EXDsZOtxoRkq6Amv5bqgxJToA=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS4PR03MB8676.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?kze2a6G5uzVx3XinnCEc4cP33xF0HSVHaiTW8YxvA+w4KX6lS03H7f4Bu6?=
 =?iso-8859-1?Q?W/bka77RmOnEHsh5YaYR/QE4vIQAFm7D3l6NmXH0mYHJYZwnDe5c4XDG1W?=
 =?iso-8859-1?Q?aIfFOl5ZMZivsCflzjT/5YVkUpWjJCi2cF8CvHNZUFhywwAFHAjeWuKr0V?=
 =?iso-8859-1?Q?iEAPNus3fWLZI31BMqCx8PDpv9eEhEhev5s9oxeLUtv+snyccs0lYMwaAN?=
 =?iso-8859-1?Q?EYsfxRx9n/bHKZ90ESZUvJClmCxMojJZL3aOgm8KQjjri0fujuk3EjE8j7?=
 =?iso-8859-1?Q?w/vmHf/QCuW3nkNlife0I0CZEG7gSiixUPbO3Y6d4NwAiomJDd2sr0O0CG?=
 =?iso-8859-1?Q?6O+toFmr9J5TzO5F+S7jZInc3DKmXi4O0Oe2D6yNONtWtzRUTV4Fn9+6aN?=
 =?iso-8859-1?Q?SuhIK2ZqA523YNXHGdlRBrz1U7l1iUoqR0GJDdoIsUSvMQhcR6aDUbxwhy?=
 =?iso-8859-1?Q?qURWE8su1Sbms5s3JD4bYUDukW3O1V3OFXoZKvrogcuJYziS38Sd0z8phQ?=
 =?iso-8859-1?Q?G/IoaRyYp4Zq7BXkIYF0xGWBVpbdlSE7GOfh/Xlfn6GEnNy0pp5e5mhapZ?=
 =?iso-8859-1?Q?7x4mQOQON/k/rLCvvAur+X3gReMRI5xlZyWUhxF8NK/Rg8csHDh7ElpheY?=
 =?iso-8859-1?Q?WaqzGxuRJEPz0IwrV5aCfqevYQ6Lly8H4Ozc0d9i+6YU2b+qGPOh08FjHb?=
 =?iso-8859-1?Q?B/eVM8Z3ON8WygMHAdJaaBDv0MRQv46/s4v3HGehnMmgCasgmZupFlEEs+?=
 =?iso-8859-1?Q?abzEKWy37I+wnTMQV03yPOPXKn0miSoYpVmVDfZLsRIgrGkdDC4e/nAh2N?=
 =?iso-8859-1?Q?gXvspjr3Qum/MWMbB1tp5lQCY2LAvFg8DTPUuucLztAJG4XJB9bAcEcXJr?=
 =?iso-8859-1?Q?ereFuhNs5uB45UkELMAeMWuZAeZsoVG1clWAjSToJ0UrjsP9FFK017vKr1?=
 =?iso-8859-1?Q?ckORjRtFUy20pyF/3nHcm72oFtjr+SBlMIa2w/w+EIDorpPYqmDu8+Rb/f?=
 =?iso-8859-1?Q?hGnw8TkjFfqkvgrfx2E8VJGklFrMtbnL9pFi4YiBlxiFUSXQ5x16SNScld?=
 =?iso-8859-1?Q?P/TDkCcTyZrSO8FwfpW7WAAOgb42ltC4+KGuUuwgLE3H3n4h14OxI6S8tc?=
 =?iso-8859-1?Q?UrLjbCaUHtaiDRWo1nK6fkOo2zXgEyxC+LgA1X+vDTmISpeKSLCdBxWmLi?=
 =?iso-8859-1?Q?+/5PRhIH1hbogLeATcfs9DHmYengNimwokPjcVYGXyvks/SmGiiZ9kpSa6?=
 =?iso-8859-1?Q?o4IXb4CkBzNgrMGchyzwPhYP4lbNAbx1dkRt3z67dCpuKUsSwS8GLLHbh+?=
 =?iso-8859-1?Q?E1AtN4EP8E0SRQmEzKkP3CeW/tNWN85H96vQdK7RsaQb1bj/e8PkzdPTzV?=
 =?iso-8859-1?Q?m0KqNkSwqdiLwuaqKQ1rdLehEoxkapdVMzGF6HwX/7bqm9T9BoeobadUZa?=
 =?iso-8859-1?Q?PrkOIUE25A6SYXrpKUtHaySJxyNyUJQazOKGkxjemQkTUJPvOdSCt0CY37?=
 =?iso-8859-1?Q?kbFw9daRyI6z3mjGNB4xxyDnc4yrYcS7y8b9McgQHE3NXJ0l8ycj8jKKmL?=
 =?iso-8859-1?Q?hihiztzB4eXrmIBlTUQ72i2X61kFx/lbFYIPoavewO/89jhACDHgKt88nH?=
 =?iso-8859-1?Q?Wwi/RNYqPP4xcehEidgd2Os+2kiTCA9AvgehljgQ8OI+Pax6g5Gsgo0tmY?=
 =?iso-8859-1?Q?0GU/stx5JxklOj9Rkq4=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: AS4PR03MB8676.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7e9347c9-ebfe-439e-05dc-08dde715ff9a
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Aug 2025 16:06:22.4478
 (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: NACDyN+sRmUUEdJFSjyFcy+nfyaw79SrytOM9EK7BALuB/7Er55DDEiuSOWJ69iZfcQDc1uGpEw5oUhDcjd5l0Uh3dbkixPDVI/VUYqB/fo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR03MB6317

Introduced appropriate register definitions, helper macros,
and initialization of required GICv3.1 distributor registers
to support eSPI. This type of interrupt is handled in the
same way as regular SPI interrupts, with the following
differences:

1) eSPIs can have up to 1024 interrupts, starting from the
beginning of the range, whereas regular SPIs use INTIDs from
32 to 1019, totaling 988 interrupts;
2) eSPIs start at INTID 4096, necessitating additional interrupt
index conversion during register operations.

In case if appropriate config is disabled, or GIC HW doesn't
support eSPI, the existing functionality will remain the same.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>

---
Changes in V5:
- fixed minor nits, no functional changes: changed u32 to uint32_t and
  added a comment noting that the configuration for eSPIs is the same as
  for regular SPIs
- removed ifdefs for eSPI-specific offsets to reduce the number of
  ifdefs and code duplication in further changes
- removed reviewed-by as moving offset from ifdefs requires additional
  confirmation from reviewers

Changes in V4:
- added offsets for GICD_IGRPMODRnE and GICD_NSACRnE that are required
  for vGIC emulation
- added a log banner with eSPI information, similar to the one for
  regular SPI
- added newline after ifdef and before gic_is_valid_line
- added reviewed-by from Volodymyr Babchuk

Changes in V3:
- add __init attribute to gicv3_dist_espi_common_init
- change open-codded eSPI register initialization to the appropriate
  gen-mask macro
- fixed formatting for lines with more than 80 symbols
- introduced gicv3_dist_espi_init_aff to be able to use stubs in case of
  CONFIG_GICV3_ESPI disabled
- renamed parameter in the GICD_TYPER_ESPI_RANGE macro to espi_range
  (name was taken from GIC specification) to avoid confusion
- changed type for i variable to unsigned int since it cannot be
  negative

Changes in V2:
- move gic_number_espis function from
  [PATCH 08/10] xen/arm: vgic: add resource management for extended SPIs
  to use it in the newly introduced gic_is_valid_espi
- add gic_is_valid_espi which checks if IRQ number is in supported
  by HW eSPI range
- update gic_is_valid_irq conditions to allow operations with eSPIs
---
 xen/arch/arm/gic-v3.c                  | 83 ++++++++++++++++++++++++++
 xen/arch/arm/include/asm/gic.h         | 22 +++++++
 xen/arch/arm/include/asm/gic_v3_defs.h | 38 ++++++++++++
 3 files changed, 143 insertions(+)

diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
index 29b7f68cba..4a7ce12f26 100644
--- a/xen/arch/arm/gic-v3.c
+++ b/xen/arch/arm/gic-v3.c
@@ -485,6 +485,36 @@ static void __iomem *get_addr_by_offset(struct irq_des=
c *irqd, u32 offset)
         default:
             break;
         }
+#ifdef CONFIG_GICV3_ESPI
+    case ESPI_BASE_INTID ... ESPI_MAX_INTID:
+    {
+        uint32_t irq_index =3D ESPI_INTID2IDX(irqd->irq);
+
+        switch ( offset )
+        {
+        case GICD_ISENABLER:
+            return (GICD + GICD_ISENABLERnE + (irq_index / 32) * 4);
+        case GICD_ICENABLER:
+            return (GICD + GICD_ICENABLERnE + (irq_index / 32) * 4);
+        case GICD_ISPENDR:
+            return (GICD + GICD_ISPENDRnE + (irq_index / 32) * 4);
+        case GICD_ICPENDR:
+            return (GICD + GICD_ICPENDRnE + (irq_index / 32) * 4);
+        case GICD_ISACTIVER:
+            return (GICD + GICD_ISACTIVERnE + (irq_index / 32) * 4);
+        case GICD_ICACTIVER:
+            return (GICD + GICD_ICACTIVERnE + (irq_index / 32) * 4);
+        case GICD_ICFGR:
+            return (GICD + GICD_ICFGRnE + (irq_index / 16) * 4);
+        case GICD_IROUTER:
+            return (GICD + GICD_IROUTERnE + irq_index * 8);
+        case GICD_IPRIORITYR:
+            return (GICD + GICD_IPRIORITYRnE + irq_index);
+        default:
+            break;
+        }
+    }
+#endif
     default:
         break;
     }
@@ -655,6 +685,55 @@ static void gicv3_set_irq_priority(struct irq_desc *de=
sc,
     spin_unlock(&gicv3.lock);
 }
=20
+#ifdef CONFIG_GICV3_ESPI
+unsigned int gic_number_espis(void)
+{
+    return gic_hw_ops->info->nr_espi;
+}
+
+static void __init gicv3_dist_espi_common_init(uint32_t type)
+{
+    unsigned int espi_nr, i;
+
+    espi_nr =3D min(1024U, GICD_TYPER_ESPIS_NUM(type));
+    gicv3_info.nr_espi =3D espi_nr;
+    /* The GIC HW doesn't support eSPI, so we can leave from here */
+    if ( gicv3_info.nr_espi =3D=3D 0 )
+        return;
+
+    printk("GICv3: %d eSPI lines\n", gicv3_info.nr_espi);
+
+    /* The configuration for eSPIs is similar to that for regular SPIs */
+    for ( i =3D 0; i < espi_nr; i +=3D 16 )
+        writel_relaxed(0, GICD + GICD_ICFGRnE + (i / 16) * 4);
+
+    for ( i =3D 0; i < espi_nr; i +=3D 4 )
+        writel_relaxed(GIC_PRI_IRQ_ALL,
+                       GICD + GICD_IPRIORITYRnE + (i / 4) * 4);
+
+    for ( i =3D 0; i < espi_nr; i +=3D 32 )
+    {
+        writel_relaxed(GENMASK(31, 0), GICD + GICD_ICENABLERnE + (i / 32) =
* 4);
+        writel_relaxed(GENMASK(31, 0), GICD + GICD_ICACTIVERnE + (i / 32) =
* 4);
+    }
+
+    for ( i =3D 0; i < espi_nr; i +=3D 32 )
+        writel_relaxed(GENMASK(31, 0), GICD + GICD_IGROUPRnE + (i / 32) * =
4);
+}
+
+static void __init gicv3_dist_espi_init_aff(uint64_t affinity)
+{
+    unsigned int i;
+
+    for ( i =3D 0; i < gicv3_info.nr_espi; i++ )
+        writeq_relaxed_non_atomic(affinity, GICD + GICD_IROUTERnE + i * 8)=
;
+}
+#else
+static void __init gicv3_dist_espi_common_init(uint32_t type) { }
+
+static void __init gicv3_dist_espi_init_aff(uint64_t affinity) { }
+#endif
+
 static void __init gicv3_dist_init(void)
 {
     uint32_t type;
@@ -700,6 +779,8 @@ static void __init gicv3_dist_init(void)
     for ( i =3D NR_GIC_LOCAL_IRQS; i < nr_lines; i +=3D 32 )
         writel_relaxed(GENMASK(31, 0), GICD + GICD_IGROUPR + (i / 32) * 4)=
;
=20
+    gicv3_dist_espi_common_init(type);
+
     gicv3_dist_wait_for_rwp();
=20
     /* Turn on the distributor */
@@ -713,6 +794,8 @@ static void __init gicv3_dist_init(void)
=20
     for ( i =3D NR_GIC_LOCAL_IRQS; i < nr_lines; i++ )
         writeq_relaxed_non_atomic(affinity, GICD + GICD_IROUTER + i * 8);
+
+    gicv3_dist_espi_init_aff(affinity);
 }
=20
 static int gicv3_enable_redist(void)
diff --git a/xen/arch/arm/include/asm/gic.h b/xen/arch/arm/include/asm/gic.=
h
index 3fcee42675..1e747dcd99 100644
--- a/xen/arch/arm/include/asm/gic.h
+++ b/xen/arch/arm/include/asm/gic.h
@@ -306,8 +306,26 @@ extern void gic_dump_vgic_info(struct vcpu *v);
=20
 /* Number of interrupt lines */
 extern unsigned int gic_number_lines(void);
+#ifdef CONFIG_GICV3_ESPI
+extern unsigned int gic_number_espis(void);
+
+static inline bool gic_is_valid_espi(unsigned int irq)
+{
+    return (irq >=3D ESPI_BASE_INTID &&
+            irq < ESPI_IDX2INTID(gic_number_espis()));
+}
+#else
+static inline bool gic_is_valid_espi(unsigned int irq)
+{
+    return false;
+}
+#endif
+
 static inline bool gic_is_valid_line(unsigned int irq)
 {
+    if ( gic_is_valid_espi(irq) )
+        return true;
+
     return irq < gic_number_lines();
 }
=20
@@ -325,6 +343,10 @@ struct gic_info {
     enum gic_version hw_version;
     /* Number of GIC lines supported */
     unsigned int nr_lines;
+#ifdef CONFIG_GICV3_ESPI
+    /* Number of GIC eSPI supported */
+    unsigned int nr_espi;
+#endif
     /* Number of LR registers */
     uint8_t nr_lrs;
     /* Maintenance irq number */
diff --git a/xen/arch/arm/include/asm/gic_v3_defs.h b/xen/arch/arm/include/=
asm/gic_v3_defs.h
index 2af093e774..3370b4cd52 100644
--- a/xen/arch/arm/include/asm/gic_v3_defs.h
+++ b/xen/arch/arm/include/asm/gic_v3_defs.h
@@ -37,6 +37,44 @@
 #define GICD_IROUTER1019             (0x7FD8)
 #define GICD_PIDR2                   (0xFFE8)
=20
+/* Additional registers for GICv3.1 */
+#define GICD_IGROUPRnE               (0x1000)
+#define GICD_IGROUPRnEN              (0x107C)
+#define GICD_ISENABLERnE             (0x1200)
+#define GICD_ISENABLERnEN            (0x127C)
+#define GICD_ICENABLERnE             (0x1400)
+#define GICD_ICENABLERnEN            (0x147C)
+#define GICD_ISPENDRnE               (0x1600)
+#define GICD_ISPENDRnEN              (0x167C)
+#define GICD_ICPENDRnE               (0x1800)
+#define GICD_ICPENDRnEN              (0x187C)
+#define GICD_ISACTIVERnE             (0x1A00)
+#define GICD_ISACTIVERnEN            (0x1A7C)
+#define GICD_ICACTIVERnE             (0x1C00)
+#define GICD_ICACTIVERnEN            (0x1C7C)
+#define GICD_IPRIORITYRnE            (0x2000)
+#define GICD_IPRIORITYRnEN           (0x23FC)
+#define GICD_ICFGRnE                 (0x3000)
+#define GICD_ICFGRnEN                (0x30FC)
+#define GICD_IGRPMODRnE              (0x3400)
+#define GICD_IGRPMODRnEN             (0x347C)
+#define GICD_NSACRnE                 (0x3600)
+#define GICD_NSACRnEN                (0x36FC)
+#define GICD_IROUTERnE               (0x8000)
+#define GICD_IROUTERnEN              (0x9FFC)
+
+#ifdef CONFIG_GICV3_ESPI
+#define GICD_TYPER_ESPI_SHIFT        8
+#define GICD_TYPER_ESPI_RANGE_SHIFT  27
+#define GICD_TYPER_ESPI_RANGE_MASK   (0x1F)
+#define GICD_TYPER_ESPI              (1U << GICD_TYPER_ESPI_SHIFT)
+#define GICD_TYPER_ESPI_RANGE(espi_range) ((((espi_range) & \
+        GICD_TYPER_ESPI_RANGE_MASK) + 1) * 32)
+#define GICD_TYPER_ESPIS_NUM(typer)    \
+        (((typer) & GICD_TYPER_ESPI) ? \
+        GICD_TYPER_ESPI_RANGE((typer) >> GICD_TYPER_ESPI_RANGE_SHIFT) : 0)
+#endif
+
 /* Common between GICD_PIDR2 and GICR_PIDR2 */
 #define GIC_PIDR2_ARCH_MASK         (0xf0)
 #define GIC_PIDR2_ARCH_GICv3        (0x30)
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 16:06:29 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 16:06:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101654.1454664 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us1cT-0007km-EO; Fri, 29 Aug 2025 16:06:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101654.1454664; Fri, 29 Aug 2025 16:06: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 1us1cT-0007kR-8l; Fri, 29 Aug 2025 16:06:29 +0000
Received: by outflank-mailman (input) for mailman id 1101654;
 Fri, 29 Aug 2025 16:06:28 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qyNB=3J=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1us1cS-0006O9-3w
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 16:06:28 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1dd58780-84f2-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 18:06:26 +0200 (CEST)
Received: from AS4PR03MB8676.eurprd03.prod.outlook.com (2603:10a6:20b:58c::8)
 by VI1PR03MB6317.eurprd03.prod.outlook.com (2603:10a6:800:136::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.26; Fri, 29 Aug
 2025 16:06:24 +0000
Received: from AS4PR03MB8676.eurprd03.prod.outlook.com
 ([fe80::c5ca:906a:1ded:634b]) by AS4PR03MB8676.eurprd03.prod.outlook.com
 ([fe80::c5ca:906a:1ded:634b%7]) with mapi id 15.20.9052.019; Fri, 29 Aug 2025
 16:06: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>
X-Inumbo-ID: 1dd58780-84f2-11f0-8dd7-1b34d833f44b
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NmV4x1G7CVIAqUf59F15xmoOesBe0tiaRSS4BTyUcopNs7Or7MabF/+XP7MkZXx+nWGyTWIL5p8CVj0uAph/41decQnPu+MC/uRNll2sMBwrhFVd/yj1BMwHhpfXSsAoDquS13eNQ05wI6L2WB1fiWMXgGftqUKPku0VrnUyX8LBaRam5E3C+NbXMWfWrh+30QmUQC/lfEC64Mav4Q6U/RdjRr03N6pVLcfbJPoO5V/VSEJX17H6EBBRgln8EY5Iv5bN5dynRG0vzT+Ym5/WpB8aHftgOkeGQvKI7uwljZcD7PtBaNeZyGLBE0rssNJY6sZ99/h7LIN1kuMEUkja9A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=WAB47z1uuBIE2JzTvdTFBqibyuGo+r3x71Man4KXMUo=;
 b=Wu3bdIF+oRhhMNpGn1PbBEI2wyX88HLX4CNmvW+9IVa35B+K9EKpVrzWYnZa4V1ZAUEFEmN2FVvLYrVvKfBfbEsOs+80Nr6M6RvQHLyvBKAvsPJ26+PxrVA+uQnc2BZ2/liy6Y8xBO22TVaksU0haumLUj+74b8+XN+0jgsiiYVCAzhqIuGF4dz5Lyj1rbx9CsNec/bVis7tEAb1oyzj8ja3Z+ZJRExlIMF8bQMCe0GK6BBIfmFUaNAJI8ruxHEKcklpAP5yVzqw2x8URtqiskp995qS3aGkNgy5WrLlaRH1LyeCCG4QwdjV59urnZbBDflIVoIp4YtOKr0k92c08Q==
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=WAB47z1uuBIE2JzTvdTFBqibyuGo+r3x71Man4KXMUo=;
 b=I0hsjI/mQ8bEqmpOudbyPtzmZANbH0qLTJoGQwsDwkzYwHbnVWxjpNM9ADPJo/B8JKkbzbthN52vPDZ1rhtCsL+uw5/XKeR+guqcqHC+C6NiWIVeEwGLZ94o2eXjS3xakvsF/6Wi7pae3wTK1w+ZgaspT37OwnA25NS2gBLm0WGy5wRnniCKLrBNI1Lql8hU1CTrM64IUH9VGDj/aZzA8DwpTt2HKZXCbTZASD7aWTdeIgvznyaOUOYMVgaO6n37vY0QIOTvi9x7Ik1mGt7JnQHJD2wTPGkKh2WCfsO682K6hA0kNyv9CTTAeRr+sH1IqGuex4BG/F1mbU8Ynq11yA==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "olekstysh@gmail.com" <olekstysh@gmail.com>, Leonid Komarianskyi
	<Leonid_Komarianskyi@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>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v5 06/12] xen/arm/irq: allow eSPI processing in the
 gic_interrupt function
Thread-Topic: [PATCH v5 06/12] xen/arm/irq: allow eSPI processing in the
 gic_interrupt function
Thread-Index: AQHcGP7eN+yGlYwKSkircjBNqV5JFQ==
Date: Fri, 29 Aug 2025 16:06:24 +0000
Message-ID:
 <d5634a41e70c517bc476894f3b871fc910d9d648.1756481577.git.leonid_komarianskyi@epam.com>
References: <cover.1756481577.git.leonid_komarianskyi@epam.com>
In-Reply-To: <cover.1756481577.git.leonid_komarianskyi@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: AS4PR03MB8676:EE_|VI1PR03MB6317:EE_
x-ms-office365-filtering-correlation-id: a6b71faf-17ad-49f4-eb7d-08dde71600e0
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?RU3+nmw3HcefttD3uNNU9ewoIbQkzJ5CNInk2w0oqxU5d63kECCDOBjd1z?=
 =?iso-8859-1?Q?/PVUEOKo/H0TKZQDRDBw+OshAXrfc13Klz6iJ/tw08L89yorY7dGnYCBtv?=
 =?iso-8859-1?Q?WtHU9NgpiTNoRyP1CAgPDETwEg8P0x+ksnMScBT2Hzfoi1ijbepum3qUwt?=
 =?iso-8859-1?Q?uETpFRTrShgqqprWnZs0pY0byd50otb4oLqxlkqh4Ucx2G2YF+XuRbLT8x?=
 =?iso-8859-1?Q?E/hIYlszuR566Of3UAtP4cIF3yszPkEoDC0YNd29bQh8KOR1mR03i1QojU?=
 =?iso-8859-1?Q?IWZepOxam0aq8uKFQWQ+937EGDwNcpYSZGQHitmXm0odDx0G+qhEpA2Di4?=
 =?iso-8859-1?Q?SRzw1UjrjRKkuNb5K64D5aY5bSS+rVK1PtpshfZwG8FMbXTGvq22S+0PHL?=
 =?iso-8859-1?Q?TkcH2mMwb5QAx/oV9j6nJLJfnmD4FyHV150M2ohKqE4hI7gHglYpaVE1SR?=
 =?iso-8859-1?Q?7qpZAxB7o5ew0KAB78G2pPNuOSM2Lr0kCdCwzgE/ccVoEUKzUFjDNVB2ly?=
 =?iso-8859-1?Q?l4u+WLSl2aTNzTHk7N9HHWoi6d0RkkjK9oVxk7HEj+IvH4XEFy0lpRSABI?=
 =?iso-8859-1?Q?iA/57j1Cxz5FMXd7k+ZI70hXqnW5V+kDkcImIPWPj9QJORQUJmI/zZVyOl?=
 =?iso-8859-1?Q?yOGTolfBPaP+b/Kc2SxUBqin+BL2QqbLRiurtLmiuaAvQd8YRgC136jwx4?=
 =?iso-8859-1?Q?YnHvWhzmS0Ebw+NjxRNJvsdVM11LixJvM4A4yaO1mAKhZOpSBcUvA2YBXx?=
 =?iso-8859-1?Q?q7EmW88dVyJdHyOt+X1mMu5yUS+43wdqgXF6E81DSrRh+X+1LL+DWGJi3k?=
 =?iso-8859-1?Q?7cuKGNAcXGxpjIlHYobYVUtUa/pt4WTuIkXa/TmIT54GZW27qlcAvoGcg8?=
 =?iso-8859-1?Q?naBtdUs6P0BT5A4UN7iq7xq6U2SeWWXojui/ZI8IqmBYXr2ByPaJgYvSbi?=
 =?iso-8859-1?Q?MXp53C+1Ffq2NJJuzIXXwCnH9YkrKZ38NkrN2ggZkEEEY2pIBf7uE0bE50?=
 =?iso-8859-1?Q?Vc26GEdvmm5Lp/zI0VJyTnUxrEWmNmwEQf/rBpjYKBSfU9PZ4hYrocfb6q?=
 =?iso-8859-1?Q?cLE1y1doNshrQ0O4SOWQF1sgG/n74P4BFbOOYLNwWUZaPV6nAEGWF15RoD?=
 =?iso-8859-1?Q?vwJNlp9Eq5ryGcF5WLHJq0clUozoSArOT2uMqdlfx1PC+k34KNtp9OKaZg?=
 =?iso-8859-1?Q?KvRoQD1KjfaKdR9hiOX7cxfCA84MhTPHDk1gbOJ6wR4pVoB7p5O7ayx0z3?=
 =?iso-8859-1?Q?J1tcrMsno1SSmN5XAWb01IA1EzQ7mYHVM4gaL65bhZUPhaGOHBfXIRQmmS?=
 =?iso-8859-1?Q?DkA37taHfex2cNV9yMYPjImOQcn6AxBL4/isyrY4E8WRR9COu09+37mvja?=
 =?iso-8859-1?Q?6bbRv1MMyW71gDdhHX0Pxjvdw+UXpxZPr62//LZb+UibkrHgHSJjphrJHq?=
 =?iso-8859-1?Q?8hIalb/ohwPxXV2t+eaGAeWJkTTVESqQxcPpzlDT+E75IYaCYO8a7HK4I4?=
 =?iso-8859-1?Q?PiWXVaIqUNNn1lxAS7ZDviK/MwwFQPt7NNSVoYZEfAjA=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS4PR03MB8676.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?rtoKTEKKzSf4Bmk+ujOaIYKGQIgfjSmgdsyJB7FWbTBd+0JpwRhjx9Ty2t?=
 =?iso-8859-1?Q?cBCAjV2gHXQ7jQg1DUOdP/e0Y5RY6zNG90LNRdBvn3RJiQw2V8Q9N+fETe?=
 =?iso-8859-1?Q?jYsKkEFU0fwM0MvS7EPCOI9mP52M+kXL6zck+w0zavDOG72rC4RvgmLZWV?=
 =?iso-8859-1?Q?8pwYbtBvZdHJOlsMVBaI+/gC4715GeTZMq5phPDDdM2qmngx1zEsRY9dcN?=
 =?iso-8859-1?Q?U7EaKq/MUBEVcE04AWyh+lgBxzSxkln+JOllTVC5OZWOZSwG6fCBvc+YjV?=
 =?iso-8859-1?Q?nwjlaccC6idn4PzZLsuEq9AX0dwZoyLKW454wFVxBxSKJpsC2ZcBu1ZN3S?=
 =?iso-8859-1?Q?eu5aKRSTJRcsv9Zt1NO9daiQ4gNPN2/CdI7v35W+IF6qOydgGeXXextHpI?=
 =?iso-8859-1?Q?MAmRPzzOLjc/PwxrzeZWtnim565iulKZVdpllFJYqOyQdy/ZBYilEntPES?=
 =?iso-8859-1?Q?1ubZx8mL6ZDED1ChhCab6ksnbLyP/9eIytA7vZzuucTp7fwXpwL/06Psta?=
 =?iso-8859-1?Q?LZVyFYi57KroJGXSrkHEXf/QH3YhBAmW6ilBCh2j6+Z/vYD+1NqKz4vt3t?=
 =?iso-8859-1?Q?ZMKx4tBo/kNRqe6aJDKa75NxWBCrMnVsStB3kIzPxqcjODGJ1rd3xCqAh3?=
 =?iso-8859-1?Q?G3f3Q1rHzOkHE4c9Y+m8evzolpbRNtt3jkiSvqEuXvwP/DJ5cPERu7DwL+?=
 =?iso-8859-1?Q?rmw8kXfj8SeigcGDT9G7bC2+pZKaJDCiNDrwkTNOCmN5S/uqLec87UOAO8?=
 =?iso-8859-1?Q?UlIyQT8TgsdEOMfqDoxg7iGi3NB8CiJcdAG3NPc16TRoE6eJhL1BG8roqd?=
 =?iso-8859-1?Q?NZMSb3ic3nFHJU0r7uJlzSv1dqBdL1wKDA282J48qlqe8w95GJgl7VIQKv?=
 =?iso-8859-1?Q?ywc9stTXFMcSCE9TMwCiBkBsDLUtxrGgZ18YRdTKdF4WGQuQgoBZYPJeSa?=
 =?iso-8859-1?Q?XXuHPFjR4dUAVN8Zy6fIcR14Lm/XURcd7DzLm32429nuMY3wf6lQheTVup?=
 =?iso-8859-1?Q?x/Pf8MxN2/npsLz02hy11L63b7uZkyT7Xx8XXgcORt+nS/q0jWU5kZkxte?=
 =?iso-8859-1?Q?pPSwfScGbuRKebo2I1ri4kad2+iF6Y6hH+0+h0xla59Sp5T3juPshwiRQ2?=
 =?iso-8859-1?Q?PasddL8pp9NBWStV3VsTna7o2e1Qluj9/uDdNRotTOZFa0G22hXVCYL1YV?=
 =?iso-8859-1?Q?y6ijilK7HeGGBfRZLq8V1X/947578o3JmY6yPfaimWKqR7i2ZkRzCC12vS?=
 =?iso-8859-1?Q?vd/Wl5d9C+d+KI8myLDeGnZN8rUFVCtVS8KC+UOQnrHRenTOf1cvc7OO65?=
 =?iso-8859-1?Q?g+YcLB1GQsSyLFDxx5tyG8lpy9AIZbKoj5SBA2SJebGvyGqYLcS9ke1CRI?=
 =?iso-8859-1?Q?kWYbcEruPoOMi1Mi0DaA4Van62V4aZdCtmPHztpz6Kr+4x8gObH7otBdZV?=
 =?iso-8859-1?Q?ioya02WWNp91VmSYb/SEiDjCrU4QBmo8k/UqDBl3Zv8M01cXKxrIhmj1t2?=
 =?iso-8859-1?Q?UorPbKcff7v0BjJN8KElnLu2+BesK8xty9DojO12kN/Yvx4ncz83J/7RmU?=
 =?iso-8859-1?Q?afjwijxv79l/p9KN1ehDj9ZmOqjJKFq/rzOJe+S+OpvV5kMRQcExaiA3RZ?=
 =?iso-8859-1?Q?OAlDgdcUZu3ivcJwUeFa2bp1ZEIQHnzuroRSpJpL7AGAh4FGDTvNVbH9fW?=
 =?iso-8859-1?Q?Sm63/D5h6Qdp5aRhDuc=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: AS4PR03MB8676.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a6b71faf-17ad-49f4-eb7d-08dde71600e0
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Aug 2025 16:06:24.5982
 (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: VBqgpWPvBx0r32vDvVhLYO+D75cRsMTuXzu3GS/AXA7bewljFe48jXfSn7Ay6vVwrRf/UVkn5fZAJNUWAOCU42foKXyouazjqUvWsdYwm/g=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR03MB6317

The gic_interrupt function is the main handler for processing IRQs.
Currently, due to restrictive checks, it does not process interrupt
numbers greater than 1019. This patch updates the condition to allow
the handling of interrupts from the eSPI range.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

---
Changes in V5:
- no changes

Changes in V4:
- fixed commit message
- added reviewed-by from Volodymyr Babchuk

Changes in V3:
- no changes

Changes in V2:
- no changes
---
 xen/arch/arm/gic.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
index 9469c9d08c..260ee64cca 100644
--- a/xen/arch/arm/gic.c
+++ b/xen/arch/arm/gic.c
@@ -342,7 +342,7 @@ void gic_interrupt(struct cpu_user_regs *regs, int is_f=
iq)
         /* Reading IRQ will ACK it */
         irq =3D gic_hw_ops->read_irq();
=20
-        if ( likely(irq >=3D GIC_SGI_STATIC_MAX && irq < 1020) )
+        if ( likely(irq >=3D GIC_SGI_STATIC_MAX && irq < 1020) || is_espi(=
irq) )
         {
             isb();
             do_IRQ(regs, irq, is_fiq);
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 16:06:31 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 16:06:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101655.1454673 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us1cV-000848-Mb; Fri, 29 Aug 2025 16:06:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101655.1454673; Fri, 29 Aug 2025 16:06: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 1us1cV-00083x-Hf; Fri, 29 Aug 2025 16:06:31 +0000
Received: by outflank-mailman (input) for mailman id 1101655;
 Fri, 29 Aug 2025 16:06:29 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qyNB=3J=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1us1cT-0006O9-Ih
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 16:06:29 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1eb1142f-84f2-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 18:06:28 +0200 (CEST)
Received: from AS4PR03MB8676.eurprd03.prod.outlook.com (2603:10a6:20b:58c::8)
 by VI1PR03MB6317.eurprd03.prod.outlook.com (2603:10a6:800:136::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.26; Fri, 29 Aug
 2025 16:06:26 +0000
Received: from AS4PR03MB8676.eurprd03.prod.outlook.com
 ([fe80::c5ca:906a:1ded:634b]) by AS4PR03MB8676.eurprd03.prod.outlook.com
 ([fe80::c5ca:906a:1ded:634b%7]) with mapi id 15.20.9052.019; Fri, 29 Aug 2025
 16:06:26 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1eb1142f-84f2-11f0-8dd7-1b34d833f44b
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FS8bHCz/O82+a3qvXR+0w06AMgO3YGYbivb83dix4cBPj5yELvZX7csIjne57ZZc132XsVW/up0Zz9Y54Uzy9kyBQaOJ/IMRqQA13vPJjfzkwlPMdeqDTWKYK2NH93S+sIBef30kY4yzN7eKeKVn5CHqlURhf9wP7mVJg4KstGG1pAjHk/4ma9vtN8Dfp+OyqU8jQlfBKUkzdFciiVj0vjnHTBGSL5tzYUkA7PVBbOvfkwt9ZqJgdNg+C0pWI3r23QYn1UyQ6tgRd9AkkxBGYptlaEhCdx7NeKoS1tWrOjs6XmmuNq25RUfnVImgqCuXshl0U8CAnC9scEAzgNM8eg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=YMgOHXZt8/GuF5BwMPodPqG6Kq/EPwOK0n+W+0/lAO8=;
 b=KQ9mJv4JlRt31R9YfbQGSdjXj3+DsqLfX8o9fPn4ncGn3aKBxi6MLQIdE9sJj8e84fu3owRRFLTScSw4ygpjTX5e3ph2aJYxwSPuN2N52GignKoj0tK9ePiJMPza7vCsZR7PwYfYnPJdBjCAlVUc4LWUm954tK99E5qbKaDDF2vYZgdh9aGkcGjeJpExk7BYhFI1A9GuWv0Kb9TXM6gRG9CH9lhVBeRI7cYCD58EYOc4mlqhavgg4E3ZU5fFEeksmEoh1xg+DYS2HpNPnqnHvKve4lX6H/OibcMpiIk7kI3D0D2uXt5CV7EGGs8EHPqK6Yr2nn1bloQ04lvki9FTtQ==
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=YMgOHXZt8/GuF5BwMPodPqG6Kq/EPwOK0n+W+0/lAO8=;
 b=ko2pr2oOu7Qnbanzfk9x3j7uwYS9G6Hr2HvZsPUQTWNt4+4PyEbQiBhJh3MtaBa/ELY5JEOeXHoW1EFwf8HfErOmh7+X9E956+qOVvMYSNUhy1Y+EMJFBvwAq2Vhp1f8zE8lppZZ+hOuzBh5kp279n5c/lbF3KEb7kpTNf37yd/1+z8LvgyGFx5ASrO/ALWqtgOZ5iU796e+s3PAYKnsnzVpajnJkJLoeToTND69BuyJXQlxWGKLGEgk4yYcP1Eslx+0mLpUXW28DcA4eq6Hb4Ikz/F3hoXEv+XIhvz8aNjb2G7uIHPxiEEthZpHPFd3AeEtjDXcrBXz14SEV1/mhQ==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "olekstysh@gmail.com" <olekstysh@gmail.com>, Leonid Komarianskyi
	<Leonid_Komarianskyi@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>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v5 07/12] xen/arm: gicv3: modify ICH_LR_PHYSICAL_MASK to allow
 eSPI processing
Thread-Topic: [PATCH v5 07/12] xen/arm: gicv3: modify ICH_LR_PHYSICAL_MASK to
 allow eSPI processing
Thread-Index: AQHcGP7fr2aNz8WgzkeaOcGbW6a0ZQ==
Date: Fri, 29 Aug 2025 16:06:26 +0000
Message-ID:
 <34b86693e1031a3ec786a38a0510f047c6c708da.1756481577.git.leonid_komarianskyi@epam.com>
References: <cover.1756481577.git.leonid_komarianskyi@epam.com>
In-Reply-To: <cover.1756481577.git.leonid_komarianskyi@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: AS4PR03MB8676:EE_|VI1PR03MB6317:EE_
x-ms-office365-filtering-correlation-id: 9aff33c1-90d2-40ab-079e-08dde71601f3
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?xmzVBgkN5cJhyW8JCptWGOHnE1rK6aovA0RvwBTAVMBMaHupr7dNzfivLm?=
 =?iso-8859-1?Q?jHMbvzT+Sj+VbbFfx/Vu57dCpnMg5z3W7VkNL0tcS73b7UbJDh8pLcs2I3?=
 =?iso-8859-1?Q?L98bpSBW0JqeBh3RU2U6EVnNfICyHM2Eo2P/7dnCSXaccVnvew4ddgnvzY?=
 =?iso-8859-1?Q?eEe8pSa6qYvepCW05u66CGCZMrB1qDPBlJi0I1K99tsLz5ntCRCgiUOc+5?=
 =?iso-8859-1?Q?1zklgDOu6bS7RZL/lpJiK3TtVvI8qfdc3em8wqBM9c0AKffOnZ9VMxh92z?=
 =?iso-8859-1?Q?U8tC5xX+vqa5iJmaDod3n2/sb8QrIEfylpgcZmTx9xEt8bbaUAgaQNnkNq?=
 =?iso-8859-1?Q?QV6a0B1QoJgUI2wEBzkC2ZInxGPDaE/NmRAdNJmTGbYrhzvLXub8ie8e8/?=
 =?iso-8859-1?Q?6NK1avENpWP2ZJ5X/geMGzieN7+QGLXhMe2mn9a7xcx87lwGc7Ns7pypNf?=
 =?iso-8859-1?Q?V3GcJAztthJugbiPcGDq3kUG8QJlfM8kDrMzOMopWKJdYYpmV5l1+U37Ry?=
 =?iso-8859-1?Q?0fhbFgh+6U0swMwz+xbVRcesca5Z63TS2Ib/HzOToMaPxqP1LwBV2yB2oI?=
 =?iso-8859-1?Q?Arxkph/J4Rr0AXfUVnaKYmIsBmEEatLTt+kmyX1bDdbBMQ/ee92aKFtL04?=
 =?iso-8859-1?Q?ta0jySQykcJB9DN7F+FIKxk7yzKY7dpzA9ld2NaiJNmr/HXrCJDlXpevB5?=
 =?iso-8859-1?Q?/fvwFYSgH/4PiAN4EtQH4SRtdE5jYvhUSzp+CIooYyGaVqAsqOjA9/0IBm?=
 =?iso-8859-1?Q?2DwuR7rlkJjeXH53wySkkksBV0x/t/TW+wDf3BU1I8X60V2ioTVPDCFskX?=
 =?iso-8859-1?Q?winn4eAGFiAxgu7dQnjTx3Zcu5V9YlBZdqaPC/f/8uds2fOeTICC8Yzf4y?=
 =?iso-8859-1?Q?2bTHwyhC0Wf4REVeYLSjEZ1mCSySS5QppQta1RQfmt/AUaCvOJQ5ycEB8K?=
 =?iso-8859-1?Q?cb1goG/zjEDVcZYeDP3OBv3jzvBipbNBDnTMBw3d02+G85gxyGiIr7TAQN?=
 =?iso-8859-1?Q?Driu7BPZsT5aVJ49UlSUavIG2P71HzgYL0n5BOpSwKKe4cDi8+xNyO3nK4?=
 =?iso-8859-1?Q?Qax9a76xRQRsO4phnRqCqtXfcSMH2woWrIOEuzmJ6MelltgpynGdMTQXPh?=
 =?iso-8859-1?Q?EJEp/RmdHLPvdrTF8h+bnLOp7b6BqAZQ6URZ8wILLiYL4V6DZP/s9gSEUK?=
 =?iso-8859-1?Q?qcn5tNeMdtYeEGkB+kmBqL9YlyGWthhuos30DduHDIdUSdMYuIZRQNm+3s?=
 =?iso-8859-1?Q?PD1HS2aDIlz/RJyZzWIR+pOSt9ZAcnnJk/5L40wML2k4d7BtUOABdTTEWS?=
 =?iso-8859-1?Q?wENjaEvtTtCsWykt/z2NqALZhlTydpjlwCi2E+l9GeAtrSvrb69YYGe6NU?=
 =?iso-8859-1?Q?ELGO5L1T6qagOePGexP+1DwiKa5Efy0lULMguzDSwOoVq+T5XCKmP8yj6W?=
 =?iso-8859-1?Q?fvlDVnF587C4FxqsgLBoCGSrOYC7LWsuP/ElArb9YG4bLQsR8m92ZcdSBT?=
 =?iso-8859-1?Q?x5jwD0816swilTMEFrnjjnVdaILerhMzUTUJDDY22tZQ=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS4PR03MB8676.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?3cLXN9PMBQMalXvKtoxOAGofzXDEvELfrSgpR6HNC9QBkmr5utsK1/qZTo?=
 =?iso-8859-1?Q?KjB5k+nEMy0/FLzBMgzGVxPGHaACl14Ka1bk3Cy1ru499Je0Cmf3n1eTuD?=
 =?iso-8859-1?Q?U/vwNKnYGBvpybnR5IsORVAKQkXPP8kttFJKapI5nfx92JG3yAo0TqxxxB?=
 =?iso-8859-1?Q?9IJFUGxVhkhoBb9g9VQWtCgWxvcvZXr0Z9vitVNXhkaQeDQTGnxDRRKOJs?=
 =?iso-8859-1?Q?PCqFmXruaKXKDsxLT7cI8b4h1ji8Wuvyy6ktsibjlSc/sQ1PbiZL3Qrmeh?=
 =?iso-8859-1?Q?8vSDi9jB8oTYKLnHmZjda1gNZ22tUum1i5h7+tbCkdVNxkI/caOKhv1dHG?=
 =?iso-8859-1?Q?S5pWk6lh/b4EcvMIhAWePYjnKGN9Ov8F26t4CmL+iN1msYUS81gV9RdM/D?=
 =?iso-8859-1?Q?JyON9gKCHawlbUc9vSUFMrAs7cIPN2CNDpQh4qkoosZpg1FsxpDfgWxvPJ?=
 =?iso-8859-1?Q?E+KUpKG9CMMeQEelqUlyfA+M2U2pREBOdPZ8naV4bUKA3jgS2hrbu46CC2?=
 =?iso-8859-1?Q?PoFO4b3G/PdE+OyxAUErCej3d1HanuOmpHq9CjFwZCn4w3ZSXf/SdAhh+w?=
 =?iso-8859-1?Q?lkV1F5vrtbb6w5snYJIFO3Zqk2hJsZ/SEPm3IQ+IUYqJwGZzvJoqdn+xs6?=
 =?iso-8859-1?Q?K2Awna05HEZXjt4nQG3tSRDgmMuwJjSw72pmANu24BwObwgGVye7o0Slrh?=
 =?iso-8859-1?Q?vveqkQepf9UynlrGHqZimWMR85auZ/CaZzgYvbVU2z2I51MyRnkDyIxoFU?=
 =?iso-8859-1?Q?A75R7Mb2OLf9VMiaW9lQ34JQfq3l0IolK7dVMiC5VXKqh0xgvrqK9FgkUO?=
 =?iso-8859-1?Q?/RjSWsZ88V5AltR83tMGWFMi76xP+RbPYATtx907vHsofGJpJfiEhQleXD?=
 =?iso-8859-1?Q?RHZVMEFCEwnCMN5OC2jd6RqTK1CO6FVTrKWCv7fTfsiLI+ay1orFbHBkd/?=
 =?iso-8859-1?Q?4f+YQ5QJ+EZvL33oaLZO2l3+0q0WVT1hOGsEelIucm+9MZxg/bMkjr24Op?=
 =?iso-8859-1?Q?HNyul4mkp9ityU+k5innud/Ruw4rAUrqbhpCh/7a/Yspn00K41Y+YtLhOW?=
 =?iso-8859-1?Q?lpQ/wUvpJnPmPxXAJnd+amUJw7q13lbrifDK2ZT6vmiALGNLZkGuVF2YAX?=
 =?iso-8859-1?Q?2Zog25Zt0uop53M0dkvPvR1YRjATUx8xrR6j4tNQuQhGxgTIUOGNKmInhz?=
 =?iso-8859-1?Q?gqFsruy00bHJ8HnvNPKRJPFR+RdFoUylPPJQU7M7dEK3eZHIA6oLTLc5b7?=
 =?iso-8859-1?Q?fmymjT5WB/yX5y46/Ds4sG5VUtcD5H+5DMeALuSkUIM67Gqj6AzPiVPG4M?=
 =?iso-8859-1?Q?ZZsVdLA65T1MFC1aLg4JRkM24c/tf82x9+t6V2iH4S7R7hlxqd2KnK0WSn?=
 =?iso-8859-1?Q?TB3ggaQB8KcUGqcKQLiHizVPHUVWykN1yMeC0N/jRnLbPtHU8rfmXbiB1m?=
 =?iso-8859-1?Q?NoarSH2CGxiBukuRz9sIqLpoTf8Pjt0PDNvfp1xC+niAYJKajkGK/LBdoD?=
 =?iso-8859-1?Q?/Nyax8VwnHhssZ66VefA8PrX+1kH9N5igDSkYPv8PeMFscIAKZdcnZY2rM?=
 =?iso-8859-1?Q?WvA1n9Ce5Uyec35nD6yLCxHX/7kEjbZNHOgSgvktgpicw80COn9LUJWKEB?=
 =?iso-8859-1?Q?LcLl2wfaIw7RUWUm1fV20pvJfRtxSG138vqDonzjpejBn3CcYfVEI7VcGi?=
 =?iso-8859-1?Q?+Ve97DtI99EtNC7lLbE=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: AS4PR03MB8676.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9aff33c1-90d2-40ab-079e-08dde71601f3
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Aug 2025 16:06:26.4411
 (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: LhzG9IRW7C5Ch0glLZB8s5OR/k4C4FeXNBKkngl01kPshXKBqt/KXXz9W2ibgZlHk2ngLxOXtU8GEj4/b66cxPoLPaWgZarawGMctEF3o0Y=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR03MB6317

To properly deactivate guest interrupts and allow them to be retriggered
after the initial trigger, the LR needs to be updated. The current
implementation ignores interrupts outside the range specified by the mask
0x3FF, which only covers IRQ numbers up to 1023. To enable processing of
eSPI interrupts, this patch updates the mask to 0x13FF.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

---
Changes in V5:
- no changes

Changes in V4:
- added reviewed-by from Volodymyr Babchuk

Changes in V3:
- no changes

Changes in V2:
- remove unnecessary CONFIG_GICV3_ESPI ifdef guard
---
 xen/arch/arm/include/asm/gic_v3_defs.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/arm/include/asm/gic_v3_defs.h b/xen/arch/arm/include/=
asm/gic_v3_defs.h
index 3370b4cd52..e70c1a5675 100644
--- a/xen/arch/arm/include/asm/gic_v3_defs.h
+++ b/xen/arch/arm/include/asm/gic_v3_defs.h
@@ -211,7 +211,7 @@
 #define ICH_LR_VIRTUAL_SHIFT         0
 #define ICH_LR_CPUID_MASK            0x7
 #define ICH_LR_CPUID_SHIFT           10
-#define ICH_LR_PHYSICAL_MASK         0x3ff
+#define ICH_LR_PHYSICAL_MASK         0x13ff
 #define ICH_LR_PHYSICAL_SHIFT        32
 #define ICH_LR_STATE_MASK            0x3
 #define ICH_LR_STATE_SHIFT           62
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 16:06:35 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 16:06:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101659.1454683 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us1cZ-0008Qf-0P; Fri, 29 Aug 2025 16:06:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101659.1454683; Fri, 29 Aug 2025 16:06: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 1us1cY-0008QO-Rp; Fri, 29 Aug 2025 16:06:34 +0000
Received: by outflank-mailman (input) for mailman id 1101659;
 Fri, 29 Aug 2025 16:06:34 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qyNB=3J=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1us1cY-0006O9-4y
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 16:06:34 +0000
Received: from DB3PR0202CU003.outbound.protection.outlook.com
 (mail-northeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c200::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 204ffe0a-84f2-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 18:06:31 +0200 (CEST)
Received: from AS4PR03MB8676.eurprd03.prod.outlook.com (2603:10a6:20b:58c::8)
 by VI1PR03MB6317.eurprd03.prod.outlook.com (2603:10a6:800:136::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.26; Fri, 29 Aug
 2025 16:06:28 +0000
Received: from AS4PR03MB8676.eurprd03.prod.outlook.com
 ([fe80::c5ca:906a:1ded:634b]) by AS4PR03MB8676.eurprd03.prod.outlook.com
 ([fe80::c5ca:906a:1ded:634b%7]) with mapi id 15.20.9052.019; Fri, 29 Aug 2025
 16:06: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>
X-Inumbo-ID: 204ffe0a-84f2-11f0-8dd7-1b34d833f44b
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=d9TW/t4f0zwdRr9dcSUiRgkvBC4U7kpD9BSsvdrG+Izm3YA+5dnokQ9nwcEa1Qobu2q81OV13CTGSEht1mPLncvfDK8zYax2V86/Rx6R4zcyzJT22yc/43Li+KcN5OmdtrVVrt7cwvErcVcA+vhilyS1jbNC2dH4aTnAFeHXYJVmBk4msiCBvHsHzDBoippr72CypuvutP3HRtioHRY40mEm70vz4RqjB6cJ9iuKxUDwjON2+wTppoPhbNueCIGRuuhD70GFPmz7JK2NMRCegL+5czuzr/vbtLJHVjBWOmMKRL/4euuAqbGWujseyUGMkyVcZrRVUm8IRIq7D4Yzyg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=rYCvgFFyCTVdJpP4dBMOeGpkcAlgpbx8MCbzfUuiAk0=;
 b=q3hehr+ZT1cOJxN/xTUiWVhmMGxiNlcHZ0zhPFY+jCxfWIWJ49cnozFSsOh81XsyuInlzx55eqFbrc4HZaoR/hUjTIJ32nAbdaQODESohogx47x7rUFcWVXtMHAYg8TDMdX/j81XnZ3xLo3FPN4XOffra7cUXuAiJ9zEpQh8oMrp3tdvQT/U+lW4p0Fpycht3LePPnseyVIdRrtZry1t+CyU/GN9Gd4rmv+6n+MAC/GKws4R4mX4+Cos7XNMfZ+bk7vrYMm7f/lwM7bWGPAyyp+uacNp9DNZxtN1zwbnDrDqicB14zokyXQjt1dmfaWHeCDp88folI36ElDNjNJrwQ==
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=rYCvgFFyCTVdJpP4dBMOeGpkcAlgpbx8MCbzfUuiAk0=;
 b=GgjEuXBTFCmd5bfSHScRZenPnngNsdtpnTVW2KLW2zxFTxosi5l1M4/nidsgf0hRMBLCCDPuBy+8uFc2BOaUqly4gewBPO8gS9x/+T8zeZ6YE6vkxIOdROJ/cb/hEhmufVpjmsB3ORNIb4eVcagnFeVWBt3mF0hOrvCZu3W+Q8IWRYF7Ev6Nwxel6TaknByFzJ33I+uIICiqpNfkem+T14HJvHWsWgRVIbfDVBPgnXabdJCG3pEhDv1J4wcNl4LMbfmlxUGNOBLeXePFaVp68tq1d9ZWTd/uXm/0ccNumNe20xc+kqDwHGOHfJvuHfsLtWgaHNLZBFZ+DuTMqgDdsw==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "olekstysh@gmail.com" <olekstysh@gmail.com>, Leonid Komarianskyi
	<Leonid_Komarianskyi@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 v5 08/12] xen/arm: vgic: add resource management for extended
 SPIs
Thread-Topic: [PATCH v5 08/12] xen/arm: vgic: add resource management for
 extended SPIs
Thread-Index: AQHcGP7gzxYtqJZFyUiPTlrb5XV2MQ==
Date: Fri, 29 Aug 2025 16:06:28 +0000
Message-ID:
 <4b13dea924eabf1370d3f31030f3eef48371de06.1756481577.git.leonid_komarianskyi@epam.com>
References: <cover.1756481577.git.leonid_komarianskyi@epam.com>
In-Reply-To: <cover.1756481577.git.leonid_komarianskyi@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: AS4PR03MB8676:EE_|VI1PR03MB6317:EE_
x-ms-office365-filtering-correlation-id: f37cd360-a999-4f97-2a2b-08dde7160329
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?gK9eo/zKgq8M+/3L+NhD4+Izso2Tk0KRe7tTqTEUBQr5k0P4vNqnykmgEr?=
 =?iso-8859-1?Q?P7HfeFLgoCeB6YFd3c+Q17OAzl15/ZBgshdL9CdWDGB4IY7WKw3uiohrAT?=
 =?iso-8859-1?Q?K+W2Stxhbx6mM7r1bdLn5a9Ni/+w1Rdhgav7rlg4rDzGtW99K6pEH6Cl2e?=
 =?iso-8859-1?Q?mAvsCkHcOJX1/RUlH4XloQABtC34a1iK/i9wG1BVqwY4dU62yESBqrHDEH?=
 =?iso-8859-1?Q?oPbOZqTWGyaUxuqxy0oAd2xmVFuQOja8Fdjz+lqOXP4s68854I7ahg+Ami?=
 =?iso-8859-1?Q?AJRguh+fV4laIpnfd/23jpd161RYwtwuURYh+1ssjBDoqQn4BVFbM2XuIO?=
 =?iso-8859-1?Q?mXTufrdu0Se55c6il90egvOQwEe1Eoh/eKoUwt+rIR9Sin9khKNE4veNdN?=
 =?iso-8859-1?Q?yrVQngA+EODJcceQ1jXXXkeXcffjngo+uUvWs6YOUjPrU7E2BnMnX0lV1e?=
 =?iso-8859-1?Q?86arpR6Rn4Y0sjp7INWN1LAXUm7GMLcoJr0pTxybec2PwG4049xpQpf09A?=
 =?iso-8859-1?Q?SnXJopkgUkEjW9/I+jbWpcnkcmmbbbJ22BHCEXno57nBnZp+o25NIi3BdY?=
 =?iso-8859-1?Q?f6EN82DkizI006ul5Nm1vkzrI/k+nvpBqri0jJqMr8s7v5dFgtEs98c9zq?=
 =?iso-8859-1?Q?Ls5xO6ztRxcVGVWMSm7e5ahoIWknSuhCDJcpo1eg8/DuH4/Q6ITM4YZcqj?=
 =?iso-8859-1?Q?I4OoFKGXw+M1tjbDiVMTuo00M156DviTttLUeZUkJfjSXLuxmZc7cCDW+n?=
 =?iso-8859-1?Q?Z3OPORDvjOBYl+WuG/nCQlCBZONluW2kYs8mFAiW5bdm27OXNAJkbW2eus?=
 =?iso-8859-1?Q?QjecPV3eHOOKe4m5NYc4RA3zj1wVhm0KeaRYBQJ4Occ1UsIqgMRZS3Npgk?=
 =?iso-8859-1?Q?OKMWy710NPty4BDytK9UEQ+U2K2Jb8DpUkwiJsaeZop0iF7IVPS64OVgc0?=
 =?iso-8859-1?Q?b6y4Cq8u0nltbrSXhY0vfL1pyi1BT+7aOLNDh5KogIi6yhMrk8RUBsOMTT?=
 =?iso-8859-1?Q?BIwvJ6UclJGsrF37qt9Wi9kiwmEaJqB50MoODfquI4pzH2dV9+Lc08Jfe9?=
 =?iso-8859-1?Q?wByGSPIeHkmZjDwJXTOfj8iDBNc5KqoXSEOW65pDaNicF235r060Ukvn99?=
 =?iso-8859-1?Q?4ujKMd23C9I4xkzp61v4IKWcf+3B+xMCKaz6IQGKzFyJ7l8nFO8SLRP02e?=
 =?iso-8859-1?Q?yFbIE6C680jzzPRjsLnBN0j5t2nLRCHgZlh1oB5+I9iCkiiWZAl7h3zrnx?=
 =?iso-8859-1?Q?MN+M4aptdLjM5YlPtmSe/gDmSK9+VavTrGhMO4DaznjnYy+gUc628WKkXA?=
 =?iso-8859-1?Q?4V2dB+uYIgPjc9KbEIIGWPncFQPx8LNrYC2j6ZCdX+bozTPtPS5Nw8Q5nk?=
 =?iso-8859-1?Q?mrQTgjTC90k/tzyskYIoFO6phyZFJYrJ2QP0lYmwwDQYfcpQD1gKYIaNSq?=
 =?iso-8859-1?Q?7rg/esUJKR5Md1bmdcxuFZ+IooO9sFPS1x35Lcow/Xqb3OTjKOWZYRYmiO?=
 =?iso-8859-1?Q?GuNakc2d3ilJ5QEKfx7GAQmf84kGcXmso2iOlSFJpOCA=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS4PR03MB8676.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?o0gEGSK6PofRnahYUNeUfbBgOUKErB0bWQI+l3nxV/gh4uP8NxrtODuprc?=
 =?iso-8859-1?Q?+Wf7U1vOi7IQLwo/pWnJbCfArXHyIFLotxUDq2R6s1HM4Q+iSRTnl81AST?=
 =?iso-8859-1?Q?go2flnuZLD+MlFtL9qP63CKr2kAU83O1KS3N0tSnZoyHfcSH88o8ofYZPT?=
 =?iso-8859-1?Q?mBmmKnirEva5d+QtLrW6GFm/P9pNEaUNENAhIHTb7psOE8TOENNLtOkrR/?=
 =?iso-8859-1?Q?hQG5p5aB1ILdMhxly6Y9xWpph+SqB4Uw0I5QAj0VJb2T8sFLKaHo2h6QPi?=
 =?iso-8859-1?Q?RhMfStzBj1QyZxKnFw6vMsFd84BXdClHUI9Z210PMtPeHeVtKTBN0yQrIR?=
 =?iso-8859-1?Q?xpvCJE79sJNqiuuumDrEXo7ImblfMCo4rOCySU4c6pZRpz+EhnP5HC32eK?=
 =?iso-8859-1?Q?wEPiz7fvYQ/mA5h16ydcsB34JotO5hDiq1vUy5yfG5ZMuZ1LTRlzBFRNec?=
 =?iso-8859-1?Q?0/Z1+Y9aFKB+FIH31/vnq1Ahuo15f6HnpGOpHSK0SvxHOLFPnz3vOr8bB2?=
 =?iso-8859-1?Q?XejzDoVxaACBdgZ5LLIsK6Gx6zIThrMZ0hfR8tOLHDCbl88Y/otSNg7P7/?=
 =?iso-8859-1?Q?MiNmjKTFcP60rpzA1jI02hnsDg/ezOfzVQImJMBygCeNPE8bYwiB7U0c7P?=
 =?iso-8859-1?Q?0j8ary4Fns2fpXcG0jngWh1jL5CMUwvxX3xB68SpSgsFF6sS4mk4dwM59f?=
 =?iso-8859-1?Q?a6CU7OG95ofUfEgYyavO5A7FangwItkCJOw6sP7RkPfH6Q9qnzyilCvNfW?=
 =?iso-8859-1?Q?SSLCJD6IyKUEVH+llWvbVKEONf54o0cyN5v4O2UE48fzaxaVfkSXqi3YN1?=
 =?iso-8859-1?Q?xRhpuiTyKwjV9HywjPiPKTSrY/8pt8mWH1r4EKDK81qRAJJ8VIiWuT5j4V?=
 =?iso-8859-1?Q?T8uJh2h/wY7A1gy9sZocrAVxw/giFP2H7XbmDuzL+cF3gYgqycoMEgc3m1?=
 =?iso-8859-1?Q?ZwUDR3zdh8N1rWRB5t7S4PcVKH5UwPkA2dpmAB52ukerRL4kZDf1PLIiUX?=
 =?iso-8859-1?Q?MrMo0A8Oun62LcEcVQmiSjSWcfrvzWEdo/bu5Af/1UVkZpP/XR8nySZwLB?=
 =?iso-8859-1?Q?pj8SstCtFr1YfmB2+0J3kIaVoBB+urOXoz/e/Iph+Rk1moPwyUYSaLVwNu?=
 =?iso-8859-1?Q?nhQavEM7Xzi++9RsuaIRYwcdsufMXrxtBZntZWSZ/Yp2ibh3Lr2LoAZ4zV?=
 =?iso-8859-1?Q?SKpKJjQSninBZ+2dF2PNwyuXcfFvgw1DkfxwDCw80FgGYatRPs2FpRB8A7?=
 =?iso-8859-1?Q?5AiYhH4JxVFZSncs5bwbSHaahO0X7jKLPwsq1xLCAmjP2FgZsQq9alJWp7?=
 =?iso-8859-1?Q?orXmf8FiMsaotsK3bLQw4nIBOZntJesAPYK3HDrhd2D5Pj01F3UCb3lpGk?=
 =?iso-8859-1?Q?XomOnD3IOzHiYfGL8z8goROD8hE5C2RPkuJLZvO2E68pjTU9yRUxJCrrg1?=
 =?iso-8859-1?Q?FlzkCQegzo4j+Xe1nY7ZZ95KsaZCrFy+7HBs1Vz1mTSymi9AvAuTvFEbJi?=
 =?iso-8859-1?Q?pKOyXf0O1W6N0jRZ1Xxdf24MZJvDrITyc8xOxln2CDhheGLpjKF35+AiLe?=
 =?iso-8859-1?Q?amACMMM5WN6fhsAHRsKOioauPv2t+UvnUgdDkv5PIoqnOXi8G45hzo6I3N?=
 =?iso-8859-1?Q?GmVflt8gDN3e83FY+6Vr6thDNdrmq22IkSfGS/YPZK/o1l5XMZg6VV24kJ?=
 =?iso-8859-1?Q?7XqIf+UY+WvrgEDm6Ww=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: AS4PR03MB8676.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f37cd360-a999-4f97-2a2b-08dde7160329
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Aug 2025 16:06:28.4572
 (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: trzV33dg8oAqz7jgyX0B+F4uJ/3zIJHkTkuDu0SxuYaF0/XhLQnmcDdK2Yj9Yr3F2+1GpKyqK1Z4A1PKYOvHBqxD6s/xqFKjHH6fjJj4vAE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR03MB6317

This change introduces resource management in the VGIC to handle
extended SPIs introduced in GICv3.1. The pending_irqs and
allocated_irqs arrays are resized to support the required
number of eSPIs, based on what is supported by the hardware and
requested by the guest. A new field, ext_shared_irqs, is added
to the VGIC structure to store information about eSPIs, similar
to how shared_irqs is used for regular SPIs.

Since the eSPI range starts at INTID 4096 and INTIDs between 1025
and 4095 are reserved, helper macros are introduced to simplify the
transformation of indices and to enable easier access to eSPI-specific
resources. These changes prepare the VGIC for processing eSPIs as
required by future functionality.

The initialization and deinitialization paths for vgic have been updated
to allocate and free these resources appropriately. Additionally,
updated handling of INTIDs greater than 1024, passed from the toolstack
during domain creation, and verification logic ensures only valid SPI or
eSPI INTIDs are used.

The existing SPI behavior remains unaffected when guests do not request
eSPIs, GIC hardware does not support them, or the CONFIG_GICV3_ESPI
option is disabled.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>

---
Changes in V5:
- removed the has_espi field because it can be determined by checking
  whether domain->arch.vgic.nr_espis is zero or not
- since vgic_ext_rank_offset is not used in this patch, it has been
  moved to the appropriate patch in the patch series, which implements
  vgic eSPI registers emulation and requires this function
- removed ifdefs for eSPI-specific macros to reduce the number of ifdefs
  and code duplication in further changes
- fixed minor nit: used %pd for printing domain with its ID

Changes in V4:
- added has_espi field to simplify determining whether a domain is able
  to operate with eSPI
- fixed formatting issues and misspellings

Changes in V3:
- fixed formatting for lines with more than 80 symbols
- introduced helper functions to be able to use stubs in case of
  CONFIG_GICV3_ESPI disabled, and as a result, reduce the number of
  #ifdefs
- fixed checks for nr_spis in domain_vgic_init
- updated comment about nr_spis adjustments with dom0less mention
- moved comment with additional explanations before checks
- used unsigned int for indexes since they cannot be negative
- removed unnecessary parentheses
- move vgic_ext_rank_offset to the below ifdef guard, to reduce the
  number of ifdefs

Changes in V2:
- change is_espi_rank to is_valid_espi_rank to verify whether the array
  element ext_shared_irqs exists. The previous version, is_espi_rank,
  only checked if the rank index was less than the maximum possible eSPI
  rank index, but this could potentially result in accessing a
  non-existing array element. To address this, is_valid_espi_rank was
  introduced, which ensures that the required eSPI rank exists
- move gic_number_espis to
  xen/arm: gicv3: implement handling of GICv3.1 eSPI
- update vgic_is_valid_irq checks to allow operating with eSPIs
- remove redundant newline in vgic_allocate_virq
---
 xen/arch/arm/include/asm/vgic.h |  12 ++
 xen/arch/arm/vgic.c             | 199 +++++++++++++++++++++++++++++++-
 2 files changed, 208 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/vgi=
c.h
index 3e7cbbb196..912d5b7694 100644
--- a/xen/arch/arm/include/asm/vgic.h
+++ b/xen/arch/arm/include/asm/vgic.h
@@ -146,6 +146,10 @@ struct vgic_dist {
     int nr_spis; /* Number of SPIs */
     unsigned long *allocated_irqs; /* bitmap of IRQs allocated */
     struct vgic_irq_rank *shared_irqs;
+#ifdef CONFIG_GICV3_ESPI
+    struct vgic_irq_rank *ext_shared_irqs;
+    int nr_espis; /* Number of extended SPIs */
+#endif
     /*
      * SPIs are domain global, SGIs and PPIs are per-VCPU and stored in
      * struct arch_vcpu.
@@ -243,6 +247,14 @@ struct vgic_ops {
 /* Number of ranks of interrupt registers for a domain */
 #define DOMAIN_NR_RANKS(d) (((d)->arch.vgic.nr_spis+31)/32)
=20
+#ifdef CONFIG_GICV3_ESPI
+#define DOMAIN_NR_EXT_RANKS(d) (((d)->arch.vgic.nr_espis+31)/32)
+#endif
+#define EXT_RANK_MIN (ESPI_BASE_INTID/32)
+#define EXT_RANK_MAX ((ESPI_MAX_INTID+31)/32)
+#define EXT_RANK_NUM2IDX(num) ((num)-EXT_RANK_MIN)
+#define EXT_RANK_IDX2NUM(idx) ((idx)+EXT_RANK_MIN)
+
 #define vgic_lock(v)   spin_lock_irq(&(v)->domain->arch.vgic.lock)
 #define vgic_unlock(v) spin_unlock_irq(&(v)->domain->arch.vgic.lock)
=20
diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
index 2bbf4d99aa..c9b9528c66 100644
--- a/xen/arch/arm/vgic.c
+++ b/xen/arch/arm/vgic.c
@@ -27,9 +27,82 @@
=20
 bool vgic_is_valid_line(struct domain *d, unsigned int virq)
 {
+#ifdef CONFIG_GICV3_ESPI
+    if ( virq >=3D ESPI_BASE_INTID &&
+         virq < ESPI_IDX2INTID(d->arch.vgic.nr_espis) )
+        return true;
+#endif
+
     return virq < vgic_num_irqs(d);
 }
=20
+#ifdef CONFIG_GICV3_ESPI
+/*
+ * Since eSPI indexes start from 4096 and numbers from 1024 to
+ * 4095 are forbidden, we need to check both lower and upper
+ * limits for ranks.
+ */
+static inline bool is_valid_espi_rank(struct domain *d, unsigned int rank)
+{
+    return rank >=3D EXT_RANK_MIN &&
+           EXT_RANK_NUM2IDX(rank) < DOMAIN_NR_EXT_RANKS(d);
+}
+
+static inline struct vgic_irq_rank *vgic_get_espi_rank(struct vcpu *v,
+                                                       unsigned int rank)
+{
+    return &v->domain->arch.vgic.ext_shared_irqs[EXT_RANK_NUM2IDX(rank)];
+}
+
+static inline bool vgic_reserve_espi_virq(struct domain *d, unsigned int v=
irq)
+{
+    return !test_and_set_bit(ESPI_INTID2IDX(virq) + vgic_num_irqs(d),
+                             d->arch.vgic.allocated_irqs);
+}
+
+static void arch_move_espis(struct vcpu *v)
+{
+    const cpumask_t *cpu_mask =3D cpumask_of(v->processor);
+    struct domain *d =3D v->domain;
+    struct pending_irq *p;
+    struct vcpu *v_target;
+    unsigned int i;
+
+    for ( i =3D ESPI_BASE_INTID;
+          i < EXT_RANK_IDX2NUM(d->arch.vgic.nr_espis); i++ )
+    {
+        v_target =3D vgic_get_target_vcpu(v, i);
+        p =3D irq_to_pending(v_target, i);
+
+        if ( v_target =3D=3D v && !test_bit(GIC_IRQ_GUEST_MIGRATING, &p->s=
tatus) )
+            irq_set_affinity(p->desc, cpu_mask);
+    }
+}
+#else
+static inline bool is_valid_espi_rank(struct domain *d, unsigned int rank)
+{
+    return false;
+}
+
+/*
+ * This function is stub and will not be called if CONFIG_GICV3_ESPI=3Dn,
+ * because in this case, is_valid_espi_rank will always return false.
+ */
+static inline struct vgic_irq_rank *vgic_get_espi_rank(struct vcpu *v,
+                                                       unsigned int rank)
+{
+    ASSERT_UNREACHABLE();
+    return NULL;
+}
+
+static inline bool vgic_reserve_espi_virq(struct domain *d, unsigned int v=
irq)
+{
+    return false;
+}
+
+static void arch_move_espis(struct vcpu *v) { }
+#endif
+
 static inline struct vgic_irq_rank *vgic_get_rank(struct vcpu *v,
                                                   unsigned int rank)
 {
@@ -37,6 +110,8 @@ static inline struct vgic_irq_rank *vgic_get_rank(struct=
 vcpu *v,
         return v->arch.vgic.private_irqs;
     else if ( rank <=3D DOMAIN_NR_RANKS(v->domain) )
         return &v->domain->arch.vgic.shared_irqs[rank - 1];
+    else if ( is_valid_espi_rank(v->domain, rank) )
+        return vgic_get_espi_rank(v, rank);
     else
         return NULL;
 }
@@ -117,6 +192,62 @@ int domain_vgic_register(struct domain *d, unsigned in=
t *mmio_count)
     return 0;
 }
=20
+#ifdef CONFIG_GICV3_ESPI
+static unsigned int vgic_num_spi_lines(struct domain *d)
+{
+    return d->arch.vgic.nr_spis + d->arch.vgic.nr_espis;
+}
+
+static int init_vgic_espi(struct domain *d)
+{
+    unsigned int i, idx;
+
+    if ( d->arch.vgic.nr_espis =3D=3D 0 )
+        return 0;
+
+    d->arch.vgic.ext_shared_irqs =3D
+        xzalloc_array(struct vgic_irq_rank, DOMAIN_NR_EXT_RANKS(d));
+    if ( d->arch.vgic.ext_shared_irqs =3D=3D NULL )
+        return -ENOMEM;
+
+    for ( i =3D d->arch.vgic.nr_spis, idx =3D 0;
+          i < vgic_num_spi_lines(d); i++, idx++ )
+        vgic_init_pending_irq(&d->arch.vgic.pending_irqs[i],
+                              ESPI_IDX2INTID(idx));
+
+    for ( i =3D 0; i < DOMAIN_NR_EXT_RANKS(d); i++ )
+        vgic_rank_init(&d->arch.vgic.ext_shared_irqs[i], i, 0);
+
+    return 0;
+}
+
+struct pending_irq *espi_to_pending(struct domain *d, unsigned int irq)
+{
+    irq =3D ESPI_INTID2IDX(irq) + d->arch.vgic.nr_spis;
+    return &d->arch.vgic.pending_irqs[irq];
+}
+#else
+static unsigned int init_vgic_espi(struct domain *d)
+{
+    return 0;
+}
+
+static unsigned int vgic_num_spi_lines(struct domain *d)
+{
+    return d->arch.vgic.nr_spis;
+}
+
+struct pending_irq *espi_to_pending(struct domain *d, unsigned int irq)
+{
+    return NULL;
+}
+#endif
+
+static unsigned int vgic_num_alloc_irqs(struct domain *d)
+{
+    return vgic_num_spi_lines(d) + NR_LOCAL_IRQS;
+}
+
 int domain_vgic_init(struct domain *d, unsigned int nr_spis)
 {
     int i;
@@ -131,6 +262,36 @@ int domain_vgic_init(struct domain *d, unsigned int nr=
_spis)
      */
     nr_spis =3D ROUNDUP(nr_spis, 32);
=20
+#ifdef CONFIG_GICV3_ESPI
+    /*
+     * During domain creation, the dom0less DomUs code or toolstack specif=
ies
+     * the maximum INTID, which is defined in the domain config subtracted=
 by
+     * 32 to cover the local IRQs (please see the comment to VGIC_DEF_NR_S=
PIS).
+     * To compute the actual number of eSPI that will be usable for,
+     * add back 32.
+     */
+    if ( nr_spis + 32 > ESPI_IDX2INTID(NR_ESPI_IRQS) )
+        return -EINVAL;
+
+    if ( nr_spis + 32 >=3D ESPI_BASE_INTID )
+    {
+        d->arch.vgic.nr_espis =3D min(nr_spis - ESPI_BASE_INTID + 32, 1024=
U);
+        /* Verify if GIC HW can handle provided INTID */
+        if ( d->arch.vgic.nr_espis > gic_number_espis() )
+            return -EINVAL;
+        /*
+         * Set the maximum available number for regular
+         * SPI to pass the next check
+         */
+        nr_spis =3D VGIC_DEF_NR_SPIS;
+    }
+    else
+    {
+        /* Domain will use the regular SPI range */
+        d->arch.vgic.nr_espis =3D 0;
+    }
+#endif
+
     /* Limit the number of virtual SPIs supported to (1020 - 32) =3D 988  =
*/
     if ( nr_spis > (1020 - NR_LOCAL_IRQS) )
         return -EINVAL;
@@ -145,7 +306,7 @@ int domain_vgic_init(struct domain *d, unsigned int nr_=
spis)
         return -ENOMEM;
=20
     d->arch.vgic.pending_irqs =3D
-        xzalloc_array(struct pending_irq, d->arch.vgic.nr_spis);
+        xzalloc_array(struct pending_irq, vgic_num_spi_lines(d));
     if ( d->arch.vgic.pending_irqs =3D=3D NULL )
         return -ENOMEM;
=20
@@ -156,12 +317,16 @@ int domain_vgic_init(struct domain *d, unsigned int n=
r_spis)
     for ( i =3D 0; i < DOMAIN_NR_RANKS(d); i++ )
         vgic_rank_init(&d->arch.vgic.shared_irqs[i], i + 1, 0);
=20
+    ret =3D init_vgic_espi(d);
+    if ( ret )
+        return ret;
+
     ret =3D d->arch.vgic.handler->domain_init(d);
     if ( ret )
         return ret;
=20
     d->arch.vgic.allocated_irqs =3D
-        xzalloc_array(unsigned long, BITS_TO_LONGS(vgic_num_irqs(d)));
+        xzalloc_array(unsigned long, BITS_TO_LONGS(vgic_num_alloc_irqs(d))=
);
     if ( !d->arch.vgic.allocated_irqs )
         return -ENOMEM;
=20
@@ -195,9 +360,27 @@ void domain_vgic_free(struct domain *d)
         }
     }
=20
+#ifdef CONFIG_GICV3_ESPI
+    for ( i =3D 0; i < d->arch.vgic.nr_espis; i++ )
+    {
+        struct pending_irq *p =3D spi_to_pending(d, ESPI_IDX2INTID(i));
+
+        if ( p->desc )
+        {
+            ret =3D release_guest_irq(d, p->irq);
+            if ( ret )
+                dprintk(XENLOG_G_WARNING, "%pd: Failed to release virq %u =
ret =3D %d\n",
+                        d, p->irq, ret);
+        }
+    }
+#endif
+
     if ( d->arch.vgic.handler )
         d->arch.vgic.handler->domain_free(d);
     xfree(d->arch.vgic.shared_irqs);
+#ifdef CONFIG_GICV3_ESPI
+    xfree(d->arch.vgic.ext_shared_irqs);
+#endif
     xfree(d->arch.vgic.pending_irqs);
     xfree(d->arch.vgic.allocated_irqs);
 }
@@ -331,6 +514,8 @@ void arch_move_irqs(struct vcpu *v)
         if ( v_target =3D=3D v && !test_bit(GIC_IRQ_GUEST_MIGRATING, &p->s=
tatus) )
             irq_set_affinity(p->desc, cpu_mask);
     }
+
+    arch_move_espis(v);
 }
=20
 void vgic_disable_irqs(struct vcpu *v, uint32_t r, unsigned int n)
@@ -538,6 +723,8 @@ struct pending_irq *irq_to_pending(struct vcpu *v, unsi=
gned int irq)
         n =3D &v->arch.vgic.pending_irqs[irq];
     else if ( is_lpi(irq) )
         n =3D v->domain->arch.vgic.handler->lpi_to_pending(v->domain, irq)=
;
+    else if ( is_espi(irq) )
+        n =3D espi_to_pending(v->domain, irq);
     else
         n =3D &v->domain->arch.vgic.pending_irqs[irq - 32];
     return n;
@@ -547,6 +734,9 @@ struct pending_irq *spi_to_pending(struct domain *d, un=
signed int irq)
 {
     ASSERT(irq >=3D NR_LOCAL_IRQS);
=20
+    if ( is_espi(irq) )
+        return espi_to_pending(d, irq);
+
     return &d->arch.vgic.pending_irqs[irq - 32];
 }
=20
@@ -668,6 +858,9 @@ bool vgic_reserve_virq(struct domain *d, unsigned int v=
irq)
     if ( !vgic_is_valid_line(d, virq) )
         return false;
=20
+    if ( is_espi(virq) )
+        return vgic_reserve_espi_virq(d, virq);
+
     return !test_and_set_bit(virq, d->arch.vgic.allocated_irqs);
 }
=20
@@ -685,7 +878,7 @@ int vgic_allocate_virq(struct domain *d, bool spi)
     else
     {
         first =3D 32;
-        end =3D vgic_num_irqs(d);
+        end =3D vgic_num_alloc_irqs(d);
     }
=20
     /*
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 16:06:41 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 16:06:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101664.1454693 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us1cf-0000hu-Fa; Fri, 29 Aug 2025 16:06:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101664.1454693; Fri, 29 Aug 2025 16:06: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 1us1cf-0000hQ-B7; Fri, 29 Aug 2025 16:06:41 +0000
Received: by outflank-mailman (input) for mailman id 1101664;
 Fri, 29 Aug 2025 16:06:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qyNB=3J=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1us1cd-0006AC-IK
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 16:06:39 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 247dd5d5-84f2-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 18:06:38 +0200 (CEST)
Received: from AS4PR03MB8676.eurprd03.prod.outlook.com (2603:10a6:20b:58c::8)
 by VI1PR03MB6317.eurprd03.prod.outlook.com (2603:10a6:800:136::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.26; Fri, 29 Aug
 2025 16:06:35 +0000
Received: from AS4PR03MB8676.eurprd03.prod.outlook.com
 ([fe80::c5ca:906a:1ded:634b]) by AS4PR03MB8676.eurprd03.prod.outlook.com
 ([fe80::c5ca:906a:1ded:634b%7]) with mapi id 15.20.9052.019; Fri, 29 Aug 2025
 16:06: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>
X-Inumbo-ID: 247dd5d5-84f2-11f0-8adc-4578a1afcccb
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nrVmbo0R6uihDUoHCUFwE8/JqQgG0m+bsou6YbicHCbTW8FUbckNDlSjFPKEyI6vBnjsvKPI2xECkPNz62UcTzH6GVyRaD/mUF/uPZHzgZb8yjcOcBG3bN7GAXrcQt622umtNmry4xqFVTKSqe/HcKUS12i++7enPLQ8LhNSe9p4X3J0BPFEDyMFvm5PcZU9ppDSPJ2gH3TIEbd+2bSjzXhbVzWLTkxoFFX31s51bndv5FWRxVcf5yXtM46ocQWwWWvJx0MY9YKcUew1hvR60xAe5M7q9tVQezxyNvl96UcmTV4DA2hQeQAJEwxfhDTaRj/JL+K/tBwnvKJW+8vlEw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=BcLamhaMGRuLic7G2+8q7rQFj8uWCO1JFGbxrmGBljk=;
 b=oVgYZtMNJITWKOdu5QjEbWyEZXnicgKdE5V22A5q4hhsRcROTC6/mftxAa3tB9WmWX7bjSBCSRUEANQ7B9GpgyWNzBq8Hgy0Kg8+E53cSmzInhezReeoDXcIN8pC6E30tdaHIl2+DteqFNYpQGZsRFyOdO1RWy4iiR/v/O8lIk1cpJeVx+KitYjhy0Mwg1fRdWw9DTcpMNRi15/epo4IV5ojjvYTBCrkjYGQsuzsMRK6BXLkfAoZ1wLKwstPEx3QkFwt20bgHMtoCVKqmGbZl7nqaUWQQ8t1tqJjAS/SbRoEhlb6afnYtaKzBAhXReP2vXIl0hWes2qlkE/MCS7hqA==
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=BcLamhaMGRuLic7G2+8q7rQFj8uWCO1JFGbxrmGBljk=;
 b=dGtiqmdNry0O3s6iB6L/K4JJR0fLQDgwa4vfmudjiOXczWN+DMSg82haCmtXcEDDobbL0wpZx5Ia5rx0541uRvYYNRP8peIrjeLT3Fj5oWHKEZXE3BMY25FdRdiivISUWDsxFuyRB/r5EbLwr7VGRzgxg+XYkumcGf7WkQB5IoCLtHrim3bjmRScKDPGidyt2wHlorcOpIYqoYopkBfdYGRMxSW5E/6Ukg1LvBH2lFDAQ9YU2yi6d7bB8Yjf4MaZhPlHMycejWR0IIxLTa8z32vO0DxssEVXt/yN7sGqUgaKzupqjOCGfu3xh+Npq5sc7q37fekop2DOu94lYALojQ==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "olekstysh@gmail.com" <olekstysh@gmail.com>, Leonid Komarianskyi
	<Leonid_Komarianskyi@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>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Oleksandr Tyshchenko <Oleksandr_Tyshchenko@epam.com>
Subject: [PATCH v5 09/12] xen/arm: domain_build/dom0less-build: adjust domains
 config to support eSPIs
Thread-Topic: [PATCH v5 09/12] xen/arm: domain_build/dom0less-build: adjust
 domains config to support eSPIs
Thread-Index: AQHcGP7ji/JPLIO80UCW93TQMdVywQ==
Date: Fri, 29 Aug 2025 16:06:33 +0000
Message-ID:
 <bd60d55fa8ffe081cee50bf8f53343e770863c3e.1756481577.git.leonid_komarianskyi@epam.com>
References: <cover.1756481577.git.leonid_komarianskyi@epam.com>
In-Reply-To: <cover.1756481577.git.leonid_komarianskyi@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: AS4PR03MB8676:EE_|VI1PR03MB6317:EE_
x-ms-office365-filtering-correlation-id: b0a8a0eb-1432-41c0-c828-08dde7160625
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?74/phzvzBspFaqo9vwrJapE1/3a7VjTltBWkK9ZkAUsleLtY67hhXi/wiO?=
 =?iso-8859-1?Q?7C1s1fP5+dKIl4wjw9GPyFMSFhRG0G8A6v48F9BUxvehzC5kSzI/vET8xg?=
 =?iso-8859-1?Q?+Oekfo74eALNiA8zaMmjVmb/0xUKzzXD3vE1e2Q+bKhiNrq+9nieNhVI1A?=
 =?iso-8859-1?Q?zxoNqao/dCuS6PmKUz2xW2Ajfiw849dEThieHN+IGpA85TXIzoEX1laH5r?=
 =?iso-8859-1?Q?rI8bvjpr6cRFJA2JjvefaRny3RgQLQ4bBi24PCvQPv1Kxi+RYmfN+IipGB?=
 =?iso-8859-1?Q?q9CQXdR+GpmULfy1KF3RmlrBV3gUohmPIUC805nxk6OoQ+sM60PK3k9g3K?=
 =?iso-8859-1?Q?9tWWy4VKhbGYjf80uJ57WbtdXlqvmIuFrja10POD1NfY1Jf46orh0Wqfjh?=
 =?iso-8859-1?Q?+SGw1ED5ugqGuPJv4Q8fmaLOf1bgAxIwECCDmvtbPVIiGI7I+kXy5vRtip?=
 =?iso-8859-1?Q?4SpyS+5Eyo0jNqjcPUChJ4k51ZysuIBMMh8ZvieMZGoyNbKMI+UjwR9iLl?=
 =?iso-8859-1?Q?Sas1ysyz22N/DYketaUqq1/UEh0oexyYAbq7IGE9DVup5FskIBQrOUFEPs?=
 =?iso-8859-1?Q?3pZPPubSRt9QnluHRTntIdyQ+r5rcY5iRR4ItZGVs/3s7wZxVAfhoFEu44?=
 =?iso-8859-1?Q?X5+iDiK+/XmRrtbz+tJDXG6zIvlWbqjcdVCQhAOujkvj8UreD1Acw0d7TI?=
 =?iso-8859-1?Q?KvQLdqLX9VsCHeYTja7qs3P/S0axAIAx8m8zyQv886bhOuLCRwI0akPSDK?=
 =?iso-8859-1?Q?eU4VwpjcV7dLqQrDoCHQhr3jAr8aQuw89XvNf497+BzpTc1Jb6K+2nIhO7?=
 =?iso-8859-1?Q?m911tsXoxwrpzD22a+XePLZK4DcqlearVpqv5BSj2VQ4RvItRFAPfwA8lZ?=
 =?iso-8859-1?Q?Tv4usE1IZtBbdTrIqTF2kPVGvIunafdtQ6luRj5l1pTngyMMoHVvS4PlL5?=
 =?iso-8859-1?Q?F9AJpYmb1CX3249ig3nPzR0reBVlGGsiQm3J51CpL0LVrfvQYGYBDRgSHV?=
 =?iso-8859-1?Q?Cu11/ApFmguTuwxsxoKC61ogY67LjqCF25h6g6o7wbzWOajrZqOThvFo+J?=
 =?iso-8859-1?Q?BQuX7vAD4nD5DdvINz7w5PcAc17v+1aMc8aGloO84JVVSfA0y87kl7/2k6?=
 =?iso-8859-1?Q?uP1UOFocgvnOQES7yqSCEMEMNvNxjQwhWw9LU7K9VgranRhY/sUPdny5VV?=
 =?iso-8859-1?Q?ffnZNttpHTRml9v1/+5Dt6w1f7+rPByVUxtlM0pm4KanL5frdM10SXv7R9?=
 =?iso-8859-1?Q?8g7dvepklEe7A5BTG4USjLU48cX0VOwbcCQHYVfZd7r8W73FXiqi8CFNr0?=
 =?iso-8859-1?Q?aT11q8GToxv49mbxM7eIQsLtDt2kg9gQ7qHUNw/wcCBXSMZaBHlJ/8FcZj?=
 =?iso-8859-1?Q?+NpbISGex8ieHJSsuid2twizkWQy48iV7sSxwGznTeBdRcx2r0y/hEWh53?=
 =?iso-8859-1?Q?pEw5CM5N2sE/JdUtotgJkdQcRILNNiOZmfVlXcI1572fDzJdC/r7ZTe1JZ?=
 =?iso-8859-1?Q?dY0daveKNAzU0Vw98glYQzPwOMUjOA2aXQCGfJOIn29A=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS4PR03MB8676.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?Oc9GdxJbs6eFC9XLEHQrxuIe7KMuUUCVBDYLp8jadUhWldTgdPTZU+9kAg?=
 =?iso-8859-1?Q?s+unOVDReE3wHa/gUf5sAZUAx81ZiU7mQDXo1ATi4HseTfzP/vVuHTs5rq?=
 =?iso-8859-1?Q?Riw5e+z6LSoCH42LhA67/ouM1t4a2oy/kpd7SfHhCTlfvU6Iaz3DQg0E1W?=
 =?iso-8859-1?Q?JovhcAZd3OUhjq51kXmG4y/4PKQ/EF95CTziePYRL4fn/bCVLv1M0mq39z?=
 =?iso-8859-1?Q?ph2BnN4cvj+xCMCFCgncopr3Je7Czx1fQvTty99f7QhHYCeBp1G09nHdCu?=
 =?iso-8859-1?Q?4EjpHBiO3OUc9/BBtzei8v9YxvChZqGhXgAdc1bHb2ISm/i6nwqKYfNNaH?=
 =?iso-8859-1?Q?E7WJhgLxYYyOnhfPJ2mDS3p7gQi5FR5/wUTPE8SNmoRSnaDtOjUMjo9mhf?=
 =?iso-8859-1?Q?Ek5ASxifDeevM4waESqBczoIa7yEauqp5fHXfLqZRe78PbiCnUVf4FQ8z9?=
 =?iso-8859-1?Q?Iy6SlzLK1nmscCi8R7UTaJXvoQJObVS0BpkTZOhQJwzgnZefP4iUbd5NKO?=
 =?iso-8859-1?Q?MyK0Gz9ZudvXVfATTMlfZUpBHjPFvJiS+4F3fJc07jN/TT3q4jdSy4YqGc?=
 =?iso-8859-1?Q?9yoUyTkygYkAddW4DuHaJtWWjwU1dle4gynen8eyYlxy/iOLx9V3Sefz7U?=
 =?iso-8859-1?Q?nOSBEUPNqj6Z9DNv6ecqEQ6sptpezHph4h/kPtmjTRGtXwPiZJmccTuGjt?=
 =?iso-8859-1?Q?jwCg0NVYv0hLxp+JEbOUusFL8/AorxgLlIZ5lUNvUsm5zur3MrHbu8P9ed?=
 =?iso-8859-1?Q?SmHHqGKRUdwAqs7Mbj4Al5P/mtjXLNhw9MK3vAmQIiY9SzodhjgUM2cxGg?=
 =?iso-8859-1?Q?x5pyQI6moq8mplf/5xV+JH9z9GYHTnXswzgzVzQcT4cZMV0npSoOJOaiwD?=
 =?iso-8859-1?Q?Z71ooLWkFX4r2KlPCDPHN/c6ZAW/wcbqzQiboz9ydggkU5pmsmsWOsHCzG?=
 =?iso-8859-1?Q?b+jFANuJrUe/1vGc53Y0LdNLN2e03VE7Cyhav4t3kPSRPB2QH/gjeL4AK1?=
 =?iso-8859-1?Q?UB6LavSSP8BLC4Qbi/+jM3W+kU7hLRmzSYNjoOzS25x+ONWwU0lMS8UjSL?=
 =?iso-8859-1?Q?6DMsOY46nSMJrNgYiJqJc3kmSvu/0E6tK6HoHoUJ7S3c1q2eDvJQrzzD0R?=
 =?iso-8859-1?Q?0mf0L2Gt4/Srk5dAsAXSVrSzg5iG3DEJqLimC26VOrHJf2MUuptwAUOKfA?=
 =?iso-8859-1?Q?KcGegNTnDYPEeljY+W8V2CNHEG2gOAMV+2+29CaBhO21FqyRSm5/t28qwf?=
 =?iso-8859-1?Q?GI0dpEWupjBJ3jn4M0/q4XX2Q5I7QBdCVtKSSggGIx9PNnHkbqIMI11Uxi?=
 =?iso-8859-1?Q?zIg+VA6/jYcX0tTWHjvkXO3ZqCkKEZtiqSZX8Uk5t7dQrxjYHFAQA50DC9?=
 =?iso-8859-1?Q?De30c9Q219IeE/iBsidD5tnUVRwUZljzCX7hAhc6RbqOh3S56If+6AtXo7?=
 =?iso-8859-1?Q?UNGCG4uBc9zZKjVoaZp4oge6+S1cBB0+ce1ngJXkaSz8sMsnAjxdc5D1x4?=
 =?iso-8859-1?Q?lxfQo7hVdsMH2dw3+SeZCnmhgqX6ZmLDSmRopwww2iwHb9uQQcJSYl+gT6?=
 =?iso-8859-1?Q?judwHxNvLEqsvvPNZGCXXkIBTDIFIlj/m5498P6/wcLKeZ27/kP+hO/CLL?=
 =?iso-8859-1?Q?0X/T6rrMgKLe2JO/1l32H86V5XenigiqTX9XZ1iC0gZrPNkZuZY0fceF74?=
 =?iso-8859-1?Q?o5IOE5sA89hcEHB7GrU=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: AS4PR03MB8676.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b0a8a0eb-1432-41c0-c828-08dde7160625
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Aug 2025 16:06:33.3752
 (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: rW/hjgv+jnFRsi9mOXX8AC/K0acM1B5xVfLvjnLmDxq9F9ZLy4crT9RJx6Fy2xIEqDdlemCmYhLx1XUlG4H4cpzUVuM+s9wqC0vcskB/oM4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR03MB6317

The Dom0 and DomUs logic for the dom0less configuration in create_dom0() an=
d
arch_create_domUs() has been updated to account for extended SPIs when
supported by the hardware and enabled with CONFIG_GICV3_ESPI. These changes
ensure the proper calculation of the maximum number of SPIs and eSPIs avail=
able
to Dom0 and DomUs in dom0less setups.

When eSPIs are supported by the hardware and CONFIG_GICV3_ESPI is enabled, =
the
maximum number of eSPI interrupts is calculated using the ESPI_BASE_INTID
offset (4096) and is limited to 1024, with 32 IRQs subtracted. To ensure
compatibility with non-Dom0 domains, this adjustment is applied by the
toolstack during domain creation, while for Dom0 or DomUs in Dom0, it is
handled directly during VGIC initialization. If eSPIs are not supported, th=
e
calculation defaults to using the standard SPI range, with a maximum value =
of
992 interrupt lines, as it works currently.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
Reviewed-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

---
Changes in V5:
- fixed minor nits, no functional changes: updated the comment to make
  it clearer and corrected a misspelling
- added reviewed-by from Volodymyr Babchuk and from Oleksandr Tyshchenko

Changes in V4:
- consolidated the eSPI and SPI logic into a new inline function,
  vgic_def_nr_spis. Without eSPI support (either due to config being
  disabled or hardware not supporting it), it will return the regular SPI
  range, as it works currently. There are no functional changes compared
  with the previous patch version
- removed VGIC_DEF_MAX_SPI macro, to reduce the number of ifdefs

Changes in V3:
- renamed macro VGIC_DEF_NR_ESPIS to more appropriate VGIC_DEF_MAX_SPI
- added eSPI initialization for dom0less setups
- fixed comment with mentions about dom0less builds
- fixed formatting for lines with more than 80 symbols
- updated commit message

Changes in V2:
- no changes
---
 xen/arch/arm/dom0less-build.c   |  2 +-
 xen/arch/arm/domain_build.c     |  2 +-
 xen/arch/arm/include/asm/vgic.h | 19 +++++++++++++++++++
 3 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index 69b9ea22ce..02d5559102 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -285,7 +285,7 @@ void __init arch_create_domUs(struct dt_device_node *no=
de,
     {
         int vpl011_virq =3D GUEST_VPL011_SPI;
=20
-        d_cfg->arch.nr_spis =3D VGIC_DEF_NR_SPIS;
+        d_cfg->arch.nr_spis =3D vgic_def_nr_spis();
=20
         /*
          * The VPL011 virq is GUEST_VPL011_SPI, unless direct-map is
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index d91a71acfd..39eea0be00 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -2054,7 +2054,7 @@ void __init create_dom0(void)
=20
     /* The vGIC for DOM0 is exactly emulating the hardware GIC */
     dom0_cfg.arch.gic_version =3D XEN_DOMCTL_CONFIG_GIC_NATIVE;
-    dom0_cfg.arch.nr_spis =3D VGIC_DEF_NR_SPIS;
+    dom0_cfg.arch.nr_spis =3D vgic_def_nr_spis();
     dom0_cfg.arch.tee_type =3D tee_get_type();
     dom0_cfg.max_vcpus =3D dom0_max_vcpus();
=20
diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/vgi=
c.h
index 912d5b7694..3aa22114ba 100644
--- a/xen/arch/arm/include/asm/vgic.h
+++ b/xen/arch/arm/include/asm/vgic.h
@@ -347,6 +347,25 @@ extern void vgic_check_inflight_irqs_pending(struct vc=
pu *v,
 /* Default number of vGIC SPIs. 32 are substracted to cover local IRQs. */
 #define VGIC_DEF_NR_SPIS (min(gic_number_lines(), VGIC_MAX_IRQS) - 32)
=20
+static inline unsigned int vgic_def_nr_spis(void)
+{
+#ifdef CONFIG_GICV3_ESPI
+    /*
+     * Check if the hardware supports extended SPIs (even if the appropria=
te
+     * config is set). If not, the common SPI range will be used. Otherwis=
e
+     * return the maximum eSPI INTID, supported by HW GIC, subtracted by 3=
2.
+     * For Dom0 and started at boot time DomUs we will add back this value
+     * during VGIC initialization. This ensures consistent handling for Do=
m0
+     * and other domains. For the regular SPI range interrupts in this cas=
e,
+     * the maximum value of VGIC_DEF_NR_SPIS will be used.
+     */
+    if ( gic_number_espis() > 0 )
+        return ESPI_BASE_INTID + min(gic_number_espis(), 1024U) - 32;
+#endif
+
+    return VGIC_DEF_NR_SPIS;
+}
+
 extern bool vgic_is_valid_line(struct domain *d, unsigned int virq);
=20
 static inline bool vgic_is_spi(struct domain *d, unsigned int virq)
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 16:06:44 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 16:06:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101670.1454702 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us1ch-00019h-Pt; Fri, 29 Aug 2025 16:06:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101670.1454702; Fri, 29 Aug 2025 16:06: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 1us1ch-00019O-LL; Fri, 29 Aug 2025 16:06:43 +0000
Received: by outflank-mailman (input) for mailman id 1101670;
 Fri, 29 Aug 2025 16:06:41 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qyNB=3J=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1us1cf-0006AC-Ik
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 16:06:41 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 24e67168-84f2-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 18:06:38 +0200 (CEST)
Received: from AS4PR03MB8676.eurprd03.prod.outlook.com (2603:10a6:20b:58c::8)
 by VI1PR03MB6317.eurprd03.prod.outlook.com (2603:10a6:800:136::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.26; Fri, 29 Aug
 2025 16:06:36 +0000
Received: from AS4PR03MB8676.eurprd03.prod.outlook.com
 ([fe80::c5ca:906a:1ded:634b]) by AS4PR03MB8676.eurprd03.prod.outlook.com
 ([fe80::c5ca:906a:1ded:634b%7]) with mapi id 15.20.9052.019; Fri, 29 Aug 2025
 16:06: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>
X-Inumbo-ID: 24e67168-84f2-11f0-8adc-4578a1afcccb
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=u2KyeoCFZnjUCIvYfaGo68Sur0kR3CTSrOTEL3q+RpjUDDe57cDfPVyNxUYZ9xA3kfq0+ASVS0a0LMPhqFsThRjLdHiXsikaziUgnjWFvFLv8Fdo3Jceh2sSObJmGnLvLQhPHc6mgyBwBEhHy9BHamuhcvs7Fapz/DB2moP7058Xk28lThKJkzsQOQKhDJ8mxTebBd21ZXlIB5iqhYgkp1VVeYycqFWVsWoSe3xE3vV9FsQIAbknqUOiYFyfBqHoZnqPyZ1TM8r13qkikuYZA69m0Nm/tUFG8ZaH4uk2mglIQA3yjpXsunydiNm+QM73JiirhftuLAKoZrqPiC4BfA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=26ysfIiJ72vbvI1GzH7i91C/GKYdCtgUiMqtSwVMkNI=;
 b=agsLntYIW0CzCMNm/3Y6EUc5VXepkH0FHSdxMt00tSYim6yn6dUvyXy8GxQz1JNWC3S85XlbHyT7FW2taELOe1/sr244wg4n0Hf2556AIAWy4Tv7AMd6LbfqtYFgRinysg2cJ4RUnbzrupzY+EY9dVbednngmxCmg1OpCL0ZWk+x2FeIpjy/elYasZNLBc1cR/pjX+Tma2WWK7jwBj/+wBB20Et6NKPOObTZ0sOBnssd89Je9OkYl8XXoZpZvYz1q8SG0rG0etfS4jj8/z9y1i2zZuyycIZ3r8taNfHB1+uR1tkXgMpFvsxvD3xEdmA/B2veV3OfN9eXXBgUdIbc4w==
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=26ysfIiJ72vbvI1GzH7i91C/GKYdCtgUiMqtSwVMkNI=;
 b=VDZu1B1OGMNZAxsi8NeC/fYGBsB6/Eb76rAHyLX9LmjsnyBYfVagVpu77FNhuKs50xOJS8mYk90MZzrZKCWK28X3dcdiYMOqFcgpzPhYvWM36XFzbYA8Heibw9mWPfWNqu7Ygo62YKRXyEcJ30tW5XPoB9WgTdpHETYWJ3vEnfDRg/GSBK065aIzgSt2sN/6Glk4e9qeqnUGWGlofKBPUumwEPICOxJ2wTauQLtcYvRCIw26fI/aoxTSlhEDXSPIPhnj6H7Gi8z3pRXYQDkzOXBhOZNFy2hE7yY9z49v+sqcAZaybubGWIL2GghJ/GBUAYimSu8Ia2i/stdgu501Iw==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "olekstysh@gmail.com" <olekstysh@gmail.com>, Leonid Komarianskyi
	<Leonid_Komarianskyi@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 v5 10/12] xen/arm: vgic-v3: add emulation of GICv3.1 eSPI
 registers
Thread-Topic: [PATCH v5 10/12] xen/arm: vgic-v3: add emulation of GICv3.1 eSPI
 registers
Thread-Index: AQHcGP7lSnKp01vKiUyg8GCh+goOAw==
Date: Fri, 29 Aug 2025 16:06:36 +0000
Message-ID:
 <6fda233a1a2f0362062ff9a6e80ee223d33815cf.1756481577.git.leonid_komarianskyi@epam.com>
References: <cover.1756481577.git.leonid_komarianskyi@epam.com>
In-Reply-To: <cover.1756481577.git.leonid_komarianskyi@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: AS4PR03MB8676:EE_|VI1PR03MB6317:EE_
x-ms-office365-filtering-correlation-id: 379aa9ff-16e7-4af8-1c02-08dde71607c0
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?Cg6tRIMu7T3j9a++iNQ2Cu79l4mu6a4PrOBUQHa0zoPTTso7IPDUR+e9fs?=
 =?iso-8859-1?Q?1fXuOFrLxiIHFjQzIm8GXJ30mMBdBICoNDPLcFQA/rh5b0tZK5R4lcOBke?=
 =?iso-8859-1?Q?MmA5yomvVxzqXNDwlzyiAKtnPwhSUjYGMelB+mvVSqahQ4A3j0iakm99Og?=
 =?iso-8859-1?Q?PvabDEslbgdtygQP/LHVDZvUyQpx1bSQ9/ZmmSZOQEgiYYe0LnuJ+0ovRg?=
 =?iso-8859-1?Q?POxQ82ggJj0U4vQ4oUfTPBahoHGssocC+Fu+geZPs2KYddXBTSMxVc/blP?=
 =?iso-8859-1?Q?UNxI9fZGFcTlMnBbr7vAJfWRxB0olA14GOCpnQUbZIT8PBEdLYjQ6SHSfy?=
 =?iso-8859-1?Q?pVNYP0jfe7qbXTeZwXQxWfmwgcl2qvAG34vVSyXwNKypd/qSrkV/i21N+w?=
 =?iso-8859-1?Q?2dtNw8qcjzYcvjLJVcK0JgRuNVy7ItJAUbIsDfReR7R+TiCAOByVqEzWIa?=
 =?iso-8859-1?Q?KHAcDhaDpdfxMqCK2YV7Pd3BELbCYu44v+uvnmtXRF2nfdhbP8VVWeyWcp?=
 =?iso-8859-1?Q?xMYOWkGCira0qLx16prKXq3ztcUsoJagkf7XtrW8jir3n5GOfQ226QbMBN?=
 =?iso-8859-1?Q?1UbgwmaAEZa2mj6dnLes4YlRohqUeKXCN4ZrOtguh7o1Zjurt3SGskUleP?=
 =?iso-8859-1?Q?285B2lY4bM63sTbDX42ouOcvFOC4VDQZCbvu8H9nM9VdoVgHUjgMvFY1Dh?=
 =?iso-8859-1?Q?SOMhEfXtc7K2AZCHPDn7eAbreMmB3Ew95M3EY8sqPoJnzIi039/Xt9/zcO?=
 =?iso-8859-1?Q?y8tvhfcBvx2zV18xIeXDs6a9MAIagQJ7XLdcLMi4laZ32jvaUfC6MHYflQ?=
 =?iso-8859-1?Q?X4TJtPS0UF6ZZ7jZhH0WeYWnoXDguGf9K8V0huymN282NTUwZjNXYTQlGO?=
 =?iso-8859-1?Q?QL8udUFPleHiwFaep5yu27KTOBgscauYqYU+0ktblmBUpH6WyvQTDi/ARb?=
 =?iso-8859-1?Q?KDiD7GNVQqmRcZHyyOj4bvw5baPLNY8WdaZRjNV5r49rY4IF3qOikjgx/p?=
 =?iso-8859-1?Q?InS2oFM4J9ge97MbArDvWwQiWi3io8g/cXv369vfjwDtmYX9gz0W0qWYSE?=
 =?iso-8859-1?Q?kofAwW6/bBoTgHMver40VheECGmMghehF8z+DC/MmweznkT7Of5pvB0Avh?=
 =?iso-8859-1?Q?EKxLRvPV8CqO0pfmCrKVASHnHEp7llXGIDTGVyyV5K0XTUGHU7OJznn7Zk?=
 =?iso-8859-1?Q?aUWAaafBFIXIhDxAQFGYhRW50D4vOTAHZsGRBohXvxnEMk7xIyPOgib+Ux?=
 =?iso-8859-1?Q?6VIef0EPnPGaq6DwBh2BY7AFmKzqJUvQA/T8U8kCf/lVtEHtSUnisc3tAF?=
 =?iso-8859-1?Q?TXl90PVnGTT57u95M1V2xwElGJeCqt084VkDc1cU1adRs5WTVIHwnKb7CU?=
 =?iso-8859-1?Q?gCCowme+KuKDYFi0MENYn8tnF2erzZUG1H5FVj7g/8N1xNQu9ffSQgSg6q?=
 =?iso-8859-1?Q?kWTtV0vebqbstnjCL+fkTN/AbpQ0iihjWezH4ofR5wtgd4RNLuIIWtSIO1?=
 =?iso-8859-1?Q?JxzbxzbTqPL82kNumci51E5HoZpz3OdAuHuBnGabGaEQ=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS4PR03MB8676.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?r/aOqyQaRwBqjXdxf4ddAsz/rgGIEvw1Td8PAFE7bykDhj4kYTgu0oyB+P?=
 =?iso-8859-1?Q?C5jjxtGfEhVVA2Eam7i+weRyb1lNmJ46dsUFuef9wUufjw4OsUGoEqAA2g?=
 =?iso-8859-1?Q?J+fCtat+ToTz/owrfMIBAxf3cRtklBIFtBbkjOu86CbG1BhGyf+c/JDPhc?=
 =?iso-8859-1?Q?2U7w4zOqc2EX59ILPJ06Fa3p+ZFNqoV335ca/kwZ4z0Kzg81bHl+yQsBnF?=
 =?iso-8859-1?Q?PdRH9x0mm559qrK/E3Oz0hc/ArzK5VRK8Q5dWM2z+ghebqGiPPcU9a31oA?=
 =?iso-8859-1?Q?eh4ubDQxwf1snb0TI9r2fU/Quxdp1Igpe8tKxPyYMElnj9Vj8GdMWJzEHj?=
 =?iso-8859-1?Q?kge4d1vo9YJVjNBuCQKcf3M5AzyS+C4FDzfSrwTju/lRkHIb4T8iOjQVOQ?=
 =?iso-8859-1?Q?s7woUxRKqYtksvUuvHQgCFKuMRw36FWuXZQKNNoP6HzrepBeYkZ8MuXgK5?=
 =?iso-8859-1?Q?wOjp2GyY5mV+y+xB0sujRcVjC8lpv39dPnCAPtCRf7dOzATOqtlxp/v+w5?=
 =?iso-8859-1?Q?UjZVcX1Q2kKIjD5gECW4PoNXlez5R5kNVgzibdTQJGJ1F+VGmKLaFGfV1A?=
 =?iso-8859-1?Q?NTLzBew0o5dGmFByyzgguWwaQOqM8JECImuPAiayyVajFaoymTzaZQouge?=
 =?iso-8859-1?Q?w5uGMDYLWtIfcD7CuneAeYltL5Tq86FkiaMSWnMz78Ezfl571k95qv2wzt?=
 =?iso-8859-1?Q?Wk7XrwvnCVhRpLvkI/R5DVQH0UdmylyQNYpTxgERxAZIBDwoI0laWQNBNj?=
 =?iso-8859-1?Q?ocu5LgN1zUTL6MA1rq4HXYWlJQLx9ZcagXFpI0ysl87MJ53qq8UpCAfeUU?=
 =?iso-8859-1?Q?OMpOFZm15v4ClIkoPAAr4+/FShte7rKL0zGPYYc4TMLH0D86EsTJsnAqN7?=
 =?iso-8859-1?Q?GUATOLUJcxMG7Bxhls0pw0aVUlr19MmXdmZzvcAovKqi8NC0omD2pmpNY1?=
 =?iso-8859-1?Q?XiL8XyikQmfDaG/Q2JHbbty+DEUbhkXw14sddro6qG0/YfOBPrJCRK+Rv2?=
 =?iso-8859-1?Q?uaF9xs9ey+6qpCvsjpOhdwPsJ9CeSswBc3KGRKdxQamVuUc70JXMCHp86I?=
 =?iso-8859-1?Q?LzdrgO77uJdWjwYSjNNuBfqhNk6y1eooYG7/mPlppmDSeE/Q0HxwA93sDf?=
 =?iso-8859-1?Q?VJImkFh8wwsIdnkVyIBQBHlOOLRsiomrMR7YdtysSyPPJHFIiwEdXOWXaJ?=
 =?iso-8859-1?Q?JL+AaTYK8x7JsHCaIfpn54Lex/X+q1xo9+Z1ymbw3VXkRuF9tBFoJxIoHR?=
 =?iso-8859-1?Q?ss6m9higEt1TAPI0KWJ3UQy/u6olSCXc9rwhwiz5dzTu8/9wS80uZMGfcq?=
 =?iso-8859-1?Q?RAZk6BqDxGIQLNsDLwPMFQYvK3bghvA6S29ltCYbVjfWC+toqZeLTJZ+I/?=
 =?iso-8859-1?Q?x4Axc1xn1arvq2tnyWTxps6Ffuti+K9PrmoUOeYZk9MVdO3ckCNjEl6Vq4?=
 =?iso-8859-1?Q?JRQN/XAegR3PyoTR2n3tJaeqSmBTAjBSJNtKZCdeGp4TyNpftERGiJj5zg?=
 =?iso-8859-1?Q?fcvV0WMG+NthpGsEn/RrzKwfDsNSjWV5l/MoPGalWyrNbsDJHPLPejtnUo?=
 =?iso-8859-1?Q?Uz7yc6MDzuAqVASLF5QJNC3qjppsF9XbC4AImtJKKHGC2NgQOzL3vFcE4G?=
 =?iso-8859-1?Q?YXTv91NVInUjTaFVj9gjlxW85XtM03kxXWnfPOjXJreE+vd/B/HNoZaNDW?=
 =?iso-8859-1?Q?B86oM3mSQ0VtSdc6XlQ=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: AS4PR03MB8676.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 379aa9ff-16e7-4af8-1c02-08dde71607c0
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Aug 2025 16:06:36.1024
 (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: hjsdLPD7iPkhvP0ZLoJWPm7J9nnLvnzn1SZYDGbVgDQTRHv1gVkv+Lhi+H5yAEeUl9CDb01LgD44ONdM2oxTW91zUkrb8Wig444fq4Q4uyo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR03MB6317

Implemented support for GICv3.1 extended SPI registers for vGICv3,
allowing the emulation of eSPI-specific behavior for guest domains.
The implementation includes read and write emulation for eSPI-related
registers (e.g., GICD_ISENABLERnE, GICD_IROUTERnE, and others),
following a similar approach to the handling of regular SPIs.

The eSPI registers, previously located in reserved address ranges,
are now adjusted to support MMIO read and write operations correctly
when CONFIG_GICV3_ESPI is enabled.

The availability of eSPIs and the number of emulated extended SPIs
for guest domains is reported by setting the appropriate bits in the
GICD_TYPER register, based on the number of eSPIs requested by the
domain and supported by the hardware. In cases where the configuration
option is disabled, the hardware does not support eSPIs, or the domain
does not request such interrupts, the functionality remains unchanged.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>

---
Changes in V5:
- since eSPI-specific defines and macros are now available even when the
  appropriate config is disabled, this allows us to remove many
  #ifdef guards and reuse the existing code for regular SPIs for eSPIs as
  well, as eSPIs are processed similarly. This improves code readability
  and consolidates the register ranges for SPIs and eSPIs in a single
  place, simplifying future changes or fixes for SPIs and their
  counterparts from the extended range
- moved vgic_ext_rank_offset() from
  [08/12] xen/arm: vgic: add resource management for extended SPIs
  as the function was unused before this patch
- added stub implementation of vgic_ext_rank_offset() when CONFIG_GICV3_ESP=
I=3Dn
- removed unnecessary defines for reserved ranges, which were introduced in
  V4 to reduce the number of #ifdefs. The issue is now resolved by
  allowing the use of SPI-specific offsets and reworking the logic

Changes in V4:
- added missing RAZ and write ignore eSPI-specific registers ranges:
  GICD_NSACRnE and GICD_IGRPMODRnE
- changed previously reserved range to cover GICD_NSACRnE and
  GICD_IGRPMODRnE
- introduced GICD_RESERVED_RANGE<n>_START/END defines to remove
  hardcoded values and reduce the number of ifdefs
- fixed reserved ranges with eSPI option enabled: added missing range
  0x0F30-0x0F7C
- updated the logic for domains that do not support eSPI, but Xen is
  compiled with the eSPI option. Now, prior to other MMIO checks, we
  verify whether eSPI is available for the domain or not. If not, it
  behaves as it does currently - RAZ and WI
- fixed print for GICD_ICACTIVERnE
- fixed new lines formatting for switch-case

Changes in V3:
- changed vgic_store_irouter parameters - instead of offset virq is
  used, to remove the additional bool espi parameter and simplify
  checks. Also, adjusted parameters for regular SPI. Since the offset
  parameter was used only for calculating virq number and then reused for
  finding rank offset, it will not affect functionality.
- fixed formatting for goto lables - added newlines after condition
- fixed logs for GICD_ISACTIVERnE and GICD_ICACTIVERnE handlers
- removed #ifdefs in 2 places where they were adjacent and could be merged

Changes in V2:
- add missing rank index conversion for pending and inflight irqs
---
 xen/arch/arm/include/asm/vgic.h |   4 +
 xen/arch/arm/vgic-v3.c          | 198 ++++++++++++++++++++++++++------
 xen/arch/arm/vgic.c             |  23 ++++
 3 files changed, 192 insertions(+), 33 deletions(-)

diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/vgi=
c.h
index 3aa22114ba..103bc3c74b 100644
--- a/xen/arch/arm/include/asm/vgic.h
+++ b/xen/arch/arm/include/asm/vgic.h
@@ -314,6 +314,10 @@ extern struct vgic_irq_rank *vgic_rank_offset(struct v=
cpu *v,
                                               unsigned int b,
                                               unsigned int n,
                                               unsigned int s);
+extern struct vgic_irq_rank *vgic_ext_rank_offset(struct vcpu *v,
+                                                  unsigned int b,
+                                                  unsigned int n,
+                                                  unsigned int s);
 extern struct vgic_irq_rank *vgic_rank_irq(struct vcpu *v, unsigned int ir=
q);
 extern void vgic_disable_irqs(struct vcpu *v, uint32_t r, unsigned int n);
 extern void vgic_enable_irqs(struct vcpu *v, uint32_t r, unsigned int n);
diff --git a/xen/arch/arm/vgic-v3.c b/xen/arch/arm/vgic-v3.c
index 4369c55177..b5d766c98f 100644
--- a/xen/arch/arm/vgic-v3.c
+++ b/xen/arch/arm/vgic-v3.c
@@ -111,13 +111,10 @@ static uint64_t vgic_fetch_irouter(struct vgic_irq_ra=
nk *rank,
  * Note the offset will be aligned to the appropriate boundary.
  */
 static void vgic_store_irouter(struct domain *d, struct vgic_irq_rank *ran=
k,
-                               unsigned int offset, uint64_t irouter)
+                               unsigned int virq, uint64_t irouter)
 {
     struct vcpu *new_vcpu, *old_vcpu;
-    unsigned int virq;
-
-    /* There is 1 vIRQ per IROUTER */
-    virq =3D offset / NR_BYTES_PER_IROUTER;
+    unsigned int offset;
=20
     /*
      * The IROUTER0-31, used for SGIs/PPIs, are reserved and should
@@ -685,13 +682,20 @@ static int __vgic_v3_distr_common_mmio_read(const cha=
r *name, struct vcpu *v,
     {
     case VRANGE32(GICD_IGROUPR, GICD_IGROUPRN):
     case VRANGE32(GICD_IGRPMODR, GICD_IGRPMODRN):
+    case VRANGE32(GICD_IGROUPRnE, GICD_IGROUPRnEN):
+    case VRANGE32(GICD_IGRPMODRnE, GICD_IGRPMODRnEN):
         /* We do not implement security extensions for guests, read zero *=
/
         if ( dabt.size !=3D DABT_WORD ) goto bad_width;
         goto read_as_zero;
=20
     case VRANGE32(GICD_ISENABLER, GICD_ISENABLERN):
+    case VRANGE32(GICD_ISENABLERnE, GICD_ISENABLERnEN):
         if ( dabt.size !=3D DABT_WORD ) goto bad_width;
-        rank =3D vgic_rank_offset(v, 1, reg - GICD_ISENABLER, DABT_WORD);
+        if ( reg >=3D GICD_ISENABLERnE )
+            rank =3D vgic_ext_rank_offset(v, 1, reg - GICD_ISENABLERnE,
+                                        DABT_WORD);
+        else
+            rank =3D vgic_rank_offset(v, 1, reg - GICD_ISENABLER, DABT_WOR=
D);
         if ( rank =3D=3D NULL ) goto read_as_zero;
         vgic_lock_rank(v, rank, flags);
         *r =3D vreg_reg32_extract(rank->ienable, info);
@@ -699,8 +703,13 @@ static int __vgic_v3_distr_common_mmio_read(const char=
 *name, struct vcpu *v,
         return 1;
=20
     case VRANGE32(GICD_ICENABLER, GICD_ICENABLERN):
+    case VRANGE32(GICD_ICENABLERnE, GICD_ICENABLERnEN):
         if ( dabt.size !=3D DABT_WORD ) goto bad_width;
-        rank =3D vgic_rank_offset(v, 1, reg - GICD_ICENABLER, DABT_WORD);
+        if ( reg >=3D GICD_ICENABLERnE )
+            rank =3D vgic_ext_rank_offset(v, 1, reg - GICD_ICENABLERnE,
+                                        DABT_WORD);
+        else
+            rank =3D vgic_rank_offset(v, 1, reg - GICD_ICENABLER, DABT_WOR=
D);
         if ( rank =3D=3D NULL ) goto read_as_zero;
         vgic_lock_rank(v, rank, flags);
         *r =3D vreg_reg32_extract(rank->ienable, info);
@@ -710,20 +719,29 @@ static int __vgic_v3_distr_common_mmio_read(const cha=
r *name, struct vcpu *v,
     /* Read the pending status of an IRQ via GICD/GICR is not supported */
     case VRANGE32(GICD_ISPENDR, GICD_ISPENDRN):
     case VRANGE32(GICD_ICPENDR, GICD_ICPENDRN):
+    case VRANGE32(GICD_ISPENDRnE, GICD_ISPENDRnEN):
+    case VRANGE32(GICD_ICPENDRnE, GICD_ICPENDRnEN):
         goto read_as_zero;
=20
     /* Read the active status of an IRQ via GICD/GICR is not supported */
     case VRANGE32(GICD_ISACTIVER, GICD_ISACTIVERN):
     case VRANGE32(GICD_ICACTIVER, GICD_ICACTIVERN):
+    case VRANGE32(GICD_ISACTIVERnE, GICD_ISACTIVERnEN):
+    case VRANGE32(GICD_ICACTIVERnE, GICD_ICACTIVERnEN):
         goto read_as_zero;
=20
     case VRANGE32(GICD_IPRIORITYR, GICD_IPRIORITYRN):
+    case VRANGE32(GICD_IPRIORITYRnE, GICD_IPRIORITYRnEN):
     {
         uint32_t ipriorityr;
         uint8_t rank_index;
=20
         if ( dabt.size !=3D DABT_BYTE && dabt.size !=3D DABT_WORD ) goto b=
ad_width;
-        rank =3D vgic_rank_offset(v, 8, reg - GICD_IPRIORITYR, DABT_WORD);
+        if ( reg >=3D GICD_IPRIORITYRnE )
+            rank =3D vgic_ext_rank_offset(v, 8, reg - GICD_IPRIORITYRnE,
+                                        DABT_WORD);
+        else
+            rank =3D vgic_rank_offset(v, 8, reg - GICD_IPRIORITYR, DABT_WO=
RD);
         if ( rank =3D=3D NULL ) goto read_as_zero;
         rank_index =3D REG_RANK_INDEX(8, reg - GICD_IPRIORITYR, DABT_WORD)=
;
=20
@@ -737,11 +755,15 @@ static int __vgic_v3_distr_common_mmio_read(const cha=
r *name, struct vcpu *v,
     }
=20
     case VRANGE32(GICD_ICFGR, GICD_ICFGRN):
+    case VRANGE32(GICD_ICFGRnE, GICD_ICFGRnEN):
     {
         uint32_t icfgr;
=20
         if ( dabt.size !=3D DABT_WORD ) goto bad_width;
-        rank =3D vgic_rank_offset(v, 2, reg - GICD_ICFGR, DABT_WORD);
+        if ( reg >=3D GICD_ICFGRnE )
+            rank =3D vgic_ext_rank_offset(v, 2, reg - GICD_ICFGRnE, DABT_W=
ORD);
+        else
+            rank =3D vgic_rank_offset(v, 2, reg - GICD_ICFGR, DABT_WORD);
         if ( rank =3D=3D NULL ) goto read_as_zero;
         vgic_lock_rank(v, rank, flags);
         icfgr =3D rank->icfg[REG_RANK_INDEX(2, reg - GICD_ICFGR, DABT_WORD=
)];
@@ -782,46 +804,81 @@ static int __vgic_v3_distr_common_mmio_write(const ch=
ar *name, struct vcpu *v,
     {
     case VRANGE32(GICD_IGROUPR, GICD_IGROUPRN):
     case VRANGE32(GICD_IGRPMODR, GICD_IGRPMODRN):
+    case VRANGE32(GICD_IGROUPRnE, GICD_IGROUPRnEN):
+    case VRANGE32(GICD_IGRPMODRnE, GICD_IGRPMODRnEN):
         /* We do not implement security extensions for guests, write ignor=
e */
         goto write_ignore_32;
=20
     case VRANGE32(GICD_ISENABLER, GICD_ISENABLERN):
+    case VRANGE32(GICD_ISENABLERnE, GICD_ISENABLERnEN):
         if ( dabt.size !=3D DABT_WORD ) goto bad_width;
-        rank =3D vgic_rank_offset(v, 1, reg - GICD_ISENABLER, DABT_WORD);
+        if ( reg >=3D GICD_ISENABLERnE )
+            rank =3D vgic_ext_rank_offset(v, 1, reg - GICD_ISENABLERnE,
+                                        DABT_WORD);
+        else
+            rank =3D vgic_rank_offset(v, 1, reg - GICD_ISENABLER, DABT_WOR=
D);
         if ( rank =3D=3D NULL ) goto write_ignore;
         vgic_lock_rank(v, rank, flags);
         tr =3D rank->ienable;
         vreg_reg32_setbits(&rank->ienable, r, info);
-        vgic_enable_irqs(v, (rank->ienable) & (~tr), rank->index);
+        if ( reg >=3D GICD_ISENABLERnE )
+            vgic_enable_irqs(v, (rank->ienable) & (~tr),
+                             EXT_RANK_IDX2NUM(rank->index));
+        else
+            vgic_enable_irqs(v, (rank->ienable) & (~tr), rank->index);
         vgic_unlock_rank(v, rank, flags);
         return 1;
=20
     case VRANGE32(GICD_ICENABLER, GICD_ICENABLERN):
+    case VRANGE32(GICD_ICENABLERnE, GICD_ICENABLERnEN):
         if ( dabt.size !=3D DABT_WORD ) goto bad_width;
-        rank =3D vgic_rank_offset(v, 1, reg - GICD_ICENABLER, DABT_WORD);
+        if ( reg >=3D GICD_ICENABLERnE )
+            rank =3D vgic_ext_rank_offset(v, 1, reg - GICD_ICENABLERnE,
+                                        DABT_WORD);
+        else
+            rank =3D vgic_rank_offset(v, 1, reg - GICD_ICENABLER, DABT_WOR=
D);
         if ( rank =3D=3D NULL ) goto write_ignore;
         vgic_lock_rank(v, rank, flags);
         tr =3D rank->ienable;
         vreg_reg32_clearbits(&rank->ienable, r, info);
-        vgic_disable_irqs(v, (~rank->ienable) & tr, rank->index);
+        if ( reg >=3D GICD_ICENABLERnE )
+            vgic_disable_irqs(v, (~rank->ienable) & tr,
+                              EXT_RANK_IDX2NUM(rank->index));
+        else
+            vgic_disable_irqs(v, (~rank->ienable) & tr, rank->index);
         vgic_unlock_rank(v, rank, flags);
         return 1;
=20
     case VRANGE32(GICD_ISPENDR, GICD_ISPENDRN):
+    case VRANGE32(GICD_ISPENDRnE, GICD_ISPENDRnEN):
         if ( dabt.size !=3D DABT_WORD ) goto bad_width;
-        rank =3D vgic_rank_offset(v, 1, reg - GICD_ISPENDR, DABT_WORD);
+        if ( reg >=3D GICD_ISPENDRnE )
+            rank =3D vgic_ext_rank_offset(v, 1, reg - GICD_ISPENDRnE, DABT=
_WORD);
+        else
+            rank =3D vgic_rank_offset(v, 1, reg - GICD_ISPENDR, DABT_WORD)=
;
         if ( rank =3D=3D NULL ) goto write_ignore;
=20
-        vgic_set_irqs_pending(v, r, rank->index);
+        if ( reg >=3D GICD_ISPENDRnE )
+            vgic_set_irqs_pending(v, r, EXT_RANK_IDX2NUM(rank->index));
+        else
+            vgic_set_irqs_pending(v, r, rank->index);
=20
         return 1;
=20
     case VRANGE32(GICD_ICPENDR, GICD_ICPENDRN):
+    case VRANGE32(GICD_ICPENDRnE, GICD_ICPENDRnEN):
         if ( dabt.size !=3D DABT_WORD ) goto bad_width;
-        rank =3D vgic_rank_offset(v, 1, reg - GICD_ICPENDR, DABT_WORD);
+        if ( reg >=3D GICD_ICPENDRnE )
+            rank =3D vgic_ext_rank_offset(v, 1, reg - GICD_ICPENDRnE, DABT=
_WORD);
+        else
+            rank =3D vgic_rank_offset(v, 1, reg - GICD_ICPENDR, DABT_WORD)=
;
         if ( rank =3D=3D NULL ) goto write_ignore;
=20
-        vgic_check_inflight_irqs_pending(v, rank->index, r);
+        if ( reg >=3D GICD_ICPENDRnE )
+            vgic_check_inflight_irqs_pending(v,
+                                             EXT_RANK_IDX2NUM(rank->index)=
, r);
+        else
+            vgic_check_inflight_irqs_pending(v, rank->index, r);
=20
         goto write_ignore;
=20
@@ -838,16 +895,38 @@ static int __vgic_v3_distr_common_mmio_write(const ch=
ar *name, struct vcpu *v,
                v, name, r, reg - GICD_ICACTIVER);
         goto write_ignore_32;
=20
+    case VRANGE32(GICD_ISACTIVERnE, GICD_ISACTIVERnEN):
+        if ( dabt.size !=3D DABT_WORD )
+            goto bad_width;
+        printk(XENLOG_G_ERR
+               "%pv: %s: unhandled word write %#"PRIregister" to ISACTIVER=
%dE\n",
+               v, name, r, reg - GICD_ISACTIVERnE);
+        return 0;
+
+    case VRANGE32(GICD_ICACTIVERnE, GICD_ICACTIVERnEN):
+        printk(XENLOG_G_ERR
+               "%pv: %s: unhandled word write %#"PRIregister" to ICACTIVER=
%dE\n",
+               v, name, r, reg - GICD_ICACTIVERnE);
+        goto write_ignore_32;
+
     case VRANGE32(GICD_IPRIORITYR, GICD_IPRIORITYRN):
+    case VRANGE32(GICD_IPRIORITYRnE, GICD_IPRIORITYRnEN):
     {
-        uint32_t *ipriorityr, priority;
+        uint32_t *ipriorityr, priority, offset;
=20
         if ( dabt.size !=3D DABT_BYTE && dabt.size !=3D DABT_WORD ) goto b=
ad_width;
-        rank =3D vgic_rank_offset(v, 8, reg - GICD_IPRIORITYR, DABT_WORD);
+        if ( reg >=3D GICD_IPRIORITYRnE ) {
+            offset =3D reg - GICD_IPRIORITYRnE;
+            rank =3D vgic_ext_rank_offset(v, 8, offset, DABT_WORD);
+        }
+        else
+        {
+            offset =3D reg - GICD_IPRIORITYR;
+            rank =3D vgic_rank_offset(v, 8, offset, DABT_WORD);
+        }
         if ( rank =3D=3D NULL ) goto write_ignore;
         vgic_lock_rank(v, rank, flags);
-        ipriorityr =3D &rank->ipriorityr[REG_RANK_INDEX(8, reg - GICD_IPRI=
ORITYR,
-                                                      DABT_WORD)];
+        ipriorityr =3D &rank->ipriorityr[REG_RANK_INDEX(8, offset, DABT_WO=
RD)];
         priority =3D ACCESS_ONCE(*ipriorityr);
         vreg_reg32_update(&priority, r, info);
         ACCESS_ONCE(*ipriorityr) =3D priority;
@@ -859,10 +938,14 @@ static int __vgic_v3_distr_common_mmio_write(const ch=
ar *name, struct vcpu *v,
         goto write_ignore_32;
=20
     case VRANGE32(GICD_ICFGR + 4, GICD_ICFGRN): /* PPI + SPIs */
+    case VRANGE32(GICD_ICFGRnE, GICD_ICFGRnEN):
         /* ICFGR1 for PPI's, which is implementation defined
            if ICFGR1 is programmable or not. We chose to program */
         if ( dabt.size !=3D DABT_WORD ) goto bad_width;
-        rank =3D vgic_rank_offset(v, 2, reg - GICD_ICFGR, DABT_WORD);
+        if ( reg >=3D GICD_ICFGRnE )
+            rank =3D vgic_ext_rank_offset(v, 2, reg - GICD_ICFGRnE, DABT_W=
ORD);
+        else
+            rank =3D vgic_rank_offset(v, 2, reg - GICD_ICFGR, DABT_WORD);
         if ( rank =3D=3D NULL ) goto write_ignore;
         vgic_lock_rank(v, rank, flags);
         vreg_reg32_update(&rank->icfg[REG_RANK_INDEX(2, reg - GICD_ICFGR,
@@ -1129,6 +1212,16 @@ static int vgic_v3_distr_mmio_read(struct vcpu *v, m=
mio_info_t *info,
             typer |=3D GICD_TYPE_LPIS;
=20
         typer |=3D (v->domain->arch.vgic.intid_bits - 1) << GICD_TYPE_ID_B=
ITS_SHIFT;
+#ifdef CONFIG_GICV3_ESPI
+        if ( v->domain->arch.vgic.nr_espis > 0 )
+        {
+            /* Set eSPI support bit for the domain */
+            typer |=3D GICD_TYPER_ESPI;
+            /* Set ESPI range bits */
+            typer |=3D (DIV_ROUND_UP(v->domain->arch.vgic.nr_espis, 32) - =
1)
+                       << GICD_TYPER_ESPI_RANGE_SHIFT;
+        }
+#endif
=20
         *r =3D vreg_reg32_extract(typer, info);
=20
@@ -1194,6 +1287,16 @@ static int vgic_v3_distr_mmio_read(struct vcpu *v, m=
mio_info_t *info,
     case VRANGE32(GICD_IPRIORITYR, GICD_IPRIORITYRN):
     case VRANGE32(GICD_ICFGR, GICD_ICFGRN):
     case VRANGE32(GICD_IGRPMODR, GICD_IGRPMODRN):
+    case VRANGE32(GICD_IGROUPRnE, GICD_IGROUPRnEN):
+    case VRANGE32(GICD_ISENABLERnE, GICD_ISENABLERnEN):
+    case VRANGE32(GICD_ICENABLERnE, GICD_ICENABLERnEN):
+    case VRANGE32(GICD_ISPENDRnE, GICD_ISPENDRnEN):
+    case VRANGE32(GICD_ICPENDRnE, GICD_ICPENDRnEN):
+    case VRANGE32(GICD_ISACTIVERnE, GICD_ISACTIVERnEN):
+    case VRANGE32(GICD_ICACTIVERnE, GICD_ICACTIVERnEN):
+    case VRANGE32(GICD_IPRIORITYRnE, GICD_IPRIORITYRnEN):
+    case VRANGE32(GICD_ICFGRnE, GICD_ICFGRnEN):
+    case VRANGE32(GICD_IGRPMODRnE, GICD_IGRPMODRnEN):
         /*
          * Above all register are common with GICR and GICD
          * Manage in common
@@ -1201,6 +1304,7 @@ static int vgic_v3_distr_mmio_read(struct vcpu *v, mm=
io_info_t *info,
         return __vgic_v3_distr_common_mmio_read("vGICD", v, info, gicd_reg=
, r);
=20
     case VRANGE32(GICD_NSACR, GICD_NSACRN):
+    case VRANGE32(GICD_NSACRnE, GICD_NSACRnEN):
         /* We do not implement security extensions for guests, read zero *=
/
         goto read_as_zero_32;
=20
@@ -1216,16 +1320,21 @@ static int vgic_v3_distr_mmio_read(struct vcpu *v, =
mmio_info_t *info,
         /* Replaced with GICR_ISPENDR0. So ignore write */
         goto read_as_zero_32;
=20
-    case VRANGE32(0x0F30, 0x60FC):
+    case VRANGE32(0x0F30, 0x0FFC):
         goto read_reserved;
=20
     case VRANGE64(GICD_IROUTER32, GICD_IROUTER1019):
+    case VRANGE64(GICD_IROUTERnE, GICD_IROUTERnEN):
     {
         uint64_t irouter;
=20
         if ( !vgic_reg64_check_access(dabt) ) goto bad_width;
-        rank =3D vgic_rank_offset(v, 64, gicd_reg - GICD_IROUTER,
-                                DABT_DOUBLE_WORD);
+        if ( gicd_reg >=3D GICD_IROUTERnE )
+            rank =3D vgic_ext_rank_offset(v, 64, gicd_reg - GICD_IROUTERnE=
,
+                                        DABT_DOUBLE_WORD);
+        else
+            rank =3D vgic_rank_offset(v, 64, gicd_reg - GICD_IROUTER,
+                                    DABT_DOUBLE_WORD);
         if ( rank =3D=3D NULL ) goto read_as_zero;
         vgic_lock_rank(v, rank, flags);
         irouter =3D vgic_fetch_irouter(rank, gicd_reg - GICD_IROUTER);
@@ -1235,8 +1344,8 @@ static int vgic_v3_distr_mmio_read(struct vcpu *v, mm=
io_info_t *info,
=20
         return 1;
     }
-
-    case VRANGE32(0x7FE0, 0xBFFC):
+    case VRANGE32(0x3700, 0x60FC):
+    case VRANGE32(0xA004, 0xBFFC):
         goto read_reserved;
=20
     case VRANGE32(0xC000, 0xFFCC):
@@ -1382,12 +1491,23 @@ static int vgic_v3_distr_mmio_write(struct vcpu *v,=
 mmio_info_t *info,
     case VRANGE32(GICD_IPRIORITYR, GICD_IPRIORITYRN):
     case VRANGE32(GICD_ICFGR, GICD_ICFGRN):
     case VRANGE32(GICD_IGRPMODR, GICD_IGRPMODRN):
+    case VRANGE32(GICD_IGROUPRnE, GICD_IGROUPRnEN):
+    case VRANGE32(GICD_ISENABLERnE, GICD_ISENABLERnEN):
+    case VRANGE32(GICD_ICENABLERnE, GICD_ICENABLERnEN):
+    case VRANGE32(GICD_ISPENDRnE, GICD_ISPENDRnEN):
+    case VRANGE32(GICD_ICPENDRnE, GICD_ICPENDRnEN):
+    case VRANGE32(GICD_ISACTIVERnE, GICD_ISACTIVERnEN):
+    case VRANGE32(GICD_ICACTIVERnE, GICD_ICACTIVERnEN):
+    case VRANGE32(GICD_IPRIORITYRnE, GICD_IPRIORITYRnEN):
+    case VRANGE32(GICD_ICFGRnE, GICD_ICFGRnEN):
+    case VRANGE32(GICD_IGRPMODRnE, GICD_IGRPMODRnEN):
         /* Above registers are common with GICR and GICD
          * Manage in common */
         return __vgic_v3_distr_common_mmio_write("vGICD", v, info,
                                                  gicd_reg, r);
=20
     case VRANGE32(GICD_NSACR, GICD_NSACRN):
+    case VRANGE32(GICD_NSACRnE, GICD_NSACRnEN):
         /* We do not implement security extensions for guests, write ignor=
e */
         goto write_ignore_32;
=20
@@ -1405,26 +1525,38 @@ static int vgic_v3_distr_mmio_write(struct vcpu *v,=
 mmio_info_t *info,
         if ( dabt.size !=3D DABT_WORD ) goto bad_width;
         return 0;
=20
-    case VRANGE32(0x0F30, 0x60FC):
+    case VRANGE32(0x0F30, 0x0FFC):
         goto write_reserved;
=20
     case VRANGE64(GICD_IROUTER32, GICD_IROUTER1019):
+    case VRANGE64(GICD_IROUTERnE, GICD_IROUTERnEN):
     {
         uint64_t irouter;
+        unsigned int offset, virq;
=20
         if ( !vgic_reg64_check_access(dabt) ) goto bad_width;
-        rank =3D vgic_rank_offset(v, 64, gicd_reg - GICD_IROUTER,
-                                DABT_DOUBLE_WORD);
+        if ( gicd_reg >=3D GICD_IROUTERnE ) {
+            offset =3D gicd_reg - GICD_IROUTERnE;
+            rank =3D vgic_ext_rank_offset(v, 64, offset, DABT_DOUBLE_WORD)=
;
+        } else {
+            offset =3D gicd_reg - GICD_IROUTER;
+            rank =3D vgic_rank_offset(v, 64, offset, DABT_DOUBLE_WORD);
+        }
         if ( rank =3D=3D NULL ) goto write_ignore;
         vgic_lock_rank(v, rank, flags);
-        irouter =3D vgic_fetch_irouter(rank, gicd_reg - GICD_IROUTER);
+        irouter =3D vgic_fetch_irouter(rank, offset);
         vreg_reg64_update(&irouter, r, info);
-        vgic_store_irouter(v->domain, rank, gicd_reg - GICD_IROUTER, irout=
er);
+        if ( gicd_reg >=3D GICD_IROUTERnE )
+            virq =3D ESPI_IDX2INTID(offset / NR_BYTES_PER_IROUTER);
+        else
+            virq =3D offset / NR_BYTES_PER_IROUTER;
+        vgic_store_irouter(v->domain, rank, virq, irouter);
         vgic_unlock_rank(v, rank, flags);
         return 1;
     }
=20
-    case VRANGE32(0x7FE0, 0xBFFC):
+    case VRANGE32(0x3700, 0x60FC):
+    case VRANGE32(0xA004, 0xBFFC):
         goto write_reserved;
=20
     case VRANGE32(0xC000, 0xFFCC):
diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
index c9b9528c66..27ffdf316c 100644
--- a/xen/arch/arm/vgic.c
+++ b/xen/arch/arm/vgic.c
@@ -193,6 +193,18 @@ int domain_vgic_register(struct domain *d, unsigned in=
t *mmio_count)
 }
=20
 #ifdef CONFIG_GICV3_ESPI
+/*
+ * The function behavior is the same as for regular SPIs (vgic_rank_offset=
),
+ * but it operates with extended SPI ranks.
+ */
+struct vgic_irq_rank *vgic_ext_rank_offset(struct vcpu *v, unsigned int b,
+                                           unsigned int n, unsigned int s)
+{
+    unsigned int rank =3D REG_RANK_NR(b, (n >> s));
+
+    return vgic_get_rank(v, rank + EXT_RANK_MIN);
+}
+
 static unsigned int vgic_num_spi_lines(struct domain *d)
 {
     return d->arch.vgic.nr_spis + d->arch.vgic.nr_espis;
@@ -241,6 +253,17 @@ struct pending_irq *espi_to_pending(struct domain *d, =
unsigned int irq)
 {
     return NULL;
 }
+
+/*
+ * It is expected that, in the case of CONFIG_GICV3_ESPI=3Dn, the function=
 will
+ * return NULL. In this scenario, mmio_read/mmio_write will be treated as
+ * RAZ/WI, as expected.
+ */
+struct vgic_irq_rank *vgic_ext_rank_offset(struct vcpu *v, unsigned int b,
+                                           unsigned int n, unsigned int s)
+{
+    return NULL;
+}
 #endif
=20
 static unsigned int vgic_num_alloc_irqs(struct domain *d)
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 16:10:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 16:10:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101728.1454713 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us1gf-0004lF-L0; Fri, 29 Aug 2025 16:10:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101728.1454713; Fri, 29 Aug 2025 16:10: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 1us1gf-0004l8-GW; Fri, 29 Aug 2025 16:10:49 +0000
Received: by outflank-mailman (input) for mailman id 1101728;
 Fri, 29 Aug 2025 16:10:48 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qyNB=3J=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1us1co-0006AC-Ke
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 16:06:50 +0000
Received: from MRWPR03CU001.outbound.protection.outlook.com
 (mail-francesouthazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c207::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2b5fad8b-84f2-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 18:06:49 +0200 (CEST)
Received: from AS4PR03MB8676.eurprd03.prod.outlook.com (2603:10a6:20b:58c::8)
 by DBAPR03MB6486.eurprd03.prod.outlook.com (2603:10a6:10:194::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Fri, 29 Aug
 2025 16:06:46 +0000
Received: from AS4PR03MB8676.eurprd03.prod.outlook.com
 ([fe80::c5ca:906a:1ded:634b]) by AS4PR03MB8676.eurprd03.prod.outlook.com
 ([fe80::c5ca:906a:1ded:634b%7]) with mapi id 15.20.9052.019; Fri, 29 Aug 2025
 16: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>
X-Inumbo-ID: 2b5fad8b-84f2-11f0-8adc-4578a1afcccb
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wF1BsJnGs0sSuxODNg8jNlxqifEEcyF65HiOByI0pvYhs3y0ZAv5nc8reZNm+JvuFPHg1rQ6Tb9nfDLy0KfeJLuADuXDbLDcIzXlVwcDGE7gMH0lY/PNKrt5P+twDrnZQmos8Q8toHtVgEI1UdKZ83aRlePXXEOV3wMnzlN+BqFiURC1679m+q9kdKyjU9cOBRMo5NlUkHZ1JI0pHsCdzqTe9Da20x2Jehc7ameJedTmNncsdcszJm5cHri7GgMlfioJLyG3sWio5xyPpg+5T45FIG+wAybRGoh7wf8Fk+xjSzSc/TrpuSUP5my89/AxFcF3RlaT4TPz7HW6iC8UtQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=PvSfHsHBtRyldG12raaQ+Yq+563Wm7SSCndcxDTlphc=;
 b=IpOYtBOYIZoPJoz80h59r7vwasNFEtgQoR3a12cP1xUayeSd7rQn3V/juKAkPs5EgHGddpNbGUG+9NDGqp8MnXFE7Ae6yY/73iW56XCVWrb2sISSiVzeDM2tORTMVgjhTsXK3plDkkFMKsUpyJSViCvRgNcV6mDk3G+5s0cxp5g+/bn6xqkstJ19BYb1zHGPDBc6S268KlKAgrHjxj6Hi0NXGYGAm+e5eEHaRTxBAVaPUIIGYrWAMJ8MbvGiQkLy0LYLcUESbfffteZ3ySF/nPP9GSTUF8kHpRAf777HFqtMWw8QzH+rht8IVY3HjfWddAiwd1Vf3F0jPVF3Ts705g==
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=PvSfHsHBtRyldG12raaQ+Yq+563Wm7SSCndcxDTlphc=;
 b=P9qUHFAoe7XEIHLAxp+uscxk5ZMgMnl6g/BLvcDCTtgSINZQ2ceOHQA3MONykhBbDH0BaFmTmh/v+dNYoN72XHwJU3NKfogO/Q/tjK9g+qGyP9ZNYo4iGXE0E3VOZIlEINmuKploS5JbWRPBvjO8jpVlf7vgEFQ/ys77YmumG8p8Ecajm4C6wtu5NDoj4+30PoMIMasfJ/GIGHJngRjAb64HnvEBJCNpPf+rwzLHIsbrFRt3YlMlxBQc1GJI+bM43H4zVIg9DFZD76gVP+2RzaAinx0fuLV1YABPKUFYmdG2EtF/z79JUUWaVPCNLpJeEF9bjEOt1Etj5smuLnz0Xg==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "olekstysh@gmail.com" <olekstysh@gmail.com>, Leonid Komarianskyi
	<Leonid_Komarianskyi@epam.com>, Oleksii Kurochko
	<oleksii.kurochko@gmail.com>, Community Manager
	<community.manager@xenproject.org>
Subject: [PATCH v5 12/12] CHANGELOG.md: add mention of GICv3.1 eSPI support
Thread-Topic: [PATCH v5 12/12] CHANGELOG.md: add mention of GICv3.1 eSPI
 support
Thread-Index: AQHcGP7r92C2xJP99EKb98d4gv1OEw==
Date: Fri, 29 Aug 2025 16:06:46 +0000
Message-ID:
 <aa1691add479af165a6b0f860f48b7ad1b741386.1756481577.git.leonid_komarianskyi@epam.com>
References: <cover.1756481577.git.leonid_komarianskyi@epam.com>
In-Reply-To: <cover.1756481577.git.leonid_komarianskyi@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: AS4PR03MB8676:EE_|DBAPR03MB6486:EE_
x-ms-office365-filtering-correlation-id: 757602f1-7bb5-4262-c334-08dde7160df6
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?LIOebLgsoDURL4ahXk9xDO0c2r1a2fWwdHBoNbr/R7ZDeVfROE0piua56y?=
 =?iso-8859-1?Q?Kax2Ecy4dSqDOYF1WKfEbmqrRpcyPbsX7oLXWgDG2ldfkeJ2Y+tgfBGxX6?=
 =?iso-8859-1?Q?+SQZtXBHg+SM5I+W6NdzdaLM7MxRZRGeZQsCj6RfHuYtqUqi0juX/sC7mt?=
 =?iso-8859-1?Q?tHh2gCSktCcigyet4JQyEWUN9at8+s22aH040S7Vm+lLL3SYo5XISP1+FX?=
 =?iso-8859-1?Q?qbPWkUBx0TumZfjKYrmYVGoyyNPP+134RUiksaB+QbXtqbRfFTpVdA1YG3?=
 =?iso-8859-1?Q?845aHYgFFVCO3b8sHYueevkoZn5Qyq84N5HuPMqypEcemlQXZeFnI27xml?=
 =?iso-8859-1?Q?kmaaiqoMRNOAFIZ6wQeYBJ3N0CRkTS0L5Ni08NfoR3MZs7BQefK7WG8mXj?=
 =?iso-8859-1?Q?xEjr+BegITjzTu9xSey8AZZZmbGymfMNRYPMGfb7cMuVJiYyA5VE2+ss6n?=
 =?iso-8859-1?Q?B5UjQ4NRoZms10jJNwzVG0IXE7n42gQ6RhqBgAiRfbva39aG0eCdLZK+hJ?=
 =?iso-8859-1?Q?KEoF8zylWFpz9vhQ/tFLKqLBjHQfud7MMeBqpBpYrwRYN9YKbF6KEbB0CY?=
 =?iso-8859-1?Q?3TLbMC0Y862HlV9Swi+daOOFVubehPvbl9AVus9kOi4b3oFLrbE6MMFW9k?=
 =?iso-8859-1?Q?/h6c4X4je9tKVeCFff8yjFDQ8yI64bvZNKVbEAyRj99fIuuCcJnojnXABD?=
 =?iso-8859-1?Q?Uwlqvjj7rAeMmLD6tv8RY4+QxBCTRpL+kxqxV4nKTma6P8Jg1ZLmrVbIDD?=
 =?iso-8859-1?Q?6nx0NCtbPyFvVvgl4du0xgGeYFpopOz6W3DRXTDq2EOWOiBRHIx7lv0KYv?=
 =?iso-8859-1?Q?4FGIG+uU6WKWz4HwOMWHWByd1fVco1hYLmdIp4nZ8g19c1lXM8sa+ch5CJ?=
 =?iso-8859-1?Q?u61D01f8GdkfcpH5LtjmRcFIJyog1uFirnulw3xSw/PzQjUDqcCH/LurVW?=
 =?iso-8859-1?Q?LW6P42JeXxXlu76P/iOKRU+rrGeP/6zfwokjNIVQEfzpBgxdrrmJye+ZiR?=
 =?iso-8859-1?Q?Nr6VMC7c9mhDU7vWBSGscGHBXAoSVNmR3PrsN+bPb5tuRh6KIxyMv66T05?=
 =?iso-8859-1?Q?yM9vCVrNg/2syPWvKjOhkSuDncLOCpDQzF1wiaqEIVfpf2Xgqx8oHWeAch?=
 =?iso-8859-1?Q?ZsOc+NLhz8Jzj/gWUgJc6E/mo/4pjrSCMkG17TB0q4snw1hxCuv9XMc4IN?=
 =?iso-8859-1?Q?o4qZQ0pWwA41X3AIR4APghtTo629FT2HFHnHvtUbGXyACvrN/KJuD/F6q8?=
 =?iso-8859-1?Q?IjGwqonuT3Ar0bzLe9H1OvHbXPcCgtXBn80yCVwmdPYQHiQzHG+htc+8Ou?=
 =?iso-8859-1?Q?22d6bcZ6OGOygfbIG0CUVuyYtKAHKnpEni6eAbwUHPjjLDc94/SyRFTcgN?=
 =?iso-8859-1?Q?8nOaEKuPxFFidCWGFnF2gosrbLvrsRRgzlYStlndikQAnGyT5uwbTyFStf?=
 =?iso-8859-1?Q?KXRXBWBMAC5PvAjyoges+AyelZymfYDLVPzsoB2vC3nHGta0wMLraQD3kn?=
 =?iso-8859-1?Q?4=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS4PR03MB8676.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?9d1Ud6N9Z1Vqbtc0qPUNyzgF5t3KKYmUxQQt04l4WMbKUH/ogCwEYszVEp?=
 =?iso-8859-1?Q?zpmW8kouU5QgEW1d3jZ/mOsdakJLJfq/IhPzYYrzo2mhc+EgHedQacEVg8?=
 =?iso-8859-1?Q?Aa37YK6EViANxZcVacoy8fAfTEnwgNmXQLcdzn9qaFV+QQWWgJ9kBOt2C/?=
 =?iso-8859-1?Q?XZ+K908SLTKqrlLj6+74F7pJZwM658nzVYZonqNw9BGCEomjarS3Xt5OgV?=
 =?iso-8859-1?Q?nOQj+H6DSIOPLXckFVQGtbyoSD+WB40N+dsDK4IoC3RUiwSkXU3A5bT++L?=
 =?iso-8859-1?Q?bnKTKe25VF9xTYarRQhI2b4VU8mArP/tM0a+9haymts/ZVGNXxFe1X5Uo+?=
 =?iso-8859-1?Q?R8zhMTHrjuVweS7QjSh7fDT2JRpSFtKTxcQ38WYJU+RtVp2crSkoKVRIip?=
 =?iso-8859-1?Q?KlDjipAjnEipg768HTurCddg+FTG5j+kq9+KPV3lmdvETCLhPoK5PtGAwe?=
 =?iso-8859-1?Q?J115+L4TjD0s4PEj/DIGRLz8t9hU/glx7GEZJF81hGktLCGLFgX/2sPeeL?=
 =?iso-8859-1?Q?X4rwELsX5rlSYWe5sjDZDL4EdrmA7lYR9s/y/gBctFnIS5xOKKq2jPFpn9?=
 =?iso-8859-1?Q?f3Ihz5ofLW7YFoiywSDNylut8eZJ03HMMEP6GbQB2IMTYtp19TbS6Jm+g9?=
 =?iso-8859-1?Q?hD1Rxdn1aRxD0gcIIps9tCf5N295f+MAhizL2IhyVuSz2ythJFYJcumrdk?=
 =?iso-8859-1?Q?QSSpEZ+IfLt2pYumesKWZmhG973B916zx7Y+ZU+erHSBxjlJBNB7imlli4?=
 =?iso-8859-1?Q?Gz7XDLCuyoHp7iRYG2AGqcNItG8f1Cb+TR/6K8qU60gMCBs1lOODtm0zfH?=
 =?iso-8859-1?Q?+ChbFjKd1x5rqDiOmZwQzPs8vw2XZoboAnJn2PBT4/Avd1ba7MTTadds1O?=
 =?iso-8859-1?Q?Jo4pFsZ0VM6ip/yu4n4yfW+NU0uvEKfvVh3Rdt53Q6nyUnWY7a+m7s3IW0?=
 =?iso-8859-1?Q?kVhOXmmTtEAI5gq/LMCfYk6wvLWu6xeWEf8tg875a011BtdyG3HVL39yE8?=
 =?iso-8859-1?Q?q8Jq5UTNq9hp5fol1mkUDb6XxdcrVwV5YmVKYmFdiTp/1kq9z614cFr/q8?=
 =?iso-8859-1?Q?Wyy6NK0hNN/ffzDkgpj+HX9BQZylK+MkOjXGiKlTY47q5eW2EDQletcqfT?=
 =?iso-8859-1?Q?QKxuu4SzYbpCQuWMMGGcqI51EgceJT8CMcgqF5vFFQ9gVH1HGeEDDk0b0L?=
 =?iso-8859-1?Q?s31yLc68FXQXnuCgH2QfzfPV1kF7xYqdXWztnVkndyyndmZ5771G+LCYnw?=
 =?iso-8859-1?Q?3uOpW6hMWptkzHu5jQPJRE5KeRZKqQTfjdPLMLVKwDYOE3chplmxL0W6MS?=
 =?iso-8859-1?Q?U1OoZbBqK6OONdr+rCh74mHG2dAhHJUrEeD6xnuhr+Ksgwwq8FytPE6Br6?=
 =?iso-8859-1?Q?0SVs1sWeu5PTGYfxBrdNzxvq4zMC1mM4f+GLgl/hxPBA9TsXXlyTQXlinc?=
 =?iso-8859-1?Q?t2/3zenbuug+Lw+PnOW/d02vGxOOzykb5FF8g4YatoAPA17UbTkVmFkdgn?=
 =?iso-8859-1?Q?7OYr8505IeR1woSb7EjKlfIhTte+ifkCCKOJU1CC3Y2Ff/ZlruK4NalXLW?=
 =?iso-8859-1?Q?WlvB0uHb28Q3qqQe0fTMLefsM4RubpXkaP3OCBYEg31t5ANLd1RpKLWJ9y?=
 =?iso-8859-1?Q?9pyo+0lMDuLNjzSPFX5FTY6AZnk8haa7njU7LkwgKMMX7rzzKYg8yQYMF6?=
 =?iso-8859-1?Q?af1aDD6xmOsZRnPXqRM=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: AS4PR03MB8676.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 757602f1-7bb5-4262-c334-08dde7160df6
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Aug 2025 16:06:46.5767
 (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: Kewc83s/mRRODuuLFVRIYRrqku/SYegHlQomlrqq/ERSG2nDn+zycY9AYynPdW8V7RFC8jHKpa/vAVJju7q2aZ2ceUBl5J/a3Zqz6lCwpbk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR03MB6486

The GICv3.1 eSPI (Extended Shared Peripheral Interrupts) range is
already supported with CONFIG_GICV3_ESPI enabled, so this feature should
be mentioned in CHANGELOG.md.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
Acked-by: Oleksii Kurochko<oleksii.kurochko@gmail.com>

---
Changes in V5:
- extended changelog update with a brief explanation of what eSPI is
- added acked-by from Oleksii Kurochko, which was received for V3:
  https://lore.kernel.org/xen-devel/bce5e07c-eee7-481b-a833-4d5d8bbce78f@gm=
ail.com/

Changes in V4:
- no changes

Changes in V3:
- introduced this patch
---
 CHANGELOG.md | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5f31ca08fe..31b4ded444 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -29,6 +29,8 @@ The format is based on [Keep a Changelog](https://keepach=
angelog.com/en/1.0.0/)
=20
  - On Arm:
     - Ability to enable stack protector
+    - GICv3.1 eSPI (Extended Shared Peripheral Interrupts) support for Xen
+      and guest domains.
=20
 ### Removed
  - On x86:
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 16:10:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 16:10:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101750.1454723 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us1gl-0005Ez-QS; Fri, 29 Aug 2025 16:10:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101750.1454723; Fri, 29 Aug 2025 16:10: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 1us1gl-0005Es-NW; Fri, 29 Aug 2025 16:10:55 +0000
Received: by outflank-mailman (input) for mailman id 1101750;
 Fri, 29 Aug 2025 16:10:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=qyNB=3J=epam.com=Leonid_Komarianskyi@srs-se1.protection.inumbo.net>)
 id 1us1cg-0006O9-5w
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 16:06:42 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 25fbc72e-84f2-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 18:06:40 +0200 (CEST)
Received: from AS4PR03MB8676.eurprd03.prod.outlook.com (2603:10a6:20b:58c::8)
 by VI1PR03MB6317.eurprd03.prod.outlook.com (2603:10a6:800:136::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.26; Fri, 29 Aug
 2025 16:06:38 +0000
Received: from AS4PR03MB8676.eurprd03.prod.outlook.com
 ([fe80::c5ca:906a:1ded:634b]) by AS4PR03MB8676.eurprd03.prod.outlook.com
 ([fe80::c5ca:906a:1ded:634b%7]) with mapi id 15.20.9052.019; Fri, 29 Aug 2025
 16:06: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>
X-Inumbo-ID: 25fbc72e-84f2-11f0-8dd7-1b34d833f44b
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=DC4T/Np5DHBSTQPp4yWpi4wuBsP9Eh/0QyaZROatPlgZhEeT55qhlPG7ketlYlfudcNT59tG5mB3br1PKQsTOJG0ekCRJucmJ1+R407HHSpn8KsxmGgRbyd4b1E6VlBwutvwyMO5eBoDnlAR5bIxrhQvUchioR1OBzDQ8f1Y2KHrY7n+2cUbegeXuUlpQBgO2OrM7Osqlm4wzAjYC1TDAXymbWumdYjzyp4q/2VEi9YMcl1ywz+HqE1Odgkd7f1BB5FaOaULaDi4Y1o3SaqHhq7yeiAYEw7Ft6+s/lqXn222aieZ7BRNzN45IiHMcDQjd1/nF3yxaUUkK+uEu6qxyg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=GONSEj8/1mepKECBs7Vda7Viy+ul1d1/au4fjFSO9gg=;
 b=eVIlIk0AM0DcQ9gFDSo4N1KCGeXLX+Ng/tspQQlFeM0vgk0MPZ+xZ+NrDX57787M5gJrI7Ug2fIXUB2Z29eIn4RpZhYVZTOLh1EQQjkuzGt+1oTcH41+ToIvuoQluJ6JAY1n6ZsAq1itPI4oxkx+GTFlCMJMnboAbMdeNAyVVL5JceuHqjhM50Cw04o2V/qfXvibI3F3g36X/320Ke+Ioir98WEO3T4wx3H2WiqlLx7WFlrAfo8J3zU4ZvWJG/Rd572accbFjL4qzEfOQp9njRa8LxQrhe3uPmGfmsscaDuYmiVaXu55DagUjD4Ot8gtMIvnV6b8Rx1ox4cmr/zvFg==
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=GONSEj8/1mepKECBs7Vda7Viy+ul1d1/au4fjFSO9gg=;
 b=Z+xpaq6xdOEBSdJoiyeovXB5jpssnTpusHyaAYWYIgzYuZJyL5Tz43Yt6bWIFotKwJDszcg5YYxhiKbqmGdyRfUEcvxqkg2EFcsH+Fo0U25SXJeGlzrBCxfLz0LjTxvoWE9DOhby3/r3c371kD14inGe/bQUzCOXV8Cc0VqmFpiS1naudSXyN0ZwEFwupsH5C0O2iuz2CRYs3VXYrCLK8phtIlUuVnQPiP9e8YaLuHZ4+sfrdH4X7sDB1DbpuYtBolCNGw2q4dGJJj/jX/Dl1VLcyDux+xxRmI3GEwGrJl29aeg+I2vHKe8vEzjObzkWCnKg/sHBo0+0oJsViKDsOg==
From: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "olekstysh@gmail.com" <olekstysh@gmail.com>, Leonid Komarianskyi
	<Leonid_Komarianskyi@epam.com>, Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v5 11/12] doc/man: update description for nr_spis with eSPI
Thread-Topic: [PATCH v5 11/12] doc/man: update description for nr_spis with
 eSPI
Thread-Index: AQHcGP7m6ftj+OqxyUm3COIAuPKuog==
Date: Fri, 29 Aug 2025 16:06:38 +0000
Message-ID:
 <e388d273ea64c8665a96cc5be3f507da35ea23f8.1756481577.git.leonid_komarianskyi@epam.com>
References: <cover.1756481577.git.leonid_komarianskyi@epam.com>
In-Reply-To: <cover.1756481577.git.leonid_komarianskyi@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: AS4PR03MB8676:EE_|VI1PR03MB6317:EE_
x-ms-office365-filtering-correlation-id: 837c6ec8-223a-4eee-513a-08dde716090e
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?nD9RSJ64wIPpdcxF2+eCkg3yKLoAeZ+CXsGGfKyDrukqzGJOnGCGcBdxPW?=
 =?iso-8859-1?Q?EsEN5nQ3ecS8A9svRkMEFKZsPJzvWROJ009Y18FV+2SnjwFNfzHna8E1TD?=
 =?iso-8859-1?Q?Pdy8kyZ8nFK4EqW9mj0DWQ2fK/zS/X4jU1YvYjn7ZsJPHXy9fZMzLcGSic?=
 =?iso-8859-1?Q?MxbNRdFrEcxcwNyaJoBIkv2O+lZ67s3w72zExFxXSYuOImHTXpmW9qf2o/?=
 =?iso-8859-1?Q?txqU5or7glVwfKMxYojKLRHyGD9VfDLnB6Z3J4L82vVYnozRJQIiMlIjNd?=
 =?iso-8859-1?Q?hSqTV04raWJLuN0Gw4+zVXphgf5uVeNbTL4um9b7l96R1pTjZ1ePpo+APJ?=
 =?iso-8859-1?Q?yyHe//MSiy8PTd6ThJcur7S9XmPl4vsmXb8A/n+mbjNYgouch3mzNLaq4g?=
 =?iso-8859-1?Q?TPP2G2l4z0EulQ2CKQPuqt+4b2LWfUvGbg/rgLhS1WIXosCXOyl/pZRmyL?=
 =?iso-8859-1?Q?bimHY6dkVsUMpynxSQk+TdpqQFPvn9Bxbd3qaNNRoNJ3m5PdQG37N3wdli?=
 =?iso-8859-1?Q?IXEEK8OsnEbaz/x+EIwENLdNFcHwTifiPwQmthtRbhxjWmpAMGBzH5HViZ?=
 =?iso-8859-1?Q?rzajvR3C/qKmqAFbR9UzwTtYBCSidX3tNszZ5NauLrRTFWVozax8vPrUnb?=
 =?iso-8859-1?Q?bYtA0OFxanaKyjKSvKLH3vBt9dFAS/J6X0SZSX8yApNX/vIgb2PBbZfTyp?=
 =?iso-8859-1?Q?JuAyidjozxzVw93nj2OgDH2QM0zrfIq7ElXNN/4Voilvu8a9F7tKWIVlsa?=
 =?iso-8859-1?Q?5GkfDWHEXX5mam+vMJPoz2qyJWwERV1GbeOcnIy8swdC6cxsIi2CgfG60i?=
 =?iso-8859-1?Q?eb5kFTLXZaaxRnHHPCPOwyBMfdI7sjc1u86vtolR3Mn6kfIfsWU4OSEzkr?=
 =?iso-8859-1?Q?Jk96RhaVEPFYqYiuMZJIEBUpbGbjY3bhmE3HBRk9YH1+2a1LGBvRSIOa+4?=
 =?iso-8859-1?Q?CfZnJVTd6fw3jvAv96WtapPPLfOjBXWSqhN6BUNY5aCDm+wFXBxGMMaiNR?=
 =?iso-8859-1?Q?MMOoc6GPgwAlhcJeUbtGHFJ34I4l+vysmeV97BbtS+mOu3e1137q+9EJ/g?=
 =?iso-8859-1?Q?qUaqhvPxmoivd1Fv4XN0BWOGhUP+7FX2wwedRatN6RgN7jtKAYGQRgNLKf?=
 =?iso-8859-1?Q?i4ZCt4YSTw1ujoZ+MHrRSixabunfAKhawUMth25Pat2ePoFTAfv1qMMPCA?=
 =?iso-8859-1?Q?jbZdHbHbSAVL/+Q6KZ/1MwG20iuGLPySd6xfVkayyPsYT6+1WlHqdYqh2V?=
 =?iso-8859-1?Q?8T0mIc1+5GduwetAJvXFlN538pxOoQbERxlfSDk2Ey2Vcv7ilv8pEKjM65?=
 =?iso-8859-1?Q?Cg5DKiT4VZP/vSrOtTUll8Z8R9pAby4MvtnV/6QWMmW/4jEZdBciSj1JB0?=
 =?iso-8859-1?Q?tH6Lu63MtqQLQYcli/ps1rYvKPmNzD1trgWSZGYGfPBL2KgCklAOBTkaBQ?=
 =?iso-8859-1?Q?xl+7+nnk7Nm7T20oIr0Sk+3aGjs0uf99VTXJsBjYx4o33ID4MagOGkAh2G?=
 =?iso-8859-1?Q?HWMrR67ZYldsO6j61JMHd1dF3RDZGdauqK7aHEmggZfalss0fbtx8S7/c2?=
 =?iso-8859-1?Q?magr7Is=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS4PR03MB8676.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?r2LY0Ne3Ke0bnj5ZBhu06+wA27wmAJvX9+WQKyzyOfxO1uNQNdxjoeCm8l?=
 =?iso-8859-1?Q?YrzMYUs6+vR9u1sAHYKo/6y+Rp/8ke68dHC2gkRrBsw5la4xXQxdMn1zJG?=
 =?iso-8859-1?Q?D88ep9iSBT6muXrV2QSduDnlJeTlERgjqquslE9rQ5DLPcprWCRr8xb0oa?=
 =?iso-8859-1?Q?sru1AXmVYq8uDit51e3KNd25u975rSt1xVSvVWcLK4Ks4CR6LjNGqmbwZf?=
 =?iso-8859-1?Q?CKEJjovt0LeyMi/c40WiI48sk648n2Aei74u3FGv9/7W7ZYQDthERFuu4n?=
 =?iso-8859-1?Q?ozD06i/Y8fmlk//OKwXvQRDl9vUBad8+ectDPZTif22KADW6FxKRB3bXrE?=
 =?iso-8859-1?Q?19ksjQBBbhZiRk0iFMfxI9T9Fbgm0EY5lankf008v92lsHrREdMgJHmvZC?=
 =?iso-8859-1?Q?sKRUwp2+VhVIZ4vvEzxcUx5vZ/ZVhuwJ8HiwJYSVwfRq3RFTEOf5AjLxRO?=
 =?iso-8859-1?Q?3v4AtSZeju9vTwVB30djmzdvTcjCW/F4a3wFdX6fr/Jifwyp7TtiaMEfHh?=
 =?iso-8859-1?Q?zKL3wm9i76DHOFVx1juWoqvZxtijD3qXJekTUdp3NAPpdKPSK/xeRpjd8+?=
 =?iso-8859-1?Q?LOxSdIq3qTEj7fzE8uxeoxOyLliPkZS6RqGEO/Qh9Asm+Wu4ykZdAEK17z?=
 =?iso-8859-1?Q?buv1Ap7QHdK2whPnm2I+0ztaUY1mZ1iweHL0GqeWgWRu050UpUXIrVwBo/?=
 =?iso-8859-1?Q?SLVUIByvDMARt/WC4F6JZMBwRR3yH5mELW0OvhF6N0tE3hISAGWtDQTRhE?=
 =?iso-8859-1?Q?ng7BdU7h2jI8mjcy+g02lsOdROMcqphF8hjkx947kgZEAekVjqmNT2W7nQ?=
 =?iso-8859-1?Q?QUikGOwFoRtNfSGdZEQWcmoAlj5+X3bPqwe1oJjZHAYlYwQmKFJvuI4lUH?=
 =?iso-8859-1?Q?GPEk4sz0h6R3s1o+9IvvErX6WwjoiHCbIpQADZazwW4ToSqelnfylwAPIh?=
 =?iso-8859-1?Q?lVETxi3mdM0V88Sk78YDb1QXPmVIxvSIcJxQ/NGYby8xTlFLG26dM/7N4Y?=
 =?iso-8859-1?Q?3CMXbg60YiILDlKw63No7nORZaeisSDRpuU3YeTYL3XQawiOg2Bk7M4qmt?=
 =?iso-8859-1?Q?9Sc55vsCiNhH4d0Ck8aIiRrHadxtgnozR5+taE9E2e/Zu3bp/1XVoskdGS?=
 =?iso-8859-1?Q?bh1TxmqSTdTlBcFgG108akmUi6ItEWnBWwnvyRmYlWwBd9or9tPDZFGkg+?=
 =?iso-8859-1?Q?arJfovWyS6+JBCbUEoHyW4talNQLAxuTT8TRRmPEDMEd/us5cXjJhLnRbe?=
 =?iso-8859-1?Q?RYHv5WWTeXJdRkU4Bd5/iGzEe1jmQHwD8ZdT7dXllsb9G/o0TCNCJ1gqjM?=
 =?iso-8859-1?Q?ttxk/Qa0bGQpjgRFUbZFml/k8nKI9AIk8tCL5GAMx6R6YZMsGx4d863bev?=
 =?iso-8859-1?Q?6JBSKegOt0aZPCVYMHpjb8KjrAo6C2tBhM6tpPXEvMYJ0S9QQgrjR/eiAk?=
 =?iso-8859-1?Q?CqiimeNWunYzxkGHKjOiirW96olL2iz9m25wPD1YgHjI4WQOU8GfBeEU1I?=
 =?iso-8859-1?Q?qc4MWJB2VtUOadk2a3IjCQ5caueHWo5ovzMoVy9eXCZ6qqqUCPSwGeICAK?=
 =?iso-8859-1?Q?IUFhtifNBA7ryAFaC2RabsM8YZrSe556ClYtaBHaNWSDFiLQuvXPrNqD6/?=
 =?iso-8859-1?Q?gTsCiCGVF6gutWshDlz3JQHv2LA65J7rfWOGHERGcMh6AVwx+aAfgxoWpU?=
 =?iso-8859-1?Q?2pQzJuSGOEyINMSc6BE=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: AS4PR03MB8676.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 837c6ec8-223a-4eee-513a-08dde716090e
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Aug 2025 16:06:38.3525
 (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: P8ap13roLu7tvyhIcF73hHipO+WOpO0aNC8YjB2Ho4jZZAp3Lq0niChFFzYxUlY4gbkXuA9OXlQY6wAj/feU9NTg7IF2El3JPWfb7BE8G0E=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR03MB6317

Since eSPI support has been introduced, update the documentation with
the appropriate description.

Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>

---
The discussion is ongoing and can be addressed in V5.
Clarification is needed from the maintainers.
Link:
- https://lore.kernel.org/xen-devel/87y0r4z717.fsf@epam.com/

Changes in V5:
- no changes

Changes in V4:
- introduced this patch
---
 docs/man/xl.cfg.5.pod.in | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/docs/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.in
index 5362fb0e9a..292ab10331 100644
--- a/docs/man/xl.cfg.5.pod.in
+++ b/docs/man/xl.cfg.5.pod.in
@@ -3072,11 +3072,14 @@ interval of colors (such as "0-4").
 =3Ditem B<nr_spis=3D"NR_SPIS">
=20
 An optional integer parameter specifying the number of SPIs (Shared
-Peripheral Interrupts) to allocate for the domain. Max is 960 SPIs. If
-the `nr_spis` parameter is not specified, the value calculated by the tool=
stack
-will be used for the domain. Otherwise, the value specified by the `nr_spi=
s`
-parameter will be used. The number of SPIs should match the highest interr=
upt
-ID that will be assigned to the domain.
+Peripheral Interrupts) to allocate for the domain. Max is 960 for regular =
SPIs
+or 5088 for eSPIs (Extended SPIs). The eSPIs includes an additional 1024 S=
PIs
+from the eSPI range (4096 to 5119) if the hardware supports extended SPIs
+(GICv3.1+) and CONFIG_GICV3_ESPI is enabled. If the `nr_spis` parameter is=
 not
+specified, the value calculated by the toolstack will be used for the doma=
in.
+Otherwise, the value specified by the `nr_spis` parameter will be used. Th=
e
+number of SPIs should match the highest interrupt ID that will be assigned=
 to
+the domain.
=20
 =3Ditem B<trap_unmapped_accesses=3DBOOLEAN>
=20
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 16:16:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 16:16:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101810.1454732 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us1mS-0006Fi-FP; Fri, 29 Aug 2025 16:16:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101810.1454732; Fri, 29 Aug 2025 16:16: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 1us1mS-0006Fb-Ci; Fri, 29 Aug 2025 16:16:48 +0000
Received: by outflank-mailman (input) for mailman id 1101810;
 Fri, 29 Aug 2025 16:16:46 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=OeP6=3J=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1us1mQ-0006FV-E8
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 16:16:46 +0000
Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com
 [2a00:1450:4864:20::12b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8e96bbe3-84f3-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 18:16:45 +0200 (CEST)
Received: by mail-lf1-x12b.google.com with SMTP id
 2adb3069b0e04-55f6507bd53so1870846e87.3
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 09:16:45 -0700 (PDT)
Received: from [192.168.0.110] ([91.123.151.69])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-336b95430b8sm4058341fa.13.2025.08.29.09.16.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 29 Aug 2025 09:16: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>
X-Inumbo-ID: 8e96bbe3-84f3-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756484205; x=1757089005; 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=Z54ks6koaBdMBZxbfT+23ZKmh12XRsqqTIqNVJkSEPA=;
        b=BcHc6NSZy+sshR5i9jntF9YroDbcQMt+354GsM6WEZp4egL+QFOxhTn2PYZyopRzRW
         EgJgjYXqfQHTVVdypcPLxBZd3oqzjQHu7E2iltmWElZEdDm1lDj3uLhVWrhldKIv7ZhQ
         /CmF/RczOdL/wW+OpmVgzmAQ4GB3Ew3se7+rtCrcAGqJ7PIIFn9a9Aqn3e+nG3BC+Nbi
         QjF6ajbI0urE5UEGn+kIEc2Sp8LwaQsAXeF4FuOPoNouL4+vwUSzdfPcRXMts6nEekgl
         qErroqXh3qoAZ/0nxM1erJUwyaCV5cM1qd7C568GGvy8S2ouIriJ5T0YV4q2YN0bAy/1
         sTgg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756484205; x=1757089005;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=Z54ks6koaBdMBZxbfT+23ZKmh12XRsqqTIqNVJkSEPA=;
        b=KkU/zvajrt67IVDiLnWAgSNiBmui2awCpc0HVvYmOJPiTSIfvA7/k4t3wEbmhgooIV
         0W9OZVWyS3+5ihknQ7TpOnY5GrPnygr6ikmvWOlVVcBacaG+ZnvV1vkIiLjxccD8ssiL
         gXL06LoXJYf1dtKsgAso5wwiHi2f8dmd1TuR6TMEDxwTR4m1QdWRIZOns1MPA72KwpTs
         Gay+Ra37dNOHpK3Z0aeio4hsnvRPlky+6QS2knGEAfoxKLdqYWOcTiCfZtm2fayfLBmO
         GSLt9Dv/mTfHAQoBaHhumV0KWdyeOjOH5UNrrBeICQiI5OZnpQYv7lxTYuAcVW//19ZR
         Afgw==
X-Forwarded-Encrypted: i=1; AJvYcCX/0iwrt49L+2ppweNmAPTXiZ30nfvTtvXtt7riRfcwSaV4qZP4Hb+mhIi1wLCkaRA59PpUa9sShiw=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywcg1Xgy8zeqUwhV5/BBzVqkUhl9qHtzXgFxy/ZU086MD7vLSfo
	aMTtU4XDhKxYs6mL45Q235ntTIl4+Bmx8qSM/x5sxKR7hU2CVQluiD4t
X-Gm-Gg: ASbGncskoTVdXer054P9A3usO0xEw4+Fl5hBE4jOOW7NCPjTqJ7XDArW780Mq8maDpw
	xfc3fTgIRGZoXrk9s+aLA9zxacNLUmPLLteKFFTeekuwek1OyONVc1KN4CZtEsc1HhDiMfRm1rb
	M2G/h35ljAutkQEAAK6d8FX2/cPpB/uHCAMN9ftWL+N7fC4LR+3IRuC5nSwO4rR6xJd5R3naZY+
	jxzKg3toI8/S2p1hznRz4NcoEXoHjfYTNAIoqLeVILpIbTHXhVovTQFVGZ1dSsvRmuuRgi3D1Lt
	3A1CU6A7i38qRH+8XTxPzdfX75jbYwIcKBlrs08QhpV9yc42s11dlLgHkyPxOSWDZC/rN1TFuTD
	1XRWpgUOxZQMAls66tjyZ/w5TYQ==
X-Google-Smtp-Source: AGHT+IHFMthIQu56FmJTPAjG1v7yHuBILZd/+bp5p7VeDQuEBiXuR91CjcWjr1NtMihiz2nbPfn9Ww==
X-Received: by 2002:a05:651c:1541:b0:336:96cc:ac0 with SMTP id 38308e7fff4ca-33696cc10c0mr21902341fa.43.1756484204278;
        Fri, 29 Aug 2025 09:16:44 -0700 (PDT)
Message-ID: <632637dc-99c0-42f2-a16c-dc9502a1ee2c@gmail.com>
Date: Fri, 29 Aug 2025 19:16:40 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 3/4] xen/arm: scmi-smc: passthrough SCMI SMC to domain,
 single agent
To: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Bertrand Marquis <bertrand.marquis@arm.com>, Jan Beulich
 <jbeulich@suse.com>, Juergen Gross <jgross@suse.com>,
 Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>
References: <cover.1756399156.git.oleksii_moisieiev@epam.com>
 <02b79eaa0a611fb43a2146a5f41aec435d3db6c7.1756399156.git.oleksii_moisieiev@epam.com>
Content-Language: en-US
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
In-Reply-To: <02b79eaa0a611fb43a2146a5f41aec435d3db6c7.1756399156.git.oleksii_moisieiev@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 28.08.25 19:40, Oleksii Moisieiev wrote:

Hello Oleksii

the patch lgtm, just some comments

> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> The commit 3e322bef8bc0 ("xen/arm: firmware: Add SCMI over SMC calls
> handling layer") introduces simple driver which forwards SCMI over SMC
> calls from hwdom/dom0 to EL3 firmware (TF-A) with a single SCMI OSPM agent
> support. While it is working gracefully for hwdom/dom0 use case it doesn't
> cover "thin Dom0 with guest domain, which serves as Driver domain"
> use-case. In this case HW need to be enable in Driver domain and dom0 is
> performing only control functions.
> 
> The EL3 SCMI firmware (TF-A) with a single SCMI OSPM agent support is
> pretty generic case for the default vendors SDK and new platforms.
> 
> This patch enables passthrough of SCMI SMC single agent interface to the
> one guest domain serving as Driver domain.
> 
> Configure Dom0 to enable SCMI passthrough:
> 
>   - dom0: add scmi-smc-passthrough to the Xen Command Line
> 
> Enabled SCMI passthrough for guest using toolstack in the following way:
> 
>   - domD: xl.cfg add "arm_sci" option as below
> 
>     arm_sci = "type=scmi_smc"
> 
>   - domD: xl.cfg enable access to the "arm,scmi-shmem"
> 
> iomem = [
>      "47ff0,1@22001",
> ]
> 
>   - domD: add SCMI nodes to the Driver domain partial device tree as in the
>   below example:
> 
> passthrough {
>     scmi_shm_0: sram@22001000 {
>         compatible = "arm,scmi-shmem";
>         reg = <0x0 0x22001000 0x0 0x1000>;
>     };
> 
>     firmware {
>          compatible = "simple-bus";
>              scmi: scmi {
>                  compatible = "arm,scmi-smc";
>                  shmem = <&scmi_shm_0>;
>                  ...
>              }
>      }
> }
> 
> dom0less case configuration:
> 
> - add "xen,sci_type" property for required DomU ("xen,domain") node
> 
>     xen,sci_type="scmi_smc"
> 
> - add scmi nodes to the Driver domain partial device tree the same way
> as above and enable access to the "arm,scmi-shmem" according to
> dom0less documentation. For example:
> 
>    scmi_shm_0: sram@22001000 {
>          compatible = "arm,scmi-shmem";
>          reg = <0x00 0x22001000 0x00 0x1000>;
> ->        xen,reg = <0x0 0x47ff0000 0x0 0x1000 0x0 0x22001000>;
> ->        xen,force-assign-without-iommu;
>    };
> 
> The SCMI SMC single agent interface can be enabled for one and only one
> domain. In general, the configuration is similar to any other HW
> passthrough, except explicitly enabling SCMI with "arm_sci" xl.cfg option.
> 
> Note that "arm,scmi-smc" and "arm,scmi-shmem" nodes will be removed from
> dom0/hwdom DT in case of

?

> 
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> Signed-off-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
> Acked-by: Anthony PERARD <anthony.perard@vates.tech> # tools
> ---
> 
> Changes in v6:
> - added generated helpers and types go files
> - rename cmdline parameter to scmi-smc-passthrough
> - fix goto tag in parse_arm_sci_config
> 
> Changes in v5:
> - rename dom0_scmi_smc_passthrough to scmi_smc_passthrough
> 
> Changes in v4:
> - xl.cfg doc
> - fix comments from Stefano Stabellini
> - fix toolstack code as sugested by Anthony PERARD
>    - use MATCH_OPTION()
>    - move arm_sci struct and cfg params in "arch_arm"
> - add SCMI passthrough for dom0less case
> 
>   docs/man/xl.cfg.5.pod.in              |  34 ++++++++
>   docs/misc/arm/device-tree/booting.txt |  15 ++++
>   docs/misc/xen-command-line.pandoc     |   9 +++
>   tools/golang/xenlight/helpers.gen.go  |  41 ++++++++++
>   tools/golang/xenlight/types.gen.go    |  12 +++
>   tools/include/libxl.h                 |   5 ++
>   tools/libs/light/libxl_arm.c          |  14 ++++
>   tools/libs/light/libxl_types.idl      |  10 +++
>   tools/xl/xl_parse.c                   |  36 +++++++++
>   xen/arch/arm/dom0less-build.c         |  34 +++++++-
>   xen/arch/arm/firmware/Kconfig         |   4 +-
>   xen/arch/arm/firmware/scmi-smc.c      | 112 +++++++++++++++++++++++++-
>   12 files changed, 321 insertions(+), 5 deletions(-)
> 

[snip]

> diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
> index 0094cf9e40..7422f4be30 100644
> --- a/xen/arch/arm/dom0less-build.c
> +++ b/xen/arch/arm/dom0less-build.c
> @@ -279,6 +279,36 @@ int __init arch_handle_passthrough_prop(struct kernel_info *kinfo,
>       return sci_assign_dt_device(kinfo->bd.d, node);
>   }
>   
> +int __init domu_dt_sci_parse(struct dt_device_node *node,
> +                             struct xen_domctl_createdomain *d_cfg)
> +{
> +    const char *sci_type = NULL;

NIT: I think "= NULL" can be omitted.

> +    int ret;
> +
> +    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") )
> +        return 0;
> +
> +    ret = dt_property_read_string(node, "xen,sci_type", &sci_type);
> +    if ( ret )
> +        return ret;
> +
> +    if ( !strcmp(sci_type, "none") )
> +        d_cfg->arch.arm_sci_type = XEN_DOMCTL_CONFIG_ARM_SCI_NONE;
> +    else if ( !strcmp(sci_type, "scmi_smc") )
> +        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",
> +               sci_type, dt_node_name(node));
> +        return -EINVAL;
> +    }
> +
> +    return 0;
> +}
> +
>   int __init arch_parse_dom0less_node(struct dt_device_node *node,
>                                       struct boot_domain *bd)
>   {
> @@ -288,7 +318,9 @@ int __init arch_parse_dom0less_node(struct dt_device_node *node,
>   
>       d_cfg->arch.gic_version = XEN_DOMCTL_CONFIG_GIC_NATIVE;
>       d_cfg->flags |= XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap;
> -    d_cfg->arch.arm_sci_type = XEN_DOMCTL_CONFIG_ARM_SCI_NONE;
> +
> +    if ( domu_dt_sci_parse(node, d_cfg) )
> +        panic("Error getting SCI configuration\n");
>   
>       if ( !dt_property_read_u32(node, "nr_spis", &d_cfg->arch.nr_spis) )
>       {
> diff --git a/xen/arch/arm/firmware/Kconfig b/xen/arch/arm/firmware/Kconfig
> index bbf88fbb9a..5c5f0880c4 100644
> --- a/xen/arch/arm/firmware/Kconfig
> +++ b/xen/arch/arm/firmware/Kconfig
> @@ -25,7 +25,9 @@ config SCMI_SMC
>   	  doorbell mechanism and Shared Memory for transport ("arm,scmi-smc"
>   	  compatible only). The value of "arm,smc-id" DT property from SCMI
>   	  firmware node is used to trap and forward corresponding SCMI SMCs
> -	  to firmware running at EL3, for calls coming from the hardware domain.
> +	  to firmware running at EL3, for calls coming from the hardware domain or
> +	  driver domain.
> +	  Use with EL3 firmware which supports only single SCMI OSPM agent.
>   
>   endchoice
>   
> diff --git a/xen/arch/arm/firmware/scmi-smc.c b/xen/arch/arm/firmware/scmi-smc.c
> index 13d1137592..edc54b11b6 100644
> --- a/xen/arch/arm/firmware/scmi-smc.c
> +++ b/xen/arch/arm/firmware/scmi-smc.c
> @@ -14,6 +14,8 @@
>   #include <xen/device_tree.h>
>   #include <xen/errno.h>
>   #include <xen/init.h>
> +#include <xen/iocap.h>
> +#include <xen/param.h>
>   #include <xen/sched.h>
>   #include <xen/types.h>
>   
> @@ -22,7 +24,11 @@
>   
>   #define SCMI_SMC_ID_PROP   "arm,smc-id"
>   
> +static bool __ro_after_init opt_scmi_smc_passthrough = false;

NIT: I think "= false" can be omitted.


> +boolean_param("scmi-smc-passthrough", opt_scmi_smc_passthrough);
> +
>   static uint32_t __ro_after_init scmi_smc_id;
> +static struct domain __read_mostly *scmi_dom;
>   
>   /*
>    * Check if provided SMC Function Identifier matches the one known by the SCMI
> @@ -50,7 +56,7 @@ static bool scmi_handle_smc(struct cpu_user_regs *regs)
>           return false;
>   
>       /* Only the hardware domain should use SCMI calls */
> -    if ( !is_hardware_domain(current->domain) )
> +    if ( scmi_dom != current->domain )
>       {
>           gdprintk(XENLOG_WARNING, "SCMI: Unprivileged access attempt\n");
>           return false;
> @@ -75,12 +81,45 @@ static bool scmi_handle_smc(struct cpu_user_regs *regs)
>       return true;
>   }
>   
> +static int
> +scmi_smc_domain_sanitise_config(struct xen_domctl_createdomain *config)
> +{
> +    if ( config->arch.arm_sci_type != XEN_DOMCTL_CONFIG_ARM_SCI_NONE &&
> +         config->arch.arm_sci_type != XEN_DOMCTL_CONFIG_ARM_SCI_SCMI_SMC )
> +        return -EINVAL;
> +
> +    return 0;
> +}
> +
>   static int scmi_smc_domain_init(struct domain *d,
>                                   struct xen_domctl_createdomain *config)
>   {
> -    if ( !is_hardware_domain(d) )
> +    /*
> +     * scmi_passthrough is not enabled:
> +     * - proceed only for hw_domain
> +     * - fail if guest domain has SCMI enabled.
> +     */
> +    if ( !opt_scmi_smc_passthrough && !is_hardware_domain(d) )
> +    {
> +        if ( config->arch.arm_sci_type == XEN_DOMCTL_CONFIG_ARM_SCI_SCMI_SMC )
> +            return -EINVAL;
> +        else
> +            return 0;
> +    }
> +    /*
> +     * scmi_passthrough is enabled:
> +     * - ignore hw_domain
> +     * - proceed only for domain with SCMI enabled.
> +     */
> +    if ( opt_scmi_smc_passthrough &&
> +         (config->arch.arm_sci_type == XEN_DOMCTL_CONFIG_ARM_SCI_NONE ||
> +          is_hardware_domain(d)) )
>           return 0;
>   
> +    if ( scmi_dom )
> +        return -EEXIST;
> +
> +    scmi_dom = d;
>       d->arch.sci_enabled = true;
>       printk(XENLOG_DEBUG "SCMI: %pd init\n", d);
>       return 0;
> @@ -88,12 +127,77 @@ static int scmi_smc_domain_init(struct domain *d,
>   
>   static void scmi_smc_domain_destroy(struct domain *d)
>   {
> -    if ( !is_hardware_domain(d) )
> +    if ( scmi_dom && scmi_dom != d )
>           return;
>   
> +    scmi_dom = NULL;
> +    d->arch.sci_enabled = false;
>       printk(XENLOG_DEBUG "SCMI: %pd destroy\n", d);
>   }
>   
> +/*
> + * Handle Dom0 SCMI SMC specific DT nodes
> + *
> + * if scmi_smc_passthrough=false:
> + * - Copy SCMI nodes into Dom0 device tree.
> + * if scmi_smc_passthrough=true:
> + * - skip SCMI nodes from Dom0 DT
> + * - give dom0 control access to SCMI shmem MMIO, so SCMI can be passed
> + *   through to guest.
> + */
> +static bool scmi_smc_dt_handle_node(struct domain *d,
> +                                    struct dt_device_node *node)
> +{
> +    static const struct dt_device_match shmem_matches[] __initconst = {
> +        DT_MATCH_COMPATIBLE("arm,scmi-shmem"),
> +        { /* sentinel */ },
> +    };
> +    static const struct dt_device_match scmi_matches[] __initconst = {
> +        DT_MATCH_PATH("/firmware/scmi"),
> +        { /* sentinel */ },
> +    };
> +
> +    /* skip scmi shmem node for dom0 if scmi not enabled */
> +    if ( dt_match_node(shmem_matches, node) && !sci_domain_is_enabled(d) )
> +    {
> +        dt_dprintk("Skip scmi shmem node\n");
> +        return true;
> +    }
> +
> +    /*
> +     * skip scmi node for dom0 if scmi not enabled, but give dom0 control
> +     * access to SCMI shmem
> +     */
> +    if ( dt_match_node(scmi_matches, node) && !sci_domain_is_enabled(d) )
> +    {
> +        struct dt_device_node *shmem_node;
> +        const __be32 *prop;
> +        u64 paddr, size;

NIT: uint64_t please for the new code

> +        int ret;
> +
> +        /* give dom0 control access to SCMI shmem */
> +        prop = dt_get_property(node, "shmem", NULL);
> +        if ( !prop )
> +            return true;
> +
> +        shmem_node = dt_find_node_by_phandle(be32_to_cpu(*prop));
> +        if ( !shmem_node )
> +            return true;
> +
> +        ret = dt_device_get_address(shmem_node, 0, &paddr, &size);
> +        if ( ret )
> +            return true;
> +
> +        ret = iomem_permit_access(d, paddr_to_pfn(paddr),
> +                                  paddr_to_pfn(paddr + size - 1));

Shouldn't we at least warn if the access to SCMI shmem is not permitted 
for Dom0? Or this is not going to be an issue at all?


> +
> +        dt_dprintk("Skip scmi node\n");
> +        return true;
> +    }
> +
> +    return false;
> +}
> +
>   static int __init scmi_check_smccc_ver(void)
>   {
>       if ( smccc_ver < ARM_SMCCC_VERSION_1_1 )
> @@ -108,8 +212,10 @@ static int __init scmi_check_smccc_ver(void)
>   
>   static const struct sci_mediator_ops scmi_smc_ops = {
>       .handle_call = scmi_handle_smc,
> +    .domain_sanitise_config = scmi_smc_domain_sanitise_config,
>       .domain_init = scmi_smc_domain_init,
>       .domain_destroy = scmi_smc_domain_destroy,
> +    .dom0_dt_handle_node = scmi_smc_dt_handle_node,
>   };
>   
>   /* Initialize the SCMI layer based on SMCs and Device-tree */



From xen-devel-bounces@lists.xenproject.org Fri Aug 29 16:17:16 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 16:17:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101817.1454743 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us1mu-0006jv-S5; Fri, 29 Aug 2025 16:17:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101817.1454743; Fri, 29 Aug 2025 16:17:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us1mu-0006j9-Oh; Fri, 29 Aug 2025 16:17:16 +0000
Received: by outflank-mailman (input) for mailman id 1101817;
 Fri, 29 Aug 2025 16:17:15 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=b4pU=3J=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1us1mt-0006FV-4y
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 16:17:15 +0000
Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com
 [2a00:1450:4864:20::331])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9fed255f-84f3-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 18:17:14 +0200 (CEST)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-45a1b066b5eso13836495e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 09:17:14 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3d0a7691340sm2973328f8f.39.2025.08.29.09.17.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 29 Aug 2025 09:17: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>
X-Inumbo-ID: 9fed255f-84f3-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756484234; x=1757089034; 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=78bcN961wJy8tt+lDbkthBUgI/cmOgrpjwzbJMR/a/A=;
        b=A2t2N3UoiQNP+IM9ftM7sO4E76DfMS/6qHXsDjo/FIs02kAlnbynFsPbjSG1yb+2dD
         YUZH5/z+MFGqba8kWp4jhp+sUUiOwn1b6Zw+L1Bj7CK3IAGDR9FIvPwncGq3hUkjlyFj
         csgjY3/sT4zJ36pysWbGCX+OPgY69rk8/jaLI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756484234; x=1757089034;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=78bcN961wJy8tt+lDbkthBUgI/cmOgrpjwzbJMR/a/A=;
        b=mDueErS7fCvj+BzPc/5eNkNT+zeORZ7f2lNyQtrLJvbs5laASZ3ozIMdwlnOUEKGlI
         eSg8kW6TBX+zukr3y5ZLe3moTfiZaLtBQaaEq2GhCzZ6qSnzoWlVXA5uVBwFKQF7+6Is
         8wDSzfh827iNI+POemVQNGmpgVtkyKgvvXHa7C3iF2FZEblFMVR8AZrQ5K6TdEZfQikB
         zzW4cdPdPjONvt4yJ5zKX0R7aVrxrvSoG3iMccJLavbrgqfh8M6vcrgKmUKA7VEXx1By
         zosJiwrJA0ZzIXaRVabMvg+1652X6UIG/lR0qPweoUs5C8tRUbkUUq3qSnZ+fk2QCgZ3
         QozA==
X-Gm-Message-State: AOJu0Yyxfto4NTN1X3fmf72H/yxyT+0Merqk6BtKYsDSNI9cnHJYoLFf
	cSJF2x553XFpMrggIZnMiR0lHG6tdIy0AjwD8U0KmL3jUvpKtHzbvZtNpW6WdCByacJUFDDVEqa
	Go4qd
X-Gm-Gg: ASbGncswYrZhkypBq5YARqBCCGGyDzfIUuAQ7lNE5Pq0rLxU55Gfb62ghYjyG6o7aVU
	wUB0cYCV8plD3Oq5UA0zggXgRTdi3TpTntwvncgdaGGmd2qDZwKWbn7ML1PFz4HyQ9nxmJvO/Zi
	g6WAqIFvHYhsq3yCD7b0M7BH0IKohCWBv7FNIUQpTNilmzN8vSp/qt2PCbAQA1Wy4gsLzRi82ps
	lKuEJYCX9jMrOjduFl4GEayyOUbFiFqjfHl5bJl5j+AVhP2Y0pX7cTV0l/qgpzoCwuhsoccyVrJ
	Q7Nl64ggfBta8smlwwcx0NzzbRfhElOW2SMDhecYKonxu1W36fqeauS+OiQUVfjE45y45RgnCV/
	dc06wkobgiCGaxwlphlDCmAIkK4h1Cd/vfBQDOENI9qh61VPcPQQDSmlW1LW60qAKp74uzWu8I9
	yq
X-Google-Smtp-Source: AGHT+IHTPdvkdqiingcttMHnONW3rnCPS5tXm+h92NjhcsiE/1b+QXDmamwq2kjCCF9UEwm/bL1scQ==
X-Received: by 2002:a05:6000:2910:b0:3ce:f0a5:d598 with SMTP id ffacd0b85a97d-3cef0a5daa0mr3799262f8f.10.1756484233640;
        Fri, 29 Aug 2025 09:17:13 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 0/2] x86/apic: Drop vestigial pieces (Intel VFM cleanup)
Date: Fri, 29 Aug 2025 17:17:08 +0100
Message-Id: <20250829161710.1056772-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

Found while doing the Intel VFM cleanup.  This diffstat seems preforable to
simply dropping the x86_ prefixes on the field name.

Andrew Cooper (2):
  x86/apic: Get rid of get_physical_broadcast()
  x86/apic: Drop sync_Arb_IDs()

 xen/arch/x86/apic.c             | 40 ---------------------------------
 xen/arch/x86/include/asm/apic.h |  3 ---
 xen/arch/x86/io_apic.c          | 18 +++++++--------
 3 files changed, 9 insertions(+), 52 deletions(-)

-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 29 16:17:17 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 16:17:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101819.1454749 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us1mv-0006nq-5s; Fri, 29 Aug 2025 16:17:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101819.1454749; Fri, 29 Aug 2025 16: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 1us1mv-0006n4-08; Fri, 29 Aug 2025 16:17:17 +0000
Received: by outflank-mailman (input) for mailman id 1101819;
 Fri, 29 Aug 2025 16:17:16 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=b4pU=3J=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1us1mu-0006FV-Ev
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 16:17:16 +0000
Received: from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com
 [2a00:1450:4864:20::42e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a0dfa72d-84f3-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 18:17:16 +0200 (CEST)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-3d17731ac0fso163252f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 09:17:16 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3d0a7691340sm2973328f8f.39.2025.08.29.09.17.14
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 29 Aug 2025 09:17: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>
X-Inumbo-ID: a0dfa72d-84f3-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756484235; x=1757089035; 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=xypB0QaWO3EyRJnuNNKYcPZslwzFz81Bl9dW+OTBh3w=;
        b=RN4WntICOsvs/G1Zeol/YZQDMb+feEF3WNUbzNft1UVVuuyr/h1yCjxpDpvXHKNU7B
         1AQ/GpsGgqJGHlsvW3JNC8zBm+FNq9vitdkm4WqfQCotDqhX7yDlOPsh3GwaweLtyLOv
         xTwrrLSwTID+bhXKgbbz7xVkAQE5aNeQldA5c=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756484235; x=1757089035;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=xypB0QaWO3EyRJnuNNKYcPZslwzFz81Bl9dW+OTBh3w=;
        b=ltSR7MoM3LZMVQy21+h9LroQ6OCgpQonbORswJFda5eAS4B7zlhWyex+R5ns3HK+Pr
         6CZlCilhSvovnIS10MR4OpJGk02FpBHTQVLb3HZ86PGXJCjRw1C6kTDLa8NnzxfzlWdx
         qdkA07gH2QKP2Kai4FbHFsbHh8FT68KzEUWZdtwUAylAu2lJ3yXso6HuybmJU1WIy6qj
         BE3qOLyGrCo2AnMZLPdmL9gvSyzA1/04zJOsDG4AMwo+Ulrg0Z3R5hKAjhng8Fd71UUq
         TROjzfJiZRUtO6yDkqphAKEKKa4KR63M+OeX4Wp1UJSj6DmpplD/4p1xEgyygoNg3cQE
         Dp0A==
X-Gm-Message-State: AOJu0YxrMGHh6tVpZx81OL/FqjfPpLjMrZz+iPI/OUC6uZ/ef4zXNFPP
	LTs4iVsuNpvPBlT0G1ER88de9SW99J3jL4c6E2fcn77CPUzUqv+jmmLYaYpyv7jgbSaoWvknHYs
	vgU6Y
X-Gm-Gg: ASbGncvKK2ADOWpm52e2/HW0J/BcGJTPCT4oO/P7etq6GBCpC5VuebSXgoeOeV/12cV
	aVJlw9x6rJSOGTXai2UTMMx9WUOiFEIO0MabzL/jB6MSu8E6aJMfidWn/8uP7pwla721kfzzqwu
	EQrkN33uwqBAvk2rnnbQF93YnRtovzMVHhI1Uyi8b1Ru095HCGa6klqKM0/Ewl7SuT6DZYZhWrh
	MvbKdm9U2G2bkkaAULzcBkxeo+at2Z7F/oF/cD7Ieen9/i4PTC068aRH1jz1zTPGBA4yctBCXzT
	LmCAX+2iSVcEZ1R3zTA1ltFDUAx/T/Mg8Lt5CY2jSazvA/Y4fIzrCTI+ETSUtoGoFcwxe3nzUYB
	u6hIBvM7p5h/S4rqPVMq7qdMWa7kVHm4B3hjrHHZaDGt5yQdCyQb3tMla8ioN8VxIgwYKmy5G2e
	Jx
X-Google-Smtp-Source: AGHT+IHmAm+14XR15ZHgzCO/nodXWPgrcrxMGvgH0v5HPDtt591SMA3JKPerKkQV4vkAKJngNG+V9w==
X-Received: by 2002:a5d:5f4b:0:b0:3d0:cd3e:7ad5 with SMTP id ffacd0b85a97d-3d0cd3e8402mr1759230f8f.32.1756484235117;
        Fri, 29 Aug 2025 09:17:15 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 2/2] x86/apic: Drop sync_Arb_IDs()
Date: Fri, 29 Aug 2025 17:17:10 +0100
Message-Id: <20250829161710.1056772-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250829161710.1056772-1-andrew.cooper3@citrix.com>
References: <20250829161710.1056772-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

It is not obvious at first glance, but this is dead logic.

On Intel, xAPIC (which is what modern_apic() is really checking for) predates
64bit support, while the Family 0xf check on AMD is the K8 processor.

Simply drop the logic, rather than trying to adjust vendor/family logic.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

  add/remove: 0/1 grow/shrink: 0/1 up/down: 0/-166 (-166)
  Function                                     old     new   delta
  setup_IO_APIC                               2992    2987      -5
  sync_Arb_IDs                                 161       -    -161
---
 xen/arch/x86/apic.c             | 32 --------------------------------
 xen/arch/x86/include/asm/apic.h |  1 -
 xen/arch/x86/io_apic.c          |  2 +-
 3 files changed, 1 insertion(+), 34 deletions(-)

diff --git a/xen/arch/x86/apic.c b/xen/arch/x86/apic.c
index 70636b0bb585..774771860002 100644
--- a/xen/arch/x86/apic.c
+++ b/xen/arch/x86/apic.c
@@ -91,23 +91,6 @@ static enum apic_mode apic_boot_mode = APIC_MODE_INVALID;
 bool __read_mostly x2apic_enabled;
 bool __read_mostly directed_eoi_enabled;
 
-static int modern_apic(void)
-{
-    unsigned int lvr, version;
-    /* AMD systems use old APIC versions, so check the CPU */
-    if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD &&
-        boot_cpu_data.x86 >= 0xf)
-        return 1;
-
-    /* Hygon systems use modern APIC */
-    if (boot_cpu_data.x86_vendor == X86_VENDOR_HYGON)
-        return 1;
-
-    lvr = apic_read(APIC_LVR);
-    version = GET_APIC_VERSION(lvr);
-    return version >= 0x14;
-}
-
 /*
  * 'what should we do if we get a hw irq event on an illegal vector'.
  * each architecture has to answer this themselves.
@@ -396,21 +379,6 @@ int __init verify_local_APIC(void)
     return 1;
 }
 
-void __init sync_Arb_IDs(void)
-{
-    /* Unsupported on P4 - see Intel Dev. Manual Vol. 3, Ch. 8.6.1
-       And not needed on AMD */
-    if (modern_apic())
-        return;
-    /*
-     * Wait for idle.
-     */
-    apic_wait_icr_idle();
-
-    apic_printk(APIC_DEBUG, "Synchronizing Arb IDs.\n");
-    apic_write(APIC_ICR, APIC_DEST_ALLINC | APIC_INT_LEVELTRIG | APIC_DM_INIT);
-}
-
 /*
  * An initial setup of the virtual wire mode.
  */
diff --git a/xen/arch/x86/include/asm/apic.h b/xen/arch/x86/include/asm/apic.h
index d22854953689..918f1cee3567 100644
--- a/xen/arch/x86/include/asm/apic.h
+++ b/xen/arch/x86/include/asm/apic.h
@@ -166,7 +166,6 @@ extern void disconnect_bsp_APIC (int virt_wire_setup);
 extern void disable_local_APIC (void);
 extern int verify_local_APIC (void);
 extern void cache_APIC_registers (void);
-extern void sync_Arb_IDs (void);
 extern void init_bsp_APIC (void);
 extern void setup_local_APIC(bool bsp);
 extern void init_apic_mappings (void);
diff --git a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c
index 42a9b653d397..17e6827f4bb3 100644
--- a/xen/arch/x86/io_apic.c
+++ b/xen/arch/x86/io_apic.c
@@ -2163,7 +2163,7 @@ void __init setup_IO_APIC(void)
      */
     if (!acpi_ioapic)
         setup_ioapic_ids_from_mpc();
-    sync_Arb_IDs();
+
     setup_IO_APIC_irqs();
     init_IO_APIC_traps();
     check_timer();
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 29 16:17:18 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 16:17:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101820.1454763 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us1mw-0007Dt-BO; Fri, 29 Aug 2025 16:17:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101820.1454763; Fri, 29 Aug 2025 16:17: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 1us1mw-0007Cy-7f; Fri, 29 Aug 2025 16:17:18 +0000
Received: by outflank-mailman (input) for mailman id 1101820;
 Fri, 29 Aug 2025 16:17:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=b4pU=3J=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1us1mv-0006Z8-9m
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 16:17:17 +0000
Received: from mail-wr1-x42b.google.com (mail-wr1-x42b.google.com
 [2a00:1450:4864:20::42b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a07cdd40-84f3-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 18:17:15 +0200 (CEST)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-3ce772ce0dbso1302517f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 09:17:15 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3d0a7691340sm2973328f8f.39.2025.08.29.09.17.13
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 29 Aug 2025 09:17: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>
X-Inumbo-ID: a07cdd40-84f3-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756484234; x=1757089034; 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=HF/T7+4Ls9F6d44sa/t+0TCDlA7JApHmbmQIrgANsEw=;
        b=D9LnL7ULRBfQMINODDDXcIJdHZIosy8ennavZQAG2NvI8E7OeRYzBKdZpw0x4XPPmk
         kLb+vAOP+vl3qfx61uecPSvHo5KEnR9h4Yyj0WVoKxP1tbMVBmHk9ufXSA2Fzotfgj6V
         GqTP+/inVGf4wkFD2iB5iU7JVIMQ7CmeK3qEE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756484234; x=1757089034;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=HF/T7+4Ls9F6d44sa/t+0TCDlA7JApHmbmQIrgANsEw=;
        b=k1r6MpspBSQgNHKInZGrXgVU6feNNM5EZ628dJuhbOZ/xNdjA6PkTXMS0PMvW+Rqyg
         QoU4avgmRfE8G9Qo598Shbe5KyRcTZOwvDQiqNdOkvDIR1lyfZh1bBQcZz582K+Fpzrr
         okk/KpUQ4583Bc665gJtT6cTZyBN9yAkB9ZFAXFEIzdFhPlZ8T+2vYQU0BufQYwM9YKJ
         k90K5/qHoRh7NNkRXzOTxRBCs970WeWXTA6uk8hlMlueTyLPxuuFATXx4jzLb3Jas7pM
         CY9rzNSG8c7c9dUv9fOmPCHXnGRpLqX2iEAeLs13qHWmUEjtIGwACJznjLtthC4OVQdZ
         nZfw==
X-Gm-Message-State: AOJu0YxJd/8hrKAHn+55aO4FtDtj4FTj1yk2e9fuRfQF0dzzhD0yi9eW
	Qk/+sQuDmfFg1WWAkEAxBgFkhe/WLme4NNo3650nwv7QUBwQFH3i2bB3hJH/DeBvPu4ESPLfjaw
	6x4bt
X-Gm-Gg: ASbGncsYqQEJ/rlxU3p3pqkA6O7xt6cufmDGMJeds+HP9HAZhmlz8wkppL7KWNbxvMw
	DVPDoKqCs1tydqDf/LzOjqYkQKtgJVsoaeB0xhKezubdKpxMq6XzteD5B0XERgXDOhcq8sRxczG
	k+4V1vdsJcDbaRTsbh3bIWU/E5dy48QVITy3TIVLnnqgJgBPgNVPazenIMmQCj4NoueAlunk1e0
	vAy2xqra8ZlTu2+H46zRLKWljvAipHALs3xdH5nM9GEjF6ONa4GvpYSA/kv+ALhOMn1h1YjVEH1
	w/ijoOnGkh03HE6TfcOqRWjEP0odFi+49lUBFEjqqL6mGcVz04qJGiV1SUS609Pipr6TwnoVu1p
	syThzIVF5gVRpwPM76T6v/f5Alb0LtwA9ufS4U5rkmRO7iL7Fy0HhoHuc5D5ve8UAXZVptAa4F0
	h0
X-Google-Smtp-Source: AGHT+IF9xRJfxl753+olKdRsofxIAWst2inT+AZXQPO1seRioepAvcNi36LHwQq0fGvYrHotlLjlfw==
X-Received: by 2002:a5d:5f8d:0:b0:3c8:89e9:6ab3 with SMTP id ffacd0b85a97d-3c889e96d40mr17411778f8f.46.1756484234445;
        Fri, 29 Aug 2025 09:17:14 -0700 (PDT)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH 1/2] x86/apic: Get rid of get_physical_broadcast()
Date: Fri, 29 Aug 2025 17:17:09 +0100
Message-Id: <20250829161710.1056772-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250829161710.1056772-1-andrew.cooper3@citrix.com>
References: <20250829161710.1056772-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This is a port of Linux commit 517234446c1a ("x86/apic: Get rid of
get_physical_broadcast()") to Xen.  Thomas Gleixner notes:

  There is no point for this function. The only case where this is used is
  when there is no XAPIC available, which means the broadcast address is 0xF.

In Linux, users of get_physical_broadcast() have already been hidden behind
CONFIG_X86_32 suggesting we can drop all of this, but that's a task for some
other time.

In Xen as with Linux, setup_ioapic_ids_from_mpc() and io_apic_get_unique_id()
are only called in pre-xAPIC cases, so can use a broadcast ID of 0xf.  The
only other user is __print_IO_APIC() for diagnostics, which can simply drop
the check.

No functional change.

Link: https://lore.kernel.org/r/20240212154639.057209154@linutronix.de
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>

  add/remove: 0/1 grow/shrink: 0/3 up/down: 0/-165 (-165)
  Function                                     old     new   delta
  __print_IO_APIC                              980     975      -5
  setup_IO_APIC                               3018    2992     -26
  io_apic_get_unique_id                        719     686     -33
  get_physical_broadcast                       101       -    -101
---
 xen/arch/x86/apic.c             |  8 --------
 xen/arch/x86/include/asm/apic.h |  2 --
 xen/arch/x86/io_apic.c          | 16 ++++++++--------
 3 files changed, 8 insertions(+), 18 deletions(-)

diff --git a/xen/arch/x86/apic.c b/xen/arch/x86/apic.c
index e3a2b84f1aae..70636b0bb585 100644
--- a/xen/arch/x86/apic.c
+++ b/xen/arch/x86/apic.c
@@ -133,14 +133,6 @@ static bool __read_mostly using_apic_timer;
 
 static bool __read_mostly enabled_via_apicbase;
 
-int get_physical_broadcast(void)
-{
-    if (modern_apic())
-        return 0xff;
-    else
-        return 0xf;
-}
-
 int get_maxlvt(void)
 {
     unsigned int v = apic_read(APIC_LVR);
diff --git a/xen/arch/x86/include/asm/apic.h b/xen/arch/x86/include/asm/apic.h
index d8eda6df6d86..d22854953689 100644
--- a/xen/arch/x86/include/asm/apic.h
+++ b/xen/arch/x86/include/asm/apic.h
@@ -153,8 +153,6 @@ static inline u32 get_apic_id(void)
 
 void apic_wait_icr_idle(void);
 
-int get_physical_broadcast(void);
-
 static inline void ack_APIC_irq(void)
 {
 	/* Docs say use 0 for future compatibility */
diff --git a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c
index 1816e1c0b9f4..42a9b653d397 100644
--- a/xen/arch/x86/io_apic.c
+++ b/xen/arch/x86/io_apic.c
@@ -1217,8 +1217,6 @@ static void /*__init*/ __print_IO_APIC(bool boot)
 	printk(KERN_DEBUG ".......    : physical APIC id: %02X\n", reg_00.bits.ID);
 	printk(KERN_DEBUG ".......    : Delivery Type: %X\n", reg_00.bits.delivery_type);
 	printk(KERN_DEBUG ".......    : LTS          : %X\n", reg_00.bits.LTS);
-	if (reg_00.bits.ID >= get_physical_broadcast())
-            UNEXPECTED_IO_APIC();
 	if (reg_00.bits.__reserved_1 || reg_00.bits.__reserved_2)
             UNEXPECTED_IO_APIC();
 
@@ -1475,6 +1473,7 @@ static void __init setup_ioapic_ids_from_mpc(void)
     int i;
     unsigned char old_id;
     unsigned long flags;
+    const uint32_t broadcast_id = 0xf;
 
     /*
      * Don't check I/O APIC IDs for xAPIC systems. They have
@@ -1504,7 +1503,7 @@ static void __init setup_ioapic_ids_from_mpc(void)
 		
         old_id = mp_ioapics[apic].mpc_apicid;
 
-        if (mp_ioapics[apic].mpc_apicid >= get_physical_broadcast()) {
+        if (mp_ioapics[apic].mpc_apicid >= broadcast_id) {
             printk(KERN_ERR "BIOS bug, IO-APIC#%d ID is %d in the MPC table!...\n",
                    apic, mp_ioapics[apic].mpc_apicid);
             printk(KERN_ERR "... fixing up to %d. (tell your hw vendor)\n",
@@ -1521,10 +1520,10 @@ static void __init setup_ioapic_ids_from_mpc(void)
         {
             printk(KERN_ERR "BIOS bug, IO-APIC#%d ID %d is already used!...\n",
                    apic, mp_ioapics[apic].mpc_apicid);
-            for (i = 0; i < get_physical_broadcast(); i++)
+            for (i = 0; i < broadcast_id; i++)
                 if (!physid_isset(i, phys_id_present_map))
                     break;
-            if (i >= get_physical_broadcast())
+            if (i >= broadcast_id)
                 panic("Max APIC ID exceeded\n");
             printk(KERN_ERR "... fixing up to %d. (tell your hw vendor)\n",
                    i);
@@ -2223,6 +2222,7 @@ int __init io_apic_get_unique_id (int ioapic, int apic_id)
     static physid_mask_t __initdata apic_id_map = PHYSID_MASK_NONE;
     unsigned long flags;
     int i = 0;
+    const uint32_t broadcast_id = 0xf;
 
     /*
      * The P4 platform supports up to 256 APIC IDs on two separate APIC 
@@ -2240,7 +2240,7 @@ int __init io_apic_get_unique_id (int ioapic, int apic_id)
     reg_00.raw = io_apic_read(ioapic, 0);
     spin_unlock_irqrestore(&ioapic_lock, flags);
 
-    if (apic_id >= get_physical_broadcast()) {
+    if (apic_id >= broadcast_id) {
         printk(KERN_WARNING "IOAPIC[%d]: Invalid apic_id %d, trying "
                "%d\n", ioapic, apic_id, reg_00.bits.ID);
         apic_id = reg_00.bits.ID;
@@ -2253,12 +2253,12 @@ int __init io_apic_get_unique_id (int ioapic, int apic_id)
     if ( physid_isset(apic_id, apic_id_map) )
     {
 
-        for (i = 0; i < get_physical_broadcast(); i++) {
+        for (i = 0; i < broadcast_id; i++) {
             if ( !physid_isset(i, apic_id_map) )
                 break;
         }
 
-        if (i == get_physical_broadcast())
+        if (i == broadcast_id)
             panic("Max apic_id exceeded\n");
 
         printk(KERN_WARNING "IOAPIC[%d]: apic_id %d already used, "
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 29 16:26:40 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 16:26:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101858.1454774 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us1vu-0001ip-6N; Fri, 29 Aug 2025 16:26:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101858.1454774; Fri, 29 Aug 2025 16:26: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 1us1vu-0001ii-2C; Fri, 29 Aug 2025 16:26:34 +0000
Received: by outflank-mailman (input) for mailman id 1101858;
 Fri, 29 Aug 2025 16:26:33 +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 1us1vt-0001ic-7E
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 16:26:33 +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 1us1vs-00Ch8z-2z
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 16:26:33 +0000
Received: from mail-vk1-f181.google.com ([209.85.221.181])
 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 1us1vt-007nIV-0I
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 16:26:33 +0000
Received: by mail-vk1-f181.google.com with SMTP id
 71dfb90a1353d-5432dfa5e8eso1679582e0c.0
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 09:26: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>
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=ZQJcuJVbvc5yynz4tPhTCxCdUqklamRgf1ulOy6FLZc=; b=GpopGPS
	BiC4LtiFl8nNgHpo3p58h2UKV+N289UY48OMkegs1JgBD8WMvpKEnNRJ4qeYj5mZYSWi7BN/dHilh
	BUelWH6eBUZ2ASgXUTD97+zOxeqdk52uSFt7kzvGg8TAy98hpzIcM7HUrUow37bbiEXvBvyhH6NKT
	+IRPNNq3DE=;
X-Gm-Message-State: AOJu0YyCnJSi9igx8J65uaZBEgSy8mViptCTHaqOXfXjswUlFt3SiFkS
	jxFhLgRjwf87zbA3zZ43g3wMk66VRy71yFtLM2q0pPtZ4WZj3BuCIJNIcfP3artmQ/leQSJMMTy
	cWkv0fs/jaAxTlV8/PfA6U8KSEF9VkDQ=
X-Google-Smtp-Source: AGHT+IH6Y1IuhKKBT4+m2iDEW2mxh+gaILIdayjHtiZsr1gW9yaQuU0oNnO1wtNvpMBneMiOkVEp5QkczrDGK97d53I=
X-Received: by 2002:a05:6122:4d0e:b0:541:5bea:f4ab with SMTP id
 71dfb90a1353d-5415beafb4amr7221693e0c.10.1756484792669; Fri, 29 Aug 2025
 09:26:32 -0700 (PDT)
MIME-Version: 1.0
From: Cody Zuschlag <cody.zuschlag@xenproject.org>
Date: Fri, 29 Aug 2025 18:26:21 +0200
X-Gmail-Original-Message-ID: <CAJbE=Kz3UNoqEvc2izJX4uxhdQYe6Z_tAGeUB_XzZZTLDL57XA@mail.gmail.com>
X-Gm-Features: Ac12FXzcm7tK_CcO_yq0mlhHn-EqZHnpv5d2Nxj9gKrQZL9C_qZ5bnzwXfFj0Pw
Message-ID: <CAJbE=Kz3UNoqEvc2izJX4uxhdQYe6Z_tAGeUB_XzZZTLDL57XA@mail.gmail.com>
Subject: [ANNOUNCE] September Community Call
To: xen-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="0000000000001edbf0063d837c47"

--0000000000001edbf0063d837c47
Content-Type: text/plain; charset="UTF-8"

Hi everyone,

Don't forget that our September community call is scheduled for Thursday
September 4 @ 15:00 UTC.

I'll send out a proposed agenda at the beginning of the week, but I wanted
to send out a friendly reminder before the weekend.

I'm looking forward to seeing you on Thursday!

Have a great weekend,

Cody Zuschlag
Xen Project - Community Manager

--0000000000001edbf0063d837c47
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Hi everyone,<br clear=3D"all"></div><div><br></div><d=
iv>Don&#39;t forget that our September community=C2=A0call is scheduled for=
 Thursday September 4 @ 15:00 UTC.</div><div><br></div><div>I&#39;ll send o=
ut a proposed agenda at the beginning=C2=A0of the week, but I wanted to sen=
d out a friendly reminder before the weekend.</div><div><br></div><div>I&#3=
9;m looking forward to seeing you on Thursday!</div><div><br></div><div>Hav=
e a great weekend,</div><div><div dir=3D"ltr" class=3D"gmail_signature" dat=
a-smartmail=3D"gmail_signature"><div dir=3D"ltr"><img src=3D"https://ci3.go=
ogleusercontent.com/mail-sig/AIorK4x5nkRDCOFJDJAv9aMXdZ0mghItsp3D36JrwBCQti=
tBSW_0NeDS6mBmJ2F4vZVE2oBOqnY6IaJUrl12"><br><div>Cody Zuschlag</div><div>Xe=
n Project - Community Manager</div></div></div></div></div>

--0000000000001edbf0063d837c47--


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 16:27:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 16:27:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101865.1454783 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us1wU-0002Ez-Dg; Fri, 29 Aug 2025 16:27:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101865.1454783; Fri, 29 Aug 2025 16: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 1us1wU-0002Es-A7; Fri, 29 Aug 2025 16:27:10 +0000
Received: by outflank-mailman (input) for mailman id 1101865;
 Fri, 29 Aug 2025 16:27:08 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=sr3h=3J=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1us1wS-00026N-3a
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 16:27:08 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 012b7ca1-84f5-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 18:27:07 +0200 (CEST)
Received: from DU5PR03MB10441.eurprd03.prod.outlook.com (2603:10a6:10:516::14)
 by PAXPR03MB8166.eurprd03.prod.outlook.com (2603:10a6:102:2bc::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.13; Fri, 29 Aug
 2025 16:27:01 +0000
Received: from DU5PR03MB10441.eurprd03.prod.outlook.com
 ([fe80::eeb8:470:6260:e5f4]) by DU5PR03MB10441.eurprd03.prod.outlook.com
 ([fe80::eeb8:470:6260:e5f4%7]) with mapi id 15.20.9073.021; Fri, 29 Aug 2025
 16:27: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>
X-Inumbo-ID: 012b7ca1-84f5-11f0-8adc-4578a1afcccb
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=LO1ijDHKvoEucp1BBhlXuaVXMv0WavM2JFmPu8nns2iyJDsKQhh+ld7GC1/pdfN/bR0avxIsU4r2y6kAmPb77elCEskqf837v/+w5+btmDgaIi2eONa6xKSYvh22Y/Mh3DPm7pIfQJSCUyCFKAgCvbjesW6JHBi5GFH+mXuCxb3GNlTbHEC1fOaM69i9huuZEUcr9FsrhFiMaUxEFsDatZncfn1hbHDavwRAryQkafv1x3xIT51mqS6QgGdDXvmQmFHqAa3oQI4Tf0zGsIDNOuK/YI5EUk6Tcdyh2ZrraqqSc4w2GByqTCt2ZgYYc4cHUQqUJko0J+7l9Awxad3z0A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=FxhC10AQu/OtasGST8qhixbboSFy9XLmn2hJmnJBc00=;
 b=fiaZA4WsOrp14N0HUuKi1DeKvnEN22pnlZ0nc7Y0qvWk7LXDQt8FRJFk/t+cfkq9hthyJ8opjRTg7OySnY/gSybx/lMjcF0zbN2hWTYEgL6zcFBnOJtCh71AZGMwvomlEDrtTtXnwQsRzj46YyFqX6dzaeH6zCJtPBX44fh9pz1eUva0gS145lhMRtQ6oc47Fz7OtYpbAGWmtTE1vCu2CIni7AC1fGL9gxZLVC8rRVAYbQE2dzDispAxbKMA6vq/XVGFXurPQKmLkb5axo8uATRYcz4lakoGXXkXtd7Wr62Iipzgxnt5jQsPHAYj0gDIPo02OTavUt6sPDTpMaZJbQ==
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=FxhC10AQu/OtasGST8qhixbboSFy9XLmn2hJmnJBc00=;
 b=jEn9SzcazpCMc9GPcKWKzph2Z4gcPWywaC/rvC/92IYPdG426UVthcNF5wiLMOcEgmUvcljGzDcyqNxWFsyAToEyRVxtSitTNk5oYz1aplSVbMN9QgNnvwjC1dt4zpN0ImylyEL6xJPqYoe1jtKNOdS25xse0RSvlPYs5w+e+7/r7yz1Uihvd/fPtISYbSqd+/djBsQ8+nr5M9tkTy2f0/xzqP38pXEJS2cr6CjvruTZwI2yXA46laChSvuZrHodwAH50aKc1BemdldZaF7GfxbTHhBQRu9j9mRt33NCEDdRIdWr8XIH2tfrlsIimWoN1tFMXFQzXXAJdk67FgdLtw==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Milan Djokic <milan_djokic@epam.com>
CC: Julien Grall <julien@xen.org>, Julien Grall <julien.grall.oss@gmail.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Bertrand
 Marquis <bertrand.marquis@arm.com>, Rahul Singh <rahul.singh@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>, Michal Orzel
	<michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Nick Rosbrook <enr0n@ubuntu.com>, George Dunlap
	<gwd@xenproject.org>, Juergen Gross <jgross@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>
Subject: Re: [PATCH 00/20] Add SMMUv3 Stage 1 Support for XEN guests
Thread-Topic: [PATCH 00/20] Add SMMUv3 Stage 1 Support for XEN guests
Thread-Index: AQHcB7wdmg15F24Gc0ClRsxpCVedRA==
Date: Fri, 29 Aug 2025 16:27:00 +0000
Message-ID: <875xe6ytyk.fsf@epam.com>
References: <cover.1754580687.git.milan_djokic@epam.com>
	<CAJ=z9a1eM6M+Gagond9TiFtF7c7EEQKOKHANcvDWDhW_3JzqOA@mail.gmail.com>
	<12ba4388-ee23-4e17-910f-9702271865ad@epam.com>
	<b1f79b84-d0c4-4807-87a7-1cf94e58ecee@xen.org>
	<a5943713-85fa-48ad-86fe-5698604ed8c9@epam.com>	<87v7m93bo0.fsf@epam.com>
	<6c80a929-8139-4461-b11c-e6ac67c3d2e4@epam.com>
In-Reply-To: <6c80a929-8139-4461-b11c-e6ac67c3d2e4@epam.com> (Milan Djokic's
	message of "Thu, 28 Aug 2025 13:59:03 +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: DU5PR03MB10441:EE_|PAXPR03MB8166:EE_
x-ms-office365-filtering-correlation-id: c7823145-291b-4559-ff66-08dde718e1cf
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|7416014|366016|376014|42112799006|38070700018;
x-microsoft-antispam-message-info:
 =?utf-8?B?S0RmbUk2ejVKVVJ5aUhkSXBIbm9zb1lDTEc3N3NYUFU1Y0xBcmZmTEsydUI0?=
 =?utf-8?B?TUZ6VjJKQksvRHROM25NVlBWSTVXUHE5TkpSN3NSalNrVTh4cEJKN2Iyb0pV?=
 =?utf-8?B?TDB2c3RuNktiSXRzQVErcFZLVlgxU0FUOFUweEFxNkFRK2dYVnhrUlI1ZDBH?=
 =?utf-8?B?R0FnU3hlb2pYeHk0dEtmeUNsVm85R3pRUThyQXFsb24xai9XSXVzVDRIeUZu?=
 =?utf-8?B?QUZ1cW1QMSs5SlVrUU1OeVNpRTYybEVCY0xXU1FqZVZ3UjBqamtpdnViMGQz?=
 =?utf-8?B?alNNaCtqVmJqQnZReGdad3RWTmh2TGZiVFB5elFsOXdPemNDYkg4R08zc0hn?=
 =?utf-8?B?dDh4SXF6WklBOFBJUEJEbThOUjhGWTRrOHBmRXlybWxZVFRVSTd4YnA4eHZ3?=
 =?utf-8?B?cjZJQUhRUVZoWDJHamU5czllTHZKTjJRY3pFQlRBRjU2TjhXL0hON0lVL0hx?=
 =?utf-8?B?R0ZNblE3K1BiZGFYR2dRNGtONFJ0MkUyVWYrclRCYXgwUXVnVjJJNEJ1TzNo?=
 =?utf-8?B?VWdTZC9pRjZGSnd0elNCSzk3aWdQdlptSU5XZHY4OWcyVjhaMlFiTXp2L21C?=
 =?utf-8?B?ek5wSFowM0ZzMVhNVXRPMllZL3J2MUgxMVJUZW5NYlk3L2FSdElPbmpGZE5M?=
 =?utf-8?B?anovL0dRK21oTHlwQis1L1FYMHIzOXkrSnIwV29pcElwU2wvc2tPV2ZQSVBE?=
 =?utf-8?B?b1BDUVluTHQ2bENmRVQ3NXoxWDM3MDhHQUc1VUNya0dmTmNGazJSZnkwVjJz?=
 =?utf-8?B?OU5tOGtMY0MyOUwxMmhnaUdOQXlVa25LbTdWZXFKVktDVVBjc3lTUWtBeU8w?=
 =?utf-8?B?RVhLOHpTWjNnWlVWdHhNNWZOa1gyV3ZaSjlOU3V4WU9wc0NVRXdGNHFUc0xT?=
 =?utf-8?B?cmE1NGNYU2VITHVmZERtcHVyQU9GSjhoZ0xlc3YzVHIwUlo5TnNPeGE4c1RQ?=
 =?utf-8?B?SjRiRTRMYkk3b1ArUEFCbnhjNFd2eVRWalpxQ0YxNDlYQkxYVldzdnBhMFVR?=
 =?utf-8?B?NVZzd1NncUs5aklMd3lONjE5enI1NGIyZFV1Wm1hbGs1KzFDMnBydzczMU9V?=
 =?utf-8?B?M1RjN1lCRTJ0Z1FybUw4RythbUhpSVFWblpPZm9XZWRYdFpraVN0REtqRWdk?=
 =?utf-8?B?dVpJbWUvbTZkbTk2SlVGWEhMOFk4dEVoQW5GYnlLSnFlT1RuU29EbVRHdFRO?=
 =?utf-8?B?eWZENmM4R0pyUy83N3VJZmtVdjQ2ODRCb0NBTEJLakovNjVTTWZqdW1tbG5u?=
 =?utf-8?B?OSt1ODRNbS9Db2xta3RZV1hUN0lSTEs5ZlR6b1N6dG92MHQvckh0aEpsSlBZ?=
 =?utf-8?B?M1JVd09wekxTdXZYZWVEKzdSL2Znak1PdVI1aWliUGlDZG9vNC9qVTFFYWNW?=
 =?utf-8?B?ZjhvbEp1UjN2UEY4TU9BZTYvTnNqZUZzRVNCY2FKa0ZvcFhLa1c5dkNZNjRB?=
 =?utf-8?B?K2xPMThVTm1JZmM2a3FiMUxzRStHOGJLTDQ4MjJzQmtDV2hZMGVJaHpVbjJt?=
 =?utf-8?B?N2ZMU24xMmgrOXNuU3ZDMVQ3bENnOEtPcmV2Tm9ZbTFCcDlueXJNR3dQT0dG?=
 =?utf-8?B?NEZacXdXbEZKaGNhN2RxeUx1a2F0aG8yZnREdVVRbHlyNWs5RmY1Ny9pUnFo?=
 =?utf-8?B?QXBoTWE4bzFEQmFKRTUvSGoyK0VSK3g4SzFHRnNpK0JYalVwMHFmdldTTzND?=
 =?utf-8?B?RlBtWkhoMVlINHBtaFRMV1lQdmd1bkRUaVpLS09TU2lCY2hhdk1tSUpwemlz?=
 =?utf-8?B?bm5RU1VONWpvV3JBV3MvMFdvZi9COEV0NjhTazlJcU16T0pRbXQxaGpMS3Rs?=
 =?utf-8?B?WFRsK1JHUTFvNUl5amdzSm5uSWlGRGtEZlFNSytjdWRkSEFQcmc3bnlCZU9B?=
 =?utf-8?B?R2RZSzlHNm5EVGpscS95cDBWVFJzYzNLWlpDRnk4QTRNMXpTblZRc1hwdUNv?=
 =?utf-8?B?SVNFaVdWaGtaN051UWcvTzEvekZXcDJ6WUFYeWVRbmlheldCeWhYMmpyU0U2?=
 =?utf-8?B?dzAzU0k0VEtRPT0=?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU5PR03MB10441.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(366016)(376014)(42112799006)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?VythZEUxeFd4dGNVdDN4a3ZSYXBaYWovdkRWaExjcHRUUnVBTzMydGhTMzEy?=
 =?utf-8?B?TzVGN1NvblFEQXhMMG1Vc1REM1JlcGdUQXh0bEVzVkNKb1d0RW1hTnY2M3Fs?=
 =?utf-8?B?Q0ZSRUlBbS9hRHg2dXJOTG1Hejg5WEdnMTdUbitTSTlBaDdqYjBSNldaOXBs?=
 =?utf-8?B?RHFyU09IaGpkTXM1MktpVWxYZElkb1Z5Ty9iaEpQSkMySzVzRnk5T25DbVNu?=
 =?utf-8?B?ZFgvQTlrSWttcUlGY3dxL1dPRUVKT084U1hVSDJGbTdiWGJLc3Y0MU5GZlRS?=
 =?utf-8?B?TVhDbGtvR1dXWkpyR0RUak0vS2Vhcjd1UHhkWW5JZXFsMGFNVHFGTTNCSVNE?=
 =?utf-8?B?WUF0c3BGSzUycldOeExEMW5DVGRrWmVGYVdVSWRNMGc5RWpXSTU0NnZ3Ukhl?=
 =?utf-8?B?T0d1cXBWQjhyVEhyeGFMd1BUcEtLc0tFcWZyeHkwdWMvMlMrM3NXVUFuOGh5?=
 =?utf-8?B?cnYwbE4yemd0YlRpcnkzSURabllvdVQxM3M1UmlFb0FnYkZjSm9CL3ZDaGYx?=
 =?utf-8?B?RHhwZmgzU29uYnlkOWc5Q3RXaUd3YkhXSlVNUjdSTVRVWFU3QVlobkhWc01Y?=
 =?utf-8?B?R1hTUWFkSEdMT0FhcmkweFM0bjNkK2huVkl1a2owUkkzSzFwNGFjLzR5TkFQ?=
 =?utf-8?B?THFNeWs5Wk5VbHhiS0lDMm9vRWltWjVtVmJzWXEyV0xFelRLcHNpaHNBRElr?=
 =?utf-8?B?TmVUUGlEa2FpTysxdzNJOHdSSWVxZ1Qwa3VZRytMRHo2NjljYU1IdURlK3Zv?=
 =?utf-8?B?TUtleHNGaGhvWFAyNE1nWkxYQys2QlhRZ1dtRjhHQ1pLUE1ZWmRKQytiY0h4?=
 =?utf-8?B?aUVEVjR6WThpajhzdnV3RXdRMkZCRm02dnorcEIrVnBOdnFURzhnZVVqdUV2?=
 =?utf-8?B?Qzd1aFhaVXpWY09JbUJ3QU5SWStNc1Z1aUtPd0tQNWxYaGlPTTlEKytRLzNm?=
 =?utf-8?B?ZE9LSTBrTlBXWnFPaUNOUHFEMTREV2RvVHErK2NUanFZZjJHSEF4STNRRFVw?=
 =?utf-8?B?TXlTQnE5R21WQTBkUkdxcU93NEgvaU92L2YxZnpKUmhhemJoLzJROVZQaTdT?=
 =?utf-8?B?aEFrZk5zRkxTM0lkYmpudHZtZTJxQ05tOVY4c0Jpd2RDekxkSjNqelJXZHp5?=
 =?utf-8?B?aW0yRWZDMk5pUXp2ajhsa0E5Ry93VGoxWHY2VTA0MHlSYy9GQU1kcFhNSEN3?=
 =?utf-8?B?cHBONWxTUnYvaEZrTVBaV3AzYnp3REtJMmxzN0pOYXI3YWI5YndXNjkwOU5W?=
 =?utf-8?B?SDdHeWFaRUJueFFRVEZ1WktHSmRyNU8ybithY3FqY3orQWk2b1grM01FN0lH?=
 =?utf-8?B?UHpqVHhmWm5jQkNJSzJURWtlVkFBWWx5NjEydUtjUFcrVmY2ZXVFa1ZjbWxn?=
 =?utf-8?B?RjVsaHMzTmZ0NkM0TE9iS05FSllCbEF5ZEFUM3FoZXlyM0hFR2x1ZnJHRE9n?=
 =?utf-8?B?NGdPTE1sUWR4VXRvVno4L2F2cUp4WDNobHU4YVJrQ3JuZ0Z0cmdiaVpmWE9T?=
 =?utf-8?B?bDZHR0p6WWs1VGUvczJqTGxoazFHRXc1TUpvVmlocE1VZTdvbUJaR1M0eVFX?=
 =?utf-8?B?NTArcVJ1TFRrdXY1TWkrbWpNMG42SC9PVXloajdHQXRvZ1o4M29FTkZHQlZp?=
 =?utf-8?B?MVBIckNLWnZKUTNUNEtYS0NvUzdLVnpSRVVxN1FxTEJTQTJieEhtQmc1S21x?=
 =?utf-8?B?SjVoUng1bHFPZ2JFS2dOYUdybGVsTzNTUGJubTliSEQybzhoUDJGcHNTR3BU?=
 =?utf-8?B?Y3JQNFgzbFk1TEVYTVZJR25iUW9EdittaW11WlJwU2I5bFRUZkRhWXlyRGx5?=
 =?utf-8?B?K0NVZXNiRjNmTGFJemhaKzVpMHZPM3lUME5tQTJadUMzWUQrMk5RYTJBc3Ja?=
 =?utf-8?B?cDV3M3NLbHo5cHM0OWJwU2xCcHRYS2tMOVVtS2pHdkNtMnVjK0pVa2dNNVhE?=
 =?utf-8?B?OEJOdUY3eERQV1pJTUlmdnV5SnF0Mi9pZXJUVUl5dW43b3RkbndvUFBvUysr?=
 =?utf-8?B?clJNeENoWW5VQU5nZURhQ2U3SFdhK0hUNFF3WUtWaEJKajNPRFgxL1ZNWWxm?=
 =?utf-8?B?Y2JFZUI1UDJRQ25MMmZlQy9FbTR4cFZvVHVIQW53amV6SnkzUk9NbCtuVGZi?=
 =?utf-8?B?SHpYZEJBeEo3Um9hSFV1MHlMNmZFbHJqU1dRZ0RaeDBkUDhBTnZBNi9icFlY?=
 =?utf-8?B?S3c9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <5EBB235A370D834BBBB60D1B87E1417D@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: DU5PR03MB10441.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c7823145-291b-4559-ff66-08dde718e1cf
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Aug 2025 16:27:00.9753
 (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: 5tem/5RfsP7rE4rnrByzmHLRPL3tkCb7AoOPYym9mXSE24hyC/x7RfKKxI4WQ3+DTBgL7fIXoAPb5jKj7O6rgKCQf2D4DpG2ZedWq6T6ohM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR03MB8166

SGkgTWlsYW4sDQoNClRoYW5rcywgIlNlY3VyaXR5IENvbnNpZGVyYXRpb25zIiBzZWN0aW9ucyBs
b29rcyByZWFsbHkgZ29vZC4gQnV0IEkgaGF2ZQ0KbW9yZSBxdWVzdGlvbnMuDQoNCk1pbGFuIERq
b2tpYyA8bWlsYW5fZGpva2ljQGVwYW0uY29tPiB3cml0ZXM6DQoNCj4gSGVsbG8gSnVsaWVuLCBW
b2xvZHlteXINCj4NCj4gT24gOC8yNy8yNSAwMToyOCwgVm9sb2R5bXlyIEJhYmNodWsgd3JvdGU6
DQo+PiBIaSBNaWxhbiwNCj4+IE1pbGFuIERqb2tpYyA8bWlsYW5fZGpva2ljQGVwYW0uY29tPiB3
cml0ZXM6DQo+PiANCj4+PiBIZWxsbyBKdWxpZW4sDQo+Pj4NCj4+PiBPbiA4LzEzLzI1IDE0OjEx
LCBKdWxpZW4gR3JhbGwgd3JvdGU6DQo+Pj4+IE9uIDEzLzA4LzIwMjUgMTE6MDQsIE1pbGFuIERq
b2tpYyB3cm90ZToNCj4+Pj4+IEhlbGxvIEp1bGllbiwNCj4+Pj4gSGkgTWlsYW4sDQo+Pj4+DQo+
Pj4+Pg0KPj4+Pj4gV2UgaGF2ZSBwcmVwYXJlZCBhIGRlc2lnbiBkb2N1bWVudCBhbmQgaXQgd2ls
bCBiZSBwYXJ0IG9mIHRoZSB1cGRhdGVkDQo+Pj4+PiBwYXRjaCBzZXJpZXMgKGFkZGVkIGluIGRv
Y3MvZGVzaWduKS4gSSdsbCBhbHNvIGV4dGVuZCBjb3ZlciBsZXR0ZXIgd2l0aA0KPj4+Pj4gZGV0
YWlscyBvbiBpbXBsZW1lbnRhdGlvbiBzdHJ1Y3R1cmUgdG8gbWFrZSByZXZpZXcgZWFzaWVyLg0K
Pj4+PiBJIHdvdWxkIHN1Z2dlc3QgdG8ganVzdCBpdGVyYXRlIG9uIHRoZSBkZXNpZ24gZG9jdW1l
bnQgZm9yIG5vdy4NCj4+Pj4NCj4+Pj4+IEZvbGxvd2luZyBpcyB0aGUgZGVzaWduIGRvY3VtZW50
IGNvbnRlbnQgd2hpY2ggd2lsbCBiZSBwcm92aWRlZCBpbg0KPj4+Pj4gdXBkYXRlZCBwYXRjaCBz
ZXJpZXM6DQo+Pj4+Pg0KPj4+Pj4gRGVzaWduIFByb3Bvc2FsOiBBZGQgU01NVXYzIFN0YWdlLTEg
U3VwcG9ydCBmb3IgWEVOIEd1ZXN0cw0KPj4+Pj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPj4+Pj4NCj4+Pj4+IEF1dGhvcjogTWls
YW4gRGpva2ljIDxtaWxhbl9kam9raWNAZXBhbS5jb20+DQo+Pj4+PiBEYXRlOsKgwqAgMjAyNS0w
OC0wNw0KPj4+Pj4gU3RhdHVzOiBEcmFmdA0KPj4+Pj4NCj4+Pj4+IEludHJvZHVjdGlvbg0KPj4+
Pj4gLS0tLS0tLS0tLS0tDQo+Pj4+Pg0KPj4+Pj4gVGhlIFNNTVV2MyBzdXBwb3J0cyB0d28gc3Rh
Z2VzIG9mIHRyYW5zbGF0aW9uLiBFYWNoIHN0YWdlIG9mIHRyYW5zbGF0aW9uDQo+Pj4+PiBjYW4g
YmUgaW5kZXBlbmRlbnRseSBlbmFibGVkLiBBbiBpbmNvbWluZyBhZGRyZXNzIGlzIGxvZ2ljYWxs
eQ0KPj4+Pj4gdHJhbnNsYXRlZCBmcm9tIFZBIHRvIElQQSBpbiBzdGFnZSAxLCB0aGVuIHRoZSBJ
UEEgaXMgaW5wdXQgdG8gc3RhZ2UgMg0KPj4+Pj4gd2hpY2ggdHJhbnNsYXRlcyB0aGUgSVBBIHRv
IHRoZSBvdXRwdXQgUEEuIFN0YWdlIDEgdHJhbnNsYXRpb24gc3VwcG9ydA0KPj4+Pj4gaXMgcmVx
dWlyZWQgdG8gcHJvdmlkZSBpc29sYXRpb24gYmV0d2VlbiBkaWZmZXJlbnQgZGV2aWNlcyB3aXRo
aW4gdGhlIE9TLg0KPj4+Pj4NCj4+Pj4+IFhlbiBhbHJlYWR5IHN1cHBvcnRzIFN0YWdlIDIgdHJh
bnNsYXRpb24gYnV0IHRoZXJlIGlzIG5vIHN1cHBvcnQgZm9yDQo+Pj4+PiBTdGFnZSAxIHRyYW5z
bGF0aW9uLiBUaGlzIGRlc2lnbiBwcm9wb3NhbCBvdXRsaW5lcyB0aGUgaW50cm9kdWN0aW9uIG9m
DQo+Pj4+PiBTdGFnZS0xIFNNTVV2MyBzdXBwb3J0IGluIFhlbiBmb3IgQVJNIGd1ZXN0cy4NCj4+
Pj4+DQo+Pj4+PiBNb3RpdmF0aW9uDQo+Pj4+PiAtLS0tLS0tLS0tDQo+Pj4+Pg0KPj4+Pj4gQVJN
IHN5c3RlbXMgdXRpbGl6aW5nIFNNTVV2MyByZXF1aXJlIFN0YWdlLTEgYWRkcmVzcyB0cmFuc2xh
dGlvbiB0bw0KPj4+Pj4gZW5zdXJlIGNvcnJlY3QgYW5kIHNlY3VyZSBETUEgYmVoYXZpb3IgaW5z
aWRlIGd1ZXN0cy4NCj4+Pj4gQ2FuIHlvdSBjbGFyaWZ5IHdoYXQgeW91IG1lYW4gYnkgImNvcnJl
Y3QiPyBETUEgd291bGQgc3RpbGwgd29yaw0KPj4+PiB3aXRob3V0DQo+Pj4+IHN0YWdlLTEuDQo+
Pj4NCj4+PiBDb3JyZWN0IGluIHRlcm1zIG9mIHdvcmtpbmcgd2l0aCBndWVzdCBtYW5hZ2VkIEkv
TyBzcGFjZS4gSSdsbA0KPj4+IHJlcGhyYXNlIHRoaXMgc3RhdGVtZW50LCBpdCBzZWVtcyBhbWJp
Z3VvdXMuDQo+Pj4NCj4+Pj4+DQo+Pj4+PiBUaGlzIGZlYXR1cmUgZW5hYmxlczoNCj4+Pj4+IC0g
U3RhZ2UtMSB0cmFuc2xhdGlvbiBpbiBndWVzdCBkb21haW4NCj4+Pj4+IC0gU2FmZSBkZXZpY2Ug
cGFzc3Rocm91Z2ggdW5kZXIgc2VjdXJlIG1lbW9yeSB0cmFuc2xhdGlvbg0KPj4+Pj4NCj4+Pj4+
IERlc2lnbiBPdmVydmlldw0KPj4+Pj4gLS0tLS0tLS0tLS0tLS0tDQo+Pj4+Pg0KPj4+Pj4gVGhl
c2UgY2hhbmdlcyBwcm92aWRlIGVtdWxhdGVkIFNNTVV2MyBzdXBwb3J0Og0KPj4+Pj4NCj4+Pj4+
IC0gU01NVXYzIFN0YWdlLTEgVHJhbnNsYXRpb246IHN0YWdlLTEgYW5kIG5lc3RlZCB0cmFuc2xh
dGlvbiBzdXBwb3J0IGluDQo+Pj4+PiAgICDCoCBTTU1VdjMgZHJpdmVyDQo+Pj4+PiAtIHZJT01N
VSBBYnN0cmFjdGlvbjogdmlydHVhbCBJT01NVSBmcmFtZXdvcmsgZm9yIGd1ZXN0IFN0YWdlLTEg
aGFuZGxpbmcNCj4+Pj4gU28gd2hhdCBhcmUgeW91IHBsYW5uaW5nIHRvIGV4cG9zZSB0byBhIGd1
ZXN0PyBJcyBpdCBvbmUgdklPTU1VIHBlcg0KPj4+PiBwSU9NTVU/IE9yIGEgc2luZ2xlIG9uZT8N
Cj4+Pg0KPj4+IFNpbmdsZSB2SU9NTVUgbW9kZWwgaXMgdXNlZCBpbiB0aGlzIGRlc2lnbi4NCj4+
Pg0KPj4+PiBIYXZlIHlvdSBjb25zaWRlcmVkIHRoZSBwcm9zL2NvbnMgZm9yIGJvdGg/DQo+Pj4+
PiAtIFJlZ2lzdGVyL0NvbW1hbmQgRW11bGF0aW9uOiBTTU1VdjMgcmVnaXN0ZXIgZW11bGF0aW9u
IGFuZCBjb21tYW5kDQo+Pj4+PiAgICDCoCBxdWV1ZSBoYW5kbGluZw0KPj4+Pg0KPj4+DQo+Pj4g
VGhhdCdzIGEgcG9pbnQgZm9yIGNvbnNpZGVyYXRpb24uDQo+Pj4gc2luZ2xlIHZJT01NVSBwcmV2
YWlscyBpbiB0ZXJtcyBvZiBsZXNzIGNvbXBsZXggaW1wbGVtZW50YXRpb24gYW5kIGENCj4+PiBz
aW1wbGUgZ3Vlc3QgaW9tbW11IG1vZGVsIC0gc2luZ2xlIHZJT01NVSBub2RlLCBvbmUgaW50ZXJy
dXB0IHBhdGgsDQo+Pj4gZXZlbnQgcXVldWUsIHNpbmdsZSBzZXQgb2YgdHJhcCBoYW5kbGVycyBm
b3IgZW11bGF0aW9uLCBldGMuDQo+Pj4gQ29ucyBmb3IgYSBzaW5nbGUgdklPTU1VIG1vZGVsIGNv
dWxkIGJlIGxlc3MgYWNjdXJhdGUgaHcNCj4+PiByZXByZXNlbnRhdGlvbiBhbmQgYSBwb3RlbnRp
YWwgYm90dGxlbmVjayB3aXRoIG9uZSBlbXVsYXRlZCBxdWV1ZSBhbmQNCj4+PiBpbnRlcnJ1cHQg
cGF0aC4NCj4+PiBPbiB0aGUgb3RoZXIgaGFuZCwgdklPTU1VIHBlciBwSU9NTVUgcHJvdmlkZXMg
bW9yZSBhY2N1cmF0ZSBodw0KPj4+IG1vZGVsaW5nIGFuZCBvZmZlcnMgYmV0dGVyIHNjYWxhYmls
aXR5IGluIGNhc2Ugb2YgbWFueSBJT01NVXMgaW4gdGhlDQo+Pj4gc3lzdGVtLCBidXQgdGhpcyBj
b21lcyB3aXRoIG1vcmUgY29tcGxleCBlbXVsYXRpb24gbG9naWMgYW5kIGRldmljZQ0KPj4+IHRy
ZWUsIGFsc28gaGFuZGxpbmcgbXVsdGlwbGUgdklPTU1VcyBvbiBndWVzdCBzaWRlLg0KPj4+IElN
Tywgc2luZ2xlIHZJT01NVSBtb2RlbCBzZWVtcyBsaWtlIGEgYmV0dGVyIG9wdGlvbiBtb3N0bHkg
YmVjYXVzZQ0KPj4+IGl0J3MgbGVzcyBjb21wbGV4LCBlYXNpZXIgdG8gbWFpbnRhaW4gYW5kIGRl
YnVnLiBPZiBjb3Vyc2UsIHRoaXMNCj4+PiBkZWNpc2lvbiBjYW4gYW5kIHNob3VsZCBiZSBkaXNj
dXNzZWQuDQo+Pj4NCj4+IFdlbGwsIEkgYW0gbm90IHN1cmUgdGhhdCB0aGlzIGlzIHBvc3NpYmxl
LCBiZWNhdXNlIG9mIFN0cmVhbUlEDQo+PiBhbGxvY2F0aW9uLiBUaGUgYmlnZ2VzdCBvZmZlbmRl
ciBpcyBvZiBjb3Vyc2UgUENJLCBhcyBlYWNoIFJvb3QgUENJDQo+PiBicmlkZ2Ugd2lsbCByZXF1
aXJlIG93biBTTU1VIGluc3RhbmNlIHdpdGggb3duIFN0cmVhbUlEIHNwYWNlLiBCdXQgZXZlbg0K
Pj4gd2l0aG91dCBQQ0kgeW91J2xsIG5lZWQgc29tZSBtZWNoYW5pc20gdG8gbWFwIHZTdHJlbUlE
IHRvDQo+PiA8cFNNTVUsIHBTdHJlYW1JRD4sIGJlY2F1c2UgdGhlcmUgd2lsbCBiZSBvdmVybGFw
cyBpbiBTSUQgc3BhY2UuDQo+PiBBY3R1YWxseSwgUENJL3ZQQ0kgd2l0aCB2U01NVSBpcyBpdHMg
b3duIGNhbiBvZiB3b3Jtcy4uLg0KPj4gDQo+Pj4+IEZvciBlYWNoIHBTTU1VLCB3ZSBoYXZlIGEg
c2luZ2xlIGNvbW1hbmQgcXVldWUgdGhhdCB3aWxsIHJlY2VpdmUgY29tbWFuZA0KPj4+PiBmcm9t
IGFsbCB0aGUgZ3Vlc3RzLiBIb3cgZG8geW91IHBsYW4gdG8gcHJldmVudCBhIGd1ZXN0IGhvZ2dp
bmcgdGhlDQo+Pj4+IGNvbW1hbmQgcXVldWU/DQo+Pj4+IEluIGFkZGl0aW9uIHRvIHRoYXQsIEFG
QUlVLCB0aGUgc2l6ZSBvZiB0aGUgdmlydHVhbCBjb21tYW5kIHF1ZXVlIGlzDQo+Pj4+IGZpeGVk
IGJ5IHRoZSBndWVzdCByYXRoZXIgdGhhbiBYZW4uIElmIGEgZ3Vlc3QgaXMgZmlsbGluZyB1cCB0
aGUgcXVldWUNCj4+Pj4gd2l0aCBjb21tYW5kcyBiZWZvcmUgbm90aWZ5aW5nIFhlbiwgaG93IGRv
IHlvdSBwbGFuIHRvIGVuc3VyZSB3ZSBkb24ndA0KPj4+PiBzcGVuZCB0b28gbXVjaCB0aW1lIGlu
IFhlbiAod2hpY2ggaXMgbm90IHByZWVtcHRpYmxlKT8NCj4+Pj4NCj4+Pg0KPj4+IFdlJ2xsIGhh
dmUgdG8gZG8gYSBkZXRhaWxlZCBhbmFseXNpcyBvbiB0aGVzZSBzY2VuYXJpb3MsIHRoZXkgYXJl
IG5vdA0KPj4+IGNvdmVyZWQgYnkgdGhlIGRlc2lnbiAoYXMgd2VsbCBhcyBzb21lIG90aGVycyB3
aGljaCBpcyBjbGVhciBhZnRlcg0KPj4+IHlvdXIgY29tbWVudHMpLiBJJ2xsIGNvbWUgYmFjayB3
aXRoIGFuIHVwZGF0ZWQgZGVzaWduLg0KPj4gSSB0aGluayB0aGF0IGNhbiBiZSBoYW5kbGVkIGFr
aW4gdG8gaHlwZXJjYWxsIGNvbnRpbnVhdGlvbiwgd2hpY2ggaXMNCj4+IHVzZWQgaW4gc2ltaWxh
ciBwbGFjZXMsIGxpa2UgUDJNIGNvZGUNCj4+IFsuLi5dDQo+PiANCj4NCj4gSSBoYXZlIHVwZGF0
ZWQgdklPTU1VIGRlc2lnbiBkb2N1bWVudCB3aXRoIGFkZGl0aW9uYWwgc2VjdXJpdHkgdG9waWNz
DQo+IGNvdmVyZWQgYW5kIHBlcmZvcm1hbmNlIGltcGFjdCByZXN1bHRzLiBBbHNvIGFkZGVkIHNv
bWUgYWRkaXRpb25hbA0KPiBleHBsYW5hdGlvbnMgZm9yIHZJT01NVSBjb21wb25lbnRzIGZvbGxv
d2luZyB5b3VyIGNvbW1lbnRzLg0KPiBVcGRhdGVkIGRvY3VtZW50IGNvbnRlbnQ6DQo+DQo+ID09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+IERlc2lnbiBQ
cm9wb3NhbDogQWRkIFNNTVV2MyBTdGFnZS0xIFN1cHBvcnQgZm9yIFhFTiBHdWVzdHMNCj4gPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4NCj4gOkF1dGhv
cjogICAgIE1pbGFuIERqb2tpYyA8bWlsYW5fZGpva2ljQGVwYW0uY29tPg0KPiA6RGF0ZTogICAg
ICAgMjAyNS0wOC0wNw0KPiA6U3RhdHVzOiAgICAgRHJhZnQNCj4NCj4gSW50cm9kdWN0aW9uDQo+
ID09PT09PT09DQo+DQo+IFRoZSBTTU1VdjMgc3VwcG9ydHMgdHdvIHN0YWdlcyBvZiB0cmFuc2xh
dGlvbi4gRWFjaCBzdGFnZSBvZg0KPiB0cmFuc2xhdGlvbiBjYW4gYmUNCj4gaW5kZXBlbmRlbnRs
eSBlbmFibGVkLiBBbiBpbmNvbWluZyBhZGRyZXNzIGlzIGxvZ2ljYWxseSB0cmFuc2xhdGVkDQo+
IGZyb20gVkEgdG8NCj4gSVBBIGluIHN0YWdlIDEsIHRoZW4gdGhlIElQQSBpcyBpbnB1dCB0byBz
dGFnZSAyIHdoaWNoIHRyYW5zbGF0ZXMgdGhlIElQQSB0bw0KPiB0aGUgb3V0cHV0IFBBLiBTdGFn
ZSAxIHRyYW5zbGF0aW9uIHN1cHBvcnQgaXMgcmVxdWlyZWQgdG8gcHJvdmlkZQ0KPiBpc29sYXRp
b24gYmV0d2VlbiBkaWZmZXJlbnQNCj4gZGV2aWNlcyB3aXRoaW4gT1MuIFhFTiBhbHJlYWR5IHN1
cHBvcnRzIFN0YWdlIDIgdHJhbnNsYXRpb24gYnV0IHRoZXJlIGlzIG5vDQo+IHN1cHBvcnQgZm9y
IFN0YWdlIDEgdHJhbnNsYXRpb24uDQo+IFRoaXMgZGVzaWduIHByb3Bvc2FsIG91dGxpbmVzIHRo
ZSBpbnRyb2R1Y3Rpb24gb2YgU3RhZ2UtMSBTTU1VdjMNCj4gc3VwcG9ydCBpbiBYZW4gZm9yIEFS
TSBndWVzdHMuDQo+DQo+IE1vdGl2YXRpb24NCj4gPT09PT09PT09PQ0KPg0KPiBBUk0gc3lzdGVt
cyB1dGlsaXppbmcgU01NVXYzIHJlcXVpcmUgc3RhZ2UtMSBhZGRyZXNzIHRyYW5zbGF0aW9uIHRv
DQo+IGVuc3VyZSBzZWN1cmUgRE1BIGFuZCBndWVzdCBtYW5hZ2VkIEkvTyBtZW1vcnkgbWFwcGlu
Z3MuDQoNCkl0IGlzIHVuY2xlYXIgZm9yIG15IHdoYXQgeW91IG1lYW4gYnkgImd1ZXN0IG1hbmdl
ZCBJTyBtZW1vcnkgbWFwcGluZ3MiLA0KY291bGQgeW91IHBsZWFzZSBwcm92aWRlIGFuIGV4YW1w
bGU/DQoNCj4gVGhpcyBmZWF0dXJlIGVuYWJsZXM6DQo+DQo+IC0gU3RhZ2UtMSB0cmFuc2xhdGlv
biBpbiBndWVzdCBkb21haW4NCj4gLSBTYWZlIGRldmljZSBwYXNzdGhyb3VnaCB1bmRlciBzZWN1
cmUgbWVtb3J5IHRyYW5zbGF0aW9uDQo+DQoNCkFzIEkgc2VlIGl0LCBBUk0gc3BlY3MgdXNlICJz
ZWN1cmUiIG1vc3RseSB3aGVuIHJlZmVycmluZyB0byBTZWN1cmUgbW9kZQ0KKFMtRUwxLCBTLUVM
MiwgRUwzKSBhbmQgYXNzb2NpYXRlZCBzZWN1cmUgY291bnRlcnBhcnRzIG9mIGFyY2hpdGVjdHVy
YWwNCmRldmljZXMsIGxpa2Ugc2VjdXJlIEdJQywgc2VjdXJlIFRpbWVyLCBldGMuIFNvIEknZCBw
cm9iYWJseSBkb24ndCB1c2UNCnRoaXMgd29yZCBoZXJlIHRvIHJlZHVjZSBjb25mdXNpb24NCg0K
PiBEZXNpZ24gT3ZlcnZpZXcNCj4gPT09PT09PT09PT09PT09DQo+DQo+IFRoZXNlIGNoYW5nZXMg
cHJvdmlkZSBlbXVsYXRlZCBTTU1VdjMgc3VwcG9ydDoNCj4NCj4gLSAqKlNNTVV2MyBTdGFnZS0x
IFRyYW5zbGF0aW9uKio6IHN0YWdlLTEgYW5kIG5lc3RlZCB0cmFuc2xhdGlvbg0KPiAgICAgc3Vw
cG9ydCBpbiBTTU1VdjMgZHJpdmVyLg0KDQoiTmVzdGVkIHRyYW5zbGF0aW9uIiBhcyBpbiAibmVz
dGVkIHZpcnR1YWxpemF0aW9uIj8gT3IgaXMgdGhpcyBzb21ldGhpbmcgZWxzZT8NCg0KPiAtICoq
dklPTU1VIEFic3RyYWN0aW9uKio6IFZpcnR1YWwgSU9NTVUgZnJhbWV3b3JrIGZvciBndWVzdCBz
dGFnZS0xDQo+ICAgICBoYW5kbGluZy4NCg0KSSB0aGluaywgdGhpcyBpcyB0aGUgYmlnIHRvcGlj
LiBZb3Ugc2VlLCBhcGFydCBmcm9tIFNNTVUsIHRoZXJlIGlzDQphdCBsZWFzdCBSZW5lc2FzIElQ
LU1NVSwgd2hpY2ggdXNlcyBjb21wbGV0ZWx5IGRpZmZlcmVudCBBUEkuIEFuZA0KcHJvYmFibHkg
dGhlcmUgYXJlIG90aGVyIElPLU1NVSBpbXBsZW1lbnRhdGlvbnMgcG9zc2libGUuIFJpZ2h0IG5v
dw0KdklPTU1VIGZyYW1ld29yayBoYW5kbGVzIG9ubHkgU01NVSwgd2hpY2ggaXMgb2theSwgYnV0
IHByb2JhYmx5IHdlDQpzaG91bGQgZGVzaWduIGl0IGluIGEgc3VjaCB3YXksIHRoYXQgb3RoZXIg
SU8tTU1VcyB3aWxsIGJlIHN1cHBvcnRlZCBhcw0Kd2VsbC4gTWF5YmUgZXZlbiBJTy1NTVVzIGZv
ciBvdGhlciBhcmNoaXRlY3R1cmVzIChSSVNDIFYgbWF5YmU/KS4NCg0KPiAtICoqUmVnaXN0ZXIv
Q29tbWFuZCBFbXVsYXRpb24qKjogU01NVXYzIHJlZ2lzdGVyIGVtdWxhdGlvbiBhbmQNCj4gICAg
IGNvbW1hbmQgcXVldWUgaGFuZGxpbmcuDQoNCkNvbnRpbnVpbmcgcHJldmlvdXMgcGFyYWdyYXBo
OiB3aGF0IGFib3V0IG90aGVyIElPLU1NVXM/IEZvciBleGFtcGxlLCBpZg0KcGxhdGZvcm0gcHJv
dmlkZXMgb25seSBSZW5lc2FzIElPLU1NVSwgd2lsbCB2SU9NTVUgZnJhbWV3b3JrIHN0aWxsDQpl
bXVsYXRlIFNNTVV2MyByZWdpc3RlcnMgYW5kIHF1ZXVlIGhhbmRsaW5nPw0KDQo+IC0gKipEZXZp
Y2UgVHJlZSBFeHRlbnNpb25zKio6IEFkZHMgYGlvbW11c2AgYW5kIHZpcnR1YWwgU01NVXYzIG5v
ZGVzDQo+ICAgICB0byBkZXZpY2UgdHJlZXMgZm9yIGRvbTAgYW5kIGRvbTBsZXNzIHNjZW5hcmlv
cy4NCj4gLSAqKlJ1bnRpbWUgQ29uZmlndXJhdGlvbioqOiBJbnRyb2R1Y2VzIGEgYHZpb21tdWAg
Ym9vdCBwYXJhbWV0ZXIgZm9yDQo+ICAgICBkeW5hbWljIGVuYWJsZW1lbnQuDQo+DQo+IHZJT01N
VSBpcyBleHBvc2VkIHRvIGd1ZXN0IGFzIGEgc2luZ2xlIGRldmljZSB3aXRoIHByZWRlZmluZWQN
Cj4gY2FwYWJpbGl0aWVzIGFuZCBjb21tYW5kcyBzdXBwb3J0ZWQuIFNpbmdsZSB2SU9NTVUgbW9k
ZWwgYWJzdHJhY3RzIHRoZQ0KPiBkZXRhaWxzIG9mIGFuIGFjdHVhbCBJT01NVSBoYXJkd2FyZSwg
c2ltcGxpZnlpbmcgdXNhZ2UgZnJvbSB0aGUgZ3Vlc3QNCj4gcG9pbnQgb2Ygdmlldy4gR3Vlc3Qg
T1MgaGFuZGxlcyBvbmx5IGEgc2luZ2xlIElPTU1VLCBldmVuIGlmIG11bHRpcGxlDQo+IElPTU1V
IHVuaXRzIGFyZSBhdmFpbGFibGUgb24gdGhlIGhvc3Qgc3lzdGVtLg0KDQpJbiB0aGUgcHJldmlv
dXMgZW1haWwgSSBhc2tlZCBob3cgYXJlIHlvdSBwbGFubmluZyB0byBoYW5kbGUgcG90ZW50aWFs
DQpTSUQgb3ZlcmxhcHMsIGVzcGVjaWFsbHkgaW4gUENJIHVzZSBjYXNlLiBJIHdhbnQgdG8gcmV0
dXJuIHRvIHRoaXMNCnRvcGljLiBJIGFtIG5vdCBzYXlpbmcgdGhhdCB0aGlzIGlzIGltcG9zc2li
bGUsIGJ1dCBJJ2QgbGlrZSB0byBzZWUgdGhpcw0KY292ZXJlZCBpbiB0aGUgZGVzaWduIGRvY3Vt
ZW50Lg0KDQo+DQo+IFNlY3VyaXR5IENvbnNpZGVyYXRpb25zDQo+ID09PT09PT09PT09PT09PT09
PT09PT09DQo+DQo+ICoqdmlvbW11IHNlY3VyaXR5IGJlbmVmaXRzOioqDQo+DQo+IC0gU3RhZ2Ut
MSB0cmFuc2xhdGlvbiBlbnN1cmVzIGd1ZXN0IGRldmljZXMgY2Fubm90IHBlcmZvcm0gdW5hdXRo
b3JpemVkIERNQS4NCj4gLSBFbXVsYXRlZCBJT01NVSByZW1vdmVzIGd1ZXN0IGRlcGVuZGVuY3kg
b24gSU9NTVUgaGFyZHdhcmUgd2hpbGUNCj4gICBtYWludGFpbmluZyBkb21haW5zIGlzb2xhdGlv
bi4NCg0KSSBhbSBub3Qgc3VyZSB0aGF0IEkgZ290IHRoaXMgcGFyYWdyYXBoLiANCg0KPg0KPg0K
PiAxLiBPYnNlcnZhdGlvbjoNCj4gLS0tLS0tLS0tLS0tLS0tDQo+IFN1cHBvcnQgZm9yIFN0YWdl
LTEgdHJhbnNsYXRpb24gaW4gU01NVXYzIGludHJvZHVjZXMgbmV3IGRhdGENCj4gc3RydWN0dXJl
cyAoYHMxX2NmZ2AgYWxvbmdzaWRlIGBzMl9jZmdgKSBhbmQgbG9naWMgdG8gd3JpdGUgYm90aA0K
PiBTdGFnZS0xIGFuZCBTdGFnZS0yIGVudHJpZXMgaW4gdGhlIFN0cmVhbSBUYWJsZSBFbnRyeSAo
U1RFKSwgaW5jbHVkaW5nDQo+IGFuIGBhYm9ydGAgZmllbGQgdG8gaGFuZGxlIHBhcnRpYWwgY29u
ZmlndXJhdGlvbiBzdGF0ZXMuDQo+DQo+ICoqUmlzazoqKg0KPiBXaXRob3V0IHByb3BlciBoYW5k
bGluZywgYSBwYXJ0aWFsbHkgYXBwbGllZCBTdGFnZS0xIGNvbmZpZ3VyYXRpb24NCj4gbWlnaHQg
bGVhdmUgZ3Vlc3QgRE1BIG1hcHBpbmdzIGluIGFuIGluY29uc2lzdGVudCBzdGF0ZSwgcG90ZW50
aWFsbHkNCj4gZW5hYmxpbmcgdW5hdXRob3JpemVkIGFjY2VzcyBvciBjYXVzaW5nIGNyb3NzLWRv
bWFpbiBpbnRlcmZlcmVuY2UuDQo+DQo+ICoqTWl0aWdhdGlvbjoqKiAqKEhhbmRsZWQgYnkgZGVz
aWduKSoNCj4gVGhpcyBmZWF0dXJlIGludHJvZHVjZXMgbG9naWMgdGhhdCB3cml0ZXMgYm90aCBg
czFfY2ZnYCBhbmQgYHMyX2NmZ2ANCj4gdG8gU1RFIGFuZCBtYW5hZ2VzIHRoZSBgYWJvcnRgIGZp
ZWxkLW9ubHkgY29uc2lkZXJpbmcgU3RhZ2UtMQ0KPiBjb25maWd1cmF0aW9uIGlmIGZ1bGx5IGF0
dGFjaGVkLiBUaGlzIGVuc3VyZXMgaW5jb21wbGV0ZSBvciBpbnZhbGlkDQo+IGd1ZXN0IGNvbmZp
Z3VyYXRpb25zIGFyZSBzYWZlbHkgaWdub3JlZCBieSB0aGUgaHlwZXJ2aXNvci4NCj4NCj4gMi4g
T2JzZXJ2YXRpb246DQo+IC0tLS0tLS0tLS0tLS0tLQ0KPiBHdWVzdHMgY2FuIG5vdyBpbnZhbGlk
YXRlIFN0YWdlLTEgY2FjaGVzOyBpbnZhbGlkYXRpb24gbmVlZHMNCj4gZm9yd2FyZGluZyB0byBT
TU1VdjMgaGFyZHdhcmUgdG8gbWFpbnRhaW4gY29oZXJlbmNlLg0KPg0KPiAqKlJpc2s6KioNCj4g
RmFpbGluZyB0byBwcm9wYWdhdGUgY2FjaGUgaW52YWxpZGF0aW9uIGNvdWxkIGFsbG93IHN0YWxl
IG1hcHBpbmdzLA0KPiBlbmFibGluZyBhY2Nlc3MgdG8gb2xkIG1hcHBpbmdzIGFuZCBwb3NzaWJs
eSBkYXRhIGxlYWthZ2Ugb3INCj4gbWlzcm91dGluZy4NCj4NCj4gKipNaXRpZ2F0aW9uOioqICoo
SGFuZGxlZCBieSBkZXNpZ24pKg0KPiBUaGlzIGZlYXR1cmUgZW5zdXJlcyB0aGF0IGd1ZXN0LWlu
aXRpYXRlZCBpbnZhbGlkYXRpb25zIGFyZSBjb3JyZWN0bHkNCj4gZm9yd2FyZGVkIHRvIHRoZSBo
YXJkd2FyZSwgcHJlc2VydmluZyBJT01NVSBjb2hlcmVuY3kuDQo+DQo+IDMuIE9ic2VydmF0aW9u
Og0KPiAtLS0tLS0tLS0tLS0tLS0NCj4gVGhpcyBkZXNpZ24gaW50cm9kdWNlcyBzdWJzdGFudGlh
bCBuZXcgZnVuY3Rpb25hbGl0eSwgaW5jbHVkaW5nIHRoZQ0KPiBgdklPTU1VYCBmcmFtZXdvcmss
IHZpcnR1YWwgU01NVXYzIGRldmljZXMgKGB2c21tdXYzYCksIGNvbW1hbmQNCj4gcXVldWVzLCBl
dmVudCBxdWV1ZXMsIGRvbWFpbiBtYW5hZ2VtZW50LCBhbmQgRGV2aWNlIFRyZWUgbW9kaWZpY2F0
aW9ucw0KPiAoZS5nLiwgYGlvbW11c2Agbm9kZXMgYW5kIGBsaWJ4bGAgaW50ZWdyYXRpb24pLg0K
Pg0KPiAqKlJpc2s6KioNCj4gTGFyZ2UgZmVhdHVyZSBleHBhbnNpb25zIGluY3JlYXNlIHRoZSBh
dHRhY2sgc3VyZmFjZeKAlHBvdGVudGlhbCBmb3INCj4gcmFjZSBjb25kaXRpb25zLCB1bmNoZWNr
ZWQgY29tbWFuZCBpbnB1dHMsIG9yIERldmljZSBUcmVlLWJhc2VkDQo+IG1pc2NvbmZpZ3VyYXRp
b25zLg0KPg0KPiAqKk1pdGlnYXRpb246KioNCj4NCj4gLSBTYW5pdHkgY2hlY2tzIGFuZCBlcnJv
ci1oYW5kbGluZyBpbXByb3ZlbWVudHMgaGF2ZSBiZWVuIGludHJvZHVjZWQNCj4gICBpbiB0aGlz
IGZlYXR1cmUuDQo+IC0gRnVydGhlciBhdWRpdHMgaGF2ZSB0byBiZSBwZXJmb3JtZWQgZm9yIHRo
aXMgZmVhdHVyZSBhbmQgaXRzDQo+ICAgZGVwZW5kZW5jaWVzIGluIHRoaXMgYXJlYS4gQ3VycmVu
dGx5LCBmZWF0dXJlIGlzIG1hcmtlZCBhcyAqVGVjaA0KPiAgIFByZXZpZXcqIGFuZCBpcyBzZWxm
LWNvbnRhaW5lZCwgcmVkdWNpbmcgdGhlIHJpc2sgdG8gdW5yZWxhdGVkDQo+ICBjb21wb25lbnRz
Lg0KPg0KPiA0LiBPYnNlcnZhdGlvbjoNCj4gLS0tLS0tLS0tLS0tLS0tDQo+IFRoZSBjb2RlIGlu
Y2x1ZGVzIHRyYW5zZm9ybWF0aW9ucyB0byBoYW5kbGUgbmVzdGVkIHRyYW5zbGF0aW9uIHZlcnN1
cw0KPiBzdGFuZGFyZCBtb2RlcyBhbmQgdXNlcyBndWVzdC1jb25maWd1cmVkIGNvbW1hbmQgcXVl
dWVzIChlLmcuLA0KPiBgQ01EX0NGR0lfU1RFYCkgYW5kIGV2ZW50IG5vdGlmaWNhdGlvbnMuDQo+
DQo+ICoqUmlzazoqKg0KPiBNYWxpY2lvdXMgb3IgbWFsZm9ybWVkIHF1ZXVlIGNvbW1hbmRzIGZy
b20gZ3Vlc3RzIGNvdWxkIGJ5cGFzcw0KPiB2YWxpZGF0aW9uLCBtYW5pcHVsYXRlIFNNTVV2MyBz
dGF0ZSwgb3IgY2F1c2UgRG9tMCBpbnN0YWJpbGl0eS4NCg0KT25seSBEb20wPw0KDQo+DQo+ICoq
TWl0aWdhdGlvbjoqKiAqKEhhbmRsZWQgYnkgZGVzaWduKSoNCj4gQnVpbHQtaW4gdmFsaWRhdGlv
biBvZiBjb21tYW5kIHF1ZXVlIGVudHJpZXMgYW5kIHNhbml0aXphdGlvbg0KPiBtZWNoYW5pc21z
IGVuc3VyZSBvbmx5IHBlcm1pdHRlZCBjb25maWd1cmF0aW9ucyBhcmUgYXBwbGllZC4gVGhpcyBp
cw0KPiBzdXBwb3J0ZWQgdmlhIGFkZGl0aW9ucyBpbiBgdnNtbXV2M2AgYW5kIGBjbWRxdWV1ZWAg
aGFuZGxpbmcgY29kZS4NCj4NCj4gNS4gT2JzZXJ2YXRpb246DQo+IC0tLS0tLS0tLS0tLS0tLQ0K
PiBEZXZpY2UgVHJlZSBtb2RpZmljYXRpb25zIGVuYWJsZSBkZXZpY2UgYXNzaWdubWVudCBhbmQN
Cj4gY29uZmlndXJhdGlvbuKAlGd1ZXN0IERUIGZyYWdtZW50cyAoZS5nLiwgYGlvbW11c2ApIGFy
ZSBhZGRlZCB2aWENCj4gYGxpYnhsYC4NCj4NCj4gKipSaXNrOioqDQo+IEVycm9uZW91cyBvciBt
YWxpY2lvdXMgRGV2aWNlIFRyZWUgaW5qZWN0aW9uIGNvdWxkIHJlc3VsdCBpbiBkZXZpY2UNCj4g
bWlzYmluZGluZyBvciBndWVzdCBhY2Nlc3MgdG8gdW5hdXRob3JpemVkIGhhcmR3YXJlLg0KPg0K
PiAqKk1pdGlnYXRpb246KioNCj4NCj4gLSBgbGlieGxgIHBlcmZvcm0gY2hlY2tzIG9mIGd1ZXN0
IGNvbmZpZ3VyYXRpb24gYW5kIHBhcnNlIG9ubHkNCj4gICBwcmVkZWZpbmVkIGR0IGZyYWdtZW50
cyBhbmQgbm9kZXMsIHJlZHVjaW5nIHJpc2MuDQo+IC0gVGhlIHN5c3RlbSBpbnRlZ3JhdG9yIG11
c3QgZW5zdXJlIGNvcnJlY3QgcmVzb3VyY2UgbWFwcGluZyBpbiB0aGUNCj4gICBndWVzdCBEZXZp
Y2UgVHJlZSAoRFQpIGZyYWdtZW50cy4NCj4NCj4gNi4gT2JzZXJ2YXRpb246DQo+IC0tLS0tLS0t
LS0tLS0tLQ0KPiBJbnRyb2R1Y2luZyBvcHRpb25hbCBwZXItZ3Vlc3QgZW5hYmxlZCBmZWF0dXJl
cyAoYHZpb21tdWAgYXJndW1lbnQgaW4NCj4geGwgZ3Vlc3QgY29uZmlnKSBtZWFucyBzb21lIGd1
ZXN0cyBtYXkgb3B0LW91dC4NCj4NCj4gKipSaXNrOioqDQo+IERpZmZlcmVuY2VzIGJldHdlZW4g
Z3Vlc3RzIHdpdGggYW5kIHdpdGhvdXQgYHZpb21tdWAgbWF5IGNhdXNlDQo+IHVuZXhwZWN0ZWQg
YmVoYXZpb3Igb3IgcHJpdmlsZWdlIGRyaWZ0Lg0KPg0KPiAqKk1pdGlnYXRpb246KioNCj4gVmVy
aWZ5IHRoYXQgZG93bmdyYWRlIHBhdGhzIGFyZSBzYWZlIGFuZCB3ZWxsLWlzb2xhdGVkOyBlbnN1
cmUgbWlzc2luZw0KPiBzdXBwb3J0IGRvZXNuJ3QgY2F1c2Ugc2VjdXJpdHkgaXNzdWVzLiBBZGRp
dGlvbmFsIGF1ZGl0cyBvbiBlbXVsYXRpb24NCj4gcGF0aHMgYW5kIGRvbWFpbnMgaW50ZXJmZXJl
bmNlIG5lZWQgdG8gYmUgcGVyZm9ybWVkIGluIGEgbXVsdGktZ3Vlc3QNCj4gZW52aXJvbm1lbnQu
DQo+DQo+IDcuIE9ic2VydmF0aW9uOg0KPiAtLS0tLS0tLS0tLS0tLS0NCj4gR3Vlc3RzIGhhdmUg
dGhlIGFiaWxpdHkgdG8gaXNzdWUgU3RhZ2UtMSBJT01NVSBjb21tYW5kcyBsaWtlIGNhY2hlDQo+
IGludmFsaWRhdGlvbiwgc3RyZWFtIHRhYmxlIGVudHJpZXMgY29uZmlndXJhdGlvbiwgZXRjLiBB
biBhZHZlcnNhcmlhbA0KPiBndWVzdCBtYXkgaXNzdWUgYSBoaWdoIHZvbHVtZSBvZiBjb21tYW5k
cyBpbiByYXBpZCBzdWNjZXNzaW9uLg0KPg0KPiAqKlJpc2sqKg0KPiBFeGNlc3NpdmUgY29tbWFu
ZHMgcmVxdWVzdHMgY2FuIGNhdXNlIGhpZ2ggaHlwZXJ2aXNvciBDUFUgY29uc3VtcHRpb24NCj4g
YW5kIGRpc3J1cHQgc2NoZWR1bGluZywgbGVhZGluZyB0byBkZWdyYWRlZCBzeXN0ZW0gcmVzcG9u
c2l2ZW5lc3MgYW5kDQo+IHBvdGVudGlhbCBkZW5pYWwtb2Ytc2VydmljZSBzY2VuYXJpb3MuDQo+
DQo+ICoqTWl0aWdhdGlvbioqDQo+DQo+IC0gWGVuIGNyZWRpdCBzY2hlZHVsZXIgbGltaXRzIGd1
ZXN0IHZDUFUgZXhlY3V0aW9uIHRpbWUsIHNlY3VyaW5nDQo+ICAgYmFzaWMgZ3Vlc3QgcmF0ZS1s
aW1pdGluZy4NCg0KSSBkb24ndCB0aGluZyB0aGF0IHRoaXMgZmVhdHVyZSBhdmFpbGFibGUgb25s
eSBpbiBjcmVkaXQgc2NoZWR1bGVycywNCkFGQUlLLCBhbGwgc2NoZWR1bGVycyBleGNlcHQgbnVs
bCBzY2hlZHVsZXIgd2lsbCBsaW1pdCB2Q1BVIGV4ZWN1dGlvbiB0aW1lLg0KDQo+IC0gQmF0Y2gg
bXVsdGlwbGUgY29tbWFuZHMgb2Ygc2FtZSB0eXBlIHRvIHJlZHVjZSBvdmVyaGVhZCBvbiB0aGUN
Cj4gICB2aXJ0dWFsIFNNTVV2MyBoYXJkd2FyZSBlbXVsYXRpb24uDQo+IC0gSW1wbGVtZW50IHZJ
T01NVSBjb21tYW5kcyBleGVjdXRpb24gcmVzdGFydCBhbmQgY29udGludWF0aW9uIHN1cHBvcnQN
Cg0KU28sIHNvbWV0aGluZyBsaWtlICJoeXBlcmNhbGwgY29udGludWF0aW9uIj8NCg0KPg0KPiA4
LiBPYnNlcnZhdGlvbjoNCj4gLS0tLS0tLS0tLS0tLS0tDQo+IFNvbWUgZ3Vlc3QgY29tbWFuZHMg
aXNzdWVkIHRvd2FyZHMgdklPTU1VIGFyZSBwcm9wYWdhdGVkIHRvIHBJT01NVQ0KPiBjb21tYW5k
IHF1ZXVlIChlLmcuIFRMQiBpbnZhbGlkYXRlKS4gRm9yIGVhY2ggcElPTU1VLCBvbmx5IG9uZSBj
b21tYW5kDQo+IHF1ZXVlIGlzDQo+IGF2YWlsYWJsZSBmb3IgYWxsIGRvbWFpbnMuDQo+DQo+ICoq
UmlzayoqDQo+IEV4Y2Vzc2l2ZSBjb21tYW5kcyByZXF1ZXN0cyBmcm9tIGFidXNpdmUgZ3Vlc3Qg
Y2FuIGNhdXNlIGZsb29kaW5nIG9mDQo+IHBoeXNpY2FsIElPTU1VIGNvbW1hbmQgcXVldWUsIGxl
YWRpbmcgdG8gZGVncmFkZWQgcElPTU1VIHJlc3BvbnNpdm5lc3MNCj4gb24gY29tbWFuZHMgaXNz
dWVkIGZyb20gb3RoZXIgZ3Vlc3RzLg0KPg0KPiAqKk1pdGlnYXRpb24qKg0KPg0KPiAtIFhlbiBj
cmVkaXQgc2NoZWR1bGVyIGxpbWl0cyBndWVzdCB2Q1BVIGV4ZWN1dGlvbiB0aW1lLCBzZWN1cmlu
Zw0KPiAgIGJhc2ljIGd1ZXN0IHJhdGUtbGltaXRpbmcuDQo+IC0gQmF0Y2ggY29tbWFuZHMgd2hp
Y2ggc2hvdWxkIGJlIHByb3BhZ2F0ZWQgdG93YXJkcyBwSU9NTVUgY21kIHF1ZXVlDQo+ICAgYW5k
IGVuYWJsZSBzdXBwb3J0IGZvciBiYXRjaCBleGVjdXRpb24gcGF1c2UvY29udGludWF0aW9uDQo+
IC0gSWYgcG9zc2libGUsIGltcGxlbWVudCBkb21haW4gcGVuYWxpemF0aW9uIGJ5IGFkZGluZyBh
IHBlci1kb21haW4NCj4gICBjb3N0IGNvdW50ZXIgZm9yIHZJT01NVS9wSU9NTVUgdXNhZ2UuDQo+
DQo+IDkuIE9ic2VydmF0aW9uOg0KPiAtLS0tLS0tLS0tLS0tLS0NCj4gdklPTU1VIGZlYXR1cmUg
aW5jbHVkZXMgZXZlbnQgcXVldWUgdXNlZCBmb3IgZm9yd2FyZGluZyBJT01NVSBldmVudHMNCj4g
dG8gZ3Vlc3QgKGUuZy4gdHJhbnNsYXRpb24gZmF1bHRzLCBpbnZhbGlkIHN0cmVhbSBJRHMsIHBl
cm1pc3Npb24NCj4gZXJyb3JzKS4gQSBtYWxpY2lvdXMgZ3Vlc3QgY2FuIG1pc2NvbmZpZ3VyZSBp
dHMgU01NVSBzdGF0ZSBvcg0KPiBpbnRlbnRpb25hbGx5IHRyaWdnZXIgZmF1bHRzIHdpdGggaGln
aCBmcmVxdWVuY3kuDQo+DQo+ICoqUmlzayoqDQo+IE9jY3VyYW5jZSBvZiBJT01NVSBldmVudHMg
d2l0aCBoaWdoIGZyZXF1ZW5jeSBjYW4gY2F1c2UgWGVuIHRvIGZsb29kDQo+IHRoZSBldmVudCBx
dWV1ZSBhbmQgZGlzcnVwdCBzY2hlZHVsaW5nIHdpdGggaGlnaCBoeXBlcnZpc29yIENQVSBsb2Fk
DQo+IGZvciBldmVudHMgaGFuZGxpbmcuDQo+DQo+ICoqTWl0aWdhdGlvbioqDQo+DQo+IC0gSW1w
bGVtZW50IGZhaWwtc2FmZSBzdGF0ZSBieSBkaXNhYmxpbmcgZXZlbnRzIGZvcndhcmRpbmcgd2hl
biBmYXVsdHMNCj4gICBhcmUgb2NjdXJlZCB3aXRoIGhpZ2ggZnJlcXVlbmN5IGFuZCBub3QgcHJv
Y2Vzc2VkIGJ5IGd1ZXN0Lg0KPiAtIEJhdGNoIG11bHRpcGxlIGV2ZW50cyBvZiBzYW1lIHR5cGUg
dG8gcmVkdWNlIG92ZXJoZWFkIG9uIHRoZSB2aXJ0dWFsDQo+ICAgU01NVXYzIGhhcmR3YXJlIGVt
dWxhdGlvbi4NCj4gLSBDb25zaWRlciBkaXNhYmxpbmcgZXZlbnQgcXVldWUgZm9yIHVudHJ1c3Rl
ZCBndWVzdHMNCj4NCj4gUGVyZm9ybWFuY2UgSW1wYWN0DQo+ID09PT09PT09PT09PT09PT09PQ0K
Pg0KPiBXaXRoIGlvbW11IHN0YWdlLTEgYW5kIG5lc3RlZCB0cmFuc2xhdGlvbiBpbmNsdXNpb24s
IHBlcmZvcm1hbmNlDQo+IG92ZXJoZWFkIGlzIGludHJvZHVjZWQgY29tcGFyaW5nIHRvIGV4aXN0
aW5nLCBzdGFnZS0yIG9ubHkgdXNhZ2UgaW4NCj4gWGVuLg0KPiBPbmNlIG1hcHBpbmdzIGFyZSBl
c3RhYmxpc2hlZCwgdHJhbnNsYXRpb25zIHNob3VsZCBub3QgaW50cm9kdWNlDQo+IHNpZ25pZmlj
YW50IG92ZXJoZWFkLg0KPiBFbXVsYXRlZCBwYXRocyBtYXkgaW50cm9kdWNlIG1vZGVyYXRlIG92
ZXJoZWFkLCBwcmltYXJpbHkgYWZmZWN0aW5nDQo+IGRldmljZSBpbml0aWFsaXphdGlvbiBhbmQg
ZXZlbnQgaGFuZGxpbmcuDQo+IFBlcmZvcm1hbmNlIGltcGFjdCBoaWdobHkgZGVwZW5kcyBvbiB0
YXJnZXQgQ1BVIGNhcGFiaWxpdGllcy4gVGVzdGluZw0KPiBpcyBwZXJmb3JtZWQgb24gY29ydGV4
LWE1MyBiYXNlZCBwbGF0Zm9ybS4NCg0KV2hpY2ggcGxhdGZvcm0gZXhhY3RseT8gV2hpbGUgUUVN
VSBlbXVsYXRlcyBTTU1VIHRvIHNvbWUgZXh0ZW50LCB3ZSBhcmUNCm9ic2VydmluZyBzb21ld2hh
dCBkaWZmZXJlbnQgU01NVSBiZWhhdmlvciBvbiByZWFsIEhXIHBsYXRmb3JtcyAobW9zdGx5DQpk
dWUgdG8gY2FjaGUgY29oZXJlbmNlIHByb2JsZW1zKS4gQWxzbywgYWNjb3JkaW5nIHRvIE1NVS02
MDAgZXJyYXRhLCBpdA0KY2FuIGhhdmUgbG93ZXIgdGhhbiBleHBlY3RlZCBwZXJmb3JtYW5jZSBp
biBzb21lIHVzZS1jYXNlcy4NCg0KPiBQZXJmb3JtYW5jZSBpcyBtb3N0bHkgaW1wYWN0ZWQgYnkg
ZW11bGF0ZWQgdklPTU1VIG9wZXJhdGlvbnMsIHJlc3VsdHMNCj4gc2hvd24gaW4gdGhlIGZvbGxv
d2luZyB0YWJsZS4NCj4NCj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiB8IHZJT01NVSBPcGVyYXRpb24gICAgICAg
ICAgICAgIHwgRXhlY3V0aW9uIHRpbWUgaW4gZ3Vlc3QgICAgICAgICB8DQo+ICs9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSsN
Cj4gfCBSZWcgcmVhZCAgICAgICAgICAgICAgICAgICAgICB8IG1lZGlhbjogMzDOvHMsIHdvcnN0
LWNhc2U6IDI1MM68cyB8DQo+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gfCBSZWcgd3JpdGUgICAgICAgICAgICAg
ICAgICAgICB8IG1lZGlhbjogMzXOvHMsIHdvcnN0LWNhc2U6IDI4MM68cyB8DQo+ICstLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSsNCj4gfCBJbnZhbGlkYXRlIFRMQiAgICAgICAgICAgICAgICB8IG1lZGlhbjogOTDOvHMsIHdv
cnN0LWNhc2U6IDFtcysgIHwNCj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiB8IEludmFsaWRhdGUgU1RFICAgICAg
ICAgICAgICAgIHwgbWVkaWFuOiA0NTDOvHMgd29yc3RfY2FzZTogN21zKyAgfA0KPiArLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0rDQo+DQo+IFdpdGggdklPTU1VIGV4cG9zZWQgdG8gZ3Vlc3QsIGd1ZXN0IE9TIGhhcyB0byBp
bml0aWFsaXplIElPTU1VIGRldmljZQ0KPiBhbmQgY29uZmlndXJlIHN0YWdlLTEgbWFwcGluZ3Mg
Zm9yIGRldmljZXMgYXR0YWNoZWQgdG8gaXQuDQo+IEZvbGxvd2luZyB0YWJsZSBzaG93cyBpbml0
aWFsaXphdGlvbiBzdGFnZXMgd2hpY2ggaW1wYWN0IHN0YWdlLTENCj4gZW5hYmxlZCBndWVzdCBi
b290IHRpbWUgYW5kIGNvbXBhcmVzIGl0IHdpdGggc3RhZ2UtMSBkaXNhYmxlZCBndWVzdC4NCj4N
Cj4gIk5PVEU6IERldmljZSBwcm9iZSBleGVjdXRpb24gdGltZSB2YXJpZXMgc2lnbmlmaWNhbnRs
eSBkZXBlbmRpbmcgb24NCj4gZGV2aWNlIGNvbXBsZXhpdHkuIHZpcnRpby1ncHUgd2FzIHNlbGVj
dGVkIGFzIGEgdGVzdCBjYXNlIGR1ZSB0byBpdHMNCj4gZXh0ZW5zaXZlIHVzZSBvZiBkeW5hbWlj
IERNQSBhbGxvY2F0aW9ucyBhbmQgSU9NTVUgbWFwcGluZ3MsIG1ha2luZyBpdA0KPiBhIHN1aXRh
YmxlIGNhbmRpZGF0ZSBmb3IgYmVuY2htYXJraW5nIHN0YWdlLTEgdklPTU1VIGJlaGF2aW9yLiIN
Cj4NCj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+IHwgU3RhZ2UgICAgICAgICAgICAgICB8IFN0YWdlLTEg
RW5hYmxlZCBHdWVzdCB8IFN0YWdlLTEgRGlzYWJsZWQgR3Vlc3QgfA0KPiArPT09PT09PT09PT09
PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09
PSsNCj4gfCBJT01NVSBJbml0ICAgICAgICAgIHwgfjI1bXMgICAgICAgICAgICAgICAgIHwgLyAg
ICAgICAgICAgICAgICAgICAgICB8DQo+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiB8IERldiBBdHRhY2gg
LyBNYXBwaW5nfCB+MjIwbXMgICAgICAgICAgICAgICAgfCB+MjAwbXMgICAgICAgICAgICAgICAg
IHwNCj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+DQo+IEZvciBkZXZpY2VzIGNvbmZpZ3VyZWQgd2l0aCBk
eW5hbWljIERNQSBtYXBwaW5ncywgRE1BDQo+IGFsbG9jYXRlL21hcC91bm1hcCBvcGVyYXRpb25z
IHBlcmZvcm1hbmNlIGlzIGFsc28gaW1wYWN0ZWQgb24gc3RhZ2UtMQ0KPiBlbmFibGVkIGd1ZXN0
cy4NCj4gRHluYW1pYyBETUEgbWFwcGluZyBvcGVyYXRpb24gaXNzdWVzIGVtdWxhdGVkIElPTU1V
IGZ1bmN0aW9ucyBsaWtlDQo+IG1taW8gd3JpdGUvcmVhZCBhbmQgVExCIGludmFsaWRhdGlvbnMu
DQo+IEFzIGEgcmVmZXJlbmNlLCBmb2xsb3dpbmcgdGFibGUgc2hvd3MgcGVyZm9ybWFuY2UgcmVz
dWx0cyBmb3IgcnVudGltZQ0KPiBkbWEgb3BlcmF0aW9ucyBmb3IgdmlydGlvLWdwdSBkZXZpY2Uu
DQo+DQo+ICstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiB8IERNQSBPcCAgICAgICAgfCBTdGFnZS0xIEVuYWJs
ZWQgR3Vlc3QgICB8IFN0YWdlLTEgRGlzYWJsZWQgR3Vlc3QgICAgIHwNCj4gKz09PT09PT09PT09
PT09PSs9PT09PT09PT09PT09PT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09PT09
PT0rDQo+IHwgZG1hX2FsbG9jICAgICB8IG1lZGlhbjogMjfOvHMsIHdvcnN0OiA3bXN8IG1lZGlh
bjogMi41zrxzLCB3b3JzdDogMzYwzrxzfA0KPiArLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gfCBkbWFfZnJl
ZSAgICAgIHwgbWVkaWFuOiAxbXMsIHdvcnN0OiAxNG1zfCBtZWRpYW46IDIuMs68cywgd29yc3Q6
IDg1zrxzIHwNCj4gKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+IHwgZG1hX21hcCAgICAgICB8IG1lZGlhbjog
MjXOvHMsIHdvcnN0OiA3bXN8IG1lZGlhbjogMS41zrxzLCB3b3JzdDogMzM2zrxzfA0KPiArLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSsNCj4gfCBkbWFfdW5tYXAgICAgIHwgbWVkaWFuOiAxbXMsIHdvcnN0OiAxM21z
fCBtZWRpYW46IDEuM868cywgd29yc3Q6IDY1zrxzIHwNCj4gKy0tLS0tLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+DQo+
IFRlc3RpbmcNCj4gPT09PT09PT09PT09DQo+DQo+IC0gUUVNVS1iYXNlZCBBUk0gc3lzdGVtIHRl
c3RzIGZvciBTdGFnZS0xIHRyYW5zbGF0aW9uIGFuZCBuZXN0ZWQNCj4gICB2aXJ0dWFsaXphdGlv
bi4NCj4gLSBBY3R1YWwgaGFyZHdhcmUgdmFsaWRhdGlvbiBvbiBwbGF0Zm9ybXMgc3VjaCBhcyBS
ZW5lc2FzIHRvIGVuc3VyZQ0KPiAgIGNvbXBhdGliaWxpdHkgd2l0aCByZWFsIFNNTVV2MyBpbXBs
ZW1lbnRhdGlvbnMuDQo+IC0gVW5pdC9GdW5jdGlvbmFsIHRlc3RzIHZhbGlkYXRpbmcgY29ycmVj
dCB0cmFuc2xhdGlvbnMgKG5vdCBpbXBsZW1lbnRlZCkuDQo+DQo+IE1pZ3JhdGlvbiBhbmQgQ29t
cGF0aWJpbGl0eQ0KPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4NCj4gVGhpcyBvcHRp
b25hbCBmZWF0dXJlIGRlZmF1bHRzIHRvIGRpc2FibGVkIChgdmlvbW11PSIiYCkgZm9yIGJhY2t3
YXJkDQo+IGNvbXBhdGliaWxpdHkuDQo+DQoNCi0tIA0KV0JSLCBWb2xvZHlteXI=


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 18:45:45 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 18:45:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1101975.1454793 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us46P-0004Tj-2Q; Fri, 29 Aug 2025 18:45:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1101975.1454793; Fri, 29 Aug 2025 18:45: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 1us46O-0004Tc-Vg; Fri, 29 Aug 2025 18:45:32 +0000
Received: by outflank-mailman (input) for mailman id 1101975;
 Fri, 29 Aug 2025 18:45:31 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=UI2G=3J=m5p.com=ehem@srs-se1.protection.inumbo.net>)
 id 1us46N-0004TM-Rs
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 18:45:31 +0000
Received: from mailhost.m5p.com (mailhost.m5p.com [74.104.188.4])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 55760a9f-8508-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 20:45:30 +0200 (CEST)
Received: from m5p.com (mailhost.m5p.com [IPv6:2001:470:8ac4:0:0:0:0:f7])
 by mailhost.m5p.com (8.18.1/8.17.1) with ESMTPS id 57TIixUf002004
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO);
 Fri, 29 Aug 2025 14:45:05 -0400 (EDT) (envelope-from ehem@m5p.com)
Received: (from ehem@localhost)
 by m5p.com (8.18.1/8.15.2/Submit) id 57TIivMS002003;
 Fri, 29 Aug 2025 11:44:57 -0700 (PDT) (envelope-from ehem)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 55760a9f-8508-11f0-8adc-4578a1afcccb
Date: Fri, 29 Aug 2025 11:44:57 -0700
From: Elliott Mitchell <ehem+xen@m5p.com>
To: Julien Grall <julien@xen.org>
Cc: Jan Beulich <jbeulich@suse.com>,
        Demi Marie Obenour <demiobenour@gmail.com>,
        xen-users@lists.xenproject.org, xen-devel@lists.xenproject.org,
        Stefano Stabellini <sstabellini@kernel.org>,
        Bertrand Marquis <bertrand.marquis@arm.com>,
        Michal Orzel <michal.orzel@amd.com>,
        Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
        Paul Leiber <paul@onlineschubla.de>
Subject: Re: Consider changing CONFIG_ACPI default on ARM?
Message-ID: <aLH1KYyl7nAOBKCp@mattapan.m5p.com>
References: <CAO_48GG1Tg0d3ATnNAYNr0cg7Ty_zsnzT29=dpkk99DxyTWcmg@mail.gmail.com>
 <fceb5df8-d628-479d-acb3-d1d26409fbac@onlineschubla.de>
 <aJLae1Nl0pyOZgyh@mattapan.m5p.com>
 <1b96f2f3-55a2-4b33-84b1-a7c18d38d10c@suse.com>
 <6e9b5265-7a3b-4fd5-b14e-0e60a8b49833@gmail.com>
 <a3092ae1-d836-4403-8fb5-30593fcd2fb8@suse.com>
 <aKjOaT-P74Yh4-bi@mattapan.m5p.com>
 <2f11b8ea-a386-4c2a-afe6-c7e57d1d7f75@xen.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <2f11b8ea-a386-4c2a-afe6-c7e57d1d7f75@xen.org>
X-Spam-Status: No, score=0.4 required=10.0 tests=KHOP_HELO_FCRDNS autolearn=no
	autolearn_force=no version=4.0.1
X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on mattapan.m5p.com

On Sat, Aug 23, 2025 at 08:59:13AM +0100, Julien Grall wrote:
> 
> On 22/08/2025 21:09, Elliott Mitchell wrote:
> > There may be many more using it.  Perhaps this
> > should even be done on the 4.20 branch given how long this has been
> > working?
> 
> I am guessing you mean 4.21 which will be released in a couple of months
> time, correct?
> 
> We have been discussing among the committers on whether we are ok to enable
> ACPI despite the fact it is still not feature complete (see above). The
> discussion is not fully finalized but if we were to enable CONFIG_ACPI=y by
> default then I think we would need the following:
> 
>  * Select device-tree by default rather than ACPI

This appears to be the case.  `arm_smmu_device_probe()` only calls
`arm_smmu_device_acpi_probe()` if the SMMUv3 is absent from the
device-tree.  The file appears laced with assumptions about device-tree
support being enabled so I think this is the present state.

>  * Go through SUPPORT.MD and check what features we marked as SUPPORTED.md
> but doesn't work on ACPI.
> 
> Maybe you can help with that?

The only things which stood out to me was SMMUv1/SMMUv2/SMMUv3.  Since
SMMUv3 is marked experimental anyway, this doesn't seem to be a problem.

Note, I haven't been looking too closely at things so my look isn't all
that much better than than an Ouija board.

Mostly it seems multiple people have found rebuilding Debian's packages
and enabling ACPI was the best way of getting Debian/Xen on a RP4.  The
lack of bugs seems to suggest ACPI works quite well.  The downsides are
limits in what ACPI supports and needing to rebuild.


-- 
(\___(\___(\______          --=> 8-) EHM <=--          ______/)___/)___/)
 \BS (    |         ehem+sigmsg@m5p.com  PGP 87145445         |    )   /
  \_CS\   |  _____  -O #include <stddisclaimer.h> O-   _____  |   /  _/
8A19\___\_|_/58D2 7E3D DDF4 7BA6 <-PGP-> 41D1 B375 37D0 8714\_|_/___/5445




From xen-devel-bounces@lists.xenproject.org Fri Aug 29 19:27:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 19:27:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1102009.1454803 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us4l2-0001VJ-1t; Fri, 29 Aug 2025 19:27:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1102009.1454803; Fri, 29 Aug 2025 19:27: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 1us4l1-0001VC-Uv; Fri, 29 Aug 2025 19:27:31 +0000
Received: by outflank-mailman (input) for mailman id 1102009;
 Fri, 29 Aug 2025 19:27:31 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=9gB5=3J=amd.com=stefano.stabellini@srs-se1.protection.inumbo.net>)
 id 1us4l0-0001V6-Ss
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 19:27:31 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on20611.outbound.protection.outlook.com
 [2a01:111:f403:2009::611])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 30ba2d4d-850e-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 21:27:26 +0200 (CEST)
Received: from CYXPR03CA0085.namprd03.prod.outlook.com (2603:10b6:930:d3::28)
 by DM4PR12MB7765.namprd12.prod.outlook.com (2603:10b6:8:113::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.21; Fri, 29 Aug
 2025 19:27:16 +0000
Received: from CY4PEPF0000FCBE.namprd03.prod.outlook.com
 (2603:10b6:930:d3:cafe::3c) by CYXPR03CA0085.outlook.office365.com
 (2603:10b6:930:d3::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.20 via Frontend Transport; Fri,
 29 Aug 2025 19:27:16 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CY4PEPF0000FCBE.mail.protection.outlook.com (10.167.242.100) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Fri, 29 Aug 2025 19:27:16 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) 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; Fri, 29 Aug
 2025 14:27:15 -0500
Received: from ubuntu-20.04.2-arm64.shared (10.180.168.240) 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 via Frontend Transport; Fri, 29 Aug 2025 14:27: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>
X-Inumbo-ID: 30ba2d4d-850e-11f0-8dd7-1b34d833f44b
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Pb4YDQGD/WtT5C3cDWx4mLwlYhzLOMAyfcnCjjOcU+NAsCH9e9KXVrJAz4+TpUL2HYhrGzvKfKULWssso+p27OKNnfkUwX3FnW1hee3D7P+RBHZain16/hJBleSg9pyyK8oNRshrJfBZdIV2JSjblsKZiwAgPEOEPc5pyUwysHfgfq9e72/E5BdLEsajOOJ7FZZD0EtUjLpLW1UN5qQI8Z4ZhDPIZztymuzT8XIOS9vtsue8jowITV/ZjsDm1NJD/NKT74chgYFLWs7rf3I4g7IXGaGaQv5A0yL77uZFdaNehZqTLebHBWIIBPGlg2/Pe4iI9C3JUJ2lVMG8YHv/iw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=sSd8Jodlsejos4ba/Ljvbovg8UIawEf5gMHvusXI+Kk=;
 b=MTroeIQvL6S8MySKT0ggMm+uL8VSzjxl7b74qvbXlaPgyLod/rRID0pcs71oy0i03YkDcT6g7x/iJpPnHXujgqvZslzWHCz7uaCY5rTCfJJmEpjWoFcCSdkCB1DU9pK2Cd9r1M2h0qkd7HzIvCxOfTFvR73jO/a4WrN5t/UWka0aPuvyGWhqP9JZTSAstftpgmC0eGhTjsJzw8vgNgw8MWlHa5mbgWb4MIes8OnKCW7BAyAPs5A2rVUgHTUAxnQXf3dy9MFesU29ucZsAXhFLX0J9fD6sI2YaDxNAibQaW6KMrj7uBhBQjE71rC2Ti8ysRTgDJyNUDQLfH++6gn/ZA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=xen.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=sSd8Jodlsejos4ba/Ljvbovg8UIawEf5gMHvusXI+Kk=;
 b=46wUQrJLkq6u8lrtOvnfzMc4urhkHn+Vd+gBJJRKPwznAhFy5yF7o9g073UeIuXm0p984IhhR/y6UQdXPr6KnvrKCFmkPUZ4eU+wF4mVyu+kUWGH9VTPFkTHzvBrGsfTi2iMZJBfpC11zqo5Uto5YnI5wjvCPl05j47zVN8i61g=
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=SATLEXMB04.amd.com; pr=C
Date: Fri, 29 Aug 2025 12:27:13 -0700
From: Stefano Stabellini <stefano.stabellini@amd.com>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: <dmukhin@xen.org>
CC: <xen-devel@lists.xenproject.org>, <andrew.cooper3@citrix.com>,
	<anthony.perard@vates.tech>, <jbeulich@suse.com>, <julien@xen.org>,
	<michal.orzel@amd.com>, <roger.pau@citrix.com>, <sstabellini@kernel.org>,
	<dmukhin@ford.com>
Subject: Re: [PATCH v5 01/15] emul/vuart: introduce framework for UART
 emulators
In-Reply-To: <20250828235409.2835815-2-dmukhin@ford.com>
Message-ID: <alpine.DEB.2.22.394.2508291217110.341243@ubuntu-linux-20-04-desktop>
References: <20250828235409.2835815-1-dmukhin@ford.com> <20250828235409.2835815-2-dmukhin@ford.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset="US-ASCII"
Received-SPF: None (SATLEXMB04.amd.com: stefano.stabellini@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000FCBE:EE_|DM4PR12MB7765:EE_
X-MS-Office365-Filtering-Correlation-Id: 63e0182d-f662-4376-a0fb-08dde7321024
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|36860700013|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?azixhophNMUsNIC7aLDjCqdNVmgdFbxFcgj4H3UYCnd0L3a/sHZhvFJ+jowA?=
 =?us-ascii?Q?Kb+AqdpONWZmICAviQzGfUYb8HxGq9qoLgyRC99tOZVZdGmD/CZeIME01pI1?=
 =?us-ascii?Q?3t2t/jWPeIiDMfY6eAglRLmyBF8Bu0Fy7MQTk3cmpLYnEjGmgWQBnyWOeFmL?=
 =?us-ascii?Q?9nwJV7NtqqcdlEOOFI4AXM0eP+3feb5LnWcxeCAaUEO/bcSiRbZqZNOTGpjM?=
 =?us-ascii?Q?wxKRIohaA6SegAHCz7YiSOZdPZJrpGZKmfqzIsTjN3jRdhI46uAhJDvrCTcS?=
 =?us-ascii?Q?f5Tjv8tDU/Aug/KuCgKIqCJ4SyE6D1PgZTJrD9DvOFVjEpvvqg9e3PhJxwt1?=
 =?us-ascii?Q?aHAPbJpli44ruDQvqP9kIfaEnxc5pr/yohqyTpB/y5FlTXXqolPZOSSEM154?=
 =?us-ascii?Q?9R49ntqSg3k4tjPQ7I9lmQKxLnVtYio9hpcsLvmDp9kMmGDAD086UthTy4TK?=
 =?us-ascii?Q?WrxvsaJcmMaPeB9jG3tYX31pJgi9xTxHOQsN2GLu3Fo7rvpGPuY/WrEa2jxi?=
 =?us-ascii?Q?Uc+LB1TZ3v7WhhhLQbjW9Fv90S5pfnJGNWvEowhV2KHHGMOr1B1nqiFzpc0U?=
 =?us-ascii?Q?YztaYlC0q3+DZ9b/T8OLBNPUxDlOBnQyEGdrb6n/iIPx/dGBSGI77XxPaExt?=
 =?us-ascii?Q?FLoYz3uDPGSsPOHcMmRaPufqSDHX7GcFYKFAdbGHuKYZ17AwdnV4Bh7reqUz?=
 =?us-ascii?Q?yHAv4/aaxG6VbgrNCnotZd6KWYSTbJYggrWOMgUs7p6QgwyxRz1tRlYPIlxu?=
 =?us-ascii?Q?2z8bxISbIBIErovAv5LaTiP1u0DPNuV3hVU49PeuJ2ZrqkQqAozirH/x8NjN?=
 =?us-ascii?Q?AktxiY0PwCnplCvUvdFFHH8mHCtPlSVafwIlH8h3Y9Ttd/Bd9Cijce3kqXiD?=
 =?us-ascii?Q?X8kJvlx37c0YgaedpoWn4a9oc9Vcp/CFB24sk/ainUZ+VdwUvIvXmgaTsCzR?=
 =?us-ascii?Q?TDRC9nM9jZXLmZBe1GThavr9BxAXarlDIIKzspsDudvyppQ4hBM7Z75xxhLZ?=
 =?us-ascii?Q?p6SEn/b6b3YkjLYPF8sPZLKfucAWvkrOY0di1fWmbc6KiJibyqnuGWs3vp6g?=
 =?us-ascii?Q?kpDbaI5eBS2dGb0Tkdy/y7G5P5+6rSexWVnNwLN6LvklIbqRCUgYfp9Ev2+B?=
 =?us-ascii?Q?7OCO0PyLM5ifTLxfv0zF3z4IJkJSmRwGvyBWM+jbn+nzYXOnfYSLWbzGUTvu?=
 =?us-ascii?Q?uhmByF8A/oYIXPFUWkhEsVy8vapaFQ0hxUgRjYqnqfZF1itX2LO65ZQrkPR/?=
 =?us-ascii?Q?6lMUiqnOnYNH6s7vufJpl1GTDIXWFTVR/0Cy+gnfy9mAI+v/dZWKdRO9+0jx?=
 =?us-ascii?Q?VPReYL+siad7xcsDezYgYzTluJYW+pLXd4eyZL6F9Bwkczm2ZzdrQwd+s6Jl?=
 =?us-ascii?Q?qBV4NkLLbrgYKC49zULBqXDA6y/fbgkfKvFS1Uy3nRqycH32SeCPDYxNUU9l?=
 =?us-ascii?Q?0zvpcKsN7Y1Rid40JAxbFMoUSu5DtkCItq9iLKOyKMsVqkwP973E5mpSLxdD?=
 =?us-ascii?Q?CoxnGfA2bJrWxSwfkI9Gub8rUnsOGO9AM+pe?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Aug 2025 19:27:16.0791
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 63e0182d-f662-4376-a0fb-08dde7321024
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000FCBE.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB7765

On Thu, 28 Aug 2025, dmukhin@xen.org wrote:
> From: Denis Mukhin <dmukhin@ford.com> 
> 
> Introduce a driver framework to abstract UART emulators in the hypervisor.
> 
> That allows for architecture-independent handling of virtual UARTs in the
> console driver and simplifies enabling new UART emulators.
> 
> The framework is built under CONFIG_VUART_FRAMEWORK, which will be
> automatically enabled once the user enables any UART emulator.
> 
> Current implementation supports maximum of one vUART of each kind per domain.
> 
> Use new domain_has_vuart() in the console driver code to check whether to
> forward console input to the domain using vUART.
> 
> Enable console forwarding over vUART for hardware domains with a vUART. That
> enables console forwarding to dom0 on x86, since console can be forwarded only
> to Xen, dom0 and pvshim on x86 as of now.
> 
> Note: existing vUARTs are deliberately *not* hooked to the new framework to
> minimize the scope of the patch: vpl011 (i.e. SBSA) emulator and "vuart" (i.e.
> minimalistic MMIO-mapped dtuart for hwdoms on Arm) are kept unmodified.
> 
> No functional changes for non-x86 architectures.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
> Changes since v4:
> - addressed feedback
> - Link to v4: https://lore.kernel.org/xen-devel/20250731192130.3948419-3-dmukhin@ford.com/
> ---
>  xen/arch/arm/xen.lds.S         |   1 +
>  xen/arch/ppc/xen.lds.S         |   1 +
>  xen/arch/riscv/xen.lds.S       |   1 +
>  xen/arch/x86/xen.lds.S         |   1 +
>  xen/common/Kconfig             |   2 +
>  xen/common/Makefile            |   1 +
>  xen/common/emul/Kconfig        |   6 ++
>  xen/common/emul/Makefile       |   1 +
>  xen/common/emul/vuart/Kconfig  |   6 ++
>  xen/common/emul/vuart/Makefile |   1 +
>  xen/common/emul/vuart/vuart.c  | 156 +++++++++++++++++++++++++++++++++
>  xen/common/keyhandler.c        |   3 +
>  xen/drivers/char/console.c     |   6 +-
>  xen/include/xen/serial.h       |   3 +
>  xen/include/xen/vuart.h        | 116 ++++++++++++++++++++++++
>  xen/include/xen/xen.lds.h      |  10 +++
>  16 files changed, 314 insertions(+), 1 deletion(-)
>  create mode 100644 xen/common/emul/Kconfig
>  create mode 100644 xen/common/emul/Makefile
>  create mode 100644 xen/common/emul/vuart/Kconfig
>  create mode 100644 xen/common/emul/vuart/Makefile
>  create mode 100644 xen/common/emul/vuart/vuart.c
>  create mode 100644 xen/include/xen/vuart.h
> 
> diff --git a/xen/arch/arm/xen.lds.S b/xen/arch/arm/xen.lds.S
> index db17ff1efa98..cd05b18770f4 100644
> --- a/xen/arch/arm/xen.lds.S
> +++ b/xen/arch/arm/xen.lds.S
> @@ -58,6 +58,7 @@ SECTIONS
>         *(.rodata)
>         *(.rodata.*)
>         VPCI_ARRAY
> +       VUART_ARRAY
>         *(.data.rel.ro)
>         *(.data.rel.ro.*)
>  
> diff --git a/xen/arch/ppc/xen.lds.S b/xen/arch/ppc/xen.lds.S
> index 1de0b77fc6b9..f9d4e5b0dcd8 100644
> --- a/xen/arch/ppc/xen.lds.S
> +++ b/xen/arch/ppc/xen.lds.S
> @@ -52,6 +52,7 @@ SECTIONS
>          *(.rodata)
>          *(.rodata.*)
>          VPCI_ARRAY
> +        VUART_ARRAY
>          *(.data.rel.ro)
>          *(.data.rel.ro.*)
>  
> diff --git a/xen/arch/riscv/xen.lds.S b/xen/arch/riscv/xen.lds.S
> index edcadff90bfe..59dcaa5fef9a 100644
> --- a/xen/arch/riscv/xen.lds.S
> +++ b/xen/arch/riscv/xen.lds.S
> @@ -47,6 +47,7 @@ SECTIONS
>          *(.rodata)
>          *(.rodata.*)
>          VPCI_ARRAY
> +        VUART_ARRAY
>          *(.data.rel.ro)
>          *(.data.rel.ro.*)
>  
> diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
> index 966e514f2034..d877b93a6964 100644
> --- a/xen/arch/x86/xen.lds.S
> +++ b/xen/arch/x86/xen.lds.S
> @@ -132,6 +132,7 @@ SECTIONS
>         *(.rodata)
>         *(.rodata.*)
>         VPCI_ARRAY
> +       VUART_ARRAY
>         *(.data.rel.ro)
>         *(.data.rel.ro.*)
>  
> diff --git a/xen/common/Kconfig b/xen/common/Kconfig
> index 76f9ce705f7a..78a32b69e2b2 100644
> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -676,4 +676,6 @@ config PM_STATS
>  	  Enable collection of performance management statistics to aid in
>  	  analyzing and tuning power/performance characteristics of the system
>  
> +source "common/emul/Kconfig"
> +
>  endmenu
> diff --git a/xen/common/Makefile b/xen/common/Makefile
> index c316957fcb36..c0734480ee4b 100644
> --- a/xen/common/Makefile
> +++ b/xen/common/Makefile
> @@ -11,6 +11,7 @@ obj-$(filter-out $(CONFIG_X86),$(CONFIG_ACPI)) += device.o
>  obj-$(CONFIG_DEVICE_TREE_PARSE) += device-tree/
>  obj-$(CONFIG_IOREQ_SERVER) += dm.o
>  obj-y += domain.o
> +obj-y += emul/
>  obj-y += event_2l.o
>  obj-y += event_channel.o
>  obj-$(CONFIG_EVTCHN_FIFO) += event_fifo.o
> diff --git a/xen/common/emul/Kconfig b/xen/common/emul/Kconfig
> new file mode 100644
> index 000000000000..7c6764d1756b
> --- /dev/null
> +++ b/xen/common/emul/Kconfig
> @@ -0,0 +1,6 @@
> +menu "Domain Emulation Features"
> +	visible if EXPERT
> +
> +source "common/emul/vuart/Kconfig"
> +
> +endmenu
> diff --git a/xen/common/emul/Makefile b/xen/common/emul/Makefile
> new file mode 100644
> index 000000000000..ae0b575c3901
> --- /dev/null
> +++ b/xen/common/emul/Makefile
> @@ -0,0 +1 @@
> +obj-$(CONFIG_VUART_FRAMEWORK) += vuart/
> diff --git a/xen/common/emul/vuart/Kconfig b/xen/common/emul/vuart/Kconfig
> new file mode 100644
> index 000000000000..ce1b976b7da7
> --- /dev/null
> +++ b/xen/common/emul/vuart/Kconfig
> @@ -0,0 +1,6 @@
> +config VUART_FRAMEWORK
> +	bool
> +
> +menu "UART Emulation"
> +
> +endmenu
> diff --git a/xen/common/emul/vuart/Makefile b/xen/common/emul/vuart/Makefile
> new file mode 100644
> index 000000000000..97f792dc6641
> --- /dev/null
> +++ b/xen/common/emul/vuart/Makefile
> @@ -0,0 +1 @@
> +obj-y += vuart.o
> diff --git a/xen/common/emul/vuart/vuart.c b/xen/common/emul/vuart/vuart.c
> new file mode 100644
> index 000000000000..7b277d00d5c7
> --- /dev/null
> +++ b/xen/common/emul/vuart/vuart.c
> @@ -0,0 +1,156 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * UART emulator framework.
> + *
> + * Copyright 2025 Ford Motor Company
> + */
> +
> +#include <xen/err.h>
> +#include <xen/sched.h>
> +#include <xen/vuart.h>
> +#include <xen/xvmalloc.h>
> +
> +#define for_each_emulator(e) \
> +    for ( e = vuart_array_start; e < vuart_array_end; e++ )
> +
> +extern const struct vuart_emulator vuart_array_start[];
> +extern const struct vuart_emulator vuart_array_end[];
> +
> +static const struct vuart_emulator *
> +vuart_match_by_compatible(struct domain *d, const char *compat)
> +{
> +    const struct vuart_emulator *emulator;
> +
> +    if ( d->console.vuart )
> +        return NULL;
> +
> +    for_each_emulator(emulator)
> +        if ( emulator->compatible &&
> +             !strncmp(emulator->compatible, compat,
> +                      strlen(emulator->compatible)) )

strncmp will continue until the given count even if compat is shorter


> +            return emulator;
> +
> +    return NULL;
> +}
> +
> +static struct vuart *vuart_find_by_console_permission(const struct domain *d)
> +{
> +    struct vuart *vuart = d->console.vuart;
> +
> +    ASSERT(d->console.input_allowed);

This ASSERT looks suspicious as we haven't even checked that vuart!=NULL
yet. I would remove it


> +    if ( !vuart || !vuart->emulator || !vuart->emulator->put_rx ||
> +         !(vuart->flags & VUART_CONSOLE_INPUT))
> +        return NULL;
> +
> +    return vuart;
> +}
> +
> +struct vuart *vuart_find_by_io_range(struct domain *d, unsigned long addr,
> +                                     unsigned long size)
> +{
> +    struct vuart *vuart = d->console.vuart;
> +
> +    if ( !vuart || !vuart->info )
> +        return NULL;

You might as well call vuart_find_by_console_permission that has all the
checks already

> +
> +    if ( addr >= vuart->info->base_addr &&
> +         addr + size - 1 <= vuart->info->base_addr + vuart->info->size - 1 )
> +        return vuart;
> +
> +    return NULL;
> +}
> +
> +int vuart_init(struct domain *d, struct vuart_info *info)
> +{
> +    const struct vuart_emulator *emulator;
> +    struct vuart *vuart;
> +    int rc;
> +
> +    emulator = vuart_match_by_compatible(d, info->compatible);
> +    if ( !emulator )
> +        return -ENODEV;
> +
> +    vuart = xzalloc(typeof(*vuart));
> +    if ( !vuart )
> +        return -ENOMEM;
> +
> +    vuart->info = xvzalloc(typeof(*info));
> +    if ( !vuart->info )
> +    {
> +        rc = -ENOMEM;
> +        goto err_out;
> +    }
> +    memcpy(vuart->info, info, sizeof(*info));

one thing to note is that the fields (strings) compatible and name are
copied by address, I am not if it is OK but FYI


> +    vuart->vdev = emulator->alloc(d, vuart->info);
> +    if ( IS_ERR(vuart->vdev) )
> +    {
> +        rc = PTR_ERR(vuart->vdev);
> +        goto err_out;

this path leads to vuart->info not being freed


> +    }
> +
> +    vuart->emulator = emulator;
> +    vuart->owner = d;
> +    vuart->flags |= VUART_CONSOLE_INPUT;
> +
> +    d->console.input_allowed = true;
> +    d->console.vuart = vuart;
> +
> +    return 0;
> +
> + err_out:
> +    XVFREE(vuart);
> +    return rc;
> +}
> +
> +/*
> + * Release any resources taken by UART emulators.
> + *
> + * NB: no flags are cleared, since currently exit() is called only during
> + * domain destroy.
> + */
> +void vuart_deinit(struct domain *d)
> +{
> +    struct vuart *vuart = d->console.vuart;
> +
> +    if ( vuart )
> +    {
> +        vuart->emulator->free(vuart);

should we pass vuart or vuart->vdev here? The emulator state is supposed
to be vuart->vdev?

> +        XVFREE(vuart->info);
> +    }
> +
> +    XVFREE(d->console.vuart);
> +}
> +
> +void vuart_dump_state(const struct domain *d)
> +{
> +    struct vuart *vuart = d->console.vuart;
> +
> +    if ( vuart )
> +        vuart->emulator->dump_state(vuart);

also here vuart->vdev?


> +}
> +
> +/*
> + * Put character to the *first* suitable emulated UART's FIFO.
> + */
> +int vuart_put_rx(struct domain *d, char c)
> +{
> +    struct vuart *vuart = vuart_find_by_console_permission(d);
> +
> +    return vuart ? vuart->emulator->put_rx(vuart, c) : -ENODEV;

and here?


> +}
> +
> +bool domain_has_vuart(const struct domain *d)
> +{
> +    return vuart_find_by_console_permission(d);
> +}
> +
> +/*
> + * Local variables:
> + * mode: C
> + * c-file-style: "BSD"
> + * c-basic-offset: 4
> + * indent-tabs-mode: nil
> + * End:
> + */
> diff --git a/xen/common/keyhandler.c b/xen/common/keyhandler.c
> index cb6df2823b00..156e64d9eb58 100644
> --- a/xen/common/keyhandler.c
> +++ b/xen/common/keyhandler.c
> @@ -22,6 +22,7 @@
>  #include <xen/mm.h>
>  #include <xen/watchdog.h>
>  #include <xen/init.h>
> +#include <xen/vuart.h>
>  #include <asm/div64.h>
>  
>  static unsigned char keypress_key;
> @@ -352,6 +353,8 @@ static void cf_check dump_domains(unsigned char key)
>                             v->periodic_period / 1000000);
>              }
>          }
> +
> +        vuart_dump_state(d);
>      }
>  
>      for_each_domain ( d )
> diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
> index 9bd5b4825da6..d5164897a776 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/vuart.h>
>  
>  #ifdef CONFIG_X86
>  #include <asm/guest.h>
> @@ -596,11 +597,12 @@ static void __serial_rx(char c)
>      if ( !d )
>          return;
>  
> -    if ( is_hardware_domain(d) )
> +    if ( is_hardware_domain(d) && !domain_has_vuart(d) )
>      {
>          /*
>           * Deliver input to the hardware domain buffer, unless it is
>           * already full.
> +         * NB: must be the first check: hardware domain may have emulated UART.
>           */
>          if ( (serial_rx_prod - serial_rx_cons) != SERIAL_RX_SIZE )
>              serial_rx_ring[SERIAL_RX_MASK(serial_rx_prod++)] = c;
> @@ -611,6 +613,8 @@ static void __serial_rx(char c)
>           */
>          send_global_virq(VIRQ_CONSOLE);
>      }
> +    else if ( domain_has_vuart(d) )
> +        rc = vuart_put_rx(d, c);
>  #ifdef CONFIG_SBSA_VUART_CONSOLE
>      else
>          /* Deliver input to the emulated UART. */
> diff --git a/xen/include/xen/serial.h b/xen/include/xen/serial.h
> index 8e1844555208..d7e81f098359 100644
> --- a/xen/include/xen/serial.h
> +++ b/xen/include/xen/serial.h
> @@ -36,6 +36,9 @@ struct vuart_info {
>      unsigned long data_off;     /* Data register offset */
>      unsigned long status_off;   /* Status register offset */
>      unsigned long status;       /* Ready status value */
> +    unsigned int irq;           /* Interrupt */
> +    const char *compatible;     /* Compatible string */
> +    const char *name;           /* User-friendly name */
>  };
>  
>  struct serial_port {
> diff --git a/xen/include/xen/vuart.h b/xen/include/xen/vuart.h
> new file mode 100644
> index 000000000000..ca025b4179be
> --- /dev/null
> +++ b/xen/include/xen/vuart.h
> @@ -0,0 +1,116 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * UART emulator framework.
> + *
> + * Copyright 2025 Ford Motor Company
> + */
> +
> +#ifndef XEN_VUART_H
> +#define XEN_VUART_H
> +
> +#include <xen/serial.h>
> +#include <public/xen.h>
> +
> +struct vuart_emulator;
> +
> +enum {
> +    VUART_CONSOLE_INPUT = 0U << 1, /** Physical console input forwarding. */

code style: single *
This flag is zero, is that intended?


> +};
> +
> +
> +/*
> + * FIXME: #ifdef is temporary to avoid clash with
> + *   arch/arm/include/asm/domain.h
> + */
> +#ifdef CONFIG_VUART_FRAMEWORK
> +struct vuart {
> +    const struct vuart_emulator *emulator;
> +    struct vuart_info *info;
> +    struct domain *owner;
> +    uint32_t flags;
> +    void *vdev;
> +};
> +#endif
> +
> +struct vuart_emulator {
> +    /* UART compatible string. Cannot be NULL or empty. */
> +    const char *compatible;
> +
> +    /*
> +     * Allocate emulated UART state (RX/TX FIFOs, locks, initialize registers,
> +     * hook I/O handlers, etc.)
> +     * Cannot be NULL.
> +     */
> +    void *(*alloc)(struct domain *d, const struct vuart_info *info);
> +
> +    /*
> +     * Release resources used to emulate UART state (flush RX/TX FIFOs, unhook
> +     * I/O handlers, etc.).
> +     * Cannot be NULL.
> +     */
> +    void (*free)(void *arg);
> +
> +    /*
> +     * Print emulated UART state, including registers, on the console.
> +     * Can be NULL.
> +     */
> +    void (*dump_state)(void *arg);
> +
> +    /*
> +     * Place character to the emulated RX FIFO.
> +     * Used to forward physical console input to the guest OS.
> +     * Can be NULL.
> +     */
> +    int (*put_rx)(void *arg, char c);
> +};
> +
> +#define VUART_REGISTER(name, x) \
> +    static const struct vuart_emulator name##_entry \
> +        __used_section(".data.rel.ro.vuart") = x
> +
> +struct vuart *vuart_find_by_io_range(struct domain *d,
> +                                     unsigned long base_addr,
> +                                     unsigned long size);
> +
> +int vuart_put_rx(struct domain *d, char c);
> +
> +#ifdef CONFIG_VUART_FRAMEWORK
> +
> +int vuart_init(struct domain *d, struct vuart_info *info);
> +void vuart_deinit(struct domain *d);
> +void vuart_dump_state(const struct domain *d);
> +bool domain_has_vuart(const struct domain *d);
> +
> +#else
> +
> +static inline int vuart_init(struct domain *d, struct vuart_info *info)
> +{
> +    return 0;
> +}
> +
> +static inline void vuart_deinit(struct domain *d)
> +{
> +}
> +
> +static inline void vuart_dump_state(const struct domain *d)
> +{
> +}
> +
> +static inline bool domain_has_vuart(const struct domain *d)
> +{
> +    return false;
> +}
> +
> +#endif /* CONFIG_VUART_FRAMEWORK */
> +
> +#endif /* XEN_VUART_H */
> +
> +/*
> + * Local variables:
> + * mode: C
> + * c-file-style: "BSD"
> + * c-basic-offset: 4
> + * indent-tabs-mode: nil
> + * End:
> + */
> +
> diff --git a/xen/include/xen/xen.lds.h b/xen/include/xen/xen.lds.h
> index b126dfe88792..2d65f32ddad3 100644
> --- a/xen/include/xen/xen.lds.h
> +++ b/xen/include/xen/xen.lds.h
> @@ -194,4 +194,14 @@
>  #define VPCI_ARRAY
>  #endif
>  
> +#ifdef CONFIG_VUART_FRAMEWORK
> +#define VUART_ARRAY              \
> +       . = ALIGN(POINTER_ALIGN); \
> +       vuart_array_start = .;    \
> +       *(.data.rel.ro.vuart)     \
> +       vuart_array_end = .;
> +#else
> +#define VUART_ARRAY
> +#endif
> +
>  #endif /* __XEN_LDS_H__ */
> -- 
> 2.51.0
> 


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 19:29:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 19:29:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1102020.1454812 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us4nC-00021m-Cy; Fri, 29 Aug 2025 19:29:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1102020.1454812; Fri, 29 Aug 2025 19:29: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 1us4nC-00021f-AS; Fri, 29 Aug 2025 19:29:46 +0000
Received: by outflank-mailman (input) for mailman id 1102020;
 Fri, 29 Aug 2025 19:29:45 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=b4pU=3J=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1us4nB-00021Z-56
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 19:29:45 +0000
Received: from mail-wr1-x42a.google.com (mail-wr1-x42a.google.com
 [2a00:1450:4864:20::42a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 83fe1a0c-850e-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 21:29:44 +0200 (CEST)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-3cdc54cabb1so960549f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 12:29:44 -0700 (PDT)
Received: from localhost.localdomain (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3cf34491a65sm4324054f8f.56.2025.08.29.12.29.41
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 29 Aug 2025 12:29: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>
X-Inumbo-ID: 83fe1a0c-850e-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756495783; x=1757100583; 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=kWB8Pv2sqAgv9Nea+D2JzgKMYzdAPnpLmqubRuhPgt8=;
        b=SZ/Cf5gismCvddg6rw2HxHKF+XQNGQZ0oLVNr2pjeSSVVOy2PT/0Z+O4W/YqSaW2sV
         wlvxOs8NAFfFjuQvzjCzXvWae24L+DoFgaF1nS0sv/ao/cWa0HFs3fMqHjNG0x6roF9l
         V/0+DNDo8oei1QvKpJMK5s2O0DX0PdYLQKihw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756495783; x=1757100583;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=kWB8Pv2sqAgv9Nea+D2JzgKMYzdAPnpLmqubRuhPgt8=;
        b=NS4titaKOH1licuksUXXggUIw7wMQ/O3RQAUEQYifiL6mOMvtcN1Gh4N1IuDILuLj1
         BQtvakBzyOdYLZIhfvz2mS/4U9jfgwIO/sBigB22GOCCYez8UA61SFCtVcXTWK8i04SN
         XBljc7ju0GwtvcrD1D0CoFnBiFWTbsdZIO9JXtKjhFw7QIlaM6Xb7OiEiWR0yUD5apay
         SZy9K/UMVcF9EBYOCU/2cEMww7xhA72wkiuk68lqnXt3yaXprbqw81hPkJgeHtMSYUXT
         bItfn4sSGkgF9XuL8qq20r/PDsqiMtuoGfBKdk0cfJSzZGqZVoBExNP/cQ4ENPPDuNoR
         5bhw==
X-Gm-Message-State: AOJu0Yy6lmfkayAol3iXWHMiRy57Tu5KETaUvcC8um58SpZLZ0mZLY35
	6ZOlNRGNpNsM3kozfU+wZc8T0tTRlXkb/sMY104Y8E33fdgGOFIdy3SM5gH/aO2PdLryLs8OmTh
	CptOU
X-Gm-Gg: ASbGncvNXnLb3pqemBOf0Itz0u3FAvXg6CQQ+tbkv7EAYR9INRNeRo/qUn+CNopl4nx
	vNxCX1Mlbjn5XVUF8xFVINkS00/RugRUMFhWVU8XNBT0Aj+MwVGoWNOVWpVrJP2ZULTy6N2KDw0
	4WuiF/x6gpvnLbgREgUJX2v8oPMqcn68pqMiPQWrcsWiQJuiuAlcan40ozqTnDlwqVsrcitBJ1u
	F2RJ4VRq1XATQQNEUaH/zBc81q5dNbCsXw0DtBmCwrCQCvDgGNIRfD0hyuhLNIOPL3sHur8MN6Q
	2L4ua1eB+wREHZs+GUbX0ExnNYNo1926ZgRj/C1NxkvjaFc4FWo2q5U9IUqwE/+hZN9Z7+/LTK7
	pyL1vU14VIErF4B7spnXWSyz71StVrHvyoFL6r07y6K6L6i3hRbaX/RzSvvaWfqTe0w2bhjBVta
	0AlY/U4fVj8JI=
X-Google-Smtp-Source: AGHT+IFVz0Q1xvsJTii6GiHVD1gt4bLIe1V4qPxG31Fi/gBSG6mI8P9dCXnVwwqgg2Fudo/3pRWdwA==
X-Received: by 2002:a05:6000:18ad:b0:3b7:9c79:32bb with SMTP id ffacd0b85a97d-3c5dcdf9bd9mr25803363f8f.44.1756495783130;
        Fri, 29 Aug 2025 12:29:43 -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>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH] x86/gen-cpuid: Fix debugging for cycle detection
Date: Fri, 29 Aug 2025 20:29:39 +0100
Message-Id: <20250829192939.1090358-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

Jan reports the following exception when using the cycle debugging:

  Feature IBRSB, seen [IBRSB, STIBP, INTEL_PSFD, EIBRS, IPRED_CTRL, RRSBA_CTRL, RRSBA, BHI_CTRL], to_process [SSBD]
  Traceback (most recent call last):
    File "/local/xen.git/xen/../xen/tools/gen-cpuid.py", line 594, in <module>
      sys.exit(main())
               ^^^^^^
    File "/local/xen.git/xen/../xen/tools/gen-cpuid.py", line 588, in main
      crunch_numbers(state)
    File "/local/xen.git/xen/../xen/tools/gen-cpuid.py", line 366, in crunch_numbers
      (state.names[feat], repl(seen), repl(to_process)))
                                      ^^^^^^^^^^^^^^^^
    File "/local/xen.git/xen/../xen/tools/gen-cpuid.py", line 364, in repl
      return "[" + ", ".join((state.names[x] for x in l)) + "]"
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/local/xen.git/xen/../xen/tools/gen-cpuid.py", line 364, in <genexpr>
      return "[" + ", ".join((state.names[x] for x in l)) + "]"
                              ~~~~~~~~~~~^^^
  KeyError: 534
  make[2]: *** [/local/xen.git/xen/include/xen/lib/x86/Makefile:9: cpuid-autogen.h] Error 1

This is caused by commit ce8c930851a5 ("x86/cpu-policy: MSR_ARCH_CAPS feature
names") being rather lazy and marking dependenices on unknown features.

Introduce a helper to pick the known features in a range, and use it for
ARCH_CAPS.

Additionally, remove trailing whitepsace from the debug print.

Reported-by: Jan Beulich <jbeulich@suse.com>
Fixes: ce8c930851a5 ("x86/cpu-policy: MSR_ARCH_CAPS feature names")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau MonnÃ© <roger.pau@citrix.com>
---
 xen/tools/gen-cpuid.py | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/xen/tools/gen-cpuid.py b/xen/tools/gen-cpuid.py
index 6f96d1368e9e..403369aedcd9 100755
--- a/xen/tools/gen-cpuid.py
+++ b/xen/tools/gen-cpuid.py
@@ -168,6 +168,10 @@ def crunch_numbers(state):
     state.hvm_shadow_max = state.pv_max         | state.raw['S'] | state.raw['s']
     state.hvm_hap_max =    state.hvm_shadow_max | state.raw['H'] | state.raw['h']
 
+    def feat_range(start, last):
+        """ Select all known features in the given range """
+        return [ x for x in state.names.keys() if start <= x <= last ]
+
     #
     # Feature dependency information.
     #
@@ -338,7 +342,7 @@ def crunch_numbers(state):
         PSFD: [EPSF],
 
         # The ARCH_CAPS CPUID bit enumerates the availability of the whole register.
-        ARCH_CAPS: list(range(RDCL_NO, RDCL_NO + 64)),
+        ARCH_CAPS: feat_range(RDCL_NO, RDCL_NO + 63),
 
         # The behaviour described by RRSBA depend on eIBRS being active.
         EIBRS: [RRSBA],
@@ -362,7 +366,7 @@ def crunch_numbers(state):
             # To debug, uncomment the following lines:
             # def repl(l):
             #     return "[" + ", ".join((state.names[x] for x in l)) + "]"
-            # sys.stderr.write("Feature %s, seen %s, to_process %s \n" % \
+            # sys.stderr.write("Feature %s, seen %s, to_process %s\n" % \
             #     (state.names[feat], repl(seen), repl(to_process)))
 
             f = to_process.pop(0)

base-commit: e7c689a249ca6b8d14a077bb0f3311eaeda2ca19
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Aug 29 19:33:21 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 19:33:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1102036.1454823 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us4qa-0003nE-W3; Fri, 29 Aug 2025 19:33:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1102036.1454823; Fri, 29 Aug 2025 19:33: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 1us4qa-0003n7-TO; Fri, 29 Aug 2025 19:33:16 +0000
Received: by outflank-mailman (input) for mailman id 1102036;
 Fri, 29 Aug 2025 19:33:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=7zkx=3J=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1us4qZ-0003n1-NT
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 19:33:15 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ffe75c2a-850e-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 21:33:13 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 0EEB342B68;
 Fri, 29 Aug 2025 19:33:11 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8FE04C4CEF0;
 Fri, 29 Aug 2025 19:33:09 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ffe75c2a-850e-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1756495990;
	bh=wZfe/SzRY3Hobe9zK6Ro2vXFfvDZ10+/C6YFXKhgA/s=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=dIUgLUNEP4zAE4P8tyDFgveVwcJyRhl2ucu1AtrYXWaCCiu0FmbPSYcf37UUk+oKJ
	 3r87vZKC0/UxzZNJvRk0xdLazvVrMbyLPCab0fYPHJZAeIZ1AD27MyvNSf86yxXnIV
	 Y7DpKaei+NlBue2ugkta2Jikv7iQVMi3hhbZKxxu3bJDKC/taU95WkpHcoomPG5mu5
	 14JNkxq2HMAXciKLrDVBJwCIKnhMoNbQM+F8Ra6Y5QKsfQRgxysMaVNbgz9TAbwOD0
	 uwoFy+6nEFlbN14AX555karhyIW2auewezuGtdZNX4pkoXX8lbS1ROjGVR3aHnqqmh
	 7zTJfIi6LAfVg==
Date: Fri, 29 Aug 2025 12:32:46 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: dmukhin@xen.org
cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, 
    anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, 
    michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, 
    dmukhin@ford.com
Subject: Re: [PATCH v5 02/15] xen/8250-uart: update definitions
In-Reply-To: <20250828235409.2835815-3-dmukhin@ford.com>
Message-ID: <alpine.DEB.2.22.394.2508291232390.341243@ubuntu-linux-20-04-desktop>
References: <20250828235409.2835815-1-dmukhin@ford.com> <20250828235409.2835815-3-dmukhin@ford.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 27 Aug 2025, dmukhin@xen.org wrote:
> From: Denis Mukhin <dmukhin@ford.com> 
> 
> Added missing definitions needed for NS16550 UART emulator.
> 
> Newly introduced MSR definitions re-used in the existing ns16550 driver.
> 
> Also, corrected FCR DMA definition bit#3 (0x08) as per:
>   https://www.ti.com/lit/ds/symlink/tl16c550c.pdf
> See "7.7.2 FIFO Control Register (FCR)".
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
> Changes since v4:
> - reused newly introduced UART_IIR and UART_IER bits in ns16550 driver
> - Link to v4: https://lore.kernel.org/xen-devel/20250731192130.3948419-5-dmukhin@ford.com/
> ---
>  xen/drivers/char/ns16550.c  | 16 ++++++------
>  xen/include/xen/8250-uart.h | 50 ++++++++++++++++++++++++++++++-------
>  2 files changed, 49 insertions(+), 17 deletions(-)
> 
> diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c
> index df7fff7f81df..0e80fadbb894 100644
> --- a/xen/drivers/char/ns16550.c
> +++ b/xen/drivers/char/ns16550.c
> @@ -388,7 +388,7 @@ static void __init cf_check ns16550_init_preirq(struct serial_port *port)
>  
>      /* Check this really is a 16550+. Otherwise we have no FIFOs. */
>      if ( uart->fifo_size <= 1 &&
> -         ((ns_read_reg(uart, UART_IIR) & 0xc0) == 0xc0) &&
> +         ((ns_read_reg(uart, UART_IIR) & UART_IIR_FE) == UART_IIR_FE) &&
>           ((ns_read_reg(uart, UART_FCR) & UART_FCR_TRG14) == UART_FCR_TRG14) )
>          uart->fifo_size = 16;
>  }
> @@ -728,20 +728,20 @@ static int __init check_existence(struct ns16550 *uart)
>       * Mask out IER[7:4] bits for test as some UARTs (e.g. TL
>       * 16C754B) allow only to modify them if an EFR bit is set.
>       */
> -    scratch2 = ns_read_reg(uart, UART_IER) & 0x0f;
> -    ns_write_reg(uart,UART_IER, 0x0F);
> -    scratch3 = ns_read_reg(uart, UART_IER) & 0x0f;
> +    scratch2 = ns_read_reg(uart, UART_IER) & UART_IER_MASK;
> +    ns_write_reg(uart, UART_IER, UART_IER_MASK);
> +    scratch3 = ns_read_reg(uart, UART_IER) & UART_IER_MASK;
>      ns_write_reg(uart, UART_IER, scratch);
> -    if ( (scratch2 != 0) || (scratch3 != 0x0F) )
> +    if ( (scratch2 != 0) || (scratch3 != UART_IER_MASK) )
>          return 0;
>  
>      /*
>       * Check to see if a UART is really there.
>       * Use loopback test mode.
>       */
> -    ns_write_reg(uart, UART_MCR, UART_MCR_LOOP | 0x0A);
> -    status = ns_read_reg(uart, UART_MSR) & 0xF0;
> -    return (status == 0x90);
> +    ns_write_reg(uart, UART_MCR, UART_MCR_LOOP | UART_MCR_RTS | UART_MCR_OUT2);
> +    status = ns_read_reg(uart, UART_MSR) & UART_MSR_STATUS;
> +    return (status == (UART_MSR_CTS | UART_MSR_DCD));
>  }
>  
>  #ifdef CONFIG_HAS_PCI
> diff --git a/xen/include/xen/8250-uart.h b/xen/include/xen/8250-uart.h
> index d13352940c13..bc11cdc376c9 100644
> --- a/xen/include/xen/8250-uart.h
> +++ b/xen/include/xen/8250-uart.h
> @@ -32,6 +32,7 @@
>  #define UART_MCR          0x04    /* Modem control        */
>  #define UART_LSR          0x05    /* line status          */
>  #define UART_MSR          0x06    /* Modem status         */
> +#define UART_SCR          0x07    /* Scratch pad          */
>  #define UART_USR          0x1f    /* Status register (DW) */
>  #define UART_DLL          0x00    /* divisor latch (ls) (DLAB=1) */
>  #define UART_DLM          0x01    /* divisor latch (ms) (DLAB=1) */
> @@ -42,6 +43,8 @@
>  #define UART_IER_ETHREI   0x02    /* tx reg. empty        */
>  #define UART_IER_ELSI     0x04    /* rx line status       */
>  #define UART_IER_EMSI     0x08    /* MODEM status         */
> +#define UART_IER_MASK \
> +    (UART_IER_ERDAI | UART_IER_ETHREI | UART_IER_ELSI | UART_IER_EMSI)
>  
>  /* Interrupt Identification Register */
>  #define UART_IIR_NOINT    0x01    /* no interrupt pending */
> @@ -51,12 +54,19 @@
>  #define UART_IIR_THR      0x02    /*  - tx reg. empty     */
>  #define UART_IIR_MSI      0x00    /*  - MODEM status      */
>  #define UART_IIR_BSY      0x07    /*  - busy detect (DW) */
> +#define UART_IIR_FE       0xc0    /* FIFO enabled (2 bits) */
>  
>  /* FIFO Control Register */
> -#define UART_FCR_ENABLE   0x01    /* enable FIFO          */
> -#define UART_FCR_CLRX     0x02    /* clear Rx FIFO        */
> -#define UART_FCR_CLTX     0x04    /* clear Tx FIFO        */
> -#define UART_FCR_DMA      0x10    /* enter DMA mode       */
> +#define UART_FCR_ENABLE     BIT(0, U)   /* enable FIFO          */
> +#define UART_FCR_CLRX       BIT(1, U)   /* clear Rx FIFO        */
> +#define UART_FCR_CLTX       BIT(2, U)   /* clear Tx FIFO        */
> +#define UART_FCR_DMA        BIT(3, U)   /* enter DMA mode       */
> +#define UART_FCR_RESERVED0  BIT(4, U)   /* reserved; always 0   */
> +#define UART_FCR_RESERVED1  BIT(5, U)   /* reserved; always 0   */
> +#define UART_FCR_RTB0       BIT(6, U)   /* receiver trigger bit #0 */
> +#define UART_FCR_RTB1       BIT(7, U)   /* receiver trigger bit #1 */
> +#define UART_FCR_TRG_MASK   (UART_FCR_RTB0 | UART_FCR_RTB1)
> +
>  #define UART_FCR_TRG1     0x00    /* Rx FIFO trig lev 1   */
>  #define UART_FCR_TRG4     0x40    /* Rx FIFO trig lev 4   */
>  #define UART_FCR_TRG8     0x80    /* Rx FIFO trig lev 8   */
> @@ -96,11 +106,32 @@
>  #define UART_LCR_CONF_MODE_B	0xBF		/* Configuration mode B */
>  
>  /* Modem Control Register */
> -#define UART_MCR_DTR      0x01    /* Data Terminal Ready  */
> -#define UART_MCR_RTS      0x02    /* Request to Send      */
> -#define UART_MCR_OUT2     0x08    /* OUT2: interrupt mask */
> -#define UART_MCR_LOOP     0x10    /* Enable loopback test mode */
> -#define UART_MCR_TCRTLR   0x40    /* Access TCR/TLR (TI16C752, EFR[4]=1) */
> +#define UART_MCR_DTR            BIT(0, U)   /* Data Terminal Ready  */
> +#define UART_MCR_RTS            BIT(1, U)   /* Request to Send      */
> +#define UART_MCR_OUT1           BIT(2, U)   /* OUT1: interrupt mask */

is OUT1 an interrupt mask actually?


> +#define UART_MCR_OUT2           BIT(3, U)   /* OUT2: interrupt mask */
> +#define UART_MCR_LOOP           BIT(4, U)   /* Enable loopback test mode */
> +#define UART_MCR_RESERVED0      BIT(5, U)   /* Reserved #0 */
> +#define UART_MCR_TCRTLR         BIT(6, U)   /* Access TCR/TLR (TI16C752, EFR[4]=1) */
> +#define UART_MCR_RESERVED1      BIT(7, U)   /* Reserved #1 */
> +#define UART_MCR_MASK \
> +    (UART_MCR_DTR | UART_MCR_RTS | \
> +     UART_MCR_OUT1 | UART_MCR_OUT2 | \
> +     UART_MCR_LOOP | UART_MCR_TCRTLR)
> +
> +/* Modem Status Register */
> +#define UART_MSR_DCTS           BIT(0, U)   /* Change in CTS */
> +#define UART_MSR_DDSR           BIT(1, U)   /* Change in DSR */
> +#define UART_MSR_TERI           BIT(2, U)   /* Change in RI */
> +#define UART_MSR_DDCD           BIT(3, U)   /* Change in CTS */

Changes in DCD, can be done on commit


> +#define UART_MSR_CTS            BIT(4, U)
> +#define UART_MSR_DSR            BIT(5, U)
> +#define UART_MSR_RI             BIT(6, U)
> +#define UART_MSR_DCD            BIT(7, U)
> +#define UART_MSR_CHANGE \
> +    (UART_MSR_DCTS | UART_MSR_DDSR | UART_MSR_TERI | UART_MSR_DDCD)
> +#define UART_MSR_STATUS \
> +    (UART_MSR_CTS | UART_MSR_DSR | UART_MSR_RI | UART_MSR_DCD)
>  
>  /* Line Status Register */
>  #define UART_LSR_DR       0x01    /* Data ready           */
> @@ -111,6 +142,7 @@
>  #define UART_LSR_THRE     0x20    /* Xmit hold reg empty  */
>  #define UART_LSR_TEMT     0x40    /* Xmitter empty        */
>  #define UART_LSR_ERR      0x80    /* Error                */
> +#define UART_LSR_MASK     (UART_LSR_OE | UART_LSR_BI)
>  
>  /* These parity settings can be ORed directly into the LCR. */
>  #define UART_PARITY_NONE  (0<<3)
> -- 
> 2.51.0
> 


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 19:46:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 19:46:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1102048.1454833 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us53B-0005ek-2b; Fri, 29 Aug 2025 19:46:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1102048.1454833; Fri, 29 Aug 2025 19: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 1us53A-0005ed-Vp; Fri, 29 Aug 2025 19:46:16 +0000
Received: by outflank-mailman (input) for mailman id 1102048;
 Fri, 29 Aug 2025 19:46:15 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=sr3h=3J=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1us539-0005eX-Gq
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 19:46:15 +0000
Received: from OSPPR02CU001.outbound.protection.outlook.com
 (mail-norwayeastazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20f::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ca9f88bc-8510-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 21:46:01 +0200 (CEST)
Received: from DU5PR03MB10441.eurprd03.prod.outlook.com (2603:10a6:10:516::14)
 by DU0PR03MB8912.eurprd03.prod.outlook.com (2603:10a6:10:476::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Fri, 29 Aug
 2025 19:45:58 +0000
Received: from DU5PR03MB10441.eurprd03.prod.outlook.com
 ([fe80::eeb8:470:6260:e5f4]) by DU5PR03MB10441.eurprd03.prod.outlook.com
 ([fe80::eeb8:470:6260:e5f4%7]) with mapi id 15.20.9073.021; Fri, 29 Aug 2025
 19:45: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>
X-Inumbo-ID: ca9f88bc-8510-11f0-8dd7-1b34d833f44b
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gZlyVId+WpKgGPw3NABFT3tJOgzkLXwllMwTefPir2TjewQ12wwZYby7zvWP+JbBVyYyWDhnuSYfMAsM7QWezRAxof4yhw5NOTd3bpw53T0V6GkBrbuMZpfNjhDUqv0f7dApq4t3v/5p8iGSQdlKwlR1JYPuzdEh0HQT8BimO9JCU89ROJxMjRkYXF6P/WB2ZQUcxf9332Guz0dUek/XYj+ZmcsevfShfbNUAasEwQ5X2SZ8UXEV1El9I+8/FY59IZBMpfMM8ZQ/9tEpagMGNPWXHwuK1uFVGAnH7WqY6CnTCYYl2xBuU0DEukH20/F+SIoK7DLfuVzinoG+LdYvhg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=yXVcvq/fdoleBZbWJJJeSggo2ELFRXi7QGNwwQx7Www=;
 b=tsX30wRbK3h7WSYWDRg1vs23rjPZU0ruZedWUyFi3JWayJybujt0EuoGHOgDp4ACbERN5Hi+d2IDItjEjaFNETeyxsolsKTZTV64iArfhK0nOjmirwxX1zgSRGAXm9VMsmDGHcE8vK0ONEScBkCezJj+HYL6IX9AvljK/W3S1orPXVG4yOL2M2LUeG9g9D8KwCXOGO9xZe0l2LrmFTAbtC1KkgG0sICt+RuXNro8zpitFjoHioQU76hKFfRui1TqqgIPrh+5oknns0bO+6ut5BWSTjcxsCyhhfikDU0PcpcLGgbT6NWBYubdCztkf1eszl1SUdw48122BObrMVeb7g==
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=yXVcvq/fdoleBZbWJJJeSggo2ELFRXi7QGNwwQx7Www=;
 b=qADOs72mrqc45O3gZ9Tasmsw5bMyuIrVyfVGE2WkO5jGejhrvPD8ZpiPd5KL2/c4FwTd0HP2TzzdVu0Zj0ip3rfauDLsK7TG7XNW7daBqFbep6+aSt60M1se+vK12ABRN4DZCYMQ6KlFd6fduX8yQTD7ZVMwsOEwss1Dc+DQfoSq3vp4UECYHL2jAD9oF7KcxwfuqF7cE0TiEEMYaFueqoNxAEGRu48vkLw54LCUDKAVQRMJycH+igCnBtCKXKaxhCDtOxWjdjXVBjDopO018w9IKyL+82c+Ie9RoHYI1yHxTaJzRXVagUrcC7mNyV+qJeFNm0pFy04EUpYguvREnw==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"olekstysh@gmail.com" <olekstysh@gmail.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v5 04/12] xen/arm/irq: add handling for IRQs in the eSPI
 range
Thread-Topic: [PATCH v5 04/12] xen/arm/irq: add handling for IRQs in the eSPI
 range
Thread-Index: AQHcGP7cvDFEqdT0B0atuMEMYN3Piw==
Date: Fri, 29 Aug 2025 19:45:58 +0000
Message-ID: <87tt1pykqz.fsf@epam.com>
References: <cover.1756481577.git.leonid_komarianskyi@epam.com>
	<e0f76a1533332cef68bfaacbdf57fd05f27764a6.1756481577.git.leonid_komarianskyi@epam.com>
In-Reply-To:
 <e0f76a1533332cef68bfaacbdf57fd05f27764a6.1756481577.git.leonid_komarianskyi@epam.com>
	(Leonid Komarianskyi's message of "Fri, 29 Aug 2025 16:06:19 +0000")
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: DU5PR03MB10441:EE_|DU0PR03MB8912:EE_
x-ms-office365-filtering-correlation-id: 47348f8d-cf24-4b61-c861-08dde734ace4
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|42112799006|1800799024|376014|366016|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?UIG3EpAeaRXJHWQgLL4PUiQr6QB0PhePkQvK6wEkq/5Q4iIGxhy05IW7p+?=
 =?iso-8859-1?Q?D4m+45SZ/7/s8gtbmAQzLYJ4IJghCZhsDjWngIK1Vy24hOyV3hV+1DI0jJ?=
 =?iso-8859-1?Q?9Ln8soSbM557AkWqbQnudUDhZ9n211MrRnE4rppLlDXegNgUmmJD2Tig6N?=
 =?iso-8859-1?Q?lXuE8IoP44N3fVZIltX2y/d+opuz08luuvjpkvtlxQliXw/lgbYgOt9L9r?=
 =?iso-8859-1?Q?mNsPjBP5UwnlJPE0v8ZfKNeFDTo3cOWNb9sZ1FTHupH/ZaPgllqmyx7GXk?=
 =?iso-8859-1?Q?4Z7IjcmDhf/at5xuaIGgO/CKmiJ0Eova126SXib4S6gR9+zfn9FECI1Vb6?=
 =?iso-8859-1?Q?z4ZSk1TmecASm8JqR8y25pfQ+lOdcPR29K6NqIVOABMyf8cidDhLs+Sw0X?=
 =?iso-8859-1?Q?Fn5nPi/Wt8d/CcMXnJz1FKXXrVDBC6rsie6frXmKYDWorQ0K+qEoesXnqN?=
 =?iso-8859-1?Q?Wp6eGR2BEytLGzGG7iRqcIXVNRQx0UcLND9pDZo686dJkc7GSeISi8n8JX?=
 =?iso-8859-1?Q?cOO7zSUsoR6WFYXtOMKi4khd8BPX5HjgFGdNWU/9FuzOaI8nF+M4wZ3lMD?=
 =?iso-8859-1?Q?zExj320IgTKPCZVFND0tSvODRT40/9xSVkJsukdT5hzlkUdcPnLQVbyCEP?=
 =?iso-8859-1?Q?HG0/yCOgOiJdzbZtCbLfQT7s9dD+rPx93ONjCBWIJ1Vic13HCnSm98kQhA?=
 =?iso-8859-1?Q?rzNx2TAyt7W4AE93kXc/bybXucg0kjewJsXEqeJztbHWi/+HDxez6SQKP7?=
 =?iso-8859-1?Q?LVhPBfWHnaxIG4hKbYx774mxsJ0UXNmEBQiYcnCuQdZmDPtGXdXZwtE9+V?=
 =?iso-8859-1?Q?aV+7W3xEYq4ErI4CNnY3M9A9G/hFtH99E1QzIdALrd8QusyO5lU4hSEAu4?=
 =?iso-8859-1?Q?tT0nYy1Y2kVrvuoHTQypB0fAqPX5NSB14pkUvlHdsErsC6pxZzvRtcWv1o?=
 =?iso-8859-1?Q?9dzpAI9X+S/RU+75Hjm/XnW1TugFUBM2CP1Ki5IkyFQCWnMM+O0FSAMMyu?=
 =?iso-8859-1?Q?1yMZPMAVuxZMKhmFQ9kgYbgSMQ1UrEfv+7JS5wRVBRl1YoDVeg4ecJZmje?=
 =?iso-8859-1?Q?ib1DC69BFr8+dITNiugbb7L8wUo5At9SU3vyWxctZrW9IKvRlPVmp1lhiW?=
 =?iso-8859-1?Q?UX3jktN/VPupBUtZxq3VjrL5xUrBevfwMVn3i4pLHnrIS1CiipKmz99j++?=
 =?iso-8859-1?Q?6nNMpUOZv+urphOfhRRRy78KDX+/E/RBfuurnP7YHs1g0zG94On6bXOnnj?=
 =?iso-8859-1?Q?0TJpAwBUTMUpR5hmLrp7DQi8qzMetJh55DsSarLW+e2I4KJF8sspT5Mlbf?=
 =?iso-8859-1?Q?OeUW2vueEoFxd7eS62+PQA+vvWuvBydwVgetdKbC12Fu+hWMkZfAJf40ax?=
 =?iso-8859-1?Q?LeZZHWQgUcWSfGEFi6oRr84u9mETeMk7I8UFkx9z5H51h4AzvGiaR5JO7Q?=
 =?iso-8859-1?Q?7tVIsp+bAqpZl3qpprSljv9JbD4S7qMwwuq8XkEuD9KRkBJkg68YttX5CI?=
 =?iso-8859-1?Q?BP9VGi0NrbS/kswchCW280kBT+MI9WZNIpCWFDHoUX2Q=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU5PR03MB10441.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(42112799006)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?SiuZ7ltKaURQgalraQSqfrqliCNq97AB5HGNySIGF5E9We/CFkiHY+RHJ5?=
 =?iso-8859-1?Q?9alb97QIJnyMK698BKrqGPTMkaWBBP4pDH3UjkzWJL5vdnM2MqIMc6KA4W?=
 =?iso-8859-1?Q?S2zHMnW39QdpWsDs8w9ctRy02ognAg4McjaAsv4E7JMpqP180eh9ERBsJD?=
 =?iso-8859-1?Q?XlsNJ9UR/oYVXA3/xKZbc45oDUZCfGKvgS4tGHt/b6D3Z/lXzPg3f3miFz?=
 =?iso-8859-1?Q?15HW+Eyv9u9yB2sLEL1Wdyoc42vCDHB8ZA4NdvLXgTBam5R67NPSxRf5Oh?=
 =?iso-8859-1?Q?TESFGX2sI0D7jZ2MP8K9nU7PVLWTs8/G2mNrFykEwfmXjtx1f2MjK3qLyo?=
 =?iso-8859-1?Q?+sNaIeOe7bK01Cjxh+gdj+8kGFNMzeCEzIZgyVnqvzg/VUzKEAHyt0XNoh?=
 =?iso-8859-1?Q?4I6PFIwZ3uMWmi/3mS5hAL1L4eTWpsu7Ob3ldegCr77mI7uFIRS44SeJCK?=
 =?iso-8859-1?Q?i6xGky9ZekmPQ6Zm5lW0NTs3Ux4zTv5A9aw12Tjo/1JQnWyVwUsQWKiWDt?=
 =?iso-8859-1?Q?40+Bjw/OC+slN6/m0rZYx8zVzmN0fWpgyHqvfMRb8gakR7iLdwJakIiTNk?=
 =?iso-8859-1?Q?xKAZtiD3jE1w2dowBlCkPHHtPIuu6OIyKOVHsnK2dUZWUF2FkamifzazGt?=
 =?iso-8859-1?Q?MlRFHGGx7aS1/ms2xTVdxf8M0rxGx3YMVSmtIOj2EJhxE11r/7b6Bd2EHE?=
 =?iso-8859-1?Q?P/KuI7f5UNItO4GwL/exnRDvvUOSvjMzEFqsnj785YfGw8tdxwcUiYeThQ?=
 =?iso-8859-1?Q?NXvNKMp+duC6mr3Qps8Uf8I8MBLZw61qh2Wn6ddEJRcpvR/K3J2h3U9EE1?=
 =?iso-8859-1?Q?Wh+q0+2fJURbhFmRXGqwdgRI7nKgVIZBk3vQNNU7Yd5JXDgGkQzBJJamh+?=
 =?iso-8859-1?Q?JpaC480E+1ErYGEoye5XOst1PfENEdZaCDyrZlM0XzskMxWJ52NYjPtrj3?=
 =?iso-8859-1?Q?bGbGBtm/T1SGb7MuYzKY1rn1SQkN9G/+dEvOGC54Ip0FmHM1udFiRYuFlw?=
 =?iso-8859-1?Q?uteFBpPT69SfcN+Sep7NHzTVGG+kal/C9AF2QCuy3kkMtUlA27EYBw301+?=
 =?iso-8859-1?Q?BWEY7Eih+Br0L04F+ayhVmyidu1xQ858xZnHrB5feG9bG6vWsHts1KxyQ1?=
 =?iso-8859-1?Q?81jDm1Nnz1s4IFGY+xrAk6Wj0sB2f/nO9f3os8skaDccK1XHhGy7sp8YaG?=
 =?iso-8859-1?Q?XRK+rhRDHDrupz+eJTs6ONgXIAqjA9s43sxeYro3yIXeVYaA3MIoCEThSc?=
 =?iso-8859-1?Q?OxZBurnB6Ig6Weu83TkWpsfXmEy9An12eXdT9N7RbZnhBK41GldT7bsr5U?=
 =?iso-8859-1?Q?LPc6i1ZTypG4YUwkerrG0ajd3cOYDDutN6hyp5d6b7dnfY6K3BA0HqqgJa?=
 =?iso-8859-1?Q?iHAAfQkxcBO9wzmAI9IajUHynvQ/ym+Ca87Hw40WahJjcx7XM3uo0RPbSM?=
 =?iso-8859-1?Q?b4K3psUF/49IEVU9zYrF5Cwd4Chww4m8c45WoMLf5MAfGhy8dFZf+Tem2x?=
 =?iso-8859-1?Q?GTRFvv5i2/91N9MLitq6tuP3z32jsdtzCGay+j/qktbkkbn4cY5z1DU7k1?=
 =?iso-8859-1?Q?phHK8WRDdceVZ6mkUAdnLx1PTD/ZOEn9mELT0W+5oc4ovf7Q5CT/6xcH01?=
 =?iso-8859-1?Q?jvEEIec+4gyN//2sPRQA2ek0qrwRTnQSFoil0d7IRthhxGbOCWFMFdwg?=
 =?iso-8859-1?Q?=3D=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: DU5PR03MB10441.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 47348f8d-cf24-4b61-c861-08dde734ace4
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Aug 2025 19:45:58.1397
 (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: JnPRmz7MgzNJHAE41Zt5lITXJttQZnbcV6HI2c9w3rakjMK93VdddbTXODzTPc9POFyC0QlD7qhilrc7/PqUZup0Cbu13iejC/78QmZzkfU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR03MB8912


Hi Leonid,

Leonid Komarianskyi <Leonid_Komarianskyi@epam.com> writes:

> Currently, Xen does not support eSPI interrupts, leading
> to a data abort when such interrupts are defined in the DTS.
>
> This patch introduces a separate array to initialize up to
> 1024 interrupt descriptors in the eSPI range and adds the
> necessary defines and helper function. These changes lay the
> groundwork for future implementation of full eSPI interrupt
> support. As this GICv3.1 feature is not required by all vendors,
> all changes are guarded by ifdefs, depending on the corresponding
> Kconfig option.
>
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
>
> ---
> Changes in V5:
> - no functional changes introduced by this version compared with V4, only
>   minor fixes and removal of ifdefs for macroses
> - added TODO comment, suggested by Oleksandr Tyshchenko
> - changed int to unsigned int for irqs
> - removed ifdefs for eSPI-specific defines and macros to reduce the
>   number of ifdefs and code duplication in further changes
> - removed reviewed-by as moving defines from ifdefs requires additional
>   confirmation from reviewers
>
> Changes in V4:
> - removed redundant line with 'default n' in Kconfig, as it is disabled
>   by default, without explicit specification
> - added reviewed-by from Volodymyr Babchuk
>
> Changes in V3:
> - introduced a new define NR_ESPI_IRQS to avoid confusion, like in the
>   case of using NR_IRQS for espi_desc array
> - implemented helper functions espi_to_desc and init_espi_data to make
>   it possible to add stubs with the same name, and as a result, reduce
>   the number of #ifdefs
> - disable CONFIG_GICV3_ESPI default value to n
>
> Changes in V2:
> - use (ESPI_MAX_INTID + 1) instead of (ESPI_BASE_INTID + NR_IRQS)
> - remove unnecessary comment for nr_irqs initialization
> ---
>  xen/arch/arm/Kconfig           |  8 +++++
>  xen/arch/arm/include/asm/irq.h | 24 +++++++++++++++
>  xen/arch/arm/irq.c             | 56 +++++++++++++++++++++++++++++++++-
>  3 files changed, 87 insertions(+), 1 deletion(-)
>
> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
> index 17df147b25..43b05533b1 100644
> --- a/xen/arch/arm/Kconfig
> +++ b/xen/arch/arm/Kconfig
> @@ -135,6 +135,14 @@ config GICV3
>  	  Driver for the ARM Generic Interrupt Controller v3.
>  	  If unsure, use the default setting.
> =20
> +config GICV3_ESPI
> +	bool "Extended SPI range support"
> +	depends on GICV3 && !NEW_VGIC
> +	help
> +	  Allow Xen and domains to use interrupt numbers from the extended SPI
> +	  range, from 4096 to 5119. This feature is introduced in GICv3.1
> +	  architecture.
> +
>  config HAS_ITS
>          bool "GICv3 ITS MSI controller support (UNSUPPORTED)" if UNSUPPO=
RTED
>          depends on GICV3 && !NEW_VGIC && !ARM_32
> diff --git a/xen/arch/arm/include/asm/irq.h b/xen/arch/arm/include/asm/ir=
q.h
> index 5bc6475eb4..4443799648 100644
> --- a/xen/arch/arm/include/asm/irq.h
> +++ b/xen/arch/arm/include/asm/irq.h
> @@ -32,6 +32,13 @@ struct arch_irq_desc {
>  #define SPI_MAX_INTID   1019
>  #define LPI_OFFSET      8192
> =20
> +#define ESPI_BASE_INTID 4096
> +#define ESPI_MAX_INTID  5119
> +#define NR_ESPI_IRQS    1024
> +
> +#define ESPI_INTID2IDX(intid) ((intid) - ESPI_BASE_INTID)
> +#define ESPI_IDX2INTID(idx)   ((idx) + ESPI_BASE_INTID)
> +
>  /* LPIs are always numbered starting at 8192, so 0 is a good invalid cas=
e. */
>  #define INVALID_LPI     0
> =20
> @@ -39,7 +46,15 @@ struct arch_irq_desc {
>  #define INVALID_IRQ     1023
> =20
>  extern const unsigned int nr_irqs;
> +#ifdef CONFIG_GICV3_ESPI
> +/*
> + * This will also cover the eSPI range, as some critical devices
> + * for booting Xen (e.g., serial) may use this type of interrupts.
> + */
> +#define nr_static_irqs (ESPI_MAX_INTID + 1)
> +#else
>  #define nr_static_irqs NR_IRQS
> +#endif
> =20
>  struct irq_desc;
>  struct irqaction;
> @@ -55,6 +70,15 @@ static inline bool is_lpi(unsigned int irq)
>      return irq >=3D LPI_OFFSET;
>  }
> =20
> +static inline bool is_espi(unsigned int irq)
> +{
> +#ifdef CONFIG_GICV3_ESPI

Taking into account that with CONFIG_GICV3_ESPI=3Dn we should never have
"irq" in eSPI range, do you really need this #ifdef? I think that
ASSERT_UNREACHABLE in espi_to_desc() is sufficient guard.

Also, IRQ line number belongs to eSPI range regardless of CONFIG_GICV3_ESPI=
,
value, so in my opinion is_espi() should always return correct value for
a given "irq".

> +    return (irq >=3D ESPI_BASE_INTID && irq <=3D ESPI_MAX_INTID);

Also, you don't need parentheses here.

> +#else
> +    return false;
> +#endif
> +}
> +
>  #define domain_pirq_to_irq(d, pirq) (pirq)
> =20
>  bool is_assignable_irq(unsigned int irq);
> diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
> index b8eccfc924..61c915c3f9 100644
> --- a/xen/arch/arm/irq.c
> +++ b/xen/arch/arm/irq.c
> @@ -19,7 +19,11 @@
>  #include <asm/gic.h>
>  #include <asm/vgic.h>
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +const unsigned int nr_irqs =3D ESPI_MAX_INTID + 1;
> +#else
>  const unsigned int nr_irqs =3D NR_IRQS;
> +#endif
> =20
>  static unsigned int local_irqs_type[NR_LOCAL_IRQS];
>  static DEFINE_SPINLOCK(local_irqs_type_lock);
> @@ -46,6 +50,53 @@ void irq_end_none(struct irq_desc *irq)
>  }
> =20
>  static irq_desc_t irq_desc[NR_IRQS - NR_LOCAL_IRQS];
> +#ifdef CONFIG_GICV3_ESPI
> +/*
> + * TODO: Consider allocating an array dynamically if
> + * there is a need to enable GICV3_ESPI by default.
> + */
> +static irq_desc_t espi_desc[NR_ESPI_IRQS];
> +
> +static struct irq_desc *espi_to_desc(unsigned int irq)
> +{
> +    return &espi_desc[ESPI_INTID2IDX(irq)];
> +}
> +
> +static int __init init_espi_data(void)
> +{
> +    unsigned int irq;
> +
> +    for ( irq =3D ESPI_BASE_INTID; irq <=3D ESPI_MAX_INTID; irq++ )
> +    {
> +        struct irq_desc *desc =3D irq_to_desc(irq);
> +        int rc =3D init_one_irq_desc(desc);
> +
> +        if ( rc )
> +            return rc;
> +
> +        desc->irq =3D irq;
> +        desc->action  =3D NULL;
> +    }
> +
> +    return 0;
> +}
> +#else
> +/*
> + * This function is stub and will not be called if CONFIG_GICV3_ESPI=3Dn=
,
> + * because in this case, is_espi will always return false.
> + */
> +static struct irq_desc *espi_to_desc(unsigned int irq)
> +{
> +    ASSERT_UNREACHABLE();
> +    return NULL;
> +}
> +
> +static int __init init_espi_data(void)
> +{
> +    return 0;
> +}
> +#endif
> +
>  static DEFINE_PER_CPU(irq_desc_t[NR_LOCAL_IRQS], local_irq_desc);
> =20
>  struct irq_desc *__irq_to_desc(unsigned int irq)
> @@ -53,6 +104,9 @@ struct irq_desc *__irq_to_desc(unsigned int irq)
>      if ( irq < NR_LOCAL_IRQS )
>          return &this_cpu(local_irq_desc)[irq];
> =20
> +    if ( is_espi(irq) )
> +        return espi_to_desc(irq);
> +
>      return &irq_desc[irq-NR_LOCAL_IRQS];
>  }
> =20
> @@ -79,7 +133,7 @@ static int __init init_irq_data(void)
>          desc->action  =3D NULL;
>      }
> =20
> -    return 0;
> +    return init_espi_data();
>  }
> =20
>  static int init_local_irq_data(unsigned int cpu)

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 19:56:11 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 19:56:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1102070.1454843 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us5Cg-0007OK-Uv; Fri, 29 Aug 2025 19:56:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1102070.1454843; Fri, 29 Aug 2025 19:56: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 1us5Cg-0007OD-S7; Fri, 29 Aug 2025 19:56:06 +0000
Received: by outflank-mailman (input) for mailman id 1102070;
 Fri, 29 Aug 2025 19:56:06 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=sr3h=3J=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1us5Cg-0007O7-AX
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 19:56:06 +0000
Received: from DB3PR0202CU003.outbound.protection.outlook.com
 (mail-northeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c200::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 30b10dbe-8512-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 21:56:02 +0200 (CEST)
Received: from DU5PR03MB10441.eurprd03.prod.outlook.com (2603:10a6:10:516::14)
 by AS2PR03MB9514.eurprd03.prod.outlook.com (2603:10a6:20b:59a::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.21; Fri, 29 Aug
 2025 19:55:59 +0000
Received: from DU5PR03MB10441.eurprd03.prod.outlook.com
 ([fe80::eeb8:470:6260:e5f4]) by DU5PR03MB10441.eurprd03.prod.outlook.com
 ([fe80::eeb8:470:6260:e5f4%7]) with mapi id 15.20.9073.021; Fri, 29 Aug 2025
 19:55: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>
X-Inumbo-ID: 30b10dbe-8512-11f0-8dd7-1b34d833f44b
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Hwy1AjBLlJaSxqEYM3wctQ56w8Ksirj0gZLGFoXBVA+ulWpufjufoEAxKbXh7OEpfaFJokFQ3Q28OFrIW5FiiSRfkkqjUOAASIOZiyP0duOVkFj0XwXTvvlBzquzJhew/lP9NeIzUObBMQX5l8XgTFQMtSGnqWqtJ0jEC16+l0ci15TRttNTJxrN1glWqBvlLqli9IIi1n2H72hekdJzXXQsKrlvsu8UDeTW6Qrfl4MPipY0yueAJpQnrozCu9pefNT9D3cy7GkpNHtnikNj/O33nHa7NX0bOcBuQ5qYaHTa63ywzw+XRNp3QpdweTGMr64GTnoJO1UTlvnjmfOEIQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=U+aJkaQtBF7xTHqfbttSOfGCUtd/K6QyOtEeVkBBMMM=;
 b=awpUIdNOAvZ7GAznOwb8YjhipnFKjLA8/3SRRw+RLJagL3+FcpNFsoCVqt4w95jcs7yIrH4GYiTZRJxQzXzd9KLoCh4v+O+Ton5+EEqmvxSCt5yYCWxIzgwx1DM+Z5BKlAbfdj2i9fElDz1Z1OYh9CRf4ee3S95A9QRWDFhA6Yr63xqJYMYS8MNP5AA2LLfx75KmNOsDq+qZEI5jMMsy02B7xfqYVUrvbOJkRKyQkYRddmFGwcThjLR0KcrimjVfTQEUHSr6NfsZhA7JXah+p9sPDhe6z0HJCjxUuKjt+NXIvcSBcPpPSyIeDIhUsFXoNLdXpnVVCKKAQAKv3CA5Ag==
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=U+aJkaQtBF7xTHqfbttSOfGCUtd/K6QyOtEeVkBBMMM=;
 b=Pfk+JE4+ipW0adzt3msAC/Om8wku5XFDkCGB+2QcFJZIA5zFE80ydSrfEMl9jaY11b5gyvt3b6GKxA+vu3YBIi0ZvyBFsWRQjDdgydI63hCZmHiaIiR8QKN5SuScyDSKnQpeBxlQprXzvrIKbI96tyxXRekA8VB2eRPndpE28xCfBAtWLrEY2XyctX2/k8zxsHRG6y/SnU799yuQ2a/eTu/wpegmkN54VHIE/4rWx1vTGbf3GCpEAZrwrTxvlCPvRuICG8eZQuYFGzLz8GuIqeccB6cCVwbRk+1wpeQdWA4Yrx1VLHCbDNQI0Ns5tIyqkrFeIOJUcgjsesWO0liIfw==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"olekstysh@gmail.com" <olekstysh@gmail.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v5 05/12] xen/arm: gicv3: implement handling of GICv3.1
 eSPI
Thread-Topic: [PATCH v5 05/12] xen/arm: gicv3: implement handling of GICv3.1
 eSPI
Thread-Index: AQHcGP7eXuLLXrvHTUaZmxhTVnJkUA==
Date: Fri, 29 Aug 2025 19:55:59 +0000
Message-ID: <87iki5yka9.fsf@epam.com>
References: <cover.1756481577.git.leonid_komarianskyi@epam.com>
	<edf50a95d335000cea2748301882f1bbea88d676.1756481577.git.leonid_komarianskyi@epam.com>
In-Reply-To:
 <edf50a95d335000cea2748301882f1bbea88d676.1756481577.git.leonid_komarianskyi@epam.com>
	(Leonid Komarianskyi's message of "Fri, 29 Aug 2025 16:06:22 +0000")
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: DU5PR03MB10441:EE_|AS2PR03MB9514:EE_
x-ms-office365-filtering-correlation-id: bf10da3f-f797-457e-a07c-08dde736131c
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|366016|1800799024|42112799006|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?NHGQ243+L4ekm8jLuCSGIuNUrz8um8LtfIJ+R9//uvDVqST56stVpb+kJa?=
 =?iso-8859-1?Q?nVvDRnPdQJ5aHeUbQpi3dbckHdDs8eSti7w6lTTJPMBF0Uh0C95TPXFUIZ?=
 =?iso-8859-1?Q?7Z0hdf+bekRO5JJuTpejjFm9GGettLd2QpNzaUKamlMtS9NEvzqX/gMOmM?=
 =?iso-8859-1?Q?PtbCuKR5vZcpfYpDKO1LoOhf5ncqFPtMun3rFpTquR5CXZJ6AXEKD+FEHQ?=
 =?iso-8859-1?Q?/Y/RzDjUNKL3At0SLG4tq2RuIhA1SKUGhCwsMICz9XPUv9RmaZe06049nI?=
 =?iso-8859-1?Q?UnvaTzDj2sBSGtP49U2J94pySn9VdBGtJVWZulPmYeXZev9LSqLXA1rKR0?=
 =?iso-8859-1?Q?6oGHpjKjjQn0ChtWbGymihc0uF5NlzYhSetQz0RYRy0KlPlnYYPu4KQzU7?=
 =?iso-8859-1?Q?jeJ/OmcyKgUmpr+uDUMaDaeuJ9N1KdvDodJF7rv+wN4p0BUlj2TCJOFYcY?=
 =?iso-8859-1?Q?xOfh8K4l4+00MDCaZOwMkXvIFO+Rx9Vd9q1QYHD/RHm1C9WBDw+LnY782B?=
 =?iso-8859-1?Q?z9TKPjY54H8jMkgzjozd92f6a/qftY04EFQFrPQI2saNVNP0B8zdPECIOX?=
 =?iso-8859-1?Q?kUQkpOS5ppuOVXHAHLRPsVyLVfn66izwGU7iZTohZ+yG0IPYF55/sj8lY8?=
 =?iso-8859-1?Q?AR92ufkA9h0+TOoKneSyaxk0MsxE3VUEnnbrF9YPbMXXyDztDJ/CFw70gY?=
 =?iso-8859-1?Q?zZ8vY2Qv1ADt2MzggNG7NQ0QlWfYyxBwF7G4oSS+bYcYkBUBRzxYHszuAQ?=
 =?iso-8859-1?Q?oVjgZ2QLfyyhsg+b39sBvfnU4wEX2dadpXcJnexEQrrA7+XI+rLgeWuy48?=
 =?iso-8859-1?Q?HBXK2X8BBe6vHiVEYDD8gRRnoPQkWyhf5XoYBjZEMKV0+zP+WV4kO2ux7p?=
 =?iso-8859-1?Q?i/uoUZOKgvnJlEQf8gKorOohOmlANhQ+LuDQOE85Eqt7xo+gEdQALWzrGs?=
 =?iso-8859-1?Q?1EdxH4W41EmtqYhWm8h4leZiDkaG91C1i29rAGVuYl4UpBQHk/zKLm9wVa?=
 =?iso-8859-1?Q?03uDWW5mjKACFoP4glVeSnz/M/chp1+JvFEIqOATJ396XgwCeSD4afdihR?=
 =?iso-8859-1?Q?rQpur+EheKsL69TTqtW7WPnKFZMGyhl1THiCUyB2nZ8MHasSm7SOW/067s?=
 =?iso-8859-1?Q?/g0907AEj6cq+shQuSiIosZi1+4znjR/RaTqYi0fduwCO0qQKezp22LshH?=
 =?iso-8859-1?Q?elarHzhKtvWT8Mgij16iZNW+HCd3ha3ZCf2yfh7n/lHkBrQJiew2KzOMI0?=
 =?iso-8859-1?Q?FMe3lNCEXgUUEbJFQclAVttztCeC1OFIleOMRmRXfnCk53mFqvalUEjGOv?=
 =?iso-8859-1?Q?mElIMyos8BpDzdPaPxy7T6790mOxWl33mG9mPQYETj4xIYSbXbL4W1ntK3?=
 =?iso-8859-1?Q?qC6NYCks6tP8AGln4BEKC6G+1kEC2VEOFmL4EhpOPkWdeX1QY1wExp78wC?=
 =?iso-8859-1?Q?ncPkPt0X0rS3usVVbcsE27Qm8iFrHaOSYcE4mN1JPD8nqFszq5JSDuXGWm?=
 =?iso-8859-1?Q?mj3eONNAUrj5Ty08gEGn1Mh43PkldkG3O6Ecwxo1Jsgg=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU5PR03MB10441.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(42112799006)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?cR/retlB6qphlwR4mDYWLMsHpIkHpLTIchA39Z+sqvw3vDrI6y/v07qhSi?=
 =?iso-8859-1?Q?2PrCbfN7vYB9jF4PflR5IMPfdJEWHvuScJd4dPwS+Sw70AO7z9i/U4JMSC?=
 =?iso-8859-1?Q?eFRCsDhQ6dGbPjwOiT6gJ3L+weskx/3VVtRm1mcE9Lp1N15KEoCDaOlgpa?=
 =?iso-8859-1?Q?+p/NlW60t5UvaWTO+7hi14ngeYMv+y8vK/i0eVybDukfp5lkqpXnwiEq2K?=
 =?iso-8859-1?Q?BitL1wzZD43TCAApDjX2uK5JCWw5htBNiNcFOKmd1a/LPGvs1t5q2h3trc?=
 =?iso-8859-1?Q?F+nicKOg2NEVHz4Y7MAObv6dnS7+H6lx41U2NeD6L2F8ANRQdg38xMuU9L?=
 =?iso-8859-1?Q?cXL5qwgSMy+Fke+D6ncZpaXrPRF+gxtvFNGf2RRdyaoGy2bmXDYRSgxyUY?=
 =?iso-8859-1?Q?sY5peGeTrqV2Lzf480XejdP3a8V47NZXZOI3OQMEQyd+lEawXU9qMWyRIr?=
 =?iso-8859-1?Q?0tOQgUK9MaDcSbTiSGnZSvZTbnE9VOJvP2A2NXGDAyHbehBISTMW/4CbVC?=
 =?iso-8859-1?Q?bGOqWvxWAeixKVvM4Y7nOPs+q71/E/+OjTVqgtCZjpuCMm0ya4O+DyvwMM?=
 =?iso-8859-1?Q?6+AvxRri5G0uh/F32V1c4Doxo3pgCPtzqlOCdjO3Yt99BWvTl+p9wa4OCQ?=
 =?iso-8859-1?Q?ufEmfOOGfUfQhSV4XD9iDXU+sirvRH/f2HLlId1QG5tr7B5i3KGgHMbXWY?=
 =?iso-8859-1?Q?FmPG9+iG9oh37/3KayOdr/gke489wJ9CePzYal9afHsckrJCPbbK5k4yqB?=
 =?iso-8859-1?Q?W+ZdodAPWRnYOycsMRYyWBxAKfR6GnCMe/TQnAlY4dZS0A3uNAgeU8U/4J?=
 =?iso-8859-1?Q?Hf/JHM7He6JxGCkPMze7Oy8Z+VHVM0GSG5jJ8BlwrZk46X5WVdxSpQIcvx?=
 =?iso-8859-1?Q?3Fz9FrRdZZiMyVecKGcGRp4Z6TLeERGq6XRC5fY+r0ihdupFuJeDc16Lqx?=
 =?iso-8859-1?Q?TJ3Ib8kvyVEu/EWTz8TAq0qBhuhIN5+5nggJNGOYQAEGi7jMCltY+Q6b7i?=
 =?iso-8859-1?Q?dtx4PJivNOfdNVjy7xzNxY+8d1LDFopG+mK+7A8Wa9C+eYJvAXp7Fcr6ZY?=
 =?iso-8859-1?Q?+wGunwcXgzzegKGzYllDWyz4xiEcLdYAo0YEISZBQsAT7IBfK7nEp+ua93?=
 =?iso-8859-1?Q?Oja25jvFqU7ihcN4Fxjr2nJ5W2P4/qEtOMiHYTcwteHUP5nCcOFNzg/y6j?=
 =?iso-8859-1?Q?ibtSFy3Io4Yyd167YMNiTiLdOdcvLvzXMnyWOorC+JeORSaA3UoIBvxDV3?=
 =?iso-8859-1?Q?q74Xqj40iKVQ8aaFS5vofYuZA73jxZp9S4nLwU+EwII6BiyBqWo8/aHpw4?=
 =?iso-8859-1?Q?ps2V+BnzvE2ixS7RGznFAyu9MGqDyZjzYcM/jwGCDsgp6Rk6QK5af0aw6U?=
 =?iso-8859-1?Q?AEAGR5pkK6eacn+xxntFIfBUXVOdJUnpYjpEjp4w51EwrGzEVXCr2FdDua?=
 =?iso-8859-1?Q?WwfunbXkTGxmAmIbp4dVy2IQvjFnOLQn7sGAI941AD4Pq1MF44lDiemnIN?=
 =?iso-8859-1?Q?bt6vlWhuaGiXiyJg0/qB9ekwD7xLRLEp6Ht7nxF68FzppN50lBV/Y2FQqP?=
 =?iso-8859-1?Q?f0hTuQvA8xDXW/tPDdLKUm69j7g1QaUbkg84TrnFX+Tn6pa1rl81nbMOxk?=
 =?iso-8859-1?Q?HmNXywGJPAvjIEolI+DWZgGNwoxIS9a05iX/74Eoix9TGPaXndRVTDbA?=
 =?iso-8859-1?Q?=3D=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: DU5PR03MB10441.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: bf10da3f-f797-457e-a07c-08dde736131c
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Aug 2025 19:55:59.1324
 (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: 9g/UgYPfnfmW2CIcm/sFWBIsQY+tKHnOuPxf1zV53xsYmK0lE7h4yXhvWqmViRcd6ahCgkS5yQoKg21aaO83LVM/nLlcxeSg4JKV2FD3qy0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB9514


Hi Leonid,

Leonid Komarianskyi <Leonid_Komarianskyi@epam.com> writes:

> Introduced appropriate register definitions, helper macros,
> and initialization of required GICv3.1 distributor registers
> to support eSPI. This type of interrupt is handled in the
> same way as regular SPI interrupts, with the following
> differences:
>
> 1) eSPIs can have up to 1024 interrupts, starting from the
> beginning of the range, whereas regular SPIs use INTIDs from
> 32 to 1019, totaling 988 interrupts;
> 2) eSPIs start at INTID 4096, necessitating additional interrupt
> index conversion during register operations.
>
> In case if appropriate config is disabled, or GIC HW doesn't
> support eSPI, the existing functionality will remain the same.
>
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
>
> ---
> Changes in V5:
> - fixed minor nits, no functional changes: changed u32 to uint32_t and
>   added a comment noting that the configuration for eSPIs is the same as
>   for regular SPIs
> - removed ifdefs for eSPI-specific offsets to reduce the number of
>   ifdefs and code duplication in further changes
> - removed reviewed-by as moving offset from ifdefs requires additional
>   confirmation from reviewers
>
> Changes in V4:
> - added offsets for GICD_IGRPMODRnE and GICD_NSACRnE that are required
>   for vGIC emulation
> - added a log banner with eSPI information, similar to the one for
>   regular SPI
> - added newline after ifdef and before gic_is_valid_line
> - added reviewed-by from Volodymyr Babchuk
>
> Changes in V3:
> - add __init attribute to gicv3_dist_espi_common_init
> - change open-codded eSPI register initialization to the appropriate
>   gen-mask macro
> - fixed formatting for lines with more than 80 symbols
> - introduced gicv3_dist_espi_init_aff to be able to use stubs in case of
>   CONFIG_GICV3_ESPI disabled
> - renamed parameter in the GICD_TYPER_ESPI_RANGE macro to espi_range
>   (name was taken from GIC specification) to avoid confusion
> - changed type for i variable to unsigned int since it cannot be
>   negative
>
> Changes in V2:
> - move gic_number_espis function from
>   [PATCH 08/10] xen/arm: vgic: add resource management for extended SPIs
>   to use it in the newly introduced gic_is_valid_espi
> - add gic_is_valid_espi which checks if IRQ number is in supported
>   by HW eSPI range
> - update gic_is_valid_irq conditions to allow operations with eSPIs
> ---
>  xen/arch/arm/gic-v3.c                  | 83 ++++++++++++++++++++++++++
>  xen/arch/arm/include/asm/gic.h         | 22 +++++++
>  xen/arch/arm/include/asm/gic_v3_defs.h | 38 ++++++++++++
>  3 files changed, 143 insertions(+)
>
> diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
> index 29b7f68cba..4a7ce12f26 100644
> --- a/xen/arch/arm/gic-v3.c
> +++ b/xen/arch/arm/gic-v3.c
> @@ -485,6 +485,36 @@ static void __iomem *get_addr_by_offset(struct irq_d=
esc *irqd, u32 offset)
>          default:
>              break;
>          }
> +#ifdef CONFIG_GICV3_ESPI
> +    case ESPI_BASE_INTID ... ESPI_MAX_INTID:
> +    {
> +        uint32_t irq_index =3D ESPI_INTID2IDX(irqd->irq);
> +
> +        switch ( offset )
> +        {
> +        case GICD_ISENABLER:
> +            return (GICD + GICD_ISENABLERnE + (irq_index / 32) * 4);
> +        case GICD_ICENABLER:
> +            return (GICD + GICD_ICENABLERnE + (irq_index / 32) * 4);
> +        case GICD_ISPENDR:
> +            return (GICD + GICD_ISPENDRnE + (irq_index / 32) * 4);
> +        case GICD_ICPENDR:
> +            return (GICD + GICD_ICPENDRnE + (irq_index / 32) * 4);
> +        case GICD_ISACTIVER:
> +            return (GICD + GICD_ISACTIVERnE + (irq_index / 32) * 4);
> +        case GICD_ICACTIVER:
> +            return (GICD + GICD_ICACTIVERnE + (irq_index / 32) * 4);
> +        case GICD_ICFGR:
> +            return (GICD + GICD_ICFGRnE + (irq_index / 16) * 4);
> +        case GICD_IROUTER:
> +            return (GICD + GICD_IROUTERnE + irq_index * 8);
> +        case GICD_IPRIORITYR:
> +            return (GICD + GICD_IPRIORITYRnE + irq_index);
> +        default:
> +            break;
> +        }
> +    }
> +#endif
>      default:
>          break;
>      }
> @@ -655,6 +685,55 @@ static void gicv3_set_irq_priority(struct irq_desc *=
desc,
>      spin_unlock(&gicv3.lock);
>  }
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +unsigned int gic_number_espis(void)
> +{
> +    return gic_hw_ops->info->nr_espi;
> +}
> +
> +static void __init gicv3_dist_espi_common_init(uint32_t type)
> +{
> +    unsigned int espi_nr, i;
> +
> +    espi_nr =3D min(1024U, GICD_TYPER_ESPIS_NUM(type));
> +    gicv3_info.nr_espi =3D espi_nr;
> +    /* The GIC HW doesn't support eSPI, so we can leave from here */
> +    if ( gicv3_info.nr_espi =3D=3D 0 )
> +        return;
> +
> +    printk("GICv3: %d eSPI lines\n", gicv3_info.nr_espi);
> +
> +    /* The configuration for eSPIs is similar to that for regular SPIs *=
/
> +    for ( i =3D 0; i < espi_nr; i +=3D 16 )
> +        writel_relaxed(0, GICD + GICD_ICFGRnE + (i / 16) * 4);
> +
> +    for ( i =3D 0; i < espi_nr; i +=3D 4 )
> +        writel_relaxed(GIC_PRI_IRQ_ALL,
> +                       GICD + GICD_IPRIORITYRnE + (i / 4) * 4);
> +
> +    for ( i =3D 0; i < espi_nr; i +=3D 32 )
> +    {
> +        writel_relaxed(GENMASK(31, 0), GICD + GICD_ICENABLERnE + (i / 32=
) * 4);
> +        writel_relaxed(GENMASK(31, 0), GICD + GICD_ICACTIVERnE + (i / 32=
) * 4);
> +    }
> +
> +    for ( i =3D 0; i < espi_nr; i +=3D 32 )
> +        writel_relaxed(GENMASK(31, 0), GICD + GICD_IGROUPRnE + (i / 32) =
* 4);
> +}
> +
> +static void __init gicv3_dist_espi_init_aff(uint64_t affinity)
> +{
> +    unsigned int i;
> +
> +    for ( i =3D 0; i < gicv3_info.nr_espi; i++ )
> +        writeq_relaxed_non_atomic(affinity, GICD + GICD_IROUTERnE + i * =
8);
> +}
> +#else
> +static void __init gicv3_dist_espi_common_init(uint32_t type) { }
> +
> +static void __init gicv3_dist_espi_init_aff(uint64_t affinity) { }
> +#endif
> +
>  static void __init gicv3_dist_init(void)
>  {
>      uint32_t type;
> @@ -700,6 +779,8 @@ static void __init gicv3_dist_init(void)
>      for ( i =3D NR_GIC_LOCAL_IRQS; i < nr_lines; i +=3D 32 )
>          writel_relaxed(GENMASK(31, 0), GICD + GICD_IGROUPR + (i / 32) * =
4);
> =20
> +    gicv3_dist_espi_common_init(type);
> +
>      gicv3_dist_wait_for_rwp();
> =20
>      /* Turn on the distributor */
> @@ -713,6 +794,8 @@ static void __init gicv3_dist_init(void)
> =20
>      for ( i =3D NR_GIC_LOCAL_IRQS; i < nr_lines; i++ )
>          writeq_relaxed_non_atomic(affinity, GICD + GICD_IROUTER + i * 8)=
;
> +
> +    gicv3_dist_espi_init_aff(affinity);
>  }
> =20
>  static int gicv3_enable_redist(void)
> diff --git a/xen/arch/arm/include/asm/gic.h b/xen/arch/arm/include/asm/gi=
c.h
> index 3fcee42675..1e747dcd99 100644
> --- a/xen/arch/arm/include/asm/gic.h
> +++ b/xen/arch/arm/include/asm/gic.h
> @@ -306,8 +306,26 @@ extern void gic_dump_vgic_info(struct vcpu *v);
> =20
>  /* Number of interrupt lines */
>  extern unsigned int gic_number_lines(void);
> +#ifdef CONFIG_GICV3_ESPI
> +extern unsigned int gic_number_espis(void);
> +
> +static inline bool gic_is_valid_espi(unsigned int irq)
> +{
> +    return (irq >=3D ESPI_BASE_INTID &&
> +            irq < ESPI_IDX2INTID(gic_number_espis()));

You don't need external () here.

> +}
> +#else
> +static inline bool gic_is_valid_espi(unsigned int irq)
> +{
> +    return false;
> +}
> +#endif
> +
>  static inline bool gic_is_valid_line(unsigned int irq)
>  {
> +    if ( gic_is_valid_espi(irq) )
> +        return true;
> +
>      return irq < gic_number_lines();
>  }

As you are going to rework this patch anyways, my I ask to rewrite this
function in the following way?

static inline bool gic_is_valid_line(unsigned int irq)
{
     return irq < gic_number_lines() || gic_is_valid_espi(irq);
}

My justification is that (irq < gic_number_lines()) case is more likely,
so it is better to evaluate it first, only then check for eSPIs.

I am sorry, I should asked it earlier, but only after removing #ifdef I
saw that this part could be more optimal.

> =20
> @@ -325,6 +343,10 @@ struct gic_info {
>      enum gic_version hw_version;
>      /* Number of GIC lines supported */
>      unsigned int nr_lines;
> +#ifdef CONFIG_GICV3_ESPI
> +    /* Number of GIC eSPI supported */
> +    unsigned int nr_espi;
> +#endif
>      /* Number of LR registers */
>      uint8_t nr_lrs;
>      /* Maintenance irq number */
> diff --git a/xen/arch/arm/include/asm/gic_v3_defs.h b/xen/arch/arm/includ=
e/asm/gic_v3_defs.h
> index 2af093e774..3370b4cd52 100644
> --- a/xen/arch/arm/include/asm/gic_v3_defs.h
> +++ b/xen/arch/arm/include/asm/gic_v3_defs.h
> @@ -37,6 +37,44 @@
>  #define GICD_IROUTER1019             (0x7FD8)
>  #define GICD_PIDR2                   (0xFFE8)
> =20
> +/* Additional registers for GICv3.1 */
> +#define GICD_IGROUPRnE               (0x1000)
> +#define GICD_IGROUPRnEN              (0x107C)
> +#define GICD_ISENABLERnE             (0x1200)
> +#define GICD_ISENABLERnEN            (0x127C)
> +#define GICD_ICENABLERnE             (0x1400)
> +#define GICD_ICENABLERnEN            (0x147C)
> +#define GICD_ISPENDRnE               (0x1600)
> +#define GICD_ISPENDRnEN              (0x167C)
> +#define GICD_ICPENDRnE               (0x1800)
> +#define GICD_ICPENDRnEN              (0x187C)
> +#define GICD_ISACTIVERnE             (0x1A00)
> +#define GICD_ISACTIVERnEN            (0x1A7C)
> +#define GICD_ICACTIVERnE             (0x1C00)
> +#define GICD_ICACTIVERnEN            (0x1C7C)
> +#define GICD_IPRIORITYRnE            (0x2000)
> +#define GICD_IPRIORITYRnEN           (0x23FC)
> +#define GICD_ICFGRnE                 (0x3000)
> +#define GICD_ICFGRnEN                (0x30FC)
> +#define GICD_IGRPMODRnE              (0x3400)
> +#define GICD_IGRPMODRnEN             (0x347C)
> +#define GICD_NSACRnE                 (0x3600)
> +#define GICD_NSACRnEN                (0x36FC)
> +#define GICD_IROUTERnE               (0x8000)
> +#define GICD_IROUTERnEN              (0x9FFC)
> +
> +#ifdef CONFIG_GICV3_ESPI
> +#define GICD_TYPER_ESPI_SHIFT        8
> +#define GICD_TYPER_ESPI_RANGE_SHIFT  27
> +#define GICD_TYPER_ESPI_RANGE_MASK   (0x1F)
> +#define GICD_TYPER_ESPI              (1U << GICD_TYPER_ESPI_SHIFT)
> +#define GICD_TYPER_ESPI_RANGE(espi_range) ((((espi_range) & \
> +        GICD_TYPER_ESPI_RANGE_MASK) + 1) * 32)
> +#define GICD_TYPER_ESPIS_NUM(typer)    \
> +        (((typer) & GICD_TYPER_ESPI) ? \
> +        GICD_TYPER_ESPI_RANGE((typer) >> GICD_TYPER_ESPI_RANGE_SHIFT) : =
0)
> +#endif
> +
>  /* Common between GICD_PIDR2 and GICR_PIDR2 */
>  #define GIC_PIDR2_ARCH_MASK         (0xf0)
>  #define GIC_PIDR2_ARCH_GICv3        (0x30)

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 19:57:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 19:57:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1102085.1454853 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us5EO-00080K-EV; Fri, 29 Aug 2025 19:57:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1102085.1454853; Fri, 29 Aug 2025 19:57: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 1us5EO-00080D-9y; Fri, 29 Aug 2025 19:57:52 +0000
Received: by outflank-mailman (input) for mailman id 1102085;
 Fri, 29 Aug 2025 19:57:50 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=7zkx=3J=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1us5EM-000803-QM
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 19:57:50 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6ff6a1d1-8512-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 21:57:49 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 69D2D43837;
 Fri, 29 Aug 2025 19:57:47 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 08344C4CEF0;
 Fri, 29 Aug 2025 19:57:45 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6ff6a1d1-8512-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1756497467;
	bh=7RwocJKGP1P0snVi7XY0tdesWNsl30sJQg75fas9PpA=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=D9MmLHcK7CcoUZdnY6vZPvu5XvVfBFhxE6VAFiMsmUPS90QdmoZ8pWt5cw90EICMF
	 VVCEmy9hDjCUrjvu6rMsVW/LSFyG8DJNbb5u9CLhA+LqBysumXERD7fsA7Ozxr54Yg
	 ghgycSZgWW3e7Jo3AZDWQYLSYDCPMHKGgJfFrA7O6gn6KeRv9sr0Z1y8XznjYEk54Y
	 TvLI2toWrTtq/iUv1awdFzoMuU6o03130akOrZ9F2uySgSS/iybMqUWoUNDkqP7BgC
	 B/rcqJEtqac9o981zFhKtfpUazG2sQ6O/AQrTXCzLES4HwlbpReqI1fEFwJL/feNRw
	 vMScGiAth5qFA==
Date: Fri, 29 Aug 2025 12:57:43 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: dmukhin@xen.org
cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, 
    anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, 
    michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, 
    dmukhin@ford.com
Subject: Re: [PATCH v5 03/15] emul/ns16x50: implement emulator stub
In-Reply-To: <20250828235409.2835815-4-dmukhin@ford.com>
Message-ID: <alpine.DEB.2.22.394.2508291237100.341243@ubuntu-linux-20-04-desktop>
References: <20250828235409.2835815-1-dmukhin@ford.com> <20250828235409.2835815-4-dmukhin@ford.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 28 Aug 2025, dmukhin@xen.org wrote:
> From: Denis Mukhin <dmukhin@ford.com> 
> 
> The change is the first on the way on introducing minimally functional
> NS16550-compatible UART emulator.
> 
> Define UART state and a set of emulated registers.
> 
> Implement alloc/free vUART hooks.
> 
> Stub out I/O port handler.
> 
> Add initialization of the NS16x50-compatible UART emulator state machine.
> 
> Plumb debug logging.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
> Changes since v4:
> - new patch 
> ---
>  xen/arch/x86/hvm/hvm.c          |  20 ++
>  xen/common/emul/vuart/Kconfig   |  18 ++
>  xen/common/emul/vuart/Makefile  |   1 +
>  xen/common/emul/vuart/ns16x50.c | 362 ++++++++++++++++++++++++++++++++
>  xen/include/xen/sched.h         |   4 +
>  5 files changed, 405 insertions(+)
>  create mode 100644 xen/common/emul/vuart/ns16x50.c
> 
> diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
> index 23bd7f078a1d..26760cf995df 100644
> --- a/xen/arch/x86/hvm/hvm.c
> +++ b/xen/arch/x86/hvm/hvm.c
> @@ -28,6 +28,7 @@
>  #include <xen/softirq.h>
>  #include <xen/trace.h>
>  #include <xen/vm_event.h>
> +#include <xen/vuart.h>
>  #include <xen/vpci.h>
>  #include <xen/wait.h>
>  #include <xen/warning.h>
> @@ -689,6 +690,21 @@ int hvm_domain_initialise(struct domain *d,
>      if ( rc != 0 )
>          goto fail1;
>  
> +    if ( IS_ENABLED(CONFIG_VUART_NS16X50) )

maybe only for the hardware domain?
or only input_allowed = true only for the hardware domain?

> +    {
> +        struct vuart_info info = {
> +            .name       = "COM2",
> +            .compatible = "ns16550",
> +            .base_addr  = 0x2f8,
> +            .size       = 8,
> +            .irq        = 3,
> +        };
> +
> +        rc = vuart_init(d, &info);
> +        if ( rc )
> +            goto out_vioapic_deinit;
> +    }
> +
>      stdvga_init(d);
>  
>      rtc_init(d);
> @@ -712,6 +728,8 @@ int hvm_domain_initialise(struct domain *d,
>      return 0;
>  
>   fail2:
> +    vuart_deinit(d);
> + out_vioapic_deinit:
>      vioapic_deinit(d);
>   fail1:
>      if ( is_hardware_domain(d) )
> @@ -774,6 +792,8 @@ void hvm_domain_destroy(struct domain *d)
>      if ( hvm_funcs.domain_destroy )
>          alternative_vcall(hvm_funcs.domain_destroy, d);
>  
> +    vuart_deinit(d);
> +
>      vioapic_deinit(d);
>  
>      XFREE(d->arch.hvm.pl_time);
> diff --git a/xen/common/emul/vuart/Kconfig b/xen/common/emul/vuart/Kconfig
> index ce1b976b7da7..539e6d5e4fc7 100644
> --- a/xen/common/emul/vuart/Kconfig
> +++ b/xen/common/emul/vuart/Kconfig
> @@ -3,4 +3,22 @@ config VUART_FRAMEWORK
>  
>  menu "UART Emulation"
>  
> +config VUART_NS16X50
> +	bool "NS16550-compatible UART Emulator" if EXPERT
> +	depends on X86 && HVM
> +	select VUART_FRAMEWORK

default n

> +	help
> +	  In-hypervisor NS16x50 UART emulation.
> +
> +	  Only legacy PC COM2 port is emulated.
> +
> +	  This is strictly for testing purposes (such as early HVM guest console),
> +	  and not appropriate for use in production.
> +
> +config VUART_NS16X50_DEBUG
> +	bool "NS16550-compatible UART Emulator Debugging"
> +	depends on VUART_NS16X50 && DEBUG
> +	help
> +	  Enable development debugging.
> +
>  endmenu
> diff --git a/xen/common/emul/vuart/Makefile b/xen/common/emul/vuart/Makefile
> index 97f792dc6641..fe904f6cb65d 100644
> --- a/xen/common/emul/vuart/Makefile
> +++ b/xen/common/emul/vuart/Makefile
> @@ -1 +1,2 @@
>  obj-y += vuart.o
> +obj-$(CONFIG_VUART_NS16X50) += ns16x50.o
> diff --git a/xen/common/emul/vuart/ns16x50.c b/xen/common/emul/vuart/ns16x50.c
> new file mode 100644
> index 000000000000..f0479e1022fb
> --- /dev/null
> +++ b/xen/common/emul/vuart/ns16x50.c
> @@ -0,0 +1,362 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * NS16550-compatible UART Emulator.
> + *
> + * See:
> + * - Serial and UART Tutorial:
> + *     https://download.freebsd.org/doc/en/articles/serial-uart/serial-uart_en.pdf
> + * - UART w/ 16 byte FIFO:
> + *     https://www.ti.com/lit/ds/symlink/tl16c550c.pdf
> + * - UART w/ 64 byte FIFO:
> + *     https://www.ti.com/lit/ds/symlink/tl16c750.pdf
> + *
> + * Limitations:
> + * - Only x86;
> + * - Only Xen console as a backend, no inter-domain communication (similar to
> + *   vpl011 on Arm);
> + * - Only 8n1 emulation (8-bit data, no parity, 1 stop bit);
> + * - No baud rate emulation (reports 115200 baud to the guest OS);
> + * - No FIFO-less mode emulation;
> + * - No RX FIFO interrupt moderation (FCR) emulation;
> + * - No integration w/ VM snapshotting (HVM_REGISTER_SAVE_RESTORE() and
> + *   friends);
> + * - No ISA IRQ sharing allowed;
> + * - No MMIO-based UART emulation.
> + */
> +
> +#define pr_prefix               "ns16x50"
> +#define pr_fmt(fmt)             pr_prefix ": " fmt
> +
> +#ifdef CONFIG_VUART_NS16X50_DEBUG
> +#define guest_prefix            "FROM GUEST "
> +#define ns16x50_log_level       2
> +#else
> +#define guest_prefix            ""
> +#define ns16x50_log_level       0
> +#endif
> +
> +#include <xen/8250-uart.h>
> +#include <xen/console.h>
> +#include <xen/err.h>
> +#include <xen/iocap.h>
> +#include <xen/vuart.h>
> +#include <xen/xvmalloc.h>
> +
> +#include <public/io/console.h>
> +
> +#define ns16x50_log(n, lvl, vdev, fmt, args...) do { \
> +    if ( ns16x50_log_level >= n) \
> +        gprintk(lvl, pr_fmt("%s: " fmt), (vdev)->name, ## args); \
> +} while (0)
> +
> +#define ns16x50_err(vdev, fmt, args...) \
> +    ns16x50_log(0, KERN_ERR, vdev, fmt, ## args)
> +#define ns16x50_warn(vdev, fmt, args...) \
> +    ns16x50_log(1, KERN_WARNING, vdev, fmt, ## args)
> +#define ns16x50_info(vdev, fmt, args...) \
> +    ns16x50_log(2, KERN_INFO, vdev, fmt, ## args)
> +#define ns16x50_debug(vdev, fmt, args...) \
> +    ns16x50_log(3, KERN_DEBUG, vdev, fmt, ## args)
> +
> +/*
> + * Number of supported registers in the UART.
> + */
> +#define NS16X50_REGS_NUM        (UART_SCR + 1)
> +
> +/*
> + * Number of emulated registers.
> + *
> + * - Emulated registers [0..NS16X50_REGS_NUM] are R/W registers for DLAB=0.
> + * - DLAB=1, R/W, DLL            = NS16X50_REGS_NUM + 0
> + * - DLAB=1, R/W, DLM            = NS16X50_REGS_NUM + 1
> + * -         R/O, IIR (IIR_THR)  = NS16X50_REGS_NUM + 2
> + */
> +#define NS16X50_EMU_REGS_NUM    (NS16X50_REGS_NUM + 3)
> +
> +/*
> + * Virtual ns16x50 device state.
> + */
> +struct vuart_ns16x50 {
> +    struct xencons_interface cons;      /* Emulated RX/TX FIFOs */
> +    uint8_t regs[NS16X50_EMU_REGS_NUM]; /* Emulated registers */
> +    const char *name;                   /* Device name */
> +    struct domain *owner;               /* Owner domain */
> +    const struct vuart_info *info;      /* UART description */
> +    spinlock_t lock;                    /* Protection */
> +};
> +
> +/*
> + * Emulate 8-bit write access to ns16x50 register.
> + */
> +static int ns16x50_io_write8(
> +    struct vuart_ns16x50 *vdev, uint32_t reg, uint8_t *data)
> +{
> +    int rc = 0;
> +
> +    return rc;
> +}
> +
> +/*
> + * Emulate 16-bit write access to ns16x50 register.
> + * NB: some guest OSes use outw() to access UART_DLL.
> + */
> +static int ns16x50_io_write16(
> +    struct vuart_ns16x50 *vdev, uint32_t reg, uint16_t *data)
> +{
> +    int rc = -EINVAL;
> +
> +    return rc;
> +}
> +
> +/*
> + * Emulate write access to ns16x50 register.
> + */
> +static int ns16x50_io_write(
> +    struct vuart_ns16x50 *vdev, uint8_t reg, uint32_t size, uint32_t *data)
> +{
> +    int rc;
> +
> +    switch ( size )
> +    {
> +    case 1:
> +        rc = ns16x50_io_write8(vdev, reg, (uint8_t *)data);
> +        break;
> +
> +    case 2:
> +        rc = ns16x50_io_write16(vdev, reg, (uint16_t *)data);
> +        break;
> +
> +    default:
> +        rc = -EINVAL;
> +        break;
> +    }
> +
> +    return rc;
> +}
> +
> +/*
> + * Emulate 8-bit read access to ns16x50 register.
> + */
> +static int ns16x50_io_read8(
> +    struct vuart_ns16x50 *vdev, uint32_t reg, uint8_t *data)
> +{
> +    uint8_t val = 0xff;
> +    int rc = 0;
> +
> +    *data = val;
> +
> +    return rc;
> +}
> +
> +/*
> + * Emulate 16-bit read access to ns16x50 register.
> + */
> +static int ns16x50_io_read16(
> +    struct vuart_ns16x50 *vdev, uint32_t reg, uint16_t *data)
> +{
> +    uint16_t val = 0xffff;
> +    int rc = -EINVAL;
> +
> +    *data = val;
> +
> +    return rc;
> +}
> +
> +/*
> + * Emulate read access to ns16x50 register.
> + */
> +static int ns16x50_io_read(
> +    struct vuart_ns16x50 *vdev, uint8_t reg, uint32_t size, uint32_t *data)
> +{
> +    int rc;
> +
> +    switch ( size )
> +    {
> +    case 1:
> +        rc = ns16x50_io_read8(vdev, reg, (uint8_t *)data);
> +        break;
> +
> +    case 2:
> +        rc = ns16x50_io_read16(vdev, reg, (uint16_t *)data);
> +        break;
> +
> +    default:
> +        *data = 0xffffffff;
> +        rc = -EINVAL;
> +        break;
> +    }
> +
> +    return rc;
> +}
> +
> +/*
> + * Emulate I/O access to ns16x50 register.
> + * Note, emulation always returns X86EMUL_OKAY, once I/O port trap is enabled.
> + */
> +static int cf_check ns16x50_io_handle(
> +    int dir, unsigned int addr, unsigned int size, uint32_t *data)
> +{
> +#define op(dir)     (((dir) == IOREQ_WRITE) ? 'W' : 'R')
> +    struct domain *d = rcu_lock_current_domain();
> +    struct vuart *vuart = vuart_find_by_io_range(d, addr, size);
> +    struct vuart_ns16x50 *vdev;
> +    const struct domain *owner;
> +    const struct vuart_info *info;
> +    uint32_t reg;
> +    unsigned dlab;
> +    int rc;
> +
> +    if ( !vuart || !vuart->vdev )
> +    {
> +        printk(KERN_ERR "%c io 0x%04x %d: not initialized\n",

XENLOG_ERR


> +               op(dir), addr, size);
> +
> +        ASSERT_UNREACHABLE();
> +        goto out;
> +    }
> +    vdev = vuart->vdev;
> +
> +    owner = vuart->owner;
> +    ASSERT(owner);
> +    if ( d != owner )
> +    {
> +        ns16x50_err(vdev, "%c io 0x%04x %d: does not match current domain %pv\n",
> +                    op(dir), addr, size, d);
> +
> +        ASSERT_UNREACHABLE();
> +        goto out;
> +    }
> +
> +    info = vuart->info;
> +    ASSERT(info);
> +    reg = addr - info->base_addr;
> +    if ( !IS_ALIGNED(reg, size) )
> +    {
> +        ns16x50_err(vdev, "%c 0x%04x %d: unaligned access\n",
> +                    op(dir), addr, size);


For this one we could consider returning X86EMUL_UNHANDLEABLE but I am not sure
as it would crash the guest.

> +        goto out;
> +    }
> +
> +    dlab = 0;
> +    if ( reg >= NS16X50_REGS_NUM )
> +    {
> +        ns16x50_err(vdev, "%c io 0x%04x %d: DLAB=%d %02"PRIx32" 0x%08"PRIx32": not implemented\n",
> +                    op(dir), addr, size, dlab, reg, *data);
> +        goto out;
> +    }
> +
> +    spin_lock(&vdev->lock);
> +
> +    if ( dir == IOREQ_WRITE )
> +    {
> +        ns16x50_debug(vdev, "%c 0x%04x %d: DLAB=%d %02"PRIx32" 0x%08"PRIx32"\n",
> +                      op(dir), addr, size, dlab, reg, *data);
> +        rc = ns16x50_io_write(vdev, reg, size, data);
> +    }
> +    else
> +    {
> +        rc = ns16x50_io_read(vdev, reg, size, data);
> +        ns16x50_debug(vdev, "%c 0x%04x %d: DLAB=%d %02"PRIx32" 0x%08"PRIx32"\n",
> +                      op(dir), addr, size, dlab, reg, *data);
> +    }
> +    if ( rc < 0 )
> +        ns16x50_err(vdev, "%c 0x%04x %d: DLAB=%d %02"PRIx32" 0x%08"PRIx32": unsupported access\n",
> +                    op(dir), addr, size, dlab, reg, *data);
> +
> +    spin_unlock(&vdev->lock);
> +
> +out:
> +    rcu_unlock_domain(d);
> +
> +    return X86EMUL_OKAY;
> +#undef op
> +}
> +
> +static int ns16x50_init(void *arg)
> +{
> +    struct vuart_ns16x50 *vdev = arg;
> +    const struct vuart_info *info = vdev->info;
> +    struct domain *d = vdev->owner;
> +
> +    ASSERT(vdev);
> +
> +    register_portio_handler(d, info->base_addr, info->size, ns16x50_io_handle);
> +
> +    return 0;
> +}
> +
> +static void cf_check ns16x50_deinit(void *arg)
> +{
> +    struct vuart_ns16x50 *vdev = arg;
> +
> +    ASSERT(vdev);

it should unregister the handlers


> +}
> +
> +static void * cf_check ns16x50_alloc(struct domain *d, const struct vuart_info *info)
> +{
> +    struct vuart_ns16x50 *vdev;
> +    int rc;
> +
> +    if ( !info )
> +        return ERR_PTR(-EINVAL);
> +
> +    if ( vuart_find_by_io_range(d, info->base_addr, info->size) )
> +    {
> +        ns16x50_err(info, "already registered\n");
> +        return ERR_PTR(-EBUSY);
> +    }
> +
> +    if ( !is_hvm_domain(d) )
> +    {
> +        ns16x50_err(info, "not an HVM domain\n");
> +        return ERR_PTR(-ENOSYS);
> +    }
> +
> +    vdev = xvzalloc(typeof(*vdev));
> +    if ( !vdev )
> +    {
> +        ns16x50_err(info, "failed to allocate memory\n");
> +        return ERR_PTR(-ENOMEM);
> +    }
> +
> +    /* Save convenience pointer. */
> +    vdev->name = info->name;
> +    vdev->owner = d;
> +    vdev->info = info;

the spinlock should be initialized 


> +    rc = ns16x50_init(vdev);
> +    if ( rc )
> +        return ERR_PTR(rc);
> +
> +    return vdev;
> +}
> +
> +static void cf_check ns16x50_free(void *arg)
> +{
> +    struct vuart_ns16x50 *vdev = arg;
> +
> +    if ( vdev )
> +        ns16x50_deinit(vdev);
> +
> +    XVFREE(vdev);

XVFREE should only be called if ( vdev )


> +}
> +
> +#define ns16x50_emulator                \
> +{                                       \
> +    .compatible = "ns16550",            \
> +    .alloc      = ns16x50_alloc,        \
> +    .free       = ns16x50_free,         \
> +    .dump_state = NULL,                 \
> +    .put_rx     = NULL,                 \
> +}
> +
> +VUART_REGISTER(ns16x50, ns16x50_emulator);
> +
> +/*
> + * Local variables:
> + * mode: C
> + * c-file-style: "BSD"
> + * c-basic-offset: 4
> + * indent-tabs-mode: nil
> + * End:
> + */
> diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
> index 02bdc256ce37..613f4596e33d 100644
> --- a/xen/include/xen/sched.h
> +++ b/xen/include/xen/sched.h
> @@ -23,6 +23,7 @@
>  #include <asm/atomic.h>
>  #include <asm/current.h>
>  #include <xen/vpci.h>
> +#include <xen/vuart.h>
>  #include <xen/wait.h>
>  #include <public/xen.h>
>  #include <public/domctl.h>
> @@ -660,6 +661,9 @@ struct domain
>      struct {
>          /* Permission to take ownership of the physical console input. */
>          bool input_allowed;
> +#ifdef CONFIG_VUART_FRAMEWORK
> +        struct vuart *vuart;
> +#endif

this should be in patch #1, as patch #1 does:

d->console.vuart = vuart;


>      } console;
>  } __aligned(PAGE_SIZE);
>  
> -- 
> 2.51.0
> 


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 20:12:24 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 20:12:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1102108.1454863 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us5SM-0002ge-Fj; Fri, 29 Aug 2025 20:12:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1102108.1454863; Fri, 29 Aug 2025 20:12: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 1us5SM-0002gX-Cp; Fri, 29 Aug 2025 20:12:18 +0000
Received: by outflank-mailman (input) for mailman id 1102108;
 Fri, 29 Aug 2025 20:12:17 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=sr3h=3J=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1us5SL-0002gR-Bp
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 20:12:17 +0000
Received: from PA4PR04CU001.outbound.protection.outlook.com
 (mail-francecentralazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c20a::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7446d774-8514-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 22:12:14 +0200 (CEST)
Received: from DU5PR03MB10441.eurprd03.prod.outlook.com (2603:10a6:10:516::14)
 by DBAPR03MB6440.eurprd03.prod.outlook.com (2603:10a6:10:193::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.19; Fri, 29 Aug
 2025 20:12:12 +0000
Received: from DU5PR03MB10441.eurprd03.prod.outlook.com
 ([fe80::eeb8:470:6260:e5f4]) by DU5PR03MB10441.eurprd03.prod.outlook.com
 ([fe80::eeb8:470:6260:e5f4%7]) with mapi id 15.20.9073.021; Fri, 29 Aug 2025
 20:12: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>
X-Inumbo-ID: 7446d774-8514-11f0-8dd7-1b34d833f44b
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qtxhkF+VmRJH0/CDqUIZQhFhWQUCjpi3vH5UYUZdhQsyL8RvOx3AetDiKM0z6r8to+WVhVOEsmzwZyEv1DaU4YFA+7/2kFFNxSPRMIx6zu9VFvE/fO2iqELmobgDrv753HKuOiHZYn/6jgHUJeZBV7/vOUfObeHkUlZiPl029jnwogPTukqBas/5/WHLGWOJY6TlRGYnYA3VcLontaBbLCXf3Ol/spgb4MFDsPEEqt/aGBiXqEhHEF1hO4UCTu+/d8B1ZH+WSlHKfjDgdFfNYnX1JqDc/4FseT3ejcapLawQU/iiiwANMmsIICkt2cdx0rIQx3Ty/mAjVui5JRhKnw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=W8bI7d9DCiXGa+KpVlO3MVujbrSBuI8XBePRI+Fxqqs=;
 b=oDlK+FVpi5MmG9aK/6e9PFRaQyyb1E+2EGwX9jVH9pTjTp60Z0k/AbB7fGuH48I1wGX1lSimLNK2+IAdv66GqpCN3YfdhImQUqEDQK2dX3EXNzASSy0xzBMrB2kC9eOQAUr67D17W8Q2npRLQTAB4n6FmdzbxHmtTopsffxFCFutD7vVp7PGQ84dwEUuxkf1cyHGRuJ4qRqYGSpJulNv64ycUjeK3A6XUsIZR/qQvQb+GUJY+Ebd7CYdYnAi38y2VWpuZyp/QOI1TyQ71gkv4OW1xrib+NmzzIe6/Fa+PeSqg+55k3ufHCeEgOsUZeaWf43AeNb1wcmKxjpo1bx1jQ==
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=W8bI7d9DCiXGa+KpVlO3MVujbrSBuI8XBePRI+Fxqqs=;
 b=P8k3n9bS5OMVgf0KlzS9bNSWy98lmx3eDTj+NjsJSaQU4MYlGo6quSxgtkmvF8Rhp2+cJue9KrO9Qj+fldtNmJVOsoC2ltJj5sJPVrDsKQI/kxsjwfnQhSXJ3Zqax6nJ0zP8UDPw2faaWGTJCMlKJTjUku1FtK78T/SsYIWonTmg7cVEBx1L0VvfSn7uJnJeK734++m61d5m30Clspq2gjBaWEjblrkZS4jqWJurXZ8tVOtmA3UIMqlI9UR+9GsztKKRxPvyvJ3FYw92fuwvV592bQm0a37nETbBSBrTaKEGWuBFEHCV5jnzkTzvRJzROwbTWwotgGMFEK5q5mGjhA==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"olekstysh@gmail.com" <olekstysh@gmail.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v5 10/12] xen/arm: vgic-v3: add emulation of GICv3.1 eSPI
 registers
Thread-Topic: [PATCH v5 10/12] xen/arm: vgic-v3: add emulation of GICv3.1 eSPI
 registers
Thread-Index: AQHcGP7mpeV242hLM02UQE7oK85XeQ==
Date: Fri, 29 Aug 2025 20:12:12 +0000
Message-ID: <87cy8dyjj8.fsf@epam.com>
References: <cover.1756481577.git.leonid_komarianskyi@epam.com>
	<6fda233a1a2f0362062ff9a6e80ee223d33815cf.1756481577.git.leonid_komarianskyi@epam.com>
In-Reply-To:
 <6fda233a1a2f0362062ff9a6e80ee223d33815cf.1756481577.git.leonid_komarianskyi@epam.com>
	(Leonid Komarianskyi's message of "Fri, 29 Aug 2025 16:06:36 +0000")
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: DU5PR03MB10441:EE_|DBAPR03MB6440:EE_
x-ms-office365-filtering-correlation-id: 357be96e-f90d-4642-8bd5-08dde738573b
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|1800799024|366016|376014|42112799006|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?7NRrKXMz7ZqsXZOb2Nm0vixnPqZrOlaboQP6vNGOBMB9cIck1ZZuZ+8WbO?=
 =?iso-8859-1?Q?wJbGZDAxQxuy0uu0M0Y0CXVbQlz0PlljPoGXu+7uYuAQ1p0o+DywbXpE5D?=
 =?iso-8859-1?Q?XdUWHtDsBfwZsxkPWLvCzWD1crwWwQ72/CresyjyxBpq/dv4QW6xAZ2fRC?=
 =?iso-8859-1?Q?7tbLvJXzGVGFBqNElCQwBKgoYbibDXv8C8XhJQldzfmf4VBomcxdtL/ywC?=
 =?iso-8859-1?Q?/ZRoNoR95uGsLBTslptQ+5+EL2P/VCLBkNbrVZQspN131ZOSK4EC3ivMSK?=
 =?iso-8859-1?Q?xsKJFXJndIFUdtXpRrtmOGeJwmWiKa2MupTfBT/S4KdHZ22x1ndbYMLr4w?=
 =?iso-8859-1?Q?8vPFkfUPCLec8SI0AYvZdSs5eRAUqFcj7TJuZiHW4AV+R7TVctBcwXVwit?=
 =?iso-8859-1?Q?QiaytyHE6z8kO9oIDHUAvqu239VxgWCcqumz7I7PEvf23a4hj6JQ+gxiyX?=
 =?iso-8859-1?Q?gRFt5xzvhNxP27uGxghhw/UX0Flbuf9K/h/u22Xfo3UscUdRFSj3gnrHbb?=
 =?iso-8859-1?Q?HKoRcaH3FgYhkKWOpqOxt4si32bIfBTg9Scl0JVBb8HH+C089v3p9ZoUmp?=
 =?iso-8859-1?Q?V4W029cslaHbdSMs5Re0/QlK828YbMr3p3y1eYHki8a8LkaTkXEetewU5I?=
 =?iso-8859-1?Q?HUHHhg/lWSKBqVJHznijErAiLlCAZZjunt9e225MFvJXeMsT9UlavjxBdV?=
 =?iso-8859-1?Q?PAbMhIbTDMkEUcfElsBF4oR48gqKDlV3o4xttF46V695S6QuuDizV+3eNk?=
 =?iso-8859-1?Q?u/thXnuxo0jTnr/cibmgL8KrzN4HQhJ/PHVxFklBaU1b7daNXEFDMy6ZF6?=
 =?iso-8859-1?Q?dX0bpcSOyPFFb5/Uzx6xItcF0zQg6JocgzrqA5Fpp1Ay0lgDA6Fe7iyTVE?=
 =?iso-8859-1?Q?DJ7iJi/54HWBfGcAr3Vu5RehbHXGk2zHv0+tM3XwwiPFgOflPwobHNYe/P?=
 =?iso-8859-1?Q?qluVJI+jMq0Ng9oKrVuA+srSW+ZsoL+ZbFkbF23AlM6l86D4xxO2saB6OZ?=
 =?iso-8859-1?Q?h3SXboEH+61f1zH/oyKFm9smzE5r4swdqHEIwkw/8LvEkKUexqkJE3fpI8?=
 =?iso-8859-1?Q?Wck3UM0jbIRA6c9dM06BjutRbuTu9lT7Da9oJtRFh6wjbaR9FkPXCx0N5F?=
 =?iso-8859-1?Q?Gn5vIU1wVJ7eD+BlOGm+UtDYwQ4mDbRc+OrUl3uu02AKRALtnjfIvy7pd3?=
 =?iso-8859-1?Q?V2KfvA798Q7NGsRx7Lh1JixxGE+YKw4pvK8EQVqcfV7U5QK1BK6C2t2gv+?=
 =?iso-8859-1?Q?pwNO90xr99wP7j1utsFjsKe+pWNaohI4wBp7b5ZSKeHDjdJrO2za1mmGC3?=
 =?iso-8859-1?Q?SZROGgVlf/4nhD7lmxK8ctXyXw7qxcJFyhhbpp689O8IJhuMYzwoVjFAU3?=
 =?iso-8859-1?Q?NoFTPDxaqiD0A+YwetYjaPZ+MXtgQQsFLFNJqINFwe/mcB4zuFw5qAUAyT?=
 =?iso-8859-1?Q?Ux2ixlQetWlN8WXoIW9WUf+hULnsrymM3jCNfO4M+cO0AgCbEiBbuQbeHZ?=
 =?iso-8859-1?Q?+I/OCNKY5robf4ajhAZX4vlxV3jKLkxafSfp4DEb0cVw=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU5PR03MB10441.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(42112799006)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?aB3eSo3uyevDCb37f5q/c/mzH1NOy0biGyfkC8YGqJm78UDFD5ObP84Orc?=
 =?iso-8859-1?Q?oH/tOpvIo8kC+mMoknyAtGvuyAGKKPxosHbj0RugSGAbiYufY06bmB9PX0?=
 =?iso-8859-1?Q?xyl90myzqjpMFwB4QVkcFwugP/P5ldtC+HEqWVYG7CTBA4MDx6ivswLpu5?=
 =?iso-8859-1?Q?r7Db5GhODGOYd/suSEkhqeuweifzW3qSS9wAG38xdWl8vA6bHHaFJK1CSU?=
 =?iso-8859-1?Q?0RLhe8LgKu9Ep7lk60CMT0Nx3WHfZLtRs9SIEox6OuKtaLid2YvPkt77aK?=
 =?iso-8859-1?Q?hlmTjc44y4jCwlY8U2UrsqgfID8T6Kdyr5Ph0c6JXeTcX48XxYhB3YDTvA?=
 =?iso-8859-1?Q?dyhQ5eOvwMJfOEUilMYQh1QGPb1Zo4oGvgBqibALj6JXk1JUOOZTAGY21/?=
 =?iso-8859-1?Q?0R0nEYuOXsuFhmr/+Tj/rh1g2MNmdfUIe9Pi/NFL877L26c9lY7jRNtwPz?=
 =?iso-8859-1?Q?H4jzEGrjbnWdNsC6Gv4riZoU6hCa0z/hkkoiPI9Epkf0sZ3dsCddmNbnYw?=
 =?iso-8859-1?Q?4tMe/YFJa6Xd9I+XUt13+43Abi1xOFwQNCeB7oIHn8li/bY7MFzlz2TqGo?=
 =?iso-8859-1?Q?4pH7P7X/yPlf8OO62OelPrExrJ8RAQJTAvM1SSuIqkLxQ9q8YDvz46qSQe?=
 =?iso-8859-1?Q?TzN8oe4nd60jjjdb1Q4oVdRaF3SEodl+59SJ9Q1xDcpUAX4SZWiprDTaeX?=
 =?iso-8859-1?Q?MvZDdgBPY4UzMjumhtPacRgGBjRpURVIdcOFJuMYLldFvY9/HGLKts6/rt?=
 =?iso-8859-1?Q?STOGGgSIQ5UQkEVeU+ATkCXz7fpkE6nO4iCXMGQuk98Fmt/HbggzjAptbF?=
 =?iso-8859-1?Q?DoNwbA2CBNwROsEobSaxZEuuVWpubncawhMOGId8IdB/X1HKwO8tXyizfq?=
 =?iso-8859-1?Q?BjAoqtfao97ULP51qxvsatdPGn5kBlk4cyw655y+MZQlFadLojM4omTxRC?=
 =?iso-8859-1?Q?+5cDVPaZYsGnpY1Pkp+dxh02Z+yjkF0WQy+VMt5f7o1wIyMDNNzTpihX4F?=
 =?iso-8859-1?Q?28ZpaJEMzJ06igAyAq1pllUYB46CXbjNZZaXERug9nDjkpsKfQkPCjmAAZ?=
 =?iso-8859-1?Q?b73BU8kED4D7QwEzAPJi3mrz9j4KYVCRqYlB66inw5eUhDUWlyxXfLNmG4?=
 =?iso-8859-1?Q?7YMmu/UAl2A9iu3hWC8smQkNMWOI16TW9EYCfSbAlUEJ95lViANWBVUOc/?=
 =?iso-8859-1?Q?MoJZFD0b30MOohQqV2KYBD+7e2WOad90Au3tOBwn+64SY+XjWEvCORc6vb?=
 =?iso-8859-1?Q?+0Opklzxjql7P6eMxt4GvH06ijEHSmx3y0IZABzXkb3UOHeCTKc4kcSXnF?=
 =?iso-8859-1?Q?TA50kQiZTsCEiBbBgWnqu8EYjVtQ+wWxFBoLwjqlUe62qqDnjbfwax2Q1r?=
 =?iso-8859-1?Q?v5pqoDKpbFzF+VxbWu8N9jCqCaziG1vWZXnimswjzWiVxsREnrG3DiemJg?=
 =?iso-8859-1?Q?GG3Df/HAgJN0I94E0Y3LKLzXxUB2Ix+JQt6JqZqXzFV3Q/FOFJVgEOB/fP?=
 =?iso-8859-1?Q?SrZ7gK5uabY3bj+1mU7wUTLce/lRB7PwudsA6cNn2FASo9OaDNUs4f9YQg?=
 =?iso-8859-1?Q?vNigbHQ7vOZ/IHAi5gZh4fCYd0W0JMsfRjHh4aumxFjEcJSa1uhP7A5uNY?=
 =?iso-8859-1?Q?uztskh2wbDme8HkutLQ10RXMDJZPJGkeBHTP7712hg0/+wAig9rbzu9g?=
 =?iso-8859-1?Q?=3D=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: DU5PR03MB10441.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 357be96e-f90d-4642-8bd5-08dde738573b
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Aug 2025 20:12:12.3641
 (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: 1Qv4ZhNxRkcuW2edhE7ro+5FmYr2XePZtcUy//qvNUrhm38NZm+/GZ/8vj2VkeGJCJE7HB5TnaBLtHc/1CSuwbDwEWLb27cG3CcM19kdTLY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR03MB6440

Hi Leonid,

Leonid Komarianskyi <Leonid_Komarianskyi@epam.com> writes:

> Implemented support for GICv3.1 extended SPI registers for vGICv3,
> allowing the emulation of eSPI-specific behavior for guest domains.
> The implementation includes read and write emulation for eSPI-related
> registers (e.g., GICD_ISENABLERnE, GICD_IROUTERnE, and others),
> following a similar approach to the handling of regular SPIs.
>
> The eSPI registers, previously located in reserved address ranges,
> are now adjusted to support MMIO read and write operations correctly
> when CONFIG_GICV3_ESPI is enabled.
>
> The availability of eSPIs and the number of emulated extended SPIs
> for guest domains is reported by setting the appropriate bits in the
> GICD_TYPER register, based on the number of eSPIs requested by the
> domain and supported by the hardware. In cases where the configuration
> option is disabled, the hardware does not support eSPIs, or the domain
> does not request such interrupts, the functionality remains unchanged.
>
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>

I have a couple of comments about coding style, but apart from that it
looks really good. With these issues fixed:

Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>

>
> ---
> Changes in V5:
> - since eSPI-specific defines and macros are now available even when the
>   appropriate config is disabled, this allows us to remove many
>   #ifdef guards and reuse the existing code for regular SPIs for eSPIs as
>   well, as eSPIs are processed similarly. This improves code readability
>   and consolidates the register ranges for SPIs and eSPIs in a single
>   place, simplifying future changes or fixes for SPIs and their
>   counterparts from the extended range
> - moved vgic_ext_rank_offset() from
>   [08/12] xen/arm: vgic: add resource management for extended SPIs
>   as the function was unused before this patch
> - added stub implementation of vgic_ext_rank_offset() when CONFIG_GICV3_E=
SPI=3Dn
> - removed unnecessary defines for reserved ranges, which were introduced =
in
>   V4 to reduce the number of #ifdefs. The issue is now resolved by
>   allowing the use of SPI-specific offsets and reworking the logic
>
> Changes in V4:
> - added missing RAZ and write ignore eSPI-specific registers ranges:
>   GICD_NSACRnE and GICD_IGRPMODRnE
> - changed previously reserved range to cover GICD_NSACRnE and
>   GICD_IGRPMODRnE
> - introduced GICD_RESERVED_RANGE<n>_START/END defines to remove
>   hardcoded values and reduce the number of ifdefs
> - fixed reserved ranges with eSPI option enabled: added missing range
>   0x0F30-0x0F7C
> - updated the logic for domains that do not support eSPI, but Xen is
>   compiled with the eSPI option. Now, prior to other MMIO checks, we
>   verify whether eSPI is available for the domain or not. If not, it
>   behaves as it does currently - RAZ and WI
> - fixed print for GICD_ICACTIVERnE
> - fixed new lines formatting for switch-case
>
> Changes in V3:
> - changed vgic_store_irouter parameters - instead of offset virq is
>   used, to remove the additional bool espi parameter and simplify
>   checks. Also, adjusted parameters for regular SPI. Since the offset
>   parameter was used only for calculating virq number and then reused for
>   finding rank offset, it will not affect functionality.
> - fixed formatting for goto lables - added newlines after condition
> - fixed logs for GICD_ISACTIVERnE and GICD_ICACTIVERnE handlers
> - removed #ifdefs in 2 places where they were adjacent and could be merge=
d
>
> Changes in V2:
> - add missing rank index conversion for pending and inflight irqs
> ---
>  xen/arch/arm/include/asm/vgic.h |   4 +
>  xen/arch/arm/vgic-v3.c          | 198 ++++++++++++++++++++++++++------
>  xen/arch/arm/vgic.c             |  23 ++++
>  3 files changed, 192 insertions(+), 33 deletions(-)
>
> diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/v=
gic.h
> index 3aa22114ba..103bc3c74b 100644
> --- a/xen/arch/arm/include/asm/vgic.h
> +++ b/xen/arch/arm/include/asm/vgic.h
> @@ -314,6 +314,10 @@ extern struct vgic_irq_rank *vgic_rank_offset(struct=
 vcpu *v,
>                                                unsigned int b,
>                                                unsigned int n,
>                                                unsigned int s);
> +extern struct vgic_irq_rank *vgic_ext_rank_offset(struct vcpu *v,
> +                                                  unsigned int b,
> +                                                  unsigned int n,
> +                                                  unsigned int s);
>  extern struct vgic_irq_rank *vgic_rank_irq(struct vcpu *v, unsigned int =
irq);
>  extern void vgic_disable_irqs(struct vcpu *v, uint32_t r, unsigned int n=
);
>  extern void vgic_enable_irqs(struct vcpu *v, uint32_t r, unsigned int n)=
;
> diff --git a/xen/arch/arm/vgic-v3.c b/xen/arch/arm/vgic-v3.c
> index 4369c55177..b5d766c98f 100644
> --- a/xen/arch/arm/vgic-v3.c
> +++ b/xen/arch/arm/vgic-v3.c
> @@ -111,13 +111,10 @@ static uint64_t vgic_fetch_irouter(struct vgic_irq_=
rank *rank,
>   * Note the offset will be aligned to the appropriate boundary.
>   */
>  static void vgic_store_irouter(struct domain *d, struct vgic_irq_rank *r=
ank,
> -                               unsigned int offset, uint64_t irouter)
> +                               unsigned int virq, uint64_t irouter)
>  {
>      struct vcpu *new_vcpu, *old_vcpu;
> -    unsigned int virq;
> -
> -    /* There is 1 vIRQ per IROUTER */
> -    virq =3D offset / NR_BYTES_PER_IROUTER;
> +    unsigned int offset;
> =20
>      /*
>       * The IROUTER0-31, used for SGIs/PPIs, are reserved and should
> @@ -685,13 +682,20 @@ static int __vgic_v3_distr_common_mmio_read(const c=
har *name, struct vcpu *v,
>      {
>      case VRANGE32(GICD_IGROUPR, GICD_IGROUPRN):
>      case VRANGE32(GICD_IGRPMODR, GICD_IGRPMODRN):
> +    case VRANGE32(GICD_IGROUPRnE, GICD_IGROUPRnEN):
> +    case VRANGE32(GICD_IGRPMODRnE, GICD_IGRPMODRnEN):
>          /* We do not implement security extensions for guests, read zero=
 */
>          if ( dabt.size !=3D DABT_WORD ) goto bad_width;
>          goto read_as_zero;
> =20
>      case VRANGE32(GICD_ISENABLER, GICD_ISENABLERN):
> +    case VRANGE32(GICD_ISENABLERnE, GICD_ISENABLERnEN):
>          if ( dabt.size !=3D DABT_WORD ) goto bad_width;
> -        rank =3D vgic_rank_offset(v, 1, reg - GICD_ISENABLER, DABT_WORD)=
;
> +        if ( reg >=3D GICD_ISENABLERnE )
> +            rank =3D vgic_ext_rank_offset(v, 1, reg - GICD_ISENABLERnE,
> +                                        DABT_WORD);
> +        else
> +            rank =3D vgic_rank_offset(v, 1, reg - GICD_ISENABLER, DABT_W=
ORD);
>          if ( rank =3D=3D NULL ) goto read_as_zero;
>          vgic_lock_rank(v, rank, flags);
>          *r =3D vreg_reg32_extract(rank->ienable, info);
> @@ -699,8 +703,13 @@ static int __vgic_v3_distr_common_mmio_read(const ch=
ar *name, struct vcpu *v,
>          return 1;
> =20
>      case VRANGE32(GICD_ICENABLER, GICD_ICENABLERN):
> +    case VRANGE32(GICD_ICENABLERnE, GICD_ICENABLERnEN):
>          if ( dabt.size !=3D DABT_WORD ) goto bad_width;
> -        rank =3D vgic_rank_offset(v, 1, reg - GICD_ICENABLER, DABT_WORD)=
;
> +        if ( reg >=3D GICD_ICENABLERnE )
> +            rank =3D vgic_ext_rank_offset(v, 1, reg - GICD_ICENABLERnE,
> +                                        DABT_WORD);
> +        else
> +            rank =3D vgic_rank_offset(v, 1, reg - GICD_ICENABLER, DABT_W=
ORD);
>          if ( rank =3D=3D NULL ) goto read_as_zero;
>          vgic_lock_rank(v, rank, flags);
>          *r =3D vreg_reg32_extract(rank->ienable, info);
> @@ -710,20 +719,29 @@ static int __vgic_v3_distr_common_mmio_read(const c=
har *name, struct vcpu *v,
>      /* Read the pending status of an IRQ via GICD/GICR is not supported =
*/
>      case VRANGE32(GICD_ISPENDR, GICD_ISPENDRN):
>      case VRANGE32(GICD_ICPENDR, GICD_ICPENDRN):
> +    case VRANGE32(GICD_ISPENDRnE, GICD_ISPENDRnEN):
> +    case VRANGE32(GICD_ICPENDRnE, GICD_ICPENDRnEN):
>          goto read_as_zero;
> =20
>      /* Read the active status of an IRQ via GICD/GICR is not supported *=
/
>      case VRANGE32(GICD_ISACTIVER, GICD_ISACTIVERN):
>      case VRANGE32(GICD_ICACTIVER, GICD_ICACTIVERN):
> +    case VRANGE32(GICD_ISACTIVERnE, GICD_ISACTIVERnEN):
> +    case VRANGE32(GICD_ICACTIVERnE, GICD_ICACTIVERnEN):
>          goto read_as_zero;
> =20
>      case VRANGE32(GICD_IPRIORITYR, GICD_IPRIORITYRN):
> +    case VRANGE32(GICD_IPRIORITYRnE, GICD_IPRIORITYRnEN):
>      {
>          uint32_t ipriorityr;
>          uint8_t rank_index;
> =20
>          if ( dabt.size !=3D DABT_BYTE && dabt.size !=3D DABT_WORD ) goto=
 bad_width;
> -        rank =3D vgic_rank_offset(v, 8, reg - GICD_IPRIORITYR, DABT_WORD=
);
> +        if ( reg >=3D GICD_IPRIORITYRnE )
> +            rank =3D vgic_ext_rank_offset(v, 8, reg - GICD_IPRIORITYRnE,
> +                                        DABT_WORD);
> +        else
> +            rank =3D vgic_rank_offset(v, 8, reg - GICD_IPRIORITYR, DABT_=
WORD);
>          if ( rank =3D=3D NULL ) goto read_as_zero;
>          rank_index =3D REG_RANK_INDEX(8, reg - GICD_IPRIORITYR, DABT_WOR=
D);
> =20
> @@ -737,11 +755,15 @@ static int __vgic_v3_distr_common_mmio_read(const c=
har *name, struct vcpu *v,
>      }
> =20
>      case VRANGE32(GICD_ICFGR, GICD_ICFGRN):
> +    case VRANGE32(GICD_ICFGRnE, GICD_ICFGRnEN):
>      {
>          uint32_t icfgr;
> =20
>          if ( dabt.size !=3D DABT_WORD ) goto bad_width;
> -        rank =3D vgic_rank_offset(v, 2, reg - GICD_ICFGR, DABT_WORD);
> +        if ( reg >=3D GICD_ICFGRnE )
> +            rank =3D vgic_ext_rank_offset(v, 2, reg - GICD_ICFGRnE, DABT=
_WORD);
> +        else
> +            rank =3D vgic_rank_offset(v, 2, reg - GICD_ICFGR, DABT_WORD)=
;
>          if ( rank =3D=3D NULL ) goto read_as_zero;
>          vgic_lock_rank(v, rank, flags);
>          icfgr =3D rank->icfg[REG_RANK_INDEX(2, reg - GICD_ICFGR, DABT_WO=
RD)];
> @@ -782,46 +804,81 @@ static int __vgic_v3_distr_common_mmio_write(const =
char *name, struct vcpu *v,
>      {
>      case VRANGE32(GICD_IGROUPR, GICD_IGROUPRN):
>      case VRANGE32(GICD_IGRPMODR, GICD_IGRPMODRN):
> +    case VRANGE32(GICD_IGROUPRnE, GICD_IGROUPRnEN):
> +    case VRANGE32(GICD_IGRPMODRnE, GICD_IGRPMODRnEN):
>          /* We do not implement security extensions for guests, write ign=
ore */
>          goto write_ignore_32;
> =20
>      case VRANGE32(GICD_ISENABLER, GICD_ISENABLERN):
> +    case VRANGE32(GICD_ISENABLERnE, GICD_ISENABLERnEN):
>          if ( dabt.size !=3D DABT_WORD ) goto bad_width;
> -        rank =3D vgic_rank_offset(v, 1, reg - GICD_ISENABLER, DABT_WORD)=
;
> +        if ( reg >=3D GICD_ISENABLERnE )
> +            rank =3D vgic_ext_rank_offset(v, 1, reg - GICD_ISENABLERnE,
> +                                        DABT_WORD);
> +        else
> +            rank =3D vgic_rank_offset(v, 1, reg - GICD_ISENABLER, DABT_W=
ORD);
>          if ( rank =3D=3D NULL ) goto write_ignore;
>          vgic_lock_rank(v, rank, flags);
>          tr =3D rank->ienable;
>          vreg_reg32_setbits(&rank->ienable, r, info);
> -        vgic_enable_irqs(v, (rank->ienable) & (~tr), rank->index);
> +        if ( reg >=3D GICD_ISENABLERnE )
> +            vgic_enable_irqs(v, (rank->ienable) & (~tr),
> +                             EXT_RANK_IDX2NUM(rank->index));
> +        else
> +            vgic_enable_irqs(v, (rank->ienable) & (~tr), rank->index);
>          vgic_unlock_rank(v, rank, flags);
>          return 1;
> =20
>      case VRANGE32(GICD_ICENABLER, GICD_ICENABLERN):
> +    case VRANGE32(GICD_ICENABLERnE, GICD_ICENABLERnEN):
>          if ( dabt.size !=3D DABT_WORD ) goto bad_width;
> -        rank =3D vgic_rank_offset(v, 1, reg - GICD_ICENABLER, DABT_WORD)=
;
> +        if ( reg >=3D GICD_ICENABLERnE )
> +            rank =3D vgic_ext_rank_offset(v, 1, reg - GICD_ICENABLERnE,
> +                                        DABT_WORD);
> +        else
> +            rank =3D vgic_rank_offset(v, 1, reg - GICD_ICENABLER, DABT_W=
ORD);
>          if ( rank =3D=3D NULL ) goto write_ignore;
>          vgic_lock_rank(v, rank, flags);
>          tr =3D rank->ienable;
>          vreg_reg32_clearbits(&rank->ienable, r, info);
> -        vgic_disable_irqs(v, (~rank->ienable) & tr, rank->index);
> +        if ( reg >=3D GICD_ICENABLERnE )
> +            vgic_disable_irqs(v, (~rank->ienable) & tr,
> +                              EXT_RANK_IDX2NUM(rank->index));
> +        else
> +            vgic_disable_irqs(v, (~rank->ienable) & tr, rank->index);
>          vgic_unlock_rank(v, rank, flags);
>          return 1;
> =20
>      case VRANGE32(GICD_ISPENDR, GICD_ISPENDRN):
> +    case VRANGE32(GICD_ISPENDRnE, GICD_ISPENDRnEN):
>          if ( dabt.size !=3D DABT_WORD ) goto bad_width;
> -        rank =3D vgic_rank_offset(v, 1, reg - GICD_ISPENDR, DABT_WORD);
> +        if ( reg >=3D GICD_ISPENDRnE )
> +            rank =3D vgic_ext_rank_offset(v, 1, reg - GICD_ISPENDRnE, DA=
BT_WORD);
> +        else
> +            rank =3D vgic_rank_offset(v, 1, reg - GICD_ISPENDR, DABT_WOR=
D);
>          if ( rank =3D=3D NULL ) goto write_ignore;
> =20
> -        vgic_set_irqs_pending(v, r, rank->index);
> +        if ( reg >=3D GICD_ISPENDRnE )
> +            vgic_set_irqs_pending(v, r, EXT_RANK_IDX2NUM(rank->index));
> +        else
> +            vgic_set_irqs_pending(v, r, rank->index);
> =20
>          return 1;
> =20
>      case VRANGE32(GICD_ICPENDR, GICD_ICPENDRN):
> +    case VRANGE32(GICD_ICPENDRnE, GICD_ICPENDRnEN):
>          if ( dabt.size !=3D DABT_WORD ) goto bad_width;
> -        rank =3D vgic_rank_offset(v, 1, reg - GICD_ICPENDR, DABT_WORD);
> +        if ( reg >=3D GICD_ICPENDRnE )
> +            rank =3D vgic_ext_rank_offset(v, 1, reg - GICD_ICPENDRnE, DA=
BT_WORD);
> +        else
> +            rank =3D vgic_rank_offset(v, 1, reg - GICD_ICPENDR, DABT_WOR=
D);
>          if ( rank =3D=3D NULL ) goto write_ignore;
> =20
> -        vgic_check_inflight_irqs_pending(v, rank->index, r);
> +        if ( reg >=3D GICD_ICPENDRnE )
> +            vgic_check_inflight_irqs_pending(v,
> +                                             EXT_RANK_IDX2NUM(rank->inde=
x), r);
> +        else
> +            vgic_check_inflight_irqs_pending(v, rank->index, r);
> =20
>          goto write_ignore;
> =20
> @@ -838,16 +895,38 @@ static int __vgic_v3_distr_common_mmio_write(const =
char *name, struct vcpu *v,
>                 v, name, r, reg - GICD_ICACTIVER);
>          goto write_ignore_32;
> =20
> +    case VRANGE32(GICD_ISACTIVERnE, GICD_ISACTIVERnEN):
> +        if ( dabt.size !=3D DABT_WORD )
> +            goto bad_width;
> +        printk(XENLOG_G_ERR
> +               "%pv: %s: unhandled word write %#"PRIregister" to ISACTIV=
ER%dE\n",
> +               v, name, r, reg - GICD_ISACTIVERnE);
> +        return 0;
> +
> +    case VRANGE32(GICD_ICACTIVERnE, GICD_ICACTIVERnEN):
> +        printk(XENLOG_G_ERR
> +               "%pv: %s: unhandled word write %#"PRIregister" to ICACTIV=
ER%dE\n",
> +               v, name, r, reg - GICD_ICACTIVERnE);
> +        goto write_ignore_32;
> +
>      case VRANGE32(GICD_IPRIORITYR, GICD_IPRIORITYRN):
> +    case VRANGE32(GICD_IPRIORITYRnE, GICD_IPRIORITYRnEN):
>      {
> -        uint32_t *ipriorityr, priority;
> +        uint32_t *ipriorityr, priority, offset;
> =20
>          if ( dabt.size !=3D DABT_BYTE && dabt.size !=3D DABT_WORD ) goto=
 bad_width;
> -        rank =3D vgic_rank_offset(v, 8, reg - GICD_IPRIORITYR, DABT_WORD=
);
> +        if ( reg >=3D GICD_IPRIORITYRnE ) {

Brace should go on new line

> +            offset =3D reg - GICD_IPRIORITYRnE;
> +            rank =3D vgic_ext_rank_offset(v, 8, offset, DABT_WORD);
> +        }
> +        else
> +        {
> +            offset =3D reg - GICD_IPRIORITYR;
> +            rank =3D vgic_rank_offset(v, 8, offset, DABT_WORD);
> +        }
>          if ( rank =3D=3D NULL ) goto write_ignore;
>          vgic_lock_rank(v, rank, flags);
> -        ipriorityr =3D &rank->ipriorityr[REG_RANK_INDEX(8, reg - GICD_IP=
RIORITYR,
> -                                                      DABT_WORD)];
> +        ipriorityr =3D &rank->ipriorityr[REG_RANK_INDEX(8, offset, DABT_=
WORD)];
>          priority =3D ACCESS_ONCE(*ipriorityr);
>          vreg_reg32_update(&priority, r, info);
>          ACCESS_ONCE(*ipriorityr) =3D priority;
> @@ -859,10 +938,14 @@ static int __vgic_v3_distr_common_mmio_write(const =
char *name, struct vcpu *v,
>          goto write_ignore_32;
> =20
>      case VRANGE32(GICD_ICFGR + 4, GICD_ICFGRN): /* PPI + SPIs */
> +    case VRANGE32(GICD_ICFGRnE, GICD_ICFGRnEN):
>          /* ICFGR1 for PPI's, which is implementation defined
>             if ICFGR1 is programmable or not. We chose to program */
>          if ( dabt.size !=3D DABT_WORD ) goto bad_width;
> -        rank =3D vgic_rank_offset(v, 2, reg - GICD_ICFGR, DABT_WORD);
> +        if ( reg >=3D GICD_ICFGRnE )
> +            rank =3D vgic_ext_rank_offset(v, 2, reg - GICD_ICFGRnE, DABT=
_WORD);
> +        else
> +            rank =3D vgic_rank_offset(v, 2, reg - GICD_ICFGR, DABT_WORD)=
;
>          if ( rank =3D=3D NULL ) goto write_ignore;
>          vgic_lock_rank(v, rank, flags);
>          vreg_reg32_update(&rank->icfg[REG_RANK_INDEX(2, reg - GICD_ICFGR=
,
> @@ -1129,6 +1212,16 @@ static int vgic_v3_distr_mmio_read(struct vcpu *v,=
 mmio_info_t *info,
>              typer |=3D GICD_TYPE_LPIS;
> =20
>          typer |=3D (v->domain->arch.vgic.intid_bits - 1) << GICD_TYPE_ID=
_BITS_SHIFT;
> +#ifdef CONFIG_GICV3_ESPI
> +        if ( v->domain->arch.vgic.nr_espis > 0 )
> +        {
> +            /* Set eSPI support bit for the domain */
> +            typer |=3D GICD_TYPER_ESPI;
> +            /* Set ESPI range bits */
> +            typer |=3D (DIV_ROUND_UP(v->domain->arch.vgic.nr_espis, 32) =
- 1)
> +                       << GICD_TYPER_ESPI_RANGE_SHIFT;
> +        }
> +#endif
> =20
>          *r =3D vreg_reg32_extract(typer, info);
> =20
> @@ -1194,6 +1287,16 @@ static int vgic_v3_distr_mmio_read(struct vcpu *v,=
 mmio_info_t *info,
>      case VRANGE32(GICD_IPRIORITYR, GICD_IPRIORITYRN):
>      case VRANGE32(GICD_ICFGR, GICD_ICFGRN):
>      case VRANGE32(GICD_IGRPMODR, GICD_IGRPMODRN):
> +    case VRANGE32(GICD_IGROUPRnE, GICD_IGROUPRnEN):
> +    case VRANGE32(GICD_ISENABLERnE, GICD_ISENABLERnEN):
> +    case VRANGE32(GICD_ICENABLERnE, GICD_ICENABLERnEN):
> +    case VRANGE32(GICD_ISPENDRnE, GICD_ISPENDRnEN):
> +    case VRANGE32(GICD_ICPENDRnE, GICD_ICPENDRnEN):
> +    case VRANGE32(GICD_ISACTIVERnE, GICD_ISACTIVERnEN):
> +    case VRANGE32(GICD_ICACTIVERnE, GICD_ICACTIVERnEN):
> +    case VRANGE32(GICD_IPRIORITYRnE, GICD_IPRIORITYRnEN):
> +    case VRANGE32(GICD_ICFGRnE, GICD_ICFGRnEN):
> +    case VRANGE32(GICD_IGRPMODRnE, GICD_IGRPMODRnEN):
>          /*
>           * Above all register are common with GICR and GICD
>           * Manage in common
> @@ -1201,6 +1304,7 @@ static int vgic_v3_distr_mmio_read(struct vcpu *v, =
mmio_info_t *info,
>          return __vgic_v3_distr_common_mmio_read("vGICD", v, info, gicd_r=
eg, r);
> =20
>      case VRANGE32(GICD_NSACR, GICD_NSACRN):
> +    case VRANGE32(GICD_NSACRnE, GICD_NSACRnEN):
>          /* We do not implement security extensions for guests, read zero=
 */
>          goto read_as_zero_32;
> =20
> @@ -1216,16 +1320,21 @@ static int vgic_v3_distr_mmio_read(struct vcpu *v=
, mmio_info_t *info,
>          /* Replaced with GICR_ISPENDR0. So ignore write */
>          goto read_as_zero_32;
> =20
> -    case VRANGE32(0x0F30, 0x60FC):
> +    case VRANGE32(0x0F30, 0x0FFC):
>          goto read_reserved;
> =20
>      case VRANGE64(GICD_IROUTER32, GICD_IROUTER1019):
> +    case VRANGE64(GICD_IROUTERnE, GICD_IROUTERnEN):
>      {
>          uint64_t irouter;
> =20
>          if ( !vgic_reg64_check_access(dabt) ) goto bad_width;
> -        rank =3D vgic_rank_offset(v, 64, gicd_reg - GICD_IROUTER,
> -                                DABT_DOUBLE_WORD);
> +        if ( gicd_reg >=3D GICD_IROUTERnE )
> +            rank =3D vgic_ext_rank_offset(v, 64, gicd_reg - GICD_IROUTER=
nE,
> +                                        DABT_DOUBLE_WORD);
> +        else
> +            rank =3D vgic_rank_offset(v, 64, gicd_reg - GICD_IROUTER,
> +                                    DABT_DOUBLE_WORD);
>          if ( rank =3D=3D NULL ) goto read_as_zero;
>          vgic_lock_rank(v, rank, flags);
>          irouter =3D vgic_fetch_irouter(rank, gicd_reg - GICD_IROUTER);
> @@ -1235,8 +1344,8 @@ static int vgic_v3_distr_mmio_read(struct vcpu *v, =
mmio_info_t *info,
> =20
>          return 1;
>      }
> -
> -    case VRANGE32(0x7FE0, 0xBFFC):
> +    case VRANGE32(0x3700, 0x60FC):
> +    case VRANGE32(0xA004, 0xBFFC):
>          goto read_reserved;
> =20
>      case VRANGE32(0xC000, 0xFFCC):
> @@ -1382,12 +1491,23 @@ static int vgic_v3_distr_mmio_write(struct vcpu *=
v, mmio_info_t *info,
>      case VRANGE32(GICD_IPRIORITYR, GICD_IPRIORITYRN):
>      case VRANGE32(GICD_ICFGR, GICD_ICFGRN):
>      case VRANGE32(GICD_IGRPMODR, GICD_IGRPMODRN):
> +    case VRANGE32(GICD_IGROUPRnE, GICD_IGROUPRnEN):
> +    case VRANGE32(GICD_ISENABLERnE, GICD_ISENABLERnEN):
> +    case VRANGE32(GICD_ICENABLERnE, GICD_ICENABLERnEN):
> +    case VRANGE32(GICD_ISPENDRnE, GICD_ISPENDRnEN):
> +    case VRANGE32(GICD_ICPENDRnE, GICD_ICPENDRnEN):
> +    case VRANGE32(GICD_ISACTIVERnE, GICD_ISACTIVERnEN):
> +    case VRANGE32(GICD_ICACTIVERnE, GICD_ICACTIVERnEN):
> +    case VRANGE32(GICD_IPRIORITYRnE, GICD_IPRIORITYRnEN):
> +    case VRANGE32(GICD_ICFGRnE, GICD_ICFGRnEN):
> +    case VRANGE32(GICD_IGRPMODRnE, GICD_IGRPMODRnEN):
>          /* Above registers are common with GICR and GICD
>           * Manage in common */
>          return __vgic_v3_distr_common_mmio_write("vGICD", v, info,
>                                                   gicd_reg, r);
> =20
>      case VRANGE32(GICD_NSACR, GICD_NSACRN):
> +    case VRANGE32(GICD_NSACRnE, GICD_NSACRnEN):
>          /* We do not implement security extensions for guests, write ign=
ore */
>          goto write_ignore_32;
> =20
> @@ -1405,26 +1525,38 @@ static int vgic_v3_distr_mmio_write(struct vcpu *=
v, mmio_info_t *info,
>          if ( dabt.size !=3D DABT_WORD ) goto bad_width;
>          return 0;
> =20
> -    case VRANGE32(0x0F30, 0x60FC):
> +    case VRANGE32(0x0F30, 0x0FFC):
>          goto write_reserved;
> =20
>      case VRANGE64(GICD_IROUTER32, GICD_IROUTER1019):
> +    case VRANGE64(GICD_IROUTERnE, GICD_IROUTERnEN):
>      {
>          uint64_t irouter;
> +        unsigned int offset, virq;
> =20
>          if ( !vgic_reg64_check_access(dabt) ) goto bad_width;
> -        rank =3D vgic_rank_offset(v, 64, gicd_reg - GICD_IROUTER,
> -                                DABT_DOUBLE_WORD);
> +        if ( gicd_reg >=3D GICD_IROUTERnE ) {

Braces should go into separate line

> +            offset =3D gicd_reg - GICD_IROUTERnE;
> +            rank =3D vgic_ext_rank_offset(v, 64, offset, DABT_DOUBLE_WOR=
D);
> +        } else {

... so "else" also should be on a separate line

> +            offset =3D gicd_reg - GICD_IROUTER;
> +            rank =3D vgic_rank_offset(v, 64, offset, DABT_DOUBLE_WORD);
> +        }
>          if ( rank =3D=3D NULL ) goto write_ignore;
>          vgic_lock_rank(v, rank, flags);
> -        irouter =3D vgic_fetch_irouter(rank, gicd_reg - GICD_IROUTER);
> +        irouter =3D vgic_fetch_irouter(rank, offset);
>          vreg_reg64_update(&irouter, r, info);
> -        vgic_store_irouter(v->domain, rank, gicd_reg - GICD_IROUTER, iro=
uter);
> +        if ( gicd_reg >=3D GICD_IROUTERnE )
> +            virq =3D ESPI_IDX2INTID(offset / NR_BYTES_PER_IROUTER);
> +        else
> +            virq =3D offset / NR_BYTES_PER_IROUTER;
> +        vgic_store_irouter(v->domain, rank, virq, irouter);
>          vgic_unlock_rank(v, rank, flags);
>          return 1;
>      }
> =20
> -    case VRANGE32(0x7FE0, 0xBFFC):
> +    case VRANGE32(0x3700, 0x60FC):
> +    case VRANGE32(0xA004, 0xBFFC):
>          goto write_reserved;
> =20
>      case VRANGE32(0xC000, 0xFFCC):
> diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
> index c9b9528c66..27ffdf316c 100644
> --- a/xen/arch/arm/vgic.c
> +++ b/xen/arch/arm/vgic.c
> @@ -193,6 +193,18 @@ int domain_vgic_register(struct domain *d, unsigned =
int *mmio_count)
>  }
> =20
>  #ifdef CONFIG_GICV3_ESPI
> +/*
> + * The function behavior is the same as for regular SPIs (vgic_rank_offs=
et),
> + * but it operates with extended SPI ranks.
> + */
> +struct vgic_irq_rank *vgic_ext_rank_offset(struct vcpu *v, unsigned int =
b,
> +                                           unsigned int n, unsigned int =
s)
> +{
> +    unsigned int rank =3D REG_RANK_NR(b, (n >> s));
> +
> +    return vgic_get_rank(v, rank + EXT_RANK_MIN);
> +}
> +
>  static unsigned int vgic_num_spi_lines(struct domain *d)
>  {
>      return d->arch.vgic.nr_spis + d->arch.vgic.nr_espis;
> @@ -241,6 +253,17 @@ struct pending_irq *espi_to_pending(struct domain *d=
, unsigned int irq)
>  {
>      return NULL;
>  }
> +
> +/*
> + * It is expected that, in the case of CONFIG_GICV3_ESPI=3Dn, the functi=
on will
> + * return NULL. In this scenario, mmio_read/mmio_write will be treated a=
s
> + * RAZ/WI, as expected.
> + */
> +struct vgic_irq_rank *vgic_ext_rank_offset(struct vcpu *v, unsigned int =
b,
> +                                           unsigned int n, unsigned int =
s)
> +{
> +    return NULL;
> +}
>  #endif
> =20
>  static unsigned int vgic_num_alloc_irqs(struct domain *d)

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 20:14:12 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 20:14:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1102123.1454872 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us5UB-0003Gu-Va; Fri, 29 Aug 2025 20:14:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1102123.1454872; Fri, 29 Aug 2025 20:14:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us5UB-0003Gn-Sw; Fri, 29 Aug 2025 20:14:11 +0000
Received: by outflank-mailman (input) for mailman id 1102123;
 Fri, 29 Aug 2025 20:14:10 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=7zkx=3J=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1us5UA-0003Gd-If
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 20:14:10 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b7a339e0-8514-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 22:14:08 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id C77C16014D;
 Fri, 29 Aug 2025 20:14:06 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 38ABAC4CEF0;
 Fri, 29 Aug 2025 20:14: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>
X-Inumbo-ID: b7a339e0-8514-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1756498446;
	bh=BuV4PQWc/RHXgC+6cMENqAV2puul7Tw8f6DESSJOLME=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=hUZBUM23VlvZoox903QVHKEDg5mgpHNEAaJ8BIbo/SNIgWMo+0KPg7UYw7ksE6mqa
	 +60JkXiMxcRhpazzLgBNbuE8O9BeBuYkTt/KXzpwOvfSikuC+auMHYCMBBq9PWMkue
	 UGfhDjkl16A+qfklnWhwsu4vDYsA71U40V5zyoPPrxYdcM6h/idlAgb9iYbZrw5lCe
	 de32zci830Az6Ki5uPASaRrJBB7n14s+0h4P3cO6NHzM2FZoC1uFbjUwbAE674I+FK
	 h8omc+T5rDiVNCk2ZTtSYWLEncEcpHc5LKDA3Fu4e+9+N+X9k+cwrKjBlom/XP1MQx
	 q8ZAV0h/bZQvA==
Date: Fri, 29 Aug 2025 13:14:03 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: dmukhin@xen.org
cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, 
    anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, 
    michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, 
    dmukhin@ford.com
Subject: Re: [PATCH v5 05/15] emul/ns16x50: implement EIR/IIR registers
In-Reply-To: <20250828235409.2835815-6-dmukhin@ford.com>
Message-ID: <alpine.DEB.2.22.394.2508291306550.341243@ubuntu-linux-20-04-desktop>
References: <20250828235409.2835815-1-dmukhin@ford.com> <20250828235409.2835815-6-dmukhin@ford.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 28 Aug 2025, dmukhin@xen.org wrote:
> From: Denis Mukhin <dmukhin@ford.com> 
> 
> Add interrupt enable register emulation (EIR) and interrupt identity reason

EIR->IER

> (IIR) register emulation to the I/O port handler.
> 
> Also add routines for asserting/deasserting the virtual ns16x50 interrupt
> line as a dependent on IIR code.
> 
> Poke ns16x50_irq_check() on every I/O register access because the emulator
> does not have clock emulation anyway (e.g. for baud rate emulation).
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
> Changes since v4:
> - new patch
> ---
>  xen/common/emul/vuart/ns16x50.c | 177 +++++++++++++++++++++++++++++++-
>  1 file changed, 176 insertions(+), 1 deletion(-)
> 
> diff --git a/xen/common/emul/vuart/ns16x50.c b/xen/common/emul/vuart/ns16x50.c
> index f9f307a4ad24..20597cc36b35 100644
> --- a/xen/common/emul/vuart/ns16x50.c
> +++ b/xen/common/emul/vuart/ns16x50.c
> @@ -85,9 +85,131 @@ struct vuart_ns16x50 {
>      spinlock_t lock;                    /* Protection */
>  };
>  
> +static bool ns16x50_fifo_rx_empty(const struct vuart_ns16x50 *vdev)
> +{
> +    const struct xencons_interface *cons = &vdev->cons;
> +
> +    return cons->in_prod == cons->in_cons;
> +}

there is no ring so far so I would not add ns16x50_fifo_rx_empty for now


>  static inline uint8_t cf_check ns16x50_dlab_get(const struct vuart_ns16x50 *vdev)
>  {
> -    return 0;
> +    return vdev->regs[UART_LCR] & UART_LCR_DLAB ? 1 : 0;
> +}
> +
> +static bool cf_check ns16x50_iir_check_lsi(const struct vuart_ns16x50 *vdev)
> +{
> +    return vdev->regs[UART_LSR] & UART_LSR_MASK;
> +}
> +
> +static bool cf_check ns16x50_iir_check_rda(const struct vuart_ns16x50 *vdev)
> +{
> +    return !ns16x50_fifo_rx_empty(vdev);
> +}
> +
> +static bool cf_check ns16x50_iir_check_thr(const struct vuart_ns16x50 *vdev)
> +{
> +    return vdev->regs[NS16X50_REGS_NUM + UART_IIR] & UART_IIR_THR;
> +}
> +
> +static bool cf_check ns16x50_iir_check_msi(const struct vuart_ns16x50 *vdev)
> +{
> +    return vdev->regs[UART_MSR] & UART_MSR_CHANGE;
> +}
> +
> +/*
> + * Get the interrupt identity reason.
> + *
> + * IIR is re-calculated once called, because ns16x50 always reports high
> + * priority events first.
> + * regs[NS16X50_REGS_NUM + UART_IIR] is used to store THR reason only.
> + */
> +static uint8_t ns16x50_iir_get(const struct vuart_ns16x50 *vdev)
> +{
> +    /*
> +     * Interrupt identity reasons by priority.
> +     * NB: high priority are at lower indexes below.
> +     */
> +    static const struct {
> +        bool (*check)(const struct vuart_ns16x50 *vdev);
> +        uint8_t ier;
> +        uint8_t iir;
> +    } iir_by_prio[] = {
> +        [0] = { ns16x50_iir_check_lsi, UART_IER_ELSI,   UART_IIR_LSI },
> +        [1] = { ns16x50_iir_check_rda, UART_IER_ERDAI,  UART_IIR_RDA },
> +        [2] = { ns16x50_iir_check_thr, UART_IER_ETHREI, UART_IIR_THR },
> +        [3] = { ns16x50_iir_check_msi, UART_IER_EMSI,   UART_IIR_MSI },
> +    };
> +    const uint8_t *regs = vdev->regs;
> +    uint8_t iir = 0;
> +    unsigned int i;
> +
> +    /*
> +     * NB: every interaction w/ ns16x50 registers (except DLAB=1) goes
> +     * through that call.
> +     */
> +    ASSERT(spin_is_locked(&vdev->lock));
> +
> +    for ( i = 0; i < ARRAY_SIZE(iir_by_prio); i++ )
> +    {
> +        if ( (regs[UART_IER] & iir_by_prio[i].ier) &&
> +             iir_by_prio[i].check(vdev) )
> +            break;
> +
> +    }
> +    if ( i == ARRAY_SIZE(iir_by_prio) )
> +        iir |= UART_IIR_NOINT;
> +    else
> +        iir |= iir_by_prio[i].iir;
> +
> +    if ( regs[UART_FCR] & UART_FCR_ENABLE )
> +        iir |= UART_IIR_FE;
> +
> +    return iir;
> +}
> +
> +static void ns16x50_irq_assert(const struct vuart_ns16x50 *vdev)
> +{
> +    struct domain *d = vdev->owner;
> +    const struct vuart_info *info = vdev->info;
> +    int vector;
> +
> +    if ( has_vpic(d) ) /* HVM */
> +        vector = hvm_isa_irq_assert(d, info->irq, vioapic_get_vector);
> +    else
> +        ASSERT_UNREACHABLE();
> +
> +    ns16x50_debug(vdev, "IRQ#%d vector %d assert\n", info->irq, vector);
> +}
> +
> +static void ns16x50_irq_deassert(const struct vuart_ns16x50 *vdev)
> +{
> +    struct domain *d = vdev->owner;
> +    const struct vuart_info *info = vdev->info;
> +
> +    if ( has_vpic(d) ) /* HVM */
> +        hvm_isa_irq_deassert(d, info->irq);
> +    else
> +        ASSERT_UNREACHABLE();
> +
> +    ns16x50_debug(vdev, "IRQ#%d deassert\n", info->irq);
> +}
> +
> +/*
> + * Assert/deassert virtual ns16x50 interrupt line.
> + */
> +static void ns16x50_irq_check(const struct vuart_ns16x50 *vdev)
> +{
> +    uint8_t iir = ns16x50_iir_get(vdev);
> +    const struct vuart_info *info = vdev->info;
> +
> +    if ( iir & UART_IIR_NOINT )
> +        ns16x50_irq_assert(vdev);

It is a bit strange that if "NOINT" is set, we raise the interrupt


> +    else
> +        ns16x50_irq_deassert(vdev);
> +
> +    ns16x50_debug(vdev, "IRQ#%d IIR 0x%02x %s\n", info->irq, iir,
> +                  (iir & UART_IIR_NOINT) ? "deassert" : "assert");
>  }
>  
>  /*
> @@ -102,6 +224,29 @@ static int ns16x50_io_write8(
>  
>      if ( ns16x50_dlab_get(vdev) && (reg == UART_DLL || reg == UART_DLM) )
>          regs[NS16X50_REGS_NUM + reg] = val;
> +    else
> +    {
> +        switch ( reg )
> +        {
> +        case UART_IER:
> +            /*
> +             * NB: Make sure THR interrupt is re-triggered once guest OS
> +             * re-enabled ETHREI in EIR.

EIR->IER


> +             */
> +            if ( val & regs[UART_IER] & UART_IER_ETHREI )
> +                regs[NS16X50_REGS_NUM + UART_IIR] |= UART_IIR_THR;

I am confused by this. Shouldn't it be :

if ( (val & UART_IER_ETHREI) && !(regs[UART_IER] & UART_IER_ETHREI) )

Meaning set UART_IIR_THR if ETHREI goes 0->1 ?


> +            regs[UART_IER] = val & UART_IER_MASK;
> +
> +            break;
> +
> +        default:
> +            rc = -EINVAL;
> +            break;
> +        }
> +
> +        ns16x50_irq_check(vdev);
> +    }
>  
>      return rc;
>  }
> @@ -164,6 +309,29 @@ static int ns16x50_io_read8(
>  
>      if ( ns16x50_dlab_get(vdev) && (reg == UART_DLL || reg == UART_DLM) )
>          val = regs[NS16X50_REGS_NUM + reg];
> +    else {
> +        switch ( reg )
> +        {
> +        case UART_IER:
> +            val = regs[UART_IER];
> +            break;
> +
> +        case UART_IIR: /* RO */
> +            val = ns16x50_iir_get(vdev);
> +
> +            /* NB: clear IIR scratch location */
> +            if ( val & UART_IIR_THR )
> +                regs[NS16X50_REGS_NUM + UART_IIR] &= ~UART_IIR_THR;

Maybe add an in-code comment why it is a good idea to clear THR here


> +
> +            break;
> +
> +        default:
> +            rc = -EINVAL;
> +            break;
> +        }
> +
> +        ns16x50_irq_check(vdev);
> +    }
>  
>      *data = val;
>  
> @@ -314,8 +482,15 @@ static int ns16x50_init(void *arg)
>      vdev->regs[NS16X50_REGS_NUM + UART_DLL] = divisor & 0xff;
>      vdev->regs[NS16X50_REGS_NUM + UART_DLM] = (divisor >> 8) & 0xff;
>  
> +    /* ns16x50 shall assert UART_IIR_THR whenever transmitter is empty. */
> +    vdev->regs[NS16X50_REGS_NUM + UART_IIR] = UART_IIR_THR;
> +
>      register_portio_handler(d, info->base_addr, info->size, ns16x50_io_handle);
>  
> +    spin_lock(&vdev->lock);
> +    ns16x50_irq_check(vdev);
> +    spin_unlock(&vdev->lock);
> +
>      return 0;
>  }
>  
> -- 
> 2.51.0
> 


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 20:28:56 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 20:28:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1102135.1454883 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us5iM-0005K6-52; Fri, 29 Aug 2025 20:28:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1102135.1454883; Fri, 29 Aug 2025 20:28: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 1us5iM-0005Jz-20; Fri, 29 Aug 2025 20:28:50 +0000
Received: by outflank-mailman (input) for mailman id 1102135;
 Fri, 29 Aug 2025 20:28:49 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=7zkx=3J=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1us5iL-0005Jt-7k
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 20:28:49 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org
 [2600:3c0a:e001:78e:0:1991:8:25])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c2c26e04-8516-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 22:28:46 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 7527C40AB5;
 Fri, 29 Aug 2025 20:28:44 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1CAC6C4CEF0;
 Fri, 29 Aug 2025 20:28:43 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c2c26e04-8516-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1756499324;
	bh=hZKqGQdv8TBMMkcAGR4c4QvQW5e1NsG/JyzWmMHfsFM=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=GUo/Q4wmlamTPcdb581FYl4001Zu+pl2AMSilJtj0I3ksrXIjf7NarS5RMS3a9C9c
	 xBQg2G0ljQa05ARYfROze1JKKseLcGwlU2f6EMJs5BCtfCoyawdA0Evf9sUy6Wb3KL
	 wfaKc15WjYWto0wWNw6Vysd0z3h+YEXsK9fIIU6u9NIIux6cZHqUVWiDPn1ZlIcpZI
	 RhBshau5fk/8qseyayDbNSNu2SfWS8w1er7EhuBGo1/3EME0f+FaejP0HduQXtsN1i
	 qZtRXtD8YBC3hMtPM5IKAYSGY2LB/I8tG+K6Somyo/YBqukHZG7YE2optnqoAfzUjk
	 XT8uMnToXfPUg==
Date: Fri, 29 Aug 2025 13:28:41 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: dmukhin@xen.org
cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, 
    anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, 
    michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, 
    dmukhin@ford.com
Subject: Re: [PATCH v5 06/15] emul/ns16x50: implement THR/RBR registers
In-Reply-To: <20250828235409.2835815-7-dmukhin@ford.com>
Message-ID: <alpine.DEB.2.22.394.2508291320330.341243@ubuntu-linux-20-04-desktop>
References: <20250828235409.2835815-1-dmukhin@ford.com> <20250828235409.2835815-7-dmukhin@ford.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 28 Aug 2025, dmukhin@xen.org wrote:
> From: Denis Mukhin <dmukhin@ford.com> 
> 
> Add RBR/THR registers emulation to the I/O port handlder.
> 
> Also, add RX/TX FIFO management code since RBR depends on RX FIFO and
> THR depends on TX FIFO.
> 
> FIFOs are not emulated as per UART specs for simplicity (not need to emulate
> baud rate). Emulator does not emulate NS8250 (no FIFO), NS16550a (16 bytes) or
> NS16750 (64 bytes).
> 
> FIFOs are emulated by means of using xencons_interface which conveniently
> provides primitives for buffer management and later can be used for
> inter-domain communication similarly to vpl011.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
> Changes since v4:
> - new patch
> ---
>  xen/common/emul/vuart/ns16x50.c | 135 ++++++++++++++++++++++++++++++++
>  1 file changed, 135 insertions(+)
> 
> diff --git a/xen/common/emul/vuart/ns16x50.c b/xen/common/emul/vuart/ns16x50.c
> index 20597cc36b35..efb2f4c6441c 100644
> --- a/xen/common/emul/vuart/ns16x50.c
> +++ b/xen/common/emul/vuart/ns16x50.c
> @@ -92,6 +92,119 @@ static bool ns16x50_fifo_rx_empty(const struct vuart_ns16x50 *vdev)
>      return cons->in_prod == cons->in_cons;
>  }
>  
> +static bool ns16x50_fifo_rx_full(const struct vuart_ns16x50 *vdev)
> +{
> +    const struct xencons_interface *cons = &vdev->cons;
> +
> +    return cons->in_prod - cons->in_cons == ARRAY_SIZE(cons->in);
> +}
> +
> +static void ns16x50_fifo_rx_reset(struct vuart_ns16x50 *vdev)
> +{
> +    struct xencons_interface *cons = &vdev->cons;
> +
> +    cons->in_cons = cons->in_prod;
> +}
> +
> +static int ns16x50_fifo_rx_getchar(struct vuart_ns16x50 *vdev)
> +{
> +    struct xencons_interface *cons = &vdev->cons;
> +    int rc;
> +
> +    if ( ns16x50_fifo_rx_empty(vdev) )
> +    {
> +        ns16x50_debug(vdev, "RX FIFO empty\n");
> +        rc = -ENODATA;
> +    }
> +    else
> +    {
> +        rc = cons->in[MASK_XENCONS_IDX(cons->in_cons, cons->in)];
> +        cons->in_cons++;
> +    }
> +
> +    return rc;

The signed integer to char conversion here is not great from a MISRA
perspective. I think it would be better to keep rc as success/failure
return value and take the read char as a pointer parameter.


> +}
> +
> +static int ns16x50_fifo_rx_putchar(struct vuart_ns16x50 *vdev, char c)
> +{
> +    struct xencons_interface *cons = &vdev->cons;
> +    int rc;
> +
> +    /*
> +     * FIFO-less 8250/16450 UARTs: newly arrived word overwrites the contents
> +     * of the THR.
> +     */
> +    if ( ns16x50_fifo_rx_full(vdev) )
> +    {
> +        ns16x50_debug(vdev, "RX FIFO full; resetting\n");
> +        ns16x50_fifo_rx_reset(vdev);
> +        rc = -ENOSPC;
> +    }
> +    else
> +        rc = 0;
> +
> +    cons->in[MASK_XENCONS_IDX(cons->in_prod, cons->in)] = c;
> +    cons->in_prod++;
> +
> +    return rc;
> +}
> +
> +static bool ns16x50_fifo_tx_empty(const struct vuart_ns16x50 *vdev)
> +{
> +    const struct xencons_interface *cons = &vdev->cons;
> +
> +    return cons->out_prod == cons->out_cons;
> +}
> +
> +static void ns16x50_fifo_tx_reset(struct vuart_ns16x50 *vdev)
> +{
> +    struct xencons_interface *cons = &vdev->cons;
> +
> +    cons->out_prod = 0;
> +    ASSERT(cons->out_cons == cons->out_prod);

I am not sure about this.. why resetting the out_prod index? In theory
it could keep increasing until wrap around and still go forward thanks
to the mask


> +}
> +
> +/*
> + * Flush cached output to Xen console.
> + */
> +static void ns16x50_fifo_tx_flush(struct vuart_ns16x50 *vdev)
> +{
> +    struct xencons_interface *cons = &vdev->cons;
> +    struct domain *d = vdev->owner;
> +
> +    if ( ns16x50_fifo_tx_empty(vdev) )
> +        return;
> +
> + UART_IIR_THR   ASSERT(cons->out_prod < ARRAY_SIZE(cons->out));
> +    cons->out[cons->out_prod] = '\0';

should use MASK_XENCONS_IDX to access the array


> +    cons->out_prod++;
> +
> +    guest_printk(d, guest_prefix "%s", cons->out);
> +
> +    ns16x50_fifo_tx_reset(vdev);

set UART_IIR_THR and call ns16x50_irq_check ?


> +}
> +
> +/*
> + * Accumulate guest OS output before sending to Xen console.
> + */
> +static void ns16x50_fifo_tx_putchar(struct vuart_ns16x50 *vdev, char ch)
> +{
> +    struct xencons_interface *cons = &vdev->cons;
> +
> +    if ( !is_console_printable(ch) )
> +        return;
> +
> +    if ( ch != '\0' )
> +    {
> +        cons->out[cons->out_prod] = ch;

should use MASK_XENCONS_IDX to access the array


> +        cons->out_prod++;
> +    }
> +
> +    if ( cons->out_prod == ARRAY_SIZE(cons->out) - 1 ||
> +         ch == '\n' || ch == '\0' )
> +        ns16x50_fifo_tx_flush(vdev);
> +}
> +
>  static inline uint8_t cf_check ns16x50_dlab_get(const struct vuart_ns16x50 *vdev)
>  {
>      return vdev->regs[UART_LCR] & UART_LCR_DLAB ? 1 : 0;
> @@ -228,6 +341,16 @@ static int ns16x50_io_write8(
>      {
>          switch ( reg )
>          {
> +        case UART_THR:
> +            if ( regs[UART_MCR] & UART_MCR_LOOP )
> +                rc = ns16x50_fifo_rx_putchar(vdev, val);
> +            else
> +                ns16x50_fifo_tx_putchar(vdev, val);

should UART_IIR_THR be cleared here?


> +            rc = 0;
> +
> +            break;
> +
>          case UART_IER:
>              /*
>               * NB: Make sure THR interrupt is re-triggered once guest OS
> @@ -312,6 +435,14 @@ static int ns16x50_io_read8(
>      else {
>          switch ( reg )
>          {
> +        case UART_RBR:
> +            rc = ns16x50_fifo_rx_getchar(vdev);
> +            if ( rc >= 0 )
> +                val = (uint8_t)rc;

Empty fifo check?


> +            rc = 0;
> +            break;
> +
>          case UART_IER:
>              val = regs[UART_IER];
>              break;
> @@ -499,6 +630,10 @@ static void cf_check ns16x50_deinit(void *arg)
>      struct vuart_ns16x50 *vdev = arg;
>  
>      ASSERT(vdev);
> +
> +    spin_lock(&vdev->lock);
> +    ns16x50_fifo_tx_flush(vdev);
> +    spin_unlock(&vdev->lock);
>  }
>  
>  static void * cf_check ns16x50_alloc(struct domain *d, const struct vuart_info *info)
> -- 
> 2.51.0
> 


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 20:34:51 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 20:34:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1102146.1454892 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us5o7-00073W-OQ; Fri, 29 Aug 2025 20:34:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1102146.1454892; Fri, 29 Aug 2025 20: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 1us5o7-00073P-Lq; Fri, 29 Aug 2025 20:34:47 +0000
Received: by outflank-mailman (input) for mailman id 1102146;
 Fri, 29 Aug 2025 20:34:47 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=7zkx=3J=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1us5o7-00073J-3D
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 20:34:47 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 98ae93fd-8517-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 22:34:44 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 45B1960142;
 Fri, 29 Aug 2025 20:34:43 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id B9247C4CEF0;
 Fri, 29 Aug 2025 20:34:41 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 98ae93fd-8517-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1756499683;
	bh=yE5IxutH9mopKENdeLGqKNucjshjXLaggU4uiQzZZK0=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=afXrGHIsHR0F+fgcdO5uW+AzeV+nzUbrIu6W54HSYuSBF19dr+MVmZwI2yzxoAwkH
	 lhS+2NGfcecNfjrJAEKGum24ScVit932KVtokfKSQ5w+pPoZgqlm6OfRJ5YhfVl4Ca
	 CdRzEIxBs6OgwSEB72DLXas2TmfC666bHmnyMydNVJJPVyq1K8m3uPZJjULkBORWuD
	 L+RYs4FKph4xb8hT/HyIiLWr1MptaprtUUuiHD34pxeJ+I8ZqmC6VE1mH41rWIZmd/
	 UqeiOVgb5ndwYSfoMFcex9UkFRgJuJtZ2FTV/o6yCUqRgWtvbd255qOOK37t2D0ZGa
	 046J+Tihn98ew==
Date: Fri, 29 Aug 2025 13:34:39 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Stefano Stabellini <sstabellini@kernel.org>
cc: dmukhin@xen.org, xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, 
    anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, 
    michal.orzel@amd.com, roger.pau@citrix.com, dmukhin@ford.com
Subject: Re: [PATCH v5 06/15] emul/ns16x50: implement THR/RBR registers
In-Reply-To: <alpine.DEB.2.22.394.2508291320330.341243@ubuntu-linux-20-04-desktop>
Message-ID: <alpine.DEB.2.22.394.2508291331590.341243@ubuntu-linux-20-04-desktop>
References: <20250828235409.2835815-1-dmukhin@ford.com> <20250828235409.2835815-7-dmukhin@ford.com> <alpine.DEB.2.22.394.2508291320330.341243@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

On Fri, 29 Aug 2025, Stefano Stabellini wrote:
> On Thu, 28 Aug 2025, dmukhin@xen.org wrote:
> > From: Denis Mukhin <dmukhin@ford.com> 
> > 
> > Add RBR/THR registers emulation to the I/O port handlder.
> > 
> > Also, add RX/TX FIFO management code since RBR depends on RX FIFO and
> > THR depends on TX FIFO.
> > 
> > FIFOs are not emulated as per UART specs for simplicity (not need to emulate
> > baud rate). Emulator does not emulate NS8250 (no FIFO), NS16550a (16 bytes) or
> > NS16750 (64 bytes).
> > 
> > FIFOs are emulated by means of using xencons_interface which conveniently
> > provides primitives for buffer management and later can be used for
> > inter-domain communication similarly to vpl011.
> > 
> > Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> > ---
> > Changes since v4:
> > - new patch
> > ---
> >  xen/common/emul/vuart/ns16x50.c | 135 ++++++++++++++++++++++++++++++++
> >  1 file changed, 135 insertions(+)
> > 
> > diff --git a/xen/common/emul/vuart/ns16x50.c b/xen/common/emul/vuart/ns16x50.c
> > index 20597cc36b35..efb2f4c6441c 100644
> > --- a/xen/common/emul/vuart/ns16x50.c
> > +++ b/xen/common/emul/vuart/ns16x50.c
> > @@ -92,6 +92,119 @@ static bool ns16x50_fifo_rx_empty(const struct vuart_ns16x50 *vdev)
> >      return cons->in_prod == cons->in_cons;
> >  }
> >  
> > +static bool ns16x50_fifo_rx_full(const struct vuart_ns16x50 *vdev)
> > +{
> > +    const struct xencons_interface *cons = &vdev->cons;
> > +
> > +    return cons->in_prod - cons->in_cons == ARRAY_SIZE(cons->in);
> > +}
> > +
> > +static void ns16x50_fifo_rx_reset(struct vuart_ns16x50 *vdev)
> > +{
> > +    struct xencons_interface *cons = &vdev->cons;
> > +
> > +    cons->in_cons = cons->in_prod;
> > +}
> > +
> > +static int ns16x50_fifo_rx_getchar(struct vuart_ns16x50 *vdev)
> > +{
> > +    struct xencons_interface *cons = &vdev->cons;
> > +    int rc;
> > +
> > +    if ( ns16x50_fifo_rx_empty(vdev) )
> > +    {
> > +        ns16x50_debug(vdev, "RX FIFO empty\n");
> > +        rc = -ENODATA;
> > +    }
> > +    else
> > +    {
> > +        rc = cons->in[MASK_XENCONS_IDX(cons->in_cons, cons->in)];
> > +        cons->in_cons++;
> > +    }
> > +
> > +    return rc;
> 
> The signed integer to char conversion here is not great from a MISRA
> perspective. I think it would be better to keep rc as success/failure
> return value and take the read char as a pointer parameter.
> 
> 
> > +}
> > +
> > +static int ns16x50_fifo_rx_putchar(struct vuart_ns16x50 *vdev, char c)
> > +{
> > +    struct xencons_interface *cons = &vdev->cons;
> > +    int rc;
> > +
> > +    /*
> > +     * FIFO-less 8250/16450 UARTs: newly arrived word overwrites the contents
> > +     * of the THR.
> > +     */
> > +    if ( ns16x50_fifo_rx_full(vdev) )
> > +    {
> > +        ns16x50_debug(vdev, "RX FIFO full; resetting\n");
> > +        ns16x50_fifo_rx_reset(vdev);
> > +        rc = -ENOSPC;
> > +    }
> > +    else
> > +        rc = 0;
> > +
> > +    cons->in[MASK_XENCONS_IDX(cons->in_prod, cons->in)] = c;
> > +    cons->in_prod++;
> > +
> > +    return rc;
> > +}
> > +
> > +static bool ns16x50_fifo_tx_empty(const struct vuart_ns16x50 *vdev)
> > +{
> > +    const struct xencons_interface *cons = &vdev->cons;
> > +
> > +    return cons->out_prod == cons->out_cons;
> > +}
> > +
> > +static void ns16x50_fifo_tx_reset(struct vuart_ns16x50 *vdev)
> > +{
> > +    struct xencons_interface *cons = &vdev->cons;
> > +
> > +    cons->out_prod = 0;
> > +    ASSERT(cons->out_cons == cons->out_prod);
> 
> I am not sure about this.. why resetting the out_prod index? In theory
> it could keep increasing until wrap around and still go forward thanks
> to the mask

I get it now .. it is because it is called from ns16x50_fifo_tx_flush
right after printing to the real console.

I think it is better to simply do:

  cons->out_cons = cons->out_prod;

which effectively clears out the whole buffer. It is dangerous to do:

  cons->out_prod = 0;

without also doing:

  cons->out_cons = 0;

Also, if ns16x50_fifo_tx_flush is the only caller of
ns16x50_fifo_tx_reset, I would open code the implementation directly
inside ns16x50_fifo_tx_flush to make it more obvious.


> > +}
> > +
> > +/*
> > + * Flush cached output to Xen console.
> > + */
> > +static void ns16x50_fifo_tx_flush(struct vuart_ns16x50 *vdev)
> > +{
> > +    struct xencons_interface *cons = &vdev->cons;
> > +    struct domain *d = vdev->owner;
> > +
> > +    if ( ns16x50_fifo_tx_empty(vdev) )
> > +        return;
> > +
> > + UART_IIR_THR   ASSERT(cons->out_prod < ARRAY_SIZE(cons->out));
> > +    cons->out[cons->out_prod] = '\0';
> 
> should use MASK_XENCONS_IDX to access the array
> 
> 
> > +    cons->out_prod++;
> > +
> > +    guest_printk(d, guest_prefix "%s", cons->out);
> > +
> > +    ns16x50_fifo_tx_reset(vdev);
> 
> set UART_IIR_THR and call ns16x50_irq_check ?
> 
> 
> > +}



From xen-devel-bounces@lists.xenproject.org Fri Aug 29 20:38:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 20:38:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1102170.1454902 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us5rN-0007dz-51; Fri, 29 Aug 2025 20:38:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1102170.1454902; Fri, 29 Aug 2025 20: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 1us5rN-0007ds-2U; Fri, 29 Aug 2025 20:38:09 +0000
Received: by outflank-mailman (input) for mailman id 1102170;
 Fri, 29 Aug 2025 20:38:08 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=7zkx=3J=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1us5rM-0007dk-Bv
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 20:38:08 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 10fbbb72-8518-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 22:38:06 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id A76E460146;
 Fri, 29 Aug 2025 20:38:05 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3DA76C4CEF0;
 Fri, 29 Aug 2025 20:38:04 +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>
X-Inumbo-ID: 10fbbb72-8518-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1756499885;
	bh=WK0hba0MbH1fBbcqBC1X+A3DKe9NBrs9rEwn7qEomCc=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=MisNLSgTNgOwQGSFm8jBjPVEogDKNSXWkrDYGFRPwf4xWAvrbTbLOYx4O5xQay78Z
	 0l/KkKk45gpJycAn4I62PggeIGYCX/cV3opn1fdIaCv1nm7ltMqUkyRzN/dwCF9smN
	 jcxnLLv0F6NRZoQ3hs3Gev/2tNYvi1q2jw3gzan+dLazzJSuEYPXCRJV6OL8YflmR2
	 5Vp9glyofiSUcsm08yQc0l1vUOfg6zgirpUiyYlnzSkL96pTOOvkFefSPBBP6oVFjp
	 GrzPL+KN5ZI//mCjBJBFlDqDXzlJzF9yN33nornksFJoWL3rI4qYeVMU7NtJlRCxaJ
	 mAaE/2k2wKk4A==
Date: Fri, 29 Aug 2025 13:38:02 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: dmukhin@xen.org
cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, 
    anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, 
    michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, 
    dmukhin@ford.com
Subject: Re: [PATCH v5 07/15] emul/ns16x50: implement FCR register
 (write-only)
In-Reply-To: <20250828235409.2835815-8-dmukhin@ford.com>
Message-ID: <alpine.DEB.2.22.394.2508291335260.341243@ubuntu-linux-20-04-desktop>
References: <20250828235409.2835815-1-dmukhin@ford.com> <20250828235409.2835815-8-dmukhin@ford.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 28 Aug 2025, dmukhin@xen.org wrote:
> From: Denis Mukhin <dmukhin@ford.com> 
> 
> Add emulation logic for FCR register.
> 
> Note, that does not hooks FIFO interrupt moderation to the FIFO management
> code.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
> Changes since v4:
> - new patch
> ---
>  xen/common/emul/vuart/ns16x50.c | 24 ++++++++++++++++++++++++
>  1 file changed, 24 insertions(+)
> 
> diff --git a/xen/common/emul/vuart/ns16x50.c b/xen/common/emul/vuart/ns16x50.c
> index efb2f4c6441c..65ca96dd8bd3 100644
> --- a/xen/common/emul/vuart/ns16x50.c
> +++ b/xen/common/emul/vuart/ns16x50.c
> @@ -363,6 +363,30 @@ static int ns16x50_io_write8(
>  
>              break;
>  
> +        case UART_FCR: /* WO */
> +            if ( val & UART_FCR_RESERVED0 )
> +                ns16x50_warn(vdev, "FCR: attempt to set reserved bit: %x\n",
> +                             UART_FCR_RESERVED0);
> +
> +            if ( val & UART_FCR_RESERVED1 )
> +                ns16x50_warn(vdev, "FCR: attempt to set reserved bit: %x\n",
> +                             UART_FCR_RESERVED1);
> +
> +            if ( val & UART_FCR_CLRX )
> +                ns16x50_fifo_rx_reset(vdev);
> +
> +            if ( val & UART_FCR_CLTX )
> +                ns16x50_fifo_tx_flush(vdev);

Should UART_FCR_CLTX actually emit data or only clear the buffer?

set UART_IIR_THR ?


> +
> +            if ( val & UART_FCR_ENABLE )
> +                val &= UART_FCR_ENABLE | UART_FCR_DMA | UART_FCR_TRG_MASK;
> +            else
> +                val = 0;
> +
> +            regs[UART_FCR] = val;


ns16x50_irq_check ?


> +            break;
> +
>          default:
>              rc = -EINVAL;
>              break;
> -- 
> 2.51.0
> 


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 20:45:15 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 20:45:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1102186.1454912 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us5y7-000119-TW; Fri, 29 Aug 2025 20:45:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1102186.1454912; Fri, 29 Aug 2025 20:45: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 1us5y7-000112-Qu; Fri, 29 Aug 2025 20:45:07 +0000
Received: by outflank-mailman (input) for mailman id 1102186;
 Fri, 29 Aug 2025 20:45:06 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=sr3h=3J=epam.com=Volodymyr_Babchuk@srs-se1.protection.inumbo.net>)
 id 1us5y6-00010w-JO
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 20:45:06 +0000
Received: from DUZPR83CU001.outbound.protection.outlook.com
 (mail-northeuropeazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c200::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0aa3ee0d-8519-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 22:45:05 +0200 (CEST)
Received: from DU5PR03MB10441.eurprd03.prod.outlook.com (2603:10a6:10:516::14)
 by VI0PR03MB10540.eurprd03.prod.outlook.com (2603:10a6:800:212::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.26; Fri, 29 Aug
 2025 20:45:02 +0000
Received: from DU5PR03MB10441.eurprd03.prod.outlook.com
 ([fe80::eeb8:470:6260:e5f4]) by DU5PR03MB10441.eurprd03.prod.outlook.com
 ([fe80::eeb8:470:6260:e5f4%7]) with mapi id 15.20.9073.021; Fri, 29 Aug 2025
 20:45: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>
X-Inumbo-ID: 0aa3ee0d-8519-11f0-8adc-4578a1afcccb
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Y3dnQ7XKFEycfhjfOuksmiAdchOSYu3l/R4QVrY9vx41DxPgSa3dp92tIknkQfYSWVqpNI8DUTg2IbCEdLqeURFFWdsDOd3XfZKqLDiD3QrsfvS1luJdZXa2xGf/4Pjh2Ixde9FAL/8or3gCZddPEEDbyk+3zUygpsshWeY1E03WuHRlHa64RaBPxjpQBQwBfwT4TXJq8ymXqDxWNGsjCYIRzexbsVOuSszdgn4LEhkTtEsr2HdY+L2tewSRo8JU20hdwSkm5vSlDH0+mobMuMCkiSABbaqWQrmPjQ4OvOwT78P/GHnBKWAOf5nrWkOaKtzzNqHkyXdABNdSV9n7+Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=EJ00unInKAKUQE1j1/2pFYJp5OD68EtZvvY0U34wpXA=;
 b=IfvAdhIDqRFchxVEYWbBz22Cj/FeLKsOkg06ju2aQNiQit7fZgNhktzUL8ZkDKHT6Q5GSo3h1KdfSpr+AxQQXIH4Udh1I1VUXU9ChxkMTninwjwOsrjC6QgVnuxCjiVqXBnP8zAw1w79Lti32dIeA4/PlE3gqosE9WkK1N14l1C66bIaZAbHjoYHclPq0+ciHBbqHIduuzjRYkLR9bpKoU3OHD0bIzbHDJbo74/sFOpOoU2vsgkNARmv5O8XYcVDRm8MbZ3mX37xThhHgXGbMAcBbu1cl+2l8L+GJ/sZnR1X3JTqQsb1e/ipscCsmvYG++859mv+JV1jTj4MLi4nUw==
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=EJ00unInKAKUQE1j1/2pFYJp5OD68EtZvvY0U34wpXA=;
 b=uqkzbU5ZnKQNsGv+9U8lzGmCp5bhYySJJTpDkE7cHht0o8aSlodEerCg3r54Z+6VVtaxuxYrY1PY1JzEGhTO3babFxoXW47gzexaAsZxb/sRcnFVLL4/zfqysYHY4dnO6r8h2Ui9kPvd8k33xwqAWrq+S2+bZAavEg0MUV9X8+Hu7flt7q9kaspiL99cdHsYEL1bwOo2Hf7jMPRFk7JWjG+Bh+6W6jdLTTwYh6Vt5Igv2N0Ku3FLPaKI2KAN+Mq6eOuFxM+cfnpjP5PnWL2C2kjF5Ky70gLnXCrW4WaHSmTKo+ItF1zxT2Xan4dwS8hcWD5bNpxFhX+gRqWxdFlN4g==
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"olekstysh@gmail.com" <olekstysh@gmail.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH v5 08/12] xen/arm: vgic: add resource management for
 extended SPIs
Thread-Topic: [PATCH v5 08/12] xen/arm: vgic: add resource management for
 extended SPIs
Thread-Index: AQHcGP7hrcU5X1RXvUyGwHbXwaiTdQ==
Date: Fri, 29 Aug 2025 20:45:01 +0000
Message-ID: <87y0r1x3g2.fsf@epam.com>
References: <cover.1756481577.git.leonid_komarianskyi@epam.com>
	<4b13dea924eabf1370d3f31030f3eef48371de06.1756481577.git.leonid_komarianskyi@epam.com>
In-Reply-To:
 <4b13dea924eabf1370d3f31030f3eef48371de06.1756481577.git.leonid_komarianskyi@epam.com>
	(Leonid Komarianskyi's message of "Fri, 29 Aug 2025 16:06:28 +0000")
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: DU5PR03MB10441:EE_|VI0PR03MB10540:EE_
x-ms-office365-filtering-correlation-id: 3f8b12ca-7994-4e10-8bf1-08dde73ced22
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|42112799006|376014|38070700018;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?7wQBP1RuQiF0/6thjEYRVQg+Z/g8tWbkHFt0layn7El7K0wVjcDsNL+3ds?=
 =?iso-8859-1?Q?/FzlOLAa/YZqnZnbtUvGF492gsrh0u8L+/v/XiXBNUm10HFLeYEwoXSnt7?=
 =?iso-8859-1?Q?rvJEr3biYly2UaEdgujjDMDhPbbEUZGVilX8nqEW3aJKJwbhG50nGBFnBP?=
 =?iso-8859-1?Q?KCK11U1022T2TH/f1P18oxPa+UiCZdJGiwLid+sUtcza4p0xjDklDWYJDq?=
 =?iso-8859-1?Q?tVzeTnqghQeiSnAq09IZgrk/K+VBXJnIW4t1ZnzVwkmuJ/4yJ4WeAo1Aen?=
 =?iso-8859-1?Q?ShpqR174/Bh0bBGmwoSS/EbL0L40sv4EBkVBby5NX/gJIU+4Qe7C2f59A3?=
 =?iso-8859-1?Q?OE1+dipIe+bSEx/lLOuNuirrfPF4zA8o4OAbdEkWZcJa9YmF/8OJXymPbF?=
 =?iso-8859-1?Q?MVSmpv+CXkthN7s9Ph32pkWKxa5MgEdYeH48g9a3Upe8iGszk3k60/Ljjm?=
 =?iso-8859-1?Q?OrbCoVIOvJMf3sv+n+IJcJC9QrbEj8r0O9PV3MzBMfpl8md/7qgHJ172fM?=
 =?iso-8859-1?Q?OQiRjYyGg9Ac41EO/AFgNA70MKCiO0guBRXeAoomT/dZWZe08BwZ269vwL?=
 =?iso-8859-1?Q?XG6AhjvqZOKbmXCFPHiHYK+EZ4BIajcCTOuU9t35i6OMx4EpbaHA6ctIeu?=
 =?iso-8859-1?Q?vH3BfzaYwcCI3X7GIrGdeJJWov3MJ8Wb6fkV+0ujYkERQms2HlL/EKDk0e?=
 =?iso-8859-1?Q?Yry+dfjlqKIHLKIaU3JQxouzShH1kMI+heOFNVhoF5K5qRt1WH8gzS7Kbn?=
 =?iso-8859-1?Q?z8DFAKUEbBbJDCv1BI+GQs9kA9s9Z8cv4yoH22m3yAWHrKZe92GfoG1TDm?=
 =?iso-8859-1?Q?yqv9lxFMkVsK+eYtoT8Xh6bsdc9f49WLjnGeKM6Qx4fryv0Ei4gUclr6Ux?=
 =?iso-8859-1?Q?hfmaLuy4jX8d+TjIB3yAQhOuFBhVpXsnOeUqqMMAP1+/W8VL20japH8KT9?=
 =?iso-8859-1?Q?HGWmFUb66QpU98+SWK6HxdTyLvEHAx9F+lJQ+IC0R9jIFFrnKXJnan/Rg8?=
 =?iso-8859-1?Q?XqZbjhPz1LkAm4Jy6IhQbL+9nXMotlWEet3tZAafPnVXmi8HI1r/XTBJ2T?=
 =?iso-8859-1?Q?LIuU6Z2xrID8eUBLOk378dk1Cd8SIxsgxio5sgcHq7K8l+Hrl1fpa+CwXH?=
 =?iso-8859-1?Q?k58wtGCx4KHI+CW/TaTvkU+d4sw8hrfEDezn8202QM+fDhaUAOoIlT1KZL?=
 =?iso-8859-1?Q?wUFXx1JXnbQp5TT3CjpAouKgptPCqZeQoxKkrInb+fG4CogpdrzkTmMOaN?=
 =?iso-8859-1?Q?Z+lOnKawPIIhoc34tSlt+cK9LtHgqjZ33WswqLvXZa5FivWSSamKXZ/Owh?=
 =?iso-8859-1?Q?VXqmoKPvmjUNU8bUj5Bp/2tu2cJEsNwffEp7siRTX9YIQnhqZTqGzOjNLa?=
 =?iso-8859-1?Q?3ewyZhpf3Uptppb0Wa8gwwtjturWHWzh0bDkhTBggMH1CYb0S8je1M9DmP?=
 =?iso-8859-1?Q?r4LyTZR/cYKxX3LWIiHrk4GLtjVYOj7eywd+B16ADvwOzDBSM45Lc7WuND?=
 =?iso-8859-1?Q?mNIhZOhuzZwKkt6zdmU0Nf6A9s+0m9y4UkANgEadUHJA=3D=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU5PR03MB10441.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(42112799006)(376014)(38070700018);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?Xi61OHPiDx3MZYyzQkHAOR/lxTF4nluK+NDn4YnkTE54iq/67qhSB+UKFX?=
 =?iso-8859-1?Q?NZuGD2gWNTVrzvzggQb6CYR3ohmW7qzQBG6MQj/F4oC8/yXkum/M/QIhJ6?=
 =?iso-8859-1?Q?t/HYXjgQaIYUAveW9hw7D+II9PayAl5knmKIJnVtkTskXTy+6y038pPiQn?=
 =?iso-8859-1?Q?nKqhJ7g0xlRumu5GhNy+HY6KmmVQ6jusqVIURhLbTCjYKaao/mCOgp/Bjc?=
 =?iso-8859-1?Q?n0H7aIoVTs9HzYhZrc74qYCgfFbBGMb/DTLXMnktKDnMuoijw1gBnPrCSr?=
 =?iso-8859-1?Q?wzeUzBhn1eK4Gjo+c3ZNR1mkQn7GvvJCVMwssqqaHH6VUmC380pUfcMeAa?=
 =?iso-8859-1?Q?mX+KdU6AjfqU2p5G/22UeUjj4QGeqHOaDHon1y5/w7QlbqpzPMcXpSYHd4?=
 =?iso-8859-1?Q?gnp+9LYjsVzkcF9veULxWxW0LForG4Iv2wIFt2M6qNmsxWveHORWzHxhse?=
 =?iso-8859-1?Q?If0gndONwQvdu5mUBu3CXcEXM5gT6+4NBUgLWVmxhW9fqypw7roPU+r5FC?=
 =?iso-8859-1?Q?ClJ1+x2GtNwQLFYm90UfT3oWHKIXg/0a8q0gASXZhOAZOVoi5kqaGep0IP?=
 =?iso-8859-1?Q?Gx7nWkjREGJCWT3UQSqGl2otBqeN+0nZWa4fbgBSoMYIc7pViL27EBFDgc?=
 =?iso-8859-1?Q?fYTjziDfftEQ0wSh2oqKNGfKb/klCQyS2y4mKAxxBnpyCRsfmVx3BNYJOC?=
 =?iso-8859-1?Q?EdLRFkHCsnAbc26nz8aiEwcQV3VhoENih1yC7NHkht26YVX8jWCpB/oVCr?=
 =?iso-8859-1?Q?/jpXC0lVtYeBiMxro/v0czXrghUBiOcvTaMIvbLnGVOdDKHTkCU/eUSz+k?=
 =?iso-8859-1?Q?WTw24GxUyWddFhEE/b5XTpybfSnn2KheI8pqkEwYwC/De4gMMpG0TbOWcB?=
 =?iso-8859-1?Q?/DjSmmtMLkzrA8x0VOJ4sjNxF7xYF5qXWS2dnVuxiy6MOrdHl1xf9CHdSB?=
 =?iso-8859-1?Q?XBwauyIJj5PPFSP3+02wfGHylJMDYU9DTSwoDPADrGqtbOdWwJA08TEEXY?=
 =?iso-8859-1?Q?H85A4U72PnU5X2GlRUooca979OSgPKmBLHIPREkZn47f+Myc32AzgEebsj?=
 =?iso-8859-1?Q?TifwKFJbVlRlbdCxfiR+TJ3oP+Xn790aZ7s+MnZZOWVIlElquGbYstA2QY?=
 =?iso-8859-1?Q?Bew5U38BycJFO7E7WFwKKKOgB/bod0xWxELKUUuglqW59sEuVVCgk7k+VK?=
 =?iso-8859-1?Q?cfIsS7qUEFm3WEkUjSTKxW13HN6lB2LXk4YVMg1P1d9TmYKbgYVCUSCVsZ?=
 =?iso-8859-1?Q?Ed8B+t0KVa26bOykvA0BTODt8Wr3nY3R6wwCCrTis4Nf0bnsci/Txw6NpG?=
 =?iso-8859-1?Q?84QjzEgYgVZkXas19B0poUssheZw+u6LCQ14eoRL7pITAX0iwaEh4IhzHe?=
 =?iso-8859-1?Q?bJV0/xMDK7uBhIdZlT1Px67hoctk0hmNK+SouWdmzN0TmD+DCtk4aw1ZGZ?=
 =?iso-8859-1?Q?Jg9Bq294gvvuhPnE6Q7U4v2N+Zvig9jKnXe3adhK5QpLTmA4y5U6NMaZZr?=
 =?iso-8859-1?Q?C4w2xt8rhA6UqvLUOP/uJuotP3/OcOA4yw5Z+dcYc/oA52iiWKPwqlfTwR?=
 =?iso-8859-1?Q?15FYvVF7WyKYp8EcguVTgT7Ys6GJmKBNnXu1j+o111hDM5G5aVkehEO4vr?=
 =?iso-8859-1?Q?7K9RSKNQ7mgqDqsssHddPqiYUheeR7acX5icR0zTUvlP/LXigCwOWQ2A?=
 =?iso-8859-1?Q?=3D=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: DU5PR03MB10441.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3f8b12ca-7994-4e10-8bf1-08dde73ced22
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Aug 2025 20:45:01.8435
 (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: aO8Vq9W2FW6vmAi0CIHHTak+czAjz1rFfN7eeaHEif5tU0jXfQxj2rpiwCIQx4fMLIahletGRTDOFGrMeyziEInmC6JRZrKh3w7Iy2swtZs=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR03MB10540


Hi Leonid,

Leonid Komarianskyi <Leonid_Komarianskyi@epam.com> writes:

> This change introduces resource management in the VGIC to handle
> extended SPIs introduced in GICv3.1. The pending_irqs and
> allocated_irqs arrays are resized to support the required
> number of eSPIs, based on what is supported by the hardware and
> requested by the guest. A new field, ext_shared_irqs, is added
> to the VGIC structure to store information about eSPIs, similar
> to how shared_irqs is used for regular SPIs.
>
> Since the eSPI range starts at INTID 4096 and INTIDs between 1025
> and 4095 are reserved, helper macros are introduced to simplify the
> transformation of indices and to enable easier access to eSPI-specific
> resources. These changes prepare the VGIC for processing eSPIs as
> required by future functionality.
>
> The initialization and deinitialization paths for vgic have been updated
> to allocate and free these resources appropriately. Additionally,
> updated handling of INTIDs greater than 1024, passed from the toolstack
> during domain creation, and verification logic ensures only valid SPI or
> eSPI INTIDs are used.
>
> The existing SPI behavior remains unaffected when guests do not request
> eSPIs, GIC hardware does not support them, or the CONFIG_GICV3_ESPI
> option is disabled.
>
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
>
> ---
> Changes in V5:
> - removed the has_espi field because it can be determined by checking
>   whether domain->arch.vgic.nr_espis is zero or not
> - since vgic_ext_rank_offset is not used in this patch, it has been
>   moved to the appropriate patch in the patch series, which implements
>   vgic eSPI registers emulation and requires this function
> - removed ifdefs for eSPI-specific macros to reduce the number of ifdefs
>   and code duplication in further changes
> - fixed minor nit: used %pd for printing domain with its ID
>
> Changes in V4:
> - added has_espi field to simplify determining whether a domain is able
>   to operate with eSPI
> - fixed formatting issues and misspellings
>
> Changes in V3:
> - fixed formatting for lines with more than 80 symbols
> - introduced helper functions to be able to use stubs in case of
>   CONFIG_GICV3_ESPI disabled, and as a result, reduce the number of
>   #ifdefs
> - fixed checks for nr_spis in domain_vgic_init
> - updated comment about nr_spis adjustments with dom0less mention
> - moved comment with additional explanations before checks
> - used unsigned int for indexes since they cannot be negative
> - removed unnecessary parentheses
> - move vgic_ext_rank_offset to the below ifdef guard, to reduce the
>   number of ifdefs
>
> Changes in V2:
> - change is_espi_rank to is_valid_espi_rank to verify whether the array
>   element ext_shared_irqs exists. The previous version, is_espi_rank,
>   only checked if the rank index was less than the maximum possible eSPI
>   rank index, but this could potentially result in accessing a
>   non-existing array element. To address this, is_valid_espi_rank was
>   introduced, which ensures that the required eSPI rank exists
> - move gic_number_espis to
>   xen/arm: gicv3: implement handling of GICv3.1 eSPI
> - update vgic_is_valid_irq checks to allow operating with eSPIs
> - remove redundant newline in vgic_allocate_virq
> ---
>  xen/arch/arm/include/asm/vgic.h |  12 ++
>  xen/arch/arm/vgic.c             | 199 +++++++++++++++++++++++++++++++-
>  2 files changed, 208 insertions(+), 3 deletions(-)
>
> diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/v=
gic.h
> index 3e7cbbb196..912d5b7694 100644
> --- a/xen/arch/arm/include/asm/vgic.h
> +++ b/xen/arch/arm/include/asm/vgic.h
> @@ -146,6 +146,10 @@ struct vgic_dist {
>      int nr_spis; /* Number of SPIs */
>      unsigned long *allocated_irqs; /* bitmap of IRQs allocated */
>      struct vgic_irq_rank *shared_irqs;
> +#ifdef CONFIG_GICV3_ESPI
> +    struct vgic_irq_rank *ext_shared_irqs;
> +    int nr_espis; /* Number of extended SPIs */
> +#endif
>      /*
>       * SPIs are domain global, SGIs and PPIs are per-VCPU and stored in
>       * struct arch_vcpu.
> @@ -243,6 +247,14 @@ struct vgic_ops {
>  /* Number of ranks of interrupt registers for a domain */
>  #define DOMAIN_NR_RANKS(d) (((d)->arch.vgic.nr_spis+31)/32)
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +#define DOMAIN_NR_EXT_RANKS(d) (((d)->arch.vgic.nr_espis+31)/32)
> +#endif
> +#define EXT_RANK_MIN (ESPI_BASE_INTID/32)
> +#define EXT_RANK_MAX ((ESPI_MAX_INTID+31)/32)
> +#define EXT_RANK_NUM2IDX(num) ((num)-EXT_RANK_MIN)
> +#define EXT_RANK_IDX2NUM(idx) ((idx)+EXT_RANK_MIN)
> +
>  #define vgic_lock(v)   spin_lock_irq(&(v)->domain->arch.vgic.lock)
>  #define vgic_unlock(v) spin_unlock_irq(&(v)->domain->arch.vgic.lock)
> =20
> diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
> index 2bbf4d99aa..c9b9528c66 100644
> --- a/xen/arch/arm/vgic.c
> +++ b/xen/arch/arm/vgic.c
> @@ -27,9 +27,82 @@
> =20
>  bool vgic_is_valid_line(struct domain *d, unsigned int virq)
>  {
> +#ifdef CONFIG_GICV3_ESPI
> +    if ( virq >=3D ESPI_BASE_INTID &&
> +         virq < ESPI_IDX2INTID(d->arch.vgic.nr_espis) )
> +        return true;
> +#endif
> +
>      return virq < vgic_num_irqs(d);
>  }
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +/*
> + * Since eSPI indexes start from 4096 and numbers from 1024 to
> + * 4095 are forbidden, we need to check both lower and upper
> + * limits for ranks.
> + */
> +static inline bool is_valid_espi_rank(struct domain *d, unsigned int ran=
k)
> +{
> +    return rank >=3D EXT_RANK_MIN &&
> +           EXT_RANK_NUM2IDX(rank) < DOMAIN_NR_EXT_RANKS(d);
> +}
> +
> +static inline struct vgic_irq_rank *vgic_get_espi_rank(struct vcpu *v,
> +                                                       unsigned int rank=
)
> +{
> +    return &v->domain->arch.vgic.ext_shared_irqs[EXT_RANK_NUM2IDX(rank)]=
;
> +}
> +
> +static inline bool vgic_reserve_espi_virq(struct domain *d, unsigned int=
 virq)
> +{
> +    return !test_and_set_bit(ESPI_INTID2IDX(virq) + vgic_num_irqs(d),
> +                             d->arch.vgic.allocated_irqs);
> +}
> +
> +static void arch_move_espis(struct vcpu *v)

I don't need you need a copy of arch_move_irqs(). Se below for more info.

> +{
> +    const cpumask_t *cpu_mask =3D cpumask_of(v->processor);
> +    struct domain *d =3D v->domain;
> +    struct pending_irq *p;
> +    struct vcpu *v_target;
> +    unsigned int i;
> +
> +    for ( i =3D ESPI_BASE_INTID;
> +          i < EXT_RANK_IDX2NUM(d->arch.vgic.nr_espis); i++ )
> +    {
> +        v_target =3D vgic_get_target_vcpu(v, i);
> +        p =3D irq_to_pending(v_target, i);
> +
> +        if ( v_target =3D=3D v && !test_bit(GIC_IRQ_GUEST_MIGRATING, &p-=
>status) )
> +            irq_set_affinity(p->desc, cpu_mask);
> +    }
> +}
> +#else
> +static inline bool is_valid_espi_rank(struct domain *d, unsigned int ran=
k)
> +{
> +    return false;
> +}
> +
> +/*
> + * This function is stub and will not be called if CONFIG_GICV3_ESPI=3Dn=
,
> + * because in this case, is_valid_espi_rank will always return false.
> + */
> +static inline struct vgic_irq_rank *vgic_get_espi_rank(struct vcpu *v,
> +                                                       unsigned int rank=
)
> +{
> +    ASSERT_UNREACHABLE();
> +    return NULL;
> +}
> +
> +static inline bool vgic_reserve_espi_virq(struct domain *d, unsigned int=
 virq)
> +{
> +    return false;
> +}
> +
> +static void arch_move_espis(struct vcpu *v) { }
> +#endif
> +
>  static inline struct vgic_irq_rank *vgic_get_rank(struct vcpu *v,
>                                                    unsigned int rank)
>  {
> @@ -37,6 +110,8 @@ static inline struct vgic_irq_rank *vgic_get_rank(stru=
ct vcpu *v,
>          return v->arch.vgic.private_irqs;
>      else if ( rank <=3D DOMAIN_NR_RANKS(v->domain) )
>          return &v->domain->arch.vgic.shared_irqs[rank - 1];
> +    else if ( is_valid_espi_rank(v->domain, rank) )
> +        return vgic_get_espi_rank(v, rank);
>      else
>          return NULL;
>  }
> @@ -117,6 +192,62 @@ int domain_vgic_register(struct domain *d, unsigned =
int *mmio_count)
>      return 0;
>  }
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +static unsigned int vgic_num_spi_lines(struct domain *d)
> +{
> +    return d->arch.vgic.nr_spis + d->arch.vgic.nr_espis;
> +}
> +
> +static int init_vgic_espi(struct domain *d)
> +{
> +    unsigned int i, idx;
> +
> +    if ( d->arch.vgic.nr_espis =3D=3D 0 )
> +        return 0;
> +
> +    d->arch.vgic.ext_shared_irqs =3D
> +        xzalloc_array(struct vgic_irq_rank, DOMAIN_NR_EXT_RANKS(d));
> +    if ( d->arch.vgic.ext_shared_irqs =3D=3D NULL )
> +        return -ENOMEM;
> +
> +    for ( i =3D d->arch.vgic.nr_spis, idx =3D 0;
> +          i < vgic_num_spi_lines(d); i++, idx++ )
> +        vgic_init_pending_irq(&d->arch.vgic.pending_irqs[i],
> +                              ESPI_IDX2INTID(idx));
> +
> +    for ( i =3D 0; i < DOMAIN_NR_EXT_RANKS(d); i++ )
> +        vgic_rank_init(&d->arch.vgic.ext_shared_irqs[i], i, 0);
> +
> +    return 0;
> +}
> +
> +struct pending_irq *espi_to_pending(struct domain *d, unsigned int irq)

I know that I should made this observation in previous version, but I
didn't, sorry for that. Anyways, I don't think that this is a good idea
to introduce this function and vgic_reserve_espi_virq(), as well as
arch_move_espis(), actually, because in each case this is a code
duplication, which is not good.

I think that instead you need to introduce a pair of helpers that will
map any (e)SPI number to pending_irq[]/allocate_irqs index and back.

somethink like

static inline unsigned virq_to_index(int virq)
{
   if (is_espi(virq))
       return ESPI_INTID2IDX(irq) + d->arch.vgic.nr_spis;
   return virq;
}

See below for examples.

> +{
> +    irq =3D ESPI_INTID2IDX(irq) + d->arch.vgic.nr_spis;
> +    return &d->arch.vgic.pending_irqs[irq];
> +}
> +#else
> +static unsigned int init_vgic_espi(struct domain *d)
> +{
> +    return 0;
> +}
> +
> +static unsigned int vgic_num_spi_lines(struct domain *d)
> +{
> +    return d->arch.vgic.nr_spis;
> +}
> +
> +struct pending_irq *espi_to_pending(struct domain *d, unsigned int irq)
> +{
> +    return NULL;
> +}
> +#endif
> +
> +static unsigned int vgic_num_alloc_irqs(struct domain *d)
> +{
> +    return vgic_num_spi_lines(d) + NR_LOCAL_IRQS;
> +}
> +
>  int domain_vgic_init(struct domain *d, unsigned int nr_spis)
>  {
>      int i;
> @@ -131,6 +262,36 @@ int domain_vgic_init(struct domain *d, unsigned int =
nr_spis)
>       */
>      nr_spis =3D ROUNDUP(nr_spis, 32);
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +    /*
> +     * During domain creation, the dom0less DomUs code or toolstack spec=
ifies
> +     * the maximum INTID, which is defined in the domain config subtract=
ed by
> +     * 32 to cover the local IRQs (please see the comment to VGIC_DEF_NR=
_SPIS).
> +     * To compute the actual number of eSPI that will be usable for,
> +     * add back 32.
> +     */
> +    if ( nr_spis + 32 > ESPI_IDX2INTID(NR_ESPI_IRQS) )
> +        return -EINVAL;
> +
> +    if ( nr_spis + 32 >=3D ESPI_BASE_INTID )
> +    {
> +        d->arch.vgic.nr_espis =3D min(nr_spis - ESPI_BASE_INTID + 32, 10=
24U);
> +        /* Verify if GIC HW can handle provided INTID */
> +        if ( d->arch.vgic.nr_espis > gic_number_espis() )
> +            return -EINVAL;
> +        /*
> +         * Set the maximum available number for regular
> +         * SPI to pass the next check
> +         */
> +        nr_spis =3D VGIC_DEF_NR_SPIS;
> +    }
> +    else
> +    {
> +        /* Domain will use the regular SPI range */
> +        d->arch.vgic.nr_espis =3D 0;
> +    }
> +#endif
> +
>      /* Limit the number of virtual SPIs supported to (1020 - 32) =3D 988=
  */
>      if ( nr_spis > (1020 - NR_LOCAL_IRQS) )
>          return -EINVAL;
> @@ -145,7 +306,7 @@ int domain_vgic_init(struct domain *d, unsigned int n=
r_spis)
>          return -ENOMEM;
> =20
>      d->arch.vgic.pending_irqs =3D
> -        xzalloc_array(struct pending_irq, d->arch.vgic.nr_spis);
> +        xzalloc_array(struct pending_irq, vgic_num_spi_lines(d));
>      if ( d->arch.vgic.pending_irqs =3D=3D NULL )
>          return -ENOMEM;
> =20
> @@ -156,12 +317,16 @@ int domain_vgic_init(struct domain *d, unsigned int=
 nr_spis)
>      for ( i =3D 0; i < DOMAIN_NR_RANKS(d); i++ )
>          vgic_rank_init(&d->arch.vgic.shared_irqs[i], i + 1, 0);
> =20
> +    ret =3D init_vgic_espi(d);
> +    if ( ret )
> +        return ret;
> +
>      ret =3D d->arch.vgic.handler->domain_init(d);
>      if ( ret )
>          return ret;
> =20
>      d->arch.vgic.allocated_irqs =3D
> -        xzalloc_array(unsigned long, BITS_TO_LONGS(vgic_num_irqs(d)));
> +        xzalloc_array(unsigned long, BITS_TO_LONGS(vgic_num_alloc_irqs(d=
)));
>      if ( !d->arch.vgic.allocated_irqs )
>          return -ENOMEM;
> =20
> @@ -195,9 +360,27 @@ void domain_vgic_free(struct domain *d)
>          }
>      }
> =20
> +#ifdef CONFIG_GICV3_ESPI
> +    for ( i =3D 0; i < d->arch.vgic.nr_espis; i++ )
> +    {
> +        struct pending_irq *p =3D spi_to_pending(d, ESPI_IDX2INTID(i));
> +
> +        if ( p->desc )
> +        {
> +            ret =3D release_guest_irq(d, p->irq);
> +            if ( ret )
> +                dprintk(XENLOG_G_WARNING, "%pd: Failed to release virq %=
u ret =3D %d\n",
> +                        d, p->irq, ret);
> +        }
> +    }
> +#endif
> +
>      if ( d->arch.vgic.handler )
>          d->arch.vgic.handler->domain_free(d);
>      xfree(d->arch.vgic.shared_irqs);
> +#ifdef CONFIG_GICV3_ESPI
> +    xfree(d->arch.vgic.ext_shared_irqs);
> +#endif
>      xfree(d->arch.vgic.pending_irqs);
>      xfree(d->arch.vgic.allocated_irqs);
>  }
> @@ -331,6 +514,8 @@ void arch_move_irqs(struct vcpu *v)
>          if ( v_target =3D=3D v && !test_bit(GIC_IRQ_GUEST_MIGRATING, &p-=
>status) )
>              irq_set_affinity(p->desc, cpu_mask);
>      }
> +
> +    arch_move_espis(v);
>  }
> =20
>  void vgic_disable_irqs(struct vcpu *v, uint32_t r, unsigned int n)
> @@ -538,6 +723,8 @@ struct pending_irq *irq_to_pending(struct vcpu *v, un=
signed int irq)
>          n =3D &v->arch.vgic.pending_irqs[irq];
>      else if ( is_lpi(irq) )
>          n =3D v->domain->arch.vgic.handler->lpi_to_pending(v->domain, ir=
q);
> +    else if ( is_espi(irq) )
> +        n =3D espi_to_pending(v->domain, irq);
>      else
>          n =3D &v->domain->arch.vgic.pending_irqs[irq - 32];
>      return n;
> @@ -547,6 +734,9 @@ struct pending_irq *spi_to_pending(struct domain *d, =
unsigned int irq)
>  {
>      ASSERT(irq >=3D NR_LOCAL_IRQS);
> =20
> +    if ( is_espi(irq) )
> +        return espi_to_pending(d, irq);
> +

here you can just do

idx =3D virq_to_idx(virq);

>      return &d->arch.vgic.pending_irqs[irq - 32];

and

return &d->arch.vgic.pending_irqs[idx];

instead

>  }
> =20
> @@ -668,6 +858,9 @@ bool vgic_reserve_virq(struct domain *d, unsigned int=
 virq)
>      if ( !vgic_is_valid_line(d, virq) )
>          return false;
> =20
> +    if ( is_espi(virq) )
> +        return vgic_reserve_espi_virq(d, virq);
> +

here you can just do

idx =3D virq_to_idx(virq)

>      return !test_and_set_bit(virq, d->arch.vgic.allocated_irqs);

and then just

return !test_and_set_bit(idx, d->arch.vgic.allocated_irqs);


>  }
> =20
> @@ -685,7 +878,7 @@ int vgic_allocate_virq(struct domain *d, bool spi)
>      else
>      {
>          first =3D 32;
> -        end =3D vgic_num_irqs(d);
> +        end =3D vgic_num_alloc_irqs(d);
>      }

I thinj you need to recalculate "virq" value at the end of this
function. You'll return index in bitfield, but this is not the same is
IRQ number in case of eSPIs. The helpers I mentioned before can help here.

> =20
>      /*

Lastly, I think that it is very wasteful to allocate pending_irqs as
continuous array, because it will consist mostly of unused entries,
especially with eSPIs enable. Probably, better approach will be to use radi=
x
tree. As a bonus, you can use IRQ line number as a key, and get rid of
all these is_espi() checks and mappings between IRQ number and index in
the array.  But this is a much more drastic change, and I don't think that =
it
should be done in this patch series...

--=20
WBR, Volodymyr=


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 20:59:13 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 20:59:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1102206.1454923 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us6Bb-0002si-5D; Fri, 29 Aug 2025 20:59:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1102206.1454923; Fri, 29 Aug 2025 20: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 1us6Bb-0002sb-1C; Fri, 29 Aug 2025 20:59:03 +0000
Received: by outflank-mailman (input) for mailman id 1102206;
 Fri, 29 Aug 2025 20:59:02 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=b4pU=3J=cloud.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1us6BZ-0002sV-Rj
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 20:59:01 +0000
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com
 [2a00:1450:4864:20::32a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fc0fd882-851a-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 22:58:59 +0200 (CEST)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-45b82a21e6bso6302445e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 29 Aug 2025 13:58:59 -0700 (PDT)
Received: from [192.168.1.183] (host-195-149-20-212.as13285.net.
 [195.149.20.212]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-45b66c7f0d0sm86138025e9.3.2025.08.29.13.58.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 29 Aug 2025 13:58:58 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fc0fd882-851a-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1756501139; x=1757105939; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=h8TyG9Vd8UOJ9yTcvN4sd9LcWR+g5/48sVvFQ+3BGFo=;
        b=XFKgvhCCxZRdsFzvQI1Ent2IehS/KMzfqf8Oy5G5tmtOLTNMkkA5dOPGHD+/HrGwnV
         KWX4WNWy8Wxd12Cs4eUkWadXXhAAu3ojuwLhNLlWPfhp7MA7H7mkIYHFndsU4Dh38PYx
         0lQgbk4iO3KXQDlz4s6a4ekiwgguZRK7egJxQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756501139; x=1757105939;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=h8TyG9Vd8UOJ9yTcvN4sd9LcWR+g5/48sVvFQ+3BGFo=;
        b=EMyuXaeMaicIwMpe7qNT0rG4c+EN1q62UfMIlw+tX+QP5mG8cQVR0BdBtmn8LK8Yan
         SvnHnO87NJ/elJYjq7nJfuu4ROoXnHsFHE6zPDc3o2+ZLYPW+FjhB7PkjNFzWXsr4RI6
         yxOiyTTog6A3/nPvQP5qNf9yhP0pZZL/is5Q9eLkGklRYDpgcZyy0QR33AlkS4kCEKgj
         IgVrs4nGrnl6DJuQ7ac9/boXFNC7vJGJ10TcF+GqvGZBZ4L2QqA+vD554kqky5KK1hum
         MijSSvvURkOBQxJV0nGO3TwimQsBnFQpv6kwY46twZf0LvuLwlokextDF5pT7GlGVbIL
         BSAg==
X-Forwarded-Encrypted: i=1; AJvYcCUlfNIHtVulODjtODHojXDxDLxbfhybo1zdiyThz7sGMo/o/J+T4g5zcZbejxiv2dm6SNP3nniTavQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw0odPDi/EYgt5rTguyD8L/Q9gZpgBZn9ANujCv0mPoJ7AhMtbu
	JqclBeHLdnJproIeWxie9PkmpqxCpBLR0ZZkfGa3XGGq4A3ndcYOwr10KjQohbGPL/8=
X-Gm-Gg: ASbGnctAwX1ohn13XhEDbjaGZVoEr3Owmbo/TwpM/o1BFdIDbSbkGGEk/ghA4BesOSw
	O8yJeLe2F/5lHCaS3ZXX3QvqItoAaqU8sWjrO0POLpGoD8kix6RI5/weNmIWcUBgNzoObRPgzh1
	feWWl96l5tWQe09GsYiYaaiL+3BLGZ5VDUtiMv798YN9Q/i06+54GZPQ5YkYBQ7YNnoPHd8zKDI
	yQ2wneQGJOzaJec+4yVORO1HN1KjbgOGYX4R+BgRsyLgL4+hmdLlKH8IsZ2I0j86CByNdwvURO+
	/TWwdPIJrF8mE/HDObyTay0WWHV6q4+mZOQlgW0D73veIDs/GLk/7KLHkiL9w2+8q5mDK19Y30b
	u3nDmAPb5yKFf+GRRF8DeG1XEHx1TTZXDS+YbmdRLXACxU/4/2K7zZzASiH/6jBavGLjJ
X-Google-Smtp-Source: AGHT+IEWUC3T+iAiR6xwtxuJSCopIWY8eL0Rpx6Aep/vsT/hQElzkEN+bC0+VIBTHTRSFwaOWNfLEA==
X-Received: by 2002:a05:600c:4f12:b0:459:dde3:1a37 with SMTP id 5b1f17b1804b1-45b66343ea2mr131838745e9.25.1756501138620;
        Fri, 29 Aug 2025 13:58:58 -0700 (PDT)
Message-ID: <efac3768-b434-4f22-96f0-887540651b7e@citrix.com>
Date: Fri, 29 Aug 2025 21:58:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/gen-cpuid: correct cycle detection
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <73d725a9-4163-4dd8-a9ac-b1c234005ced@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: <73d725a9-4163-4dd8-a9ac-b1c234005ced@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 16/07/2025 7:59 am, Jan Beulich wrote:
> With the processing done linearly (rather than recursively), checking
> whether any of the features was previously seen is wrong: That would
> e.g. trigger for this simple set of dependencies
>
>     X: [A, B]
>     A: [C]
>     B: [C]
>
> (observed in reality when making AMX-AVX512 dependent upon both
> AMX-TILE and AVX512F, causing XSAVE to see AMX-AVX512 twice in its list
> of dependents). But checking the whole accumulated set also isn't
> necessary - just checking the feature we're processing dependents of is
> sufficient. We may detect a cycle later that way, but we still will
> detect it. What we need to avoid is adding a feature again when we've
> already seen it.
>
> As a result, seeding "seen[]" with "feat" isn't necessary anymore.
>
> Fixes: fe4408d180f4 ("xen/x86: Generate deep dependencies of features")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> Doing AMX-AVX512's dependencies like mentioned above still isn't quite
> right; we really need AVX512F || AVX10, which can't be expressed right
> now.
>
> This contextually collides with patch 2 of "x86/cpu-policy: minor
> adjustments", posted almost 2 years ago and still pending (afair) any
> kind of feedback.
>
> I'd like to note that the commented out code in the loop (sitting
> between the two hunks beklow) doesn't really work for ARCH_CAPS: The
> first unused bit (between XAPIC_STATUS and OVRCLK_STATUS) triggers
>
> Traceback (most recent call last):
>   File ".../xen/../xen/tools/gen-cpuid.py", line 608, in <module>
>     sys.exit(main())
>   File ".../xen/../xen/tools/gen-cpuid.py", line 602, in main
>     crunch_numbers(state)
>   File ".../xen/../xen/tools/gen-cpuid.py", line 382, in crunch_numbers
>     (state.names[feat], repl(seen)))
>   File ".../xen/../xen/tools/gen-cpuid.py", line 378, in repl
>     return "[" + ", ".join((state.names[x] for x in l)) + "]"
>   File ".../xen/../xen/tools/gen-cpuid.py", line 378, in <genexpr>
>     return "[" + ", ".join((state.names[x] for x in l)) + "]"
> KeyError: 534
>
> (line numbers slightly shifted due to other debugging code I had added).
> My Python clearly isn't good enough to try to guess how to fix that.

I've posted a fix for this.


>
> --- a/xen/tools/gen-cpuid.py
> +++ b/xen/tools/gen-cpuid.py
> @@ -350,7 +350,7 @@ def crunch_numbers(state):
>  
>      for feat in deep_features:
>  
> -        seen = [feat]
> +        seen = []
>          to_process = list(deps[feat])
>  
>          while len(to_process):
> @@ -363,14 +363,14 @@ def crunch_numbers(state):
>  
>              f = to_process.pop(0)
>  
> -            if f in seen:
> -                raise Fail("ERROR: Cycle found with %s when processing %s"
> -                           % (state.names[f], state.names[feat]))
> +            if f == feat:
> +                raise Fail("ERROR: Cycle found with %s" % (state.names[f], ))

Despite f and feat being the same now, I think this wants to keep the
other part of the sentence.Â  i.e. "Cycle found when processing %s".

It's a little awkward that there's no sensible way to reverse engineer
the cycle and print it, but it's also been far too long since I last did
graph theory.

>  
> -            seen.append(f)
> -            to_process = list(set(to_process + deps.get(f, [])))
> +            if not (f in seen):
> +                seen.append(f)
> +                to_process = list(set(to_process + deps.get(f, [])))

Â Â Â  if f not in seen:

But this will be a simpler patch if you do:

Â Â Â  if f in seen:
Â Â Â  Â Â Â  continue

and don't change the indentation of of seen.append()

After this fix goes in, and now because the order is less relevant, I
probably ought to rewrite this to use sets rather than lists.Â  I have a
suspicion it can be done better than one-at-a-time; all that matters if
we don't see a repeat feature in deps.Â  We don't need to check the
feature bits outside of deps because they're (by definition) leaf values.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 21:43:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 21:43:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1102232.1454933 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us6sZ-0001WF-DS; Fri, 29 Aug 2025 21:43:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1102232.1454933; Fri, 29 Aug 2025 21: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 1us6sZ-0001W8-Ai; Fri, 29 Aug 2025 21:43:27 +0000
Received: by outflank-mailman (input) for mailman id 1102232;
 Fri, 29 Aug 2025 21:43:26 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=7zkx=3J=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1us6sY-0001W2-Du
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 21:43:26 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org
 [2600:3c0a:e001:78e:0:1991:8:25])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2fe7fd49-8521-11f0-8adc-4578a1afcccb;
 Fri, 29 Aug 2025 23:43:24 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 99AA044A21;
 Fri, 29 Aug 2025 21:43:22 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 37321C4CEF0;
 Fri, 29 Aug 2025 21:43:21 +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>
X-Inumbo-ID: 2fe7fd49-8521-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1756503802;
	bh=2uf2blFovqY8HQJrYtITKAAYgmjs/gqGV6IxKRWJsRE=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=UsLALkWixVDxC14HzK0BkqwIynkIXdVTVzLX/NQ6utifgPgz/HrCfInLsCxAm1PtO
	 ty8LWWaveb/hWRHeBkkdfVYoT3BLKrbKcI4d+IuDWO/No83CPmUEmQlu9aeDS7UNBa
	 G4mSsgloOi9W6xXI6+LVgjAyeSdexY0FnaqROsfFJJKNWHSmflNFCSIiIx59VtF3k8
	 B1AatJKbwp8Evu5XM242IG4p5O4quu6d+XnP8/V2XZkBorstiBsSRLT8ZPn/PadLOp
	 fv4X5O+hBvUawZBN/jZkI9Cu3tqCqlRaraoK0TdnQaxY94jZ8OOVTlq+cT3DxtFbdQ
	 SdnwUAbKs9QLw==
Date: Fri, 29 Aug 2025 14:43:18 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: dmukhin@xen.org
cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, 
    anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, 
    michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, 
    dmukhin@ford.com
Subject: Re: [PATCH v5 13/15] x86/domain: enable per-domain I/O port
 bitmaps
In-Reply-To: <20250828235409.2835815-14-dmukhin@ford.com>
Message-ID: <alpine.DEB.2.22.394.2508291441220.341243@ubuntu-linux-20-04-desktop>
References: <20250828235409.2835815-1-dmukhin@ford.com> <20250828235409.2835815-14-dmukhin@ford.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 28 Aug 2025, dmukhin@xen.org wrote:
> From: Denis Mukhin <dmukhin@ford.com> 
> 
> Current design enables all HVM domains share the same I/O port bitmap.
> 
> It is necessary for domains crafting its own I/O port address space depending
> on the user configuration.
> 
> Ensure NS16550 emulator does not share I/O ports with the physical I/O ports,
> which is essential for emulation in PVH hwdom case (dom0).
> 
> Not a functional change.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
> Changes since v4:
> - new patch 
> - Link tp v4: https://lore.kernel.org/xen-devel/20250731192130.3948419-4-dmukhin@ford.com/
> ---
>  xen/arch/x86/Makefile                    |   1 +
>  xen/arch/x86/dom0_build.c                | 111 +--------------
>  xen/arch/x86/hvm/hvm.c                   |  35 +----
>  xen/arch/x86/hvm/nestedhvm.c             |   8 +-
>  xen/arch/x86/hvm/quirks.c                |   3 -
>  xen/arch/x86/hvm/svm/nestedsvm.c         |   2 +-
>  xen/arch/x86/hvm/vmx/vvmx.c              |   4 +-
>  xen/arch/x86/include/asm/hvm/nestedhvm.h |   3 +-
>  xen/arch/x86/include/asm/hvm/support.h   |   2 -
>  xen/arch/x86/include/asm/iocap.h         |   2 +
>  xen/arch/x86/ioport.c                    | 163 +++++++++++++++++++++++
>  xen/arch/x86/pv/dom0_build.c             |   4 +
>  xen/common/emul/vuart/ns16x50.c          |  11 ++
>  13 files changed, 200 insertions(+), 149 deletions(-)
>  create mode 100644 xen/arch/x86/ioport.c
> 
> diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
> index 9d67ea7cd4a8..5726ecc180eb 100644
> --- a/xen/arch/x86/Makefile
> +++ b/xen/arch/x86/Makefile
> @@ -44,6 +44,7 @@ obj-y += msi.o
>  obj-y += msr.o
>  obj-$(CONFIG_INDIRECT_THUNK) += indirect-thunk.o
>  obj-$(CONFIG_RETURN_THUNK) += indirect-thunk.o
> +obj-y += ioport.o
>  obj-$(CONFIG_PV) += ioport_emulate.o
>  obj-y += irq.o
>  obj-$(CONFIG_KEXEC) += machine_kexec.o
> diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
> index 0b467fd4a4fc..26202b33345c 100644
> --- a/xen/arch/x86/dom0_build.c
> +++ b/xen/arch/x86/dom0_build.c
> @@ -298,9 +298,6 @@ int __init parse_arch_dom0_param(const char *s, const char *e)
>      return 0;
>  }
>  
> -static char __initdata opt_dom0_ioports_disable[200] = "";
> -string_param("dom0_ioports_disable", opt_dom0_ioports_disable);
> -
>  static bool __initdata ro_hpet = true;
>  boolean_param("ro-hpet", ro_hpet);
>  
> @@ -433,122 +430,20 @@ unsigned long __init dom0_compute_nr_pages(
>      return nr_pages;
>  }
>  
> -static void __init process_dom0_ioports_disable(struct domain *dom0)
> -{
> -    unsigned long io_from, io_to;
> -    char *t, *s = opt_dom0_ioports_disable;
> -    const char *u;
> -
> -    if ( *s == '\0' )
> -        return;
> -
> -    while ( (t = strsep(&s, ",")) != NULL )
> -    {
> -        io_from = simple_strtoul(t, &u, 16);
> -        if ( u == t )
> -        {
> -        parse_error:
> -            printk("Invalid ioport range <%s> "
> -                   "in dom0_ioports_disable, skipping\n", t);
> -            continue;
> -        }
> -
> -        if ( *u == '\0' )
> -            io_to = io_from;
> -        else if ( *u == '-' )
> -            io_to = simple_strtoul(u + 1, &u, 16);
> -        else
> -            goto parse_error;
> -
> -        if ( (*u != '\0') || (io_to < io_from) || (io_to >= 65536) )
> -            goto parse_error;
> -
> -        printk("Disabling dom0 access to ioport range %04lx-%04lx\n",
> -            io_from, io_to);
> -
> -        if ( ioports_deny_access(dom0, io_from, io_to) != 0 )
> -            BUG();
> -    }
> -}
> -
> +/* Modify I/O memory access permissions. */
>  int __init dom0_setup_permissions(struct domain *d)
>  {
>      unsigned long mfn;
> -    unsigned int i, offs;
> -    int rc;
> +    unsigned int i;
> +    int rc = 0;
>  
>      if ( pv_shim )
>          return 0;
>  
> -    /* The hardware domain is initially permitted full I/O capabilities. */
> -    rc = ioports_permit_access(d, 0, 0xFFFF);
>      rc |= iomem_permit_access(d, 0UL,
>                                PFN_DOWN(1UL << domain_max_paddr_bits(d)) - 1);
>      rc |= irqs_permit_access(d, 1, nr_irqs_gsi - 1);
>  
> -    /* Modify I/O port access permissions. */
> -
> -    for ( offs = 0, i = ISOLATE_LSB(i8259A_alias_mask) ?: 2;
> -          offs <= i8259A_alias_mask; offs += i )
> -    {
> -        if ( offs & ~i8259A_alias_mask )
> -            continue;
> -        /* Master Interrupt Controller (PIC). */
> -        rc |= ioports_deny_access(d, 0x20 + offs, 0x21 + offs);
> -        /* Slave Interrupt Controller (PIC). */
> -        rc |= ioports_deny_access(d, 0xA0 + offs, 0xA1 + offs);
> -    }
> -
> -    /* ELCR of both PICs. */
> -    rc |= ioports_deny_access(d, 0x4D0, 0x4D1);
> -
> -    /* Interval Timer (PIT). */
> -    for ( offs = 0, i = ISOLATE_LSB(pit_alias_mask) ?: 4;
> -          offs <= pit_alias_mask; offs += i )
> -        if ( !(offs & ~pit_alias_mask) )
> -            rc |= ioports_deny_access(d, PIT_CH0 + offs, PIT_MODE + offs);
> -
> -    /* PIT Channel 2 / PC Speaker Control. */
> -    rc |= ioports_deny_access(d, 0x61, 0x61);
> -
> -    /* INIT# and alternative A20M# control. */
> -    rc |= ioports_deny_access(d, 0x92, 0x92);
> -
> -    /* IGNNE# control. */
> -    rc |= ioports_deny_access(d, 0xF0, 0xF0);
> -
> -    /* ACPI PM Timer. */
> -    if ( pmtmr_ioport )
> -        rc |= ioports_deny_access(d, pmtmr_ioport, pmtmr_ioport + 3);
> -
> -    /* Reset control. */
> -    rc |= ioports_deny_access(d, 0xCF9, 0xCF9);
> -
> -    /* PCI configuration space (NB. 0xCF8 has special treatment). */
> -    rc |= ioports_deny_access(d, 0xCFC, 0xCFF);
> -
> -#ifdef CONFIG_HVM
> -    if ( is_hvm_domain(d) )
> -    {
> -        /* ISA DMA controller, channels 0-3 (incl possible aliases). */
> -        rc |= ioports_deny_access(d, 0x00, 0x1F);
> -        /* ISA DMA controller, page registers (incl various reserved ones). */
> -        rc |= ioports_deny_access(d, 0x80 + !!hvm_port80_allowed, 0x8F);
> -        /* ISA DMA controller, channels 4-7 (incl usual aliases). */
> -        rc |= ioports_deny_access(d, 0xC0, 0xDF);
> -
> -        /* HVM debug console IO port. */
> -        rc |= ioports_deny_access(d, XEN_HVM_DEBUGCONS_IOPORT,
> -                                  XEN_HVM_DEBUGCONS_IOPORT);
> -        if ( amd_acpi_c1e_quirk )
> -            rc |= ioports_deny_access(d, acpi_smi_cmd, acpi_smi_cmd);
> -    }
> -#endif
> -    /* Command-line I/O ranges. */
> -    process_dom0_ioports_disable(d);
> -
> -    /* Modify I/O memory access permissions. */
> -
>      /* Local APIC. */
>      if ( mp_lapic_addr != 0 )
>      {
> diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
> index 26760cf995df..12736fc61c11 100644
> --- a/xen/arch/x86/hvm/hvm.c
> +++ b/xen/arch/x86/hvm/hvm.c
> @@ -51,6 +51,7 @@
>  #include <asm/hvm/vm_event.h>
>  #include <asm/hvm/vpt.h>
>  #include <asm/i387.h>
> +#include <asm/iocap.h>
>  #include <asm/mc146818rtc.h>
>  #include <asm/mce.h>
>  #include <asm/monitor.h>
> @@ -81,14 +82,6 @@ integer_param("hvm_debug", opt_hvm_debug_level);
>  
>  struct hvm_function_table __ro_after_init hvm_funcs;
>  
> -/*
> - * The I/O permission bitmap is globally shared by all HVM guests except
> - * the hardware domain which needs a more permissive one.
> - */
> -#define HVM_IOBITMAP_SIZE (3 * PAGE_SIZE)
> -unsigned long __section(".bss.page_aligned") __aligned(PAGE_SIZE)
> -    hvm_io_bitmap[HVM_IOBITMAP_SIZE / BYTES_PER_LONG];
> -
>  /* Xen command-line option to enable HAP */
>  static bool __initdata opt_hap_enabled = true;
>  boolean_param("hap", opt_hap_enabled);
> @@ -205,15 +198,6 @@ static int __init cf_check hvm_enable(void)
>      if ( opt_hvm_fep )
>          warning_add(warning_hvm_fep);
>  
> -    /*
> -     * Allow direct access to the PC debug ports 0x80 and 0xed (they are
> -     * often used for I/O delays, but the vmexits simply slow things down).
> -     */
> -    memset(hvm_io_bitmap, ~0, sizeof(hvm_io_bitmap));
> -    if ( hvm_port80_allowed )
> -        __clear_bit(0x80, hvm_io_bitmap);
> -    __clear_bit(0xed, hvm_io_bitmap);
> -
>      register_cpu_notifier(&cpu_nfb);
>  
>      return 0;
> @@ -645,19 +629,12 @@ int hvm_domain_initialise(struct domain *d,
>  
>      rwlock_init(&d->arch.hvm.pl_time->pt_migrate);
>  
> -    /* Set the default IO Bitmap. */
> -    if ( is_hardware_domain(d) )
> +    rc = ioports_setup_access(d);
> +    if ( rc )
>      {
> -        d->arch.hvm.io_bitmap = _xmalloc(HVM_IOBITMAP_SIZE, PAGE_SIZE);
> -        if ( d->arch.hvm.io_bitmap == NULL )
> -        {
> -            rc = -ENOMEM;
> -            goto fail1;
> -        }
> -        memset(d->arch.hvm.io_bitmap, ~0, HVM_IOBITMAP_SIZE);
> +        printk("%pd failed to setup I/O bitmap: %d\n", d, rc);
> +        goto fail1;
>      }
> -    else
> -        d->arch.hvm.io_bitmap = hvm_io_bitmap;
>  
>      register_g2m_portio_handler(d);
>      register_vpci_portio_handler(d);
> @@ -684,6 +661,8 @@ int hvm_domain_initialise(struct domain *d,
>          break;
>      }
>  
> +    BUG_ON(!d->arch.ioport_caps);
> +
>      vpic_init(d);
>  
>      rc = vioapic_init(d);
> diff --git a/xen/arch/x86/hvm/nestedhvm.c b/xen/arch/x86/hvm/nestedhvm.c
> index bddd77d8109b..d4e03123d910 100644
> --- a/xen/arch/x86/hvm/nestedhvm.c
> +++ b/xen/arch/x86/hvm/nestedhvm.c
> @@ -107,7 +107,7 @@ nestedhvm_vmcx_flushtlb(struct p2m_domain *p2m)
>   * The users of the bitmap patterns are in SVM/VMX specific code.
>   *
>   * bitmap        port 0x80  port 0xed
> - * hvm_io_bitmap cleared    cleared
> + * hvm.io_bitmap cleared    cleared
>   * iomap[0]      cleared    set
>   * iomap[1]      set        cleared
>   * iomap[2]      set        set
> @@ -115,7 +115,7 @@ nestedhvm_vmcx_flushtlb(struct p2m_domain *p2m)
>  
>  static int __init cf_check nestedhvm_setup(void)
>  {
> -    /* Same format and size as hvm_io_bitmap (Intel needs only 2 pages). */
> +    /* Same format and size as hvm.io_bitmap (Intel needs only 2 pages). */
>      unsigned nr = cpu_has_vmx ? 2 : 3;
>      unsigned int i, order = get_order_from_pages(nr);
>  
> @@ -165,7 +165,7 @@ static int __init cf_check nestedhvm_setup(void)
>  __initcall(nestedhvm_setup);
>  
>  unsigned long *
> -nestedhvm_vcpu_iomap_get(bool ioport_80, bool ioport_ed)
> +nestedhvm_vcpu_iomap_get(struct vcpu *v, bool ioport_80, bool ioport_ed)
>  {
>      int i;
>  
> @@ -174,7 +174,7 @@ nestedhvm_vcpu_iomap_get(bool ioport_80, bool ioport_ed)
>  
>      if (ioport_80 == 0) {
>          if (ioport_ed == 0)
> -            return hvm_io_bitmap;
> +            return v->domain->arch.hvm.io_bitmap;
>          i = 0;
>      } else {
>          if (ioport_ed == 0)
> diff --git a/xen/arch/x86/hvm/quirks.c b/xen/arch/x86/hvm/quirks.c
> index 9202f5a47fe9..f4d95441fcff 100644
> --- a/xen/arch/x86/hvm/quirks.c
> +++ b/xen/arch/x86/hvm/quirks.c
> @@ -73,9 +73,6 @@ static int __init cf_check check_port80(void)
>  
>      dmi_check_system(hvm_no_port80_dmi_table);
>  
> -    if ( !hvm_port80_allowed )
> -        __set_bit(0x80, hvm_io_bitmap);
> -
>      return 0;
>  }
>  __initcall(check_port80);
> diff --git a/xen/arch/x86/hvm/svm/nestedsvm.c b/xen/arch/x86/hvm/svm/nestedsvm.c
> index dc2b6a42534a..cc8500b61665 100644
> --- a/xen/arch/x86/hvm/svm/nestedsvm.c
> +++ b/xen/arch/x86/hvm/svm/nestedsvm.c
> @@ -381,7 +381,7 @@ static int nsvm_vmrun_permissionmap(struct vcpu *v, bool viopm)
>          hvm_unmap_guest_frame(ns_viomap, 0);
>      }
>  
> -    svm->ns_iomap = nestedhvm_vcpu_iomap_get(ioport_80, ioport_ed);
> +    svm->ns_iomap = nestedhvm_vcpu_iomap_get(v, ioport_80, ioport_ed);
>  
>      nv->nv_ioport80 = ioport_80;
>      nv->nv_ioportED = ioport_ed;
> diff --git a/xen/arch/x86/hvm/vmx/vvmx.c b/xen/arch/x86/hvm/vmx/vvmx.c
> index e4f3a5fe4c71..4da3e6e90e6c 100644
> --- a/xen/arch/x86/hvm/vmx/vvmx.c
> +++ b/xen/arch/x86/hvm/vmx/vvmx.c
> @@ -554,7 +554,7 @@ unsigned long *_shadow_io_bitmap(struct vcpu *v)
>      port80 = bitmap[0x80 >> 3] & (1 << (0x80 & 0x7)) ? 1 : 0;
>      portED = bitmap[0xed >> 3] & (1 << (0xed & 0x7)) ? 1 : 0;
>  
> -    return nestedhvm_vcpu_iomap_get(port80, portED);
> +    return nestedhvm_vcpu_iomap_get(v, port80, portED);
>  }
>  
>  static void update_msrbitmap(struct vcpu *v, uint32_t shadow_ctrl)
> @@ -622,7 +622,7 @@ void nvmx_update_exec_control(struct vcpu *v, u32 host_cntrl)
>               * L1 VMM doesn't intercept IO instruction.
>               * Use host configuration and reset IO_BITMAP
>               */
> -            bitmap = hvm_io_bitmap;
> +            bitmap = v->domain->arch.hvm.io_bitmap;
>          }
>          else {
>              /* use IO bitmap */
> diff --git a/xen/arch/x86/include/asm/hvm/nestedhvm.h b/xen/arch/x86/include/asm/hvm/nestedhvm.h
> index ea2c1bc328c7..d691ccb07dd6 100644
> --- a/xen/arch/x86/include/asm/hvm/nestedhvm.h
> +++ b/xen/arch/x86/include/asm/hvm/nestedhvm.h
> @@ -50,7 +50,8 @@ int nestedhvm_hap_nested_page_fault(struct vcpu *v, paddr_t *L2_gpa,
>                                      struct npfec npfec);
>  
>  /* IO permission map */
> -unsigned long *nestedhvm_vcpu_iomap_get(bool ioport_80, bool ioport_ed);
> +unsigned long *nestedhvm_vcpu_iomap_get(struct vcpu *v,
> +                                        bool ioport_80, bool ioport_ed);
>  
>  /* Misc */
>  #define nestedhvm_paging_mode_hap(v) (!!nhvm_vmcx_hap_enabled(v))
> diff --git a/xen/arch/x86/include/asm/hvm/support.h b/xen/arch/x86/include/asm/hvm/support.h
> index 2a7ba36af06f..7e36d00cc188 100644
> --- a/xen/arch/x86/include/asm/hvm/support.h
> +++ b/xen/arch/x86/include/asm/hvm/support.h
> @@ -41,8 +41,6 @@ extern unsigned int opt_hvm_debug_level;
>  #define HVM_DBG_LOG(level, _f, _a...) do {} while (0)
>  #endif
>  
> -extern unsigned long hvm_io_bitmap[];
> -
>  enum hvm_translation_result {
>      HVMTRANS_okay,
>      HVMTRANS_bad_linear_to_gfn,
> diff --git a/xen/arch/x86/include/asm/iocap.h b/xen/arch/x86/include/asm/iocap.h
> index f948b7186e95..1083f6171cf7 100644
> --- a/xen/arch/x86/include/asm/iocap.h
> +++ b/xen/arch/x86/include/asm/iocap.h
> @@ -22,6 +22,8 @@
>  #define cache_flush_permitted(d) \
>      (has_arch_io_resources(d) || has_arch_pdevs(d))
>  
> +int ioports_setup_access(struct domain *d);
> +
>  static inline int ioports_permit_access(struct domain *d, unsigned long s,
>                                          unsigned long e)
>  {
> diff --git a/xen/arch/x86/ioport.c b/xen/arch/x86/ioport.c
> new file mode 100644
> index 000000000000..dbcd52d37a4f
> --- /dev/null
> +++ b/xen/arch/x86/ioport.c
> @@ -0,0 +1,163 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Guest I/O port address space configuration.
> + *
> + * Copyright 2025 Ford Motor Company
> + */
> +
> +#include <xen/domain.h>
> +#include <xen/param.h>
> +
> +#include <asm/amd.h>
> +#include <asm/acpi.h>
> +#include <asm/io-ports.h>
> +#include <asm/iocap.h>
> +#include <asm/pv/shim.h>
> +#include <asm/setup.h>
> +
> +static char __initdata opt_dom0_ioports_disable[200] = "";
> +string_param("dom0_ioports_disable", opt_dom0_ioports_disable);
> +
> +/*
> + * The I/O permission bitmap size.
> + * See: comment in nestedhvm_setup()
> + */
> +#define HVM_IOBITMAP_SIZE (3 * PAGE_SIZE)
> +
> +/* Hide user-defined I/O ports from the guest OS. */
> +static void process_dom0_ioports_disable(struct domain *dom0)
> +{
> +    unsigned long io_from, io_to;
> +    char *t, *s = opt_dom0_ioports_disable;
> +    const char *u;
> +
> +    if ( *s == '\0' )
> +        return;
> +
> +    while ( (t = strsep(&s, ",")) != NULL )
> +    {
> +        io_from = simple_strtoul(t, &u, 16);
> +        if ( u == t )
> +        {
> +        parse_error:
> +            printk("Invalid ioport range <%s> "
> +                   "in dom0_ioports_disable, skipping\n", t);
> +            continue;
> +        }
> +
> +        if ( *u == '\0' )
> +            io_to = io_from;
> +        else if ( *u == '-' )
> +            io_to = simple_strtoul(u + 1, &u, 16);
> +        else
> +            goto parse_error;
> +
> +        if ( (*u != '\0') || (io_to < io_from) || (io_to >= 65536) )
> +            goto parse_error;
> +
> +        printk("Disabling dom0 access to ioport range %04lx-%04lx\n",
> +            io_from, io_to);
> +
> +        if ( ioports_deny_access(dom0, io_from, io_to) != 0 )
> +            BUG();
> +    }
> +}
> +
> +/* Set the default IO Bitmap. */
> +int ioports_setup_access(struct domain *d)
> +{
> +    unsigned int i, offs;
> +    int rc;
> +
> +    if ( pv_shim )
> +        return 0;
> +
> +#ifdef CONFIG_HVM
> +    d->arch.hvm.io_bitmap = _xmalloc(HVM_IOBITMAP_SIZE, PAGE_SIZE);
> +    if ( d->arch.hvm.io_bitmap == NULL )
> +        return -ENOMEM;
> +
> +    memset(d->arch.hvm.io_bitmap, ~0, HVM_IOBITMAP_SIZE);
> +
> +    if ( !is_hardware_domain(d) )
> +    {
> +        /*
> +         * Allow direct access to the PC debug ports 0x80 and 0xed (they are
> +         * often used for I/O delays, but the vmexits simply slow things down).
> +         */
> +        if ( hvm_port80_allowed )
> +            __clear_bit(0x80, d->arch.hvm.io_bitmap);
> +
> +        __clear_bit(0xed, d->arch.hvm.io_bitmap);
> +
> +        return 0;
> +    }
> +#endif
> +
> +    /* The hardware domain is initially permitted full I/O capabilities. */
> +    rc = ioports_permit_access(d, 0, 0xFFFF);
> +
> +    /* Modify I/O port access permissions. */
> +
> +    for ( offs = 0, i = ISOLATE_LSB(i8259A_alias_mask) ?: 2;
> +          offs <= i8259A_alias_mask; offs += i )
> +    {
> +        if ( offs & ~i8259A_alias_mask )
> +            continue;
> +        /* Master Interrupt Controller (PIC). */
> +        rc |= ioports_deny_access(d, 0x20 + offs, 0x21 + offs);
> +        /* Slave Interrupt Controller (PIC). */
> +        rc |= ioports_deny_access(d, 0xA0 + offs, 0xA1 + offs);
> +    }
> +
> +    /* ELCR of both PICs. */
> +    rc |= ioports_deny_access(d, 0x4D0, 0x4D1);
> +
> +    /* Interval Timer (PIT). */
> +    for ( offs = 0, i = ISOLATE_LSB(pit_alias_mask) ?: 4;
> +          offs <= pit_alias_mask; offs += i )
> +        if ( !(offs & ~pit_alias_mask) )
> +            rc |= ioports_deny_access(d, PIT_CH0 + offs, PIT_MODE + offs);
> +
> +    /* PIT Channel 2 / PC Speaker Control. */
> +    rc |= ioports_deny_access(d, 0x61, 0x61);
> +
> +    /* INIT# and alternative A20M# control. */
> +    rc |= ioports_deny_access(d, 0x92, 0x92);
> +
> +    /* IGNNE# control. */
> +    rc |= ioports_deny_access(d, 0xF0, 0xF0);
> +
> +    /* ACPI PM Timer. */
> +    if ( pmtmr_ioport )
> +        rc |= ioports_deny_access(d, pmtmr_ioport, pmtmr_ioport + 3);
> +
> +    /* Reset control. */
> +    rc |= ioports_deny_access(d, 0xCF9, 0xCF9);
> +
> +    /* PCI configuration space (NB. 0xCF8 has special treatment). */
> +    rc |= ioports_deny_access(d, 0xCFC, 0xCFF);
> +
> +#ifdef CONFIG_HVM
> +    if ( is_hvm_domain(d) )
> +    {
> +        /* ISA DMA controller, channels 0-3 (incl possible aliases). */
> +        rc |= ioports_deny_access(d, 0x00, 0x1F);
> +        /* ISA DMA controller, page registers (incl various reserved ones). */
> +        rc |= ioports_deny_access(d, 0x80 + !!hvm_port80_allowed, 0x8F);
> +        /* ISA DMA controller, channels 4-7 (incl usual aliases). */
> +        rc |= ioports_deny_access(d, 0xC0, 0xDF);
> +
> +        /* HVM debug console IO port. */
> +        rc |= ioports_deny_access(d, XEN_HVM_DEBUGCONS_IOPORT,
> +                                  XEN_HVM_DEBUGCONS_IOPORT);
> +        if ( amd_acpi_c1e_quirk )
> +            rc |= ioports_deny_access(d, acpi_smi_cmd, acpi_smi_cmd);
> +    }
> +#endif
> +
> +    /* Command-line I/O ranges. */
> +    process_dom0_ioports_disable(d);
> +
> +    return rc;
> +}
> diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
> index 21158ce1812e..2b8b4d869ee7 100644
> --- a/xen/arch/x86/pv/dom0_build.c
> +++ b/xen/arch/x86/pv/dom0_build.c
> @@ -17,6 +17,7 @@
>  #include <asm/bootinfo.h>
>  #include <asm/bzimage.h>
>  #include <asm/dom0_build.h>
> +#include <asm/iocap.h>
>  #include <asm/guest.h>
>  #include <asm/page.h>
>  #include <asm/pv/mm.h>
> @@ -1033,6 +1034,9 @@ static int __init dom0_construct(const struct boot_domain *bd)
>      if ( test_bit(XENFEAT_supervisor_mode_kernel, parms.f_required) )
>          panic("Dom0 requires supervisor-mode execution\n");
>  
> +    rc = ioports_setup_access(d);
> +    BUG_ON(rc != 0);
> +
>      rc = dom0_setup_permissions(d);
>      BUG_ON(rc != 0);
>  
> diff --git a/xen/common/emul/vuart/ns16x50.c b/xen/common/emul/vuart/ns16x50.c
> index 5c1be854b544..8860f25ffdeb 100644
> --- a/xen/common/emul/vuart/ns16x50.c
> +++ b/xen/common/emul/vuart/ns16x50.c
> @@ -780,9 +780,20 @@ static int ns16x50_init(void *arg)
>      struct vuart_ns16x50 *vdev = arg;
>      const struct vuart_info *info = vdev->info;
>      struct domain *d = vdev->owner;
> +    int rc;
>  
>      ASSERT(vdev);
>  
> +    /* Disallow sharing physical I/O port */
> +    rc = ioports_deny_access(d, info->base_addr,
> +                             info->base_addr + info->size - 1);

I would be tempted to move ioports_deny_access to hvm_domain_initialise
before vuart_init


> +    if ( rc )
> +    {
> +        ns16x50_err(info, " virtual I/O port range [0x%04lx"PRIx64"..0x%04lx"PRIx64"]: conflict w/ physical range\n",
> +                    info->base_addr, info->base_addr + info->size - 1);

0x%04lx"PRIx64 seems wrong


> +        return rc;
> +    }
> +
>      /* NB: report 115200 baud rate. */
>      vdev->regs[NS16X50_REGS_NUM + UART_DLL] = divisor & 0xff;
>      vdev->regs[NS16X50_REGS_NUM + UART_DLM] = (divisor >> 8) & 0xff;
> -- 
> 2.51.0
> 


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 21:46:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 21:46:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1102244.1454942 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us6vd-00024r-QP; Fri, 29 Aug 2025 21:46:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1102244.1454942; Fri, 29 Aug 2025 21:46: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 1us6vd-00024k-Nl; Fri, 29 Aug 2025 21:46:37 +0000
Received: by outflank-mailman (input) for mailman id 1102244;
 Fri, 29 Aug 2025 21:46:36 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=7zkx=3J=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1us6vc-00024e-A2
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 21:46:36 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org
 [2600:3c0a:e001:78e:0:1991:8:25])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a0baf28b-8521-11f0-8dd7-1b34d833f44b;
 Fri, 29 Aug 2025 23:46:34 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 4057B44215;
 Fri, 29 Aug 2025 21:46:32 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id D640CC4CEF0;
 Fri, 29 Aug 2025 21:46:30 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a0baf28b-8521-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1756503992;
	bh=PjkMEGi1H+4ki7FX9kIWFIQKDzxdvWZKsyBMMQFYer4=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=sLdqBSCqzU7mXTpX5Azvhgbyul64sCDKmbXl60EZgOEyEAw7JnqIPLkNp9EN4cD4k
	 c+XHj+/Mn4c+bVGOssGQavJTI5eCECyn8JReDmV9AWEy/Uh4Fke43C1tiIQd+i+guk
	 o0AJpz6P4GNScjJLPJ9T51JWVmCelGAlEaRPFOjW4M04QosQFBjNcroDH4j4Z/2101
	 zeBqwddYkRimF+JXfwxtFVTV839HjXnBvyJmA+zBKnR/VrL8gYxuHZOJSCHRecTJup
	 bUT3WYap0kxWbDHj964IhtMsuDFBW5nUHYNC+LfCozCKJjDr9+Ckmuv0mYdVkwtARN
	 wwxxlB3USMtww==
Date: Fri, 29 Aug 2025 14:46:29 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: dmukhin@xen.org
cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, 
    anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, 
    michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, 
    dmukhin@ford.com
Subject: Re: [PATCH v5 14/15] xen/domain: allocate d->irq_caps before
 arch-specific initialization
In-Reply-To: <20250828235409.2835815-15-dmukhin@ford.com>
Message-ID: <alpine.DEB.2.22.394.2508291445300.341243@ubuntu-linux-20-04-desktop>
References: <20250828235409.2835815-1-dmukhin@ford.com> <20250828235409.2835815-15-dmukhin@ford.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 28 Aug 2025, dmukhin@xen.org wrote:
> From: Denis Mukhin <dmukhin@ford.com> 
> 
> Make sure that NS16550 emulator does not share virtual device IRQ with the
> physical one. This is needed for enabling NS16550 emulator for PVH hwdom
> (dom0).
> 
> To do that, move per-domain interrupt rangeset allocation before arch-specific
> code. Add irqs_setup_access() to setup the initial rangeset.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
> Changes since v4:
> - new patch
> - Link to original patch in v4: https://lore.kernel.org/xen-devel/20250731192130.3948419-4-dmukhin@ford.com/
> ---
>  xen/arch/x86/dom0_build.c       | 1 -
>  xen/arch/x86/hvm/dom0_build.c   | 7 +++++++
>  xen/arch/x86/include/asm/irq.h  | 2 ++
>  xen/arch/x86/irq.c              | 8 ++++++++
>  xen/arch/x86/pv/dom0_build.c    | 3 +++
>  xen/common/domain.c             | 8 ++++++--
>  xen/common/emul/vuart/ns16x50.c | 9 +++++++++
>  7 files changed, 35 insertions(+), 3 deletions(-)
> 
> diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
> index 26202b33345c..9dc87efbf3e8 100644
> --- a/xen/arch/x86/dom0_build.c
> +++ b/xen/arch/x86/dom0_build.c
> @@ -442,7 +442,6 @@ int __init dom0_setup_permissions(struct domain *d)
>  
>      rc |= iomem_permit_access(d, 0UL,
>                                PFN_DOWN(1UL << domain_max_paddr_bits(d)) - 1);
> -    rc |= irqs_permit_access(d, 1, nr_irqs_gsi - 1);
>  
>      /* Local APIC. */
>      if ( mp_lapic_addr != 0 )
> diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
> index 5551f9044836..245a42dec9aa 100644
> --- a/xen/arch/x86/hvm/dom0_build.c
> +++ b/xen/arch/x86/hvm/dom0_build.c
> @@ -1348,6 +1348,13 @@ int __init dom0_construct_pvh(const struct boot_domain *bd)
>           */
>          pvh_setup_mmcfg(d);
>  
> +        rc = irqs_setup_access(d);
> +        if ( rc )
> +        {
> +            printk("%pd unable to setup IRQ rangeset: %d\n", d, rc);
> +            return rc;
> +        }
> +
>          /*
>           * Setup permissions early so that calls to add MMIO regions to the
>           * p2m as part of vPCI setup don't fail due to permission checks.
> diff --git a/xen/arch/x86/include/asm/irq.h b/xen/arch/x86/include/asm/irq.h
> index 8c81f66434a8..8bffec3bbfee 100644
> --- a/xen/arch/x86/include/asm/irq.h
> +++ b/xen/arch/x86/include/asm/irq.h
> @@ -231,4 +231,6 @@ int allocate_and_map_gsi_pirq(struct domain *d, int index, int *pirq_p);
>  int allocate_and_map_msi_pirq(struct domain *d, int index, int *pirq_p,
>                                int type, struct msi_info *msi);
>  
> +int irqs_setup_access(struct domain *d);
> +
>  #endif /* _ASM_HW_IRQ_H */
> diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c
> index 556134f85aa0..079277be719d 100644
> --- a/xen/arch/x86/irq.c
> +++ b/xen/arch/x86/irq.c
> @@ -3046,3 +3046,11 @@ int allocate_and_map_msi_pirq(struct domain *d, int index, int *pirq_p,
>  
>      return ret;
>  }
> +
> +int irqs_setup_access(struct domain *d)
> +{
> +    if ( is_hardware_domain(d) )
> +        return irqs_permit_access(d, 1, nr_irqs_gsi - 1);
> +
> +    return 0;
> +}
> diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
> index 2b8b4d869ee7..1a092b802833 100644
> --- a/xen/arch/x86/pv/dom0_build.c
> +++ b/xen/arch/x86/pv/dom0_build.c
> @@ -1037,6 +1037,9 @@ static int __init dom0_construct(const struct boot_domain *bd)
>      rc = ioports_setup_access(d);
>      BUG_ON(rc != 0);
>  
> +    rc = irqs_setup_access(d);
> +    BUG_ON(rc != 0);
> +
>      rc = dom0_setup_permissions(d);
>      BUG_ON(rc != 0);
>  
> diff --git a/xen/common/domain.c b/xen/common/domain.c
> index 104e917f07e3..eb83e3198f37 100644
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -950,6 +950,11 @@ struct domain *domain_create(domid_t domid,
>      radix_tree_init(&d->pirq_tree);
>  #endif
>  
> +    err = -ENOMEM;
> +    d->irq_caps = rangeset_new(d, "Interrupts", 0);
> +    if ( !d->irq_caps )
> +        goto fail;
> +
>      if ( (err = arch_domain_create(d, config, flags)) != 0 )
>          goto fail;
>      init_status |= INIT_arch;
> @@ -959,8 +964,7 @@ struct domain *domain_create(domid_t domid,
>  
>      err = -ENOMEM;
>      d->iomem_caps = rangeset_new(d, "I/O Memory", RANGESETF_prettyprint_hex);
> -    d->irq_caps   = rangeset_new(d, "Interrupts", 0);
> -    if ( !d->iomem_caps || !d->irq_caps )
> +    if ( !d->iomem_caps )
>          goto fail;
>  
>      if ( (err = xsm_domain_create(XSM_HOOK, d, config->ssidref)) != 0 )
> diff --git a/xen/common/emul/vuart/ns16x50.c b/xen/common/emul/vuart/ns16x50.c
> index 8860f25ffdeb..aea38304b60c 100644
> --- a/xen/common/emul/vuart/ns16x50.c
> +++ b/xen/common/emul/vuart/ns16x50.c
> @@ -794,6 +794,15 @@ static int ns16x50_init(void *arg)
>          return rc;
>      }
>  
> +    /* Disallow sharing physical IRQ */
> +    rc = irq_deny_access(d, info->irq);
> +    if ( rc )
> +    {
> +        ns16x50_err(info, "virtual IRQ#%d: conflict w/ physical IRQ: %d\n",
> +                    info->irq, rc);
> +        return rc;
> +    }

Also this one I wonder if it could be in hvm_domain_initialise, it would
make more sense to keep the irq_deny_access there, compared to here
which is supposed to be a generic emulator


>      /* NB: report 115200 baud rate. */
>      vdev->regs[NS16X50_REGS_NUM + UART_DLL] = divisor & 0xff;
>      vdev->regs[NS16X50_REGS_NUM + UART_DLM] = (divisor >> 8) & 0xff;
> -- 
> 2.51.0
> 


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 22:06:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 22:06:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1102290.1454953 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us7Ey-0005DO-FN; Fri, 29 Aug 2025 22:06:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1102290.1454953; Fri, 29 Aug 2025 22:06: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 1us7Ey-0005DH-CX; Fri, 29 Aug 2025 22:06:36 +0000
Received: by outflank-mailman (input) for mailman id 1102290;
 Fri, 29 Aug 2025 22:06:35 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=7zkx=3J=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1us7Ex-0005DB-0s
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 22:06:35 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6bb7cb50-8524-11f0-8dd7-1b34d833f44b;
 Sat, 30 Aug 2025 00:06:32 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 509F660142;
 Fri, 29 Aug 2025 22:06:31 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id C9640C4CEF0;
 Fri, 29 Aug 2025 22:06:29 +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>
X-Inumbo-ID: 6bb7cb50-8524-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1756505191;
	bh=+ZITBaz80zBP/I3nrPSiWVN2dMrhtU8Ggq/EOgtRjfA=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=rHzVoTVchJkSSk956wPpBu2p9iYjZtDZUwQB7WvVcldvhRa7ISVzVIRz0om/yLFmG
	 BqHLXK4llrIT5zsMxXvRrnicVgrp6H3wh6gIgSKvMFQv3D2ydRRsK37Sb9SD2do5M6
	 kJGg3S+/lrhe24XvWCgGh8dhV0Qx6wefHRqB7E0iRb5jNzig7z3PrXPyirx+d7kRRy
	 /SdPX4Nkzkj5bHvRKXaO4C/gyzP7u3tXHT3NCzzATCAEdYmYFZWaeAsgeeM1ILCDzW
	 QH5OxO47DncoWa7oaQluD+9WfkA/aZV9F+ygXel9i/0Jp1woxO20hPNd/wlcQbcsJu
	 uQfO84xXdzzcw==
Date: Fri, 29 Aug 2025 15:06:27 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: dmkhn@proton.me
cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, 
    anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, 
    michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, 
    dmukhin@ford.com
Subject: Re: [PATCH v11] xen/console: introduce domain_console struct
In-Reply-To: <20250807005649.551704-1-dmukhin@ford.com>
Message-ID: <alpine.DEB.2.22.394.2508291506170.341243@ubuntu-linux-20-04-desktop>
References: <20250807005649.551704-1-dmukhin@ford.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 7 Aug 2025, dmkhn@proton.me wrote:
> From: Denis Mukhin <dmukhin@ford.com> 
> 
> Introduce domain_console for grouping data structures used for integrating
> domain's diagnostic console with Xen's console driver.
> 
> Group all pbuf-related data structures under domain_console. Rename the moved
> fields to plain .buf, .idx and .lock names, since all uses of the fields are
> touched.
> 
> Ensure accesses to domain_console pointer are valid in console_switch_input().
> 
> Bump the domain console buffer allocation size to 256. No extra symbol for the
> value since it is used only once during data structure declaration. All size
> checks use ARRAY_SIZE().
> 
> Allocate domain_console from the heap so that the parent domain struct size
> stays below PAGE_SIZE boundary to account for more console-related fields
> added in the future.
> 
> Finally, update the domain_console allocation and initialization code. Make
> sure domain_console is not allocated for system domains.
> 
> No functional change.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>

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


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 22:21:27 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 22:21:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1102311.1454962 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us7TG-00088o-L9; Fri, 29 Aug 2025 22:21:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1102311.1454962; Fri, 29 Aug 2025 22:21: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 1us7TG-00088h-IY; Fri, 29 Aug 2025 22:21:22 +0000
Received: by outflank-mailman (input) for mailman id 1102311;
 Fri, 29 Aug 2025 22:21:21 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=7zkx=3J=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1us7TF-00088b-HM
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 22:21:21 +0000
Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7b65b46e-8526-11f0-8dd7-1b34d833f44b;
 Sat, 30 Aug 2025 00:21:18 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id A823C4399D;
 Fri, 29 Aug 2025 22:21:16 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 45CD8C4CEF0;
 Fri, 29 Aug 2025 22:21: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>
X-Inumbo-ID: 7b65b46e-8526-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1756506076;
	bh=TQUxTM33UCETVGRvFCiO3PQQDxuqJgksyKo4X7L6qsU=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=cT5cyEsFzUQoL+Q0YydimX6OtY/lbzJbxYhQVa9WlC0CLBf0vTavwZ7+PtYezMuqu
	 cjH6hM1vG0ytVsWSV1on2mD37KuVGLgmL9VfcQ2Kk/jSTap+lrKAVhsWVJo2pCRECf
	 waTtNYzUNFVtCKKVgpVOI1Vp1daotNYEhQvfaeRt8siuFMoScnbzA0NyZUuQXgt2Z6
	 TqdsDgqtnH08awRfK6wABkx9NwuRe0Wx85EWGAuVyju3EdUUXSigi0al7IdQ/zyFyZ
	 SLIDwmaFFh2GNvfiyyDaGb4QkscSitOVE2ZQqGwdx8P/BLm0LhIuqEGJhuYR0MdF6+
	 Y29RGyCjU3Oew==
Date: Fri, 29 Aug 2025 15:21:13 -0700 (PDT)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: dmukhin@xen.org
cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, 
    anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, 
    michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org, 
    dmukhin@ford.com
Subject: Re: [PATCH v5 15/15] emul/ns16x50: implement IRQ emulation via
 vIOAPIC
In-Reply-To: <20250828235409.2835815-16-dmukhin@ford.com>
Message-ID: <alpine.DEB.2.22.394.2508291508330.341243@ubuntu-linux-20-04-desktop>
References: <20250828235409.2835815-1-dmukhin@ford.com> <20250828235409.2835815-16-dmukhin@ford.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 28 Aug 2025, dmukhin@xen.org wrote:
> From: Denis Mukhin <dmukhin@ford.com> 
> 
> PVH domains use vIOAPIC, not vPIC and NS16550 emulates ISA IRQs which cannot
> be asserted on vIOAPIC.

One option is to enable the vPIT for PVH domains when the NS16550
emulator is enabled. Would that resolve the problem? That would be a
simpler solution compared to adding IRQ_EMU because the IRQ_* logic is
already quite complex.

Alternatively...


> {map,unmap}_domain_emuirq_pirq() infrastructure is modified by adding new
> type of interrupt resources 'IRQ_EMU' which means 'emulated device IRQ'
> (similarly to IRQ_MSI_EMU).
> 
> This is necessary to for IOAPIC emulation code to skip IRQ->PIRQ mapping
> (vioapic_hwdom_map_gsi()) when guest OS unmasks vIOAPIC pin corresponding to
> virtual device's IRQ.
> 
> Also, hvm_gsi_eoi() is modified to trigger assertion in hvm_gsi_deassert()
> path for ISA IRQs.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
> Changes since v4:
> - dropped xl bits
> - cosmetic renames
> - fix hvm_gsi_eoi()
> - Link to v4: https://lore.kernel.org/xen-devel/20250731192130.3948419-8-dmukhin@ford.com/
> ---
>  xen/arch/x86/domain.c             |  2 +-
>  xen/arch/x86/hvm/vioapic.c        | 10 ++++++++++
>  xen/arch/x86/include/asm/irq.h    |  3 ++-
>  xen/arch/x86/irq.c                |  4 ++--
>  xen/arch/x86/physdev.c            |  8 ++++----
>  xen/common/emul/vuart/ns16x50.c   | 32 +++++++++++++++++++++++++++++--
>  xen/drivers/passthrough/x86/hvm.c | 13 ++++++++-----
>  7 files changed, 57 insertions(+), 15 deletions(-)
> 
> diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
> index 19fd86ce88d2..0815d0b31827 100644
> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -1048,7 +1048,7 @@ int arch_domain_soft_reset(struct domain *d)
>      write_lock(&d->event_lock);
>      for ( i = 0; i < d->nr_pirqs ; i++ )
>      {
> -        if ( domain_pirq_to_emuirq(d, i) != IRQ_UNBOUND )
> +        if ( domain_irq_to_emuirq(d, i) != IRQ_UNBOUND )
>          {
>              ret = unmap_domain_pirq_emuirq(d, i);
>              if ( ret )
> diff --git a/xen/arch/x86/hvm/vioapic.c b/xen/arch/x86/hvm/vioapic.c
> index 7c725f9e471f..fd073f6fba4b 100644
> --- a/xen/arch/x86/hvm/vioapic.c
> +++ b/xen/arch/x86/hvm/vioapic.c
> @@ -177,6 +177,16 @@ static int vioapic_hwdom_map_gsi(unsigned int gsi, unsigned int trig,
>  
>      ASSERT(is_hardware_domain(currd));
>  
> +    /*
> +     * Interrupt is claimed by one of the platform virtual devices (e.g.
> +     * NS16550); do nothing.
> +     */
> +    write_lock(&currd->event_lock);
> +    ret = domain_irq_to_emuirq(currd, gsi);
> +    write_unlock(&currd->event_lock);
> +    if ( ret != IRQ_UNBOUND )
> +        return 0;

..alternatively, we could have an add-hoc check here? Not very nice but
at least it would be very simple.

In other words, adding vPIT is preferable in my opinion but as a second
option I would consider an ad-hoc check. I would try to avoid adding
IRQ_EMU -- that should be the last resort in my view.


>      /* Interrupt has been unmasked, bind it now. */
>      ret = mp_register_gsi(gsi, trig, pol);
>      if ( ret == -EEXIST )
> diff --git a/xen/arch/x86/include/asm/irq.h b/xen/arch/x86/include/asm/irq.h
> index 8bffec3bbfee..3b24decb05e4 100644
> --- a/xen/arch/x86/include/asm/irq.h
> +++ b/xen/arch/x86/include/asm/irq.h
> @@ -212,7 +212,7 @@ void cleanup_domain_irq_mapping(struct domain *d);
>      __ret ? radix_tree_ptr_to_int(__ret) : 0;                   \
>  })
>  #define PIRQ_ALLOCATED (-1)
> -#define domain_pirq_to_emuirq(d, pirq) pirq_field(d, pirq,              \
> +#define domain_irq_to_emuirq(d, pirq) pirq_field(d, pirq,              \
>      arch.hvm.emuirq, IRQ_UNBOUND)
>  #define domain_emuirq_to_pirq(d, emuirq) ({                             \
>      void *__ret = radix_tree_lookup(&(d)->arch.hvm.emuirq_pirq, emuirq);\
> @@ -221,6 +221,7 @@ void cleanup_domain_irq_mapping(struct domain *d);
>  #define IRQ_UNBOUND (-1)
>  #define IRQ_PT      (-2)
>  #define IRQ_MSI_EMU (-3)
> +#define IRQ_EMU     (-4)
>  
>  bool cpu_has_pending_apic_eoi(void);
>  
> diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c
> index 079277be719d..7a8093cd3238 100644
> --- a/xen/arch/x86/irq.c
> +++ b/xen/arch/x86/irq.c
> @@ -2790,7 +2790,7 @@ int map_domain_emuirq_pirq(struct domain *d, int pirq, int emuirq)
>          return -EINVAL;
>      }
>  
> -    old_emuirq = domain_pirq_to_emuirq(d, pirq);
> +    old_emuirq = domain_irq_to_emuirq(d, pirq);
>      if ( emuirq != IRQ_PT )
>          old_pirq = domain_emuirq_to_pirq(d, emuirq);
>  
> @@ -2845,7 +2845,7 @@ int unmap_domain_pirq_emuirq(struct domain *d, int pirq)
>  
>      ASSERT(rw_is_write_locked(&d->event_lock));
>  
> -    emuirq = domain_pirq_to_emuirq(d, pirq);
> +    emuirq = domain_irq_to_emuirq(d, pirq);
>      if ( emuirq == IRQ_UNBOUND )
>      {
>          dprintk(XENLOG_G_ERR, "dom%d: pirq %d not mapped\n",
> diff --git a/xen/arch/x86/physdev.c b/xen/arch/x86/physdev.c
> index 4dfa1c019105..90a9e7d2f120 100644
> --- a/xen/arch/x86/physdev.c
> +++ b/xen/arch/x86/physdev.c
> @@ -145,7 +145,7 @@ int physdev_unmap_pirq(struct domain *d, int pirq)
>      if ( is_hvm_domain(d) && has_pirq(d) )
>      {
>          write_lock(&d->event_lock);
> -        if ( domain_pirq_to_emuirq(d, pirq) != IRQ_UNBOUND )
> +        if ( domain_irq_to_emuirq(d, pirq) != IRQ_UNBOUND )
>              ret = unmap_domain_pirq_emuirq(d, pirq);
>          write_unlock(&d->event_lock);
>          if ( d == current->domain || ret )
> @@ -191,10 +191,10 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>          if ( is_pv_domain(currd) || domain_pirq_to_irq(currd, eoi.irq) > 0 )
>              pirq_guest_eoi(pirq);
>          if ( is_hvm_domain(currd) &&
> -             domain_pirq_to_emuirq(currd, eoi.irq) > 0 )
> +             domain_irq_to_emuirq(currd, eoi.irq) > 0 )
>          {
>              struct hvm_irq *hvm_irq = hvm_domain_irq(currd);
> -            int gsi = domain_pirq_to_emuirq(currd, eoi.irq);
> +            int gsi = domain_irq_to_emuirq(currd, eoi.irq);
>  
>              /* if this is a level irq and count > 0, send another
>               * notification */ 
> @@ -267,7 +267,7 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
>          irq_status_query.flags = 0;
>          if ( is_hvm_domain(currd) &&
>               domain_pirq_to_irq(currd, irq) <= 0 &&
> -             domain_pirq_to_emuirq(currd, irq) == IRQ_UNBOUND )
> +             domain_irq_to_emuirq(currd, irq) == IRQ_UNBOUND )
>          {
>              ret = -EINVAL;
>              break;
> diff --git a/xen/common/emul/vuart/ns16x50.c b/xen/common/emul/vuart/ns16x50.c
> index aea38304b60c..1126b53c30df 100644
> --- a/xen/common/emul/vuart/ns16x50.c
> +++ b/xen/common/emul/vuart/ns16x50.c
> @@ -287,7 +287,9 @@ static void ns16x50_irq_assert(const struct vuart_ns16x50 *vdev)
>      const struct vuart_info *info = vdev->info;
>      int vector;
>  
> -    if ( has_vpic(d) ) /* HVM */
> +    if ( has_vioapic(d) && !has_vpic(d) ) /* PVH */
> +        vector = hvm_ioapic_assert(d, info->irq, false);
> +    else if ( has_vpic(d) ) /* HVM */
>          vector = hvm_isa_irq_assert(d, info->irq, vioapic_get_vector);
>      else
>          ASSERT_UNREACHABLE();
> @@ -300,7 +302,9 @@ static void ns16x50_irq_deassert(const struct vuart_ns16x50 *vdev)
>      struct domain *d = vdev->owner;
>      const struct vuart_info *info = vdev->info;
>  
> -    if ( has_vpic(d) ) /* HVM */
> +    if ( has_vioapic(d) && !has_vpic(d) ) /* PVH */
> +        hvm_ioapic_deassert(d, info->irq);
> +    else if ( has_vpic(d) ) /* HVM */
>          hvm_isa_irq_deassert(d, info->irq);
>      else
>          ASSERT_UNREACHABLE();
> @@ -803,6 +807,17 @@ static int ns16x50_init(void *arg)
>          return rc;
>      }
>  
> +    /* Claim virtual IRQ */
> +    write_lock(&d->event_lock);
> +    rc = map_domain_emuirq_pirq(d, info->irq, IRQ_EMU);
> +    write_unlock(&d->event_lock);
> +    if ( rc )
> +    {
> +        ns16x50_err(info, "virtual IRQ#%d: cannot claim: %d\n",
> +                    info->irq, rc);
> +        return rc;
> +    }
> +
>      /* NB: report 115200 baud rate. */
>      vdev->regs[NS16X50_REGS_NUM + UART_DLL] = divisor & 0xff;
>      vdev->regs[NS16X50_REGS_NUM + UART_DLM] = (divisor >> 8) & 0xff;
> @@ -822,9 +837,22 @@ static int ns16x50_init(void *arg)
>  static void cf_check ns16x50_deinit(void *arg)
>  {
>      struct vuart_ns16x50 *vdev = arg;
> +    const struct vuart_info *info;
> +    struct domain *d;
> +    int rc;
>  
>      ASSERT(vdev);
>  
> +    d = vdev->owner;
> +    info = vdev->info;
> +
> +    write_lock(&d->event_lock);
> +    rc = unmap_domain_pirq_emuirq(d, info->irq);
> +    write_unlock(&d->event_lock);
> +    if ( rc )
> +        ns16x50_err(vdev, "virtual IRQ#%d: cannot unclaim: %d\n",
> +                    info->irq, rc);
> +
>      spin_lock(&vdev->lock);
>      ns16x50_fifo_tx_flush(vdev);
>      spin_unlock(&vdev->lock);
> diff --git a/xen/drivers/passthrough/x86/hvm.c b/xen/drivers/passthrough/x86/hvm.c
> index a2ca7e0e570c..11711d20a7ea 100644
> --- a/xen/drivers/passthrough/x86/hvm.c
> +++ b/xen/drivers/passthrough/x86/hvm.c
> @@ -923,13 +923,16 @@ static void __hvm_dpci_eoi(struct domain *d,
>  static void hvm_gsi_eoi(struct domain *d, unsigned int gsi)
>  {
>      struct pirq *pirq = pirq_info(d, gsi);
> +    int rc;
> +
> +    /* Check if GSI is claimed by one of the virtual devices. */
> +    rc = domain_irq_to_emuirq(d, gsi);
> +    if ( rc != IRQ_UNBOUND )
> +        hvm_gsi_deassert(d, gsi);
>  
>      /* Check if GSI is actually mapped. */
> -    if ( !pirq_dpci(pirq) )
> -        return;
> -
> -    hvm_gsi_deassert(d, gsi);
> -    hvm_pirq_eoi(pirq);
> +    if ( pirq_dpci(pirq) )
> +        hvm_pirq_eoi(pirq);
>  }
>  
>  static int cf_check _hvm_dpci_isairq_eoi(
> -- 
> 2.51.0
> 


From xen-devel-bounces@lists.xenproject.org Fri Aug 29 23:21:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 23:21:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1102356.1454973 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us8Pa-0007e2-Sk; Fri, 29 Aug 2025 23:21:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1102356.1454973; Fri, 29 Aug 2025 23:21:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us8Pa-0007dr-Pu; Fri, 29 Aug 2025 23:21:38 +0000
Received: by outflank-mailman (input) for mailman id 1102356;
 Fri, 29 Aug 2025 23:21:38 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@xen.org>) id 1us8Pa-0007dk-13
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 23:21:38 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1us8PZ-00CpQI-09;
 Fri, 29 Aug 2025 23:21:37 +0000
Received: from [19.12.91.86] (helo=localhost)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1us8PY-008Jl6-2z;
 Fri, 29 Aug 2025 23:21: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:Message-ID:Date:
	Subject:Cc:To:From; bh=oUP3Zh6WJF9wCJ4RzCCVZ7uhkFMNLrwIDIA+g8r9eAI=; b=ZH3d+h
	Xu1Fc1CQUoc+05yjnmYPZ6/A5rvTr3sHpLVw/rgF7zP+ebgYfRunjbxx6RMZl2Zm0SngdNqARMk6n
	xwiZv8JRIhvvm1XHtXI57WblPCZ4W2lAPvtg010DVllj4s0vB1aE7IVIcifPh6XG3btMMb/kra74R
	P9JX14RxV+Q=;
From: dmukhin@xen.org
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 v17 0/4] xen/domain: domain ID allocation
Date: Fri, 29 Aug 2025 16:21:28 -0700
Message-ID: <20250829232132.3460081-1-dmukhin@ford.com>
X-Mailer: git-send-email 2.51.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Patch 1 introduces new domid_{alloc,free} calls.
Patch 2 is a prep change for domain ID allocator test.
Patch 3 introduces some basic testing for domain ID allocator.
Patch 4 adjusts create_dom0() messages (use %pd).

Link to v16: https://lore.kernel.org/xen-devel/20250812223024.2364749-1-dmukhin@ford.com/
Link to CI: https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelines/2012378054

Denis Mukhin (4):
  xen/domain: unify domain ID allocation
  tools/include: move xc_bitops.h to xen-tools/bitops.h
  tools/tests: introduce unit tests for domain ID allocator
  xen/domain: update create_dom0() messages

 .../xen-tools/bitops.h}                       | 16 +++-
 tools/libs/ctrl/xc_misc.c                     | 13 +--
 tools/libs/guest/xg_dom_elfloader.c           |  1 -
 tools/libs/guest/xg_dom_hvmloader.c           |  1 -
 tools/libs/guest/xg_private.h                 |  2 +-
 tools/libs/guest/xg_sr_common.h               |  2 -
 tools/tests/Makefile                          |  1 +
 tools/tests/domid/.gitignore                  |  2 +
 tools/tests/domid/Makefile                    | 88 +++++++++++++++++
 tools/tests/domid/harness.h                   | 54 +++++++++++
 tools/tests/domid/test-domid.c                | 95 +++++++++++++++++++
 xen/arch/arm/domain_build.c                   | 13 ++-
 xen/arch/x86/setup.c                          | 11 ++-
 xen/common/Makefile                           |  1 +
 xen/common/device-tree/dom0less-build.c       | 15 +--
 xen/common/domain.c                           |  2 +
 xen/common/domctl.c                           | 43 ++-------
 xen/common/domid.c                            | 95 +++++++++++++++++++
 xen/include/xen/domain.h                      |  3 +
 xen/lib/find-next-bit.c                       |  5 +
 20 files changed, 397 insertions(+), 66 deletions(-)
 rename tools/{libs/ctrl/xc_bitops.h => include/xen-tools/bitops.h} (84%)
 create mode 100644 tools/tests/domid/.gitignore
 create mode 100644 tools/tests/domid/Makefile
 create mode 100644 tools/tests/domid/harness.h
 create mode 100644 tools/tests/domid/test-domid.c
 create mode 100644 xen/common/domid.c

-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri Aug 29 23:21:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 23:21:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1102360.1455013 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us8Pf-00007E-SC; Fri, 29 Aug 2025 23:21:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1102360.1455013; Fri, 29 Aug 2025 23:21: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 1us8Pf-000072-Ob; Fri, 29 Aug 2025 23:21:43 +0000
Received: by outflank-mailman (input) for mailman id 1102360;
 Fri, 29 Aug 2025 23:21:42 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@xen.org>) id 1us8Pe-0008Ho-AC
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 23:21:42 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1us8Pd-00CpQs-1a;
 Fri, 29 Aug 2025 23:21:41 +0000
Received: from [19.12.91.86] (helo=localhost)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1us8Pd-008JlV-1J;
 Fri, 29 Aug 2025 23:21: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:References:
	In-Reply-To:Message-ID:Date:Subject:Cc:To:From;
	bh=0GmDSgvSiD58ApKqQGJhpDyJ1WxaAGOscgx5s5jqTIg=; b=IK5ZwYuPAia+W1B5rTGUKWuMeB
	q4UuwOAtAl9yeWTiNaFqDBSY7ybff8R0oZv+PphIe6imWQGquStVZJxuSQM2doNJOeYdo8ayC7reV
	PlvjGxjeer1PyaLcaPF2w1x1fSCVEcKQqijnh3pvWRel/uJkWeqfhr1Rtkw5BFjEYIsY=;
From: dmukhin@xen.org
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,
	Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
	Julien Grall <jgrall@amazon.com>
Subject: [PATCH v17 4/4] xen/domain: update create_dom0() messages
Date: Fri, 29 Aug 2025 16:21:32 -0700
Message-ID: <20250829232132.3460081-5-dmukhin@ford.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20250829232132.3460081-1-dmukhin@ford.com>
References: <20250829232132.3460081-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Denis Mukhin <dmukhin@ford.com> 

Use %pd for domain identification in error/panic messages in create_dom0().

No functional change.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
Reviewed-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Julien Grall <jgrall@amazon.com>
---
Changes since v16:
- n/a
---
 xen/arch/arm/domain_build.c | 6 +++---
 xen/arch/x86/setup.c        | 4 ++--
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index aca35b8961d6..670f634b8b0d 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -2084,14 +2084,14 @@ void __init create_dom0(void)
         panic("Error creating domain 0 (rc = %ld)\n", PTR_ERR(dom0));
 
     if ( llc_coloring_enabled && (rc = dom0_set_llc_colors(dom0)) )
-        panic("Error initializing LLC coloring for domain 0 (rc = %d)\n", rc);
+        panic("Error initializing LLC coloring for %pd (rc = %d)\n", dom0, rc);
 
     if ( vcpu_create(dom0, 0) == NULL )
-        panic("Error creating domain 0 vcpu0\n");
+        panic("Error creating %pdv0\n", dom0);
 
     rc = construct_dom0(dom0);
     if ( rc )
-        panic("Could not set up DOM0 guest OS (rc = %d)\n", rc);
+        panic("Could not set up %pd guest OS (rc = %d)\n", dom0, rc);
 
     set_xs_domain(dom0);
 }
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 78e24b78c5a6..da1fe8fdb6dd 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1075,7 +1075,7 @@ static struct domain *__init create_dom0(struct boot_info *bi)
 
         if ( (strlen(acpi_param) == 0) && acpi_disabled )
         {
-            printk("ACPI is disabled, notifying Domain 0 (acpi=off)\n");
+            printk("ACPI is disabled, notifying %pd (acpi=off)\n", d);
             safe_strcpy(acpi_param, "off");
         }
 
@@ -1090,7 +1090,7 @@ static struct domain *__init create_dom0(struct boot_info *bi)
 
     bd->d = d;
     if ( construct_dom0(bd) != 0 )
-        panic("Could not construct domain 0\n");
+        panic("Could not construct %pd\n", d);
 
     bd->cmdline = NULL;
     xfree(cmdline);
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri Aug 29 23:21:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 23:21:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1102357.1454983 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us8Pc-0007rY-3J; Fri, 29 Aug 2025 23:21:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1102357.1454983; Fri, 29 Aug 2025 23:21: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 1us8Pb-0007rR-W3; Fri, 29 Aug 2025 23:21:39 +0000
Received: by outflank-mailman (input) for mailman id 1102357;
 Fri, 29 Aug 2025 23:21:38 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@xen.org>) id 1us8Pa-0007dq-PK
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 23:21:38 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1us8Pa-00CpQO-0H;
 Fri, 29 Aug 2025 23:21:38 +0000
Received: from [19.12.91.86] (helo=localhost)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1us8PZ-008JlB-39;
 Fri, 29 Aug 2025 23:21: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:References:
	In-Reply-To:Message-ID:Date:Subject:Cc:To:From;
	bh=3UNF2+WIdTCXkwxI0MBT0wokOCC9edQY8jbVKD7OSYw=; b=XzOQH7HGX07CKgpjm3RSaukt7B
	MX6Vsmfrmo+1T4m519iYsjDMBbjtK9rXitG6uG3YfmE44HYeMK0OSi9MVnEKye1ggnhPndrsmtT9r
	5kzn3yZXjzLrvtVuvTnYjmXXKBRPqSg36SzH0HkFBmDEclU8TjeCOhUDEToFOCYxnHd8=;
From: dmukhin@xen.org
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,
	Julien Grall <jgrall@amazon.com>,
	Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Subject: [PATCH v17 1/4] xen/domain: unify domain ID allocation
Date: Fri, 29 Aug 2025 16:21:29 -0700
Message-ID: <20250829232132.3460081-2-dmukhin@ford.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20250829232132.3460081-1-dmukhin@ford.com>
References: <20250829232132.3460081-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Denis Mukhin <dmukhin@ford.com> 

Currently, there are two different domain ID allocation implementations:

  1) Sequential IDs allocation in dom0less Arm code based on max_init_domid;

  2) Sequential IDs allocation in XEN_DOMCTL_createdomain; does not use
     max_init_domid (both Arm and x86).

The domain ID allocation covers dom0 or late hwdom, predefined domains,
post-boot domains, excluding Xen system domains (domid >=
DOMID_FIRST_RESERVED).

It makes sense to have a common helper code for such task across architectures
(Arm and x86) and between dom0less / toolstack domU allocation.

Note, fixing dependency on max_init_domid is out of scope of this patch.

Wrap the domain ID allocation as an arch-independent function domid_alloc() in
new common/domid.c based on the bitmap.

Allocation algorithm:
- If an explicit domain ID is provided, verify its availability and use it if
  ID is not used;
- If DOMID_INVALID is provided, search the range [1..DOMID_FIRST_RESERVED-1],
  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 range.

Remove is_free_domid() helper as it is not needed now.

No functional change intended.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
Reviewed-by: Julien Grall <jgrall@amazon.com>
Reviewed-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
Changes since v16:
- n/a
- kept existing R-bs
---
 xen/arch/arm/domain_build.c             |  7 +-
 xen/arch/x86/setup.c                    |  7 +-
 xen/common/Makefile                     |  1 +
 xen/common/device-tree/dom0less-build.c | 15 ++--
 xen/common/domain.c                     |  2 +
 xen/common/domctl.c                     | 43 ++---------
 xen/common/domid.c                      | 95 +++++++++++++++++++++++++
 xen/include/xen/domain.h                |  3 +
 8 files changed, 126 insertions(+), 47 deletions(-)
 create mode 100644 xen/common/domid.c

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index a9e4153e3cf9..aca35b8961d6 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -2050,6 +2050,7 @@ void __init create_dom0(void)
         .grant_opts = XEN_DOMCTL_GRANT_version(opt_gnttab_max_version),
     };
     unsigned int flags = CDF_privileged | CDF_hardware;
+    domid_t domid;
     int rc;
 
     /* The vGIC for DOM0 is exactly emulating the hardware GIC */
@@ -2074,7 +2075,11 @@ void __init create_dom0(void)
     if ( !llc_coloring_enabled )
         flags |= CDF_directmap;
 
-    dom0 = domain_create(0, &dom0_cfg, flags);
+    domid = domid_alloc(0);
+    if ( domid == DOMID_INVALID )
+        panic("Error allocating domain ID 0\n");
+
+    dom0 = domain_create(domid, &dom0_cfg, flags);
     if ( IS_ERR(dom0) )
         panic("Error creating domain 0 (rc = %ld)\n", PTR_ERR(dom0));
 
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 6c81841426a4..78e24b78c5a6 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1038,8 +1038,11 @@ static struct domain *__init create_dom0(struct boot_info *bi)
     if ( iommu_enabled )
         dom0_cfg.flags |= XEN_DOMCTL_CDF_iommu;
 
-    /* Create initial domain.  Not d0 for pvshim. */
-    bd->domid = get_initial_domain_id();
+    /* Allocate initial domain ID.  Not d0 for pvshim. */
+    bd->domid = domid_alloc(get_initial_domain_id());
+    if ( bd->domid == DOMID_INVALID )
+        panic("Error allocating domain ID %u\n", get_initial_domain_id());
+
     d = domain_create(bd->domid, &dom0_cfg,
                       pv_shim ? 0 : CDF_privileged | CDF_hardware);
     if ( IS_ERR(d) )
diff --git a/xen/common/Makefile b/xen/common/Makefile
index c316957fcb36..0c7d0f5d46e1 100644
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -11,6 +11,7 @@ obj-$(filter-out $(CONFIG_X86),$(CONFIG_ACPI)) += device.o
 obj-$(CONFIG_DEVICE_TREE_PARSE) += device-tree/
 obj-$(CONFIG_IOREQ_SERVER) += dm.o
 obj-y += domain.o
+obj-y += domid.o
 obj-y += event_2l.o
 obj-y += event_channel.o
 obj-$(CONFIG_EVTCHN_FIFO) += event_fifo.o
diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tree/dom0less-build.c
index badc227031eb..8ef5ae9c0912 100644
--- a/xen/common/device-tree/dom0less-build.c
+++ b/xen/common/device-tree/dom0less-build.c
@@ -834,6 +834,7 @@ void __init create_domUs(void)
     {
         struct kernel_info ki = KERNEL_INFO_INIT;
         int rc = parse_dom0less_node(node, &ki.bd);
+        domid_t domid;
 
         if ( rc == -ENOENT )
             continue;
@@ -843,13 +844,13 @@ void __init create_domUs(void)
         if ( (max_init_domid + 1) >= DOMID_FIRST_RESERVED )
             panic("No more domain IDs available\n");
 
-        /*
-         * The variable max_init_domid is initialized with zero, so here it's
-         * very important to use the pre-increment operator to call
-         * domain_create() with a domid > 0. (domid == 0 is reserved for Dom0)
-         */
-        ki.bd.d = domain_create(++max_init_domid,
-                                &ki.bd.create_cfg, ki.bd.create_flags);
+        domid = domid_alloc(DOMID_INVALID);
+        if ( domid == DOMID_INVALID )
+            panic("Error allocating ID for domain %s\n", dt_node_name(node));
+
+        max_init_domid = max(max_init_domid, domid);
+
+        ki.bd.d = domain_create(domid, &ki.bd.create_cfg, ki.bd.create_flags);
         if ( IS_ERR(ki.bd.d) )
             panic("Error creating domain %s (rc = %ld)\n",
                   dt_node_name(node), PTR_ERR(ki.bd.d));
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 104e917f07e3..775c33928585 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -692,6 +692,8 @@ static void _domain_destroy(struct domain *d)
 
     lock_profile_deregister_struct(LOCKPROF_TYPE_PERDOM, d);
 
+    domid_free(d->domain_id);
+
     free_domain_struct(d);
 }
 
diff --git a/xen/common/domctl.c b/xen/common/domctl.c
index f2a7caaf853c..71e712c1f316 100644
--- a/xen/common/domctl.c
+++ b/xen/common/domctl.c
@@ -51,20 +51,6 @@ static int xenctl_bitmap_to_nodemask(nodemask_t *nodemask,
                                    MAX_NUMNODES);
 }
 
-static inline int is_free_domid(domid_t dom)
-{
-    struct domain *d;
-
-    if ( dom >= DOMID_FIRST_RESERVED )
-        return 0;
-
-    if ( (d = rcu_lock_domain_by_id(dom)) == NULL )
-        return 1;
-
-    rcu_unlock_domain(d);
-    return 0;
-}
-
 void getdomaininfo(struct domain *d, struct xen_domctl_getdomaininfo *info)
 {
     struct vcpu *v;
@@ -423,36 +409,19 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
 
     case XEN_DOMCTL_createdomain:
     {
-        domid_t        dom;
-        static domid_t rover = 0;
+        /* NB: ID#0 is reserved, find the first suitable ID instead. */
+        domid_t domid = domid_alloc(op->domain ?: DOMID_INVALID);
 
-        dom = op->domain;
-        if ( (dom > 0) && (dom < DOMID_FIRST_RESERVED) )
+        if ( domid == DOMID_INVALID )
         {
             ret = -EEXIST;
-            if ( !is_free_domid(dom) )
-                break;
-        }
-        else
-        {
-            for ( dom = rover + 1; dom != rover; dom++ )
-            {
-                if ( dom == DOMID_FIRST_RESERVED )
-                    dom = 1;
-                if ( is_free_domid(dom) )
-                    break;
-            }
-
-            ret = -ENOMEM;
-            if ( dom == rover )
-                break;
-
-            rover = dom;
+            break;
         }
 
-        d = domain_create(dom, &op->u.createdomain, false);
+        d = domain_create(domid, &op->u.createdomain, false);
         if ( IS_ERR(d) )
         {
+            domid_free(domid);
             ret = PTR_ERR(d);
             d = NULL;
             break;
diff --git a/xen/common/domid.c b/xen/common/domid.c
new file mode 100644
index 000000000000..2387ddb08300
--- /dev/null
+++ b/xen/common/domid.c
@@ -0,0 +1,95 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Domain ID allocator.
+ *
+ * Covers dom0 or late hwdom, predefined domains, post-boot domains.
+ * Excludes system domains (ID >= DOMID_FIRST_RESERVED).
+ *
+ * Copyright 2025 Ford Motor Company
+ */
+
+#include <xen/domain.h>
+
+static DEFINE_SPINLOCK(domid_lock);
+static DECLARE_BITMAP(domid_bitmap, DOMID_FIRST_RESERVED);
+
+/*
+ * Allocate domain ID.
+ *
+ * @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,
+ *   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
+ *   range.
+ * @return Valid domain ID in case of successful allocation,
+ *         DOMID_INVALID - otherwise.
+ */
+domid_t domid_alloc(domid_t domid)
+{
+    static domid_t domid_last;
+
+    spin_lock(&domid_lock);
+
+    /* Exact match. */
+    if ( domid < DOMID_FIRST_RESERVED )
+    {
+        if ( __test_and_set_bit(domid, domid_bitmap) )
+            domid = DOMID_INVALID;
+    }
+    /*
+     * Exhaustive search.
+     *
+     * Domain ID#0 is reserved for the first boot domain (e.g. control domain)
+     * and excluded from allocation.
+     */
+    else
+    {
+        domid_t bound = DOMID_FIRST_RESERVED;
+
+        domid = find_next_zero_bit(domid_bitmap, bound, domid_last + 1);
+        if ( domid >= bound && domid_last != 0 )
+        {
+            bound = domid_last + 1;
+            domid = find_next_zero_bit(domid_bitmap, bound, 1);
+        }
+
+        ASSERT(domid <= DOMID_FIRST_RESERVED);
+        if ( domid < bound )
+        {
+            __set_bit(domid, domid_bitmap);
+            domid_last = domid;
+        }
+        else
+            domid = DOMID_INVALID;
+    }
+
+    spin_unlock(&domid_lock);
+
+    return domid;
+}
+
+void domid_free(domid_t domid)
+{
+    int rc;
+
+    ASSERT(domid <= DOMID_FIRST_RESERVED);
+
+    spin_lock(&domid_lock);
+    rc = __test_and_clear_bit(domid, domid_bitmap);
+    spin_unlock(&domid_lock);
+
+    ASSERT(rc);
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
index e10baf2615fd..8aab05ae93c8 100644
--- a/xen/include/xen/domain.h
+++ b/xen/include/xen/domain.h
@@ -38,6 +38,9 @@ void arch_get_domain_info(const struct domain *d,
 
 domid_t get_initial_domain_id(void);
 
+domid_t domid_alloc(domid_t domid);
+void domid_free(domid_t domid);
+
 /* CDF_* constant. Internal flags for domain creation. */
 /* Is this a privileged domain? */
 #define CDF_privileged           (1U << 0)
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri Aug 29 23:21:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 23:21:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1102358.1454993 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us8Pd-00085Y-Dy; Fri, 29 Aug 2025 23:21:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1102358.1454993; Fri, 29 Aug 2025 23: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 1us8Pd-00085R-Au; Fri, 29 Aug 2025 23:21:41 +0000
Received: by outflank-mailman (input) for mailman id 1102358;
 Fri, 29 Aug 2025 23:21:40 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@xen.org>) id 1us8Pc-0007yd-F7
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 23:21:40 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1us8Pb-00CpQV-09;
 Fri, 29 Aug 2025 23:21:39 +0000
Received: from [19.12.91.86] (helo=localhost)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1us8Pb-008JlN-03;
 Fri, 29 Aug 2025 23:21: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:References:
	In-Reply-To:Message-ID:Date:Subject:Cc:To:From;
	bh=SmK1a8qSk8xhhylhd/KkmU691XlhHEf3wjfBWdZ2Vac=; b=VORaCYDDKEOr8aqvkbCaL8DI9V
	3CSxIxWlVdTTHzO+94B5CoKAbhVOSKhWxtj/TE5T59TnlwDQHnKBw+oM6LGT4Px3bY97Awufgu0ig
	P4IeAoWrK1NruQJisYebUVAUWHsa8v0bYSDPH0RYAneOlyqkD3XOTu/a9ppX4+GyX0UQ=;
From: dmukhin@xen.org
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 v17 2/4] tools/include: move xc_bitops.h to xen-tools/bitops.h
Date: Fri, 29 Aug 2025 16:21:30 -0700
Message-ID: <20250829232132.3460081-3-dmukhin@ford.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20250829232132.3460081-1-dmukhin@ford.com>
References: <20250829232132.3460081-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Denis Mukhin <dmukhin@ford.com> 

Move xc_bitops.h to common tools location to be shared between
the toolstack and unit test code.

Adjust the guard in xen-tools/bitops.h

Correct the #include directives and comments referring to the old
xc_bitops.h in the toolstack code.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
Acked-by: Anthony PERARD <anthony.perard@vates.tech>
---
Changes since v16:
- dropped unneeded includes
- added Anthony's A-b
---
 .../ctrl/xc_bitops.h => include/xen-tools/bitops.h} |  6 +++---
 tools/libs/ctrl/xc_misc.c                           | 13 +++++++------
 tools/libs/guest/xg_dom_elfloader.c                 |  1 -
 tools/libs/guest/xg_dom_hvmloader.c                 |  1 -
 tools/libs/guest/xg_private.h                       |  2 +-
 tools/libs/guest/xg_sr_common.h                     |  2 --
 6 files changed, 11 insertions(+), 14 deletions(-)
 rename tools/{libs/ctrl/xc_bitops.h => include/xen-tools/bitops.h} (95%)

diff --git a/tools/libs/ctrl/xc_bitops.h b/tools/include/xen-tools/bitops.h
similarity index 95%
rename from tools/libs/ctrl/xc_bitops.h
rename to tools/include/xen-tools/bitops.h
index 4a776dc3a57f..681482f6759f 100644
--- a/tools/libs/ctrl/xc_bitops.h
+++ b/tools/include/xen-tools/bitops.h
@@ -1,5 +1,5 @@
-#ifndef XC_BITOPS_H
-#define XC_BITOPS_H 1
+#ifndef __XEN_TOOLS_BITOPS_H__
+#define __XEN_TOOLS_BITOPS_H__
 
 /* bitmap operations for single threaded access */
 
@@ -81,4 +81,4 @@ static inline void bitmap_or(void *_dst, const void *_other,
         dst[i] |= other[i];
 }
 
-#endif  /* XC_BITOPS_H */
+#endif  /* __XEN_TOOLS_BITOPS_H__ */
diff --git a/tools/libs/ctrl/xc_misc.c b/tools/libs/ctrl/xc_misc.c
index 33e87bac2868..10ddf85667a9 100644
--- a/tools/libs/ctrl/xc_misc.c
+++ b/tools/libs/ctrl/xc_misc.c
@@ -17,8 +17,8 @@
  * License along with this library; If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "xc_bitops.h"
 #include "xc_private.h"
+#include <xen-tools/bitops.h>
 #include <xen/hvm/hvm_op.h>
 
 int xc_get_max_cpus(xc_interface *xch)
@@ -94,11 +94,12 @@ xc_cpumap_t xc_cpumap_alloc(xc_interface *xch)
 }
 
 /*
- * xc_bitops.h has macros that do this as well - however they assume that
- * the bitmask is word aligned but xc_cpumap_t is only guaranteed to be
- * byte aligned and so we need byte versions for architectures which do
- * not support misaligned accesses (which is basically everyone
- * but x86, although even on x86 it can be inefficient).
+ * <xen-tools/bitops.h> has macros that do this as well - however they
+ * assume that the bitmask is word aligned but xc_cpumap_t is only
+ * guaranteed to be byte aligned and so we need byte versions for
+ * architectures which do not support misaligned accesses (which is
+ * basically everyone but x86, although even on x86 it can be
+ * inefficient).
  *
  * NOTE: The xc_bitops macros now use byte alignment.
  * TODO: Clean up the users of this interface.
diff --git a/tools/libs/guest/xg_dom_elfloader.c b/tools/libs/guest/xg_dom_elfloader.c
index f17930d98bf7..a55b5e8c3caf 100644
--- a/tools/libs/guest/xg_dom_elfloader.c
+++ b/tools/libs/guest/xg_dom_elfloader.c
@@ -26,7 +26,6 @@
 #include <inttypes.h>
 
 #include "xg_private.h"
-#include "xc_bitops.h"
 
 #define XEN_VER "xen-3.0"
 
diff --git a/tools/libs/guest/xg_dom_hvmloader.c b/tools/libs/guest/xg_dom_hvmloader.c
index 39e1e5f579a7..a98c7fe5d877 100644
--- a/tools/libs/guest/xg_dom_hvmloader.c
+++ b/tools/libs/guest/xg_dom_hvmloader.c
@@ -25,7 +25,6 @@
 #include <assert.h>
 
 #include "xg_private.h"
-#include "xc_bitops.h"
 
 /* ------------------------------------------------------------------------ */
 /* parse elf binary                                                         */
diff --git a/tools/libs/guest/xg_private.h b/tools/libs/guest/xg_private.h
index d73947094f2e..285229cf82a3 100644
--- a/tools/libs/guest/xg_private.h
+++ b/tools/libs/guest/xg_private.h
@@ -28,9 +28,9 @@
 #include <sys/stat.h>
 
 #include "xc_private.h"
-#include "xc_bitops.h"
 #include "xenguest.h"
 
+#include <xen-tools/bitops.h>
 #include <xen/memory.h>
 #include <xen/elfnote.h>
 #include <xen/libelf/libelf.h>
diff --git a/tools/libs/guest/xg_sr_common.h b/tools/libs/guest/xg_sr_common.h
index 2f058ee3a6ff..0e419c3a96a0 100644
--- a/tools/libs/guest/xg_sr_common.h
+++ b/tools/libs/guest/xg_sr_common.h
@@ -5,8 +5,6 @@
 
 #include "xg_private.h"
 #include "xg_save_restore.h"
-#include "xc_bitops.h"
-
 #include "xg_sr_stream_format.h"
 
 /* String representation of Domain Header types. */
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri Aug 29 23:21:47 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 23:21:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1102359.1455003 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us8Pe-0008Jo-Ki; Fri, 29 Aug 2025 23:21:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1102359.1455003; Fri, 29 Aug 2025 23:21: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 1us8Pe-0008Jf-H3; Fri, 29 Aug 2025 23:21:42 +0000
Received: by outflank-mailman (input) for mailman id 1102359;
 Fri, 29 Aug 2025 23:21:40 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@xen.org>) id 1us8Pc-00083c-TD
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 23:21:40 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1us8Pc-00CpQg-0v;
 Fri, 29 Aug 2025 23:21:40 +0000
Received: from [19.12.91.86] (helo=localhost)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1us8Pc-008JlR-0u;
 Fri, 29 Aug 2025 23:21: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:References:
	In-Reply-To:Message-ID:Date:Subject:Cc:To:From;
	bh=KyIZ62nEfvpAXg3s9P0rgyEI55mSOfVO5MC+DjzKkY8=; b=XYqt/vUepmINDP/mklyjXx5Us5
	nbsRowy4cPJNYvWSbppnXAtiGRM4uVWugQtMMsc2AhMwsg2BM5YVxk8HzO+3wsG2trJGN6jYx5Ri2
	kIEKx60yovmeUKd0Z0mHdQl35kH0cxRVvQXv/T6uJJwzJuoyD84uP3qbO2dnBlbxL2v0=;
From: dmukhin@xen.org
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 v17 3/4] tools/tests: introduce unit tests for domain ID allocator
Date: Fri, 29 Aug 2025 16:21:31 -0700
Message-ID: <20250829232132.3460081-4-dmukhin@ford.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20250829232132.3460081-1-dmukhin@ford.com>
References: <20250829232132.3460081-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Denis Mukhin <dmukhin@ford.com> 

Introduce some basic infrastructure for doing domain ID allocation unit tests,
and add a few tests that ensure correctness of the domain ID allocator.

Use <xen-tools/bitops.h> and xen/lib/find-next-bit.c in test hardness code.

Adjust find-next-bit.c to be compiled with __XEN_TOOLS__.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v16:
- used exit() in the test suite's verify()
- various fixes in the test Makefile
---
 tools/include/xen-tools/bitops.h | 10 ++++
 tools/tests/Makefile             |  1 +
 tools/tests/domid/.gitignore     |  2 +
 tools/tests/domid/Makefile       | 88 +++++++++++++++++++++++++++++
 tools/tests/domid/harness.h      | 54 ++++++++++++++++++
 tools/tests/domid/test-domid.c   | 95 ++++++++++++++++++++++++++++++++
 xen/lib/find-next-bit.c          |  5 ++
 7 files changed, 255 insertions(+)
 create mode 100644 tools/tests/domid/.gitignore
 create mode 100644 tools/tests/domid/Makefile
 create mode 100644 tools/tests/domid/harness.h
 create mode 100644 tools/tests/domid/test-domid.c

diff --git a/tools/include/xen-tools/bitops.h b/tools/include/xen-tools/bitops.h
index 681482f6759f..3b98fba6d74c 100644
--- a/tools/include/xen-tools/bitops.h
+++ b/tools/include/xen-tools/bitops.h
@@ -12,6 +12,16 @@
 #define BITS_PER_LONG 32
 #endif
 
+#define ffsl(x)       __builtin_ffsl(x)
+
+#define BIT_WORD(nr)  ((nr) / BITS_PER_LONG)
+
+#define BITS_TO_LONGS(bits) \
+    (((bits) + BITS_PER_LONG - 1) / BITS_PER_LONG)
+
+#define DECLARE_BITMAP(name, bits) \
+    unsigned long name[BITS_TO_LONGS(bits)]
+
 #define BITMAP_ENTRY(_nr,_bmap) ((_bmap))[(_nr) / 8]
 #define BITMAP_SHIFT(_nr) ((_nr) % 8)
 
diff --git a/tools/tests/Makefile b/tools/tests/Makefile
index 97ba2a13894d..ac5737364623 100644
--- a/tools/tests/Makefile
+++ b/tools/tests/Makefile
@@ -2,6 +2,7 @@ XEN_ROOT = $(CURDIR)/../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 SUBDIRS-y :=
+SUBDIRS-y += domid
 SUBDIRS-y += resource
 SUBDIRS-$(CONFIG_X86) += cpu-policy
 SUBDIRS-$(CONFIG_X86) += tsx
diff --git a/tools/tests/domid/.gitignore b/tools/tests/domid/.gitignore
new file mode 100644
index 000000000000..37d773103be4
--- /dev/null
+++ b/tools/tests/domid/.gitignore
@@ -0,0 +1,2 @@
+generated
+test-domid
diff --git a/tools/tests/domid/Makefile b/tools/tests/domid/Makefile
new file mode 100644
index 000000000000..22f1f15d11db
--- /dev/null
+++ b/tools/tests/domid/Makefile
@@ -0,0 +1,88 @@
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# Unit tests for domain ID allocator.
+#
+# Copyright 2025 Ford Motor Company
+
+XEN_ROOT=$(CURDIR)/../../..
+include $(XEN_ROOT)/tools/Rules.mk
+
+TESTS := test-domid
+
+define list-c-headers
+$(shell sed -n -E \
+    's/^[ \t]*# *include[ \t]*[<"]([^">]+)[">].*/\1/p' $(1) 2>/dev/null)
+endef
+
+# NB: $1 cannot be a list
+define emit-harness-nested-rule
+$(1): $(CURDIR)/harness.h
+	mkdir -p $$(@D);
+	ln -sf $$< $$@;
+
+endef
+
+define emit-harness-rules
+$(foreach x,$(2),$(call emit-harness-nested-rule,$(CURDIR)/generated/$(x)))
+$(1:.c=.o): $(addprefix $(CURDIR)/generated/,$(2))
+endef
+
+define emit-harness-deps
+$(if $(strip $(2)),$(call emit-harness-rules,$1,$2),)
+endef
+
+define vpath-with-harness-deps
+vpath $(1) $(2)
+$(call emit-harness-deps,$(1),$(call list-c-headers,$(2)$(1)))
+endef
+
+.PHONY: all
+all: $(TESTS)
+
+.PHONY: run
+run: $(TESTS)
+	set -e; $(foreach t,$(TESTS),./$(t);)
+
+.PHONY: clean
+clean:
+	$(RM) -r generated
+	$(RM) -- *.o $(TESTS) $(DEPS_RM)
+
+.PHONY: distclean
+distclean: clean
+	$(RM) -- *~
+
+.PHONY: install
+install: all
+	$(INSTALL_DIR) $(DESTDIR)$(LIBEXEC)/tests
+	$(INSTALL_PROG) test-domid $(DESTDIR)$(LIBEXEC)/tests
+
+.PHONY: uninstall
+uninstall:
+	$(RM) -- $(DESTDIR)$(LIBEXEC)/tests/test-domid
+
+CFLAGS += -D__XEN_TOOLS__
+# find-next-bit.c
+CFLAGS += '-DEXPORT_SYMBOL(x)=' \
+          -Dfind_first_bit \
+          -Dfind_first_zero_bit \
+          -Dfind_next_bit \
+          -Dfind_next_bit_le \
+          -Dfind_next_zero_bit_le
+CFLAGS += $(APPEND_CFLAGS)
+CFLAGS += $(CFLAGS_xeninclude)
+CFLAGS += -I./generated/
+
+LDFLAGS += $(APPEND_LDFLAGS)
+
+vpath find-next-bit.c $(XEN_ROOT)/xen/lib/
+
+# Point to the hypervisor code and generate test harness dependencies
+# on the fly, making it possible to compile parts of the hypervisor
+# within a mocked environment.
+$(eval $(call vpath-with-harness-deps,domid.c,$(XEN_ROOT)/xen/common/))
+
+test-domid: domid.o find-next-bit.o test-domid.o
+	$(CC) $^ -o $@ $(LDFLAGS)
+
+-include $(DEPS_INCLUDE)
diff --git a/tools/tests/domid/harness.h b/tools/tests/domid/harness.h
new file mode 100644
index 000000000000..17eb22a9a854
--- /dev/null
+++ b/tools/tests/domid/harness.h
@@ -0,0 +1,54 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Unit test harness for domain ID allocator.
+ *
+ * Copyright 2025 Ford Motor Company
+ */
+
+#ifndef _TEST_HARNESS_
+#define _TEST_HARNESS_
+
+#include <assert.h>
+#include <stdbool.h>
+#include <stdint.h>
+#include <stdio.h>
+
+#include <xen-tools/common-macros.h>
+#include <xen-tools/bitops.h>
+
+typedef bool spinlock_t;
+typedef uint16_t domid_t;
+
+extern domid_t domid_alloc(domid_t domid);
+extern void domid_free(domid_t domid);
+
+extern unsigned long find_next_zero_bit(const unsigned long *addr,
+                                        unsigned long size,
+                                        unsigned long offset);
+
+#define __test_and_set_bit(nr, addr)    test_and_set_bit(nr, addr)
+#define __test_and_clear_bit(nr, addr)  test_and_clear_bit(nr, addr)
+#define __set_bit(nr, addr)             set_bit(nr, addr)
+
+#define BUG_ON(x)                       assert(!(x))
+#define ASSERT(x)                       assert(x)
+
+#define DEFINE_SPINLOCK(l)              spinlock_t l
+#define spin_lock(l)                    (assert(!*(l)), *(l) = true)
+#define spin_unlock(l)                  (assert(*(l)), *(l) = false)
+
+#define printk                          printf
+
+#define DOMID_FIRST_RESERVED            (100)
+#define DOMID_INVALID                   (101)
+
+#endif /* _TEST_HARNESS_ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/tools/tests/domid/test-domid.c b/tools/tests/domid/test-domid.c
new file mode 100644
index 000000000000..5915c4699a5c
--- /dev/null
+++ b/tools/tests/domid/test-domid.c
@@ -0,0 +1,95 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Unit tests for domain ID allocator.
+ *
+ * Copyright 2025 Ford Motor Company
+ */
+
+#include <sysexits.h>
+
+#include "harness.h"
+
+#define verify(exp, fmt, args...) \
+while (!(exp)) { \
+    printf(fmt, ## args); \
+    exit(EX_SOFTWARE); \
+}
+
+/*
+ * Fail on the first error, since tests are dependent on each other.
+ */
+int main(int argc, char **argv)
+{
+    domid_t expected, allocated;
+
+    /* Test ID cannot be allocated twice. */
+    for ( expected = 0; expected < DOMID_FIRST_RESERVED; expected++ )
+    {
+        allocated = domid_alloc(expected);
+        verify(allocated == expected,
+               "TEST 1: expected %u allocated %u\n", expected, allocated);
+    }
+    for ( expected = 0; expected < DOMID_FIRST_RESERVED; expected++ )
+    {
+        allocated = domid_alloc(expected);
+        verify(allocated == DOMID_INVALID,
+               "TEST 2: expected %u allocated %u\n", DOMID_INVALID, allocated);
+    }
+
+    /* Ensure all IDs, including ID#0 are not allocated. */
+    for ( expected = 0; expected < DOMID_FIRST_RESERVED; expected++ )
+        domid_free(expected);
+
+    /*
+     * Test that that two consecutive calls of domid_alloc(DOMID_INVALID)
+     * will never return the same ID.
+     * NB: ID#0 is reserved and shall not be allocated by
+     * domid_alloc(DOMID_INVALID).
+     */
+    for ( expected = 1; expected < DOMID_FIRST_RESERVED; expected++ )
+    {
+        allocated = domid_alloc(DOMID_INVALID);
+        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);
+        verify(allocated == DOMID_INVALID,
+               "TEST 4: expected %u allocated %u\n", DOMID_INVALID, allocated);
+    }
+
+    /* Re-allocate first ID from [1..DOMID_FIRST_RESERVED/2]. */
+    for ( expected = 1; expected < DOMID_FIRST_RESERVED / 2; expected++ )
+        domid_free(expected);
+    for ( expected = 1; expected < DOMID_FIRST_RESERVED / 2; expected++ )
+    {
+        allocated = domid_alloc(DOMID_INVALID);
+        verify(allocated == expected,
+               "TEST 5: expected %u allocated %u\n", expected, allocated);
+    }
+
+    /* 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);
+    verify(allocated == expected,
+           "TEST 6: expected %u allocated %u\n", expected, allocated);
+
+    /* Allocate an invalid ID. */
+    expected = DOMID_INVALID;
+    allocated = domid_alloc(DOMID_FIRST_RESERVED);
+    verify(allocated == expected,
+           "TEST 7: expected %u allocated %u\n", expected, allocated);
+
+    return 0;
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff --git a/xen/lib/find-next-bit.c b/xen/lib/find-next-bit.c
index 9b8d7814f20c..539c7f2022b0 100644
--- a/xen/lib/find-next-bit.c
+++ b/xen/lib/find-next-bit.c
@@ -8,8 +8,13 @@
  * as published by the Free Software Foundation; either version
  * 2 of the License, or (at your option) any later version.
  */
+
+#ifdef __XEN_TOOLS__
+#include <xen-tools/bitops.h>
+#else
 #include <xen/bitops.h>
 #include <xen/byteorder.h>
+#endif
 
 #define __ffs(x) (ffsl(x) - 1)
 #define ffz(x) __ffs(~(x))
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri Aug 29 23:32:39 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 29 Aug 2025 23:32:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1102416.1455023 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1us8a9-0003HI-PQ; Fri, 29 Aug 2025 23:32:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1102416.1455023; Fri, 29 Aug 2025 23:32: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 1us8a9-0003HB-Mc; Fri, 29 Aug 2025 23:32:33 +0000
Received: by outflank-mailman (input) for mailman id 1102416;
 Fri, 29 Aug 2025 23:32:32 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <dmukhin@xen.org>) id 1us8a8-0003H5-E5
 for xen-devel@lists.xenproject.org; Fri, 29 Aug 2025 23:32:32 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1us8a4-00Cpeg-1Q;
 Fri, 29 Aug 2025 23:32:28 +0000
Received: from [19.12.91.86] (helo=localhost)
 by xenbits.xenproject.org with esmtpsa (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96)
 (envelope-from <dmukhin@xen.org>) id 1us8a4-008KTD-16;
 Fri, 29 Aug 2025 23:32: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>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org;
	s=20200302mail; h=In-Reply-To:Content-Type:MIME-Version:References:Message-ID
	:Subject:Cc:To:Date:From; bh=7XVWKj+YHZljnd+likF6sai6bysi1RJmXfdyZDTolsA=; b=
	eloVgpiYcpoc9Devxlg5zyWyOBxLGfq2Kg2Hts4oOOl0NTYv1DlmALHdpRsKgn6eR5YnZN65fHz0m
	wrvL6ZXX7ZXDl/Uo2KpQSlbiPlY53LrcFSW6vwo+V0f5+z+bHVyp8VkvW6j8OZBEg7e8xgzq4Y4D2
	/iIDYC9TzTvPUDag0=;
From: dmukhin@xen.org
Date: Fri, 29 Aug 2025 16:32:27 -0700
To: Julien Grall <julien@xen.org>
Cc: dmkhn@proton.me, xen-devel@lists.xenproject.org,
	andrew.cooper3@citrix.com, anthony.perard@vates.tech,
	jbeulich@suse.com, michal.orzel@amd.com, roger.pau@citrix.com,
	sstabellini@kernel.org, dmukhin@ford.com,
	Julien Grall <jgrall@amazon.com>,
	Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Subject: Re: [PATCH v16 1/4] xen/domain: unify domain ID allocation
Message-ID: <aLI4i6b4Rj6dxSgN@kraken>
References: <20250812223024.2364749-1-dmukhin@ford.com>
 <20250812223024.2364749-2-dmukhin@ford.com>
 <hlQvT3yzXwHz2dJDxz53PkSVeYE749juFbdANDoY5-sdMFnB1DoFoznSNKcn9avAneT3IersSiDICENwHhosHg==@protonmail.internalid>
 <304cffd8-498d-447f-a8b0-cda694393ec8@xen.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <304cffd8-498d-447f-a8b0-cda694393ec8@xen.org>

On Wed, Aug 20, 2025 at 10:33:16PM +0100, Julien Grall wrote:
> Hi Denis,
> 
> On 12/08/2025 23:30, dmkhn@proton.me wrote:
> > From: Denis Mukhin <dmukhin@ford.com>
> >
> > Currently, there are two different domain ID allocation implementations:
> >
> >    1) Sequential IDs allocation in dom0less Arm code based on max_init_domid;
> >
> >    2) Sequential IDs allocation in XEN_DOMCTL_createdomain; does not use
> >       max_init_domid (both Arm and x86).
> >
> > The domain ID allocation covers dom0 or late hwdom, predefined domains,
> > post-boot domains, excluding Xen system domains (domid >=
> > DOMID_FIRST_RESERVED).
> >
> > It makes sense to have a common helper code for such task across architectures
> > (Arm and x86) and between dom0less / toolstack domU allocation.
> >
> > Note, fixing dependency on max_init_domid is out of scope of this patch.
> >
> > Wrap the domain ID allocation as an arch-independent function domid_alloc() in
> > new common/domid.c based on the bitmap.
> >
> > Allocation algorithm:
> > - If an explicit domain ID is provided, verify its availability and use it if
> >    ID is not used;
> > - If DOMID_INVALID is provided, search the range [1..DOMID_FIRST_RESERVED-1],
> >    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 range.
> >
> > Remove is_free_domid() helper as it is not needed now.
> >
> > No functional change intended.
> >
> > Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> > Reviewed-by: Julien Grall <jgrall@amazon.com>
>  > Reviewed-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
>  > ---> Changes since v15:
> > - fixup for check after the first pass in the bitarray in domid_alloc()
> 
> This was a good catch from Jan. Has a unit-test been added for this issue?

So I looked into how to plumb the test.
The boundary conditions tests are there for IDs: 0, DOMID_FIRST_RESERVED-1,
DOMID_FIRST_RESERVED.

But to actually check that 

        domid_t bound = DOMID_FIRST_RESERVED;

        domid = find_next_zero_bit(domid_bitmap, bound, domid_last + 1);
        if ( domid >= bound ...

I need to write a test harness for bit manipulation and it is a project on its
own to make hypervisor's bitops compiled for the host...

> 
> Anyway, my reviewed-by holds.
> 
> Cheers,
> 
> --
> Julien Grall
> 


From xen-devel-bounces@lists.xenproject.org Sat Aug 30 10:10:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 30 Aug 2025 10:10:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1102786.1455033 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1usIXC-0004z9-DA; Sat, 30 Aug 2025 10:10:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1102786.1455033; Sat, 30 Aug 2025 10:10: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 1usIXC-0004z1-88; Sat, 30 Aug 2025 10:10:10 +0000
Received: by outflank-mailman (input) for mailman id 1102786;
 Sat, 30 Aug 2025 10:10:09 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=IC44=3K=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1usIXA-0004yv-UT
 for xen-devel@lists.xenproject.org; Sat, 30 Aug 2025 10:10:09 +0000
Received: from mail-lf1-x136.google.com (mail-lf1-x136.google.com
 [2a00:1450:4864:20::136])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8112f494-8589-11f0-8adc-4578a1afcccb;
 Sat, 30 Aug 2025 12:10:07 +0200 (CEST)
Received: by mail-lf1-x136.google.com with SMTP id
 2adb3069b0e04-55f48cb7db9so2719048e87.3
 for <xen-devel@lists.xenproject.org>; Sat, 30 Aug 2025 03:10: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>
X-Inumbo-ID: 8112f494-8589-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756548607; x=1757153407; 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=rdWvBlPzDTISq2OilfBzTXmKc6jerzQ2dZixXAtq0cI=;
        b=Yy13VEiD3CX3n1CVNlqfDAUPeUygsJuA+0yeDhEP8Hsx8c/3crSUZ5v7I43SK2FPpJ
         P7zMW5MU8mTQEsTJerUUrw8v0pQF9d8y1CDqNF+l+aiN/UA8GbycAPbt1gmAkFKqp5B6
         0zmKKRhDB100VqhWijpW8w6Ivyc1sNB27u7htSuFI3c1DSWDsjQCGE8q/874xybqJXgB
         axAXR2pgBNCBNSQBFr+VijMY2i/lMAR8M9S+AbgXy5Mv2NJr9EwwJxhnQMOYkt4uiIjK
         wNws4Cu1dgS0FEz+A6xo/hf4t6BtjGZXK56yRCGOZG/UzbcVzph0eGydsowyR1HY/0cJ
         2Crw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756548607; x=1757153407;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=rdWvBlPzDTISq2OilfBzTXmKc6jerzQ2dZixXAtq0cI=;
        b=rBfrBtjMRGp5ozFqakgCDJEtjq5zgspaHSumKtxknand1eixK5aVzxKzng0Uv3uPY9
         hgd6wCGn5ghDNBQAzYCHcisyH58FxXVLtzIe7g3NnWYqUgQPeNu4iXmZC4iguacWkgbW
         xLqtODG1YS8sJtIX/sAEu6mEXodjzQyQDljXq/ziBV/oGPnuqNxh19eHf/MUSmlC5r9p
         OiSae+ygnEvYaIVlo4catKqiBC28oz6gZq2frudExZJsxq+rXlPslnPt90aO1NgI1E8O
         I6C5b0lpzbqAgSNukfzi377NlMcb2SGz+mL8IPVhRSXP5z1oOCCzyXq4HkiqrlJ/N3n6
         7TfA==
X-Gm-Message-State: AOJu0Ywr4l9kHrw1ec/Huz8VcMI0y5c9OKXMrb3rzQ3X8O0tBq6CvOxl
	8I8p1WBmnZ7iVB2HHlZg8VoDzpurUS790MBcf37h+Ulfz20ZkrfRFhLUARZopscaaTnk6tSJ8Q+
	6X34wQvvA4vcC/SJpIm7mvuKyE7Grq+yNMs54
X-Gm-Gg: ASbGnctpxtLiBBSj2v23PERYKrjeWSHzKHOBuVQaFcF572boexmD/e/UrTqmVw7hrC6
	Txl1PWgLM48Gan/J89YvPZckHVmiAx6Pqy9OqdTw0t2PXruIaHRROnoafpZgv2HkS415hUabdzM
	AIqZXoYQO5KyXv6r7ltSvS8yxxx8oERg0SVozeHt7T+cJpnMvQyiDypez3vUTUh5KFtndwF/dOw
	YdRTAiHkqP9f4F9
X-Google-Smtp-Source: AGHT+IFs4uAGNe/q9GPEWF31kEW3QtOaDCabcLhYye28KkzzcpVCRRPpx/1+DTD6PVHxT3vTiDVsBdgxCAHasKs+gmQ=
X-Received: by 2002:a05:6512:3988:b0:55b:8afb:e644 with SMTP id
 2adb3069b0e04-55f708ec8d0mr542531e87.31.1756548606189; Sat, 30 Aug 2025
 03:10:06 -0700 (PDT)
MIME-Version: 1.0
References: <cover.1756392094.git.mykola_kvach@epam.com> <bb53d9911b00879c7b25f5258d0e3e48005671f9.1756392094.git.mykola_kvach@epam.com>
 <87ecsvz9sx.fsf@epam.com>
In-Reply-To: <87ecsvz9sx.fsf@epam.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Sat, 30 Aug 2025 13:09:54 +0300
X-Gm-Features: Ac12FXzwUHekJGNG03bmvJ6CSB6f4yKfhOE5oLhitGyBrM4qW7jc-R80oYpX3aI
Message-ID: <CAGeoDV_87Q--e8po+_NCw7-uR1ZL3x9f1-TpWwGDAfJp0M-Aew@mail.gmail.com>
Subject: Re: [PATCH v11 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for guests
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>, 
	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>, 
	Shawn Anastasio <sanastasio@raptorengineering.com>, 
	Alistair Francis <alistair.francis@wdc.com>, Bob Eshleman <bobbyeshleman@gmail.com>, 
	Connor Davis <connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Volodymyr,

On Thu, Aug 28, 2025 at 7:32=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>
> >
> > Add support for the PSCI SYSTEM_SUSPEND function in the vPSCI interface=
,
> > allowing guests to request suspend via the PSCI v1.0 SYSTEM_SUSPEND cal=
l
> > (both 32-bit and 64-bit variants).
> >
> > Implementation details:
> > - Add SYSTEM_SUSPEND function IDs to PSCI definitions
> > - Trap and handle SYSTEM_SUSPEND in vPSCI
> > - Allow only non-hardware domains to invoke SYSTEM_SUSPEND; return
> >   PSCI_NOT_SUPPORTED for the hardware domain to avoid halting the syste=
m
> >   in hwdom_shutdown() via domain_shutdown
> > - Require all secondary VCPUs of the calling domain to be offline befor=
e
> >   suspend, as mandated by the PSCI specification
> >
> > The arch_domain_resume() function is an architecture-specific hook that=
 is
> > invoked during domain resume to perform any necessary setup or restorat=
ion
> > steps required by the platform.
> >
> > The new vpsci_vcpu_up_prepare() helper is called on the resume path to =
set up
> > the vCPU context (such as entry point, some system regs and context ID)=
 before
> > resuming a suspended guest. This keeps ARM/vPSCI-specific logic out of =
common
> > code and avoids intrusive changes to the generic resume flow.
> >
> > Usage:
> >
> > For Linux-based guests, suspend can be initiated with:
> >     echo mem > /sys/power/state
> > or via:
> >     systemctl suspend
> >
> > Resuming the guest is performed from control domain using:
> >       xl resume <domain>
> >
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
>
> Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
>
> But check a small comment below
>
> > ---
> > Changes in V11:
> > - introduce arch_domain_resume() and vpsci_vcpu_up_prepare(), which are=
 now
> > called on the resume path to avoid extra modifications to common code.
> > The vCPU context is now updated during domain resume.
> >
> > Changes in V10:
> > - small changes to the commit message reflect updates introduced in thi=
s
> >   version of the patch.
> > - Comments are improved, clarified, and expanded, especially regarding =
PSCI
> >   requirements and context handling.
> > - An ARM-specific helper (domain_resume_nopause_helper)
> > - gprintk() and PRIregister are used for logging in vPSCI code.
> > - An isb() is added before p2m_save_state
> > - The is_64bit_domain check is dropped when masking the upper part of e=
ntry
> >   point and cid for SMC32 SYSTEM_SUSPEND PSCI calls
> >
> > Changes in V9:
> > - no functional changes
> > - cosmetic chnages after review
> > - enhance commit message and add extra comment to the code after review
> >
> > Changes in V8:
> > - GIC and virtual timer context must be saved when the domain suspends
> > - rework locking
> > - minor changes after code review
> >
> > Changes in V7:
> > - add proper locking
> > - minor changes after code review
> >
> > Changes in V6:
> > - skip execution of ctxt_switch_from for vcpu that is in paused domain
> > - add implementation of domain_resume without domain_pause
> > - add helper function to determine if vcpu is suspended or not
> > - ignore upper 32 bits of argument values when the domain is 64-bit
> >   and calls the SMC32 SYSTEM_SUSPEND function
> > - cosmetic changes after review
> >
> > Changes in V5:
> > - don't use standby mode, restore execution in a provided by guest poin=
t
> > - move checking that all CPUs, except current one, are offline to after
> >   pausing the vCPUs
> > - provide ret status from arch_domain_shutdown and handle it in
> >   domain_shutdown
> > - adjust VPSCI_NR_FUNCS to reflect the number of newly added PSCI funct=
ions
> >
> > Changes in V4:
> > Dropped all changes related to watchdog, domain is marked as shutting
> > down in domain_shutdown and watchdog timeout handler won't trigger
> > because of it.
> >
> > Previous versions included code to manage Xen watchdog timers during su=
spend,
> > but this was removed. When a guest OS starts the Xen watchdog (either v=
ia the
> > kernel driver or xenwatchdogd), it is responsible for managing that sta=
te
> > across suspend/resume. On Linux, the Xen kernel driver properly stops t=
he
> > watchdog during suspend. However, when xenwatchdogd is used instead, su=
spend
> > handling is incomplete, potentially leading to watchdog-triggered reset=
s on
> > resume. Xen leaves watchdog handling to the guest OS and its services.
> >
> > Dropped all changes related to VCPU context, because instead domain_shu=
tdown
> > is used, so we don't need any extra changes for suspending domain.
> >
> > Changes in V3:
> > Dropped all domain flags and related code (which touched common functio=
ns like
> > vcpu_unblock), keeping only the necessary changes for Xen suspend/resum=
e, i.e.
> > suspend/resume is now fully supported only for the hardware domain.
> > Proper support for domU suspend/resume will be added in a future patch.
> > This patch does not yet include VCPU context reset or domain context
> > restoration in VCPU.
> > ---
> >  xen/arch/arm/domain.c                 |  22 +++++
> >  xen/arch/arm/include/asm/domain.h     |   6 ++
> >  xen/arch/arm/include/asm/perfc_defn.h |   1 +
> >  xen/arch/arm/include/asm/psci.h       |   2 +
> >  xen/arch/arm/include/asm/vpsci.h      |   5 +-
> >  xen/arch/arm/vpsci.c                  | 114 +++++++++++++++++++++-----
> >  xen/arch/ppc/stubs.c                  |   5 ++
> >  xen/arch/riscv/stubs.c                |   5 ++
> >  xen/arch/x86/domain.c                 |   5 ++
> >  xen/common/domain.c                   |   9 ++
> >  xen/include/xen/domain.h              |   2 +
> >  11 files changed, 156 insertions(+), 20 deletions(-)
> >
> > diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
> > index 863ae18157..6fd73eedde 100644
> > --- a/xen/arch/arm/domain.c
> > +++ b/xen/arch/arm/domain.c
> > @@ -12,6 +12,8 @@
> >  #include <xen/softirq.h>
> >  #include <xen/wait.h>
> >
> > +#include <public/sched.h>
> > +
> >  #include <asm/arm64/sve.h>
> >  #include <asm/cpuerrata.h>
> >  #include <asm/cpufeature.h>
> > @@ -27,6 +29,7 @@
> >  #include <asm/tee/tee.h>
> >  #include <asm/vfp.h>
> >  #include <asm/vgic.h>
> > +#include <asm/vpsci.h>
> >  #include <asm/vtimer.h>
> >
> >  #include "vpci.h"
> > @@ -880,6 +883,25 @@ void arch_domain_creation_finished(struct domain *=
d)
> >      p2m_domain_creation_finished(d);
> >  }
> >
> > +int arch_domain_resume(struct domain *d)
> > +{
> > +    int rc;
> > +    typeof(d->arch.resume_ctx) *ctx =3D &d->arch.resume_ctx;
> > +
> > +    if ( !d->is_shutting_down || d->shutdown_code !=3D SHUTDOWN_suspen=
d )
> > +    {
> > +        dprintk(XENLOG_WARNING,
> > +                "%pd: Invalid domain state for resume: is_shutting_dow=
n=3D%d, shutdown_code=3D%d\n",
> > +                d, d->is_shutting_down, d->shutdown_code);
> > +        return -EINVAL;
> > +    }
>
> This check probably can go into common domain_resume() function, as
> there is nothing arch-specific in here. Probably this can be done during
> commit, to save us from v12? If commiters are okay with this.

It is more complicated than I expected, because this function is also used
for the "soft-reset" action (see domain_soft_reset). Currently, it may only
be called in the x86 case, but as I understand it, almost for any event an
action can be rewritten:
https://xenbits.xen.org/docs/unstable/man/xl.cfg.5.html#Event-Actions.

It also appears that domain_resume() is used to clean up state after
domain_shutdown(). So, if I simply add a condition to check for a specific
shutdown_code, it could break the "soft-reset" functionality.

This needs a deeper investigation. I propose to leave this check inside
arch_domain_resume() for now.

>
> > +
> > +    rc =3D vpsci_vcpu_up_prepare(ctx->wake_cpu , ctx->ep, ctx->cid);
> > +    memset(ctx, 0, sizeof(*ctx));
> > +
> > +    return rc;
> > +}
> > +
> >  static int is_guest_pv32_psr(uint32_t psr)
> >  {
> >      switch (psr & PSR_MODE_MASK)
> > diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/a=
sm/domain.h
> > index a3487ca713..68185fc4d6 100644
> > --- a/xen/arch/arm/include/asm/domain.h
> > +++ b/xen/arch/arm/include/asm/domain.h
> > @@ -121,6 +121,12 @@ struct arch_domain
> >      void *tee;
> >  #endif
> >
> > +    struct resume_info {
> > +        register_t ep;
> > +        register_t cid;
> > +        struct vcpu *wake_cpu;
> > +    } resume_ctx;
> > +
> >  }  __cacheline_aligned;
> >
> >  struct arch_vcpu
> > diff --git a/xen/arch/arm/include/asm/perfc_defn.h b/xen/arch/arm/inclu=
de/asm/perfc_defn.h
> > index effd25b69e..8dfcac7e3b 100644
> > --- a/xen/arch/arm/include/asm/perfc_defn.h
> > +++ b/xen/arch/arm/include/asm/perfc_defn.h
> > @@ -33,6 +33,7 @@ PERFCOUNTER(vpsci_system_reset,        "vpsci: system=
_reset")
> >  PERFCOUNTER(vpsci_cpu_suspend,         "vpsci: cpu_suspend")
> >  PERFCOUNTER(vpsci_cpu_affinity_info,   "vpsci: cpu_affinity_info")
> >  PERFCOUNTER(vpsci_features,            "vpsci: features")
> > +PERFCOUNTER(vpsci_system_suspend,      "vpsci: system_suspend")
> >
> >  PERFCOUNTER(vcpu_kick,                 "vcpu: notify other vcpu")
> >
> > diff --git a/xen/arch/arm/include/asm/psci.h b/xen/arch/arm/include/asm=
/psci.h
> > index 4780972621..48a93e6b79 100644
> > --- a/xen/arch/arm/include/asm/psci.h
> > +++ b/xen/arch/arm/include/asm/psci.h
> > @@ -47,10 +47,12 @@ void call_psci_system_reset(void);
> >  #define PSCI_0_2_FN32_SYSTEM_OFF          PSCI_0_2_FN32(8)
> >  #define PSCI_0_2_FN32_SYSTEM_RESET        PSCI_0_2_FN32(9)
> >  #define PSCI_1_0_FN32_PSCI_FEATURES       PSCI_0_2_FN32(10)
> > +#define PSCI_1_0_FN32_SYSTEM_SUSPEND      PSCI_0_2_FN32(14)
> >
> >  #define PSCI_0_2_FN64_CPU_SUSPEND         PSCI_0_2_FN64(1)
> >  #define PSCI_0_2_FN64_CPU_ON              PSCI_0_2_FN64(3)
> >  #define PSCI_0_2_FN64_AFFINITY_INFO       PSCI_0_2_FN64(4)
> > +#define PSCI_1_0_FN64_SYSTEM_SUSPEND      PSCI_0_2_FN64(14)
> >
> >  /* PSCI v0.2 affinity level state returned by AFFINITY_INFO */
> >  #define PSCI_0_2_AFFINITY_LEVEL_ON      0
> > diff --git a/xen/arch/arm/include/asm/vpsci.h b/xen/arch/arm/include/as=
m/vpsci.h
> > index 0cca5e6830..d790ab3715 100644
> > --- a/xen/arch/arm/include/asm/vpsci.h
> > +++ b/xen/arch/arm/include/asm/vpsci.h
> > @@ -23,12 +23,15 @@
> >  #include <asm/psci.h>
> >
> >  /* Number of function implemented by virtual PSCI (only 0.2 or later) =
*/
> > -#define VPSCI_NR_FUNCS  12
> > +#define VPSCI_NR_FUNCS  14
> >
> >  /* Functions handle PSCI calls from the guests */
> >  bool do_vpsci_0_1_call(struct cpu_user_regs *regs, uint32_t fid);
> >  bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid);
> >
> > +int vpsci_vcpu_up_prepare(struct vcpu *v, register_t entry_point,
> > +                          register_t context_id);
> > +
> >  #endif /* __ASM_VPSCI_H__ */
> >
> >  /*
> > diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
> > index 7ba9ccd94b..50cf5fd96c 100644
> > --- a/xen/arch/arm/vpsci.c
> > +++ b/xen/arch/arm/vpsci.c
> > @@ -10,30 +10,16 @@
> >
> >  #include <public/sched.h>
> >
> > -static int do_common_cpu_on(register_t target_cpu, register_t entry_po=
int,
> > -                            register_t context_id)
> > +int vpsci_vcpu_up_prepare(struct vcpu *v, register_t entry_point,
> > +                   register_t context_id)
> >  {
> > -    struct vcpu *v;
> > -    struct domain *d =3D current->domain;
> > -    struct vcpu_guest_context *ctxt;
> >      int rc;
> > +    struct domain *d =3D current->domain;
> >      bool is_thumb =3D entry_point & 1;
> > -    register_t vcpuid;
> > -
> > -    vcpuid =3D vaffinity_to_vcpuid(target_cpu);
> > -
> > -    if ( (v =3D domain_vcpu(d, vcpuid)) =3D=3D NULL )
> > -        return PSCI_INVALID_PARAMETERS;
> > -
> > -    /* THUMB set is not allowed with 64-bit domain */
> > -    if ( is_64bit_domain(d) && is_thumb )
> > -        return PSCI_INVALID_ADDRESS;
> > -
> > -    if ( !test_bit(_VPF_down, &v->pause_flags) )
> > -        return PSCI_ALREADY_ON;
> > +    struct vcpu_guest_context *ctxt;
> >
> >      if ( (ctxt =3D alloc_vcpu_guest_context()) =3D=3D NULL )
> > -        return PSCI_DENIED;
> > +        return -ENOMEM;
> >
> >      vgic_clear_pending_irqs(v);
> >
> > @@ -76,8 +62,37 @@ static int do_common_cpu_on(register_t target_cpu, r=
egister_t entry_point,
> >      free_vcpu_guest_context(ctxt);
> >
> >      if ( rc < 0 )
> > +        return rc;
> > +
> > +    return 0;
> > +}
> > +
> > +static int do_common_cpu_on(register_t target_cpu, register_t entry_po=
int,
> > +                            register_t context_id)
> > +{
> > +    struct vcpu *v;
> > +    struct domain *d =3D current->domain;
> > +    int rc;
> > +    bool is_thumb =3D entry_point & 1;
> > +    register_t vcpuid;
> > +
> > +    vcpuid =3D vaffinity_to_vcpuid(target_cpu);
> > +
> > +    if ( (v =3D domain_vcpu(d, vcpuid)) =3D=3D NULL )
> > +        return PSCI_INVALID_PARAMETERS;
> > +
> > +    /* THUMB set is not allowed with 64-bit domain */
> > +    if ( is_64bit_domain(d) && is_thumb )
> > +        return PSCI_INVALID_ADDRESS;
> > +
> > +    if ( !test_bit(_VPF_down, &v->pause_flags) )
> > +        return PSCI_ALREADY_ON;
> > +
> > +    rc =3D vpsci_vcpu_up_prepare(v, entry_point, context_id);
> > +    if ( rc )
> >          return PSCI_DENIED;
> >
> > +    vgic_clear_pending_irqs(v);
> >      vcpu_wake(v);
> >
> >      return PSCI_SUCCESS;
> > @@ -197,6 +212,48 @@ static void do_psci_0_2_system_reset(void)
> >      domain_shutdown(d,SHUTDOWN_reboot);
> >  }
> >
> > +static int32_t do_psci_1_0_system_suspend(register_t epoint, register_=
t cid)
> > +{
> > +    int32_t rc;
> > +    struct vcpu *v;
> > +    struct domain *d =3D current->domain;
> > +    bool is_thumb =3D epoint & 1;
> > +
> > +    /* THUMB set is not allowed with 64-bit domain */
> > +    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 )
> > +    {
> > +        if ( v !=3D current && is_vcpu_online(v) )
> > +        {
> > +            domain_unlock(d);
> > +            return PSCI_DENIED;
> > +        }
> > +    }
> > +    domain_unlock(d);
> > +
> > +    rc =3D domain_shutdown(d, SHUTDOWN_suspend);
> > +    if ( rc )
> > +        return PSCI_DENIED;
> > +
> > +    d->arch.resume_ctx.ep =3D epoint;
> > +    d->arch.resume_ctx.cid =3D cid;
> > +    d->arch.resume_ctx.wake_cpu =3D current;
> > +
> > +    gprintk(XENLOG_DEBUG,
> > +            "SYSTEM_SUSPEND requested, epoint=3D0x%"PRIregister", cid=
=3D0x%"PRIregister,
> > +            epoint, cid);
> > +
> > +    return rc;
> > +}
> > +
> >  static int32_t do_psci_1_0_features(uint32_t psci_func_id)
> >  {
> >      /* /!\ Ordered by function ID and not name */
> > @@ -214,6 +271,8 @@ static int32_t do_psci_1_0_features(uint32_t psci_f=
unc_id)
> >      case PSCI_0_2_FN32_SYSTEM_OFF:
> >      case PSCI_0_2_FN32_SYSTEM_RESET:
> >      case PSCI_1_0_FN32_PSCI_FEATURES:
> > +    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
> > +    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
> >      case ARM_SMCCC_VERSION_FID:
> >          return 0;
> >      default:
> > @@ -344,6 +403,23 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *regs,=
 uint32_t fid)
> >          return true;
> >      }
> >
> > +    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);
> > +        }
> > +
> > +        perfc_incr(vpsci_system_suspend);
> > +        PSCI_SET_RESULT(regs, do_psci_1_0_system_suspend(epoint, cid))=
;
> > +        return true;
> > +    }
> > +
> >      default:
> >          return false;
> >      }
> > diff --git a/xen/arch/ppc/stubs.c b/xen/arch/ppc/stubs.c
> > index bdaf474c5c..0db0627b5c 100644
> > --- a/xen/arch/ppc/stubs.c
> > +++ b/xen/arch/ppc/stubs.c
> > @@ -224,6 +224,11 @@ void arch_domain_creation_finished(struct domain *=
d)
> >      BUG_ON("unimplemented");
> >  }
> >
> > +int arch_domain_resume(struct domain *d)
> > +{
> > +    return 0;
> > +}
> > +
> >  int arch_set_info_guest(struct vcpu *v, vcpu_guest_context_u c)
> >  {
> >      BUG_ON("unimplemented");
> > diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
> > index 1a8c86cd8d..52532ae14d 100644
> > --- a/xen/arch/riscv/stubs.c
> > +++ b/xen/arch/riscv/stubs.c
> > @@ -198,6 +198,11 @@ void arch_domain_creation_finished(struct domain *=
d)
> >      BUG_ON("unimplemented");
> >  }
> >
> > +int arch_domain_resume(struct domain *d)
> > +{
> > +    return 0;
> > +}
> > +
> >  int arch_set_info_guest(struct vcpu *v, vcpu_guest_context_u c)
> >  {
> >      BUG_ON("unimplemented");
> > diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
> > index 19fd86ce88..94a06bc697 100644
> > --- a/xen/arch/x86/domain.c
> > +++ b/xen/arch/x86/domain.c
> > @@ -1138,6 +1138,11 @@ void arch_domain_creation_finished(struct domain=
 *d)
> >          hvm_domain_creation_finished(d);
> >  }
> >
> > +int arch_domain_resume(struct domain *d)
> > +{
> > +    return 0;
> > +}
> > +
> >  #ifdef CONFIG_COMPAT
> >  #define xen_vcpu_guest_context vcpu_guest_context
> >  #define fpu_ctxt fpu_ctxt.x
> > diff --git a/xen/common/domain.c b/xen/common/domain.c
> > index 104e917f07..d73a88ced5 100644
> > --- a/xen/common/domain.c
> > +++ b/xen/common/domain.c
> > @@ -1352,6 +1352,7 @@ int domain_shutdown(struct domain *d, u8 reason)
> >  void domain_resume(struct domain *d)
> >  {
> >      struct vcpu *v;
> > +    int rc;
> >
> >      /*
> >       * Some code paths assume that shutdown status does not get reset =
under
> > @@ -1359,6 +1360,14 @@ void domain_resume(struct domain *d)
> >       */
> >      domain_pause(d);
> >
> > +    rc =3D arch_domain_resume(d);
> > +    if ( rc )
> > +    {
> > +        domain_unpause(d);
> > +        printk("%pd: Failed to resume domain (ret %d)\n", d, rc);
> > +        return;
> > +    }
> > +
> >      spin_lock(&d->shutdown_lock);
> >
> >      d->is_shutting_down =3D d->is_shut_down =3D 0;
> > diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
> > index e10baf2615..5f77ffadf1 100644
> > --- a/xen/include/xen/domain.h
> > +++ b/xen/include/xen/domain.h
> > @@ -109,6 +109,8 @@ int arch_domain_soft_reset(struct domain *d);
> >
> >  void arch_domain_creation_finished(struct domain *d);
> >
> > +int arch_domain_resume(struct domain *d);
> > +
> >  void arch_p2m_set_access_required(struct domain *d, bool access_requir=
ed);
> >
> >  int arch_set_info_guest(struct vcpu *v, vcpu_guest_context_u c);
>
> --
> WBR, Volodymyr

Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Sat Aug 30 13:04:10 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 30 Aug 2025 13:04:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1102910.1455043 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1usLFN-0007rM-7g; Sat, 30 Aug 2025 13:03:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1102910.1455043; Sat, 30 Aug 2025 13:03:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1usLFN-0007rF-3y; Sat, 30 Aug 2025 13:03:57 +0000
Received: by outflank-mailman (input) for mailman id 1102910;
 Sat, 30 Aug 2025 13:03:56 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=O5XJ=3K=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1usLFM-0007r9-5Q
 for xen-devel@lists.xenproject.org; Sat, 30 Aug 2025 13:03:56 +0000
Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com
 [2a00:1450:4864:20::12a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c8579315-85a1-11f0-8adc-4578a1afcccb;
 Sat, 30 Aug 2025 15:03:54 +0200 (CEST)
Received: by mail-lf1-x12a.google.com with SMTP id
 2adb3069b0e04-55f6017004dso2731059e87.0
 for <xen-devel@lists.xenproject.org>; Sat, 30 Aug 2025 06:03:54 -0700 (PDT)
Received: from [192.168.0.110] ([91.123.151.69])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-55f676dc162sm1407762e87.6.2025.08.30.06.03.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sat, 30 Aug 2025 06:03:53 -0700 (PDT)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c8579315-85a1-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756559034; x=1757163834; 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=J/e6yOZ60rC83U2r9TD49Ne5x7/TAXNJaSLaHe1DPrY=;
        b=nVzT7msTURAOtKH6NMydd9zlx2YyM5Y99dWkC6gJkXguyzBeqVnrKOs3eMezpba6Wu
         4RtOzEGPmlORan6CxPeFkPdIVc/tIGWM6IESGIkpug5hcsnzVZpni+m/Oi6Rlo6aZPrU
         dLl/AywZvfxR9/RmMXQ17B+T9m5ve/UMsQJn7agY8xvae2TxgeMfyRrpaGBoByadVK+5
         GB8BUCki8Pd+Q3RMccebXoiOi/53SYNAlGius8tZJFKVW6Bj004DaHatk8uA0ucGybGP
         f7UZgrJ/JKSactFznHSuuBW8sO1N5sYfdrWyL7gq5bms1gZevvLGu6HGX10lTlzeXY6n
         injA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756559034; x=1757163834;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=J/e6yOZ60rC83U2r9TD49Ne5x7/TAXNJaSLaHe1DPrY=;
        b=q3F1myTf5NwSBK6qKPmvUh/XEbxHLhE5nk/mVCo7GA1X4owfqU8I6wiU1ji8YPCwW3
         bPyWDhBVwCisx6a+cu6yqcNdxclpKWAdlkLumR7+SQqSpjAu7/LdMDHLPZYW4je8kcOD
         AHgP6+k93AQO3X6x9F/tjs1FxtjKY6/bzgD2IPUlaKou6v5scRKWmPu72efbVy9HGkMa
         fPE5ciks5v/k0hkzaZ/+hpVLtw3IRYQqpWP8LQ5EtluGSEQYmXtjCF8NlSgF8l5fHqBg
         gepaNEo41TvAddQV9e+PpZ3AW+u2cLi1kAfvf1blyD4nqH8sfqZu4TwyVjVoZckO+mMK
         8mVQ==
X-Forwarded-Encrypted: i=1; AJvYcCWMcB1xrqbmVhKc50XSbbngSjxxNEfHYjmXLMgQTPy4wt596FG1rW70Yo/ORnB+5tyYcRd2KSRpZC4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwKUF1YKaj0eGuyaAjBHZQE7RSxN5050CyIJe96B+3s3hd2hn4x
	kZ/Jg7T/EqtZ1PWlYh9Yz+KlQw3JhUOqQQiQ4j2ZDNug3rsCJAtPWb4l
X-Gm-Gg: ASbGncvVd8HSsTEGkNAMMBXbU81PDSW3umdhfJO58PYlYBY/WzlJXSBS8KGcHsIBXlp
	PiHfhmfHqZKQ6Cpru7yeabLBSZOrFv8axdEt3hel25FxRi0sfixpd9gnU9W1YWIFPryrA1lUecX
	Is3XKpcw6oJdnsnsaM/7ZSRk1K5Cu9PmnnzE6QPMysGVU0xy4/6x+Jah3rDNgaY45/GfA9MxB16
	dznChVVohd5MECN3ZsPt9vg51Yc09fS6TbKC/uYdH4PziTHduUICzKt1LuDb7Z9Nrc3oJWMF/yQ
	wUXVr1IvCFxfbLji7tcZ9g0nTin9oS+4hjzeGvSYGMOn/9E+c6Q5FVP5TtH1wpDAlw5VOi2Hz6c
	ZdQ3+5lKFCBJQ9HQo2QQb1uXZN7rRw7kzEubB
X-Google-Smtp-Source: AGHT+IFt4LUO1Mr/VAoSg22hH8dzkPJrNqMI9LbNYeg7KdXWAAZGaBeOM+/IBj1ZpOYKiga0f2dDMA==
X-Received: by 2002:a05:6512:eaa:b0:55f:6f1b:24f3 with SMTP id 2adb3069b0e04-55f708b1517mr500546e87.15.1756559033608;
        Sat, 30 Aug 2025 06:03:53 -0700 (PDT)
Message-ID: <411b4b20-3f9d-409b-939a-c307dc460c4f@gmail.com>
Date: Sat, 30 Aug 2025 16:03:51 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6 4/4] docs: arm: add docs for SCMI over SMC calls
 forwarding driver
To: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Bertrand Marquis <bertrand.marquis@arm.com>, Jan Beulich
 <jbeulich@suse.com>, Juergen Gross <jgross@suse.com>,
 Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Grygorii Strashko <grygorii_strashko@epam.com>
References: <cover.1756399156.git.oleksii_moisieiev@epam.com>
 <17e009a131e54ad68f0a182b1766d333cf1c63f8.1756399156.git.oleksii_moisieiev@epam.com>
Content-Language: en-US
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
In-Reply-To: <17e009a131e54ad68f0a182b1766d333cf1c63f8.1756399156.git.oleksii_moisieiev@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 28.08.25 19:40, Oleksii Moisieiev wrote:

Hello Oleksii

the patch lgtm, just some NITs

> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> Add documentation section for Simple Arm SCMI over SMC calls forwarding
> driver (EL3).
> 
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> Signed-off-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
> ---
> 
> Changes in v6:
> - add link to the scmi bindings used in the doc
> - remove mentions about HVC calls from doc
> - rename cmdline parameter to scmi-smc-passthrough
> 
> Changes in v5:
> - rename dom0_scmi_smc_passthrough in documentation
> 
>   .../arm/firmware/arm-scmi.rst                 | 180 ++++++++++++++++++
>   docs/hypervisor-guide/arm/index.rst           |   9 +
>   docs/hypervisor-guide/index.rst               |   1 +
>   3 files changed, 190 insertions(+)
>   create mode 100644 docs/hypervisor-guide/arm/firmware/arm-scmi.rst
>   create mode 100644 docs/hypervisor-guide/arm/index.rst
> 
> diff --git a/docs/hypervisor-guide/arm/firmware/arm-scmi.rst b/docs/hypervisor-guide/arm/firmware/arm-scmi.rst
> new file mode 100644
> index 0000000000..4394c95431
> --- /dev/null
> +++ b/docs/hypervisor-guide/arm/firmware/arm-scmi.rst
> @@ -0,0 +1,180 @@
> +.. SPDX-License-Identifier: CC-BY-4.0
> +
> +ARM System Control and Management Interface (SCMI)
> +==================================================
> +
> +The System Control and Management Interface (SCMI) [1], which is a set of operating
> +system-independent software interfaces that are used in system management. SCMI currently
> +provides interfaces for:
> +
> +- Discovery and self-description of the interfaces it supports
> +- Power domain management
> +- Clock management
> +- Reset domain management
> +- Voltage domain management
> +- Sensor management
> +- Performance management
> +- Power capping and monitoring
> +- Pin control protocol.
> +
> +The SCMI compliant firmware could run:
> +
> +- as part of EL3 secure world software (like Trusted Firmware-A) with
> +  ARM SMC shared-memory transport;
> +- on dedicated System Control Processor (SCP) with HW mailbox shared-memory transport
> +
> +The major purpose of enabling SCMI support in Xen is to enable guest domains access to the SCMI
> +interfaces for performing management actions on passed-through devices (such as clocks/resets etc)
> +without accessing directly to the System control HW (like clock controllers) which in most cases
> +can't shared/split between domains. Or, at minimum, allow SCMI access for dom0/hwdom (or guest

NIT: can't be shared

> +domain serving as Driver domain).
> +
> +The below sections describe SCMI support options available for Xen.
> +
> +| [1] `Arm SCMI <https://developer.arm.com/documentation/den0056/latest/>`_
> +| [2] `System Control and Management Interface (SCMI) bindings <https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/firmware/arm,scmi.yaml>`_
> +
> +Simple SCMI over SMC calls forwarding driver (EL3)
> +------------------------------------------------------
> +
> +The EL3 SCMI firmware (TF-A) with a single SCMI OSPM agent support is pretty generic case for
> +the default vendors SDK and new platforms with SCMI support. Such EL3 SCMI firmware supports only
> +single SCMI OSPM transport (agent) with Shared memory based transport and SMC calls as doorbell.
> +
> +The SCMI over SMC calls forwarding driver solves major problem for this case by allowing
> +SMC calls to be forwarded form guest to the EL3 SCMI firmware.


NIT: s/form/from

> +
> +By default, the SCMI over SMC calls forwarding is enabled for Dom0/hwdom.
> +
> +::
> +
> +    +--------------------------+
> +    |                          |
> +    | EL3 SCMI FW (TF-A)       |
> +    ++-------+--^--------------+
> +     |shmem  |  | smc-id
> +     +----^--+  |
> +          |     |
> +     +----|-+---+---+----------+
> +     |    | |  FWD  |      Xen |
> +     |    | +---^---+          |
> +     +----|-----|--------------+
> +          |     | smc-id
> +     +----v-----+--+ +---------+
> +     |             | |         |
> +     | Dom0/hwdom  | | DomU    |
> +     |             | |         |
> +     |             | |         |
> +     +-------------+ +---------+
> +
> +
> +The SCMI messages are passed directly through SCMI shared-memory (zero-copy) and driver only
> +forwards SMC calls.
> +
> +Compiling
> +^^^^^^^^^
> +
> +To build with the SCMI over SMC calls forwarding enabled support, enable Kconfig option
> +
> +::
> +
> +    CONFIG_SCMI_SMC

NIT: I think, if we mention Kconfig option, then s/CONFIG_SCMI_SMC/SCMI_SMC

> +
> +The ``CONFIG_SCMI_SMC`` is enabled by default.
> +
> +Pass-through SCMI SMC to domain which serves as Driver domain
> +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> +
> +This section describes how to configure the SCMI over SMC calls forwarding driver to handle use
> +case "thin Dom0 with guest domain, which serves as Driver domain". In this case HW need to be
> +enabled in Driver domain and dom0 is performing only control functions (without accessing FW) and so,
> +the SCMI need to be enabled in Driver domain.
> +
> +::
> +
> +     +--------------------------+
> +     |EL3 SCMI FW (TF-A)        |
> +     |                          |
> +     +-------------^--+-------+-+
> +             smc-id|  |shmem0 |
> +                   |  +----^--+
> +    +-------------++------+|----+
> +    |Xen          |  FWD  ||    |
> +    |             +--^----+|    |
> +    +----------------|-----|----+
> +              smc-id |     |
> +    +-----------+ +--+-----v-----+
> +    |           | |              |
> +    | Dom0      | |    Driver    |
> +    | Control   | |    domain    |
> +    |           | |              |
> +    +-----------+ +--------------+
> +
> +The SCMI can be enabled for one and only one guest domain.
> +
> +First. configure Dom0 to enable SCMI pass-through using Xen Command Line

NIT: First,

> +**"scmi-smc-passthrough"** option. This will disable SCMI for Dom0/hwdom and SCMI nodes will
> +be removed from Dom0/hwdom device tree.
> +
> +**Configure SCMI pass-through for guest domain with toolstack**
> +
> +* In domain's xl.cfg file add **"arm_sci"** option as below
> +
> +::
> +
> +    arm_sci = "type=scmi_smc"
> +
> +* In domain's xl.cfg file enable access to the "arm,scmi-shmem"
> +
> +::
> +
> +    iomem = [
> +        "47ff0,1@22001",
> +    ]
> +
> +.. note:: It's up to the user to select guest IPA for mapping SCMI shared-memory.
> +
> +* Add SCMI nodes to the Driver domain partial device tree as in the below example:
> +
> +.. code::
> +
> +    passthrough {
> +       scmi_shm_0: sram@22001000 {
> +           compatible = "arm,scmi-shmem";
> +           reg = <0x0 0x22001000 0x0 0x1000>;
> +       };
> +
> +       firmware {
> +            compatible = "simple-bus";
> +                scmi: scmi {
> +                    compatible = "arm,scmi-smc";
> +                    shmem = <&scmi_shm_0>;
> +                    ...
> +                }
> +        }
> +    }
> +
> +Please refer to [2] for details of SCMI DT bindings.
> +
> +In general, the configuration is similar to any other HW pass-through, except explicitly
> +enabling SCMI with "arm_sci" xl.cfg option.
> +
> +**Configure SCMI pass-through for predefined domain (dom0less)**
> +
> +* add "xen,sci_type" property for required DomU ("xen,domain") node
> +
> +::
> +
> +       xen,sci_type="scmi_smc"
> +
> +* add scmi nodes to the Driver domain partial device tree the same way as above and enable access
> +  to the "arm,scmi-shmem" according to  dom0less documentation. For example:
> +
> +.. code::
> +
> +      scmi_shm_0: sram@22001000 {
> +            compatible = "arm,scmi-shmem";
> +            reg = <0x00 0x22001000 0x00 0x1000>;
> +    ->        xen,reg = <0x0 0x47ff0000 0x0 0x1000 0x0 0x22001000>;
> +    ->        xen,force-assign-without-iommu;
> +      };

[snip]



From xen-devel-bounces@lists.xenproject.org Sat Aug 30 15:23:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 30 Aug 2025 15:23:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1102996.1455053 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1usNQ7-0007ZA-IZ; Sat, 30 Aug 2025 15:23:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1102996.1455053; Sat, 30 Aug 2025 15:23: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 1usNQ7-0007Z3-Er; Sat, 30 Aug 2025 15:23:11 +0000
Received: by outflank-mailman (input) for mailman id 1102996;
 Sat, 30 Aug 2025 15:23:10 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=dd82=3K=epam.com=Sergiy_Kibrik@srs-se1.protection.inumbo.net>)
 id 1usNQ5-0007Yx-SL
 for xen-devel@lists.xenproject.org; Sat, 30 Aug 2025 15:23:10 +0000
Received: from DB3PR0202CU003.outbound.protection.outlook.com
 (mail-northeuropeazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c200::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3ae18bae-85b5-11f0-8adc-4578a1afcccb;
 Sat, 30 Aug 2025 17:23:07 +0200 (CEST)
Received: from AS8PR03MB9192.eurprd03.prod.outlook.com (2603:10a6:20b:5c0::11)
 by FRWPR03MB10957.eurprd03.prod.outlook.com (2603:10a6:d10:170::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Sat, 30 Aug
 2025 15:23:04 +0000
Received: from AS8PR03MB9192.eurprd03.prod.outlook.com
 ([fe80::baa9:29b3:908:ed7d]) by AS8PR03MB9192.eurprd03.prod.outlook.com
 ([fe80::baa9:29b3:908:ed7d%5]) with mapi id 15.20.9052.014; Sat, 30 Aug 2025
 15:23: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>
X-Inumbo-ID: 3ae18bae-85b5-11f0-8adc-4578a1afcccb
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BMjYtqEy965P5dU2s+wIt/4FSYCahjk9oDn036drtew1dew4GGIXCbEt0ss46UsfrkobzxziApb98ToCLRQ7xD85F7GB+HAPyUyK+M3co8RcEPaeccOji14vDecezgsBwt7SKYTzlTEeMgWyebih+0n2CYEqPQU5ZhCQDsBZkv7hfm/QzW7OiwUziRKRj2sZ8vvAb4nTCuUCAAK9RPB1xhjno/9Mnrp9Ct+sBrY6g0AB/d/WWqQUlRxUlguSgovjsy45HEKBZ+yloyGMkAUGbzc1dF6X9ws4611aFfXsDHJebTsksBxne8LuNCMs1vACUFcIbD+Vxs5jgHP3psWwZw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=RXPaRT1qT0GMAyOhGXjgCFnE3h10qNG6IscIq1YCa2s=;
 b=y3Wro/8e2H2HNIYMcHuGuboJlazkhmQhmVGMT/lmAsyii6WpnVSJ3lovO/h8Bv8/r8mn6nCN6vb0wAuf84HLjczOmFRbfPmmTSgw/60U+2ftRtWO34LHAFlg/XRNR8+nrAL7GlO9BaHT6XUmAYNHZQYXnkWWZtif1DW5ONAKgiScG4iyscIxn6IV1NjS+i8UBBaxd9wJd+W2PjX4Yb/9UE7//kXVo+qzaSXR1MzMe3eiU5jM/ZUKvr8YEXnUkJKa+2mkvZbLmeYELz9f0OxCoFAX1QCViTK/WhqBu8J0kf5RkF4zU/ZThjLmdOgPp6luCHG93wEl714+OT+WfV7jNQ==
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=RXPaRT1qT0GMAyOhGXjgCFnE3h10qNG6IscIq1YCa2s=;
 b=C8RiUclrmxrzHpWEBXrxqR/pzq8US95UfxM3tNMY1BG1R/tWOeYynhXvnVbo7CwyPOcxRyldTiKJpfRdF0JgyFr7J21X09dCHD5RnQdnJAtKL/aKqKBX5TD7V/Mq3jHGi7HjY9EBBD2dI+qlJKmnbiuzlqPYxYsrRF4lzg/6Tlkrk6qn53T4bPIAXwOOvt6Dib/WUYsUJsuRbPWN64V0XfrURciwOxLX1U2U5MKmEusR5ADr66k79JqMA694ujZFJj9rkLkLi1e+S30OkFrJNXBt+8BeZm59tYcUra+7wq0kyoOlCQy1LcwYQHv+vFHuUIjYcGTDASfHfjZykbN1qQ==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <b24cf3dd-2f82-4470-8c6e-1f32e0564cbd@epam.com>
Date: Sat, 30 Aug 2025 18:23:01 +0300
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH v1] xen/flask: limit sidtable size
To: Jan Beulich <jbeulich@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>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <20250822095123.998313-1-Sergiy_Kibrik@epam.com>
 <1797679c-582f-4b75-a036-ad3bb00bad4d@suse.com>
 <1d34d0ae-f3f3-4b25-ae67-6c4f6be2e2bb@epam.com>
 <59e884d4-e111-474c-9794-dcb190de8eab@suse.com>
Content-Language: en-US
From: Sergiy Kibrik <sergiy_kibrik@epam.com>
In-Reply-To: <59e884d4-e111-474c-9794-dcb190de8eab@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: WA1P291CA0021.POLP291.PROD.OUTLOOK.COM
 (2603:10a6:1d0:19::21) To AS8PR03MB9192.eurprd03.prod.outlook.com
 (2603:10a6:20b:5c0::11)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS8PR03MB9192:EE_|FRWPR03MB10957:EE_
X-MS-Office365-Filtering-Correlation-Id: fd984174-2cbf-46af-9c8d-08dde7d91d23
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?TCswZ0FhVDZFRnhBNDJSTmhWa3AvVWRBYTMwcFBJaFl0dFgrMWgvZ1M1Vjhn?=
 =?utf-8?B?ay8ydDR5LzNBbWZZNWFTSEZZMGNmVU9rZWovTjFWWE9qbkhBQ3kvKzdDdCsr?=
 =?utf-8?B?dEE5dWszZ3hFcS9lR1cvTTZUNWRzRUJmU0RpVmttZlo5ZDc1V3p4YXFoMVhx?=
 =?utf-8?B?ejZOa0V2R3ZFV1lCYWdqZVJhcVJOcWlmUS9MZGtPSDJFOGlacTl1WmlveDBi?=
 =?utf-8?B?bW1sdGJYelY0aWNnMTNTTXpnTTBnVmQ4T09FVndHN1hWVitQd0xqb3RqaWpO?=
 =?utf-8?B?K013MEd1ZEFYSWtQSTBLN21EeElEYUFZZ29JdW9QeW8rcExoaXlPSEJ5enFr?=
 =?utf-8?B?UFpRRmJJU282V0twc3ZhRDJSNHdMSjRwL3V3NjFUZTRmMVo0aXVMNjlFYVZr?=
 =?utf-8?B?WnRpYzJ1VmJkSlBGdTVYSnBjMVpra0MwbElFNzZtZlN6REdYbmpFelcwVU9i?=
 =?utf-8?B?YldNUVgzV210MThpaFpkSGZWYzlnNy9GQVZCcXA5S0tUSkppMnBzS2xWYnRF?=
 =?utf-8?B?WlAyMUJaVGZBZHBSSDFSdkN4ZGpJd291RE5HQ3pLYmN0SXZjaTI1cEZXd3Nu?=
 =?utf-8?B?ZE5QRGxQTGlxT2N2R2RzMGtuYjBObmpYelFTSjdNMW1CWFRqNFBlbE9vUzRk?=
 =?utf-8?B?VzhhRXc5bU9ETmN0SEFOTUU1OXZmRGhrNW0xcGp4MHhOQlAwbTJIUHRTZUc0?=
 =?utf-8?B?RC9LMkpWeE1nclV5M2t2Uy9IcWRjU1U4SFhrSU1SL3RjdGdmSm5rMGc3L1dy?=
 =?utf-8?B?ZXgxNXlXb05jVmNJOCsreEVFRTRUV2lsTkdRVkJpeGM5QjJ4S3R6TDFUOUlw?=
 =?utf-8?B?eHZGQlhkOUVKQjdWaDhkWnF3dzlWQ2hCUFlyK0kzOGdyNWFGOEV4Yy90Wm5W?=
 =?utf-8?B?M05qU0pRY2Vud25ZK0RrTndrazBJblFtS1k1aWZMQ2p5ZXFOQk1NMkFiN21I?=
 =?utf-8?B?eU81azZGTDNvK2dUUHFtM0gwMmp1UEVXYUVkMGF6NDc1alN3VjJCN1hVbGJ2?=
 =?utf-8?B?SFppM0dXbGxGS3Y2dGdoTmtEbSs5cmYwcFNvanhHM3d3Z3BJNzdhajhpZ3FD?=
 =?utf-8?B?Rld3M2NJdEpKV0hrcjdlTnQyeUhVcHk3TFllN0h6WVFISzlHcXBKb1VRb3hp?=
 =?utf-8?B?UTVZQzZHYk41QS83Wjg4Nk0waTVSbGY4b2xaNUZINDBOSUl4R3Z6Z0JpTHM5?=
 =?utf-8?B?RnR1R1pjR2EraTg0QTFlVEk4MGMxcC8xTkp2Ynhjc0p5eW9KbTJFdzJGZlo4?=
 =?utf-8?B?TzZXWXExcnVOMDEwSlg1V3J2elY4ZGdld2Q1STBsTVUvbkdmNWNHbDd3RWw2?=
 =?utf-8?B?RlEzRzZuZFZMNWZjb3ZtNXRIK3hiZVg5dmhldVhvTExjQm1hc3JBS0N0ZkdJ?=
 =?utf-8?B?NnI4Z1VaUmVmS2QyNU9aSkFWZW9ubUE1NjY5MUh2OTcrMUxGWElJZXdnU1Nl?=
 =?utf-8?B?cy9zcVRON0tMeFJPclBKaXJaeEtsSHBjcXpQNGZhRkozcTVEZXJLci9YZkU3?=
 =?utf-8?B?RzEzRFZwVVRwUWdLVXVBbVNlZFloeHNkamlxMHQzTWk0RUJEcnZSaU93a1Yw?=
 =?utf-8?B?a1pSK2c0NkF2emYwVEJqTTljUDBjOGVycG1tVXNaOE1QR0M3STFBWitVT21t?=
 =?utf-8?B?M21NelZxVnNOZHRGMGVHNUZ3eUVaL0ZjdUdyZU1uTjJRK3VHell0U0lpY3FC?=
 =?utf-8?B?UEVEcGZqa0dUczRtcnJOQVZkRXZpUHZkWjgybGFtOTJGUVZGUGFxekJwKzRx?=
 =?utf-8?B?WVg1c25MdkVCT1BJY2RaN3lkdCtFaVpxUE1BNWdSUTJQVzFLYkhXeFJMaFFF?=
 =?utf-8?B?NUtSWGN0cEw3dGd5UEhmd3ZaSE45eS9uazRLQk9GV0wzdlEwRWpiTVRORTZT?=
 =?utf-8?B?UkhucUlqSm1ZSVZYQXlnWXlwTFhsVFhZbEo1MU4xdXhOaER1aFNsUVVqUDlx?=
 =?utf-8?Q?p4hXixy6mDU=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR03MB9192.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NmlYYTdHQTJaU3RRVFFlbUtITlJXSGR3VzN0clh6NUlYZVRkZERTUGxHcVlY?=
 =?utf-8?B?UnJUSE9lYzRJNlRsVnRnNFRrc25tMExSQ1RJZ0FiZzVDMEhJMVE5Njg5WlFR?=
 =?utf-8?B?SzAzdjB3UHhwOGZKbU1VUnVzeHlyYlFsQVFnWDQxQkRxOUs0V1poZFJIT2NK?=
 =?utf-8?B?SUlrM3FiTnlobnJBeXBIcnhIVXNmVUlSVmxVZU5rV1VXUDUxeEdzOG5DbFhk?=
 =?utf-8?B?YlAvN0xvQzg5dFpJWTdibm5rVnM2WFJrMHlkb0ptYm1FRGxhQi85ZXNjN2x6?=
 =?utf-8?B?TGhjWmNCVEpVL1BEWXNiTG8wN21HUDNJSnRqZlgxRktNRnpzWVJDc05NaStw?=
 =?utf-8?B?SkkvQTBldHdHbjBxWGVXVFkycjl4WUFTL00rRHB2cWxybGZoMUJicGI0QnJi?=
 =?utf-8?B?bWZZRndUbk56bDVDbGsrc1BBbzYyQWdvSXBFUkdTbGxPeFV3U2ptMm1leWdW?=
 =?utf-8?B?YTd5K2phUFJDeTkzeENQdzhvaXp5eVFxVWtWRDViTFVGME9kRndrRnIzTmZD?=
 =?utf-8?B?NGVBcERZb1lsMktyUUxBZzArMTltK21hdE1MUDE4SlpXV1RTV0t3c205bng5?=
 =?utf-8?B?TmwyVDFMZ3ViQVVydXZoNFV0SklEVk1jbVNFTDRtMmtqL2cybWswT3ZZUzgx?=
 =?utf-8?B?MGVKU1YzWU5OVHVxRldaV0xoL2ZFMTVjcEQ0UWJNRFljM0l2MFNTdXFobVNK?=
 =?utf-8?B?UFkrbWNFSzFEZ3oxWTllbVRrNzlNalgxWUpBRXZEUkJBeEhxWkpIeTVpWjlF?=
 =?utf-8?B?Z2Rtakp2bjFEZ2wwakZtZWJ6WjFCNk1QV0djTTE2WVJGTEQ3dGlNQkowcjhp?=
 =?utf-8?B?eFAxcTMrNlMvemJPclVDa2hoTllQVCtoL3ZjVjEvalNNcm5PSDg3MVBoUTE2?=
 =?utf-8?B?Mkt2NktSWU5Odmc5VzRHSWVnN0VLR1krVGNlUFB2QnIxNVhuOWxBcURFRUhT?=
 =?utf-8?B?WDVmckl3a1NXeE5XblYwWGYxZnZXdXVlaHVuaktablhUalZUeTVwRVNubmJX?=
 =?utf-8?B?bVlCTVRadFA1QUxjTzhZRlduRkRmNHF2R1RDOEVKa2JjRzVLa0tTbnZYNDcr?=
 =?utf-8?B?RC9BbFR2aFAxUi9yd3lSTDNuUVZmQ1ZFdVg3YmVLcWhyYitZTWZNOTFkU3BI?=
 =?utf-8?B?bVRaNTNmY3pCYUo3THlFL1BnSWd0Y20wakFYWVRxN0pMY0dvSTBlQW4vQTUr?=
 =?utf-8?B?Z25rN0ZIS3kxUnVxcTQwUUVvcWcrNUtRaEh1NlYxZ1hBcDBFV1QvMlY5SmtM?=
 =?utf-8?B?Q1pDOGZEMjBIeWFVQXFQZGV3V1BkblRjdG84RkJLcmE0WjNLRkhXZEMxZE9s?=
 =?utf-8?B?L2hEYTRJNDY4SHorMStBVERDZFhzOTF1UUY1dW5neGk1NFRmaEIrWEpkM1JU?=
 =?utf-8?B?SEM1QWp1Z2EyMzVlTXpCQSsrcndRQk1kcHhGakhieUlUUU96VjArQmpUZmFr?=
 =?utf-8?B?eEtSWjNaU0orMFJlOGszTUFRRVFzdExKR3FtRGpFZGhaTkdaUzZvZWlZdTNS?=
 =?utf-8?B?NG1laHBwWllOWUMwV0ZmNlNGUDVtUTRpUHF6NGI1ZkdDbStCcVRFNGc4OGN0?=
 =?utf-8?B?WGdCQ016QjNSMFRWa0ZMYzRCam5zVjJrNC85RTlVK2Z2bmp6WkhjcHJaeTZL?=
 =?utf-8?B?eXI0WEdCR2hhSlBSNFpHeTdXNjFBa0NWandELy9ZMys4UFVrRXF4MXFuQjNN?=
 =?utf-8?B?UTJBUDlTUFc4SDN1ZWE4dysrd1duS0pUaUJBTk5qdlA4cEdUR3Q0bHFBSzhW?=
 =?utf-8?B?Q0FKZUREaTZOQ2tpcFY1U1VCUkt0NXBOcG1nY3VGUnFNcmk3MmZySmRybXlT?=
 =?utf-8?B?K0l3RTNLK3Y4b1JwTFpXdjF4NkxBd1RVZm5XNGQzSkdaYkNDWGJPWnZtZkFU?=
 =?utf-8?B?UVJ1YUwyWkMzT0gyMHo3dXg3dEtnVlRuM2pQb2lFVVpXWktNOE5rY0pUZ1VN?=
 =?utf-8?B?SEhJdXQ1RHV6TDNWRCtnbWdtemwwa3l3aEt6YkF0UllQUWVBOTMrcDdwNU1x?=
 =?utf-8?B?VzB4TzIxOVVaL1A0WjFOcTZKclY5dk9jOWVWbEVTZU5odk1Rb0pFS1FjZHdR?=
 =?utf-8?B?UUFyWXFmRkZQYlpSaUVNTy9tenNrZldYY1BVSVFCL1pMemlveWJwVm1pbGRp?=
 =?utf-8?B?L05ZRTFYeDcrZUlCYTJoR1R2cDl5bkc4eXBVbTZBSEJwNzVsd2VlYVRIRXZw?=
 =?utf-8?B?dXc9PQ==?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fd984174-2cbf-46af-9c8d-08dde7d91d23
X-MS-Exchange-CrossTenant-AuthSource: AS8PR03MB9192.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Aug 2025 15:23:04.0912
 (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: /aCiyTy5feBEDvUkcAP4alt07ugGnbJX3Vvu5mFP4Fp0cm11sBToFpgDUNPJJ12dKFQzx3yHR5xOyg0IMwDdVw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: FRWPR03MB10957

29.08.25 14:44, Jan Beulich:
> On 29.08.2025 13:33, Sergiy Kibrik wrote:
>> 25.08.25 15:00, Jan Beulich:
>>> On 22.08.2025 11:51, Sergiy Kibrik wrote:
>>>> --- a/xen/common/Kconfig
>>>> +++ b/xen/common/Kconfig
>>>
>>> I wonder whether we wouldn't better move XSM's controls to a dedicated Kconfig
>>> file there.
>>
>> you mean something like Kconfig.xsm in the same common/ directory? Or
>> move this Kconfig out into xsm/ directory with the rest of flask code?
> 
> The latter would be preferable imo.

then it probably will have to be moved outside Common Features menu and 
into the main configuration menu, while having 6-7 items. Is it ok to 
keep such small submenu for that?

  -Sergiy


From xen-devel-bounces@lists.xenproject.org Sat Aug 30 22:12:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 30 Aug 2025 22:12:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1103292.1455109 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1usTnh-0004st-K0; Sat, 30 Aug 2025 22:11:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1103292.1455109; Sat, 30 Aug 2025 22:11: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 1usTnh-0004sm-GI; Sat, 30 Aug 2025 22:11:57 +0000
Received: by outflank-mailman (input) for mailman id 1103292;
 Sat, 30 Aug 2025 22:11:55 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=IC44=3K=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1usTnf-0004DI-Ad
 for xen-devel@lists.xenproject.org; Sat, 30 Aug 2025 22:11:55 +0000
Received: from mail-lj1-x22f.google.com (mail-lj1-x22f.google.com
 [2a00:1450:4864:20::22f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 55d9dbbf-85ee-11f0-8dd7-1b34d833f44b;
 Sun, 31 Aug 2025 00:11:53 +0200 (CEST)
Received: by mail-lj1-x22f.google.com with SMTP id
 38308e7fff4ca-336d84b58edso1729731fa.0
 for <xen-devel@lists.xenproject.org>; Sat, 30 Aug 2025 15:11:53 -0700 (PDT)
Received: from yp-VivoBook-ASUSLaptop-M1503QA-M1503QA.. ([95.67.15.120])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-336d0e3f39dsm4662091fa.45.2025.08.30.15.11.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sat, 30 Aug 2025 15:11: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>
X-Inumbo-ID: 55d9dbbf-85ee-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756591913; x=1757196713; 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=Xe9xi3DaBptNnLW1VEAJiUhAp27nm19FtXNKIdaX+1M=;
        b=ZIo4I/IvK3ZimOhLCVvBI60rqQ+HbUOhYsXUBmghHZ/1xuxKtkRB671t192vxmxO5a
         QLIMudOecsuOgijigjSyYqYdla1vEDyTBfm+3iqmDNdY6YrBvWbfGJZeZfJwGXxWn0hj
         2JXQ+AbxRQI12tlOtfCQEt3UhnKxnWYxslH608fKCgiI0GLpGEigpri5UlH7TX39EZaA
         XIdfBdUnmKIGbWDhJAICyImdjRsGI+qM0lqOxbe+cIb7VX/MpwporE7PSonJxrhkGYHm
         1UcJo5eWrbrH6G1i/nX2ECU5KAnfZFF8diXk10QuEcd5RQNe15vvR3AJgONvun/k1FkN
         syFQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756591913; x=1757196713;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=Xe9xi3DaBptNnLW1VEAJiUhAp27nm19FtXNKIdaX+1M=;
        b=wZhqLWuy0u5l7xX7E5epMFEFvDJQEcoFIJv2jOkqoBHjJJEAeHmO7FHCOStjF5ZCCq
         1SwnRRfQ3Rk6OXBi5agDvnfMCo4yNVPoA/4vYYi2DL64YN0e4j+VDDkrISJ8LB+HIF7Z
         5tbqxIBOkdd3Q40YQMKptkXcWgFF8E7px1zgDyj21xywsQBRaxK8F3OGFAbV6arJrl3R
         ofBpxIvfVOF/vpgwCpoCJNRXpu0RbxQ26KMhsMnZuxtE9ux8lKeDic6gPTjvPoBb5LuG
         LuCVF5JGlmhZrsTNrAsgudhWzW9MSwNK6FYh9ul/nihuA0AacOCCe9sewGwB88wcwnaY
         A9wg==
X-Gm-Message-State: AOJu0YwbyRQaOm9MmJWUMVFVXUSKHz9SYGoZ+VJ5LWmsoMt86uzut48B
	e8nzn+HIz9YKNhItV+5tn4abdK/8wZSAwKdfniisy2Dc9aMIYblxbDNILUwlnHKa
X-Gm-Gg: ASbGncvkff4b2yqWkCF3LwRhunNVK3TsDTAP9nKJ5/TrFNG4v0EXnPpi9GmkoeLEXzA
	8scyEinNXVmNCEXOaPL2Y+F4c5B3tkgIKZ5narycTOxA0GjHDX0REmCogyEqB/gE7025SojcklN
	eh58UjJGvqQF5SUkOnHYm+CC9F5KZHzHbuqJbYghogdStOWLPT4miz/Ban1nJN4t9NR6KlbKXHT
	DSthZxYnrOXg7WtGPm00xQQ2Lc6lfsppw28cEOGAEFmTRDTxqbwyQdjwvcD4voun45wmgOGw6aJ
	7dRcuqc1mtvI2mnOsVF3+Z7pb6P/YrcfIOSXdfPeUB31qBzgy0IB/7P8P1j5jJGXgcwmmFvA87X
	9S5BGgVrH1GeLf0rDC/5dQLTiLg6q0g324WA8O+AvwpJxDN4+q9lghN8IMfjqkB1zctt2LEMY
X-Google-Smtp-Source: AGHT+IH77ALpy5/qrTHYJ4yKKj7vVfKF4r6EliI7dj8DXNBLy9nrw77p8ZXFnmSHYOBdWpJGAYai5Q==
X-Received: by 2002:a2e:a272:0:b0:336:c6bb:10d6 with SMTP id 38308e7fff4ca-336cad3f15cmr4953441fa.26.1756591912892;
        Sat, 30 Aug 2025 15:11:52 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v12 3/4] SUPPORT.md: Document PSCI SYSTEM_SUSPEND support for guests
Date: Sun, 31 Aug 2025 01:10:30 +0300
Message-ID: <e08eb09918f77c57529427019d4e63170970f6de.1756586648.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.1756586648.git.mykola_kvach@epam.com>
References: <cover.1756586648.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

Add a new entry under the "Virtual Hardware, QEMU" section documenting
support for the optional PSCI SYSTEM_SUSPEND function exposed to guests.

This function is available via the virtual PSCI (vPSCI) interface and
allows guest domains (domUs) to initiate system suspend operations.

The feature is currently marked as "Tech Preview".

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in V10:
- Status of vPSCI SYSTEM_SUSPEND changed from "Experimental" to
  "Tech Preview"

Changes in v6:
- Dropped the generic guest PSCI support entry (merged in a separate patch)
- This patch now documents only the SYSTEM_SUSPEND optional function
- Reworded commit message to match the final form after rebase

Changes in v5:
- Dropped ARM/PSCI entry: this refers to internal use of PSCI SMC calls,
  which is not relevant for SUPPORT.md
- Added a dedicated entry for PSCI SYSTEM_SUSPEND instead of generic guest
  PSCI info; guest PSCI support was documented in a separate patch
---
 SUPPORT.md | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/SUPPORT.md b/SUPPORT.md
index 6a82a92189..0ce0903cb1 100644
--- a/SUPPORT.md
+++ b/SUPPORT.md
@@ -962,8 +962,9 @@ Emulated PSCI interface exposed to guests. We support all mandatory
 functions of PSCI 1.1. See below for the list of optional PSCI call
 implemented and their status.
 
-   Status, Mandatory: Supported
-   Status, MIGRATE_INFO_TYPE: Supported
+    Status, Mandatory: Supported
+    Status, MIGRATE_INFO_TYPE: Supported
+    Status, SYSTEM_SUSPEND: Tech Preview
 
 ## Virtual Hardware, QEMU
 
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Sat Aug 30 22:12:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 30 Aug 2025 22:12:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1103290.1455083 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1usTnf-0004FW-P5; Sat, 30 Aug 2025 22:11:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1103290.1455083; Sat, 30 Aug 2025 22:11: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 1usTnf-0004Eb-JP; Sat, 30 Aug 2025 22:11:55 +0000
Received: by outflank-mailman (input) for mailman id 1103290;
 Sat, 30 Aug 2025 22:11:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=IC44=3K=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1usTne-0004DI-Cp
 for xen-devel@lists.xenproject.org; Sat, 30 Aug 2025 22:11:54 +0000
Received: from mail-lj1-x231.google.com (mail-lj1-x231.google.com
 [2a00:1450:4864:20::231])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 553875bd-85ee-11f0-8dd7-1b34d833f44b;
 Sun, 31 Aug 2025 00:11:52 +0200 (CEST)
Received: by mail-lj1-x231.google.com with SMTP id
 38308e7fff4ca-336630769a6so30525011fa.3
 for <xen-devel@lists.xenproject.org>; Sat, 30 Aug 2025 15:11:52 -0700 (PDT)
Received: from yp-VivoBook-ASUSLaptop-M1503QA-M1503QA.. ([95.67.15.120])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-336d0e3f39dsm4662091fa.45.2025.08.30.15.11.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sat, 30 Aug 2025 15:11: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>
X-Inumbo-ID: 553875bd-85ee-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756591912; x=1757196712; 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=iKQtb2yDXXgVIM20M/9ZKDqMqVSaENj70H3OApwPWOA=;
        b=LYocE1w8ycdRv/rn3bzWdnrckPFEWWCHY3fkd6fGXaTRiO81m609m406HnoBXkZ+cO
         wrg3EeMLuGSPb39lhlLj00iMJQR5MQyDDmUbNpyAHcd8rmMQcQRYs+5+R/rt8ZOBSYW8
         jJr3+DBFDoGPecHMZo+/HsJq2wJStytEzrIiW8i9bnKnbrs9gUxUXhhxiwhway1HIlNs
         H8sjIL6S264N6/uVzDK6f81zrhGE4CLSQONM8oR/XIXhJ80wB4w5yTLFySXYjKa5pn14
         43TLJWssEEzKAOir7mxYqUpH7aZUsDCYB15o6zyelmOFhrYxFSXdjA+MZYpkG2NPwizh
         asIw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756591912; x=1757196712;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=iKQtb2yDXXgVIM20M/9ZKDqMqVSaENj70H3OApwPWOA=;
        b=kO6oo+H9bkdpN/GLmWvQ1luf3jMwQrAjicz7DFQg7ilNHj6vgPajcgSSkNEzGAo3XR
         TewnVSEUbnpE6FfSkDqw5m9V0Y9kHHdu4lXpDOhpMCV41qX6yCqjpjBy18ypuDgNW8WO
         4V3vwRzsr8OIh1ewyaJVKklnv2q3YFpkHsYa/8epxGSEfHQL+U9CkzyeOzbRcRhQO0NZ
         u8FevlD2fA+5PsN/KX9CX5a2XEtCcRjH873yl2KAxkwUhsfTK7SoeJf/oZVYoYsTnxEM
         VQTlrrx4utAfTqCOk1zyF8kVuRspHSVBGq8ugr8lW1NqfVWZKfo8WwFVKX9EBMAy2P2i
         TBTQ==
X-Gm-Message-State: AOJu0YyTd+g2VBj27+1vMcBhfikvJJxShuR1MY7PsX/FIlDdVpDfhwUB
	B3hgojhyKsoDCoBGiUKKO/lCFweeq5/x4ANGWfmWuFubVy+jOmwyJrUvjswuGOHU
X-Gm-Gg: ASbGncsb6HxrfDTaFeo7v1HvTyAVyjGBG6NFZ/9eEKO17CdiIFLfb9aW2NWaob51n1b
	yufA7JM0vNit90IRUe1899OtwVO+mr2gX+FWgykl7yVXqk49jv8Nu4gPgd5w3JYce+Tc2vYW8Gp
	7PqtyLUWADAsG01I1NMSaINSDb6ndz7BBSr20KrN5ol3AJnCWikLpbQPkhwfFI+LsLKUK+3MsYF
	MxPDI+3D9mXA5xsC7nrS1zpgUqgfclqRZo6QcUlqzd4T6NxDmsvvjZW854rqEbuYpnNWWnr2M8s
	xlVFs091m4Gto/SjkEwU8vAbWxKna57yPkWDoT4jq4twT48QfjDysKmaYiB48nfUqbTONEBqORC
	wgdBxHUHlAo8japYkP7HQ6XgDNNwjlkLYXcy+lz/bkueGzhzXjP9fQk+YBXIw7Q==
X-Google-Smtp-Source: AGHT+IHT3jcq2YU0u97H9rorlL8soKoehokjHRPbP86Ys46uBURn+zyouGVQvApeibXNyoYgtSuz0A==
X-Received: by 2002:a05:651c:2214:b0:336:90e3:4b8f with SMTP id 38308e7fff4ca-336ca9b9567mr6946541fa.2.1756591911768;
        Sat, 30 Aug 2025 15:11:51 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH v12 2/4] tools/xl: Allow compilation of 'xl resume' command on Arm
Date: Sun, 31 Aug 2025 01:10:29 +0300
Message-ID: <6e7bc11b7d1b96e48c8211ca3d2e48c702d0b675.1756586648.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.1756586648.git.mykola_kvach@epam.com>
References: <cover.1756586648.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

The "xl resume" command was previously excluded from Arm builds because
system suspend/resume (e.g., SYSTEM_SUSPEND via vPSCI) was not
implemented. On x86, this command is used for resume.

This change enables compilation of `xl resume` on Arm regardless of the
underlying implementation status, making the tool available for testing
and future feature support. The relevant libxl infrastructure and handler
functions are already present and usable.

Note: This does not imply full system suspend/resume support on Arm.
      The `xl suspend` command still does not work on Arm platforms.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
Acked-by: Anthony PERARD <anthony.perard@vates.tech>
---
Changes in v7:
- dropped renaming of LIBXL_HAVE_NO_SUSPEND_RESUME macro

Changes in v6:
- Renamed macro from LIBXL_HAVE_NO_SUSPEND_RESUME to LIBXL_HAVE_NO_SUSPEND
  to better reflect the scope of this change
- Applied cosmetic changes based on review feedback
---
 tools/include/libxl.h     |  1 -
 tools/xl/xl.h             |  4 ++--
 tools/xl/xl_cmdtable.c    |  4 ++--
 tools/xl/xl_migrate.c     |  2 +-
 tools/xl/xl_saverestore.c |  2 +-
 tools/xl/xl_vmcontrol.c   | 12 ++++++------
 6 files changed, 12 insertions(+), 13 deletions(-)

diff --git a/tools/include/libxl.h b/tools/include/libxl.h
index 185f74d8a8..b204fc5e2e 100644
--- a/tools/include/libxl.h
+++ b/tools/include/libxl.h
@@ -1140,7 +1140,6 @@ typedef struct libxl__ctx libxl_ctx;
  * restoring or migrating a domain. In this case the related functions
  * should be expected to return failure. That is:
  *  - libxl_domain_suspend
- *  - libxl_domain_resume
  *  - libxl_domain_remus_start
  */
 #if defined(__arm__) || defined(__aarch64__)
diff --git a/tools/xl/xl.h b/tools/xl/xl.h
index 45745f0dbb..9233b73f85 100644
--- a/tools/xl/xl.h
+++ b/tools/xl/xl.h
@@ -65,7 +65,7 @@ static const char migrate_permission_to_go[]=
     "domain is yours, you are cleared to unpause";
 static const char migrate_report[]=
     "my copy unpause results are as follows";
-#endif
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
 
   /* followed by one byte:
    *     0: everything went well, domain is running
@@ -130,8 +130,8 @@ int main_migrate_receive(int argc, char **argv);
 int main_save(int argc, char **argv);
 int main_migrate(int argc, char **argv);
 int main_suspend(int argc, char **argv);
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
 int main_resume(int argc, char **argv);
-#endif
 int main_dump_core(int argc, char **argv);
 int main_pause(int argc, char **argv);
 int main_unpause(int argc, char **argv);
diff --git a/tools/xl/xl_cmdtable.c b/tools/xl/xl_cmdtable.c
index 06a0039718..bcb2d233cc 100644
--- a/tools/xl/xl_cmdtable.c
+++ b/tools/xl/xl_cmdtable.c
@@ -198,12 +198,12 @@ const struct cmd_spec cmd_table[] = {
       "Suspend a domain to RAM",
       "<Domain>",
     },
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
     { "resume",
       &main_resume, 0, 1,
       "Resume a domain from RAM",
       "<Domain>",
     },
-#endif
     { "dump-core",
       &main_dump_core, 0, 1,
       "Core dump a domain",
@@ -548,7 +548,7 @@ const struct cmd_spec cmd_table[] = {
       "                        checkpoint must be disabled.\n"
       "-p                      Use COLO userspace proxy."
     },
-#endif
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
     { "devd",
       &main_devd, 0, 1,
       "Daemon that listens for devices and launches backends",
diff --git a/tools/xl/xl_migrate.c b/tools/xl/xl_migrate.c
index b8594f44a5..4b4a379aa1 100644
--- a/tools/xl/xl_migrate.c
+++ b/tools/xl/xl_migrate.c
@@ -767,7 +767,7 @@ int main_remus(int argc, char **argv)
     close(send_fd);
     return EXIT_FAILURE;
 }
-#endif
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
 
 
 /*
diff --git a/tools/xl/xl_saverestore.c b/tools/xl/xl_saverestore.c
index 953d791d1a..747094ec7b 100644
--- a/tools/xl/xl_saverestore.c
+++ b/tools/xl/xl_saverestore.c
@@ -270,7 +270,7 @@ int main_save(int argc, char **argv)
     return EXIT_SUCCESS;
 }
 
-#endif /* LIBXL_HAVE_NO_SUSPEND_RESUME */
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
 
 
 
diff --git a/tools/xl/xl_vmcontrol.c b/tools/xl/xl_vmcontrol.c
index c813732838..93766f631b 100644
--- a/tools/xl/xl_vmcontrol.c
+++ b/tools/xl/xl_vmcontrol.c
@@ -38,11 +38,6 @@ static void suspend_domain(uint32_t domid)
     libxl_domain_suspend_only(ctx, domid, NULL);
 }
 
-static void resume_domain(uint32_t domid)
-{
-    libxl_domain_resume(ctx, domid, 1, NULL);
-}
-
 int main_suspend(int argc, char **argv)
 {
     int opt;
@@ -55,6 +50,12 @@ int main_suspend(int argc, char **argv)
 
     return EXIT_SUCCESS;
 }
+#endif /* !LIBXL_HAVE_NO_SUSPEND_RESUME */
+
+static void resume_domain(uint32_t domid)
+{
+    libxl_domain_resume(ctx, domid, 1, NULL);
+}
 
 int main_resume(int argc, char **argv)
 {
@@ -68,7 +69,6 @@ int main_resume(int argc, char **argv)
 
     return EXIT_SUCCESS;
 }
-#endif
 
 static void pause_domain(uint32_t domid)
 {
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Sat Aug 30 22:12:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 30 Aug 2025 22:12:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1103289.1455078 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1usTnf-0004Dl-GX; Sat, 30 Aug 2025 22:11:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1103289.1455078; Sat, 30 Aug 2025 22:11: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 1usTnf-0004Dd-D3; Sat, 30 Aug 2025 22:11:55 +0000
Received: by outflank-mailman (input) for mailman id 1103289;
 Sat, 30 Aug 2025 22:11:54 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=IC44=3K=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1usTne-0004DI-22
 for xen-devel@lists.xenproject.org; Sat, 30 Aug 2025 22:11:54 +0000
Received: from mail-lj1-x22f.google.com (mail-lj1-x22f.google.com
 [2a00:1450:4864:20::22f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 53c537bd-85ee-11f0-8dd7-1b34d833f44b;
 Sun, 31 Aug 2025 00:11:50 +0200 (CEST)
Received: by mail-lj1-x22f.google.com with SMTP id
 38308e7fff4ca-33682342180so29166271fa.0
 for <xen-devel@lists.xenproject.org>; Sat, 30 Aug 2025 15:11:50 -0700 (PDT)
Received: from yp-VivoBook-ASUSLaptop-M1503QA-M1503QA.. ([95.67.15.120])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-336d0e3f39dsm4662091fa.45.2025.08.30.15.11.46
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sat, 30 Aug 2025 15:11: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>
X-Inumbo-ID: 53c537bd-85ee-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756591909; x=1757196709; 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=qZp0lPgPe4HlwnbMcyoSq9Puvmd7k9VTEkM+R0CcSMc=;
        b=AN8s9+0UJmYQlDl8iA5prt3/KPozBOpwwIXUX9r1E1ZRQ117uJtWWCXNEvhmercVA/
         7+7xKDyEmOBc6frt18Gf0q6mZtgJCuvss4l2GY/PR2yeU42cVSc9Gio7adL+t1Exy+6Q
         AApuPpg2Ld8A0Bs7a7Y06fjDEX7fA75HOW1m2XdCjOVHJPZuSb36coQgV07Y4o6hFmoD
         kjuAa/ZzAx5OjOAjrWmZkDU3q4ljOrZOCsYki1YwKjQRQUr/M5HAT8b+XjfmE+zZVLQH
         udjCON5iiaJ5ijLQMF9eBoesKwciblI1mtuN/lghZjbQmVCXxCCdPxaVAC4Rzxrvd6CG
         6NOw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756591909; x=1757196709;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=qZp0lPgPe4HlwnbMcyoSq9Puvmd7k9VTEkM+R0CcSMc=;
        b=nY1xzZ9T+p6kYN+yBHgm6AVIIPj2IcQBA4M3hwVuwRm1+iJPfN1M+RZ4xgVFNiLBj6
         wO0Xz6aC9L/ca5B4gIwWDsvhIl9ZY7gWcAUr1dkw0GOrVj9jBVLN0ZHnvXkTFpkPfOxO
         89OFQOIfdqwWzkns6nmc31Lx2DFzCepX/uUliTaPNXyi2CECoqj4aLrDF2/zfIU7MiMZ
         rh0Bs7fDdmcUZh/venA10ZFlHMt3BEly+Q1P9H0Q11W3Y4Da0s7tr34XaNMbNHPPDpZu
         bwuldRaNLiv97oMd66bzU6M1IXiQ6qPtR60O9pfM87PhChblqxTTAgQfmwdDdHEAS2W/
         xCrA==
X-Gm-Message-State: AOJu0YzK5z+W8htjDksVHgHAMbrf3Q02n/K1HwXDLeNYQrLhq3s/K4eS
	UzuqJDf1p9yYKWUHlMxI+/Lvcxsn7OFibar9p4bqdcW3Eeu6WUE/VktJdSlxsXcU
X-Gm-Gg: ASbGncsdjE1UzDNJQRsnu32e1g6X1liJMYm0e9154yjQHgCQX4JZcesgPvVEpbEljhZ
	Pyyjh6IopfUpe2nn41Xt5UBBjIudcLJDF6LbNBNPTDX9yQyIWhQAWEV2jJEPiaQU1mXyCDNd6wq
	liSWwJhOCR6AtgOnVwpgI5lr5jALafP5SWQN6nfoyrrJkgAvSRIlfqPCiVzkcDeX0kr3FnJBGrv
	U4Ts6AhYpVP3BfrdkGo5YoM5pZwpX5dM6rx6VSDqQAWa854DF6k4f6g6IliVyfKIVmcyMNKqrgp
	dikx19749ybP1MaEXioP6HIh4DKHX1uzbEtdsaL17/fqAWuCNjytMtYgjIS8Cmn8HP38zsWMe99
	XVvFOekTzeEwSlr85o+XemerGrQwbYWp00QuOk9h1iN/E1bafOyqYeLQXVIYRrA==
X-Google-Smtp-Source: AGHT+IGpiA0Ene6qFKdtJFpXJCjSNsEg7lgYEnD7D8AoqBEsq6/9Y69yteNTjlSgxc+3GIY7LPjJ/A==
X-Received: by 2002:a05:651c:19a3:b0:336:527a:5b4d with SMTP id 38308e7fff4ca-336caac9b8dmr6766541fa.19.1756591909184;
        Sat, 30 Aug 2025 15:11:49 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	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>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Juergen Gross <jgross@suse.com>,
	Community Manager <community.manager@xenproject.org>
Subject: [PATCH v12 0/4] Enable guest suspend/resume support on ARM via vPSCI
Date: Sun, 31 Aug 2025 01:10:27 +0300
Message-ID: <cover.1756586648.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.48.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

This patch series introduces the initial support for guest suspend
and resume on ARM platforms using the PSCI SYSTEM_SUSPEND interface. The main
goal is to allow ARM guests to request suspension using PSCI and be resumed
by the control domain (e.g., via "xl resume").

### Background

The PSCI SYSTEM_SUSPEND call is part of the PSCI v1.0+ specification and is
used by guests to enter the deepest possible power state. On Xen/ARM, we
emulate this interface in the virtual PSCI (vPSCI) layer for guests.

This series includes:

1. A new vPSCI implementation of the PSCI SYSTEM_SUSPEND function for guests
2. Documentation updates to SUPPORT.md to reflect PSCI and vPSCI support status
3. Enabling "xl resume" command compilation for ARM, which was previously disabled

### Usage

For Linux-based guests:
  - Suspend can be triggered using: "echo mem > /sys/power/state" or "systemctl suspend"
  - Resume can be performed from control domain using: "xl resume <domain>"

For more information, refer to the official Linux kernel documentation on power management.

Note that currently, SYSTEM_SUSPEND is supported only for guest domains (not for
the hardware domain).
---

This is the first part of previous patch series and originally consist only
with necessary changes needed for guest domain suspend.

The second part can be found here:
    https://patchew.org/Xen/cover.1754943874.git.mykola._5Fkvach@epam.com/
---

Changes in v12:
- Use the input vCPU from vpsci_vcpu_up_prepare function argument instead of current.
- Add a check for the wake_cpu pointer on resume.
- Call arch_domain_resume() under shutdown_lock.
- Drop redundant vgic_clear_pending_irqs() call from vpsci_vcpu_up_prepare().

Changes in V11:
- introduce arch_domain_resume() and vpsci_vcpu_up_prepare(), which are now
called on the resume path to avoid extra modifications to common code.
The vCPU context is now updated during domain resume.

Changes in V10:
- An ARM-specific helper (domain_resume_nopause_helper)
- An isb() is added before p2m_save_state
- The is_64bit_domain check is dropped when masking the upper part of entry
  point and cid for SMC32 SYSTEM_SUSPEND PSCI calls
- Status of vPSCI SYSTEM_SUSPEND changed from "Experimental" to "Tech Preview"

Changes in V9:
- no functional changes
- enhance commit message and add extra comment to the code after review

Changes in V8:
- GIC and virtual timer context saved when the domain suspends
- rework locking
- minor changes after code review

Changes in V7:
- add proper locking
- minor changes after code review

Main changes in V6:
- Skip execution of ctxt_switch_from for VCPUs in paused domains.
- Implement domain_resume_nopause
- Add a helper to determine if a VCPU is in suspended domain.
- Ignore upper 32 bits of arguments for 64-bit domains calling SMC32 SYSTEM_SUSPEND.
- Macro renamed from LIBXL_HAVE_NO_SUSPEND_RESUME to LIBXL_HAVE_NO_SUSPEND for clarity.
- Documentation now focuses only on the SYSTEM_SUSPEND function, with improved wording and structure.
- Changelog and commit messages refined for clarity and to remove redundant explanations.

Main change in V5:
  - Reverted the logic related to suspending domains. Instead of the standby
    mode introduced in v4, domains now resume execution at the point provided
    during suspend

The rest of the minor changes are described in the changelog of each commit.

Previous versions of this patch series:
  V1: https://lists.xenproject.org/archives/html/xen-devel/2018-11/msg01093.html
  V2: https://marc.info/?l=xen-devel&m=166514782207736&w=2
  V3: https://lists.xenproject.org/archives/html/xen-devel/2025-03/msg00168.html

Mykola Kvach (4):
  xen/arm: Implement PSCI SYSTEM_SUSPEND call for guests
  tools/xl: Allow compilation of 'xl resume' command on Arm
  SUPPORT.md: Document PSCI SYSTEM_SUSPEND support for guests
  CHANGELOG: Document guest suspend/resume to RAM support on Arm

 CHANGELOG.md                          |   2 +
 SUPPORT.md                            |   5 +-
 tools/include/libxl.h                 |   1 -
 tools/xl/xl.h                         |   4 +-
 tools/xl/xl_cmdtable.c                |   4 +-
 tools/xl/xl_migrate.c                 |   2 +-
 tools/xl/xl_saverestore.c             |   2 +-
 tools/xl/xl_vmcontrol.c               |  12 +--
 xen/arch/arm/domain.c                 |  37 ++++++++
 xen/arch/arm/include/asm/domain.h     |   6 ++
 xen/arch/arm/include/asm/perfc_defn.h |   1 +
 xen/arch/arm/include/asm/psci.h       |   2 +
 xen/arch/arm/include/asm/vpsci.h      |   5 +-
 xen/arch/arm/vpsci.c                  | 116 +++++++++++++++++++++-----
 xen/arch/ppc/stubs.c                  |   5 ++
 xen/arch/riscv/stubs.c                |   5 ++
 xen/arch/x86/domain.c                 |   5 ++
 xen/common/domain.c                   |   9 ++
 xen/include/xen/domain.h              |   2 +
 19 files changed, 188 insertions(+), 37 deletions(-)

-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Sat Aug 30 22:12:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 30 Aug 2025 22:12:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1103293.1455115 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1usTnh-0004wD-Um; Sat, 30 Aug 2025 22:11:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1103293.1455115; Sat, 30 Aug 2025 22:11: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 1usTnh-0004vN-OT; Sat, 30 Aug 2025 22:11:57 +0000
Received: by outflank-mailman (input) for mailman id 1103293;
 Sat, 30 Aug 2025 22:11:55 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=IC44=3K=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1usTnf-0004DJ-Gf
 for xen-devel@lists.xenproject.org; Sat, 30 Aug 2025 22:11:55 +0000
Received: from mail-lj1-x229.google.com (mail-lj1-x229.google.com
 [2a00:1450:4864:20::229])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 56930289-85ee-11f0-8adc-4578a1afcccb;
 Sun, 31 Aug 2025 00:11:55 +0200 (CEST)
Received: by mail-lj1-x229.google.com with SMTP id
 38308e7fff4ca-336c2194a65so9280011fa.2
 for <xen-devel@lists.xenproject.org>; Sat, 30 Aug 2025 15:11:55 -0700 (PDT)
Received: from yp-VivoBook-ASUSLaptop-M1503QA-M1503QA.. ([95.67.15.120])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-336d0e3f39dsm4662091fa.45.2025.08.30.15.11.53
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sat, 30 Aug 2025 15:11: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>
X-Inumbo-ID: 56930289-85ee-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756591914; x=1757196714; 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=hngrpYued6VRjNdXSCXsejFnZ9+NvVTFmNBYrfCV2Ms=;
        b=Z2za9fsXrYVocA703yZvOUNk+Qc+vRzf2hwV18RDCsjU/OaDze3wChim4a6xviBHXc
         o0IkWVGCjWTlyyt5IhZbpXd97uQVKcVe7+N9rjNon2oQhKLLe1UX2rAd61UcEWyjGSYl
         KYvXzy9Obxr239cZh8duIMii8bkXe5tzgw0U0WKknOnkjghgwS0ERMaatjpwhIWcCw8x
         xzYeEUK7ASMBKIFHawneBVLRCZih0A7iHm5c17JFFUZLCoB7gN3O7hEJhA+4k7kIEGEE
         5XGTnvAM/tQCd6jGizYiV5aGzDV6vmg3bNakhZWuMEaesdmH1QNWa3uwA5OhhW/ERmro
         GaHA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756591914; x=1757196714;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=hngrpYued6VRjNdXSCXsejFnZ9+NvVTFmNBYrfCV2Ms=;
        b=hrOKPIQp363IKEe6XMfHkvG3EYrGZhZ0jkCzTDxuG5xxegPUzpU/6wN2UKVZoLK6uX
         n/3ghaKKsiasZJHhV3w1ATOUdtjxw/ZVm2vZ1IQpyh/186uuwBzEuO5DLxpjBtZ2ThwN
         Ya6I/31XspeeixveZ7ALtw6hk+mBNKTyB1qkCybNJKUvVzgl/IwSNZxubI7oSVlE35HU
         bM/jtAbjMu1eWczbSVViP1zIIe11aHl0ve5sBbuhO+1nVoDralzGXALhwa4d9EEXMEdJ
         fUJy8LqAhoYYYbAQjx6cbU9MZFHZUxy371YcIkurLKGlnvDO9JQf6qBglVh2Ye0Hs8wl
         X0+Q==
X-Gm-Message-State: AOJu0YzoaU/oRHEH4ep0u65heVCpbLXzDr/GQ7NQ6BMfEWaBCY/SIdPe
	rclY7oHYKgadZkn9qZiMpkr5qF4ItEs41L9HmEoiaiAEjTFTPfh/2zYHxaYhmsfq
X-Gm-Gg: ASbGncu07Bx9RUOU+WjsckdF/GHTf+PoCr/xLmNOHw0fr+6w8tNVmz8ZaarCNqxBy/U
	P5bTkOLk1SohDm5IfKN+hsWOHtX7wGmCddFiIMguQvATAbE8jZPD6Jmbp1lCFiSKOb1eaQbg21c
	jRX04UJGF7A3AFP4tH14+jl/TMm7PdAN00O5gIqit/dKpaCwJd9lexYxM0Bbcs1pbcTtC+Nrp5M
	NuIZ8FtdfNx1Aht1B3gshAyVAvRiz9nf8of9U/AyvnIawZIcxZZ2PVrHivlQfLFzUk5rBa5+znp
	JtHHnZpm4UqNIiif1bMMPbu/B+zsAdxRsgwvlDT+8yItDgJ1S5w4LBSzEa1LZomUCMeaQ+LA9OA
	t6Vk/Gz8d3kxSZbYLN6c4/SKXb0uxrIPFqNDZ5mJO1Fe8Bv/DIuUZ+FI/MZHtguv4uP8IBi7i
X-Google-Smtp-Source: AGHT+IF6W/eY1aZ8zkzvkW2vlkataEeADD5F2FfeHBuBv7qGYmwoOgtnCCNrekWZejYNTvmtjdjxfw==
X-Received: by 2002:a2e:be12:0:b0:336:dd19:7653 with SMTP id 38308e7fff4ca-336dd197c03mr156741fa.25.1756591913943;
        Sat, 30 Aug 2025 15:11:53 -0700 (PDT)
From: Mykola Kvach <xakep.amatop@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Mykola Kvach <mykola_kvach@epam.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Community Manager <community.manager@xenproject.org>
Subject: [PATCH v12 4/4] CHANGELOG: Document guest suspend/resume to RAM support on Arm
Date: Sun, 31 Aug 2025 01:10:31 +0300
Message-ID: <dab2be659270fdee7e3da9b83eeee17494542b9e.1756586648.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.1756586648.git.mykola_kvach@epam.com>
References: <cover.1756586648.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

Mention the newly added support for guest suspend and resume to/from
RAM via vPSCI on Arm platforms.

This support is limited to non-hardware domain guests.

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Chnages in v6:
- removed reduntand explanation that thi support added for
  both arm32 and arm64.

Changes in v5:
- adjustments to the commit title and message
- expanded the changelog entry to include more context about
  suspend/resume support introduced in this patch series
---
 CHANGELOG.md | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index cd34ea87b8..7a75bd37cb 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -36,6 +36,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
 
  - On Arm:
     - Ability to enable stack protector
+    - Support for guest suspend and resume to/from RAM via vPSCI.
+      Applies only to non-hardware domain guests.
 
 ### Removed
  - On x86:
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Sat Aug 30 22:12:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 30 Aug 2025 22:12:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1103291.1455089 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1usTng-0004JV-0x; Sat, 30 Aug 2025 22:11:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1103291.1455089; Sat, 30 Aug 2025 22:11: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 1usTnf-0004Gv-R6; Sat, 30 Aug 2025 22:11:55 +0000
Received: by outflank-mailman (input) for mailman id 1103291;
 Sat, 30 Aug 2025 22:11:54 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=IC44=3K=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1usTne-0004DJ-Fd
 for xen-devel@lists.xenproject.org; Sat, 30 Aug 2025 22:11:54 +0000
Received: from mail-lj1-x22f.google.com (mail-lj1-x22f.google.com
 [2a00:1450:4864:20::22f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 54e04af6-85ee-11f0-8adc-4578a1afcccb;
 Sun, 31 Aug 2025 00:11:52 +0200 (CEST)
Received: by mail-lj1-x22f.google.com with SMTP id
 38308e7fff4ca-336ce4a8bfcso4004541fa.0
 for <xen-devel@lists.xenproject.org>; Sat, 30 Aug 2025 15:11:52 -0700 (PDT)
Received: from yp-VivoBook-ASUSLaptop-M1503QA-M1503QA.. ([95.67.15.120])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-336d0e3f39dsm4662091fa.45.2025.08.30.15.11.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sat, 30 Aug 2025 15:11: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>
X-Inumbo-ID: 54e04af6-85ee-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756591911; x=1757196711; 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=+l1ajKvruEehBQlS6tknmImuDpxx3sppzEvUtj7BIK4=;
        b=BsaXQyM0dR+WzdMGJpxkej9DzkFN9OfCAnTi6nykFiiV1+IhtebKp14ZB7hwz+8fyk
         1kQRrnNZKaWbeI7HZF/U/km/1Leu6N+qN8gwqg8+Jr2vFbezC7zl7fL/e09+o0HKalas
         opOvAeRXPO1K6VFpie4tH7eXX1JNjOqQn1lPS4KzBtoThvqHK1Y17uvtD7x2BNN+2Au+
         R74LKbVfwm5l2KBwGUV1XIB5UE5puPTSVBzEUryYzGYLOXuCbm4JcDF5TOeRBtDiO68v
         jFdEumo67jlNnRAsLi3i4MK4uPWb7LAZ84WkXt7Em+uuIAYcKdnb5kRZ6Ra9ZtPer87k
         wutQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756591911; x=1757196711;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=+l1ajKvruEehBQlS6tknmImuDpxx3sppzEvUtj7BIK4=;
        b=nGR4WBPTim7lBp30sZZQhx8+M/t5qcpiXUQOoBsbCKgswG6IOzTiFmBSAHis6v7cNc
         hl/u7C5PEU1qE5oAaYrU3BWpFidCln8gBN3WGHACeQv3OVJ2rYujqFqQHAPRT2Lcd9Xo
         NJpRYBf2A6a2oZXeAa6iOwV1uIcE7nLMUl1dWz1k3gVwLt9RgCibd9lcEU4Ga7bwDdjc
         XMkiu/4kd1knqBAnUpDFwOqHYYSgxVUn+prfMbAG57sBYFtrWxWdnesmIov19quXqytM
         hsKBILd9q/+2TLOIZloaUVJe+/wJhRlTtWfdqYd1Tv4WCkL3t6VTZw/MsOBAt4QE8Gmg
         yVxA==
X-Gm-Message-State: AOJu0YxDzdcmB3/zasXA7++fX2MdPTde3gKzOyCOXWx3ehag/0shg8Cp
	yYAMtocuF8FdzTGfLvELEad9bpM6MCDsJn4ckhnd/h7+IIVaWqh77K170Go4I/kx
X-Gm-Gg: ASbGncv21yPoTk/rgOUy5+qBmS9JkIFjk7bg8IshfQ4/qob4tlhevy8yC2w+ozF+ywL
	236BW3nlpDb053NRrFbct9bRh5eQ6qTTf7yqcu2skbZiXZnDpvfgFLscIb2D0+1eghJbU4OxkAi
	TiHYHRieyasPC1ly1P7WJNtbMEiTYcCCOCraGGyevIyQ2P58vVt9MRzIbzgvZQs7yt7SP4PdWiL
	2egkEybfZ16KTQJr/+bBALIrNhiJcoAAWPf8/s9fqh31WWct+HBugRXTt3eXwDmGUPGLVIyyJXS
	Jl7aAU97kOmevVJAe76GNFNmMhtjgG5ILg6jwCEHKkZQ7LNqjMMZzb4l7s0YeS82GegWSg2C72V
	t1Iepx1QiADxNmVCBFfckmybEDjmLrAtM2EZrU3/yyIXmm+2Sm/jzgiCDkJuwSA==
X-Google-Smtp-Source: AGHT+IFtYSeneux9Y2bWfhFp02RMYgTm44SVwuqGiZdzA2hZBjkQfnZqolNRAygviWe8dPbWPIe/XQ==
X-Received: by 2002:a05:651c:b2a:b0:336:da93:1089 with SMTP id 38308e7fff4ca-336da9319e6mr978181fa.39.1756591911024;
        Sat, 30 Aug 2025 15:11: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>,
	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>,
	Shawn Anastasio <sanastasio@raptorengineering.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Bob Eshleman <bobbyeshleman@gmail.com>,
	Connor Davis <connojdavis@gmail.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: [PATCH v12 1/4] xen/arm: Implement PSCI SYSTEM_SUSPEND call for guests
Date: Sun, 31 Aug 2025 01:10:28 +0300
Message-ID: <244e5c2bcebad9563595ac7564ffa105d5f568d3.1756586648.git.mykola_kvach@epam.com>
X-Mailer: git-send-email 2.48.1
In-Reply-To: <cover.1756586648.git.mykola_kvach@epam.com>
References: <cover.1756586648.git.mykola_kvach@epam.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Mykola Kvach <mykola_kvach@epam.com>

Add support for the PSCI SYSTEM_SUSPEND function in the vPSCI interface,
allowing guests to request suspend via the PSCI v1.0 SYSTEM_SUSPEND call
(both 32-bit and 64-bit variants).

Implementation details:
- Add SYSTEM_SUSPEND function IDs to PSCI definitions
- Trap and handle SYSTEM_SUSPEND in vPSCI
- Allow only non-hardware domains to invoke SYSTEM_SUSPEND; return
  PSCI_NOT_SUPPORTED for the hardware domain to avoid halting the system
  in hwdom_shutdown() via domain_shutdown
- Require all secondary VCPUs of the calling domain to be offline before
  suspend, as mandated by the PSCI specification

The arch_domain_resume() function is an architecture-specific hook that is
invoked during domain resume to perform any necessary setup or restoration
steps required by the platform.

The new vpsci_vcpu_up_prepare() helper is called on the resume path to set up
the vCPU context (such as entry point, some system regs and context ID) before
resuming a suspended guest. This keeps ARM/vPSCI-specific logic out of common
code and avoids intrusive changes to the generic resume flow.

Usage:

For Linux-based guests, suspend can be initiated with:
    echo mem > /sys/power/state
or via:
    systemctl suspend

Resuming the guest is performed from control domain using:
      xl resume <domain>

Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
---
Changes in v12:
- Use the input vCPU from vpsci_vcpu_up_prepare function argument instead of current.
- Add a check for the wake_cpu pointer on resume.
- Call arch_domain_resume() under shutdown_lock.
- Drop redundant vgic_clear_pending_irqs() call from vpsci_vcpu_up_prepare().
- Cosmetic fixes.

Changes in V11:
- introduce arch_domain_resume() and vpsci_vcpu_up_prepare(), which are now
called on the resume path to avoid extra modifications to common code.
The vCPU context is now updated during domain resume.

Changes in V10:
- small changes to the commit message reflect updates introduced in this
  version of the patch.
- Comments are improved, clarified, and expanded, especially regarding PSCI
  requirements and context handling.
- An ARM-specific helper (domain_resume_nopause_helper)
- gprintk() and PRIregister are used for logging in vPSCI code.
- An isb() is added before p2m_save_state
- The is_64bit_domain check is dropped when masking the upper part of entry
  point and cid for SMC32 SYSTEM_SUSPEND PSCI calls

Changes in V9:
- no functional changes
- cosmetic chnages after review
- enhance commit message and add extra comment to the code after review

Changes in V8:
- GIC and virtual timer context must be saved when the domain suspends
- rework locking
- minor changes after code review

Changes in V7:
- add proper locking
- minor changes after code review

Changes in V6:
- skip execution of ctxt_switch_from for vcpu that is in paused domain
- add implementation of domain_resume without domain_pause
- add helper function to determine if vcpu is suspended or not
- ignore upper 32 bits of argument values when the domain is 64-bit
  and calls the SMC32 SYSTEM_SUSPEND function
- cosmetic changes after review

Changes in V5:
- don't use standby mode, restore execution in a provided by guest point
- move checking that all CPUs, except current one, are offline to after
  pausing the vCPUs
- provide ret status from arch_domain_shutdown and handle it in
  domain_shutdown
- adjust VPSCI_NR_FUNCS to reflect the number of newly added PSCI functions

Changes in V4:
Dropped all changes related to watchdog, domain is marked as shutting
down in domain_shutdown and watchdog timeout handler won't trigger
because of it.

Previous versions included code to manage Xen watchdog timers during suspend,
but this was removed. When a guest OS starts the Xen watchdog (either via the
kernel driver or xenwatchdogd), it is responsible for managing that state
across suspend/resume. On Linux, the Xen kernel driver properly stops the
watchdog during suspend. However, when xenwatchdogd is used instead, suspend
handling is incomplete, potentially leading to watchdog-triggered resets on
resume. Xen leaves watchdog handling to the guest OS and its services.

Dropped all changes related to VCPU context, because instead domain_shutdown
is used, so we don't need any extra changes for suspending domain.

Changes in V3:
Dropped all domain flags and related code (which touched common functions like
vcpu_unblock), keeping only the necessary changes for Xen suspend/resume, i.e.
suspend/resume is now fully supported only for the hardware domain.
Proper support for domU suspend/resume will be added in a future patch.
This patch does not yet include VCPU context reset or domain context
restoration in VCPU.
---
 xen/arch/arm/domain.c                 |  37 ++++++++
 xen/arch/arm/include/asm/domain.h     |   6 ++
 xen/arch/arm/include/asm/perfc_defn.h |   1 +
 xen/arch/arm/include/asm/psci.h       |   2 +
 xen/arch/arm/include/asm/vpsci.h      |   5 +-
 xen/arch/arm/vpsci.c                  | 116 +++++++++++++++++++++-----
 xen/arch/ppc/stubs.c                  |   5 ++
 xen/arch/riscv/stubs.c                |   5 ++
 xen/arch/x86/domain.c                 |   5 ++
 xen/common/domain.c                   |   9 ++
 xen/include/xen/domain.h              |   2 +
 11 files changed, 171 insertions(+), 22 deletions(-)

diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index 863ae18157..7d7358abe5 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -12,6 +12,8 @@
 #include <xen/softirq.h>
 #include <xen/wait.h>
 
+#include <public/sched.h>
+
 #include <asm/arm64/sve.h>
 #include <asm/cpuerrata.h>
 #include <asm/cpufeature.h>
@@ -27,6 +29,7 @@
 #include <asm/tee/tee.h>
 #include <asm/vfp.h>
 #include <asm/vgic.h>
+#include <asm/vpsci.h>
 #include <asm/vtimer.h>
 
 #include "vpci.h"
@@ -880,6 +883,40 @@ void arch_domain_creation_finished(struct domain *d)
     p2m_domain_creation_finished(d);
 }
 
+int arch_domain_resume(struct domain *d)
+{
+    int rc;
+    typeof(d->arch.resume_ctx) *ctx = &d->arch.resume_ctx;
+
+    if ( !d->is_shutting_down || d->shutdown_code != SHUTDOWN_suspend )
+    {
+        dprintk(XENLOG_WARNING,
+                "%pd: Invalid domain state for resume: is_shutting_down=%d, shutdown_code=%d\n",
+                d, d->is_shutting_down, d->shutdown_code);
+        return -EINVAL;
+    }
+
+    /*
+     * It is still possible to call domain_shutdown() with a suspend reason
+     * via some hypercalls, such as SCHEDOP_shutdown or SCHEDOP_remote_shutdown.
+     * In these cases, the resume context will be empty.
+     * This is not expected to cause any issues, so we just warn about the
+     * situation and return without error, allowing the existing logic to
+     * proceed as expected.
+     */
+    if ( !ctx->wake_cpu )
+    {
+        dprintk(XENLOG_WARNING, "%pd: Invalid wake CPU pointer for resume\n",
+                d);
+        return 0;
+    }
+
+    rc = vpsci_vcpu_up_prepare(ctx->wake_cpu , ctx->ep, ctx->cid);
+    memset(ctx, 0, sizeof(*ctx));
+
+    return rc;
+}
+
 static int is_guest_pv32_psr(uint32_t psr)
 {
     switch (psr & PSR_MODE_MASK)
diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/domain.h
index a3487ca713..68185fc4d6 100644
--- a/xen/arch/arm/include/asm/domain.h
+++ b/xen/arch/arm/include/asm/domain.h
@@ -121,6 +121,12 @@ struct arch_domain
     void *tee;
 #endif
 
+    struct resume_info {
+        register_t ep;
+        register_t cid;
+        struct vcpu *wake_cpu;
+    } resume_ctx;
+
 }  __cacheline_aligned;
 
 struct arch_vcpu
diff --git a/xen/arch/arm/include/asm/perfc_defn.h b/xen/arch/arm/include/asm/perfc_defn.h
index effd25b69e..8dfcac7e3b 100644
--- a/xen/arch/arm/include/asm/perfc_defn.h
+++ b/xen/arch/arm/include/asm/perfc_defn.h
@@ -33,6 +33,7 @@ PERFCOUNTER(vpsci_system_reset,        "vpsci: system_reset")
 PERFCOUNTER(vpsci_cpu_suspend,         "vpsci: cpu_suspend")
 PERFCOUNTER(vpsci_cpu_affinity_info,   "vpsci: cpu_affinity_info")
 PERFCOUNTER(vpsci_features,            "vpsci: features")
+PERFCOUNTER(vpsci_system_suspend,      "vpsci: system_suspend")
 
 PERFCOUNTER(vcpu_kick,                 "vcpu: notify other vcpu")
 
diff --git a/xen/arch/arm/include/asm/psci.h b/xen/arch/arm/include/asm/psci.h
index 4780972621..48a93e6b79 100644
--- a/xen/arch/arm/include/asm/psci.h
+++ b/xen/arch/arm/include/asm/psci.h
@@ -47,10 +47,12 @@ void call_psci_system_reset(void);
 #define PSCI_0_2_FN32_SYSTEM_OFF          PSCI_0_2_FN32(8)
 #define PSCI_0_2_FN32_SYSTEM_RESET        PSCI_0_2_FN32(9)
 #define PSCI_1_0_FN32_PSCI_FEATURES       PSCI_0_2_FN32(10)
+#define PSCI_1_0_FN32_SYSTEM_SUSPEND      PSCI_0_2_FN32(14)
 
 #define PSCI_0_2_FN64_CPU_SUSPEND         PSCI_0_2_FN64(1)
 #define PSCI_0_2_FN64_CPU_ON              PSCI_0_2_FN64(3)
 #define PSCI_0_2_FN64_AFFINITY_INFO       PSCI_0_2_FN64(4)
+#define PSCI_1_0_FN64_SYSTEM_SUSPEND      PSCI_0_2_FN64(14)
 
 /* PSCI v0.2 affinity level state returned by AFFINITY_INFO */
 #define PSCI_0_2_AFFINITY_LEVEL_ON      0
diff --git a/xen/arch/arm/include/asm/vpsci.h b/xen/arch/arm/include/asm/vpsci.h
index 0cca5e6830..d790ab3715 100644
--- a/xen/arch/arm/include/asm/vpsci.h
+++ b/xen/arch/arm/include/asm/vpsci.h
@@ -23,12 +23,15 @@
 #include <asm/psci.h>
 
 /* Number of function implemented by virtual PSCI (only 0.2 or later) */
-#define VPSCI_NR_FUNCS  12
+#define VPSCI_NR_FUNCS  14
 
 /* Functions handle PSCI calls from the guests */
 bool do_vpsci_0_1_call(struct cpu_user_regs *regs, uint32_t fid);
 bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid);
 
+int vpsci_vcpu_up_prepare(struct vcpu *v, register_t entry_point,
+                          register_t context_id);
+
 #endif /* __ASM_VPSCI_H__ */
 
 /*
diff --git a/xen/arch/arm/vpsci.c b/xen/arch/arm/vpsci.c
index 7ba9ccd94b..22c3a5f544 100644
--- a/xen/arch/arm/vpsci.c
+++ b/xen/arch/arm/vpsci.c
@@ -10,32 +10,16 @@
 
 #include <public/sched.h>
 
-static int do_common_cpu_on(register_t target_cpu, register_t entry_point,
-                            register_t context_id)
+int vpsci_vcpu_up_prepare(struct vcpu *v, register_t entry_point,
+                   register_t context_id)
 {
-    struct vcpu *v;
-    struct domain *d = current->domain;
-    struct vcpu_guest_context *ctxt;
     int rc;
+    struct domain *d = v->domain;
     bool is_thumb = entry_point & 1;
-    register_t vcpuid;
-
-    vcpuid = vaffinity_to_vcpuid(target_cpu);
-
-    if ( (v = domain_vcpu(d, vcpuid)) == NULL )
-        return PSCI_INVALID_PARAMETERS;
-
-    /* THUMB set is not allowed with 64-bit domain */
-    if ( is_64bit_domain(d) && is_thumb )
-        return PSCI_INVALID_ADDRESS;
-
-    if ( !test_bit(_VPF_down, &v->pause_flags) )
-        return PSCI_ALREADY_ON;
+    struct vcpu_guest_context *ctxt;
 
     if ( (ctxt = alloc_vcpu_guest_context()) == NULL )
-        return PSCI_DENIED;
-
-    vgic_clear_pending_irqs(v);
+        return -ENOMEM;
 
     memset(ctxt, 0, sizeof(*ctxt));
     ctxt->user_regs.pc64 = (u64) entry_point;
@@ -76,8 +60,37 @@ static int do_common_cpu_on(register_t target_cpu, register_t entry_point,
     free_vcpu_guest_context(ctxt);
 
     if ( rc < 0 )
+        return rc;
+
+    return 0;
+}
+
+static int do_common_cpu_on(register_t target_cpu, register_t entry_point,
+                            register_t context_id)
+{
+    struct vcpu *v;
+    struct domain *d = current->domain;
+    int rc;
+    bool is_thumb = entry_point & 1;
+    register_t vcpuid;
+
+    vcpuid = vaffinity_to_vcpuid(target_cpu);
+
+    if ( (v = domain_vcpu(d, vcpuid)) == NULL )
+        return PSCI_INVALID_PARAMETERS;
+
+    /* THUMB set is not allowed with 64-bit domain */
+    if ( is_64bit_domain(d) && is_thumb )
+        return PSCI_INVALID_ADDRESS;
+
+    if ( !test_bit(_VPF_down, &v->pause_flags) )
+        return PSCI_ALREADY_ON;
+
+    rc = vpsci_vcpu_up_prepare(v, entry_point, context_id);
+    if ( rc )
         return PSCI_DENIED;
 
+    vgic_clear_pending_irqs(v);
     vcpu_wake(v);
 
     return PSCI_SUCCESS;
@@ -197,6 +210,48 @@ static void do_psci_0_2_system_reset(void)
     domain_shutdown(d,SHUTDOWN_reboot);
 }
 
+static int32_t do_psci_1_0_system_suspend(register_t epoint, register_t cid)
+{
+    int32_t rc;
+    struct vcpu *v;
+    struct domain *d = current->domain;
+    bool is_thumb = epoint & 1;
+
+    /* THUMB set is not allowed with 64-bit domain */
+    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 )
+    {
+        if ( v != current && is_vcpu_online(v) )
+        {
+            domain_unlock(d);
+            return PSCI_DENIED;
+        }
+    }
+    domain_unlock(d);
+
+    rc = domain_shutdown(d, SHUTDOWN_suspend);
+    if ( rc )
+        return PSCI_DENIED;
+
+    d->arch.resume_ctx.ep = epoint;
+    d->arch.resume_ctx.cid = cid;
+    d->arch.resume_ctx.wake_cpu = current;
+
+    gprintk(XENLOG_DEBUG,
+            "SYSTEM_SUSPEND requested, epoint=0x%"PRIregister", cid=0x%"PRIregister"\n",
+            epoint, cid);
+
+    return rc;
+}
+
 static int32_t do_psci_1_0_features(uint32_t psci_func_id)
 {
     /* /!\ Ordered by function ID and not name */
@@ -214,6 +269,8 @@ static int32_t do_psci_1_0_features(uint32_t psci_func_id)
     case PSCI_0_2_FN32_SYSTEM_OFF:
     case PSCI_0_2_FN32_SYSTEM_RESET:
     case PSCI_1_0_FN32_PSCI_FEATURES:
+    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
+    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
     case ARM_SMCCC_VERSION_FID:
         return 0;
     default:
@@ -344,6 +401,23 @@ bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid)
         return true;
     }
 
+    case PSCI_1_0_FN32_SYSTEM_SUSPEND:
+    case PSCI_1_0_FN64_SYSTEM_SUSPEND:
+    {
+        register_t epoint = PSCI_ARG(regs, 1);
+        register_t cid = PSCI_ARG(regs, 2);
+
+        if ( fid == PSCI_1_0_FN32_SYSTEM_SUSPEND )
+        {
+            epoint &= GENMASK(31, 0);
+            cid &= GENMASK(31, 0);
+        }
+
+        perfc_incr(vpsci_system_suspend);
+        PSCI_SET_RESULT(regs, do_psci_1_0_system_suspend(epoint, cid));
+        return true;
+    }
+
     default:
         return false;
     }
diff --git a/xen/arch/ppc/stubs.c b/xen/arch/ppc/stubs.c
index bdaf474c5c..0db0627b5c 100644
--- a/xen/arch/ppc/stubs.c
+++ b/xen/arch/ppc/stubs.c
@@ -224,6 +224,11 @@ void arch_domain_creation_finished(struct domain *d)
     BUG_ON("unimplemented");
 }
 
+int arch_domain_resume(struct domain *d)
+{
+    return 0;
+}
+
 int arch_set_info_guest(struct vcpu *v, vcpu_guest_context_u c)
 {
     BUG_ON("unimplemented");
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index 1a8c86cd8d..52532ae14d 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -198,6 +198,11 @@ void arch_domain_creation_finished(struct domain *d)
     BUG_ON("unimplemented");
 }
 
+int arch_domain_resume(struct domain *d)
+{
+    return 0;
+}
+
 int arch_set_info_guest(struct vcpu *v, vcpu_guest_context_u c)
 {
     BUG_ON("unimplemented");
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 19fd86ce88..94a06bc697 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -1138,6 +1138,11 @@ void arch_domain_creation_finished(struct domain *d)
         hvm_domain_creation_finished(d);
 }
 
+int arch_domain_resume(struct domain *d)
+{
+    return 0;
+}
+
 #ifdef CONFIG_COMPAT
 #define xen_vcpu_guest_context vcpu_guest_context
 #define fpu_ctxt fpu_ctxt.x
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 104e917f07..667017c5e1 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -1352,6 +1352,7 @@ int domain_shutdown(struct domain *d, u8 reason)
 void domain_resume(struct domain *d)
 {
     struct vcpu *v;
+    int rc;
 
     /*
      * Some code paths assume that shutdown status does not get reset under
@@ -1361,6 +1362,13 @@ void domain_resume(struct domain *d)
 
     spin_lock(&d->shutdown_lock);
 
+    rc = arch_domain_resume(d);
+    if ( rc )
+    {
+        printk("%pd: Failed to resume domain (ret %d)\n", d, rc);
+        goto fail;
+    }
+
     d->is_shutting_down = d->is_shut_down = 0;
     d->shutdown_code = SHUTDOWN_CODE_INVALID;
 
@@ -1371,6 +1379,7 @@ void domain_resume(struct domain *d)
         v->paused_for_shutdown = 0;
     }
 
+ fail:
     spin_unlock(&d->shutdown_lock);
 
     domain_unpause(d);
diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
index e10baf2615..5f77ffadf1 100644
--- a/xen/include/xen/domain.h
+++ b/xen/include/xen/domain.h
@@ -109,6 +109,8 @@ int arch_domain_soft_reset(struct domain *d);
 
 void arch_domain_creation_finished(struct domain *d);
 
+int arch_domain_resume(struct domain *d);
+
 void arch_p2m_set_access_required(struct domain *d, bool access_required);
 
 int arch_set_info_guest(struct vcpu *v, vcpu_guest_context_u c);
-- 
2.48.1



From xen-devel-bounces@lists.xenproject.org Sun Aug 31 12:42:28 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 31 Aug 2025 12:42:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1103715.1455129 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ushNr-0001ok-Eq; Sun, 31 Aug 2025 12:42:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1103715.1455129; Sun, 31 Aug 2025 12:42: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 1ushNr-0001oc-B0; Sun, 31 Aug 2025 12:42:11 +0000
Received: by outflank-mailman (input) for mailman id 1103715;
 Sun, 31 Aug 2025 12:42:09 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=I8SH=3L=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1ushNp-0001oT-NQ
 for xen-devel@lists.xenproject.org; Sun, 31 Aug 2025 12:42:09 +0000
Received: from mail-lf1-x129.google.com (mail-lf1-x129.google.com
 [2a00:1450:4864:20::129])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e7c5625f-8667-11f0-8dd7-1b34d833f44b;
 Sun, 31 Aug 2025 14:42:07 +0200 (CEST)
Received: by mail-lf1-x129.google.com with SMTP id
 2adb3069b0e04-55f72452a8eso1000503e87.3
 for <xen-devel@lists.xenproject.org>; Sun, 31 Aug 2025 05:42:07 -0700 (PDT)
Received: from [192.168.0.110] ([91.123.151.69])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-55f6771b24fsm2196576e87.48.2025.08.31.05.42.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 31 Aug 2025 05:42: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>
X-Inumbo-ID: e7c5625f-8667-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756644127; x=1757248927; 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=9ehfFUyFCAajawnrjTOP6oqFrle2TfuBF1tn2KbIV28=;
        b=m/RJ4fa599kbyFFPCUbeVc3sffU7AXbiDUoXfsts1qXvHc51zcyRu343QjN14h57lw
         EY+6VoTy/6hcX1tl+9tn3IPThYpbSCJDQ/FtcNVVyxE8BgR6vx1HvI2cLzO8TtpCzZuZ
         gLVZnTmlM2+AlKOu1Xz0NOBdkx8WLRdUEaQoFAXIf0sLIv4HoHuTx5+D5jnYN1awhzIv
         45eKMltaQmIjTUERiXiKrGvkrLib+19/BzZccV7QziUKWrgljK8k8KPxC1Ra4GFJB0Kc
         V+dUz7TFcopUu+Rm+3OxhIanbSTHNpTeje3EqUuHpcpb+XnjDtmB47CH/WB9bGx3goEZ
         wv2A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756644127; x=1757248927;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=9ehfFUyFCAajawnrjTOP6oqFrle2TfuBF1tn2KbIV28=;
        b=buRnV/Te0/sk6pzYur8Q9EVn3MKFxkWDfwabUuWA/uAZYp7CF6E8OLYESVfN/ejgeH
         IVxp7r4ICqymFlOVB2kaXK+UBOyGKIzwY5ZZJI7MmgHVpUrjasRFUpJAikymGmeQpOvI
         7c2jKNWKXjMwsccgcGt+HxQ3ZZ0wfpS/3RYzj7zwEjqALJHYFVjuhkUZGVIvsRk6loZS
         qbifIU4YHnpNFLA8ApZkcgwV6TIiFoitydaR2qjKWrkwA6v+fxtiNXr7oKg2g8H9jtvf
         6JbbXraBnXFJE0TlIwqpAmucXz5n5j8WyQtKXHG5po/HVSeHy9w8gYIzlmN7XSThbebU
         JJvA==
X-Forwarded-Encrypted: i=1; AJvYcCVq+68vxfJgyKElIbcbhmp7PwEwc/b2MnlbxVmGXPpI2UYovx3+nXMnJSRQIFrhNTygMPC7tarUc+w=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzefzU9e0kFUIKv9rPIQMjXwyWx6yKVq7HtcS4IUXI4rqDRdfaD
	jOoCdWS5xSV7FK7gIG5Lj1qvN15fQ9WXeY75onovr0JK/Wvj0Vq5GKQk
X-Gm-Gg: ASbGnct64alzW9pzmUOPKt2eoNtrIMdl1jKdtB4oWSiNAauey0/6db47psbYRYhBu3E
	kqoeJekF5n47AcJV5uDP27ufhBJ3i7sEYpoIzJPMhf6Sjav1QLitkOlEN/1mcjBbslpTNbEJiIG
	qC4kBOmyiAqlnkHu3v8Mj8JngqqarSyXfGxVMRHO8HlvVB45DoZ2l43AqR0A9/mcga6+WfAc6aX
	kMo8yS6hslHs7VZ69fxawVNGfR2Ud8NJb3ZNdwh4M2nfYdHgAOmFKl6mLZLQm2ez6k5+tTBIzBM
	vzZxf6Uv/tGiX9dTNh4PvkaIKeOMWL+gI/egKxtgpLd0ffh8S3qGBr6tWTqZHXQUQEkhsqg+246
	/YsYXahwyoSyg8S6EhzwfzxXFYg==
X-Google-Smtp-Source: AGHT+IHnKLe1GLP7APeYsinjv55qlet2jLDchuhFMEfTsu+Tomd8p3wALoAf+WsrLZweqMkoEEQPhg==
X-Received: by 2002:a05:6512:eaa:b0:55f:42a0:a1d9 with SMTP id 2adb3069b0e04-55f708bbd71mr1143555e87.24.1756644126821;
        Sun, 31 Aug 2025 05:42:06 -0700 (PDT)
Message-ID: <5b4de10b-a69b-47bc-8ab7-d9e3ce514027@gmail.com>
Date: Sun, 31 Aug 2025 15:42:02 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 01/12] xen/arm: gicv3: refactor obtaining GIC addresses
 for common operations
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Julien Grall <jgrall@amazon.com>
References: <cover.1756481577.git.leonid_komarianskyi@epam.com>
 <7da58b5a27d61f75eaebb749a7ab4c72655a12cb.1756481577.git.leonid_komarianskyi@epam.com>
Content-Language: en-US
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
In-Reply-To: <7da58b5a27d61f75eaebb749a7ab4c72655a12cb.1756481577.git.leonid_komarianskyi@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 29.08.25 19:06, Leonid Komarianskyi wrote:

Hello Leonid


> Currently, many common functions perform the same operations to calculate
> GIC register addresses. This patch consolidates the similar code into
> a separate helper function to improve maintainability and reduce duplication.
> This refactoring also simplifies the implementation of eSPI support in future
> changes.
> 
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
> Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
> Acked-by: Julien Grall <jgrall@amazon.com>

Reviewed-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

with one NIT ...

> 
> ---
> Changes in V5:
> - fixed a minor nit: changed %d to %u in the warning message because the
>    IRQ number cannot be less than zero
> - added acked-by from Julien Grall
> 
> Changes in V4:
> - no changes
> 
> Changes in V3:
> - changed panic() in get_addr_by_offset() to printing warning and
>    ASSERT_UNREACHABLE()
> - added verification of return pointer from get_addr_by_offset() in the
>    callers
> - moved invocation of get_addr_by_offset() from spinlock guards, since
>    it is not necessarry
> - added RB from Volodymyr Babchuk
> 
> Changes in V2:
> - no changes
> ---
>   xen/arch/arm/gic-v3.c          | 114 +++++++++++++++++++++++----------
>   xen/arch/arm/include/asm/irq.h |   1 +
>   2 files changed, 81 insertions(+), 34 deletions(-)
> 
> diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
> index cd3e1acf79..29b7f68cba 100644
> --- a/xen/arch/arm/gic-v3.c
> +++ b/xen/arch/arm/gic-v3.c
> @@ -445,17 +445,67 @@ static void gicv3_dump_state(const struct vcpu *v)
>       }
>   }
>   
> +static void __iomem *get_addr_by_offset(struct irq_desc *irqd, u32 offset)

  ... please use uint32_t for new code

(could probably updated on commit)


> +{
> +    switch ( irqd->irq )
> +    {
> +    case 0 ... (NR_GIC_LOCAL_IRQS - 1):
> +        switch ( offset )
> +        {
> +        case GICD_ISENABLER:
> +        case GICD_ICENABLER:
> +        case GICD_ISPENDR:
> +        case GICD_ICPENDR:
> +        case GICD_ISACTIVER:
> +        case GICD_ICACTIVER:
> +            return (GICD_RDIST_SGI_BASE + offset);
> +        case GICD_ICFGR:
> +            return (GICD_RDIST_SGI_BASE + GICR_ICFGR1);
> +        case GICD_IPRIORITYR:
> +            return (GICD_RDIST_SGI_BASE + GICR_IPRIORITYR0 + irqd->irq);
> +        default:
> +            break;
> +        }
> +    case NR_GIC_LOCAL_IRQS ... SPI_MAX_INTID:
> +        switch ( offset )
> +        {
> +        case GICD_ISENABLER:
> +        case GICD_ICENABLER:
> +        case GICD_ISPENDR:
> +        case GICD_ICPENDR:
> +        case GICD_ISACTIVER:
> +        case GICD_ICACTIVER:
> +            return (GICD + offset + (irqd->irq / 32) * 4);
> +        case GICD_ICFGR:
> +            return (GICD + GICD_ICFGR + (irqd->irq / 16) * 4);
> +        case GICD_IROUTER:
> +            return (GICD + GICD_IROUTER + irqd->irq * 8);
> +        case GICD_IPRIORITYR:
> +            return (GICD + GICD_IPRIORITYR + irqd->irq);
> +        default:
> +            break;
> +        }
> +    default:
> +        break;
> +    }
> +
> +    /* Something went wrong, we shouldn't be able to reach here */
> +    printk(XENLOG_WARNING "GICv3: WARNING: Invalid offset 0x%x for IRQ#%u",
> +           offset, irqd->irq);
> +    ASSERT_UNREACHABLE();
> +
> +    return NULL;
> +}
> +
>   static void gicv3_poke_irq(struct irq_desc *irqd, u32 offset, bool wait_for_rwp)
>   {
>       u32 mask = 1U << (irqd->irq % 32);
> -    void __iomem *base;
> +    void __iomem *addr = get_addr_by_offset(irqd, offset);
>   
> -    if ( irqd->irq < NR_GIC_LOCAL_IRQS )
> -        base = GICD_RDIST_SGI_BASE;
> -    else
> -        base = GICD;
> +    if ( addr == NULL )
> +        return;
>   
> -    writel_relaxed(mask, base + offset + (irqd->irq / 32) * 4);
> +    writel_relaxed(mask, addr);
>   
>       if ( wait_for_rwp )
>           gicv3_wait_for_rwp(irqd->irq);
> @@ -463,15 +513,12 @@ static void gicv3_poke_irq(struct irq_desc *irqd, u32 offset, bool wait_for_rwp)
>   
>   static bool gicv3_peek_irq(struct irq_desc *irqd, u32 offset)
>   {
> -    void __iomem *base;
> -    unsigned int irq = irqd->irq;
> +    void __iomem *addr = get_addr_by_offset(irqd, offset);
>   
> -    if ( irq >= NR_GIC_LOCAL_IRQS)
> -        base = GICD + (irq / 32) * 4;
> -    else
> -        base = GICD_RDIST_SGI_BASE;
> +    if ( addr == NULL )
> +        return false;
>   
> -    return !!(readl(base + offset) & (1U << (irq % 32)));
> +    return !!(readl(addr) & (1U << (irqd->irq % 32)));
>   }
>   
>   static void gicv3_unmask_irq(struct irq_desc *irqd)
> @@ -558,30 +605,28 @@ static inline uint64_t gicv3_mpidr_to_affinity(int cpu)
>   static void gicv3_set_irq_type(struct irq_desc *desc, unsigned int type)
>   {
>       uint32_t cfg, actual, edgebit;
> -    void __iomem *base;
> -    unsigned int irq = desc->irq;
> +    void __iomem *addr;
>   
>       /* SGI's are always edge-triggered not need to call GICD_ICFGR0 */
> -    ASSERT(irq >= NR_GIC_SGI);
> +    ASSERT(desc->irq >= NR_GIC_SGI);
>   
> -    spin_lock(&gicv3.lock);
> +    addr = get_addr_by_offset(desc, GICD_ICFGR);
> +    if ( addr == NULL )
> +        return;
>   
> -    if ( irq >= NR_GIC_LOCAL_IRQS)
> -        base = GICD + GICD_ICFGR + (irq / 16) * 4;
> -    else
> -        base = GICD_RDIST_SGI_BASE + GICR_ICFGR1;
> +    spin_lock(&gicv3.lock);
>   
> -    cfg = readl_relaxed(base);
> +    cfg = readl_relaxed(addr);
>   
> -    edgebit = 2u << (2 * (irq % 16));
> +    edgebit = 2u << (2 * (desc->irq % 16));
>       if ( type & IRQ_TYPE_LEVEL_MASK )
>           cfg &= ~edgebit;
>       else if ( type & IRQ_TYPE_EDGE_BOTH )
>           cfg |= edgebit;
>   
> -    writel_relaxed(cfg, base);
> +    writel_relaxed(cfg, addr);
>   
> -    actual = readl_relaxed(base);
> +    actual = readl_relaxed(addr);
>       if ( ( cfg & edgebit ) ^ ( actual & edgebit ) )
>       {
>           printk(XENLOG_WARNING "GICv3: WARNING: "
> @@ -600,16 +645,13 @@ static void gicv3_set_irq_type(struct irq_desc *desc, unsigned int type)
>   static void gicv3_set_irq_priority(struct irq_desc *desc,
>                                      unsigned int priority)
>   {
> -    unsigned int irq = desc->irq;
> +    void __iomem *addr = get_addr_by_offset(desc, GICD_IPRIORITYR);
>   
> -    spin_lock(&gicv3.lock);
> -
> -    /* Set priority */
> -    if ( irq < NR_GIC_LOCAL_IRQS )
> -        writeb_relaxed(priority, GICD_RDIST_SGI_BASE + GICR_IPRIORITYR0 + irq);
> -    else
> -        writeb_relaxed(priority, GICD + GICD_IPRIORITYR + irq);
> +    if ( addr == NULL )
> +        return;
>   
> +    spin_lock(&gicv3.lock);
> +    writeb_relaxed(priority, addr);
>       spin_unlock(&gicv3.lock);
>   }
>   
> @@ -1273,6 +1315,10 @@ static void gicv3_irq_set_affinity(struct irq_desc *desc, const cpumask_t *mask)
>   {
>       unsigned int cpu;
>       uint64_t affinity;
> +    void __iomem *addr = get_addr_by_offset(desc, GICD_IROUTER);
> +
> +    if ( addr == NULL )
> +        return;
>   
>       ASSERT(!cpumask_empty(mask));
>   
> @@ -1284,7 +1330,7 @@ static void gicv3_irq_set_affinity(struct irq_desc *desc, const cpumask_t *mask)
>       affinity &= ~GICD_IROUTER_SPI_MODE_ANY;
>   
>       if ( desc->irq >= NR_GIC_LOCAL_IRQS )
> -        writeq_relaxed_non_atomic(affinity, (GICD + GICD_IROUTER + desc->irq * 8));
> +        writeq_relaxed_non_atomic(affinity, addr);
>   
>       spin_unlock(&gicv3.lock);
>   }
> diff --git a/xen/arch/arm/include/asm/irq.h b/xen/arch/arm/include/asm/irq.h
> index fce7e42a33..5bc6475eb4 100644
> --- a/xen/arch/arm/include/asm/irq.h
> +++ b/xen/arch/arm/include/asm/irq.h
> @@ -29,6 +29,7 @@ struct arch_irq_desc {
>    */
>   #define NR_IRQS		1024
>   
> +#define SPI_MAX_INTID   1019
>   #define LPI_OFFSET      8192
>   
>   /* LPIs are always numbered starting at 8192, so 0 is a good invalid case. */



From xen-devel-bounces@lists.xenproject.org Sun Aug 31 13:13:09 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 31 Aug 2025 13:13:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1103728.1455138 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1ushri-0005fg-Ny; Sun, 31 Aug 2025 13:13:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1103728.1455138; Sun, 31 Aug 2025 13:13: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 1ushri-0005fZ-LN; Sun, 31 Aug 2025 13:13:02 +0000
Received: by outflank-mailman (input) for mailman id 1103728;
 Sun, 31 Aug 2025 13:13:00 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <SRS0=rrPb=3L=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1ushrg-0005fT-LO
 for xen-devel@lists.xenproject.org; Sun, 31 Aug 2025 13:13:00 +0000
Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 36772945-866c-11f0-8adc-4578a1afcccb;
 Sun, 31 Aug 2025 15:12:58 +0200 (CEST)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id D1202601AF;
 Sun, 31 Aug 2025 13:12:56 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id BB2B1C4CEED;
 Sun, 31 Aug 2025 13:12:55 +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>
X-Inumbo-ID: 36772945-866c-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1756645976;
	bh=SVfffytdJ7l+FJFH+NQ2fAYz/jln+XvhXnCAv4vVciA=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=WMN3gtSJVf7yZJvH25PHoup176xzR4iH45PFd5WTaZl3P3yIlcpIRkfu5U3ulpn36
	 IKubxjRKitiVH7tEFGk0EvSWGehRo+3Ze6ErmIyU4uPo4HQlYX4MxtypCD8fFWeHBM
	 x5lx5bK4qJ+D+MLZSAMBnr8/dS6PtN2tAd1/pTiMLV/guQAHue805z1yqYSMaGWuq1
	 Airln6Bzle28Ohk7U9LgDEafLkaTwO2O0iuzeLmhUWu5F6SgZbC5gh8KCCHy3wqp2C
	 Hcv7g6EwqE5WnoDtEeiWuc9ndJyrHz9MWyHpBWe4DPcTvzNQTROEZWINBtgECoxCxA
	 rqMaDKHjRKGlQ==
Date: Sun, 31 Aug 2025 16:12:50 +0300
From: Leon Romanovsky <leon@kernel.org>
To: Jason Gunthorpe <jgg@nvidia.com>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Abdiel Janulgue <abdiel.janulgue@gmail.com>,
	Alexander Potapenko <glider@google.com>,
	Alex Gaynor <alex.gaynor@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Hellwig <hch@lst.de>, Danilo Krummrich <dakr@kernel.org>,
	iommu@lists.linux.dev, Jason Wang <jasowang@redhat.com>,
	Jens Axboe <axboe@kernel.dk>, Joerg Roedel <joro@8bytes.org>,
	Jonathan Corbet <corbet@lwn.net>, Juergen Gross <jgross@suse.com>,
	kasan-dev@googlegroups.com, Keith Busch <kbusch@kernel.org>,
	linux-block@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux-nvme@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
	linux-trace-kernel@vger.kernel.org,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Miguel Ojeda <ojeda@kernel.org>,
	Robin Murphy <robin.murphy@arm.com>, rust-for-linux@vger.kernel.org,
	Sagi Grimberg <sagi@grimberg.me>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	virtualization@lists.linux.dev, Will Deacon <will@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 09/16] dma-mapping: handle MMIO flow in
 dma_map|unmap_page
Message-ID: <20250831131250.GC10073@unreal>
References: <cover.1755624249.git.leon@kernel.org>
 <ba5b6525bb8d49ca356a299aa63b0a495d3c74ca.1755624249.git.leon@kernel.org>
 <20250828151730.GH9469@nvidia.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20250828151730.GH9469@nvidia.com>

On Thu, Aug 28, 2025 at 12:17:30PM -0300, Jason Gunthorpe wrote:
> On Tue, Aug 19, 2025 at 08:36:53PM +0300, Leon Romanovsky wrote:
> > From: Leon Romanovsky <leonro@nvidia.com>
> > 
> > Extend base DMA page API to handle MMIO flow and follow
> > existing dma_map_resource() implementation to rely on dma_map_direct()
> > only to take DMA direct path.
> 
> I would reword this a little bit too
> 
> dma-mapping: implement DMA_ATTR_MMIO for dma_(un)map_page_attrs()
> 
> Make dma_map_page_attrs() and dma_map_page_attrs() respect
> DMA_ATTR_MMIO.
> 
> DMA_ATR_MMIO makes the functions behave the same as dma_(un)map_resource():
>  - No swiotlb is possible
>  - Legacy dma_ops arches use ops->map_resource()
>  - No kmsan
>  - No arch_dma_map_phys_direct()
> 
> The prior patches have made the internl funtions called here support
> DMA_ATTR_MMIO.
> 
> This is also preparation for turning dma_map_resource() into an inline
> calling dma_map_phys(DMA_ATTR_MMIO) to consolidate the flows.
> 
> > @@ -166,14 +167,25 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page,
> >  		return DMA_MAPPING_ERROR;
> >  
> >  	if (dma_map_direct(dev, ops) ||
> > -	    arch_dma_map_phys_direct(dev, phys + size))
> > +	    (!is_mmio && arch_dma_map_phys_direct(dev, phys + size)))
> >  		addr = dma_direct_map_phys(dev, phys, size, dir, attrs);
> 
> PPC is the only user of arch_dma_map_phys_direct() and it looks like
> it should be called on MMIO memory. Seems like another inconsistency
> with map_resource. I'd leave it like the above though for this series.
> 
> >  	else if (use_dma_iommu(dev))
> >  		addr = iommu_dma_map_phys(dev, phys, size, dir, attrs);
> > -	else
> > +	else if (is_mmio) {
> > +		if (!ops->map_resource)
> > +			return DMA_MAPPING_ERROR;
> 
> Probably written like:
> 
> 		if (ops->map_resource)
> 			addr = ops->map_resource(dev, phys, size, dir, attrs);
> 		else
> 			addr = DMA_MAPPING_ERROR;

I'm big fan of "if (!ops->map_resource)" coding style and prefer to keep it.

> 
> As I think some of the design here is to run the trace even on the
> failure path?

Yes, this is how it worked before.

> 
> Otherwise looks OK
> 
> Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
> 
> Jason


From xen-devel-bounces@lists.xenproject.org Sun Aug 31 14:09:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 31 Aug 2025 14:09:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1103754.1455148 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1usijm-0003WZ-Nr; Sun, 31 Aug 2025 14:08:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1103754.1455148; Sun, 31 Aug 2025 14:08: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 1usijm-0003WS-L9; Sun, 31 Aug 2025 14:08:54 +0000
Received: by outflank-mailman (input) for mailman id 1103754;
 Sun, 31 Aug 2025 14:08:53 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=I8SH=3L=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1usijl-0003WM-R1
 for xen-devel@lists.xenproject.org; Sun, 31 Aug 2025 14:08:53 +0000
Received: from mail-lf1-x129.google.com (mail-lf1-x129.google.com
 [2a00:1450:4864:20::129])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 05afb370-8674-11f0-8adc-4578a1afcccb;
 Sun, 31 Aug 2025 16:08:52 +0200 (CEST)
Received: by mail-lf1-x129.google.com with SMTP id
 2adb3069b0e04-55f6bb0a364so2343136e87.1
 for <xen-devel@lists.xenproject.org>; Sun, 31 Aug 2025 07:08:51 -0700 (PDT)
Received: from [192.168.0.110] ([91.123.151.69])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-55f7692f6ecsm705165e87.95.2025.08.31.07.08.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 31 Aug 2025 07:08: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>
X-Inumbo-ID: 05afb370-8674-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756649331; x=1757254131; 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=ymxuWFBdkbyelysuz+qdLUoYoIL1JRtAwBGX0twc+XI=;
        b=kEcrZuz0NDZsGCi+wXwy79wDrDhG/NAU7y08tcRZHPs0qQFDkKsqJ/KRgWcUUQxyJh
         gzN9ZdE+9LDtknd3GzRnDCn6TgYwuzcjxyKLTdrHloIFotAiQsLMqCykR1l7pKJFqeyA
         saYwjeHOexmoosgImEyP71CpkX+0pB6LItajfNS67oLY5ZpoFi91Au516kXlhE5CYwM7
         NF3VWCuGtyDgWzH9Lh0+7bUxwJQKrCOX2SuFMmScRS01AwomG6SB5ved2dlFuPMcH9nz
         orL3adJ2VQO7NNlNvAIe638RDpYA/AItpPX3dkABw/1DwGqjDtLkbCeQDkE6i3Lqz4Fw
         RTsA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756649331; x=1757254131;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=ymxuWFBdkbyelysuz+qdLUoYoIL1JRtAwBGX0twc+XI=;
        b=wVbptQvilAt1FlijWSTEPSl/J2vq1kiyuK2y3yzc48cxJNGB1qdGqUOQf60r+tRQR+
         41Re58BEI0a0Dszt/KDNZ2BVgjg/mmqGkItEtKrz6RvEN/48MPQtxcJtCq38sbFlwwcU
         uJEhiTQjOzjI8szbOsH2TWCSwsihOylpktYZcTkVbEp0WO1hpFGLuYT4PRiKGbzMbkg2
         Hhbku5XFpsPaqFp0ANiAOWFUHzFJloXA631CqTy4b5ZBGc2m3wNURUJ8lrA2FUq3jXCT
         FpVHjdUGVeqOhAo6wDZrOkhyxbVSwgiNnOn6qtXPGoQwTcEuzWHrMxZvLTnmF0+0mBi3
         f8nw==
X-Forwarded-Encrypted: i=1; AJvYcCVZIOpQXrdpiPXw6vwGQNlEdCwOgmBA+bjDlEPvkRn97lGzKcqC/L0AVDv/4H31OoOLI5qix+FhRYY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyuBjOtb0/M04rhBsBupAlsCEmDisQH8EDK26efDKAk+qs+Krxk
	0vlIjwcV8If4vKJwCahTPTtW4oYlONR/EUmaZGiLnHAduWzYyqQImugG
X-Gm-Gg: ASbGncvsy9lVoyxLKskcMJP+yj0RuqdpRSH8IG3NEQpenHouHhyyp2Z0mbY6+ZlPm+9
	YBEZqkBX1BBA3nbZp/WGSGWfxZdKqud2I0m8CyuY4HmQ3wWr4cuWEL3JwEhiAH1Ibayoc3OR/RM
	mEmgSHAcyB6AOBpdrBZ/bCBs6gRfgKWxMWp73R7buRbIChg8E3uQ5e2VHk6Cgot4szHgGan7+JP
	/C7Xmp3XSXTQLYYHS77GAMmnabxrsCvFcO0QzcP1/sdDzCpv6Y1G8vVmiQ5PtOjD2I0rVEKOgBl
	/DcLPjGuAhXV0+RZiCU6JnObt5sgdKMrY8m3aTXDpr6NLqQvU860MW/zgdTgVRmBMeDTxTYmu+M
	3ObWL9bKWdjqQlatxbMfQfhMIkQ==
X-Google-Smtp-Source: AGHT+IEENYWsLrPZ1v1dcAA2DkDrvl6xrWBccs2srhUoy4G98n9gjvUmL3S+PYrGsCu15J6u7jsDNA==
X-Received: by 2002:a05:6512:3c97:b0:55f:6a49:6e71 with SMTP id 2adb3069b0e04-55f708ecdadmr1159298e87.29.1756649330923;
        Sun, 31 Aug 2025 07:08:50 -0700 (PDT)
Message-ID: <c21ff32a-fc9d-4980-8d26-a3d6c1f2548c@gmail.com>
Date: Sun, 31 Aug 2025 17:08:47 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 04/12] xen/arm/irq: add handling for IRQs in the eSPI
 range
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>
Cc: Volodymyr Babchuk <Volodymyr_Babchuk@epam.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>,
 Michal Orzel <michal.orzel@amd.com>
References: <cover.1756481577.git.leonid_komarianskyi@epam.com>
 <e0f76a1533332cef68bfaacbdf57fd05f27764a6.1756481577.git.leonid_komarianskyi@epam.com>
 <87tt1pykqz.fsf@epam.com>
Content-Language: en-US
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
In-Reply-To: <87tt1pykqz.fsf@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 29.08.25 22:45, Volodymyr Babchuk wrote:
> 
> Hi Leonid,

Hello Leonid

> 
> Leonid Komarianskyi <Leonid_Komarianskyi@epam.com> writes:
> 
>> Currently, Xen does not support eSPI interrupts, leading
>> to a data abort when such interrupts are defined in the DTS.
>>
>> This patch introduces a separate array to initialize up to
>> 1024 interrupt descriptors in the eSPI range and adds the
>> necessary defines and helper function. These changes lay the
>> groundwork for future implementation of full eSPI interrupt
>> support. As this GICv3.1 feature is not required by all vendors,
>> all changes are guarded by ifdefs, depending on the corresponding
>> Kconfig option.
>>
>> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
>>
>> ---
>> Changes in V5:
>> - no functional changes introduced by this version compared with V4, only
>>    minor fixes and removal of ifdefs for macroses
>> - added TODO comment, suggested by Oleksandr Tyshchenko
>> - changed int to unsigned int for irqs
>> - removed ifdefs for eSPI-specific defines and macros to reduce the
>>    number of ifdefs and code duplication in further changes
>> - removed reviewed-by as moving defines from ifdefs requires additional
>>    confirmation from reviewers


Reviewed-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

with the following addressed ...


>>
>> Changes in V4:
>> - removed redundant line with 'default n' in Kconfig, as it is disabled
>>    by default, without explicit specification
>> - added reviewed-by from Volodymyr Babchuk
>>
>> Changes in V3:
>> - introduced a new define NR_ESPI_IRQS to avoid confusion, like in the
>>    case of using NR_IRQS for espi_desc array
>> - implemented helper functions espi_to_desc and init_espi_data to make
>>    it possible to add stubs with the same name, and as a result, reduce
>>    the number of #ifdefs
>> - disable CONFIG_GICV3_ESPI default value to n
>>
>> Changes in V2:
>> - use (ESPI_MAX_INTID + 1) instead of (ESPI_BASE_INTID + NR_IRQS)
>> - remove unnecessary comment for nr_irqs initialization
>> ---
>>   xen/arch/arm/Kconfig           |  8 +++++
>>   xen/arch/arm/include/asm/irq.h | 24 +++++++++++++++
>>   xen/arch/arm/irq.c             | 56 +++++++++++++++++++++++++++++++++-
>>   3 files changed, 87 insertions(+), 1 deletion(-)
>>
>> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
>> index 17df147b25..43b05533b1 100644
>> --- a/xen/arch/arm/Kconfig
>> +++ b/xen/arch/arm/Kconfig
>> @@ -135,6 +135,14 @@ config GICV3
>>   	  Driver for the ARM Generic Interrupt Controller v3.
>>   	  If unsure, use the default setting.
>>   
>> +config GICV3_ESPI
>> +	bool "Extended SPI range support"
>> +	depends on GICV3 && !NEW_VGIC
>> +	help
>> +	  Allow Xen and domains to use interrupt numbers from the extended SPI
>> +	  range, from 4096 to 5119. This feature is introduced in GICv3.1
>> +	  architecture.
>> +
>>   config HAS_ITS
>>           bool "GICv3 ITS MSI controller support (UNSUPPORTED)" if UNSUPPORTED
>>           depends on GICV3 && !NEW_VGIC && !ARM_32
>> diff --git a/xen/arch/arm/include/asm/irq.h b/xen/arch/arm/include/asm/irq.h
>> index 5bc6475eb4..4443799648 100644
>> --- a/xen/arch/arm/include/asm/irq.h
>> +++ b/xen/arch/arm/include/asm/irq.h
>> @@ -32,6 +32,13 @@ struct arch_irq_desc {
>>   #define SPI_MAX_INTID   1019
>>   #define LPI_OFFSET      8192
>>   
>> +#define ESPI_BASE_INTID 4096
>> +#define ESPI_MAX_INTID  5119
>> +#define NR_ESPI_IRQS    1024
>> +
>> +#define ESPI_INTID2IDX(intid) ((intid) - ESPI_BASE_INTID)
>> +#define ESPI_IDX2INTID(idx)   ((idx) + ESPI_BASE_INTID)
>> +
>>   /* LPIs are always numbered starting at 8192, so 0 is a good invalid case. */
>>   #define INVALID_LPI     0
>>   
>> @@ -39,7 +46,15 @@ struct arch_irq_desc {
>>   #define INVALID_IRQ     1023
>>   
>>   extern const unsigned int nr_irqs;
>> +#ifdef CONFIG_GICV3_ESPI
>> +/*
>> + * This will also cover the eSPI range, as some critical devices
>> + * for booting Xen (e.g., serial) may use this type of interrupts.
>> + */
>> +#define nr_static_irqs (ESPI_MAX_INTID + 1)
>> +#else
>>   #define nr_static_irqs NR_IRQS
>> +#endif
>>   
>>   struct irq_desc;
>>   struct irqaction;
>> @@ -55,6 +70,15 @@ static inline bool is_lpi(unsigned int irq)
>>       return irq >= LPI_OFFSET;
>>   }
>>   
>> +static inline bool is_espi(unsigned int irq)
>> +{
>> +#ifdef CONFIG_GICV3_ESPI
> 
> Taking into account that with CONFIG_GICV3_ESPI=n we should never have
> "irq" in eSPI range, do you really need this #ifdef? I think that
> ASSERT_UNREACHABLE in espi_to_desc() is sufficient guard.
> 
> Also, IRQ line number belongs to eSPI range regardless of CONFIG_GICV3_ESPI,
> value, so in my opinion is_espi() should always return correct value for
> a given "irq".

  ... I agree with Volodymyr's suggestion for is_espi() to always return 
correct value for a given "irq".


> 
>> +    return (irq >= ESPI_BASE_INTID && irq <= ESPI_MAX_INTID);
> 
> Also, you don't need parentheses here.
> 
>> +#else
>> +    return false;
>> +#endif
>> +}
>> +
>>   #define domain_pirq_to_irq(d, pirq) (pirq)
>>   
>>   bool is_assignable_irq(unsigned int irq);
>> diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
>> index b8eccfc924..61c915c3f9 100644
>> --- a/xen/arch/arm/irq.c
>> +++ b/xen/arch/arm/irq.c
>> @@ -19,7 +19,11 @@
>>   #include <asm/gic.h>
>>   #include <asm/vgic.h>
>>   
>> +#ifdef CONFIG_GICV3_ESPI
>> +const unsigned int nr_irqs = ESPI_MAX_INTID + 1;
>> +#else
>>   const unsigned int nr_irqs = NR_IRQS;
>> +#endif
>>   
>>   static unsigned int local_irqs_type[NR_LOCAL_IRQS];
>>   static DEFINE_SPINLOCK(local_irqs_type_lock);
>> @@ -46,6 +50,53 @@ void irq_end_none(struct irq_desc *irq)
>>   }
>>   
>>   static irq_desc_t irq_desc[NR_IRQS - NR_LOCAL_IRQS];
>> +#ifdef CONFIG_GICV3_ESPI
>> +/*
>> + * TODO: Consider allocating an array dynamically if
>> + * there is a need to enable GICV3_ESPI by default.
>> + */
>> +static irq_desc_t espi_desc[NR_ESPI_IRQS];
>> +
>> +static struct irq_desc *espi_to_desc(unsigned int irq)
>> +{
>> +    return &espi_desc[ESPI_INTID2IDX(irq)];
>> +}
>> +
>> +static int __init init_espi_data(void)
>> +{
>> +    unsigned int irq;
>> +
>> +    for ( irq = ESPI_BASE_INTID; irq <= ESPI_MAX_INTID; irq++ )
>> +    {
>> +        struct irq_desc *desc = irq_to_desc(irq);
>> +        int rc = init_one_irq_desc(desc);
>> +
>> +        if ( rc )
>> +            return rc;
>> +
>> +        desc->irq = irq;
>> +        desc->action  = NULL;
>> +    }
>> +
>> +    return 0;
>> +}
>> +#else
>> +/*
>> + * This function is stub and will not be called if CONFIG_GICV3_ESPI=n,
>> + * because in this case, is_espi will always return false.

  This comment should also be updated.

>> + */
>> +static struct irq_desc *espi_to_desc(unsigned int irq)
>> +{
>> +    ASSERT_UNREACHABLE();
>> +    return NULL;
>> +}
>> +
>> +static int __init init_espi_data(void)
>> +{
>> +    return 0;
>> +}
>> +#endif
>> +
>>   static DEFINE_PER_CPU(irq_desc_t[NR_LOCAL_IRQS], local_irq_desc);
>>   
>>   struct irq_desc *__irq_to_desc(unsigned int irq)
>> @@ -53,6 +104,9 @@ struct irq_desc *__irq_to_desc(unsigned int irq)
>>       if ( irq < NR_LOCAL_IRQS )
>>           return &this_cpu(local_irq_desc)[irq];
>>   
>> +    if ( is_espi(irq) )
>> +        return espi_to_desc(irq);
>> +
>>       return &irq_desc[irq-NR_LOCAL_IRQS];
>>   }
>>   
>> @@ -79,7 +133,7 @@ static int __init init_irq_data(void)
>>           desc->action  = NULL;
>>       }
>>   
>> -    return 0;
>> +    return init_espi_data();
>>   }
>>   
>>   static int init_local_irq_data(unsigned int cpu)
> 



From xen-devel-bounces@lists.xenproject.org Sun Aug 31 14:35:33 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 31 Aug 2025 14:35:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1103776.1455160 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1usj9S-0007QX-TY; Sun, 31 Aug 2025 14:35:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1103776.1455160; Sun, 31 Aug 2025 14:35: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 1usj9S-0007QQ-OJ; Sun, 31 Aug 2025 14:35:26 +0000
Received: by outflank-mailman (input) for mailman id 1103776;
 Sun, 31 Aug 2025 14:35:25 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=I8wL=3L=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1usj9R-0007QI-HA
 for xen-devel@lists.xenproject.org; Sun, 31 Aug 2025 14:35:25 +0000
Received: from NAM10-BN7-obe.outbound.protection.outlook.com
 (mail-bn7nam10on2061d.outbound.protection.outlook.com
 [2a01:111:f403:2009::61d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ba2aaa72-8677-11f0-8adc-4578a1afcccb;
 Sun, 31 Aug 2025 16:35:23 +0200 (CEST)
Received: from MN2PR08CA0006.namprd08.prod.outlook.com (2603:10b6:208:239::11)
 by PH8PR12MB6699.namprd12.prod.outlook.com (2603:10b6:510:1ce::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.23; Sun, 31 Aug
 2025 14:35:16 +0000
Received: from BN2PEPF000055E0.namprd21.prod.outlook.com
 (2603:10b6:208:239:cafe::98) by MN2PR08CA0006.outlook.office365.com
 (2603:10b6:208:239::11) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.26 via Frontend Transport; Sun,
 31 Aug 2025 14:35:15 +0000
Received: from SATLEXMB03.amd.com (165.204.84.17) by
 BN2PEPF000055E0.mail.protection.outlook.com (10.167.245.10) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9115.0 via Frontend Transport; Sun, 31 Aug 2025 14:35:15 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Sun, 31 Aug
 2025 09:35:15 -0500
Received: from [172.17.238.12] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Sun, 31 Aug 2025 09:35: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>
X-Inumbo-ID: ba2aaa72-8677-11f0-8adc-4578a1afcccb
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Jakm3OEYiuwN2tfru19EQi1Dtj0cuboG9YtyS9W2KDOlJ+tuEUsDvz8fkD92qHXm94jfZwxG78fNcA1giLKnmKyLN2w/IUAZA9zYncImh30lhpxjJFO66StbhCpTRawkdaCBIr9tmYa3V2t9wkLl5AZzUwqhNL0HXNqpkbcUjAjP0yXD7Oap8pPy83RcyWJnne7ktwIFc22R5sqMK22FZtP19qSp3sD0N30HmSH4iGEaBxkRLVCg8E6APxeyXzVbDzr05JigxthGyFcnORKsaiN2V0kYodSlu1xmvSh5HPlJ0EG5l/m+DsoBygh3GmIatGTXKiUT8k5DlCj7Pr023w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7dE9DnoVnOVI1m088z1sg438Ww/eIrpKQP3iWBcN8Ow=;
 b=vzvLgxyHvH7mSSrXBSHd4lSxsTGrgxDGnV7Jecki6R9WyUb2jvIalHbpdQ31sr7764P17ij9n6BWTTt4Aso65t0Q4aH+NAA8nly3dWjqS95n3cFGXptnbDSScZeK3As1tQazilDwoLWAMZ4XCPpzqsm8Y7izUCrCuFnwrHQUvS+6T19k5CKEgg3GUdPzDbuKA3aPgGfTUW8DJUmLF5yBHU3FobwzYlf3wVo4BfLhv/QBNraFMu2ylrpLMsjv+JVPbFwZuL8z+04uvpbY6GxQMvBxTA7KrlPq32IQk3acu8QxyBDkp1ZCYIluT5CQQVsSXzgirYb5TjxAp6ZIKUjOSQ==
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=7dE9DnoVnOVI1m088z1sg438Ww/eIrpKQP3iWBcN8Ow=;
 b=ECZfKQmi21Z5/GZcSWxW/KOSwmOQikuZp8rZDye1NkIenGjppwOH5ZqdtFzfkl0QUVb7lxvyN7dvNgZXt2IxE7z9sgepZ3BLDODgykSKPSwgV+CKewEoQ+LXM8ZYSPqp6fY+Q2KGsk6cId2evNl2JCPiRD6Cvi/pq0JhB160MYY=
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=SATLEXMB03.amd.com; pr=C
Message-ID: <61e45049-5e55-40c3-b4ad-593c1a4205e3@amd.com>
Date: Sun, 31 Aug 2025 10:35:14 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86: introduce "hot" and "cold" page copying functions
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <1b9e5d46-20a8-4b5f-b938-e28a0429c770@suse.com>
 <4d06bd13-6f75-4dcf-aa4d-c225139c2575@amd.com>
 <2b34c868-7562-4824-8a1a-72df7348dbea@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <2b34c868-7562-4824-8a1a-72df7348dbea@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB03.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN2PEPF000055E0:EE_|PH8PR12MB6699:EE_
X-MS-Office365-Filtering-Correlation-Id: 66fa7186-a750-4911-9ef3-08dde89b99e9
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|1800799024|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?VlhtSDhieHkwRmNaRmh0cTRFUDlrZEpiMCtqNWV4K0x1MDY0SlFBNktlS3VW?=
 =?utf-8?B?ZFM2STRkT29WQ2ZsQnNDOWRlNFl4YjE0UHI1ejltNGM4N1BqVGxlVDFSVDUr?=
 =?utf-8?B?WUdUN2V5M0FlWGtPQWxzL3NVSWUrMEhhSE9wUW9idG8xR1d4eEg2blRYT1lo?=
 =?utf-8?B?b24vZUF1Q3JKaDN0M0pIYlNvb292cDRZbFgyQzJFSGVEUzdhcElzWHIvVEZu?=
 =?utf-8?B?SEFsbVJBRklBcjJjQnllcEJnT0ZSaDU0UnFWd09VL2thNC9jSzhieEJJZDk2?=
 =?utf-8?B?SlZtdE05STVXc2Rkb0syblo3ZTZ6cjhGY1FTc2RsZVo3Ylc0bUQ3VzFvZHM4?=
 =?utf-8?B?TEVDZGFDeE1pL0VnUlVhUmJMVnRhYWRmYWRUdjh1bHM3dXdkblFoazNJL0dk?=
 =?utf-8?B?UTBHaGV6ZjljQnQ4Q0hTci9Gb0YvZTlnZlVnSjFTOExRYjUzc3dKcDBPajFW?=
 =?utf-8?B?ZzBSaE1oYkJ2NEFWNlVaQXh0ZzBVS2ZxTkVXZ2ZCQ0VDSlhhd2hVMEo5MXlT?=
 =?utf-8?B?a1pHeWl4WGxEbzd4MGxBeUpjK1VXNlFYdmtERVBNK05ieWpWSHQvcncvV2JU?=
 =?utf-8?B?N1NMT09HTGt5dGl4ZTlWMG9BaU9lRmZHelpMVzlkVmZTNGtXTzJ5U0gyS2Za?=
 =?utf-8?B?bkZPcE96QWNPYUliV0N4LzQ4amJpRnVKcGdyMitOUXI4VUlaRDhLSEo2dzg3?=
 =?utf-8?B?czBCQ005VkY4a2ZZaXpBaSt6WUJxMzkzeDI0RCtnN29KVS9BT2hrMzc3dE5I?=
 =?utf-8?B?SDd5bGFkRWZXc2xhenZYOFV6QlZzaXBlZUJFblRaZU8yUEI4UDYvSlh6SERx?=
 =?utf-8?B?UlZqQ3B5SzhGNm9TUzRSRnFTVTBZRTdSRUhVV2dyU2VLeSs5OUFtOWpNbEVC?=
 =?utf-8?B?NVI1TWtXMWMvRDlSNk1aSHlWc2pzUzhYQ0N4K3JmTmo2MHJndVhUbTVHd2E3?=
 =?utf-8?B?dnI3UTQ4dzF3a0xqSjhWWXpJajlBSUpxM01ZYU5Id0oyUlQzaFEySlFvdGVm?=
 =?utf-8?B?TkdzSEgwa3dENHhFNGpMNzF4YjBxZXI5eTEvZGFRTGJ4ZVYzRlB5ZlF6NWkv?=
 =?utf-8?B?R01UMStZTGRsa2VSUWV3eXQzenpFRGRvNTJtelNxajNFMXFmLzZ5SUs5VUNy?=
 =?utf-8?B?ZnEyMWFNcWRKcUJVRW9mdS9uU0Z5RVdUL2RTanBKTk8zb0lIeVpVR2cza3JU?=
 =?utf-8?B?MDNjSjRMVmJoaHdudFFaMTNxUDBxYmFBN0dGdS8wdUNZZ3lKRnUycVlYaFVx?=
 =?utf-8?B?bjRPVWlOYTZYVjQvL2V0T0hlaTY1MkJ6aWJIVjdqMHhuL0tybVpOMWJXWm9J?=
 =?utf-8?B?QUdzbWg1eHZrMUxVTm1DMW5lK0N6SmdWNytxaHI0Rkg3VFNpcXNkNFlrQjhB?=
 =?utf-8?B?VlVwZHVmZ3lNQktva0hPRUxvL3ltWWJYYzJFeThLZGpsOEpYcEF0OUdiOWJY?=
 =?utf-8?B?Ym5NK1FCZFhoeWt2YnJKUmwxZk5ZbmZERk1IdHF2NUFwOCtoWFhrWlNXQy9Z?=
 =?utf-8?B?QWJFemh6RHVGbkNRWE0vdVBtTEs2NEpwRmVqY29VekhqMmZFQWlkbW5aOGYx?=
 =?utf-8?B?MkNmTHNIaktjZGZHQUNJT3BEVlRlOWgwRVlzQnRNNEo2NEk4ejFVM3Nkbkpo?=
 =?utf-8?B?VmVhM0VieXVpMzZIeTRrQzhVeWtTTlcwNkxNcDFMVzc5ZElXcldEeGJuS00r?=
 =?utf-8?B?dVFoODUyZlpZRU05WlJub3g1SWw2TWRTV3hwSGZ0MFh5NSs1ZG82MmpLRVVZ?=
 =?utf-8?B?RVMxRWVQSUFnU1AyK1Bnb21udHV1V2tJY0l6M3grWCtxdGs1bTZWa1huSkJ4?=
 =?utf-8?B?WjIxVU56bFlnRzlsSzVQSzlQaC9IRVJSS2JIYzhSbzZ4M0s3NkI5MWY4ZTJi?=
 =?utf-8?B?S2YzSGJmVWFVRyt2WXRTSk9Wdnd5L3U5UUhxZnRGN0Q2SFdCczdHb2JvZXk0?=
 =?utf-8?B?YkNIQTJLWkMyNVNjeEUrZEFKUVFyR2tHWkhFaEE1Tk15d3J1VTdxeVlZamZt?=
 =?utf-8?B?MXRHTUFIeXMxYmcva0gyLytaYnh5ZjNCbDBmakNMbmFEWmYzZGVocklhd0s3?=
 =?utf-8?Q?JoaNon?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(1800799024)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2025 14:35:15.5801
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 66fa7186-a750-4911-9ef3-08dde89b99e9
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=[SATLEXMB03.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN2PEPF000055E0.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB6699

On 2025-08-29 02:29, Jan Beulich wrote:
> On 28.08.2025 23:33, Jason Andryuk wrote:
>> On 2025-08-28 05:17, Jan Beulich wrote:
>>> The present copy_page_sse2() is useful in case the destination page isn't
>>> going to get touched again soon, or if we want to limit churn on the
>>> caches. Just rename it, to fit the corresponding {clear,scrub}_page_*()
>>> naming scheme.
>>>
>>> For cases where latency is the most important aspect, or when it is
>>> expected that sufficiently large parts of a destination page will get
>>> accessed again soon after the copying, introduce a "hot" alternative.
>>> Again use alternatives patching to select between a "legacy" and an ERMS
>>> variant.
>>>
>>> Don't switch any callers just yet - this will be the subject of subsequent
>>> changes.
>>>
>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>
>> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
> 
> Thanks.
> 
>>> To avoid the NOP padding (also in clear_page_hot()) we could use a double
>>> REP prefix in the replacement code (accounting for the REX one in the code
>>> being replaced).
>>
>> Did my tool chain do it automatically?
>>
>> 0000000000000000 <.altinstr_replacement>:
>>      0:	b9 00 10 00 00       	mov    $0x1000,%ecx
>>      5:	f3 f3 a4             	repz rep movsb %ds:(%rsi),%es:(%rdi)
> 
> Interesting. That looks like a bug to me, when source code merely has
> 
>          rep movsb
> 
> Did you also check what copy_page_movsq (i.e. "rep movsq") expands to?
> What gas version is this? With 2.45 I get
> 
> 0000000000000000 <.altinstr_replacement>:
>     0:	b9 00 10 00 00       	mov    $0x1000,%ecx
>     5:	f3 a4                	rep movsb (%rsi),(%rdi)
> 
> (the omission of segment indicators when there's no segment override is
> indeed a change in 2.45).

Oh, sorry, I forgot I had the extra rep in when I looked at the 
disassembly.  It is as you show.

Sorry for the noise.

-Jason


From xen-devel-bounces@lists.xenproject.org Sun Aug 31 14:42:26 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 31 Aug 2025 14:42:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1103795.1455169 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1usjG9-0000cd-HW; Sun, 31 Aug 2025 14:42:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1103795.1455169; Sun, 31 Aug 2025 14:42: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 1usjG9-0000cW-EK; Sun, 31 Aug 2025 14:42:21 +0000
Received: by outflank-mailman (input) for mailman id 1103795;
 Sun, 31 Aug 2025 14:42:19 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=I8wL=3L=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1usjG7-0000cQ-Ng
 for xen-devel@lists.xenproject.org; Sun, 31 Aug 2025 14:42:19 +0000
Received: from NAM12-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam12on2061a.outbound.protection.outlook.com
 [2a01:111:f403:2417::61a])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id af47f05e-8678-11f0-8dd7-1b34d833f44b;
 Sun, 31 Aug 2025 16:42:14 +0200 (CEST)
Received: from SA0PR11CA0020.namprd11.prod.outlook.com (2603:10b6:806:d3::25)
 by IA1PR12MB6578.namprd12.prod.outlook.com (2603:10b6:208:3a2::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.20; Sun, 31 Aug
 2025 14:42:09 +0000
Received: from SA2PEPF00003AE5.namprd02.prod.outlook.com
 (2603:10b6:806:d3:cafe::f0) by SA0PR11CA0020.outlook.office365.com
 (2603:10b6:806:d3::25) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.26 via Frontend Transport; Sun,
 31 Aug 2025 14:42:09 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SA2PEPF00003AE5.mail.protection.outlook.com (10.167.248.5) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9094.14 via Frontend Transport; Sun, 31 Aug 2025 14:42:08 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) 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; Sun, 31 Aug
 2025 09:42:03 -0500
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.10; Sun, 31 Aug
 2025 07:42:02 -0700
Received: from [172.17.238.12] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Sun, 31 Aug 2025 09:42: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>
X-Inumbo-ID: af47f05e-8678-11f0-8dd7-1b34d833f44b
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AOL8FJS0/qPmvPcjgt8U7bKjZOrFQwx2E8uZ9NeTJ17JOom+Ty9+f/HDoFwVGvBlRoORi1TChjASJCyf9v5VrGQuH2oWaBjWrkc5E5P2dHrmzdO6Qy16g+Le4tfOyDHmmcYdxahgZO8ibpRhe7FjizOF+mdHoIjaK9ejjyMZl55jEU/KR1ChIMv4dps295IX7UqAJcwFZcjSrBJVP9r5rYt1sdZ82NLMQl3kHigYE+gjBicIUBTIHnlnl5b8ZemXfUwoiGsQdupbJa0IAIFF7dmJSD+wt9eNLK/zfu+f/8MuYGkaAy7AMz268As1vbHpzi6U4z02y7HEm2/0QP7dug==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=UYefZG4gNLNkaBAmS/Edmymgpv+xYAJFMTGExgmzmpc=;
 b=b28niprxvcVS7i1bFDXLS3IV4nRDerpXG3xmfv4X4FKY77zTX+o8Ux5HcKyjewxgS5cXmjOk13ftKDyP9LzQiXaW3FwVVW0FU9d5gX+CIDq7ClDpVOHLBeP2wehoo+Z8XkqTjA0km6eKHj+y81jHuQW3OH5y5E3NT2lyRl3f275PfEKW/G2b4vhPGeKa9FSi4+sfF2GnPywst0TYz2ZxbgrSJnIx1DpSXtYE9ff0dm8oW+W9EGR/3SGHMAcC3QCzynPoYVLedi4KLfDd7+i+SxW1OKqz/NONwfbuzEnFIMfvymR7qQx09yjm+21qDCq0FAxINZjVaAfIbGoenDctYQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=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=UYefZG4gNLNkaBAmS/Edmymgpv+xYAJFMTGExgmzmpc=;
 b=wGR5FkBpXalPKWvCbEPoDjBAdB6ZgROJ+qX+CnncDop9iLB+HBGWe9UK1NpLPoF6JS1UFFZSU12T2Bapwm6gjpZXoRrWTaEQDcU8+gosFNIB8P93s98znT2Md8NjGYM3kEPL1r8EvauO7JYxyOmgMLjaClfkyXPsUiwdlH4ZtOw=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <63a7e401-6a85-483f-ad38-04c99e3a1c2f@amd.com>
Date: Sun, 31 Aug 2025 10:42:01 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 04/11] tools/configure: Introduce deps on json-c lib
 for libxl
To: Anthony PERARD <anthony@xenproject.org>
CC: <xen-devel@lists.xenproject.org>, Anthony PERARD
	<anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>
References: <20250808145602.41716-1-anthony@xenproject.org>
 <20250808145602.41716-5-anthony@xenproject.org>
 <39b2fc9e-44db-4f42-9586-1dcdac118659@amd.com> <aLGoYGgLHL9kLmzT@l14>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <aLGoYGgLHL9kLmzT@l14>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF00003AE5:EE_|IA1PR12MB6578:EE_
X-MS-Office365-Filtering-Correlation-Id: 8d4a2a18-afae-4e4b-80ec-08dde89c9002
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|376014|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?NzA0NXpOUDB4a0IyV3A3aWszY08yUkF4YVUxcGpta3Y0Tno4TjQ1dXY2bUs2?=
 =?utf-8?B?WVRGeDFBakh0R0pxc05ITU5SckhCaEkybTlNeVMrRG5DcVZsemxPQVJOa0Zj?=
 =?utf-8?B?N1dNWWJNZytlWXlZTTVkZjBLeGplT0lTQ2RLdUJRSEZwL2d4blpEVElnSHF5?=
 =?utf-8?B?NnY5OTFrS0Z4VE8wS2ROK2ZaakNKSFphdWx4eS8xb3k5U2J2dmorZnhOMjNY?=
 =?utf-8?B?WWhqWU4vSU5Ed1E5d2lBTVV6UTlLRGVlM0wzV0VyamxLRUVPTG5IMUI4Rnc2?=
 =?utf-8?B?Nlp1T3kvdlpVUDNsTk5LNGlGNXd3S2NSbmFITWJ4czZ6bDRuNVpZV0JVWEdm?=
 =?utf-8?B?bXIzNDFTQTNzbmhESWpZZTEyNUcvd3Zaa2hKQXdPcS9nUVJSMEN2MlhmNHI0?=
 =?utf-8?B?ekQ1RU5qL1ZPQ0UzWWt1Mlo3TksrRjhydHRUc3hoNk9pT0lBQmlOazh5UGk5?=
 =?utf-8?B?cWFkVjNEVFN6TXhqOVVrdXlCNVZqd2VDeFh2d3Vtem50bmpxTjc1MlhDM2hJ?=
 =?utf-8?B?K1pDdXJlOTV6V2g5blpnbHZTbE1icW5abmMyZjREY3FPWlBWdEdOTUM2MVda?=
 =?utf-8?B?bC84WHJ3TVJhK2dQT0Q2VUc1U2JyNjFGMW1vVk1FRlZSSWs2ZTB1T2pjMkRt?=
 =?utf-8?B?Vkhzd1JCdUU4TFYydWU2cHMzblVKWkkxaTdyNC8rMlNmeVVxb0JaZFFrMVBE?=
 =?utf-8?B?WG5EWENtTG40YkhMRlpWd1dqV29tS0dpZENXUTFFTmxmUzAzMjlzM0xhSU4w?=
 =?utf-8?B?NTJGMXQxZWhKenl5RWxzQ2RPbUlUMGRxc1BUb2lYZENTREhPMkl1QUgwUm5H?=
 =?utf-8?B?QllLTy9VZlpRU21uSDFtdXdVa3lIYUlnN0NMSjlWQjlxUDlDL3FLVE9NVXVD?=
 =?utf-8?B?VU1VSEgwTFcvZWFmTTBqRktYeUlhN09QRWJhZEE2dlZxUnRZREFaT0F4enJE?=
 =?utf-8?B?LzhxOWxpMnNsMG9lQ1NnN2VEWmVqSzg1V0w1MHNXaGQvQlNmOWJUZ2Fvb1o1?=
 =?utf-8?B?ZWYvc3pxemlaZnFuL2lhWWJCM1FjWUJhdjhLSi80TEY0OXVnVVR5NmQ1RDRE?=
 =?utf-8?B?Z3VXV2FKVExCdVcrQ21oZGtFN3UxT1llcHNRWWJqaGVYWGxhTk9GNUJEbHhC?=
 =?utf-8?B?R0NrdFhCVkdKNkluMDBtTVlNa1ZWR1BmSjVsdzV2Ym44VHR6aWd0NGtiQmFx?=
 =?utf-8?B?SURxTDhaTHFURWg5TWVsSmNERVJyUEhGd0J1Q3UrZWVBak5XRjhVS3dORWRL?=
 =?utf-8?B?aWV0OHpvMW00T3dpUXd3K2NUc0pjNWhRTzVuN240b2UwU3JRUm5yL2syelNU?=
 =?utf-8?B?bG5OSGxMdTkzUkNES0ltNE04R1p3eG4vRkZjbWVWYnkwTkFhNFhlcW15ZWEw?=
 =?utf-8?B?RENSU3I4QVEzdnNSY3RpVVNQcE1uN09oWTkvcllESzFJandiVVUzNG1oNW9t?=
 =?utf-8?B?blJ5RE5CTXpyUE0zWk1OcEFuSU9CY1dIK2RZK2JIOFJZUVVDSjdTSTk5Vjho?=
 =?utf-8?B?UkpqMTZnNndZZ09UaDdoaHRCSXVlbFNOU3lFb0ZlemVFQ3ZvcXdjSXA1ZGNQ?=
 =?utf-8?B?akl4RHBSVXUvUWpGMmNEeHZ0bHVxbXNPMC9xenY2ZFlhNGxpaHFCekpnbWoy?=
 =?utf-8?B?d1JLazhpR2w4NVdUYjVEK0RDeWMxRDZvVUxxbGIrOXpKMGphT2xnanNXK2h0?=
 =?utf-8?B?Zmo0SndGVm9SMmlmempMMEczdm1xTUxNT3dTczJTU1NVa0tSZXVQSmtUMEIy?=
 =?utf-8?B?OGZueVAwZXEzNVNSYUdSOEMyRi9ITUhTWWtKZVVSOFpMU0lGb0FNMHFXdWk2?=
 =?utf-8?B?OWttUGR3MUJ4THl3ZDdaWS9OUitHSlJiUG9acjFqZFpQdHVvQUFPY05vcGt3?=
 =?utf-8?B?am1Ja3pGSElMMXQ3NXlzb2hCcVlBN1kwclVNYzUvUnJjN3BsNEpaclBSRmFB?=
 =?utf-8?B?RSszYkZoLzhSaENGc0tBN1FJOWxYc1B3Y0R3bHZlUEpZeWRKRGQ2MDBrd3Mw?=
 =?utf-8?B?aUE5Sm9qMXljVlIwNFBCakJYMnhzSUltc0kxQVprby9Rd1lMZGlidE4yck9R?=
 =?utf-8?Q?H9KBRZ?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(376014)(36860700013);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2025 14:42:08.4495
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8d4a2a18-afae-4e4b-80ec-08dde89c9002
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF00003AE5.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6578

On 2025-08-29 09:17, Anthony PERARD wrote:
> On Wed, Aug 27, 2025 at 11:01:59AM -0400, Jason Andryuk wrote:
>> On 2025-08-08 10:55, Anthony PERARD wrote:
>>> From: Anthony PERARD <anthony.perard@vates.tech>
>>>
>>> To replace yajl.
>>>
>>> Introduce YAJL_LIBS variable, to be able to remove "-lyajl" later.
>>>
>>> Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>
>>
>> Should the two configure changes be merged and placed at the end of the
>> series?  That avoids a half implemented conversion in between.
> 
> It might be half-converted, but it's fully working. Every single patch
> introduce changes that can be use right away. I've actually make use of
> this possibility. On every single patch, we can run ./testidl, which
> will exercise both lib against each other.
> 
> ./testidl does LibxlObj-to-JSONstring and back and forth. So on the next
> commit, we would have JSON generated with json-c, which is then parsed
> with YAJL, to finally be generated to JSON with json-c again, then both
> JSON output are compared.
> 
> I've actually prepared the patch "libxl: Convert libxl__json_parse() to
> use json-c' last, then put it in front and check that ./testidl was
> still working.
> 
> This help me be confident enough that the conversion to json-c was
> correct.
> 
> So if we squash both config change, every patch until the config change
> would only introduce dead code.

Oh, I didn't realize that.  Yes, your approach sounds great.

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Sun Aug 31 14:50:55 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 31 Aug 2025 14:50:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1103807.1455179 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1usjOL-0002Bx-Ar; Sun, 31 Aug 2025 14:50:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1103807.1455179; Sun, 31 Aug 2025 14:50:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1usjOL-0002Bq-6t; Sun, 31 Aug 2025 14:50:49 +0000
Received: by outflank-mailman (input) for mailman id 1103807;
 Sun, 31 Aug 2025 14:50:48 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=I8wL=3L=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1usjOK-0002Bk-36
 for xen-devel@lists.xenproject.org; Sun, 31 Aug 2025 14:50:48 +0000
Received: from NAM12-MW2-obe.outbound.protection.outlook.com
 (mail-mw2nam12on20600.outbound.protection.outlook.com
 [2a01:111:f403:200a::600])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id df25211a-8679-11f0-8dd7-1b34d833f44b;
 Sun, 31 Aug 2025 16:50:45 +0200 (CEST)
Received: from BY5PR04CA0004.namprd04.prod.outlook.com (2603:10b6:a03:1d0::14)
 by DM6PR12MB4435.namprd12.prod.outlook.com (2603:10b6:5:2a6::23) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.24; Sun, 31 Aug
 2025 14:50:39 +0000
Received: from CY4PEPF0000EDD3.namprd03.prod.outlook.com
 (2603:10b6:a03:1d0:cafe::5a) by BY5PR04CA0004.outlook.office365.com
 (2603:10b6:a03:1d0::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.26 via Frontend Transport; Sun,
 31 Aug 2025 14:50:39 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 CY4PEPF0000EDD3.mail.protection.outlook.com (10.167.241.199) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9073.11 via Frontend Transport; Sun, 31 Aug 2025 14:50:38 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) 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; Sun, 31 Aug
 2025 09:50:38 -0500
Received: from [172.17.238.12] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Sun, 31 Aug 2025 09:50: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>
X-Inumbo-ID: df25211a-8679-11f0-8dd7-1b34d833f44b
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=F7gI3qNemXGRB2bqJxjsrqeH5HYTiEWUuld/KpL+BKpMUyHIFmTgUmAR2PWcLhYi9B3tXXFN1f53wTIvdJI38WluaVHnpX126F2G1J6wtPpLnRIXXLArebdDD6tt7PmqDvo/XuuCPC2n37HUWXEVfXeKk9FCzffPOzk0XgDtgtd7aGvCVigXMuV/pVT06T76xofTmFz02aKgqtTAKtS9FiiPB4/T/rFJFBwh5816PH9WZoVLtVAUdRNtvWijCWDXsSk7EzKqygzCV4gB4yZOapnfTp7NDiqtQxXquRyNB3bc3ySKGdnxy8ZPdPSvL2NVvWNjM2TJoID7BAr3i9mCtA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=XQrwRSFuZyVTm74HHYgPMFaRrJ+/Y+/gkfu9DmhIhzY=;
 b=Td8ggeMAaCXbXTaydEeDFAxFkx6dRUIOgxxCVnpdCe9ZOlWQw5SnAwFnSgjEr0505IckN5HF0kH0esiaP3DKM4qPQFx+uNDux4Glk/A9oa6+AGxm4LlBAKXy8XBMzqiyVu5wYWFcVA/gtpNJWmwTFMHeDJrK6kA5ha2E5AyAZWMTznugKv3Vuj0G06g/Tvvf29016CSzlLS0+7Ee+MX5Fng2LmOhPgS3jfFTeOuks/MonUdV48G80BFOOTKg2KIsMuqQ1D9UrIv1rXQQRxNnK0w29Tp5kigfsM+Xvt+KZGXLXBBgBbxvmMoK4+Aj6IOD/ozcwtc1nx87j3TQSvhVoA==
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=XQrwRSFuZyVTm74HHYgPMFaRrJ+/Y+/gkfu9DmhIhzY=;
 b=g3aO7mKQnX8z5K0WAygEdm6n4apZyGnMnjNWIvha24Ezf8WD5PN9RZCvnj+X6kd7WN3tePtmOBVLxHcwKH5j6Imn3rc4HBBfmvBEsMHhUV9AZKNx7UQzXi0m9ADsXQlWMvQJIb5WQVm0jlSQIgkioLzvo9IHMkccxVhiL3xlkJY=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <b6939634-1338-4979-a351-cdd8eba5614b@amd.com>
Date: Sun, 31 Aug 2025 10:50:32 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/5] symbols: arrange to know where functions end
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <ceef1876-8759-465c-9a74-309b6b92f773@suse.com>
 <10e116c5-5a62-4abc-a52a-e2ca12118cfe@suse.com>
 <24fd00b5-3053-43ae-8342-887eee94869a@amd.com>
 <d934d8a8-93c0-4cb6-baa4-f2aedb719f25@suse.com>
 <e9eaf331-4a32-4c80-8b0a-5f36d8fd9022@suse.com>
 <773a5f4e-2f73-4b84-bc56-90aee660acd2@amd.com>
 <289851bd-95c5-485c-8b3c-d31452ad204f@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <289851bd-95c5-485c-8b3c-d31452ad204f@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB04.amd.com: jason.andryuk@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000EDD3:EE_|DM6PR12MB4435:EE_
X-MS-Office365-Filtering-Correlation-Id: c7187746-fde6-4da4-fe77-08dde89dc039
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|30052699003|82310400026|36860700013|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?dlZkaEdHcjgrRnJxbTJmRWdKTWw4VFlGa3dHUTI1VWtYMzJkSStiL1dqdTJa?=
 =?utf-8?B?bGVNKzlYTTJWWlZNdWJqcVpZWUVNSlNUVkJqbEtFdFRWbzFDY1NjMTdwdll6?=
 =?utf-8?B?clVHOXhDQmF4VjJRSjM3M0pIcTFuOXBPb1NHTm9UMFdLUzVEelVSWWsvTDY1?=
 =?utf-8?B?NDBWU3lvREI5VVcrL2dzb3NkaDF2RFhmZWEwTys5TW9HVVBCNTM3eWhWQm5u?=
 =?utf-8?B?blZUSXhuNDhDblZ3aEltTXRjWUJmSVpBSjg5K3ptMXBTZENTUUV1TGZoYW1G?=
 =?utf-8?B?MjlBSmhna1BLSnpaelNCeVdXdTEzVlVBNXd5Z0FtREc0NitoWWFyVnlGMkdK?=
 =?utf-8?B?ZGlpVG50Qm16Y2h2SFVGWjJldUhJTzZyWnRDT1BBNjdCUFVJcS9tR2tuYkdu?=
 =?utf-8?B?K3V0WFJ6Nnd6aE9TUGtxY3dsWXkwMmU4ajJMbjhuRFhIOEZrbThMV3V5Wlky?=
 =?utf-8?B?UHdyclhtZ3VSZ3dFT3phcDkzbkR1N3M3UitjcGVVMDd0RWE1WUp4dk5PV09a?=
 =?utf-8?B?SmQwU0hVYVBueitKaXpqQzQvcm9HM2JmKzYyUEMweVRSYzJacm9YdTlDbE45?=
 =?utf-8?B?cVJSSVI0RWNFbTZqbjBEWWF2cVRpNG5Ga0d6Q1VFK1lLd1BqVGVWNWZvbS9s?=
 =?utf-8?B?d0pHeWN2Y3BuaXc5aVVqU25mTnFVcEVjYVNkc0tOZFd0QW9UK0tYQythd0lD?=
 =?utf-8?B?RUNYay9VQ3hzdG53RU5saGgrbzF1c1ViNjY4UU4xalI5cU5keWRxbGhGbjg2?=
 =?utf-8?B?WE5sR0RVWUFyT0I2MHlNbThuOWRUSnJEY1JiZ0tkbG9oYUgyN0xwOXhGWS9Q?=
 =?utf-8?B?ZnlCbnNsY0JBT1B1M3phd2tOUE9WS3NoS2RkVWNhNmgrS21hL0wvWHJ2b0J3?=
 =?utf-8?B?SVdYcDVEOVhJMkUxeUdyRmV0TlRodjFIb3NqUFdocFljQXpGaGR0amozSjEy?=
 =?utf-8?B?M0F1cGxzYit1N2laSzczQVg4RFREcnpoOFlLRzJ5K2d3b0ptNzNqSUxlc3VK?=
 =?utf-8?B?YUNmM2FkM3d1enQydFQ3TzU4V1ZCYkZKMjh0eStaK3FmQWVxWEZQQ1pnVmhu?=
 =?utf-8?B?RW50aXcwbWFhUzdzalJNZWVIWDFZSmFadGxTTnR5Qk52KzNiV1dhQWhVazNE?=
 =?utf-8?B?b3RLa3RxSDdzSVlhMlRPVWxXQ1NTTzA1Uk1ZMEJHV0lXblRvOEhnRmlkWjQw?=
 =?utf-8?B?alBIcHpMVEw3dCtOWjBvSTlQemdXYzhvSGRzWGo2ZzUrVEhaakc0WVp0RTJG?=
 =?utf-8?B?MWZFcm9nQWcvdFJuTmRwWS9FMm9ZL2hMUWhnMGp0dGI5UEdzWnpEZ3VGM0gx?=
 =?utf-8?B?b3B2R1JtZWFQMDBSRzVzaXRNbVdkTkxDYUdDaFlwSmZubExMVUpoYXNlLzFQ?=
 =?utf-8?B?QUVlTTVna2E0MUw1ZlBsVU05T2VVeWsxTUliYi9mU2dQNkZlNXZNTDNOV1pP?=
 =?utf-8?B?VlI2bDFsVGhRbFRqN0JaN25JOEJTNlhnUDYzOHo3NkxNM1ZPTXRUQUxWZ3Ja?=
 =?utf-8?B?a3ZMa0VLV3dUMlNMVThIeXQ0NDFmUGtKS0FoWUFtSUM2WlVoTEFXeTdYS3FB?=
 =?utf-8?B?QlNCYkVkVzVFaUZtM2xHMmZ6dFpzblptdGF2Um8yWlZ0c1FHeGRaLzljQzZD?=
 =?utf-8?B?STJzVmNBdEZmNURabkRYOEVQcHJvc1c2Zm96dEdzL1FJSUJhSisvZmZ4K0pP?=
 =?utf-8?B?TU5xMXIrbHRHUEYvN1NkclVUMnpyYVBaNEZGWktDd0RBeUFpdFJycGZ3ZCt5?=
 =?utf-8?B?YzlpOVVTTXpjYjM5eTFkVUVKemtTQWdJaGFoS2FLUWpvK1VkWFpqcDd6MG1M?=
 =?utf-8?B?OTN1SUNpYTdxMEx5bE9VeXlDZWFSUDFnMVJmb3N5MndrazYxT0FkVnI5bFFU?=
 =?utf-8?B?ZUFReEp4OTU0UUNiNVhKYjFTckJ3YmZQN3pIQytKYU9ZVkZLOUZ2OFkwYSt5?=
 =?utf-8?B?RFBIMmRtVllZOFRXMUIzMzNiQ1BCdkJaMTVvZ2ZOZUtHdk5TaHpJRUk1NHkv?=
 =?utf-8?B?YW1uUFZKUEQwUTZDdHY3V29LVFJxZkwweE9kR0lUV1ZkZ2dQSFpoRzRSRzhn?=
 =?utf-8?Q?d8dgpU?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(30052699003)(82310400026)(36860700013)(376014);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2025 14:50:38.8134
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c7187746-fde6-4da4-fe77-08dde89dc039
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000EDD3.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4435

On 2025-08-29 02:59, Jan Beulich wrote:
> On 28.08.2025 19:16, Jason Andryuk wrote:
>> On 2025-08-28 12:11, Jan Beulich wrote:
>>> On 28.08.2025 09:28, Jan Beulich wrote:
>>>> On 28.08.2025 03:03, Jason Andryuk wrote:
>>>>> On 2025-04-02 09:58, Jan Beulich wrote:
>>>>>> --- a/xen/tools/symbols.c
>>>>>> +++ b/xen/tools/symbols.c
>>>>>
>>>>>> @@ -318,24 +334,42 @@ static void write_src(void)
>>>>>>     	printf("#else\n");
>>>>>>     	output_label("symbols_offsets");
>>>>>>     	printf("#endif\n");
>>>>>> -	for (i = 0; i < table_cnt; i++) {
>>>>>> +	for (i = 0, ends = 0; i < table_cnt; i++) {
>>>>>>     		printf("\tPTR\t%#llx - SYMBOLS_ORIGIN\n", table[i].addr);
>>>>>> +
>>>>>> +		table[i].addr_idx = i + ends;
>>>>>> +
>>>>>> +		if (!want_symbol_end(i)) {
>>>>>> +			/* If there's another symbol at the same address,
>>>>>> +			 * propagate this symbol's size if the next one has
>>>>>> +			 * no size, or if the next one's size is larger. */
>>>>>
>>>>> Why do we want to shrink the next symbol's size?
>>>>
>>>> First (see related post-commit-message remarks): In principle section symbols
>>>> could come with a size, too. That would break everything as long as we don't
>>>> strip those.
>>>>
>>>> The main reason though is that imo smallest granularity is what we want here,
>>>> together with predictability. One symbol with a huge size could cover
>>>> multiple other symbols with smaller sizes. We could omit that part of the
>>>> change here, but then the processing in the hypervisor would need to change,
>>>> to fish out the "best suitable" symbol when dealing with multiple ones at the
>>>> same address. Other changes may then also be needed to the tool, to have such
>>>> symbols come in a well-defined order (to keep the then-new code in the
>>>> hypervisor as simple as possible). Look for "aliased symbol" in
>>>> common/symbols.c to see how simplistic respective code is right now.
>>>
>>> Furthermore remember that we can't record sizes, but instead we insert fake
>>> symbols. Obviously there can be only one (at least in the present scheme).
>>> If we used too large a size, chances would increase that the end symbol (in
>>> the sorted table) would have to live past some other symbol, thus becoming
>>> that one's "end".
>>
>> The scenario I thought about is something like:
>>
>> a 0x100-0x10f
>> b 0x100-0x1ff
>> c 0x200-0x2ff
>>
>> If you shrink b, you are creating a hole that would otherwise be
>> assigned to b.
>>
>> But I agree avoiding huge sizes covering multiple small variables would
>> better be avoided.
>>
>> Do you have concrete examples to help illustrate the problem?
> 
> a 0x100-0x1ff
> b 0x100-0x10f
> c 0x110-0x11f
> 
> If we inserted an "end" label based on a's size, that would effectively be
> c's 2nd end symbol (and there may not be two "end" symbols in a row, unless
> we want to further complicate the symbol lookup logic).

Ok.

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Sun Aug 31 14:52:08 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 31 Aug 2025 14:52:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1103822.1455188 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1usjPb-0002pp-Na; Sun, 31 Aug 2025 14:52:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1103822.1455188; Sun, 31 Aug 2025 14:52:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1usjPb-0002pi-KG; Sun, 31 Aug 2025 14:52:07 +0000
Received: by outflank-mailman (input) for mailman id 1103822;
 Sun, 31 Aug 2025 14:52:07 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=I8wL=3L=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1usjPb-0002pc-7i
 for xen-devel@lists.xenproject.org; Sun, 31 Aug 2025 14:52:07 +0000
Received: from NAM11-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam11on2062c.outbound.protection.outlook.com
 [2a01:111:f403:2416::62c])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0d616fb9-867a-11f0-8adc-4578a1afcccb;
 Sun, 31 Aug 2025 16:52:03 +0200 (CEST)
Received: from BY5PR17CA0007.namprd17.prod.outlook.com (2603:10b6:a03:1b8::20)
 by BY5PR12MB4273.namprd12.prod.outlook.com (2603:10b6:a03:212::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Sun, 31 Aug
 2025 14:51:59 +0000
Received: from SJ1PEPF00002325.namprd03.prod.outlook.com
 (2603:10b6:a03:1b8:cafe::6a) by BY5PR17CA0007.outlook.office365.com
 (2603:10b6:a03:1b8::20) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9073.26 via Frontend Transport; Sun,
 31 Aug 2025 14:51:59 +0000
Received: from SATLEXMB04.amd.com (165.204.84.17) by
 SJ1PEPF00002325.mail.protection.outlook.com (10.167.242.88) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.20.9094.14 via Frontend Transport; Sun, 31 Aug 2025 14:51:58 +0000
Received: from satlexmb10.amd.com (10.181.42.219) 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; Sun, 31 Aug
 2025 09:51:57 -0500
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.1748.10; Sun, 31 Aug
 2025 07:51:57 -0700
Received: from [172.17.238.12] (10.180.168.240) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server id 15.1.2507.39 via Frontend
 Transport; Sun, 31 Aug 2025 09:51:56 -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>
X-Inumbo-ID: 0d616fb9-867a-11f0-8adc-4578a1afcccb
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=r67MPouCFqACB2mGX7qHyAJWgpemF26rfMHg2IY4I5ngBgIYfDDGdF7omwUPN3m8QknheAAIShE4u6v1pxyQbuaS4Dc8pV14j9ZBIDzItENawKdugFnYAQr6XH6qLcWgHGKsQpjCJHM4E5ew5C9EpTIEEWSWbMGEpgOAraF786VlCov/YAFeyRWt6cLBD+vn5A4eMtYcZdFHrogPNi3F8/B+mPP5nFMM+/cU9/b5SxqIBJP4kdeZU1uwSiJsm7etMEL4LTZiGRKXWrdEXx/EHPaLyGJaiNKNz8AV8PyWQu2C/HTl1ofmpRNKvmwJxCi5HJQIieqyNYHNZtK9Y1CjaQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=1bcot+OGzhe/4MxCl8iHfzF46vlYzg6Lns7JEnquZrA=;
 b=p8lgc0PzhuQof+G2qzOtBu0UvroQ3nuyzubLtVapdX54tYkOzSk8RL3nI4M6gjzNNQ21IUpTbfOpuGTvyRhDhr0a0ok1ammWqZv+/f/P6wYy5CCWh6GV7geEPYtoi7TktyXaTrO3NB0lpf/eDBIjM+dyTiPV4CeGCz9tFnBg/PsxXdqY0Y6HQn3KRT1L2HMcFRmOicr4Qec4ooXuCZjEpMSCvN04qbwDZLWrptFyYkhkbgRWxI6MTZwp6EEY9+QY0S1Jc5N3jrSMcoCZut2oKBfnJFUuIdKiCzJjxKWo/hO00189cu8VZe5kO349gdRFjoxXtQ6TfK7BWZ+qYu1luQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=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=1bcot+OGzhe/4MxCl8iHfzF46vlYzg6Lns7JEnquZrA=;
 b=iC1wWsXFPwDKq/8VujoPdxBqiTURGx40+gTQajtgmX9HfTh0VUKDcumZ2CcrQgv7mJ1ZBNs+Np/rAtDzJ6wBu0ZCGMLHP2oUJdM8WX54XAex4p7G1duyODero1ezXfkxjdmE+emkmO+h1zxXd/qe0sMAdF6OtXynHO3soj6zGvU=
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=SATLEXMB04.amd.com; pr=C
Message-ID: <16e4818f-685c-4c5c-81a8-2dbac86ba0e2@amd.com>
Date: Sun, 31 Aug 2025 10:51:53 -0400
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH 06/11] libxl: convert libxl__json_object_to_yajl_gen
 to libxl__json_object_to_libjsonc_object
To: Anthony PERARD <anthony@xenproject.org>
CC: <xen-devel@lists.xenproject.org>, Anthony PERARD
	<anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>
References: <20250808145602.41716-1-anthony@xenproject.org>
 <20250808145602.41716-7-anthony@xenproject.org>
 <10a60455-a4d2-4c58-8a80-d8b264d27efd@amd.com> <aLGxc2d5rZspn9wj@l14>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <aLGxc2d5rZspn9wj@l14>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF00002325:EE_|BY5PR12MB4273:EE_
X-MS-Office365-Filtering-Correlation-Id: edf615f1-2336-44d1-4669-08dde89defa0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|376014|1800799024;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?NVM5VjY4OVFMMnBpUUR3ZVBxR3c1UkhPeTBUS2FEekEreEFhc08zUXdjT2w4?=
 =?utf-8?B?b01DSGVZWGx1eTVja2toQnBMWlZic2w4b2dBVjk0QWFLQUUyZ2hUbmErRjg5?=
 =?utf-8?B?QWJlbjVzK283Nm5VREFDZzkzNmhiUWdLazdBQ3cxL0FSWmhENFpFZFU3bVBD?=
 =?utf-8?B?RXFFTUttZ2o5QVB6Y1pvOHlrMWJZWXR6OURSaTkrZENFaTA0eU5CMHFRa0Y5?=
 =?utf-8?B?RVkvdjJFdE0rY1YzREdzQWpRV0IyNWRlNXNZUGlNS1JXOFdMR0FPcnJYWXhT?=
 =?utf-8?B?ejFEYzZzdXlGeWozaSsybnAvZEtRcTl4cExDb2hGUm1FbHR6dUtpTzN1VDRI?=
 =?utf-8?B?enlZNW82Zmt5NUtIM3hQS1c1OFZ2Y1hhMzA4V0thcmdqemJ1U2xDZ0tRZUpv?=
 =?utf-8?B?SkxZSmNRTDFjRlgxZmNLMW5RWDhoWk0wYWhyN1lUUVNQVktMeWh6Z2FpMTRo?=
 =?utf-8?B?czd3V2orek9hMFRvSmZZOG53a21qL0Zia1RGcmJrNXFOT0diQmhYNmxkMzIz?=
 =?utf-8?B?M2s3bmdrZndjTG5ybUZLbkVXbXVESEtYbE9nUENRQ2VRV0VmZzZrTSt2ZFNh?=
 =?utf-8?B?dGhiMU5vbmFaV0drQ25nT3h0Z0RpNzV6UGRlTnFxU0dyb2dTTVJrMzM0Y2ZB?=
 =?utf-8?B?UXRlMExqL25RVjg1ZWdudXNadE0vMFpBSXR2VHQ0V2R0Nnd3R3hiMHBiNkRO?=
 =?utf-8?B?ZERhT21ReUlrTks0dXA4UFMwU0NIMlJ6TDA3QktkNEhGbCtxR216d2MxK1JQ?=
 =?utf-8?B?bmpGMzlsek9lamVHYnN5VmFaZE5teExkeXZ0SUIySktqSWZTbmdVQStOWlhF?=
 =?utf-8?B?ekxVdGNXSVoyeUhKT2ErK0ZhSGZ0NGRONlN1UW1hM3pXOUlEU3BCOE45RUZU?=
 =?utf-8?B?bUYvS25qVXVmV0FUWThOd1ZXMVhXN0xWalR1czdkQmxHSHJMVTJxLzJnbzYx?=
 =?utf-8?B?TisrSjI1NE11dWl3SGpoNDBLa2VEVUV5Wjl3cHNqbjJXNWE3aHlxQmtINVFw?=
 =?utf-8?B?ZWlzNTIrNGthOWRhV2drMDdhL25VcS80V250U3dGSGFET3ZGZmtZRnE4RWpO?=
 =?utf-8?B?K3hmYW13UVRrRHR0WjhPNjRuL3MzTmNZanNUSVh5b3pCeVUyYjlPQnJLTmM3?=
 =?utf-8?B?OE5zeWZxUEZxRU1MZG1VNEh4UVhmU1BSSWxjcUxaLzJhQ2VXMnQ2d25DR1dB?=
 =?utf-8?B?WU5uNnBNZFpZRDVRb0kwZmxxNzZyQXNxYjM3NW9XdXpkRGtJdTBqdkJNSmdJ?=
 =?utf-8?B?RlZuUElCNElDUEc2cTF2S0haWXBLZy9jRU0yZGJ3aXg4SEdXNUtLSjZHUU5J?=
 =?utf-8?B?bFJoM0lRaE1xU1ZuMkQzWXo2VFdVSTR1NWdwWEFkeFBCcWZFRy9KUDZYbjNr?=
 =?utf-8?B?eUZPNFczaHFuQTM1Z2xJUGtuUTc1L1VsQ2Y1TlJBNUlycWhEVlo0WFFxYzRr?=
 =?utf-8?B?MnBmOTZVMGhHYW4rTXNvMVh3OGdWR1p4NTJVcFVvamJxVFRCazZaaHpQY0Qz?=
 =?utf-8?B?VTNXNWtFaEFtZ1F6bnlWdEJpSnF3ZE9UaDN4SnFrUDJWUEFISEpBdmxueVUw?=
 =?utf-8?B?aDlpVUdEc2xiMUJVekI0SzdiZ1FZR3dIUUMxZHkweUVyaytsM3ZrWC9RTVJB?=
 =?utf-8?B?WW5hM2hycHRPK21oaUlqT2szZDNDY1NXZ01ZbnJqL21zWS9uN3BJNGcxbXZr?=
 =?utf-8?B?eUNiNUV1ZVA4UTBpaDJUNzU1b1V0WmVpTGZzU0JqUUxDb1FCeFVuaFRmaHp6?=
 =?utf-8?B?ajIwZ202M2ZucURKQmpwTCt1TTVudlRrSEcrQmRGUjhXNUsvaW13QTlNUU5M?=
 =?utf-8?B?UnNEMUhOdzVwdnowN1RpUnMvU2Q3VVk5Z1o1L20veklNRmtUUXI2MTlmeW9a?=
 =?utf-8?B?aGszRHdwdURJZTVYOGlKOFFDYTZ6WXEyRnZMWllvVDhtMlJndGJOM1pnZXFV?=
 =?utf-8?B?dnRneS8rY2cyK1prQzBGWHkrdE5qNTJwN3drY3BCaXg1MmZ2TUVGeHdBVkV2?=
 =?utf-8?B?VVE5ay84bUowZUd3MUlDR2l0NHc0NWJPOEIrUnEvK2Rud20rTURSZm4vcVhI?=
 =?utf-8?Q?645Ghu?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(376014)(1800799024);DIR:OUT;SFP:1101;
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2025 14:51:58.2905
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: edf615f1-2336-44d1-4669-08dde89defa0
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=[SATLEXMB04.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF00002325.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4273

On 2025-08-29 09:56, Anthony PERARD wrote:
> On Wed, Aug 27, 2025 at 11:37:07AM -0400, Jason Andryuk wrote:
>> On 2025-08-08 10:55, Anthony PERARD wrote:
>>> +    case JSON_NUMBER:
>>> +        *jso_out = json_object_new_string(obj->u.string);
>>
>> Is JSON_NUMBER calling json_object_new_string() correct?  It looks like the
>> yajl code falls back to a string, so that is okay but surprising.
> 
> Yeah, I think that's correct.
> :-( maybe not. Even if we have these too comments:
> 
>      In libxl_internal.h, enum libxl__json_node_type:
>          /* number is store in string, it's too big to be a long long or a double */
>          JSON_NUMBER  = (1 << 4),
> 
>      In json_callback_number():
>          /* If the conversion fail, we just store the original string. */
> 
> With yajl, we call yajl_gen_number(), which probably write 2^128 as:
> 
>      340282366920938463463374607431768211456
> 
> but this new json-c generator would write instead:
> 
>      "340282366920938463463374607431768211456"
> 
> I guess we might be able to replicate the same behavior by using
> json_object_set_serializer() or json_object_new_double_s() (which use
> the former). But I don't know if it is worth the effort. I hope we won't
> have int bigger than 64 bits.

I didn't check, but I thought uint64_t is the biggest size libxl uses.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Sun Aug 31 14:56:50 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 31 Aug 2025 14:56:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1103839.1455199 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1usjU7-0003SU-8F; Sun, 31 Aug 2025 14:56:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1103839.1455199; Sun, 31 Aug 2025 14:56: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 1usjU7-0003SN-5R; Sun, 31 Aug 2025 14:56:47 +0000
Received: by outflank-mailman (input) for mailman id 1103839;
 Sun, 31 Aug 2025 14:56:46 +0000
Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50]
 helo=se1-gles-flk1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=I8SH=3L=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1usjU6-0003SH-FZ
 for xen-devel@lists.xenproject.org; Sun, 31 Aug 2025 14:56:46 +0000
Received: from mail-lj1-x231.google.com (mail-lj1-x231.google.com
 [2a00:1450:4864:20::231])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b5c697a0-867a-11f0-8dd7-1b34d833f44b;
 Sun, 31 Aug 2025 16:56:44 +0200 (CEST)
Received: by mail-lj1-x231.google.com with SMTP id
 38308e7fff4ca-336d2b0eaf8so6912331fa.2
 for <xen-devel@lists.xenproject.org>; Sun, 31 Aug 2025 07:56:44 -0700 (PDT)
Received: from [192.168.0.110] ([91.123.151.69])
 by smtp.gmail.com with ESMTPSA id
 38308e7fff4ca-336d0c8beadsm9230491fa.16.2025.08.31.07.56.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 31 Aug 2025 07:56: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>
X-Inumbo-ID: b5c697a0-867a-11f0-8dd7-1b34d833f44b
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756652204; x=1757257004; 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=ZW3tkJbkzK29MxXktZbnMlj25dwxvdDWx9xUPXf+zQo=;
        b=Gm5yoqnZlCkqAQs6uSb9iUTowTPkjR+LNzTj78o3qz39XM6cvgtHlWb0C0I38PHG8N
         GLqJse8Jq5Lf4P2H2s5TeSVyUqjVrUzV3cNa3grRywaZEwBP0p1O5COH3dvkvkX20yBO
         J2VbRmAFWUhhBZEJfvHz9ZVLdRkFZ5fWMiZBXFx5IOeU4B8P1IHLMrawoSG38UfjeqKY
         C1kA6YrKrFWqQa+qLdNbuTWxKgHQn64Mt7ZAbfExmJ5gU74HDwXd3MLSKaNCuRDfuwNo
         HIdSjglsxk9un4ut45BuwphjNo/ur9uLFkuYhKRTmRflDmfkTBJCHS0dcNghoXsDn3P4
         A1aA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756652204; x=1757257004;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=ZW3tkJbkzK29MxXktZbnMlj25dwxvdDWx9xUPXf+zQo=;
        b=kU36yvPQuGQswBj3akILR2g7Yepv3xkV4r/XS99N5FqpF2CGqwqmVGIA/jLbSb0Jcl
         B8arHV7sLuIEbGiact9LZbDOK5UJjReLV9Tt6tiJ5NaddoSBEevEaRBZAEa1tTJEWFzW
         qoSYI9lzR8MS31xmANstbhnOpDlfq8MAd2n3i69p+VlbPOjMjoe0o8JNW6uqmhPR/J3d
         /wAzl0N11NcbWyDEDTLwD14DXa02VdiwiVHCsBd42HqByMAoOiRwLzniFkZDXAnQmq15
         0n9uj12+3zvbuLGtWuPQ53X4TtLs8rqACksTj/INIzl2qd/uSzs+jKsEun1Vfs8Vsp6D
         L7yw==
X-Forwarded-Encrypted: i=1; AJvYcCWSpd/QSvSWU90gVewSJExEglpCa4GxfCZ1SsZWTY/jS+JlfkTCLvyJkyeI7agRDVnVlTmIe2VwTNA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywno0ff//cOl+vyAUBeuQ/b/gyYT5RBvV560LOuyT8qoruixxNy
	6M8zF1uQor3G7zj5Pbb0ifmHT3/qkpxgp03NHxKS3mhmPkVVzNGXq5qt
X-Gm-Gg: ASbGncs3N6iiQDA2zExCi3NGOYeWQOnBQPuxbmof5A7+sweZIeojQMhBcCTcom1JVCf
	/JI30E3yV5ohDA+sfRlXlDK5UI+CiPUOs3msQPekKWP9eJMZV+bTM06vlyQUtCUZz+cX6hBmsUY
	GeEASP0j1qJyMuMgjVvsXIbVMvmnjApyBH1D1NN1WbIP1ll5JILVRliI2+ca0gY9WDrMmSKrw09
	frc9YvTfWNYfAb6HNx5PJUgmIfw0XNR/wQ+cRVZCDTJA5obv8El9KNRRvFXTKNUoX97dCZczqyE
	8U9OQENuzaxA5pjlQpluzLW62PhjWRMEp1Yh9VQ2OYAWHm8wXw5+M1MZkZAPSBMOFH0qtL2JG1S
	kXRNyoeuOxlpdu2fDvbjAU+AkqMQxPOUkNfAcsAGVcVm5Cb8=
X-Google-Smtp-Source: AGHT+IGvWCdb77lx19U1iA6e7d6YB9JW3nh9hEo3HK/RA48QPkXkkiupUe0rsi6RixYjyycEWnAXxA==
X-Received: by 2002:a2e:a548:0:b0:336:b4dd:a34b with SMTP id 38308e7fff4ca-336cad1de64mr9751451fa.24.1756652203415;
        Sun, 31 Aug 2025 07:56:43 -0700 (PDT)
Message-ID: <f3fdc44c-3407-45cb-8714-eb85b9c48d78@gmail.com>
Date: Sun, 31 Aug 2025 17:56:39 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 05/12] xen/arm: gicv3: implement handling of GICv3.1
 eSPI
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <cover.1756481577.git.leonid_komarianskyi@epam.com>
 <edf50a95d335000cea2748301882f1bbea88d676.1756481577.git.leonid_komarianskyi@epam.com>
Content-Language: en-US
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
In-Reply-To: <edf50a95d335000cea2748301882f1bbea88d676.1756481577.git.leonid_komarianskyi@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 29.08.25 19:06, Leonid Komarianskyi wrote:

Hello Leonid


> Introduced appropriate register definitions, helper macros,
> and initialization of required GICv3.1 distributor registers
> to support eSPI. This type of interrupt is handled in the
> same way as regular SPI interrupts, with the following
> differences:
> 
> 1) eSPIs can have up to 1024 interrupts, starting from the
> beginning of the range, whereas regular SPIs use INTIDs from
> 32 to 1019, totaling 988 interrupts;
> 2) eSPIs start at INTID 4096, necessitating additional interrupt
> index conversion during register operations.
> 
> In case if appropriate config is disabled, or GIC HW doesn't
> support eSPI, the existing functionality will remain the same.
> 
> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
> 
> ---
> Changes in V5:
> - fixed minor nits, no functional changes: changed u32 to uint32_t and
>    added a comment noting that the configuration for eSPIs is the same as
>    for regular SPIs
> - removed ifdefs for eSPI-specific offsets to reduce the number of
>    ifdefs and code duplication in further changes
> - removed reviewed-by as moving offset from ifdefs requires additional
>    confirmation from reviewers


Reviewed-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

> 
> Changes in V4:
> - added offsets for GICD_IGRPMODRnE and GICD_NSACRnE that are required
>    for vGIC emulation
> - added a log banner with eSPI information, similar to the one for
>    regular SPI
> - added newline after ifdef and before gic_is_valid_line
> - added reviewed-by from Volodymyr Babchuk
> 
> Changes in V3:
> - add __init attribute to gicv3_dist_espi_common_init
> - change open-codded eSPI register initialization to the appropriate
>    gen-mask macro
> - fixed formatting for lines with more than 80 symbols
> - introduced gicv3_dist_espi_init_aff to be able to use stubs in case of
>    CONFIG_GICV3_ESPI disabled
> - renamed parameter in the GICD_TYPER_ESPI_RANGE macro to espi_range
>    (name was taken from GIC specification) to avoid confusion
> - changed type for i variable to unsigned int since it cannot be
>    negative
> 
> Changes in V2:
> - move gic_number_espis function from
>    [PATCH 08/10] xen/arm: vgic: add resource management for extended SPIs
>    to use it in the newly introduced gic_is_valid_espi
> - add gic_is_valid_espi which checks if IRQ number is in supported
>    by HW eSPI range
> - update gic_is_valid_irq conditions to allow operations with eSPIs
> ---
>   xen/arch/arm/gic-v3.c                  | 83 ++++++++++++++++++++++++++
>   xen/arch/arm/include/asm/gic.h         | 22 +++++++
>   xen/arch/arm/include/asm/gic_v3_defs.h | 38 ++++++++++++
>   3 files changed, 143 insertions(+)
> 
> diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
> index 29b7f68cba..4a7ce12f26 100644
> --- a/xen/arch/arm/gic-v3.c
> +++ b/xen/arch/arm/gic-v3.c
> @@ -485,6 +485,36 @@ static void __iomem *get_addr_by_offset(struct irq_desc *irqd, u32 offset)
>           default:
>               break;
>           }
> +#ifdef CONFIG_GICV3_ESPI
> +    case ESPI_BASE_INTID ... ESPI_MAX_INTID:
> +    {
> +        uint32_t irq_index = ESPI_INTID2IDX(irqd->irq);
> +
> +        switch ( offset )
> +        {
> +        case GICD_ISENABLER:
> +            return (GICD + GICD_ISENABLERnE + (irq_index / 32) * 4);
> +        case GICD_ICENABLER:
> +            return (GICD + GICD_ICENABLERnE + (irq_index / 32) * 4);
> +        case GICD_ISPENDR:
> +            return (GICD + GICD_ISPENDRnE + (irq_index / 32) * 4);
> +        case GICD_ICPENDR:
> +            return (GICD + GICD_ICPENDRnE + (irq_index / 32) * 4);
> +        case GICD_ISACTIVER:
> +            return (GICD + GICD_ISACTIVERnE + (irq_index / 32) * 4);
> +        case GICD_ICACTIVER:
> +            return (GICD + GICD_ICACTIVERnE + (irq_index / 32) * 4);
> +        case GICD_ICFGR:
> +            return (GICD + GICD_ICFGRnE + (irq_index / 16) * 4);
> +        case GICD_IROUTER:
> +            return (GICD + GICD_IROUTERnE + irq_index * 8);
> +        case GICD_IPRIORITYR:
> +            return (GICD + GICD_IPRIORITYRnE + irq_index);
> +        default:
> +            break;
> +        }
> +    }
> +#endif
>       default:
>           break;
>       }
> @@ -655,6 +685,55 @@ static void gicv3_set_irq_priority(struct irq_desc *desc,
>       spin_unlock(&gicv3.lock);
>   }
>   
> +#ifdef CONFIG_GICV3_ESPI
> +unsigned int gic_number_espis(void)
> +{
> +    return gic_hw_ops->info->nr_espi;
> +}
> +
> +static void __init gicv3_dist_espi_common_init(uint32_t type)
> +{
> +    unsigned int espi_nr, i;
> +
> +    espi_nr = min(1024U, GICD_TYPER_ESPIS_NUM(type));
> +    gicv3_info.nr_espi = espi_nr;
> +    /* The GIC HW doesn't support eSPI, so we can leave from here */
> +    if ( gicv3_info.nr_espi == 0 )
> +        return;
> +
> +    printk("GICv3: %d eSPI lines\n", gicv3_info.nr_espi);
> +
> +    /* The configuration for eSPIs is similar to that for regular SPIs */
> +    for ( i = 0; i < espi_nr; i += 16 )
> +        writel_relaxed(0, GICD + GICD_ICFGRnE + (i / 16) * 4);
> +
> +    for ( i = 0; i < espi_nr; i += 4 )
> +        writel_relaxed(GIC_PRI_IRQ_ALL,
> +                       GICD + GICD_IPRIORITYRnE + (i / 4) * 4);
> +
> +    for ( i = 0; i < espi_nr; i += 32 )
> +    {
> +        writel_relaxed(GENMASK(31, 0), GICD + GICD_ICENABLERnE + (i / 32) * 4);
> +        writel_relaxed(GENMASK(31, 0), GICD + GICD_ICACTIVERnE + (i / 32) * 4);
> +    }
> +
> +    for ( i = 0; i < espi_nr; i += 32 )
> +        writel_relaxed(GENMASK(31, 0), GICD + GICD_IGROUPRnE + (i / 32) * 4);
> +}
> +
> +static void __init gicv3_dist_espi_init_aff(uint64_t affinity)
> +{
> +    unsigned int i;
> +
> +    for ( i = 0; i < gicv3_info.nr_espi; i++ )
> +        writeq_relaxed_non_atomic(affinity, GICD + GICD_IROUTERnE + i * 8);
> +}
> +#else
> +static void __init gicv3_dist_espi_common_init(uint32_t type) { }
> +
> +static void __init gicv3_dist_espi_init_aff(uint64_t affinity) { }
> +#endif
> +
>   static void __init gicv3_dist_init(void)
>   {
>       uint32_t type;
> @@ -700,6 +779,8 @@ static void __init gicv3_dist_init(void)
>       for ( i = NR_GIC_LOCAL_IRQS; i < nr_lines; i += 32 )
>           writel_relaxed(GENMASK(31, 0), GICD + GICD_IGROUPR + (i / 32) * 4);
>   
> +    gicv3_dist_espi_common_init(type);
> +
>       gicv3_dist_wait_for_rwp();
>   
>       /* Turn on the distributor */
> @@ -713,6 +794,8 @@ static void __init gicv3_dist_init(void)
>   
>       for ( i = NR_GIC_LOCAL_IRQS; i < nr_lines; i++ )
>           writeq_relaxed_non_atomic(affinity, GICD + GICD_IROUTER + i * 8);
> +
> +    gicv3_dist_espi_init_aff(affinity);
>   }
>   
>   static int gicv3_enable_redist(void)
> diff --git a/xen/arch/arm/include/asm/gic.h b/xen/arch/arm/include/asm/gic.h
> index 3fcee42675..1e747dcd99 100644
> --- a/xen/arch/arm/include/asm/gic.h
> +++ b/xen/arch/arm/include/asm/gic.h
> @@ -306,8 +306,26 @@ extern void gic_dump_vgic_info(struct vcpu *v);
>   
>   /* Number of interrupt lines */
>   extern unsigned int gic_number_lines(void);
> +#ifdef CONFIG_GICV3_ESPI
> +extern unsigned int gic_number_espis(void);
> +
> +static inline bool gic_is_valid_espi(unsigned int irq)
> +{
> +    return (irq >= ESPI_BASE_INTID &&
> +            irq < ESPI_IDX2INTID(gic_number_espis()));
> +}
> +#else
> +static inline bool gic_is_valid_espi(unsigned int irq)
> +{
> +    return false;
> +}
> +#endif
> +
>   static inline bool gic_is_valid_line(unsigned int irq)
>   {
> +    if ( gic_is_valid_espi(irq) )
> +        return true;
> +
>       return irq < gic_number_lines();
>   }
>   
> @@ -325,6 +343,10 @@ struct gic_info {
>       enum gic_version hw_version;
>       /* Number of GIC lines supported */
>       unsigned int nr_lines;
> +#ifdef CONFIG_GICV3_ESPI
> +    /* Number of GIC eSPI supported */
> +    unsigned int nr_espi;
> +#endif
>       /* Number of LR registers */
>       uint8_t nr_lrs;
>       /* Maintenance irq number */
> diff --git a/xen/arch/arm/include/asm/gic_v3_defs.h b/xen/arch/arm/include/asm/gic_v3_defs.h
> index 2af093e774..3370b4cd52 100644
> --- a/xen/arch/arm/include/asm/gic_v3_defs.h
> +++ b/xen/arch/arm/include/asm/gic_v3_defs.h
> @@ -37,6 +37,44 @@
>   #define GICD_IROUTER1019             (0x7FD8)
>   #define GICD_PIDR2                   (0xFFE8)
>   
> +/* Additional registers for GICv3.1 */
> +#define GICD_IGROUPRnE               (0x1000)
> +#define GICD_IGROUPRnEN              (0x107C)
> +#define GICD_ISENABLERnE             (0x1200)
> +#define GICD_ISENABLERnEN            (0x127C)
> +#define GICD_ICENABLERnE             (0x1400)
> +#define GICD_ICENABLERnEN            (0x147C)
> +#define GICD_ISPENDRnE               (0x1600)
> +#define GICD_ISPENDRnEN              (0x167C)
> +#define GICD_ICPENDRnE               (0x1800)
> +#define GICD_ICPENDRnEN              (0x187C)
> +#define GICD_ISACTIVERnE             (0x1A00)
> +#define GICD_ISACTIVERnEN            (0x1A7C)
> +#define GICD_ICACTIVERnE             (0x1C00)
> +#define GICD_ICACTIVERnEN            (0x1C7C)
> +#define GICD_IPRIORITYRnE            (0x2000)
> +#define GICD_IPRIORITYRnEN           (0x23FC)
> +#define GICD_ICFGRnE                 (0x3000)
> +#define GICD_ICFGRnEN                (0x30FC)
> +#define GICD_IGRPMODRnE              (0x3400)
> +#define GICD_IGRPMODRnEN             (0x347C)
> +#define GICD_NSACRnE                 (0x3600)
> +#define GICD_NSACRnEN                (0x36FC)
> +#define GICD_IROUTERnE               (0x8000)
> +#define GICD_IROUTERnEN              (0x9FFC)
> +
> +#ifdef CONFIG_GICV3_ESPI
> +#define GICD_TYPER_ESPI_SHIFT        8
> +#define GICD_TYPER_ESPI_RANGE_SHIFT  27
> +#define GICD_TYPER_ESPI_RANGE_MASK   (0x1F)
> +#define GICD_TYPER_ESPI              (1U << GICD_TYPER_ESPI_SHIFT)
> +#define GICD_TYPER_ESPI_RANGE(espi_range) ((((espi_range) & \
> +        GICD_TYPER_ESPI_RANGE_MASK) + 1) * 32)
> +#define GICD_TYPER_ESPIS_NUM(typer)    \
> +        (((typer) & GICD_TYPER_ESPI) ? \
> +        GICD_TYPER_ESPI_RANGE((typer) >> GICD_TYPER_ESPI_RANGE_SHIFT) : 0)
> +#endif
> +
>   /* Common between GICD_PIDR2 and GICR_PIDR2 */
>   #define GIC_PIDR2_ARCH_MASK         (0xf0)
>   #define GIC_PIDR2_ARCH_GICv3        (0x30)



From xen-devel-bounces@lists.xenproject.org Sun Aug 31 15:58:53 2025
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 31 Aug 2025 15:58:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1103864.1455209 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1uskS0-0002fv-Km; Sun, 31 Aug 2025 15:58:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1103864.1455209; Sun, 31 Aug 2025 15:58: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 1uskS0-0002fo-Hu; Sun, 31 Aug 2025 15:58:40 +0000
Received: by outflank-mailman (input) for mailman id 1103864;
 Sun, 31 Aug 2025 15:58:39 +0000
Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254]
 helo=se1-gles-sth1.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=I8SH=3L=gmail.com=olekstysh@srs-se1.protection.inumbo.net>)
 id 1uskRz-0002fi-Hv
 for xen-devel@lists.xenproject.org; Sun, 31 Aug 2025 15:58:39 +0000
Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com
 [2a00:1450:4864:20::12a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5ae9f2ea-8683-11f0-8adc-4578a1afcccb;
 Sun, 31 Aug 2025 17:58:37 +0200 (CEST)
Received: by mail-lf1-x12a.google.com with SMTP id
 2adb3069b0e04-55f6bb0a364so2401577e87.1
 for <xen-devel@lists.xenproject.org>; Sun, 31 Aug 2025 08:58:37 -0700 (PDT)
Received: from [192.168.0.110] ([91.123.151.69])
 by smtp.gmail.com with ESMTPSA id
 2adb3069b0e04-55f676dd6e2sm2281549e87.23.2025.08.31.08.58.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 31 Aug 2025 08:58: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>
X-Inumbo-ID: 5ae9f2ea-8683-11f0-8adc-4578a1afcccb
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1756655917; x=1757260717; 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=w1dwMmVjvbLhsG95wPTqKxMWd+I70jRnWyPyn6H552Q=;
        b=ER8wO0Yiwb+85//2DgTuMpiVYTtBZDU6PVW11fkneca8LFM3VylJW3l+a8VtSvmyhx
         9P3cU3udZ+nZOypj1+CwGWqvN3jjua3k5bfX47vJ6LhsMj3hsiZ7KSfSn6rfIWI3RbzK
         711JNMD+/3GFhqN2uK1lydUX+auNW2auyRMBLD7OcBvz4zTulRNiKGL5A286cgtaPxvP
         wUcd1W0QMvolIhzlD6/AVVvaYr6bkxWgPsgJeQx6fQIyulZMy6+xdSqn6XXkGZ7ObRmL
         W5wibCXDnYCQumSyM2m2sH9czL+/5+30Sb7Mh7PvS6aONxpBBclETJM9g5teaBnukKtH
         Zgqg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1756655917; x=1757260717;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=w1dwMmVjvbLhsG95wPTqKxMWd+I70jRnWyPyn6H552Q=;
        b=C9lttBDFO/ShfonR/2z8aD8Xu3SQZ8rh+YyxHKKIFGFfw2bYpx0ENWiZ6ajU1XGvFL
         7JyOpem1h4jIRL2If+rUyXPfss6AjvkGKdS/O3Ez69KFWQPpzY9iOWVL8l1ytQRgHLLi
         Yy7yN7vOEqikU3axh0dL44vjzFU69M3sVjeWNquBGEH+dEDHN+KSfAXXbM2sHJq6g4IX
         a2T58r/fvqmA27e7atKTT6WtBQx/ETksdajltH8EyTn2Lsn/dPLDqXVOiLjOOwbiCug/
         XeQWcwtCm2Ap4YUNMIZEsSI7fqxxc9HS6fh1WvYcCZ6W41VzCJ/9kzh/Ry72nihWOzZb
         7uAg==
X-Gm-Message-State: AOJu0YwDcSMGr5pkNl7KqNPi0CjrRIV/fEC5sZg4NOkPmjBqykw7bOQm
	EDnXIqVcWBB6Q46H9ejc+SspCvOFMpAPGlBSD2bEDFoov15sqLa/shHy
X-Gm-Gg: ASbGncs8NKZDn8gye6KWWGgBTePeLF2DomFeNVIAaUqmSGy88ahxPrVQjiKyNXdLzLz
	2XZzpQnAn2XODc2LKtkurXRXIuWq7vL0xy75F2de1C/BN3f3TPFBnuC1jRWtZtDKyVbdZsrlYJ6
	TXfC0uZINIdj8aYwu/DR3aB99t8GLtQoORWQCe6ffnfjCotFCCMaek3oI+ByM0kOUp1Teleyhmf
	ZWu2umNr4PJvj7keohRmNAnoRKmvtWadkhc7Qi02Kh2YlMv8GKR4ix8kx5cNtw5/tkKd5/bJHYH
	7FwQz+c5m5yxazFFdIqWEIshx5QafPDKyw2vdcz2VyugaWxBtqisowK0jngcEz63TeUZKHnPXpw
	py7QC5kd+87u0zBWT1gyKefSZDw==
X-Google-Smtp-Source: AGHT+IF0zF0FK64cS9jA0p8hRPOZKZDTPPwItMyuHeqDWR7+YAZKTVe4Axay9hrKcOdlasQIW5QpXQ==
X-Received: by 2002:a05:6512:689:b0:55f:6d22:38b6 with SMTP id 2adb3069b0e04-55f7089c1a7mr1326107e87.2.1756655916172;
        Sun, 31 Aug 2025 08:58:36 -0700 (PDT)
Message-ID: <be5a9af6-4d63-4075-8d38-fdb1576dfce4@gmail.com>
Date: Sun, 31 Aug 2025 18:58:33 +0300
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 08/12] xen/arm: vgic: add resource management for
 extended SPIs
To: Leonid Komarianskyi <Leonid_Komarianskyi@epam.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>
References: <cover.1756481577.git.leonid_komarianskyi@epam.com>
 <4b13dea924eabf1370d3f31030f3eef48371de06.1756481577.git.leonid_komarianskyi@epam.com>
 <87y0r1x3g2.fsf@epam.com>
Content-Language: en-US
From: Oleksandr Tyshchenko <olekstysh@gmail.com>
In-Reply-To: <87y0r1x3g2.fsf@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 29.08.25 23:45, Volodymyr Babchuk wrote:

Hello Leonid, Volodymyr

> 
> Hi Leonid,
> 
> Leonid Komarianskyi <Leonid_Komarianskyi@epam.com> writes:
> 
>> This change introduces resource management in the VGIC to handle
>> extended SPIs introduced in GICv3.1. The pending_irqs and
>> allocated_irqs arrays are resized to support the required
>> number of eSPIs, based on what is supported by the hardware and
>> requested by the guest. A new field, ext_shared_irqs, is added
>> to the VGIC structure to store information about eSPIs, similar
>> to how shared_irqs is used for regular SPIs.
>>
>> Since the eSPI range starts at INTID 4096 and INTIDs between 1025
>> and 4095 are reserved, helper macros are introduced to simplify the
>> transformation of indices and to enable easier access to eSPI-specific
>> resources. These changes prepare the VGIC for processing eSPIs as
>> required by future functionality.
>>
>> The initialization and deinitialization paths for vgic have been updated
>> to allocate and free these resources appropriately. Additionally,
>> updated handling of INTIDs greater than 1024, passed from the toolstack
>> during domain creation, and verification logic ensures only valid SPI or
>> eSPI INTIDs are used.
>>
>> The existing SPI behavior remains unaffected when guests do not request
>> eSPIs, GIC hardware does not support them, or the CONFIG_GICV3_ESPI
>> option is disabled.
>>
>> Signed-off-by: Leonid Komarianskyi <leonid_komarianskyi@epam.com>
>>
>> ---
>> Changes in V5:
>> - removed the has_espi field because it can be determined by checking
>>    whether domain->arch.vgic.nr_espis is zero or not
>> - since vgic_ext_rank_offset is not used in this patch, it has been
>>    moved to the appropriate patch in the patch series, which implements
>>    vgic eSPI registers emulation and requires this function
>> - removed ifdefs for eSPI-specific macros to reduce the number of ifdefs
>>    and code duplication in further changes
>> - fixed minor nit: used %pd for printing domain with its ID

@Leonid, thanks for optimizing the series, now it looks much better (the 
number of #ifdef-s is reduced, code is reused).


>>
>> Changes in V4:
>> - added has_espi field to simplify determining whether a domain is able
>>    to operate with eSPI
>> - fixed formatting issues and misspellings
>>
>> Changes in V3:
>> - fixed formatting for lines with more than 80 symbols
>> - introduced helper functions to be able to use stubs in case of
>>    CONFIG_GICV3_ESPI disabled, and as a result, reduce the number of
>>    #ifdefs
>> - fixed checks for nr_spis in domain_vgic_init
>> - updated comment about nr_spis adjustments with dom0less mention
>> - moved comment with additional explanations before checks
>> - used unsigned int for indexes since they cannot be negative
>> - removed unnecessary parentheses
>> - move vgic_ext_rank_offset to the below ifdef guard, to reduce the
>>    number of ifdefs
>>
>> Changes in V2:
>> - change is_espi_rank to is_valid_espi_rank to verify whether the array
>>    element ext_shared_irqs exists. The previous version, is_espi_rank,
>>    only checked if the rank index was less than the maximum possible eSPI
>>    rank index, but this could potentially result in accessing a
>>    non-existing array element. To address this, is_valid_espi_rank was
>>    introduced, which ensures that the required eSPI rank exists
>> - move gic_number_espis to
>>    xen/arm: gicv3: implement handling of GICv3.1 eSPI
>> - update vgic_is_valid_irq checks to allow operating with eSPIs
>> - remove redundant newline in vgic_allocate_virq
>> ---
>>   xen/arch/arm/include/asm/vgic.h |  12 ++
>>   xen/arch/arm/vgic.c             | 199 +++++++++++++++++++++++++++++++-
>>   2 files changed, 208 insertions(+), 3 deletions(-)
>>
>> diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/vgic.h
>> index 3e7cbbb196..912d5b7694 100644
>> --- a/xen/arch/arm/include/asm/vgic.h
>> +++ b/xen/arch/arm/include/asm/vgic.h
>> @@ -146,6 +146,10 @@ struct vgic_dist {
>>       int nr_spis; /* Number of SPIs */
>>       unsigned long *allocated_irqs; /* bitmap of IRQs allocated */
>>       struct vgic_irq_rank *shared_irqs;
>> +#ifdef CONFIG_GICV3_ESPI
>> +    struct vgic_irq_rank *ext_shared_irqs;
>> +    int nr_espis; /* Number of extended SPIs */

It seems you have agreed (V4) that nr_espis could not be negative.

>> +#endif
>>       /*
>>        * SPIs are domain global, SGIs and PPIs are per-VCPU and stored in
>>        * struct arch_vcpu.
>> @@ -243,6 +247,14 @@ struct vgic_ops {
>>   /* Number of ranks of interrupt registers for a domain */
>>   #define DOMAIN_NR_RANKS(d) (((d)->arch.vgic.nr_spis+31)/32)
>>   
>> +#ifdef CONFIG_GICV3_ESPI
>> +#define DOMAIN_NR_EXT_RANKS(d) (((d)->arch.vgic.nr_espis+31)/32)
>> +#endif
>> +#define EXT_RANK_MIN (ESPI_BASE_INTID/32)
>> +#define EXT_RANK_MAX ((ESPI_MAX_INTID+31)/32)
>> +#define EXT_RANK_NUM2IDX(num) ((num)-EXT_RANK_MIN)
>> +#define EXT_RANK_IDX2NUM(idx) ((idx)+EXT_RANK_MIN)
>> +
>>   #define vgic_lock(v)   spin_lock_irq(&(v)->domain->arch.vgic.lock)
>>   #define vgic_unlock(v) spin_unlock_irq(&(v)->domain->arch.vgic.lock)
>>   
>> diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
>> index 2bbf4d99aa..c9b9528c66 100644
>> --- a/xen/arch/arm/vgic.c
>> +++ b/xen/arch/arm/vgic.c
>> @@ -27,9 +27,82 @@
>>   
>>   bool vgic_is_valid_line(struct domain *d, unsigned int virq)
>>   {
>> +#ifdef CONFIG_GICV3_ESPI
>> +    if ( virq >= ESPI_BASE_INTID &&
>> +         virq < ESPI_IDX2INTID(d->arch.vgic.nr_espis) )
>> +        return true;
>> +#endif
>> +
>>       return virq < vgic_num_irqs(d);
>>   }
>>   
>> +#ifdef CONFIG_GICV3_ESPI
>> +/*
>> + * Since eSPI indexes start from 4096 and numbers from 1024 to
>> + * 4095 are forbidden, we need to check both lower and upper
>> + * limits for ranks.
>> + */
>> +static inline bool is_valid_espi_rank(struct domain *d, unsigned int rank)
>> +{
>> +    return rank >= EXT_RANK_MIN &&
>> +           EXT_RANK_NUM2IDX(rank) < DOMAIN_NR_EXT_RANKS(d);
>> +}
>> +
>> +static inline struct vgic_irq_rank *vgic_get_espi_rank(struct vcpu *v,
>> +                                                       unsigned int rank)
>> +{
>> +    return &v->domain->arch.vgic.ext_shared_irqs[EXT_RANK_NUM2IDX(rank)];
>> +}
>> +
>> +static inline bool vgic_reserve_espi_virq(struct domain *d, unsigned int virq)
>> +{
>> +    return !test_and_set_bit(ESPI_INTID2IDX(virq) + vgic_num_irqs(d),
>> +                             d->arch.vgic.allocated_irqs);
>> +}
>> +
>> +static void arch_move_espis(struct vcpu *v)
> 
> I don't need you need a copy of arch_move_irqs(). Se below for more info.
> 
>> +{
>> +    const cpumask_t *cpu_mask = cpumask_of(v->processor);
>> +    struct domain *d = v->domain;
>> +    struct pending_irq *p;
>> +    struct vcpu *v_target;
>> +    unsigned int i;
>> +
>> +    for ( i = ESPI_BASE_INTID;
>> +          i < EXT_RANK_IDX2NUM(d->arch.vgic.nr_espis); i++ )
>> +    {
>> +        v_target = vgic_get_target_vcpu(v, i);
>> +        p = irq_to_pending(v_target, i);
>> +
>> +        if ( v_target == v && !test_bit(GIC_IRQ_GUEST_MIGRATING, &p->status) )
>> +            irq_set_affinity(p->desc, cpu_mask);
>> +    }
>> +}
>> +#else
>> +static inline bool is_valid_espi_rank(struct domain *d, unsigned int rank)
>> +{
>> +    return false;
>> +}
>> +
>> +/*
>> + * This function is stub and will not be called if CONFIG_GICV3_ESPI=n,
>> + * because in this case, is_valid_espi_rank will always return false.
>> + */
>> +static inline struct vgic_irq_rank *vgic_get_espi_rank(struct vcpu *v,
>> +                                                       unsigned int rank)
>> +{
>> +    ASSERT_UNREACHABLE();
>> +    return NULL;
>> +}
>> +
>> +static inline bool vgic_reserve_espi_virq(struct domain *d, unsigned int virq)
>> +{
>> +    return false;
>> +}
>> +
>> +static void arch_move_espis(struct vcpu *v) { }
>> +#endif
>> +
>>   static inline struct vgic_irq_rank *vgic_get_rank(struct vcpu *v,
>>                                                     unsigned int rank)
>>   {
>> @@ -37,6 +110,8 @@ static inline struct vgic_irq_rank *vgic_get_rank(struct vcpu *v,
>>           return v->arch.vgic.private_irqs;
>>       else if ( rank <= DOMAIN_NR_RANKS(v->domain) )
>>           return &v->domain->arch.vgic.shared_irqs[rank - 1];
>> +    else if ( is_valid_espi_rank(v->domain, rank) )
>> +        return vgic_get_espi_rank(v, rank);
>>       else
>>           return NULL;
>>   }
>> @@ -117,6 +192,62 @@ int domain_vgic_register(struct domain *d, unsigned int *mmio_count)
>>       return 0;
>>   }
>>   
>> +#ifdef CONFIG_GICV3_ESPI
>> +static unsigned int vgic_num_spi_lines(struct domain *d)
>> +{
>> +    return d->arch.vgic.nr_spis + d->arch.vgic.nr_espis;
>> +}
>> +
>> +static int init_vgic_espi(struct domain *d)
>> +{
>> +    unsigned int i, idx;
>> +
>> +    if ( d->arch.vgic.nr_espis == 0 )
>> +        return 0;
>> +
>> +    d->arch.vgic.ext_shared_irqs =
>> +        xzalloc_array(struct vgic_irq_rank, DOMAIN_NR_EXT_RANKS(d));
>> +    if ( d->arch.vgic.ext_shared_irqs == NULL )
>> +        return -ENOMEM;
>> +
>> +    for ( i = d->arch.vgic.nr_spis, idx = 0;
>> +          i < vgic_num_spi_lines(d); i++, idx++ )
>> +        vgic_init_pending_irq(&d->arch.vgic.pending_irqs[i],
>> +                              ESPI_IDX2INTID(idx));
>> +
>> +    for ( i = 0; i < DOMAIN_NR_EXT_RANKS(d); i++ )
>> +        vgic_rank_init(&d->arch.vgic.ext_shared_irqs[i], i, 0);
>> +
>> +    return 0;
>> +}
>> +
>> +struct pending_irq *espi_to_pending(struct domain *d, unsigned int irq)
> 
> I know that I should made this observation in previous version, but I
> didn't, sorry for that. Anyways, I don't think that this is a good idea
> to introduce this function and vgic_reserve_espi_virq(), as well as
> arch_move_espis(), actually, because in each case this is a code
> duplication, which is not good.
> 
> I think that instead you need to introduce a pair of helpers that will
> map any (e)SPI number to pending_irq[]/allocate_irqs index and back.
> 
> somethink like
> 
> static inline unsigned virq_to_index(int virq)
> {
>     if (is_espi(virq))
>         return ESPI_INTID2IDX(irq) + d->arch.vgic.nr_spis;
>     return virq;
> }
> 
> See below for examples.
> 
>> +{
>> +    irq = ESPI_INTID2IDX(irq) + d->arch.vgic.nr_spis;
>> +    return &d->arch.vgic.pending_irqs[irq];
>> +}
>> +#else
>> +static unsigned int init_vgic_espi(struct domain *d)
>> +{
>> +    return 0;
>> +}
>> +
>> +static unsigned int vgic_num_spi_lines(struct domain *d)
>> +{
>> +    return d->arch.vgic.nr_spis;
>> +}
>> +
>> +struct pending_irq *espi_to_pending(struct domain *d, unsigned int irq)
>> +{
>> +    return NULL;
>> +}
>> +#endif
>> +
>> +static unsigned int vgic_num_alloc_irqs(struct domain *d)
>> +{
>> +    return vgic_num_spi_lines(d) + NR_LOCAL_IRQS;
>> +}

I do not know where it would be better to put a comment related to 
non-visible in the patch context route_irq_to_guest(), but put it here.

I am afraid, the vgic_num_irqs(d) printed in the following error message 
is not entirely correct with your changes:

route_irq_to_guest():

...

     if ( !vgic_is_valid_line(d, virq) )
     {
         printk(XENLOG_G_ERR
                "the vIRQ number %u is too high for domain %u (max = %u)\n",
                irq, d->domain_id, vgic_num_irqs(d));
         return -EINVAL;
     }


>> +
>>   int domain_vgic_init(struct domain *d, unsigned int nr_spis)
>>   {
>>       int i;
>> @@ -131,6 +262,36 @@ int domain_vgic_init(struct domain *d, unsigned int nr_spis)
>>        */
>>       nr_spis = ROUNDUP(nr_spis, 32);
>>   
>> +#ifdef CONFIG_GICV3_ESPI
>> +    /*
>> +     * During domain creation, the dom0less DomUs code or toolstack specifies
>> +     * the maximum INTID, which is defined in the domain config subtracted by
>> +     * 32 to cover the local IRQs (please see the comment to VGIC_DEF_NR_SPIS).
>> +     * To compute the actual number of eSPI that will be usable for,
>> +     * add back 32.
>> +     */
>> +    if ( nr_spis + 32 > ESPI_IDX2INTID(NR_ESPI_IRQS) )
>> +        return -EINVAL;
>> +
>> +    if ( nr_spis + 32 >= ESPI_BASE_INTID )
>> +    {
>> +        d->arch.vgic.nr_espis = min(nr_spis - ESPI_BASE_INTID + 32, 1024U);
>> +        /* Verify if GIC HW can handle provided INTID */
>> +        if ( d->arch.vgic.nr_espis > gic_number_espis() )
>> +            return -EINVAL;
>> +        /*
>> +         * Set the maximum available number for regular
>> +         * SPI to pass the next check
>> +         */
>> +        nr_spis = VGIC_DEF_NR_SPIS;
>> +    }
>> +    else
>> +    {
>> +        /* Domain will use the regular SPI range */
>> +        d->arch.vgic.nr_espis = 0;
>> +    }
>> +#endif
>> +
>>       /* Limit the number of virtual SPIs supported to (1020 - 32) = 988  */
>>       if ( nr_spis > (1020 - NR_LOCAL_IRQS) )
>>           return -EINVAL;
>> @@ -145,7 +306,7 @@ int domain_vgic_init(struct domain *d, unsigned int nr_spis)
>>           return -ENOMEM;
>>   
>>       d->arch.vgic.pending_irqs =
>> -        xzalloc_array(struct pending_irq, d->arch.vgic.nr_spis);
>> +        xzalloc_array(struct pending_irq, vgic_num_spi_lines(d));
>>       if ( d->arch.vgic.pending_irqs == NULL )
>>           return -ENOMEM;
>>   
>> @@ -156,12 +317,16 @@ int domain_vgic_init(struct domain *d, unsigned int nr_spis)
>>       for ( i = 0; i < DOMAIN_NR_RANKS(d); i++ )
>>           vgic_rank_init(&d->arch.vgic.shared_irqs[i], i + 1, 0);
>>   
>> +    ret = init_vgic_espi(d);
>> +    if ( ret )
>> +        return ret;
>> +
>>       ret = d->arch.vgic.handler->domain_init(d);
>>       if ( ret )
>>           return ret;
>>   
>>       d->arch.vgic.allocated_irqs =
>> -        xzalloc_array(unsigned long, BITS_TO_LONGS(vgic_num_irqs(d)));
>> +        xzalloc_array(unsigned long, BITS_TO_LONGS(vgic_num_alloc_irqs(d)));
>>       if ( !d->arch.vgic.allocated_irqs )
>>           return -ENOMEM;
>>   
>> @@ -195,9 +360,27 @@ void domain_vgic_free(struct domain *d)
>>           }
>>       }
>>   
>> +#ifdef CONFIG_GICV3_ESPI
>> +    for ( i = 0; i < d->arch.vgic.nr_espis; i++ )
>> +    {
>> +        struct pending_irq *p = spi_to_pending(d, ESPI_IDX2INTID(i));
>> +
>> +        if ( p->desc )
>> +        {
>> +            ret = release_guest_irq(d, p->irq);
>> +            if ( ret )
>> +                dprintk(XENLOG_G_WARNING, "%pd: Failed to release virq %u ret = %d\n",
>> +                        d, p->irq, ret);
>> +        }
>> +    }
>> +#endif
>> +
>>       if ( d->arch.vgic.handler )
>>           d->arch.vgic.handler->domain_free(d);
>>       xfree(d->arch.vgic.shared_irqs);
>> +#ifdef CONFIG_GICV3_ESPI
>> +    xfree(d->arch.vgic.ext_shared_irqs);
>> +#endif
>>       xfree(d->arch.vgic.pending_irqs);
>>       xfree(d->arch.vgic.allocated_irqs);
>>   }
>> @@ -331,6 +514,8 @@ void arch_move_irqs(struct vcpu *v)
>>           if ( v_target == v && !test_bit(GIC_IRQ_GUEST_MIGRATING, &p->status) )
>>               irq_set_affinity(p->desc, cpu_mask);
>>       }
>> +
>> +    arch_move_espis(v);
>>   }
>>   
>>   void vgic_disable_irqs(struct vcpu *v, uint32_t r, unsigned int n)
>> @@ -538,6 +723,8 @@ struct pending_irq *irq_to_pending(struct vcpu *v, unsigned int irq)
>>           n = &v->arch.vgic.pending_irqs[irq];
>>       else if ( is_lpi(irq) )
>>           n = v->domain->arch.vgic.handler->lpi_to_pending(v->domain, irq);
>> +    else if ( is_espi(irq) )
>> +        n = espi_to_pending(v->domain, irq);
>>       else
>>           n = &v->domain->arch.vgic.pending_irqs[irq - 32];
>>       return n;
>> @@ -547,6 +734,9 @@ struct pending_irq *spi_to_pending(struct domain *d, unsigned int irq)
>>   {
>>       ASSERT(irq >= NR_LOCAL_IRQS);
>>   
>> +    if ( is_espi(irq) )
>> +        return espi_to_pending(d, irq);
>> +
> 
> here you can just do
> 
> idx = virq_to_idx(virq);
> 
>>       return &d->arch.vgic.pending_irqs[irq - 32];
> 
> and
> 
> return &d->arch.vgic.pending_irqs[idx];
> 
> instead
> 
>>   }
>>   
>> @@ -668,6 +858,9 @@ bool vgic_reserve_virq(struct domain *d, unsigned int virq)
>>       if ( !vgic_is_valid_line(d, virq) )
>>           return false;
>>   
>> +    if ( is_espi(virq) )
>> +        return vgic_reserve_espi_virq(d, virq);
>> +
> 
> here you can just do
> 
> idx = virq_to_idx(virq)
> 
>>       return !test_and_set_bit(virq, d->arch.vgic.allocated_irqs);
> 
> and then just
> 
> return !test_and_set_bit(idx, d->arch.vgic.allocated_irqs);
> 
> 
>>   }
>>   
>> @@ -685,7 +878,7 @@ int vgic_allocate_virq(struct domain *d, bool spi)
>>       else
>>       {
>>           first = 32;
>> -        end = vgic_num_irqs(d);
>> +        end = vgic_num_alloc_irqs(d);
>>       }
> 
> I thinj you need to recalculate "virq" value at the end of this
> function. You'll return index in bitfield, but this is not the same is
> IRQ number in case of eSPIs.

+1

  The helpers I mentioned before can help here.
> 
>>   
>>       /*
> 
> Lastly, I think that it is very wasteful to allocate pending_irqs as
> continuous array, because it will consist mostly of unused entries,
> especially with eSPIs enable. Probably, better approach will be to use radix
> tree. As a bonus, you can use IRQ line number as a key, and get rid of
> all these is_espi() checks and mappings between IRQ number and index in
> the array.  But this is a much more drastic change, and I don't think that it
> should be done in this patch series...
> 



